commit 0281b65175628842c14b9a9c35028e8cc990cb49 Author: josch Date: Sun Sep 16 14:33:11 2012 +0200 initial commit diff --git a/.svn/entries b/.svn/entries new file mode 100644 index 0000000..48082f7 --- /dev/null +++ b/.svn/entries @@ -0,0 +1 @@ +12 diff --git a/.svn/format b/.svn/format new file mode 100644 index 0000000..48082f7 --- /dev/null +++ b/.svn/format @@ -0,0 +1 @@ +12 diff --git a/.svn/pristine/00/000174bc99fab73fe1bc891a8dc946e122337b50.svn-base b/.svn/pristine/00/000174bc99fab73fe1bc891a8dc946e122337b50.svn-base new file mode 100644 index 0000000..d03b737 --- /dev/null +++ b/.svn/pristine/00/000174bc99fab73fe1bc891a8dc946e122337b50.svn-base @@ -0,0 +1,928 @@ +@InProceedings{VMV2001, + author = "H. Surmann and K. Lingemann and A. N{\"u}chter and J. Hertzberg", + title = "{F}ast acquiring and analysis of three dimensional laser range data", + booktitle = "Proceedings of the of the 6th International Fall Workshop Vision, Modeling, and Visualization (VMV '01)", + month = "November", + year = "2001", + pages = "59 -- 66", + address = "Stuttgart, Germany" +} + +@InProceedings{ISR2001, + author = "H. Surmann and K. Lingemann and A. N{\"u}chter and J. Hertzberg", + title = "A 3{D} laser range finder for autonomous mobile robots", + booktitle = "Proceedings of the of the 32nd International Symposium on Robotics (ISR '01)", + month = "April", + year = "2001", + pages = "153 -- 158", + address = "Seoul, Korea" +} + +@Book{Report2001, + author = "H. Surmann and K. Lingemann and A. N{\"u}chter and J. Hertzberg", + title = "Aufbau eines 3D--Laserscanners f{\"u}r autonome mobile Roboter, GMD Report 126", + publisher = "GMD - Forschungszentrum Informationstechnik GmbH", + address = "Sankt Augustin", + month = "March", + year = "2001", +} + +@InProceedings{IT2001, + author = "A. N{\"u}chter and K. Lingemann", + title = "Ein 3{D}-{L}aserscanner f{\"u}r autonome mobile {R}oboter", + booktitle = "Tagungsband zum 3. Fachwissenschaftlichen Informatikkongress - Informatiktage 2001", + month = "November", + year = "2001", + pages = "89 -- 92", + address = "Bad Schussenried, Germany" +} + +@Article{Ariadne1998, + author= "H. Surmann", + title = "Diener mit unscharfer {L}ogik", + month = "March", + year = "1998", + journal = "GMD--Pointer, http://www.gmd.de/pointer/2-98/servicerob.html", +} + +@misc{Karpinski2000, + author = "M. Karpinski", + title = "Approximative {A}lgorithmen f{\"u}r {NP}--harte {B}erechnungsprobleme (\textit{{APX} 00}), {U}niversit{"a}t {B}onn, {V}orlesungsmitschrift", + year = "2000", +} + + +@misc{Frehse1997, + author = "J. Frehse", + title = "Infinitisimalrechnung II, {U}niversit{"a}t {B}onn, {V}orlesungsmitschrift", + year = "1997", +} + + +@misc{Hudelson1998, + author = "M. Hudelson", + title = "Graph {T}heory (\textit{{M}ath 453}), {F}all {S}emester, {W}ashington {S}tate {U}niversity, {V}orlesungsmitschrift", + year = "1998", +} + +@book{Russel, + author = "S. Russell and P. Norvig", + title = "Artificial Intelligence, A Modern Approach", + year = "1995", + publisher = "Prentice Hall, Inc.", + address = "Upper Sanddle River, NJ, USA", +} + +@book{Arnold, + author = "V. Arnold", + title = "Gew鰄nliche Differentialgleichungen", + year = "2001", + publisher = "Springer Verlag", + address = "Berlin Heidelberg", +} + +@book{Heuser, + author = "H. Heuser", + title = "Gew鰄nliche Differentialgleichungen : Einf黨rung in Lehre und Gebrauch", + year = "1989", + publisher = "Teubner", + address = "Stuttgart", +} + +@book{Orourke, + author = "J. O'Rourke", + title = "Art Gallery Theorems and Algorithms", + year = "1987", + publisher = "Oxford University Press", +} + +@book{Cormen, + author = "Th. Cormen and Ch. Leiserson and R. Rivest", + title = "Introduction to Algorithms", + year = "1997", + publisher = "McGraw--Hill Book Company", + address = " ", +} + +@book{Orear, + author = "J. Orear", + title = "Physik", + year = "1991", + publisher = "Weltbild Verlag GmbH", + address = "Augsburg" +} + +@book{Fischer, + author = "G. Fischer", + title = "{L}ineare {A}lgebra", + year = "1995", + publisher = "Friedrich Vieweg \& Sohn Verglagsgesellschaft mbH", + address = "Braunschweig / Wiesbaden", +} + +@book{Forster, + author = "O. Forster", + title = "{A}nalysis 1", + year = "1996", + publisher = "Friedrich Vieweg \& Sohn Verglagsgesellschaft mbH", + address = "Braunschweig / Wiesbaden", +} + +@book{Deuflhard, + author = "P. Deuflhard and A. Hohmann", + title = "{N}umerische {M}athematik --- {E}ine algorithmisch orientierte {E}inf黨rung", + year = "1993", + publisher = "Walter de Gruyter Co.", + address = "Berlin", +} + +@article{Horn_1987, + author = "B. K. P. Horn", + title = "Closed--form solution of absolute orientation using unit quaternions", + journal = "Journal of the Optical Society of America A", + month = "April", + year = "1987", + volume = "4", + number = "4", + pages = "629 -- 642" +} + +@article{Horn_1988, + author = "B. K. P. Horn and H. M. Hilden and Sh. Negahdaripour", + title = "Closed--form solution of absolute orientation using orthonormal matrices", + journal = "Journal of the Optical Society of America A", + month = "July", + year = "1988", + volume = "5", + number = "7", + pages = "1127 -- 1135" +} + + +@article{Besl_1992, + author = "P. Besl and N. McKay", + title = "A method for {R}egistration of 3--{D} {S}hapes", + journal = "IEEE Transactions on Pattern Analysis and Machine Intelligence", + month = "February", + year = "1992", + volume = "14", + number = "2", + pages = "239 -- 256" +} + +@article{Shermer_1992, + author = "T. Shermer", + title = "{R}ecent {R}esults in {A}rt {G}alleries", + journal = "Proceedings of the IEEE", + month = "September", + year = "1992", + volume = "80", + number = "9", + pages = "1384 -- 1399" +} + +@InProceedings{Chen_1991, + author = "Y. Chen and G. Medioni", + title = "{O}bject {M}odelling by {R}egistration of {M}ultiple {Range} {I}mages", + booktitle = "Proceedings of the IEEE Conference on Robotics and Automation (ICRA '91)", + month = "April", + year = "1991", + address = "Sacramento, CA, USA", + pages = "2724 -- 2729", +} + +@InProceedings{Hebert_2001, + author = "M. Hebert and M. Deans and D. Huber and B. Nabbe and N. Vandapel", + title = "Progress in 3--{D} {M}apping and {L}ocalization", + booktitle = "Proceedings of the 9th International Symposium on Intelligent Robotic Systems, (SIRS '01)", + month = "July", + year = "2001", + address = "Toulouse, France" +} + +@InProceedings{Sappa_2001, + author = "A. Sappa and A. Restrepo-Specht and M. Devy", + title = "Range {I}mage {R}egistration by using an {E}dge--based {R}epresentation", + booktitle = "Proceedings of th 9th International Symposium on Intelligent Robotic Systems, (SIRS '01)", + month = "July", + year = "2001", + address = "Toulouse, France" +} + +@inproceedings{Simon_1994, + author = "D. Simon and M. Hebert and T. Kanade", + title = "Real--time 3--{D} pose estimation using a high--speed range sensor", + booktitle = "Proceedings of IEEE International Conference on Robotics and Automation (ICRA '94)", + month = "May", + year = "1994", + volume = "3", + pages = "2235 -- 2241", + address = "San Diego, CA, USA" +} + +@inproceedings{Huber_2000, + author = "D. Huber and O. Carmichael and M. Hebert", + title = "3{D} map reconstruction from range data", + booktitle = "Proceedings of the IEEE International Conference on Robotics and Automation (ICRA '00)", + month = "April", + year = "2000", + volume = "1", + pages = "891 -- 897", + address = "San Francisco, CA, USA" +} + +@article{Johnson_1999, + author = "A. E. Johnson and M. Hebert", + title = "Using spin images for efficient object recognition in cluttered 3{D} scenes", + journal = "IEEE Transactions on Pattern Analysis and Machine Intelligence", + month = "May", + year = "1999", + volume = "21", + number = "5", + pages = "433 -- 449" +} + +@InProceedings{Johnson_1998, + author = {A. E. Johnson and M. Hebert}, + title = {Efficient multiple model recognition in cluttered {3-D}scenes}, + booktitle = {Proceedings of the IEEE International Conference on Computer Vision and Pattern Recognition (CVPR' 98)}, + pages = {671 -- 677}, + year = {1998}, + address = {Santa Barbara, CA, U.S.A.}, + month = {June} +} + +@inproceedings{Huber_2001, + author = "D. Huber", + title = "Automatic 3{D} {M}odeling {U}sing {R}ange {I}mages {O}btained from {U}nknown {V}iewpoints", + booktitle = "Proceedings of the Third International Conference on 3D Digital Imaging and Modeling (3DIM '01)", + month = "May", + year = "2001", + pages = "153 -- 160", + address = "Quebec City, Canada", +} + +@inproceedings{Huber_1999, + author = "D. Huber and M. Hebert", + title = "A {N}ew {A}pproach to 3--{D} {T}errain {M}apping", + booktitle = "Proceedings of the 1999 IEEE/RSJ International Conference on Intelligent Robotics and Systems (IROS '99)", + month = "October", + year = "1999", + pages = "1121 -- 1127", + publisher = "IEEE", + address = "Kyonjyu, Korea" +} + +@techreport{Zhang_1992, + author = "Z. Zhang", + title = "Iterative point matching for registration of free--form curves", + number = "RR-1658", + year = "1992", + institution = "INRIA--Sophia Antipolis", + address = "Valbonne Cedex, France", + url = "citeseer.nj.nec.com/zhang92iterative.html" +} + +@inproceedings{Schroeder_1998, + author="W. Schr{"o}der and E. Forgber and G. R{"o}h", + title = "{L}aser range camera applications", + booktitle = "Proceedings of the 5th ESA Workshop on Advanced Space Technologies for Robot Applications", + month = "December", + year = "1998", + address = "Noordwijk, The Netherlands" +} + +@article{Lange_2001, + author="R. Lange and P. Seitz", + title = "{S}olid-state time-of-flight range camera", + journal = "IEEE Journal of Quantum Electronics", + month = "March", + year = "2001", + volume = "37", + number = "3", +} + +@inproceedings{Banos_1998, + author="H. Gonzales-Banos and J. Latombe", + title = "Planning {R}obot {M}otions for {R}ange--{I}mage {A}cqusition and {A}utomatic 3{D} {M}odel {C}onstruction", + booktitle = "Proceedings of AAAI Fall Symposium", + month = "October", + year = "1998", + publisher = "AAAI Press", + address = "Menlo Park, CA, USA" +} + +@inproceedings{Banos_2000, + author="H. Gonzalez-Banos and E. Mao and J.C. Latombe and T.M. Murali and A. Efrat", + title = "Planning {R}obot {M}otion {S}trategies for {E}fficient {M}odel {C}onstruction", + booktitle = "Robotics Research -- The 9th International Symposium (ISRR'99)", + year = "2000", + publisher = "Springer", + pages = "345 -- 352", + editor = "J. Hollerbach and D. Koditschek" +} + +@inproceedings{Banta_1995, + author="J. Banta and Y. Zhieng and X. Wang and G. Zhang and M. Smith and M. Abidi", + title = "A ``{B}est--{N}ext--{V}iew'' {A}lgorithm for {T}hree--{D}imensional {S}cene {R}econstruction {U}sing {R}ange {I}mages", + booktitle = "Proceedings SPIE (Intelligent Robots and Computer Vision XIV: Algorithms), vol 2588", + year = "1995", + editor = "D. Casasent", + pages = "418 -- 429" +} + +@inproceedings{Thrun_2000, + author="S. Thrun and D. Fox and W. Burgard", + title = "A real-time algorithm for mobile robot mapping with application to multi robot and 3{D} mapping", + booktitle = "Proceedings of the IEEE International Conference on Robotics and Automation (ICRA '00)", + month = "April", + year = "2000", + address = "San Francisco, CA, USA", +} + +@article{Thrun_2001, + author="S. Thrun and D. Fox and W. Burgard and F. Dellaert", + title = "{R}obust {M}onte {C}arlo {L}ocalization for {M}obile {R}obots", + journal = "Artificial Intelligence", + year = "2001", + month = "Summer", +} + + +@inproceedings{Haehnel_2001, + author="D. H{\"a}hnel and W. Burgard and S. Thrun", + title = "Learning {C}ompact 3{D} {M}odels of {I}ndoor and {O}utdoor {E}nvironments with a {M}obile {R}obot", + booktitle = "Proceedings of the fourth European workshop on advanced mobile robots (EUROBOT '01)", + month = "September", + year = "2001", + address = "Lund, Sweden", +} + +@inproceedings{Haehnel_2002, + author="D. H{"a}hnel and W. Burgard", + title = "{P}robabilistic {M}atching for {3D} {S}can {R}egistration", + booktitle = "Proceedings of the second German conference on robotics (ROBOTIK '02)", + month = "June", + year = "2002", + address = "Ludwigsburg, Germany", +} + +@inproceedings{Rusi_2001, + author="S. Rusinkiewicz and M. Levoy", + title = "Efficient variants of the {ICP} algorithm", + booktitle = "Proceedings of the Third International Conference on 3D Digital Imaging and Modellling (3DIM '01)", + month = "May", + year = "2001", + address = "Quebec City, Canada", + pages = "145 -- 152", +} + +@inproceedings{Lorusso_1995, + author = "A. Lorusso and D. Eggert and R. Fisher", + title = "A {C}omparison of {F}our {A}lgorithms for {E}stimating 3-{D} {R}igid {T}ransformations", + Booktitle = "Proceedings of the 4th British Machine Vision Conference (BMVC '95)", + pages = "237 -- 246", + address = "Birmingham, England", + month = "September", + year = "1995", + url = "citeseer.nj.nec.com/lorusso95comparison.html" +} + +@article{Curless_1996, + author = "B. Curless and M. Levoy", + title = "A {V}olumetric {M}ethod for {B}uilding {C}omplex {M}odels from {R}ange {I}mages", + journal = "Computer Graphics", + volume = "30", + number = "{Annual Conference Series}", + pages = "303 -- 312", + year = "1996", + url = "citeseer.nj.nec.com/curless96volumetric.html" +} + +@inproceedings{Banos_2001, + author = "H. Gonzalez-Banos and J. Latombe", + title = "A {R}andomized {A}rt-{G}allery {A}lgorithm for {S}ensor {P}lacement", + booktitle = "Proceedings of ACM Symposium on Computational Geometry (SoCG'01)", + month = "June", + year = "2001", + address = "Medford, MA, USA" +} + +@inproceedings{Latombe_2000, + author = "H. Gonzalez-Banos and J. Latombe", + title = "Robot {N}avigation for {A}utomatic {M}odel {C}onstruction {U}sing {S}afe {R}egions", + booktitle = "Lecture Notes in Control and Information Sciences, 271, (Proceedings of International Symposium on Experimental Robotics (ISER '00))", + month = "December", + year = "2000", + address = "Waikiki, HI, USA", + editor = "D. Russ and S. Singh", + pages = "405 -- 415", + publisher = "Springer", +} + +@phdthesis{Verbeek_2001, + author = "Chr. Verbeek", + title = "Reaktive {S}teuerung autonomer mobiler {R}oboter", + school = "Technische Fakult{\"a}t der {U}niversit{\"a}t Bielefeld", + month = "January", + year = "2001", +} + + +@inproceedings{Pulli_1997, + author = "K. Pulli and T. Duchamp and H. Hoppe and J. McDonald and L. Shapiro and W. Stuetzle", + title = "Robust meshes from multiple range maps", + booktitle = "Proceedings IEEE International Conference on Recent Advances in 3D Digital Imaging and Modeling (3DIM '97)", + address = "Ottawa, Canada", + month = "May", + year = "1997", + url = "citeseer.nj.nec.com/pulli97robust.html" +} + +@inproceedings{Benjemaa_1997, + author = "R. Benjemaa and F. Schmitt", + title = "{F}ast {G}lobal {R}egistration of {3D} {S}ampled {S}urfaces {U}sing a {M}ulti-{Z}-{B}uffer {T}echnique", + booktitle = "Proceedings IEEE International Conference on Recent Advances in 3D Digital Imaging and Modeling (3DIM '97)", + address = "Ottawa, Canada", + month = "May", + year = "1997", +} + +@article{Hoppe_1992, + author = "H. Hoppe and T. DeRose and T. Duchamp and J. McDonald and W. Stuetzle", + title = "Surface reconstruction from unorganized points", + journal = "Computer Graphics", + volume = "26", + number = "2", + pages = "71 -- 78", + year = "1992", + url = "citeseer.nj.nec.com/hoppe92surface.html" +} + +@misc{City_2001, + author = "City Project Page", + title = "\texttt{http://graphics.lcs.mit.edu/city/city.html}", + year = "2001" +} + +@misc{Bahnplanung_2001, + author = "R. Klein and Chr. Icking and E. Langetepe", + title = "Entwicklung, {A}nalyse und experimentelle {E}rprobung von kompetitiven {A}lgorithmen f{\"u}r die {B}ahnplanung autonomer {S}ysteme, \texttt{http://web.informatik.uni-bonn.de/I/research/dfg-bahnplanung/}", + year = "2001" +} + +@article{Hoffmann_2002, + author ="F. Hoffmann and Chr. Icking and R. Klein and K. Kriegel", + title = "The Polygon Exploration Problem", + journal = "SIAM Journal on Computing", + volume = "31", + number = "2", + pages = "577--600", + year = "2002", + url = "citeseer.nj.nec.com/493716.html" +} + + +@inproceedings{Stamos_2000, + author = "I. Stamos and P. Allen", + title = "3-{D} {M}odel {C}onstruction {U}sing {R}ange and {I}mage {D}ata", + booktitle = "Proceedings of the Conference on Computer Vision and Pattern Recognition (CVPR '00)", + month = "June", + year = "2000", + address = "USA" +} + +@inproceedings{Allen_2001, + author = "P. Allen and I. Stamos and A. Gueorguiev and E. Gold and P. Blaer", + title = "{AVENUE:} {A}utomated {S}ite {M}odelling in {U}rban {E}nvironments", + booktitle = "Proceedings of the Third International Conference on 3D Digital Imaging and Modeling (3DIM '01)", + month = "May", + year = "2001", + address = "Quebec City, Canada", +} + +@inproceedings{Gueorguiev_2000, + author = "A. Gueorguiev and P. Allen and E. Gold and P. Blaer", + title = "{D}esign, {A}rcitecture and {C}ontrol of a {M}obile Site-{M}odelling {R}obot", + booktitle = "Proceedings of the IEEE International Conference on Robotics and Automation (ICRA '00)", + month = "April", + year = "2000", + address = "San Francisco, CA, USA" +} + +@inproceedings{Allen_1998, + author = "P. Allen and M. Reed and I. Stamos", + title = "View {P}lanning for {S}ite {M}odeling", + booktitle = "Proceedings of the DARPA Image Understanding Workshop", + address = "Monterey", + month = "November", + year = "1998" +} + +@inproceedings{Reed_1997, + author = "M. Reed and P. Allen and I. Stamos", + title = "Automated {M}odel {A}cquisition from {R}ange {I}mages with {V}iew {P}lanning", + booktitle = "Proceedings of the Conference on Computer Vision and Pattern Recognition (CVPR '97)", + address = "Puerto Rico", + year = " 1997", +} + +@article{Reed_1999, + author ="M. Reed and P. Allen", + title = "3-{D} {M}odeling from {R}ange {I}magery: {A}n {I}ncremental {M}ethod with a {P}lanning {C}omponent", + journal = "{I}mage and {V}ision {C}omputing", + volume = "17", + pages = "99 -- 111", + year = "1999" +} + +@inproceedings{Yang_1998, + author = "P. Allen and R. Yang", + title = "Registering, {I}ntegrating, and {B}uilding {CAD} {M}odels from {R}ange {D}ata", + booktitle = "Proceedings of the IEEE International Conference on Robotics and Automation (ICRA '98)", + month = "May", + year = "1998", + address = "Leuven, Belgium", +} + +@misc{matrixfaq, + author = "Matrix FAQ", + title = "Version 2, \texttt{http://skal.planet-d.net/demo/matrixfaq.htm}", + year = "1997" +} + +@techreport{Dam_1998, + author = "E. Dam and M. Koch and M. Lillholm", + title = "{Q}uaternion, {I}nterpolation and {A}nimation", + number = "DIKU-TR-98/5", + year = "1998", + institution = "Department of Computer Science University of Copenhagen", + address = "Copenhagen, Denmark", +} + +@article{Hart_1994, + author ="J. Hart and G. Francis and L. Kauffmann", + title = "{V}isualizing {Q}uaternion {Rotation}", + journal = "{ACM} {T}ransactions on {G}raphics", + volume = "13", + pages = "256 -- 276", + year = "1994", + month = "July", +} + +@inproceedings{Pervin_1983, + author = "E. Pervin and J. Webb", + title = "{Q}uaternions for computer vision and robotics", + booktitle = "Proceedings of the Conference on Computer Vision and Pattern Recognition (CVPR '83)", + address = "Washington, D.C., USA", + year = " 1983", +} + +@misc{Hamilton, + author = "Sir William Rowan Hamilton (1805-1865)", + title = "\texttt{http://www.maths.tcd.ie/pub/{H}istMath/ {P}eople/{H}amilton/}", + year = "2000" +} + +@inproceedings{Hamilton_1843, + author = "W. Hamilton", + title = "{O}n a new {S}pecies of {I}maginary {Q}uantities connected with a theory of {Q}uaternions", + booktitle = "Proceedings of the Royal Irish Academy", + month = "November", + address = "Dublin, Ireland", + year = " 1843", +} + +@article{Eggert_1998, + author ="D. Eggert and A. Fitzgibbon and R. Fisher", + title = "{S}imultaneous {R}egistration of {M}ultiple {R}ange {V}iews {S}atisfying {G}lobal {C}onsistency {C}onstraints For {U}se {I}n {R}everse {E}ngineering", + journal = "{C}omputer {V}ision and {I}mage {U}nderstanding", + volume = "69", + pages = "253 -- 272", + year = "1998", + month = "March", +} + +@inproceedings{Michelangelo_2000, + author = "M. Levoy and K. Pulli and B. Curless and S. Rusinkiewicz and D. Koller and L. Pereira and M. Ginzton and S. Anerson and J. Davis and J. Ginsberg and J. Shade and D. Fulk", + title = "{T}he {D}igital {M}ichelangelo {P}roject: {3D} {S}canning of {L}arge {S}tatues", + booktitle = "Proceedings of the ACM SIGGRAPH", + year = "2000", + address = "New Orleans, USA", + month = "July", +} + +@inproceedings{Pulli_1999, + author = "K. Pulli", + title = "{M}ultiview {R}egistration for {L}arge {D}ata {S}ets", + booktitle = "Proceedings of the 2nd International Conference on 3D Digital Imaging and Modeling (3DIM '99)", + address = "Ottawa, Canada", + year = "1999", + month = "October", + pages = "160 -- 168", +} + +@inproceedings{Stoddart_1996, + author = "A. Stoddart and A. Hilton", + title = "{R}egistration of multiple point sets", + booktitle = "Proceedings of the 13th IAPR International Conference on Pattern Recognition", + year = "1996", + pages = "40--44", + address = "Vienna, Austria", + month = "August", +} + +@inproceedings{Cunnington_1999, + author = "S. Cunnington and A. Stoddart", + title = "{N}-{V}iew {P}oint {S}et {R}egistration: {A} {C}omparison", + Booktitle = "Proceedings of the 10th British Machine Vision Conference (BMVC '99)", + year = "1999", + address = "Nottingham, UK.", + url = "citeseer.nj.nec.com/319525.html" +} + +@article{Blais_1995, + author ="G. Blais and D. Levine", + title = "{R}egistration {M}ultiview {R}ange {D}ata to {C}reate 3{D} {C}omputer {O}bjects", + journal = "{P}attern {A}nalysis and {M}achine {I}ntelligence", + volume = "17", + number ="8", + pages = "820 -- 824", + year = "1995", + month = "August", +} + +@article{Benjemaa_1998, + author ="R. Benjemaas and F. Schmitt", + title = "{A} {S}olution {F}or {T}he {R}egistration {O}f {M}ultiple 3{D} {P}oint {S}ets {U}sing {U}nit {Q}uaternions", + journal = "{C}omputer {V}ision -- ECCV '98", + volume = "2", + pages = "34 -- 50", + year = "1998", + publisher = "Springer Verlag", +} + +@inproceedings{Frueh_2001_1, + author = "C. Fr{\"u}h and A. Zakhor", + title = "3{D} {M}odel {G}eneration for {C}ities {U}sing {A}erial {P}hotographs and {G}round {L}evel {L}aser {S}cans", + Booktitle = "Proceedings of the Computer Vision and Pattern Recognition Conference (CVPR '01)", + year = "2001", + month = "December", + address = "Kauai, Hawaii, USA", +} + +@inproceedings{Frueh_2001_2, + author = "C. Fr{\"u}h and A. Zakhor", + title = "{F}ast 3{D} {M}odel {G}eneration in {U}rban {E}nvironments", + Booktitle = "Proceedings of the 4th International Conference on Multisensor Fusion and Integration for Intelligent Systems (MFI '01)", + year = "2001", + month = "August", + address = "Baden Baden, Germany", +} + +@inproceedings{Sequeira_1999, + author = "V. Sequeira and K. Ng and E. Wolfart and J. Goncalves and D. Hogg", + title = "{A}utomated {3D} reconstruction of interiors with multiple scan--views", + booktitle = "Proceedings of SPIE, Electronic Imaging '99, The Society for Imaging Science and Technology /SPIE's 11th Annual Symposium", + year = "1999", + address = "San Jose, CA, USA", + month = "January", +} + +@Article{Sequeira_1995, + author= "V. Sequeira and J. Goncalves and M. Ribeiro", + title = "{3D} environment modelling using laser range sensing", + year = "1995", + journal = "Robotics and Automation", + pages = "81 -- 91", + volume = "16", + publisher = "Elsevier", +} + +@inproceedings{Sappa_2000, + author = "A. Sappa and M. Devy and M. Garcia", + title = "{M}odelling {B}uilt {E}nvironments from {L}arge {R}ange {I}mages using {A}daptive {T}riangular {M}eshes", + booktitle = "Proceedings of the 8th International Symposium on Intelligent Robotic Systems, (SIRS '00)", + year = "2000", + address = "Reading, United Kingdom", + month = "July", + pages = "23 -- 29" +} + +@inproceedings{Garcia_2000, + author = "A. Sappa and M. Garcia", + title = "{I}ncremental {M}ultiview {I}ntegration of {R}ange {I}mages", + booktitle = "Proceedings of the 15th IAPR International Conference on Pattern Recognition", + year = "2000", + pages = "546 -- 549", + address = "Barcelona, Spain", + month = "September", +} + +@inproceedings{Garcia_1998, + author = "M. Garcia and S. Velazquez and A. Sappa", + title = "{A} {T}wo--{S}tage {A}lgorithm for {P}lanning the {N}ext {V}iew {F}rom {R}ange {I}mages", + Booktitle = "Proceedings of the 9th British Machine Vision Conference (BMVC '98)", + pages = "720 -- 729", + address = "Southampton, United Kingdom", + year = "1998", +} + +@inproceedings{Huber_2001_1, + author = "Daniel F. Huber and Martial Hebert", + title = "Fully Automatic Registration of Multiple 3D Data Sets", + booktitle = "IEEE Computer Society Workshop on Computer Vision Beyond the Visible Spectrum (CVBVS '01)", + month = "December", + year = "2001" +} + +@inproceedings{Turk_1994, + author = "G. Turk and M. Levoy", + title = "{Z}ippered polygon meshes from range images", + booktitle = "Proceedings of the ACM SIGGRAPH '94", + year = "1994", + address = "Orlando, FL, USA", + month = "July", + pages = "311 -- 318", +} + +@inproceedings{Zhao_2001, + author = "H. Zhao and R. Shibasaki", + title = "{R}econstructing {T}extured {CAD} {M}odel of {U}rban {E}nvironment {U}sing {V}ehicle-{B}orne {L}aser {R}ange {S}canners and {L}ine {C}ameras", + booktitle = "Second International Workshop on Computer Vision System (ICVS '01)", + year = "2001", + address = "Vancouver, Canada", + month = "July", + pages = "284 -- 295", +} + +@article{Zhao_2000, + author = "H. Zhao and R. Shibasaki", + title = "{R}econstruction of {T}extured Urban {3D} {M}odel by {G}round-{B}ased {L}aser {R}ange and {CCD} {I}mages", + journal = "IEICE Transactions on Information and Systems", + volume = "E38-D", + number ="7", + pages = ".1429 -- 1440", + year = "2000", +} + +@inproceedings{Indiveri_1999, + author = "G. Indiveri", + title = "{K}inematic {T}ime-invariant {C}ontrol of a {2D} {N}onholonomic {V}ehicle", + booktitle = "Proceedings of the 38th Conference on Decision and Control, (CDC '99)", + address = "Phoenix, USA", + month = "December", + year = "1999", +} + +@article{Carlsson_1999, + author ="S. Carlsson and B. Nilsson", + title = "{C}omputing {V}ision {P}oints in {P}olygons", + journal = "{A}lgorithmica", + volume = "24", + number ="1", + pages = "50 -- 75", + year = "1999", +} + +@article{Vatti_1992, + author ="B. Vatti", + title = "{A} {G}eneric {S}olution to {P}olygon {C}lipping", + journal = "{C}ommunications of the {ACM}", + volume = "35", + number ="7", + pages = "56 -- 63", + year = "1992", +} + +@article{Amenta_2001, + author ="N. Amenta and S. Choi and R. Kolluri", + title = "{T}he {P}ower {C}rust", + journal = "{C}ommunications of the {ACM}", + volume = "35", + number ="7", + pages = "56 -- 63", + year = "2001", +} + +@article{Prytherch_2002, + author ="D. Prytherch and M. McLundie", + title = "{S}o what is haptics anyway?", + journal = "{R}esearch issues in {A}rt {D}esign and {M}edia", + publisher = "{T}he {R}esearch {T}raining {I}nitiative", + volume = "Spring", + number ="2", + pages = "1 -- 16", + year = "2002", +} + +@book{Streri_2002, + author = "A. Streri", + title = "Seeing, Reaching, and touching (cited through \cite{Gonz_1998}) ", + publisher = "The MIT Press", + address = "Cambridge, MA, USA", + year = "1993", +} + +@inproceedings{Gonz_1998, + author = "L. Goncalves and R. Grupen and A. Oliveira", + title = "{A} {C}ontrol {A}rchitecture for {M}ulti-modal {S}ensory {I}ntegration", + booktitle = "Proceedings of the 9th IEEE International Conference on Computer Graphics and Image Processing (SIBGRAPH '98)", + year = "1998", + month = "October", + address = "Rio de Janeiro, RJ, Brazil", +} + +@incollection{Bern_2000, + author = "M. Bern and P. Plassmann", + title = "Mesh Generation", + booktitle = "Handbook of Computational Geometry", + publisher = "Elsevier Science", + editor = "J. Sack and J. Urrutia", + year = "2000", + url = "citeseer.nj.nec.com/bern00mesh.html" +} + +@misc{WDR, + author = "WDR", + title = "{L}eonardo {S}chwerpunkt {H}aptik \texttt{http://capehorn.gmd.de:8080/download/haptik/\linebreak haptik.mp3}" +} + +@misc{CAMERA, + author = "CAMERA: CAd Modelling of Built Environments from Range Analysis", + title = "\texttt{http://www.dai.ed.ac.uk/homes/rbf/{CAMERA}/camera.htm}", + year = "2000" +} + +@misc{RESOLV, + author = "{The ACTS RESOLV (REconstruction using Scanned Laser and Video) Project}", + title = "\texttt{http://www.comp.leeds.ac.uk/resolv/}", + year = "1999" +} + +@misc{RIEGLold, + author = "RIEGL Laser Measurement Systems GmbH", + title = "\texttt{http://www.riegl.co.at/}", + year = "2001" +} + +@misc{AVENUE, + author = "{AVENUE (Autonomous Vehicle for Exploration and Navigation in Urban Environments) Project}", + title = "\texttt{http://www.cs.columbia.edu/} \texttt{robotics/projects/avenue/}", + year = "2001" +} + +@misc{3DMAP, + author = "3D Terrain Mapping Using Range Sensors", + title = "\texttt{http://www-2.cs.cmu.edu/$\sim$dhuber/ mapping/}", + year = "1999" +} + +@misc{URLTHRUN, + author = "CMU's 3D Robot Mapping Project", + title = "\texttt{http://www-2.cs.cmu.edu/$\sim$thrun/3D/index.html}", + year = "2000" +} + +@misc{3DFAX, + author = "Project to build a 3D fax machine", + title = "\texttt{http://graphics.stanford.edu/projects/faxing/}", + year = "2001" +} + +@misc{LYAPUNOV, + author = "The Lyapunov Function, Wolfram Research{,}", + title = "\texttt{http://mathworld.wolfram.com/Lyapunov\linebreak Function.html}", + year = "2002" +} + +@misc{CLAY, + author = "Clay Mathematics Institute", + title = "\texttt{http://www.claymath.org/prizeproblems/index.htm}", + month = "May", + year = "2000" +} + +@misc{POWERCRUST, + author = "The Power Crust", + title = "\texttt{http://www.cs.utexas.edu/users/amenta/powercrust/}", + year = "2002" +} + +@misc{INTRO, + author = "MIT's Bouncing Baby Robot?", + title = "\texttt{http://www.controleng.com/archives/2000/ctl0101.00\linebreak /000101w1.htm}", + year = "2000" +} + +@misc{SIEMENS3D, + author = "Siemens 3D-Sensor", + title = "http://w4.siemens.de/FuI/de/archiv/newworld/heft2\_01/artikel03/", + year = "2001", +} + + + + + + diff --git a/.svn/pristine/00/003ff39a1d369582c600d6ca9552e3db0c6ebe4a.svn-base b/.svn/pristine/00/003ff39a1d369582c600d6ca9552e3db0c6ebe4a.svn-base new file mode 100644 index 0000000..4e61cec --- /dev/null +++ b/.svn/pristine/00/003ff39a1d369582c600d6ca9552e3db0c6ebe4a.svn-base @@ -0,0 +1,199 @@ +//---------------------------------------------------------------------- +// File: ANN.cpp +// Programmer: Sunil Arya and David Mount +// Description: Methods for ANN.h and ANNx.h +// Last modified: 01/04/05 (Version 1.0) +//---------------------------------------------------------------------- +// Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +// David Mount. All Rights Reserved. +// +// This software and related documentation is part of the Approximate +// Nearest Neighbor Library (ANN). This software is provided under +// the provisions of the Lesser GNU Public License (LGPL). See the +// file ../ReadMe.txt for further information. +// +// The University of Maryland (U.M.) and the authors make no +// representations about the suitability or fitness of this software for +// any purpose. It is provided "as is" without express or implied +// warranty. +//---------------------------------------------------------------------- +// History: +// Revision 0.1 03/04/98 +// Initial release +// Revision 1.0 04/01/05 +// Added performance counting to annDist() +//---------------------------------------------------------------------- + +#include +#include // all ANN includes +#include // ANN performance + +using namespace std; // make std:: accessible + +//---------------------------------------------------------------------- +// Point methods +//---------------------------------------------------------------------- + +//---------------------------------------------------------------------- +// Distance utility. +// (Note: In the nearest neighbor search, most distances are +// computed using partial distance calculations, not this +// procedure.) +//---------------------------------------------------------------------- + +ANNdist annDist( // interpoint squared distance + int dim, + ANNpoint p, + ANNpoint q) +{ + register int d; + register ANNcoord diff; + register ANNcoord dist; + + dist = 0; + for (d = 0; d < dim; d++) { + diff = p[d] - q[d]; + dist = ANN_SUM(dist, ANN_POW(diff)); + } + ANN_FLOP(3*dim) // performance counts + ANN_PTS(1) + ANN_COORD(dim) + return dist; +} + +//---------------------------------------------------------------------- +// annPrintPoint() prints a point to a given output stream. +//---------------------------------------------------------------------- + +void annPrintPt( // print a point + ANNpoint pt, // the point + int dim, // the dimension + std::ostream &out) // output stream +{ + for (int j = 0; j < dim; j++) { + out << pt[j]; + if (j < dim-1) out << " "; + } +} + +//---------------------------------------------------------------------- +// Point allocation/deallocation: +// +// Because points (somewhat like strings in C) are stored +// as pointers. Consequently, creating and destroying +// copies of points may require storage allocation. These +// procedures do this. +// +// annAllocPt() and annDeallocPt() allocate a deallocate +// storage for a single point, and return a pointer to it. +// +// annAllocPts() allocates an array of points as well a place +// to store their coordinates, and initializes the points to +// point to their respective coordinates. It allocates point +// storage in a contiguous block large enough to store all the +// points. It performs no initialization. +// +// annDeallocPts() should only be used on point arrays allocated +// by annAllocPts since it assumes that points are allocated in +// a block. +// +// annCopyPt() copies a point taking care to allocate storage +// for the new point. +// +// annAssignRect() assigns the coordinates of one rectangle to +// another. The two rectangles must have the same dimension +// (and it is not possible to test this here). +//---------------------------------------------------------------------- + +ANNpoint annAllocPt(int dim, ANNcoord c) // allocate 1 point +{ + ANNpoint p = new ANNcoord[dim]; + for (int i = 0; i < dim; i++) p[i] = c; + return p; +} + +ANNpointArray annAllocPts(int n, int dim) // allocate n pts in dim +{ + ANNpointArray pa = new ANNpoint[n]; // allocate points + ANNpoint p = new ANNcoord[n*dim]; // allocate space for coords + for (int i = 0; i < n; i++) { + pa[i] = &(p[i*dim]); + } + return pa; +} + +void annDeallocPt(ANNpoint &p) // deallocate 1 point +{ + delete [] p; + p = NULL; +} + +void annDeallocPts(ANNpointArray &pa) // deallocate points +{ + delete [] pa[0]; // dealloc coordinate storage + delete [] pa; // dealloc points + pa = NULL; +} + +ANNpoint annCopyPt(int dim, ANNpoint source) // copy point +{ + ANNpoint p = new ANNcoord[dim]; + for (int i = 0; i < dim; i++) p[i] = source[i]; + return p; +} + + // assign one rect to another +void annAssignRect(int dim, ANNorthRect &dest, const ANNorthRect &source) +{ + for (int i = 0; i < dim; i++) { + dest.lo[i] = source.lo[i]; + dest.hi[i] = source.hi[i]; + } +} + + // is point inside rectangle? +ANNbool ANNorthRect::inside(int dim, ANNpoint p) +{ + for (int i = 0; i < dim; i++) { + if (p[i] < lo[i] || p[i] > hi[i]) return ANNfalse; + } + return ANNtrue; +} + +//---------------------------------------------------------------------- +// Error handler +//---------------------------------------------------------------------- + +void annError(char *msg, ANNerr level) +{ + if (level == ANNabort) { + cerr << "ANN: ERROR------->" << msg << "<-------------ERROR\n"; + exit(1); + } + else { + cerr << "ANN: WARNING----->" << msg << "<-------------WARNING\n"; + } +} + +//---------------------------------------------------------------------- +// Limit on number of points visited +// We have an option for terminating the search early if the +// number of points visited exceeds some threshold. If the +// threshold is 0 (its default) this means there is no limit +// and the algorithm applies its normal termination condition. +// This is for applications where there are real time constraints +// on the running time of the algorithm. +//---------------------------------------------------------------------- + +int ANNmaxPtsVisited = 0; // maximum number of pts visited +int ANNptsVisited; // number of pts visited in search + +//---------------------------------------------------------------------- +// Global function declarations +//---------------------------------------------------------------------- + +void annMaxPtsVisit( // set limit on max. pts to visit in search + int maxPts) // the limit +{ + ANNmaxPtsVisited = maxPts; +} diff --git a/.svn/pristine/00/005448ebd9d9464d1a40fef89097904af691347a.svn-base b/.svn/pristine/00/005448ebd9d9464d1a40fef89097904af691347a.svn-base new file mode 100644 index 0000000..cb9556c --- /dev/null +++ b/.svn/pristine/00/005448ebd9d9464d1a40fef89097904af691347a.svn-base @@ -0,0 +1,96 @@ +/** + * @file + * @brief + * + * @author Thomas Escher + */ + +#ifndef MULTI_ARRAY_H +#define MULTI_ARRAY_H + +#include +using std::cout; +using std::cerr; +using std::endl; + +#include "scanserver/cache/cacheDataAccess.h" + + + +/** + * @brief Point-Array imitation for xyz[i][0..2] calls + */ +template +class TripleArray : public CacheDataAccess { +public: + //! Take ownership of a cache data + TripleArray(CacheDataAccess&& cd) : CacheDataAccess(cd) {} + + //! Move constructor of this type like CacheData, transfer lock + TripleArray(TripleArray&& other) : CacheDataAccess(other) {} + + //! Represent the CacheData as an array of T[3]'s + inline return_type* operator[](unsigned int i) const + { + return reinterpret_cast(getData()) + (i*3); + } + + //! Count of T[3] objects in this CacheData + inline unsigned int size() const { return CacheDataAccess::getSize() / (3*sizeof(return_type)); } +}; + +/** + * @brief Point-Array imitation for value[i] calls + */ +template +class SingleArray : public CacheDataAccess { +public: + //! Take ownership of a cache data + SingleArray(CacheDataAccess&& cd) : CacheDataAccess(cd) {} + + //! Move constructor of this type like CacheData, transfer lock + SingleArray(SingleArray&& other) : CacheDataAccess(other) {} + + //! Represent the CacheData as an array of T's + inline return_type& operator[](unsigned int i) const + { + return *(reinterpret_cast(getData()) + i); + } + + //! Count of T objects in this CacheData + inline unsigned int size() const { return CacheDataAccess::getSize() / sizeof(return_type); } +}; + +typedef TripleArray DataXYZ; +typedef TripleArray DataRGB; +typedef SingleArray DataReflectance; +typedef SingleArray DataAmplitude; +typedef SingleArray DataType; +typedef SingleArray DataDeviation; + +/** + * To simplify T** access patterns for an array of T[3] (points), this RAII type class helps creating and managing this pointer array on the stack. + */ +template +class Array { +public: + //! Create a temporary array and fill it sequentially with pointers to each point + Array(const TripleArray& data) { + unsigned int size = data.size(); + m_array = new T*[size]; + for(unsigned int i = 0; i < size; ++i) + m_array[i] = data[i]; + } + + //! Removes the temporary array on destruction (RAII) + ~Array() { + delete[] m_array; + } + + //! Conversion operator to interface the MultiArray to a T** array + inline T* const* get() const { return m_array; } +private: + T** m_array; +}; + +#endif //MULTI_ARRAY_H diff --git a/.svn/pristine/00/00dea55fd237baa2a698914f68cf7c969550f560.svn-base b/.svn/pristine/00/00dea55fd237baa2a698914f68cf7c969550f560.svn-base new file mode 100644 index 0000000..6d5fd54 --- /dev/null +++ b/.svn/pristine/00/00dea55fd237baa2a698914f68cf7c969550f560.svn-base @@ -0,0 +1,56 @@ + + +int glui_img_leftarrow[] = { 16, 16, /* width, height */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 192,192,192, 128,128,128, 128,128,128, 128,128,128, + 128,128,128, 128,128,128, 128,128,128, 128,128,128, 128,128,128, + 128,128,128, 128,128,128, 128,128,128, 128,128,128, 128,128,128, + 128,128,128, 0, 0, 0, 192,192,192, 255,255,255, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 128,128,128, 0, 0, 0, 192,192,192, 255,255,255, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 128,128,128, 0, 0, 0, 192,192,192, + 255,255,255, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 128,128,128, 0, 0, 0, + 192,192,192, 255,255,255, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 0, 0, 0, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 128,128,128, + 0, 0, 0, 192,192,192, 255,255,255, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 0, 0, 0, 0, 0, 0, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 128,128,128, 0, 0, 0, 192,192,192, 255,255,255, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 128,128,128, 0, 0, 0, 192,192,192, 255,255,255, + 192,192,192, 192,192,192, 192,192,192, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 128,128,128, 0, 0, 0, 192,192,192, + 255,255,255, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 128,128,128, 0, 0, 0, + 192,192,192, 255,255,255, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 0, 0, 0, 0, 0, 0, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 128,128,128, + 0, 0, 0, 192,192,192, 255,255,255, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 0, 0, 0, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 128,128,128, 0, 0, 0, 192,192,192, 255,255,255, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 128,128,128, 0, 0, 0, 192,192,192, 255,255,255, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 128,128,128, 0, 0, 0, 192,192,192, + 255,255,255, 255,255,255, 255,255,255, 255,255,255, 255,255,255, + 255,255,255, 255,255,255, 255,255,255, 255,255,255, 255,255,255, + 255,255,255, 255,255,255, 255,255,255, 128,128,128, 0, 0, 0, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 0, 0, 0, +}; diff --git a/.svn/pristine/01/01262d6d84046021f5cc73ba1b2fa8239a2e18f4.svn-base b/.svn/pristine/01/01262d6d84046021f5cc73ba1b2fa8239a2e18f4.svn-base new file mode 100644 index 0000000..29b98c7 --- /dev/null +++ b/.svn/pristine/01/01262d6d84046021f5cc73ba1b2fa8239a2e18f4.svn-base @@ -0,0 +1,188 @@ +/* + * cacheManager implementation + * + * Copyright (C) Thomas Escher, Kai Lingemann + * + * Released under the GPL version 3. + * + */ + +#include "scanserver/cache/cacheManager.h" + +#include +#include + +#include + +using namespace boost::interprocess; +using std::runtime_error; +using std::vector; +using std::string; + +#include +using std::cout; +using std::cerr; +using std::endl; + +#ifdef _MSC_VER +#include +#else +#include // mlock for avoiding swaps +#endif + + +CacheManager::CacheManager(SegmentManager* sm, const char* shm_name, std::size_t cache_size) : + m_segment_manager(sm), + m_shm_name(shm_name) +{ + // remove any existing shared memory that wasn't cleaned up + shared_memory_object::remove(m_shm_name.c_str()); + + try { + m_msm = new managed_shared_memory(create_only, m_shm_name.c_str(), cache_size); +#ifndef WIN32 + cout << " Locking cache memory... " << std::flush; + int ret = mlock(m_msm->get_address(), m_msm->get_size()); + if(ret == 0) + cout << "success."; + else if(ret == -EPERM) + cout << "unsuccessful, no permissions."; + else if(ret == -ENOMEM) + cout << "unsuccessful, RLIMIT_MEMLOCK too small."; + else + cout << "unsuccessful, error=" << ret << "."; + cout << endl; +#endif + } catch(interprocess_exception& e) { + throw std::runtime_error(std::string("Could not create shared memory: ") + e.what()); + } +} + +CacheManager::~CacheManager() +{ + // clean up objects + for(vector::iterator it = m_objects.begin(); it != m_objects.end(); ++it) + m_segment_manager->destroy_ptr(*it); + + // remove cache data shared memory + delete m_msm; + shared_memory_object::remove(m_shm_name.c_str()); +} + +CacheObject* CacheManager::createCacheObject() +{ + CacheObject* obj = m_segment_manager->construct(anonymous_instance)(); + m_objects.push_back(obj); + return obj; +} + +bool CacheManager::loadCacheObject(CacheObject* obj) +{ + if(obj->m_handler) { + return obj->m_handler->load(); + } else { + throw runtime_error("No CacheHandler set for loading"); + } +} + +unsigned char* CacheManager::allocateCacheObject(CacheObject* obj, unsigned int size) +{ + // remove old data if this isn't a cache miss call but a direct allocate call + if(obj->m_handle != 0) { + if(size == obj->m_size) { + // INFO + //cout << "CacheManager::allocateCacheObject reusing space" << endl; + // space fits? leave it be + return reinterpret_cast(m_msm->get_address_from_handle(obj->m_handle)); + } else { + // reset CO + m_msm->destroy_ptr(m_msm->get_address_from_handle(obj->m_handle)); + obj->m_size = 0; + obj->m_handle = 0; + } + } + + // try to allocate it initially + try { + return load(obj, size); + } catch(bad_alloc& e) { + // flush behaviour below + } + + // create a list of COs to remove from memory + // TODO: create the list from the heuristic + vector loaded = m_loaded; + // try to exclusively lock COs to remove them from memory + for(vector::iterator it = loaded.begin(); it != loaded.end(); ++it) { + CacheObject* target = *it; + scoped_lock lock(target->m_mutex_in_use, try_to_lock); + if(lock) { + unload(target); + // try to allocate it + try { + return load(obj, size); + } catch(bad_alloc& e) { + // continue flushing + } + } + } + + // when flushing didn't work, there's nothing to do anymore + throw runtime_error("CacheManager could not allocate enough memory for CacheObject. All available memory is locked for used CacheObjects and you need to increase the cache memory size"); +} + +void CacheManager::invalidateCacheObject(CacheObject* obj) +{ + // remove its data + if(obj->m_handle != 0) { + // reset CO + m_msm->destroy_ptr(m_msm->get_address_from_handle(obj->m_handle)); + obj->m_size = 0; + obj->m_handle = 0; + } + + // invalidate the handler too + obj->m_handler->invalidate(); +} + +unsigned char* CacheManager::load(CacheObject* obj, unsigned int size) +{ + // INFO + //cout << " CM::load (" << size << ")" << endl; + + // allocate + unsigned char* data = m_msm->construct(anonymous_instance)[size](); + obj->m_size = size; + obj->m_handle = m_msm->get_handle_from_address(data); + + // mark it as loaded + m_loaded.push_back(obj); + + return data; +} + +void CacheManager::unload(CacheObject* obj) +{ + if(obj->m_handle == 0) return; + + // INFO + //cout << " CM::unload" << endl; + + // save the CO by its handler + unsigned char* data = reinterpret_cast(m_msm->get_address_from_handle(obj->m_handle)); + obj->m_handler->save(data, obj->m_size); + // TODO: exceptions? + + // reset CO + m_msm->destroy_ptr(data); + obj->m_size = 0; + obj->m_handle = 0; + + // mark it as unloaded + for(vector::iterator it = m_loaded.begin(); it != m_loaded.end(); ++it) { + if(obj == *it) { + m_loaded.erase(it); + break; + } + } +} diff --git a/.svn/pristine/01/01367402c246e1425d06318a597d810c9a373d98.svn-base b/.svn/pristine/01/01367402c246e1425d06318a597d810c9a373d98.svn-base new file mode 100644 index 0000000..74d2fff --- /dev/null +++ b/.svn/pristine/01/01367402c246e1425d06318a597d810c9a373d98.svn-base @@ -0,0 +1,483 @@ + +//#define WANT_STREAM +#define WANT_MATH + +#include "include.h" + +#include "newmatap.h" +//#include "newmatio.h" + +#include "tmt.h" + +#ifdef use_namespace +using namespace NEWMAT; +#endif + +// check D is sorted +void CheckIsSorted(const DiagonalMatrix& D, bool ascending = false) +{ + DiagonalMatrix D1 = D; + if (ascending) SortAscending(D1); else SortDescending(D1); + D1 -= D; Print(D1); +} + + + +void trymate() +{ + + + Tracer et("Fourteenth test of Matrix package"); + Tracer::PrintTrace(); + + { + Tracer et1("Stage 1"); + Matrix A(8,5); + { +#ifndef ATandT + Real a[] = { 22, 10, 2, 3, 7, + 14, 7, 10, 0, 8, + -1, 13, -1,-11, 3, + -3, -2, 13, -2, 4, + 9, 8, 1, -2, 4, + 9, 1, -7, 5, -1, + 2, -6, 6, 5, 1, + 4, 5, 0, -2, 2 }; +#else + Real a[40]; + a[ 0]=22; a[ 1]=10; a[ 2]= 2; a[ 3]= 3; a[ 4]= 7; + a[ 5]=14; a[ 6]= 7; a[ 7]=10; a[ 8]= 0; a[ 9]= 8; + a[10]=-1; a[11]=13; a[12]=-1; a[13]=-11;a[14]= 3; + a[15]=-3; a[16]=-2; a[17]=13; a[18]=-2; a[19]= 4; + a[20]= 9; a[21]= 8; a[22]= 1; a[23]=-2; a[24]= 4; + a[25]= 9; a[26]= 1; a[27]=-7; a[28]= 5; a[29]=-1; + a[30]= 2; a[31]=-6; a[32]= 6; a[33]= 5; a[34]= 1; + a[35]= 4; a[36]= 5; a[37]= 0; a[38]=-2; a[39]= 2; +#endif + A << a; + } + DiagonalMatrix D; Matrix U; Matrix V; + int anc = A.Ncols(); IdentityMatrix I(anc); + SymmetricMatrix S1; S1 << A.t() * A; + SymmetricMatrix S2; S2 << A * A.t(); + Real zero = 0.0; SVD(A+zero,D,U,V); CheckIsSorted(D); + DiagonalMatrix D1; SVD(A,D1); CheckIsSorted(D1); + D1 -= D; Clean(D1,0.000000001);Print(D1); + Matrix W; + SVD(A, D1, W, W, true, false); D1 -= D; W -= U; + Clean(W,0.000000001); Print(W); Clean(D1,0.000000001); Print(D1); + Matrix WX; + SVD(A, D1, WX, W, false, true); D1 -= D; W -= V; + Clean(W,0.000000001); Print(W); Clean(D1,0.000000001); Print(D1); + Matrix SU = U.t() * U - I; Clean(SU,0.000000001); Print(SU); + Matrix SV = V.t() * V - I; Clean(SV,0.000000001); Print(SV); + Matrix B = U * D * V.t() - A; Clean(B,0.000000001); Print(B); + D1=0.0; SVD(A,D1,A); CheckIsSorted(D1); + A -= U; Clean(A,0.000000001); Print(A); + D(1) -= sqrt(1248.0); D(2) -= 20; D(3) -= sqrt(384.0); + Clean(D,0.000000001); Print(D); + + Jacobi(S1, D, V); CheckIsSorted(D, true); + V = S1 - V * D * V.t(); Clean(V,0.000000001); Print(V); + D = D.Reverse(); D(1)-=1248; D(2)-=400; D(3)-=384; + Clean(D,0.000000001); Print(D); + + Jacobi(S1, D); CheckIsSorted(D, true); + D = D.Reverse(); D(1)-=1248; D(2)-=400; D(3)-=384; + Clean(D,0.000000001); Print(D); + + SymmetricMatrix JW(5); + Jacobi(S1, D, JW); CheckIsSorted(D, true); + D = D.Reverse(); D(1)-=1248; D(2)-=400; D(3)-=384; + Clean(D,0.000000001); Print(D); + + Jacobi(S2, D, V); CheckIsSorted(D, true); + V = S2 - V * D * V.t(); Clean(V,0.000000001); Print(V); + D = D.Reverse(); D(1)-=1248; D(2)-=400; D(3)-=384; + Clean(D,0.000000001); Print(D); + + EigenValues(S1, D, V); CheckIsSorted(D, true); + V = S1 - V * D * V.t(); Clean(V,0.000000001); Print(V); + D(5)-=1248; D(4)-=400; D(3)-=384; + Clean(D,0.000000001); Print(D); + + EigenValues(S2, D, V); CheckIsSorted(D, true); + V = S2 - V * D * V.t(); Clean(V,0.000000001); Print(V); + D(8)-=1248; D(7)-=400; D(6)-=384; + Clean(D,0.000000001); Print(D); + + EigenValues(S1, D); CheckIsSorted(D, true); + D(5)-=1248; D(4)-=400; D(3)-=384; + Clean(D,0.000000001); Print(D); + + SymmetricMatrix EW(S2); + EigenValues(S2, D, EW); CheckIsSorted(D, true); + D(8)-=1248; D(7)-=400; D(6)-=384; + Clean(D,0.000000001); Print(D); + + } + + { + Tracer et1("Stage 2"); + Matrix A(20,21); + int i,j; + for (i=1; i<=20; i++) for (j=1; j<=21; j++) + { if (i>j) A(i,j) = 0; else if (i==j) A(i,j) = 21-i; else A(i,j) = -1; } + A = A.t(); + SymmetricMatrix S1; S1 << A.t() * A; + SymmetricMatrix S2; S2 << A * A.t(); + DiagonalMatrix D; Matrix U; Matrix V; +#ifdef ATandT + int anc = A.Ncols(); DiagonalMatrix I(anc); // AT&T 2.1 bug +#else + DiagonalMatrix I(A.Ncols()); +#endif + I=1.0; + SVD(A,D,U,V); CheckIsSorted(D); + Matrix SU = U.t() * U - I; Clean(SU,0.000000001); Print(SU); + Matrix SV = V.t() * V - I; Clean(SV,0.000000001); Print(SV); + Matrix B = U * D * V.t() - A; Clean(B,0.000000001); Print(B); + for (i=1; i<=20; i++) D(i) -= sqrt((22.0-i)*(21.0-i)); + Clean(D,0.000000001); Print(D); + Jacobi(S1, D, V); CheckIsSorted(D, true); + V = S1 - V * D * V.t(); Clean(V,0.000000001); Print(V); + D = D.Reverse(); + for (i=1; i<=20; i++) D(i) -= (22-i)*(21-i); + Clean(D,0.000000001); Print(D); + Jacobi(S2, D, V); CheckIsSorted(D, true); + V = S2 - V * D * V.t(); Clean(V,0.000000001); Print(V); + D = D.Reverse(); + for (i=1; i<=20; i++) D(i) -= (22-i)*(21-i); + Clean(D,0.000000001); Print(D); + + EigenValues(S1, D, V); CheckIsSorted(D, true); + V = S1 - V * D * V.t(); Clean(V,0.000000001); Print(V); + for (i=1; i<=20; i++) D(i) -= (i+1)*i; + Clean(D,0.000000001); Print(D); + EigenValues(S2, D, V); CheckIsSorted(D, true); + V = S2 - V * D * V.t(); Clean(V,0.000000001); Print(V); + for (i=2; i<=21; i++) D(i) -= (i-1)*i; + Clean(D,0.000000001); Print(D); + + EigenValues(S1, D); CheckIsSorted(D, true); + for (i=1; i<=20; i++) D(i) -= (i+1)*i; + Clean(D,0.000000001); Print(D); + EigenValues(S2, D); CheckIsSorted(D, true); + for (i=2; i<=21; i++) D(i) -= (i-1)*i; + Clean(D,0.000000001); Print(D); + } + + { + Tracer et1("Stage 3"); + Matrix A(30,30); + int i,j; + for (i=1; i<=30; i++) for (j=1; j<=30; j++) + { if (i>j) A(i,j) = 0; else if (i==j) A(i,j) = 1; else A(i,j) = -1; } + Real d1 = A.LogDeterminant().Value(); + DiagonalMatrix D; Matrix U; Matrix V; +#ifdef ATandT + int anc = A.Ncols(); DiagonalMatrix I(anc); // AT&T 2.1 bug +#else + DiagonalMatrix I(A.Ncols()); +#endif + I=1.0; + SVD(A,D,U,V); CheckIsSorted(D); + Matrix SU = U.t() * U - I; Clean(SU,0.000000001); Print(SU); + Matrix SV = V.t() * V - I; Clean(SV,0.000000001); Print(SV); + Real d2 = D.LogDeterminant().Value(); + Matrix B = U * D * V.t() - A; Clean(B,0.000000001); Print(B); + Real d3 = D.LogDeterminant().Value(); + ColumnVector Test(3); + Test(1) = d1 - 1; Test(2) = d2 - 1; Test(3) = d3 - 1; + Clean(Test,0.00000001); Print(Test); // only 8 decimal figures + A.ReSize(2,2); + Real a = 1.5; Real b = 2; Real c = 2 * (a*a + b*b); + A << a << b << a << b; + I.ReSize(2); I=1; + SVD(A,D,U,V); CheckIsSorted(D); + SU = U.t() * U - I; Clean(SU,0.000000001); Print(SU); + SV = V.t() * V - I; Clean(SV,0.000000001); Print(SV); + B = U * D * V.t() - A; Clean(B,0.000000001); Print(B); + D = D*D; SortDescending(D); + DiagonalMatrix D50(2); D50 << c << 0; D = D - D50; + Clean(D,0.000000001); + Print(D); + A << a << a << b << b; + SVD(A,D,U,V); CheckIsSorted(D); + SU = U.t() * U - I; Clean(SU,0.000000001); Print(SU); + SV = V.t() * V - I; Clean(SV,0.000000001); Print(SV); + B = U * D * V.t() - A; Clean(B,0.000000001); Print(B); + D = D*D; SortDescending(D); + D = D - D50; + Clean(D,0.000000001); + Print(D); + } + + { + Tracer et1("Stage 4"); + + // test for bug found by Olof Runborg, + // Department of Numerical Analysis and Computer Science (NADA), + // KTH, Stockholm + + Matrix A(22,20); + + A = 0; + + int a=1; + + A(a+0,a+2) = 1; A(a+0,a+18) = -1; + A(a+1,a+9) = 1; A(a+1,a+12) = -1; + A(a+2,a+11) = 1; A(a+2,a+12) = -1; + A(a+3,a+10) = 1; A(a+3,a+19) = -1; + A(a+4,a+16) = 1; A(a+4,a+19) = -1; + A(a+5,a+17) = 1; A(a+5,a+18) = -1; + A(a+6,a+10) = 1; A(a+6,a+4) = -1; + A(a+7,a+3) = 1; A(a+7,a+2) = -1; + A(a+8,a+14) = 1; A(a+8,a+15) = -1; + A(a+9,a+13) = 1; A(a+9,a+16) = -1; + A(a+10,a+8) = 1; A(a+10,a+9) = -1; + A(a+11,a+1) = 1; A(a+11,a+15) = -1; + A(a+12,a+16) = 1; A(a+12,a+4) = -1; + A(a+13,a+6) = 1; A(a+13,a+9) = -1; + A(a+14,a+5) = 1; A(a+14,a+4) = -1; + A(a+15,a+0) = 1; A(a+15,a+1) = -1; + A(a+16,a+14) = 1; A(a+16,a+0) = -1; + A(a+17,a+7) = 1; A(a+17,a+6) = -1; + A(a+18,a+13) = 1; A(a+18,a+5) = -1; + A(a+19,a+7) = 1; A(a+19,a+8) = -1; + A(a+20,a+17) = 1; A(a+20,a+3) = -1; + A(a+21,a+6) = 1; A(a+21,a+11) = -1; + + + Matrix U, V; DiagonalMatrix S; + + SVD(A, S, U, V, true, true); CheckIsSorted(S); + + DiagonalMatrix D(20); D = 1; + + Matrix tmp = U.t() * U - D; + Clean(tmp,0.000000001); Print(tmp); + + tmp = V.t() * V - D; + Clean(tmp,0.000000001); Print(tmp); + + tmp = U * S * V.t() - A ; + Clean(tmp,0.000000001); Print(tmp); + + } + + { + Tracer et1("Stage 5"); + Matrix A(10,10); + + A.Row(1) << 1.00 << 0.07 << 0.05 << 0.00 << 0.06 + << 0.09 << 0.03 << 0.02 << 0.02 << -0.03; + A.Row(2) << 0.07 << 1.00 << 0.05 << 0.05 << -0.03 + << 0.07 << 0.00 << 0.07 << 0.00 << 0.02; + A.Row(3) << 0.05 << 0.05 << 1.00 << 0.05 << 0.02 + << 0.01 << -0.05 << 0.04 << 0.05 << -0.03; + A.Row(4) << 0.00 << 0.05 << 0.05 << 1.00 << -0.05 + << 0.04 << 0.01 << 0.02 << -0.05 << 0.00; + A.Row(5) << 0.06 << -0.03 << 0.02 << -0.05 << 1.00 + << -0.03 << 0.02 << -0.02 << 0.04 << 0.00; + A.Row(6) << 0.09 << 0.07 << 0.01 << 0.04 << -0.03 + << 1.00 << -0.06 << 0.08 << -0.02 << -0.10; + A.Row(7) << 0.03 << 0.00 << -0.05 << 0.01 << 0.02 + << -0.06 << 1.00 << 0.09 << 0.12 << -0.03; + A.Row(8) << 0.02 << 0.07 << 0.04 << 0.02 << -0.02 + << 0.08 << 0.09 << 1.00 << 0.00 << -0.02; + A.Row(9) << 0.02 << 0.00 << 0.05 << -0.05 << 0.04 + << -0.02 << 0.12 << 0.00 << 1.00 << 0.02; + A.Row(10) << -0.03 << 0.02 << -0.03 << 0.00 << 0.00 + << -0.10 << -0.03 << -0.02 << 0.02 << 1.00; + + SymmetricMatrix AS; AS << A; + Matrix V; DiagonalMatrix D, D1; + ColumnVector Check(6); + EigenValues(AS,D,V); CheckIsSorted(D, true); + Check(1) = MaximumAbsoluteValue(A - V * D * V.t()); + DiagonalMatrix I(10); I = 1; + Check(2) = MaximumAbsoluteValue(V * V.t() - I); + Check(3) = MaximumAbsoluteValue(V.t() * V - I); + + EigenValues(AS, D1); CheckIsSorted(D1, true); + D -= D1; + Clean(D,0.000000001); Print(D); + + Jacobi(AS,D,V); + Check(4) = MaximumAbsoluteValue(A - V * D * V.t()); + Check(5) = MaximumAbsoluteValue(V * V.t() - I); + Check(6) = MaximumAbsoluteValue(V.t() * V - I); + + SortAscending(D); + D -= D1; + Clean(D,0.000000001); Print(D); + + Clean(Check,0.000000001); Print(Check); + + // Check loading rows + + SymmetricMatrix B(10); + + B.Row(1) << 1.00; + B.Row(2) << 0.07 << 1.00; + B.Row(3) << 0.05 << 0.05 << 1.00; + B.Row(4) << 0.00 << 0.05 << 0.05 << 1.00; + B.Row(5) << 0.06 << -0.03 << 0.02 << -0.05 << 1.00; + B.Row(6) << 0.09 << 0.07 << 0.01 << 0.04 << -0.03 + << 1.00; + B.Row(7) << 0.03 << 0.00 << -0.05 << 0.01 << 0.02 + << -0.06 << 1.00; + B.Row(8) << 0.02 << 0.07 << 0.04 << 0.02 << -0.02 + << 0.08 << 0.09 << 1.00; + B.Row(9) << 0.02 << 0.00 << 0.05 << -0.05 << 0.04 + << -0.02 << 0.12 << 0.00 << 1.00; + B.Row(10) << -0.03 << 0.02 << -0.03 << 0.00 << 0.00 + << -0.10 << -0.03 << -0.02 << 0.02 << 1.00; + + B -= AS; Print(B); + + } + + { + Tracer et1("Stage 6"); + // badly scaled matrix + Matrix A(9,9); + + A.Row(1) << 1.13324e+012 << 3.68788e+011 << 3.35163e+009 + << 3.50193e+011 << 1.25335e+011 << 1.02212e+009 + << 3.16602e+009 << 1.02418e+009 << 9.42959e+006; + A.Row(2) << 3.68788e+011 << 1.67128e+011 << 1.27449e+009 + << 1.25335e+011 << 6.05413e+010 << 4.34573e+008 + << 1.02418e+009 << 4.69192e+008 << 3.61098e+006; + A.Row(3) << 3.35163e+009 << 1.27449e+009 << 1.25571e+007 + << 1.02212e+009 << 4.34573e+008 << 3.69769e+006 + << 9.42959e+006 << 3.61098e+006 << 3.59450e+004; + A.Row(4) << 3.50193e+011 << 1.25335e+011 << 1.02212e+009 + << 1.43514e+011 << 5.42310e+010 << 4.15822e+008 + << 1.23068e+009 << 4.31545e+008 << 3.58714e+006; + A.Row(5) << 1.25335e+011 << 6.05413e+010 << 4.34573e+008 + << 5.42310e+010 << 2.76601e+010 << 1.89102e+008 + << 4.31545e+008 << 2.09778e+008 << 1.51083e+006; + A.Row(6) << 1.02212e+009 << 4.34573e+008 << 3.69769e+006 + << 4.15822e+008 << 1.89102e+008 << 1.47143e+006 + << 3.58714e+006 << 1.51083e+006 << 1.30165e+004; + A.Row(7) << 3.16602e+009 << 1.02418e+009 << 9.42959e+006 + << 1.23068e+009 << 4.31545e+008 << 3.58714e+006 + << 1.12335e+007 << 3.54778e+006 << 3.34311e+004; + A.Row(8) << 1.02418e+009 << 4.69192e+008 << 3.61098e+006 + << 4.31545e+008 << 2.09778e+008 << 1.51083e+006 + << 3.54778e+006 << 1.62552e+006 << 1.25885e+004; + A.Row(9) << 9.42959e+006 << 3.61098e+006 << 3.59450e+004 + << 3.58714e+006 << 1.51083e+006 << 1.30165e+004 + << 3.34311e+004 << 1.25885e+004 << 1.28000e+002; + + + SymmetricMatrix AS; AS << A; + Matrix V; DiagonalMatrix D, D1; + ColumnVector Check(6); + EigenValues(AS,D,V); CheckIsSorted(D, true); + Check(1) = MaximumAbsoluteValue(A - V * D * V.t()) / 100000; + DiagonalMatrix I(9); I = 1; + Check(2) = MaximumAbsoluteValue(V * V.t() - I); + Check(3) = MaximumAbsoluteValue(V.t() * V - I); + + EigenValues(AS, D1); + D -= D1; + Clean(D,0.001); Print(D); + + Jacobi(AS,D,V); + Check(4) = MaximumAbsoluteValue(A - V * D * V.t()) / 100000; + Check(5) = MaximumAbsoluteValue(V * V.t() - I); + Check(6) = MaximumAbsoluteValue(V.t() * V - I); + + SortAscending(D); + D -= D1; + Clean(D,0.001); Print(D); + + Clean(Check,0.0000001); Print(Check); + } + + { + Tracer et1("Stage 7"); + // matrix with all singular values close to 1 + Matrix A(8,8); + A.Row(1)<<-0.4343<<-0.0445<<-0.4582<<-0.1612<<-0.3191<<-0.6784<<0.1068<<0; + A.Row(2)<<0.5791<<0.5517<<0.2575<<-0.1055<<-0.0437<<-0.5282<<0.0442<<0; + A.Row(3)<<0.5709<<-0.5179<<-0.3275<<0.2598<<-0.196<<-0.1451<<-0.4143<<0; + A.Row(4)<<0.2785<<-0.5258<<0.1251<<-0.4382<<0.0514<<-0.0446<<0.6586<<0; + A.Row(5)<<0.2654<<0.3736<<-0.7436<<-0.0122<<0.0376<<0.3465<<0.3397<<0; + A.Row(6)<<0.0173<<-0.0056<<-0.1903<<-0.7027<<0.4863<<-0.0199<<-0.4825<<0; + A.Row(7)<<0.0434<<0.0966<<0.1083<<-0.4576<<-0.7857<<0.3425<<-0.1818<<0; + A.Row(8)<<0.0<<0.0<<0.0<<0.0<<0.0<<0.0<<0.0<<-1.0; + Matrix U,V; DiagonalMatrix D; + SVD(A,D,U,V); CheckIsSorted(D); + Matrix B = U * D * V.t() - A; Clean(B,0.000000001); Print(B); + DiagonalMatrix I(8); I = 1; D -= I; Clean(D,0.0001); Print(D); + U *= U.t(); U -= I; Clean(U,0.000000001); Print(U); + V *= V.t(); V -= I; Clean(V,0.000000001); Print(V); + + } + + { + Tracer et1("Stage 8"); + // check SortSV functions + + Matrix A(15, 10); + int i, j; + for (i = 1; i <= 15; ++i) for (j = 1; j <= 10; ++j) + A(i, j) = i + j / 1000.0; + DiagonalMatrix D(10); + D << 0.2 << 0.5 << 0.1 << 0.7 << 0.8 << 0.3 << 0.4 << 0.7 << 0.9 << 0.6; + Matrix U = A; Matrix V = 10 - 2 * A; + Matrix Prod = U * D * V.t(); + + DiagonalMatrix D2 = D; SortDescending(D2); + DiagonalMatrix D1 = D; SortSV(D1, U, V); Matrix X = D1 - D2; Print(X); + X = Prod - U * D1 * V.t(); Clean(X,0.000000001); Print(X); + U = A; V = 10 - 2 * A; + D1 = D; SortSV(D1, U); X = D1 - D2; Print(X); + D1 = D; SortSV(D1, V); X = D1 - D2; Print(X); + X = Prod - U * D1 * V.t(); Clean(X,0.000000001); Print(X); + + D2 = D; SortAscending(D2); + U = A; V = 10 - 2 * A; + D1 = D; SortSV(D1, U, V, true); X = D1 - D2; Print(X); + X = Prod - U * D1 * V.t(); Clean(X,0.000000001); Print(X); + U = A; V = 10 - 2 * A; + D1 = D; SortSV(D1, U, true); X = D1 - D2; Print(X); + D1 = D; SortSV(D1, V, true); X = D1 - D2; Print(X); + X = Prod - U * D1 * V.t(); Clean(X,0.000000001); Print(X); + } + + { + Tracer et1("Stage 9"); + // Tom William's example + Matrix A(10,10); + Matrix U; + Matrix V; + DiagonalMatrix Sigma; + Real myVals[] = + { + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, + 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, + 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, + }; + + A << myVals; + SVD(A, Sigma, U, V); CheckIsSorted(Sigma); + A -= U * Sigma * V.t(); + Clean(A, 0.000000001); Print(A); + } + + + +} diff --git a/.svn/pristine/01/01bcde80a6566f62bb36950729e0ab538661d811.svn-base b/.svn/pristine/01/01bcde80a6566f62bb36950729e0ab538661d811.svn-base new file mode 100644 index 0000000..1d06b39 --- /dev/null +++ b/.svn/pristine/01/01bcde80a6566f62bb36950729e0ab538661d811.svn-base @@ -0,0 +1,90 @@ +/** + * @file + * @brief IO of a 3D scan + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Thomas Escher + */ + +#ifndef __SCAN_IO_H__ +#define __SCAN_IO_H__ + +#include "slam6d/io_types.h" +#include "slam6d/pointfilter.h" + +#include +#include +#include +#include + + + +/** + * @brief IO of a 3D scan + * + * This class needs to be instantiated by a class loading + * 3D scans from different file formats. + */ +class ScanIO { +public: + /** + * Read a directory and return all possible scans in the [start,end] interval. + * + * @param dir_path The directory from which to read the scans + * @param start Starting index + * @param end Last index + * @return List of IO-specific identifiers of scans, matching the search + */ + virtual std::list readDirectory(const char* dir_path, unsigned int start, unsigned int end) = 0; + + /** + * Reads the pose from a dedicated pose file or from the scan file. + * + * @param dir_path The directory the scan is contained in + * @param scan_identifier IO-specific identifier for the particular scan + * @param pose Pointer to an existing double[6] array where the pose is saved in + */ + virtual void readPose(const char* dir_path, const char* identifier, double* pose) = 0; + + /** + * Given a scan identifier, load the contents of this particular scan. + * + * @param dir_path The directory the scan is contained in + * @param identifier IO-specific identifier for the particular scan + * @param filter Filter object which each point is tested on by its position + */ + virtual void readScan(const char* dir_path, const char* identifier, PointFilter& filter, std::vector* xyz = 0, std::vector* rgb = 0, std::vector* reflectance = 0, std::vector* amplitude = 0, std::vector* type = 0, std::vector* deviation = 0) = 0; + + /** + * Returns whether this ScanIO can load the requested data from a scan. + * + * @param type data channel request + * @return whether it's supported or not + */ + virtual bool supports(IODataType type) = 0; + + /** + * @brief Global mapping of io_types to single instances of ScanIOs. + * + * If the ScanIO doesn't exist, it will be created and saved in a map. + * Otherwise, the matching ScanIO will be returned. + * + * @param type Key identifying the ScanIO + * @return The newly created or found ScanIO + */ + static ScanIO* getScanIO(IOType iotype); + + //! Delete all ScanIO instances and (lazy) try to unload the libraries. + static void clearScanIOs(); +private: + static std::map m_scanIOs; +}; + +// Since the shared object files are loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/.svn/pristine/01/01c6e20fc458d4b3bc96dbe036d4a5d00e0637a8.svn-base b/.svn/pristine/01/01c6e20fc458d4b3bc96dbe036d4a5d00e0637a8.svn-base new file mode 100644 index 0000000..eadb052 --- /dev/null +++ b/.svn/pristine/01/01c6e20fc458d4b3bc96dbe036d4a5d00e0637a8.svn-base @@ -0,0 +1,219 @@ +/* + * icp6Dlumquat implementation + * + * Copyright (C) Andreas Nuechter, Alexandru-Eugen Ichim + * + * Released under the GPL version 3. + * + */ + + +/** @file + * @brief Implementation of the ICP error function minimization via + * via linearization with quaternions + * + * @author Andreas Nuechter. Jacobs University Bremen gGmbH, Germany + * @author Alexandru-Eugen Ichim. Jacobs University Bremen gGmbH, Germany + * + */ + +#include "slam6d/icp6Dlumquat.h" + +#include "slam6d/globals.icc" +#include +using std::ios; +using std::resetiosflags; +using std::setiosflags; + +#include "newmat/newmat.h" +#include "newmat/newmatap.h" +using namespace NEWMAT; +/** + * computes the rotation matrix consisting + * of a rotation and translation that + * minimizes the root-mean-square error of the + * point pairs using linearization with quarernions + * @param pairs Vector of point pairs (pairs of corresponding points) + * @param *alignfx The resulting transformation matrix + * @return Error estimation of the matching (rms) + */ +double icp6D_LUMQUAT::Point_Point_Align(const vector& pairs, double *alignfx, + const double centroid_m[3], const double centroid_d[3]) +{ + // alignfx is filled with the current pose, t is the translation, quat is the quaternion + double t[3], quat[4]; + Matrix4ToQuat(alignfx, quat, t); + + + double error = 0; + double sum = 0.0; + for(unsigned int i = 0; i < pairs.size(); i++){ + sum += sqr(pairs[i].p1.x - pairs[i].p2.x) + + sqr(pairs[i].p1.y - pairs[i].p2.y) + + sqr(pairs[i].p1.z - pairs[i].p2.z) ; + + } + + error = sqrt(sum / (double)pairs.size()); + + if (!quiet) { + cout.setf(ios::basefield); + cout << "LUMQUAT RMS point-to-point error = " + << resetiosflags(ios::adjustfield) << setiosflags(ios::internal) + << resetiosflags(ios::floatfield) << setiosflags(ios::fixed) + << std::setw(10) << std::setprecision(7) + << error + << " using " << std::setw(6) << (int)pairs.size() << " points" << endl; + } + + + +///////////////////////////////////////////////////////// +///////////////////////////////////////////////////////// + + /// MZ = M^T * Z + ColumnVector MZ(7); MZ = 0.0; + /// MM = M^T * M + Matrix MM(7, 7); MM = 0.0; + double x = 0.0, y = 0.0, z = 0.0, dx = 0.0, dy = 0.0, dz = 0.0, sx = 0.0, sy = 0.0, sz = 0.0, xpy = 0.0, xpz = 0.0, ypz = 0.0, xpypz = 0.0, xy = 0.0, yz = 0.0, xz = 0.0; + + for(unsigned int i = 0; i < pairs.size(); ++i) { + /// temporary values that we shall use multiple times in the subsequent computations + + x = (pairs[i].p1.x + pairs[i].p1.x) / 2.0; + y = (pairs[i].p1.y + pairs[i].p2.y) / 2.0; + z = (pairs[i].p1.z + pairs[i].p2.z) / 2.0; + dx = pairs[i].p1.x - pairs[i].p2.x; + dy = pairs[i].p1.y - pairs[i].p2.y; + dz = pairs[i].p1.z - pairs[i].p2.z; + + /// sums of each coordinate + sx += x; + sy += y; + sz += z; + + /// sums of squares of coordinates + xpy += x*x + y*y; + xpz += x*x + z*z; + ypz += y*y + z*z; + xpypz += x*x + y*y + z*z; + + /// sums of products of pairs of coordinates + xy += x*y; + xz += x*z; + yz += y*z; + + /// incrementally construct matrix M^T * Z + MZ(1) += dx; + MZ(2) += dy; + MZ(3) += dz; + MZ(4) += x*dx + y*dy + z*dz; + MZ(5) += z*dy - y*dz; + MZ(6) += x*dz - z*dx; + MZ(7) += y*dx - x*dy; + } + + /// construct M^ * M + MM(1,1) = MM(2,2) = MM(3,3) = pairs.size(); + MM(4,4) = xpypz; + MM(5,5) = ypz; + MM(6,6) = xpz; + MM(7,7) = xpy; + MM(1,4) = MM(4,1) = sx; + MM(1,6) = MM(6,1) = -sz; + MM(1,7) = MM(7,1) = sy; + MM(2,4) = MM(4,2) = sy; + MM(2,5) = MM(5,2) = sz; + MM(2,7) = MM(7,2) = -sx; + MM(3,4) = MM(4,3) = sz; + MM(3,5) = MM(5,3) = -sy; + MM(3,6) = MM(6,3) = sx; + MM(5,6) = MM(6,5) = -xy; + MM(5,7) = MM(7,5) = -xz; + MM(6,7) = MM(7,6) = -yz; + + ColumnVector Ehat = MM.i() * MZ ; + + + /// construct the auxiliary matrices U and T needed to build up H + double p = quat[0], q = quat[1], r = quat[2], s = quat[3]; + x = t[0], y = t[1], z = t[2]; + Matrix U(4, 4); + U << p << q << r << s + << q <<-p << s <<-r + << r <<-s <<-p << q + << s << r <<-q <<-p; + + Matrix T(3, 4); + T << p*x + s*y - r*z << q*x + r*y + s*z << r*x - q*y + p*z << s*x - p*y - q*z + <<-s*x + p*y + q*z <<-r*x + q*y - p*z << q*x + r*y + s*z << p*x + s*y - r*z + << r*x - q*y + p*z <<-s*x + p*y + q*z <<-p*x - s*y + r*z << q*x + r*y - s*z; + /// now actually compose matrix H + Matrix H(7, 7); H = 0.0; + H.SubMatrix(1, 3, 1, 3) = IdentityMatrix(3); + H.SubMatrix(1, 3, 4, 7) = T *(-2); + H.SubMatrix(4, 7, 4, 7) = U * 2; + + + /// Xhat is the pose estimate for the second scan - use the pose of the first scan + ColumnVector Xhat(7); Xhat << x << y << z << p << q << r << s; + + /// create a transformation matrix for the first scan with the given values + Matrix T1(4, 4); T1 = 0.0; + Matrix Cq(3, 3); + ColumnVector qvec(3); qvec << q << r << s; + Cq << 0 << -qvec(3) << qvec(2) << qvec(3) << 0 << -qvec(1) << -qvec(2) << qvec(1) << 0; + ColumnVector qtq(1); qtq = qvec.t() *qvec * (-1); + T1.SubMatrix(1, 3, 1, 3) = IdentityMatrix(3) * (p*p + qtq(1)) + qvec*qvec.t()*2 + Cq *2*p; + T1(1, 4) = x; + T1(2, 4) = y; + T1(3, 4) = z; + T1(4, 4) = 1; + + + /// the translation and quaternion for the second scan are computed + ColumnVector X = Xhat - H.i() * Ehat; + + + /// create the transformation matrix for the second scan + x = X(1), y = X(2), z = X(3); + p = X(4); q = X(5); r = X(6); s = X(7); + Matrix T2(4, 4); T2 = 0.0; + qvec = 0.0; qvec << q << r << s; + Cq = 0.0; Cq << 0 << -qvec(3) << qvec(2) << qvec(3) << 0 << -qvec(1) << -qvec(2) << qvec(1) << 0; + qtq = qvec.t() *qvec * (-1); + T2.SubMatrix(1, 3, 1, 3) = IdentityMatrix(3) * (p*p + qtq(1)) + qvec*qvec.t()*2 + Cq *2*p; + T2(1, 4) = x; + T2(2, 4) = y; + T2(3, 4) = z; + T2(4, 4) = 1; + + /// the incremental transform calculated from the absolute poses of the two scans + Matrix T_inc = T1 * T2.i(); + + /// convert our 4x4 transform to column-wise opengl form + alignfx[0] = T_inc(1, 1); + alignfx[1] = T_inc(2, 1); + alignfx[2] = T_inc(3, 1); + alignfx[3] = 0.0; + alignfx[4] = T_inc(1, 2); + alignfx[5] = T_inc(2, 2); + alignfx[6] = T_inc(3, 2); + alignfx[7] = 0.0; + alignfx[8] = T_inc(1, 3); + alignfx[9] = T_inc(2, 3); + alignfx[10]= T_inc(3, 3); + alignfx[11]= 0.0; + alignfx[12]= T_inc(1, 4); + alignfx[13]= T_inc(2, 4); + alignfx[14]= T_inc(3, 4); + alignfx[15]= 1.0; + + ///////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////// + + + + return error; +} + diff --git a/.svn/pristine/02/023acba8dc7f8a304cfe4c94511903d976659f48.svn-base b/.svn/pristine/02/023acba8dc7f8a304cfe4c94511903d976659f48.svn-base new file mode 100644 index 0000000..0591988 --- /dev/null +++ b/.svn/pristine/02/023acba8dc7f8a304cfe4c94511903d976659f48.svn-base @@ -0,0 +1,75 @@ +/** + * @file panorama.h + * @brife create panorama images from 3D scans. + * This class is a panorama image container with different projections. + * It creats panoramic images with specified resolutions. + * @author HamidReza Houshiar. Jacobs University Bremen gGmbH, Germany. + * @date Date: 2012/05/23 2:00 + */ + +#ifndef PANORAMA_H_ +#define PANORAMA_H_ + +#include "fbr_global.h" + +using namespace std; + +namespace fbr{ + /** + * @class panorama : create panorama images with different projection methods from input scan files(Mat from scan_cv class) in opencv Mat format + * @param iReflectance panorama image from reflectance data + * @param iRange panorama image from range data + * @param iMap panorama map of 3D cartesian coordinate of input scan(same points as iRange and iReflectance) + * @param extendedIMap 3D vector as panorama map with all the points + * @param iWidth width of the panorama image (cols in opencv) + * @param iHeight height of panorama image (rows in opencv) + * @param pMethod projection method for panorama creation + * @param nImage number of images per scan specially for Rectilinear, Pannini and Stereographic projections + * @param pParam special d parameter of Pannini projection (Master Thesis for more info) or special R parameter of Stereographic projection (Master Thesis for more info) + */ + class panorama{ + cv::Mat iReflectance; + cv::Mat iMap; + cv::Mat iRange; + vector > > extendedIMap; + unsigned int iWidth; + unsigned int iHeight; + projection_method pMethod; + unsigned int nImages; + double pParam; + panorama_map_method mapMethod; + + void init(unsigned int width, unsigned int height, projection_method method, unsigned int numberOfImages, double param, panorama_map_method mapMethod); + void map(int x, int y, cv::MatIterator_ it, double range); + public: + /** + * constructor of class panorama + * @param width the width of the panorama image + * @param height the height of the panorama image + * @param method the projection method + * @param images number of subsets to crate panorama image + * @param param special parameter for pannini or stereographic projections + * @param mapMethod mapping method for panorama image and 3D points + */ + panorama (unsigned int width, unsigned int height, projection_method method); + panorama (unsigned int width, unsigned int height, projection_method method, unsigned int numberOfImages); + panorama (unsigned int width, unsigned int height, projection_method method, unsigned int numberOfImages, double param); + panorama (unsigned int width, unsigned int height, projection_method method, unsigned int numberOfImages, double param, panorama_map_method mapMethod); + /** + * @brief creates the panorama reflectance image and map. + */ + void createPanorama(cv::Mat scan); + unsigned int getImageWidth(); + unsigned int getImageHeight(); + projection_method getProjectionMethod(); + unsigned int getNumberOfImages(); + double getProjectionParam(); + cv::Mat getReflectanceImage(); + cv::Mat getMap(); + cv::Mat getRangeImage(); + vector > > getExtendedMap(); + panorama_map_method getMapMethod(); + void getDescription(); + }; +} +#endif /* PANORAMA_H_ */ diff --git a/.svn/pristine/02/02a0e9d78c9155f6cc70109d351e9a47fb0304ee.svn-base b/.svn/pristine/02/02a0e9d78c9155f6cc70109d351e9a47fb0304ee.svn-base new file mode 100644 index 0000000..ca4e7e3 --- /dev/null +++ b/.svn/pristine/02/02a0e9d78c9155f6cc70109d351e9a47fb0304ee.svn-base @@ -0,0 +1,97 @@ +/************************************************************************** + + quaternion.h + + A quaternion class + + --------------------------------------------------------------------- + + Feb 1998, Paul Rademacher (rademach@cs.unc.edu) + +**************************************************************************/ + +#ifndef _QUATERNION_H_ +#define _QUATERNION_H_ + +#include "algebra3.h" +#include +#include + + +/* this line defines a new type: pointer to a function which returns a */ +/* float and takes as argument a float */ +typedef float (*V_FCT_PTR)(float); + + +/**************************************************************** +* Quaternion * +****************************************************************/ + +class quat +{ + /*protected: */ +public: + + vec3 v; /* vector component */ + float s; /* scalar component */ + + /*public: */ + + /* Constructors */ + + quat(void); + quat(const float x, const float y, const float z, const float w); + quat( vec3 v, float s ); + quat( float s, vec3 v ); + quat(const float *d ); /* copy from four-element float array */ + quat(const double *f ); /* copy from four-element double array */ + quat(const quat &q ); /* copy from other quat */ + + /* Assignment operators */ + + quat &operator = ( const quat &v ); /* assignment of a quat */ + quat &operator += ( const quat &v ); /* incrementation by a quat */ + quat &operator -= ( const quat &v ); /* decrementation by a quat */ + quat &operator *= ( const float d ); /* multiplication by a constant */ + quat &operator /= ( const float d ); /* division by a constant */ + float &operator [] ( int i); /* indexing */ + + /* special functions */ + + float length(void); /* length of a quat */ + float length2(void); /* squared length of a quat */ + quat &normalize(void); /* normalize a quat */ + quat &apply(V_FCT_PTR fct); /* apply a func. to each component */ + void set( float x, float y, float z ); /* set quat */ + void set( vec3 v, float s ); /* set quat */ + void print( FILE *file, char *name ); /* print quat to a file */ + vec3 xform( const vec3 &v ); /* q*v*q-1 */ + mat4 to_mat4( void ); + void set_angle( float f ); /* set rot angle (degrees) */ + void scale_angle( float f ); /* scale rot angle (degrees) */ + float get_angle( void ); /* set rot angle (degrees) */ + vec3 get_axis( void ); /* get axis */ + + /* friends */ + + friend quat operator - (const quat &v); /* -q1 */ + friend quat operator + (const quat &a, const quat &b); /* q1 + q2 */ + friend quat operator - (const quat &a, const quat &b); /* q1 - q2 */ + friend quat operator * (const quat &a, const float d); /* q1 * 3.0 */ + friend quat operator * (const float d, const quat &a); /* 3.0 * q1 */ + friend quat operator * (const quat &a, const quat &b); /* q1 * q2 */ + friend quat operator / (const quat &a, const float d); /* q1 / 3.0 */ + friend int operator == (const quat &a, const quat &b); /* q1 == q2 ? */ + friend int operator != (const quat &a, const quat &b); /* q1 != q2 ? */ + friend void swap(quat &a, quat &b); /* swap q1 &q2 */ + /*friend quat min(const quat &a, const quat &b); -- min(q1, q2) */ + /*friend quat max(const quat &a, const quat &b); -- max(q1, q2) */ + friend quat prod(const quat &a, const quat &b); /* term by term mult */ + }; + +/* Utility functions */ + +quat quat_identity( void ); /* Returns quaternion identity element */ +quat quat_slerp( quat from, quat to, float t ); + +#endif diff --git a/.svn/pristine/02/02aef3d3f9dd11c0599b9903bd46fd3e26bd106c.svn-base b/.svn/pristine/02/02aef3d3f9dd11c0599b9903bd46fd3e26bd106c.svn-base new file mode 100644 index 0000000..cc3f1ba --- /dev/null +++ b/.svn/pristine/02/02aef3d3f9dd11c0599b9903bd46fd3e26bd106c.svn-base @@ -0,0 +1,158 @@ +/** + * @file + * @brief Implementation of reading 3D scans + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "slam6d/scan_io_xyzr.h" +#include "slam6d/globals.icc" +#include +using std::ifstream; +#include +using std::cout; +using std::cerr; +using std::endl; + +#ifdef _MSC_VER +#include +#endif + +/** + * Reads specified scans from given directory. + * + * Scan poses will NOT be initialized after a call + * to this function. + * + * This function actually implements loading of 3D scans + * in UOS + reflectance file format and will be compiled as shared lib. + * + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param dir The directory from which to read + * @param maxDist Reads only Points up to this Distance + * @param minDist Reads only Points from this Distance + * @param euler Initital pose estimates (will not be applied to the points + * @param ptss Vector containing the read points + */ +int ScanIO_xyzr::readScans(int start, int end, string &dir, int maxDist, int minDist, + double *euler, vector &ptss) +{ + static int fileCounter = start; + string scanFileName; + string poseFileName; + + ifstream scan_in, pose_in; + + double maxDist2 = sqr(maxDist); + double minDist2 = sqr(minDist); + + int my_fileNr = fileCounter; + + if (end > -1 && fileCounter > end) return -1; // 'nuf read + /* + scanFileName = dir + "scan" + to_string(fileCounter,3) + ".3d"; + poseFileName = dir + "scan" + to_string(fileCounter,3) + ".pose"; + + scan_in.open(scanFileName.c_str()); + pose_in.open(poseFileName.c_str()); + */ + + scanFileName = dir + "konv_bremenc_" + to_string(fileCounter,3) + ".txt"; + scan_in.open(scanFileName.c_str()); + poseFileName = dir + "scan" + to_string(fileCounter,3) + ".pose"; + pose_in.open(poseFileName.c_str()); + + // read 3D scan + // if (!pose_in.good() && !scan_in.good()) return -1; // no more files in the directory + if (!scan_in.good()) return -1; // no more files in the directory + cout << "Processing Scan " << scanFileName; + + if (pose_in.good()) { + for (unsigned int i = 0; i < 6; pose_in >> euler[i++]); + + // convert angles from deg to rad + for (unsigned int i = 3; i <= 5; i++) euler[i] = rad(euler[i]); + } else { + cout << endl << "No pose estimate given." << endl; + for (unsigned int i = 0; i < 6; euler[i++] = 0.0); + } + + cout << " @ pose (" << euler[0] << "," << euler[1] << "," << euler[2] + << "," << deg(euler[3]) << "," << deg(euler[4]) << "," << deg(euler[5]) << ")" << endl; + + // convert angles from deg to rad + for (unsigned int i = 3; i <= 5; i++) euler[i] = rad(euler[i]); + + // overread the first line + char dummy[255]; + scan_in.getline(dummy, 255); + + double tmp; + while (scan_in.good()) { + Point p; + try { + scan_in >> p; + + p.x -= 485531.0; + p.y -= 5882078.400; + p.z -= 52; + + tmp = p.z; + p.z = p.y; + p.y = tmp; + + scan_in >> p.reflectance; + } catch (...) { + break; + } + // load points up to a certain distance only + // maxDist2 = -1 indicates no limitation + if ((maxDist == -1 || sqr(p.x) + sqr(p.y) + sqr(p.z) < maxDist2) && (minDist == -1 || sqr(p.x) + sqr(p.y) + sqr(p.z) > minDist2)) + ptss.push_back(p); + } + scan_in.close(); + scan_in.clear(); + pose_in.close(); + pose_in.clear(); + fileCounter++; + + return my_fileNr; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_xyzr; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/.svn/pristine/03/030ab769d8a6c0d83bf9f0b94743442776ebac7d.svn-base b/.svn/pristine/03/030ab769d8a6c0d83bf9f0b94743442776ebac7d.svn-base new file mode 100644 index 0000000..f213bd3 --- /dev/null +++ b/.svn/pristine/03/030ab769d8a6c0d83bf9f0b94743442776ebac7d.svn-base @@ -0,0 +1,925 @@ +/** + * @file + * @brief Implementation of reading a 3D CAD model and creating a 3D + * surface sampling of it. This sampling is then used as an artificial + * 3D scan in regular scan matching + * @author Sven Albrecht. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "slam6d/scan_io_cad.h" +#include "slam6d/globals.icc" +#include +using std::ifstream; +#include +using std::cout; +using std::cerr; +using std::endl; +#include +#include + +// TODO: make eventually compatible to windoze +#include // can be changed to cstdint if -std=c++0x compiler flag is used + + +#ifdef _MSC_VER +#include +#endif + +#define BOOST_NEW_FS_API 104600 + +ScanIO_CAD::ScanIO_CAD (void) : _op_descr ("CAD Config Options") +{ + setUpOptionDescription (); +} + +/** + * Reads specified 'scans' from CAD models in a given directory. + * + * Scan poses will NOT be initialized after a call + * to this function. + * + * Each CAD model will be represented by a sampling of 3D points on the + * the surface of the CAD model. Currently the implementation is able to + * handle CAD models in the .stl file format (binary or ASCII is fine). + * In constrast to other ScanIOs only one 3D scan will be read (specified + * by parameter start). Other data is generated from the (arbitrary) named + * .stl files in the directory specified by argument dir. Parameter end is + * soley kept to satisfy the general interface. + * + * !!!!!! + * Config parameters are read from an (optional) config.txt in the scan directory. + * A config.txt with content "help = 1" will print out all possible parameters. + * !!!!!! + * + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param dir The directory from which to read + * @param maxDist Reads only Points up to this Distance + * @param minDist Reads only Points from this Distance + * @param euler Initital pose estimates (will not be applied to the points + * @param ptss Vector containing the read points + */ +int ScanIO_CAD::readScans(int start, int end, string &dir, int maxDist, int minDist, + double *euler, vector &ptss) +{ + /* + * we need to read 1 normal scan (the first one) and afterwards + * create point samplings of the CAD models + */ + static int fileCounter = start; // this is a really ugly hack... + + // check before the first scan is read for a config file + if (fileCounter == start) + { + // is there a config file ? + std::string config_file_name = dir + "config.txt"; + std::ifstream config; + config.open (config_file_name.c_str ()); + if (config.good ()) + { + // parse the config to eventually overload default parameters + parseConfig (config); + } + // else use the default parameters + + // retrieve all stl files + parseDirForAllSTL (dir); + } + + string scanFileName; + string poseFileName; + + ifstream scan_in, pose_in; + + // clear the point vector (to make sure no old garbage is contained) + ptss.clear (); + + int my_fileNr = fileCounter; + + if (end > -1 && fileCounter > end) return -1; // 'nuf read + + fs::path stl_file; + + // the first scan file name should be a .3d file + if (fileCounter == start) + { + scanFileName = dir + "scan" + to_string(fileCounter, 3) + ".3d"; + poseFileName = dir + "scan" + to_string(fileCounter, 3) + ".pose"; + } + // otherwise it should be a .stl file + else + { + // get the next stl file if the directory contains one more + if (getNextSTLFromDir (stl_file)) + { + fs::path pose_file (stl_file); + + // retrieve the the filenames according to the installed boost version +#if BOOST_VERSION < BOOST_NEW_FS_API + // change extension + pose_file.replace_extension (".pose"); + scanFileName = stl_file.directory_string (); + poseFileName = pose_file.directory_string (); +#else + // change extension + pose_file.replace_extension (fs::path (".pose")); + scanFileName = stl_file.string (); + poseFileName = pose_file.string (); +#endif + } + else + { + // aparently no stl file available anymore + return -1; + } + } + + scan_in.open(scanFileName.c_str()); + pose_in.open(poseFileName.c_str()); + + // read pose information independent from file type + // read 3D scan + if (!pose_in.good() && !scan_in.good()) return -1; // no more files in the directory + if (!pose_in.good()) { cerr << "ERROR: Missing file " << poseFileName << endl; exit(1); } + if (!scan_in.good()) { cerr << "ERROR: Missing file " << scanFileName << endl; exit(1); } + cout << "Processing Scan " << scanFileName; + + // read a 'normal' Slam6D Pose + for (unsigned int i = 0; i < 6; pose_in >> euler[i++]); + + cout << " @ pose (" << euler[0] << "," << euler[1] << "," << euler[2] + << "," << euler[3] << "," << euler[4] << "," << euler[5] << ")" << endl; + + // convert angles from deg to rad + for (unsigned int i = 3; i <= 5; i++) euler[i] = rad(euler[i]); + + if (fileCounter == start) + { + read3DScan (scan_in, maxDist, minDist, ptss); + } + else + { + bool success = createSamplingFromSTL (scan_in, ptss); + if (!success) + { + // terminate similar to missing file + exit (1); + } + if (store_cad) + { + std::string stem; + // get the string of the file-stem according to installed boost API +#if BOOST_VERSION < BOOST_NEW_FS_API + stem = stl_file.stem (); +#else + stem = stl_file.stem ().string (); +#endif + fs::path sample_file (stl_file); + // is filename scanXXX.3d ? + if (stem.substr (0, 4).compare ("scan") == 0 && + std::atoi (stem.substr (4).c_str ()) == fileCounter) + { + // replace the extension according to the installed boost API +#if BOOST_VERSION < BOOST_NEW_FS_API + sample_file.replace_extension (".3d"); +#else + sample_file.replace_extension (fs::path (".3d")); +#endif + // the appropriate .pose file already exists + } + else + { + // generate appropriate filename + std::string filename = "scan" + to_string (fileCounter, 3) + ".3d"; + sample_file.remove_filename (); + sample_file /= filename; + + // copy .pose file + fs::path orig_pose (stl_file); + fs::path copied_pose (sample_file); +#if BOOST_VERSION < BOOST_NEW_FS_API + orig_pose.replace_extension (".pose"); + copied_pose.replace_extension (".pose"); +#else + orig_pose.replace_extension (fs::path (".pose")); + copied_pose.replace_extension (fs::path (".pose")); +#endif + fs::copy_file (orig_pose, copied_pose, fs::copy_option::overwrite_if_exists); + } + // retrieve the filename according to the installed boost API +#if BOOST_VERSION < BOOST_NEW_FS_API + storeSamplingTo3D (sample_file.directory_string (), ptss); +#else + storeSamplingTo3D (sample_file.string (), ptss); +#endif + } + } + + + + // close the filestreams + scan_in.close(); + scan_in.clear(); + pose_in.close(); + pose_in.clear(); + fileCounter++; + + return my_fileNr; +} + +/** + * Helper function to read a regular UOS scan + */ +void +ScanIO_CAD::read3DScan (std::ifstream &scan_in, int maxDist, int minDist, + vector &points) +{ + // reading regular uos scan (copy & paste from scan_io_uos.cc) + // overread the first line + char dummy[255]; + scan_in.getline(dummy, 255); + double maxDist2 = sqr (maxDist); + double minDist2 = sqr (minDist); + + while (scan_in.good()) { + Point p; + try { + scan_in >> p; + } catch (...) { + break; + } + // load points up to a certain distance only + // maxDist2 = -1 indicates no limitation + if (maxDist == -1 || sqr(p.x) + sqr(p.y) + sqr(p.z) < maxDist2) + { + if (minDist == -1 || sqr(p.x) + sqr(p.y) + sqr(p.z) > minDist2) + { + points.push_back(p); + } + } + } +} + +/** + * Helper function to create a 3D point sampling for a given .stl file + */ +bool +ScanIO_CAD::createSamplingFromSTL (std::ifstream &scan_in, + vector &points) +{ + bool success; + if (hasASCIIHeader (scan_in)) + { + std::cout << "detected ASCII header, parsing file" << std::endl; + success = parseASCII (scan_in, points); + } + else + { + std::cout << "couldn't detect ASCII header, trying to parse binary" + << std::endl; + success = parseBinary (scan_in, points); + } + return success; +} + +bool +ScanIO_CAD::hasASCIIHeader (std::ifstream &scan_in) +{ + // store current get pointer position + std::streampos current_pos = scan_in. tellg (); + + bool is_ascii = true; + + /* idea: check for the keywords with have to occur at the beginning + * and the end of an ASCII .stl files + * (see http://www.ennex.com/~fabbers/StL.asp for further specs) + */ + std::string solid ("solid"); + std::string last_line; + std::string name; + std::string last_read_string; + + // go to the beginning of the ifstream + scan_in.seekg (0, std::ios::beg); + // read the first string + scan_in >> last_read_string; + if (solid.compare (last_read_string) != 0) + { + is_ascii = false; + } + if (is_ascii) + { + // read the next string (i.e. name of the stl) + scan_in >> name; + // generate expected last line + last_line = "endsolid " + name; + // set the get pointer to the correct position + scan_in.seekg (-last_line.length () - 2, std::ios::end); + scan_in >> last_read_string; + if (last_read_string.compare ("endsolid") != 0) + { + is_ascii = false; + } + if (is_ascii) + { + scan_in >> last_read_string; + if (last_read_string.compare (name) != 0) + { + is_ascii = false; + } + } + } + + // reset the position of the get pointer to its original position + scan_in.seekg (current_pos, std::ios::beg); + return is_ascii; +} + +bool +ScanIO_CAD::parseASCII (std::ifstream &scan_in, vector &points) +{ + float vertex1[3]; + float vertex2[3]; + float vertex3[3]; + float raw_data[3]; + + unsigned int line_nr = 0; + unsigned int face_counter = 0; + + float* vertices[3]; + vertices[0] = vertex1; + vertices[1] = vertex2; + vertices[2] = vertex3; + + bool success = true; + bool reached_end = false; + + // retrieve current pos of get pointer + std::ios::streampos current_pos = scan_in.tellg (); + + // set get pointer to beginning of file + scan_in.seekg (0, std::ios::beg); + + std::string read_key; + std::string tmp; + + // ignore first line, since in hasASCIIHeader () + std::getline (scan_in, read_key); + line_nr++; + + while (scan_in.good ()) + { + // read first string at current position + scan_in >> read_key; + // determine if end of file reached + if (read_key.compare ("endsolid") == 0) + { + reached_end = true; + break; + } + // otherwise check if a new face begins + if (read_key.compare ("facet") != 0 || + !scan_in.good ()) + { + // no new face -> misformated .stl + std::cout << "expected 'facet', contains '" << read_key.substr (0,5) + << "'" << std::endl; + success = false; + break; + } + // read the rest of the line (containing the normal) + getline (scan_in, read_key); + line_nr++; + + // get the next 2 strings + scan_in >> read_key; + scan_in >> tmp; + read_key += " " + tmp; + if (read_key.compare ("outer loop") != 0 || + !scan_in.good ()) + { + std::cout << "expected 'outer loop', read '" << read_key + << "' instead" << std::endl; + success = false; + break; + } + // read the rest of the line + getline (scan_in, read_key); + line_nr++; + + // read the 3 vertices + for (unsigned int i = 0; i < 3; ++i) + { + scan_in >> read_key; + line_nr++; + if (read_key.compare ("vertex") == 0) + { + // read x, y and z coordinate in this order + scan_in >> raw_data[0] >> raw_data[1] >> raw_data[2]; + // scale and order according to the specified settings + copyRawData2Vertex (raw_data, vertices[i]); + if (!scan_in.good ()) + { + success = false; + break; + } + } + else + { + success = false; + break; + } + } + // retrieve the closing tag for the vertices + scan_in >> read_key; + if (read_key.compare ("endloop") != 0 || + !scan_in.good ()) + { + success = false; + break; + } + // retrieve the rest of the current line + getline (scan_in, read_key); + line_nr++; + + // retrieve the closing tag for the face + scan_in >> read_key; + if (read_key.compare ("endfacet") != 0 || + !scan_in.good ()) + { + std::cout << "Expected 'endfacet', read '" << read_key + << "' instead" << std::endl; + success = false; + break; + } + // retrieve the rest of the line + getline (scan_in, read_key); + line_nr++; + // increment nr of read faces + face_counter++; + // create the sampling for the face + createSampingForFace (vertex1, vertex2, vertex3, points); + } + + if (!reached_end) + { + success = false; + } + + // reset position of get pointer + scan_in.seekg (current_pos, std::ios::beg); + + if (!success) + { + std::cerr << "Misformated ASCII .stl file. Parsing error in line " + << line_nr << std::endl; + } + else + { + std::cout << "Created " << points.size () << " sample points for " + << face_counter << " faces." << std::endl; + } + return success; +} + +bool +ScanIO_CAD::parseBinary (std::ifstream &scan_in, vector &points) +{ + // TODO: make eventually compatible to windoze + uint32_t nr_faces; + uint32_t face_counter = 0; + uint16_t attribute; + + float normal[3]; + float vertex1[3]; + float vertex2[3]; + float vertex3[3]; + float raw_data[3]; + + bool success; + + size_t header_size = 80; // defined in the binary .stl standard + char* header = new char[header_size]; + + // retrieve the current get pointer position + std::streampos current_pos = scan_in.tellg (); + + // jump to begin of file + scan_in.seekg (0, std::ios::beg); + + if (scan_in.is_open ()) + { + // read the header (unimportant for the sampling) + scan_in.read (header, header_size); + + // read nr of faces contained in stl file + scan_in.read ((char*) &nr_faces, 4); + + // try to read all faces + for (face_counter = 0; face_counter < nr_faces; ++face_counter) + { + if (!scan_in.good ()) + { + break; + } + + // read face normal (which we don't need) + scan_in.read ((char*) &normal, 12); + + // read the first vertex + scan_in.read ((char*) &raw_data, 12); + copyRawData2Vertex (raw_data, vertex1); + + // read the second vertex + scan_in.read ((char*) &raw_data, 12); + copyRawData2Vertex (raw_data, vertex2); + + // read the first vertex + scan_in.read ((char*) &raw_data, 12); + copyRawData2Vertex (raw_data, vertex3); + + // read the attribute (which we don't need) + scan_in.read ((char*) &attribute, 2); + + // create the sampling for the current face + createSampingForFace (vertex1, vertex2, vertex3, points); + } + } + + // check if indeed the specified number of faces could be read + if (face_counter == nr_faces) + { + success = true; + std::cout << "Created " << points.size () << " sample points for " + << nr_faces << " faces." << std::endl; + } + else + { + std::cerr << "Error parsing binary .stl file. Expected " << nr_faces + << " faces but could read only " << face_counter << std::endl; + success = false; + } + + // reset the get pointer position; + scan_in.seekg (current_pos, std::ios::beg); + + delete [] header; + return success; +} + +void +ScanIO_CAD::createSampingForFace (float* vertex1, float* vertex2, + float* vertex3, vector &points) +{ + /* + * Random sampling approach to sample a triangle: + * First compute the area of the triangle and decide how many sample + * points are needed; afterwards randomly create a number of points + * inside the triangle + */ + + // get the area of the triangle + float vector12[3]; + float vector13[3]; + float vector23[3]; + + for (unsigned int i = 0; i < 3; ++i) + { + vector12[i] = vertex2[i] - vertex1[i]; + vector13[i] = vertex3[i] - vertex1[i]; + vector23[i] = vertex3[i] - vertex2[i]; + } + + float a, b, c; + a = b = c = 0.0f; + + a = dotProd (vector12, vector12); + b = dotProd (vector13, vector13); + c = dotProd (vector23, vector23); + + a = sqrt (a); + b = sqrt (b); + c = sqrt (c); + + float s = a + b + c; + s /= 2.0f; + + float area = sqrt (s * (s - a) * (s - b) * (s - c)); + + unsigned int nr_sample_points, nr_added_points; + + nr_sample_points = area / (sample_point_dist * sample_point_dist); + nr_added_points = 0; + + if (nr_sample_points > 3) + { + points.reserve (points.size () + nr_sample_points); + + float u, v; + float point_in_triangle[3]; + + while (nr_added_points < nr_sample_points) + { + // randomly generate scalar u and v in [0,1] + u = (float) std::rand () / (float) RAND_MAX; + v = (float) std::rand () / (float) RAND_MAX; + + // check if u and v are smaller than 1.0 (i.e. point is in triangle) + if (u + v <= 1.0f) + { + for (unsigned int i = 0; i < 3; ++i) + { + point_in_triangle[i] = vertex1[i] + u * vector12[i] + v * vector13[i]; + } + points.push_back (Point (point_in_triangle[0], + point_in_triangle[1], point_in_triangle[2])); + nr_added_points++; + } + } + } + // for a small face just add the corners to the sample points + else + { + points.reserve (points.size () + 3); + points.push_back (Point (vertex1[0], vertex1[1], vertex1[2])); + points.push_back (Point (vertex2[0], vertex2[1], vertex2[2])); + points.push_back (Point (vertex3[0], vertex3[1], vertex3[2])); + } +} + +void +ScanIO_CAD::storeSamplingTo3D (std::string filename, vector &points) +{ + std::ofstream sample_file (filename.c_str ()); + + // write header + sample_file << "# artificial scan from cad model '" << filename + << "', containing " << points.size () << " sample points" << std::endl; + // write all points + vector::const_iterator it = points.begin (); + while (it != points.end ()) + { + sample_file << *it++ << std::endl; + } + + sample_file.flush (); + sample_file.close (); +} + +float +ScanIO_CAD::dotProd (const float* vec1, const float* vec2) +{ + return vec1[0] * vec2[0] + vec1[1] * vec2[1] + vec1[2] * vec2[2]; +} + +void +ScanIO_CAD::parseConfig (std::ifstream &config) +{ + try + { + po::store (po::parse_config_file (config, _op_descr), _vmap); + } + catch (std::exception &e) + { + std::cout << "illegal parameter in config file:" << std::endl + << e.what () << std::endl << std::endl; + std::cout << "The following options are available:" << std::endl; + std::cout << _op_descr << std::endl; + config.close (); + exit (-1); + } + catch (...) + { + std::cerr << "this line shouldn't have been reached ever" << std::endl; + config.close (); + exit (-2); + } + + po::notify (_vmap); + + if (_vmap.count ("help")) + { + std::cout << _op_descr << std::endl; + // when help is enabled we'll just exit + exit (1); + } + std::cout << "'store_cad' "; + if (store_cad) + std::cout << "was set to true"; + else + std::cout << "was set to false"; + std::cout << endl; + + if (x_index == y_index) + { + std::cout << "Warning: x_index = y_index = " << x_index << std::endl; + } + if (x_index == z_index) + { + std::cout << "Warning: x_index = z_index = " << x_index << std::endl; + } + if (y_index == z_index) + { + std::cout << "Warning: y_index = z_index = " << y_index << std::endl; + } + + if (fabs (x_scale - STD_X_SCALE) > std::numeric_limits::epsilon () || + fabs (y_scale - STD_Y_SCALE) > std::numeric_limits::epsilon () || + fabs (z_scale - STD_Z_SCALE) > std::numeric_limits::epsilon ()) + { + this->individual_scale = true; + } + else + { + this->individual_scale = false; + } + + config.close (); +} + + +void +ScanIO_CAD::copyRawData2Vertex (float *raw_data, float *vertex) +{ + // copy the raw data to the desired positions + vertex[0] = raw_data[x_index]; + vertex[1] = raw_data[y_index]; + vertex[2] = raw_data[z_index]; + + // any axis to be inverted in the data converted to scan coords? + if (invert_x) + vertex[0] *= -1.0f; + if (invert_y) + vertex[1] *= -1.0f; + if (invert_z) + vertex[2] *= -1.0f; + + // scale with individual scale_factor + if (individual_scale) + { + vertex[0] *= x_scale; + vertex[1] *= y_scale; + vertex[2] *= z_scale; + // scale additionally with general scale factor + if (combine_scales) + { + vertex[0] *= scale_factor; + vertex[1] *= scale_factor; + vertex[2] *= scale_factor; + } + } + // scale with the general scale factor + else + { + vertex[0] *= scale_factor; + vertex[1] *= scale_factor; + vertex[2] *= scale_factor; + } +} + +void +ScanIO_CAD::setUpOptionDescription (void) +{ + // just something for a little nicer output formating + std::stringstream x_ss; + x_ss << STD_X_SCALE; + std::stringstream y_ss; + y_ss << STD_Y_SCALE; + std::stringstream z_ss; + z_ss << STD_Z_SCALE; + std::stringstream scale_ss; + scale_ss << STD_SCALE_FACTOR; + + // set up the options descriptions + _op_descr.add_options () + ("help", "produce this help message") + ("store_cad", + po::value (&store_cad)->default_value (STD_STORE_CAD), + "determine storage of sampled cad") + ("sample_dist", + po::value (&sample_point_dist)->default_value (STD_SAMPLE_DIST), + "approximate distance of sample points") + ("random_sampling", + po::value (&random_sampling)->default_value (STD_RND_SAMP), + "enables/diables random surface sampling") + ("x_index", + po::value (&x_index)->default_value (STD_X_INDEX), + "array index for the x coordinate (default should work for UOS scans)") + ("y_index", + po::value (&y_index)->default_value (STD_Y_INDEX), + "array index for the y coordinate (default should work for UOS scans)") + ("z_index", + po::value (&z_index)->default_value (STD_Z_INDEX), + "array index for the z coordinate (default should work for UOS scans)") + ("scale_factor", + po::value (&scale_factor)->default_value (STD_SCALE_FACTOR, + scale_ss.str ()), + "set general scale factor for x-, y- and z-axis") + ("x_scale", + po::value (&x_scale)->default_value (STD_X_SCALE, x_ss.str ()), + "scale factor to convert the x coordinate of the CAD models to scan scale") + ("y_scale", + po::value (&y_scale)->default_value (STD_Y_SCALE, y_ss.str ()), + "scale factor to convert the y coordinate of the CAD models to scan scale") + ("z_scale", + po::value (&z_scale)->default_value (STD_Z_SCALE, z_ss.str ()), + "scale factor to convert the z coordinate of the CAD models to scan scale") + ("combine_scales", + po::value (&combine_scales)->default_value (STD_COMBINE_SCALES), + "enables combining of general scale factor and individual scale factors") + ("invert_x", + po::value (&invert_x)->default_value (STD_INVERT_AXIS), + "inverts the direction of the CAD models x-axis") + ("invert_y", + po::value (&invert_y)->default_value (STD_INVERT_AXIS), + "inverts the direction of the CAD models y-axis") + ("invert_z", + po::value (&invert_z)->default_value (STD_INVERT_AXIS), + "inverts the direction of the CAD models z-axis") + ; +} + +void +ScanIO_CAD::parseDirForAllSTL (std::string &directory_name) +{ + // make sure nothing is stored in the stl file vector + _stl_files.clear (); + + // get a directory iterator to mark the end of the directory + fs::path dir (directory_name); + fs::directory_iterator end; + + // iterate over the complete directory + for (fs::directory_iterator pos (dir); pos != end; ++pos) + { + if (fs::is_regular_file (*pos)) + { + std::string extension; + // retrieve the extension string according to the installed boost API +#if BOOST_VERSION < BOOST_NEW_FS_API + extension = pos->path ().extension (); +#else + extension = pos->path ().extension ().string (); +#endif + std::for_each (extension.begin (), extension.end (), ::tolower); + + // add all stl files into the vector + if (extension.compare (".stl") == 0) + { + _stl_files.push_back ((*pos)); + } + } + } + _stl_files_pos = 0; +} + + +bool +ScanIO_CAD::getNextSTLFromDir (fs::path &stl_file) +{ + if (_stl_files_pos < _stl_files.size ()) + { + stl_file = _stl_files[_stl_files_pos++]; + return true; + } + // return an empty path + stl_file = fs::path (); + return false; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_CAD; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/.svn/pristine/03/030bad3185eda98f75fc45983c735f1cc9642160.svn-base b/.svn/pristine/03/030bad3185eda98f75fc45983c735f1cc9642160.svn-base new file mode 100644 index 0000000..2c52758 --- /dev/null +++ b/.svn/pristine/03/030bad3185eda98f75fc45983c735f1cc9642160.svn-base @@ -0,0 +1,148 @@ +/* + * calibrate implementation + * + * Copyright (C) Stanislav Serebryakov + * + * Released under the GPL version 3. + * + */ + +#include + +#include +#include + + +void usage(char *progName) { + printf("%s \n", progName); + printf("\twhere board-size-x and y is count of *inner* corners of the booard"); + printf("i.e.: %s 6 4 0.04 image*\n", progName); + printf("Use more then ten images.\nPress space bar to proceed.\n"); +} + +void calibrate( CvMat *intrinsic, CvMat *distortion, CvSize imgSz, CvSize boardSz + , double boardSide, CvPoint2D32f **corners, int boardsCnt) { + + int totalPoints = boardSz.width * boardSz.height; + // object points (model) + CvMat *objPts = cvCreateMat(totalPoints * boardsCnt, 3, CV_32FC1); + // found points + CvMat *imgPts = cvCreateMat(totalPoints * boardsCnt, 2, CV_32FC1); + // points count + CvMat *ptsCnt = cvCreateMat(boardsCnt, 1, CV_32SC1); + + // copy corners to matrix and fill model matrix + for(int i = 0; i < boardsCnt; i++) { + for(int j = 0; j < totalPoints; j++) { + int s = i * totalPoints; + CV_MAT_ELEM(*imgPts, float, s+j, 0) = corners[i][j].x; + CV_MAT_ELEM(*imgPts, float, s+j, 1) = corners[i][j].y; + CV_MAT_ELEM(*objPts, float, s+j, 0) = boardSide * (j / boardSz.width); + CV_MAT_ELEM(*objPts, float, s+j, 1) = boardSide * (j % boardSz.width); + CV_MAT_ELEM(*objPts, float, s+j, 2) = 0.0f; + } + CV_MAT_ELEM(*ptsCnt, int, i, 0) = totalPoints; + } + + // initial guess + CV_MAT_ELEM(*intrinsic, float, 0, 0) = 1.0f; + CV_MAT_ELEM(*intrinsic, float, 1, 1) = 1.0f; + + cvCalibrateCamera2( objPts, imgPts, ptsCnt, imgSz + , intrinsic, distortion + , NULL, NULL, 0 ); + return; +} + + +int main(int argc, char **argv) +{ + if(argc < 5) { + usage(argv[0]); + exit(1); + } + + int patx = atoi(argv[1]); + int paty = atoi(argv[2]); + CvSize boardSz = cvSize(patx, paty); + int loadImageCnt = argc - 4; + int cornersTotal = boardSz.width * boardSz.height; + float boardSide = atof(argv[3]);; + char **images = &argv[4]; + + // intrinsic matrices and ditortion params + CvMat *intrinsic = cvCreateMat(3, 3, CV_32F); + CvMat *distortion = cvCreateMat(1, 4, CV_32F); + + + IplImage *img = cvLoadImage(images[0], CV_LOAD_IMAGE_GRAYSCALE); + IplImage *imgColor = cvCreateImage(cvGetSize(img), 8, 3); + + int subpixel; + if(cvGetSize(img).width < 300) { + subpixel = 4; + } + else { + subpixel = 11; + } + + int imagesWithBoard = 0; + + CvPoint2D32f **corners = (CvPoint2D32f**)calloc(100, sizeof(CvPoint2D32f*)); + corners[0] = (CvPoint2D32f*) malloc(cornersTotal * sizeof(CvPoint2D32f)); + + + cvNamedWindow("Cam", 0); + + for(int imagesLoaded = 0; imagesLoaded < loadImageCnt; imagesLoaded++) { + img = cvLoadImage(images[imagesLoaded], CV_LOAD_IMAGE_GRAYSCALE); + + cvCvtColor(img, imgColor, CV_GRAY2BGR); + + int cornersCount; + + int found = cvFindChessboardCorners(img, boardSz, corners[imagesWithBoard], + &cornersCount, CV_CALIB_CB_ADAPTIVE_THRESH | CV_CALIB_CB_FILTER_QUADS); + if(found) cvFindCornerSubPix(img, corners[imagesWithBoard], cornersCount, cvSize(subpixel, subpixel), cvSize(-1,-1), + cvTermCriteria(CV_TERMCRIT_EPS | CV_TERMCRIT_ITER, 30, 0.1)); + + if(found && (cornersCount == cornersTotal)) { + cvDrawChessboardCorners(imgColor, boardSz, corners[imagesWithBoard], cornersCount, found); + imagesWithBoard++; + corners[imagesWithBoard] = (CvPoint2D32f*) malloc(cornersTotal * sizeof(CvPoint2D32f)); + } + cvShowImage("Cam", imgColor); + cvWaitKey(0); + + } + + cvDestroyAllWindows(); + + printf("calibrating...\n"); + fflush(stdout); + + //TODO: can be started in parallel to watch calibration on image undistortion :) + calibrate(intrinsic, distortion, cvGetSize(img), boardSz, boardSide, corners, imagesWithBoard); + + // save to xml files + cvSave("./intrinsic.xml", intrinsic); + cvSave("./distortion.xml", distortion); + printf("matrices saved to xml files.\n"); + + // let OS clean all images and matrices + return 0; +} + + +/*void usage(char *progName) { + printf( "usage:\n \ + %s [-s]\n \ + \tcamera-id is v4l id or -1 for pmd cam \ + \tpress space or 'a' to grab image\n \ + \tpress 'n' to skip grabbed frame\n \ + \tpress 'c' to finish frame grabbing start calibration\n \ + or:\n \ + %s \n", progName, progName); + fflush(stdout); +}*/ + diff --git a/.svn/pristine/03/0374f3bee412d187159352ca3b0c8c450bc9d333.svn-base b/.svn/pristine/03/0374f3bee412d187159352ca3b0c8c450bc9d333.svn-base new file mode 100644 index 0000000..57ca0c2 --- /dev/null +++ b/.svn/pristine/03/0374f3bee412d187159352ca3b0c8c450bc9d333.svn-base @@ -0,0 +1,209 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: spinctld.h +// Purpose: A double valued spin control, compatible with wxSpinCtrl +// Author: John Labenski +// Created: 11/05/02 +// Copyright: John Labenski, 2002 +// License: wxWidgets +///////////////////////////////////////////////////////////////////////////// + +/* +wxSpinCtrlDbl is a double valued wxSpinCtrl using non native (wxWidgets) widgets + +It consists of a wxSpinButton and a wxTextCtrl on a wxControl and can be used +as a drop in replacement for the wxSpinCtrl. It's been tested in GTK and MSW +and should work with MAC, but you may need to fix the sizing perhaps. It +will not work in Motif as there is no wxSpinButton in Motif. + +Differences to wxSpinCtrl: + + It remembers the initial value as a default value, call SetDefaultValue, + or press to return to it + + Shift + Arrow = *2 increment value + Ctrl + Arrow = *10 increment value + Alt + Arrow = *100 increment value + combinations of Shift, Ctrl, Alt increment by the product of the factors + + PgUp & PgDn = *10 increment * the product of the Shift, Ctrl, Alt factors + + sets the control's value to the it's last valid state + + SetDigits controls the format of the text, # decimal places + exponential uses the %.Xle format otherwise %.Xlf, where places = X + for arbitray formats subclass control and override SyncSpinToText() + for proper behavior when a user types in a value +*/ + +#ifndef __wxSPINCTRLDBL_H__ +#define __wxSPINCTRLDBL_H__ + +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) + #pragma interface "spinctld.h" +#endif + +#include "wx/spinbutt.h" +#include "wx/spinctrl.h" // for EVT_SPINCTRL +#include "wx/things/thingdef.h" + +class WXDLLEXPORT wxTextCtrl; +class WXDLLIMPEXP_THINGS wxSpinCtrlDblTextCtrl; + +enum +{ + wxSPINCTRLDBL_AUTODIGITS = -1 // try to autocalc the # of digits +}; + +class WXDLLIMPEXP_THINGS wxSpinCtrlDbl: public wxControl +{ +public: + wxSpinCtrlDbl() : wxControl() { Init(); } + + // Native constructor - note &parent, this is to avoid ambiguity + wxSpinCtrlDbl( wxWindow &parent, wxWindowID id, + const wxString &value = wxEmptyString, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxSize(95,-1), + long style = 0, + double min = 0.0, double max = 100.0, + double initial = 0.0, + double increment = 1.0, int digits = wxSPINCTRLDBL_AUTODIGITS, + const wxString& name = _T("wxSpinCtrlDbl") ) + { + Init(); + Create(&parent, id, value, pos, size, style, + min, max, initial, increment, digits, name); + } + + // wxSpinCtrl compatibility, call SetIncrement(increment,digits) after + wxSpinCtrlDbl( wxWindow *parent, wxWindowID id = wxID_ANY, + const wxString &value = wxEmptyString, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxSize(95,-1), + long style = 0, + int min = 0, int max = 100, + int initial = 0, + const wxString& name = _T("wxSpinCtrlDbl") ) + { + Init(); + Create(parent, id, value, pos, size, style, + (double)min, (double)max, (double)initial, 1.0, -1, name); + } + + bool Create( wxWindow *parent, + wxWindowID id = wxID_ANY, + const wxString &value = wxEmptyString, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxSize(100,-1), + long style = 0, + double min = 0.0, double max = 100.0, + double initial = 0.0, + double increment = 1.0, int digits = wxSPINCTRLDBL_AUTODIGITS, + const wxString& name = _T("wxSpinCtrlDbl") ); + + virtual ~wxSpinCtrlDbl(); + + // ----------------------------------------------------------------------- + // Public (normal usage) functions + + enum formatType + { + lf_fmt, // %lf + le_fmt, // %le + lg_fmt // %lg + }; + + virtual void SetValue( double value ); + void SetValue( double value, double min, double max, double increment, + int digits = wxSPINCTRLDBL_AUTODIGITS, formatType fmt = lg_fmt ) + { SetRange(min, max); SetIncrement(increment); SetDigits(digits, fmt); SetValue(value); } + // Set the value as text, if force then set text as is + virtual void SetValue( const wxString& text, bool force ); + // Set the allowed range, if max_val < min_val then no range and all vals allowed. + void SetRange( double min_val, double max_val ); + // Set the increment to use when the spin button or arrow keys pressed. + void SetIncrement( double increment ); + void SetIncrement( double increment, int digits, formatType fmt = lg_fmt ) + { SetIncrement(increment); SetDigits(digits, fmt); } + // Set the number of digits to show, use wxSPINCTRLDBL_AUTODIGITS + // or specify exact number to show i.e. %.[digits]lf + // The format type is used to create an appropriate format string. + void SetDigits( int digits = wxSPINCTRLDBL_AUTODIGITS, formatType fmt = lg_fmt ); + // Set the format string to use, ie. format="%.2lf" for .01 + void SetFormat( const wxString& format ); + // Set the control the the default value. + virtual void SetDefaultValue() { SetValue( m_default_value ); } + // Set the value of the default value, default is the inital value. + void SetDefaultValue( double default_value ); + // Force the value to always be divisible by the increment, initially off. + // This uses the default_value as the basis, you'll get strange results + // for very large differences between the current value and default value + // when the increment is very small. + void SetSnapToTicks(bool forceTicks); + + double GetValue() const { return m_value; } + double GetMin() const { return m_min; } + double GetMax() const { return m_max; } + virtual bool HasRange() const { return m_max >= m_min; } + virtual bool InRange(double value) const { return !HasRange() || ((value >= m_min) && (value <= m_max)); } + double GetIncrement() const { return m_increment; } + int GetDigits() const { return m_digits; } + wxString GetFormat() const { return m_textFormat; } + double GetDefaultValue() const { return m_default_value; } + bool GetSnapToTicks() const { return m_snap_ticks; } + + bool IsDefaultValue() const { return (m_value == m_default_value); } + + virtual bool SetFont( const wxFont &font ); + wxFont GetFont() const; + + virtual bool SetBackgroundColour(const wxColour& colour); + wxColour GetBackgroundColour() const; + + virtual bool SetForegroundColour(const wxColour& colour); + wxColour GetForegroundColour() const; + + // for setting... stuff + wxTextCtrl *GetTextCtrl() { return (wxTextCtrl*)m_textCtrl; } + +protected: + void OnSpinUp( wxSpinEvent &event ); + void OnSpinDown( wxSpinEvent &event ); + void OnTextEnter( wxCommandEvent &event ); + void OnText( wxCommandEvent &event ); + // the textctrl is subclassed to get at pgup/dn and then sent here + void OnChar( wxKeyEvent &event ); + + virtual void SyncSpinToText(bool send_event = true, bool force_valid = true); + + void DoSendEvent(); // send an event based on current state + + virtual void DoSetSize(int x, int y, int width, int height, + int sizeFlags = wxSIZE_AUTO); + + virtual wxSize DoGetBestSize() const; + + void OnFocus( wxFocusEvent& event ); // pass focus to textctrl, for wxTAB_TRAVERSAL + void OnKillFocus( wxFocusEvent &event ); + + wxSpinButton *m_spinButton; + wxSpinCtrlDblTextCtrl *m_textCtrl; + + double m_min; // min allowed value + double m_max; // max allowed value + double m_value; // current value + double m_default_value; // initial value, or SetDefaultValue(value) + double m_increment; // how much to to add per spin + int m_digits; // number of digits displayed after decimal point + bool m_snap_ticks; // value is divisible by increment + wxString m_textFormat; // used as wxString.Printf(m_textFormat.c_str(), m_value); + +private: + friend class wxSpinCtrlDblTextCtrl; + + void Init(); + DECLARE_DYNAMIC_CLASS(wxSpinCtrlDbl) + DECLARE_EVENT_TABLE() +}; + +#endif // __wxSPINCTRLDBL_H__ diff --git a/.svn/pristine/03/0398306f0224346f0d8a24815b22ad62f948573d.svn-base b/.svn/pristine/03/0398306f0224346f0d8a24815b22ad62f948573d.svn-base new file mode 100644 index 0000000..f6b5398 --- /dev/null +++ b/.svn/pristine/03/0398306f0224346f0d8a24815b22ad62f948573d.svn-base @@ -0,0 +1,241 @@ +/** + * @file + * @brief Implementation of reading 3D scans + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Jochen Sprickerhof + */ + +#include "slam6d/scan_io_uos_map_frames.h" +#include "slam6d/globals.icc" +#include +using std::ifstream; +#include +using std::cout; +using std::cerr; +using std::endl; +#include +using std::exception; + + +#ifdef _MSC_VER +#include +#endif + +/** + * Reads specified scans from given directory. + * + * Scan poses will NOT be initialized after a call + * to this function. + * + * This function actually implements loading of 3D scans + * in UOS file format and will be compiled as shared lib. + * + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param dir The directory from which to read + * @param maxDist Reads only Points up to this Distance + * @param minDist Reads only Points from this Distance + * @param euler Initital pose estimates (will not be applied to the points + * @param ptss Vector containing the read points + */ +int ScanIO_uos_map_frames::readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss) +{ + static int fileCounter = start - 1; + string scanFileName; + string framesFileName; + + ifstream scan_in, frames_in; + + double maxDist2 = sqr(maxDist); + + int my_fileNr = fileCounter; + double transMat[16]; + int type; + + if (end > -1 && fileCounter > end) return -1; // 'nuf read + + if (fileCounter == start - 1) { + + double c, s; + + // read map as first 3D scan +#define READ_MAP +#ifdef READ_MAP + scanFileName = dir + "Uni_Hannover.map"; + scan_in.open(scanFileName.c_str()); + + if (!scan_in.good()) { cerr << "ERROR: Missing file " << scanFileName << endl; exit(1); } + cout << "Processing 3D Map " << scanFileName << endl; + + euler[0] = euler[1] = euler[2] = euler[3] = euler[4] = euler[5] = 0.0; + + c = cos(rad(-191.0)); + s = sin(rad(-191.0)); + + while (scan_in.good()) { + double x1, x2, z1, z2; + double x1_t, x2_t, z1_t, z2_t; + + scan_in >> x1_t >> z1_t >> x2_t >> z2_t; + + x1_t = (x1_t - 113.07) * 100; + x2_t = (x2_t - 113.07) * 100; + z1_t = (z1_t + 64.05) * 100; + z2_t = (z2_t + 64.05) * 100; + + x1 = x1_t * c + z1_t * s; + z1 = - x1_t * s + z1_t * c; + + x2 = x2_t * c + z2_t * s; + z2 = - x2_t * s + z2_t * c; + + double length = sqrt(sqr(x2-x1) + sqr(z2-z1)); + double n_x = (x2 - x1) / length; + double n_z = (z2 - z1) / length; + + for (double t = 0.0; t < length; t += 25.0) { + Point p; + p.x = x1 + t * n_x - 713.832183017; + p.z = z1 + t * n_z - 1238.220671; + for (double y = -15.0; y < 1000; y += 25) { + p.y = y + 13.8808; + ptss.push_back(p); + } + } + } + cout << ptss.size() << endl; + scan_in.close(); + scan_in.clear(); +#endif + +#define READ_AERIAL +#ifdef READ_AERIAL + scanFileName = dir + "bereich_uni.txt"; + scan_in.open(scanFileName.c_str()); + + if (!scan_in.good()) { cerr << "ERROR: Missing file " << scanFileName << endl; exit(1); } + cout << "Processing 3D Aerial Map " << scanFileName << endl; + + euler[0] = euler[1] = euler[2] = euler[3] = euler[4] = euler[5] = 0.0; + + c = cos(rad(-191.0)); + s = sin(rad(-191.0)); + + while (scan_in.good()) { + double x1, z1; + double x1_t, y1_t, z1_t; + + scan_in >> x1_t >> z1_t >> y1_t; + + x1_t = (x1_t - 3548500 - 113.07) * 100; + z1_t = (z1_t - 5806400 + 64.05) * 100; + y1_t = (y1_t - 55.0) * 100; + + x1 = x1_t * c + z1_t * s; + z1 = - x1_t * s + z1_t * c; + + Point p; + p.x = x1 - 713.832183017; + p.z = z1 - 1238.220671; + p.y = y1_t + 13.8808; + ptss.push_back(p); + + } + cout << "Map containts " << ptss.size() << " points" << endl; + scan_in.close(); + scan_in.clear(); +#endif + cout << "DONE" << endl; + fileCounter++; + + return 1; + } + + scanFileName = dir + "scan" + to_string(fileCounter,3) + ".3d"; + framesFileName = dir + "scan" + to_string(fileCounter,3) + ".frames"; + + scan_in.open(scanFileName.c_str()); + frames_in.open(framesFileName.c_str()); + + // read 3D scan + if (!frames_in.good() && !scan_in.good()) return -1; // no more files in the directory + if (!frames_in.good()) { cerr << "ERROR: Missing file " << framesFileName << endl; exit(1); } + if (!scan_in.good()) { cerr << "ERROR: Missing file " << scanFileName << endl; exit(1); } + cout << "Processing Scan " << scanFileName; + + while(frames_in) { + try { + frames_in >> transMat >> type; + } + catch(const exception &e) { + break; + } + } + Matrix4ToEuler(transMat, &euler[3], euler); + + cout << " @ pose (" << euler[0] << "," << euler[1] << "," << euler[2] + << "," << euler[3] << "," << euler[4] << "," << euler[5] << ")" << endl; + + // overread the first line + char dummy[255]; + scan_in.getline(dummy, 255); + + while (scan_in.good()) { + Point p; + try { + scan_in >> p; + } catch (...) { + break; + } + // load points up to a certain distance only + // maxDist2 = -1 indicates no limitation + if (maxDist == -1 || sqr(p.x) + sqr(p.y) + sqr(p.z) < maxDist2) + ptss.push_back(p); + } + scan_in.close(); + scan_in.clear(); + frames_in.close(); + frames_in.clear(); + fileCounter++; + + return my_fileNr; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_uos_map_frames; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/.svn/pristine/03/03ccc14e340c414865346c135b0fb69f2b68f058.svn-base b/.svn/pristine/03/03ccc14e340c414865346c135b0fb69f2b68f058.svn-base new file mode 100644 index 0000000..aabf033 --- /dev/null +++ b/.svn/pristine/03/03ccc14e340c414865346c135b0fb69f2b68f058.svn-base @@ -0,0 +1,23 @@ +FIND_PACKAGE(OpenCV REQUIRED) + +SET(FBR_IO_SRC scan_cv.cc) +add_library(fbr_cv_io STATIC ${FBR_IO_SRC}) + +SET(FBR_PANORAMA_SRC panorama.cc) +add_library(fbr_panorama STATIC ${FBR_PANORAMA_SRC}) + +SET(FBR_FEATURE_SRC feature.cc) +add_library(fbr_feature STATIC ${FBR_FEATURE_SRC}) + +SET(FBR_FEATURE_MATCHER_SRC feature_matcher.cc) +add_library(fbr_feature_matcher STATIC ${FBR_FEATURE_MATCHER_SRC}) + +SET(FBR_REGISTRATION_SRC registration.cc) +add_library(fbr_registration STATIC ${FBR_REGISTRATION_SRC}) + +IF(WITH_FBR) +SET(FBR_LIBS scan ANN ${OpenCV_LIBS}) + +add_executable(featurebasedregistration feature_based_registration.cc fbr_global.cc) +target_link_libraries(featurebasedregistration fbr_cv_io fbr_panorama fbr_feature fbr_feature_matcher fbr_registration ${FBR_LIBS}) +ENDIF(WITH_FBR) \ No newline at end of file diff --git a/.svn/pristine/03/03d394d805ea2d08fc0bbde2105dbc77bf1b59be.svn-base b/.svn/pristine/03/03d394d805ea2d08fc0bbde2105dbc77bf1b59be.svn-base new file mode 100644 index 0000000..01a5c19 --- /dev/null +++ b/.svn/pristine/03/03d394d805ea2d08fc0bbde2105dbc77bf1b59be.svn-base @@ -0,0 +1,156 @@ +------------------------------------------------------------ +ann_test: Version 1.0 + Copyright: David M. Mount and Sunil Arya. + Latest Revision: Mar 1, 2005. +------------------------------------------------------------ + +validate = on (Warning: this may slow execution time.) +stats = query_stats +[Read Data Points: + data_size = 5000 + file_name = test2-data.pts + dim = 8 +] +[Read Query Points: + query_size = 100 + file_name = test2-query.pts + dim = 8 +] +[Build ann-structure: + split_rule = suggest + shrink_rule = none + data_size = 5000 + dim = 8 + bucket_size = 1 + process_time = 0.18 sec + (Structure Statistics: + n_nodes = 9999 (opt = 10000, best if < 100000) + n_leaves = 5000 (0 contain no points) + n_splits = 4999 + n_shrinks = 0 + empty_leaves = 0 percent (best if < 50 percent) + depth = 17 (opt = 12, best if < 196) + avg_aspect_ratio = 2.03396 (best if < 20) + ) +] +(Computing true nearest neighbors for validation. This may take time.) +[Run Queries: + query_size = 100 + dim = 8 + search_method = standard + epsilon = 0 + near_neigh = 3 + true_nn = 13 + query_time = 0.0008 sec/query (biased by perf measurements) + (Performance stats: [ mean : stddev ]< min , max > + leaf_nodes = [ 269.6 : 154.1 ]< 68 , 1046 > + splitting_nodes = [ 448.2 : 259.2 ]< 100 , 1858 > + shrinking_nodes = [ 0 : 0 ]< 0 , 0 > + total_nodes = [ 717.8 : 412.6 ]< 168 , 2904 > + points_visited = [ 269.6 : 154.1 ]< 68 , 1046 > + coord_hits/pt = [ 0.1975 : 0.1075 ]< 0.0446 , 0.6974 > + floating_ops_(K) = [ 8.492 : 4.716 ]< 1.939 , 32.61 > + average_error = [ 0 : 0 ]< 0 , 0 > + rank_error = [ 0 : 0 ]< 0 , 0 > + ) +] +[Run Queries: + query_size = 100 + dim = 8 + search_method = priority + epsilon = 0 + near_neigh = 3 + true_nn = 13 + query_time = 0.0011 sec/query (biased by perf measurements) + (Performance stats: [ mean : stddev ]< min , max > + leaf_nodes = [ 237.7 : 131.6 ]< 68 , 801 > + splitting_nodes = [ 408.1 : 227.7 ]< 100 , 1398 > + shrinking_nodes = [ 0 : 0 ]< 0 , 0 > + total_nodes = [ 645.8 : 358.5 ]< 168 , 2149 > + points_visited = [ 237.7 : 131.6 ]< 68 , 801 > + coord_hits/pt = [ 0.1679 : 0.08993 ]< 0.0472 , 0.5492 > + floating_ops_(K) = [ 10.83 : 6.344 ]< 2.638 , 38.3 > + average_error = [ 0 : 0 ]< 0 , 0 > + rank_error = [ 0 : 0 ]< 0 , 0 > + ) +] +[Run Queries: + query_size = 100 + dim = 8 + search_method = standard + epsilon = 0.1 + near_neigh = 3 + true_nn = 13 + query_time = 0.0006 sec/query (biased by perf measurements) + (Performance stats: [ mean : stddev ]< min , max > + leaf_nodes = [ 200.9 : 115.8 ]< 51 , 762 > + splitting_nodes = [ 344.9 : 202.4 ]< 77 , 1407 > + shrinking_nodes = [ 0 : 0 ]< 0 , 0 > + total_nodes = [ 545.9 : 317.4 ]< 128 , 2169 > + points_visited = [ 200.9 : 115.8 ]< 51 , 762 > + coord_hits/pt = [ 0.1548 : 0.08517 ]< 0.0348 , 0.5494 > + floating_ops_(K) = [ 6.606 : 3.703 ]< 1.513 , 25.14 > + average_error = [ 0 : 0 ]< 0 , 0 > + rank_error = [ 0 : 0 ]< 0 , 0 > + ) +] +[Run Queries: + query_size = 100 + dim = 8 + search_method = priority + epsilon = 0.1 + near_neigh = 3 + true_nn = 13 + query_time = 0.0007 sec/query (biased by perf measurements) + (Performance stats: [ mean : stddev ]< min , max > + leaf_nodes = [ 176.1 : 101.1 ]< 49 , 629 > + splitting_nodes = [ 314.3 : 186.9 ]< 77 , 1285 > + shrinking_nodes = [ 0 : 0 ]< 0 , 0 > + total_nodes = [ 490.4 : 286.6 ]< 128 , 1914 > + points_visited = [ 176.1 : 101.1 ]< 49 , 629 > + coord_hits/pt = [ 0.1309 : 0.07112 ]< 0.0374 , 0.4332 > + floating_ops_(K) = [ 8.205 : 4.999 ]< 2.032 , 33.27 > + average_error = [ 0 : 0 ]< 0 , 0 > + rank_error = [ 0 : 0 ]< 0 , 0 > + ) +] +[Run Queries: + query_size = 100 + dim = 8 + search_method = standard + epsilon = 0.5 + near_neigh = 3 + true_nn = 13 + query_time = 0.0002 sec/query (biased by perf measurements) + (Performance stats: [ mean : stddev ]< min , max > + leaf_nodes = [ 83.07 : 46.06 ]< 23 , 264 > + splitting_nodes = [ 163.4 : 94.86 ]< 42 , 512 > + shrinking_nodes = [ 0 : 0 ]< 0 , 0 > + total_nodes = [ 246.5 : 140.2 ]< 67 , 776 > + points_visited = [ 83.07 : 46.06 ]< 23 , 264 > + coord_hits/pt = [ 0.0765 : 0.03992 ]< 0.0182 , 0.2192 > + floating_ops_(K) = [ 3.224 : 1.734 ]< 0.891 , 9.572 > + average_error = [ 0.0009039 : 0.009619 ]< 0 , 0.1516 > + rank_error = [ 0 : 0 ]< 0 , 0 > + ) +] +[Run Queries: + query_size = 100 + dim = 8 + search_method = priority + epsilon = 0.5 + near_neigh = 3 + true_nn = 13 + query_time = 0.0004 sec/query (biased by perf measurements) + (Performance stats: [ mean : stddev ]< min , max > + leaf_nodes = [ 69.72 : 38.29 ]< 21 , 246 > + splitting_nodes = [ 146.8 : 81.69 ]< 40 , 475 > + shrinking_nodes = [ 0 : 0 ]< 0 , 0 > + total_nodes = [ 216.5 : 118.8 ]< 65 , 721 > + points_visited = [ 69.72 : 38.29 ]< 21 , 246 > + coord_hits/pt = [ 0.06206 : 0.03155 ]< 0.0182 , 0.194 > + floating_ops_(K) = [ 3.608 : 1.989 ]< 1.126 , 12.28 > + average_error = [ 0.001425 : 0.011 ]< 0 , 0.1516 > + rank_error = [ 0 : 0 ]< 0 , 0 > + ) +] diff --git a/.svn/pristine/03/03e93122e00a079ccfe0c961b905bceeccf41725.svn-base b/.svn/pristine/03/03e93122e00a079ccfe0c961b905bceeccf41725.svn-base new file mode 100644 index 0000000..eadb1ce --- /dev/null +++ b/.svn/pristine/03/03e93122e00a079ccfe0c961b905bceeccf41725.svn-base @@ -0,0 +1,287 @@ + +//#define WANT_STREAM + + +#include "include.h" + +#include "newmat.h" + +#include "tmt.h" + +#ifdef use_namespace +using namespace NEWMAT; +#endif + + +/**************************** test program ******************************/ + + +void trymat2() +{ +// cout << "\nSecond test of Matrix package\n\n"; + Tracer et("Second test of Matrix package"); + Tracer::PrintTrace(); + + int i,j; + + Matrix M(3,5); + for (i=1; i<=3; i++) for (j=1; j<=5; j++) M(i,j) = 100*i + j; + Matrix X(8,10); + for (i=1; i<=8; i++) for (j=1; j<=10; j++) X(i,j) = 1000*i + 10*j; + Matrix Y = X; Matrix Z = X; + { X.SubMatrix(2,4,3,7) << M; } + for (i=1; i<=3; i++) for (j=1; j<=5; j++) Y(i+1,j+2) = 100*i + j; + Print(Matrix(X-Y)); + + + Real a[15]; Real* r = a; + for (i=1; i<=3; i++) for (j=1; j<=5; j++) *r++ = 100*i + j; + { Z.SubMatrix(2,4,3,7) << a; } + Print(Matrix(Z-Y)); + + { M=33; X.SubMatrix(2,4,3,7) << M; } + { Z.SubMatrix(2,4,3,7) = 33; } + Print(Matrix(Z-X)); + + for (i=1; i<=8; i++) for (j=1; j<=10; j++) X(i,j) = 1000*i + 10*j; + Y = X; + UpperTriangularMatrix U(5); + for (i=1; i<=5; i++) for (j=i; j<=5; j++) U(i,j) = 100*i + j; + { X.SubMatrix(3,7,5,9) << U; } + for (i=1; i<=5; i++) for (j=i; j<=5; j++) Y(i+2,j+4) = 100*i + j; + for (i=1; i<=5; i++) for (j=1; jReSize(10,20); + for (i = 1; i <= 10; i++) for (j = 1; j <= 20; j++) + (*MX)(i,j) = 100 * i + j; + ColumnVector* CV = new ColumnVector(10); + if (!CV) Throw(Bad_alloc("New fails ")); + *CV << 1 << 2 << 3 << 4 << 5 << 6 << 7 << 8 << 9 << 10; + RowVector* RV = new RowVector(CV->t() | (*CV + 10).t()); + if (!RV) Throw(Bad_alloc("New fails ")); + CV1 = ColumnVector(10); CV1 = 1; RV1 = RowVector(20); RV1 = 1; + *MX -= 100 * *CV * RV1 + CV1 * *RV; + Print(*MX); + delete MX; delete CV; delete RV; + } + + + // test copying of vectors and matrices with no elements + { + ColumnVector dims(16); + Matrix M1; Matrix M2 = M1; Print(M2); + dims(1) = M2.Nrows(); dims(2) = M2.Ncols(); + dims(3) = (Real)(unsigned long)M2.Store(); dims(4) = M2.Storage(); + M2 = M1; + dims(5) = M2.Nrows(); dims(6) = M2.Ncols(); + dims(7) = (Real)(unsigned long)M2.Store(); dims(8) = M2.Storage(); + M2.ReSize(10,20); M2.CleanUp(); + dims(9) = M2.Nrows(); dims(10) = M2.Ncols(); + dims(11) = (Real)(unsigned long)M2.Store(); dims(12) = M2.Storage(); + M2.ReSize(20,10); M2.ReSize(0,0); + dims(13) = M2.Nrows(); dims(14) = M2.Ncols(); + dims(15) = (Real)(unsigned long)M2.Store(); dims(16) = M2.Storage(); + Print(dims); + } + + { + ColumnVector dims(16); + ColumnVector M1; ColumnVector M2 = M1; Print(M2); + dims(1) = M2.Nrows(); dims(2) = M2.Ncols()-1; + dims(3) = (Real)(unsigned long)M2.Store(); dims(4) = M2.Storage(); + M2 = M1; + dims(5) = M2.Nrows(); dims(6) = M2.Ncols()-1; + dims(7) = (Real)(unsigned long)M2.Store(); dims(8) = M2.Storage(); + M2.ReSize(10); M2.CleanUp(); + dims(9) = M2.Nrows(); dims(10) = M2.Ncols()-1; + dims(11) = (Real)(unsigned long)M2.Store(); dims(12) = M2.Storage(); + M2.ReSize(10); M2.ReSize(0); + dims(13) = M2.Nrows(); dims(14) = M2.Ncols()-1; + dims(15) = (Real)(unsigned long)M2.Store(); dims(16) = M2.Storage(); + Print(dims); + } + + { + ColumnVector dims(16); + RowVector M1; RowVector M2 = M1; Print(M2); + dims(1) = M2.Nrows()-1; dims(2) = M2.Ncols(); + dims(3) = (Real)(unsigned long)M2.Store(); dims(4) = M2.Storage(); + M2 = M1; + dims(5) = M2.Nrows()-1; dims(6) = M2.Ncols(); + dims(7) = (Real)(unsigned long)M2.Store(); dims(8) = M2.Storage(); + M2.ReSize(10); M2.CleanUp(); + dims(9) = M2.Nrows()-1; dims(10) = M2.Ncols(); + dims(11) = (Real)(unsigned long)M2.Store(); dims(12) = M2.Storage(); + M2.ReSize(10); M2.ReSize(0); + dims(13) = M2.Nrows()-1; dims(14) = M2.Ncols(); + dims(15) = (Real)(unsigned long)M2.Store(); dims(16) = M2.Storage(); + Print(dims); + } + + // test identity matrix + { + Matrix M; + IdentityMatrix I(10); DiagonalMatrix D(10); D = 1; + M = I; M -= D; Print(M); + D -= I; Print(D); + ColumnVector X(8); + D = 1; + X(1) = Sum(D) - Sum(I); + X(2) = SumAbsoluteValue(D) - SumAbsoluteValue(I); + X(3) = SumSquare(D) - SumSquare(I); + X(4) = Trace(D) - Trace(I); + X(5) = Maximum(D) - Maximum(I); + X(6) = Minimum(D) - Minimum(I); + X(7) = LogDeterminant(D).LogValue() - LogDeterminant(I).LogValue(); + X(8) = LogDeterminant(D).Sign() - LogDeterminant(I).Sign(); + Clean(X,0.00000001); Print(X); + + for (i = 1; i <= 10; i++) for (j = 1; j <= 10; j++) + M(i,j) = 100 * i + j; + Matrix N; + N = M * I - M; Print(N); + N = I * M - M; Print(N); + N = M * I.i() - M; Print(N); + N = I.i() * M - M; Print(N); + N = I.i(); N -= I; Print(N); + N = I.t(); N -= I; Print(N); + N = I.t(); N += (-I); Print(N); // <---------------- + D = I; N = D; D = 1; N -= D; Print(N); + N = I; D = 1; N -= D; Print(N); + N = M + 2 * IdentityMatrix(10); N -= (M + 2 * D); Print(N); + + I *= 4; + + D = 4; + + X.ReSize(14); + X(1) = Sum(D) - Sum(I); + X(2) = SumAbsoluteValue(D) - SumAbsoluteValue(I); + X(3) = SumSquare(D) - SumSquare(I); + X(4) = Trace(D) - Trace(I); + X(5) = Maximum(D) - Maximum(I); + X(6) = Minimum(D) - Minimum(I); + X(7) = LogDeterminant(D).LogValue() - LogDeterminant(I).LogValue(); // <-- + X(8) = LogDeterminant(D).Sign() - LogDeterminant(I).Sign(); + int i,j; + X(9) = I.Maximum1(i) - 4; X(10) = i-1; + X(11) = I.Maximum2(i,j) - 4; X(12) = i-10; X(13) = j-10; + X(14) = I.Nrows() - 10; + Clean(X,0.00000001); Print(X); + + + N = D.i(); + N += I / (-16); + Print(N); + N = M * I - 4 * M; Print(N); + N = I * M - 4 * M; Print(N); + N = M * I.i() - 0.25 * M; Print(N); + N = I.i() * M - 0.25 * M; Print(N); + N = I.i(); N -= I * 0.0625; Print(N); + N = I.i(); N = N - 0.0625 * I; Print(N); + N = I.t(); N -= I; Print(N); + D = I * 2; N = D; D = 1; N -= 8 * D; Print(N); + N = I * 2; N -= 8 * D; Print(N); + N = 0.5 * I + M; N -= M; N -= 2.0 * D; Print(N); + + IdentityMatrix J(10); J = 8; + D = 4; + DiagonalMatrix E(10); E = 8; + N = (I + J) - (D + E); Print(N); + N = (5*I + 3*J) - (5*D + 3*E); Print(N); + N = (-I + J) - (-D + E); Print(N); + N = (I - J) - (D - E); Print(N); + N = (I | J) - (D | E); Print(N); + N = (I & J) - (D & E); Print(N); + N = SP(I,J) - SP(D,E); Print(N); + N = D.SubMatrix(2,5,3,8) - I.SubMatrix(2,5,3,8); Print(N); + + N = M; N.Inject(I); D << M; N -= (M + I); N += D; Print(N); + D = 4; + + IdentityMatrix K = I.i()*7 - J.t()/4; + N = D.i() * 7 - E / 4 - K; Print(N); + K = I * J; N = K - D * E; Print(N); + N = I * J; N -= D * E; Print(N); + K = 5*I - 3*J; + N = K - (5*D - 3*E); Print(N); + K = I.i(); N = K - 0.0625 * I; Print(N); + K = I.t(); N = K - I; Print(N); + + + K.ReSize(20); D.ReSize(20); D = 1; + D -= K; Print(D); + + I.ReSize(3); J.ReSize(3); K = I * J; N = K - I; Print(N); + K << D; N = K - D; Print(N); + + + } + + +// cout << "\nEnd of second test\n"; +} diff --git a/.svn/pristine/04/041a53376b72c5c27abc0393eeebff57eacab4f0.svn-base b/.svn/pristine/04/041a53376b72c5c27abc0393eeebff57eacab4f0.svn-base new file mode 100644 index 0000000..6c887ed --- /dev/null +++ b/.svn/pristine/04/041a53376b72c5c27abc0393eeebff57eacab4f0.svn-base @@ -0,0 +1,182 @@ +/* + * elch6DunitQuat implementation + * + * Copyright (C) Jochen Sprickerhof + * + * Released under the GPL version 3. + * + */ + + +/** + * @file ELCH implementation using unit Quaternions + * @author Jochen Sprickerhof. Institute of Computer Science, University of Osnabrueck, Germany. + */ + + +#include "slam6d/elch6DunitQuat.h" + +#include "slam6d/metaScan.h" +#include "slam6d/lum6Dquat.h" +#include "slam6d/globals.icc" + +#include +using std::cout; +using std::cerr; +using std::endl; + +#include +using std::ofstream; + +#include +using boost::graph_traits; +using namespace NEWMAT; + +#ifdef _MSC_VER +#define tie tr1::tie +#endif + +/** + * ELCH loop closing function using unit Quaternion + * matches first and last scan of a loop with ICP + * distributes the error + * + * @param allScans all laser scans + * @param first index of first laser scan in the loop + * @param last indes of last laser scan in the loop + * @param g graph for loop optimization + */ +void elch6DunitQuat::close_loop(const vector &allScans, int first, int last, graph_t &g) +{ + int n = num_vertices(g); + graph_t grb[4]; + Matrix C(7, 7); + graph_traits ::edge_iterator ei, ei_end; + for(tie(ei, ei_end) = edges(g); ei != ei_end; ei++) { + int from = source(*ei, g); + int to = target(*ei, g); + lum6DQuat::covarianceQuat(allScans[from], allScans[to], my_icp6D->get_nns_method(), my_icp6D->get_rnd(), my_icp6D->get_max_dist_match2(), &C); + C = C.i(); + for(int j = 0; j < 3; j++) { + add_edge(from, to, abs(C(j + 1, j + 1)), grb[j]); + } + add_edge(from, to, abs(C(4, 4)) + abs(C(5, 5)) + abs(C(6, 6)) + abs(C(7, 7)), grb[3]); + } + + double *weights[4]; + for(int i = 0; i < 4; i++) { + weights[i] = new double[n]; + graph_balancer(grb[i], first, last, weights[i]); + } + + vector meta_start; + meta_start.push_back(allScans[first]); + meta_start.push_back(allScans[first + 1]); + meta_start.push_back(allScans[first + 2]); + MetaScan *start = new MetaScan(meta_start, false, false); + vector meta_end; + meta_end.push_back(allScans[last - 2]); + meta_end.push_back(allScans[last - 1]); + meta_end.push_back(allScans[last]); + MetaScan *end = new MetaScan(meta_end, false, false); + + //save poses bevor ICP + double pOld1[7], pOld2[7], pOld3[7]; + pOld1[0] = allScans[last]->get_rPos()[0]; + pOld1[1] = allScans[last]->get_rPos()[1]; + pOld1[2] = allScans[last]->get_rPos()[2]; + pOld1[3] = allScans[last]->get_rPosQuat()[0]; + pOld1[4] = allScans[last]->get_rPosQuat()[1]; + pOld1[5] = allScans[last]->get_rPosQuat()[2]; + pOld1[6] = allScans[last]->get_rPosQuat()[3]; + + pOld2[0] = allScans[last - 1]->get_rPos()[0]; + pOld2[1] = allScans[last - 1]->get_rPos()[1]; + pOld2[2] = allScans[last - 1]->get_rPos()[2]; + pOld2[3] = allScans[last - 1]->get_rPosQuat()[0]; + pOld2[4] = allScans[last - 1]->get_rPosQuat()[1]; + pOld2[5] = allScans[last - 1]->get_rPosQuat()[2]; + pOld2[6] = allScans[last - 1]->get_rPosQuat()[3]; + + pOld3[0] = allScans[last - 2]->get_rPos()[0]; + pOld3[1] = allScans[last - 2]->get_rPos()[1]; + pOld3[2] = allScans[last - 2]->get_rPos()[2]; + pOld3[3] = allScans[last - 2]->get_rPosQuat()[0]; + pOld3[4] = allScans[last - 2]->get_rPosQuat()[1]; + pOld3[5] = allScans[last - 2]->get_rPosQuat()[2]; + pOld3[6] = allScans[last - 2]->get_rPosQuat()[3]; + + double delta[3]; + delta[0] = allScans[last]->get_rPos()[0]; + delta[1] = allScans[last]->get_rPos()[1]; + delta[2] = allScans[last]->get_rPos()[2]; + double q1[4]; + q1[0] = allScans[last]->get_rPosQuat()[0]; + q1[1] = -allScans[last]->get_rPosQuat()[1]; + q1[2] = -allScans[last]->get_rPosQuat()[2]; + q1[3] = -allScans[last]->get_rPosQuat()[3]; + + my_icp6D->match(start, end); + + delete start; + delete end; + + delta[0] = allScans[last]->get_rPos()[0] - delta[0]; + delta[1] = allScans[last]->get_rPos()[1] - delta[1]; + delta[2] = allScans[last]->get_rPos()[2] - delta[2]; + double q2[4]; + q2[0] = allScans[last]->get_rPosQuat()[0]; + q2[1] = allScans[last]->get_rPosQuat()[1]; + q2[2] = allScans[last]->get_rPosQuat()[2]; + q2[3] = allScans[last]->get_rPosQuat()[3]; + + double deltaQ[4]; + QMult(q2, q1, deltaQ); // q3 = q2*q1^-1 + + if(!quiet) { + double axisangle[4]; + axisangle[0] = deltaQ[0]; + axisangle[1] = deltaQ[1]; + axisangle[2] = deltaQ[2]; + axisangle[3] = deltaQ[3]; + QuatToAA(axisangle); + cout << "Delta: " << delta[0] << " " << delta[1] << " " << delta[2] << " " << axisangle[0] << " " << axisangle[1] << " " << axisangle[2] << " " << axisangle[3] << endl; + } + + // restore poses after ICP matching + allScans[last]->transformToQuat(pOld1, &pOld1[3], Scan::INVALID, -1); + allScans[last - 1]->transformToQuat(pOld2, &pOld2[3], Scan::INVALID, -1); + allScans[last - 2]->transformToQuat(pOld3, &pOld3[3], Scan::INVALID, -1); + + //compute inverse rotation of Scan 0 + double scan0Pdelta[4], scan0Q[4]; + QMult(deltaQ, allScans[0]->get_rPosQuat(), scan0Pdelta); + scan0Q[0] = (1 - weights[3][0]) * allScans[0]->get_rPosQuat()[0] + scan0Pdelta[0] * weights[3][0]; + scan0Q[1] = -1 * ((1 - weights[3][0]) * allScans[0]->get_rPosQuat()[1] + scan0Pdelta[1] * weights[3][0]); + scan0Q[2] = -1 * ((1 - weights[3][0]) * allScans[0]->get_rPosQuat()[2] + scan0Pdelta[2] * weights[3][0]); + scan0Q[3] = -1 * ((1 - weights[3][0]) * allScans[0]->get_rPosQuat()[3] + scan0Pdelta[3] * weights[3][0]); + Normalize4(scan0Q); + QMult(allScans[0]->get_rPosQuat(), scan0Q, scan0Pdelta); + + double rPos[3], rPosQuat[4], tmpquat[4]; + for(int i = 1; i < n; i++) { + rPos[0] = allScans[i]->get_rPos()[0] + delta[0] * (weights[0][i] - weights[0][0]); + rPos[1] = allScans[i]->get_rPos()[1] + delta[1] * (weights[1][i] - weights[1][0]); + rPos[2] = allScans[i]->get_rPos()[2] + delta[2] * (weights[2][i] - weights[2][0]); + QMult(deltaQ, allScans[i]->get_rPosQuat(), rPosQuat); + tmpquat[0] = (1 - weights[3][i]) * allScans[i]->get_rPosQuat()[0] + rPosQuat[0] * weights[3][i]; + tmpquat[1] = (1 - weights[3][i]) * allScans[i]->get_rPosQuat()[1] + rPosQuat[1] * weights[3][i]; + tmpquat[2] = (1 - weights[3][i]) * allScans[i]->get_rPosQuat()[2] + rPosQuat[2] * weights[3][i]; + tmpquat[3] = (1 - weights[3][i]) * allScans[i]->get_rPosQuat()[3] + rPosQuat[3] * weights[3][i]; + Normalize4(tmpquat); + QMult(scan0Pdelta, tmpquat, rPosQuat); + + Normalize4(rPosQuat); + allScans[i]->transformToQuat(rPos, rPosQuat, Scan::ELCH, i == n-1 ? 2 : 1); + } + + for(int i = 0; i < 4; i++) { + delete [] weights[i]; + } + +} diff --git a/.svn/pristine/04/043043909f8c45ae2b4eb378a7d71a101aeec304.svn-base b/.svn/pristine/04/043043909f8c45ae2b4eb378a7d71a101aeec304.svn-base new file mode 100644 index 0000000..1375371 --- /dev/null +++ b/.svn/pristine/04/043043909f8c45ae2b4eb378a7d71a101aeec304.svn-base @@ -0,0 +1,48 @@ +//$$ controlw.h Control word class + +#ifndef CONTROL_WORD_LIB +#define CONTROL_WORD_LIB 0 + +// for organising an int as a series of bits which indicate whether an +// option is on or off. + +class ControlWord +{ +protected: + int cw; // the control word +public: + ControlWord() : cw(0) {} // do nothing + ControlWord(int i) : cw(i) {} // load an integer + + // select specific bits (for testing at least one set) + ControlWord operator*(ControlWord i) const + { return ControlWord(cw & i.cw); } + void operator*=(ControlWord i) { cw &= i.cw; } + + // set bits + ControlWord operator+(ControlWord i) const + { return ControlWord(cw | i.cw); } + void operator+=(ControlWord i) { cw |= i.cw; } + + // reset bits + ControlWord operator-(ControlWord i) const + { return ControlWord(cw - (cw & i.cw)); } + void operator-=(ControlWord i) { cw -= (cw & i.cw); } + + // check if all of selected bits set or reset + bool operator>=(ControlWord i) const { return (cw & i.cw) == i.cw; } + bool operator<=(ControlWord i) const { return (cw & i.cw) == cw; } + + // flip selected bits + ControlWord operator^(ControlWord i) const + { return ControlWord(cw ^ i.cw); } + ControlWord operator~() const { return ControlWord(~cw); } + + // convert to integer + int operator+() const { return cw; } + int operator!() const { return cw==0; } + FREE_CHECK(ControlWord) +}; + + +#endif diff --git a/.svn/pristine/04/046e3a57eb69f8fac9edb72a3c447b364d97ce9d.svn-base b/.svn/pristine/04/046e3a57eb69f8fac9edb72a3c447b364d97ce9d.svn-base new file mode 100644 index 0000000..a4dffce --- /dev/null +++ b/.svn/pristine/04/046e3a57eb69f8fac9edb72a3c447b364d97ce9d.svn-base @@ -0,0 +1,328 @@ +/////////////////////////////////////////////////////////////////////////////// +// Name: range.h +// Purpose: Simple min-max range class and associated selection array class +// Author: John Labenski +// Created: 12/01/2000 +// Copyright: (c) John Labenski 2004 +// Licence: wxWidgets +/////////////////////////////////////////////////////////////////////////////// + +#ifndef __WX_RANGE_H__ +#define __WX_RANGE_H__ + +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) + #pragma interface "range.h" +#endif + +#include "wx/things/thingdef.h" + +class WXDLLIMPEXP_THINGS wxRangeInt; +class WXDLLIMPEXP_THINGS wxRangeDouble; +class WXDLLIMPEXP_THINGS wxRangeIntSelection; +class WXDLLIMPEXP_THINGS wxRangeDoubleSelection; + +#include "wx/dynarray.h" +WX_DECLARE_OBJARRAY_WITH_DECL(wxRangeInt, wxArrayRangeInt, class WXDLLIMPEXP_THINGS); +WX_DECLARE_OBJARRAY_WITH_DECL(wxRangeDouble, wxArrayRangeDouble, class WXDLLIMPEXP_THINGS); +WX_DECLARE_OBJARRAY_WITH_DECL(wxRangeIntSelection, wxArrayRangeIntSelection, class WXDLLIMPEXP_THINGS); +WX_DECLARE_OBJARRAY_WITH_DECL(wxRangeDoubleSelection, wxArrayRangeDoubleSelection, class WXDLLIMPEXP_THINGS); + +// Empty versions of ranges (0, -1) +WXDLLIMPEXP_DATA_THINGS(extern const wxRangeInt) wxEmptyRangeInt; +WXDLLIMPEXP_DATA_THINGS(extern const wxRangeDouble) wxEmptyRangeDouble; + +//============================================================================= +// wxRangeInt +//============================================================================= + +class WXDLLIMPEXP_THINGS wxRangeInt +{ +public: + inline wxRangeInt(int min_=0, int max_=0) : m_min(min_), m_max(max_) { } + + // Get the width of the range + inline int GetRange() const { return m_max - m_min + 1; } + // Get/Set the min/max values of the range + inline int GetMin() const { return m_min; } + inline int GetMax() const { return m_max; } + inline void SetMin(int min_) { m_min = min_; } + inline void SetMax(int max_) { m_max = max_; } + inline void Set(int min_, int max_) { m_min = min_, m_max = max_; } + + // Shift the range by i + void Shift(int i) { m_min += i; m_max += i; } + + // Is the range empty, min < max + inline bool IsEmpty() const { return m_min > m_max; } + + // Swap the min and max values + inline void SwapMinMax() { register int temp=m_min; m_min=m_max; m_max=temp; } + + // returns -1 for i < min, 0 for in range, +1 for i > m_max + inline int Position(int i) const { return i < m_min ? -1 : (i > m_max ? 1 : 0); } + + // Is this point or the range within this range + inline bool Contains( int i ) const { return (i >= m_min) && (i <= m_max); } + inline bool Contains( const wxRangeInt &r ) const + { return (r.m_min >= m_min) && (r.m_max <= m_max); } + + // returns if the range intersects the given range + inline bool Intersects(const wxRangeInt& r) const + { return Intersect(r).IsEmpty(); } + // returns the intersection of the range with the other + inline wxRangeInt Intersect(const wxRangeInt& r) const + { return wxRangeInt(wxMax(m_min, r.m_min), wxMin(m_max, r.m_max)); } + // returns the union of the range with the other + inline wxRangeInt Union(const wxRangeInt& r) const + { return wxRangeInt(wxMin(m_min, r.m_min), wxMax(m_max, r.m_max)); } + + // Is this point inside or touches +/- 1 of the range + inline bool Touches( int i ) const + { return !IsEmpty() && wxRangeInt(m_min-1, m_max+1).Contains(i); } + // Is the range adjoining this range + inline bool Touches( const wxRangeInt &r ) const + { if (IsEmpty() || r.IsEmpty()) return false; + wxRangeInt rExp(m_min-1, m_max+1); + return rExp.Contains(r.m_min) || rExp.Contains(r.m_max); } + // combine this single point with the range by expanding the m_min/m_max to contain it + // if only_if_touching then only combine if i is just outside the range by +/-1 + // returns true if the range has been changed at all, false if not + bool Combine(int i, bool only_if_touching = false); + bool Combine(const wxRangeInt &r, bool only_if_touching = false); + + // delete range r from this, return true is anything was done + // if r spans this then this and right become wxEmptyRangeInt + // else if r is inside of this then this is the left side and right is the right + // else if r.m_min > m_min then this is the left side + // else if r.m_min < m_min this is the right side + bool Delete( const wxRangeInt &r, wxRangeInt *right=NULL ); + + // operators + // no copy ctor or assignment operator - the defaults are ok + + // comparison + inline bool operator==(const wxRangeInt& r) const { return (m_min == r.m_min)&&(m_max == r.m_max); } + inline bool operator!=(const wxRangeInt& r) const { return !(*this == r); } + + // Adding ranges unions them to create the largest range + inline wxRangeInt operator+(const wxRangeInt& r) const { return Union(r); } + inline wxRangeInt& operator+=(const wxRangeInt& r) { if(r.m_minm_max) m_max=r.m_max; return *this; } + // Subtracting ranges intersects them to get the smallest range + inline wxRangeInt operator-(const wxRangeInt& r) const { return Intersect(r); } + inline wxRangeInt& operator-=(const wxRangeInt& r) { if(r.m_min>m_min) m_min=r.m_min; if(r.m_max m_max; } + + // Swap the min and max values + inline void SwapMinMax() { register wxDouble temp = m_min; m_min = m_max; m_max = temp; } + + // returns -1 for i < min, 0 for in range, +1 for i > m_max + inline int Position(wxDouble i) const { return i < m_min ? -1 : i > m_max ? 1 : 0; } + + // Is this point or the range within this range + inline bool Contains( wxDouble i ) const { return (i>=m_min)&&(i<=m_max); } + inline bool Contains( const wxRangeDouble &r ) const + { return (r.m_min>=m_min)&&(r.m_max<=m_max); } + + // returns if the range intersects the given range + inline bool Intersects(const wxRangeDouble& r) const + { return Intersect(r).IsEmpty(); } + // returns the intersection of the range with the other + inline wxRangeDouble Intersect(const wxRangeDouble& r) const + { return wxRangeDouble(wxMax(m_min, r.m_min), wxMin(m_max, r.m_max)); } + // returns the union of the range with the other + inline wxRangeDouble Union(const wxRangeDouble& r) const + { return wxRangeDouble(wxMin(m_min, r.m_min), wxMax(m_max, r.m_max)); } + + // no touches for double since what would be a good eps value? + + // combine this single point with the range by expanding the m_min/m_max to contain it + // if only_if_touching then only combine if there is overlap + // returns true if the range has been changed at all, false if not + bool Combine(wxDouble i); + bool Combine( const wxRangeDouble &r, bool only_if_touching = false ); + + // delete range r from this, return true is anything was done + // if r spans this then this and right become wxEmptyRangeInt + // else if r is inside of this then this is the left side and right is the right + // else if r.m_min > m_min then this is the left side + // else if r.m_min < m_min this is the right side + bool Delete( const wxRangeDouble &r, wxRangeDouble *right=NULL ); + + // operators + // no copy ctor or assignment operator - the defaults are ok + + // comparison + inline bool operator==(const wxRangeDouble& r) const { return (m_min == r.m_min)&&(m_max == r.m_max); } + inline bool operator!=(const wxRangeDouble& r) const { return !(*this == r); } + + // Adding ranges unions them to create the largest range + inline wxRangeDouble operator+(const wxRangeDouble& r) const { return Union(r); } + inline wxRangeDouble& operator+=(const wxRangeDouble& r) { if(r.m_minm_max) m_max=r.m_max; return *this; } + // Subtracting ranges intersects them to get the smallest range + inline wxRangeDouble operator-(const wxRangeDouble& r) const { return Intersect(r); } + inline wxRangeDouble& operator-=(const wxRangeDouble& r) { if(r.m_min>m_min) m_min=r.m_min; if(r.m_max +#include +#include +#include +using namespace std; +typedef vector > Float2D[1200][1600]; + +void calcBoard(double point_array[][2], int board_n, double &x, double &y, double &cx, double &cy, bool pc); +void sortBlobs(double point_array[][2], int board_n, int board_h, int board_w, bool quiet); +IplImage* detectBlobs(IplImage *org_image, int &corner_exp, int board_h, int board_w, bool quiet, double point_array2[][2]); +void drawLines(double point_array2[][2], int corner_exp, IplImage *image, bool color=false); +IplImage* resizeImage(IplImage *source, int scale); +IplImage* detectCorners(IplImage *orgimage, int corner_exp, int board_h, int board_w, bool quiet, double point_array2[][2], int scale=1); +void CalibFunc(int board_w, int board_h, int start, int end, bool optical, bool chess, bool quiet, string dir, int scale=1); +void writeCalibParam(int images, int corner_exp, int board_w, CvMat* image_points, CvSize size, string dir); + +void ProjectAndMap(int start, int end, bool optical, bool quiet, string dir, +IOType type, int scale, double rot_angle, double minDist, double maxDist, +bool correction, int neighborhood, int method=0); + +bool readPoints(string filename, CvPoint3D32f *corners, int size) ; +void sortElementByElement(CvMat * vectors, int nr_elems, int nr_vectors); +void calculateExtrinsicsWithReprojectionCheck(CvMat * points2D, CvMat * +points3D, CvMat * rotation_vectors_temp, CvMat * translation_vectors_temp, CvMat +* distortions, CvMat * instrinsics, int corners, int successes, string dir, bool quiet=true, string substring = "") ; +void calculateExtrinsics(CvMat * rotation_vectors_temp, CvMat * translation_vectors_temp, int successes, string dir, bool quiet=true, string substring = "") ; +void CorrectErrorAndWrite(Float2D &data, fstream &outfile, CvSize size); +void clusterSearch(float ** points, int size, double thresh1, double thresh2, fstream &outfile); +void sortDistances(float ** points, int size); +void ExtrCalibFunc(int board_w, int board_h, int start, int end, bool optical, bool chess, bool quiet, string dir, int scale=1); + + +#endif diff --git a/.svn/pristine/04/048570a286b78a55cae391c89b582fe55aeb5506.svn-base b/.svn/pristine/04/048570a286b78a55cae391c89b582fe55aeb5506.svn-base new file mode 100644 index 0000000..c399b6d --- /dev/null +++ b/.svn/pristine/04/048570a286b78a55cae391c89b582fe55aeb5506.svn-base @@ -0,0 +1,36 @@ +/** + * @file + * @brief IO of 3D scans in Riegl file format + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SCAN_IO_RIEGL_PROJECT_H +#define __SCAN_IO_RIEGL_PROJECT_H + +#include +using std::string; +#include +using std::vector; + +#include "scan_io.h" + +/** + * @brief 3D scan loader for Riegl scans in the binary rxp format + * + * The compiled class is available as shared object file + */ +class ScanIO_riegl_project : public ScanIO { +public: + virtual int readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss); +}; + +// Since this shared object file is loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/.svn/pristine/04/0496c05784235a6e14c4ff97b1e6e638fa0e61fc.svn-base b/.svn/pristine/04/0496c05784235a6e14c4ff97b1e6e638fa0e61fc.svn-base new file mode 100644 index 0000000..385e26f --- /dev/null +++ b/.svn/pristine/04/0496c05784235a6e14c4ff97b1e6e638fa0e61fc.svn-base @@ -0,0 +1,22 @@ +/** + * @file ELCH implementation using unit Quaternions + * @author Jochen Sprickerhof. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __ELCH6D_UINTQUAT_H__ +#define __ELCH6D_UNITQUAT_H__ + +#include "elch6D.h" + +class elch6DunitQuat : public elch6D { + + public: + elch6DunitQuat(bool _quiet, icp6Dminimizer *my_icp6Dminimizer, double mdm, int max_num_iterations, + int rnd, bool eP, int anim, double epsilonICP, int nns_method) + : elch6D(_quiet, my_icp6Dminimizer, mdm, max_num_iterations, rnd, eP, anim, epsilonICP, nns_method) {} + + virtual void close_loop(const vector &allScans, int first, int last, graph_t &g); + +}; + +#endif diff --git a/.svn/pristine/04/04c746477138e4481e4395485fdcee196c90315a.svn-base b/.svn/pristine/04/04c746477138e4481e4395485fdcee196c90315a.svn-base new file mode 100644 index 0000000..e61b742 --- /dev/null +++ b/.svn/pristine/04/04c746477138e4481e4395485fdcee196c90315a.svn-base @@ -0,0 +1,122 @@ +/* + * grabVideoAnd3D implementation + * + * Copyright (C) Stanislav Serebryakov + * + * Released under the GPL version 3. + * + */ + +#include +#include + +#include +#include + +#include "pmdsdk2.h" +#include "cvpmd.h" + +int main(int argc, char **argv) +{ + int totalFrames = 0; + int ui = 1; + printf("%i\n", argc); + if(argc > 1) { + totalFrames = atoi(argv[1]); + ui = 0; + } + if(argc > 2) ui = 1; + + //FIXME: here is lots of old code, should be removed + + + PMD *pmd = initPMD("../o3d.L32.pcp", "192.168.0.69"); + + CvCapture *capture = cvCaptureFromCAM(1); //FIXME: should be passed via argc + + CvSize pmdSz = pmdGetSize(pmd); + printf("pmd sz: %i x %i\n", pmdSz.width, pmdSz.height); + IplImage *imgCamColor = cvQueryFrame(capture); + IplImage *imgPMD = cvCreateImage(pmdGetSize(pmd), 8, 1); + IplImage *imgPMDA = cvCreateImage(cvGetSize(imgPMD), 8, 1); + IplImage *imgCam = cvCreateImage(cvGetSize(imgCamColor), 8, 1); + CvPoint3D32f **pmdPts = (CvPoint3D32f**) cvAlloc(pmdSz.height * sizeof(CvPoint3D32f*)); + for(int i = 0; i < pmdSz.height; i++) pmdPts[i] = (CvPoint3D32f*) cvAlloc(pmdSz.width * sizeof(CvPoint3D32f)); + + CvMat *intrinsicCam = (CvMat*)cvLoad("../intrinsic-cam-6x4.xml"); + CvMat *distortionCam = (CvMat*)cvLoad("../distortion-cam-6x4.xml"); + CvMat *intrinsicPMD = (CvMat*)cvLoad("../intrinsic-pmd-6x4.xml"); + CvMat *distortionPMD = (CvMat*)cvLoad("../distortion-pmd-6x4.xml"); + if(!intrinsicCam || !distortionCam|| !intrinsicPMD || !distortionPMD) { + fprintf(stderr, "ERROR: can't load intrinsic and/or distortion xml files!\n"); + return 1; + } + + +// FILE *vPMDA = fopen("./s001.arv", "wb"); // ala dot Amplitudes Raw Video NOTE: i'm not sure it is amplitude :P +// FILE *vPMDAf = fopen("./s001.farv", "wb"); // same but Floating + FILE *vPMDI = fopen("./s001.irv", "wb"); // same but Intensities + FILE *vPMDIf = fopen("./s001.firv", "wb"); + FILE *headers = fopen("./s001.head", "wb"); + CvVideoWriter *vCam = cvCreateVideoWriter( "./s001.avi" + , CV_FOURCC('D', 'I', 'V', 'X') + , 25, cvGetSize(imgCam), 1); + + FILE *pmdPtsFile = fopen("./s001.3dp", "w"); + + if(ui) { + cvNamedWindow("Cam", 0); + cvNamedWindow("PMD", 1); + } + + printf("DEBUG: init done, going to grab %i frames.\n", totalFrames); + + int frames = 0; + while(1) { + frames++; + if(0 == frames % 100) printf("%i frames grabbed...\n", frames); + // Image retriving + pmdUpdate(pmd->hnd); + imgCamColor = cvQueryFrame(capture); + + pmdQueryImageAsync(pmd, imgPMD); + fwrite(pmdDataPtr(pmd), sizeof(float), pmdSz.width*pmdSz.height, vPMDIf); + + //pmdQueryAmplitudesAsync(pmd, imgPMDA); + //fwrite(pmdDataPtr(pmd), sizeof(float), pmdSz.width*pmdSz.height, vPMDAf); + + + pmdRetriveDistancesAsync(pmd); + pmdProjectArrayToCartesian(pmd, intrinsicPMD, pmdPts); + + ImageHeaderInformation *header = retriveHeader(); + + + if(ui) { + cvShowImage("Cam", imgCamColor); + cvShowImage("PMD", imgPMD); + } + + //FIXME: order col/str + for(int i = 0; i < pmdSz.height; i++) + fwrite(pmdPts[i], sizeof(CvPoint3D32f), pmdSz.width, pmdPtsFile); + + fwrite(imgPMD->imageData, sizeof(char), pmdSz.width*pmdSz.height, vPMDI); + //fwrite(imgPMDA->imageData, sizeof(char), pmdSz.width*pmdSz.height, vPMDA); + fwrite(header, sizeof(ImageHeaderInformation), 1, headers); + + cvWriteFrame(vCam, imgCamColor); + + if(totalFrames && (frames >= totalFrames)) break; + if(ui) if(27 == cvWaitKey(5)) break; + } +// fclose(vPMDA); +// fclose(vPMDAf); + fclose(vPMDI); + fclose(vPMDIf); + fclose(pmdPtsFile); + fclose(headers); + printf("grabbed %i frames.\n", frames); + printf("See s001* files (you want to rename them).\n"); +} + diff --git a/.svn/pristine/05/056f32a80b96bc1cd572918b1f14195c26777b0e.svn-base b/.svn/pristine/05/056f32a80b96bc1cd572918b1f14195c26777b0e.svn-base new file mode 100644 index 0000000..d43c458 --- /dev/null +++ b/.svn/pristine/05/056f32a80b96bc1cd572918b1f14195c26777b0e.svn-base @@ -0,0 +1,30 @@ +/** + * @file + * @brief IO of a 3D scan in rts file format + * @author Thomas Escher + */ + +#ifndef __SCAN_IO_UOS_H__ +#define __SCAN_IO_UOS_H__ + +#include "scan_io.h" + + + +/** + * @brief 3D scan loader for RTS scans + * + * The compiled class is available as shared object file + */ +class ScanIO_rts : public ScanIO { +public: + virtual std::list readDirectory(const char* dir_path, unsigned int start, unsigned int end); + virtual void readPose(const char* dir_path, const char* identifier, double* pose); + virtual void readScan(const char* dir_path, const char* identifier, PointFilter&& filter, std::vector* xyz, std::vector* rgb, std::vector* reflectance, std::vector* amplitude, std::vector* type, std::vector* deviation); + virtual bool supports(IODataType type); +private: + std::string cached_dir; + std::vector cached_poses; +}; + +#endif diff --git a/.svn/pristine/05/059ca0398c8bfc23b05039bd9d751dfb020d5844.svn-base b/.svn/pristine/05/059ca0398c8bfc23b05039bd9d751dfb020d5844.svn-base new file mode 100644 index 0000000..dda27f2 --- /dev/null +++ b/.svn/pristine/05/059ca0398c8bfc23b05039bd9d751dfb020d5844.svn-base @@ -0,0 +1,38 @@ +/** @file + * @brief Definition of the ICP error function minimization + * @author Peter Schneider. Institute of Computer Science, University of Koblenz and Landau, Germany. + * @author Andreas Nuechter. Jacobs University Bremen gGmbH, Germany + */ + +#ifndef __ICP6DHELIX_H__ +#define __ICP6DHELIX_H__ + +#include "icp6Dminimizer.h" +#include "newmat/newmatio.h" +using namespace NEWMAT; + +/** + * @brief Implementation of the ICP error function minimization via helix-translation + */ +class icp6D_HELIX : public icp6Dminimizer +{ +public: + /** + * Constructor + */ + icp6D_HELIX(bool quiet = false) : icp6Dminimizer(quiet) {}; + /** + * Destructor + */ + virtual ~icp6D_HELIX() {}; + + double Point_Point_Align(const vector& Pairs, double *alignxf, + const double centroid_m[3], const double centroid_d[3]); + + static void computeRt(const ColumnVector* ccs, const int vectorOffset, double *alignxf); + + inline int getAlgorithmID() { return 5; }; + +}; + +#endif diff --git a/.svn/pristine/05/05b4bddc378733c6efb0f5c07a821239e2ed5ac4.svn-base b/.svn/pristine/05/05b4bddc378733c6efb0f5c07a821239e2ed5ac4.svn-base new file mode 100644 index 0000000..1bf54e8 --- /dev/null +++ b/.svn/pristine/05/05b4bddc378733c6efb0f5c07a821239e2ed5ac4.svn-base @@ -0,0 +1,180 @@ +/** + * @file + * @brief Implementation of reading 3D scans + * @author Andreas Nuechter. Jacobs University Bremen gGmbH + * @author Dorit Borrmann. Smart Systems Group, Jacobs University Bremen gGmbH, Germany. + */ + +#include "slam6d/scan_io_riegl_txt.h" +#include "slam6d/globals.icc" +#include +using std::ifstream; +#include +using std::cerr; +using std::endl; + +#include +using std::swap; + +#ifdef _MSC_VER +#include +#endif + +/** + * Reads specified scans from given directory in + * the file format Riegl Laser Measurement GmbH + * uses. It will be compiled as shared lib. + * + * Scan poses will NOT be initialized after a call + * to this function. Initial pose estimation works + * only with the -p switch, i.e., trusting the initial + * estimations by Riegl. + * + * The scans have to be exported from the Riegl software + * as follows: + * 1. Export point cloud data to ASCII + * Use Scanners own Coordinate System (SOCS) + * X Y Z Range Theta Phi Reflectance + * 2. Export acqusition location (after you have registered + * with the Riegl software) + * Export SOP + * Write out as .dat file + * + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param dir The directory from which to read + * @param maxDist Reads only Points up to this Distance + * @param minDist Reads only Points from this Distance + * @param euler Initital pose estimates (will not be applied to the points + * @param ptss Vector containing the read points + */ +int ScanIO_riegl_txt::readScans(int start, int end, string &dir, int maxDist, int minDist, + double *euler, vector &ptss) +{ + static int fileCounter = start; + string scanFileName; + string poseFileName; + double maxDist2 = sqr(maxDist); + double minDist2 = sqr(minDist); + ifstream scan_in, pose_in; + + if (end > -1 && fileCounter > end) return -1; // 'nuf read + + + poseFileName = dir + "scan" + to_string(fileCounter,3) + ".dat"; + scanFileName = dir + "scan" + to_string(fileCounter,3) + ".txt"; + + scan_in.open(scanFileName.c_str()); + pose_in.open(poseFileName.c_str()); + // read 3D scan + + if (!pose_in.good() && !scan_in.good()) return -1; // no more files in the directory + if (!pose_in.good()) { cerr << "ERROR: Missing file " << poseFileName << endl; exit(1); } + if (!scan_in.good()) { cerr << "ERROR: Missing file " << scanFileName << endl; exit(1); } + cout << "Processing Scan " << scanFileName; + cout.flush(); + + double rPos[3], rPosTheta[16]; + double inMatrix[16], tMatrix[16]; + for (unsigned int i = 0; i < 16; pose_in >> inMatrix[i++]); + + // transform input pose + tMatrix[0] = inMatrix[5]; + tMatrix[1] = -inMatrix[9]; + tMatrix[2] = -inMatrix[1]; + tMatrix[3] = -inMatrix[13]; + tMatrix[4] = -inMatrix[6]; + tMatrix[5] = inMatrix[10]; + tMatrix[6] = inMatrix[2]; + tMatrix[7] = inMatrix[14]; + tMatrix[8] = -inMatrix[4]; + tMatrix[9] = inMatrix[8]; + tMatrix[10] = inMatrix[0]; + tMatrix[11] = inMatrix[12]; + tMatrix[12] = -inMatrix[7]; + tMatrix[13] = inMatrix[11]; + tMatrix[14] = inMatrix[3]; + tMatrix[15] = inMatrix[15]; + + Matrix4ToEuler(tMatrix, rPosTheta, rPos); + + euler[0] = 100*rPos[0]; + euler[1] = 100*rPos[1]; + euler[2] = 100*rPos[2]; + euler[3] = rPosTheta[0]; + euler[4] = rPosTheta[1]; + euler[5] = rPosTheta[2]; + + long num_pts = 0; + + if (scan_in.good()) { + scan_in >> num_pts; + cout << " with " << num_pts << " Points"; + cout.flush(); + ptss.reserve(num_pts); + } + + // read point data and transform into slam6D coordinate system + while (scan_in.good()) { + Point p; + double range, theta, phi, reflectance; + scan_in >> p.z >> p.x >> p.y >> range >> theta >> phi >> reflectance; + + p.x *= -100; + p.y *= 100; + p.z *= 100; + + p.reflectance = reflectance; + + if (maxDist == -1 || sqr(p.x) + sqr(p.y) + sqr(p.z) < maxDist2) + if (minDist == -1 || sqr(p.x) + sqr(p.y) + sqr(p.z) > minDist2) + ptss.push_back(p); + } + + cout << " done" << endl; + + scan_in.close(); + scan_in.clear(); + pose_in.close(); + pose_in.clear(); + fileCounter++; + + return fileCounter-1; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_riegl_txt; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/.svn/pristine/05/05d0daa67dd41406a02b60654ffe905aa953c9b3.svn-base b/.svn/pristine/05/05d0daa67dd41406a02b60654ffe905aa953c9b3.svn-base new file mode 100644 index 0000000..88bc0b0 --- /dev/null +++ b/.svn/pristine/05/05d0daa67dd41406a02b60654ffe905aa953c9b3.svn-base @@ -0,0 +1,42 @@ + +inline void D2Tree::calcDivide(double x_size, double y_size, double z_size, + double center[3], + double &x_sizeNew, double &y_sizeNew, double &z_sizeNew, + double newcenter[8][3]) +{ + x_sizeNew = x_size * 0.5; + y_sizeNew = y_size * 0.5; + z_sizeNew = z_size * 0.5; + + newcenter[0][0] = center[0] - x_sizeNew; + newcenter[0][1] = center[1] - y_sizeNew; + newcenter[0][2] = center[2] - z_sizeNew; + + newcenter[1][0] = center[0] + x_sizeNew; + newcenter[1][1] = center[1] - y_sizeNew; + newcenter[1][2] = center[2] - z_sizeNew; + + newcenter[2][0] = center[0] - x_sizeNew; + newcenter[2][1] = center[1] + y_sizeNew; + newcenter[2][2] = center[2] - z_sizeNew; + + newcenter[3][0] = center[0] - x_sizeNew; + newcenter[3][1] = center[1] - y_sizeNew; + newcenter[3][2] = center[2] + z_sizeNew; + + newcenter[4][0] = center[0] + x_sizeNew; + newcenter[4][1] = center[1] + y_sizeNew; + newcenter[4][2] = center[2] - z_sizeNew; + + newcenter[5][0] = center[0] + x_sizeNew; + newcenter[5][1] = center[1] - y_sizeNew; + newcenter[5][2] = center[2] + z_sizeNew; + + newcenter[6][0] = center[0] - x_sizeNew; + newcenter[6][1] = center[1] + y_sizeNew; + newcenter[6][2] = center[2] + z_sizeNew; + + newcenter[7][0] = center[0] + x_sizeNew; + newcenter[7][1] = center[1] + y_sizeNew; + newcenter[7][2] = center[2] + z_sizeNew; +} diff --git a/.svn/pristine/06/0605d0eed2233957400ab5fa7d7f640516f4365d.svn-base b/.svn/pristine/06/0605d0eed2233957400ab5fa7d7f640516f4365d.svn-base new file mode 100644 index 0000000..57be749 --- /dev/null +++ b/.svn/pristine/06/0605d0eed2233957400ab5fa7d7f640516f4365d.svn-base @@ -0,0 +1,77 @@ +/***************By yuanjun**************************/ +#pragma once + +#include "veloslam/veloscan.h" +#include "veloslam/matrix.h" + +using namespace std; + +typedef struct _X_state +{ + float x_position; + float z_positon; + float x_speed; + float z_speed; + +}ObjectState; + +typedef struct _Z_measurement +{ + float x_measurement; + float z_measurement; +}Measurement; + +class KalmanFilter +{ +public: + KalmanFilter(); + KalmanFilter(clusterFeature &glu,double rollAngle); + ~KalmanFilter(void); + + void InitialKalmanFilter(clusterFeature &glu); + + void timeUpdate(); + + void stateUpdate(clusterFeature &glu,double rollAngle,double *pos); + + ObjectState GetCurrentState(); + + ObjectState GetPredictState(); + + Measurement GetPredictMeasurement(double rollAngle,double *pos); + + CMatrix CalMeasureDeviation(); + + KalmanFilter& operator = (const KalmanFilter& anotherKF); + + void CalCoorRoll(double angle); + +public: + + CMatrix A; + + CMatrix H; + + CMatrix X1; + + CMatrix X2; + + CMatrix Z; + + CMatrix K; + + CMatrix Q; + + CMatrix R; + + CMatrix P1; + + CMatrix P2; + + CMatrix CoordinateRoll; + + double angle; +}; + + + diff --git a/.svn/pristine/06/0629ed45ebba2c64fd0628c5851690adb1a43bbe.svn-base b/.svn/pristine/06/0629ed45ebba2c64fd0628c5851690adb1a43bbe.svn-base new file mode 100644 index 0000000..5c3390f --- /dev/null +++ b/.svn/pristine/06/0629ed45ebba2c64fd0628c5851690adb1a43bbe.svn-base @@ -0,0 +1,22 @@ +/** + * @file ELCH implementation using Euler angles + * @author Jochen Sprickerhof. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __ELCH6D_EULER_H__ +#define __ELCH6D_EULER_H__ + +#include "elch6D.h" + +class elch6Deuler : public elch6D { + + public: + elch6Deuler(bool _quiet, icp6Dminimizer *my_icp6Dminimizer, double mdm, int max_num_iterations, + int rnd, bool eP, int anim, double epsilonICP, int nns_method) + : elch6D(_quiet, my_icp6Dminimizer, mdm, max_num_iterations, rnd, eP, anim, epsilonICP, nns_method) {} + + virtual void close_loop(const vector &allScans, int first, int last, graph_t &g); + +}; + +#endif diff --git a/.svn/pristine/06/0663cbcb4359530802199b9c432bb10e0ef1f0a9.svn-base b/.svn/pristine/06/0663cbcb4359530802199b9c432bb10e0ef1f0a9.svn-base new file mode 100644 index 0000000..4718248 --- /dev/null +++ b/.svn/pristine/06/0663cbcb4359530802199b9c432bb10e0ef1f0a9.svn-base @@ -0,0 +1,149 @@ +/** + * @file + * @brief Implementation of reading 3D scans + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "slam6d/scan_io_wrl.h" +#include "slam6d/globals.icc" +#include +using std::ifstream; +#include +using std::cerr; +using std::endl; + +#ifdef _MSC_VER +#include +#endif + +#include + +/** + * Reads specified scans from given directory in + * the PLY file format. It will be compiled as + * shared lib. + * + * Scan poses will NOT be initialized after a call + * to this function. + * + * + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param dir The directory from which to read + * @param maxDist Reads only Points up to this Distance + * @param minDist Reads only Points from this Distance + * @param euler Initital pose estimates (will not be applied to the points + * @param ptss Vector containing the read points + */ +int ScanIO_wrl::readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss) +{ + static int fileCounter = start; + string scanFileName; + string poseFileName; + int maxDist2 = (maxDist == -1 ? -1 : sqr(maxDist)); + + int my_fileNr = fileCounter; + + ifstream scan_in, pose_in; + + for (int i = 0; i < 6; i++) euler[i] = 0; + + if (end > -1 && fileCounter > end) return -1; + poseFileName = dir + to_string(fileCounter,3) + "/position.dat"; + + pose_in.open(poseFileName.c_str()); + // read 3D scan + + if (!pose_in.good()) return -1; // no more files in the directory + cout << "Processing Scan " << dir << to_string(fileCounter, 3); + + for (unsigned int i = 0; i < 6; pose_in >> euler[i++]); + + // convert mm to cm + for (unsigned int i = 0; i < 3; i++) euler[i] = euler[i] * 0.1; + + // convert angles from deg to rad + for (unsigned int i = 3; i <= 5; i++) { + euler[i] *= 0.01; + // if (euler[i] < 0.0) euler[i] += 360; + euler[i] = rad(euler[i]); + } + cout << " @ pose (" << euler[0] << "," << euler[1] << "," << euler[2] + << "," << deg(euler[3]) << "," << deg(euler[4]) << "," << deg(euler[5]) << ")" << endl; + + + if (end > -1 && fileCounter > end) return -1; // 'nuf read + + scanFileName = dir + to_string(fileCounter,3) + ".wrl"; + scan_in.open(scanFileName.c_str()); + + // read 3D scan + if (!scan_in.good()) return -1; // no more scans to read + + // overread the first 7 tokes / 4 lines - don't care here + char dummy[255]; + for (int i = 0; i < 4; i++) { + scan_in.getline(dummy, 255); + } + + do { + char cx[25], cy[25], cz[25]; + double xyz[3]; + scan_in >> cx >> cy >> cz; + if (!scan_in.good()) break; + // remove the "," from the z coordinate + cz[strlen(cz)-1] = 0; + xyz[0] = atof(cx); + xyz[1] = atof(cy); + xyz[2] = atof(cz); + Point p(xyz); + if (maxDist == -1 || sqr(p.x) + sqr(p.y) + sqr(p.z) < maxDist2) + ptss.push_back(p); + } while (scan_in.good()); + + scan_in.close(); + scan_in.clear(); + pose_in.close(); + pose_in.clear(); + fileCounter++; + + return my_fileNr; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_wrl; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/.svn/pristine/06/0673d35923f100cb57051a25246c5cf4f8b499f3.svn-base b/.svn/pristine/06/0673d35923f100cb57051a25246c5cf4f8b499f3.svn-base new file mode 100644 index 0000000..c0a1969 --- /dev/null +++ b/.svn/pristine/06/0673d35923f100cb57051a25246c5cf4f8b499f3.svn-base @@ -0,0 +1,46 @@ +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dll", "dll\dll.vcproj", "{A7D00B21-CB9C-4BBB-8DEE-51025104F867}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sample", "sample\sample.vcproj", "{C76F5A10-7A4A-4546-9414-296DB38BE825}" + ProjectSection(ProjectDependencies) = postProject + {A7D00B21-CB9C-4BBB-8DEE-51025104F867} = {A7D00B21-CB9C-4BBB-8DEE-51025104F867} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test", "test\test.vcproj", "{6AC673C7-7B3F-4520-A761-647B212A4BEF}" + ProjectSection(ProjectDependencies) = postProject + {A7D00B21-CB9C-4BBB-8DEE-51025104F867} = {A7D00B21-CB9C-4BBB-8DEE-51025104F867} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ann2fig", "ann2fig\ann2fig.vcproj", "{622DD7D8-0C0A-4303-9176-C9A8AF467E70}" + ProjectSection(ProjectDependencies) = postProject + {A7D00B21-CB9C-4BBB-8DEE-51025104F867} = {A7D00B21-CB9C-4BBB-8DEE-51025104F867} + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {A7D00B21-CB9C-4BBB-8DEE-51025104F867}.Debug|Win32.ActiveCfg = Debug|Win32 + {A7D00B21-CB9C-4BBB-8DEE-51025104F867}.Debug|Win32.Build.0 = Debug|Win32 + {A7D00B21-CB9C-4BBB-8DEE-51025104F867}.Release|Win32.ActiveCfg = Release|Win32 + {A7D00B21-CB9C-4BBB-8DEE-51025104F867}.Release|Win32.Build.0 = Release|Win32 + {C76F5A10-7A4A-4546-9414-296DB38BE825}.Debug|Win32.ActiveCfg = Debug|Win32 + {C76F5A10-7A4A-4546-9414-296DB38BE825}.Debug|Win32.Build.0 = Debug|Win32 + {C76F5A10-7A4A-4546-9414-296DB38BE825}.Release|Win32.ActiveCfg = Release|Win32 + {C76F5A10-7A4A-4546-9414-296DB38BE825}.Release|Win32.Build.0 = Release|Win32 + {6AC673C7-7B3F-4520-A761-647B212A4BEF}.Debug|Win32.ActiveCfg = Debug|Win32 + {6AC673C7-7B3F-4520-A761-647B212A4BEF}.Debug|Win32.Build.0 = Debug|Win32 + {6AC673C7-7B3F-4520-A761-647B212A4BEF}.Release|Win32.ActiveCfg = Release|Win32 + {6AC673C7-7B3F-4520-A761-647B212A4BEF}.Release|Win32.Build.0 = Release|Win32 + {622DD7D8-0C0A-4303-9176-C9A8AF467E70}.Debug|Win32.ActiveCfg = Debug|Win32 + {622DD7D8-0C0A-4303-9176-C9A8AF467E70}.Debug|Win32.Build.0 = Debug|Win32 + {622DD7D8-0C0A-4303-9176-C9A8AF467E70}.Release|Win32.ActiveCfg = Release|Win32 + {622DD7D8-0C0A-4303-9176-C9A8AF467E70}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/.svn/pristine/06/067654053de64fabadac650a3896447fa24ae555.svn-base b/.svn/pristine/06/067654053de64fabadac650a3896447fa24ae555.svn-base new file mode 100644 index 0000000..e2393d5 --- /dev/null +++ b/.svn/pristine/06/067654053de64fabadac650a3896447fa24ae555.svn-base @@ -0,0 +1,5 @@ +P6 +# Created by Paint Shop Pro +11 17 +255 +靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠傀靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠靠 \ No newline at end of file diff --git a/.svn/pristine/07/0709a8ffb742bdf1883918235d3d70b412253e7c.svn-base b/.svn/pristine/07/0709a8ffb742bdf1883918235d3d70b412253e7c.svn-base new file mode 100644 index 0000000..1002d9c --- /dev/null +++ b/.svn/pristine/07/0709a8ffb742bdf1883918235d3d70b412253e7c.svn-base @@ -0,0 +1,51 @@ +IF (WITH_SHAPE_DETECTION) + include_directories(${CMAKE_SOURCE_DIR}/3rdparty/gocr-0.48/src) + include_directories(${CMAKE_SOURCE_DIR}/3rdparty/gocr-0.48/include) + include_directories(${CMAKE_SOURCE_DIR}/include/shapes/) + +# # Compile gocr library +# SET(GOCR_DIR ${CMAKE_SOURCE_DIR}/3rdparty/gocr-0.48/src/) +# add_library(Pgm2asc SHARED ${GOCR_DIR}gocr.c ${GOCR_DIR}pgm2asc.c ${GOCR_DIR}box.c ${GOCR_DIR}database.c +# ${GOCR_DIR}detect.c ${GOCR_DIR}barcode.c ${GOCR_DIR}lines.c ${GOCR_DIR}list.c +# ${GOCR_DIR}ocr0.c ${GOCR_DIR}ocr0n.c ${GOCR_DIR}ocr1.c ${GOCR_DIR}otsu.c +# ${GOCR_DIR}output.c ${GOCR_DIR}pixel.c ${GOCR_DIR}unicode.c ${GOCR_DIR}remove.c +# ${GOCR_DIR}pnm.c ${GOCR_DIR}pcx.c ${GOCR_DIR}progress.c ${GOCR_DIR}job.c) + +# add_executable(shapes shapes.cc geom_math.cc numberrec.cc scan_ransac.cc ) +# +# IF(WIN32) +# target_link_libraries(shapes scan XGetopt netpbm Pgm2asc) +# ENDIF(WIN32) +# +# IF (UNIX) +# target_link_libraries(shapes scan newmat dl netpbm Pgm2asc ) +# ENDIF(UNIX) +# + + add_executable(planes plane.cc) +# add_executable(image toImage.cc image.cc hough.cc convexplane.cc accumulator.cc hsm3d.cc ConfigFileHough.cc parascan.cc quadtree.cc geom_math.cc ) +# add_executable(matchMarker matchMarker.cc) + + IF(UNIX) + target_link_libraries(planes scan shape newmat dl ANN) +# target_link_libraries(image scan newmat sparse dl ANN ) +# target_link_libraries(matchMarker scan newmat sparse dl ANN ) + ENDIF(UNIX) + + IF (WIN32) + target_link_libraries(planes scan newmat XGetopt shape ANN) +# target_link_libraries(image scan newmat sparse ANN XGetopt) + ENDIF(WIN32) + +SET(SHAPELIB_SRCS + hough.cc convexplane.cc accumulator.cc hsm3d.cc ConfigFileHough.cc parascan.cc quadtree.cc geom_math.cc ) + +add_library(shape STATIC ${SHAPELIB_SRCS}) + +#target_link_libraries(shapelib) +IF(EXPORT_SHARED_LIBS) +add_library(shape_s SHARED ${SHAPELIB_SRCS}) +#target_link_libraries(scan_s ${Boost_LIBRARIES} newmat) +ENDIF(EXPORT_SHARED_LIBS) + +ENDIF(WITH_SHAPE_DETECTION) diff --git a/.svn/pristine/07/07e0d5ac5ff8b6a604e12425d069ad18216a768b.svn-base b/.svn/pristine/07/07e0d5ac5ff8b6a604e12425d069ad18216a768b.svn-base new file mode 100644 index 0000000..addfb7f --- /dev/null +++ b/.svn/pristine/07/07e0d5ac5ff8b6a604e12425d069ad18216a768b.svn-base @@ -0,0 +1,42 @@ +/** @file + * @brief Definition of the ICP error function minimization + * @author Andreas Nuechter. Jacobs University Bremen gGmbH, Germany + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __ICP6DAPX_H__ +#define __ICP6DAPX_H__ + +#include "icp6Dminimizer.h" + +/** + * @brief Implementation of the ICP error function minimization via approximation + */ +class icp6D_APX : public icp6Dminimizer +{ +public: + /** + * Constructor + */ + icp6D_APX(bool quiet = false) : icp6Dminimizer(quiet) {}; + /** + * Destructor + */ + virtual ~icp6D_APX() {}; + + double Point_Point_Align(const vector& Pairs, double *alignxf, + const double centroid_m[3], const double centroid_d[3]); + double Point_Point_Align_Parallel(const int openmp_num_threads, + const unsigned int n[OPENMP_NUM_THREADS], + const double sum[OPENMP_NUM_THREADS], + const double centroid_m[OPENMP_NUM_THREADS][3], + const double centroid_d[OPENMP_NUM_THREADS][3], + const vector pairs[OPENMP_NUM_THREADS], + double *alignxf); + + static void computeRt(const double *x, const double *dx, double *alignxf); + + inline int getAlgorithmID() { return 6; }; +}; + +#endif diff --git a/.svn/pristine/08/08900a543687c8acdd6f5bf4b38692d8db90fcaf.svn-base b/.svn/pristine/08/08900a543687c8acdd6f5bf4b38692d8db90fcaf.svn-base new file mode 100644 index 0000000..cd13310 Binary files /dev/null and b/.svn/pristine/08/08900a543687c8acdd6f5bf4b38692d8db90fcaf.svn-base differ diff --git a/.svn/pristine/08/08e387ec4aa98017b512653b6c2c6aea5ba8c229.svn-base b/.svn/pristine/08/08e387ec4aa98017b512653b6c2c6aea5ba8c229.svn-base new file mode 100644 index 0000000..f8f3a08 --- /dev/null +++ b/.svn/pristine/08/08e387ec4aa98017b512653b6c2c6aea5ba8c229.svn-base @@ -0,0 +1,19 @@ +/** + * @file + * @brief Server/Client wide definitions. + * + * If running multiple instances of the scanserver, one can change these shared memory names individually. + * + * @author Thomas Escher + */ + +#ifndef SCANSERVER_DEFINES_H +#define SCANSERVER_DEFINES_H + +//! shared memory for SharedScans, Frames and communications +#define SHM_NAME_DATA "3dtk_scanserver_data" + +//! CacheManager/CacheObject only shared memory +#define SHM_NAME_CACHE "3dtk_scanserver_cache" + +#endif //SCANSERVER_DEFINES_H diff --git a/.svn/pristine/09/0927188bd0596b653813b011fdd69ba118df670e.svn-base b/.svn/pristine/09/0927188bd0596b653813b011fdd69ba118df670e.svn-base new file mode 100644 index 0000000..cd9a7ab --- /dev/null +++ b/.svn/pristine/09/0927188bd0596b653813b011fdd69ba118df670e.svn-base @@ -0,0 +1,47 @@ +#ifndef __SCANGRID_H_ +#define __SCANGRID_H_ + +#include "grid/grid.h" + +/** + * The class represents a 2D section of a scan. + * It inherrits from grid -> the internal representation is an array + * + * @author Uwe Hebbelmann, Sebastian Stock, Andre Schemschat + * + * @date 14.02.2008 + */ +class scanGrid : public grid +{ + /** The position of the robot (X) */ + long viewpointX; + + /** The position of the robot (Z) */ + long viewpointZ; + + public: + /** @brief CTor */ + scanGrid(long viewX, long viewZ, long offsetX, long offsetZ, + long sizeX, long sizeZ); + + /** @brief DTor */ + virtual ~scanGrid(); + + /** + * Getter for the x position of the robot when the scan was made + * @return x position + */ + inline long getViewpointX() const { + return this->viewpointX; + } + + /** + * Getter for the z position of the robot when the scan was made + * @return z position + */ + inline long getViewpointZ() const { + return this->viewpointZ; + } +}; + +#endif diff --git a/.svn/pristine/09/094cd4ed21443a338cbf26efb65ade5c76640266.svn-base b/.svn/pristine/09/094cd4ed21443a338cbf26efb65ade5c76640266.svn-base new file mode 100644 index 0000000..37eaf13 --- /dev/null +++ b/.svn/pristine/09/094cd4ed21443a338cbf26efb65ade5c76640266.svn-base @@ -0,0 +1,100 @@ +#ifndef NRRANSAC_OCTREE_H +#define NRRANSAC_OCTREE_H + +#include "shapes/geom_math.h" +#include "shapes/ransac_Boctree.h" +#include "slam6d/Boctree.h" + + + +template +class NumberRecOctTree : public RansacOctTree { + + public: +// NumberRecOctTree(vector &pts, T voxelSize, PointType _pointtype = PointType() ) : RansacOctTree(pts, voxelSize, _pointtype) {} + NumberRecOctTree(vector &pts, T voxelSize, PointType _pointtype = PointType() ) : RansacOctTree(pts, voxelSize, _pointtype) {} + + long PointsOnNumber(double plane[4], double maxdist, double _center[3], double radius) { + setNumber(plane, _center, radius, maxdist); + return PointsOnNumber(*BOctTree::root, BOctTree::center, BOctTree::size); + } + + void PointsOnNumber(double plane[4], double maxdist, double _center[3], double radius, vector &n) { + setNumber(plane, _center, radius, maxdist); + PointsOnNumber(*BOctTree::root, BOctTree::center, BOctTree::size, n); + } + + + protected: + long PointsOnNumber(bitoct &node, T *center, T size) { + if (!SphereInAABB(center[0], center[1], center[2], size)) { + return 0; + } + + T ccenter[3]; + bitunion *children; + bitoct::getChildren(node, children); + + long result = 0; + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + childcenter(center, ccenter, size, i); // childrens center + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf get center + // check if leaf contains plane + if ( SphereInAABB(ccenter[0], ccenter[1], ccenter[2], size/2.0) ) { + pointrep *points = children->points; + unsigned int length = points[0].length; + T *point = &(points[1].v); // first point + for(unsigned int iterator = 0; iterator < length; iterator++ ) { + if( closeToPlane(point) ) + result++; + point += BOctTree::POINTDIM; + } + } + } else { // recurse + result += PointsOnNumber( children->node, ccenter, size/2.0); + } + ++children; // next child + } + } + + return result; + } + + void PointsOnNumber(bitoct &node, T *center, T size, vector &n) { + if (!SphereInAABB(center[0], center[1], center[2], size)) { + return ; + } + + T ccenter[3]; + bitunion *children; + bitoct::getChildren(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + childcenter(center, ccenter, size, i); // childrens center + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf get center + // check if leaf contains plane + if ( SphereInAABB(ccenter[0], ccenter[1], ccenter[2], size/2.0) ) { + pointrep *points = children->points; + unsigned int length = points[0].length; + T *point = &(points[1].v); // first point + for(unsigned int iterator = 0; iterator < length; iterator++ ) { + if( closeToPlane(point) ) + n.push_back(point); + point+=BOctTree::POINTDIM; + } + } + } else { // recurse + PointsOnNumber( children->node, ccenter, size/2.0, n); + } + ++children; // next child + } + } + } + +}; + + +#endif diff --git a/.svn/pristine/0a/0a3438940d1706c7940e6b63aff15549d2c5846c.svn-base b/.svn/pristine/0a/0a3438940d1706c7940e6b63aff15549d2c5846c.svn-base new file mode 100644 index 0000000..32e8c36 --- /dev/null +++ b/.svn/pristine/0a/0a3438940d1706c7940e6b63aff15549d2c5846c.svn-base @@ -0,0 +1,165 @@ + GOCR (JOCR at SF.net) + +GOCR is an optical character recognition program, released under the +GNU General Public License. It reads images in many formats and outputs +a text file. Possible image formats are pnm, pbm, pgm, ppm, some pcx and +tga image files. Other formats like pnm.gz, pnm.bz2, png, jpg, tiff, gif, +bmp will be automatically converted using the netpbm-progs, gzip and bzip2 +via unix pipe. +A simple graphical frontend written in tcl/tk and some +sample files are included. +Gocr is also able to recognize and translate barcodes. +You do not have to train the program or store large font bases. +Simply call gocr from the command line and get your results. + +To see installation instructions, see the INSTALL file. + +How to start? (QUICK START) +--------------------------- +Some examples of how you can use gocr: + + gocr -h # help + gocr file.pbm # minimum options + gocr -v 1 file.pbm >out.txt 2>out.log # generate text- and log file + djpeg -pnm -gray text.jpg | gocr - # using JPEG-files + gzip -cd text.pbm.gz | gocr - # using gzipped PBM-files + giftopnm text.gif | gocr - # using GIF-files + gocr -v 1 -v 32 -m 4 file.pbm # zoning and out30.bmp output + xli -geometry 400x400 out30.bmp # see details using xli (recommanded viewer) + wish gocr.tcl # X11-tcl/tk-frontend (development version) + # see manual pages for more details + + +How to get image files? +----------------------- +Scan text pages and save it as PGM/PBM/PNM file. Use a program such as +The GIMP or Sane. You can also use netpbm-progs to convert several image +formats into PGM/PBM/PNM. The tool djpeg can be used to convert jpeg into pgm. +If you have a POSIX compatible system like linux and PNM-tools, gzip and bzip2 +are installed, you are lucky and gocr will do conversion +from [.pnm.gz, .pnm.bz2, .jpg, .jpeg, .bmp, .tiff, .png, .ps, .eps] +to [.pgm] for you. This list can easily be extended editing src/pnm.c. + +Gocr also comes with some examples, try: make examples. + +Memory limitations +------------------ +WARNING!!! + +If you use a 300dpi scan of A4 letter, the image is about 2500x3500 pixels and +gocr requires 8.75MB for storing the picture into the memory. Not only that, +but gocr may create a 2nd copy, using a total of 17MB. This is independent +of using b/w or gray-scale images. Be sure that you have enough RAM installed +in your machine! Alternatively you can cut the picture into small pieces. +You can use the pnmcut, from the netpbm package to cut the file. Example: + +pnmcut -left 0 -right 2500 -top 0 -height 1000 bigfile.pnm > smallfile.pnm + +And then use gocr in the cropped image as usual. Take care: if you chopp the +characters, gocr won't be able to understand that line. + +Future versions will take care of this issue automatically. + +Limitations +----------- +gocr is still in its early stages. Your images should fit in these requirements +if you want a good output: + +- good scans (all chars well seperated, one column, no tables etc, 12pt 300dpi) + should work well +- fonts 20-60 pixels ( 5pt * 1in/72pt * 300 dpi = 20 dots ) +- output of image file for controlling detection + +And note that speed is very slow (this will be changed when recognition works +well) + 12pt 300dpi 1700x950 16lines 700chars 22x28 P90=40s..90s v0.2.3 (gcc -O0) + +You can try to optimize the results: +- make good scans/treat image +- try to change the critical gray level (option -l ) +- control the result on out10.png, out30.png (option -v 32) + example: ./gocr -v 32 -m 4 -m 256 -m 56 ~/aac.jpg # only check layout +- enlarge option -d for high resolution images which are noisy +- try different combinations for option -m +- for thousends of documents with same font + you can use/create a database (-m 2/-m 130) +- use options -d 0 -m 8 on screen shots (font8x12) +- use filter option -C to through out wrong recognized chars (ex: gothic) + +What does >> NOT << work at the moment: +- complex layouts (try option -m 4) +- bad scans, noisy/snowy images, FAX-quality images +- serif fonts, italic fonts, slanted fonts +- handwritten texts (this is valid for the next ten years I guess) + the exisctence of autotrace can shorten this +- rotated images (but slightly rotated images should be no problem) +- small fonts (fax like) or mix of different font size +- colored images (use gray or black/white) +- Chinese, Arabian, Egyptian, Cyrillic or Klingon fonts + +How it works or how it should work? +- put the entire file into RAM (300dpi grayscale recommended) +- remove dust and snow +- detect small angle (lines which are not horizontal) +- detect text boxes (option -m 4) +- detect text-lines +- detect characters +- first step recognition (every character has its own empirical procedure) + - no neural network or similar general algorithms +- analyze not detected chars by comparison with detected ones +- try to divide overlapping chars +- testwise: compare all letters (like compression of pictures) +- for more details look to the gocr.html documentation + +Why the result of the new version are worse compared to the old version? +- the algorithms of gocr are sometimes evolutionary, a fine tuned old + algorithm will be replased by a completly new algorithm which is more + general but a bit worse for your problem. + Please send your sample and give the new algo the chance to become + better as the old one. + +Security +-------- +Because gocr only reads and writes files it is quite sure, except the +popen-function which allows you to call gocr with non-pnm-image formats +directly. The popen function can be misused to start other probably +dangerous programs. +If you care about conversion to pnm format, you can safely disable +popen-function by removing "#define HAVE_POPEN 1" from config.h before +compiling the gocr package. + + +How can you help gocr? +---------------------- +- Send comments, ideas and patches (diff -ru gocr_original/ gocr_changed/). +- If you have a lot of money, spend a bit (paypal). Ok, paypal has changed, + so please forget about it. Also the importand problem is now the missing + spare time for coding. +- I always need example files (.pbm.gz or jpeg <100kB) for testing + the behavior of the ocr engine under different conditions, + because scanning does take a lot of time which I do not have. + But do not send files which are not convertable by commercial ocr programs + or which are protected from copying and electronic processing by copyright. + That will help, to get the world's best OCR open source program. :) Thanks! +- Please dont send captchas. +- Send me your results (errors,num_chars,dpi) and if possible results + and name of professional OCR programs for statistics. +- Read OCR literature, extract the essentials and send a short report + to me ;). +- If you have a good idea, how to manage some OCR-tasks, tell me! +- Tell your friends about gocr. Tell me about your success. Be happy. + + +After all, is it gocr or jocr? +------------------------------ +The original name of this project is gocr, from GNU Optical Character +Recognition. Another project is using the same name, however; so the +name was changed to jocr. If you have a good idea for a name, please +send it. + + +Latest news +------------ + http://jocr.sourceforge.net + +Authors: (see AUTHORS) diff --git a/.svn/pristine/0a/0a8d4e89ad7a3ba14230306fcf7927bf701f13d4.svn-base b/.svn/pristine/0a/0a8d4e89ad7a3ba14230306fcf7927bf701f13d4.svn-base new file mode 100644 index 0000000..0ff82e8 --- /dev/null +++ b/.svn/pristine/0a/0a8d4e89ad7a3ba14230306fcf7927bf701f13d4.svn-base @@ -0,0 +1,76 @@ +/**************************************************************************** + + GLUI User Interface Toolkit + --------------------------- + + glui_column.cpp - GLUI_Column control class + + + -------------------------------------------------- + + Copyright (c) 1998 Paul Rademacher + + This program is freely distributable without licensing fees and is + provided without guarantee or warrantee expressed or implied. This + program is -not- in the public domain. + +*****************************************************************************/ + +#include "glui.h" +#include "stdinc.h" + +/**************************************** GLUI_Column::draw() ************/ + +void GLUI_Column::draw( int x, int y ) +{ + int orig; + int panel_x, panel_y, panel_w, panel_h, panel_x_off, panel_y_off; + int y_diff; + + if ( NOT can_draw() ) + return; + + if ( int_val == 1 ) { /* Draw a vertical bar */ + orig = set_to_glut_window(); + + if ( parent() != NULL ) { + get_this_column_dims(&panel_x, &panel_y, &panel_w, &panel_h, + &panel_x_off, &panel_y_off); + + y_diff = y_abs - panel_y; + + if ( 0 ) { + glLineWidth(1.0); + glBegin( GL_LINES ); + glColor3f( .5, .5, .5 ); + glVertex2i( -GLUI_XOFF+1, -y_diff + GLUI_SEPARATOR_HEIGHT/2 ); + glVertex2i( -GLUI_XOFF+1, -y_diff + panel_h - GLUI_SEPARATOR_HEIGHT/2); + + glColor3f( 1.0, 1.0, 1.0 ); + glVertex2i( -GLUI_XOFF+2, -y_diff + GLUI_SEPARATOR_HEIGHT/2 ); + glVertex2i( -GLUI_XOFF+2, -y_diff + panel_h - GLUI_SEPARATOR_HEIGHT/2); + glEnd(); + } + else { + glLineWidth(1.0); + glBegin( GL_LINES ); + glColor3f( .5, .5, .5 ); + glVertex2i( -2, 0 ); + glVertex2i( -2, h ); + /*glVertex2i( 0, -y_diff + GLUI_SEPARATOR_HEIGHT/2 ); */ + /*glVertex2i( 0, -y_diff + panel_h - GLUI_SEPARATOR_HEIGHT/2); */ + + glColor3f( 1.0, 1.0, 1.0 ); + glVertex2i( -1, 0 ); + glVertex2i( -1, h ); + /*glVertex2i( 1, -y_diff + GLUI_SEPARATOR_HEIGHT/2 ); */ + /*glVertex2i( 1, -y_diff + panel_h - GLUI_SEPARATOR_HEIGHT/2); */ + glEnd(); + } + + } + + restore_window(orig); + } +} + diff --git a/.svn/pristine/0a/0ac83746029a29ab286cb840b9e10128c31a67f2.svn-base b/.svn/pristine/0a/0ac83746029a29ab286cb840b9e10128c31a67f2.svn-base new file mode 100644 index 0000000..98c755f --- /dev/null +++ b/.svn/pristine/0a/0ac83746029a29ab286cb840b9e10128c31a67f2.svn-base @@ -0,0 +1,289 @@ +/* +This is a Optical-Character-Recognition program +Copyright (C) 2000-2009 Joerg Schulenburg + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + see README for EMAIL-address + + the following code was send by Ryan Dibble + + The algorithm is very simple but works good hopefully. + + Compare the grayscale histogram with a mass density diagram: + I think the algorithm is a kind of + divide a body into two parts in a way that the mass + centers have the largest distance from each other, + the function is weighted in a way that same masses have a advantage + + - otsu algorithm is failing on diskrete multi color images + + TODO: + RGB: do the same with all colors (CMYG?) seperately + + test: hardest case = two colors + bbg: test done, using a two color gray file. Output: + # threshold: Value = 43 gmin=43 gmax=188 + + my changes: + - float -> double + - debug option added (vvv & 1..2) + - **image => *image, &image[i][1] => &image[i*cols+1] + - do only count pixels near contrast regions + this makes otsu much better for shadowed fonts or multi colored text + on white background + + (m) Joerg Schulenburg (see README for email address) + + ToDo: + - measure contrast + - detect low-contrast regions + + */ + +#include +#include + +#define Abs(x) ((x<0)?-(x):x) + +/*======================================================================* + * global thresholding routine * + * takes a 2D unsigned char array pointer, number of rows, and * + * number of cols in the array. returns the value of the threshold * + * x0,y0,x0+dx,y0+dy are the edgepoints of the interesting region * + * vvv is the verbosity for debugging purpose * + *======================================================================*/ +int +otsu (unsigned char *image, int rows, int cols, + int x0, int y0, int dx, int dy, int vvv) { + + unsigned char *np; // pointer to position in the image we are working with + unsigned char op1, op2; // predecessor of pixel *np (start value) + int maxc=0; // maximum contrast (start value) + int thresholdValue=1; // value we will threshold at + int ihist[256]; // image histogram + int chist[256]; // contrast histogram + + int i, j, k; // various counters + int is, i1, i2, ns, n1, n2, gmin, gmax; + double m1, m2, sum, csum, fmax, sb; + + // zero out histogram ... + memset(ihist, 0, sizeof(ihist)); + memset(chist, 0, sizeof(chist)); + op1=op2=0; + + gmin=255; gmax=0; k=dy/512+1; + // v0.43 first get max contrast, dont do it together with next step + // because it failes if we have pattern as background (on top) + for (i = 0; i < dy ; i+=k) { + np = &image[(y0+i)*cols+x0]; + for (j = 0; j < dx ; j++) { + ihist[*np]++; + if(*np > gmax) gmax=*np; + if(*np < gmin) gmin=*np; + if (Abs(*np-op1)>maxc) maxc=Abs(*np-op1); /* new maximum contrast */ + if (Abs(*np-op2)>maxc) maxc=Abs(*np-op2); /* new maximum contrast */ + /* we hope that maxc will be find its maximum very fast */ + op2=op1; /* shift old pixel to next older */ + op1=*np; /* store old pixel for contrast check */ + np++; /* next pixel */ + } + } + + // generate the histogram + // Aug06 images with large white or black homogeneous + // areas give bad results, so we only add pixels on contrast edges + for (i = 0; i < dy ; i+=k) { + np = &image[(y0+i)*cols+x0]; + for (j = 0; j < dx ; j++) { + if (Abs(*np-op1)>maxc/4 + || Abs(*np-op2)>maxc/4) + chist[*np]++; // count only relevant pixels + op2=op1; /* shift old pixel to next older */ + op1=*np; /* store old pixel for contrast check */ + np++; /* next pixel */ + } + } + + // set up everything + sum = csum = 0.0; + ns = 0; + is = 0; + + for (k = 0; k <= 255; k++) { + sum += (double) k * (double) chist[k]; /* x*f(x) cmass moment */ + ns += chist[k]; /* f(x) cmass */ + is += ihist[k]; /* f(x) imass */ + // Debug: output to out_hist.dat? + // fprintf(stderr,"\chistogram %3d %6d (brightness weight)", k, ihist[k]); + } + + if (!ns) { + // if n has no value we have problems... + fprintf (stderr, "NOT NORMAL, thresholdValue = 160\n"); + return (160); + } + + // ToDo: only care about extremas in a 3 pixel environment + // check if there are more than 2 mass centers (more colors) + // return object colors and color radius instead of threshold value + // also the reagion, where colored objects are found + // what if more than one background color? no otsu at all? + // whats background? box with lot of other boxes in it + // threshold each box (examples/invers.png,colors.png) + // get maximum white and minimum black pixel color (possible range) + // check range between them for low..high contrast ??? + // typical scenes (which must be covered): + // - white page with text of different colors (gray values) + // - binear page: background (gray=1) + black text (gray=0) + // - text mixed with big (dark) images + // ToDo: recursive clustering for maximum multipol moments? + // idea: normalize ihist to max=1024 before otsu? + + // do the otsu global thresholding method + + if ((vvv&1)) // Debug + fprintf(stderr,"# threshold: value ihist chist mass_dipol_moment\n"); + fmax = -1.0; + n1 = 0; + for (k = 0; k < 255; k++) { + n1 += chist[k]; // left mass (integration) + if (!n1) continue; // we need at least one foreground pixel + n2 = ns - n1; // right mass (num pixels - left mass) + if (n2 == 0) break; // we need at least one background pixel + csum += (double) k *chist[k]; // left mass moment + m1 = csum / n1; // left mass center (black chars) + m2 = (sum - csum) / n2; // right mass center (white background) + // max. dipol moment? + // orig: sb = (double) n1 *(double) n2 * (m1 - m2) * (m1 - m2); + sb = (double) n1 *(double) n2 * (m2 - m1); // seems to be better Aug06 + /* bbg: note: can be optimized. */ + if (sb > fmax) { + fmax = sb; + thresholdValue = k + 1; + // thresholdValue = (m1 + 3 * m2) / 4; + } + if ((vvv&1) && ihist[k]) // Debug + fprintf(stderr,"# threshold: %3d %6d %6d %8.2f\n", + k, ihist[k], chist[k], + sb/(dx*dy)); /* normalized dipol moment */ + } + // ToDo: error = left/right point where sb is 90% of maximum? + // now we count all pixels for background detection + i1 = 0; + for (k = 0; k < thresholdValue; k++) { + i1 += ihist[k]; // left mass (integration) + } + i2 = is - i1; // right mass (num pixels - left mass) + + // at this point we have our thresholding value + // black_char: value=cs + + // can it happen? check for sureness + if (thresholdValue > gmax) { + fprintf(stderr,"# threshold: Value >gmax\n"); + thresholdValue = gmax; + } + if (thresholdValue <= gmin) { + fprintf(stderr,"# threshold: Value<=gmin\n"); + thresholdValue = gmin+1; + } + + // debug code to display thresholding values + if ( vvv & 1 ) + fprintf(stderr,"# threshold: Value = %d gmin=%d gmax=%d cmax=%d" + " b/w= %d %d\n", + thresholdValue, gmin, gmax, maxc, i1, i2); + + // this is a primitive criteria for inversion and should be improved + // old: i1 >= 4*i2, but 0811qemu1.png has a bit above 1/4 + if (2*i1 > 7*i2) { // more black than white, obviously black is background + if ( vvv & 1 ) + fprintf(stderr,"# threshold: invert the image\n"); + // we do inversion here (no data lost) + for (i = 0; i < dy ; i++) { + np = &image[(y0+i)*cols+x0]; + for (j = 0; j < dx ; j++) { + *np=255-*np; + np++; /* next pixel */ + } + } + thresholdValue=255-thresholdValue+1; + } + + return(thresholdValue); + /* range: 0 < thresholdValue <= 255, example: 1 on b/w images */ + /* 0..threshold-1 is foreground */ + /* threshold..255 is background */ + /* ToDo: min=blackmasscenter/2,thresh,max=(whitemasscenter+255)/2 */ +} + +/*======================================================================*/ +/* thresholding the image (set threshold to 128+32=160=0xA0) */ +/* now we have a fixed thresholdValue good to recognize on gray image */ +/* - so lower bits can used for other things (bad design?) */ +/* ToDo: different foreground colors, gray on black/white background */ +/*======================================================================*/ +int +thresholding (unsigned char *image, int rows, int cols, + int x0, int y0, int dx, int dy, int thresholdValue) { + + unsigned char *np; // pointer to position in the image we are working with + + int i, j; // various counters + int gmin=255,gmax=0; + int nmin=255,nmax=0; + + // calculate min/max (twice?) + for (i = y0 + 1; i < y0 + dy - 1; i++) { + np = &image[i*cols+x0+1]; + for (j = x0 + 1; j < x0 + dx - 1; j++) { + if(*np > gmax) gmax=*np; + if(*np < gmin) gmin=*np; + np++; /* next pixel */ + } + } + + /* allowed_threshold=gmin+1..gmax v0.43 */ + if (thresholdValue<=gmin || thresholdValue>gmax){ + thresholdValue=(gmin+gmax+1)/2; /* range=0..1 -> threshold=1 */ + fprintf(stderr,"# thresholdValue out of range %d..%d, reset to %d\n", + gmin, gmax, thresholdValue); + } + + /* b/w: min=0,tresh=1,max=1 v0.43 */ + // actually performs the thresholding of the image... + // later: grayvalues should also be used, only rescaling threshold=160=0xA0 + // sometimes images have no contrast (thresholdValue == gmin) + for (i = y0; i < y0+dy; i++) { + np = &image[i*cols+x0]; + for (j = x0; j < x0+dx; j++) { + *np = (unsigned char) (*np >= thresholdValue || thresholdValue == gmin ? + (255-(gmax - *np)* 80/(gmax - thresholdValue + 1)) : + ( 0+(*np - gmin)*150/(thresholdValue - gmin )) ); + if(*np > nmax) nmax=*np; + if(*np < nmin) nmin=*np; + np++; + } + } + + // fprintf(stderr,"# thresholding: nmin=%d nmax=%d\n", nmin, nmax); + + return(128+32); // return the new normalized threshold value + /* 0..159 is foreground */ + /* 160..255 is background */ +} + diff --git a/.svn/pristine/0a/0accdf7f52cef02d0b444335cd50f7502d273c88.svn-base b/.svn/pristine/0a/0accdf7f52cef02d0b444335cd50f7502d273c88.svn-base new file mode 100644 index 0000000..d0563aa --- /dev/null +++ b/.svn/pristine/0a/0accdf7f52cef02d0b444335cd50f7502d273c88.svn-base @@ -0,0 +1,136 @@ +/* + * elch6Dquat implementation + * + * Copyright (C) Jochen Sprickerhof + * + * Released under the GPL version 3. + * + */ + +/** + * @file ELCH implementation using Quaternions + * @author Jochen Sprickerhof. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "slam6d/elch6Dquat.h" + +#include "slam6d/metaScan.h" +#include "slam6d/lum6Dquat.h" +#include "slam6d/globals.icc" + +#include +using std::cout; +using std::cerr; +using std::endl; + +#include +using std::ofstream; + +#include +using boost::graph_traits; +using namespace NEWMAT; + +#ifdef _MSC_VER +#define tie tr1::tie +#endif + +/** + * ELCH loop closing function using Quaternions + * matches first and last scan of a loop with ICP + * distributes the error + * + * @param allScans all laser scans + * @param first index of first laser scan in the loop + * @param last indes of last laser scan in the loop + * @param g graph for loop optimization + */ +void elch6Dquat::close_loop(const vector &allScans, int first, int last, graph_t &g) +{ + int n = num_vertices(g); + graph_t grb[7]; + Matrix C(7, 7); + graph_traits ::edge_iterator ei, ei_end; + for(tie(ei, ei_end) = edges(g); ei != ei_end; ei++) { + int from = source(*ei, g); + int to = target(*ei, g); + lum6DQuat::covarianceQuat(allScans[from], allScans[to], my_icp6D->get_nns_method(), my_icp6D->get_rnd(), my_icp6D->get_max_dist_match2(), &C); + C = C.i(); + for(int j = 0; j < 7; j++) { + add_edge(from, to, fabs(C(j + 1, j + 1)), grb[j]); + } + } + + double *weights[7]; + for(int i = 0; i < 7; i++) { + weights[i] = new double[n]; + graph_balancer(grb[i], first, last, weights[i]); + } + + vector meta_start; + meta_start.push_back(allScans[first]); + meta_start.push_back(allScans[first + 1]); + meta_start.push_back(allScans[first + 2]); + MetaScan *start = new MetaScan(meta_start, false, false); + vector meta_end; + meta_end.push_back(allScans[last - 2]); + meta_end.push_back(allScans[last - 1]); + meta_end.push_back(allScans[last]); + MetaScan *end = new MetaScan(meta_end, false, false); + + for(int i = last - 2; i <= last; i++) { + for(int j = 0; j < 7; j++) { + weights[j][i] = 0.0; + } + } + + double delta[7]; + delta[0] = allScans[last]->get_rPos()[0]; + delta[1] = allScans[last]->get_rPos()[1]; + delta[2] = allScans[last]->get_rPos()[2]; + delta[3] = allScans[last]->get_rPosQuat()[0]; + delta[4] = allScans[last]->get_rPosQuat()[1]; + delta[5] = allScans[last]->get_rPosQuat()[2]; + delta[6] = allScans[last]->get_rPosQuat()[3]; + + my_icp6D->match(start, end); + + delete start; + delete end; + + delta[0] = allScans[last]->get_rPos()[0] - delta[0]; + delta[1] = allScans[last]->get_rPos()[1] - delta[1]; + delta[2] = allScans[last]->get_rPos()[2] - delta[2]; + delta[3] = allScans[last]->get_rPosQuat()[0] - delta[3]; + delta[4] = allScans[last]->get_rPosQuat()[1] - delta[4]; + delta[5] = allScans[last]->get_rPosQuat()[2] - delta[5]; + delta[6] = allScans[last]->get_rPosQuat()[3] - delta[6]; + + if(!quiet) { + double axisangle[4]; + axisangle[0] = delta[3]; + axisangle[1] = delta[4]; + axisangle[2] = delta[5]; + axisangle[3] = delta[6]; + QuatToAA(axisangle); + cout << "Delta: " << delta[0] << " " << delta[1] << " " << delta[2] << " " << axisangle[0] << " " << axisangle[1] << " " << axisangle[2] << " " << axisangle[3] << endl; + } + + double rPos[3], rPosQuat[4]; + for(int i = 1; i < n; i++) { + rPos[0] = allScans[i]->get_rPos()[0] + delta[0] * (weights[0][i] - weights[0][0]); + rPos[1] = allScans[i]->get_rPos()[1] + delta[1] * (weights[1][i] - weights[1][0]); + rPos[2] = allScans[i]->get_rPos()[2] + delta[2] * (weights[2][i] - weights[2][0]); + rPosQuat[0] = allScans[i]->get_rPosQuat()[0] + delta[3] * (weights[3][i] - weights[3][0]); + rPosQuat[1] = allScans[i]->get_rPosQuat()[1] + delta[4] * (weights[4][i] - weights[4][0]); + rPosQuat[2] = allScans[i]->get_rPosQuat()[2] + delta[5] * (weights[5][i] - weights[5][0]); + rPosQuat[3] = allScans[i]->get_rPosQuat()[3] + delta[6] * (weights[6][i] - weights[6][0]); + + Normalize4(rPosQuat); + allScans[i]->transformToQuat(rPos, rPosQuat, Scan::ELCH, i == n-1 ? 2 : 1); + } + + for(int i = 0; i < 7; i++) { + delete [] weights[i]; + } + +} diff --git a/.svn/pristine/0b/0b89dc190d0de0a6035e7e6fd42b8d7951b08d9c.svn-base b/.svn/pristine/0b/0b89dc190d0de0a6035e7e6fd42b8d7951b08d9c.svn-base new file mode 100644 index 0000000..6b3f5c5 --- /dev/null +++ b/.svn/pristine/0b/0b89dc190d0de0a6035e7e6fd42b8d7951b08d9c.svn-base @@ -0,0 +1,44 @@ +//---------------------------------------------------------------------- +// File: kd_fix_rad_search.h +// Programmer: Sunil Arya and David Mount +// Description: Standard kd-tree fixed-radius kNN search +// Last modified: 05/03/05 (Version 1.1) +//---------------------------------------------------------------------- +// Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +// David Mount. All Rights Reserved. +// +// This software and related documentation is part of the Approximate +// Nearest Neighbor Library (ANN). This software is provided under +// the provisions of the Lesser GNU Public License (LGPL). See the +// file ../ReadMe.txt for further information. +// +// The University of Maryland (U.M.) and the authors make no +// representations about the suitability or fitness of this software for +// any purpose. It is provided "as is" without express or implied +// warranty. +//---------------------------------------------------------------------- +// History: +// Revision 1.1 05/03/05 +// Initial release +//---------------------------------------------------------------------- + +#ifndef ANN_kd_fix_rad_search_H +#define ANN_kd_fix_rad_search_H + +#include "kd_tree.h" // kd-tree declarations +#include "kd_util.h" // kd-tree utilities +#include "pr_queue_k.h" // k-element priority queue + +#include // performance evaluation + +//---------------------------------------------------------------------- +// Global variables +// These are active for the life of each call to +// annRangeSearch(). They are set to save the number of +// variables that need to be passed among the various search +// procedures. +//---------------------------------------------------------------------- + +extern ANNpoint ANNkdFRQ; // query point (static copy) + +#endif diff --git a/.svn/pristine/0b/0bd8fcfb82e0a325a9450fccd86d4dece35fcb36.svn-base b/.svn/pristine/0b/0bd8fcfb82e0a325a9450fccd86d4dece35fcb36.svn-base new file mode 100644 index 0000000..276eca0 --- /dev/null +++ b/.svn/pristine/0b/0bd8fcfb82e0a325a9450fccd86d4dece35fcb36.svn-base @@ -0,0 +1,28 @@ +/** + * @file + * @brief + * + * @author Thomas Escher + */ + +#ifndef SHARED_FRAME_H +#define SHARED_FRAME_H + +#include "slam6d/frame.h" + +#include +#include + +// hide the boost namespace and shorten others +namespace +{ + namespace ip = boost::interprocess; + // the segment manager providing the allocations + typedef ip::managed_shared_memory::segment_manager SegmentManager; +} + +typedef ip::allocator FrameAllocator; +typedef ip::vector FrameVector; + + +#endif //SHARED_FRAME_H diff --git a/.svn/pristine/0b/0bea7e5e31f4924178802bcc12d1a149feefba4e.svn-base b/.svn/pristine/0b/0bea7e5e31f4924178802bcc12d1a149feefba4e.svn-base new file mode 100644 index 0000000..9115ae3 --- /dev/null +++ b/.svn/pristine/0b/0bea7e5e31f4924178802bcc12d1a149feefba4e.svn-base @@ -0,0 +1,340 @@ +/* +This is a Optical-Character-Recognition program +Copyright (C) 2000-2009 Joerg Schulenburg + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + see README for EMAIL-address + + sometimes I have written comments in german language, sorry for that + + This file was retrieved from pgm2asc.cc of Joerg, in order to have + a library of the ocr-engine from Klaas Freitag + + */ +#include "config.h" +#include +#include +#include +#include +#ifdef HAVE_GETTIMEOFDAY +#include +#endif +#ifdef HAVE_UNISTD_H +#include +#endif + +#include "pnm.h" +#include "pgm2asc.h" +#include "pcx.h" +#include "ocr0.h" /* only_numbers */ +#include "progress.h" +#include "version.h" + +static void out_version(int v) { + fprintf(stderr, " Optical Character Recognition --- gocr " + version_string " " release_string "\n" + " Copyright (C) 2001-2009 Joerg Schulenburg GPG=1024D/53BDFBE3\n" + " released under the GNU General Public License\n"); + /* as recommended, (c) and license should be part of the binary */ + /* no email because of SPAM, see README for contacting the author */ + if (v) + fprintf(stderr, " use option -h for help\n"); + if (v & 2) + exit(1); + return; +} + +static void help(void) { + out_version(0); + /* output is shortened to essentials, see manual page for details */ + fprintf(stderr, + " using: gocr [options] pnm_file_name # use - for stdin\n" + " options (see gocr manual pages for more details):\n" + " -h, --help\n" + " -i name - input image file (pnm,pgm,pbm,ppm,pcx,...)\n" + " -o name - output file (redirection of stdout)\n" + " -e name - logging file (redirection of stderr)\n" + " -x name - progress output to fifo (see manual)\n" + " -p name - database path including final slash (default is ./db/)\n"); + fprintf(stderr, /* string length less than 509 bytes for ISO C89 */ + " -f fmt - output format (ISO8859_1 TeX HTML XML UTF8 ASCII)\n" + " -l num - threshold grey level 0<160<=255 (0 = autodetect)\n" + " -d num - dust_size (remove small clusters, -1 = autodetect)\n" + " -s num - spacewidth/dots (0 = autodetect)\n" + " -v num - verbose (see manual page)\n" + " -c string - list of chars (debugging, see manual)\n" + " -C string - char filter (ex. hexdigits: ""0-9A-Fx"", only ASCII)\n" + " -m num - operation modes (bitpattern, see manual)\n"); + fprintf(stderr, /* string length less than 509 bytes for ISO C89 */ + " -a num - value of certainty (in percent, 0..100, default=95)\n" + " -u string - output this string for every unrecognized character\n"); + fprintf(stderr, /* string length less than 509 bytes for ISO C89 */ + " examples:\n" + "\tgocr -m 4 text1.pbm # do layout analyzis\n" + "\tgocr -m 130 -p ./database/ text1.pbm # extend database\n" + "\tdjpeg -pnm -gray text.jpg | gocr - # use jpeg-file via pipe\n" + "\n"); + fprintf(stderr, " webpage: http://jocr.sourceforge.net/\n"); + exit(0); +} + +#ifdef HAVE_GETTIMEOFDAY +/* from the glibc documentation */ +static int timeval_subtract (struct timeval *result, struct timeval *x, + struct timeval *y) { + + /* Perform the carry for the later subtraction by updating Y. */ + if (x->tv_usec < y->tv_usec) { + int nsec = (y->tv_usec - x->tv_usec) / 1000000 + 1; + y->tv_usec -= 1000000 * nsec; + y->tv_sec += nsec; + } + if (x->tv_usec - y->tv_usec > 1000000) { + int nsec = (x->tv_usec - y->tv_usec) / 1000000; + y->tv_usec += 1000000 * nsec; + y->tv_sec -= nsec; + } + + /* Compute the time remaining to wait. + `tv_usec' is certainly positive. */ + result->tv_sec = x->tv_sec - y->tv_sec; + result->tv_usec = x->tv_usec - y->tv_usec; + + /* Return 1 if result is negative. */ + return x->tv_sec < y->tv_sec; +} +#endif + +static void process_arguments(job_t *job, int argn, char *argv[]) +{ + int i; + char *s1; + + assert(job); + + if (argn <= 1) { + out_version(1); + exit(0); + } +#ifdef HAVE_PGM_H + pnm_init(&argn, &argv); +#endif + + /* process arguments */ + for (i = 1; i < argn; i++) { + if (strcmp(argv[i], "--help") == 0) + help(); /* and quits */ + if (argv[i][0] == '-' && argv[i][1] != 0) { + s1 = ""; + if (i + 1 < argn) + s1 = argv[i + 1]; + switch (argv[i][1]) { + case 'h': /* help */ + help(); + break; + case 'i': /* input image file */ + job->src.fname = s1; + i++; + break; + case 'e': /* logging file */ + if (s1[0] == '-' && s1[1] == '\0') { +#ifdef HAVE_UNISTD_H + dup2(STDOUT_FILENO, STDERR_FILENO); /* -e /dev/stdout works */ +#else + fprintf(stderr, "stderr redirection not possible without unistd.h\n"); +#endif + } + else if (!freopen(s1, "w", stderr)) { + fprintf(stderr, "stderr redirection to %s failed\n", s1); + } + i++; + break; + case 'p': /* database path */ + job->cfg.db_path=s1; + i++; + break; + case 'o': /* output file */ + if (s1[0] == '-' && s1[1] == '\0') { /* default */ + } + else if (!freopen(s1, "w", stdout)) { + fprintf(stderr, "stdout redirection to %s failed\n", s1); + }; + i++; + break; + case 'f': /* output format */ + if (strcmp(s1, "ISO8859_1") == 0) job->cfg.out_format=ISO8859_1; else + if (strcmp(s1, "TeX") == 0) job->cfg.out_format=TeX; else + if (strcmp(s1, "HTML") == 0) job->cfg.out_format=HTML; else + if (strcmp(s1, "XML") == 0) job->cfg.out_format=XML; else + if (strcmp(s1, "SGML") == 0) job->cfg.out_format=SGML; else + if (strcmp(s1, "UTF8") == 0) job->cfg.out_format=UTF8; else + if (strcmp(s1, "ASCII") == 0) job->cfg.out_format=ASCII; else + fprintf(stderr,"Warning: unknown format (-f %s)\n",s1); + i++; + break; + case 'c': /* list of chars (_ = not recognized chars) */ + job->cfg.lc = s1; + i++; + break; + case 'C': /* char filter, default: NULL (all chars) */ + /* ToDo: UTF8 input, wchar */ + job->cfg.cfilter = s1; + i++; + break; + case 'd': /* dust size */ + job->cfg.dust_size = atoi(s1); + i++; + break; + case 'l': /* grey level 0<160<=255, 0 for autodetect */ + job->cfg.cs = atoi(s1); + i++; + break; + case 's': /* spacewidth/dots (0 = autodetect) */ + job->cfg.spc = atoi(s1); + i++; + break; + case 'v': /* verbose mode */ + job->cfg.verbose |= atoi(s1); + i++; + break; + case 'm': /* operation modes */ + job->cfg.mode |= atoi(s1); + i++; + break; + case 'n': /* numbers only */ + job->cfg.only_numbers = atoi(s1); + i++; + break; + case 'x': /* initialize progress output s1=fname */ + ini_progress(s1); + i++; + break; + case 'a': /* set certainty */ + job->cfg.certainty = atoi(s1);; + i++; + break; + case 'u': /* output marker for unrecognized chars */ + job->cfg.unrec_marker = s1; + i++; + break; + default: + fprintf(stderr, "# unknown option use -h for help\n"); + } + continue; + } + else /* argument can be filename v0.2.5 */ if (argv[i][0] != '-' + || argv[i][1] == '\0' ) { + job->src.fname = argv[i]; + } + } +} + +static void mark_start(job_t *job) { + assert(job); + + if (job->cfg.verbose) { + out_version(0); + /* insert some helpful info for support */ + fprintf(stderr, "# compiled: " __DATE__ ); +#if defined(__GNUC__) + fprintf(stderr, " GNUC-%d", __GNUC__ ); +#endif +#ifdef __GNUC_MINOR__ + fprintf(stderr, ".%d", __GNUC_MINOR__ ); +#endif +#if defined(__linux) + fprintf(stderr, " linux"); +#elif defined(__unix) + fprintf(stderr, " unix"); +#endif +#if defined(__WIN32) || defined(__WIN32__) + fprintf(stderr, " WIN32"); +#endif +#if defined(__WIN64) || defined(__WIN64__) + fprintf(stderr, " WIN64"); +#endif +#if defined(__VERSION__) + fprintf(stderr, " version " __VERSION__ ); +#endif + fprintf(stderr, "\n"); + fprintf(stderr, + "# options are: -l %d -s %d -v %d -c %s -m %d -d %d -n %d -a %d -C \"%s\"\n", + job->cfg.cs, job->cfg.spc, job->cfg.verbose, job->cfg.lc, job->cfg.mode, + job->cfg.dust_size, job->cfg.only_numbers, job->cfg.certainty, + job->cfg.cfilter); + fprintf(stderr, "# file: %s\n", job->src.fname); +#ifdef USE_UNICODE + fprintf(stderr,"# using unicode\n"); +#endif +#ifdef HAVE_GETTIMEOFDAY + gettimeofday(&job->tmp.init_time, NULL); +#endif + } +} + +static void mark_end(job_t *job) { + assert(job); + +#ifdef HAVE_GETTIMEOFDAY + /* show elapsed time */ + if (job->cfg.verbose) { + struct timeval end, result; + gettimeofday(&end, NULL); + timeval_subtract(&result, &end, &job->tmp.init_time); + fprintf(stderr,"Elapsed time: %d:%02d:%3.3f.\n", (int)result.tv_sec/60, + (int)result.tv_sec%60, (float)result.tv_usec/1000); + } +#endif +} + +static int read_picture(job_t *job) { + int rc=0; + assert(job); + + if (strstr(job->src.fname, ".pcx")) + readpcx(job->src.fname, &job->src.p, job->cfg.verbose); + else + rc=readpgm(job->src.fname, &job->src.p, job->cfg.verbose); + return rc; /* 1 for multiple images, 0 else */ +} + +/* subject of change, we need more output for XML (ToDo) */ +void print_output(job_t *job) { + int linecounter = 0; + const char *line; + + assert(job); + + linecounter = 0; + line = getTextLine(linecounter++); + while (line) { + /* notice: decode() is shiftet to getTextLine since 0.38 */ + fputs(line, stdout); + if (job->cfg.out_format==HTML) fputs("
",stdout); + if (job->cfg.out_format!=XML) fputc('\n', stdout); + line = getTextLine(linecounter++); + } + free_textlines(); +} + +/* FIXME jb: remove JOB; */ +job_t *JOB; + + +/* ------------------------------------------------------------- +// ------ MAIN - replace this by your own aplication! +// ------------------------------------------------------------- */ + diff --git a/.svn/pristine/0c/0c17f50fce189512524e7c6180629b7128e3e453.svn-base b/.svn/pristine/0c/0c17f50fce189512524e7c6180629b7128e3e453.svn-base new file mode 100644 index 0000000..0404c88 --- /dev/null +++ b/.svn/pristine/0c/0c17f50fce189512524e7c6180629b7128e3e453.svn-base @@ -0,0 +1,79 @@ +// Copyright (C) 2007 by Crist贸bal Carnero Li帽谩n +// grendel.ccl@gmail.com +// +// This file is part of cvBlob. +// +// cvBlob is free software: you can redistribute it and/or modify +// it under the terms of the Lesser GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// cvBlob is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// Lesser GNU General Public License for more details. +// +// You should have received a copy of the Lesser GNU General Public License +// along with cvBlob. If not, see . +// + +#include + +#if (defined(_WIN32) || defined(__WIN32__) || defined(__TOS_WIN__) || defined(__WINDOWS__) || (defined(__APPLE__) & defined(__MACH__))) +#include +#else +#include +#endif + +#include "cvblob.h" + +namespace cvb +{ + + ////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // http://www.topcoder.com/tc?module=Static&d1=tutorials&d2=geometry1 + + double cvDotProductPoints(CvPoint const &a, CvPoint const &b, CvPoint const &c) + { + double abx = b.x-a.x; + double aby = b.y-a.y; + double bcx = c.x-b.x; + double bcy = c.y-b.y; + + return abx*bcx + aby*bcy; + } + + double cvCrossProductPoints(CvPoint const &a, CvPoint const &b, CvPoint const &c) + { + double abx = b.x-a.x; + double aby = b.y-a.y; + double acx = c.x-a.x; + double acy = c.y-a.y; + + return abx*acy - aby*acx; + } + + double cvDistancePointPoint(CvPoint const &a, CvPoint const &b) + { + double abx = a.x-b.x; + double aby = a.y-b.y; + + return sqrt(abx*abx + aby*aby); + } + + double cvDistanceLinePoint(CvPoint const &a, CvPoint const &b, CvPoint const &c, bool isSegment) + { + if (isSegment) + { + double dot1 = cvDotProductPoints(a, b, c); + if (dot1>0) return cvDistancePointPoint(b, c); + + double dot2 = cvDotProductPoints(b, a, c); + if(dot2>0) return cvDistancePointPoint(a, c); + } + + return fabs(cvCrossProductPoints(a,b,c)/cvDistancePointPoint(a,b)); + } + ////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +} diff --git a/.svn/pristine/0c/0c960252b2c98218dbf17dc535bf1f42f544ea3f.svn-base b/.svn/pristine/0c/0c960252b2c98218dbf17dc535bf1f42f544ea3f.svn-base new file mode 100644 index 0000000..88fc868 --- /dev/null +++ b/.svn/pristine/0c/0c960252b2c98218dbf17dc535bf1f42f544ea3f.svn-base @@ -0,0 +1,24 @@ + + +int glui_img_spindown_0[] = { 12, 8, /* width, height */ + 255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 255,255,255, 127,127,127, 127,127,127, + 127,127,127, 127,127,127, 127,127,127, 127,127,127, 127,127,127, + 127,127,127, 127,127,127, 127,127,127, 0, 0, 0, 255,255,255, + 191,191,191, 191,191,191, 191,191,191, 191,191,191, 191,191,191, + 191,191,191, 191,191,191, 191,191,191, 191,191,191, 127,127,127, + 0, 0, 0, 255,255,255, 191,191,191, 191,191,191, 191,191,191, + 191,191,191, 0, 0, 0, 127,127,127, 191,191,191, 191,191,191, + 191,191,191, 127,127,127, 0, 0, 0, 255,255,255, 191,191,191, + 191,191,191, 191,191,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 127,127,127, 191,191,191, 191,191,191, 127,127,127, 0, 0, 0, + 255,255,255, 191,191,191, 191,191,191, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 127,127,127, 191,191,191, + 127,127,127, 0, 0, 0, 255,255,255, 191,191,191, 191,191,191, + 191,191,191, 191,191,191, 191,191,191, 191,191,191, 191,191,191, + 191,191,191, 191,191,191, 127,127,127, 0, 0, 0, 255,255,255, + 255,255,255, 255,255,255, 255,255,255, 255,255,255, 255,255,255, + 255,255,255, 255,255,255, 255,255,255, 255,255,255, 255,255,255, + 0, 0, 0, +}; diff --git a/.svn/pristine/0c/0cad9f0e879a3cbd9c49c12c55dfc40ab2544fe2.svn-base b/.svn/pristine/0c/0cad9f0e879a3cbd9c49c12c55dfc40ab2544fe2.svn-base new file mode 100644 index 0000000..2c51c28 --- /dev/null +++ b/.svn/pristine/0c/0cad9f0e879a3cbd9c49c12c55dfc40ab2544fe2.svn-base @@ -0,0 +1,299 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 2.8 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canoncical targets will work. +.SUFFIXES: + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E remove -f + +# The program to use to edit the cache. +CMAKE_EDIT_COMMAND = /usr/bin/ccmake + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/dborrman/Jacobs/software/slam6d/trunk + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/dborrman/Jacobs/software/slam6d/trunk + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake cache editor..." + /usr/bin/ccmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# The main all target +all: cmake_check_build_system + cd /home/dborrman/Jacobs/software/slam6d/trunk && $(CMAKE_COMMAND) -E cmake_progress_start /home/dborrman/Jacobs/software/slam6d/trunk/CMakeFiles /home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/CMakeFiles/progress.marks + cd /home/dborrman/Jacobs/software/slam6d/trunk && $(MAKE) -f CMakeFiles/Makefile2 3rdparty/cvblob/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/dborrman/Jacobs/software/slam6d/trunk/CMakeFiles 0 +.PHONY : all + +# The main clean target +clean: + cd /home/dborrman/Jacobs/software/slam6d/trunk && $(MAKE) -f CMakeFiles/Makefile2 3rdparty/cvblob/clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + cd /home/dborrman/Jacobs/software/slam6d/trunk && $(MAKE) -f CMakeFiles/Makefile2 3rdparty/cvblob/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd /home/dborrman/Jacobs/software/slam6d/trunk && $(MAKE) -f CMakeFiles/Makefile2 3rdparty/cvblob/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd /home/dborrman/Jacobs/software/slam6d/trunk && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +# Convenience name for target. +3rdparty/cvblob/CMakeFiles/cvblob.dir/rule: + cd /home/dborrman/Jacobs/software/slam6d/trunk && $(MAKE) -f CMakeFiles/Makefile2 3rdparty/cvblob/CMakeFiles/cvblob.dir/rule +.PHONY : 3rdparty/cvblob/CMakeFiles/cvblob.dir/rule + +# Convenience name for target. +cvblob: 3rdparty/cvblob/CMakeFiles/cvblob.dir/rule +.PHONY : cvblob + +# fast build rule for target. +cvblob/fast: + cd /home/dborrman/Jacobs/software/slam6d/trunk && $(MAKE) -f 3rdparty/cvblob/CMakeFiles/cvblob.dir/build.make 3rdparty/cvblob/CMakeFiles/cvblob.dir/build +.PHONY : cvblob/fast + +cvaux.o: cvaux.cpp.o +.PHONY : cvaux.o + +# target to build an object file +cvaux.cpp.o: + cd /home/dborrman/Jacobs/software/slam6d/trunk && $(MAKE) -f 3rdparty/cvblob/CMakeFiles/cvblob.dir/build.make 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvaux.cpp.o +.PHONY : cvaux.cpp.o + +cvaux.i: cvaux.cpp.i +.PHONY : cvaux.i + +# target to preprocess a source file +cvaux.cpp.i: + cd /home/dborrman/Jacobs/software/slam6d/trunk && $(MAKE) -f 3rdparty/cvblob/CMakeFiles/cvblob.dir/build.make 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvaux.cpp.i +.PHONY : cvaux.cpp.i + +cvaux.s: cvaux.cpp.s +.PHONY : cvaux.s + +# target to generate assembly for a file +cvaux.cpp.s: + cd /home/dborrman/Jacobs/software/slam6d/trunk && $(MAKE) -f 3rdparty/cvblob/CMakeFiles/cvblob.dir/build.make 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvaux.cpp.s +.PHONY : cvaux.cpp.s + +cvblob.o: cvblob.cpp.o +.PHONY : cvblob.o + +# target to build an object file +cvblob.cpp.o: + cd /home/dborrman/Jacobs/software/slam6d/trunk && $(MAKE) -f 3rdparty/cvblob/CMakeFiles/cvblob.dir/build.make 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvblob.cpp.o +.PHONY : cvblob.cpp.o + +cvblob.i: cvblob.cpp.i +.PHONY : cvblob.i + +# target to preprocess a source file +cvblob.cpp.i: + cd /home/dborrman/Jacobs/software/slam6d/trunk && $(MAKE) -f 3rdparty/cvblob/CMakeFiles/cvblob.dir/build.make 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvblob.cpp.i +.PHONY : cvblob.cpp.i + +cvblob.s: cvblob.cpp.s +.PHONY : cvblob.s + +# target to generate assembly for a file +cvblob.cpp.s: + cd /home/dborrman/Jacobs/software/slam6d/trunk && $(MAKE) -f 3rdparty/cvblob/CMakeFiles/cvblob.dir/build.make 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvblob.cpp.s +.PHONY : cvblob.cpp.s + +cvcolor.o: cvcolor.cpp.o +.PHONY : cvcolor.o + +# target to build an object file +cvcolor.cpp.o: + cd /home/dborrman/Jacobs/software/slam6d/trunk && $(MAKE) -f 3rdparty/cvblob/CMakeFiles/cvblob.dir/build.make 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcolor.cpp.o +.PHONY : cvcolor.cpp.o + +cvcolor.i: cvcolor.cpp.i +.PHONY : cvcolor.i + +# target to preprocess a source file +cvcolor.cpp.i: + cd /home/dborrman/Jacobs/software/slam6d/trunk && $(MAKE) -f 3rdparty/cvblob/CMakeFiles/cvblob.dir/build.make 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcolor.cpp.i +.PHONY : cvcolor.cpp.i + +cvcolor.s: cvcolor.cpp.s +.PHONY : cvcolor.s + +# target to generate assembly for a file +cvcolor.cpp.s: + cd /home/dborrman/Jacobs/software/slam6d/trunk && $(MAKE) -f 3rdparty/cvblob/CMakeFiles/cvblob.dir/build.make 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcolor.cpp.s +.PHONY : cvcolor.cpp.s + +cvcontour.o: cvcontour.cpp.o +.PHONY : cvcontour.o + +# target to build an object file +cvcontour.cpp.o: + cd /home/dborrman/Jacobs/software/slam6d/trunk && $(MAKE) -f 3rdparty/cvblob/CMakeFiles/cvblob.dir/build.make 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcontour.cpp.o +.PHONY : cvcontour.cpp.o + +cvcontour.i: cvcontour.cpp.i +.PHONY : cvcontour.i + +# target to preprocess a source file +cvcontour.cpp.i: + cd /home/dborrman/Jacobs/software/slam6d/trunk && $(MAKE) -f 3rdparty/cvblob/CMakeFiles/cvblob.dir/build.make 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcontour.cpp.i +.PHONY : cvcontour.cpp.i + +cvcontour.s: cvcontour.cpp.s +.PHONY : cvcontour.s + +# target to generate assembly for a file +cvcontour.cpp.s: + cd /home/dborrman/Jacobs/software/slam6d/trunk && $(MAKE) -f 3rdparty/cvblob/CMakeFiles/cvblob.dir/build.make 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcontour.cpp.s +.PHONY : cvcontour.cpp.s + +cvlabel.o: cvlabel.cpp.o +.PHONY : cvlabel.o + +# target to build an object file +cvlabel.cpp.o: + cd /home/dborrman/Jacobs/software/slam6d/trunk && $(MAKE) -f 3rdparty/cvblob/CMakeFiles/cvblob.dir/build.make 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvlabel.cpp.o +.PHONY : cvlabel.cpp.o + +cvlabel.i: cvlabel.cpp.i +.PHONY : cvlabel.i + +# target to preprocess a source file +cvlabel.cpp.i: + cd /home/dborrman/Jacobs/software/slam6d/trunk && $(MAKE) -f 3rdparty/cvblob/CMakeFiles/cvblob.dir/build.make 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvlabel.cpp.i +.PHONY : cvlabel.cpp.i + +cvlabel.s: cvlabel.cpp.s +.PHONY : cvlabel.s + +# target to generate assembly for a file +cvlabel.cpp.s: + cd /home/dborrman/Jacobs/software/slam6d/trunk && $(MAKE) -f 3rdparty/cvblob/CMakeFiles/cvblob.dir/build.make 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvlabel.cpp.s +.PHONY : cvlabel.cpp.s + +cvtrack.o: cvtrack.cpp.o +.PHONY : cvtrack.o + +# target to build an object file +cvtrack.cpp.o: + cd /home/dborrman/Jacobs/software/slam6d/trunk && $(MAKE) -f 3rdparty/cvblob/CMakeFiles/cvblob.dir/build.make 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvtrack.cpp.o +.PHONY : cvtrack.cpp.o + +cvtrack.i: cvtrack.cpp.i +.PHONY : cvtrack.i + +# target to preprocess a source file +cvtrack.cpp.i: + cd /home/dborrman/Jacobs/software/slam6d/trunk && $(MAKE) -f 3rdparty/cvblob/CMakeFiles/cvblob.dir/build.make 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvtrack.cpp.i +.PHONY : cvtrack.cpp.i + +cvtrack.s: cvtrack.cpp.s +.PHONY : cvtrack.s + +# target to generate assembly for a file +cvtrack.cpp.s: + cd /home/dborrman/Jacobs/software/slam6d/trunk && $(MAKE) -f 3rdparty/cvblob/CMakeFiles/cvblob.dir/build.make 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvtrack.cpp.s +.PHONY : cvtrack.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... cvblob" + @echo "... edit_cache" + @echo "... rebuild_cache" + @echo "... cvaux.o" + @echo "... cvaux.i" + @echo "... cvaux.s" + @echo "... cvblob.o" + @echo "... cvblob.i" + @echo "... cvblob.s" + @echo "... cvcolor.o" + @echo "... cvcolor.i" + @echo "... cvcolor.s" + @echo "... cvcontour.o" + @echo "... cvcontour.i" + @echo "... cvcontour.s" + @echo "... cvlabel.o" + @echo "... cvlabel.i" + @echo "... cvlabel.s" + @echo "... cvtrack.o" + @echo "... cvtrack.i" + @echo "... cvtrack.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + cd /home/dborrman/Jacobs/software/slam6d/trunk && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/.svn/pristine/0d/0d530a2365de4964ab5864eb4ab04951ca99c66c.svn-base b/.svn/pristine/0d/0d530a2365de4964ab5864eb4ab04951ca99c66c.svn-base new file mode 100644 index 0000000..561308e --- /dev/null +++ b/.svn/pristine/0d/0d530a2365de4964ab5864eb4ab04951ca99c66c.svn-base @@ -0,0 +1,662 @@ +/**************************************************************************** + + GLUI User Interface Toolkit + --------------------------- + + glui_add_controls.cpp - Routines for adding controls to a GLUI window + + + -------------------------------------------------- + + Copyright (c) 1998 Paul Rademacher + + This program is freely distributable without licensing fees and is + provided without guarantee or warrantee expressed or implied. This + program is -not- in the public domain. + +*****************************************************************************/ + +#include "glui.h" +#include "stdinc.h" + + + +/*********************************** GLUI:: add_checkbox() ************/ + +GLUI_Checkbox *GLUI:: add_checkbox( char *name, int *value_ptr, + int id, GLUI_Update_CB callback ) +{ + return add_checkbox_to_panel( main_panel, + name, value_ptr, id, callback ); +} + + +/*********************************** GLUI:: add_checkbox_to_panel() **********/ + +GLUI_Checkbox *GLUI::add_checkbox_to_panel( GLUI_Panel *panel, + char *name, int *value_ptr, + int id, + GLUI_Update_CB callback ) +{ + GLUI_Checkbox *control; + + control = new GLUI_Checkbox; + + if ( control ) { + control->set_ptr_val( value_ptr ); + control->user_id = id; + control->set_name( name ); + control->callback = callback; + + add_control( panel, control ); + + control->init_live(); + + return control; + } + else { + return NULL; + } +} + + + +/************************************ GLUI_Main::add_control() **************/ + +int GLUI_Main::add_control( GLUI_Node *parent, GLUI_Control *control ) +{ + GLUI_Control *parent_control; + + /*** Collapsible nodes have to be handled differently, b/c the first and + last children are swapped in and out ***/ + parent_control = ((GLUI_Control*)parent); + if ( parent_control->collapsible == true ) { + if ( NOT parent_control->is_open ) { + /** Swap in the original first and last children **/ + parent_control->child_head = parent_control->collapsed_node.child_head; + parent_control->child_tail = parent_control->collapsed_node.child_tail; + + /*** Link this control ***/ + control->link_this_to_parent_last( parent ); + + /** Swap the children back out ***/ + parent_control->collapsed_node.child_head = parent_control->child_head; + parent_control->collapsed_node.child_tail = parent_control->child_tail; + parent_control->child_head = NULL; + parent_control->child_tail = NULL; + } + else { + control->link_this_to_parent_last( parent ); + } + } + else { + control->link_this_to_parent_last( parent ); + } + control->glui = (GLUI*) this; + control->update_size(); + control->enabled = ((GLUI_Control*) parent)->enabled; + control->glui->refresh(); + + /** Now set the 'hidden' var based on the parent **/ + if ( parent_control->hidden OR + (parent_control->collapsible AND NOT parent_control->is_open ) ) + { + control->hidden = true; + } + + return true; +} + + +/********************************************* GLUI::add_panel() *************/ + +GLUI_Panel *GLUI::add_panel( char *name, int type ) +{ + return add_panel_to_panel( main_panel, name, type ); +} + + +/**************************************** GLUI::add_panel_to_panel() *********/ + +GLUI_Panel *GLUI::add_panel_to_panel( GLUI_Panel *parent_panel, + char *name, int type ) +{ + GLUI_Panel *panel; + + panel = new GLUI_Panel; + + if ( panel ) { + panel->set_name( name ); + panel->user_id = -1; + panel->int_val = type; + + add_control( parent_panel, panel ); + + return panel; + } + else { + return NULL; + } +} + + +/***************************** GLUI::add_radiogroup() ***************/ + +GLUI_RadioGroup *GLUI::add_radiogroup( int *value_ptr, + int user_id, GLUI_Update_CB callback) +{ + return add_radiogroup_to_panel( main_panel, value_ptr, + user_id, callback ); +} + + +/***************************** GLUI::add_radiogroup_to_panel() ***************/ + +GLUI_RadioGroup *GLUI::add_radiogroup_to_panel( GLUI_Panel *panel, + int *value_ptr, + int user_id, GLUI_Update_CB callback) +{ + GLUI_RadioGroup *control; + GLUI_String buf; + + control = new GLUI_RadioGroup; + + if ( control ) { + control->set_ptr_val( value_ptr ); + if ( value_ptr ) { + control->int_val = *value_ptr; /** Can't call set_int_val(), b/c that + function will try to call the + callback, etc */ + /** Actually, maybe not **/ + control->last_live_int = *value_ptr; + } + + control->user_id = user_id; + sprintf( buf, "RadioGroup: %p", control ); + control->set_name( buf ); + control->callback = callback; + + add_control( panel, control ); + + control->init_live(); + + return control; + } + else { + return NULL; + } + +} + + +/***************************** GLUI::add_radiobutton_to_group() *************/ + +GLUI_RadioButton *GLUI::add_radiobutton_to_group( GLUI_RadioGroup *group, + char *name ) +{ + GLUI_RadioButton *control; + + if ( group->type != GLUI_CONTROL_RADIOGROUP ) { + /*fprintf( stderr, "ERROR: Trying to add radiobutton to non-radiogroup\n" ); */ + /*fflush( stderr ); */ + return NULL; + } + + control = new GLUI_RadioButton; + + if ( control ) { + control->set_int_val( 0 ); + /*int_val = 0; */ + + /** A radio button's user id is always its ordinal number (zero-indexed) + within the group */ + control->user_id = group->num_buttons; + group->num_buttons++; /* Increments radiogroup's button count */ + control->set_name( name ); + control->group = group; + + add_control( group, control ); + + /*** Now update button states ***/ + group->set_int_val( group->int_val ); /* This tells the group to + reset itself to its + current value, thereby + updating all its buttons */ + + return control; + } + else { + return NULL; + } + +} + + +/********************************** GLUI::add_statictext() ************/ + +GLUI_StaticText *GLUI::add_statictext( char *name ) +{ + return add_statictext_to_panel( main_panel, name ); +} + + +/******************************* GLUI::add_statictext_to_panel() **********/ + +GLUI_StaticText *GLUI:: +add_statictext_to_panel( GLUI_Panel *panel, char *name ) +{ + GLUI_StaticText *control; + + control = new GLUI_StaticText; + + if ( control ) { + control->set_name( name ); + add_control( panel, control ); + + return control; + } + else { + return NULL; + } + +} + + +/***************************************** GLUI:: add_button() ************/ + +GLUI_Button *GLUI:: add_button( char *name, + int id, GLUI_Update_CB callback ) +{ + return add_button_to_panel( main_panel, + name, id, callback ); +} + + +/*********************************** GLUI:: add_button_to_panel() **********/ + +GLUI_Button *GLUI::add_button_to_panel( GLUI_Panel *panel, + char *name, + int id, + GLUI_Update_CB callback ) +{ + GLUI_Button *control; + + control = new GLUI_Button; + + if ( control ) { + /* control->set_ptr_val( value_ptr ); + if ( value_ptr ) { + control->set_int_val( *value_ptr ); + }*/ + + control->user_id = id; + control->callback = callback; + control->set_name( name ); + + add_control( panel, control ); + + return control; + } + else { + return NULL; + } +} + + + +/********************************** GLUI::add_separator() ************/ + +void GLUI::add_separator( void ) +{ + add_separator_to_panel( main_panel ); +} + + +/******************************* GLUI::add_separator_to_panel() **********/ + +void GLUI::add_separator_to_panel( GLUI_Panel *panel ) +{ + GLUI_Separator *control = new GLUI_Separator; + + if ( control ) { + add_control( panel, control ); + } +} + + +/********************************** GLUI::add_edittext() ************/ + +GLUI_EditText *GLUI::add_edittext( char *name, + int data_type, void *data, + int id, GLUI_Update_CB callback) +{ + return add_edittext_to_panel( main_panel, name, data_type, data, + id, callback ); +} + + +/******************************* GLUI::add_edittext_to_panel() **********/ + +GLUI_EditText *GLUI:: +add_edittext_to_panel( GLUI_Panel *panel, char *name, + int data_type, void *data, + int id, GLUI_Update_CB callback) +{ + GLUI_EditText *control; + + control = new GLUI_EditText; + + if ( control ) { + control->set_name( name ); + + control->data_type = data_type; + control->ptr_val = data; + control->user_id = id; + control->callback = callback; + + if ( data_type == GLUI_EDITTEXT_TEXT ) { + control->live_type = GLUI_LIVE_TEXT; + } + else if ( data_type == GLUI_EDITTEXT_INT ) { + control->live_type = GLUI_LIVE_INT; + if ( data == NULL ) + control->set_int_val(control->int_val); /** Set to some default, in case of no live var **/ + } + else if ( data_type == GLUI_EDITTEXT_FLOAT ) { + control->live_type = GLUI_LIVE_FLOAT; + control->num_periods = 1; + if ( data == NULL ) + control->set_float_val(control->float_val); /** Set to some default, in case of no live var **/ + } + else { + return NULL; /* Did not pass in a valid data type */ + } + + add_control( panel, control ); + + control->init_live(); + + return control; + } + else { + return NULL; + } + +} + + +/********************************** GLUI::add_spinner() ************/ + +GLUI_Spinner *GLUI::add_spinner( char *name, + int data_type, void *data, + int id, GLUI_Update_CB callback) +{ + return add_spinner_to_panel( main_panel, name, data_type, data, + id, callback ); +} + + +/******************************* GLUI::add_spinner_to_panel() **********/ + +GLUI_Spinner *GLUI:: +add_spinner_to_panel( GLUI_Panel *panel, char *name, + int data_type, void *data, + int id, GLUI_Update_CB callback) +{ + GLUI_Spinner *control; + int text_type; + + control = new GLUI_Spinner; + + if ( NOT strcmp( name, "Spinner Test" )) + id=id; + + + if ( control ) { + if ( data_type == GLUI_SPINNER_INT ) { + text_type = GLUI_EDITTEXT_INT; + /* control->live_type = GLUI_LIVE_INT; */ + } + else if ( data_type == GLUI_SPINNER_FLOAT ) { + text_type = GLUI_EDITTEXT_FLOAT; + /* control->live_type = GLUI_LIVE_FLOAT; */ + } + else { + return NULL; /* Did not pass in a valid data type */ + } + + GLUI_EditText *edittext = + add_edittext_to_panel( (GLUI_Panel*) control, name, text_type, data, + id, callback ); + + if ( edittext ) { + control->set_name( name ); + control->edittext = edittext; /* Link the edittext to the spinner */ + /* control->ptr_val = data; */ + control->user_id = id; + control->data_type = data_type; + control->callback = callback; + + edittext->spinner = control; /* Link the spinner to the edittext */ + + add_control( panel, control ); + + return control; + } + else { + return NULL; + } + } + else { + return NULL; + } + +} + + +/********************************** GLUI::add_column() ************/ + +void GLUI::add_column( int draw_bar ) +{ + add_column_to_panel( main_panel, draw_bar ); +} + + +/******************************* GLUI::add_column_to_panel() **********/ + +void GLUI::add_column_to_panel( GLUI_Panel *panel, int draw_bar ) +{ + GLUI_Column *control = new GLUI_Column; + + if ( control ) { + control->int_val = draw_bar; /* Whether to draw vertical bar or not */ + + add_control( panel, control ); + } + else { + } +} + + +/*********************************** GLUI:: add_listbox() ************/ + +GLUI_Listbox *GLUI:: add_listbox( char *name, int *value_ptr, + int id, GLUI_Update_CB callback ) +{ + return add_listbox_to_panel( main_panel, + name, value_ptr, id, callback ); +} + + +/*********************************** GLUI:: add_listbox_to_panel() **********/ + +GLUI_Listbox *GLUI::add_listbox_to_panel( GLUI_Panel *panel, + char *name, int *value_ptr, + int id, + GLUI_Update_CB callback ) +{ + GLUI_Listbox *control; + + control = new GLUI_Listbox; + + if ( control ) { + control->set_ptr_val( value_ptr ); + control->user_id = id; + control->set_name( name ); + control->callback = callback; + + add_control( panel, control ); + + control->init_live(); + + return control; + } + else { + return NULL; + } +} + + +/*********************************** GLUI:: add_rotation() ************/ + +GLUI_Rotation *GLUI:: add_rotation( char *name, float *value_ptr, + int id, GLUI_Update_CB callback ) +{ + return add_rotation_to_panel( main_panel, + name, value_ptr, id, callback ); +} + + +/*********************************** GLUI:: add_rotation_to_panel() **********/ + +GLUI_Rotation *GLUI::add_rotation_to_panel( GLUI_Panel *panel, + char *name, float *value_ptr, + int id, + GLUI_Update_CB callback ) +{ + GLUI_Rotation *control; + + control = new GLUI_Rotation; + + if ( control ) { + control->set_ptr_val( value_ptr ); + control->user_id = id; + control->set_name( name ); + control->callback = callback; + add_control( panel, control ); + control->init_live(); + + /*** Init the live 4x4 matrix. This is different than the standard + live variable behavior, since the original value of the 4x4 matrix + is ignored and reset to Identity ***/ + if ( value_ptr != NULL ) { + int i, j, index; + for( i=0; i<4; i++ ) { + for( j=0; j<4; j++ ) { + index = i*4+j; + if ( i==j ) + value_ptr[index] = 1.0; + else + value_ptr[index] = 0.0; + } + } + } + + /*init_ball(); */ + + return control; + } + else { + return NULL; + } +} + + +/*********************************** GLUI:: add_translation() ************/ + +GLUI_Translation + *GLUI:: add_translation( char *name, int trans_type, + float *value_ptr, int id, GLUI_Update_CB callback ) +{ + return add_translation_to_panel( main_panel,name,trans_type, + value_ptr, id, callback ); +} + + +/*********************************** GLUI:: add_translation_to_panel() **********/ + +GLUI_Translation + *GLUI::add_translation_to_panel( + GLUI_Panel *panel, char *name, + int trans_type, float *value_ptr, + int id, GLUI_Update_CB callback ) +{ + GLUI_Translation *control; + + control = new GLUI_Translation; + + if ( control ) { + control->set_ptr_val( value_ptr ); + control->user_id = id; + control->set_name( name ); + control->callback = callback; + add_control( panel, control ); + control->init_live(); + + control->trans_type = trans_type; + + if ( trans_type == GLUI_TRANSLATION_XY ) { + control->float_array_size = 2; + } + else if ( trans_type == GLUI_TRANSLATION_X ) { + control->float_array_size = 1; + } + else if ( trans_type == GLUI_TRANSLATION_Y ) { + control->float_array_size = 1; + } + else if ( trans_type == GLUI_TRANSLATION_Z ) { + control->float_array_size = 1; + } + + return control; + } + else { + return NULL; + } +} + + +/********************************** GLUI::add_rollout() **************/ + +GLUI_Rollout *GLUI::add_rollout( char *name, int open ) +{ + return add_rollout_to_panel( main_panel, name, open ); +} + + +/****************************** GLUI::add_rollout_to_panel() *********/ + +GLUI_Rollout *GLUI::add_rollout_to_panel(GLUI_Panel *panel,char *name,int open) +{ + GLUI_Rollout *rollout; + + rollout = new GLUI_Rollout; + + if ( rollout ) { + rollout->set_name( name ); + rollout->user_id = -1; + rollout->int_val = GLUI_PANEL_EMBOSSED; + + if ( NOT open ) { + rollout->is_open = false; + rollout->h = GLUI_DEFAULT_CONTROL_HEIGHT + 7; + } + + add_control( panel, rollout ); + + return rollout; + } + else { + return NULL; + } +} diff --git a/.svn/pristine/0d/0d67f495efc539ececc0b75b64b3030bf2b56ebd.svn-base b/.svn/pristine/0d/0d67f495efc539ececc0b75b64b3030bf2b56ebd.svn-base new file mode 100644 index 0000000..6bae3d9 --- /dev/null +++ b/.svn/pristine/0d/0d67f495efc539ececc0b75b64b3030bf2b56ebd.svn-base @@ -0,0 +1,1002 @@ +/* + * slam6D implementation + * + * Copyright (C) Andreas Nuechter, Kai Lingemann, Jochen Sprickerhof + * + * Released under the GPL version 3. + * + */ + +/** + * @file + * @brief Main programm for matching 3D scans (6D SLAM) + * + * Main programm to match 3D scans with ICP and the globally + * consistent matching approach. + * Use -i from the command line to match with ICP, + * and -I to match 3D Scans using the global algorithm. + * + * @author Andreas Nuechter. Jacobs University Bremen gGmbH, Germany + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Jochen Sprickerhof. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "slam6d/scan.h" +#include "slam6d/metaScan.h" +#include "slam6d/io_utils.h" + +#include "slam6d/icp6Dapx.h" +#include "slam6d/icp6Dsvd.h" +#include "slam6d/icp6Dquat.h" +#include "slam6d/icp6Dortho.h" +#include "slam6d/icp6Dhelix.h" +#include "slam6d/icp6Ddual.h" +#include "slam6d/icp6Dlumeuler.h" +#include "slam6d/icp6Dlumquat.h" +#include "slam6d/icp6Dquatscale.h" +#include "slam6d/icp6D.h" +#ifdef WITH_CUDA +#include "slam6d/cuda/icp6Dcuda.h" +#endif +#include "slam6d/lum6Deuler.h" +#include "slam6d/lum6Dquat.h" +#include "slam6d/ghelix6DQ2.h" +#include "slam6d/graphToro.h" +#include "slam6d/graphHOG-Man.h" +#include "slam6d/elch6Deuler.h" +#include "slam6d/elch6Dquat.h" +#include "slam6d/elch6DunitQuat.h" +#include "slam6d/elch6Dslerp.h" +#include "slam6d/loopToro.h" +#include "slam6d/loopHOG-Man.h" +#include "slam6d/graphSlam6D.h" +#include "slam6d/gapx6D.h" +#include "slam6d/graph.h" +#include "slam6d/globals.icc" + +#ifndef _MSC_VER +#include +#else +#include "XGetopt.h" +#endif + +#include + +#ifdef _MSC_VER +#define strcasecmp _stricmp +#define strncasecmp _strnicmp +#else +#include +#endif + +#ifdef WITH_METRICS +#include "slam6d/metrics.h" +#endif //WITH_METRICS + + +#ifdef _MSC_VER +#if !defined _OPENMP && defined OPENMP +#define _OPENMP +#endif +#endif + +#ifdef _OPENMP +#include +#endif + +#define WANT_STREAM ///< define the WANT stream :) + +#include +using std::string; +#include +using std::cout; +using std::cerr; +using std::endl; +#include +using std::ifstream; + + +// Handling Segmentation faults and CTRL-C +void sigSEGVhandler (int v) +{ + static bool segfault = false; + if(!segfault) { + segfault = true; + cout << endl + << "# **************************** #" << endl + << " Segmentation fault or Ctrl-C" << endl + << "# **************************** #" << endl + << endl; + + // save frames and close scans + for(ScanVector::iterator it = Scan::allScans.begin(); it != Scan::allScans.end(); ++it) { + (*it)->saveFrames(); + } + cout << "Frames saved." << endl; + Scan::closeDirectory(); + } + exit(-1); +} + + +/** + * Explains the usage of this program's command line parameters + */ +void usage(char* prog) +{ +#ifndef _MSC_VER + const string bold("\033[1m"); + const string normal("\033[m"); +#else + const string bold(""); + const string normal(""); +#endif + cout << endl + << bold << "USAGE " << normal << endl + << " " << prog << " [options] directory" << endl << endl; + cout << bold << "OPTIONS" << normal << endl + + << bold << " -a" << normal << " NR, " << bold << "--algo=" << normal << "NR [default: 1]" << endl + << " selects the minimizazion method for the ICP matching algorithm" << endl + << " 1 = unit quaternion based method by Horn" << endl + << " 2 = singular value decomposition by Arun et al. " << endl + << " 3 = orthonormal matrices by Horn et al." << endl + << " 4 = dual quaternion method by Walker et al." << endl + << " 5 = helix approximation by Hofer & Potmann" << endl + << " 6 = small angle approximation" << endl + << " 7 = Lu & Milios style, i.e., uncertainty based, with Euler angles" << endl + << " 8 = Lu & Milios style, i.e., uncertainty based, with Quaternion" << endl + << " 9 = unit quaternion with scale method by Horn" << endl + << endl + << bold << " -A" << normal << " NR, " << bold << "--anim=" << normal << "NR [default: first and last frame only]" << endl + << " if specified, use only every NR-th frame for animation" << endl + << endl + << bold << " -c" << normal << " NR, " << bold << "--cldist=" << normal << "NR [default: 500]" << endl + << " specifies the maximal distance for closed loops" << endl + << endl + << bold << " -C" << normal << " NR, " << bold << "--clpairs=" << normal << "NR [default: 6]" << endl + << " specifies the minimal number of points for an overlap. If not specified" << endl + << " cldist is used instead" << endl + << endl + << bold << " --cache" << normal << endl + << " turns on cached k-d tree search" << endl + << endl + << bold << " -d" << normal << " NR, " << bold << "--dist=" << normal << "NR [default: 25]" << endl + << " sets the maximal point-to-point distance for matching with ICP to 'units'" << endl + << " (unit of scan data, e.g. cm)" << endl + << endl + << bold << " -D" << normal << " NR, " << bold << "--distSLAM=" + << normal << "NR [default: same value as -d option]" << endl + << " sets the maximal point-to-point distance for matching with SLAM to 'units'" << endl + << " (unit of scan data, e.g. cm)" << endl + << endl + << bold << " --DlastSLAM" << normal << " NR [default not set]" << endl + << " sets the maximal point-to-point distance for the final SLAM correction," << endl + << " if final SLAM is not required don't set it." << endl + << endl + << bold << " -e" << normal << " NR, " << bold << "--end=" << normal << "NR" << endl + << " end after scan NR" << endl + << endl + << bold << " --exportAllPoints" << normal << endl + << " writes all registered reduced points to the file points.pts before" << endl + << " slam6D terminated" << endl + << endl + << bold << " --epsICP=" << normal << "NR [default: 0.00001]" << endl + << " stop ICP iteration if difference is smaller than NR" << endl + << endl + << bold << " --epsSLAM=" << normal << " NR [default: 0.5]" << endl + << " stop SLAM iteration if average difference is smaller than NR" << endl + << endl + << bold << " -f" << normal << " F, " << bold << "--format=" << normal << "F" << endl + << " using shared library F for input" << endl + << " (chose F from {uos, uos_map, uos_rgb, uos_frames, uos_map_frames, old, rts, rts_map, ifp, riegl_txt, riegl_rgb, riegl_bin, zahn, ply, wrl, xyz, zuf, iais, front, x3d, rxp, ais })" << endl + << endl + << bold << " -G" << normal << " NR, " << bold << "--graphSlam6DAlgo=" << normal << "NR [default: 0]" << endl + << " selects the minimizazion method for the SLAM matching algorithm" << endl + << " 0 = no global relaxation technique" << endl + << " 1 = Lu & Milios extension using euler angles due to Borrmann et al." << endl + << " 2 = Lu & Milios extension using using unit quaternions" << endl + << " 3 = HELIX approximation by Hofer and Pottmann" << endl + << " 4 = small angle approximation" << endl + << " 5 = TORO" << endl + << " 6 = HOG-Man" << endl + << endl + << bold << " -i" << normal << " NR, " << bold << "--iter=" << normal << "NR [default: 50]" << endl + << " sets the maximal number of ICP iterations to " << endl + << endl + << bold << " -I" << normal << " NR, " << bold << "--iterSLAM=" << normal << "NR [default: 0]" << endl + << " sets the maximal number of iterations for SLAM to " << endl + << " (if not set, graphSLAM is not executed)" << endl + << endl + << bold << " -l" << normal << " NR, " << bold << "--loopsize=" << normal << "NR [default: 20]" << endl + << " sets the size of a loop, i.e., a loop must exceed of scans" << endl + << endl + << bold << " -L" << normal << " NR, " << bold << "--loop6DAlgo=" << normal << "NR [default: 0]" << endl + << " selects the method for closing the loop explicitly" << endl + << " 0 = no loop closing technique" << endl + << " 1 = euler angles" << endl + << " 2 = quaternions " << endl + << " 3 = unit quaternions" << endl + << " 4 = SLERP (recommended)" << endl + << " 5 = TORO" << endl + << " 6 = HOG-Man" << endl + << endl + << bold << " --metascan" << normal << endl + << " Match current scan against a meta scan of all previous scans (default match against the last scan only)" << endl + << endl + << bold << " -m" << normal << " NR, " << bold << "--max=" << normal << "NR" << endl + << " neglegt all data points with a distance larger than NR 'units'" << endl + << endl + << bold << " -M" << normal << " NR, " << bold << "--min=" << normal << "NR" << endl + << " neglegt all data points with a distance smaller than NR 'units'" << endl + << endl + << bold << " -n" << normal << " FILE, " << bold << "--net=" << normal << "FILE" << endl + << " specifies the file that includes the net structure for SLAM" << endl + << endl + << bold << " -O" << normal << "NR (optional), " << bold << "--octree=" << normal << "NR (optional)" << endl + << " use randomized octree based point reduction (pts per voxel=)" << endl + << " requires " << bold << "-r" << normal <<" or " << bold << "--reduce" << endl + << endl + << bold << " -p, --trustpose" << normal << endl + << " Trust the pose file, do not extrapolate the last transformation." << endl + << " (just for testing purposes, or gps input.)" << endl + << endl + << bold << " -q, --quiet" << normal << endl + << " Quiet mode. Suppress (most) messages" << endl + << endl + << bold << " -Q, --veryquiet" << normal << endl + << " Very quiet mode. Suppress all messages, except in case of error." << endl + << endl + << bold << " -S, --scanserver" << normal << endl + << " Use the scanserver as an input method and handling of scan data" << endl + << endl + << bold << " -r" << normal << " NR, " << bold << "--reduce=" << normal << "NR" << endl + << " turns on octree based point reduction (voxel size=)" << endl + << endl + << bold << " -R" << normal << " NR, " << bold << "--random=" << normal << "NR" << endl + << " turns on randomized reduction, using about every -th point only" << endl + << endl + << bold << " -s" << normal << " NR, " << bold << "--start=" << normal << "NR" << endl + << " start at scan NR (i.e., neglects the first NR scans)" << endl + << " [ATTENTION: counting naturally starts with 0]" << endl + << endl + << bold << " -t" << normal << " NR, " << bold << "--nns_method=" << normal << "NR [default: 1]" << endl + << " selects the Nearest Neighbor Search Algorithm" << endl + << " 0 = simple k-d tree " << endl + << " 1 = cached k-d tree " << endl + << " 2 = ANNTree " << endl + << " 3 = BOCTree " << endl + << endl + << bold << " -u" << normal <<", "<< bold<<"--cuda" << normal << endl + << " this option activates icp running on GPU instead of CPU"<exact) + * @param meta match against all scans (= meta scan), or against the last scan only??? + * @param anim selects the rotation representation for the matching algorithm + * @param mni_lum sets the maximal number of iterations for SLAM + * @param net specifies the file that includes the net structure for SLAM + * @param cldist specifies the maximal distance for closed loops + * @param epsilonICP stop ICP iteration if difference is smaller than this value + * @param epsilonSLAM stop SLAM iteration if average difference is smaller than this value + * @param algo specfies the used algorithm for rotation computation + * @param lum6DAlgo specifies the used algorithm for global SLAM correction + * @param loopsize defines the minimal loop size + * @return 0, if the parsing was successful. 1 otherwise + */ +int parseArgs(int argc, char **argv, string &dir, double &red, int &rand, + double &mdm, double &mdml, double &mdmll, + int &mni, int &start, int &end, int &maxDist, int &minDist, bool &quiet, bool &veryQuiet, + bool &extrapolate_pose, bool &meta, int &algo, int &loopSlam6DAlgo, int &lum6DAlgo, int &anim, + int &mni_lum, string &net, double &cldist, int &clpairs, int &loopsize, + double &epsilonICP, double &epsilonSLAM, int &nns_method, bool &exportPts, double &distLoop, + int &iterLoop, double &graphDist, int &octree, bool &cuda_enabled, IOType &type, + bool& scanserver) +{ + int c; + // from unistd.h: + extern char *optarg; + extern int optind; + + WriteOnce w_type(type); + WriteOnce w_start(start), w_end(end); + + /* options descriptor */ + // 0: no arguments, 1: required argument, 2: optional argument + static struct option longopts[] = { + { "format", required_argument, 0, 'f' }, + { "algo", required_argument, 0, 'a' }, + { "nns_method", required_argument, 0, 't' }, + { "loop6DAlgo", required_argument, 0, 'L' }, + { "graphSlam6DAlgo", required_argument, 0, 'G' }, + { "net", required_argument, 0, 'n' }, + { "iter", required_argument, 0, 'i' }, + { "iterSLAM", required_argument, 0, 'I' }, + { "max", required_argument, 0, 'm' }, + { "loopsize", required_argument, 0, 'l' }, + { "cldist", required_argument, 0, 'c' }, + { "clpairs", required_argument, 0, 'C' }, + { "min", required_argument, 0, 'M' }, + { "dist", required_argument, 0, 'd' }, + { "distSLAM", required_argument, 0, 'D' }, + { "start", required_argument, 0, 's' }, + { "end", required_argument, 0, 'e' }, + { "reduce", required_argument, 0, 'r' }, + { "octree", optional_argument, 0, 'O' }, + { "random", required_argument, 0, 'R' }, + { "quiet", no_argument, 0, 'q' }, + { "veryquiet", no_argument, 0, 'Q' }, + { "trustpose", no_argument, 0, 'p' }, + { "anim", required_argument, 0, 'A' }, + { "metascan", no_argument, 0, '2' }, // use the long format only + { "DlastSLAM", required_argument, 0, '4' }, // use the long format only + { "epsICP", required_argument, 0, '5' }, // use the long format only + { "epsSLAM", required_argument, 0, '6' }, // use the long format only + { "exportAllPoints", no_argument, 0, '8' }, + { "distLoop", required_argument, 0, '9' }, // use the long format only + { "iterLoop", required_argument, 0, '1' }, // use the long format only + { "graphDist", required_argument, 0, '3' }, // use the long format only + { "cuda", no_argument, 0, 'u' }, // cuda will be enabled + { "scanserver", no_argument, 0, 'S' }, + { 0, 0, 0, 0} // needed, cf. getopt.h + }; + + cout << endl; + while ((c = getopt_long(argc, argv, "O:f:A:G:L:a:t:r:R:d:D:i:l:I:c:C:n:s:e:m:M:uqQpS", longopts, NULL)) != -1) { + switch (c) { + case 'a': + algo = atoi(optarg); + if ((algo < 0) || (algo > 9)) { + cerr << "Error: ICP Algorithm not available." << endl; + exit(1); + } + break; + case 't': + nns_method = atoi(optarg); + if ((nns_method < 0) || (nns_method > 3)) { + cerr << "Error: NNS Method not available." << endl; + exit(1); + } + break; + case 'L': + loopSlam6DAlgo = atoi(optarg); + if (loopSlam6DAlgo < 0 || loopSlam6DAlgo > 6) { + cerr << "Error: global loop closing algorithm not available." << endl; + exit(1); + } + break; + case 'G': + lum6DAlgo = atoi(optarg); + if ((lum6DAlgo < 0) || (lum6DAlgo > 6)) { + cerr << "Error: global relaxation algorithm not available." << endl; + exit(1); + } + break; + case 'c': + cldist = atof(optarg); + break; + case 'C': + clpairs = atoi(optarg); + break; + case 'l': + loopsize = atoi(optarg); + break; + case 'r': + red = atof(optarg); + break; + case 'O': + if (optarg) { + octree = atoi(optarg); + } else { + octree = 1; + } + break; + case 'R': + rand = atoi(optarg); + break; + case 'd': + mdm = atof(optarg); + break; + case 'D': + mdml = atof(optarg); + break; + case 'i': + mni = atoi(optarg); + break; + case 'I': + mni_lum = atoi(optarg); + break; + case 'n': + net = optarg; + break; + case 's': + w_start = atoi(optarg); + if (start < 0) { cerr << "Error: Cannot start at a negative scan number.\n"; exit(1); } + break; + case 'e': + w_end = atoi(optarg); + if (end < 0) { cerr << "Error: Cannot end at a negative scan number.\n"; exit(1); } + if (end < start) { cerr << "Error: cannot be smaller than .\n"; exit(1); } + break; + case 'm': + maxDist = atoi(optarg); + break; + case 'M': + minDist = atoi(optarg); + break; + case 'q': + quiet = true; + break; + case 'Q': + quiet = veryQuiet = true; + break; + case 'p': + extrapolate_pose = false; + break; + case 'A': + anim = atoi(optarg); + break; + case '2': // = --metascan + meta = true; + break; + case '4': // = --DlastSLAM + mdmll = atof(optarg); + break; + case '5': // = --epsICP + epsilonICP = atof(optarg); + break; + case '6': // = --epsSLAM + epsilonSLAM = atof(optarg); + break; + case '8': // not used + exportPts = true; + break; + case '9': // = --distLoop + distLoop = atof(optarg); + break; + case '1': // = --iterLoop + iterLoop = atoi(optarg); + break; + case '3': // = --graphDist + graphDist = atof(optarg); + break; + case 'f': + try { + w_type = formatname_to_io_type(optarg); + } catch (...) { // runtime_error + cerr << "Format " << optarg << " unknown." << endl; + abort(); + } + break; + case 'u': + cuda_enabled = true; + break; + case 'S': + scanserver = true; + break; + case '?': + usage(argv[0]); + return 1; + default: + abort (); + } + } + + if (optind != argc-1) { + cerr << "\n*** Directory missing ***" << endl; + usage(argv[0]); + } + dir = argv[optind]; + +#ifndef _MSC_VER + if (dir[dir.length()-1] != '/') dir = dir + "/"; +#else + if (dir[dir.length()-1] != '\\') dir = dir + "\\"; +#endif + + parseFormatFile(dir, w_type, w_start, w_end); + + return 0; +} + +/** + * This function is does all the matching stuff + * it iterates over all scans using the algorithm objects to calculate new poses + * objects could be NULL if algorithm should not be used + * + * @param cldist maximal distance for closing loops + * @param loopsize minimal loop size + * @param allScans Contains all laser scans + * @param my_icp6D the ICP implementation + * @param meta_icp math ICP against a metascan + * @param nns_method Indicates the nearest neigbor search method to be used + * @param my_loopSlam6D used loopoptimizer + * @param my_graphSlam6D used global optimization + * @param nrIt The number of iterations the global SLAM-algorithm will run + * @param epsilonSLAM epsilon for global SLAM iteration + * @param mdml maximal distance match for global SLAM + * @param mdmll maximal distance match for global SLAM after all scans ar matched + */ +void matchGraph6Dautomatic(double cldist, int loopsize, vector allScans, icp6D *my_icp6D, + bool meta_icp, int nns_method, bool cuda_enabled, + loopSlam6D *my_loopSlam6D, graphSlam6D *my_graphSlam6D, int nrIt, + double epsilonSLAM, double mdml, double mdmll, double graphDist, + bool &eP, IOType type) +{ + double cldist2 = sqr(cldist); + + // list of scan for metascan + vector < Scan* > metas; + + // graph for loop optimization + graph_t g; + + int n = allScans.size(); + + int loop_detection = 0; + double dist, min_dist = -1; + int first = 0, last = 0; + + for(int i = 1; i < n; i++) { + cout << i << "/" << n << endl; + + add_edge(i-1, i, g); + + if(eP) { + allScans[i]->mergeCoordinatesWithRoboterPosition(allScans[i-1]); + } + + //Hack to get all icp transformations into the .frames Files + if(i == n-1 && my_icp6D != NULL && my_icp6D->get_anim() == -2) { + my_icp6D->set_anim(-1); + } + + /*if(i == 85 || i == 321 || i == 533) { + my_icp6D->set_anim(1); + }*/ + + if(my_icp6D != NULL){ + cout << "ICP" << endl; + // Matching strongly linked scans with ICPs + if(meta_icp) { + metas.push_back(allScans[i - 1]); + MetaScan* meta_scan = new MetaScan(metas); + my_icp6D->match(meta_scan, allScans[i]); + delete meta_scan; + } else { + switch(type) { + case UOS_MAP: + case UOS_MAP_FRAMES: + my_icp6D->match(allScans[0], allScans[i]); + break; + case RTS_MAP: + //untested (and could not work) + //if(i < 220-22 && i > 250-22) match(allScans[0], CurrentScan); + my_icp6D->match(allScans[0], allScans[i]); + break; + default: + my_icp6D->match(allScans[i - 1], allScans[i]); + break; + } + } + } else { + double id[16]; + M4identity(id); + allScans[i]->transform(id, Scan::ICP, 0); + } + + /*if(i == 85 || i == 321 || i == 533) { + my_icp6D->set_anim(-2); + }*/ + + if(loop_detection == 1) { + loop_detection = 2; + } + + for(int j = 0; j < i - loopsize; j++) { + dist = Dist2(allScans[j]->get_rPos(), allScans[i]->get_rPos()); + if(dist < cldist2) { + loop_detection = 1; + if(min_dist < 0 || dist < min_dist) { + min_dist = dist; + first = j; + last = i; + } + } + } + + if(loop_detection == 2) { + loop_detection = 0; + min_dist = -1; + + if(my_loopSlam6D != NULL) { + cout << "Loop close: " << first << " " << last << endl; + my_loopSlam6D->close_loop(allScans, first, last, g); + add_edge(first, last, g); + } + + if(my_graphSlam6D != NULL && mdml > 0) { + int j = 0; + double ret; + do { + // recalculate graph + Graph *gr = new Graph(i + 1, cldist2, loopsize); + cout << "Global: " << j << endl; + ret = my_graphSlam6D->doGraphSlam6D(*gr, allScans, 1); + delete gr; + j++; + } while (j < nrIt && ret > epsilonSLAM); + } + } + } + + if(loop_detection == 1 && my_loopSlam6D != NULL) { + cout << "Loop close: " << first << " " << last << endl; + my_loopSlam6D->close_loop(allScans, first, last, g); + add_edge(first, last, g); + } + + if(my_graphSlam6D != NULL && mdml > 0.0) { + int j = 0; + double ret; + do { + // recalculate graph + Graph *gr = new Graph(n, cldist2, loopsize); + cout << "Global: " << j << endl; + ret = my_graphSlam6D->doGraphSlam6D(*gr, allScans, 1); + delete gr; + j++; + } while (j < nrIt && ret > epsilonSLAM); + } + + if(my_graphSlam6D != NULL && mdmll > 0.0) { + my_graphSlam6D->set_mdmll(mdmll); + int j = 0; + double ret; + do { + // recalculate graph + Graph *gr = new Graph(n, sqr(graphDist), loopsize); + cout << "Global: " << j << endl; + ret = my_graphSlam6D->doGraphSlam6D(*gr, allScans, 1); + delete gr; + j++; + } while (j < nrIt && ret > epsilonSLAM); + } +} + +/** + * Main program for 6D SLAM. + * Usage: bin/slam6D 'dir', + * with 'dir' the directory of a set of scans + * ... + */ +int main(int argc, char **argv) +{ + signal (SIGSEGV, sigSEGVhandler); + signal (SIGINT, sigSEGVhandler); + + cout << "slam6D - A highly efficient SLAM implementation based on scan matching" << endl + << " with 6 degrees of freedom" << endl + << "(c) Jacobs University Bremen gGmbH, Germany, since 2009" << endl + << " University of Osnabrueck, Germany, 2006 - 2009" << endl << endl; + + if (argc <= 1) { + usage(argv[0]); + } + + // parsing the command line parameters + // init, default values if not specified + string dir; + double red = -1.0, mdmll = -1.0, mdml = 25.0, mdm = 25.0; + int rand = -1, mni = 50; + int start = 0, end = -1; + bool quiet = false; + bool veryQuiet = false; + int maxDist = -1; + int minDist = -1; + bool eP = true; // should we extrapolate the pose?? + bool meta = false; // match against meta scan, or against LAST scan only? + int algo = 1; + int mni_lum = -1; + double cldist = 500; + int clpairs = -1; + int loopsize = 20; + string net = "none"; + int anim = -1; + double epsilonICP = 0.00001; + double epsilonSLAM = 0.5; + int nns_method = simpleKD; + bool exportPts = false; + int loopSlam6DAlgo = 0; + int lum6DAlgo = 0; + double distLoop = 700.0; + int iterLoop = 100; + double graphDist = cldist; + int octree = 0; // employ randomized octree reduction? + bool cuda_enabled = false; + IOType type = UOS; + bool scanserver = false; + + parseArgs(argc, argv, dir, red, rand, mdm, mdml, mdmll, mni, start, end, + maxDist, minDist, quiet, veryQuiet, eP, meta, algo, loopSlam6DAlgo, lum6DAlgo, anim, + mni_lum, net, cldist, clpairs, loopsize, epsilonICP, epsilonSLAM, + nns_method, exportPts, distLoop, iterLoop, graphDist, octree, cuda_enabled, type, + scanserver); + + cout << "slam6D will proceed with the following parameters:" << endl; + //@@@ to do :-) + // TODO: writer a proper TODO ^ + + Scan::openDirectory(scanserver, dir, type, start, end); + + if(Scan::allScans.size() == 0) { + cerr << "No scans found. Did you use the correct format?" << endl; + exit(-1); + } + + for(ScanVector::iterator it = Scan::allScans.begin(); it != Scan::allScans.end(); ++it) { + Scan* scan = *it; + scan->setRangeFilter(maxDist, minDist); + scan->setReductionParameter(red, octree); + scan->setSearchTreeParameter(nns_method, cuda_enabled); + } + + icp6Dminimizer *my_icp6Dminimizer = 0; + switch (algo) { + case 1 : + my_icp6Dminimizer = new icp6D_QUAT(quiet); + break; + case 2 : + my_icp6Dminimizer = new icp6D_SVD(quiet); + break; + case 3 : + my_icp6Dminimizer = new icp6D_ORTHO(quiet); + break; + case 4 : + my_icp6Dminimizer = new icp6D_DUAL(quiet); + break; + case 5 : + my_icp6Dminimizer = new icp6D_HELIX(quiet); + break; + case 6 : + my_icp6Dminimizer = new icp6D_APX(quiet); + break; + case 7 : + my_icp6Dminimizer = new icp6D_LUMEULER(quiet); + break; + case 8 : + my_icp6Dminimizer = new icp6D_LUMQUAT(quiet); + break; + case 9 : + my_icp6Dminimizer = new icp6D_QUAT_SCALE(quiet); + break; + } + + // match the scans and print the time used + long starttime = GetCurrentTimeInMilliSec(); + +#ifdef WITH_METRICS + Timer t = ClientMetric::matching_time.start(); +#endif //WITH_METRICS + + if (mni_lum == -1 && loopSlam6DAlgo == 0) { + icp6D *my_icp = 0; + if (cuda_enabled) { +#ifdef WITH_CUDA + my_icp = new icp6Dcuda(my_icp6Dminimizer, mdm, mni, quiet, meta, rand, eP, + anim, epsilonICP, nns_method, cuda_enabled); +#else + cout << "slam6d was not compiled for excuting CUDA code" << endl; +#endif + } else { + my_icp = new icp6D(my_icp6Dminimizer, mdm, mni, quiet, meta, rand, eP, + anim, epsilonICP, nns_method, cuda_enabled); + } + + // check if CAD matching was selected as type + if (type == UOS_CAD) + { + my_icp->set_cad_matching (true); + } + + if (my_icp) my_icp->doICP(Scan::allScans); + delete my_icp; + } else if (clpairs > -1) { + //!!!!!!!!!!!!!!!!!!!!!!!! + icp6D *my_icp = 0; + if (cuda_enabled) { +#ifdef WITH_CUDA + my_icp = new icp6Dcuda(my_icp6Dminimizer, mdm, mni, quiet, meta, rand, eP, + anim, epsilonICP, nns_method, cuda_enabled); +#else + cout << "slam6d was not compiled for excuting CUDA code" << endl; +#endif + } else { + my_icp = new icp6D(my_icp6Dminimizer, mdm, mni, quiet, meta, rand, eP, + anim, epsilonICP, nns_method, cuda_enabled); + } + my_icp->doICP(Scan::allScans); + graphSlam6D *my_graphSlam6D = new lum6DEuler(my_icp6Dminimizer, mdm, mdml, mni, quiet, meta, + rand, eP, anim, epsilonICP, nns_method, epsilonSLAM); + my_graphSlam6D->matchGraph6Dautomatic(Scan::allScans, mni_lum, clpairs, loopsize); + //!!!!!!!!!!!!!!!!!!!!!!!! + } else { + graphSlam6D *my_graphSlam6D = 0; + switch (lum6DAlgo) { + case 1 : + my_graphSlam6D = new lum6DEuler(my_icp6Dminimizer, mdm, mdml, mni, quiet, meta, rand, eP, + anim, epsilonICP, nns_method, epsilonSLAM); + break; + case 2 : + my_graphSlam6D = new lum6DQuat(my_icp6Dminimizer, mdm, mdml, mni, quiet, meta, rand, eP, + anim, epsilonICP, nns_method, epsilonSLAM); + break; + case 3 : + my_graphSlam6D = new ghelix6DQ2(my_icp6Dminimizer, mdm, mdml, mni, quiet, meta, rand, eP, + anim, epsilonICP, nns_method, epsilonSLAM); + break; + case 4 : + my_graphSlam6D = new gapx6D(my_icp6Dminimizer, mdm, mdml, mni, quiet, meta, rand, eP, + anim, epsilonICP, nns_method, epsilonSLAM); + break; + case 5 : + my_graphSlam6D = new graphToro(my_icp6Dminimizer, mdm, mdml, mni, quiet, meta, rand, eP, + -2, epsilonICP, nns_method, epsilonSLAM); + break; + case 6 : + my_graphSlam6D = new graphHOGMan(my_icp6Dminimizer, mdm, mdml, mni, quiet, meta, rand, eP, + -2, epsilonICP, nns_method, epsilonSLAM); + break; + } + // Construct Network + if (net != "none") { + icp6D *my_icp = 0; + if (cuda_enabled) { +#ifdef WITH_CUDA + my_icp = new icp6Dcuda(my_icp6Dminimizer, mdm, mni, quiet, meta, rand, eP, + anim, epsilonICP, nns_method); +#else + cout << "slam6d was not compiled for excuting CUDA code" << endl; +#endif + } else { + my_icp = new icp6D(my_icp6Dminimizer, mdm, mni, quiet, meta, rand, eP, + anim, epsilonICP, nns_method); + } + my_icp->doICP(Scan::allScans); + + Graph* structure; + structure = new Graph(net); + my_graphSlam6D->doGraphSlam6D(*structure, Scan::allScans, mni_lum); + if(mdmll > 0.0) { + my_graphSlam6D->set_mdmll(mdmll); + my_graphSlam6D->doGraphSlam6D(*structure, Scan::allScans, mni_lum); + } + + } else { + icp6D *my_icp = 0; + if(algo > 0) { + if (cuda_enabled) { +#ifdef WITH_CUDA + my_icp = new icp6Dcuda(my_icp6Dminimizer, mdm, mni, quiet, meta, rand, eP, + anim, epsilonICP, nns_method); +#else + cout << "slam6d was not compiled for excuting CUDA code" << endl; +#endif + } else { + my_icp = new icp6D(my_icp6Dminimizer, mdm, mni, quiet, meta, rand, eP, + anim, epsilonICP, nns_method); + } + + loopSlam6D *my_loopSlam6D = 0; + switch(loopSlam6DAlgo) { + case 1: + my_loopSlam6D = new elch6Deuler(veryQuiet, my_icp6Dminimizer, distLoop, iterLoop, + rand, eP, 10, epsilonICP, nns_method); + break; + case 2: + my_loopSlam6D = new elch6Dquat(veryQuiet, my_icp6Dminimizer, distLoop, iterLoop, + rand, eP, 10, epsilonICP, nns_method); + break; + case 3: + my_loopSlam6D = new elch6DunitQuat(veryQuiet, my_icp6Dminimizer, distLoop, iterLoop, + rand, eP, 10, epsilonICP, nns_method); + break; + case 4: + my_loopSlam6D = new elch6Dslerp(veryQuiet, my_icp6Dminimizer, distLoop, iterLoop, + rand, eP, 10, epsilonICP, nns_method); + break; + case 5: + my_loopSlam6D = new loopToro(veryQuiet, my_icp6Dminimizer, distLoop, iterLoop, + rand, eP, 10, epsilonICP, nns_method); + break; + case 6: + my_loopSlam6D = new loopHOGMan(veryQuiet, my_icp6Dminimizer, distLoop, iterLoop, + rand, eP, 10, epsilonICP, nns_method); + break; + } + + matchGraph6Dautomatic(cldist, loopsize, Scan::allScans, my_icp, meta, + nns_method, cuda_enabled, my_loopSlam6D, my_graphSlam6D, + mni_lum, epsilonSLAM, mdml, mdmll, graphDist, eP, type); + delete my_icp; + if(loopSlam6DAlgo > 0) { + delete my_loopSlam6D; + } + } + if(my_graphSlam6D > 0) { + delete my_graphSlam6D; + } + } + } + +#ifdef WITH_METRICS + ClientMetric::matching_time.end(t); +#endif //WITH_METRICS + + long endtime = GetCurrentTimeInMilliSec() - starttime; + cout << "Matching done in " << endtime << " milliseconds!!!" << endl; + + if (exportPts) { + cout << "Export all 3D Points to file \"points.pts\"" << endl; + ofstream redptsout("points.pts"); + for(unsigned int i = 0; i < Scan::allScans.size(); i++) { + DataXYZ xyz_r(Scan::allScans[i]->get("xyz reduced")); + for(unsigned int i = 0; i < xyz_r.size(); ++i) { + redptsout << xyz_r[i][0] << ' ' << xyz_r[i][1] << ' ' << xyz_r[i][2] << '\n'; + } + redptsout << std::flush; + + } + redptsout.close(); + redptsout.clear(); + } + + const double* p; + ofstream redptsout("loopclose.pts"); + for(ScanVector::iterator it = Scan::allScans.begin(); it != Scan::allScans.end(); ++it) + { + Scan* scan = *it; + p = scan->get_rPos(); + Point x(p[0], p[1], p[2]); + redptsout << x << endl; + scan->saveFrames(); + } + redptsout.close(); + + Scan::closeDirectory(); + delete my_icp6Dminimizer; + + cout << endl << endl; + cout << "Normal program end." << endl + << (red < 0 && rand < 0 ? "(-> HINT: For a significant speedup, please use the '-r' or '-R' parameter <-)\n" + : "") + << endl; + + // print metric information +#ifdef WITH_METRICS + ClientMetric::print(scanserver); +#endif //WITH_METRICS +} diff --git a/.svn/pristine/0d/0d7064884e4baa083afed5768ef542ac006229ff.svn-base b/.svn/pristine/0d/0d7064884e4baa083afed5768ef542ac006229ff.svn-base new file mode 100644 index 0000000..c5efc79 --- /dev/null +++ b/.svn/pristine/0d/0d7064884e4baa083afed5768ef542ac006229ff.svn-base @@ -0,0 +1,21 @@ +/** + * @file HOG-Man wrapper + * @author Jochen Sprickerhof. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __LOOP_HOG_MAN_H__ +#define __LOOP_HOG_MAN_H__ + +#include "loopSlam6D.h" + +class loopHOGMan : public loopSlam6D { + + public: + loopHOGMan(bool _quiet, icp6Dminimizer *my_icp6Dminimizer, double mdm, int max_num_iterations, + int rnd, bool eP, int anim, double epsilonICP, int nns_method) + : loopSlam6D(_quiet, my_icp6Dminimizer, mdm, max_num_iterations, rnd, eP, anim, epsilonICP, nns_method) {} + + virtual void close_loop(const vector &allScans, int first, int last, graph_t &g); +}; + +#endif diff --git a/.svn/pristine/0d/0db5f030f4213d96d832db268261073267a83f29.svn-base b/.svn/pristine/0d/0db5f030f4213d96d832db268261073267a83f29.svn-base new file mode 100644 index 0000000..8bc8232 --- /dev/null +++ b/.svn/pristine/0d/0db5f030f4213d96d832db268261073267a83f29.svn-base @@ -0,0 +1,447 @@ +/* + * ghelix6DQ2 implementation + * + * Copyright (C) Peter Schneider, Jan Elseberg, Andreas Nuechter + * + * Released under the GPL version 3. + * + */ + +/** + * @file + * @brief The implementation of globally consistent scan matching algorithm by using helix correction + * @author Peter Schneider. Institute of Computer Science, University of Koblenz, Germany. + * @author Andreas Nuechter. Jacobs University Bremen gGmbH, Germany + * @author Jan Elseberg. Jacobs University Bremen gGmbH, Germany + */ + +#ifdef _MSC_VER +#if !defined _OPENMP && defined OPENMP +#define _OPENMP +#endif +#endif + +#include "slam6d/ghelix6DQ2.h" +#include "slam6d/icp6Dhelix.h" +#include "sparse/csparse.h" + +#include +#include +using std::flush; +#include + +#include "slam6d/globals.icc" + +using std::ofstream; + +/** + * Constructor + * + * @param my_icp6Dminimizer Pointer to ICP minimization functor + * @param mdm Maximum PtoP distance to which point pairs are collected for ICP + * @param max_dist_match Maximum PtoP distance to which point pairs are collected for LUM + * @param max_num_iterations Maximal number of iterations for ICP + * @param quiet Suspesses all output to std out + * @param meta Indicates if metascan matching has to be used + * @param rnd Indicates if randomization has to be used + * @param eP Extrapolate odometry? + * @param anim Animate which frames? + * @param epsilonICP Termination criterion for ICP + * @param nns_method Specifies which NNS method to use + * @param epsilonLUM Termination criterion for LUM + */ +ghelix6DQ2::ghelix6DQ2(icp6Dminimizer *my_icp6Dminimizer, + double mdm, double max_dist_match, + int max_num_iterations, bool quiet, bool meta, int rnd, + bool eP, int anim, double epsilonICP, int nns_method, double epsilonLUM) + : graphSlam6D(my_icp6Dminimizer, + mdm, max_dist_match, + max_num_iterations, quiet, meta, rnd, + eP, anim, epsilonICP, nns_method, epsilonLUM) +{ } + + +/** + * Destructor + */ +ghelix6DQ2::~ghelix6DQ2() +{ + delete my_icp; +} + + +/** + * This function generates the matrices B and Bd that are used for solving B * c = Bd. + * This function has to be called once for every linked scan-pair. + * + * @param firstScanNum The number of the first scan of the linked scan-pair + * @param secondScanNum The number of the second scan of the linked scan-pair + * @param ptpairs Vector that holds all point-pairs for the actual scan-pair + * @param B Matrix with dimension (6*(number of scans-1)) x (6 * (number of scans-1)) + * @param Bd Vector with dimension (6*(number of scans-1)) + * @return returns the sum of square distance + */ +double ghelix6DQ2::genBBdForLinkedPair( int firstScanNum, int secondScanNum, vPtPair *ptpairs, + Matrix *B, ColumnVector *Bd ) +{ + double Btemp1[6][3]; + double Btemp2[6][3]; + memset(&Btemp1[0][0], 0, 18 * sizeof(double)); + memset(&Btemp2[0][0], 0, 18 * sizeof(double)); + double bd1[6]; + double bd2[6]; + memset(&bd1[0], 0, 6 * sizeof(double)); + memset(&bd2[0], 0, 6 * sizeof(double)); + + double p1x, p1y, p1z, p2x, p2y, p2z, pDistX, pDistY, pDistZ, px2Sq, py2Sq, pz2Sq; + + int n = (*ptpairs).size(); + double sum = 0; + + for (int i = 0; i < n; i++) { + p1x = (*ptpairs)[i].p1.x; + p1y = (*ptpairs)[i].p1.y; + p1z = (*ptpairs)[i].p1.z; + + p2x = (*ptpairs)[i].p2.x; + p2y = (*ptpairs)[i].p2.y; + p2z = (*ptpairs)[i].p2.z; + + //px1Sq = p1x * p1x; + //py1Sq = p1y * p1y; + //pz1Sq = p1z * p1z; + + px2Sq = p2x * p2x; + py2Sq = p2y * p2y; + pz2Sq = p2z * p2z; + + Btemp1[4][0] += -p2z; +// Btemp1[3][1] += p2z; + Btemp1[5][0] += p2y; +// Btemp1[3][2] += -p2y; + Btemp1[4][2] += p2x; +// Btemp1[5][1] += -p2x; + Btemp1[0][0] += pz2Sq + py2Sq; + Btemp1[1][0] += p2y*-p2x; + Btemp1[2][0] += -p2z*p2x; + Btemp1[1][1] += pz2Sq + px2Sq; + Btemp1[2][1] += p2z*-p2y; + Btemp1[2][2] += px2Sq + py2Sq; + + pDistX = p1x - p2x; + pDistY = p1y - p2y; + pDistZ = p1z - p2z; + + bd1[0] += -p1z*pDistY + p1y*pDistZ; + bd1[1] += p1z*pDistX - p1x*pDistZ; + bd1[2] += -p1y*pDistX + p1x*pDistY; + bd1[3] += pDistX; + bd1[4] += pDistY; + bd1[5] += pDistZ; + + bd2[0] += -p2z*-pDistY + p2y*-pDistZ; + bd2[1] += p2z*-pDistX - p2x*-pDistZ; + bd2[2] += -p2y*-pDistX + p2x*-pDistY; + bd2[3] += -pDistX; + bd2[4] += -pDistY; + bd2[5] += -pDistZ; + + sum += pDistX*pDistX + pDistY*pDistY + pDistZ*pDistZ; + } + +#ifdef _OPENMP + #pragma omp critical (enterB) +#endif + { + int matPlace1 = (firstScanNum-1) * 6; + + if(firstScanNum != 0) + { + (*B)(matPlace1+4,matPlace1+4) += n; + (*B)(matPlace1+5,matPlace1+5) += n; + (*B)(matPlace1+6,matPlace1+6) += n; + + (*B)(matPlace1+1,matPlace1+5) += Btemp1[4][0]; + (*B)(matPlace1+5,matPlace1+1) += Btemp1[4][0]; + (*B)(matPlace1+2,matPlace1+4) += -Btemp1[4][0]; + (*B)(matPlace1+4,matPlace1+2) += -Btemp1[4][0]; + (*B)(matPlace1+1,matPlace1+6) += Btemp1[5][0]; + (*B)(matPlace1+6,matPlace1+1) += Btemp1[5][0]; + (*B)(matPlace1+3,matPlace1+4) += -Btemp1[5][0]; + (*B)(matPlace1+4,matPlace1+3) += -Btemp1[5][0]; + (*B)(matPlace1+3,matPlace1+5) += Btemp1[4][2]; + (*B)(matPlace1+5,matPlace1+3) += Btemp1[4][2]; + (*B)(matPlace1+2,matPlace1+6) += -Btemp1[4][2]; + (*B)(matPlace1+6,matPlace1+2) += -Btemp1[4][2]; + (*B)(matPlace1+1,matPlace1+2) += Btemp1[1][0]; + (*B)(matPlace1+2,matPlace1+1) += Btemp1[1][0]; + (*B)(matPlace1+1,matPlace1+3) += Btemp1[2][0]; + (*B)(matPlace1+3,matPlace1+1) += Btemp1[2][0]; + (*B)(matPlace1+2,matPlace1+3) += Btemp1[2][1]; + (*B)(matPlace1+3,matPlace1+2) += Btemp1[2][1]; + (*B)(matPlace1+1,matPlace1+1) += Btemp1[0][0]; + (*B)(matPlace1+2,matPlace1+2) += Btemp1[1][1]; + (*B)(matPlace1+3,matPlace1+3) += Btemp1[2][2]; + + (*Bd)(matPlace1+1) += bd1[0]; + (*Bd)(matPlace1+2) += bd1[1]; + (*Bd)(matPlace1+3) += bd1[2]; + (*Bd)(matPlace1+4) += bd1[3]; + (*Bd)(matPlace1+5) += bd1[4]; + (*Bd)(matPlace1+6) += bd1[5]; + } +//------------------------------------------- + unsigned int matPlace2 = (secondScanNum-1) * 6; + + (*B)(matPlace2+4,matPlace2+4) += n; + (*B)(matPlace2+5,matPlace2+5) += n; + (*B)(matPlace2+6,matPlace2+6) += n; + + (*B)(matPlace2+1,matPlace2+5) += Btemp1[4][0]; + (*B)(matPlace2+5,matPlace2+1) += Btemp1[4][0]; + (*B)(matPlace2+2,matPlace2+4) += -Btemp1[4][0]; + (*B)(matPlace2+4,matPlace2+2) += -Btemp1[4][0]; + (*B)(matPlace2+1,matPlace2+6) += Btemp1[5][0]; + (*B)(matPlace2+6,matPlace2+1) += Btemp1[5][0]; + (*B)(matPlace2+3,matPlace2+4) += -Btemp1[5][0]; + (*B)(matPlace2+4,matPlace2+3) += -Btemp1[5][0]; + (*B)(matPlace2+3,matPlace2+5) += Btemp1[4][2]; + (*B)(matPlace2+5,matPlace2+3) += Btemp1[4][2]; + (*B)(matPlace2+2,matPlace2+6) += -Btemp1[4][2]; + (*B)(matPlace2+6,matPlace2+2) += -Btemp1[4][2]; + (*B)(matPlace2+1,matPlace2+2) += Btemp1[1][0]; + (*B)(matPlace2+2,matPlace2+1) += Btemp1[1][0]; + (*B)(matPlace2+1,matPlace2+3) += Btemp1[2][0]; + (*B)(matPlace2+3,matPlace2+1) += Btemp1[2][0]; + (*B)(matPlace2+2,matPlace2+3) += Btemp1[2][1]; + (*B)(matPlace2+3,matPlace2+2) += Btemp1[2][1]; + (*B)(matPlace2+1,matPlace2+1) += Btemp1[0][0]; + (*B)(matPlace2+2,matPlace2+2) += Btemp1[1][1]; + (*B)(matPlace2+3,matPlace2+3) += Btemp1[2][2]; + + + (*Bd)(matPlace2+1) += bd2[0]; + (*Bd)(matPlace2+2) += bd2[1]; + (*Bd)(matPlace2+3) += bd2[2]; + (*Bd)(matPlace2+4) += bd2[3]; + (*Bd)(matPlace2+5) += bd2[4]; + (*Bd)(matPlace2+6) += bd2[5]; + +//------------------------------------------- + if( firstScanNum != 0) + { + (*B)(matPlace1+4,matPlace2+4) -= n; + (*B)(matPlace1+5,matPlace2+5) -= n; + (*B)(matPlace1+6,matPlace2+6) -= n; + + (*B)(matPlace1+1,matPlace2+5) += -Btemp1[4][0]; + (*B)(matPlace1+5,matPlace2+1) += -Btemp1[4][0]; + (*B)(matPlace1+2,matPlace2+4) += Btemp1[4][0]; + (*B)(matPlace1+4,matPlace2+2) += Btemp1[4][0]; + (*B)(matPlace1+1,matPlace2+6) += -Btemp1[5][0]; + (*B)(matPlace1+6,matPlace2+1) += -Btemp1[5][0]; + (*B)(matPlace1+3,matPlace2+4) += Btemp1[5][0]; + (*B)(matPlace1+4,matPlace2+3) += Btemp1[5][0]; + (*B)(matPlace1+3,matPlace2+5) += -Btemp1[4][2]; + (*B)(matPlace1+5,matPlace2+3) += -Btemp1[4][2]; + (*B)(matPlace1+2,matPlace2+6) += Btemp1[4][2]; + (*B)(matPlace1+6,matPlace2+2) += Btemp1[4][2]; + (*B)(matPlace1+1,matPlace2+2) += -Btemp1[1][0]; + (*B)(matPlace1+2,matPlace2+1) += -Btemp1[1][0]; + (*B)(matPlace1+1,matPlace2+3) += -Btemp1[2][0]; + (*B)(matPlace1+3,matPlace2+1) += -Btemp1[2][0]; + (*B)(matPlace1+2,matPlace2+3) += -Btemp1[2][1]; + (*B)(matPlace1+3,matPlace2+2) += -Btemp1[2][1]; + (*B)(matPlace1+1,matPlace2+1) += -Btemp1[0][0]; + (*B)(matPlace1+2,matPlace2+2) += -Btemp1[1][1]; + (*B)(matPlace1+3,matPlace2+3) += -Btemp1[2][2]; +//---------------------------------------- + (*B)(matPlace2+4,matPlace1+4) -= n; + (*B)(matPlace2+5,matPlace1+5) -= n; + (*B)(matPlace2+6,matPlace1+6) -= n; + + (*B)(matPlace2+1,matPlace1+5) += -Btemp1[4][0]; + (*B)(matPlace2+5,matPlace1+1) += -Btemp1[4][0]; + (*B)(matPlace2+2,matPlace1+4) += Btemp1[4][0]; + (*B)(matPlace2+4,matPlace1+2) += Btemp1[4][0]; + (*B)(matPlace2+1,matPlace1+6) += -Btemp1[5][0]; + (*B)(matPlace2+6,matPlace1+1) += -Btemp1[5][0]; + (*B)(matPlace2+3,matPlace1+4) += Btemp1[5][0]; + (*B)(matPlace2+4,matPlace1+3) += Btemp1[5][0]; + (*B)(matPlace2+3,matPlace1+5) += -Btemp1[4][2]; + (*B)(matPlace2+5,matPlace1+3) += -Btemp1[4][2]; + (*B)(matPlace2+2,matPlace1+6) += Btemp1[4][2]; + (*B)(matPlace2+6,matPlace1+2) += Btemp1[4][2]; + (*B)(matPlace2+1,matPlace1+2) += -Btemp1[1][0]; + (*B)(matPlace2+2,matPlace1+1) += -Btemp1[1][0]; + (*B)(matPlace2+1,matPlace1+3) += -Btemp1[2][0]; + (*B)(matPlace2+3,matPlace1+1) += -Btemp1[2][0]; + (*B)(matPlace2+2,matPlace1+3) += -Btemp1[2][1]; + (*B)(matPlace2+3,matPlace1+2) += -Btemp1[2][1]; + (*B)(matPlace2+1,matPlace1+1) += -Btemp1[0][0]; + (*B)(matPlace2+2,matPlace1+2) += -Btemp1[1][1]; + (*B)(matPlace2+3,matPlace1+3) += -Btemp1[2][2]; + } + } // of pragma omp critical + + return sqrt( sum / (double) n ); +} + + + +/** + * This function is used to match a set of laser scans with any minimally + * connected Graph, using the globally consistent LUM-algorithm in 3D. + * + * @param gr Some Graph with no real subgraphs except for itself + * @param allScans Contains all laser scans + * @param nrIt The number of iterations the LUM-algorithm will run + * @return Euclidian distance of all pose shifts + */ +double ghelix6DQ2::doGraphSlam6D(Graph gr, vector allScans, int nrIt) +{ + +#ifdef WRITE_GRAPH_NET + // for debug only: + static int d = 0; + cout << "writing graph.dat ....................................." << endl; + d++; + string gfilename = "graph_" + to_string(d, 3) + ".net"; + ofstream out(gfilename.c_str()); + for (int i=0; i < gr.getNrLinks(); i++) { + int from = gr.getLink(i,0); + int to = gr.getLink(i,1); + // shouldn't be necessary, just in case a (out of date) graph file is loaded: + if (from < (int)allScans.size() && to < (int)allScans.size()) { + out << allScans[from]->get_rPos()[0] << " " + << allScans[from]->get_rPos()[1] << " " + << allScans[from]->get_rPos()[2] << endl + << allScans[to ]->get_rPos()[0] << " " + << allScans[to ]->get_rPos()[1] << " " + << allScans[to ]->get_rPos()[2] << endl << endl; + } + } + out.close(); + out.clear(); +#endif + + // the IdentityMatrix to transform some Scans with + double id[16]; + M4identity(id); + + vPtPair **ptpairs = 0; // Contains sets of point pairs for all links + Matrix B ( 6 * (gr.getNrScans()-1), 6 * (gr.getNrScans()-1) ); + ColumnVector ccs( 6*(gr.getNrScans()-1) ), bd( 6*(gr.getNrScans()-1) ); + + B = 0.0; + bd = 0.0; + + double sum_position_diff = 0; + double ret = DBL_MAX; + + for(int iteration = 0; + iteration < nrIt && ret > epsilonLUM; + iteration++) { + sum_position_diff = 0; + + if (nrIt > 1) cout << "Iteration match " << iteration << endl; + + if (ptpairs != 0) delete [] ptpairs; + ptpairs = new vPtPair*[gr.getNrLinks()]; + + for (int i = 0; i < gr.getNrLinks(); i++) { + ptpairs[i] = new vPtPair; + } + + // Get all point pairs after ICP + int end_loop = gr.getNrLinks(); +#ifdef _OPENMP + omp_set_num_threads(OPENMP_NUM_THREADS); +#pragma omp parallel for schedule(dynamic) +#endif + + for ( int i = 0; i < end_loop; i++) { + cout << "P" << i << flush; + Scan * FirstScan = allScans[gr.getLink(i,0)]; + Scan * SecondScan = allScans[gr.getLink(i,1)]; +#ifdef _OPENMP + int thread_num = omp_get_thread_num(); +#else + int thread_num = 0; +#endif + double dummy_centroid_m[3]; + double dummy_centroid_d[3]; + double dummy_sum; + + Scan::getPtPairs(ptpairs[i], FirstScan, SecondScan, thread_num, + (int)my_icp->get_rnd(), (int)max_dist_match2_LUM, dummy_sum, + dummy_centroid_m, dummy_centroid_d); + + // faulty network + if (ptpairs[i]->size() <= 1) { + cout << "Error: Link (" << gr.getLink(i,0) + << " - " << gr.getLink(i, 1) << " ) is empty with " + << ptpairs[i]->size() << " Corr. points. iteration = " + << iteration << endl; + // exit(1); + + } else + // build the matrix B and vector bd + genBBdForLinkedPair( gr.getLink(i,0), gr.getLink(i,1), ptpairs[i], &B, &bd ); + } + cout <<" building matrices done! "<clear(); + delete (ptpairs[i]); + } + + ColumnVector t0(3), t(3), tlast(3); + int vectorOffset; + + int loop_end = gr.getNrScans(); + double alignxfLum[16]; + for(int i = 1; i < loop_end; i++) + { + vectorOffset = (i-1) * 6; + icp6D_HELIX::computeRt( &ccs, vectorOffset, alignxfLum); + + // Update the Pose + + cout << "Old pose estimate, Scan " << i << endl; + cout << "x: " << allScans[i]->get_rPos()[0] + << " y: " << allScans[i]->get_rPos()[1] + << " z: " << allScans[i]->get_rPos()[2] + << " tx: " << allScans[i]->get_rPosTheta()[0] + << " ty: " << allScans[i]->get_rPosTheta()[1] + << " tz: " << allScans[i]->get_rPosTheta()[2] + << endl; + + if (i < loop_end - 1) { + allScans[i]->transform(alignxfLum, Scan::LUM, 1); + } else { + allScans[i]->transform(alignxfLum, Scan::LUM, 2); + } + + cout << "x: " << allScans[i]->get_rPos()[0] + << " y: " << allScans[i]->get_rPos()[1] + << " z: " << allScans[i]->get_rPos()[2] + << " tx: " << allScans[i]->get_rPosTheta()[0] + << " ty: " << allScans[i]->get_rPosTheta()[1] + << " tz: " << allScans[i]->get_rPosTheta()[2] << endl << endl; + + sum_position_diff += sqrt( sqr(alignxfLum[12]) + sqr(alignxfLum[13]) + sqr(alignxfLum[14])); + + } + cout << "Sum of Position differences = " << sum_position_diff << endl << endl; + ret = (sum_position_diff / (double)gr.getNrScans()); + } + delete [] ptpairs; + ptpairs = 0; + + return ret; +} + diff --git a/.svn/pristine/0d/0deae2775c5ea523954d06210276b5d650f02dd9.svn-base b/.svn/pristine/0d/0deae2775c5ea523954d06210276b5d650f02dd9.svn-base new file mode 100644 index 0000000..036cb09 --- /dev/null +++ b/.svn/pristine/0d/0deae2775c5ea523954d06210276b5d650f02dd9.svn-base @@ -0,0 +1,45 @@ +Read 500 data points - begin fit + + + -2247.993783 25945.58733 + -537.4533239 + -554.5885614 + -537.2164816 26.36266449 + -520.7034774 + -519.7069034 6.153112127 + -516.7045383 + -516.690955 1.394658892 + -516.396412 + -516.215149 0.1555724069 + -516.1509657 + -516.1486772 0.02342168856 + -516.1420803 + -516.1404735 0.002342030975 + -516.1395282 + -516.1394913 0.0003287516503 + -516.1393961 + -516.1393755 3.25631984e-05 +Converged + + +estimates and standard errors + 1.56690 0.22311 + 0.80046 0.20274 + 0.45307 0.08428 + 0.34655 0.09081 + + +correlation matrix + 1.00 0.00 -0.02 0.01 + 0.00 1.00 0.21 -0.81 + -0.02 0.21 1.00 -0.63 + 0.01 -0.81 -0.63 1.00 + + +inverse of correlation matrix + 1.00 0.03 0.04 0.04 + 0.03 4.77 2.28 5.28 + 0.04 2.28 2.73 3.55 + 0.04 5.28 3.55 7.48 + + diff --git a/.svn/pristine/0e/0ede209298c6f40e0d690f02e2963070fb6d7b1c.svn-base b/.svn/pristine/0e/0ede209298c6f40e0d690f02e2963070fb6d7b1c.svn-base new file mode 100644 index 0000000..3f71902 --- /dev/null +++ b/.svn/pristine/0e/0ede209298c6f40e0d690f02e2963070fb6d7b1c.svn-base @@ -0,0 +1,32 @@ +/** @file + * @brief Definition of the ICP error function minimization + * @author Andreas Nuechter. Jacobs University Bremen gGmbH, Germany + */ + +#ifndef __ICP6DLUMEULER_H__ +#define __ICP6DLUMEULER_H__ + +#include "icp6Dminimizer.h" + +/** + * @brief Implementation of the ICP error function minimization via singular value decomposition + */ +class icp6D_LUMEULER : public icp6Dminimizer +{ +public: + /** + * Constructor + */ + icp6D_LUMEULER(bool quiet = false) : icp6Dminimizer(quiet) {}; + /** + * Destructor + */ + virtual ~icp6D_LUMEULER() {}; + + double Point_Point_Align(const vector& Pairs, double *alignxf, + const double centroid_m[3], const double centroid_d[3]); + + inline int getAlgorithmID() { return 3; }; +}; + +#endif diff --git a/.svn/pristine/0f/0f0d60cfa76bdda6845480ee8509ba2e8fc602c0.svn-base b/.svn/pristine/0f/0f0d60cfa76bdda6845480ee8509ba2e8fc602c0.svn-base new file mode 100644 index 0000000..9508a98 --- /dev/null +++ b/.svn/pristine/0f/0f0d60cfa76bdda6845480ee8509ba2e8fc602c0.svn-base @@ -0,0 +1,36 @@ +/** + * @file + * @brief IO of 3D scans in Riegl file format + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SCAN_IO_RIEGL_H__ +#define __SCAN_IO_RIEGL_H__ + +#include +using std::string; +#include +using std::vector; + +#include "scan_io.h" + +/** + * @brief 3D scan loader for Riegl scans + * + * The compiled class is available as shared object file + */ +class ScanIO_riegl_bin : public ScanIO { +public: + virtual int readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss); +}; + +// Since this shared object file is loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/.svn/pristine/0f/0fd632e018c162265c30cb0ba3281fb015aa75f9.svn-base b/.svn/pristine/0f/0fd632e018c162265c30cb0ba3281fb015aa75f9.svn-base new file mode 100644 index 0000000..d8ed703 --- /dev/null +++ b/.svn/pristine/0f/0fd632e018c162265c30cb0ba3281fb015aa75f9.svn-base @@ -0,0 +1,1314 @@ +/* +This is a Optical-Character-Recognition program +Copyright (C) 2000-2007 Joerg Schulenburg + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + see README for EMAIL-address + */ + +#include "unicode.h" +#include + +/* FIXME jb global */ +int warn=0; /* if 1 a message is generated if composition is not defined */ + +/* Arguments: the character (main), and the modifier (accent, etc). See the + function if you want to know the modifiers. + Description: This function intends to be a small helper, to avoid having + to write switches in functions. It's therefore mainly to accents, and + specially for the most usual ones. It supports the basic greek + characters too, which is actually not very helpful. + Returns: the unicode character corresponding to the composed character. + + ToDo: + - It seems to me, that tables should be more effectiv. + So we should use tables in future? (js) + */ +wchar_t compose(wchar_t main, wchar_t modifier) { +/* supported by now: part of ISO8859-1, basic greek characters */ + if( main == UNKNOWN || main == PICTURE ) return main; +#ifdef DEBUG + if(modifier!=UNICODE_NULL && modifier!=SPACE) + printf(" compose(%c,%d)",(char)main,(int)modifier); +#endif + if(main>127 && modifier!=0 && modifier!=SPACE && warn) + fprintf(stderr,"# Warning compose %04x + %04x>127\n", + (int)modifier,(int)main); + switch (modifier) { + case UNICODE_NULL: + case SPACE: + return (wchar_t)main; + + case APOSTROPHE: /* do NOT USE this. It's here for compatibility only. + Use ACUTE_ACCENT instead. */ + fprintf( stderr, "COMPOSE: got APOSTROPHE instead of ACUTE_ACCENT"); + + case ACUTE_ACCENT: /* acute/cedilla */ + switch (main) { + case 'a': return LATIN_SMALL_LETTER_A_WITH_ACUTE; + case 'A': return LATIN_CAPITAL_LETTER_A_WITH_ACUTE; + case LATIN_SMALL_LETTER_AE: return LATIN_SMALL_LETTER_AE_WITH_ACUTE; + case LATIN_CAPITAL_LETTER_AE: return LATIN_CAPITAL_LETTER_AE_WITH_ACUTE; + case 'c': return LATIN_SMALL_LETTER_C_WITH_ACUTE; + case 'C': return LATIN_CAPITAL_LETTER_C_WITH_ACUTE; + case 'e': return LATIN_SMALL_LETTER_E_WITH_ACUTE; + case 'E': return LATIN_CAPITAL_LETTER_E_WITH_ACUTE; + case 'g': return LATIN_SMALL_LETTER_G_WITH_ACUTE; + case 'G': return LATIN_CAPITAL_LETTER_G_WITH_ACUTE; + case 'i': return LATIN_SMALL_LETTER_I_WITH_ACUTE; + case 'I': return LATIN_CAPITAL_LETTER_I_WITH_ACUTE; + case 'l': return LATIN_SMALL_LETTER_L_WITH_ACUTE; + case 'L': return LATIN_CAPITAL_LETTER_L_WITH_ACUTE; + case 'n': return LATIN_SMALL_LETTER_N_WITH_ACUTE; + case 'N': return LATIN_CAPITAL_LETTER_N_WITH_ACUTE; + case 'o': return LATIN_SMALL_LETTER_O_WITH_ACUTE; + case 'O': return LATIN_CAPITAL_LETTER_O_WITH_ACUTE; + case '0': return LATIN_CAPITAL_LETTER_O_WITH_ACUTE; + case 'r': return LATIN_SMALL_LETTER_R_WITH_ACUTE; + case 'R': return LATIN_CAPITAL_LETTER_R_WITH_ACUTE; + case 's': return LATIN_SMALL_LETTER_S_WITH_ACUTE; + case 'S': return LATIN_CAPITAL_LETTER_S_WITH_ACUTE; + case 'u': return LATIN_SMALL_LETTER_U_WITH_ACUTE; + case 'U': return LATIN_CAPITAL_LETTER_U_WITH_ACUTE; + case 'y': return LATIN_SMALL_LETTER_Y_WITH_ACUTE; + case 'Y': return LATIN_CAPITAL_LETTER_Y_WITH_ACUTE; + case 'z': return LATIN_SMALL_LETTER_Z_WITH_ACUTE; + case 'Z': return LATIN_CAPITAL_LETTER_Z_WITH_ACUTE; + default: + if(warn)fprintf( stderr, " COMPOSE: ACUTE_ACCENT+%04x not defined\n",(int)main); + } + break; + + case BREVE: /* caron (latin2) "u"-above-... (small bow) */ + switch (main) { + /* FIXME write separate heuristics for breve */ + case 'a': return LATIN_SMALL_LETTER_A_WITH_BREVE; + case 'A': return LATIN_CAPITAL_LETTER_A_WITH_BREVE; + case 'e': return LATIN_SMALL_LETTER_E_WITH_BREVE; + case 'E': return LATIN_CAPITAL_LETTER_E_WITH_BREVE; + case 'g': return LATIN_SMALL_LETTER_G_WITH_BREVE; + case 'G': return LATIN_CAPITAL_LETTER_G_WITH_BREVE; + case 'i': return LATIN_SMALL_LETTER_I_WITH_BREVE; + case 'I': return LATIN_CAPITAL_LETTER_I_WITH_BREVE; + case 'o': return LATIN_SMALL_LETTER_O_WITH_BREVE; + case 'O': return LATIN_CAPITAL_LETTER_O_WITH_BREVE; + case 'u': return LATIN_SMALL_LETTER_U_WITH_BREVE; + case 'U': return LATIN_CAPITAL_LETTER_U_WITH_BREVE; + default: + if(warn)fprintf( stderr, " COMPOSE: BREVE+%04x not defined\n",(int)main); + } + break; + + case CARON: /* caron (latin2) "v"-above-... */ + switch (main) { + case 'a': return LATIN_SMALL_LETTER_A_WITH_CARON; + case 'A': return LATIN_CAPITAL_LETTER_A_WITH_CARON; + case 'c': return LATIN_SMALL_LETTER_C_WITH_CARON; + case 'C': return LATIN_CAPITAL_LETTER_C_WITH_CARON; + case 'e': return LATIN_SMALL_LETTER_E_WITH_CARON; + case 'E': return LATIN_CAPITAL_LETTER_E_WITH_CARON; + case 'i': return LATIN_SMALL_LETTER_I_WITH_CARON; + case 'I': return LATIN_CAPITAL_LETTER_I_WITH_CARON; + case 'o': return LATIN_SMALL_LETTER_O_WITH_CARON; + case 'O': return LATIN_CAPITAL_LETTER_O_WITH_CARON; + case '0': return LATIN_CAPITAL_LETTER_O_WITH_CARON; + case 's': return LATIN_SMALL_LETTER_S_WITH_CARON; + case 'S': return LATIN_CAPITAL_LETTER_S_WITH_CARON; + case 'u': return LATIN_SMALL_LETTER_U_WITH_CARON; + case 'U': return LATIN_CAPITAL_LETTER_U_WITH_CARON; + case 'z': return LATIN_SMALL_LETTER_Z_WITH_CARON; + case 'Z': return LATIN_CAPITAL_LETTER_Z_WITH_CARON; + default: + if(warn)fprintf( stderr, " COMPOSE: CARON+%04x not defined\n",(int)main); + } + break; + + case CEDILLA: + switch (main) { + case 'c': return LATIN_SMALL_LETTER_C_WITH_CEDILLA; + case 'C': return LATIN_CAPITAL_LETTER_C_WITH_CEDILLA; + default: + if(warn)fprintf( stderr, " COMPOSE: CEDILLA+%04x not defined\n",(int)main); + } + break; + + case TILDE: + switch (main) { + case 'a': return LATIN_SMALL_LETTER_A_WITH_TILDE; + case 'A': return LATIN_CAPITAL_LETTER_A_WITH_TILDE; + case 'i': return LATIN_SMALL_LETTER_I_WITH_TILDE; + case 'I': return LATIN_CAPITAL_LETTER_I_WITH_TILDE; + case 'n': return LATIN_SMALL_LETTER_N_WITH_TILDE; + case 'N': return LATIN_CAPITAL_LETTER_N_WITH_TILDE; + case 'o': return LATIN_SMALL_LETTER_O_WITH_TILDE; + case 'O': return LATIN_CAPITAL_LETTER_O_WITH_TILDE; + case '0': return LATIN_CAPITAL_LETTER_O_WITH_TILDE; + case 'u': return LATIN_SMALL_LETTER_U_WITH_TILDE; + case 'U': return LATIN_CAPITAL_LETTER_U_WITH_TILDE; + default: + if(warn)fprintf( stderr, " COMPOSE: TILDE+%04x not defined\n",(int)main); + } + break; + + case GRAVE_ACCENT: + switch (main) { + case 'a': return LATIN_SMALL_LETTER_A_WITH_GRAVE; + case 'A': return LATIN_CAPITAL_LETTER_A_WITH_GRAVE; + case 'e': return LATIN_SMALL_LETTER_E_WITH_GRAVE; + case 'E': return LATIN_CAPITAL_LETTER_E_WITH_GRAVE; + case 'i': return LATIN_SMALL_LETTER_I_WITH_GRAVE; + case 'I': return LATIN_CAPITAL_LETTER_I_WITH_GRAVE; + case 'n': return LATIN_SMALL_LETTER_N_WITH_GRAVE; + case 'N': return LATIN_CAPITAL_LETTER_N_WITH_GRAVE; + case 'o': return LATIN_SMALL_LETTER_O_WITH_GRAVE; + case 'O': return LATIN_CAPITAL_LETTER_O_WITH_GRAVE; + case '0': return LATIN_CAPITAL_LETTER_O_WITH_GRAVE; + case 'u': return LATIN_SMALL_LETTER_U_WITH_GRAVE; + case 'U': return LATIN_CAPITAL_LETTER_U_WITH_GRAVE; + default: + if(warn)fprintf( stderr, " COMPOSE: GRAVE_ACCENT+%04x not defined\n",(int)main); + } + break; + + case QUOTATION_MARK: /* do NOT USE this. It's here for compatibility only. + Use DIAERESIS instead. */ + fprintf( stderr, "COMPOSE: got APOSTROPHE instead of ACUTE_ACCENT"); + + case DIAERESIS: + switch (main) { + case 'a': return LATIN_SMALL_LETTER_A_WITH_DIAERESIS; + case 'A': return LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS; + case 'e': return LATIN_SMALL_LETTER_E_WITH_DIAERESIS; + case 'E': return LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS; + case 'i': return LATIN_SMALL_LETTER_I_WITH_DIAERESIS; + case 'I': return LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS; + case 'o': return LATIN_SMALL_LETTER_O_WITH_DIAERESIS; + case 'O': return LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS; + case '0': return LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS; + case 'u': return LATIN_SMALL_LETTER_U_WITH_DIAERESIS; + case 'U': return LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS; + case 'y': return LATIN_SMALL_LETTER_Y_WITH_DIAERESIS; + case 'Y': return LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS; + default: + if(warn)fprintf( stderr, " COMPOSE: DIAERESIS+%04x (%c) not defined\n",(int)main,(char)main); + } + break; + + case CIRCUMFLEX_ACCENT: /* ^ */ + switch (main) { + case 'a': return LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX; + case 'A': return LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX; + case 'c': return LATIN_SMALL_LETTER_C_WITH_CIRCUMFLEX; + case 'C': return LATIN_CAPITAL_LETTER_C_WITH_CIRCUMFLEX; + case 'e': return LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX; + case 'E': return LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX; + case 'g': return LATIN_SMALL_LETTER_G_WITH_CIRCUMFLEX; + case 'G': return LATIN_CAPITAL_LETTER_G_WITH_CIRCUMFLEX; + case 'h': return LATIN_SMALL_LETTER_H_WITH_CIRCUMFLEX; + case 'H': return LATIN_CAPITAL_LETTER_H_WITH_CIRCUMFLEX; + case 'i': return LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX; + case 'I': return LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX; + case 'j': return LATIN_SMALL_LETTER_J_WITH_CIRCUMFLEX; + case 'J': return LATIN_CAPITAL_LETTER_J_WITH_CIRCUMFLEX; + case 'o': return LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX; + case 'O': return LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX; + case '0': return LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX; + case 's': return LATIN_SMALL_LETTER_S_WITH_CIRCUMFLEX; + case 'S': return LATIN_CAPITAL_LETTER_S_WITH_CIRCUMFLEX; + case 'u': return LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX; + case 'U': return LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX; + case 'w': return LATIN_SMALL_LETTER_W_WITH_CIRCUMFLEX; + case 'W': return LATIN_CAPITAL_LETTER_W_WITH_CIRCUMFLEX; + case 'y': return LATIN_SMALL_LETTER_Y_WITH_CIRCUMFLEX; + case 'Y': return LATIN_CAPITAL_LETTER_Y_WITH_CIRCUMFLEX; + default: + if(warn)fprintf( stderr, " COMPOSE: CIRCUMFLEX_ACCENT+%04x not defined\n",(int)main); + } + break; + + case MACRON: /* a minus sign above the char (latin2) */ + switch (main) { + case 'a': return LATIN_SMALL_LETTER_A_WITH_MACRON; + case 'A': return LATIN_CAPITAL_LETTER_A_WITH_MACRON; + case 'e': return LATIN_SMALL_LETTER_E_WITH_MACRON; + case 'E': return LATIN_CAPITAL_LETTER_E_WITH_MACRON; + case 'i': return LATIN_SMALL_LETTER_I_WITH_MACRON; + case 'I': return LATIN_CAPITAL_LETTER_I_WITH_MACRON; + case 'o': return LATIN_SMALL_LETTER_O_WITH_MACRON; + case 'O': return LATIN_CAPITAL_LETTER_O_WITH_MACRON; + case 'u': return LATIN_SMALL_LETTER_U_WITH_MACRON; + case 'U': return LATIN_CAPITAL_LETTER_U_WITH_MACRON; + case 'y': return LATIN_SMALL_LETTER_Y_WITH_MACRON; + case 'Y': return LATIN_CAPITAL_LETTER_Y_WITH_MACRON; + case LATIN_SMALL_LETTER_AE: return LATIN_SMALL_LETTER_AE_WITH_MACRON; + case LATIN_CAPITAL_LETTER_AE: return LATIN_CAPITAL_LETTER_AE_WITH_MACRON; + case '=': return IDENTICAL_TO; + case '-': return '='; + case ' ': return MODIFIER_LETTER_MACRON; + default: + if(warn)fprintf( stderr, " COMPOSE: MACRON+%04x not defined\n",(int)main); + } + break; + + case DOT_ABOVE: /* latin2 */ + switch (main) { + case 'a': return LATIN_SMALL_LETTER_A_WITH_DOT_ABOVE; + case 'A': return LATIN_CAPITAL_LETTER_A_WITH_DOT_ABOVE; + case 'c': return LATIN_SMALL_LETTER_C_WITH_DOT_ABOVE; + case 'C': return LATIN_CAPITAL_LETTER_C_WITH_DOT_ABOVE; + case 'e': return LATIN_SMALL_LETTER_E_WITH_DOT_ABOVE; + case 'E': return LATIN_CAPITAL_LETTER_E_WITH_DOT_ABOVE; + case 'g': return LATIN_SMALL_LETTER_G_WITH_DOT_ABOVE; + case 'G': return LATIN_CAPITAL_LETTER_G_WITH_DOT_ABOVE; + case 'l': return 'i'; /* correct wrong recognition */ + case 'i': return 'i'; + case LATIN_SMALL_LETTER_DOTLESS_I: return 'i'; + case 'I': return LATIN_CAPITAL_LETTER_I_WITH_DOT_ABOVE; + case 'j': return 'j'; + case 'o': return LATIN_SMALL_LETTER_O_WITH_DOT_ABOVE; + case 'O': return LATIN_CAPITAL_LETTER_O_WITH_DOT_ABOVE; + case 'z': return LATIN_SMALL_LETTER_Z_WITH_DOT_ABOVE; + case 'Z': return LATIN_CAPITAL_LETTER_Z_WITH_DOT_ABOVE; + case ',': return ';'; + case '.': return ':'; + default: + if(warn)fprintf( stderr, " COMPOSE: DOT_ABOVE+%04x not defined\n",(int)main); + } + break; + + case RING_ABOVE: + switch (main) { + case 'a': return LATIN_SMALL_LETTER_A_WITH_RING_ABOVE; + case 'A': return LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE; + case 'u': return LATIN_SMALL_LETTER_U_WITH_RING_ABOVE; + case 'U': return LATIN_CAPITAL_LETTER_U_WITH_RING_ABOVE; + default: + if(warn)fprintf( stderr, " COMPOSE: RING_ABOVE+%04x not defined\n",(int)main); + } + break; + + case 'e': /* e ligatures: ae, oe. */ + case 'E': + switch (main) { + case 'a': return LATIN_SMALL_LETTER_AE; + case 'A': return LATIN_CAPITAL_LETTER_AE; + case 'o': return LATIN_SMALL_LIGATURE_OE; + case 'O': return LATIN_CAPITAL_LIGATURE_OE; + case '0': return LATIN_CAPITAL_LIGATURE_OE; + default: + if(warn)fprintf( stderr, " COMPOSE: %04x+e/E not defined\n",(int)main); + } + break; + + case 'g': /* greek */ + switch (main) { + /* missing 0x37A-0x390 */ + /* weird cases: Q -> theta (it resembles a little, doesn't it?) + V -> psi (what can I do?) */ + case 'A': return GREEK_CAPITAL_LETTER_ALPHA; + case 'B': return GREEK_CAPITAL_LETTER_BETA; + case 'G': return GREEK_CAPITAL_LETTER_GAMMA; + case 'D': return GREEK_CAPITAL_LETTER_DELTA; + case 'E': return GREEK_CAPITAL_LETTER_EPSILON; + case 'Z': return GREEK_CAPITAL_LETTER_ZETA; + case 'H': return GREEK_CAPITAL_LETTER_ETA; + case 'Q': return GREEK_CAPITAL_LETTER_THETA; + case 'I': return GREEK_CAPITAL_LETTER_IOTA; + case 'K': return GREEK_CAPITAL_LETTER_KAPPA; + case 'L': return GREEK_CAPITAL_LETTER_LAMDA; + case 'M': return GREEK_CAPITAL_LETTER_MU; + case 'N': return GREEK_CAPITAL_LETTER_NU; + case 'X': return GREEK_CAPITAL_LETTER_XI; + case 'O': return GREEK_CAPITAL_LETTER_OMICRON; + case 'P': return GREEK_CAPITAL_LETTER_PI; + case 'R': return GREEK_CAPITAL_LETTER_RHO; + case 'S': return GREEK_CAPITAL_LETTER_SIGMA; + case 'T': return GREEK_CAPITAL_LETTER_TAU; + case 'Y': return GREEK_CAPITAL_LETTER_UPSILON; + case 'F': return GREEK_CAPITAL_LETTER_PHI; + case 'C': return GREEK_CAPITAL_LETTER_CHI; + case 'V': return GREEK_CAPITAL_LETTER_PSI; + case 'W': return GREEK_CAPITAL_LETTER_OMEGA; +/* + case '': return GREEK_CAPITAL_LETTER_IOTA_WITH_DIALYTIKA; + case '': return GREEK_CAPITAL_LETTER_UPSILON_WITH_DIALYTIKA; + case '': return GREEK_SMALL_LETTER_ALPHA_WITH_TONOS; + case '': return GREEK_SMALL_LETTER_EPSILON_WITH_TONOS; + case '': return GREEK_SMALL_LETTER_ETA_WITH_TONOS; + case '': return GREEK_SMALL_LETTER_IOTA_WITH_TONOS; + case '': return GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA_AND_TONOS; +*/ + case 'a': return GREEK_SMALL_LETTER_ALPHA; + case 'b': return GREEK_SMALL_LETTER_BETA; + case 'g': return GREEK_SMALL_LETTER_GAMMA; + case 'd': return GREEK_SMALL_LETTER_DELTA; + case 'e': return GREEK_SMALL_LETTER_EPSILON; + case 'z': return GREEK_SMALL_LETTER_ZETA; + case 'h': return GREEK_SMALL_LETTER_ETA; + case 'q': return GREEK_SMALL_LETTER_THETA; + case 'i': return GREEK_SMALL_LETTER_IOTA; + case 'k': return GREEK_SMALL_LETTER_KAPPA; + case 'l': return GREEK_SMALL_LETTER_LAMDA; + case 'm': return GREEK_SMALL_LETTER_MU; + case 'n': return GREEK_SMALL_LETTER_NU; + case 'x': return GREEK_SMALL_LETTER_XI; + case 'o': return GREEK_SMALL_LETTER_OMICRON; + case 'p': return GREEK_SMALL_LETTER_PI; + case 'r': return GREEK_SMALL_LETTER_RHO; + case '&': return GREEK_SMALL_LETTER_FINAL_SIGMA; + case 's': return GREEK_SMALL_LETTER_SIGMA; + case 't': return GREEK_SMALL_LETTER_TAU; + case 'y': return GREEK_SMALL_LETTER_UPSILON; + case 'f': return GREEK_SMALL_LETTER_PHI; + case 'c': return GREEK_SMALL_LETTER_CHI; + case 'v': return GREEK_SMALL_LETTER_PSI; + case 'w': return GREEK_SMALL_LETTER_OMEGA; +/* + case '': return GREEK_SMALL_LETTER_IOTA_WITH_DIALYTIKA; + case '': return GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA; + case '': return GREEK_SMALL_LETTER_OMICRON_WITH_TONOS; + case '': return GREEK_SMALL_LETTER_UPSILON_WITH_TONOS; + case '': return GREEK_SMALL_LETTER_OMEGA_WITH_TONOS; + case '': return GREEK_BETA_SYMBOL; + case '': return GREEK_THETA_SYMBOL; + case '': return GREEK_UPSILON_WITH_HOOK_SYMBOL; + case '': return GREEK_UPSILON_WITH_ACUTE_AND_HOOK_SYMBOL; + case '': return GREEK_UPSILON_WITH_DIAERESIS_AND_HOOK_SYMBOL; + case '': return GREEK_PHI_SYMBOL; + case '': return GREEK_PI_SYMBOL; +*/ + default: + if(warn)fprintf( stderr, " COMPOSE: GREEK %04x not defined\n",(int)main); + } + break; + + default: + fprintf( stderr, " COMPOSE: modifier %04x not defined\n",(int)modifier); + } + return (wchar_t)main; +} + +#define UNDEFINED "~" + +/* Arguments: character in Unicode format, type of format to convert to. + Returns: a string containing the Unicode character converted to the chosen + format. This string is statically allocated and should not be freed. + ToDo: better using tables? + */ +const char *decode(wchar_t c, FORMAT type) { + /* static char d; --- js: big bug (missing \0) if &d returned */ + /*FIXME jb static*/ static char bbuf[8*32]; /* space for 8 buffers, rotating */ + /*FIXME jb static*/ static char *buf=bbuf; /* used for UTF8 sequences and undefined codes */ + buf+=32; if(buf>=bbuf+8*32) buf=bbuf; + buf[0]=buf[1]=buf[2]=0; + switch (type) { + case ISO8859_1: + if ( c <= 0xFF ) { /* UNICODE == ISO8859-1 */ + buf[0] = (char)c; + return buf; + } + switch (c) { /* not found in list, but perhaps we can describe it */ + /* todo: add greek. GREEK_SMALL_LETTER_ALPHA = alpha */ + + /* general puctuation */ + case HYPHEN: + return (const char *)"-"; + case FIGURE_DASH: + case EN_DASH: + return (const char *)"--"; + case EM_DASH: + return (const char *)"---"; + case LEFT_SINGLE_QUOTATION_MARK: + return (const char *)"`"; + case RIGHT_SINGLE_QUOTATION_MARK: + return (const char *)"'"; + case SINGLE_LOW_9_QUOTATION_MARK: + return (const char *)","; + case SINGLE_HIGH_REVERSED_9_QUOTATION_MARK: + return (const char *)UNDEFINED; + case LEFT_DOUBLE_QUOTATION_MARK: + return (const char *)"``"; + case RIGHT_DOUBLE_QUOTATION_MARK: + return (const char *)"''"; + case DOUBLE_LOW_9_QUOTATION_MARK: + return (const char *)",,"; + case DOUBLE_HIGH_REVERSED_9_QUOTATION_MARK: + return (const char *)UNDEFINED; + case DAGGER: + return (const char *)"+"; + case DOUBLE_DAGGER: + return (const char *)"*"; + case BULLET: + return (const char *)"*"; + case TRIANGULAR_BULLET: + return (const char *)"*"; + case HYPHENATION_POINT: + return (const char *)"-"; + case HORIZONTAL_ELLIPSIS: + return (const char *)"..."; + case PER_MILLE_SIGN: + return (const char *)"%%"; /* awk! */ + case SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK: + return (const char *)"<"; + case SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK: + return (const char *)">"; + case EURO_CURRENCY_SIGN: + return (const char *)"EUR"; /* change it! */ + + /* ligatures */ + case LATIN_SMALL_LIGATURE_FF: + return (const char *)"ff"; + case LATIN_SMALL_LIGATURE_FI: + return (const char *)"fi"; + case LATIN_SMALL_LIGATURE_FL: + return (const char *)"fl"; + case LATIN_SMALL_LIGATURE_FFI: + return (const char *)"ffi"; + case LATIN_SMALL_LIGATURE_FFL: + return (const char *)"ffl"; + case LATIN_SMALL_LIGATURE_LONG_S_T: + case LATIN_SMALL_LIGATURE_ST: + return (const char *)"st"; + + /* extra */ + case UNKNOWN: + return (const char *)"_"; + case PICTURE: + return (const char *)"_"; /* Due to Mobile OCR */ + + default: + /* snprintf seems to be no standard, so I use insecure sprintf */ + sprintf(buf,"\\code(%04x)",(unsigned)c); + return buf; /* UNDEFINED; */ + } + break; + case TeX: + if ( c >= SPACE && c <= TILDE ) { /* ASCII */ + switch (c) { + case '$': + return (const char *)"\\$"; + case '&': + return (const char *)"\\&"; + case '%': + return (const char *)"\\%"; + case '#': + return (const char *)"\\#"; + case '_': + return (const char *)"\\_"; + case '{': + return (const char *)"\\{"; + case '}': + return (const char *)"\\}"; + case '\\': + return (const char *)"$\\backslash$"; + case '~': + return (const char *)"\\~{}"; + case '^': + return (const char *)"\\^{}"; + default: + buf[0] = (char)c; + return (const char *)buf; + } + } + switch (c) { + /* ISO8859_1 */ + case NO_BREAK_SPACE: + return (const char *)"~"; + case INVERTED_EXCLAMATION_MARK: + return (const char *)"!'"; + case CENT_SIGN: + return (const char *)"\\textcent"; /* \usepackage{textcomp} */ + case POUND_SIGN: + return (const char *)"\\pounds"; + case EURO_CURRENCY_SIGN: + return (const char *)"\\euro"; /* \usepackage{eurosans} */ + case CURRENCY_SIGN: + return (const char *)"\\textcurrency"; /* \usepackage{textcomp} */ + case YEN_SIGN: + return (const char *)"\\textyen"; /* \usepackage{textcomp} */ + case BROKEN_BAR: + return (const char *)"\\textbrokenbar"; /* \usepackage{textcomp} */ + case SECTION_SIGN: + return (const char *)"\\S"; + case DIAERESIS: + return (const char *)"\""; + case COPYRIGHT_SIGN: + return (const char *)"\\copyright"; + case FEMININE_ORDINAL_INDICATOR: + return (const char *)"$^{\\underbar{a}}$"; + case LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK: + return (const char *)"\\flqq{}"; + case NOT_SIGN: + return (const char *)"$\\lnot$"; + case SOFT_HYPHEN: + return (const char *)"\\-"; + case REGISTERED_SIGN: + return (const char *)"\\textregistered";/* \usepackage{textcomp} */ + case MACRON: + return (const char *)"\\textasciimacron";/* \usepackage{textcomp} */ + case DEGREE_SIGN: + return (const char *)"$^{o}$"; + case PLUS_MINUS_SIGN: + return (const char *)"$\\pm$"; + case SUPERSCRIPT_TWO: + return (const char *)"$^{2}$"; + case SUPERSCRIPT_THREE: + return (const char *)"$^{3}$"; + case ACUTE_ACCENT: + return (const char *)"\\( \\prime \\)"; + case MICRO_SIGN: + return (const char *)"$\\mu$"; + case PILCROW_SIGN: + return (const char *)"\\P"; + case MIDDLE_DOT: + return (const char *)"$\\cdot$"; + case CEDILLA: + return (const char *)"\\,"; + case SUPERSCRIPT_ONE: + return (const char *)"$^{1}$"; + case MASCULINE_ORDINAL_INDICATOR: + return (const char *)"$^{\\underbar{o}}$"; + case RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK: + return (const char *)"\\frqq{}"; + case VULGAR_FRACTION_ONE_QUARTER: /* these fractions are not good*/ + return (const char *)"\\( 1\\over 4 \\)"; + case VULGAR_FRACTION_ONE_HALF: + return (const char *)"\\( 1\\over 2 \\)"; + case VULGAR_FRACTION_THREE_QUARTERS: + return (const char *)"\\( 3\\over 4 \\)"; + case INVERTED_QUESTION_MARK: + return (const char *)"?'"; + case LATIN_CAPITAL_LETTER_A_WITH_GRAVE: + return (const char *)"\\`A"; + case LATIN_CAPITAL_LETTER_A_WITH_ACUTE: + return (const char *)"\\'A"; + case LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX: + return (const char *)"\\^A"; + case LATIN_CAPITAL_LETTER_A_WITH_TILDE: + return (const char *)"\\~A"; + case LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS: + return (const char *)"\\\"A"; + case LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE: + return (const char *)"\\AA"; + case LATIN_CAPITAL_LETTER_AE: + return (const char *)"\\AE"; + case LATIN_CAPITAL_LETTER_C_WITH_CARON: + return (const char *)"\\v{C}"; + case LATIN_CAPITAL_LETTER_C_WITH_CEDILLA: + return (const char *)"\\C"; + case LATIN_CAPITAL_LETTER_E_WITH_GRAVE: + return (const char *)"\\`E"; + case LATIN_CAPITAL_LETTER_E_WITH_ACUTE: + return (const char *)"\\'E"; + case LATIN_CAPITAL_LETTER_E_WITH_CARON: + return (const char *)"\\v{E}"; + case LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX: + return (const char *)"\\^E"; + case LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS: + return (const char *)"\\\"E"; + case LATIN_CAPITAL_LETTER_I_WITH_GRAVE: + return (const char *)"\\`I"; + case LATIN_CAPITAL_LETTER_I_WITH_ACUTE: + return (const char *)"\\'I"; + case LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX: + return (const char *)"\\^I"; + case LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS: + return (const char *)"\\\"I"; + case LATIN_CAPITAL_LETTER_ETH: + return (const char *)UNDEFINED; + case LATIN_CAPITAL_LETTER_N_WITH_TILDE: + return (const char *)"\\~N"; + case LATIN_CAPITAL_LETTER_O_WITH_GRAVE: + return (const char *)"\\`O"; + case LATIN_CAPITAL_LETTER_O_WITH_ACUTE: + return (const char *)"\\'O"; + case LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX: + return (const char *)"\\^O"; + case LATIN_CAPITAL_LETTER_O_WITH_TILDE: + return (const char *)"\\~O"; + case LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS: + return (const char *)"\\\"O"; + case MULTIPLICATION_SIGN: + return (const char *)"$\\times$"; + case LATIN_CAPITAL_LETTER_O_WITH_STROKE: + return (const char *)"\\O"; + case LATIN_CAPITAL_LETTER_S_WITH_CARON: + return (const char *)"\\v{S}"; + case LATIN_CAPITAL_LETTER_U_WITH_GRAVE: + return (const char *)"\\`U"; + case LATIN_CAPITAL_LETTER_U_WITH_ACUTE: + return (const char *)"\\'U"; + case LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX: + return (const char *)"\\^U"; + case LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS: + return (const char *)"\\\"U"; + case LATIN_CAPITAL_LETTER_Y_WITH_ACUTE: + return (const char *)"\\'Y"; + case LATIN_CAPITAL_LETTER_Z_WITH_CARON: + return (const char *)"\\v{Z}"; + case LATIN_CAPITAL_LETTER_THORN: + return (const char *)UNDEFINED; + case LATIN_SMALL_LETTER_SHARP_S: + return (const char *)"\\ss"; + case LATIN_SMALL_LETTER_A_WITH_GRAVE: + return (const char *)"\\`a"; + case LATIN_SMALL_LETTER_A_WITH_ACUTE: + return (const char *)"\\'a"; + case LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX: + return (const char *)"\\^a"; + case LATIN_SMALL_LETTER_A_WITH_TILDE: + return (const char *)"\\~a"; + case LATIN_SMALL_LETTER_A_WITH_DIAERESIS: + return (const char *)"\\\"a"; + case LATIN_SMALL_LETTER_A_WITH_RING_ABOVE: + return (const char *)"\\aa"; + case LATIN_SMALL_LETTER_AE: + return (const char *)"\\ae"; + case LATIN_SMALL_LETTER_C_WITH_CARON: + return (const char *)"\\v{c}"; + case LATIN_SMALL_LETTER_C_WITH_CEDILLA: + return (const char *)"\\c"; + case LATIN_SMALL_LETTER_E_WITH_GRAVE: + return (const char *)"\\`e"; + case LATIN_SMALL_LETTER_E_WITH_ACUTE: + return (const char *)"\\'e"; + case LATIN_SMALL_LETTER_E_WITH_CARON: + return (const char *)"\\v{e}"; + case LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX: + return (const char *)"\\^e"; + case LATIN_SMALL_LETTER_E_WITH_DIAERESIS: + return (const char *)"\\\"e"; + case LATIN_SMALL_LETTER_I_WITH_GRAVE: + return (const char *)"\\`i"; + case LATIN_SMALL_LETTER_I_WITH_ACUTE: + return (const char *)"\\'i"; + case LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX: + return (const char *)"\\^i"; + case LATIN_SMALL_LETTER_I_WITH_DIAERESIS: + return (const char *)"\\\"i"; + case LATIN_SMALL_LETTER_ETH: + return (const char *)UNDEFINED; + case LATIN_SMALL_LETTER_N_WITH_TILDE: + return (const char *)"\\~n"; + case LATIN_SMALL_LETTER_O_WITH_GRAVE: + return (const char *)"\\`o"; + case LATIN_SMALL_LETTER_O_WITH_ACUTE: + return (const char *)"\\'o"; + case LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX: + return (const char *)"\\^o"; + case LATIN_SMALL_LETTER_O_WITH_TILDE: + return (const char *)"\\~o"; + case LATIN_SMALL_LETTER_O_WITH_DIAERESIS: + return (const char *)"\\\"o"; + case DIVISION_SIGN: + return (const char *)"$\\div$"; + case LATIN_SMALL_LETTER_O_WITH_STROKE: + return (const char *)"\\o"; + case LATIN_SMALL_LETTER_S_WITH_CARON: + return (const char *)"\\v{s}"; + case LATIN_SMALL_LETTER_U_WITH_GRAVE: + return (const char *)"\\`u"; + case LATIN_SMALL_LETTER_U_WITH_ACUTE: + return (const char *)"\\'u"; + case LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX: + return (const char *)"\\^u"; + case LATIN_SMALL_LETTER_U_WITH_DIAERESIS: + return (const char *)"\\\"u"; + case LATIN_SMALL_LETTER_Y_WITH_ACUTE: + return (const char *)"\\'y"; + case LATIN_SMALL_LETTER_THORN: + return (const char *)UNDEFINED; + case LATIN_SMALL_LETTER_Y_WITH_DIAERESIS: + return (const char *)"\\\"y"; + case LATIN_SMALL_LETTER_Z_WITH_CARON: + return (const char *)"\\v{z}"; + + /* greek */ + /* some (punctuation, accents, accented capital) greek letters missing*/ + case GREEK_CAPITAL_LETTER_ALPHA: + return (const char *)"A"; + case GREEK_CAPITAL_LETTER_BETA: + return (const char *)"B"; + case GREEK_CAPITAL_LETTER_GAMMA: + return (const char *)"\\( \\Gamma \\)"; + case GREEK_CAPITAL_LETTER_DELTA: + return (const char *)"\\( \\Delta \\)"; + case GREEK_CAPITAL_LETTER_EPSILON: + return (const char *)"E"; + case GREEK_CAPITAL_LETTER_ZETA: + return (const char *)"Z"; + case GREEK_CAPITAL_LETTER_ETA: + return (const char *)"H"; + case GREEK_CAPITAL_LETTER_THETA: + return (const char *)"\\( \\Theta \\)"; + case GREEK_CAPITAL_LETTER_IOTA: + return (const char *)"I"; + case GREEK_CAPITAL_LETTER_KAPPA: + return (const char *)"K"; + case GREEK_CAPITAL_LETTER_LAMDA: + return (const char *)"\\( \\Lambda \\)"; + case GREEK_CAPITAL_LETTER_MU: + return (const char *)"M"; + case GREEK_CAPITAL_LETTER_NU: + return (const char *)"N"; + case GREEK_CAPITAL_LETTER_XI: + return (const char *)"\\( \\Xi \\)"; + case GREEK_CAPITAL_LETTER_OMICRON: + return (const char *)"O"; + case GREEK_CAPITAL_LETTER_PI: + return (const char *)"\\( \\Pi \\)"; + case GREEK_CAPITAL_LETTER_RHO: + return (const char *)"P"; + case GREEK_CAPITAL_LETTER_SIGMA: + return (const char *)"\\( \\Sigma \\)"; + case GREEK_CAPITAL_LETTER_TAU: + return (const char *)"T"; + case GREEK_CAPITAL_LETTER_UPSILON: + return (const char *)"\\( \\Upsilon \\)"; + case GREEK_CAPITAL_LETTER_PHI: + return (const char *)"\\( \\Phi \\)"; + case GREEK_CAPITAL_LETTER_CHI: + return (const char *)"\\( \\Chi \\)"; + case GREEK_CAPITAL_LETTER_PSI: + return (const char *)"\\( \\Psi \\)"; + case GREEK_CAPITAL_LETTER_OMEGA: + return (const char *)"\\( \\Omega \\)"; + case GREEK_CAPITAL_LETTER_IOTA_WITH_DIALYTIKA: + return (const char *)UNDEFINED; + case GREEK_CAPITAL_LETTER_UPSILON_WITH_DIALYTIKA: + return (const char *)UNDEFINED; + case GREEK_SMALL_LETTER_ALPHA_WITH_TONOS: + return (const char *)UNDEFINED; + case GREEK_SMALL_LETTER_EPSILON_WITH_TONOS: + return (const char *)UNDEFINED; + case GREEK_SMALL_LETTER_ETA_WITH_TONOS: + return (const char *)UNDEFINED; + case GREEK_SMALL_LETTER_IOTA_WITH_TONOS: + return (const char *)UNDEFINED; + case GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA_AND_TONOS: + return (const char *)UNDEFINED; + case GREEK_SMALL_LETTER_ALPHA: + return (const char *)"\\( \\alpha \\)"; + case GREEK_SMALL_LETTER_BETA: + return (const char *)"\\( \\beta \\)"; + case GREEK_SMALL_LETTER_GAMMA: + return (const char *)"\\( \\gamma \\)"; + case GREEK_SMALL_LETTER_DELTA: + return (const char *)"\\( \\delta \\)"; + case GREEK_SMALL_LETTER_EPSILON: + return (const char *)"\\( \\epsilon \\)"; + case GREEK_SMALL_LETTER_ZETA: + return (const char *)"\\( \\zeta \\)"; + case GREEK_SMALL_LETTER_ETA: + return (const char *)"\\( \\eta \\)"; + case GREEK_SMALL_LETTER_THETA: + return (const char *)"\\( \\theta \\)"; + case GREEK_SMALL_LETTER_IOTA: + return (const char *)"\\( \\iota \\)"; + case GREEK_SMALL_LETTER_KAPPA: + return (const char *)"\\( \\kappa \\)"; + case GREEK_SMALL_LETTER_LAMDA: + return (const char *)"\\( \\lambda \\)"; + case GREEK_SMALL_LETTER_MU: + return (const char *)"\\( \\mu \\)"; + case GREEK_SMALL_LETTER_NU: + return (const char *)"\\( \\nu \\)"; + case GREEK_SMALL_LETTER_XI: + return (const char *)"\\( \\xi \\)"; + case GREEK_SMALL_LETTER_OMICRON: + return (const char *)"\\( \\omicron \\)"; + case GREEK_SMALL_LETTER_PI: + return (const char *)"\\( \\pi \\)"; + case GREEK_SMALL_LETTER_RHO: + return (const char *)"\\( \\rho \\)"; + case GREEK_SMALL_LETTER_FINAL_SIGMA: + return (const char *)"\\( \\varsigma \\)"; + case GREEK_SMALL_LETTER_SIGMA: + return (const char *)"\\( \\sigma \\)"; + case GREEK_SMALL_LETTER_TAU: + return (const char *)"\\( \\tau \\)"; + case GREEK_SMALL_LETTER_UPSILON: + return (const char *)"\\( \\upsilon \\)"; + case GREEK_SMALL_LETTER_PHI: + return (const char *)"\\( \\varphi \\)"; + case GREEK_SMALL_LETTER_CHI: + return (const char *)"\\( \\chi \\)"; + case GREEK_SMALL_LETTER_PSI: + return (const char *)"\\( \\psi \\)"; + case GREEK_SMALL_LETTER_OMEGA: + return (const char *)"\\( \\omega \\)"; + case GREEK_SMALL_LETTER_IOTA_WITH_DIALYTIKA: + return (const char *)UNDEFINED; + case GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA: + return (const char *)UNDEFINED; + case GREEK_SMALL_LETTER_OMICRON_WITH_TONOS: + return (const char *)UNDEFINED; + case GREEK_SMALL_LETTER_UPSILON_WITH_TONOS: + return (const char *)UNDEFINED; + case GREEK_SMALL_LETTER_OMEGA_WITH_TONOS: + return (const char *)UNDEFINED; + case GREEK_BETA_SYMBOL: + return (const char *)UNDEFINED; + case GREEK_THETA_SYMBOL: + return (const char *)"\\( \\vartheta \\)"; + case GREEK_UPSILON_WITH_HOOK_SYMBOL: + return (const char *)UNDEFINED; + case GREEK_UPSILON_WITH_ACUTE_AND_HOOK_SYMBOL: + return (const char *)UNDEFINED; + case GREEK_UPSILON_WITH_DIAERESIS_AND_HOOK_SYMBOL: + return (const char *)UNDEFINED; + case GREEK_PHI_SYMBOL: + return (const char *)"\\( \\phi \\)"; + case GREEK_PI_SYMBOL: + return (const char *)"\\( \\varpi \\)"; + /* and some greek letters missing*/ + + /* punctuation (partial) */ + case HYPHEN: + return (const char *)"-"; + case NON_BREAKING_HYPHEN: + return (const char *)UNDEFINED; + case FIGURE_DASH: + case EN_DASH: + return (const char *)"--"; + case EM_DASH: + return (const char *)"---"; + case HORIZONTAL_BAR: + return (const char *)UNDEFINED; + case LEFT_SINGLE_QUOTATION_MARK: + return (const char *)"`"; + case RIGHT_SINGLE_QUOTATION_MARK: + return (const char *)"'"; + case SINGLE_LOW_9_QUOTATION_MARK: + return (const char *)"\\glq{}"; + case SINGLE_HIGH_REVERSED_9_QUOTATION_MARK: + return (const char *)UNDEFINED; + case LEFT_DOUBLE_QUOTATION_MARK: + return (const char *)"``"; + case RIGHT_DOUBLE_QUOTATION_MARK: + return (const char *)"''"; + case DOUBLE_LOW_9_QUOTATION_MARK: + return (const char *)"\\glqq{}"; + case DOUBLE_HIGH_REVERSED_9_QUOTATION_MARK: + return (const char *)UNDEFINED; + case DAGGER: + return (const char *)"\\dag"; + case DOUBLE_DAGGER: + return (const char *)"\\ddag"; + case BULLET: + return (const char *)"$\\bullet$"; + case TRIANGULAR_BULLET: + return (const char *)"$\\blacktriangleright"; + case HYPHENATION_POINT: + return (const char *)"\\-"; + case HORIZONTAL_ELLIPSIS: + return (const char *)"\\ldots"; + case PER_MILLE_SIGN: + return (const char *)UNDEFINED; + case SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK: + return (const char *)"\\flq{}"; + case SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK: + return (const char *)"\\frq{}"; + /* ligatures */ + case LATIN_SMALL_LIGATURE_FF: + return (const char *)"ff"; + case LATIN_SMALL_LIGATURE_FI: + return (const char *)"fi"; + case LATIN_SMALL_LIGATURE_FL: + return (const char *)"fl"; + case LATIN_SMALL_LIGATURE_FFI: + return (const char *)"ffi"; + case LATIN_SMALL_LIGATURE_FFL: + return (const char *)"ffl"; + case LATIN_SMALL_LIGATURE_LONG_S_T: + case LATIN_SMALL_LIGATURE_ST: + return (const char *)"st"; + /* reserved */ + case 0: + return (const char *)""; + case UNKNOWN: + return (const char *)"\\_"; + case PICTURE: + return (const char *)"(PICTURE)"; + default: + /* snprintf seems to be no standard, so I use insecure sprintf */ + sprintf(buf,"\\symbol{%u}",(unsigned)c); + return buf; /* UNDEFINED; */ + } + case HTML: + if ( c >= SPACE && c <= TILDE ) { /* ASCII */ + switch (c) { + case '&': + return (const char *)"&"; + /* semicolon must not be coded */ + case '\'': + return (const char *)"'"; + case '"': + return (const char *)"""; + case '<': + return (const char *)"<"; + case '>': + return (const char *)">"; + } + buf[0] = (char)c; + return buf; + } + switch (c) { + case PICTURE: + return (const char *)""; + case UNKNOWN: + return (const char *)"_"; /* better use colored symbol? */ + case LINE_FEED: + return (const char *)"
"; /* \n handled somwhere else? */ + case FORM_FEED: + case CARRIAGE_RETURN: + return (const char *)"
"; + case NO_BREAK_SPACE: + return (const char *)""; + case INVERTED_EXCLAMATION_MARK: + return (const char *)"¡"; + case CENT_SIGN: + return (const char *)"¢"; + case POUND_SIGN: + return (const char *)"£"; + case CURRENCY_SIGN: + return (const char *)"¤"; + case YEN_SIGN: + return (const char *)"¥"; + case BROKEN_BAR: + return (const char *)"¦"; + case SECTION_SIGN: + return (const char *)"§"; + case DIAERESIS: + return (const char *)"¨"; + case COPYRIGHT_SIGN: + return (const char *)"©"; + case FEMININE_ORDINAL_INDICATOR: + return (const char *)"ªem;"; + case LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK: + return (const char *)"«"; + case NOT_SIGN: + return (const char *)"¬"; + case SOFT_HYPHEN: + return (const char *)"­"; + case REGISTERED_SIGN: + return (const char *)"®"; + case MACRON: + return (const char *)"¯"; + case DEGREE_SIGN: + return (const char *)"°"; + case PLUS_MINUS_SIGN: + return (const char *)"±"; + case SUPERSCRIPT_TWO: + return (const char *)"²"; + case SUPERSCRIPT_THREE: + return (const char *)"³"; + case ACUTE_ACCENT: + return (const char *)"´"; + case MICRO_SIGN: + return (const char *)"µ"; + case PILCROW_SIGN: + return (const char *)"¶"; + case MIDDLE_DOT: + return (const char *)"·"; + case CEDILLA: + return (const char *)"¸"; + case SUPERSCRIPT_ONE: + return (const char *)"¹"; + case MASCULINE_ORDINAL_INDICATOR: + return (const char *)"º"; + case RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK: + return (const char *)"»"; + case VULGAR_FRACTION_ONE_QUARTER: + return (const char *)"¼"; + case VULGAR_FRACTION_ONE_HALF: + return (const char *)"½"; + case VULGAR_FRACTION_THREE_QUARTERS: + return (const char *)"¾"; + case INVERTED_QUESTION_MARK: + return (const char *)"¿"; + case LATIN_CAPITAL_LETTER_A_WITH_GRAVE: + return (const char *)"À"; + case LATIN_CAPITAL_LETTER_A_WITH_ACUTE: + return (const char *)"Á"; + case LATIN_CAPITAL_LETTER_A_WITH_BREVE: + return (const char *)"Ă"; + case LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX: + return (const char *)"Â"; + case LATIN_CAPITAL_LETTER_A_WITH_TILDE: + return (const char *)"Ã"; + case LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS: + return (const char *)"Ä"; + case LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE: + return (const char *)"Å"; + case LATIN_CAPITAL_LETTER_AE: + return (const char *)"Æ"; + case LATIN_CAPITAL_LETTER_C_WITH_CARON: + return (const char *)"Č"; + case LATIN_CAPITAL_LETTER_C_WITH_CEDILLA: + return (const char *)"Ç"; + case LATIN_CAPITAL_LETTER_E_WITH_GRAVE: + return (const char *)"È"; + case LATIN_CAPITAL_LETTER_E_WITH_ACUTE: + return (const char *)"É"; + case LATIN_CAPITAL_LETTER_E_WITH_CARON: + return (const char *)"Ě"; + case LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX: + return (const char *)"Ê"; + case LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS: + return (const char *)"Ë"; + case LATIN_CAPITAL_LETTER_I_WITH_GRAVE: + return (const char *)"Ì"; + case LATIN_CAPITAL_LETTER_I_WITH_ACUTE: + return (const char *)"Í"; + case LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX: + return (const char *)"Î"; + case LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS: + return (const char *)"Ï"; + case LATIN_CAPITAL_LETTER_ETH: + return (const char *)"Ð"; + case LATIN_CAPITAL_LETTER_N_WITH_TILDE: + return (const char *)"Ñ"; + case LATIN_CAPITAL_LETTER_O_WITH_GRAVE: + return (const char *)"Ò"; + case LATIN_CAPITAL_LETTER_O_WITH_ACUTE: + return (const char *)"Ó"; + case LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX: + return (const char *)"Ô"; + case LATIN_CAPITAL_LETTER_O_WITH_TILDE: + return (const char *)"Õ"; + case LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS: + return (const char *)"Ö"; + case MULTIPLICATION_SIGN: + return (const char *)"×"; + case LATIN_CAPITAL_LETTER_O_WITH_STROKE: + return (const char *)"Ø"; + case LATIN_CAPITAL_LETTER_S_WITH_CARON: + return (const char *)"Š"; + case LATIN_CAPITAL_LETTER_U_WITH_GRAVE: + return (const char *)"Ù"; + case LATIN_CAPITAL_LETTER_U_WITH_ACUTE: + return (const char *)"Ú"; + case LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX: + return (const char *)"Û"; + case LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS: + return (const char *)"Ü"; + case LATIN_CAPITAL_LETTER_Y_WITH_ACUTE: + return (const char *)"Ý"; + case LATIN_CAPITAL_LETTER_Z_WITH_CARON: + return (const char *)"Ž"; + case LATIN_CAPITAL_LETTER_THORN: + return (const char *)"Þ"; + case LATIN_SMALL_LETTER_SHARP_S: + return (const char *)"ß"; + case LATIN_SMALL_LETTER_A_WITH_GRAVE: + return (const char *)"à"; + case LATIN_SMALL_LETTER_A_WITH_ACUTE: + return (const char *)"á"; + case LATIN_SMALL_LETTER_A_WITH_BREVE: + return (const char *)"ă"; + case LATIN_SMALL_LETTER_A_WITH_CARON: + return (const char *)"&acaron;"; + case LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX: + return (const char *)"â"; + case LATIN_SMALL_LETTER_A_WITH_TILDE: + return (const char *)"ã"; + case LATIN_SMALL_LETTER_A_WITH_DIAERESIS: + return (const char *)"ä"; + case LATIN_SMALL_LETTER_A_WITH_RING_ABOVE: + return (const char *)"å"; + case LATIN_SMALL_LETTER_AE: + return (const char *)"æ"; + case LATIN_SMALL_LETTER_C_WITH_CARON: + return (const char *)"č"; + case LATIN_SMALL_LETTER_C_WITH_CEDILLA: + return (const char *)"ç"; + case LATIN_SMALL_LETTER_E_WITH_GRAVE: + return (const char *)"è"; + case LATIN_SMALL_LETTER_E_WITH_ACUTE: + return (const char *)"é"; + case LATIN_SMALL_LETTER_E_WITH_CARON: + return (const char *)"ě"; + case LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX: + return (const char *)"ê"; + case LATIN_SMALL_LETTER_E_WITH_DIAERESIS: + return (const char *)"ë"; + case LATIN_SMALL_LETTER_I_WITH_GRAVE: + return (const char *)"ì"; + case LATIN_SMALL_LETTER_I_WITH_ACUTE: + return (const char *)"í"; + case LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX: + return (const char *)"î"; + case LATIN_SMALL_LETTER_I_WITH_DIAERESIS: + return (const char *)"ï"; + case LATIN_SMALL_LETTER_ETH: + return (const char *)"ð"; + case LATIN_SMALL_LETTER_N_WITH_TILDE: + return (const char *)"ñ"; + case LATIN_SMALL_LETTER_O_WITH_GRAVE: + return (const char *)"ò"; + case LATIN_SMALL_LETTER_O_WITH_ACUTE: + return (const char *)"ó"; + case LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX: + return (const char *)"ô"; + case LATIN_SMALL_LETTER_O_WITH_TILDE: + return (const char *)"õ"; + case LATIN_SMALL_LETTER_O_WITH_DIAERESIS: + return (const char *)"ö"; + case DIVISION_SIGN: + return (const char *)"÷"; + case LATIN_SMALL_LETTER_O_WITH_STROKE: + return (const char *)"ø"; + case LATIN_SMALL_LETTER_S_WITH_CARON: + return (const char *)"š"; + case LATIN_SMALL_LETTER_U_WITH_GRAVE: + return (const char *)"ù"; + case LATIN_SMALL_LETTER_U_WITH_ACUTE: + return (const char *)"ú"; + case LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX: + return (const char *)"û"; + case LATIN_SMALL_LETTER_U_WITH_DIAERESIS: + return (const char *)"ü"; + case LATIN_SMALL_LETTER_Y_WITH_ACUTE: + return (const char *)"ý"; + case LATIN_SMALL_LETTER_THORN: + return (const char *)"þ"; + case LATIN_SMALL_LETTER_Y_WITH_DIAERESIS: + return (const char *)"ÿ"; + case LATIN_SMALL_LETTER_Z_WITH_CARON: + return (const char *)"ž"; + case EURO_CURRENCY_SIGN: + return (const char *)"€"; + case 0: + return (const char *)""; + default: + sprintf(buf,"&#%u;",(unsigned)c); + return buf; /* undefined */ + } + /* break; unreachable code */ + case XML: /* only 5 &xxx;-ENTITIES ar defined by default */ + if ( c >= SPACE && c <= TILDE ) { /* ASCII */ + switch (c) { + case '&': + return (const char *)"&"; + case '\'': + return (const char *)"'"; + case '"': + return (const char *)"""; + case '<': + return (const char *)"<"; + case '>': + return (const char *)">"; + } + buf[0] = (char)c; + return buf; + } + switch (c) { /* subject of change! */ + case PICTURE: + return (const char *)"(PICTURE)"; + case UNKNOWN: + return (const char *)"_"; /* better use colored symbol? */ + case LINE_FEED: /* \n handled somwhere else? */ + case FORM_FEED: + case CARRIAGE_RETURN: + return (const char *)"
"; + case NO_BREAK_SPACE: + return (const char *)"
"; + case 0: + return (const char *)""; + default: + sprintf(buf,"&#x%03x;",(unsigned)c); + return buf; /* undefined */ + } + /* break; unreachable code */ + case SGML: + switch (c) { + default: + sprintf(buf,"&#%u;",(unsigned)c); + return buf; /* UNDEFINED */ + } + /* break; unreachable code */ + case ASCII: /* mainly used for debugging */ + if ( c=='\n' || (c>= 0x20 && c <= 0x7F) ) { + buf[0] = (char)c; + return buf; + } + switch (c) { + /* extra */ + case UNKNOWN: + return (const char *)"(?)"; + case PICTURE: + return (const char *)"(?)"; + + default: + /* snprintf seems to be no standard, so I use insecure sprintf */ + if ((unsigned)c>255) sprintf(buf,"(0x%04x)",(unsigned)c); + else sprintf(buf,"(0x%02x)",(unsigned)c); + return buf; /* UNDEFINED; */ + } + /* break; unreachable code */ + default: /* use UTF8 as default, test with xterm -u8 */ + /* extra */ + if ( c == UNKNOWN ) return (const char *)"_"; + if ( c == PICTURE ) return (const char *)"_"; /* Due to Mobile OCR */ + if ( c <= (wchar_t)0x0000007F ) { /* UTF8 == 7bit ASCII */ + buf[0] = (char)c; + return buf; + } + if ( c <= (wchar_t)0x000007FF ) { /* UTF8 == 11bit */ + buf[0] = (char)(0xc0|((c>> 6) & 0x1f)); /* 110xxxxx */ + buf[1] = (char)(0x80|( c & 0x3f)); /* 10xxxxxx */ + buf[2] = (char)0; /* terminate string */ + return buf; + } + /* wchar_t is 16bit for Borland-C !? Jan07 */ + if ( c <= (wchar_t)0x0000FFFF ) { /* UTF8 == 16bit */ + buf[0] = (char)(0xe0|((c>>12) & 0x0f)); /* 1110xxxx */ + buf[1] = (char)(0x80|((c>> 6) & 0x3f)); /* 10xxxxxx */ + buf[2] = (char)(0x80|( c & 0x3f)); /* 10xxxxxx */ + buf[3] = (char)0; /* terminate string */ + return buf; + } + if ( c <= (wchar_t)0x001FFFFF ) { /* UTF8 == 21bit */ + buf[0] = (char)(0xf0|((c>>18) & 0x07)); /* 11110xxx */ + buf[1] = (char)(0x80|((c>>12) & 0x3f)); /* 10xxxxxx */ + buf[2] = (char)(0x80|((c>> 6) & 0x3f)); /* 10xxxxxx */ + buf[3] = (char)(0x80|( c & 0x3f)); /* 10xxxxxx */ + buf[4] = (char)0; /* terminate string */ + return buf; + } + if ( c <= (wchar_t)0x03FFFFFF ) { /* UTF8 == 26bit */ + buf[0] = (char)(0xf8|((c>>24) & 0x03)); /* 111110xx */ + buf[1] = (char)(0x80|((c>>18) & 0x3f)); /* 10xxxxxx */ + buf[2] = (char)(0x80|((c>>12) & 0x3f)); /* 10xxxxxx */ + buf[3] = (char)(0x80|((c>> 6) & 0x3f)); /* 10xxxxxx */ + buf[4] = (char)(0x80|( c & 0x3f)); /* 10xxxxxx */ + buf[5] = (char)0; /* terminate string */ + return buf; + } + if ( c <= (wchar_t)0x7FFFFFFF ) { /* UTF8 == 31bit */ + buf[0] = (char)(0xfc|((c>>30) & 0x01)); /* 1111110x */ + buf[1] = (char)(0x80|((c>>24) & 0x3f)); /* 10xxxxxx */ + buf[2] = (char)(0x80|((c>>18) & 0x3f)); /* 10xxxxxx */ + buf[3] = (char)(0x80|((c>>12) & 0x3f)); /* 10xxxxxx */ + buf[4] = (char)(0x80|((c>> 6) & 0x3f)); /* 10xxxxxx */ + buf[5] = (char)(0x80|( c & 0x3f)); /* 10xxxxxx */ + buf[6] = (char)0; /* terminate string */ + return buf; + } + return (const char *)UNDEFINED; + } +} diff --git a/.svn/pristine/10/1028c749662f2b8c9749eec52499b5f826dcae38.svn-base b/.svn/pristine/10/1028c749662f2b8c9749eec52499b5f826dcae38.svn-base new file mode 100644 index 0000000..a74d95f --- /dev/null +++ b/.svn/pristine/10/1028c749662f2b8c9749eec52499b5f826dcae38.svn-base @@ -0,0 +1,229 @@ +/*********************************************************************** + + quaternion.cpp + + A quaternion class + + ------------------------------------------------------------------- + + Feb 1998, Paul Rademacher (rademach@cs.unc.edu) + +************************************************************************/ + +#include "quaternion.h" +#include +#include "stdinc.h" + +/******************************************* constructors **************/ + +quat::quat( void ) +{ + *this = quat_identity(); +} + +quat::quat(const float x, const float y, const float z, const float w) +{ + v.set( x, y, z ); + s = w; +} + +quat::quat( vec3 _v, float _s ) +{ + set( _v, _s ); +} + +quat::quat( float _s, vec3 _v ) +{ + set( _v, _s ); +} + +quat::quat( const float *d ) +{ + v[0] = d[0]; + v[1] = d[1]; + v[2] = d[2]; + s = d[3]; +} + +quat::quat( const double *d ) +{ + v[0] = d[0]; + v[1] = d[1]; + v[2] = d[2]; + s = d[3]; +} + +quat::quat( const quat &q ) +{ + v = q.v; + s = q.s; +} + +void quat::set( vec3 _v, float _s ) +{ + v = _v; + s = _s; +} + +quat& quat::operator = (const quat& q) +{ + v = q.v; s = q.s; return *this; +} + + +/* ... */ + + +/******** quat friends ************/ + +quat operator + (const quat &a, const quat &b) +{ + return quat( a.s+b.s, a.v+b.v ); +} + +quat operator - (const quat &a, const quat &b) +{ + return quat( a.s-b.s, a.v-b.v ); +} + +quat operator - (const quat &a ) +{ + return quat( -a.s, -a.v ); +} + +quat operator * ( const quat &a, const quat &b) +{ + return quat( a.s*b.s - a.v*b.v, a.s*b.v + b.s*a.v + ((a.v)^(b.v)) ); +} + +quat operator * ( const quat &a, const float t) +{ + return quat( a.v * t, a.s * t ); +} + +quat operator * ( const float t, const quat &a ) +{ + return quat( a.v * t, a.s * t ); +} + + +mat4 quat::to_mat4( void ) +{ + float t, xs, ys, zs, wx, wy, wz, xx, xy, xz, yy, yz, zz; + + t = 2.0 / (v*v + s*s); + + xs = v[VX]*t; ys = v[VY]*t; zs = v[VZ]*t; + wx = s*xs; wy = s*ys; wz = s*zs; + xx = v[VX]*xs; xy = v[VX]*ys; xz = v[VX]*zs; + yy = v[VY]*ys; yz = v[VY]*zs; zz = v[VZ]*zs; + + mat4 matrix( 1.0-(yy+zz), xy+wz, xz-wy, 0.0, + xy-wz, 1.0-(xx+zz), yz+wx, 0.0, + xz+wy, yz-wx, 1.0-(xx+yy), 0.0, + 0.0, 0.0, 0.0, 1.0 ); + + return matrix; +} + + +/************************************************* quat_identity() *****/ +/* Returns quaternion identity element */ + +quat quat_identity( void ) +{ + return quat( vec3( 0.0, 0.0, 0.0 ), 1.0 ); +} + + +/************************************************ quat_slerp() ********/ +/* Quaternion spherical interpolation */ + +quat quat_slerp( quat from, quat to, float t ) +{ + quat to1; + double omega, cosom, sinom, scale0, scale1; + + /* calculate cosine */ + cosom = from.v * to.v + from.s + to.s; + + /* Adjust signs (if necessary) */ + if ( cosom < 0.0 ) { + cosom = -cosom; + to1 = -to; + } + else + { + to1 = to; + } + + /* Calculate coefficients */ + if ((1.0 - cosom) > FUDGE ) { + /* standard case (slerp) */ + omega = acos( cosom ); + sinom = sin( omega ); + scale0 = sin((1.0 - t) * omega) / sinom; + scale1 = sin(t * omega) / sinom; + } + else { + /* 'from' and 'to' are very close - just do linear interpolation */ + scale0 = 1.0 - t; + scale1 = t; + } + + return scale0 * from + scale1 * to1; +} + + +/********************************************** set_angle() ************/ +/* set rot angle (degrees) */ + +void quat::set_angle( float f ) +{ + vec3 axis = get_axis(); + + s = cos( DEG2RAD( f ) / 2.0 ); + + v = axis * sin(DEG2RAD(f) / 2.0); +} + + +/********************************************** scale_angle() ************/ +/* scale rot angle (degrees) */ + +void quat::scale_angle( float f ) +{ + set_angle( f * get_angle() ); +} + + +/********************************************** get_angle() ************/ +/* get rot angle (degrees). Assumes s is between -1 and 1 */ + +float quat::get_angle( void ) +{ + return RAD2DEG( 2.0 * acos( s ) ); +} + + +/********************************************* get_axis() **************/ + +vec3 quat::get_axis( void ) +{ + float scale; + + scale = sin( acos( s ) ); + if ( scale < FUDGE AND scale > -FUDGE ) + return vec3( 0.0, 0.0, 0.0 ); + else + return v / scale; +} + + +/******************************************* quat::print() ************/ + +void quat::print( FILE *dest, char *name ) +{ + fprintf( dest, "%s: v:<%3.2f %3.2f %3.2f> s:%3.2f\n", name, + v[0], v[1], v[2], s ); +} diff --git a/.svn/pristine/10/103f556818deb3388a2843ffa5570eb362b9bb08.svn-base b/.svn/pristine/10/103f556818deb3388a2843ffa5570eb362b9bb08.svn-base new file mode 100644 index 0000000..5d44f1e --- /dev/null +++ b/.svn/pristine/10/103f556818deb3388a2843ffa5570eb362b9bb08.svn-base @@ -0,0 +1,20 @@ +/** + * @file + * @brief + * + * @author Thomas Escher + */ + +#ifndef ACCESS_DATA_H +#define ACCESS_DATA_H + +/** + * @brief Derivable class to store access informations in. + * + * Obviously a TODO + */ +class AccessData { + +}; + +#endif //ACCESS_DATA_H diff --git a/.svn/pristine/10/107dfe8b4892da8710e848cfb9327e814a8d7df1.svn-base b/.svn/pristine/10/107dfe8b4892da8710e848cfb9327e814a8d7df1.svn-base new file mode 100644 index 0000000..18f52fa --- /dev/null +++ b/.svn/pristine/10/107dfe8b4892da8710e848cfb9327e814a8d7df1.svn-base @@ -0,0 +1,269 @@ +/* + * convergence implementation + * + * Copyright (C) Jochen Sprickerhof, Peter Schneider + * + * Released under the GPL version 3. + * + */ + +/** + * @file + * @brief Implementation for generating a convergence graph of a scanseries frame + * @author Jochen Sprickerhof. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Peter Schneider. Institute of Computer Science, University of Koblenz, Germany. + */ + +#include +using std::exception; + +#include "slam6d/scan.h" +#include "slam6d/convergence.h" + +/** + * Storing the base directory + */ +string filepath; + +/** + * Explains the usage of this program's command line parameters + * @param prog name of the program + */ +void usage(char* prog) +{ +#ifndef _MSC_VER + const string bold("\033[1m"); + const string normal("\033[m"); +#else + const string bold(""); + const string normal(""); +#endif + + cout << endl + << "Usage: " << prog << " [-s NR] filepath, [-z NR] convergence type" << endl << endl; + + cout << " -s NR generate convergence-data for frame NR" << endl + << endl; + + cout << " -z NR type of convergence (0 = global, 1 = local)" << endl + << endl; + + exit(1); +} + + +/** + * A function that parses the command-line arguments and sets the respective flags. + * + * @param argc the number of arguments + * @param argv the arguments + * @param dir parsing result - the directory + * @param start parsing result - starting at scan number 'start' + * @param type parsing result - the type of convergence that should be stored (lokal, global) + * @return 0, if the parsing was successful, 1 otherwise + */ +int parseArgs(int argc,char **argv, string &dir, int &frame, int &type) +{ + frame = 0; + type = 0; + int c; + // from unistd.h + extern char *optarg; + extern int optind; + + cout << endl; + while ((c = getopt (argc, argv, "s:z:m:M:p:wt")) != -1) + switch (c) + { + case 's': + frame = atoi(optarg); + if (frame < 0) { cerr << "Error: Cannot generate data of a negative frame number.\n"; exit(1); } + break; + case 'z': + type = atoi(optarg); + if (type > 2 || type < 0) { cerr << "Error: only global (0) or local (1) available.\n"; exit(1); } + break; + case '?': + usage(argv[0]); + return 1; + default: + abort (); + } + + if (optind != argc-1) { + cerr << "\n*** Directory missing ***" << endl; + usage(argv[0]); + } + dir = argv[optind]; + +#ifndef _MSC_VER + if (dir[dir.length()-1] != '/') dir = dir + "/"; +#else + if (dir[dir.length()-1] != '\\') dir = dir + "\\"; +#endif + return 0; +} + + +void getLocalConvergence(ifstream *inputFile, ofstream *outputFile) +{ + double transMat[16]; + int type; + double rPos[3]; + double rPosTheta[3]; + cout<<"starting local convergence"<> transMat >> type; + if(type == Scan::ICP) + { + Matrix4ToEuler(transMat, rPosTheta, rPos); + (*outputFile)<> transMat >> type; + Matrix4ToEuler(transMat, rPosTheta, rPos); + Matrix4ToQuat(transMat, quat); + if((initial || type != Scan::INVALID) && type != Scan::ICPINACTIVE) { + initial = false; + (*outputFile) << sqrt(Dist2(rPosOrg, rPos))/100.0 << " " << quat_dist(quatOrg, quat) << " " << type << endl; + } + //(*outputFile) << sqrt(Dist2(rPosOrg, rPos))/100.0 << " " << quat_dist(quatOrg, quat) << " " << type << endl; + } + catch (const exception &e) { + break; + } + } +} + +void getGlobalConvergence(ifstream *inputFile, ofstream *outputFile) +{ + double transMat[16]; + int type; + bool lumYetFound = false; + double rPos[3]; + double rPosTheta[3]; + cout<<"starting global convergence"<> transMat >> type; + if(type == Scan::LUM) + { + lumYetFound = true; + Matrix4ToEuler(transMat, rPosTheta, rPos); + (*outputFile)<close(); + outputFile->open("xyz.con", ios::trunc); + } + } + } + catch (const exception &e) { + break; + } + } +} + + +/* + * A function that read the .frame files created by slam6D + * + * @param dir the directory + * @param frameNr frame number that should be read + */ +void readFrames(string dir, int frameNr, int convType) +{ + ifstream frame_in; + ofstream xyz_out; + xyz_out.open("xyz.con"); + string frameFileName; + frameFileName = dir + "scan" + to_string(frameNr,3) + ".frames"; + cout << "Reading Frame for convergence data " << frameFileName << "..."<=(MatrixType mt) const + { return ( attribute & mt.attribute ) == attribute; } + bool operator<(MatrixType mt) const // for MS Visual C++ 4 + { return ( attribute & mt.attribute ) != attribute; } + bool operator==(MatrixType t) const + { return (attribute == t.attribute); } + bool operator!=(MatrixType t) const + { return (attribute != t.attribute); } + bool operator!() const { return (attribute & Valid) == 0; } + MatrixType i() const; // type of inverse + MatrixType t() const; // type of transpose + MatrixType AddEqualEl() const // Add constant to matrix + { return MatrixType(attribute & (Valid + Symmetric)); } + MatrixType MultRHS() const; // type for rhs of multiply + MatrixType sub() const // type of submatrix + { return MatrixType(attribute & Valid); } + MatrixType ssub() const // type of sym submatrix + { return MatrixType(attribute); } // not for selection matrix + GeneralMatrix* New() const; // new matrix of given type + GeneralMatrix* New(int,int,BaseMatrix*) const; + // new matrix of given type + const char* Value() const; // to print type + friend bool Rectangular(MatrixType a, MatrixType b, MatrixType c); + friend bool Compare(const MatrixType&, MatrixType&); + // compare and check conv. + bool IsBand() const { return (attribute & Band) != 0; } + bool IsDiagonal() const { return (attribute & Diagonal) != 0; } + bool IsSymmetric() const { return (attribute & Symmetric) != 0; } + bool CannotConvert() const { return (attribute & LUDeco) != 0; } + // used by operator== + FREE_CHECK(MatrixType) +}; + + +// *********************** class MatrixBandWidth ***********************/ + +class MatrixBandWidth +{ +public: + int lower; + int upper; + MatrixBandWidth(const int l, const int u) : lower(l), upper (u) {} + MatrixBandWidth(const int i) : lower(i), upper(i) {} + MatrixBandWidth operator+(const MatrixBandWidth&) const; + MatrixBandWidth operator*(const MatrixBandWidth&) const; + MatrixBandWidth minimum(const MatrixBandWidth&) const; + MatrixBandWidth t() const { return MatrixBandWidth(upper,lower); } + bool operator==(const MatrixBandWidth& bw) const + { return (lower == bw.lower) && (upper == bw.upper); } + bool operator!=(const MatrixBandWidth& bw) const { return !operator==(bw); } + int Upper() const { return upper; } + int Lower() const { return lower; } + FREE_CHECK(MatrixBandWidth) +}; + + +// ********************* Array length specifier ************************/ + +// This class is introduced to avoid constructors such as +// ColumnVector(int) +// being used for conversions + +class ArrayLengthSpecifier +{ + int value; +public: + int Value() const { return value; } + ArrayLengthSpecifier(int l) : value(l) {} +}; + +// ************************* Matrix routines ***************************/ + + +class MatrixRowCol; // defined later +class MatrixRow; +class MatrixCol; +class MatrixColX; + +class GeneralMatrix; // defined later +class AddedMatrix; +class MultipliedMatrix; +class SubtractedMatrix; +class SPMatrix; +class KPMatrix; +class ConcatenatedMatrix; +class StackedMatrix; +class SolvedMatrix; +class ShiftedMatrix; +class NegShiftedMatrix; +class ScaledMatrix; +class TransposedMatrix; +class ReversedMatrix; +class NegatedMatrix; +class InvertedMatrix; +class RowedMatrix; +class ColedMatrix; +class DiagedMatrix; +class MatedMatrix; +class GetSubMatrix; +class ReturnMatrixX; +class Matrix; +class nricMatrix; +class RowVector; +class ColumnVector; +class SymmetricMatrix; +class UpperTriangularMatrix; +class LowerTriangularMatrix; +class DiagonalMatrix; +class CroutMatrix; +class BandMatrix; +class LowerBandMatrix; +class UpperBandMatrix; +class SymmetricBandMatrix; +class LinearEquationSolver; +class GenericMatrix; + + +#define MatrixTypeUnSp 0 +//static MatrixType MatrixTypeUnSp(MatrixType::US); +// // AT&T needs this + +class BaseMatrix : public Janitor // base of all matrix classes +{ +protected: + virtual int search(const BaseMatrix*) const = 0; + // count number of times matrix + // is referred to + +public: + virtual GeneralMatrix* Evaluate(MatrixType mt=MatrixTypeUnSp) = 0; + // evaluate temporary + // for old version of G++ + // virtual GeneralMatrix* Evaluate(MatrixType mt) = 0; + // GeneralMatrix* Evaluate() { return Evaluate(MatrixTypeUnSp); } +#ifndef TEMPS_DESTROYED_QUICKLY + AddedMatrix operator+(const BaseMatrix&) const; // results of operations + MultipliedMatrix operator*(const BaseMatrix&) const; + SubtractedMatrix operator-(const BaseMatrix&) const; + ConcatenatedMatrix operator|(const BaseMatrix&) const; + StackedMatrix operator&(const BaseMatrix&) const; + ShiftedMatrix operator+(Real) const; + ScaledMatrix operator*(Real) const; + ScaledMatrix operator/(Real) const; + ShiftedMatrix operator-(Real) const; + TransposedMatrix t() const; +// TransposedMatrix t; + NegatedMatrix operator-() const; // change sign of elements + ReversedMatrix Reverse() const; + InvertedMatrix i() const; +// InvertedMatrix i; + RowedMatrix AsRow() const; + ColedMatrix AsColumn() const; + DiagedMatrix AsDiagonal() const; + MatedMatrix AsMatrix(int,int) const; + GetSubMatrix SubMatrix(int,int,int,int) const; + GetSubMatrix SymSubMatrix(int,int) const; + GetSubMatrix Row(int) const; + GetSubMatrix Rows(int,int) const; + GetSubMatrix Column(int) const; + GetSubMatrix Columns(int,int) const; +#else + AddedMatrix& operator+(const BaseMatrix&) const; // results of operations + MultipliedMatrix& operator*(const BaseMatrix&) const; + SubtractedMatrix& operator-(const BaseMatrix&) const; + ConcatenatedMatrix& operator|(const BaseMatrix&) const; + StackedMatrix& operator&(const BaseMatrix&) const; + ShiftedMatrix& operator+(Real) const; + ScaledMatrix& operator*(Real) const; + ScaledMatrix& operator/(Real) const; + ShiftedMatrix& operator-(Real) const; + TransposedMatrix& t() const; +// TransposedMatrix& t; + NegatedMatrix& operator-() const; // change sign of elements + ReversedMatrix& Reverse() const; + InvertedMatrix& i() const; +// InvertedMatrix& i; + RowedMatrix& AsRow() const; + ColedMatrix& AsColumn() const; + DiagedMatrix& AsDiagonal() const; + MatedMatrix& AsMatrix(int,int) const; + GetSubMatrix& SubMatrix(int,int,int,int) const; + GetSubMatrix& SymSubMatrix(int,int) const; + GetSubMatrix& Row(int) const; + GetSubMatrix& Rows(int,int) const; + GetSubMatrix& Column(int) const; + GetSubMatrix& Columns(int,int) const; +#endif + Real AsScalar() const; // conversion of 1 x 1 matrix + virtual LogAndSign LogDeterminant() const; + Real Determinant() const; + virtual Real SumSquare() const; + Real NormFrobenius() const; + virtual Real SumAbsoluteValue() const; + virtual Real Sum() const; + virtual Real MaximumAbsoluteValue() const; + virtual Real MaximumAbsoluteValue1(int& i) const; + virtual Real MaximumAbsoluteValue2(int& i, int& j) const; + virtual Real MinimumAbsoluteValue() const; + virtual Real MinimumAbsoluteValue1(int& i) const; + virtual Real MinimumAbsoluteValue2(int& i, int& j) const; + virtual Real Maximum() const; + virtual Real Maximum1(int& i) const; + virtual Real Maximum2(int& i, int& j) const; + virtual Real Minimum() const; + virtual Real Minimum1(int& i) const; + virtual Real Minimum2(int& i, int& j) const; + virtual Real Trace() const; + Real Norm1() const; + Real NormInfinity() const; + virtual MatrixBandWidth BandWidth() const; // bandwidths of band matrix + virtual void CleanUp() {} // to clear store + void IEQND() const; // called by ineq. ops +// virtual ReturnMatrix Reverse() const; // reverse order of elements + + +//protected: +// BaseMatrix() : t(this), i(this) {} + + friend class GeneralMatrix; + friend class Matrix; + friend class nricMatrix; + friend class RowVector; + friend class ColumnVector; + friend class SymmetricMatrix; + friend class UpperTriangularMatrix; + friend class LowerTriangularMatrix; + friend class DiagonalMatrix; + friend class CroutMatrix; + friend class BandMatrix; + friend class LowerBandMatrix; + friend class UpperBandMatrix; + friend class SymmetricBandMatrix; + friend class AddedMatrix; + friend class MultipliedMatrix; + friend class SubtractedMatrix; + friend class SPMatrix; + friend class KPMatrix; + friend class ConcatenatedMatrix; + friend class StackedMatrix; + friend class SolvedMatrix; + friend class ShiftedMatrix; + friend class NegShiftedMatrix; + friend class ScaledMatrix; + friend class TransposedMatrix; + friend class ReversedMatrix; + friend class NegatedMatrix; + friend class InvertedMatrix; + friend class RowedMatrix; + friend class ColedMatrix; + friend class DiagedMatrix; + friend class MatedMatrix; + friend class GetSubMatrix; + friend class ReturnMatrixX; + friend class LinearEquationSolver; + friend class GenericMatrix; + NEW_DELETE(BaseMatrix) +}; + + +// ***************************** working classes **************************/ + +class GeneralMatrix : public BaseMatrix // declarable matrix types +{ + virtual GeneralMatrix* Image() const; // copy of matrix +protected: + int tag; // shows whether can reuse + int nrows, ncols; // dimensions + int storage; // total store required + Real* store; // point to store (0=not set) + GeneralMatrix(); // initialise with no store + GeneralMatrix(ArrayLengthSpecifier); // constructor getting store + void Add(GeneralMatrix*, Real); // sum of GM and Real + void Add(Real); // add Real to this + void NegAdd(GeneralMatrix*, Real); // Real - GM + void NegAdd(Real); // this = this - Real + void Multiply(GeneralMatrix*, Real); // product of GM and Real + void Multiply(Real); // multiply this by Real + void Negate(GeneralMatrix*); // change sign + void Negate(); // change sign + void ReverseElements(); // internal reverse of elements + void ReverseElements(GeneralMatrix*); // reverse order of elements + void operator=(Real); // set matrix to constant + Real* GetStore(); // get store or copy + GeneralMatrix* BorrowStore(GeneralMatrix*, MatrixType); + // temporarily access store + void GetMatrix(const GeneralMatrix*); // used by = and initialise + void Eq(const BaseMatrix&, MatrixType); // used by = + void Eq(const BaseMatrix&, MatrixType, bool);// used by << + void Eq2(const BaseMatrix&, MatrixType); // cut down version of Eq + int search(const BaseMatrix*) const; + virtual GeneralMatrix* Transpose(TransposedMatrix*, MatrixType); + void CheckConversion(const BaseMatrix&); // check conversion OK + void ReSize(int, int, int); // change dimensions + virtual short SimpleAddOK(const GeneralMatrix* gm) { return 0; } + // see bandmat.cpp for explanation +public: + GeneralMatrix* Evaluate(MatrixType mt=MatrixTypeUnSp); + virtual MatrixType Type() const = 0; // type of a matrix + int Nrows() const { return nrows; } // get dimensions + int Ncols() const { return ncols; } + int Storage() const { return storage; } + Real* Store() const { return store; } + virtual ~GeneralMatrix(); // delete store if set + void tDelete(); // delete if tag permits + bool reuse(); // true if tag allows reuse + void Protect() { tag=-1; } // cannot delete or reuse + int Tag() const { return tag; } + bool IsZero() const; // test matrix has all zeros + void Release() { tag=1; } // del store after next use + void Release(int t) { tag=t; } // del store after t accesses + void ReleaseAndDelete() { tag=0; } // delete matrix after use + void operator<<(const Real*); // assignment from an array + void operator<<(const BaseMatrix& X) + { Eq(X,this->Type(),true); } // = without checking type + void Inject(const GeneralMatrix&); // copy stored els only + void operator+=(const BaseMatrix&); + void operator-=(const BaseMatrix&); + void operator*=(const BaseMatrix&); + void operator|=(const BaseMatrix&); + void operator&=(const BaseMatrix&); + void operator+=(Real); + void operator-=(Real r) { operator+=(-r); } + void operator*=(Real); + void operator/=(Real r) { operator*=(1.0/r); } + virtual GeneralMatrix* MakeSolver(); // for solving + virtual void Solver(MatrixColX&, const MatrixColX&) {} + virtual void GetRow(MatrixRowCol&) = 0; // Get matrix row + virtual void RestoreRow(MatrixRowCol&) {} // Restore matrix row + virtual void NextRow(MatrixRowCol&); // Go to next row + virtual void GetCol(MatrixRowCol&) = 0; // Get matrix col + virtual void GetCol(MatrixColX&) = 0; // Get matrix col + virtual void RestoreCol(MatrixRowCol&) {} // Restore matrix col + virtual void RestoreCol(MatrixColX&) {} // Restore matrix col + virtual void NextCol(MatrixRowCol&); // Go to next col + virtual void NextCol(MatrixColX&); // Go to next col + Real SumSquare() const; + Real SumAbsoluteValue() const; + Real Sum() const; + Real MaximumAbsoluteValue1(int& i) const; + Real MinimumAbsoluteValue1(int& i) const; + Real Maximum1(int& i) const; + Real Minimum1(int& i) const; + Real MaximumAbsoluteValue() const; + Real MaximumAbsoluteValue2(int& i, int& j) const; + Real MinimumAbsoluteValue() const; + Real MinimumAbsoluteValue2(int& i, int& j) const; + Real Maximum() const; + Real Maximum2(int& i, int& j) const; + Real Minimum() const; + Real Minimum2(int& i, int& j) const; + LogAndSign LogDeterminant() const; + virtual bool IsEqual(const GeneralMatrix&) const; + // same type, same values + void CheckStore() const; // check store is non-zero + virtual void SetParameters(const GeneralMatrix*) {} + // set parameters in GetMatrix + operator ReturnMatrix() const; // for building a ReturnMatrix + ReturnMatrix ForReturn() const; + virtual bool SameStorageType(const GeneralMatrix& A) const; + virtual void ReSizeForAdd(const GeneralMatrix& A, const GeneralMatrix& B); + virtual void ReSizeForSP(const GeneralMatrix& A, const GeneralMatrix& B); + virtual void ReSize(const GeneralMatrix& A); + MatrixInput operator<<(Real); // for loading a list + MatrixInput operator<<(int f); +// ReturnMatrix Reverse() const; // reverse order of elements + void CleanUp(); // to clear store + + friend class Matrix; + friend class nricMatrix; + friend class SymmetricMatrix; + friend class UpperTriangularMatrix; + friend class LowerTriangularMatrix; + friend class DiagonalMatrix; + friend class CroutMatrix; + friend class RowVector; + friend class ColumnVector; + friend class BandMatrix; + friend class LowerBandMatrix; + friend class UpperBandMatrix; + friend class SymmetricBandMatrix; + friend class BaseMatrix; + friend class AddedMatrix; + friend class MultipliedMatrix; + friend class SubtractedMatrix; + friend class SPMatrix; + friend class KPMatrix; + friend class ConcatenatedMatrix; + friend class StackedMatrix; + friend class SolvedMatrix; + friend class ShiftedMatrix; + friend class NegShiftedMatrix; + friend class ScaledMatrix; + friend class TransposedMatrix; + friend class ReversedMatrix; + friend class NegatedMatrix; + friend class InvertedMatrix; + friend class RowedMatrix; + friend class ColedMatrix; + friend class DiagedMatrix; + friend class MatedMatrix; + friend class GetSubMatrix; + friend class ReturnMatrixX; + friend class LinearEquationSolver; + friend class GenericMatrix; + NEW_DELETE(GeneralMatrix) +}; + + + +class Matrix : public GeneralMatrix // usual rectangular matrix +{ + GeneralMatrix* Image() const; // copy of matrix +public: + Matrix() {} + ~Matrix() {} + Matrix(int, int); // standard declaration + Matrix(const BaseMatrix&); // evaluate BaseMatrix + void operator=(const BaseMatrix&); + void operator=(Real f) { GeneralMatrix::operator=(f); } + void operator=(const Matrix& m) { operator=((const BaseMatrix&)m); } + MatrixType Type() const; + Real& operator()(int, int); // access element + Real& element(int, int); // access element + Real operator()(int, int) const; // access element + Real element(int, int) const; // access element +#ifdef SETUP_C_SUBSCRIPTS + Real* operator[](int m) { return store+m*ncols; } + const Real* operator[](int m) const { return store+m*ncols; } +#endif + Matrix(const Matrix& gm) { GetMatrix(&gm); } + GeneralMatrix* MakeSolver(); + Real Trace() const; + void GetRow(MatrixRowCol&); + void GetCol(MatrixRowCol&); + void GetCol(MatrixColX&); + void RestoreCol(MatrixRowCol&); + void RestoreCol(MatrixColX&); + void NextRow(MatrixRowCol&); + void NextCol(MatrixRowCol&); + void NextCol(MatrixColX&); + virtual void ReSize(int,int); // change dimensions + // virtual so we will catch it being used in a vector called as a matrix + void ReSize(const GeneralMatrix& A); + Real MaximumAbsoluteValue2(int& i, int& j) const; + Real MinimumAbsoluteValue2(int& i, int& j) const; + Real Maximum2(int& i, int& j) const; + Real Minimum2(int& i, int& j) const; + friend Real DotProduct(const Matrix& A, const Matrix& B); + NEW_DELETE(Matrix) +}; + +class nricMatrix : public Matrix // for use with Numerical + // Recipes in C +{ + GeneralMatrix* Image() const; // copy of matrix + Real** row_pointer; // points to rows + void MakeRowPointer(); // build rowpointer + void DeleteRowPointer(); +public: + nricMatrix() {} + nricMatrix(int m, int n) // standard declaration + : Matrix(m,n) { MakeRowPointer(); } + nricMatrix(const BaseMatrix& bm) // evaluate BaseMatrix + : Matrix(bm) { MakeRowPointer(); } + void operator=(const BaseMatrix& bm) + { DeleteRowPointer(); Matrix::operator=(bm); MakeRowPointer(); } + void operator=(Real f) { GeneralMatrix::operator=(f); } + void operator=(const nricMatrix& m) { operator=((const BaseMatrix&)m); } + void operator<<(const BaseMatrix& X) + { DeleteRowPointer(); Eq(X,this->Type(),true); MakeRowPointer(); } + nricMatrix(const nricMatrix& gm) { GetMatrix(&gm); MakeRowPointer(); } + void ReSize(int m, int n) // change dimensions + { DeleteRowPointer(); Matrix::ReSize(m,n); MakeRowPointer(); } + void ReSize(const GeneralMatrix& A); + ~nricMatrix() { DeleteRowPointer(); } + Real** nric() const { CheckStore(); return row_pointer-1; } + void CleanUp(); // to clear store + NEW_DELETE(nricMatrix) +}; + +class SymmetricMatrix : public GeneralMatrix +{ + GeneralMatrix* Image() const; // copy of matrix +public: + SymmetricMatrix() {} + ~SymmetricMatrix() {} + SymmetricMatrix(ArrayLengthSpecifier); + SymmetricMatrix(const BaseMatrix&); + void operator=(const BaseMatrix&); + void operator=(Real f) { GeneralMatrix::operator=(f); } + void operator=(const SymmetricMatrix& m) { operator=((const BaseMatrix&)m); } + Real& operator()(int, int); // access element + Real& element(int, int); // access element + Real operator()(int, int) const; // access element + Real element(int, int) const; // access element +#ifdef SETUP_C_SUBSCRIPTS + Real* operator[](int m) { return store+(m*(m+1))/2; } + const Real* operator[](int m) const { return store+(m*(m+1))/2; } +#endif + MatrixType Type() const; + SymmetricMatrix(const SymmetricMatrix& gm) { GetMatrix(&gm); } + Real SumSquare() const; + Real SumAbsoluteValue() const; + Real Sum() const; + Real Trace() const; + void GetRow(MatrixRowCol&); + void GetCol(MatrixRowCol&); + void GetCol(MatrixColX&); + void RestoreCol(MatrixRowCol&) {} + void RestoreCol(MatrixColX&); + GeneralMatrix* Transpose(TransposedMatrix*, MatrixType); + void ReSize(int); // change dimensions + void ReSize(const GeneralMatrix& A); + NEW_DELETE(SymmetricMatrix) +}; + +class UpperTriangularMatrix : public GeneralMatrix +{ + GeneralMatrix* Image() const; // copy of matrix +public: + UpperTriangularMatrix() {} + ~UpperTriangularMatrix() {} + UpperTriangularMatrix(ArrayLengthSpecifier); + void operator=(const BaseMatrix&); + void operator=(const UpperTriangularMatrix& m) + { operator=((const BaseMatrix&)m); } + UpperTriangularMatrix(const BaseMatrix&); + UpperTriangularMatrix(const UpperTriangularMatrix& gm) { GetMatrix(&gm); } + void operator=(Real f) { GeneralMatrix::operator=(f); } + Real& operator()(int, int); // access element + Real& element(int, int); // access element + Real operator()(int, int) const; // access element + Real element(int, int) const; // access element +#ifdef SETUP_C_SUBSCRIPTS + Real* operator[](int m) { return store+m*ncols-(m*(m+1))/2; } + const Real* operator[](int m) const { return store+m*ncols-(m*(m+1))/2; } +#endif + MatrixType Type() const; + GeneralMatrix* MakeSolver() { return this; } // for solving + void Solver(MatrixColX&, const MatrixColX&); + LogAndSign LogDeterminant() const; + Real Trace() const; + void GetRow(MatrixRowCol&); + void GetCol(MatrixRowCol&); + void GetCol(MatrixColX&); + void RestoreCol(MatrixRowCol&); + void RestoreCol(MatrixColX& c) { RestoreCol((MatrixRowCol&)c); } + void NextRow(MatrixRowCol&); + void ReSize(int); // change dimensions + void ReSize(const GeneralMatrix& A); + MatrixBandWidth BandWidth() const; + NEW_DELETE(UpperTriangularMatrix) +}; + +class LowerTriangularMatrix : public GeneralMatrix +{ + GeneralMatrix* Image() const; // copy of matrix +public: + LowerTriangularMatrix() {} + ~LowerTriangularMatrix() {} + LowerTriangularMatrix(ArrayLengthSpecifier); + LowerTriangularMatrix(const LowerTriangularMatrix& gm) { GetMatrix(&gm); } + LowerTriangularMatrix(const BaseMatrix& M); + void operator=(const BaseMatrix&); + void operator=(Real f) { GeneralMatrix::operator=(f); } + void operator=(const LowerTriangularMatrix& m) + { operator=((const BaseMatrix&)m); } + Real& operator()(int, int); // access element + Real& element(int, int); // access element + Real operator()(int, int) const; // access element + Real element(int, int) const; // access element +#ifdef SETUP_C_SUBSCRIPTS + Real* operator[](int m) { return store+(m*(m+1))/2; } + const Real* operator[](int m) const { return store+(m*(m+1))/2; } +#endif + MatrixType Type() const; + GeneralMatrix* MakeSolver() { return this; } // for solving + void Solver(MatrixColX&, const MatrixColX&); + LogAndSign LogDeterminant() const; + Real Trace() const; + void GetRow(MatrixRowCol&); + void GetCol(MatrixRowCol&); + void GetCol(MatrixColX&); + void RestoreCol(MatrixRowCol&); + void RestoreCol(MatrixColX& c) { RestoreCol((MatrixRowCol&)c); } + void NextRow(MatrixRowCol&); + void ReSize(int); // change dimensions + void ReSize(const GeneralMatrix& A); + MatrixBandWidth BandWidth() const; + NEW_DELETE(LowerTriangularMatrix) +}; + +class DiagonalMatrix : public GeneralMatrix +{ + GeneralMatrix* Image() const; // copy of matrix +public: + DiagonalMatrix() {} + ~DiagonalMatrix() {} + DiagonalMatrix(ArrayLengthSpecifier); + DiagonalMatrix(const BaseMatrix&); + DiagonalMatrix(const DiagonalMatrix& gm) { GetMatrix(&gm); } + void operator=(const BaseMatrix&); + void operator=(Real f) { GeneralMatrix::operator=(f); } + void operator=(const DiagonalMatrix& m) { operator=((const BaseMatrix&)m); } + Real& operator()(int, int); // access element + Real& operator()(int); // access element + Real operator()(int, int) const; // access element + Real operator()(int) const; + Real& element(int, int); // access element + Real& element(int); // access element + Real element(int, int) const; // access element + Real element(int) const; // access element +#ifdef SETUP_C_SUBSCRIPTS + Real& operator[](int m) { return store[m]; } + const Real& operator[](int m) const { return store[m]; } +#endif + MatrixType Type() const; + + LogAndSign LogDeterminant() const; + Real Trace() const; + void GetRow(MatrixRowCol&); + void GetCol(MatrixRowCol&); + void GetCol(MatrixColX&); + void NextRow(MatrixRowCol&); + void NextCol(MatrixRowCol&); + void NextCol(MatrixColX&); + GeneralMatrix* MakeSolver() { return this; } // for solving + void Solver(MatrixColX&, const MatrixColX&); + GeneralMatrix* Transpose(TransposedMatrix*, MatrixType); + void ReSize(int); // change dimensions + void ReSize(const GeneralMatrix& A); + Real* nric() const + { CheckStore(); return store-1; } // for use by NRIC + MatrixBandWidth BandWidth() const; +// ReturnMatrix Reverse() const; // reverse order of elements + NEW_DELETE(DiagonalMatrix) +}; + +class RowVector : public Matrix +{ + GeneralMatrix* Image() const; // copy of matrix +public: + RowVector() { nrows = 1; } + ~RowVector() {} + RowVector(ArrayLengthSpecifier n) : Matrix(1,n.Value()) {} + RowVector(const BaseMatrix&); + RowVector(const RowVector& gm) { GetMatrix(&gm); } + void operator=(const BaseMatrix&); + void operator=(Real f) { GeneralMatrix::operator=(f); } + void operator=(const RowVector& m) { operator=((const BaseMatrix&)m); } + Real& operator()(int); // access element + Real& element(int); // access element + Real operator()(int) const; // access element + Real element(int) const; // access element +#ifdef SETUP_C_SUBSCRIPTS + Real& operator[](int m) { return store[m]; } + const Real& operator[](int m) const { return store[m]; } +#endif + MatrixType Type() const; + void GetCol(MatrixRowCol&); + void GetCol(MatrixColX&); + void NextCol(MatrixRowCol&); + void NextCol(MatrixColX&); + void RestoreCol(MatrixRowCol&) {} + void RestoreCol(MatrixColX& c); + GeneralMatrix* Transpose(TransposedMatrix*, MatrixType); + void ReSize(int); // change dimensions + void ReSize(int,int); // in case access is matrix + void ReSize(const GeneralMatrix& A); + Real* nric() const + { CheckStore(); return store-1; } // for use by NRIC + void CleanUp(); // to clear store + // friend ReturnMatrix GetMatrixRow(Matrix& A, int row); + NEW_DELETE(RowVector) +}; + +class ColumnVector : public Matrix +{ + GeneralMatrix* Image() const; // copy of matrix +public: + ColumnVector() { ncols = 1; } + ~ColumnVector() {} + ColumnVector(ArrayLengthSpecifier n) : Matrix(n.Value(),1) {} + ColumnVector(const BaseMatrix&); + ColumnVector(const ColumnVector& gm) { GetMatrix(&gm); } + void operator=(const BaseMatrix&); + void operator=(Real f) { GeneralMatrix::operator=(f); } + void operator=(const ColumnVector& m) { operator=((const BaseMatrix&)m); } + Real& operator()(int); // access element + Real& element(int); // access element + Real operator()(int) const; // access element + Real element(int) const; // access element +#ifdef SETUP_C_SUBSCRIPTS + Real& operator[](int m) { return store[m]; } + const Real& operator[](int m) const { return store[m]; } +#endif + MatrixType Type() const; + GeneralMatrix* Transpose(TransposedMatrix*, MatrixType); + void ReSize(int); // change dimensions + void ReSize(int,int); // in case access is matrix + void ReSize(const GeneralMatrix& A); + Real* nric() const + { CheckStore(); return store-1; } // for use by NRIC + void CleanUp(); // to clear store +// ReturnMatrix Reverse() const; // reverse order of elements + NEW_DELETE(ColumnVector) +}; + +class CroutMatrix : public GeneralMatrix // for LU decomposition +{ + int* indx; + bool d; + bool sing; + void ludcmp(); +public: + CroutMatrix(const BaseMatrix&); + MatrixType Type() const; + void lubksb(Real*, int=0); + ~CroutMatrix(); + GeneralMatrix* MakeSolver() { return this; } // for solving + LogAndSign LogDeterminant() const; + void Solver(MatrixColX&, const MatrixColX&); + void GetRow(MatrixRowCol&); + void GetCol(MatrixRowCol&); + void GetCol(MatrixColX& c) { GetCol((MatrixRowCol&)c); } + void operator=(const BaseMatrix&); + void operator=(const CroutMatrix& m) { operator=((const BaseMatrix&)m); } + void CleanUp(); // to clear store + bool IsEqual(const GeneralMatrix&) const; + bool IsSingular() const { return sing; } + NEW_DELETE(CroutMatrix) +}; + +// ***************************** band matrices ***************************/ + +class BandMatrix : public GeneralMatrix // band matrix +{ + GeneralMatrix* Image() const; // copy of matrix +protected: + void CornerClear() const; // set unused elements to zero + short SimpleAddOK(const GeneralMatrix* gm); +public: + int lower, upper; // band widths + BandMatrix() { lower=0; upper=0; CornerClear(); } + ~BandMatrix() {} + BandMatrix(int n,int lb,int ub) { ReSize(n,lb,ub); CornerClear(); } + // standard declaration + BandMatrix(const BaseMatrix&); // evaluate BaseMatrix + void operator=(const BaseMatrix&); + void operator=(Real f) { GeneralMatrix::operator=(f); } + void operator=(const BandMatrix& m) { operator=((const BaseMatrix&)m); } + MatrixType Type() const; + Real& operator()(int, int); // access element + Real& element(int, int); // access element + Real operator()(int, int) const; // access element + Real element(int, int) const; // access element +#ifdef SETUP_C_SUBSCRIPTS + Real* operator[](int m) { return store+(upper+lower)*m+lower; } + const Real* operator[](int m) const { return store+(upper+lower)*m+lower; } +#endif + BandMatrix(const BandMatrix& gm) { GetMatrix(&gm); } + LogAndSign LogDeterminant() const; + GeneralMatrix* MakeSolver(); + Real Trace() const; + Real SumSquare() const { CornerClear(); return GeneralMatrix::SumSquare(); } + Real SumAbsoluteValue() const + { CornerClear(); return GeneralMatrix::SumAbsoluteValue(); } + Real Sum() const + { CornerClear(); return GeneralMatrix::Sum(); } + Real MaximumAbsoluteValue() const + { CornerClear(); return GeneralMatrix::MaximumAbsoluteValue(); } + Real MinimumAbsoluteValue() const + { int i, j; return GeneralMatrix::MinimumAbsoluteValue2(i, j); } + Real Maximum() const { int i, j; return GeneralMatrix::Maximum2(i, j); } + Real Minimum() const { int i, j; return GeneralMatrix::Minimum2(i, j); } + void GetRow(MatrixRowCol&); + void GetCol(MatrixRowCol&); + void GetCol(MatrixColX&); + void RestoreCol(MatrixRowCol&); + void RestoreCol(MatrixColX& c) { RestoreCol((MatrixRowCol&)c); } + void NextRow(MatrixRowCol&); + virtual void ReSize(int, int, int); // change dimensions + void ReSize(const GeneralMatrix& A); + bool SameStorageType(const GeneralMatrix& A) const; + void ReSizeForAdd(const GeneralMatrix& A, const GeneralMatrix& B); + void ReSizeForSP(const GeneralMatrix& A, const GeneralMatrix& B); + MatrixBandWidth BandWidth() const; + void SetParameters(const GeneralMatrix*); + MatrixInput operator<<(Real); // will give error + MatrixInput operator<<(int f); + void operator<<(const Real* r); // will give error + // the next is included because Zortech and Borland + // cannot find the copy in GeneralMatrix + void operator<<(const BaseMatrix& X) { GeneralMatrix::operator<<(X); } + NEW_DELETE(BandMatrix) +}; + +class UpperBandMatrix : public BandMatrix // upper band matrix +{ + GeneralMatrix* Image() const; // copy of matrix +public: + UpperBandMatrix() {} + ~UpperBandMatrix() {} + UpperBandMatrix(int n, int ubw) // standard declaration + : BandMatrix(n, 0, ubw) {} + UpperBandMatrix(const BaseMatrix&); // evaluate BaseMatrix + void operator=(const BaseMatrix&); + void operator=(Real f) { GeneralMatrix::operator=(f); } + void operator=(const UpperBandMatrix& m) + { operator=((const BaseMatrix&)m); } + MatrixType Type() const; + UpperBandMatrix(const UpperBandMatrix& gm) { GetMatrix(&gm); } + GeneralMatrix* MakeSolver() { return this; } + void Solver(MatrixColX&, const MatrixColX&); + LogAndSign LogDeterminant() const; + void ReSize(int, int, int); // change dimensions + void ReSize(int n,int ubw) // change dimensions + { BandMatrix::ReSize(n,0,ubw); } + void ReSize(const GeneralMatrix& A) { BandMatrix::ReSize(A); } + Real& operator()(int, int); + Real operator()(int, int) const; + Real& element(int, int); + Real element(int, int) const; +#ifdef SETUP_C_SUBSCRIPTS + Real* operator[](int m) { return store+upper*m; } + const Real* operator[](int m) const { return store+upper*m; } +#endif + NEW_DELETE(UpperBandMatrix) +}; + +class LowerBandMatrix : public BandMatrix // upper band matrix +{ + GeneralMatrix* Image() const; // copy of matrix +public: + LowerBandMatrix() {} + ~LowerBandMatrix() {} + LowerBandMatrix(int n, int lbw) // standard declaration + : BandMatrix(n, lbw, 0) {} + LowerBandMatrix(const BaseMatrix&); // evaluate BaseMatrix + void operator=(const BaseMatrix&); + void operator=(Real f) { GeneralMatrix::operator=(f); } + void operator=(const LowerBandMatrix& m) + { operator=((const BaseMatrix&)m); } + MatrixType Type() const; + LowerBandMatrix(const LowerBandMatrix& gm) { GetMatrix(&gm); } + GeneralMatrix* MakeSolver() { return this; } + void Solver(MatrixColX&, const MatrixColX&); + LogAndSign LogDeterminant() const; + void ReSize(int, int, int); // change dimensions + void ReSize(int n,int lbw) // change dimensions + { BandMatrix::ReSize(n,lbw,0); } + void ReSize(const GeneralMatrix& A) { BandMatrix::ReSize(A); } + Real& operator()(int, int); + Real operator()(int, int) const; + Real& element(int, int); + Real element(int, int) const; +#ifdef SETUP_C_SUBSCRIPTS + Real* operator[](int m) { return store+lower*(m+1); } + const Real* operator[](int m) const { return store+lower*(m+1); } +#endif + NEW_DELETE(LowerBandMatrix) +}; + +class SymmetricBandMatrix : public GeneralMatrix +{ + GeneralMatrix* Image() const; // copy of matrix + void CornerClear() const; // set unused elements to zero + short SimpleAddOK(const GeneralMatrix* gm); +public: + int lower; // lower band width + SymmetricBandMatrix() { lower=0; CornerClear(); } + ~SymmetricBandMatrix() {} + SymmetricBandMatrix(int n, int lb) { ReSize(n,lb); CornerClear(); } + SymmetricBandMatrix(const BaseMatrix&); + void operator=(const BaseMatrix&); + void operator=(Real f) { GeneralMatrix::operator=(f); } + void operator=(const SymmetricBandMatrix& m) + { operator=((const BaseMatrix&)m); } + Real& operator()(int, int); // access element + Real& element(int, int); // access element + Real operator()(int, int) const; // access element + Real element(int, int) const; // access element +#ifdef SETUP_C_SUBSCRIPTS + Real* operator[](int m) { return store+lower*(m+1); } + const Real* operator[](int m) const { return store+lower*(m+1); } +#endif + MatrixType Type() const; + SymmetricBandMatrix(const SymmetricBandMatrix& gm) { GetMatrix(&gm); } + GeneralMatrix* MakeSolver(); + Real SumSquare() const; + Real SumAbsoluteValue() const; + Real Sum() const; + Real MaximumAbsoluteValue() const + { CornerClear(); return GeneralMatrix::MaximumAbsoluteValue(); } + Real MinimumAbsoluteValue() const + { int i, j; return GeneralMatrix::MinimumAbsoluteValue2(i, j); } + Real Maximum() const { int i, j; return GeneralMatrix::Maximum2(i, j); } + Real Minimum() const { int i, j; return GeneralMatrix::Minimum2(i, j); } + Real Trace() const; + LogAndSign LogDeterminant() const; + void GetRow(MatrixRowCol&); + void GetCol(MatrixRowCol&); + void GetCol(MatrixColX&); + void RestoreCol(MatrixRowCol&) {} + void RestoreCol(MatrixColX&); + GeneralMatrix* Transpose(TransposedMatrix*, MatrixType); + void ReSize(int,int); // change dimensions + void ReSize(const GeneralMatrix& A); + bool SameStorageType(const GeneralMatrix& A) const; + void ReSizeForAdd(const GeneralMatrix& A, const GeneralMatrix& B); + void ReSizeForSP(const GeneralMatrix& A, const GeneralMatrix& B); + MatrixBandWidth BandWidth() const; + void SetParameters(const GeneralMatrix*); + NEW_DELETE(SymmetricBandMatrix) +}; + +class BandLUMatrix : public GeneralMatrix +// for LU decomposition of band matrix +{ + int* indx; + bool d; + bool sing; // true if singular + Real* store2; + int storage2; + void ludcmp(); + int m1,m2; // lower and upper +public: + BandLUMatrix(const BaseMatrix&); + MatrixType Type() const; + void lubksb(Real*, int=0); + ~BandLUMatrix(); + GeneralMatrix* MakeSolver() { return this; } // for solving + LogAndSign LogDeterminant() const; + void Solver(MatrixColX&, const MatrixColX&); + void GetRow(MatrixRowCol&); + void GetCol(MatrixRowCol&); + void GetCol(MatrixColX& c) { GetCol((MatrixRowCol&)c); } + void operator=(const BaseMatrix&); + void operator=(const BandLUMatrix& m) { operator=((const BaseMatrix&)m); } + void CleanUp(); // to clear store + bool IsEqual(const GeneralMatrix&) const; + bool IsSingular() const { return sing; } + NEW_DELETE(BandLUMatrix) +}; + +// ************************** special matrices **************************** + +class IdentityMatrix : public GeneralMatrix +{ + GeneralMatrix* Image() const; // copy of matrix +public: + IdentityMatrix() {} + ~IdentityMatrix() {} + IdentityMatrix(ArrayLengthSpecifier n) : GeneralMatrix(1) + { nrows = ncols = n.Value(); *store = 1; } + IdentityMatrix(const IdentityMatrix& gm) { GetMatrix(&gm); } + IdentityMatrix(const BaseMatrix&); + void operator=(const BaseMatrix&); + void operator=(Real f) { GeneralMatrix::operator=(f); } + MatrixType Type() const; + + LogAndSign LogDeterminant() const; + Real Trace() const; + Real SumSquare() const; + Real SumAbsoluteValue() const; + Real Sum() const { return Trace(); } + void GetRow(MatrixRowCol&); + void GetCol(MatrixRowCol&); + void GetCol(MatrixColX&); + void NextRow(MatrixRowCol&); + void NextCol(MatrixRowCol&); + void NextCol(MatrixColX&); + GeneralMatrix* MakeSolver() { return this; } // for solving + void Solver(MatrixColX&, const MatrixColX&); + GeneralMatrix* Transpose(TransposedMatrix*, MatrixType); + void ReSize(int n); + void ReSize(const GeneralMatrix& A); + MatrixBandWidth BandWidth() const; +// ReturnMatrix Reverse() const; // reverse order of elements + NEW_DELETE(IdentityMatrix) +}; + + + + +// ************************** GenericMatrix class ************************/ + +class GenericMatrix : public BaseMatrix +{ + GeneralMatrix* gm; + int search(const BaseMatrix* bm) const; + friend class BaseMatrix; +public: + GenericMatrix() : gm(0) {} + GenericMatrix(const BaseMatrix& bm) + { gm = ((BaseMatrix&)bm).Evaluate(); gm = gm->Image(); } + GenericMatrix(const GenericMatrix& bm) + { gm = bm.gm->Image(); } + void operator=(const GenericMatrix&); + void operator=(const BaseMatrix&); + void operator+=(const BaseMatrix&); + void operator-=(const BaseMatrix&); + void operator*=(const BaseMatrix&); + void operator|=(const BaseMatrix&); + void operator&=(const BaseMatrix&); + void operator+=(Real); + void operator-=(Real r) { operator+=(-r); } + void operator*=(Real); + void operator/=(Real r) { operator*=(1.0/r); } + ~GenericMatrix() { delete gm; } + void CleanUp() { delete gm; gm = 0; } + void Release() { gm->Release(); } + GeneralMatrix* Evaluate(MatrixType = MatrixTypeUnSp); + MatrixBandWidth BandWidth() const; + NEW_DELETE(GenericMatrix) +}; + +// *************************** temporary classes *************************/ + +class MultipliedMatrix : public BaseMatrix +{ +protected: + // if these union statements cause problems, simply remove them + // and declare the items individually + union { const BaseMatrix* bm1; GeneralMatrix* gm1; }; + // pointers to summands + union { const BaseMatrix* bm2; GeneralMatrix* gm2; }; + MultipliedMatrix(const BaseMatrix* bm1x, const BaseMatrix* bm2x) + : bm1(bm1x),bm2(bm2x) {} + int search(const BaseMatrix*) const; + friend class BaseMatrix; + friend class GeneralMatrix; + friend class GenericMatrix; +public: + ~MultipliedMatrix() {} + GeneralMatrix* Evaluate(MatrixType mt=MatrixTypeUnSp); + MatrixBandWidth BandWidth() const; + NEW_DELETE(MultipliedMatrix) +}; + +class AddedMatrix : public MultipliedMatrix +{ +protected: + AddedMatrix(const BaseMatrix* bm1x, const BaseMatrix* bm2x) + : MultipliedMatrix(bm1x,bm2x) {} + + friend class BaseMatrix; + friend class GeneralMatrix; + friend class GenericMatrix; +public: + ~AddedMatrix() {} + GeneralMatrix* Evaluate(MatrixType mt=MatrixTypeUnSp); + MatrixBandWidth BandWidth() const; + NEW_DELETE(AddedMatrix) +}; + +class SPMatrix : public AddedMatrix +{ +protected: + SPMatrix(const BaseMatrix* bm1x, const BaseMatrix* bm2x) + : AddedMatrix(bm1x,bm2x) {} + + friend class BaseMatrix; + friend class GeneralMatrix; + friend class GenericMatrix; +public: + ~SPMatrix() {} + GeneralMatrix* Evaluate(MatrixType mt=MatrixTypeUnSp); + MatrixBandWidth BandWidth() const; + +#ifndef TEMPS_DESTROYED_QUICKLY + friend SPMatrix SP(const BaseMatrix&, const BaseMatrix&); +#else + friend SPMatrix& SP(const BaseMatrix&, const BaseMatrix&); +#endif + + NEW_DELETE(SPMatrix) +}; + +class KPMatrix : public MultipliedMatrix +{ +protected: + KPMatrix(const BaseMatrix* bm1x, const BaseMatrix* bm2x) + : MultipliedMatrix(bm1x,bm2x) {} + + friend class BaseMatrix; + friend class GeneralMatrix; + friend class GenericMatrix; +public: + ~KPMatrix() {} + MatrixBandWidth BandWidth() const; + GeneralMatrix* Evaluate(MatrixType mt=MatrixTypeUnSp); +#ifndef TEMPS_DESTROYED_QUICKLY + friend KPMatrix KP(const BaseMatrix&, const BaseMatrix&); +#else + friend KPMatrix& KP(const BaseMatrix&, const BaseMatrix&); +#endif + NEW_DELETE(KPMatrix) +}; + +class ConcatenatedMatrix : public MultipliedMatrix +{ +protected: + ConcatenatedMatrix(const BaseMatrix* bm1x, const BaseMatrix* bm2x) + : MultipliedMatrix(bm1x,bm2x) {} + + friend class BaseMatrix; + friend class GeneralMatrix; + friend class GenericMatrix; +public: + ~ConcatenatedMatrix() {} + MatrixBandWidth BandWidth() const; + GeneralMatrix* Evaluate(MatrixType mt=MatrixTypeUnSp); + NEW_DELETE(ConcatenatedMatrix) +}; + +class StackedMatrix : public ConcatenatedMatrix +{ +protected: + StackedMatrix(const BaseMatrix* bm1x, const BaseMatrix* bm2x) + : ConcatenatedMatrix(bm1x,bm2x) {} + + friend class BaseMatrix; + friend class GeneralMatrix; + friend class GenericMatrix; +public: + ~StackedMatrix() {} + GeneralMatrix* Evaluate(MatrixType mt=MatrixTypeUnSp); + NEW_DELETE(StackedMatrix) +}; + +class SolvedMatrix : public MultipliedMatrix +{ + SolvedMatrix(const BaseMatrix* bm1x, const BaseMatrix* bm2x) + : MultipliedMatrix(bm1x,bm2x) {} + friend class BaseMatrix; + friend class InvertedMatrix; // for operator* +public: + ~SolvedMatrix() {} + GeneralMatrix* Evaluate(MatrixType mt=MatrixTypeUnSp); + MatrixBandWidth BandWidth() const; + NEW_DELETE(SolvedMatrix) +}; + +class SubtractedMatrix : public AddedMatrix +{ + SubtractedMatrix(const BaseMatrix* bm1x, const BaseMatrix* bm2x) + : AddedMatrix(bm1x,bm2x) {} + friend class BaseMatrix; + friend class GeneralMatrix; + friend class GenericMatrix; +public: + ~SubtractedMatrix() {} + GeneralMatrix* Evaluate(MatrixType mt=MatrixTypeUnSp); + NEW_DELETE(SubtractedMatrix) +}; + +class ShiftedMatrix : public BaseMatrix +{ +protected: + union { const BaseMatrix* bm; GeneralMatrix* gm; }; + Real f; + ShiftedMatrix(const BaseMatrix* bmx, Real fx) : bm(bmx),f(fx) {} + int search(const BaseMatrix*) const; + friend class BaseMatrix; + friend class GeneralMatrix; + friend class GenericMatrix; +public: + ~ShiftedMatrix() {} + GeneralMatrix* Evaluate(MatrixType mt=MatrixTypeUnSp); +#ifndef TEMPS_DESTROYED_QUICKLY + friend ShiftedMatrix operator+(Real f, const BaseMatrix& BM); +// { return ShiftedMatrix(&BM, f); } +#endif + NEW_DELETE(ShiftedMatrix) +}; + +class NegShiftedMatrix : public ShiftedMatrix +{ +protected: + NegShiftedMatrix(Real fx, const BaseMatrix* bmx) : ShiftedMatrix(bmx,fx) {} + friend class BaseMatrix; + friend class GeneralMatrix; + friend class GenericMatrix; +public: + ~NegShiftedMatrix() {} + GeneralMatrix* Evaluate(MatrixType mt=MatrixTypeUnSp); +#ifndef TEMPS_DESTROYED_QUICKLY + friend NegShiftedMatrix operator-(Real, const BaseMatrix&); +#else + friend NegShiftedMatrix& operator-(Real, const BaseMatrix&); +#endif + NEW_DELETE(NegShiftedMatrix) +}; + +class ScaledMatrix : public ShiftedMatrix +{ + ScaledMatrix(const BaseMatrix* bmx, Real fx) : ShiftedMatrix(bmx,fx) {} + friend class BaseMatrix; + friend class GeneralMatrix; + friend class GenericMatrix; +public: + ~ScaledMatrix() {} + GeneralMatrix* Evaluate(MatrixType mt=MatrixTypeUnSp); + MatrixBandWidth BandWidth() const; +#ifndef TEMPS_DESTROYED_QUICKLY + friend ScaledMatrix operator*(Real f, const BaseMatrix& BM); + //{ return ScaledMatrix(&BM, f); } +#endif + NEW_DELETE(ScaledMatrix) +}; + +class NegatedMatrix : public BaseMatrix +{ +protected: + union { const BaseMatrix* bm; GeneralMatrix* gm; }; + NegatedMatrix(const BaseMatrix* bmx) : bm(bmx) {} + int search(const BaseMatrix*) const; +private: + friend class BaseMatrix; +public: + ~NegatedMatrix() {} + GeneralMatrix* Evaluate(MatrixType mt=MatrixTypeUnSp); + MatrixBandWidth BandWidth() const; + NEW_DELETE(NegatedMatrix) +}; + +class TransposedMatrix : public NegatedMatrix +{ + TransposedMatrix(const BaseMatrix* bmx) : NegatedMatrix(bmx) {} + friend class BaseMatrix; +public: + ~TransposedMatrix() {} + GeneralMatrix* Evaluate(MatrixType mt=MatrixTypeUnSp); + MatrixBandWidth BandWidth() const; + NEW_DELETE(TransposedMatrix) +}; + +class ReversedMatrix : public NegatedMatrix +{ + ReversedMatrix(const BaseMatrix* bmx) : NegatedMatrix(bmx) {} + friend class BaseMatrix; +public: + ~ReversedMatrix() {} + GeneralMatrix* Evaluate(MatrixType mt=MatrixTypeUnSp); + NEW_DELETE(ReversedMatrix) +}; + +class InvertedMatrix : public NegatedMatrix +{ + InvertedMatrix(const BaseMatrix* bmx) : NegatedMatrix(bmx) {} +public: + ~InvertedMatrix() {} +#ifndef TEMPS_DESTROYED_QUICKLY + SolvedMatrix operator*(const BaseMatrix&) const; // inverse(A) * B + ScaledMatrix operator*(Real t) const { return BaseMatrix::operator*(t); } +#else + SolvedMatrix& operator*(const BaseMatrix&); // inverse(A) * B + ScaledMatrix& operator*(Real t) const { return BaseMatrix::operator*(t); } +#endif + friend class BaseMatrix; + GeneralMatrix* Evaluate(MatrixType mt=MatrixTypeUnSp); + MatrixBandWidth BandWidth() const; + NEW_DELETE(InvertedMatrix) +}; + +class RowedMatrix : public NegatedMatrix +{ + RowedMatrix(const BaseMatrix* bmx) : NegatedMatrix(bmx) {} + friend class BaseMatrix; +public: + ~RowedMatrix() {} + GeneralMatrix* Evaluate(MatrixType mt=MatrixTypeUnSp); + MatrixBandWidth BandWidth() const; + NEW_DELETE(RowedMatrix) +}; + +class ColedMatrix : public NegatedMatrix +{ + ColedMatrix(const BaseMatrix* bmx) : NegatedMatrix(bmx) {} + friend class BaseMatrix; +public: + ~ColedMatrix() {} + GeneralMatrix* Evaluate(MatrixType mt=MatrixTypeUnSp); + MatrixBandWidth BandWidth() const; + NEW_DELETE(ColedMatrix) +}; + +class DiagedMatrix : public NegatedMatrix +{ + DiagedMatrix(const BaseMatrix* bmx) : NegatedMatrix(bmx) {} + friend class BaseMatrix; +public: + ~DiagedMatrix() {} + GeneralMatrix* Evaluate(MatrixType mt=MatrixTypeUnSp); + MatrixBandWidth BandWidth() const; + NEW_DELETE(DiagedMatrix) +}; + +class MatedMatrix : public NegatedMatrix +{ + int nr, nc; + MatedMatrix(const BaseMatrix* bmx, int nrx, int ncx) + : NegatedMatrix(bmx), nr(nrx), nc(ncx) {} + friend class BaseMatrix; +public: + ~MatedMatrix() {} + GeneralMatrix* Evaluate(MatrixType mt=MatrixTypeUnSp); + MatrixBandWidth BandWidth() const; + NEW_DELETE(MatedMatrix) +}; + +class ReturnMatrixX : public BaseMatrix // for matrix return +{ + GeneralMatrix* gm; + int search(const BaseMatrix*) const; +public: + ~ReturnMatrixX() {} + GeneralMatrix* Evaluate(MatrixType mt=MatrixTypeUnSp); + friend class BaseMatrix; +#ifdef TEMPS_DESTROYED_QUICKLY_R + ReturnMatrixX(const ReturnMatrixX& tm); +#else + ReturnMatrixX(const ReturnMatrixX& tm) : gm(tm.gm) {} +#endif + ReturnMatrixX(const GeneralMatrix* gmx) : gm((GeneralMatrix*&)gmx) {} +// ReturnMatrixX(GeneralMatrix&); + MatrixBandWidth BandWidth() const; + NEW_DELETE(ReturnMatrixX) +}; + + +// ************************** submatrices ******************************/ + +class GetSubMatrix : public NegatedMatrix +{ + int row_skip; + int row_number; + int col_skip; + int col_number; + bool IsSym; + + GetSubMatrix + (const BaseMatrix* bmx, int rs, int rn, int cs, int cn, bool is) + : NegatedMatrix(bmx), + row_skip(rs), row_number(rn), col_skip(cs), col_number(cn), IsSym(is) {} + void SetUpLHS(); + friend class BaseMatrix; +public: + GetSubMatrix(const GetSubMatrix& g) + : NegatedMatrix(g.bm), row_skip(g.row_skip), row_number(g.row_number), + col_skip(g.col_skip), col_number(g.col_number), IsSym(g.IsSym) {} + ~GetSubMatrix() {} + GeneralMatrix* Evaluate(MatrixType mt=MatrixTypeUnSp); + void operator=(const BaseMatrix&); + void operator+=(const BaseMatrix&); + void operator-=(const BaseMatrix&); + void operator=(const GetSubMatrix& m) { operator=((const BaseMatrix&)m); } + void operator<<(const BaseMatrix&); + void operator<<(const Real*); // copy from array + MatrixInput operator<<(Real); // for loading a list + MatrixInput operator<<(int f); + void operator=(Real); // copy from constant + void operator+=(Real); // add constant + void operator-=(Real r) { operator+=(-r); } // subtract constant + void operator*=(Real); // multiply by constant + void operator/=(Real r) { operator*=(1.0/r); } // divide by constant + void Inject(const GeneralMatrix&); // copy stored els only + MatrixBandWidth BandWidth() const; + NEW_DELETE(GetSubMatrix) +}; + +// ******************** linear equation solving ****************************/ + +class LinearEquationSolver : public BaseMatrix +{ + GeneralMatrix* gm; + int search(const BaseMatrix*) const { return 0; } + friend class BaseMatrix; +public: + LinearEquationSolver(const BaseMatrix& bm); + ~LinearEquationSolver() { delete gm; } + void CleanUp() { delete gm; } + GeneralMatrix* Evaluate(MatrixType) { return gm; } + // probably should have an error message if MatrixType != UnSp + NEW_DELETE(LinearEquationSolver) +}; + +// ************************** matrix input *******************************/ + +class MatrixInput // for reading a list of values into a matrix + // the difficult part is detecting a mismatch + // in the number of elements +{ + int n; // number values still to be read + Real* r; // pointer to next location to be read to +public: + MatrixInput(const MatrixInput& mi) : n(mi.n), r(mi.r) {} + MatrixInput(int nx, Real* rx) : n(nx), r(rx) {} + ~MatrixInput(); + MatrixInput operator<<(Real); + MatrixInput operator<<(int f); + friend class GeneralMatrix; +}; + + + +// **************** a very simple integer array class ********************/ + +// A minimal array class to imitate a C style array but giving dynamic storage +// mostly intended for internal use by newmat + +class SimpleIntArray : public Janitor +{ +protected: + int* a; // pointer to the array + int n; // length of the array +public: + SimpleIntArray(int xn); // build an array length xn + ~SimpleIntArray(); // return the space to memory + int& operator[](int i); // access element of the array - start at 0 + int operator[](int i) const; + // access element of constant array + void operator=(int ai); // set the array equal to a constant + void operator=(const SimpleIntArray& b); + // copy the elements of an array + SimpleIntArray(const SimpleIntArray& b); + // make a new array equal to an existing one + int Size() const { return n; } + // return the size of the array + int* Data() { return a; } // pointer to the data + const int* Data() const { return a; } + // pointer to the data + void ReSize(int i, bool keep = false); + // change length, keep data if keep = true + void CleanUp() { ReSize(0); } + NEW_DELETE(SimpleIntArray) +}; + +// *************************** exceptions ********************************/ + +class NPDException : public Runtime_error // Not positive definite +{ +public: + static unsigned long Select; // for identifying exception + NPDException(const GeneralMatrix&); +}; + +class ConvergenceException : public Runtime_error +{ +public: + static unsigned long Select; // for identifying exception + ConvergenceException(const GeneralMatrix& A); + ConvergenceException(const char* c); +}; + +class SingularException : public Runtime_error +{ +public: + static unsigned long Select; // for identifying exception + SingularException(const GeneralMatrix& A); +}; + +class OverflowException : public Runtime_error +{ +public: + static unsigned long Select; // for identifying exception + OverflowException(const char* c); +}; + +class ProgramException : public Logic_error +{ +protected: + ProgramException(); +public: + static unsigned long Select; // for identifying exception + ProgramException(const char* c); + ProgramException(const char* c, const GeneralMatrix&); + ProgramException(const char* c, const GeneralMatrix&, const GeneralMatrix&); + ProgramException(const char* c, MatrixType, MatrixType); +}; + +class IndexException : public Logic_error +{ +public: + static unsigned long Select; // for identifying exception + IndexException(int i, const GeneralMatrix& A); + IndexException(int i, int j, const GeneralMatrix& A); + // next two are for access via element function + IndexException(int i, const GeneralMatrix& A, bool); + IndexException(int i, int j, const GeneralMatrix& A, bool); +}; + +class VectorException : public Logic_error // cannot convert to vector +{ +public: + static unsigned long Select; // for identifying exception + VectorException(); + VectorException(const GeneralMatrix& A); +}; + +class NotSquareException : public Logic_error +{ +public: + static unsigned long Select; // for identifying exception + NotSquareException(const GeneralMatrix& A); +}; + +class SubMatrixDimensionException : public Logic_error +{ +public: + static unsigned long Select; // for identifying exception + SubMatrixDimensionException(); +}; + +class IncompatibleDimensionsException : public Logic_error +{ +public: + static unsigned long Select; // for identifying exception + IncompatibleDimensionsException(); + IncompatibleDimensionsException(const GeneralMatrix&, const GeneralMatrix&); +}; + +class NotDefinedException : public Logic_error +{ +public: + static unsigned long Select; // for identifying exception + NotDefinedException(const char* op, const char* matrix); +}; + +class CannotBuildException : public Logic_error +{ +public: + static unsigned long Select; // for identifying exception + CannotBuildException(const char* matrix); +}; + + +class InternalException : public Logic_error +{ +public: + static unsigned long Select; // for identifying exception + InternalException(const char* c); +}; + +// ************************ functions ************************************ // + +bool operator==(const GeneralMatrix& A, const GeneralMatrix& B); +bool operator==(const BaseMatrix& A, const BaseMatrix& B); +inline bool operator!=(const GeneralMatrix& A, const GeneralMatrix& B) + { return ! (A==B); } +inline bool operator!=(const BaseMatrix& A, const BaseMatrix& B) + { return ! (A==B); } + + // inequality operators are dummies included for compatibility + // with STL. They throw an exception if actually called. +inline bool operator<=(const BaseMatrix& A, const BaseMatrix&) + { A.IEQND(); return true; } +inline bool operator>=(const BaseMatrix& A, const BaseMatrix&) + { A.IEQND(); return true; } +inline bool operator<(const BaseMatrix& A, const BaseMatrix&) + { A.IEQND(); return true; } +inline bool operator>(const BaseMatrix& A, const BaseMatrix&) + { A.IEQND(); return true; } + +bool IsZero(const BaseMatrix& A); + + +// *********************** friend functions ****************************** // + +bool Rectangular(MatrixType a, MatrixType b, MatrixType c); +bool Compare(const MatrixType&, MatrixType&); +Real DotProduct(const Matrix& A, const Matrix& B); +#ifndef TEMPS_DESTROYED_QUICKLY + SPMatrix SP(const BaseMatrix&, const BaseMatrix&); + KPMatrix KP(const BaseMatrix&, const BaseMatrix&); + ShiftedMatrix operator+(Real f, const BaseMatrix& BM); + NegShiftedMatrix operator-(Real, const BaseMatrix&); + ScaledMatrix operator*(Real f, const BaseMatrix& BM); +#else + SPMatrix& SP(const BaseMatrix&, const BaseMatrix&); + KPMatrix& KP(const BaseMatrix&, const BaseMatrix&); + NegShiftedMatrix& operator-(Real, const BaseMatrix&); +#endif + + +// ********************* inline functions ******************************** // + +inline LogAndSign LogDeterminant(const BaseMatrix& B) + { return B.LogDeterminant(); } +inline Real Determinant(const BaseMatrix& B) + { return B.Determinant(); } +inline Real SumSquare(const BaseMatrix& B) { return B.SumSquare(); } +inline Real NormFrobenius(const BaseMatrix& B) { return B.NormFrobenius(); } +inline Real Trace(const BaseMatrix& B) { return B.Trace(); } +inline Real SumAbsoluteValue(const BaseMatrix& B) + { return B.SumAbsoluteValue(); } +inline Real Sum(const BaseMatrix& B) + { return B.Sum(); } +inline Real MaximumAbsoluteValue(const BaseMatrix& B) + { return B.MaximumAbsoluteValue(); } +inline Real MinimumAbsoluteValue(const BaseMatrix& B) + { return B.MinimumAbsoluteValue(); } +inline Real Maximum(const BaseMatrix& B) { return B.Maximum(); } +inline Real Minimum(const BaseMatrix& B) { return B.Minimum(); } +inline Real Norm1(const BaseMatrix& B) { return B.Norm1(); } +inline Real Norm1(RowVector& RV) { return RV.MaximumAbsoluteValue(); } +inline Real NormInfinity(const BaseMatrix& B) { return B.NormInfinity(); } +inline Real NormInfinity(ColumnVector& CV) + { return CV.MaximumAbsoluteValue(); } +inline bool IsZero(const GeneralMatrix& A) { return A.IsZero(); } + +#ifdef TEMPS_DESTROYED_QUICKLY +inline ShiftedMatrix& operator+(Real f, const BaseMatrix& BM) + { return BM + f; } +inline ScaledMatrix& operator*(Real f, const BaseMatrix& BM) + { return BM * f; } +#endif + +// these are moved out of the class definitions because of a problem +// with the Intel 8.1 compiler +#ifndef TEMPS_DESTROYED_QUICKLY + inline ShiftedMatrix operator+(Real f, const BaseMatrix& BM) + { return ShiftedMatrix(&BM, f); } + inline ScaledMatrix operator*(Real f, const BaseMatrix& BM) + { return ScaledMatrix(&BM, f); } +#endif + + +inline MatrixInput MatrixInput::operator<<(int f) { return *this << (Real)f; } +inline MatrixInput GeneralMatrix::operator<<(int f) { return *this << (Real)f; } +inline MatrixInput BandMatrix::operator<<(int f) { return *this << (Real)f; } +inline MatrixInput GetSubMatrix::operator<<(int f) { return *this << (Real)f; } + + + +#ifdef use_namespace +} +#endif + + +#endif + +// body file: newmat1.cpp +// body file: newmat2.cpp +// body file: newmat3.cpp +// body file: newmat4.cpp +// body file: newmat5.cpp +// body file: newmat6.cpp +// body file: newmat7.cpp +// body file: newmat8.cpp +// body file: newmatex.cpp +// body file: bandmat.cpp +// body file: submat.cpp + + + + + + + diff --git a/.svn/pristine/11/11fdcb75157aad1a8e87631e0ab988be90dae750.svn-base b/.svn/pristine/11/11fdcb75157aad1a8e87631e0ab988be90dae750.svn-base new file mode 100644 index 0000000..6c4b1b2 --- /dev/null +++ b/.svn/pristine/11/11fdcb75157aad1a8e87631e0ab988be90dae750.svn-base @@ -0,0 +1,15151 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: /home/free_icp/doc/high_level_doc/coordinate_system.eps +%%Creator: XV version 3.10a-jumboFix of 20050410 - by John Bradley +%%BoundingBox: 99 181 513 611 +%%Pages: 1 +%%DocumentFonts: +%%EndComments +%%EndProlog + +%%Page: 1 1 + +% remember original state +/origstate save def + +% build a temporary dictionary +20 dict begin + +% define string to hold a scanline's worth of data +/pix 1242 string def + +% define space for color conversions +/grays 414 string def % space for gray scale line +/npixls 0 def +/rgbindx 0 def + +% lower left corner +99 181 translate + +% size of image (on paper, in 1/72inch coords) +414.00000 429.98400 scale + +% define 'colorimage' if it isn't defined +% ('colortogray' and 'mergeprocs' come from xwd2ps +% via xgrab) +/colorimage where % do we know about 'colorimage'? + { pop } % yes: pop off the 'dict' returned + { % no: define one + /colortogray { % define an RGB->I function + /rgbdata exch store % call input 'rgbdata' + rgbdata length 3 idiv + /npixls exch store + /rgbindx 0 store + 0 1 npixls 1 sub { + grays exch + rgbdata rgbindx get 20 mul % Red + rgbdata rgbindx 1 add get 32 mul % Green + rgbdata rgbindx 2 add get 12 mul % Blue + add add 64 idiv % I = .5G + .31R + .18B + put + /rgbindx rgbindx 3 add store + } for + grays 0 npixls getinterval + } bind def + + % Utility procedure for colorimage operator. + % This procedure takes two procedures off the + % stack and merges them into a single procedure. + + /mergeprocs { % def + dup length + 3 -1 roll + dup + length + dup + 5 1 roll + 3 -1 roll + add + array cvx + dup + 3 -1 roll + 0 exch + putinterval + dup + 4 2 roll + putinterval + } bind def + + /colorimage { % def + pop pop % remove 'false 3' operands + {colortogray} mergeprocs + image + } bind def + } ifelse % end of 'false' case + + + +414 430 8 % dimensions of data +[414 0 0 -430 0 430] % mapping matrix +{currentfile pix readhexstring pop} +false 3 colorimage + +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d8cee6d8cee6d8cee6d8cee6 +d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6 +d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6 +d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6 +d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6 +d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6 +d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6 +d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6 +d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6 +d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6 +d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6 +d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6 +d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d8cee6d8cee6d8cee6d8cee6 +d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6 +d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6 +d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6 +d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6 +d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6 +d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6 +d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6 +d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6 +d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6 +d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6 +d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6 +d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d6cce5d6cce5d6cce5d6cce5 +d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5 +d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5 +d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5 +d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5 +d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5 +d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5 +d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5 +d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5 +d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5 +d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5 +d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5 +d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d6cce5d6cce5d6cce5d6cce5 +d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5 +d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5 +d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5 +d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5 +d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5 +d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5 +d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5 +d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5 +d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5 +d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5 +d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5 +d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d8cce5d7cce5d7cde6d7cee6d7cee6d7cee6d7cee6 +d7cde6d8cde5d9cce4d8cbe4dacbe4dacce4d9cde5d9cde5d8cde6d7cee6d8cee6d8cbe4 +d8cbe4d9cce4d8cde5d7cce5d5cde6d5cee6d5cfe7d5cfe7d5cee6d5cee6d5cde6d6cde5 +d7cce5d7cce5d8cce5d8cce5d8cce5d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d8cce5d9cce4d8cce5d6cde5d5cee6d5cfe7d5d0e8d5cfe7 +d7cde6d8cbe4dccae2dec9e1dec8e0dec8e0ddcae2dbcce4d9cee6d5d0e6d8cfe6ddcae2 +dec9e1dbc9e2d8cbe4d6cde5d3cfe7d0d0e9cfd1e9cfd1e9d0d0e9d2d0e8d4cfe7d5cde6 +d7cce5d8cce4d8cbe4d8cbe4d9cce4d8cce5d8cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cee6 +d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6 +d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d8cde6d8cce5d9cce4d8cce4d6cde5d5cee6d3d0e8d3d1e9d4cfe8 +d7cde6d8cbe4dcc9e2dec8e0dfc7e0dfc7e0dec9e1dccce4d9cee6d5d1e6d7cfe6decae2 +ddc7e0dcc9e2d8cbe4d6cde5d3d0e8d0d0e9ced2eacfd1e9d0d0e9d3d0e8d4cde6d5cde6 +d7cce5d8cce4d8cbe4d8cbe4d8cce4d8cde5d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cee6 +d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6 +d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d8cde6d8cce5d9cce4d8cce5d6cde5d5cee6d4cfe8d3d1e9d4cfe8 +d7cee6d9cce4dbcae3ddc9e2dec9e1ddc9e1dbcbe3d9cce4d8cee6d5d0e6d6d0e6dbcbe4 +dcc9e2dac9e3d8cbe4d7cde6d4cfe7d2d0e8d2d0e8d3d0e8d5cfe7d6cee6d7cde6d8cde5 +d8cce4d9cce4d8cce4d8cde5d7cce5d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cee6 +d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6 +d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d8cde5d9cce4d8cce5d7cde6d6cee6d5cfe7d5d0e8d5cfe7 +d6cee6d8cde5d8cbe4d9cae3dacae3d9cae3d9cce4d8cde6d6cee6d5d0e8d5d0e7d8cde6 +d9cde5d9cde5d8cde5d7cde6d6cde6d7cee6d7cde6d8cde5d9cce4d9cce4dacbe4d9cbe4 +d9cce4d8cde5d7cde6d6cee6d6cee6d7cee6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cee6 +d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6 +d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cce5d8cce5d8cce5d8cde6d7cde6d6cee6d5cfe7d5cee6 +d5cee6d6cee6d6cde5d7cce5d7cce5d7cce5d6cde5d5cee6d4cfe7d4cfe8d5d0e8d5d0e7 +d6d0e7d6cfe7d7cfe7d8cee6d8cde5d9cce4dbcbe4dccae3ddcae2dccae2dccae3dbcbe4 +d9cce4d9cee6d6cfe7d4d1e7d4d1e8d6cee6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cee6 +d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6 +d7cee6d7cee6d7cee6d7cee6d7cee6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d8cce5d8cde5d8cde5d8cde6d7cde6d7cee6d6cee6 +d5cee6d5cfe7d4cfe7d3cfe7d3cfe7d3cfe7d3cfe7d3cfe7d4cfe7d4cfe7d4cfe8d1d1e9 +d1d3e7d3d2e7d5d0e7d8cee6d9cde5dbcbe4ddcae2decae2dec9e1dec9e1ddcae2dbcbe4 +d9cde5d9cee6d5d0e6d2d3e8d2d2e7d6cfe7d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d8cde5d9cee6d9cee6d9cee6d9cee6d8cde6d7cee6 +d5cfe7d4cfe8d2d1e9d1d1e9d0d0e9d0d0e9d0d0e8d1cfe8d3cee7d4cde6d4cfe7cfd3e9 +cfd5e7d1d2e7d4d1e7d7cfe7d9cde5dbcbe4ddc9e2ddc9e2ddc9e2ddc9e2dbcae3dacce4 +d9cee6d7cee6d5d0e6d5d2e5d4d2e7d6cfe7d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d9cee6d9cee6d9cde5d9cde5d9cde5d9cde5d8cde6 +d6cee6d5d0e8d2d1e9d1d1e9d0d2ead0d1e9d2d0e8d3cfe7d4cde6d5cce5d4cde6cfd3ea +ced6e7d0d3e7d3d1e8d6cfe7d8cde5d9cce4d8cbe4dacae3d8cae3d8cbe4d8cde5d7cde6 +d7cee6d7cfe6d5d0e6d5d0e6d5d0e6d7cee6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d9cee6d9cee6d9cde5d9cee6d8cde5d8cde5d8cde6 +d8cee6d7cfe6d7d0e6d5d0e6d5d0e6d5cfe7d6cee6d6cde5d6cce5d5cae4d4cde6d1d1e9 +d0d3e8d1d2e9d4d1e9d5cfe7d6cde5d6cde5d6cce5d5cde6d4cde6d4cde6d3cfe7d2d0e8 +d3d0e8d5d0e8d7cfe7dacfe6dacfe6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d9cee6d9cde5d5c7e1d6cae4d7cce5d8cde6d9cfe6dbd0e7 +dccfe6d8cae3e2d3e6dbcbdfddcbdfdbc9e0dbcbe4dacbe4d4c6e1d8cce4d6cbe4d3cfe7 +d0cfe7d1cee7d5cfe7d7d0e7d4cde6d0cae4cec9e4d0d0e8c8cae6c8cce6cfd3ead1d5ec +d0d0e8d4cee7dbd1e8d6c7e2d9cae3d9cde5d8cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d7cbe4d6cae4d8cde5 +d9cee6d7cbe4d7cbe4d9cde5d9cee6d7cce5d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d8cde6d9cde5ded1e7d5c7e1d5cae4d7cee6d5cde6d3cae4d6cbe4 +ddcee4e0cce1f0d5e4e3c4d4edcbdbeecee1eccde1e7cde3e1cce3d6c5e0d6cae4dad1e8 +d4cee7d2cae4d4cbe4d6cce5d7cde6d4cde6d0cde6ced0e9cbd2ebc6d1eacad5eccbd3eb +cacde7d0cbe5dbcfe6d9c6e0ddcbe3d9cce4d8cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d9cee6d8cde5d6cae4d7cbe4 +d9cee6d9cde5d7cbe4d7cbe4d8cce5d8cde5d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d8cde6d9cde5ddcde5d6c6e1d6cce5d9d1e8d4cfe7d0cae4d5cae3 +e3cfe4eed2e2f4cad8d29fafd9a3b2e0a9bcdeadc4e4bcd5edd0e3d8c3ded7c8e2d9cee6 +d6cce5d5cae4d6c9e3d8cae3dacde5d9cde5d4cde6cdcde7cfd6ecc6d1ebc7d3ecc8d1ea +cacee7d3cee7ddcfe6d7c3dfdcc8e1d9cbe4d8cde5d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d8cde5 +d8cde5d9cde5d9cde5d9cde5d9cde5d9cde5d9cde5d9cde5d9cee6d9cde5d7cae4d6cae4 +d8cde5ddd0e7d7cbe4d5c9e3d7cbe4d8cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d8cde6d9cde5dbcae3d6c7e1d7cee6d7d2e9d2d1e9d1cee7dacfe6 +e8d1e4f2cbdbdfa3b2b16271b15968b55f72b86c81cb90a9ebc2dae1c6dfd9c8e2d4c9e3 +d7cce5d9cde5dbcbe4dcc9e2decae2dfcce3ddcce4d6cde6d5d5ebcad1e9cad2eacbd2eb +ced0e9d6d0e8dccfe6d6c2ded9c6e0d8cae3d8cde5d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d8cde5 +d9cde5d9cde5d9cde5d9cde5d9cde5d9cde5d9cde5d9cde5d8cce4d9cde5d9cde5d6cae3 +d6cae3ddd0e6d8cce4d6c9e3d7cbe4d8cde5d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d8cde6d9cce4dbc7e1d9cae3d7d0e7d1d1e9cdd1e9d0d2eadbd1e6 +e4c7dae1afbfb860709927329b2029981e2797293dad5a72d49db7eccee2dbcbe3d3c9e3 +d6cbe4ddcce4dec9e1e0c6dfe4c6dee9cae0ebcfe3e7d1e5e1d5e9d6d0e6d4d3e9d2d4ea +d0d0e8d5cee7dccfe6d5c3dfd9c7e1d8cbe4d8cde5d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d8cde5 +d9cde5d9cde5d9cde5d9cde5d9cde5d9cde5d9cde5d9cde5d7cae4d8cce4ded1e7d9cde5 +d6c9e3d9cde5d9cde5d7cae4d8cce4d9cde5d8cde5d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d8cde6d9cce4decae2dfcee5d7d0e8cacee7c3cde7ccd2e9d8cfe5 +d7b5c9c78797951f2ba01e21b12429a71f219b1d239c3347b77187f2cee1e0cee4d6cfe7 +d6cde5d9c9e3e0c5dfe7c4dcefc3dbf2c1d9efbed7e8bad1e0c0d6dbc3d8dccee2d8d1e6 +d0cbe4d0c9e3d7cce5d4c6e1ddcee5d9cde5d8cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d8cde5 +d9cde5d9cde5d9cde5d9cde5d9cde5d9cde5d9cde5d9cde5d7cbe4d9cde5e0d2e8dfd1e7 +d8cce4d7cae4d9cde5d9cde5d8cde5d8cce5d8cde5d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d8cde5dacbe4ddc7e0e0cce3d5d0e8c8cee8c2d0e9ced6ecdcd3e7 +dbb7c8ca82939b1c20b52223c92a2aba2324ab21229f2734a75667f2c9d8e2d0e4d6d0e8 +d1cbe5d9c9e3e7cae0f2c8ddf2bad5e7a0c1c97c9aad627cae7286bb90a3d4b8c9deccdf +d9cee4d5cce5dad1e8d3c8e2d5cae4d7cce5d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d8cde5 +d9cde5d9cde5d9cde5d9cde5d9cde5d9cde5d9cde5d9cde5ddd0e6dbcee6d6c9e3d8cce4 +ded1e7d7cbe4d9cde5dccfe6d8cce5d7cae4d8cde5d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d8cde5dacbe4ddc5dfdac6e0d3cee7cbd4ecc7d8eecedaeddfd7e9 +efc7d5f1a5b1ba2f37c12424cb2626c02424b32123a42128a04250d7aab6e3d2e3cccee7 +cdcde6decde4eccbe0f0b9d4df90b2bb587a9724457f132479142aa25b6dd2a5b4eacddb +e5d3e6dbd0e6dad5ebd0cbe5cdc7e3d4cbe5d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d8cde5 +d9cde5d9cde5d9cde5d9cde5d9cde5d9cde5d9cde5d9cde5e0d2e8d0c3e0b1a5c9bcb0d3 +e0d2e8dccfe6d6c9e3d9cde5d8cce4d7cbe4d8cde5d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d8cde6d9cce4dccbe3d3c4e0d4cde6d5d6ecccd7ecc9d2e7d5d0e3 +ebcedef6becdb83340bb2324c92625c92626bd2324a720219c2b32c2828fedcedfd1cfe8 +d0d2eae0d0e6e9c2dae19cb9c45f7ba0243d931a2099213180172aa86374daadbeeccfe1 +dfcce3d3c5dfd5cee6d0cee7d0d0e9d4cde6d7cee6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d8cde5d9cde5 +d9cde5d9cee6d8cee6d8cee6d7cde6d7cce5d8cce4dbcbe4e4cfe5cbb1cd9f829eb192af +e7cee3e3d0e5d3c4e0d7cbe4d8cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde6d6cee6d4cfe7d4cbe5d9cce4ddcee6d6d1e8d0d2e7d0d2e7 +dbd0e4edc5d8db728bb52530b42223b52423b72423b22122a42021aa4251f5c1d7d7cee6 +d1d1e9dfcde4eec8dcd78c9fac2e3cab2026aa2125881819741326c594a7e3c4dbe1cbe2 +dbcae3d8c5e0d7cae4d7d7ebc8cce4d1cde6d6cde5d7cce5d7cce5d7cce5d7cce5d7cce5 +d7cce5d7cce5d7cce5d7cce5d7cce5d7cce5d7cce5d7cce5d7cce5d7cce5d8cce5dccde5 +d9cce4d5cbe4d3cfe6d6d4ebcac6e2d9d0e7d6cae3dbc5dfeccde1cb9fad8c4d56a66a75 +f6d4e3eacbe1d6c1ddd8cde5d1cce5d0cae4d6cde5d7cce5d7cce5d7cce5d7cce5d7cce5 +d7cce5d7cce5d7cce5d7cce5d7cce5d7cce5d7cce5d7cce5d7cce5d7cce5d7cce5d7cce5 +d7cce5d7cce5d7cce5d7cce5d7cce5d7cce5d7cce5d7cce5d7cce5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d7cde6d4cfe7cdd1ead1cfe8dccbe3e1cae2ddcee4d5d1e7d0d2e9 +d2d2e9e2cae1f1a1bfad2f46aa2822aa2321b42523b92423ae2122ab2834f0a4bcdacae3 +d5d2e9e2cce2e2afc1c56670a51f20b02122ab2121881819893f4ed5b1c7e2cce3d9cae3 +dac9e3d9c6e1d6c7e2d7d7ebc9cce2d1cce5d6cce5d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4dbcce4 +d9cbe4d5cce4d3d2e8d5d7ecc3c3e1d8d0e7d7cae3e0c8e0efc4d5cd8c8e96382da74a46 +f7bcc3f1cadfdbc6e0d6cde5d2d0e8d1cce6d5cce5d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d7cde6d4cfe7cdd1ead0d0e9dccbe3e2cbe2decee4d7cfe6d2d1e9 +d1d1e9dccbe3f6bed6ae455bab2d2dad2522b32423b82423b22122b1242cd4758de3cbe2 +ded4e9edcee1cf8a9bac3b41a92021b021229b1c1e87171ab57b8cddc1d7dbcbe4d7c8e2 +d9c9e3d9c6e0d6c6e1d2d2e7cdd0e4d3cee6d7cce5d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d9c9e3 +dbcbe3dacfe6d5d3e9d6d6ecc6c3e1d5cce5d8cbe4ebd0e3e5acbec56c68a53225ad352d +e1858df7d2e2e0cce3d4c9e3d5d0e8d8d1e8d6cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d5cee6d1cfe8d3d0e8d9cce4ddcce3d9cce4d8cee6d5cfe7 +d5cee6decbe3f6d1e2bc667cae3036af2322b32323b32222ae2022b12223b6465af1d0e2 +ebd4e7f1c4d7c67281a5262cb02322b024228917197d181bdaadbce5cee3dac9e3d8c8e2 +d9c9e3d9c6e1d7c7e1d0cee5d2d3e8d4cde6d7cce5d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d8cae3d9c6e1 +dccae2ded0e7d7d2e9d7d3eacfc5e1d4c8e2ddcee5f1d5e6d490a0b0413daf2a23b52a27 +bb4750f9d9e7e0d0e6d3c7e2d6cce5d9cfe7d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d7cde6d6cee6d6cee6d9cee6d9cee5d9cee6d8cde6d8cde5 +d8cce4ddcbe3f4d6e6da98acb03a43af2222b32323af2322ab1f21b02122a52631f6cbda +f3d2e2e6a4b5c15666ac2529b42523ac25227f15158b3f44eecbd9e4d1e6d9cae3d9c9e3 +dac8e2d9c6e0d9cae3d1cee5d4d2e7d5cee6d7cce5d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d8cae3d9c6e0 +decae2e0d0e6d7cfe7d7d0e7d6c9e3d6c7e1e0d0e6f0cee2c57582a62321bc2424c92b29 +a82026f7d5e3dfd1e7d7cbe4d6c9e3d6cae3d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d9cde5d9cce4d9cde5d6cfe7d5d0e7d6cee6d8cde5d8cbe4 +dbcae3dcc9e2e5d2e6f7cbdcbc4e5eb32425b62423b02422ae2122b42123aa2325eaa9b2 +f9ced8cc7484af2b39ad2122ab2021991c1e751311c8989dedd5e4d9cce4d9cbe4dbcbe3 +d9c6e0d9c6e0decde5d8d0e7d5d0e5d6cde5d7cce5d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d9cae3dac6e0 +decae2decde4d5cbe4d5cce5dbcbe4ddcae2e6d3e7e4bacebe5f68b02122ce2826dc2e2b +b62225e4b0c1e5d4e8e1d1e7dac9e3d7c8e2d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d9cde5dacce4dfcbe3dbcce4d5d0e7d2d2e9d5cfe7d8cce5dac9e3 +dbc8e1dbc8e1d1c8e1f8e2eecb7083b72d38b12322af2422b12222b72323b32523bd6564 +f3c0c3c25461ae2022b62223a920217f15156c1c1df9dfe7ded0e4d2c7e2dacce4dbc9e2 +d8c4dfdbc8e2decde5dfd3e8d3cce3d7cce4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d9cae3dcc8e1 +dec9e1dac9e3d3c8e2d4c9e3decde4e5cde3ebcfe3ca93a1b7474ac32725dc2e25dd2d26 +cd2830a85f73e6cfe3e3cfe5dccbe3d9cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d9cce4dccce4e1cae2decbe3d4d1e8d0d2ead3cfe7d8cce5dac9e2 +dbc6e0dac7e1d0c9e4efd8e8e299adbb4453a92021b02222b92523b72323b424239f2e22 +e68a87cb4347bc2124bf2528aa21227e17168e5d5ff1e7efd4d0e5d1cbe5dacce4d9c7e1 +d8c4dfdecbe3d8c9e2e0d3e8d4c9e2d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d9cae3dbc7e1 +dbc6e0d8c8e2d3cae4d3cce5dacce4e5cce2eec8d7b56d75ad2c2acb2726de2e25da2d25 +cd2627932f40e3bacfdfc8e1d9cae3d9cde5d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d9cce4dccce4e2cae1dfcbe3d4cfe8d0d2ead3cfe7d6cbe4d9c8e2 +dac7e1dac8e2dad2e9decae2f1bbd0bd5c6fa32024b42223c32925b92323b524239a1f1f +c2483bc12928bd2224b321229d1d2085232bbfa0a7d9dbe7cfd1e7d4d0e8d8cce5d8c5e0 +d9c6e0e0cfe5d2c4e0ded2e7d5c8e1d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d8c9e3d9c7e1 +d9c6e0d6c7e2d4cde6d2cee7d6cde5e4cbdff2c3ccab5254a92121cd2926de2e25e02e25 +c52425a12c3ce3a7bce0c3dcd9cce4d6cde5d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cce5d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4dac9e3e0c9e1dccae2d4cde6cfcfe8d0cbe5d4c9e3d6c7e1 +d8c7e1d9c7e1d9cee6dac7e0f1cddfc27b8ca7303db72425c52625b82323b72423a52221 +ae2722be2524bd2224ad1f22981c22934252d3c0c9d4dfecccd2ead0cfe8d7cae4d8c5e0 +d9c6e0dacae3d5c7e2d8cde5d6cae3d7cbe4d7cbe4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d6cae3d7c7e1 +d7c7e1d5c9e3cdcae5d0d0e9d2cfe4f2dfebdea2aab14542b32223ce2926dd2e25dd2d25 +c92526b22935d27c91e0bbd4d9cfe6d5cee7d6cce5d8cce5d8cce5d8cce5d7cbe4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5 +d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5 +d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5 +d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5 +d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5 +d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5 +d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5 +d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5 +d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5 +d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5 +d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5 +d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5 +d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5 +d7cbe4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d9cae3dec8e0decae2d4cbe5cfcde6d0cbe5d3c9e3d5c7e2 +d6c6e1d7c7e1dacbe4dccae3ebd3e4d2a0b2b65163b32328c02525b72323bc2524b12523 +b22423c02424b82223a01e20962732b57689dbd0e0d1dfefcad2eacecce6d6c9e3d9c6e0 +d9c6e0d9c8e2d7cae3d7cbe4d7cbe4d7cbe4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d6cae3d6c7e2 +d7c8e2d4cae4cccae5d0d2eacdcfe2f4dee6c37576b0312bba2423cf2826da2e25d52a26 +c92625bc2429c35266e4b5c9ddd2e6d3cfe7d6cde5d8cce5d8cde5d8cde5d7cbe4d7cbe4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cbe4decae2dbc9e1d4cbe4d0cbe5d1cae4d3c9e3d5c9e3 +d5c8e2d8c8e2dfcae2dfcce3ded1e6e2c3d7c57287ab212cb62223b92323bf2724b82523 +b82523c02624ad212290181b993b4bddaec2e1daeccad7ebcad0e9cfcce6d6c9e3dac7e1 +dac6e0d9c9e3d7cae3d7cae4d6cbe4d7cbe4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d6cae3d6c9e3 +d5cae3d3cbe5d1cfe8d0d2eacecfdfe4c5c7a94845aa2121c12424d12926d62b26cf2926 +c82625c42325b92f3ee3a8bae2d2e6d5d0e6d6cce5d8cce5d8cce5d8cce5d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4dacae2d8c9e3d5cbe4d3cae4d3c9e3d4c9e3d4c9e3 +d5cae3d7c9e3dbc5dfe0cce3d0cce4e9d8ead08fa6aa293db02022bc2424b82323bb2424 +b72423b72423a11f208a191ca45771f1cde0dcd5e9cad1e9cdcfe7d0cbe5d6cae3d9c7e1 +dac7e1d8c9e2d7cae4d6cbe4d5cbe4d6cbe4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d6cbe4 +d3cae4d1cbe5d5d1e9d1cfe7dfdbe7cfa7a99c2b27b52223cc2726d42b26d42c26ce2a26 +cd2926cf2726b12022d78d9ae2c9d8dbd0e6d7cce5d7cbe4d7cbe4d7cbe4d8cce5d8cce5 +d8cce5d8cce5d7cbe4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cbe4d8cbe4d7cbe4d4cae4d4c9e3d4c9e3d4c9e3d4c9e3 +d6cbe4d7cae3d9c1dddfcee5cac9e3e1d6ead9a5bfb74b66ac1f25c02824b12122bc2324 +b42122aa2121931b1d933545be879feacfe3d2c8e2d0d0e8d1cce6d4cbe4d6cae3d9c9e3 +dac8e2d8c9e2d7cae4d4cbe5d4cbe5d5cbe4d6cbe4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d5cbe4d7cfe7 +d4cde6d1cbe5d3cce6d3cae3f4e6f0b982849f2521c62825d42b26d52a26d42c26ce2a26 +d32d26da2c26b32122bc6066d9b0bee2d0e4d8cbe4d7cae4d6cae4d7cae4d8cce5d8cde5 +d8cde5d8cce5d7cbe4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d6cbe4d5cbe4d4cde4d4cbe5d4c9e3d5c9e3d6c9e3d6c9e3d6c9e3 +d7cae4d7cbe4dcc9e2ded0e6d0cbe5d8cee6e4c0d8cb7c959d1f29b82524bc2324c52725 +b724239a1d1e7d1417a25f71e0bdd5dcc9e2d7cbe4d9d0e7d6cbe4d6cbe4d7cbe4d9cae3 +d9cae3d8c9e3d7cae4d2cde6d2cde6d4cbe4d6cbe4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d5cce5d6d0e8 +d7d2e9d6cee6d5c9e3d9c6e0fbe5ef974a4fa22120c22425d22826d32926d32a26cc2726 +d42c26db2d26bc23249d2426d092a1eecfe1dccbe3d7cae4d5c9e3d6cae4d7cbe4d8cde5 +d8cde5d8cce5d7cbe4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d6cbe4d4cbe5d2cde5d2cde6d3cae4d6c9e3d6c9e3d6c9e3d7cae3 +dacae2dacbe3ded1e7d6cae3d6cee6d7cbe4e8d2e5d4a1b8942735a81f21cd2826cb2726 +b52223861617721b21ab7f8fedd8e9d9cde5e4d5e8d6c5e0d8c9e2d7cae3d8cbe3d9cbe3 +d9cbe3d8c9e3d7cbe4d1cce6cfcde6d4cbe4d6cbe4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d5cce5d0cbe5 +d2cee6d7cee6d7c7e1e7cae1f7ccdc8c272eac2322c12624d22826dc2d26d72a26d12826 +d42b26d72b26cb2826991d1ecc8089f3c7dae3cde3d8cce5d5c9e3d5c9e3d7cbe4d8cde5 +d8cce5d7cbe4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d6cbe4d4cbe5d0cfe6d0cee7d3cae4d5c8e2d5c7e2d7c8e2d9c9e3 +dbcae2dbcbe1d5cfe4cec8e2d8cce5d7c6e1e6d2e6dcbad1b05d6ba91f21cc2626cb2626 +ab1f217c1414894b52bfa5b3e3d7ead7cce5e1cee4d9c2dedbc7e1d9c9e3d9cbe3d9cbe3 +d9cbe3d9cbe3d6cbe4d0cee7cecce6d4cbe5d6cbe4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d5cce5cecae3 +d0cee5d8cde6ddc8e1edcadfd799af921f25b32523c62625d62a26e02d25de2e25db2d26 +d62b26d32a26cd2c26a61f20c6606ee8aec6e7cee3d8cde5d5c9e3d4c7e2d7cae4d8cce5 +d7cbe4d6cae4d5c9e3d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d6cbe4d4cbe5d0cee7d0cee7d3c9e3d5c7e2d5c6e1d6c7e1dac8e2 +dccae2dbcbe1d0cadfd4cbe3e0cce3dfc4dee8cbe1efcbd9dc96a1ba282ac02424c02525 +971b1e781717b0838be0cedddad1e7d4c9e3d6c1dde0c9e1dbc8e1d9cae3d9cce4d7cce4 +d8cce3d9cce4d6cbe4d0cde6d0cee7d4cbe5d6cbe4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d4cbe5cfcde5 +d1d1e7dbcee6e2c5def0c2dab55d77971c1fb22122c82725d62a26dd2d26e02e25e32f25 +d92b26cf2826c82725b12122b53c48d78fa6eccfe3d9cde5d5cae3d4c9e3d5cae4d7cce5 +d7cbe4d5c9e3d5c7e2d7cae4d7cae4d5cbe4d5cbe4d5cbe4d5cbe4d7cae4d6cae3d6cae3 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4 +d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4 +d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4 +d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4 +d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4 +d6cbe4d6cbe4d6cbe4d5cbe4d4cbe5d0cee7cfcce6d2c9e4d4c8e2d5c7e2d6c6e1d9c8e2 +dcc9e2dfcae2d7c8daebd5e5debad0d8a7bbe7b1bff4b4bbe4858abd2626bc2324a72125 +781212853e45c9a4b0ecd7e6dacce3d7cae4cfbcdbe0cee4d9cae3d7cae4d5cce4d4cde4 +d5cce4d6cce4d5cce5d2cde6d2cde6d4cbe4d6cbe4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d3cde6ccd0e8 +d0d4eadcd1e7e8c5ddf2b8d3a12e46a71f21b92323cb2726d62a26da2d25de2e25e32f25 +dd2d25d42a26cb2726bd2324af262ccd7b8eefcce1ddcde5d8cde6d1cae4cdc6e2d2cae4 +d7cce5d6cae3d6c7e2d6cae3d6cbe4d3cee7d1cde6d1cde6d3cde6d6cbe4d7c9e3d7c9e3 +d7cae4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4 +d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4 +d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4 +d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4 +d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4 +d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4 +d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4 +d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4 +d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4 +d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4 +d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4 +d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4 +d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4 +d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4 +d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4 +d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4 +d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4 +d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4 +d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4 +d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4 +d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4 +d6cbe4d6cbe4d7cae4d7cae4d7cae4d7cae4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d4cbe4d1cbe5d1cae4d2c9e4d2c8e3d4c8e2d5c7e2d8c8e2 +ddc9e2e3cae1e5c7d9edc4d0c98d97b8686fc96c72d86e70ce4947b62223b72524841720 +621322a2717fdabacaecd2e4decae1dacae2d1c1dedbcee6d6cbe4d4cbe5d3cde6d2cde6 +d3cde6d4cbe5d4cbe5d4cde6d4cbe5d5cbe4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d3cde6c9cfe8 +cad3eadbd0e7ecc4dbe79eb69d1e27b32122c02424cc2726d52a26da2b26dd2d25e02e25 +e02e25d92b26cf2826c52425af2322c46677e8bcd4e4d1e6d6cce5d2cde6cbc8e3d0cbe5 +d7cce5d8c9e3d8c8e2d7cae3d6cbe4d0cee7cdcfe7cecfe7d0cee7d5cae4d8c9e2d8c9e2 +d6cae3d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d7cae4d7cae4d7cae4d7cae4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d6cae4d6c7e2d6c9e3d3c8e3d0c9e3cfcae5d0cbe5d4cbe4 +dccae3e4c7dfe8b8d0c68192aa49559f2428a62121b32523ba2423b42122ad2424681019 +6d364ac09cafeacddee9d0e2dec8e0d7c6e0d7cbe4d7cee6d3cce5d2cbe5d1cce6d1cce6 +d2cde6d3cce5d4cbe5d5cce5d5cce5d7cbe4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d3cce5cad0e9 +c4cde6d8cce3efc1d7c96e84a01d21b92223c02424cf2826d72b26da2b26dd2d25e02e25 +e02e25da2c26d22a26c62625b12223af4755cd99b2eed9e9cfc2ded4cfe7d5d2e9d4cfe7 +d5cae4d5c6e1d8c8e2d8c9e2d6cbe4cfcfe7cbd1e8ccd0e8d0cee7d5cbe4d8c9e2d9c9e3 +d6cae3d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d7cae4d7cae4d7cae4d7cae4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d6cbe4d9c9e3dec5dfddc5dfd5c7e2cecbe5c9cde7c9cfe8cfcee7 +d9cce4e6c4ddd894b09c2c4ba21d2cb2212bb82224b82223bb2224b32123a5222371192d +93667ad9baceeed3e4e1cae0d7c5dfdacbe4d9cde5d4cbe5d2cde6d1cce6d1cce6d1cce6 +d2cde6d3cce5d4cbe5d5cce5d5cce5d7cbe4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d3cde6ced2ea +c9cee6dacce3eabad1a23e54a41d21bd2224c42425d42b26da2d26da2d25de2e25e12e25 +e02e25da2d25d22a26c62625b321239b2835b2778ff2dcebcfbfdad4cde6dbd6ebd4cde6 +d2c7e2d5c6e1d8c8e2d8c9e2d6cbe4cfcfe7cbd1e8ccd0e8d0cee7d5cbe4d8c9e2d9c9e3 +d6cae3d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d7cae4d7cae4d7cae4d7cae4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d7cae4dbc8e1e3c2dce2c4ddd8c9e2cecde7c4d1eac2d3ebcad0e9 +d8cde4e9c4dce294b1ab3051bb2743c02332b32022b32122c2262bb42526991f23aa6a7c +c5a2b7e2c8dce6cfe3d9c4ddd4c2dde4d7ead3c7e1d0c9e4d2cbe5d1cce6d1cce6d1cce6 +d2cde6d3cde6d4cbe5d5cce4d5cce5d7cbe4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d3cce5d1d2ea +d2d1e8e1cae1dea5bb8a192da71f21be2324c92725d62b26da2e25dc2d25df2e25e12e25 +e12e25da2d25d22a26c62625b32122961d25a8627cf4d3e4dfcae2d1c6e1d6d0e8d0cae4 +d2c7e2d7c8e2d9c9e3d8c9e2d6cbe4cfcfe7cbd1e8ccd0e8d0cee7d5cbe4d8c9e2d9c9e3 +d6cae3d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d7cae4d7cae4d7cae4d7cae4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d7cae4dcc8e1e7c1dbe6c2dcdac9e2cecee6c3d3e9c0d5ebc8d3e9 +d7cde5e8c6dce697b7a12448a71d2fb92335bc2334b3212ca821289d2328b45d66eec2d2 +edd3e5e4cee3dfcce3dac9e2d8cae3ded2e8c9c0ded0cae4d1cce6d1cce6d2cde6d2cde6 +d2cde6d3cde6d4cbe5d5cce4d7cbe4d7cbe4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d5cce5d1cde6 +dbd2e7dcbed4bd778e89161eaa1e21bc2324cc2826d12826d62a26db2d26df2e25e32f25 +e02e25dd2d26d42a26c82625b723239d1f259e4b64d8a9c4f6deebd5c4ded1c8e2d0c9e3 +d5cae4d7c8e2d7c6e1d8c9e2d6cbe4d0cee7ccd0e8cdcfe7d0cee7d5cbe4d8c9e2d9c9e3 +d6cae3d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d7cae4d7cae4d7cae4d7cae4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d7cae4dbc8e1e7c4dde5c5dddacae2d0cee6c8d1e8c5d2eacbd1e9 +d8cde4e6c8dff4c2dabb577b9e21409c1c30a42238a72f43ae4655c2767ff4cdd7f2d3e3 +e2cce2decbe3d7c8e1d9cce4ddd0e7cec5e1cec7e2d7d0e8d1cce5d1cce6d2cbe5d2cbe5 +d3cce5d4cbe5d5cce4d7cbe4d7cbe4d7cbe4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cbe4d5cce4 +e2d2e6d5adc2a14f65941b24b12123c02424cf2926d22b26d62a26da2d25dd2d25e02e25 +e02e25dd2d26d42a26cb2726bb2324a3202596334bb57992f7deebe1cbe2d5c9e2d5cce5 +d9cde5d7c8e2d6c5e0d8c9e2d6cbe4d0cee7cdcfe8cdcfe7d0cee7d5cbe4d8c9e2d8c9e2 +d7cae4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d7cae4d7cae4d7cae4d7cae4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d6cbe4d8c9e3e1c8e1e0c9e0d8cbe3d4cce4d0cee6cfcee7d3cee7 +d9cce4e4c9e1ecc2d9e5aac4d28ca5b86d84b06679bc7c8cd4a0ace0b8c0e5c9d7dfcae1 +d4c4ded6c7e1d5c7e1d7cce5d8cfe7cac3e0d4cde6d6d0e8d1cce6d0cbe5d2cbe5d2cbe5 +d4cbe5d4cbe5d5cce4d7cbe4d7cbe4d7cbe4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4ddcee4 +e4cbdfc895a88f2b409c1e26bb2525c22425d12926d42b26d62b26d92b26dd2d25e02e25 +e02e25dd2d26d62a26cc2726be2424a921229423379f526cf3c8daebcfe2d8c9e2d8cde6 +d8cce5d6c9e3d6c7e1d8c9e2d6cbe4d0cee7cecfe7cecfe8d0cee7d5cbe4d7c9e3d8c9e3 +d7cae4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d7cae4d7cae4d7cae4d7cae4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d6cbe4d8cce3d8cce2d6cbe3d5cae3d5cae4d6cae4d8c9e3 +dccbe3e0c9e1dec4dce8cbdfe2c4d6d5b6c7cdb2c1d2bbc8e1cdd9e6d6e4d6c9dbd6cae2 +d8cde5d6cbe4d6cde5d4cde6d0c9e4d1cae4d4cfe7cec9e4d0cbe5d0cbe5d2cbe5d3cce5 +d4cbe5d5cbe4d6cbe4d7cbe4d7cbe4d7cbe4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d8c9e3e2cee3 +e2bfd2bc7c8d83161f9d1d20c02625c42425cd2826d52b26d62c26d92b26dc2d25e02e25 +e02e25dd2d26d62b26ce2826c22525af22229a1d29993c51e6adc0f2cfe1d9c6ded8cde5 +d6c9e3d6c9e3d8cae3d8c7e1d7cae4d2cde6cfcfe8cfcfe8d1cde6d5cbe4d7cae3d8c9e3 +d7cae4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d7cae4d7cae4d7cae4d7cae4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d4cbe4d4cde6d0d0e6d0d0e6d3cce4d6cae4d8c7e1d9c7e1dbc7e1 +dbc8e2dbc9e2d7cbe3d7cfe5d6d2e4d5d3e3d4d5e5d3d3e4d5d5e7d8d5e9d2cee5d4cbe5 +d8cfe7d5cde6d5cee6d3cde6cfc9e4d4cde6d1cce6ccc7e3d0cbe5d1cbe5d3cce5d4cbe5 +d4cbe5d5cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d6cae4d7cbe4d8cce5d7cae4d7cbe4d5c9e3d5c9e3d9cde5d9c8e1e9d0e2 +d6aabaa659688b181ca31f21be2424cb2726cd2826d62b26d72c26d92b26db2d26df2e25 +e02e25de2e25d92b26d12826c62625b52323a21f2698283ac27b8bf7d8e5ddc6dcd9cbe4 +d5c9e3d6c9e3d9cae3d8c7e1d6cae3d2cde6cfcee7cfcfe8d1cde6d5cbe4d7cae3d7cae3 +d7cae4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d7cae4d7cae4d7cae4d7cae4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d4cbe5d0cee7cad3e8cad3e8d0cee7d6cbe4d8c7e1dbc5dfdcc5df +dbc6e0d8c8e2d3cde6ccd1e8c8d3e7c5d6e6c5d5e7c7d3e7cad1e8cecfe8d0cee7d2cde6 +d3cce5d2cde6d2cde6d1cce6d1cce6d0cbe5d0cbe5d0cbe5d1cbe5d2cbe5d3cce5d4cbe5 +d5cbe4d6cbe4d7cbe4d7cbe4d7cae4d7cbe4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d5c9e3d8cce5d8cde5d7cae4d8cce5d4c7e2d4c6e1dbcfe6dac7e0edcee0 +c890a09535449c1e24ae2122bc2324d32a26d12826d62c26d92d26d92d26da2d25de2e25 +e02e25de2e25d92b26d32a26c92825bd2324aa1f21981d269f4556f8d6e4e4c9dcdccce3 +d7cae4d7cbe4d8cae3d7c8e2d6cae3d3cce5d0cee7d0cee7d1cce6d5cbe4d7cae4d6cae3 +d7cae4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d7cae4d7cae4d7cae4d7cae4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d4cbe5d0cee7c7d3eac6d3e9cecee7d3cae4d7c7e1dac4dfdbc4df +dac5e0d7c7e1d4cbe5cecfe8c9d1e9c6d3e9c7d3eacad1e9cdcee7d0cbe5d3cae4d3cce5 +d2cbe5d1cce6d1cce6d1cce6d1cce6d1cce6d0cbe5d2cbe5d2cbe5d3cce5d4cbe4d4cbe4 +d6cbe4d7cbe4d7cbe4d7cae4d7cae4d7cbe4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cbe4d7cae4d6cae4d7cbe4d8cce5d7cae4d7cbe4dfcbe3e6bfd2 +be7a88962933a01f21b32122c12424d62a26d32a26d62c26d92d26d72c26da2b26de2e25 +e02e25df2e25da2b26d42a26cc2826c52525b32122a01f219e3844e9b2c0eacadcdecde3 +d7cae4d7cbe4d8cbe4d6c9e3d6cae3d3cce5d1cde6d1cde6d2cde6d5cbe4d7cae4d6cae3 +d7cae4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d7cae4d7cae4d7cae4d7cae4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d4cbe5d0cee7c9d2eac7d3eacccee8d0cbe5d5c7e2d6c5e0d8c5e0 +d8c5e0d9c6e1d6c9e3d6cae3d4cbe4d4cbe5d4cbe4d5cae4d6c9e3d7c7e1d6c7e2d3cae4 +d2cde6d1cce6d1cce6d1cce6d2cde6d2cde6d2cbe5d3cce5d3cce5d4cbe4d4cbe4d4cbe4 +d6cbe4d7cbe4d7cbe4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d8cce5d6cae4d4c7e2d5c9e3d7cae4d9cee6d8cce5d4c6e1e8d2e6d9a9be +ae5d69961e21a62021bc2324c62625d62b26d42a26d62b26d62c26d62c26d92b26dd2d25 +e02e25df2e25db2d26d52a26ce2826cb2726c02424a820219b272fc2808defcbd9e1cfe4 +d8cae3d7cae4d8cbe4d6c9e3d6c9e3d4cbe4d1cde6d1cde6d2cde6d5cce5d7cbe4d7cae4 +d7cae4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d7cae4d7cae4d7cae4d7cae4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d4cbe5d1cde6ccd0e8cbcfe8cdcde6d0cbe5d3c9e3d5c7e2d5c6e1 +d7c6e1d9c6e1dac7e1dac6e0dac6e0dac6e0dbc6e0dcc6e0dbc5dfdbc4ded9c6e0d5cae4 +d2cde6d2cde6d2cde6d2cde6d2cde6d3cce5d3cce5d4cbe5d4cbe5d5cbe4d5cbe4d5cbe4 +d6cbe4d7cbe4d7cbe4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d8cce5d5c9e3d4c7e2d6cae4d6cae4d9cee6d7cbe4d2c5e0eed8e8c891a5 +9b3a44941b1daa1f21c12424cc2726d92b26d62a26d62a26d62b26d62b26d92b26dd2d25 +de2e25df2e25dc2d25d62a26d12826cf2826c82425b02122991d209c4b56eec8d4e6d0e3 +dacbe3d6cae3d6cae3d6c9e3d6c9e3d4cbe4d2cde6d1cde6d2cde6d5cce5d7cbe4d7cae4 +d7cae4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d7cae4d7cae4d7cae4d7cae4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d4cbe5d1cce6d0cde6d0cbe5d1cbe5d2cae4d3c9e3d5c7e2 +d7c8e2d7c7e1dbc6e0dec5dfdfc5dfe0c5dee0c5dedec3dedcc3dedcc3ded9c6e0d7cae4 +d3cce5d3cce5d3cde6d3cde6d3cde6d4cbe5d4cbe5d5cbe4d5cbe4d6cbe4d7cbe4d7cbe4 +d7cbe4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cbe4d6cae4d6cae4d7cbe4d7cae4d7cbe4d6cae4d5c9e3ead1e4b6788a +912326971b1eaf2022c62425d12826da2b26d72b26d62b26d52b26d62b26d92d26dc2d25 +de2e25df2e25dc2d25d72b26d42a26d42a26cf2826b922239d1e20872631e3b8c4e4cee0 +dbcde4d7cae4d6cae3d6c9e3d6c9e3d4cbe4d2cde6d1cde6d2cde6d5cce5d7cbe4d7cae4 +d7cae4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d7cae4d7cae4d7cae4d7cae4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d6cbe4d5cbe4d4cbe4d3cae4d3cae4d3c9e3d5cae3 +d6c9e3d7c8e2dac8e2dcc8e1dec7e0dfc7e0dec7e0ddc6dfdcc5dfdac6e0d8c7e1d7cae4 +d4cbe5d4cbe5d4cbe5d4cbe5d4cbe5d5cce4d5cce5d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d6cae4d7cbe4d7cbe4d6cae4d7cbe4d5c9e3d5c9e3d8cde5d4b8d4a35d71 +8d191c9e1d1fb42122c82625d42a26da2b26da2b26d72b26d52b26d52b26d62c26dc2d25 +de2e25df2e25dc2d25d72b26d62a26d72b26d42a26c12424a11f2080191fcc9dabe0c8da +dccde4d7cbe4d6c9e3d6c9e3d6c9e3d4cae4d3cce5d2cde6d3cde6d5cce5d7cbe4d7cae4 +d7cae4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d7cae4d7cae4d7cae4d7cae4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d7cae4d6cae3d8c9e3d7cae3d6c9e3d6c9e3d6c9e3d6c9e3 +d6cae4d6cbe4d6cce4d5cde4d6cde4d6cce3d7cce4d7cbe4d6cbe4d7cae4d7cae4d5cbe4 +d4cde5d4cbe4d5cce4d5cce4d5cce4d6cce4d6cbe4d7cbe4d7cbe4d7cbe4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d5c9e3d8cde5d7cbe4d4c6e1d8cde5d4c7e2d7cae4dccfe6b496b28f4254 +901a1ca72021b92323c92725d52a26da2d25dc2e25d72c26d52b26d42b26d62c26dc2d25 +de2e25df2e25dd2d25d92b26d62b26da2b26d72b26c52625a6202182191bb17f8ad6bfd0 +decfe5d8cce5d6c9e3d6c7e2d6c7e2d4cae4d3cce5d2cde6d3cde6d5cce5d7cbe4d7cae4 +d7cae4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d7cae4d7cae4d7cae4d7cae4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d6cbe4d7cae4d7cae3d9c9e3d9c9e3d8c9e2d7c9e3d6c9e3d6cae3 +d5cae4d4cde6d1cee5cfd0e5cfd0e4cfd1e5cecfe5d0cee6d0cee7d1cce6d3cde6d4cbe5 +d4cbe4d5cce4d5cce4d5cce4d6cbe4d7cbe4d7cbe4d7cbe4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d6cbe4d5cbe4d5cbe4d6cbe4 +d6cae3d6cae3d5c7e2d9cde5d6cbe4d0c5e0d9cfe6d6cae3dacbe4e2d0e59b708d84283b +971c1eae2022bc2324c82625d42a26d92b26dd2e25d92d26d62b26d62b26d92d26dc2d25 +de2e25df2e25dc2d25d92b26d72b26da2b26d72b26c62625ab20218d1a1c9e5e69d4b2c2 +e1cee3d9cde5d7cae4d6c9e3d6c9e3d4c9e3d4cbe4d4cbe4d4cbe5d6cbe4d7cbe4d7cbe4 +d6cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cbe4d4cbe4d4cbe4d4cbe5 +d4cbe4d4cbe4d5cbe4d6cbe4d6cbe4d7cae4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4 +d6cbe4d6cbe4d5cbe4d4cbe5d4cbe5d4cbe5d4cbe5d4cbe5d5cbe4d5cbe4d5cbe4d6cbe4 +d6cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d7cae4d7cae4d7cae4d7cae4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cae4d6cbe4d6cae3d7cae3d8c9e2d8c9e2d7cae3d6cae3d7cae4 +d5cae4d4cde6d1cee6d0cfe6cfcfe6ced0e6cfcfe6d0cee6d0cee7d1cde6d3cce5d4cbe5 +d5cce5d5cce5d5cce5d5cbe4d6cbe4d6cbe4d6cbe4d7cbe4d7cae4d7cae4d7cae4d7cae4 +d6cbe4d6cbe4d6cbe4d6cbe4d7cae4d7cae3d7cae3d6cbe4d4cbe5d3cde6d4cde6d4cbe4 +d7c9e3d7c9e3d6c7e1d9cee6d5cce5cdc6e2d8cfe7d9cbe3e5cde2e6c2da96516d8a1a24 +a01f20b32222bd2324c62625cf2826d62a26da2e25d92d26d92b26d92b26da2d25dd2d25 +de2e25de2e25db2d26d92b26d62b26d62a26d32a26c82625b421239d1e20953740d39eac +e3c3d5dbcae2d6cce5d3cbe5d2cae4d4c9e3d6c9e3d6cae3d8c9e3d7cbe4d7cbe4d6cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cae4d5cae4d6cbe4d5cae4d4cae4d4cae4d3cae4d3cae4d2cbe5d0cbe5 +d3cbe5d4cbe4d5cbe4d7cae4d8c9e3d9c9e3d8c9e3d7cbe4d7cbe4d7cbe4d7cae4d6cae3 +d6cae3d7cae4d5cbe4d4cbe5d3cde6d2cde5d1cde5d3cde5d4cbe5d5cbe4d6cbe4d7cae3 +d7cae3d6cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d6cbe4d6cbe4d6cbe4d6cbe4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d7cae4d7cae4d6cae3d7cae4d7cae4d7cae4d6cbe4 +d5cae4d4cbe5d4cbe5d4cbe5d3cce5d3cce5d3cce5d4cbe5d4cbe5d4cbe4d4cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d7cae4d7cae4d7cae4d7cae4d6cbe4 +d5cae4d5cae4d5cae4d5cae4d6cae3d9c9e3d8c9e3d5cbe4d1cce6d0cee7d0cee7d3cce5 +d9c8e2d8c7e1d6c7e1d8cce4d4cde6cecae4d4cee5decce1f3d0e1dba0b79d3c51971c1e +a71e21b32122bc2324c52625cc2726d22a26d62a26d92b26db2d26dd2d25dd2d25dd2d25 +dd2d25dd2d25db2d26d92b26d62a26d12826cc2726c82625be2324ad2022931b1dcc7d87 +e0b2c0dec9dad5cfe5cecee7cdcbe6d4c9e3d8c8e2d9c7e1dbc8e1d9cae3d7cbe4d5cce5 +d5cbe4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d4cae4d4cbe4d4cae4d4cae4d6c9e3d6c9e3d5cae3d4c9e3d3cae4d1cae4d0cbe5cfcce6 +d0cbe5d2cbe5d5cbe4d7cae3dac8e2dbc7e1dbc8e1d9cae3d7cbe4d7cbe4d9c9e3d8c9e2 +d7c9e3d7cae4d4cbe4d3cde6d1cee5cfcfe5cfcfe5d0d0e6d3cee5d5cbe4d6cae3d9c8e2 +d9c8e2d7cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d6cae3d9c8e2d8c9e2d5cbe4d0cee7cecfe8d0cee7d3cce5 +d9c8e2d9c8e2d5c4e0d4c6e1d2cbe5d2d0e8dad3e8e1cddff8cfdebf73879825349b1d1f +ab1f21b52323bc2324c22625c92725cf2826d52a26da2b26dd2d25df2e25e02e25df2e25 +dd2d25dd2d25da2d25d92b26d62a26d32a26cd2926c62625c12424b320239e1d1fbd5963 +e7afbbedd3e0d7d0e4cccfe8cdcde7d4c9e3d8c7e1dbc6e0dcc7e0d9cae3d6cce4d4cbe5 +d5cbe4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d4cae4 +d4cbe4d3cce5d3cce5d5cae4d6c9e3d6c9e3d6c9e3d6c9e3d5cae4d3cbe5d1cce6d0cee7 +d0cee7d1cce6d4cbe5d6cbe4d8c9e3dac8e2dac9e2d8c9e3d8cbe4d8c9e3d9c9e3d9c9e3 +d7c9e3d7cae4d4cbe4d3cde6d0cfe6cfd0e4cfd0e4d0d0e5d1cfe5d4cbe5d7cae3d8c7e1 +d8c7e1d6cae3d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d6cae3d9c8e2d8c9e2d5cbe4d0cee7cfcfe8d0cee7d3cce5 +d9c8e2d8c7e1d7c8e2d3c5e1d1c9e4d5d0e8ddd3e8e4ccdef4c5d5933a4f8d18209d1d1f +ab1f21b52323bc2324c42625c92725d12826d62a26da2b26dc2d25dd2d25df2e25df2e25 +dd2d25dd2d25da2d25d92b26d62a26d42b26ce2926c62625c12424b62223a31f209d2c36 +d9a1aeefd2e0dacfe3cfcfe7cdcde6d3cae4d7c7e1d9c6e0dac6e0d8c9e3d6cce4d4cbe5 +d5cbe4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d4cbe4 +d2cde6d0cee7d0cee7d3cde6d6cbe4d8c9e3d9cae3dacae2dacbe3d8cbe3d5cde4d3cee4 +d1cfe5d0cfe6d0cee6d2cde6d3cde6d4cbe5d5cbe4d5cce4d5cce4d7cae4d7cae4d6cae3 +d6cae3d6cae3d5cae4d4cbe5d1cee6cfcfe5d0d0e5d0d0e6d3cee5d5cce5d7cae4d8c8e2 +d8c8e2d7cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d7cae4d8c9e2d8c9e2d5cbe4d1cde6d0cee7d1cde6d3cce5 +d7c9e3d8c8e2dbcce4d6cae4d2cae4d4cde6ddcee4ebcee0d7a2b27f1a2d921a1fa31f20 +ae2022b72323bf2424c52725cb2726d12826d52a26da2b26dc2d25dd2d25df2e25df2e25 +dd2d25dd2d25da2d25d92b26d62a26d12826cc2726c82625c52625bc2224aa2021901a1e +c27e8ae3bdccddcbe0d5cee5d0cee7d3cae4d6c9e3d7c6e1d9c8e2d7cae4d4cbe4d4cbe5 +d5cbe4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d4cae4 +d4cbe5d1cde6d1cde6d5cce5d7cae4dbc9e1decae2decae1decae1dbcbe0d8cde1d5cee3 +d2cfe4cfcfe5cfcfe6d0cee7d0cee7d1cde6d2cde6d2cde6d3cde5d4cbe5d5cae4d6cae4 +d6c9e3d6c9e3d7cae4d5cbe4d3cde6d2cde5d2cfe5d3cee5d4cde4d5cce5d7cae4d6cae3 +d6c9e3d7cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d7cae4d7c9e3d6cae3d5cbe4d2cde6d1cde6d2cde6d4cbe4 +d6cae3d6c9e3d8cae3d7cbe4d6cbe4d6cce4e1cfe4f5d3e3b87988831829971c21a62021 +b12122ba2323c12624c72725cb2726d12826d52a26da2b26dc2d25dd2d25df2e25df2e25 +dd2d25dd2d25da2d25d92b26d62a26cf2826cc2726ce2926c82625b92323ad2222971d20 +ac5b67d6a9b7ead1e3d8cde5d3cee7d2cbe5d4c9e3d5c8e2d6c9e3d6cbe4d4cbe5d4cbe5 +d5cbe4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cbe4d4cbe4d6cbe4d8c9e3dbc9e2ddc7e0dec8e0dec8e1decae2dbcae2d8cbe4d5cee5 +d1cee5d0cee6d0cee7d0cee7d0cee7d1cce6d1cde6d1cee6d1cee6d2cde6d3cce5d3cae4 +d4c9e3d5cae3d6c9e3d7cae4d6cbe4d4cbe3d5cee5d5cee5d5cce4d5cce5d6cbe4d7cae4 +d6c9e3d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d7cae4d6cae3d6cae3d5cbe4d4cbe5d2cbe5d3cce5d4cbe4 +d7cae4d6c9e3d5c7e2d6cae3d7cbe4d9cce4e8d0e3f6ccdc9a4f5f8d1e2d981c1fa72021 +b32122bc2324c12624c72725cb2726d12826d52a26da2b26dc2d25dd2d25df2e25df2e25 +dd2d25dd2d25db2d26d92b26d62b26d22a26cf2826d22a26cb2726b82323ad2122a02327 +9f414ccd98a7f0d2e3decee4d6cee6d3cbe5d2c9e4d3c8e3d4c9e3d4cae4d4cbe5d4cbe5 +d5cbe4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cbe4d7cbe4d7cae4d9c9e3dbc7e1dcc8e1dcc8e1dbc7e1d9c9e3d7cae4d4cbe5d1cde6 +cfcee7cdcfe7cecee7cfcee7d0cee7d1cce6d1cde6d0cee7d0cee7d1cce6d2cbe5d2cbe5 +d3cae4d4c9e3d5cae3d6c9e3d7cae4d7cae4d7cbe4d7cbe4d7cbe4d6cbe4d5cbe4d5cbe4 +d4cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d6cbe4d7cae4d6cbe4d5cbe4d4cbe5d4cbe5d4cbe4d5cae4 +d6cbe4d5cae4d4c7e2d4c7e2d7cae3e0cce3ebcbdfe3b2c2872e3e9220299a1c1fa81f21 +b52123bd2324c22625c82725cc2726d12826d52a26d92b26db2d26dd2d25de2e25de2e25 +dd2d25dd2d25db2d26da2b26d72b26d52a26d42a26d32a26cc2726bc2324b02022a42125 +982d39c48292eec6d8e2cce3d8cde6d4cde6d0cbe5d1c9e4d2c9e4d3cae4d4cbe4d4cbe5 +d5cbe4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cbe4d6cbe4d6cbe4d8c9e3d9c8e2d9c8e2d8c8e2d6c9e3d4c9e3d1cae4cdcbe6cacde7 +cacfe9c9cfe8cacee8cccde7cdcde6d0cde6d1cce6d0cee7d0cee7d1cce6d1cbe5d1cae4 +d2cbe5d3cae4d4c9e3d6c9e3d8c9e2d9cae3d8c9e3d8cae3d7cbe4d7cbe4d4cbe4d4cbe5 +d4cbe5d4cbe4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cbe4d5cbe4d5cbe4d5cbe4d5cae4 +d4cae4d3cae4d4cbe5d4c9e3d8c7e1e3cae1eac3d7c88d9d7f1824931c209d1e1fab1f21 +b72323bf2424c42625c82725cd2826d12826d52a26d92b26db2d26dd2d25dd2d25dd2d25 +dd2d25dd2d25dc2d25da2b26d92b26d92b26d52a26cf2826d02726c62625b42023a11f20 +962129b96b7be4b1c5e8cbe1dccde4d4cde6cfcbe5cfcae4d0cae4d2cbe5d4cbe4d5cbe4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d4cbe4d4cbe5d4cbe5d6cbe4d6c9e3d6c9e3d6c9e3d4c9e3d2cae4d0cbe5cccce6cacee8 +c8cee8c7cfe9c9cfe8cbcde7cdcce6cfcde6d2cde6d3cee7d3cee6d2cde6d1cbe5d1cae4 +d1cae4d3cae4d5cae3d6c9e3d9c9e3dac9e2dac9e2d9c9e3d8c9e3d7cae4d4cbe4d3cce5 +d2cbe5d4cbe4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d4cae4d4cbe4d4cae4d5cae4d6cbe4d7cae4d6cae3d5cae4 +d3cae4d1cae4d6cfe7d5cbe4d6c5e0e3c8dfeac0d4ae63757d1318961c1ea11e20af2022 +ba2323c12424c52625c92825ce2826d22a26d52a26d92b26da2d25dd2d25dd2d25dd2d25 +dd2d25dd2d25dc2d25db2d26d92b26d92b26d62a26ce2826d22a26cc2726b92223a21e20 +991d22aa4c5dcf93a7ebc9dde0cce3d2cae4cecee7cacae5cdcbe5d3cde6d5cce5d4cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d4cae4 +d2cbe5cfcde6cfcde6d2cbe5d5c9e3d7c9e3d9cae3d9cae3d9cbe4d9cde5d7cee6d1cce6 +cccce6cdcfe8cecee7cdcde6cecce6d0cbe5d4cbe5d4c9e3d8cde6d5cce5d4cde6d2cbe5 +d2cbe5d3cae4d3c8e3d6c9e3d9c8e2dac8e2dbc8e1d9c9e3d8c9e3d6cbe4d4cbe4d1cce6 +d0cde6d4cbe4d4cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cbe4d5cbe4d5cbe4d5cbe4 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4cae4d2cbe5d3cae4d4c9e3d6cae3d6c9e3d6c9e3d6cae4 +d1cae4d0cbe5d4cde6d6cce5d6c3dee3c7dde9c2d69033478314179b1f1fa61f20b32122 +be2424c42425c62625cb2726ce2826d32a26d62a26d92b26da2d25dd2d25dd2d25de2e25 +de2e25dd2d25dd2d25dc2d25da2b26d92b26d72b26d42a26cf2826c82625ba2323aa1f21 +a120239a2c3cb76d82eabed4e4cde2cec6e1d0d1e9c2c6e2cacae5d5cee7d7cce5d4c6e1 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d3cae4 +cecbe5cacce7cacde7cecae5d6cae3dfcbe3dfc6dfdfc0dae1bfd8e5c7dce7cbdfe1c8dd +dbc9dfdccfe4dbd0e7d6cce5d2c7e2d3c9e3d7cbe4d5c4dee3d1e6d9cce4d9cee6d3cae4 +d3cae4d4cbe5d0c5e1d6c9e3d8c7e1dac7e1dbc7e1d9c8e2d7c9e3d6cbe4d3cbe5d0cbe5 +cfcde6d2cbe5d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4cae4d4cae4d4cae4d4cae4 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4cae4d1cbe5d2cbe5d4cae4d6c9e3d8c7e1d8c7e1d6cae4 +d0cbe5cfcde6d0cbe5d4c9e3dcc6dfe6bed5d89bb08216298e181ba01e1fad2121b92323 +c12424c52625c82625cc2726cf2826d32a26d62a26d72b26da2d25dd2d25dd2d25de2e25 +de2e25dd2d25dd2d25dc2d25da2d25da2b26d62b26d32a26cf2826c92725be2424b02022 +a41e2199202cae586ddca8c0e6cae0d2cbe4d0d4ebc6cae6cdcde7d4cde6d5c7e2d3c4e0 +d6cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d3cae4 +d0cce6cbcce6bebeded6cae3f0dbeaeac3dac38aa4a76278a75d6dbd747ed28e97efb2bb +f9d0dbf9d4e2f5d0e2efcee2ebcee2e6cde3e1c8e0e1c4dde7cce2d8c1ddd0c0ddd2c6e1 +d2cae4cfc6e1ccc2dfd9cde5d7c6e1dac7e1dbc6e0d9c7e1d7c9e3d5cae4d2cbe5cfcde6 +cecce6d2cbe5d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4cae4d4cae4d4cae4d4cae4 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d2cbe5d0cbe5d1cbe5d4cae4d8c7e1d9c7e1d9c7e1d6c9e3 +cecce6cccde7cbcae5d4cbe4e5cee3e5b6cfb56a807a11139e1f1fa41e20b12222bc2324 +c22425c62625c92725cc2726cf2826d42a26d52a26d72b26da2d25dc2d25dd2d25dd2d25 +dd2d25dd2d25dd2d25dc2d25db2d26da2b26d62b26d32a26cf2826cb2726c22425b52123 +a71e21981b1fa23d53cd8ea6eccbdfd9d0e7cdd1e9c6cde8cdcfe8d2cae4d5c6e1d6c6e1 +d6c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d2c9e4d1c8e3d4c6e1e9cde2e9b2d0c3728aa23142971d1e9f1d1fa71e21ab2121ba3326 +be3f39b64448bf5a6bd57e99eda6c7f3bfd8f3c7dcf4c3daf7d6e5eed0e3e2cae2dfcee5 +d9cee6cfc6e2c7c0ded3c9e3d6c9e3d9c7e1dac7e1d9c8e2d7c9e3d5cae4d1cae4cdcce6 +cdcce6d2cbe5d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4cae4d4cae4d4cae4d4cae4 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d2cbe5cfcde6d0cde6d5cae3d9c7e1dbc6e0d9c6e1d6c9e3 +cdcce6cbcde7cacbe6d8d0e7ead1e4dda9c3a24c6488161aa32020ab2021b32122bc2324 +c52625c82625cb2626cd2826cf2826d42a26d62a26d92b26da2b26db2d26dd2d25dd2d25 +dd2d25dd2d25dd2d25dc2d25db2d26da2b26d72b26d32a26ce2826c92725c52625ba2323 +ac1f219c1c1f9c2c42bf788fefcadeded4e9c7cde6c4cae5cccee8d1c7e2d6c5e0dbc9e2 +d6c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5cae3 +d3c5e1cfbfdde1cbe2f0c9ded189aaa53a53a22027ba2824cb2e26c72825c12424bc2424 +b42222b12122b1242db32e46b13458ae3b65ab466ebd6f8eca8ea9d4a5c1e3c2dcdcc8e1 +d7cbe4d7cfe7d0cbe5d5cee6d4c9e3d6c9e3d9c7e1d9c8e2d7c9e3d5cae4d1cae4cdcce6 +cdcce6d2cbe5d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4cae4d4cae4d4cae4d4cae4 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d2cbe5cfcde6d0cde6d5cae3d9c7e1dac5e0dac5e0d6c7e2 +cdcde6cacfe8cacee8d9d2e9e4cae1cc94ad96364c951b1fa01d1fb32323b52323bf2424 +c62625c92725cc2626ce2826d22a26d52a26d62b26d92b26da2b26db2d26dd2d25dd2d25 +dd2d25dd2d25dd2d25dc2d25db2d26da2d25d92b26d32a26cc2726c82625c52625c02324 +b32022a51e21992133ad5b74ebc0d5ddd2e6c4cbe3c5cde7cecfe8d3c6e1d8c3dfdcc9e2 +d6c7e2d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5cae3 +d5c8e2d9c6e0e1c5deefc1d9d88eaeae415da12026ae2022be2524c12624cc2826c82625 +c42425c32525bd2224b52226b2212eb3243dad2a4c9b2e4e8e3957a96988e4b9d4dec5df +d5c6e0d8d0e7d0cde6d0cce6d3cbe5d6cae4d7c8e2d8c7e1d6c9e3d4cae4d1cae4cdcbe6 +cdcbe6d2cbe5d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4cae4d4cae4d4cae4d4cae4 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d2cbe5cecde7cfcde6d4c9e3dac7e1dbc5dfdac5e0d6c7e2 +cccde7c9cfe8cacee7d7d0e7dabed8bd809b8c2239981b1fa01d1fb82523bc2424c12424 +c82625cb2726cc2626cf2726d32a26d62a26d62b26d92b26da2b26db2d26dd2d25dd2d25 +dd2d25dd2d25dd2d25dc2d25db2d26da2d25d92d26d42a26cc2726c62625c52625c32525 +bb2224ac1e229a1c289e455de3b4cadbcfe4c6cee6c9d1e9d0d1e9d3c5e1d8c0dddbc7e1 +d6c7e2d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5cae3 +d7cbe4dbcbe4dec5dfedc3dbe4a6c4c46c89b04258ae2b3ab1242ab32223b82223bd2224 +c02324c02525c02324bd2224bc2124b92224b0222ca2273e79122c964867e4b8d2e5cae1 +d6c7e1d4cde6cac9e4cdcde6d1cbe5d4cae4d6c9e3d7c9e3d6c9e3d4cae4d1cae4cdcbe6 +cdcbe6d2cbe5d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4cae4d4cae4d4cae4d4cae4 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d2cbe5cdcde7cecde7d4c9e3dac7e1dcc5dfdbc5dfd6c7e2 +cccde7c8cfe8cacfe8d4cde6d9bad4be7d978a1d33981b1fa51e20b82423c02624c52625 +c82625cc2726cd2726cf2726d32a26d62a26d72c26d92b26da2d25db2d26dd2d25dd2d25 +dd2d25dd2d25dd2d25dd2d25db2d26da2d25d92d26d52b26ce2926c62625c52625c42325 +be2324b020229d1d27a0435be0afc5dbcde3cad2e8c8d1ead0d1e9d4c6e1d7c0dddcc6e0 +d6c7e2d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4cae4 +d3cae4d2cbe4d8cbe3e4cee3e1bed7d4a2bfcc8ca9ca7c99c96f8ac15c72ae3b4dab2f3b +aa242bab2122b02122b52323bc2324bd2324b72423a824338a1a32ab5573e7b4ceeacbe1 +dacae2d3cde6cccde6ced0e8d0cde6d3cbe5d6cae4d6c9e3d6cae3d4cae4d0cae4cdcbe6 +cdcbe6d2cbe5d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4cae4d4cae4d4cae4d4cae4 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d2cbe5cdcde7cecde7d4c9e3dac7e1dcc5dfdac5e0d6c7e2 +cccde7c8cfe8cdd2ead5cce4dfc1d9cc8ea78e243c961b1eaf2222b12122bd2424c52625 +c82625cb2726cd2726cf2826d32b26d62c26d92b26da2d25db2d26dc2d25dd2d25dd2d25 +dd2d25de2e25dd2d25dd2d25da2d25da2b26d92b26d62c26d12926c82625c52625c22425 +bb2224ac1e22a02130b0566ee6b8ccdfd0e4cdd2e9c5cee7cecee7d4c6e1d9c3dedcc7e0 +d6c7e2d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4cae4 +cfcbe4c7cbdecfd2e3d4d3e7d4cbe3d8c9e2e0c9e1e1c6dfe1bcd9d8aacac689a8bb758c +bd6576be5d65c14d48ba3327b42523b92523ba2723a11e25b34965d38ba3efb8d1e9c8de +dccae2d3cce4d0d2eacdd1e9cecee7d0cbe5d4cae4d6cae4d6cae4d4c9e3d1cae4cfcbe5 +cfcbe5d2cbe5d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4cae4d4cae4d4cae4d4cae4 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d3cbe5d0cde6d0cbe5d4c9e3d8c7e1d9c6e1d8c6e1d5c9e3 +cdcce6cacee7d1d1e9d8cde6e8cbe1dca5be9e455d971d2bb0272ea62021b32123c12424 +c62625c92725cc2726cd2926d22b26d62c26dc2d25dd2d25de2e25de2e25dd2e25db2d26 +de2e25e02e25e12e25db2d26d92b26da2d25dc2d25da2d26d32b26c92825c12624b72323 +ad2022a21f25a63b4ec57f94e9c1d6e0d1e6d0d0e7c7c9e5cecae5d4c6e1d9c6e0dcc9e2 +d6c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4cae4 +d2cde5cfd0e3ced1e3cccee4d0cee7d5cfe7dad1e8dacfe7dacde5dccae2e5cae1ebc5d5 +f7c4cdf5bcbde8928ecb5548b12823ae2122b12322ae3c4cde90a7f4c5daeec6dbe6c9e0 +dac9e2d0cae4d0d1e9c7cbe5cacee7cdcee5d0cde5d2cbe4d4cbe4d4cae4d4c9e3d4c9e3 +d3c9e3d4cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4cae4d4cae4d4cae4d4cae4 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4cae4d2cbe5d2cbe5d4cae4d6cae4d6c9e3d4c9e3d3cae4 +d0cbe5d0cbe5d0c9e3decfe6eacfe3e6b9d2ca88a0a94c679821369d1e2aa91f24bb2324 +c32525c52625c92825c82625d12b26d62b26de2e25e32f25e32f25e12f25df2f25d52a26 +e12f25e32f25e93124d92b26d62c26e03125e33025d92b26cf2826cd2a26bd2624a31f20 +991f219f3a48c27d8fefc1d5e5c7dcdac9e2d4cbe4d2cbe5d2c9e4d5c7e2d5c6e1d5c7e2 +d6cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5cae3 +d7cce5dacde5cec1dcd8cce5e0d4e9d1c5e1ccc1ded5cbe4dacfe7d5c7dfdac7d7f5d9de +f6cac7d79894b65753a22725ac2222bf2b33bc3d4ff6b4c8ebc0d6e8c6dce5c8dfe0c9e1 +d7c9e3d2cbe5cfcee7cdd1e9c9d1e7c8d1e7cad0e5cccfe5d1cde5d5cbe4d7c8e2dac7e1 +d9c6e1d6c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4cae4d4c9e3d4c9e3d4cae4d3c9e3d1cae4 +d0cae4d2cbe5d5cce5d6c8e1dac5dfe8c9dff3c6dae9aac3c16a87a238559c2033aa1f21 +b72223c12424c52725c92725ce2b26d32b26dd2d25e32f25df2e25df2f25e13025dd2f25 +e73424e32f25e32f25d42a26cf2926d42b26d72b26da2e26d52d26be2624a11e209d2529 +b55d68d496a6e9bccee6c6dadcc8e1d6cae3d6cae4d4c9e3d3c8e3d4c9e3d5c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5cae3 +d6c7e2d6c4dfdac7e1dccae3cebcdbd2c5e1dad0e7d3cce5ccc6e1dacee1e9d0dbf9d2d9 +cc8a8f922b328c181ca32734ad2d44bf4c68f5b2caeabfd5dbc9e1dccae3dbcbe3d8c9e2 +d5c7e2d2c9e3d0cbe5cecee7cacfe6c9d2e5cbd1e4cdd0e4d1cee5d6cbe4d9c8e2dbc6e0 +dbc6e0d6c7e2d5cae3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4cae4d4c9e3d5cae3d5cae3d4c9e3d3c8e3d3c9e3 +d0cae4d1cae4d2cbe5d4c9e3d8c9e2e3cbe2f1d0e2f7cee0f4b9ced78da5c5637bb33244 +b6242bbd2428b92123bf2324c12525cd2626da2c26e52e25e42f24e02e25d92b26ce2826 +da2c26e02e25e02e25da2e27ce2926c72725c12625b52323a72021a42228be5361dc8a99 +eeb0c2f1c1d4e9c6dbe0c8dfd9c9e2d6cbe3d4cbe4d4cae4d4cae4d4c9e3d5cae3d5cae3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5cae3 +d5c7e2d4c4e0e5d5e8d3c0ddd7c8e2d7cee6c8c5e2c8c9e4dad7ebeddbebf6ccdecc758d +b72e51b62442b12241aa264dc86c8df4c4d9f0d2e3d8cae3d3cee7d4cde6d4cbe5d4c9e3 +d3c8e2d1c6e2d0c7e2d0c9e3d1cbe5d0cee5d0cfe5d0cee5d2cde4d5cbe3d6cae3d8c7e1 +d8c7e1d6cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5cae3d6cae4d6cae4d6cae4d6cae4d4c9e3d3c8e3 +d1cae4d0cbe5d0cbe5d3cde6d6cde5d8c8e0d9c3dae6c6daf5ccdef4c2d4eeacc1ec94a7 +eb8397dd6c7fc24456b73446ad2632be2d37c6252ad2282ad4292ad22b29cf2c29ca2b27 +d73230d82a2bcb2526cc3337b72c30a72228b0313dd06170e98a9aea9eafefa9bdf2b8ce +f1c4d9eac8dde1c9e1dac9e2d6cbe3d4cbe4d2cbe5d2cbe5d3cbe5d4cae4d5cae3d5cae3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d7cce5dbcee6c9beddded5ead4cfe7c3c3e1cecee7dbd3e9e3cde3e1b2cdbe6889b03059 +ab2038b62147b22857ce6c95eab3d0e0cbe3c8c6e0cbcfe8cacfe8cecee7d0cce6d1cae4 +d2c7e2d2c7e2d4c6e1d4c6e1d6cae4d5cbe4d4cbe3d4cce4d5cce4d5cce4d5cbe4d5cae4 +d6cae3d4cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4cae4d5cae3d6cae4d6cae4d6c9e3d6c9e3d4c9e3 +d2c9e4d0cbe5d0cee7cfcde6cfcbe4d1cde4d6cde3dacbdfdec7d8e8c9daf4cddef1c0d3 +f3b9cef0b2c8e09fb3e4a3b4d38e9dd68190a72d3d971c1f991c1e9f1f20a02120981e1e +9c201f9d1e1f9e1d20d77982e39ca6de9dade39fb3eeaac4f3b6cfeebcd5efc3daedcadf +eacee2e0cbe2d8c9e2d5cae3d3cbe5d2cbe5d1cbe5d2cbe5d3cbe5d4cbe4d4cbe4d4cae4 +d4cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d5cce5d5cee6cacae5becee8bed2eabfcfe6d8d6ebecd3e6e2a8c7c15d83b02953a7203b +b02a50b6436cd385a9e8bbd6e4d2e6d3d3eac7d5ecc5d1eac5cee9c9cde7cbcbe5cfc9e4 +d2c7e2d4c6e1d5c6e1d7c6e1d8c7e1d9c8e2d7cae3d7cbe3d5cbe3d4cce4d3cce4d2cbe4 +d3cbe5d4cbe4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4cae4d4cae4d5cae3d6cae4d6c9e3d5c8e2d6c9e3 +d3c8e3d0cae4cecbe5cacae5cacce6cfd1e9d4d4ead4cfe4cec6dad6c8dbe2d1e4dfcce2 +e3cfe4e5cfe3dfcadfedd8e7e3c9d8eec4d197485a78151e70100f70100f751211721210 +72111071110f751016d39ea6f1d3dbefd4e3edcce1ebc9dfe8c6dee4c8e0e3cbe2ddcae2 +d7c7e1d2c5e1d0c7e2d2cae4d1cbe5d0cbe5d1cbe5d2cbe5d3cce4d4cbe3d4cbe4d4cbe4 +d4cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4cae4 +d2cbe5cfcce6c5cde8b7d2e9bbd6e9cfdbede3d2e5e1a8c4c96388b3264cb4223eaa2037 +af4261d495afe5c5dbdacfe6cbcde7ccd1eacbd4ecc5d0e9c5cee8c8cbe6cbc9e4cfc8e3 +d3c8e2d5c6e1d7c6e1d8c5e0d9c5e0dbc6e0d9c7e1d7cae3d6cbe3d4cbe3d1cce5d0cde6 +d0cde6d4cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d3cbe5d3cbe5d4cae4d5cae3d6c9e3d6c7e2d5c8e2 +d4c9e3d3c9e3cbc6e3cacae5ccd0e8ccd2e9cacee6cacee4cecfe5d3cfe4d1cce3d1cfe5 +d2d2e9cfcfe7cccee5d7d8ecd1d0e2f0deec854c606711205f0f0e5b0f0c5c100c5b100c +5d110d62110e5f0d16ccadb3e2d7e1d6cfe2d7c9e2d9c9e3dacce4ddcee6d7cbe4d1c7e2 +cfc6e1cfc7e2cfcae4d0cae4d0cbe5d0cbe5d1cbe5d2cbe5d3cce4d4cce4d4cce4d4cbe4 +d4cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4cae4 +d1cae4cecbe5c9cde7cad6ebd4d5e9e1cee1d9a5bac2627eb32947b32133b32131be4054 +ca8795e9c8d2e0d3e2cecfe3cacbe5cec9e4cdc8e4cfcee7cdcde6cdcae5cec7e2d1c7e2 +d4c8e2d6c7e2d7c7e1d9c6e0d9c5e0dac5e0d9c7e1d8c9e2d7cae4d4cbe4d1cce5d0cde6 +d0cde6d4cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4cae4d1cbe5d0cde6d2cbe5d4cae4d6c9e3d7c7e1d7c7e1 +d5c8e2d4c7e2d0c7e2cecbe5cfcfe8cacee7c3c9e4c5cbe4d0d5ebd2d4eacdcde5cdcfe7 +cacee7c5cbe6c5cde8cbd3eac4c7dff2e5f06f384f500e0f5c0f0c5f100d580f0c50100d +540f0c62110e5c0d16cfb5bfdcdae7c9cde3c8c9e4cdcbe5d0cde6cfcbe5cdc8e4cecae5 +d1cde6d6d0e8d5cfe7d0c9e4d1cae4d2cbe5d2cbe5d3cbe5d4cbe3d4cce4d4cce4d4cbe4 +d4cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4cae4 +d0cae4cfcae5d9d2e9e0cee4ecc4dadf98b0bf5871af283cb12028b02122aa2223d97979 +f9d1cce2c6c3dbc9cee1d3e2e3d1e5ddc4dedcc2dddfcbe3dac9e2d6c6e1d5c6e1d5c6e1 +d5c6e1d6c7e2d5c6e1d5c5e0d8c7e1d8c6e1d9c8e2d8c9e2d6cae3d5cae4d2cbe5d1cbe5 +d1cae4d4cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d2cbe5cfcde7cecee7d0cde6d2cbe5d5c9e3d7c7e1d8c7e1 +d6c7e1d5c7e2d8cce5d3cbe5cccae4cacae5cdcfe7cbcfe7c7c9e4c9cae4d0d0e8d1cfe8 +cccbe5c9cae5cccfe8d0d1e9c7c8e3f9eaf2783a4f610e1270100f751211751211731110 +71110f741111610e13d3b2bedbd6e6c7cee5cbd1eacfd3eacdd1eacacae5c9c8e4cdcae5 +cfcbe5cec8e3cfc7e2d2c9e4d3c9e3d3cae4d4cae4d4cbe4d4cbe4d4cbe4d4cbe3d4cbe4 +d4cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4cae4 +d1cce6d2cfe7dbcde5f4ccdfe08eacbf4463b82436c02429bf2324ae2022ad2522e47f73 +eaa095e3aaa3e0adafdfb0bceab8cdf1bfd7f3c3daf0c6dbe9c3d9e3c3dcdec4dedac5df +d8c7e1d5c8e2d4c6e1d4c6e1d6c9e3d6c7e2d7c8e2d6c9e3d6c9e3d6cae4d4c9e3d2cae4 +d2cae4d4cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d1cbe5cccee7cacee7cdcde7d0cbe5d4c9e3d5c8e2d8c7e1 +d8c6e1d7c6e1d5c7e2d4c9e3d2c9e4d0cae4d0cbe5cfcde6d0cbe5d1cbe5d3cae4d6c9e3 +d7c8e2d8c9e3d8cce4d7cbe4d6c7e1f1d0e38c34527d121791181ca11f20a42121a42120 +9d1e1fa01e2589182ddaa8bae2d0e2d0cce3cbcee7cacde7cbcde7cdcbe6d0cbe5d0c9e4 +d2c9e4d3c8e3d4c9e3d5c9e3d6c9e3d6c9e3d6cae4d6cae4d5cae4d4cae4d4cae4d4cae4 +d4cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d3cae4 +d0cde6d0d0e8e8d4e7eba3c5ad2851c4233ecb2528cd2726c92526ba2323b72423af2422 +a92121a31f20a42325b23d4acb6a7be797a8f7b5c8f8c3d4ecacbff3c1d5eec4dae2c6df +dcc9e2d8cae3ccc4e1d2cbe5d2cbe5d4cae4d5cae3d6cae3d6c9e3d6c7e2d6c9e3d5c8e2 +d5c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d1cbe5cacee7c8d1e9cbcfe7d0cde6d4cae4d6c7e2d9c7e1 +d9c5e0d8c6e1d7c6e1d5c8e2d5c7e2d3c8e3d3c9e3d3cae4d3c9e3d5c9e3d6c7e2d9c6e0 +d9c5e0dac7e1d9cae3d9cae3decae2f7d7e6a0445d9a1b25aa1f21b82423bd2724ba2724 +b32423b1222b992033e1adc0ebd6e6d7d0e5d0cde5cfcde7d0cde6d1cbe5d4cae4d5cae3 +d6c9e3d6c7e2d7c8e2d7c6e1d7c6e1d6c7e2d6c7e2d6c9e3d6cae4d6cae4d5cae3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d3cae4 +d0cee7cfd1e8e1d0e5e094b4af284dc02230c82425cc2626cc2726c52625bd2324c02624 +ca2826c92725c12425b62223aa20229e21269a222a96212fa8475ac77c90e3acc0e8c3d9 +dec8e0d5cbe4d2cde6cacbe6cecee7d0cbe5d3cbe5d6cae4d6c7e2d7c7e1d6c6e1d6c6e1 +d5c7e2d5c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d1cbe5cacee7c8cfe8cacee7cfcde6d4cae4d7c8e2d9c6e1 +dac6e0dac6e0d8c7e1d7c7e1d5c8e2d6c9e3d6c9e3d5c8e2d5c6e1d6c6e1d7c6e1d9c7e1 +d7c7e1d5c9e2d4cbe4d4cbe3d9cde4f8deeba55163a4252cb12322bb2524c12824bf2924 +b62523b1242697202ce2b0bee8d7e7d6cfe3d4cce3d4cce4d5cbe4d6cbe3d6cae3d7c9e3 +d8c7e1d8c7e1d9c7e1d9c7e1d9c7e1d7c6e1d6c7e2d6c9e3d6c9e3d6c9e3d6c9e3d5cae3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d3cae4 +cfcde7cbd1e8d8cfe4ca95ada6465fab273ab52327bd2224c32525c62625bf2424bd2324 +be2424be2424be2324bd2224b92323b32323aa2122981b1f921b2a9a3b4ec88799e1b9cd +ddc7dcd2cae2d3d4eac7cde7cbcfe7cecee7d1cbe5d5cae3d7c8e2d6c7e1d7c6e1d7c6e0 +d6c6e1d5c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d1cbe5cbcee7c9cfe8cbcee7d0cde6d4cae4d6c7e2d8c7e1 +d9c6e1d9c6e1d8c7e1d6c7e1d6c7e2d6c9e3d6c9e3d5c8e2d8c7e1d8c6e1d9c6e1d9c8e2 +d6c9e3d4cae3d1cbe4d0cce4d5cde0f8ddeaa44e5da32326b32323bf2524c52825c22725 +b92423b12223961c27dfacbae3d3e5d5cee2d7cce3d8cbe3d8cbe3d8cae3d9c9e2d9c8e2 +d9c8e2d9c8e2d9c8e2d9c7e1d8c7e1d7c8e2d6c7e2d6c9e3d6c9e3d5c9e3d5c9e3d5c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4cae4 +cfcae5cacce4ded6eadab8cdd397abcc7685c55963b63a3da72221a62121aa2122ab2121 +ad2222b32223b82324be2224bf2324b92223b32123b42d378a171c892238bd7c90e0b9cd +decadfcfc9e0ccd0e8cad0e8cbcee7cecde7d3cae4d6c9e3d7c8e2d8c7e1d7c6e1d7c6e1 +d5c6e1d6cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d2cbe5cecde7cbcde7cdcde7d1cbe5d4c9e3d6c7e2d8c7e1 +d8c7e1d7c6e1d6c7e2d6c9e3d5cae3d5cae3d5cae3d6c9e3d6c7e1d8c6e1d9c6e1dac8e2 +d8c9e2d4c9e3d1cae4d0cce4d3cbe1f8d9e6a34555a11f20b72423c72725cd2926cb2825 +c02424b62223981c28dfaabee4d1e5d5cce3d8cae3d9c9e2d9c9e2d9c9e2d8cae3d7c9e3 +d7c9e3d6cae3d6cae3d6c9e3d6c9e3d6c9e3d6c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d3cae4d4cde6e3d6eae0c7dde9c5d7e2b3c0e2abb3d99ea3d09497cf9093c17b80ba6c72 +b0505ea93847a92634ad2128b32223b82123b12123a1232a8215209d4a61ce97ade5c4da +ddcde4cbc8e2c3c7e2ced1e9cdcde7d0cbe5d5cae3d6c7e2d8c7e1d8c7e1d7c6e1d5c8e2 +d6c9e3d5cae3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d3cae4d0cde6cfcde6d0cbe5d3cae4d6c9e3d6c7e2d7c8e2 +d7c8e2d6c9e3d5cae3d4cae4d3cbe5d2cbe5d3cbe5d4cae4d6c9e3d6c7e1d8c7e1d9c7e1 +d8c7e1d5cae4d2cbe5d1cce6d4cbe2f9d7e6a34255a11e20ba2323cc2726d42a26d12926 +c52625ba22259a1b2ee1a8c2e4d1e5d5cae3d6cae3d7c9e3d7c9e3d7c9e3d6cae3d6cbe3 +d5cae3d4cbe4d4cae4d4cae4d4cae4d5cae3d5cae3d5cae3d6c9e3d6c9e3d6c9e3d6cae4 +d5cae3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5cae3 +d5c8e2d6c7e1dfcde4dac6e0e7d3e6dfccdce4d2dfe4d4dee2d4dde4d4dfd6c2d0d4b6c7 +cd9fb4c6859bc06a81be5468be4453c03a47b73542992839993e58cb8aa4e5b7d1e3c9e1 +d8cde5cecce6c4c6e3d0d2ead0cbe5d4c9e3d7c8e2d9c7e1d9c7e1d9c8e2d6c9e3d5cae3 +d4cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4cae4d2cbe5d1cae4d3cae4d5cae3d6c9e3d7c8e2d6c7e2 +d6c9e3d5cae3d2cbe5d0cbe5d0cde6cfcde6cfcde6d1cbe5d4cae4d6c9e3d6c9e3d8c7e1 +d6c9e3d4cbe4d1cde6d0cee7d3cee5f8d9e7a4445aa21e21bc2324ce2826d62a26d32a26 +c62625bc2127991c34dea8c6e1d0e6d4cae4d6cae4d6c9e3d6cae4d5cae4d4cbe4d2cbe5 +d1cbe5d0cde6d0cbe5d0cbe5d1cbe5d3cbe5d3cbe5d4c9e3d5cae3d6cae4d6cae4d6cae4 +d6cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5c9e3 +d6c6e1d5c1ddd8c5e0d4c6e0dbd3e9cecee4ced0e4cecfe4cdcbe3d1cbe4d8cde5e0cee5 +e7cfe4e8c7dee8b8d3e0a6bdd994a4d38591cc7c8abd6f86cd8ca7efc0d7e8c9e0d5c4e0 +d1cae4d2d0e8cdcce6d0cde6d3c9e3d6c7e1dbc6e0dcc6e0dbc7e1d9c9e3d6cbe3d2cbe5 +d0cbe5d3cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4cae4d4cae4d5cae3d6c9e3d6c9e3d7c8e2d6c7e2 +d6cae4d3cbe5d0cde6cdcde7cccee7cbcfe7cccee7cfcde7d1cbe5d4cae4d5cae3d6cae3 +d6cbe4d1cbe5cfcde7cdcee7d0cde5f7dbe9a3475ea41e23bb2224cc2726d42a26d22a26 +c62625ba2129971c38dca8c9ded0e6d0cbe5d3cae4d3c9e3d4cae4d2cbe5d0cbe5cfcde6 +cecee7cdcde7cdcde7cecee7cfcde7d0cde6d1cbe5d4cae4d4c9e3d5cae3d6cae4d6cae4 +d5cae3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d6c9e3 +d8c9e2ddcae2dac7e1d0c9e4cecfe8c2cbe4c6cce7d0cee7d8cce5d9c8e2d8c1dddac2dd +dcc5dfdcc8e1decbe3dfcee4e0cfdde2d0d7e8ccd4ebc0d5f0c6ddedcfe3e0cae2cfc4e0 +cbc6e3d2d0e8d5d1e9cec7e2d5c8e2d9c6e1ddc5dfddc5dfdcc8e1d8c9e3d4cce4cecee6 +cecee6d2cbe5d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5cae3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5c9e3d6c9e3d6c9e3d6c9e3d6c7e2d6c9e3 +d4c9e3d2cbe5d0cbe5cecee7cccee7cccee7cdcde7cfcde6d0cbe5d2cbe5d4c9e3d6cbe4 +d4cce5d0cbe5cdcde7cacde7cfcae4f5d9e8a1465ba41e21bb2224cc2726d42a26d12826 +c62425bc2227991e36deadcbe0d3e8d0cce6d1cae4d3c9e3d1cae4d0cae4d0cbe5cfcde6 +cecde7cdcde7cdcde7cecee7cfcde7d0cbe5d1cbe5d4cae4d4c9e3d5cae3d6cae4d5cae3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5cae3 +d5c7e2d5c2ded3c2dfd1cce5cfd0e9c6cde7c8cce7d0cbe5d5c7e2d4bfdcd9c1ddd7bfdc +d3bfdcd1c2ded0c7e3cdcde5ccd2e5ccd3e0d4d0dfe1c9e0e2c7dfd4bedbd9cae3d7cee6 +cdc9e4ccc8e4d4cee7cbc3e0d5c7e2d9c6e1dcc6e0ddc6dfdbc7e1d6cae3d3cce4cfcee5 +cfcde6d4cbe4d6cae4d6cae4d6cae4d6cae4d6cae4d6cae4d6cae4d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4cae4d3cae4d3cae4d3cae4d4cae4d2cbe5d3cae4d3cae4d2cbe5 +d4cae4d4cae4d4cae4d4cae4d4cae4d4cae4d4cae4d4c9e3d4c9e3d6cae4d6cae4d6c9e3 +d6cae4d5cae3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5cae3d6cae4d6cae4d6cae4d6cae4 +d4c9e3d4cae4d3cbe5d2cbe5d2cbe5d1cae4d2cbe5d2cbe5d4cae4d4cae4d4c9e3d6c9e3 +d5c9e3d1c9e4cecce6cccce6d0c9e3f6d7e7a14452a01f20b82323c92725cf2826cc2626 +c32325b72323991f20dfadc1dfd1e7d0cbe5d2cae4d3c9e3d3cae4d4cae4d4cae4d2cbe5 +d2cbe5d2cbe5d2cbe5d2cbe5d2cbe5d4cae4d4cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5cae3 +d6cae4d6c9e3d6c9e3d4cae4d1cae4d0cbe5d1cae4d3cae4d4c9e3d5c8e2d6c6e1d6c6e1 +d5c7e2d5c9e3d4c9e3d2cbe5d1cbe4d2cde5d4cbe3d6cae3d8c7e1d6c9e3d6cae3d4cae4 +d2cae4d1cae4d1cae4d3cae4d5c9e3d6c9e3d6c7e2d6c9e3d6cae3d6cae4d4cae4d2cbe5 +d4cbe4d6cae4d6c9e3d6c9e3d6c9e3d6c9e3d6cae3d6cae3d6cae3d6cae4d6cae4d4c9e3 +d4c9e3d4c9e3d2cae4d1cae4d0c9e4d0c9e4d0cbe5d0cbe5d0cbe5d0cbe5d0cbe5d0cde6 +d0cbe5d0cbe5d0cbe5d1cbe5d1cbe5d2cbe5d3cae4d5cae3d6cae4d6c9e3d7c6e1d8c7e1 +d7c6e1d6c9e3d5cae3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5cae3d6c9e3 +d6c9e3d4c9e3d0cbe5d0cbe5d3cae4f7d9e8a54852a32120b82323c82625cd2726cb2626 +c12324b42423951e1ddda9badfd0e6d1cae4d4cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5cae3d5cae3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5cae3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d6cae4d6c9e3d6c9e3d6c9e3d6c7e2d6c7e2d6c9e3d6c9e3d6cae3d6cae3d6cae3d6cae4 +d5cae3d4c9e3d3c9e3d2c9e4d1cae4d0c9e4d0c9e4d0cbe5d0cbe5d0cbe5d0cbe5d0cbe5 +d0cbe5d0cbe5d0cbe5d1cbe5d2cbe5d3cbe5d4cae4d5cae3d6cae4d6c7e2d7c6e1d8c7e1 +d7c6e1d6c9e3d5cae3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d6cae4d6c9e3 +d6c9e3d4cae4d1cce6d2cde6d4cbe5f7dce9a74d55a62321ba2423c82425cf2726cc2626 +c12324b42222941d1ddca9badfd0e6d1cae4d4cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d5c9e3d5c9e3d5c9e3d6c9e3d6c9e3d6c9e3d6cae3d6c9e3d6cae3d6cae3d7cae4 +d6cae3d6cae4d6cae4d6cae4d5cae3d4c9e3d3c9e3d3cae4d2cbe5d2cbe5d3cae4d3cae4 +d3cbe5d3cbe5d3cbe5d4cbe4d4cae4d4cae4d5cae4d6cbe4d6cbe4d6cae4d6cae3d6c9e3 +d6c9e3d5cae3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d6cae4d6cae3 +d6cae3d4cbe4d1cce6d1cce6d5cce5f7dceaa74d55a62421bb2324c92526cd2726cb2626 +c02325b6252397201edfacbbe1d1e6d1cae4d4cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d5c9e3d5c9e3d6c9e3d6cae3d6cae3d6cae3d6cae3d6cae3d8cae3 +d6cae3d6cae3d6cae3d7c9e3d7c9e3d7c9e3d6c9e3d5cae3d4cae4d4c9e3d5cae3d5cae3 +d6cae4d6cbe4d6cbe4d6cae4d6cae4d6cae4d6cbe3d6cbe3d6cbe3d5cbe4d4cbe4d4cbe4 +d4cae4d4cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d6cae4d7cae4 +d7cae4d4cbe4d1cce6d2cde6d4cbe5f8dce9a64a52a42221bb2324c92625cc2626c82425 +bf2424ba26249d2520e2b1c1e2d3e7d1cae4d4cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d3c9e3d3c9e3d3c8e3d4c9e3d5c9e3d5cae3d6cae4d6cbe4d7cae4d6cae3d8cae3 +d8cae3d8cae3d8cae3dac9e2dac9e2dac9e2d7c9e3d6cae3d5cae3d6cae4d6c9e3d6c9e3 +d7c9e3d7c8e2d7c9e3d7c9e3d7c9e3d6cae3d6cae3d6cbe3d5cbe4d4cce4d2cde5d2cde5 +d2cbe4d4cbe4d4cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d6cae4d7cae4 +d7cae4d4cbe4d1cce6d1cbe5d3cae4f7d8e7a44751a22020ba2423c92625cc2626c62525 +be2424bc27249f2922e4b3c3e3d3e7d1cae4d4cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d3c9e3d3c9e3d3c8e3d3c8e3d3c8e3d4c9e3d5cae3d5cae4d7cae4d6cae3d6cae3 +d8cae3d8cae3d9cae3dac9e2dac9e2dac9e2d7c9e3d6cae4d5cae3d6cae4d6c9e3d6c7e2 +d8c7e1d9c7e1d9c8e2d9c8e2d9c8e2d7c9e3d6cae3d6cbe3d5cce4d3cce4d1cee4d0cfe4 +d0cee5d2cbe4d4cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d6cae4d6cae3 +d6cae3d4cae4d1cce6d0cbe5d2c9e4f7d8e7a4474fa12020b92323c92625cc2626c72525 +be2424bc27249d2620e3b1c0e2d3e7d1cae4d4cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d3c8e3d3c9e3d4c9e3d4c9e3d4cae4d5cae4d5cae4d6cbe3 +d6cbe3d6cbe3d6cae3d7c9e3d7c9e3d7c9e3d6cae3d4cae4d4cae4d4c9e3d5cae3d6c9e3 +d7c8e2d9c7e1d9c7e1dac7e1d9c7e1d8c7e1d7cae3d6cbe3d5cce4d2cde4d1cfe4cfcfe4 +cecee5d1cce5d4cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d6cae4d6cae3 +d6c9e3d4c9e3d0cbe5d0cbe5d3cae4f7d8e7a44751a22020b82323c82425cd2726cb2626 +c02325b52423971f1edfabbae0d0e6d1cae4d4cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d5c8e2d5c8e2d5c9e3d4c9e3d4c9e3d4c9e3d4cae4d4cae4d4cae4d4cae4d4cbe4 +d4cbe4d4cbe4d4cbe4d4cae4d4cae4d4cae4d4cae4d1cae4d0cbe5d1cae4d3cae4d4c9e3 +d6c9e3d7c6e1d8c7e1d8c7e1d9c7e1d8c7e1d7c8e2d6cae3d5cae3d2cde5d0cfe5cdcfe5 +cecee6d1cce5d4cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d6cae4d6c9e3 +d5c7e2d3c9e3d0cbe5d0cbe5d4cbe4f8dbe9a74a53a42221b82423c62625d02826cd2726 +c22325b121228e191bd8a5b6decde5d1cae4d4cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d6cae4d6c7e2d6c7e2d6c9e3d6cae4d5cae3d4c9e3d4cae4d1cae4d0cae4d0cbe5d0cbe5 +d0cbe5d0cbe5d0cbe5d0cbe5d0cbe5d0cbe5d0cbe5cecce6cecde7d0cde6d0cbe5d1cae4 +d3c9e3d6c9e3d5c7e2d7c7e1d7c7e1d7c6e1d7c8e2d6c9e3d5cae3d4cbe4d1cce5cfcee5 +d0cee6d3cce5d4cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5c9e3d6c9e3 +d5c7e2d3c9e3d0cbe5d0cbe5d4cbe4f7dce9a94e56a92522bb2324c62625cc2626c92526 +bf2424b52423961f1edeaabadfcfe5d0c9e4d3cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d5c9e3d8c6e1d8c6e1d7c7e1d5c6e1d4c6e1d3c7e2d2c9e4d1cbe5d2cfe7cccae4cccae5 +cccae5cac9e4c8c6e3cbc9e4d0cee7d0cee7cbc9e4c8c9e5cbcce6cfcfe8cbc9e4c9c4e1 +d3cae4cbbfdddfd3e8d5c8e2d4c6e1d5c7e2d4c6e1d5c7e2d5c7e2d4c9e3d3cae4d0cbe5 +d1cae4d2c9e4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5c9e3d6cae3 +d6c9e3d3cae4d0cbe5cfcae4d2c9e4f7d9e8a64a52a42120ba2423c92625cd2726cb2626 +c12324b7252399211fe0adbde2d2e7d1cae4d3cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d6c9e3d4c3dfd6c3dfd7c6e0d7c8e2d7cae4d6cbe4d2c9e4cdc6e2c8c5e2cdcbe5cecce6 +cdcbe6cac8e4c9c6e3cac8e4d0cce6d0cce6cbc8e3d0cce6d0cde6d1cde6d4cde6d6cee6 +ddd1e7d8cde6d4c7e2cabcdcd0c3e0d4c6e1d4c6e1d4c6e1d4c7e2d3c8e2d3c8e2d3cae4 +d3cae4d3c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5c9e3d6c9e3 +d6c9e3d3cae4d0cbe5cfcae4d1c8e3f5d6e6a3454da02020b82323c92625cf2726cb2626 +c12324b725239a211fe1adbee1d1e7d1cae4d3cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d6c9e3d7c6e1d7c5e0d6c4dfd5c6e0d6c9e3d6cbe4d4cbe5d0cae4cdc8e4cdcae5cecbe5 +cecae5cdc8e3cdc6e2cec7e3d2c9e4d1c8e3cfc4e1d8cae3d5c6ded4c4ddd7c9e2d9cce4 +d9cae3d8cbe4d7cbe4d9cde5d6c9e3d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c7e2 +d3c8e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5c9e3d6c9e3 +d5c7e2d3cae4d0cbe5d0cae4d2c9e4f6d6e6a1434b9d1e1fb72323c92526cd2726c92625 +c02325b6252398201edfacbbe1d1e6d0cae4d3cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d5c9e3d9cae3d9c7e1d6c5e0d5c5e0d4c6e1d4c9e3d3cae4d3cae4d3cbe5d0c7e3d1c8e3 +d3c9e3d6c9e3d6cae3d8c9e2d8c7e1d6c2ded5bddbe3c8e0e7c7dce7c9dde9cde2e4cae1 +d3bbd9c0acced3c3dfd8cbe4d6c9e3d3c7e2d3c8e2d2c7e2d2c7e2d3c6e1d4c6e1d4c6e1 +d4c7e2d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5c9e3d5c7e2 +d5c7e2d3c9e3d0cbe5d0cbe5d3cae4f6d7e6a2454d9e1e1fb52323c62625cc2626c92526 +bf2424b52423971f1edfabbadfcfe5d0c9e4d3cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d6c7e2d7c9e3d7c9e3d6cae3d4c7e2d2c6e1d1c5e1d1c5e1d3c6e1d6c7e2d7c6e1 +d9c6e0dbc5dfdec5dfe2c5dee5c7dfe6c3dce7c2dbf3c2d8f4bfd0ebb6c9dba9bfc99cb4 +ad84a1916e8fd3bcd9d9c8e2d6c7e2d3c7e2d2c9e3d1c8e3d2c7e2d3c8e2d3c6e1d4c6e1 +d4c7e2d5c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5c9e3d5c7e2 +d4c6e1d3c9e3d0cbe5d0cbe5d4cbe4f8dae8a44750a12020b82323c82425cd2726c92625 +bf2424b6252397201edfacbce0d0e6d0c9e4d3cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d1c5e1d4c7e2d6cbe4d6cbe4d4c9e3d2c6e1d0c4e0d1c3dfd3c4e0ddc9e2dfc7e0 +e1c3dde4c1dbe8c0d9ecbdd6eebad4ecb5d0ebb2cbe49aabde8c9bc87584ab5a6d914860 +7f3e59713a5bdfc0dae1cbe2d9c9e3d4c9e3d2c9e4d0c9e3d0c9e3d1c8e3d3c8e2d4c7e2 +d4c7e2d5c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5c9e3d5c7e2 +d4c6e1d3c9e3d0cbe5d0cbe5d4cbe4f7dbe9a64a52a42120ba2423c92625cf2726cb2626 +c12324b725239a211fe1adbee1d1e7d1cae4d3cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d1c8e3d0c9e3d0c7e3d0c7e2d0c6e2d3c7e2d6cae3ddcce4e4cfe4e0c4dee5c3dc +edc4dbf1c4d9f0bdd2e9aac0d68ca1be6d82b75769a5323ea62b349a20288c1926882236 +88344a995a73efcadedcc1dad9c6e0d5cae3d2cae4d0cae4d0cae4d0c9e3d2c9e3d3c7e2 +d5c7e2d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5c9e3d6c9e3 +d6c9e3d3cae4d0cbe5d0cbe5d3cae4f7dae8a74a53a42221bb2324c92625cf2726cb2626 +c12324b725239a211fe0aebee1d1e7d1cae4d3cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d3cae4d2cde6cdcae5ccc7e3cdc6e2d0c7e3d6cbe4dacce4ddcae2e0c7e0f3d4e5edc0d7 +d8a2b9c58196b26274a24452952934901b22971d1fa72021aa2021a11f20981c1f941f27 +923041d492a3f9d1e1ebcbdedec8dfd7cae3d2cae3d0cbe5d0cbe5d0cbe5d0cae4d3cae4 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d3cae4 +d3cae4d3cae4d3cae4d3cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4cae3d3cae4d1cae4d0cae4d0cae4d0cae4d1c9e4d1c9e4d1c9e4 +d3cae4d3cae4d4c9e3d4c9e3d4c9e3d4c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c8e2d6cae3 +d6cae4d1c9e4cec9e4ccc9e4d0c7e2f7d8e7a74753a62121b92223c92526cd2726cb2626 +c02424b52423971e1fdcaac0ddcee5d0c9e3d4c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3 +d5c9e3d5c7e2d5c7e2d5c7e2d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d3cae4d4c9e3 +d3cae4d3cae4d3cae4d3cae4d3cae4d3cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d3cae4d3cae4d4c9e3d4c9e3d4c9e3 +d3c8e3d3c8e2d3c8e2d2c9e3d4c9e3d5c9e3d5c8e2d5c8e2d6c7e2d6c7e2d6c7e2d6c9e3 +d6c7e2d5c4e0d7c4dfdcc8e1e6d0e5edd5e6edd1e4e4bfd9ce9fbcbb819c954d668d364d +8a273b8b1d2a901a20931b1d951a1d9b1e1fa82121ad2021af2022ac2021a723239b232b +8b2537f3b9c8efc6d8e3c7dddac8e1d5cae3d2cae3d0cbe5d0cbe5d0cbe5d1cae4d3cae4 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d3cae4d0c9e3 +d0cae4d0c9e3d0c9e3d1c9e4d2c9e3d2c9e3d3c8e2d3c8e2d5c7e2d5c9e3d5c9e3d5cae3 +d5cae3d5cae3d5cbe0d5ccdfd2cde3cfcde6cccce6cbcce6cbcbe5cccbe5cdcbe5cdcae5 +cfcae4d0c9e3d2c9e3d3c8e3d4c9e3d5c7e2d5c8e2d5c6e1d5c6e1d6c7e1d6c7e1d6cae3 +d4c9e3cfc8e3cdc8e4ccc7e3d0c6e1f6d5e5a34153a11f20b92223cc2626d22826c92725 +c72625b62323a0252ee0adcbdfcfe6d3c8e3d5c7e2d7c7e1d7c7e1d6c6e1d5c6e1d5c6e1 +d5c8e2d5c7e2d5c7e2d5c7e2d4c7e2d4c7e2d4c7e2d3c8e2d3c8e2d2c9e3d2c9e3d3cae4 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d3cae4d3cae4d3cae4d1cae4d3cae4 +d2cae4d1cae4d1cae4d1cae4d1cae4d1cae4d3cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d2cae4d0cbe4d0cbe4d5cbe4d6cae4d2c6e1 +d2c6e1d4c9e3d4c9e3cbc2e0d4cae4d3c5e1d4c5e0d9c6e1dac7e1d8c4dfd7c4dfdbc7e1 +e7cee3f6cee0f7c9dbf4bed2e8abc0d28ea2ba6d80a64e629c3649992939971f279a1e22 +9d1e20a11e20a51f20a82021aa2021ac1f21b02122b52123b02122a41e20971d1e87181f +832e46f4c8dae2c8e0d9c9e3d4c9e3d2c9e4d1cae4d1cae4d3cae4d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d3cae4d0cae4 +cfcae4d0cae4d0c9e3d1c9e4d2c9e3d2c9e3d3c8e2d3c8e2d4c7e2d5c7e2d5c9e3d4c9e3 +d4c9e3d5cae3d5cce2d5cbdfd1cce3cecde7cbcce6cacce6cacce6cccbe5cdcbe6cdcae5 +cfcae4d0c9e4d1c8e3d3c8e3d3c7e2d4c7e2d5c7e2d5c8e2d5c6e1d6c6e1d6c7e1d6c9e3 +d3cae4cec8e3cdc8e4cdc8e3d3cae3f8d9e6a74553a51f21bc2224cc2626d22826c92725 +c82725b52423a0272fe1aecbdfd0e6d3c9e3d5c8e2d6c7e2d6c7e2d6c7e1d5c6e1d5c8e2 +d5c8e2d5c8e2d5c7e2d5c7e2d5c7e2d4c7e2d4c7e2d4c7e2d3c7e2d3c8e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d3c9e3d3cae4d3cae4d2c9e4d3cae4 +d3cae4d2c9e4d2c9e4d2c9e4d2c9e4d3cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d3cae4d2cde5cec9e2d3c9e3d4c7e2d1c4e0 +d1c6e1d4cae4d5cce5cfc4e1d3c6e1d6c6e1dbc5dfe2c8e0ebcce1eecee2eccbe0e7c4dc +e9bad2cf8a9dc87684b95e6daa4654a0333e9b262f9b1f249a1d1f9a1c1fa41f20a81f21 +aa1f21ad1f22ae2022b12122b32122b32122b42122b72323ae2022a62121971e1e8b2633 +aa687cf3d1e2decbe3d0c5e1d0c9e3d0cae4d0c9e3d3c9e3d4c9e3d5c7e2d5c9e3d5c9e3 +d5c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d3cae4d1cae4 +d0cae4d0cae4d0c9e3d1c9e4d2c9e3d2c9e3d2c9e3d2c7e2d3c6e1d3c6e1d3c7e2d3c8e2 +d4c9e3d4c9e3d3cae4d4c9e3d2c9e4d0cae4cfcae5cdcae5cecae5cec9e4cfcae4cfcae4 +d0c9e3d1c8e3d2c9e3d2c9e3d3c8e2d3c7e2d3c7e2d3c7e2d4c7e2d5c7e2d5c8e2d5cae3 +d3cbe3d0cae4cdcae5cecae5d4cbe3fadae4a7484da62121bb2224cb2626d12826c92725 +c72825b42423a02925e1b0c1e1d3e8d1cbe5d3cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d5c9e3d5c9e3d5c7e2d5c8e2d5c8e2d5c8e2d5c8e2d5c7e2d5c7e2d5c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d3c7e2d3c7e2d3c8e3d3c8e3d3c8e3d3c8e3 +d3c7e2d3c7e2d3c8e2d3c7e2d3c7e2d3c7e2d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d7cde6d0c5e1d2c6e1d4c7e2d2c6e1 +d0c5e1d2c9e3d3cae4d1c6e1d1c1dee0cae2eccce1edc4daebb8d1e0a7c0d294acbf7c94 +b2647aa94454a4333d9c2329941c1e941b1d9a1b1fa11e20a62021a82021ad2021ae2022 +b02122b12122b12122b12122b32122b32122b32122b52323ab1f21a62221971f1f963745 +d7a0b4f2d2e4decde4ccc3e0cfc7e2d0cae4d0c8e3d3c8e3d5c9e3d5c8e2d6c9e3d5c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d3cae4d1cae4 +d1cae4d1cae4d1cae4d2c9e4d2c9e3d2c9e3d2c9e3d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2 +d1c7e2d2c7e2d1c7e2d2c7e2d2c7e2d2c9e3d3cae4d3cae4d4c9e3d4c9e3d3cae4d3cae4 +d3c8e3d3c8e3d2c9e3d2c9e3d2c9e3d2c9e3d2c9e3d2c9e3d2c9e3d3c8e3d4c9e3d5cae3 +d4cbe2d0cbe4cecbe5cdcbe5d2cbe0f9d9e1a44647a22020b92323cb2726d12826c82625 +c72825b424239f2920e1b0b9e1d5e7cecee6cfcde5d0cbe4d0cbe4d0cbe4d1cae4d2cbe5 +d2cae4d3cae4d4c9e3d4c9e3d5c9e3d6c9e3d6c9e3d6c9e3d6c9e3d6c7e2d6c7e2d5c8e2 +d4c7e2d3c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d5c7e2d5c7e2d5c7e2d5c7e2d4c6e1 +d4c6e1d4c6e1d4c6e1d4c5e1d4c5e1d4c6e1d3c8e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5c9e3d7cbe4d1c1ded3c5e0d6cae4d3c8e3 +cfc6e1cfc6e1d2c7e2d4c5e1decae2e8c8dde8b8cdd99cafc87e8fba6273ac495ba13346 +99212f9d1f24a22023a42121a62021a72121a92021ac2021ae2122b22122b12122b12122 +b32122b12122b12122b02122af2022af2222b02222b42222a82021a02020921b1d9b4454 +f3c6d8eccee2d9cae3d0c6e2d0c9e3d0cae4d1c8e3d4c9e3d5c9e3d5c8e2d6c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d3cae4d2cae4 +d2cae4d2cae4d2cae4d2cae4d2c9e4d2c9e4d2c9e4d1c9e4d1c8e3d1c8e3d1c7e2d0c7e2 +d0c7e3d0c7e2d0c7e3d0c7e2d2c7e2d5c8e2d6c7e2d6c7e2d6c7e2d6c7e2d6c9e3d6c9e3 +d5c9e3d4c9e3d4c9e3d3cae4d1c9e4d1cae4d0cae4d0cae4d0cae4d0cae4d1c9e4d5cae4 +d5cae3d1c9e4cdc8e4cdc8e4d0c8e0f8d6e2a242479f1e1fb72323c92725cf2926c82625 +c72825b422229e2524dfafbbe1d4e7cdcfe6cccfe6cccfe6cccee5cccee5cfcee5d0cee5 +d0cce4d1cce4d3cce4d4cbe4d5cbe4d5cae3d6cae3d7c9e2d7c9e2d8c8e1d7c8e1d5c8e2 +d4c6e1d2c7e2d3c6e1d3c7e2d4c7e2d5c9e3d5c9e3d6c9e3d6c9e3d5c8e2d6c7e1d6c6e1 +d5c6e1d5c5e0d6c5e0d5c4dfd4c5e0d4c5e1d4c7e2d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5c8e2d8c6e1d2bfddd4c6e1d8cce5d2c9e4 +cdc5e1cec4e0d5c7e2dbc8e1f1d1e3deaebec4818eb05862a4393ea3272aa62324ab2124 +b02323ab1f21af2122b42423b82523b92424b92324b72323b72323b72323b72323b52323 +b52123b32122b12122af2222ad2122ab2021ab2021b02322a61f20991d1e8d191da35666 +f7d2e2e4c8dfd3c3dfd3cae4d0cae4d0cae4d1c9e4d4c9e3d5c7e2d5c8e2d5c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d3cae4 +d3cae4d3cae4d3cae4d2cae4d1cae4d1cae4d1cae4d1cae4d1cae4d0c9e3d0c9e3d0c9e4 +d0c9e4d0c8e3d0c9e3d0c7e3d3c8e2d6c7e1dac7e0dac7e0d9c8e1d9c8e1d8c8e1d7c9e2 +d6cae3d5cae3d4cae3d2cbe4d1cae4d0cbe5d0cbe5cfcbe5cecce6cecce6d0cae4d3c9e3 +d4c6e1d1c6e2cec7e2cdc6e2d0c7e2f6d7e6a1434f9e1e1fb52123c82425cd2726c82625 +c72625b320239c2232dea9c4e0d1e7cdcee7cacee5c9cfe6cbcfe5cbcfe5cccee4cecee5 +cfcee4d0cee4d1cce3d3cce3d4cbe3d5cae3d6cbe3d7cae3d7c9e2d8c9e2d7c9e2d6c9e3 +d3c7e2d2c7e2d2c7e2d3c8e2d4c9e3d5cae3d5cae3d6cae3d6cae3d7c9e2d8c8e1d8c6e1 +d8c6e1d8c5e0d7c5e0d7c4dfd6c3dfd5c5e0d5c7e2d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d6c7e2d9c6e1d5c1ddd5c8e2d5cbe4cec6e2 +ccc4e1d4c6e1dfcbe3e8cadee6b8c6c07c849e3f4097201fa02020b02322bc2524c32725 +c92825c02525bc2224b92323ba2323bc2324c02424c12424bf2424bc2324bc2324ba2323 +b72323b42222b12222ae2122ab2021aa2021a72021a82021a01f2091191c922832bc7787 +f6d2e2dec4ddcebfdcd5cde6d1cbe5d0c9e3d2c9e3d5c7e2d5c8e2d5c8e2d5c9e3d4c9e3 +d3cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d3cae4d2cae4d1cae4d1cae4d1cbe4d0cce4d0cbe4d0cbe4d0cbe5d0cbe5 +d0cae4d0cae4d0cae4d0c9e4d3cae4d6c7e2dac7e0dac7e0dac7e0d8c8e1d8c8e1d7c9e2 +d6cae3d5cae3d4cbe4d2cae3d1cae4d0cbe5d0cbe5cecce6cecce6cdcde6d0cae4d3c6e1 +d3c3dfd0c2dfcfc6e1cfc8e3d4c9e3f9dae8a54a52a12120b52223c52625cd2926c82625 +c72526b220249c203cdfa6c7e1cfe5cecde7cbcde7cacee7cacee6cbcee6cdcde6cecde6 +cfcde5d0cbe4d0cbe4d1cae4d3cbe4d4cae3d5cae3d6cae3d6c9e2d6c9e3d6c9e3d5c9e3 +d2c9e4d0c9e3d0c9e3d3cae4d4c9e3d4c9e3d4c9e3d5c9e3d6c9e2d6c9e3d7c8e2d8c7e1 +d9c6e1d9c6e1d9c6e1d9c6e0d9c6e0d7c7e1d5c8e2d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d6c7e2dbc7e1d7c3dfd4c6e1d0c7e2cac3e0 +cfc4e1dbcbe3eacce1edc0d1bb747fa4434498231fa32120b62523c12724c22425c42425 +c62625c62625c52625c62625c62625c52625c42425c42425c62625c82725c12424bd2324 +ba2323b72323b32222ae2122ab2021a82021a61f20a01d1f991c1e8d181ba34755db9eaf +f3cbdedcc5dfcfc1ded2cbe5d0cae4d0c9e3d2c9e3d5c7e2d5c8e2d6c9e3d5c9e3d4c9e3 +d3cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5c7e2 +d5c9e3d4c9e3d3cae4d2cae4d1cae4d1cce4d0cee4d1cee3d1cee1d0cfe1d0cfe1d0cfe2 +d1cee3d0cee4d0cee4d0cee4d3cce4d5cae3d6c7e2d6c7e1d6c7e1d6c7e2d5c8e2d6c9e3 +d5c9e3d4c9e3d3cae4d3cae4d2c9e4d1c9e4d0cae4d0c9e4d0c9e4cfcae4d1c8e3d5c6e1 +d6c3ded2c3dfd1c6e2d0c7e2d4cbe4fadbe3a44d43a02220b32323c52725cc2826c82725 +c72725b320249c2039e0a6c1e2cee4d1cae4d0cae4cfc9e4cfcae4cfcae4d0c9e4d0c9e4 +d0c9e4d0c9e3d0c9e3d0c9e3d2c9e3d2c9e3d3c8e2d3c8e2d2c7e2d2c7e2d3c8e2d2c9e4 +d0cce4d1cee3d0cce4d0cbe4d1c9e4d0c8e3d1c8e3d2c7e2d1c6e2d4c6e1d4c6e1d5c6e1 +d7c8e2d9c9e1dacbdddbcbd9dbcbd7d8cbdcd5cae3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d6c7e2d9c7e1d5c4e0d2c7e2cec7e2cec7e2 +d6cae3e4cae1e8bad0da98a9a33c48a6292aa92321b22323bb2424c12424c92725d92b26 +e53124c22425c62625cd2826d02826cc2826c52625c12424c22425c62625c22425c12424 +bc2324b72323b32223ae2122ab2021a82021a41f209b1e1f90191c88191fb56677f5c2d4 +e8c4dadbc6e0d5cae4cec7e3cfc9e4d1c9e4d4c9e3d5c8e2d6c7e1d6c9e3d5c9e3d3cae4 +d3cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5c9e3d5c7e2 +d5c8e2d5c9e3d4c9e3d3cae4d2cbe4d1cce4d0cee4d1cee3d0cfe1d0cfe1d0cfe1d0cfe1 +d1cee1d1cee1d2cde1d2cde1d1cce3d3cae4d4c9e3d3c8e2d3c8e2d3c8e2d3c8e2d4c9e3 +d4c9e3d4c9e3d3c8e2d3c8e2d3c8e2d3c8e2d2c7e2d4c6e1d3c6e1d1c6e1d4c5e1d9c5e0 +dcc4ded7c4dfd4c6e1d2c7e2d2c7e0f7d8e19e463f9a1e1fb12222c42625cc2926c72725 +c72625b320279c1f36e2a7bae6d0e3d6cae3d4c6e1d3c5e1d3c5e1d3c5e1d4c6e1d4c6e1 +d4c6e1d3c6e1d3c8e2d3c8e2d2c9e3d2c7e2d2c7e2d0c8e3d0c7e2d0c7e3d0c8e3d0cae4 +d0cee5cecfe3d0cee5d0cbe5d0cae4d0c9e3d0c8e3d1c8e3d1c7e2d1c6e1d3c8e2d5c9e3 +d6cae3d7cae1d8ccdbd8ccd5d8ccd3d8ccdad5cae3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5c7e2d5c3dfd3c4e0d0cae4d0cbe5d4cde6 +e0cee5e7c3dadd9db4c3677aa01f27ad2222b62423bd2424c22625c62625cb2726cf2826 +ce2826cf2926c62625c12424c12424c52625cb2726cc2726cb2726c42425c42425c12424 +bd2324b92323b52223b02122ad2021aa1f21a31f209b1e1f88171b80192ab5768bf3d2e3 +dabcd7d5c4dfddd4e9cbc5e2cfc7e2d1c9e4d4c9e3d5c8e2d6c7e1d6c9e3d5c9e3d3cae4 +d1cae4d2c9e4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5c9e3d5c7e2 +d5c7e2d5c7e2d4c9e3d4c9e3d2cae4d1cae4d0cce4d0cee5d0cee5d0cee5d1cee5d1cee5 +d0cee4d0cbe3d1cae3d2cae3d2cae3cec7e3cdc7e3cdc8e4cec9e4d0c9e4d2cae4d3cae4 +d3cae4d4cae4d4c9e3d4c7e2d4c6e1d5c6e1d4c5e0d5c4dfd3c2ded3c1ded6c2dedec5df +ddc0dbdcc5dfe1d0e6d6c9e3ded0e7f7dfeb943b44971c1eb12122c52525cd2826ca2626 +c3242ab2202c9f1f36e0a2adedd2d8e0cee3dbc5dfdac5dfdac5e0dac7e1d9c7e1d9c6e1 +d7c6e1d6c6e1d5c6e1d5c8e2d4c9e3d3c8e2d0c7e3cfc7e2cec8e3cdc8e3cdc8e4cdcae5 +cdcae5cecce6d0cbe5d2cde6d2cde6d1cbe5d0c9e4cec6e2cfc6e2d4cce5d4cce5d5cce5 +d4cbe4d4cbe4d4cae1d4cbe0d4cbe0d4cbe2d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c7e2d4c5e1d4c9e3d1cfe8cecee7cfc8e2 +e3cee3f1c2d8d4829bae334daf2128b92223be2324c12424c12424c22425c62625c92725 +c92725c62625c42425c12424c12424c22425c52625c62625c62625c52625c22425c12424 +be2424bc2324b82223b32023ad2021aa1f21a21e20941b1e80151ea25266d8a2b7eec9dd +d9c0dad9cde5d0c7e3cfc9e4d0c9e4d3cae4d5c7e2d6c7e1d6c7e2d6c9e3d5c9e3d2cae4 +d1cae4d2c9e4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5c9e3d5c8e2 +d5c7e2d5c8e2d5c7e2d4c7e2d3c9e3d1cae4d0cbe5d0cbe5ccc7e3cec9e4d0cae4d2cbe5 +d4cbe4d4cae4d4c9e3d4c7e2d2c7e2d0c9e4cfcae5cfcbe5cfcbe5d0cbe5d1cae4d3cae4 +d3c9e3d4c8e2d5c7e0d7c7e0d9c8dfdbc8dfdec8e0e2cae1e3cae1e4c9e1e7cce0eac9cf +e6c5c0e0c7c3d9c6cdbdafbec4b5c9e3c0d3943748a01f25b72323c52625cd2626c92327 +c5242bbd2230a9262edfa18fe3c6abdcc4b6e1c2c9e4c2d3e4c4d4e6c7d7e6c9d8e6ccda +e6cedce4cfdee0cddddbcbdddaccdfd9cee4d8cee5d5cee5d3cde6d0cbe5cfc9e4cec9e4 +d0cae4cfc8e3cdc4e1cbc4e1cdc6e2cfc7e2d2cbe5d5cee6d5cee6d0c9e3d0c9e4d1c9e4 +d0c9e4d1c9e4d1c9e4d1c9e4d1c8e3d2c9e4d3cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c6e1d3cce5ced0e9cbcfe7cfc8e0 +e4cce1efb9d0d06f89af263cbd2128c52425c52425c22425c12424bf2424bf2424c22425 +c22425c02424bf2424bf2424bf2424c02424c12424c22425c52625c52625c22425c12424 +c02324bd2224b92223b42023b02022ad1f22a11e208c181d791428b36f85edbdd3edcce1 +d9c4dfd7cbe4cdc6e2d2cde6d1cae4d3c9e3d5c7e2d6c7e1d6c7e1d6c7e2d5c9e3d1cae4 +d1cae4d2c9e4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5c9e3d5c8e2 +d6c7e2d5c8e2d5c7e2d3c7e2d2c7e2d0c8e3d0c9e3d0c9e3cdc6e2cfc7e2d0c7e2d2c7e2 +d4c6e1d4c6e1d3c4e0d4c3dfd2c3dfd2c8e3d0c9e3cec8e3cdc6e2cec7e3d0c9e3d5cce2 +dacedbddcfd2e0d0c9e0cfbfe0ccb7dec9acddc5a3dbc09cd8bd93d7ba8fd6b986d9ba7b +dabd78d4be81baab80887b5f897b72ab828484252b991d1eb42223c52525cb2726c72525 +c52425c32625ae2f23dfa462d8c066cdbb62d8bb70dbb977dbba7bd9bc7fdabf85dac08c +d9c195d9c29dd8c4a6d9c7b2d9c9bcdbccc8daced5dacfded6cde2d5cce4d3cae4d2c7e2 +d3c8e2d2c7e2d4c9e3d3c8e3d3c9e3d4c9e3d3cae4d1c9e3d0c9e3d0c8e2cfc8e3d0c9e4 +d0cae4d0cae4d0c9e4cfc8e3cec7e2cfc6e2d2c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d1cce6c8cee8c9cfe6d1cce2 +e3c7dbe5a8c0c85b77b72437c52427cc2626c92526c42425be2424b92423b72323b92223 +bb2224ba2323bb2324bc2324bd2324bf2424c12424c22425c42425c42425c12424c12424 +c02325be2324bb2224b62223b22022ae2022a01d208516207b1f3cbd849cf1cbdfe9cee3 +d6c7e1cfc6e1ccc7e3d0cce6d0cae4d4c9e3d5c8e2d6c7e1d7c7e1d6c7e2d5c9e3d1cae4 +d1cae4d2c9e4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5c9e3d6c7e2 +d6c7e2d6c7e2d5c7e2d3c7e2d2c7e2d0c7e3d0c7e3cfc6e2d1c8e3d2c8e3d1c6e1d2c4e0 +d3c3dfd3c3dfd5c2ded7c3dfd5c3dfd2c4e0d0c5e1d2c7e2d4c9e3d5cae1d6cbd6d6c9c5 +d5c7b3d4c5a1d6c692d6c583d7c374d7c166d6bf58d5bc49d2ba3ed1b738d0b632d1b82e +d8be39d5c14bb3a54561552258491d7a4d38751511931b1cb02222c22625cb2825c82625 +c62625bf2524ab2f23e0a83adfca39d4c62ddac329ddc02bdbbe2bd8bd2ed4bb32d3bb3a +d1b943cdba53cfbb65d3bf77d0c086d1c097d3c2a8d4c5b7d4c7c2d5c8ccd5c8d5d8c8dd +dacbe3dacae3dbcce4dccce3d9cbe4d8cae3d5c7e1d0c6e0d0c6e1d4c9e3d3cae4d1cae4 +d1cae4d0c9e3d0c8e3cdc6e2cdc6e2cdc6e2d2c7e2d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5c9e3d2cde6c3cde5c5cfe5d2cfe3 +ddc3d7d998aebe4862b92230cb2526d02726cb2626c42425bc2424b52323b32223b42123 +b62323b52323b82323ba2323bc2324bf2424c12424c22425c42425c22425c12424c22325 +c12324c02324bc2224b82223b42023b020229e1c208014248d4561cb9cb6edcde1ddc9e1 +d5cae3cbc6e2ccc9e4cdcae5d0c9e4d4c9e3d6c7e2d8c7e1d7c7e1d6c7e2d4c9e3d1cae4 +d0cae4d2c9e4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5c9e3d6c7e2 +d6c7e2d6c7e1d5c7e2d3c7e2d2c7e2d1c7e2cfc6e2cfc6e1d2c7e2d1c6e1d2c4e0d3c3df +d4c3dfd9c5e0dbc6e0dec6e0dec8e0d9c7d5d8c9cadbccc5dccdbedacbb1d5c5a1cdbd87 +c7b46ec4b059c7b34cccb740cfb938d4bd35dbc134e0c533e4c931e7cc31eacf2de6ca28 +e8ce30e8d54cc8bc48655a244f421771431f7916139b1e1fb32222c12624cc2826cb2726 +c52625b72323a92922e4af35eddd35e9dc28ecd523ecd123e9cf22e5cb22e1c725dfc626 +ddc52adcc434d8c23cd5c142d0bd4dccba5acab867ccb973ccbb80d0be8cd4c199d8c4a5 +dec9b6ddc8bcdcc6c0dcc6c5dbc6ccdac7d5dcc9dddbcae2d9cbe4d6c9e3d4c7e2d2c9e3 +d1c8e3d0c7e3cec8e3cec8e3cec8e3d0c9e3d2c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d6c9e3d7c8e2d4cbe4c1c9e3c4d1e6d1d2e5 +d9c1d4cf8fa3b33b53b9212bcd2526d32926cc2726c42425bb2424b32323b12222b32123 +b52323b52323b92323bb2324be2424c12624c22425c42425c42425c42425c12424c32325 +c32325c02325bd2224b92223b62223b020229c1d20791125ad718cdbb5d1e1c7e0d4c3df +d4cbe5cdcbe5cdcce6cac8e4d0c9e4d4c9e3d6c7e1d8c6e1d8c7e1d6c7e2d4c9e3d0cae4 +d0cae4d2c9e4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5c9e3d6c7e2 +d6c7e2d6c7e1d5c7e2d3c7e2d2c7e2d1c7e2cfc6e2cfc6e2d2c5e1d2c5e1d5c6e1d9c7e0 +decadfe1cadae4c9d3e1c5c9dec5b3e3ce9addca7ed2c067c8b653c3b041c2af38cab436 +d6bf3edec741e3c93fe3ca3ae5ca34e6ca31e7ca2fe9cb2debca2eebca2eeccb2af0d12b +f2d834f3e056dbcf5d7163275443187747257a17149e2020b52323c22625cd2926cc2626 +c62525ba2323ad2a23e5b440f3e749f0e234efd627f1d325eed124eed121eccf23ebd025 +e9d124e9d127e6cf28e1cb27dec82ad9c52cd5c12dd2bd30d0bb33d0bb36d3be3dcdb942 +c4ae49c8b35fd5bd7adec595e4cbaee7cec5e5ccd6dfc8dfdac6e0d6c3dfd3c3dfd1c3e0 +cfc4e0cfc6e2cfc9e4d0cbe5d1cee7d3cee7d3cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5c7e2d9c6e1d5c7e2c2c7e3c5d1e6cfd2e5 +d6c3d3cc90a2b13b51b42127cc2626d22a26cb2726c22425bb2424b42423b42223b62323 +b92223ba2323bc2324bf2424c12424c42425c52625c52625c52625c52625c22425c42425 +c32325c02325bc2224b92223b72323b02022971b1e6e0c20c595afe9cbe1d9c4dfd4c5e0 +d5cee7d0cee7cdcde7cdcce6d0c9e4d4c9e3d6c7e1d9c6e1d9c6e1d6c7e2d4c9e3d0cae4 +d0cbe5d2cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5c9e3d6c7e2 +d6c7e2d6c7e1d5c7e2d3c7e2d2c7e2d1c7e2d2c7e2d2c9e3d7cbe4d9cce4daccdeddccd1 +e2cdc6e0cab6dac2a4d1b990cbb26ec5ac3bc8af2cd0b629d9be2cdfc331e5ca34e8cd31 +eace2eebce2ae8ca28e9c926e9c925ebca27edca29eeca2aefcb2bf0ca2df0cb2befcb2a +ebc72ae9cb3dd4bf4a6c59234a371270401970130f961c1db32323c52725cc2826cb2626 +c92625c72525b93124e8ad45ecd542e4cd2ae3c525e6c426e6c424e5c524e6c623e5c724 +e6c823e6ca23e8cc23e9ce22eace21eace23e8ce23e6cc24e5c924e3c623e0c425e0c32a +e0c334d8bd35ceb035c7a944c6a960cfb182d9bca6e1c6c4e7cddae4cde2ddcbe3d9cae3 +d6cae3d4cae4d1cae4d0cee5d0cee5d1cce5d3cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c7e2d6c6e1dcc5dfd5c4dfc6c8e4c6d2e9ccd3e5 +d5c7d6d19ca9b64959b32123c92625d12826cb2726c22425bc2424b82423b92423bd2224 +c12324c12424c42425c52625c52625c62625c82625c82625c62625c62625c22425c42425 +c42425c02424bc2324bb2324ba2323b02022941a1d6e102bcda3c0e9d1e5d9c7e1d7cbe4 +cfcbe5c7c9e4c9cae5cecce6d1cae4d5c7e2d7c7e1d9c6e1d9c6e1d6c7e2d4c9e3d0cae4 +d0cbe5d2cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5c9e3d5c6e1 +d5c6e1d5c6e1d4c6e1d3c7e2d3c8e2d2c9e3d3cae4d3cce3d9d1e0d8ceccd3c8b5d0c29e +cfc086cfbe72cdbb60c9b647c9b130e1c037eac232ecc42eedc52cedc62ceec728eec726 +eec722eec822f0ca23f0ca23eec823edc623ebc424eabf24e6bc24e5b926e4b925e5ba27 +e2b827d9b72dc1a9327964275f4c1d7c4d1e852419a32621b82823c52825cc2826cc2626 +cd2627c92328b02422da8f37ceaa2ac8ac2cd9b72addb72bddb82ae0ba2be2bd29e2be26 +e4bf25e4c025e2be24e3bb23e6be23e9c122eec523efc725f0c628f1c628efc527edc527 +e8c527e5c527e1c12bddbd30d7b837d1b441cbb053c6ad62cbb27ae0caa7dfcdbadececa +dbced7d9cee1d5cce4d2cae4d0c7e3d0c7e2d3cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5c7e2d7c5e0ddc1dcd6c0ddcccae4c8d1eac8d1e5 +d6cddbdaaeb8c35e68ae2222c62625cd2826c82625c22425be2624bc2424bf2524c52625 +c92725cc2726cc2726cb2726cb2726cb2726cb2726cb2726cb2726c92725c52625c52625 +c42625c02424bb2324b82423ba2423b0222292191ca4566dd6afcee2cbe2d8c9e2d4cbe5 +c9c7e3c5c5e2c8c8e4cbc9e4d0c9e3d5c7e2d7c7e1d9c6e1d9c6e1d6c7e2d4c9e3d0cbe5 +d0cbe5d2cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d3cae4d4c9e3d3cae4d4cae3d3cae4d4c9e3d4c9e3d4c9e3d3c8e2d4c7e2d4c6e1 +d4c6e1d4c6e1d5c6e1d5c6e1d6c7e1d8c8e1dacbdddcccccdacbb8d1c19bc8b778c3b15b +c4b043c8b436d0bb35d9c335e0c430e8c42dedc62befc52aefc62aeec62bedc52aeac227 +e7c128e6be27e3bb28dfb928ddb727dab427d6b028d2ab28cfa829cba52bcaa22bc69b2c +c0992db696319b832f6f5a235b471a6e3e188422189b1f1fb12322c52725ce2926cd2726 +cb2526bd22249a1d1ebf7639ae892e9e862fac8c2faf8e2fb5932fbb982fc09d2ec3a02d +c7a32cc8a52ccda92ad5b028d7b027d8b227ddb425deb626e3ba26e4ba29e6bc27e7c027 +e8c426e6c426e4c426e2c126dfbe28dcbd2bd8ba30d5b837d1b743cbb455cdb970d2c090 +d8c6abdccbc3dbced7d9cde4d7cbe4d4c9e3d4cae3d4c9e3d4c9e3d2c9e3d2c9e3d2c9e3 +d2c9e3d4c9e3d4c9e3d5c9e3d5c7e2d5c8e2d5c7e2d4c7e2d3c7e2d4c9e3d3cae4d3cae4 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d5c9e3d5c8e2d5c7e2d5c7e2d4c9e3d3cae4d2c9e4d1cae4d1cae4d1cae4d2cae4d3cae4 +d3cae4d3cae4d3cae4d3cae4d3cae4d4c9e3d5c5e0dbc2ddd5c0dccfcae5ccd1eacacee4 +dbcedfe3b7c4c76d79a72223bd2324c52625c52625c22425c02624bf2524c22425c82625 +cc2726d22826cf2826cc2726c82625c62625c52625c62625c82625cc2726c82625cb2726 +c82625c12424bc2324ba2423ba2424b0222290181bd897acdfc0dad9c7e1d7cbe4d4cce5 +cccae4cfcfe8d0cfe8cdc9e4d2c9e3d5c7e2d6c7e1d7c7e1d7c7e1d6c9e3d4c9e3d0cae4 +d0cae4d2c9e4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c7e2d3c7e2d3c7e2d4c9e3d4c9e3 +d3cae4d2cbe4d3cbe3d2cce1d3cde1d1cae3d1cae3d2c9e3d2c9e3d3c8e3d5c9e3d3c6e1 +d5c7e2d5c5e0d6c3dfdac4dfe1c8e1e5cad8dfc1bbd1b392cfaf6fceb156d2b43bd7b930 +dabd2bddc128e0c228e0c227e1c124e7c525e8c426e5c127e2c027e0be29ddba2ad6b429 +cead2ac8a62cc3a22ebe9f30b99b33b29534ac9035aa8d36af9141b79c51bea363c1a472 +bea37eb9a487b4a693b1a69cbbadadd6bbbba24840a32320b62423c82725ce2926c92725 +c82625b822239f2220d79a8dd4b9a6c0af98bea990bda78bbaa382b7a077b39b6aaf965b +ad924da98f3ea88d32a98c2fad922fb5992fbda02ec2a72dc9ab2ccdb02ad2b62ad7b928 +d8b928dabb26debd26dfbd25e1c025e2c024e1c025e1c026dfbe28ddbe2cd2b631cab043 +cab164cfba88d8c4acddcac6dbcbd7d7caddd6cbded3cae3d1c6e2d0c6e2cfc6e1cfc6e2 +d2c7e2d2c9e3d4c7e2d5c8e2d7c7e1d6c6e1d5c6e1d4c6e1d4c6e1d3c9e3d2cae3d2cbe4 +d3cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d5c6e1d7c6e0d7c6e0d5c7e2d4c9e3d2c9e4d0cbe5cfcbe5cecce6cfcbe5cfcae5d0cae4 +d1cae4d1cae4d1cae4d1cae4d1cae4d1cae4d3c9e3d4c4e0d4c5e1d1cae4d3cee7d6cbe4 +e3cce2ebbed1d08492982025af2422b72423bc2324bd2324bf2424c12424c52625c92625 +cc2626cf2726cf2726c92626bd2324b42122b32122bc2324c72525cf2826d42a26ce2826 +cc2726cb2825c22625b72423b12222c52d2b8b171ae4aac2e6cce2d9cbe4d6cae4d2c9e3 +d0cae4d1cce5d0cae4d0c9e3d3c9e3d4c9e3d6c9e3d5c8e2d5c8e2d5c9e3d4c9e3d2c9e4 +d2c9e4d3cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d6c9e3d6c9e3d5c7e2d4c7e2d3c7e2d3c8e3d3cae4 +d3cae4d1cce3d3cde1d2cee0d3cee1d1cce3d1cae3d1c9e4d2c9e3d2c7e2d4c9e3d4c7e2 +d3c4e0d6c3dfdbc6e0e1c6dbe0c0c4d8b5a5d4ae81d5b062d2ab3ad9b32ce1bb2ae5c027 +e7c324e4c126e2bf25e3bf24e2c027debe26d9ba27d4b628cfb02ac9ad2cc5a82ec1a22f +ba9c3bb59742b1944db2995fb9a272c0ab85c5b292c6b69acab8a3cbbda9d0c0b3d0bebd +cdbdc5c9bdcec9c2d7cec8e1d9cee6f9e1eda84e56a32120b72423c82725cd2926c62625 +c62625b52423a02621e2acb7e3d0e3d2c9dfd2c7dbd2c4d7d0c2d2cec0c8ccbcbecabab5 +c8b7abc6b59fc7b695c6b386beac73b6a05aaa963da59131a79431ad9a31b4a130bca430 +c3a62dc8a92cceaf2ad6b428dcb926dfbb23e1be23e2be24e2be24e2be25ddbc26d5b62c +ceb039c8af57cab274cfb890d7c2abdbcac0dacecbd6cddbd5cae4d2c7e2cfc5e1cec3e0 +cfc4e1d2c7e2d6cae4d6c7e2d8c7e1d8c5e0d6c5e0d5c6e1d4c6e1d3c9e3d1cae4d0cbe4 +d3cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d6c7e1d7c5e0d7c5e0d5c6e1d4c9e3d0cae4cfcbe5cdcde6cccde7cccde7cecce6d0cbe5 +d0cae4d2cae4d1cae4d0cae4d0cae4d0cae4d0cae4d4cae4d4c9e3d0c7e3d4c9e3d7c7e1 +e4c9e1ecc0d7d795a9a03a49a52724af2322b72323bd2324c12424c52625c72525c82425 +ca2526cc2626c92625bd2224af2022a71e21a81f21b32223c32325cc2726d42a26d12826 +cf2826cc2726c22625b72323b12223bd2a29a42f37e7b2cce4d0e5d8cde5d4c9e3d2c7e2 +d3cae4d3cae4d3c9e3d1c6e2d3c8e2d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d6c9e3d6c9e3d5c7e2d4c7e2d3c7e2d3c8e3d3cae4 +d3cae4d1cce3d3cde3d3cee3d3cee5d3cce5d3cae4d2c9e3d2c7e2d2c7e2d3c5e1d6c7e2 +d7c6e0dcc8dedfc7cbdcc0aed2b586caaa5ecfac40dab836deba2ee0bb29e3bd26e5be27 +e5bf29e4bf28e0bb28dab626d4b129c9a92cc4a52fc1a232be9f38be9f42bea252c1a464 +c6aa7bc6ae8bc3ab95c8b1a5cfbcb7d8c7c8dccdd5ded0dbdcd0dfdbd0e0dcd0e3dbcfe4 +d8cde4d6cde5d3cee7d0cbe5d3cae4f4d7e7a24454a01f20b52323c82625cd2826c62625 +c62625b422229d2620e0adc2e0d0e6d2cbe5d3cae4d4cae4d6cbe4d8cce5d9cde5dccde4 +dfd0e3e2d1dfe2d1d7e1cfccdac7bdcfbca9c5b292bfab84b9a373b39e69af9a5eae9651 +af9142b3953cbb9c30c3a42dc9a92bd0af2ad6b328d9b527dcb726deb726e0bc29e0be35 +dab93aceb23fc6ad4ac6ae58c9b46bcebc85d5c6a7d9cec6dbd0dfd8cde5d2c7e2cdc2df +cdc2dfd2c5e1d6cae4d6c7e2d7c7e1d9c6e1d7c6e0d5c6e1d4c6e1d3c9e3d1cae4d0cbe5 +d3cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d5c6e1d7c6e0d7c6e0d4c6e1d3cae4d0cbe5cecce6cdcde6cdcbe6cecce6d0cbe5d1cae4 +d3cae4d4c9e3d4c9e3d3cae4d3cae4d2c9e4d1c9e4d3cae4d2c9e4cfc6e2d3cae4d5c7e2 +dcc7e0e6c2dbe1a7bfbc6578a2262aaf2322b92323c12424c62625c82625c82625c62425 +c52525c52625bb2224ad2021a31e20a11d20a61f20af2222bb2424c52625cc2726ce2826 +ce2826c62625bc2324b52323b52926a31f20ca6a7aeabbd4e0cde4d5cbe4d4c9e3d3c8e2 +d4c9e3d5cae4d4c9e3d1c6e1d3c8e2d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d6c9e2d6c9e2d5c7e2d4c7e2d3c7e2d3c8e3d3cae4 +d3cae4d1cce4d0cbe4d1cae4d2c9e3d3c8e3d3c8e2d3c7e2d3c6e1d3c6e1d4c6e1d9c7e0 +e0cbdbdfcac0d4bd98c9b369c6b03ecbb42dd3bb27d7bd25e3c428e2c127ddbb29dcb82a +dbb72dd9b42fd2af2cc6a52cba992eb3923db49556bb9c68c2a479c9ad8ad1b69ddabeb0 +e1c8c3e5ccd1e2cbd9e0ccdfddcbe2d9c9e2d5c7e1d0c5e1cfc4e1d3c8e2d6cbe4d8cde5 +d9cde5d9d0e8d5d0e8d0cbe5cfc5e1f3d3e4a14353a22020b72323c62625cd2826c82625 +c72625b322229d2520e0adc2e2d2e7d1cae4d0c5e1d0c5e1d2c5e1d3c6e1d5c7e2d6c7e2 +d9c8e2dac9e2d9c7e1d7c4dedbc7dee1ccdfe8d1dfe9d1dce2c9d1d6bec1cbb2b1c0a79d +b99f87b69b75b09559ad913eb09230b7992fbfa12ec9a82bcfad2ad5b12ad8b42fdab838 +daba3dd6b839cfb434cab22fc4b02fc3b042cab975d2c3a3dbcec4dccfddd8cbe4d3c5e1 +d0c3e0d2c4e0d5c9e3d6c7e2d7c9e2d8c8e1d6c7e2d6c7e2d5c9e3d2c9e3d1c8e3d1c8e3 +d3c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d5c7e2d5c7e2d4c6e1d3c9e3d1c9e4d0cbe5cfcae5cfcae5d0cbe5d1cae4d3cae4d4c7e2 +d5c6e1d5c6e1d5c6e1d5c7e2d5c7e2d4c6e1d3c6e1cec2dfd2c7e2cfc9e4d0cbe5d0c9e3 +d6c7e1e3c8e0edb9d1d7879ca1242eb12223bf2424c62625cb2726cc2726c92725c42625 +bc2424b62423a820219d1d1f9b1d1fa01f20a82121ad2422b42423bd2424c12424c62625 +c92725c12424b52223b32323b12e2d931b1eeaa3b0e9c4dadacae3d4c9e3d3c8e2d4c9e3 +d4c9e3d5cae4d4c9e3d1c6e1d3c8e2d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d6cae3d6cae3d5c9e3d4c7e2d3c7e2d3c8e3d3cae4 +d3cae4d1cbe4d0c9e3d0c7e2cfc4e1d0c3e0d2c4e0d3c6e1d5c8e2d6cae3d9cadbdac6c3 +dbc3acd0bb88c5b05ec1ae34c7b42dd4c027d9c624d6c225d7bf24dabf26d9bc2cd0b22f +c5a42fb89630b29031b7953ebe9e5cbb9d79c2a796d1b8afe0c7c3ebd2d3eed5dee9d2e0 +e0cbe1dbc7e0d9c7e1d9c8e2d6c9e3d5c7e2d2c7e2cfc6e1cbc4e1cdc5e1cfc6e1d3c7e2 +d4c7e1d4cae4d0cbe5cfcae4cfc5e1f3d4e5a44757a62221b72423c52625ce2826c82625 +c72625b121229a211fdda9bee0d0e6d4cce5d6cbe4d6cae4d6c9e3d6c9e3d5c7e2d4c5e1 +d4c5e0d4c3dfd7c6e0dbc9e2d8c6e1d7c3dfd8c3dedac4dfdcc6e0e1c9e1e4cde3e6d1e4 +e6d1d9d9c5bfc2ac9caf9878a58a5aa48846a98c3bb09137ba9936c9a93cc9a932c8a92d +cdae2bd1b329d4b929d3ba28cfb828c9b32dc1ad44c5b573d1c09bdac9bddeccd7dacbe4 +d6c7e2d4c5e1d3c4e0d6c9e3d6cae3d6cae2d6cbe3d5cae3d4c9e3d3c8e3d2c7e2d2c7e2 +d3c8e2d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d3cae4d2c9e4d1c9e4d0cae4d0cbe5d0cbe5d0cae4d2c9e4d4c9e3d5c8e2d6c7e1 +d6c6e1d7c5e0d7c6e0d7c6e0d6c6e1d4c6e1d4c5e1cfc0ded6cbe4cfcae5ccc9e4cbc6e3 +d4c9e3e5cce2f1c1d8e596aca4212eb62223c42325cd2826d12826cf2826c92825c12624 +b42523a32020961b1d951b1d9d1d1fa61f20ad2422af2322b12322bb2724bc2324c12424 +c52725bf2424b32122ad2322a4262c9a3741f5c3d1e4c8e0d6c7e2d3c8e2d3c8e2d4c9e3 +d5cae4d5cae4d3c8e2d1c6e1d3c8e2d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d6cae2d6cae2d5c9e3d4c7e2d3c7e2d3c8e3d3cae4 +d3cae4d3cae4d2c9e3cfc4e1cfc1ded0c1ded2c2dfd4c6e1d8c9e3dbccdcdfcec1d5c08d +c6af5ebfa93ec3ae30cbb82ad0bd28cfbc28d0be28d7c425cdb929c8b32cc1a92eb59c2f +ad9034aa8c48b49567c3a78bd1b7ace8d1d3ead5e2e3cfe1dbc8ddd4c1d9cfbdd9d1bfdc +d8c7e1ddcee5d0c2dfccbfddd0c5e1d4cbe4d6cee6d8d0e7d6d0e8d4cde6d3cce6d5cbe4 +d6cbe4d4cbe5d1cce6d0cbe5d3cae4f5d7e7a44857a32020b52323c62625ce2826c82625 +c62625af2022971f1edba7bbddcce4d0c9e3d1c6e2d3c6e1d3c6e1d2c5e1d2c4e0d3c3df +d1c2ded1c1ded2c1ded2c2dfd4c5e0d8c7e1d8c5e0d5c3dfd3c0ddd0bddbd0bcdbd3c1de +d6c8dddccfe0e6d8e7e7d7e4dccad2cbb5b6b49a909e826397783fa78934b09430bda02e +c7aa2cccb12bd1b628d5b727d5b927d1b828c5b02ec2af44c5b167ceb98ddac6b6e0ccd6 +dfcce3d8c7e1d2c2dfd5c9e3d5cae3d4cde1d5cde0d4cbe1d4cae3d3c8e2d1c6e1d1c6e1 +d3c8e2d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d3c9e3 +d2cae4d0cbe5cecce6d0cbe5d0cbe5d0cae4d1c9e4d2c9e3d3c7e2d5c7e2d6c6e1d7c6e0 +d7c5e0d7c5e0d7c5e0d7c5e0d7c5e0d6c5e0d5c6e1d7c9e3dcd0e7cbc5e2c3c1e0cac6e2 +d7cce5e5cae1e7b1ccd27b91a7212cbc2124cb2626d32a26d42a26cf2826c72725b92423 +aa222190191b891719941b1da41f20b02322b42523b32323b22323bb2824bc2424bd2324 +c22425c22325b62323a82026951d2cb96e7df4c9dae1c8e1d4c6e1d3c8e2d3c8e2d4c9e3 +d5cae4d4c9e3d4c9e3d2c7e2d3c8e2d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d6cbe3d6cae2d5c9e3d3c7e2d3c8e2d3c8e3d3cae4 +d3cae4d3cae4d3c9e3d1c6e1d1c1ded1c2ded5c4e0d8c7e1dcc9ddd9c8bed8c699c1a946 +c5ad2fcab42cd2bc29d4bf29d0bd28cbb82ac7b32cc6b22dbda82fae9930a48e30a89041 +b9a374d1baa5e4cbc7e2cbd5d5c3d5d2c1dbd4c4dfd6cae3dacee5ddcfe6dbcee6d7cbe4 +d3c8e2d0c5e1d7cde6d7cee6d2cbe5cdc6e2c8c3e0c7c3e1c7c6e2cac8e3cfcae4d4cae3 +d5cae3d3cae4d0cbe5d0cbe5d3cae4f6d9e8a34656a01f20b52323c82625ce2826c62625 +c52725b0212298201edca8bdddcce4d2cae4d7cce5d8cde5d8cde5d9cee6d9cce4d9cde5 +d9cce4d9cce4d6cae3d4c6e1d5c8e2d5c7e2d4c5e1d2c2dfd3c3dfd6c7e1ddcde5dccfe6 +d4c9e3d4cbe3d4c9e3d5c9e3d5c7e2d6c6e1d7c7dcd8c5cecebaada38c61a68b3fa88f30 +b2962fbea22ec7a92cccae2aceae2acdaf2bd3bb2ac8b22ec3ac39c4ac59cdb582d8c0ad +dcc7cedccae2d9c9e3d5c9e3d3cae4d3cce2d3cee0d4cce1d3cce4d3c8e2d3c5e1d3c5e1 +d3c8e2d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d3cae4 +d0cbe5cdcde6cbcce6cecce6d0cbe5d1c9e4d3c9e3d3c7e2d5c7e2d5c6e1d5c5e0d6c5e0 +d6c5e0d6c5e0d6c5e0d6c5e0d6c5e0d6c5e0d5c5e0d4c6e1d8cce4cbc2e0d1c8e3e0d2e7 +e4cee4d8acc8bc758d9d2a41b02129c12324cd2726d42a26cf2826c62625ba2423aa2021 +9d1e1f8416178c181a9f1e1fb02322ba2523bd2424bc2324bb2424bf2724c12624be2424 +c12424c12424b72326a52031992e48dea3bae4c3dadac6e0d4c6e1d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d6cae2d6cae3d5c7e2d3c7e2d3c8e2d3c8e3d3cae4 +d3cae4d3cae4d3c8e2d2c5e1d2c3dfd5c4e0d9c6e0d9c5dfd6c1bfcab993c4b362bda52e +d0b629dbc02dd8bf29cfb729cab32bc8b22cc1aa2eaf9730a78d36b39a5fc2ab8cd2bcb0 +dbc6c8dac8d6dbcbdfddcfe4e0d2e8dbd0e7d7cce5d5cbe4d4c9e3d4cae4d4cae4d4cbe4 +d3cbe5d3cbe5d1c9e4d0c9e4d1cbe5d2cde6d4d1e8d4d2e6d4d2e5d1cfe3d0cde1d0c8e0 +d1c6e0d0c7e1cec8e3cfc8e3d2c9e3f5d8e7a44857a32020b82323c82625cd2826c62625 +c52725b322239d2520dfacc0dfcfe5d0c9e4d2c9e3d3c8e1d3c8e2d3c8e2d2c7e1d2c7e1 +d2c6e1d1c6e1d1c6e1d2c7e1d4c7e1d6cbe3d7cae4d5cae3d3c9e3d2c7e2d1c6e1d2c9e3 +d4cbe5d2cbe5d0c9e3d0c7e2d0c7e3d1c8e3d5cbe4d8cce0daced5d7c4bec4b197ad945f +9e82319f822dac8b2ebd9c2ecaa92bd3b229d0b629cbb32bc6ae2cc4ac33c5ac55cbb27e +d4bda9dbc6cfddcce3d5c9e3d3cae4d1cce4d1cee3d2cce2d3cce4d4c9e3d3c5e1d3c5e0 +d4c7e2d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d3cae4 +d0cbe5cdcde6cbcde7cecce6d0c9e4d3c9e3d3c7e2d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d3c5e1cebfddd4c6e1d3c3dfe2cce3e6c8df +d8a7bfba7184a23845961b1dbc2424c62425cc2726cc2726c52625b72323a71e21951b1d +8b17198b17199b1d1fae2122bb2424c22425c62625c62625c62625c42425c62625c62625 +c12424bd2224b3212ca42540b45879f0bed7dfc1dcd9c6e0d5c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d5cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d6cae3d6c9e2d5c7e2d3c7e2d3c8e2d2c9e3d3cae4 +d3cae4d4cae3d2c5e1d2c4e0d4c3dfd8c6e1dbc6e0d9c3cccdb99dbdac63b3a131cdb42a +d0b229d0b329d0b329cdb22ac5aa2dbb9e30af9238a98b4ebfa284cbb3a9d9c3cae0cde0 +decde3d6c9e3cfc4e1d1c7e2d6cee6d4cbe5d1cae4d0c7e3d0c7e3d0c9e4d2cbe5d3cce5 +d1cae4cfc7e2d1cae4d1cae4d0cbe4cfcbe3d0cce2d1cee2d3d0e2d3d1e2d5d0e2d5cce2 +d5c9e2d4cae4d0cbe5cfcae4d1c7e2f5d7e7a44857a62121ba2423c82625cd2826c52625 +c62625b52423a22b24e3b0c4e1d1e7d1c9e4d3c8e2d4c9e3d4c7e2d5cae3d5cae3d6cbe3 +d6cbe3d6cbe4d5cce4d5cce4d3cae3d0c7dfd0c8dfd3cbe0d4cee1d4cee1d3cce1d1cae3 +d1c7e2d0c6e2d0c9e3d0cae4d1cae4d1cbe5d2cde5d3cee5d5cde1d7cbd9dbcbcdd4c0b1 +c2ab89b0935ca48433a9872db6932ec1a12dc5a82cc8ae2ccab12bc8af2cc4ac32c4ac55 +cbb484d9c4b8e0ceddd6cae3d3cae4d1cae4d0cce4d0cce4d2cae3d4c9e3d4c6e1d3c6e1 +d4c7e2d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d3cae4 +d0cbe5cdcde6cbcde7d0cbe5d2c9e4d3c7e2d5c7e2d4c6e1d4c6e1d4c6e1d3c7e2d1c8e3 +d0c9e3d0c9e3d0c9e3d1c9e4d2c9e4d3cae4d3c8e2d3c5e0dbc9e2dcc2dde7bfd9dda4bc +bc6a7e9f2e37a32021b92824c52625c82725c82725c22525b52323a72021941a1d7f1415 +791212931a1ca71e21b52323bd2324c22425c62625cb2726cb2726c52625c82625cb2726 +be2324b12123a61f319f2e4ec67b9df2cadfe0c5ded9c7e1d6cae3d5cae4d4c9e3d4c9e3 +d3c8e2d3c8e2d4c9e3d5cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d6c9e3d5c8e2d4c7e2d3c7e2d2c9e3d1c9e4d2cae4 +d3cae4d4cae3d6cae4d3c4e0d4c2deddc8e1dcc7d5ceb8a6bfaa6ebdac42bdac2fcfb529 +d4b728ceaf2ac5a62dbe9d2fb6963fb29052b69673caaea4d6bbc2d7c3d6dac7e0dacae3 +d6cae4d2c9e3cec6e2cdc8e3d0c9e4d0c9e4d1c8e3d1c7e2d1c8e3d1c8e3d2c9e4d2c9e4 +d1c8e3d1c7e2d2c9e4d2c9e4d2c9e4d1c9e3d1cae3d2cbe3d3cce4d4cde4d5cde4d7cce4 +d6cbe3d4cbe4d0cbe5d0cbe5d3cae4f5d8e7a54859a42221b92423c82625cc2726c82625 +c12424b524239a221fe0adc2e0d0e6d0c8e3d2c7e2d4c7e2d4c7e2d4c7e2d4c9e3d5cae3 +d5cae3d4cae4d4cbe4d4cbe4d3cbe4d1cae3d0cbe2d2cbe1d2cde2d3cee2d3cee3d3cae4 +d3c6e1d3c7e2d4c9e3d2cae4d1cae4d0cde6d0cde6d0cde5d0cce4d2cce2d6cbdddfd0d8 +e2cfcad4bdacbda180aa8a59a4833cad8d30ba9b2ec7ab2ccab02bcbb22bc8af2cc5ad34 +c3aa58c3ad87e7d4cfdacce3d7cce5cdc6e2cec9e4d2cde6d2c9e4d0c5e0d6c9e3d3c3df +d5c7e2d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d3cae4 +d0cbe5cdcbe6cdcbe6d0cae4d4c9e3d5c7e2d5c6e1d5c6e1d4c6e1d3c8e2d0c9e4cfcce6 +cdcce6cacae5cacae5cccce6d0cee7d2cde6d4c9e3d3c3dfecd3e6eabed8d694adc06475 +ad3339a72021b52423cb2b26c82725c42625b92423ae2022a31f21931b1e7d121b6c0d18 +730f179d1e20ac1f21b32123b92223c02325c52425c82425cc2726cb2626cd2826c32525 +b02022a7212bac3d56c06f8de4adcdeecfe3dcc4ded7c6e1d5c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d6c9e3d5c8e2d4c7e2d3c8e2d2c9e3d2c9e4d2cae4 +d3cae4d4cae3d7cbe4d6c6e1d6c5e0dfc8d8d8c1b7c4ad7eb9a447c0af30c7b52ccbb22b +d2b529c8a82cb8962eb28e3eb89369c09e90cfb0b6e1c8dcddc7dfdac7e0d6c7e2d5c9e3 +d2c9e4d0c9e4cec9e4cdc9e4cec9e4d0c9e4d2c9e3d2c9e3d2c9e3d2c9e3d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e3d4c9e3d4c7e2d4c9e3d4c9e3d4c9e3d4c9e3d5cae3d7cae4 +d6cae3d3cae4d0cbe5cfcae4d3cae4f5d8e7a34758a22020b82323c62625cd2826c92725 +c02424b42423961f1edeabbfdfcfe5d0c8e3d2c7e2d4c6e1d4c6e1d4c6e1d2c7e2d3c8e2 +d3c8e3d3cae4d3cae4d3cae4d3cae4d2cbe4d1cbe4d1cce4d0cce4d0cce4d2cbe4d4c9e3 +d6c7e1d6c7e1d5c8e2d4c9e3d1cae4d0cbe5cfcbe5cecde7d0cde6d1cee6d1cae3d6cde0 +dfd2e0e1cfd5d6c0bec1a8a1ae927ea18450a6882ebb9f2fc4a92dcab02bc9af2cc8ae2c +c4ab38bca35fd7c2aadacbd7dbd0e7cdc5e1cdc6e2d3cce6d3cbe5d0c5e0d7cbe4d4c5e1 +d5c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d3cae4 +d1cae4cfcbe5cfcae5d2c9e4d5c7e2d6c6e1d5c5e0d5c6e1d4c6e1d0c8e3cbc9e4cacce7 +c8cee8c6cce7c7cde7cacee7cecee7d0cbe4d4c7e1d9c5e0efcce0e1a3bbbd6072ad2e34 +b32323c22625cc2826ce2926c72725be2724aa21219d201fa03138a74c62a253718a4064 +7c1a41a42030ae2124af2123b32225b82326bc2225bf2224c52425c82426c02425b42123 +ae2831b64d5dc97d92dea9c5e6c2dce0c8e0d6c3ded5c6e1d4c7e2d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5c8e2d4c7e2d4c7e2d3c8e3d2c9e4d2c9e4d2cae4 +d3cae4d4c9e3d6cae4d8c9e2dbcad7d9c4bccab48ebda759baa630c3b12eccb92ac9b12c +c7ab2cbc9b2eb18e3cb58f66c4a09cd9b9cae1c7e0decae2dac8e1d7cae3d5cbe0d4cce1 +d0cee5d0cbe5cec9e4cdc8e3cec7e3d0c7e2d3c8e2d3c7e2d3c7e2d3c7e2d3c7e2d4c6e1 +d4c6e1d4c6e1d4c6e1d4c7e2d4c6e1d5c7e2d5c7e2d5c7e2d5c7e2d5c7e2d5c8e2d6c9e3 +d6c9e2d2c9e3cfcae4cfc8e3d0c7e2f4d5e6a24454a02020b72323c82625cd2826cb2726 +c02424b52423971f1edfacbfe0d0e6d0c9e3d2c7e2d3c6e1d3c6e1d3c6e1d2c7e2d3c8e2 +d2c9e3d2c9e4d3cae4d3cae4d3cae4d1cae4d1cae4d0cae4d0cae4d0cae4d2c9e4d4c9e3 +d7c6e0d9c6e0d6c6e1d5c7e2d2c9e3d0c9e3d0cae4cecce6cecde7d0cfe7d4d1e7d2cde0 +cfc7d9d6cbdddfd0e2dac8dbc4b0bdac9388967934a78d30b5992fc5aa2dc7ac2cc8ad2c +c9af2ec3a84abfa675d3c0beddd0e6d1c8e3cec8e3d3cce5d4cce5d2c7e2d7cbe4d7c9e2 +d5c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d2cae4d0cbe5d0cbe5d4c9e3d5c6e1d7c6e0d6c5e0d5c6e1d3c7e2cfc9e4c9cae5c4cce7 +c3cee8c6d1eacad1e9cbcee6cfcbe3d4c9e1dbc8dfe4c5dadba5b9c16c7dac3138ae2022 +c22425d62b26d92d26cf2826c42725b227239b201f98302cb46773d599b1dca9cbbf8bb6 +a15685ae3a56b32e41ab2837a62431a4212da7202aab1f27b52229bc232eb5272eb73544 +c35d6fd48e9fe4b6c9e4c7ded8c5e0d0c0ddd1c2dfd3c6e1d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d3c8e3d4c6e1d4c7e2d4c7e2d4c9e3d3cae4d2cae4d2cae4 +d3cae4d4c9e3d5c7e1dbccdce0cec9cfba9bbda962b9a436beab2fc6b12dceb928c8b22c +ba9f2fb29233b79560c2a095d3b3c7e1c7e0e2cee4d5c4dfd6cae2d6ccdad6d0d3d3d1d3 +d1d0dad0cee4cfcae4cec7e3cfc6e1d2c7e2d4c7e2d5c7e2d5c7e2d5c7e2d4c7e2d5c7e2 +d4c6e1d4c6e1d4c6e1d4c6e1d5c7e2d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d5c6e1d6c7e2 +d5c9e2d2c9e3cfcae4cec8e3d0c6e2f3d5e6a142529f1e1fb72323c82625ce2826cb2726 +c12424b6252397201edfacc0e0d0e6d0c9e4d2c9e3d3c8e2d3c8e2d4c7e2d4c7e2d4c9e3 +d3cae4d3cae4d3cae4d3cae4d2c9e3d0c9e3d0c9e3d0c8e3d0c8e3d0c8e3d2c7e2d4c6e1 +d7c5e0d9c5e0d7c5e0d5c6e1d2c6e1d1c7e2d0c8e3cfcae4cecbe5cbcbe3d4d5e8d6d4e5 +ceccdfd1cbe1d9d0e7dccfe6d5c6e0c5b4c19e87699f8533a0872fbca12fc6a92dc9ac2c +cdb02ac9ad36b79c4dc6b29ddccddad4cbe4cec6e2d1cae4d4cce5d4c9e3d6c9e2d9cce4 +d5c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d2c9e4d0cbe5d2cae4d5c8e2d6c6e1d7c5e0d7c6e0d5c6e1d3c8e3cecae5cacee8c5cfe8 +c5d1eac9d3eacdd1e7d1cde4d7cae2e1cae1ecc8dbe3b2c3b86975a22f34aa2121bd2324 +cd2826d62a26d62b26cd2926bc2824a0222092271ea65c62cd9baeecc8deecd0e3dcbcd9 +d6a3cacc7492c76178b44f65a24054993249992a44a02a46b0324fbe415bcb5c74d97d91 +e3a3b4e7bfcde1cdddd7cfe5d0cee7cfc9e4ccc3e0d1c6e2d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d3c8e3d4c6e1d4c7e2d5c9e3d4c9e3d3cae4d2cae4d2c9e4 +d2c9e3d3c8e2d5c8e2decfd9dccbb7c4b179b5a041bba52fc7b02dcab02cccb32ac1a92e +a99030b0924dc7a98bdcbfbfddc5dddbc6e0d7c6e1cec0ded3cbe1d4cfdad4d1d3d3d1d3 +d1d0dad1cee3d0cae4cfc6e2d1c6e1d4c6e1d6c9e3d5c8e2d5c8e2d5c8e2d5c8e2d5c8e2 +d6c7e1d6c7e1d5c6e1d5c6e1d5c6e1d5c6e1d5c6e1d6c6e1d5c6e1d6c6e1d5c6e1d6c9e3 +d6cae3d3cae4d0cae4cec8e3d0c7e2f4d5e5a143539f1e1fb72323c82625cf2926cc2726 +c12424b7252397201ee0adc2e1d1e6d1cae4d3cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d3cae4d3cae4d3cae4d3cae4d3cae4d2c9e3d2c9e3d2c7e2d2c7e2d1c7e2d1c6e2d4c6e1 +d6c5e0d8c4dfd7c4dfd5c4e0d4c5e1d3c5e1d2c9e3d0c9e3d0cae4cecce4cfcfe6d5d2e8 +d6d3e9d2cde6cdc6e2cec6e2d6cce5ded1e6bfafabaf996c967d2dad902fc3a52dc8a92c +caab2bcdb02cc4a942bba575d6c5c0d5cae2cfc5e1cfc6e2d3cae4d4c9e3d3c7e0d8cbe3 +d5cae3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d2c9e4d1cae4d3cae4d5c8e2d7c5e0d7c5e0d7c6e0d5c6e1d3c8e3cecae5cbcfe8cad4eb +c8d2eac9cfe5d0cce3dacbe2e4c9deeac4d9eab4c6c075829c292a9b1e1fb82323cc2826 +d32a26d12826cc2726c12624a01f20992a21a35b5ec495a5dfc1d8e6cfe4dac7e1d8c3de +eed1e4f6bdd6f2adc2df9cb1cc8ea4c3839cc27c98c97d9ad885a3e592acf4afc7f7c1d4 +f2ccdde0cdddcfc9dcc8cae2ccd0e8d2cfe7cec8e3d1c8e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d3c8e3d4c6e1d4c7e2d5cae3d4cbe4d3cae4d2cae4d1c8e3 +d1c7e2d2c7e2d6c9e3e1d1d5d3c19ebba85ab5a130c2ac2ecdb529caaf2bc4a72dac9034 +a58b4fbca380dac2b1e8d2cfe2cfddd9c9e0d6cbe4d0c9e2d1cce3d0cee4d2cde2d2cde2 +d2cce3d3cce4d4c9e3d4c7e2d5c7e2d6c9e3d6cae3d6c9e2d6c9e2d6cae3d6cae3d6cae3 +d6c9e2d6c9e2d6c9e2d6c9e2d6c9e2d6c9e3d6c9e3d6c7e2d6c9e3d6c7e1d6c7e2d6cae3 +d7cae4d4cae4d0cbe5cfcae4d2c9e3f5d7e7a34555a02020b72323c82625cf2926cc2726 +c12424b7252397201ee0adc2e2d2e7d1cbe5d2cbe4d3cce3d3cce3d3cce3d4cbe3d4cbe3 +d4cbe3d4cbe3d4cbe3d4cbe4d4cae3d4c9e3d4c9e3d3c8e2d3c8e2d2c7e2d3c6e1d3c5e1 +d3c4e0d4c3dfd5c5e0d5c7e2d6c9e3d5cae3d4c9e3d4cae3d5cce5dbd4eacac3e0c5bede +d0c9e4d7d0e7d2cde6cec8e3d0cbe4d8d3e7d7cedad1c1b5a38c5a9e812db8962ec8a52c +c9a72cd0b02acfb235b79e51cdbb9ed8cbd3d1c8e2cfc6e2d2c9e4d4cae4d3c7e1d7cbe3 +d5c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d2c9e4d0cae4d1cae4d5c8e2d7c5e0d7c5e0d7c6e0d5c6e1d3c8e3cfcae5cacde7c9cfe8 +c8cbe3cec8dfdecbe1eecce0eebdd4dd9cb3c56f83981f239e1d1fb12122c22625c82725 +cd2926cd2926bf26249d1d1f7e1415b16672d2a7b9dfc5dbdccce4d6cae3d4c5e1d3c1de +dac3def0d0e3f1cbe0efcbdfeecce1eecce1eec8deeec5dceec3dbf0c8def5d3e4e6cbe0 +d7c6dcd2cbe0d2d2e7cdcfe8c5c8e4c9c6e2d5cee6d3cae4d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d3c8e3d4c6e1d5c7e2d5cae3d4cbe1d3cce3d2cae4d1c8e3 +d1c6e2d1c5e1d6c7e2e2d1d2c3b284b2a040baa62fc8b32ccfb429cdac2abd9b2ea68848 +bba488d8c3b4e2cfcaddcdd2d5c8d7d6cce2d8d1e8cfc9e4d0cbe5d0cbe5d0cae4d2cae4 +d4c9e3d5c9e3d6c7e1d7c7e1d7c7e1d6c9e3d5cae3d6c9e3d6c9e3d5cae3d5cae3d5cae3 +d5cae3d5cae3d5cae3d5cae3d5cae3d5cae3d5cae3d5cae3d5c9e3d5c9e3d5cae3d7cae4 +d7cae4d4cae4d0cbe5d0cbe5d3cae4f6d9e8a54859a42120b92323c82625ce2826cb2726 +c12424b6252397201edfacc0e1d1e7d0cbe5d2cae4d3cae4d3cce4d3cce4d4cbe4d4cbe3 +d4cbe3d4cbe3d4cbe3d4cbe4d4cbe4d4cae3d5c9e3d5c9e3d5c7e2d4c6e1d4c6e1d4c6e1 +d3c6e1d3c6e1d4c7e2d5c8e2d6c9e2d5cae3d5cae3d5cae3d6cbe4d9cee6d1c5e1cabfdd +ccc2dfd3cae4d7d0e7d5d0e8d0cee5cdcae2d0cee6e7dde7c1ad9b9c7e3da8862dc29c2d +cda72acfad29caac2bbaa239c4b27bd7cbc1d7cfe4d2cae4d2c9e4d6cbe4d6c9e3d7cae4 +d5c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d2c9e4d0cae4d0cae4d5c8e2d6c6e1d7c5e0d7c6e0d5c6e1d3c8e3d0cbe5cbcde7cacde5 +cecae3dacbe2efcde0f3c1d7e49cb6bc5c7a9f2235ae2222b52123c02624c72725c52725 +bc2324b02122a31f20921b24ac5f76d3a3bde3c9e1d8cbe4d0c7e2d2c9e4d8cde6d6c9e3 +d2c0ddcfc3dcd0c0dad5c1dcdbc6e0ddc7e0dcc5dfd9c4dfd5c4dfd6c6e1d2c7e2cfc7e2 +cfc8e2d0cce4d3cee6d3cde6d0c7e3d0c6e2d3c8e3d3c8e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d3c8e3d4c6e1d5c9e3d5cae1d4ccded4cce1d2cbe4d1c7e2 +d1c5e1d1c4e0d5c6e1e2d1d1b6a56eab9a32bdaa2fcab32bc9ab2cceaa2ab9962fb29a65 +cdbca8e2d2cde2d2d7d4c8dacec5dfd0c9e3d0cae4cbc6e2cdc8e4cec9e4d0c9e4d1c8e3 +d3c7e2d5c6e1d6c5e0d7c5e0d7c5e0d5c7e2d3c7e2d3c7e2d3c7e2d3c8e2d4c7e2d4c7e2 +d4c7e2d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5c9e3 +d5c9e2d3cae4d0cbe5d0cbe5d3cae4f6dae9a64b5ba62121ba2423c82625cd2826cb2726 +c02424b52423971f1edeabbfe0d0e6d0c9e4d1c8e3d2c7e2d2c9e3d2c9e4d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d5cae3d5cae3d5cae3d6c9e3d6c9e3d6c9e3d5c8e2d5c8e2d4c9e3 +d2cae4d1cae4d2cae4d4c9e3d5c9e3d5c9e3d5c7e2d5c7e2d4c6e1d3c3dfd6c9e3d6cae4 +d3c6e1d1c6e1d3cae4d4cde6d2cbe5cccae4c7c8e4ddd9ecd7c5c5aa8d6aa7822dbd952d +d1a729d3ad29c7a72cbea62fb9a65ad2c6afdcd2ded4cbe4d0c6e2d5cae3d6c9e3d6c9e3 +d5c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d2c9e4d0cbe5d0cbe5d5c7e2d5c6e1d6c5e0d6c5e0d5c6e1d3c8e3d0cbe5cfcee7d0cee5 +dbcee4e5cae1e9b8d1da93aec26283ab3151a71f26ce2b2ac62625c22425c72725c02624 +ab20219a1d1f9c2b3faf5c79dcabccdbbfdbd4c6e1cec6e2cdc8e3d0cae4d4cae4d6cae3 +dbd0e7d4d3e9d0d0e7d3cae4d6c7e1d7c6e0d6c5e0d3c5e1cfcae4cfcfe8c2c8e4cdd0e9 +d6d1e8d6cbe4d3c2dfd6c1deddc9e2dccae2d2c2dfd5c7e2d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d5c9e3d5c7e2d6c9e3d5cbe1d4ccdfd3cce2d2cae4d1c7e2 +d1c5e1d2c4e0d5c6e0e2d0ccac9c5ca69632c1ac2ecab22cc4a52dcea82aba9433bda47f +d2c2badecfd5dacedfd4c8e1d1c6e2cec5e1cac3e0cfc8e3cec8e3cfc8e3d0c9e3d1c8e3 +d3c7e2d5c6e1d5c6e1d7c5e0d6c5e0d5c7e2d3c7e2d3c8e2d3c8e2d3c8e2d3c8e2d2c9e3 +d3c8e2d2c9e3d2c9e3d2c9e3d2c9e3d3c9e3d3cae4d3cae4d3cae4d3cae4d4c9e3d4c9e2 +d5c9e2d2c9e3d0cbe5d2cbe5d6cae4f6dae8a64b5da52321b72323c52625cc2726c92725 +be2424b12322931e1dddaabce1d0e6d0c8e3d2c7e2d1c7e2d2c7e2d3c8e2d3c8e2d3c8e2 +d4c9e3d4c9e3d4c9e3d4c9e3d5cae3d5cae3d5cae3d5c9e3d5c9e3d5c9e3d5cae3d3cbe4 +d0cce4d0cce4d0cbe5d1cae4d3c8e3d3c7e2d4c6e1d4c6e1d4c6e1d4c5e1d6c9e3d6cae3 +d4c7e2d3c7e2d2c7e2d1c7e2d0c9e3cbc8e3c7c9e4cccce6ddd0dfb99e8cac873dba912c +cfa52ad7b027ccaa2ac0a92eaf9d41cec1a3ddd2ddd4cae4cdc2dfd4c9e3d6c9e3d4c5e1 +d4c9e3d3cae4d4c9e3d4c9e3d5c9e3d5c7e2d5c7e2d5c7e2d4c7e2d4c9e3d3c9e3d2c9e4 +d2c9e4d2c9e4d2c9e4d2c9e4d3cae4d4c9e3d5c7e2d5c7e2d5c7e2d5c9e3d4c9e3d4c9e3 +d3cae4d3cae4d2c9e4d2c9e4d2c9e4d3cae4d3c9e3d4c9e3d4c9e3d4c9e3d5c7e2d4c9e3 +d3cae4d2c9e4d1c9e4d2c9e4d4c9e3d5c6e1d5c8e2d3c9e3d0cae4d0cbe5d0cae4d2c9e4 +d5c7e2d5c8e2d4c9e3d4c9e3d4c9e3d5c9e3d5c7e2d5c7e2d5c7e2d4c9e3d4c9e3d3cae4 +d3cae4d2c9e4d2c9e4d2c9e4d2c9e4d2c9e4d2c9e4d3cae4d4c9e3d4c9e3d5c9e3d5c9e3 +d4c9e3d0cae4d0cae4d5c7e2d5c6e1d5c5e0d5c6e1d4c6e1d3c8e3d2cae4d0cbe4d6cde5 +e7d2e4e9c3d6d494aab65772a12741a9212fc0262cca2726d22a26c62625bc2424ad2022 +9d1e2098293aac5a77cf97bbdfc2ddd8c7e1d2c7e2d0c9e3d3cce6d3cce5d0c8e2d0c6dd +d5cfe4cbcfe6c9cde6cec9e4d3c7e2d5c6e1d4c6e1d0c5e1c9c8e4c5cce7c8d0e9c9cde7 +cdc8e4d4c5e1dbc6e0dec5dfdec5dfdac4dfd5c3dfd5c7e2d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d4c7e2d5c7e2d5c7e2d5c9e2d5cae3d4cbe3d3cae3d1c8e3d0c6e2 +d1c5e1d4c5e1d9cae0d4c6b3ac9b4fa99932beaa2fcbb22bc9a92ccea52ab79032cbb19d +d4c3ced9c9ded7c8e1d5c8e2d4c9e3d0c5e1cbc2dfd2c9e3cfc6e2d0c7e3d0c7e2d0c7e2 +d2c7e2d4c7e2d5c7e2d5c7e2d5c7e2d4c9e3d4c9e3d4c7e2d4c7e2d3c7e2d3c7e2d2c7e2 +d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d3c9e3d3c9e3d3c9e3d3c9e3d3cae4d4c9e3d4c8e0 +d5cae1d5cbe3d1c9e3d5cae4d9c9e3f6d3e4b15970a02326ae2122c52625cf2826c92725 +bc2424aa2321891a1bdcaebce2d0e5d2c8e2d4c9e3d3c8e2d3c7e2d4c7e2d3c7e2d4c7e2 +d4c9e3d3cae4d3cae3d3cae3d4c9e3d4c9e3d3cae4d2c9e4d2c9e4d2cae3d1cae3d1cae3 +d0cae4d1c9e4d1c9e4d0c8e3d2c7e2d3c7e2d4c7e2d5c7e2d5c7e2d4c9e2d4cae3d4c9e2 +d4c9e2d3c9e3d2c7e2d0c6e2cfc6e2ccc7e3cbcfe8c0c3e1d9cee5cab2abb49250b48d2d +caa02bdbb128cca92bc1ac2eb2a13bc7b89fdbcee0d7cce5d1c6e1d5c9e3d1c3dfd6c9e3 +d1c9e4d0cae4d2c9e4d4c9e3d5c7e2d6c6e1d6c5e0d5c6e1d4c6e1d3c8e3d2cae4d0cae4 +cec9e4cec9e4cec9e4cec9e4d0cae4d4c9e3d7c8e2d8c7e1d6c7e1d5c6e1d5c8e2d3c8e3 +d2cae4d0c9e3cec9e4cec8e3cfcae4d0cae4d1c8e3d2c7e2d3c6e1d6c7e2d5c7e2d4c6e1 +d0c9e4cdcde6cecde7cfcae5cfc4e0ddc9e1d3c0ddcdc6e2cbcee8cad0e9c9cee8cdcae5 +d6c9e3d8c7e1d2c4e0d1c5e1d5c7e2d6c6e1d5c4e0d6c5e0d6c6e1d6c9e3d6cbe4d3cae4 +d1cae4d0cbe5cecce6cdcbe6cecbe5cecbe5cfcae5d1c9e4d4c9e3d5c7e2d6c7e1d6c7e1 +d5c7e2d3c9e3d4c9e3d6c9e3d5c8e2d4c6e1d3c5e0d1c5e1d0c7e2d1c8e3d2c8e2e5d3e6 +e9c7d8cd96a6b55d6da42d3ca41e21b32223cd2627cb2726d12826c72625b02122991d1f +982e3eaf647ecf9bbce0bfdbd9c4dfd4c6e1d2c6e1d3c8e2d3cae4d3cae4d0c9e3cfc9e0 +d0cee4cbcbe4cacae5cfc8e3d3c8e2d5c7e2d3c6e1d0c6e2cbc8e3c9c9e5cdcfe8cbcae5 +cdc6e2d4c5e1d8c7e1dbc6e0d9c5e0d6c4dfd6c5e0d5c7e2d4c7e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d4c7e2d4c7e2d5c7e1d5c9e2d5c9e2d4c9e2d2c7e2d1c6e2d0c5e1 +d1c5e1d3c6e1dbcedaccbda2af9e49ac9b31bda92fcab12bceae2acca42ab68f30d5bcb3 +d8c6ddd8c6e1d5c4e0d5c6e1d5c8e2d3c5e1cfc3e0d3c7e2d2c6e1d1c6e2d0c7e2d0c9e3 +d0c9e3d1c9e4d1c9e3d1cae4d2cae3d3cae4d4c9e2d4c9e2d4c7e2d4c7e2d4c6e1d3c7e2 +d3c5e1d2c7e2d2c7e2d2c7e2d3c7e2d4c7e2d4c7e2d4c9e3d4c9e2d4cae3d5cae3d5c9e0 +d7cce3d6cce4d0c7e2d5c9e2dbc7e0f2cadfb566819a2837a51f21bb2324c62625be2424 +b12122a22925822228dcb3bfe4d1e3d2c9dfd4cae3d3cae4d4c9e2d4c7e2d4c7e2d4c7e2 +d3c9e3d3cae3d3cae3d2c9e3d2c9e4d1c8e3d0c9e4d0cae4cfcae5cecbe4cfcae4d0cae4 +d0c7e2d2c7e2d2c7e2d2c7e2d3c7e2d3c8e2d4c7e2d4c9e2d4c9e2d3cae4d3cbe3d3cae4 +d3c9e3d3c8e2d1c7e2d1c6e2cfc6e1cdc8e3cbcfe9c2c4e2d6cce5d2beb9ba9b56b38e2d +c9a02bdbb12fcca82bc1ac2eb2a23ac2b29fd7cae2d8cde5d4c9e3d5cae3cfbfddd9cde5 +cfcae4cdcbe4d0cae4d4c7e2d6c5e0d8c4dfd7c3dfd6c3dfd4c5e1d2c6e1cfc8e3cdcae5 +cacae5cacbe6cacae5cccbe5d0cbe5d5cbe4d5c6e1d5c4dfd5c4dfd3c4e0d4c6e1d3c8e3 +d0c9e4cec8e3cbc8e3cbc8e3cecae5cfcae5d0c9e4d2c7e2d4c6e1d5c6e1d5c6e1d3c4e0 +cdc8e4cacde7cacee7cccae5cfc2dfe4cce2d5bfdcc6c3e1c2cde7c0d0eac1cde7cac8e4 +d9c6e1dec8e0d6c5e0d4c6e1d6c9e3d5c6e1d4c4e0d5c4e0d6c5e0d5c8e2d4c9e3d0cae4 +cecae5cdcbe6cccee7cbcde7cbcbe6cbcbe5cecbe5d1c9e4d4c7e2d5c7e2d6c5e0d7c6e0 +d7c6e1d7c7e1d7c9e2d5c7e2d3c6e1d2c7e2d2c8e3d1c7e2d0c6e2d4c6e1d9c5e0e9c7db +d8a2b1ae5a649f2a2fac2524ba2524c32525cc2626cd2826cb2726b723239f1e20982a39 +ae6479cd9fb9e0c3dddfcce3d3c3dfd3c5e0d3c5e0d3c4e0d3c5e1d4c7e2d1c9e3cfcce4 +cecee4d0cae4d0c9e3d2c9e3d3c8e2d3c6e1d3c6e1d3c8e2d1c8e3d0c9e3d0c9e4d0c9e3 +d2c7e2d4c7e2d4c6e1d5c6e1d4c6e1d4c6e1d4c6e1d4c7e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d4c7e2d5c7e1d5c9e2d4c9e2d3c9e3d1c7e2d1c6e1d0c5e1 +d1c6e1d4c6e1d8cbd6d5c5aaad9c48ac9a31bea92ec9af2cccab2acaa32bbc9532d6bdb3 +dac8dfd9c9e3d4c5e0d2c3dfd3c4e0d3c5e1d3c5e0d4c9e3d3c8e2d2c7e2d2c9e3d1c9e4 +d1c9e4d1c8e3d1c9e4d1c8e3d3c9e3d3c9e3d4c9e2d4c9e2d4c7e2d4c7e2d4c7e2d4c6e1 +d3c6e1d3c6e1d3c6e1d3c6e1d4c6e1d4c6e1d4c7e2d4c9e2d5c9e2d5cae3d5cae3d5cae3 +d7cde5d3cbe5cbc6e1d1c8e3d3c4e0e9cae0af72909f445ca83442b32d2fb42925b22923 +aa2a25a644498e4753dcbbc9e2d3e6d3cae0d4cbe2d3cae3d3cae3d3c9e3d4c7e2d3c9e3 +d3c9e3d3cae3d2c9e3d2c9e3d2c9e4d0c9e4d0c9e4cfcae4cecbe5cecce5cecbe4d0cae4 +d3c8e2d4c6e1d4c7e2d4c7e2d4c7e2d4c9e3d4c9e2d4c9e2d4c9e2d4c9e2d4c9e2d4c9e3 +d4c7e2d3c6e1d2c7e2d2c6e1d0c6e2cdc6e2c7c9e4cac9e4dbd0e7d5beb7bd9f56b9962e +caa42bdab12ecea92ac1ac2eab9a36c6b5a4d5c7e0d4c9e3d1c7e1d5cae3d1c3dfd9cee6 +cbcde6cacde6cecbe5d4c7e2d6c5e0d9c3ded9c2ded7c3dfd4c5e0cec4e0cbc6e2c9cae5 +c7cbe6c7cde7cacde7cccde7d0cbe5d3cbe5d0c6e2cfc4e1cfc4e1d0c6e2d1c7e2d1cae4 +d0cbe5cec7e3cbc6e3d0cae4d1cae4d1cae4d3cae4d5cce5d6cae4d5c7e2d3c4e0d3c5e1 +d0c9e4cdcae5cbc9e4cdc6e2d4c6e1e3cbe2d8c6e1c8c6e3bdcae6becde8c3cbe6cec4e0 +ddc2dde2c6dfdbc8e1d6c9e3d4cae4d2cae4d1c9e4d2c9e4d2c9e3d1c8e3cfc7e2cec8e3 +cecae5cfcae5cfcde6cfcbe5cfcae4d0cae4d0c9e4d3c8e2d4c7e2d5c7e2d6c6e1d6c6e1 +d9c6e1dbc8e1d6c5e0d0c4e0cfc6e2cecae5cfcce6d1cae4d6c9e3dec6e0eabfd8d898ae +c06372a62b32a72021ba2424c72825c82725c92725c82625bd24249b1d1f961f25b36475 +d5a2b9e0c1dbd8c6e1d6c9e3d3c5e0d3c5e0d3c4e0d4c3dfd5c6e1d4c6e1d2c9e3cfcbe4 +cecce5d2c9e4d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d4c7e2d4c9e2d3cae3d2c9e3d2c9e3d0c7e2cfc6e1 +d1c6e1d4c6e1d6c9d7dfcfb9ac9951aa9731bea92ec9ae2cc9aa2bc9a32bc29e33d0b8a3 +dbc9d8ddcde4d6c7e1d0c2dfd0c2dfd3c5e1d3c8e2d4cbe4d2c9e3d2cbe4d2cbe3d2cbe4 +d3c9e3d3c6e1d3c5e1d3c5e0d2c4e0d3c5e1d4c6e1d4c7e2d4c7e2d4c7e2d4c6e1d4c6e1 +d3c6e1d3c6e1d3c6e1d4c6e1d4c6e1d4c7e2d4c7e2d4c9e2d4c9e2d5c9e2d3c9e3d2c9e3 +d0c9e4cbc6e3c6c5e2cdcce6cdc8e4e1d3e8b290acb27d91c27c88c97175c56361c76663 +c16967c08088aa7a8bdfc8dbddd3e8d0cae4d2c9e3d2c9e4d2c9e3d2c9e3d2c7e2d2c9e3 +d2c9e3d2c9e3d2c9e4d2c9e4d2c9e4d0c9e4d0c9e4d0c9e4cfcae4cfcae4d0cbe4d2cae3 +d5cae3d5c9e2d5c9e2d5c9e2d5c7e1d5c7e1d4c7e2d5c7e2d4c7e2d4c6e1d3c6e1d3c6e1 +d3c6e1d3c5e1d2c6e1d2c6e1d2c6e1cec6e2c6c2e0d5cde6decde3d3b9a8c3a250c19e2d +cfa829d8af28d0ac29c3ad2da59435cdbdabd7cae0d1c5e0d0c6e1d4c9e3d3c5e0d5cce5 +c9cde7c7cee8cdcbe5d4c7e2d8c5e0dac3dedbc2ddd8c2ded5c4dfd1c7e2cdcbe6c9cee8 +c7d0eac8d0e9cacfe8cbcae5cdc6e1cbc4e0d0cee7d0d0e9cfcfe8d0cfe8d1cde6d4cde6 +d4cbe4d3c6e1d2c4e0d8cae3d8c9e2d5c4dfd5c4dfd8c7e1d6c7e2d3c4e0d4c6e1dacde5 +dbcce4d9c9e3d5c6e1d3c4e0d7c6e1d8c4dfd5c7e2cccce6cbd1ead1d4ebd7d0e7d9c6e0 +e0bdd9e1bbd8d7bcdacebfddc9c7e3cbd1e9cbd2ebcad0e8cacde7cacce6cbcbe5cfcae4 +d0cae4d2c9e3d2c7e2d3c7e2d5c7e2d5c7e2d5c7e2d5c7e2d5c7e2d4c7e2d4c7e2d4c6e1 +d7c7e1dbc7e1d4c1decfc5e0d0cfe8ccd0e9c7cbe6cec7e2e0c9e1f2c9def1abc5bf526a +ac2229b52123c32525c82425c62625c22425c72725ba24249b1c1e901b1cb05764daa0b2 +efcadce1cbe2d1c4e0d4cbe5d2c6e1d2c4e0d3c3dfd5c4dfd4c5e0d5c7e2d4c7e2d0cae4 +d0cbe4d2c9e3d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d2c9e3d0c9e4d0c9e3d0c9e3d0c6e2 +d2c6e1d4c6e1d6c7d9e5d5c8a9975da59131bca52fc9ae2cc9aa2bcba72bc8a62fc3ad87 +d6c4c5e0cfe0dbcbe3d3c5e0d0c3e0d1c6e1d1c7e2d3cce5d0cbe4d1cce3d2cbe1d2cbe2 +d4cae3d4c6e1d3c4e0d2c1ded1c2ded3c4e0d3c5e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c9e2d4c9e2d3c8e2cfc6e1 +ccc5e1c8c4e1c5c5e2d0d0e9cccce6dcd8edb4a7c3bda5b7deb8bfeab8b6e2aba5ecb4ae +e5b0afdcb4bdbea3b4dbcbe3d5cde6cdc6e2d0c9e4d0c9e3d0c9e3d0c9e3d0c9e3d0c7e2 +d2c9e3d2c9e3d2c9e3d2c9e3d2c9e3d2c9e3d0c9e4d0c9e4d0c9e4d0c9e4d1c9e3d3cae4 +d5c9e2d6c9e1d6c9e1d6c9e2d6c8e1d5c7e1d5c7e1d5c7e2d5c7e2d4c6e1d4c5e1d3c4e0 +d4c5e1d3c5e1d3c6e1d4c6e1d4c7e2d1c6e1cbc2dfdbcfe6dbc3cecaac8cc3a03dc7a42c +d1ac29d6af28d0ad29c5ac30a7943fd6c6b5dbcee1d1c6e1d0c5e1d4c9e3d3c5e0d1c7e2 +c9cde7c9cde7cecae5d4c6e1d8c4dfd9c2ded9c1ddd7c3dfd4c5e1d3cce6cdcfe8c7cde7 +c3cce7c5cce7cdcae5d3cae4d9c6e1dbc6e0d6c7e1d4c6e1d4c6e1d8c5e0dcc5dfe2c7df +e6c7dfe9c6ddeac5dde8bfd9dfb2d2d8a7ccd5a5ccd7abcfd8aed1d5add1dcb8d6e6c6de +e8c7dee9c5dde8c8dfe8cbe1e3cbe2d0bfdcc7bfdebfc3e1c7cbe6cfcae4d4c1ded8b6d6 +deb0d1e6b8d5eac9dfe3cbe2d1c9e4c3cae4c0cbe5c1cae6c3cae5c6cae6cacbe6d0cde6 +d4cbe4d5c9e3d3c4e0d3c4e0d7c6e0d7c6e0d6c5e0d5c6e1d5c7e2d4c7e2d2c9e3d3c9e3 +d5c6e1d7c4dfd9c8e2d3cce5cacae5cbcde7d2cfe7dbcbe3e7c0d7e9a5bdd46b82a81e25 +b12122cf2726da2c26d32a26c52625bc2424ba2424a41e2189161bb05666e0a4b2efc7d5 +e1c9ddd2c6dfd0cae4d0cbe5d1c7e2d3c5e1d4c5e0d5c4dfd4c5e0d5c6e1d4c7e2d2c9e3 +d0cae4d2c9e3d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d1c7e2d0c9e3d0c9e4d0cae4d0cae4d0c9e4d0c7e2 +d2c7e2d4c6e1d6c6dee5d4d3b09c77a58e3eb99f31c9ad2ccdae2aceac2accac2cb79d5c +cdb9a4deccc9e0ceddd9cae3d4c6e1d1c6e1cec5e1d1cae4d0cae4d0cbe3d2cbe1d3cbe0 +d4cae3d5c7e2d4c5e0d4c1ddd3c1ded3c3dfd3c5e0d3c6e1d3c6e1d3c6e1d3c6e1d4c6e1 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d3c7e2d2c7e2 +cfc6e2cbc5e2c8c6e3cfd0e9c2c7e4cad0e99fa4baadaeb7cec8c5dacfc5dbcbbeebd7cb +e4d0cad5c4cab5a8bbcac1dccec6e2ccc5e1cfc7e2cfc8e3cfc7e2cfc8e3cfc8e3d0c9e3 +d0c9e3d0c9e3d1c8e3d2c9e3d2c9e3d2c9e3d3c9e3d3c9e3d3c9e3d3c8e2d4c7e2d5c7e2 +d4c6e1d6c5e0d6c6e1d7c7e1d7c7e1d7c8e2d6c8e1d5c7e2d4c6e1d3c4e0d3c3dfd3c5e0 +d4c5e1d4c6e1d5c7e2d5c9e2d5cae1d6c9e2d8c9e2decae2d2b6aac0a161c3a02dd0ab29 +d8b327d6b128cfad2bbba037ac9759d9c9bcdbcfe0d3c8e2d2c7e2d4c9e3d3c6e1cec4e0 +cdcae5cdcbe5d1c8e3d4c6e1d6c5e0d7c3dfd7c3dfd4c5e1d0c9e3cacbe6c5cbe6c2c9e5 +c6c9e4cfc8e3dac8e2e4c8e0ecc6ddefc2dae8b5d3e1a9cddd9cc5d48abbcd78b0c968a5 +c65a9cc44e93c4488fcc4c93c7458dbe3783ba3581b93c85b84187b54387ba4d8fc65e9d +cc68a6d073aed686b9dc9dc6dfb5d4dbcbe3cfcde7c4c9e5c7c9e5d4c6e1d3b5d6c996c3 +bd77afc97bb2e8adceefc5dce7cce2dbcde5d2cde6cccbe5cacbe6cbc9e4cdc8e4d0c9e3 +d3c9e3d5c7e2d5c6e1d5c6e1d4c6e1d4c6e1d4c6e1d5c7e2d4c6e1d4c7e2d2c9e3d2c9e3 +d3c6e1d4c5e1e0d3e8d3cae4c2b8d8d5c6e0efdbeaf3caded68ea2af4153a71f21b12122 +d22826d62a26d22a26d32a26ce2926b924239d1e1f932230b87285e9b6c7f1cedddac4d8 +cbc1d9d0cee5d2d2eac3c3e0cfc8e3d2c6e1d4c5e0d5c4e0d5c6e1d5c6e1d4c6e1d3c8e2 +d2c9e4d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d2c9e3d0c7e3cfc8e3d0cae4d0cae4d0cae4d0cae4d0c9e4 +d0c8e3d3c8e2d6c7e1e2cfd9c1aa97ac9259b19638c4a82fcaad2bd0b02accae2ab69b41 +c6af81d7bfa9dcc8c5dccbddd9cae3d4c6e1cec3e0d0c9e3cec9e4d0cae4d0cbe4d1cbe3 +d3cae3d6c7e1d6c5e0d6c3ded3c2dfd3c3dfd3c5e0d3c5e1d3c5e1d3c5e1d3c6e1d4c6e1 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c6e1d3c6e1d3c6e1 +d1c6e2cfc5e1cdc6e2d2cfe7c3c5e2cacfe79ca4b2a5afb1bfc6bec9d1c2ced3c0d8daca +d4d2c8c3bfc4a8a4b6c7c0dcd3cae4d1c8e3cec7e2cec7e3cec8e3cec8e3cfc8e3cfc8e3 +d0c7e3d0c7e3d0c7e2d1c7e2d2c7e2d3c8e2d4c9e2d4c9e2d4c7e1d5c7e2d5c7e2d4c6e1 +d4c5e1d4c5e1d4c6e1d4c6e1d5c6e1d5c6e1d5c6e1d4c6e1d4c6e1d4c5e1d4c6e1d4c6e1 +d4c6e1d5c7e2d5c7e1d5c9e2d6c9e0d8c8e0e1cbe2dcbec4cbaa7fc29e42c9a72bd6b328 +dbb726d5b128caab2dae913eb9a079d7c5bfd8cbddd3c8e2d2c7e2d3c8e3d2c7e2cfc4e0 +d1c6e2d1c7e2d3c7e2d4c5e1d4c5e1d4c5e1d3c6e1d0c7e2cecbe5c8c9e5cbcbe6d4cde6 +ddcfe6e5cce2e6bfd9e2aacdda8fbdd47bb0bd5794b84989b74184b7377eb92f7ac02d79 +c62f7acb2d7ad02d7ad5307fd42d7bd02c78cf2b78cf317dcd327dc62d79c6307cc93782 +c3317cbc2c78b8377fb74f8ebb76aaddc8e1d5d5ebd0d5ebd0cfe8dbcbe4e1bfdbd49cc6 +b764a1a64084be5496d075afd794c1dfb2d2e4c6dee4cee4e1cee4dfcce4d9c9e3d6c5e0 +d4c5e1d4c6e1d4c6e1d4c7e2d3c8e2d3c9e3d3c9e3d3c9e3d3c8e2d3c6e1d4c6e1d4c6e1 +d3c6e1d4c7e2d4c7e2d4c6e1d8c7e1e4cae1e6bdd3d392a6b35161a01f23b12022bf2424 +d62b26d32a26c62625c02424b72323a61f209a2324b86e82e1b6cfedcee1dec8ded2c8df +cfcfe6ced1e9cacee8cbcbe6d0c9e4d3c7e2d5c6e1d5c4e0d6c5e0d5c6e1d4c6e1d3c8e2 +d2c9e3d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d1c7e2d0c7e3cfc8e3d0c9e4cfcae4cfcce4d0cbe4d0cae4 +d1c8e3d3c8e2d6c5e0dcc9dcd5c0bbb49875ad8f40bb9e30c6a92dceb12acdb02ac0a432 +c6aa5eccb180d4baa2ddc6c6dfcce3d8c9e2cfc2dfcfc6e2cec7e2cec7e2cfc9e4d0c9e4 +d1c9e3d4cae3d5c7e1d6c6e1d5c6e1d4c5e1d3c5e0d3c5e1d3c5e1d3c5e1d3c6e1d4c7e2 +d4c7e2d4c9e3d4c9e3d4c9e3d4c7e2d4c7e2d4c7e2d4c7e2d4c6e1d4c6e1d4c6e1d4c5e1 +d5c6e1d4c5e0d4c5e1d9cde5cec6e1d7d3e7a8abb2acb4b0bdc8bcc9d6c3cedcc6cfdbc9 +cdd5cbbec0c3a8a5b7cdc3ded9cde5d4c9e3cfc6e2cfc8e3cfc8e3cfc9e4d0c9e4d0c9e4 +cfc8e3d0c7e3d0c7e2d1c6e2d1c7e2d3c9e3d5c9e2d5c9e2d5c7e1d6c6e1d5c5e0d4c6e1 +d5c7e2d4c6e1d4c6e1d4c5e1d3c4e0d3c3dfd3c3dfd4c5e1d3c5e1d5c7e2d4c9e2d5cae3 +d5cae3d5cae3d4c9e2d4c7e2d5c7e2dac6e0dfc3ced3b196c6a556c7a52dd3b029dab726 +d8b627cead2ac3a430ae8f59ccb4a7d7c6c9d7ccded4c9e3d1c6e2d1c6e2d3c7e2d3c5e0 +d4c5e0d5c4dfd5c6e1d4c6e1d3c7e2d0c7e2cec9e4cdcae5cdcbe5d3cde6d6c9e3d9c1dd +dcb6d5dda6cbda8fbdd070a9c34c8db9327abe307ac02e78c22c76c42b74c82a74d02d76 +d62c78db2d79df2d79e12e79e12e78e12e79e02f7bdf317ddc307cd82d7bd52d7ad52d7a +d7307cd22b78c32972af2971a54484dcc0dccccee7c7cde7c9c7e3d2c1dee0bdd9e2adcf +c979b1af3d84b82c7ac33681c44b8ecc69a5d88dbde0a8cce2b3d3e5bdd9e5c5dddfc3de +dac4dfd4c5e0d1c6e2cfc9e4cccbe5cccce6cccbe5cfcae4d0c9e3d3c6e1d5c7e2d4c6e1 +d5c7e2d5c8e2cdbeddd6c5e0ead3e6e3c0d8c48ca2a752649e2b34ac2525c52926c12424 +cc2726c82725ba2423a720219b1f1fa23434ba6d7adaabc5e3cae1dbc9e1d2c7e2d2cfe7 +d0d3ebc9cde7c5c9e5d4d2e9d0c9e4d4c7e2d5c6e1d6c5e0d6c5e0d4c6e1d3c6e1d1c8e3 +d1c8e3d2c9e3d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d1c7e2d0c7e2cfc7e2cfc9e4cfcae4cfcce4cfcce4d0cbe4 +d1c9e4d3c8e2d5c6e1d8c6dfe7d0d8bba08ea5884eb19437bfa42eccb12bcdb22acfae2c +caa93cc6a555ccad78dbbfa7e7ced0e0cce3d3c3dfd1c6e1cfc5e1cec6e2cec7e2cfc8e3 +d0c9e4d0cae4d2cbe4d4cae1d5c9e2d3c5e1d3c5e0d3c5e1d3c5e1d3c5e1d3c6e1d4c7e2 +d4c7e2d4c9e2d4c9e2d4c9e2d4c9e3d4c7e2d4c7e2d4c6e1d4c6e1d3c6e1d4c6e1d5c6e1 +d8c7e1d9c6e0d8c4dfddcbe3d5c3dbe1d3e5b3abb1b3b4afbdc4b7c7d2c0ccdcc9c6d5c5 +c8d4cbbcc2c7aaa8b9d0c5dfd7cae3d3c5e1d2c6e1d0c7e2d1c9e4d1cae3d0cae4d0cae4 +d0c9e3d0c7e3d0c6e2d1c6e2d1c7e2d4c7e2d5cae3d5c9e2d6c7e1d5c5e0d4c5e0d4c6e1 +d4c9e2d4c9e2d3c7e2d2c5e1d1c4e0d1c3e0d1c3e0d1c4e0d3c5e1d4c7e2d5cae3d5cbe0 +d5cbe0d5cae2d5c9e2d4c7e2d5c7e2dbc6d9d9baabc9a662c3a22ecdad2ad8b826daba25 +d4b328c7a72cba9a39b29379e3cad1dbc8d7d9cce1d6cbe4d1c6e2d0c5e1d3c7e2d5c7e2 +d7c3dfd9c3ded6c5e0d4c6e1d0c7e2cec9e4cdcae5cfcae4d4c7e2e2cee4debbd9d59dc7 +ca7eb1c0619bbd498abf367ec02c75c1286fca2b75ce2b75cf2b75d12b75d52b75da2c77 +de2d78df2d77e12f76e12f75e22e76e32d78e22e78e12e78e02e79e12f7cdf2f7bde2e7a +e2317ddd2d79cc2972b5256ca03276e4c5decdcbe5c8cbe5cdcbe5d3c4e0e1c1dce5b6d4 +cf82b7b23e84c42c7bd02f7dce2e7ccb3984ca4c94cb65a6d580b5e19ec6e9b6d3e9c0da +e4c3dddcc5dfd5c6e1d0c9e3cccbe5cacce7cacce7cbcbe6d0c9e4d2c7e2d4c6e1d4c6e1 +d6c6e1d7c8e2d3c4e0d9c9e3dfc8e0cca7bcaa7180943d46972224aa2522c02824c12424 +c62625bd2324aa2121971e1f943337b17177e0b5c6e1c7e0d6c5e0d5c9e3d3cce5cdcbe5 +cacbe6cacce7cecee7d0cbe5d1c8e3d4c7e2d5c6e1d6c5e0d4c6e1d4c6e1d3c8e2d0c9e4 +d0c9e4d2c9e3d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d1c7e2d0c7e2cfc7e2cfcae4cfcae5cfcce4cfcce4d0cbe4 +d0c9e4d3c8e2d5c7e2d6c3dfead4e5ccb3b0ae916ca6893ab49930c9b02cc8ad2cd3b029 +d3ae2bcfa936caa850cfb075dbbea1e4cbc7dfcbded5c6e1d3c5e1d0c6e2cfc6e2cdc6e2 +cdc6e2cec8e3cecae4d1cce3d3cce4d3c8e2d3c5e1d3c5e1d3c5e1d3c6e1d4c6e1d4c7e2 +d5c9e3d5cae3d4c9e2d4c9e2d4c9e3d4c7e2d4c7e2d4c6e1d3c6e1d3c6e1d3c6e1d5c8e2 +d6c7e2d9c8e1dbc6e0dcc5deddc4dbe8d2e3b5a4adb7adadc1c0b9cad1c6ccdacec4d2c7 +c2d2cdbcc3caa8a9bacdc6dfd5c9e3d2c4e0d4c6e1d5cae3d5cbe0d5ccdfd6cee1d4cde4 +d2c9e4cfc5e1cec4e0d1c6e1d1c7e2d4c7e2d5cae3d6c9e2d6c8e1d6c5e0d4c5e0d4c6e1 +d3cae3d1cae4d0c7e2d0c5e1cfc4e1cfc4e0d0c5e1d1c6e1d4c8e2d6cae4d4c6e1d0c5e0 +d3c8e2d7cce4d9cee4d5cae2d0c1d7cfbab5cdae79caa838caac2bd2b628d7b926d6b627 +cbac2bbd9f2eaf9143ccadace5cde2dac9e0d8cbe3d5cae3d1c6e1d0c5e1d3c8e2d6c7e2 +dbc7e1d6c0ddd4c4e0d3c8e3d0c9e3cfc8e3d4cbe4d9cae3dabad8dcaacecf86b8be5c98 +b84082ba2f78be2a74c1286fc5296fcf2c76d12b74d32a73d42c73d42b74d52b75d62b75 +d52b74d32971d22970d22a6fd32971d42a71d32971d22a6fd32971d82d77da2d79da2d78 +db2e79d62a76c92971b4256ca33477eed0e4d1cbe5c9c8e3d0cbe5d8c9e3dfc4dee3b9d6 +dc9dc6c05697c32b75da2e7ce0327fda2f7ece2f7ec53384c54691cf60a4de85b7e5a4ca +e6b5d3e5bfdadfc5dfd9c7e1d4c9e3d0cbe5cfcde6cfcde6d0cbe5d2cae4d4c9e3d5c7e2 +d6c6e1d5c4e0d9c9e3d5cae3c6bcccb6a2adaf8c8faf7271b05651b23831b32423bb2324 +c02425b824269a1d1f973745b07987cdb3c3e0d2e6d8cae3d0c2dfd3c8e3d3cae4ccc7e3 +cac7e3cecce6d2cee7cec7e2d3c9e3d5c7e2d5c7e2d5c6e1d4c6e1d3c8e2d1c8e3cec9e4 +cecae5d1c8e3d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d1c7e2d0c7e3cfc7e2cec9e4cfcae5cfcae4cfcce4d0cbe4 +d0cae4d2c9e3d5c7e2d3c3dfe1cde3ddc5d1c0a496a58951a78d30bda62fc6ab2dd0ab29 +dcb327dcb329d0ab2dc8a63dcbad64d9c094e4cdbdddc9d5d7c8e2d4c6e1d1c6e2cec5e1 +ccc5e1cbc5e2cbc8e3d0cde6d3cee6d3c9e3d3c6e1d3c5e1d3c5e1d4c6e1d4c6e1d4c7e2 +d5c9e3d6cae4d4c9e3d4c9e3d4c7e2d4c7e2d4c7e2d4c6e1d3c6e1d3c6e1d3c6e1d3cae4 +d2c9e3d5c9e2dbc9e1d7c1dbe2c7ddeacfe1b49cacb8a8afc7bfbfcfcfcdd2dad5cad6d3 +c4d2d3bbc3cca4a8bac9c5ddd5cbe4d5c7e0d8c9ddd8cbd7d8cbcdd5cac9d6cdd2d9d0de +d6cce4d0c5e1cec3dfd1c6e1d1c6e2d4c9e2d5cae3d5c9e2d6c8e1d5c5e0d4c5e0d3c6e1 +d1cae3cfcbe3cfc8e3cec7e2cfc6e1d0c7e2d2c7e2d3c8e2d3c8e2d4c8e2d1c3e0d0c2df +d6c8e1dbcee4dbcedcd1c6c9c4b7acbeab80c9ac4cd1b229d5ba26d6bc25d2b728caae2b +c0a42eb89e3cb69b6ae3c8dbdac5dfd7c7e1d5c7e1d3c7e2d1c6e1d1c6e2d2c7e2d4c6e1 +dacae3d2c0ddd3c4e0d4cae4d2c9e3d4c6e1ddc8e1e0bcd9ce8fbec0639eb94183b72871 +be276ec92c74d02e79ce2b75c72971cb2b73cb286fcc2a6fca296fc8286ec5286ec1276d +bc266bb82569b72669b62569b7266bb8266bb72669b72367b82568c1286dc2286fc2286e +c32970be276db32368a9266da74584f2d6e7d4cbe4cac6e2d0c9e4d7cae4d8c4dfdebeda +e7bbd7d17ab1b9256ed52b75e93182e9317fdf317fd32e81c82f7ec32f80c64591cf65a6 +d682b6de9dc6e2b1d1e3c0dbdfc8e1dbc9e2d6c9e3d3cae4d2cae4d1cae4d1cae4d3c9e3 +d4c6e1d8c7e0d5c7e0c5c4d6b4b9c1b4b8b7c8c0badcbcb4dca299cd6f6bad2825b52423 +b02122ac212e9a2b41b06e86d1b7ced9d9edc8cee8d0c7e2d3c5e0d2c5e1d2c7e2d1c7e2 +d0c7e2d1c8e3d2c9e3d3c8e2d4c7e2d5c7e2d5c7e2d5c7e2d3c8e2d1c8e3d0c9e4cdcae5 +cdcbe5d0c9e3d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d1c7e2d0c7e3cfc8e3cfc9e4cfcae4d0cbe4d0cbe4d0cbe4 +d0cae4d2c9e3d2c4e0d3c3dfd9c6e1e0cae0d7bdbdbda284a28940a28d30c4ab2dd5b028 +dab026dab126d6b128cfaf2ac9ac32c9af52d4bc81e3ccb4dcc9ccd8c7e1d4c6e1d1c5e1 +cec5e1ccc5e1cbc5e2cdc9e4d0cbe5d2c9e4d4c7e2d3c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c6e1d3c6e1d3c6e1d2c9e3d0cbe5 +cdcbe4d0cbe4d7cae4d4c2dddfc7e0e8cfe3b49bb1b8a4b5c5bac4cecbd2d4dadfd0dcdf +cad7dbb9c3cda2a8b7c5c5d9d5cee1dccedae0cecdd9c6b9cdbda7c9bba3cfc3b4d8cdcc +dacfe4d6cbe4d2c7e2d1c6e1d2c6e1d3c9e3d5cae2d5cae1d6c9e2d5c6e1d3c4e0d2c6e1 +d0c9e4d0cbe5d1cbe4d3cde6d3cbe5d3cae4d2c7e2d2c5e1d1c3dfccbedcd3c4e0ddcde5 +dfcfe3dacbccd0c2afc4b790baaf6fbdad4cd3b936d7b926d7be25d6be25cbb32bbda32e +b59c38bda661d1b9a2ddc6dfd5c3dfd6c6e1d4c7e1d3c7e2d2c6e1d1c6e2d2c9e3d4c9e2 +d3c7e2d3c6e1d4c9e3d6c9e3d6c5e0dac0dcdcb2d3ce8abaae4483af276ec22a73d02e77 +d32a75d02a70ce2970cf2d78c32d74b62569b7256ab4256ab12469ad2568a9276aa62b6c +a22d70a23374a13876a13977a23c79a43d7aa43a79a23575a33172a83174a82e72a62d6d +a72c6e982463922461a13b7cb56da4ebd3e5d4c9e3d4c9e3d4cae4d4c9e3d3c3dfd8c3de +e0c0dbd391c0ba307ec92a74e2317ee92f7ee73281e23286db3286d32f84c62d7db72877 +b63380c25599d17bb2e0a0c8e7b7d4e4bcd8dcbfdbd8c3ded3c4e0d3c6e1d0c7e3d0c9e3 +d4cbe4d8cee5c6c1d3b3bdc6b3c3c6bccfcad2dbd2ebded3f7d0c7eba6a3b34647b12d38 +981c1f9a2136bc6585dcaac9dbcce4c6cee8c3cee8cfc8e3d3c5e0d3c4e0d4c5e1d4c6e1 +d4c6e1d5c7e2d5c7e2d5c7e2d5c7e2d5c7e2d5c7e2d4c9e3d1c9e4d0c9e4cfcae4cdcbe5 +cdcbe5d0c9e4d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d1c7e2d0c9e3d0c9e3d0c9e4d0c9e4d0c9e3d0cbe4 +d1cae4d3c9e3cfc3e0d5c8e2d4c1dedac7e1e6cfddd6bfb5ac976b927d2eb39c30d4af2a +d6ac27d6ae28d7b427d6b727cfb429c9b02ccab23dd4bc74dac2a2dbc6c3dbc8ddd7c8e2 +d4c7e2d1c7e2cdc4e1cbc4e1cac3e1d0c7e3d4c9e3d4c9e2d4c9e2d5cae3d5c9e3d5c9e3 +d5c9e3d6cae4d4c7e2d4c7e2d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c6e1d0c9e3cacce6 +c6cce7c9cde7cfcce6cdc4e0d7c8e2e2d0e5af9bb9b5a4bfc7bdd2d2cee0d6d6e5d0d7e3 +c6d1d9b7c3caa6afb7c6cdd5d9d9dadad0c5d6c2a6ccb78abdab75b9ab75c5b892d5c7b8 +dcccd9d7cbe4d4c6e1d2c4e0d2c6e1d3c9e3d5cbe1d5c9dfd6c9e2d4c6e1d3c4e0d1c5e1 +d0c7e3d0c9e4d1cae4d2cae4d2c9e3d2c7e2d1c4e0d0c0ded1c0ded8c7e1decbe3dfccda +d9c5bcccbc93c0b469bdb347bfb730c7bb2dd4bc26dabd24d8c123d2bc27c4ac2db49a3c +b19a56c3b089dfcbc5d9c7e1d3c3dfd4c6e1d3c8e2d2c7e2d2c6e1d2c7e2d4c8e2d2cbe4 +cec9e4ccc7e3d3cae4dac9e3dec0dcd6a3cac475acb24183ae2264cc2b75da2d77de2d75 +da2b71d12a6ec5286db9256ead276c9f266a9424659329699734729e4780a65c90ae719f +b985b0bf98bfc3a1c6bea0c4bea2c5c3a4c8c3a2c7c49fc4c699c0c794bec38db8bf84b2 +b173a299598b915286ad76a5cea7cde4cfe5d3c4e0d6cae3d5c7e2d1c6e1d1c7e2d5cae4 +dac8e2d8b1d3bd5798b72874d02d7bdf317fe02f7ddd2e7ce03183e13689dc3285cd2d7d +c12773ba2875b82f7dbc468cc968a6d88ebde9b6d3ecc9dfe6cae0dbc6e0d5c7e2d5cee6 +d0cfe5bbc0ceadb7c0adc0c5b6cfcebad3cec1d3cbd1d1c8e6cdc7ebbcbacb838a871826 +972844c3688ae5a6c9ebc9dfdfd0e6c8c8e4c4c6e3d0c6e2d4c4e0d4c3dfd4c5e0d4c5e0 +d4c5e0d6c5e0d6c5e0d5c6e1d5c7e2d5c7e2d4c9e3d2c9e4d0cae4d0cae4cfcae4cdcbe5 +cfcae4d2c9e3d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d2c9e3d1c7e2d1c7e2d2c9e3d2c9e3d2c9e3 +d2cbe4d3cae4d0c4e0dccee5d1c2ded0bddbdfcbe3e4d0d8c8b6a6a08e5c9c852fb8962e +c8a32bd4b029d8b926d9bb25d7bb26d3ba27ccb52ac7ad33ceb265d2b78bdac0b3ddc6d1 +decae2dacae3d7cae3d3c8e3d2c9e3d0c7e2d1c8dfd3c9dfd4c9e2d5cae3d5cae3d5c9e3 +d5c9e3d5c7e2d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d4c6e1d4c6e1d4c7e2d0c9e4cacce6 +c5cce7c6cce7cbcce6c8c5e2d1cae4dbd0e7a99ec0b0a6c4c7bed6d2cce0d2d0dfd1d2d9 +c9cdcec3c7c3b3b8adc7c9bdcdcbb3c7ba90c3aa69bfa552b9a244baa74ec8b676d5c4a2 +dccacad6c7e1d2c3dfd3c5e0d3c5e0d3c9e3d4cce0d4cbdfd5cae3d5c7e2d4c5e1d2c5e1 +cfc4e1cfc5e1cfc4e1d0c3e0d2c4e0d3c4e0d8c5e0dbc7e1e0cbe2e7d1dddec6c0ceb897 +c5b16ec3b04cc4b432c8bc2ecec329d3c526d5be25dbc126d1ba27bfa82eb29939b39d64 +c0ae8fd2c3b5daced8d4c6e1d3c5e1d3c7e2d2c7e2d2c7e2d3c6e1d4c6e1d4c9e2d3cce4 +c9c8e2d3cce6dacbe4dbbad8cd97c3b9629da92e74af2263ce2b75d82c74d92c6ed62b6d +d12a6fc5276fb3256a9c21608e20608d316faf689eba7cafc18cbbca9dc6d2b0d3d9c0dc +ddcce4ded5eadbd8edd4d6ecd4d7ecd8d9eddbd9eddcd6ebded3e8e1d2e7e0cde4dbc7e1 +d6c3dec6b2d3bca8cccbb8d8decde5dacae3d1c1ded5c4e0d4c5e0d0c6e2d0cbe5d2d0e8 +d2cde6dcc6e0c47fb2a52f78bd2976d32e7ce03281e33382e2317fe02f7de23081e33384 +de3082d52d7bc82a75be2771b72a75ba3e84c5629eda92c0e9b5d3ecc7dde7cae0d9c5e0 +c7bed4b4b6bfb3bfc3c2d3d5cce0dfcbdeddccdad7d5d8d5ddd0ceddc1c3c89ba363152a +c3839df0c6dcecc8dedcbfdbd4c3dfd3cae4cac1dfd2c5e1d4c5e0d5c4dfd5c4dfd5c4e0 +d5c4e0d6c5e0d5c4e0d5c6e1d5c7e2d3c9e3d2c9e4d1c9e4d0cae4d0cae4d0cae4d0cae4 +d0c9e4d2c9e3d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c9e3d3c9e3d2c7e2d2c7e2d2c7e2d2c7e2d2c9e4 +d2cbe4d2cbe4d3c9e3d6cae4d2c4e0cfbfddd5c6e1ddcee4dacacfc3b4a1ad9866a0842e +b09330c2a62ecdb22ad2b728d2b927d3ba27d5ba26d6ba2accab2eccab4dd1b172d7b893 +dbbfafdec5c3e0cad2e2cfdde2d4e2d6cad9d3cad8d3cbdbd4cbded5cbe2d5cae3d4c7e1 +d1c4e0d1c4e0d2c6e1d3c5e1d3c5e1d3c5e1d3c6e1d4c6e1d4c7e2d4c7e2d1c9e4cdcae5 +c9c9e5c9cbe6cbcce6c5c6e3cdcce6d5d3eaa3a1bfaca9c1c1bcd1cec8d6d7cfd3e0d9d2 +d8d2c2ccc6a8b2ad83b5b17fb3ab6ab9a64fc4a73ac8a92ec6ad2dc7b339d0bb63d8c690 +e0cbc1dbc8ded4c5e0d3c3dfd3c5e0d3c9e3d3cbe0d3ccdfd3cae3d4c7e2d3c5e1d3c6e1 +d2c6dfd3c8ded5c6e1d6c5e0d8c5e0dac6e0dfc8e1e5cbd9e2c8bcd1b98bcbb463c8b237 +cab62bd2bd28d7c326d9c524d7c225d6be25dcc12ad1b52abca22fa99034ad9464bea99c +d3c4c5ddd3dcdbd4e7d0c9e3d0c7e3d1c8e3d2c7e2d3c7e2d3c5e1d5c7e2d6c9e3d5cae3 +d0c4e0e4d1e6e2c0dbc98cbcaf4f8caa2b70b8266dc92a72d52b74ce2869cd286ac3266b +b32265a122629d2c6fa9528cbc7aabc791bedeb2d3e4bcd8e4c0dbe3c5dee3c9e1e0cae2 +d9c9e3d2c6e1ccc5e1cac5e1cbc7e2cec9e4cfc9e4d0c7e3d2c7e2d6c9e3d7c8e2d4c5e1 +d6cde5d5d0e8d1cfe8cecee7d4cde6d4c5e1d6c4dfd5c0ddd7c7e1d2c7e2cccae5cccee8 +c8c8e4d7cbe4c496c39c4081a92670c22774d42c7ade2f7de33280e63180e4317de4317a +e4317be5327fe63483de3281cf2c79c12973b4266eb1367cba5793c774aad18cbcd39cc4 +d0afcad0c4cfceced1d3d1daceced6cfcdd6d6d1dbd4cdd6c2b7bfab9ba4a18c97937a88 +e1cbdce5cee3dbc4dfd7c0ddd6c2ded6c4dfd6c6e1d4c5e1d5c7e2d4c6e1d6c5e0d6c5e0 +d6c5e0d5c5e0d4c6e1d5c7e2d3c8e2d0c9e4d0cae4d0cae4d0c9e4d1c9e4d2c9e3d3c9e3 +d4c7e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c9e3d5cae3d4c9e2d3c6e1d3c5e1d3c5e1d2c7e2d3c8e2 +d3cae4d2cbe3d4cae3cdc2dfd3c5e1d6c9e3d5c7e2d4c5e0d7cae0d9cdcccdbfa7b29e6c +a68e41a48c30b2992fc6ac2dd2b729d7ba26d9ba26dfbd27d8b427d7b32fd6b242d3b15c +d3b272d4b687d6bc9adac3aaddcbbadbcfc8d8cfd2d8cfd7d8cfddd8cee1d7cce4d6cbe4 +d4c6e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c6e1d4c6e1d4c7e2d4c9e3d4c7e2d2c9e3 +cfc7e2cec9e4cecce6c5c7e3cacee7d2d6eba0a3baabaabcc8c4cfdbd2d3e2d5cceddcc5 +d9c7a3c5b278af9c4db5a549bba83dc4aa2fd0ae2ad5b428d4b927d3bb2ed3be4ed8c37f +dec8b4dec9dad8c6e1d3c4e0d3c5e0d3c9e3d3cbe0d2cdded2cbe3d2c7e2d2c6e1d5c7e2 +dacbe0dcccd9decbe0dec8dedcc5dadac1ccd8bdb8d4b99cd1b579cab04cccb52fd3bb27 +dbc124e0c523e3c523e3c323e1c024dbba26cfaf2abc9e2eae9138b49867c0aba0cdbecd +d5cae3d3cfe6d0cde5cecbe5cfc9e4d0c9e3d1c8e2d3c7e2d4c6e1d4c6e1d5c8e2d8c7e1 +e0cbe3dab7d6ca8dbcb45792ad2f75b9266dcb2b74d42c74cd2869c82a6eb82466a52161 +9c2869a24580b46ea1cc98c4e0bbd8ebcee2e2c4deddc1dcdcc2dddbc3dedac4dfd8c5e0 +d6c5e0d4c5e1d4c6e1d2c6e1d3c8e2d4c9e3d3c8e2d1c6e1d3c6e1d7cae4d7cae4d5cae3 +cfc6e1d0cde6d0d2eac8cde7c7c7e2d6c6e1dbc6e0d5c0dcd6c7e1d0c9e3cbcbe5cbcee8 +c7c8e4d4cbe4ceaed2a75c98a92a76bc2571cd2b74d72b75e2317dea3284eb3382ea2e7e +ea2f7bea2f7be8307be23078db2f77d62d7ace2e7bbc2771af286cab2f71b54584c06197 +cd87ace0b8cce4cbd6efd9e6e9d4e4dccbdcd6c8d9cac0d0b0aab99c98a7aeabb7bbb8c4 +ded8e7d0c8ddd2c6e0d8c7e1d7c5e0d4bfdcdac9e3d5c7e2d4c7e2d4c7e2d5c7e2d5c7e2 +d5c7e2d5c7e2d4c6e1d3c8e2d1c8e3d0cae4cfcae4d0cae4d0c9e4d3cae3d4c9e2d6c7e1 +d6c7e1d4c7e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d4c9e2d5cae2d5c9e2d4c6e1d3c5e1d3c5e0d2c6e1d3c8e2 +d3cae4d3cbe3d3cce4cbc1dfd2c6e1d7cbe4d5c7e2cfc1dfd4c6e0dbd1e1ded3cfcdc0aa +b2a37a9e894ca28b38b59c37c9ab2fd3b22ad8b427dfb825e4bc26e3bb28e0b82adbb630 +d5b338d0b148cdb358cfb767cdbc81d2c5a9d1c9c1d2cbccd5ccd6d6cdddd7cce4d7cce5 +d6c9e3d5c7e2d4c6e1d3c5e0d3c5e1d3c5e1d3c5e1d4c6e1d4c7e2d4c9e2d6c8e1d8c6e1 +d6c4dfd6c6e1d5cae4cac7e3cbd0e6d3d9eaa0a6b2abadb2ccc8c4ded2c5e1cdb3e7cca2 +d3b475c6a649bb9b2fc8a92cd1b229d7b527ddb725e0bc24dec124d8bf26d6be3ed9c16f +ddc5a9ddc7d5d9c6e0d4c4e0d3c5e0d2c9e3d2cce0d1cdddd1cbe2d1c8e3d2c6e1d5c7e2 +dbc8dcdcc8ccdcc6c2d8c3b1d4be9bd0b982ccb467cab34acbb333d5ba30d9be29e1c026 +e4c126e6c026e6bd24e4b824e1b424d9ae26bd992db6953abb9d6cc9aea4d3c0d3d5c8e2 +d0c9e3c9c6e3c4c6e2cacce4cccce4d0cbe3d1cae3d3c7e2d4c6e1d4c5e1d4c6e1dac5e0 +e3c2dcc487b8ae508cb03479bd2b74ca2a72d12a6fd12b6dc22764b023629e23619b3972 +a96394c292bcd3b3d5dac0dcdac3dedbc5dfd7c6e0d4c6e1d4c5e1d3c4e0d3c4e0d3c4e0 +d6c5e0d7c7e1d8c8e2d5c4e0d5c5e0d6c7e1d4c6e1d2c5e1d1c4e0d4c9e3d3c9e3d3c7e2 +d2c3dfd3c4e0d3cae4cacae5cac5e1dbc8e2dbc4ded7c0ddd3c4e0cdc6e2cbcbe6cdcfe8 +cdcae5d6cae4dcc1dcc17fb4b13681be2673d12b76de2e79e4317ae62f7be62f78ea2f7a +eb2f7deb2f7eea2f7ae62e77e22e77e03079da2e7ad22d77ca2b74c42c72c12b73bb2e73 +b74278bd6589c4829ce0acc5e9c1d7d7bbd3c3b1c9b5acc1acaabeaeb2c1c8cedecacede +d1d2e2d1cee1d1cbe3d4cbe5d4c9e3d1c3e0d5cae3d1c9e3d0cbe4d1c9e3d3c9e3d4c7e2 +d4c7e2d3c8e2d1c7e2d0c9e3cec9e4cdcae5cecbe5cfcae4d1c9e4d4c9e2d6c7e1dac7e0 +d9c7e0d5c7e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d4c7e2d4c9e2d5c9e2d5c9e2d4c6e1d4c5e1d3c5e0d3c5e1d4c7e2 +d3cae4d3cae3d4cbe4d0c7e2d1c5e1d1c6e1d1c5e1d1c4e0d3c6e1d5cce4d8cfded7cdcf +c9bdb5b9aa93ab966ea98e4db19239c09d2fd1ab29dcb427e4b925e4bb24e4bd24e3bd25 +debb29d9b929d4b72ccfb530ccb44cc7b578c7b796c9bba8cec0b3d3c4bfd6c7ced7c9db +d8c9e2d7c9e3d4c6e1d3c5e0d1c5e1d2c6e1d2c7e2d3c6e1d4c9e2d5cae3d6c8e1d9c6e0 +d9c4dfd9c6e0d6cae3cdc7decfd0e1d7d9e1a6a8a6b1aea1cabfa7d2bf9bcfb47ed6b46d +cda642d4a92ed4a928deb425e1b826e2ba24e4bd23e5c124e4c523e0c424ddc139dec465 +e2c59ce3c6c6dcc5ded8c4dfd6c5e0d5cae0d5ced6d6cecfd5ced3d5cbded6c9e2d9c6da +d9bfc0d8bcabd2b88fceb571cbb454ccb73bcfba2dd4be27d9c026e0c526e1c326e3bf28 +e5be2be6ba2de3b429dcac26d2a028c6982bb99232c6a772d4b8a8d8c1cfd3c4e0d0c7e3 +cdc9e4cbcae5c8c9e5cccce4d0cbe1d1cbe1d1cae3d2c7e2d4c6e1d4c5e0d9c4dfe0c1dc +d89ec7b55994a92d72b62770c72b73ce296fcc276bc6296caf22629b2663a55086b883ad +c9aacdd3c0dbd6c7e2d7cae4d7c6e1d2c2dfd2c9e3d0cae4d0c9e4d1c7e2d3c7e2d4c6e1 +d4c5e0d5c4dfd7c4dfd5c2ded7c4dfd7c6e0d5c6e1d4c5e1d3c5e1d3cae4d0c9e4d2c6e1 +d9c6e1d8c3ded1c1decfc9e4d1c9e4dfcae2d9bfdcd7c5e0d2c4e0cac5e2cacae5cdcce6 +d1cae4d5c6e1e7cfe4d29ac5b3448bb82773ca2a73d92c74e22f76e22e78e32e76e8307a +ec2f7eed307feb2f7de92d79e92f7ae52e79e13079dd2e78da2e7ad72d76d32a73cb296d +be2864af2f61a54065c17899dbaac7ceb1ccb3a5bda8a5bcb5b8cdc6cce0cbd0e3d3d7e9 +cacbded1cee3cfcbe3d2cde5d3cde6cec7e2cec8e3cfcce4cfcce4d0cbe4d0cae4d2c9e3 +d2c9e3d2c9e3d0c9e3d0c9e4cdc8e4cdcbe5cecbe5d0cae4d2c9e3d5c7e1d8c7e1dac6e0 +dac6e0d5c7e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d5c9e2d5c9e2d5c7e2d4c6e1d3c5e1d3c5e1d4c6e1 +d4c9e2d4c9e2d4c9e3d4cae4d1c6e1cfc4e0d0c4e0d3c6e1d3c7e2d1c6e1d0c7e1d0c7e2 +d7cce2d5c7d2c4b3aeb19b81a68a57ac8d3cbc9933c9a52bd6b028dab626dfba25e2be25 +e3bf24e2c026dfbd26dcbb26dab92ed1b344ccb15dcdb16ad0b575d2b883d2b994d0b9a4 +d6c0c0dac8dad7c9e3d4c7e2d0c6e2cfc6e1d0c6e2d0c6e2d3cae4d5ccdfd5cbded7cae3 +d6c7e1d4c7e1d4cbe3d1cbdfd7d3dbd8d4ceb3ab96b4a67fbfac74c6ab5fc8a643d2a935 +d5a828e4b427e8b925ecbc25e9bc24e8bc23e9c022e9c422e9c724e9c923e7c630e7c652 +e7c684e9c5aae6c6c6e4c9d7e1c9d6ddcac7d8cab6d3c6a7d3c49fd2c2a2d5c1a3d8bd9a +dab584d9b171d6b157d6b43dd8b92fdabf27dec424e1c923e3ca24e3c825dec126ddbd2a +ddba31d9b335d1a932c79c2ebe9330bb9343caa97cdabfb2e3cad3dbc8e1d0c5e1cac6e2 +cbcae5cfcfe8cfcce6d5cae3d3c6dfd3c9e2d2cae3d1cae4d3c8e2d7c6e1e4c7dfdaa4cb +c0629eb5367ab5266ac0286cc92b72c82a6fbb2567ac24679a2769a75a90c091bcd6bcda +ddcce4d6cae4d0c5e1d4c9e3d8cce4d6cbe4d1c9e4d0cae4d0cae4d0c9e3d3c9e3d5c7e2 +d4c5e1d3c4e0d3c2dfd4c3dfd5c4e0d6c6e1d6c6e1d4c6e1d4c6e1d4c9e3d1c9e4d3c7e2 +dac9e2d8c4dfd1c1ded0c9e4d3cbe5d9cae3d5c1ddd6c9e3d1c6e2cbc6e2cac7e3d0cae4 +d6cbe4d2c0dde7cee3dfb3d3b6619faa2c76b8246ace296ede2f76dd2f76e13079e6347d +e9317cec2f7eed2e7dec2f7bea2f7ae32e75e4327dde307ada2c75dd2e75df2d75dc2e73 +ce2b6cb52960a63964ba7395cca3bfbcacc3a9a9bfacb4c9c0cae0d0d6ebc7c7dfd7d3ea +cec8e1d0cae3cfc8e2d2cbe4d3cde6d0c9e3cec7e2d0cae4d0cbe4d0cae4d1c9e4d2c9e3 +d2c9e3d2c9e3d1c8e3d0c9e3d0c9e4cfcae4d0c9e4d1c8e3d3c9e3d5c7e2d6c7e1d7c6e1 +d7c6e0d5c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c7e2d4c7e2d4c7e2d4c7e2d4c6e1d3c6e1d3c6e1d3c6e1d4c6e1d4c7e2d3c8e2ccc1df +d4c9e3d9cde5d9cadfcdbcc0bda99ab0966fa88c48a98b2fc3a430caab2cd0af29d9b626 +e0bb25e4c025e6c225e9c424eac126ecc22ee6bc31e2b830e0b835dbb63fceac46bf9f53 +c5ab84d5bfb6d9cadbd6cae4cfc6e2ccc5e1ccc5e1cec7e2d2cbe4d4cbdad3cbd8d1cee2 +cdcde5cccce4d0cfe3d7d4deded3cfd3c7afc2af82b69c52bea13cccaa2fd3ad28dcb326 +e3b724eabb23f0bf21f0c023f1c124efc422eec61feac521ecc721efcc20efca27ecc53a +e9c05eeac181ebc39be8c5abe5c5abddc19ad4bd81ceb768cab354cab349cfb342d8b43f +e4b63ee7b537e9ba33ecbf2cecc528ebc723e8c723e3c523dfc525dec424d5bd27ceb62e +cab035bfa33db0943faf914abd9f6accb297e2c9c9ddc8dcdac7dfd6c7e1cfcae4c8cae6 +c7cbe6cbcae5d1c7e2dec9e1d5bddbd5c6e1d4cde6d0cde6d2cae4dcc7e0e9bed8c46ca7 +ac2a6ebb266ac22868c8286dc82b72bd266fa321639127689c568ec6a3cbd1bcdbd7c7e1 +d8cae3d6c9e3d5c6e1d5c7e2d4cae4d4cae4d2c9e3d3c9e3d3c9e3d3c8e2d4c7e2d4c6e1 +d5c7e2d5c7e2d5c7e2d4c6e1d4c6e1d5c7e2d5c7e2d5c7e2d4c6e1d3c8e2d3c8e2d4c6e1 +d4c6e1d4c6e1d3c6e1d0c9e3d0c9e4d2c7e2d2c9e3d0c9e4d0cae4cfc9e4d0c9e4d4cae4 +d9cbe4d0bcdbe1c8e1e6c9e0bf8cbc9c4683a22466c5276cdb2f77d32a6fda2d77e2327f +e12e78ea2e7cee2f7eec2f7cea2f7adf2f75df317be13582d82d76df2d79e52e79e33076 +d32c72be3571c3668fcb98b3bba4baa8aabba8b8c6b7c9dbc6d2e8cdd1e9d1c9e4d5c7e2 +d5c7e2d5c7e2d4c9e3d2c9e3d2c7e2d3c8e2d3c8e2d3c9e3d3c9e3d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c9e3d3c9e3d3c9e3d3c8e2d4c7e2d4c7e2d5c7e2d5c7e2 +d5c6e1d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d3c7e2d2c9e3 +cdc4e0cdc3e0d3c8e2dacde1dbccd2d2beb6b9a48aa38856ac8e41b49537bf9e2fcba92b +d6b329deba26e3bd24e5bf24e6bf23eec221efc022f0c122efc528e9c12ed4ae28b8952e +b39850bfac8bd3c3c4d4c9e2cfc6e2cdc6e2cec7e3d1c9e4d4c9e3d3c8ddd0c8d9cbc8df +cbcce4d1d1e6d9d5dedbd3cbd5c6accbb782c5ac5bc3a535ceac2ad8b628dfb824e4bc23 +eac022f0c221f0c224f1c224f2c425f0c625efc821edc720edc720f2ca20f1ca22ecc32c +e8bc3ee4b955dfb564d5af6ad2b16cd1b45ed0b649d1b736d3b92ad7bb28dcbd26e5be27 +f0c226f2c226f2c424f0c522ecc422e6c324e2c124dfc126dbc027cfb629c5ae2ebba536 +b19a41a8904ea89166b8a289d4beb3e9d5dbdac7ded7c6e0d7c6e0d4c6e1cdcae5c7cde7 +c6cce7cbcae5d3c7e2dfc6dfd8bddad7c6e0d6cde5d0cde6d4cae4ddc0dccf8cbcb34584 +b62467c22764cd2b71d22e7ac12970a5215f942565aa5c96cca5ccd0bcdbd3c7e2d7cce5 +d7cbe4d5c6e1d3c3dfd3c4e0d2c9e3d0c9e3d2c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c6e1d3c6e1d3c8e2d2c9e3d0c9e4d0c9e4cfcae4cfcae4cfcae5cec9e4d0c9e3d5cae4 +d7c9e3d3c0ddddc6dfe4cbe2c2a1c99c5f939a2a6bb82566d12b72cf296fd72e76e0317c +e12e77ea2e7eee3181ec2f7eeb3380ea3c8bce2762e83c88df317de2327fe73482e23582 +d74084cf6596d993b5c59cb9ac9bb2b5b9cabdcddfc0d1e3c3cde5cdcde6d3c8e2d6c6e1 +d7c6e0d6c6e1d4c6e1d4c7e2d2c9e3d2c9e3d3c8e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d3c9e3d5d0e5 +d1cde0cecbded1cbdfd9cfe4ded0e4ddcadcd4becacab0b1a88b7aa88861af8f4fb6953e +bf9e2fc8a92cd1b329dabd25e1c124e6c224e7c123ecc521efcb27e7c52cd0b229b2962f +b69e44c8b988d6c8bdd4c9ddd0c7e2cdc6e2cfc5e1d3c6e1d5c7e2d6c5e0d5c4e0d9cae3 +d9cce4dbccdad8c7bfcebd9cc7b26fc7b14acfb636dabe2ee0c027e2c125e8c424edc521 +eec71fefc81eefc821efc81feec820efcb25f1cc27efca22efca21f3cd1ef4cc20efc629 +ebbf31e4bb3be0b840dbb741dbbb41dcc23be2c734e5cb2bebcf27f1d22af4d52af1d125 +eac621ebc720ecca22eaca24e7c926e1c326d9bc27ceb529c7af30c0a93ea68e38967c3d +a7906cc6b0a4e1cccfe8d4e5dcc8e0cebcd9d6c6e1d5c7e2d7c6e0d5c7e2cfcae4cacce6 +cacce6cccae4d3c7e2ddc7e0d9c1ddd6c7e1d6cbe4d2c7e2d5c4e0d4abcfaa528ea2256a +be286ebf2562c5296bc32a71b124699f2567b04f8ed79cc6e7c9e0dbc9e2d8cce4d8cce5 +d6c9e3d4c6e1d3c4e0d4c6e1d4c9e3d2c9e3d3c8e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c6e1d4c6e1d3c6e1d3c8e2d2c9e3d0c9e4cfcae4cfcae4cfcae4cdc8e4d0c9e4d5cbe4 +d4c6e1d4c3dfd8c3dee3cae1d2b6d7ae79aa9b3875a82261c5296fd02a70db2c75e12f76 +e32e76ea2e7eeb3480e8307be72f79ee3384ea2e7aee3585e22e79df327ecc2b71c12e73 +cd5f97e19cc1c492b1be9bb9ccb8d2d2c8dfcfcde4cccee5cdcde5d0cbe5d3c8e2d5c6e1 +d6c5e0d6c5e0d5c5e0d4c7e2d0c9e4cfcae4d0cae4d2c9e3d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d3cae3d0d0e0 +d3d3ddd2d2e0d2cce0cfc6decec0ddd2c2dfdccce4ead7e9efd9e6e2c7c8c9ae9db0946b +9f8237997f2ea58c2fb9a22fc9b02cd3b728d7b727dcbd25dfc128d8bd28c0a82ea28a2f +ab973bc4b682d8cabdd8ceddd2c7e2cec3dfcec1dfd2c3dfd6c5e0dcc7e0e3c9e1e4cadb +dec4c2d3b8a3c9af7fc5aa5dcab13dd8bb32e1c32ce7c726e9c924edca21efca1fefca20 +efcb22efcb21efcc20eecc1feccb21edcb24efcc27efca28f2cd20f4cf20f5ce1ff3cb24 +f0c92eeec734eec93aeece3deacf36e8d029e8d024e9cd22e8c924e9c522e9c423ebc823 +edd227e1c924d6bd25d0b728ccb52ac6af2dbca430ac92319d85319a8143bda786ddc7be +e4d0d6decbddd6c4dfd3c2dfd5c6e1d6c9e3d4c7e2d4c7e2d6c6e1d5c7e2d1c8e3cecae5 +cccbe5cdc8e4d1c7e2d7c3dfdbc6e0d5c6e1d4c6e1d4c5e0d1b3d5bd81b19c2f71ab2468 +c52c72c5296dba2567aa2262a72a6eb95795df9dc6edc7dddabcdadac7e1d7c8e2d5c8e2 +d3c5e1d4c6e1d5c7e2d7cae4d6cbe4d5cae4d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d5c7e2d5c7e2d5c7e2d4c7e2d3c8e2d0c9e4d0c9e4d0c9e4d0c9e4cec7e3d0c9e3d5cae4 +d3c5e1d7c6e1d4bfdcdec8e1e2c9e1c598c4a24b879b2161b82568cd2a6fdc2e75e22e72 +e43074e62f7ae5307ae62f7bea2e7ce62f74ed388ce93173e62f7be33985dc5094df79b0 +e4a0c7c8a0c1a992adc7aecbe8d2e5e2cce3d3c2dfd0c4dfd4cae4d4cbe4d3c8e2d5c7e2 +d8c5e0d8c5e0d6c5e0d4c6e1cfcae4cacde7cacbe6d0c9e4d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d3c9e3d0cbe1 +cecde0cecde1cfcbe3d1cae3d4cae4d6cbe4d6cae3d6c7e2d8c7e0dcc8d9dfcaceddc7be +d5c0a8c8b38ab7a26aa38c4199832fb19930bda32fc5ac2dcdb629ccb62fbea92ead9731 +baaa5fd4c69ddbcfc4d9cedcd4c9e3d2c6e1d2c4e0d5c4dfd9c4dfdcc2dbe1c1cadbbaa3 +d5b37bd1b05ed0af48d7b639e2c135e7c72be8c524e6c124ecc520f0ca21f0ca21f0cc21 +f0cd20efcd20edcf1febd021ebcf21eacb24e9c826eec929f0cc22f1cb20f1c91ff0c822 +f1cb25f0cc2defcc2dedce2beacf26e8cf23e8ce22eaca22eac721ebc223eabf27dfb926 +c6af2dc5b32dc5b22ebaa830ae9a31ab9539b19c57bfaa7acbb699d4c1b5dbc9cadbc9db +d5c6ded3c4e0d5c7e2d6c9e3d2c6e1ccc3e0d1c9e4d2c9e4d5c6e1d5c6e1d4c7e2d0c9e4 +cfc9e4d0c9e4d2c7e2d0c0dddac9e3d6c7e2d7c8e2dbc3deca9cc6a8528ca5286eba2670 +c2276bc72b72b6276ba5276aad4986cf88baeabdd8ebcce1d8c0dcd8c5e0d4c5e0d2c4e0 +d2c5e1d4c7e2d5cae4d5cbe4d6cae4d5c9e3d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d5c7e2 +d4c6e1d5c6e1d4c6e1d5c7e2d4c7e2d2c9e3d0c9e4d0c9e4d0c9e4cfc7e2d0c9e3d4c9e3 +d2c4e0d7c8e2d2bfdcdbc7e1e5d1e6d2acd1ab6299942565aa2262c5276cda2c74e02d71 +e52f75e42f77e02f76e32e77ea2e7cea2c77ee2f7cee307ce83480d23079d9609cde90bd +c79abfa99bb6c3bfd7d9c8e1dbc0dbe1c6dfe0c5dfd8c1ddd2c2dfd4c7e2d3c8e2d4c6e1 +d8c4dfd7c3dfd8c4dfd5c7e2cecbe5c7cee8c8cde7d0c9e4d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d3c8e2d0cbe5 +cecae4cdc8e3cec8e3d2cbe5d4cce5d5cbe4d2c7e2cec3dfd0c4ded5c7dedbcbdddfcfda +ddccd0d7c7c3cfbdb3c3b1a2beab86a99346a68e30ab9430ae9831ae9838a9923aa79249 +c0ae83d9cbb5dccfcdd8ccdbd5cae2d6cbe3d9cae1dac8d6dcc3c4d9bdb2d8b993d7b56a +dbb744dfbb37e4be32e8c42eeec82aefca24efc81fefc61ef0c721f3ca21f2ca21f0cc21 +efcc20eecf1eeccf20ecd122ebd123eacc23eac827eecb28f1cc21f0ca1feec71feec81e +eec823eec929eac92ae7c92ae2c625ddc523dbc024dbbb24dbb626dbad27d7a829cca52f +b7a131a79834a29236ae9c51bead75cdbd96d7c6afd7c4bdd7c4c9e1d0e1decfe5d6c9e2 +cec1dfccc1dfd0c6e2d3cae4d2cbe5cfc8e3cecae5d0cae4d4c6e1d6c6e1d5c7e2d3c8e2 +d1c8e3d0c9e3d0c7e3ccbeddd7cae3d9cce4ddc9e2dab6d6bd7dae9c3071b2266ec32970 +c4286bbd276ba82465a33476bb70a4dbaacee5c7dfdac3ded9c6e1d8c5e0d4c4e0d2c4e0 +d3c7e2d4cae4d4cbe4d3c9e3d3c6e1d4c5e1d4c6e1d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d5c7e2 +d5c6e1d6c6e1d6c6e1d5c7e2d4c7e2d3c8e2d1c8e3d0c9e3d0c9e4d0c9e3d0c7e3d2c7e2 +d3c6e1d6c9e3d0c0ddd8c7e1e3d0e5dabbd9b97daf9a36749c205eba2565d32972dd2d70 +e43076e22e77df2d77e12f76e62d78eb307aee2f7cee3180d22967b9245db7437bbc729f +b694b6b5b2cccacee5ddcee5dbbfdbdfc0dbe1c2dddbc3ded3c2dfd0c2dfd3c7e2d4c6e1 +d8c4dfd9c3ded8c4dfd5c6e1cecae5c7cee8c7cde8d0c9e4d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d3c7e2d1c8e3 +d0c9e3d0c8e3d0c9e3d0c7e3d0c7e1d0c8e2d1cae3d3cbe3d3cbe2d5cce1d8cce2dacee4 +dacce3d9cbe3d6c8e1d3c5ded3c3d1cbb8adc8b197c1ab89bba380b49b7db29980b8a191 +cdbab7dcccd2d9cbdbd6cadcd6cadad7cbcfdaccc0dacaa9d8c58cd7c071d6bc4fe0c138 +e7c52bedca26efca24efc924efc723f0c621f3c923f4cc22f3ca21f3c721f1c820eeca1f +efca1feccc21ebcc22eacd21eace21eacb23ecc925eecb27efcb22eec820eec820eec81e +ebc524e3bf29debb2bd8b92bd0b429c9b02cc4a82dc1a12dc0982dbe8f30b98939b68f4f +baa370b8aa80c1b292cbbba8d3c3bad8c8c9dacbd6dacbdfd7c9e2d4c5e0d4c6e1d3c8e2 +d0c7e2d0c9e3d2cbe5d3cee6d0cee5cccce4cbcde5cecbe5d4c7e2d6c6e1d5c5e0d4c6e1 +d3c6e1d1c8e3d0c9e3cdc2dfd4c6e1ddcde5dcc2ddcc9ac5ae5a92a02468bf2770ca296f +c6286fb122639e2567ac548dca96c2dec4ded9c9e3cfbfddd6c7e2d7c5e0d5c4dfd3c4e0 +d3c8e2d2cbe5d1cae4cfc6e2d0c3e0d4c5e1d4c6e1d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d5c7e2 +d5c6e1d6c6e1d6c6e1d5c6e1d4c6e1d4c7e2d2c9e3d0c9e3d0c9e3d0c9e4cfc7e2d0c6e2 +d3c8e3d4c9e3d2c4e0d6c7e1dac9e2dbc2ddca99c4a7538a94205eae2261c9296fd62a6f +df2d75df2d75de2d76e23079e6307be52e78eb2f7cdc2c6bc3245ab7245eab326eb46192 +cba0c5d0c6e1c6c6e1d9cae3e2cae1ddc0dcdabfdbdac5e0d6c6e1cfc3e0d2c7e2d4c6e1 +d8c4dfd8c3dfd8c4dfd6c6e1d0cae4c8cde7c9cde7d0c9e4d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d2c7e2d1c5e1 +d1c6e2d1c7e2d1c7e2d0c6e2cfc6e1d0c7e2d2cbe3d5cee3d5cee3d5cee4d5cce4d5cae4 +d5cae3d4c9e3d4c7e2d3c7e2d4c6e1ddcce4dfcce3dbc6d9d2bcd0cbb4c9c9b2ccd0b9d5 +d7c5e0d9cae3d7cae3d5cadfd4c9d2d2c9bcd4c8a2d6c983d8ca63dbc946dec92fe5cb25 +eccd22efcd20f0cd1eefca20efc720efc523f2c524f1c725f0c623f0c520efc61eedc620 +ebc620e9c622e9c722e8c723e8c624e8c524eac626eac623eac521eac521eec821edc820 +e4bf25d7b328c9a82cbea02fba9d37b79c3cb99d46bd9d57c59f6aca9e78c99e86c9a69b +cfbbb8d2c5c8dbccd7dbceded8cae1d5c7e1d4c6e0d4c6e1d3c6e1cfc3e0d0c5e1d3c9e3 +d3cbe5d2cbe4d1cce3d1cde2cecce0cccce0cacde5cccbe5d3c9e3d5c6e1d6c5e0d6c5e0 +d4c6e1d3c8e2d1c8e3d2cae4cfc4e0ddcae2d7b2d4b874a6a33677b1266dc92a72cf296f +c42970aa2364a73b7bbf7daed8b6d6d9cee6cfcae5ccc5e1d5cae3d6c5e0d5c3dfd3c4e0 +d3c8e2d1cae4cfc9e4cdc6e1d1c3e0d6c9e3d5c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d5c7e2 +d6c6e1d6c6e1d6c6e1d5c6e1d5c7e2d4c7e2d3c8e2d0c7e2d0c9e3d0c9e3cfc6e2ccc4e1 +d4cbe4d2c7e2d2c7e2d5c8e2d1c2dfdcc6e0d7b1d3b672a1922965a2215ec1296dcf2a6c +d92c71d92c71d92c74db2e78dd307add3079d82a6fc6255bd24283cc3d80b93476b44f87 +c98ab9dbbfdbd1c1dedac5e0ddc7e0d8c1ddd6c2ded6c7e1d6c9e3d1c6e2d2c7e2d4c6e1 +d8c4dfd8c4dfd8c5e0d6c6e1d1c9e4cbcbe6cbcbe6d1c9e4d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d3c6e1d1c3df +d1c3e0d1c4e0d2c6e1d4c7e2d4c9e3d4c9e3d4cae3d4cae3d4cae3d2c9e3d1c7e2d1c6e2 +d0c5e1d0c5e1d0c6e2d1c6e1d3c8e2d3c7e2d6c9e3d8c9e2d6c5e0d4c3dfd7c4dfdac8e2 +d8c8e2d4c3dfd5c8e2d5c9e2cfc4cfcbc0b2c7bd91cbbd6dd3c34fd9c83be0cc2ce2ca25 +e4c724e5c523e8c524eac624ebc428ebc026eabf26e9be23ebc023ecc221e9c223e9c423 +e8c324e6c023e6c123e5bf25e7bf26e7bf26e7c026e7c025e6c023e7c124ebc720e8c524 +e0bb29d1ae2fc5a546bea15cbea373bea682c9ae96d4baa9e1c3bceac7c8efccd7ebd0e1 +e1d1e6d7cbe4d2c6e1d3c5e0d6c9e3d7cbe4d6cae4d2c5e1cfc4e0d5cae4d3cae4d3c9e3 +d2c9e4d0c7e2cec7e2cec7dfcfcae1cfcce4cbcde5cccce6d2c9e3d5c7e2d6c5e0d7c4df +d6c5e0d4c6e1d2c9e3d2cce6d0c3e0dbc4dfcc9cc6a8528ba02467be2972ce2970d22971 +bc266ca7266bbc669ed5a5ccdbc7e1d0cfe8c8cee7cccce6d4cbe4d6c6e1d6c4dfd3c4e0 +d3c8e2d1c9e4cfc9e4cdc6e2d4c6e1d8cae3d5c8e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d5c7e2 +d6c6e1d6c6e1d6c6e1d5c6e1d5c7e2d4c6e1d2c7e2d1c7e2d0c7e2d0c7e3cec5e1cec5e1 +d5cce5d0c6e2d1c5e1d3c7e2cdbfded8c7e1dec2ddc590ba983d73961f58b52464c8286a +d22a6fd12b6ecf2b71cf2f77cb2e75c62d70bc235dc02561de5da1e15da0cb3f84b63377 +b5518fcf91c0e2c0dbdfc3ddd9c2ded2c1ded3c8e2d2cbe5d0c9e4d1cae4d2c7e2d5c6e1 +d7c4dfd8c4dfd7c4dfd6c6e1d4c7e2d0cae4d0cae4d3c9e3d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d5c7e2d4c5e1 +d4c5e1d4c5e1d4c6e1d4c6e1d5c7e2d5c7e2d4c6e1d3c6e1d3c6e1d2c7e2d2c7e2d1c6e2 +d0c6e2d0c7e3d0c7e2d0c7e2d0c7e2d0c7e2d0c6e2d2c6e1d3c5e0d3c3dfd3c3dfd3c3df +d2c2dfd2c3dfd5c8e2d4c6e1ccc2d7c6bab8bfb295bdad6fbfad4dc5b134c9b22cd2b92a +d0b629d0b229d9ba2adebb2ddeb92adcb627deb826e0b926e3be24e3be24e1bc24e6c123 +e5bf24e1ba24e4bb24e4b926e3b828e4b928e5bb28e8c126e7c122e5c124e8c523e2c024 +ddbb32d9bc59e1c58cecd3bce8d1d1e3d1dddecde2decce2dccae2ddc8e0dcc7e0d8c6e1 +d5c7e2d4c7e2d4c6e1d4c6e1d4c6e1d3c6e1d3c7e2d3c7e2d3c7e2d3c7e2d3c8e2d3c8e2 +d3c8e2d2c9e3d2c9e3d2c9e3d2c9e3d0cae4cccce6cccce6d1c9e4d4c7e2d6c5e0d8c5e0 +d6c5e0d4c6e1d2c9e3cdc6e2d5c7e2dcbcd9bb7baca23a79ac2569c52a70cd2868d22a6f +b12267a83277d592c0e0bfdbd2c6e1c6cce7c7d3ebc5c9e5d0c9e4d4c6e1d5c4e0d5c6e1 +d4c7e2d1c8e3d0c9e4d0c9e4d4c7e2d5c6e1d5c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d5c7e2 +d5c7e2d6c7e1d6c6e1d5c6e1d5c7e2d4c6e1d2c7e2d1c7e2d1c7e2cec5e1cec5e1d2cbe5 +d3cbe5d0c6e2ccc3e0d0c5e1d3c8e2d5c7e2dbc8e1d0accca05b87881a4ea31e53c6296a +ca276ac52769c12b6fc4377bc0417da6295fa5205bb62568cb2f77e35ca2d9458ec93078 +c13681b64a90dd9fc7e3bad7e7d0e5c9bfdec4c4e2cacce7cccce6ccc8e4d2c7e2d5c6e1 +d6c3dfd8c5e0d7c6e0d6c6e1d5c7e2d5c7e2d5c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d5c7e2d6c7e1 +d7c6e1d7c6e1d6c6e1d6c5e0d5c6e1d4c5e1d3c4e0d3c4e0d3c5e0d3c5e0d2c5e1d2c6e1 +d1c6e2d1c7e2d2c9e3d2c9e3d0c9e4cfc9e4cec9e4cfc8e3d0c6e2d2c6e1d4c5e1d3c4e0 +d3c5e0d2c5e1d0c3e0d3c6e1d9cde5e1d4e3e4d5d2deccb3cfba8ac4a763bb9d45ae9131 +a78c2faf922fc0a432cbad39ceaf34d1b02ed0af2ad4b328d3b229d3b029d5b328dab626 +dbb426dcb326deb425dfb424e3b829e4b92de4b829e3ba27deb725dab626dbba25d8b926 +d5b735d7bb6bdec4a3e4cdd1ddcbe2d6c9e3d2c7e2d1c6e2d1c6e1d2c6e1d3c6e1d3c6e1 +d3c5e1d2c6e1d2c7e2d2c7e2d3c8e2d3c8e2d3c8e2d3c9e3d3c9e3d4c9e2d4c7e2d4c7e2 +d4c6e1d3c6e1d3c5e1d3c5e1d2c6e1d0c7e2cdcbe5cdcbe5d0c9e4d3c9e3d5c6e1d6c5e0 +d6c5e0d4c6e1d2c9e3d1cae4dbc9e2dcb4d4b66b9faa3375b8276cc72769d3286bc8286a +ab266bb35592d9a2c9ddc4ded0c9e4c6cfe8c6d3ecc2c8e5d0cbe5d4c6e1d4c5e0d4c6e1 +d4c6e1d2c9e3d0c9e4d0c9e4d4c7e2d5c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d5c7e2 +d5c7e2d5c7e2d5c7e2d5c6e1d5c7e2d4c6e1d2c7e2d2c7e2d1c7e2d6cce5d4cbe5c9c2e0 +c8c0ded0c7e3d7cee6d4cbe4d3c9e3d4cae3d7cee5c7b5cd9c688a861c519f1e50bf2765 +c32769b82767ad2a6ab64b84d47aabda82b38e1c54ae286bd13c84dd3c86e33c87e23986 +d33081c33285bf519ce9b6d3dcbddad4cbe4cacfe9c5cee9c6cce7cbc9e4d2c7e2d5c6e1 +d5c4e0d6c5e0d6c6e1d5c7e2d6c6e1d7c6e0d6c5e0d5c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d5c7e2d8c7e1 +d8c7e0d8c7e0d7c6e0d7c6e0d5c4e0d4c5e0d4c4e0d3c3dfd3c3dfd3c5e0d4c5e1d4c6e1 +d4c7e2d4c9e2d3cae4d3cbe1d3cbe0cfcee2cecee2d0cde3d1cce3d3cbe3d5cae3d5c9e2 +d5c7e1d4c7e2d3c8e2d1c6e2d0c5e1cfc4e1d3c4dfd8c5dce1c8d9eac9d5eecdced8bcaf +bfa58ab0956ca68d559e853b9d842eae9535ad922fb79a2fbe9f2ec5a42dceab2bcfac2a +cea92ad0ac29ceaa2aceaa2ad4ae28d6ad27d7ac27dab027d7b227d8b727dabc24d5b927 +d2b640d5bc7bdbc5b1dac9ddd2c7e2cdc6e2cbc6e2c9c6e3cac8e4cacae4cbcae4cfc8e3 +d1c7e2d3c5e1d3c5e1d4c6e1d4c7e2d4c9e2d5c9e2d5cae3d5cae2d5cae1d5c9e2d5c7e1 +d5c7e2d4c6e1d4c5e1d4c5e1d3c5e0d2c6e1d0c9e3d0c9e4d0c9e4d1c8e3d4c6e1d5c6e1 +d5c6e1d4c6e1d3c8e2d2c7e2e0c9e1d39dc6ac4d89af2a6fc22a6ec82665d32a6fbb2562 +a53276cb88badfb8d6dbc6e0d1cae4cacee7ccd2eac4c6e3d1cce5d3c7e2d4c6e1d4c6e1 +d5c7e2d4c7e2d2c9e3d2c9e3d3c9e3d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d5c7e2d5c7e2d5c7e2d5c7e2d4c7e2d4c6e1d2c7e2d2c7e2d1c7e2d2c9e3d2c9e3d0c6e2 +d1c7e2d4cae4d3cae4d0c7e2d2cbe4d5d0e6bcc0d19191a075526c71133f911943b3225d +b82666a72b66902c6296507cb887acd19ec3b05d91a32a6fb6266bcb2872df3281e93a8b +e53789d22d80b82777d076b0ddb0d1d7c8e2d1d3eac6cfe9c3cae6cdcbe6d2c7e2d4c5e1 +d4c5e1d5c7e2d5c7e2d5c7e2d6c6e1d8c5e0d8c5e0d5c6e1d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d5c7e2d7c7e1 +d8c7e1d7c7e1d6c6e1d6c5e0d5c6e1d4c5e0d3c4e0d3c4e0d3c4e0d4c5e1d4c6e1d5c7e2 +d5c7e1d5c9e2d5cae2d4cbdfd3cbe0cfcee4cdcde4cfcce4d1cce3d3cce1d5cbe0d5cae1 +d5cae3d3cae4d3cbe5d2cbe5d1c9e4d1c8e3d4c6e1d7c6e1dbc6e0e1c6dfe4c9e0dac2da +d8c4d1e1cecde4d2c5d1bea5b1a074a995598d772d957c2d9c812da98b31b59538b59530 +ba9a2ec5a52dc2a42dc4a62dc4a72dc6a32cc8a12ccca52bcca82bccac2accb22bc5ad2d +c3ab3ec6b176d1c0b3d6c9e0d0c7e3ccc7e3cac7e3c9c9e4cacce7cacee6cccee5cfcae5 +d1c7e2d3c5e0d3c5e1d4c6e1d4c7e2d5c9e2d5cae3d5cae1d5cadfd5cae0d5cae1d5c9e2 +d5c7e1d5c7e2d4c6e1d4c5e1d3c4e0d4c5e1d3c7e2d2c9e3d0cae4d0c9e4d3c8e2d5c7e2 +d5c7e2d4c7e2d4c7e2d0c2dfe2c5dec17db0a63576b4266ac82b6ecb2665cf2a6eb12260 +a24682daaccfe1c4ded9c6e0d2c7e2cfcbe5d0cfe8c8c5e2d2cce6d2c7e2d3c5e1d4c6e1 +d5c7e2d4c6e1d4c7e2d3c8e2d2c9e4d2c9e4d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c9e3d3c9e3d3c9e3d3c8e2d3c8e2d3c8e2d2c7e2d2c7e2d2c7e2cdc2dfd0c6e2d9cfe7 +d8cfe7cfc6e1cdc4e0d4cbe3d0c9e1bebed28a94a14e5d664a364a620d3584163f9f1f52 +a1225a8d255a7228556b4066806b89a288a9e1b1d1bf649ca52563c1276ed92f80e6378a +e8358ae23286d02e80b13381d08cbcdbbcd9d4cae4cdcde6cccce6cdcae5d1c7e2d3c6e1 +d4c6e1d4c7e2d4c7e2d5c7e2d6c5e0d8c5e0d8c5e0d5c6e1d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d5c7e2 +d5c7e2d5c7e2d5c7e2d5c7e2d5c6e1d5c6e1d4c6e1d5c7e2d5c7e2d5c7e2d5c7e2d5c7e1 +d5c7e1d5c7e1d5c7e1d5c9e2d3c9e3cfc9e4cec9e4cfc8e3d0c7e2d3c8e2d4c9e2d5c7e1 +d5c9e2d3cae4d0cbe4d0cbe4d2cde6d5cfe7d8cee6d9cce4d9c7e1d9c3ded6bfdcdccae3 +d9cde5d6c9ded9cbd9ded0d2e2d5caded1bd907f60624c2062491c765d28856a2d876c29 +967c2da79030aa9430b19d30b29c30b79b2fbf9d36c39f32c0a02dbfa42ec1a72ebaa52f +bda645c6b27fd3c3b8d5c9dfd0c9e4cdc8e4cbc8e3cccbe5cdcde6cfcee5d0cee5d2cbe5 +d2c6e1d1c6e1d2c6e1d2c7e2d3c8e2d3c9e3d3cae4d4cae3d5cae2d5cae2d5cae2d5cae3 +d5c9e2d5c7e1d5c7e2d5c7e2d4c6e1d4c6e1d4c6e1d4c7e2d0cae4cecae5d0c9e4d3c8e2 +d4c7e2d4c7e2d5c7e2d4c3dfe6c2dbb56299a72b6eba2669cc2a6dcd2869c6296aa72361 +a56196dec2dddec9e1d7c3dfd3c3dfd4c6e1d3cae4cec5e1d1cae4d0c8e3d2c7e2d4c6e1 +d5c7e2d5c6e1d5c7e2d4c7e2d0c9e4d0c9e4d3c8e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d3c9e3d2c9e4d2c9e3d2c9e3d2c9e3d2c9e3d1c7e2d2c7e2d2c7e2d1c6e1d3c8e3d5cce5 +d4c9e3d0c7e1d7cee6d6cee4bbb3c88f8d9e59666f34484c4136425e1b3d77153f871845 +851949721e4c5d2a505c4a667e7d94afa9c2e7cce2e6aecfc25997b62a74cc307fdc3488 +e23185e9368add3184b82879b75095dfaccfddc0dbd5c6e1d4cce5ccc6e2d0c8e3d0c8e3 +d3c9e3d2c9e3d3c8e2d4c6e1d6c6e1d7c6e1d6c6e1d5c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c6e1d3c7e2 +d3c7e2d3c7e2d3c6e1d4c7e2d4c7e2d4c7e2d4c9e2d4c9e2d4c9e2d5c9e2d5c9e2d5c7e1 +d5c7e1d5c7e1d5c7e1d5c7e2d3c7e2cfc7e2cfc8e3cfc6e2d1c6e1d3c5e1d5c7e2d5c7e2 +d4c9e2d2cae3d0cae4cdcbe4cbcbe3cccbe4cecae4d2c9e3d6cae3dac9e3dacae3d6c9e3 +d1c6e2cec5e1d0c7e2d3cbe1dad0dde0d6db867b7a57473d4a3a275543285f4b265e4a1d +705c247967287f702b96873194843099812ea58730ab8b2fad902fb2992fb6a030b39e30 +b9a44ec6b486d5c5bad6cadcd1c8e3cec9e4cdc9e4cec9e4d0cae4d2cae4d4cae4d4c9e3 +d2c7e2d1c6e2d2c7e2d1c6e2d3c8e2d3c9e3d3c9e3d3c9e3d4c9e2d4cae3d4cae3d4cae3 +d4cae3d4c9e2d4c9e2d4c7e2d4c7e2d5c7e2d7c6e0d5c6e1d0c9e4cdcbe5cfcae4d0c9e3 +d2c9e3d3c8e2d5c6e1dcc8e1e5bad6af508bae296ec2286ccf296ccf286bbd27649f2863 +b485b0dbcbe3d9cae3d5c1ddd5c0dcd7c2ded5c4e0d3c5e1d0c8e3d0c9e3d0c7e2d3c7e2 +d4c6e1d6c5e0d6c6e1d4c7e2d0c9e4d0cae4d2c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d3c8e2 +d1c8e3d1c9e4d1c9e4d1c9e4d1c9e4d2c9e3d1c7e2d2c7e2d2c7e2d3c8e3d4c7e2d2c7e2 +d4c9e3d9d0e7d5cde4bcb3c68f889a5d5d6a3b474c314646413e445a2f44661a3c6a1138 +6b153e672b5166476378748aa0a8bac6cbe1d5c7e1f2d1e3e29bc4bc4a90bb2b7bcc2e7f +db2e82e83586e23183cb3080b22f7dd787b9e3b3d2dfc0dcd5c3dfd1c6e2cfc9e4cec9e4 +d0c9e4d2c9e3d3c8e2d4c7e2d5c7e2d5c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d3c6e1d1c6e2 +d0c9e3d0c7e2d0c7e2d1c8e3d1c8e3d1c9e4d2c9e3d2c9e3d3cae4d4cae3d4c9e2d4c9e2 +d5c7e1d5c7e2d5c7e2d5c7e2d3c7e2d0c9e3cfc8e3d0c7e2d3c7e2d5c7e2d4c6e1d5c7e2 +d4c7e2d2c9e3d0c9e4cccae5cacae4cacae4cccae4d0c9e4d4c9e3d7cbe4d7cbe4d1c7e2 +cec6e2cfc8e3cfc9e4cfc8e3d0cbe4dbd6e77d7683524b5047413949422f4b4124463c19 +564c2150451a6155258c81519384508d773d8f743193792c977f2e9d8830a18e31a28e30 +af994bc1af87d4c4b8d8cad9d4c9e2d1c9e4d0c9e3d1c7e2d3c6e1d3c4e0d4c5e0d4c5e1 +d3c8e2d1c8e3d3c8e2d1c8e3d2c9e3d2c9e3d2c9e3d3c9e3d3c9e3d3c9e3d3c9e3d3c9e3 +d3c9e3d3c9e3d3c9e3d3c9e3d3c9e3d5c7e2d8c5e0d6c5e0d0c9e4cccce6cccbe5cfcae4 +d0c9e4d3c8e2d6c6e1e2cce3daa7ccab4381b4266ec9296fd22a6dcd2869b624619b2e67 +c8abcfd3cde6d6cbe4d7c2ded9bfdcdbc0dcd9c1ddd9c9e3d0c5e1cfc8e3cfc8e3d2c7e2 +d5c6e1d7c6e0d7c6e0d5c7e2d0c9e4d0cae4d2c9e3d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d3c8e2 +d1c8e3d0c9e4d0cae4d0c9e4d0c9e4d1c8e3d1c7e2d2c7e2d2c7e2d3c7e2d2c6e1d2c6e1 +d7cce5dacfe6bdb5c98b83955e576643404a353d413542413e40414d384250273b511937 +5d2a467450698b7a8ea5a2b4bfc8dbcad5e8c1c4dde8d4e7e9bcd7d07cb3b73a87bc2778 +d32e80df317fe43382d52e80c12c7bc8569be19bc4e3b7d5d7bcdad5c7e2cecae5cbcbe5 +cecae5d0c9e4d3c8e2d4c7e2d3c9e3d2c9e4d1c9e4d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d3c8e2d0c7e3 +cec9e4cec9e4cfc9e4d0c9e4d0c9e4d0c9e4d0c9e4d0cae4d2c9e4d2c9e3d3c9e3d4c7e2 +d4c7e2d4c7e2d4c7e2d3c6e1d3c8e2d1c9e3d1cae4d2cae3d4c9e2d5c7e1d5c7e2d5c6e1 +d4c6e1d1c7e2d0c9e4cecae5cdcbe6cdcbe6cfcce6d0cbe5d1c8e3d2c6e1d1c5e1cfc6e1 +d0c9e4d0cae4d0cbe5cfcae4d3cee7e3e0f07c798b4c4c5343463e4447324141263d3b1d +4d4b313c3728605855a69da2b6aaacab9a8d9f89659b84448e792d89752c8a772c8e7a2d +a28e54c0ae91d6c6c0d8cadad5cae3d4c9e3d4c7e2d4c5e1d4c3dfd4c1ded4c1ddd4c3df +d4c7e2d0cbe4d2cae3d0cae4d2c9e4d1c9e4d1c8e3d2c7e2d0c7e2d1c7e2d0c7e2d1c7e2 +d0c7e2d1c7e2d2c9e3d2c9e3d3c8e2d5c6e1d9c4dfd8c5e0d0c9e4cbcbe6cbcbe6cdcbe5 +d0c9e4d2c7e2d6c6e1e2c9e1c98ebda93678b7266bce296fd3296ec82666b2246399376d +dbcae3cacce6d3cae4dac6e0ddc2dddec0dcdabfdbdfcce4cfc3e0cec8e3cfc9e4d2c7e2 +d5c6e1d7c6e0d7c6e0d5c7e2d0cae4cfcae5d2c9e3d4c7e2d4c6e1d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d2c9e3 +d0c9e4d0cae4d0cae4d0cae4d0c9e4d1c8e3d1c7e2d2c7e2d2c7e2d2c6e1d2c6e1d4c9e3 +d4cae3c5bdd4948ea05e5767433b47403a413f3e413a3e3c3b3e3c3f3c3f43353f473344 +614b5f8c798db3a6bacbc6dbced2e5c6d1e5bcc7dfd5cfe7dfc4dee1aecfc163a6b22a7b +c42b7ad42c78e33382dc317fd12e7fc0307dd56face2a8ccdfbfdbd4c5e1cdcbe5cacce7 +cccbe5d0c9e4d4c7e2d4c6e1d2c9e3cfcae5cecbe5d1c8e3d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d3c8e2d0c9e3 +cfc9e4cfc9e4cfc9e4d0c9e4d0c9e4d0c9e4d0c9e4d0c9e4d2c9e3d2c9e3d3c8e2d3c8e2 +d3c8e2d4c7e2d4c6e1d3c6e1d3c8e2d2c9e3d2cbe3d3cae3d5c9e2d5c7e1d5c7e2d5c7e2 +d4c6e1d2c7e2d1c9e4cfcae4cdc9e4ccc8e4cdc8e4cec7e3d0c9e4d4c9e3d5cae4d0c5e1 +cdc4e1cec7e2cdc6e2cbc5e2cec9e4e0ddef7a7b8e4d50594046403b4130393d2a3b3d29 +4c4e423f3c42706a7cc7c0d8ded5e9d5c8d4cdbcb5bfaf98a99772917f508774418a784d +a5927bc7b9b1dbcdd5d8cbded6cbe3d5cae3d5c8e2d5c6e1d4c5e0d3c2ded4c2ded4c5e0 +d4c9e3d0cbe4d2cbe4d1cae3d2c9e4d1c9e4d1c8e3d1c7e2d0c7e2d1c6e2d0c7e3d1c6e2 +d0c7e2d1c7e2d0c8e3d1c8e3d3c8e2d5c6e1d9c4dfd8c5e0d2c9e3cdcbe5cccbe5cecae5 +cfc9e4d1c8e3d6c6e1e1c6dfbc7aaaaa3073ba2469d12a6fd42a6fc42867b12a6c9c4177 +e6d7e9c8cae6d0cae4d8c9e2dcc6e0dcc2ddd9c0dcdfcde4d0c3e0d0c7e3d0c8e3d4c7e2 +d4c6e1d6c5e0d6c6e1d5c7e2d0c9e4d0c9e4d4c7e2d4c6e1d4c6e1d4c6e1d3c6e1d2c7e2 +d1c8e3d1c8e3d1c8e3d2c7e2d2c7e2d4c7e2d4c7e2d4c7e2d3c8e2d2c7e2d2c9e3d0c9e4 +d0cae4cfcae4cfcae4d0c9e4d0c9e3d3c9e3d3c6e1d4c7e2d3c7e2d3c7e2d3cae4d1cae3 +c5bfd9aba8bc827f8f4f4d573f3c40413f404343424040403f40423d414542414a555260 +7c7386a99db2cfc3dadbd2e8d0cee5cacee6c3cbe4d3d1e9d3c1dee5c5ded295c2af4a8f +a9256dc72a74db317fe33382da307dc92a74cd448ee092c0e7c5ddd2bfddcec9e4cacde7 +cdcce6d0c9e4d4c6e1d6c6e1d3c8e2cccbe5cdcde6d0c9e4d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d2c9e3 +d2c9e3d2c9e3d2c9e3d2c9e3d2c9e3d2c9e3d2c9e3d2c9e3d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c9e3d3c9e3d3c9e3d4c7e2d4c7e2d4c7e2d4c7e2 +d3c8e2d3c8e2d2c9e3d1c8e3d0c9e3d0c9e3d0c9e3d2c9e3d2c9e3d3c8e2d3c8e2d1c5e1 +cfc4e1cfc6e1cfc6e2d0c7e3cfc9e4dcd8ec7e7b8e4848533c3e3f3e413a3c3f373d3e37 +444542413c476c6478c8c0d8dacfe7d3c8e0d6cadfded2e4dfd1dfccbec7b1a4aea99aa7 +b3a8b9c8bdd2d4c8e0d4c9e2d4c9e3d3c8e2d4c7e2d4c6e1d3c5e1d4c6e1d4c6e1d4c6e1 +d3c8e2d2c9e3d3c9e3d2c9e3d3c8e2d2c7e2d2c7e2d3c8e2d2c7e2d2c7e2d1c7e2d2c7e2 +d2c7e2d3c8e2d2c7e2d2c7e2d4c7e2d5c7e2d8c5e0d8c5e0d3c6e1d0c9e3cec9e4cec9e4 +cec9e4d0c9e4d5c7e2e7cae0bd76a6b13375c4296ed42a71d22971c3286fb33379a4538c +dcc7e0d0cee7cdc9e4d0c7e3d4c7e2d4c6e1d4c5e0d4c5e1d5c8e2d4c6e1d4c6e1d5c7e2 +d5c7e2d5c7e2d5c7e2d4c7e2d2c9e3d3c8e2d6c5e0d6c3dfd4c5e0d3c5e1d1c6e2d0c7e3 +cec9e4cdcae5cdc8e4cfc8e3d0c7e2d2c7e2d3c8e2d3c8e2d2c9e3d0c9e4d0cae4cfcae4 +cfcde5cecee5cecae3cec7e2d1c5e0d5c8e2d7c8e2d7c8e2d6c9e3d2c7e2cfc7e2c9c7e2 +b6b8ceafb3c2b2b6bf65696c4549443f423b3f413e40414445434a43414c4c4a5a80798e +b6afc5d3c8e1d5cae3d1c6e1d0c7e3cec7e2cec7e3d6cde5d0c0dddcc5dfdcbedab57eaf +912b6cb2266ec92970e93785e83481e22f7ecf2e7bd76eabe5b9d6d6c1ddcec7e2cccfe8 +d0d2eacfcae4d4c4e0d8c3dfd4c5e1ccc8e4d0cfe8d0c9e4d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c6e1 +d3c5e1d2c6e1d2c7e2d0c9e4d0cae4dedaec7f7d904a49563f3f433e413f3c3e3a3c3d3c +454347423a4c6a6378c8bfd7dbcee6d4c7e2d5cae4d6cbe4d7cce5d5cae4d1c6e1d1c6e1 +d4c9e3d8cde6d7cce5d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d4c7e2d5c7e2d9c6e0d9c6e0d5c7e2d1c7e2cfc8e3cfc8e3 +cec9e4d0c9e3d5c7e2e2c0dbb16395af2a6fc4286bd42a71d42c73c52a74b2367fb2669f +dcc8e1d1cce6cccbe5cdcae5d0cae4d1c9e4d2c7e2d4c6e1d5c8e2d5c6e1d5c6e1d5c7e2 +d5c7e2d4c7e2d4c7e2d3c8e2d2c9e3d4c6e1d5c6e1d6c3dfd4c5e0d3c5e1d1c7e2cfc8e3 +cdcae5cdcae5cdcae5cec9e4d0c7e2d3c8e2d4c6e1d4c7e2d3c8e2d2c9e3d0cae4cfcae4 +d4d2e9d2d0e8cecae4d0c7e2d9cde5ddcee6d8c8e2d3c4e0d4c6e1d1c7e2c7c2deb5b6cd +abb1c2bdc3cedce1e79ea1a265656241413b3c3c3a423f463f3a47524e5f858196b6afc6 +cdc6dfd6cde5d7cce5d6cbe4d3c6e1d0c3e0d1c3dfdccee5d5c6e1d7cae3d9cae3c4a7cd +a35e91a02868ca3179d82c74e22f75e92f7cde3180ce4e96d694c1ead0e4cfc3e0c5c7e3 +cbcce6d0cae4d8c5e0dbc5dfd6c6e1cdc8e4cacae5d0c9e4d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c6e1 +d3c7e2d3c8e2d2c9e3d1cae4d1cae4e1ddee807f914d4c584040443e413f3c3e3a3d3f3c +45434741394a696276c8bed6dbd0e7d2c7e1cfc4e1cdc2dfcdc2dfd2c7e2d7cce5d8cde6 +d5cae4d0c5e1cfc4e1d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d4c7e2d5c7e2d7c6e0d6c6e1d4c7e2d0c9e3cfc8e3cfc7e2 +cfc8e3d1c8e3d6c5e0e0bdd9a24f84ad296bc3266ad22a6fd32a73c52b76b0337cc47db2 +dec9e1d1cce6cccbe5cec9e4d0c9e4d1c9e4d2c7e2d4c6e1d5c8e2d5c6e1d5c6e1d5c7e2 +d5c7e2d4c7e2d4c7e2d3c8e2d2c9e3d3c8e2d4c6e1d4c6e1d4c6e1d4c7e2d1c8e3d0c9e4 +cfcae4d0c9e4d0c9e4d2c9e3d4c7e2d5c7e2d5c6e1d5c6e1d5c6e1d5c7e2d4c7e2d2c9e3 +ccc6e2cbc6e2cec8e3d1c9e4d2c6e1d0c2dfd1c1ded3c5e0d4c9e3c9c3dcbebacebbbbca +c4c4cecdcdd5eee8edc5bcbf87797b56454745373d453f4c55506180798cbab3c8d8d0e7 +d8d0e7d4c9e3d3c8e2d4c9e3d4c7e2d2c4e0d0c2dfdacee5d7c9e3d4c6e1d9cbe4dbc4df +ca94bfa63c7ab6286fd22972df2d75ea3080dd3180bf2e7cc066a3e7c1dbd9cae3c8c7e3 +cbc6e1d3c8e2d6c5e0d7c4dfd5c9e3d0cbe5cac7e3d0c9e4d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c6e1 +d3c5e1d3c7e2d2c7e2d0c9e4d1cae4e1dcee8180924d4d594041453e413f3e3f3b3e3f3e +4342463e3748676076c7bdd6dbcee6d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d3c8e2d2c7e2 +d2c7e2d1c6e1d2c7e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d4c7e2d4c7e2d6c7e1d5c7e2d1c8e3d0c9e4d0c9e3d0c7e2 +d0c7e2d3c8e2d8c5e0e4c0db9d467caf2a6dc5296dd22a6fd22972c42a74ab2d78cd8abc +dec9e1d2cde6cdcae5cec9e4d0c9e4d2c9e3d2c7e2d4c6e1d5c8e2d5c6e1d5c6e1d5c7e2 +d5c7e2d4c7e2d4c7e2d3c8e2d2c9e3d2c9e3d3c8e2d4c7e2d3c8e2d2c9e3d0c9e4d0cae4 +d0cae4d0c9e4d2c9e3d4c7e2d5c7e2d6c6e1d6c5e0d6c5e0d6c5e0d6c5e0d5c6e1d3c7e2 +cdc6e2cdc9e4d3cde6d3cae4d0c2dfd5c4dfe1cde4e1cbe2d4c1d8c5b5c5c3b6c1d4c9d2 +e2d9ded6cbcfe3d8dbd4c8cb9d8a9064515a503f4e61576a888497b4afc2d0c9e1d6cde6 +d4cbe5d2c7e2cfc4e0d0c4e0d4c7e2d5c9e3d3c4e0d5c8e2d5c6e1d1c3dfd4c6e1dfcae2 +ddb3d3bd6a9f9f2262d02e79e0317de83383d62b7ac02c78bb4b90ce90bfe7d3e7d4cfe7 +d0c4e0d4c5e1d2c3dfd0c3e0d3c9e3d4cde6ccc7e3d2c9e3d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c6e1 +d3c6e1d2c6e1d1c6e2d0c9e3d0cae4dfdbed807f914d4d594041453f413f3e3f3b3f3f3e +4342463e3547655e73c4bcd5dbd0e7d4c7e2d4c9e3d5cae4d5cae4d4c9e3d1c6e1d1c6e1 +d3c8e2d5cbe4d5cbe4d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d4c7e2d4c7e2d3c9e3d0c9e4d0c9e4d0c7e2d2c7e2 +d3c7e2d4c6e1d8c4dfe6c2db9a4179b12c70c72a6fd22a6fd22b74c42a74aa2b75d592c0 +e0c9e1d3cce5cec9e4cfc8e3d1c9e4d3c9e3d2c7e2d4c6e1d5c9e3d5c7e2d5c7e2d5c7e2 +d5c7e2d4c7e2d4c7e2d3c8e2d3c8e2d2c9e3d1c8e3d0c9e3d0c9e4d0c9e4d0cae4d0cae4 +d1c9e3d2c9e3d4c9e2d5c7e1d6c7e1d6c6e1d7c6e0d7c6e0d6c5e0d6c5e0d5c6e1d2c6e1 +cec9e4cccae4ccc8e4cfc4e1d5c3dfe1c8e0e4c3dad1abc0b98f9eb58f98c4a3a7dcbfc0 +eed6d6e0cccbe0d0d2dccdd3a896a17363716c5f738f889db7b1c7d6cee4d8cfe7d1c6e1 +d2c7e2d4c9e3d1c5e1cfc4e0d3c6e1d8cce4d6cae3d0c2dfd2c4e0d1c3e0d1c3e0d9c7e1 +e1c2ddd69ac4a63d7cc12a74da317ee13281d52a77cd307dc13985b65a98e5c7dfdbd0e7 +d5c4dfd7c6e0d1c4e0ccc4e1d1cae4d5cee7cdc6e2d2c9e3d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c6e1 +d3c5e1d1c6e1d0c6e2cec7e2cfc8e3dfdbed827f924e4e5b4040453f413f3e403c3f403e +4241453b3345625c71c4bcd5dbcee6d3c7e1d0c5e1d0c5e1d0c5e1d1c6e1d1c6e1d2c7e2 +d2c7e2d2c7e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d2c9e3d2c9e4d0c9e4d0c9e4d0c9e4d1c7e2d3c5e1 +d4c6e1d4c5e1d9c4dfe6c1db9a4079b12c70c82d72d22971d22b74c52b76aa2c76d895c2 +dfc8e1d4cbe4cfc8e3d0c9e3d2c9e3d3c9e3d2c7e2d4c6e1d5c9e3d5c7e2d5c7e2d5c7e2 +d5c7e2d4c7e2d4c7e2d3c8e2d3c8e2d2c9e3d0c9e4cfcae4cfcae4d0cae4d0cae4d1c9e3 +d3cae4d4cae3d5c9e2d6c8e1d6c7e1d6c6e1d6c5e0d6c5e0d5c5e0d4c5e1d4c5e0d2c6e1 +cbc6e3c5c5e2c9c4e1d5c7e2e3c9e1e5bad5c98fa6ad6677984b539f5657b67673cd9894 +e8bebbefcecce0caccd2c1c9a799a7867d8f948ea3b9b2c9cec7e0dbd2e9d6cde6d0c5e0 +d2c7e2d3c8e3d3c8e2d0c4e0d1c3e0d7cbe4dacde5cfc1ded1c3e0d6c9e3d3c5e0d3c4e0 +ddc7e0e1bbd8c77caead2467cd2c76d72d7ada2d7bd93283c83280b03d82d29fc8ddc8e1 +dac3ded9c6e0d4c9e3cdc8e4d0cbe5d4cde6ccc3e0d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c6e1 +d3c6e1d2c6e1d0c6e2cec7e2cfc8e3dfdbed83809350505c4042463f413f3e403c3f403f +4241453a3243625a70c4bbd3dbcee6d4c7e2d2c7e2d0c5e1cfc4e1d2c7e2d4c9e3d5cae4 +d2c7e2cec3e0cec3e0d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d2c9e3d1c9e4d0cae4d0cae4d0c9e3d2c7e2d4c6e1 +d4c5e1d6c5e0dac3dee6bfda9c447aaf2a6fc62a70d32a73d32a75c52b76ad3079d792c0 +e0c7e0d5cae4d0c9e3d1c7e2d3c9e3d3c8e2d2c7e2d4c6e1d5c9e3d5c7e2d5c7e2d5c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d3c8e2d1c8e3cfcae4cdcbe5cecae5d0cae4d0c9e4d2c9e3 +d4cae3d5cae3d5c9e2d5c9e2d5c7e1d6c8e1d5c7e2d4c6e1d3c5e1d3c5e0d3c4e0d2c6e1 +c9c5e2c6c6e3d1cae4e3cde4ebc2dbd794adab4d6098262d99221f9c2823a53d34ba635b +d59591f1c4c1d6bac0b9acb79f9cae9c9db3b5b5cecfcae4d2c9e3d3cae4d2c9e3d2c7e2 +d2c7e2d3c7e2d2c7e2d2c5e1d0c2dfd3c6e1d9cde5cfc2dfd1c4e0d8cce4d5c7e2d2c4e0 +d6c7e1dec8e1e5b7d49e2569bc256ece2a75dd317fe03383d02f7db7317db66aa2dfbdda +dec2dddac6e0d5cce5cdcbe6cecae5d3cae4cec3dfd3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c6e1 +d3c7e2d3c7e2d1c6e2cfc7e2d0cae4e2dcee83829452525e4243483f413f3e403c3f403f +42414539304161596fc4bad3dbcee6d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5cae4d5cae4 +d4c9e3d3c8e2d2c7e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d1c8e3d0cae4cecbe5cfcae4d0c9e4d2c7e2d4c5e1 +d5c6e1d6c5e0dac3dee3beda9f4a80ae2c6ec52a70d22b73d22b74c42a73b1317bd38abb +e2c7dfd6cae3d1c7e2d2c7e2d3c8e2d3c8e2d2c7e2d4c6e1d5c9e3d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d3c8e2d1c8e3cdc8e4cdcae5cecae5d0c9e4d2c9e3d4c7e1 +d5c9e2d5c9e2d5c9e2d4c9e2d2c9e3d1c9e4d1c8e3d1c8e3d1c6e2d1c6e1d1c5e1d1c6e1 +ccc7e3d1cce5dfcfe6e6c2dbdb9bb4bf5c6fa52329a92021b52423af2322a82221af382d +be635fe1a6a8c3a4aca89eaea1a8bfb0bdd6c5cbe6d3cee7d2c7e2cfc4e1d1c6e1d2c7e2 +d2c7e2d2c6e1d2c5e1d2c5e1d3c5e1cec0ded9cde5d3c5e1d2c5e1d8cce5d5c9e3d1c6e1 +d1c9e3d4c9e3edd3e5a64281b1256cc92a75da307de0317fd62e7cc22d7aa64081e3b3d2 +e1c1dcd6c3dfd4cde6cccce6cccae4d4cbe4d3c5e1d4c7e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c6e1 +d3c7e2d3c8e2d2c7e2d0c9e3d1cae4e2deef8583955454604345483f434040423e3f403f +43424639304160586ec4bad3dbd0e7d1c6e1cdc2dfd1c6e1d4c9e3d1c6e1ccc2dfcdc2df +d1c6e1d6cbe4d6cbe4d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d1c8e3cfcae5cdcbe5cfcae4d0c9e3d2c7e2d4c5e1 +d4c5e0d6c5e0dac4dfe3c1dba05084ab2c6ec42a70d22b74d22b73c42b72b12e7acd7db3 +e3c6dfd6c9e3d3c7e2d3c8e2d4c7e2d3c8e2d3c8e2d4c6e1d5c9e3d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d3c8e2d2c9e3cfc9e4cdc8e4cec9e4d2c7e2d4c6e1d5c7e2 +d5c7e2d5c7e1d3cae3d1cae4cfcae5cdcbe5cdcbe6cdcae5cdc8e3d0c7e2d0c7e2d2c6e1 +d5c8e2ddcae2e1bcd4cf90a7b15265a52227b32122c52625cb2825c72725bc2524ad2823 +a4332fc57f83b894a2b1a7bcb6bfdabecde8c7cee8cfc9e4d5cae4d5cbe4d2c7e2d1c6e1 +d2c7e2d3c6e1d1c4e0d3c5e1d5c7e2cbbeddd6cae4d5c7e2d2c5e1d6cae4d3c6e1d1c6e1 +cecce6c8cae4e4d3e7bc74a9a82b72c52b76d52a76de2e7add2f7ec92d79a82b71e7a7cb +e6c2dbd4c1ded0cae4cbc9e4cdc7e3d5cbe4d6cae4d4c6e1d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2cfc4e0 +d3c7e2d7cce5d4c9e3cdc6e2d1cae4e2ddee827f9252515e434548434643424540363736 +49484b403849595269c4bcd5dcd1e7d4c9e3d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d1c8e3cfcae5cdcbe5cfcae4d1c8e3d3c5e1d4c5e1 +d4c5e0d5c5e0d9c4dfe4c6de9b5284a72c6cc42c72d62d78d62c76c62973b32b78c066a3 +e7c8dfd6c6e1d6cae4d7cae4d4c7e2d4c6e1d6cbe4d6cae4d4c6e1d3c8e2d3c8e2d3c8e2 +d3c8e2d4c7e2d4c7e2d4c7e2d4c7e2d3c8e2d0c9e3cfc8e3d0c7e2d2c7e2d4c6e1d4c5e1 +d4c6e1d4c7e2d1c9e4d2d0e8c9cbe6c5c9e5ccd0e9d2d2eacac9e4cdc6e2d4cbe4d5c4df +e5c9e0eebfd2d691a0b04c599d1e20b42123c82725cd2826d52a26d42b26c22625aa2021 +9c2424a2535eba93aac6bcd6c4cde7c1cee9c6cbe6cfc9e4d3c6e1d3c6e1d3c6e1d3c6e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c6e1d3c6e1d2c7e2d3c8e2d3c8e2d3c8e2d3c9e3d1c9e4 +cdcee7cad2eacec7e2eac2db992a6fb7246cd42b77e2317ee13280d12d7bba2b76cb6ba6 +ecc8ded9c7e1cfc7e2cdc8e4d0c9e3d4c9e3d5c9e3d4c6e1d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2cfc4e0 +d2c5e1d3c9e3d3c9e3d1cae4d5cee7ddd8eb78778a4a49563a3b3e3a3c3a3e403c373838 +49484b443d4d61596fc8bfd7dcd0e7d4c7e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d1c8e3d0cae4cfcae5d0c9e4d2c7e2d4c5e1d4c5e0 +d5c6e1d4c6e1d6c6e1ddc1dcae6d9aa93573be286fd02b72d42b74ca2975b82a78bc5b9b +e9c8dfd8c7e1d5c6e1d5c7e2d5c7e2d5c7e2d7cae4d5c9e3d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d4c7e2d4c7e2d4c7e2d4c7e2d2c7e2d1c6e2d1c6e2d2c6e1d4c5e1d4c5e0d5c4df +d4c5e0d2c7e2cfc9e4c8c8e4ccd0e9cad0e9bdc6e3bec3e1d5d1e9d3c9e3cabcdbe4c8e0 +f1b7cfd88491b74648a42020b12122ca2826d12926d22a26cc2726c72725b422229b1e1f +9e2c33c27a8adeb8d2d3c2dfc4c4e1c5c9e5cbcbe5d0c7e2d3c6e1d3c6e1d3c6e1d3c6e1 +d3c6e1d3c5e1d3c5e1d3c6e1d3c6e1d3c6e1d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d0c9e4 +cbcee7c7d2ebc5c7e3e2c8e0b15e9ab92c7acf2b77dd2e7bde2f7dd92f7ecb2f7bc34c8d +efc8ded5c4dfd2c9e3d1cae4d1c7e2d3c6e1d6c9e3d4c6e1d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c6e1 +d3c7e2d2c6e1d0c6e2d2cbe5d5cee7dbd7eb7e7b8e5b5c684d4e52494a484c4d493f403e +403f433a32435c546ac3bad3dbd0e7d4c9e3d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d2c9e3d2c9e4d0c9e4d1c8e3d4c7e2d4c5e1d4c5e0 +d4c6e1d3c8e2d5c7e2d8c1ddc68db7ac3b79ba276ccd2a6fd52b73d02c78be2b7ab94f94 +ecc9dfdccae2d4c4e0d3c3dfd5c7e2d6c9e3d5c9e3d4c7e2d3c8e2d3c8e2d2c9e3d3c8e2 +d3c8e2d4c7e2d4c7e2d4c7e2d5c7e2d4c6e1d2c7e2d2c6e1d3c5e0d4c5e0d5c4dfd5c4df +d4c3dfd2c6e1cdc8e4c6c9e5c8cee8ccd4eccbd0e9c7c7e3cdc4e0dbc9e2dfc5dfe9b5d2 +dc8396c54647af2222b12222c72825cb2825c82625c82725c02624b12122a01f209c2627 +b25b68dda3b7eecde1dac6e0ccc1dfcdc6e2d1c9e4d2c7e2d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d3c6e1d3c6e1d3c7e2d2c7e2d3c8e2d3c8e2d3c8e2d2c9e3d2c9e3d2c9e3d0c9e4 +cbcde7c7d0eac3c6e3ddcbe3d297c3b83983c72b76d52a77da2d79de3180d4307db92e78 +edbed8d8c1ddd7cae4d4cbe4d2c6e1d4c5e1d5c8e2d4c6e1d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d5cae4 +d4c9e3cfc4e1cdc3e0d0c9e3d1cae4dad6eb8d8b9d82828c83838882848381827f6b6b6a +565659423a4c5d556bbfb5cedbd0e7d5cae4d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c9e3d2c9e3d4c7e2d4c6e1d4c5e1d4c5e1 +d3c7e2d0c9e4d1c9e4d6c7e1d6a7ccab3f7ab62568cd2a6fd92c75d52b7ac32c7ab7468d +e9c3dbe0cbe3d4c3dfd2c2dfd5c6e1d6c9e3d4c6e1d5c9e3d3c8e2d2c9e3d2c9e3d3c8e2 +d3c8e2d4c7e2d4c7e2d4c7e2d5c7e2d5c7e2d2c7e2d2c7e2d4c6e1d4c5e0d5c4dfd5c2de +d4c3dfd1c6e2cdc8e4cbcce6c8cde7cbd0e9d0d2ead2cbe4d6c1dceecde1e7b8d4cc7f9a +c34955bd2724be2424c52725cf2926c72725be2424ba2423ab21229e1f1fa13032b8626d +d596a8ebbcd3e8cbe1dbc6e0d4c3dfd4c6e1d4c6e1d3c5e1d5c7e2d5c7e2d5c7e2d5c7e2 +d5c7e2d4c6e1d4c6e1d3c6e1d3c8e2d3c8e2d3c8e2d3c8e2d2c9e3d2c9e3d2c9e3d0c9e4 +cccce6c8cce7c7c9e5d9cce4e7bdd8b3468aba2671cd2a75d82d78e03280d9307cb8276f +dfa1c8ddc3dddacde5d5cae3d3c6e1d4c6e1d5c5e0d4c6e1d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d6cae4 +d4c9e3d0c5e1cec4e0d0c9e4cec8e3d9d5ea9c9aaca2a1abb4b3b6bcbebcbcbdb9a7a9a8 +8c898d6a6473726b7fc1b8d1dbd0e7d7cbe4d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d4c7e2d4c7e2d4c7e2d5c7e2d4c6e1d4c5e1d4c5e1 +d2c7e2cdcae5cdcbe5d5cae3ddb5d4a6427ab12366cd2970dc2d78d92d7ac52b77b73c87 +e2b3d3e1cae2d5c3dfd2c1ded6c7e1d7cae3d2c5e1d5c9e3d3c8e2d2c9e3d2c9e3d3c8e2 +d3c8e2d4c7e2d4c7e2d4c7e2d5c7e2d5c7e2d4c6e1d4c7e2d4c6e1d5c6e1d5c4dfd5c4df +d3c4e0d2c6e1cec8e3cdcce6cccee7cbcae4cec6dfdac6deefcee1f3bbd1cc7f98af4155 +b62627c52725cb2726c92725c82725c52725b22122a31f20961d1e9c353eb56876d39cae +ecc1d6e6c8dfd9c1ddd7c3dfd8c7e1d7c6e0d5c6e1d4c6e1d4c6e1d4c6e1d4c6e1d5c7e2 +d5c7e2d4c6e1d4c7e2d4c7e2d3c8e2d3c8e2d2c9e3d2c9e3d2c9e3d2c9e3d1c8e3d0c9e4 +cec9e4cacae5cdcbe5d6cbe4edcfe2af5392ae2770c52a73d72d78e12f7cd92d79be2972 +c576aae3c2dcdecde5d3c7e2d3c6e1d8c8e2d3c3dfd5c7e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d4c7e2 +d3c7e2d2c6e1d2c7e2d3cce5cec8e3d9d5eaa2a0b2b0b1b9c8c9cbd6d8d6dddfdbd3d3d2 +bcbbbd9c96a3918b9ec8bed6dbcee6d6cbe4d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d4c7e2d4c7e2d5c7e2d6c6e1d5c5e0d5c5e0d4c5e0d4c5e1 +d0c8e3cacbe6cacde7d1cbe4ddbcd8a8487faf2467cc2a70de2d78da2b78c82c76b53480 +d29cc6ddc4ded7c4dfd3c2dfd6c7e1d7cae3d1c4e0d7cae4d2c7e2d2c9e3d2c9e3d3c8e2 +d3c8e2d4c7e2d4c7e2d4c7e2d5c7e2d5c7e2d3c8e2d3c9e3d4c7e2d4c6e1d4c5e0d5c4df +d3c4e0d2c6e1cfc7e2cdc9e4cecae5d0c7e2d7c4dcebc7d9f5c1d2d78597af3e51a72126 +b92223cc2726cf2826c52625bf2424bc2626a21e2191191e942d41b2697fcf9cb3e0bdd6 +e9d1e5decbe3d2c1ded3c4e0d7c6e1d6c5e0d5c4e0d6c6e1d5c6e1d5c6e1d5c6e1d5c7e2 +d5c7e2d4c7e2d4c7e2d4c7e2d3c8e2d3c8e2d2c9e3d2c9e3d2c9e3d2c9e3d1c8e3d0c9e4 +cfc8e3cec7e2d4cbe5d4c9e3ebd0e4b369a0a92e74c02871d72d77df2d78d72b75c7317a +ae508ae6bdd8e1cde4d0c5e0d2c6e1d9c9e3d3c1ded5c7e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d2c5e1 +d2c5e1d3c8e2d3cae4d5cee6cfc8e3d9d5eaa2a0b2b0b1bbc5c5c8cfd1d0dbddd9dfe0df +d5d5d7bfbac5a8a4b5ccc4dcd7cce5d5cae3d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d4c7e2d5c7e2d6c6e1d8c5e0d7c4dfd6c5e0d4c5e0d4c5e1 +cfc8e3c8cce7c6cee7cbcbe4dcbfdbb25a8fb42a6ecb286fde2d76dd2d78cb2b76b22b79 +bc7db3d8bedbd9c6e0d5c4dfd6c7e1d6c7e2d0c2dfd8cce5d1c6e1d2c9e3d2c9e3d2c9e3 +d3c8e2d4c7e2d4c7e2d4c7e2d5c6e1d5c7e2d2c9e3d1cae4d3cae3d5c7e2d6c5e0d4c5e0 +d4c5e0d2c6e1d0c7e2cec7e3cdc4e0d7c7e0eacddff1bfcfd78b99ae3c49a92025b92224 +c12424c92825cb2825c02424b52123ac2126961a23962c48af6082d19bbbe2c0dbddc8e1 +d9cde5d4cbe4d0c7e3d0c7e2d2c7e2d4c6e1d4c6e1d6c7e1d5c7e2d5c6e1d5c7e2d5c7e2 +d5c7e2d4c7e2d4c7e2d4c7e2d3c8e2d3c8e2d2c9e3d2c9e3d1c8e3d1c8e3d1c8e3d0c9e3 +d0c7e2d2c7e2d5c9e3d4c5e1e4cce2c489baa8407fb7266dd62c76de2d75d52b73ca367e +a13775e3b1d1e0c9e1d0c6e2d1c6e1d9c8e2d5c1ddd5c7e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c6e1 +d3c6e1d3c8e3d3cae4d3cce5cec7e2dbd7eba2a0b2adadb7bfc1c3c9cac8cfcfccd6d5d4 +d6d5d6ccc6d1b3adbecbc3dbd5cae3d4c9e3d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d4c7e2d5c7e2d6c6e1d8c5e0d8c5e0d7c4dfd5c4e0d4c6e1 +cec9e4c6cde7c3cfe9c6cbe4ddc4dec575a5bb3679ca296fdc2e75e12f7bd32c7bb22774 +a8609bd5b6d7dcc8e1d8c6e1d6c6e1d6c6e1cfc2dfd9cee6d0c5e1d2c7e2d2c9e3d2c9e3 +d2c9e3d3c8e2d4c7e2d4c7e2d5c6e1d4c7e2d1cae3d1cce3d2cbe3d4c7e1d5c7e2d6c5e0 +d4c5e0d4c6e1d3c7e2d1c6e1d4c4dfe1c7dde9bed0d693a0ac434c9f1d1fbb2324ca2826 +c52625c12624c02624ba2423aa20219a1a229d2c4cbb668cd89bc1e5bdd9e3cbe2d6c7e2 +cec7e2cdcbe5cecde7cacae5cbcbe4cfcbe4d2c9e3d6c7e1d6c6e1d5c7e2d6c7e1d5c7e2 +d5c7e2d4c7e2d4c7e2d4c7e2d3c9e3d3c9e3d2c9e3d2c9e3d1c9e4d0c9e3d0c9e3d0c7e2 +d3c8e2d4c6e1d2c3dfd2c3dfddc8e1d9afd1ac548daf256ad42c73df2e74d42d75c53179 +a23072dd9fc7dec5dfd1c8e3d0c6e2d7c4dfd7c3dfd4c6e1d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d4c7e2d5c9e3 +d5c9e3d5c9e3d2c7e2d0c7e2ccc6e1ddd7eca5a3b4adadb6cacbced7d8d6d2d3ced0cfcc +d0cececbc5ceb3adbec9c1d9d4c9e2d4c9e3d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d4c7e2d4c7e2d5c7e2d6c6e1d7c4dfd7c3dfd7c3dfd4c5e1 +cfc8e3c6cce7c2cfe9c3cbe4e0cee4d491bdbd4786c2286fd72c75e3317ede317fbd2773 +a44788d7abcfe0c7e0dac7e1d6c7e1d4c6e1d0c2dfdbcde5d2c4e0d3c7e2d1c9e4d0cae4 +d0cae4d1c8e3d3c8e2d4c7e2d4c7e2d3c9e3d0cbe3d1cce2d0cbe3d1c9e3d4c7e2d4c5e1 +d4c5e0d5c4e0d6c5e0d7c4dfe7cee3e6bfd1c88795a34048a32121bc2424c92526cb2726 +c82725bf2524b52323aa2021981a1f8b192fba6688e4a9cce9c3dce2c7dfd8c5e0d3c6e1 +cfc7e2cbc9e4c9cae5c9cbe5cacee6cdcee5d1cbe4d5c7e2d5c7e2d5c7e2d5c7e2d5c7e2 +d5c7e2d4c7e2d4c7e2d4c7e2d3c9e3d3c8e2d3c8e2d2c9e3d2c9e3d2c9e3d2c9e3d2c7e2 +d3c7e2d5c8e2cfbfddd2c3dfdbc7e1eacce1af6499a82466d12a70de2e75d52d78c02a72 +ac3376d58fbedebfdbd5cbe4d0c6e2d3c1ded9c7e1d5c7e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3 +d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3 +d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3 +d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3 +d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3 +d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3 +d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3 +d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d5c7e2 +d5c6e1d4c6e1d6c9e3d5c7e2d4c9e3d5cce5a9a4baa7a6b3bfbfc3d1d1cdd6d7cfd8d7d0 +d3d2cfc2bdc4aeaabacec6dfd4cae4d2c6e1d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c9e3d0cae4cdcde6d0cbe5d7c6e0dbc3dedcc2dddac4df +d5c7e2cacde7c4d0e9c2cee7d7cde6e1b5d4b4558faf266bcc2b71dc2e75e52e78d52c79 +ae2b78ca7eb5dcb5d5d9c7e1d0c7e3d0c7e2d5c7e2d9c5e0dbc6e0d6cae3d1cbe4cecee6 +cdcde6d0cbe5d3cae4d4c9e3d1cae4d0cbe4d6d1e8ccc7dec8c6e0cdcbe6d4cde6d0c4e0 +d3c2deddc6dfdcbddaf0d1e4e9bccdc5838ca64343a22220bd2424cd2726d32a26d72a26 +c62525b82223ac2128991c278b1d34a9607ce2b4d0ebcfe3dac5dfd3c1ded4c5e0d4c5e1 +d4c6e1d3c8e2d1c9e4cfcbe5cbcde6cbcee6cfcde6d4c9e3d5c8e2d5c8e2d5c9e3d5c9e3 +d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d2c7e2cec4e0d2c9e3d3c6e1d5c3dfebd0e3b470a1a52768c82669d82d73d22d77c12a72 +b12f76ca74acdcb4d4dccde5d5cce5d3c4e0d2c3dfd5c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3 +d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3 +d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3 +d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3 +d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3 +d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3 +d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3 +d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d5c7e2d5c6e1 +d4c5e1d4c5e1d5c7e2d4c6e1d5c7e2d5cce5aca5bcaba6b4c0bfc3d1d1ccd6d7cdd8d7ce +d4d2cec2bdc4aeaabacec6e1d4c9e3d2c6e1d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c9e3d0cae4cacee7cbcce6d6c7e1dbc3dedcc2dddac3de +d5c8e2cbcde7c5cfe8c4cee8d4cde6dbb8d7b86a9eab2f73c1286edc2e78e92d79da2c74 +ba2877c564a5e0b0d1ddc7e0cec4e0cec7e2d7cce5d8c4dfd9c3ded6c7e2d2cbe4cecde6 +cdcde6d0cbe5d4c9e3d4c9e3d1cae4d0cbe5cbc5dfd5d0e8d5d1e9cbc7e3c9c3e0d4c7e2 +d1bedcd6b7d7f0d0e3e6b2c8c37b88a74245a12420af2322c12424cd2826d52a26ce2826 +c72728ab2025921a1d9a2e46c57e93e9bcd2ddc5ded3c4e0d4cae4d4cae4d3c5e1d4c5e1 +d5c4e0d5c6e1d5c7e2d1cae4cdcde6cccee7d0cbe5d4c9e3d5c9e3d5c9e3d5c9e3d5c9e3 +d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d4c9e3 +d2c7e2d0c7e3d3cbe5d4cae4d6c7e1ecd3e6b678a7a62c6ec7296dd72c75d12e76c12970 +b02a70c769a3daaaced9c7e1d3c9e3d3c5e1d2c4e0d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3 +d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3 +d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3 +d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3 +d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3 +d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3 +d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3 +d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d5c7e2d4c6e1 +d3c4e0d3c4e0d4c6e1d4c6e1d5c7e2d6cde6aea5bdada9b6c1c0c3d1d1ccd6d7cdd8d7ce +d4d2cec2bdc4aeaabacec6e1d4c9e3d2c6e1d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c9e3d0cae4cbcde7cdcbe6d5c6e1dac4dfdbc3dedac5df +d5c8e2cccce6c7cde7c6cee7d4cde6dbbad8c882b2b13f7db9266bda307be9317bd92c70 +c12b79bb4890dda1c8e1c2dcd2c2dfcec5e1d7cee6d5c6e0d3c0ddd6c8e1d4c9e3d1cae4 +d0cbe5d2cae4d5c9e3d5c7e2d5c9e3d3cae4cbc6e1d1cbe5d5cde6d3c6e1cfc0ded0c2df +dac8e2e0c1dce6b6cfc7788caa3a47a32021af2222bf2824b72323c12424d22a26c52425 +af2122a1212fa53d54c3768beab4c9f2d4e5dacbe3cdc4e0d0cbe5d3cae4d3c6e1d4c5e1 +d6c5e0d6c5e0d5c6e1d4c9e3d0cbe5cfcbe5d0cbe5d4c9e3d5c9e3d5c9e3d5c9e3d5c9e3 +d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d4c9e3 +d3c9e3d3c9e3d4cce5d3cce5d6cae3ebd5e7b97fada83073c5286ed72e76d32d77c52c72 +b0276ec2609cd8a4cbd8c4dfd2c7e2d2c6e1d3c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d5c7e2d4c5e1 +d3c3dfd3c3dfd4c5e1d3c5e1d5c7e2d7cee6afa7bfafabb8c2c0c4d1d1ccd6d7cdd8d7ce +d4d2cec2bdc4aeaabacec6e1d4c9e3d2c6e1d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d1c9e4cecbe5cfcae5d5c7e2d8c5e0d8c5e0d7c5e0 +d4c6e1cecae5cacbe6cacce6d6cce5dcbddad599c4b54f8aae2466d32e7ae5327ddb2b71 +c92d7cb73582d283b7e4b8d5ddc4ded0c4e0d4cde6d3c8e2d0c3e0d5c7e2d5c7e2d3c9e3 +d2c9e3d3c9e3d5c7e2d4c6e1d6c5e0d4c6e1d0c7e3cec7e2d3c6e1d6c5e0d6c3ded6c4df +e8d1e5dfb5cdbb7589af4251a92425b02122c02625c62925b52423ba2423c62725ae2122 +9d1d21aa445bcf869deab5cbe9c5d9dbc6dcd5cee5d1cee7cbc9e4cec7e3d2c7e2d4c5e1 +d7c4dfd7c4dfd6c5e0d5c7e2d1c9e4d0cae4d1c9e4d4c9e3d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c6e1d3c6e1d4cae4d0cae4d3c8e2e6d3e7ba85b1a83475c1276cd52b74d52d77c92b75 +b5276ec05897daa3cadbc5dfd4c7e2d2c9e3d3cae4d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d5c7e2d4c5e1 +d3c4e0d3c3dfd4c5e1d3c5e1d5c7e2d8cfe7afa9c0b0acb9c3c1c4d1d1ccd6d7cdd8d7ce +d4d2cec2bdc4aeaabacec6e1d4c9e3d2c6e1d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d2c9e3d0c9e4d0c9e4d4c7e2d5c7e2d5c6e1d5c6e1 +d3c6e1d0c9e3cec9e4cdc8e4d6cae3dcc1dcdfaccfba6098a72568c82d75de2f7bdc2d76 +d02f7dbe2e7dc660a0e0a6cbe4c6ded2c3dfcfc9e4d0cae4cec7e3d4c6e1d4c6e1d4c6e1 +d3c6e1d3c7e2d3c7e2d4c5e1d6c3ded6c3ded1c3dfd2c7e2d5c7e2d7c5e0dcc6e0e5cae1 +e7bed5c17d8fa03644ac2729b72323bf2424c52725c72725bc2624b32423ad2222991d1e +a64253c68199e5b6ceefcfe2dcc7dcc8c0d7d0d0e7d1d3eac8cae4cac6e2d3c8e2d5c5e0 +d7c4dfd7c3dfd8c4dfd6c6e1d4c7e2d1c8e3d2c9e3d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c6e1d3c3dfd4c6e1cec8e3cfc7e2e1d0e6ba89b4a83978bc2669d22971d72c76cf2d77 +ba2671c15393dda5cbdec6e0d4c9e3d1cae4d1cae4d2c9e3d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d5c7e2d4c6e1 +d3c4e0d3c4e0d4c5e1d3c5e1d5c7e2d8cfe7afa9c0b0adbbc3c3c5d1d1ccd6d7cdd8d7ce +d4d2cec2bdc4aeaabacec6e1d4c9e3d2c6e1d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d3c8e2d3c8e2d2c7e2d3c8e2d3c8e2d3c6e1 +d3c6e1d3c7e2d2c7e2d0c6e2d6c7e2dbc4dee2b9d6c477abaa3174b9266fd42d78de307a +d52d7ccb317fbf3f87d88abbe8c0dad8c3decac5e1cbcce6cccce6d2c7e2d3c5e1d4c5e1 +d3c5e1d2c7e2d1c6e2d3c5e1d7c2ded9c1ddd3bfdcd9c7e1dac9e3dac6e0dfc3dee2b6cf +c78598a33842a32021b72423c52725c82625c62625c52625bd2624a51f20971e1f98343e +c48498dfb5cfe0c7dedecce2d1cae3c8cbe2cad1e8cbd2eac8cbe5cccae4d3c8e2d6c5e0 +d8c3dfd9c4dfd8c4dfd6c5e0d5c7e2d3c8e2d3c8e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c6e1 +d4c5e1d4c3dfd5c6e1cec9e4cdc8e2ddd0e6bd90b9a9417db82568d12a6fd62b74d22c76 +bd2972bf4f8fe0a6cbe3c9e1d4c9e3cecae5cecbe5d2c9e3d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d5c7e2d5c7e2 +d4c5e1d3c4e0d4c5e1d3c5e1d5c7e2d8cfe7afa9c0b1adbbc4c3c6d1d1ccd6d7cdd8d7ce +d4d2cec2bdc4aeaabacec6e1d4c9e3d2c6e1d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c6e1d4c6e1d4c6e1d1c7e2d0c9e3cfc8e3d0c7e3 +d3c7e2d4c5e1d4c5e1d4c5e1d8c7e1dbc5dfe1bfdad091bfb4508cae286ec92c74db307c +d92d7ad63181c12d79d468a7e7accee0c1dccbc2e0c7cbe6c9cfe8cfc8e3d2c6e1d2c5e1 +d2c6e1cfc6e2cdc6e2d1c6e1d6c1ded9c0dcdcc1dcdac1ddddc4dedfc3ddd9aec8bf7c8f +a13a47a42020b82323c12624c82625cc2826c92825c12624b12122971d1e9a3b43b57887 +d9b3cde2cce3d5c7e1cec8e3cbcde5c8cfe8c5cfe6c5cce5cacde6cfcae4d4c6e1d5c4e0 +d8c3dfdac3ded8c3dfd5c4e0d4c5e1d3c7e2d3c7e2d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c5e0d7c3dfd6c6e1cfcae4cccae4ded1e7c198bfab4983b7266acf296fd62a70d42c76 +be2971bb4789dfa4cae4c9e1d2c7e2cac9e4cacae5d2c9e3d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d5c7e2d6c7e2 +d6c7e1d4c5e1d4c6e1d3c5e1d5c7e2d8cee6afa9c0b0aebbc4c3c6d1d1ccd6d7cdd8d7ce +d4d2cec2bdc4aeaabacec6e1d4c9e3d2c6e1d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d5c7e2d6c5e0d4c5e1d0c7e3cdc9e4cccae5cec9e4 +d2c7e2d5c4e0d7c4dfd9c6e0d8c5e0d8c5e0dec1dcdcaacec472a8a62c70bc266fd42d7b +db2d78de3180cd2b78cd4891df8dbce8c2dbd3c4e0c2c8e5c5d0e9cdc9e4d0c6e2d1c5e1 +d0c7e2ccc8e4cacae5cdc8e3d6c3dedbc0dce1c3dde0bdd9deb8d7d7a9c4bc798e9b313f +9d1e1fc22725cb2825c82625c92725cd2a26c92825b52323a01e20a53a4ec08296d6b5cb +dac7e0d6cbe4d0cbe5cbcbe6c8cce7c3cbe5c2cbe4c7cbe5cccce5d1c9e3d5c7e1d7c5e0 +d8c4dfdac3ded8c3dfd5c4e0d4c5e1d3c7e2d3c7e2d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d5c4e0d7c3dfd7c6e0cecce6cacae4ddd0e7c59cc3ae4e87b5256ace296fd82a70d72b75 +be2670b74184dfa2c9e3c7dfd0c7e2c9cae5c9cbe6d0c9e4d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d5c7e2d6c7e2 +d6c7e2d5c6e1d5c7e2d3c5e1d4c6e1d7cee6afa9c0b0adbbc3c1c5d1d1ccd6d7cdd8d7ce +d4d2cec2bdc4aeaabacec6e1d4c9e3d2c6e1d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d5c7e2d6c6e1d7c4dfd6c5e0d0c7e3cbcae5cacae5cdc9e4 +d2c6e1d6c4dfd7c2dedbc6e0d7c3dfd5c4dfd8c0dde3bedad18fbea03274af256ccb2c77 +da2c74e22f7bda317eca3280d36face9c0daddc7e0c3c3e1c3cce7cbc9e4cec7e2cec7e2 +cdc8e4cacae5c7cbe6cac9e4d5c4dfddbfdbe0b9d7efc5dce8b1cebc748a9428389a1c1f +bd2724d12926ce2826d22b26cc2826c22625b12222961b1d8f1a2aca859cefcce1dfcce4 +d4c9e3cdc8e3cac7e3cac9e4cbcce6cbcee8cacde7cbcbe5cfcae4d3c9e3d6c7e1d9c5e0 +d9c4dfd8c4dfd7c4dfd6c5e0d4c6e1d3c7e2d3c7e2d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d6c4dfd9c3ded8c5e0cdcbe5cacae4dacde5c79cc4af5089b32468ce296fda2b71da2d78 +be2870b43f81dea1c8e3c7dfd2c7e2cacce6cacce7d0c9e4d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d6c7e1 +d6c7e1d4c5e1d4c5e1d3c5e1d4c6e1d8cee6b2abc2b3afbdc3c3c5d0cfcad6d7cddad9cf +d7d6d2bfbbc3a7a1b4cac1dcd4c9e3d3c7e2d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d5c6e1d7c4dfd6c5e0d0c9e3cbcae5cacae5cdc9e4 +d2c6e1d6c4dfd7c2dedbc7e1d2bddbd6c6e1dbcae3e3c6dfdfadcfc473a9a62c71b9256e +d62b74e7337ce63381cc2b75be3781ca77b0dfb9d7d2c6e1cdcfe8cac6e2d0cbe5cdc9e4 +c7c7e4c7cbe6cdd4ecd0d0e8d2c1dedfc0dbf2cadfeab0c7c66f84a72f40a92021b62323 +be2424d52d26d62c26d42b26c42625aa1f21951c1d95303fb3788fdfbfd9e5d0e5d3c3df +cfc4e0cfc6e1cdc6e2cdc6e2cdc6e2cec8e3cfc9e4d1c7e1d4c6e1d6c6e1d8c6e0d9c5e0 +d9c5e0d8c4dfd6c5e0d4c6e1d3c7e2d1c6e2d1c6e2d3c7e2d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d5c3dfd8c0ddd6c4dfd3d1e8c8c4e1e0cce3ba87b3a13976ae2264cd2a6fdf2e77d32a6f +b7266dc55e9be3abcee6cce2d1c6e2c1c3e1cbcde7d0c9e3d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d6c7e1 +d6c7e1d4c5e1d4c5e1d3c5e1d4c6e1d8cfe7b0aac1b3afbcc4c3c6d0cfcad6d7cddad9cf +d7d6d2c0bcc4a8a2b4cac1dcd4c9e3d3c8e2d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c5e1d7c4dfd6c5e0d0c9e3cccae5cbcae5cec9e4 +d2c6e1d6c4dfd7c2ded9c5e0d4c1ded4c6e1d6c6e1dec5dfdfb6d5d08fbeb04d8cab266b +d62d79df2d75e12e78d62b7ac73382c55b9fdaa0c8e8cfe4cac1dfd2cbe5c4bfdfc5c2e1 +cfcfe8ced0e9c5c8e2cec9e2ead4e6f2cde0d39cafae5b6ba6323db02329b92223c72725 +d62e26c12424c62625c52725b121229e2020a33f4bbe8196d5b8d2d6cae3d5c7e2d6c9e3 +d1c6e1d0c5e1d0c5e1d0c5e1d0c5e1d3c7e2d4c6e1d4c6e1d6c6e1d8c6e0d8c5e0d8c5e0 +d8c5e0d6c5e0d4c6e1d4c6e1d2c7e2d1c7e2d1c7e2d3c7e2d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d6c5e0dcc6e0d8c6e1d0cee7c7c1dee6cfe4bb80aea03573b4266bcf2a72d92c6fd22a6f +b52870c3629ee2adcfe1c6dfd1c6e2c7c9e5cacce6d0c9e3d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d6c7e1 +d6c7e1d4c5e1d4c5e1d3c5e1d4c6e1d7cee6b0a9c1b1adbbc3c3c5d0cfcad6d6cddad9cf +d6d5d0c2bdc4a9a3b4cac2dcd4c9e3d3c8e2d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d5c4e0d5c6e1d1c7e2cfc9e4cec9e4d0c7e3 +d3c6e1d5c4dfd6c3ded4c1ded7c6e0d4c5e1d2c3dfdac3dee2c0dbdcaacec277ada22e72 +ca2f76d92c74de2d75dc317ecf3181c23e8cce78b1ebc2dbd6bfdcd5c7e2cac2e0cdc8e4 +d0cee7cecae3cbc3d9decbe0efcce0dea8baae5e6a99272aa02020b82323ca2826cd2826 +ce2926c82725bd2424a31e209f2522b04e5bc7879bd9b5cfdacbe4d1cae4cfc6e2d4c9e3 +d3c6e1d2c3dfd3c3dfd3c3dfd3c4e0d5c4dfd5c4e0d5c4e0d6c5e0d7c4dfd6c5e0d6c5e0 +d6c5e0d6c6e1d4c6e1d3c7e2d1c7e2d1c7e2d1c7e2d3c7e2d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d6c5e0dac5dfd5c4e0cccae5cac1ddebd2e5b977a59f2c6db8276cce2970d62b6cd22b74 +b22a72c46ea6e2b2d2ddc4ded0c6e2cdcee7c8c8e4d0c9e3d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d5c7e2 +d5c6e1d4c5e1d4c5e1d3c5e1d4c6e1d7cee6afa8c0b0adbbc3c1c5d0cfcad5d5ccd9d8cf +d6d5d0c3bec5aba5b6cbc2dcd4cae4d3c8e2d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c7e2d1c7e2d1c6e2d2c7e2 +d3c5e1d4c5e0d5c4dfcfbedcd8c9e3d3c4e0d2c3dfd8c3dedfc3dde3bed9d59dc7a94b88 +b6276ad32e77dc3079dc2f7dd22f7fc62f81c54e99dd9ac4e5c1dbd8c0dcd7cbe4d4cae4 +d0c5ded4c4dbe6cbddebc5d7cf99acb363729e2d32a72522b02322be2524cd2a26cd2926 +c02424c62725ad2022921a1ca54855cc8ea2e0bdd5dac8e2cfc5e1cec8e3d1cae4cec6e2 +d1c3e0d3c4e0d4c3dfd4c3dfd6c2ded7c3dfd8c3dfd7c4dfd6c5e0d6c5e0d6c5e0d5c6e1 +d4c6e1d4c6e1d4c6e1d3c7e2d3c7e2d3c7e2d3c7e2d3c7e2d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d3c4e0d5c2ded3c3dfccc8e4d4c6e0eed4e6b86da09f2669ba256ccc2a6ed72a6fd22d78 +a82b6fcd83b5e3bad7dac3ded0c5e1d0cde6c8c6e3d0c7e3d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d5c7e2 +d5c6e1d4c5e1d4c6e1d3c5e1d4c6e1d6cde6afa7bfb0acb9c3c1c5d1d0ccd4d4ccd8d7ce +d6d5d0c3bec5ada6b7ccc3ded5cae4d4c7e2d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c7e2d3c8e2d4c6e1d4c6e1d4c6e1d4c6e1d4c5e1 +d4c5e1d4c5e1d3c5e1ccbeddd7cbe4d4c5e1d5c4e0d8c3dfdcc2dde0c3dddfb9d7b975a8 +a32566c52f74d52e7bd92e7cd62e7ece2d7ec73487ce65a7e5b0d0dfbcd9e0cbe2d8c6e0 +d6c0d8e6c6daf4c8d9de9eb0a44e619a2835a72121ba2724c12725bf2624c32725c72825 +ba2324a721219b1d20a34555bb8296d6b6cfe1cfe5d5cae4cbc0ded0c6e2d2cae4cdc5e1 +cfc4e0d4c5e0d5c4dfd6c4dfd7c3dfd8c3dfd8c3dfd6c4dfd5c4e0d5c6e1d4c6e1d4c6e1 +d4c6e1d3c7e2d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c5e1d2c3dfd4c5e1cec9e4dfcee5edcce1b96299a72569be286fcd2a6ed82b72ce2d78 +972565d699c4e4c2dcd8c4dfd0c5e1d0cbe5cbc6e3d1c7e2d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d5c6e1 +d4c5e1d4c5e1d4c6e1d3c5e1d4c6e1d6cde6aea7bdaeaab7c3c1c4d1d0ccd4d4ccd8d7ce +d6d5d0c4c0c7ada8b9cdc4dfd6cbe4d4c7e2d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d3c7e2d2c7e2d0c9e3d2c7e2d4c5e1d5c4e0d5c4e0d5c4e0 +d4c5e1d1c6e1cfc6e2c9c2dfd4cae4d4c6e1d8c7e1d7c3dfd7bfdcd9c3deddc7e0cfa1c9 +a73e79ad2568c62b74d52e7edd2f80db2f80d32f84c73d8ed47cb3e4b4d3e3c5dee0c5dd +e9c5d9f1c0d2e6a1b3c05c6f931b25a52023ba2323c52725c52725ba2423b12222bc2724 +b123228a191a9e3b4cc88da4d1b5d0d0c4dfd0cae4d1cae4d4c5e1d3c4e0d0c6e2d0c9e3 +d3c7e2d4c6e1d5c6e0d6c5e0d6c5e0d6c5e0d6c4dfd5c4e0d4c5e1d3c5e1d2c7e2d1c6e2 +d1c6e2d2c7e2d4c6e1d4c6e1d5c4e0d5c4e0d4c5e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c7e2cec8e3e5d1e6e5b0d1b7518ead266ac52b73cf296fd62a71c52970 +8b2160dfaccfe3c8e0d7c6e0d1c6e1d0c9e3d0c9e3d3c7e2d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c5e1d4c5e1d4c6e1d3c5e1d4c6e1d6cde5aea5bdada9b7c2c0c4d1d0ccd4d4cbd7d6cd +d6d5d0c5c0c7afa9bacec6e1d6cce5d4c7e2d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d3c7e2d1c7e2cfc9e4d0c9e3d5c6e1d7c3dfd8c3dfd6c3de +d3c4e0d0c7e2cdc8e4cac5e2d0c9e3d5c8e2d8c7e1d7c2ded4bfdcd3c1ded6c9e3ddc0dc +bd6e9f9f2a66b6266bd22f7ee23384e63182e43488d13186b83d88dc9cc6e8bed9f4d0e1 +f6c7d9e299abc2556aa72231a71e21ba2324c72525d22826c92725b82323ae2122aa2221 +961c1e9d3c4cc6879dddbcd6d7cbe4cdc9e4cac9e4cdc8e4d1c5e1d0c0ded3c5e0d7cbe4 +d5cae3d4c8e1d5c8e2d5c7e1d5c6e0d5c6e1d4c5e0d4c5e1d3c6e1d1c6e2d0c7e2cfc7e2 +d0c7e3d1c7e2d4c6e1d5c4e0d7c4dfd7c4dfd5c4e0d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d3c9e3d1c8e3cac3e0e6cfe4ca83b5ac3679b12468c62b72cf296fd22a6eba2566 +8f2e6be0b8d6e1c9e1d5c6e0d3c7e2d3c8e2d3c9e3d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c5e1d4c5e1d4c6e1d3c5e1d4c6e1d5cce5ada5bcada8b7c2c0c4d2d2cdd4d4cbd7d6cd +d6d5d0c6c1c8afaabacfc6e1d7cce5d4c7e2d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d3c7e2d0c7e3cccbe5cfc9e3d5c4e0d9c3dedac1ddd8c3de +d4c5e1cec7e2cbc9e4cbc9e4cec7e2d6c7e2d6c2ded7c0ddd8c4dfd4c5e1cac3e1decce4 +daa0c8b34e86b0296fc92d79e13282ea3284ea3386dd3185b52775c06ba1e5b1d1f6cade +e3a5babb566ea41e29b12022c3262ac62425cf2826de2f25d32a26bf2424b022229a1f1f +903437d6a4b2eacbe0d8c5e0d2c7e2d3cde6d0cbe5c8c4e1c4bfdecdc3e0d9c8e1ddc9e0 +d7cae0d2cae0d1cae3d2cae3d4c8e2d4c6e1d4c6e1d1c6e2d0c7e2cec7e2cdc6e2cdc6e2 +cdc8e3d0c7e3d4c6e1d5c4e0d8c3dfd9c4dfd6c4dfd4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c7e2 +d2c7e2d0c7e3cfc7e2c9c2e0e9cfe3ab5892a02467b6266ac6286fcd2a6dd22a6db62364 +a8548be0bfdbdcc9e2d1c4e0d4c7e2d6cbe4d3c5e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c7e2 +d4c6e1d4c6e1d4c7e2d2c7e2d2c9e3d4cde6aca5bbaca8b5bfc1c6ccd3d2ced7d3cfd7d3 +d0d6d4c7c1c5b3aab9d0c7e0d7cce5d4c7e2d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d3c7e2d0c7e3cec9e4d0c9e3d6c5e0d8c4dfd9c3ded8c3df +d4c5e1cfc7e2cccae4cdcbe6cec7e3d6c9e3d2bfdcd5c0dddacae3d7cce5c3bfdfd8cce5 +e6c1dbd590beac4483ae2770ce2e7ee73586e6307be43280d73583b03773dd88afe695af +c25d73a62330b92125cb2628c02424cd2726d62b26cb2726c62625b82323981d1e922e30 +d19ba3f1d7e5dbcde4d7cae4d0c7e2c9c4e1c7c4e2cacae5d0cfe8d3cce5dac7e0dac6df +d6c8dfd2cae1d0cbe3d0cbe4d1c8e2d2c7e2d1c7e2d0c7e3cec7e2cdc8e3cdc8e3cdc8e3 +cec7e2d1c6e2d4c6e1d5c4e0d8c4dfd8c3dfd5c4e0d3c7e2d1c7e2d1c7e2d2c7e2d2c7e2 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d0c7e2cfc8e3d3cce5d5c7e2f3d8e8a24781a72569c12a73c9296fcd2a6dce2970b3266b +c37faedec5dfd7cbe4cdc4e0d3c9e3dccde5d0c0ded4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c7e2d3cae4 +d1cae4cfc7e2cdc5e1c8c1dfd0cce6d5d2e9b0aabcb6b4bcbac2c7bdd0d4c4dddfbfdade +c8d7dbc3bbbcc3b3bcd2c6ded3c8e2d1c6e1d3c7e2d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d3c7e2d2c7e2d1c7e2d1c7e2d4c6e1d4c5e1d5c6e1d4c5e1 +d4c6e1d0c7e3d0c9e3d0c9e3d0c9e3d4c7e2d4c6e1d4c5e1d5c7e2d4c7e2cfc7e2d4c7e2 +e1c9e1d9b5d5c088b9a84d8dae2975cd2c79ea3588ec3a8ce6317acc2f6abe2f5eaf2941 +ae222ab72223c12424c62625b82423c32d24bf2524c32625ae2222951c1d9d3c44d097a1 +f1cedadcc7dbd6c8e0d3c8e2d0c7e3cdc8e4cacae5c9cae5cacae5cec8e3d4c5e1d5c4e0 +d4c6e1d1c8e2d0c9e3d0c9e3d0c9e3d1c7e2d1c7e2d1c7e2d1c7e2d1c7e2d1c7e2d1c6e2 +d2c7e2d3c5e1d4c5e1d5c4e0d5c4e0d5c4e0d3c7e2cec9e4cccae5cecae5cfc9e4d1c8e3 +d3c7e2d4c6e1d5c6e1d4c5e0d3c4e0d4c3dfd5c4dfd5c4dfd6c5e0d6c6e1d5c6e1d4c6e1 +d0c7e3cac6e2d7cfe7e3cde3ca95c1a93e80ad256ac1276ccd2a6fca296fbc266b9a205d +e4afd0dcc7e0d0c8e2cbc7e2d4cde6dccde5d2c1ded4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d2c7e2d1c9e4 +d0c9e3d0cae4d1cae4cac5e2cdcbe6d0cee7a69dafaea5acbfc1c6c9d9dfc8e0e7c1dae3 +c9d9dfc3b3b3bea6adcbbcd5d1c6e1d0c6e2d3c7e2d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c7e2d2c7e2d2c7e2d3c7e2d3c7e2d3c6e1d3c7e2 +d2c7e2d2c7e2d1c7e2d1c7e2d2c7e2d2c7e2d3c8e2d3c8e2d3c8e2d2c7e2d2c7e2d4c6e1 +d4c3dfddc7e0d1b4d6b67eb2aa4186bc2876dc3081ed3c8aeb3a7fc6255bb42246ac1f2d +b52327c72627cd2826ce2a26b32223ad2322b42423a12020901b1c973d48bd8591dfc0cd +e7d3e4d9c8dfd6c5e0d5c6e0d4c6e1d0c9e3cbcbe5c9cbe6cacae5cec7e2d3c4e0d4c3df +d4c5e1d1c7e2d0c9e3d0c9e3d0c9e3d1c7e2d1c7e2d2c7e2d2c7e2d2c7e2d3c7e2d4c6e1 +d4c6e1d4c6e1d4c5e1d4c5e1d5c4e0d4c5e1d2c7e2cfc9e3cecae4cfc8e3d0c9e3d2c7e2 +d3c7e2d4c6e1d4c6e1d4c6e1d3c4e0d3c4e0d5c4e0d5c4e0d6c5e0d6c5e0d4c5e1d4c5e1 +d2c9e3d1cbe5d4c6e1e8c9e0a85992a72e73b7266dc5276cca296dc92b72b32569a03473 +e4b9d6dfcce4d0cbe5c7c8e3cec6e1d7c6e1d4c3dfd4c5e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c7e2d2c9e3 +d1c8e3d2c9e4d2c9e4c9c4e1ccc8e4d9d1e8b09cacbca5aaccbec1d0cdd2cbcfd7c8ced9 +d8d5ded6b8b8c6a4abd3bfd7d4c9e3d1c7e2d3c7e2d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2 +d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d4c5e1 +d1bcdae2cce3e0c9e1caa2cbb1619fad2e79ba2570d3307bde4784c54875ba4966ad3849 +ac282eb32423be2624cd2826bc2624b02522a320209622299e4c5ab98997d1bbc8d6ccde +d3cee4dac9e2d9c1dddbc1ddd9c4dfd4c6e1cccae5c9cbe6cacae5d0c7e2d6c1ded9c0dc +d5c4dfd2c7e2d0c9e3d0c7e3d0c7e3d1c7e2d1c7e2d2c7e2d2c7e2d3c7e2d4c6e1d4c6e1 +d4c6e1d4c6e1d4c5e1d4c5e1d5c6e1d5c6e1d4c5e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d3c7e2d2c7e2d2c7e2d3c9e3d3c9e3d4c6e1d4c6e1d4c6e1d3c4e0d3c4e0d3c3df +d3c5e1d4c9e3d8c4dfe1b2d2973173ab266dc12973ca296fc8286bc1286fa8276bb8649a +e2c1dcdbd0e7cdcde6c7c8e3cdc4e0d6c3dfd5c1ddd4c5e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d5c9e3 +d4c7e2d3c7e2d2c7e2cac1dfcec7e2e4d6e9b99aa8c49ea3d8b6bae1c5cbe1cbd3e0cbd8 +edd4dce3b2b3c99ca3d8bfd8d6c9e3d0c6e2d3c7e2d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2 +d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d5c6e1 +d8bfdcdec5dfddc8e1d3b6d7c088bba94c8c9f296db43576ce6493d78da9da9eadce8b93 +c3686ab63e3db52423c62725bc2624ab2221971f24a95469c795aad8c3d4d5d0e3c8cce3 +c7c9e3d7c6e0dbc1dddec0dcdcc1dcd5c4e0d0c9e3cbcbe5cccae5d1c6e2d9c0dcdbc0dc +d6c3ded3c7e2d0c9e3d1c7e2d1c7e2d1c7e2d1c7e2d2c7e2d2c7e2d3c7e2d4c6e1d4c6e1 +d4c6e1d4c6e1d4c5e1d4c5e1d4c5e1d4c5e0d6c4dfd8c3dfd8c3dfd8c4dfd5c4e0d5c6e1 +d4c6e1d2c7e2d0c9e3d0c9e4d0cae4d0cae4d0c9e4d0c7e3d1c6e2d2c5e1d3c5e1d2c4e0 +d2c3dfd5c3dfe5c5ddc880b39f2a6fb4256bc82b73ce2a73c82970b6266ca13071d699c4 +e1cbe2d1cee6c7cae5cacae5d4c9e3d8c4dfd5c0dcd5c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d6c7e1 +d5c6e1d3c4e0d3c6e1cfc4e1d1c6e1e9d5e7af7f8db27779d2989aefb7bcf5c1caf3c1cd +eebac2cf8c8db57880d3b4ced6c9e3d1c8e3d3c7e2d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2 +d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c6e1d4c5e0 +dec5dfd5bbdad2bfddd4c3dfceadd1b77caba05086ae5b8ad395b4dfc0ceedd9dcf0d1cd +e6b0aed17778ba3437b52323aa1f219e1f1fa84e60c893aadfc4dbdfd2e8cdcbe4c4c8e4 +c6c6e3cec0ded7c5e0d9c2ded9c3ded5c4e0d3c7e2d0c9e3d0c9e3d2c7e2d5c4dfd7c4df +d5c6e1d2c7e2d0c7e3d1c7e2d1c7e2d1c7e2d1c7e2d2c7e2d2c7e2d3c7e2d4c6e1d4c6e1 +d4c6e1d4c6e1d4c5e1d4c5e1d4c5e1d6c5e0d8c4dfdac2dddac1dddac3ded8c3dfd5c4df +d5c6e1d3c7e2d0c7e3cfc8e3cec9e4cec9e4cec9e4cec8e3d0c7e3d0c7e3d1c7e2d3c6e1 +d5c4e0dfc2dde5b5d3aa4583b12a71bd2768ca296dd02b75c52b74ad286eaa4e88e8c2db +d8cde6c8cbe5c2c8e3cdcde6d8cde5d9c4dfd7bfdcd5c4e0d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d6c5e0 +d4c3dfd2c3dfd6c9e3d5cae3d4c6e1e9d0e49557638b3232b35856d77f84e69199e18e9b +cc7883a7464495434acca9c3dacde5d3cae4d2c7e2d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2 +d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c6e1d3c4e0 +dcc6e0d1bddbccc3e0d1cae4d3c4e0c5a7cab28cafbf97b4dfc8d8c6cdceceddd6dee0d6 +ebd1cade9fa1b84b529b1e1f961b1da83542d79bb0dec0dad9c8e1d3c6e1ccc4e1cdc6e2 +cbc6e2c9c3e0d0c6e2d2c6e1d4c5e1d4c5e1d5c6e0d4c6e0d3c7e2d1c7e2cfc8e3cfc9e4 +d0c9e3d1c7e2d1c7e2d1c7e2d1c7e2d2c7e2d2c7e2d2c7e2d2c7e2d3c7e2d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d5c6e1d7c4dfdac3dedac1ddd9c1ddd8c3dfd7c4df +d5c4e0d4c5e1d3c7e2d0c7e2cec7e2cec7e3cdc8e4cdc8e4cdc9e4cecae5cfcae4d2c9e3 +dcc7e0e6bdd8ce84b49e2465b9256cc62767ce286acc2b71b9276ea83073c280b0edd5e7 +cac8e3c3cde7c6cce7cdcbe5d3c7e2d5c0ddd8c3ded5c4e0d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d7c6e1 +d4c2ded1c0ded4c7e2d3c9e3d3c6e1f0d3e5974c568a1d1b971f1ea92828b5343aaf313d +a5283297201f93333ad5aec7dbcee6d0c9e4d2c7e2d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2 +d2c7e2d2c7e2d2c6e1d2c6e1d2c6e1d2c6e1d2c6e1d2c6e1d2c6e1d2c6e1d2c6e1d4c5e1 +d2c1ded4c7e2cfcfe8c8cee7c4c4dcc1b7cec2b3c9cfc0cfdbdbe0c4dcd6bad9cdc6d8cc +e1d7cfe2b6b7b9616c921a259b202cd2798bf1c9dde4cfe5d6c7e2d3c7e2d0c5e1c8bfde +cfc8e3d6d0e8c6c0dfccc5e2d0c7e3d2c7e2d4c6e1d3c8e2d1c7e1cfc9e4cccbe5cacae5 +cdc9e4d0c7e3d1c7e2d1c7e2d1c7e2d2c7e2d2c7e2d2c7e2d2c7e2d3c7e2d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c5e1d5c4e0d7c4dfd6c3ded6c2ded7c4dfd5c4df +d5c4e0d4c5e1d4c5e1d2c5e1cfc4e1d0c6e2cdc6e2cdc8e4cccae4cdcae5cdcbe5d3cae4 +dbbfdbd99cc5a33875b02467c12768d22b73d42c76c0276ba32261a64480dfb2d3e3d4e8 +bdbfddc8d1e9ced1e9cdc9e4cabeddd0bcdbd9c7e1d4c5e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d7c7e1 +d4c2ded0bfddd0c5e1d0c7e3cec4e0f7deeba7565ba52e27b02823b32123b42023ae2022 +b02223af2b25a43e42dbb2cad4c9e3c7c2e0d2c7e2d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2 +d2c6e1d2c6e1d1c6e1d1c6e1d1c6e1d1c6e1d1c6e1d1c6e1d2c6e1d2c6e1d2c7e2d1c7e2 +cac5e1cbcee7c1d1e6b4c7d8b0bbcab8b8c6c7c0ccd4cbd2d1d2d1c5ddd4b9d7c9bdd0c3 +cecbc3ccabab9e58636e0e1663100f934159b786a5ccb0d1dbcbe3ddd2e8cec8e3c3bede +cec9e4d7cee6cabfdecdc4e0d0c7e3cec9e4cbcbe4cacee6cacce5cacce6cec9e4cfc8e3 +d0c7e3d1c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c6e1d1c6e2d1c6e2d1c6e1d3c5e1d4c5e1 +d3c4e0d4c5e0d5c4e0d5c4e0d4c4e0d3c4e0d3c5e1d1c7e2d0c7e3cfc8e3cdcae5d4c6e1 +d1a7cdb458909b1e55c3286ece2970d62c77d02e77b123669f2f6ebd77a9e8cee3d4cde6 +bdc1e0cacee8cecde7ccc7e3cbc0decfc2dfd5c7e2d3c5e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d5c6e1 +d1c0decfc2dfd3cce5d2cce6cac2e0f4d5e69d44469b1e1fb52423c82625cc2626c92526 +c32525ad2122911d1dd3a7bedcd2e8d0cde6d1c7e2d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d2c7e2d2c7e2d2c7e2d2c7e2d2c6e1d2c6e1 +d1c6e1d1c6e1d1c6e1d1c6e1d1c6e1d1c6e1d1c6e1d2c6e1d2c6e1d2c7e2d2c7e2cfc9e4 +cacee5bdcadeadc4d1a8bec9b0bec8c2c3ccd3ccd3dcd2d6d8d8d4c6d7cec3d7ccbdc9bf +b6b2aca284877d3d4c640f234e10105f0d2b621e499e749ac9acd0d0bedcd1c3dfdcd1e8 +d3cae4c4b7d9d7cbe4d3c8e3d0c9e3cccbe5c8cce6c5cee5c8cde6cbcbe5d0c7e3d3c7e2 +d4c6e1d3c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d2c7e2d0c7e3cdc8e4ccc9e4ccc9e4cdc8e3d0c7e3 +d1c6e2d3c6e1d4c6e1d4c6e1d6c6e1d6c5e0d6c5e0d5c4dfd5c4dfd4c4e0d3c4e0dac0dc +ce91bf9f2868bc296ebf2661d42e77c32867b12162a02668b35f96e5bad6e0cee4cfc9e4 +cbc9e4cac5e2c5bfdecec5e1d5cee6d3cce6c9c3e0d2c7e2d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c3df +d2c4e0d0c7e2cac7e3cbc9e4ccc7e2f2d2e3a3464ba12020bc2324cf2826d42a26cf2726 +c92626b422229f2b29d6afc3d8d1e8cccbe5d0c7e3d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d2c7e2d2c7e2d2c7e2d2c7e2d2c6e1d1c6e1 +d1c6e1d1c6e1d1c6e1cfc4e0d1c6e1d3c8e2d3c8e3d3c8e2d1c5e1d0c5e1d2c7e2d1cce5 +c4cbddb2c2cca8bdc4b0c2c6c3cbd0d6d2d7ded0d5e1d0d2ded2d0c9cbc5c0c7bfb3b2ac +9a8d8b7452595918294c10184d101d5b0e2d530f2b6c2752955e88bd95bedabbd9e0c9e1 +d5c0ddcebcdbd5c7e2cfc4e0cec7e2cecde7cdcfe7cacde6cacae4cfc6e2d3c4e0d2c3df +d3c4e0d3c5e1d2c5e1d2c5e1d2c5e1d2c5e1d1c5e1d2c5e1d2c5e1d3c6e1d4c7e2d4c7e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d1c7e2d0c9e4cdcbe5cbcae5cacae5c9c9e5cacae5 +cacae5cbcae5cdcae5d0c9e3d2c6e1d5c7e2dac7e1d8bfdcdcbedae4c3ddd7b2d3b77db0 +9e3c7aa5225eca2d74ca2a6fc22869b42366ab2a6fad4d89c98dbce5cae1d5c8e2d0c9e3 +d2c7e2d2c4e0d1c3e0d1c5e1cfcae4cacbe6c8c9e5d0c7e3d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c5e1d1c3e0 +d1c6e1cec8e3c7c7e3cacbe6cdcae5f3d5e5a74d50a72221c12424d22a26d62b26d42a26 +cb2626b52423a22d29d7afc2d4cfe8cacae5d0c7e3d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d2c7e2d2c7e2d2c7e2d2c7e2d2c6e1d1c6e1 +d1c6e1d1c6e1d1c6e1d3c8e3d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c9e3cfcae2 +bac0cbb6c0c6b8c4c7c0caccced0d2dbd3d6e1d1d2e1cccedbcbcbc7c0beb9b6b2a19797 +786469552c3a4a1123541128570f2c511023620b2b72123c842458a24e81c682b0e2afd0 +e7c0daddbfdbd9c5e0d5c7e2d1c8e2cecae4cac8e3cac7e2cfc7e2d3cae4d4c9e3d1c5e1 +d3c5e1d4c6e1d4c6e1d4c7e2d4c7e2d4c7e2d5c9e3d5c9e3d5c9e3d4c7e2d4c6e1d3c7e2 +d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d1c6e2cec7e2cac5e1c6c3e1c5c5e2c7c9e5cacee8 +cad0e9c7cee8c5cbe6c8c8e4d0c9e3dacce4dac1dddebad8e7bed9dfa8ccc079b0a24283 +a1276cbe296fc6286ac5296fba276ba42465a13676b46fa2d3add1e3cfe5d3c7e2d1c7e2 +d5c4e0d5c3dfd4c3dfd3c5e1ccc9e4c5cbe7c5cbe7cfc8e3d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d1c4e0 +d1c6e2cdc9e4c6c8e4cacce7cccbe5f3d6e6a84e53a82221c12424d12826d62b26d42a26 +cc2726b52223a02b27d6acc1d4cfe7cacae5d0c7e3d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d2c7e2d2c7e2d2c7e2d2c6e1d1c6e1d1c6e1 +d1c6e1d1c6e1d1c6e1d6cbe4d2c7e2d0c5e1d0c5e1d3c9e3d4cae3d3c9e3cec6dfc7c2d6 +b9b7bfc2c2c5caccccd0d0d1d7d3d3dcd2d3dfcfd2dac8cacdbdbeb1a9aab0a9aca7999f +89717d643b4f4f122f51102c540f2e5a0c25781132911841a52258b83471c34c88cd67a1 +dd8ebde5b3d2e0c0dbd9c7e1d6cbe3d3cae4d2c7e1d1c6e1d4c7e2d3cce6cbcbe6c6c6e3 +cbc6e2d1c6e1d4c5e1d4c6e1d3c5e1d3c5e1d3c5e1d3c6e1d3c6e1d2c6e1d2c7e2d2c7e2 +d2c7e2d1c6e2d1c6e2d1c6e2d1c6e2d2c7e2d3c7e2d5c7e2cfc4e0c8c2e0c6c6e3c4cce7 +c5d0e9c3d0eac2cfe9c5cbe6ccc8e4d7c8e2e1c2dde8bad6e1a0c8c76ba8ad3e82a6276f +b6276ec82c74c22767ba266aaa2569992d6daa5d94c99cc6d8c3dfd6cae3d2c7e2d4c5e1 +d7c2ded9c1ddd7c3dfd3c5e0cbc9e4c3cde7c3cce7cec9e4d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c5e1 +d3c9e3cecae5c7c9e5cacce7cbcae5f0d4e6a54a54a42221be2424cf2826d62a26d32a26 +cb2726b52423a02a27d6acc1d5cee7cacae5d0c7e3d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d2c7e2d2c7e2d2c7e2d2c6e1d1c6e1d1c6e1 +d1c6e1d1c6e1d1c6e1d3c8e2d1c5e1d0c5e1d2c7e2d4cae3d3cae3cec6dec5bed3bfb8c6 +c2b9bdcec6c5d7cfcedbd3d2dcd3d3dcd0d3d9cbcfcbbdc1b7acb1a0979fb2a9b2c3b6c1 +bca6b69d7b91713e5c4f0f314a0e28690d3191183eba285cd63877de3d80d4317ac83079 +cc4d91d582b6d89ec7dab6d6dbc4dfdcc9e2ddc8e1d9c6e0d3c3dfcdc8e4c1cce8bfcce7 +c8c8e4d0c6e2d4c5e1d4c5e1d2c4e0d1c3e0d1c3e0d0c3e0cfc4e0d1c5e1d2c7e2d2c7e2 +d2c7e2d2c7e2d1c7e2d1c7e2d1c7e2d3c7e2d7c8e2dcc8e1d9c6e1d4c6e1cec7e3c3c9e5 +bfcae6becce7c2cde8cacee8d0c7e2d4bfdce5bdd9e4a5cac666a2b03479ad256bba256e +c32970c3286dc0286daa2465962565a2528bc596c2dbc4ded8cce4cac1dfd3c6e1d5c4e0 +d9c0dcdac0dcd7c2ded3c5e0cacae5c3cde7c4cde7cec9e4d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4cae4d0cbe5c8c9e5cacbe6cac7e3edd1e4a24756a02020bc2324ce2826d42a26d22a26 +cb2726b52423a22a28d9acc3d9cfe7cdcae5d1c6e2d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d2c7e2d2c7e2d2c6e1d1c6e1d1c6e1d1c6e1 +d1c6e1d1c6e1d1c6e1ccc2dfd0c5e1d3c9e3d4cbe4d2cae3cdc5dbc5bed1beb8c7bdb4bd +d2c7c7d8cbcadbd0cddcd0d0dbd1d2d6ccd1cbc2c8b8b0b9a69eaba9a2b2bdb5c5d6cadd +e4d1e5d5bbd3aa82a0733a6155143a6f103ba82156da3a78ed4789ec4288e4347fda2e7b +cf327ec24388c1609ad189b9dba5cbe1b9d6e6c4dde0c5dfd5c2decdc5e1c5cce7c6d0ea +cdcce6d3c8e2d5c7e2d5c7e2d5c7e2d5c7e2d5c7e2d4c6e1d4c7e2d3c8e2d3c8e2d3c8e2 +d2c7e2d2c7e2d2c9e3d2c9e3d1c8e3d4c7e2d4c3dfd7bedbdac3dedbc9e2d7cbe4cec9e4 +c8c7e3c7c7e3cbc7e2d4c6e1d8c1ddd7afd2d69ac4c76aa4b03379ad2365bd2669c92b72 +c92a72be276bb82971962160953976bd87b6dbc0dcded0e6d1cae4c9c3e0d4c5e1d4c3df +d9c1ddd9c1ddd5c3dfd3c6e1cccae4c7cde7c8cbe6d0c9e3d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4cae4d2cbe5cac8e4cccae5cec6e2eed0e4a3475ba22020b82323c92725cf2826cd2826 +c72725b42222a22928dba9c3dbcde5d0c9e3d2c7e2d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d2c7e2d2c7e2d2c6e1d1c6e1d1c6e1d1c6e1 +d1c6e1d1c6e1d1c6e1ccc2dfd3c8e2d6cde5d5cce4ccc5dbc5bdcebfb8c6c0b9c4c6bfc3 +ddd2d1dcd1cddccfcfdbd0d2d5cbd0c6c0c7b3aebba6a4b4a5a4b8c8c6ddc9c3dccfc3dd +ddcde4e7d2e6dcc1dcb892b585517b7b1d52b72c6bcf2b6ce03178eb3c89e93c8ce23081 +dc2f81d53485bb2875bc4084c6649ed68bbbe4adcfe8c2dbe6cce2decce4d3cae4cec6e2 +d0c6e2d4c5e1d4c5e1d4c5e1d4c5e1d5c7e2d4c6e1d4c7e2d4c7e2d3c7e2d2c7e2d1c6e2 +d1c7e2d1c7e2d1c7e2d1c7e2d0c7e3d2c7e2d4c3dfd7bddbd7bcdad7bedbd5c0dcd5c2de +d7c4dfdbc6e0e0c6dfe0bdd9d9a9cdd492c0b4558f9f2567b62870c32b74c8286cc82769 +c5296fba28719e2465902d6cb275a5d5b7d7d9cae3cec7e2ccc7e3d7cee6d4c5e1d4c3df +d6c2ded5c3dfd4c5e0d3c7e2d0c9e3cccbe5cdcae5d1c7e2d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c6e1 +d4c7e1d3cae4ccc7e3cfcbe5d3c8e3f1d3e5aa4e68a72328b72323c22425c92725c82625 +c22625b021229f2625dba5c0dbcae3d0c6e2d3c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d2c7e2d2c6e1d1c6e1d1c6e1d1c6e1d1c6e1 +d1c6e1d1c6e1d1c6e1d3c9e3d7cde6d5cbe4cec6ddc5bdcebfb8c5c0bbc4ccc5cad7d1d2 +dad6d2d8d3d0d9d2d1d5cfd1c6c2c9b0adbaa19fb1a3a4bbb8b9d4d5cfe7d3cae4cdc2df +cec0ded6c7e1e3d1e6e2cae2c6a4c8b06d9d9e2868b62367c6286fd12b75df3081eb3990 +e73386d72d7adf388bc72c78be2e7ac34c8ccd6ca4d98cbce3a8cce7bcd7e1c1dcdbc0dc +dbc6e0d9c9e3d7c9e3d5c6e1d4c5e1d1c3e0cfc2dfcfc1decdc0decec3dfd0c5e1d0c5e1 +d0c6e2d0c6e2d0c6e2d0c6e2cfc6e2d0c6e2dacbe4e3cde4dcc4ded7bcdadabddae4c4dd +e7c4dce8bbd7e5b0d0d894c1c269a2b24886a22467aa2262c12a72cc2f76ce296fc72769 +b824659e205f861d5bac689bd8b5d5d9cae3cdc6e2cac6e2cfc8e3d3c8e3d3c4e0d4c3df +d3c4e0d4c6e1d3c7e2d1c7e2d1c7e2d2c7e2d2c7e2d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c4df +d5c6e0d4c7e1d0c6e2d2cae4d5c7e2f1d3e5ad506da8252eb52323c02424c52625c62625 +c12624ae2022a02426dda2c0ddc8e1d2c5e1d3c5e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d2c7e2d2c6e1d1c6e1d1c6e1d1c6e1d1c6e1 +d1c6e1d1c6e1d2c6e1d6cbe4d1c6e1cac1dac4bbd0c1bbcac6bec8cdc7ccd7d1d3dadbd9 +ccd6cfc8d2cdc5cbcabbc0c4afb2bda6a8baa7abc2b5b8d5cac8e4c9c2e0d3cae4d7cce5 +d3c8e3cac1dfcac3e0d5cbe4dacee5ddc3ddbf89b9aa5293aa2b7bb72676cb2c7ede2e84 +eb3893eb4094e03185e43b8cde3786d12d79c5286ec0286fc63a83d667a6de8bbbdda3c9 +deb8d7dac4dfd6c7e1d6c7e2d6c7e2d6c9e3d6cae3d7cae4d7cae4d4c9e3d3c8e2d3c8e2 +d2c9e3d2c9e3d0c9e4d0c9e4d0c9e4d1c8e3d1c6e2d1c4e0d6c4dfdec5dfe6c5dde6b8d5 +df9ec7cd77b0be5394b73b81b42a71a9215cba266bcd337ac02869bf2564c72a6cc3296f +b1266ba63576ae6097d5abcfe2cde3d1c8e3cacae5d0cde6d1c9e4cbbddcd4c3dfd3c4e0 +d0c7e3cec8e3cec9e4d0c9e3d4c6e1d6c5e0d6c5e0d4c5e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c5e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d3c5e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d3c5e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c5e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d3c5e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d3c5e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c5e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c5e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d3c5e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c5e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c5e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d3c5e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d3c5e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c5e1d4c6e1d4c6e1d4c6e1d3c4e0 +d6c6e0d5c7e1cfc5e1d2c7e2d3c5e0efd1e4a94c67a42127b32122c12424c72625c72625 +c32625b12122a22628dfa4c1e1cae2d4c6e1d3c5e1d4c6e1d3c5e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c5e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d3c5e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c5e1d2c6e1d1c6e1d1c6e1d1c6e1d1c6e1d1c6e1 +d2c6e1d2c7e2d2c7e2d2c7e2c7c0dbbeb7cebeb7c7c4c0c9cec9ced7d2d2d9d5d3d4d5d0 +ccd6d1c1cecbb5bec0a9adb5a3a6b6aeafc3bebfdacac9e4cdc8e4d0c5e1d2c5e1d2c5e1 +d1c6e2d0c9e3cec9e4cec7e3d0c7e2d4c6e1d5c3dfcaa5cdba73aeb0408fb3297cc32b7d +d22c81d92c84dc2e82da2f7ede2f7de3347fe4327edf2f7bd6307cce3481c43a86b34289 +c273accb94c2c99bc6cea2cad4aacfd8b3d4dfbddae1c2dce4c8e0e2c7dfe0c6dfe0c5df +dec6e0dec5dfdec6e0dec5dfdec6e0dfc5dfdcc0dcdab8d7d9b0d2d5a1c9cc87b9c0639f +b74588b63079b82771bc276ec2286fca2d77c72b73c1296dbe286eb8276aaf2363a72362 +b24482d890bee1b3d3e0c5ded5c6e1d0cbe5cac8e4c7c2e0cfc4e1d8cbe4d3c4e0d4c5e1 +cfc8e3cdc9e4cdc9e4d0c9e3d4c6e1d7c4dfd7c4dfd4c5e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d3c5e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d3c5e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c5e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c5e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d3c5e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c5e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c5e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d3c5e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c5e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d3c5e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d3c5e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c5e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c5e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d3c5e1d4c6e1d4c6e1d4c6e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d4c6e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d4c6e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d4c6e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d4c6e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d4c6e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d4c6e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d4c6e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d4c6e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d4c6e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d4c6e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d4c6e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d4c6e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d4c6e1d3c5e1d4c6e1d3c4e0 +d6c6e1d4c6e1cec6e2d0c8e3d3c5e1f1d3e5a74c63a42323b52323c22425c82625c62425 +c22525b42423aa2f31e4abc7e0cbe2d2c6e1d3c5e1d3c5e1d3c5e1d4c6e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d4c6e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d4c6e1d3c5e1d3c5e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c5e1d2c5e1d2c5e1d3c6e1d3c6e1d3c7e2d2c7e2 +d1c6e2d1c7e1d0c8e2c8c0d9bcb6cbb8b4c3c1bdc6cdcaced6d4d2d6d7d2d4d4cdd3d3cf +cdd0d1b9bbc1aaabb4aba8b7b7b3c7c5bfd8ccc7e2cfc7e2d0c8e3d2c6e1d2c5e1d2c5e1 +d2c6e1d1c7e2d0c7e3cfc6e2d0c6e2cec8e3cacee8cccbe5cbb6d8c08dbfb25d9fae3785 +b5287ac12979cb2b78d42a78de2f7de6317fe8307ee42f79df2d79db317fd33280c62f7b +bf3984bc468cbb4e93bd5398bf5b9dc668a7d17db3d78abbdb93c0dc9ac4de9fc7dd9fc7 +db9fc7dc9fc7d89cc6d799c4d596c3d592c0d388bacc74a9c05b95b84684bc3b7ec23079 +c32a72c6286fcc2a70cf2972ce2972c82970c0276fb7276faa266a9b2465a23374b55a94 +cd8bbbdeb5d4dcc2ddd8c5e0d4c5e1d1c7e2cfc6e2cfc5e1d2c5e1d5c7e2d4c5e1d3c5e1 +d1c6e2d0c7e3d0c7e3d2c7e2d4c6e1d5c6e1d5c6e1d4c6e1d4c6e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d4c6e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d4c6e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d4c6e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d4c6e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d4c6e1d3c5e1d3c5e1d3c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d4c6e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d4c6e1d3c4e0 +d6c6e1d3c6e1cdc5e1d0c9e4d1c6e2f1d5e6a64d5ea42421b52423c42425c92725c72525 +c32525b52423aa3133e5adc7dfcbe3d1c6e1d2c6e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c5e1d4c7e2d1c4e0d1c3e0d1c4e0d2c6e1d2c7e2 +d1c7e1d0c8e2cdc7debab6c7bab6c5bfbec7c9c8cdd2d1d1d6d7d1d3d6cfced2cacececa +bebcc2b1acbaada5b6b7afc2c7bed6d3c9e3d4c9e3d1c6e1d2c6e1d3c6e1d2c5e1d2c5e1 +d2c5e1d2c6e1d2c6e1d2c6e1d2c6e1cccae4c0cce8c4d2ebcccee8cfbddcc89ec9c17cb2 +be5d9fb83785b62671c42a75d02c78d72b79dd2e7ae0307ae1317ce1327edc317ed62d7b +cf2c79cb2d7bca2f7fc9307fc4307ec33182c8418cc94a93c84d94c75297c7569bc6569a +c5569ac35598c15297c05094bd4c91bf488cc24285c3377cc22f73c22a6ec92b6fce296f +d12b6ed32a6ed62a72d42c74cc2972c32972b5256ea2256a97276b9d4180b46da3d09bc5 +deb9d7dac2ddd5c4e0d4c5e1d3c5e1d3c6e1d3c6e1d3c6e1d3c6e1d3c5e1d3c5e1d3c5e1 +d3c6e1d3c6e1d3c7e2d3c6e1d3c5e1d4c6e1d4c6e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d4c6e1d4c6e1d3c6e1d3c6e1d4c6e1d3c6e1d4c6e1d3c6e1 +d4c6e1d3c6e1d3c6e1d4c6e1d3c6e1d4c6e1d3c6e1d4c6e1d3c6e1d4c6e1d3c6e1d3c6e1 +d4c6e1d3c6e1d4c6e1d3c6e1d4c6e1d3c6e1d4c6e1d3c6e1d3c6e1d4c6e1d3c6e1d4c6e1 +d3c6e1d4c6e1d3c6e1d3c6e1d4c6e1d3c6e1d4c6e1d3c6e1d4c6e1d3c6e1d4c6e1d3c6e1 +d3c6e1d4c6e1d3c6e1d4c6e1d3c6e1d4c6e1d3c6e1d4c6e1d3c6e1d3c6e1d4c6e1d3c6e1 +d4c6e1d3c6e1d4c6e1d3c6e1d3c6e1d4c6e1d3c6e1d4c6e1d3c6e1d4c6e1d3c6e1d4c6e1 +d3c6e1d3c6e1d4c6e1d3c6e1d4c6e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c3df +d5c6e1d3c6e1cdc5e1cfc9e4d0c6e2f1d3e5a44c5ba32220b52223c42425cb2726c92625 +c32525b42222a82d30e3abc6ddcbe3d0c5e1d1c6e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c5e1d6c9e3d0c4e0cdc0decec2dfd0c5e0d2c7e2 +d0c8e2ccc5ddc7c2d6b2aebdc0bdc8cccad1d2d1d4d5d4d3d4d6d2d2d4cec8cbc5c1c0c0 +ada7b3afa5b7b7adc2c5bad2d1c6dfd7cce4d6cbe4d3c6e1d0c3e0d2c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c6e1d3c6e1cfc7e2c5c8e4c6cce7cecee7d6cbe4dcc4dedeb8d6 +d9a0c8c570aab5478bb3317cb62873bb266fc52a72d02e79d6307dd82e79da2e7ade317e +de2f7ddf317fe13081dd2f80d82e7cd42c7bd12e7dcf2c7cc92d79c72c79c72d7ac42d7a +c32c79c12b77c22b76c22a75c12874c22973c52970c82a6ece2b6fd12b70d12a6fd22a6f +d22a70d22b72d02c74c72972ba256ead256a9c2366983073a55691bc83b5d2a9cfdec1dc +dcc8e1d3c4e0d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1 +d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1 +d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1 +d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1 +d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1 +d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1 +d3c6e1d3c6e1d3c6e1d3c6e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d4c5e1d3c3df +d5c6e1d3c6e1cbc4e1cec8e3cfc5e1efd2e4a34a5aa02120b32223c22425cb2726cb2726 +c52525b12122a52a2bdfa8c3dccae2d0c5e1d2c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d0c3e0cec3e0cfc4e1d0c7e1d0c7e1 +ccc4dcc6c1d5c2bdcdbab8c3cac7cfd4d2d8d6d5dad6d5d6d3d4d4cccecdbfbfbeafafb2 +a69fb0b5abbfc3b8d0cdc3dbd4c8e1d5cae3d5c9e3d4c6e1cfc3e0d3c5e1d2c5e1d2c5e1 +d2c5e1d3c5e1d3c5e1d3c5e1d3c5e1d2c5e1d0c3e0d2c4e0d4c5e0d8c5e0dec9e1e7cbe1 +e6c6dedaa9cdce90bfbb6ca5b1508fac397dae2d74b82c74bf2b75c52a71cc2c76d6307c +de2f7de4317de8307ee8327fe5307ee3327ee2317ede2e7cd92b78d92d79da2d7bd92d7a +d82d79d72b78d82b78d82b78d82c77d82c77d52b75d22b71d22b72ce2970ca296dca296f +c92c74c32b73b9276ead276ca3266b96286a963677ae6aa0ca9ac5d8b9d8dcc5dfd9c9e3 +d5c7e2d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d4c5e1d3c3df +d5c6e1d3c7e2cbc3e0cdc6e2cec4e0efd0e3a248589f2020b32122c22425cc2826cb2726 +c52525b12122a42829dea7c2dcc9e2d0c5e1d1c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d1c4e0cbbfddd0c4e0d4c9e3d4c9e3d0c7e1cac2d9 +c5bed1c1bdcac2bdc7ceccd5d3d1d7d6d4d9d5d4d8d1d3d6cccbcfc0c1c5b0b0b6a2a1ab +b4acbfc4b9d0cec4ddd1c6e1d0c5e0d0c5e1d3c6e1d4c6e1cfc3e0d1c4e0d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c4e0d6c0ddd9bfdcd7bfdcd4bddbd1bcdbd4c0dd +dac7e1e1cbe2e3c9e1e0bddad5a3cac583b4b56098ae4684ad3378ae2870b5256cbe256e +cb2a71d52b73da2b71d82d73da2c74db2c75dc2d77db2d76db2c74dc2f76de2e79de2e79 +df2d79de2d78de2d77de2d76de2d75dc2d75d72b74d12a71cc2a70c72870c42970bd2670 +b4266ea9266b9b2467972a6c9f407fab6098c48cbcd7b3d4dbc1ddd7c6e0d0c4e0cbc3e0 +cbc4e1d1c6e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d2c3df +d4c5e1d3c6e1cac3e0cdc7e3cec4e0efd0e3a148579f1f20b32122c22425cb2726cb2726 +c52525b12122a42829dea7c2dcc9e2d0c5e1d0c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d0c3e0cabfded3c8e2d7cde6d4cae3c9c1d8c0bacc +bfb8c5c3bdc6cbc7ccdcdae0d7d6d8d5d4d8d1d1d6cac8cebcbcc3b0afb9a9a6b4aca9ba +c5bdd4d0c7e0d5cae3d3c8e2cec3dfcec1dfd2c5e1d4c6e1cec0ded0c3e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d2c5e1d2c5e1d4c3dfd8bcdadcbddadec2ddd9c1ddd0bedcc9bddc +c7c1dfcdcbe6d4cfe8dbd2e8dfcfe5dcc3ded8b0d2d299c4cc81b5c465a0b34285a7276c +b5266ec0296fc1296bbf2669c3266ac5296fcb2a72d02d74d22d77d02b72ce296fcf296f +d12a6fd12a6fd12a6fcf2a6ccd286acb2769c72769c2276bba2469b62469af256a9f2364 +9421619a3374a4508cb16ea3c28fbddab8d7ead3e6dacae3cfc3e0cfc6e2cfcae5cac6e2 +c7c1dfd0c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d2c3df +d3c4e0d2c5e1cac3e0cdc7e3cec4e0efd1e4a34858a02120b32223c22425cb2726cb2626 +c52525b32222a62b2ce0a8c3dccae2d0c5e1d0c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2c5e1d2c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c6e1d4cbe4d2c9e3cac2d9beb8cabab4c1 +bebac2cbc7cbd8d4d5d8d7d7d5d3d3d2d1d5cdcbd1bebbc4abaab8a5a2b3b1b0c1c9c4db +cec5e0d4c9e2d6cae4d4c6e1d2c5e0d2c5e1d5c9e3d3c5e1cdbfded0c3e0d1c4e0d1c4e0 +d1c4e0d2c5e1d2c5e1d2c5e0d2c5e0d4c3dfd9bedbdcbddaddc0dcdac4dfd4c6e1cec7e2 +c5c5e2bcc6e3b9c5e2b4bcdcbfc1e0d4cbe5e2d0e6e9cee3ebc7dee9b9d5da9cc5ca7cb1 +b85a93b04680ab3776a62e6da42969a32565a32260a5215fa9215faf2364b42568b52568 +b62568b82669b6266ab6266ab62568b5256ab2266cad276ca32368a2276eaf4383b45995 +b76ca3c68cbcd8afd1e1c5dee0cbe2dbcce4d3c8e2c6bfdec8c1dfd0cae4d3cce6d0c9e4 +ccc3e0cfc4e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d2c2df +d3c4e0d2c5e1cac3e0cdc8e3cfc5e1f0d1e4a44a5ba22120b52223c42425cb2726c92526 +c32525b52223aa2f31e4abc6ddcbe3d0c5e1d0c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2c5e1d2c5e0d2c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d0c3e0d0c3e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c6e1d5cae4cec7e0c6bfd7bfbaccbfb9c6c3bec6 +cbc8cbd2d0d1d8d7d3d1cfcccecececac8ccc0bdc5b5b1bfaea9bdb3adc4c2bdd7d6cee6 +d0c6e1d3c6e1d4c6e1d3c6e1d3c6e1d4c6e1d3c5e1d1c4e0cfc3e0d1c4e0d2c5e1d2c5e1 +d2c5e1d2c5e1d2c5e1d2c5e0d2c5e0d3c3dfd7c2ded7c1ddd5c0dcd2c1ded2c5e1cfc8e3 +cccae4c7cae5c5c9e5ced0e8d0d0e9cec9e4cac1dfcabbdbd0bad9dbc0dce0c3dde3c4dd +e0bad8d8abced09ec4c891b9c287b2bb78a5af6595a9568aa64d84a2437b9e3d769e3c75 +9e3b759f3d76a2417aa4457ea84a82aa4e87ad538daf5692b2609abe77add79cc6e4bad6 +e6c4dde0c7e0dac7e1d5c6e1ccc2dfc8bfdecac3e0d0c9e3cec3dfc5b8dac8b9dad5c6e1 +dccee5d2c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d1c3e0d2c2df +d3c3dfd2c5e1cac3e0cdc8e3d0c6e2f1d3e5a44c5ba32221b52423c42425c92725c82425 +c32525b62423ab3134e5adc8dfcce3d0c5e1cfc4e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c4e0d0c4e0d0c4e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c2dfd0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c4e0d0c4e0d0c6e1d4cbe4c6c0d7bcb6cabdb6c5c6c0c9d0cbd0 +d7d3d4d7d5d1d3d2cfd1cfcccbcacbbfbdc3b2b0bbafabbcb6b2c8c4bed8cec7e2d3cae4 +d4c9e3d4c6e1d3c5e1d1c4e0d0c3e0cfc3e0cfc2dfcfc3e0d4c6e1d0c4e0d0c4e0d0c4e0 +d0c4e0d0c4e0d0c4e0d0c4e0d0c4e0d1c4e0d4c5e1d2c4e0d1c4e0d1c5e1d0c5e1d0c6e2 +ccc6e2ccc7e3cdc8e4cec9e4cbc6e3c9c4e1ccc5e2d1c8e3d3c8e2cec3e0cfc2dfd3c6e1 +d7cbe4d6c9e2d3c3dfd3c0dbd7c0dcd9bcdad3b0d1cfa3c9cd9dc5c996c0c68fbcc68fbb +c58db9c48fbbc896c0cf9fc7d6a7ccdbb0d1dcb2d2dbb1d2dfb8d6dfbedaddc0dbdac3de +d9c6e0d6c7e2d3c9e3d0c7e3cec7e3cec7e2cdc5e1cec3e0d3c4e0d4c5e0d4c2ded3bfdc +d1bfddd2c3dfd0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d1c4e0d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c2df +d3c3dfd2c5e1ccc4e1cec9e4cdc3e0f1d5e6ab5462a62622b52423c22425c92725c92526 +c32525b52223a92f32e4acc7dfcce3d0c5e1cfc4e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2c5e1d2c5e0d2c5e1d1c4e0d1c4e0d1c4e0d1c3e0d1c3e0d0c3e0d2c5e1cec0decfc2df +d4c6e1d5c7e2d3c5e1cfc4e0d1c5e0d4cae3cdc7ddbebbcdbbb6c4c3c1ccd0cbd3d6d4d7 +d7d4d3d3d2cfd1d0cecececebab9bcaca9b1ada8b7bab4c8c7c0dacfc7e2d0c7e3d0c7e2 +d1c6e2d3c5e1d1c4e0d1c4e0d0c3e0d0c3e0cfc3e0d0c3e0d3c6e1d2c5e1d2c5e1d2c5e0 +d2c5e0d2c5e0d2c5e0d2c5e0d2c5e0d0c5e1d0c6e2cdc6e2cdc5e1cec5e1cfc5e1cfc4e0 +d0c3e0d1c3e0d2c4e0d2c4e0cfc3e0cfc3e0d0c5e1d0c9e3d0c9e3cac6e2c8c5e2c8c8e4 +cbcbe6cccce6cdcae4d0c9e3d4c9e3d8c7e1d8c3dfd9bfdcd8bddad8b9d8d9b9d8d8b9d8 +d8b9d8d6b9d8d6bedbd8c1dddbc6e0dcc8e1d9c8e2d7c8e2d8c9e3d7cbe4d4c6e1d0c6e2 +d0c6e2cfc6e2cec7e2cec7e2d0c7e2d1c6e1d0c4e0d2c2dfd2c3dfd6c3dfd7c2ded4bfdc +d1bedcd2c3dfd1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d2c3df +d3c3dfd2c5e1cdc5e1cfc9e4ccc3e0f2d5e6ae5564a72722b52423c42425cb2726c92625 +c32525b32222a62b2ddfa8c4dcc9e2cec4e0d0c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2c5e1d2c5e0d2c5e1d1c4e0d1c4e0d1c4e0d1c4e0d0c3e0d0c4e0d2c5e1d0c3e0cfc3e0 +d1c4e0d3c6e1d4c6e1d3c7e1d1c6e1cdc5ddc4bdd0bebcc9c2c0cacdcad2d5d3d8d7d5d7 +d5d3d3d0d0cecececebebcbeaca9b0a7a2afb4aebfc5bed6d0c8e2d2c9e3d0c5e1d0c5e1 +d0c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c5e1d2c5e1d2c5e0d2c5e0 +d2c5e0d2c5e0d2c5e0d2c5e1d2c5e1d0c6e2ccc7e3cac7e3cbc6e2cdc6e2cec4e0d1c3e0 +d2c2dfd4c1ddd5c1ddd4c1ddd3c2dfd2c3dfd2c4e0d0c5e1cdc6e2cac7e3c9c8e4c7c9e5 +c8cae5c9cae5cac9e4cdc8e4cfc6e2d4c5e1d3c4e0d5c3dfd7c2ded8c3dfd8c4dfd8c4df +d7c4dfd6c5e0d4c6e1d3c8e2d2c9e3d0c9e3cbc9e4c8c9e5c7cae5c8c9e5cac8e4cac8e4 +ccc7e3cdc6e2cec6e2d0c5e1d0c4e0d2c4e0d2c2dfd3c2dfd3c2dfd4c1ddd4c1ddd3c2df +d3c2dfd2c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d2c3df +d3c3dfd2c5e1cdc5e1cfc9e4ccc3e0f2d5e6aa5363a42421b52223c52625cb2726c92625 +c32525b12122a5292adda5c0d9c6e0ccc2dfd0c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2c5e1d2c5e0d2c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d3c5e1d5c9e3d3c6e1 +cec1dfcec3dfd3c8e2d5cae3cdc3dcc1bacebdb8c5c5c4cccecbd3d2d0d7d5d5d7d6d5d7 +d4d2d4cccbcdc2c0c4a7a4aca9a5b2b4aebec1bad1cdc4dfd1c7e1d1c6e2cec4e0cfc4e0 +d0c3e0d0c3e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c5e1d2c5e1d2c5e0d2c5e0d2c5e0 +d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d0c5e1cdc6e2cbc7e3ccc7e3cfc6e1cfc4e1d2c4e0 +d3c2dfd5c1ddd5c1ddd5c0ddd5c1ddd3c2dfd2c3dfd2c4e0d0c5e1cfc5e1cdc6e2ccc7e3 +ccc7e3cdc7e3cfc6e2d0c6e2d2c5e1d3c4e0d3c3dfd4c3dfd5c3dfd5c3dfd4c3dfd4c4e0 +d3c3dfd3c5e1d0c6e2cfc6e2ccc7e3cac8e4c7cae5c3cbe6c3cbe6c5cae6c8c9e5cac7e3 +cec7e2d0c5e1d0c4e0d2c4e0d2c3dfd2c3dfd2c2dfd2c3dfd2c4e0d1c3e0d0c4e0cfc4e1 +d0c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d2c2df +d3c3dfd2c5e1cec6e2d0cae4ccc3e0f1d4e5a85060a12120b32223c42425cb2726c92625 +c32525b12122a52a2bdea7c2dac7e1cdc3e0d0c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2c5e1d2c5e0d2c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d3c5e1d5c7e2d4c6e1 +d1c6e1d0c5dfd1c6dfcec4dbc5bdd1bdb6c4bfbdc5cdccd0d4d4d8d4d4d8d3d3d8d2d2d7 +ceccd2c0bdc4afabb4a29baab3adbec3bdd2cec6ded1c7e1d1c6e2d0c5e1cfc4e1cfc4e1 +d0c3e0d0c3e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c5e1d2c5e1d2c5e0d2c5e0d2c5e1 +d2c5e1d2c5e1d2c5e1d1c4e0d1c4e0d0c4e0d0c5e1d0c5e1d0c5e1cfc4e1d0c4e0d2c4e0 +d2c2dfd3c2dfd3c2dfd3c2dfd3c2dfd3c2dfd3c2dfd3c3dfd2c3dfd2c3dfd2c3dfd2c2df +d3c3dfd2c3dfd3c3dfd2c3dfd4c3dfd4c3dfd5c2ded5c2ded4c2ded4c1ddd3c1ded2c1de +d1c2dfd0c3e0cec4e0cec5e1ccc5e2cac6e2c8c8e4c7cae5c6cae5c9c8e4cbc6e3cfc6e1 +d1c4e0d2c2dfd3c2dfd3c2dfd3c2dfd3c2dfd2c2dfd0c4e0cec6e2cbc6e3cac7e3cac7e3 +ccc7e3d0c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d2c2df +d2c3dfd1c5e1cec5e1cfcae4cbc2dff0d3e5a74e5d9e1f1fb12122c22425c92725c92625 +c32525b42222a82d30e4abc6dfcce3d0c5e1d0c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2c5e1d2c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d3c6e1d0c3e0d3c7e1 +d7cce4d5cae3cac1d6c1b8c9bfb6c4c4bec7cecbcfd5d4d6d6d6d8d3d3d7cfced2cac8ce +c0bec6b0adb99f9babb4afc0c5bed5d0c9e2d2c9e3d0c6e1cfc4e1d1c5e1d1c6e1d1c5e1 +d0c3e0d0c3e0d1c4e0d1c4e0d1c4e0d1c4e0d2c5e1d2c5e1d2c5e1d2c5e0d2c5e0d2c5e1 +d2c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2c4e0d2c4e0d2c3dfd2c2dfd2c3dfd3c3dfd3c3dfd3c2dfd5c1ddd5c1ddd5c0ddd5c1dd +d5c2ded5c2ded5c2ded5c2ded5c2ded5c2ded4c2ded4c2ded3c3dfd2c2dfd1c2ded1c3df +d0c2dfd0c3e0cfc4e0cec4e0cdc4e0ccc5e2cbc6e3cbc7e3cbc6e3cec7e2d0c5e1d1c4e0 +d2c3dfd3c2dfd4c2ded4c2ded3c2dfd2c3dfd1c4e0cec6e2cbc7e3c9c8e4c7cae5c6cae5 +c9c8e4cfc6e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d2c2df +d2c3dfd1c5e1cdc5e1cfc9e4cbc2dff0d1e4a54d5d9d1f1fb12122c22425c92725c92625 +c32525b42222a82d30e4abc6dfcce3d0c5e1d0c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2c5e1d2c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d3c6e1d2c7e1d5cae3 +d5cae3ccc3d7bfb6c6bcb3bfc5bdc4d2cdd2d6d7d4d7d9d5d9dad8d2d4d6c6c7ccb9b8c1 +afacbaa9a5b8aca7bccac3dcd2c9e3d5cce5d1c6e2cdc2dfd0c5e1d4c9e3d3c6e1cec0de +d1c4e0d0c3e0d1c4e0d1c4e0d1c4e0d1c4e0d2c5e1d2c5e1d2c5e0d2c5e0d2c5e0d2c5e1 +d2c5e1d1c4e0d1c4e0d1c4e0d0c3e0d1c4e0d3c3dfd3c3dfd2c4e0d2c4e0d1c5e1d0c5e1 +d0c5e1d0c5e1d0c5e1d0c5e1d0c4e0d1c4e0d3c3dfd3c3dfd4c3dfd6c1ded7c0ddd5c0dd +d5c1ddd5c2ded4c3dfd3c3dfd3c3dfd2c3dfd3c4e0d2c5e1d2c5e1cfc4e1cfc4e1d0c5e1 +d0c5e1d0c5e1cfc4e1cfc4e1cfc4e1cfc4e1d0c4e0d1c4e0d2c4e0d2c4e0d2c2dfd3c3df +d3c3dfd3c3dfd3c3dfd3c3dfd2c4e0d1c4e0d0c6e2cdc6e2cac8e4c9c9e5c7cae5c7cae5 +cac8e4cfc6e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d2c2df +d3c3dfd2c5e1cdc5e1cfc9e4cac0def0d1e4a64e5c9e1f1fb32122c52625cb2726c92625 +c32525b12122a5292adda5c1dac5e0ccc2dfd0c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d2c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d0c4e0dbcee6d6cbe3 +c6bbd1bbb1c0bdb4bec9c1c5d5ced0d9d4d2d1d2cbd6d8d1d6d8d5cdcdcfbbbbc2abaab6 +a8a6b8b7b2c9c8c2dcd0c8e2d2c9e3d1c6e2cec4e0cfc4e1d3c8e2d5cae4d3c6e1c9bddc +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c5e1d2c5e0d2c5e0d2c5e0d2c5e0d2c5e1d1c4e0 +d1c4e0d1c4e0d0c3e0d0c3e0d0c3e0d0c3e0d1c4e0d2c5e1d2c5e1d1c5e1d0c5e1d0c5e1 +d0c6e2d0c5e1d0c5e1d0c5e1d0c5e1d0c4e0d1c4e0d2c4e0d3c3dfd3c3dfd3c3dfd4c3df +d5c3dfd5c3dfd3c4e0d3c4e0d4c5e1d1c6e1d0c7e2cfc6e2cec7e3cec7e3cec7e3cec7e3 +cfc6e2d1c6e1d3c5e1d3c4e0d3c4e0d4c4e0d4c3dfd3c2dfd3c2dfd3c2dfd3c3dfd3c3df +d2c4e0d1c4e0d1c5e1d0c6e2d0c6e2cec6e2cdc6e2cdc6e2cdc6e2ccc7e3ccc7e3ccc7e3 +cec6e2d0c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d2c3df +d3c3dfd2c5e1cdc5e1cec8e3c9c0def0d2e4a84f5fa12120b42222c52625cb2726c92625 +c32525b12122a5292adda5c0d9c6e0ccc2dfd0c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d2c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c5e1d2c5e0d5c9e2ccc3da +bfb6c7beb5c1c8c0c5d4cccedcd4d3d9d5cfd0cfc8ced2cac7cac5b9babbadadb5adabb9 +b8b5c9c7c1dcd1cae4cfc6e1d0c6e2d0c5e1cfc4e1d0c4e0d3c5e1d4c7e2d2c5e0cec2df +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c5e1d2c5e0d2c5e0d2c5e0d2c5e0d2c5e1d1c4e0 +d1c4e0d1c4e0d0c3e0d0c3e0d0c2dfcfc4e0cfc5e1cec7e2cec7e2cfc6e1d0c6e1d0c5e0 +d1c5e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c5e1d0c5e1cfc5e1cfc6e1cfc6e1d0c6e2 +d2c4e0d3c4e0d3c4e0d4c5e1d3c6e1d0c7e3cfc8e3cec8e3cdc9e4cdc8e3cdc7e2cec7e2 +d0c6e1d3c5e0d3c4e0d5c2ded7c2ded8c1ddd7c1ddd5c1ddd4c3dfd3c3dfd2c4e0d0c5e1 +cfc6e1ccc7e3cbc8e3cac8e4cac8e4cbc7e3cdc6e2cfc6e1d1c5e1d2c4e0d3c3dfd3c3df +d3c3dfd1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d0c4e0d0c4e0d0c4e0cfc4e1d0c5e1d0c5e1d0c5e1d0c5e1cfc4e1d1c4e0d2c4e0 +d2c4e0d2c4e0d1c4e0d1c4e0d1c4e0d0c4e0d0c4e0d0c4e0d0c4e0d0c4e0d1c4e0d2c4e0 +d2c4e0d2c4e0d2c4e0d2c4e0d1c4e0d0c4e0d0c4e0d0c4e0d0c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c5e1d1c5e1d0c5e1d0c5e1d0c5e1d0c4e0d2c4e0 +d2c4e0d2c4e0d2c4e0d1c4e0d0c4e0d0c4e0cfc4e1d0c5e1d0c5e1d0c5e1d0c5e1d0c5e1 +d0c5e1d1c5e1d1c5e1d0c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d2c3df +d3c4e0d2c6e1cdc5e1cdc6e2c9c0def0d3e5aa5160a32321b42222c22425cb2726c92625 +c32525b32223a62b2ce1a9c3dccae2cfc4e1d0c4e0d1c4e0d2c4e0d2c4e0d2c4e0d2c4e0 +d2c4e0d1c4e0d0c4e0d1c5e1d1c5e1d0c5e1d0c5e1cfc4e1d0c4e0d0c4e0d0c4e0cfc4e1 +d0c5e1d0c6e2d0c4e0d0c4e0d0c5e1d0c5e1d1c5e1d3c5e0d5c5e0d8c5deceb8cfc5b2c2 +c8b8c3d0c4cad6cecfd8d2d1d8d4d1d6d4cfd4d3cfcbcbc9b6b7b7a3a3aaa3a0afb6b2c4 +cac5ddd3cbe4cec5e1d0c7e2d1c6e1d1c6e1d1c6e1d0c4e0cfc3e0cfc3e0d2c5e1d6cae4 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c5e1d2c5e1d2c5e0d2c5e0d2c5e1d2c5e1d1c4e0 +d1c4e0d1c4e0d0c3e0d0c3e0d0c3e0cfc4e0cec6e2cdc7e3cdc6e2cec7e2d0c6e2d0c5e1 +d2c4e0d3c3dfd3c3dfd3c3dfd2c4e0d2c4e0d1c5e1d0c6e2cdc6e2ccc7e3cbc7e3cdc6e2 +d1c5e1d4c5e1d4c5e0d4c6e0d3c6e1d0c7e2cfc7e2cec8e3cec8e3cdc8e3cdc7e2cfc6e1 +d2c5e0d3c4e0d5c3dfd7c1ddd8c1ddd8c0ddd7c1ddd5c2ded3c3dfd3c3dfd1c5e1cfc6e1 +cdc6e2cac8e4cacae5cacae5cac8e4cac8e4cec6e2d0c5e1d2c4e0d4c3dfd5c2ded6c1de +d4c3dfd2c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2c6e1d0c5e1d0c5e1cec5e1cec5e1cdc5e1cbc4e1cbc4e1cdc6e2d0c6e2cfc3e0d1c2df +d3c3dfd3c3dfd1c4e0cfc4e0cec3dfcdc3e0cdc4e0d0c5e1d0c5e1d1c5e1d3c5e1d3c4e0 +d3c4e0d4c3dfd4c3dfd3c3dfd2c4e0cfc4e1cec5e1cdc4e0cec4e0cfc3e0d0c3e0d0c3e0 +d2c4e0d2c4e0d1c4e0d1c4e0d1c5e1d0c5e1cfc6e1cec7e2cdc7e3cec7e2cfc4e1d1c2de +d2c0ddd2c1ded1c2dfd0c3e0cfc4e1cec4e0cec6e2cdc6e2cdc6e2ccc7e3cdc6e2cec7e2 +cec6e2cfc6e1d0c6e2d0c5e1d0c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d3c3df +d3c3dfd2c5e1cdc6e2cdc7e3cbc2dff2d3e5a249579e1f1fb42222c42425cb2726c92626 +c32525b42222a82e2de3abc6dccae2cfc4e1d0c4e0d1c4e0d2c2dfd2c3dfd2c3dfd3c3df +d3c3dfd2c4e0d1c5e1d0c6e2cfc6e2cec7e3cec7e3cfc6e1d0c6e2d1c5e1d1c5e1d0c7e2 +d0cbe5d0cbe5cbc0deccc3e0d2cae4d2cbe5d0c9e3d5c7dfdfc8dbdab6c7c69ba7d4adb3 +e6c6c7e1cecbdbd3cedcd8d4d9d7d6cac9cbcfced3b9b5bfa5a0afa39fb0b4afc2c8c1d9 +d4cbe3d4cae4cdc4e0d0c6e2d2c6e1d2c5e1d2c5e1d0c4e0cfc3e0cfc3e0d2c5e1d5c7e2 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d0c4e0d0c4e0d0c4e0cfc4e0d0c5e1cec6e2cfc6e1d0c6e2d0c5e1d0c4e0 +d1c4e0d2c4e0d2c4e0d2c4e0d2c4e0d1c4e0d0c4e0d0c5e1cfc5e1cec6e2cdc6e2cfc6e1 +d1c5e1d2c4e0d4c5e1d3c5e1d2c5e1d0c6e2d0c6e2d0c7e2d0c7e2cfc6e2cfc6e1d0c5e1 +d1c4e0d2c4e0d3c4e0d4c3dfd5c2ded5c2ded5c2ded3c3dfd3c3dfd2c4e0d0c4e0d0c5e1 +cec6e2cdc6e2cdc6e2cdc6e2cdc6e2cdc6e2d0c5e1d0c4e0d2c4e0d2c3dfd4c3dfd4c3df +d3c3dfd2c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2c5e1cfc4e1cec5e1cdc5e1cdc6e2cdc6e2cec8e3cec7e3cdc8e4d0c7e2d3c6e1d3c4e0 +d5c5e0d3c3dfd1c3dfcfc1decdc2dfcec4e0d0c7e2d0c6e2cfc4e1d1c5e1d2c4e0d3c3df +d4c4e0d5c2ded6c1ded4c3dfd1c3e0cdc4e1ccc5e2cdc6e2cec5e1cfc4e0d0c3e0d2c2df +d2c2dfd2c2dfd2c2dfd2c4e0d1c4e0d0c5e1cfc6e2cdc7e2cbc8e3ccc7e3cfc4e1d2c1de +d2bfdcd3c0ddd1c1ded0c3e0cec4e0cdc4e1ccc7e3cac7e3cac7e3cac8e4cbc8e3ccc7e3 +cdc6e2cec7e2d0c6e2d0c5e1d0c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d2c3df +d2c3dfd1c5e1cfc7e2cdc7e3cec4e0f2d5e69f42509d1e1fb42222c52625cb2726c92626 +c32525b32223a82d2de1a9c3dcc9e2cdc4e0cfc4e1d1c4e0d2c2dfd3c3dfd5c2ded5c2de +d4c3dfd3c3dfd2c5e1d0c7e2cec8e3cdc8e4cdc8e4cec7e3d0c7e2d1c6e1d1c5e1d0c6e2 +ccc8e4cdc9e4d0c6e2cec4e0d0c7e3d5cde6dbcce3dac1d3d1a8b4b7777fae6365c17c7a +dba59fe3c1bae2d0c8ddd7d1d5d3d4c6c6cfbdb8c8aea5bba9a0b8b8afc8cac0dad3c9e3 +d4c9e3d2c6e1d2c6e1d1c5e1d2c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d0c4e0d0c5e1d1c5e1d1c5e1d0c4e0d1c4e0 +d1c4e0d2c4e0d2c4e0d2c4e0d1c4e0d1c4e0d1c4e0d0c4e0d0c4e0d0c5e1d0c5e1d1c5e1 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c5e1d1c5e1d1c5e1d1c5e1d1c5e1d1c5e1d0c4e0 +d1c4e0d2c4e0d2c4e0d2c4e0d3c3dfd3c3dfd3c3dfd2c4e0d2c4e0d2c4e0d1c4e0d0c4e0 +cfc4e1d0c5e1d0c5e1d0c5e1d0c5e1d0c5e1d0c4e0d1c4e0d1c4e0d2c4e0d2c4e0d2c4e0 +d2c4e0d1c3e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d3c4e0cfc3e0cdc3e0cec5e1cfc6e2d1c8e3d3c9e3d4c9e3d2c7e1d2c4e0d5c7e1d6c7e2 +d5c6e1d2c3dfd1c2dfd0c2dfd2c4e0d2c5e1d4c6e1d1c4e0cfc2dfcfc2dfd0c2dfd1c2df +d3c3dfd3c3dfd3c4e0d2c4e0cfc6e1cac7e3c9c8e4cbc7e3cdc6e2d0c5e1d1c3e0d3c3df +d4c3dfd5c2ded5c2ded5c2ded3c3dfd3c3dfd1c5e1d0c6e2cec7e2cec6e2cfc4e1d1c2de +d2c1ded1c1ded0c2dfcfc4e0cec5e1cdc6e2ccc7e3cbc7e3cac7e3ccc7e3cec7e2cfc6e1 +d0c5e1d1c5e1d2c4e0d3c3dfd3c3dfd2c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d2c3df +d2c3dfd1c5e1cec7e2cdc6e2cec4e0f2d5e6a044529e1f1fb32223c42425cb2726c92725 +c22625b12222a52a2bdfa8c2dbcae3cec5e1cfc5e1cfc4e1d2c2dfd3c2dfd5c2ded5c2de +d5c2ded3c3dfd3c4e0d1c6e1d0c7e2cec7e3cec7e3d0c7e2d0c6e2d3c5e1d2c4e0cfc3e0 +c8bfdecac2e0d4cde6d3c7e2d0c1deddc8e0e5c1d7d39fb1b0626f8f21249a262198261f +b0534bd49690e6c0bbddc8c6ccc5c7c5c3cea8a1b8b1a6c3beb3d0cac0dcd0c5e0d0c5e0 +cfc3e0d0c4e0d6cae4d2c5e0d2c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +dfc7e0d8c5e0d3c3dfd2c2dfd1c2dfd1c1ded3c0ddd5c0dcd6c1dcd5c1dcd0bfdcccbfdd +ccc0ded0c2dfd3c5e1d5c7e2d4c4e0d2c1decfbddbcfbedcd1c0ded1c1ded1c1decfc2df +cfc4e1cfc5e1cfc5e1cdc6e2cacae5c7cbe5c7cbe4cacae4cdc8e2d0c6e1d2c4e0d4c3df +d6c3ded8c1ddd8c0ddd8c0ddd7c0ddd5c0ddd3c2dfd2c2dfd2c4e0d0c4e0cfc4e1cfc4e1 +d0c5e1d0c5e1cec6e2cec6e2cec7e2cdc6e2cdc6e2cec7e2cfc6e1d1c5e1d2c4e0d3c3df +d4c3dfd5c2ded6c1ded6c1ded5c2ded2c2dfd1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d3c3df +d3c3dfd1c5e1cec7e2cdc6e2cdc3e0f2d4e59f42509d1e1fb12122c22425cb2726cb2726 +c52525b12122a22727dea7c0dbcae3cdc5e1cdc6e2cfc6e1d1c4e0d2c2dfd5c2ded6c1de +d5c1ddd5c2ded3c4e0d4c5e1d1c6e1d0c7e2d0c6e2d1c5e1d1c4e0d3c3dfd3c3dfd2c1de +d1c0ddd5c7e2cbc4e1d1c3dfe5cae1edbed7d993adba556da32530a92122b22723a82021 +a62421bf5657d99094deb4b7c4b6baa6a3afa8a0b7bdb1d0d0c4dfd6cbe3d5c9e2d0c4df +cfc2dfd0c4e0d6cae4d2c5e0d2c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +f0b9d2f0c2daeec7deebcae0e9cbe1e3c9e0dfc4dedcc2dddfc6dfddc9e1dccee5d7d0e8 +d0cbe5cfc7e2cdc3e0cfc0decfbddccfbbdacdb8d9d2bddbd5c2ded5c3dfd2c1ded1c2df +cfc4e0ccc3e0ccc5e1cac5e2cac7e3cacae3cbcae3cdc8e2d0c8e2d3c7e1d3c4e0d6c4df +d5c2ded6c3ded7c1ddd8c0ddd7c0ddd6c1ded5c1ddd3c2dfd2c3dfd2c4e0d1c5e1cec7e2 +cdc8e2cdc8e2cdc8e2cec8e3cfc6e1d0c7e1d0c6e1d1c5e0d2c4e0d3c3dfd4c3dfd5c1dd +d5c0ddd5c0ddd7c0ddd7bfdcd5c0ddd2c2dfd1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d3c4e0 +d3c4e0d2c5e1cec7e2cbc6e2cbc2dff0d1e49b3f4d991c1eaf2022c12424cb2726cb2726 +c52525af2022a22626dda5bedbcae3cdc7e3cbc7e3cdc6e2d0c5e1d2c4e0d4c3dfd5c1dd +d6c1ddd5c0ddd4c2ded3c4e0d3c4e0d2c5e1d2c5e1d2c4e0d2c3dfd3c3dfd4c1ded6c3de +dac6e0d5c2dec9bddcdfcce3f0cadfdc97b6b64868a41d28b02022c32525c82626c42525 +ae1f22a72325bc5761ca929bbaa4ac9891a0c3bbd2d0c4dfd5c9e2d3c8e2d1c6e1d2c7e1 +d4c9e3d4c6e1cfc4e0d2c5e1d2c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +ae2a28b33f41c35e66d68492eaaabbf4c5d8f1cce0e5cbe2dbc7e1d4c9e3c4c5e2bbc5e1 +bdc8e4c4c8e5cbcae5d3cae4d6c9e3d6c5e0d5c2ded5c0dcd7c0ddd4bfdcd3bfdcd2bfdc +d1c0ddd0c2dfcfc3e0cfc4e0d3c3dfd6c3dfd7c4dfd6c3dfd6c3dfd5c4e0d4c4e0d3c4e0 +d3c4e0d3c4e0d3c5e0d2c4e0d2c4e0d2c4e0d2c4e0d2c4e0d2c4e0d2c4e0d1c6e1cec9e2 +cecae0cfc9e0d0c8e1d0c7e2d1c6e1d3c7e1d3c4e0d3c4e0d3c4e0d4c3dfd5c2ded5c1dd +d5c1ddd4c1ded4c1ded4c1ded2c1ded2c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d3c4e0 +d3c4e0d2c5e1cec7e2ccc7e3cdc3e0f2d5e6a044529f2020b32222c12424cb2726cb2726 +c52525af2022a22626dda5bedbcae3ccc7e3cac8e4cac8e4cdc6e2d1c4e0d3c3dfd5c1dd +d5c0ddd5c0ddd4c1ded3c2dfd2c3dfd2c4e0d2c4e0d2c3dfd2c3dfd4c2ded5c1ddd6c1de +d8c0ddcfb6d7e5d2e6f0d0e3cc8aa7a83c59a71f29c02225d22726cc2726d42a26cf2826 +c22325b12226a83444a66070aa8f9db9b1c1d8cde5d9cee6d4c9e2cec3dfcdc1ded3c7e1 +d7cce5d5c9e3cdc0ded2c5e1d2c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +be2624ba2424b62924b23030ac3b43a74457a6546db57391cd98b9deb4d2e8cbe1e8d3e6 +e1d0e6dbcae3d6c3dfd2bedcd2bedcd5c0ddd7c3dfd5c1ddd2bfdcd0bedccfbedccfbedc +cfbfddcfc1dfcfc4e0d3c5e0d6c2dedabfdbdabfdbdac0dcd6c1ded3c3dfd2c4e0d0c6e1 +cec7e2ccc7e2cbc8e3cbc8e3cdc7e2cfc8e2d0c7e1d2c6e1d3c5e0d3c6e1d2c7e1d1c7df +d0c9dfd1c8ded2c7dfd3c7e1d5c6e0d5c5dfd5c4e0d5c3dfd4c3dfd4c3dfd3c3dfd2c3df +d2c4e0d0c4e0cfc4e0cfc4e1cfc4e1cfc4e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d3c3df +d3c3dfd1c5e1cec7e2cdc7e3d0c6e2f6d9e8a54d5ba62622b52423c22425cb2726cb2726 +c52525b12122a22827dea7c0dbcbe3cac8e4c8c9e5c9c8e4cdc6e2d0c5e1d3c3dfd4c1dd +d5c0ddd4c1ddd3c1ded2c3dfd2c3dfd1c4e0d1c4e0d2c4e0d2c3dfd3c3dfd4c1ded7c1dd +dcc3dee7cae1e6c2dbc88da7a648629f202cb32023cf2626e02e25e32f25db2d26d92b26 +c52525a41e219b3042af7184c1a9bcc8c1d5d2c7e1d6cbe3d4c9e2d0c5e1cfc3e0d1c6e1 +d5c9e3d4c6e1d0c3e0d2c5e1d2c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d42a26cc2826c82625c52625c22729b9262db32635b52c44bb3b58c14a68c15779c86c8d +d987a5eba5c3f0bcd6efc8deefcce0e5c9e0dcc7e0d5c7e1d0c9e3ccc7e2cac7e2c9c5e1 +cac5e2ccc6e2cfc6e1d2c6e1d5c2ded8bedbd8bddad6bfdcd3c0ddd0c2dfcdc5e1c9c8e4 +c5c9e5c4cae6c3cbe5c4cbe5c6cae4cacae3cec8e2d1c7e1d5c6e0d6c5dfd6c6ded5c5de +d5c6ded5c5dfd6c5dfd6c4dfd6c3dfd6c3dfd5c2ded5c2ded4c3dfd3c3dfd1c3e0d0c5e1 +cdc6e2cac7e3c8c9e5c7c9e5cac8e4cfc5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d3c3df +d3c3dfd1c5e1cec7e2cdc6e2d0c6e2f5d8e7a54c5aa62622b72423c42425cb2726c92725 +c22625b12222a52b2bdfa8c2dbcae3cbc7e3c9c8e4cac8e4cdc6e2d0c4e0d3c2dfd4c1dd +d4c1ddd3c0ddd2c2dfd2c3dfd0c4e0d0c5e1d0c5e1d1c5e1d2c5e1d3c3dfd4c3dfd8c5e0 +e4c9e1e9c4dbc4869f9c40569f2635ae2427be2524cb2726d92b26de2e25cd2826c62425 +ad2022921a22a05467caa1b7dfcce3cfc4decec3dfd1c6e1d3c7e1d2c6e1d1c5e0d2c5e0 +d3c6e1d3c6e1d2c5e0d2c5e1d2c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +dc2e25d92b26d62a26d62a26d52926d22826cf2726cb2526ca2627c7252bc22635c22c44 +c73d55cb4e67ca5f77ca7087d38a9ddaa0b3e0b4c5e4c5d6e3cee2dccde2d5cbe2d0cae3 +cec9e2ccc8e2cdc7e2d0c5e1d3c2dfd4bfdcd4bfdcd2bfddd1c1decec3e0cbc5e2c8c8e4 +c4c9e5c3cae6c2cbe6c3cbe5c6cae4cacae4cdc8e2d0c7e2d3c6e0d5c5dfd6c5dfd5c4df +d5c4dfd6c4dfd6c3dfd6c3ded6c3ded6c1ded5c2ded4c3dfd2c3dfd1c4e0cfc5e1cbc7e3 +c9c8e4c5cae6c2cbe6c0cbe7c4cae6cdc6e2d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d3c4e0 +d4c5e1d2c6e1cec6e2cbc5e2ccc3e0f2d5e6a14553a02120b52423c52625cb2726c92626 +c22625b32223a82d2de1a9c3dbcae3ccc7e3cbc7e3ccc7e3cfc6e1d1c4e0d3c2dfd3c1de +d2c1ded2c1ded1c2dfcfc4e0cfc5e1cec5e1cec6e2d0c6e2d1c6e1d3c5e1d4c5e0dec8e0 +e9c6d9ca93a4a444599c1f2aa72021b92424c52725c92825cc2726d22a26c82625aa1f21 +981d1fa04f5fc091a7d9bfd9dccce4d1c4e0d2c5e0d0c4e0d0c3e0d0c4e0d3c6e1d4c6e1 +d4c6e1d3c6e1d3c6e1d2c5e1d2c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d92b26d62b26da2b26dd2d26dd2d26dd2d26dc2d26da2c26da2c26d62b26cd2826c82526 +c42525c02526ba2528b9292fbe3b46c85261cc6575cf798ad48c9fdba0b3e4b7c9e8c6d8 +e1ccdfdaccdfd5cde0d1cbe3d1c7e2cfc4e0cfc3e0cec2dfccc2dfcac1dfcac2e0cbc4e1 +ccc6e2cdc7e3ccc7e3ccc7e3cdc7e3ccc6e1cdc5e1cec6e1d0c7e1d2c7e2d3c7e1d1c3e0 +d2c3dfd2c2dfd3c3dfd4c3dfd5c3dfd4c3dfd3c2dfd1c0ded1c3e0d0c4e0cec6e2cac7e3 +c8c9e5c4cae6c1cce7c0cde7c4cae5cdc6e2d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d3c4e0 +d3c4e0d1c5e1cec6e2ccc6e2cac0def2d3e5a44a59a12220b52423c52625cb2726c92625 +c22425b12222a52a2bdfa8c2dbc9e2cdc6e2cec7e3cfc6e2d1c6e1d2c4e0d3c3dfd3c2df +d2c2dfd1c3dfcfc4e0cfc6e1cec7e2cac5e2cdc6e2d3cae4d0c7e1d0c2dfd6c4dedfbed4 +ce98a5ab535d9e1f25ae2222b92323c22625c82825c72825c12624c12724a9202196201e +ab5862c799abd5bed6d5c6e0d2c2dfd4c6e1d4c6e1cfc4e0d0c3e0d0c4e0d3c6e1d4c6e1 +d4c6e1d3c6e1d2c5e1d2c5e1d2c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +cf2826d22a26d62b26d92d26d92d26d92d26da2b26dc2e25dd2e25d92d26d32b26cf2a26 +ce2926cf2826cf2826d02826cd2726ca2526c32427be252fc13547ca5365d57284d98c9d +d59daed3aab8d7bac7dbc8d7dbcee4d6cce5d3cae4d2c7e2d1c4e0d3c3dfd3c4e0d3c3df +d3c2dfd3c2dfd5c4dfd4c5e0d3c5e0d0c4e0cfc4e0cdc4e0cdc6e2cdc6e2cec7e3cec5e1 +cec3e0cfc4e0cfc4e0d0c4e0d1c3e0d0c2dfcfc0decfc1decfc3e0cfc4e1cec6e2ccc7e3 +cac8e4c7cae5c5cbe5c5cbe5c8cae4cec7e2d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d2c3df +d3c3dfd1c5e1cdc5e1cdc8e3cbc2dff3d6e6ac5562a62622b52423c42425cb2726c92725 +c12424ae2022a22626dda5bedbc9e2cfc6e1d0c7e2d2c6e1d4c5e1d3c3dfd2c3dfd2c3df +d2c3dfcfc4e0cfc6e1cec7e2ccc7e3cac6e2ccc7e2d4cae3d8cbe3d7c6ded7bbd2cc99aa +a74e55a62a2aac1f21c02424cb2726cb2825c42625bc2524b42523a724218c1e1c9e5155 +cc9eacdec7dbd7cbe4cfc4e1d0c0ded3c4e0d2c4e0d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1 +d2c5e1d2c5e1d2c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +bc2324ca2b26cd2826c82725c82625ce2826d62b26d92e26d72c26d42b26d52c26d62c26 +d42b26d42b26d92b26dd2e25df2e25dd2d26da2c26d72a28d22a2cc6262cb6232aa7202a +a12a38b14b5bc97585dd97a7e3aabee3b5cce2b9d3e5c1d9eac9dfebcde2e8cce2e0c8e0 +d8c1ddd6c1ded7c6e0d3c4e0d2c4e0d2c6e1d3c6e1d2c6e1cfc3e0ccc0decac1dfcdc6e2 +cdc8e4cdc7e3cac3e1c9c2e0c9c0dfcbc0decdc2dfcfc4e0cfc4e0cfc4e1cfc4e1d0c5e1 +cfc6e1cec7e2cdc7e2cdc8e2cfc6e1d0c6e2d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d2c3df +d3c3dfd2c6e1cec6e2cec8e3cbc2dff2d4e5ab525fa32321b42222c42425cb2726c92725 +c12424af2022a22727dea7c0dcc9e2d0c5e1d2c5e1d4c5e1d3c4e0d3c3dfd2c3dfd2c3df +d0c4e0cfc5e1cec7e2cdc8e3cac5e1d0c9e3cec4ded3c3dae8d3e5e8ccddcb9fafa75763 +9c1f20ba2724c02424c62625d42b26cd2926bc2324b02322a82521851818a15554c59da8 +d5bed1d5c7e1d2c9e4d2c7e2d1c1decdbcdbd2c4e0d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1 +d2c5e1d2c5e1d2c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +941b1da21f20ae2022bb2424c52825c82725c52625c12424c82725d32c26d42b26d52b26 +da2e26dd2f25dd2f25d92d26d62a26d72b26d92b26d32a26ce2826d02726d22727cf2629 +ca2529c8252ac8252cc32534b72437b33147c75d71e58799f4a9b9f3b5c5ebbbcde5c2d3 +e1cbdedbcbe3cfc6e1cac3e1c6bfdec9c0ded1c3dfd4c4e0d7c4dfd6c3dfd3c3dfcac5e1 +c6c7e3c5c7e3c3c3e1c4c3e1c7c3e1cec8e3d5cee6d7cee6cfc4e0d0c3e0d2c2dfd3c3df +d4c3dfd5c3dfd6c3dfd6c3dfd4c4e0d2c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d3c3df +d3c4e0d2c6e1cdc6e2cfc9e4cbc2dff0d2e4a74f5c9f2020b32122c42425cb2726c92725 +c22425b02122a5292adea7c0dcc9e2d1c5e1d4c5e1d3c4e0d4c4e0d3c3dfd2c3dfd1c4e0 +d0c5e1cec5e1cdc6e2cfc7e2d9d0e8d6cbe3d2bfd5e6c8d9ebc4d2ce9faca9616e9d262c +b82323cd2726d22a26cd2826cd2826d12926cb2826b32323931b1c883335c199a3e7d3e4 +dbcee5d2c4e0d2c3dfd5c4e0d2c1decbbadad1c3e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +b562649a312e96211e9a1e1f9d1e1fa31f20ad2322b82724b42423b12222c22625ce2926 +cf2926cd2826cb2726cb2726ce2826d42b26da2d26dd2e25de2f25df2e25e02e25e02e25 +e02d25e32e25e52e25e32e25d32726c32525bf2626ba292aaa24279f262aaa4751c67c88 +e4abbaf5cadaf4d2e3ecd1e4e4cce2dcc5dfd9c1ddd6bfdcd4bcdad2b9d9d0bddbcfc4e0 +cfc9e4d2cde6d4cfe7d0cbe5ccc6e2c6c0dfc2bbdcc3bbdccfc4e0d1c3e0d3c2dfd5c2de +d8c1dddac0dcdbc0dcdbc0dcd8c0ddd3c3dfd1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d3c3df +d3c4e0d3c7e2cec7e2d0cae4cbc2dff0d1e4a44b599d1f1fb12122c42425cb2726c92625 +c22425b12222a52b2bdfa8c2dcc9e2d0c4e0d3c4e0d4c4e0d4c4e0d2c3dfd2c4e0d0c4e0 +cfc5e1cec6e2ccc4e1cec4e0dccde5e1cbe2edc8d9eebdc9c786939d464f901d21ad2222 +d42a26cd2826cc2726cd2826c12424bc2324b82323a31f21902933c391a0d7c4d8dcd2e8 +d0c7e2d0c0ddd3bfdcd2bddbd0bedcd3c3dfd1c3e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +dfc3dbe6c2d9edc1d5e4b0c2c887959e4b567f191e851818941f1e9e2220aa2121b02022 +b32122b72223c02424ca2926cd2926c72625c02424c42425cc2726d22a26d92b26e02e25 +e52f25e52d24e42f24df2e25d92b26d22b26cd2826ca2826c52625c32525bf2526bc262c +b82a37ae293fa72f4cb65372ce7f9be3a6c4ebbcd6e8c7dee4cbe2dfcae2ddc9e1dfc8df +dbc3dcd6c0dad2c0dad1c0dcd3c4e0d5c7e2d6cbe4d5cae4cfc4e1d1c4e0d2c2dfd3c2df +d6c1ded8c0dcdac0dcdbbfdbd8c0ddd3c3dfd1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d3c3df +d3c4e0d3c7e2cec7e2d0cae4cbc2dff0d1e4a44b599d1f1fb12122c42425cb2726c92526 +c22625b32223a62b2ce0a9c2dcc9e2d0c3e0d3c4e0d4c4e0d3c3dfd2c4e0d0c5e1d0c6e2 +cfc6e2d0c6e2d2c5e1d3c2dfd5bbd6f0c9dcf5bccccb7a88a83b44a02224aa1f21be2324 +d42a26d62b26c62625c62925bf2b24a12020921a1ca33b4aca899ce8c9dedacde5cac0de +c8bbdbd2bfddd6c1ddd2bddbd0bfdcd7c9e3d2c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2cbe5d8cde6decee5decae2dabcd7d6afc7dfadc0e3a9b7cb8993b15d679b2e3e981d2b +9e1f2ca01f29a41e25a71f21ae2122b82423c12825c72925cb2826cc2726cd2826cf2826 +d32a26d62b26da2b26da2b26d72c26d52b26d42c26d62b26d62b26da2d26d72b26d02726 +cb2526c32425be242ab92636b22e40ab3a4da84c5fb16677bf8391ce9ca9e0b0bff3c0d1 +f1c0d3efc1d5e9c2d9e3c2dadcc2dcd6c3ded3c2dfd0c2dfd0c5e1d0c5e1d0c4e0d2c4e0 +d2c3dfd4c3dfd6c1ded7c1ddd5c2ded2c2dfd1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d3c3df +d3c4e0d2c6e1cec6e2cfc9e4cbc2dff1d2e4a74e5c9e2020b32122c22425c92725c92526 +c22625b42423a82e2de1a9c3dcc9e2cfc3e0d3c3dfd3c3dfd2c4e0d1c4e0d0c5e1cfc6e1 +cfc6e1d1c6e1d5c6e0ddc6dfe8c5dbebb5cacc7c8caf3f4aac2428b72323c32525cc2626 +d62b26da2c26c52625ab21219d201f9a2e29ab5960cc92a4e8c1d9e0cae2d6c9e3cbbddc +cbbbdbd3c1ded7c4dfd5c3dfd1c3e0d3c7e2d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +c5c2e0cbc5e2d0c7e3d3c6e1d5c4e0dac6e0e5cbe2edcfe2e5c0d9d8acc9d4a1bed296b1 +c7849eb569839d435b891a3088161a971c1ea72121ae2222b32123ba2323c12424c52725 +cb2925ce2a26d12b26d32b26d22b26d32a26d72c26dc2e25dd2e25dc2d25db2d26da2c26 +da2d26d82d26d02826cd2726c52625ba2524b32523b22a26b83830bf4844c15358c05d69 +c97486de93a6eaaac0edb7cee8bdd5e0bfd9d9c3ded4c5e0d1c5e1cec6e2ccc7e3ccc7e3 +cdc6e2cec6e2d0c5e1cfc4e1d0c4e0d0c3e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d2c3df +d3c4e0d2c6e1cec6e2cec8e3cbc2dff2d3e5aa525fa32220b42222c22425c92725c82625 +c22625b52423aa3030e3abc4dcc9e2cfc4e0d3c4e0d3c4e0d1c5e1d0c5e1cfc6e1cec5e1 +d0c6e2d2c6e1d6c4dfdec1dbe9b9d1cc859aa53849ac232bbd2426cb2726d22826d42a26 +cf2826c52625b22122931a1c851f19a0625fcba4aae0c9dadac9e2d2c1ded1c0ddd3c0dd +d2c2dfd2c3dfd3c6e1d3c9e3d0c9e2cdc6e0d1c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +cbc4e1cdc6e2ccc4e1cbc2dfcec3dfd4c6e1d6c7e1d5c4dfd7c5e0dccae2e3cfe5e0cbe2 +d8bddacfaccac99cb7c386a1b87184ac5463a43b469a2125971c1ea11f20a82021ae2322 +b32323b52523b82523bc2524c72725cf2826d42a26d52a26d62a26d92b26da2e25da2e25 +da2d26da2c26d92d26d82d26d82d26d52b26d12926cd2826cc2826c82725bf2624af2424 +b3353ec14e5bc65d6dc3677cc5798ecc8fa8d5a8c4d9bcd7d6c4dfd0c6e1cbc8e3c9c8e4 +c9c9e5c9c8e4cac8e4cbc7e3cec6e2cfc4e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c3e0 +d2c4e0d1c5e1cec5e1cec7e2ccc1def2d5e6ac5466a52522b42222c12424c82625c92725 +c52625b82423ab3032e3acc5dccae2cfc5e1d2c6e1d2c5e1d1c5e1d0c5e1cec5e1cec5e1 +d0c6e2d3c4e0dcc2dddeb1cec9849dab475ba32028b52223c82625d32926d92b26d12826 +c02324b021229e1e1f9225249d5c5abe9e9fd6cbd4d4d4e7c9c6e2cfc1decdbadad5c2de +d6c5e0cec3dfc9c3e0cccae4d1cce3cfc7dfd0c5e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c3e0d1c3e0d0c3e0d0c3e0d1c4e0d0c4e0d0c4e0d1c5e1 +d1c5e1d1c5e1d1c5e1d1c5e1d0c4e0d0c4e0d0c4e0d1c5e1d1c5e1d0c4e0d1c4e0d1c3e0 +d1c4e0d1c4e0d2c4e0d3c5e1d3c5e1d2c4e0d1c4e0d1c4e0d0c3e0d0c4e0d0c4e0d1c5e1 +d1c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c8e3d1c9e4cfc5e1cbc2dfccc3e0d1c6e1d0c4e0ccbedccdbfddd3c5e1d3c8e3d2c7e2 +d2c4e0d8c6e1e5cde3edd1e4e9c2dad7a5bdc7899fb97285b36172b15764a94850a03639 +972323931e1e931e1d9b1e1fad2222c22525c72525c72525cb2626cd2826d22a26d32a26 +d32a26d52b26d72c26da2d26da2e25dc2e25dd2d25dd2d25dd2d25db2d26d32b26c72825 +c12825ba2524b42223af2326b02c37b64a5abf6a7cc48499c99fb4ccb5ced0c7dfcbcae3 +c9cae4cac9e4cdcae4d0c9e4d0c6e2d2c5e1d3c5e1d3c5e0d3c5e0d3c5e1d2c4e0d1c3e0 +d0c2dfcfc2dfd3c5e0d2c4e0d1c4e0d1c3e0d1c3e0d1c4e0d3c5e1d4c5e1d3c5e1d0c3e0 +d0c3e0d0c3e0d1c4e0d1c4e0d3c5e1d1c4e0d1c4e0d0c3e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c5e1d0c6e1 +d0c7e1d0c5e0cfc4e1d1c7e2cec2dff1d3e5ad536fa6242cb12222bc2424c72725cd2826 +cb2626bb2324aa2b36e1abc4dccde5cdc8e4d0c7e3d4c9e3d4c5e1d2c4e0d2c9e3cfc6e1 +cfc2dfd9c3dee0b4d0cf87a0ae4359a22023b82223c52525cc2726cf2826ce2826c02325 +a82022961c2291212faa5c69ca9da8d9c3d0d4cee0cacee5cacae5cfc6e1ccbddcd2c2df +d3c6e1cdc2dfc9c2e0cdc6e2d2cae3d2c7e1d1c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d0c3e0cfc2dfcfc2dfcfc2dfcfc3e0cfc4e1d0c5e1d0c6e1 +d0c7e1d0c7e1d0c6e1d0c6e2d0c5e1d0c5e1d0c5e1cfc6e1cfc6e1cfc4e1cfc4e0cfc2df +d1c3e0d1c3e0d3c5e0d3c6dfd3c7e1d2c4e0d1c3dfcfc2dfcfc2dfcfc3e0cfc4e1d0c6e2 +d0c6e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d0c4e0d0c4e0d0c4e0d0c4e0d0c4e0d0c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d0c4e0d0c4e0d0c4e0d0c4e0d0c4e0d0c4e0d1c3e0d1c3e0d1c3e0d1c4e0d3c4e0d4c5e1 +d2c4e0d2c3dfd3c3dfd6c5e0d9c7e1e0cae2e3cce3eacee3e8c9e0ddb8d2cba0b7b6849b +a1657b9252668943568e3748982434a41e24af2022b32023b72223bc2224bf2324c32525 +c82625cd2726cf2826d32b26d42a26d72b26da2b26dc2d25de2e25de2f25db2e26d72e26 +d72e26d32a26d62b26d42a26cb2726bc2524ad282aa53b42bd7983cba4b2d7c7d7d0cadd +cac8dccdc9dfd3cce3d5cae2d2c4dfd2c4e0d3c4e0d4c5e1d4c6e1d3c5e0d2c4e0d1c3e0 +d0c2dfcfc2dfd4c5e1d2c4e0d1c3e0d0c3e0d0c3e0d1c4e0d4c5e1d4c6e1d5c7e2d0c3e0 +d0c3e0d0c2dfd1c3e0d3c5e1d3c5e1d3c5e1d1c4e0d1c4e0d2c5e1d2c5e1d2c5e1d2c5e0 +d2c5e0d2c5e0d2c5e0d2c5e0d2c5e0d2c5e1d2c5e1d1c4e0d1c4e0d2c5e1d2c5e1d2c5e1 +d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e0d2c5e0d2c5e0d2c5e0d2c5e0d0c6e1cec8e2 +cdc8e2cec7e2d1c3e0d5c8e2d0c2dfefd2e4ac4f77a42238ac2122b52523c42625d32a26 +d32a26bc2224a62537dba8c1dbd1e8cbcde5cdcae3d3c9e3d3c4e0d2c3dfd4c9e3d3c5e1 +d2bedcd8b2d1d18ba5b6455ab3242bb72323c92725cf2926cb2825c22425ba2323a92021 +8f1e327f1f3f99506bca95ace3bed6e1cae2d5c7e1cec7e2cfcae5cbc6e2ccc5e2cdc6e2 +cec5e1d0c5e1d1c5e1d3c4e0d3c3dfd3c4e0d2c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2c5e1d2c5e0d2c5e0d1c3e0d0c2dfcec1dfcec1dfcec1dfcec3e0cec4e0d0c6e2cfc6e1 +d0c8e2d0c8e2cec8e2cec8e3cec7e2cec6e2cec6e2ccc6dfcdc7e0cec4e0cec3e0cfc2df +d1c3e0d2c4e0d3c6dfd3c7dbd5c8ddd4c6e0d1c2dfcfc0decec0decec2dfd0c5e1d0c7e3 +d0c7e1d1c4e0d2c4e0d2c4e0d2c4e0d2c4e0d2c5e0d2c5e0d2c5e0d2c5e1d1c4e0d1c4e0 +cfc4e0cfc4e1cfc4e1cfc4e1d0c5e1d0c5e1d0c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d3c4e0d4c5e1 +d3c3dfd1c2dfd0c3e0cfc4e1d0c6e2d3cae4d3cae4d3c8e2d3c5e0d5c5e0dbc9e2e5cee3 +e9d0e4dfc0d9cba7c1be8ca6ac607999304899253696202a971d259e1f28a62228a92022 +ac2021b02122ba2323c12424c82625cf2826d32a26d62b26da2d25dd2d25dc2e25da2d25 +e02f25e32f25e02e25e12e25db2e26c92725b82724c25152f3b0b5f1c8cce8d5dcd4cfd9 +c7c9d6c6c9d6cccadad0c8d9cec3d9cfc1decec1dfcfc1decfc2dfd0c3e0d1c4e0d4c6e1 +d5c7e2d6cae4cfc1decec2dfcfc3e0cfc4e0d0c4e0d1c4e0d2c5e0d2c4e0d1c4e0d3c6e1 +d1c4e0d0c3e0d1c3e0d1c4e0d3c5e1d4c6e1d5c7e2d5c7e2d2c5e1d2c5e1d2c5e1d2c5e0 +d2c5e0d2c5e0d2c5e0d2c5e0d2c5e0d2c5e1d2c5e1d1c4e0d1c4e0d2c5e1d2c5e1d2c5e1 +d2c5e1d2c5e0d2c5e1d2c5e1d2c5e0d2c5e0d2c5e0d2c5e0d2c5e0d2c5e0d0c6e1cdc9e2 +cbcae3cec7e2d2c3dfd6c6e1d0c2dfefd0e3ac4c7aa1203bab2024b52623c22725d22a26 +d22a26bb2224a22339d7a5bfd5cde4cacae5cdc6e2c9bfdecdc2dfcec3dfccbeddddc8e1 +e0b8d6c984a1ad4359ab2127c52627d32b26cf2826c42425bf2424bb2424b123239a1e24 +781a36975879ca99b5e2b9d5e5c8dfe2cae2d7c8e2cdc2dfc5bfdecac7e3cac8e4cac7e3 +cdc6e2d0c6e2d1c4e0d3c3dfd5c2ded3c3dfd3c3dfd1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2c5e0d2c7e1d2c7e1d1c4e0d0c2dfcec1dfcec1dfcec2dfcdc2dfcec3e0d0c5e1cec7e2 +d0c7e2cfc7e2cec8e3cec8e3cec7e2cec6e2cec7e2ccc6e1d0c6e2d0c5e1d1c6e2d2c6e1 +d4c6e1d5c7e2d5c7e1d5c7dfd8c9e2d5c7e1d3c4e0d1c3dfcfc2dfcfc3e0d0c5e1d1c6e2 +d1c7e2d1c4e0d2c4e0d2c4e0d2c4e0d1c4e0d2c5e0d2c7e1d2c5e0d2c5e0d1c4e0d1c4e0 +cfc3e0cfc4e0cfc4e0cfc4e1d0c5e1d0c5e0d0c5e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d4c5e1d4c5e1 +d3c3dfd1c3dfcfc3e0cdc2dfcdc3e0cdc5e1cfc6e1ccc3e0cec3dfd3c5e0d7c7e1ddcae2 +e3cbe2e7cbe1e8cae0eac9ddf2d1e1f5d3dee5bec8c79aa6a067727d313e721320761219 +87181c971d1fa22022aa1f21b22022bc2224c32325c92526cf2726d62a26d82b26d62b26 +dc2e25e32f24d72b26db2d26d82d26c72825c13730d87b7bfbd8dafce1e4eee7e9dde4e7 +d3e2e6d0e0e6cedae1cdd2dccaccd8cbc5dacac2d9c9bfd7c7bed7c8bed7c9bfd9cac1dc +d0c5dfd0c7e2d1c6e1d0c6e1d3c7e2d3c8e2d4c7e2d4c6e1d1c5e1cfc4e0cec0ded3c6e1 +d2c5e1d1c4e0cfc3e0cfc3e0cfc3e0d0c3e0d3c5e1d3c5e1d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d2c5e1d1c4e0d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d0c6e1cdc8e2 +cbcae4cec6e1d2c2dfd6c5e0d0c0ddefcee2ac4a74a11f36ac2122b82623c12724cf2826 +cf2826b92123a1253bd6a6c0d5cbe4cec7e3d4c6e1d2c7e2c3c5e2c4c6e2dbcbe4e1b8d4 +cd819cb13c55a41e21af2022c52625ce2b26c52725be2424bb2324b42223a52021962334 +9e526ec594b1efc6ddebcae0dec2ddd9c3ded6c5e0d2c6e1c9c3e0ccc7e3ccc6e2ccc7e3 +cec6e2d0c5e1d1c4e0d3c4e0d3c4e0d3c4e0d2c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2c5e0d2c7e1d2c7e1d2c5e0d1c4e0cfc4e0cfc4e0cfc4e0cfc3e0cfc3e0cfc4e0cec4e0 +cfc4e1d0c6e2d0c6e2cfc6e1cfc8e2d0c7e2d0c6e2d0c5e1d1c3e0d1c3e0d1c3e0d1c3df +d1c3dfd1c3dfd0c2dfd0c2dfd0c0ddcfc1decfc1ded0c2dfd0c2dfd0c3e0d1c3e0d1c4e0 +d2c5e1d0c2dfd0c3e0d0c4e0d1c4e0d1c4e0d2c5e0d2c5e0d2c5e0d2c5e1d1c4e0d1c4e0 +cfc4e0cfc4e1cfc4e1cfc4e1cfc4e1d0c5e1d0c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d3c4e0d4c5e1 +d3c3dfd1c3dfcfc3e0cdc2dfccc3e0cbc4e1cbc4e1cac2e0ccc3e0d1c4e0d5c5e0d3c2df +d1bcd9d4bbd9d9bfdadec6dddacbe1d0cddfcbcad7d2cad8e2d4e1edd6e4e6c4d2cda1b0 +b5788a9d4e618f2b3f932133981c289e1c25a61d26ae2027b32028b72125bb2224c12324 +c22425d62a26cc2726d22b26ce2b26bd2925c74f4df2a3a5fcdde0fae1e2e9eaeae1eded +dff0f1dceff0d9ebecd7e5e6d9e0e3dbdae3dbd3e0d5cedcd0c9d7ccc5d4c9c3d3c8c1d5 +c8c1d5c8c0d6ccc4dccdc4decfc4e0d0c5e0d1c6e1d1c6e1d1c6e1d1c6e1d0c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d0c3e0cfc3e0cfc3e0cfc3e0d0c3e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0cfc6e1cbc8e3 +cac9e4cec6e2d1c2ded6c5e0cfbfddedcce1aa4670a11e30ae2222b92424c12624cd2826 +cc2726b92124a32b44dbacc5dbd0e7cfc6e1d1c1ded3c6e1cbc8e3d9d0e7e3bfd5c1798c +a72f3bac1f21be2424c72625c02424bc2324c22725bd2624ad2122a21f219b2530af586d +dfa9c3e2b9d5e7c7dedfc3ddd5bddbd1bbdad0bfddd4c7e2d5cbe4cdc4e1cdc6e2cdc6e2 +cec6e2d0c5e1d1c5e1d1c4e0d2c4e0d2c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d2c5e0d2c7e1d2c5e0d2c5e0d0c5e1cfc4e1cfc4e0cfc4e0cfc4e0cfc4e0cfc4e0 +d0c3e0cfc4e1d0c5e1d0c6e2d0c7e1d0c7e1d2c5e1d2c3dfd1c1ded0c0ddcfc0decfc1de +cfc3e0d0c4e0d1c6e1d2c7e2ccc2dfcec3e0d2c6e1d4c7e1d4c6e1d3c5e1d1c3dfd1c1de +cfc0ded0c2dfd0c2dfd0c3e0d0c4e0d1c4e0d1c4e0d2c5e1d2c5e0d2c5e1d1c4e0d1c4e0 +d0c4e0cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1d0c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d3c3dfd3c3df +d3c3dfd1c3dfd0c3e0cfc4e0cfc4e1cec5e1cec6e2d0c9e3d1c9e4d0c5e1cfc2dfd3c4e0 +dbcae3ddcae2dbc5dfd4c0dbcac1dcc5cae3c6d0e6cfd2e9d2d1e7d3cae2d4c4dbd9c1d9 +e0c0d7e8c0d7eab9d0d99cb6be7590a8506e9d3b5a962c49911e3b8d182c971b22ab2022 +ac1f21bf2624ba2323bf2625b32223a12020b54a4aeda9abfbdddff2dfe0e0e4e2d8e8e5 +d6eae9d6eae9d8eae7e0ece9e7edebededecede9e9e9e5e6e5dfe3dedadfdad4ddd7d1db +d3cedcd0cadcc9c3d7c9c1d7c9c1dacac2dccbc3decdc4e0cfc6e1d0c7e3d2c7e2cdc2df +cfc4e1d2c7e2d4c9e3d4c7e2d2c7e2d2c6e1d2c6e1d4c7e2d0c4e0cfc4e1cfc4e1cfc4e1 +cfc4e1cfc4e1cfc4e1cfc4e0cfc4e0cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1 +cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1cfc6e1ccc8e4 +cbcae5cdc5e1d1c0ded7c5e0d0bfddeecce1ab466aa41e2bb02222bb2524c22625cc2726 +cb2726b52224a02b44daadc6dbd0e7cdc6e2ccbedccbb9dad8c6e1dfbcd6bf7487a9363d +b12223c12424cb2825cb2925c42625c12624bf2624aa2021971b1e9a2a36b15e70d097ad +edc7dce0c1dcdcc0dcdbc4dfdac5dfd5c2ded1c0ded0c2dfd0c4e0cec4e0cfc5e1d0c5e1 +d0c5e1d0c6e2d0c5e1d0c5e0d0c5e0d1c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d0c4e0d0c5e1d0c5e0d0c6e1d0c6e1d1c5e0d2c5e1d1c4e0d1c4e0d1c4e0d0c4e0d0c3e0 +d1c3e0d1c3e0d2c4e0d2c4e0d2c4e0d2c4e0d3c3dfd2c1ded3c3dfd2c3dfd3c5e1d3c6e1 +d2c9e3d0cae4cfcae2cfcce0cbc8d8cecbddd2cce1d4cde2d5cce2d4c8ded2c7dcd3c4da +d1c3ddd2c4e0d0c2dfd0c2dfd0c3e0d0c3e0d1c4e0d1c4e0d2c5e1d2c5e1d2c5e1d2c5e1 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d2c4e0d2c3df +d2c3dfd2c4e0d1c4e0cfc4e1d0c7e2cfc6e2cec7e2d0c9e3d0c9e3ccc3e0cbc0deccc0de +d2c3dfd6c5e0d7c4dfd4c3dfd1c6e2cacae5c1c5e2bfc0dfc5c2e0d0c9e3d7cce5d8c9e3 +d9c5e0dbc4dee0c4dee0bdd9deb6d3dfb2d0dcaac8cf99b7b97d9da660809d4661a03143 +9a1e25a120259e1d20a11f21991d1f941f23b15a5fe7acb2edcccfe1d3d6d7dcded5e2e3 +d6e5e5d6e5e3dbe6e2e3e9e6eaece8ebece5edede3efece7edebe7ece9e8e9e7e8e6e3e7 +e3dee7e0dce6d9d3e2d6d2e2d4cee2d1cbe2cfc8e0cec7e1cdc6e1cec7e2cfc6e1c7beda +cac1ddcec5e0d0c7e1d0c7e2d0c6e1d0c5e1d1c6e1d3c8e2d0c5e1d0c5e1cfc4e1cfc4e1 +cfc4e1cfc4e1cfc4e1cfc4e0cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1 +cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1cec5e1cbc8e3 +cbc9e4cec5e1d2c0ddd7c4dfd0bfddf3cde1ab4668a41e29b12223be2724c52725cb2726 +c82625ae20229a283fd7a9c2d8cae3cdc4e0d1c2ded9c0dcdcafd1c17794a7303cb02322 +c52825cd2926cc2726c92825c72825bf2524ab20219b1b1f9b273bb15e74cf97ade4bed5 +dfc6dfdcc6e0d8c4dfd7c2ded7c4dfd7c5e0d4c5e0d1c2decfc0ded0c3e0cfc4e0cfc4e1 +d0c5e1d0c6e2d0c6e2d0c6e1cfc6e1d0c5e1d1c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d0c4e0cfc4e1cfc4e1d0c5e1d0c5e1d2c5e0d2c5e0d2c5e0d2c5e1d2c5e1d3c5e1d2c4e0 +d2c4e0d2c4e0d2c3dfd2c2dfd2c2dfd2c2dfd2c3dfd3c4e0d6c7e1d6c9e2d4cbe0cfcbd7 +c8c9cbc0c2bcb9beafb4bba7b6bea6bbc1aabfc4b5c5c6bccac7c2cfc7c8d2c8ccd6cad2 +d9ccdfd2c4e0d0c2dfd0c2dfd0c3e0d0c3e0d1c3e0d1c4e0d1c4e0d2c5e1d2c5e1d2c5e1 +d2c5e1d1c4e0d1c4e0d1c4e0d1c4e0d0c3e0d0c3e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d2c4e0d2c3df +d2c3dfd3c3dfd2c5e1d1c5e1cfc6e2cec6e2cec6e2c9c3e0c9c2dfcdc5e1d1c7e2d3c8e2 +d2c4e0d1c2dfd2c2dfd2c3dfd3c4e0d2c3dfd1c3dfd0c2dfd2c2dfd3c3dfd4c4e0d3c2df +d2bfddd4c1ded9c6e0d7c4dfd8c5e0decae2e0cbe3dcc7e0d3bcd9c9adcccb9fbad094a9 +c57a8cb76273a84a5b9f3b4a8f2b39872b3996515ebb8b95ccb0b8c8bcc3cbcbd2ccd1d8 +cfd5dad4d7dadcd9dbe3dadbe5dddae2e1d8e2e3d8e7e7dee9e9e3ebeae6eceae8e9eae9 +eae8ebe9e7ebeae7eee7e5eee2dfecdedae8d9d5e7d6d1e5d3cfe3d1cbe2d1cbe2cac3d9 +ccc4dccec6decec5ddccc4dccac2dccac1dccdc4dfd0c7e1d0c6e1d0c6e1d0c5e1d0c5e1 +d0c5e1d0c5e1cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1 +cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1cfc4e0cfc4e0cfc4e0cfc4e0cfc4e0cec5e1cbc8e3 +cbc9e4cfc5e1d3c0ddd9c4dfd2c1def4cfe2ad4866a52027b32122c02724c72725cc2826 +c52725aa1f2196253ad8a5bedcc8e1d2c2dfd8bfdcdeb1d2ce7da3ab304bb02122c22625 +cb2825cc2826cb2825c72725c12624b021229b1b209e2c46b76480d199b2e1bcd5e1c8e1 +d4c3dfd6c7e2d6c6e1d0c0ddd0bfddd3c4e0d6c6e1d4c5e0d1c1ded1c2ded1c3dfcfc3e0 +cfc4e1d0c5e1cfc6e1cec7e2cec7e2cfc6e2d0c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d0c4e0cfc4e0cfc4e0cfc4e1cfc4e1d1c4e0d2c5e1d2c5e0d3c6e1d3c7e1d4c6e1d4c6e0 +d4c6e0d3c4e0d2c3dfd1c2ded1c0ded1c0ded1c1ded4c5e1d3c9dcd0c9cac7c6b3bcc29a +b0bd82a7b8719fb2649ab05b9cb25ba1b563a5b76aabb975b2ba86bbbc9dc8c3b5d4cacf +dbcee4d2c4e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c4e0d1c4e0d1c4e0d2c5e0d2c5e0 +d2c5e0d2c5e1d1c4e0d2c4e0d2c4e0d1c3dfd1c3dfd1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d2c4e0d2c3df +d2c4e0d2c4e0d3c5e1d1c5e1cfc6e1cec6e2cdc6e2c9c3e0c9c2e0ccc5e2cfc7e2d1c8e3 +d2c7e2d1c4e0d1c3e0d1c0ded3c0ddd5bfdcd7bfdcd9c1ddd7c1ddd3bedcd2bddbd2bedc +d3c0ddd4c5e0d5c7e2d3c5e0cfc4e0cec4e0d0c7e3d1cae4d1cbe5d4cbe4d9cae3e6cbe1 +e6c1d5d9a9bfcf9aaec78b9fb87b8ead7284a57486a78394b19babb2a8b7b5b3c0b6b6c1 +bab8c3c5bcc6d1c2cadac7cddccbcddcd5d0dadad2dcddd7e0e1dbe5e5e0e8e7e4e9e8e6 +e8e9eae9e9ebedebefecebf0ebe8f0e8e7eee5e3ece3e0eadfdeeaddd9e7dcd8e6d6cfdf +d6cfe0d5cedfd0c9dcccc4d7c7c0d4c6bfd5cac1d9cfc6dfd0c7e1d0c7e2d0c7e1d0c6e1 +d0c6e1d0c5e1d0c5e1d0c5e1cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1 +cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1cfc4e0cfc4e0cfc4e0cfc4e0cfc4e0cdc4e1cbc8e3 +cac8e4cec4e0d4c1dddac5e0d3c2dff4d1e3ae4a65a82026b52323c12624c82725cc2826 +c52725a72021962638dca6bde6c9e0ddbfdbd7a7ccc67aa0b43d5cb12024c42425cb2825 +c82625c82725c72725bf2424b42123a11e2295213dac5e7dcf9bb9e3c1dae2c9e1d4c3df +d0c4e0d1c6e2d1c6e1cec2dfcfc0ded1c2ded3c4e0d4c3dfd2c2dfd2c2dfd2c2dfd0c3e0 +cfc4e1d0c5e1cfc6e2cdc6e2cdc7e2cdc7e3d0c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +cfc3e0cfc4e0cfc4e0cfc4e0cfc4e0d1c4e0d2c5e1d2c5e0d3c6e1d3c7e1d4c6dfd4c6e0 +d4c6e0d3c4e0d2c3dfd2c2dfd2c1ded1c0ded2c3dfd2c7e1cbc7c5bec19eb0bb76a5b853 +9db63d97b73c96ba3c94ba3c90b73d93b73d95b43c98b13b9db04aa6b06ab5b894c7c2c0 +d1c8ded1c6e1cfc4e1cfc4e1cfc4e0cfc4e0cfc4e1cfc4e1d1c4e0d1c4e0d2c5e0d2c5e0 +d2c5e0d2c5e0d2c5e1d2c4e0d2c4e0d1c3dfd1c3dfd0c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d3c3dfd3c3df +d3c3dfd2c4e0d2c5e1cfc4e1cfc5e1cdc5e1ccc5e2cec7e2cec7e2cac3e1c8c0dec9c2df +cfc6e1d2c7e2d2c6e1d2c3dfd3c0ddd5bfdcd4bcdbd4bbdad3bbdad4bddbd4bfdcd4c1dd +d4c3dfd3c4e0d2c4e0d2c5e1d2c6e1d0c6e2cfc6e2cdc6e2ccc7e3cdc7e3cec6e2d0c5e0 +d9cae3dfc8e1e7cae1eac8dde7c2d8ddbbd2d0b1cabfa7bfb6a6bcb3aac0aca7bca5a0b6 +a89db2b1a1b4bda9b9cab0bdccb6bfcec5c6cccbcacececfd5d4d3dad8d9dcdfe0e0e0e1 +e2e2e3e3e4e3e4e3e5e5e5e7e8e8eae8e8ebe9eaeceae9ece9e9ece9e8ece9e6ece7e3ea +e6e0e9e1dbe6dbd4e0d5cedbd0c9d7cdc7d8cec8d9d0caddcdc6dccec7decfc7dfd0c7e1 +d0c8e2d0c7e2d0c7e1d0c7e1d0c7e1d0c6e2d0c5e1d0c5e1d0c5e1d0c5e1d0c5e1d0c5e1 +d0c5e1cfc4e1cfc4e1cfc4e1cfc4e1cfc4e0cfc4e1cfc4e1cfc4e1d0c5e1cdc5e1cac8e4 +cac8e4cfc4e1d5c0ddd8c3ded3c3dff4d2e3ab4861a72024b32022c12624cb2925cd2926 +c22625a721219c2b38e3acc0f0c7dbe0a9c6c87997a73450a61e21c52425cf2926cb2726 +c62625c52725c12624b32022a51f23992543a75b7ec094b5d7bddae0cae2dbc6e0d2c2df +d0c7e2cbc6e2ccc5e2d0c6e2d2c5e1d1c3e0d1c1ded1c0ddd2c1ded2c2dfd2c2dfd2c4e0 +d0c4e0d0c6e2cfc6e2cdc7e3ccc7e2cdc7e3d0c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d1c4e0d2c5e1d2c5e0d3c6e1d3c6e1d3c5e0d1c3df +d4c6e0d5c7e2d3c4e0d2c3dfd3c4e0d5c6e0d0c7dac8c4bcb4bc8ca9b660a0b63e9bb93b +97be3c97c13c99c53b99c73b91bf3d91be3d8bb63e8ab03e8eac3c96aa42a0ac67aeb395 +bfbebdcbc7dbd0c7e2d1c6e2d0c5e1cec3e0cfc4e0d0c5e1d2c6e1cfc4e0d2c5e1d2c5e0 +d2c5e0d2c5e0d3c5e1d2c4e0d2c4e0d1c3dfd1c3dfd0c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d2c4e0d3c3df +d3c3dfd2c4e0d1c4e0d0c5e1d0c6e2cfc6e1cec6e2cec7e2cdc6e2cdc6e2cdc6e2cec5e1 +cec5e1cfc5e1d0c5e1cfc4e0d2c3dfd2c3dfd4c3dfd4c3dfd4c3dfd4c3dfd3c3dfd3c3df +d3c3dfd3c3dfd3c3dfd3c3dfd3c3dfd3c3dfd2c3dfd2c3dfd2c3dfd2c4e0d0c6e2cdc7e3 +ccc8e4d2c6e1d5c5e0d8c4dfd9c4dfd9c4dfd8c4ded7c6e0d5cae3ccc5e0beb9d5b6afcc +b0a5c1ae9eb9b29bb3b59bb0b39db0b0a6b3afaeb6b5b4bbbcbcc3c3c4cacbcad0cfcfd5 +d4d2d8d6d5dadbdadedcdddedfe0e0e2e3e1e5e6e4e9e9e5e9e9e4e9e8e4e9e7e5f0eced +ede9ebebe6ebe8e3e9e7e3e9e5e0e8e1dce7dcd5e1d6d1decdc8d8cec7dacfc9dcd0cade +d0c9dfcfc8dfcdc7decec7dfcfc7e0cfc7e2cfc6e1d0c6e1d0c7e1d0c7e2d0c7e2d0c7e2 +d0c6e2cfc5e1ccc4e1ccc3e0cdc3e0cdc3e0cdc3e0cec4e0cfc5e1d0c5e1cec6e2cac7e3 +cac6e2cfc4e0d5c0dcd5bfdcd0c4def5d4e3a24256a41e21b22022c12624cf2a26cb2825 +bd2324a82121a5343be4afbfeab2c6ca7388b33848b12323b52123c62625cf2a26c92725 +c22425c12624b72323a61f229a223ea55980cda9cbd8cbe4d0c9e4d0c0ded5c1ddd8c8e2 +d0c7e2cbc8e3cdc7e3cec5e1d0c5e1d1c4e0d2c3dfd2c3dfd2c3dfd2c3dfd2c3dfd2c4e0 +d3c5e1d1c6e1cfc7e2cec7e3cdc8e4cec7e3d1c6e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +cfc3e0cec2dfcec2dfd0c2dfd1c4e0d2c5e1d2c5e0d2c5e0d2c5e1d1c4e0d1c2dfc9bbdb +d3c5e0d7cbe4d3c6e1d0c5dcd4c8d7d5ccccc9c6abaeb9759cb34398b53b9dc13ba2ca39 +a2cc399cc93b93c43d8ec13e86b73f89ba3e81b0407eab4084ac3f8dac3d8da63c92a358 +a7b18cc3c3c2cfcadcd3cce4d0c7e2cbc2dfccc3e0d2c9e3d3c8e3cdc2dfd0c4e0d2c5e0 +d3c5e0d3c5e0d2c4e0d3c3dfd2c2dfd1c1ded1c3dfd0c3e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d2c4e0 +d2c4e0d2c4e0d1c4e0d1c4e0d0c5e1d0c6e2cfc6e1cfc6e1cfc6e2cdc6e2cec6e2cec5e1 +cec5e1cec5e1cfc5e1d0c5e1d0c5e1d0c6e2d0c7e2d0c6e2d1c5e1d1c5e1d2c5e1d2c4e0 +d3c4e0d3c4e0d3c3dfd4c4e0d4c3dfd4c3dfd5c2ded5c2ded5c1ddd4c2ded0c4e0cbc6e2 +c9c8e4cdc6e2d2c5e1d3c4e0d4c4e0d4c4e0d5c5e0d2c5e0cac1dfcbc5e1cfcae4d0cbe5 +d0c9e3cec3dec8b9d3c3b0c9bdacc2ada6baa4a1b59f9baf9d9aaba09dada7a5b3b4b1bd +bfbec7c7c5cccdcaced1d0d2d8d6d8dddedce0dfdbe0e0dbe0e1dae2e2dbe3e3dee9e6e4 +e8e4e4e8e4e4e9e5e7ebe7eaede8eceee8edeee9eeede7efebe6f0e8e1ecdfdae6d6cfde +cec9d7c8c3d3c7c2d3cbc5d5cdc7dbccc6decdc4dfcdc4e0cdc4e0cec6e1cfc6e1d0c7e2 +d0c7e1d0c7e1d0c7e2d0c7e1d0c7e1d0c6e1cfc5e0cdc4e0ccc3e0cbc2e0c9c3e0c6c5e2 +c6c3e1cec2dfd7c1ddd8c1ddd2c7e0f5d9e7a5465ba72027b82223c42425cb2825c62625 +bc2324b22823a93134dd8593d07686b53d47b72323c52725c82725c62625c42425c12424 +bc2324b32022a21e21962136ad587ec79bc1d2c3dfcfcde6cdcde6d0c6e2d1c0decfc0de +cdc6e2cac8e4cdc7e3cdc6e2cfc6e1d1c5e1d2c3dfd2c2dfd2c3dfd2c3dfd2c3dfd3c4e0 +d3c5e1d1c6e1d0c7e2cec7e3cdc8e4cec7e3d1c6e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +cfc3e0cfc3e0cfc3e0d0c3e0d2c5e1d2c7e1d2c7e1d2c5e0d1c4e0d1c4e0d4c6e1c9bbdb +cabcdccfc2dfd2c8dfd4cdcdcfcab7c2c298b0b86b96af3ba4c539aed037a8cf389fca3a +99c83b96c73c90c13d86b93f79ac417daf4079ab417caa4080ab3f82a93e7ea03e839f3c +9fb16eb7bba7c6c6c6d1ccd9d1cae0cec6e1cdc3e0d0c6e2d2c7e2cec3dfd1c4e0d2c5e1 +d3c5e0d3c5e0d2c4e0d3c3dfd2c2dfd1c1ded1c1ded2c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d2c4e0 +d2c4e0d2c4e0d1c4e0d1c4e0d0c5e1d0c5e1d0c6e2d0c6e2cfc6e1cfc6e1d0c5e1d0c5e1 +cfc5e1cfc5e1cec4e0cdc4e1cac7e3c7cae5c6cae4c7cae5c7cae5cacae4cac8e3ccc7e2 +cec7e2cfc6e1d0c5e1d2c5e1d3c3dfd3c3dfd4c3dfd5c2ded6c1ded5c1ddd2c2dfcfc2df +cec1dfd1c2dfd2c2dfd3c2dfd3c2dfd3c3dfd2c4e0cfc4e1cac3e1cac8e4cccde7cecfe8 +d0d0e9d1cfe7d0cbe4cfc8e2cec7e1cfc6e1c6c0dcbeb7d3b2adc8aba4bda39db59f99ae +9d97aa9c98a7aaa5b1b0adb5bbb6bcc1bec1c6c3c2cac8c4cfcec9d8d5cfe1dedae3dfdf +e6e2e2e9e5e7ebe8e9ece8eaece8eaebe8ecebe8ecece7ebece7ebece7ecebe6ece8e4eb +e5e0e8e1dbe4ddd8e1dcd7dfdcd5e2d3cee0d0cbe0d0c9dfcfc8decec8dfcec8dfcec6de +cec7e0cec7e0d0c8e2d0c9e2d0c9e3d0c8e2d0c8e2d0c7e2d0c7e2d0c7e2cfc8e3c7c6e3 +c5c2e1cfc2dfd8c0dcd8c1ddccc9ddf2dae69e4657a11e23b82323c62625c92725c62625 +bb2324b62b24a52721bb4b54ac323bad2022c22425cb2726c62625c42625c42725c02624 +b021229b1b20932741ab6387c69ec2dac9e3d0c9e4c7bfdecac3e0d1c6e2d1c6e2cec5e1 +ccc7e3cac7e3ccc7e3cdc6e2cfc5e1cfc4e1d0c4e0d0c3e0d2c4e0d2c4e0d2c4e0d2c4e0 +d1c4e0d0c5e1cfc6e1cec6e2cec6e2cec6e2cfc4e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d0c3e0d0c2dfd0c3e0d2c5e0d2c7e2d2c8dfd2c7e0d1c6e1cfc4e0cec2dfd2c4e0cec0de +c5b9dac9bfded1cdd2cfcfb2c1c886b1bb57a4b8399abf3ba6cc38abcf3aa7cd399fc93a +99c43b90bd3d80af4070a14067983f61923e5b8b3d618e3d6f973e779c3e759a3e7a9d3d +92aa4ea1ad7fb8bba7c9c9c5cfcdd6d0cae0cec5e1cec4e0cfc4e0cfc4e0d0c4e0d2c5e1 +d3c5e0d3c5e0d3c4e0d3c4e0d3c3dfd3c2dfd2c2dfd2c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d2c5e1d2c5e1d0c5e1d0c5e1d0c5e1d0c5e1d0c5e1cfc4e1 +cfc4e1cfc4e1cfc4e1cec5e1cac7e3c7cae5c6cae4c6cae4c6cae4c7cbe5c8cae4cac8e3 +cbc7e2cdc7e2cec7e2cfc6e1d0c5e0d2c5e0d2c4e0d3c3dfd3c3dfd2c3dfd1c1ded0c1de +d0c0ddd2c0ddd3c0ddd4c1ded4c2ded3c2dfd2c4e0d0c5e1cfc8e3cac8e4c5c5e2c0c5e3 +c0c5e3c3c6e3c8c9e4cbcbe4d0cde6d0c9e3d2c9e4d3cae4d0c7e3ccc4e0c5bdd9bdb5d0 +b5afc6afa9bdaca6b8ada8b7afa9b5b1aab3b1acb2b3aeb3b9b6b7c0bcbcc7c4c5ccc9cc +d3ced2dad4dadfdbe0e3dee4e3dee5e3dee5e4e0e6e8e3e9e3dee5e8e3e8eee8edf1edf2 +f2eef3f2eef0efebeeece8eceae5ece1dce7ded7e6dbd5e5d9d2e2d5cfe0d2ccdfd0c9dd +cec8dccec8ddcbc5dbcac4dacbc4dbccc6ddcec7dfcfc7e0d0c9e2d1cae3d0cbe4cacae4 +cac8e4d3c5e1dac3ded9c4dfcbc9dbecdae59844539a1c20b32022c62625cc2726cd2926 +bd2324b224239f1e1faa2728ae2422bd2324cf2926cc2726c22425c42825be2624ac2021 +a01d27962645ab6385d0aecdcfc0ded1cae4cdc6e2cbbddccbbcdbcdc0decec6e2cec8e3 +ccc7e3cdc6e2cec6e2cec6e2cfc5e1d0c5e1cfc4e1cfc4e1d0c4e0d1c4e0d1c4e0d1c4e0 +d0c4e0d0c5e1d0c6e2d0c6e2d0c6e2d0c6e2d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d0c4e0d0c3e0d1c4e0d2c7e1d2c7e1d2c8dfd1c7e0d0c6e1cfc4e1ccc1dfcbbfddd3c8e3 +cbc4e1c9c6d9cbcdbcc4ce93b8c662acbf39a9c638a8ce389fc93a9dc73a9fc73a9bc13c +91b33e84a73e7b9f3e7b9e3e7f9f416d8e3b567a374f7435587d38698f3c779c3e7ba03e +819f3d91a059a7ae85bfc1acceccc9d1ccdbcfc6e1cdc3e0cec3dfd1c5e1d0c3e0d2c4e0 +d2c4e0d3c4e0d3c4e0d3c4e0d3c4e0d3c3dfd2c2dfd2c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d2c5e1d2c5e1d2c5e0d1c5e0d0c4e0d0c4e0d0c4e0d0c4e0 +d0c3e0d0c3e0d0c3e0cfc4e1cdc5e1cbc6e2cac7e2cac7e2cac7e2cac7e2cac7e2cac7e2 +cbc6e3cbc7e3cac7e3cac7e3cbc6e3cbc6e3ccc7e3ccc7e3ccc7e3cdc6e2cec3e0d1c1de +d1bfddd3c0ddd4c1ddd5c1ddd4c3dfd2c2dfd1c3dfcfc4e0cbc4e1cac6e2c7c7e3c6c8e4 +c6c8e4c6c9e5c6c8e3c7c8e3c9c6e2cbc4e1cfc4e1d0c5e1d1c6e2d1c6e2d0c6e2d0c6e1 +cec5e0ccc4deccc4dcc6bfd6c1b9cdbcb4c5b6b0c0b2acbbafa9b7aea7b3aca5b3b2adb8 +b7b2bdbcb9c3c3c0c9c9c4cececbd2d5d1dadbd8e0e3dfe7e5e3e8e8e5eae9e7eceae8ec +eae8eae9e8eae9e8eaeae8e9ebeaebebe8edeae6eee7e4ebe3e0e8e0dce5dcd8e2d9d4e0 +d6d2dfd5d2e0cecad9cbc7d6cbc6d8cbc6d8cbc6d8cbc6dacac5dacac5dac9c5dccbc9e2 +cccae4d4c6e1dbc5dfd8c5dfcbccdceddee79848599c1d24b32022c52425cc2726cf2a26 +c02424b32323a21e20ac2021ba2423c52625cb2825cc2826c72825bc2424a51f20961a1e +9c304caf6486c59fbed5cbe4c9cae5cbc8e3d4c7e2d8c4dfd4bfdcccbeddc5c0dfc7c2e0 +cdc5e1cfc5e1cfc4e1cfc4e1cfc5e1cfc5e1cfc5e1cfc5e1d0c5e1d0c5e1d0c5e1d0c5e1 +cfc4e1cfc4e1cfc4e1d0c4e0d0c4e0d0c4e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d2c4e0d2c4e0d3c5e0d2c7e1d2c7e1d1c6e1d0c6e1d0c6e2cdc5e1c9c3e0d3cfe6 +cbccd3c3c8b7c3ce9abdcd77b0c74baac338a9cb38a2cc399cc83b9dc53b9cc13b96b340 +8ca448889c5f96a580a7b39db4bdad9eab957f90696076365371335f813871973e7aa23f +769a3d869a3c9da667b4b993c7c8b7cfced3cfc8e1ccc3e0ccc0ded0c5e1d0c3e0d2c4e0 +d3c3dfd3c4e0d3c4e0d3c4e0d3c4e0d4c3dfd3c3dfd2c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d0c4e0cfc4e0 +d0c4e0d1c4e0d1c4e0d1c4e0d2c5e1d2c5e0d3c5e0d1c4e0d1c4e0d1c4e0d1c3e0d1c3e0 +d1c3dfd1c3e0d1c3dfd0c2dfcfc4e0cfc4e1cfc4e1cfc4e1cfc4e1cec5e1cec6e2cdc6e2 +ccc6e2cbc6e3cac6e2cac6e2cac7e3c9c7e3c9c7e3c8c7e3c8c7e3c9c6e3ccc5e2cfc1df +d0c0ddd1c0ded3c1ded3c2dfd2c3dfd2c3dfd1c3e0cfc4e0ccc3e0ccc5e1ccc6e2ccc8e4 +cdc9e4ccc8e4cac7e3cac6e2cac5e1d0c6e2d0c5e1d0c4e0cfc4e0cfc4e0cfc4e0cfc4e1 +cfc4e1d0c5e0d7cce5d2c9e3cec4dfcac0dbc8bed8c4bbd3beb4cdb5abc4ada5bcaea8bb +aca8baaca8b9aca9b9afabbab4b0bdbcb8c4c5c2cdcdcbd6d3d1d8d7d4d9dad7dcdcdade +dddddfe1dfe0e3e2e2e9e7e6eae9e8eae9e9eae9eaeae9ebeae9ebe8e7eae8e6e9e5e3e8 +e3e0e7e3e0e8dcd8e1d9d5dfd6d3dfd4d1dfd1ceddcfcbdbcbc8d6c8c5d5c6c4d6c5c6da +c8c6ded0c2ddd9c1dcd5c3dbc7ccd9ece1e8994e5d9d212ab52223c52425cb2726cc2826 +c42425b82523ab1f21b52323c12624c42625c52625c72725be2524a72021971a1f9e2e4c +b4668aca9cbfd3c0dccdcde5c8cee7cccbe5d3c5e1d6c1ddd6c1ddd0c0decac0dec9c0df +cfc4e0d0c3e0d0c3e0cfc4e1cfc4e1cfc5e1cec5e1cec6e2cdc6e2cdc6e2cec6e2cec5e1 +cfc5e1cfc4e0d0c3e0d1c3dfd1c3dfd0c2dfd0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d3c4e0d3c4e0d2c4e0d2c5e1d2c5e1d0c5e1d0c7e1cec8e2cdcbdececed2cbd0c3 +bfc8a3b9c889bdce78b9d162b0cb43a6c538a3c7399cc73b9ec93a9ec33a9ab73e98ad54 +9eab78adb2a0bcbcc4c9c4dbd1cbe4c8c6d9b0b2b1849173607333557333658a3b779e3f +789d3e82983a94a04ba9b179bec2a4cdccc9cfcbdfccc4e1ccc0decfc3e0d0c2dfd1c3e0 +d3c3dfd3c3dfd3c4e0d4c4e0d3c4e0d4c3dfd3c3dfd3c3dfd1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0cfc4e0cfc4e1 +cfc4e1d0c4e0d1c4e0d1c4e0d1c4e0d3c5e0d3c5e0d3c5e0d2c4e0d2c4e0d3c3dfd1c3e0 +d2c3dfd1c3dfd2c2dfd2c2dfd2c2dfd2c2dfd2c2dfd1c2dfd0c2dfd0c2dfcfc4e0cfc4e0 +cec3e0cdc4e0cdc5e1cdc5e1ccc5e2cbc5e2cbc6e2cac6e2cac6e2cac5e1cbc5e2ccc3e0 +cec3e0cfc4e0cfc4e0d1c4e0d1c4e0d0c5e1cfc4e0d0c3e0d1c5e1cfc4e1cec3dfcec3df +cfc3e0d0c3e0d1c3e0d2c4e0d2c4e0cfc1decfc3e0d0c2dfd0c3e0d0c4e0d1c4e0d0c3e0 +d0c2dfcfc3e0d1c3e0cec3dfcfc3e0d1c5e1d4c6e1d4c6e1cfc4e0c8bbdbc0b5d5beb6d1 +b8b3cab2adc3ada7bda8a4b9a7a3b7aba7b7b0abbab3b0bcb8b6bfbcbac2c3c1c6cac8cc +d0ced0d6d4d3dad8d6dedcdbe0e0dce1e0dbe2e2dde6e3e0e8e7e4eae9e8ebeae9eae9e9 +eae8eaeae8ebe9e8ece9e6ece6e3eae3e0e8dddbe5dad5e1d5d2ddd2cedbd0cddbcbcadc +c9c6dbd0c1dbd8c0dad3c1d8c2cbd5e9e0e5944d5b9b1f2bb42125c62525cb2726c82625 +c92825bb2424b32122c12424c62625c52625c22625bb2424ac20219d1d20a23556bb6d91 +d29ec2dbbddad6c7e1ccc7e2cecee6cecde5cac3dfccbfddd0c0ddd2c3dfd3c2ded2c0dd +d2c1ded2c2dfd2c3dfd0c3e0cfc4e1cdc4e0cdc5e1ccc6e1cbc6e1cbc6e1ccc6e2ccc5e2 +cec5e1cfc4e0d0c2dfd1c2dfd2c2dfd1c2dfd0c2dfd0c2dfd0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2c4e0d3c4e0d3c4e0d2c4e0d0c3e0d0c2dfcfc4e1cfc6e1cecbdccdcec6c6cca9becc8a +b6ca6db6ce5db6d157b5d14fb0cd48a9c73c9fc43a9fc83aa2c839a1bf40a0b459a7b37f +bdbeabcfc9cfd6cbe3d4c6e1d7c9e3d7cae4cbc5daa9aaa978825f5a6e305d7d3774983d +7da23e859d3b8f9e3aa0a864b5bb94c9c9bed0cdddcec6e1ccc0decec2dfd1c2dfd1c3df +d3c3dfd3c3dfd3c4e0d4c5e0d4c4e0d4c3dfd3c3dfd3c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0cfc4e0cfc4e1 +cfc4e1cfc4e1d1c4e0d1c4e0d2c4e0d2c4e0d3c4e0d3c4e0d2c3dfd2c3dfd2c3dfd2c3df +d2c2dfd1c2dfd2c2dfd1c1ded2c1ded1c0ddd1c0ddd1c0ddd1c1ded1c1ded0c0ded0c2df +d0c2dfcfc2dfcfc3e0cfc3e0cfc3e0cec3dfcec3dfcdc2dfcdc2dfccc3e0cbc4e1cac5e1 +cac6e2cac6e2cbc6e2cdc6e1cec7e2cfc6e1d0c5e1d0c3e0d4c5e1d3c3dfd1c0ded0bfdc +d1bedcd3bfdcd5c0dcd7c1ddd5c2decfbfddcec0ded0c2dfd0c2dfd2c4e0d1c4e0d1c4e0 +d2c4e0d1c3e0cdbeddccbeddcfc0ded0c2dfd3c5e0d4c6e1d4c6e1d2c4e0d1c3e0cfc4e1 +cac3dfc5bedabfb8d3bcb5ceb7b1cab2adc2aea8beaba5b7a9a5b4aca7b5b0acb6b3b0b9 +b8b6bbbebbbfc4c1c3ccc8cbcfcdcdd2d0ced6d5d0d9d8d3dfdfd9e2e2dfe8e7e3e9e8e4 +e8e7e6e8e7e7ebebececebedece9edeae8ece8e7ebe5e2e9e2e0e6e0dee6dddce5d7d7e4 +d5d2e2d9cce0dec8ddd5c4d6c3cad0e6dee18d4955941c26af2122c42325cc2626c82625 +cf2a26b82423b32122c82725cc2826c72725c02424ab1f219f1e20a6314bc27496d9a7c9 +dfc1dcd9c6e0d2c4e0d1c4e0d2c9e3cecbe4c7c6dfc6c3e0cbc3e0d3c1ded7bfdcd6bedb +d4bfdcd3c0ddd2c2dfd0c2dfcfc4e0cdc4e0cdc5e1ccc5e1cbc5e1cbc5e1cbc5e1ccc4e1 +cec4e0cfc3e0d0c2dfd1c2dfd1c1ded0c0ded0c2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0d0c2dfd0c2dfd0c2dfd0c2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc4e0cfc4e0cec3e0cec3e0cfc4e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c3e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d0c4e0d0c3e0d1c4e0d1c4e0d1c4e0d1c4e0d2c5e1 +d3c5e0d3c4e0d3c4e0d1c1decfc1decfc1decfc4e0cfc8e2cececcc7cfa7b6c775afc74d +b4d244b8d444b3d142afcf46b0ce53afcb60a8c555a8c740a7c343aabc65b1bc89c1c2af +d1cbcfd9cde2dac9e2d5c4dfd5c3dfd4c4e0d6c9e2c2bccc989a926a76465c75336e913c +80a23e87a43c899e3a97a44dadb582c5c6b5d1cddbcfc7e2ccc0decdc1ded1c2dfd1c3df +d3c3dfd3c3dfd3c4e0d4c4e0d5c4e0d4c3dfd3c3dfd2c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c3e0d2c4e0d2c4e0d1c4e0d1c4e0 +d0c4e0d0c4e0d1c4e0d1c4e0d1c3e0d2c4e0d2c4e0d2c4e0d2c4e0d1c4e0d0c4e0d0c5e1 +d0c5e1d0c5e1d0c4e0d1c4e0d1c4e0d0c4e0d0c4e0d0c4e0d0c4e0d0c4e0d0c4e0d0c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d0c4e0d0c4e0d1c5e1d1c5e1d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d0c4e0cfc4e1 +cfc4e1d0c4e0d1c4e0d1c4e0d2c4e0d2c4e0d2c4e0d2c4e0d1c3dfd1c3dfd1c3dfd1c3df +d1c3dfd1c3dfd1c2dfd1c2dfd1c1ded1c0ded1c0ded1c0ded1c0ded1c2dfd1c2dfd1c2df +d1c2dfd0c2dfd0c2dfd0c2dfd0c2dfd0c2dfd0c2dfcfc3e0cfc3e0cfc3e0cdc4e0cbc5e2 +cac6e2cac7e2cbc7e2ccc7e2cec7e2cfc6e1d0c5e1d0c3e0d3c3dfd3c3dfd3c2dfd4c2de +d5c1ddd5c0ddd5c0dcd5bfdcd3c0ddd5c6e1d3c5e1d1c3dfcfc0decebfddcebfddcfc1de +d0c2dfd1c3e0d3c5e1d2c4e0d0c2dfd0c2dfcfc1decfc1decfc1dfd1c3e0d2c6e1d4c7e2 +d2c9e3d2c9e3d2c9e3d2c9e3d0c7e2cac2dcc1b9d4bbb4cbb8b1c7b4adc1aea8baa8a0b3 +a49dafa59fafaca5b5b2adbbb9b4bdc0bdc0c5c2c2ccc9c8d0cfcdd7d6d4dbdad8dfdfdd +e1e0dee0dfdfe5e4e3e8e8e7e8e8e7e8e8e8e8e9e9e8e8e8e8e8e9e8e9ebe8e9ebe8ebed +e3e9ece3dfe7e2d6e0e0d4dccecfd0eedfe08f47528e1820a81e21c02225cc2626c92725 +d22b26b72323ae2022c72825cb2925c22725b122229e1d20a12b3dc46f89dca8c7e0c3dd +d9cae3cfc5e1cac2e0cfc4e1cec3dfccc6e1cec9e4cfc9e4cfc4e1d1bcdbd4b8d8d4b9d9 +d3c0ddd1c2dfcfc2dfcfc3e0cfc4e0cfc4e0cfc4e0cfc4e0cfc4e0cfc4e0cfc4e0cfc3e0 +cfc3e0cfc2dfd0c2dfd0c2dfd0c2dfcfc3e0cfc4e0cdc2dfcdc2dfcec3dfcfc3e0cfc3e0 +cfc3e0d0c2dfd0c2dfd1c2dfd0c2dfcfc4e0cfc4e0cfc4e0cec4e0cec4e0cec4e0cfc4e0 +d1c2dfd1c1ded1c0ded1c0ded1c1ded1c2dfd1c2dfd1c2dfd0c2dfcfc3e0cfc4e0cec3e0 +cdc4e0cdc5e1ccc5e2cbc5e2cbc6e2cdc5e1cec3e0cfc4e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c3e0d1c4e0d1c4e0d1c4e0d2c5e0d2c7e1 +d2c7e1d2c5e0d1c4e0d0c3e0d0c3e0d0c2dfd0c2dfd0c2dfd0c3e0d1c4e0d3c5e0d3c6e1 +d4c4dfd3c3dfd5c4dfd2c1decebeddcec0ded1c6e1d0cdd8c6cfb1b8cc82a8c347a8cb39 +b5d43cb9d53fb2d23caecc44b6cc6bbece91b9c991b3c478b1c077b9c29ac8cabbd2ced2 +d2c8ddd0c1ddd1c0ddd4c3dfd2c1ded0bfddd6c7e2cfc6ddb0acb37f876f6273316c8939 +7a9c3d88a73d87a23c90a43ca5b26fbec3aacecddad0c7e3ccc0decfc0ded1c3dfd2c4e0 +d3c3dfd3c3dfd3c3dfd3c3dfd3c3dfd3c3dfd3c3dfd2c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d2c2dfd2c2dfd3c2dfd2c2dfd1c4e0 +d0c5e1d0c5e1d1c5e1d1c3e0d2c2dfd3c2dfd4c1ddd4c1ded2c2dfd1c4e0cec6e2cac7e3 +cac8e4ccc7e3d0c5e1d2c4e0d1c4e0cfc4e1d0c5e1cfc5e1cfc5e1cfc5e1cfc4e1cfc4e1 +d1c4e0d1c4e0d1c4e0d0c5e1d0c6e2d0c6e2cfc6e2d0c6e2d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d2c4e0d2c4e0d2c4e0d2c4e0d2c4e0 +d2c4e0d2c4e0d2c4e0d2c4e0d2c4e0d2c4e0d2c4e0d2c4e0d2c4e0d2c4e0d2c4e0d2c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d0c4e0cfc4e1d0c5e1 +d0c6e2d0c6e2d0c6e2d0c5e1d0c5e1d1c5e1d2c5e1d1c4e0d2c4e0d2c4e0d2c4e0d2c2df +d2c2dfd2c2dfd2c3dfd2c3dfd3c3dfd2c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c5e1 +d0c5e0d0c5e0d0c5e0d0c5e0d0c6e1d0c6e1d0c6e1d0c7e1d4cae4cfc6e1c6bdd9bdb5d3 +b8afccb4abc9afa7c5aaa0bea49bb4a49eb0a9a2b0afaab4b7b3bbbfbbc2c6c5cacecbd0 +d4d1d4d6d4d5dddddbdfe0dedfe0dcdfe0dcdfe1dce2e3dfe6e7e2e9eae4e8ece6eaf2eb +e6f1e9dbe7dedde1d9f5f3eee8ded8fdebeb9852588c1920a21e21b92225c72525c92625 +cb2626bf2424b52123bb2424bd2624b023229b1c1f951f2dbb6178efb4cae8c6dcd6c5e0 +cec7e3c7c7e3c5c5e2cbc6e2cec5e1cfc4e0d0c0decfbddcd0bcdbd3bbdad5bcdad2bfdc +cfc4e0ccc5e1cac2e0cdc2dfd0c2dfd2c2dfd3c2dfd4c1ded5c1ddd5c1ddd5c0ddd3c0dd +d2c0ddd0c0ddd0c2dfd0c4e0cec4e0cfc5e1cdc4e1ccc3e0ccc3e0cdc4e0cec4e0cfc3e0 +d0c3e0d1c3e0d2c4e0d2c2dfd2c4e0d2c5e1d1c5e1d0c6e1cfc6e1cec7e2cec7e2d0c5e0 +d3c2dfd4c1ddd4c1ddd4c1ddd4c1ddd3c1ded3c2dfd2c2dfd2c4e0cfc4e1d0c5e1cec6e2 +cdc6e2cbc8e3cacae4c8c9e4c7cbe5cacae4cfc6e2d1c5e1d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d0c3e0d1c4e0d2c5e0d2c7e2d0c8df +d0c8dfd0c7e2d0c5e1cfc4e0cec2dfcec0decfc0decfc1ded1c3dfd2c4e0d4c6e0d4c7dd +d4c4dcd1bedcd8c4dfd5c2decdbbdbcfc1ded5cee4ced3c3b5c7849ebe4aa8cd3cb2d33e +b4d33ab4d33badd03aafca4dc1cd8fd3d2cdcdcad7cdccc8cdcdc6cecbd2cec8dad0c7de +d0c5dfd1c3dfd1c1ded1c1decfc0ded4c6e1d5cae3d0c8debebcc9989b9468743b768c38 +7a9a3d85aa3e87ab3e8baa3d99af58b0bb9bc6c7d5cdc6e2cbc0decfc1dfd3c5e0d4c6e0 +d3c4e0d3c3dfd3c3dfd2c4e0d2c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d3c1ded6c0ddd5c0dcd3c1ded1c4e0 +cec7e2cec7e2d0c6e2d1c4e0d4c3dfd7bfdcd7bfdcd6bfdcd5c0ddd1c3e0cac7e3c3cae6 +c0cde7c6cae6d0c5e1d3c3dfd1c4e0d0c5e1cec6e2ccc7e3ccc7e3ccc7e3cec6e2d0c5e1 +d0c5e1d2c5e1d0c5e0d0c6e1cfc6e1cdc8e2cccae4cdc8e2d0c5e1d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d4c7e2d2c5e1cfc3e0cec2df +cec2dfcec1dfc9bddcc2b6d8bcafd0bab0ccb5afc3aea8bba7a0b3a39dada5a0ada9a6b2 +b3b1b8bab8bdbfbfc2c6c5c6cdcecdd8d8d5dfe1dde6e7e3e6e7e2e1e3dedce2dad5ded4 +d9e4d9e2ece1e5ede2e7e9dff0e5defdedebb27c7d91373c9a2328ab2329b92225c32225 +c52425c52625c52625c02424b72323b02122aa2125ac323ed57785f8becdf8cddcebcbdf +e2cee4d9cde5d2c7e2ccbfddd0c0ded2c2dfd4c1ddd4bfdcd3bfdcd2bedcd0bfdccec0de +cac3e0cac5e2cdc6e2d0c7e3d2c6e1d1c3e0cfbfddcdbbdbcebadad2bfddd4c3dfd6c6e1 +d8c9e2d7cae4d4c7e2cfc4e1cac2e0c7c1dfccc6e2ccc5e2cdc6e2cdc4e1cec5e1cfc5e1 +cfc4e0d1c4e0d1c4e0d1c4e0d1c4e0d0c5e1d0c6e2cfc6e2cec7e2cdc7e2cdc7e2d0c6e2 +d3c2dfd4c1ded4c1ded4c1ded4c1ded4c1ddd3c2dfd3c3dfd2c2dfd2c4e0d2c5e1d0c6e2 +cfc6e1cec7e2cdc7e2ccc7e2cac9e4ccc7e2cfc6e1d1c5e1d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d0c4e0d0c3e0d1c4e0d2c5e0d2c7e2d0c9df +d0c8dfd0c7e1d0c6e1cfc4e1cec2dfcec1dfcfc0decfc1ded1c2dfd2c2dfd4c6e0d5c7df +d7c6e0d9c5e0cfbadad0bcdbd9c9e3dacfe4cecbc6b6c290a5bf599ec43aa6ce3ab1d23b +b2d23ab2d23baccf39afc752c2c89ed4cbe3cfc2dfcfc4e1cec7e1cfc4e0cec3e0d0c5e1 +d0c5e1cfc3e0cfc0decfbfddcdbfded1c6e1d0c7e1cdc7dec7c4d6a8a7aa787e55778936 +79993c85ac3e84ad3f86ac3e94b04cadbb8fc5c8d2cdc6e2ccc1decfc2dfd3c7e1d4c6e0 +d3c4e0d3c3dfd1c3e0d1c3e0cfc4e1cfc4e1d0c5e1d0c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c2dfd4c1ddd5c0dcd5c0dcd3c2dfd0c5e1 +cdc7e2ccc8e3cfc6e1d1c4e0d4c3dfd7bfdcd8bedbd8bedbd5c0dcd2c4e0cac7e3c3cbe6 +c0cde6c6cae4d0c5e0d3c3dfd2c4e0d0c5e1cec6e2cbc6e3cbc7e3ccc6e2cdc5e1d0c5e1 +cfc4e1d2c4e0d2c5e0d1c6e1cfc7e2cdc8e2cccae3cdc8e2d0c6e2d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d0c4e0cfc4e0cfc4e0d3c6e1 +d5c9e3d7cae4d6cae4d2c5e1cec1dfcac0dcc6bed8c2bad3bdb5ccb7afc4b1aabcada7ba +aba5b6a8a4b3aba8b3afabb4b1afb7b6b4bcbcbbc1c3c3c7cbcbced1d0d4d5d4d8dcd9de +e5dfe2eae7e9ebeae9e2e3e0ebeae6dbd2ccb9a19cb78b87c88786d27b7ad2615fd04847 +bd2324c22425d92d26d62b26d22a26ce2826c52625ba2323c43329cd544fc15c5fc4727c +d695a6e5b0c6edbfd7ecc8dee6c8dfe2c8e0dbc6e0d4c5e0cfc5e1cbc8e3cacae5cbc9e4 +ccc5e2cdc3e0cdc3e0cbc4e1cdc6e2cec8e3cfcae5d0cce6cfcbe5c3bfdec3bfdec3bfde +c5c0dfc7c2e0c9c4e1cdc5e1cfc6e2cfc8e3ccc7e2ccc8e3ccc8e3cdc7e2cdc7e2cdc6e2 +cdc6e2cec6e2cec6e2cec6e2cec6e2cec6e2cec5e1cdc6e2cdc6e2cdc6e2cdc6e2cdc4e1 +d1c4e0d2c4e0d2c4e0d3c3dfd2c3dfd3c3dfd3c3dfd3c3dfd4c3dfd4c3dfd5c2ded5c2de +d5c2ded5c2ded5c2ded5c2ded5c2ded3c3dfd2c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d0c4e0d0c3e0d0c3e0d1c4e0d2c5e0d0c7e2 +d0c7e2d0c7e2d0c7e1d0c5e1cfc4e1cfc4e1d0c2dfd0c2dfd1c3dfd1c3e0d2c4e0d2c4e0 +d2c3dfd3c1deccbadad1c3dcdcd2d9d1cec0b6bd8fa2b45b9ebf3da6cd3aaacf39b4d33b +b0d23baed13baacd3aadc353c0c59ed3cae3cfc0decec3e0cec6e1cfc4e0cec3e0d0c5e1 +d0c5e1cfc3e0cfbfddcfbfddcdbfded1c5e1cbc2decec6ded2cce1bcbbc08a906b758636 +78983c84ac3f86af3f86ac3e92ae45a8b889c4c7cdcfc9e4cdc3e0cfc2dfd3c6e1d4c6e0 +d3c4e0d3c3dfd2c4e0d1c3e0cfc4e1cfc4e1d0c5e1d0c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d3c1ded5c0ddd5c1ddd3c3dfd0c6e1 +ccc7e2ccc8e3cdc7e2d0c5e1d2c3dfd5c0ddd6c0ddd7c0ddd6c0ddd2c2dfd0c5e1cbc7e2 +cacae4cdc7e2d2c4e0d4c3dfd3c3dfd1c4e0d0c5e1cec6e2cfc6e1cfc5e1cfc4e1d1c4e0 +d2c4e0d3c3dfd3c3dfd2c4e0d1c6e1d0c7e2cec8e2cec8e3d0c5e1d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d3c6e1d0c4e0cec2dfcec1df +cfc3e0d0c4e0d3c6e1d4c6e1d3c6e1d0c4e0d0c6e1d3c8e2d4cae3d2cae3cec6dfc6bed7 +bdb5ccb7b1c6b7b0c5b3afc0ada9bba7a4b5a5a2b2a7a4b3afadb9b7b5c1bfbac5cbc1cb +d3c6d3daced8dad4dad3d2d6d1d7d6b8bab5bbb7afd0c1b8eccdc3f5c3baf2a49ceb837b +c4392ebf2424dd2f26de2f25e12e25e32f25da2b26ce2826cb2925c32b25ad2422ac2c2a +b8464dbf5a69c1677bc5748ccc85a1d89cbbe4b4d0e3c2dbdfc8e1d8cae3d2c9e2d0c6e1 +d2c3dfd4c3dfd5c6e1d3c7e2cfc7e2cac7e2c4c5e2c0c3e1c1c5e3cacee8c9cbe6c8c8e4 +c8c5e2c9c3e0cac1dfcdc2dfd0c2dfd0c4e0d0c6e1cfc8e2cfc8e2cfc7e2cec8e3cec7e2 +cec7e2cdc6e2cdc6e2cec6e2cec6e2cec5e1cec4e0cec4e0cec4e0cfc4e0cfc3e0cec4e0 +cfc6e1cec8e3cfc7e2d0c7e1d0c6e1d2c5e0d2c4e0d3c4e0d3c3dfd3c3dfd5c2ded5c1dd +d6c1ded6c0ddd6c0ddd7c0ddd7c0ddd5c0ddd2c3dfd2c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d0c4e0d0c3e0d0c3e0d0c3e0d1c4e0d0c5e1 +d0c5e0d0c7e1d0c7e1d0c7e2d0c7e1d0c5e0d1c4e0d1c4e0d0c3e0d0c2dfd1c2dfd1c1de +cebeddc9badad2c4e0d9d0d7cccab3b5bb88a5b45da0b93da5ca39acd03badd13bb3d33c +aed13cadd13ca8cb3aaac151bdc29bd3c8e1d0c2dfcec3e0cec6e1cec3e0cec3e0d0c5e1 +d0c5e1cfc3e0cfbfddcfbfddcec0ded3c8e2cac1ddcdc6dfd5d0e6c6c5cc969c7c728435 +7a993c85ac3e88b13f87ae3e8fad3ea4b67cc1c5c4cfcae4d0c5e1cfc2dfd3c6e1d4c6e0 +d3c4e0d3c3dfd2c4e0d1c4e0d0c5e1cfc4e1cfc5e1d0c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d3c3dfd4c3dfd3c3dfd2c5e1d0c7e1 +ccc7e2ccc7e2cdc6e2cfc6e1d0c4e0d2c3dfd3c1ded5c1ddd5c1ddd4c3dfd3c3dfd1c5e0 +d1c6e1d2c5e0d3c4e0d4c3dfd2c2dfd2c4e0d1c4e0cfc4e1cfc4e1d0c3e0d1c3e0d2c2df +d2c2dfd3c2dfd3c2dfd3c4e0d3c4e0d2c6e1d1c6e1d1c6e1d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d4c7e2d3c6e1cfc4e0cec1df +cec1dfcfc3e0d0c4e0d3c6e1d4c6e1d3c6e1d3c6e1d4c7e2d5c9e3d4c9e3d4c7e2d0c6e1 +cdc2dfcac1ddc8c0dcc4bcd7bfb8d2bab5cdb5b0c7b0aac2aba7bbaaa5baaca3b8ab9ab1 +b7a4b9c3b3c6bfb8c5babbc3b5bec0b2bfbcc0ccc5cfd4c9e1dbccefd6c7f5c5b6f5aca0 +d15e50c02724da2f26dd2e25e32f24e52f24de2e25d92d26d82e26d02b26c32625bf2624 +bf2926bc2b2bba2c33bb3641b93d4abb4958bf5b6bc1707dc98790d29da4d9aeb7e2bdcb +e7c7dde2c8e0ddc7e0d6c5dfd0c4decbc5dfc5c7e3c4c9e4c4cae6c0c9e5c4c8e4c8c6e3 +ccc6e2cfc4e1d1c1ded1bfddd3bedbd3bedbd4c3dfd5c5dfd4c4dfd3c4e0d3c6e1d1c5e0 +d0c6e1d0c6e1d0c6e2d0c5e1d0c5e1d0c4e0d0c3e0d2c2dfd1c2ded2c1ded2c0ddd2c2df +cdc7e2cacae4cacbe4cacae3cbcae4ccc9e3cdc7e2cfc6e1d0c6e1d0c5e1d1c4e0d3c3df +d2c3dfd3c2dfd3c2dfd4c1ded4c1ded2c2dfd2c2dfd1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0cfc4e0cfc3e0cfc3e0cfc3e0cfc3e0cfc4e0 +d0c4e0d1c5e1d1c6e1d1c7e1d1c8e0d1c7dfd2c7e1d2c5e0d1c4e0cfc2dfcfc1decfc1de +ccc0decabfddd0cae4cbcbbab3ba7fa2b34f9fb73aa4c739acd038b0d23aaed13ab3d33c +add13bacd03ca6c939a9be50bdc09ad2c7e0d1c3dfcec3e0cec5e1cec3e0cec3e0cfc4e1 +d0c5e1cfc3e0cfbfddcfbfddcfc1ded3c9e3ccc3e0ccc6e0d4cee5c8c7d39da389738335 +7c9a3c86ac3e8bb43e8ab03e8ead3da1b36fbdc2b8cecbe3d1c6e2cfc3e0d3c6e1d4c6e0 +d3c4e0d3c3dfd2c4e0d1c4e0d0c5e1cfc4e1cec4e0d0c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d3c4e0d3c5e0d0c6e1cfc6e1 +cdc7e2ccc7e3cbc7e3ccc7e3cec6e2d0c5e1d0c4e0d3c3dfd3c2dfd4c3dfd5c3dfd5c3df +d6c3dfd5c3dfd5c3dfd3c3dfd2c3dfd2c2dfd2c4e0d1c3e0d2c2dfd2c2dfd1c2ded2c2df +d3c2dfd4c1ddd5c2ded4c3dfd3c4e0d3c3dfd3c4e0d2c4e0d2c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d0c4e0d0c4e0d0c4e0d0c4e0 +d0c4e0d2c5e1d2c5e1d2c5e1d0c4e0d3c5e0d2c4e0d2c4e0d0c2dfcfc3e0cfc3e0d0c3e0 +d2c5e1d2c6e1d1c5e1cfc4e1cfc4e1cdc4e0cac3dec4bcd9bbb4d1b5aec9b1a7c2ad9eb8 +b0a0b9b2a5baaba2b4b1b1bdaeb8bebdcdcdc5d8d3c8dacecdd7c8d8d2c0e8cebcf1bcae +cf7364b92d24ce2b26d52b26e02e25e12e25da2b26d62c26d62b26d32a26d32a26d32b26 +d42b26d22b26cd2726c72625c32625bd2524b92924b7332bb9443cbd564dc1665fc4767c +cf8ca0d398b1dba9c1e2b7cfe0c0d5ddc6dbd8c9dfd4cbe3d0cce4c9c8e2cac7e2cac3e1 +cec3e0d0c2dfd2bfddd5bfdcd7bfdcd8bddbd9c0dcd7c1ddd5c2ded5c3dfd3c4e0d3c4e0 +d2c5e1d0c5e1d0c6e2d0c6e2d1c5e1d1c4e0d2c4e0d3c2dfd4c1ddd5c0ddd6c0ddd5c2de +cdc8e2cacbe4c9cbe4cacbe4cacbe4cacbe4cac9e4cbc8e3cbc8e3ccc7e3cec7e2cfc5e1 +d0c5e1cfc4e1cfc3e0d0c3e0d0c3e0d0c2dfd1c3e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0cfc4e0cfc4e0cfc4e0cfc3e0cfc3e0d0c2df +d0c3e0d1c4e0d2c5e0d2c7e1d2c8ded2c8ddd2c8ded1c7e1d1c5e1cfc4e0cec1dfcdc2df +cec5e1cfcae4c3c6d0aeb989a1b34f9eb83aa3c539aacf38afd138b0d239afd13ab2d23d +acd03babd03da5c839a6bc4dbbbf96d1c6dfd1c3dfcec3dfcdc4e0cec3e0cec3dfcfc4e0 +cfc4e0cfc3e0cfbfddcfbfddcfc2dfd4c9e3cec3e0ccc5e1d0cbe4c8c6d6a8ac977b8936 +7c993c86ad3e8db83e8db63e8eaf3d9eb162b8bfabcbcadad0c7e3d0c3e0d3c7e1d4c6e0 +d3c4e0d3c3dfd2c4e0d1c4e0d0c5e1cfc4e0cec4e0cfc4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c5e1d2c5e0d2c7e1d1c6e1d0c7e1cfc6e1 +cdc6e2ccc7e3cbc7e3cac7e3cac7e3cac6e2ccc7e3cfc6e1d0c4e0d3c3dfd5c2ded8c1dd +d8c1ddd7c1ddd4c3dfd2c2dfd2c3dfd2c2dfd2c2dfd1c2ded2c2dfd3c1ded3c1ded3c1de +d3c2dfd4c2ded5c2ded4c3dfd5c2ded5c3dfd4c3dfd3c3dfd2c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1cdc0decec1dfcfc4e0d2c5e1 +d4c6e1d4c6e1d2c5e1cfc4e0cfc2dfd1c3dfd2c3dfd2c3dfd2c3dfd2c3dfd1c3dfd0c3e0 +d0c2dfcfc3e0d0c3e0d1c4e0d2c6e1d2c7e2d1c7e2d0c6e1ccc3e0c9c0ddc8bedac8bed7 +bfb6ccb0a7bba7a2b5babac7bcc1caccd5d7c9d8d6ccddd4cad7c9cdcfbfd8cab8dab2a2 +b97063a52c23b72423c62625d32926d92b26d62b26d52b26d42a26d62a26dc2e25df2f25 +e02f25e02f25de2f25da2d25d92b26d62a26ce2926c72725c02624b92724b42723b42d2f +bb3c4ebe4b61c96177cf768ad4889cd99baedfacbfe1bacee1c4d8e0cbe0dac9e2d6c6e1 +d3c4e0d2c1ded3c1ded5c0ddd7c0ddd8c1ddd8c0dcd8c0dcd7c0ddd5c2ded3c3dfd2c4e0 +d0c5e1cfc6e1cdc6e2cdc7e3cec7e2d0c6e2d1c5e1d3c4e0d3c3dfd5c2ded7c1ddd5c3df +d0c6e1cec8e3cdc8e2cdc8e3ccc8e3ccc8e3cbc7e3cbc7e3cbc7e3cac8e4cbc7e3cbc6e3 +ccc6e2ccc5e2ccc5e2cdc6e2cdc6e2cec5e1cfc4e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0cfc4e0cfc4e0cfc4e0cfc3e0cfc3e0d0c2df +d0c3e0d1c3e0d1c4e0d2c7e1d2c7e0d2c8dfd1c8ded0c7e2d0c6e1d0c5e1cdc4e0ccc3e0 +cdc8e4cacce1afb9aa97ac559ab63ba3c839a9cf38add038aed139afd138afd13ab0d23e +aad03aabd03aa4c839a6bd47babf92d0c7ded1c3dfcec3dfcdc4e0cec3dfcec3dfcfc4e0 +cfc4e0cfc3e0cfbfddcebeddcfc2dfd3c8e2cfc4e1cdc6e1cdc6e2cac6d9b5b7a7859040 +79973c85ad3f91bb3d91ba3d8fb13d9aaf56b2ba9ec8c7d0d0c8e2d0c3e0d3c6e1d4c6e0 +d3c4e0d3c3dfd2c4e0d1c4e0d0c5e1cfc4e0cec4e0cfc4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c5e1d2c6e1d1c7e1d0c7e2d0c7e1d0c6e1 +cec6e2cdc6e2cbc6e2cac7e3c8c8e4c7c9e4c8c9e5cac7e3cdc6e2d1c4e0d4c3dfd8c0dd +d9c1ddd6c1ded2c3dfd0c4e0d2c4e0d2c2dfd2c2dfd2c2dfd3c2dfd4c1ded3c1ded3c1de +d3c2dfd3c2dfd3c2dfd3c2dfd4c3dfd5c2ded5c2ded3c3dfd2c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1cec2dfcec2dfcfc4e0d0c4e0 +d2c5e1d0c4e0cfc4e0cfc4e0d0c2dfd1c2dfd2c2dfd3c4e0d4c5e1d4c6e1d4c5e1d2c4e0 +d0c2dfcec0decfc2dfcfc3e0cfc3e0cfc3e0cfc4e0d0c5e1d2c7e2d4c9e3d4cde5d3d1e6 +c3c5d6b2b6c3b7b6c5c7c7d3cdccd7d4d5dcced4d5d1dad5ced7cfcacdc0c3bbaeb2968a +965c518c231d9b1e1faf2222bf2324c82625cd2826d12926d12926d62c26df2f25df2e25 +dd2d25dd2d25e32f25e52e24e52f24e42f24df2e25d92b26d32926cf2726ce2626cd2626 +cb2528c52429bf2228b7232cb62c3bbe4655ca6475d48191dc97a7dea8badbb0c3dab9ce +dbc0d5ddc5dcdcc7dfdac7e0d6c5e0d6c3ded8c0dcd7bfdcd5c0ddd3c2dfd3c3dfcfc4e1 +cec6e2cbc8e3cacae5c9cae4cacae4cbc9e3cec8e3d0c7e1d3c6e1d5c5dfd6c4dfd6c4df +d3c4e0d3c3dfd3c3dfd2c4e0d0c4e0d0c5e1cfc5e1cec6e2cdc6e2cbc6e3cac7e3cac7e3 +cac7e3cac7e3cac7e3cac7e3cac7e3ccc6e2cfc5e1d0c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d0c4e0cec4e0cec4e0cfc4e0cfc4e0d0c3e0 +d0c3e0d1c3e0d2c4e0d2c4e0d2c5e0d2c7e1d0c7e2d0c7e2d0c7e2cec8e3cec7e2cdc8e2 +c5c8d8b2bdb599af7b8ead3d9cc23babd037aed137aed138aed139b0d238aed13aafd13d +a9cf3aabd039a4c939a5bd41b8be8cd0c7dcd2c3dfcec3dfcdc4e0cec3dfcec3dfcfc4e0 +cfc4e0cfc3e0cfbfddcfbfddcfc2dfd1c5e1cfc4e1cec5e1cbc4e0cbc8dfc2c3b88d9a53 +75933b85ad3f94be3d96bf3c90b33d97ad4aadb68ec6c5c7d0c8e2d0c4e0d3c6e1d4c6e0 +d3c4e0d3c3dfd2c4e0d1c4e0d0c5e1cfc4e0cec3e0cfc3e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c5e1d1c6e1d1c7e1d1c6e1d1c6e1d1c5e1 +cfc4e1cdc4e1cbc5e2c9c6e3c6c8e4c5c9e5c4c9e5c7c9e5cac8e4cfc6e1d3c3dfd5c2de +d7c1ddd4c3dfd0c4e0cfc5e1d0c4e0d2c4e0d2c2dfd3c2dfd4c2ded4c1ded3c1ded2c2df +d2c3dfd2c3dfd2c4e0d2c3dfd3c3dfd4c3dfd5c2ded3c2dfd2c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d4c6e1d4c6e1d3c6e1d0c4e0 +cfc3e0cec2dfcfc3e0d2c5e1d4c6e1d3c4e0d3c3dfd2c3dfd2c2dfd2c2dfd2c2dfd2c2df +d1c3e0d2c4e0d0c2dfd0c3e0d1c4e0d0c4e0cfc4e1cfc4e1d0c6e1d0c6e1ccc6dfbcc0d2 +b3bbc5b9c0c8cccdd8cdcad5d4cdd6dfd6ddd6d3d6cccecdc6cac5bcbfb8aba79f927f77 +805a537c3032851d239b232ea42028aa2021b32123b82323b92323c12424cd2926d12826 +d62a26de2f25e02f25de2e25e02e25e32f24e52f24e32f24e32f25e22e25e22c25e02e25 +dd2d26dd2d26da2a26d22726c72525bc2224b32224ac242ba92c38b04453b65b6ac77e8d +d79aabe4afbfe8bacce8bfd2e5c0d4e1bfd9ddc2ddd9c1ddd6c3ded3c4e0d2c5e1d0c7e2 +ccc8e3cacae4c7cae5c7cbe4c8cae4cacae4ccc9e2cfc8e2d1c7e1d4c6e1d5c5dfd6c3df +d7c1ddd6c1ddd6c0ddd4c0ddd3c0ddd1c0ded1c3dfcfc4e0cec4e0cdc4e1cdc6e2cdc6e2 +ccc6e2ccc6e2cdc6e2cdc6e2cdc6e2cec5e1cfc4e1d0c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d0c4e0cfc4e1d0c5e1d0c5e1cfc4e1cfc4e1d1c3e0 +d1c3e0d1c3e0d1c3e0d1c3dfd0c2dfd0c3e0d0c5e0cfc7e2d0cae0cfcddfcecdd8caccce +b6c1b092a8788eac5095bd3ca4cc39add037aed138aed139b0d238b3d339add13baed13d +aacf39aacf38a3c939a5bd3cb7be86d1c7dad2c3dfcec3dfcdc3e0cec3dfcec3dfcfc4e0 +cfc4e0d0c2dfcfbfddcfbfddcfc2dfcec3dfcfc4e0cfc6e1cac3e1cfcae3cbcdc596a161 +74903a86ac3e96c03c98c23c93b73d97af42a9b482c4c4c0cfc7e0d2c5e1d3c5e0d3c4e0 +d3c3dfd3c3dfd2c4e0d2c5e0d0c5e1cfc4e0cec3e0cfc3e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c5e0d2c7e1d3c6e1d0c3e0d2c4e0 +d0c4e0ccc2dfcdc5e1cbc6e3c7c7e3c6c9e5c5cae6c7cae5c7c8e4cbc6e2d0c5e1d3c4e0 +d3c2dfd0c2dfccc5e2cbc6e2d0c5e1d1c4e0d2c3dfd3c2dfd4c1ddd4c1ddd3c2dfd2c3df +d0c4e0d0c4e0d0c4e0d1c3e0d2c4e0d2c3dfd3c2dfd2c3dfd2c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1 +d2c5e1d2c5e1d2c5e1d2c5e1d2c4e0d3c3dfd2c3dfd2c3dfd2c2dfd2c2dfd2c2dfd2c2df +d2c4e0d2c4e0cfc2dfd2c5e1d4c7e2d3c6e1d0c4e0cfc6e1d4cbe4cec5dfc0bdd3b6bbc7 +b1bec3bfc7cbd6d4dad5ced3d8cbd3e6d8dedaced3cac3c4bdbcbca4a7a48989869d9695 +c2b0b1ae848c894857a253689d3b528e1a2b8e171b951a1d9b1c1fa11e20aa2021b32323 +bd2624c42725cb2925ce2926cf2926d42a26db2d26e02e25e32f24e52f24e42f24e02e25 +dd2d25de2e25e02f25dd2d26d72b26d12826cc2626c92626c42525bf2628b32328ad232c +a92632a62e3bb14553c86876e4909ff2b5c6edcbdfe0cde4dccce3dacce3d7cee5d3cee6 +cfcde5cacce4c6c9e1c7cbe3c8c8e1c8c7e1cbc7e2cdc6e2d1c6e1d4c6e0d3c4e0d4c1dd +d9c2ded9c0dcd5bddbd2badad1bbdad1bbdad0bcdbd0bfdcd0c0ddcfbfddcfc0ded0c2df +d1c3dfd3c3dfd2c2dfd3c2dfd2c2dfd2c1ded2c3dfd1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d0c4e0cfc4e1d0c5e1d0c6e2d0c5e1d0c5e0d2c5e1 +d2c4e0d2c2dfd1c2dfcfbfddcdbeddcec0decabeddcac2dfd2d0e0dadbd9cdd2c2b3bd9b +98ab6d85a7458eb73ea3cc39aed137b1d238b0d238aed139b1d23ab3d339add13caed13d +afd13aa5ce39a0c93aa0ba3ab5bc7dd5cbdad4c6e1cfc4e1d0c5e1cfc4e0cfc4e1d1c5e1 +d2c5e0d1c4e0d1c2dfd1c2dfcfc2dfcec3dfcdc2dfcfc6e1cec6e2d0cae4cbccc89ea86d +7c973b89b03e95bf3c98c33c9bc13b9cb53fa4b175c5c6bad2cae1d2c5e1d3c5e0d3c4e0 +d3c3dfd3c3dfd2c4e0d2c6e1d0c6e1cfc4e0cec3e0cfc3e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0cfc3e0d3c5e0d7cbe4cbbddcd4c5e1 +d8cbe4c0b3d7d5cbe4d3cbe5c6c0dfc9c6e3c9c8e3cacce6c5c5e2c5c2e0ccc7e3d2c9e4 +cfc5e1c4bfdec0c1e0c3c3e1cdc6e2d1c6e1d3c4e0d4c1ddd4c1ddd3c1ded2c2dfcfc2df +ccc3e0c9c4e1cbc5e2ccc5e2cec4e0d0c3e0d2c2dfd2c2dfd2c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1 +d2c5e1d2c5e1d2c5e1d2c5e1d2c4e0d3c3dfd3c3dfd3c3dfd3c3dfd3c3dfd3c3dfd2c4e0 +d2c4e0d1c4e0d4c6e1d2c5e1cfc2dfcec3e0d1c8e1d4cbe3d0c8dec6bfd3bdb9c8c0c3ca +c5cacbcacccbd7d3d2e7dddee2d1d5cdbdbfcec1c4ccc3c5a6a4a68b8e91a2a7a8cacbcf +e6e2e8cab6c4b191a4d7adc5e0acc6d89bb8ce8aa7bb6f8ca24c688a253f82161e831417 +8917198f181b961b1da21f20af2322bf2724cb2826d02826d62a26dd2d26e12e25e22e25 +dd2e25d92b26da2b26dc2d25e02e25e32f24e52f24e42f24e02e25d82b26d32926d12827 +cd292ac12728b42223aa2021a420209d242a9a3b4ea65e74c28297d8a4b6eabaceefc7d8 +edcbdde6cbdde0caded9c6ddd4c6ded0c5dfcdc4deccc4e0ccc5e1cec7e2d1c9e4d6cae4 +cab6d8cdb7d8d0badad2bedcd4c2ded4c5e1d4c6e1d4c5e1d2c3dfd5c8e2d5c8e2d4c5e1 +d3c4e0d2c1ded2bfddd3bfdcd4bedcd3bfdcd2c2dfd2c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d0c4e0d0c5e1cfc6e1cfc6e1d0c7e1d0c7e2d3c6e1 +d2c4e0d2c2dfd1c1ded3c3dfd5c6e1d0c2dfcfc4e0d4cee5d0d0d1bec3aca7b38296a758 +8fad439fc6439cca3ba1cc39a9cf38aed138b3d338b7d438b8d53cb6d43fadd13dadd13c +afd139a6ce38a2c939a1ba39b3bb78d3ccd5d4c6e1cfc4e1cfc5e1cfc4e0cfc4e1d1c5e1 +d2c6e1d1c4e0d1c3dfd1c2dfd0c3e0cec3e0cdc2dfcfc5e1cdc5e1d0cae4cbcccd9ea972 +7e983b8bb03e96c03c99c43b9cc33b9bb63ba4b16ec3c6b5d0cbdfd3c5e1d2c4e0d3c3df +d3c3dfd3c3dfd3c5e0d2c7e1d0c6e1cfc4e0cec3e0cfc3e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d0c2dfcfbfddcfbfdddacce4c9b9da +cdbddccebedcd3c4e0d2c3dfd2c1ded8c9e2d9cde5cabed7d7cee5cdc7e2ccc6e2ccc7e3 +c8c5e2c5c5e2cacee8cccfe8d0cbe5d4c7e2d3c3dfd4c0ddd3bfdcd4c1ddd2c3dfcfc3e0 +cbc5e2c8c6e3c8c6e3c9c6e3cbc6e2cec4e0d0c3e0d1c3dfd1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1 +d2c5e1d2c5e1d2c5e1d2c5e1d2c5e0d3c5e0d3c5e0d2c4e0d2c4e0d2c4e0d2c4e0d1c4e0 +d1c4e0d2c5e1d4c7e2cfc4e1cdc3dfcfc6dfd2cbe2cfc9ddc3becebfb9c7c4bec7cbc6ca +d8d3d2dcd5d2d5cccaded2d1dccfcfcec3c1c1bbba9f9ea075797b798184abb4b8d5dce4 +dddde9c1b9cab29fb6ddc1dae6cae0dcbcd9d2b3d5cfafd3cea8cdd0a5c7ca99b5b87f95 +9f5c6e8739417b231f7f1d17871c18911d1c9d1f1faa2021b52123bf2424c62625cc2726 +cf2826d22a26d72c26dd2e25e12e25e32f24e32f25e02e25e02e25e42f24de2e25d62b26 +d22826cf2926cb2926c72b25c72c25c82d2abf2326bf262cbd2730bb2a3bbd374cc55064 +d16d84e18ea3eaa7bef6c4d9f0cadfe7cde3decde4d4cbe4cac8e4c3c7e3bec5e3c1c5e3 +d2cde6d3cbe5d1c9e4cfc8e3ccc6e2cac5e2c7c5e2c5c3e1c6c3e1c5c1e0c7c1dfc9c2df +cbc2dfcfc2dfd1c1ded3c1ded7c1ddd6c3ded3c3dfd2c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d0c4e0d0c5e1cfc6e2cfc8e2d0c7e2d0c7e2d3c7e1 +d3c5e0d2c2dfd1c1ded0c0decdbeddc8badbcdc3e0d8d5e7cdd1c4b1bc8f9eaf6097b144 +98bb3b9bc73ba1cc39acd038afd138aed138aed137aed138b0d23bb1d23dafd13daed13b +aed139a6ce38a1c8399fb93ab1ba73d2cbd1d3c7e2cfc4e1cfc5e1cfc4e0cfc4e1d1c5e0 +d2c7e1d2c5e1d1c3e0d1c3dfd0c3e0cfc4e1cec3e0cfc5e1ccc4e1d0c9e4cccbcea0aa79 +819b3b8bb03e96c13c9bc53b9dc43b9cb73ba3b166c2c5afd0cbded3c5e1d2c4e0d3c3df +d3c3dfd3c4e0d3c6e1d2c7e0d0c7e2cfc4e0cec3e0cfc3e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d0c2dfcfc0ded1c1ded2c2dfc4b4d7 +dacbe4d7c4dfd1bad9dcc2dde8cae0e4c3dbe6c5dad6b5cddcc3d9decbe2d0c4dfc9c5e2 +c6c8e4c2c8e4c3c9e6c5c8e4c9c3e0cec0ded2bedcd4bedcd8c0dcd8c3ded6c5e0cfc4e1 +cbc6e3c7c8e4c6c8e4c8c7e3cac5e2ccc3e0cfc3e0d0c2dfd1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1 +d2c5e1d2c5e1d2c5e1d2c5e1d2c5e0d2c5e0d2c5e0d3c5e0d3c5e0d2c5e1d2c5e1d2c5e1 +d2c5e1d1c5e1d0c5e0d0c6e1d0c8e2d1c8e0cec8ddc5becdb9b6c0bfbbc4cec8cdd2cacc +ded2d2e5d7d6d9cccbd5cbc8cec5c3c6c0bea2a1a071747570777a98a2a5c3cbd3d9dfea +cfd1e2bab6cbafa2bbd2c2dcd9c6e1d6c6e1d7c9e3d1c3dfcebcdbd1bcdbd6bedbd4b7d2 +caa9bfbe99a9b99199b58889a36c688d443d83261b8d1f1c98211fa12021a72021ac2021 +b52223bc2424c32625c82725cc2726d42a26da2c26e12e25e52f24e53024e32f25dd2d25 +dd2d26da2d26d42a26ce2926cb2726cd2826d62a26dd2d26da2c26d52826ce2728c9272c +c32b3cc1384dbd445dbe5a75c57490d494b1dfafcde4c0dae3c9e1dccae2d7c9e3d4c9e3 +cac1dfcbc4e0cec7e3cfcae4cecce6cccce6c9cbe6c7c9e5c6c8e3c8c8e4cac9e4cccae4 +cfc9e4d0c7e3d2c6e1d2c4e0d1c1ded0bfddd2c3dfd1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c5e1d0c5e1cfc6e1cec8e3d0c8e2d0c7e2d3c7e1 +d3c5e0d3c3dfd1c1ded0c1ded0c1ded0c3e0d4cbe4d0cfd3bcc2a4a3b26f96ad4895b33c +99c13b9bc93ba3cd39afd138b4d337b6d439b5d43cb5d33cb2d23db0d23cafd13cadd13a +add138a6ce38a1c8399eb83aafb972d0c9ced3c5e1cfc4e1d0c5e1cfc4e1cfc4e1d1c5e0 +d2c7e1d2c5e0d1c3e0d1c3e0d0c3e0cfc4e1cec3e0cfc6e1ccc4e1cfc8e3cccbd1a2ac7d +849c3b8cb03e98c23c9dc73b9fc63a9db83aa3b162c1c5abd0cbdcd3c5e1d2c4e0d2c2df +d3c3dfd3c4e0d3c7e1d2c7e0d0c7e2cfc4e0cec3e0cfc3e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c3dfd3c4e0d5c7e2c8badacdbddc +ddcce4d9c4dfe0c3dde4bdd9d29ebdbd7f99daa0b4f3c8d9f4c7d7f3d4e5d7c4decac2e0 +cacbe6cacfe9c6cbe6c8c7e3cbc2e0d3c0ddd8c0dcddc1dcdec2dddbc1ddd7c3dfd1c4e0 +ccc7e2c7c8e3c6c9e5c7c7e4cac5e2cbc3e0cfc2dfd0c2dfd2c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1 +d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e0d1c5e0d2c5e0d2c5e0d1c5e1d1c5e1d1c5e1 +d1c5e1d0c5e0cfc6e1d0c8e2d0cae3ccc8ddc5bfd0bbb8c4bcbcc2cac8cbd7d2d5dacfd2 +decfd2e0d0d3dacfcfcec7c7b7b5b2adaeab7b807f6a6f718e9698bec4c8d8dce6dcdce9 +cccbdcc1bbd1b1aac2ccc3ddd3c8e2d0c4e0d1c4e0cfc1ded0bfdcd5c1dddbc6e0ddc8e0 +d8c3ddd2bfd5d1bdcfd0bdc9c0acb7b499a3b18c97b78591b37584a4586d94394d8b212f +8f1c1d97201e9e2120a62121ae2322b62323c02424c82625cd2826d32926d72a26da2c26 +dd2d26dd2d26dc2e25da2e25d92b26da2d25e33025e43024e32f25e02e25da2c26d32926 +cd2626c72528c0252eb92437b82f49bd425fc15274c86489d2789cdf8eb3eca5c8edb8d4 +e5c3dadfc9ddddc9dfdac9dfd5c9ded1c8dfcfc9dfcdcae2cccbe3c9cae4c9cae4c9c9e3 +cac7e3cac6e2cbc6e1cbc4e1ccc3e0cdc2dfcfc4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c5e1d0c6e2cfc6e1cec8e3d0c7e2d0c7e2d3c6e1 +d2c4e0d3c3dfd2c3dfd0c0decec0ded4c7e1cec9d7b7b9aaa1ad7a99ad5699b3429bbc3b +9ec73aa8cf39a7ce38a9cf38add037b4d33ab9d540bad53fb5d43bb0d23aafd139acd039 +acd038a6ce38a1c8399cb63bacb572cdc8cdd3c5e1cfc4e1d0c5e1cfc4e1cfc4e1d1c5e0 +d2c7e1d2c5e0d2c4e0d2c4e0d0c4e0cfc4e1cfc4e1cfc6e1cbc4e1cfc8e3cdccd3a3ad80 +889f3c8eb13d9ac33b9dc83a9fc73a9dba3aa3b25fc1c4a8d0cadbd3c6e1d1c3e0d2c2df +d2c2dfd3c4e0d3c7e1d2c7dfd0c7e2cfc4e0cec3e0cfc3e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c3e0d3c5e1d3c7e2cdc3e0d5c9e3 +cfbedcdcc3deeac6ddd69bb9b4637da8475db04c5bc6717fba6a7bd299aedfbcd6d6c6e0 +cac7e3c6c9e5cacbe6ccc7e2d2c2dfd8c0dcdebfdbe0bedadfbcd9dbbad8d6bddbd4c4e0 +cfc6e1c9c8e3c7c8e3c8c7e3cac5e2ccc3e0d0c0ddd0c0ddd2c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1 +d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d1c5e1d0c5e1d1c5e1d1c5e1d0c5e1d0c5e1d0c5e1 +d0c5e1cfc6e1d0c7e1cfc8e2cac6dec2c0d2bab8c5bcbbc4cccbced6d5d5d9d4d5dfd5d9 +dbced5d5c9cecfc9cbbbb9bca2a6a6a4abaa6f797981888baeb0b3d1d1d7e0dbe6dbd4e2 +cfc7d7c7c0d4b1abc2c7c3dcd0cbe4cfc7e2d0c4e0d3c3dfd5c3dfd8c3dedac3dedac4df +d8c4dfd4c4dfd3c7e1d1cae3cdc9e0ccc8dfd0c8e0d3c5ddcdb7d2be9fbeb087a7a8758f +a1637499505b8c374489273491232f9a222da22129a72021ad2122bc2224c52625cb2626 +cf2726d42a26d92b26dd2d25e02f25e02f25dc2e25db2e26dc2e25dd2e25dd2e25dd2d26 +dc2d26d82b26d32726d02628cd252ac6242cc0222fbe2438c22d48cd415dd95672d56985 +d28698ce96a6d6a5b4deb1c0e4bccbe3c1d2e1c7d7decbdcdbcbe1d5cbe2d1cae3cec7e2 +cac5e1c8c4e1c7c3e1cac5e1ccc7e3cec6e2d0c5e1d0c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c5e1d0c6e2cec7e2cec7e2d0c7e1d0c7e1d3c5e0 +d3c3dfd3c3dfd3c3dfd3c4e0d1c6ded4ccd8c4c2b9a1a88195a55c9db24fa8c34aabcc43 +aad03bacd03cafd13cafd13caed139b2d23ab5d43eb7d43cb5d338b1d239b0d239acd039 +acd038a4cd39a1c73a9bb53baab474cbc7ccd1c5e1d0c5e1d0c5e1cfc4e1d0c5e1d1c6e1 +d2c7e1d2c7e1d2c4e0d2c4e0d0c4e0d0c6e1d0c5e1cfc6e1cbc3e0cec7e3cdccd4a7af83 +8ca24190b13d9cc33b9fc93aa1c9399ebb3aa3b25cc0c4a5d0cadbd3c6e1d1c3dfd1c2df +d2c2dfd3c3dfd3c7e1d2c7ded0c7e2cfc4e0cec3e0cfc3e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d0c4e0d1c5e1cfc4e1cec5e1d0c9e4d2c9e3 +d0bfdde2c8e0d7a5c0b4657d9e3043a324299e1e1fa92426a12833b25b70e4b1c8e4c9e1 +cfc4e1c7c6e2cac5e1d0c6e1d6c1deddbfdbe4bed9e6bcd8e6bcd8e4bfdadfc1dcd7c3df +d0c7e1cbc8e2c9c8e3cac7e2cac3e1cfc2dfd1c0ded2c0ddd2c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1 +d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d0c5e1d0c5e1d0c5e1d0c5e1d0c5e1cfc4e1cfc6e1 +cfc6e1cec7e2cfc7e2cac4e0c4bed6bab7cab9b8c4c6c7cdd8d9dcdadbd9d5d3d1ddd5db +d7ced7c7c1c9b6b6bca2a9ad99a4a5b7c1c18791919d9fa3bebac0d6cbd6e2d1dfddccdb +d6c6d8c8bdd0aaa7babfc3d6c9cee4cacde4cdc9e3d1c7e1d4c5e1d5c1ddd6bedbd7bedb +d7bfdcd5c2ded3c4e0d0c5e1cec8e3cccae5cccae4cfc6e2d1c4e0d5c3dfdac3dedcbfdb +d5b3cec399b3a978939f657e9f5b74a050689d405495293a941c239e1f21ab2022b32123 +b82323be2424c52625ce2826d52b26d62c26ce2926ce2926d32a26d62c26db2e26dd2e25 +de2f25dd2d25da2d25dd2d26dd2c26d92a26d32926cd2826c72625c32525c02424b52323 +af2a34b13e4bbf5663cb6e7cd58290dd94a4e3a4b5e7b4c6e7bed3e6c7dce1c8e0dcc7e0 +d6c5e0d2c4e0cfc4e1cfc5e1cec5e1cec5e1cfc4e1d0c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c5e1d0c6e2cec7e2cec7e2d0c6e2d0c5e1d2c4e0 +d3c3dfd3c3dfd5c5dfd6c8ddd5cad2c5bfb4a6a88688935284983b90aa3f9bb8429fc23d +9ec53aa3cc39b1d341bed748bad642b3d33eb3d33bb5d338b6d438b5d337b1d239abd038 +acd037a4cd39a1c53a9ab23aa9b377cac5cbd0c5e1d0c6e2d0c5e1cfc4e1d0c5e1d1c6e1 +d2c7e0d2c7e1d2c4e0d2c4e0d0c4e0d1c6e1d0c5e1d0c6e2cbc3e0cec7e3cdcdd6a7b086 +8fa44790b23d9ec53aa2ca39a3c9399ebb3aa3b25ac0c4a3d0cadbd2c5e1d1c3dfd1c1de +d2c2dfd3c3dfd3c7e1d1c8dfd0c8e2cfc4e0cec3e0cfc3e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c5e1d0c6e2cec6e2cac5e1cac7e2c8c2df +e2d3e7ebcce1b4758c983345a12325ad2022b32122b62323bb2c30aa3a4adc99ade7c1da +d8c7e1d0c7e1cdc3e0d5c6e0ddc4dee0bcd9dfb1d2e1afd0e5b4d3eac0d9e8c8dfd9c1dc +d3c5dfcdc6e2cac7e2cbc6e1cdc4e0d1c2dfd4c0ddd3c0ddd2c2dfd1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1 +d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d0c5e1d0c5e1d0c5e1d0c5e1d0c5e1d0c5e1cec6e2 +cec6e2cec6e2cac3e1c3bdd9bcb9d0bbbacbc4c4ced0d1d7dadbdbd6d8d6cfd1d0d0d0d7 +c8c7d3b2b4c09ca3ad9ca8b0a7b5b9cdd8dba2a7acaca8afcbbdc5e0cbd7e8cedbe6ccdb +dfc8d8c7bccba7a6b6bcc5d3c2d0e0bfcbe2bec6e2c6c5e2cec4e0d2c3dfd7c0ddd8bedb +d6bddbd4bcdad2bddbd0bfdcd1c2dfcfc4e0cdc0decebedcd0bddbd6bedcdcc2dde1c6df +e0c8e0ddc3dddbbedbdebed9deb7d4d2a4c0bc859fa6647a9746599333429e333ba32a2c +a32121a62021ad2022b42123ba2423be2624c72725c92825cb2925cc2826ce2826d12826 +d52a26da2b26dc2d25d92b26d92b26da2d26d92d26d62e26d42d26cf2d26cb2a25c82825 +c92626c52426bc2124b32023af2129b32d3dbf4c5dce6a80d7859de09db7dea6c4ddb0cf +ddb9d7dbc1dcd9c4dfd3c4e0cfc1deccbfddcfc4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c5e1d0c6e2cec7e2cec7e2d0c5e1cfc4e1d2c4e0 +d2c2dfd3c3dfd5c5ded5c9d5cac1ba9f9a7c6e73355d6b2e5d76335c7b365b81395c883b +68963f81ae4096c33caed141b1d342b3d33fb6d43ebad539bcd637bbd536b2d238aacf38 +abd037a5cd399fc43a99b13da6b179c7c4cbd0c5e1d0c6e2d0c5e1cfc4e1d0c5e1d1c6e1 +d2c7e0d2c7e1d2c4e0d2c4e0d0c4e0d1c6e1d0c6e1d0c6e2cbc3e0cec7e3cdced5aab288 +92a74b91b23d9fc63aa4cc39a4ca399fbd3aa2b257bfc4a3d0cadbd3c5e1d1c3dfd1c1de +d2c2dfd3c3dfd3c7e1d1c8ded0c8e1cfc4e0cec3e0cfc3e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d0c4e0d0c6e2cfc6e1cac7e2c2c3dec5c3dc +e2d6eaeccddfb77685a0353db12928c52725cb2726c42425c02424a62228c26478e1adc5 +e4cce2d6c7e1d6c7e1e0cae2e5c3dcdaa8ccc98bb5bf7ca8c585afd29cc3dab2d2dbbfdb +d3c2decfc4e0ccc6e1cec5e1cfc4e1d2c2dfd5c0ddd5c0ddd2c2dfd1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1 +d2c5e1d2c5e1d2c5e1d2c5e1d1c4e0cfc4e1d0c5e1cfc4e1cfc4e1d0c5e1d0c5e1cec6e2 +cec7e2cdc6e1bfbad7bab5cebdb9cdc5c4d3d0d0dad5d6dbcfd0d0cccfcbcfd2d3c5c6cf +b4b5c6a0a0b59599acb8c0d0c4cedecad0dda2a2aeb2acb6d1c3cce3cfd9e7ced9e4cbd6 +dac6d3c2b7c4a7a5b5bec7d6c0cddfbdcae4c2c9e5c7c7e3cac3e0cfc0ded3bfdcd5bfdc +d7bfdcd5bfdcd6c0ddd6c3ded2c2dfd2c2dfd2c2dfd5c4dfd6c3dfd8c1ddd8bfdcd4bddb +d3bedcd5c0dcd7c2ded9c4dfdbc4dfddc4dee0c1dbe5c1d9eabfd5f1c0d3e3a8b9c47c8b +a64e5b952b36911d24941c20991d1f9d1d20a41f20af2222b72423bc2424bd2324c12424 +c62625ce2926d52b26d72c26d72c26d72c26d72c26d62e26d72e26d62f26d52d26d62c26 +da2d26dd2c26dc2c26d52826cc2626c22325b92124b32226ac2432a4253da73a58b55c7c +c27d9fcf9ec0d8b6d6d7c2ded3c6e1cfc5e1cfc4e1d0c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c5e1d0c5e1d0c6e2d0c6e2d0c5e1d2c5e1d2c4e0 +d3c3dfd3c4e0d4c6ded7ced6cac4b88886624f57255b672c617733537233486e344d7737 +56813a50803a52843b5e8c3d739e3f93bb3db1d13ebdd744bcd63bb6d439b3d339acd037 +abd038a6cc38a1c43a9ab23ba4b175c5c3c9d0c6e2d0c6e2cfc4e1cfc4e1d0c4e0d2c7e1 +d2c7e1d3c6e1d2c4e0d2c4e0d1c4e0d3c8e2d1c6e1d0c7e2cbc3e0cec7e3cecdd3aab388 +94a74a90b33e9fc73aa4cc39a5cb399fbd3aa1b357bfc5a2d0cadbd2c6e1d1c2dfd1c1de +d2c2dfd2c4e0d3c7e1d2c8ddd0c8e0cfc5e1cec3e0cfc4e1d0c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d1c4e0d0c6e1cfcae4d2d0e6 +bbb8cae4cfdee6b3c1bc5d69a51f21be2324cc2726d92b26c42425ae2122a02934d38ea2 +edc9dedac5dedbc6dfe3c5dde5abcac676979f3c64841a457e1e4b89406ca7749cdbbdda +d5c0ddd1c3dfcfc4e1cec4e0cfc4e1d2c4e0d3c2dfd3c2dfd2c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc2df +cfc2dfcfc2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc4e0cfc4e0cfc4e0cfc4e0 +cfc4e0cfc4e0cfc4e0cfc4e0cfc3e0cdbfddcfc4e0d2c5e1d0c3e0ccc2dfcdc3e0d1c8e2 +cac3dcbdb7ceb6b1c4bebbcacbcad5d4d3dbd4d4d7d2d3d3d1d2cecccfcbc8caccb1adbd +a39ab7a69ec1b5afd1c9c4e1d5d1e9d5d2e9a7a7baa9a8b5c4c0c6d7d1d1dcd4d1dcd4d2 +d9d1d3c5c1ccb1adbfcdcbe3d0cde6cac7e2cbc5e2ccc4e1cec3dfcfc3e0d1c1ded1c0dd +d1c0ddd1c0ddd1c0ded1c1ded0c2dfd0c2dfd0c2dfd0c2dfd1c2dfd1c1ded2c1ded2c1de +d2c1ded2c1ded2c1ded2c1ded2c1ded3c0ddd4c1ddd6c1ddd8c1dddcc4dedec3dee5c6de +e9c8dfe8c3dbd5abc9b181a2874d726f1c40760e218f1924961c2a981c249b1c21a52022 +b02325b72324b92223c32325c92725d12826d52a26d92b26da2d25dd2d25e02e25e02f25 +d62b26d72b26dc2d25de2e25e02e25e02e25de2e25dc2d25d72a26cd2726cc292db82933 +9b202f9e475bca99abc3adbdcbcddfc5cae1cbc7e2d1c5e1d4c5e1d4c5e1d4c5e1d2c4e0 +d3c5e0d5c8e2d6cae3cfc1decdbeddcebfddcfc1ded0c2dfd1c3dfd1c3dfd0c2dfcfc1de +cfc2dfcfc3e0d0c3e0d0c3e0d0c3e0d1c4e0d3c5e1d3c5e1d3c5e1d0c3e0cfc3e0cfc3e0 +d0c3e0d0c4e0d1c4e0d2c5e1d1c4e0d3c5e1d1c3e0cfc2dfcfc3e0d1c4dfd1c6dcd2c4df +d2c3dfd1c3e0d0c5dfd6cdddcdc8c68d8c77585d3057642b566a2e4d672e4b6a314d7234 +4f79374e79374671354d793849753652803a4e7e3964923e92bb3db8d658bdd857b4d448 +aed13fadcf3ca6c8389bb63b9dac63b7b9bbd5cee6cdc3e0cfc3e0cfc2dfd0c2dfd0c2df +d1c3e0d1c2dfd1c1ded1c1ded2c3dfd5c7e1d4c8e2d2c7e2ccc3e0cfc7e2d0ced0abb384 +93a74795b83da0c93aa6ce38a8cd38a1c13aa5b65ac1c7a5cfcbded1c5e1d1c2dfd1c2df +d1c3dfd2c4e0d3c7e1d2c8ddd0c8dfd0c5e1cec4e0cfc4e1d0c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d3c3dfd7c3dfdabfdbd5bad9d9cae3d0cbe1 +b9c6d4d8dce9e5c9dcc37c97ab314fbd232dc62425d22a26c62625ba2323a82221be606d +dda5b9eac7d9e2c7d7e4b8c7dc7988b02632ae2129aa2130982441aa5b81ddb0d0dcbeda +d6c0ddd5c1ddd3c3dfd0c6e1cec7e2cdc7e3cdc6e2cec6e2cfc4e1d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc4e0cfc4e0cfc4e0 +cfc4e0cfc4e0cfc4e0cfc4e0cfc3e0d1c4e0cfc2dfccbfddcdc0decfc4e1d1c6e1cdc4de +c3bdd1bcb6c4c2c0cccdc9d2d2d0d7d4d4d7d4d3d6d6d9d7d6d8d4c1c4c2ababb1a49db3 +ada2c4bdb0d5ccc0ded1c5e1cec4e0cfc9e3a8a5bdafadbcc4c4c9d0d1ced4d5cfd5d6d0 +d3d3cfc2c0caafacbecec7e2d3cae4cec3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2df +d0c2dfd0c2dfd0c2dfd0c2dfd0c2dfd0c2dfd1c2dfd1c2dfd2c3dfd4c6e1d2c2dfcfbfdd +d2c2dfd6c6e1d8c9e2d6c7e1d2bfddd8b8d7f1bfd7e5a2b9bf748c993f588218307e131d +8b181f9a1c26a21f25b12529b52323bb2224bf2424c42425c82625ce2826d42a26d42a26 +d32b26d12926d22a26d72b26df2e25e52f24e93024e62e24e12e25df2e25d22826c12525 +bb3a3ed17b83f5c4c8e1ccd1d1d9dbc1cdd7c4c3dac9bfdcccc0decdc0decdbfdecdbfdd +cdc0decfc1decfc4e0d4c6e1d4c7e2d4c6e1d4c6e1d3c6e1d2c4e0cfc2dfcfc0decec0de +cfc3e0d1c4e0d1c4e0d1c4e0d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d0c3e0cfc3e0cfc3e0 +cfc3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0cfc1dfcfc0ded0c2dfd1c5ddd2c6dad1c5dd +d1c3dfd0c2dfcfc4e0d1c7dfcec8d0b7b7b19398815e694248572753672d5c7734567635 +4e72345a81395e853a608a3c57823a58853b4d7f3a4b7b3956833b69943e81ac3fa1c73a +b0d149accc3da5c539a1bc3aa8b869bcc0bbcdc8e4cdc4e0cfc3e0cfc0decfc0ded0c2df +d1c2dfd1c1ded1c0ded1c0ddd1c2dfd5c7e1d5c8e2d2c8e2cec4e0d0c7e2cfcdceacb381 +95a74595b93ca0ca3aa5ce39a7ce38a0c13aa4b65bc0c6a4cecbddcfc4e0d0c2dfd1c2df +d1c3dfd2c4e0d2c7e2d1c8ddd1c9dfd0c5e1cec4e0cfc4e1d0c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c2dfd9c5e0dac2ddceb5d7d4c4dfd3d1e6 +b7c7d9c2cde0ded0e7ebbbd6cf7294ac2035cf2b33c52625c92725bf2424b42523a62b33 +c7788bf6c5d6ecbac7c07b87a6252ab32223b12122b1262cc85f74e29fbde4bcd8d7bfdc +d2c1ded2c2dfd1c4e0d0c6e1cfc6e1cec7e2cec6e2d0c5e1cfc4e1d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d3c6e1cfc1decabeddccc2dfd0c7e1cdc3ddc2bad1 +beb8c9c1bbc9cfcbd6d3d1d8d1d1d5d2d2d6d6d5d8d4d5d7c5c6c9afb0b29c9aa5a6a0b8 +bbb0d2cfc1ded7cbe4d2c6e1c9bfdecec7e2aba7beafaebdc2c3c8cfd0cdd3d6cfd4d6d0 +d2d3cfc0bec9afaabdcdc6e1d2c7e2cec3dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +d0c2dfd0c2dfd0c2dfd0c2dfd0c2dfd0c2dfd0c2dfd0c2dfd1c3dfd5c7e2d3c4e0cfc1de +cdbeddcebfddd1c3dfd4c6e1d8c9e3ddcae2e8c9e0e4bcd3d9acc6daa9c1deabc2dfa5ba +d1899dad586c8b1f3285161b8f191c991b1fa41e21ae2322b52523b82624ba2423b82323 +c62925c52725c52725c92725d22a26da2d25e02f25e02e25df2e25df2f25cd2926c42e2b +d76668f3b0b2fae0e4f3e0e1d8e0e1ccdbe0d1d2e1d5cee3d5cce3d4cae1d0c7dfcec4dc +cac1dacac0dac8bfdbcec3dfd0c4e0d0c4e0cfc3e0cfc4e0d0c3e0cfc4e1d1c4e0d1c4e0 +d0c3e0cfc4e0cfc4e0cfc3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc2dfcfc1decfc3e0d1c4ded1c6dcd1c3de +d1c3dfd0c2dfcfc2dfd1c6e1d1cbdecfcbd0c1c1bd989d8b6670534f5f2d4f642c506c31 +4c7134567e3893b73db9d659aed14888b13f65953f50803a4d7c3953823b53823b729c3f +8eb23d9fc13aa4c439a0bc3aa3b55bb7bdaed0cce3cec5e1cec3dfcfc2dfcfc0ded1c2df +d1c2dfd1c1ded1c0ded1c0ddd1c2dfd4c6e0d4c6e1d2c7e2cec4e0d0c7e2cdcccdabb180 +96a84599bd3ba4cc39a8cf38a8cf38a2c239a6b85ec1c7a7cfcbdecfc4e0d0c2dfd1c2df +d1c3dfd2c4e0d2c7e1d1c8ded0c9e0d0c5e1cec3e0cfc4e1d0c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d4c5e1d1c2dfc5bbdbccc7e2d4d5eb +c2cae3c0c2ded3c8e2eacee3e7a6c8c45172b4212ac52625c82625c02724b32423a52021 +ba445ade7c94d77f91a13848a22227a42121a62428ca5d69eb9db0efbed7dfc0dbd2c2df +ccc5e2ccc6e2cdc6e2d0c6e2d1c4e0d2c3dfd4c3dfd3c2dfd2c3dfd1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc4e0cfc4e1ccc2dcc2bad1bab2c5 +c0bbc8cec8d1d8d4dad4d2d7d0ced3d2d2d6d5d4d9c7c8cdaaabb3a1a1aba8a6b6bcb3cd +cbbfddd3c5e1d5cae3cfc4e1ccc3e0d2cde6aca9c1adabbabfc0c6cecfcdd3d6cfd4d6d0 +d1d2cec0bdc8aca8bbcbc4e0d1c6e2cdc2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +d0c2dfd0c2dfd0c2dfd0c2dfd0c2dfd0c2dfd0c2dfd0c2dfd0c2dfcfc0ded1c3dfd4c5e1 +d4c5e1d2c4e0cfc1decfc0decfc0ded1c1ded5c4dfd6c4ded9c4dee1c8dfe9cce1edcbdf +ebbfd5d9a5bbc88da1cf97aaca7e8fb65b6ca0394994212e8f191f91191d961c1e9b1e20 +a72121b02322b82423bf2624c52725c82725cc2826cf2926d02826cd2826bf2624c13a38 +de8285facac9fbe4e6f2e2e1e0e7e6e0eeefe3e7ebe7e3ebe7dfebe2dbe7ded6e4d8d0e0 +d2cbddd0c8dccfc7ddcbc3dacac1d9cac1dbc9c0dccac0ddccc1dfcec3e0cfc4e1d1c6e1 +cfc4e0cfc3e0cfc3e0cfc4e0cfc4e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d1c4e0d1c4e0 +d0c3e0d0c3e0d0c3e0cfc3e0cfc3e0cfc2dfcfc2dfcfc1decfc2dfd1c3dfd1c4ded1c3df +d0c2dfcfc0decfc0ded2c4e0d4cae3cfc8d9d1cfd8c7c8c7a0a49a737c5f5c6b31566e30 +5f7d37789d3ea7ca3abed854c7db5bb9d64da9cf4384ae3f59853b4370354774364e7a38 +658a3b83a43d93b23c96b13b9dad54b5bba8d3d0e3cec6e1cec3dfcfc2dfcfc2dfd0c2df +d1c2dfd1c1ded1c0ded0c0ddd2c3dfd2c4e0d2c6e1d2c7e1cdc3e0cfc7e2cdcccda9b17f +95a9439cc13ca7ce38aacf38aacf38a6c438a9b864c3c9acd0cce0cfc4e0d0c2dfd1c2df +d1c3dfd2c4e0d2c7e1d1c7ded0c8e1cfc5e1cec3e0cfc4e1d0c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d0c4e0ccc3e0c8c3e0c5c5e2c8cae6cbcde7 +ccc7e3c9c0dfcdc0ded8c3dfe7bfd9db92aea52433bd2424c22425bd2624b62423b32323 +b42634bb3648be3c509b1d23a42d349c2b32b45461e09babf2bdd2e9c0d8d9c1ddcfc6e1 +c6c8e4c5c9e5c8c8e4cfc6e1d2c3dfd7c1ddd8c0dcd7c0ddd2c3dfd1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cdc2dfcfc4e1d0c7e1ccc3dec4bbd1bcb5c7beb6c4 +cbc6ced7d3d7dbd8dbd6d4d7d1d0d3cfced3c9c8ceb4b5bf9d9baba7a6b8c1bdd3d0c7e2 +d4c6e1d0c2dfcfc2dfcec3dfd1c6e2d4cee7aba7bfa9a8b7bdbfc3cecfccd3d6cfd5d7d0 +d1d2cebfbcc6aaa7bacac2dfd0c6e2cdc2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +d0c2dfd0c2dfd0c2dfd0c2dfd0c2dfd0c2dfd0c2dfd0c2dfcfc1decdbeddcfc1ded4c5e1 +d4c6e1d4c5e1d2c4e0d0c2dfcfc1deccc1dec8c2e0cccae4d0cbe5d0c9e3d0c5dfd4c3dd +d8c3dddec4dce4c5dbe4c4dbe7b9cfdba7becf94abc48299b87087a95c729a465c963346 +8a171b961c1e9e1f20a42221ab2221b12222b62423bc2424be2724b72523b22926bf4d4c +e09799fbd4d6fadedfeee0dee0e8e6e6f1efeaeeebeeece9efebeaeee9e9eae6e8e6e0e4 +e2dbe2e0dae2ded7e4d6cfdfd1cbddd0c9ddcec7ddccc5dccbc3ddcac3dccbc3deccc3de +cec4e0cfc4e0d0c5e0d0c6e1d0c6e1d0c5e0d1c5e0d1c6e1d2c6e1d2c5e1d1c5e1d1c5e1 +d0c4e0cfc4e1cfc4e1cfc4e0cfc3e0cfc3e0cec2dfcec0decfc2dfd0c5e0d0c5e0d0c2df +cfc0decfbfddcebeddd1c3dfd4c6e1ccc3ddd0c9e1d6d2e3c8c7cfb0b4ab959e7c798942 +718c398eb03daed03ebbd649cbdd5ac5da56bcd7549abf3b678f3d4b72354a71354d7234 +527334607f3773913b839d3c98a75ab6baabd1cee1cec6e1cec3dfcfc2dfcfc2dfd0c2df +d0c2dfd1c2dfd0c0ddd0c0ddd2c2dfd1c3e0d0c4e0d1c6e1cec3e0cfc7e2cdcbcba9b17c +93aa419fc43aa9cf39acd037abd037a6c438a9b968c4cab0d0cce0cec3dfd0c2dfd1c2df +d1c3dfd2c4e0d2c5e0d1c7e0d0c8e2cec4e0cec3e0cfc4e1d0c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d0c5e1cbc4e1c8c6e3c9cbe6c3c9e5c1bfdf +d1c1ded4c3dfd0c2dfcfbfdddbc4dfe4b6d0bc5f72ae2726b72423b92423bf2624bc2424 +b92224ba2225ba2327aa1f219a2b33a85963d196a5eabed2e9c3dbdfbed9d8c3dfccc7e3 +c3cae6c1cae6c5c9e5cec6e2d3c2dfd8c0dcd9bfdcd8c0ddd3c3dfd1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3e0cfc4e0d0c6e1ccc3ddc4bbd2bdb5c8bfb9c6cdc8cf +d7d3d7dad5d5d7d4d3d6d4d4d0ced0c3c3cab3b1bba39fb2a4a1b8bab7d0cfc8e3d7cde6 +d4c6e1cdbfddcbbfddcfc4e0d1c6e2d0c9e4a6a2b9aaaab8bfc0c6cecfccd3d6cfd6d8d1 +d1d2cebfbcc6a9a5b9cac1ded0c6e2cdc2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +d0c2dfd0c2dfd0c2dfd0c2dfd0c2dfd0c2dfd0c2dfd0c2dfd0c2dfd1c3dfd1c3dfd0c2df +d0c2dfd0c2dfd0c2dfd1c3dfcfc3e0cbc4e1c5c6e3c3cae6c3c9e6c2c6e4c2c4e1c5c2e1 +cac3e0d0c6e1d5c6e0d1bddad9c1dbe2c8e0ebcce1eccbe0e8c2dad8aecbc796b5bd819d +ae6076ac4e5da0374496242c931d20971d1f9d2120a32221a323219d2120a12b2bb45254 +d8999cf8d0d1f5d7d8e9dddddfe5e4dce7e3e4e8e1e8e9dfecebe1eeece4eeece5eeeae6 +ece9e7ebe9eaece8ece7e3e9e3dee8dfdbe6dcd6e5d7d2e2d4cee1cfcadecec8dfcdc7dd +cec6decfc6decfc6dfcfc6dfcfc6dfcfc6e1d0c6e1d0c6e1d0c6e1d0c5e0d0c5e1d0c5e1 +cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1cec3dfcdc2dfcec3dfd0c5e1d0c5e0d0c2df +cfbfddcebeddcebeddd0c0ddd0c2dfcec0deccc1decdc6e1d2cee5d9d8dfc8cbbaa2ae77 +8aa13c9dbd3bb7d544c1d948cadc53bed84dafd1448eb13d688b3b5476354e7033577534 +516c304d672e5571326c81358c995ab2b5aad0cde0cec6e1cec3dfcfc2dfcfc2dfd0c2df +d0c2dfd0c2dfd0c0ddd0c0ddd2c3dfcfc2dfcfc2dfd1c5e1cdc4e0cec7e2cccbc9a6b079 +93aa3ea1c63aaacf38abd037abd037a6c33aa8b86bc4c9b2cecbdfccc0decfc2dfd1c2df +d1c3dfd1c3e0d2c5e1d1c7e1d0c7e2cec4e0cec3e0cfc4e1d0c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d0c5e1ccc6e2cbc9e4cccce6c4c4e2c2b9da +d2bddbd7c2ded2c3dfcfc3e0d4c5e1dcc1dadda7b5ac4142a72021ba2323c62725be2424 +c22325cd2626c72625bd2529aa4853cb97a4e5c3d6e0c7ded9bedbdbbfdbdbc7e1cec7e2 +c6cae6c1cae6c5c9e5ccc5e2d2c2dfd6c0ddd8c0dcd7c1ddd2c3dfd1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3e0cec5e0cac2dcc4bbd1bdb5c8bfb8c5cbc7cdddd8dc +dddbdbd4d1cececccacdccccc7c5c9b3b2bb9f9cab9f9ab1b9b5d0cac5e1cec6e2d1c6e2 +cfc3e0cec0decfc3e0d1c6e1cec4e0cac5e1a39fb9afacbbc2c2c7cecfccd5d7d0d7d9d2 +d2d3cfbfbcc6a8a5b9c9c1ded0c6e2cdc2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +d0c2dfd0c2dfd0c2dfd0c2dfd0c2dfd0c2dfd0c2dfd0c2dfd0c2dfd3c5e0d1c3e0cfc1de +cec0decebfddcec0decec0decdbfdec9c2e0cacae5c0c8e5bec4e3c0c6e3c6c8e4cacbe6 +cccae4cac6e2c9c2dfd5cae3d3c4e0d2c1ded4c1ddd6c1dedbc5dfdfc7e0e4c9e1e9c9df +f3cce0ebaec5ce899eb46c7ea55769a14a599f414c972f3b8d212784191c852128944248 +bd8188e0b6bbe2c7cbdfd4d7d8dee0d0dad8dbdfd6e1e3d6e5e5d8e7e8dceae9e0ebe9e2 +eaebe3edebe7edeceaefededefeceeebe9ede9e5ebe3e1e9e1dce7dcd8e5dcd6e4d9d4e5 +d4cee0d0c9ddd0c8ddd0c8decfc7ddcec6decec5ddcdc4ddccc3decdc3dfcec4e0cfc4e0 +cec3e0cec3e0cfc4e1cfc4e1d0c5e1d0c5e1cec3e0cdc2dfcec3e0d0c5e0d0c5e1d0c2df +cfbfddcebeddcebeddcdbeddcfbfddd0c2dfcfc1dfc9bddccac2e0d7d3e6d5d6cbbbc393 +a5b856acca3cbfd744cadc43c8db46bed748a8c93983a53d5c7d374b6930546f31576e31 +52662d50642c51652c596d2f768347a8ab9fd2d0e0cec6e1cec3dfcec2dfcfc3e0d0c3e0 +d1c3e0d0c2dfd0c0ddd0c0ddd1c3e0cec0decec0ded0c6e2cec5e1cdc8e2c9cac5a5af73 +94aa3ca1c839abd038abd037aacf38a6c33ba8b86fc3c9b6ccc9dfc9beddcfc1dfd1c2df +d1c2dfd1c3e0d1c4e0d1c6e1d0c7e1cec4e0cec3e0cfc4e1d0c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d0c4e0d0c5e1cec5e1cec5e1ccc2dfd1bfdd +d6bfdcd4bcdbcfbddbd0c3e0cfc6e2d2c9e0eaccd6c47a7a9e2020be2624c82625c22425 +c62625cf2826cc2626c32725de8e97f2cbd8e0cde3d1c6e1d0bfddd4bedcdbc6e0d2c5e0 +ccc7e3c6c9e5c7c8e4ccc5e2cfc3e0d2c3dfd4c3dfd3c3dfd2c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3e0cec3e0cfc4e1c7c0dbc1bad0bdb6c8bfbac8cac4ced6d3d7e0dcdc +d9d8d3d0cecac9c8c5c2c1c1b8b6bba8a5b2a29db1aeaac5c9c2e0d0c9e3cac1dfccc0de +cfc2dfd1c4e0d3c5e1cfc4e1cbc2dfcdc6e2a7a3bbaeadbbc1c1c6cfd0cdd6d8d1d8dbd3 +d3d5d0bfbcc6a8a4b8c9c1ded0c6e2cec3dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc2dfcabddccdbfded1c4e0 +d3c5e1d3c6e1d3c6e1d3c6e1d3c8e2d0c6e2c4c0dfc7c7e3cdcbe6cac9e4c4c3e1c0bdde +c0bbdcc9c2dfd0c7e2c8bdddcbbddccec0ded0c0ded1c1ded1c0decfbedccebcdbd1b8d8 +dbb8d6e4bcd7edc4dbf3cee1f7d2e2f4c7d9dfaabcbe8293a05c6b8b4252813a49813f4f +996675b5939fbca8b3bfb7bfc6c7d0c4caceced0cdd3d4ccd8d8cedbdbd3dedfd6e0e1da +e1e2dbe2e2dee4e5e2e9e7e5e8e9eae9eaebe9eaebeae9ecebe9ece9e9ece9e8ede9e7ed +e0dbe5dbd4e1dad2e0d8d0e0d6cedfd3ccdfd0c9ddcfc7dccdc6dcccc4ddcbc3dcccc2dc +ccc3dfcdc3e0cfc4e0cfc4e1d0c5e1d0c5e1cec4e0cdc3e0cdc4e0cfc6dfd0c5e0d0c2df +cfbfddcfbfddcebeddcebeddd0bfddcfbfddd2c3dfcec0dec7bcdcc8c0d8c8c5bebcc191 +acbe58adcc38c3d83cd3df43c6da3bbcd640a2c33981a23d607d374c672f5b6f3054652c +51602f5a69315c6b2e5c6b2e717c45a5a898d6d4deccc7e1cdc3e0cec2dfcfc3e0cfc4e0 +d1c3e0d0c2dfcfc0decfbfddd1c3dfcebfddcdbfded0c5e1cec5e1cdc8e2c9c9c3a4af6f +93ab3ba4ca39acd039add038abd037a8c341aab976c5cabbcec8e1c9beddcfc1dfd1c2df +d1c2dfd1c3dfd1c4e0d1c5e0d0c6e2cec4e0cec3e0cfc4e1d0c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d2c2dfd1c0ddd2bfdcd7c1dddac3de +d7bfdcd1bad9ceb9d9cebddccec7e3cfd0e5d8cbd3e4b2b1ad4037c02624cb2726cb2825 +c42625bf2424c52625b72323f2a9b0f4d1e1d2c4e0ccc8e4d0c5e1d0bddcd7bfdcd8c3de +d4c4e0cfc5e1cdc6e2cdc5e1cdc5e1cdc6e2cec7e2cfc6e1d0c5e1d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cec3e0 +cec3e0cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3e0cec3e0cec3e0cec6e1bcb6ccb7b1c2beb7c4cbc5cfd9d4daddd9dbd7d3d0 +d0cecad3d1cdcac8c6bab8baaba8b1a9a6b6b9b6cccac4e0cfc6e2cec5e1d2c7e2d1c5e1 +d2c4e0d5c7e2d3c5e1cabfddcdc3e0d7d1e8b0abc3a9a8b7bdbec2cfd0ced7d9d2d9dbd3 +d3d5d0bfbcc6a8a4b8cac1ded1c6e2cec3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc2dfccbfddcfc2dfd1c4e0 +cfc3e0ccbfddcabddcccbfddcfc2dfd0c5e1cfc5e1cac2e0c9c2dfcac2e0cbc3e0cbc2e0 +ccc2dfccc2dfcec3dfccc0decdc0decec3dfcfc3e0cfc2dfcfc2dfcfc1dfd2c3dfd4c5e0 +d7c2dedac3dedbc3dedac2ddd9c1dcdcc1dae1c4dbeccbdef4d1e1f2ccdddcb4c9bf98ac +b18da1ac92a5a190a2958b9c9d9eaea9adb7b5b8bbbbbcbdc3c3c3cbcac9cfcfced5d4d3 +d8d8d6dddedcdfe0dfe0e1dfe1e2dfe3e3e2e8e8e5e8e9e7eaeae9ebebe9ebebe9ebebec +ece9edeee8edece5ebe7e1eae4dee9e0d8e6dcd3e1d9d2e1d7cfe0cec7dac8c1d5c9c1d7 +cac2dbcbc3ddcdc4decec5e0cfc6e1cfc6e1cfc6e1cec6e1cec6e1cfc7decfc6dfcfc3e0 +cfc0ded0c0ddd0bfddcfbfddcebeddcfbfddd0c0decdbfdecec3dfd4cce3cecabfb0b780 +a1b445b6d33fccdc44dce24fbfd73ab8d442a9c34098b047889d4a7284475c6a42667159 +626a5d5c6350606a46737a5190967ab3b4b0cfcdddccc6e1cdc3e0cec3dfcec3dfd0c4e0 +d0c5e0d0c2dfcfc0decfbfddd1c2dfcebfddcbbfddd0c5e1cfc5e1cec8e1c8c9bea4b068 +93ad3ba9cf38b0d23bb0d237aed039aac649afbc81cacdc3d0cbe4ccc0decfc3e0d1c3df +d1c2dfd1c3dfd1c4e0d1c5e1d0c6e2cec4e0cec3e0cfc4e1d0c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d4c4e0d8c3ded8bedbd9bad9d2b6d7 +cfb6d7d4c0ddd9c6e0d4c3dfcbc3e0cac9ded9ccd5f6cac9d47371b52623cf2826cc2726 +bf2424c12424be2424aa2021b04d59d7a8c1d7c7e1cdcae5cfc9e4d5c7e2d2bedcdac2dd +d9c1ddd3c2dfcfc3e0ccc3e0cac6e2c8c8e4c9c9e5cac8e3d0c6e2d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cec3e0 +cdc4e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0d0c6e2ccc3e0c8bfdec9c0de +ccc3e0d0c7e3cfc6e1c3bbd8b9b2ccb7b1c3bfbdcacdcbd5d8d5dbdbd8dcd7d5d6d2d0d0 +cac8c5c5c2c0aca9aca9a6aeb6b3bfc4bdd2ccc5dfd0c6e1cdc3e0ccc1deccc0decfc2df +cfc3e0d0c3e0d0c4e0cfc4e0cec4e0d0cbe5a8a5bdacabbac0c0c6cfd0cdd3d6cfd6d8d1 +d2d4d0c1bfcaaea9bdccc4e0d0c6e2cdc2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcfc3e0cfc3e0d1c2dfd2c1ded2c1ded2c1ded2c1ded1c1de +d1c1ded1c1ded0c2dfd0c2dfd0c2dfd0c2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc1decec0decec2dfcec3dfcdc3e0cec3e0d1c3e0d3c4dfd6c3ded9c4deddc6dee1c9e1 +e0cbe2d9c7dfcdbfd7bab2caa7a4bb9a9aaf9695a79896a79e9daca6a4b4b0afbbb8b7c2 +c0bfc8c5c4cac8c8cccfced3d6d5d6dbdcdcdfe0e0e2e3dfe3e3dfe3e4dee6e6e2e9e9e3 +eae7e6eae7e9ece8eaeeeaebece8eceae6ebe7e3e9e8e3eae9e4ece3dee9ddd6e5dbd6e6 +d8d2e3d0cadec4bed1beb8ccc0bacfc5bed5c9c3d8cbc6dccdc8ddd0cbddd2cbe0d3c8e2 +d0c3e0d0c2dfd0c2dfd1c3e0d0c2dfc8bbdbdbcde5cbbddccdc2dfd3cedfc0bfa9b0b873 +b5c75ac2d956d3e062d1df57bbd647aec84eafc16eb8c791cbd3b6d8ded5d6d8e3cdcde4 +c7c3e0c5c2dcc8c7d8ccccd7ceccddcecae3cbc6e1cbc4e1cdc3e0cec3dfcec3e0d0c4e0 +d0c5e0cfc4e0cfc0decfbfddccbedcd2c5e1cbbfddc9beddd0c7e3d3cee3c2c5b4a8b465 +9bb63baacf38b5d33bb1d238a6cb38a4c048b2c08cc5c8c5cbc6e1cbbfddcfc2dfd0c2df +cfc0decfc0decfc2dfcfc3e0cdc4e0ccc2dfccc1dfcec3dfcfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfcfbddcd3bedbe1c6dfe1c2dcd8bbd9 +d3c0ddcbbddcc7b9dacfc1ded4c4dfd7c3d8f0cdd7e4a4ab9a2123bf2625cc2626c42425 +bc2324c12424c82725ba24239d222ec37b99dabcd9d3cae4cbc9e4cccae5d0c5e0d8c0dc +dbbddad7bcdad1bfddccc1dfc7c5e2c4c6e3c5c8e4c7c7e2cbc4e1cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cec3e0cec3e0 +cdc4e0cdc4e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cbc2dfcbc2e0ccc3e0ccc4e1 +cdc4e0cac2dec6bed9c0b9d2bcb6cac6c2d0cfcdd5d6d4dad8d5dbd5d3d7d6d4d5d6d4d3 +c5c3c4b0afb2aca9b1b1afbbbdb9cac9c1d9cfc6e1d0c6e2cdc3e0ccc1deccc0decfc2df +cfc3e0d0c3e0d0c4e0cfc4e0cec4e0d0cbe5a8a5bdadabbac0c0c6cfd0cdd3d6cfd5d7d0 +d2d4d0c1bfcaaeaabdccc4e0d0c6e2cdc2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcfc3e0cfc3e0d2c2dfd3c1ded4c1ded2c1ded2c1ded2c1de +d2c2dfd1c2dfd0c2dfd0c2dfcfc3e0cfc3e0cfc3e0cec3dfcec3dfcec3dfcec3dfccc3e0 +cac1dfc9c2dfc9c2e0c7c3e1c7c4e2c7c5e2c8c5e2cac5e1cdc4e0d0c2dfd3c3dfd5c5e0 +d6c5e0d5c6e0d2c6e1cbc3dfc5bfddc0bed9c3bfdabdb8d3b3afc9a7a2bd9f9bb39d98af +9f9bafa8a4b6afadb9b7b6bfbcbcc2c1c0c5c8c6c8cdcccbd1d1cfd7d8d3dfe0dbe2e2de +e3e2dee6e2e1ece8e8efebebf0ecedeeeaecede9ecece8ecede8edebe6eceae5ece9e4ed +e7e1ece2ddeadcd6e3d6d0dfd4ceddd3cfddd0cbdbcbc7d6cbc7d4ccc7d4cac5d4cac2da +cbc0dccfc1ded1c3e0d4c6e0d3c7e1cdc0decfc1dfc3b6d9cdc3e0cecbcfb9bd95b0bb66 +b9ce57c3da5bd9e36ecdde59bcd750aec362bbca91c9d1b4cbd1c8cfd0dcd0cee7cdc6e2 +cac3e0c9c2e0cac5e1ccc7e2ccc7e2ccc6e2cbc4e1cbc3e0ccc2dfcec3dfcec3e0d0c5e0 +d0c5dfd0c4e0cfc1dfcfc1decbbddcd2c5e1cbc0dec9c0decfc8e3cfcdddbec2aaa6b45b +9eb93aabd038b5d43bb2d238a6cb38a7c04fb4c194c7c9cbccc6e1cbbfddcfc2dfd0c2df +cfc0decfbfddcfc2dfcfc3e0cdc3e0ccc2dfccc2dfcec3dfcfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d1c3dfd5c5e0dcc6e0d9bad8ceb1d4 +cfbfddd3cae4d2cbe5d2c7e1e0c9dfeec5d7d593a6a23e51a82735ad2122bb2224c32525 +c72825c72725c52725c12724ae2430a84064d6a1c7d8c5e0c8c5e2bfc5e1c9c8e2d4c3df +d9bedbd7bcdad3bedccdc2dfc8c4e1c6c6e3c8c6e3cac5e1cdc4e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cec3e0cec3e0 +cdc4e0cdc4e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0c9c0decbc2e0d0c7e2d0c7e2 +cbc3ddc2bbd2beb6ccbeb9cdc3bfcdcfccd6d5d3d9d7d5dad5d3d8d1d0d4cccbcec5c4c7 +b3b1b8a5a0acb4afbdbebbccc6c0d7cdc6dfd0c7e1d0c5e1cdc2dfccc0decdc2dfcfc3e0 +cfc3e0d0c3e0d0c4e0cfc4e0cec4e0d0cbe5a8a5bdadabbac0c0c6cfd0cdd3d6cfd5d7d0 +d2d4d0c1bfcaaeaabdccc4e0d0c6e2cdc2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcfc3e0cfc4e0d2c3dfd3c3dfd3c3dfd3c3dfd2c3dfd2c3df +d1c3e0d0c4e0cfc4e0cec4e0cdc4e0ccc4e1ccc4e1cbc4e1cbc4e1cbc5e2cbc4e1cac3e1 +c9c2e0c8c2e0c6c3e1c5c4e1c4c4e2c3c5e3c4c6e3c5c5e2c9c5e2cbc3e0cec3dfcfc2df +cfc1ded0c2dfd0c4e0d0c7e2d0cae4d0cbe5cec7e2ccc5e2cac3e0c9c1dfc4bcdbbdb6d5 +b5b0ccaea8c0a8a5baa19cafa19baca5a2aeada9b3b4b3b7bebbbdc4c3c5ccc9c8cfcccb +d7d3d3dbd8d8dcd9dbdfdbdce1dddfe1dee2e6e2e5eae7eaeee8ebeee8ecece7ecebe6ec +ebe6edece7eeeae6ede8e4ebe5e0e8e3dde6dcd8e1d9d5ded7d3dbd5d0dacfcad6ccc5da +cbc3dacdc3dbcfc5dcd0c5dacec4dacec4dfcabfdec9c0dfd2cee4c9cabfb1bb7eabbd50 +b8d14ac9dc5ae2e775cadc50b6d146a2b459b7c294c8cebccbcccbcbcad9cac4e0cbc4e1 +cdc4e1ccc4e1cbc4e1c9c3e0cac3e0cac3e1cac3e1cbc3e0ccc3e0cdc3e0cdc3e0cfc6e1 +d0c7dfd0c5e0cfc2dfcfc1decbbddcd1c5e1ccc3e0c9c2dfcec9e3cbcad5b9be9da3b54f +a1be3aaed137b5d43bb1d238a7cb38a9c05ab8c39dc8cad2cdc5e1ccc0decfc3e0d0c2df +cfc0decfbfddcfc2dfcfc3e0cdc3e0cdc3e0cdc3e0cec3dfcfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc4e0d0c7e2d0cae4d0c5e1d1bddbd1bcdb +c9c0dfcac7e2cccce4d5cadde6c1d1e69eb2b34764a5213da41f2ca9222bb82b2eba2624 +bd2424c42425c22425c72725b42123a62342bd6d92d8b3d3d0c8e2bcc6ddc4cde4cec7e2 +d4c1ded5bedcd2bfdccec2dfcac3e1cac3e1cec3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cec3e0cdc3e0 +cdc4e0cdc4e0cdc4e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0c9c0dfcdc4e0cfc6e1cbc4de +c5bed5bdb7cabdb6c5c3bfcdccc7d1d2d0d7d2d2d6d3d3d8d3d3d8cecdd2bebec5adabb3 +a6a2b2aba6b7bfb8cdcac3dbcdc6e0d0c7e1d0c7e2cfc4e1cdc2dfcdc2dfcfc3e0cfc3e0 +d0c2dfd0c3e0d0c4e0cfc4e0cec4e0d0cbe5a8a5bdadabbac0c0c6cfd0cdd3d6cfd5d7d0 +d2d4d0c1bfcaaeaabdccc4e0d0c6e2cdc2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcfc4e0d0c5e1d1c4e0d0c5e0d0c5e0d0c5e0d0c5e1 +cfc6e1cfc6e1cdc6e1ccc7e2cbc6e2cbc6e2cbc6e1cac5e1cac5e1cac6e2cac5e1cac5e1 +c9c3e0c8c2e0c6c3e1c5c4e1c3c5e2c2c6e3c2c6e3c5c5e2c7c4e2cbc5e2ccc3e0cfc3e0 +cfc2dfcfc2dfcfc3e0cdc4e0cdc6e2cdc6e2c9c2dfcbc2e0d0c6e2d3c9e3d3cae4d2c9e3 +cbc4e0c3bcd9beb8d3bcb5cdb7b0c5ada7baa4a0b0a29daaa49ea9aca7afb3afb4b7b3b9 +beb9bdc3bfc3cac4cad0cbcfd7d3d8ddd7dddfdbe1e3dee4e4e0e4e8e3e8eae6ebe9e4e9 +e8e4e8ebe6ebede9eceee9edede8ecebe6ebe8e5e9e6e4e8e7e4e7e6e2e6e0dbe3d9d2e4 +d5cee0d1cadbd1c9d8cfc8d2cdc5d0cdc7dacdc6e2d1cce5cacad2b5bc9fa9b864abc23e +b8d344cfde60e2e772c4da48adc83ea0b063bbc0a3cbcdc7cdcbd1ccc7dbcac3e0ccc3e0 +cfc5e1cfc5e1cdc4e0cac2e0c9c2e0cac3e0cac3e1cbc3e0cbc3e0cdc3e0cdc4e0cfc6df +cfc7ded0c6e1cfc3e0cfc1decabddcd0c5e1cdc3e0cac3e1cdc8e2c7c8cbb1ba8fa0b445 +a6c439b1d239b5d43bb1d239a8cb3aabc162bac4a5cbcbd8cec6e2cdc2dfcfc3e0d0c2df +d0c0decfc0decfc2dfcfc3e0cdc3e0cdc3e0cdc3e0cec3dfcfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cdc3e0cbc7e2c8c8e2c6c6e1d1c6e1d3c7e2 +c9c3e0ccc8e0d0cbdbd5c1ccd19ba8c15c74ac2444ad223ea9213cb64158d57383cb5058 +bf2624c62625c52625c72725be2324b72439a53756cb8da9d8c1d7cacde0c5cee4cac8e3 +cdc4e0d1c1ded0c0ddcec2dfccc2dfcfc2dfd2c0ddd2c0ddd0c0decfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cec3e0cdc4e0 +ccc4e1ccc4e1ccc4e1ccc4e1ccc3e0ccc3e0ccc3e0ccc3e0d0c7e2cdc6e1c8c1dcc2bdd3 +beb9ccbeb9c6c2bec8cdc8cfd2d0d6d4d3d4d2d2d2d1d1d3ceced2c3c4cab0afb99f9cad +a9a4babcb8d0cbc3ddcfc6e1d0c6e1d0c6e2d0c5e1cec3dfcdc2dfcfc4e0d0c4e0d0c3e0 +d0c2dfd0c3e0d0c4e0cfc4e0cec4e0d0cbe5a8a5bdadabbac0c0c6cfd0cdd3d6cfd5d7d0 +d2d4d0c1bfcaaeaabdccc4e0d0c6e2cdc2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3e0cec4e0d0c5e1cfc4e1cec6e1cec6e1cdc6e1cdc6e1 +cdc6e1cdc6e1cbc6e2cbc6e2cbc6e2cbc6e2cac7e2cac5e1cac5e1cac6e2cac5e1cac5e1 +cbc3e0cac3e0c8c3e1c7c4e2c5c5e2c4c6e3c4c6e3c5c5e2c7c4e2ccc5e1cdc4e0cfc3e0 +d1c3e0d0c3e0cfc4e0ccc3e0c9c2e0c8c1dfcac1dfcbc0deccc1deccc2dfcdc2dfcec3e0 +d0c5e1d1c6e2d1c7e1d2c9e3cec6e0c5bdd7bdb5ccb7afc4b2abbdafa8b9aba4b4a8a1b2 +a8a2b1aca7b4b1adbab9b5c1c2bdc7c9c4cecec9d3d0ccd6d1ced7dad5dde1dde2e1dee3 +e4e0e3e6e2e4e8e5e8eae8eaebe8e9ebe9eaeae8e9e9e9e9ece9ebeeeaedede7ede7e1ee +e3dceadfd8e1ddd7dcd9d5d6d7d3d2d1ced6d4d0e6cfcee1a7ada8919e6d9db348aecc3a +bdd743d7e269d7e269bcd746aac043b2bd87c8cac2d1d0dcd0cbdfccc5dfcdc4e0cec3e0 +cfc4e0cfc4e1cec3e0ccc2dfcbc3e0cac3e0cac3e0cbc3e0cbc3e0cdc3e0cdc4e0cfc6df +cfc7ddd0c6e0cfc3e0cfc1dec9beddd0c5e1cdc4e0ccc6e1cdc9dfc3c5c3adb5839eb33e +a9c938b4d338b6d43bb0d23aa8ca3aabc16abdc6afcbccdecec6e2cdc2dfcfc3e0d0c2df +d0c2dfcfc0decfc2dfcfc3e0cdc4e0cdc3e0cdc3e0cec3dfcfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cdc3e0c9c6e2c4c6e1c5c8e3cccbe5cac8e4 +cbc4e0dbcee4dbc6d2cca3a8b46370a7283fb42441ac1f41ab2752d37b99f1afc5e7899b +cc4554bc2324c52625c12424ce2726c2262ba4202eb75b70d5a5b7ddccdececbe0cac7e3 +cac6e2ccc4e1cec3dfcdc2dfcfc3e0d1c1ded3bfdcd3bfdcd1c1decfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cec3e0cdc4e0 +ccc5e1cbc4e1cbc4e1cbc4e1cbc4e1cbc4e1cbc4e1cbc4e1d2cbe5cac4e0c0bbd4b9b6c9 +bbb7c5c3c0c9cdcacfd5d3d3d7d6d5d5d6d3d4d5d3cececfc0c0c6afafb9a3a0b2a6a3ba +bcb6d2cbc4e0cfc6e1cfc5e1cfc4e1cfc4e1cec3e0cdc2dfcdc2dfd0c4e0d2c5e0d0c3e0 +d0c2dfd0c3e0d0c4e0cfc4e0cec4e0d0cbe5a8a5bdadabbac0c0c6cfd0cdd3d6cfd5d7d0 +d2d4d0c1bfcaaeaabdccc4e0d0c6e2cdc2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cec3dfcdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0 +cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc4e0ccc4e1ccc5e1ccc5e1ccc5e1ccc5e1ccc5e1 +ccc5e1ccc5e1ccc5e1ccc5e1ccc5e1ccc5e1ccc5e1ccc5e1ccc5e1ccc5e1ccc5e1ccc4e1 +cec3dfcec3dfccc3e0cac5e1c8c5e2c7c5e2c6c5e2c7c5e2c9c4e1ccc3e0cec3dfd0c2df +d1c3dfd1c3e0d0c4e0cec4e0ccc5e2cac3e1cfc5e1cec3e0cdc0decbbfddc9beddc9bedd +cbc0decfc4e0d1c6e1cec3e0cfc4e0d1c7e1d5cae3d7cde6d4cbe4cbc3dcbeb4d0b3aac4 +afa7bfaca5bca7a2b8a59fb5a5a0b4a8a5b7b0acbbb6b3c1bbb8c4c2c0cacbc8cfcfccd2 +d5d3d7dad8dbdcdcdfe0dfdfe2e2e1e5e4e3e5e4e3e5e4e4e9e8eaede9edefeaf0eee8f1 +ede7efece7ebece9e7eaeae1e6e6dcd9dad8e0e0edc1c6ce7b86736c803995b13bb3d239 +c4d943dbe46dcadc5db8d244a9bb4ec2c8a7c9c8d5ccc6e1d0c7e1cec3e0d2c5e1cfc3e0 +cfc2dfcfc3e0cec3dfcfc3e0cec5e1ccc3e0cac2e0cac3e0cbc2e0ccc3e0cdc4e0cfc6df +cfc7dcd0c6dfcfc3e0cfc2dfcbbfddcec4e0ccc3e0ccc7e2cccbddc2c2bca9b47a9eb53a +aece37b6d439b6d43baed13aa7ca3dadc271c0c7b5cdcce1cec5e1cdc2dfcfc4e0d0c2df +d0c2dfcfc0decfc2dfcfc3e0cdc4e0cdc4e0cdc4e0cec3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc4e0ccc4e1cac6e2c6c8e4c3cae6c3c6e3 +d0c7e1e1c8dcd6a9b6b76d749f2e38a61e2bb1233fa8224eb84d7eeaaecef2c0d7f3b0c8 +d16e85ad2531bc2224c02424d42b26bd2224b32423aa2e37c97a88eabdcfdbc4dbcfc4e0 +c8c6e3c8c6e3c9c5e2cbc4e1cfc3e0d1c0ded2bfdcd3c0ddd1c1decfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cec3e0cdc4e0 +ccc5e1cbc4e1cbc4e1cbc4e1cbc4e1cbc4e1cbc4e1ccc5e1cec7e2c5c0dabeb8cdbab6c6 +c0bdc7ccc9ced7d5d3d9d8d3d6d7d1d4d5d0d1d2cfc4c5c7aeadb49d9ba8a19eb3bbb7d2 +cdc6e1cbc4e1ccc3e0cdc2dfcdc2dfcdc2dfcdc2dfcec3dfcec3e0d1c6e1d1c4e0d0c3e0 +d0c2dfd0c3e0d0c4e0cfc4e0cec4e0d0cbe5a8a5bdadabbac0c0c6cfd0cdd3d6cfd5d7d0 +d2d4d0c1bfcaaeaabdccc4e0d0c6e2cdc2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cec3df +cec3dfcdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0 +cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cbc4e1cbc4e1cbc4e1cbc4e1ccc4e1ccc4e1 +ccc3e0cec3e0cec4e0cec3e0cec3e0cec3e0cec3e0cec3e0cec3e0cfc3e0cfc3e0d0c2df +d2c2dfd2c2dfcfc3e0cdc3e0cbc4e1cac5e1cac5e2cbc5e2ccc3e0cfc4e0d0c2dfd0c0dd +d0bfddcfbfddcec0decdc3e0cdc6e2cec7e2cbc2e0cec3dfd2c5e1d4c7e2d5cae3d5c9e3 +d2c6e1cfc2dfcbc0decdc0decdc2dfcdc1decec1dfcec3dfd3c5e1d4c9e3d7cbe4d7cce5 +cec5e1c2bbd9bab3d0b0aac8a8a4bfa4a0b9a5a0b6a5a1b6a6a3b6a7a4b5aca8b5b2b0b9 +bcb9c0c4c2c7cbcaccd0cecfd5d3d2d8d7d6dddbdbe1e0dfe3e0e2e6e2e8e8e2ebe9e2ed +ebe6eeefececf0efe7eef1e3ecf0e0e5e8e0edf2f7b4bcbd64745464803794b63db6d439 +c7da3dd9e36ac4da56b8d246a3b54db9bea4b2adc4b5acd1cabfded4c7e2cfc3e0cfc1de +cfc2dfcfc3e0cec3dfcfc3e0cec4e0ccc3e0cac3e0cac3e0cac3e0cbc3e0ccc4e1cfc6df +cfc7dcd0c7dfcfc4e0cec2dfccc0decdc4e0cbc2e0ccc7e1cccbddc1c3b9a7b3749fb63a +b2d135b8d439b5d43badd039a7c93eadc375c1c8bbcdcce3cdc4e1ccc0decfc4e0d0c2df +d0c2dfcfc0decfc2dfcfc3e0cdc4e0cdc4e0cdc4e0cec3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d4c6e1d4c6e1c5c0dfbec6e4ced0e9 +d6c6e1cb9fb6b86779a42f3aa21e22ac202ca42037b64c78e7a3c8e6bad6e5c4dde3bad5 +ce90aab34d61aa1f21c32525c02424bc2324c22725b32423c44f5ce595abecbad5d6c0dd +cac6e2c5c7e3c4c6e3cac6e2cec3e0d1c1ded0c0ddd0c0ddcfc2dfcfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cec3e0cdc4e0 +ccc5e1cbc4e1cbc4e1cbc4e1cbc4e1cbc4e1cbc4e1ccc5e1c1bbd8beb9d2bfbacfc4c0cf +ccc9d1d6d4d4d9d8d3d6d6cdcfd0c6cacbc4bec1beb0b2b3a5a5aea5a4b3b5b2c9cac5e1 +d0c9e3c9c0dfcabfdecbc0decbc0decdc0decfc3e0d0c4e0d1c6e1d0c5e0d0c4dfd0c3e0 +d0c2dfd0c3e0d0c4e0cfc4e0cec4e0d0cae4a8a5bdadabbac0c0c6cfd0cdd3d6cfd5d7d0 +d2d4d0c1bfcaaeaabdccc4e0d0c6e2cdc2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cec3df +cec3dfcdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0 +cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc2dfcdc2dfcdc2dfcdc2dfcec2dfcfc2df +cfc2dfcfc0ded0c2dfd1c1ded1c1ded2c1ded2c1ded2c1ded2c1ded2c0ddd2c0ddd4c1dd +d6c1ded6c1ddd3c2ded2c3dfd0c5e1cec5e1cdc4e0cdc4e0cfc3e0d2c3dfd2c1ded2bfdd +cfbedccebedccdbfddcbc0dec9c3e0c9c4e1cbc1dfccc0deccbfddccbfddcdbfdecec0de +cfc3e0d2c4e0d4c5e1cfc1decfc1ded1c3e0d2c4e0d1c4e0d0c2dfccbeddc9bbdbc8bbdb +cdc2dfd1c8e3d4cce5d8d0e7dad2e9d5cee7c5bfdbb5b0caa6a2b9a49fb3a5a0b2a4a0af +a6a2ada9a6afb1afb4b8b7b9bebbbcc0bfc0cac7c9d4d0d3d6d2d7d9d4dddcd5e0ddd7e5 +e2dce6e7e3e0e8e8dbe6e9d6e4ead5e9efe0edf3f59eaba360764a75953c9cc33bb7d438 +c8db3ad6e15cc2d94cb4cf3ea6b94cb5b99fada9bfb1a9ccc8bfdbd6cbe3c4b9d2c8bed4 +cdc3d6cfc5dacfc4e0cdc2dfccc3e0cdc4e0ccc5e2cac3e0cac2e0cbc3e0cdc4e0cfc6df +cfc7dccfc6dfcec3e0cec3dfcdc2dfcdc3e0cac1dfcdc7e0cecddac1c4b6a7b471a1b939 +b7d437b9d538b6d43aacd039a6c83faec178c1c8bfcccbe4ccc4e1ccc0decfc3e0d1c3e0 +d0c2dfcfc0decfc2dfcfc3e0cdc4e0cec6e1cdc4e0cec3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d1c1ded9c4dfd9c1ddcdbbdbc3c5e2d8d7ec +d9c4dfbd7f9cb03b53b5222bba242aaf2331a02c44ecafceebcce1e6cbe1e2cce3d8cce4 +dac8dfd198aba92837bf2625a81f21c22725c42625c62625ca313dd55c7bea9bc1e0bad8 +cdc3e0c3c7e4c1c8e5c6c7e3cbc5e2ccc3e0ccc3e0ccc2dfcec3dfcfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd1c1ded1c0ddd1c1ded0c2dfcfc3e0cfc3e0cec3df +cdc3e0cdc4e0cdc4e0cdc4e0cec3e0cfc3e0d0c2dfd0c2dfd0c2dfd1c1ded0c2dfcdc3e0 +cbc4e1ccc3e0cdc4e0cec4e0d0c3e0d3c3dfd5c3ded6c1dcc0a7c2c5adc2d0bac9dac6d1 +e0d2d5dfd7d4d8d8ceccd2c6c4cbc2bdc1c1aaacb1a2a0acb0adbccac6ddd8d1e8cfc7e2 +c7bfded0c6e2ccc2dfcbc0deccc1decec2dfcfc4e0d2c5e1d0c4e0d0c4dfcec3dfd0c3e0 +cfc4e0d0c3e0d0c4e0cfc4e0cec4e0d1cae4a8a5bdadabbac1c1c6cfd0cdd3d6cfd6d8d1 +d3d3d0c0c0caaeaabdcac4e0d0c7e2ccc2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cec3df +cec3dfcdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0 +cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cec3dfcdc2dfcfc2dfcfc1decfc2dfcfc2dfcfc2df +cfc0ded0c0ddd0c0ddd1c0ddd1c0ddd1c0ddd2c0ddd2c0ddd2c0ddd2c0ddd4c0ddd4c1dd +d6c1ded6c1ddd4c3ded3c3dfd1c3e0d0c4e0cec3e0cfc4e0cfc3e0cebeddcfbedcd2c1de +d3c3dfd4c5e1d3c5e1d2c6e1cec6e2cdc6e2cdc3e0cfc3e0d0c3e0d0c3e0d0c3e0d0c2df +cec2dfcdbfddcabddccabcdcccbedccfc1ded0c2dfcfc1dfcfc0decdbfded0c2dfd2c5e1 +d0c5e1ccc3e0c9c0dfc8beddc9c0dfcdc4e0d0c9e3d1c9e3d0cae4d1cae3cac4dbbbb6c9 +aba5b79e9aab9f98a8a19daca6a1aea8a2afaba5b1b1acb8b9b4bfc3becdcdc7d8d3ccde +d8d2dedbd7d8dcdad3dadbcedce0cfe7eee1dae2e36f7d6d506c3181a33ea2ca39bdd639 +d1de41cedd46b9d43da8bf38bac972dae1cae8e6f2e0daedd6cfe3cdc4d6bbadbec5b7c5 +cec5cacec9d5ccc7ddcac3deccc0dbd2c2d8d7c1dadac0dbd9c0dcd8c0dcd6c1ddd4c3dc +d3c4dbd2c4dfd0c2dfcfc2dfd0c3e0cfc2dfcabfddcdc7ded0ced3c2c6aca9b766a0bd3a +b8d437b9d538b5d339aacf38a5c642acc17fc1c9c3cccae4ccc3e0ccbfddcfc3e0d0c3e0 +d0c2dfd0c2dfcfc4e0cec5e1ccc7e2cbc6e2cbc5e1cbc4e1ccc3e0cdc3e0cdc3e0cdc3e0 +cec3dfcec3dfcec3dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfd0c2df +cfc2dfcfc3e0cdc3e0cdc3e0cdc3e0cdc3e0cec3dfcdc3e0cec3dfcec3dfcec3e0cec3e0 +cec3e0cec3e0cec3e0cec3e0cec3e0cec3e0cfc3e0cebcdbd1bad9d6c6e1cbc6e2c5bfde +d9bfdbdea4c4d46f8ec54562b83451ba546dd795afe3c2dcdac9e3c7b0d4cfbedcc2c3e1 +c6c8dfd4b2c5c35e72a71e21b62523c72c25c52725c62625c6252ac22f53c9628ee5b7d4 +d1c1dec2c8e5bdcae6c2c8e5c8c5e2cac3e1ccc3e0ccc2dfcec3dfcfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcfc2dfd1c1ded3bedcd4bedcd3c0ddd1c1decfc2dfccc3e0cbc5e2 +c9c6e3c9c7e3c9c7e3cac7e2cbc5e1cdc3e0cfc3e0d1c1ded2c0ddd3bfdcd2bfddcfc4e0 +cabfddcdc2dfd3c6e1d6c6e1d9c4dfe1c4dcdfb5cec08aa0cf93a5e1a5b4f1c1c9f6ced1 +edcbc9d7c8c1cacbbecfe1d0acbdb49ea4ada3a0b8b2acc8c0b9d7cdc4e0d1c7e2d0c6e2 +ccc3e0cdc2dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3e0cec3e0cec3e0cec3e0d0c5e1 +d0c5e1cfc4e1cfc4e0cdc2dfccc3e0d3cae4aca7bfb1adbdc3c1c6d0cfccd5d6cfd8d8d1 +d3d3d0bfbfc9aca8bbc9c4e1cfc7e2cbc2e0cec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd0c2dfd0c2dfd0c2dfd1c2dfd1c3df +d1c3dfd2c3dfd1c3dfd0c2dfcfc4e0cec3e0cec3e0cec3e0cec3dfcfc2dfcfc2dfcfc3e0 +d0c2dfd0c2dfcfc3e0cec3dfcdc3e0cdc4e0cec3e0cec3e0cfc3e0cfc3e0cfc4e0cfc3e0 +cec3e0cfc3e0cec2dfcfc2dfcec2dfcfc3e0cfc3e0cfc3e0cfc3e0cec3dfcfc3e0cfc3e0 +cec3dfcdc2dfcdc2dfcdc2dfccc3e0cec3e0cdc4e0cec4e0cec4e0cdc4e0cec4e0d0c7e1 +d3cae3d1c9e3ccc3dfc1b9d6b6afcbada5c0a29ab49b94aba098afa59db7ada2beb4aabf +bbb3c3c3bbc7c9c2c8cdc9c7d7d5cee3e6e1babfc74f5e4466843890b43dabd03bbfd743 +cbdc3dc2d836b3d236a4b84bd9e4b1e8eee1e9ecf2e7e8f1e7e4ebe8dee6e8d6e2e3d2de +d7d1d4dddfe4ced1dfc4becfd0bbcae4c1c8d9a7aecf9098d798a5e2adc2edbfd7ebcadf +e2c8e0d8c4dfd4c4e0d7c8e2d1c1ded0c0ddd1c3dfd1c8decac6bfb5bd8da7b954a9c938 +b8d438b6d438b5d338a7ce39a3c64bafc588c1c8c4c9c4e1cfc5e1cfc1dfd5c7e2d5c8e2 +d4c7e1d0c7deccc5dcc9c5dcc7c6dfc6c6e2c5c5e2c5c3e1c7c3e1c9c4e1c9c3e0c9c3e0 +cac2e0cbc3e0ccc2dfcdc2dfcec0decfc1decfc1decfbfddcfbfddcfbfddcfbfddd0bfdd +cfc1deccc3e0cac3e0c9c4e1cac5e1cac5e1cac3e1cac5e1cbc5e2cbc5e2cbc5e2cbc5e1 +cbc6e2cbc6e2cbc7e2cbc7e2cbc7e2ccc7e1cbc7e2c8c4e1c6c3e1cdc8e4d0c9e3d2c4e0 +d8bedbdfbbd7e8b9d5ebbbd6e9bdd8e3bed9dbbfdbd4bfdcd3c1ded3bfdcd0c0ddc9c4e1 +cbc8dfd8baced78ba1b74157a21d20ba2227ce272dcc262ac0222eb72848c05882eab7d4 +d2c1debfc9e6bacbe8bec9e6c4c6e3cbc3e0d0c0ddd1bfddd0c2dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcfc2dfd1c0ded4bfdcd5bedcd4bfdcd1c1decec3dfcac3e1c9c6e2 +c7c7e4c7c7e3c9c6e2cac5e1ccc4e1cec3e0d0c2dfd2c2dfd2c1ded2c0ddd1c1dec8bddc +d5c9e3d4c6e1d2bfddd9bfdbdfbcd6d09fb5b36e80a24a5ab25460c76e75e19499f5bbbc +f7cfcde7cec8c5c2b8b3c9bb97aeab9ea4b8ada7c9bbb1d6c7bcdccfc4e1d1c5e1cfc4e1 +cdc2dfccc1decdc2dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3e0cfc4e1 +cfc4e1cec3e0cfc4e0cdc2dfcdc3e0d4cbe4aea8c0b3adbdc5c1c6d0cfcdd7d5cfd8d8d1 +d3d3d0bfbfc9aca8bbc9c4e0cfc7e2cbc2e0cdc2dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcdc2dfcdc2dfd0c5e1 +d3c8e2d4c9e3d2c6e1cec3e0cabfdec5bcdbc3bcd9bfb8d2b4aec9a79ebf9c94b39e92ad +a497afaca0b5b1a8b7b3acb4b3afafb5b4b59395a03e4e2968873992b93daed13dc1d949 +cbdc43bfd736b1d236a7b45edadfc2e5eae2e4e9ece8e9edebeaebeee7eaf2e2e9f6e8ef +e0e1e0e0e5e4dbdfe4ded6e0e9c9d0e2a7aac46d69ad3f30b7473fc05e67ca788dcf8ba6 +d098b8d2a2c3d8b2d1e2c1dcdcbcd9dbbfdbdfc6dfe0cbdad2c7b5b7bc7fa7b946a6c838 +b5d337b8d437b4d338a6cd39a8c658b9ca95cacececcc5e1cfc1decabbdbcbbadacdbddc +d0c4ded1c9ded0ccdfcfcee3cacee5c8cae6c6cae5c8c6e3cac6e2cac5e1cbc5e2cac3e0 +ccc3e0ccc1dfcec0decfc0decfbfddd0c0ddd0c0ddcfbfddcfc0decfbfddcfc1decfc1de +cec0deccc3e0cbc3e0cbc3e0cbc3e0cbc3e0cbc3e0cbc3e0cbc4e1cbc4e1cbc4e1ccc5e2 +ccc5e1ccc6e1ccc6e1ccc7e2ccc7e1ccc7e1cac7e2c5c7e3c1c7e3c3c5e2cbc2e0d0c0dd +d7c0dddac3ded9c6e0d6c7e1d4c9e3d1c8e3cbc2e0cbbddccfbfddcfbedccdbfddcbc4e0 +d0c7e1ddc3dae4abc3c46a85a52c46a92133af212aae1f27b6273dc74d6eda83a4e9b9d5 +d5c2dec2c8e4bcc9e6bec9e6c3c5e3cbc2e0d1c0ddd3c0ddd0c2dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcfc3e0d1c1ded3bfdcd3bfdcd1c0ddcfc2dfccc4e1cac5e2c8c6e3 +c8c6e3cac6e2cdc4e0cfc4e0d0c2dfd1c2dfd1c2dfd0c2dfcfc3e0cdc3e0cbc3e0cbc0de +cfc1ded4c3dfddc3dddfb8d4cf97aeaf6475962f39992326a52c2cab3936bd5857d98d8e +f2bfbeedceccc0b8b79fb1af93a7afabafc8bab3d6c5badbccc1ded1c5e1cfc4e1cec3df +ccc1deccc1decdc2dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3e0cec3e0 +cec3e0cec3e0cfc4e0cdc2dfcdc3e0d4cbe4afa7c0b4adbdc5c1c8d0cfcdd7d5cfd8d8d1 +d3d3d0bfbfc9aca8bbc9c4e0cfc7e2cbc2e0cdc3e0cec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcfc4e0cfc4e0cec3df +cec3dfcec3dfcec3dfcfc4e1d1c5e1d1c6e2d2c9e4d0c9e2cac2ddc3b9d9beb5d5c0b3d0 +bcb0cab6aac4b0a5bbaca3b2a7a1a99b999e83858f4b5a3174943c98c03cb0d23ec0d849 +c6da40b7d437aacd38a8b269d8d8c6e3e3e2e1e2e8e2e3e8e7e5e6e9e5e5eee3e7f7f0f2 +e0e7e1dfe7e0e6e7e7f3e6ebf0c8cbd58081b6382fb82623bd2624bd2b2abd3844bb4458 +ba5066bb5d73c37183cd8596df9eb3dea5bae2b1c3e1bbbcd1bc9fbab771abb844aecb37 +bdd63ebfd73ab6d43da5c63aaabe60bec79dd2ced1d1c3dfd1c0ddcfbddbd1bfddd2bfdd +d1c3dfcec4ddc8c7dec4c7e0bfc7e3bfc7e4c0c7e4c9c6e2cdc6e2d0c5e1cfc4e1cfc3e0 +d1c2dfd2c0ddd3bfdcd3bfdcd3bfdcd3c0ddd2c0ddd1c1ded0c2dfcfc2dfcdc3e0ccc4e1 +ccc3e0cdc2dfcfc1decfbfddcfbfddcfc0decfc0decfc0decec2dfcfc2dfcfc2dfcfc2df +cfc3e0cfc4e0cec3e0cec3e0cec3e0cec4e0ccc4e1cac7e3c7c7e4c4c4e1c9c0dfcec0de +d2c2dfd3c4e0d1c3e0cbc2e0c8c3e0cac5e1c6c3e1c8c2e0cbc3e0cbc2dfc9bfdecbc1df +d1c3dfdbc5dfe4bcd4cc92aab4647daa4860a4364ba23147b44b65d27a95e8a8c7e3bad7 +d6c1ddcac5e2c4c6e3c4c6e3c6c4e2cac3e0cfc0ded1c2dfcfc3e0cec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcfc3e0d0c2dfd2c0ddd1c0ddcfc2dfccc3e0cac5e1c9c6e2c9c6e2 +cac5e2cdc3e0d1c2dfd2c0ddd3c0ddd2c0ddd1c2dfcec3dfcac5e1c7c7e3c7c6e3cfc6e1 +ccbadad8bfdce4bcd8d69bb6b36073982a339b2020aa2622af2923a72622a52e29ba5c5b +d7979ce0bbc2b5a7b29fa7b5a3afc3babbd9c7bfdeccc1decfc4e1d1c5e1cfc4e0cdc2df +ccc1deccc1decdc2dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3e0cec3e0 +cdc2dfcdc2dfcec3dfcdc2dfcdc3e0d4cbe5afa9c1b4adbdc5c1c6d0cfcdd7d5cfd8d8d1 +d3d3d0bfbfc9aca8bbc9c4e0cfc7e2cbc2e0cdc3e0cec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcfc4e0cfc4e0cec3df +cdc2dfccc1deccc1deccc1decec3dfcec4e0cfc6e1cec7e2cec7e2d1c6e1d5cae4d8cde5 +d6c9e2cec0dcc4b9d3beb6cab8b3bfa5a3ab999ba27180558aa83da2c939b3d33fbed745 +bdd740b3d338a5c839acb374d2cec3dcd5dbdbd6e1dcd8e1dedee0e1e0dfe3e0e1ebecea +dbe8dce2ede0eee9e4f8e2e3ebb1b4c85656bd2824d22b26d42a26cc2626c72625bf2627 +b62526b22829b63231bb4542c25358c15d66c56f77c7827ec18e70b79957b2ab40bcc33c +cddd4dcfde4fc2d849b2c046b7bb6ecbc6a8d8cbd4d3c0ddd2bedcd2bfdcd2bedcd2bfdd +d1c2dfcfc4e1cac5e1c7c6e2c3c5e3c1c4e2c2c3e1ccc4e1d1c3e0d2c3dfd2c3dfd2c2df +d3c1ded5c0ddd6bfdcd5c0ddd5c1ddd4c1ded3c2dfd2c3dfd1c3e0d0c5e1cdc6e1cbc6e2 +cdc4e0cfc2dfd1c0ddd1bfddd1bfddd2bfddd1bfddd0bfddd0bfddd0c0ddd0c0ddd0c0dd +cfc0decfc2dfcfc2dfcfc2dfcec2dfcec3dfcdc2dfccc3e0ccc4e1cac3e1cac3e0ccc4e1 +cfc4e0cfc2dfcfc0decfc0deccc2dfcac2e0c8c3e1c9c6e2c9c8e4c9c5e2c8c1dfcabfde +cfc0ded7c4dfe0c7e0d5b5cecca2b8c894a7c08597be7f92c98ca1dca8c0eabfd8ddbdd9 +d5c0dccfc2dfcac3e0c9c4e1c9c4e1cac3e0ccc3e0cec3e0cec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcfc3e0cfc2dfcfc3e0ccc3e0cac5e1c9c6e2c9c6e2cac5e1 +ccc3e0d1c2dfd3c0ddd4bedcd5bfdcd4c0ddd0c2dfcbc4e1c6c6e3c0c9e5c3c7e4d2c6e1 +d9c1dddeb6d5d497b6ba637ca02b379d1e1fb02222c22c25bf2b24b22623a52721a23837 +b56d76cba0b1a894abadadcab9beddc8c5e2cfc5e1d1c5e1d1c5e1cfc4e1cec3dfccc1de +ccc1decdc2dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3e0cdc2df +ccc2dfccc2dfcec3dfcdc2dfcdc3e0d4cbe4aea8c0b3adbcc4c1c6d0cfcdd7d5cfd8d8d1 +d3d3d0bfbfc9aca8bbc9c4e0cfc7e2cbc2e0cdc3e0cec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcdc2dfcdc2dfcec3df +cec3dfcec3dfcec3dfcdc2dfcbc0decac0decbc3dfcbc4dfcac3dfcdc2dfcfc4e1d5c7e2 +d6cae3d6cae3d5c9e3d4cae3cec8dbbfbdc6bcbfc194a5769bb73daacf38b7d43fbcd641 +b9d53fb4d33ca4c439adb17ec4bbb7c9bdc9c8c0cfcdc7d3d1d1d5d5d7d6d6d9d8d6dfd8 +d1e2d2e2edddefe7def8d4d2e09396bf3737ce2b27d92d26dd2d26d82b26d52926cf2826 +c72625c22425c32625c62925b52123b12223b22930b3393cb14a3aad5c2eb0752cbc962f +cab236d6c546cabd45bdad51c6b37ad9c5afe0cad3d5c1dcd3c0ddd4c5e0cfbddcd0bfdd +d1c2dfd2c4e0d3c4e0d3c3dfd1c2ded0bfddd0bfdcd2bedcd5bfdcd6c0ddd5c0ddd3c1de +d2c3dfd1c3dfd0c3e0cfc4e0cec6e1cec7e2cdc6e1cec7e1cfc6e0d0c6e0d0c6e0d0c6e0 +d1c3dfd2c2dfd2c0ddd2bfddd2bfddd2c0ddd2bfddd0c0ddd0c0ddd0c0ddcfc0decfc1de +cec2dfcdc2dfcdc2dfcdc2dfccc3e0ccc3e0ccc1dfcdc0decdbfdeccc0deccc5e2cec7e3 +cec6e1cfc2ded3c1ddd8c4dfd7c4dfd1c2dfccc3e0c7c7e3c4c8e5c5c6e3c7c3e1ccc1de +d0bfddd2c2dfd7c8e2d5c5dfd8c6dcdbc6d9dac3d4d9bfd0dabed1dbc1d7dcc4ddd7c0dd +d4c0ddd0c0ddcfc1decdc2dfccc3e0cac3e1cac3e1cbc4e1cdc3e0cec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcdc2dfccc3e0cac3e1cac5e1c9c6e2c8c6e3cac6e2cbc4e1 +cfc2dfd1c0ddd4bfdcd5bddbd4bedcd3c0ddd0c2dfcac5e1c4c8e4bec9e6c4c8e4d9c6e0 +e7c4dcd598bab158759e2638a91f21b82323c02424cb2925c22625b82523aa2722972425 +9c4c5cc08fa9aa8eb1c0b9dac9c6e2cec7e2d0c5e1d1c5e1cfc4e1cec3dfcdc2dfccc1de +cdc2dfcfc4e0cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3e0cdc2df +ccc2dfccc2dfcec3dfcdc2dfcdc3e0d3cae4ada5bfb1abbbc3c0c5d0cfcdd7d5cfd8d8d1 +d3d3d0bfbfc9aca8bbc9c4e0cfc7e2cbc2e0cdc3e0cec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcdc2dfccc1decdc2df +cfc4e0cfc4e1d1c5e1cfc4e1cfc4e0cec4e0cfc6e1cfc7e2cdc6e1cbc0dec9beddcabcdc +cdbfddcfc2dfd3c5e1d4c7e2d1c8e2ccc9d7d2d6d3a4b37ea1be3daed039bcd63ebed740 +b6d43fb1d23e9fba3cabaa85b1a2a9afa0b4afa2b6b2abbab9b8bfbfc1c5c0c6c9bfc9c4 +c1d5c5d5e2d0e5dbd0f2c4c1db7e83bd282ad42b2bcf2726d32926d62926d92a26d92a26 +d92b26da2c26dc2e25df2f25dd2d26d62926cd2529c6252bbc2326b12523a92d22a93d24 +ac5125be7428bc7c2db77b37c59068d7ac9edfbac0d5b7ced7c2dedbcce4d7c9e3d5c7e2 +d3c3dfd2bedcd3bad9d5b6d7d8b6d6d9b6d6dcbad8dab8d7d7bad9d5bddbd2bedcd1c1de +cdc4e0cac7e3c5c8e3c3cae4c2cbe4c2cbe4c4cae3c7c9e3cbc7e2d0c6e1d4c3ded5c2de +d5c2ded3c2dfd1c3dfd0c2dfd0c2dfcfc3e0cfc3e0cfc3e0cec3e0cdc3e0cdc3e0ccc3e0 +cac3e0cac3e0cac3e0c9c3e0c9c3e0c9c3e0cac3e0cdc0decebddccbbbdbc9c0decfc7e2 +d4c9e2d7c6e0ddc4dee3c4dde2c4dedbc1ddd3c4e0c9c6e3c1c5e3c1c5e3c7c5e2cec3df +d1c0ddd0bfddc9c0dec7c3e1c9c5e0cbc8e1cecbe0d0cadfcfc7deccc2dbcdbfdbd2c1de +d2c0ddd1c0ddd0c0ddcfc0decec3dfcbc4e1cac5e1cbc5e2cdc3e0cec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfccc3e0cbc5e2c9c6e2c8c6e3c9c6e2cac5e2cac3e1cdc3e0 +d0c2dfd1c0ddd2bfdcd3bedcd2bfdcd2c0ddcfc3e0cbc4e1c7c7e4c3c9e4cdc6e1eac9df +d192b3ad54719d273ba92025c12625cf2926d12826c62625c52725b424239d1e1f87171a +944459c796b6c0a5cdd3c8e2cbc2e0cfc5e1cfc4e1cfc4e0cec3dfcdc2dfcdc2dfcdc2df +cec3dfcfc4e0cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3e0cdc2df +cdc2dfcdc2dfcfc4e0cec3dfcdc3e0d3cae4aca5beafa9bac3bfc5d0cfcdd7d5cfd8d8d1 +d3d3d0bfbfc9aca8bbc9c4e0cfc7e2cbc2e0cdc3e0cec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcfc4e0cfc4e1cfc4e0 +cec3dfcdc2dfcdc2dfcdc2dfcfc4e0d0c6e2cec5e1ccc5e1d0c9e3d5cbe4d7cce5d5c8e2 +d2c4e0cebfddcbbddcc9beddc9c0dccbc8d7d4d9d0a3b4749fbf3baed039bdd63dbed73e +b3d33da5ca399bb344b9b69eb7a8b7b4a4bcada0b8a79db2a5a0b0a4a4afa1a3aca4acac +a8b9aab8c2b1cec3b8e1b3b3d3767db8262bc72426ce2728cf2728d22827d32926d52926 +d72b26da2d25df2e25e32f25e52e24e32f25e02d25dd2c29d82a2bcf2726c92825c12c24 +bc3124ac2922ad3323a63522b0482ebf665dc47a81c18393cd9ab3d8aecee1c2dce0c2dd +dec1dcdebedbdfbbd8e0b8d6e0b8d6e0b5d4e1b9d6dcbad8d7bcdad3bedcd1c0decec3df +cac5e1c6c7e3c3c9e4c0c9e4c0c9e4c1cae4c3c9e4c6c8e3cac6e2cdc4e0d0c2dfd2c1de +d2c1ded2c3dfd0c5e1cfc4e1cfc4e1cfc4e1cec5e1cdc4e0ccc5e1cbc5e2cbc5e2cbc5e2 +cac5e1cac5e1cac5e1c9c5e2c9c5e2c9c4e1cac3e0d1c3dfd2c0ddcebadacbbcdbd4c6e1 +ddc9e1ddc0d7e1b8d1e2b1cce6b5d1e9bfd8e1c3ddd5c8e2c9c6e2c4c4e1c8c3e1cfc3e0 +d2c0ddd1c1decec6e2cdcbe5cccce6cacbe6c9cbe4c9cae4cbc9e3cdc7e2cfc6e1cfc3e0 +d0c2dfcfbfddcfbfddcfc1decec3dfccc4e1cbc5e2ccc5e1cdc4e0cec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcdc3e0cac3e1c8c6e3c6c7e3c9c6e3cac5e2ccc3e0cfc3e0cfc3e0 +d0c2dfd0c2dfd0c2dfcfc3e0cec3dfcec3e0cec3e0cec3e0cec3e0d1c3dfdbbfdad797af +a34057941b23ab2328c72a2bd02926d52a26da2e25cc2726c22725ac2221911b1b8e2934 +af6e85d8b0d1d9c1ddd6c7e1ccc1decdc2dfcec3dfcdc2dfcdc2dfcdc2dfcec3dfcfc4e0 +cfc4e0cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3e0cec3e0 +cec3e0cec3e0cfc4e1cfc4e0cdc3e0d2c9e4a9a2bbada7b7c1bfc4d0cfcdd7d5cfd8d8d1 +d3d3d0bfbfc9aca8bbc9c4e0cfc7e2cbc2e0cdc3e0cec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcfc4e1d1c5e1cfc4e0 +cdc2dfcabfddc9beddcabfddcbc0decbc2dfccc4e0ccc5e1cac3e0c9beddc9beddcebfdd +cfc1ded0c2dfd1c3dfcfc2dfcac0decbc8d8cbd1bf9db062a3c239b2d237bcd639bad53b +b1d23ea8cb41a7ba63d9d5c9d9cbe0d8cbe3cdc3dcc0b9d0b9b2c7b2abbea29bb0a09eab +9da8a2a2a79eb4aaa7c49ca2be6877aa2431ac1f21b92224bd2324c02525c42625c92725 +cf2826d62b26dd2d25e02e25e32f25e32f24e32f24e32f24e02e25da2c26d42a26cc2726 +cc2726d72e26d92e26c82725bf2424bb2324b42427ad2531b1384db44d66b9607dc17691 +d090ade3accaefc1d9f1cce0edcbe0e5c3dcdbbddad5c6e0d1c7e2cfc7e2cec7e3cdc6e2 +ccc6e2cbc5e2c9c3e0c9c3e0cac3e1c9c4e1c9c4e1c9c4e1c9c4e1c9c4e1c9c4e1c8c3e1 +cac5e1cbc6e2cbc7e2ccc7e0ccc7e1ccc7e1ccc7e1cbc7e2cbc7e2cbc6e2cbc6e2cbc6e2 +cbc6e2cbc6e2cbc6e2ccc6e1ccc6e1ccc5e1cdc4e0d3c3dfd5c2ded6c0ddd7c1ddd9beda +d0a9bfc38ca2bc788ebd6f87c67992d38fabdca6c4e0bdd9d9c6e0d3c4e0cfc4e0d0c2df +d1c0ddcebddccabddcccc0decec3dfcdc2dfc9beddc7bcdcc6bbdbc8bdddc9c0dfcbc3e0 +cbc3e0cbc3e0cbc3e0ccc3e0cec3e0cec3e0cfc4e0cfc4e0cec3e0cec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcdc3e0cac3e1c6c7e3c6c7e3cac5e1cec3e0d1c1ded1c0ddd1c1de +cfc2dfcdc3e0cac5e1c9c6e2c9c6e3cbc5e1d0c4e0d6c1dedbbedae1bcd8efb7d2952638 +a9272db12323b72323c32325cd2726ce2826c82625c92825a41f209d22209a3537b87582 +dfb1c8e5c7dfd8c3dfc8b6d8d3c5e1cfc3e0cec3dfcdc2dfcdc2dfcec3dfcfc4e1cfc4e1 +cfc4e0cdc2dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3e0cfc4e1 +cec3e0cfc4e1cfc4e1cfc4e0cdc3e0d1c8e3a9a2baaca5b6c0bdc3d0cfcdd7d5cfd8d8d1 +d3d3d0bfbfc9aca8bbc9c4e0cfc7e2cbc2e0cdc3e0cec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcabfddc9beddcbc0de +cec3dfd1c5e1d1c5e1d2c6e1cfc4e1cfc4e1d0c7e3d1c9e4cdc5e1ccc1decec3dfd3c5e0 +d4c6e1d1c1deccbddccdbfded0c6e2c8c6d6c1c7a999ae4ea9c939b7d43abbd638b8d539 +b2d23ea9c546a6b36cd7d2cecfc4ddd1c8e2cdc6e0cbc3ddccc3ded0c4dfd2c0dcc3b5cd +b5b6beafaeb0b1a7afab8d9c9c5770901f3c961a249a1b1fa11f20a92121ae2222b42423 +bc2524c22725c92825cd2826d42a26d72b26dd2d25df2e25df2e25dd2d25dd2d25df2f25 +e43224dd2d25e53024e02e25dd2d26dc2e25d62a26c92526c32425b82327ae222ba92639 +a9334cae4962b75f78bf758bcb8a9fd49dafd5a7bee3c3dae1c9e1dec8e1dcc7e0d8c5e0 +d5c4dfd2c1ded0bfddcebfddcfc1decec2dfccc1dfccc2dfcbc2e0cac1dfcac1dfcac1df +c9c3e0cac3e1cbc6e2cbc7e2cbc7e2ccc7e1ccc7e1ccc7e1cdc6e0cec6e1cec6e1cfc6e1 +cfc6e1d0c5e0d0c5e0d1c4dfd1c4dfd1c3dfd1c3dfd0bfdcd2bddbddc4dee8c5dde0afc8 +bc76899a3e4f8d1c2a911b25982436a33b54c26a85dd9ebbe9bcd7e2c2dcdbc4ded7c2de +d4c1ded3c1ded4c3dfcfbedccebcdbcfbddcd0bfddd0c0decfc2dfcec4e0cdc5e1c9c4e1 +c9c4e1c9c4e1cac5e1cac3e1cdc3e0cfc4e0d0c2dfd0c2dfcfc3e0cec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcdc3e0c9c4e1c1c2e0c9c7e3d1c6e2d2c2dfd3c0ddd4bfdcd3c1de +cfc3e0c6c1e0c5c9e5bec6e3c1c7e2cac8e3d6c5dfe3c2dcebb8d3d58baeab4260a62021 +b82423be2624c52625cd2826d02826c22425b32122b5252390181ba34149c07d89d8abba +dfc1d7d8c1ddd2c0ddd1c0ded5c8e2d0c3e0cfc3e0cec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3e0cec3e0 +cec3e0cec3e0cfc4e0cec3dfcdc3e0d2c9e4ada5beafaabac4c1c6d1cfccd6d4cdd6d7d0 +d2d2cfc1c1caaeaabdcac6e1cec7e2cac2e0cdc3e0cec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcdc2dfcdc2dfcdc2df +cec3dfcfc4e0cfc4e0cfc4e0cec3dfcec3e0cfc5e0cec6e1cdc5e1cec3dfcdc2dfd1c3df +d0c2dfd0c0ddcebfddcdc1ded0c5e1d1cfdeafb88e9bb246afcf3cb8d43ab9d538b9d538 +b2d23da3bb49bac48ad5d0d3cec7e2cbc9e3cbc9e2cac6e1d0c5e1d5c4dfd7bedbd8c0dc +d2c9dfcec8dac6c1d5bfb0c6ba94b1ba799abb6888b15568aa424c9d2d3094201e931c1c +971c1e9f1f20a72121ae2022bc2524c32725c22425c62625cf2926d72c26da2d26da2b26 +dd2e25dd2e25dd2d26db2d26dc2d25de2f25de2f25dd2e25db2e26d92d26cd2726cb2626 +c6262cc12935bb2b3ab3303db03543b4424cb24b5bc87089ce82a1d793b3e2a5c5e9b5d1 +e9c1dae5c6dedfc7e0d7c6e0d2c4e0cfc4e0cdc2dfccc0decfc0ded1c0ddd2c1ded2bfdd +d3c0ddd1c1decfc3e0cec4e0cec4e0cfc4e0cfc3e0cfc3e0d0c2dfd1c3dfd2c3dfd3c3df +d3c3dfd4c3dfd4c1ded5c1ddd6c3ded8c4dfd9c6e1d8c4dfd7c0dce2c2dbf4c7dbbd6e86 +9f2f40a5252fa82226a92022a72023a4202aa62c3fb34b66cb7d99e3a9c6edc3dae8cbe1 +d9c4dfd0bddbd4bddbd4bfdcd2bddbd0bcdbd0c0ddd3c5e0d1c6e2cbc3e0c5bfdec7c3e1 +c7c4e2c8c5e2cac5e1cdc5e1cfc4e1d1c3e0d2c4e0d2c4e0cfc3e0cec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcdc3e0cac3e1c6c6e2cac5e1cfc3e0d1bedcd4bddbd5bfdcd5c3df +d1c6e1cac7e3c2cde7c0cde6c1c9e0d0cae1e4cae0e7b3cdce7f9db03f65aa2237bb2324 +c12624c92825cc2726c92626c32525c02625b5272b8e191ba24352b87688d0a4b8dcc1d6 +dac8e0d3c4dfd0c1ded2c2dfd3c3dfd0c2dfcfc3e0cec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3e0cec3e0 +cec3e0cec3dfcfc4e0cec3dfcdc3e0d3cae4ada7bfb1acbcc5c1c6d0d0ced6d4cdd5d6cf +d2d2cfc0c0caaeaabdcac5e1cec7e2cac1dfcdc3e0cec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcdc3e0cdc4e0ccc4e1ccc4e1cec3dfcdc2dfd0c2df +d0c2dfcfbfddcec0decdc0decfc4e1d2cfdcaab57e9cb43dafd03ab7d438b7d437b7d439 +b1d13ea5b851c1c69bd2ced8ccc8e2c8cae4c6cae3c9c7e3d0c3e0d6c1ddd8b9d8dbbbd9 +d8c5e0d2cae3cacbe4c5c5e1c7bad9d0aed0d6a8c9dda7c0d397a8c38291b56e79aa5966 +a14754993645932636921c2b941a1ea12021a72121b02422be2924c82a25cc2926cf2926 +da2f26d32b26d22b26d32a26d62a26da2d25de2e25e02e25e32f25e32f25e02e25dd2d26 +d62b26cd2826c72625c12424bf2525c12926bf2d30bb3344b93854bd4664c15773c86986 +ce7f98d491aad8a2bcd6acc7e3c1d9e2c7dfddc4ded9c0dcd6bcdad6bbd9d6bad9d8b9d8 +d6bedbd0bcdbccbcdccdbfdecfc2dfd1c3e0d2c3dfd1c2dfd0c0ddcfbfddd0c0ddd2c2df +d4c3dfd5c4dfd5c4dfd6c1ddd2bedcd2bddbd2bddbd4bfdadcc1d8e9bcd1e6a0b5b84b60 +a92128b82424bc2324bc2324b92223b32123ad2124ab2533b34159c26880d08fa5d9afc4 +e0c4d8e2c8e0dec2ddd9bcdad4bddbd3c2dfd0c4e0c9c0dfc4bfdfc5c3e1c9c8e4c6c4e2 +c8c5e2c9c4e1ccc4e1cfc4e1d0c4e0d1c3e0d2c4e0d1c4e0cfc3e0cec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcdc3e0cdc5e1ccc8e4cac3e0cfbfddd0bddcd4bddbd5bfdcd4c2de +d1c6e2cbcae5c2cce5c0cbe2c9cbdfdbcbdde3b9cccf869caf415ca41e2ebc2229cb2825 +c92725cc2726cb2726c32525b42123ab2028a2273c8e2f45c3839ed0a7c1d8c0d9d9cbe3 +d4cbe4cfc6e1cfc4e0d1c3dfd0c1decfc3e0cfc3e0cec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3e0cec3e0 +cec3e0cec3dfcfc4e0cec3dfcdc3e0d3cae4ada7bfb1acbcc4c1c6d0cfcdd6d4cdd6d7d0 +d2d2cfc0c0caaeaabdcac6e1cec7e2cac2e0cdc3e0cec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcdc3e0cdc4e0ccc4e1ccc4e1cec3dfcec3dfd0c2df +d0c2dfcfc0decfc0decdc0decdc3e0cecdd4a7b4719bb63bafd037b6d439b6d438b5d339 +afcf3ea9b65dc4c6a5d1cdddcac7e2c5cae4c3cae4c8c6e2d0c2dfd6c0ddd6b6d6d8b6d6 +d6bedbcec5e1c4c9e5c0cbe7c7c9e5d2c6e1d8c5e0e0c7e0dfc0dadab8d2d4adc7cc9fb9 +c38fadb57c9fa9688fa25b829a49689e4356982f2e97241e9d221fa62221ab2021b42222 +c22725c22625c62625cc2726d22b26d62c26da2e25dd2d25dd2d25dd2d25e02e25e02e25 +dd2d25db2e26d92d26d62b26d32a26d22a26cd2926c52525bf2327bc242ab9262eb92c39 +bb3849bf485bc35b70c4667dcd7c93d48da7db9eb9e6afcdecbdd6eac3dbe8c3dce4c0da +debedbd5bfdcd0bfddcfc1decfc1dfd0c2dfd0c0ded0c2dfcfc2dfcec0decec0decfc2df +cfc3e0cfc2dfcec2dfcec0decfc1ded0c3e0d4c5e1dac4dde5c0d3e6a9bac9687bb93340 +bf2525cc2726cb2626cb2726cb2726c42325c02324b92223ac2229a62b3bac4d5ebb7b88 +cda0addeb9cce8c3dbdfbfdad4bedbcec2dfcac7e3c4c8e5c0c9e5bfc7e5c1c7e4c5c5e2 +c9c4e1cec3e0d0c2dfd2c3dfd2c3dfd1c3e0cfc4e1d0c5e1cfc3e0cec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec4e0d0c7e3ccc2dfcfbfddd2bfddd5c0ddd4bfdcd0c0dd +ccc3e0cac5e1c6c8e2c9c8ded9cadddcb8c7c98797af475aa6202eb52226c62425d32a26 +cf2826c82625c22525b82323a62022901923922f4fb9799ad8b1d0dac4dfd7cae4d1cae4 +cbc6e2cac5e1cec6e1d1c4e0cfc1decfc3e0cfc3e0cec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3e0cec3e0 +cec3e0cec3dfcfc4e0cec3dfcdc3e0d3cae4ada7bfb1acbcc4c1c6d0cfcdd5d4cdd7d7d1 +d3d3d0c0c0caada9bdcac5e1cfc7e2cac2e0cdc3e0cec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcdc3e0cdc4e0ccc4e1ccc4e1cec3dfcec3dfd0c2df +d0c2dfd0c0decfc1decec0decdc2dfcbcacca5b2629db93aaed038b6d438b6d438b3d339 +adcc3eadb66ac8c6b3d1cae1cac6e2c4cae4c2cbe4c7c7e2cfc2dfd5bfdcd7b5d6d8b6d6 +d4bddbcac2e0bec9e6bac9e7bfcae6c8c7e3cdc6e2cdc2dfd1c3dfd5c4e0d9c6e0dbc4df +d8bfdcd1b6d7caa9cfc6a0cbc49ac0bb8aa0a66a69985139994625a34423a63d23a22d21 +a12020aa1f21b12122b92423bf2524c52725cb2825cf2926d42b26d62b26da2d26db2d26 +dd2d25dd2e25dd2e25dd2e25dc2e25da2b26d62b26d82b26d62a26d22826cd2726c92625 +c72426c32426bf272cb82931b83242be4357c55c70d07689d98da0dd9db1e1aabde5b2c5 +e1b8d1dfc2dddac6e0d6c3dfd3c2ded1c0ddd0bfdcd0c0ddd1c3dfd1c4e0cdc2dfcac0de +cac2e0c9c3e0c9c3e0c8c3e1cac5e2cac7e3d2c9e3e0c8e0edb9cbdd8c9ab43a46bd2529 +cf2826dd2d26d92b26d72b26d62b26cf2826ce2826cb2626b92223a71e21a0242aa14248 +a86267ba808ad5a0b3e2b7cee2c8ded1c6dfc4c7e2c1cee8c1d2ebbdcce8bac5e3c4c6e3 +cac3e1d1c3dfd2c1ded3c1ded2c2dfd0c3e0cec4e0cdc5e1cec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcfc3e0cfc4e0cec0ded0c0ddd3c3dfd3c4e0d0c0decbbedd +cabfdecdc3e0d1c6dfe0cbe0e1bccdc88797a844549e1e23b12123cd2628cd2826d32a26 +cd2926c12624b32123a42021931c258b2a42a76486e0bad7dac4dfd5c7e2cfc7e2c9c5e2 +c5c2e0c8c2e0cdc6e1d1c6e1d1c3dfcfc4e0cec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3e0cec3e0 +cec3e0cec3dfcfc4e0cec3dfcdc3e0d3cae4ada7bfb1acbcc3c0c5cfcfcdd7d5cfd9d8d1 +d3d3d0bfbfc9aca9bcc9c4e1cfc7e2cbc3e0cdc3e0cec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcdc3e0cdc3e0ccc4e1ccc4e1cec3dfcec3dfd0c2df +d0c2dfd0c2dfcfc2dfcfc2dfcec3e0c7c6c5a4b557a0bf3ab2d236b7d438b6d439b0d238 +abc940b0b777cdc6bcd3c8e2cbc5e2c6cae4c4cae3c7c7e2cec2dfd4bfdcd5b6d7d5b7d7 +d3c0ddcac5e1bcc9e6b7c9e7bac5e3bfbfdfc4bdddc6bdddc9bfdecfc0ded3c3dfd8c6e1 +dac7e1dac7e1d7c5e0d7c4dfdfcce4d4c1ccbea798b0956cba995ac8a256ca9a47b07329 +95441f962f1f9c29209d27209f2220a22020aa2021b62323c22625ca2726ce2926d22b26 +d42a26d52a26d52a26d62a26d62b26d92d26dd2e25e02f25e33025e32f25e12e25df2e25 +dc2d26d52926cd2726c62625c12525bd272ab62a2daf2d33a9333bac4149b75c63c8777f +cf8b98d8a1bad7abced6b1d3d8b6d6dbbad8dcbfdbdbbfdbd8c0ddd4c1ddcfbfddcbbedd +ccc3e0cdc6e2cdc9e4c9c8e4c4c6e3bfc3e2c7bfdee2c0d9eda9bbcf6571b6272ec22325 +d82b26e42f24e12e25e02e25df2e25da2b26d92b26d62a26cb2626ba2323ab20229d2320 +922522933535aa5a63cb8e9deac0d1e2caddcfc6dfc3c7e2c0cbe6c0cbe7c2c9e5c7c7e3 +cdc5e1d2c3dfd3c1ded3c0ddd2c1ded0c2dfcec3e0cdc4e0cdc3e0cec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcfc3e0cfc3e0d0c2dfd1c1ded1c3e0d1c5e1cdc4e0c9c2e0c9c0df +cfc3e0d8c5e0e4c6def1c2d8d18a9ea83f519e1e21ae2122c32625cb2726cf2826c92725 +bf2424b72423a421218e1a1c8b2d3eb2728cdab3d0dbc6e0cfc2dfcbc3e0c9c3e0c7c1df +c6bfdec9c0dfcdc4e0d0c7e1d1c6e1cfc4e0cec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3e0cec3e0 +cec3e0cec3dfcfc4e0cec3dfcdc3e0d3cae4ada7bfb1acbcc3c0c5d0ceccd6d6cfd8d8d2 +d4d3d0bfbfc9aba8bbc9c4e0cfc8e3cbc3e0cdc3e0cec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcdc3e0cdc3e0ccc3e0ccc4e1cec3dfcec3e0d1c3e0 +d1c3dfd0c2dfcfc3e0cfc3e0cec3e0c3c3bca3b54ca4c439b3d336b8d439b7d438afd139 +a9c643b3b984cec6c6d4c6e1ccc3e0c8c8e2c6cae4c8c6e2ccc1dfd1bfddd2b8d8d3bad9 +d0c3e0c8c9e4becce7bccbe8c2c5e3cabfddcebedcd4c6e1d4c5e1d3c1ded3bfdbd5bedb +d6bedcd5bfdcd4c0ddd3c4e0d5cee1c8cac3abb48d9fab66b0ba63cdd776dbe07dc8c563 +aea048a0845aa37a689e69619550518f343e902132981d2ba31e25ab1f21b32023bd2224 +c62425cc2726cd2826cd2826cc2726cd2826d32a26dc2d25e02e25e12e25e02e25de2e25 +dd2d25db2e26d92d26d62c26c92725c32525c22725bc2624b52523ad2322aa2522ad2823 +ab2f31a84151ab5671b76e8acb87a2dda0bbe9b1ccebbad4e4b9d4dbb7d5d8bbd9d6c0dc +d3c1decfc3e0c9c3e0c4c4e1c3c6e3c5c9e5d4c9e3ebbed7e78da1c33945c72b30c92625 +da2b26e53024e52e24e52f24e32f25e02e25dc2d25d62a26ce2826c62625be2524b12322 +a42221991e1f95201ea24247c27b87dba8bae0bfd5d8c4ded0c4dfcbc6e2cdc9e4ccc7e2 +cfc6e1d1c4e0d3c3dfd2c2dfd1c1ded0c0decfc2dfcec2dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcfc3e0d1c2dfd2c0ddd4c4e0d0c5e1c8c3e1c2c3e1c4c4e2ccc8e4 +d6c9e3e2c8e0f1c0d8cd7f9ba73650a11f25b12122c52625cd2726cb2726c92725be2424 +b32123a31f20921b1d953642b57688ddb6cee9d3e6ccc0dec9c2dfcac2e0ccc4e1ccc3e0 +cdc2dfcdc2dfccc2dfcec4e0cfc4e1cec3e0cec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3e0cec3e0 +cec3e0cec3dfcfc4e0cec3dfcdc3e0d3cae4ada7bfb1acbcc3bfc5d0ceccd6d6d0d9d9d3 +d4d3d0bfbec8aaa7bac9c4e0cfc8e3cbc3e0cdc3e0cec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcdc3e0cdc3e0ccc3e0ccc4e1cec3dfcec3e0d1c4e0 +d1c4dfd1c3e0cfc3e0cfc4e0cfc5e1bebfb5a1b443a7c738b4d335b8d439b7d439add139 +a7c245b5bb8fcec5cfd5c4e0cfc1decbc7e2c9cbe4c9c8e2cbc2e0d0c0ddd2bddbd2bedc +cac5e1c2cae1bdcbe3bec9e6ccc5e2d4c0ddd5c1ddcec3dfcbc4e1cfc2dfd2c0dcd3bedb +d6bedbd7bfdcd5c0ddd4c5e0cfcdddb0b9ab799059537535587f397da33ea0bf49afc75e +b2c16fbfc1a0cbc3b9cdbcbdc6a8b4ba8ea5b17292ab587ea23f649d26489b1b28a21d21 +aa2021b02122b42123b62323b62223b42023bc2324d22826da2d25dc2d25db2d26da2d25 +da2b26d72b26d42a26d32a26d62a26d62b26d62b26d32b26ce2926cb2826c72725c92925 +c42925bc2f2caf2d33a3272e9d232c9d2a36aa4353c66d7edc91a4ebabc1f5c2d7f6cddf +f0cde1e6cce2dcc8e1d3c4e0cfc4e0cdc5e1dac3deeeabc8e06b81bc2228d53033d22a26 +d72b26e32f25e62e24e52f24e32f24e32f25e02e25d92b26cf2826c92725c52725c62625 +c52825bf2924af2823971c1e8f191daa4a5ecf87a3eab4d1ebc7dee1c8e0d4c3dfd1c6e1 +cdc7e2ccc8e2cdc7e2cdc4e0cfc3e0d1c1ded0bfddd0bfddcfc3e0cec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcfc3e0d1c1ded1bcdbd5c4e0cec6e2c0c4e2bcc5e3c2cce7cccde7 +d3c2dfd6accecb7ba09f23489f1c22bc2227cd2626cd2726cc2726cf2a26c12624b32123 +a62021961d1ea1414bc98996e9c1d1e1cbdec7bbd5d1cae4d0c6e2cfc4e1d2c3dfd3c3df +d3c2dfd2c2dfd0c2dfcdc2dfccc3e0cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3e0cec3e0 +cec3e0cec3dfcfc4e0cec3dfcdc3e0d3cae4ada7bfb1acbcc3bfc5d0ceccd7d6d0d9dad3 +d5d5d1bfbec8a9a6bac9c4e0d0c9e3ccc3e0cdc3e0cec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcdc3e0cdc3e0ccc3e0ccc4e1cec3dfcec3e0d1c4de +d0c6ded1c4ded0c4e0d0c4e0cec4e0bbbcab9fb33ba9cb38b4d335b8d439b6d439aacf38 +a3be49b8bc99cfc4d6d4c3dfcfbedccfc4e1cdc8e2cac7e2c9c4e1cdc2dfd0c0decdc2df +c2c8e1bcccdabbcbdbc3c7dfd3bfdcdbb8d7d7bbd9c4c5e2bbcae7c0c9e6c8c7e3cec3e0 +d2bfddd2bcdad2bcdad1bedcd7cbe1a9a8a26b7745415a293c5a2a456830527233637c35 +7c873ebab4a6d2c1cce1cfe4e6d2e6e3cde3ddc4ded8bbd9cfabcfc899bdba819bae6b7b +9e4c52912e2b8c1c1b901b1c991d1fa02028a82126aa2021b02222b82423c22725cb2b26 +d22c26d42a26d82b26da2b26dc2d25df2e25e12e25e22e25e12e25df2e25dc2d25d72b26 +d52a26d62b26d42b26ce2926c92825c22625be2524b62423b12728aa2930a93844b14e60 +bc6980cf8aa3e0a6c3eebfd7eec9dfedcce1f3c7ddf194b4dd4660cd2529d4292ada2d26 +d52a26de2e25e52f24e83024e52f24e32f25e02e25da2e26d42c26cf2926cf2826d42a26 +d72b26d32a26c72725c02625b72123ab1e27af254bc34f7fd97fade4a6cbe3bdd9d6c4df +cccae3c4cde3c2cde4c6c9e4cbc4e1d0bfddd1bcdbd2bddbd1c1decec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcfc3e0cfc3e0cfc3e0 +cfc2dfcfc3e0cfc3e0cec3dfcec3dfcec3dfcec3dfcec3e0cec3dfcec3dfcec3dfcfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0d0c0decebadad3c4e0cdc9e4c3c7e4c3cae6cdcfe8d6c9e3 +d3aed0cc87a99b234ab02239be2229c72325cd2726cc2726c12424bc2424bf2b24a42324 +85161e94384cc38094e5b9cce5caded1c3dbcac0dcd1cae4d0c5e1cfc2dfd0bfddd0bfdd +d2c1ded2c3dfd1c3e0cfc4e0cfc4e1cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3e0cfc3e0 +cfc3e0cfc3e0cfc4e0cec3dfcec3dfd3cae4ada7bfb0acbbc2bfc5d0ceccd7d6d0d9dad4 +d5d5d1bfbec8a9a6bac9c3dfd0c9e3ccc3e0cec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcdc2dfcdc3e0cdc3e0cec3dfcfc4e0d1c4df +d1c4ded1c3ded0c4e0cfc4e1cac4dcb7baa09db13aa9cb38b3d335b7d438b5d33aa9cf38 +a1bb4fbabba1d0c4dbd4c3dfd0bfdcd0c3e0cfc7e2cbc6e2c9c3e0cac2e0c8bddcc8bfde +c2cae2bfcedec4cde0cbcae3d7c0dddeb9d7d6bbdabfc2e1b5c8e6bcc9e6c3c7e3cac3e1 +d1c3dfd3c1ded5c1ddd8c5e0d3c8de9a96935b6334435626455d2a46612c405a29485d29 +6a733bbfb5b5cfbfd6d5c5e0d3c3dfcfbfddcfbfddd1c2dfd3c4e0d2bfdddec8e0d9bbd0 +cfa8b4c6959ec38790be7883b462729c3c568d1f348f1a1d931d1d991e1fa02020a92121 +b22122bc2324c72525cd2726d52926da2c26dd2d25df2e25e02e25e02e25e12e25e02e25 +df2e25e02e25e02e25de2e25dd2d25da2d25d62a26cf2926c92725c22725b92624b2282a +ae2d34ac3844af4559b75c75c3758ecf8aa5e594afe36d88da364bda2c2dcc2626e0322a +d92b26df2f25e42f24e93024e93024e42f24df2e25d72c26d42b26d42b26d72c26db2d26 +dd2d25da2b26d32a26c82625c92625cb252bbd2231af223ab4345cc7658ddd9abbe6bfd6 +d8c6dcccc9decacbe2cac8e3cbc3e0d0bfddd1bedcd1bedcd0c2dfcdc4e0cdc3e0cdc3e0 +cec3dfcec3dfcfc2dfcfc2dfcfc2dfcfc3e0cfc3e0cfc3e0cfc4e0cdc3e0ccc4e1cbc4e1 +ccc5e2ccc5e2cdc3e0cec3dfcec3dfcec3df +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd1c1de +d1c0ddd1c1ded0c2dfcfc3e0cfc3e0cec3e0cdc4e0ccc3e0c9bfdecbc0ded0c4e0d3c5e1 +d4c6e1d1c3e0d0c2dfd2c3dfd4c5e1d2c3dfccc1dfc8c5e2c9c7e3d0c9e3dbc8e1dfb4d4 +cb7fa2a63154af1f2db92223c72525cd2826c92825c12424bf2524bd2724a621217c142f +914c70b986a8d7afcfdfc1dbd9c4dfd5c6e0d4c6e1cec3dfcfc4e0d0c2dfd0c0ded1c1de +d1c2dfd1c2dfd0c2dfcec3dfcec3e0cec3dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +d0c2dfd1c3dfd1c3e0cfc4e0cfc4e0d3cae4ada5beaeaabac2c0c5d1cfccd6d7d0d8d8d2 +d5d4d0bfbec9ada7bacac2dfd0c6e2ccc2dfcec3dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd1c3e0 +d1c3e0d0c4e0d0c5e1d0c8e2cac7cfa9b0899ab03aa9cb38b3d334b7d438b2d238a2c939 +a1b75dbebeb4ccc0ddd2c2dfd2c2dfd1c4e0d1c6e1d0c6e2cdc3e0ccc2dfccc0deccc2df +c9c6e2c9c9e3cac7e2cec6e1d2c1ded7bddbd3bedcc8c2e0c3c5e3c6c6e3cac7e3ccc6e1 +cfc4e0cfc3e0d1c4e0d4c7e2cbc5d97d807d4c562c3d4e21415526425928415425475a28 +7b8365cbc3cfd1c3dfd2c4e0d0c2dfcec0decec0decfc2dfd0c3e0d1c3dfd7c8e2dac7e0 +d9c3dbd9bfd7d9bad3d8b2ced0a6c3c796b8c289a6ba7788b1626ca34951962e36901e22 +941b1e9d1d20a72021ad2022b82223c32525cb2726d22a26d62b26d62b26d92b26da2d25 +dc2e25da2e25da2d26db2e26de2f25e02e25e12e25e02e25db2d26d62b26cf2926cb2726 +ca2b26c32825b32323b22b2fb23542ac3b4dbe4b5ed64f60e74753e83c41de322edd3128 +d92b26dd2d26e32f25e62e24e83024e32f24e02e25de2e25db2e26da2d26d92d26da2e25 +db2d26d92b26d52a26d12826ce2826cc2626c52425bc2124b3222bae2c3fb2485dc07386 +dea9bcefcddfe0cae1cfbfdbccbfddcfc4e1d1c6e1ccc3e0cbc4e0c6c0ddc8c0decec5e1 +cdc4e0cabeddc8bbdbccbddcd3c5e0d0c0ddd1c1ded0c2dfcec3e0cdc5e1cac6e2c8c6e3 +c6c7e3c7c7e3cbc4e1cdc2dfcec3dfcec3df +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d1c1ded2bfdd +d2bfddd1c1ded0c2dfcfc3e0cec3e0cdc4e0cdc4e0cdc3e0cec0ded0c3e0d2c4e0d1c2df +cfc0decec0decfc1decfc3e0cfc4e0cdc4e0d0c7e3cec6e2d5c7e2ddc5dfdbaccec77b9f +b23f61ac1f2ec02225cf2826cf2826c92725c22625bc2624b52423a9212190191f945378 +ae8db5cfb6d7dac3ded6c3ded2c0ddd3c4e0d4c6e1cebfddcfc2dfd0c2dfd0c2dfcfc3e0 +cfc3e0cfc3e0cfc3e0cec3dfcec3dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2df +d1c2dfd1c2dfd2c3dfd0c3e0cfc4e0d3cae4aca5beaeaabac2c0c5d0d0ced6d7d0d9d7d2 +d5d4d0c2bdc8aea7bacbc2dfd0c5e1cdc0decfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd0c2dfd0c2dfd0c2dfd0c2df +cfc4e0cfc4e0d0c5e1d1cbe0cacac7a4af7e9ab03caacb38b3d335b6d438aed1389fc43a +a1b465c2c1c0cbbfddd0c3e0d1c3e0d0c4e0d2c5e1d2c5e1cfc3e0cec0decfc3e0cfc3e0 +cec3e0cec4e0cec3e0cfc4e0d0c2dfd1c1ded1c1decec2dfccc3e0cdc4e0cfc6e1cec7e0 +ccc5dfcbc4e0cdc6e2cdc8e3afb0b96b73644c592a445626425626405324405123525f31 +93998ccec8ddd2c5e1d1c3e0d0c2dfcfc2dfcfc2dfcfc2dfcfc3e0cfc3e0cfc2dfd2c4e0 +d4c5e1d6c6e1d7c6e1d5c4dfd4c1ddd1bddbd3b8d8d7b0cbd3a3b7c891a5bd7f91b56e7f +af5d6fa84b5aa0333e9f252a991d1e9f1d1faa2021b42123c02424c62625c92725cc2826 +cc2826cc2826cc2826d12926d72c26dd2d25e02e25e32f25e32f25e12e25e02e25dc2e25 +da2f25da3025c82625c32725bd2826aa2021be353bde5b60ef6d70f06464ed5554e74742 +e23a32e0332ade2f25df2f25e02e25e02e25e02e25e02e25de2e25dd2d25dc2d25da2d25 +da2b26d92b26d72c26d62c26d52b26d42b26d12926cb2726c22525b42123ad2327b33a47 +b9576acc849bdda9c4e3c0d9dcc8e1d2c5e1c8c1dfc5c1e0cdc6e2cec6e1cac1dfc8bedd +c9bfdecec3dfd1c5e1d1c2dfcbbddcd0c0ddd0c2dfcfc3e0cec3e0ccc5e2cac6e2c7c7e3 +c5c7e3c7c7e3cac3e1cdc2dfcec3dfcec3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d1c1ded1c0dd +d1c0ddd0c2dfcfc3e0cdc3e0ccc4e1ccc4e1cec3e0cfc3e0d2c2dfd5c4e0d4c3dfcfbddc +cbbddcccc1decec5e1cbc5e2c7c2e0c7c2e0d0c7e3d9c7e1e1c2dddfabcec67a9daa3d5c +a41e2aba2327c62425d62c26d12926c52625c02525b62423a42020971d20993b53c499be +cdb6d8d6c5e0d7c6e1d2c0ddcfbedcd1c1ded2c2dfd0c0ddd0c2dfd0c2dfcfc3e0cfc3e0 +cfc3e0cec3dfcec3dfcec3dfcec3dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd1c2df +d1c2dfd2c2dfd2c3dfd0c3e0d0c3e0d3cae4aca5beaeaabac2c0c5d0d0ced6d7d0d9d7d2 +d5d4d0c3bec8afa7bbcbc1ded0c5e1cdc0decfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd0c2dfd0c2dfd0c2dfd0c2df +cfc4e0cfc3e0cfc4e1d0cce0c9cbc5a3af7b9ab13caccd38b3d335b4d337acd0389dc23b +9fb368c5c3c6ccbfddd0c3e0cfc3e0cfc3e0d0c3e0d1c4e0cfc3e0cec0decfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c0ded0c2dfcfc4e0d0c5e1cec6df +cbc7decbc7e0cac7e2c5c6db8f978d59673c475a284459274156263c5123425425616f4b +a4a8a5cec7e0d2c5e1d0c3e0cfc3e0cfc3e0cfc2dfcfc2dfcfc3e0cfc3e0cfc2dfcfc2df +cfc3e0cfc3e0d0c3e0d0c3e0d0c3e0d0c3e0d2c3dfd9c3dedcc0dbdebcd8deb8d4dcb1cc +d8a5bfcd92abbe788eb7657bae5465a94451a4323ca023299f1f20a31f21a92021ae2222 +b12122b32122ba2323c32525cb2726d22a26d92b26dd2d26df2e25e02e25e33025dd2e25 +d62b26de3225ce2826cc2826c92925b72323d34746ee7e7bf5968ff48e85f4847af1786e +ee6c63e95c54e04c40db3c30d93429da3026dc2e25dd2d26dd2d25e02e25e12e25e12e25 +e02e25dd2d25d92d26d72c26d92d26da2e25dc2e25da2d25d62a26cf2726c52425b82423 +aa202bab3550be6881d397afddb6d0d9c5ddd1c6e1cbc3e0cdbfded2c4e0d0c4e0ccc1de +cabfdecdc4e0d1c8e3d0c7e2cac1dfcdc3e0cdc3e0cec3e0cdc3e0cdc3e0ccc3e0ccc3e0 +cbc4e1cbc4e1cdc3e0cdc2dfcec3dfcec3df +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d1c1ded1c0de +d1c1decfc3e0ccc3e0cbc5e2cac5e1cbc4e1cec3e0d1c1ded3bfdcd7c1ddd6c0ddd1bedc +cfbfddcfc5e1cccae4c7c9e5c3c6e3c8c5e2d0c0dde1c0dbe1aacac97697ad3e5aa4202b +ae2222bf2524cb2925cb2825c82625c72625bc2324a820219a1f27a24559c0829ddebedb +d9c6e1d7c6e1d3c3dfcfbedccfbedcd0c0ddd2c2dfd2c3dfd0c2dfd0c2dfcfc3e0cfc3e0 +cfc3e0cec3dfcec3dfcec3dfcec3dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd1c2df +d1c2dfd2c2dfd2c3dfd0c3e0d0c3e0d3cae4aca5beaeaabac2c0c5d0d0ced6d7d0d9d7d2 +d5d4d0c3bec8afa7bbcbc1ded0c5e1cdc0decfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd0c2dfd0c2dfd0c2dfd0c2df +cfc4e0cfc3e0cfc4e1cfcadec6c8c1a1ad7a99b03caecd37b3d337b4d336add0389dc23b +a0b46ac8c6c8cfc2dfd0c3e0cfc2dfcec0decfc3e0d0c3e0cfc3e0cfc2dfcfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc1ded0c2dfcfc3e0cfc4e0cdc6df +ccc8decac8dcc7c7dac0c4c77f8a6255692e455d29405a293b55263b5224495b28737f5f +b5b8b8cfc7e1d2c5e1d0c3e0cfc3e0cfc3e0cfc2dfcfc2dfcfc3e0cfc3e0cfc3e0cfc2df +cfc2dfcec0decec0decfc2dfd0c3e0d3c5e1d4c6e1d0c0ded1c1ded5c3dfdac5e0dec6e0 +e0c4dee0bdd9deb1d1ddaac9dda2c0d392adc37993b15d76a3485f9e3f529c3348992b3e +9b24339e1e24a51f21ae2122b52223bf2324c82426ce2626d02726d22826d92d26d32b26 +c92825d62c26cc2826cd2726cb2826bd2324dd514cf28c85f8a89df8a797f7a393f7a090 +f5998af18f80eb7e6fe66f60e15f51df4e3fdd4134dd342ade2e25e33025e53024e52e24 +e42f24e02e25dc2d26d92b26dc2d25df2e25e32f25e42f24e42f24e22e25da2c26c92625 +c6242ab52232a4273aa7485cbd7b8dd4aab9e0c4d5dcc7e0d1bedccebcdbd1c0ddd4c5e1 +d3c7e1cdc4dbcac3d8cac7dcd0cee4cac6e2cac5e1cac3e1ccc3e0cdc2dfcfc0ded1c0dd +d3c0ddd2c1decfc3e0cdc3e0cec3dfcec3df +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd1c1de +cfc2dfcdc3e0cac3e1cac6e2cac5e2cbc4e1cfc3e0d1c0ded4bddbd7bddbd6bfdcd7c2de +d4c5e1cdc6e2c7c8e4c1c8e5c5c9e5d2cbe5dabfdbdca6c7c67291ac3450a61e25b52323 +c52925c22625cc2a26be2624c22625c12625ab20229a1d28a4455fcb8da6e1bbd7ddc6df +d5c3dfd0c0ddd0bfddd1c0ded1c1ded0c0ddd1c1ded2c4e0d0c2dfd0c2dfcfc3e0cfc3e0 +cfc3e0cec3dfcec3dfcec3dfcec3dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd1c2df +d1c2dfd2c2dfd2c3dfd0c3e0d0c3e0d3cae4aca5beaeaabac2c0c5d0d0ced6d7d0d9d7d2 +d5d4d0c3bec8afa7bbcbc1ded0c5e1cdc0decfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd0c2dfd0c2dfd0c2dfd0c2df +cfc4e0cfc3e0cfc4e1cdc9dcc2c4bd9eaa7597af3baece37b5d336b3d337acd0389ec23b +a3b66ecac8cccfc3e0d1c4e0cec0decdbfdecfc2dfcfc3e0cfc3e0cfc2dfcfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc1ded0c3e0cec3dfccc3e0ccc6e0 +cbc9ddc9c9d7c2c7cdbac2b0899a4d738c396581375a773449662e4058284f622b849075 +c4c7cccfc7e2d1c4e0d0c3e0cfc3e0cfc3e0cfc2dfcfc2dfcfc3e0cfc3e0d3c5e1d1c4e0 +d0c3e0cfc2dfcec0decec0decfc2dfcfc3e0cfc4e0cac2e0c9c2dfc9c0dfcbbfddccbedc +cfbfddd3c0dddbc4dfdfc7e0dec0dcdebad7dfb7d6e0b4d1deadcbd7a2c0c58ba9ad6f8d +a055729f3f59a22e46a124359e1e2aa11e26ab1e27b5202cbe232ac02427c32425c22525 +c12424ce2c26ce2c26ce2c26c22625ba2323d63f32ed7269f39085f49689f59c8ef7a395 +f8a798f8a797f7a294f69b8ef48e82f17e71ed6f64ea5c53e74941e53c35e3342ce02f25 +db2e26dc2d26de2e25e02e25e32f25e42f24e62e24e62e24e52f24e32f25e02e25e42f27 +d72a29c32427ae21249e1f259c3139b15d65cf929ceabad1e3c8e0d1bcdbd0b9d9d4bedc +d9c4dfdac8ded5c6d9d0c5d9cec6dccdc6e0cbc6e1cac5e1cac3e0cdc2dfd0c0ddd2bfdd +d4bedcd3bfdcd0c2dfcec3e0cec3dfcec3df +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc2df +cec3dfcbc4e1cac5e1c9c6e2cac5e2cbc4e1cfc3e0d1c0ded7c2ded4bcdad6bedbd7c3df +d2c4e0c7c1dfbdc0e0bdc5e3cbcbe6e0cee5e5b8d5c17191a22a44a71e21b92223c52725 +c62625cd2a26c82725c42725be2624a72021951a23a0405dc98babe5c4ddd8c5e0d8c7e1 +d2c2dfd0c0ddd3c3dfd5c6e1d3c4e0d0c0ddcfbfddd0c2dfd0c2dfcfc3e0cfc3e0cfc3e0 +cfc3e0cec3dfcec3dfcec3dfcec3dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd1c2df +d1c2dfd2c2dfd2c3dfd0c3e0d0c3e0d3cae4aca5beaeaabac2c0c5d0d0ced6d7d0d9d7d2 +d5d4d0c3bec8afa7bbcbc1ded0c5e1cdc0decfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd0c2dfd0c2dfd0c2dfd0c2df +cfc4e0cfc3e0cfc4e1cdc9dcc2c4bd9ca97496ae3baece37b5d336b3d337aacf389ec23b +a4b772cbc9cdd1c4e0d3c5e1cfc2dfcdbfdecfc2dfcfc3e0cfc3e0cfc2dfcfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc2dfd0c3e0cec2dfccc2dfcbc6e1 +cbcaddc9cad0bfc5bdb0bc949db249a7c13ba9c5399ab63b7a983c5a7433606f2f989f8b +d4d3e1d0c7e2d1c4e0d0c3e0cfc3e0cfc3e0cfc2dfcfc2dfcfc3e0cfc3e0d1c4e0d1c4e0 +d1c4e0d0c3e0d0c3e0cfc3e0cfc2dfcec0decabfdecbc4e1cac7e3cac7e3cac5e2c8c1df +c6bfdec5beddc9beddcbc0ded2c6e1d5c7e2d5c6e1d7c6e0d9c6e0d8c5e0d8c1ddd3bcd9 +d4b3d2deaac7d791abbf6c88a141618e20428c1a35951b369f1f35a52132a41e25a61f21 +ad2122ac1f21b62423bd2624b12122bc2324d43228e44d42e95b56ec6661f0726df38079 +f38a82f4938bf69d93f7a499f8a99df8a89df69f95f59389f48379ef726ae66058dc4f45 +d53d33d42f2ada2a26e22c25e32f24e52f24e83024e83024e52f24e32f25e12e25e33025 +cb2726c42425c82b26bd2926a82121a02020ac3535bd6879d2a6c7d9c3dee2c7dfdebedb +dbb8d7e0bdd9e5c6dee0c5dfd4bdd8d4c3decfc6e1ccc7e2cbc5e1ccc3e0cfc2dfd0bfdd +d2bedcd1bedccfc2dfcdc3e0cdc3e0cdc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cec3e0cbc4e1cbc5e2cac5e1cac3e1cbc4e1cec3dfd2c3dfd6c5e0d1bedcd1bcdbd4c1de +d3c3dfcdc3e0cac5e2d0cbe5ddcce4e7bbd6ba698c9a253fa21e21bc2324cb2825cb2726 +cc2726d42c26c22625bc27249b1d1e89171ca14864ce94b5e3c3ddd9c7e1cabfddd4c5e1 +d1c1ded0c0ddd2c2dfd4c5e1d3c3dfcfc0decfc0ded3c4e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cec3dfcec3dfcec3dfcec3dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd1c2df +d1c2dfd2c2dfd2c3dfd0c3e0d0c3e0d3cae4aca5beaeaabac2c0c5d0d0ced6d7d0d9d7d2 +d5d4d0c3bec8afa7bbcbc1ded0c5e1cdc0decfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd0c2dfd0c2dfd0c2dfd0c2df +cfc4e0cfc4e0cfc6e1cfcaddc6c7c09eab7697af3baecf38b2d236aed137a6ce389bbf3b +a3b570cbc9ccd1c4e0d3c5e1cfc2dfcec0decfc2dfd0c3e0d0c3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc1ded1c4e0cec2dfcac0decac4e0 +cbcbddc7cbc9b9c4a5a9bb72abc640c1d949cbdc4dc7db4ab4cd4099ac3e919f5eb2b7ad +d1cee4d0c5e0d1c4e0d0c3e0cfc3e0cfc3e0cfc2dfcfc2dfcfc3e0cfc3e0cec0decfc2df +cfc3e0d0c3e0d1c4e0d3c5e1d1c4e0cfc3e0ccc3e0c6c0dfc4c1e0c7c4e1c9c6e2cbc6e3 +cbc6e3cac7e3cac7e3cbc8e3c4c1e0c4c0dfc6c2e0c9c4e1cac5e1c9c4e1c8c3e1c8c3e1 +cec3e0d9bfdbe2b9d6e4b7d3e5b6d2e5b1cfe0a2c4c67ea0a74f758d244a7e142d881729 +951f2c8d181b9d1f20aa25229d1e1fab1f21bc2324cd2726d72f2add3531e1403ce54844 +e7504dea5c57ee6c64f27870f4877ef5968df69c94f7a59df8aaa2f8a79ef69e95f59389 +f4877ef1726eec4e50eb4143e1322ed62a26d52926d72a26dc2d26df2f25dd2e25d12826 +d72c26d62b26ce2826cb2726cb2726c82625b723239d1e1f963448bb7f9ae9b2cef3c3da +ecbed8e1b7d5dbb6d5dcbedadbc5dfd3c3dfd0c5e0cfc6e1cec6e1cfc4e0d1c2dfd2bfdd +d1bedcd0bfdccfc2dfcdc3e0cdc3e0cdc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cec3e0 +cec3e0cec3e0cec3dfcec3dfcec3dfcdc2dfccc3e0cbc3e0ccc3e0cfc5e1cec2dfcdc0de +d0c2dfd8c7e1dbc9e2d9c1ddd8aacac873949a1e399b1d1fb72623c72725cb2726d12826 +d92b26d12826bd2324a21e208c19209a4d66c494b3ddc4ded9c8e2c9beddd2c9e3cfc3e0 +cebfddccbddccebfddcfc1ded0c2dfcfc3e0d0c3e0d3c5e1cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd1c2df +d1c2dfd2c2dfd2c3dfd0c3e0d0c3e0d3cae4aca5beaeaabac2c0c5d0d0ced6d7d0d9d7d2 +d5d4d0c3bec8afa7bbcbc1ded0c5e1cdc0decfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd0c2dfd0c2dfd0c2dfd0c2df +cfc4e0cfc4e0cfc6e1cfcaddc5c7c09eab7496ad3caece37b1d236add037a5cc399bbf3c +a4b774cac8cdd0c3e0d3c5e1cfc3e0cfc2dfd0c3e0d1c4e0d0c3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc1decfc4e0ccc1dfc9c0dfcac5e1 +cbccdfc5ccc0b4c48ca3bb53b3d13fc2d83dc4d937c4d93abed748b5c762b2bd8bc8c8c9 +cbc6e2d0c5e1d1c4e0d0c3e0cfc3e0cfc3e0cfc2dfcfc2dfcfc3e0cfc3e0cec0decfc2df +cfc3e0cfc3e0d0c3e0d0c3e0d1c4e0d0c3e0cfc4e0d1c6e1d0c6e2cec5e1cbc3e0c9c2e0 +c9c2e0c9c3e0c9c3e0c9c3e0cac5e1cac5e1cac5e1cac5e2cac5e2c9c6e3cbc8e3cdcbe5 +d1cbe5d4c9e3d6c6e1d5c5e0d5c6e0d9c8e2e0c9e1e1c1dcdeb5d4dba9cad9a2c2d498b3 +bd7990944355811e23881818891719a21e20c32925d32d26d62a26dd2c26dd2d26dd2d26 +dd2e28df312ce23833e33f3de74945ea5552ee6560f37871f48a83f5948cf69b93f7a096 +f7a499f7a39af59b95f38d87ef756be15e52d74a3bd1392ad02e26cf2c26d42b26dd3225 +dd2e25dd2d25dd2d25de2e25dd2d25dd2d25db2d26d22a26b12222a8252bb84b5dcf7c94 +e2a7c6e5c0dadbc4dfcfc0dec4bcdcccc4e1cec3e0d2c3dfd3c2dfd5c1ddd4c0ddd4c0dd +d3c0ddd1c0decfc2dfcec3dfcdc3e0cdc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc4e0d0c2dfd1c1ded1c1ded1c1decfc3e0cbc4e1c8c5e2c1c3e1cdcde7cdcbe5c8bfdc +cfbedbdec3dee2bdd9d6a1c4c373959e263bb4222eb72423ba2324c42625cc2826cf2926 +ce2826c62625ab1f21931a1f9f4c65bf91aed2bcdad0c5e1c8c1dfcac1dfd1c6e2d1c4e0 +cfc3e0cfc1decfc1ded0c2dfd1c4e0d1c4e0cfc2dfcbbeddcfc2dfcfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd1c2df +d1c2dfd2c2dfd2c3dfd0c3e0d0c3e0d3cae4aca5beaeaabac2c0c5d0d0ced6d7d0d9d7d2 +d5d4d0c3bec8afa7bbcbc1ded0c5e1cdc0decfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd0c2dfd0c2dfd0c2dfd0c2df +cfc4e0cfc4e0cfc6e1cfcadcc3c4bc9da87293ab3baecd37b0d236add037a6cd389fc13d +a6b877c9c7cccfc3e0d3c5e1d0c3e0cfc3e0d1c4e0d3c5e1d1c4e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cec0decfc4e0ccc2dfc9c0dfc9c5e1 +caccdec4cdb5b1c4749fbb3bbad53ec8db3ac2d835bed635b5d03eaebe61b1ba94cbcbd5 +d0c9e4cfc4e1d1c4e0d0c3e0cfc3e0cfc3e0cfc2dfcfc2dfcfc3e0cfc3e0d1c4e0d0c3e0 +d0c3e0cfc3e0cfc2dfcfc2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc4e0d2c5e1 +d4c6e1d4c7e2d0c6e2cdc3e0cec5e1cec5e1cbc4e1cbc4e0cac4e0cac5e1cac5e1cac6e2 +c9c4e1cbc6e1cbc7e2c9c7e3c6c7e3c6c7e3cac7e2cfc4e1d5c2dedac1ddddbfdbdbb8d7 +d4aecacda2b6cc95a2d3878ac5605cb12f27be2824ce2b26d82b26dd2d26dd2d26de2e25 +e02e25e02e25e12e25e02e25de2e25dd3128e03730e2443de3524ce45b55e66a61ec786d +f2867bf59186f69b91f69e94f69f94f39c8ff09083ef7e6eea6856e1513cda4029d02e26 +d62e26dd2f25e02f25e32f24e52f24e52f24e42f24df2e25d62c26c12424ad2322a9303c +bb657cd59cbae4c3ddddcbe3cec0decfc3e0cfc2dfd2c1ded3c0ddd4c1ddd4c1ddd4c1dd +d2c1ded1c2dfd0c2dfcec3dfcec3dfcdc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc2df +cfc1ded2bfddd5c1ddd7c2ded4c2ded2c3dfcdc6e2c5c8e4b9c5e2c4d1eac7cde6c8c2db +d6bfdae8bcd7e2a2c4c66d93a93050ae2025bd2324c62725c82925c52725c42425c52725 +c42625b320239a1c20a1445fba85a5cdb6d5d0c7e3c8c6e3c4c4e1ccc4e1d1c5e1d0c3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc4e0cfc4e0cec2dfccc0decfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd2c4e0 +d1c2dfd2c2dfd3c3dfcfc2dfd3c5e1d4cbe5a6a0b9aeaabac3c1c7d0cfccd6d6cfd9d7d1 +d4d3d0c3bec8afa7bbccc3dfd1c5e1cec2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd0c2dfd0c2dfd0c2dfd0c2df +cfc4e0cfc4e0cfc6e1d0ccddc6c7bf98a46d95ad3cadcc38aed137abd037a3cb39a0c23f +abbd7dc9c8cdcfc2dfd1c4e0d0c3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc2dfccbedccfc3e0cac1dfc9c4e1cccae4 +c5cbd6b6c39da8c056a5c839bdd740c4d938c2d835b8d435aec839adba6dbdc1aed1cee3 +ccc4e1cfc4e0cfc4e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c3e0d0c3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd1c3dfd2c3dfd3c3dfd3c4dfd4c4df +d5c6e0d5c6e0d3c5e0d2c4e0d2c4e0d2c4e0d1c3dfd0c2dfd0c3e0d0c3e0d0c3e0d0c2df +cec3dfcbc4e1c9c6e3c4c8e4bfc9e5becae6bfc8e5c5c6e3ccc3e0d1c3dfd4c3dfd5c2de +d6c1dedcc5dde1c0d2f2b8c2e08c90be4441bd2b24ca2926d32a26d92b26da2b26dd2d25 +df2e25e12e25e32f25e32f25e22e25e02e25df2e25de2e25dc2f27d9322bda362fdc4036 +df483ee5544eed6762f0726df4847bf59187f5988cf6998af49482f18d79ee806be86850 +e95c45e24631dd3525dd2e25df2e25e32f25e42f24e32f24dd2d25cd2826c12624b62623 +b0333ab55164c27892d7a1c2e3c0dbdac2ddd4c1ded1c1ded0c0ded1c2dfd3c4e0d4c6e0 +d5c7e1d3c6e1d1c3dfd1c3e0d1c5e1d0c5e1 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d1c3e0 +d2c1ded4bedcd6bddbd6bedbd6bfdcd1c2decac5e1c1c7e4bdcee7b7c9dec1caded5ccdf +e1bfd5da9bb5c8688ab5355ab01f2ec32325ce2826cd2926c92925c52825bf2524b72423 +ac2021a01f25b14f6ec182a5d0b0d2d3c5e1cbc9e4c5c6e3c6c5e2ccc4e1d0c3e0cfc3e0 +cec3e0cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd3c3df +d2c3dfd2c2dfd3c4e0cec0ded3c5e1d5cce5a39bb5ada9b9c3c1c7d0cfccd5d6cfd8d7d1 +d4d3d0c3bec8afa7bbccc3dfd1c6e1cec2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd0c2dfd0c2dfd0c2dfd0c2df +cfc4e0cfc4e0cfc6e1d0ccddc6c7bf96a26b95ad3caccb37add137a9cf38a0c93a9fc140 +adbf81cac9cdcec0ded0c3e0d0c3e0cfc3e0cfc2dfcfc2dfcfc3e0d0c3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc2dfcdbfddcfc3e0cac3e0ccc8e2cacae3 +bfc6c8acbd87a5c340add038c0d83ec0d739bfd736b3d335abc340b0bd82c7c8c4d2cde6 +c9c0decec3dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d1c3dfd2c4dfd3c4dfd3c4dfd3c3de +d4c3ded4c3ded3c3dfd3c3dfd3c3dfd3c2dfd3c2dfd3c1ded4c1ded3c1ded3c0ddd3c0dd +d2c1decfc3e0cbc4e1c6c7e3c0c9e5becbe6bfc9e6c3c7e4c9c3e0cdc0decfc1decfc2df +d0c4e0d5c8e2dac3dbf4c3d3dd8f9bbd464dbc2928c72825ce2926d42b26d62a26d92b26 +dd2d25de2e25e02e25e32f25e32f25e12e25e12e25e02e25de2e25dd2d26da2d26da2d26 +da2c26dd2f27e3362fe43c35e64a42e95b53eb6d61f07c6df38a7af59381f69883f59482 +f48d7cef7e6eea6c61e85750e7453ce5372de02f25dd2d26da2f25d22b26cf2926ca2926 +bc2524ae2322ac2f3bbb5772d082a5e1aed0dcbad8d8c2ded2c3dfcec2dfcbc2e0ccc5e1 +cec7e0cec4ded0c2dfd2c2dfd1c3dfd0c3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd2c3df +d5c3dfd7bedbd3b9d9d3b9d9d6bedbd3c3dfc9c4e1c0c6e2c1d0e7b6c6d8c8c8d8dcc8d6 +d8a5b8be667da92c44af1f2cc6242acb2726da2e26cf2926c52625c22725b92424a42121 +9820279f435cd59cbdd7b4d5d6c5e0d1c9e4cac5e2c5c2e1c8c3e1cdc6e1cec3dfcec3e0 +ccc3e0cdc3e0cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd3c3df +d2c3dfd2c2dfd3c4e0cdbfded3c5e1d4cbe5a29bb4aca7b7c2c0c5d0cfccd5d6cfd8d7d1 +d4d3d0c3bec8afa7bbccc3dfd1c6e1cec2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd0c2dfd0c2dfd0c2dfd0c2df +cfc4e0d0c4e0cfc6e1d0cbdcc3c4bc94a06a94ac3cabca37add038a9cf389fc93a9dc03f +acbd7fcac8cecec0ded0c3e0d0c3e0cfc3e0cfc2dfcfc2dfcfc3e0d0c3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc2dfcec0decec2dfcec7e2cdcbe1c4c6d3 +b7c1b1a9be74aaca3bb2d237c1d840bfd73eb8d437adce37acc153b9c19bcbc9d3d1c8e3 +cbbfddcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc4e0d0c5e1d0c5e0d0c5e0d0c5e0d0c4df +d1c3dfd2c3dfd2c3dfd2c3dfd2c2dfd2c2dfd2c1ded2c1ded3c0ddd3c0ddd5c0dcd5c0dc +d5c0dcd4c0ddd2c1decdc3e0c8c7e3c3c9e4c3c9e5c8c5e2cdc2dfcfbfddcdbddcccbedc +ccc0decec3e0d4c1ddf3c5dacf7e93bb3c4ebe252ac82625cf2926d32a26d42a26d52a26 +d72b26d92b26d92b26da2d25db2d26dc2d25dd2d25dd2d25dd2d25de2e25df2e25e02e25 +e02e25e02e25de2e25dd2d26da2d26da2f26df372be44537ea5448ee6155ed6c60f07e71 +f2857bf48d85f59089f48a85f37d78ef6a67e75653df493ddc3c28d33026cf2a26d12926 +cd2926c62625c02424ba2432b93453cd6a91db97bfe3b7d5ddc2ddd2c1decac1dfc8c4e1 +cac8e3cac6e1d1c3e0d2c1ded0c0ddcfbfdd +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc0decfbfdd +d5c2ded8c0dcd5bad9d6bbdad7c0ddd6c5e0d0c6e2c6c6e1c0c6dccecee0d8c8d4cda4af +b86d7aa73341aa1f21bc2224cd2726cf2826cc2726cb2726c82725be2624a72021961f2c +9f4c65be8bacdcc3ded7c9e3d4c9e3ccc2dfc9bfdecabfded0c5e0d0c8e2cdc6dfccc4e1 +cbc4e1ccc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cec3dfcec3dfcfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd3c3df +d1c2dfd1c2dfd3c3dfccbfddd1c4e0d4cae4a299b3aba6b6c2c0c5d0cfccd5d6cfd8d7d1 +d4d3d0c3bec8afa7bbccc3dfd1c6e1cec2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd0c2dfcfc0ded0c2dfd0c2df +cfc4e0d0c4e0cfc6e0d0cbdbc3c3bb94a06993ab3ca9c938aacf38a8cf389ec83a9bbc3f +a9bb7fcac8cecec0ded0c3e0d0c3e0cfc3e0cfc2dfcfc2dfcfc3e0d0c3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc2dfcdc2dfcbc0ded0cbe4cccdd7bbc1bb +aab992a6c05eadd03ab6d439c1d841bdd743afd137a7c438afbf6dc2c6b5cfcae0cdc4e0 +ccbfddcfc2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cec3e0ccc5e1cbc5e1cbc5e1ccc5e1ccc5e1 +ccc4e1cdc3e0cdc3e0cfc3e0cfc2dfd0c2dfd0c0ded1c1ded1c0ded1bfddd3c0ddd3c0dd +d4bfdcd7bcdad9bcdad5c0dccfc4e0cbc6e1cac5e1cec3e0d1bfddd2bddbd0bcdbcebcdb +cdbfddcbbfddd2bedcf4c7dcc56d8abd354ec2252bcb2626d12826d32a26d22a26d12826 +cf2826ce2926cd2926cc2826ce2926d12926d32b26d42a26d62b26da2d25dd2d25e02e25 +e12e25e22e25e02e25de2e25de2e25dd2d26de2e25df2e25df2e25de2e25de3127e13730 +e7443eec5c59ec706cef817bef8c86f1928af3938af38c7fe66b56de563cd73d2ada3125 +e03125e33025df2e25d72926cb252baf202ec4536ed788a3e1abc7debcd8d6c6e0d0cae4 +cdcde7cecce6d4c5e1d5c2ded3c1ded2c0dd +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc0decebcdb +d1bedcd6c1ddd8c1ddd7c0ddd5c0dcd3c1ded2c4e0d2c4e0cfc1d9ebd3e3ddb4beb16a74 +9a292fa62021c12525d12726cc2726d12b26bc2324c52725c32625a92021951c26a04663 +c492b3dcc6e0cbc2e0c8c4e1c9c2dfc9bddcccbddcd0c0ddd4c6e1d3cae4cdc7e1ccc5e1 +cbc4e1cbc4e1cbc4e1ccc4e1cdc3e0cdc3e0cdc3e0cdc3e0cec3dfcec3dfcfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd2c4e0 +d1c2dfd1c1ded2c2dfccbfddd0c3e0d3cae4a199b2a9a5b6c1c0c5d0cfccd5d6cfd8d7d1 +d4d3d0c3bec8afa7bbccc3dfd1c6e1cec2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd0c2dfcfc0ded0c2dfd0c2df +d0c4e0d0c4e0cfc6e0d0cbdbc4c6bb97a26b93ab3ca7c738a9cf38a7ce389dc73a98ba3e +a7b87ccac7cecec0ded0c3e0d0c3e0cfc3e0cfc2dfcfc2dfcfc3e0d0c3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc2dfccbfddc9bfded1cee3cccecab3bda0 +a2b670a4c447b2d239b8d438bfd740b9d646a9ca39a3bc4bb3c08acbcdcad0cbe4cbc0de +ccbfddcfc2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cdc3e0cac3e1cac6e2cac5e2cac5e1cac5e1 +cac5e1cac3e1cbc3e0ccc3e0ccc2dfcdc2dfcec2dfcfc2dfcfc0ded0c0ddd0bfddd0bfdd +d3bedcd9bbd9dcbad8d9bedbd2c2dfcfc4e1cec3e0d1c2dfd6bedbd6bbdad4bcdbd1bedc +d0c0deccbfddd2bfdcf5cadebf6483bd334ec5252bcb2626cd2826cd2826cb2726c92825 +c72725c52725c22725c22725c42725c82825cb2925cd2926d32a26d62b26da2d25de2e25 +e02e25dd2d25d92b26d92b26dd2d26e12e25e32f24e32f24e22e25de2e25dc2d26d92b26 +d32926ce2826ce2e2ad13e37d8534de1665fea756cf28072f49284f59484f48a7ef37166 +ef5046e83929df2f25dc2e25d72a26d32e2cad2022a62630c46678e2a2b7eabfd8d9c1dc +c9bbdaccc0ded6c1ded7c2ded6c1ded5c2de +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d2c2dfd3c2df +d1bfddd1c0ddd3c3dfd0c0ddc9badac8b8d8d1bedbe0c6dfefcce0dea7bdbd6b7ca4343b +a42020b32223c72725cf2826cb2726c52725c12824bf2824a51f2090181f9d3e5fc78eb1 +dec5dfd2c9e4c1c3e1c5c4e1cac3e1cfc3e0d3c1ded5c3dfd6c5e0d0c7e1cac3e0cbc5e2 +cbc5e2cbc5e2cbc5e2cbc5e2cbc4e1cbc4e1cdc3e0cdc3e0cec3dfcec3dfcfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0d0c2dfd0c2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd2c4e0 +d1c2dfd1c1ded2c2dfccbfddd0c3e0d3cae4a199b2aba6b6c2c0c5d0cfccd5d6cfd8d7d1 +d4d3d0c3bec8afa7bbccc3dfd1c6e1cec2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfcfc0decfc0ded0c2dfd0c2df +d0c5e1d0c4e0cfc6e0d1cddcc7c9be9aa66f95ad3ca6c638a8cf38a7ce389dc73a96b83e +a4b57bcac7cfcec0ded0c3e0d0c3e0cfc3e0cfc2dfcfc2dfcfc3e0d0c3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc2dfcbbfddcac1dfd1cedbc8ccbab0bf83 +a3be53aacc3bb5d43bb9d538bcd63bb3d342a3c248a5b86ebac3a7cecfd9d2cae4cbbedd +cfc1decfc2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cdc3e0cac3e1c9c4e1c9c4e1c9c4e1c9c4e1 +c9c4e1c9c4e1c9c4e1cac3e0cbc3e0cbc3e0ccc3e0ccc2dfcdc2dfcdc2dfcfc2dfcfc2df +d1bfddd7bcdadab9d8d9bbd9d2c1decfc4e1cfc4e1d2c1ded7bcdad8bbd9d6bcdad3c0dd +d1c1decbc2dfd3c1def5cde0be647fbd3148c32428c62525c52625c12624c02624be2724 +bc2624bb2524bb2724bc2624bd2724c12824c42725c82725cc2726d32a26d62b26da2d25 +db2d26d62b26cd2826c82725c82625cc2726ce2826d22826d72b26dc2d26dd2e26e03129 +dd2d26d52926cd2726cb2626c92625cb2626cf2726d72b26e93624ef432ff1584df3746e +f48e8af59792f4877eef6355dd3a26c52625d63126cb2c26b12223ab2a36c5647deaa8c7 +f2cde0e8cbe1dabcdad9bedbd9bfdcd7c1dd +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d3c3dfd6c5e0 +d0bfdcc9beddcac2e0c9c2e0c9c0ded0c0ddddc3ddebbfd8e3a1c1ba58759e1e2aac1f22 +c12725ca2826c82625c82625c82725bb2424ba2a249d1e1f8d171da64a6bcd91b7ddbeda +d4c5e1c4c0dfc7c8e4c9c9e4cfc7e2d3c5e1d3c4e0d3c2dfd2c3dfd1c3e0d0c6e2cbc4e1 +cbc5e2cbc5e2cbc5e2cbc5e2cbc4e1cbc4e1cdc3e0cdc3e0cec3dfcec3dfcfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0d0c2dfd0c2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd1c3df +d0c0ded0c0ddd2c3dfccbfddd1c4e0d4cbe4a29bb4aca7b8c3c1c6d0cfccd5d6cfd8d7d1 +d4d3d0c3bec8afa7bbccc3dfd1c6e1cec2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfcfc0decfc0ded0c2dfd0c2df +d0c5e1d0c4e0cfc6e0d0ceddc8cac19aa67094ac3ca4c439a6cc38a6ce389dc73a95b73e +a3b47acac7cfcec0ded0c3e0d0c3e0cfc3e0cfc2dfcfc2dfcfc3e0d0c3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cdc2dfcec7e1cdcad0bfc7a7b0c36c +acca3fb3d33abad539b9d539b4d337aace3aa3be60aebc96c1c7c5cfcce1cfc6e1cbbedd +cfc2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cec3dfcbc3e0cac3e0cac2e0cbc2e0cbc3e0 +cbc3e0cbc3e0cbc3e0cbc3e0cbc3e0cbc3e0ccc3e0cdc2dfcdc3e0cdc3e0cdc3e0cdc3e0 +d0c0ded4bddbd7bbd9d4bddbcfc4e0cac5e1cbc6e2d1c3e0d7bedbd9bbd9d5bddbd2bfdc +cec3dfc7c5e2cec5e0efcaddc27082b92f3fbc2324bf2424bd2324bb2424bb2424b92423 +b82423b92423b92423ba2423bc2424bf2524c12624c22425c52625c92725cc2726cf2826 +ce2826cd2926ce2b26c92925c72825c42625c42425c52625c52625c62625c82625c82625 +cc2726d22a26d62a26d92b26dd2d26dd2d26de2e25dd2d26d62b26e02f25dd3225d62f26 +ce2f26d33c2be55844f37663f48c7af6a292f27160e1402dca2826b82323b22733b83e58 +cc698be199bbe3b7d3dfc0dadec3deddc4de +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d1c1ded2c1de +d1c1dec8c1dfc2c2e1c7c8e4cfcbe5d6c7e1d9b8d7d598bdba5880ae274aac1e22bd2224 +ce2826d32c26cc2826c72725c12624b52223a62121971f26a85067cc92b3debedad7c4df +cbbddccdc4e1ccc4e1ccc4e1cdc4e0cec4e0cfc3e0cfc1ded0c0ded2c2dfd3c4e0cbc4e1 +cac5e1cbc5e2cbc5e2cbc5e2cbc5e2cbc5e2cbc4e1cdc3e0cec3dfcec3dfcfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0d0c2dfd0c2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd1c2df +cfc0decfc0ded2c3dfcdbfded3c5e1d5cce5a49db6aeaabac4c2c8d0cfccd5d6cfd8d7d1 +d4d3d0c3bec8afa7bbccc3dfd1c6e1cec2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfcfc0decfc0ded0c2dfd0c2df +d0c5e1d0c5e1cfc6dfd1cddbc6c8bd98a46d91a93b9fc03aa2ca39a5ce399ec73a97b840 +a3b57ccac7cfcec0ded0c3e0d0c3e0cfc3e0cfc2dfcfc2dfcfc3e0d0c3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cec3e0d0c8dec3c3c3b1bb91acc355 +b0d039b8d439bbd638bad538acd0379ec73aa5bd74b9c5b6c8cbdacbcae3cbc3e0cec0de +d0c2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc2dfd0c2dfd0c0ded0c0ded0c2df +d0c2dfcfc2dfcfc2dfcfc3e0cfc3e0cfc4e0cec3e0cec3e0cec3e0cec3e0cec4e0cec3e0 +d0c2dfd1bfddd2bddbcfc1dec6c6e3c0cae4c2cbe3cac8e3d3c2dfd5bfdcd2bedccdc0de +c8c5e2c2cbe6c7c8e1e4c8d6c7818ab33139b42123ba2323ba2323b92323ba2323bc2324 +bd2324c02424c02424c12424c12424c12424c12424c02424bc2324bc2324bc2324bc2324 +bc2324bd2324bf2424c22425c52625c52725c72725c72725c52725c42625c42625c72725 +c92825cc2826ce2826cf2826d32a26d32a26d22a26ce2826cb2825cb2726cd2726c92825 +c72725c72725cb2926d43326d93d29c73127e04737ee635eee7271eb6c6ee15056cf3238 +c52931ba394bcc8ba7caa3c2d4b8d6dec4de +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc0decfbddc +d4c5e1cdc6e2c1bfdfc9c6e3d6cce5d8bedbcd98b9bb6286a72546b72230c52425d22826 +d42a26cc2726c22425bb2424b42623a01e20941c28ab556dce95afdcb9d7d7c3dfcfc1de +cdc2dfcfc4e1cfc3e0cfc3e0cdc3e0ccc3e0cdc4e0ccc3e0cec0ded1c0ddd1c1decdc3e0 +cbc5e2cac3e1cbc4e1cbc4e1cbc4e1cbc4e1cbc4e1cdc3e0cec3dfcec3dfcfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2df +cfc0decfc0ded2c4e0cdbfded2c7e2d7cde6a79eb8b1acbbc5c3c6ced0ccd2d6d1d4d8d3 +d2d5d3c3bdc9b0a6baccc3dfd0c6e2cdc2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc2dfcfc0decfc0ded0c2dfd0c2dfd0c3e0 +d0c5e1d0c5e1cfc6e1d0cbdac4c6bb94a06b8ca63b9bba3b9fc83aa5cc399fc83a99ba40 +a5b67ac9c7cfcdc0decfc4e0d0c3e0cfc4e0cfc3e0cfc2dfcfc3e0d0c3e0d0c2dfcfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cec3e0cdc6e0cecbd4b8bca9a3b26da6c23b +b2d236bad537bbd638bad53ba8cf389abf3ba9bc89c1cacecbcce4cac5e1c9c0dfcec3df +d1c4e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd1c1ded2c0ddd2c0ddd2c0ddd2c0dd +d1c1ded1c1ded1c2dfd1c2dfd0c2dfd0c2dfcfc4e0cfc4e0d0c4e0cfc4e1cfc4e1cfc4e1 +cfc3e0d1c0ded0bfddccc3e0c3c7e4bfcae5bfcbe4c6c8e2cfc4e0d1c1decfc1decac3e0 +c7c9e5c5cee8c9cae1dfc5d1cb8e98aa363daa2021b12122b42122b52123b72323b82323 +bb2324bc2324be2424be2424be2424bc2324ba2323b72323b32122b12122ae2122ab2021 +ad2322b12222b72323bc2324bc2324bb2324ba2323b92323b92323b82323b82323b82323 +ba2323bc2424bf2424c22425c42425c52625c52625c12624bc2324b52223ba2323c12624 +c72825c82825c52725c42625c42725be2624c12b25c6352fc83e3bd0413fd73e3ddd3d3b +e34442d9535b9a4b68a17494bd9abcd7b8d7 +cec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2df +cec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2df +cec2dfcec2dfcec2dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec2dfcec2dfcec2df +cec2dfcdc2dfcdc0decec3dfcfc4e0cfc4e0cfc3e0cec3dfcec3dfcfc3e0cfc1decebedd +d1c3dfcec4e0cabfddd2c0ddd6b8d4cd97b1b66078a52c3db32227c22325d22826d92b26 +d12826c52725bb2524ad25229c221f892032ad6c89ce9ebdd8b6d5d6c0ddd1c1decfc2df +cfc3e0cfc4e0d0c2dfcfc2dfcec2dfcdc3e0ccc3e0cdc2dfcec0ded0c0ddd0c0decdc2df +cbc3e0cbc3e0ccc3e0ccc3e0ccc3e0ccc3e0ccc3e0cdc2dfcdc2dfcdc2dfcec2dfcec2df +cec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2df +cec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec3dfcdc2df +cfc4e0cfc4e1cec3dfcabfded1c7e2d7cce5b0a4bcb5abb6c2c0c2c9d2cccbdad3ccdcda +cbd4d7c8c0ccb7a9becbc0deccc4e1cac1dfcdc2dfcec2dfcec2dfcec2dfcec2dfcec2df +cec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2df +cec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2df +cec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2df +cec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2df +cec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2df +cec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2df +cec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2df +cec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2df +cec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcfc1decfc0decfc1decfc2dfcfc3e0d0c4e0 +d0c4e0cfc4e0cdc6e0cecbdac3c6bc99a675879f3b98b63ba1c73aa1c9399dc63b96ba3d +a0b574c6c7cecec3dfcec4e0cec3dfcfc4e0d0c4e0cfc2dfcfc2dfd0c2dfcfbfddcfc1de +cfc2dfcfc2dfcec2dfcdc2dfcdc2dfccc3e0cbc4e0cac8dacacfc2a8b67da0b84badcf39 +b9d537bad537b8d53ab6d4409ac23ba5c15eb9c7acc8cce0cac7e3c8c1dfc9c0dfcfc4e1 +d1c6e1cec3dfcec3dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2df +cec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcfc2dfd0c0ded1c1ded1c1ded1c1ded1c1de +d1c1ded1c1ded0c0ded0c2dfcfc2dfcfc2dfcfc3e0cfc3e0cfc3e0cfc3e0d0c4e0cfc3e0 +cfc3e0d0c0ddd0c0ddccc1dfc9c5e2c6c7e3c6c7e3c9c6e2ccc4e1cdc2dfcbc2e0c8c3e0 +cac7e3cdcde6ccc4dce2c3d6d099aaa03f539b1d29a41e21a81f21ab1f21ad2021ad2021 +ae2022af2022b02122af2022b02122b12122ab1f21aa1f21aa2021a41e20a11f20a11f20 +a21f20a61f20ab1f21af2022ae2022ab1f21aa1f21aa1f21aa1f21ab2021ab2021aa2021 +aa2021ab2021ab2021ad2121ad2021ad2021ae2122ab2021a82021a61f20aa2021b02322 +b32323b32323b12222ad2121aa2021a92221a72121a52121a62221a92424b12729bb2c2f +c6383bbf4551853353814c72986d90b088aa +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcec3e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfccc1decbc0decdc2dfcfc4e1cfc4e0cdc2dfcbc0decdc2dfcdc2dfcfc3e0cdc0de +cbbddcd0c3e0d9c7e1d8b9d8c693adb06075a2303aa62121c02525d32b26d72b26cf2826 +c82625be2524af24229b211f88222d965d7cccb3d4e0cae2d2c0ddcfbfddcfc2dfcfc3e0 +cdbfddd1c4e0cfc2dfcfc2dfcfc2dfcec2dfcec3dfcec2dfcfc2dfcfc1decfc1decdc2df +ccc2dfccc3e0ccc3e0ccc3e0ccc3e0ccc3e0ccc3e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfccc3e0c9c0df +cbc4e1d0c7e2ccc3e0c9c0ddd0c7e3d4c9e3b5a3bab7a7b2c3bfbec8d1cac5d8d3c5dbdd +c4d1dbccbecbbaa4bbc8bcdac9c3e0c9c2e0ccc3e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc0decec0decec0decfc2dfd0c3e0d0c4df +cfc4e0cec3e0ccc5e1cecadcc5c7bfa0ac7f81993a97b33ba1c53a9ec63a9bc43b95ba3c +9db26ac1c3caccc3e0cfc5e1ccc3e0d0c5e1d0c4dfcfc1ded0c1ded1c3dfcfbfddcebedd +cfc1decfc2dfcec0decbc0dec9c0dfcac3e0cbc7e0c6cbcebccaa6a1b75aa6c53ab5d33a +bcd637b9d537b5d43baed03f99b746b2c68bc8cfc8cacce4c8c3e0c8bfdeccc2dfd0c7e1 +d0c7e1cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcec2dfcfc1decfc1decfc1decfc1decfc1de +cfc1decfc1decfc1decfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc3e0cfc2df +cfc2dfd0c0ded0c0ddcfc1decec2dfccc3e0ccc3e0cac3e0cac3e0c9c3e0c9c4e1c9c4e1 +cac3e1d3c8e2cdbbd7e8c6dcd9a6c09b4d6e871f3b8f19219a1c1fa01d1f9f1d1f9d1d1f +9d1d1f9d1d1f9b1d1f9b1c1e9b1c1f9b1d1f961b1d961b1d981c1e951a1d921a1c921a1c +931a1d951c1d971b1e9a1c1e991c1e961b1d951b1d931a1c931a1c941b1d941b1d941b1d +941c1d951c1d931c1d91191c8f181b8f181b91181c931a1c931c1d961d1e9a201f9d2320 +a02622a22925a028279f2a299d292ba03137a43b42aa424dae4957b14c5bb65160ba5666 +c15f70be697fb27595a9799cad80a4bb8fb3 +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcec3e0cec4e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfccc1deccc1decdc2dfcfc4e0cdc2dfcbc0decbc0decbc0deccc1deccc2dfcbc0de +c3b8dad0c3e0ddcae2cdaccaaa7188923848992225af2522bb2424da3226d42a26c22425 +bd2324b022229b1f1f8d1c20924559c09fc0d6cae4d9cde5cfc3e0cfc2dfd0c3e0cdbfde +c9bddcd3c5e1cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfccc3e0c7bedd +c8c0decec5e1cdc4e0ccc5e1cfc7e2d4c7e2b49db4bea6aecec1bed0d1c8cbd4cec9d6da +cdd2dbd0b8c5b699b0c6b8d7ccc6e2cbc5e2cbc2e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc0decec0decec0decfc3e0d0c4dfd0c4df +cec4e0cdc2dfccc4e0cdcaddc7c8c3a3ae8583983993b03c9fc33a9fc53a9cc43b93b93d +9bb162bdc0c2cac3e0cfc5e0ccc3e0d0c5e1d1c3dfd0c1ded0c1ded2c4e0d1c1decebedc +cebeddcfc2dfcec2dfc9bfdec8bfdecbc6e1cdcfdfc2cbbea8bc7fa2bf4cadcd3bb3d337 +b7d437b7d438b1d13ba3c33ca4b96eb9c6a9c7ced5cacae4c9c3e0c9c0dfcdc2dfd0c5e0 +cfc4dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc1decfc1decfc1ded0c0ddcfc1decfc1decdc2dfcac2e0c9c3e0ccc6e2ccc5e2 +cbc2e0d3c4e0ceb7d6e8c6dee6b9d4a6688b7b264876102484151a891619891619871618 +8615188515178415178414178114167f14157f14157b12147d121581141a7e14177a1114 +7c131680161980161981171982181b821a1c831d1e83202285232887262b882931892a37 +8f323f953b4a963d4e953d4f943f509844559c4a5ba25161a45363a95866ac5d6daf6474 +b46979b76e7eb77182b77386b77489bc7c93c1839bc78ca5ce95add39bb5d9a2bddeaac6 +e6b3cfeabad4e8c2dbe5c0dae4c0dbe9c7de +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcec3e0cec4e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcec3dfcec3dfccc1decabfdecbc0decbc0decbc2dfcbc2e0c9c2df +c5beddc4bddcc0b2d1b399b3a376889a545ea03d40ae322fb52623c22725c12424bd2324 +b122229d1e1f931f20a24755c3889ddcc1dcd7cbe4cfc3e0c9bddccfc2dfd1c4e0ccbfdd +c9bddcd3c5e1cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcbbfdd +ccc0ded0c5e1cfc7e2cfc8e3cec8e3d7cbe4b79bb2c9a8b1dcc2c1dfcfc9dbd3cedbd3d9 +e2d4dfd9b5c0b993a9cbb8d6d1cae4cdc7e3cbc2e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc0decec0decfc1decfc3e0d0c4dfd0c3e0 +cfc3e0cdc2dfcbc3e0cdc9dec9c9c7a9b28d84983e8eab3c9cbf3b9dc43b9bc43b93b93d +9bb058b8bcb5c9c3dfcfc5e0ccc3e0cfc4e0d0c3e0d0c2dfd0c1ded3c4e0d2c3dfcdbddc +ccbddccfc0decec2dfcabfdec9c0deccc6e1cdcfd2b8c4a098b15aa8c649b3d342b3d338 +b4d336b4d337acce3a9cb947aec193bfc9c3c8cbddcac8e3cac6e1cbc4e0cfc5e0cfc3e0 +cdbfddcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc3e0cfc2dfcfc1decfc1decfc1decfc1decdc2dfcbc2dfcdc4e1cbc4e1 +cbc2dfd4c5e1cdb9d8e2c3ddecc7ddc08aad914d70711d39680f1b6c10176e111b70121f +741627751a2a771e2d78202f7821327825367e2e3e7728387729398338477f3444772d3a +782f3e803b4d81425584495c8c5166915a6f986278a06b80a67489ac7c91ad8095af839a +b88ea4c69cb4cca3bdd1a9c4d7b1cbe0bcd4eac8ddf0cfe2eed0e4eed0e4edd0e3ecd1e4 +ebd0e4e9cfe3e6cee3e3cbe2e1cae2decae2dfcce3decbe3dbcae3d8c7e1d4c4e0d1c1de +d2c2dfd5c3dfe0c5dfdebfdbddbedadfc1dc +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcec3e0cec4e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcec3dfcec3dfcdc2dfccc1decbc0deccc1decdc2dfcdc3e0cfc6e1d1c9e4 +d1cae4c4c0dbb8b1c7c3b3c4dbbfcaefc0c4f2aeafe38887bd453da31e20ad2222b72c2a +a02020911a1fa54857d492a3efc4d9d5bddbcdbfdec5b9dac5b9dacfc2dfd3c5e1cec0de +cabddcd1c4e0cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcfc2dfd1c3e0 +d2c4e0cfc3e0ccc4dfcec8e2cbc6e3dccde5b795aecca1ace0b8b7e9c4bdeccbc7eccdd3 +efccd6dca8b4bf8ea2d4bfd8d3cce5cbc6e3cbc2e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcec0decec0decfc1decfc3e0d0c3e0cfc3e0 +cfc2dfcec2dfcbc2e0cec8e0cbcbccb0b99a87994688a53c98ba3b9dc33b9ac33b93b93d +97af4cb1b7a1c5c1d5d0c7e2cdc3e0cfc3e0d0c2dfd0c1ded0c1ded2c3dfd0c0ded0c0dd +cdbeddcdbfddcec0decfc4e0cec6e1cbc6d8c1c5b7a5b87492af3fadce45b7d542b3d338 +b3d336afd139a5c43ea5bb66bec9b6c5cad9cacae2cbc7e1cac4dccdc6dcd0c5e0cfc0de +cabcdbcfc1decdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cdc2dfccc3e0ccc3e0cdc2dfcfc2dfcfc1decfc1decfc1decfc1decdc2dfcbc2e0c9c0df +ccc2dfd7cbe4d2c0ddd7b9d8e7c8dfdbb0d0c290af965d7b71344e783d53814b608f5a70 +9e6b80a9798db28498b88b9ebc90a4c198abcda6b9caa4b8d2aec0e8c5d7eccadae7c6d6 +edccddf4d8e8f2dbeaf1dceaefd9e9ecd5e7e5cfe4e0cbe3dfcae2dccae2dccae2e0cde4 +e1cfe5e0d0e6ddcce4d6c6e1d3c3dfd0c1ded1c3dfd2c4e0d1c3dfd2c4e0d1c3e0d0c3e0 +cfc4e0cfc3e0ccc1dfcbc0dec9c0dec6bfdec8c1dfc9c3e0cac5e1c9c4e1c9c4e1c9c5e2 +cbc7e3d2c9e4d4c0ddd5bcdad5bcdad6bedb +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcec3e0cec4e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfccc1decdc2dfcec3dfcfc4e0d0c5e1d0c5e1ccc5e1c2bed9 +b5b5ccacafc1b7b7c6c7c2ccd7c9cceaccccf8cfcef4c0bdcf7976a8383499201f961e22 +902331aa5669d598acf1c4d9e3c5decfbcdbd1c4e0d1c4e0cec0decfc2dfcfc3e0cec0de +cbbeddcbbeddcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcfc1ded2c3df +d2c0ddccbcdcc9bedacac4dfc6c2e0ddcde5a67b93b27480dc9e9ef8bfbafac6c3f6bcc2 +ecacb7cd828eb67585d3b6cdc9c1dcc2bcdccbc2e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcec2dfcfc1decfc1decfc2dfcfc3e0cfc2df +cfc1decdc0deccc3e0cec7e2cdcad2bbbfa88d9d57829d3c93b33c99bf3b99c23b94ba3c +96af3fa7af85c4c2c4d0c8e0cdc3e0cfc1decfc0decfc0ded0c0ded1c2dfcebfddd3c3df +d0c0decabcdbcdbfddd4c9e3d4cce0c6c4bfabb68996b0489ec33ab5d444b3d33db2d238 +afd13aa6c93c9db756b7c79ac5cdd5c9c8e3cac7e2cbc6e0ccc6dacfc6d8d1c3decebedc +cbbadacfc1decdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cdc2dfcac3e0c9c4e1cac3e1cdc3e0cfc2dfd0c0ddd0c0ddcfc0decfc1decec2dfcabedd +c9beddd6c9e3d5c6e1cdb6d7dbc1dce4c5dee1c0dbe3c8e0ecd5e7ead5e8e8d4e7e6d2e6 +e3cfe4e1cee4e0cee4dccce4dbcbe3dccde4e3d6ead8cbe4d4c7e1e0d3e8d7cbe4cabed9 +c9bedad0c3e0c9bbdbcabcdccbbeddccbfddcbc0deccc1decec3e0d0c6e2d0c7e2c7bedd +c5bedec5beddc6bfdec8c2e0c9c4e1cac5e1cac5e1cbc2e0cabadacebbdacebbdacfbcdb +cfbedcd1c0ddd2c1ded1c2ded1c1ded1c2dfd1c2dfd0c2dfcec0decbbddcc7bbdbc5b9da +c4b8d9c6b8dacfbddccebcdbcfbddbd0bfdc +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcec3e0cec3e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfccc1deccc1deccc1decec3dfcfc4e0cfc4e1cfc4e1cec4e0cbc4dfc8c4d9 +bcbbc9b7bcc6c4cbd5d0d2d8d6d0d2dccbcae8cac9f1c4c4dd9ea1a75557751316832231 +af6479d69fb5e8bed6dfc1dbd1bbd9cdbeddd3c6e1d6c9e3cfc3e0cabddccabddccec0de +cfc3e0cdbfdecfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcfc1ded2c0dd +d2bddbcfbddbccc3ddcecae4c8c5e2e1d0e697607993414f9a3938a54138b24e4aad484f +aa44509c2e3b9e4c5bd7b5cbd6cde4cac5e1cbc2e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcec2dfcfc1decfc2dfcfc2dfcfc2dfcfc1de +cec0decdbfdeccc2dfcdc6e1ccc9d7c2c5b594a0667e983b8faf3d96ba3c97bf3c94ba3c +95af3b9fab6cbfbfb2d0cbdccdc3e0cec0decfc0decfbfddcfc0ded0c1deccbddcd2c4e0 +d0c0decbbddccbc0ded1c9dfcfcbcabbbe9ea2b16399b83baed03ab7d43eb0d239add039 +a9cb3b9fbb4aa1b477c3ccbdcacce4cac7e3cac5e1cbc4dfcdc5dbd0c5dad1c2dfcebddc +cbbbdbcfc1decdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cdc2dfc9c4e1c9c5e1cac5e1cbc3e0cfc2dfd0c0ddd1c0ddd0bfdccfbfddd2c4e0cdc0de +c4b9dacdc2dfd5c7e2cfbddbd2bedcdbc3dedac3ded4c1ddd0c0decec3dfd0c3e0d0c3e0 +d0c4e0d0c6e1d2c7e2d1c8e3ccc4e0c5beddcac5e1c6c1dfc8c3e0d0cde6cecbe5c7c3e1 +cac5e2d0c9e3cdc2dfcfc2dfcec3dfcec2dfccc1decbc0decbc2dfccc3e0cec5e1cdc5e1 +c9c2e0c6bfdec7c0dec8c3e0c9c4e1c8c2e0c6c0dfc7beddd2c2dfd4c1ddd3c0ddd1bedc +d1bddbcfbcdbcebcdbcebbdaccbadacdbbdacebcdbcfbddccebddccfbedcd0c0ddd1c0de +d2c3dfd3c4e0d1c2dfd2c3dfd2c3dfd3c5e1 +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcec3e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfccc1decbc0deccc1decdc2dfcfc4e1cec3e0cbc0decac0ddc4bbd4bab6c3 +bbbbc1bcc1c8c4cbcfcfd7dad9dedfdfd9d8e0cfcddfc1c1daafb1985c64742b3a9f6074 +d09fb7e6c0d8dfc4ded1bedccebfddcdbfddcec0decfc3e0cdbfdec9bddccbbeddcfc3e0 +d3c5e1cec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcfc1ded2bfdc +d5bedcd3c0ddd1c7e1d1cce5c7c5e1e6d3e792526c89212e9a221faa2c24b3302baa262b +aa2730981b1f993642d5adbfd5cae3c8c4e1cbc3e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcec2dfcec2dfcfc2dfcfc1decec0de +cec0decdbfdeccc2dfcbc3e0ccc8dbcacbc199a4757c92398ba93d94b63d97bd3c96bb3c +95b13c9aa852bdbf9ed0cdd5cdc4e0ccbfddccbfddcdbeddcfbfddcfc1ded0c0decfc1de +cfc0decdc0deccc4ddcac6c9bfc1a5b0b976a3b845a4c839b4d338b4d336aed137a7cb39 +9ebd449fb56bb1bea4c7ced7cac8e3cac5e2cac3e0ccc3e0cec3e0d0c1ded0c0ded0bfdc +cfbedccfc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cdc3e0cac5e1c7c7e2c9c6e2cbc3e0cfc2dfd0bfddd1bedcd0bddcd0bfdcd2c3dfd0c2df +c7bcdcc9beddd1c6e2cfc2dfcfbfddd2c0ddd0bedccfbfddcfc2dfcfc3e0cfc2dfcec2df +cec0deccc1deccc1decbc2dfcbc2e0cdc4e0cdc5e1c9c2e0c9c4e1ccc5e2c8c2e0c4bfde +c6bfdeccc1decebedcd1bfddd2bfddd1bfddcfbedccfbfddcfbfddd0c0ded1c3dfd0c2df +cec0deccbfddcdc0decfc3e0cfc4e0cfc4e0cfc3e0cec0decfbedcd0bedcd0bedcd1bedc +d2bfddd2c1ded2c2dfd2c2dfd3c3dfd2c0ddd1c0ded1c0ddd1bfddd1bfddd1bfddd1bfdd +d0bfdccfbedccec0decdbfdecec0decec2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcec3e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfccc1deccc1decbc0decdc2dfcec3e0ccc3e0c8bedcc3bad7c0b8cdbeb9c1 +c5c4c3cbcfcfccd4d5ced7d9d1d9dad2d4d5d0c9cbcebdc0cbaeb39166749b6d7fc89fb7 +d9b7d4d9c0dcd5c3dfd2c5e1cbc2dfd1c6e1c9bddccabddccfc2dfcfc3e0cfc3e0d1c4e0 +d0c3e0cabddccfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfd0c0ddd4bddb +d5bcdad5c0ddd1c7e1cdcae3c1bfdee9d4e7944d678d1922a12020b42623bc2724b32323 +bc282ca61f219e2f3cd8abbed7cce3c9c6e2cbc3e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcfc2dfcfc1decec0de +cec0decdbfdeccc0decbc2dfcbc7dccececb9da6827d8e3b89a33c91b13d95b93c97bb3c +95b23c94a63fb9c08bcfcfcbccc6e1ccc0decbbeddcbbeddcdbfddcfc2dfd2c5e1cbbfdd +cbc0ded0c7e2cec9d1bec0acaeb77ba9b74fa8c138afd036b0d237add037add038a3c33c +9ab156a3b38bc1cacccacce4cac6e2c9c3e0cac2e0cdc2dfcec0decfbfddcfbfddd0bfdd +d2c1decfc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +ccc3e0c9c6e2c6c6e2c8c5e2cac3e0cfc2dfd1c0ddd2bfdcd2bedcd1bedcd1c0ddd0c2df +ccc0dec9c0decec5e1cdc3e0cabfddcfc2dfcfc0decfbfddcfc0decfc0ded0bfddcfc0de +cfc0decec0decec0decdc0decec3dfcfc4e0cabfddcbc0decdc4e0cbc2dfc9bfdec9c0de +cbc0decfc0ded2bfddd5c0dcd5c0dcd4bfdcd1bedcd0bedcd1bfddd2c0ddd2c0ddd0bfdd +d0c0ddd1c1ded0c0ddcfbfddcfbfddcfbfddcfc0decfc1ded0c1ded0c1ded0c1ded0c1de +d0c2dfd0c2dfd0c2dfd1c3dfd1c3dfd2c3dfd1c2ded0c1ddd0c1ddd1c2ded2c2ded2c2de +d1c1ddd0c0decec2dfcec3dfcdc2dfcbc0de +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfccc2dfcdc2dfcdc2dfcec3e0cec3e0cdc2dfcdc2dfcdc2df +cdc2dfcec3dfcdc2dfcbc0decbc0ded0c5e0cfc4e1cac0dec3b9d7beb4d0c0b8c8cfc6c7 +d5cfcad8dad8d3d9d8cdd7d8c9d2d6c4c9cfbdbdc4b8b0b9b5a4b0a88d9ec1a4bad9bfda +d6bfdccfbddbcec2dfd0c7e3cac3e1d0c5e1cbbeddcbbeddcfc2dfd0c3e0d0c3e0d0c3e0 +cfc2dfcbbeddcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfd0c0ddd3bcdb +d5bbdad3bfdccfc4dfcbc7e1c2c0dfe8d2e5a2566f9a1f28ad2022bd2424c22625c32525 +c42626b12123a5323ddbabbdd8cce3cac7e2cbc3e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcec2dfcdc0decec0de +cebfddccbeddccbfddcbc0deccc4ddcfced3b8bea77d8b4a849c3b90ad3c93b43d95b93c +97b43c92a73aa8b46cc7c8b8cecadfcbc2dfcbbfddcdc1decec0decdc0ded1c5e0cbc3dd +ccc3ddcdc8d5c5c3b5b2ba87a7b558a8bd38accb37b2d234aed137a7ce38a3c7399db94b +a2b57bb8c1b4cccee2c6c3e1c9c4e1cac2e0ccc2dfcdbfdecebfddcdbddccfbfddd1c1de +d3c3dfcfc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cbc3e0c9c6e2c6c6e2c7c6e2cac3e0cfc2dfd1c0ddd2bfdcd2bddbd1bedcd0bfdccfc0de +cdc2dfcac1dfcbc4e1cac3e0c9c2dfccc3e0cec3dfcfc0decfbedcd0bfdcd1bedcd1c0dd +d1c0ddd0c0ddd0c0ddd0c0ddd1c1ded0c0ddccbddccdbeddcfc1dfcfbfddcfbfddcec0de +cfc2dfd1c2dfd2c2dfd3c2dfd3c2dfd3c1ded2c1ded1c0ded1c1ded2c2dfd1c1decfc0de +cfc1ded0c2dfcfc2dfcec0deccbfddccbfddcdbfdeccc2dfcdc4e0ccc5e1cac3e1cbc4e0 +cbc4e0cac3e0cac3e0cbc3e0cbc3dfcdc4e0ccc4e0cdc4e0cdc4e0cec4e0cfc4e0d0c5e0 +d0c5e0cfc4e0cfc4e0cec3e0cec3dfccc1de +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcbc0deccc1dfcdc2dfd0c5e1cfc4e1ccc2dfcbc0deccc1de +cdc2dfcec3dfccc1decbc0decdc3e0d0c6e1cdc3dfc4bcd8bfb7d2bdb6cdc8becbd9cfce +ddd5cedcdad6d3d7d7cbd2d6c5cbd3bbc0caafb1bca8a3b3b0a6b7c5b5cbd4c2dbd6c4df +d1c1decdbfdecac1dfc9c3e0c9c4e1ccc3e0cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfd0c0ddd3bcdb +d4bcdad2bedcccc4dfcac7e2cac7e3e7cde3b05f79a4242db52323c52625cb2726cf2726 +c62525b62223ab353ddcabbcd8cbe3cac7e2cbc3e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfccc0decec0de +cdbfddcdbfddcdbfdecdc2dfcdc4e0d1cddad2d4ca848e5f7e93398ba63c8eaf3d92b53d +96b63c90aa3c96a747b5bb9dccccd7cac3e0cabfdeccc2dfccc2dfcac1dfcec6dfd0cbdc +cdcad4c0c0b7b1b78fa9b465a7ba3ea9c638add037b0d136add037a2c63997b63c9fb267 +b5c1a6c8ced5cccbe5c4bfdecbc3e0ccc3e0ccc0decdbfddcdbeddcdbddccfbfddd2c2de +d0c4ddd0c3e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +ccc3e0c9c5e1c6c6e2c8c5e2cac3e0cfc2dfd1c0ddd2bfdcd2bedcd2bedcd0bfdccec0de +ccc2dfc9c2e0c9c3e0c8c3e0c9c3e0c9c3e0ccc3e0cfc1ded2c0ddd3c0ddd4bfdcd3c0dd +d2bfddd2bfddd2bfddd2bfddd2bfddd2bfddd1c0ddd1c0ddd1c0ddd1c0ddd1c0ddd0bfdd +d0c0ddd0c0ded0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0cfc4e0cfc4e0cfc4e0cfc3e0 +cec3e0cdc4e0cdc4e0cdc4e0ccc3e0ccc3e0cbc3e0c9c4e1c8c3e1c7c6e3c7c6e3c7c6e3 +c8c5e2c8c5e2c9c5e2cac5e2cac5e2cac5e2cac5e1cac5e1cac5e1c9c4e1cac3e1cac3e1 +cac3e1cac3e1cec3dfcec2dfcfc2dfcec2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfccc2dfccc2dfcec3dfcfc4e0cec3dfcbc0decabfddcbc0de +ccc2dfcbc0decbc0decec3e0d0c7e1ccc3dec3bbd4bdb5ccc0b8cecbc3d5d7ced6e0d3d1 +dcd3ccd8d2d0d2d1d5c6cad2b8bec9adb1bfa5a6b9aca8bcc3bbd2ccc1dbd4c6e0d2c4e0 +cfc3e0ccc2dfc9c2e0c7c1dfc6c0dfccc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcfc0ded2bddb +d3bcdbd2bfddcbc4dfcac7e2cac5e1e7cce2b25d78a8252db92223cb2726d12826d52926 +c92625b92223ad333ddeabbdd8cbe3cac6e2cbc3e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcec3e0cdc2dfcdc2dfccc0decec0de +cebfddcec0decec0decec2dfcfc5e0d4cfe4d1d0d1929a7a7a8a43839b3b8aa83d8eb03e +92b23c92b03c8aa43ba3ae7fc1c5c1cac6e0c9c3e0c9c3e0c9c4e1c9c5dccccad4d0d0ce +c5c6baadb492a1ac6aa2b54caac438accc37a8cd38afd136a0c83a96b63c9db15aabb892 +bdc4c4cbcae0ccc8e3c9c2e0ccc3e0cdc2dfcec0deccbeddccbeddcebeddd0c0ddd1c3de +cfc5ded0c3e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cdc2dfc9c4e1c7c6e3c9c5e2cbc3e0cfc2dfd1c0ddd1bedcd2bedcd0bfdcd0bfddcec0de +cbc2dfc9c2e0c8c3e0c7c3e1c9c3e0c9c3e0cbc2e0cfc1ded1c0ded3c0ddd3c0ddd3c0dd +d1c1ded1c1ded1c0ded1c0ded1c0ded1c0ded1c1ded1c1ded1c1ded1c1ded1c1ded0c0dd +d0c0decfc2dfcec3dfcdc3e0cdc3e0cdc3e0cdc3e0cdc3e0ccc3e0ccc4e1ccc3e0ccc3e0 +ccc3e0cac3e0cac3e1cac3e1cac3e1cac3e1cac3e1c9c4e1c8c3e1c8c3e1c8c3e1c8c3e1 +c8c3e0c8c3e0c9c4e1c9c3e0c9c3e0c9c3e0c9c3e0cac3e0cac3e0cac3e0cac3e0cbc3e0 +cbc2e0cbc2e0cfc3e0cfc3e0cfc2dfcfc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcec3dfcec3dfccc1decabfddc9beddcabfde +ccc2dfcec3e0cec5e1cdc4dfcac1dbc4bdd3bdb5c9bdb5c7c6becfd4cddbe1d6dde0d3d2 +dacfcad7cfcececad2bdbdc8aaabbca1a3b8a8a7bfbab6d1d2c9e3d3cae3d1c6e1cfc3e0 +cdc2dfccc3e0cbc4e1c9c2dfc5bedeccc3e0cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcfc0ded1bedc +d2bddbcfbedccbc4e0cac7e2c9c3e0e7cae0b55c79a9242cbc2324cd2826d42a26d62b26 +cb2626bb2224ae333edeabc0d7cbe4cac5e1cbc2e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc3e0cdc4e0ccc3e0cdc2dfccc0decec0de +cec0decec0decec0decec0ded0c5e0d5cee5cdcad8a8ab9e7b88537b8f39849f3c8caa3d +91b23d95b63c83a23d92a460b5bfa8c7cad1cbcbe1cccbe3cecedececed0c4c6bbc1c5a9 +afb88f9caa6c99ab4ba1b73da9c738adcf37a9ce38a8ce3896b73c95ab49a3b286bbbfbc +c7c8ddcbc8e2ccc7e1cec6e1cdc2dfcec0decdbfddccbeddcdbfdecec0decfc1ded0c3e0 +d0c4dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cdc2dfc9c4e1c8c5e2c9c4e1cbc2e0cfc2dfd1c0ddd2bfddd0bfdcd0bfddcfc1decdc2df +c9c2e0c9c3e0c8c5e2c9c4e1c9c4e1cac2e0cbc2e0cdc2dfd0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0cfc3e0 +cec3dfcdc2dfcdc2dfccc3e0ccc3e0ccc3e0ccc3e0ccc3e0ccc3e0ccc3e0ccc3e0ccc3e0 +ccc3e0ccc3e0ccc3e0ccc3e0ccc3e0ccc3e0ccc3e0ccc3e0ccc0deccc0deccc0decdc0de +ccc0deccc0decec0decfc1decfc1decfc1decfc1decfc1decfc1decfc1decfc1decfc1de +d0c0ddcfc1ded0c0ded0c2dfd1c1ded0c2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcec3dfcec3dfcdc2dfccc1decbc0deccc2dfcdc2df +cec3e0d1c6e1d2c9e3c8bfd9bdb5cabcb5c7c3bccbcbc4d2d3ccd7d9d0d8dad2d3d8cfca +d7cecad1cbcdc2c0c9afadbca19eb6a6a3bfbbb6d5d0c9e4d3cae4d0c5e0cdc0deccc0de +ccc0decdc3e0cdc5e1cac3e0c9c2dfcdc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcfc1ded2bfdd +d2bfdccfc0decac4e0cac6e2cac2e0e7c9e0b55a77aa232bbd2324cd2826d42a26d62b26 +c92725bb2224ae3444deabc4d8cbe4cac5e2cbc2e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc3e0cdc4e0ccc3e0cdc0deccbfddcec0de +cec0decfc1decfc2dfcdc0deccc3e0d2c9e4cac5ddc4c5c78d94767885407d943a89a53c +90b03d8fb03d81a43e89a043a1b380b8c2adc2cac3c7cec7cad0c0c6cdb2afba8d9eac6e +95a65a99ae50a0b847a4c03ba4c639a7cb38aacd389cbf3b99b23ca0af79b6bcb6c5c5dc +ccc7e3ccc5e2cdc6dfd0c7e2cfc3e0cec0decdbfddcdbfdecec0decec2dfcdc2dfcec4e0 +cec4e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cdc2dfcac3e0c9c4e1c9c3e0cdc2dfcfc1ded1c0ddd1c0ddd0c0ddcfc1decec2dfcbc2e0 +c9c3e0c9c4e1c8c5e2c9c4e1cac3e0ccc3e0cdc2dfcdc2dfcdc4e0cdc4e0cdc4e0cdc4e0 +cdc4e0cdc4e0cdc4e0cdc4e0cdc4e0cdc4e0cdc4e0cbc4e0cbc4e0cbc4e0cbc4e0cbc4e0 +cbc4e1ccc3e0cdc2dfcdc0decec0decfc1decfc1decfc1decfc1decfc1decfc1decfc1de +cfc1decfc1decfc1decfc1decfc1decfc1decfc1decfc1decfc1decfc1decfc1decfc1de +cfc1decfc1decfc1decfc1decfc1decfc1decfc1decfc1decfc1ded0c0ddd0c0ddcfc1de +d0c0ddcfc1ded0c0ded0c2dfd1c1ded0c2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfccc1decdc2dfcec3dfcfc4e0cfc4e1 +d0c5e0cec5e0c8bfd9c0b8cebab2c4c0b9c5cec7d1dad3dbddd6dad9d3d4d5cfccd3ccc9 +ccc7c4bebac0b0acbaa6a3b9aaa6c3b9b4d5cac3e1d4cce5ccc2dfcec1dfcec1dfcec2df +cdc2dfccc3e0ccc3e0cdc5e1cec6e2cdc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcfc2dfd1c1de +d0c0ddccc2dfc9c6e2c9c6e2ccc2dfe7c9e0b55b78a9232aba2423cb2825ce2826d12926 +c52625b52323aa3545dbabc7d7cae4cac5e2cbc2e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc3e0cdc4e0ccc3e0ccc0deccbfddcec0de +cec0decfc2dfcfc2dfcec2dfccc2dfcac2e0cac3e0d9d5e6a3a69c7d87577286367d993c +86a73d83a93e83a93e85a43d8aa44e9aac70a4b586abba89acba82a7b8749aad568fa53e +90a93c9cb841a7c343a3c33b9cc13b99bf3b9bbe3b96af3da9b771bbc1b2c7c6d9cbc5e2 +ccc3e0ccc2dfcec4e0d0c4dfd0c3e0cfc1decec0decec0decec0decdc2dfcdc4e0cbc4e0 +cac3e1cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cdc2dfcbc2e0cac3e0cbc2e0cec2dfcfc1ded1c0ded0c0ddcfc1decec2dfcbc3e0c9c4e1 +c8c3e1c8c5e2c8c5e2cac3e0ccc2dfcfc1decfc1decdc2dfcac5e1cac7e2cac7e2cac7e2 +cac7e2cac7e2cac7e2cac6e2cac6e2cac6e2cac6e2cac5e1c9c4e1c9c4e1c9c4e1c9c4e1 +c9c4e1ccc3e0cfc0decfbfddcfbedcd0bfdcd0bfdcd0bfdcd0bfdcd0bfdcd0bfdcd0bfdc +d0bfdcd0bfdcd0bfdcd0bfdcd0bfdcd0bfdcd1c0ddcfc0decdc2dfcac3e1cac3e1cac3e1 +cac3e1cac3e1cac3e1cac5e1cac5e1c9c4e1c9c4e1c9c4e1c9c4e1cac3e1cac3e1cac3e1 +cac3e1cac3e1cfc3e0cfc3e0cfc2dfcfc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfccc1deccc1deccc1decec3dfcfc4e0cfc4e1cfc4e1 +cfc4e0c6bdd9bbb3cabeb6cac4becbccc5cdd5cfd4dbd6d8ddd7d6dad5d1d3d0cacccac6 +bdbcbda9a8b3a39fb2aca9c1bbb7d7c8c1dfcec5e1cec4e0cec0decfc2dfd0c4e0d3c6e1 +d2c5e1cec3dfcbc2dfccc4e1d0c6e2cdc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcfc2df +cfc2dfcbc2e0c8c5e2c9c6e2ccc2dfe7c8dfb45a7aa9232bb82423c72725cb2726cb2825 +c02525b22122a93549d9aac9d6c9e3c9c4e1cbc2e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc3e0cdc4e0ccc3e0ccc0deccbfddcec0de +cec0decfc2dfcfc3e0cfc4e0cec3e0c8bdddcfc5e1dad5eab6b8ba91987977873e738c39 +7b9d3d7ea63f88af3e86a93e7e9f3d85a1408da54d90a74d8ea9468ea93d8ea93c92b13c +9ab83b9bbd3b9cbe3b9bbf3b96bb3c8eb33d8dac3e9cae64bac1a4ccced5cec9e4cbc2e0 +cbc0decdc2dfcfc4e0cfc2dfd0c3e0d0c3e0cfc2dfcec3dfcdc2dfccc3e0cac3e0c9c4e1 +c9c4e1ccc3e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cdc2dfccc3e0ccc3e0cdc2dfcfc2dfd0c0ddd0c0ddd0c0ddcfc1deccc3e0c9c4e1c9c5e2 +c7c6e2c8c5e2cac5e2ccc3e0cfc2dfd1c0ded1c0decfc2dfcac3e1cac6e2cac6e2cac6e2 +cac6e2cac5e1cac5e1cac5e1cac5e1cac5e1c9c4e1c9c4e1c9c4e1c9c4e1c9c4e1c9c4e1 +cbc3e0cdc2dfcfc1decfc0decfbfddd0c0ddd0c0ddd0c0ddd0c0ddd0c0ddd0c0ddd0c0dd +d0c0ddd1c0ddd1c0ddd1c0ddd1c0ddd1c0ddd1c0ddcfc0decdc2dfcbc4e0cbc4e0cbc4e0 +cbc4e0cbc4e0cac5e1cac5e1cac5e1c9c4e1c9c4e1c9c4e1cac5e1cac5e1cac5e1cac5e1 +cac5e2c9c4e1ccc3e0cdc2dfcec2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfccc1decbc0deccc1decdc2dfcfc4e0cec3e0ccc3e0 +cac0dcc1b8d2b9b0c6c3bdcecfc9d3d4cfd6d7d2d2d9d4d1d7d3cdd3cfc8cccbc3bcbfbb +adb0b3a2a2afaba9bdbbb8d4c8c1dfcec5e1ccc2dfcbbfddcfc3e0cfc1ded1c3e0d4c6e1 +d3c6e1cfc4e0cbc1dfccc3e0cfc4e1cec2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcec3df +cdc3e0c9c3e0c7c5e1c9c6e2ccc0dee6c7dfb45a7aa7232bb52423c22625c52725c72825 +bb2324ae2222a63649d8a9cbd5c9e3c8c3e0cbc2e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc3e0ccc3e0ccc3e0ccc0deccbfddcec0de +cfc1decfc2dfd0c3e0d2c5e0d2c5e1c8bddcd2c7e2cec8e3c6c4d1aeb3a18a965d728837 +70913c78a03f83ae3f81a93f7ba03e7fa33e82a43e81a23d82a43e86a93e8aad3e95ba3c +9ac03b95be3c8fb53e8db23e8eb23e8fb04694ad63afb99dc6c7ccd1cce3cfc6e2cbc0de +cbbeddcec0decfc0decdbfddd0c4decfc5ddd0c4decfc4dfccc3e0cac3e0c9c3e0c9c4e1 +c9c4e1ccc3e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cec2dfcdc2dfcdc2dfcfc1decfc1ded0c0ddd0c0ddcfc1decec2dfcbc3e0cac5e1c8c5e2 +c7c7e2c7c6e2cac5e1cdc2dfd0c0ded3c0ddd3c0ddd1c1decdc2dfcbc3e0cbc3e0cbc3e0 +cbc3e0cbc3e0cbc3e0cbc3e0cbc3e0cbc3e0ccc3e0ccc3e0ccc2dfccc2dfccc2dfcdc2df +cdc2dfccc2dfccc3e0cbc2e0cbc2e0ccc3e0ccc3e0ccc3e0ccc3e0ccc3e0ccc3e0ccc3e0 +ccc3e0cec2dfcec3dfcec3dfcec3dfcec3dfcec3dfcec2dfcec2dfcec2dfcec2dfcec2df +cec3dfcdc2dfcdc2dfcdc2dfccc3e0ccc3e0ccc3e0ccc2dfcbc2e0cbc2e0cbc2e0cbc2e0 +cbc2e0cbc2e0cbc2e0cbc2e0ccc3e0ccc3e0 +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2df +cec2dfcec2dfcec2dfcdc2dfcdc2dfccc1decbc0decbc0deccc3e0cdc3e0ccc3e0c8bfdc +c3bbd5bfb8cebfb9cacbc4d2d5cfd6d7d2d5d8d3d2d7d2cfd3cec7cbc7c0bebcb9aaaeb0 +a1a4ada6a8babdbcd4cbc6e2cec6e2cbc2dfccc0decfc3e0d0c3e0cebfddcec0ded1c4e0 +d2c5e0cfc3e0cbc1decbc1dfcec3e0cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcec3e0 +ccc3e0c9c4e1c8c5e2c9c6e2ccc1dee7c8dfb45a7aa5222ab32223c02624c12624c22725 +b82323ab2122a5364ad8a8cad4c6e1c9c3e0cbc2e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfccc0deccc0decec0de +cfc1decfc2dfd0c3e0d2c5e0d3c6e1c8bddcd4cae4bfb9dbd1cee3ccccc9a2aa877b8b41 +6b87396e943d78a33f79a13f79a13f84a83e82a73e7ea33e82a73e8db13e8fb33e91b73d +93ba3d92b73d89af3e82a73e87a84296b167adbe97c2c8cccbc6e1ccc6e1cac0decbbedd +cdc0ded0c2dfd0c0ddcdbeddd0c4ded0c6dbd0c5dccfc4dfccc3e0cac2e0c9c3e0c9c3e0 +c9c4e1ccc3e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcec2dfcfc1decfc1decfc1decfc0ded0c0ddcfc1decec3dfcbc3e0c9c4e1c8c5e2 +c8c5e2c9c6e2c9c4e1cec3dfd0c0ddd4bfdcd3bfdcd2bfddcfc1decdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcec2dfcec0decec0decec0decec0decfc0decec0de +cec0deccc3e0c9c4e1cac5e1cac5e1cac5e1cac5e1cac5e1cac5e1cac5e1cac5e1cac5e1 +cac5e1cbc4e0cbc4e0cbc6e1cbc6e1ccc5e1ccc5e1cdc2dfcfc1ded0c0ddd0c0ddd0c0dd +cfc1decfc1decfc1decfc1decfc1decfc1decfc1decdc0decdc0deccc0deccc0deccc0de +ccc0deccc0decbc2dfcac2e0cbc2e0ccc3e0 +cec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2df +cec2dfcec2dfcec2dfcec2dfcec2dfcfc1decfc1decfc1decfc1decfc1decfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc3e0cec3dfccc1dec9c0decac1dfcfc6e1cbc4e0c3bcd8beb8d0 +beb9cbc2becacbc6ced4ced4d9d4d6d9d3d4d6d2d0d3cdcacac5c1beb9b8b0acb3a2a0b0 +a7a4bab9b7d1ccc7e2d1c9e4cdc3e0cbbfddcec2dfd3c5e1cfc2dfcec0decdbfddcfc2df +cfc3e0d0c2dfcdc1decdc1decdc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcec2df +cec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2df +cec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2df +cec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcfc3e0 +cdc2dfcac3e0c9c5e2c6c3e1ccc2dfe7c9e0b15874a52329b32123c02624c22425c62725 +bb2324ad2222a43443d8a8c8d4c6e1c9c2e0ccc3e0cec2dfcec2dfcec2dfcec2dfcec2df +cec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2df +cec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2df +cec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2df +cec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2df +cec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2df +cec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2df +cec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2df +cec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2df +cec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec3dfcec3dfcec2dfcec0decdc0decec0de +cfc2dfcfc2dfcfc3e0d1c4e0d3c5e1c9beddd0c5e1bfb7d9d4cde6d6d2e1bbbab7999f81 +7e8e4a6885386d903c71943c7a9d3d84a43d81a43e7fa13d86a83e91b13d90af3d8bac3d +8bab3d88a73d86a23c89a04c95aa6fabbc99c2cbc3cecbe2ccc3e0cac0dec9beddccbfdd +cfc1ded0c2dfcfc0decebfddd0c4dfd0c5ded0c4decfc4dfcdc2dfccc3e0cbc2e0cbc2e0 +cbc3e0ccc3e0cdc2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2df +cec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc1decfc1decfc1ded0c0ddcfc1decec2dfccc3e0cac3e0c9c4e1 +c9c4e1cac3e1cbc3e0cfc3e0d0c0ded2bfddd2bfdcd1c0ddcfc1decec2dfcec2dfcec2df +cec2dfcec2dfcec2dfcec2dfcec2dfcfc1decfc1decfc1decfc1decfc0decfc0decfc0de +cfc1decdc2dfcac3e0cac3e1cac3e1cac3e1cac3e0cac3e1cac3e1cbc4e1cbc4e1cbc3e0 +cbc4e1cbc4e1cbc4e1cbc4e1cbc4e1cbc4e1cbc3e0cdc2dfcfc1ded0c0ddd0c0ddd0c0dd +d0c0ddcfc0decfc0decfc0decfc0decfc0decfc0decfc1decfc1decdc0decdc0decdc0de +cdc0decec0deccc2dfcbc2dfccc2dfccc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc1decfc0decfc0decfc0decfc0decfbfddd0c0ded0c0de +d0c0ded0c0ded1c1ded2c3dfcfc3e0cac0dec7c0decbc5e2cfc9e4c5c0dcb8b4c8b5b3c1 +bebcc4c9c8cbd1cfd0d7d3d2dcd8d5dad6d2d1cfcdc7c3c3bbb6b9b1abb2a9a2b4aca2c0 +bdb3d5cec3e0d0c6e2cdc2dfcdc0decfc3e0d0c3e0d0c2dfcfc1decfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfd0c2df +cfc2dfccc3e0cac5e1c4bfdfcbc3e0eccfe3ad556ba62625b62323c12624c62625c92725 +c02424b12222a7323bdaa7c5d5c6e1cac2e0cdc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfc1decfc1de +cfc2dfcfc2dfcfc2dfcfc3e0d0c3e0cbbfddc6bbdbcbbfddd2c6e1d1c6e1cac2dcbfbac5 +a4a8927483386981366b8337768f397b953a7b973b7d993c83a03c88a33c87a03c87a03c +83983a8091408a98619faa8ab6beb2c6cbcccbcbdbccc5e1cdc2dfcec2dfcfc2dfcfc2df +cfc1decec0decfc1decfc1decfc3e0cfc3e0cfc3e0cfc2dfcec2dfcec2dfcec2dfcec2df +cec2dfcec2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfc2dfcfc2dfcec2dfcdc2dfcdc2df +cdc2dfcdc2dfcec2dfcfc2dfcfc1decfc1decfc1decfc1decfc1decfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfc1decfc1decfc1decfc1decfc1decfc1de +cfc2dfcfc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcec2dfcec3dfcec2df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec2dfcec2dfcfc2dfcfc1decfc1decfc1de +cfc1decfc1decfc1decfc1decfc1decfc1decfc1decfc1decfc1decfc1decfc1decfc1de +cfc1decfc1decec2dfcec2dfcec2dfcec2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc1decfc0decfc0decfc0decfbfddd0c0ddd0c0ddd0c0ddd0c0dd +d0c0ddcfbfddd0bfddd0c0decbc0dec8c0deccc5e2ccc7e3c5c0deb9b5ccb5b4c2bebcc5 +cac9ccd5d3d2d7d6d2d0cecad1cdcad6d3d1cdc8c9bbb7bbb0aab2afa8b5b8afc5c2b6d8 +cabddcd1c4e0d1c4e0cfc3e0cfc3e0cfc3e0cfc2dfcec0decfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1ded0c2df +cfc2dfcdc2dfcac3e1c4bfdfcbc3e0eccee2ac5668a52623b62323c22625c62625cb2726 +c02525b32222a93237dba6c4d7c6e1cbc2dfcec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcec0decdbfdeccbfddcec0ded1c4e0d2c5e1cfc3e0ccc1de +bdb8be979d7979864264702f6879327686357e90387e92387c8f387a8e387d8c3781903c +879256939c74a8ac9bbec0c2cbcbddcecbe4cac4e0cdc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc1decfc1decfc1decfc0decfc0decfc0decfc0ded0c2dfd0c0ded0bfddcfbfdd +cfbfddcfbfddcfbfddcec0deccc2dfccc5e2ccc7e3c6c1dfb6b2ceb1b0c2bdbbc7cac7cf +d5d2d5dad8d6d9d8d3d1d0cdd0cbcbccc8cabdb8bdada7b0a9a2afb5adbec5bcd6d4c6e1 +d3c6e1d0c3e0cec0decfc2dfd0c3e0d1c4e0cec0deccbfddcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1ded0c2df +cfc2dfcdc2dfcac3e1c4bfdfcbc3e0eccee2ad5668a42522b42123c22625c62625cb2726 +c02525b32222a93237dba6c4d7c6e1cbc2dfcec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcec0decdbfdecfc2dfcfc3e0cfc3e0cec0decfc2dfd1c4e0d4c9e3 +d4cde2cdcdcdb7baaaa0a389909772858c5e7c844c7882437b83427f89498a915a9ba379 +b1b49ebbbcb5c2c3cacac9decfcae4cfc7e2ccc4e1cdc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfc1de +cfc1decfc1decfc1decfc0decfc0decfc0decfc0decfc0ded0c2dfcfbfddcfbfddcfbfdd +d0c0ddd0c0ddd0c0ddcfc0ded1c6e1d0c9e4c4c0dbb6b2ccb1aec2bebccacdccd6d5d3d9 +d5d3d6d3d1d1d4d2d2d7d5d6d1ccd1b7b3bba8a0ada9a2b1b6aec0c5bed3d0c7e1d4c6e1 +d0c3e0ccbfddcbbeddcdbfded0c3e0d1c4e0d0c3e0cfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1ded0c2df +cfc1decdc2dfcbc4e1c4c0dfcbc3e0ebcde2aa5365a42421b42123c22625c62625cb2726 +c02525b32222a93237dba6c4d7c6e1cbc2dfcec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfd0c3e0d0c3e0cec0decbbeddcabddccdbfdecfc4e0 +d0c7e2cfcae4d2cee4d2cfe0c7c5ccb5b3b3a7a7a0a7a79bb2b3a5bcbdafb8b7acc7c7c2 +d5d3dad2d0e1ccc7e1c7c0dec7beddc9c0decac1dfccc0decfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfc1de +cfc1decfc1decfc0decfc0decfc0decfbfddcfbfddcfbfddcfc0decfc0decfbfddcfc1de +d2c3dfd2c4e0d0c2dfcfc2dfcec5e0c7c3dcbab8cbb3b2c2bebbc7cdcbd6d7d4dbd8d7db +d6d4d8d4d1d3d2ced0cbc8cbbcb6bfaba4b2a9a1b4b6aec3c4bbd3cec5e0d0c5e0cec0de +cdbfdeccbfddcdbfdecfc2dfcfc3e0d0c3e0d1c4e0d1c4e0cfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1ded0c0de +cfc1decdc2dfcbc4e1c4c0dfcbc3e0ebcde2aa5263a22221b42222c22625c62625cb2726 +c02525b32222a93237dba6c4d7c6e1cbc2dfcec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc3e0cfc3e0cfc2dfcec0decdbfdecdbfdeccbfddcbbedd +c9beddc6bbdbc7beddccc3e0cdc6e2ccc5e1c9c3dbc9c3d7ccc8d8cfcbdbcec8dacdc9dd +cdc6dfcac3e0c9c0dfcbc2dfcac0dec9bddcc7bbdbccc0decfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfc1de +cfc0decfc0decfc0decfc0decfc0decfbfddcfbfddcfc0decfc0decebfddcebfddcfc2df +d3c4e0d3c5e1cfc2dfccc1dec3bcd5bbb8cab9b8c3bebdc7cecbd4d7d3dbd7d4d9d5d3d8 +d6d4d8d6d4d8cec9ceb4b0b8a29cababa3b5bab3c9c5bdd7cbc2decfc4e1cfc4e0cdbfde +cdbfdecfc3e0d2c5e1d1c4e0cfc2dfcfc2dfd0c3e0d2c5e1cfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1ded0c0de +cfc1decdc2dfcbc4e1c4c0dfcbc3e0eccee2a95264a12021b32223c22625c62625cb2726 +c02525b32222a93237dba6c4d7c6e1cbc2dfcec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcec0decec0decfc2dfd0c3e0d0c3e0cfc2dfccbfdd +cbbeddcdc1decabfddc9bddcccc1decec3e0cdc4e0ccc3e0cbc2e0cac2e0cec5e1ccc3e0 +cbc0dec9bfdecabfddccc0deccc1decbbfddcbbeddcdc0decfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfc1decfc0de +cfc0decfc0decfc0decfbfddcfbfddcec0decec0decec0decebfddcdbfddcec0decfc4e0 +d3c6e1cfc4e1ccc0dec5bbd7beb8cbb9b8c1c1c0c5cdcbcfd7d5d9d9d7dad5d4d7d3d0d4 +d1cdd2cdc8cebebac3a9a4b2a199adb7aec6cac0dbd0c6e1cfc4e0cec3dfcfc3e0cfc2df +cec0ded0c3e0d3c6e1d1c4e0cfc2dfcdbfdecfc2dfd0c3e0cfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfc1de +cfc0decdc2dfcbc4e1c4c1e0cbc3e0eccee2a75163a02020b32223c22625c62625cb2726 +c02525b32222a93237dba6c4d7c6e1cbc2dfcec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcec0decec0decfc2dfd1c4e0d1c4e0d0c3e0cfc1de +ccbeddccbfddcbbfddcdbfddccc0decdbfdeccc0decdc2dfcfc3e0cdc2dfccc0decec3e0 +d1c5e1cfc4e1cdbfdecabddcc9bddccec0ded0c3e0cfc1decfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfc0decfc0de +cfc0decfc0decfc0decfbfddcfbfddcec0decec0decfc1decdbfdeccc0deccc1decfc4e1 +d1c6e1cdc4e0c5bcdabfb6cfbdb8c6c1bfc4ccccccd6d5d4d7d5d6d8d7d7d6d5d7d1ced2 +c7c2c8b8b3bcaca5b3aea7b9b8afc7c7bedad1c5e0d3c6e1d0c3e0cfc2dfcfc3e0d0c2df +cdbfdecdbfded0c3e0d1c4e0cec0deccbfddcdbfdecfc3e0cfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfc0de +cfc0decdc2dfccc5e2c5c1e0cbc3e0eacde2a850629f2020b32222c22625c62625cb2726 +c02525b32222a93237dba6c4d7c6e1cbc2dfcec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcec0decfc2dfcfc2dfcfc2dfcfc2df +cdbfdecbbddccdc0decfc1dfcfc1decdbfddccbfddcec0decfc2dfcfc3e0d0c3e0cfc3e0 +cfc3e0cfc3e0cfc2dfcdbfdeccbfddcec0decfc1decfc1decfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfc0decfc0de +cfc0decfc0decfbfddcfc0decfc0decfc1decfc2dfcfc2dfcdc0decbc0deccc2dfd0c6e1 +cec5e0c5bed8bfb7d1bcb6cbc1bec9cccbccd4d3cfd8d7d2d3d3d1d7d4d5d6d4d7cbc7cd +b7b3bca59eaca19aacb9b1c7cec4dfd2c7e1cfc4e0cfc3e0cfc2dfcfc1dfcfc1dfcfc2df +ccbfddccbfddcfc2dfcfc3e0cec0decdbfdecec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfc0de +cfc1decec3dfcbc4e1c5c1e0ccc4e1e9cbe1a852639f2020b32222c22425c82625c92725 +c12424b32222a73035dca7c4d7c6e1cbc2dfcec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc3e0cfc3e0cfc3e0cec0decdbfdeccbfddcdbfdecec0de +cfc1decfc0decfc1dfcfc1dfcfc1decfc1decfc1decec0deccbeddcdbfded4c6e1cfc1de +c9bddcccbfddcfc2dfd1c4e0d0c3e0cdbfdecabeddcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfc0decfbfdd +cfbfddd0c2dfd0c2dfcfc0decfc0decfc1dfcfc3e0cfc4e0cdc2dfccc1dfcec5e1d2cae3 +c7c1d9b7b3cbb9b3c8c3bececfccd3d6d5d3d6d4ced5d3ced4d2d0d5d0d3ccc8cdbbb5be +a7a2afa19bacafa8bec3bbd4d4c9e3d3c6e1cdbfdecec0decfc1decfbfddcebeddcfc1de +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfc0de +d0c2dfcfc4e1c8c2e0c6c2e0cdc4e1e7cae0ac5668a32221b12122c22425c92625c92725 +c32625b32222a32b2fdda8c5d8c8e2cbc2dfcec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfd0c2dfd0c2dfd0c2dfd0c2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfd0c2dfd0c2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfc0decfbfdd +cfbfddcfc0decfc0decfc0decfc0decfc2dfcfc3e0ccc1deccc3e0d0c7e2d0c8e2c7c3db +bab6cab7b2c4bebccdcdcbd7d7d4d9d7d6d4d5d3ced7d6d2d9d8d9cbc8cbb3adb7a49eac +a49eb0b0aabfc2b9d3cdc3dfd5c9e3d0c3e0cec0decfc2dfd0c2dfcdbeddccbddccfc1de +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfc0de +cfc2dfcec3e0c8c2e0c7c2e0cfc6e2e9cce1af596aa52523b32223c22425c92625c92626 +c32625b32222a32b2fdda8c5d8c8e2cbc2dfcec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfd0c3e0d0c4dfd0c4dfd0c3e0d0c3e0d0c3e0cfc3e0cfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1ded0c0ddd0c0dd +cfbfddcfbfddcfbfddcfbfddcfc0decfc2dfcec3dfccc3e0cfc4e1cfc6e1c8c1d9bab6c9 +b4b1c0bebecacccbd6d5d3dbd6d6d8d5d2d1d3cfcfd5d0d3cec9cfb5b0baa19baaa39db0 +b7b0c6cac0dbd2c7e1d4c7e2d1c4e0cbbeddcebeddd1c3dfd1c2dfcebfddcbbddccfc1de +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfbfdd +cfc1decec3e0c9c2e0c8c3e1d0c7e3eccee2b15d6ea82727b42222c22425c92725c92626 +c32625b32223a42c31dda8c5d7c7e1cac1dfcec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc3e0d0c4dfd0c4dfd0c4dfd0c4dfd0c3e0cfc3e0cfc3e0cfc2dfcfc2dfcfc1decfc1de +cfc1decec0decec0decec0decfc1decfc1decfc1decfc1decfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1ded0c0ddd0bfdd +cfbfddcebedccfbfddcfc1ded0c2dfd0c3e0cfc4e0d1c6e1cfc7e2c6c0d7bab6c9b4b2c0 +bfbec9cdced5d4d4d9d3d3d8d3d3d6d5d3d8d4d0d5c8c4cbb1acb8a29daea8a2b6b9b2c9 +cac1dcd2c7e2d2c5e0d0c3e0cdbfdec8bbdbcbbddcd0c2dfd2c3dfcfc0decdbeddcfc1de +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfc0de +cfc2dfcec3e0c8c2e0c7c2e0cfc6e2eacde2b15b6ca62724b42222c22425c92725c82625 +c22525b32223a52d32dda8c6d7c6e1cac0decec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfd0c3e0d0c3e0d0c3e0cfc3e0cfc2dfcfc2dfcfc2dfcfc1decfc1decec0decec0de +cec0decec0decec0decec0decec0decec0decec0decfc1decfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfbfdd +cfbfddcfbfddd0c0ddd1c3dfd2c4e0d0c4e0cfc4e0cec5e0c7c1d9bbb8cbb6b3c3bebdc6 +cecdd3d5d6dad6d8d7d3d3d3d5d4d8d6d3dbcbc5cfb7b0bda49db0a8a1b7b9b1c9c8beda +cfc4dfcfc3e0cec0decfc1decec0deccbedcccbddccfc0ded0c2dfd0c0decfc1decfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfc0de +d0c2dfcfc4e1c8c2e0c6c2e0cdc4e1e8cae0ae5869a42421b32223c22425c82625c72625 +c12424b32323a62c33dea9c6d7c6e1cac0decec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc0decdc0deccc0deccc0de +ccbfddccbfddccbfddccbfddccbfddccbfddcdbfdecfc1decfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfc1decfbfdd +cfbfddcfbfddd1c1ded3c4e0d3c6e1d0c3e0cbc1ddc4bcd7bdb6cdbab6c7bebdcacccbd2 +d5d6dad4d7d4d2d5d0d2d4d2d2d1d4c8c4d0b5afbfa69eb3aea5bcbeb5d0c8bfdbcdc2df +cfc2dfcec0decdbfdecfc2dfd2c4e0d0c2dfcfc0decfc0decfc0ded0c0decfc1decfc1de +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfc0de +d0c2dfcfc4e1c8c2e0c6c2e0cdc4e1e7cae0ad5667a22121b32222c22425c82625c62425 +c12424b52323a62e34dea9c6d7c6e1c9c0dfcec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cec0decdc0decdc0decdc0decdc0decdc0decdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +ccc0deccc0deccc0deccc0deccc0deccc0deccc0decfc1decfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1ded0c0ded0c0dd +d0bfddd0c0ddd2c2dfd4c5e1d0c4e0cbbfddc4bbd8bdb5cebab5cac0bececbc9d3d3d4da +d6d9d7d1d4d0ccd1cacbcecac3c3c7b2aebda59eb4a59db7bdb4d0d0c6e1d0c5e0cec3df +cfc2dfcfc3e0cfc1ded0c2dfd2c4e0d2c4e0d1c2dfcfc0decfc0ded0c0ded0c2dfcfc1de +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfc0de +d0c2dfcfc4e1c8c2e0c6c3e1cdc4e1e9cbe1ac5668a32221b32223c42625c82625c62525 +c02525b52323a62f34dea9c7d7c6e1c9c0decec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cec0deccc0deccc0deccc0decdc0decdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc0decfc1decfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cec2dfcfc2dfcfc1decfc1decfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1ded1c2dfd1c1de +d0c0ddcfc1ded0c3e0d0c4e0cdc1dec4b9d8bdb3cebcb5cbc4becfcccbd8d2d3dbd3d5d7 +d1d7d3d1d4cfcacdc6c1c3bfb0aeb5a09bafa8a0bab6adcbcac1ddd1c6e2cfc4e1cec2df +cfc2dfcfc2dfcfc0decfc0decfc0ded1c3dfd2c2dfd1c1ded1c1ded1c2dfd0c2dfcfc1de +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfc0de +d0c2dfcfc4e1c8c2e0c7c3e1cfc6e2e9cce1af596ba52523b42123c42625c82625c62525 +c02525b52323a73035dea9c7d7c6e1c9c0decec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cec0deccc0deccc1deccc2dfccc2dfccc3e0ccc3e0ccc3e0ccc3e0cdc4e0cdc4e0cdc4e0 +cdc4e0ccc3e0ccc3e0ccc3e0ccc3e0cdc2dfcdc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +ccc0decdbfdecec0decfbfddd1c1ded0c0ddcfc0ded0c0decfc1decfc0ded1c2dfcfc2df +cec2dfccc4e1cec7e2c9c4e1c5bedac1b6d1bcb0c7c3bbcdcfc9d7d5d4ddd1d9dccad4d3 +ccd4d0cfd5d2c6c6c4b4b1b3a39caca49ab5b8aececabfddcfc4e1ccc1decabfdecdc0de +cfc1decfc1decfc0decdbeddccbddccfc0ded0c2dfd0c2dfd1c3dfd1c3dfd0c3e0cfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfc0de +cfc1decec3e0c9c3e0c8c3e1d0c7e3ebcde2af5a6ba62624b62323c42625c82625c62525 +c02525b52323a73035e0abc7d7c7e1c9c0decec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc1deccc0deccc1deccc0deccc3e0cdc2dfcdc2dfcdc2dfcdc2dfccc3e0cec4e0cdc4e0 +cec4e0ccc3e0cdc2dfcdc2dfcdc2dfcdc2dfcec3dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +ccc1dec9bcdcccbddcd1c0ddd2c0ddd0bfdccfbedcd2c1ded0c1decbbddccfc1deccc1df +c8c1dfc9c9e4c8cbe6bcc0dbbab8cfc2b8cdc7bbcbd1c4d1d9d0d8d6d8dbcedbd9c6d9d5 +c3d3d1c0c9cbb6b1b7a494a3a797b1bcaed0c4b8d9cfc2dfd3c5e1cfc3e0cdbfdecec0de +d0c3e0d1c3e0cfc1decfc1decfc1decfc2dfcfc2dfcfc2dfcfc1decfc1decfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfc0de +cec0decdc2dfcdc6e2c6c3e1cec5e1eccfe3aa5265a22221b42123c52725c92625c72625 +c22525b62423a83136e1abc8dac9e2cbc2dfcec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc1decdc2dfcfc1decdc2dfcfc2dfcec2dfcec2dfcec2dfcec2dfcfc2dfcdc2df +cfc2dfcec2dfcec2dfcec2dfcec2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +ccbfddcdbfddcebeddcfbddccfbddbcfbddbd0bfddd3c4e0d5c7e2d4c6e1cdbeddc6b9da +c4bedec0c2e0b9bedaabb0c8b5b6c6cbc3d2d7cbd8ddd0d8dad3d6d0d5d3c7d8d6c1d6d5 +b3c4c6a8aeb4aca0afb1a0b7beabcbc9bbdbccbfddd1c4e0d1c4e0cdbfdecbbeddcbbedd +cec0decfc3e0cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfc0de +cec0deccc2dfc9c4e1c4bfdfcac2e0e9cce1a750619f2020b12122c12424c82625c72625 +c02525af2022a0262ad9a4c1d5c4e0c9c0decec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +d0c0ddd2c2dfd0c0decdbeddccbedccdbfddcdc2dfcdc3e0cec4e0d3c6e1ddcde5ddcce4 +d3c5e0c6bfdabcb7ceb7b5c4c6c3cfd6ced8d9d0d8dcd3d9d9d6d9d1d5d6c4d1d2b8c6ca +a3adb49c9ca9ada0b3c4b2cdd1c0dcd2c4e0d1c4e0d1c4e0cfc2dfccbfddccbfddcdbfde +cfc2dfcfc3e0cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1ded0c2df +cfc1deccc2dfc9c3e0c3bedec9c0dfe9cbe1a85062a02020b12122c22425cc2726cd2626 +c32625af20229f2528d8a4c1d7c6e0cac0decec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +d2bfddd2c2dfcfc1decabfddc9c2dfcbc4e1cac3e0c8c0dec9bfdecfc1ded6bfdcd1b4d1 +c8acc5c4acc2c6b3c3cabbc5d5cbd2ded6d9ddd6d8d9d5d8d6d5d7cdd3d5bdc5caa8afb7 +9e9fb0aca5babfb3cccfbddad3c3dfd1c3e0cfc3e0cfc2dfcdbfdecec0decfc2dfd0c3e0 +d0c3e0d0c3e0cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1ded2c3df +d1c3dfcec3e0cbc4e1c4c0dfcac2e0ebcde2ac5567a42522b42123c52725cd2726cd2726 +c52625b12222a1272bdba6c3d7c7e1cbc2dfcec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +d4c0ddd2c2dfcec3e0c9c2e0c7c3e1cac7e3cbc5e2cac1dfcec0ded5c2dee2c2dbe4b8cd +ddafbee0b5c0ebc4cde9cbd1e3ced0dcd2d1d6d3d1d2d3d2caced0bfc4c8afb1bba19fb0 +aea5bcc2b7d3d0c0ddd2c3dfd0c0decfc1decdbfdecdbfdecec0decfc3e0d0c3e0d0c3e0 +d0c3e0cfc3e0cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1ded1c3df +d0c2dfcec3e0ccc5e2c4c1e0ccc4e1edd0e3af596aa82827b72323c22625c92725c72625 +c12424b32222a42b31dda8c5d7c6e1cac0decec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +d4c0ddd1c3dfcbc4e0c7c6e2c5c5e2c8c6e2cfc6e1d4c5e1d6c1dedbbcd9d09cb3c07d89 +bb7579c68388e0a4a8f2c3c3f2d2cfe7d7d3d8d3cfcbceccbbc2c5acb0b7a39fb0aba2b9 +c3b4d2d1c1ded3c3dfd0c2dfcec0decec0decdbfdecdbfdecfc2dfcfc3e0cfc3e0cfc2df +cdbfdecdbfdecfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1ded0c0de +cfc1decdc2dfcbc4e1c4c0dfccc4e1edd0e3ae586aa72726b72323c22425c82625c62525 +c02424b32323a62f34dea9c7d7c7e1cac0decec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +d0c0ddccc4e1c9c7e3c5c7e2c4c5e1cac5e1d5c6e0ddc4ded7b0d2d299bcb564799c3537 +962723a03835c06767df9e9df2c7c3ecd4ced5cfcabfc2c1acb3b8a3a5b2a8a0b7bdaecc +d3c0ddd5c2decfc1deccc1deccc1decec2dfcfc2dfcfc2dfcfc3e0cfc2dfcec0deccbfdd +cbbeddccbfddcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfc0de +cebfddccc2dfc9c4e1c4bfdfcbc3e0ebcee2ab5366a42421b42123c52725c92725c72625 +c22525b52323a73035e0abc8d9c9e3cbc2dfcec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cdc2dfc6c3e1c5c7e3c5c7e3c8c4e1d0c3dedfc4dee8b9d5ce8cb2b65d7ea83644a32321 +a02020a02120aa322dc06562dca19fddc0baccc1bcafb0b1a0a5adabaabbbeafccd1bddb +d8c0ddd2bedcccbfddc9c0dfcac2e0cec3dfd0c3e0d0c3e0cfc3e0cec0deccbfddccbfdd +cdbfdecec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfc0de +cec0deccc2dfcac3e1c4c0dfcac2e0eacce1a851629f2020b32222c52725cb2726c92725 +c32625b32223a42c31dda8c6d9c8e2cbc2e0cec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +c9c3e0c3c5e2c4c6e3c9c6e2d0c4dfd9c1dbebbcd5e49ebabf5d7e9d2435a62021b82423 +c12924bc2724a721219b2623b56b68c59f9cc1b2b0a7a3a99f9facbdb7cdd6c5e0d9c4df +d3bbdad0bcdbccc1dec7c2e0c8c2e0cdc2dfcfc3e0d0c3e0cfc2dfcdbfdecdbfdecec0de +cfc3e0d0c3e0cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1ded0c0de +cfc2dfcec3e0ccc5e2c5c1e0ccc4e1e9cce1a750619e2020b02122c22425cb2726c92725 +c22525ae20229d2428d8a2bfd5c4e0cac0decec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +c7c6e3c7c9e4c6c6e3cbc2e0d6c0dbe7bbd4e49db4b0445c9e1d25b62328c52525c82625 +c72725c92825b825249c201fa84e51b38184a48d93aca2adbcb9cbcbc3ddd9c6e0d9c1dd +d3bcdbcfbedccac3e0c7c5e2c7c3e1ccc3e0cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfbfdd +cfc1decdc2dfc8c1dfc7c2e0cfc6e2eacde2af5a6ba62624b32222c12424cb2726c92725 +c12424ad20219d2428d8a4c0d7c6e1cbc2dfcec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +c2c1e0c3bfdec9bfded8c1dde3b8d4ce87a1a4344ba61f23c22629c32525c82625cf2826 +cf2826c22425b32022a7252889222c864b56a68997bdafc0c8bed6d1c3dfd7c3dfd5bedc +d0bbdacdbddcc7c2e0c5c5e2c8c4e1ccc3e0cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfc0de +cfc2dfcec3e0c8c1dfc7c2e0cec5e1e9cce1af596aa42522b32222c22425c92725c82625 +c12424af2022a0262adaa5c3d7c7e1cbc2dfcec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +c6bfdeccbedddcc4dee2b8d6cf8ba9ac475f9d1d20b02022c92526d12826d82b26d62a26 +cc2626c42425b12223921a1d8c2f40aa7487c6a7bccfbfd7d2c2ded2c3dfd5c0ddd1bcda +cebadaccbeddc6c3e1c5c5e2c6c3e1ccc3e0cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfc0de +d0c2dfcfc4e1c8c2e0c7c2e0cec5e1e9cbe1ae5869a42421b32223c22425c82625c72625 +c12424b32222a42c31dea9c6d8c8e2cbc2dfcec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df + +showpage + +% stop using temporary dictionary +end + +% restore original state +origstate restore + +%%Trailer diff --git a/.svn/pristine/12/1238d8c331d41d798f8eeb5169cc75fb08b580a9.svn-base b/.svn/pristine/12/1238d8c331d41d798f8eeb5169cc75fb08b580a9.svn-base new file mode 100644 index 0000000..a3095e7 --- /dev/null +++ b/.svn/pristine/12/1238d8c331d41d798f8eeb5169cc75fb08b580a9.svn-base @@ -0,0 +1,152 @@ +/* + * graphToro implementation + * + * Copyright (C) Jochen Sprickerhof + * + * Released under the GPL version 3. + * + */ + + +/** + * @file TORO wrapper + * @author Jochen Sprickerhof. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "slam6d/graphToro.h" + +#include "slam6d/metaScan.h" +#include "slam6d/lum6Deuler.h" +#include "slam6d/globals.icc" + +#include +using std::ofstream; +using std::ifstream; +#include +#include +using namespace NEWMAT; +/** + * This function is used to match a set of laser scans with any minimally + * connected Graph. + * + * @param gr Some Graph with no real subgraphs except for itself + * @param allScans Contains all laser scans + * @param nrIt The number of iterations the LUM-algorithm will run + * @return Euclidian distance of all pose shifts + */ +double graphToro::doGraphSlam6D(Graph gr, vector allScans, int nrIt) +{ + Matrix C(6, 6); + double invers[16], rela[16], rPos[3], rPosTheta[3], rPosQuat[4]; + double Pl0[16]; + + ofstream outFile("toro.graph"); + int n = gr.getNrScans(); + for(int i = 0; i < n; i++) { + QuatRPYEuler(allScans[i]->get_rPosQuat(), rPosTheta); + outFile << "VERTEX3" << " " << i << + " " << (allScans[i]->get_rPos()[0]/100) << + " " << (allScans[i]->get_rPos()[1]/100) << + " " << (allScans[i]->get_rPos()[2]/100) << + " " << rPosTheta[0] << + " " << rPosTheta[1] << + " " << rPosTheta[2] << endl; + } + + for(int i = 0; i < gr.getNrLinks(); i++){ + int first = gr.getLink(i,0); + int last = gr.getLink(i,1); + + if(first != last-1) { + vector meta_start; + for(int i = first - 2; i <= first + 2; i++) { + if(i >= 0) { + meta_start.push_back(allScans[i]); + } + } + MetaScan *start = new MetaScan(meta_start, false, false); + + //static size of metascan + int offset_last_start = 2; + int offset_last_end = 0; + + vector meta_end; + for(int i = last - offset_last_start; i <= last + offset_last_end && i < n; i++) { + if(i >= 0) { + meta_end.push_back(allScans[i]); + } + } + MetaScan *end = new MetaScan(meta_end, false, false); + + memcpy(Pl0, allScans[last]->get_transMat(), 16 * sizeof(double)); + my_icp->match(start, end); + + delete start; + delete end; + } + + M4inv(allScans[last]->get_transMat(), invers); + MMult(invers, allScans[first]->get_transMat(), rela); + Matrix4ToQuat(rela, rPosQuat, rPos); + QuatRPYEuler(rPosQuat, rPosTheta); + + lum6DEuler::covarianceEuler(allScans[first], allScans[last], my_icp->get_nns_method(), my_icp->get_rnd(), my_icp->get_max_dist_match2(), &C); + + outFile << "EDGE3" << " " << last << " " << first << " " << + (rPos[0]/100) << " " << + (rPos[1]/100) << " " << + (rPos[2]/100) << " " << + rPosTheta[0] << " " << + rPosTheta[1] << " " << + rPosTheta[2] << " "; + for(int i = 1; i < 7; i++) + for(int j = i; j < 7; j++) + outFile << C(i, j) << " "; + outFile << endl; + + if(first != last-1) { + allScans[last]->transformToMatrix(Pl0,Scan::INVALID); + } + } + outFile.close(); + + system("sort toro.graph > toro2.graph && mv toro2.graph toro.graph && ./bin/toro3d toro.graph"); + + ifstream inFile("toro-treeopt-final.graph"); + string tag; + int id; + double dd; + double rPosN[3], rPosThetaN[3]; + while(inFile) { + inFile >> tag; + if(tag == "VERTEX3") { + inFile >> id; + if(id == n-1) { + inFile >> rPosN[0] >> rPosN[1] >> rPosN[2] >> rPosThetaN[0] >> rPosThetaN[1] >> rPosThetaN[2]; + rPosN[0] *= 100; + rPosN[1] *= 100; + rPosN[2] *= 100; + } else { + inFile >> rPos[0] >> rPos[1] >> rPos[2] >> rPosTheta[0] >> rPosTheta[1] >> rPosTheta[2]; + rPos[0] *= 100; + rPos[1] *= 100; + rPos[2] *= 100; + RPYEulerQuat(rPosTheta, rPosQuat); + if(id != 0) { + allScans[id]->transformToQuat(rPos, rPosQuat, Scan::GRAPHTORO, 1); + } + } + } + else if(tag == "EDGE3") { + inFile >> id >> id; + for(int i=0; i < 22; i++) { + inFile >> dd; + } + } + } + RPYEulerQuat(rPosThetaN, rPosQuat); + allScans[n-1]->transformToQuat(rPosN, rPosQuat, Scan::GRAPHTORO, 2); + inFile.close(); + + return DBL_MAX; +} diff --git a/.svn/pristine/12/126ee090cfad1e04a10316770a642770365ede16.svn-base b/.svn/pristine/12/126ee090cfad1e04a10316770a642770365ede16.svn-base new file mode 100644 index 0000000..68f806a --- /dev/null +++ b/.svn/pristine/12/126ee090cfad1e04a10316770a642770365ede16.svn-base @@ -0,0 +1,15151 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: /home/free_icp/doc/high_level_doc/coordinate_system_white.eps +%%Creator: XV version 3.10a-jumboFix of 20050410 - by John Bradley +%%BoundingBox: 99 181 513 611 +%%Pages: 1 +%%DocumentFonts: +%%EndComments +%%EndProlog + +%%Page: 1 1 + +% remember original state +/origstate save def + +% build a temporary dictionary +20 dict begin + +% define string to hold a scanline's worth of data +/pix 1242 string def + +% define space for color conversions +/grays 414 string def % space for gray scale line +/npixls 0 def +/rgbindx 0 def + +% lower left corner +99 181 translate + +% size of image (on paper, in 1/72inch coords) +414.00000 429.98400 scale + +% define 'colorimage' if it isn't defined +% ('colortogray' and 'mergeprocs' come from xwd2ps +% via xgrab) +/colorimage where % do we know about 'colorimage'? + { pop } % yes: pop off the 'dict' returned + { % no: define one + /colortogray { % define an RGB->I function + /rgbdata exch store % call input 'rgbdata' + rgbdata length 3 idiv + /npixls exch store + /rgbindx 0 store + 0 1 npixls 1 sub { + grays exch + rgbdata rgbindx get 20 mul % Red + rgbdata rgbindx 1 add get 32 mul % Green + rgbdata rgbindx 2 add get 12 mul % Blue + add add 64 idiv % I = .5G + .31R + .18B + put + /rgbindx rgbindx 3 add store + } for + grays 0 npixls getinterval + } bind def + + % Utility procedure for colorimage operator. + % This procedure takes two procedures off the + % stack and merges them into a single procedure. + + /mergeprocs { % def + dup length + 3 -1 roll + dup + length + dup + 5 1 roll + 3 -1 roll + add + array cvx + dup + 3 -1 roll + 0 exch + putinterval + dup + 4 2 roll + putinterval + } bind def + + /colorimage { % def + pop pop % remove 'false 3' operands + {colortogray} mergeprocs + image + } bind def + } ifelse % end of 'false' case + + + +414 430 8 % dimensions of data +[414 0 0 -430 0 430] % mapping matrix +{currentfile pix readhexstring pop} +false 3 colorimage + +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffd8a0b0d8a0b0e0a8c0d8a8c0ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffd8a0b0b85868a85868b85868b86878c890a8ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffe0a8c0c06078982030982030982030903040a85868d098b0ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffc888a0901818a02020a83028a01820a01820a03040b87888ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffc08090a02020b02020d02820b82020a82020a02038a05068ffffffffffffffffff +ffffffffffffffffffffffffffffffe0a8c0d088a0a85868b87888b888a0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffff0a098b03040c82020c82820c02020b02020a02020a04050d8a8c0ffffffffffff +ffffffffffffffffffffffffd8a0b0d04080981850802028801018a05080c8a0a8ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffb83848b82020c82820c02030c02020a82020a03038c08090ffffffffffff +ffffffffffffffffffe0a8c0c06078a02038901818982030802028a85868ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08890c088b8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffd88090b02030b82020b82020a83028b82020a02020a84050ffffffffffff +ffffffffffffffffffd088a0b02030a83028a82020801018801018c898b0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffc8a0a8884050a87080 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffe0a8c0b03040a82020a82020b82020b82020a82020a82830e0a8c0ffffff +ffffffffffffe0a8c0c06868b02020b02020b02020881818884050d0a8c0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffd88090903040a04050 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffb84050a83028a83028b02020b82020b02020b82020d88090ffffff +ffffffffffffd088a0b03040a82020b02020981820881818b87888ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffe0a8c0c06868a83028a83028 +f09088ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffc87080a82830b02020b02020b82020a82020b02020b84050ffffff +ffffffffffffc87080a02020a83028b02020881818801018d8a8c0ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffd088a0b83848a83028b82020 +b84050ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffd090a8b83848b02020b02020b02020a82020b02020a02038ffffff +ffffffd8a0b0b85868a83028b82020a82020801018884050ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffc87080a02020c82820d03828 +a82020ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffb84050a83028b82020b02020a82020b82020a82020d8a0b0 +ffffffc87080b02030b82020a82020981820781010c888a0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffc06868b02020c82820d03828 +b82020ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffc87080b83848b02020b02020b02020b82020b82020c06868 +ffffffb85868b82020b82020a82020781010781010ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffc890a8b84050c02020d03828e02820 +d02820a85868ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffd8a0b0b84050a82020b02020b82020a83028b82020a83028 +f09088e04840b82020c02020a82020801018706878ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffb86878a83028c82820e02820d03828 +c02030983848ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffc06078a82020b02020c02020b82020b82020981820 +b83848c02020b82020b02020981820802028c8a0a8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffb86058a82020d02820e02820e02820 +c82820a03040d8a0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffc07888a03038b82020c82820b82020b02020a82020 +a83028c02020b82020b02020981820a04050ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffd8a0b0b83848b02020c82820e02820d03828 +c82020b02030d88090ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd8a0b0b85868b02020c02020b82020b82020b02020 +b02020c02020b82020a02020982030b87888ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffc87080a83028b82020d02820d03828d82820 +c82020c02030b85868ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffc07888a82830b82020b82020c02020a83028 +c02020c02020a83028901818983848d8a8c0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa84050a82020c02020d03828d82820d02820 +c82820c02020b83848e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffd088a0a03040b02020b82020b82020c02020 +b82020a83028a01820881818a05068ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffc8a0a8a83028b02020c82820d82820d02820d02820 +c02030d82820b02020d88090ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffa85060b82020c02020a83028c02020 +b02020b02020901818903040b888a0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffc07888a02020c82820d03828c82020d03828d02820 +d03828d82820b02020b85868ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffd88090982030b82020b82020c82820 +b82020981820781010a85868ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffa04858a02020c02020d02820d82820d02820c02030 +d82820d82820c02020982030d088a0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffd098c0982030a82020c82820c82820 +b02020881818802028a08890ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffff982030a82020c02020d02820d82820d82820d82820 +d02820d82820c02030a02020c07888ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffa85868a82020d02820c02030 +b02020781010884050c8a0a8ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffd098b0901818a83028c82820d82820e02820d03828e02820 +d03828d82820d03828a82020c06868e0a8c0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffd090a8c02020c02020c02020 +981820781010a08890ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffb86878981820b02020c82820d02820e02820e02820d03828 +e02820c02030c82820b02020b83848d090a8ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd8a8c0e0a8c0fffffff09088b82020b82020a83028 +781010884050c8a0a8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffa03040a82020b82020c82820d82820d03828e02820e02820 +e02820d82820d02820b82020b02030d88090ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffc888a0c06868c06868e86860b84050c02020b82020801018 +500828a87080ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffe0a8c0a01820b02020c02020c02030d82820d82820d03828e02820 +d03828e02820d02820c02030b02020b86878ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffc08090a84050a02020a83028b02020c02020b02020a83028781010 +703858c8a0a8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffc87080a01820b82020c02020d02820d82820e02820e02820e02820 +e02820d03828d82820c02030b02020a84050d098b0ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffd090a8a02058a02020b02030b82020b82020b82020b02020a82020702838 +a05068ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffa84050a01820c02020c02020d03828d82820d03828e02820d03828 +e02820e02820c02030d02820b02020a02038b87888ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffd090a8a84050b03040c02030b02020b02020c02030a83028981820a87080 +c898b0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffe0a8c0901828a02020c02020c82820d82820d82820e02820d03828e02820 +e02820d03828d82820c82820b02020982030a05080ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffe0a8c0a02038b02030b02030c02030b02030a82020a02020a85868ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffb87888801018b02020b82020c02030d02820d82820d03828e02820e02820 +e02820e02820d03828c02030b82020a02020a05068d8a8c0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffd04080a03040982030a02038a03040a84050c87080ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffa05068901828b02020c02020d02820d02820d03828e02820e02820e02820 +e04840e02820d82820c02030c02020a02020903040b88098ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffe0a8c0d088a0b86878a87080c07888d8a0b0ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffc890a8903040981820b82020c02020d02820d02820d03828c02030e02820e02820 +e02820d82820d82820d02820b82020a82020982030a05068ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffd0a8c0ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffb87888881818a01820c02020c02030d02820d82820d82820e02820d03828e02820 +d03828e02820d03828c02030c82820b02020982030983848e0a8c0ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +d8a8c0a85868881818a02020c02020c82820c02030d03828d82820d03828e02820e02820 +e02820d03828e02820d82820c02030b82020a02020903040c07888ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +c888a0903040982030b02020b82020d03828d82820d82820d82820e02820d03828e02820 +e02820e02820d03828d82820c82820b82020a01820a01820a04858ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +c07888982030a02020b02020c02020d82820d02820d02820d03828c02030e02820d03828 +e02820e02820e02820c02030d02820c02030b82020a02020a03848e0a8c0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd8a8c0 +a85868981820a02020b82020c82820d02820d02820d82820e02820e02820e02820e02820 +e02820d03828d03828e02820d02820c02030c02020a82020982030c08090ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc890a8 +983848901818a82020c02020c82820d82820d82820c02030e02820d03828d03828e02820 +d03828e02820e02820d03828d82820d02820c82820b02020981820a04858ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb87888 +901818981820b02020c82820d02820d82820d03828e02820d02820d03828e02820d03828 +e02820e02820e02820d03828d82820d02820d02820b82020981820802028ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa85868 +802028a02020b02020c82020d02820d03828e02820d03828c02030e02820d03828e02820 +e02820d03828e02820c02030e02820d03828c02030c82820a02020801018d098b0ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb098b0884050 +981820a02020b82020c82820d82820d03828e02820d82820e02820d02820d03828e02820 +e02820e02820d03828e02820d03828e02820e02820c02030a82020802028b87888ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb068a0702838 +981818b02020b82020c82820d02820c02030e02820d03828d03828c02030e02820d03828 +e02820d03828e02820e02820c02030e02820d82820c82820a82020881818a05068ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa05068901828 +a02020b02020b82020c02030d82820e02820e02820d82820e02820e02820e02820e02820 +e02820e02820e02820e02820e02820d03828c02030d02820b02020981820983848d098b0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffd8a8c0983848901818 +a82020b02020c02020c82820c02030d02820d82820d03828e02820d03828e02820d03828 +e02820d03828e02820e04840c02030d82820d02820c02030c02020b02020901818c07888 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffc07888982030981820 +a82020b82020b82020c02020c82820d02820d03828e02820d03828e02820e02820e02820 +e02820e02820d03828d82820d82820d82820d02820c82820c02020b02020a02020b85868 +e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffff983848881818a02020 +a01820b82020b82020c82820c02030d02820d82820d03828e02820e02820d03828e02820 +e02820c02030e02820d82820d82820d02820c02030c82820c02020b02020a02020a82830 +d8a0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffd8a0b0802028901828a02020 +b02020b82020c02020c02020d02820d02820d82820c02030e02820e02820e02820e04840 +e02820e02820d03828e02820c02030d82820d02820c02030c82820b82020a82020901818 +c07888ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffb87888802028981820a02020 +b02020b82020c02020c02030c82820d02820d03828e02820e02820d03828e02820e02820 +d82820d03828e02820e02820d82820c02030d02820d02820c02030c02020a82020981820 +a85868d8a8c0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffa05068901828981820a82020 +b02020b82020c02020c82820c02030d82820d82820d03828e02820e02820e02820d03828 +e02820e02820e02820d03828d03828d82820d02820d02820c82820b82020b02020a02020 +a04050c890a8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffff903040901828981818a82020 +b02020c02020c02020c82820d02820d02820d02820d03828e02820d03828e02820e02820 +e02820d03828e02820d03828e02820c02030d82820d02820d02820b02030b02020a02020 +a03038c08090ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffc888a0801018901818981820a82020 +b82020b82020c02020c02030d02820d02820d03828e02820d03828e02820e02820d03828 +e02820e02820e02820c02030e02820e02820d82820c02030d82820c82820b02020a02020 +901828b86878ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffb86878781010901828a02020b02020 +b82020c02020c82820c82820d02820d02820c02030e02820e02820d03828e02820e02820 +e02820e04840e02820e02820d82820d03828d82820d02820d02820c02030c02020a02020 +981820a85060d088a0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffff903040801018981820a82020b02020 +b82020c82820c02030c82820d02820d02820e02820d03828e02820e02820d03828e02820 +e02820d82820d82820d03828e02820d03828c02030e02820d02820c02030b82020a82020 +a02020982030b87888ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffd8a0b0802028901818a02020a82020b82020 +c02020c02020c82820c02030d02820d02820d03828d82820d03828e02820e02820c02030 +e02820d03828e02820e02820e02820e02820e02820c02030d82820c82820c02020b02020 +a02020982030a85868e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb888a0a87080a85868b86878d088a0e0a8c0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa87080781010a01820a02020b02020b82020 +c02020c02030d02820d02820d02820d03828d82820c02030e02820e02820d03828e02820 +e02820d03828e02820e02820d03828d03828d82820d82820d02820c02030c02020b82020 +a82020981820a03848c890a8ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffc07888a03040981820a01820a82020a82020c82820 +b83848b83848c06868d88090ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060801018a02020a82020b02020c02020 +c02020c82820c82820c02030d02820d82820c02030e02820e02820d03828e02820d03828 +e02820e02820e02820d03828e02820e02820d03828c02030d82820c02030c82820b82020 +a82020981820a03040c07888ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffd090a8a84050a01820b82020c82820c82820c02020b82020 +b82020b02020a82830b03040b83848a82870b85868c06098d090a8d098c0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffc890a8983848981820a01820b02020b82020c02020 +c82820c82820c02030d82820d02820d82820e02820d82820d03828e02820e02820e02820 +e02820d03828e02820e02820e02820d03828e02820d82820d02820c82820c02030c02020 +b02020a82020982030a05080ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffd090a8a84050982030b02020c02020c02020c82820c82820 +c82820c02020c02020b82020b02030b02030b03040a02058884050a87080ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb88098802028901828a02020b82020b82020c02020 +c02030d02820d02820c82820d02820d03828d03828e02820c02030e02820d03828e02820 +e02820e02820d03828e02820d03828e02820d03828c02030d02820c02030c82820c02020 +b82020a82020901828a04858ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffe0a8c0c06098b84050a03040a83028b82020b82020b82020 +c02020c02020c02020b82020c02030b82020b02030a03040802028984078ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffc08098982030981820a02020b82020c02020c82820 +c82820c82820c02030d82820d02820d82820c02030e02820e02820d03828e02820e02820 +e04840e02820e02820e02820d03828e02820e02820d82820d02820c82820c02020c82820 +c02020b02020a01820a04858ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd8a8c0c888a0d88090c06098c06078a84050a03040 +a82830a82020a83028b82020b82020b82020b82020982030901828a85068ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffc888a0903040901818b02020b02020b82020c02020 +c82820c02030d02820d02820d02820d03828e02820e02820d03828e02820e02820e02820 +d82820e02820d03828e02820d03828e02820d03828c02030d82820c02030c82820c02030 +b82020a82020a02038a85068ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc888a0c07888 +c06078b86058b84050c82820a83028b82020b82020a02020a85068d088a0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd8a8c0a04858982030b02030a02020b82020c02020 +c82820c82820d02820c02030d82820d82820d03828e02820e02820d03828e02820d03828 +e02820e02820e02820e02820d03828e02820e02820e02820d03828c82020c02020b82020 +a82020a02020a84050c07888ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffff09088b86058b82020b02020a83028a84050d088a0ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffd088a0a85068982030982030a82020b82020 +c02030c82820c82820c02030d02820d82820e02820d03828e02820e02820e02820d03828 +e02820e02820e04840e02820c02030e02820d03828e02820d02820c02030c02020a02020 +982030a03848c07888ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffff09088b86058a82020a82020c02030b84050ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffe0a8c0c87080a02058982030a82020 +b82020c02020c02020d02820c02030d03828e02820e02820e02820e02820e02820d03828 +e02820e02820e02820d82820d82820d03828e02820d03828d82820c02020a02020982030 +b86058d090a8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +d88090982030881818a82830a03040b85868ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffd088a0c87080b03040 +b02030c02020b82020c02020c02020d02820d82820e02820e04840e02820d03828c02030 +e02820e02820e02820d03828c02030d02820c02030b82020a82830a02020b85868d88090 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc87080 +b83848b03040b02030a02058c87080ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff09890 +d88090d88090b84050b83848a82830b03040c02030d82820d82820d03828c02030e02820 +e04840d82820c02030e04840b02030a82830b03040c06078f09088d8a0b0e0a8c0ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc87080b02068 +a82830b03040b02068c87080ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffd8a0b0e0a8c0d88090d88090b03040901828901828a01820a82020981820 +981820a02020a01820c87080d8a0b0d8a0b0d8a0b0e0a8c0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffc06078a02058a82830 +a02058c83078d088a0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858801018781010781010781010781010 +781010781010781010d8a0b0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffc87080b03040b03040b02030 +a84050d098b0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff884050500828580808580808580808580808 +580808580808580808d0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffd8a0b0c06078b03040b02030b02030b84050 +d088a0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff703858580808580808580808580808580808 +580808580808500828ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd8a0b0c06078b02030b02030b82020b02030c87080 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff702838580808781010781010781010781010 +704018781010580808ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffd8a0b0c82868b02030c02030c02020a82020b02020e86860 +f0a098f0a098d8a0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff884050801018901818a83028a02020a02020 +981820a02020901828d8a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffe0a8c0b03040c02030d02820d02820c82020b82020b82020a83028 +a82020a02020a83028b83848c06078f0a098ffffffffffffe0a8c0ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858982030a82020b82020b82020a83028 +b82020b02030982030e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffd098c0b82068c02030c82020c02030d02820c02020c02020c02020 +c82820c82820c02020b02020b02020a02020982030982030b84050d88090e0a8c0ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85068a82020b02020b82020c82820c02020 +b82020a83028901828e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffd090a8a04858a02038b82020c02020c02020c02030c02020b82020 +c02020b82020c02020b82020b82020b02020b02020981820901828983848c888a0ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060a02020a83028c02020c02020c82820 +b82020b02020901828e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffd090a8c87080c06868b83848a82020a82020a83028a82020 +a83028b82020b82020c02030c02020b82020b02020b03040881818802028c08098ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa84050a02020b82020c82820c82820c82820 +c02020b82020982030e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffd8a0b0d8a0b0d88090c888a0c07888c06868 +a85060a03848a82830a82020b02020b82020b02020a02020801018a05068c890a8ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa84050a01820b82020c82820d02820d02820 +c02030b82020982030e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +d098b0c888a0b86878b85868b84050b83848b83848982030a04858c888a0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa84050a02020b82020d02820d82820d02820 +c02030c02020982030ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffe0a8c0d090a8d88090c07888c07888c888a0ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060a01820b82020c02030d82820d03828 +c82020b02030982030ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858a01820c02020d02820d02820d02820 +c02030c02020982030ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04050a02020b82020c02030d02820c02030 +c82820b82020982030e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858a02020b82020c82820d02820c82820 +c02020b02020901818e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa84050a82020b82020c82020d02820c02030 +c82020b02020981820d8a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060a82020b82020c02030d02820d02820 +c02020a83028981818e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa84050a02020b82020c82820c82820c02030 +c02020c02020a02020e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa84050a02020b82020c82820c82020c82820 +c02020b82020a83028e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa84050a02020b82020c82820d02820c02030 +c02020b82020a02020ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa84050a02020b82020c82820c02030d02820 +c02020a83028981818e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858a82020b82020c82820d02820c82820 +c02020b02020901818d8a0b0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060a82020b82020c82820c02030c82020 +c02020b82020901818e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa84050a82020b82020c82820d02820c02030 +c82820b82020982030e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa84050a02020b82020c82820d02820c82820 +c02020b82020981820e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa03848981820b82020c82820c02030d02820 +c02020a83028981818e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa84050a02020b02020c82820d02820c02030 +c02020b82020981820e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0a8c0c898b0 +b878a8808090ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa84050a02020b82020c82020c82820c82820 +c02020a83028981818e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffd8a0b0d88090c87080a85868a04858 +703858703858ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858a82020b82020c82820d02820c02030 +c82820b82020a02020e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffe0a8c0d088a0c87080b85868a03040a82830a02020901828802028 +884050a05068ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa84050a02020b82020c82820d02820c82820 +c02020b82020a02020d8a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +d8a8c0c08098b85868a04858a82830881818981820a82020b02020a02020901828982030 +903040d090a8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa84050a82020b82020c02030d02820c02030 +c02020a83028981818d8a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffd098c0b88098a05068884050 +982030901828901818901818901818982030a82020b02020a82020b02020a82020982030 +802028ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa84050a02020b82020c82820d02820c82820 +c82020b82020a82830ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffe0a8c0d088a0b86878a85068983848982030901828981820 +981820a02020a02020a82020a82020b02020b02020b02020b02020a01820981818881818 +903040ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa84050a02020c02020c82820d82820c02030 +c82820b82020982030ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd088a0c87080c06078a84050a03040a82830981820981820981820a02020a82020 +a82020a82020b02020b02020b02020b02020b02020b82020b02020a02020981820903040 +a85868ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa84050a82020b82020c02030d82820c82820 +c82820b02020a02020e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffe0a8c0d090a8c08098 +b86878a84050a03040a02020981820901818981820a02020a02020a82020a82020b02020 +b02020b02020b02020b02020b02020b02020b02020b82020a82020a82020901818983848 +d8a0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa84050a02020b82020d02820d02820c02030 +c82820a83028a02020ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffd098b0c08090c06078a04858a03040 +982030981820a02020a02020a82020a82020a82020a82020b02020b02020b02020b02020 +b02020b02020b02020b02020b02020b02020b02020b02020a82020a02020901818a04050 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa84050981818b82020c82820d02820c82820 +c82020b82020a02020e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd8a8c0c07888b85868a03038a83028a82020a82020 +b02020a82020b02020b02020b82020b82020b82020b82020b02020b82020b82020b02020 +b02020b02020b02020b02020a82020a82020a82020b02020a02020981818881818a05068 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04050a02020b02020c82020c02030c82820 +c82820b02020982030ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffc07888a03038a02020a02020b02020b82020c02020 +c82820c02020b82020b82020b82020b82020c02020c02020c02020b82020b82020b82020 +b82020b02020b02020a82020a82020a82020a82020a82020a01820901818903040c07888 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa84050a02020b02020c82820d02820c82820 +c02030b02020a02038ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffb86878a03848a02020a02020b02020c02020c02020c02020 +c02030c82820c02020c82820c02020c82820c02020c02020c82820c82820c02020b82020 +b82020b82020b02020b02020a82020a82020a01820a02020981818881818a04050d8a0b0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa84050a02020b02020c02020c82820c82820 +c82820b02020a02038e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffd8a0b0a03848a83028a02020a83028c02020c02020c82820d03828 +e02820c82820c02030d02820d02820c02030c82820c02020c02030c02020c02020c02020 +c02020a83028b82020a82020b02020a82020a02020981820901818881818b86878ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa03848a02020b02020c82820c02030c82820 +c82020b02030982030d8a0b0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffd098b0c06078a02020b02020b82020c02020c02020c82820c02030d82820 +d02820d02820c82820c02020c02020c82820c02030d03828c82820c82820c02030c02020 +c02020b82020b82020b02020a82020a01820a82020981820881818802028b87888ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff983848a02020a82020c82820d02820c82820 +c02030b02020a02038d8a0b0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffd88090a84050b02020b82020b82020c02020c02020c02020c82820c82820 +c02030c82820c02020c02030c02020c02020c82820c02020c82820c02020c02020c02020 +b82020c02020b82020b02020b02020a82020a01820901818801018a05068d8a0b0ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff983848981820b82020c02020c82820c02030 +c82020b02030a82830f09890d8c0b0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffc87080b02030c02030c02020c82820c02020c02020c02020b82020c02020 +c02020c02020c02020b82020c02020c02020c02020c02030c02020c82820c02030c02020 +c02020b02030b82020b02020b02020a82020a02020881818802028a87080ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd8c0b0d0c0a0d0c0a0d0c0a0d0b880d0b880d0b880 +d0b880d0b880c0a880788078788078a87080802028a02020b02020c82820c82820c82020 +c02030c82820a83028c8b060d8c858c8b060d0b880d0b880d0b880d0b880d0b880d0b880 +d0c0a0d0c0a0d0c0a0d8c0b0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffe0a8c0c06078c02030c02030d02820c82020c02030b82020a83028c02020b82020 +b82020b82020b02030c02020b82020c82820b82020c02020c82820c02020c02020c02020 +c02020c02020b82020b82020b02020b02020a01820801018702838c08098ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +d8c0b0d0c0a0d0c0a0d0b880d8e068d8c858d8c858d8c858d8b830d8b830d8b830d8b830 +e0c030d8c858a89030704018584818907828781010901818a83028c02020c82820c82820 +c82820c02020a83028d8b830e0c030e0c030e0c020e0c020e0c020e0c030d8b830d8b830 +d8c858c8b050d8c858d0b880d0b880d0c0a0d0c0a8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd8a0b0b84050c02030c82020d02820c02030c82820c02020b82020a83028b82020 +a83028b82020b82020b82020b82020c02030c02020c02020c02030c02020c02020c02030 +c02020c02020b82020b82020b02020b02020981820801018984078c898b0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffd8c0b0d0c0a0d0b880 +c0b078c8b050c8b050d8b830d8b830d8b830d8b830e0c030e0c030e0c030e0c030e8c820 +e0c030d8c858c0d848607030584818704018781010981820b02020c02020d02820c02030 +c82820b82020a82020d8b830e0c030e8c820e8c820e8c820e8c820e8c820e0c020e0c020 +e0c020e0c030d8b830d8c858d8b830c8b060c8b060d0b880d0b880d0c0a0d0c0a0d0c0a0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd088a0b84050b02030d02820d02820d02820c02020b82020a83028b82020b02020 +b82020b82020b82020b82020c02020c82820b82020c82820c02020c02020c82820c02020 +c02020c02030b82020b82020b82020b02020981820801018a87080ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd0c0a0d8e068d0b880c8b050c0a840c8b030c8b030 +e0c030d8c858e0c030e0c030e0c030e0c030e0c030e0c030e8c820e8c820e8c820e8c820 +e8c820d8e068d8c858907828584818704018781010a02020b82020c02020d02820c02030 +c82820b82020a83028e0c030d8e068e8c820e8c820e8c820e8c820e8c820e8c820e8c820 +e8c820e8c820e0c030e8c820e0c030e0c020e0c030b8d038d8b830d0b028d8b830d8b830 +c8b050c8b050d0b880d0c0a0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffc888a0a84050b82020c02030d82820c02030c02020c02020b82020b02020b82020 +b82020b82020b82020c02020c02020c02030c82820c02020d03828c02020c02030c02020 +c02020c02020b82020b82020b82020b02020981820500828d098b0ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd8c0b0d0c0a0d0b880d0b880c8b030c8a828d8b830d8b830e0c030e0c030e0c030 +e8c820e8c820e8c820e8c820e0c030e8c820e8c820e8c820e8c820e0c030e8c820e0c030 +e8c820e0c030d8c858704018383828704018781010901818a83028c82820c02030d02820 +c82820c82020c82820e0c030d8c858e8c820e8c820e8c820e8c820e8c820e8c820e0c030 +e8c820e8c820e8c820e8c820e8c820e8c820e8c820e8c820e8c820e0c020e0c020e0c030 +e0c030d8b830d8b830c0a840c8b050d0b880d0c0a8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd098b0b84050b02020c82820d02820d02820c02030b82020b82020b82020b82020 +c02020c02020c02020c02030c82820c02020c82820c02030c02020c82820c02020c02020 +c02030c82820b82020b82020b82020b02020981820801018d098c0ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd8c0b0d0c0a0 +d0b880d0b880d8c858c8b050c8a828e0c030e0c030e0c030e8c820e8c820e8c820e8c820 +e8c820e8c820e8c820e8c820e8c820e8c820e8c820e0c030e8c820e0c030e8c820e0c030 +e0c030e0c030c8b030607030704018704018881818a83028b82020c82820d02820c82820 +c02030c82820b02030e86850e0c020d8b830e0c030e0c030e0c030e0c030e0c030e8c820 +e0c020e8c820e0c020e0c020e8c820e8c820e8c820e8c820e8c820e0c030e8c820e8c820 +e0c030e8c820e0c030d8b830d8b830d8b830c8b050c8b060c0b078d8c0b0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd8a8c0c06868b02020c82020c02030c82820c02020c02020b82020c02020c02020 +c02030d03828c82820c82820c82820c02030d03828c82820c82820c82820c02030c82820 +c82820b82020b82020b82020b82020a83028901818a05080ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffd0c0a0c0b078c8b050 +c0a840c8b030c8b030e0c030e0c030e0c030e8c820e8c820e0c030e8c820e0c030e8c820 +e0c030e0c030e0c030e0c030e0c030d8b830d8b830d8b020d0b028c8a828c8a828c8a828 +c0a028b89828a08830704018584818704018802028981818b02020c02020d02820d02820 +c82020c02020981820b89828a08830a08830a89030a89030b89828b89828c0a028c0a028 +c0a840c8a828c8b030d0b028d0b028d8b830e0b820e0b820e0c030e8c020e0c030e8c020 +e8c020e8c820e0c020e8c020e0c030d8b830d8b830d8b830c8b050d8c858c8b060d0c0a0 +d0c0a8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffc06078a83028c02020c82820c02020c02020c02020c82820c02030c82820 +d02820d02820d02820c02030d02820c82820c02020c82820c02030d02820c82820c82820 +c82820c02020b02030c02020b82020b02020901818d090a8ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffd0b880d0b880c8b050d8b830d8b830 +e0c030e0c020e0c030e0c020e0c020e8c820e0c030e8c020e0c030e0c030e0c030e0c030 +d0b028c8a828c8a828b89828b89828b89828a89030a89030a89058c0a858b8a070c0a880 +b8a080c0a880a8a0a8b8c0a0c8a0a8ffffffa03848a02020b82020c82820c02030d02820 +c02030b82020a02020d88090d0c0a0c8a0a8c0a880b8a080b8a080b8a080b09068b09068 +a89058a89030a08830a89030a89030b89828b89828c0a828c8a828c8b030d0b028e0b820 +d8b830d8b830e0b820d8b830e0c020e0c020e0c020e0c020e0c020d8b830d8b830c0a840 +c8b060d0b880d8c0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffd88090981820a83028b82020b82020c02020b02030c02020c82820c82820 +c82820c02030d82820c82820b82020b82020b02020b82020c82020d02820d02820c02030 +d02820c82820c82820a83028b02020c02030881818e0a8c0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd8a0b0d0b880c8b060d8b830d0b028d8b830e8c020 +e0c020e0c020e0c020e0c020e0c030e0c020e0b820d8b830d0b028d0b028c8a828c0a028 +c0a840a89030a89058c0a858b8a070c0a880c8b8a0c8b8a0c8b8a0c8b8a0d8c0b0ffffff +ffffffffffffffffffffffffffffffffffffa85060a02020b82020c82820d03828c02020 +c82820a83028a02020e0a8c0ffffffffffffffffffffffffffffffffffffffffffc0c0b0 +c8b8a0c8b8a0c8b8a0c0a880c0b078c0a858a89030a08830a89030a89030c0a828c0a840 +c0a028c8a828c8a828d8b830d8b020e0b820e0c020e0b820e0c020e0c020e0b820d8b830 +d8b830c8b060c0b078d0b880d8c0b0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffd090a8a03848a82020b02020b82020b82020c82820c02020c82820c02030 +d02820d02820c82020b82020b02020a01820a82020b02020c02020c02030d82820d02820 +d02820c02030c82820b82020b02020c82820a03038ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffd8c0b0d0b880c8b060c0a840d8b830d8b830e0b820e0b820e0c030 +e8c020e0c030e0c020d8b830d0b028c8a828c0a028c0a840b89828c0a840c0a858c0a858 +c0a880c0a880c8a0a8c8b8a0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa84050a02020a83028c82820d02820c82020 +c82820b82020a02020e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd0c0a8c8b8a0c0a880b8a070b8a070a89058a89058 +a89030c0a840b89828c0a028c8a828c8b030d0b028d8b830d0b028e0b820e0c030d8b830 +d8b830c0a840c8b050c8b050c0b078d0b880d0c0a8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffe0a8c0b86878a02020a83028b82020c02020c82820c02030c82820c82020 +c02020c02020b02030b02020a02020a01820a82020b02020b82020c82820c82820d02820 +d02820c82820b82020b02020b82020a02020c06078ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffd0c0a0c8b060c0a840d0b028d8b830e0c020e8c020e0c030e0b820d8b830 +d8b830d8b830c8a828c0a028b89828a89030b09068c0a858c0a880c0a880c8b8a0d8c0b0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04050a02020b82020c82820c82820c82820 +c02020b02020a02020e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8a0a8c8b8a0 +b8a080b09068b09068a89030a89030b89828c0a028c8a828c8a828d8b830d8b830d8b830 +c8b050e0c030c8b030c8b030c8b030c0a840d0b880d0c0a0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffd88090a82830b02020c02020c02020c02030d02820c82820c02020 +c02020b82020a82020a02020981820a02020a82020a82020a83028c02020c02020c02030 +c82820c02030b02020b82020a83028981820d8a0b0ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +d0c0a8d0b880c8b060c0a840c8b030d8b830e0c020d8b830e0c020d8b830d8b830d0b028 +c0a028b89828a89030c0a840c0a858b8a080c8a0a8c8b8a0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858a82020b82020c02020d02820c02030 +c82820b02020981820e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffc8b8a0b8a070a89058a89058a08830a89030b89828c0a840c8a828c8a828 +d8b830d0b028d8b830d0b028d0b028c8b030c0a840c0b078d0c0a0ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffd8a0b0b02030b02020c02020d03828d02820d02820c02030c02020 +a83028a82020901818981820981820a82020a82020b02020b02020b82020c02020c02020 +c02020c02020b02020b02020a82830983848ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0b880 +c8b060c0a840c8b030c8b030e0c020c8b030e0c020b8d038d0b028c8b030c0a828b89828 +a89030a89058b09068b8a080d8a0b0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858a02020b02020c82820c02030d02820 +c02020b02020981820d8a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd8a0b0b8a080a89068907828a08830a89030c0a840 +c0a028d0b028d0b028d0b028e0c020c8b030c8b030c0a840c8b060d0b880ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffd88090a01820c02020c02030d82820d02820d02820c82820b82020 +a82020901818881818901818a02020b02020b02020b02020b02020b82020b82020c02020 +c02030c02020b82020a82020901828c87080ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0c0a0c8b050 +c0a828c8b030d8b830d0b028e0c020b8d038c8a828d0b028c0a828a89030a89030a89030 +b8a080c8b8a0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa84050a02020b02020c82820d02820c82020 +c02020a83028981818d8a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffa89068a08830a89030 +a89030c0a028c8a828c8a828c8a828d0b028d8b830c8b030c8b030c8b060d0b880d0c0a8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffc07888903040b02030c02020d02820d02820d02820c02030b82020a82020 +a02020801018901818a02020b02020b82020c02020b82020c02020c82820c82820b82020 +c02020c02020b02030a82830983848d8a0b0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffc8b8a0c8b050c0a828 +d0b028d8b830e0c020c8b030c8b030c0a828c0a828a89030a89030b09068c0a880ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858a02020b82020c82020c02030c82820 +c82820b02020a02020e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8b8a0b09068 +a08830a08830a08830c0a028c8a828d0b028d8b830c8b030c0a828c8b030c0a858d0b880 +d0c0a8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffb86878a03848981818c02020c02020c82820c02030c82820b82020a82020901818 +881818881818981820b02020b82020c02020c82820c82820c02020c02030c02020c82820 +c02020b82020a82830a02038b85868ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffc8b8a0c8b060b89828c8b030 +d0b028d0b028c8b030d0b028c8b030b89828a89030a89058c0a880c8b8a0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858a82020b82020c82820d02820c02020 +c02030b82020a83028e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd8c0b0 +c0a880a89058a08830a08830b89828c0a028c0a828c8a828c8b030c8a828c8b030c0a858 +c0a880ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd8a8c0 +b86878a03038a02020b82020c02020c82820c82820c82020b02020a82020901818801018 +781010901818a82020b02020b82020c02020c82820c02030d03828c02020c82820c02030 +c02020a83028b02030a02058c08098ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffc8b8a0b8a070c0a840c0a828c8b030 +d8b830c8a828c8a828b89828c0a840a89058b8a070c8a0a8ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858a82020b82020c82820c02030c82820 +c02020b02020a02020e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd0c0a8b8a080a89058a08830a89030b89828c8b030c8a828c8b030c8a828c8b030 +c0a858c0a880ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd090a8c06078 +b03040a02020b82020c82820c82820c02030b82020b02020a02020901818801018781010 +781010901828b02020b02020b82020c02020c82820c82020c82820c82820d02820c02020 +a83028b02020a84050c07888ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffc0a880c0a840c8b030c8b030c8b030 +d0b028c8a828b89828a89030b09068c888a0d0c0a8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa84050a02020b82020c82820d02820c82820 +c02020a83028981818e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffc8a0a8b8a080a89058a08830b89828c8b030c8a828c8a828c8a828 +c0a840c0a858d0c0a8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffd8a0b0c06078a82830 +b02020c02020c82820d02820c82820c02020a83028981820a03038a85068a05068984078 +702838b02030a82020b02020b02020b02030b82020c02020c82020c02030c02020b82020 +a82830a85060d88090ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffc0a880c0a858c0a828c8b030c8b030c8b030 +c0a828b89828a89030b09068c8a0a8ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04050a02020b02020c82820c02030d02820 +c02020b82020901818e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffc0b0c0a08890907828a08830b89828c8b030c0a828c8b030 +c8a828c0a840c0a880ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffd8a0b0c87080a03038b02020 +c82820d82820d03828c82020c02030b02020981820a83028a85868d8a0b0ffffffc088b8 +a05080a84050b03040a02038a82830a82830a01820a82830b82020b02030b02030b83848 +c06078d88090ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd0c0a0c0a858c0a840c0a828c8b030d0b028c8b030 +c0a828a89030b8a070c888a0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04050a02020b82020c82820d02820c02030 +c02020b82020a02020d8a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffc0b0c0a89068a08830a08830b89828c8b030c8a828 +c8a828c8b030a89058c8b8a0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffb86878a03038b02020b82020 +d02820d82820d82820d02820b82020a02020a02020a05068c8a0a8ffffffffffffffffff +ffffffc06098c06078b85868a03848983848903040981850b83848b84050c06078d88090 +d8a0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffc0b078c0a840b89828c8b030c8a828c8b030c0a828 +a89030a89058c0a880ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04050a01820b02020c82820d02820c82820 +c02020b82020901818ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffc8a0a8a89068a08830a89030c0a028c8a828 +c8b030d0b028c0a840b8a070ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffc87080982030981818b82020c82820 +d02820d02820c02030c02020a02020a02020a85868c8a0a8ffffffffffffffffffffffff +ffffffffffffffffffd8a0b0d088a0c08098c08098d88090d088a0d8a0b0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffd0c0a0c0a858b89828c8b030c8b030c8b030c0a828a89030 +a89058b8a070d8c0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858a02020b82020c82820d02820c02030 +c82820b82020a02020d8a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffa89058907828b89828c8a828 +c0a028d0b028c8b030c0a858c8b8a0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd8a0b0c87080981820a02020b02020c02020c82820 +c02030d02820c02020a02020781010a87080d8a0b0ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffc0a880c0a840c0a828c8b030c8b030c8a828c0a028a89058 +b8a080ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858a82020b82020c82020d02820c82820 +c02020a83028981820e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffc8a0a8a08830a08830b89828 +c8a828d0b028c8a828c0a840c0b078ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffd8a0b0c06078982030b02020b02020c02020c02020c82820 +c02020b02020a02020901828a85868d0a8c0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffb8a070a89030c0a828c8b030c8a828c8a828b89828b09068 +c8b8a0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858a82020b82020c82820c02030d02820 +c02020b82020981820d8a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffa89068a08830b89828 +c8a828d0b028c0a028c0a028c0a858d0c0a8ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffd090a8c87080b03040b02030c82820c82820c02020c82820c02030 +a82020981820903040b86878ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffa0b058a89030c0a828c8b030c0a828c8a828b89828b8a080 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060a82020b02020c82820d02820c02030 +c02020a83028901818e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffb8a080a08830b89828 +c8a828d8b020c8a828c0a828a89058d0c0a0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffd090a8b85868981850a82830c02030c82820d02820c02030b82020b02020 +981820a03038a05080d098b0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffd0c0a8a89058a89030c0a828c8b030c8a828c8a828a89030c8b8a0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb85868a02020b02020c02020d02820c82820 +b82020a82020881818e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffc0b0c0b09068b89828 +c8a828d8b830c8a828c8a828c0a840c8b8a0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd090a8b85868a03040a82020b02020c82020c82820d02820c82820b02020981820 +a03038a87080d098b0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffc8b8a0c0a840a89030c0a828c8b030d0b028c8a828b89828e0a8c0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb86878a02038a02020b82020c02030c02020 +b02020a02020802028ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0a858a89030 +c0a028d8b830c8a828c8a828a89030c8b8a0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +d8a0b0b86058982030b02020b82020c02020d02820c02030d02820b02020a02020903040 +a85868d098c0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffd0c0a898a850a89030c8b030c0a828d0b028c0a028b89828d8c0b0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb068a0a04858a03040a83028b82020a83028 +a83028a84050884050ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0a858b89828 +c8a828d8b020c8a828c8a828a89030c8b8a0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd098b0 +c06078a82830a02020b82020c82820c82820c82820c82820c02020901828981820b86878 +d098b0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffc0a840a89030c0a828c8b030c8a828c8a828c0a028c8b8a0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb098b0b87888c07888c87080c06868c06868 +c06868c07888b87888ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffd0c0a8c0a858b89828 +c8a828d8b020c8a828c8b030a89030c0c0b0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb84050 +a82830b82020c02020c82820c02020c02030c82820b82020901828981818a85868d8a0b0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffa89058a89030c0a828c8b030c8a828c0a028c0a840c0a880 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8c0b0c0e0c0c0e0a8c0f0a098e0c0c0 +f0a098e0c0c0b098b0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffc0a880c0a840c0a028 +d0b028d8b830d8b020c0a840a89030ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffe0a8c0c87080b82020 +b02020d02820d82820d02820c02030c02020b82020a02020881818a85868d8a0b0ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffb8a070a08830c0a840c0a828d0b028c8a828d0b028c0a858 +c8b8a0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8a8a0b8c8c8c0d0d0c8e0c0c0e0e0d8 +e8c8d0d0c8c8b0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffd0c0a8c0a858b89828d8b830 +d8b020d8b020c8a828c0a840a89058ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffd098c0d098c0c070a8c070a8 +c06098c84890c84890c84890c84890b03078c83078a04080c84890b85090b85090c06098 +c070a8c070a8d098c0d098c0ffffffffffffffffffffffffffffffffffffffffffd098c0 +b878a8c070a8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffd088a0b84050b02020b02020 +d02820d02820d02820d03828d02820b82020981820982030b87888e0a8c0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffc8a0a8a89058a89030c8a828c8a828c8b030c8a828c0a840 +c0a880d0c0a8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa0a0b0a0a0b0c8c8c0c8d0c8d0d0c8d0d0c8 +d0d0c8c0c0c0a8a0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffc0a880c0a840c8a828d8b020 +d8b020d8b830c8a828a89030b8a080ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffd098c0d088a0b85090c84890b03078c83078b03078c83078 +c83078c83078d82878c83078d82878c83078d82878c83078d82878c02870c83078c83078 +c83078c83078c83078b85090b878a8ffffffffffffffffffffffffffffffffffffd098c0 +b068a0a04080c84890c070a8d098c0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffd090a8b85868a01820b02020c02020 +d82820d02820c02030c02020b82020a02020982030b86878ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb8a070a89030b89828c0a840d8b020d0b028c0a028 +c8b060c0a880d0c0a0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0b0b8b0b8a8c0c0b0c8d0c8d0d0c8d0d0c8 +d0d0c8c0c0c0a8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffc8b8a0c8b050c0a028d0b028d8b020 +d8b830c8a828c0a028b09068c8b8a0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffd098c0c070a8c84890c83078b03078c83078c83078c02870c82870d02870 +d82878d82878e03080d82878e03080d82878e03080e03080e03080d82878d82878c83078 +d82878d82878b03078b02068a04080ffffffffffffffffffffffffffffffffffffffffff +c070a8b85090b03078d04080c84890c070a8d098c0ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb888a0a85060a82830a82020c02020c02020 +c02030c82820c02020a82020982030a03038b86878d8a8c0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb8a080a89058a89030c0a028c8b030d0b028c8a828 +c0a840c8b050c0a880d8c0b0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0a8b8b0b8a8c0c0b0c8d0c8c8d0c8c8d0c8 +c8d0c8c8d0c8a0a0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffd8c0b0c8b060c0a028d0b028d8b020e0b820 +d0b028c8a828c0a840b09068ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +c088b8c06098d04080c83078c02870c02870c82870d02870c82870d82878d02870d82878 +d82878e03078e03078e03078e03078e03078e03078d82878e03078e03080e03080e03080 +e03080d82878d02870c02870a03070ffffffffffffffffffffffffffffffffffffffffff +c088b8b03078c83078d82878c83078c83078c84890c06098d098c0d098c0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd0a8c0a87080983848901818a83028c02020c02020 +c82820c02020a82020901818a03038a87080ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffc8a0a8b09068a89058b89828c8a828c8b030d0b028 +d0b028c8a828c8b050c8b060d8c0b0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0a8b0b0b8c0c0b0c8d0c8c8d0c8c8d0c8 +c8d0c8c0c0c8b0b0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd0c0a8c0a880c0a840c8a828d0b028d8b830d8b830 +c8a828b89828a89058c8a0a8ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc088b8b85090 +c83078b03078b03078c02870c82870d02870d02870d02870d02870d02870e03080d02870 +d82878d02870d02870c82868d02870d02870d02870d02870d02870d02870d82878d82878 +d82878d02870c82870b02068a03070ffffffffffffffffffffffffffffffffffffffffff +ffffffc84890c83078d82878e03080e03080d82878c83078c84890c06098d098c0e0a8c0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb098b0a08890a87080b86058a83028a83028c02020 +c02020b02030981820983848a87080ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffc8a0a8a08830a08830c0a828c0a828c8a828 +e0b820d8b830c8a828c0a840c8b060d0c0a0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb098b0c8a0a8c0c0c0d0d0d0d8d8d8d8d8d8 +c8d0c8c0c0c8a0a0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffc8b8a0c0a880c8b050d8b020d8b830d8b020d0b028c8a828 +c0a828c0a840b09068ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffd098c0c06098c84890c02870 +c02870c82870d02870d02870c02870c82870c82870d02870c82870c82870c02870c02870 +b82068b82068b82068b82068b82068c02870b82068b82068b82068c02870c02870c02870 +c02870c02870b02068a82870a85088ffffffffffffffffffffffffffffffffffffffffff +ffffffc088b8c02870d02870e03080e03080e03080d82878c83078e03080c84890c06098 +d098c0d098c0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb8b8b8ffffffd8c0b0f0a098c06868a83028b82020 +a83028b02020983848a87080ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffb8a080a89058a08830c8a828d0b028 +d8b020d8b020d8b830d8b020d8b830c8b050d0b880d8c0b0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb098b0b0a8b8c0b0c0d0d0d0d8d8d8c0d0e8 +c0d0e8c8d0c8a0a0b0ffffffffffffffffffffffffffffffd0c0a0d0c0a8ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffd0c0a8b0b888c0a880c0a840d8b830d8b830e0c020e0c020c8b030c0a828 +a89030c0a858d0c0a8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffc088b8a04080b02068c02870c82870 +d02870d02870c82870c83078c82870a82870b82068b02068b02068a82870a02068a82870 +a03070a03070a03070984078a03070984078b03078a03070a03070a03070a03070a82870 +a03070a02058a02058984078b068a0ffffffffffffffffffffffffffffffffffffffffff +ffffffd098c0b03078d02870e03080e03080e03080e03080e03080c83078c83078c83078 +b03078c84890c088b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffff0a098b84050b03040 +981818982030b86878ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffd8c0b0a89068907828b89828c8b030 +d8b020d8b830d8b020d0b028d0b028d0b028c8b030d0b880d0c0a0ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0a8b8b0a8b8c8c0d8d0d0e0d0d0e0e0e0e0 +c8d0c8b8b8c8b0b0b8ffffffffffffffffffd0c0a0d0b880c0a880b8a070b0b888ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd0c0a0c8b060c0a840c8b030c8b030d8b830e0c020e0c020c8b030c0a828c0a840 +a89058c0a880ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffc070a8b85090b82068c82870d82878e03078 +d02870d02870c82870b82068a82870a02068a02068a02068984078984078a85088b068a0 +c088b8b098b0d098c0ffffffffffffd098c0ffffffffffffd098c0d098c0c088b8c088b8 +b068a0a05080a05080b068a0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffb85090b03078d82878e03080e03080e03080e03080e03080e03080c83078 +c83078c02870c83078c84890c06098d098c0ffffffffffffffffffffffffffffffffffff +ffffffffffffb0b0b8ffffffffffffffffffffffffffffffffffffffffffd88090801018 +903040c06098e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffc8b8a0a89058a08830b89828 +c0a028d0b028e0b820d8b830d8b020d8b830c8b030c8b030c8b060d0b880ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8b8b0c8c0b8d0d0c8e0d0d0e0d0d0d0 +c8c8d8c8d0c8b0b8a8ffffffc0c0b0c8b8a0c8b060c0a858c0a840c0a858c0b078d0c0a0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8b8a0 +c8b060c0a840c8b030c8b030b8d038e0c020e0c020e0c020c8b030c0a828a89030b09068 +b0b888ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffd098c0b068a0a82870b02068d02870d02870d02870d02870 +d02870c82868b02068a02058a02058a03070b068a0b878a8c088b8d098c0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffc088b8a82870b03078d82878e03080e03080e03080e03080e03080e03080 +e03080d82878c02870c02870b03078c83078c06098d098c0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8a0a8500828 +c888a0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffc8b8a0a89068a08830 +a89030c0a028c8b030d0b028d8b830e0c020d0b028d8b830d0b028c8b050c8b060d0c0a0 +d8c0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8a8a0b8c0b8d8d0c8c8d8d8d8d8d8d8 +d0d0c8d0c0a0b0b888a8b078b8a070c0a840c0a840c0a828c0a828c8b030d8c858d0c0a0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffd0b880c8b060c8b030 +c8b030d8b830e0c020e0c020e0c020e0c020d8b830c8b030c0a828a89030b09068c8b8a0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffc088b8b85090a82870b82068c82870d02870c82868d02870c82868 +b02068a02058a03070a85088b878a8c088b8ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffc088b8a04080a82870c02870d82878e03080e03080e03080e03080e03080 +e03080e03080e03080e03080d82878b03078c02870b03078c06098c070a8c088b8d098c0 +d0a8c0ffffffffffffffffffffffffffffffffffffffffffb8b8b8a8a0a8a08890a08890 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0c0a8b09068 +a89030a89030a89030c8a828d0b028e0c020e0c020d8b830d8b020d8b830c8b050c8b050 +d0b880d0b880d0c0a0d8c0b0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8a8a0b8c8c8d8d0d0d0e8c8d0e0e0d8 +d0c0a0c0b078c0a840a89058c8b030c8b030c8a828d0b028d8b830d8b830c8b050d0b880 +d8c0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffd0c0a0d0b880c8b050c8b030d8b830 +e0c020e0c020e0c020e0c020e0c020d8b830c8b030c0a828a89030b09068c8b8a0ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffc088b8b85090b03078b82068c82870d02870c82868d02870b82068a02058 +a02068a04080b068a0d098c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffa85088b03078c02870c82870d82878e03080e03080e03080e03080 +e03080e03080e03080e03080d82878d82878c83078c02870b02068b03078b03078c06098 +d090a8ffffffffffffffffffffffffffffffffffffffffffb0a8b8a098b0b0a8b8ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0c0a8 +b8a080a89058a08830a89030c8b030c8a828d8b830d8b020e0c020e0b820e0b820d8b830 +d8b830c8b050c8b050c8b060d0b880d0c0a8ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa0a0b0b0b0b8c8c8c0e8c8d0d8c0b0d0c0a0 +d0b880c0a840b89828c8b030d0b028d0b028e0b820e0b820e0c020d8b830e0c030d0b880 +d0c0a0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffd8c0b0d0c0a0d0b880c8b060c8b050c8b030d8b830d8b830e0c020 +e0c020e0c020e8c820e0c020e0b820d0b028b89828a89030b8a070c8b8a0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffc088b8b85090b03078c02870c82870d02870d02870c82868b02068a02058984078 +a85088d098c0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffc088b8b03078c02870d02870d82878e03078e03080e03078e03078 +e03078e03080e03078e03078e03078e03078d82878c83078c82870c82870c83078b03078 +b03078c87080c08098ffffffffffffffffffffffffb0a8b8a8a0b8ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +c0c0b0b8a080a89068a89058a89030c0a028c8a828e0b820e0b820e0b820e0b820e0b820 +e0c030e0b820d8b830d8b830c8b050c0b078c8b8a0c8b8a0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa0a0b0b0b8a8c8b8a0d0c0a0d0b880d8c858 +d8b830c8a828d8b830d8b020e0b820e0b820e0c020e0c020e0c020e0c020e0c030d8c858 +d8c0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd8c0b0d0b880d0b880c8b050d8b830d8b830d0b028e0c020e0c020e0c020e0c020 +e0c030e0c030d8b020d8b830c0a028c0a028b89828c0a880d0c0a0ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +d098c0b85090a03070c02870c02870d02870c82868c82868a02058a02058a05080b878a8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffd098c0b85090a82870d02870d82878e03078e03078e03078e03078 +e03080e03078e03080e03078e03078e03078e03078d82878e03078c83078d02870c82868 +c02870b02068a85060c06098ffffffffffffb0a8b8a8a0b8ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffc0c0b0b8a080a89058a89030b89828c0a028d8b830d8b020e0c030e0b820 +e8c020e0c020e0b820d8b830d8b830d8b830c8b060c8b060d0b880d0b880c8b8a0c8b8a0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0b888b8a080c0b078c0a858c0a840c0a840 +d0b028e0b820e0b820e8c020e8c020e0b820e8c020e8c020e8c820e8c820e0c030d8c858 +d8e068d8c0b0ffffffffffffffffffffffffd8c0b0d0c0a8d0c0a0d0c0a0d0c0a0d0c0a0 +d0b880d0b880c8b050d8b830d8b830d8b830e0c020e8c820e8c820e8c820e0c020d8b830 +e0c030d8b830c8a828c0a028b89828c0a840c0a880d8c0b0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +c06098b03078c02870b82068c82870c82870b82068a82870a02068a85088d098c0ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffb068a0b03078b82068c82870d82878e03078e03078e03078 +e03078e03080e03078e03078e03078e03078e03078e03078d82878d82878e03078e03078 +c82868b83848a03070b87888d098c0ffffffa8a0b8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffc8a0a8b09068a89058a89030c0a028c8a828d0b028d8b830 +e0b820e0c020e8c020e8c820e8c020e0c030e0c030d8b830d8b830d8b830c8b050c0a858 +c0a880d8c0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd0c0a8c0a880a89058c0a840c8a828d8b020e0b820 +e0b820e8c020e8c020e8c020e8c020e8c020e8c020e8c820e8c820e8c820e8c820e0c030 +d8c858f0a098d8c0b0d8c0b0d8c0b0d0c0a0d0b880d8c858c8b050c8b050c0a840d8b830 +d8b830e0c030e0c030e8c020e0c030e8c820e8c820e0c020e0c020e0c020d8b830c8b030 +c8b030c0a840a89030b09068b09068f0a098ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc070a8 +a82870c02870c02870c82868c82870c02870a02058a02068a05080ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffc088b8a04080a02068c82868e03078c82868e03078e03080 +e03078e03078e03080e03078e03078e03078e03078e03080e03078d82878e03078e03078 +d02870c83078c06098c898b0b0a8b8a8a0b8ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb8a080a89058a89058b89828b89828c8a828 +d8b830d8b830e0b820e0c020e0b820e8c020e8c020e8c020e8c020e0c030d8b020b89828 +a89058c0a880ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffd0c0a8d0b880c8b060c0a828c8a828e0b820d8b830e0b820 +e8c020e8c020e8c020e8c020e8c020e8c820e8c820e8c020e8c820e8c820e8c820e0c030 +e0c030d8c858d8c858d8c858c8b060d8c858c8b050d8b830d8b830d8b830e0c020e0c030 +e8c020e8c020e8c020e8c020e8c020e8c020e0c020e0c020d8b830c8b030c8b030c0a828 +a89058a89058b09068b8a080d8c0b0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd098c0a04080 +b82068c82868c82868c83078c02870a02058a02068b068a0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffa85088a03070b02068d02870d02870d02870e03078 +e03078e03078e03080e03080e03080e03080d02870e03080e03078e03080e03080e03080 +d04080c87080d098b0d098c0b098b0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffc8b8a0a87080a89058a89058a89030 +c0a028c8a828d0b028e0b820e0c020e8c020e8c020e8c020e8c820e8c020d8b830b89828 +c0a840c0a880ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffd0c0a0c8b060c8b050d8b830d8b830e0c020e0c020e8c020e8c020 +e8c820e8c020e8c820e8c820e8c820e8c820e8c820e8c820e8c820e8c820e8c820e8c820 +e0c030e0c030e0c030d8c858e0c030e0c030e0c030e0c030e8c820e8c820e8c820e8c820 +e8c820e8c820e8c820e8c820e8c820e0c030d8b830d0b028c8b030c0a840a89030a08830 +a89068c8b8a0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb85090a02068 +c02870b82068c82868c02870b02068a02068a85088d098c0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb878a8984078a02058c82870d02870d82878e03078 +e03078e03080e03080e03078e03078e03080e03078e03080e03078e03080d02870c82870 +c06098e0a8c0c088b8c898b0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8b8a0b09068 +a08830907828a89030c0a840c8a828d8b830d8b830e0b820e0c030e0c020c0a840a08830 +a89030d0b880ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd0c0a0c0a880c0a858c0a840d8b830e0c030e0c020e8c820e8c820e8c820e8c820 +e8c820e8c820e8c820e8c820e8c820e8c820e8c820e0c030e8c820e8c820e8c820e8c820 +e0c030e0c030e0c030e0c030e0c030e0c030e8c820e8c820e8c820e8c820e8c820e8c820 +e8c820e8c820e0c030d8b830c8b030d0b028c0a828a89030a08830a08830b8a080ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffc088b8a02068a82870 +c82870c02870b82068a02058a82870b85090ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffc088b8a04080a02068b02068c82868e03078e03078 +e03078e03078e03078e03078e03078e03078e03080e03078e03078e03080c84890d088a0 +e0a8c0d098c0b098b0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +d8c0b0c8b8a0c0a858a08830a08830a89030c0a028c8b030d0b028c8b030c0a828a89030 +c0a858d0c0a0ffffffffffffffffffffffffffffffffffffffffffffffffffffffd0c0a8 +d0b880c8b050c8b050e0c030e0c030e8c820e8c820e8c020e8c820e8c820e8c820e8c820 +e8c820e8c820e8c820e8c820e8c820e8c820e8c820e8c820e8c820e8c820e8c820e8c820 +e8c820e0c030e0c030e0c030e8c820e8c820e8c820e8c820e8c820e8c820e0c030e8c020 +c8b030d8b830c8b030c0a828a89030a89030a89058c0b078c8b8a0ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffd098c0a05080a03070b82068 +c02870c82870b82068a82870a04080c088b8ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb068a0a02058a82870c02870d02870e03078 +e03078e03078e03078e03078e03078e03078e03080e03078e03080e03078d88090d098c0 +d098c0b098b0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffc8b8a0b8a080a89058a08830a89030a89030a89030a89030a89058 +c0a880ffffffffffffffffffffffffffffffffffffffffffffffffd8c0b0d0c0a0c8b060 +d8b830e0c030e0c030e0c030e8c820e0c030e8c820e8c820e8c020e8c820e8c820e8c820 +e8c820e8c820e8c820e8c820e8c820e8c820e8c820e0c030e8c820e8c820e8c820e8c820 +e8c820e8c820e8c820e8c820e0c030e8c820e0c030e0c020e0b820d8b830d8b020c0a840 +b89828a89030a08830a89058c0b078d0c0a0d0c0a8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffb878a8a03070b02068c02870 +c02870c02870a02058b03078c08098ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb878a8984078981850b82068d02870e03078 +e03078e03078e03078e03078e03078e03078e03078e03080e03078b82068c83078c06098 +c088b8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffc8b8a0c8b8a0c0a880c0a880b8a080b8a080b8a080 +ffffffffffffffffffffffffffffffffffffffffffd0c0a8d0b880d0b880d8c858e0c030 +e0c030e8c820e8c820e8c820e8c820e8c820e8c820e8c820e8c820e8c820e8c820e8c820 +e8c820e8c820e8c820e8c820e8c820e8c820e8c820e8c820e8c820e8c820e8c820e8c820 +e8c820e8c020e0c030e0c030d8b830d8b830c0a828c0a828b89828b89828b89828b09068 +b8a070b8a080b0b888d0c0a8ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffd098c0a85088a03070c02870c82870 +c82868b02068a02068a85088d098c0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffd098c0a85088a02058a02058d02870d02870 +e03078e03078e03078e03078e03078e03078e03078e03078c02030b82068a03070c06098 +d0a8c0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffd0c0a0d8e068d8e068e0c030e0c030e8c820 +e8c820e8c820e8c820e8c820e8c820e8c020e8c020e8c820e8c820e8c020e8c820e8c820 +e8c820e8c820e8c820e8c820e8c820e8c820e8c820e8c820e8c820e8c820e8c820e8c820 +e8c020d8b830c8a828c0a840b89828c0a840a89058c0a858b8a070d88090c0a880d088a0 +d8c0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffb878a8a03070a82870c82870d02870 +c02870a02058a04080b878a8ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffb068a0a02068a02058c02870c82868 +d02870d82878d82878e03078e03078e03078e03078c82868d04080d04080c02870a85088 +c088b8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd0c0a8c8b8a0c0b078d8c858e0c030e0c030e8c820 +e8c820e8c820e8c820e8c020e8c020e8c020e8c020e8c020e8c020e8c020e8c020e8c020 +e8c020e8c020e8c820e8c820e8c820e8c020e8c820e8c020e8c020e8c020e8c820e8c020 +e8c020d8b830c0a840c0a858b8a070b8a080d0b880d8a0b0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffd098c0a85088a02068c02870c82870d02870 +b82068a82870c06098ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffc088b8984078981850b02068c82868 +d02870d02870d02870d02870d02870d02870b82068c82868c84890d88090d04080b03078 +b85090d098c0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0b888c0b078c0a840c0a840c8b030d8b830 +d0b028d8b830d8b830e0c030e0c030d8b830e0b820e0c030e8c020e8c020e8c020e8c020 +e8c020e0b820e8c020e0b820e0c030e0c030e0c030e8c020e0c030e8c020e8c020e8c020 +d8b830c8b060d0c0a0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb878a8a03070a82870c82870c82868d02870 +b02068b03078d098c0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffd0a8c0a05080981850a02058c82868 +c82868c82868c02870c83078d04080a02058a02058b82068d82878c84890c84890d82878 +c83078b85090ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffd8c0b0d0c0a0c0a858c0a840a89030 +a89030a89030c0a028c8b030d8b830d0b028d0b028d8b020d8b830d0b028d0b028d8b020 +d8b020d8b020e0b820e0b820d8b830e0b820e8c020e0c030e0b820e0b820e0b820d8b830 +d8b830d8c858d8c0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb068a0b03078b82068c82868c82868c82868 +b02068b85090ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffa87080703858981850c82868 +b82068b82068a82870b85090d088a0d088a0981850a82870d04080e03080e03080e03080 +d04080c83078c84890ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd8c0b0 +b8a080b09068a89058a08830a08830a89030a89030b89828b89828c0a028d0b028d0b028 +c8a828d0b028c8a828d0b028d8b020d8b830d8b020d8b020d8b830d8b020e0b820d8b830 +c0a840d0b880d8c0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd098c0a85088b03078c02870c82868d02870b82068 +a03070c088b8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffff9898a0585068901828981850a02058 +c02870a02058a03070a05068b878a8d8a8c8a85088a03070c02870c83078e03080e03080 +e03080e03080b03078c070a8ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffd0c0a8b8a070a89058907828907828a08830a89030a89030b89828 +b89828c0a840c0a028c0a028c0a028c0a028c0a028c8a828c8a828c8a828c8b030c8a828 +c0a840d0b880d0c0a8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb878a8b03078b02068c82868c82868c82868b82068 +a04080ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff9898a0585068582850500828981850981850 +a02058a02058582850703858808090a098b0ffffffc06098a02058c82870e03080e03080 +e03080e03080d04080b03078d098c0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff909878584818704018607030907828907828 +907828a89030a89030b89828b89828b89828c0a840c0a028c0a028c0a840c0a028c0a828 +c0a840c0a880ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffc06098a03070b82068c82868c82868c82868a02058 +b068a0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffff9898a0585068384038404048582850702838981850 +702838582850582850585068808090a8a0b8ffffffffffffc06098b03078c83078e03080 +e03080e03080e03080b03078b85090ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff788078582850584818584818702838584818 +704018607030907828907828a08830a08830a08830a08830a89030b89828b89828a89030 +c0a858d0b880ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffa85088b02068c02870c82868c82868b82068a02058 +b098b0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffa08890585068404048404048404048582850500828702838 +500828703858703858808090a0a0b0ffffffffffffffffffe0a8c0c84890b03078d04080 +e03080e03080e03080e03080b03078d098c0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff788078505058404040384038405020383828 +584818584818584818a89058788848907828907828907828a08830a08830a08830a08830 +c0a840b8a080ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffa04080c02870c82868d02870c82868c82868a02068 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffff808090585068404048384038384038384038404040582850500828 +582850884050808090a8a0b8ffffffffffffffffffffffffffffffc088b8c83078b03078 +e03080e03080e03080e03080b03078c84890ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff808090505058404040383828584818383828 +506028383828585068a098b0b0a8b89898a0a89068a89058907828907828907828907828 +a89058b0b888ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffc088b8b03078b82068c82870d02870c82868b02068a03070 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffff9898a0585068404048404040404048384038384038404040384038582850 +585068808090b0a8b8ffffffffffffffffffffffffffffffffffffffffffc06098b03078 +c83078e03080e03080e03080e03080b03078c070a8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff808090404048404040384038383828383828 +404048404040706878ffffffffffffffffffc8a0a8b8c0a0a89068788848788848788848 +a08890c0c0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffb878a8a03070c02870c82868d02870c82868b02068984078 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffb0a8b8808090505058404040404040404040404040404048404040404048505058 +808090b098b0ffffffffffffffffffffffffffffffffffffffffffffffffd098c0b85090 +a02068c83078e03080e03080e03080d82878c84890d098c0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff808090505058404040384038384038384038 +404040404048706878ffffffffffffffffffffffffffffffffffffffffffb098b0b888a0 +b0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffb878a8b03078c82868d02870d02870c02870b03078a05080 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffb0b0b8b0b0b8706878404040384038404040404040404048404048505058808090 +b0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb878a8 +a03070a82870c02870e03080e03080e03080d82878c070a8ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff808090505058384038404040384038384038 +404048404048706878ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffb068a0b02068c02870d02870d02870c82870b03078b068a0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffff9898a0585068404040384038404040404048505058808090ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +a85088a03070c83078d82878e03080e03080e03080c84890d098c0ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff808090505058404048384038384038404040 +404040404048706878ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffa05080b02068c02870c82868d02870c82870b03078c088b8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffff788078505058383828404048585068808090ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +d098c0a04080b02068d02870e03078e03080e03080c83078c06098ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff808090505058404048404040384038404040 +404048404048585068ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffff984078b03078c82868d02870d02870c02870b03078c088b8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffa08890703858505058585068808090b8b0c0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffb068a0a02058c83078e03080e03080d82878c02870b85090d098c0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff808090505058404048384038384038404040 +404040404048706878ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffff984078a82870c82868d02870d02870c82870a82870d098c0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffd0a8c0b888a0b888a0c8a0a8ffffff +ffffffffffffffffffffffffa8a0a8706878706878808090ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd098c0a04080c82870e03080e03080d82878c83078c83078b068a0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff808090505058404048404040384038404040 +404040384038585068ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffff984078a82870d02870d02870d02870c02870b03078d098c0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffc890a8a85868a04858a04858b09068c888a0 +ffffffffffffffffffffffffa8a0a8808090a08890ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffc070a8b02068d02870d82878d82878e03080c83078b03078ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff808090505058404048404040384038404040 +404048404048585068ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffff984078a82870c82870d02870d02870c82870b03078d098c0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd090a8a85060982030a02020a02020a03038b86058 +d88090ffffffffffffffffffa098b0a098b0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffa02068c02870c82870e03080e03080c83078b03078c06098ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff808090585068404048384038404040384038 +404048384038585068ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffa04080a82870c82870d02870c83078c82870b03078d098c0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffd098b0c06078a82020a82020b02020a83028a82020a83028 +c06868f0a098c8a0a8a8a0a8a8a0b8ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffa04080b02068c83078e03080e03080d82878c83078a04080ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff808090585068404048404040384038404040 +404048384038585068ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffa05080b03078c02870d02870d02870c02870b03078c088b8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffd090a8b85868a02020b02020c02020c82820c82820b82020a83028 +a83028c07888a8a0a8b0a8b8ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffb878a8a82870c02870d02870e03080e03080c83078a82870ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff808090505058404048404040404040384038 +404048582850585068ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffa05080a02068c82870d82878d82878c82870b03078c06098 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffd088a0b86058981820b82020c82820d02820d02820d03828c02020b02020 +a02020a05068c890a8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffa03070b82068d02870e03080e03080d82878b03078c070a8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff808090505058384038384038404040384038 +404048404048585068ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffb068a0a03070c02870d02870d02870c82870b03078c06098 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd88090b84050a01820b02020c82820d02820d02820c02030d02820b02020981820 +a03038c07888ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffb85090b03078d02870d82878e03080e03080c82870c84890 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff808090585068505058404048404048384038 +404040404048585068ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffc088b8b03078c02870c82868d02870c83078c02870b85090 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +d88090e04840a82020b02020c82820c82820c02030c82820c02020b02020a02020982030 +b86058d8a8c0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffd098c0b03078c83078d82878d82878e03080c83078c02870 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff9898a0808090808090788078788078706878 +505058404048585068ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffa04080b82068c82870d82878d82878c83078b85090 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd88090 +b84050b82020c02020c02020d02820c82820c02020b82020a82020a02020a03038b85868 +d090a8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb85090c02870c82870d82878e03080e03080c02870 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa098b0a8a0a8b0b0b8c0c0b0c0c0c0a8a0a8 +909878706878706878ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffa04080b02068c82868e03078d82878c02870b03078 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd88090a04858 +c02030c02020c82820c82820c02030c82820b02020a02020981820983848b86878c8a0a8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb85090a82870c02870d82878e03078d02870c02870 +c070a8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa0a0b0b0b0b8c8c8c8d8d8d8d8d8d8d0d0d0 +b8b8c09898a09898a0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffa85068a82870d02870e03078d82878c83078b03078 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffd88090a84050b02020 +b82020c82820d02820c02030c02020b82020a02020901818903040b86878d098b0ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb068a0a82870c02870c83078d82878d82878c83078 +a85088ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8b0b0b8c0c0c8d0d0d0d8d8d8e0e0e0 +d8d8d8b8b8c0a8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb85090c02870c82868d82878d82878c82870b03078 +c088b8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffd88090b84050a82020b82020 +c02020c02030d02820c02020a83028b02020901828903040a85088d098b0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffc088b8a04080c02870d02870e03078d02870c83078 +a03070ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa098b0a8a0b8c0c0c0c8c8c8d0d0c8d0d0d0 +d8d8d8c8c0d8b0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb878a8b03078d02870d02870e03078e03080b02068 +b068a0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffd090a8a84050a02020b82020c82820 +c82820c02020c02020b82020a82020901828a03040c06098d8a8c0ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb85090a02068d02870e03078d02870c83078 +a03070ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8b0b0b8c8d0c8d8d8d8d0d0c8d0d0d0 +d0d0c8c0c0c8b8b0c0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd098c0d04080c02870d02870e03080e03080c02870 +a04080ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffc08090a84050a82020b82020c82820c02030 +c82820c02020a83028b02020981820901828c06098ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb068a0a02058d02870e03078d82878c02870 +b03078d098c0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8a0a0b0c0c0c0d0d0d0d0d0d0d8d8d8 +d0d0c8c0c0c8b0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb85090b02068d02870d02870e03078d82878 +b03078c088b8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffc08090a84050a02020c02020c82820d82820d82820 +c82820b82020b02020901828901828a87080ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb068a0a82870c82868d02870c83078c02870 +b03078c070a8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8a8a0b8c0c0c0d0d0c8d0d0c8d0d0c8 +d0d0d0c0b0c0b0b0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb068a0a03070c82870e03078e03078d02870 +c02870c06098ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffc07888b83848a02020a83028c02020d02820d02820d02820 +c02030a82020901818983848c08098ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb878a8a82870c82868d02870d82878c02870 +a82870c06098ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0a8b8b0a8b8c0c0c0d0d0d0d0d0c8e0e0d8 +d0d0c8c0c0c0b0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffc088b8b03078b82068d82878e03078e03078 +c02870b85090ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffc07888b83848a02020b02020c02020b82020c02020d02820c02030 +b02020982030a84050c07888ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb878a8a03070c82870d82878d02870c82870 +a82870c06098ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8b0a8b8c0c0c8d0d0c8d8d8d8d0d0c8 +d0d0d0c0b0c0b0b0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffd098c0b85090b02068c83078e03078d82878 +c83078b03078d098c0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffb87888a84050a82020b02020c02020c82820a83028b82020c82820b02020 +a02020a04858d088a0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb878a8b03078b82068d02870d82878c82870 +c02870c06098ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffa8a0b8c0c0c0d0d0c8d0d0c8d8d8d8 +d0d0c8c0c0c0b0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffc06098a82870c82870e03078e03078 +d82878c83078c06098ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffc08090a03040a83028b82020c02020c82820c82820c02020a83028b02020981820 +a84050c08098ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffc088b8984078c02870d02870d82878c83078 +c02870b85090ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0a8b8b0b0b8c0c0c8d0d0c8d0d0c8d0d0c8 +d8d8d8b8b8c0b0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffc070a8a03070c02870d02870e03078 +c83078c83078c84890d098c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +c888a0a03040a02020b82020c02020c82820c02020c02020c02020a82020901818983848 +c08098ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffc088b8a04080c82868c82868d02870d82878 +c02870b85090ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffa8a0b8c0c0c8d0d0c8d8d8d8d0d0c8 +d0d0c8c0c0c0b0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffd098c0b85090a82870c82870e03080 +d82878e03080c02870c070a8ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc07888 +a03848a02020b82020c02020c82820c82820c02030c82820b02020981820983848a87080 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffd098c0a04080b82068d02870d02870d02870 +c02870b85090ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0a8b8b0b0b8c0c0c8d0d0c8d0d0c8e0e0d8 +d0d0c8c0c0c8b0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffc070a8a82870c02870d02870 +e03080e03080d02870c84890d098c0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffd8a8c0b87888903040 +a02020c02020c82820c82820c82820d02820c82820a83028a01820a03848c08098ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffd098c0a85088b02068d02870d02870d02870 +c02870b03078ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffa8a0b8c0c0c0d0d0d0d0d0c8d8d8d8 +d0d0c8c0b0c0b0b0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffd098c0a03070b02068c82870 +d82878e03078e03080d82878c070a8ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffe0a8c0c07888982030981820 +b82020d02820d02820d02820c02030c02020b02020981820901828c888a0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffd098c0a85088b02068d02870e03078d82878 +c02870b03078ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0a8b8b0b0b8c8c8c8d0d0c8d0d0c8d0d0c8 +d8d8d8c0c0c0a8a0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffc070a8a03070c02870 +d02870e03078e03080d02870d04080c070a8ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffc87080a03040a82020b82020 +c02020d03828d82820d02820c02030b02020981820903040b87888ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffc088b8a03070b02068c82868e03078c82868 +c02870c06098ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffb0a8b8c0c0c8d0d0c8d8d8d8e0e0d8 +d0d0c8b8b8c8a8a0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffd098c0a85088a02068 +d82878e03078e03078d82878c83078c06098ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffd090a8a85868b03040b02020b82020c82820 +d03828c02020c82020c02030b02020a02020a03848c08098ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb878a8a03070b03078d02870d02870d02870 +c02870c06098ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0a8b8b0b0b8c0c0c8d0d0c8d0d0c8d0d0c8 +d8d8d8c0c0c0a8a0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc070a8b03078 +c82870d02870e03078e03080c83078c84890c070a8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffe0a8c0a85868a02020a02020b82020c82820c02030 +d02820c82820b82020a82020a02020a85060c888a0ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb878a8a03070b82068d02870d02870d02870 +a82870c070a8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8b0b0b8c0c0c8d0d0c8d0d0c8d8d8d8 +d0d0c8c0c0c8a8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd098c0a85088 +b82068c83078e03078d82878c83078c83078c84890ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffd090a8a85868a03038a82020a83028c02020c82820d02820 +c02020c82820a82020901818a04858d088a0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb068a0a02068b82068c82868d02870d82878 +a82870d088a0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffa8a0b8c0c0c0d0d0c8d0d0c8d8d8d8 +d0d0c8c0c0c0a8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb878a8 +a02068c82870c83078e03080e03080c83078c84890c06098ffffffffffffffffffffffff +ffffffffffffffffffd8a0b0a85060982030a82020b82020c02020c02020c02020c02030 +b82020a82020982030a04050c08098ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffc06098a02068c02870d02870d02870c83078 +a02068d098c0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8b0b0b8c0c0c8d0d0c8d0d0d0d0d0c8 +d8d8d8c0c0c8b0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd098c0 +a04080b02068c82870c83078e03080e03080d82878c84890c070a8ffffffffffffffffff +ffffffffffffd8a0b0c06078981820a02020b82020c82820c02020b82020a83028c02020 +a83028881818a03848c888a0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb85090b02068c02870d02870d02870c82870 +981850ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0a8b8a8a0b8c0c0c0d0d0d0d0d0c8d0d0c8 +d8d8d8c0c0c0b0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +b068a0a03070b82068c83078e03080e03080e03080e03080c84890d098c0ffffffffffff +ffffffd8a0b0b85868b82020a82020b82020c82820d02820c02030b82020b02020a82020 +981818a03848b888a0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffc088b8b03078b02068c02870c82868d02870b82068 +a03070ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0a8b8b0a8b8c0c0c0d0d0d0d0d0c8d0d0c8 +d8d8d8d0c0b8b0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffb85090b02068c83078e03080e03080e03080e03080b03078c06098ffffffffffff +e0a8c0b85868b02020b02020c02030c82020c82820e02820d03828c02020b02020981820 +903040d8a0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb85090a02068a82870c82868d02870c82868b82068 +a05080ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8a8a0b8c0c0c8c8d0c8d8d8d8d0d0d0 +d0d0d0c0c0c8b0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd098b0a04080a82870d82878e03080e03080e03080e03080b03078d090a8d8a0b0 +d04080a82830b82020c82020c02020c82820d82820c02030c82820b82020981820903040 +c8a0a8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffa04080a03070c82870c82870c82868d02870b02068 +c088b8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0b0b8b8b0c0b8b8c8c8d0c8c0d0e8c0d0e8 +d8d8d8c0c0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffc088b8a85088b03078d82878e03080e03080e03080c83078c82868b03040 +b02020b82020c02020c02030b82020c82820c02020c02020a83028981820983848d088a0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffd098c0a04080b02068c02870c82868c82870b82068a02058 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa0a0b0a8a0a8c0c0c8c0d0e8e0e0e0c0d0e8 +c0d0e8c0c0b0c8a0a8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffb878a8a04080c83078e03080e03080e03080c82868b02030b02030 +b02020c02030d02820d03828b02020a83028b02020a02020901818983848b88098ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffa85088b03078b02068c02870c82868c82870b02068a03070 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb098b0c8a0a8c0c0c0d0d0d0c8c8d8c8d0c8 +d8d8d8d0c0b8c8a0a8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffb068a0b03078c02870e03080d04080d04080b85868b03040 +a82830b82020b82020c82820c02020b02020a02020982030a04858b88098ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffa03070a03070c02870c82870c82868c02870a82870b068a0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb098b0c8a0a8d0c0b8e0c0c0e0c8d8d8d8d8 +f0d0e0d8a0b0c8a0a8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffc088b8a04080a03070b03078c06098d8a0b0d8a0b0d88090 +c06868b83848b02020c82820b82020a83028981820a85868c890a8ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffc088b8a02068b02068c82870d02870c82870b02068a03070d098c0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb87888a87080d088a0e0c0c0e8b8d0e8c8d0 +e0c0c0d88090b87888ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb878a8a85088a85088d8a0b0ffffffffffffffffff +d8c0b0c87080d03828b02020a82020a01820a85060c890a8ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffa04080b03078c02870c82868d02870c02870a82870a85088ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa05068903040b86058d88090f09088f09890 +c87080a84050983848ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb098b0c898b0ffffffffffffffffffffffff +fffffff0a098a84050982030981818a03040d098b0ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffc088b8a02068b82068c82868c82868c82870c02870a03070c088b8ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff884050881818981818a82020b03040b03040 +a82830a02020903040d8a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd8c0b0b85868901818982030c87080ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd098c0b03078b02068c02870d02870d02870c02870a02058a04080ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb86058a83028a83028b02020b82020a82020 +b02020a83028a03038ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffc8b8a0a05068781010580808a04858b878a8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffb85090981850c02870c82868d82878c83078b02068a03070c070a8ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff983848981818b82020c82820c82820c82020 +c02020b02020901818d0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffb0b0b8ffffffffffffffffffffffffffffffffffffffffffc0c0b0 +b0b8a8a08890703858781010500828500828582850b068a0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +d098c0a02068c02870c82868d02870c02870a02058a02068c06098ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04050a02020b82020d02820d02820d02820 +c82820b02020a83028d0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b8a8 +a08890703858500828500828580808500828500828703858a05080b098b0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb878a8 +984078a02058c82870c82870c02870b82068b02068a85088c088b8ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858a82020c02020d02820d82820d02820 +c02030b82020a83028d0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b8a89898a0 +706878584818500828500828500828500828702838500828a02058a05080c088b8ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb878a8a04080 +a03070c02870c02870c82868b82068a02058a03070b878a8ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858a82020c02020d02820d02820d82820 +c02030b82020a83028d0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffb0a8b8a8a0a89898a0 +a87080582850500828383828500828500828802028981850a02058b03078d04080c06098 +d098c0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffc070a8b03078a82870 +b02068c82870c02870b82068a82870a03070b068a0d098c0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858a82020b82020d02820d02820d82820 +c02030b82020a83028d0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +c0c0b0ffffffffffffffffffffffffffffffffffffffffffb0a8b89898a0b0a8b8ffffff +a8a0b8a08890703858500828500828702838901828b82068c83078d04080e03078c83078 +c84890d090a8d098c0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffc06098b03078a82870b82068 +c82870c02870c02870a02058a02068a05080c088b8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858a02020b82020d02820c02030d03828 +d02820a83028a02020d8a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffb0a8b8a8a0a8a8a0b0ffffffffffff +ffffffffffffb888a0703858582850500828b02068e03078e03080e03080e03080e03078 +c83078c84890c06098c088b8ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffd098c0c070a8b03078b02068b82068d02870 +c82870b82068c02870a02058984078c088b8ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858a02020b82020c82820d82820d02820 +c82020b82020a02020ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0a8b8a8a0b0a8a0b8ffffffffffffffffff +ffffffffffffffffffc088b8706878981850b02068c83078e03078e03080e03080e03080 +e03080e03080b03078c83078c070a8d098c0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd098c0b85090a02068c02870c02870c82870c82868 +c02870c02870a02068a03070b068a0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85068a82020b82020c02030c82820c02030 +c02020b02020982030e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb0a8b8a0a0b0a0a0b0ffffffffffffffffffffffff +ffffffffffffffffffffffffd098c0b068a0a03070b82068c82868e03078e03080e03080 +e03080e03080e03080c83078c02870c84890c06098d098c0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffd098c0c070a8b03078a02068a02058c82870c83078d02870c82868 +b82068a02058981850b068a0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85068a02038b82020c02020c02020c82820 +c02020a83028a02020d8a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffb0b0b8a8a0b8b0b0b8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffc088b8a85088b03078b03078c83078e03080 +e03080c84890e03080e03080e03080c83078d02870c02870c83078c070a8d098c0e0a8c0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffc070a8c84890b03078b03078b02068b82068d04080b82068c82868c02870c02870 +b02068a03070b068a0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85068a82020b02020c02020c82820c02030 +c02020b02020a02020e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffb0b0b8a0a0b0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffb878a8a04080c83078c83078 +e03080e03080e03080e03080e03080e03080e03080e03078e03080e03080c83078b85090 +c070a8d098c0d098c0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffd098c0c088b8c06098 +c84890b03078b03078c02870c82870c82870c82870c02870c02870b82068b02068a02058 +a85088d098c0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85068a02020b02020c02020c82820c82820 +c02020b82020a03038e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb8b0c0ffffffffffffffffffffffffffffffffffff +ffffffffffffb0b0b8a0a0b0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffc088b8b068a0a04080 +b03078c83078c83078d82878e03080e03080e03080e03078d82878e03080c83078c83078 +b03078c84890b85090b85090c06098c06098c088b8d098c0d098c0d098c0d098c0e0a8c0 +d098c0ffffffd098c0d098c0d098c0d098c0d090a8c070a8c06098c84890c83078c83078 +c02870c82870d02870d02870c82870c82870c02870b02068a82870a02058a03070b85090 +c088b8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa05068a82020a83028c82020c82820c02030 +c02020b82020a03038ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffb0b0b8a8a0b8b8b0c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd098c0c070a8 +c070a8b03078b03078c82870d82878d82878d82878e03078e03078e03080e03080d82878 +c83078c83078c83078c83078c83078c83078c84890c84890c84890c84890c06098c84890 +c06098c84890c84890b85090c84890c84890c84890c83078c02870c02870c02870d02870 +c82868d02870d02870d02870d02870c02870b02068a02068a03070984078b068a0d098c0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858a02020b82020c02020c82820c82820 +c02020b82020a83028e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffb0b0b8ffffffffffffffffffffffffffffffffffffffffffffffff +b0a8b8a8a0b0b8b0c0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffc070a8c84890b03078b03078b82068c82870c83078e03080d82878d82878e03080 +e03080e03080e03080e03080d82878d82878d82878d82878c83078d82878c83078c83078 +c83078c83078c83078c83078c02870c02870c02870c82870c82870d02870c82868d02870 +d02870d02870d02870c82870b82068a82870a02068a03070a85088c088b8ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858a02020b02020c02020c02030d02820 +c02030b02020a82830e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b0b8 +a8a0a8b0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffd098c0b068a0b85090a04080b03078c02870c02870c02870c83078d82878 +e03080e03080e03080e03080e03080e03080e03080e03080d82878e03080d82878d82878 +d82878d82878d82878d82878d82878d82878d02870d02870d02870d02870c82868d02870 +c82870c02870c02870a82870a02068a02068984078b068a0d098c0ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858a02020b02020c02020d02820c82820 +c82820b02020a02020ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b0b8a8a0a8 +b0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffc088b8b85090a85088b03078a82870b82068c02870 +c82870d02870d82878d02870d82878d82878d82878d82878d02870e03078d82878e03080 +d82878e03080d82878e03078d02870e03078d02870d02870c82870c82870c02870c02870 +b02068a82870a02058a03070984078b068a0c088b8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858a02020b02020c02020c02030d02820 +c02020b02020a82830e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b0b8a8a0b0a8a0b8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffd098c0c088b8c06098b85090a02068 +b82068c02870c02870c02870c82868c82868c82870d02870c83078d02870d02870d02870 +d02870c82868d02870c82868c82868c82868c82868c02870b82068b82068b02068a02058 +a02068a03070a85088b068a0c088b8ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858a02020b02020c02020d02820c02030 +c82820b02020a02020ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffa8a0b8a8a0b0b0b0b8ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd098c0c070a8 +c06098b03078a03070a03070a82870a02058a02068a02058b02068b02068b02068b02068 +b82068b82068b82068b82068b82068b82068b02068b02068a02068a02068a85088b85090 +b068a0c088b8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858a02020b82020c02020c82820c82820 +c02020b82020a03038e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffb8b0c0b0a8b8ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffd8a8c0c088b8c088b8b878a8b068a0a05080a05080984078984078984078 +984078984078984078a04080a05080a85088a85088b85090b068a0b878a8d098c0ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858a02020b82020c02020c02030d02820 +c02020b82020b03040e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0b0b8b0a8b8ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffd0a8c0ffffffd098c0d098c0c088b8d098b0 +c088b8c088b8d098c0d098c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060a82020a83028c82020c82820c82020 +c02030b02020a83028e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb0a8b8a8a0b8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060a82020b82020c02020c82820c82820 +c02020a83028a82830ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffa8a0b0a8a0a8b0b0b8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060a02020b82020c02020c02030d02820 +c02020b82020a83028e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffa8a0a8a8a0b0b0b0b8ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060a02020a83028c82020d02820c82820 +c02020b02020a82830d8a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffa8a0b0a8a0a8b0b0b8ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060a02020b02020c02020c82820c02030 +c82820b02020a82830e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffb0b0b8a098b0b0b0b8ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858981820b02020c02020c82820c82820 +c02020b02020a82830ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +b0a8b8a8a0b8a8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060a02020b02020c02020c02030d02820 +c02020b02020a83028d8a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa8a0b0 +a8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060a02020b02020c82820d02820c82020 +c02030b02020a02020e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b0b8b0b0b8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060a02020b02020c02020c82820c82820 +c02020a83028a82830e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffb8b8b8a8a0a8a8a0a8b0b0b8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858a02020b02020c02020c02030c82820 +c82020b82020a82830e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8a0a8d8a0b0 +ffffffffffffffffffffffffffffffffffffffffffb8b0c0a8a0a8a098b0b0b0b8ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04050981818b82020c82820d02820c02030 +c02020b02020a83028ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffd8a0b0a87080b86058c07888 +c8b8a0ffffffffffffffffffffffffffffffffffffa8a0b8a8a0b8ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04050981820b02020c02020c82820d02820 +c02020b02020a82830e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffd098b0b86878901818a83028901818 +b86058d88090ffffffffffffffffffffffffa8a0b8b0a8b8ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04050a02020b02020c02020c02030d02820 +c02020b02020a02020d8a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffd098b0b85868a82830a02020b02020a82020 +a02020b86058f09890ffffffffffffa8a0a8a8a0b8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff983848981820a82020c02020d02820c02030 +c82820b02020a02020e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd8a0b0a85068b02020b02020c02020c82820c02020 +b02020a82020b85868c888a0a8a0a89898a0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +a83028b83848c06868d88090e0a8c0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04050a02020b02020c02020c82820d02820 +c02020b02020a02020d8a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffc888a0a84050b02030c02020d02820c82820d02820d02820 +c02020b02020a03040a85868a8a0a8ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +c02020b82020b82020a83028b03040a84050a85868b87888d098c0ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858a82020b02020c02020c02030d02820 +c02030a83028a02020e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffc890a8a85060982030b02020c82020e02820e02820d03828d82820 +c02030a82020903040b87888c898b0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +d02820c82820c82820c82820c02030b02030b02030b83848b84050b85868c06078c87080 +d088a0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060a02020b82020c82820c82820c82820 +c02020b82020a82830d8a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffb888a0a04050a02038b02020c02020c82820d82820e02820d02820c02030 +b02020901818a05068c898b0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +d82820d82820d82820d02820d03828d82820d02820c82020c82020c02030c02030b83848 +c82868e85850c06078c87080d088a0d8a0b0e0a8c0ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04050a02020b02020c82820c02030d02820 +c02020b02020a83028ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffc888a0a04858a01820a02020b82020c02020c02030d03828d02820c02030b02020 +981820a05068c890a8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +d82820d02820d82820e02820e02820d82820d03828e02820d82820d82820c02030c82020 +c82820c02030b82020c02030b83848b85868c06868d88090d088a0d8a0b0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858a02020b82020c02020d02820c82820 +c02030b02020a83028e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +c890a8a85060a02020b02020b82020c02020c82820c82820c02020c02020a82020901818 +a85060c890a8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +d02820d02820d03828d82820d03828e02820d82820d82820e02820d03828e02820d02820 +d02820d02820d02820d02820d02820c82020c82020c02030b83848b85868c87080d88090 +d8a0b0d0a8c0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060a82020b02020c82820c02030c82820 +c02020a82020a02020d8a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8a0a8 +a04858a83028a82020c02020c82820c02030c82820b82020a83028a82020901818a85060 +c8a0a8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +b82020c02030d02820c02030c02030d02820d03828d03828d82820d82820d02820d82820 +d02820d02820d82820d03828e02820e02820d03828d82820d82820c02030c82020a82830 +a02038a85060c87080d090a8e0a8c0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060a02020b82020c02020d02820c82820 +c02020b02020a02020ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8a0a8a85060 +a02020b82020c02020c02020d03828d02820b82020a83028b02020801018a85060c8a0a8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +901818a82020b02020c02020c82820c02030c82020c02030c02030d82820d03828d02820 +d03828e02820d03828e02820d82820d82820d82820d02820d02820d02820d02820d02820 +c82820c82020c02030c02030b02030b83848c06078d88090e0a8c0ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060a02020b02020c02020c82820c02030 +c02020a83028a83028e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffc8a0a8a85868a03038 +b82020c82820d02820d02820d02820d02820d02820b02020901818903040a8a0a8ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +b86058a03038901818982030981818a82020a82020b82020b82020b02020c02030d02820 +d02820c02030d02820c02030d02820c02030e02820e02820d03828e02820e02820e02820 +e02820e02820e02820e02820d03828c82020c02020c02020b82020a83028a84050c07888 +e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858981820b02020c02020d02820c82820 +c02020b02020a82830d8a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffc08090a04050901818a82020 +d02820d02820c02030d02820c02030b82020b02030a82020982030b888a0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffe0a8c0c08090a04858801018881818901818982030a82020b02020 +b02030c02020c02020d02820d02820d02820c02030c02030d02820d02820d03828e02820 +d03828e02820e02820e02820e02820d02820c02030d03828c02020c02020c02020c82820 +b03040a82830a02058b85868d88090ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858a02020b02020c02020c02030d02820 +c02020b02020a82830e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffc87080a84050a02020a82020c02020 +d02820d82820c82820c02020c82820a02020901818a03848c888a0ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd0a8c0ffffffe0a8c0c08090b86058903040982030 +a01820982030a82020a02020b02030b82020c02020c82820c02030d02820c02030d82820 +d82820d03828e02820e02820d03828d82820d03828d82820d82820d03828d82820d02820 +c82020c82820c02020b03040b03040b83848a85060b86878b88098d090a8e0a8c0ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060981820b02020c82820c82820c82820 +c02030b02020a83028e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffd88090a84050b02020b82020c02020c82820 +d82820d03828c82020a82020982030a83028a05068d090a8ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd8a0b0d098b0 +c888a0a87080a04858901828801018981820a02020a83028b82020b82020c82820c02030 +d02820d02820c02030d03828d82820d02820d82820d82820e02820d03828e02820d82820 +d03828d82820d02820c82020c82020b82020a83028b02020a83028b84050b86058c06868 +c87080d8a0b0e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060a02020b82020c02020c82820c82020 +c02020a83028a82830e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd88090a03848b02020b82020c82820d02820d02820 +d02820c02030b02020901818881818a85868c8a0a8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffc898b0b878a8c07888a85060a84050981820981820a02020a82020a82020 +b02020b02030c02020c02020c02030d02820d02820d82820d82820d82820d03828e02820 +d82820d82820d82820d03828d82820d82820d02820d02820d03828d02820c02020b82020 +b83848b84050c06078c87080c87080c890a8ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85868a82020b02020c02020c82820c02030 +c82820b82020a83028e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffc888a0a84050982030b82020c82820d02820d03828d82820 +c02030b02020981820982030a04858b8c0a0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd8a8c0c08098b87888a85868a85868a84050a03038 +982030901818901818a02020a82020c02020c02030c02030c82820d02820d02820d02820 +c02030d03828e02820d82820d03828e02820d82820d03828e02820d82820d03828c82020 +c02020c02020b82020b02020a82830a85060b86878c888a0c898b0ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85068a82830b02020b82020c82820c82820 +c82820c02020a03040e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffd088a0a84050a02020b82020c02020c02030d82820c02030c02020 +a82020981820982030a85868c8a0a8ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc898b0b88098 +a87080a05068884050884050982030a82020b02020b82020b82020b02030c02020c02030 +d02820c02030d02820d82820d03828d82820d82820e02820d03828e02820d82820d03828 +d03828d82820d02820d82820d02820c02020a83028a03040c07888d098b0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa05080a82830a82020b02020c82820d02820 +d02820c02030a02038e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffd088a0a84050b02030b82020c82820d02820d02820c02020c02020a82020 +982030702838a05068c890a8ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffd0a8c0b888a0b86878903040982030982030901828a02020a82830a82020 +b02020b02020b82020c02030c02030d02820c02030e02820d82820e02820d03828e02820 +e02820e02820e02820e02820d03828c82020b82020b86058f0a098ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85068a02038a82020b82020c02030d02820 +d02820b82020a02038d8a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffc888a0a84050b02030c82820d02820d02820c02030c02020b82020a83028901828 +702838a05080c898b0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffc890a8a85868702838781010781010 +881818901828a02020b02020b02020c02020c02030c82820d02820d82820d82820d82820 +d03828e02820d03828e02820d03828c82020d03828c87080ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85068a02038a82020b82020c02020d02820 +d02820b02030a02038d8a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +d88090a84050a01820b02020c02020d02820c02030c02020b82020a83028b02020982030 +a05068c890a8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc898b0 +b87888a05068903040901828982030901828b02020b02030b02030b82020b02030c82020 +c02020d82820d02820d02820d02820b02030b84050f0a098ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85068a02038b02020b82020c02030c82820 +d02820b82020a03040ffffffffffffffffffffffffffffffffffffffffffffffffc07888 +a03040b02020c02020c82820c02020b82020c02020a83028b82020a01820982030a85868 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffd098b0c07888a85068a04050903040981850901828981820a82020 +a82020c02030b82020c02030b02020a82020b84050ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb03078a02020b02020b82020c02020c02030 +d02820b02020a03040ffffffffffffffffffffffffffffffffffffffffffc07888a03038 +b82020c02020c82820c02030c82820c02020c02020b02020981820982030a85868d098b0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffd098b0b878a8a05080a04858a03040 +982030a02020981820a02020981820901818b86058e0a8c0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85068982030b02020c02020c82820c82820 +c02030b02020903040e0a8c0ffffffffffffffffffffffffffffffc07888a03040b02020 +c82820c82820d02820c82820c02030c82820a83028981820982030b86878d098b0ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffc0c0b0b0b8a8b0b8a8b8c0a0c0c0b0ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc898b0d090a8 +c07888b85868a85060983848903040903040a04858b88098d0c0a8ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85068a01820b82020c02020d03828c82820 +c82820a01820a02038d8a8c0ffffffffffffffffffffffffc070a8b03040b02020c02020 +c82820c02030d02820c82820c02020a82020981820a03040b86878d098b0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0c0b0b8c0a0 +b0b888a0b070a0b058a0b058a0b058a0b068a0b068a8b868b0b888b8c0a0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd8a8c0d090a8c888a0b87888a87080a87080a08890b098b0b0a8b8ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85068b02020b02020c02020c02020c02030 +c82820a82020982030d8a8c0ffffffffffffffffffc08098b84050b02030c82020c82820 +c82820c82820c02030c02020a83028a01820a02038a05080d098b0ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffb8c0a0a8b078a0b848 +a0b84898b83890b03898c03890b03890b03890b03898b83898a850a0b068b0b888ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffd0a8c0ffffffb0a8b8b8b0c0a8a0b8a0a0b0 +a8a0b0a8a0b0ffffffffffffd8a8c0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa84050a82020b02020c02020c82820d02820 +c02020a82020903040e0a8c0ffffffffffffd88090a02058a82020c02020d02820c02030 +c82820c82820c02020b02020a01820903040a05080c898b0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffb0b888a8b86898b83898b838 +98c03898c03898c03898c03898c03898c03890b03890a04890b03890a838a0b070b0b888 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +a8a0b8a8a0b8b098b0b098b0b098b0b0a8b8b0b0b8b0b0b8ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858a01820b02020c02020d03828c82820 +c02020a82020a03038e0a8c0e0a8c0c87080a84050b82020b02020c82820d02820c82820 +c02020c02020b82020a82020a02038a05080d0a8c0ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffd0c0a8a8b07898b83890b038a8c838a0c838 +a0c83898c03898c03898c03880a83890b03880a83880a83880a83898a85080a83898a850 +b0b888ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffa8a0b8a0a0b0a098b0a098b0a8a0a8a0a0b0b0b0b8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858a82020b82020c02030c82820c82020 +b82020a83028b03040d88090d88090b83848b82020c82820c82820c02020c02030c02020 +b82020b02020a02020903040a85088d098c0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffd0c0a8b8c0a0a8b86890b038a8c838b0d038a8c838a0c838 +98c038a0c83898c03880a83880a83880a83880a83880a83880a83880a83880a838789038 +a0b070b0b8a8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffa8a0b8a0a0b0a098b0 +a098b09898a0a8a0b8b0b0b8b0b0b8ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858a01820b82020c82820c82820c02030 +c02020b82020a02020b84050a03038b02020c02020c82820c82820c02020c02020c02020 +a83028a01820903040a85088d098c0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffd0b880a8b868a8c83898b838a8c838a8d038a8c83898c038 +98c03898c03880a83880a83870903850803870903850803880a83878884880a83880a838 +98a850a0a880b8c0a0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffb0a8b8a8a0b8b0a8b8b0a8b8b0a8b8b0a8b8b0b0b8b8b8b8b8b8b8ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04050981820b02020c02020d02820c82820 +b82020a83028a82020a83028b02020b82020d02820c82820c02030c82820c02020a83028 +a01820981850a87080d0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffb8c0a0c0d848a8c838a8c838a8d038a0c83898c038a0c83898c038 +90b03880a83880a83870903880a838709038508038508038508038709038709038709038 +80a83898a850a0a880c0c0b0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb8b0c0b0a8b8b0a8b8b0a8b8a8a0b0b0a8b8 +b0b0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858982030b02020c82020c02030d02820 +c02020b82020a02020a82020b82020c82820c82820c82820c82820b82020a02020981820 +983848a85088d098c0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffc0c0b0d0c0a0d8e068a0b848a8c838a8c838a0c83898c038a0c83898c03898b838 +90a048909878909878b0b8a8ffffffa0a0b090987850803848703050803878884880a838 +709038788848a0b068b0b888ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffb8b0c0a8a0b8b0a8b8 +b0a8b8a8a0b8a8a0b8b0b0b8b0b0b8ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858982030b02020c82020d02820c82820 +c02020b82020a82020b82020c02020c02020c02030c82820b82020a82020981820a02058 +a87080d098c0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +c0c0b0b0b888d8e068a8b868a8d038a8c838a0c83898c038a0c83898c03898b83898a850 +a0a880b0b8a8ffffffffffffffffffffffffb0b8a8788078607030508038709038709038 +80a83880a83890a048a8b078c0c0b0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffb0b0b8b0a8b8a8a0b8a8a0b8a8a0b0b0a8b8b0b0b8b8b0c0ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff884050a02020b02020c82820c02030c82820 +c82820b82020b02020c02020c02020c82820c02020b82020b02020982030a03848b87888 +d098c0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0c0a8b0b888 +c0d848a8b868c0d848c0d848a8b868a8d03898c038a0c838a0c83898c038a0b058a8b078 +c0c0b0ffffffffffffffffffffffffffffffffffffb0b8a8788078607030508038788848 +80a83878884890a838a0b068b0b888ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb0b0b8a8a0b8a8a0b8a8a0b0a8a0b0b0b0b8b0b0b8 +b8b8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff884050982030b02020c02020d02820c82020 +d02820b82020b02020c82820c02030c82820c02020a82020a02020a03040c070a8ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffc0c0b0a8b868c0d848 +c0d848c0d848a8d038a8d038c0d848a8b868a8d038a8c838a0b848a8b868b0b888c0c0b0 +ffffffffffffffffffffffffffffffffffffffffffffffff909878788848607030709038 +80a83880a83890a04890a048a8b078ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b0b8b0a8b8a8a0b8 +a098b0a8a0a8a8a0b8b0b0b8b8b0c0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff884050901818a01820c02020c02030c82820 +d02820b02030b02020c82820c82820c02020a83028a01820a03040c87080ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffc0c0b0d8e068a0b848a0c838 +b0d038c0d848a8d038a8b868a8b868b8c0a0b8c0a0b0b888a8b868b8c0a0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffb0a8b8788078607030709038 +78903880a83880a83890a048a0b070c0c0b0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffa8a0b8a8a0b8a098b0a8a0b0a8a0b0b0a8b8b0b0b8ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060881818a02020b82020c82820c02030 +d02820c02020b02020b82020c02020a83028a01820901828b86878ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffb0b888a0b848a8d038c0d848 +a8d038b0d038a8d038c0d848b8c0a0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffff9898a0607030789038 +78903890a04890b03880a838a0b058b8c0a0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0a8b8b0a8b8a8a0b0a098b0a8a0a8a8a0b8 +b0b0b8b8b8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb87888903040982030b02020b82020c82020 +c02020c02030c82820c02020b82020b02020a82020a03040c87080ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffb0b888a8b868a0c838a8d038a8d038 +b0d038b0d038a8d038a0b848d0c0a0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffa8a0a8788848709038 +78903880a83880a83890b03898a850b0b888ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffb8b0c0b0a8b8a8a0b8 +a8a0b8a8a0b0a8a0b0b0b0b8b0a8b8b0b0b8ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb8a080b8a080c07888c87080e86860b84050 +c02020c02020d03828d82820d02820c02030c82820c02020d03828e04840b86058c87080 +d090a8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0b888a0b058a0c838a0c838a8d038b0d038 +b0d038a8d038b0d038a8b868b8c0a0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff909878709038 +78903880a83890a04880a83898a850b0b888ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffb8b0c0b0b0b8b0a8b8a8a0b8a0a0b0a8a0b0b0b0b8b0b0b8ffffffffffff +ffffffffffffffffffffffffffffffc0c0b0b8b8b8fffffffffffffffffff0a098f09088 +d03828b82020e02820d03828e02820e02820d03828c82020c82820c02030b02020a83028 +b84050b85868c06078c07888d088a0d098b0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffc0c0b0b0b888a8b86898c038a8c838a8d038a8d038b0d038 +b0d038a8d038a8d038a8c838b8c0a0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff909878709038 +78903890b03880a83880a83890b038a8b078ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffb0a8b8a8a0b8a8a0b8b0a8b8a098b0 +b0a8b8ffffffffffffffffffffffffb8b8b8ffffffffffffffffffffffffd8c0b0f0a098 +e86850b82020d03828e02820e02820e02820e02820e02820d03828d03828c02020c02020 +c82820c82820b03040b83848b83848b84050c06078b86878c08090d8a0b0d8a0b0ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffc0b078a0b84898b838a8c838a8d038b0d038b0d038b0d038 +b0d038a8d038a8c838a0b058b8c0a0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0a880607030 +80a83880a83890b03890b03890b038a0b070c0c0b0ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa8a0b8a8a0b8 +b098b0b0a8b8a8a0b8b0b0b8b0b0b8ffffffffffffffffffffffffffffffffffffd8c0b0 +e86860a83028d82820d03828e02820e02820d03828d82820d82820d02820d02820d03828 +d02820d02820d02820c82020c02020c02020b82020a83028b83848b86058b86058c87080 +c888a0d098b0e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffb0b888a0b848a0b848a8c838a8c838b0d038b0d038a8d038b0d038 +a8d038a8d038a8c838a0b848b8c0a0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa8a0a8789038 +78903890a04898c03880a838a0b848a0b068b0b8a8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffb0a8b8a8a0b0ffffffffffffffffffffffffffffffffffffffffffd8c0b0d0c0a0 +c06868a83028b82020c82820d02820d03828e02820d02820d02820d82820d82820e02820 +e02820e02820d03828e02820d03828d82820d03828d02820c02020c02020b82020a83028 +b84050b84050c06078c87080d088a0d8a0b0e0a8c0ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffb0b8a898a85098b838a0c838a8d038a8d038b0d038b0d038b0d038b0d038 +a8d038a8d038a8c838a0b848b8c0a0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b8a8789038 +78903880a83898c03898c03880a838a0b058b8c0a0ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0c0a0b8a080 +a04858802028981818a83028c02020c02030d02820d02820c02030d03828e02820e02820 +d03828e02820e02820e02820e02820e02820e02820d03828d82820c82820d02820d02820 +d02820c02030c82820b02030b03040b84050c06078d88090d090a8e0a8c0d8a8c0ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffb0b8a8a0a88090b03898c038a8d038b0d038a8d038b0d038b0d038a8d038b0d038 +a8c838a8d038a8c838a8c838b0b888ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90a048 +78903880a83898c03898c03890b03898a850b0b888ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffc0c0b0b0b8a8788078 +884050704018802028982030a82020a82020b02020b02030c02020c82020c02030d03828 +d82820e02820d03828e02820e02820e02820e02820e02820e02820e02820e02820e02820 +d03828e02820d82820d82820c82020c02020b82020a83028a82830a84050b85868c07888 +d8a0b0e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +c0c0b090987898a85098c038a0c838a8d038b0d038b0d038b0d038b0d038a8d038b0d038 +a8d038a8c838a0c838a0b848b0b888ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff909878 +70903890a04898c03898c038a0b84890b038b0b888ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffb8b8b8a8a0a8788078a8a0a8 +c0c0b0b88098884050a85868a04050901828901818981820981820a02020b02020b02020 +c02030c02020d03828d02820d03828d82820d03828e02820e02820e02820e02820d03828 +e02820e02820e02820d03828d82820d02820c82820c82020c82820c02030a83028b02020 +a82830a03038a84050c06868f09890ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb8c0a0 +a0b06880a83898c03898c038a8d038b0d038b0d038a8d038b0d038b0d038b0d038a8d038 +b0d038a0c838a0c83898b838c0b078ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0b068 +78903890b03898c03898c03898c038a0b848a0b070c0c0b0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffa8a0a8808090b0b8a8ffffff +e8e0e8ffffffa8a0a8ffffffffffffd098b0d090a8b86878a05068903040801018801018 +881818901818901818a01820b02020c02030d02820d03828d82820d03828e02820e02820 +e02820d03828e02820e02820e02820e02820e02820e02820e02820d03828d82820d02820 +c02030c82820b82020a82020a02020a02020a03848a85868c08098d8a0b0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffc0c0b0a0a88098a850 +90a04898c038a0c838a0c838a8d038b0d038b0d038b8d038b8d038b0d038b0d038a8d038 +b0d038a0c838a8c83898c038c0b078ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0b070 +78903890b03898c03898c03898c03898b838a0b070c0c0b0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffff9898a0788078788078b0b0b8ffffff +ffffffffffffb098b0ffffffffffffffffffffffffffffffffffffd098c0c898b0b88098 +a05068884050802028881818881818901818981820a82020b82020c02030c82820d02820 +d02820d02820d03828e02820e02820d03828e02820e02820d03828e02820e02820d82820 +d02820d02820c02030c82820c82820d03828b02030c02030b02030b83848b83848b85868 +c87080d88090e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b888a0b05898a850 +98c038a0c838a0c838a8d038b0d038a8d038b0d038a8d038b0d038b0d038b0d038a8d038 +b0d038a8d038a0c83898b838a8b868ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0a880 +80a83890a04898c03898c03898c03898b838a0b068c0c0b0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0a87068787880789898a0ffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffb098b0b88098a08890b86058884050704018901818981820a02020a82020a82020 +b02030c02030c02020c02030d02820d82820d03828e02820e02820e02820e02820e02820 +d03828e02820d03828d02820c02030d02820d82820e02820d03828d82820c82020c82020 +c02030b84050c82868c06868c07888d098b0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffb8c0a0a0b07098a85090b038 +98c038a0c838a0c838a8d038b8d038b0d038b8d038b0d038b0d038b0d038b0d038a8d038 +b0d038a0c838a0c83898b838c0b078ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0a880 +78903890b03898c038a0c838a0b84898c038a0b058c0c0b0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffd098b0b88098d8a0b0ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffb8b8b8a8a0a87880787068789898a0ffffffffffffffffff +ffffffffffffb0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb888a0b888a0b88098a87080a85868884050982030 +881818981820a02020a82020a83028b82020c02030d02820d03828d82820d03828e02820 +d03828e02820e02820d03828e02820d82820e02820d03828e02820e02820e02820d03828 +d82820d02820c02030b03040b83848b84050c06078c84890d88090d090a8ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffb0b8a8a0b070a0b05898b83898c038 +98c038a8d038a8d038a8d038a8d038b8d038b8d038b8d038b0d038b0d038b0d038a8d038 +a8d038a8c838a0c83898b838a8b868ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa8b078 +90a04890b03898c038a0c838a0c838a0b848a0b058c0c0b0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffd098b0b86878a85068a84050c87080b86878d098b0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffb8b8b8a8a0a8a8a0a8788078808090b0b8a8ffffffe8e8e8ffffff +ffffffffffffb0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffc898b0b888a0a87080 +a87080a04858903040702838982030982030a02020a82020a01820c02030c02030d02820 +c02030d82820d82820e02820e02820e02820e02820e02820e02820e02820e02820e02820 +d03828d82820d82820c02030d82820c02030c02030c02030b83848c82868e86860c87080 +d88090c890a8d8a0b0d8a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffa0a88098a850a0b058a0b848b0d038 +a8d038a8d038b0d038b0d038b0d038b0d038b0d038b8d038b0d038b0d038b0d038a8d038 +b0d038a0c838a0c83890b038a8b078ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b888 +90a04890b03898c038a0c838a0c83898b838a0b058b8c0a0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffd8a8c0b86878903040a82830a01820a82020a82830a85868ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffb0b0b8a0a0b09898a0ffffff8080909898a0ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffc898b0a87080a87080a05068a05068a04050903040901828a02020b02020b02020 +c02020c02030c02020d02820d03828d82820d03828c02030d03828d03828d03828e02820 +e02820d82820e02820e02820e02820d82820d02820d02820c82820c82820c02030b82020 +a82830a84050b85868c87080d88090d088a0e0a8c0e0a8c0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa0a88078884890a04880a838a0b84898c038 +98c038a8c838b0d038c0d848b8d038b0d038b0d038b8d038b8d038b0d038b0d038a8d038 +a8d038a0c838a0c83898b838a8b078ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0a880 +90a04890b03898c038a0c838a0c83898c038a0b058d0c0a8ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffb87888983848a02020a82020b02020b82020a83028b83848d098b0ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffb0b0b8a0a0b0a0a0b0b0b0b8ffffffb0b8a8b0b8a8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd098c0b888a0a85868a04858903040a03040a82830 +a02020a02020b02020b02030b82020b02030c82820d02820c82820c82020d02820d02820 +d03828d82820d03828d82820d82820d03828d82820d82820d02820d03828c82020c82820 +c82020c82020c02020b02020b02020b03040b84050c87080d088a0d8a0b0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffff909878607030607030607030607030508038508038 +70903880a83898c038a8d038c0d848a8d038c0d848b0d038b8d038b8d038b0d038a8d038 +a8d038a8c83898c03898b838a8b078ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b888 +90a04890b038a0c838a0c838a8c83898c038a0b058b8c0a0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffb87888a03040a83028c82020c82820c82020c02020a82830c06078e0a8c0 +ffffffffffffffffffffffffffffffffffffc088b8b878a8c890a8d098c0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffa0a0b09898a0ffffffffffffffffffa0a0b0b0b0b8ffffffffffffffffffffffff +ffffffffffffa8a0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0a8c0c07888 +a85060982030901828901818981820a02020a01820b02020b82020c02020b02030c82020 +c02030d02820d03828c02030e02820d82820d82820d03828d82820d03828d82820d02820 +d03828e02820d82820d82820c82020c82020c02020b82020b02030a02038a84050c06078 +c08098d098c0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffff788078584818607030607030508038487030508038 +50803850803850803850803870903898c038a8d038c0d848b8d038b8d038b0d038b0d038 +a8d038a8d03898c03898b838a8b078ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b888 +90a04890b03898c038a8d038a0c83898b838a0b058b8c0a0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffe0a8c0c06868a01820c02020c82820d82820c02030b02020a82830d088a0 +ffffffffffffffffffffffffffffffc06098a04858981850702838984078b068a0ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb0a8b8 +a098b0a8a0b8ffffffffffffffffffffffffb0b0b8a0a0b0ffffffffffffffffffffffff +ffffffffffffb0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffb878a8706878702838801018901828901828982030a01820a02020 +b02020b02030c02020c82020d02820c02030d82820d03828e02820d82820e02820e02820 +d82820d82820d03828e02820e02820e02820d03828e02820d82820d02820c02030b02030 +982030a04858c890a8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffff909878506028506028607030506028487030487030 +50803850803848703050803850803850803850803870903898c038c0d848c0d848c0d848 +a8d038a8d038a8c83890b038a0b058ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b888 +90a04898c038a0c838a0c838a8d038a8c838a0b058d0c0a0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffc08098a03848c02030c82020d02820c82820b82020a02020c06078 +d8a0b0ffffffffffffffffffd88090a82830b02020a82830981850a05080ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa8a0b0a0a0b0 +a8a0b8ffffffffffffffffffffffffffffffa8a0b8b0b0b8ffffffffffffffffffffffff +ffffffffffffb0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffe0a8c0c07888a04050802028801018 +881818901828a82020b02030b82020c02020c02030c02030c02030d02820c02030d03828 +d82820d02820d02820d03828e02820e02820e02820e02820e02820e02820d03828c82020 +b83848c87080ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb0b8a8909878607030405020607030607030487030 +48703050803850803850803850803850803850803848703050803870903880a83898c038 +c0d848a8c838a8c838a0b848a8b868b8b8b8ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa8b078 +90a04898b838a0c838a8d038a8c83898c038a0b058b8c0a0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffd88090a02038c02030c02030c82820c02020b02020a83028 +c07888ffffffffffffc07888a82020b82020b02020b02030c06078d8a0b0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b8a89898a0a8a0b8 +ffffffffffffffffffffffffffffffffffffa8a0b8b0b0b8ffffffffffffffffffffffff +ffffffffffffb0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0a8c0 +d088a0a85868802028881818901818901828a82020b02020b82020b82020c02020b82020 +c02030c02030c02030d02820d02820d03828e02820e02820e04840e02820c82820c02030 +e86860e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffff9898a0788848384038506028607030 +487030508038a0b848c0d848c0d84898a850508038508038508038508038508038788848 +80a838a0c83898c03898b838a0b058c0c0b0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b888 +98a85098c038a0c838a8d038a8d03898c038a8b868b8c0a0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd04080b82020c82820c82820c02020a83028a01820 +b84050d88090d88090a03848a02020a02020a82020c06868d8a0b0ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffa8a0b8a0a0b0a8a0b8ffffff +ffffffffffffffffffffffffffffffffffffa8a0b8b0a8b8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffe0a8c0c888a0d098b0c07888b85868a03848982030881818901818982030981820 +a82020b02020b82020c02020c02030d02820d03828d02820c82020d02820c02020b83848 +d88090ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffff9898a0788078607030506028 +508038789038a8d038c0d848d8e068a8d038c0d84880a838508038508038487030508038 +70903880a83890b03890b038a0b058b0b8a8ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa8b078 +90a83898c038a8c838a8d038a8c838a8c838a8b868d0c0a8ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd090a8a82830b82020c02030c02020b82020b82020 +b02030b83848b83848a01820a82830982030b85868d8a0b0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffb0b0b89898a0a8a0b8ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffa0a0b0ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffd090a8c08098b87888a85868a04858983848 +881818901818a02020a02020a82020b02020b02020c02030c02020a83028b82020b84050 +f09890ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b8a8909878789038 +78884890b038b0d038c0d848c0d848d8e068c0d84898c038788848487030487030487030 +48703050803878903890a04898a850b0b8a8ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa8b078 +90a048a0c838a8d038a8d038a8d038a8c838a8b868c0c0b0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb85868a83028b82020b82020c02020b82020 +c02020c02030b82020a82020a03038a85060d090a8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0b0b8a0a0b0a8a0b8ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa0a0b0a8a0b8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc890a8b88098 +b86878a85060a03040982030901818982030a02020a02020a02020a02020a03038b86058 +c8a0a8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0b070 +90a04898b838c0d848c0d848c0d848c0d848a0b84898c038508038508038487030508038 +607030506028487030709038788848b8b8b8ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa8b078 +90a838a0c838a8c838a8d038a8d038a8c838a8b868c0c0b0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffe0a8c0b83848a02020b82020c82820b82020 +c02020d02820c82820b02030a84050c8a0a8ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb0b0b8a098b0a098b0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa0a0b0b0b0b8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffe0a8c0d088a0a87080a85868a04858983848a03038802028881818802028983848 +c07888d8c0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b888 +a0b058b0d038c0d848c0d848c0d848c0d848a0c83880a838508038487030607030607030 +506028506028506028607030788848a8a0a8ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0b070 +90a838a0c838a8d038a8d038a8c838a8c838a8b868c0c0b0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffc87080a02020b82020c82820c02030 +c82820c02030d02820c82820d88090ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffb8b0c0a8a0b0a0a0b0a8a0b8ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8a8a0b8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffe0a8c0c08090a05068884050884050884050 +a85868b888a0b8b8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb8c0a0 +a0b848b0d038b8d038c0d848c0d848c0d84898c03890a048508038506028607030506028 +5060286070306070306070307888489898a0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0b070 +90a838a8c838a8d038b0d038a8d038a8c838a8b078ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffd8c0b0b03040c82820c82820c82820 +c02020c02020c82820b82020e0a8c0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb8b0c0ffffffffffffffffffffffffffffff +ffffffffffffffffffb8b8b8a8a0b0a8a0b0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffa0a0b0ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb098b0 +a8a0a8b888a09898a0a08890a0a0b0a0a0b0ffffffb8b8b8ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b888 +a0b848b8d038c0d848d8e068b8d038b8d038a8c83898a85090a048788848607030706878 +585068505058607030788848788078b8b8b8ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0b068 +90a838a8d038b0d038b0d038a8c838a8c838b0b888ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffe86860a83028d02820c02030 +c82820c02020b82020a82020b86058d8a8c0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb8b0c0ffffffffffffffffffffffffffffffffffff +ffffffffffffa8a0a8a8a0a8ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8b0b0b8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffa8a0b8a0a0b09898a09898a0a0a0b0a0a0b0b0b0b8ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0c0b0a8b868 +c0d848c0d848d8e068d8c858c0d848c0d848a8b868b8c0a0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0c0b0a0b068 +98b838a8c838b8d038b0d038a8c838a0b848b0b888ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffff0a098982030c02020c82820c82820 +b82020c02020c02030c02020982030c08098ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffb0b0b8b0a8b8b0b0b8ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8a8a0b8ffffffffffffffffffffffff +ffffffffffffb0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffa8a0b8a098b0a098b0 +a098b0a8a0b0b0b0b8b0b0b8ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b888c0b078 +a8b868c0d848d8e068d8e068c0d848a8b868b8c0a0d0c0a8ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0c0b0a0b058 +98b838b0d038b0d038b0d038a0c838a0b848b8c0a0ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffd090a8a84050a82830a82020b82020c02020 +c02030c82820c82820c02020a82830a84050ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +b0b0b8a8a0a8b0b0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8b0b0b8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffa8a0b8a8a0b8a0a0b0a098b0a8a0b0b0a8b8b0b8a8ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b888a8c838 +c0d848d8e068d8e068c0d848c0d848a0b848b8c0a0ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb8c0a0a0b848 +98b838b0d038b8d038b0d038a8d038a8b868b8c0a0ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd8a0b0a85060a02038a82830a82830b02030c02020 +c02020c02020c02020c82820b02020a02038c06098ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb0a8b8 +a8a0b0a8a0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8a8a0b8ffffffffffffffffffffffff +ffffffffffffb0b0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffa8a0b8a0a0b0a098b0a8a0a8a8a0b0b0b0b8b0b0b8 +b8b8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b8a8a8b868a8c838 +c0d848d8e068d8e068c0d848a8c838a0b068b8c0a0ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b888a0b848 +a8c838b0d038b0d038b0d038a8d038a8b868b8c0a0ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffd090a8c06078b02030b03040a02038b84050c87080b86058 +c82820c02020d03828c02020c02020b03040a84050c890a8ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b0b89898a0 +a8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8b0b0b8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffb0a8b8b0a8b8a8a0b0a8a0b0 +a8a0b0b0a8b8b0a8b8b8b0c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffa8a0a890987898b838a8c838 +c0d848d8e068d8e068c0d848a0b848b0b888ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b88898b838 +a8c838b8d038b8d038b0d038a8d038a8b868b8c0a0ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffc8a0a8b86878a82830b03040981850b03040d88090fffffff09088 +c82868c82820c02020c02020c02030c82020a02038b85868d098b0ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b0b8a0a0b0a8a0b8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8b0b0b8ffffffffffffffffffffffff +ffffffffffffb0b0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb0a8b8 +b0a8b8a8a0b8a8a0b8a0a0b0a8a0b0a8a0b8b0a8b8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffff78807870903890a838b8d038 +c0d848d8e068d8e068b0d038a0b848d0c0a8ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa8b07898b838 +a8c838b8d038b0d038b0d038a0c838a8b868ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffd8a0b0b86878a03038b02030b02030a02058c84890ffffffffffffffffff +c87080a82830c02020c02020d03828c02020b02020a03038c07888ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffb0b0b89898a0a098b0ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8a8a0b8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffa8a0b8a0a0b0a0a0b0a0a0b0a8a0b8a8a0b8a8a0b8b0b0b8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffb0b0b8508038607030a0b848b0d038 +b8d038d8e068c0d848c0d848a0b848b8c0a0b0b0b8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffc0c0b0a8b07898b838 +b8d038b8d038b0d038b0d038a8d038b0b888c0c0b0ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffc898b0b86878a03038a02020b02030a02038b85868e0a8c0ffffffffffffffffff +d090a8b85868a01820c82820c02020b82020c02020b82020b85868f0a098ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffc0c0b0b0b0b8a8a0a8a0a0b0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8b0b0b8ffffffffffffffffffffffff +ffffffffffffb0b0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffa0a0b0a0a0b0a8a0b0a0a0b0 +a8a0b0a8a0b0b0b0b8b8b8b8b8b8b8ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffa8a0a878884878884898c038b8d038 +c0d848d8e068c0d848b0d038a0b848b0b8a8b0a8b8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffc0c0b0a8b86898b838 +b8d038b8d038b8d038a8d038a0c838b0b888ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffc08098a84050b82020b02030b02030a03040ffffffffffffffffffffffffffffff +ffffffd090a8a82830c02020a82020c02020c02030c82820d03828c84890e0a8c0ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0b0b8a8a0a8b0b0b8ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8a8a0b8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +a8a0b0a098b0a098b0a098b0a8a0a8a8a0b0a8a0b0b0a8b8b0b0b8ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffff78807848703080a838a0c838b8d038 +c0d848c0d848b8d038a8c838c0b078ffffffe8e8e8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffc0c0b0a8b86898b838 +b8d038b8d038b0d038a8d038a8c838a8b868ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffc87080c83078b83848b85868d090a8ffffffffffffffffffffffffffffff +ffffffd0a8c0c06078a82020b02020c82820c02020c82820c02030b83848c84890ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffb888a0d088a0d8a0b0ffffffffffff +ffffffffffffffffffffffffb0b8a8a0a0b0a0a0b0ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8b0b0b8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffa8a0b8a098b09898a0a098b0a098b0a8a0b8b8b0c0 +b8b0c0ffffffffffffffffffffffffffffffffffff48703060703090b038a8d038c0d848 +c0d848b8d038b8d038a0b848ffffffffffffffffffe8e8e8ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffd8a0b0d088a0d090a8ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b888a0b848a8c838 +b8d038b8d038b0d038a8d038a0b848b0b888ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffd088a0b84050a02020b02030d02820c02030c02030b83848c06078ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd098b0a87080a04858a85060c87080f09890ffffff +ffffffffffffc0c0b0c0c0b0b0b8a8a0a0b0a8a0b8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffb0b0b8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffa8a0b8a098b0a098b0 +a098b0a8a0b0b0a8b8b0a8b8b0b8a8b8b8b89898a038403870903890b038b0d038c0d848 +c0d848b8d038b8d038a8b868ffffffe8e8e8e8e8e8e8e8e8e8e8e8e8e8e8ffffffe8e8e8 +ffffffffffffffffffffffffffffffd8a0b0c06868a83028b84050c06868c87080d088a0 +d098b0d098c0ffffffffffffffffffffffffffffffffffffffffffb0b888a0b848a8c838 +b8d038b8d038b0d038a8d038a8b868b8c0a0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffe0a8c0c87080a03040a02038b02030b02020b03040d04080d088a0ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffd090a8b86878982030982030a83028a83028b86058f09088 +ffffffffffffc0c0b0a0a0b0a0a0b0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0a8b8b0a8b8ffffffffffffffffffffffff +ffffffffffffb0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffa8a0b8a8a0b0a8a0a89898a080809050602870903898c038c0d848c0d848 +c0d848b8d038b0d038a0b058ffffffe8e8e8ffffffe8e8e8ffffffe8e8e8ffffffffffff +ffffffffffffe8e8e8e8e8e8ffffffd88090a83028c82820b82020c82820b83848b84050 +b85868b86878c87080c08098d8a0b0d8a0b0ffffffffffffd0c0a0c8b060a0b848a8c838 +b8d038b8d038b8d038a0c838a8b868b8c0a0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffd090a8b86878a04858a03848a03040b85868c87080ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffd098b0b86878982030a02020a82020b02020a82020a83028b86058 +f09890ffffffb0a8b8a0a0b0b0b0b8ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffb0a8b8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffa8a0a89898a078884880a838a0c838b0d038c0d848 +b8d038b8d038a8d038a8b868ffffffffffffffffffffffffffffffffffffffffffe8e8e8 +ffffffe8e8e8e8e8e8fffffff0a098b86058c82820d02820d03828c82820c82820c02030 +b02020a83028a83028b83848b86058b85868c87080c87080b09068a89058c0a840b8d038 +c0d848d8e068c0d848a8c838a8b868d0c0a0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffd098b0c898b0c08098c07888c888a0ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffd098b0c06078a02038a02020a82020c82820a83028b82020a02020a03038 +a87080d098b0a8a0a8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8b0b0b8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffa0a88090b038a8d038b8d038b8d038 +c0d848b0d038a8c838a8b078ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffe8e8e8fffffff09890b83848d02820d03828e02820d82820d02820d02820 +c82820c82020c82820d02820c02020b82020a83028b03040b83848907828a08830b89828 +d8b830d8b830c8b050c8b050c0b078d8c0b0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd098c0a85868a03040a82020b82020c02020c82820c82820b82020a83028a02020 +a04858b888a0a098b0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0a8b8b0a8b8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffa8b07898c038b0d038c0d848b8d038 +b8d038b0d038a0b848a0a880a8a0a8a8a0b0a8a0b0b0a8b8ffffffffffffffffffffffff +ffffffffffffffffffffffffd88090c82820d02820d02820d02820d82820d82820d82820 +d82820d82820d03828e02820d82820d82820d02820c02030c82820c02020b82020a83028 +a83028b89828b89828a08830b09068f0a098ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +d090a8a85068a03040a01820c02020d02820d02820c02020c82820a83028a01820801018 +884050d098b0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8b0a8b8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffa0b07098c038b0d038b8d038c0d848 +b0d038a0c83890b038c8b8a0b0a8b8b0a8b8b0a8b8a098b0a8a0b0a0a0b0a8a0a8b0b8a8 +b0b8a8b0b8a8d0c0a8d8c0b0c87080c02020c82820c02030d02820d02820c02030d82820 +d82820d82820e02820e02820e02820e02820e02820e02820d03828c82020c82820d03828 +a83028b02020b02020a83028d03828c06868c07888c08090c8a0a8ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd098b0 +a84050901828b02020c02030d03828d02820d03828d02820c02020b02020901818903040 +a87080ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8a8a0b8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffa0b05898c038b8d038b8d038b8d038 +b0d038a8d038a8b868ffffffffffffffffffffffffffffffffffffb0a8b8a0a0b09898a0 +a0a0b0b0b888b0b0b8c890a8c06868a82830b02020b82020c02030c02020c02030d02820 +c02030d03828e02820e02820e04840e02820e02820d03828e02820e02820d02820c82820 +d02820d03828e02820c82820b82020b82020b02020a82830a84050b85868c06078c06098 +d090a8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +d0a8c0b888a0c07888b87888c07888d090a8ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff982030 +a82830b02020b82020c02020d02820c82020c82020c02030a82020981820a03038b87888 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8a8a0b8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffc0c0b098a850a8c838b8d038b8d038b8d038 +b0d038a0b848a8b868ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffa0a0b0b0b0b8a08890a05068903040901828981820a02020a82020b02020a83028 +c82020c02020c02030d03828d82820d82820e02820e02820e02820e02820d03828e02820 +e02820e02820e02820e02820d03828e02820d03828c82020c82020b02020b02030a82830 +a84050a84050c06078c07888c888a0d098b0d8a8c0ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +b86878a04050901828901828982030a84050c87080d8a0b0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffd090a8a84050a82020 +b82020c02020c02020d02820d02820c02030b82020b82020901818a04050c07888d8a0b0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8b0a8b8ffffffffffffffffffffffff +ffffffffffffb0b0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0b888a0b848a8d038b8d038b8d038b8d038 +b0d038a0b848b8c0a0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffb098b0c06098b87888a85068a84050a03038901818981818 +981820a02020a82020a82020b82020c02030c02020d03828c02030d03828e02820d82820 +e02820d03828e02820e02820e02820d03828e02820e02820d03828e02820c82820c82020 +c02030c02030b03040b03040b03040b83848a85060c87080d088a0d090a8ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc07888 +a03040982030a82020a82020a82020982030a03040b85868c070a8e0a8c0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffd88090b03078a82830c02030 +c02020c82820c02030c82820c02030c02020a83028901818a04050b87888ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0a8b8b0a8b8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8b07890b038b0d038b8d038b0d038b8d038 +b0d038a0b848d0c0a0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffe0a8c0d088a0c08090b86878a85868 +a04050983848903040901828901818a02020a82020b02020c02020c82820d02820c02030 +d03828e02820d03828d02820d82820d03828e02820e02820e02820e02820e02820e02820 +d03828d02820c82020c02020c02020c82820c02030b83848b83848c83078c06868c87080 +d88090d090a8d8a8c0d0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd8a0b0b84050 +a82830b82020b82020c02020b82020b82020b02020a82830b84050c87080d088a0ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffd088a0a84050a82830b82020c82820 +c82820c82820d02820c02020a83028b02020a02038903040c08098ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8b0b0b8ffffffffffffffffffffffff +ffffffffffffb0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8b868a0b848b0d038b0d038b8d038b0d038 +b0d038a8b868b8c0a0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +c890a8b878a8a87080a05080a05068a04050a03038901818a02020a02020b02020b82020 +c82820c02030c82820c02030d82820d82820d03828e02820e02820d03828e02820e02820 +e02820d03828e02820d03828d02820d03828c82820c82020b82020b82020b02030c02030 +b83848a85060c06078c06078d88090d088a0d8a0b0ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffe0a8c0c87080b83848 +c02020d02820c82020c82820c82820c02020c02020b82020a82020a03040a85060b87888 +c8a0a8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffc08090a84050a02038b82020c82020d02820 +d02820c02030c02020b82020a82020901828983848b878a8ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8ffffffffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa0b06898b838b0d038b8d038b0d038b0d038 +b0d038a8b868c0c0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffd098c0d098c0b888a0a85868907828a03038a83028a83028a83028 +981820a82020b02020b82020c02020c02020d02820d02820d02820d03828e02820d03828 +e02820e02820d03828e02820e02820d82820d82820d03828d82820d02820d02820c02030 +c82820c82020c82020b02030b83848b84050c06078c87080d088a0d8a0b0e0a8c0e0a8c0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffd88090b83848c02020 +d02820d82820d03828d82820d82820d02820c02030d02820b82020a01820a02020a03848 +a85868b87888d098b0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffc08090a84050a02020b02020c82020d02820d02820 +c02030c82820b02020a82020901828903040a05080ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffa8a0b8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa0b05898c038b0d038b8d038b8d038b0d038 +a8d038a8b078ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffc8a0a8a89068c0a858c8b050c0a840a08830 +a83028a02020a02020a02020a02020a02020a82020b82020c02030d02820d02820c02030 +d03828d82820d82820d82820d02820d82820d03828e02820e02820e02820e02820e02820 +e02820d02820d02820c82820c02020c02030b82020b03040b03040a84050b85868c87080 +d088a0d8a0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffe0a8c0e86860a82830c02020 +d82820e02820e02820e02820e02820d82820d03828d82820c82020c02020a82020a02020 +a02020903040a85868c888a0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffd88090a04858a02020b02020c02020c02030d02820c02030 +c82820b82020a02020901818903040a87080ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8b0b0b8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffc0c0b0a0b848a8c838b0d038b8d038b0d038b0d038 +a8c838b0b888ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0b888a0b068a8b868d8e068d8e068c8b060 +a0b848a89058a89068a85868884050983848802028982030a02020a01820b82020c02020 +c02030d02820c02030d02820c02030d02820d82820d82820e02820e04840e02820d03828 +e02820d03828d82820d82820c02030c02020c82820b82020b82020b02020a82020a83028 +a83028a84050a85068b87888c888a0d8a8c0e0a8c0ffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffff09890b83848c02030c82820 +d03828e02820e02820e02820e04840e02820e02820d82820c02030c82820c02020a82020 +a83028901818a02020a03848c07888d8a8c0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffd88090a84050a01820b02020c02020d02820d02820c82820c02020 +b02020a02020901818983848a87080ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8b0b0b8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffc0c0b0a0b848a8c838b0d038b8d038b8d038a8d038 +a0b848b0b888ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb0b8a8788848508038508038788848a0b848a8b868 +a8b868b8c0a0ffffffffffffc8a0a8b098b0b87888a05080a85068981850982030a01820 +b02020b02020b82020b82020b82020b02030b82020d02820d03828e02820d82820e02820 +d82820d82820d82820d02820d03828d82820d03828d02820d02820c82820c82820c82820 +c02020c02030b03040a02020982030a02038a04858c87080d088a0e0a8c0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffe0a8c0d88090c02020d03828d82820 +d82820e02820e02820e02820e02820e02820e02820d03828d82820c82820c02020c82820 +c02020c82820a83028981818881818a85060d088a0ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffc08098a02058a01820b82020d02820c02030d02820c02030c82820b02020 +a82020901818a04050c888a0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffb0a8b8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb0b8a898b838a8c838b0d038b8d038b0d038b0d038 +a0b848b8c0a0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffa8a0a8788848405020405020487030508038709038 +788848c8b8a0ffffffffffffe8e0e8ffffffffffffffffffffffffd098c0b88098b86878 +a04050903040881818901818981820a02020a82830a01820b82020b82020c02030c82820 +d03828d02820d03828e02820d82820e02820e02820e02820e02820e02820d03828d82820 +d03828d82820d03828d02820c82820c02020c02020b82020b82020a83028b83848a85060 +b86878d088a0e0a8c0ffffffffffffffffffffffffe0a8c0e03078d82820c02030e02820 +d03828e02820e04840e02820e02820e02820e02820e02820d02820d02820d02820d03828 +d82820d02820c02020c82820b82020a82020b03040d04080d088a0ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd088a0a02058b02030b82020c82020c02030d02820c02020c02020a83028a82020 +881818884050c07888ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8b0b0b8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb8c0a090a838a8c838b8d038b8d038b0d038a8d038 +a0b848b8c0a0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffff9898a0506028405020506028506028405020405020 +607030ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +c8a0a8c888a0c08090b87888b86878a04050901828901818901828981820a02020a82020 +b02020c02030c82020c02030d82820d03828e02820e02820d03828e02820e02820e02820 +e02820e02820e02820d03828e02820d03828d82820d02820c82820c02020b82020b82020 +b03040a03040a84050c06078c07888d088a0d090a8e86860e04840e02820d02820d03828 +e02820e02820e02820e02820e02820e02820e02820d03828d82820c02030d03828e02820 +d82820d03828d82820c02020c82820c02030c02030a02038b82068c87080d098c0ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +c888a0a02058b02020b82020c02030d02820c82820c02020c02020c02020a82020802028 +984078b888a0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0a8b8a8a0b8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb0b88898b838a8c838b0d038b8d038b0d038a0c838 +a0b058c0c0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffff788078506028405020384038405020506028405020 +788078ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffc088b8c890a8b87888a85868a04858a03038802028 +981820981820a82020b02020b82020c02030c02030d03828e02820d82820d03828d82820 +d03828e02820d03828e02820e02820e02820e02820e02820d03828d82820d02820c02030 +d02820c82820b02020a82830b03040a84050b84050d04080e85850e04840e02820d03828 +e02820e02820e02820e02820e02820e04840e02820e02820e02820e02820d03828e02820 +d03828e02820d02820d02820d02820d02820c02020c02020a82830b03040b84050c07888 +e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08098 +b03078a83028c02020d02820d02820c82820c02030b82020a83028b02020901818a05080 +a098b0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8b0a8b8ffffffffffffffffffffffff +ffffffffffffb0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffa0a88098b838a8c838b0d038b8d038a8d038a0c838 +a0b068ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffb0b0b8706878506028405020506028405020405020487030 +909878ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffc888a0b88098b86878 +a85868a04858a03040a02020982030a02020b02020b02020c02020c02030d02820d02820 +d02820c02030d02820d02820d82820d03828e02820e02820e02820e02820e02820d03828 +e02820d03828d02820c82820c02020b02020b83848e85850e86860e86860e85850e85850 +e04840e02820d03828e02820e02820e02820e02820e02820e04840d82820e02820d82820 +e02820d82820d03828d82820c02030d82820d02820c02030c82820b82020a82020b83848 +b85868c08098ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08098a84050 +a82020b82020c02030d82820d02820c02030c02020b82020a82020901818a04050d098c0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8b0a8b8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffa0b07090a838b0d038b0d038b8d038a8d03898c038 +a0b068ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffff909878607030405020405020405020405020405020607030 +a8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd090a8b87888b86878a85060a84050a03038a02020a02020a02020a82020a82830 +b02020b82020b82020c02030c82820d82820d82820d03828e02820d03828e02820e02820 +d03828e02820d02820c02030c82820b82020e04840f09088f09088f09088f09088e86860 +e86860e85850e85850e04840d03828e02820e02820d03828e02820e02820e02820e02820 +d03828e02820d03828e02820e02820d03828e02820d03828d82820c82020c02030b82020 +a82020a84050c06078d098b0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffc06098a84050a02038 +b02020c02020c82820c82820c02030c82820b82020a82020982030a04858b88098ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0a8b8a8a0b8ffffffffffffffffffffffff +ffffffffffffb0b0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffa0a88090b038b0d038b0d038b8d038a8d03898c038 +a0b068ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffff788078506028506028487030405020405020487030788078 +b0b0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffe0a8c0d090a8c08098a85868a85068983848a03848903040 +982030a01820a02020b02020b02020c02030c02030d82820d02820d03828e02820d03828 +c82020d03828c82020d02820c82820b82020e85850f09088f0a098f0a098f09890f0a098 +f09890f09088e86860e86860e85850e85850e04840e02820e02820e02820d03828e02820 +e02820e02820e02820d03828e02820e02820e02820e02820e02820e02820d03828c82020 +c02030b02030a82830a85060b87888d8a8c0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffc07888a84050b02020b82020 +c02020c02020c02030c02020c02020c02020a83028901828a84050c890a8ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8b0b0b8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffa0b07090b038a8c838b8d038b0d038b0d03898c038 +a0b070ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffc0c0b090a048709038508038607030487030384038506028788078 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb878a8b87888 +a05080a04050a03040a02038982030a02020b02020b02030c02030c02030c02020c02030 +c02020d02820d02820d03828c02020b82020d03828e86860f09088f09890f09890f09890 +f0a098f0a098f0a098f0a098f09088e86860e86860e86850e04840e04840e02820e02820 +e04840e02820e02820e02820d03828e02820e02820e02820e02820e02820e02820e02820 +e02820c02030b02020901828a03038a85060d088a0ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffc07888a02038a01820b82020c02030 +c82820d03828c82820c82820c02020a83028981820a04858c890a8ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8b0a8b8ffffffffffffffffffffffff +ffffffffffffb0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffa0b07090a838b0d038b8d038b0d038a8d03898c038 +a8b868ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffb0b88898a850a8c838a8c83890b038789038607030607030a0a880 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffd090a8c87080a04858981850901828982030a02038982030a01820a82020 +b02020a82020b82020b82020b02020b02030d03828e85850e85850e86860e86860f09088 +f09088f09088f09890f0a098f0a098f0a098f0a098f09890f09088e86860e86860e85850 +d03828d03828c02030e02820e02820e02820e04840e02820e02820e04840e02820e02820 +d03828c02020c82820c02020a82020a02020a83028b86878d0a8c0ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffc06098a02038a02020c02030c82820c82820 +c82820d02820c02020b82020981820881818a05068c088b8ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0a8b8a8a0b8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffa0a88090b038b0d038b0d038b0d038a8d03898c038 +a0b070ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffb8c0a0a8b078a8d038c0d848c0d848c0d848b8d03890b03898a850b0b0b8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffc08098a04080903040802028901828 +901828881818a02020a82020a02020b02020b82020c82020d03828e02820e04840e04840 +e85850e85850e86860f09088f09088f09088f09890f0a098f0a098f0a098f0a098f09088 +f09088e86860e85850e85850e02820e02820e02820e02820e02820e02820e02820d03828 +d82820d82820c02030d03828c82020c82820b82020a02020903040b88098ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffc06098982030982030b82020c82820c82820d02820 +d82820d02820c02030a02020802028a04858c088b8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8b0b0b8ffffffffffffffffffffffff +ffffffffffffb0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffa0b07090a838b0d038b0d038a8d038a8c83898c038 +a0b070ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffb0b888a0b848b0d038c0d848b8d038c0d848c0d848a8b868b0b888ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd098c0d098b0 +c08098884050802028881818801018a02020c82820d82820d82820e02820e02820e02820 +e02820e02820e04840e02820e04840e85850e86860e86860f09890f09088f09890f0a098 +f0a098f0a098f09890f09088e86860e86860e04840d03828d03828d03828d82820d03828 +e02820e02820e02820d03828e02820d03828e02820d02820b02020a82830b84050d88090 +e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffd8a8c0c06098a03038a82830b82020b82020c02020d02820d02820 +c02030c82820a82020901818a05068c890a8ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8b0a8b8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffc0c0b0a0a88090a838a8c838b0d038a8d038a8c83898c038 +a8b078ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffc0c0b0b0b888a0c838b8d038c0d848b8d038b8d038b8d038a8b868b0b888ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd098b0c890a8d88090b86058a83028c02020d02820d03828e02820d03828e02820 +e02820e02820e02820e02820e02820e02820e04840e04840e85850e85850e86860e86860 +f09088f09088f09890f09890f0a098f09890f09088e86860e86860e04840d03828d03828 +d82820d03828e02820e02820e02820e02820e02820e02820d03828c02020b02020a03040 +c06078d098b0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffe0a8c0c06098a84050b02020c02020c02020c82820c02020c02030c82820 +c02030b82020981820a04858b878a8ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8a8a0b8ffffffffffffffffffffffff +ffffffffffffb0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffa0b06890a838a8c838b0d038a8d038a0c83898c038 +b0b888ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffb8c0a0a8d038a0c838c0d848b8d038b8d038b8d038b8d038a8b868c0c0b0ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffff09088b83848c82820c82820d02820d82820e02820d03828 +e02820d03828e02820e02820e04840e02820e02820e02820e02820d03828d03828e04840 +e04840e85850e86860e86860f09088f09088f09088f09890f09088f09088e86860e86850 +e85850e04840e02820d03828e02820e02820e02820e02820e02820c02030c82820b82020 +b03040a85068c07888ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd098b0c87080b84050b02030c02020d02820c82820c02030c82820c02020b82020 +a82020a02020a85068b878a8ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa098b0b0b0b8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffff90987890b038a8c838b0d038a8d038a0c83898c038 +b0b888ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffb0b888a0b848a8d038c0d848b8d038b8d038b8d038a8c838b0b888ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffff09890b84050a83028d02820c02030d82820d82820d03828 +e02820e02820e02820e02820e02820e02820e02820e02820e02820e02820e02820d03828 +e02820e02820e02820e04840e04840e85850e86860f09088f09088f09088f09088f09088 +f09088e86860e86860e85850e04840e04840e02820d03828e02820d03828d02820c82820 +b82020b02020b03040b85868d088a0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +d8a0b0b86878b03040b02030c02030c82020d03828d82820c82820c02020b82020a02020 +982030a04858d098c0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa098b0a8a0b8ffffffffffffffffffffffff +ffffffffffffb0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffc0c0b0a0b06890a838a8c838a8d038a8c838a0c83898c038 +b0b888ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +c0c0b0a8b868a8d038b0d038b8d038c0d848b8d038b8d038a0b848b8c0a0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffd88090b83848c02030c82820d02820d02820d03828d82820 +d03828e02820d03828e02820d03828e02820e02820d03828e02820d03828e02820e02820 +e02820e02820d03828e02820e02820e02820d03828e02820e85850e86850e86850f09088 +f09088f09088f09088f09088e86860e86860e85850e04840e04840d02820d02820d02820 +c82820c82820c02020b02030b83848c06098d8a0b0ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd098b0 +b86878a03040a82020c02020c82820d02820c02030d02820c82820b82020a83028901828 +a05068b888a0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa098b0a8a0b8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffff90987890a838a8c838a8d038a8d038a0c83898b838 +b0b888ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +b0b888a8b868a8d038b8d038c0d848c0d848b8d038a8d038a8b868ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffc87080b83848c02030c82820d02820d02820c02030d82820 +c02030d82820d02820c02030d82820d03828d02820d82820d03828e02820e02820e02820 +d03828e02820e02820e02820e02820d03828e02820e02820e02820e02820e02820e02820 +e04840e85850e86860f09088f09088f09890f09088f09088e86850e04840d03828d03828 +e02820e02820e02820d82820c02030b02030b85868d088a0e0a8c0ffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb86878 +982030a82020c02020d02820c02030d82820c02020c02020c02030a82020901828a04858 +c088b8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa098b0a8a0b8ffffffffffffffffffffffff +ffffffffffffb0b0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffc0c0b0a0b06890a838a8c838a8c838a0c838a0c83898b838 +a0b070ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb8c0a0 +a0b070a0c838b0d038b8d038b8d038c0d848a8d038a0b848b0b888ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffc06078b83848c02030d02820c02030d82820d02820c02030 +d02820c02030c82820c02030c82820c82820c02030d02820d02820d82820d03828e02820 +e02820e02820d03828e02820e02820e02820e02820e02820d03828e02820d03828e02820 +d82820d03828d82820e04840e04840e86860e86860f09088f09088f09088f09088e86860 +e85850e02820d03828e02820d03828d82820b82020a02038c06078e0a8c0ffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffd8a8c0b86878a03038 +a02020b02020c82820d02820c82820c82820c02020c82820a02020901818a04858c088b8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa098b0b0a8b8ffffffffffffffffffffffff +ffffffffffffb0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffa0b07090a83898c038a8d038a8d03898c03898b838 +a8b078ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b888 +a0b848a8d038b0d038b8d038b8d038b0d038a0b848a8b868b8c0a0ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffc06078b83848c02030c82020c82820c02020c02020c02020 +b82020b82020b82020c02020b82020c02020c82820c02030d02820d02820d82820d03828 +e02820d03828c02030d02820c02030d03828d02820d03828e02820e02820e02820d03828 +e02820d82820c82820c82020c82820c82820d02820d82820e02820e04840e85850e86860 +f09088f0a098f09088e85850e02820c02030d03828d02820b82020a82830c87080e0a8c0 +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffe0a8c0b85868982030b02020 +c02020c82820c02030c82820c02030b82020a83028a02020881818a85068c088b8ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa098b0a8a0b8ffffffffffffffffffffffff +ffffffffffffb0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffff90987890b038a8c838a8c838a8d03898c03890b038 +a8b078ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0c0b0a8b868 +a8d038b0d038b8d038b8d038b8d038a8d038a8b868b8c0a0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffc87080b03040c02020c02020b82020b82020b02030b82020 +b82020b82020a83028c02020b82020c82820c02020c02020c02030c82820c02030d82820 +c02030d82820d02820c02030c82820c02020c02030c82820c82820c02030d03828c82020 +d02820d02820d02820d82820d82820e02820d03828e02820e02820e02820e02820d03828 +d03828d03828e85850e86860f09088f09890e86860e04840c82820b82020b02030b84050 +c87080e0a8c0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffd098b0b85090b03040b02020b82020 +d02820d02820d02820c82820c02020b82020a82020982030a85068c890a8ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa098b0b0a8b8ffffffffffffffffffffffff +ffffffffffffb0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffc0c0b0a0b07090a83898c038a0c838a8d038a0c838a0b848 +a8b078ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b888a8b868 +b0d038b8d038b8d038b8d038a8d038a0c838a8b868c0c0b0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffc07888b03040b02020b82020b82020b82020c02020b82020 +c02020c02020c02020c02020c02020c02030c82820b82020c02020b82020c02020b82020 +c02020b02030c82820c02020c82820c02020c82820c82820c02020c82820c02020c82820 +c02030d02820d02820c02030d03828d82820d02820d02820c82820d03828d02820d02820 +c82020c82820d02820d03828d03828d03828e04840e85850e86860e86860e85850d03828 +c02030b83848d088a0d098c0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffc898b0c06078a02058b02030c82020d02820 +d02820c02030c82820b82020a83028a01820901828a85868d090a8ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8b0b0b8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffff90987890a83898b838a0c838a0c838a0c83890b038 +a8b078ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffc0c0b0a0b068a8c838 +b0d038b8d038b8d038b8d038a8d03898c038b0b888ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffc888a0a03038b02020b02020b02020b82020a83028b82020 +b82020c02020c02020a83028c82820b82020b82020b82020a83028b82020a82020b02020 +a82020b82020b82020b82020b82020c02030b82020b82020b82020b82020b82020b82020 +b82020b82020c02030c82820c82020c02030c82820c02030b82020b02020b82020c02020 +c82820c82820c02020c82820c82820c02020c82820d03828b84050e04840b83848e04840 +e04840e85850984078a08890c088b8ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd090a8b86878a03040b82020c02020d02820d82820 +d02820c82820b82020a83028a01820802028a87080d098c0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8b0a8b8ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffc0c0b0a0a88080a83890b038a0c838a0c83898c03898c038 +a0b070ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffa8b078a0b848a8d038 +b8d038b8d038b8d038c0d848a0c838a8b868b8c0a0ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffc8a0a8a84050982030a02020a82020a82020b02020b02020 +a82020a83028b82020b02020b02020b02020a82020a82020a82020a01820a02020a02020 +a02020a82020a82020b02020b02020a82020a82020a82020a82020a82020a82020a82020 +a82020a82020a82020a82020b02020a82020b02020a82020a82020a01820a82020b02020 +b02020b02020b02020b02020a82020a82020a82020a02020a82020b02020b82020c02030 +b83848b84050884050984078808090b878a8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffc890a8b86878a03040a01820c02020d02820d82820c02030 +c82820c02030b02020981820802028a05080ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0a8b8b0a8b8ffffffffffffffffffffffff +ffffffffffffb0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffa0b07078903898b83898c038a0c83898c03898b838 +a0b070ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffb8c0a0a8b868a0c838b0d038 +b8d038b8d038b0d038a8d03898c038b0b888ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffa05068802028901828981820a01820a01820981820 +a02020a01820981820981820981820981820981820981818981820981820901818901818 +901818901818981820981820981820901818901818901818901818901818981820901818 +901818981820901818901818901818901818901818901818901818981820981820a02020 +a02020a83028a02020982030a83028a03038a03040a84050a85060a84050b85868b85868 +c06078b86878b068a0a08890b878a8b098b0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffd0a8c0a87080983848901828b02020b82020d03828d82820c82820 +b82020b02020981820901818884050ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb098b0c8a0a8ffffffffffffffffffffffff +ffffffffffffb098b0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffa0a88090a04890a83898c038a0c83898c03890b038 +a0b068ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffb0b888a0b848a8d038b8d038 +b8d038b8d038b0d038a0c838a8b868c0c0b0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffa87080702838801018801018881818881818881818 +801018781010881818781010881818781010801018781010781010801018781010781010 +801018801018801018801018881818802028802028802028802028802028903040903040 +903040983848884050983848884050a04050a04858a05068a05068a85060a85868a87080 +b86878a87080b86878b87888a87080c08090c08098c888a0d090a8d8a0b0ffffffe0a8c0 +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffb098b0a87080a05068983848a83028b82020c02020c02020b02030 +b82020981820901818a04858c888a0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb098b0ffffffffffffffffffffffffffffff +ffffffffffffb098b0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb0b88878903890b03898c03898c038a0c83890b038 +a0b058ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffb8c0a0a0b058a0b848b0d038b0d038 +b0d038b0d038b0d038a0b848b8c0a0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffc088b8984078702838781010500828781010781010 +802028802028702838802028802028702838903040702838702838884050903040702838 +702838884050884050884050a05068a05068a87080a87080a87080a87080a08890b88098 +b888a0c8a0a8d098c0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffff0a098f09088b83848a02020b02020a83028 +a82020901818a85060d088a0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb098b0c8a0a8ffffffffffffffffffffffff +ffffffd8a0b0b888a0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb8c0a078884890a83898b83898c03898c03898c038 +98a850b0b8a8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffc0c0b0a0b07090b038c0d848b0d038b0d038 +b0d038b0d038a0c838a8b868c0c0b0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffc890a8a05080703858703858884050a05080 +a87080a87080a08890b888a0b888a0c890a8c0b0c0c8a0a8ffffffffffffffffffffffff +fffffff0d8e8e8e0e8e8e0e8e8e0e8ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffa8a0b8ffffffffffffffffffffffffffffffffffffc87080a83028a02020981820 +982030a85868d090a8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa87080b87888f09890ffffffffffffffffff +f0a098d088a0b87888ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb8c0a098a85078903898b83898c03898c03890b038 +98b838a0a880ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0b888a0b84898c038c0d848a8d038b0d038 +b0d038a8d038a0b058b8c0a0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffff0d8e8e8e0e8ffffffffffff +ffffffffffffffffffffffffffffffffffffe8e0e8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffff0a098b86058781010702838 +b86878d098b0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa05080884050a03038a83028b86058b83848 +a04858a03038a04858ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffc0c0b090987880a83880a83898b838a0b84898c038 +90b038a0b070c0c0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb8c0a0a0b05890b038a8d038b0d038b0d038a8d038 +a8d038a0b848a0b070ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffd8a0b0a05068702838a85868 +c898b0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffe8e0e8a05068802028a02020a83028a83028a83028 +b02030981818983848ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa0b07078903890a83890b03898c03890b038 +90b03898a850b8c0a0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffb8c0a0a8b078a0b848a8c838b0d038b0d038b0d038a8d038 +a0b848a0b068b8c0a0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffc0c0b0a05068808090d098b0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa05068802028a02020b02020c02020b02020 +b82020a82020a03038ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa0a88078884880a83890b03890b03898c038 +90b03890a048b0b888ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffc0c0b0a8b078a0b848a8c838b0d038b0d038b0d038a8d03898c038 +98a850b0b888ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffb0b0b8b0a8b89898a0c898b0ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa05068982030a82020c02020c02020c02020 +c82820b02020a03040ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0b8a878884878903890b038a0b84890b038 +98b83890a838a8b868ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffc0c0b0b0b888a0b058a8c838a8c838b8d038a8d038a8c838a0c838a0b848 +a8b078ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0b0b8a8a0b0b0a8b8ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb86878982030b82020c02020c82820d02820 +c02030b82020a03040e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffff90987878903890a83890b03890b038 +90b03890a83898a850b8c0a0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffc0c0b0b0b888a8b868a8c838a8c838a8c838b0d038b0d038a0c83890b038a0b068 +b8c0a0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb0b0b8a0a0b0a8a0b8ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85868b02030b82020c82820d02820d02820 +c82820b82020b03040ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffff90987878884878903890a83890b038 +98a85090b03880a838a0a880ffffffffffffffffffffffffffffffffffffffffffffffff +c0c0b0b0b888a0b070a0b848a8c838a8c838a8c838b0d038a0c83890b038a0b058b0b888 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffb0b0b8a0a0b0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffc06078982030c02020c82820d82820d82820 +c02030c02020a03040e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffa8a0a878884878903890a04880a838 +90b03890b03890a04898a850b0b8a8ffffffffffffffffffffffffffffffffffffc0c0b0 +b0b888a0b07098a85098b838a8c838a8c838b0d038a8c83890b03898a850a0a880ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffb0b0b8a0a0b0a8a0b8ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85868b02030b82020d02820d02820d03828 +c82820c02020b83848ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffff90987878884878903880a838 +90b03890b03880a83890a048a0a880c0c0b0ffffffffffffffffffc0c0b0b0b888a0b070 +98a85098a850a0b848a8c838a8c838a8c838a8c83898c03890b038a0b070ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffb8b0c0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffb0a8b8a0a0b0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffc06078a82830b82020c02030d02820d02820 +c02030b82020a03848ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffff9898a0788848789038789038 +80a83880a83880a83880a83890a048a0b070b0b888b0b888b0b888a8b868a0b05890a048 +80a838a0b84898c038a8c83898b83898c03898b83890b038a8b868ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +b8b8b8a8a0b0a8a0b0a8a0b8ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85868a82830b82020c82820c02030d02820 +c02020b02020a03040ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffff909878788848709038 +78903880a83890a04880a83880a83880a83890a04890a04890a04890b03880a83890b038 +98b83898b838a0b84898c03898b83890b03890b038a0b068b8c0a0ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffb8b0c0ffffffffffffffffffffffffffffffffffffffffffffffffc0c0b0 +b0b0b8a0a0b0a8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85088a82020b82020c02020c82820c82820 +b82020b02020a84050ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b8a8788848789038 +70903880a83880a83880a83880a83878884880a83880a83880a83880a83890a83898b838 +98c03898c03890b03890b03890b03890a048a0b068b0b888ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb8b8b8a8a0b0 +a8a0a8b0b0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffc06078982030b82020c02020c02020c02030 +b82020a82020a03040ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b888788848 +70903870903870903880a83878884880a83880a83880a83890a04890b03890a04898c038 +90b03890b03890b03880a83880a838a0b070b0b888ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffb8b8b8b0b0b8a0a0b0 +a0a0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85868a82830b02020c02020c02020c82820 +b82020a83028a03040ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff909878 +78884870903870903870903880a83880a83880a83880a83880a83890b03890b03890b038 +90a04880a83880a83890a048909878b8c0a0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b0b8 +ffffffffffffffffffffffffffffffffffffffffffffffffb8b8b8b0a8b8a8a0b0a8a0b8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85868a82020b82020c02020c02030c82820 +c02020b02020a03040e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +a8a0a870903870903870903878884878903878884878903890a04880a83880a83880a838 +789038788848909878a0a880b0b8a8ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb8b0c0ffffff +ffffffffffffffffffffffffffffffffffffffffffb8b8b8b0a8b8b0a8b8ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85068a82020a83028c82820c02020c82820 +c02020a83028a82830ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffff909878788848607030607030789038789038789038789038789038789038788848 +90a048909878b0b888ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b0b8ffffffffffff +ffffffffffffffffffffffffffffffffffffb8b8b8a8a0b0a8a0b0b0a8b8ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85868a82020b82020c02020c82820c02030 +c02020b82020a03038e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffb0b8a8a0a88090987878884878884878884878884878884890a048a0a880 +b0b8a8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb8b0c0a8a0a8a8a0b0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060a02020b02020c02020c82820c82820 +c02020a83028a83028ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb0b0b8a8a0a8a8a0a8b8c0a0b0b0b8b0b0b8ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffb0b0b8ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffa8a0b0a8a0b8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060a02020a83028c82020c02020d02820 +c02030b82020a03038e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffb0b0b8a098b0a8a0b0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060a02020b82020c02020c02030c82820 +c02020b02020a03038e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffa8a0b0a098b0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060a02020b02020c02020c82820c82820 +c02020a83028b03040ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffb8b0c0a8a0b0b0a8b8ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060981820b02020c02020c82820c02030 +c02020b82020a83028ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +b8b0c0a8a0a8a098b0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060a02020b02020c02020c82820c82820 +c02020b02020a03038e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb8b0c0 +a8a0b0a098b0a8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85868a02020b02020c02020c02030c82820 +c02020b02020a82830ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffb8b0c0ffffffffffffffffffffffffffffffffffffffffffffffffb0a8b8a8a0a8 +a098b0b0b0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85868a82020b02020c02020c82820c82820 +c02030b82020a82830ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +b0b0b8ffffffffffffffffffffffffffffffffffffffffffffffffb0b0b8a098b0a098b0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85868a83028b02020c02020c82820c02030 +c82820b02020a03038ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b0b8 +ffffffffffffffffffffffffffffffffffffffffffffffffb0a8b8a8a0a8a8a0b8ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85868a83028b82020c02020c82820c82820 +c02020b02020a83028ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb8b0c0ffffff +ffffffffffffffffffffffffffffffffffffffffffb8b0c0a0a0b0a8a0b8ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85868a82020b02020c02020c02030c82820 +c02020a83028a82830ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0b0b8a098b0a8a0b8ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060a02020b02020c02020d02820c02020 +c02020b82020a82830ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb0b0b8a8a0b8a8a0b8ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85868a02020b02020c82820c82820c02030 +c02020b82020a03038ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffb0b0b8a098b0a8a0b8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85868a82020b02020c02020c82820c82820 +c02020a83028a82830ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffb0b0b8a098b0a098b0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85868a82020b82020c02020c02030c82820 +c02020b82020a03038e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffb0b0b89898a0a098b0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85868a02020a83028c82820c82820c82020 +c02020b82020a03038e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffa0a0b0a8a0b0b098b0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060a02020b02020c02020c82820c02030 +c02020b02020a82830ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffb0b0b8ffffffffffffffffffffffffffffffffffffffffffffffff +a0a0b0a0a0b0a8a0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060a02020b02020c02020c82820d02820 +c02020b02020982030ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +d0a8c0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b0b8 +a0a0b0b0b0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85068a02020b02020c82820c02030d02820 +c02020a83028a02020ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +d8a8c0ffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b0b8a0a0b0 +a0a0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85868a83028b82020c02020c82820c82820 +c02020b82020a02038e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd098b0c07888 +b86878c08090d8a0b0ffffffffffffffffffffffffffffffffffffb0b0b8a0a0b0a8a0b8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85868a83028b82020c02020c82820c02030 +c02020a83028a83028ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffd098b0b86878a03038 +a02020a03038c06868f0a098ffffffffffffffffffffffffb0b0b8a0a0b0a8a0b0ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060a82020b02020c02020c82820c82820 +c02020b82020a03038ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffc088b8c06078a03040a02020 +a02020a02020a83028c06868f0a098ffffffffffffb0b0b8a8a0a8b0b0b8ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060a02020b02020c82820c02030c82820 +c02020b02020a82830ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffe0a8c0c06078a02038a82020b82020 +c82820b82020a82020a02020b86058c8a0a8c8b8a0a8a0a89898a0ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060981820b02020c02020d02820c82820 +c02030b02020982030d8a0b0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffd8a0b0b84050a01820b02020c02020c82820 +c82820c82820b82020a02020a04858b87888a08890a8a0b0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85868a82020b02020c02020c02030d02820 +c02020a82020a02020ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd088a0a03848a01820c02030c02020c82820d02820 +c02030c82820b02020a02020903040884050a08890ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85868a82020a83028c82020c82820c82820 +c02020b02020a82830ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffd088a0a85068a01820b02020c82820d02820d82820d82820 +d02820c02020a83028901818903040a87080ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85868a82020b02020c02020c82820c02020 +c02020b02020a82830ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff + +showpage + +% stop using temporary dictionary +end + +% restore original state +origstate restore + +%%Trailer diff --git a/.svn/pristine/12/12ac912d46f255bd33015d8616c9378091a4fd08.svn-base b/.svn/pristine/12/12ac912d46f255bd33015d8616c9378091a4fd08.svn-base new file mode 100644 index 0000000..90d8d2e --- /dev/null +++ b/.svn/pristine/12/12ac912d46f255bd33015d8616c9378091a4fd08.svn-base @@ -0,0 +1,22 @@ +inline char *ConfigFileHough::Get_CfgFileName(){return CfgFileName;} +inline double ConfigFileHough::Get_MaxDist(){return MaxDist;} +inline double ConfigFileHough::Get_MinDist(){return MinDist;} + +inline unsigned int ConfigFileHough::Get_AccumulatorMax(){return AccumulatorMax;} +inline unsigned int ConfigFileHough::Get_MinSizeAllPoints(){return MinSizeAllPoints;} +inline unsigned int ConfigFileHough::Get_RhoNum(){return RhoNum;} +inline unsigned int ConfigFileHough::Get_ThetaNum(){return ThetaNum;} +inline unsigned int ConfigFileHough::Get_PhiNum(){return PhiNum;} +inline unsigned int ConfigFileHough::Get_RhoMax(){return RhoMax;} +inline double ConfigFileHough::Get_MaxPointPlaneDist(){return MaxPointPlaneDist;} +inline unsigned int ConfigFileHough::Get_MaxPlanes(){return MaxPlanes;} + +inline unsigned int ConfigFileHough::Get_MinPlaneSize(){return MinPlaneSize;} +inline double ConfigFileHough::Get_MinPlanarity(){return MinPlanarity;} +inline double ConfigFileHough::Get_PlaneRatio(){return PlaneRatio;} +inline double ConfigFileHough::Get_PointDist(){return PointDist;} +inline bool ConfigFileHough::Get_PeakWindow(){return PeakWindow;} +inline unsigned int ConfigFileHough::Get_WindowSize(){return WindowSize;} +inline unsigned int ConfigFileHough::Get_TrashMax(){return TrashMax;} +inline unsigned int ConfigFileHough::Get_AccumulatorType(){return AccumulatorType;} +inline char* ConfigFileHough::Get_PlaneDir(){return PlaneDir;} diff --git a/.svn/pristine/13/136c7eea55e04055dcaf45419a00c3833f0355ac.svn-base b/.svn/pristine/13/136c7eea55e04055dcaf45419a00c3833f0355ac.svn-base new file mode 100644 index 0000000..0ec24dc --- /dev/null +++ b/.svn/pristine/13/136c7eea55e04055dcaf45419a00c3833f0355ac.svn-base @@ -0,0 +1,19 @@ +Code for PMD camera. + +pmdaccess2/* PMD-camera access lib +cvpmd & pmdWrap libpmdaccess2 wrapper, PMD -> OpenCV marshalling and a bit of math. +calibrate/* PMD calibration tool +pose/* 3D Tracking, pose estimation +offline/* Grab data for offline processing +*xml cameras matrices + +Depends on OpenCV (2.0), GLFW, FTGL, libconfig, xmlrpc-c + +installing opencv on ubuntu: http://ivkin.net/2009/11/installing-opencv-2-0-on-ubuntu-9-10-karmic-koala/ + +to compile just run: + $ make + +Ubuntu issues: + # fix GLFW /usr/lib/libglfw.so symlink + # obtain libconfig somewhere (i.e. from debian repos or install from source) diff --git a/.svn/pristine/13/13d148cc8b564ebc6de6fe3c9c94cbcb5d42ced2.svn-base b/.svn/pristine/13/13d148cc8b564ebc6de6fe3c9c94cbcb5d42ced2.svn-base new file mode 100644 index 0000000..9ed0fbe --- /dev/null +++ b/.svn/pristine/13/13d148cc8b564ebc6de6fe3c9c94cbcb5d42ced2.svn-base @@ -0,0 +1,200 @@ +//$$ solution.cpp // solve routines + +// Copyright (C) 1994: R B Davies + + +#define WANT_STREAM // include.h will get stream fns +#define WANT_MATH // include.h will get math fns + +#include "include.h" +#include "boolean.h" +#include "myexcept.h" + +#include "solution.h" + +#ifdef use_namespace +namespace RBD_COMMON { +#endif + + +void R1_R1::Set(Real X) +{ + if ((!minXinf && X <= minX) || (!maxXinf && X >= maxX)) + Throw(SolutionException("X value out of range")); + x = X; xSet = true; +} + +R1_R1::operator Real() +{ + if (!xSet) Throw(SolutionException("Value of X not set")); + Real y = operator()(); + return y; +} + +unsigned long SolutionException::Select; + +SolutionException::SolutionException(const char* a_what) : BaseException() +{ + Select = BaseException::Select; + AddMessage("Error detected by solution package\n"); + AddMessage(a_what); AddMessage("\n"); + if (a_what) Tracer::AddTrace(); +}; + +inline Real square(Real x) { return x*x; } + +void OneDimSolve::LookAt(int V) +{ + lim--; + if (!lim) Throw(SolutionException("Does not converge")); + Last = V; + Real yy = function(x[V]) - YY; + Finish = (fabs(yy) <= accY) || (Captured && fabs(x[L]-x[U]) <= accX ); + y[V] = vpol*yy; +} + +void OneDimSolve::HFlip() { hpol=-hpol; State(U,C,L); } + +void OneDimSolve::VFlip() + { vpol = -vpol; y[0] = -y[0]; y[1] = -y[1]; y[2] = -y[2]; } + +void OneDimSolve::Flip() +{ + hpol=-hpol; vpol=-vpol; State(U,C,L); + y[0] = -y[0]; y[1] = -y[1]; y[2] = -y[2]; +} + +void OneDimSolve::State(int I, int J, int K) { L=I; C=J; U=K; } + +void OneDimSolve::Linear(int I, int J, int K) +{ + x[J] = (x[I]*y[K] - x[K]*y[I])/(y[K] - y[I]); + // cout << "Linear\n"; +} + +void OneDimSolve::Quadratic(int I, int J, int K) +{ + // result to overwrite I + Real YJK, YIK, YIJ, XKI, XKJ; + YJK = y[J] - y[K]; YIK = y[I] - y[K]; YIJ = y[I] - y[J]; + XKI = (x[K] - x[I]); + XKJ = (x[K]*y[J] - x[J]*y[K])/YJK; + if ( square(YJK/YIK)>(x[K] - x[J])/XKI || + square(YIJ/YIK)>(x[J] - x[I])/XKI ) + { + x[I] = XKJ; + // cout << "Quadratic - exceptional\n"; + } + else + { + XKI = (x[K]*y[I] - x[I]*y[K])/YIK; + x[I] = (XKJ*y[I] - XKI*y[J])/YIJ; + // cout << "Quadratic - normal\n"; + } +} + +Real OneDimSolve::Solve(Real Y, Real X, Real Dev, int Lim) +{ + enum Loop { start, captured1, captured2, binary, finish }; + Tracer et("OneDimSolve::Solve"); + lim=Lim; Captured = false; + if (Dev==0.0) Throw(SolutionException("Dev is zero")); + L=0; C=1; U=2; vpol=1; hpol=1; y[C]=0.0; y[U]=0.0; + if (Dev<0.0) { hpol=-1; Dev = -Dev; } + YY=Y; // target value + x[L] = X; // initial trial value + if (!function.IsValid(X)) + Throw(SolutionException("Starting value is invalid")); + Loop TheLoop = start; + for (;;) + { + switch (TheLoop) + { + case start: + LookAt(L); if (Finish) { TheLoop = finish; break; } + if (y[L]>0.0) VFlip(); // so Y[L] < 0 + + x[U] = X + Dev * hpol; + if (!function.maxXinf && x[U] > function.maxX) + x[U] = (function.maxX + X) / 2.0; + if (!function.minXinf && x[U] < function.minX) + x[U] = (function.minX + X) / 2.0; + + LookAt(U); if (Finish) { TheLoop = finish; break; } + if (y[U] > 0.0) { TheLoop = captured1; Captured = true; break; } + if (y[U] == y[L]) + Throw(SolutionException("Function is flat")); + if (y[U] < y[L]) HFlip(); // Change direction + State(L,U,C); + for (i=0; i<20; i++) + { + // cout << "Searching for crossing point\n"; + // Have L C then crossing point, Y[L] function.maxX) + x[U] = (function.maxX + x[C]) / 2.0; + if (!function.minXinf && x[U] < function.minX) + x[U] = (function.minX + x[C]) / 2.0; + + LookAt(U); if (Finish) { TheLoop = finish; break; } + if (y[U] > 0) { TheLoop = captured2; Captured = true; break; } + if (y[U] < y[C]) + Throw(SolutionException("Function is not monotone")); + Dev *= 2.0; + State(C,U,L); + } + if (TheLoop != start ) break; + Throw(SolutionException("Cannot locate a crossing point")); + + case captured1: + // cout << "Captured - 1\n"; + // We have 2 points L and U with crossing between them + Linear(L,C,U); // linear interpolation + // - result to C + LookAt(C); if (Finish) { TheLoop = finish; break; } + if (y[C] > 0.0) Flip(); // Want y[C] < 0 + if (y[C] < 0.5*y[L]) { State(C,L,U); TheLoop = binary; break; } + + case captured2: + // cout << "Captured - 2\n"; + // We have L,C before crossing, U after crossing + Quadratic(L,C,U); // quad interpolation + // - result to L + State(C,L,U); + if ((x[C] - x[L])*hpol <= 0.0 || (x[C] - x[U])*hpol >= 0.0) + { TheLoop = captured1; break; } + LookAt(C); if (Finish) { TheLoop = finish; break; } + // cout << "Through first stage\n"; + if (y[C] > 0.0) Flip(); + if (y[C] > 0.5*y[L]) { TheLoop = captured2; break; } + else { State(C,L,U); TheLoop = captured1; break; } + + case binary: + // We have L, U around crossing - do binary search + // cout << "Binary\n"; + for (i=3; i; i--) + { + x[C] = 0.5*(x[L]+x[U]); + LookAt(C); if (Finish) { TheLoop = finish; break; } + if (y[C]>0.0) State(L,U,C); else State(C,L,U); + } + if (TheLoop != binary) break; + TheLoop = captured1; break; + + case finish: + return x[Last]; + + } + } +} + +bool R1_R1::IsValid(Real X) +{ + Set(X); + return (minXinf || x > minX) && (maxXinf || x < maxX); +} + +#ifdef use_namespace +} +#endif + diff --git a/.svn/pristine/13/13fcc1b7acd5da82ca494d79b6bba7306db2ce46.svn-base b/.svn/pristine/13/13fcc1b7acd5da82ca494d79b6bba7306db2ce46.svn-base new file mode 100644 index 0000000..0a4948b --- /dev/null +++ b/.svn/pristine/13/13fcc1b7acd5da82ca494d79b6bba7306db2ce46.svn-base @@ -0,0 +1,141 @@ +/** + * @file + * @brief Implementation of reading 3D scans + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "slam6d/scan_io_uos_rgb.h" +#include "slam6d/globals.icc" +#include +using std::ifstream; +#include +using std::cout; +using std::cerr; +using std::endl; + +#ifdef _MSC_VER +#include +#endif + +/** + * Reads specified scans from given directory. + * + * Scan poses will NOT be initialized after a call + * to this function. + * + * This function actually implements loading of 3D scans + * in UOS file format including color information and will be compiled as + * shared lib. + * + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param dir The directory from which to read + * @param maxDist Reads only Points up to this Distance + * @param minDist Reads only Points from this Distance + * @param euler Initital pose estimates (will not be applied to the points + * @param ptss Vector containing the read points + */ +int ScanIO_uos_rgb::readScans(int start, int end, string &dir, int maxDist, int minDist, + double *euler, vector &ptss) +{ + static int fileCounter = start; + string scanFileName; + string poseFileName; + + ifstream scan_in, pose_in; + + double maxDist2 = sqr(maxDist); + double minDist2 = sqr(minDist); + + int my_fileNr = fileCounter; + + if (end > -1 && fileCounter > end) return -1; // 'nuf read + scanFileName = dir + "scan" + to_string(fileCounter,3) + ".3d"; + poseFileName = dir + "scan" + to_string(fileCounter,3) + ".pose"; + + scan_in.open(scanFileName.c_str()); + pose_in.open(poseFileName.c_str()); + + // read 3D scan + if (!pose_in.good() && !scan_in.good()) return -1; // no more files in the directory + if (!pose_in.good()) { cerr << "ERROR: Missing file " << poseFileName << endl; exit(1); } + if (!scan_in.good()) { cerr << "ERROR: Missing file " << scanFileName << endl; exit(1); } + cout << "Processing Scan " << scanFileName; + + for (unsigned int i = 0; i < 6; pose_in >> euler[i++]); + + cout << " @ pose (" << euler[0] << "," << euler[1] << "," << euler[2] + << "," << euler[3] << "," << euler[4] << "," << euler[5] << ")" << endl; + + // convert angles from deg to rad + for (unsigned int i = 3; i <= 5; i++) euler[i] = rad(euler[i]); + + // overread the first line + char dummy[255]; + scan_in.getline(dummy, 255); + + int r, g, b; + while (scan_in.good()) { + Point p; + try { + scan_in >> p; + scan_in >> r >> g >> b; + p.rgb[0] = (char)r; + p.rgb[1] = (char)g; + p.rgb[2] = (char)b; + + } catch (...) { + break; + } + // load points up to a certain distance only + // maxDist2 = -1 indicates no limitation + if (maxDist == -1 || sqr(p.x) + sqr(p.y) + sqr(p.z) < maxDist2) + if (minDist == -1 || sqr(p.x) + sqr(p.y) + sqr(p.z) > minDist2) + ptss.push_back(p); + } + scan_in.close(); + scan_in.clear(); + pose_in.close(); + pose_in.clear(); + fileCounter++; + + return my_fileNr; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_uos_rgb; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/.svn/pristine/14/1422054b6a982db1cbbb24acc33b6b37ab5d83ef.svn-base b/.svn/pristine/14/1422054b6a982db1cbbb24acc33b6b37ab5d83ef.svn-base new file mode 100644 index 0000000..67b4cf8 --- /dev/null +++ b/.svn/pristine/14/1422054b6a982db1cbbb24acc33b6b37ab5d83ef.svn-base @@ -0,0 +1,194 @@ +/* + * PMD implementation + * + * Copyright (C) Stanislav Serebryakov + * + * Released under the GPL version 3. + * + */ + +#include /* IplImage, cvCreateImage */ + +#include "pmdsdk2.h" + +#include +#include + +#include "cvpmd.h" +#include + +/** TODO + * inten max amplitude + * error handling + */ + +PMD *initPMD(const char* plugin, const char *ip) { + PMD *io = (PMD*)malloc(sizeof(PMD)); + + if(0 != pmdOpen (&io->hnd, plugin, ip, plugin, "")) { + fprintf(stderr, "ERROR: could not connect!\n"); + exit(1); + } + + //pmdUpdate(io->hnd); + //pmdGetSourceDataDescription(io->hnd, &io->dd); + io->dd.std.numColumns = 64; + io->dd.std.numRows = 50; //FIXME! + + io->data = (float*)malloc(io->dd.std.numColumns * io->dd.std.numRows * sizeof(float)); + + return io; +} + +float *pmdDataPtr(PMD *p) { + return p->data; +} + +void releasePMD(PMD **pmd) { + pmdClose((*pmd)->hnd); + free((*pmd)->data); + free(*pmd); + *pmd = 0; +} + + +static float max(const PMD *p) { + float max = 0.0f; + for(unsigned int k = 0; k < p->dd.std.numRows*p->dd.std.numColumns; k++) { + if(p->data[k] > max) max = p->data[k]; + } + //printf("max = %f\n", max); + return max; +} + +//static inline void setPix(const IplImage *m, const int c, const int r, const char v) { m->imageData[r*m->width + c] = v; } + + +CvSize pmdGetSize(const PMD *p) { + return cvSize(p->dd.std.numColumns, p->dd.std.numRows); +} + + +IplImage *toIplImage(const PMD *p, IplImage *img = 0) { + int cols = p->dd.std.numColumns; + int rows = p->dd.std.numRows; + + IplImage *imgp; + if(!img) imgp = cvCreateImage(pmdGetSize(p), 8, 1); + else imgp = img; + + //FIXME: scaled! + float m = max(p); + for(int r = 0; r < rows; r++) { + for(int c = 0; c < cols; c++) { + //FIXME: mess with the rows and colums + CV_IMAGE_ELEM(imgp, uint8_t, r, c) = (uint8_t) 255.0f * p->data[r*cols + c] / m; + } + } + + return imgp; +} + +/*CvPoint3D32f unionVec(const CvPoint uv, const CvMat *intrinsic) { + //TODO: not defined yet + // with this function pmdProjectToCartesian would look like: + // pmdProjectToCartesian pt depth mat = depth * unionVec pt mat + + return cvPoint3D32f(0,0,0); +}*/ + + +static inline CvPoint3D32f pmdProjectToCartesian(const CvMat *intrinsicMatrix, const CvPoint2D32f uv, const float dist) { + /* Lukas Dierks and Jan Wuelfing's projectToCartesian */ + float fx = cvmGet(intrinsicMatrix, 0, 0); + float cx = cvmGet(intrinsicMatrix, 0, 2); + float fy = cvmGet(intrinsicMatrix, 1, 1); + float cy = cvmGet(intrinsicMatrix, 1, 2); + + float u = uv.x; + float v = uv.y; + float r = dist; + float u2 = u*u; + float v2 = v*v; + + float cx2 = cx*cx; + float cy2 = cy*cy; + float fx2 = fx*fx; + float fy2 = fy*fy; + + // Reverse Projection + float squareroot = sqrt( + cy2 * fx2 + + cx2 * fy2 + + fx2 * fy2 - + 2 * cx * fy2 * u + + fy2 * u2 - + 2 * cy * fx2 * v + + fx2 * v2 + ); + + return cvPoint3D32f((fy * r * (cx - u)) / squareroot, + (fx * r * (cy - v)) / squareroot, + (fx * fy * r) / squareroot); +} + +CvPoint3D32f *cvProjectArrayToCartesian( const CvMat *intrinsicMatrix + , const CvPoint2D32f *pts, const int ptsCnt + , CvPoint3D32f *unitVs) { + + for(int i = 0; i < ptsCnt; i++) + unitVs[i] = pmdProjectToCartesian(intrinsicMatrix, pts[i], 1.0); + return unitVs; +} + + +CvPoint3D32f **pmdProjectArrayToCartesian(const PMD *p, const CvMat *intrinsicMatrix, CvPoint3D32f **pts) { + for(unsigned int i = 0; i < p->dd.std.numRows; i++) + for(unsigned int j = 0; j < p->dd.std.numColumns; j++) + pts[i][j] = pmdProjectToCartesian(intrinsicMatrix, cvPoint2D32f(i,j), p->data[j*p->dd.std.numColumns + i]); + return pts; +} + + + +IplImage *pmdQueryImage(PMD *p, IplImage *img = 0) { + pmdGetIntensities(p->hnd, p->data, p->dd.std.numColumns * p->dd.std.numRows * sizeof(float)); + return toIplImage(p, img); +} + +IplImage *pmdQueryImageAsync(PMD *p, IplImage *img = 0) { + pmdGetIntensitiesAsync(p->hnd, p->data, p->dd.std.numColumns * p->dd.std.numRows * sizeof(float)); + return toIplImage(p, img); +} + + +void pmdRetriveDistances(PMD *p) { + pmdGetDistances(p->hnd, p->data, p->dd.std.numColumns * p->dd.std.numRows * sizeof(float)); + return; +} +void pmdRetriveDistancesAsync(PMD *p) { + pmdGetDistancesAsync(p->hnd, p->data, p->dd.std.numColumns * p->dd.std.numRows * sizeof(float)); + return; +} + +IplImage *pmdQueryDistances(PMD *p, IplImage *img = 0) { + pmdGetDistances(p->hnd, p->data, p->dd.std.numColumns * p->dd.std.numRows * sizeof(float)); + return toIplImage(p, img); + +} + +IplImage *pmdQueryDistancesAsync(PMD *p, IplImage *img = 0) { + pmdGetDistancesAsync(p->hnd, p->data, p->dd.std.numColumns * p->dd.std.numRows * sizeof(float)); + return toIplImage(p, img); + +} + +IplImage *pmdQueryAmplitudes(PMD *p, IplImage *img = 0) { + pmdGetAmplitudesAsync(p->hnd, p->data, p->dd.std.numColumns * p->dd.std.numRows * sizeof(float)); + return toIplImage(p, img); +} + +IplImage *pmdQueryAmplitudesAsync(PMD *p, IplImage *img = 0) { + pmdGetAmplitudes(p->hnd, p->data, p->dd.std.numColumns * p->dd.std.numRows * sizeof(float)); + return toIplImage(p, img); +} diff --git a/.svn/pristine/14/1444ace525ba44a3506ee11bff6bf73c58add2df.svn-base b/.svn/pristine/14/1444ace525ba44a3506ee11bff6bf73c58add2df.svn-base new file mode 100644 index 0000000..2ccb069 --- /dev/null +++ b/.svn/pristine/14/1444ace525ba44a3506ee11bff6bf73c58add2df.svn-base @@ -0,0 +1,1124 @@ +//$$ newmat6.cpp Operators, element access, submatrices + +// Copyright (C) 1991,2,3,4: R B Davies + +#include "include.h" + +#include "newmat.h" +#include "newmatrc.h" + +#ifdef use_namespace +namespace NEWMAT { +#endif + + + +#ifdef DO_REPORT +#define REPORT { static ExeCounter ExeCount(__LINE__,6); ++ExeCount; } +#else +#define REPORT {} +#endif + +/*************************** general utilities *************************/ + +static int tristore(int n) // els in triangular matrix +{ return (n*(n+1))/2; } + + +/****************************** operators *******************************/ + +Real& Matrix::operator()(int m, int n) +{ + REPORT + if (m<=0 || m>nrows || n<=0 || n>ncols) + Throw(IndexException(m,n,*this)); + return store[(m-1)*ncols+n-1]; +} + +Real& SymmetricMatrix::operator()(int m, int n) +{ + REPORT + if (m<=0 || n<=0 || m>nrows || n>ncols) + Throw(IndexException(m,n,*this)); + if (m>=n) return store[tristore(m-1)+n-1]; + else return store[tristore(n-1)+m-1]; +} + +Real& UpperTriangularMatrix::operator()(int m, int n) +{ + REPORT + if (m<=0 || nncols) + Throw(IndexException(m,n,*this)); + return store[(m-1)*ncols+n-1-tristore(m-1)]; +} + +Real& LowerTriangularMatrix::operator()(int m, int n) +{ + REPORT + if (n<=0 || mnrows) + Throw(IndexException(m,n,*this)); + return store[tristore(m-1)+n-1]; +} + +Real& DiagonalMatrix::operator()(int m, int n) +{ + REPORT + if (n<=0 || m!=n || m>nrows || n>ncols) + Throw(IndexException(m,n,*this)); + return store[n-1]; +} + +Real& DiagonalMatrix::operator()(int m) +{ + REPORT + if (m<=0 || m>nrows) Throw(IndexException(m,*this)); + return store[m-1]; +} + +Real& ColumnVector::operator()(int m) +{ + REPORT + if (m<=0 || m> nrows) Throw(IndexException(m,*this)); + return store[m-1]; +} + +Real& RowVector::operator()(int n) +{ + REPORT + if (n<=0 || n> ncols) Throw(IndexException(n,*this)); + return store[n-1]; +} + +Real& BandMatrix::operator()(int m, int n) +{ + REPORT + int w = upper+lower+1; int i = lower+n-m; + if (m<=0 || m>nrows || n<=0 || n>ncols || i<0 || i>=w) + Throw(IndexException(m,n,*this)); + return store[w*(m-1)+i]; +} + +Real& UpperBandMatrix::operator()(int m, int n) +{ + REPORT + int w = upper+1; int i = n-m; + if (m<=0 || m>nrows || n<=0 || n>ncols || i<0 || i>=w) + Throw(IndexException(m,n,*this)); + return store[w*(m-1)+i]; +} + +Real& LowerBandMatrix::operator()(int m, int n) +{ + REPORT + int w = lower+1; int i = lower+n-m; + if (m<=0 || m>nrows || n<=0 || n>ncols || i<0 || i>=w) + Throw(IndexException(m,n,*this)); + return store[w*(m-1)+i]; +} + +Real& SymmetricBandMatrix::operator()(int m, int n) +{ + REPORT + int w = lower+1; + if (m>=n) + { + REPORT + int i = lower+n-m; + if ( m>nrows || n<=0 || i<0 ) + Throw(IndexException(m,n,*this)); + return store[w*(m-1)+i]; + } + else + { + REPORT + int i = lower+m-n; + if ( n>nrows || m<=0 || i<0 ) + Throw(IndexException(m,n,*this)); + return store[w*(n-1)+i]; + } +} + + +Real Matrix::operator()(int m, int n) const +{ + REPORT + if (m<=0 || m>nrows || n<=0 || n>ncols) + Throw(IndexException(m,n,*this)); + return store[(m-1)*ncols+n-1]; +} + +Real SymmetricMatrix::operator()(int m, int n) const +{ + REPORT + if (m<=0 || n<=0 || m>nrows || n>ncols) + Throw(IndexException(m,n,*this)); + if (m>=n) return store[tristore(m-1)+n-1]; + else return store[tristore(n-1)+m-1]; +} + +Real UpperTriangularMatrix::operator()(int m, int n) const +{ + REPORT + if (m<=0 || nncols) + Throw(IndexException(m,n,*this)); + return store[(m-1)*ncols+n-1-tristore(m-1)]; +} + +Real LowerTriangularMatrix::operator()(int m, int n) const +{ + REPORT + if (n<=0 || mnrows) + Throw(IndexException(m,n,*this)); + return store[tristore(m-1)+n-1]; +} + +Real DiagonalMatrix::operator()(int m, int n) const +{ + REPORT + if (n<=0 || m!=n || m>nrows || n>ncols) + Throw(IndexException(m,n,*this)); + return store[n-1]; +} + +Real DiagonalMatrix::operator()(int m) const +{ + REPORT + if (m<=0 || m>nrows) Throw(IndexException(m,*this)); + return store[m-1]; +} + +Real ColumnVector::operator()(int m) const +{ + REPORT + if (m<=0 || m> nrows) Throw(IndexException(m,*this)); + return store[m-1]; +} + +Real RowVector::operator()(int n) const +{ + REPORT + if (n<=0 || n> ncols) Throw(IndexException(n,*this)); + return store[n-1]; +} + +Real BandMatrix::operator()(int m, int n) const +{ + REPORT + int w = upper+lower+1; int i = lower+n-m; + if (m<=0 || m>nrows || n<=0 || n>ncols || i<0 || i>=w) + Throw(IndexException(m,n,*this)); + return store[w*(m-1)+i]; +} + +Real UpperBandMatrix::operator()(int m, int n) const +{ + REPORT + int w = upper+1; int i = n-m; + if (m<=0 || m>nrows || n<=0 || n>ncols || i<0 || i>=w) + Throw(IndexException(m,n,*this)); + return store[w*(m-1)+i]; +} + +Real LowerBandMatrix::operator()(int m, int n) const +{ + REPORT + int w = lower+1; int i = lower+n-m; + if (m<=0 || m>nrows || n<=0 || n>ncols || i<0 || i>=w) + Throw(IndexException(m,n,*this)); + return store[w*(m-1)+i]; +} + +Real SymmetricBandMatrix::operator()(int m, int n) const +{ + REPORT + int w = lower+1; + if (m>=n) + { + REPORT + int i = lower+n-m; + if ( m>nrows || n<=0 || i<0 ) + Throw(IndexException(m,n,*this)); + return store[w*(m-1)+i]; + } + else + { + REPORT + int i = lower+m-n; + if ( n>nrows || m<=0 || i<0 ) + Throw(IndexException(m,n,*this)); + return store[w*(n-1)+i]; + } +} + + +Real BaseMatrix::AsScalar() const +{ + REPORT + GeneralMatrix* gm = ((BaseMatrix&)*this).Evaluate(); + + if (gm->nrows!=1 || gm->ncols!=1) + { + Tracer tr("AsScalar"); + Try + { Throw(ProgramException("Cannot convert to scalar", *gm)); } + CatchAll { gm->tDelete(); ReThrow; } + } + + Real x = *(gm->store); gm->tDelete(); return x; +} + +#ifdef TEMPS_DESTROYED_QUICKLY + +AddedMatrix& BaseMatrix::operator+(const BaseMatrix& bm) const +{ + REPORT + AddedMatrix* x = new AddedMatrix(this, &bm); + MatrixErrorNoSpace(x); + return *x; +} + +SPMatrix& SP(const BaseMatrix& bm1,const BaseMatrix& bm2) +{ + REPORT + SPMatrix* x = new SPMatrix(&bm1, &bm2); + MatrixErrorNoSpace(x); + return *x; +} + +KPMatrix& KP(const BaseMatrix& bm1,const BaseMatrix& bm2) +{ + REPORT + KPMatrix* x = new KPMatrix(&bm1, &bm2); + MatrixErrorNoSpace(x); + return *x; +} + +MultipliedMatrix& BaseMatrix::operator*(const BaseMatrix& bm) const +{ + REPORT + MultipliedMatrix* x = new MultipliedMatrix(this, &bm); + MatrixErrorNoSpace(x); + return *x; +} + +ConcatenatedMatrix& BaseMatrix::operator|(const BaseMatrix& bm) const +{ + REPORT + ConcatenatedMatrix* x = new ConcatenatedMatrix(this, &bm); + MatrixErrorNoSpace(x); + return *x; +} + +StackedMatrix& BaseMatrix::operator&(const BaseMatrix& bm) const +{ + REPORT + StackedMatrix* x = new StackedMatrix(this, &bm); + MatrixErrorNoSpace(x); + return *x; +} + +//SolvedMatrix& InvertedMatrix::operator*(const BaseMatrix& bmx) const +SolvedMatrix& InvertedMatrix::operator*(const BaseMatrix& bmx) +{ + REPORT + SolvedMatrix* x; + Try { x = new SolvedMatrix(bm, &bmx); MatrixErrorNoSpace(x); } + CatchAll { delete this; ReThrow; } + delete this; // since we are using bm rather than this + return *x; +} + +SubtractedMatrix& BaseMatrix::operator-(const BaseMatrix& bm) const +{ + REPORT + SubtractedMatrix* x = new SubtractedMatrix(this, &bm); + MatrixErrorNoSpace(x); + return *x; +} + +ShiftedMatrix& BaseMatrix::operator+(Real f) const +{ + REPORT + ShiftedMatrix* x = new ShiftedMatrix(this, f); + MatrixErrorNoSpace(x); + return *x; +} + +NegShiftedMatrix& operator-(Real f,const BaseMatrix& bm1) +{ + REPORT + NegShiftedMatrix* x = new NegShiftedMatrix(f, &bm1); + MatrixErrorNoSpace(x); + return *x; +} + +ScaledMatrix& BaseMatrix::operator*(Real f) const +{ + REPORT + ScaledMatrix* x = new ScaledMatrix(this, f); + MatrixErrorNoSpace(x); + return *x; +} + +ScaledMatrix& BaseMatrix::operator/(Real f) const +{ + REPORT + ScaledMatrix* x = new ScaledMatrix(this, 1.0/f); + MatrixErrorNoSpace(x); + return *x; +} + +ShiftedMatrix& BaseMatrix::operator-(Real f) const +{ + REPORT + ShiftedMatrix* x = new ShiftedMatrix(this, -f); + MatrixErrorNoSpace(x); + return *x; +} + +TransposedMatrix& BaseMatrix::t() const +{ + REPORT + TransposedMatrix* x = new TransposedMatrix(this); + MatrixErrorNoSpace(x); + return *x; +} + +NegatedMatrix& BaseMatrix::operator-() const +{ + REPORT + NegatedMatrix* x = new NegatedMatrix(this); + MatrixErrorNoSpace(x); + return *x; +} + +ReversedMatrix& BaseMatrix::Reverse() const +{ + REPORT + ReversedMatrix* x = new ReversedMatrix(this); + MatrixErrorNoSpace(x); + return *x; +} + +InvertedMatrix& BaseMatrix::i() const +{ + REPORT + InvertedMatrix* x = new InvertedMatrix(this); + MatrixErrorNoSpace(x); + return *x; +} + +RowedMatrix& BaseMatrix::AsRow() const +{ + REPORT + RowedMatrix* x = new RowedMatrix(this); + MatrixErrorNoSpace(x); + return *x; +} + +ColedMatrix& BaseMatrix::AsColumn() const +{ + REPORT + ColedMatrix* x = new ColedMatrix(this); + MatrixErrorNoSpace(x); + return *x; +} + +DiagedMatrix& BaseMatrix::AsDiagonal() const +{ + REPORT + DiagedMatrix* x = new DiagedMatrix(this); + MatrixErrorNoSpace(x); + return *x; +} + +MatedMatrix& BaseMatrix::AsMatrix(int nrx, int ncx) const +{ + REPORT + MatedMatrix* x = new MatedMatrix(this,nrx,ncx); + MatrixErrorNoSpace(x); + return *x; +} + +#else + +AddedMatrix BaseMatrix::operator+(const BaseMatrix& bm) const +{ REPORT return AddedMatrix(this, &bm); } + +SPMatrix SP(const BaseMatrix& bm1,const BaseMatrix& bm2) +{ REPORT return SPMatrix(&bm1, &bm2); } + +KPMatrix KP(const BaseMatrix& bm1,const BaseMatrix& bm2) +{ REPORT return KPMatrix(&bm1, &bm2); } + +MultipliedMatrix BaseMatrix::operator*(const BaseMatrix& bm) const +{ REPORT return MultipliedMatrix(this, &bm); } + +ConcatenatedMatrix BaseMatrix::operator|(const BaseMatrix& bm) const +{ REPORT return ConcatenatedMatrix(this, &bm); } + +StackedMatrix BaseMatrix::operator&(const BaseMatrix& bm) const +{ REPORT return StackedMatrix(this, &bm); } + +SolvedMatrix InvertedMatrix::operator*(const BaseMatrix& bmx) const +{ REPORT return SolvedMatrix(bm, &bmx); } + +SubtractedMatrix BaseMatrix::operator-(const BaseMatrix& bm) const +{ REPORT return SubtractedMatrix(this, &bm); } + +ShiftedMatrix BaseMatrix::operator+(Real f) const +{ REPORT return ShiftedMatrix(this, f); } + +NegShiftedMatrix operator-(Real f, const BaseMatrix& bm) +{ REPORT return NegShiftedMatrix(f, &bm); } + +ScaledMatrix BaseMatrix::operator*(Real f) const +{ REPORT return ScaledMatrix(this, f); } + +ScaledMatrix BaseMatrix::operator/(Real f) const +{ REPORT return ScaledMatrix(this, 1.0/f); } + +ShiftedMatrix BaseMatrix::operator-(Real f) const +{ REPORT return ShiftedMatrix(this, -f); } + +TransposedMatrix BaseMatrix::t() const +{ REPORT return TransposedMatrix(this); } + +NegatedMatrix BaseMatrix::operator-() const +{ REPORT return NegatedMatrix(this); } + +ReversedMatrix BaseMatrix::Reverse() const +{ REPORT return ReversedMatrix(this); } + +InvertedMatrix BaseMatrix::i() const +{ REPORT return InvertedMatrix(this); } + + +RowedMatrix BaseMatrix::AsRow() const +{ REPORT return RowedMatrix(this); } + +ColedMatrix BaseMatrix::AsColumn() const +{ REPORT return ColedMatrix(this); } + +DiagedMatrix BaseMatrix::AsDiagonal() const +{ REPORT return DiagedMatrix(this); } + +MatedMatrix BaseMatrix::AsMatrix(int nrx, int ncx) const +{ REPORT return MatedMatrix(this,nrx,ncx); } + +#endif + +void GeneralMatrix::operator=(Real f) +{ REPORT int i=storage; Real* s=store; while (i--) { *s++ = f; } } + +void Matrix::operator=(const BaseMatrix& X) +{ + REPORT //CheckConversion(X); + // MatrixConversionCheck mcc; + Eq(X,MatrixType::Rt); +} + +void RowVector::operator=(const BaseMatrix& X) +{ + REPORT // CheckConversion(X); + // MatrixConversionCheck mcc; + Eq(X,MatrixType::RV); + if (nrows!=1) + { Tracer tr("RowVector(=)"); Throw(VectorException(*this)); } +} + +void ColumnVector::operator=(const BaseMatrix& X) +{ + REPORT //CheckConversion(X); + // MatrixConversionCheck mcc; + Eq(X,MatrixType::CV); + if (ncols!=1) + { Tracer tr("ColumnVector(=)"); Throw(VectorException(*this)); } +} + +void SymmetricMatrix::operator=(const BaseMatrix& X) +{ + REPORT // CheckConversion(X); + // MatrixConversionCheck mcc; + Eq(X,MatrixType::Sm); +} + +void UpperTriangularMatrix::operator=(const BaseMatrix& X) +{ + REPORT //CheckConversion(X); + // MatrixConversionCheck mcc; + Eq(X,MatrixType::UT); +} + +void LowerTriangularMatrix::operator=(const BaseMatrix& X) +{ + REPORT //CheckConversion(X); + // MatrixConversionCheck mcc; + Eq(X,MatrixType::LT); +} + +void DiagonalMatrix::operator=(const BaseMatrix& X) +{ + REPORT // CheckConversion(X); + // MatrixConversionCheck mcc; + Eq(X,MatrixType::Dg); +} + +void IdentityMatrix::operator=(const BaseMatrix& X) +{ + REPORT // CheckConversion(X); + // MatrixConversionCheck mcc; + Eq(X,MatrixType::Id); +} + +void GeneralMatrix::operator<<(const Real* r) +{ + REPORT + int i = storage; Real* s=store; + while(i--) *s++ = *r++; +} + + +void GenericMatrix::operator=(const GenericMatrix& bmx) +{ + if (&bmx != this) { REPORT if (gm) delete gm; gm = bmx.gm->Image();} + else { REPORT } + gm->Protect(); +} + +void GenericMatrix::operator=(const BaseMatrix& bmx) +{ + if (gm) + { + int counter=bmx.search(gm); + if (counter==0) { REPORT delete gm; gm=0; } + else { REPORT gm->Release(counter); } + } + else { REPORT } + GeneralMatrix* gmx = ((BaseMatrix&)bmx).Evaluate(); + if (gmx != gm) { REPORT if (gm) delete gm; gm = gmx->Image(); } + else { REPORT } + gm->Protect(); +} + + +/*************************** += etc ***************************************/ + +// will also need versions for SubMatrix + + + +// GeneralMatrix operators + +void GeneralMatrix::operator+=(const BaseMatrix& X) +{ + REPORT + Tracer tr("GeneralMatrix::operator+="); + // MatrixConversionCheck mcc; + Protect(); // so it cannot get deleted + // during Evaluate + GeneralMatrix* gm = ((BaseMatrix&)X).Evaluate(); +#ifdef TEMPS_DESTROYED_QUICKLY + AddedMatrix* am = new AddedMatrix(this,gm); + MatrixErrorNoSpace(am); + if (gm==this) Release(2); else Release(); + Eq2(*am,Type()); +#else + AddedMatrix am(this,gm); + if (gm==this) Release(2); else Release(); + Eq2(am,Type()); +#endif +} + +void GeneralMatrix::operator-=(const BaseMatrix& X) +{ + REPORT + Tracer tr("GeneralMatrix::operator-="); + // MatrixConversionCheck mcc; + Protect(); // so it cannot get deleted + // during Evaluate + GeneralMatrix* gm = ((BaseMatrix&)X).Evaluate(); +#ifdef TEMPS_DESTROYED_QUICKLY + SubtractedMatrix* am = new SubtractedMatrix(this,gm); + MatrixErrorNoSpace(am); + if (gm==this) Release(2); else Release(); + Eq2(*am,Type()); +#else + SubtractedMatrix am(this,gm); + if (gm==this) Release(2); else Release(); + Eq2(am,Type()); +#endif +} + +void GeneralMatrix::operator*=(const BaseMatrix& X) +{ + REPORT + Tracer tr("GeneralMatrix::operator*="); + // MatrixConversionCheck mcc; + Protect(); // so it cannot get deleted + // during Evaluate + GeneralMatrix* gm = ((BaseMatrix&)X).Evaluate(); +#ifdef TEMPS_DESTROYED_QUICKLY + MultipliedMatrix* am = new MultipliedMatrix(this,gm); + MatrixErrorNoSpace(am); + if (gm==this) Release(2); else Release(); + Eq2(*am,Type()); +#else + MultipliedMatrix am(this,gm); + if (gm==this) Release(2); else Release(); + Eq2(am,Type()); +#endif +} + +void GeneralMatrix::operator|=(const BaseMatrix& X) +{ + REPORT + Tracer tr("GeneralMatrix::operator|="); + // MatrixConversionCheck mcc; + Protect(); // so it cannot get deleted + // during Evaluate + GeneralMatrix* gm = ((BaseMatrix&)X).Evaluate(); +#ifdef TEMPS_DESTROYED_QUICKLY + ConcatenatedMatrix* am = new ConcatenatedMatrix(this,gm); + MatrixErrorNoSpace(am); + if (gm==this) Release(2); else Release(); + Eq2(*am,Type()); +#else + ConcatenatedMatrix am(this,gm); + if (gm==this) Release(2); else Release(); + Eq2(am,Type()); +#endif +} + +void GeneralMatrix::operator&=(const BaseMatrix& X) +{ + REPORT + Tracer tr("GeneralMatrix::operator&="); + // MatrixConversionCheck mcc; + Protect(); // so it cannot get deleted + // during Evaluate + GeneralMatrix* gm = ((BaseMatrix&)X).Evaluate(); +#ifdef TEMPS_DESTROYED_QUICKLY + StackedMatrix* am = new StackedMatrix(this,gm); + MatrixErrorNoSpace(am); + if (gm==this) Release(2); else Release(); + Eq2(*am,Type()); +#else + StackedMatrix am(this,gm); + if (gm==this) Release(2); else Release(); + Eq2(am,Type()); +#endif +} + +void GeneralMatrix::operator+=(Real r) +{ + REPORT + Tracer tr("GeneralMatrix::operator+=(Real)"); + // MatrixConversionCheck mcc; +#ifdef TEMPS_DESTROYED_QUICKLY + ShiftedMatrix* am = new ShiftedMatrix(this,r); + MatrixErrorNoSpace(am); + Release(); Eq2(*am,Type()); +#else + ShiftedMatrix am(this,r); + Release(); Eq2(am,Type()); +#endif +} + +void GeneralMatrix::operator*=(Real r) +{ + REPORT + Tracer tr("GeneralMatrix::operator*=(Real)"); + // MatrixConversionCheck mcc; +#ifdef TEMPS_DESTROYED_QUICKLY + ScaledMatrix* am = new ScaledMatrix(this,r); + MatrixErrorNoSpace(am); + Release(); Eq2(*am,Type()); +#else + ScaledMatrix am(this,r); + Release(); Eq2(am,Type()); +#endif +} + + +// Generic matrix operators + +void GenericMatrix::operator+=(const BaseMatrix& X) +{ + REPORT + Tracer tr("GenericMatrix::operator+="); + if (!gm) Throw(ProgramException("GenericMatrix is null")); + gm->Protect(); // so it cannot get deleted during Evaluate + GeneralMatrix* gmx = ((BaseMatrix&)X).Evaluate(); +#ifdef TEMPS_DESTROYED_QUICKLY + AddedMatrix* am = new AddedMatrix(gm,gmx); + MatrixErrorNoSpace(am); + if (gmx==gm) gm->Release(2); else gm->Release(); + GeneralMatrix* gmy = am->Evaluate(); +#else + AddedMatrix am(gm,gmx); + if (gmx==gm) gm->Release(2); else gm->Release(); + GeneralMatrix* gmy = am.Evaluate(); +#endif + if (gmy != gm) { REPORT delete gm; gm = gmy->Image(); } + else { REPORT } + gm->Protect(); +} + +void GenericMatrix::operator-=(const BaseMatrix& X) +{ + REPORT + Tracer tr("GenericMatrix::operator-="); + if (!gm) Throw(ProgramException("GenericMatrix is null")); + gm->Protect(); // so it cannot get deleted during Evaluate + GeneralMatrix* gmx = ((BaseMatrix&)X).Evaluate(); +#ifdef TEMPS_DESTROYED_QUICKLY + SubtractedMatrix* am = new SubtractedMatrix(gm,gmx); + MatrixErrorNoSpace(am); + if (gmx==gm) gm->Release(2); else gm->Release(); + GeneralMatrix* gmy = am->Evaluate(); +#else + SubtractedMatrix am(gm,gmx); + if (gmx==gm) gm->Release(2); else gm->Release(); + GeneralMatrix* gmy = am.Evaluate(); +#endif + if (gmy != gm) { REPORT delete gm; gm = gmy->Image(); } + else { REPORT } + gm->Protect(); +} + +void GenericMatrix::operator*=(const BaseMatrix& X) +{ + REPORT + Tracer tr("GenericMatrix::operator*="); + if (!gm) Throw(ProgramException("GenericMatrix is null")); + gm->Protect(); // so it cannot get deleted during Evaluate + GeneralMatrix* gmx = ((BaseMatrix&)X).Evaluate(); +#ifdef TEMPS_DESTROYED_QUICKLY + MultipliedMatrix* am = new MultipliedMatrix(gm,gmx); + MatrixErrorNoSpace(am); + if (gmx==gm) gm->Release(2); else gm->Release(); + GeneralMatrix* gmy = am->Evaluate(); +#else + MultipliedMatrix am(gm,gmx); + if (gmx==gm) gm->Release(2); else gm->Release(); + GeneralMatrix* gmy = am.Evaluate(); +#endif + if (gmy != gm) { REPORT delete gm; gm = gmy->Image(); } + else { REPORT } + gm->Protect(); +} + +void GenericMatrix::operator|=(const BaseMatrix& X) +{ + REPORT + Tracer tr("GenericMatrix::operator|="); + if (!gm) Throw(ProgramException("GenericMatrix is null")); + gm->Protect(); // so it cannot get deleted during Evaluate + GeneralMatrix* gmx = ((BaseMatrix&)X).Evaluate(); +#ifdef TEMPS_DESTROYED_QUICKLY + ConcatenatedMatrix* am = new ConcatenatedMatrix(gm,gmx); + MatrixErrorNoSpace(am); + if (gmx==gm) gm->Release(2); else gm->Release(); + GeneralMatrix* gmy = am->Evaluate(); +#else + ConcatenatedMatrix am(gm,gmx); + if (gmx==gm) gm->Release(2); else gm->Release(); + GeneralMatrix* gmy = am.Evaluate(); +#endif + if (gmy != gm) { REPORT delete gm; gm = gmy->Image(); } + else { REPORT } + gm->Protect(); +} + +void GenericMatrix::operator&=(const BaseMatrix& X) +{ + REPORT + Tracer tr("GenericMatrix::operator&="); + if (!gm) Throw(ProgramException("GenericMatrix is null")); + gm->Protect(); // so it cannot get deleted during Evaluate + GeneralMatrix* gmx = ((BaseMatrix&)X).Evaluate(); +#ifdef TEMPS_DESTROYED_QUICKLY + StackedMatrix* am = new StackedMatrix(gm,gmx); + MatrixErrorNoSpace(am); + if (gmx==gm) gm->Release(2); else gm->Release(); + GeneralMatrix* gmy = am->Evaluate(); +#else + StackedMatrix am(gm,gmx); + if (gmx==gm) gm->Release(2); else gm->Release(); + GeneralMatrix* gmy = am.Evaluate(); +#endif + if (gmy != gm) { REPORT delete gm; gm = gmy->Image(); } + else { REPORT } + gm->Protect(); +} + +void GenericMatrix::operator+=(Real r) +{ + REPORT + Tracer tr("GenericMatrix::operator+= (Real)"); + if (!gm) Throw(ProgramException("GenericMatrix is null")); +#ifdef TEMPS_DESTROYED_QUICKLY + ShiftedMatrix* am = new ShiftedMatrix(gm,r); + MatrixErrorNoSpace(am); + gm->Release(); + GeneralMatrix* gmy = am->Evaluate(); +#else + ShiftedMatrix am(gm,r); + gm->Release(); + GeneralMatrix* gmy = am.Evaluate(); +#endif + if (gmy != gm) { REPORT delete gm; gm = gmy->Image(); } + else { REPORT } + gm->Protect(); +} + +void GenericMatrix::operator*=(Real r) +{ + REPORT + Tracer tr("GenericMatrix::operator*= (Real)"); + if (!gm) Throw(ProgramException("GenericMatrix is null")); +#ifdef TEMPS_DESTROYED_QUICKLY + ScaledMatrix* am = new ScaledMatrix(gm,r); + MatrixErrorNoSpace(am); + gm->Release(); + GeneralMatrix* gmy = am->Evaluate(); +#else + ScaledMatrix am(gm,r); + gm->Release(); + GeneralMatrix* gmy = am.Evaluate(); +#endif + if (gmy != gm) { REPORT delete gm; gm = gmy->Image(); } + else { REPORT } + gm->Protect(); +} + + +/************************* element access *********************************/ + +Real& Matrix::element(int m, int n) +{ + REPORT + if (m<0 || m>= nrows || n<0 || n>= ncols) + Throw(IndexException(m,n,*this,true)); + return store[m*ncols+n]; +} + +Real Matrix::element(int m, int n) const +{ + REPORT + if (m<0 || m>= nrows || n<0 || n>= ncols) + Throw(IndexException(m,n,*this,true)); + return store[m*ncols+n]; +} + +Real& SymmetricMatrix::element(int m, int n) +{ + REPORT + if (m<0 || n<0 || m >= nrows || n>=ncols) + Throw(IndexException(m,n,*this,true)); + if (m>=n) return store[tristore(m)+n]; + else return store[tristore(n)+m]; +} + +Real SymmetricMatrix::element(int m, int n) const +{ + REPORT + if (m<0 || n<0 || m >= nrows || n>=ncols) + Throw(IndexException(m,n,*this,true)); + if (m>=n) return store[tristore(m)+n]; + else return store[tristore(n)+m]; +} + +Real& UpperTriangularMatrix::element(int m, int n) +{ + REPORT + if (m<0 || n=ncols) + Throw(IndexException(m,n,*this,true)); + return store[m*ncols+n-tristore(m)]; +} + +Real UpperTriangularMatrix::element(int m, int n) const +{ + REPORT + if (m<0 || n=ncols) + Throw(IndexException(m,n,*this,true)); + return store[m*ncols+n-tristore(m)]; +} + +Real& LowerTriangularMatrix::element(int m, int n) +{ + REPORT + if (n<0 || m=nrows) + Throw(IndexException(m,n,*this,true)); + return store[tristore(m)+n]; +} + +Real LowerTriangularMatrix::element(int m, int n) const +{ + REPORT + if (n<0 || m=nrows) + Throw(IndexException(m,n,*this,true)); + return store[tristore(m)+n]; +} + +Real& DiagonalMatrix::element(int m, int n) +{ + REPORT + if (n<0 || m!=n || m>=nrows || n>=ncols) + Throw(IndexException(m,n,*this,true)); + return store[n]; +} + +Real DiagonalMatrix::element(int m, int n) const +{ + REPORT + if (n<0 || m!=n || m>=nrows || n>=ncols) + Throw(IndexException(m,n,*this,true)); + return store[n]; +} + +Real& DiagonalMatrix::element(int m) +{ + REPORT + if (m<0 || m>=nrows) Throw(IndexException(m,*this,true)); + return store[m]; +} + +Real DiagonalMatrix::element(int m) const +{ + REPORT + if (m<0 || m>=nrows) Throw(IndexException(m,*this,true)); + return store[m]; +} + +Real& ColumnVector::element(int m) +{ + REPORT + if (m<0 || m>= nrows) Throw(IndexException(m,*this,true)); + return store[m]; +} + +Real ColumnVector::element(int m) const +{ + REPORT + if (m<0 || m>= nrows) Throw(IndexException(m,*this,true)); + return store[m]; +} + +Real& RowVector::element(int n) +{ + REPORT + if (n<0 || n>= ncols) Throw(IndexException(n,*this,true)); + return store[n]; +} + +Real RowVector::element(int n) const +{ + REPORT + if (n<0 || n>= ncols) Throw(IndexException(n,*this,true)); + return store[n]; +} + +Real& BandMatrix::element(int m, int n) +{ + REPORT + int w = upper+lower+1; int i = lower+n-m; + if (m<0 || m>= nrows || n<0 || n>= ncols || i<0 || i>=w) + Throw(IndexException(m,n,*this,true)); + return store[w*m+i]; +} + +Real BandMatrix::element(int m, int n) const +{ + REPORT + int w = upper+lower+1; int i = lower+n-m; + if (m<0 || m>= nrows || n<0 || n>= ncols || i<0 || i>=w) + Throw(IndexException(m,n,*this,true)); + return store[w*m+i]; +} + +Real& UpperBandMatrix::element(int m, int n) +{ + REPORT + int w = upper+1; int i = n-m; + if (m<0 || m>= nrows || n<0 || n>= ncols || i<0 || i>=w) + Throw(IndexException(m,n,*this,true)); + return store[w*m+i]; +} + +Real UpperBandMatrix::element(int m, int n) const +{ + REPORT + int w = upper+1; int i = n-m; + if (m<0 || m>= nrows || n<0 || n>= ncols || i<0 || i>=w) + Throw(IndexException(m,n,*this,true)); + return store[w*m+i]; +} + +Real& LowerBandMatrix::element(int m, int n) +{ + REPORT + int w = lower+1; int i = lower+n-m; + if (m<0 || m>= nrows || n<0 || n>= ncols || i<0 || i>=w) + Throw(IndexException(m,n,*this,true)); + return store[w*m+i]; +} + +Real LowerBandMatrix::element(int m, int n) const +{ + REPORT + int w = lower+1; int i = lower+n-m; + if (m<0 || m>= nrows || n<0 || n>= ncols || i<0 || i>=w) + Throw(IndexException(m,n,*this,true)); + return store[w*m+i]; +} + +Real& SymmetricBandMatrix::element(int m, int n) +{ + REPORT + int w = lower+1; + if (m>=n) + { + REPORT + int i = lower+n-m; + if ( m>=nrows || n<0 || i<0 ) + Throw(IndexException(m,n,*this,true)); + return store[w*m+i]; + } + else + { + REPORT + int i = lower+m-n; + if ( n>=nrows || m<0 || i<0 ) + Throw(IndexException(m,n,*this,true)); + return store[w*n+i]; + } +} + +Real SymmetricBandMatrix::element(int m, int n) const +{ + REPORT + int w = lower+1; + if (m>=n) + { + REPORT + int i = lower+n-m; + if ( m>=nrows || n<0 || i<0 ) + Throw(IndexException(m,n,*this,true)); + return store[w*m+i]; + } + else + { + REPORT + int i = lower+m-n; + if ( n>=nrows || m<0 || i<0 ) + Throw(IndexException(m,n,*this,true)); + return store[w*n+i]; + } +} + +#ifdef use_namespace +} +#endif + diff --git a/.svn/pristine/14/1464c12e28e0ed2c214557c8a3a22d4374eddb1d.svn-base b/.svn/pristine/14/1464c12e28e0ed2c214557c8a3a22d4374eddb1d.svn-base new file mode 100644 index 0000000..e4aafc9 --- /dev/null +++ b/.svn/pristine/14/1464c12e28e0ed2c214557c8a3a22d4374eddb1d.svn-base @@ -0,0 +1,96 @@ +#include +#include +#include "show/viewcull.h" +#include "show/scancolormanager.h" +//#include "show/colormanager.h" +/* +#include "limits.h" +#include +using std::vector; +#include +#include +using std::string; + +#include +#include +#include +#include +#include +*/ +#ifndef __DISPLAY_H__ +#define __DISPLAY_H__ + +using namespace std; + +class SDisplay { + public: + //inline void setColorManager(ColorManager *_cm) { cm = _cm; } + + + //virtual SDisplay* readFromFile(string &filename) = 0; + virtual const char *getName() { return "Unnamed display"; } + virtual void display(double detail) { displayAll(); } + virtual void displayAll(); + + virtual void displayObject() = 0; + + static void readDisplays(string &filename, vector &displays); + + + protected: + static double mirror[16]; + //ColorManager *cm; +}; + +class PointDisplay : public SDisplay { + + public: + static SDisplay* readFromFile(string &filename); + virtual void displayObject(); + + private: + + PointDisplay(vector &p, vector &l); + + vector points; + vector labels; +}; + +class LineDisplay : public SDisplay { + + public: + static SDisplay* readFromFile(string &filename); + virtual void displayObject(); + + private: + + LineDisplay(vector &l); + + vector lines; +}; + +class PlaneDisplay : public SDisplay { + public: + static SDisplay* readFromFile(string &filename, float* color); + virtual void displayObject(); + + private: + + PlaneDisplay(vector &p, float* c); + vector points; + float * color; + +}; + +class GroupPlaneDisplay : public SDisplay { + public: + static SDisplay* readFromFile(string &filename); + virtual void displayObject(); + + private: + + GroupPlaneDisplay(vector &p); + vector planes; +}; + +#endif diff --git a/.svn/pristine/15/15048158ae6ee7ed497d2b3aa3d02b031e19af52.svn-base b/.svn/pristine/15/15048158ae6ee7ed497d2b3aa3d02b031e19af52.svn-base new file mode 100644 index 0000000..2cf2d26 --- /dev/null +++ b/.svn/pristine/15/15048158ae6ee7ed497d2b3aa3d02b031e19af52.svn-base @@ -0,0 +1,76 @@ +//$$ newmat9.cpp Input and output + +// Copyright (C) 1991,2,3,4: R B Davies + + +#define WANT_FSTREAM + +#include "include.h" + +#include "newmat.h" +#include "newmatio.h" +#include "newmatrc.h" + +#ifdef use_namespace +namespace NEWMAT { +#endif + + + +#ifdef DO_REPORT +#define REPORT { static ExeCounter ExeCount(__LINE__,9); ++ExeCount; } +#else +#define REPORT {} +#endif + +// for G++ 3.01 +#ifndef ios_format_flags +#define ios_format_flags long +#endif + +ostream& operator<<(ostream& s, const BaseMatrix& X) +{ + GeneralMatrix* gm = ((BaseMatrix&)X).Evaluate(); operator<<(s, *gm); + gm->tDelete(); return s; +} + + +ostream& operator<<(ostream& s, const GeneralMatrix& X) +{ + MatrixRow mr((GeneralMatrix*)&X, LoadOnEntry); + int w = s.width(); int nr = X.Nrows(); ios_format_flags f = s.flags(); + s.setf(ios::fixed, ios::floatfield); + for (int i=1; i<=nr; i++) + { + int skip = mr.skip; int storage = mr.storage; + Real* store = mr.data; skip *= w+1; + while (skip--) s << " "; + while (storage--) { s.width(w); s << *store++ << " "; } +// while (storage--) s << setw(w) << *store++ << " "; + mr.Next(); s << "\n"; + } + s << flush; s.flags(f); return s; +} + +// include this stuff if you are using an old version of G++ +// with an incomplete io library + +/* + +ostream& operator<<(ostream& os, Omanip_precision i) + { os.precision(i.x); return os; } + +Omanip_precision setprecision(int i) { return Omanip_precision(i); } + +ostream& operator<<(ostream& os, Omanip_width i) + { os.width(i.x); return os; } + +Omanip_width setw(int i) { return Omanip_width(i); } + +*/ + +#ifdef use_namespace +} +#endif + + diff --git a/.svn/pristine/16/16945a3e61b6eeea3b93edaf0624c43913d37ef8.svn-base b/.svn/pristine/16/16945a3e61b6eeea3b93edaf0624c43913d37ef8.svn-base new file mode 100644 index 0000000..3de444e --- /dev/null +++ b/.svn/pristine/16/16945a3e61b6eeea3b93edaf0624c43913d37ef8.svn-base @@ -0,0 +1,98 @@ +/** + * @file + * @brief Implementation of 3D scan matching with ICP + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + + +/** + * Will return the maximal number of randomization + * + * @return the maximal number of iterations + */ +inline int icp6D::get_rnd() +{ + return rnd; +} + +/** + * Will return weather to use the meta scan + * + * @return the maximal number of iterations + */ +inline bool icp6D::get_meta() +{ + return meta; +} + +/** + * Will return the anim flag + * + * @return the anim flag + */ +inline int icp6D::get_anim() { + return anim; +} + +/** + * Will return the used nearest neigbor search method + * + * @return the nns_method number + */ +inline int icp6D::get_nns_method() +{ + return nns_method; +} + +/** + * Set the anim flag + * + * @param anim Animate which frames? + */ +inline void icp6D::set_anim(int anim) { + this->anim = anim; +} + +/** + * Get the maximal distance for matching + * + * @return the maximal distance for matching + */ +inline double icp6D::get_max_dist_match2() { + return max_dist_match2; +} + +/** + * Set the maximal distance for matching + * + * @param max_dist_match2 the maximal distance (^2 !!!) for matching + */ +inline void icp6D::set_max_dist_match2(double max_dist_match2) { + this->max_dist_match2 = max_dist_match2; +} + +/** + * Set the Maximum number of iterations + * + * @param max_num_iterations Maximum number of iterations + */ +inline void icp6D::set_max_num_iterations(int max_num_iterations) { + this->max_num_iterations = max_num_iterations; +} + +/** + * @brief Enable / Disable CAD matching (i.e. matching only against first scan) + * + * @param cad_matching The new value to determine if CAD matching should + * be done + */ +inline void icp6D::set_cad_matching (bool cad_matching) +{ + this->cad_matching = cad_matching; +} + +inline bool icp6D::get_cad_matching (void) +{ + return this->cad_matching; +} diff --git a/.svn/pristine/16/16b8829a34da4541fb6cec505851c9ff40bbea05.svn-base b/.svn/pristine/16/16b8829a34da4541fb6cec505851c9ff40bbea05.svn-base new file mode 100644 index 0000000..99bfc1b --- /dev/null +++ b/.svn/pristine/16/16b8829a34da4541fb6cec505851c9ff40bbea05.svn-base @@ -0,0 +1,4 @@ +modified by Deyuan Qiu: +.../include/ANN.h line779 +.../src/kd_tree.h line87 line155 +.../MAKEFILE line94 diff --git a/.svn/pristine/16/16d2cfeb0f906558a35c0d66448aac65c71442c7.svn-base b/.svn/pristine/16/16d2cfeb0f906558a35c0d66448aac65c71442c7.svn-base new file mode 100644 index 0000000..b87cb41 --- /dev/null +++ b/.svn/pristine/16/16d2cfeb0f906558a35c0d66448aac65c71442c7.svn-base @@ -0,0 +1,131 @@ +//---------------------------------------------------------------------- +// File: rand.h +// Programmer: Sunil Arya and David Mount +// Description: Basic include file for random point generators +// Last modified: 08/04/06 (Version 1.1.1) +//---------------------------------------------------------------------- +// Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +// David Mount. All Rights Reserved. +// +// This software and related documentation is part of the Approximate +// Nearest Neighbor Library (ANN). This software is provided under +// the provisions of the Lesser GNU Public License (LGPL). See the +// file ../ReadMe.txt for further information. +// +// The University of Maryland (U.M.) and the authors make no +// representations about the suitability or fitness of this software for +// any purpose. It is provided "as is" without express or implied +// warranty. +//---------------------------------------------------------------------- +// History: +// Revision 0.1 03/04/98 +// Initial release +// Revision 1.0 04/01/05 +// Added annClusOrthFlats distribution +// Changed procedure names to avoid namespace conflicts +// Added annClusFlats distribution +// Revision 1.1.1 08/04/06 +// Added planted distribution +//---------------------------------------------------------------------- + +#ifndef rand_H +#define rand_H + +//---------------------------------------------------------------------- +// Basic includes +//---------------------------------------------------------------------- +#include // standard includes (rand/random) +#include // math routines +#include // basic ANN includes + +//---------------------------------------------------------------------- +// Although random/srandom is a more reliable random number generator, +// many systems do not have it. If it is not available, set the +// preprocessor symbol ANN_NO_RANDOM, and this will substitute the use +// of rand/srand for them. +//---------------------------------------------------------------------- +#ifdef ANN_NO_RANDOM // for systems not having random() + #define ANN_RAND rand + #define ANN_SRAND srand + #define ANN_RAND_MAX RAND_MAX +#else // otherwise use rand() + #define ANN_RAND random + #define ANN_SRAND srandom + #define ANN_RAND_MAX 2147483647UL // 2**{31} - 1 + // #define ANN_RAND_MAX 1073741824UL // 2**{30} +#endif + +//---------------------------------------------------------------------- +// Globals +//---------------------------------------------------------------------- +extern int annIdum; // random number seed + +//---------------------------------------------------------------------- +// External entry points +//---------------------------------------------------------------------- + +void annUniformPts( // uniform distribution + ANNpointArray pa, // point array (modified) + int n, // number of points + int dim); // dimension + +void annGaussPts( // Gaussian distribution + ANNpointArray pa, // point array (modified) + int n, // number of points + int dim, // dimension + double std_dev); // standard deviation + +void annCoGaussPts( // correlated-Gaussian distribution + ANNpointArray pa, // point array (modified) + int n, // number of points + int dim, // dimension + double correlation); // correlation + +void annLaplacePts( // Laplacian distribution + ANNpointArray pa, // point array (modified) + int n, // number of points + int dim); // dimension + +void annCoLaplacePts( // correlated-Laplacian distribution + ANNpointArray pa, // point array (modified) + int n, // number of points + int dim, // dimension + double correlation); // correlation + +void annClusGaussPts( // clustered-Gaussian distribution + ANNpointArray pa, // point array (modified) + int n, // number of points + int dim, // dimension + int n_clus, // number of colors (clusters) + ANNbool new_clust, // generate new cluster centers + double std_dev); // standard deviation within clusters + +void annClusOrthFlats( // clustered along orthogonal flats + ANNpointArray pa, // point array (modified) + int n, // number of points + int dim, // dimension + int n_clus, // number of colors + ANNbool new_clust, // generate new clusters. + double std_dev, // standard deviation within clusters + int max_dim); // maximum dimension of the flats + +void annClusEllipsoids( // clustered around ellipsoids + ANNpointArray pa, // point array (modified) + int n, // number of points + int dim, // dimension + int n_clus, // number of colors + ANNbool new_clust, // generate new clusters. + double std_dev_small, // small standard deviation + double std_dev_lo, // low standard deviation for ellipses + double std_dev_hi, // high standard deviation for ellipses + int max_dim); // maximum dimension of the flats + +void annPlanted( // planted nearest neighbors + ANNpointArray pa, // point array (modified) + int n, // number of points + int dim, // dimension + ANNpointArray src, // source point array + int n_src, // source size + double std_dev); // standard deviation about source + +#endif diff --git a/.svn/pristine/16/16e179951a23ba96d75654f62e037afbbb63c308.svn-base b/.svn/pristine/16/16e179951a23ba96d75654f62e037afbbb63c308.svn-base new file mode 100644 index 0000000..b578f10 --- /dev/null +++ b/.svn/pristine/16/16e179951a23ba96d75654f62e037afbbb63c308.svn-base @@ -0,0 +1,21 @@ +-10 -2.15443 +-9 -2.08008 +-8 -2 +-7 -1.91293 +-6 -1.81712 +-5 -1.70998 +-4 -1.5874 +-3 -1.44225 +-2 -1.25992 +-1 -1.00001 +0 0 +1 1.00001 +2 1.25992 +3 1.44225 +4 1.58741 +5 1.70998 +6 1.81712 +7 1.91293 +8 2 +9 2.08008 +10 2.15443 diff --git a/.svn/pristine/16/16f9812d135639a48fb3530dfe6bba584b8c038a.svn-base b/.svn/pristine/16/16f9812d135639a48fb3530dfe6bba584b8c038a.svn-base new file mode 100644 index 0000000..2a389e3 --- /dev/null +++ b/.svn/pristine/16/16f9812d135639a48fb3530dfe6bba584b8c038a.svn-base @@ -0,0 +1,28 @@ +/** + @file + @brief Displaying of a matched 3D scene + @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. +*/ + +/** + sets the OpenGL point, + (z axis is inverted in OpenGL) +*/ +void setGLPoint(GLdouble pX, GLdouble pY, GLdouble pZ) +{ + // pZ *= -1.0; + glVertex3d(pX, pY, pZ); +} + + +/** + sets the OpenGL point, + (z axis is inverted in OpenGL) +*/ +void setGLPoint(GLdouble* p) +{ + GLdouble pZ = 1.0 * p[2]; + + glVertex3d(p[0], p[1], pZ); +} diff --git a/.svn/pristine/17/17178e91723a8dbcdb7b77fce6144deab8c69758.svn-base b/.svn/pristine/17/17178e91723a8dbcdb7b77fce6144deab8c69758.svn-base new file mode 100644 index 0000000..babc42f --- /dev/null +++ b/.svn/pristine/17/17178e91723a8dbcdb7b77fce6144deab8c69758.svn-base @@ -0,0 +1,358 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: filebrws.h +// Purpose: A file browser widget with tree and/or list control views +// Author: John Labenski +// Created: 07/01/02 +// Copyright: John Labenski, 2002 +// License: wxWidgets +///////////////////////////////////////////////////////////////////////////// + +#ifndef __WX_FILEBROWSER_H__ +#define __WX_FILEBROWSER_H__ + +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) + #pragma interface "filebrws.h" +#endif + +#include "wx/listctrl.h" +#include "wx/dirctrl.h" +#include "wx/filedlg.h" +#include "wx/textdlg.h" +#include "wx/generic/filedlgg.h" +#include "wx/things/thingdef.h" + +class WXDLLEXPORT wxCheckBox; +class WXDLLEXPORT wxComboBox; +class WXDLLEXPORT wxTreeEvent; +class WXDLLEXPORT wxSplitterWindow; +class WXDLLEXPORT wxGenericDirCtrl; +class WXDLLEXPORT wxListCtrl; +class WXDLLEXPORT wxListEvent; +class WXDLLEXPORT wxToolBar; +class WXDLLEXPORT wxBitmapButton; +class WXDLLEXPORT wxConfigBase; +class WXDLLEXPORT wxFileCtrl; +class WXDLLEXPORT wxFileName; + +class WXDLLIMPEXP_THINGS wxFileBrowser; + +#include "wx/dynarray.h" +WX_DECLARE_OBJARRAY_WITH_DECL(wxFileData, wxArrayFileData, class WXDLLIMPEXP_THINGS); + +//---------------------------------------------------------------------------- +// MultilineTextDialog : wxTextEntryDialog for multiple lines +//---------------------------------------------------------------------------- + +class WXDLLIMPEXP_THINGS MultilineTextDialog : public wxTextEntryDialog +{ +public: + MultilineTextDialog(wxWindow *parent, + const wxString& message, + const wxString& caption = wxGetTextFromUserPromptStr, + const wxString& value = wxEmptyString, + long style = 0, + const wxPoint& pos = wxDefaultPosition); +}; + +//---------------------------------------------------------------------------- +// wxFileBrowserEvent : events for the wxFileBrowser +//---------------------------------------------------------------------------- +// wxEVT_FILEBROWSER_FILE_SELECTED - a file has been selected (single click) +// wxEVT_FILEBROWSER_FILE_ACTIVATED - a file has been double clicked or enter pressed +// wxEVT_FILEBROWSER_DIR_SELECTED - a dir has been selected (single click) +// wxEVT_FILEBROWSER_DIR_ACTIVATED - a dir has been double clicked or enter pressed + +BEGIN_DECLARE_EVENT_TYPES() + DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_THINGS, wxEVT_FILEBROWSER_FILE_SELECTED, wxEVT_USER_FIRST + 1000) + DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_THINGS, wxEVT_FILEBROWSER_FILE_ACTIVATED, wxEVT_USER_FIRST + 1001) + DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_THINGS, wxEVT_FILEBROWSER_DIR_SELECTED, wxEVT_USER_FIRST + 1002) + DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_THINGS, wxEVT_FILEBROWSER_DIR_ACTIVATED, wxEVT_USER_FIRST + 1003) +END_DECLARE_EVENT_TYPES() + +class WXDLLIMPEXP_THINGS wxFileBrowserEvent : public wxCommandEvent +{ +public: + wxFileBrowserEvent( wxEventType commandType = wxEVT_NULL, + wxFileBrowser *fileBrowser = NULL, + wxWindowID id = wxID_ANY ); + + wxFileBrowserEvent( const wxFileBrowserEvent &event ) : wxCommandEvent(event) {} + + // Get the full path + filename + wxString GetFilePath() const { return GetString(); } + void SetFilePath(const wxString &filepath) { SetString(filepath); } + + virtual wxEvent *Clone() const { return new wxFileBrowserEvent(*this); } + +private: + DECLARE_ABSTRACT_CLASS(wxFileBrowserEvent) +}; + +typedef void (wxEvtHandler::*wxFileBrowserEventFunction)(wxFileBrowserEvent&); + +#define wxFileBrowserEventHandler(func) \ + (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxFileBrowserEventFunction, &func) + +#define wx__DECLARE_FILEBROWSEREVT(evt, id, fn) wx__DECLARE_EVT1( evt, id, wxFileBrowserEventHandler(fn)) + +#define EVT_FILEBROWSER_FILE_SELECTED(id, fn) wx__DECLARE_FILEBROWSEREVT( wxEVT_FILEBROWSER_FILE_SELECTED, id, fn ) +#define EVT_FILEBROWSER_FILE_ACTIVATED(id, fn) wx__DECLARE_FILEBROWSEREVT( wxEVT_FILEBROWSER_FILE_ACTIVATED, id, fn ) +#define EVT_FILEBROWSER_DIR_SELECTED(id, fn) wx__DECLARE_FILEBROWSEREVT( wxEVT_FILEBROWSER_DIR_SELECTED, id, fn ) +#define EVT_FILEBROWSER_DIR_ACTIVATED(id, fn) wx__DECLARE_FILEBROWSEREVT( wxEVT_FILEBROWSER_DIR_ACTIVATED, id, fn ) + +//---------------------------------------------------------------------------- +// wxFileBrowser +//---------------------------------------------------------------------------- + +enum wxFileBrowserStyles_Type +{ + // note: these are wxListCtrl styles to allow normal wxWindow styles to work + + wxFILEBROWSER_TREE = wxLC_SORT_DESCENDING, // treectrl view + wxFILEBROWSER_LIST = wxLC_LIST, // listctrl view + wxFILEBROWSER_DETAILS = wxLC_REPORT, // listctrl details view + wxFILEBROWSER_SMALL_ICON = wxLC_SMALL_ICON, // listctrl icon view + wxFILEBROWSER_LARGE_ICON = wxLC_ICON, // NOT IMPL listctrl large icon + wxFILEBROWSER_PREVIEW = wxLC_SORT_ASCENDING, // NOT implemented + + wxFILEBROWSER_SPLIT_VERTICAL = wxLC_NO_HEADER, // tree and listctrl are + // split vertically else horizontal + + wxFILEBROWSER_SHOW_FOLDERS = wxLC_NO_SORT_HEADER, // when showing listview also show + // the folders in the treectrl + + wxFILEBROWSER_VIEW_MASK = wxFILEBROWSER_TREE|wxFILEBROWSER_LIST|wxFILEBROWSER_DETAILS|wxFILEBROWSER_SMALL_ICON|wxFILEBROWSER_LARGE_ICON|wxFILEBROWSER_PREVIEW, + wxFILEBROWSER_STYLE_MASK = wxFILEBROWSER_VIEW_MASK|wxFILEBROWSER_SPLIT_VERTICAL|wxFILEBROWSER_SHOW_FOLDERS +}; + +class WXDLLIMPEXP_THINGS wxFileBrowser : public wxControl +{ +public : + wxFileBrowser() : wxControl() { Init(); } + + wxFileBrowser( wxWindow* parent, const wxWindowID id, + const wxString& dir = wxDirDialogDefaultFolderStr, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxFILEBROWSER_DETAILS, + const wxString& filter = wxFileSelectorDefaultWildcardStr, + int defaultFilter = 0, + const wxString& name = wxT("wxFileBrowser")) : wxControl() + { + Init(); + Create(parent, id, dir, pos, size, style, filter, defaultFilter, name); + } + + virtual ~wxFileBrowser(); + + bool Create( wxWindow* parent, const wxWindowID id, + const wxString& dir = wxDirDialogDefaultFolderStr, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxFILEBROWSER_DETAILS, + const wxString& filter = wxFileSelectorDefaultWildcardStr, + int defaultFilter = 0, + const wxString& name = wxT("wxFileBrowser") ); + + // Get the current dir (not file), optionally add a trailing platform dependent '/' or '\' + wxString GetPath(bool add_wxFILE_SEP_PATH = false) const; + // Go to a directory, returns sucess + bool SetPath(const wxString &dirName); + + // go to a dir or send an EVT_FILEBROWSER_FILE_ACTIVATED if a filename + bool OpenFilePath(const wxString &filePath); + + // Go to a higher directory, returns sucess + bool CanGoUpDir() const; + bool GoUpDir(); + + // Go to your "Home" folder "~/" in unix, "My Documents" in MSW + bool GoToHomeDir(); + + // Go forwards and backwards through the recent dir history + bool CanGoPathHistoryForward(); + bool CanGoPathHistoryBackward(); + bool GoPathHistoryForward(); + bool GoPathHistoryBackward(); + // Add a new path to the history paths at the current index + void AddPathHistory(const wxString& path); + + // Set the file filter to one of the filter combobox items + bool SetFilter(int comboItem); + // Set all the file filters, deleting previous and select one + bool SetFilters(const wxString &filters, int select = 0); + // Add or set the file filter, "All Files (*)|*", it must have a "|" in it + bool AddFilter(const wxString &filter); + // Get the current file filter + wxString GetFilter() const { return m_filter; } + // Get the wild card used for the filter + wxString GetWild() const { return m_filter.AfterLast(wxT('|')); } + + // Set how the files are displayed - see enum wxFileBrowserStyles_Type + void SetBrowserStyle(long style); + long GetBrowserStyle() const { return m_browser_style; } + bool HasBrowserStyle(int style_mask) const { return (m_browser_style & style_mask) != 0; } + + // Show or hide hidden files + void ShowHidden(bool show_hidden); + bool GetShowHidden() const { return m_show_hidden; } + + // When showing the files in a listctrl also show the folders in the treectrl + // also don't let them unsplit it + void ShowFolders(bool show_folders); + bool GetShowFolders() const { return HasBrowserStyle(wxFILEBROWSER_SHOW_FOLDERS); } + + // When splitting, split vertically or horizontally + void SplitVertical(bool split_vertically); + bool GetSplitVertical() const { return HasBrowserStyle(wxFILEBROWSER_SPLIT_VERTICAL); } + + // ----------------------------------------------------------------------- + // implementation + + // utility function, returns the dir part of the filepath w/ trailing wxFILE_SEP_PATH + bool GetPathFromFilePath(const wxString &filepath, wxString &path) const; + + // Delete all selected items in the wxFileCtrl + bool DeleteSelectedListItems(bool ask_ok = true); + // Store a list of selected items that you'll copy/cut when you paste them + bool CopyCutSelectedListItems(bool copy_them); + // Paste the stored CopyCutSelectedListItems - based on CopyCutSelectedListItems list + bool PasteCopyCutSelectedListItems(); + + // Get a list of all the selected items in the list control + wxArrayInt GetSelectedListItems() const; + // Get the wxFileData items that are selected in the list control + wxArrayFileData GetSelectedListFileData() const; + // Get the currently focused list item or NULL if none selected + wxFileData *GetFocusedListItem() const; + + // Create a wxFileData from a wxFileName + wxFileData CreateFileData(const wxFileName& fileName) const; + + // Get the last or currently focused path + filename + wxString GetLastFocusedFilePath(); + + // Show a simple dialog that contains the properties of the file/dir + void ShowPropertiesDialog(const wxFileData &fileData) const; + + // returns a string with the name of a program to run the file + wxString GetOpenWithFileCmd(wxFileData* fd) const; + + // Get a pointer to the path history combo, can change its contents + wxComboBox *GetPathCombo() const { return m_pathCombo; } + // Get a pointer to the filter combo + // don't delete selections less than the # of filters passed in + // ie. check for items with GetClientData() !NULL + wxComboBox *GetFilterCombo() const { return m_filterCombo; } + + // Can this file be read/opened? + bool CanRead(const wxString& filePath) const; + // Can this file be written to, deleted, moved, cut... + bool CanWrite(const wxString& filePath) const; + + // Update the menu/toolbar items + void UpdateMenu(wxMenu *menu); + void UpdateToolBar(wxToolBar *toolBar); + // Update the state of the toolbar and menu items + void UpdateItems(); + +#if wxUSE_CONFIG + // Load the recent paths/filters, max = 20 + void LoadConfig(wxConfigBase& config, + bool paths=true, bool filters=true, + const wxString &configPath = wxT("/wxFileBrowser")); + // Save the recent paths, filters, if n_xxx < 0 then don't save it + void SaveConfig(wxConfigBase& config, + int n_paths=10, int n_filters=10, + const wxString &configPath = wxT("/wxFileBrowser")); +#endif // wxUSE_CONFIG + +protected : + void OnSize( wxSizeEvent& event ); + void DoSize(); + + virtual wxSize DoGetBestSize() const; + + // toolbar tools events + void OnViewButtons(wxCommandEvent &event); + void OnPathCombo(wxCommandEvent &event); + void OnPathComboEnter(wxCommandEvent &event); + void OnFilterCombo(wxCommandEvent &event); + void OnFilterComboEnter(wxCommandEvent &event); + + // wxDirCtrl events - a wxTreeCtrl + void OnTreeItemSelection(wxTreeEvent &event); + void OnTreeItemActivation(wxTreeEvent &event); + void OnTreeRightClick(wxTreeEvent& event); + + // wxFileCtrl events - a wxListCtrl + void OnListColClick(wxListEvent &event); + void OnListItemActivated(wxListEvent &event); + void OnListItemSelected(wxListEvent &event); + void OnListRightClick(wxListEvent &event); + + void OnTreeMenu(wxCommandEvent &event); + void OnListMenu(wxCommandEvent &event); + + void OnIdle( wxIdleEvent &event ); + + //for delayed set path from combo + void OnSetPath( wxCommandEvent &event ); + void OnSetFilter( wxCommandEvent &event ); + + // (re)inserts the item at pos, deleting it if it existed after pos + // keeps recent items at top + bool InsertComboItem(wxComboBox *combo, const wxString &item, int pos = 0) const; + + // Send an event, returns false if event.Veto() called + bool DoSendEvent(wxFileBrowserEvent &event) const; + + int FBStyleToLCStyle(int fb_style) const; // wxFileBrowserStyles_Type to wxLC_XXX + int FBStyleToMenuID(int fb_style) const; // wxFileBrowserStyles_Type menu id + int MenuIDToFBStyle(int menuID) const; // menu id to wxFileBrowserStyles_Type + + // Windows + wxToolBar *m_viewToolBar; + wxToolBar *m_pathToolBar; + + wxBitmapButton *m_viewButton; + wxComboBox *m_filterCombo; + + wxComboBox *m_pathCombo; + + wxSplitterWindow *m_splitterWin; + wxGenericDirCtrl *m_dirCtrl; + wxFileCtrl *m_fileCtrl; + + wxMenu *m_listMenu; // popup menu in listctrl + wxMenu *m_treeMenu; // popup menu in treectrl + wxMenu *m_viewMenu; // popup menu in for changing view + + // data + wxString m_filter; // current filter + wxString m_path; // current path + wxString m_lastFocusedFilePath; // path + filename of last focused item + + wxArrayString m_pathHistory; // recently used paths + int m_path_history_index; // current index in recently used paths + + wxArrayFileData m_copycutFiles; // list of names when copying or cutting + bool m_last_copy; // last CopyCutSelectedListItems was a copy, else cut + + int m_init_filters; // # of filters initially passed in + + bool m_ignore_tree_event; // temporarily ignore m_dirCtrl events + long m_browser_style; + + int m_filterComboSelection; // last selection of the filter/path combo + int m_pathComboSelection; + + bool m_show_hidden; // show hidden files + +private : + void Init(); + DECLARE_EVENT_TABLE() + DECLARE_DYNAMIC_CLASS(wxFileBrowser) +}; + +#endif // __WX_FILEBROWSER_H__ diff --git a/.svn/pristine/17/174f008d1cdc6531f854ba5fbab9341b892d72f2.svn-base b/.svn/pristine/17/174f008d1cdc6531f854ba5fbab9341b892d72f2.svn-base new file mode 100644 index 0000000..3fdeb0a --- /dev/null +++ b/.svn/pristine/17/174f008d1cdc6531f854ba5fbab9341b892d72f2.svn-base @@ -0,0 +1,341 @@ +/**************************************************************************** + + GLUI User Interface Toolkit + --------------------------- + + glui_radio.cpp - GLUI_RadioGroup and GLUI_RadioButton control classes + + + -------------------------------------------------- + + Copyright (c) 1998 Paul Rademacher + + This program is freely distributable without licensing fees and is + provided without guarantee or warrantee expressed or implied. This + program is -not- in the public domain. + +*****************************************************************************/ + +#include "glui.h" +#include "stdinc.h" + +/****************************** GLUI_RadioGroup::draw() **********/ + +void GLUI_RadioGroup::draw( int x, int y ) +{ + if ( NOT can_draw() ) + return; + + draw_group(false); +} + + +/********************* GLUI_RadioGroup::draw_group(int translate) **********/ + +void GLUI_RadioGroup::draw_group( int translate ) +{ + GLUI_RadioButton *button; + int state = 0, orig; + + if ( NOT can_draw() ) + return; + + orig = set_to_glut_window(); + + if ( translate ) + state = glui->set_front_draw_buffer(); + + this->int_val = int_val; + + glMatrixMode(GL_MODELVIEW ); + + button = (GLUI_RadioButton*) first_child(); + while( button != NULL ) { + + if ( translate ) { + glPushMatrix(); + button->translate_to_origin(); + } + + if ( button->int_val ) + button->draw_checked(); + else + button->draw_unchecked(); + + if ( translate ) + glPopMatrix(); + + button = (GLUI_RadioButton*) button->next(); + } + + if ( translate ) + glui->restore_draw_buffer(state); + + restore_window(orig); +} + + +/****************************** GLUI_RadioGroup::set_name() **********/ + +void GLUI_RadioGroup::set_name( char *text ) +{ + strncpy(name,text,sizeof(GLUI_String)); + + if ( glui ) + glui->refresh(); +} + + +/********************************* GLUI_RadioGroup::set_selected() **********/ + +void GLUI_RadioGroup::set_selected( int int_val ) +{ + GLUI_RadioButton *button; + + this->int_val = int_val; + + button = (GLUI_RadioButton*) first_child(); + while( button != NULL ) { + if ( int_val == -1 ) { /*** All buttons in group are deselected ***/ + button->set_int_val(0); + } + else if ( int_val == button->user_id ) { /*** This is selected button ***/ + button->set_int_val(1); + } + else { /*** This is NOT selected button ***/ + button->set_int_val(0); + + } + + button = (GLUI_RadioButton*) button->next(); + } +} + + +/************************ GLUI_RadioButton::mouse_down_handler() **********/ + +int GLUI_RadioButton::mouse_down_handler( int local_x, int local_y ) +{ + if ( NOT group ) + return false; + + orig_value = group->int_val; + + currently_inside = true; + + group->set_selected( this->user_id ); + group->draw_group( true ); + + return false; +} + + +/*************************** GLUI_RadioButton::mouse_up_handler() **********/ + +int GLUI_RadioButton::mouse_up_handler( int local_x, int local_y, + int inside ) +{ + if ( NOT group ) + return false; + + if ( NOT inside ) { + group->set_selected( orig_value ); + group->draw_group( true ); + } + else { + /** Now we update the radio button group. We tell the group + handler to set the currently-selected item to this button, which + is reference by its user_id/ordinal number within group **/ + + group->set_selected( this->user_id ); + group->draw_group( true ); + + /*** Now update the linked variable, and call the callback, + but ONLY if the value of the radio group actually changed ***/ + if ( group->int_val != orig_value ) { + group->output_live(true); /** Output live and update gfx ***/ + + group->execute_callback(); + } + } + + return false; +} + + +/********************** GLUI_RadioButton::mouse_held_down_handler() ******/ + +int GLUI_RadioButton::mouse_held_down_handler( int local_x, int local_y, + int inside) +{ + if ( NOT inside AND currently_inside == true ) { + group->set_selected( orig_value ); + group->draw_group( true ); + } + else if ( inside AND currently_inside == false ) { + group->set_selected( this->user_id ); + group->draw_group( true ); + } + + currently_inside = inside; + + return false; +} + + +/****************************** GLUI_RadioButton::draw() **********/ + +void GLUI_RadioButton::draw( int x, int y ) +{ + int orig; + + orig = set_to_glut_window(); + + if ( NOT group OR NOT can_draw() ) + return; + + /*** See if we're the currently-selected button. If so, draw ***/ + if ( group->int_val == this->user_id ) { + if ( enabled ) + glui->std_bitmaps.draw( GLUI_STDBITMAP_RADIOBUTTON_ON, 0, 0 ); + else + glui->std_bitmaps.draw( GLUI_STDBITMAP_RADIOBUTTON_ON_DIS, 0, 0 ); + } + else { + if ( enabled ) + glui->std_bitmaps.draw( GLUI_STDBITMAP_RADIOBUTTON_OFF, 0, 0 ); + else + glui->std_bitmaps.draw( GLUI_STDBITMAP_RADIOBUTTON_OFF_DIS, 0, 0 ); + } + + draw_active_area(); + + draw_name( text_x_offset, 10 ); + + restore_window(orig); +} + + +/************************************ GLUI_RadioButton::draw_checked() ******/ + +void GLUI_RadioButton::draw_checked( void ) +{ + int orig; + + if ( NOT can_draw() ) + return; + + orig = set_to_glut_window(); + if ( enabled ) + glui->std_bitmaps.draw( GLUI_STDBITMAP_RADIOBUTTON_ON, 0, 0 ); + else + glui->std_bitmaps.draw( GLUI_STDBITMAP_RADIOBUTTON_ON_DIS, 0, 0 ); + draw_active_area(); + restore_window(orig); +} + + +/*********************************** GLUI_RadioButton::draw_unchecked() ******/ + +void GLUI_RadioButton::draw_unchecked( void ) +{ + int orig; + + if ( NOT can_draw() ) + return; + + orig = set_to_glut_window(); + if ( enabled ) + glui->std_bitmaps.draw( GLUI_STDBITMAP_RADIOBUTTON_OFF, 0, 0 ); + else + glui->std_bitmaps.draw( GLUI_STDBITMAP_RADIOBUTTON_OFF_DIS, 0, 0 ); + draw_active_area(); + + restore_window(orig); +} + + +/**************************************** GLUI_RadioButton::draw_O() ********/ + +void GLUI_RadioButton::draw_O( void ) +{ + int i, j, orig; + + if ( NOT can_draw() ) + return; + + orig = set_to_glut_window(); + + glBegin( GL_POINTS ); + for(i=3; i<=GLUI_RADIOBUTTON_SIZE-3; i++ ) + for(j=3; j<=GLUI_RADIOBUTTON_SIZE-3; j++ ) + glVertex2i(i,j); + glEnd(); + + restore_window(orig); +} + + +/******************************** GLUI_RadioButton::update_size() **********/ + +void GLUI_RadioButton::update_size( void ) +{ + int text_size; + + if ( NOT glui ) + return; + + text_size = _glutBitmapWidthString( glui->font, name ); + + /* if ( w < text_x_offset + text_size + 6 ) */ + w = text_x_offset + text_size + 6 ; +} + + +/************************* GLUI_RadioButton::draw_active_area() **************/ + +void GLUI_RadioButton::draw_active_area( void ) +{ + int text_width, left, right, orig; + + if ( NOT can_draw() ) + return; + + orig = set_to_glut_window(); + + text_width = _glutBitmapWidthString( glui->font, name ); + left = text_x_offset-3; + right = left + 7 + text_width; + + if ( active ) { + glEnable( GL_LINE_STIPPLE ); + glLineStipple( 1, 0x5555 ); + glColor3f( 0., 0., 0. ); + } else { + glColor3ub( glui->bkgd_color.r, glui->bkgd_color.g, glui->bkgd_color.b ); + } + + glBegin( GL_LINE_LOOP ); + glVertex2i(left,0); glVertex2i( right,0); + glVertex2i(right,h+1); glVertex2i( left,h+1); + glEnd(); + + glDisable( GL_LINE_STIPPLE ); + + restore_window(orig); +} + + +/********************************* GLUI_RadioGroup::set_int_val() **********/ + +void GLUI_RadioGroup::set_int_val( int new_val ) +{ + if ( new_val == int_val ) + return; + + set_selected( new_val ); + draw_group( true ); + + output_live(true); + +} diff --git a/.svn/pristine/17/178b9cada93400f4c5751d4df051b85945bb279a.svn-base b/.svn/pristine/17/178b9cada93400f4c5751d4df051b85945bb279a.svn-base new file mode 100644 index 0000000..93f167d --- /dev/null +++ b/.svn/pristine/17/178b9cada93400f4c5751d4df051b85945bb279a.svn-base @@ -0,0 +1,130 @@ +#ifndef _XGETOPT_H +#define _XGETOPT_H + +/* + getopt.h - comand line option parsing + Copyright Keristor Systems and Chris Croughton 1997 - 2005 + Internet: swdev@keristor.org + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. +*/ + +/**@file xgetopt.h + * + * This module is designed as a "drop-in" replacement for the GNU + * \c getopt.h module, providing the \c getopt(), \c getopt_long() and + * \c getopt_long_only() functions and the \c option structure. However, + * it is a compile-time replacement not an object one, the actual + * names of the external variables and functions are hidden so that + * namespace clashes don't occur (some linkers object if they find + * the same symbol in more than one library). + * + * It was written originally because of systems which don't have the GNU + * C library installed. + * + * It also provides a few functions to help create a string of short + * (single-character) options given an array of long option structures. + * + * This is a "clean-room" implementation, no GPL or proprietary code + * was looked at when creating it. The only things used were the + * descriptions of the interfaces in the \c man pages (and the POSIX + * specification), and some "black box" testing to determine error + * conditions and messages not specified in the interface description. + */ + +#if defined(_cplusplus) || defined(__cplusplus) +extern "C" { +#endif + +/* + * This bit of faffing about is because some systems don't like the same + * functions defined in more than one library, they get confused. So what + * we do is to redefine the variables to the names in the interface but + * fool the linker. This only makes a difference if you try to debug the + * getopt code. Note that we don't have to do it with the structure name + * or enums, since it's only linkage that's affected. + */ + +#define optarg _XLIB_optarg +#define optind _XLIB_optind +#define opterr _XLIB_opterr +#define optopt _XLIB_optopt + +#define getopt _XLIB_getopt +#define getopt_long _XLIB_getopt_long +#define getopt_long_only _XLIB_getopt_long_only + +/** holds a pointer to an option argument */ +extern char *optarg; +/** index to te first non-option argument */ +extern int optind; +/** allow error messages if non-zero (default) */ +extern int opterr; +/** holds the option character in error, if any */ +extern int optopt; + +enum +{ + /** this option has no argument */ + no_argument, + /** an argument is required with this option */ + required_argument, + /** an argument to this option is optional */ + optional_argument +}; + +/** + * Structure to describe a long option. + * The last item in the array of these descriptors must have all elements + * set to zero + */ +struct option +{ + /** long option name */ + const char *name; + /** argument type, if any */ + int has_arg; + /** pointer to a flag to be set if the option is present */ + int *flag; + /** value to be returned if the option is present */ + int val; +}; + +/** Scan the command-line parameters for options in the form {\em -x}. */ +int getopt(int argc, char * const argv[], const char *optstring); +/** Scan the command-line parameters for options, allowing both the short + * (single character) options and long (string) options. + */ +int getopt_long(int argc, char * const argv[], const char *optstring, + const struct option *longopts, int *longindex); +/** Scan the command-line parameters for long options only */ +int getopt_long_only(int argc, char * const argv[], const char *optstring, + const struct option *longopts, int *longindex); + +#if defined(_cplusplus) || defined(__cplusplus) +} +#endif + +#endif diff --git a/.svn/pristine/17/17adfa05ed73e1a39f5c383c3ef091e46667e116.svn-base b/.svn/pristine/17/17adfa05ed73e1a39f5c383c3ef091e46667e116.svn-base new file mode 100644 index 0000000..80870e9 --- /dev/null +++ b/.svn/pristine/17/17adfa05ed73e1a39f5c383c3ef091e46667e116.svn-base @@ -0,0 +1,95 @@ +/* + * grabFramesCam implementation + * + * Copyright (C) Stanislav Serebryakov + * + * Released under the GPL version 3. + * + */ + +#include +#include + +#include +#include +//TODO: flip image flag + +void usage(char *progName) { + printf("%s \n", progName); + printf("i.e.: %s 6 4 0\n", progName); + printf("press space to detect chessboard and (again) to proceed.\n"); +} + +int main(int argc, char **argv) +{ + /* TODO: + * flags: + * subpixel + * camera id + * flip x and y + * pmd mode? + */ + + if(argc < 4) { + usage(argv[0]); + exit(1); + } + CvCapture *capture = cvCaptureFromCAM(atoi(argv[3])); + + IplImage *imgColor = cvQueryFrame(capture); + IplImage *img = cvCreateImage(cvGetSize(imgColor), 8, 1); + + int patx = atoi(argv[1]); + int paty = atoi(argv[2]); + CvSize patternSize = cvSize(patx, paty); + + int cornersTotal = patternSize.width * patternSize.height; + + CvPoint2D32f *corners = (CvPoint2D32f*) malloc(cornersTotal * sizeof(CvPoint2D32f)); + + cvNamedWindow("Camera", 0); + + int imageCnt = 0; + bool grabFrame = false; + + while(1) { + imgColor = cvQueryFrame(capture); + + cvFlip(imgColor, 0, -1); // flips image around the x and y axes + + cvCvtColor(imgColor, img, CV_BGR2GRAY); + + if(grabFrame) { + /* ----- Chessboard detection ----- + -------------------------------- */ + int cornersCount; // should be the same for wcam and pmd and equal totalCorners + + int found = cvFindChessboardCorners(img, patternSize, corners, + &cornersCount, CV_CALIB_CB_ADAPTIVE_THRESH | CV_CALIB_CB_FILTER_QUADS); + cvFindCornerSubPix(img, corners, cornersCount, cvSize(11,11), cvSize(-1,-1), + cvTermCriteria(CV_TERMCRIT_EPS | CV_TERMCRIT_ITER, 30, 0.1)); + + if(found && (cornersCount == cornersTotal)) { + cvDrawChessboardCorners(imgColor, patternSize, corners, cornersCount, found); + cvShowImage("Camera", imgColor); + printf("grab?\n"); + int k = cvWaitKey(0); + if(k == (int)' ') { + imageCnt++; + char *filename = (char*) malloc(11 * sizeof(char)); + sprintf(filename, "image%02i.jpg", imageCnt); + printf("saved %s.\n", filename); + cvSaveImage(filename, img); + grabFrame = false; + continue; + } + } + } + + cvShowImage("Camera", imgColor); + if((int)' ' == cvWaitKey(5)) grabFrame = true; + } + + return 0; +} + diff --git a/.svn/pristine/18/182d9865197a2d9ffa628ae41f5de35c4a5aeb1f.svn-base b/.svn/pristine/18/182d9865197a2d9ffa628ae41f5de35c4a5aeb1f.svn-base new file mode 100644 index 0000000..62f1e19 --- /dev/null +++ b/.svn/pristine/18/182d9865197a2d9ffa628ae41f5de35c4a5aeb1f.svn-base @@ -0,0 +1,213 @@ +//#define WANT_STREAM + +#include "include.h" +#include "newmatap.h" + +#include "tmt.h" + +#ifdef use_namespace +using namespace NEWMAT; +#endif + + +/**************************** test program ******************************/ + + +void trymat9() +{ + Tracer et("Ninth test of Matrix package"); + Tracer::PrintTrace(); + + + int i; int j; + Matrix A(7,7); Matrix X(7,3); + for (i=1;i<=7;i++) for (j=1;j<=7;j++) A(i,j)=i*i+j+((i==j) ? 1 : 0); + for (i=1;i<=7;i++) for (j=1;j<=3;j++) X(i,j)=i-j; + Matrix B = A.i(); DiagonalMatrix D(7); D=1.0; + { + Tracer et1("Stage 1"); + Matrix Q = B*A-D; Clean(Q, 0.000000001); Print(Q); + Q=A; Q = Q.i() * X; Q = A*Q - X; Clean(Q, 0.000000001); Print(Q); + Q=X; Q = A.i() * Q; Q = A*Q - X; Clean(Q, 0.000000001); Print(Q); + } + for (i=1;i<=7;i++) D(i,i)=i*i+1; + DiagonalMatrix E(3); for (i=1;i<=3;i++) E(i,i)=i+23; + { + Tracer et1("Stage 2"); + Matrix DXE = D.i() * X * E; + DXE = E.i() * DXE.t() * D - X.t(); Clean(DXE, 0.00000001); Print(DXE); + E=D; for (i=1;i<=7;i++) E(i,i)=i*3+1; + } + DiagonalMatrix F=D; + { + Tracer et1("Stage 3"); + F=E.i()*F; F=F*E-D; Clean(F,0.00000001); Print(F); + F=E.i()*D; F=F*E-D; Clean(F,0.00000001); Print(F); + } + { + Tracer et1("Stage 4"); + F=E; F=F.i()*D; F=F*E-D; Clean(F,0.00000001); Print(F); + } + { + Tracer et1("Stage 5"); + // testing equal + ColumnVector A(18), B(18); + Matrix X(3,3); + X << 3 << 5 << 7 << 5 << 8 << 2 << 7 << 2 << 9; + SymmetricMatrix S; S << X; + B(1) = S == X; A(1) = true; + B(2) = S == (X+1); A(2) = false; + B(3) = (S+2) == (X+2); A(3) = true; + Matrix Y = X; + B(4) = X == Y; A(4) = true; + B(5) = (X*2) == (Y*2); A(5) = true; + Y(3,3) = 10; + B(6) = X == Y; A(6) = false; + B(7) = (X*2) == (Y*2); A(7) = false; + B(8) = S == Y; A(8) = false; + B(9) = S == S; A(9) = true; + Matrix Z = X.SubMatrix(1,2,2,3); + B(10) = X == Z; A(10) = false; + GenericMatrix GS = S; + GenericMatrix GX = X; + GenericMatrix GY = Y; + B(11) = GS == GX; A(11) = true; + B(12) = GS == GY; A(12) = false; + CroutMatrix CS = S; + CroutMatrix CX = X; + CroutMatrix CY = Y; + B(13) = CS == CX; A(13) = true; + B(14) = CS == CY; A(14) = false; + B(15) = X == CX; A(15) = false; + B(16) = X == A; A(16) = false; + B(17) = X == (X | X); A(17) = false; + B(18) = CX == X; A(18) = false; + A = A - B; Print(A); + } + { + Tracer et1("Stage 6"); + // testing equal + ColumnVector A(22), B(22); + BandMatrix X(6,2,1); + X(1,1)=23; X(1,2)=21; + X(2,1)=12; X(2,2)=17; X(2,3)=45; + X(3,1)=35; X(3,2)=19; X(3,3)=24; X(3,4)=29; + X(4,2)=17; X(4,3)=11; X(4,4)=19; X(4,5)=35; + X(5,3)=10; X(5,4)=44; X(5,5)=23; X(5,6)=31; + X(6,4)=49; X(6,5)=41; X(6,6)=17; + SymmetricBandMatrix S1(6,2); S1.Inject(X); + BandMatrix U(6,2,3); U = 0.0; U.Inject(X); + B(1) = U == X; A(1) = true; + B(2) = U == (X*3); A(2) = false; + B(3) = (U*5) == (X*5); A(3) = true; + Matrix Y = X; + B(4) = X == Y; A(4) = true; + B(5) = (X*2) == (Y*2); A(5) = true; + Y(6,6) = 10; + B(6) = X == Y; A(6) = false; + B(7) = (X*2) == (Y*2); A(7) = false; + B(8) = U == Y; A(8) = false; + B(9) = U == U; A(9) = true; + Matrix Z = X.SubMatrix(1,2,2,3); + B(10) = X == Z; A(10) = false; + GenericMatrix GU = U; + GenericMatrix GX = X; + GenericMatrix GY = Y; + B(11) = GU == GX; A(11) = true; + B(12) = GU == GY; A(12) = false; + X = X + X.t(); U = U + U.t(); + SymmetricBandMatrix S(6,2); S.Inject(X); + Matrix D = S-X; Print(D); + BandLUMatrix BS = S; + BandLUMatrix BX = X; + BandLUMatrix BU = U; + CroutMatrix CX = X; + B(13) = BS == BX; A(13) = true; + B(14) = BX == BU; A(14) = false; + B(15) = X == BX; A(15) = false; + B(16) = X != BX; A(16) = true; + B(17) = BX != BS; A(17) = false; + B(18) = (2*X) != (X*2);A(18) = false; + B(19) = (X*2) != (X+2);A(19) = true; + B(20) = BX == CX; A(20) = false; + B(21) = CX == BX; A(21) = false; + B(22) = BX == X; A(22) = false; + A = A - B; Print(A); + DiagonalMatrix I(6); I=1.0; + D = BS.i() * X - I; Clean(D,0.00000001); Print(D); + D = BX.i() * X - I; Clean(D,0.00000001); Print(D); + D = BU.i() * X - I; Clean(D,0.00000001); Print(D); + + // test row wise load + SymmetricBandMatrix X1(6,2); + X1.Row(1) << 23; + X1.Row(2) << 12 << 17; + X1.Row(3) << 35 << 19 << 24; + X1.Row(4) << 17 << 11 << 19; + X1.Row(5) << 10 << 44 << 23; + X1.Row(6) << 49 << 41 << 17; + Matrix M = X1 - S1; Print(M); + + // check out submatrix + SymmetricBandMatrix X2(20,3); X2 = 0.0; + X2.SubMatrix(2,7,2,7) = X1; X2.SymSubMatrix(11,16) = 2 * X1; + Matrix MX1 = X1; + Matrix MX2(20,20); MX2 = 0; + MX2.SymSubMatrix(2,7) = MX1; MX2.SubMatrix(11,16,11,16) = MX1 * 2; + MX2 -= X2; Print(MX2); + + BandMatrix X4(20,3,3); X4 = 0.0; + X4.SubMatrix(2,7,3,8) = X1; X4.SubMatrix(11,16,10,15) = 2 * X1; + MX1 = X1; + Matrix MX4(20,20); MX4 = 0; + MX4.SubMatrix(2,7,3,8) = MX1; MX4.SubMatrix(11,16,10,15) = MX1 * 2; + MX4 -= X4; Print(MX4); + + MX1 = X1.i() * X1 - IdentityMatrix(6); + Clean(MX1,0.00000001); Print(MX1); + + } + + { + Tracer et1("Stage 7"); + // testing equal + ColumnVector A(12), B(12); + BandMatrix X(6,2,1); + X(1,1)=23; X(1,2)=21; + X(2,1)=12; X(2,2)=17; X(2,3)=45; + X(3,1)=35; X(3,2)=19; X(3,3)=24; X(3,4)=29; + X(4,2)=17; X(4,3)=11; X(4,4)=19; X(4,5)=35; + X(5,3)=10; X(5,4)=44; X(5,5)=23; X(5,6)=31; + X(6,4)=49; X(6,5)=41; X(6,6)=17; + Matrix Y = X; + LinearEquationSolver LX = X; + LinearEquationSolver LY = Y; + CroutMatrix CX = X; + CroutMatrix CY = Y; + BandLUMatrix BX = X; + B(1) = LX == CX; A(1) = false; + B(2) = LY == CY; A(2) = true; + B(3) = X == Y; A(3) = true; + B(4) = BX == LX; A(4) = true; + B(5) = CX == CY; A(5) = true; + B(6) = LX == LY; A(6) = false; + B(7) = BX == BX; A(7) = true; + B(8) = CX == CX; A(8) = true; + B(9) = LX == LX; A(9) = true; + B(10) = LY == LY; A(10) = true; + CroutMatrix CX1 = X.SubMatrix(1,4,1,4); + B(11) = CX == CX1; A(11) = false; + BandLUMatrix BX1 = X.SymSubMatrix(1,4); // error with SubMatrix + B(12) = BX == BX1; A(12) = false; + A = A - B; Print(A); + DiagonalMatrix I(6); I=1.0; Matrix D; + D = LX.i() * X - I; Clean(D,0.00000001); Print(D); + D = LY.i() * X - I; Clean(D,0.00000001); Print(D); + I.ReSize(4); I = 1; + D = CX1.i() * X.SymSubMatrix(1,4) - I; Clean(D,0.00000001); Print(D); + D = BX1.i() * X.SubMatrix(1,4,1,4) - I; Clean(D,0.00000001); Print(D); + } + +// cout << "\nEnd of ninth test\n"; +} + diff --git a/.svn/pristine/18/18c518a20cd71ae05c79cfa288e64ee63026ede4.svn-base b/.svn/pristine/18/18c518a20cd71ae05c79cfa288e64ee63026ede4.svn-base new file mode 100644 index 0000000..aa4c9f7 --- /dev/null +++ b/.svn/pristine/18/18c518a20cd71ae05c79cfa288e64ee63026ede4.svn-base @@ -0,0 +1,155 @@ + +//#define WANT_STREAM +#define WANT_MATH + + +#include "include.h" + +#include "newmatap.h" + +#include "tmt.h" + +#ifdef use_namespace +using namespace NEWMAT; +#endif + + +/**************************** test program ******************************/ + + +// slow sort program + +static void SimpleSortDescending(Real* first, const int length) +{ + int i = length; + while (--i) + { + Real x = *first; Real* f = first; Real* g = f; + int j = i; + while (j--) if (x < *(++f)) { g = f; x = *g; } + *g = *first; *first++ = x; + } +} + +static void TestSort(int n) +{ + // make some data + RowVector X(n); + int i; + for (i = 1; i <= n; i++) + X(i) = sin((Real)i) + 0.3 * cos(i/5.0) - 0.6 * sin(i/7.0) + 0.2 * sin(2.0 * i); + RowVector X_Sorted = X; SimpleSortDescending(X_Sorted.Store(), n); + RowVector A = X + X.Reverse(); SimpleSortDescending(A.Store(), n); + + // test descending sort + + RowVector Y = X; SortDescending(Y); Y -= X_Sorted; Print(Y); + Y = X_Sorted; SortDescending(Y); Y -= X_Sorted; Print(Y); + Y = X_Sorted.Reverse(); SortDescending(Y); Y -= X_Sorted; Print(Y); + Y = X + X.Reverse(); SortDescending(Y); Y -= A; Print(Y); + + // test ascending sort + + Y = X; SortAscending(Y); Y -= X_Sorted.Reverse(); Print(Y); + Y = X_Sorted; SortAscending(Y); Y -= X_Sorted.Reverse(); Print(Y); + Y = X_Sorted.Reverse(); SortAscending(Y); Y -= X_Sorted.Reverse(); Print(Y); + Y = X + X.Reverse(); SortAscending(Y); Y -= A.Reverse(); Print(Y); +} + + +void trymat6() +{ + Tracer et("Sixth test of Matrix package"); + Tracer::PrintTrace(); + + int i,j; + + + DiagonalMatrix D(6); + UpperTriangularMatrix U(6); + for (i=1;i<=6;i++) { for (j=i;j<=6;j++) U(i,j)=i*i*i-50; D(i,i)=i*i+i-10; } + LowerTriangularMatrix L=(U*3.0).t(); + SymmetricMatrix S(6); + for (i=1;i<=6;i++) for (j=i;j<=6;j++) S(i,j)=i*i+2.0+j; + Matrix MD=D; Matrix ML=L; Matrix MU=U; Matrix MS=S; + Matrix M(6,6); + for (i=1;i<=6;i++) for (j=1;j<=6;j++) M(i,j)=i*j+i*i-10.0; + { + Tracer et1("Stage 1"); + Print(Matrix(MS+(-MS))); + Print(Matrix((S+M)-(MS+M))); + Print(Matrix((M+U)-(M+MU))); + Print(Matrix((M+L)-(M+ML))); + } + { + Tracer et1("Stage 2"); + Print(Matrix((M+D)-(M+MD))); + Print(Matrix((U+D)-(MU+MD))); + Print(Matrix((D+L)-(ML+MD))); + Print(Matrix((-U+D)+MU-MD)); + Print(Matrix((-L+D)+ML-MD)); + } + { + Tracer et1("Stage 3 - concatenate"); + RowVector A(5); + A << 1 << 2 << 3 << 4 << 5; + RowVector B(5); + B << 3 << 1 << 4 << 1 << 5; + Matrix C(3,5); + C << 2 << 3 << 5 << 7 << 11 + << 13 << 17 << 19 << 23 << 29 + << 31 << 37 << 41 << 43 << 47; + Matrix X1 = A & B & C; + Matrix X2 = (A.t() | B.t() | C.t()).t(); + Matrix X3(5,5); + X3.Row(1)=A; X3.Row(2)=B; X3.Rows(3,5)=C; + Print(Matrix(X1-X2)); + Print(Matrix(X1-X3)); + LowerTriangularMatrix LT1; LT1 << (A & B & C); + UpperTriangularMatrix UT1; UT1 << (A.t() | B.t() | C.t()); + Print(LowerTriangularMatrix(LT1-UT1.t())); + DiagonalMatrix D1; D1 << (A.t() | B.t() | C.t()); + ColumnVector At = A.t(); + ColumnVector Bt = B.t(); + Matrix Ct = C.t(); + LowerTriangularMatrix LT2; LT2 << (At | Bt | Ct); + UpperTriangularMatrix UT2; UT2 << (At.t() & Bt.t() & Ct.t()); + Matrix ABt = At | Bt; + DiagonalMatrix D2; D2 << (ABt | Ct); + Print(LowerTriangularMatrix(LT2-UT2.t())); + Print(DiagonalMatrix(D1-D2)); + Print(Matrix(LT1+UT2-D2-X1)); + Matrix M1 = LT1 | UT2; Matrix M2 = UT1 & LT2; + Print(Matrix(M1-M2.t())); + M1 = UT2 | LT1; M2 = LT2 & UT1; + Print(Matrix(M1-M2.t())); + M1 = (LT1 | UT2) & (UT2 | LT1); + M2 = (UT1 & LT2) | (LT2 & UT1); + Print(Matrix(M1-M2.t())); + SymmetricMatrix SM1; SM1 << (M1 + M1.t()); + SymmetricMatrix SM2; SM2 << ((SM1 | M1) & (M1.t() | SM1)); + Matrix M3(20,20); + M3.SubMatrix(1,10,1,10) = SM1; + M3.SubMatrix(1,10,11,20) = M1; + M3.SubMatrix(11,20,1,10) = M2; + M3.SubMatrix(11,20,11,20) = SM1; + Print(Matrix(M3-SM2)); + + SymmetricMatrix SM(15); SM = 0; SM.SymSubMatrix(1,10) = SM1; + M3.ReSize(15,15); M3 = 0; M3.SubMatrix(1,10,1,10) = SM1; + M3 -= SM; Print(M3); + SM = 0; SM.SymSubMatrix(6,15) = SM1; + M3.ReSize(15,15); M3 = 0; M3.SubMatrix(6,15,6,15) = SM1; + M3 = M3.t() - SM; Print(M3); + } + { + Tracer et1("Stage 4 - sort"); + TestSort(1); TestSort(2); TestSort(3); TestSort(4); + TestSort(15); TestSort(16); TestSort(17); TestSort(18); + TestSort(99); TestSort(100); TestSort(101); + } + + +// cout << "\nEnd of sixth test\n"; +} + diff --git a/.svn/pristine/19/190354f7a521759c16264773d5c896b468f0a276.svn-base b/.svn/pristine/19/190354f7a521759c16264773d5c896b468f0a276.svn-base new file mode 100644 index 0000000..12514f8 --- /dev/null +++ b/.svn/pristine/19/190354f7a521759c16264773d5c896b468f0a276.svn-base @@ -0,0 +1,137 @@ +/** @file + * @brief Representation of the optimized k-d tree. MetaScan variant. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Thomas Escher + */ + +#ifndef __KD_META_H__ +#define __KD_META_H__ + +#include "kdparams.h" +#include "searchTree.h" +#include "data_types.h" + +#include +#include + +#ifdef _MSC_VER +#if !defined _OPENMP && defined OPENMP +#define _OPENMP +#endif +#endif + +#ifdef _OPENMP +#include +#endif + + + +class Scan; + + + +/** + * @brief The optimized k-d tree. + * + * A kD tree for points, with limited + * capabilities (find nearest point to + * a given point, or to a ray). + **/ +class KDtreeMeta : public SearchTree { +protected: + class Index { + public: + unsigned int s, i; + inline void set(unsigned int _s, unsigned int _i) { s = _s; i = _i; } + }; +public: + KDtreeMeta(); + virtual ~KDtreeMeta(); + + void create(const DataXYZ* const* pts, Index* indices, unsigned int n); + + virtual double *FindClosest(double *_p, double maxdist2, int threadNum = 0) const { return 0; } + +protected: + /** + * storing the parameters of the k-d tree, i.e., the current closest point, + * the distance to the current closest point and the point itself. + * These global variable are needed in this search. + * + * Padded in the parallel case. + */ +#ifdef _OPENMP +#ifdef __INTEL_COMPILER + __declspec (align(16)) static KDParams params[MAX_OPENMP_NUM_THREADS]; +#else + static KDParams params[MAX_OPENMP_NUM_THREADS]; +#endif //__INTEL_COMPILER +#else + static KDParams params[MAX_OPENMP_NUM_THREADS]; +#endif + + /** + * number of points. If this is 0: intermediate node. If nonzero: leaf. + */ + int npts; + + /** + * Cue the standard rant about anon unions but not structs in C++ + */ + union { + /** + * in case of internal node... + */ + struct { + double center[3]; ///< storing the center of the voxel (R^3) + double dx, ///< defining the voxel itself + dy, ///< defining the voxel itself + dz, ///< defining the voxel itself + r2; ///< defining the voxel itself + int splitaxis; ///< defining the kind of splitaxis + KDtreeMeta *child1; ///< pointers to the childs + KDtreeMeta *child2; ///< pointers to the childs + } node; + /** + * in case of leaf node ... + */ + struct { + //! Content is an array of indices to be put into the dynamically aquired data array + Index* p; + } leaf; + }; + + inline double* point(const DataXYZ* const* pts, const Index& i) const { + return (*pts[i.s])[i.i]; + } + + void _FindClosest(const DataXYZ* const* pts, int threadNum) const; +}; + +class KDtreeMetaManaged : public KDtreeMeta { +public: + KDtreeMetaManaged(const vector& scans); + virtual ~KDtreeMetaManaged(); + + virtual void lock(); + virtual void unlock(); + + //! Aquires cached data first to pass on to the usual KDtree to process + virtual double* FindClosest(double *_p, double maxdist2, int threadNum = 0) const; +private: + Scan** m_scans; + DataXYZ** m_data; + unsigned int m_size; + + //! Mutex for safely reducing points just once in a multithreaded environment + boost::mutex m_mutex_locking; + volatile unsigned int m_count_locking; + + // constructor initializer list hacks + Index* m_temp_indices; + Index* prepareTempIndices(const vector& scans); + unsigned int getPointsSize(const vector& scans); +}; + +#endif diff --git a/.svn/pristine/19/19693456beb2508a94721193f1d00e9acb220a3f.svn-base b/.svn/pristine/19/19693456beb2508a94721193f1d00e9acb220a3f.svn-base new file mode 100644 index 0000000..f509fbd --- /dev/null +++ b/.svn/pristine/19/19693456beb2508a94721193f1d00e9acb220a3f.svn-base @@ -0,0 +1,62 @@ +/** @file + * @brief The global correction based upon APX transform + * + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Jan Elseberg. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __GAPX6D_H__ +#define __GAPX6D_H__ + +#include +using std::vector; + +#include "graphSlam6D.h" +#include "icp6D.h" +#include "graph.h" + +#include "newmat/newmatio.h" + +//typedef vector vPtPair; ///< just a typedef: vPtPair = vector of type PtPair + + +/* + * @brief + * + */ +class gapx6D : public graphSlam6D { + +public: + /** + * Constructor (default) + */ + gapx6D() {}; + gapx6D(icp6Dminimizer *my_icp6Dminimizer, + double mdm = 25.0, + double max_dist_match = 25.0, + int max_num_iterations = 50, + bool quiet = false, + bool meta = false, + int rnd = 1, + bool eP = true, + int anim = -1, + double epsilonICP = 0.0000001, + int nns_method = simpleKD, + double epsilonLUM = 0.5); + + virtual ~gapx6D(); + + double doGraphSlam6D(Graph gr, vector MetaScan, int nrIt); + + static double LUM[4]; + +private: + double genBArotForLinkedPair(int firstScanNum, int secondScanNum, vPtPair *ptpairs, + double *centroids_m, double *centroids_d, NEWMAT::Matrix *B, NEWMAT::ColumnVector *A); + double genBAtransForLinkedPair(int firstScanNum, int secondScanNum, + double *centroids_m, double *centroids_d, + NEWMAT::SymmetricMatrix *B, NEWMAT::ColumnVector *A, NEWMAT::ColumnVector &X); + +}; + +#endif diff --git a/.svn/pristine/19/1993ef23fc7df612309583a5221f21c6f2e23665.svn-base b/.svn/pristine/19/1993ef23fc7df612309583a5221f21c6f2e23665.svn-base new file mode 100644 index 0000000..ce7527b --- /dev/null +++ b/.svn/pristine/19/1993ef23fc7df612309583a5221f21c6f2e23665.svn-base @@ -0,0 +1,175 @@ + +#define WANT_STREAM +#define WANT_MATH +#define WANT_FSTREAM + +#include "newmatap.h" +#include "newmatio.h" +#include "newmatnl.h" + +#ifdef use_namespace +using namespace RBD_LIBRARIES; +#endif + +// This is a demonstration of a special case of the Garch model +// Observe two series X and Y of length n +// and suppose +// Y(i) = beta * X(i) + epsilon(i) +// where epsilon(i) is normally distributed with zero mean and variance = +// h(i) = alpha0 + alpha1 * square(epsilon(i-1)) + beta1 * h(i-1). +// Then this program is supposed to estimate beta, alpha0, alpha1, beta1 +// The Garch model is supposed to model something like an instability +// in the stock or options market following an unexpected result. +// alpha1 determines the size of the instability and beta1 determines how +// quickly is dies away. +// We should, at least, have an X of several columns and beta as a vector + +inline Real square(Real x) { return x*x; } + +// the class that defines the GARCH log-likelihood + +class GARCH11_LL : public LL_D_FI +{ + ColumnVector Y; // Y values + ColumnVector X; // X values + ColumnVector D; // derivatives of loglikelihood + SymmetricMatrix D2; // - approximate second derivatives + int n; // number of observations + Real beta, alpha0, alpha1, beta1; + // the parameters + +public: + + GARCH11_LL(const ColumnVector& y, const ColumnVector& x) + : Y(y), X(x), n(y.Nrows()) {} + // constructor - load Y and X values + + void Set(const ColumnVector& p) // set parameter values + { + para = p; + beta = para(1); alpha0 = para(2); + alpha1 = para(3); beta1 = para(4); + } + + bool IsValid(); // are parameters valid + Real LogLikelihood(); // return the loglikelihood + ReturnMatrix Derivatives(); // derivatives of log-likelihood + ReturnMatrix FI(); // Fisher Information matrix +}; + +bool GARCH11_LL::IsValid() +{ return alpha0>0 && alpha1>0 && beta1>0 && (alpha1+beta1)<1.0; } + +Real GARCH11_LL::LogLikelihood() +{ +// cout << endl << " "; +// cout << setw(10) << setprecision(5) << beta; +// cout << setw(10) << setprecision(5) << alpha0; +// cout << setw(10) << setprecision(5) << alpha1; +// cout << setw(10) << setprecision(5) << beta1; +// cout << endl; + ColumnVector H(n); // residual variances + ColumnVector U = Y - X * beta; // the residuals + ColumnVector LH(n); // derivative of log-likelihood wrt H + // each row corresponds to one observation + LH(1)=0; + Matrix Hderiv(n,4); // rectangular matrix of derivatives + // of H wrt parameters + // each row corresponds to one observation + // each column to one of the parameters + + // Regard Y(1) as fixed and don't include in likelihood + // then put in an expected value of H(1) in place of actual value + // which we don't know. Use + // E{H(i)} = alpha0 + alpha1 * E{square(epsilon(i-1))} + beta1 * E{H(i-1)} + // and E{square(epsilon(i-1))} = E{H(i-1)} = E{H(i)} + Real denom = (1-alpha1-beta1); + H(1) = alpha0/denom; // the expected value of H + Hderiv(1,1) = 0; + Hderiv(1,2) = 1.0 / denom; + Hderiv(1,3) = alpha0 / square(denom); + Hderiv(1,4) = Hderiv(1,3); + Real LL = 0.0; // the log likelihood + Real sum1 = 0; // for forming derivative wrt beta + Real sum2 = 0; // for forming second derivative wrt beta + for (int i=2; i<=n; i++) + { + Real u1 = U(i-1); Real h1 = H(i-1); + Real h = alpha0 + alpha1*square(u1) + beta1*h1; // variance of this obsv. + H(i) = h; Real u = U(i); + LL += log(h) + square(u) / h; // -2 * log likelihood + // Hderiv are derivatives of h with respect to the parameters + // need to allow for h1 depending on parameters + Hderiv(i,1) = -2*u1*alpha1*X(i-1) + beta1*Hderiv(i-1,1); // beta + Hderiv(i,2) = 1 + beta1*Hderiv(i-1,2); // alpha0 + Hderiv(i,3) = square(u1) + beta1*Hderiv(i-1,3); // alpha1 + Hderiv(i,4) = h1 + beta1*Hderiv(i-1,4); // beta1 + LH(i) = -0.5 * (1/h - square(u/h)); + sum1 += u * X(i)/ h; + sum2 += square(X(i)) / h; + } + D = Hderiv.t()*LH; // derivatives of likelihood wrt parameters + D(1) += sum1; // add on deriv wrt beta from square(u) term +// cout << setw(10) << setprecision(5) << D << endl; + + // do minus expected value of second derivatives + if (wg) // do only if second derivatives wanted + { + Hderiv.Row(1) = 0.0; + Hderiv = H.AsDiagonal().i() * Hderiv; + D2 << Hderiv.t() * Hderiv; D2 = D2 / 2.0; + D2(1,1) += sum2; +// cout << setw(10) << setprecision(5) << D2 << endl; +// DiagonalMatrix DX; EigenValues(D2,DX); +// cout << setw(10) << setprecision(5) << DX << endl; + + } + return -0.5 * LL; +} + +ReturnMatrix GARCH11_LL::Derivatives() +{ return D; } + +ReturnMatrix GARCH11_LL::FI() +{ + if (!wg) cout << endl << "unexpected call of FI" << endl; + return D2; +} + + + +int main() +{ + // get data + ifstream fin("garch.dat"); + if (!fin) { cout << "cannot find garch.dat\n"; exit(1); } + int n; fin >> n; // series length + // Y contains the dependant variable, X the predictor variable + ColumnVector Y(n), X(n); + int i; + for (i=1; i<=n; i++) fin >> Y(i) >> X(i); + cout << "Read " << n << " data points - begin fit\n\n"; + // now do the fit + ColumnVector H(n); + GARCH11_LL garch11(Y,X); // loglikehood "object" + MLE_D_FI mle_d_fi(garch11,100,0.0001); // mle "object" + ColumnVector Para(4); // to hold the parameters + Para << 0.0 << 0.1 << 0.1 << 0.1; // starting values + // (Should change starting values to a more intelligent formula) + mle_d_fi.Fit(Para); // do the fit + ColumnVector SE; + mle_d_fi.GetStandardErrors(SE); + cout << "\n\n"; + cout << "estimates and standard errors\n"; + cout << setw(15) << setprecision(5) << (Para | SE) << endl << endl; + SymmetricMatrix Corr; + mle_d_fi.GetCorrelations(Corr); + cout << "correlation matrix\n"; + cout << setw(10) << setprecision(2) << Corr << endl << endl; + cout << "inverse of correlation matrix\n"; + cout << setw(10) << setprecision(2) << Corr.i() << endl << endl; + return 0; +} + + + diff --git a/.svn/pristine/1a/1a1d931b98a51173a8170ed6fcac74ebfc49a613.svn-base b/.svn/pristine/1a/1a1d931b98a51173a8170ed6fcac74ebfc49a613.svn-base new file mode 100644 index 0000000..113ba0e Binary files /dev/null and b/.svn/pristine/1a/1a1d931b98a51173a8170ed6fcac74ebfc49a613.svn-base differ diff --git a/.svn/pristine/1a/1a90f8bef3fa19ebe5f26888d2e855b4658aedf0.svn-base b/.svn/pristine/1a/1a90f8bef3fa19ebe5f26888d2e855b4658aedf0.svn-base new file mode 100644 index 0000000..bdfe249 --- /dev/null +++ b/.svn/pristine/1a/1a90f8bef3fa19ebe5f26888d2e855b4658aedf0.svn-base @@ -0,0 +1,152 @@ +/* + * frames2riegl implementation + * + * Copyright (C) Dorit Borrmann + * + * Released under the GPL version 3. + * + */ + +#include +#include +using std::cout; +using std::cerr; +using std::endl; +using std::ifstream; +using std::ofstream; + +#include "slam6d/globals.icc" +#include + +#ifndef _MSC_VER +#include +#else +#include "XGetopt.h" +#endif + +#if WIN32 +#define snprintf sprintf_s +#endif + +int parseArgs(int argc,char **argv, char dir[255], int& start, int& end){ + start = 0; + end = -1; // -1 indicates no limitation + + int c; + // from unistd.h + extern char *optarg; + extern int optind; + + cout << endl; + while ((c = getopt (argc, argv, "s:e:")) != -1) + switch (c) + { + case 's': + start = atoi(optarg); + if (start < 0) { cerr << "Error: Cannot start at a negative scan number.\n"; exit(1); } + break; + case 'e': + end = atoi(optarg); + if (end < 0) { cerr << "Error: Cannot end at a negative scan number.\n"; exit(1); } + if (end < start) { cerr << "Error: cannot be smaller than .\n"; exit(1); } + break; + } + + if (optind != argc-1) { + cerr << "\n*** Directory missing ***\n" << endl; + cout << endl + << "Usage: " << argv[0] << " [-s NR] [-e NR] directory" << endl << endl; + + cout << " -s NR start at scan NR (i.e., neglects the first NR scans)" << endl + << " [ATTENTION: counting starts with 0]" << endl + << " -e NR end after scan NR" << "" << endl + << endl; + cout << "Reads frame files from directory/scan???.frames and converts them to directory/scan???.4x4 in the RIEGL pose file format." << endl; + abort(); + } + strncpy(dir,argv[optind],255); + +#ifndef _MSC_VER + if (dir[strlen(dir)-1] != '/') strcat(dir,"/"); +#else + if (dir[strlen(dir)-1] != '\\') strcat(dir,"\\"); +#endif + return 0; +} + + +int main(int argc, char **argv) +{ + int start = 0, end = -1; + char dir[255]; + parseArgs(argc, argv, dir, start, end); + + int fileCounter = start; + char poseFileName[255]; + char frameFileName[255]; + + ifstream pose_in; + ofstream pose_out; + + double inMatrix[16]; + double tMatrix[17]; + + for (;;) { + if (end > -1 && fileCounter > end) break; // 'nuf read + snprintf(frameFileName,255,"%sscan%.3d.frames",dir,fileCounter); + snprintf(poseFileName,255,"%sscan%.3d.4x4",dir,fileCounter++); + + pose_in.open(frameFileName); + + if (!pose_in.good()) break; // no more files in the directory + // read 3D scan + + cout << "Reading frame " << frameFileName << "..." << endl; + + while(pose_in.good()) { + for (unsigned int i = 0; i < 17; pose_in >> tMatrix[i++]); + } + + inMatrix[5] = tMatrix[0]; + inMatrix[9] = -tMatrix[1]; + inMatrix[1] = -tMatrix[2]; + inMatrix[13] = -tMatrix[3]; + inMatrix[6] = -tMatrix[4]; + inMatrix[10] = tMatrix[5]; + inMatrix[2] = tMatrix[6]; + inMatrix[14] = tMatrix[7]; + inMatrix[4] = -tMatrix[8]; + inMatrix[8] = tMatrix[9]; + inMatrix[0] = tMatrix[10]; + inMatrix[12] = tMatrix[11]; + inMatrix[7] = -tMatrix[12]; + inMatrix[11] = tMatrix[13]; + inMatrix[3] = tMatrix[14]; + inMatrix[15] = tMatrix[15]; + + inMatrix[3] /= 100; + inMatrix[7] /= 100; + inMatrix[11] /= 100; + + pose_in.close(); + pose_in.clear(); + + pose_out.open(poseFileName); + + cout << "Writing Riegl pose... " << poseFileName << endl; + + for (int i=0; i < 16; i++) { + pose_out << inMatrix[i] << " "; + if((i % 4) == 3) pose_out << endl; + } + + + pose_out.close(); + pose_out.clear(); + + + cout << " done." << endl; + } + +} + diff --git a/.svn/pristine/1a/1aa8c72be42aad698487c9be847a69870f50836c.svn-base b/.svn/pristine/1a/1aa8c72be42aad698487c9be847a69870f50836c.svn-base new file mode 100644 index 0000000..843b51b --- /dev/null +++ b/.svn/pristine/1a/1aa8c72be42aad698487c9be847a69870f50836c.svn-base @@ -0,0 +1,49 @@ +SET(SHOW_LIBS ${OPENGL_LIBRARIES} glui scan ANN) +IF(WIN32) + IF( CMAKE_SIZEOF_VOID_P EQUAL 8 ) + SET(SHOW_LIBS ${SHOW_LIBS} ${CMAKE_SOURCE_DIR}/3rdparty/windows/x64/freeglut.lib XGetopt) + ELSE( CMAKE_SIZEOF_VOID_P EQUAL 8 ) + SET(SHOW_LIBS ${SHOW_LIBS} ${CMAKE_SOURCE_DIR}/3rdparty/windows/freeglut.lib XGetopt) + ENDIF(CMAKE_SIZEOF_VOID_P EQUAL 8 ) +ENDIF(WIN32) +IF (UNIX) + SET(SHOW_LIBS newmat dl ${GLUT_LIBRARIES} ${SHOW_LIBS}) +ENDIF(UNIX) + +IF(WITH_VELOSLAM) + add_executable(veloslam veloslam.cc veloscan.cc debugview.cc pcddump.cc tracker.cc + trackermanager.cc drawtrackers.cc kalmanfilter.cc matrix.cc lap.cc) + +IF(UNIX) + target_link_libraries(veloslam dl scan newmat sparse ANN ${Boost_LIBRARIES} ${SHOW_LIBS}) +ENDIF(UNIX) + +IF(WIN32) + target_link_libraries(veloslam scan newmat sparse ANN XGetopt ${Boost_LIBRARIES} ${SHOW_LIBS}) +ENDIF(WIN32) +ENDIF(WITH_VELOSLAM) + +#IF(WITH_VELOSLAM) + # SET(SHOW_SRCS ../show/NurbsPath.cc ../show/PathGraph.cc ../show/vertexarray.cc + # ../show/viewcull.cc ../show/colormanager.cc ../show/compacttree.cc + # ../show/scancolormanager.cc ../show/display.cc) + + # add_executable(veloshow veloshow.cc veloscan.cc + # debugview.cc pcddump.cc cluster_classification.cc + # tracker.cc trackermanager.cc drawtrackers.cc + # svm.cc clusterboundingbox.cc multiscan_random_field.cc + # kalmanfilter.cc matrix.cc lap.cc + # intersection_detection.cc SegIter.model ${SHOW_SRCS}) + +#IF(UNIX) +# target_link_libraries(veloshow dl scan newmat sparse ANN ${SHOW_LIBS}) +#ENDIF(UNIX) + +#IF(WIN32) +# target_link_libraries(veloshow scan newmat sparse ANN XGetopt ${Boost_LIBRARIES} ${SHOW_LIBS}) +#ENDIF(WIN32) + +#ENDIF(WITH_VELOSLAM) + + + diff --git a/.svn/pristine/1a/1ab09a6d1a4a54274fecec57993ed5a80c843225.svn-base b/.svn/pristine/1a/1ab09a6d1a4a54274fecec57993ed5a80c843225.svn-base new file mode 100644 index 0000000..7b8264b --- /dev/null +++ b/.svn/pristine/1a/1ab09a6d1a4a54274fecec57993ed5a80c843225.svn-base @@ -0,0 +1,2 @@ +.cvsignore +config.h diff --git a/.svn/pristine/1b/1b09d404ff14efe447f86b46db85e2d68091971e.svn-base b/.svn/pristine/1b/1b09d404ff14efe447f86b46db85e2d68091971e.svn-base new file mode 100644 index 0000000..0525792 --- /dev/null +++ b/.svn/pristine/1b/1b09d404ff14efe447f86b46db85e2d68091971e.svn-base @@ -0,0 +1,46 @@ +// ===================================================================================== +// +// Filename: sickday.h +// +// Description: +// +// Version: 1.0 +// Created: 09/26/2010 02:08:25 AM +// Revision: none +// Compiler: g++ +// +// Author: Jan Elseberg (), jelseber@uos.de +// Company: Universitaet Osnabrueck +// +// ===================================================================================== + +const int MIN_NR_PTS = 1200; + +const double IMG_RES = 2.0; // in cm +const int BOARD_SIZE_X = 59.40 / IMG_RES; // number of pixels wide +const int BOARD_SIZE_Z = 84.10 / IMG_RES; // number of pixels high + +const int WHITE_BORDER = 4; // number of pixels on the border to whiten. 10 cm ? + +const double MINREFL = -10.0; +const double MAXREFL = 10.0; +const double REFL_THRESHOLD = (0.0 - MINREFL ) / ( MAXREFL - MINREFL); // threshold for binarizing image + +const double MAX_DIST_TO_PLANE = 10.0; // RANSAC max distance to plane +const double MIN_SCORE = 0.65; // minimal score for accepting the board hypothesis (between 0 and 1) +const double SCORE_SCALE = 0.50; // score is scaled so that SCORE_SCALE is probability 0 + +/////////////// constants for OCR +const string OCRRESULT = "/tmp/ocrresult.txt"; +const string OCRERROR = "/tmp/ocrerr.txt"; +/////////////// number (except 1) are usually 17,27 pixel wide,high +// +const int MIN_NR_WIDTH = 28.0 / IMG_RES; // 14 pixel ? All Numbers except 1 must at least be this wide +const int MIN_1_WIDTH = 16.0 / IMG_RES; // 8 pixel ? Number 1 must at least be this wide +const int MIN_NR_HEIGHT = 46.0 / IMG_RES; // 23 pixel ? Numbers must at least be this high + +const int MAX_NR_WIDTH = 42.0 / IMG_RES; // 21 pixel ? All Numbers must at most be this wide +const int MAX_NR_HEIGHT = 62.0 / IMG_RES; // 31 pixel ? Numbers must at most be this high + + + diff --git a/.svn/pristine/1b/1b506d343f0ac655ba69c79f83780b07c77f8b50.svn-base b/.svn/pristine/1b/1b506d343f0ac655ba69c79f83780b07c77f8b50.svn-base new file mode 100644 index 0000000..d45cda3 --- /dev/null +++ b/.svn/pristine/1b/1b506d343f0ac655ba69c79f83780b07c77f8b50.svn-base @@ -0,0 +1,220 @@ +/* + * scan_io_riegl_rgb implementation + * + * Copyright (C) Thomas Escher, Kai Lingemann, Andreas Nuechter + * + * Released under the GPL version 3. + * + */ + +/** + * @file + * @brief Implementation of reading 3D scans + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Thomas Escher + */ + +#include "scanio/scan_io_riegl_rgb.h" + +#include +using std::cout; +using std::cerr; +using std::endl; +#include + +#ifdef _MSC_VER +#include +#endif + +#include +#include +using namespace boost::filesystem; + +#include "slam6d/globals.icc" + + + +#define DATA_PATH_PREFIX "scan" +#define DATA_PATH_SUFFIX ".rgb" +#define POSE_PATH_PREFIX "scan" +#define POSE_PATH_SUFFIX ".dat" + + + +std::list ScanIO_riegl_rgb::readDirectory(const char* dir_path, unsigned int start, unsigned int end) +{ + std::list identifiers; + for(unsigned int i = start; i <= end; ++i) { + // identifier is /d/d/d (000-999) + std::string identifier(to_string(i,3)); + // scan consists of data (.3d) and pose (.pose) files + path data(dir_path); + data /= path(std::string(DATA_PATH_PREFIX) + identifier + DATA_PATH_SUFFIX); + path pose(dir_path); + pose /= path(std::string(POSE_PATH_PREFIX) + identifier + POSE_PATH_SUFFIX); + // stop if part of a scan is missing or end by absence is detected + if(!exists(data) || !exists(pose)) + break; + identifiers.push_back(identifier); + } + return identifiers; +} + +void ScanIO_riegl_rgb::readPose(const char* dir_path, const char* identifier, double* pose) +{ + unsigned int i; + + path pose_path(dir_path); + pose_path /= path(std::string(POSE_PATH_PREFIX) + identifier + POSE_PATH_SUFFIX); + if(!exists(pose_path)) + throw std::runtime_error(std::string("There is no pose file for [") + identifier + "] in [" + dir_path + "]"); + + // open pose file + ifstream pose_file(pose_path); + + // if the file is open, read contents + if(pose_file.good()) { + double rPos[3], rPosTheta[16]; + double inMatrix[16], tMatrix[16]; + + for (i = 0; i < 16; ++i) + pose_file >> inMatrix[i]; + pose_file.close(); + + // transform input pose + tMatrix[0] = inMatrix[5]; + tMatrix[1] = -inMatrix[9]; + tMatrix[2] = -inMatrix[1]; + tMatrix[3] = -inMatrix[13]; + tMatrix[4] = -inMatrix[6]; + tMatrix[5] = inMatrix[10]; + tMatrix[6] = inMatrix[2]; + tMatrix[7] = inMatrix[14]; + tMatrix[8] = -inMatrix[4]; + tMatrix[9] = inMatrix[8]; + tMatrix[10] = inMatrix[0]; + tMatrix[11] = inMatrix[12]; + tMatrix[12] = -inMatrix[7]; + tMatrix[13] = inMatrix[11]; + tMatrix[14] = inMatrix[3]; + tMatrix[15] = inMatrix[15]; + + Matrix4ToEuler(tMatrix, rPosTheta, rPos); + + pose[0] = 100*rPos[0]; + pose[1] = 100*rPos[1]; + pose[2] = 100*rPos[2]; + pose[3] = rPosTheta[0]; + pose[4] = rPosTheta[1]; + pose[5] = rPosTheta[2]; + } else { + throw std::runtime_error(std::string("Pose file could not be opened for [") + identifier + "] in [" + dir_path + "]"); + } +} + +bool ScanIO_riegl_rgb::supports(IODataType type) +{ + return !!(type & (DATA_XYZ | DATA_RGB | DATA_REFLECTANCE)); +} + +void ScanIO_riegl_rgb::readScan(const char* dir_path, const char* identifier, PointFilter& filter, std::vector* xyz, std::vector* rgb, std::vector* reflectance, std::vector* amplitude, std::vector* type, std::vector* deviation) +{ + unsigned int i; + + // error handling + path data_path(dir_path); + data_path /= path(std::string(DATA_PATH_PREFIX) + identifier + DATA_PATH_SUFFIX); + if(!exists(data_path)) + throw std::runtime_error(std::string("There is no scan file for [") + identifier + "] in [" + dir_path + "]"); + + if(xyz != 0 || rgb != 0 || reflectance != 0) { + // open data file + ifstream data_file(data_path); + data_file.exceptions(ifstream::eofbit|ifstream::failbit|ifstream::badbit); + + // read the point count + unsigned int count; + data_file >> count; + + // reserve enough space for faster reading + if(xyz != 0) xyz->reserve(3*count); + if(rgb != 0) rgb->reserve(3*count); + + // read points + // z x y range theta phi r g b reflectance + double point[7]; + unsigned int color[3]; + double tmp; + while(data_file.good()) { + try { + for(i = 0; i < 6; ++i) data_file >> point[i]; + for(i = 0; i < 3; ++i) data_file >> color[i]; + data_file >> point[6]; + } catch(std::ios_base::failure& e) { + break; + } + + // the enemy's x/y/z is mapped to slam's z/x/y, shuffle time! + // invert x axis + // convert coordinate to cm + tmp = point[2]; + point[2] = 100.0 * point[0]; + point[0] = -100.0 * point[1]; + point[1] = 100.0 * tmp; + + // apply filter and insert point + if(filter.check(point)) { + if(xyz != 0) { + for(i = 0; i < 3; ++i) xyz->push_back(point[i]); + } + if(rgb != 0) { + for(i = 0; i < 3; ++i) rgb->push_back( + static_cast(color[i])); + } + if(reflectance != 0) { + reflectance->push_back(point[6]); + } + } + } + data_file.close(); + } +} + + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_riegl_rgb; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/.svn/pristine/1b/1b8bbbe6663d6c0c18091eaa2a7c73fa94705b3c.svn-base b/.svn/pristine/1b/1b8bbbe6663d6c0c18091eaa2a7c73fa94705b3c.svn-base new file mode 100644 index 0000000..a029a74 --- /dev/null +++ b/.svn/pristine/1b/1b8bbbe6663d6c0c18091eaa2a7c73fa94705b3c.svn-base @@ -0,0 +1,132 @@ +# +# Makefile for ./src path, used by configure +# + +EXEEXT = @EXEEXT@ +PROGRAM = gocr$(EXEEXT) +# lib removed for simplification (v0.46) +# but Igor from OSRA an optical chemical structure recognition software +# wants it (v0.47 Mar09) +PGMASCLIB = Pgm2asc +#LIBPGMASCLIB = lib$(PGMASCLIB).a +# ToDo: need a better pgm2asc.h for lib users +#INCLUDEFILES = gocr.h +# avoid german compiler messages +LANG=C + +LIBOBJS=pgm2asc.o \ + box.o \ + database.o \ + detect.o \ + barcode.o \ + lines.o \ + list.o \ + ocr0.o \ + ocr0n.o \ + ocr1.o \ + otsu.o \ + output.o \ + pixel.o \ + unicode.o \ + remove.o \ + pnm.o \ + pcx.o \ + progress.o \ + job.o + +# these two lines are for cross-compiling, not tested +#srcdir = @srcdir@ +#VPATH = @srcdir@ +bindir = @bindir@ +# lib removed for simplification +#libdir = @libdir@ +#includedir = @includedir@ + +CC=@CC@ +# lib removed for simplification +# ar,ranlib detection removed from configure (simplicity) +# but needed by some developpers (linux only) for for (make libs) +# RANLIB = @RANLIB@ +# AR = @AR@ +RANLIB = ranlib +AR = ar +INSTALL=@INSTALL@ +# shell is needed for OS/2 to let if test -r $(PROGRAM) ... work +SHELL=@SHELL@ + +DEFS=@DEFS@ +CPPFLAGS=@CPPFLAGS@ +# to see the config.h +CFLAGS=@CFLAGS@ $(CPPFLAGS) -I../include $(DEFS) +LDFLAGS=@LDFLAGS@ +LIBS=@LIBS@ +DESTDIR=@prefix@ + +.SUFFIXES: .s .o .c .h +# do not look for files if help (etc) is given +.PHONY : doc clean install libs default + +.c.o: gocr.h pgm2asc.h ../include/config.h + $(CC) $(CFLAGS) -c -o $*.o $< + +default: all + +# all: $(PROGRAM) lib$(PGMASCLIB).a +all: $(PROGRAM) + +gocr.o: gocr.h Makefile ../include/version.h + +.c.h: + +#$(PROGRAM): lib$(PGMASCLIB).a gocr.o +$(PROGRAM): $(LIBOBJS) gocr.o + # make it conform to ld --as-needed + #$(CC) -o $@ $(LDFLAGS) gocr.o ./lib$(PGMASCLIB).a $(LIBS) + $(CC) -o $@ $(LDFLAGS) gocr.o $(LIBOBJS) $(LIBS) + if test -r $(PROGRAM); then cp $@ ../bin; fi + +libs: lib$(PGMASCLIB).a lib$(PGMASCLIB).@PACKAGE_VERSION@.so + +lib$(PGMASCLIB).@PACKAGE_VERSION@.so: $(LIBOBJS) + $(CC) -fPIC -shared -Wl,-h$@ -o $@ $(LIBOBJS) + -ln -s $@ lib$(PGMASCLIB).so + +lib$(PGMASCLIB).a: $(LIBOBJS) + # -rm -f $@ + $(AR) cru $@ $(LIBOBJS) + $(RANLIB) $@ + +$(LIBOBJS): Makefile + +# PHONY = don't look at file clean, -rm = start rm and ignore errors +.PHONY : clean proper install uninstall +install: all + #$(INSTALL) -d $(DESTDIR)$(bindir) $(DESTDIR)$(libdir) $(DESTDIR)$(includedir) + $(INSTALL) -d $(DESTDIR)$(bindir) + $(INSTALL) ../bin/$(PROGRAM) $(DESTDIR)$(bindir) + $(INSTALL) ../bin/gocr.tcl $(DESTDIR)$(bindir) # better X11/bin? + if test -f lib$(PGMASCLIB).a; then\ + $(INSTALL) lib$(PGMASCLIB).a $(DESTDIR)$(libdir);\ + $(INSTALL) lib$(PGMASCLIB).@PACKAGE_VERSION@.so $(DESTDIR)$(libdir);\ + $(INSTALL) lib$(PGMASCLIB).so $(DESTDIR)$(libdir);\ + fi + # ToDo: not sure that the link will be installed correctly + #$(INSTALL) $(INCLUDEFILES) $(DESTDIR)$(includedir) + +# directories are not removed +uninstall: + -rm -f $(DESTDIR)$(bindir)/$(PROGRAM) + -rm -f $(DESTDIR)$(bindir)/gocr.tcl + -rm -f $(DESTDIR)$(libdir)/lib$(PGMASCLIB).a + -rm -f $(DESTDIR)$(libdir)/lib$(PGMASCLIB).@PACKAGE_VERSION@.so + -rm -f $(DESTDIR)$(libdir)/lib$(PGMASCLIB).so + # ToDo: set to old version.so ? + #for X in $(INCLUDEFILES); do rm -f $(DESTDIR)$(includedir)/$$X; done + +clean: + -rm -f *.o *~ + +proper: clean + -rm -f gocr libPgm2asc.* + -rm -f gocr + diff --git a/.svn/pristine/1b/1bec3f4b475ef6e50097a5611f5d9e040c9a8499.svn-base b/.svn/pristine/1b/1bec3f4b475ef6e50097a5611f5d9e040c9a8499.svn-base new file mode 100644 index 0000000..37f58aa --- /dev/null +++ b/.svn/pristine/1b/1bec3f4b475ef6e50097a5611f5d9e040c9a8499.svn-base @@ -0,0 +1,144 @@ +svm_type c_svc +kernel_type rbf +gamma 0.0625 +nr_class 2 +total_sv 133 +rho -0.261596 +label 1 -1 +probA -5.01585 +probB 0.275821 +nr_sv 80 53 +SV +0.4753545542788266 1:0.1667 2:0.1667 3:0.1667 4:0.1833 5:0.1833 6:0.1833 7:0.1833 8:0.1833 9:0.2 10:0.2 11:0.2 12:0.25 13:0.25 14:0.3333 15:0.3333 16:0.3833 17:0.4167 18:0.55 19:0.5833 20:0.5833 21:0.5833 22:0.45 23:0.45 24:0.45 25:0.45 26:0.45 27:0.45 28:0.4167 29:0.3667 30:0.3667 31:0.35 32:0.3333 33:0.3333 34:0.3167 35:0.3333 36:0.3333 37:0.3167 38:0.3333 39:0.3333 40:0.3167 41:0.3333 42:0.3167 43:0.3167 44:0.3167 45:0.3167 46:0.1667 47:0.15 48:0.1667 49:0.1667 50:0.1667 51:0.1667 52:0.1667 53:0.1667 54:0.15 55:0.15 56:0.1333 57:0.1333 58:0.1333 59:0.1333 60:0.1333 61:0.1333 62:0.1333 63:0.15 64:0.15 65:0.1333 66:0.1333 67:0.1333 68:0.1333 69:0.15 70:0.15 71:0.15 72:0.1333 73:0.1333 74:0.1333 75:0.15 76:0.15 77:0.15 78:0.1333 79:0.1333 80:0.1333 81:0.1333 82:0.1333 83:0.1333 84:0.1333 85:0.1333 86:0.1333 87:0.1333 88:0.15 89:0.3 90:0.4667 91:1 92:1 93:1 94:1 95:1 96:1 97:0.9833 98:0.75 99:0.7333 100:0.6167 101:0.5167 102:0.5167 103:0.5167 104:0.4 105:0.4 106:0.4 107:0.4 108:0.4 109:0.4 110:0.4 111:0.2667 112:0.25 113:0.25 114:0.25 115:0.25 116:0.25 117:0.25 118:0.25 119:0.25 120:0.25 121:0.25 122:0.25 123:0.25 124:0.25 125:0.25 126:0.25 127:0.25 128:0.25 129:0.25 130:0.25 131:0.25 132:0.2667 133:0.1333 134:0.1333 135:0.1333 136:0.1333 137:0.1333 138:0.1333 139:0.1333 140:0.15 141:0.1333 142:0.087684211 143:0.087684211 144:0.087684211 145:0.10526316 146:0.10526316 147:0.10526316 148:0.087684211 149:0.087684211 150:0.087684211 151:0.087684211 152:0.10526316 153:0.10526316 154:0.087684211 155:0.087684211 156:0.087684211 157:0.071389541 158:0.071389541 159:0.071389541 160:0.071389541 161:0.071389541 162:0.071389541 163:0.071389541 164:0.071389541 165:0.089282462 166:0.089282462 167:0.14285408 168:0.14285408 169:0.14285408 170:0.14285408 171:0.14285408 172:0.12496116 173:0.089282462 174:0.089282462 175:0.089282462 176:0.089282462 177:0.089282462 178:0.089282462 179:0.089282462 180:0.089282462 181:0.089282462 182:0.089282462 183:0.089282462 184:0.089282462 185:0.053603763 186:0.053603763 187:0.053603763 188:0.053603763 189:0.053603763 190:0.053603763 191:0.053603763 192:0.053603763 193:0.053603763 194:0.053603763 195:0.053603763 196:0.071389541 197:0.071389541 198:0.071389541 199:0.071389541 200:0.053603763 201:0.053603763 202:0.071389541 203:0.071389541 204:0.071389541 205:0.071389541 206:0.071389541 207:0.053603763 208:0.053603763 209:0.053603763 210:0.071389541 211:0.071389541 212:0.071389541 213:0.053603763 214:0.053603763 215:0.053603763 216:0.053603763 217:0.053603763 218:0.053603763 219:0.053603763 220:0.071389541 221:0.1333 222:0.1333 223:0.2167 224:0.2167 225:0.2333 226:0.2333 227:0.2333 228:0.2667 229:0.2667 230:0.2667 231:0.2667 232:0.2667 233:0.2667 234:0.2667 235:0.2667 236:0.2667 237:0.2667 238:0.2667 239:0.2667 240:0.2667 241:0.2667 242:0.2667 243:0.2667 244:0.2667 245:0.2667 246:0.2667 247:0.2667 248:0.2667 249:0.2667 250:0.2667 251:0.2667 252:0.2833 253:0.4167 254:0.4167 255:0.4167 256:0.55 257:0.55 258:0.55 259:0.55 260:0.5667 261:0.7167 262:0.7167 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:0.9833 272:0.4667 273:0.4667 274:0.15 275:0.1333 276:0.1333 277:0.1333 278:0.1333 279:0.1333 280:0.1333 281:0.1333 282:0.1333 283:0.1333 284:0.1333 285:0.15 286:0.15 287:0.15 288:0.1333 289:0.1333 290:0.1333 291:0.1167 292:0.1167 293:0.1167 294:0.1167 295:0.1333 296:0.1333 297:0.1333 298:0.1167 299:0.1167 300:0.1167 301:0.1167 302:0.1167 303:0.1167 304:0.1167 305:0.1167 306:0.1167 307:0.1167 308:0.1167 309:0.1167 310:0.1167 311:0.1333 312:0.1333 313:0.1167 314:0.1167 315:0.1167 316:0.1167 317:0.1167 318:0.1333 319:0.1167 320:0.1167 321:0.1167 322:0.1167 323:0.1167 324:0.1167 325:0.1167 326:0.1333 327:0.1167 328:0.1167 329:0.1167 330:0.1167 331:0.1167 332:0.1167 333:0.1167 334:0.1333 335:0.1333 336:0.1333 337:0.1333 338:0.1333 339:0.1333 340:0.1333 341:0.1333 342:0.1333 343:0.1333 344:0.1333 345:0.15 346:0.15 347:0.15 348:0.15 349:0.15 350:0.15 351:0.1333 352:0.15 353:0.15 354:0.15 355:0.15 356:0.15 357:0.15 358:0.15 359:0.1667 360:0.1667 +2 1:0.2167 2:0.2167 3:0.2167 4:0.2333 5:0.2333 6:0.2333 7:0.2667 8:0.2667 9:0.2667 10:0.3667 11:0.3667 12:0.3667 13:0.3833 14:0.3833 15:0.4667 16:0.6167 17:0.6167 18:0.4833 19:0.4667 20:0.4667 21:0.4667 22:0.4667 23:0.4667 24:0.4667 25:0.4667 26:0.3667 27:0.3667 28:0.35 29:0.3333 30:0.35 31:0.35 32:0.35 33:0.1667 34:0.1667 35:0.1667 36:0.1667 37:0.1667 38:0.1667 39:0.1667 40:0.1667 41:0.1667 42:0.1667 43:0.1667 44:0.1667 45:0.1667 46:0.1667 47:0.15 48:0.15 49:0.15 50:0.15 51:0.15 52:0.15 53:0.15 54:0.15 55:0.15 56:0.15 57:0.15 58:0.15 59:0.1667 60:0.15 61:0.15 62:0.15 63:0.15 64:0.15 65:0.15 66:0.15 67:0.15 68:0.15 69:0.15 70:0.15 71:0.15 72:0.15 73:0.15 74:0.15 75:0.15 76:0.15 77:0.1667 78:0.3 79:0.3 80:0.3 81:0.3 82:0.3 83:0.3 84:0.3667 85:0.45 86:0.6 87:0.6 88:0.9333 89:1 90:1 91:1 92:1 93:1 94:1 95:0.95 96:0.7 97:0.5833 98:0.6 99:0.5833 100:0.3833 101:0.3833 102:0.3833 103:0.3833 104:0.3833 105:0.2333 106:0.2167 107:0.2167 108:0.2167 109:0.2167 110:0.2167 111:0.2167 112:0.2167 113:0.2167 114:0.2333 115:0.2167 116:0.2167 117:0.2167 118:0.2333 119:0.2167 120:0.2167 121:0.2167 122:0.2167 123:0.2167 124:0.2167 125:0.1 126:0.1 127:0.1 128:0.1 129:0.1 130:0.1 131:0.1 132:0.1 133:0.1 134:0.1 135:0.1 136:0.1 137:0.1 138:0.1 139:0.1 140:0.1 141:0.1 142:0.052631579 143:0.052631579 144:0.052631579 145:0.052631579 146:0.052631579 147:0.052631579 148:0.052631579 149:0.052631579 150:0.052631579 151:0.052631579 152:0.052631579 153:0.052631579 154:0.052631579 155:0.052631579 156:0.052631579 157:0.035710842 158:0.035710842 159:0.035710842 160:0.035710842 161:0.035710842 162:0.035710842 163:0.035710842 164:0.035710842 165:0.035710842 166:0.035710842 167:0.035710842 168:0.035710842 169:0.053603763 170:0.089282462 171:0.089282462 172:0.089282462 173:0.089282462 174:0.089282462 175:0.089282462 176:0.089282462 177:0.089282462 178:0.089282462 179:0.089282462 180:0.089282462 181:0.089282462 182:0.089282462 183:0.089282462 184:0.089282462 185:0.089282462 186:0.089282462 187:0.089282462 188:0.089282462 189:0.089282462 190:0.089282462 191:0.089282462 192:0.089282462 193:0.089282462 194:0.035710842 195:0.035710842 196:0.035710842 197:0.035710842 198:0.035710842 199:0.035710842 200:0.035710842 201:0.035710842 202:0.035710842 203:0.035710842 204:0.035710842 205:0.035710842 206:0.035710842 207:0.035710842 208:0.035710842 209:0.035710842 210:0.035710842 211:0.035710842 212:0.035710842 213:0.035710842 214:0.035710842 215:0.035710842 216:0.035710842 217:0.035710842 218:0.035710842 219:0.035710842 220:0.035710842 221:0.1 222:0.1 223:0.1 224:0.1 225:0.1 226:0.1 227:0.1 228:0.1 229:0.1 230:0.1 231:0.1 232:0.1 233:0.1 234:0.1 235:0.1 236:0.1 237:0.1 238:0.2167 239:0.2167 240:0.2 241:0.2667 242:0.2667 243:0.2 244:0.2 245:0.2667 246:0.2667 247:0.2667 248:0.2667 249:0.2667 250:0.2667 251:0.2667 252:0.2667 253:0.2667 254:0.2667 255:0.2667 256:0.2667 257:0.2667 258:0.2667 259:0.4167 260:0.4167 261:0.5667 262:0.5667 263:0.5667 264:0.7167 265:0.7167 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:0.9833 274:0.8333 275:0.6667 276:0.4833 277:0.4833 278:0.4833 279:0.4833 280:0.4667 281:0.4333 282:0.3833 283:0.3667 284:0.1833 285:0.1667 286:0.1667 287:0.1667 288:0.1667 289:0.1667 290:0.1667 291:0.1667 292:0.1667 293:0.1667 294:0.1667 295:0.1667 296:0.1667 297:0.1667 298:0.1667 299:0.1667 300:0.15 301:0.15 302:0.15 303:0.1667 304:0.1667 305:0.1667 306:0.15 307:0.15 308:0.15 309:0.15 310:0.15 311:0.1667 312:0.15 313:0.1667 314:0.15 315:0.1667 316:0.1667 317:0.15 318:0.15 319:0.1667 320:0.15 321:0.1667 322:0.15 323:0.15 324:0.15 325:0.15 326:0.15 327:0.1667 328:0.1667 329:0.1667 330:0.15 331:0.15 332:0.15 333:0.1667 334:0.1667 335:0.1667 336:0.1667 337:0.1667 338:0.1667 339:0.15 340:0.1667 341:0.1667 342:0.1667 343:0.1667 344:0.1667 345:0.1667 346:0.1667 347:0.1667 348:0.1833 349:0.1833 350:0.1833 351:0.1833 352:0.1667 353:0.1667 354:0.2 355:0.2 356:0.2 357:0.2 358:0.2 359:0.2167 360:0.2167 +2 1:0.2833 2:0.2833 3:0.3833 4:0.3833 5:0.3833 6:0.3833 7:0.4 8:0.4 9:0.4 10:0.4833 11:0.4833 12:0.5333 13:0.5667 14:0.6 15:0.45 16:0.4333 17:0.45 18:0.4333 19:0.45 20:0.3333 21:0.1167 22:0.1167 23:0.1167 24:0.1167 25:0.1333 26:0.1333 27:0.1333 28:0.1167 29:0.1167 30:0.1167 31:0.1167 32:0.1167 33:0.1167 34:0.1167 35:0.1 36:0.1 37:0.1167 38:0.1167 39:0.1167 40:0.1167 41:0.1167 42:0.1167 43:0.1167 44:0.1167 45:0.1167 46:0.1167 47:0.1167 48:0.1167 49:0.1167 50:0.1167 51:0.1167 52:0.1167 53:0.1167 54:0.1167 55:0.1167 56:0.1167 57:0.1167 58:0.1167 59:0.1167 60:0.1167 61:0.1167 62:0.1167 63:0.1167 64:0.1167 65:0.1167 66:0.1167 67:0.1 68:0.1 69:0.1167 70:0.1167 71:0.1167 72:0.25 73:0.25 74:0.25 75:0.25 76:0.25 77:0.25 78:0.25 79:0.25 80:0.25 81:0.25 82:0.2667 83:0.25 84:0.25 85:0.25 86:0.3167 87:0.8833 88:0.8833 89:1 90:1 91:1 92:1 93:1 94:1 95:0.9 96:0.6667 97:0.55 98:0.55 99:0.55 100:0.3667 101:0.35 102:0.35 103:0.35 104:0.35 105:0.35 106:0.35 107:0.35 108:0.35 109:0.1833 110:0.1833 111:0.1833 112:0.35 113:0.35 114:0.1833 115:0.1833 116:0.2 117:0.3833 118:0.4 119:0.1833 120:0.2 121:0.2 122:0.3833 123:0.1833 124:0.1833 125:0.1833 126:0.4 127:0.3833 128:0.1833 129:0.1833 130:0.1833 131:0.2167 132:0.2167 133:0.2167 134:0.1833 135:0.1833 136:0.1833 137:0.1833 138:0.1833 139:0.1667 140:0.08333 141:0.08333 142:0.035084211 143:0.035084211 144:0.035084211 145:0.035084211 146:0.035084211 147:0.035084211 148:0.035084211 149:0.035084211 150:0.035084211 151:0.035084211 152:0.035084211 153:0.035084211 154:0.035084211 155:0.035084211 156:0.035084211 157:0.017850064 158:0.017850064 159:0.017850064 160:0.017850064 161:0.017850064 162:0.017850064 163:0.017850064 164:0.017850064 165:0.017850064 166:0.017850064 167:0.017850064 168:0.017850064 169:0.017850064 170:0.017850064 171:0.017850064 172:0.017850064 173:0.017850064 174:0.017850064 175:0.017850064 176:0.017850064 177:0.017850064 178:0.017850064 179:0.017850064 180:0.017850064 181:0.017850064 182:0.017850064 183:0.017850064 184:0.017850064 185:0.017850064 186:0.017850064 187:0.017850064 188:0.017850064 189:0.017850064 190:0.017850064 191:0.017850064 192:0.017850064 193:0.017850064 194:0.017850064 195:0.089282462 196:0.089282462 197:0.089282462 198:0.089282462 199:0.089282462 200:0.089282462 201:0.089282462 202:0.089282462 203:0.089282462 204:0.089282462 205:0.089282462 206:0.089282462 207:0.089282462 208:0.089282462 209:0.089282462 210:0.089282462 211:0.089282462 212:0.089282462 213:0.089282462 214:0.089282462 215:0.089282462 216:0.089282462 217:0.089282462 218:0.089282462 219:0.089282462 220:0.089282462 221:0.15 222:0.15 223:0.15 224:0.15 225:0.15 226:0.15 227:0.15 228:0.15 229:0.15 230:0.15 231:0.15 232:0.15 233:0.15 234:0.15 235:0.15 236:0.15 237:0.15 238:0.15 239:0.15 240:0.15 241:0.15 242:0.15 243:0.2 244:0.2 245:0.3 246:0.3 247:0.3 248:0.3 249:0.3 250:0.3 251:0.3 252:0.3 253:0.3 254:0.3 255:0.3 256:0.3 257:0.3 258:0.3667 259:0.3667 260:0.3833 261:0.45 262:0.4667 263:0.6 264:0.6167 265:0.7333 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:0.8 275:0.7 276:0.5333 277:0.5333 278:0.5333 279:0.5333 280:0.4667 281:0.4333 282:0.2167 283:0.2 284:0.2 285:0.2 286:0.2 287:0.2 288:0.2 289:0.2 290:0.2 291:0.2 292:0.2 293:0.2 294:0.1833 295:0.1833 296:0.1833 297:0.1833 298:0.1833 299:0.1833 300:0.1833 301:0.1833 302:0.1833 303:0.1833 304:0.1833 305:0.1833 306:0.1833 307:0.1833 308:0.1833 309:0.1833 310:0.1833 311:0.1833 312:0.1833 313:0.1833 314:0.1833 315:0.1833 316:0.1833 317:0.1833 318:0.1833 319:0.1833 320:0.2 321:0.2 322:0.2 323:0.2 324:0.2 325:0.1833 326:0.1833 327:0.2 328:0.2 329:0.2 330:0.2 331:0.2 332:0.1833 333:0.2 334:0.2 335:0.2 336:0.2 337:0.2 338:0.2 339:0.2 340:0.2 341:0.2 342:0.2 343:0.2 344:0.2 345:0.2 346:0.2167 347:0.2167 348:0.2167 349:0.2167 350:0.2167 351:0.2333 352:0.2333 353:0.2333 354:0.2333 355:0.2333 356:0.25 357:0.25 358:0.25 359:0.25 360:0.2833 +0.1962220074588565 1:0.2 2:0.2 3:0.2 4:0.2167 5:0.2167 6:0.2167 7:0.2167 8:0.25 9:0.25 10:0.2833 11:0.2833 12:0.2833 13:0.3833 14:0.3833 15:0.4 16:0.4333 17:0.4833 18:0.5667 19:0.6333 20:0.6667 21:0.4667 22:0.4833 23:0.4667 24:0.4833 25:0.4833 26:0.4833 27:0.4333 28:0.35 29:0.3667 30:0.35 31:0.35 32:0.35 33:0.35 34:0.35 35:0.35 36:0.3333 37:0.3333 38:0.15 39:0.15 40:0.15 41:0.1667 42:0.1667 43:0.1667 44:0.15 45:0.1667 46:0.1667 47:0.15 48:0.15 49:0.15 50:0.15 51:0.15 52:0.15 53:0.15 54:0.15 55:0.15 56:0.15 57:0.15 58:0.15 59:0.1667 60:0.15 61:0.15 62:0.15 63:0.15 64:0.15 65:0.15 66:0.15 67:0.15 68:0.15 69:0.15 70:0.15 71:0.15 72:0.15 73:0.15 74:0.15 75:0.15 76:0.15 77:0.1667 78:0.3 79:0.3 80:0.3 81:0.3 82:0.3 83:0.3 84:0.3833 85:0.3833 86:0.3833 87:0.3833 88:0.9333 89:0.95 90:1 91:1 92:1 93:1 94:1 95:1 96:0.7167 97:0.6 98:0.6 99:0.4167 100:0.4 101:0.4 102:0.4 103:0.4 104:0.4 105:0.2333 106:0.2333 107:0.2333 108:0.2333 109:0.2333 110:0.2333 111:0.2333 112:0.2333 113:0.2333 114:0.2333 115:0.2333 116:0.2333 117:0.2333 118:0.2333 119:0.2333 120:0.2333 121:0.2333 122:0.2333 123:0.2333 124:0.1333 125:0.1 126:0.1 127:0.1 128:0.1 129:0.1 130:0.1 131:0.1 132:0.1 133:0.1 134:0.1 135:0.1 136:0.1 137:0.1 138:0.1 139:0.1 140:0.1 141:0.1 142:0.052631579 143:0.052631579 144:0.052631579 145:0.052631579 146:0.052631579 147:0.052631579 148:0.052631579 149:0.052631579 150:0.052631579 151:0.052631579 152:0.052631579 153:0.052631579 154:0.052631579 155:0.052631579 156:0.052631579 157:0.035710842 158:0.035710842 159:0.035710842 160:0.035710842 161:0.035710842 162:0.035710842 163:0.035710842 164:0.035710842 165:0.035710842 166:0.035710842 167:0.035710842 168:0.035710842 169:0.053603763 170:0.089282462 171:0.089282462 172:0.089282462 173:0.089282462 174:0.089282462 175:0.089282462 176:0.089282462 177:0.089282462 178:0.089282462 179:0.089282462 180:0.089282462 181:0.089282462 182:0.089282462 183:0.089282462 184:0.089282462 185:0.089282462 186:0.089282462 187:0.089282462 188:0.089282462 189:0.089282462 190:0.089282462 191:0.089282462 192:0.089282462 193:0.053603763 194:0.053603763 195:0.053603763 196:0.053603763 197:0.053603763 198:0.053603763 199:0.053603763 200:0.053603763 201:0.053603763 202:0.053603763 203:0.053603763 204:0.053603763 205:0.053603763 206:0.053603763 207:0.053603763 208:0.053603763 209:0.053603763 210:0.053603763 211:0.053603763 212:0.053603763 213:0.053603763 214:0.053603763 215:0.053603763 216:0.053603763 217:0.053603763 218:0.053603763 219:0.053603763 220:0.053603763 221:0.1167 222:0.1167 223:0.1167 224:0.1167 225:0.1167 226:0.1167 227:0.1167 228:0.1167 229:0.1167 230:0.1167 231:0.1167 232:0.1167 233:0.1167 234:0.2 235:0.1833 236:0.1833 237:0.25 238:0.25 239:0.25 240:0.25 241:0.25 242:0.25 243:0.25 244:0.25 245:0.25 246:0.25 247:0.25 248:0.2667 249:0.2667 250:0.25 251:0.2667 252:0.2667 253:0.25 254:0.25 255:0.3167 256:0.3167 257:0.3167 258:0.35 259:0.35 260:0.4 261:0.55 262:0.55 263:0.55 264:0.7 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:0.9833 274:0.8333 275:0.65 276:0.4833 277:0.4833 278:0.4833 279:0.3 280:0.3167 281:0.3167 282:0.3167 283:0.3167 284:0.25 285:0.1667 286:0.15 287:0.15 288:0.15 289:0.15 290:0.15 291:0.15 292:0.15 293:0.15 294:0.15 295:0.15 296:0.15 297:0.15 298:0.15 299:0.15 300:0.15 301:0.15 302:0.15 303:0.1667 304:0.15 305:0.15 306:0.15 307:0.15 308:0.15 309:0.15 310:0.15 311:0.15 312:0.15 313:0.15 314:0.15 315:0.1667 316:0.1667 317:0.15 318:0.15 319:0.1667 320:0.15 321:0.1667 322:0.15 323:0.15 324:0.15 325:0.15 326:0.15 327:0.1667 328:0.1667 329:0.1667 330:0.15 331:0.15 332:0.15 333:0.1667 334:0.1667 335:0.1667 336:0.1667 337:0.1667 338:0.1667 339:0.15 340:0.1667 341:0.1667 342:0.1667 343:0.1667 344:0.1667 345:0.1667 346:0.1667 347:0.1667 348:0.1833 349:0.1833 350:0.1833 351:0.1833 352:0.1667 353:0.1667 354:0.1833 355:0.1833 356:0.1833 357:0.1833 358:0.1833 359:0.2 360:0.2 +0.5750544513633736 1:0.25 2:0.25 3:0.2833 4:0.2833 5:0.2833 6:0.3167 7:0.3167 8:0.3167 9:0.3667 10:0.4 11:0.4 12:0.4 13:0.4167 14:0.4 15:0.4167 16:0.4 17:0.4 18:0.4167 19:0.4167 20:0.4167 21:0.4167 22:0.3 23:0.2833 24:0.2833 25:0.2833 26:0.1 27:0.1 28:0.08333 29:0.08333 30:0.08333 31:0.08333 32:0.08333 33:0.08333 34:0.08333 35:0.08333 36:0.08333 37:0.08333 38:0.08333 39:0.1 40:0.08333 41:0.08333 42:0.08333 43:0.08333 44:0.08333 45:0.08333 46:0.08333 47:0.08333 48:0.08333 49:0.08333 50:0.08333 51:0.08333 52:0.08333 53:0.08333 54:0.08333 55:0.08333 56:0.1 57:0.08333 58:0.1 59:0.08333 60:0.08333 61:0.08333 62:0.08333 63:0.08333 64:0.08333 65:0.08333 66:0.08333 67:0.08333 68:0.08333 69:0.08333 70:0.08333 71:0.08333 72:0.08333 73:0.08333 74:0.08333 75:0.08333 76:0.08333 77:0.1 78:0.1 79:0.1 80:0.08333 81:0.08333 82:0.08333 83:0.08333 84:0.08333 85:0.08333 86:0.08333 87:0.2333 88:0.2333 89:0.2333 90:0.2333 91:0.2333 92:0.2333 93:1 94:1 95:1 96:1 97:1 98:1 99:0.9167 100:0.6833 101:0.6667 102:0.5667 103:0.55 104:0.55 105:0.55 106:0.55 107:0.45 108:0.3667 109:0.35 110:0.35 111:0.35 112:0.35 113:0.35 114:0.35 115:0.35 116:0.35 117:0.35 118:0.35 119:0.35 120:0.2167 121:0.2167 122:0.2167 123:0.2 124:0.2 125:0.2 126:0.2 127:0.2167 128:0.2 129:0.2 130:0.2167 131:0.2167 132:0.2 133:0.2 134:0.2 135:0.2167 136:0.2167 137:0.2 138:0.2 139:0.2167 140:0.2167 141:0.2 142:0.15789474 143:0.15789474 144:0.17547368 145:0.17547368 146:0.17547368 147:0.087684211 148:0.087684211 149:0.087684211 150:0.087684211 151:0.087684211 152:0.087684211 153:0.087684211 154:0.087684211 155:0.087684211 156:0.087684211 157:0.053603763 158:0.053603763 159:0.053603763 160:0.053603763 161:0.053603763 162:0.053603763 163:0.053603763 164:0.053603763 165:0.053603763 166:0.053603763 167:0.053603763 168:0.053603763 169:0.053603763 170:0.053603763 171:0.053603763 172:0.053603763 173:0.053603763 174:0.053603763 175:0.053603763 176:0.053603763 177:0.053603763 178:0.053603763 179:0.053603763 180:0.053603763 181:0.053603763 182:0.053603763 183:0.053603763 184:0.053603763 185:0.053603763 186:0.053603763 187:0.053603763 188:0.053603763 189:0.053603763 190:0.053603763 191:0.053603763 192:0.14285408 193:0.14285408 194:0.14285408 195:0.14285408 196:0.14285408 197:0.14285408 198:0.14285408 199:0.14285408 200:0.14285408 201:0.14285408 202:0.14285408 203:0.14285408 204:0.14285408 205:0.14285408 206:0.14285408 207:0.14285408 208:0.14285408 209:0.14285408 210:0.14285408 211:0.14285408 212:0.14285408 213:0.14285408 214:0.14285408 215:0.17853278 216:0.17853278 217:0.17853278 218:0.17853278 219:0.17853278 220:0.17853278 221:0.2333 222:0.2333 223:0.25 224:0.25 225:0.25 226:0.25 227:0.25 228:0.2333 229:0.2333 230:0.25 231:0.25 232:0.25 233:0.2667 234:0.2667 235:0.2667 236:0.3 237:0.3 238:0.3 239:0.3 240:0.3 241:0.3 242:0.3 243:0.3 244:0.3 245:0.3 246:0.3 247:0.3 248:0.3 249:0.3 250:0.3 251:0.3167 252:0.3167 253:0.3167 254:0.3167 255:0.3333 256:0.35 257:0.3667 258:0.4 259:0.4 260:0.4 261:0.6167 262:0.6167 263:0.7667 264:0.7833 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:0.3667 274:0.1833 275:0.1833 276:0.1833 277:0.1833 278:0.1833 279:0.1833 280:0.1833 281:0.1833 282:0.1833 283:0.1833 284:0.1833 285:0.1667 286:0.1667 287:0.1667 288:0.1667 289:0.1667 290:0.1667 291:0.1667 292:0.1667 293:0.1667 294:0.1667 295:0.1667 296:0.1667 297:0.1667 298:0.1667 299:0.1667 300:0.1667 301:0.1667 302:0.1667 303:0.1667 304:0.1667 305:0.1667 306:0.1667 307:0.1667 308:0.1667 309:0.1667 310:0.1667 311:0.1667 312:0.1667 313:0.1667 314:0.1667 315:0.1667 316:0.1667 317:0.1667 318:0.1667 319:0.1667 320:0.1667 321:0.1667 322:0.1667 323:0.1667 324:0.1667 325:0.1667 326:0.1667 327:0.1667 328:0.1667 329:0.1667 330:0.1667 331:0.1667 332:0.1667 333:0.1667 334:0.1667 335:0.1667 336:0.2 337:0.2167 338:0.2167 339:0.2167 340:0.2167 341:0.2 342:0.2167 343:0.2167 344:0.2167 345:0.2167 346:0.2167 347:0.2167 348:0.2167 349:0.2 350:0.2167 351:0.2167 352:0.2 353:0.2 354:0.2 355:0.2167 356:0.2167 357:0.2167 358:0.2167 359:0.2333 360:0.25 +0.310011314534733 1:0.1333 2:0.1333 3:0.1333 4:0.1333 5:0.1333 6:0.1333 7:0.1333 8:0.1333 9:0.1333 10:0.1333 11:0.1333 12:0.1333 13:0.1333 14:0.1333 15:0.1333 16:0.1333 17:0.1333 18:0.1333 19:0.1333 20:0.1333 21:0.1333 22:0.1333 23:0.1333 24:0.1333 25:0.1333 26:0.1333 27:0.1333 28:0.1333 29:0.1333 30:0.1667 31:0.1667 32:0.1667 33:0.1667 34:0.1667 35:0.1667 36:0.1833 37:0.1833 38:0.1667 39:0.1667 40:0.1667 41:0.1833 42:0.1833 43:0.1667 44:0.1667 45:0.1667 46:0.1833 47:0.1667 48:0.1667 49:0.1667 50:0.1667 51:0.1667 52:0.1833 53:0.1833 54:0.1833 55:0.45 56:0.45 57:0.2667 58:0.45 59:0.45 60:0.2667 61:0.2667 62:0.5167 63:0.2667 64:0.2667 65:0.4 66:0.2667 67:0.2667 68:0.3833 69:0.3833 70:0.3833 71:0.3833 72:0.3833 73:0.3833 74:0.3833 75:0.3833 76:0.3833 77:0.3833 78:0.4 79:0.5167 80:0.5167 81:0.5167 82:0.7 83:0.7 84:0.7 85:0.8667 86:0.8667 87:0.8667 88:1 89:0.5667 90:0.5667 91:0.5667 92:0.5667 93:0.5667 94:0.5667 95:0.5667 96:0.5 97:0.5 98:0.5 99:0.5 100:0.5 101:0.5 102:0.5 103:0.5 104:0.5 105:0.5 106:0.5167 107:0.6667 108:0.6667 109:0.5667 110:0.5833 111:0.5667 112:0.5667 113:0.5667 114:0.5667 115:0.4333 116:0.4167 117:0.4333 118:0.4167 119:0.4333 120:0.4167 121:0.3167 122:0.3 123:0.3 124:0.3 125:0.3 126:0.3 127:0.3 128:0.1833 129:0.1833 130:0.1833 131:0.1833 132:0.1833 133:0.1833 134:0.1833 135:0.1833 136:0.1833 137:0.1833 138:0.1833 139:0.1833 140:0.1833 141:0.1833 142:0.14031579 143:0.14031579 144:0.14031579 145:0.14031579 146:0.14031579 147:0.14031579 148:0.14031579 149:0.14031579 150:0.14031579 151:0.14031579 152:0.14031579 153:0.14031579 154:0.14031579 155:0.14031579 156:0.14031579 157:0.12496116 158:0.12496116 159:0.12496116 160:0.12496116 161:0.12496116 162:0.12496116 163:0.12496116 164:0.12496116 165:0.12496116 166:0.12496116 167:0.12496116 168:0.12496116 169:0.12496116 170:0.12496116 171:0.12496116 172:0.12496116 173:0.12496116 174:0.12496116 175:0.12496116 176:0.12496116 177:0.12496116 178:0.12496116 179:0.12496116 180:0.12496116 181:0.12496116 182:0.12496116 183:0.12496116 184:0.75003482 185:1 186:1 187:1 188:1 189:1 190:1 191:0.91074968 192:0.75003482 193:0.75003482 194:0.55353412 195:0.55353412 196:0.55353412 197:0.41071218 198:0.41071218 199:0.41071218 200:0.41071218 201:0.41071218 202:0.30356894 203:0.30356894 204:0.30356894 205:0.30356894 206:0.30356894 207:0.30356894 208:0.30356894 209:0.35714056 210:0.30356894 211:0.30356894 212:0.30356894 213:0.17853278 214:0.17853278 215:0.17853278 216:0.160747 217:0.160747 218:0.160747 219:0.160747 220:0.160747 221:0.2167 222:0.2167 223:0.2167 224:0.2167 225:0.2167 226:0.2 227:0.2 228:0.2167 229:0.2167 230:0.2167 231:0.2 232:0.2167 233:0.2167 234:0.2167 235:0.2 236:0.2167 237:0.2167 238:0.2167 239:0.2167 240:0.2 241:0.2167 242:0.2167 243:0.2 244:0.2 245:0.2167 246:0.2167 247:0.2167 248:0.2167 249:0.2167 250:0.2167 251:0.2167 252:0.2667 253:0.25 254:0.25 255:0.2667 256:0.2667 257:0.2667 258:0.2667 259:0.2667 260:0.2833 261:0.2667 262:0.2667 263:0.2667 264:0.2667 265:0.2667 266:0.3167 267:0.3167 268:0.3167 269:0.3167 270:0.3833 271:0.3833 272:0.3833 273:0.4 274:0.4 275:0.9333 276:0.95 277:0.95 278:1 279:1 280:1 281:1 282:0.3 283:0.2833 284:0.25 285:0.2333 286:0.2167 287:0.2 288:0.2 289:0.1833 290:0.1833 291:0.1833 292:0.2 293:0.2 294:0.1833 295:0.1833 296:0.2 297:0.2 298:0.2 299:0.1833 300:0.2 301:0.2 302:0.2 303:0.1833 304:0.1833 305:0.1833 306:0.2 307:0.2 308:0.1833 309:0.1833 310:0.1833 311:0.2 312:0.2 313:0.2 314:0.2 315:0.2 316:0.2 317:0.2167 318:0.2167 319:0.2167 320:0.2167 321:0.2167 322:0.25 323:0.2833 324:0.2833 325:0.2833 326:0.2833 327:0.3 328:0.2833 329:0.2833 330:0.3 331:0.2833 332:0.2833 333:0.3 334:0.2833 335:0.2833 336:0.2833 337:0.2833 338:0.2833 339:0.2833 340:0.2667 341:0.2667 342:0.2667 343:0.2667 344:0.2667 345:0.2667 346:0.2667 347:0.2667 348:0.2667 349:0.2667 350:0.2667 351:0.2667 352:0.1333 353:0.1333 354:0.1333 355:0.1333 356:0.1333 357:0.1333 358:0.1333 359:0.1333 360:0.1333 +1.596701576076699 1:0.1333 2:0.1333 3:0.1333 4:0.1333 5:0.1333 6:0.1333 7:0.1333 8:0.1333 9:0.1333 10:0.1333 11:0.1333 12:0.1333 13:0.1333 14:0.1333 15:0.1333 16:0.1333 17:0.1333 18:0.1333 19:0.1333 20:0.1333 21:0.1333 22:0.1333 23:0.15 24:0.1667 25:0.1667 26:0.1667 27:0.1667 28:0.1667 29:0.1667 30:0.1667 31:0.1667 32:0.1667 33:0.1667 34:0.1667 35:0.1667 36:0.1667 37:0.1667 38:0.1667 39:0.1667 40:0.1667 41:0.1667 42:0.1667 43:0.1667 44:0.1667 45:0.15 46:0.1667 47:0.1667 48:0.1667 49:0.1667 50:0.1667 51:0.1667 52:0.25 53:0.25 54:0.25 55:0.25 56:0.25 57:0.25 58:0.25 59:0.25 60:0.25 61:0.25 62:0.25 63:0.25 64:0.25 65:0.25 66:0.25 67:0.25 68:0.25 69:0.25 70:0.25 71:0.3667 72:0.3833 73:0.3667 74:0.3667 75:0.3667 76:0.3667 77:0.3667 78:0.5167 79:0.5167 80:0.5167 81:0.5167 82:0.5167 83:0.5333 84:0.6667 85:0.6667 86:0.6667 87:0.85 88:0.85 89:1 90:1 91:1 92:0.7667 93:0.7667 94:0.7667 95:0.7667 96:0.7667 97:0.7667 98:0.8833 99:0.8833 100:0.4667 101:0.45 102:0.45 103:0.45 104:0.45 105:0.45 106:0.45 107:0.45 108:0.45 109:0.45 110:0.45 111:0.55 112:0.55 113:0.55 114:0.55 115:0.55 116:0.55 117:0.4 118:0.4167 119:0.4 120:0.4167 121:0.4167 122:0.4167 123:0.1667 124:0.1667 125:0.1667 126:0.1667 127:0.1667 128:0.1667 129:0.1667 130:0.1667 131:0.1667 132:0.1667 133:0.1667 134:0.1667 135:0.1667 136:0.1667 137:0.1667 138:0.1667 139:0.1667 140:0.1667 141:0.1667 142:0.12284211 143:0.12284211 144:0.12284211 145:0.12284211 146:0.12284211 147:0.12284211 148:0.12284211 149:0.12284211 150:0.12284211 151:0.12284211 152:0.12284211 153:0.12284211 154:0.12284211 155:0.12284211 156:0.14031579 157:0.12496116 158:0.12496116 159:0.12496116 160:0.12496116 161:0.12496116 162:0.12496116 163:0.12496116 164:0.12496116 165:0.12496116 166:0.12496116 167:0.12496116 168:0.12496116 169:0.12496116 170:0.12496116 171:0.12496116 172:0.12496116 173:0.12496116 174:0.12496116 175:0.12496116 176:0.12496116 177:0.12496116 178:0.12496116 179:0.14285408 180:0.14285408 181:0.14285408 182:0.14285408 183:0.14285408 184:0.14285408 185:0.14285408 186:0.14285408 187:0.14285408 188:1 189:1 190:1 191:1 192:0.91074968 193:0.91074968 194:0.75003482 195:0.75003482 196:0.57142704 197:0.55353412 198:0.55353412 199:0.41071218 200:0.41071218 201:0.41071218 202:0.41071218 203:0.41071218 204:0.32146186 205:0.32146186 206:0.32146186 207:0.32146186 208:0.32146186 209:0.32146186 210:0.32146186 211:0.32146186 212:0.32146186 213:0.32146186 214:0.32146186 215:0.1964257 216:0.1964257 217:0.1964257 218:0.17853278 219:0.17853278 220:0.17853278 221:0.2333 222:0.2333 223:0.2333 224:0.2333 225:0.2333 226:0.2333 227:0.2333 228:0.2167 229:0.2167 230:0.2167 231:0.2333 232:0.2167 233:0.2167 234:0.2167 235:0.2167 236:0.2333 237:0.2167 238:0.2167 239:0.2333 240:0.2333 241:0.2167 242:0.2167 243:0.2333 244:0.2167 245:0.2167 246:0.2167 247:0.2167 248:0.2333 249:0.2333 250:0.2333 251:0.2333 252:0.2833 253:0.2667 254:0.2667 255:0.2667 256:0.2833 257:0.2833 258:0.2833 259:0.2833 260:0.3 261:0.3333 262:0.3333 263:0.3333 264:0.3333 265:0.3333 266:0.3333 267:0.3333 268:0.3333 269:0.3333 270:0.4 271:0.4 272:0.4 273:0.4 274:0.4 275:0.5667 276:0.95 277:0.95 278:1 279:1 280:1 281:1 282:0.3 283:0.2833 284:0.25 285:0.2333 286:0.2167 287:0.2 288:0.2 289:0.2 290:0.2 291:0.2 292:0.2 293:0.2 294:0.2 295:0.2167 296:0.2167 297:0.2 298:0.2 299:0.2167 300:0.2167 301:0.2 302:0.2 303:0.2 304:0.2167 305:0.2 306:0.2 307:0.2 308:0.2 309:0.2167 310:0.2167 311:0.2167 312:0.2167 313:0.2167 314:0.2167 315:0.2333 316:0.2333 317:0.2333 318:0.2667 319:0.2667 320:0.3 321:0.3 322:0.2833 323:0.3 324:0.3 325:0.2833 326:0.3 327:0.3 328:0.2833 329:0.3 330:0.3 331:0.2833 332:0.3 333:0.3 334:0.3 335:0.3 336:0.3 337:0.3167 338:0.3167 339:0.3 340:0.2667 341:0.2667 342:0.2667 343:0.2833 344:0.2667 345:0.2667 346:0.1333 347:0.1333 348:0.1333 349:0.1333 350:0.1333 351:0.1333 352:0.1333 353:0.1333 354:0.1333 355:0.1333 356:0.1333 357:0.1333 358:0.1333 359:0.1333 360:0.1333 +0.1681704381692252 1:0.2167 2:0.2167 3:0.2167 4:0.1833 5:0.1833 6:0.1833 7:0.1833 8:0.1833 9:0.1833 10:0.1833 11:0.1833 12:0.1833 13:0.1833 14:0.1833 15:0.1667 16:0.15 17:0.15 18:0.15 19:0.15 20:0.15 21:0.15 22:0.15 23:0.15 24:0.1 25:0.1 26:0.1167 27:0.1167 28:0.1167 29:0.1167 30:0.1167 31:0.1167 32:0.1167 33:0.1167 34:0.1167 35:0.1 36:0.1 37:0.1167 38:0.1167 39:0.1167 40:0.1167 41:0.1167 42:0.1167 43:0.1167 44:0.1167 45:0.1167 46:0.1167 47:0.1167 48:0.1167 49:0.1167 50:0.1167 51:0.1167 52:0.1167 53:0.1167 54:0.1167 55:0.1167 56:0.1 57:0.1 58:0.1167 59:0.1167 60:0.1167 61:0.1167 62:0.1167 63:0.1167 64:0.1167 65:0.1167 66:0.1167 67:0.1 68:0.1 69:0.5 70:0.4833 71:0.4833 72:0.4833 73:0.6667 74:0.6667 75:0.8333 76:0.8333 77:1 78:1 79:0.9667 80:0.9667 81:0.9667 82:0.9667 83:0.9667 84:0.9333 85:0.9333 86:0.8333 87:0.5167 88:0.5167 89:0.5167 90:0.45 91:0.45 92:0.45 93:0.4333 94:0.4333 95:0.4333 96:0.4333 97:0.4333 98:0.4333 99:0.4333 100:0.4333 101:0.4333 102:0.4333 103:0.35 104:0.35 105:0.35 106:0.35 107:0.35 108:0.35 109:0.35 110:0.35 111:0.35 112:0.35 113:0.35 114:0.35 115:0.35 116:0.35 117:0.35 118:0.35 119:0.45 120:0.45 121:0.45 122:0.4833 123:0.45 124:0.4833 125:0.45 126:0.45 127:0.45 128:0.35 129:0.35 130:0.35 131:0.35 132:0.35 133:0.35 134:0.35 135:0.35 136:0.35 137:0.35 138:0.35 139:0.35 140:0.35 141:0.35 142:0.33336842 143:0.33336842 144:0.33336842 145:0.33336842 146:0.33336842 147:0.33336842 148:0.33336842 149:0.33336842 150:0.33336842 151:0.33336842 152:0.33336842 153:0.33336842 154:0.33336842 155:0.33336842 156:0.33336842 157:0.33924764 158:0.35714056 159:0.37503348 160:0.39281926 161:0.6964632 162:0.7321419 163:0.7321419 164:0.87496384 165:0.85717806 166:0.85717806 167:0.87496384 168:1 169:1 170:1 171:1 172:1 173:1 174:1 175:1 176:0.98210708 177:0.98210708 178:0.98210708 179:0.87496384 180:0.87496384 181:0.67857028 182:0.67857028 183:0.67857028 184:0.48217672 185:0.48217672 186:0.48217672 187:0.48217672 188:0.48217672 189:0.26789024 190:0.28567602 191:0.28567602 192:0.160747 193:0.160747 194:0.160747 195:0.160747 196:0.160747 197:0.160747 198:0.160747 199:0.160747 200:0.160747 201:0.160747 202:0.14285408 203:0.14285408 204:0.14285408 205:0.14285408 206:0.14285408 207:0.14285408 208:0.14285408 209:0.14285408 210:0.14285408 211:0.14285408 212:0.14285408 213:0.14285408 214:0.14285408 215:0.14285408 216:0.14285408 217:0.14285408 218:0.14285408 219:0.14285408 220:0.14285408 221:0.1667 222:0.1667 223:0.1667 224:0.1667 225:0.1667 226:0.2 227:0.1667 228:0.1667 229:0.1667 230:0.1667 231:0.1667 232:0.1667 233:0.1667 234:0.1667 235:0.1833 236:0.1833 237:0.1667 238:0.1667 239:0.1667 240:0.1667 241:0.1667 242:0.1667 243:0.1667 244:0.1667 245:0.1667 246:0.1667 247:0.2833 248:0.2833 249:0.1833 250:0.1667 251:0.1667 252:0.2833 253:0.3 254:0.3167 255:0.4667 256:0.4667 257:0.4667 258:0.4667 259:0.4667 260:0.4833 261:0.65 262:0.9667 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:0.9833 273:0.9833 274:0.65 275:0.65 276:0.4833 277:0.4833 278:0.4833 279:0.4833 280:0.4833 281:0.4833 282:0.4833 283:0.35 284:0.35 285:0.35 286:0.35 287:0.35 288:0.35 289:0.35 290:0.35 291:0.35 292:0.35 293:0.35 294:0.35 295:0.35 296:0.3333 297:0.3167 298:0.2 299:0.2 300:0.2167 301:0.2167 302:0.2 303:0.2167 304:0.2167 305:0.2167 306:0.1833 307:0.1833 308:0.1833 309:0.1833 310:0.1833 311:0.1833 312:0.1833 313:0.1833 314:0.1833 315:0.1833 316:0.1833 317:0.1833 318:0.1833 319:0.1833 320:0.1833 321:0.1833 322:0.1833 323:0.1833 324:0.1833 325:0.1833 326:0.1833 327:0.1833 328:0.1833 329:0.1833 330:0.1833 331:0.1833 332:0.1833 333:0.1833 334:0.1833 335:0.1833 336:0.1833 337:0.1833 338:0.1833 339:0.2 340:0.2 341:0.1833 342:0.1833 343:0.1833 344:0.2 345:0.2 346:0.2 347:0.2 348:0.2 349:0.2 350:0.2 351:0.2 352:0.2 353:0.2 354:0.2 355:0.2 356:0.2 357:0.2 358:0.2 359:0.2167 360:0.2167 +0.02735137271749791 1:0.03333 2:0.03333 3:0.03333 4:0.03333 5:0.03333 6:0.03333 7:0.03333 8:0.03333 9:0.03333 10:0.03333 11:0.03333 12:0.03333 13:0.03333 14:0.03333 15:0.03333 16:0.03333 17:0.03333 18:0.03333 19:0.03333 20:0.03333 21:0.03333 22:0.03333 23:0.03333 24:0.03333 25:0.03333 26:0.03333 27:0.03333 28:0.03333 29:0.03333 30:0.03333 31:0.03333 32:0.03333 33:0.03333 34:0.03333 35:0.03333 36:0.01667 37:0.01667 38:0.01667 39:0.01667 40:0.01667 41:0.01667 42:0.01667 43:0.01667 44:0.01667 45:0.01667 46:0.01667 47:0.01667 48:0.01667 49:0.01667 50:0.01667 51:0.01667 52:0.01667 53:0.01667 54:0.01667 55:0.01667 56:0.01667 57:0.01667 58:0.01667 59:0.01667 60:0.01667 61:0.01667 62:0.01667 63:0.01667 64:0.01667 65:0.01667 66:0.01667 67:0.01667 68:0.01667 69:0.01667 70:0.01667 71:0.01667 72:0.01667 73:0.01667 74:0.35 75:0.3333 76:0.35 77:0.5167 78:0.5167 79:0.5167 80:0.6667 81:0.8833 82:0.9 83:1 84:0.8 85:0.8 86:0.8 87:0.8 88:0.8 89:0.8 90:0.7833 91:0.7833 92:0.6833 93:0.6833 94:0.55 95:0.55 96:0.55 97:0.4 98:0.35 99:0.35 100:0.3667 101:0.2333 102:0.2167 103:0.2167 104:0.2167 105:0.2167 106:0.2167 107:0.2 108:0.2 109:0.2 110:0.2 111:0.2 112:0.2 113:0.2 114:0.2 115:0.2167 116:0.2167 117:0.2 118:0.2 119:0.2167 120:0.2167 121:0.2 122:0.2 123:0.2 124:0.2167 125:0.2 126:0.2 127:0.2 128:0.2 129:0.2167 130:0.2167 131:0.2167 132:0.2667 133:0.25 134:0.25 135:0.25 136:0.25 137:0.25 138:0.25 139:0.25 140:0.25 141:0.25 142:0.21052632 143:0.22810526 144:0.22810526 145:0.35084211 146:0.33336842 147:0.33336842 148:0.35084211 149:0.36842105 150:0.36842105 151:0.36842105 152:0.386 153:0.36842105 154:0.28073684 155:0.28073684 156:0.28073684 157:0.26789024 158:0.26789024 159:0.26789024 160:0.26789024 161:0.26789024 162:0.26789024 163:0.26789024 164:0.26789024 165:0.26789024 166:0.26789024 167:0.26789024 168:0.30356894 169:0.30356894 170:0.30356894 171:0.30356894 172:0.30356894 173:0.30356894 174:0.30356894 175:0.30356894 176:0.30356894 177:0.30356894 178:0.30356894 179:0.30356894 180:0.35714056 181:0.35714056 182:0.35714056 183:1 184:1 185:1 186:1 187:0.9643213 188:0.94642838 189:0.94642838 190:0.94642838 191:0.94642838 192:0.94642838 193:0.94642838 194:0.75003482 195:0.75003482 196:0.75003482 197:0.75003482 198:0.75003482 199:0.75003482 200:0.57142704 201:0.57142704 202:0.57142704 203:0.57142704 204:0.57142704 205:0.57142704 206:0.57142704 207:0.57142704 208:0.57142704 209:0.51785542 210:0.39281926 211:0.37503348 212:0.39281926 213:0.37503348 214:0.39281926 215:0.37503348 216:0.28567602 217:0.28567602 218:0.28567602 219:0.28567602 220:0.28567602 221:0.35 222:0.3333 223:0.3333 224:0.3333 225:0.3333 226:0.3167 227:0.3333 228:0.2833 229:0.2833 230:0.2833 231:0.2833 232:0.2833 233:0.2833 234:0.2833 235:0.2833 236:0.2833 237:0.2833 238:0.2833 239:0.2833 240:0.2833 241:0.2833 242:0.2833 243:0.2833 244:0.2833 245:0.2833 246:0.3 247:0.3 248:0.3333 249:0.3333 250:0.3333 251:0.3333 252:0.3333 253:0.3833 254:0.35 255:0.3333 256:0.3833 257:0.3833 258:0.3833 259:0.3833 260:0.3833 261:0.8 262:0.8 263:0.9833 264:0.9833 265:0.9833 266:0.9833 267:1 268:1 269:1 270:1 271:1 272:0.8 273:0.8 274:0.6167 275:0.6167 276:0.4667 277:0.4667 278:0.4667 279:0.3 280:0.3167 281:0.3167 282:0.3167 283:0.2833 284:0.2833 285:0.2833 286:0.2833 287:0.2667 288:0.2667 289:0.2667 290:0.2833 291:0.2667 292:0.2667 293:0.2667 294:0.2667 295:0.2667 296:0.25 297:0.25 298:0.2667 299:0.2667 300:0.25 301:0.2667 302:0.2667 303:0.2667 304:0.2667 305:0.25 306:0.01667 307:0.01667 308:0.01667 309:0.01667 310:0.01667 311:0.01667 312:0.01667 313:0.01667 314:0.01667 315:0.01667 316:0.01667 317:0.01667 318:0.01667 319:0.01667 320:0.01667 321:0.01667 322:0.01667 323:0.01667 324:0.01667 325:0.01667 326:0.01667 327:0.01667 328:0.01667 329:0.01667 330:0.01667 331:0.01667 332:0.01667 333:0.01667 334:0.01667 335:0.01667 336:0.01667 337:0.01667 338:0.01667 339:0.01667 340:0.01667 341:0.01667 342:0.01667 343:0.01667 344:0.03333 345:0.03333 346:0.03333 347:0.03333 348:0.03333 349:0.03333 350:0.03333 351:0.03333 352:0.03333 353:0.03333 354:0.03333 355:0.03333 356:0.03333 357:0.03333 358:0.03333 359:0.03333 360:0.03333 +0.01952115546713023 1:0.4167 2:0.4167 3:0.4167 4:0.4167 5:0.4167 6:0.4167 7:0.4167 8:0.4167 9:0.4167 10:0.4167 11:0.4333 12:0.3 13:0.2833 14:0.2667 15:0.2667 16:0.2667 17:0.2667 18:0.2667 19:0.2667 20:0.2667 21:0.2667 22:0.25 23:0.25 24:0.25 25:0.25 26:0.25 27:0.25 28:0.2333 29:0.2333 30:0.2167 31:0.2167 32:0.2167 33:0.2 34:0.2 35:0.2 36:0.1833 37:0.1833 38:0.2 39:0.2 40:0.2 41:0.2 42:0.2 43:0.2 44:0.2 45:0.2 46:0.2 47:0.2 48:0.2 49:0.2 50:0.2 51:0.2 52:0.2 53:0.2 54:0.2 55:0.1833 56:0.1833 57:0.2 58:0.2 59:0.2 60:0.2167 61:0.2167 62:0.2167 63:0.2167 64:0.2167 65:0.2167 66:0.2167 67:0.2167 68:0.2167 69:0.2167 70:0.2167 71:0.2167 72:0.2833 73:0.2667 74:0.2667 75:0.2667 76:0.2833 77:0.2833 78:0.2833 79:0.2833 80:0.4333 81:0.4333 82:0.4333 83:0.4333 84:0.4333 85:0.4333 86:0.45 87:0.45 88:0.4667 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:0.9167 97:0.7833 98:0.6333 99:0.6333 100:0.6333 101:0.4333 102:0.4333 103:0.4333 104:0.4333 105:0.4333 106:0.4333 107:0.4333 108:0.4333 109:0.3 110:0.3 111:0.3 112:0.3 113:0.3 114:0.3 115:0.3 116:0.3 117:0.2833 118:0.08333 119:0.08333 120:0.08333 121:0.08333 122:0.08333 123:0.08333 124:0.08333 125:0.08333 126:0.08333 127:0.08333 128:0.08333 129:0.1 130:0.08333 131:0.08333 132:0.08333 133:0.08333 134:0.08333 135:0.08333 136:0.08333 137:0.1 138:0.1 139:0.1 140:0.08333 141:0.08333 142:0.035084211 143:0.035084211 144:0.035084211 145:0.035084211 146:0.052631579 147:0.052631579 148:0.052631579 149:0.035084211 150:0.035084211 151:0.035084211 152:0.035084211 153:0.035084211 154:0.035084211 155:0.035084211 156:0.035084211 157:0.017850064 158:0.017850064 159:0.017850064 160:0.017850064 161:0.017850064 162:0.017850064 163:0.017850064 164:0.017850064 165:0.017850064 166:0.035710842 167:0.035710842 168:0.035710842 169:0.053603763 170:0.053603763 171:0.035710842 172:0.035710842 173:0.035710842 174:0.035710842 175:0.035710842 176:0.035710842 177:0.053603763 178:0.089282462 179:0.089282462 180:0.089282462 181:0.089282462 182:0.089282462 183:0.089282462 184:0.089282462 185:0.089282462 186:0.089282462 187:0.089282462 188:0.089282462 189:0.089282462 190:0.089282462 191:0.089282462 192:0.089282462 193:0.089282462 194:0.089282462 195:0.089282462 196:0.089282462 197:0.089282462 198:0.089282462 199:0.089282462 200:0.089282462 201:0.12496116 202:0.12496116 203:0.1964257 204:0.1964257 205:0.21431862 206:0.21431862 207:0.2321044 208:0.2321044 209:0.2321044 210:0.2321044 211:0.12496116 212:0.12496116 213:0.10717538 214:0.10717538 215:0.10717538 216:0.10717538 217:0.10717538 218:0.10717538 219:0.10717538 220:0.10717538 221:0.1667 222:0.1667 223:0.1667 224:0.1667 225:0.1667 226:0.1667 227:0.1667 228:0.1667 229:0.1667 230:0.1667 231:0.1667 232:0.1667 233:0.1667 234:0.1667 235:0.1667 236:0.1667 237:0.1667 238:0.1667 239:0.1667 240:0.1833 241:0.1833 242:0.3 243:0.3 244:0.3 245:0.3 246:0.3 247:0.3 248:0.3 249:0.3 250:0.3 251:0.3 252:0.3 253:0.3 254:0.4167 255:0.4167 256:0.4167 257:0.4167 258:0.4167 259:0.4333 260:0.55 261:0.55 262:0.6833 263:0.6833 264:0.75 265:1 266:1 267:1 268:1 269:1 270:1 271:0.5833 272:0.5833 273:0.5833 274:0.5833 275:0.5833 276:0.5833 277:0.4167 278:0.4167 279:0.4167 280:0.4167 281:0.2333 282:0.2333 283:0.2333 284:0.2333 285:0.2333 286:0.2333 287:0.2333 288:0.2333 289:0.2333 290:0.2333 291:0.2333 292:0.2333 293:0.2333 294:0.2333 295:0.2333 296:0.2333 297:0.2333 298:0.2333 299:0.2333 300:0.2167 301:0.2167 302:0.2167 303:0.2167 304:0.2167 305:0.2167 306:0.2167 307:0.2167 308:0.2167 309:0.2167 310:0.2167 311:0.2167 312:0.2167 313:0.2167 314:0.2167 315:0.2167 316:0.2167 317:0.2167 318:0.2167 319:0.2167 320:0.2167 321:0.2167 322:0.2167 323:0.2167 324:0.2167 325:0.2167 326:0.2167 327:0.2167 328:0.2167 329:0.2167 330:0.2167 331:0.2167 332:0.2167 333:0.3667 334:0.3667 335:0.3667 336:0.3667 337:0.3667 338:0.3667 339:0.4333 340:0.4333 341:0.4333 342:0.4333 343:0.4333 344:0.4333 345:0.45 346:0.4833 347:0.5333 348:0.55 349:0.55 350:0.5667 351:0.5667 352:1 353:1 354:1 355:1 356:1 357:1 358:0.4333 359:0.4333 360:0.4167 +1.121679920396747 1:0.5167 2:0.5167 3:0.5167 4:0.5333 5:0.5333 6:0.5333 7:0.5333 8:0.5833 9:1 10:1 11:1 12:1 13:1 14:1 15:1 16:1 17:1 18:1 19:1 20:1 21:0.7 22:0.7 23:0.6833 24:0.6833 25:0.6833 26:0.6833 27:0.6833 28:0.6833 29:0.6833 30:1 31:1 32:1 33:1 34:1 35:1 36:1 37:0.2667 38:0.2667 39:0.2667 40:0.2667 41:0.2667 42:0.2667 43:0.2667 44:0.2667 45:0.2667 46:0.2667 47:0.2667 48:0.2667 49:0.2667 50:0.2333 51:0.2333 52:0.2333 53:0.2333 54:0.2333 55:0.2167 56:0.2333 57:0.2333 58:0.2333 59:0.2333 60:0.2333 61:0.2333 62:0.2333 63:0.2333 64:0.2333 65:0.2333 66:0.2333 67:0.2333 68:0.2333 69:0.2333 70:0.2333 71:0.2333 72:0.2333 73:0.2333 74:0.4167 75:0.4333 76:0.4167 77:0.3333 78:0.3333 79:0.3333 80:0.3333 81:0.3333 82:0.3333 83:0.3333 84:0.3333 85:0.3333 86:0.2667 87:0.2667 88:0.2667 89:0.2667 90:0.2667 91:0.2667 92:0.2667 93:0.2667 94:0.2667 95:0.2667 96:0.2667 97:0.2667 98:0.2667 99:0.2667 100:0.2667 101:0.2667 102:0.2667 103:0.2833 104:0.2833 105:0.2833 106:0.3 107:0.3 108:0.45 109:0.45 110:0.45 111:0.45 112:0.45 113:0.5833 114:0.5833 115:0.5833 116:0.7833 117:0.7 118:0.8833 119:1 120:1 121:1 122:1 123:1 124:1 125:1 126:1 127:1 128:0.85 129:0.7333 130:0.7333 131:0.5833 132:0.5667 133:0.5167 134:0.5167 135:0.35 136:0.3167 137:0.3333 138:0.25 139:0.25 140:0.2333 141:0.2333 142:0.19294737 143:0.19294737 144:0.19294737 145:0.19294737 146:0.19294737 147:0.19294737 148:0.19294737 149:0.19294737 150:0.19294737 151:0.19294737 152:0.19294737 153:0.19294737 154:0.19294737 155:0.19294737 156:0.19294737 157:0.17853278 158:0.17853278 159:0.1964257 160:0.1964257 161:0.21431862 162:0.1964257 163:0.1964257 164:0.17853278 165:0.17853278 166:0.17853278 167:0.17853278 168:0.17853278 169:0.17853278 170:0.17853278 171:0.17853278 172:0.17853278 173:0.17853278 174:0.17853278 175:0.17853278 176:0.17853278 177:0.17853278 178:0.17853278 179:0.17853278 180:0.17853278 181:0.17853278 182:0.17853278 183:0.17853278 184:0.089282462 185:0.089282462 186:0.089282462 187:0.089282462 188:0.089282462 189:0.089282462 190:0.089282462 191:0.089282462 192:0.089282462 193:0.089282462 194:0.089282462 195:0.10717538 196:0.089282462 197:0.089282462 198:0.089282462 199:0.089282462 200:0.10717538 201:0.10717538 202:0.089282462 203:0.089282462 204:0.089282462 205:0.089282462 206:0.10717538 207:0.089282462 208:0.089282462 209:0.089282462 210:0.089282462 211:0.089282462 212:0.089282462 213:0.089282462 214:0.10717538 215:0.10717538 216:0.1964257 217:0.1964257 218:0.1964257 219:0.1964257 220:0.1964257 221:0.25 222:0.25 223:0.25 224:0.2667 225:0.25 226:0.25 227:0.25 228:0.2667 229:0.2667 230:0.2667 231:0.2833 232:0.2833 233:0.2833 234:0.3 235:0.3 236:0.3 237:0.2333 238:0.2333 239:0.2333 240:0.2333 241:0.2333 242:0.2333 243:0.2333 244:0.2333 245:0.2333 246:0.2333 247:0.2333 248:0.2333 249:0.2333 250:0.2333 251:0.2333 252:0.2333 253:0.2333 254:0.2333 255:0.2333 256:0.2333 257:0.2333 258:0.35 259:0.35 260:0.3667 261:0.3667 262:0.3667 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:0.8667 286:0.8667 287:0.5667 288:0.55 289:0.4 290:0.3833 291:0.3833 292:0.3833 293:0.3833 294:0.3833 295:0.3833 296:0.3833 297:0.3833 298:0.3833 299:0.3667 300:0.3667 301:0.3667 302:0.3667 303:0.3667 304:0.3667 305:0.3667 306:0.3667 307:0.35 308:0.35 309:0.2833 310:0.2833 311:0.2833 312:0.2667 313:0.2833 314:0.2833 315:0.2667 316:0.2833 317:0.2833 318:0.2833 319:0.2833 320:0.2833 321:0.2833 322:0.2833 323:0.2833 324:0.2333 325:0.2167 326:0.2167 327:0.2167 328:0.2167 329:0.2167 330:0.2167 331:0.2167 332:0.2167 333:0.2167 334:0.2167 335:0.2167 336:0.2167 337:0.2167 338:0.2167 339:0.2167 340:0.2167 341:0.2167 342:0.2167 343:0.2167 344:0.2167 345:0.2167 346:0.2167 347:0.2167 348:0.2167 349:0.2167 350:0.2167 351:0.2333 352:1 353:0.5167 354:0.5167 355:0.5167 356:0.5167 357:0.5167 358:0.5167 359:0.5167 360:0.5167 +0.3927186106688205 1:0.5167 2:0.5167 3:0.5167 4:0.55 5:0.55 6:1 7:1 8:1 9:1 10:1 11:1 12:1 13:1 14:1 15:1 16:1 17:0.8167 18:0.8167 19:0.6667 20:0.6667 21:0.6667 22:0.6667 23:0.6667 24:0.6667 25:0.6667 26:0.6667 27:0.6667 28:1 29:1 30:1 31:1 32:1 33:0.8 34:0.5333 35:0.25 36:0.25 37:0.25 38:0.25 39:0.25 40:0.25 41:0.25 42:0.25 43:0.25 44:0.25 45:0.25 46:0.25 47:0.25 48:0.25 49:0.25 50:0.25 51:0.2167 52:0.2167 53:0.2167 54:0.2167 55:0.2167 56:0.2167 57:0.2167 58:0.2167 59:0.2167 60:0.2167 61:0.2167 62:0.2167 63:0.2167 64:0.2167 65:0.2167 66:0.2167 67:0.2167 68:0.2167 69:0.2167 70:0.2167 71:0.2167 72:0.3833 73:0.4 74:0.4167 75:0.4167 76:0.4167 77:0.4167 78:0.4167 79:0.4333 80:0.4333 81:0.4333 82:0.4833 83:0.4833 84:0.4833 85:0.4833 86:0.2667 87:0.2667 88:0.2667 89:0.2667 90:0.2667 91:0.2667 92:0.2667 93:0.2667 94:0.2667 95:0.2667 96:0.2667 97:0.2667 98:0.2667 99:0.2667 100:0.2667 101:0.2667 102:0.2667 103:0.2667 104:0.2667 105:0.2667 106:0.2667 107:0.3 108:0.45 109:0.45 110:0.45 111:0.45 112:0.45 113:0.5833 114:0.5833 115:0.7667 116:0.7833 117:0.8667 118:1 119:1 120:1 121:1 122:1 123:1 124:1 125:1 126:1 127:0.75 128:0.75 129:0.75 130:0.5667 131:0.5667 132:0.55 133:0.55 134:0.5 135:0.5 136:0.5 137:0.4333 138:0.4333 139:0.4333 140:0.3667 141:0.25 142:0.21052632 143:0.21052632 144:0.21052632 145:0.21052632 146:0.21052632 147:0.21052632 148:0.21052632 149:0.21052632 150:0.21052632 151:0.21052632 152:0.21052632 153:0.21052632 154:0.21052632 155:0.21052632 156:0.21052632 157:0.1964257 158:0.1964257 159:0.1964257 160:0.1964257 161:0.21431862 162:0.21431862 163:0.21431862 164:0.21431862 165:0.21431862 166:0.21431862 167:0.21431862 168:0.21431862 169:0.1964257 170:0.1964257 171:0.1964257 172:0.1964257 173:0.1964257 174:0.1964257 175:0.1964257 176:0.1964257 177:0.1964257 178:0.1964257 179:0.1964257 180:0.1964257 181:0.1964257 182:0.1964257 183:0.1964257 184:0.1964257 185:0.1964257 186:0.1964257 187:0.1964257 188:0.1964257 189:0.10717538 190:0.10717538 191:0.12496116 192:0.12496116 193:0.12496116 194:0.12496116 195:0.12496116 196:0.12496116 197:0.12496116 198:0.12496116 199:0.12496116 200:0.12496116 201:0.12496116 202:0.12496116 203:0.12496116 204:0.12496116 205:0.12496116 206:0.12496116 207:0.12496116 208:0.12496116 209:0.12496116 210:0.10717538 211:0.10717538 212:0.12496116 213:0.12496116 214:0.12496116 215:0.12496116 216:0.12496116 217:0.12496116 218:0.21431862 219:0.21431862 220:0.24999732 221:0.2833 222:0.2833 223:0.3 224:0.2833 225:0.2833 226:0.3 227:0.2833 228:0.2833 229:0.2833 230:0.3 231:0.3 232:0.3 233:0.25 234:0.25 235:0.25 236:0.25 237:0.25 238:0.25 239:0.25 240:0.25 241:0.25 242:0.25 243:0.25 244:0.25 245:0.25 246:0.25 247:0.25 248:0.25 249:0.25 250:0.25 251:0.3667 252:0.3667 253:0.3667 254:0.3667 255:0.3667 256:0.3667 257:0.3667 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:0.6667 276:0.6667 277:0.65 278:0.65 279:0.65 280:0.65 281:0.65 282:0.65 283:0.55 284:0.4 285:0.3833 286:0.3833 287:0.3833 288:0.3833 289:0.3833 290:0.3833 291:0.3833 292:0.3833 293:0.3833 294:0.3667 295:0.3667 296:0.3667 297:0.3667 298:0.3667 299:0.3667 300:0.3667 301:0.3667 302:0.2833 303:0.2667 304:0.2667 305:0.2667 306:0.2667 307:0.2667 308:0.2667 309:0.2667 310:0.2667 311:0.2167 312:0.2167 313:0.2167 314:0.2167 315:0.2167 316:0.2 317:0.2 318:0.2 319:0.2 320:0.2 321:0.2 322:0.2 323:0.2 324:0.2 325:0.2 326:0.2 327:0.2 328:0.2 329:0.2 330:0.2 331:0.2 332:0.2 333:0.2 334:0.2 335:0.2 336:0.2 337:0.2 338:0.2 339:0.2 340:0.2 341:0.2167 342:1 343:1 344:1 345:1 346:0.5167 347:0.5 348:0.5 349:0.5 350:0.5 351:0.5 352:0.5 353:0.5 354:0.5 355:0.5 356:0.5 357:0.5 358:0.5 359:0.5167 360:0.5167 +0.5590978160550186 1:0.1333 2:0.1333 3:0.1333 4:0.1333 5:0.1333 6:0.1333 7:0.1333 8:0.1333 9:0.1333 10:0.1333 11:0.1333 12:0.1333 13:0.1333 14:0.1333 15:0.1333 16:0.1333 17:0.1333 18:0.1333 19:0.1333 20:0.1333 21:0.1333 22:0.1333 23:0.1333 24:0.1333 25:0.1333 26:0.1333 27:0.1333 28:0.1333 29:0.1333 30:0.3333 31:0.3333 32:0.3333 33:0.3333 34:0.2333 35:0.2333 36:0.2167 37:0.2167 38:0.2167 39:0.2167 40:0.2167 41:0.2167 42:0.2167 43:0.2167 44:0.2167 45:0.2167 46:0.2167 47:0.2167 48:0.2167 49:0.2167 50:0.2167 51:0.2167 52:0.2167 53:0.2167 54:0.2167 55:0.2167 56:0.2167 57:0.2333 58:0.2333 59:0.35 60:0.35 61:0.35 62:0.35 63:0.35 64:0.35 65:0.35 66:0.35 67:0.35 68:0.35 69:0.35 70:0.35 71:0.3833 72:0.3833 73:0.3833 74:0.3833 75:0.3833 76:0.6167 77:0.6167 78:0.75 79:0.75 80:0.75 81:1 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:0.45 91:0.45 92:0.45 93:0.25 94:0.25 95:0.25 96:0.25 97:0.25 98:0.25 99:0.25 100:0.25 101:0.25 102:0.25 103:0.25 104:0.25 105:0.2333 106:0.2333 107:0.2333 108:0.2333 109:0.2333 110:0.2333 111:0.2333 112:0.2333 113:0.2333 114:0.2333 115:0.2333 116:0.2333 117:0.2333 118:0.2333 119:0.2333 120:0.2333 121:0.2333 122:0.2333 123:0.2333 124:0.2333 125:0.2333 126:0.2333 127:0.2167 128:0.2333 129:0.2333 130:0.2333 131:0.2333 132:0.2333 133:0.2333 134:0.2333 135:0.2333 136:0.2333 137:0.2333 138:0.2333 139:0.2333 140:0.25 141:0.25 142:0.21052632 143:0.21052632 144:0.21052632 145:0.21052632 146:0.21052632 147:0.21052632 148:0.21052632 149:0.21052632 150:0.21052632 151:0.21052632 152:0.31578947 153:0.21052632 154:0.21052632 155:0.36842105 156:0.22810526 157:0.21431862 158:0.35714056 159:0.35714056 160:0.35714056 161:0.35714056 162:0.35714056 163:0.35714056 164:0.4999625 165:0.4999625 166:0.51785542 167:0.62499866 168:0.60710574 169:0.7321419 170:0.91074968 171:0.91074968 172:0.92853546 173:1 174:1 175:1 176:1 177:1 178:1 179:1 180:0.33924764 181:0.33924764 182:0.33924764 183:0.17853278 184:0.17853278 185:0.17853278 186:0.17853278 187:0.17853278 188:0.17853278 189:0.17853278 190:0.17853278 191:0.17853278 192:0.17853278 193:0.17853278 194:0.12496116 195:0.12496116 196:0.12496116 197:0.12496116 198:0.12496116 199:0.12496116 200:0.12496116 201:0.10717538 202:0.10717538 203:0.089282462 204:0.089282462 205:0.089282462 206:0.071389541 207:0.071389541 208:0.071389541 209:0.071389541 210:0.071389541 211:0.071389541 212:0.071389541 213:0.071389541 214:0.071389541 215:0.071389541 216:0.071389541 217:0.071389541 218:0.071389541 219:0.071389541 220:0.071389541 221:0.1333 222:0.1333 223:0.1333 224:0.1333 225:0.1333 226:0.1333 227:0.1333 228:0.1333 229:0.1333 230:0.1333 231:0.1333 232:0.1333 233:0.1333 234:0.1333 235:0.1333 236:0.1333 237:0.1333 238:0.1333 239:0.15 240:0.15 241:0.15 242:0.15 243:0.15 244:0.15 245:0.15 246:0.15 247:0.15 248:0.15 249:0.15 250:0.15 251:0.15 252:0.15 253:0.15 254:0.15 255:0.15 256:0.15 257:0.1667 258:0.2167 259:0.2 260:0.2167 261:0.2167 262:0.2 263:0.2 264:0.2 265:0.3333 266:0.3333 267:0.35 268:0.3833 269:0.3833 270:1 271:1 272:0.55 273:0.55 274:0.55 275:0.55 276:0.5333 277:0.5333 278:0.5333 279:0.5333 280:0.5333 281:0.5333 282:0.5333 283:0.5333 284:0.5333 285:0.6 286:0.6 287:0.4167 288:0.5833 289:0.4167 290:0.4167 291:0.4167 292:0.4167 293:0.4167 294:0.4167 295:0.3833 296:0.3833 297:0.3833 298:0.3833 299:0.3667 300:0.3667 301:0.35 302:0.35 303:0.35 304:0.35 305:0.35 306:0.35 307:0.35 308:0.35 309:0.35 310:0.35 311:0.35 312:0.35 313:0.35 314:0.4333 315:0.4333 316:0.1667 317:0.15 318:0.1667 319:0.1667 320:0.1667 321:0.1667 322:0.1667 323:0.1667 324:0.1667 325:0.1667 326:0.1667 327:0.1667 328:0.1667 329:0.1667 330:0.1667 331:0.1667 332:0.1667 333:0.1667 334:0.1667 335:0.1667 336:0.1667 337:0.1667 338:0.1667 339:0.15 340:0.1667 341:0.1667 342:0.15 343:0.15 344:0.15 345:0.15 346:0.15 347:0.15 348:0.15 349:0.15 350:0.15 351:0.15 352:0.1333 353:0.1333 354:0.1333 355:0.1333 356:0.1333 357:0.1333 358:0.1333 359:0.1333 360:0.1333 +0.2424910957736602 1:0.3833 2:0.3833 3:0.3833 4:0.3833 5:0.1167 6:0.1167 7:0.1167 8:0.1167 9:0.1167 10:0.1167 11:0.1167 12:0.1167 13:0.1167 14:0.1167 15:0.1167 16:0.1333 17:0.1333 18:0.4 19:0.4 20:0.1167 21:0.1167 22:0.1333 23:0.1333 24:0.4 25:0.3 26:0.3167 27:0.1167 28:0.1167 29:0.1167 30:0.1333 31:0.3167 32:0.3 33:0.1167 34:0.1167 35:0.1167 36:0.1167 37:0.1167 38:0.1167 39:0.1167 40:0.2 41:0.2 42:0.2 43:0.2 44:0.2 45:0.2 46:0.2 47:0.2 48:0.2 49:0.2 50:0.2 51:0.2 52:0.2 53:0.2 54:0.2 55:0.1833 56:0.1833 57:0.3167 58:0.3167 59:0.3167 60:0.3167 61:0.3167 62:0.3167 63:0.3167 64:0.3167 65:0.3167 66:0.3167 67:0.3167 68:0.3167 69:0.3167 70:0.3167 71:0.3167 72:0.3333 73:0.45 74:0.4667 75:0.45 76:0.45 77:0.45 78:0.5833 79:0.6 80:0.7167 81:0.7167 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:0.7833 93:0.7833 94:0.6 95:0.4333 96:0.4333 97:0.2333 98:0.2333 99:0.2333 100:0.2333 101:0.2333 102:0.2333 103:0.25 104:0.25 105:0.2333 106:0.25 107:0.25 108:0.25 109:0.2333 110:0.2333 111:0.2333 112:0.2333 113:0.2333 114:0.2333 115:0.2167 116:0.2167 117:0.2167 118:0.2167 119:0.2333 120:0.2167 121:0.2167 122:0.2167 123:0.2167 124:0.2167 125:0.2167 126:0.2167 127:0.2167 128:0.2167 129:0.2167 130:0.2167 131:0.2167 132:0.2167 133:0.2167 134:0.2167 135:0.2167 136:0.2167 137:0.2167 138:0.2167 139:0.2167 140:0.2167 141:0.2167 142:0.19294737 143:0.19294737 144:0.19294737 145:0.21052632 146:0.21052632 147:0.21052632 148:0.22810526 149:0.22810526 150:0.22810526 151:0.22810526 152:0.22810526 153:0.22810526 154:0.28073684 155:0.28073684 156:0.29821053 157:0.30356894 158:0.32146186 159:0.33924764 160:0.35714056 161:0.37503348 162:0.37503348 163:0.37503348 164:0.37503348 165:0.37503348 166:0.37503348 167:0.37503348 168:0.37503348 169:0.58931996 170:0.62499866 171:0.6964632 172:0.78571352 173:0.89285676 174:0.9643213 175:1 176:1 177:0.75003482 178:0.75003482 179:0.75003482 180:0.75003482 181:0.75003482 182:0.53574834 183:0.1964257 184:0.1964257 185:0.1964257 186:0.1964257 187:0.17853278 188:0.17853278 189:0.17853278 190:0.17853278 191:0.17853278 192:0.17853278 193:0.1964257 194:0.1964257 195:0.17853278 196:0.1964257 197:0.14285408 198:0.14285408 199:0.14285408 200:0.14285408 201:0.14285408 202:0.14285408 203:0.14285408 204:0.12496116 205:0.12496116 206:0.12496116 207:0.10717538 208:0.10717538 209:0.10717538 210:0.089282462 211:0.089282462 212:0.089282462 213:0.10717538 214:0.10717538 215:0.10717538 216:0.089282462 217:0.089282462 218:0.10717538 219:0.10717538 220:0.10717538 221:0.1667 222:0.15 223:0.1667 224:0.1667 225:0.1667 226:0.1667 227:0.1667 228:0.15 229:0.1667 230:0.1667 231:0.1667 232:0.15 233:0.15 234:0.15 235:0.1667 236:0.1667 237:0.1667 238:0.1667 239:0.1667 240:0.1833 241:0.1667 242:0.1833 243:0.2 244:0.1833 245:0.1833 246:0.1667 247:0.2333 248:0.2333 249:0.1833 250:0.1667 251:0.1667 252:0.2333 253:0.2333 254:0.2333 255:0.2333 256:0.2333 257:0.2333 258:0.2333 259:0.2333 260:0.2333 261:0.2333 262:0.3667 263:0.3833 264:0.3667 265:0.4 266:0.55 267:0.7 268:0.8333 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:0.9167 278:0.7667 279:0.7667 280:0.7667 281:0.6167 282:0.6167 283:0.6167 284:0.6167 285:0.5833 286:0.5833 287:0.5667 288:0.5333 289:0.5167 290:0.4833 291:0.4667 292:0.4333 293:0.2833 294:0.2833 295:0.2667 296:0.2667 297:0.2833 298:0.2667 299:0.2667 300:0.2833 301:0.2833 302:0.2667 303:0.2833 304:0.2833 305:0.2667 306:0.2833 307:0.2833 308:0.2667 309:0.2667 310:0.25 311:0.1667 312:0.1667 313:0.1667 314:0.1667 315:0.1667 316:0.25 317:0.1667 318:0.1667 319:0.1667 320:0.2333 321:0.2333 322:0.1667 323:0.1667 324:0.1667 325:0.2333 326:0.2333 327:0.1667 328:0.1667 329:0.1667 330:0.1667 331:0.1667 332:0.1667 333:0.1667 334:0.1667 335:0.1667 336:0.2333 337:0.2333 338:0.2333 339:0.2333 340:0.2333 341:0.2333 342:0.2333 343:0.2333 344:0.2333 345:0.2333 346:0.2333 347:0.2333 348:0.25 349:0.3167 350:0.3167 351:0.3167 352:0.3167 353:0.3167 354:0.3167 355:0.3167 356:0.3167 357:0.3833 358:0.3833 359:0.3833 360:0.3833 +0.1791208155313824 1:1 2:1 3:1 4:1 5:1 6:1 7:1 8:1 9:1 10:1 11:1 12:1 13:0.5167 14:0.5167 15:0.5167 16:0.5167 17:0.5 18:0.3833 19:0.3833 20:0.3833 21:0.3833 22:0.3833 23:0.3833 24:0.3833 25:0.3833 26:0.3833 27:0.3833 28:0.3833 29:0.5167 30:0.5 31:0.5 32:0.3333 33:0.3333 34:0.3167 35:0.2833 36:0.2833 37:0.3167 38:0.2833 39:0.2833 40:0.2833 41:0.2833 42:0.2833 43:0.2833 44:0.2833 45:0.2833 46:0.2833 47:0.2667 48:0.2667 49:0.2667 50:0.2667 51:0.2667 52:0.2667 53:0.2667 54:0.15 55:0.15 56:0.1333 57:0.1333 58:0.1333 59:0.1333 60:0.1333 61:0.1333 62:0.1333 63:0.15 64:0.15 65:0.1333 66:0.1333 67:0.1333 68:0.1333 69:0.15 70:0.15 71:0.15 72:0.1333 73:0.1333 74:0.1333 75:0.15 76:0.15 77:0.15 78:0.1333 79:0.1333 80:0.1333 81:0.1333 82:0.1333 83:0.1333 84:0.1333 85:0.1333 86:0.1333 87:0.1333 88:0.1333 89:0.1333 90:0.1333 91:0.1333 92:0.1333 93:0.1333 94:0.1333 95:0.1333 96:0.08333 97:0.08333 98:0.08333 99:0.08333 100:0.08333 101:0.08333 102:0.08333 103:0.1 104:0.1 105:0.1 106:0.08333 107:0.1 108:0.1 109:0.1 110:0.1 111:0.1 112:0.1 113:0.1 114:0.1 115:0.1 116:0.1 117:0.1 118:0.1 119:0.1 120:0.1 121:0.1 122:0.1 123:0.1 124:0.1 125:0.08333 126:0.1 127:0.1 128:0.1 129:0.1 130:0.1 131:0.1 132:0.1 133:0.08333 134:0.08333 135:0.08333 136:0.08333 137:0.08333 138:0.08333 139:0.08333 140:0.1 141:0.1 142:0.052631579 143:0.052631579 144:0.052631579 145:0.052631579 146:0.070210526 147:0.070210526 148:0.070210526 149:0.070210526 150:0.070210526 151:0.070210526 152:0.070210526 153:0.070210526 154:0.070210526 155:0.070210526 156:0.070210526 157:0.035710842 158:0.035710842 159:0.053603763 160:0.053603763 161:0.053603763 162:0.053603763 163:0.053603763 164:0.053603763 165:0.053603763 166:0.053603763 167:0.053603763 168:0.053603763 169:0.053603763 170:0.071389541 171:0.071389541 172:0.089282462 173:0.89285676 174:0.89285676 175:1 176:1 177:1 178:1 179:1 180:1 181:0.7321419 182:0.7321419 183:0.71424898 184:0.71424898 185:0.71424898 186:0.51785542 187:0.51785542 188:0.51785542 189:0.51785542 190:0.51785542 191:0.51785542 192:0.51785542 193:0.51785542 194:0.71424898 195:0.71424898 196:0.57142704 197:0.57142704 198:0.57142704 199:0.57142704 200:0.57142704 201:0.57142704 202:0.57142704 203:0.57142704 204:0.57142704 205:0.57142704 206:0.64289158 207:0.64289158 208:0.64289158 209:0.58931996 210:0.28567602 211:0.28567602 212:0.28567602 213:0.28567602 214:0.28567602 215:0.28567602 216:0.28567602 217:0.28567602 218:0.28567602 219:0.14285408 220:0.14285408 221:0.2 222:0.2 223:0.1833 224:0.2 225:0.2 226:0.2 227:0.2 228:0.2 229:0.2 230:0.2 231:0.2 232:0.2 233:0.2 234:0.2 235:0.2 236:0.2 237:0.2 238:0.2 239:0.2 240:0.2 241:0.2 242:0.1833 243:0.2 244:0.2 245:0.2167 246:0.2167 247:0.2167 248:0.2167 249:0.2167 250:0.2167 251:0.2167 252:0.2167 253:0.2167 254:0.2167 255:0.2167 256:0.2167 257:0.2167 258:0.2167 259:0.2167 260:0.2167 261:0.2333 262:0.2167 263:0.2167 264:0.2167 265:0.3167 266:0.3167 267:0.5833 268:0.5833 269:0.75 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:0.9333 278:0.7833 279:0.6 280:0.4667 281:0.4667 282:0.4667 283:0.3667 284:0.3667 285:0.3667 286:0.3667 287:0.3667 288:0.3667 289:0.3667 290:0.3667 291:0.2667 292:0.25 293:0.25 294:0.2333 295:0.2167 296:0.2167 297:0.1667 298:0.1667 299:0.1667 300:0.15 301:0.15 302:0.15 303:0.1667 304:0.1667 305:0.1667 306:0.15 307:0.15 308:0.1667 309:0.1667 310:0.1667 311:0.1667 312:0.15 313:0.1667 314:0.1667 315:0.1667 316:0.1667 317:0.1667 318:0.15 319:0.1667 320:0.1667 321:0.1667 322:0.15 323:0.15 324:0.15 325:0.1667 326:0.1667 327:0.1667 328:0.1667 329:0.1667 330:0.2167 331:0.2167 332:0.2167 333:0.2833 334:0.2833 335:0.2833 336:1 337:1 338:1 339:1 340:1 341:1 342:1 343:1 344:1 345:1 346:1 347:1 348:1 349:1 350:1 351:1 352:1 353:1 354:1 355:1 356:1 357:1 358:1 359:1 360:1 +0.9451452458578892 1:0.1333 2:0.1333 3:0.1333 4:0.1333 5:0.4333 6:0.4333 7:0.4333 8:0.4333 9:0.4167 10:0.4167 11:0.4167 12:0.4167 13:0.4167 14:0.4167 15:0.4167 16:0.4167 17:0.3833 18:0.25 19:0.2333 20:0.2333 21:0.2167 22:0.2167 23:0.2167 24:0.2167 25:0.2167 26:0.2167 27:0.2167 28:0.2 29:0.2 30:0.2167 31:0.2167 32:0.2 33:0.2167 34:0.2167 35:0.2167 36:0.2167 37:0.2 38:0.2167 39:0.2167 40:0.2167 41:0.2 42:0.2167 43:0.2167 44:0.2167 45:0.2 46:0.2 47:0.2667 48:0.2667 49:0.2667 50:0.2667 51:0.2667 52:0.2667 53:0.2667 54:0.2667 55:0.2667 56:0.2667 57:0.2667 58:0.2667 59:0.2667 60:0.3167 61:0.3167 62:0.3167 63:0.3167 64:0.3167 65:0.3167 66:0.3333 67:0.3333 68:0.3167 69:0.3333 70:0.4 71:0.4 72:0.4 73:0.4 74:0.4167 75:0.5833 76:0.5833 77:0.5833 78:0.5833 79:0.5833 80:0.5833 81:0.7833 82:0.7833 83:0.7833 84:0.7833 85:0.9667 86:0.9667 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:0.5167 99:0.5333 100:0.3833 101:0.2333 102:0.2167 103:0.2167 104:0.2167 105:0.2167 106:0.2167 107:0.2167 108:0.2167 109:0.2167 110:0.2167 111:0.2167 112:0.2167 113:0.2167 114:0.2167 115:0.2167 116:0.2167 117:0.2167 118:0.2167 119:0.2167 120:0.2167 121:0.2167 122:0.2167 123:0.2167 124:0.2167 125:0.2167 126:0.2167 127:0.1 128:0.1 129:0.1 130:0.1 131:0.1 132:0.1 133:0.08333 134:0.08333 135:0.08333 136:0.08333 137:0.08333 138:0.08333 139:0.08333 140:0.08333 141:0.08333 142:0.035084211 143:0.035084211 144:0.035084211 145:0.035084211 146:0.035084211 147:0.035084211 148:0.035084211 149:0.035084211 150:0.035084211 151:0.035084211 152:0.035084211 153:0.035084211 154:0.035084211 155:0.035084211 156:0.035084211 157:0.017850064 158:0.017850064 159:0.017850064 160:0.017850064 161:0.017850064 162:0.017850064 163:0.017850064 164:0.017850064 165:0.017850064 166:0.017850064 167:0.017850064 168:0.017850064 169:0.017850064 170:0.017850064 171:0.017850064 172:0.017850064 173:0.017850064 174:0.017850064 175:0.017850064 176:0.017850064 177:0.017850064 178:0.017850064 179:0.017850064 180:0.017850064 181:0.017850064 182:0.017850064 183:0.017850064 184:0.017850064 185:0.017850064 186:0.55353412 187:0.55353412 188:0.55353412 189:0.55353412 190:1 191:0.64289158 192:0.64289158 193:0.64289158 194:0.64289158 195:0.48217672 196:0.48217672 197:0.4642838 198:0.48217672 199:0.48217672 200:0.48217672 201:0.48217672 202:0.48217672 203:0.48217672 204:0.51785542 205:0.4286051 206:0.41071218 207:0.41071218 208:0.41071218 209:0.41071218 210:0.41071218 211:0.26789024 212:0.26789024 213:0.26789024 214:0.26789024 215:0.26789024 216:0.26789024 217:0.26789024 218:0.26789024 219:0.053603763 220:0.053603763 221:0.1167 222:0.1167 223:0.1167 224:0.1333 225:0.1333 226:0.1333 227:0.1333 228:0.1167 229:0.1167 230:0.1333 231:0.1333 232:0.1333 233:0.1333 234:0.1333 235:0.1333 236:0.1167 237:0.1333 238:0.1333 239:0.1333 240:0.1333 241:0.1333 242:0.1167 243:0.1167 244:0.1167 245:0.1333 246:0.1333 247:0.1333 248:0.1167 249:0.1167 250:0.1167 251:0.1167 252:0.1333 253:0.1333 254:0.1333 255:0.1333 256:0.1333 257:0.1333 258:0.1333 259:0.1333 260:0.1333 261:0.3 262:0.3 263:0.3 264:0.3 265:0.3 266:0.3 267:0.3 268:0.3 269:0.3 270:0.4667 271:0.4667 272:0.65 273:0.2833 274:0.2833 275:0.2833 276:0.2833 277:0.2833 278:0.2833 279:0.2833 280:0.2833 281:0.2833 282:0.2833 283:0.2833 284:0.2833 285:0.2833 286:0.2833 287:0.2833 288:0.2833 289:0.5333 290:0.5333 291:0.5333 292:0.5333 293:0.5333 294:0.5333 295:0.5333 296:0.5333 297:0.5333 298:0.5333 299:0.5333 300:0.5333 301:0.5333 302:0.75 303:0.4833 304:0.4833 305:0.4833 306:0.4833 307:0.4833 308:0.2667 309:0.2667 310:0.25 311:0.25 312:0.25 313:0.2333 314:0.2333 315:0.25 316:0.25 317:0.25 318:0.25 319:0.25 320:0.25 321:0.25 322:0.25 323:0.25 324:0.25 325:0.2333 326:0.25 327:0.25 328:0.25 329:0.2333 330:0.15 331:0.15 332:0.15 333:0.1333 334:0.1333 335:0.1333 336:0.1333 337:0.1333 338:0.1333 339:0.1333 340:0.1333 341:0.1333 342:0.1333 343:0.1333 344:0.1333 345:0.1333 346:0.1333 347:0.1333 348:0.1333 349:0.1333 350:0.1333 351:0.1333 352:0.1333 353:0.1333 354:0.1333 355:0.1333 356:0.1333 357:0.1333 358:0.1333 359:0.1333 360:0.1333 +0.694538071472227 1:0.2833 2:0.2833 3:1 4:1 5:1 6:1 7:0.8667 8:0.75 9:0.75 10:0.6 11:0.6 12:0.4833 13:0.4833 14:0.4833 15:0.45 16:0.35 17:0.35 18:0.3667 19:0.3 20:0.3 21:0.3 22:0.3 23:0.2833 24:0.2833 25:0.2833 26:0.2833 27:0.2833 28:0.2833 29:0.3 30:0.2833 31:0.2833 32:0.3 33:0.2833 34:0.2833 35:0.3 36:0.2833 37:0.2833 38:0.2833 39:0.3 40:0.3 41:0.3 42:0.3 43:0.3 44:0.3 45:0.3 46:0.3 47:0.3 48:0.3 49:0.3 50:0.3 51:0.3 52:0.3 53:0.3 54:0.3 55:0.3 56:0.3 57:0.3167 58:0.3167 59:0.3333 60:0.3333 61:0.3333 62:0.3333 63:0.3167 64:0.3333 65:0.3333 66:0.3167 67:0.3333 68:0.3333 69:0.3333 70:0.3333 71:0.3333 72:0.3333 73:0.3333 74:0.3167 75:0.3333 76:0.3333 77:0.3333 78:0.3333 79:0.55 80:0.55 81:0.55 82:0.5667 83:0.5667 84:0.5833 85:0.5667 86:0.7667 87:0.7667 88:0.7667 89:0.7667 90:0.7667 91:0.7833 92:0.9667 93:1 94:1 95:1 96:1 97:1 98:1 99:0.7833 100:0.7833 101:0.65 102:0.4833 103:0.4833 104:0.4833 105:0.4667 106:0.4833 107:0.4667 108:0.4833 109:0.4667 110:0.4833 111:0.2667 112:0.25 113:0.25 114:0.25 115:0.25 116:0.25 117:0.25 118:0.25 119:0.25 120:0.25 121:0.25 122:0.25 123:0.1667 124:0.1667 125:0.1667 126:0.1667 127:0.1667 128:0.1667 129:0.1667 130:0.1667 131:0.1667 132:0.1667 133:0.1667 134:0.1667 135:0.1667 136:0.1667 137:0.1667 138:0.1667 139:0.1667 140:0.1667 141:0.1667 142:0.12284211 143:0.12284211 144:0.12284211 145:0.12284211 146:0.12284211 147:0.12284211 148:0.12284211 149:0.12284211 150:0.14031579 151:0.14031579 152:0.17547368 153:0.17547368 154:0.17547368 155:0.15789474 156:0.15789474 157:0.14285408 158:0.14285408 159:0.14285408 160:0.14285408 161:0.14285408 162:0.14285408 163:0.14285408 164:0.14285408 165:0.14285408 166:0.14285408 167:0.14285408 168:0.14285408 169:0.14285408 170:0.14285408 171:0.14285408 172:0.14285408 173:0.14285408 174:0.14285408 175:0.14285408 176:0.14285408 177:0.14285408 178:0.071389541 179:0.071389541 180:0.071389541 181:0.071389541 182:0.071389541 183:0.071389541 184:0.071389541 185:0.071389541 186:0.071389541 187:0.071389541 188:0.071389541 189:0.071389541 190:0.071389541 191:0.071389541 192:0.071389541 193:0.071389541 194:0.071389541 195:0.071389541 196:0.071389541 197:0.071389541 198:0.071389541 199:0.071389541 200:0.071389541 201:0.071389541 202:0.071389541 203:0.071389541 204:0.071389541 205:0.071389541 206:0.071389541 207:0.071389541 208:0.071389541 209:0.071389541 210:0.071389541 211:0.071389541 212:0.071389541 213:0.071389541 214:0.071389541 215:0.071389541 216:0.160747 217:0.14285408 218:0.160747 219:0.160747 220:0.160747 221:0.2 222:0.2167 223:0.2167 224:0.2167 225:0.2 226:0.2 227:0.2167 228:0.2167 229:0.2167 230:0.2167 231:0.2167 232:0.2333 233:0.2333 234:0.2333 235:0.4167 236:0.4 237:0.4167 238:0.4 239:0.4167 240:0.4167 241:0.4 242:0.3667 243:0.3667 244:0.35 245:0.35 246:0.3667 247:0.35 248:0.35 249:0.3667 250:0.35 251:0.35 252:0.3667 253:0.35 254:0.3667 255:0.35 256:0.35 257:0.3667 258:0.5 259:0.5 260:0.5 261:0.5167 262:0.65 263:0.65 264:0.8333 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:0.9 279:0.9 280:0.7 281:0.5167 282:0.5167 283:0.5167 284:0.5167 285:0.5167 286:0.35 287:0.35 288:0.5167 289:0.35 290:0.3667 291:0.35 292:0.35 293:0.7167 294:0.1833 295:0.1833 296:0.1833 297:0.1833 298:0.1833 299:0.1833 300:0.1833 301:0.1833 302:0.1833 303:0.1833 304:0.1833 305:0.1833 306:0.1833 307:0.1833 308:0.1833 309:0.1833 310:0.1833 311:0.1833 312:0.1833 313:0.1833 314:0.1833 315:0.1833 316:0.1833 317:0.1833 318:0.1833 319:0.1833 320:0.1833 321:0.1833 322:0.1833 323:0.1833 324:0.1833 325:0.1833 326:0.1833 327:0.1833 328:0.1833 329:0.1833 330:0.1833 331:0.1833 332:0.2167 333:0.2167 334:0.2167 335:0.2167 336:0.2167 337:0.2167 338:0.2167 339:0.2167 340:0.2167 341:0.2167 342:0.2167 343:0.2167 344:0.2167 345:0.2167 346:0.2167 347:0.2167 348:0.2167 349:0.2167 350:0.2167 351:0.2833 352:0.2833 353:0.2833 354:0.2833 355:0.2833 356:0.2833 357:0.2833 358:0.2833 359:0.2833 360:0.2833 +1.511082805737294 1:1 2:1 3:1 4:1 5:1 6:0.8833 7:0.7667 8:0.6333 9:0.5833 10:0.5167 11:0.5167 12:0.4833 13:0.3667 14:0.3667 15:0.3667 16:0.35 17:0.3333 18:0.3167 19:0.3 20:0.3 21:0.3 22:0.3 23:0.3 24:0.3 25:0.3 26:0.3 27:0.3 28:0.3 29:0.3 30:0.3 31:0.3 32:0.3 33:0.3 34:0.3 35:0.3 36:0.3 37:0.3 38:0.3167 39:0.3167 40:0.3 41:0.3167 42:0.3167 43:0.3167 44:0.3167 45:0.3167 46:0.3167 47:0.3167 48:0.3167 49:0.3167 50:0.3167 51:0.3167 52:0.3 53:0.3167 54:0.3167 55:0.3167 56:0.3333 57:0.3333 58:0.3167 59:0.3333 60:0.3333 61:0.3333 62:0.3333 63:0.3167 64:0.3333 65:0.3333 66:0.3167 67:0.3333 68:0.3333 69:0.3333 70:0.3333 71:0.3333 72:0.3333 73:0.3333 74:0.3167 75:0.3333 76:0.55 77:0.55 78:0.55 79:0.55 80:0.55 81:0.55 82:0.7333 83:0.7333 84:0.7667 85:0.7667 86:0.7667 87:0.7667 88:0.7667 89:0.7667 90:0.8667 91:0.9667 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:0.4667 101:0.4667 102:0.4667 103:0.4667 104:0.4667 105:0.3 106:0.2833 107:0.2833 108:0.25 109:0.2333 110:0.2333 111:0.2333 112:0.2333 113:0.2333 114:0.2333 115:0.2333 116:0.2333 117:0.2333 118:0.2333 119:0.2333 120:0.15 121:0.15 122:0.15 123:0.15 124:0.15 125:0.15 126:0.15 127:0.15 128:0.15 129:0.15 130:0.15 131:0.15 132:0.15 133:0.15 134:0.15 135:0.15 136:0.15 137:0.15 138:0.15 139:0.15 140:0.15 141:0.15 142:0.10526316 143:0.10526316 144:0.10526316 145:0.10526316 146:0.10526316 147:0.10526316 148:0.10526316 149:0.10526316 150:0.10526316 151:0.10526316 152:0.10526316 153:0.14031579 154:0.14031579 155:0.14031579 156:0.14031579 157:0.12496116 158:0.12496116 159:0.12496116 160:0.12496116 161:0.12496116 162:0.12496116 163:0.12496116 164:0.12496116 165:0.12496116 166:0.12496116 167:0.12496116 168:0.12496116 169:0.12496116 170:0.12496116 171:0.12496116 172:0.12496116 173:0.089282462 174:0.089282462 175:0.089282462 176:0.089282462 177:0.089282462 178:0.053603763 179:0.053603763 180:0.053603763 181:0.053603763 182:0.053603763 183:0.053603763 184:0.053603763 185:0.053603763 186:0.035710842 187:0.035710842 188:0.035710842 189:0.035710842 190:0.035710842 191:0.035710842 192:0.053603763 193:0.053603763 194:0.035710842 195:0.035710842 196:0.035710842 197:0.053603763 198:0.053603763 199:0.053603763 200:0.053603763 201:0.053603763 202:0.035710842 203:0.053603763 204:0.053603763 205:0.053603763 206:0.053603763 207:0.053603763 208:0.053603763 209:0.053603763 210:0.035710842 211:0.035710842 212:0.035710842 213:0.053603763 214:0.053603763 215:0.053603763 216:0.053603763 217:0.053603763 218:0.035710842 219:0.035710842 220:0.035710842 221:0.1 222:0.1 223:0.1 224:0.2 225:0.2 226:0.2 227:0.2 228:0.2 229:0.1833 230:0.2 231:0.2 232:0.2 233:0.2 234:0.2167 235:0.2167 236:0.2167 237:0.2333 238:0.2333 239:0.2333 240:0.4167 241:0.4 242:0.4167 243:0.4 244:0.4167 245:0.4 246:0.4 247:0.4167 248:0.3667 249:0.3667 250:0.3667 251:0.3667 252:0.3667 253:0.3667 254:0.3667 255:0.3667 256:0.3667 257:0.3667 258:0.3667 259:0.3667 260:0.5167 261:0.5167 262:0.5167 263:0.6667 264:0.6667 265:0.8167 266:0.9833 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:0.9167 279:0.9167 280:0.9167 281:0.7167 282:0.7167 283:0.5333 284:0.5333 285:0.5333 286:0.5333 287:0.5333 288:0.3667 289:0.3667 290:0.3667 291:0.3667 292:0.3667 293:0.3667 294:0.3667 295:0.3667 296:0.3667 297:0.3667 298:0.2 299:0.2 300:0.2167 301:0.2167 302:0.2 303:0.2 304:0.2 305:0.2 306:0.2 307:0.2 308:0.2 309:0.2 310:0.2 311:0.2 312:0.2 313:0.2 314:0.2 315:0.2 316:0.2 317:0.2 318:0.2 319:0.2 320:0.2 321:0.2 322:0.2 323:0.2 324:0.2 325:0.2167 326:0.2 327:0.2 328:0.2 329:0.2 330:0.2167 331:0.2167 332:0.2167 333:0.2333 334:0.2333 335:0.2333 336:0.2333 337:0.2333 338:0.2333 339:0.2333 340:0.2333 341:0.2333 342:0.2333 343:0.2333 344:0.2333 345:0.2333 346:0.2333 347:0.2333 348:0.25 349:0.3 350:0.3 351:0.3 352:0.3 353:0.3 354:0.3 355:0.3 356:0.3 357:0.3 358:0.3 359:0.3 360:0.5833 +0.3538394096402166 1:1 2:1 3:1 4:1 5:0.8667 6:0.6833 7:0.6833 8:0.6167 9:0.5333 10:0.4833 11:0.4333 12:0.3833 13:0.35 14:0.3333 15:0.3 16:0.2833 17:0.2833 18:0.2833 19:0.2833 20:0.2833 21:0.2833 22:0.2833 23:0.2833 24:0.2833 25:0.2833 26:0.2833 27:0.2833 28:0.2833 29:0.2833 30:0.2833 31:0.2833 32:0.2833 33:0.2833 34:0.2833 35:0.2833 36:0.3 37:0.2833 38:0.3 39:0.3 40:0.2833 41:0.3 42:0.3 43:0.2833 44:0.2833 45:0.3 46:0.3 47:0.3 48:0.3 49:0.3 50:0.3 51:0.3 52:0.3 53:0.3 54:0.3 55:0.3 56:0.3 57:0.3167 58:0.3167 59:0.3167 60:0.3167 61:0.3167 62:0.3167 63:0.3167 64:0.3167 65:0.3167 66:0.3167 67:0.3167 68:0.3167 69:0.3167 70:0.3167 71:0.3167 72:0.3167 73:0.3167 74:0.3167 75:0.5333 76:0.5333 77:0.5333 78:0.5333 79:0.5333 80:0.55 81:0.55 82:0.7167 83:0.7167 84:0.75 85:0.75 86:0.75 87:0.75 88:0.75 89:0.75 90:0.7667 91:0.95 92:1 93:1 94:1 95:0.9833 96:0.9833 97:0.9833 98:0.7667 99:0.7667 100:0.6167 101:0.6167 102:0.6167 103:0.45 104:0.45 105:0.45 106:0.45 107:0.45 108:0.45 109:0.2333 110:0.2333 111:0.2333 112:0.2333 113:0.2333 114:0.2333 115:0.2333 116:0.2333 117:0.2333 118:0.2333 119:0.2333 120:0.2333 121:0.2333 122:0.2333 123:0.2333 124:0.2333 125:0.2333 126:0.2333 127:0.2167 128:0.15 129:0.15 130:0.15 131:0.1667 132:0.1667 133:0.1667 134:0.15 135:0.1667 136:0.1667 137:0.1667 138:0.1667 139:0.1667 140:0.15 141:0.1667 142:0.12284211 143:0.12284211 144:0.12284211 145:0.10526316 146:0.10526316 147:0.12284211 148:0.12284211 149:0.12284211 150:0.10526316 151:0.10526316 152:0.10526316 153:0.12284211 154:0.12284211 155:0.12284211 156:0.14031579 157:0.12496116 158:0.12496116 159:0.12496116 160:0.12496116 161:0.12496116 162:0.12496116 163:0.12496116 164:0.12496116 165:0.12496116 166:0.12496116 167:0.12496116 168:0.12496116 169:0.12496116 170:0.12496116 171:0.12496116 172:0.12496116 173:0.12496116 174:0.12496116 175:0.12496116 176:0.12496116 177:0.12496116 178:0.12496116 179:0.10717538 180:0.10717538 181:0.10717538 182:0.10717538 183:0.10717538 184:0.089282462 185:0.053603763 186:0.053603763 187:0.053603763 188:0.053603763 189:0.053603763 190:0.053603763 191:0.053603763 192:0.053603763 193:0.053603763 194:0.053603763 195:0.053603763 196:0.071389541 197:0.071389541 198:0.071389541 199:0.071389541 200:0.053603763 201:0.053603763 202:0.071389541 203:0.071389541 204:0.071389541 205:0.071389541 206:0.071389541 207:0.053603763 208:0.053603763 209:0.053603763 210:0.071389541 211:0.071389541 212:0.071389541 213:0.053603763 214:0.053603763 215:0.053603763 216:0.053603763 217:0.053603763 218:0.053603763 219:0.053603763 220:0.071389541 221:0.1333 222:0.1333 223:0.2167 224:0.2167 225:0.2 226:0.2 227:0.2167 228:0.2167 229:0.2167 230:0.2167 231:0.2167 232:0.2333 233:0.2333 234:0.2333 235:0.25 236:0.25 237:0.25 238:0.4333 239:0.4167 240:0.4167 241:0.4167 242:0.4167 243:0.4333 244:0.4167 245:0.3667 246:0.3667 247:0.3667 248:0.3667 249:0.3667 250:0.4333 251:0.3667 252:0.4833 253:0.3667 254:0.3667 255:0.3667 256:0.3667 257:0.3667 258:0.5167 259:0.5167 260:0.5167 261:0.5167 262:0.6667 263:0.6667 264:0.85 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:0.9333 278:0.9333 279:0.7333 280:0.7333 281:0.5333 282:0.5333 283:0.5333 284:0.5333 285:0.3667 286:0.3667 287:0.3667 288:0.3667 289:0.3667 290:0.3833 291:0.3667 292:0.3833 293:0.3667 294:0.2333 295:0.2167 296:0.2167 297:0.2167 298:0.2 299:0.2 300:0.2167 301:0.2167 302:0.2 303:0.2 304:0.2 305:0.2 306:0.2 307:0.2 308:0.2 309:0.2 310:0.2167 311:0.2 312:0.2 313:0.2 314:0.2 315:0.2 316:0.2 317:0.2 318:0.2 319:0.2167 320:0.2167 321:0.2 322:0.2 323:0.2 324:0.2167 325:0.2167 326:0.2167 327:0.2333 328:0.2333 329:0.2333 330:0.2333 331:0.2333 332:0.2333 333:0.2333 334:0.2333 335:0.2333 336:0.2333 337:0.2333 338:0.2333 339:0.2333 340:0.2333 341:0.2333 342:0.2333 343:0.2333 344:0.2833 345:0.2833 346:0.2833 347:0.3 348:0.2833 349:0.2833 350:0.3 351:0.2833 352:0.2833 353:0.2833 354:0.2833 355:0.2833 356:0.2833 357:0.45 358:0.5667 359:0.8 360:1 +0.006257312053404475 1:1 2:1 3:1 4:0.7833 5:0.75 6:0.7333 7:0.55 8:0.4667 9:0.4167 10:0.3667 11:0.3333 12:0.3 13:0.2833 14:0.2667 15:0.2667 16:0.2667 17:0.2667 18:0.2667 19:0.2667 20:0.2667 21:0.2667 22:0.2667 23:0.2667 24:0.2667 25:0.2667 26:0.2667 27:0.2667 28:0.2667 29:0.2667 30:0.2667 31:0.2667 32:0.2667 33:0.2833 34:0.2833 35:0.2833 36:0.2833 37:0.2833 38:0.2833 39:0.2833 40:0.2833 41:0.2833 42:0.2833 43:0.2833 44:0.2833 45:0.2833 46:0.2833 47:0.2833 48:0.2833 49:0.2833 50:0.2833 51:0.2833 52:0.2833 53:0.2833 54:0.3 55:0.2833 56:0.3 57:0.3 58:0.2833 59:0.3 60:0.3 61:0.2833 62:0.3 63:0.3 64:0.3 65:0.3 66:0.3 67:0.3 68:0.3 69:0.3 70:0.3 71:0.3 72:0.3 73:0.3 74:0.3 75:0.3 76:0.3 77:0.3 78:0.5333 79:0.5333 80:0.5333 81:0.5333 82:0.5333 83:0.5333 84:0.7167 85:0.7333 86:0.7333 87:0.7333 88:0.75 89:0.75 90:0.75 91:0.8167 92:1 93:1 94:0.5667 95:0.5667 96:0.5667 97:0.5667 98:0.5667 99:0.5667 100:0.5667 101:0.5667 102:0.6167 103:0.45 104:0.45 105:0.45 106:0.45 107:0.45 108:0.45 109:0.45 110:0.2833 111:0.2833 112:0.25 113:0.25 114:0.2333 115:0.2167 116:0.2167 117:0.2167 118:0.2167 119:0.2333 120:0.2167 121:0.2167 122:0.2333 123:0.2333 124:0.2167 125:0.2167 126:0.2333 127:0.2333 128:0.2167 129:0.2167 130:0.2167 131:0.15 132:0.15 133:0.15 134:0.15 135:0.15 136:0.15 137:0.15 138:0.15 139:0.15 140:0.15 141:0.15 142:0.10526316 143:0.10526316 144:0.10526316 145:0.10526316 146:0.10526316 147:0.10526316 148:0.10526316 149:0.10526316 150:0.10526316 151:0.10526316 152:0.10526316 153:0.10526316 154:0.10526316 155:0.10526316 156:0.10526316 157:0.089282462 158:0.089282462 159:0.089282462 160:0.14285408 161:0.14285408 162:0.14285408 163:0.14285408 164:0.14285408 165:0.14285408 166:0.14285408 167:0.14285408 168:0.14285408 169:0.14285408 170:0.14285408 171:0.14285408 172:0.14285408 173:0.14285408 174:0.14285408 175:0.14285408 176:0.14285408 177:0.14285408 178:0.14285408 179:0.12496116 180:0.12496116 181:0.12496116 182:0.12496116 183:0.12496116 184:0.12496116 185:0.12496116 186:0.12496116 187:0.12496116 188:0.12496116 189:0.10717538 190:0.089282462 191:0.071389541 192:0.089282462 193:0.089282462 194:0.089282462 195:0.089282462 196:0.089282462 197:0.089282462 198:0.089282462 199:0.089282462 200:0.089282462 201:0.089282462 202:0.089282462 203:0.089282462 204:0.089282462 205:0.089282462 206:0.089282462 207:0.089282462 208:0.089282462 209:0.089282462 210:0.089282462 211:0.089282462 212:0.089282462 213:0.089282462 214:0.089282462 215:0.089282462 216:0.071389541 217:0.089282462 218:0.089282462 219:0.160747 220:0.160747 221:0.2167 222:0.2167 223:0.2167 224:0.2167 225:0.2167 226:0.2167 227:0.2167 228:0.2167 229:0.2167 230:0.2167 231:0.2167 232:0.2333 233:0.2333 234:0.2333 235:0.2667 236:0.3 237:0.4333 238:0.4333 239:0.4333 240:0.4333 241:0.4333 242:0.4333 243:0.4333 244:0.3833 245:0.3833 246:0.3833 247:0.3833 248:0.3833 249:0.3833 250:0.3833 251:0.3833 252:0.3833 253:0.3833 254:0.3833 255:0.3833 256:0.5167 257:0.5167 258:0.5167 259:0.5167 260:0.6833 261:0.6833 262:0.6833 263:0.8667 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:0.9167 277:0.7167 278:0.7333 279:0.55 280:0.55 281:0.55 282:0.3833 283:0.3667 284:0.3667 285:0.3667 286:0.3667 287:0.3667 288:0.3667 289:0.2333 290:0.2333 291:0.2167 292:0.2 293:0.2 294:0.2 295:0.2 296:0.2 297:0.2 298:0.2 299:0.2 300:0.2 301:0.2 302:0.2 303:0.2 304:0.2 305:0.2 306:0.2 307:0.2 308:0.2 309:0.2 310:0.2 311:0.2 312:0.2 313:0.2 314:0.2 315:0.2 316:0.2 317:0.2167 318:0.2167 319:0.2167 320:0.2167 321:0.2167 322:0.2333 323:0.2333 324:0.2333 325:0.2333 326:0.2333 327:0.2333 328:0.2333 329:0.2333 330:0.2333 331:0.2333 332:0.2333 333:0.2333 334:0.2333 335:0.2333 336:0.2333 337:0.2333 338:0.2333 339:0.3 340:0.2833 341:0.3333 342:0.3 343:0.3 344:0.3 345:0.3 346:0.3 347:0.3 348:0.3 349:0.3 350:0.3 351:0.3 352:0.3 353:0.3167 354:0.4333 355:0.4333 356:0.55 357:0.6667 358:0.7833 359:1 360:1 +0.2401477987780673 1:0.1833 2:0.1833 3:0.1833 4:0.1833 5:0.1833 6:0.1833 7:0.1833 8:0.1833 9:1 10:1 11:1 12:1 13:1 14:1 15:1 16:1 17:1 18:1 19:1 20:1 21:1 22:1 23:1 24:1 25:1 26:1 27:1 28:0.6 29:0.6 30:0.6 31:0.6 32:0.6 33:0.6 34:0.6 35:0.6 36:0.4833 37:0.4667 38:0.4667 39:0.4667 40:0.4667 41:0.4667 42:0.4667 43:0.4667 44:0.4667 45:0.4667 46:0.4667 47:0.45 48:0.45 49:0.45 50:0.45 51:0.45 52:0.45 53:0.45 54:0.45 55:0.45 56:0.45 57:0.4167 58:0.35 59:0.35 60:0.35 61:0.35 62:0.35 63:0.35 64:0.35 65:0.35 66:0.35 67:0.35 68:0.35 69:0.35 70:0.35 71:0.35 72:0.35 73:0.35 74:0.3667 75:0.35 76:0.35 77:0.3667 78:0.3667 79:0.3667 80:0.3833 81:0.3833 82:0.3667 83:0.3667 84:0.3667 85:0.3667 86:0.3667 87:0.3667 88:0.3667 89:0.3667 90:0.3333 91:0.3333 92:0.3333 93:0.3333 94:0.3333 95:0.3333 96:0.3333 97:0.3333 98:0.3333 99:0.3333 100:0.3333 101:0.3333 102:0.3333 103:0.3333 104:0.3333 105:0.3333 106:0.3833 107:0.3833 108:0.3833 109:0.3833 110:0.3833 111:0.3833 112:0.3833 113:0.3833 114:0.3833 115:0.3833 116:0.3833 117:0.4 118:0.4167 119:0.4 120:0.4167 121:0.4167 122:0.4167 123:0.4167 124:0.4 125:0.4167 126:0.4 127:0.4167 128:0.4167 129:0.4167 130:0.45 131:0.45 132:0.45 133:0.45 134:0.45 135:0.45 136:0.4667 137:0.4667 138:0.4833 139:0.4833 140:0.5 141:0.5167 142:0.49126316 143:0.50873684 144:0.49126316 145:0.50873684 146:0.49126316 147:0.49126316 148:0.50873684 149:0.49126316 150:0.50873684 151:0.49126316 152:0.50873684 153:0.80705263 154:0.80705263 155:0.80705263 156:0.80705263 157:0.80360644 158:0.80360644 159:0.80360644 160:0.80360644 161:0.80360644 162:0.80360644 163:1 164:1 165:1 166:1 167:1 168:1 169:1 170:1 171:1 172:1 173:1 174:0.75003482 175:0.75003482 176:0.75003482 177:0.75003482 178:0.33924764 179:0.33924764 180:0.21431862 181:0.21431862 182:0.21431862 183:0.21431862 184:0.21431862 185:0.21431862 186:0.21431862 187:0.1964257 188:0.1964257 189:0.1964257 190:0.21431862 191:0.1964257 192:0.1964257 193:0.21431862 194:0.1964257 195:0.1964257 196:0.21431862 197:0.21431862 198:0.1964257 199:0.1964257 200:0.21431862 201:0.1964257 202:0.1964257 203:0.1964257 204:0.1964257 205:0.2321044 206:0.28567602 207:0.28567602 208:0.14285408 209:0.14285408 210:0.12496116 211:0.14285408 212:0.14285408 213:0.14285408 214:0.14285408 215:0.14285408 216:0.14285408 217:0.14285408 218:0.14285408 219:0.14285408 220:0.14285408 221:0.2 222:0.2 223:0.2 224:0.2 225:0.2 226:0.2 227:0.2 228:0.2 229:0.1833 230:0.2 231:0.2 232:0.2 233:0.2 234:0.2 235:0.2 236:0.2 237:0.2 238:0.2167 239:0.2 240:0.2 241:0.2 242:0.2167 243:0.2167 244:0.2 245:0.2 246:0.2167 247:0.2167 248:0.2 249:0.2 250:0.2 251:0.2 252:0.2 253:0.2 254:0.2 255:0.2 256:0.2167 257:0.2333 258:0.2333 259:0.2333 260:0.2333 261:0.2333 262:0.5333 263:0.55 264:0.5167 265:0.55 266:0.6333 267:0.6333 268:0.6333 269:0.6333 270:0.6333 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:0.8667 287:0.85 288:0.85 289:0.8333 290:0.8333 291:0.8333 292:0.8667 293:0.3833 294:0.4 295:0.3833 296:0.4 297:0.3833 298:0.4 299:0.4 300:0.4 301:0.4 302:0.3833 303:0.4 304:0.4 305:0.4 306:0.4333 307:0.4333 308:0.4333 309:0.4333 310:0.4333 311:0.4333 312:0.3167 313:0.2333 314:0.2333 315:0.3 316:0.3 317:0.25 318:0.25 319:0.2833 320:0.25 321:0.25 322:0.25 323:0.2667 324:0.25 325:0.2333 326:0.2667 327:0.2667 328:0.25 329:0.2333 330:0.15 331:0.15 332:0.15 333:0.15 334:0.15 335:0.15 336:0.1667 337:0.15 338:0.15 339:0.15 340:0.15 341:0.1667 342:0.1667 343:0.15 344:0.15 345:0.15 346:0.15 347:0.1667 348:0.15 349:0.15 350:0.15 351:0.15 352:0.15 353:0.15 354:0.15 355:0.15 356:0.15 357:0.15 358:0.15 359:0.1833 360:0.1833 +0.3065862027933848 1:1 2:1 3:1 4:1 5:1 6:0.5333 7:0.5333 8:0.3667 9:0.3833 10:0.3667 11:0.3833 12:0.3833 13:0.3833 14:0.3833 15:0.3667 16:0.3833 17:0.3833 18:0.3167 19:0.1833 20:0.1833 21:0.1667 22:0.1667 23:0.1833 24:0.1833 25:0.1833 26:0.1667 27:0.1667 28:0.1667 29:0.1667 30:0.1667 31:0.1667 32:0.1667 33:0.1667 34:0.1667 35:0.1667 36:0.1667 37:0.1667 38:0.1667 39:0.1667 40:0.1667 41:0.1667 42:0.1667 43:0.1667 44:0.1667 45:0.1667 46:0.1667 47:0.15 48:0.1667 49:0.1667 50:0.1667 51:0.1667 52:0.1667 53:0.1667 54:0.1667 55:0.1667 56:0.1667 57:0.1667 58:0.1667 59:0.1667 60:0.1667 61:0.1667 62:0.1667 63:0.1333 64:0.1333 65:0.1333 66:0.1333 67:0.1333 68:0.1333 69:0.1333 70:0.1333 71:0.1333 72:0.1333 73:0.1333 74:0.1333 75:0.1333 76:0.1333 77:0.1333 78:0.1333 79:0.1 80:0.1 81:0.1 82:0.1 83:0.1 84:0.1 85:0.1 86:0.1 87:0.1 88:0.1 89:0.1 90:0.1 91:0.1 92:0.1 93:0.1 94:0.1 95:0.1 96:0.1 97:0.1 98:0.1 99:0.1 100:0.1 101:0.1 102:0.1 103:0.1 104:0.1 105:0.1 106:0.1 107:0.1 108:0.1 109:0.1 110:0.1 111:0.1 112:0.1 113:0.1 114:0.1 115:0.1 116:0.1 117:0.1 118:0.1 119:0.1 120:0.1 121:0.1 122:0.1 123:0.1 124:0.1 125:0.1 126:0.1 127:0.1 128:0.1667 129:0.1667 130:0.1667 131:0.1667 132:0.1667 133:0.1667 134:0.1667 135:0.15 136:0.1667 137:0.1667 138:0.1667 139:0.1667 140:0.1667 141:0.1667 142:0.17547368 143:0.17547368 144:0.17547368 145:0.19294737 146:0.19294737 147:0.17547368 148:0.17547368 149:0.19294737 150:0.19294737 151:0.17547368 152:0.17547368 153:0.19294737 154:0.17547368 155:0.17547368 156:0.17547368 157:0.160747 158:0.17853278 159:0.2321044 160:0.2321044 161:0.2321044 162:0.2321044 163:0.24999732 164:0.26789024 165:0.28567602 166:0.30356894 167:0.32146186 168:0.35714056 169:0.37503348 170:0.37503348 171:0.37503348 172:0.37503348 173:0.37503348 174:0.37503348 175:0.37503348 176:0.37503348 177:0.37503348 178:0.7321419 179:0.7321419 180:0.9643213 181:1 182:1 183:1 184:1 185:1 186:1 187:1 188:1 189:1 190:1 191:0.75003482 192:0.75003482 193:0.75003482 194:0.75003482 195:0.75003482 196:0.75003482 197:0.7678206 198:0.9643213 199:0.87496384 200:0.7678206 201:0.80360644 202:0.78571352 203:0.7678206 204:0.7678206 205:0.7678206 206:0.80360644 207:0.80360644 208:1 209:1 210:0.39281926 211:0.83928514 212:0.39281926 213:0.80360644 214:0.39281926 215:0.78571352 216:0.39281926 217:0.78571352 218:0.39281926 219:0.32146186 220:0.32146186 221:0.35 222:0.3667 223:0.3667 224:0.3667 225:0.3667 226:0.35 227:0.3667 228:0.3667 229:0.3667 230:0.3667 231:0.35 232:0.3667 233:0.3667 234:0.3667 235:0.3833 236:0.3667 237:0.3667 238:0.4833 239:0.4833 240:0.4333 241:0.3833 242:0.3833 243:0.3833 244:0.3833 245:0.3833 246:0.3833 247:0.3833 248:0.3833 249:0.3833 250:0.3833 251:0.3833 252:0.3833 253:0.3833 254:0.3833 255:0.3833 256:0.4167 257:0.4333 258:0.4167 259:0.4333 260:0.4167 261:0.4167 262:0.4167 263:0.4167 264:0.4167 265:0.4167 266:0.45 267:0.45 268:0.4667 269:0.8667 270:0.8667 271:0.8667 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:0.6167 287:0.6167 288:0.6167 289:0.6167 290:0.6167 291:0.6167 292:0.6167 293:0.6167 294:0.6167 295:0.4333 296:0.4333 297:0.3167 298:0.3167 299:0.3167 300:0.3167 301:0.3167 302:0.3167 303:0.3167 304:0.3167 305:0.3167 306:0.3167 307:0.3167 308:0.3167 309:0.3167 310:0.3167 311:0.3167 312:0.3167 313:0.3167 314:0.3167 315:0.3167 316:0.3167 317:0.3167 318:0.3167 319:0.3167 320:0.3167 321:0.4167 322:0.4167 323:0.4167 324:0.4333 325:0.4333 326:0.4333 327:0.4333 328:0.5 329:0.5 330:0.5 331:0.5 332:0.5 333:0.5167 334:0.5 335:0.5167 336:0.8667 337:0.8667 338:0.85 339:0.85 340:0.85 341:0.85 342:0.85 343:0.85 344:0.85 345:0.9833 346:0.9833 347:1 348:1 349:1 350:1 351:1 352:1 353:1 354:1 355:1 356:1 357:1 358:1 359:1 360:1 +0.06055250298999164 1:1 2:1 3:1 4:1 5:1 6:1 7:1 8:0.7 9:0.7 10:0.7 11:0.7 12:0.7 13:0.7 14:0.7 15:0.7 16:1 17:0.9667 18:0.9667 19:0.8 20:0.7833 21:0.8 22:0.8 23:0.7833 24:0.7833 25:0.7833 26:1 27:1 28:1 29:1 30:0.4333 31:0.45 32:0.4333 33:0.45 34:0.4333 35:0.45 36:0.4333 37:0.45 38:0.4333 39:0.4333 40:0.45 41:0.3 42:0.3 43:0.3 44:0.3 45:0.3 46:0.3 47:0.3 48:0.3 49:0.3 50:0.3 51:0.3 52:0.3 53:0.3 54:0.3 55:0.3 56:0.3 57:0.3 58:0.3 59:0.3 60:0.3 61:0.5333 62:0.5333 63:0.5333 64:0.5333 65:0.5333 66:0.5333 67:0.5333 68:0.5333 69:0.5333 70:0.5333 71:0.5333 72:0.5333 73:0.4833 74:0.4833 75:0.4833 76:0.4667 77:0.4833 78:0.4833 79:0.4833 80:0.4833 81:0.4833 82:0.4833 83:0.4833 84:0.4667 85:0.5667 86:0.5667 87:0.5667 88:0.5667 89:0.5667 90:0.5667 91:0.5667 92:0.4833 93:0.4833 94:0.4833 95:0.4833 96:0.4833 97:0.4833 98:0.4833 99:0.4833 100:0.4833 101:0.4833 102:0.4833 103:0.4833 104:0.5 105:0.5 106:0.5 107:0.5 108:0.5 109:0.5 110:0.5 111:0.5 112:0.5 113:0.5 114:0.3167 115:0.3333 116:0.3333 117:0.3167 118:0.3333 119:0.3333 120:0.3333 121:0.3333 122:0.3333 123:0.3333 124:0.3333 125:0.3167 126:0.3167 127:0.3333 128:0.3333 129:0.3333 130:0.3333 131:0.35 132:0.35 133:0.35 134:0.3667 135:0.3667 136:0.3667 137:0.3833 138:0.3833 139:0.3833 140:0.6833 141:0.75 142:0.36842105 143:0.36842105 144:0.36842105 145:0.36842105 146:0.36842105 147:0.36842105 148:0.36842105 149:0.36842105 150:0.36842105 151:0.36842105 152:0.35084211 153:0.36842105 154:0.36842105 155:0.36842105 156:0.42105263 157:0.41071218 158:0.41071218 159:0.41071218 160:0.41071218 161:0.41071218 162:0.41071218 163:0.41071218 164:0.57142704 165:0.57142704 166:0.57142704 167:0.64289158 168:0.60710574 169:0.67857028 170:0.67857028 171:0.67857028 172:0.67857028 173:0.67857028 174:0.6964632 175:0.71424898 176:0.71424898 177:0.71424898 178:0.80360644 179:0.80360644 180:0.80360644 181:1 182:1 183:1 184:1 185:1 186:1 187:1 188:1 189:1 190:1 191:1 192:1 193:1 194:0.28567602 195:0.28567602 196:0.28567602 197:0.28567602 198:0.26789024 199:0.28567602 200:0.28567602 201:0.28567602 202:0.28567602 203:0.28567602 204:0.28567602 205:0.28567602 206:0.26789024 207:0.28567602 208:0.28567602 209:0.26789024 210:0.28567602 211:0.28567602 212:0.28567602 213:0.28567602 214:0.28567602 215:0.28567602 216:0.28567602 217:0.28567602 218:0.12496116 219:0.12496116 220:0.12496116 221:0.1667 222:0.1667 223:0.1667 224:0.1667 225:0.1667 226:0.1667 227:0.15 228:0.1667 229:0.1667 230:0.1667 231:0.1667 232:0.1667 233:0.1667 234:0.1667 235:0.1667 236:0.1667 237:0.1667 238:0.1667 239:0.1667 240:0.1667 241:0.1667 242:0.1667 243:0.1667 244:0.1667 245:0.1667 246:0.1667 247:0.1667 248:0.1667 249:0.15 250:0.1667 251:0.1667 252:0.5833 253:0.5167 254:0.5 255:0.5 256:0.3833 257:0.3833 258:0.3833 259:0.3833 260:0.3833 261:0.3833 262:0.3833 263:0.3833 264:0.3833 265:0.3833 266:0.3833 267:0.3833 268:0.3833 269:0.3833 270:0.3833 271:0.3833 272:0.3833 273:0.3833 274:0.3833 275:1 276:1 277:1 278:1 279:1 280:1 281:0.8167 282:0.7333 283:0.7333 284:0.7333 285:0.7333 286:0.7333 287:0.7333 288:0.7333 289:0.75 290:0.75 291:0.75 292:0.75 293:0.7667 294:0.7667 295:0.7667 296:0.7667 297:0.5833 298:0.2333 299:0.2333 300:0.2167 301:0.2167 302:0.2167 303:0.2 304:0.2 305:0.2 306:0.1833 307:0.1833 308:0.1833 309:0.1833 310:0.1833 311:0.1667 312:0.1667 313:0.1667 314:0.1667 315:0.1667 316:0.1833 317:0.1667 318:0.1667 319:0.1667 320:0.1833 321:0.1833 322:0.1667 323:0.1667 324:0.1667 325:0.1833 326:0.1833 327:0.1667 328:0.1667 329:0.1667 330:0.1667 331:0.1667 332:0.1667 333:0.1667 334:0.1667 335:0.1667 336:1 337:1 338:1 339:1 340:1 341:1 342:1 343:1 344:1 345:1 346:1 347:1 348:1 349:1 350:1 351:1 352:1 353:1 354:1 355:1 356:1 357:1 358:1 359:1 360:1 +0.5344429839729679 1:0.45 2:0.45 3:0.45 4:0.45 5:0.45 6:0.45 7:0.45 8:0.45 9:0.45 10:0.45 11:0.45 12:0.45 13:0.45 14:0.45 15:0.45 16:0.45 17:0.4667 18:0.4667 19:0.4667 20:0.4667 21:0.4667 22:0.4667 23:0.4667 24:0.4833 25:0.4833 26:0.4833 27:0.4833 28:0.5 29:0.5 30:0.5 31:0.5 32:0.5 33:0.5 34:0.5 35:0.5 36:0.5 37:0.5167 38:0.5167 39:0.5333 40:0.5333 41:0.5333 42:0.55 43:0.55 44:0.5667 45:1 46:1 47:1 48:1 49:1 50:1 51:1 52:1 53:1 54:1 55:1 56:1 57:1 58:1 59:1 60:1 61:1 62:1 63:1 64:1 65:1 66:1 67:1 68:1 69:1 70:1 71:1 72:1 73:1 74:1 75:1 76:1 77:1 78:1 79:1 80:1 81:1 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:1 107:1 108:1 109:0.95 110:0.95 111:0.95 112:0.95 113:0.8667 114:0.8333 115:0.7167 116:0.6833 117:0.6667 118:0.65 119:0.6167 120:0.6167 121:0.6167 122:0.6167 123:0.55 124:0.5333 125:0.55 126:0.4833 127:0.4667 128:0.4667 129:0.4667 130:0.4667 131:0.4333 132:0.4333 133:0.4333 134:0.4333 135:0.4333 136:0.4333 137:0.4333 138:0.4333 139:0.4333 140:0.3667 141:0.3667 142:0.33336842 143:0.33336842 144:0.33336842 145:0.33336842 146:0.33336842 147:0.33336842 148:0.33336842 149:0.33336842 150:0.33336842 151:0.33336842 152:0.33336842 153:0.33336842 154:0.43863158 155:0.43863158 156:0.43863158 157:0.4286051 158:0.4286051 159:0.4286051 160:1 161:1 162:1 163:1 164:1 165:1 166:1 167:1 168:1 169:1 170:1 171:1 172:1 173:0.9643213 174:0.94642838 175:0.91074968 176:0.87496384 177:0.83928514 178:0.82139222 179:0.78571352 180:0.7678206 181:0.7678206 182:0.7321419 183:0.7321419 184:0.7321419 185:0.7321419 186:0.7321419 187:0.6964632 188:0.71424898 189:0.71424898 190:0.71424898 191:0.6964632 192:0.75003482 193:0.71424898 194:0.7678206 195:0.71424898 196:0.71424898 197:0.71424898 198:0.71424898 199:0.41071218 200:0.41071218 201:0.37503348 202:0.37503348 203:0.37503348 204:0.37503348 205:0.33924764 206:0.33924764 207:0.33924764 208:0.33924764 209:0.33924764 210:0.33924764 211:0.33924764 212:0.33924764 213:0.33924764 214:0.33924764 215:0.33924764 216:0.33924764 217:0.33924764 218:0.33924764 219:0.33924764 220:0.37503348 221:0.4167 222:0.4167 223:0.4167 224:0.4 225:0.4 226:0.4167 227:0.4 228:0.4167 229:0.4 230:0.4167 231:0.4 232:0.4 233:0.4167 234:0.4 235:0.4167 236:0.4167 237:0.4333 238:0.45 239:0.45 240:0.4667 241:0.4833 242:0.5 243:0.5167 244:0.5333 245:0.55 246:0.5667 247:0.6 248:0.6167 249:0.65 250:0.6667 251:0.7167 252:0.75 253:0.7833 254:0.85 255:0.8667 256:1 257:1 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:1 287:1 288:1 289:1 290:1 291:1 292:1 293:1 294:1 295:1 296:1 297:1 298:1 299:1 300:1 301:1 302:0.8667 303:0.8333 304:0.8167 305:0.8 306:0.8 307:0.8 308:0.8 309:0.8 310:0.7833 311:0.9167 312:0.9 313:0.9 314:0.9 315:0.9167 316:1 317:0.6 318:0.6 319:0.6 320:0.6 321:0.5833 322:0.5833 323:0.6 324:0.5833 325:0.5833 326:0.5667 327:0.5167 328:0.5167 329:0.5167 330:0.5 331:0.5 332:0.5 333:0.5 334:0.5 335:0.5 336:0.5 337:0.5 338:0.5 339:0.5 340:0.5 341:0.4667 342:0.4667 343:0.4667 344:0.4667 345:0.4667 346:0.45 347:0.45 348:0.45 349:0.45 350:0.45 351:0.45 352:0.45 353:0.45 354:0.45 355:0.45 356:0.45 357:0.45 358:0.45 359:0.45 360:0.45 +1.465408862755756 1:0.3667 2:0.3667 3:0.3667 4:0.3667 5:0.3667 6:0.3667 7:0.3667 8:0.3667 9:0.3667 10:0.3667 11:0.3667 12:0.3667 13:0.3667 14:0.3667 15:0.3667 16:0.3667 17:0.3667 18:0.3667 19:0.3833 20:0.3833 21:0.3833 22:0.3833 23:0.3833 24:0.3833 25:0.3833 26:0.3833 27:0.3833 28:0.4 29:0.4 30:0.4 31:0.4 32:0.3833 33:0.4 34:0.4 35:0.4 36:0.4 37:0.4167 38:0.4167 39:0.4167 40:0.4333 41:0.4333 42:0.4333 43:0.45 44:0.45 45:0.45 46:0.4667 47:0.4667 48:0.4667 49:0.4833 50:0.4667 51:0.5667 52:0.5667 53:0.55 54:0.5833 55:0.5833 56:0.6 57:1 58:1 59:1 60:1 61:1 62:1 63:1 64:1 65:1 66:1 67:1 68:1 69:1 70:1 71:1 72:1 73:1 74:1 75:1 76:1 77:1 78:1 79:1 80:1 81:1 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:0.8333 91:0.8333 92:0.8333 93:0.8333 94:0.8333 95:0.8333 96:0.8333 97:0.8333 98:0.8333 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:1 107:1 108:1 109:1 110:1 111:1 112:1 113:1 114:1 115:1 116:1 117:1 118:1 119:1 120:0.9 121:0.9 122:0.7667 123:0.7333 124:0.7333 125:0.7333 126:0.7333 127:0.6667 128:0.65 129:0.6333 130:0.6333 131:0.6167 132:0.6167 133:0.5667 134:0.5667 135:0.6 136:0.5167 137:0.5 138:0.5 139:0.4833 140:0.4833 141:0.4667 142:0.43863158 143:0.43863158 144:0.43863158 145:0.43863158 146:0.43863158 147:0.43863158 148:0.43863158 149:0.43863158 150:0.43863158 151:0.43863158 152:0.43863158 153:0.50873684 154:0.52631579 155:0.52631579 156:0.52631579 157:0.51785542 158:0.4999625 159:0.51785542 160:0.94642838 161:1 162:1 163:1 164:1 165:1 166:1 167:1 168:1 169:1 170:1 171:1 172:1 173:1 174:1 175:1 176:1 177:0.94642838 178:0.85717806 179:0.85717806 180:0.80360644 181:0.80360644 182:0.80360644 183:0.80360644 184:0.80360644 185:0.80360644 186:0.83928514 187:0.80360644 188:0.80360644 189:0.80360644 190:0.80360644 191:0.80360644 192:0.87496384 193:0.78571352 194:0.53574834 195:0.55353412 196:0.53574834 197:0.53574834 198:0.55353412 199:0.53574834 200:0.39281926 201:0.39281926 202:0.39281926 203:0.39281926 204:0.39281926 205:0.39281926 206:0.37503348 207:0.39281926 208:0.37503348 209:0.37503348 210:0.37503348 211:0.37503348 212:0.37503348 213:0.37503348 214:0.37503348 215:0.37503348 216:0.37503348 217:0.37503348 218:0.37503348 219:0.37503348 220:0.39281926 221:0.4333 222:0.4333 223:0.45 224:0.5167 225:0.5333 226:0.5167 227:0.5333 228:0.5167 229:0.5333 230:0.5167 231:0.5333 232:0.55 233:0.55 234:0.5833 235:0.5833 236:0.5667 237:0.5833 238:0.6667 239:0.6667 240:0.6667 241:0.6667 242:0.6667 243:0.6833 244:0.6833 245:0.7167 246:0.7333 247:0.7667 248:0.7833 249:0.8167 250:0.85 251:0.9 252:0.95 253:1 254:1 255:1 256:1 257:1 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:1 287:1 288:1 289:1 290:1 291:1 292:1 293:0.8833 294:0.8833 295:0.8833 296:0.8833 297:0.85 298:0.8333 299:0.8167 300:0.8167 301:0.75 302:0.7333 303:0.7333 304:0.7333 305:0.75 306:0.7 307:0.6167 308:0.6 309:0.6 310:0.6 311:0.6 312:0.6 313:0.6 314:0.6 315:0.5167 316:0.5167 317:0.5 318:0.5 319:0.4833 320:0.4833 321:0.4667 322:0.4667 323:0.4667 324:0.45 325:0.45 326:0.45 327:0.4333 328:0.4333 329:0.4333 330:0.4333 331:0.4167 332:0.4167 333:0.4167 334:0.4167 335:0.4167 336:0.4 337:0.4 338:0.4 339:0.4 340:0.4 341:0.4 342:0.4 343:0.4 344:0.3833 345:0.3667 346:0.3667 347:0.3667 348:0.3667 349:0.3667 350:0.3667 351:0.3667 352:0.3667 353:0.3667 354:0.3667 355:0.3667 356:0.3667 357:0.3667 358:0.3667 359:0.3667 360:0.3667 +0.1148003145982911 1:0.3 2:0.3 3:0.3 4:0.3 5:0.3 6:0.3 7:0.3 8:0.3 9:0.3 10:0.3 11:0.3 12:0.3 13:0.3 14:0.3 15:0.3 16:0.3 17:0.3 18:0.3 19:0.3 20:0.3 21:0.3 22:0.3167 23:0.3167 24:0.3167 25:0.3167 26:0.3167 27:0.3167 28:0.3167 29:0.3167 30:0.3333 31:0.3333 32:0.3333 33:0.3333 34:0.3333 35:0.3333 36:0.35 37:0.35 38:0.35 39:0.35 40:0.3667 41:0.3833 42:0.3667 43:0.3833 44:0.3833 45:0.3833 46:0.4 47:0.4333 48:0.4333 49:0.4333 50:0.4333 51:0.4333 52:0.4333 53:0.5 54:0.5 55:0.5 56:0.9 57:0.7 58:0.7 59:0.7 60:0.7 61:0.7 62:0.7 63:0.7 64:0.7167 65:0.7 66:0.7833 67:0.7833 68:0.7833 69:0.7833 70:0.8167 71:0.8667 72:1 73:1 74:1 75:1 76:1 77:1 78:1 79:1 80:1 81:1 82:1 83:1 84:0.85 85:0.8333 86:0.6333 87:0.6333 88:0.6333 89:0.6333 90:0.6333 91:0.6333 92:0.6333 93:0.6333 94:0.6333 95:1 96:1 97:0.8667 98:0.8833 99:0.7667 100:0.7667 101:0.75 102:0.75 103:0.7167 104:0.7167 105:0.7167 106:0.6667 107:0.6667 108:0.65 109:0.6667 110:0.6667 111:0.65 112:0.6667 113:0.6667 114:0.65 115:0.6667 116:0.5 117:0.4833 118:0.4833 119:0.4833 120:0.4833 121:0.4833 122:0.4833 123:0.4833 124:0.4833 125:0.4833 126:0.4833 127:0.6833 128:0.6833 129:0.6667 130:0.6833 131:0.7 132:0.7 133:0.5833 134:0.5833 135:0.5833 136:0.5833 137:0.5833 138:0.5833 139:0.5833 140:0.5833 141:0.5833 142:0.56136842 143:0.56136842 144:0.57894737 145:0.57894737 146:0.57894737 147:0.59652632 148:0.614 149:0.63157895 150:0.64915789 151:0.73684211 152:0.73684211 153:0.75442105 154:0.77189474 155:0.77189474 156:0.87715789 157:0.87496384 158:0.89285676 159:0.91074968 160:0.94642838 161:1 162:1 163:1 164:1 165:1 166:1 167:1 168:1 169:1 170:1 171:1 172:1 173:1 174:1 175:1 176:1 177:1 178:1 179:1 180:1 181:1 182:1 183:1 184:0.82139222 185:0.82139222 186:0.82139222 187:0.82139222 188:0.7678206 189:0.62499866 190:0.57142704 191:0.48217672 192:0.44639088 193:0.39281926 194:0.39281926 195:0.39281926 196:0.39281926 197:0.39281926 198:0.39281926 199:0.39281926 200:0.39281926 201:0.39281926 202:0.39281926 203:0.39281926 204:0.39281926 205:0.78571352 206:0.78571352 207:0.26789024 208:0.26789024 209:0.24999732 210:0.24999732 211:0.26789024 212:0.24999732 213:0.24999732 214:0.26789024 215:0.24999732 216:0.24999732 217:0.26789024 218:0.24999732 219:0.24999732 220:0.26789024 221:0.3 222:0.3 223:0.4667 224:0.4333 225:0.4333 226:0.4333 227:0.4333 228:0.4333 229:0.4333 230:0.4333 231:0.4333 232:0.4333 233:0.4333 234:0.4333 235:0.4667 236:0.4667 237:0.4667 238:0.4667 239:0.45 240:0.4667 241:0.4833 242:0.4667 243:0.4833 244:0.4667 245:0.4833 246:0.4667 247:0.4667 248:0.4667 249:0.5167 250:0.4667 251:0.5167 252:0.5167 253:0.5167 254:0.5333 255:0.5667 256:0.5667 257:0.6333 258:0.6333 259:0.6333 260:0.7333 261:0.7667 262:0.4167 263:0.4167 264:0.4167 265:0.4167 266:0.4167 267:0.4167 268:0.4167 269:0.4167 270:0.4167 271:0.4167 272:0.4167 273:0.6 274:0.6333 275:0.6333 276:0.6333 277:0.65 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:0.9333 287:0.8667 288:0.8167 289:0.6667 290:0.6333 291:0.6333 292:0.6333 293:0.6333 294:0.6333 295:0.6333 296:0.6167 297:0.6167 298:0.6 299:0.6167 300:0.6167 301:0.55 302:0.55 303:0.55 304:0.55 305:0.55 306:0.55 307:0.55 308:0.55 309:0.55 310:0.55 311:0.7167 312:0.7 313:0.6833 314:0.7 315:0.6833 316:0.3667 317:0.3667 318:0.3667 319:0.3667 320:0.3667 321:0.3667 322:0.3667 323:0.35 324:0.35 325:0.35 326:0.35 327:0.3333 328:0.3333 329:0.3333 330:0.3333 331:0.3333 332:0.3333 333:0.3167 334:0.3167 335:0.3167 336:0.3167 337:0.3167 338:0.3167 339:0.3167 340:0.3167 341:0.3 342:0.3 343:0.3 344:0.3 345:0.3 346:0.3 347:0.3 348:0.3 349:0.3 350:0.3 351:0.3 352:0.3 353:0.3 354:0.3 355:0.3 356:0.3 357:0.3 358:0.3 359:0.3 360:0.3 +0.02954651890168256 1:0.3 2:0.3 3:0.3 4:0.3 5:0.3 6:0.3 7:0.3 8:0.3 9:0.3 10:0.3 11:0.3 12:0.3 13:0.3 14:0.3 15:0.3 16:0.3 17:0.3 18:0.3 19:0.3 20:0.3 21:0.3333 22:0.3333 23:0.3333 24:0.3333 25:0.3333 26:0.3333 27:0.3333 28:0.3333 29:0.35 30:0.35 31:0.35 32:0.3667 33:0.3667 34:0.3667 35:0.3667 36:0.3833 37:0.3833 38:0.3833 39:0.3833 40:0.3833 41:0.3833 42:0.4333 43:0.4333 44:0.4333 45:0.4333 46:0.4333 47:0.4667 48:0.4667 49:0.4667 50:0.85 51:0.85 52:0.8667 53:0.6667 54:0.6667 55:0.6667 56:0.6667 57:0.6667 58:0.6667 59:0.6667 60:0.6667 61:0.6833 62:0.75 63:0.75 64:0.75 65:0.7333 66:0.8833 67:0.8833 68:0.8833 69:1 70:1 71:1 72:1 73:1 74:1 75:1 76:1 77:1 78:1 79:1 80:1 81:0.8667 82:0.8667 83:0.6 84:0.6 85:0.6 86:0.6 87:0.6 88:0.6 89:0.6 90:0.6 91:0.6 92:1 93:0.85 94:0.8333 95:0.8333 96:0.8333 97:0.7167 98:0.7333 99:0.7167 100:0.7167 101:0.7167 102:0.65 103:0.65 104:0.65 105:0.65 106:0.6333 107:0.6333 108:0.6333 109:0.6333 110:0.6333 111:0.6333 112:0.6333 113:0.6333 114:0.45 115:0.45 116:0.45 117:0.45 118:0.45 119:0.45 120:0.45 121:0.45 122:0.45 123:0.45 124:0.45 125:0.45 126:0.45 127:0.6333 128:0.65 129:0.65 130:0.6667 131:0.6667 132:0.65 133:0.6667 134:0.55 135:0.55 136:0.55 137:0.55 138:0.55 139:0.55 140:0.55 141:0.55 142:0.52631579 143:0.52631579 144:0.54389474 145:0.54389474 146:0.57894737 147:0.57894737 148:0.57894737 149:0.59652632 150:0.614 151:0.66663158 152:0.68421053 153:0.71926316 154:0.73684211 155:0.75442105 156:0.78947368 157:0.85717806 158:0.85717806 159:0.87496384 160:0.89285676 161:1 162:1 163:1 164:1 165:1 166:1 167:1 168:1 169:1 170:1 171:1 172:1 173:1 174:1 175:1 176:1 177:1 178:1 179:1 180:1 181:1 182:1 183:1 184:0.82139222 185:0.82139222 186:0.82139222 187:0.82139222 188:0.58931996 189:0.58931996 190:0.58931996 191:0.58931996 192:0.57142704 193:0.48217672 194:0.4642838 195:0.41071218 196:0.39281926 197:0.41071218 198:0.39281926 199:0.41071218 200:0.39281926 201:0.41071218 202:0.39281926 203:0.41071218 204:0.39281926 205:0.41071218 206:0.41071218 207:0.41071218 208:0.57142704 209:0.57142704 210:0.57142704 211:0.26789024 212:0.26789024 213:0.26789024 214:0.26789024 215:0.26789024 216:0.26789024 217:0.26789024 218:0.26789024 219:0.26789024 220:0.26789024 221:0.3167 222:0.3167 223:0.3167 224:0.3167 225:0.3167 226:0.45 227:0.4833 228:0.45 229:0.4833 230:0.45 231:0.45 232:0.4833 233:0.4667 234:0.4667 235:0.4667 236:0.4667 237:0.4667 238:0.4667 239:0.4667 240:0.4667 241:0.4667 242:0.4667 243:0.5 244:0.4833 245:0.4833 246:0.4833 247:0.4833 248:0.4833 249:0.5 250:0.5 251:0.55 252:0.5667 253:0.5667 254:0.6 255:0.6 256:0.6 257:0.7167 258:0.7667 259:0.7833 260:1 261:0.4667 262:0.4667 263:0.4667 264:0.4667 265:0.4667 266:0.4667 267:0.4667 268:0.4667 269:0.4667 270:0.4667 271:0.6333 272:0.6333 273:0.6333 274:0.6333 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:0.9167 285:0.85 286:0.8167 287:0.8167 288:0.65 289:0.65 290:0.6333 291:0.65 292:0.6333 293:0.6333 294:0.6333 295:0.6333 296:0.6333 297:0.5833 298:0.5833 299:0.5833 300:0.5833 301:0.5833 302:0.5833 303:0.5833 304:0.5833 305:0.5833 306:0.5833 307:0.75 308:0.7333 309:0.7167 310:0.7167 311:0.4 312:0.4 313:0.3833 314:0.3833 315:0.3833 316:0.3667 317:0.3667 318:0.3667 319:0.3667 320:0.3667 321:0.3667 322:0.3667 323:0.35 324:0.35 325:0.35 326:0.35 327:0.3333 328:0.3333 329:0.3333 330:0.3333 331:0.3333 332:0.3333 333:0.3167 334:0.3167 335:0.3167 336:0.3167 337:0.3167 338:0.3167 339:0.3167 340:0.3167 341:0.3 342:0.3 343:0.3 344:0.3 345:0.3 346:0.3 347:0.3 348:0.3 349:0.3 350:0.3 351:0.3 352:0.3 353:0.3 354:0.3 355:0.3 356:0.3 357:0.3 358:0.3 359:0.3 360:0.3 +0.1695290082314663 1:0.3333 2:0.3333 3:0.3333 4:0.3333 5:0.3333 6:0.3333 7:0.3333 8:0.3333 9:0.3333 10:0.3333 11:0.35 12:0.35 13:0.35 14:0.35 15:0.35 16:0.35 17:0.35 18:0.35 19:0.35 20:0.3667 21:0.3667 22:0.3667 23:0.3667 24:0.3667 25:0.3667 26:0.3667 27:0.3667 28:0.3833 29:0.4 30:0.4 31:0.4 32:0.4167 33:0.4167 34:0.4167 35:0.4167 36:0.4333 37:0.4333 38:0.4333 39:0.4333 40:0.7833 41:0.7833 42:0.8333 43:0.8333 44:0.65 45:0.6333 46:0.65 47:0.65 48:0.6333 49:0.65 50:0.65 51:0.6333 52:0.65 53:0.7167 54:0.7167 55:0.7167 56:0.7167 57:0.7333 58:0.7167 59:0.7333 60:0.8167 61:0.8167 62:0.8833 63:0.9 64:1 65:1 66:1 67:1 68:1 69:1 70:1 71:1 72:1 73:1 74:1 75:1 76:1 77:0.5333 78:0.5333 79:0.5333 80:0.5333 81:0.5333 82:0.5333 83:0.5333 84:0.5333 85:0.5333 86:0.5333 87:1 88:1 89:1 90:1 91:1 92:1 93:0.8667 94:0.65 95:0.65 96:0.65 97:0.65 98:0.65 99:0.65 100:0.5833 101:0.5833 102:0.5833 103:0.5833 104:0.5833 105:0.5833 106:0.5833 107:0.5667 108:0.55 109:0.55 110:0.3833 111:0.3833 112:0.3833 113:0.3833 114:0.3833 115:0.3833 116:0.3833 117:0.3833 118:0.3833 119:0.3833 120:0.3833 121:0.3833 122:0.3833 123:0.3833 124:0.3833 125:0.5833 126:0.5833 127:0.6 128:0.6 129:0.5 130:0.5 131:0.5 132:0.5 133:0.5 134:0.5 135:0.5 136:0.5 137:0.5 138:0.5 139:0.5 140:0.5 141:0.5167 142:0.49126316 143:0.49126316 144:0.49126316 145:0.50873684 146:0.50873684 147:0.52631579 148:0.54389474 149:0.59652632 150:0.614 151:0.63157895 152:0.64915789 153:0.68421053 154:0.70178947 155:0.82452632 156:0.84210526 157:0.82139222 158:0.85717806 159:1 160:1 161:1 162:1 163:1 164:1 165:1 166:1 167:1 168:1 169:1 170:1 171:1 172:1 173:1 174:1 175:1 176:1 177:1 178:1 179:1 180:1 181:1 182:1 183:1 184:0.9643213 185:0.83928514 186:0.83928514 187:0.82139222 188:0.82139222 189:0.78571352 190:0.55353412 191:0.55353412 192:0.55353412 193:0.55353412 194:0.55353412 195:0.48217672 196:0.4999625 197:0.4999625 198:0.4999625 199:0.41071218 200:0.41071218 201:0.41071218 202:0.41071218 203:0.41071218 204:0.41071218 205:0.41071218 206:0.41071218 207:0.41071218 208:0.41071218 209:0.41071218 210:0.80360644 211:0.51785542 212:0.51785542 213:0.51785542 214:0.30356894 215:0.30356894 216:0.30356894 217:0.30356894 218:0.30356894 219:0.30356894 220:0.30356894 221:0.35 222:0.35 223:0.35 224:0.35 225:0.35 226:0.35 227:0.35 228:0.35 229:0.35 230:0.35 231:0.5167 232:0.5167 233:0.5 234:0.5 235:0.5 236:0.5 237:0.5 238:0.5 239:0.5 240:0.5 241:0.5 242:0.5 243:0.5333 244:0.5167 245:0.5333 246:0.5333 247:0.5333 248:0.5333 249:0.5333 250:0.5333 251:0.6 252:0.6 253:0.6167 254:0.65 255:0.75 256:0.8 257:0.8333 258:0.85 259:0.5 260:0.5 261:0.5 262:0.5 263:0.5 264:0.5 265:0.5 266:0.5 267:0.5 268:0.5 269:0.5 270:0.5 271:0.6833 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:0.9333 282:0.9167 283:0.8667 284:0.85 285:0.8 286:0.6667 287:0.6667 288:0.6667 289:0.6667 290:0.6667 291:0.6667 292:0.6667 293:0.65 294:0.65 295:0.65 296:0.65 297:0.65 298:0.65 299:0.65 300:0.65 301:0.65 302:0.8333 303:0.8 304:0.7833 305:0.7667 306:0.45 307:0.45 308:0.4333 309:0.4167 310:0.4167 311:0.4 312:0.4 313:0.4167 314:0.4 315:0.4 316:0.4 317:0.3833 318:0.3833 319:0.3833 320:0.3667 321:0.3833 322:0.3667 323:0.3833 324:0.3667 325:0.3667 326:0.3667 327:0.3667 328:0.35 329:0.35 330:0.35 331:0.35 332:0.35 333:0.35 334:0.3333 335:0.3333 336:0.3333 337:0.3333 338:0.3333 339:0.3333 340:0.3333 341:0.3333 342:0.3167 343:0.3333 344:0.3333 345:0.3167 346:0.3333 347:0.3333 348:0.3333 349:0.3333 350:0.3333 351:0.3333 352:0.3333 353:0.3167 354:0.3333 355:0.3333 356:0.3333 357:0.3333 358:0.3333 359:0.3333 360:0.3333 +0.8249243289866591 1:0.3167 2:0.3167 3:0.3167 4:0.3167 5:0.3167 6:0.4167 7:0.4167 8:0.4167 9:0.4167 10:0.4167 11:0.4167 12:0.4167 13:0.4167 14:0.4333 15:0.5 16:0.5167 17:1 18:1 19:1 20:1 21:1 22:1 23:1 24:1 25:1 26:0.9333 27:0.85 28:0.8333 29:0.8 30:0.7667 31:0.75 32:0.75 33:0.7667 34:0.75 35:0.75 36:0.75 37:1 38:0.7 39:0.7 40:0.65 41:0.6333 42:0.65 43:0.5667 44:0.5667 45:0.65 46:0.5667 47:0.6333 48:0.5667 49:0.5667 50:0.5333 51:0.5333 52:0.4833 53:0.4833 54:0.4833 55:0.4667 56:0.4667 57:0.4667 58:0.45 59:0.45 60:0.45 61:0.45 62:0.4333 63:0.4333 64:0.4333 65:0.4333 66:0.4333 67:0.4167 68:0.4167 69:0.4167 70:0.4167 71:0.4167 72:0.4167 73:0.4167 74:0.4167 75:0.4167 76:0.4167 77:0.4167 78:0.4167 79:0.4167 80:0.4167 81:0.4167 82:0.4167 83:0.4167 84:0.4167 85:0.4167 86:0.4167 87:0.4167 88:0.4333 89:0.4333 90:0.4333 91:0.4333 92:0.4333 93:0.4333 94:0.4333 95:0.4333 96:0.4333 97:0.6333 98:0.6333 99:0.65 100:0.6333 101:0.45 102:0.45 103:0.45 104:0.45 105:0.45 106:0.4333 107:0.45 108:0.4333 109:0.45 110:0.4333 111:0.45 112:0.4333 113:0.45 114:0.4333 115:0.45 116:0.45 117:0.45 118:0.45 119:0.45 120:0.4667 121:0.4667 122:0.4667 123:0.4667 124:0.4833 125:0.4833 126:0.4833 127:0.5 128:0.5 129:0.8333 130:0.6167 131:0.6 132:0.6333 133:0.6167 134:0.6 135:0.6333 136:0.6 137:0.6333 138:0.6333 139:0.7167 140:0.6833 141:0.6833 142:0.84210526 143:0.77189474 144:0.77189474 145:0.77189474 146:0.84210526 147:0.84210526 148:1 149:1 150:1 151:1 152:1 153:1 154:1 155:1 156:1 157:0.35714056 158:0.32146186 159:0.32146186 160:0.32146186 161:0.32146186 162:0.32146186 163:0.21431862 164:0.21431862 165:0.21431862 166:0.21431862 167:0.21431862 168:0.21431862 169:0.21431862 170:0.21431862 171:0.21431862 172:0.21431862 173:0.21431862 174:0.21431862 175:0.160747 176:0.160747 177:0.160747 178:0.160747 179:0.160747 180:0.160747 181:0.160747 182:0.160747 183:0.160747 184:0.160747 185:0.160747 186:0.160747 187:0.160747 188:0.160747 189:0.10717538 190:0.10717538 191:0.12496116 192:0.12496116 193:0.12496116 194:0.12496116 195:0.12496116 196:0.089282462 197:0.089282462 198:0.089282462 199:0.089282462 200:0.089282462 201:0.089282462 202:0.089282462 203:0.089282462 204:0.089282462 205:0.089282462 206:0.089282462 207:0.089282462 208:0.089282462 209:0.089282462 210:0.089282462 211:0.089282462 212:0.089282462 213:0.10717538 214:0.089282462 215:0.089282462 216:0.089282462 217:0.089282462 218:0.089282462 219:0.089282462 220:0.089282462 221:0.15 222:0.15 223:0.15 224:0.15 225:0.1667 226:0.1667 227:0.1667 228:0.1667 229:0.1667 230:0.1667 231:0.1667 232:0.1667 233:0.1667 234:0.1667 235:0.1667 236:0.1667 237:0.1667 238:0.1667 239:0.1667 240:0.1667 241:0.1667 242:0.1667 243:0.1667 244:0.1667 245:0.1667 246:0.2 247:0.2 248:0.2 249:0.2 250:0.2 251:0.2333 252:0.2333 253:0.2333 254:0.2333 255:0.2333 256:0.2333 257:0.2333 258:0.25 259:0.3833 260:0.3833 261:0.4333 262:0.4333 263:0.4333 264:0.4667 265:0.55 266:0.5667 267:0.5833 268:0.8833 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:0.9 282:0.8333 283:0.8333 284:0.85 285:0.7833 286:0.6167 287:0.6167 288:0.5333 289:0.5167 290:0.5167 291:0.5167 292:0.4333 293:0.4333 294:0.4333 295:0.4333 296:0.4167 297:0.4 298:0.3833 299:0.3 300:0.3 301:0.3167 302:0.3 303:0.3 304:0.3167 305:0.3 306:0.3 307:0.3 308:0.3 309:0.3 310:0.3 311:0.3 312:0.3 313:0.3 314:0.3 315:0.3 316:0.2833 317:0.2833 318:0.3 319:0.2833 320:0.2833 321:0.2833 322:0.2833 323:0.2667 324:0.2667 325:0.2833 326:0.2833 327:0.2667 328:0.2833 329:0.2833 330:0.2667 331:0.2667 332:0.4 333:0.2667 334:0.2667 335:0.2833 336:0.2667 337:0.2667 338:0.2833 339:0.2667 340:0.2833 341:0.2833 342:0.2833 343:0.2833 344:0.2833 345:0.2833 346:0.2833 347:0.2833 348:0.2833 349:0.2833 350:0.2833 351:0.2833 352:0.2833 353:0.2833 354:0.2833 355:0.2833 356:0.2833 357:0.2833 358:0.2833 359:0.2833 360:0.3167 +0.01963656411216134 1:1 2:1 3:1 4:1 5:1 6:1 7:1 8:1 9:1 10:1 11:1 12:0.7333 13:0.6 14:0.55 15:0.5167 16:0.5 17:0.5 18:0.5 19:0.45 20:0.45 21:0.4167 22:0.4167 23:0.3833 24:0.3833 25:0.35 26:0.35 27:0.35 28:0.35 29:0.35 30:0.35 31:0.35 32:0.3 33:0.3 34:0.3 35:0.2833 36:0.2833 37:0.3 38:0.2833 39:0.2833 40:0.3 41:0.2833 42:0.2833 43:0.2333 44:0.2333 45:0.2333 46:0.2333 47:0.2333 48:0.2 49:0.2 50:0.2 51:0.2 52:0.1833 53:0.1833 54:0.1833 55:0.1833 56:0.1833 57:0.1833 58:0.1833 59:0.1833 60:0.1833 61:0.1667 62:0.1667 63:0.1667 64:0.1667 65:0.1667 66:0.1667 67:0.1667 68:0.1667 69:0.1667 70:0.1667 71:0.1667 72:0.1667 73:0.1667 74:0.1667 75:0.1667 76:0.1667 77:0.1667 78:0.1667 79:0.1667 80:0.1667 81:0.1667 82:0.1667 83:0.1667 84:0.1667 85:0.1667 86:0.1667 87:0.1667 88:0.1667 89:0.1667 90:0.1667 91:0.1667 92:0.1667 93:0.1667 94:0.1667 95:0.1667 96:0.1667 97:0.1667 98:0.1667 99:0.1667 100:0.1667 101:0.1667 102:0.1667 103:0.1667 104:0.1667 105:0.1667 106:0.1667 107:0.1667 108:0.1667 109:0.1667 110:0.1667 111:0.1667 112:0.1667 113:0.1667 114:0.1667 115:0.1667 116:0.1667 117:0.1667 118:0.1667 119:0.1667 120:0.1667 121:0.1667 122:0.1833 123:0.1833 124:0.1833 125:0.1833 126:0.1833 127:0.1833 128:0.1833 129:0.1833 130:0.1833 131:0.2 132:0.2 133:0.2 134:0.2 135:0.2 136:0.2 137:0.25 138:0.2833 139:0.2833 140:0.2833 141:0.2833 142:0.24557895 143:0.24557895 144:0.24557895 145:0.22810526 146:0.24557895 147:0.24557895 148:0.26315789 149:0.26315789 150:0.26315789 151:0.28073684 152:0.31578947 153:0.29821053 154:0.31578947 155:0.33336842 156:0.33336842 157:0.33924764 158:0.35714056 159:0.51785542 160:0.51785542 161:0.51785542 162:0.58931996 163:1 164:1 165:1 166:1 167:1 168:1 169:1 170:1 171:1 172:1 173:1 174:1 175:1 176:1 177:1 178:1 179:1 180:0.91074968 181:0.91074968 182:0.7678206 183:0.7678206 184:0.51785542 185:0.51785542 186:0.51785542 187:0.51785542 188:0.44639088 189:0.41071218 190:0.41071218 191:0.39281926 192:0.39281926 193:0.39281926 194:0.39281926 195:0.39281926 196:0.39281926 197:0.39281926 198:0.39281926 199:0.39281926 200:0.39281926 201:0.39281926 202:0.39281926 203:0.39281926 204:0.33924764 205:0.33924764 206:0.33924764 207:0.33924764 208:0.33924764 209:0.33924764 210:0.28567602 211:0.28567602 212:0.28567602 213:0.28567602 214:0.28567602 215:0.28567602 216:0.28567602 217:0.28567602 218:0.28567602 219:0.28567602 220:0.28567602 221:0.3333 222:0.3333 223:0.3667 224:0.3667 225:0.35 226:0.35 227:0.35 228:0.35 229:0.35 230:0.35 231:0.35 232:0.35 233:0.35 234:0.35 235:0.35 236:0.35 237:0.35 238:0.35 239:0.3833 240:0.3833 241:0.3833 242:0.3833 243:0.3833 244:0.3833 245:0.3833 246:0.3833 247:0.3833 248:0.4 249:0.45 250:0.4 251:0.45 252:0.45 253:0.45 254:0.45 255:0.45 256:0.4833 257:0.5833 258:0.6333 259:0.6667 260:0.6667 261:0.7167 262:0.8 263:0.8 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:0.75 279:0.75 280:0.6833 281:0.5167 282:0.5 283:0.5 284:0.5 285:0.4667 286:0.4833 287:0.45 288:0.45 289:0.45 290:0.45 291:0.4167 292:0.4167 293:0.4167 294:0.4 295:0.4 296:0.4 297:0.4 298:0.3833 299:0.3833 300:0.3833 301:0.3833 302:0.3833 303:0.3833 304:0.3833 305:0.3667 306:0.3667 307:0.3833 308:0.3667 309:0.3667 310:0.3833 311:0.3667 312:0.3667 313:0.3667 314:0.3667 315:0.3667 316:0.3667 317:0.3667 318:0.3667 319:0.6167 320:0.3667 321:0.3667 322:0.3667 323:0.3667 324:0.6167 325:0.9167 326:0.95 327:0.4 328:0.4 329:0.4 330:0.3833 331:0.4 332:0.4 333:0.4 334:0.4 335:0.3833 336:0.4 337:0.3833 338:0.4 339:0.3833 340:0.4167 341:0.4167 342:0.4167 343:0.4167 344:0.4167 345:0.4667 346:0.4667 347:0.4667 348:0.4667 349:0.4667 350:0.6167 351:0.6167 352:0.6167 353:0.6833 354:0.85 355:1 356:1 357:1 358:1 359:1 360:1 +0.121763739226158 1:0.4333 2:0.4333 3:0.4333 4:0.4333 5:1 6:1 7:1 8:1 9:1 10:1 11:1 12:1 13:1 14:1 15:1 16:1 17:0.8667 18:0.8667 19:0.8667 20:0.8667 21:0.75 22:0.7333 23:0.6833 24:0.6167 25:0.6 26:0.5667 27:0.55 28:0.5333 29:0.5167 30:0.5167 31:0.5167 32:0.5 33:0.5167 34:0.5167 35:0.5167 36:0.5167 37:0.45 38:0.45 39:0.45 40:0.45 41:0.45 42:0.4167 43:0.4167 44:0.4167 45:0.4167 46:0.4167 47:0.4167 48:0.4167 49:0.4167 50:0.4167 51:0.3833 52:0.3333 53:0.3333 54:0.3333 55:0.3333 56:0.3167 57:0.3167 58:0.3167 59:0.3167 60:0.3167 61:0.3167 62:0.3 63:0.3 64:0.3 65:0.3 66:0.3 67:0.3 68:0.3 69:0.3 70:0.2833 71:0.3 72:0.3 73:0.3 74:0.2833 75:0.2833 76:0.2833 77:0.2833 78:0.2833 79:0.2833 80:0.2833 81:0.2833 82:0.2833 83:0.2833 84:0.2833 85:0.2833 86:0.2833 87:0.2833 88:0.2833 89:0.2833 90:0.3 91:0.3 92:0.3 93:0.3 94:0.3 95:0.3 96:0.3167 97:0.3167 98:0.3167 99:0.3167 100:0.3167 101:0.3167 102:0.3167 103:0.3167 104:0.3167 105:0.3167 106:0.3167 107:0.3167 108:0.3167 109:0.3167 110:0.3167 111:0.3167 112:0.3167 113:0.3167 114:0.3167 115:0.3167 116:0.3167 117:0.3167 118:0.3167 119:0.3167 120:0.3333 121:0.3333 122:0.3333 123:0.3333 124:0.3333 125:0.3333 126:0.35 127:0.35 128:0.35 129:0.35 130:0.4333 131:0.45 132:0.45 133:0.45 134:0.45 135:0.45 136:0.45 137:0.45 138:0.45 139:0.4333 140:0.45 141:0.45 142:0.43863158 143:0.45610526 144:0.45610526 145:0.50873684 146:0.50873684 147:0.63157895 148:0.63157895 149:0.614 150:0.63157895 151:0.66663158 152:0.66663158 153:0.70178947 154:0.70178947 155:0.71926316 156:0.75442105 157:1 158:1 159:1 160:1 161:1 162:1 163:1 164:1 165:1 166:1 167:1 168:1 169:1 170:1 171:1 172:0.51785542 173:0.51785542 174:0.41071218 175:0.41071218 176:0.39281926 177:0.39281926 178:0.39281926 179:0.39281926 180:0.39281926 181:0.39281926 182:0.39281926 183:0.28567602 184:0.28567602 185:0.28567602 186:0.28567602 187:0.28567602 188:0.28567602 189:0.28567602 190:0.28567602 191:0.28567602 192:0.28567602 193:0.2321044 194:0.2321044 195:0.2321044 196:0.2321044 197:0.21431862 198:0.21431862 199:0.21431862 200:0.2321044 201:0.21431862 202:0.21431862 203:0.2321044 204:0.21431862 205:0.21431862 206:0.21431862 207:0.21431862 208:0.21431862 209:0.21431862 210:0.24999732 211:0.21431862 212:0.21431862 213:0.2321044 214:0.2321044 215:0.21431862 216:0.2321044 217:0.2321044 218:0.21431862 219:0.21431862 220:0.2321044 221:0.2833 222:0.2833 223:0.2833 224:0.2833 225:0.2833 226:0.2833 227:0.3 228:0.3 229:0.3 230:0.3 231:0.3 232:0.3 233:0.3 234:0.3 235:0.3 236:0.3 237:0.3 238:0.3 239:0.3 240:0.3 241:0.35 242:0.35 243:0.3667 244:0.35 245:0.3667 246:0.3667 247:0.3833 248:0.45 249:0.45 250:0.45 251:0.45 252:0.45 253:0.45 254:0.5333 255:0.5667 256:0.5667 257:0.5833 258:0.6333 259:0.65 260:0.65 261:0.7167 262:0.9333 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:0.9333 277:0.6 278:0.6 279:0.6 280:0.6 281:0.5333 282:0.3833 283:0.3833 284:0.3833 285:0.3833 286:0.3833 287:0.3833 288:0.3667 289:0.3667 290:0.3667 291:0.3167 292:0.3167 293:0.3167 294:0.3167 295:0.3 296:0.3167 297:0.3167 298:0.3167 299:0.3167 300:0.3167 301:0.3167 302:0.3167 303:0.3167 304:0.3167 305:0.3167 306:0.3167 307:0.3 308:0.3167 309:0.2833 310:0.2833 311:0.2833 312:0.2833 313:0.2833 314:0.3167 315:0.2833 316:0.2833 317:0.2833 318:0.4 319:0.2833 320:0.2833 321:0.2833 322:0.2833 323:0.2833 324:0.2833 325:0.2833 326:0.2833 327:0.5167 328:0.2833 329:0.2833 330:0.5167 331:0.2833 332:0.2833 333:0.5167 334:0.2833 335:0.2833 336:0.2833 337:0.2833 338:0.2833 339:0.2833 340:0.6167 341:0.6167 342:0.7 343:0.7 344:0.3333 345:0.3333 346:0.3333 347:0.3333 348:0.3333 349:0.3333 350:0.3333 351:0.3333 352:0.3333 353:0.3333 354:0.3333 355:0.3333 356:0.3333 357:0.35 358:0.3667 359:0.3667 360:0.4333 +0.02385970978229091 1:0.3333 2:0.3333 3:0.3333 4:0.3333 5:0.3333 6:0.3333 7:0.3333 8:0.3667 9:0.3667 10:0.4167 11:0.4167 12:0.4167 13:0.4167 14:0.45 15:0.45 16:0.45 17:0.75 18:0.75 19:0.7667 20:0.7667 21:1 22:1 23:1 24:1 25:1 26:1 27:1 28:1 29:1 30:1 31:1 32:1 33:1 34:1 35:1 36:1 37:1 38:1 39:1 40:1 41:1 42:1 43:1 44:1 45:1 46:0.4833 47:0.4833 48:0.4833 49:0.4833 50:0.4833 51:0.4833 52:0.4833 53:0.4833 54:0.4833 55:0.4833 56:0.4833 57:0.6167 58:0.6167 59:0.6167 60:0.6167 61:0.6 62:0.6167 63:0.6167 64:0.25 65:0.25 66:0.25 67:0.2333 68:0.2333 69:0.2333 70:0.2333 71:0.25 72:0.2333 73:0.2333 74:0.25 75:0.25 76:0.25 77:0.2333 78:0.25 79:0.25 80:0.2333 81:0.2333 82:0.2333 83:0.2333 84:0.2333 85:0.2333 86:0.2833 87:0.2833 88:0.2833 89:0.2833 90:0.2833 91:0.2833 92:0.2833 93:0.2833 94:0.2833 95:0.2833 96:0.3833 97:0.3833 98:0.3667 99:0.3833 100:0.3667 101:0.3833 102:0.3833 103:0.3667 104:0.3667 105:0.3667 106:0.3667 107:0.3667 108:0.3667 109:0.3667 110:0.3667 111:0.3667 112:0.3667 113:0.3667 114:0.3667 115:0.3833 116:0.3833 117:0.2833 118:0.2833 119:0.2833 120:0.2833 121:0.2833 122:0.2833 123:0.2833 124:0.2833 125:0.2833 126:0.2833 127:0.2833 128:0.2833 129:0.2833 130:0.2833 131:0.2833 132:0.2833 133:0.2333 134:0.2333 135:0.25 136:0.25 137:0.25 138:0.25 139:0.25 140:0.25 141:0.25 142:0.21052632 143:0.21052632 144:0.21052632 145:0.19294737 146:0.21052632 147:0.21052632 148:0.21052632 149:0.19294737 150:0.21052632 151:0.21052632 152:0.21052632 153:0.36842105 154:0.31578947 155:0.386 156:0.36842105 157:0.37503348 158:0.35714056 159:0.4999625 160:0.35714056 161:0.4999625 162:0.4999625 163:0.4999625 164:0.4999625 165:0.4999625 166:0.53574834 167:0.55353412 168:0.53574834 169:0.55353412 170:0.55353412 171:0.57142704 172:0.57142704 173:0.58931996 174:0.58931996 175:0.58931996 176:0.58931996 177:0.58931996 178:0.64289158 179:0.64289158 180:0.64289158 181:0.64289158 182:0.71424898 183:0.85717806 184:1 185:1 186:1 187:1 188:1 189:1 190:1 191:1 192:1 193:1 194:1 195:1 196:1 197:1 198:1 199:1 200:1 201:1 202:1 203:0.98210708 204:0.98210708 205:0.83928514 206:0.66067736 207:0.64289158 208:0.4999625 209:0.48217672 210:0.48217672 211:0.48217672 212:0.35714056 213:0.35714056 214:0.35714056 215:0.26789024 216:0.24999732 217:0.24999732 218:0.24999732 219:0.2321044 220:0.1964257 221:0.2167 222:0.2167 223:0.2167 224:0.2167 225:0.2167 226:0.2 227:0.2 228:0.2167 229:0.2167 230:0.2167 231:0.2 232:0.2167 233:0.2167 234:0.2167 235:0.2 236:0.2167 237:0.2167 238:0.2167 239:0.2167 240:0.2 241:0.2167 242:0.2167 243:0.2 244:0.2 245:0.25 246:0.25 247:0.25 248:0.25 249:0.2333 250:0.25 251:0.25 252:0.2333 253:0.2333 254:0.25 255:0.3833 256:0.8 257:0.3833 258:0.3833 259:0.3833 260:0.3833 261:0.3833 262:0.3833 263:0.3833 264:0.3833 265:0.3833 266:0.3833 267:0.3833 268:0.3833 269:0.3833 270:0.4833 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:0.9833 284:0.8167 285:0.8167 286:0.7667 287:0.7667 288:0.7167 289:0.65 290:0.5667 291:0.55 292:0.4833 293:0.4833 294:0.4833 295:0.4667 296:0.4167 297:0.4 298:0.4167 299:0.4 300:0.4167 301:0.3833 302:0.3667 303:0.3667 304:0.35 305:0.3167 306:0.3167 307:0.3167 308:0.3167 309:0.3167 310:0.3167 311:0.3167 312:0.3167 313:0.3167 314:0.3167 315:0.3167 316:0.3167 317:0.3167 318:0.3167 319:0.3833 320:0.3833 321:0.3833 322:0.3833 323:0.5333 324:0.5333 325:0.5333 326:0.5333 327:0.5167 328:0.5167 329:0.4833 330:0.4833 331:0.5 332:0.4833 333:0.5 334:0.4833 335:0.4833 336:0.4667 337:0.4667 338:0.45 339:0.45 340:0.3167 341:0.2833 342:0.2833 343:0.2833 344:0.2833 345:0.2833 346:0.2833 347:0.3 348:0.2833 349:0.2833 350:0.3 351:0.2833 352:0.2833 353:0.2833 354:0.2833 355:0.2833 356:0.2833 357:0.3333 358:0.3333 359:0.3333 360:0.3333 +0.1020957440900423 1:0.3167 2:0.3167 3:0.3167 4:0.3167 5:0.3167 6:0.3167 7:0.3167 8:0.3167 9:0.35 10:0.35 11:0.4 12:0.4 13:0.4 14:0.4333 15:0.4333 16:0.4333 17:0.7333 18:0.7333 19:0.75 20:0.75 21:1 22:1 23:1 24:1 25:1 26:1 27:1 28:1 29:1 30:1 31:1 32:1 33:1 34:1 35:1 36:1 37:1 38:1 39:1 40:1 41:1 42:1 43:1 44:1 45:1 46:1 47:0.4833 48:0.4667 49:0.4667 50:0.4667 51:0.4667 52:0.4667 53:0.4667 54:0.4667 55:0.4667 56:0.4667 57:0.4667 58:0.4833 59:0.4833 60:0.6 61:0.6 62:0.6 63:0.6 64:0.6 65:0.6 66:0.6 67:0.2333 68:0.2333 69:0.2333 70:0.2333 71:0.2333 72:0.2333 73:0.2333 74:0.2333 75:0.2333 76:0.2333 77:0.2333 78:0.2333 79:0.2333 80:0.2333 81:0.2333 82:0.2333 83:0.2333 84:0.2333 85:0.2333 86:0.2333 87:0.2333 88:0.2333 89:0.2333 90:0.2833 91:0.2833 92:0.2833 93:0.2833 94:0.2833 95:0.2833 96:0.2833 97:0.2833 98:0.2833 99:0.3833 100:0.3833 101:0.3833 102:0.3833 103:0.3833 104:0.3833 105:0.3667 106:0.3667 107:0.3667 108:0.3667 109:0.3667 110:0.3833 111:0.3667 112:0.3833 113:0.3667 114:0.3667 115:0.3667 116:0.3667 117:0.3667 118:0.4 119:0.4 120:0.3833 121:0.2833 122:0.3 123:0.3 124:0.2833 125:0.2833 126:0.2833 127:0.2833 128:0.2833 129:0.2833 130:0.2833 131:0.2833 132:0.2833 133:0.2833 134:0.2833 135:0.25 136:0.25 137:0.25 138:0.2667 139:0.25 140:0.25 141:0.25 142:0.22810526 143:0.21052632 144:0.21052632 145:0.22810526 146:0.21052632 147:0.21052632 148:0.21052632 149:0.21052632 150:0.21052632 151:0.21052632 152:0.21052632 153:0.22810526 154:0.33336842 155:0.33336842 156:0.33336842 157:0.37503348 158:0.37503348 159:0.37503348 160:0.37503348 161:0.37503348 162:0.4999625 163:0.51785542 164:0.51785542 165:0.51785542 166:0.51785542 167:0.55353412 168:0.55353412 169:0.57142704 170:0.57142704 171:0.58931996 172:0.58931996 173:0.60710574 174:0.60710574 175:0.60710574 176:0.60710574 177:0.60710574 178:0.66067736 179:0.66067736 180:0.66067736 181:0.66067736 182:0.7321419 183:0.87496384 184:1 185:1 186:1 187:1 188:1 189:1 190:1 191:1 192:1 193:1 194:1 195:1 196:1 197:1 198:1 199:1 200:1 201:1 202:1 203:1 204:0.85717806 205:0.85717806 206:0.66067736 207:0.66067736 208:0.4999625 209:0.4999625 210:0.4999625 211:0.37503348 212:0.37503348 213:0.37503348 214:0.26789024 215:0.26789024 216:0.24999732 217:0.24999732 218:0.21431862 219:0.21431862 220:0.17853278 221:0.2167 222:0.2167 223:0.2167 224:0.2167 225:0.2167 226:0.2167 227:0.2167 228:0.2167 229:0.2167 230:0.2167 231:0.2167 232:0.2167 233:0.2167 234:0.2167 235:0.2167 236:0.2167 237:0.2167 238:0.2167 239:0.2167 240:0.2167 241:0.2167 242:0.2167 243:0.25 244:0.25 245:0.25 246:0.25 247:0.25 248:0.25 249:0.25 250:0.25 251:0.2667 252:0.4 253:0.4 254:0.4 255:0.4 256:0.3833 257:0.3833 258:0.3833 259:0.3833 260:0.3833 261:0.3833 262:0.3833 263:0.3833 264:0.3833 265:0.3833 266:0.3833 267:0.3833 268:0.4833 269:0.8167 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:0.9667 283:0.8 284:0.7667 285:0.7667 286:0.7667 287:0.6333 288:0.55 289:0.55 290:0.4833 291:0.4667 292:0.4833 293:0.4167 294:0.4 295:0.4 296:0.4 297:0.4 298:0.3833 299:0.3667 300:0.3667 301:0.35 302:0.3 303:0.3 304:0.3 305:0.3 306:0.3 307:0.3 308:0.3 309:0.3 310:0.3 311:0.3 312:0.3 313:0.3 314:0.3 315:0.3 316:0.3 317:0.3 318:0.3833 319:0.3667 320:0.3667 321:0.5167 322:0.5167 323:0.5167 324:0.5167 325:0.5167 326:0.5 327:0.5 328:0.5 329:0.4667 330:0.4833 331:0.4667 332:0.4833 333:0.4667 334:0.4667 335:0.45 336:0.45 337:0.45 338:0.4333 339:0.3 340:0.2667 341:0.2667 342:0.2667 343:0.2833 344:0.2667 345:0.2667 346:0.2833 347:0.2833 348:0.2667 349:0.2667 350:0.2833 351:0.2667 352:0.2667 353:0.2667 354:0.2667 355:0.2667 356:0.2833 357:0.3167 358:0.3167 359:0.3167 360:0.3167 +0.008936277474449287 1:0.4333 2:0.4333 3:0.4333 4:0.4333 5:0.4667 6:0.4667 7:0.4667 8:0.5333 9:0.6 10:0.6 11:0.6 12:0.6 13:0.7667 14:0.7667 15:0.7667 16:0.7667 17:0.9333 18:1 19:1 20:1 21:1 22:1 23:1 24:1 25:1 26:1 27:1 28:1 29:1 30:1 31:1 32:1 33:1 34:1 35:1 36:1 37:1 38:1 39:1 40:0.4333 41:0.45 42:0.45 43:0.45 44:0.45 45:0.45 46:0.45 47:0.45 48:0.45 49:0.4333 50:0.45 51:0.3167 52:0.3167 53:0.3167 54:0.2 55:0.1833 56:0.1833 57:0.1833 58:0.1833 59:0.1833 60:0.1833 61:0.1833 62:0.1833 63:0.1833 64:0.1833 65:0.1833 66:0.1833 67:0.1833 68:0.1833 69:0.1833 70:0.1833 71:0.1833 72:0.1833 73:0.1833 74:0.1833 75:0.1833 76:0.1833 77:0.1833 78:0.1833 79:0.2 80:0.2167 81:0.2167 82:0.2167 83:0.2167 84:0.2167 85:0.2167 86:0.2167 87:0.2167 88:0.2167 89:0.2 90:0.2 91:0.2 92:0.2 93:0.2 94:0.2 95:0.2 96:0.2 97:0.2 98:0.2 99:0.2 100:0.2 101:0.2 102:0.2 103:0.2 104:0.2 105:0.2 106:0.2 107:0.2 108:0.2 109:0.2 110:0.2 111:0.3 112:0.3167 113:0.3167 114:0.3167 115:0.3167 116:0.3167 117:0.3167 118:0.3167 119:0.3167 120:0.3167 121:0.3167 122:0.3167 123:0.3167 124:0.3167 125:0.3167 126:0.3167 127:0.3167 128:0.3333 129:0.3333 130:0.3167 131:0.3333 132:0.3333 133:0.3167 134:0.3333 135:0.3333 136:0.3167 137:0.3333 138:0.3333 139:0.3333 140:0.35 141:0.25 142:0.14031579 143:0.14031579 144:0.14031579 145:0.15789474 146:0.15789474 147:0.14031579 148:0.14031579 149:0.14031579 150:0.15789474 151:0.15789474 152:0.15789474 153:0.14031579 154:0.15789474 155:0.15789474 156:0.15789474 157:0.12496116 158:0.12496116 159:0.14285408 160:0.14285408 161:0.12496116 162:0.12496116 163:0.12496116 164:0.14285408 165:0.14285408 166:0.32146186 167:0.32146186 168:0.32146186 169:0.32146186 170:0.33924764 171:0.58931996 172:0.58931996 173:0.58931996 174:0.58931996 175:0.58931996 176:0.62499866 177:0.62499866 178:0.62499866 179:0.62499866 180:0.62499866 181:0.64289158 182:0.66067736 183:0.66067736 184:0.67857028 185:0.67857028 186:0.6964632 187:0.6964632 188:0.6964632 189:1 190:1 191:1 192:1 193:1 194:1 195:1 196:1 197:1 198:1 199:1 200:1 201:1 202:1 203:1 204:1 205:1 206:1 207:1 208:0.98210708 209:0.67857028 210:0.67857028 211:0.67857028 212:0.67857028 213:0.62499866 214:0.4999625 215:0.4999625 216:0.4999625 217:0.4999625 218:0.4999625 219:0.44639088 220:0.39281926 221:0.4333 222:0.4333 223:0.4333 224:0.4333 225:0.35 226:0.35 227:0.35 228:0.3333 229:0.3333 230:0.3333 231:0.3167 232:0.3 233:0.2667 234:0.2667 235:0.2833 236:0.2833 237:0.2667 238:0.25 239:0.25 240:0.25 241:0.2667 242:0.2667 243:0.25 244:0.2667 245:0.2667 246:0.25 247:0.25 248:0.2833 249:0.2667 250:0.25 251:0.2833 252:0.2667 253:0.25 254:0.25 255:0.2833 256:0.2833 257:0.2833 258:0.2833 259:0.2833 260:0.3 261:0.4333 262:0.4333 263:0.4333 264:0.4333 265:0.4333 266:0.4333 267:0.4333 268:0.4333 269:0.4333 270:0.4833 271:0.4833 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:0.9667 284:0.9667 285:0.8167 286:0.8167 287:0.8167 288:0.8167 289:0.8167 290:0.7 291:0.5667 292:0.5667 293:0.5667 294:0.4833 295:0.4667 296:0.45 297:0.4667 298:0.4167 299:0.4167 300:0.4167 301:0.4167 302:0.4167 303:0.4167 304:0.4167 305:0.4 306:0.4167 307:0.4 308:0.4167 309:0.4167 310:0.4167 311:0.4167 312:0.4 313:0.4167 314:0.4 315:0.4333 316:0.4333 317:0.4333 318:0.4333 319:0.4333 320:0.5833 321:0.25 322:0.25 323:0.25 324:0.25 325:0.25 326:0.25 327:0.25 328:0.25 329:0.25 330:0.25 331:0.25 332:0.25 333:0.25 334:0.25 335:0.25 336:0.25 337:0.25 338:0.25 339:0.25 340:0.25 341:0.35 342:0.3333 343:0.5667 344:0.35 345:0.3333 346:0.35 347:0.35 348:0.35 349:0.35 350:0.35 351:0.35 352:0.35 353:0.35 354:0.35 355:0.35 356:0.35 357:0.35 358:0.4167 359:0.4167 360:0.4333 +0.04463601072592369 1:0.4167 2:0.4167 3:0.4333 4:0.4333 5:0.45 6:0.45 7:0.45 8:0.45 9:0.4833 10:0.6167 11:0.6333 12:0.6333 13:0.6333 14:0.65 15:0.7833 16:0.7833 17:0.7833 18:0.95 19:1 20:1 21:1 22:1 23:1 24:1 25:1 26:1 27:1 28:1 29:1 30:1 31:1 32:1 33:1 34:1 35:1 36:1 37:1 38:1 39:1 40:1 41:0.4833 42:0.4667 43:0.4833 44:0.4667 45:0.4833 46:0.4667 47:0.4833 48:0.4667 49:0.4833 50:0.4333 51:0.4333 52:0.3333 53:0.3333 54:0.2333 55:0.2167 56:0.2167 57:0.2167 58:0.2167 59:0.2167 60:0.2167 61:0.2167 62:0.2167 63:0.2167 64:0.2333 65:0.2167 66:0.2167 67:0.2167 68:0.2333 69:0.2167 70:0.2167 71:0.2167 72:0.2167 73:0.2167 74:0.2167 75:0.2167 76:0.2167 77:0.2333 78:0.2333 79:0.2333 80:0.2333 81:0.2333 82:0.2333 83:0.2333 84:0.2333 85:0.2333 86:0.2333 87:0.2333 88:0.2333 89:0.2333 90:0.2333 91:0.2333 92:0.2333 93:0.3333 94:0.3333 95:0.3333 96:0.3333 97:0.3333 98:0.3333 99:0.3167 100:0.3333 101:0.3333 102:0.3333 103:0.3333 104:0.3333 105:0.3333 106:0.3333 107:0.3167 108:0.3167 109:0.3333 110:0.3167 111:0.3333 112:0.3333 113:0.3333 114:0.3333 115:0.3333 116:0.3167 117:0.3333 118:0.3333 119:0.3167 120:0.3333 121:0.3333 122:0.3333 123:0.3333 124:0.2333 125:0.2333 126:0.2333 127:0.2333 128:0.2333 129:0.2333 130:0.2333 131:0.2333 132:0.2 133:0.1833 134:0.1833 135:0.1833 136:0.1833 137:0.1833 138:0.1833 139:0.1667 140:0.1667 141:0.1667 142:0.14031579 143:0.14031579 144:0.14031579 145:0.14031579 146:0.14031579 147:0.14031579 148:0.14031579 149:0.14031579 150:0.14031579 151:0.12284211 152:0.14031579 153:0.14031579 154:0.14031579 155:0.14031579 156:0.12284211 157:0.12496116 158:0.12496116 159:0.12496116 160:0.10717538 161:0.10717538 162:0.35714056 163:0.35714056 164:0.35714056 165:0.35714056 166:0.35714056 167:0.35714056 168:0.35714056 169:0.57142704 170:0.57142704 171:0.57142704 172:0.57142704 173:0.60710574 174:0.60710574 175:0.60710574 176:0.60710574 177:0.60710574 178:0.62499866 179:0.62499866 180:0.62499866 181:0.64289158 182:0.64289158 183:0.64289158 184:0.64289158 185:0.64289158 186:0.64289158 187:0.64289158 188:1 189:1 190:1 191:1 192:1 193:1 194:1 195:1 196:1 197:1 198:0.98210708 199:0.98210708 200:0.98210708 201:0.98210708 202:0.98210708 203:1 204:1 205:1 206:1 207:1 208:0.82139222 209:0.66067736 210:0.66067736 211:0.66067736 212:0.62499866 213:0.48217672 214:0.4642838 215:0.4642838 216:0.4642838 217:0.4286051 218:0.4286051 219:0.37503348 220:0.37503348 221:0.4 222:0.4 223:0.3833 224:0.3833 225:0.3 226:0.3 227:0.2667 228:0.2667 229:0.2667 230:0.2667 231:0.25 232:0.25 233:0.25 234:0.2333 235:0.2167 236:0.2333 237:0.2333 238:0.2333 239:0.2333 240:0.2333 241:0.2333 242:0.2333 243:0.2333 244:0.2333 245:0.2333 246:0.2333 247:0.2333 248:0.2333 249:0.2333 250:0.2333 251:0.2333 252:0.2333 253:0.2333 254:0.2667 255:0.2667 256:0.2667 257:0.2667 258:0.2667 259:0.2667 260:0.2667 261:0.2667 262:0.2667 263:0.4167 264:0.4167 265:0.4167 266:0.4167 267:0.4167 268:0.4167 269:0.4167 270:0.4167 271:0.4167 272:0.4167 273:0.45 274:0.45 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:0.9167 285:0.9 286:0.9 287:0.7667 288:0.7667 289:0.7667 290:0.7833 291:0.7667 292:0.7 293:0.6833 294:0.5667 295:0.5333 296:0.5333 297:0.5333 298:0.5167 299:0.45 300:0.45 301:0.45 302:0.4333 303:0.4333 304:0.3833 305:0.3833 306:0.3833 307:0.3833 308:0.3833 309:0.3833 310:0.3833 311:0.3833 312:0.3833 313:0.3833 314:0.3833 315:0.3833 316:0.4 317:0.4 318:0.4 319:0.4333 320:0.4333 321:0.4333 322:0.4333 323:0.5667 324:0.5833 325:0.5833 326:0.5667 327:0.5667 328:0.55 329:0.55 330:0.55 331:0.55 332:0.55 333:0.5167 334:0.5 335:0.5 336:0.35 337:0.35 338:0.35 339:0.35 340:0.35 341:0.35 342:0.35 343:0.35 344:0.35 345:0.35 346:0.35 347:0.35 348:0.35 349:0.35 350:0.35 351:0.35 352:0.3667 353:0.3667 354:0.3667 355:0.3667 356:0.3667 357:0.3667 358:0.3667 359:0.3667 360:0.4167 +0.3395558283041472 1:0.3333 2:0.3333 3:0.3833 4:0.3833 5:0.4 6:0.4 7:0.4 8:0.4 9:0.4 10:0.4667 11:0.4667 12:0.4667 13:0.4667 14:0.5167 15:0.7 16:0.7 17:0.7 18:0.8667 19:0.8667 20:0.8667 21:1 22:1 23:1 24:1 25:1 26:1 27:1 28:1 29:1 30:1 31:1 32:1 33:1 34:1 35:1 36:1 37:1 38:1 39:1 40:1 41:0.9 42:0.9 43:0.8833 44:0.4 45:0.4 46:0.4 47:0.4 48:0.4 49:0.4 50:0.4 51:0.4 52:0.4 53:0.4 54:0.4 55:0.3833 56:0.3 57:0.3 58:0.3 59:0.3 60:0.3 61:0.3 62:0.3 63:0.3 64:0.3 65:0.3 66:0.3 67:0.3 68:0.1667 69:0.1667 70:0.1667 71:0.1667 72:0.1667 73:0.1667 74:0.1667 75:0.1667 76:0.1667 77:0.1667 78:0.1667 79:0.1667 80:0.1667 81:0.1667 82:0.1667 83:0.1667 84:0.1667 85:0.1667 86:0.1667 87:0.1667 88:0.1667 89:0.1667 90:0.1667 91:0.1667 92:0.1667 93:0.1667 94:0.1667 95:0.1667 96:0.1667 97:0.1667 98:0.1667 99:0.2 100:0.2 101:0.2 102:0.2 103:0.2 104:0.2 105:0.2 106:0.2 107:0.2 108:0.2 109:0.2 110:0.2 111:0.2 112:0.2 113:0.2 114:0.2 115:0.2 116:0.2167 117:0.2167 118:0.2167 119:0.2167 120:0.2167 121:0.2167 122:0.2167 123:0.2167 124:0.2167 125:0.2167 126:0.2167 127:0.2167 128:0.2167 129:0.2167 130:0.2167 131:0.2167 132:0.3 133:0.3 134:0.3 135:0.3 136:0.3 137:0.3 138:0.25 139:0.25 140:0.25 141:0.3 142:0.21052632 143:0.21052632 144:0.21052632 145:0.21052632 146:0.21052632 147:0.21052632 148:0.21052632 149:0.21052632 150:0.21052632 151:0.21052632 152:0.21052632 153:0.21052632 154:0.21052632 155:0.21052632 156:0.21052632 157:0.1964257 158:0.1964257 159:0.1964257 160:0.1964257 161:0.1964257 162:0.1964257 163:0.1964257 164:0.1964257 165:0.1964257 166:0.1964257 167:0.1964257 168:0.1964257 169:0.1964257 170:0.1964257 171:0.1964257 172:0.21431862 173:0.4999625 174:0.4999625 175:0.51785542 176:0.51785542 177:0.51785542 178:0.51785542 179:0.51785542 180:0.51785542 181:0.55353412 182:0.55353412 183:0.55353412 184:0.6964632 185:0.6964632 186:0.6964632 187:0.6964632 188:0.6964632 189:1 190:1 191:1 192:1 193:1 194:1 195:1 196:0.82139222 197:0.82139222 198:0.82139222 199:0.82139222 200:0.82139222 201:0.82139222 202:0.82139222 203:0.82139222 204:0.83928514 205:1 206:1 207:1 208:1 209:0.91074968 210:0.75003482 211:0.75003482 212:0.75003482 213:0.55353412 214:0.55353412 215:0.55353412 216:0.55353412 217:0.55353412 218:0.44639088 219:0.44639088 220:0.44639088 221:0.4833 222:0.4667 223:0.3833 224:0.3833 225:0.3833 226:0.3167 227:0.3167 228:0.3167 229:0.3167 230:0.2833 231:0.2833 232:0.2833 233:0.2833 234:0.2833 235:0.2833 236:0.2833 237:0.2833 238:0.2833 239:0.2833 240:0.2833 241:0.2833 242:0.2833 243:0.2833 244:0.2833 245:0.2833 246:0.2833 247:0.2833 248:0.2833 249:0.2833 250:0.3333 251:0.3333 252:0.3333 253:0.4667 254:0.4667 255:0.4667 256:0.4667 257:0.4667 258:0.4667 259:0.4667 260:0.4667 261:0.4667 262:0.4667 263:0.4667 264:0.6333 265:0.65 266:0.65 267:0.65 268:0.7 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:0.9667 281:0.9167 282:0.8 283:0.6833 284:0.6833 285:0.6667 286:0.6333 287:0.6333 288:0.6333 289:0.5167 290:0.4333 291:0.4333 292:0.4333 293:0.4167 294:0.4167 295:0.3833 296:0.3833 297:0.3833 298:0.3833 299:0.3833 300:0.3833 301:0.3833 302:0.3833 303:0.3833 304:0.3833 305:0.3833 306:0.3833 307:0.3833 308:0.3833 309:0.3833 310:0.4167 311:0.4167 312:0.6 313:0.5833 314:0.55 315:0.55 316:0.2 317:0.2 318:0.55 319:0.5333 320:0.2167 321:0.2 322:0.5 323:0.5 324:0.2167 325:0.2 326:0.2167 327:0.2833 328:0.2167 329:0.2167 330:0.2 331:0.2833 332:0.2833 333:0.2 334:0.2 335:0.2833 336:0.2833 337:0.2833 338:0.2833 339:0.2833 340:0.2833 341:0.2833 342:0.2833 343:0.3 344:0.3167 345:0.3167 346:0.3167 347:0.3167 348:0.3167 349:0.3167 350:0.3167 351:0.3167 352:0.3167 353:0.3167 354:0.3167 355:0.3167 356:0.3167 357:0.3333 358:0.3333 359:0.3333 360:0.3333 +0.7309356042906542 1:0.35 2:0.35 3:0.35 4:0.35 5:0.35 6:0.35 7:0.35 8:0.45 9:0.55 10:0.55 11:0.7333 12:0.7333 13:0.7333 14:0.7333 15:1 16:1 17:1 18:1 19:1 20:1 21:1 22:1 23:1 24:1 25:1 26:1 27:1 28:1 29:1 30:1 31:0.6833 32:0.6333 33:0.5833 34:0.5833 35:0.5167 36:0.4833 37:0.4667 38:0.4667 39:0.45 40:0.4333 41:0.4333 42:0.4333 43:0.4333 44:0.4333 45:0.4333 46:0.4333 47:0.4333 48:0.4333 49:0.4333 50:0.4333 51:0.3667 52:0.3667 53:0.3667 54:0.3667 55:0.35 56:0.35 57:0.3333 58:0.3333 59:0.35 60:0.3333 61:0.3333 62:0.35 63:0.3333 64:0.3333 65:0.35 66:0.3333 67:0.35 68:0.3333 69:0.3333 70:0.35 71:0.35 72:0.35 73:0.35 74:0.3667 75:0.35 76:0.35 77:0.3667 78:0.3667 79:0.3667 80:0.3833 81:0.45 82:0.45 83:0.45 84:0.4667 85:0.4667 86:0.4667 87:0.4833 88:0.4833 89:0.9667 90:0.9667 91:0.85 92:0.85 93:0.85 94:0.85 95:0.85 96:0.85 97:0.85 98:0.85 99:0.85 100:0.85 101:1 102:1 103:1 104:1 105:1 106:1 107:1 108:0.7667 109:0.7667 110:0.7667 111:0.7167 112:0.7167 113:0.7667 114:0.7167 115:0.6667 116:0.7167 117:0.6833 118:0.6667 119:0.7 120:0.6833 121:0.65 122:0.6667 123:0.6167 124:0.6167 125:0.6167 126:0.6167 127:0.6167 128:0.5667 129:0.55 130:0.5667 131:0.5667 132:0.5667 133:0.2333 134:0.2333 135:0.55 136:0.55 137:0.25 138:0.25 139:0.25 140:0.25 141:0.25 142:0.21052632 143:0.21052632 144:0.21052632 145:0.19294737 146:0.21052632 147:0.21052632 148:0.21052632 149:0.19294737 150:0.21052632 151:0.21052632 152:0.24557895 153:0.21052632 154:0.21052632 155:0.24557895 156:0.24557895 157:0.2321044 158:0.2321044 159:0.2321044 160:0.2321044 161:0.2321044 162:0.2321044 163:0.2321044 164:0.2321044 165:0.2321044 166:0.2321044 167:0.2321044 168:0.2321044 169:0.2321044 170:0.2321044 171:0.2321044 172:0.2321044 173:0.2321044 174:0.2321044 175:0.2321044 176:0.2321044 177:0.2321044 178:0.071389541 179:0.071389541 180:0.071389541 181:0.071389541 182:0.071389541 183:0.071389541 184:0.071389541 185:0.071389541 186:0.071389541 187:0.071389541 188:0.071389541 189:0.071389541 190:0.071389541 191:0.071389541 192:0.071389541 193:0.071389541 194:0.071389541 195:0.071389541 196:0.071389541 197:0.071389541 198:0.071389541 199:0.071389541 200:0.071389541 201:0.071389541 202:0.071389541 203:0.071389541 204:0.071389541 205:0.071389541 206:0.071389541 207:0.071389541 208:0.071389541 209:0.071389541 210:0.160747 211:0.160747 212:0.160747 213:0.160747 214:0.160747 215:0.160747 216:0.160747 217:0.160747 218:0.160747 219:0.160747 220:0.160747 221:0.4167 222:0.2167 223:0.2167 224:0.2167 225:0.4 226:0.4 227:0.3833 228:0.3833 229:0.3833 230:0.3667 231:0.3833 232:0.3667 233:0.3833 234:0.3833 235:0.3667 236:0.3833 237:0.3667 238:0.3833 239:0.3833 240:0.3667 241:1 242:1 243:1 244:1 245:1 246:1 247:1 248:1 249:0.4833 250:0.4833 251:0.4833 252:0.4833 253:0.4833 254:0.4833 255:0.4833 256:0.4833 257:0.4833 258:0.4833 259:0.4833 260:0.4833 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:0.95 281:0.95 282:0.8 283:0.6833 284:0.4833 285:0.4833 286:0.4833 287:0.4167 288:0.3667 289:0.3667 290:0.3667 291:0.3167 292:0.3167 293:0.2833 294:0.2833 295:0.2833 296:0.2833 297:0.2833 298:0.25 299:0.25 300:0.2833 301:0.25 302:0.25 303:0.25 304:0.25 305:0.25 306:0.25 307:0.25 308:0.25 309:0.25 310:0.25 311:0.6 312:0.25 313:0.25 314:0.25 315:0.5667 316:0.5667 317:0.5333 318:0.5167 319:0.5167 320:0.5167 321:0.5167 322:0.5167 323:0.25 324:0.25 325:0.25 326:0.25 327:0.25 328:0.25 329:0.25 330:0.25 331:0.25 332:0.25 333:0.25 334:0.25 335:0.25 336:0.25 337:0.25 338:0.25 339:0.25 340:0.25 341:0.2667 342:0.4833 343:0.4833 344:0.3833 345:0.3667 346:0.3667 347:0.35 348:0.35 349:0.35 350:0.35 351:0.35 352:0.35 353:0.35 354:0.35 355:0.35 356:0.35 357:0.35 358:0.35 359:0.35 360:0.35 +0.5631591986299216 1:0.2167 2:0.2167 3:0.2167 4:0.2167 5:0.2167 6:0.2167 7:0.2167 8:0.2333 9:0.2333 10:0.2333 11:0.2333 12:0.2167 13:0.2167 14:0.2167 15:0.2167 16:0.2167 17:0.2167 18:0.2167 19:0.2167 20:0.2167 21:0.2167 22:0.2167 23:0.2167 24:0.2167 25:0.2167 26:0.2167 27:0.2167 28:0.2167 29:0.2167 30:0.2167 31:0.2167 32:0.2167 33:0.25 34:0.25 35:0.2667 36:0.2667 37:0.25 38:0.2667 39:0.2667 40:0.25 41:0.25 42:0.2667 43:0.2667 44:0.2667 45:0.2667 46:0.2833 47:0.2667 48:0.2833 49:0.2833 50:0.2667 51:0.3 52:0.3 53:0.3167 54:0.3167 55:0.3333 56:0.3333 57:0.3333 58:0.3333 59:0.3333 60:0.3333 61:0.35 62:0.3667 63:0.3667 64:0.3833 65:0.4 66:0.4167 67:0.4333 68:0.45 69:0.4667 70:0.4833 71:0.5167 72:0.5833 73:0.5667 74:0.6 75:0.6333 76:0.6667 77:0.7167 78:0.8167 79:0.8333 80:1 81:1 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:0.9667 101:0.9167 102:0.75 103:0.6833 104:0.6333 105:0.6 106:0.55 107:0.5167 108:0.4833 109:0.4667 110:0.4667 111:0.4167 112:0.4 113:0.4167 114:0.3833 115:0.35 116:0.35 117:0.35 118:0.35 119:0.3 120:0.3 121:0.3167 122:0.3 123:0.2333 124:0.2333 125:0.2333 126:0.2333 127:0.2333 128:0.2333 129:0.2333 130:0.2333 131:0.2333 132:0.2333 133:0.2333 134:0.2333 135:0.2333 136:0.2 137:0.2 138:0.2167 139:0.2167 140:0.2167 141:0.2 142:0.17547368 143:0.17547368 144:0.17547368 145:0.15789474 146:0.17547368 147:0.17547368 148:0.17547368 149:0.17547368 150:0.15789474 151:0.17547368 152:0.17547368 153:0.15789474 154:0.15789474 155:0.17547368 156:0.17547368 157:0.160747 158:0.17853278 159:0.17853278 160:0.17853278 161:0.17853278 162:0.4286051 163:0.4286051 164:0.4286051 165:0.4286051 166:0.41071218 167:0.41071218 168:0.41071218 169:0.41071218 170:0.41071218 171:0.41071218 172:0.41071218 173:0.41071218 174:0.41071218 175:0.41071218 176:0.41071218 177:0.41071218 178:0.4286051 179:0.62499866 180:0.62499866 181:0.60710574 182:0.60710574 183:0.60710574 184:0.60710574 185:0.60710574 186:0.60710574 187:0.60710574 188:0.62499866 189:0.62499866 190:0.62499866 191:0.62499866 192:0.62499866 193:0.62499866 194:0.64289158 195:0.6964632 196:0.6964632 197:0.6964632 198:0.51785542 199:0.51785542 200:0.39281926 201:0.39281926 202:0.39281926 203:0.39281926 204:0.39281926 205:0.39281926 206:0.39281926 207:0.39281926 208:0.39281926 209:0.39281926 210:0.1964257 211:0.1964257 212:0.1964257 213:0.1964257 214:0.1964257 215:0.1964257 216:0.1964257 217:0.1964257 218:0.1964257 219:0.1964257 220:0.1964257 221:0.25 222:0.25 223:0.25 224:0.25 225:0.25 226:0.25 227:0.25 228:0.2167 229:0.2167 230:0.2167 231:0.2167 232:0.2167 233:0.2167 234:0.2167 235:0.2167 236:0.2167 237:0.2167 238:0.2167 239:0.2167 240:0.2167 241:0.2167 242:0.2167 243:0.2167 244:0.2167 245:0.2167 246:0.2167 247:0.2167 248:0.2167 249:0.2167 250:0.2167 251:0.2167 252:0.2333 253:0.2333 254:0.3667 255:0.3833 256:0.4167 257:0.45 258:0.5667 259:0.6 260:0.65 261:0.6667 262:0.6667 263:0.6667 264:0.6667 265:1 266:1 267:1 268:0.6667 269:0.6333 270:0.6333 271:0.6333 272:0.6333 273:0.6333 274:0.6333 275:0.6333 276:0.6333 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:0.8667 285:0.85 286:0.8 287:0.75 288:0.6667 289:0.6667 290:0.6 291:0.5667 292:0.5667 293:0.5167 294:0.4833 295:0.4667 296:0.45 297:0.4333 298:0.4167 299:0.4 300:0.4 301:0.3833 302:0.3667 303:0.3833 304:0.2333 305:0.2333 306:0.2167 307:0.2167 308:0.2167 309:0.2167 310:0.2167 311:0.2167 312:0.2167 313:0.2167 314:0.2167 315:0.2167 316:0.2167 317:0.2167 318:0.2167 319:0.2167 320:0.2167 321:0.2167 322:0.2167 323:0.2167 324:0.2167 325:0.2167 326:0.2167 327:0.2167 328:0.2167 329:0.2167 330:0.2167 331:0.2167 332:0.2167 333:0.2167 334:0.25 335:0.2167 336:0.2167 337:0.2167 338:0.2167 339:0.2167 340:0.2167 341:0.2167 342:0.2167 343:0.2167 344:0.2167 345:0.2167 346:0.2167 347:0.2167 348:0.2167 349:0.2167 350:0.2167 351:0.2167 352:0.2167 353:0.2167 354:0.2167 355:0.2167 356:0.2167 357:0.2167 358:0.2167 359:0.2167 360:0.2167 +1.942381595911747 1:0.15 2:0.15 3:0.15 4:0.15 5:0.15 6:0.15 7:0.15 8:0.15 9:0.15 10:0.15 11:0.15 12:0.15 13:0.15 14:0.15 15:0.15 16:0.15 17:0.15 18:0.15 19:0.15 20:0.15 21:0.15 22:0.15 23:0.15 24:0.15 25:0.15 26:0.15 27:0.15 28:0.15 29:0.15 30:0.15 31:0.15 32:0.15 33:0.15 34:0.1667 35:0.1667 36:0.1667 37:0.1667 38:0.1667 39:0.1667 40:0.1667 41:0.2833 42:0.2833 43:0.3 44:0.2833 45:0.2833 46:0.3 47:0.2833 48:0.2833 49:0.2833 50:0.3 51:0.3 52:0.3 53:0.3167 54:0.3167 55:0.3333 56:0.3333 57:0.35 58:0.35 59:0.3667 60:0.3667 61:0.3833 62:0.4 63:0.4 64:0.4167 65:0.4333 66:0.45 67:0.4667 68:0.4833 69:0.5167 70:0.5333 71:0.55 72:0.5833 73:0.5667 74:0.6167 75:0.6333 76:0.7667 77:0.7833 78:0.7833 79:0.85 80:0.9167 81:1 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:0.9833 100:0.9 101:0.8167 102:0.7667 103:0.6833 104:0.6333 105:0.5333 106:0.5333 107:0.5333 108:0.5333 109:0.4 110:0.3833 111:0.3667 112:0.3667 113:0.3667 114:0.3667 115:0.3667 116:0.3 117:0.2833 118:0.2833 119:0.2833 120:0.25 121:0.25 122:0.25 123:0.25 124:0.25 125:0.25 126:0.25 127:0.25 128:0.2333 129:0.2333 130:0.25 131:0.25 132:0.2333 133:0.2333 134:0.2333 135:0.25 136:0.2333 137:0.25 138:0.25 139:0.25 140:0.2333 141:0.25 142:0.21052632 143:0.19294737 144:0.19294737 145:0.19294737 146:0.21052632 147:0.21052632 148:0.21052632 149:0.19294737 150:0.21052632 151:0.21052632 152:0.21052632 153:0.47368421 154:0.43863158 155:0.43863158 156:0.43863158 157:0.4286051 158:0.41071218 159:0.41071218 160:0.41071218 161:0.41071218 162:0.41071218 163:0.41071218 164:0.41071218 165:0.41071218 166:0.41071218 167:0.41071218 168:0.41071218 169:0.41071218 170:0.44639088 171:0.48217672 172:0.67857028 173:0.67857028 174:0.67857028 175:0.67857028 176:0.60710574 177:0.60710574 178:0.60710574 179:0.60710574 180:0.60710574 181:0.60710574 182:0.60710574 183:0.60710574 184:0.62499866 185:0.62499866 186:0.62499866 187:0.58931996 188:0.4999625 189:0.4999625 190:0.51785542 191:0.4999625 192:0.37503348 193:0.37503348 194:0.35714056 195:0.35714056 196:0.35714056 197:0.35714056 198:0.35714056 199:0.35714056 200:0.35714056 201:0.35714056 202:0.35714056 203:0.35714056 204:0.35714056 205:0.35714056 206:0.35714056 207:0.37503348 208:0.17853278 209:0.17853278 210:0.17853278 211:0.17853278 212:0.17853278 213:0.17853278 214:0.17853278 215:0.17853278 216:0.17853278 217:0.17853278 218:0.17853278 219:0.17853278 220:0.17853278 221:0.2333 222:0.2333 223:0.2333 224:0.2333 225:0.2333 226:0.2333 227:0.2333 228:0.25 229:0.25 230:0.2667 231:0.25 232:0.25 233:0.25 234:0.25 235:0.25 236:0.25 237:0.25 238:0.25 239:0.25 240:0.25 241:0.25 242:0.25 243:0.25 244:0.25 245:0.25 246:0.25 247:0.25 248:0.25 249:0.25 250:0.25 251:0.2667 252:0.2667 253:0.25 254:0.25 255:0.2667 256:0.2833 257:0.5167 258:0.75 259:0.75 260:0.75 261:0.75 262:0.7667 263:0.7667 264:0.8833 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:0.9167 285:0.85 286:0.8 287:0.7 288:0.7 289:0.6833 290:0.6333 291:0.55 292:0.5333 293:0.5333 294:0.5333 295:0.4667 296:0.45 297:0.45 298:0.4167 299:0.4167 300:0.4167 301:0.3833 302:0.3667 303:0.3667 304:0.35 305:0.35 306:0.35 307:0.35 308:0.35 309:0.35 310:0.35 311:0.3 312:0.3 313:0.2833 314:0.2833 315:0.2833 316:0.2833 317:0.2833 318:0.2833 319:0.2833 320:0.2833 321:0.2833 322:0.2833 323:0.2833 324:0.2833 325:0.2833 326:0.2833 327:0.2833 328:0.25 329:0.25 330:0.25 331:0.2667 332:0.2667 333:0.25 334:0.2667 335:0.2667 336:0.25 337:0.25 338:0.2667 339:0.2667 340:0.25 341:0.2667 342:0.2667 343:0.2167 344:0.2167 345:0.2167 346:0.2167 347:0.2167 348:0.2167 349:0.2167 350:0.2167 351:0.2167 352:0.2167 353:0.2167 354:0.2167 355:0.2167 356:0.2167 357:0.2167 358:0.2167 359:0.15 360:0.15 +2 1:0.2 2:0.2 3:0.2 4:0.1833 5:0.1833 6:0.1833 7:0.1833 8:0.1833 9:0.1833 10:0.1833 11:0.1833 12:0.1833 13:0.1833 14:0.1833 15:0.1833 16:0.1833 17:0.1833 18:0.1833 19:0.1833 20:0.1833 21:0.1833 22:0.1833 23:0.1833 24:0.1833 25:0.1833 26:0.1833 27:0.1833 28:0.1833 29:0.1833 30:0.2 31:0.2 32:0.2 33:0.2 34:0.2 35:0.2667 36:0.2667 37:0.2667 38:0.3167 39:0.3167 40:0.3167 41:0.3167 42:0.3167 43:0.3167 44:0.3167 45:0.3167 46:0.3167 47:0.3333 48:0.3333 49:0.3333 50:0.3333 51:0.3333 52:0.3333 53:0.3333 54:0.3833 55:0.3833 56:0.4 57:0.4 58:0.4167 59:0.4333 60:0.4333 61:0.45 62:0.4667 63:0.4833 64:0.5 65:0.5167 66:0.5333 67:0.55 68:0.5667 69:0.5667 70:0.5833 71:0.65 72:0.65 73:0.6667 74:0.7167 75:0.8 76:0.8 77:0.85 78:0.9167 79:1 80:1 81:1 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:0.8833 99:0.7667 100:0.6833 101:0.5167 102:0.5167 103:0.5167 104:0.5167 105:0.5167 106:0.5 107:0.5 108:0.5 109:0.5 110:0.2833 111:0.2833 112:0.25 113:0.25 114:0.2333 115:0.2167 116:0.2167 117:0.2167 118:0.2167 119:0.2333 120:0.2167 121:0.2167 122:0.2167 123:0.2167 124:0.2167 125:0.2167 126:0.2167 127:0.2167 128:0.2167 129:0.2 130:0.2 131:0.2 132:0.2167 133:0.2167 134:0.2 135:0.2 136:0.2167 137:0.2167 138:0.2 139:0.2 140:0.2 141:0.2167 142:0.17547368 143:0.15789474 144:0.15789474 145:0.17547368 146:0.15789474 147:0.15789474 148:0.15789474 149:0.15789474 150:0.17547368 151:0.17547368 152:0.17547368 153:0.42105263 154:0.40347368 155:0.40347368 156:0.40347368 157:0.37503348 158:0.37503348 159:0.37503348 160:0.37503348 161:0.37503348 162:0.37503348 163:0.37503348 164:0.37503348 165:0.37503348 166:0.37503348 167:0.37503348 168:0.37503348 169:0.37503348 170:0.37503348 171:0.39281926 172:0.58931996 173:0.60710574 174:0.58931996 175:0.58931996 176:0.57142704 177:0.57142704 178:0.57142704 179:0.57142704 180:0.57142704 181:0.57142704 182:0.57142704 183:0.57142704 184:0.58931996 185:0.58931996 186:0.58931996 187:0.53574834 188:0.55353412 189:0.53574834 190:0.58931996 191:0.55353412 192:0.24999732 193:0.24999732 194:0.24999732 195:0.24999732 196:0.24999732 197:0.24999732 198:0.24999732 199:0.24999732 200:0.24999732 201:0.24999732 202:0.14285408 203:0.14285408 204:0.14285408 205:0.14285408 206:0.14285408 207:0.14285408 208:0.14285408 209:0.14285408 210:0.14285408 211:0.14285408 212:0.14285408 213:0.14285408 214:0.14285408 215:0.14285408 216:0.14285408 217:0.14285408 218:0.14285408 219:0.14285408 220:0.14285408 221:0.2 222:0.2 223:0.2 224:0.2 225:0.2333 226:0.2333 227:0.2333 228:0.2333 229:0.2333 230:0.2333 231:0.2333 232:0.2333 233:0.25 234:0.25 235:0.25 236:0.25 237:0.25 238:0.25 239:0.25 240:0.25 241:0.25 242:0.25 243:0.25 244:0.25 245:0.25 246:0.25 247:0.25 248:0.25 249:0.25 250:0.25 251:0.25 252:0.25 253:0.25 254:0.25 255:0.25 256:0.25 257:0.25 258:0.25 259:0.25 260:0.25 261:0.25 262:0.2667 263:0.7667 264:0.75 265:0.75 266:0.85 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:0.9333 287:0.8833 288:0.8167 289:0.7833 290:0.7333 291:0.7 292:0.6667 293:0.65 294:0.5667 295:0.5667 296:0.5667 297:0.55 298:0.5667 299:0.4833 300:0.4833 301:0.4833 302:0.4333 303:0.4333 304:0.4167 305:0.4 306:0.4 307:0.3833 308:0.3833 309:0.3667 310:0.3667 311:0.3667 312:0.3667 313:0.3833 314:0.3667 315:0.3667 316:0.3167 317:0.3167 318:0.3167 319:0.3167 320:0.3 321:0.3 322:0.3167 323:0.3 324:0.3 325:0.3167 326:0.3 327:0.3 328:0.3167 329:0.3 330:0.3 331:0.2833 332:0.2833 333:0.2833 334:0.3 335:0.2833 336:0.2833 337:0.3 338:0.2833 339:0.2833 340:0.3 341:0.2833 342:0.2833 343:0.2833 344:0.2833 345:0.25 346:0.25 347:0.25 348:0.25 349:0.25 350:0.25 351:0.25 352:0.25 353:0.25 354:0.25 355:0.25 356:0.25 357:0.25 358:0.25 359:0.2 360:0.2 +0.02059784968635983 1:1 2:1 3:1 4:1 5:1 6:1 7:1 8:1 9:1 10:1 11:0.5167 12:0.4833 13:0.4333 14:0.4167 15:0.4167 16:0.4167 17:0.4167 18:0.4167 19:0.4167 20:0.4167 21:0.4167 22:0.4167 23:0.4167 24:0.4167 25:0.4167 26:0.4 27:0.45 28:0.45 29:0.45 30:0.4667 31:0.4667 32:0.4667 33:0.4667 34:0.4833 35:0.4833 36:0.5 37:0.5167 38:0.5333 39:0.5 40:0.4667 41:0.45 42:0.45 43:0.4667 44:0.45 45:0.4667 46:0.45 47:0.45 48:0.3333 49:0.3333 50:0.3333 51:0.3333 52:0.3333 53:0.3333 54:0.3333 55:0.3333 56:0.3333 57:0.3333 58:0.3333 59:0.3333 60:0.3333 61:0.3333 62:0.3333 63:0.3333 64:0.3333 65:0.3333 66:0.3333 67:0.35 68:0.3667 69:0.3833 70:0.45 71:0.45 72:0.45 73:0.45 74:0.45 75:0.45 76:0.4833 77:0.6 78:0.6 79:0.6 80:0.75 81:0.75 82:0.8 83:0.8167 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:1 107:0.85 108:0.7167 109:0.5667 110:0.5667 111:0.5333 112:0.4833 113:0.4667 114:0.45 115:0.4333 116:0.4333 117:0.4333 118:0.4333 119:0.4333 120:0.4333 121:0.4167 122:0.4 123:0.4 124:0.3833 125:0.3833 126:0.3833 127:0.3833 128:0.3833 129:0.2833 130:0.2833 131:0.2833 132:0.2667 133:0.2667 134:0.2667 135:0.25 136:0.25 137:0.25 138:0.25 139:0.25 140:0.2333 141:0.2333 142:0.19294737 143:0.19294737 144:0.15789474 145:0.15789474 146:0.15789474 147:0.15789474 148:0.15789474 149:0.15789474 150:0.15789474 151:0.15789474 152:0.15789474 153:0.14031579 154:0.14031579 155:0.14031579 156:0.14031579 157:0.12496116 158:0.12496116 159:0.12496116 160:0.12496116 161:0.12496116 162:0.12496116 163:0.12496116 164:0.12496116 165:0.12496116 166:0.12496116 167:0.12496116 168:0.12496116 169:0.12496116 170:0.12496116 171:0.12496116 172:0.12496116 173:0.12496116 174:0.12496116 175:0.12496116 176:0.12496116 177:0.12496116 178:0.12496116 179:0.12496116 180:0.12496116 181:0.12496116 182:0.12496116 183:0.12496116 184:0.12496116 185:0.12496116 186:0.12496116 187:0.12496116 188:0.12496116 189:0.12496116 190:0.12496116 191:0.12496116 192:0.12496116 193:0.12496116 194:0.12496116 195:0.12496116 196:0.12496116 197:0.12496116 198:0.14285408 199:0.14285408 200:0.14285408 201:0.14285408 202:0.14285408 203:0.12496116 204:0.14285408 205:0.14285408 206:0.14285408 207:0.14285408 208:0.12496116 209:0.12496116 210:0.14285408 211:0.14285408 212:0.14285408 213:0.14285408 214:0.14285408 215:0.14285408 216:0.14285408 217:0.14285408 218:0.14285408 219:0.160747 220:0.160747 221:0.2167 222:0.2167 223:0.2167 224:0.2167 225:0.2333 226:0.2333 227:0.2333 228:0.2333 229:0.2333 230:0.25 231:0.25 232:0.25 233:0.2667 234:0.2667 235:0.2667 236:0.2833 237:0.2833 238:0.3333 239:0.3333 240:0.3333 241:0.3333 242:0.3333 243:0.3333 244:0.3333 245:0.3333 246:0.3333 247:0.35 248:0.4 249:0.3833 250:0.4 251:0.4167 252:0.4333 253:0.4833 254:0.4833 255:0.5167 256:0.55 257:0.55 258:0.55 259:0.6333 260:0.65 261:0.7167 262:0.8 263:0.9333 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:0.9167 284:0.85 285:0.7833 286:0.6667 287:0.6333 288:0.6 289:0.5833 290:0.5833 291:0.55 292:0.5333 293:0.5333 294:0.5333 295:0.3833 296:0.3667 297:0.3667 298:0.35 299:0.3667 300:0.35 301:0.35 302:0.3667 303:0.35 304:0.3667 305:0.3667 306:0.35 307:0.3667 308:0.35 309:0.35 310:0.3667 311:0.3667 312:0.5667 313:0.7333 314:0.7333 315:0.7333 316:0.7167 317:0.7333 318:0.75 319:0.6667 320:0.65 321:0.6667 322:0.6667 323:0.65 324:0.6167 325:0.55 326:0.55 327:0.5167 328:0.5167 329:0.5167 330:0.5 331:0.5 332:0.5 333:0.5 334:0.4833 335:0.4833 336:0.4833 337:0.4833 338:0.4833 339:0.4833 340:0.4833 341:0.4833 342:0.4833 343:0.4833 344:0.4833 345:1 346:1 347:1 348:1 349:1 350:1 351:1 352:1 353:1 354:1 355:1 356:1 357:1 358:1 359:1 360:1 +0.3603063780745222 1:0.1833 2:0.1833 3:0.1833 4:0.1833 5:0.1833 6:0.1833 7:0.1833 8:0.1833 9:0.1833 10:0.1833 11:0.1833 12:0.1833 13:0.1833 14:0.1833 15:0.1833 16:0.1833 17:0.1833 18:0.1833 19:0.1833 20:0.1833 21:0.1833 22:0.1833 23:0.1833 24:0.1833 25:0.1833 26:0.1833 27:0.1833 28:0.1833 29:0.1833 30:0.2 31:0.2 32:0.2 33:0.2 34:0.2 35:0.2 36:0.2 37:0.2 38:0.2 39:0.2167 40:0.2167 41:0.2167 42:0.2167 43:0.2167 44:0.2167 45:0.2333 46:0.2333 47:0.2333 48:0.2333 49:0.2333 50:0.25 51:0.25 52:0.25 53:0.2667 54:0.2667 55:0.2667 56:0.2833 57:0.2833 58:0.3 59:0.3 60:0.3 61:0.3167 62:0.3333 63:0.3333 64:0.35 65:0.3667 66:0.3667 67:0.4167 68:0.4 69:0.4167 70:0.4 71:0.4833 72:0.4833 73:0.5833 74:0.5833 75:0.5833 76:0.5833 77:0.5833 78:0.5833 79:0.7 80:0.7167 81:0.7167 82:0.9333 83:0.9333 84:0.9333 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:0.9833 103:0.85 104:0.85 105:0.7167 106:0.6667 107:0.65 108:0.6 109:0.5833 110:0.5833 111:0.6 112:0.5833 113:0.5833 114:0.4833 115:0.4833 116:0.45 117:0.45 118:0.45 119:0.45 120:0.45 121:0.45 122:0.45 123:0.45 124:0.45 125:0.45 126:0.45 127:0.4667 128:0.5167 129:0.9833 130:0.9833 131:0.6667 132:0.65 133:0.6333 134:0.6333 135:0.6167 136:0.6 137:0.6 138:0.6 139:0.6 140:0.6 141:0.5833 142:0.56136842 143:0.54389474 144:0.54389474 145:0.54389474 146:0.54389474 147:0.54389474 148:0.54389474 149:0.54389474 150:0.54389474 151:0.54389474 152:0.54389474 153:0.54389474 154:0.54389474 155:0.54389474 156:0.54389474 157:0.57142704 158:0.58931996 159:0.62499866 160:0.64289158 161:0.67857028 162:0.7321419 163:0.7321419 164:0.71424898 165:0.71424898 166:0.71424898 167:0.71424898 168:0.71424898 169:0.71424898 170:0.71424898 171:0.71424898 172:0.71424898 173:0.75003482 174:1 175:1 176:1 177:1 178:1 179:1 180:1 181:1 182:1 183:1 184:1 185:0.62499866 186:0.62499866 187:0.62499866 188:0.44639088 189:0.4642838 190:0.44639088 191:0.44639088 192:0.44639088 193:0.44639088 194:0.44639088 195:0.44639088 196:0.44639088 197:0.44639088 198:0.44639088 199:0.4286051 200:0.4286051 201:0.4286051 202:0.4286051 203:0.4286051 204:0.4286051 205:0.4286051 206:0.4286051 207:0.4286051 208:0.17853278 209:0.17853278 210:0.17853278 211:0.17853278 212:0.17853278 213:0.17853278 214:0.17853278 215:0.17853278 216:0.17853278 217:0.17853278 218:0.17853278 219:0.17853278 220:0.17853278 221:0.2333 222:0.2333 223:0.2333 224:0.2333 225:0.2333 226:0.2333 227:0.2333 228:0.2667 229:0.2667 230:0.2667 231:0.2667 232:0.2667 233:0.2667 234:0.2667 235:0.2667 236:0.2667 237:0.2667 238:0.2667 239:0.2667 240:0.2833 241:0.3167 242:0.3 243:0.3 244:0.3167 245:0.3167 246:0.3333 247:0.35 248:0.3667 249:0.3833 250:0.4 251:0.4333 252:0.4333 253:0.7 254:0.7 255:0.7 256:0.7 257:0.7 258:0.7 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:1 287:0.6333 288:0.6 289:0.5833 290:0.5833 291:0.6 292:0.5833 293:0.5833 294:0.45 295:0.4333 296:0.4167 297:0.4 298:0.4 299:0.3667 300:0.3667 301:0.35 302:0.3333 303:0.3333 304:0.3167 305:0.3167 306:0.3 307:0.3 308:0.2667 309:0.2667 310:0.25 311:0.25 312:0.25 313:0.25 314:0.25 315:0.25 316:0.25 317:0.25 318:0.25 319:0.25 320:0.2333 321:0.2333 322:0.2333 323:0.2333 324:0.2 325:0.2 326:0.2 327:0.2 328:0.2 329:0.2 330:0.2 331:0.2 332:0.2 333:0.1833 334:0.1833 335:0.1833 336:0.1833 337:0.1833 338:0.1833 339:0.1833 340:0.1833 341:0.1833 342:0.1833 343:0.1833 344:0.1833 345:0.1833 346:0.1833 347:0.1833 348:0.1833 349:0.1833 350:0.1833 351:0.1833 352:0.1833 353:0.1833 354:0.1833 355:0.1833 356:0.1833 357:0.1833 358:0.1833 359:0.1833 360:0.1833 +0.346971872463373 1:1 2:1 3:1 4:1 5:1 6:1 7:1 8:1 9:1 10:1 11:1 12:1 13:1 14:1 15:1 16:1 17:1 18:1 19:1 20:1 21:1 22:1 23:0.7 24:0.7 25:0.7 26:0.7 27:0.7 28:0.7 29:0.7 30:0.7 31:0.8667 32:0.8833 33:0.8833 34:0.8667 35:0.8833 36:0.4167 37:0.4167 38:0.4167 39:0.4167 40:0.4167 41:0.4167 42:0.4167 43:0.4167 44:0.4167 45:0.4167 46:0.4167 47:0.4167 48:0.4167 49:0.4167 50:0.4167 51:0.4833 52:0.4833 53:0.4833 54:0.5667 55:0.5667 56:0.5667 57:0.5667 58:0.5667 59:0.6667 60:0.6667 61:0.6833 62:0.7667 63:0.75 64:0.75 65:0.7667 66:0.7667 67:0.7667 68:0.7833 69:0.7833 70:0.9 71:0.9833 72:0.9833 73:1 74:1 75:1 76:1 77:1 78:1 79:1 80:1 81:1 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:1 107:1 108:1 109:1 110:1 111:1 112:1 113:1 114:1 115:1 116:1 117:1 118:0.9833 119:0.9833 120:0.8833 121:0.7833 122:0.7833 123:0.7833 124:0.7833 125:0.7833 126:0.6833 127:0.6667 128:0.65 129:0.6333 130:0.6333 131:0.6333 132:0.6333 133:0.6333 134:0.55 135:0.55 136:0.5333 137:0.5333 138:0.5333 139:0.5333 140:0.5333 141:0.5167 142:0.50873684 143:0.47368421 144:0.49126316 145:0.49126316 146:0.49126316 147:0.49126316 148:0.47368421 149:0.43863158 150:0.43863158 151:0.43863158 152:0.43863158 153:0.43863158 154:0.43863158 155:0.43863158 156:0.43863158 157:0.4286051 158:0.4286051 159:0.4286051 160:0.4286051 161:0.4286051 162:0.4286051 163:0.4286051 164:0.4286051 165:0.4286051 166:0.41071218 167:0.41071218 168:0.41071218 169:0.41071218 170:0.4286051 171:0.41071218 172:0.39281926 173:0.39281926 174:0.37503348 175:0.37503348 176:0.37503348 177:0.37503348 178:0.37503348 179:0.37503348 180:0.35714056 181:0.35714056 182:0.35714056 183:0.35714056 184:0.35714056 185:0.35714056 186:0.35714056 187:0.35714056 188:0.32146186 189:0.33924764 190:0.32146186 191:0.33924764 192:0.35714056 193:0.33924764 194:0.33924764 195:0.32146186 196:0.33924764 197:0.37503348 198:0.32146186 199:0.37503348 200:0.37503348 201:0.37503348 202:0.37503348 203:0.37503348 204:0.37503348 205:0.37503348 206:0.35714056 207:0.37503348 208:0.37503348 209:0.37503348 210:0.37503348 211:0.37503348 212:0.39281926 213:0.39281926 214:0.39281926 215:0.39281926 216:0.39281926 217:0.39281926 218:0.44639088 219:0.44639088 220:0.44639088 221:0.5 222:1 223:1 224:0.9 225:0.8833 226:0.8833 227:0.8833 228:0.8833 229:0.8833 230:0.65 231:0.6667 232:0.6667 233:0.65 234:0.6667 235:0.6667 236:0.65 237:0.6667 238:0.7333 239:0.7333 240:0.7333 241:0.7333 242:0.7333 243:1 244:1 245:1 246:1 247:1 248:1 249:1 250:1 251:1 252:1 253:1 254:1 255:1 256:1 257:1 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:1 287:1 288:1 289:0.85 290:0.85 291:0.8333 292:0.8333 293:0.8333 294:0.7833 295:0.7833 296:0.7833 297:0.7833 298:0.7833 299:0.7833 300:0.7167 301:0.6833 302:0.6833 303:0.6833 304:0.6833 305:0.6833 306:0.6833 307:0.6833 308:0.6833 309:0.6833 310:0.6167 311:0.5167 312:0.4667 313:0.4667 314:0.4667 315:0.4667 316:0.4667 317:0.4667 318:0.4667 319:0.4667 320:0.4667 321:0.4667 322:0.4667 323:0.4667 324:0.4667 325:0.4667 326:0.4667 327:0.4333 328:0.4333 329:0.4333 330:0.4333 331:0.4333 332:0.3667 333:0.3667 334:0.3667 335:0.3667 336:0.3667 337:0.3667 338:0.3667 339:0.3667 340:0.3667 341:0.3667 342:0.3667 343:0.3667 344:0.3667 345:0.3667 346:0.3667 347:0.3667 348:0.6667 349:0.6667 350:0.6667 351:0.6667 352:0.6667 353:0.6667 354:0.6667 355:0.85 356:0.85 357:0.85 358:1 359:1 360:1 +0.024445814678122 1:1 2:1 3:1 4:1 5:1 6:1 7:1 8:1 9:1 10:1 11:1 12:1 13:1 14:1 15:1 16:0.6833 17:0.6833 18:0.6833 19:0.6833 20:0.6833 21:0.6833 22:0.6833 23:0.4167 24:0.4167 25:0.4167 26:0.4167 27:0.4 28:0.4167 29:0.4 30:0.4167 31:0.4167 32:0.4167 33:0.4167 34:0.4 35:0.4167 36:0.4 37:0.4167 38:0.4167 39:0.4167 40:0.5 41:0.5 42:0.5 43:0.5 44:0.5 45:0.5 46:0.5 47:0.5 48:0.5 49:0.5167 50:0.5167 51:0.5167 52:0.6167 53:0.6 54:0.6167 55:0.6167 56:0.6333 57:0.7 58:0.7 59:0.7 60:0.7 61:0.7 62:0.7 63:0.7 64:0.7167 65:0.7 66:0.7333 67:0.8333 68:0.9167 69:0.85 70:0.85 71:0.85 72:0.85 73:0.9333 74:1 75:1 76:1 77:1 78:1 79:1 80:1 81:1 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:0.8833 102:0.8667 103:0.8667 104:0.8667 105:0.8667 106:0.8667 107:0.8667 108:0.8667 109:0.8667 110:1 111:1 112:1 113:1 114:1 115:0.9667 116:0.9667 117:0.95 118:0.95 119:0.9 120:0.9 121:0.8167 122:0.7 123:0.7 124:0.7 125:0.7 126:0.7 127:0.7 128:0.7 129:0.7 130:0.6833 131:0.6833 132:0.6 133:0.5667 134:0.55 135:0.5667 136:0.5667 137:0.5667 138:0.5667 139:0.4833 140:0.4833 141:0.4667 142:0.43863158 143:0.43863158 144:0.43863158 145:0.43863158 146:0.43863158 147:0.43863158 148:0.43863158 149:0.42105263 150:0.42105263 151:0.42105263 152:0.42105263 153:0.42105263 154:0.42105263 155:0.42105263 156:0.42105263 157:0.37503348 158:0.37503348 159:0.37503348 160:0.37503348 161:0.37503348 162:0.37503348 163:0.37503348 164:0.37503348 165:0.37503348 166:0.37503348 167:0.37503348 168:0.37503348 169:0.37503348 170:0.37503348 171:0.37503348 172:0.37503348 173:0.37503348 174:0.37503348 175:0.37503348 176:0.39281926 177:0.39281926 178:0.39281926 179:0.39281926 180:0.39281926 181:0.39281926 182:0.39281926 183:0.35714056 184:0.35714056 185:0.35714056 186:0.35714056 187:0.35714056 188:0.35714056 189:0.35714056 190:0.35714056 191:0.35714056 192:0.35714056 193:0.35714056 194:0.35714056 195:0.35714056 196:0.35714056 197:0.35714056 198:0.35714056 199:0.35714056 200:0.35714056 201:0.35714056 202:0.35714056 203:0.35714056 204:0.35714056 205:0.35714056 206:0.35714056 207:0.39281926 208:0.39281926 209:0.44639088 210:0.44639088 211:0.44639088 212:0.44639088 213:0.44639088 214:0.44639088 215:0.44639088 216:0.44639088 217:0.48217672 218:0.48217672 219:0.48217672 220:0.48217672 221:0.5167 222:0.5167 223:0.5167 224:0.5167 225:0.5167 226:0.5167 227:0.5167 228:0.5167 229:0.5167 230:0.5167 231:0.5333 232:0.55 233:0.6667 234:0.65 235:0.6667 236:0.7167 237:0.7167 238:0.7167 239:0.7167 240:0.7167 241:0.7167 242:0.7167 243:1 244:1 245:1 246:1 247:1 248:1 249:1 250:1 251:1 252:1 253:1 254:1 255:1 256:1 257:1 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:1 287:1 288:1 289:0.8833 290:0.8833 291:0.8667 292:0.8667 293:0.8667 294:0.8667 295:0.8667 296:0.8833 297:0.7333 298:0.7833 299:0.75 300:0.75 301:0.75 302:0.75 303:0.75 304:0.7667 305:0.7667 306:0.7667 307:0.55 308:0.55 309:0.5333 310:0.5333 311:0.5333 312:0.5333 313:0.5333 314:0.5333 315:0.5333 316:0.4333 317:0.5333 318:0.45 319:0.45 320:0.45 321:0.45 322:0.45 323:0.45 324:0.45 325:0.45 326:0.5167 327:0.6167 328:0.5167 329:0.7833 330:0.5 331:0.7833 332:0.8 333:0.8 334:0.7833 335:0.95 336:0.95 337:0.9167 338:0.9167 339:0.8667 340:0.8667 341:0.7 342:0.7 343:0.7 344:0.7 345:0.7 346:0.7 347:0.7 348:0.7 349:0.9167 350:0.9167 351:0.9167 352:1 353:1 354:1 355:1 356:1 357:1 358:1 359:1 360:1 +1.284492163688887 1:0.9667 2:0.9667 3:0.9667 4:0.9667 5:0.9667 6:0.9667 7:0.9667 8:0.9667 9:0.9667 10:0.9667 11:0.9833 12:0.9667 13:0.9667 14:0.9833 15:0.9833 16:0.35 17:0.3333 18:0.35 19:0.35 20:0.3333 21:0.35 22:0.3333 23:0.35 24:0.35 25:0.3333 26:0.35 27:0.35 28:0.3333 29:0.35 30:0.35 31:0.35 32:0.35 33:0.35 34:0.35 35:0.5 36:0.5 37:0.5167 38:0.5 39:0.5 40:0.5 41:0.5 42:0.5 43:0.5 44:0.5 45:0.5 46:0.5 47:0.5 48:0.5 49:0.5167 50:0.5167 51:0.5667 52:0.5333 53:0.5667 54:0.5333 55:0.5333 56:0.5333 57:0.5667 58:0.5667 59:1 60:0.6 61:0.9833 62:0.9667 63:0.9667 64:0.95 65:0.95 66:0.9333 67:0.95 68:0.95 69:0.95 70:0.95 71:1 72:0.6333 73:0.6333 74:0.6333 75:0.6333 76:0.6333 77:0.6333 78:0.6333 79:0.6167 80:0.6333 81:0.6167 82:0.6167 83:0.6333 84:0.6167 85:0.6167 86:0.75 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:1 107:1 108:1 109:1 110:1 111:1 112:1 113:1 114:0.6667 115:0.6333 116:0.6167 117:0.5833 118:0.5833 119:0.5833 120:0.5833 121:0.5833 122:0.5833 123:0.5833 124:0.5833 125:0.5833 126:0.5833 127:0.6 128:0.6 129:0.6167 130:0.6167 131:0.6 132:0.6 133:0.5333 134:0.5333 135:0.4667 136:0.4667 137:0.45 138:0.45 139:0.4667 140:0.45 141:0.4667 142:0.42105263 143:0.43863158 144:0.42105263 145:0.43863158 146:0.42105263 147:0.43863158 148:0.43863158 149:0.43863158 150:0.43863158 151:0.43863158 152:0.45610526 153:0.43863158 154:0.45610526 155:0.43863158 156:0.43863158 157:0.4286051 158:0.4286051 159:0.4286051 160:0.4286051 161:0.4286051 162:0.4286051 163:0.4286051 164:0.33924764 165:0.33924764 166:0.35714056 167:0.33924764 168:0.35714056 169:0.35714056 170:0.33924764 171:0.35714056 172:0.30356894 173:0.30356894 174:0.30356894 175:0.30356894 176:0.30356894 177:0.30356894 178:0.30356894 179:0.30356894 180:0.30356894 181:0.30356894 182:0.30356894 183:0.30356894 184:0.30356894 185:0.30356894 186:0.30356894 187:0.30356894 188:0.32146186 189:0.32146186 190:0.33924764 191:0.33924764 192:0.33924764 193:0.33924764 194:0.33924764 195:0.32146186 196:0.32146186 197:0.32146186 198:0.32146186 199:0.32146186 200:0.33924764 201:0.32146186 202:0.33924764 203:0.32146186 204:0.32146186 205:0.32146186 206:0.32146186 207:0.32146186 208:0.33924764 209:0.35714056 210:0.35714056 211:0.37503348 212:0.44639088 213:0.44639088 214:0.33924764 215:0.32146186 216:0.32146186 217:0.30356894 218:0.30356894 219:0.30356894 220:0.30356894 221:0.35 222:0.35 223:0.35 224:0.35 225:0.35 226:0.35 227:0.35 228:0.35 229:0.35 230:0.35 231:0.35 232:0.3667 233:0.3667 234:0.3833 235:0.3833 236:0.4 237:0.4 238:0.4167 239:0.4333 240:0.4333 241:0.45 242:0.7 243:0.7 244:0.7167 245:0.7 246:0.7667 247:0.8833 248:1 249:1 250:1 251:1 252:1 253:1 254:1 255:1 256:1 257:1 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:1 287:1 288:1 289:1 290:1 291:1 292:1 293:1 294:1 295:1 296:0.9833 297:0.7833 298:0.7833 299:0.7667 300:0.7333 301:0.7333 302:0.7333 303:0.7333 304:0.7333 305:0.7333 306:0.6833 307:0.6833 308:0.6833 309:0.6833 310:0.65 311:0.6333 312:0.55 313:0.5333 314:0.5333 315:0.5333 316:0.5333 317:0.5333 318:0.5333 319:0.5333 320:0.5333 321:0.5333 322:0.5667 323:0.5667 324:0.5667 325:0.5667 326:0.7833 327:0.4333 328:0.4333 329:0.4333 330:0.4333 331:0.4333 332:0.4333 333:0.4333 334:0.4333 335:0.4333 336:0.4333 337:0.4333 338:0.45 339:0.45 340:0.45 341:0.45 342:0.45 343:0.45 344:0.45 345:0.45 346:0.7 347:0.7 348:0.7 349:0.7 350:0.7 351:0.7833 352:0.7833 353:0.7833 354:1 355:1 356:1 357:1 358:1 359:0.9833 360:0.9667 +0.02246875610680569 1:0.95 2:0.95 3:0.95 4:0.95 5:0.95 6:0.95 7:0.95 8:0.95 9:0.95 10:0.95 11:0.95 12:0.95 13:0.95 14:0.9333 15:0.9333 16:0.8 17:0.7833 18:0.7833 19:0.7833 20:0.7833 21:0.7833 22:0.7167 23:0.7167 24:0.7167 25:0.7167 26:0.7167 27:0.7167 28:0.7167 29:0.55 30:0.5 31:0.4833 32:0.4833 33:0.4833 34:0.4833 35:0.4833 36:0.4833 37:0.4833 38:0.4833 39:0.4833 40:0.4833 41:0.4833 42:0.4833 43:0.4833 44:0.4833 45:0.4833 46:0.4833 47:0.4833 48:0.4833 49:0.4833 50:0.5 51:1 52:1 53:1 54:1 55:1 56:1 57:1 58:1 59:1 60:1 61:0.95 62:0.9333 63:0.9333 64:0.9167 65:0.9167 66:0.9167 67:0.9167 68:0.9167 69:0.9167 70:0.9167 71:0.9167 72:1 73:0.65 74:0.65 75:0.65 76:0.65 77:0.65 78:0.65 79:0.6333 80:0.6333 81:0.6333 82:0.6333 83:0.6333 84:0.6333 85:0.6333 86:0.6333 87:0.6333 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:1 107:1 108:1 109:1 110:1 111:1 112:1 113:1 114:1 115:1 116:0.65 117:0.6333 118:0.6 119:0.5833 120:0.5667 121:0.5833 122:0.5667 123:0.5667 124:0.5667 125:0.5667 126:0.5667 127:0.5667 128:0.5667 129:0.5667 130:0.5833 131:0.5833 132:0.6 133:0.6 134:0.6 135:0.6 136:0.6 137:0.5 138:0.5 139:0.5 140:0.5 141:0.4667 142:0.43863158 143:0.43863158 144:0.43863158 145:0.43863158 146:0.43863158 147:0.43863158 148:0.43863158 149:0.43863158 150:0.43863158 151:0.43863158 152:0.43863158 153:0.45610526 154:0.45610526 155:0.45610526 156:0.45610526 157:0.44639088 158:0.44639088 159:0.44639088 160:0.44639088 161:0.4286051 162:0.4286051 163:0.4286051 164:0.4286051 165:0.4286051 166:0.4286051 167:0.4286051 168:0.4286051 169:0.4286051 170:0.66067736 171:0.44639088 172:0.44639088 173:0.44639088 174:0.44639088 175:0.44639088 176:0.44639088 177:0.44639088 178:0.32146186 179:0.32146186 180:0.32146186 181:0.32146186 182:0.32146186 183:0.32146186 184:0.32146186 185:0.32146186 186:0.32146186 187:0.32146186 188:0.32146186 189:0.32146186 190:0.32146186 191:0.32146186 192:0.32146186 193:0.35714056 194:0.35714056 195:0.33924764 196:0.33924764 197:0.33924764 198:0.33924764 199:0.33924764 200:0.33924764 201:0.33924764 202:0.33924764 203:0.33924764 204:0.33924764 205:0.33924764 206:0.33924764 207:0.35714056 208:0.35714056 209:0.35714056 210:0.35714056 211:0.37503348 212:0.39281926 213:0.41071218 214:0.48217672 215:0.48217672 216:0.37503348 217:0.33924764 218:0.33924764 219:0.32146186 220:0.32146186 221:0.3667 222:0.3667 223:0.3833 224:0.3667 225:0.3667 226:0.3667 227:0.3667 228:0.3833 229:0.3667 230:0.3667 231:0.3833 232:0.3833 233:0.4 234:0.4 235:0.4167 236:0.4167 237:0.4333 238:0.45 239:0.45 240:0.4667 241:0.7167 242:0.7167 243:0.7333 244:0.7333 245:0.7333 246:0.7667 247:0.9167 248:1 249:1 250:1 251:1 252:1 253:1 254:1 255:1 256:1 257:1 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:1 287:1 288:1 289:1 290:1 291:1 292:1 293:1 294:1 295:1 296:1 297:0.7667 298:0.75 299:0.7333 300:0.7333 301:0.7333 302:0.7333 303:0.7333 304:0.7333 305:0.7 306:0.7 307:0.7 308:0.65 309:0.7 310:0.55 311:0.4833 312:0.55 313:0.4833 314:0.55 315:0.4833 316:0.4833 317:0.4833 318:0.4833 319:0.4833 320:0.5667 321:0.5667 322:0.5667 323:0.8167 324:0.8167 325:0.8167 326:0.4833 327:0.4833 328:0.4833 329:0.4833 330:0.4833 331:0.45 332:0.4333 333:0.4333 334:0.4333 335:0.4333 336:0.4333 337:0.4333 338:0.4333 339:0.4333 340:0.4333 341:0.4333 342:0.4333 343:0.45 344:0.7 345:0.7 346:0.7 347:0.7 348:0.7 349:0.7833 350:0.7833 351:1 352:1 353:1 354:1 355:1 356:1 357:0.9667 358:0.95 359:0.95 360:0.95 +0.5467183656136703 1:1 2:1 3:1 4:1 5:1 6:1 7:1 8:1 9:1 10:1 11:1 12:1 13:1 14:0.8667 15:0.85 16:0.85 17:0.85 18:0.85 19:0.8333 20:0.8167 21:0.75 22:0.8167 23:0.7833 24:0.7667 25:0.7667 26:0.5667 27:0.55 28:0.55 29:0.55 30:0.5333 31:0.5333 32:0.5333 33:0.5167 34:0.5167 35:0.5167 36:0.5167 37:0.5167 38:0.5167 39:0.5167 40:0.5167 41:0.5167 42:0.5333 43:0.5333 44:0.55 45:0.55 46:0.5667 47:0.5667 48:0.5833 49:0.5667 50:0.5667 51:0.5833 52:0.5833 53:0.5833 54:0.6 55:1 56:1 57:1 58:0.9667 59:0.9667 60:0.95 61:0.95 62:0.9333 63:0.9333 64:0.9333 65:0.9333 66:0.9333 67:0.9333 68:1 69:1 70:1 71:1 72:0.7667 73:0.7667 74:0.75 75:0.75 76:0.75 77:0.75 78:0.75 79:0.75 80:0.75 81:0.75 82:0.75 83:0.7667 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:1 107:1 108:1 109:1 110:1 111:0.6 112:0.5833 113:0.55 114:0.5333 115:0.5333 116:0.5333 117:0.5167 118:0.5167 119:0.5167 120:0.5167 121:0.5167 122:0.5167 123:0.5167 124:0.5167 125:0.5167 126:0.5333 127:0.5333 128:0.5333 129:0.5333 130:0.5333 131:0.5333 132:0.4667 133:0.4667 134:0.4 135:0.4 136:0.4 137:0.4 138:0.4 139:0.4 140:0.4 141:0.4 142:0.36842105 143:0.36842105 144:0.36842105 145:0.36842105 146:0.36842105 147:0.36842105 148:0.386 149:0.386 150:0.386 151:0.386 152:0.386 153:0.386 154:0.386 155:0.386 156:0.386 157:0.35714056 158:0.35714056 159:0.35714056 160:0.35714056 161:0.35714056 162:0.35714056 163:0.35714056 164:0.35714056 165:0.35714056 166:0.35714056 167:0.35714056 168:0.35714056 169:0.66067736 170:0.58931996 171:0.57142704 172:0.57142704 173:0.55353412 174:0.55353412 175:0.55353412 176:0.55353412 177:0.24999732 178:0.24999732 179:0.24999732 180:0.24999732 181:0.24999732 182:0.24999732 183:0.24999732 184:0.24999732 185:0.24999732 186:0.24999732 187:0.24999732 188:0.24999732 189:0.24999732 190:0.24999732 191:0.24999732 192:0.24999732 193:0.24999732 194:0.24999732 195:0.24999732 196:0.24999732 197:0.24999732 198:0.26789024 199:0.28567602 200:0.28567602 201:0.28567602 202:0.28567602 203:0.28567602 204:0.28567602 205:0.28567602 206:0.26789024 207:0.28567602 208:0.28567602 209:0.26789024 210:0.28567602 211:0.28567602 212:0.28567602 213:0.28567602 214:0.28567602 215:0.28567602 216:0.30356894 217:0.30356894 218:0.30356894 219:0.30356894 220:0.41071218 221:0.4667 222:0.45 223:0.3833 224:0.3833 225:0.35 226:0.35 227:0.35 228:0.3333 229:0.3333 230:0.3333 231:0.3333 232:0.35 233:0.3333 234:0.3333 235:0.35 236:0.3333 237:0.3333 238:0.3333 239:0.3333 240:0.3333 241:0.35 242:0.3667 243:0.3667 244:0.3833 245:0.4 246:0.4167 247:0.4333 248:0.45 249:0.7167 250:0.7167 251:0.75 252:1 253:1 254:1 255:1 256:1 257:1 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:1 287:1 288:1 289:1 290:1 291:1 292:1 293:1 294:1 295:1 296:1 297:1 298:1 299:1 300:0.95 301:0.8167 302:0.8 303:0.7833 304:0.7833 305:0.7833 306:0.7 307:0.7 308:0.7 309:0.7 310:0.7 311:0.7 312:0.7167 313:0.7167 314:0.6 315:0.6 316:0.6 317:0.6 318:0.6 319:0.6 320:0.6 321:0.6 322:0.6 323:0.6333 324:0.6333 325:0.6333 326:0.85 327:0.85 328:0.85 329:0.55 330:0.55 331:0.5333 332:0.55 333:0.5333 334:0.55 335:0.55 336:0.55 337:0.55 338:0.5333 339:0.7833 340:0.7667 341:0.7667 342:0.7667 343:0.7667 344:0.75 345:0.7667 346:0.7667 347:0.7667 348:0.7667 349:0.75 350:0.8333 351:0.8333 352:0.9 353:1 354:1 355:1 356:1 357:1 358:1 359:1 360:1 +1.140237959663935 1:0.8667 2:0.8667 3:0.8667 4:0.8667 5:0.8667 6:0.8667 7:0.8667 8:0.8833 9:0.8833 10:0.8667 11:0.8667 12:0.8833 13:0.8833 14:0.8833 15:0.8833 16:0.8833 17:0.8833 18:0.8167 19:0.7333 20:0.7167 21:0.7 22:0.7167 23:0.7167 24:0.7 25:0.7 26:0.7 27:0.6333 28:0.6333 29:0.6333 30:0.6333 31:0.6333 32:0.6333 33:0.6333 34:0.65 35:0.65 36:0.45 37:0.45 38:0.4333 39:0.4333 40:0.4333 41:0.4333 42:0.4333 43:0.4333 44:0.4333 45:0.4333 46:0.4333 47:0.4333 48:0.4333 49:0.4333 50:0.4333 51:0.4333 52:0.4333 53:0.4333 54:0.4333 55:0.4333 56:0.4333 57:0.4333 58:0.45 59:0.45 60:0.5333 61:0.5 62:0.5333 63:0.4833 64:1 65:1 66:0.9167 67:0.9167 68:0.9167 69:0.9 70:0.9 71:0.9 72:0.9 73:0.9 74:0.9 75:0.9 76:0.9 77:1 78:1 79:1 80:1 81:1 82:1 83:0.8 84:0.8 85:0.8 86:0.8 87:0.8 88:0.8 89:0.8 90:0.8 91:0.8 92:0.8 93:0.8 94:0.8333 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:1 107:1 108:1 109:1 110:1 111:1 112:1 113:1 114:1 115:1 116:1 117:1 118:1 119:1 120:1 121:0.7167 122:0.7 123:0.6833 124:0.6667 125:0.65 126:0.6333 127:0.6167 128:0.6167 129:0.6333 130:0.6167 131:0.6167 132:0.6333 133:0.6167 134:0.6333 135:0.65 136:0.65 137:0.6667 138:0.6667 139:0.6667 140:0.6167 141:0.6 142:0.57894737 143:0.57894737 144:0.50873684 145:0.50873684 146:0.50873684 147:0.50873684 148:0.50873684 149:0.50873684 150:0.50873684 151:0.50873684 152:0.50873684 153:0.52631579 154:0.52631579 155:0.52631579 156:0.54389474 157:0.53574834 158:0.53574834 159:0.53574834 160:0.53574834 161:0.53574834 162:0.51785542 163:0.51785542 164:0.51785542 165:0.51785542 166:0.51785542 167:0.44639088 168:0.44639088 169:0.44639088 170:0.44639088 171:0.44639088 172:0.44639088 173:0.44639088 174:0.41071218 175:0.41071218 176:0.41071218 177:0.41071218 178:0.41071218 179:0.41071218 180:0.41071218 181:0.41071218 182:0.41071218 183:0.41071218 184:0.41071218 185:0.41071218 186:0.41071218 187:0.41071218 188:0.41071218 189:0.4642838 190:0.4286051 191:0.4286051 192:0.4286051 193:0.4286051 194:0.4286051 195:0.4286051 196:0.4286051 197:0.4286051 198:0.4286051 199:0.4286051 200:0.4286051 201:0.4286051 202:0.4286051 203:0.4286051 204:0.44639088 205:0.44639088 206:0.4642838 207:0.48217672 208:0.53574834 209:0.55353412 210:0.53574834 211:0.53574834 212:0.53574834 213:0.53574834 214:0.55353412 215:0.55353412 216:0.57142704 217:0.55353412 218:0.55353412 219:0.55353412 220:0.55353412 221:0.5833 222:0.6 223:0.6 224:0.6 225:0.6 226:0.6 227:0.6167 228:0.6333 229:0.7333 230:0.7167 231:0.7333 232:0.7667 233:0.7667 234:0.7667 235:0.7667 236:0.7667 237:0.75 238:0.7667 239:0.7667 240:0.8 241:0.8167 242:1 243:1 244:1 245:1 246:1 247:1 248:1 249:1 250:1 251:1 252:1 253:1 254:1 255:1 256:1 257:1 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:1 287:0.9833 288:0.9833 289:0.9833 290:0.9667 291:0.95 292:0.7167 293:0.7 294:0.7 295:0.6833 296:0.6833 297:0.55 298:0.6833 299:0.55 300:0.6333 301:0.5667 302:0.55 303:0.4833 304:0.4833 305:0.4833 306:0.4833 307:0.4833 308:0.4833 309:0.4833 310:0.4833 311:0.4833 312:0.4833 313:0.4833 314:0.5 315:0.5 316:0.5 317:0.5 318:0.5 319:0.5167 320:0.4333 321:0.4167 322:0.4 323:0.4 324:0.4 325:0.4 326:0.4 327:0.4 328:0.4 329:0.4 330:0.4 331:0.4 332:0.4 333:0.4 334:0.4167 335:0.6333 336:0.6333 337:0.6167 338:0.6167 339:0.6167 340:0.6167 341:0.6167 342:0.6167 343:0.6167 344:0.6167 345:0.6167 346:0.6167 347:0.6167 348:0.7 349:0.6833 350:0.7 351:0.7167 352:0.7333 353:0.8667 354:0.8667 355:0.8667 356:0.8667 357:0.8667 358:0.8833 359:0.8667 360:0.8667 +0.545646309465038 1:1 2:1 3:1 4:1 5:0.9333 6:0.9333 7:0.5833 8:0.6 9:0.5833 10:0.5833 11:0.4333 12:0.4167 13:0.4167 14:0.4167 15:0.4167 16:0.4167 17:0.4167 18:0.4167 19:0.4167 20:0.4167 21:0.4167 22:0.4167 23:0.4167 24:0.4 25:0.4 26:0.4 27:0.4 28:0.4 29:0.4 30:0.4 31:0.3167 32:0.3 33:0.3 34:0.3 35:0.2833 36:0.2833 37:0.3 38:0.2833 39:0.2833 40:0.2833 41:0.2833 42:0.2667 43:0.2833 44:0.2833 45:0.2667 46:0.2833 47:0.2833 48:0.2833 49:0.2833 50:0.2833 51:0.2833 52:0.2833 53:0.2833 54:0.2833 55:0.2667 56:0.3 57:0.3167 58:0.3167 59:0.3167 60:0.3167 61:0.3167 62:0.3167 63:0.3167 64:0.3167 65:0.3167 66:0.3167 67:0.3 68:0.3167 69:0.3833 70:0.3833 71:0.3833 72:0.3833 73:0.3833 74:0.3833 75:0.3833 76:0.3833 77:0.3833 78:0.6167 79:0.6167 80:0.7333 81:0.7833 82:0.9 83:0.8833 84:0.8833 85:0.8833 86:0.8833 87:1 88:1 89:1 90:1 91:0.8167 92:0.5 93:0.5 94:0.5 95:0.3667 96:0.2833 97:0.2667 98:0.2 99:0.1833 100:0.1833 101:0.2 102:0.1333 103:0.1333 104:0.1333 105:0.1333 106:0.1333 107:0.1333 108:0.1333 109:0.1333 110:0.06667 111:0.06667 112:0.06667 113:0.06667 114:0.06667 115:0.06667 116:0.06667 117:0.06667 118:0.06667 119:0.08333 120:0.08333 121:0.08333 122:0.08333 123:0.08333 124:0.06667 125:0.06667 126:0.06667 127:0.08333 128:0.08333 129:0.08333 130:0.08333 131:0.08333 132:0.08333 133:0.08333 134:0.08333 135:0.08333 136:0.06667 137:0.08333 138:0.08333 139:0.08333 140:0.08333 141:0.08333 142:0.035084211 143:0.035084211 144:0.035084211 145:0.035084211 146:0.017547368 147:0.017547368 148:0.017547368 149:0.035084211 150:0.035084211 151:0.035084211 152:0.035084211 153:0.035084211 154:0.017547368 155:0.017547368 156:0.017547368 163:0.017850064 164:0.017850064 165:0.017850064 166:0.035710842 167:0.035710842 168:0.035710842 169:0.035710842 170:0.035710842 171:0.035710842 172:0.035710842 173:0.035710842 174:0.035710842 175:0.035710842 176:0.035710842 177:0.035710842 178:0.035710842 179:0.035710842 180:0.035710842 181:0.035710842 182:0.035710842 183:0.035710842 184:0.035710842 185:0.035710842 186:0.035710842 187:0.035710842 188:0.035710842 189:0.035710842 190:0.035710842 191:0.035710842 192:0.035710842 193:0.035710842 194:0.035710842 195:0.035710842 196:0.035710842 197:0.053603763 198:0.053603763 199:0.053603763 200:0.053603763 201:0.053603763 202:0.035710842 203:0.053603763 204:0.053603763 205:0.053603763 206:0.053603763 207:0.053603763 208:0.053603763 209:0.053603763 210:0.035710842 211:0.035710842 212:0.035710842 213:0.053603763 214:0.053603763 215:0.053603763 216:0.053603763 217:0.053603763 218:0.035710842 219:0.035710842 220:0.035710842 221:0.1 222:0.1 223:0.1 224:0.1167 225:0.1167 226:0.1167 227:0.1167 228:0.1167 229:0.1167 230:0.1167 231:0.1167 232:0.1167 233:0.1167 234:0.1333 235:0.1333 236:0.1167 237:0.1333 238:0.1333 239:0.1333 240:0.1333 241:0.1333 242:0.1167 243:0.1167 244:0.1167 245:0.1333 246:0.1333 247:0.1333 248:0.1167 249:0.1167 250:0.1167 251:0.1167 252:0.2333 253:0.2333 254:0.2333 255:0.2333 256:0.2333 257:0.2333 258:0.25 259:0.2833 260:0.2833 261:0.2833 262:0.2833 263:0.4833 264:0.4667 265:0.4833 266:0.4833 267:0.7167 268:0.7333 269:0.7333 270:0.7333 271:0.7333 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:0.7167 280:0.7167 281:0.7167 282:0.7167 283:0.7167 284:0.7167 285:0.3833 286:0.3833 287:0.3833 288:0.3833 289:0.3833 290:0.3833 291:0.3833 292:0.3833 293:0.3833 294:0.3833 295:0.3833 296:0.25 297:0.25 298:0.25 299:0.25 300:0.25 301:0.25 302:0.25 303:0.25 304:0.25 305:0.25 306:0.25 307:0.25 308:0.25 309:0.25 310:0.25 311:0.25 312:0.25 313:0.25 314:0.25 315:0.2667 316:0.2667 317:0.2667 318:0.2667 319:0.2667 320:0.2667 321:0.2667 322:0.2667 323:0.2667 324:0.2667 325:0.2667 326:0.2833 327:0.2833 328:0.2833 329:0.2833 330:0.2667 331:0.2667 332:0.2833 333:0.2833 334:0.2667 335:0.2667 336:0.2833 337:0.2667 338:0.2667 339:0.2833 340:0.2667 341:0.2667 342:0.2833 343:0.2667 344:0.2667 345:0.2667 346:0.2833 347:0.4333 348:0.4167 349:0.4333 350:0.4167 351:0.4167 352:0.4167 353:0.4167 354:0.4167 355:0.4167 356:0.6 357:0.6 358:0.75 359:0.75 360:1 +0.133663192574621 1:1 2:1 3:1 4:1 5:1 6:1 7:1 8:0.8667 9:0.5333 10:0.5167 11:0.5167 12:0.5 13:0.5 14:0.3333 15:0.3333 16:0.3333 17:0.3333 18:0.3167 19:0.3333 20:0.3333 21:0.3333 22:0.3333 23:0.3333 24:0.3333 25:0.3333 26:0.3167 27:0.3333 28:0.3333 29:0.3167 30:0.3333 31:0.3333 32:0.3333 33:0.3333 34:0.3167 35:0.3333 36:0.3333 37:0.3167 38:0.3333 39:0.3333 40:0.3167 41:0.3333 42:0.3333 43:0.3167 44:0.3333 45:0.2333 46:0.2333 47:0.2333 48:0.2167 49:0.2167 50:0.2167 51:0.2333 52:0.2167 53:0.2167 54:0.2167 55:0.2167 56:0.2333 57:0.2167 58:0.2167 59:0.2333 60:0.2333 61:0.2167 62:0.2167 63:0.2333 64:0.2167 65:0.2167 66:0.2167 67:0.2167 68:0.2333 69:0.2333 70:0.2333 71:0.2333 72:0.2333 73:0.2333 74:0.2667 75:0.2667 76:0.2833 77:0.2833 78:0.2667 79:0.2667 80:0.2833 81:0.2667 82:0.2667 83:0.2667 84:0.2667 85:0.2667 86:0.2833 87:0.4 88:0.4 89:0.4 90:0.4167 91:0.4167 92:0.4167 93:0.8333 94:0.85 95:1 96:1 97:1 98:1 99:1 100:0.8333 101:0.75 102:0.6833 103:0.6833 104:0.6833 105:0.5167 106:0.5333 107:0.5333 108:0.4167 109:0.4 110:0.4 111:0.4 112:0.4 113:0.4 114:0.3167 115:0.3 116:0.3 117:0.3 118:0.3 119:0.3 120:0.25 121:0.25 122:0.25 123:0.2333 124:0.25 125:0.25 126:0.25 127:0.2333 128:0.25 129:0.2 130:0.2 131:0.2 132:0.2 133:0.1833 134:0.2 135:0.2 136:0.2 137:0.2 138:0.2 139:0.2 140:0.2 141:0.2 142:0.15789474 143:0.15789474 144:0.15789474 145:0.15789474 146:0.15789474 147:0.12284211 148:0.12284211 149:0.10526316 150:0.12284211 151:0.12284211 152:0.12284211 153:0.12284211 154:0.12284211 155:0.12284211 156:0.12284211 157:0.10717538 158:0.10717538 159:0.10717538 160:0.10717538 161:0.10717538 162:0.10717538 163:0.10717538 164:0.10717538 165:0.10717538 166:0.10717538 167:0.10717538 168:0.10717538 169:0.10717538 170:0.10717538 171:0.053603763 172:0.053603763 173:0.053603763 174:0.053603763 175:0.053603763 176:0.053603763 177:0.035710842 178:0.035710842 179:0.035710842 180:0.035710842 181:0.035710842 182:0.035710842 183:0.035710842 184:0.035710842 185:0.035710842 186:0.035710842 187:0.035710842 188:0.035710842 189:0.035710842 190:0.035710842 191:0.035710842 192:0.035710842 193:0.035710842 194:0.035710842 195:0.035710842 196:0.035710842 197:0.035710842 198:0.035710842 199:0.035710842 200:0.035710842 201:0.035710842 202:0.035710842 203:0.035710842 204:0.035710842 205:0.035710842 206:0.035710842 207:0.035710842 208:0.035710842 209:0.035710842 210:0.035710842 211:0.035710842 212:0.035710842 213:0.035710842 214:0.035710842 215:0.035710842 216:0.035710842 217:0.035710842 218:0.035710842 219:0.035710842 220:0.035710842 221:0.1 222:0.1 223:0.1 224:0.1833 225:0.1833 226:0.1833 227:0.1833 228:0.1833 229:0.1833 230:0.2 231:0.25 232:0.25 233:0.2667 234:0.2667 235:0.2667 236:0.2833 237:0.2833 238:0.3 239:0.3 240:0.3 241:0.3 242:0.3 243:0.3 244:0.3 245:0.3 246:0.3 247:0.3 248:0.3 249:0.3 250:0.3 251:0.4833 252:0.4833 253:0.4833 254:0.4833 255:0.4833 256:0.4833 257:0.5 258:0.5 259:0.5 260:0.5 261:0.5167 262:0.5333 263:0.5333 264:0.5167 265:0.5333 266:0.5333 267:0.5667 268:0.5667 269:1 270:1 271:1 272:1 273:1 274:0.5167 275:0.35 276:0.35 277:0.35 278:0.35 279:0.35 280:0.35 281:0.35 282:0.35 283:0.35 284:0.35 285:0.35 286:0.35 287:0.35 288:0.5833 289:0.5833 290:0.8 291:0.8 292:1 293:1 294:1 295:1 296:1 297:1 298:0.2 299:0.2 300:0.2167 301:0.2167 302:0.2 303:0.2 304:0.2 305:0.2 306:0.2 307:0.2 308:0.2 309:0.2 310:0.2167 311:0.2 312:0.2 313:0.2 314:0.2 315:0.2 316:0.2 317:0.2 318:0.2 319:0.2 320:0.2 321:0.2 322:0.1833 323:0.1833 324:0.1833 325:0.2 326:0.2 327:0.1833 328:0.1833 329:0.1833 330:0.2 331:0.2 332:0.2 333:0.1833 334:0.2 335:0.2 336:0.2 337:0.1833 338:0.1833 339:0.2 340:0.2 341:0.1833 342:0.1833 343:0.1833 344:0.2833 345:0.2833 346:0.2833 347:0.3 348:0.3333 349:0.3333 350:0.3333 351:0.3333 352:0.3333 353:0.3333 354:0.3333 355:0.3333 356:0.3333 357:0.5167 358:0.5167 359:0.5167 360:0.5167 +0.5760179746988341 1:0.1333 2:0.1333 3:0.1333 4:0.1333 5:0.1333 6:0.1333 7:0.1333 8:0.1333 9:0.1333 10:0.1333 11:0.1333 12:0.1333 13:0.1333 14:0.1333 15:0.1333 16:0.1333 17:0.1333 18:0.1333 19:0.1333 20:0.1333 21:0.1333 22:0.1333 23:0.1333 24:0.1333 25:0.1333 26:0.1333 27:0.1333 28:0.1333 29:0.1333 30:0.1833 31:0.1833 32:0.1833 33:0.1833 34:0.1833 35:0.1833 36:0.1833 37:0.1833 38:0.1833 39:0.1833 40:0.1833 41:0.1833 42:0.1833 43:0.1833 44:0.1833 45:0.1833 46:0.1833 47:0.1833 48:0.1833 49:0.1833 50:0.2 51:0.2 52:0.2 53:0.2 54:0.2 55:0.1833 56:0.1833 57:0.2 58:0.2 59:0.2 60:0.2 61:0.2 62:0.1833 63:0.2 64:0.2 65:0.2833 66:0.2833 67:0.2833 68:0.2833 69:0.2833 70:0.3 71:0.3 72:0.3 73:0.3 74:0.3167 75:0.3167 76:0.3167 77:0.3167 78:0.3333 79:0.55 80:0.5667 81:0.5667 82:0.6167 83:0.6167 84:0.6167 85:0.6167 86:0.6167 87:0.6167 88:0.8333 89:0.8333 90:0.8333 91:0.7667 92:0.75 93:0.75 94:0.75 95:0.6333 96:0.6333 97:0.55 98:0.55 99:0.1833 100:0.1833 101:0.2 102:0.2 103:0.2 104:0.1833 105:0.1833 106:0.1833 107:0.1833 108:0.1833 109:0.1833 110:0.1833 111:0.1833 112:0.1833 113:0.1833 114:0.1833 115:0.1833 116:0.1833 117:0.1833 118:0.1833 119:0.1833 120:0.1833 121:0.1833 122:0.1833 123:0.1833 124:0.1833 125:0.1833 126:0.1833 127:0.1833 128:0.1833 129:0.1833 130:0.1833 131:0.2 132:0.2 133:0.1833 134:0.2 135:0.2 136:0.2 137:0.2 138:0.2 139:0.2 140:0.2 141:0.2 142:0.15789474 143:0.15789474 144:0.15789474 145:0.14031579 146:0.14031579 147:0.15789474 148:0.15789474 149:0.15789474 150:0.15789474 151:0.15789474 152:0.14031579 153:0.15789474 154:0.15789474 155:0.17547368 156:0.17547368 157:0.160747 158:0.160747 159:0.160747 160:0.160747 161:0.160747 162:0.17853278 163:0.17853278 164:0.1964257 165:0.21431862 166:0.2321044 167:0.26789024 168:0.26789024 169:0.26789024 170:0.26789024 171:0.41071218 172:0.41071218 173:0.41071218 174:0.48217672 175:0.48217672 176:0.48217672 177:0.48217672 178:0.48217672 179:0.6964632 180:1 181:1 182:1 183:0.39281926 184:0.39281926 185:0.39281926 186:0.39281926 187:0.39281926 188:0.39281926 189:0.39281926 190:0.39281926 191:0.39281926 192:0.39281926 193:0.39281926 194:0.39281926 195:0.17853278 196:0.17853278 197:0.17853278 198:0.17853278 199:0.17853278 200:0.17853278 201:0.17853278 202:0.17853278 203:0.17853278 204:0.17853278 205:0.17853278 206:0.17853278 207:0.17853278 208:0.17853278 209:0.17853278 210:0.17853278 211:0.17853278 212:0.17853278 213:0.14285408 214:0.14285408 215:0.14285408 216:0.14285408 217:0.160747 218:0.14285408 219:0.14285408 220:0.14285408 221:0.2 222:0.2 223:0.2 224:0.2 225:0.2 226:0.2167 227:0.2 228:0.2 229:0.2 230:0.2 231:0.2 232:0.1833 233:0.1833 234:0.1833 235:0.2 236:0.2 237:0.1833 238:0.1833 239:0.1833 240:0.2 241:0.2 242:0.2 243:0.1833 244:0.2 245:0.2 246:0.2 247:0.1833 248:0.1833 249:0.2 250:0.2 251:0.1833 252:0.1833 253:0.1833 254:0.2 255:0.2 256:0.2167 257:0.2167 258:0.2167 259:0.2167 260:0.2167 261:0.2167 262:0.2167 263:0.2167 264:0.2167 265:0.2167 266:0.2167 267:0.2167 268:0.2167 269:0.2333 270:0.3 271:0.3 272:0.3 273:0.5833 274:0.5833 275:0.7667 276:0.7667 277:0.7833 278:0.9833 279:1 280:1 281:1 282:1 283:1 284:0.95 285:0.7167 286:0.7 287:0.7 288:0.65 289:0.6667 290:0.6667 291:0.4667 292:0.3 293:0.2833 294:0.2833 295:0.2833 296:0.2833 297:0.2833 298:0.2833 299:0.3 300:0.2833 301:0.2833 302:0.3 303:0.2833 304:0.2833 305:0.3 306:0.2833 307:0.2833 308:0.2833 309:0.3167 310:0.3167 311:0.2167 312:0.2167 313:0.2167 314:0.2167 315:0.2167 316:0.1667 317:0.15 318:0.15 319:0.15 320:0.15 321:0.15 322:0.15 323:0.15 324:0.15 325:0.15 326:0.1333 327:0.15 328:0.15 329:0.15 330:0.15 331:0.15 332:0.15 333:0.15 334:0.15 335:0.15 336:0.15 337:0.15 338:0.15 339:0.15 340:0.15 341:0.15 342:0.15 343:0.15 344:0.15 345:0.15 346:0.15 347:0.15 348:0.15 349:0.15 350:0.15 351:0.1333 352:0.1333 353:0.1333 354:0.1333 355:0.1333 356:0.1333 357:0.1333 358:0.1333 359:0.1333 360:0.1333 +2 1:0.1167 2:0.1167 3:0.1167 4:0.1167 5:0.1167 6:0.1167 7:0.1167 8:0.1167 9:0.1167 10:0.1167 11:0.1167 12:0.1167 13:0.1167 14:0.1167 15:0.1167 16:0.1167 17:0.1167 18:0.1167 19:0.15 20:0.15 21:0.15 22:0.15 23:0.15 24:0.15 25:0.15 26:0.15 27:0.15 28:0.15 29:0.15 30:0.15 31:0.15 32:0.15 33:0.1667 34:0.15 35:0.15 36:0.15 37:0.15 38:0.15 39:0.15 40:0.15 41:0.15 42:0.15 43:0.15 44:0.15 45:0.25 46:0.25 47:0.25 48:0.2667 49:0.2667 50:0.2667 51:0.25 52:0.25 53:0.25 54:0.25 55:0.25 56:0.25 57:0.25 58:0.25 59:0.25 60:0.25 61:0.25 62:0.25 63:0.25 64:0.25 65:0.25 66:0.25 67:0.25 68:0.25 69:0.25 70:0.25 71:0.4 72:0.4 73:0.4 74:0.4 75:0.3833 76:0.4167 77:0.4167 78:0.4167 79:0.4167 80:0.4167 81:0.5167 82:0.65 83:0.65 84:0.6833 85:0.6833 86:0.6833 87:0.7 88:0.8667 89:0.8833 90:0.7333 91:0.7167 92:0.7167 93:0.7167 94:0.6 95:0.6 96:0.3167 97:0.3167 98:0.3167 99:0.3167 100:0.15 101:0.15 102:0.1667 103:0.1667 104:0.1667 105:0.1667 106:0.1667 107:0.1667 108:0.1667 109:0.1667 110:0.1667 111:0.1667 112:0.1667 113:0.1667 114:0.1667 115:0.1667 116:0.1667 117:0.1667 118:0.1667 119:0.1667 120:0.1667 121:0.1667 122:0.1667 123:0.15 124:0.1667 125:0.1667 126:0.1667 127:0.1667 128:0.1667 129:0.1667 130:0.1667 131:0.1667 132:0.1667 133:0.1667 134:0.1667 135:0.1667 136:0.1667 137:0.15 138:0.1667 139:0.1667 140:0.1667 141:0.1667 142:0.12284211 143:0.12284211 144:0.12284211 145:0.12284211 146:0.12284211 147:0.12284211 148:0.12284211 149:0.10526316 150:0.12284211 151:0.12284211 152:0.12284211 153:0.12284211 154:0.12284211 155:0.12284211 156:0.12284211 157:0.10717538 158:0.10717538 159:0.089282462 160:0.10717538 161:0.10717538 162:0.10717538 163:0.10717538 164:0.10717538 165:0.10717538 166:0.10717538 167:0.10717538 168:0.10717538 169:0.10717538 170:0.10717538 171:0.089282462 172:0.089282462 173:0.10717538 174:0.1964257 175:0.1964257 176:0.1964257 177:0.1964257 178:0.1964257 179:0.1964257 180:0.1964257 181:0.1964257 182:0.1964257 183:1 184:0.4286051 185:0.4286051 186:0.4286051 187:0.4286051 188:0.4286051 189:0.4286051 190:0.4286051 191:0.4286051 192:0.4286051 193:0.4286051 194:0.4286051 195:0.4286051 196:0.4286051 197:0.44639088 198:0.44639088 199:0.4286051 200:0.4286051 201:0.4286051 202:0.4286051 203:0.37503348 204:0.37503348 205:0.37503348 206:0.28567602 207:0.26789024 208:0.26789024 209:0.24999732 210:0.24999732 211:0.26789024 212:0.24999732 213:0.24999732 214:0.24999732 215:0.2321044 216:0.2321044 217:0.21431862 218:0.21431862 219:0.21431862 220:0.1964257 221:0.25 222:0.25 223:0.2333 224:0.2333 225:0.2333 226:0.2333 227:0.2333 228:0.2167 229:0.1667 230:0.1667 231:0.1667 232:0.1667 233:0.1667 234:0.1667 235:0.1667 236:0.1667 237:0.1667 238:0.1667 239:0.1667 240:0.1667 241:0.1667 242:0.1667 243:0.1667 244:0.1667 245:0.1667 246:0.1667 247:0.1667 248:0.1667 249:0.1667 250:0.1667 251:0.1667 252:0.1667 253:0.1667 254:0.1667 255:0.1667 256:0.1667 257:0.1667 258:0.1833 259:0.25 260:0.25 261:0.25 262:0.3 263:0.3 264:0.3 265:0.3 266:0.3 267:0.4667 268:0.4667 269:0.4667 270:0.4667 271:0.7833 272:0.8833 273:0.8833 274:0.9 275:1 276:1 277:1 278:1 279:1 280:0.85 281:0.8333 282:0.8333 283:0.6833 284:0.7 285:0.6833 286:0.5 287:0.5 288:0.5 289:0.5 290:0.5 291:0.5 292:0.5 293:0.5 294:0.4833 295:0.4333 296:0.4333 297:0.4333 298:0.4333 299:0.3667 300:0.2167 301:0.2167 302:0.2167 303:0.2167 304:0.2167 305:0.2167 306:0.2167 307:0.2167 308:0.2167 309:0.2167 310:0.2167 311:0.2167 312:0.2167 313:0.2167 314:0.2167 315:0.2167 316:0.1667 317:0.15 318:0.1667 319:0.2167 320:0.1667 321:0.1667 322:0.1667 323:0.1667 324:0.1667 325:0.1667 326:0.1667 327:0.1667 328:0.1667 329:0.1667 330:0.1667 331:0.1667 332:0.1667 333:0.1667 334:0.1667 335:0.1667 336:0.1667 337:0.1667 338:0.1667 339:0.15 340:0.25 341:0.3 342:0.3 343:0.3 344:0.1167 345:0.1167 346:0.1167 347:0.1167 348:0.1167 349:0.1167 350:0.1167 351:0.1167 352:0.1167 353:0.1167 354:0.1167 355:0.1167 356:0.1167 357:0.1167 358:0.1167 359:0.1167 360:0.1167 +0.11331162946465 1:0.1 2:0.1 3:0.1 4:0.1 5:0.1 6:0.1 7:0.1 8:0.1 9:0.1 10:0.1 11:0.1 12:0.1 13:0.1 14:0.1 15:0.1 16:0.1 17:0.1 18:0.1 19:0.1 20:0.1 21:0.1 22:0.1 23:0.1 24:0.1 25:0.1 26:0.1 27:0.1 28:0.1 29:0.1 30:0.1 31:0.1 32:0.1 33:0.1 34:0.1 35:0.1 36:0.1 37:0.1 38:0.1167 39:0.1167 40:0.15 41:0.15 42:0.15 43:0.15 44:0.15 45:0.25 46:0.25 47:0.25 48:0.25 49:0.25 50:0.25 51:0.25 52:0.25 53:0.25 54:0.25 55:0.25 56:0.25 57:0.25 58:0.25 59:0.25 60:0.25 61:0.25 62:0.25 63:0.3667 64:0.3667 65:0.3667 66:0.3667 67:0.5167 68:0.8667 69:0.9667 70:1 71:1 72:1 73:1 74:1 75:1 76:0.8 77:0.6833 78:0.6833 79:0.4833 80:0.4833 81:0.4833 82:0.35 83:0.35 84:0.35 85:0.35 86:0.2333 87:0.2333 88:0.2333 89:0.2333 90:0.2333 91:0.2333 92:0.2333 93:0.2333 94:0.2333 95:0.2333 96:0.2333 97:0.2333 98:0.2333 99:0.2333 100:0.2333 101:0.1333 102:0.1333 103:0.1333 104:0.1333 105:0.1333 106:0.1333 107:0.1333 108:0.1333 109:0.1333 110:0.1333 111:0.1333 112:0.1333 113:0.1333 114:0.1333 115:0.1333 116:0.1333 117:0.1333 118:0.1333 119:0.1333 120:0.1333 121:0.1333 122:0.1333 123:0.1333 124:0.1333 125:0.1333 126:0.1333 127:0.1333 128:0.1333 129:0.1333 130:0.1333 131:0.1333 132:0.1333 133:0.1333 134:0.1333 135:0.1333 136:0.1333 137:0.1333 138:0.1333 139:0.1333 140:0.1667 141:0.1667 142:0.12284211 143:0.12284211 144:0.12284211 145:0.12284211 146:0.12284211 147:0.12284211 148:0.12284211 149:0.12284211 150:0.12284211 151:0.12284211 152:0.12284211 153:0.12284211 154:0.12284211 155:0.12284211 156:0.14031579 157:0.12496116 158:0.12496116 159:0.14285408 160:0.14285408 161:0.160747 162:0.160747 163:0.160747 164:0.160747 165:0.160747 166:0.160747 167:0.160747 168:0.160747 169:0.160747 170:0.160747 171:0.17853278 172:0.32146186 173:0.30356894 174:0.30356894 175:0.37503348 176:0.37503348 177:0.37503348 178:0.83928514 179:1 180:1 181:1 182:1 183:1 184:1 185:1 186:1 187:1 188:1 189:1 190:0.33924764 191:0.33924764 192:0.33924764 193:0.33924764 194:0.33924764 195:0.33924764 196:0.33924764 197:0.33924764 198:0.33924764 199:0.33924764 200:0.33924764 201:0.26789024 202:0.24999732 203:0.24999732 204:0.24999732 205:0.24999732 206:0.24999732 207:0.24999732 208:0.24999732 209:0.24999732 210:0.24999732 211:0.24999732 212:0.24999732 213:0.24999732 214:0.24999732 215:0.1964257 216:0.1964257 217:0.1964257 218:0.1964257 219:0.1964257 220:0.1964257 221:0.25 222:0.25 223:0.25 224:0.25 225:0.25 226:0.25 227:0.25 228:0.25 229:0.25 230:0.25 231:0.25 232:0.25 233:0.25 234:0.25 235:0.25 236:0.25 237:0.25 238:0.25 239:0.25 240:0.25 241:0.25 242:0.25 243:0.2667 244:0.2667 245:0.25 246:0.25 247:0.2667 248:0.2667 249:0.2667 250:0.2667 251:0.2667 252:0.2833 253:0.3333 254:0.35 255:0.35 256:0.4167 257:0.35 258:0.35 259:0.4333 260:0.35 261:0.3333 262:0.35 263:0.3333 264:0.3333 265:0.4167 266:0.5667 267:0.5667 268:0.5667 269:0.7 270:0.7 271:0.7 272:0.7 273:0.7167 274:0.7167 275:1 276:0.7167 277:0.7167 278:0.7167 279:0.7167 280:0.6 281:0.6 282:0.6 283:0.6 284:0.6 285:0.6 286:0.35 287:0.3333 288:0.35 289:0.35 290:0.3333 291:0.2167 292:0.2167 293:0.2167 294:0.2167 295:0.2167 296:0.2167 297:0.2167 298:0.2167 299:0.2167 300:0.2167 301:0.2167 302:0.2167 303:0.2167 304:0.2167 305:0.2167 306:0.2167 307:0.2167 308:0.2167 309:0.2167 310:0.2167 311:0.2167 312:0.2167 313:0.2167 314:0.2167 315:0.2333 316:0.2333 317:0.2333 318:0.2167 319:0.2167 320:0.2167 321:0.2167 322:0.2167 323:0.1167 324:0.1167 325:0.1167 326:0.1167 327:0.1167 328:0.1167 329:0.1167 330:0.1167 331:0.1167 332:0.1167 333:0.1167 334:0.1167 335:0.1167 336:0.1167 337:0.1167 338:0.1167 339:0.1167 340:0.1167 341:0.1167 342:0.1167 343:0.1167 344:0.1167 345:0.1167 346:0.1167 347:0.1167 348:0.1167 349:0.1167 350:0.1167 351:0.1167 352:0.1167 353:0.1167 354:0.1167 355:0.1167 356:0.1167 357:0.1 358:0.1 359:0.1 360:0.1 +0.0007373997946089183 1:0.3333 2:0.3333 3:0.3333 4:0.3333 5:0.3333 6:0.3333 7:0.3333 8:0.3333 9:0.3333 10:0.3333 11:0.3333 12:0.3333 13:0.3333 14:0.3333 15:0.3333 16:0.3333 17:0.3333 18:0.3333 19:0.3333 20:0.3333 21:0.35 22:0.35 23:0.35 24:0.35 25:0.35 26:0.35 27:0.35 28:0.35 29:0.3667 30:0.3667 31:0.3667 32:0.3667 33:0.3667 34:0.3833 35:0.3833 36:0.3833 37:0.3833 38:0.4 39:0.4 40:0.4 41:0.4167 42:0.4167 43:0.4167 44:0.4333 45:0.4333 46:0.4333 47:0.45 48:0.45 49:0.4667 50:0.4667 51:0.4833 52:0.5 53:0.5 54:0.5167 55:0.5333 56:0.5333 57:0.55 58:0.5667 59:0.5833 60:0.5833 61:0.5833 62:0.6 63:0.6167 64:0.65 65:0.6667 66:0.6833 67:0.7167 68:0.75 69:0.7833 70:0.8167 71:0.85 72:0.9 73:0.9333 74:1 75:1 76:1 77:0.8 78:0.8 79:0.8 80:0.8 81:0.7833 82:0.7833 83:0.7833 84:0.7833 85:0.7833 86:0.7833 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:0.8667 107:0.8167 108:0.7667 109:0.7333 110:0.6833 111:0.6833 112:0.6667 113:0.6333 114:0.5667 115:0.55 116:0.5333 117:0.5167 118:0.5 119:0.4833 120:0.4667 121:0.45 122:0.3667 123:0.3667 124:0.35 125:0.35 126:0.35 127:0.35 128:0.35 129:0.35 130:0.35 131:0.35 132:0.35 133:0.3333 134:0.3333 135:0.3333 136:0.3167 137:0.3167 138:0.2833 139:0.2833 140:0.2833 141:0.2833 142:0.24557895 143:0.24557895 144:0.24557895 145:0.24557895 146:0.24557895 147:0.24557895 148:0.24557895 149:0.24557895 150:0.24557895 151:0.24557895 152:0.24557895 153:0.24557895 154:0.24557895 155:0.24557895 156:0.26315789 157:0.24999732 158:0.24999732 159:0.24999732 160:0.24999732 161:0.26789024 162:0.26789024 163:0.26789024 164:0.26789024 165:0.28567602 166:0.30356894 167:0.32146186 168:0.87496384 169:0.87496384 170:0.87496384 171:0.83928514 172:0.83928514 173:0.83928514 174:0.83928514 175:0.83928514 176:0.83928514 177:0.83928514 178:0.83928514 179:0.85717806 180:0.94642838 181:0.94642838 182:1 183:1 184:0.94642838 185:0.94642838 186:0.83928514 187:0.83928514 188:0.85717806 189:0.85717806 190:0.83928514 191:0.83928514 192:0.85717806 193:0.85717806 194:0.67857028 195:0.67857028 196:0.67857028 197:0.67857028 198:0.67857028 199:0.67857028 200:0.67857028 201:0.67857028 202:0.6964632 203:0.6964632 204:0.6964632 205:0.6964632 206:0.28567602 207:0.28567602 208:0.28567602 209:0.28567602 210:0.28567602 211:0.26789024 212:0.26789024 213:0.26789024 214:0.26789024 215:0.26789024 216:0.26789024 217:0.26789024 218:0.26789024 219:0.26789024 220:0.26789024 221:0.3167 222:0.3167 223:0.3167 224:0.3167 225:0.3167 226:0.3167 227:0.3167 228:0.3167 229:0.3167 230:0.3167 231:0.3333 232:0.3333 233:0.3333 234:0.35 235:0.35 236:0.3667 237:0.3667 238:0.3833 239:0.4 240:0.4 241:0.4167 242:0.4333 243:0.4333 244:0.4333 245:0.4333 246:0.45 247:0.4667 248:0.5333 249:0.55 250:0.5833 251:0.5833 252:0.5833 253:0.6167 254:0.65 255:0.7 256:0.7333 257:0.95 258:0.95 259:0.95 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:1 287:1 288:1 289:1 290:1 291:1 292:1 293:1 294:1 295:0.8333 296:0.7667 297:0.7333 298:0.7167 299:0.7 300:0.6667 301:0.65 302:0.6333 303:0.6167 304:0.6 305:0.5833 306:0.5667 307:0.55 308:0.55 309:0.5333 310:0.5167 311:0.5167 312:0.5 313:0.4833 314:0.4833 315:0.4667 316:0.4667 317:0.45 318:0.45 319:0.45 320:0.4333 321:0.4333 322:0.4333 323:0.4167 324:0.4167 325:0.4167 326:0.4 327:0.4 328:0.4 329:0.4 330:0.3833 331:0.3833 332:0.3833 333:0.3833 334:0.3833 335:0.3667 336:0.35 337:0.35 338:0.35 339:0.35 340:0.35 341:0.35 342:0.35 343:0.35 344:0.35 345:0.35 346:0.35 347:0.35 348:0.35 349:0.35 350:0.35 351:0.35 352:0.3333 353:0.3333 354:0.3333 355:0.3333 356:0.3333 357:0.3333 358:0.3333 359:0.3333 360:0.3333 +0.8636109765598329 1:0.3167 2:0.3167 3:0.3167 4:0.3167 5:0.3167 6:0.3167 7:0.3167 8:0.3167 9:0.3167 10:0.3167 11:0.3167 12:0.3167 13:0.3167 14:0.3167 15:0.3167 16:0.3167 17:0.3167 18:0.3167 19:0.3167 20:0.3167 21:0.3333 22:0.3333 23:0.3333 24:0.3333 25:0.3333 26:0.3333 27:0.3333 28:0.3333 29:0.35 30:0.35 31:0.35 32:0.35 33:0.35 34:0.35 35:0.3667 36:0.3667 37:0.3667 38:0.3667 39:0.3667 40:0.3667 41:0.3667 42:0.3667 43:0.3833 44:0.3833 45:0.3833 46:0.4167 47:0.4333 48:0.4333 49:0.4333 50:0.45 51:0.45 52:0.45 53:0.45 54:0.4667 55:0.4667 56:0.4833 57:0.5 58:0.5 59:0.5167 60:0.5333 61:0.55 62:0.5667 63:0.5833 64:0.6 65:0.6333 66:0.65 67:0.6667 68:0.7 69:0.7333 70:0.7667 71:0.8 72:0.85 73:0.8833 74:0.9333 75:0.95 76:1 77:1 78:1 79:1 80:1 81:1 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:1 107:0.9333 108:0.8833 109:0.8333 110:0.8 111:0.75 112:0.7167 113:0.65 114:0.6167 115:0.6 116:0.5667 117:0.55 118:0.5333 119:0.5167 120:0.5 121:0.4833 122:0.4667 123:0.45 124:0.4167 125:0.4333 126:0.4167 127:0.3833 128:0.3833 129:0.3833 130:0.3833 131:0.3833 132:0.3667 133:0.3667 134:0.3667 135:0.35 136:0.35 137:0.35 138:0.3333 139:0.3333 140:0.3333 141:0.3167 142:0.28073684 143:0.28073684 144:0.28073684 145:0.28073684 146:0.28073684 147:0.28073684 148:0.28073684 149:0.28073684 150:0.28073684 151:0.28073684 152:0.28073684 153:0.28073684 154:0.28073684 155:0.28073684 156:0.29821053 157:0.30356894 158:0.28567602 159:0.28567602 160:0.30356894 161:0.30356894 162:0.30356894 163:0.30356894 164:0.32146186 165:0.33924764 166:0.91074968 167:0.91074968 168:0.91074968 169:0.92853546 170:0.92853546 171:0.87496384 172:0.87496384 173:0.87496384 174:0.87496384 175:0.87496384 176:0.87496384 177:0.87496384 178:0.87496384 179:0.9643213 180:0.9643213 181:0.9643213 182:0.9643213 183:0.9643213 184:0.85717806 185:0.85717806 186:0.85717806 187:0.85717806 188:0.85717806 189:0.85717806 190:0.85717806 191:0.7321419 192:0.71424898 193:0.67857028 194:0.67857028 195:0.6964632 196:0.67857028 197:0.67857028 198:0.32146186 199:0.30356894 200:0.30356894 201:0.30356894 202:0.30356894 203:0.28567602 204:0.26789024 205:0.24999732 206:0.26789024 207:0.26789024 208:0.26789024 209:0.24999732 210:0.24999732 211:0.26789024 212:0.24999732 213:0.24999732 214:0.26789024 215:0.24999732 216:0.24999732 217:0.24999732 218:0.24999732 219:0.24999732 220:0.26789024 221:0.3 222:0.3 223:0.3167 224:0.3167 225:0.3167 226:0.3167 227:0.3333 228:0.3333 229:0.3333 230:0.35 231:0.35 232:0.3667 233:0.3667 234:0.3833 235:0.3833 236:0.4 237:0.4 238:0.4167 239:0.4333 240:0.4333 241:0.45 242:0.4667 243:0.4833 244:0.5 245:0.5167 246:0.5333 247:0.55 248:0.5667 249:0.6 250:0.6333 251:0.65 252:0.6833 253:0.7333 254:0.7667 255:0.8167 256:0.8667 257:0.9167 258:0.9167 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:1 287:1 288:1 289:1 290:1 291:1 292:1 293:1 294:0.7833 295:0.75 296:0.7333 297:0.7 298:0.6833 299:0.65 300:0.6333 301:0.6167 302:0.6 303:0.5833 304:0.5667 305:0.55 306:0.5333 307:0.5 308:0.4833 309:0.4833 310:0.4667 311:0.45 312:0.45 313:0.4333 314:0.4333 315:0.4333 316:0.4167 317:0.4167 318:0.4 319:0.4 320:0.4 321:0.3833 322:0.3833 323:0.3833 324:0.3667 325:0.3667 326:0.3667 327:0.3667 328:0.35 329:0.35 330:0.35 331:0.35 332:0.35 333:0.35 334:0.3333 335:0.3333 336:0.3333 337:0.3333 338:0.3333 339:0.3333 340:0.3333 341:0.3333 342:0.3167 343:0.3167 344:0.3167 345:0.3167 346:0.3167 347:0.3167 348:0.3167 349:0.3167 350:0.3167 351:0.3167 352:0.3167 353:0.3167 354:0.3167 355:0.3167 356:0.3167 357:0.3167 358:0.3167 359:0.3167 360:0.3167 +0.01691612721349328 1:0.6833 2:0.6833 3:0.6833 4:0.6833 5:0.6667 6:0.6667 7:0.65 8:0.65 9:0.65 10:0.65 11:0.65 12:0.65 13:0.65 14:0.6667 15:0.6667 16:0.7333 17:0.7333 18:0.7333 19:0.7333 20:0.7333 21:0.7333 22:0.7333 23:0.75 24:0.9167 25:0.9167 26:0.8833 27:0.8167 28:0.75 29:0.7333 30:0.7167 31:0.4833 32:0.3667 33:0.3667 34:0.3667 35:0.3667 36:0.3667 37:0.3667 38:0.3667 39:0.3667 40:0.3667 41:0.3667 42:0.3667 43:0.3667 44:0.3667 45:0.35 46:0.35 47:0.35 48:0.35 49:0.35 50:0.35 51:0.35 52:0.35 53:0.35 54:0.35 55:0.35 56:0.35 57:0.35 58:0.35 59:0.3667 60:0.4667 61:0.3833 62:0.3833 63:0.3833 64:0.3833 65:0.3833 66:0.3833 67:0.4167 68:0.3833 69:0.4167 70:0.4167 71:0.4167 72:0.4333 73:0.4333 74:0.4333 75:0.4333 76:0.4333 77:0.4333 78:0.4333 79:0.4333 80:0.4333 81:0.4333 82:0.4667 83:0.5333 84:0.9667 85:0.9667 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:0.7667 99:0.7667 100:0.5 101:0.5 102:0.4167 103:0.4167 104:0.4 105:0.3 106:0.2833 107:0.2833 108:0.2833 109:0.2833 110:0.2833 111:0.2167 112:0.2167 113:0.2167 114:0.2167 115:0.2167 116:0.2167 117:0.2167 118:0.2 119:0.2 120:0.1833 121:0.2 122:0.2 123:0.2 124:0.2 125:0.2 126:0.2 127:0.2 128:0.2 129:0.2 130:0.2 131:0.2 132:0.2 133:0.2 134:0.1167 135:0.1167 136:0.1167 137:0.1167 138:0.1167 139:0.1 140:0.1 141:0.1 142:0.052631579 143:0.052631579 144:0.052631579 145:0.070210526 146:0.070210526 147:0.070210526 148:0.070210526 149:0.070210526 150:0.052631579 151:0.052631579 152:0.052631579 153:0.070210526 154:0.070210526 155:0.070210526 156:0.070210526 157:0.053603763 158:0.053603763 159:0.053603763 160:0.035710842 161:0.053603763 162:0.053603763 163:0.053603763 164:0.053603763 165:0.053603763 166:0.035710842 167:0.035710842 168:0.035710842 169:0.053603763 170:0.053603763 171:0.035710842 172:0.035710842 173:0.035710842 174:0.035710842 175:0.035710842 176:0.035710842 177:0.035710842 178:0.035710842 179:0.035710842 180:0.035710842 181:0.035710842 182:0.035710842 183:0.035710842 184:0.035710842 185:0.035710842 186:0.035710842 187:0.035710842 188:0.035710842 189:0.035710842 190:0.035710842 191:0.035710842 192:0.035710842 193:0.035710842 194:0.035710842 195:0.035710842 196:0.035710842 197:0.035710842 198:0.035710842 199:0.035710842 200:0.035710842 201:0.035710842 202:0.035710842 203:0.035710842 204:0.035710842 205:0.035710842 206:0.035710842 207:0.035710842 208:0.035710842 209:0.035710842 210:0.035710842 211:0.035710842 212:0.035710842 213:0.035710842 214:0.035710842 215:0.035710842 216:0.035710842 217:0.035710842 218:0.035710842 219:0.035710842 220:0.035710842 221:0.1 222:0.1 223:0.1 224:0.1167 225:0.1167 226:0.1167 227:0.1167 228:0.1167 229:0.1167 230:0.1167 231:0.1167 232:0.1167 233:0.1167 234:0.1333 235:0.1333 236:0.1333 237:0.1333 238:0.1333 239:0.15 240:0.15 241:0.15 242:0.15 243:0.1667 244:0.1667 245:0.1667 246:0.1833 247:0.1833 248:0.1833 249:0.2167 250:0.2167 251:0.2167 252:0.2667 253:0.25 254:0.25 255:0.2667 256:0.35 257:0.45 258:0.45 259:0.45 260:0.45 261:0.45 262:0.55 263:0.55 264:0.6167 265:0.6667 266:0.6667 267:0.9167 268:1 269:0.9167 270:0.9 271:0.9 272:0.9 273:0.9 274:0.9 275:0.9 276:0.9 277:0.8 278:0.8 279:0.8 280:0.8 281:0.8 282:0.8 283:0.75 284:0.7333 285:0.65 286:0.6 287:0.5833 288:0.4833 289:0.4833 290:0.4833 291:0.4667 292:0.45 293:0.4167 294:0.4 295:0.4 296:0.4 297:0.4 298:0.4 299:0.4 300:0.3833 301:0.4 302:0.4 303:0.4 304:0.4 305:0.4 306:0.4167 307:0.4 308:0.4 309:0.4167 310:0.4167 311:0.4167 312:0.4167 313:0.4167 314:0.4167 315:0.4167 316:0.4 317:0.4 318:0.4 319:0.4 320:0.4 321:0.4 322:0.4 323:0.4 324:0.4 325:0.4 326:0.4 327:0.4 328:0.4 329:0.4 330:0.4 331:0.4167 332:0.4167 333:0.4167 334:0.4167 335:0.4333 336:0.4167 337:0.5 338:0.5 339:0.5 340:0.5 341:0.5 342:0.5 343:0.5 344:0.5 345:0.6333 346:0.6333 347:0.6333 348:0.6333 349:0.6333 350:0.65 351:0.7167 352:0.8 353:0.8167 354:0.6833 355:0.6833 356:0.6833 357:0.6833 358:0.6833 359:0.6833 360:0.6833 +0.2535603430423138 1:0.5333 2:0.5333 3:0.5333 4:0.6333 5:0.6167 6:0.6167 7:0.6167 8:0.6167 9:0.6167 10:0.6 11:0.6 12:0.6 13:0.6 14:0.6 15:0.6 16:0.6 17:0.5833 18:0.5833 19:0.5667 20:0.5833 21:0.5667 22:0.5667 23:0.5833 24:0.5667 25:0.5833 26:0.5667 27:0.5833 28:0.6 29:0.65 30:0.4333 31:0.6167 32:0.4333 33:0.6 34:0.4333 35:0.6 36:0.4333 37:0.6 38:0.4333 39:0.4333 40:0.5667 41:0.5667 42:0.55 43:0.55 44:0.3167 45:0.3167 46:0.3167 47:0.3167 48:0.3167 49:0.3167 50:0.3167 51:0.3167 52:0.3167 53:0.3167 54:0.3167 55:0.3167 56:0.3167 57:0.3167 58:0.3167 59:0.3167 60:0.3167 61:0.3167 62:0.3333 63:0.3333 64:0.3333 65:0.3667 66:0.3333 67:0.3667 68:0.3333 69:0.3333 70:0.3667 71:0.3667 72:0.3667 73:0.3667 74:0.3667 75:0.4167 76:0.4167 77:0.4167 78:0.4167 79:0.4167 80:0.4167 81:0.4167 82:0.4167 83:0.4167 84:0.4667 85:0.5 86:0.5 87:1 88:1 89:0.6667 90:0.6667 91:0.6667 92:0.6667 93:0.6667 94:0.6667 95:0.6667 96:1 97:1 98:0.9167 99:0.7833 100:0.7833 101:0.7833 102:0.6833 103:0.55 104:0.55 105:0.4667 106:0.5333 107:0.3833 108:0.4 109:0.4 110:0.4 111:0.3167 112:0.3 113:0.2833 114:0.2833 115:0.2833 116:0.25 117:0.25 118:0.2333 119:0.2333 120:0.2333 121:0.2333 122:0.2333 123:0.2333 124:0.2333 125:0.2333 126:0.1833 127:0.1833 128:0.2 129:0.2 130:0.2 131:0.2 132:0.2 133:0.2 134:0.2 135:0.2 136:0.2 137:0.2 138:0.2 139:0.2 140:0.2 141:0.2 142:0.15789474 143:0.15789474 144:0.10526316 145:0.10526316 146:0.087684211 147:0.10526316 148:0.10526316 149:0.10526316 150:0.10526316 151:0.10526316 152:0.10526316 153:0.10526316 154:0.10526316 155:0.10526316 156:0.10526316 157:0.089282462 158:0.089282462 159:0.089282462 160:0.089282462 161:0.089282462 162:0.089282462 163:0.089282462 164:0.089282462 165:0.089282462 166:0.089282462 167:0.089282462 168:0.089282462 169:0.089282462 170:0.089282462 171:0.071389541 172:0.089282462 173:0.089282462 174:0.089282462 175:0.089282462 176:0.089282462 177:0.089282462 178:0.089282462 179:0.089282462 180:0.089282462 181:0.089282462 182:0.089282462 183:0.089282462 184:0.089282462 185:0.089282462 186:0.089282462 187:0.089282462 188:0.089282462 189:0.089282462 190:0.089282462 191:0.089282462 192:0.089282462 193:0.089282462 194:0.089282462 195:0.089282462 196:0.089282462 197:0.089282462 198:0.089282462 199:0.089282462 200:0.089282462 201:0.089282462 202:0.089282462 203:0.089282462 204:0.089282462 205:0.089282462 206:0.089282462 207:0.10717538 208:0.10717538 209:0.10717538 210:0.10717538 211:0.10717538 212:0.10717538 213:0.10717538 214:0.10717538 215:0.10717538 216:0.10717538 217:0.10717538 218:0.10717538 219:0.10717538 220:0.10717538 221:0.1667 222:0.1667 223:0.1667 224:0.1667 225:0.15 226:0.1667 227:0.25 228:0.25 229:0.25 230:0.2333 231:0.25 232:0.25 233:0.2333 234:0.2333 235:0.25 236:0.25 237:0.25 238:0.25 239:0.25 240:0.25 241:0.25 242:0.25 243:0.25 244:0.25 245:0.3 246:0.3 247:0.3 248:0.3 249:0.3 250:0.3 251:0.3167 252:0.3167 253:0.3167 254:0.3167 255:0.45 256:0.4333 257:0.45 258:0.4833 259:0.5 260:0.5 261:0.5667 262:0.6167 263:0.65 264:0.8333 265:0.9333 266:0.6333 267:0.6333 268:0.6333 269:0.6333 270:0.6333 271:0.6333 272:0.6333 273:0.6333 274:0.6333 275:0.6333 276:0.6333 277:0.6333 278:0.8 279:0.8 280:0.8 281:0.7667 282:0.65 283:0.6 284:0.5667 285:0.5833 286:0.4833 287:0.45 288:0.4167 289:0.4167 290:0.4167 291:0.4167 292:0.4 293:0.3833 294:0.4 295:0.3833 296:0.4 297:0.3833 298:0.4 299:0.4 300:0.4 301:0.4 302:0.3833 303:0.4 304:0.4 305:0.4 306:0.4167 307:0.4333 308:0.4167 309:0.4333 310:0.4167 311:0.4167 312:0.4167 313:0.4 314:0.4 315:0.4 316:0.4 317:0.4 318:0.4 319:0.4 320:0.4 321:0.4 322:0.4 323:0.4 324:0.4 325:0.4 326:0.4 327:0.4 328:0.4 329:0.4 330:0.4 331:0.4167 332:0.4167 333:0.4167 334:0.4167 335:0.4667 336:0.4833 337:0.4833 338:0.4833 339:0.4667 340:0.4833 341:0.4667 342:0.4833 343:0.6167 344:0.6167 345:0.6167 346:0.6167 347:0.6167 348:0.6333 349:0.6833 350:0.7333 351:0.8 352:0.55 353:0.55 354:0.55 355:0.5333 356:0.5333 357:0.5333 358:0.5333 359:0.5333 360:0.5333 +0.1593974518798796 1:1 2:1 3:1 4:1 5:1 6:1 7:1 8:1 9:1 10:1 11:1 12:1 13:1 14:1 15:1 16:1 17:1 18:1 19:1 20:1 21:0.3167 22:0.3 23:0.2833 24:0.2833 25:0.2667 26:0.25 27:0.25 28:0.2667 29:0.2667 30:0.25 31:0.2667 32:0.2667 33:0.2667 34:0.2667 35:0.2667 36:0.2667 37:0.25 38:0.2667 39:0.2667 40:0.25 41:0.25 42:0.2667 43:0.2667 44:0.2667 45:0.2667 46:0.2833 47:0.2833 48:0.2833 49:0.2833 50:0.3 51:0.3 52:0.3 53:0.3 54:0.3 55:0.3 56:0.3 57:0.3333 58:0.3333 59:0.3333 60:0.3333 61:0.3833 62:0.4 63:0.4 64:0.4167 65:0.4333 66:0.45 67:0.4667 68:0.4833 69:0.5167 70:0.5333 71:0.55 72:0.5833 73:0.6167 74:0.65 75:0.7167 76:0.7667 77:0.7833 78:0.9167 79:0.9667 80:0.9667 81:1 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:0.8 104:0.8 105:0.7167 106:0.6833 107:0.65 108:0.6167 109:0.6167 110:0.5333 111:0.5167 112:0.4833 113:0.4667 114:0.4667 115:0.4667 116:0.4667 117:0.4333 118:0.4167 119:0.4 120:0.4 121:0.35 122:0.3333 123:0.3333 124:0.3167 125:0.3167 126:0.3 127:0.3 128:0.3 129:0.2833 130:0.2833 131:0.2833 132:0.2667 133:0.2667 134:0.2667 135:0.25 136:0.25 137:0.25 138:0.25 139:0.25 140:0.2333 141:0.2333 142:0.19294737 143:0.19294737 144:0.19294737 145:0.17547368 146:0.17547368 147:0.17547368 148:0.17547368 149:0.17547368 150:0.17547368 151:0.17547368 152:0.17547368 153:0.17547368 154:0.17547368 155:0.15789474 156:0.15789474 157:0.14285408 158:0.14285408 159:0.14285408 160:0.14285408 161:0.14285408 162:0.14285408 163:0.14285408 164:0.14285408 165:0.14285408 166:0.14285408 167:0.14285408 168:0.14285408 169:0.14285408 170:0.14285408 171:0.14285408 172:0.14285408 173:0.14285408 174:0.14285408 175:0.14285408 176:0.14285408 177:0.14285408 178:0.14285408 179:0.14285408 180:0.14285408 181:0.14285408 182:0.14285408 183:0.14285408 184:0.14285408 185:0.14285408 186:0.14285408 187:0.14285408 188:0.14285408 189:0.14285408 190:0.14285408 191:0.14285408 192:0.14285408 193:0.14285408 194:0.14285408 195:0.14285408 196:0.14285408 197:0.14285408 198:0.14285408 199:0.14285408 200:0.14285408 201:0.14285408 202:0.14285408 203:0.14285408 204:0.14285408 205:0.14285408 206:0.14285408 207:0.14285408 208:0.160747 209:0.160747 210:0.160747 211:0.160747 212:0.160747 213:0.160747 214:0.160747 215:0.160747 216:0.160747 217:0.160747 218:0.17853278 219:0.17853278 220:0.17853278 221:0.2333 222:0.2333 223:0.25 224:0.25 225:0.25 226:0.25 227:0.25 228:0.2667 229:0.2667 230:0.2667 231:0.2833 232:0.2833 233:0.2833 234:0.3 235:0.3 236:0.3 237:0.3167 238:0.3167 239:0.3333 240:0.3333 241:0.35 242:0.35 243:0.3667 244:0.35 245:0.4 246:0.4167 247:0.4333 248:0.45 249:0.4667 250:0.4833 251:0.5167 252:0.5333 253:0.5667 254:0.6 255:0.6333 256:0.6667 257:0.7167 258:0.7667 259:0.8333 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:0.9167 284:0.85 285:0.7833 286:0.7333 287:0.7 288:0.65 289:0.6167 290:0.5833 291:0.55 292:0.5333 293:0.5167 294:0.4833 295:0.4667 296:0.45 297:0.4333 298:0.4167 299:0.4 300:0.4 301:0.3833 302:0.3667 303:0.3667 304:0.35 305:0.35 306:0.3333 307:0.3333 308:0.3167 309:0.3167 310:0.3 311:0.3 312:0.3 313:0.2833 314:0.2833 315:0.2833 316:0.2833 317:0.2667 318:0.2667 319:0.2667 320:0.2667 321:0.25 322:0.25 323:0.25 324:0.25 325:0.25 326:0.25 327:0.2333 328:0.2333 329:0.2333 330:0.2333 331:0.2333 332:0.2333 333:0.2333 334:0.2333 335:0.2333 336:0.2333 337:0.2333 338:0.2333 339:0.2333 340:0.2333 341:0.2333 342:0.2333 343:0.2333 344:0.2333 345:0.2333 346:0.2333 347:0.2333 348:0.2333 349:0.2333 350:0.2333 351:0.2333 352:0.3 353:0.3333 354:0.3333 355:0.3333 356:0.3333 357:0.3333 358:0.3333 359:0.3333 360:1 +0.5026215130059279 1:1 2:1 3:1 4:1 5:1 6:1 7:1 8:1 9:1 10:1 11:1 12:1 13:1 14:0.25 15:0.25 16:0.25 17:0.25 18:0.25 19:0.2333 20:0.2333 21:0.25 22:0.25 23:0.2333 24:0.25 25:0.25 26:0.25 27:0.25 28:0.25 29:0.25 30:0.25 31:0.25 32:0.25 33:0.25 34:0.25 35:0.2333 36:0.25 37:0.25 38:0.25 39:0.25 40:0.25 41:0.25 42:0.2667 43:0.2667 44:0.2667 45:0.2667 46:0.2833 47:0.2833 48:0.2833 49:0.2833 50:0.3 51:0.3 52:0.3 53:0.3 54:0.3 55:0.3 56:0.3 57:0.35 58:0.35 59:0.3667 60:0.3667 61:0.3833 62:0.4 63:0.4 64:0.4167 65:0.4333 66:0.45 67:0.4667 68:0.4833 69:0.5167 70:0.5333 71:0.55 72:0.5833 73:0.6167 74:0.65 75:0.7333 76:0.7333 77:0.7833 78:0.8167 79:0.8333 80:1 81:1 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:0.75 104:0.7667 105:0.7167 106:0.7 107:0.7 108:0.65 109:0.5833 110:0.5333 111:0.5167 112:0.5 113:0.5 114:0.4833 115:0.4667 116:0.45 117:0.45 118:0.3833 119:0.3833 120:0.3833 121:0.3833 122:0.3667 123:0.3667 124:0.35 125:0.35 126:0.3 127:0.3 128:0.3 129:0.2833 130:0.2833 131:0.2833 132:0.2667 133:0.2667 134:0.2667 135:0.2667 136:0.2667 137:0.2667 138:0.2667 139:0.2667 140:0.2333 141:0.2333 142:0.19294737 143:0.19294737 144:0.19294737 145:0.17547368 146:0.17547368 147:0.17547368 148:0.17547368 149:0.17547368 150:0.17547368 151:0.17547368 152:0.17547368 153:0.17547368 154:0.17547368 155:0.15789474 156:0.15789474 157:0.14285408 158:0.14285408 159:0.14285408 160:0.14285408 161:0.14285408 162:0.14285408 163:0.14285408 164:0.14285408 165:0.14285408 166:0.14285408 167:0.14285408 168:0.14285408 169:0.14285408 170:0.14285408 171:0.14285408 172:0.14285408 173:0.14285408 174:0.14285408 175:0.14285408 176:0.14285408 177:0.14285408 178:0.14285408 179:0.14285408 180:0.14285408 181:0.14285408 182:0.14285408 183:0.14285408 184:0.14285408 185:0.14285408 186:0.14285408 187:0.14285408 188:0.14285408 189:0.14285408 190:0.14285408 191:0.14285408 192:0.14285408 193:0.14285408 194:0.14285408 195:0.14285408 196:0.14285408 197:0.14285408 198:0.14285408 199:0.14285408 200:0.14285408 201:0.14285408 202:0.14285408 203:0.14285408 204:0.14285408 205:0.14285408 206:0.14285408 207:0.14285408 208:0.160747 209:0.160747 210:0.160747 211:0.160747 212:0.160747 213:0.160747 214:0.160747 215:0.160747 216:0.160747 217:0.160747 218:0.17853278 219:0.17853278 220:0.17853278 221:0.2333 222:0.2333 223:0.25 224:0.25 225:0.25 226:0.25 227:0.25 228:0.2667 229:0.2667 230:0.2667 231:0.2833 232:0.2833 233:0.2833 234:0.3 235:0.3 236:0.3 237:0.3167 238:0.3167 239:0.3333 240:0.3333 241:0.35 242:0.3667 243:0.3667 244:0.3833 245:0.3833 246:0.3833 247:0.3833 248:0.3833 249:0.4667 250:0.4833 251:0.5167 252:0.5333 253:0.5667 254:0.6 255:0.6333 256:0.6667 257:0.7167 258:0.7667 259:0.8333 260:0.9167 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:0.9167 284:0.85 285:0.7833 286:0.7333 287:0.7 288:0.65 289:0.6167 290:0.5833 291:0.55 292:0.5333 293:0.5167 294:0.4833 295:0.4667 296:0.45 297:0.4333 298:0.4167 299:0.4 300:0.4 301:0.3833 302:0.3667 303:0.3667 304:0.35 305:0.35 306:0.3333 307:0.3333 308:0.3167 309:0.3167 310:0.3 311:0.3 312:0.3 313:0.2833 314:0.2833 315:0.2833 316:0.2833 317:0.2667 318:0.2667 319:0.2667 320:0.2667 321:0.25 322:0.25 323:0.25 324:0.25 325:0.25 326:0.25 327:0.25 328:0.25 329:0.25 330:0.25 331:0.25 332:0.25 333:0.25 334:0.25 335:0.25 336:0.25 337:0.25 338:0.25 339:0.25 340:0.25 341:0.2667 342:0.3 343:0.3 344:0.3 345:0.3 346:0.3 347:0.3 348:0.3333 349:0.3333 350:0.3333 351:0.35 352:0.3333 353:0.3167 354:1 355:1 356:1 357:1 358:1 359:1 360:1 +1.159492380339165 1:1 2:1 3:1 4:1 5:1 6:1 7:1 8:1 9:1 10:1 11:1 12:0.2167 13:0.2167 14:0.2167 15:0.2167 16:0.2167 17:0.2 18:0.2 19:0.1833 20:0.1833 21:0.1833 22:0.2 23:0.2 24:0.1833 25:0.1833 26:0.2 27:0.2 28:0.2 29:0.1833 30:0.2 31:0.2 32:0.2 33:0.1833 34:0.1833 35:0.1833 36:0.2 37:0.2 38:0.1833 39:0.1833 40:0.1833 41:0.2 42:0.2 43:0.2 44:0.2 45:0.2 46:0.2 47:0.2167 48:0.2167 49:0.2167 50:0.2167 51:0.2167 52:0.2333 53:0.2333 54:0.2333 55:0.25 56:0.25 57:0.25 58:0.25 59:0.25 60:0.25 61:0.25 62:0.25 63:0.3 64:0.3167 65:0.3167 66:0.3333 67:0.35 68:0.3667 69:0.4167 70:0.4 71:0.4167 72:0.4333 73:0.45 74:0.4833 75:0.4833 76:0.4833 77:0.5833 78:0.6333 79:0.6667 80:0.6667 81:0.7167 82:0.9 83:0.9 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:1 107:0.7667 108:0.7667 109:0.7667 110:0.7833 111:0.7 112:0.6667 113:0.65 114:0.6167 115:0.6 116:0.5667 117:0.5667 118:0.5333 119:0.5333 120:0.5 121:0.4833 122:0.4667 123:0.45 124:0.45 125:0.4333 126:0.4167 127:0.4167 128:0.4 129:0.4 130:0.3833 131:0.3833 132:0.3667 133:0.3667 134:0.3667 135:0.35 136:0.35 137:0.35 138:0.3333 139:0.3333 140:0.3333 141:0.3167 142:0.28073684 143:0.28073684 144:0.28073684 145:0.26315789 146:0.26315789 147:0.26315789 148:0.26315789 149:0.26315789 150:0.22810526 151:0.22810526 152:0.22810526 153:0.22810526 154:0.22810526 155:0.22810526 156:0.22810526 157:0.21431862 158:0.1964257 159:0.1964257 160:0.1964257 161:0.1964257 162:0.1964257 163:0.1964257 164:0.1964257 165:0.1964257 166:0.1964257 167:0.1964257 168:0.1964257 169:0.1964257 170:0.1964257 171:0.1964257 172:0.1964257 173:0.1964257 174:0.1964257 175:0.1964257 176:0.1964257 177:0.1964257 178:0.1964257 179:0.1964257 180:0.1964257 181:0.1964257 182:0.1964257 183:0.1964257 184:0.1964257 185:0.1964257 186:0.1964257 187:0.1964257 188:0.1964257 189:0.1964257 190:0.1964257 191:0.1964257 192:0.1964257 193:0.1964257 194:0.1964257 195:0.1964257 196:0.1964257 197:0.1964257 198:0.1964257 199:0.1964257 200:0.1964257 201:0.1964257 202:0.1964257 203:0.1964257 204:0.1964257 205:0.21431862 206:0.21431862 207:0.21431862 208:0.21431862 209:0.21431862 210:0.21431862 211:0.21431862 212:0.21431862 213:0.2321044 214:0.2321044 215:0.2321044 216:0.2321044 217:0.2321044 218:0.2321044 219:0.24999732 220:0.24999732 221:0.3 222:0.3 223:0.3167 224:0.3167 225:0.3167 226:0.3167 227:0.3333 228:0.3333 229:0.3333 230:0.35 231:0.35 232:0.3667 233:0.3667 234:0.3833 235:0.3833 236:0.4 237:0.4 238:0.4167 239:0.4167 240:0.4167 241:0.4167 242:0.4167 243:0.4167 244:0.4167 245:0.5167 246:0.5333 247:0.55 248:0.5667 249:0.6 250:0.6333 251:0.65 252:0.6833 253:0.7333 254:0.7667 255:0.8167 256:0.8667 257:0.9333 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:0.95 281:0.8167 282:0.7333 283:0.6833 284:0.6333 285:0.5833 286:0.55 287:0.5167 288:0.4833 289:0.45 290:0.4333 291:0.4167 292:0.4 293:0.3833 294:0.3667 295:0.35 296:0.3333 297:0.3167 298:0.3167 299:0.3 300:0.3 301:0.2833 302:0.2833 303:0.2667 304:0.2667 305:0.25 306:0.25 307:0.25 308:0.2333 309:0.2333 310:0.2333 311:0.2167 312:0.2167 313:0.2167 314:0.2167 315:0.2167 316:0.2 317:0.2 318:0.2167 319:0.2167 320:0.2167 321:0.2 322:0.2167 323:0.2167 324:0.2167 325:0.2 326:0.2167 327:0.2167 328:0.2167 329:0.2167 330:0.2 331:0.2167 332:0.2167 333:0.2 334:0.2 335:0.2167 336:0.2167 337:0.2167 338:0.2667 339:0.2667 340:0.2667 341:0.2667 342:0.2667 343:0.2667 344:0.2667 345:0.2667 346:0.2667 347:0.2667 348:0.2667 349:0.3333 350:0.3333 351:0.3333 352:0.3333 353:0.3167 354:0.3333 355:1 356:1 357:1 358:1 359:1 360:1 +2 1:0.25 2:0.25 3:0.3 4:0.3 5:0.3 6:0.3333 7:0.3333 8:0.3667 9:0.3667 10:0.4 11:0.4 12:0.4167 13:0.4167 14:0.9167 15:0.9 16:0.9 17:0.9 18:0.9 19:0.9 20:0.9 21:1 22:1 23:1 24:0.1833 25:0.1833 26:0.1833 27:0.1833 28:0.1833 29:0.1833 30:0.1833 31:0.1833 32:0.1833 33:0.1833 34:0.1833 35:0.1833 36:0.1833 37:0.1833 38:0.1833 39:0.1833 40:0.1833 41:0.1833 42:0.1833 43:0.1833 44:0.1833 45:0.1833 46:0.1833 47:0.1833 48:0.1833 49:0.1833 50:0.1833 51:0.1833 52:0.1833 53:0.1833 54:0.1833 55:0.1833 56:0.1833 57:0.2 58:0.2 59:0.2 60:0.2167 61:0.2167 62:0.2167 63:0.2333 64:0.2333 65:0.25 66:0.25 67:0.2667 68:0.2833 69:0.2833 70:0.3 71:0.3167 72:0.3333 73:0.35 74:0.3667 75:0.3833 76:0.4167 77:0.4167 78:0.4167 79:0.4333 80:0.4833 81:0.5167 82:0.5833 83:0.65 84:0.75 85:0.8667 86:0.9333 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:1 107:1 108:1 109:1 110:0.8 111:0.8 112:0.7667 113:0.75 114:0.7 115:0.7167 116:0.65 117:0.6333 118:0.6 119:0.5833 120:0.5667 121:0.55 122:0.5333 123:0.5167 124:0.5 125:0.5 126:0.4833 127:0.4667 128:0.4667 129:0.45 130:0.4333 131:0.4333 132:0.4167 133:0.4167 134:0.4 135:0.4 136:0.4 137:0.3833 138:0.3833 139:0.3833 140:0.3667 141:0.3667 142:0.33336842 143:0.31578947 144:0.31578947 145:0.31578947 146:0.31578947 147:0.29821053 148:0.29821053 149:0.29821053 150:0.29821053 151:0.29821053 152:0.29821053 153:0.28073684 154:0.28073684 155:0.28073684 156:0.26315789 157:0.24999732 158:0.24999732 159:0.24999732 160:0.2321044 161:0.2321044 162:0.2321044 163:0.2321044 164:0.2321044 165:0.2321044 166:0.2321044 167:0.2321044 168:0.2321044 169:0.2321044 170:0.2321044 171:0.2321044 172:0.2321044 173:0.2321044 174:0.2321044 175:0.2321044 176:0.2321044 177:0.2321044 178:0.2321044 179:0.2321044 180:0.2321044 181:0.2321044 182:0.2321044 183:0.2321044 184:0.2321044 185:0.2321044 186:0.2321044 187:0.2321044 188:0.2321044 189:0.2321044 190:0.2321044 191:0.2321044 192:0.2321044 193:0.2321044 194:0.2321044 195:0.2321044 196:0.2321044 197:0.2321044 198:0.2321044 199:0.2321044 200:0.2321044 201:0.2321044 202:0.2321044 203:0.24999732 204:0.24999732 205:0.24999732 206:0.24999732 207:0.24999732 208:0.24999732 209:0.24999732 210:0.24999732 211:0.26789024 212:0.26789024 213:0.26789024 214:0.26789024 215:0.26789024 216:0.26789024 217:0.28567602 218:0.28567602 219:0.28567602 220:0.28567602 221:0.35 222:0.35 223:0.35 224:0.3667 225:0.3667 226:0.3667 227:0.3833 228:0.3833 229:0.3833 230:0.4 231:0.4 232:0.4 233:0.4 234:0.4 235:0.4 236:0.4 237:0.4 238:0.4833 239:0.4833 240:0.5 241:0.5167 242:0.5333 243:0.55 244:0.55 245:0.55 246:0.5667 247:0.6 248:0.6167 249:0.65 250:0.6667 251:0.7 252:0.7333 253:0.7833 254:0.8167 255:0.8667 256:0.9333 257:0.9667 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:0.9 280:0.8 281:0.7167 282:0.65 283:0.6 284:0.55 285:0.5167 286:0.4833 287:0.3833 288:0.3667 289:0.35 290:0.3333 291:0.3167 292:0.3 293:0.2833 294:0.2833 295:0.2667 296:0.25 297:0.25 298:0.2333 299:0.2333 300:0.2167 301:0.2167 302:0.2167 303:0.2 304:0.2 305:0.2 306:0.1833 307:0.1833 308:0.1833 309:0.1833 310:0.1833 311:0.1667 312:0.1667 313:0.1667 314:0.1667 315:0.1667 316:0.1667 317:0.15 318:0.1667 319:0.1667 320:0.1667 321:0.1667 322:0.1667 323:0.1667 324:0.1667 325:0.1667 326:0.1667 327:0.1667 328:0.1667 329:0.1667 330:0.1667 331:0.1667 332:0.1667 333:0.1667 334:0.1667 335:0.1667 336:0.1667 337:0.1667 338:0.1667 339:0.15 340:0.1667 341:0.1667 342:0.1833 343:0.1833 344:0.1833 345:0.1833 346:0.1833 347:0.1833 348:0.1833 349:0.2 350:0.2167 351:0.2167 352:0.2 353:0.2 354:0.2 355:0.2167 356:0.2167 357:0.2167 358:0.2167 359:0.2333 360:0.25 +1.039765474099854 1:1 2:1 3:1 4:1 5:1 6:0.4667 7:0.45 8:0.3333 9:0.3 10:0.3 11:0.3 12:0.3 13:0.3 14:0.25 15:0.25 16:0.25 17:0.25 18:0.25 19:0.25 20:0.25 21:0.25 22:0.25 23:0.25 24:0.2333 25:0.2167 26:0.2167 27:0.2167 28:0.2167 29:0.2333 30:0.2167 31:0.2167 32:0.2333 33:0.2333 34:0.2167 35:0.2167 36:0.2333 37:0.2333 38:0.2167 39:0.2 40:0.2 41:0.2 42:0.2167 43:0.2167 44:0.2 45:0.2 46:0.35 47:0.35 48:0.2 49:0.2 50:0.2 51:0.2167 52:0.2167 53:0.2 54:0.2 55:0.2167 56:0.2 57:0.2 58:0.2 59:0.2 60:0.2167 61:0.2167 62:0.2167 63:0.2167 64:0.2167 65:0.2167 66:0.2167 67:0.2167 68:0.2167 69:0.2167 70:0.2167 71:0.2167 72:0.5333 73:0.5333 74:0.5333 75:0.5333 76:0.5333 77:0.5333 78:0.5333 79:0.5333 80:0.5333 81:0.5333 82:0.5333 83:0.5333 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:1 107:1 108:1 109:1 110:1 111:1 112:0.45 113:0.45 114:0.45 115:0.45 116:0.45 117:0.45 118:0.45 119:0.45 120:0.45 121:0.45 122:0.45 123:0.45 124:0.45 125:0.3167 126:0.3167 127:0.3167 128:0.3167 129:0.3167 130:0.3 131:0.3167 132:0.3167 133:0.3167 134:0.3167 135:0.3167 136:0.3167 137:0.3167 138:0.3167 139:0.3167 140:0.3167 141:0.3167 142:0.26315789 143:0.64915789 144:0.64915789 145:0.31578947 146:0.31578947 147:0.31578947 148:0.31578947 149:0.31578947 150:0.31578947 151:0.31578947 152:0.31578947 153:0.19294737 154:0.19294737 155:0.19294737 156:0.17547368 157:0.160747 158:0.160747 159:0.17853278 160:0.17853278 161:0.17853278 162:0.160747 163:0.17853278 164:0.17853278 165:0.17853278 166:0.160747 167:0.17853278 168:0.17853278 169:0.17853278 170:0.160747 171:0.17853278 172:0.160747 173:0.160747 174:0.160747 175:0.17853278 176:0.26789024 177:0.26789024 178:0.26789024 179:0.26789024 180:0.26789024 181:0.26789024 182:0.26789024 183:0.26789024 184:0.26789024 185:0.26789024 186:0.4286051 187:0.4286051 188:0.4286051 189:0.4286051 190:0.21431862 191:0.1964257 192:0.1964257 193:0.1964257 194:0.1964257 195:0.1964257 196:0.1964257 197:0.1964257 198:0.1964257 199:0.1964257 200:0.1964257 201:0.1964257 202:0.1964257 203:0.1964257 204:0.1964257 205:0.1964257 206:0.1964257 207:0.1964257 208:0.1964257 209:0.1964257 210:0.1964257 211:0.1964257 212:0.26789024 213:0.21431862 214:0.21431862 215:0.26789024 216:0.21431862 217:0.1964257 218:0.21431862 219:0.26789024 220:0.1964257 221:0.25 222:0.35 223:0.35 224:0.35 225:0.35 226:0.35 227:0.35 228:0.35 229:0.35 230:0.35 231:0.35 232:0.35 233:0.35 234:0.35 235:0.4667 236:0.4667 237:0.4667 238:0.4667 239:0.4667 240:0.4667 241:0.4667 242:0.4667 243:0.4667 244:0.4667 245:0.4667 246:0.6 247:0.6 248:0.6 249:0.6 250:0.6 251:0.6 252:0.75 253:0.75 254:0.75 255:0.75 256:0.75 257:0.9 258:0.9 259:0.9 260:0.9 261:0.9 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:0.25 274:0.25 275:0.25 276:0.25 277:0.2333 278:0.2333 279:0.2333 280:0.2333 281:0.2333 282:0.2333 283:0.25 284:0.25 285:0.2333 286:0.25 287:0.25 288:0.25 289:0.2333 290:0.2333 291:0.45 292:0.2333 293:0.2333 294:0.2333 295:0.2333 296:0.3167 297:0.3167 298:0.3167 299:0.3167 300:0.3167 301:0.3167 302:0.3167 303:0.3167 304:0.3167 305:0.3167 306:0.3167 307:0.3 308:0.3167 309:0.3167 310:0.3167 311:0.3167 312:0.3667 313:0.3667 314:0.3667 315:0.35 316:0.35 317:0.35 318:0.3333 319:0.3333 320:0.3333 321:0.3333 322:0.3333 323:0.3333 324:0.3167 325:0.3 326:0.3 327:0.3 328:0.3 329:0.3 330:0.3 331:0.3 332:0.3 333:0.3 334:0.3 335:0.3 336:0.3 337:0.3 338:0.3 339:0.3 340:0.3 341:0.3 342:0.3 343:0.3 344:0.3167 345:0.3167 346:0.3167 347:0.3167 348:0.3333 349:0.35 350:0.3833 351:0.6667 352:0.6667 353:0.6667 354:0.95 355:0.9833 356:1 357:1 358:1 359:1 360:1 +0.3143866473536532 1:0.2333 2:0.2333 3:0.2333 4:0.2333 5:0.1333 6:0.1333 7:0.1333 8:0.1333 9:0.1333 10:0.1333 11:0.1333 12:0.1333 13:0.1333 14:0.1333 15:0.15 16:0.15 17:0.15 18:0.1333 19:0.1333 20:0.1333 21:0.15 22:0.15 23:0.15 24:0.1333 25:0.1333 26:0.1333 27:0.1333 28:0.15 29:0.15 30:0.1333 31:0.1333 32:0.1333 33:0.1333 34:0.1333 35:0.1333 36:0.1333 37:0.15 38:0.15 39:0.2 40:0.2 41:0.2 42:0.2 43:0.1833 44:0.2 45:0.2 46:0.2 47:0.2 48:0.2 49:0.2 50:0.2 51:0.2 52:0.2 53:0.2 54:0.2 55:0.2 56:0.2 57:0.2 58:0.2 59:0.2 60:0.2 61:0.2 62:0.1833 63:0.2 64:0.2 65:0.25 66:0.25 67:0.4 68:0.4 69:0.4 70:0.4 71:0.4 72:0.4 73:0.4 74:0.4 75:0.3833 76:0.4333 77:0.4333 78:0.4333 79:0.4333 80:0.4333 81:0.4333 82:0.7333 83:0.7333 84:0.8667 85:0.8667 86:0.8833 87:0.8833 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:0.8333 102:0.8333 103:0.8333 104:0.7333 105:0.7333 106:0.7333 107:0.5667 108:0.5667 109:0.5667 110:0.5667 111:0.5667 112:0.4333 113:0.4167 114:0.4167 115:0.4167 116:0.3 117:0.2833 118:0.2833 119:0.2833 120:0.2833 121:0.2833 122:0.2833 123:0.2667 124:0.2667 125:0.2667 126:0.2667 127:0.2667 128:0.2667 129:0.2667 130:0.2667 131:0.2667 132:0.2667 133:0.2667 134:0.2667 135:0.2667 136:0.2667 137:0.2667 138:0.2667 139:0.2667 140:0.2667 141:0.3833 142:0.35084211 143:0.35084211 144:0.35084211 145:0.35084211 146:0.26315789 147:0.26315789 148:0.26315789 149:0.26315789 150:0.26315789 151:0.26315789 152:0.26315789 153:0.26315789 154:0.26315789 155:0.26315789 156:0.26315789 157:0.24999732 158:0.24999732 159:0.24999732 160:0.24999732 161:0.24999732 162:0.24999732 163:0.24999732 164:0.37503348 165:0.39281926 166:0.39281926 167:0.39281926 168:0.39281926 169:0.39281926 170:0.39281926 171:0.39281926 172:0.41071218 173:0.41071218 174:0.48217672 175:0.48217672 176:0.48217672 177:0.48217672 178:0.48217672 179:0.48217672 180:0.48217672 181:0.57142704 182:0.67857028 183:0.85717806 184:0.82139222 185:0.82139222 186:0.78571352 187:0.78571352 188:0.78571352 189:0.78571352 190:0.78571352 191:0.78571352 192:0.80360644 193:0.80360644 194:0.80360644 195:0.83928514 196:0.83928514 197:0.83928514 198:0.83928514 199:0.82139222 200:0.82139222 201:0.82139222 202:0.82139222 203:0.78571352 204:0.78571352 205:0.78571352 206:0.78571352 207:0.78571352 208:0.78571352 209:0.82139222 210:0.82139222 211:0.83928514 212:0.83928514 213:0.83928514 214:0.83928514 215:0.80360644 216:0.60710574 217:0.60710574 218:0.60710574 219:0.60710574 220:0.48217672 221:0.5167 222:0.5167 223:0.5167 224:0.5167 225:0.5167 226:0.4167 227:0.4167 228:0.4 229:0.4167 230:0.4 231:0.4167 232:0.4167 233:0.4167 234:0.4167 235:0.4 236:0.4167 237:0.4 238:0.55 239:0.5667 240:0.55 241:0.4167 242:0.4167 243:0.4333 244:0.4167 245:0.4333 246:0.4167 247:0.4167 248:0.4167 249:0.4167 250:0.4167 251:0.4167 252:0.4333 253:0.5833 254:0.5833 255:0.5833 256:0.5833 257:0.5833 258:0.75 259:0.75 260:0.75 261:0.9167 262:0.9167 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:0.6 283:0.6 284:0.6 285:0.6 286:0.4333 287:0.45 288:0.4333 289:0.4333 290:0.4333 291:0.4333 292:0.3 293:0.3 294:0.3 295:0.3 296:0.3 297:0.3 298:0.3 299:0.3 300:0.3 301:0.3 302:0.3 303:0.3 304:0.3 305:0.3 306:0.3 307:0.3 308:0.3167 309:0.4 310:0.4 311:0.1667 312:0.1667 313:0.1667 314:0.1667 315:0.1667 316:0.1667 317:0.15 318:0.1667 319:0.1667 320:0.1667 321:0.1667 322:0.1667 323:0.1667 324:0.1667 325:0.1667 326:0.1667 327:0.1667 328:0.1667 329:0.1667 330:0.1667 331:0.1667 332:0.1667 333:0.1667 334:0.1667 335:0.1667 336:0.1667 337:0.1667 338:0.1667 339:0.15 340:0.2667 341:0.2667 342:0.2833 343:0.35 344:0.2333 345:0.2333 346:0.2333 347:0.2333 348:0.2333 349:0.2333 350:0.2333 351:0.2333 352:0.2333 353:0.2333 354:0.2333 355:0.2333 356:0.2333 357:0.2333 358:0.2333 359:0.2333 360:0.2333 +0.2290950938655975 1:0.1333 2:0.1333 3:0.1333 4:0.1333 5:0.1333 6:0.1333 7:0.1333 8:0.1333 9:0.1333 10:0.1333 11:0.1333 12:0.1333 13:0.1333 14:0.1333 15:0.1333 16:0.1333 17:0.1333 18:0.1333 19:0.1333 20:0.1333 21:0.1333 22:0.1333 23:0.1333 24:0.1333 25:0.1333 26:0.1333 27:0.1333 28:0.1333 29:0.1333 30:0.2667 31:0.2667 32:0.25 33:0.25 34:0.25 35:0.4 36:0.2167 37:0.2167 38:0.2167 39:0.2 40:0.2 41:0.2 42:0.2167 43:0.2167 44:0.2 45:0.2 46:0.2167 47:0.2167 48:0.2 49:0.2 50:0.2 51:0.2 52:0.2 53:0.2 54:0.2 55:0.2 56:0.2 57:0.2 58:0.2 59:0.2 60:0.2 61:0.2 62:0.2 63:0.2 64:0.2 65:0.2 66:0.2 67:0.2 68:0.2 69:0.2 70:0.2 71:0.35 72:0.3333 73:0.35 74:0.35 75:0.3333 76:0.4667 77:0.4833 78:0.4833 79:0.4833 80:0.4833 81:0.4833 82:0.4833 83:0.4833 84:0.4667 85:0.6167 86:0.7167 87:0.7167 88:0.95 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:0.8333 106:0.6667 107:0.6667 108:0.6667 109:0.6667 110:0.6667 111:0.5167 112:0.5167 113:0.3833 114:0.3833 115:0.3833 116:0.3833 117:0.3833 118:0.35 119:0.3333 120:0.35 121:0.35 122:0.35 123:0.35 124:0.35 125:0.35 126:0.35 127:0.3333 128:0.35 129:0.35 130:0.3333 131:0.35 132:0.35 133:0.35 134:0.4 135:0.4 136:0.4 137:0.4 138:0.3333 139:0.3333 140:0.3333 141:0.3333 142:0.31578947 143:0.21052632 144:0.21052632 145:0.21052632 146:0.21052632 147:0.21052632 148:0.21052632 149:0.21052632 150:0.21052632 151:0.21052632 152:0.21052632 153:0.21052632 154:0.21052632 155:0.21052632 156:0.21052632 157:0.1964257 158:0.1964257 159:0.1964257 160:0.1964257 161:0.21431862 162:0.21431862 163:0.1964257 164:0.1964257 165:0.21431862 166:0.2321044 167:0.28567602 168:0.28567602 169:0.28567602 170:0.28567602 171:0.28567602 172:0.32146186 173:0.32146186 174:0.32146186 175:0.32146186 176:0.32146186 177:0.32146186 178:0.41071218 179:0.41071218 180:0.4286051 181:0.44639088 182:0.48217672 183:0.48217672 184:0.62499866 185:0.67857028 186:0.87496384 187:1 188:0.98210708 189:0.98210708 190:0.98210708 191:0.98210708 192:0.98210708 193:1 194:1 195:1 196:1 197:1 198:1 199:1 200:1 201:1 202:1 203:1 204:1 205:1 206:1 207:1 208:1 209:1 210:0.75003482 211:0.75003482 212:0.60710574 213:0.60710574 214:0.60710574 215:0.60710574 216:0.60710574 217:0.55353412 218:0.48217672 219:0.4642838 220:0.4642838 221:0.4833 222:0.4667 223:0.3833 224:0.3667 225:0.3667 226:0.3667 227:0.35 228:0.3667 229:0.3667 230:0.3667 231:0.3667 232:0.3667 233:0.3667 234:0.3667 235:0.35 236:0.3667 237:0.3667 238:0.3667 239:0.3667 240:0.3667 241:0.3667 242:0.3667 243:0.3667 244:0.3833 245:0.45 246:0.45 247:0.45 248:0.4333 249:0.45 250:0.4333 251:0.45 252:0.4333 253:0.45 254:0.4333 255:0.45 256:0.4333 257:0.4667 258:0.4667 259:0.4667 260:0.4667 261:0.4667 262:0.4667 263:0.4667 264:0.4667 265:0.4667 266:0.4667 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:0.95 283:0.7667 284:0.5833 285:0.5833 286:0.5667 287:0.5667 288:0.5667 289:0.45 290:0.4333 291:0.4333 292:0.4333 293:0.4333 294:0.4333 295:0.4333 296:0.4333 297:0.2833 298:0.2833 299:0.2833 300:0.2833 301:0.2833 302:0.2833 303:0.2833 304:0.2833 305:0.2833 306:0.2833 307:0.2833 308:0.2833 309:0.2833 310:0.2833 311:0.2833 312:0.2833 313:0.2833 314:0.1833 315:0.1833 316:0.1833 317:0.1833 318:0.1833 319:0.1667 320:0.1667 321:0.1667 322:0.1833 323:0.1833 324:0.1833 325:0.1833 326:0.1833 327:0.1833 328:0.1833 329:0.1833 330:0.1833 331:0.1833 332:0.1833 333:0.1833 334:0.1833 335:0.1833 336:0.1667 337:0.1833 338:0.1833 339:0.1833 340:0.1667 341:0.1667 342:0.25 343:0.25 344:0.25 345:0.25 346:0.25 347:0.25 348:0.25 349:0.25 350:0.25 351:0.25 352:0.25 353:0.15 354:0.15 355:0.15 356:0.15 357:0.15 358:0.1333 359:0.1333 360:0.1333 +0.05004219948586586 1:0.06667 2:0.06667 3:0.06667 4:0.06667 5:0.06667 6:0.06667 7:0.06667 8:0.06667 9:0.06667 10:0.06667 11:0.06667 12:0.06667 13:0.06667 14:0.06667 15:0.06667 16:0.06667 17:0.06667 18:0.06667 19:0.06667 20:0.06667 21:0.06667 22:0.06667 23:0.06667 24:0.06667 25:0.06667 26:0.06667 27:0.06667 28:0.06667 29:0.06667 30:0.06667 31:0.06667 32:0.06667 33:0.06667 34:0.06667 35:0.06667 36:0.06667 37:0.06667 38:0.06667 39:0.08333 40:0.08333 41:0.08333 42:0.08333 43:0.08333 44:0.08333 45:0.08333 46:0.08333 47:0.08333 48:0.08333 49:0.08333 50:0.08333 51:0.08333 52:0.08333 53:0.1 54:0.08333 55:0.08333 56:0.08333 57:0.08333 58:0.08333 59:0.08333 60:0.08333 61:0.08333 62:0.08333 63:0.08333 64:0.08333 65:0.1667 66:0.1667 67:0.1667 68:0.1667 69:0.15 70:0.1667 71:0.1667 72:0.1833 73:0.1833 74:0.2 75:0.2 76:0.2167 77:0.2333 78:0.25 79:0.3 80:0.3 81:0.3 82:0.3 83:0.3 84:0.3 85:0.3 86:0.3 87:0.9333 88:0.9333 89:0.9333 90:0.7167 91:0.7167 92:0.7167 93:0.7167 94:0.7167 95:0.6167 96:0.6167 97:0.6167 98:0.4667 99:0.4167 100:0.4167 101:0.4167 102:0.4167 103:0.4167 104:0.4167 105:0.3667 106:0.3667 107:0.3667 108:0.3667 109:0.3667 110:0.3833 111:0.3667 112:0.3833 113:0.3667 114:0.3667 115:0.3667 116:0.3667 117:0.3667 118:0.3833 119:0.4 120:0.4167 121:0.3167 122:0.3167 123:0.3167 124:0.3167 125:0.3167 126:0.3167 127:0.3167 128:0.3167 129:0.3167 130:0.3167 131:0.3167 132:0.3167 133:0.3167 134:0.3167 135:0.3167 136:0.3167 137:0.4167 138:0.4167 139:0.4167 140:0.4167 141:0.4167 142:0.386 143:0.35084211 144:0.35084211 145:0.35084211 146:0.35084211 147:0.33336842 148:0.31578947 149:0.31578947 150:0.31578947 151:0.31578947 152:0.31578947 153:0.33336842 154:0.31578947 155:0.31578947 156:0.31578947 157:0.30356894 158:0.30356894 159:0.30356894 160:0.30356894 161:0.32146186 162:0.33924764 163:0.33924764 164:0.33924764 165:0.33924764 166:0.33924764 167:0.33924764 168:0.33924764 169:0.33924764 170:0.33924764 171:0.33924764 172:0.33924764 173:0.37503348 174:0.37503348 175:0.37503348 176:1 177:1 178:1 179:1 180:1 181:1 182:1 183:1 184:1 185:1 186:1 187:1 188:1 189:1 190:1 191:1 192:1 193:1 194:1 195:1 196:1 197:1 198:1 199:1 200:1 201:1 202:1 203:1 204:1 205:0.39281926 206:0.37503348 207:0.39281926 208:0.37503348 209:0.39281926 210:0.37503348 211:0.37503348 212:0.37503348 213:0.37503348 214:0.39281926 215:0.37503348 216:0.37503348 217:0.37503348 218:0.37503348 219:0.32146186 220:0.24999732 221:0.3167 222:0.3167 223:0.2333 224:0.2333 225:0.25 226:0.25 227:0.25 228:0.25 229:0.25 230:0.25 231:0.25 232:0.25 233:0.25 234:0.25 235:0.2333 236:0.25 237:0.25 238:0.25 239:0.2333 240:0.25 241:0.25 242:0.25 243:0.4 244:0.2667 245:0.2667 246:0.4 247:0.2667 248:0.2667 249:0.4 250:0.2667 251:0.2667 252:0.4 253:0.2667 254:0.2667 255:0.2667 256:0.7333 257:0.7333 258:0.7333 259:0.7333 260:0.7333 261:0.9 262:0.9 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:0.2333 278:0.2167 279:0.2167 280:0.2167 281:0.2333 282:0.2167 283:0.2167 284:0.2167 285:0.2167 286:0.2167 287:0.2 288:0.2 289:0.2 290:0.2 291:0.2 292:0.2 293:0.2 294:0.2 295:0.2167 296:0.2167 297:0.2 298:0.2 299:0.2 300:0.2167 301:0.2 302:0.2 303:0.2 304:0.2167 305:0.2 306:0.2 307:0.2 308:0.2 309:0.2 310:0.2 311:0.2 312:0.2167 313:0.2167 314:0.2 315:0.2 316:0.2 317:0.2167 318:0.2 319:0.2 320:0.2 321:0.2167 322:0.2167 323:0.2 324:0.2 325:0.1833 326:0.1833 327:0.1667 328:0.1667 329:0.15 330:0.1667 331:0.1667 332:0.1667 333:0.1667 334:0.06667 335:0.06667 336:0.06667 337:0.06667 338:0.06667 339:0.06667 340:0.06667 341:0.06667 342:0.06667 343:0.06667 344:0.06667 345:0.06667 346:0.06667 347:0.06667 348:0.06667 349:0.06667 350:0.06667 351:0.06667 352:0.06667 353:0.06667 354:0.06667 355:0.06667 356:0.06667 357:0.06667 358:0.06667 359:0.06667 360:0.06667 +0.1559958130597964 1:0.1333 2:0.1333 3:0.1333 4:0.1333 5:0.1167 6:0.08333 7:0.08333 8:0.08333 9:0.08333 10:0.08333 11:0.08333 12:0.08333 13:0.1 14:0.1 15:0.1 16:0.08333 17:0.08333 18:0.08333 19:0.08333 20:0.08333 21:0.08333 22:0.08333 23:0.08333 24:0.08333 25:0.08333 26:0.08333 27:0.08333 28:0.08333 29:0.08333 30:0.08333 31:0.08333 32:0.08333 33:0.08333 34:0.1 35:0.08333 36:0.1 37:0.08333 38:0.08333 39:0.08333 40:0.08333 41:0.08333 42:0.08333 43:0.08333 44:0.08333 45:0.08333 46:0.08333 47:0.08333 48:0.08333 49:0.08333 50:0.08333 51:0.08333 52:0.08333 53:0.1 54:0.08333 55:0.08333 56:0.08333 57:0.08333 58:0.08333 59:0.08333 60:0.08333 61:0.08333 62:0.08333 63:0.08333 64:0.08333 65:0.1333 66:0.1333 67:0.15 68:0.15 69:0.2333 70:0.2333 71:0.2333 72:0.2333 73:0.2333 74:0.25 75:0.2667 76:0.2833 77:0.3 78:0.45 79:0.45 80:0.45 81:0.45 82:0.45 83:0.45 84:1 85:1 86:0.6333 87:0.6333 88:0.6333 89:0.6333 90:0.6333 91:0.6333 92:0.6333 93:0.6333 94:0.5333 95:0.5333 96:0.4667 97:0.4667 98:0.4667 99:0.4333 100:0.4333 101:0.4333 102:0.4333 103:0.4333 104:0.4333 105:0.4333 106:0.4167 107:0.4333 108:0.4167 109:0.4333 110:0.4333 111:0.4333 112:0.4667 113:0.4333 114:0.3667 115:0.3667 116:0.3667 117:0.3667 118:0.3667 119:0.3667 120:0.3667 121:0.3667 122:0.3667 123:0.3667 124:0.3667 125:0.3667 126:0.3667 127:0.3667 128:0.3667 129:0.4167 130:0.4167 131:0.4 132:0.4 133:0.4167 134:0.4 135:0.4167 136:0.4 137:0.3833 138:0.3833 139:0.3833 140:0.3667 141:0.3833 142:0.33336842 143:0.35084211 144:0.35084211 145:0.33336842 146:0.35084211 147:0.33336842 148:0.35084211 149:0.35084211 150:0.33336842 151:0.36842105 152:0.36842105 153:0.36842105 154:0.36842105 155:0.35084211 156:0.36842105 157:0.33924764 158:0.35714056 159:0.33924764 160:0.35714056 161:0.37503348 162:0.39281926 163:0.41071218 164:0.41071218 165:0.41071218 166:0.44639088 167:0.7678206 168:0.91074968 169:0.91074968 170:0.91074968 171:1 172:1 173:1 174:1 175:1 176:1 177:1 178:1 179:1 180:1 181:1 182:0.94642838 183:0.7321419 184:0.7321419 185:0.7321419 186:0.7321419 187:0.53574834 188:0.55353412 189:0.53574834 190:0.55353412 191:0.55353412 192:0.53574834 193:0.55353412 194:0.35714056 195:0.33924764 196:0.2321044 197:0.21431862 198:0.21431862 199:0.21431862 200:0.2321044 201:0.21431862 202:0.21431862 203:0.2321044 204:0.21431862 205:0.21431862 206:0.1964257 207:0.1964257 208:0.21431862 209:0.21431862 210:0.12496116 211:0.14285408 212:0.14285408 213:0.14285408 214:0.14285408 215:0.14285408 216:0.14285408 217:0.14285408 218:0.14285408 219:0.14285408 220:0.14285408 221:0.2 222:0.2 223:0.2 224:0.2 225:0.2 226:0.2 227:0.2 228:0.2 229:0.1833 230:0.2 231:0.3167 232:0.9 233:0.3167 234:0.3167 235:0.3333 236:0.3167 237:0.3167 238:0.3333 239:0.3333 240:0.3333 241:0.3333 242:0.3333 243:0.3333 244:0.3333 245:0.3167 246:0.3333 247:0.3333 248:0.3167 249:0.35 250:0.35 251:0.5 252:0.5 253:0.5 254:0.5 255:0.5 256:0.5 257:0.5 258:0.5 259:0.5 260:0.5 261:0.5167 262:0.5167 263:0.8833 264:0.8833 265:0.8667 266:1 267:1 268:1 269:0.55 270:0.55 271:0.4833 272:0.4833 273:0.35 274:0.1667 275:0.1667 276:0.1667 277:0.1667 278:0.1667 279:0.1667 280:0.1667 281:0.1667 282:0.1667 283:0.1667 284:0.2 285:0.1667 286:0.15 287:0.15 288:0.15 289:0.15 290:0.15 291:0.15 292:0.15 293:0.15 294:0.15 295:0.15 296:0.15 297:0.15 298:0.15 299:0.15 300:0.15 301:0.15 302:0.15 303:0.1667 304:0.15 305:0.15 306:0.15 307:0.15 308:0.15 309:0.15 310:0.15 311:0.15 312:0.15 313:0.15 314:0.15 315:0.1667 316:0.1667 317:0.1667 318:0.15 319:0.1667 320:0.1667 321:0.1667 322:0.15 323:0.15 324:0.15 325:0.1667 326:0.1667 327:0.1667 328:0.1667 329:0.15 330:0.1667 331:0.1667 332:0.1667 333:0.1667 334:0.1667 335:0.1667 336:0.1667 337:0.1667 338:0.1667 339:0.1667 340:0.1667 341:0.1667 342:0.15 343:0.15 344:0.15 345:0.15 346:0.15 347:0.15 348:0.15 349:0.15 350:0.15 351:0.15 352:0.15 353:0.15 354:0.15 355:0.15 356:0.15 357:0.15 358:0.1333 359:0.1333 360:0.1333 +0.2963829117426119 1:0.2833 2:0.2833 3:0.2667 4:0.2667 5:0.2667 6:0.2667 7:0.2333 8:0.2167 9:0.2167 10:0.2167 11:0.2333 12:0.2167 13:0.2333 14:0.2333 15:0.2333 16:0.2167 17:0.2333 18:0.2333 19:0.2333 20:0.2167 21:0.2333 22:0.2333 23:0.2333 24:0.2167 25:0.2167 26:0.2167 27:0.2333 28:0.2333 29:0.2333 30:0.2333 31:0.2333 32:0.2333 33:0.2333 34:0.2333 35:0.3167 36:0.3167 37:0.3 38:0.3167 39:0.3167 40:0.3167 41:0.3167 42:0.3333 43:0.3333 44:0.3333 45:0.7667 46:0.5333 47:0.5333 48:0.5333 49:0.5333 50:0.5333 51:0.45 52:0.4333 53:0.4333 54:0.4333 55:0.4333 56:0.4333 57:0.4167 58:0.4333 59:0.4167 60:0.4333 61:0.4167 62:0.4167 63:0.4167 64:0.4167 65:0.4167 66:0.4167 67:0.4167 68:0.4167 69:0.4167 70:0.4167 71:0.4167 72:0.4167 73:0.4167 74:0.4167 75:0.45 76:0.4333 77:1 78:1 79:1 80:1 81:1 82:1 83:0.2667 84:0.2667 85:0.2 86:0.2 87:0.2 88:0.2 89:0.2 90:0.2 91:0.2 92:0.2 93:0.2 94:0.1833 95:0.1833 96:0.1833 97:0.1833 98:0.1833 99:0.1833 100:0.1833 101:0.1833 102:0.1833 103:0.1833 104:0.1833 105:0.1833 106:0.1833 107:0.1833 108:0.1833 109:0.1833 110:0.1833 111:0.1833 112:0.1833 113:0.1833 114:0.1833 115:0.1833 116:0.1833 117:0.1833 118:0.1833 119:0.1833 120:0.1833 121:0.1833 122:0.1833 123:0.1833 124:0.1833 125:0.1833 126:0.1833 127:0.1833 128:0.1833 129:0.1833 130:0.1833 131:0.1833 132:0.1833 133:0.1833 134:0.1833 135:0.1833 136:0.1833 137:0.1833 138:0.1833 139:0.1833 140:0.2 141:0.2167 142:0.17547368 143:0.17547368 144:0.17547368 145:0.17547368 146:0.17547368 147:0.17547368 148:0.17547368 149:0.17547368 150:0.17547368 151:0.17547368 152:0.17547368 153:0.17547368 154:0.17547368 155:0.17547368 156:0.17547368 157:0.160747 158:0.160747 159:0.160747 160:0.160747 161:0.160747 162:0.33924764 163:0.32146186 164:0.32146186 165:0.32146186 166:0.32146186 167:0.32146186 168:0.37503348 169:0.37503348 170:0.37503348 171:0.37503348 172:0.37503348 173:0.37503348 174:0.37503348 175:0.37503348 176:0.37503348 177:0.37503348 178:0.44639088 179:1 180:1 181:1 182:1 183:1 184:0.87496384 185:0.87496384 186:0.66067736 187:0.62499866 188:0.60710574 189:0.4999625 190:0.4999625 191:0.4999625 192:0.4999625 193:0.32146186 194:0.32146186 195:0.32146186 196:0.160747 197:0.14285408 198:0.14285408 199:0.12496116 200:0.12496116 201:0.12496116 202:0.14285408 203:0.14285408 204:0.12496116 205:0.12496116 206:0.14285408 207:0.14285408 208:0.14285408 209:0.12496116 210:0.12496116 211:0.14285408 212:0.14285408 213:0.12496116 214:0.12496116 215:0.12496116 216:0.12496116 217:0.12496116 218:0.12496116 219:0.12496116 220:0.12496116 221:0.2 222:0.2 223:0.1833 224:0.2 225:0.2 226:0.2 227:0.2 228:0.2 229:0.1833 230:0.2 231:0.2 232:0.2 233:0.2 234:0.2 235:0.1833 236:0.1833 237:0.2 238:0.2 239:0.2 240:0.2 241:0.2 242:0.1833 243:0.2 244:0.2 245:0.2167 246:0.2167 247:0.2167 248:0.2333 249:0.2333 250:0.2333 251:0.2333 252:0.2333 253:0.2333 254:0.25 255:0.25 256:0.25 257:0.25 258:0.25 259:0.25 260:0.25 261:0.25 262:0.25 263:0.25 264:0.25 265:0.25 266:0.25 267:0.25 268:0.25 269:0.25 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:0.7333 283:0.7333 284:0.7333 285:0.6 286:0.6 287:0.6 288:0.6 289:0.6 290:0.6 291:0.6 292:0.45 293:0.45 294:0.45 295:0.45 296:0.45 297:0.45 298:0.45 299:0.45 300:0.45 301:0.45 302:0.4667 303:0.8 304:0.8 305:0.8 306:1 307:1 308:1 309:0.9667 310:0.9167 311:0.9 312:0.9 313:0.6 314:0.6 315:0.6 316:0.6 317:0.6 318:0.6 319:0.6 320:0.6 321:0.3667 322:0.1833 323:0.1833 324:0.1833 325:0.1833 326:0.1833 327:0.1833 328:0.1833 329:0.1833 330:0.1833 331:0.1833 332:0.1833 333:0.1833 334:0.1833 335:0.1833 336:0.1833 337:0.1833 338:0.1833 339:0.1833 340:0.1833 341:0.1833 342:0.1833 343:0.1833 344:0.1833 345:0.1833 346:0.1833 347:0.1833 348:0.1833 349:0.2 350:0.2167 351:0.2333 352:0.2833 353:0.2833 354:0.2833 355:0.2833 356:0.2833 357:0.2833 358:0.2833 359:0.2833 360:0.2833 +0.1731260321218585 1:0.4667 2:0.4667 3:0.2333 4:0.2167 5:0.2167 6:0.2167 7:0.2167 8:0.2167 9:0.2167 10:0.2167 11:0.2167 12:0.2167 13:0.2167 14:0.2167 15:0.2167 16:0.2167 17:0.2167 18:0.2167 19:0.2167 20:0.2167 21:0.2167 22:0.2167 23:0.2167 24:0.2167 25:0.2167 26:0.2167 27:0.2333 28:0.2333 29:0.2333 30:0.25 31:0.1833 32:0.1833 33:0.1667 34:0.1667 35:0.1667 36:0.1667 37:0.1667 38:0.1667 39:0.1667 40:0.1667 41:0.1667 42:0.1667 43:0.1667 44:0.1667 45:0.1667 46:0.1667 47:0.1667 48:0.1667 49:0.1667 50:0.1667 51:0.1667 52:0.1667 53:0.1667 54:0.1667 55:0.1667 56:0.1667 57:0.1667 58:0.1667 59:0.1667 60:0.1833 61:0.1833 62:0.1833 63:0.3 64:0.3 65:0.3 66:0.3 67:0.3 68:0.3 69:0.3 70:0.3 71:0.3 72:0.3 73:0.3 74:0.3 75:0.3 76:0.3 77:0.3 78:0.4667 79:0.4667 80:0.4667 81:0.4667 82:0.4667 83:0.4667 84:0.4667 85:0.7667 86:0.95 87:1 88:1 89:1 90:1 91:1 92:1 93:0.45 94:0.45 95:0.4333 96:0.4333 97:0.25 98:0.25 99:0.25 100:0.2667 101:0.1333 102:0.1333 103:0.1333 104:0.1333 105:0.1333 106:0.1333 107:0.1333 108:0.1333 109:0.1333 110:0.1333 111:0.1333 112:0.1333 113:0.1333 114:0.1333 115:0.1333 116:0.1333 117:0.1333 118:0.1333 119:0.1333 120:0.1333 121:0.1333 122:0.1333 123:0.1333 124:0.1333 125:0.1333 126:0.1333 127:0.1333 128:0.1333 129:0.1333 130:0.1333 131:0.1333 132:0.1333 133:0.1333 134:0.1333 135:0.1333 136:0.1333 137:0.1333 138:0.1333 139:0.1333 140:0.15 141:0.15 142:0.10526316 143:0.10526316 144:0.10526316 145:0.10526316 146:0.10526316 147:0.10526316 148:0.10526316 149:0.10526316 150:0.10526316 151:0.10526316 152:0.10526316 153:0.10526316 154:0.10526316 155:0.10526316 156:0.10526316 157:0.089282462 158:0.089282462 159:0.089282462 160:0.089282462 161:0.089282462 162:0.089282462 163:0.089282462 164:0.089282462 165:0.089282462 166:0.089282462 167:0.10717538 168:0.12496116 169:0.12496116 170:0.12496116 171:0.12496116 172:0.10717538 173:0.10717538 174:0.14285408 175:0.160747 176:0.160747 177:0.160747 178:0.160747 179:0.160747 180:0.160747 181:0.160747 182:0.160747 183:0.160747 184:0.1964257 185:0.1964257 186:0.1964257 187:0.58931996 188:0.58931996 189:0.60710574 190:0.58931996 191:0.58931996 192:0.60710574 193:0.58931996 194:0.60710574 195:0.57142704 196:0.57142704 197:0.57142704 198:0.44639088 199:0.44639088 200:0.44639088 201:0.44639088 202:0.44639088 203:0.33924764 204:0.35714056 205:0.33924764 206:0.33924764 207:0.33924764 208:0.33924764 209:0.24999732 210:0.24999732 211:0.26789024 212:0.24999732 213:0.24999732 214:0.24999732 215:0.2321044 216:0.2321044 217:0.24999732 218:0.2321044 219:0.2321044 220:0.24999732 221:0.2833 222:0.2833 223:0.3 224:0.2833 225:0.2833 226:0.3 227:0.2833 228:0.2833 229:0.2833 230:0.5167 231:0.5167 232:1 233:0.4167 234:0.4167 235:0.4167 236:0.4167 237:0.4167 238:0.3167 239:0.3167 240:0.3167 241:0.3167 242:0.3167 243:0.3167 244:0.3167 245:0.3167 246:0.3167 247:0.3167 248:0.3167 249:0.3 250:0.2833 251:0.3167 252:0.3 253:0.3 254:0.3 255:0.3 256:0.3 257:0.3 258:0.3 259:0.3 260:0.3 261:0.3 262:0.3 263:0.4333 264:0.4333 265:0.4333 266:0.4333 267:0.4333 268:0.7667 269:0.7667 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:0.9 281:0.7167 282:0.65 283:0.6 284:0.55 285:0.45 286:0.4167 287:0.4333 288:0.4167 289:0.4 290:0.4 291:0.4 292:0.4 293:0.2833 294:0.2833 295:0.2667 296:0.2667 297:0.2833 298:0.2667 299:0.2667 300:0.25 301:0.25 302:0.25 303:0.2333 304:0.2333 305:0.2333 306:0.2167 307:0.2167 308:0.2167 309:0.2167 310:0.2167 311:0.2167 312:0.2167 313:0.2167 314:0.2167 315:0.2167 316:0.2167 317:0.2167 318:0.2167 319:0.2167 320:0.2167 321:0.2167 322:0.2167 323:0.2167 324:0.2167 325:0.2167 326:0.2167 327:0.2333 328:0.2333 329:0.3 330:0.3 331:0.3333 332:0.35 333:0.3333 334:0.3333 335:0.35 336:0.3333 337:0.35 338:0.3333 339:0.3333 340:0.35 341:0.3667 342:0.3667 343:0.3667 344:0.3667 345:0.5833 346:0.5833 347:0.5833 348:0.5833 349:1 350:1 351:1 352:1 353:1 354:1 355:1 356:1 357:1 358:1 359:1 360:1 +0.162438470934677 1:0.6 2:0.6 3:0.6 4:0.55 5:0.55 6:0.55 7:0.25 8:0.25 9:0.25 10:0.2667 11:0.25 12:0.2167 13:0.2167 14:0.2167 15:0.2167 16:0.2167 17:0.2 18:0.2 19:0.2 20:0.2 21:0.2 22:0.2 23:0.2 24:0.1833 25:0.1833 26:0.1833 27:0.1833 28:0.1833 29:0.1833 30:0.1833 31:0.1833 32:0.1833 33:0.1833 34:0.1833 35:0.1833 36:0.1833 37:0.1833 38:0.1833 39:0.1833 40:0.1833 41:0.1833 42:0.1833 43:0.1833 44:0.1833 45:0.1833 46:0.1833 47:0.1833 48:0.1833 49:0.1833 50:0.1833 51:0.1833 52:0.1833 53:0.1833 54:0.1833 55:0.1833 56:0.1833 57:0.2 58:0.2167 59:0.2 60:0.2 61:0.2 62:0.2167 63:0.2167 64:0.2 65:0.2 66:0.2 67:0.2 68:0.2 69:0.2 70:0.2 71:0.2 72:0.2 73:0.2 74:0.2 75:0.2 76:0.2 77:0.2 78:0.2 79:0.2 80:0.2 81:0.2 82:0.2 83:0.2 84:0.2 85:0.2 86:0.2 87:0.2 88:0.2 89:0.2 90:0.2 91:0.2 92:0.2 93:0.2 94:1 95:1 96:1 97:1 98:0.8333 99:0.6667 100:0.3667 101:0.3667 102:0.3667 103:0.3667 104:0.3333 105:0.3333 106:0.3333 107:0.3333 108:0.3333 109:0.3333 110:0.3333 111:0.3333 112:0.2 113:0.2 114:0.1833 115:0.1833 116:0.1833 117:0.1833 118:0.1833 119:0.1833 120:0.1833 121:0.1833 122:0.1833 123:0.1833 124:0.1833 125:0.1833 126:0.1833 127:0.1833 128:0.1833 129:0.1833 130:0.1833 131:0.1833 132:0.1833 133:0.1833 134:0.1833 135:0.1833 136:0.1833 137:0.1833 138:0.1833 139:0.1833 140:0.2 141:0.2167 142:0.19294737 143:0.24557895 144:0.24557895 145:0.24557895 146:0.24557895 147:0.24557895 148:0.24557895 149:0.24557895 150:0.24557895 151:0.24557895 152:0.75442105 153:1 154:1 155:1 156:1 157:1 158:1 159:1 160:1 161:1 162:1 163:1 164:1 165:0.87496384 166:0.87496384 167:0.87496384 168:0.87496384 169:0.87496384 170:0.91074968 171:0.89285676 172:0.26789024 173:0.26789024 174:0.26789024 175:0.26789024 176:0.26789024 177:0.26789024 178:0.26789024 179:0.26789024 180:0.26789024 181:0.26789024 182:0.26789024 183:0.26789024 184:0.26789024 185:0.26789024 186:1 187:1 188:1 189:1 190:1 191:1 192:1 193:0.91074968 194:0.91074968 195:0.91074968 196:0.91074968 197:0.80360644 198:0.80360644 199:0.30356894 200:0.30356894 201:0.26789024 202:0.26789024 203:0.26789024 204:0.26789024 205:0.26789024 206:0.26789024 207:0.26789024 208:0.26789024 209:0.26789024 210:0.26789024 211:0.26789024 212:0.2321044 213:0.2321044 214:0.2321044 215:0.2321044 216:0.2321044 217:0.21431862 218:0.2321044 219:0.2321044 220:0.2321044 221:0.2833 222:0.2833 223:0.2833 224:0.2833 225:0.2833 226:0.2833 227:0.2667 228:0.2833 229:0.2833 230:0.2667 231:0.3 232:0.3 233:0.3 234:0.3 235:0.3 236:0.3 237:0.2833 238:0.2833 239:0.2833 240:0.2833 241:0.2833 242:0.2833 243:0.2833 244:0.2833 245:0.2833 246:0.2833 247:0.2833 248:0.2833 249:0.2667 250:0.2833 251:0.2833 252:0.2833 253:0.2833 254:0.2833 255:0.2833 256:0.2833 257:0.2833 258:0.2833 259:0.2833 260:0.2833 261:0.2833 262:0.2833 263:0.3167 264:0.3333 265:0.3333 266:0.3333 267:0.5167 268:0.5167 269:0.8 270:0.8167 271:1 272:1 273:1 274:1 275:1 276:0.7833 277:0.7667 278:0.75 279:0.65 280:0.6 281:0.6 282:0.5833 283:0.35 284:0.35 285:0.35 286:0.35 287:0.3333 288:0.3167 289:0.3167 290:0.3167 291:0.3167 292:0.3167 293:0.3167 294:0.3167 295:0.3167 296:0.3167 297:0.3167 298:0.2333 299:0.2333 300:0.2333 301:0.2333 302:0.2333 303:0.2333 304:0.2333 305:0.2333 306:0.2333 307:0.2333 308:0.2333 309:0.2333 310:0.2333 311:0.2333 312:0.2333 313:0.2333 314:0.2333 315:0.2333 316:0.2333 317:0.2333 318:0.2333 319:0.2333 320:0.3 321:0.3 322:0.3 323:0.3 324:0.3 325:0.3 326:0.3 327:0.3167 328:0.4333 329:0.4333 330:0.4333 331:0.4333 332:0.4333 333:0.4333 334:0.4333 335:0.4333 336:0.4333 337:0.4333 338:0.4333 339:0.4333 340:0.4333 341:0.5667 342:0.5667 343:0.5667 344:0.5667 345:0.5667 346:0.7167 347:0.7167 348:0.7167 349:0.7167 350:0.7333 351:0.8167 352:0.8167 353:0.8167 354:0.8167 355:1 356:1 357:1 358:0.6333 359:0.6167 360:0.6167 +0.1065198608830187 1:1 2:1 3:1 4:0.8833 5:0.8833 6:0.8667 7:0.8667 8:0.8667 9:0.8667 10:0.6167 11:0.6167 12:0.6 13:0.6 14:0.6 15:0.6 16:0.6 17:0.6 18:0.4167 19:0.4 20:0.4 21:0.3167 22:0.3 23:0.3 24:0.3 25:0.3 26:0.3 27:0.3 28:0.3 29:0.3 30:0.3 31:0.3 32:0.2833 33:0.2833 34:0.2833 35:0.2833 36:0.2833 37:0.2667 38:0.2833 39:0.2833 40:0.2833 41:0.2833 42:0.2667 43:0.2833 44:0.2833 45:0.2667 46:0.2833 47:0.2667 48:0.2833 49:0.2833 50:0.2667 51:0.2833 52:0.2833 53:0.2833 54:0.2833 55:0.2667 56:1 57:1 58:1 59:0.9167 60:0.9167 61:1 62:0.9 63:0.9 64:0.9 65:0.9 66:0.9 67:0.95 68:0.95 69:0.95 70:0.5833 71:0.5667 72:0.5667 73:0.5667 74:0.5833 75:0.5667 76:0.5667 77:0.5833 78:0.5667 79:0.75 80:0.6833 81:0.6833 82:0.6833 83:0.6833 84:0.6833 85:0.6833 86:0.6833 87:0.7 88:1 89:1 90:1 91:1 92:1 93:0.7667 94:0.4667 95:0.4667 96:0.4667 97:0.4167 98:0.4167 99:0.4167 100:0.2833 101:0.2833 102:0.2833 103:0.2833 104:0.2833 105:0.2833 106:0.2833 107:0.2833 108:0.2833 109:0.2833 110:0.2833 111:0.2833 112:0.2833 113:0.2667 114:0.2833 115:0.2833 116:0.2833 117:0.2833 118:0.2833 119:0.3 120:0.3 121:0.3167 122:0.3167 123:0.3167 124:0.3167 125:0.35 126:0.35 127:0.35 128:0.35 129:0.35 130:0.2333 131:0.2333 132:0.2333 133:0.2333 134:0.2333 135:0.2333 136:0.2333 137:0.2333 138:0.2333 139:0.2333 140:0.2333 141:0.2333 142:0.19294737 143:0.19294737 144:0.19294737 145:0.19294737 146:0.19294737 147:0.19294737 148:0.19294737 149:0.19294737 150:0.21052632 151:0.21052632 152:0.21052632 153:0.21052632 154:0.21052632 155:0.21052632 156:0.21052632 157:0.55353412 158:0.55353412 159:0.89285676 160:0.89285676 161:0.89285676 162:0.89285676 163:1 164:1 165:1 166:1 167:1 168:0.9643213 169:0.9643213 170:0.9643213 171:0.9643213 172:0.9643213 173:1 174:1 175:1 176:1 177:1 178:1 179:1 180:0.1964257 181:0.1964257 182:0.1964257 183:0.1964257 184:0.1964257 185:0.1964257 186:0.1964257 187:0.1964257 188:0.1964257 189:0.1964257 190:0.1964257 191:0.1964257 192:0.160747 193:0.160747 194:0.160747 195:0.160747 196:0.160747 197:0.160747 198:0.160747 199:0.160747 200:0.160747 201:0.160747 202:0.160747 203:0.160747 204:0.160747 205:0.160747 206:0.160747 207:0.160747 208:0.160747 209:0.160747 210:0.160747 211:0.160747 212:0.160747 213:0.17853278 214:0.17853278 215:0.17853278 216:0.17853278 217:0.160747 218:0.17853278 219:0.14285408 220:0.14285408 221:0.2 222:0.2333 223:0.25 224:0.2 225:0.2 226:0.2 227:0.2 228:0.2 229:0.2 230:0.2 231:0.2 232:0.1833 233:0.1833 234:0.1833 235:0.1833 236:0.1833 237:0.1833 238:0.1833 239:0.1833 240:0.1833 241:0.1833 242:0.1833 243:0.1833 244:0.1833 245:0.1833 246:0.1833 247:0.1833 248:0.1833 249:0.1833 250:0.1833 251:0.1833 252:0.1833 253:0.1833 254:0.1833 255:0.1833 256:0.1833 257:0.1833 258:0.1833 259:0.3833 260:0.3833 261:0.3833 262:0.3833 263:0.3833 264:0.3833 265:0.3833 266:0.3833 267:0.3833 268:0.3833 269:0.3833 270:1 271:1 272:1 273:1 274:1 275:0.6833 276:0.6667 277:0.65 278:0.6333 279:0.6333 280:0.5833 281:0.55 282:0.55 283:0.45 284:0.45 285:0.45 286:0.4333 287:0.45 288:0.4333 289:0.45 290:0.4333 291:0.45 292:0.4333 293:0.45 294:0.2333 295:0.2167 296:0.2167 297:0.2167 298:0.2167 299:0.2333 300:0.2167 301:0.2167 302:0.2333 303:0.2333 304:0.2167 305:0.2167 306:0.2333 307:0.2333 308:0.2167 309:0.2167 310:0.2167 311:0.2333 312:0.2167 313:0.2167 314:0.1833 315:0.1833 316:0.1833 317:0.1833 318:0.1833 319:0.1667 320:0.1667 321:0.1667 322:0.1833 323:0.1833 324:0.1833 325:0.1833 326:0.1833 327:0.1833 328:0.1833 329:0.1833 330:0.1833 331:0.1667 332:0.1833 333:0.1833 334:0.1833 335:0.1833 336:0.1667 337:0.1833 338:0.1833 339:0.1833 340:0.1667 341:0.1667 342:0.2333 343:0.2333 344:0.25 345:0.4167 346:0.4167 347:0.4167 348:0.4167 349:0.4167 350:0.4167 351:0.5667 352:0.5667 353:0.5667 354:0.7333 355:0.7167 356:0.8167 357:0.8167 358:0.8167 359:0.8167 360:1 +1.036833816007162 1:0.4833 2:0.4833 3:0.4833 4:0.5 5:0.5 6:0.5167 7:0.5167 8:0.5167 9:0.5167 10:0.5667 11:0.55 12:0.55 13:0.5167 14:0.5167 15:0.5167 16:0.4833 17:0.4833 18:0.4833 19:0.35 20:0.3333 21:0.3333 22:0.3333 23:0.3333 24:0.3167 25:0.3333 26:0.3333 27:0.3167 28:0.3333 29:0.3333 30:0.3333 31:0.3333 32:0.3333 33:0.3333 34:0.3333 35:0.3167 36:0.3167 37:0.4667 38:0.4667 39:0.4667 40:0.3833 41:0.35 42:0.35 43:0.35 44:0.35 45:0.35 46:0.35 47:0.35 48:0.35 49:0.35 50:0.35 51:0.35 52:0.35 53:0.35 54:0.35 55:0.35 56:0.35 57:0.35 58:0.35 59:0.3667 60:0.3667 61:0.3833 62:0.4 63:0.4 64:0.4167 65:0.4333 66:0.4333 67:0.4333 68:0.45 69:0.45 70:0.45 71:0.45 72:0.45 73:0.45 74:0.6833 75:0.6833 76:0.6833 77:0.8167 78:0.8167 79:0.8333 80:0.8333 81:0.9333 82:0.9333 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:0.9333 106:0.8667 107:0.8167 108:0.7667 109:0.7667 110:0.5833 111:0.5833 112:0.5833 113:0.55 114:0.55 115:0.55 116:0.55 117:0.4667 118:0.4667 119:0.4667 120:0.4667 121:0.4667 122:0.4333 123:0.4333 124:0.4167 125:0.4 126:0.4 127:0.3833 128:0.3833 129:0.3833 130:0.3833 131:0.3833 132:0.3833 133:0.3833 134:0.3833 135:0.3833 136:0.3833 137:0.3833 138:0.3833 139:0.3833 140:0.3833 141:0.3833 142:0.35084211 143:0.50873684 144:0.49126316 145:0.49126316 146:0.47368421 147:0.47368421 148:0.47368421 149:0.47368421 150:0.47368421 151:0.47368421 152:0.33336842 153:0.33336842 154:0.29821053 155:0.29821053 156:0.29821053 157:0.28567602 158:0.28567602 159:0.28567602 160:0.28567602 161:0.28567602 162:0.28567602 163:0.28567602 164:0.28567602 165:0.28567602 166:0.28567602 167:0.28567602 168:0.28567602 169:0.30356894 170:0.41071218 171:0.41071218 172:0.4286051 173:0.41071218 174:0.41071218 175:0.41071218 176:0.4286051 177:0.4286051 178:0.4286051 179:0.4286051 180:0.4286051 181:0.44639088 182:0.44639088 183:0.44639088 184:0.4642838 185:0.4642838 186:0.4999625 187:0.4999625 188:0.4999625 189:0.4999625 190:0.4999625 191:0.4999625 192:0.4999625 193:0.51785542 194:0.55353412 195:0.57142704 196:1 197:1 198:1 199:1 200:1 201:1 202:1 203:1 204:1 205:1 206:0.94642838 207:0.94642838 208:0.94642838 209:0.82139222 210:0.78571352 211:0.80360644 212:0.80360644 213:0.78571352 214:0.64289158 215:0.62499866 216:0.62499866 217:0.62499866 218:0.62499866 219:0.62499866 220:0.62499866 221:0.65 222:0.65 223:0.6667 224:0.6333 225:0.6333 226:0.6333 227:0.6333 228:0.6333 229:0.6333 230:0.6333 231:0.6333 232:0.7667 233:0.7667 234:0.7833 235:0.7833 236:0.8 237:0.8 238:0.8 239:0.8167 240:0.8333 241:0.85 242:0.85 243:0.8667 244:0.8833 245:0.9 246:0.9333 247:0.9667 248:0.8 249:0.8 250:0.7833 251:0.7833 252:0.7833 253:0.7833 254:0.7833 255:0.7833 256:0.7833 257:0.7833 258:0.85 259:0.95 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:0.85 286:0.85 287:0.85 288:0.8167 289:0.8 290:0.8 291:0.8 292:0.8 293:0.8 294:0.8 295:0.8 296:0.9333 297:0.6667 298:0.6667 299:0.6667 300:0.6667 301:0.6667 302:0.6667 303:0.6667 304:0.7333 305:0.7333 306:0.7167 307:0.7167 308:0.7167 309:0.7 310:0.7 311:0.7 312:0.7 313:0.7 314:0.7 315:0.7 316:0.7 317:0.7 318:0.7 319:0.65 320:0.65 321:0.65 322:0.65 323:0.65 324:0.65 325:0.65 326:0.7 327:0.7 328:0.7167 329:0.7333 330:0.75 331:0.75 332:0.7667 333:0.7667 334:0.7667 335:0.7667 336:0.7667 337:0.7667 338:0.9333 339:0.9333 340:1 341:1 342:1 343:1 344:1 345:1 346:1 347:1 348:1 349:1 350:1 351:1 352:1 353:1 354:0.7 355:0.4833 356:0.4833 357:0.4833 358:0.4833 359:0.4833 360:0.4833 +0.08175412114013921 1:1 2:1 3:1 4:1 5:1 6:0.8667 7:0.8667 8:0.8 9:0.4167 10:0.4167 11:0.4167 12:0.4167 13:0.4167 14:0.4167 15:0.4167 16:0.4167 17:0.4167 18:0.4167 19:0.4167 20:0.4167 21:0.4167 22:0.4167 23:0.5 24:0.5 25:0.5 26:0.5 27:0.5 28:0.5 29:0.5333 30:0.5333 31:0.6 32:0.6 33:0.6167 34:0.6 35:0.5833 36:0.6 37:0.5833 38:0.5667 39:0.5833 40:0.5667 41:0.5833 42:0.5833 43:0.5667 44:0.5833 45:0.5667 46:0.5833 47:0.6 48:0.6 49:0.6167 50:0.6333 51:0.6333 52:0.65 53:0.6667 54:0.6833 55:0.7 56:0.7667 57:0.7667 58:0.9 59:0.9 60:0.4667 61:0.4667 62:0.4667 63:0.4667 64:0.4667 65:0.4667 66:0.4667 67:0.4667 68:0.4667 69:0.4667 70:0.4833 71:0.5 72:0.5 73:0.5167 74:0.5833 75:0.5833 76:0.5833 77:0.5833 78:0.6333 79:0.6833 80:0.7333 81:0.7833 82:0.8 83:0.9667 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:0.9167 103:0.9167 104:0.7667 105:0.7167 106:0.6667 107:0.6667 108:0.6667 109:0.5667 110:0.5833 111:0.5667 112:0.5333 113:0.5333 114:0.5333 115:0.5333 116:0.5333 117:0.5333 118:0.5333 119:0.5333 120:0.5333 121:0.5333 122:0.9 123:0.9 124:0.8833 125:0.8833 126:0.8833 127:0.8667 128:0.8667 129:0.8667 130:0.8667 131:0.85 132:0.85 133:0.8333 134:0.8167 135:0.8167 136:0.8167 137:0.7667 138:0.75 139:0.7333 140:0.7333 141:0.6 142:0.57894737 143:0.54389474 144:0.54389474 145:0.52631579 146:0.52631579 147:0.52631579 148:0.52631579 149:0.50873684 150:0.43863158 151:0.43863158 152:0.43863158 153:0.43863158 154:0.43863158 155:0.43863158 156:0.43863158 157:0.4286051 158:0.4286051 159:0.4286051 160:0.44639088 161:0.48217672 162:0.48217672 163:0.48217672 164:0.48217672 165:0.48217672 166:0.48217672 167:0.48217672 168:0.48217672 169:0.48217672 170:0.48217672 171:0.48217672 172:0.51785542 173:0.51785542 174:0.58931996 175:0.58931996 176:0.7321419 177:0.75003482 178:1 179:1 180:1 181:1 182:1 183:1 184:1 185:1 186:1 187:1 188:0.83928514 189:0.66067736 190:0.58931996 191:0.58931996 192:0.58931996 193:0.58931996 194:0.58931996 195:0.58931996 196:0.58931996 197:0.58931996 198:0.58931996 199:0.41071218 200:0.39281926 201:0.39281926 202:0.39281926 203:0.39281926 204:0.39281926 205:0.39281926 206:0.39281926 207:0.39281926 208:0.39281926 209:0.39281926 210:0.39281926 211:0.41071218 212:0.41071218 213:0.41071218 214:0.41071218 215:0.4286051 216:0.4286051 217:0.4286051 218:0.44639088 219:0.4642838 220:0.48217672 221:0.5167 222:0.55 223:0.55 224:0.5667 225:0.6 226:0.6 227:0.6167 228:0.6333 229:0.6333 230:0.65 231:0.65 232:0.65 233:0.65 234:0.65 235:0.65 236:0.65 237:0.65 238:0.6667 239:0.6833 240:0.4667 241:0.4667 242:0.4667 243:0.4667 244:0.4667 245:0.4667 246:0.4667 247:0.4667 248:0.4667 249:0.4667 250:0.4833 251:0.55 252:0.55 253:0.55 254:0.55 255:0.5667 256:0.5833 257:0.5833 258:0.6333 259:0.6833 260:0.7333 261:0.7333 262:0.8 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:0.9167 284:0.85 285:0.8 286:0.6667 287:0.6333 288:0.6 289:0.6 290:0.5333 291:0.5167 292:0.4833 293:0.4667 294:0.45 295:0.4333 296:0.4333 297:0.4333 298:0.4333 299:0.4333 300:0.4333 301:0.4333 302:0.4333 303:0.4333 304:0.4333 305:0.4333 306:0.45 307:0.8167 308:0.7667 309:0.7167 310:0.7 311:0.6833 312:0.6833 313:0.6333 314:0.6333 315:0.6167 316:0.6 317:0.6 318:0.5833 319:0.5833 320:0.5667 321:0.5667 322:0.55 323:0.55 324:0.55 325:0.55 326:0.55 327:0.55 328:0.5333 329:0.5333 330:0.5333 331:0.5333 332:0.5333 333:0.45 334:0.45 335:0.45 336:0.45 337:0.45 338:0.45 339:0.45 340:0.45 341:0.45 342:0.45 343:0.45 344:0.5333 345:0.5333 346:0.5333 347:0.5333 348:0.55 349:0.55 350:0.5667 351:0.7167 352:0.9667 353:1 354:1 355:1 356:1 357:1 358:1 359:1 360:1 +0.02981194483291762 1:1 2:1 3:1 4:1 5:1 6:1 7:1 8:1 9:1 10:0.9167 11:0.9 12:0.8333 13:0.8333 14:0.7 15:0.7 16:0.7 17:0.4667 18:0.4667 19:0.4667 20:0.4667 21:0.4667 22:0.4667 23:0.4667 24:0.4667 25:0.4667 26:0.4667 27:0.4667 28:0.4667 29:0.5667 30:0.55 31:0.5667 32:0.5667 33:0.5833 34:0.6 35:0.6667 36:0.6667 37:0.6667 38:0.65 39:0.6333 40:0.65 41:0.6333 42:0.65 43:0.65 44:0.6333 45:0.65 46:0.65 47:0.6333 48:0.65 49:0.6667 50:0.6833 51:0.6833 52:0.7 53:0.7167 54:0.7667 55:0.7667 56:0.7667 57:0.8 58:0.9667 59:0.9667 60:0.9833 61:0.5333 62:0.55 63:0.5333 64:0.55 65:0.55 66:0.55 67:0.55 68:0.5333 69:0.55 70:0.5833 71:0.5833 72:0.5833 73:0.65 74:0.65 75:0.65 76:0.6667 77:0.75 78:0.8 79:0.8333 80:0.8167 81:0.9 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:0.8167 102:0.75 103:0.7 104:0.6333 105:0.6333 106:0.6167 107:0.6167 108:0.6167 109:0.5667 110:0.5833 111:0.5667 112:0.5667 113:0.5833 114:0.5667 115:0.5833 116:0.5667 117:0.9667 118:0.9333 119:0.9333 120:0.9167 121:0.9167 122:0.9167 123:0.9 124:0.9 125:0.9 126:0.8833 127:0.8833 128:0.8833 129:0.85 130:0.85 131:0.8167 132:0.8 133:0.7833 134:0.75 135:0.7333 136:0.5833 137:0.5833 138:0.5833 139:0.5333 140:0.5333 141:0.4667 142:0.43863158 143:0.43863158 144:0.43863158 145:0.43863158 146:0.43863158 147:0.43863158 148:0.43863158 149:0.43863158 150:0.43863158 151:0.43863158 152:0.43863158 153:0.49126316 154:0.47368421 155:0.47368421 156:0.47368421 157:0.4642838 158:0.4642838 159:0.4642838 160:0.4642838 161:0.4642838 162:0.4642838 163:0.48217672 164:0.57142704 165:0.57142704 166:0.57142704 167:0.57142704 168:0.57142704 169:0.57142704 170:0.71424898 171:0.71424898 172:0.7321419 173:0.89285676 174:0.89285676 175:1 176:1 177:1 178:1 179:1 180:1 181:1 182:1 183:0.78571352 184:0.53574834 185:0.53574834 186:0.53574834 187:0.53574834 188:0.53574834 189:0.53574834 190:0.53574834 191:0.53574834 192:0.33924764 193:0.33924764 194:0.33924764 195:0.33924764 196:0.33924764 197:0.33924764 198:0.33924764 199:0.33924764 200:0.33924764 201:0.33924764 202:0.33924764 203:0.33924764 204:0.33924764 205:0.33924764 206:0.33924764 207:0.35714056 208:0.35714056 209:0.35714056 210:0.35714056 211:0.35714056 212:0.37503348 213:0.37503348 214:0.37503348 215:0.39281926 216:0.41071218 217:0.41071218 218:0.41071218 219:0.4286051 220:0.44639088 221:0.5 222:0.5 223:0.5333 224:0.55 225:0.55 226:0.5667 227:0.5667 228:0.5833 229:0.5833 230:0.5833 231:0.5833 232:0.5833 233:0.5667 234:0.5833 235:0.5833 236:0.5667 237:0.5833 238:0.5833 239:0.5833 240:0.3833 241:0.4 242:0.4 243:0.4 244:0.4 245:0.3833 246:0.4 247:0.3833 248:0.4 249:0.3833 250:0.4 251:0.4 252:0.4 253:0.4 254:0.4833 255:0.4833 256:0.4833 257:0.5167 258:0.5167 259:0.5167 260:0.5667 261:0.6167 262:0.6167 263:0.65 264:0.75 265:0.9667 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:0.9333 286:0.8667 287:0.8167 288:0.7667 289:0.75 290:0.7 291:0.65 292:0.5833 293:0.5667 294:0.5667 295:0.5167 296:0.5 297:0.4667 298:0.4667 299:0.45 300:0.4333 301:0.4167 302:0.4167 303:0.4167 304:0.4167 305:0.4167 306:0.4167 307:0.4167 308:0.4167 309:0.4167 310:0.4167 311:0.4167 312:0.4167 313:0.4167 314:0.7333 315:0.7167 316:0.6833 317:0.6667 318:0.65 319:0.6167 320:0.6167 321:0.6 322:0.6 323:0.5833 324:0.5833 325:0.5833 326:0.5667 327:0.5667 328:0.55 329:0.55 330:0.55 331:0.5333 332:0.55 333:0.5333 334:0.55 335:0.5333 336:0.5333 337:0.5333 338:0.5333 339:0.5333 340:0.5333 341:0.5333 342:0.5333 343:0.4667 344:0.4667 345:0.4667 346:0.4667 347:0.4667 348:0.4667 349:0.4667 350:0.4667 351:0.4667 352:0.4667 353:0.55 354:0.5667 355:0.5667 356:0.5667 357:0.7167 358:1 359:1 360:1 +0.137213548154081 1:1 2:1 3:1 4:1 5:0.9 6:0.8833 7:0.4333 8:0.4333 9:0.4333 10:0.4333 11:0.4333 12:0.4333 13:0.4333 14:0.4333 15:0.4333 16:0.4333 17:0.4333 18:0.45 19:0.5333 20:0.5333 21:0.5333 22:0.5333 23:0.5333 24:0.5333 25:0.5333 26:0.5333 27:0.6333 28:0.6333 29:0.6333 30:0.6333 31:0.6333 32:0.6333 33:0.6167 34:0.6 35:0.6 36:0.6 37:0.6 38:0.6 39:0.6 40:0.6 41:0.6 42:0.6 43:0.6 44:0.6167 45:0.6167 46:0.6333 47:0.6333 48:0.65 49:0.6667 50:0.6833 51:0.6833 52:0.7 53:0.7167 54:0.7333 55:0.4667 56:0.4667 57:0.4667 58:0.4667 59:0.4667 60:0.4667 61:0.4667 62:0.4667 63:0.4667 64:0.4667 65:0.4667 66:0.5 67:0.5167 68:0.5167 69:0.5167 70:0.5667 71:0.5667 72:0.5833 73:0.5667 74:0.6 75:0.6333 76:0.6667 77:0.6667 78:0.7667 79:0.75 80:0.8167 81:0.9 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:0.9167 102:0.8 103:0.6833 104:0.6333 105:0.6333 106:0.6333 107:0.5333 108:0.5333 109:0.5333 110:0.5333 111:0.5167 112:0.5167 113:0.5167 114:0.5167 115:0.5167 116:0.5167 117:0.5167 118:0.5167 119:0.5167 120:0.5167 121:0.5167 122:0.8667 123:0.8667 124:0.85 125:0.85 126:0.85 127:0.85 128:0.85 129:0.8333 130:0.8333 131:0.8167 132:0.8 133:0.7833 134:0.7667 135:0.7667 136:0.75 137:0.7167 138:0.7 139:0.6833 140:0.5667 141:0.5667 142:0.50873684 143:0.50873684 144:0.49126316 145:0.50873684 146:0.45610526 147:0.47368421 148:0.45610526 149:0.47368421 150:0.40347368 151:0.40347368 152:0.40347368 153:0.40347368 154:0.40347368 155:0.40347368 156:0.40347368 157:0.39281926 158:0.39281926 159:0.39281926 160:0.39281926 161:0.44639088 162:0.44639088 163:0.44639088 164:0.44639088 165:0.44639088 166:0.44639088 167:0.44639088 168:0.44639088 169:0.44639088 170:0.44639088 171:0.44639088 172:0.44639088 173:0.4642838 174:0.44639088 175:0.55353412 176:0.55353412 177:0.55353412 178:0.71424898 179:0.71424898 180:1 181:1 182:1 183:1 184:1 185:1 186:1 187:1 188:1 189:0.62499866 190:0.60710574 191:0.60710574 192:0.55353412 193:0.55353412 194:0.55353412 195:0.55353412 196:0.55353412 197:0.55353412 198:0.55353412 199:0.55353412 200:0.39281926 201:0.39281926 202:0.39281926 203:0.37503348 204:0.37503348 205:0.37503348 206:0.37503348 207:0.37503348 208:0.37503348 209:0.37503348 210:0.37503348 211:0.37503348 212:0.37503348 213:0.37503348 214:0.37503348 215:0.37503348 216:0.39281926 217:0.39281926 218:0.39281926 219:0.39281926 220:0.41071218 221:0.45 222:0.4833 223:0.4833 224:0.5 225:0.5 226:0.5167 227:0.55 228:0.55 229:0.5667 230:0.6 231:0.6167 232:0.6333 233:0.6333 234:0.65 235:0.6333 236:0.6333 237:0.6333 238:0.6333 239:0.6333 240:0.6333 241:0.6333 242:0.6333 243:0.65 244:0.4667 245:0.4667 246:0.4667 247:0.4667 248:0.4667 249:0.4667 250:0.4667 251:0.4667 252:0.4667 253:0.4667 254:0.4667 255:0.4667 256:0.4833 257:0.55 258:0.55 259:0.6167 260:0.6167 261:0.6167 262:0.65 263:0.65 264:0.75 265:0.8667 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:0.95 286:0.8833 287:0.8167 288:0.7833 289:0.7333 290:0.6833 291:0.65 292:0.6333 293:0.55 294:0.5333 295:0.5333 296:0.5333 297:0.4667 298:0.4667 299:0.4667 300:0.4667 301:0.4667 302:0.4667 303:0.4667 304:0.4667 305:0.4667 306:0.4667 307:0.4667 308:0.4833 309:0.8333 310:0.7833 311:0.7667 312:0.75 313:0.7167 314:0.7 315:0.6667 316:0.65 317:0.65 318:0.6333 319:0.6167 320:0.6167 321:0.6 322:0.6 323:0.5833 324:0.5833 325:0.5833 326:0.5833 327:0.5833 328:0.5833 329:0.5667 330:0.5667 331:0.5667 332:0.5667 333:0.5667 334:0.5 335:0.5 336:0.5 337:0.5 338:0.5 339:0.5 340:0.5 341:0.5 342:0.5 343:0.5 344:0.5 345:0.5667 346:0.5833 347:0.5833 348:0.5833 349:0.6 350:0.7333 351:0.75 352:1 353:1 354:1 355:1 356:1 357:1 358:1 359:1 360:1 +0.2253674431456161 1:1 2:1 3:1 4:1 5:1 6:1 7:1 8:1 9:1 10:1 11:1 12:0.9167 13:0.9167 14:0.8667 15:0.8667 16:0.8667 17:0.8667 18:0.8667 19:0.8667 20:0.8667 21:0.6667 22:0.6667 23:0.65 24:0.6167 25:0.6 26:0.6 27:0.5833 28:0.5667 29:0.5667 30:0.5667 31:0.5667 32:0.5667 33:0.55 34:0.5333 35:0.55 36:0.55 37:0.55 38:0.55 39:0.5333 40:0.55 41:0.5333 42:0.55 43:0.55 44:0.55 45:0.55 46:0.5833 47:0.6 48:0.6 49:0.6 50:0.6 51:0.6 52:0.6 53:1 54:1 55:1 56:1 57:1 58:1 59:1 60:1 61:1 62:1 63:1 64:1 65:1 66:1 67:1 68:1 69:1 70:1 71:1 72:1 73:1 74:1 75:1 76:0.8833 77:0.8833 78:0.8833 79:0.8833 80:0.8833 81:0.8833 82:0.8833 83:0.8833 84:0.8833 85:0.9 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:0.9333 104:0.9333 105:0.9333 106:0.9333 107:0.9333 108:0.65 109:0.6167 110:0.5833 111:0.5833 112:0.5833 113:0.5833 114:0.5833 115:0.5833 116:0.5833 117:0.5833 118:0.5833 119:0.5833 120:0.5833 121:0.5833 122:0.5833 123:0.5833 124:0.7833 125:0.7667 126:0.75 127:0.7333 128:0.7333 129:0.7167 130:0.7167 131:0.7167 132:0.7167 133:0.7167 134:0.7167 135:0.7167 136:0.7167 137:0.7167 138:0.7333 139:0.7333 140:0.7167 141:0.7333 142:0.71926316 143:0.73684211 144:0.75442105 145:0.77189474 146:1 147:1 148:1 149:1 150:1 151:1 152:1 153:1 154:1 155:1 156:1 157:1 158:1 159:1 160:1 161:1 162:1 163:1 164:1 165:1 166:1 167:1 168:1 169:1 170:1 171:1 172:1 173:1 174:1 175:1 176:1 177:1 178:1 179:1 180:1 181:1 182:1 183:1 184:1 185:1 186:1 187:1 188:1 189:1 190:1 191:1 192:1 193:1 194:1 195:0.78571352 196:0.78571352 197:0.53574834 198:0.51785542 199:0.51785542 200:0.51785542 201:0.51785542 202:0.51785542 203:0.51785542 204:0.51785542 205:0.51785542 206:0.51785542 207:0.51785542 208:0.51785542 209:0.51785542 210:0.53574834 211:0.75003482 212:0.7678206 213:0.7678206 214:0.4999625 215:0.51785542 216:0.51785542 217:0.51785542 218:0.51785542 219:0.4999625 220:0.51785542 221:0.5333 222:0.55 223:0.55 224:0.55 225:0.55 226:0.5667 227:0.5667 228:0.5833 229:0.5833 230:0.6 231:0.6167 232:0.7833 233:0.7667 234:0.7833 235:0.7833 236:0.7833 237:0.7833 238:0.7833 239:0.7833 240:0.7833 241:0.7833 242:0.8 243:0.8 244:1 245:1 246:1 247:1 248:1 249:1 250:1 251:1 252:1 253:1 254:1 255:1 256:1 257:1 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:1 287:1 288:1 289:1 290:1 291:1 292:1 293:1 294:1 295:1 296:0.9667 297:0.9667 298:0.9667 299:0.9667 300:0.9667 301:0.9833 302:1 303:1 304:0.6833 305:0.6833 306:0.6833 307:0.6667 308:0.6667 309:0.6667 310:0.6667 311:0.6667 312:0.6667 313:0.6667 314:0.6833 315:1 316:1 317:1 318:1 319:1 320:1 321:1 322:1 323:1 324:1 325:0.65 326:1 327:0.65 328:0.65 329:1 330:1 331:0.65 332:1 333:1 334:1 335:1 336:1 337:1 338:1 339:1 340:1 341:1 342:1 343:1 344:1 345:1 346:1 347:1 348:1 349:1 350:1 351:1 352:1 353:1 354:1 355:1 356:1 357:1 358:1 359:1 360:1 +0.3176739970396059 1:1 2:1 3:1 4:1 5:1 6:1 7:1 8:1 9:1 10:1 11:1 12:0.9333 13:0.8667 14:0.85 15:0.8167 16:0.8167 17:0.8167 18:0.8167 19:0.8167 20:0.8167 21:0.8167 22:0.8333 23:0.6 24:0.6167 25:0.6 26:0.5667 27:0.55 28:0.55 29:0.55 30:0.5333 31:0.5167 32:0.5333 33:0.5167 34:0.5 35:0.5 36:0.5 37:0.5 38:0.5 39:0.5 40:0.5 41:0.5 42:0.5 43:0.5 44:0.5 45:0.5 46:0.5 47:0.5 48:0.3667 49:0.3667 50:0.3667 51:0.3667 52:0.3667 53:0.35 54:0.35 55:0.35 56:0.35 57:0.35 58:0.35 59:0.35 60:0.35 61:0.35 62:0.35 63:0.35 64:0.35 65:0.35 66:0.35 67:0.35 68:0.3667 69:0.3833 70:0.4 71:0.4167 72:0.4333 73:0.45 74:1 75:1 76:1 77:1 78:1 79:1 80:1 81:0.9 82:0.9 83:0.9 84:0.9 85:0.9 86:0.9 87:0.9 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:0.9333 107:0.9333 108:0.9333 109:0.9167 110:0.9167 111:0.9167 112:0.6667 113:0.65 114:0.65 115:0.6 116:0.5667 117:0.5667 118:0.5667 119:0.5833 120:0.5667 121:0.5667 122:0.5667 123:0.5667 124:0.5833 125:0.5833 126:0.5833 127:0.6 128:0.8 129:0.7667 130:0.75 131:0.75 132:0.75 133:0.75 134:0.75 135:0.75 136:0.75 137:0.75 138:0.75 139:0.75 140:0.75 141:0.75 142:0.73684211 143:0.75442105 144:0.75442105 145:0.77189474 146:0.78947368 147:0.78947368 148:1 149:1 150:1 151:1 152:1 153:1 154:1 155:1 156:1 157:1 158:1 159:1 160:1 161:1 162:1 163:1 164:1 165:1 166:1 167:1 168:1 169:1 170:1 171:1 172:1 173:1 174:1 175:1 176:1 177:1 178:1 179:1 180:1 181:1 182:1 183:1 184:1 185:1 186:1 187:1 188:1 189:1 190:1 191:1 192:1 193:0.57142704 194:0.57142704 195:0.55353412 196:0.55353412 197:0.53574834 198:0.53574834 199:0.53574834 200:0.4999625 201:0.51785542 202:0.51785542 203:0.51785542 204:0.51785542 205:0.4999625 206:0.51785542 207:0.4999625 208:0.57142704 209:0.80360644 210:0.80360644 211:0.82139222 212:0.60710574 213:0.60710574 214:0.60710574 215:0.60710574 216:0.60710574 217:0.58931996 218:0.58931996 219:0.60710574 220:0.58931996 221:0.6167 222:0.6333 223:0.6167 224:0.6333 225:0.6333 226:0.6333 227:0.6333 228:0.65 229:0.6667 230:0.8167 231:0.25 232:0.25 233:0.25 234:0.2333 235:0.2167 236:0.2333 237:0.2333 238:0.2333 239:0.2333 240:0.2333 241:0.2333 242:0.2333 243:0.2333 244:0.2333 245:0.2333 246:0.2333 247:0.2333 248:0.2333 249:0.2333 250:0.2333 251:0.2333 252:0.2333 253:0.2333 254:0.25 255:0.2667 256:0.2833 257:0.3 258:0.3333 259:0.35 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:1 287:1 288:1 289:1 290:1 291:1 292:1 293:0.95 294:0.95 295:0.95 296:0.95 297:0.95 298:0.9833 299:0.9833 300:1 301:0.6833 302:0.6667 303:0.6667 304:0.6667 305:0.6667 306:0.6667 307:0.6667 308:0.6667 309:1 310:1 311:1 312:1 313:1 314:1 315:1 316:1 317:1 318:1 319:1 320:1 321:1 322:1 323:1 324:1 325:0.65 326:1 327:0.65 328:0.65 329:1 330:1 331:0.65 332:1 333:1 334:1 335:1 336:1 337:1 338:1 339:1 340:1 341:1 342:1 343:1 344:1 345:1 346:1 347:1 348:1 349:1 350:1 351:1 352:1 353:1 354:1 355:1 356:1 357:1 358:1 359:1 360:1 +0.405102162945035 1:0.5167 2:0.5167 3:0.5167 4:0.5167 5:0.5167 6:0.5167 7:0.5167 8:0.5167 9:0.5167 10:0.5167 11:0.5167 12:0.5167 13:0.5167 14:0.5 15:0.5 16:0.5 17:0.5 18:0.5 19:0.5 20:0.5 21:0.5 22:0.5 23:0.5167 24:0.5167 25:0.5167 26:0.5167 27:0.4 28:0.5167 29:0.4 30:0.4167 31:0.4 32:0.4167 33:0.55 34:0.4 35:0.5667 36:0.4 37:0.5833 38:0.5833 39:0.5833 40:0.6 41:0.6 42:0.6167 43:0.6167 44:0.6333 45:0.65 46:0.65 47:0.6667 48:0.6833 49:0.6833 50:0.7 51:0.7167 52:0.7333 53:0.75 54:0.7667 55:0.7833 56:0.8 57:0.4167 58:0.85 59:0.4167 60:0.4167 61:0.4167 62:0.4167 63:0.4333 64:0.4167 65:0.4333 66:0.4167 67:0.4333 68:0.4333 69:0.4333 70:0.4333 71:0.4833 72:0.4833 73:0.4833 74:0.4833 75:0.4833 76:0.4833 77:0.4833 78:0.4833 79:0.5667 80:0.5667 81:0.5667 82:0.5667 83:0.5667 84:0.6667 85:0.6667 86:0.6667 87:0.7167 88:0.8667 89:0.9167 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:0.9167 105:0.85 106:0.85 107:0.85 108:0.75 109:0.75 110:0.6 111:0.6 112:0.6 113:0.6 114:0.6 115:0.6 116:0.6 117:0.6 118:0.6 119:0.6 120:0.6 121:0.6 122:0.6 123:0.6333 124:0.9833 125:0.9167 126:0.9167 127:0.9167 128:0.9 129:0.8833 130:0.8667 131:0.85 132:0.85 133:0.4667 134:0.4667 135:0.4667 136:0.4667 137:0.4667 138:0.4667 139:0.4667 140:0.4667 141:0.4667 142:0.43863158 143:0.45610526 144:0.45610526 145:0.70178947 146:0.70178947 147:0.70178947 148:0.70178947 149:0.70178947 150:0.70178947 151:0.70178947 152:0.70178947 153:0.70178947 154:0.70178947 155:0.71926316 156:0.71926316 157:0.71424898 158:0.7321419 159:0.7321419 160:0.75003482 161:0.7678206 162:0.7678206 163:0.7678206 164:0.80360644 165:0.80360644 166:0.82139222 167:0.83928514 168:0.85717806 169:0.89285676 170:0.91074968 171:0.92853546 172:1 173:0.82139222 174:0.82139222 175:0.82139222 176:0.82139222 177:0.82139222 178:0.82139222 179:0.82139222 180:1 181:1 182:1 183:1 184:1 185:1 186:1 187:1 188:1 189:1 190:1 191:1 192:1 193:1 194:1 195:1 196:1 197:1 198:1 199:1 200:0.98210708 201:0.89285676 202:0.89285676 203:0.89285676 204:0.89285676 205:0.89285676 206:0.89285676 207:1 208:0.92853546 209:0.89285676 210:0.89285676 211:0.91074968 212:0.85717806 213:0.82139222 214:0.80360644 215:0.80360644 216:0.78571352 217:0.4286051 218:0.39281926 219:0.39281926 220:0.39281926 221:0.4333 222:0.4167 223:0.4167 224:0.4167 225:0.4167 226:0.4167 227:0.4167 228:0.4167 229:0.4167 230:0.4167 231:0.4167 232:0.4167 233:0.4167 234:0.4167 235:0.4167 236:0.4167 237:0.6167 238:0.7667 239:0.75 240:0.7667 241:0.7667 242:0.6833 243:0.6833 244:0.8 245:0.7833 246:0.6833 247:0.6833 248:0.7833 249:0.7833 250:0.7833 251:0.85 252:0.9 253:0.9333 254:0.9333 255:1 256:1 257:1 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:0.9333 271:0.7667 272:0.6167 273:0.6167 274:0.6167 275:0.6 276:0.5167 277:0.5167 278:0.5167 279:0.5167 280:0.5167 281:0.5167 282:0.5167 283:0.4667 284:0.4667 285:0.4667 286:0.4667 287:0.4667 288:0.4667 289:0.4667 290:0.4667 291:0.4667 292:0.5833 293:0.5833 294:0.5833 295:0.5833 296:0.6 297:0.6 298:0.6 299:0.6 300:0.6 301:0.6 302:0.6 303:0.6167 304:0.6167 305:0.6167 306:0.6333 307:0.6333 308:0.6333 309:0.6333 310:0.6333 311:0.65 312:0.65 313:0.4833 314:0.4833 315:0.4833 316:0.4833 317:0.4833 318:0.4833 319:0.4833 320:0.4833 321:0.4833 322:0.4833 323:0.4833 324:0.55 325:0.55 326:0.55 327:0.5167 328:0.5167 329:0.5167 330:0.5 331:0.5 332:0.5 333:0.5 334:0.4833 335:0.4833 336:0.4833 337:0.4833 338:0.4833 339:0.4833 340:0.4833 341:0.4833 342:0.4833 343:0.4833 344:0.4833 345:0.5 346:0.5 347:0.5167 348:0.5167 349:0.5167 350:0.5167 351:0.5167 352:0.5167 353:0.5167 354:0.5167 355:0.5167 356:0.5167 357:0.5167 358:0.5167 359:0.5167 360:0.5167 +0.02923343901896431 1:0.6833 2:0.6833 3:0.6833 4:1 5:1 6:1 7:1 8:1 9:1 10:1 11:1 12:1 13:1 14:1 15:1 16:1 17:1 18:0.8833 19:0.8833 20:0.8833 21:0.8 22:0.4833 23:0.4833 24:0.4833 25:0.4667 26:0.4833 27:0.4667 28:0.4833 29:0.4667 30:0.4833 31:0.4667 32:0.4167 33:0.4167 34:0.4167 35:0.4 36:0.4167 37:0.4 38:0.4167 39:0.4167 40:0.4167 41:0.4167 42:0.4 43:0.4167 44:0.4 45:0.5333 46:0.5333 47:0.5333 48:0.5333 49:0.5333 50:0.5333 51:0.5167 52:0.5333 53:0.5333 54:0.5333 55:0.5333 56:0.5333 57:0.5333 58:0.5333 59:0.55 60:0.55 61:0.55 62:0.55 63:0.55 64:0.5667 65:0.55 66:0.5667 67:0.5833 68:0.5833 69:0.6 70:0.6 71:0.6 72:0.6167 73:0.6167 74:0.65 75:0.6667 76:0.5 77:0.4833 78:0.4833 79:0.4833 80:0.4833 81:0.4833 82:0.4833 83:0.4833 84:0.4833 85:0.4833 86:0.4833 87:0.4833 88:0.4833 89:0.5 90:0.5 91:0.5667 92:0.6833 93:0.6833 94:0.6833 95:0.9167 96:0.95 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:1 107:1 108:1 109:1 110:1 111:1 112:1 113:1 114:1 115:1 116:1 117:1 118:1 119:0.9833 120:0.9833 121:0.9667 122:0.8833 123:0.8667 124:0.85 125:0.7667 126:0.75 127:0.7333 128:0.7 129:0.6167 130:0.6167 131:0.5833 132:0.5833 133:0.5667 134:0.55 135:0.55 136:0.55 137:0.55 138:0.55 139:0.55 140:0.55 141:0.55 142:0.52631579 143:0.52631579 144:0.54389474 145:0.54389474 146:0.54389474 147:0.68421053 148:0.68421053 149:0.68421053 150:0.68421053 151:0.59652632 152:0.59652632 153:0.43863158 154:0.43863158 155:0.43863158 156:0.43863158 157:0.4286051 158:0.4286051 159:0.4286051 160:0.4286051 161:0.4286051 162:0.4286051 163:0.4286051 164:0.44639088 165:0.53574834 166:0.53574834 167:0.53574834 168:0.53574834 169:0.53574834 170:0.53574834 171:0.53574834 172:0.53574834 173:0.53574834 174:0.53574834 175:0.53574834 176:0.53574834 177:0.53574834 178:0.53574834 179:0.53574834 180:0.53574834 181:0.53574834 182:0.53574834 183:0.53574834 184:0.53574834 185:0.53574834 186:0.53574834 187:0.53574834 188:0.53574834 189:0.6964632 190:0.7321419 191:0.7321419 192:0.7321419 193:0.7321419 194:0.7321419 195:0.75003482 196:1 197:1 198:1 199:1 200:1 201:1 202:1 203:1 204:1 205:1 206:0.9643213 207:0.9643213 208:0.9643213 209:0.9643213 210:0.7678206 211:0.7678206 212:0.7678206 213:0.7678206 214:0.7678206 215:0.7678206 216:0.78571352 217:1 218:0.57142704 219:0.57142704 220:0.57142704 221:0.6 222:0.6 223:0.6 224:0.6 225:0.6 226:0.6 227:0.6667 228:0.7333 229:0.7333 230:0.7167 231:0.7167 232:0.7 233:0.7 234:0.6833 235:0.6833 236:0.6833 237:0.6833 238:0.6833 239:0.6833 240:0.6833 241:0.5833 242:0.55 243:0.5667 244:0.55 245:0.55 246:0.5667 247:0.55 248:0.55 249:0.55 250:0.65 251:0.6333 252:0.6167 253:0.6167 254:0.6167 255:0.6167 256:0.6167 257:0.6167 258:0.6167 259:0.6167 260:0.6333 261:0.6333 262:0.6667 263:0.6667 264:0.7333 265:0.7167 266:0.7333 267:0.8333 268:0.8667 269:0.95 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:1 287:1 288:1 289:1 290:1 291:1 292:1 293:1 294:1 295:0.9167 296:0.8 297:0.7333 298:0.6833 299:0.6167 300:0.6333 301:0.6167 302:0.6 303:0.6167 304:0.6167 305:0.6 306:0.6167 307:0.6 308:0.6 309:0.6167 310:0.8167 311:0.8 312:0.5 313:0.4833 314:0.4833 315:0.4833 316:0.4833 317:0.4833 318:0.5 319:0.4833 320:0.5 321:0.4833 322:0.5667 323:0.5667 324:0.5667 325:0.55 326:0.55 327:0.55 328:0.55 329:0.5333 330:0.55 331:0.5333 332:0.5333 333:0.5333 334:0.5333 335:0.5333 336:0.5333 337:0.5333 338:0.5333 339:0.5333 340:0.5333 341:0.5333 342:0.5333 343:0.5333 344:0.5333 345:0.5333 346:0.5333 347:0.5167 348:0.5333 349:0.5167 350:0.5333 351:0.5167 352:0.5333 353:0.5333 354:0.5167 355:0.55 356:0.55 357:0.55 358:0.55 359:0.55 360:0.55 +0.3738030152924388 1:0.5167 2:0.5167 3:0.5167 4:0.5167 5:0.5167 6:0.55 7:0.55 8:0.55 9:0.55 10:0.55 11:0.6833 12:0.6833 13:0.7 14:1 15:1 16:1 17:1 18:1 19:1 20:1 21:1 22:1 23:1 24:1 25:1 26:1 27:1 28:0.9 29:0.8833 30:0.8833 31:0.8833 32:0.8833 33:0.4833 34:0.4833 35:0.4833 36:0.4833 37:0.4833 38:0.4833 39:0.4833 40:0.4833 41:0.4833 42:0.4833 43:0.4333 44:0.4333 45:0.4333 46:0.4333 47:0.4333 48:0.4333 49:0.4333 50:0.4333 51:0.4333 52:0.4333 53:0.4333 54:0.4333 55:0.45 56:0.55 57:0.55 58:0.55 59:0.55 60:0.55 61:0.55 62:0.55 63:0.55 64:0.5667 65:0.55 66:0.5667 67:0.5667 68:0.5667 69:0.5667 70:0.5833 71:0.5833 72:0.5833 73:0.5833 74:0.6 75:0.6 76:0.6 77:0.6167 78:0.6333 79:0.6333 80:0.65 81:0.65 82:0.6833 83:0.6833 84:0.7333 85:0.7167 86:0.75 87:0.8 88:0.8 89:0.8333 90:0.8667 91:0.9167 92:0.95 93:1 94:1 95:1 96:0.85 97:0.7833 98:0.7833 99:0.7833 100:0.7833 101:0.8333 102:0.8 103:0.9833 104:0.9833 105:1 106:1 107:1 108:1 109:1 110:1 111:1 112:1 113:1 114:1 115:1 116:1 117:1 118:1 119:1 120:1 121:1 122:1 123:1 124:1 125:1 126:1 127:1 128:0.9833 129:0.8833 130:0.8667 131:0.85 132:0.75 133:0.7333 134:0.7333 135:0.6667 136:0.6333 137:0.6167 138:0.6167 139:0.6 140:0.6 141:0.5833 142:0.56136842 143:0.56136842 144:0.56136842 145:0.56136842 146:0.56136842 147:0.56136842 148:0.56136842 149:0.56136842 150:0.56136842 151:0.56136842 152:0.70178947 153:0.70178947 154:0.70178947 155:0.70178947 156:0.47368421 157:0.4642838 158:0.4642838 159:0.4642838 160:0.4642838 161:0.4642838 162:0.4642838 163:0.4642838 164:0.4642838 165:0.4642838 166:0.4642838 167:0.55353412 168:0.53574834 169:0.53574834 170:0.53574834 171:0.53574834 172:0.53574834 173:0.53574834 174:0.53574834 175:0.53574834 176:0.53574834 177:0.53574834 178:0.53574834 179:0.53574834 180:0.53574834 181:0.55353412 182:0.55353412 183:0.55353412 184:0.51785542 185:0.51785542 186:0.51785542 187:0.51785542 188:0.51785542 189:0.51785542 190:0.51785542 191:0.51785542 192:0.53574834 193:0.53574834 194:0.6964632 195:0.71424898 196:0.71424898 197:0.71424898 198:0.71424898 199:0.7321419 200:0.7321419 201:1 202:1 203:1 204:1 205:1 206:1 207:1 208:1 209:1 210:1 211:1 212:0.94642838 213:0.94642838 214:0.94642838 215:0.94642838 216:0.75003482 217:0.75003482 218:0.75003482 219:0.75003482 220:0.75003482 221:0.6833 222:0.7 223:0.5833 224:0.5833 225:0.5833 226:0.5833 227:0.5833 228:0.5833 229:0.5833 230:0.5833 231:0.5833 232:0.6 233:0.6167 234:0.6833 235:0.6833 236:0.6833 237:0.6833 238:0.6833 239:0.6667 240:0.65 241:0.65 242:0.65 243:0.65 244:0.65 245:0.65 246:0.65 247:0.65 248:0.5333 249:0.5333 250:0.5333 251:0.5333 252:0.5333 253:0.5333 254:0.5333 255:0.5333 256:0.55 257:0.6167 258:0.5833 259:0.5833 260:0.5833 261:0.5833 262:0.5833 263:0.5833 264:0.5833 265:0.5833 266:0.5833 267:0.5833 268:0.5833 269:0.6167 270:0.6167 271:0.6667 272:0.7 273:0.75 274:0.75 275:0.8 276:0.9 277:0.9333 278:0.9667 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:1 287:1 288:1 289:1 290:1 291:1 292:1 293:1 294:1 295:1 296:1 297:1 298:1 299:1 300:1 301:1 302:1 303:1 304:0.8667 305:0.8167 306:0.7167 307:0.6333 308:0.6 309:0.5833 310:0.5833 311:0.5833 312:0.5833 313:0.5833 314:0.5833 315:0.5833 316:0.5833 317:0.5833 318:0.5833 319:0.5833 320:0.5833 321:0.4667 322:0.4667 323:0.4667 324:0.4667 325:0.4667 326:0.4667 327:0.4667 328:0.4667 329:0.4667 330:0.4667 331:0.4667 332:0.4667 333:0.55 334:0.55 335:0.5333 336:0.5333 337:0.5333 338:0.5333 339:0.5333 340:0.5167 341:0.5167 342:0.5167 343:0.5167 344:0.5167 345:0.5167 346:0.5167 347:0.5167 348:0.5167 349:0.5167 350:0.5167 351:0.5167 352:0.5167 353:0.5167 354:0.5167 355:0.5167 356:0.5167 357:0.5167 358:0.5167 359:0.5167 360:0.5167 +0.8099883035993928 1:0.5 2:0.5 3:0.5 4:0.5 5:0.5 6:0.5 7:0.5 8:0.5 9:0.5 10:0.5 11:0.5 12:0.5167 13:0.5167 14:0.5167 15:0.5167 16:0.5167 17:0.5167 18:0.5167 19:0.5167 20:0.5167 21:0.5167 22:0.5167 23:0.55 24:0.5667 25:0.5667 26:0.55 27:1 28:1 29:1 30:1 31:1 32:1 33:1 34:1 35:1 36:1 37:1 38:1 39:1 40:1 41:1 42:0.9333 43:0.9333 44:0.9333 45:0.85 46:0.8667 47:0.7333 48:0.7 49:0.6833 50:0.7 51:0.5333 52:0.5333 53:0.5333 54:0.5333 55:0.5333 56:0.5333 57:0.5333 58:0.5333 59:0.4833 60:0.4833 61:0.5 62:0.4833 63:0.5 64:0.4833 65:0.4833 66:0.4833 67:0.4833 68:0.4833 69:0.6167 70:0.6167 71:0.6167 72:0.6167 73:0.6167 74:0.6167 75:0.6333 76:0.6333 77:0.6333 78:0.6333 79:0.6333 80:0.65 81:0.65 82:0.65 83:0.65 84:0.6667 85:0.6667 86:0.6667 87:0.6833 88:0.7 89:0.7167 90:0.7167 91:0.7333 92:0.7667 93:0.7833 94:0.8167 95:0.8167 96:0.8333 97:0.95 98:0.95 99:0.95 100:0.9667 101:0.8167 102:0.8167 103:0.7667 104:0.7667 105:0.7833 106:0.7833 107:0.7833 108:0.7667 109:0.8 110:1 111:1 112:1 113:1 114:1 115:1 116:1 117:1 118:1 119:1 120:1 121:1 122:1 123:1 124:1 125:1 126:1 127:1 128:1 129:1 130:1 131:1 132:1 133:1 134:1 135:0.95 136:0.9333 137:0.85 138:0.8 139:0.75 140:0.7167 141:0.7 142:0.66663158 143:0.614 144:0.614 145:0.614 146:0.614 147:0.614 148:0.614 149:0.614 150:0.614 151:0.614 152:0.614 153:0.63157895 154:0.75442105 155:0.73684211 156:0.75442105 157:0.48217672 158:0.48217672 159:0.48217672 160:0.48217672 161:0.48217672 162:0.48217672 163:0.48217672 164:0.48217672 165:0.4642838 166:0.48217672 167:0.48217672 168:0.55353412 169:0.55353412 170:0.55353412 171:0.55353412 172:0.55353412 173:0.55353412 174:0.55353412 175:0.55353412 176:0.55353412 177:0.55353412 178:0.55353412 179:0.55353412 180:0.55353412 181:0.55353412 182:0.53574834 183:0.53574834 184:0.53574834 185:0.53574834 186:0.53574834 187:0.53574834 188:0.53574834 189:0.53574834 190:0.53574834 191:0.53574834 192:0.53574834 193:0.53574834 194:0.66067736 195:0.66067736 196:0.67857028 197:0.6964632 198:0.71424898 199:0.71424898 200:0.71424898 201:0.71424898 202:0.71424898 203:1 204:1 205:1 206:1 207:1 208:1 209:1 210:1 211:1 212:1 213:1 214:1 215:1 216:0.91074968 217:0.91074968 218:0.91074968 219:0.91074968 220:0.91074968 221:0.9167 222:0.9167 223:0.9833 224:0.9833 225:0.5167 226:0.5333 227:0.5167 228:0.5333 229:0.5333 230:0.5333 231:0.5333 232:0.5167 233:0.5333 234:0.5667 235:0.5667 236:0.5667 237:0.6333 238:0.6333 239:0.6333 240:0.6167 241:0.6333 242:0.6167 243:0.5833 244:0.5833 245:0.5833 246:0.5833 247:0.5833 248:0.5833 249:0.5833 250:0.5833 251:0.4667 252:0.4667 253:0.4667 254:0.4667 255:0.4667 256:0.4667 257:0.4667 258:0.4667 259:0.4667 260:0.4667 261:0.4667 262:0.4667 263:0.5167 264:0.5167 265:0.5167 266:0.5167 267:0.5167 268:0.5167 269:0.5167 270:0.5167 271:0.5167 272:0.5167 273:0.5167 274:0.5167 275:0.5167 276:0.5333 277:0.5333 278:0.55 279:0.5667 280:0.5667 281:0.6 282:0.6333 283:0.7167 284:0.75 285:0.7667 286:0.8167 287:0.8833 288:0.9167 289:0.9833 290:1 291:1 292:1 293:1 294:1 295:1 296:1 297:1 298:1 299:1 300:1 301:1 302:1 303:1 304:1 305:1 306:1 307:1 308:1 309:1 310:1 311:1 312:1 313:1 314:0.95 315:0.85 316:0.8167 317:0.7333 318:0.7 319:0.65 320:0.6167 321:0.5833 322:0.5333 323:0.5333 324:0.5167 325:0.5333 326:0.5167 327:0.5167 328:0.5333 329:0.5167 330:0.5333 331:0.5167 332:0.5333 333:0.5333 334:0.5333 335:0.5333 336:0.5333 337:0.6833 338:0.6333 339:0.4333 340:0.4167 341:0.4167 342:0.4167 343:0.4167 344:0.4167 345:0.4167 346:0.4167 347:0.4167 348:0.4167 349:0.4167 350:0.4167 351:0.4333 352:0.5 353:0.5 354:0.5 355:0.5 356:0.5 357:0.5 358:0.5 359:0.5 360:0.5 +-0.05641373374437366 1:0.08333 2:0.08333 3:0.08333 4:0.08333 5:0.08333 6:0.08333 7:0.08333 8:0.08333 9:0.08333 10:0.08333 11:0.08333 12:0.08333 13:0.08333 14:0.08333 15:0.08333 16:0.08333 17:0.08333 18:0.08333 19:0.08333 20:0.08333 21:0.08333 22:0.08333 23:0.08333 24:0.08333 25:0.08333 26:0.08333 27:0.08333 28:0.08333 29:0.08333 30:0.08333 31:0.08333 32:0.08333 33:0.08333 34:0.08333 35:0.08333 36:0.08333 37:0.08333 38:0.08333 39:0.08333 40:0.08333 41:0.08333 42:0.08333 43:0.08333 44:0.08333 45:0.08333 46:0.08333 47:0.08333 48:0.08333 49:0.08333 50:0.1 51:0.1 52:0.1 53:0.1 54:0.1 55:0.1 56:0.1 57:0.1 58:0.1167 59:0.1167 60:0.1167 61:0.1167 62:0.1167 63:0.1167 64:0.1167 65:0.1333 66:0.1333 67:0.1333 68:0.1167 69:0.1167 70:0.1167 71:0.1167 72:0.1833 73:0.1833 74:0.1833 75:0.1833 76:0.1833 77:0.1833 78:0.1833 79:0.2 80:0.2167 81:0.2333 82:0.2667 83:0.3 84:0.3333 85:0.4 86:0.4667 87:0.5833 88:0.9 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:0.7833 97:0.7833 98:0.7833 99:0.7833 100:0.7833 101:0.7833 102:0.7833 103:0.7167 104:0.7 105:0.5833 106:0.55 107:0.55 108:0.4833 109:0.45 110:0.4333 111:0.4167 112:0.4 113:0.3833 114:0.3667 115:0.35 116:0.3333 117:0.3167 118:0.3167 119:0.3 120:0.3 121:0.2833 122:0.2833 123:0.2667 124:0.2667 125:0.25 126:0.25 127:0.25 128:0.2333 129:0.2333 130:0.2333 131:0.2167 132:0.2167 133:0.2167 134:0.2167 135:0.2167 136:0.2 137:0.2 138:0.2 139:0.2 140:0.2 141:0.2 142:0.14031579 143:0.14031579 144:0.14031579 145:0.14031579 146:0.14031579 147:0.14031579 148:0.14031579 149:0.14031579 150:0.14031579 151:0.12284211 152:0.12284211 153:0.12284211 154:0.12284211 155:0.12284211 156:0.12284211 157:0.10717538 158:0.10717538 159:0.10717538 160:0.10717538 161:0.10717538 162:0.10717538 163:0.10717538 164:0.10717538 165:0.10717538 166:0.10717538 167:0.10717538 168:0.10717538 169:0.10717538 170:0.10717538 171:0.10717538 172:0.10717538 173:0.10717538 174:0.10717538 175:0.10717538 176:0.10717538 177:0.10717538 178:0.10717538 179:0.10717538 180:0.10717538 181:0.10717538 182:0.10717538 183:0.10717538 184:0.10717538 185:0.10717538 186:0.10717538 187:0.10717538 188:0.10717538 189:0.10717538 190:0.10717538 191:0.10717538 192:0.10717538 193:0.10717538 194:0.10717538 195:0.10717538 196:0.10717538 197:0.10717538 198:0.10717538 199:0.10717538 200:0.10717538 201:0.10717538 202:0.10717538 203:0.10717538 204:0.10717538 205:0.10717538 206:0.10717538 207:0.10717538 208:0.10717538 209:0.10717538 210:0.10717538 211:0.10717538 212:0.12496116 213:0.12496116 214:0.12496116 215:0.12496116 216:0.12496116 217:0.12496116 218:0.12496116 219:0.12496116 220:0.12496116 221:0.2 222:0.2 223:0.2 224:0.2 225:0.2 226:0.2 227:0.2167 228:0.2167 229:0.2167 230:0.2167 231:0.2167 232:0.2333 233:0.2333 234:0.2333 235:0.25 236:0.25 237:0.25 238:0.2667 239:0.2667 240:0.2833 241:0.2833 242:0.3 243:0.3 244:0.3167 245:0.3167 246:0.3333 247:0.35 248:0.3667 249:0.3833 250:0.4 251:0.4167 252:0.4333 253:0.45 254:0.4833 255:0.5167 256:0.55 257:0.5833 258:0.6 259:0.6 260:0.65 261:0.8167 262:0.9 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:0.8333 276:0.6667 277:0.55 278:0.4667 279:0.4167 280:0.3667 281:0.3333 282:0.3 283:0.2833 284:0.25 285:0.2333 286:0.2167 287:0.2 288:0.2 289:0.1833 290:0.1833 291:0.1667 292:0.1667 293:0.15 294:0.15 295:0.15 296:0.1333 297:0.1333 298:0.1333 299:0.1167 300:0.1167 301:0.1167 302:0.1167 303:0.1167 304:0.1167 305:0.1 306:0.1 307:0.1 308:0.1 309:0.1 310:0.1 311:0.1 312:0.1 313:0.08333 314:0.08333 315:0.08333 316:0.08333 317:0.08333 318:0.08333 319:0.08333 320:0.08333 321:0.08333 322:0.08333 323:0.08333 324:0.08333 325:0.08333 326:0.08333 327:0.08333 328:0.08333 329:0.08333 330:0.08333 331:0.08333 332:0.08333 333:0.08333 334:0.08333 335:0.08333 336:0.08333 337:0.08333 338:0.08333 339:0.08333 340:0.08333 341:0.08333 342:0.08333 343:0.08333 344:0.08333 345:0.08333 346:0.08333 347:0.08333 348:0.08333 349:0.08333 350:0.08333 351:0.08333 352:0.08333 353:0.08333 354:0.08333 355:0.08333 356:0.08333 357:0.08333 358:0.08333 359:0.08333 360:0.08333 +-0.2669211188117933 1:0.06667 2:0.06667 3:0.06667 4:0.06667 5:0.06667 6:0.06667 7:0.06667 8:0.06667 9:0.06667 10:0.06667 11:0.06667 12:0.06667 13:0.06667 14:0.06667 15:0.06667 16:0.06667 17:0.06667 18:0.06667 19:0.06667 20:0.06667 21:0.06667 22:0.06667 23:0.06667 24:0.06667 25:0.06667 26:0.06667 27:0.06667 28:0.06667 29:0.06667 30:0.06667 31:0.06667 32:0.06667 33:0.06667 34:0.06667 35:0.06667 36:0.06667 37:0.06667 38:0.06667 39:0.06667 40:0.06667 41:0.06667 42:0.06667 43:0.06667 44:0.06667 45:0.06667 46:0.06667 47:0.06667 48:0.06667 49:0.06667 50:0.06667 51:0.06667 52:0.06667 53:0.06667 54:0.06667 55:0.06667 56:0.06667 57:0.08333 58:0.08333 59:0.08333 60:0.08333 61:0.08333 62:0.08333 63:0.08333 64:0.08333 65:0.1 66:0.1 67:0.1 68:0.1 69:0.1167 70:0.1167 71:0.1167 72:0.1333 73:0.1333 74:0.1333 75:0.15 76:0.15 77:0.1667 78:0.1833 79:0.2 80:0.2167 81:0.2333 82:0.2167 83:0.2167 84:0.2167 85:0.2667 86:0.3167 87:0.35 88:0.4667 89:0.5667 90:0.5667 91:0.7833 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:0.7833 106:0.6667 107:0.6333 108:0.5333 109:0.5333 110:0.4833 111:0.4833 112:0.4833 113:0.4167 114:0.4 115:0.3833 116:0.3667 117:0.3667 118:0.35 119:0.3333 120:0.3333 121:0.3167 122:0.3 123:0.3 124:0.3 125:0.2833 126:0.2833 127:0.2667 128:0.2667 129:0.2667 130:0.25 131:0.25 132:0.25 133:0.2333 134:0.2333 135:0.2333 136:0.2 137:0.2 138:0.2167 139:0.2167 140:0.2167 141:0.2 142:0.17547368 143:0.17547368 144:0.15789474 145:0.14031579 146:0.14031579 147:0.14031579 148:0.14031579 149:0.14031579 150:0.14031579 151:0.12284211 152:0.12284211 153:0.12284211 154:0.12284211 155:0.12284211 156:0.12284211 157:0.10717538 158:0.10717538 159:0.10717538 160:0.10717538 161:0.10717538 162:0.10717538 163:0.10717538 164:0.10717538 165:0.10717538 166:0.10717538 167:0.10717538 168:0.10717538 169:0.10717538 170:0.10717538 171:0.10717538 172:0.10717538 173:0.10717538 174:0.10717538 175:0.10717538 176:0.10717538 177:0.10717538 178:0.10717538 179:0.10717538 180:0.10717538 181:0.10717538 182:0.10717538 183:0.10717538 184:0.10717538 185:0.10717538 186:0.10717538 187:0.10717538 188:0.10717538 189:0.10717538 190:0.10717538 191:0.10717538 192:0.10717538 193:0.10717538 194:0.10717538 195:0.10717538 196:0.10717538 197:0.10717538 198:0.10717538 199:0.10717538 200:0.10717538 201:0.10717538 202:0.10717538 203:0.10717538 204:0.10717538 205:0.10717538 206:0.10717538 207:0.10717538 208:0.10717538 209:0.10717538 210:0.10717538 211:0.10717538 212:0.12496116 213:0.12496116 214:0.12496116 215:0.12496116 216:0.12496116 217:0.12496116 218:0.12496116 219:0.12496116 220:0.12496116 221:0.2 222:0.2 223:0.2 224:0.2 225:0.2 226:0.2 227:0.2167 228:0.2167 229:0.2167 230:0.2167 231:0.2167 232:0.2333 233:0.2333 234:0.2333 235:0.25 236:0.25 237:0.25 238:0.2667 239:0.2667 240:0.2833 241:0.2833 242:0.3 243:0.3 244:0.3167 245:0.3167 246:0.3333 247:0.35 248:0.3667 249:0.3833 250:0.4 251:0.4167 252:0.4333 253:0.45 254:0.4667 255:0.4667 256:0.4833 257:0.5167 258:0.55 259:0.6 260:0.65 261:0.7167 262:0.8667 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:0.8333 276:0.6667 277:0.55 278:0.4667 279:0.4167 280:0.3667 281:0.3333 282:0.3 283:0.2833 284:0.25 285:0.2333 286:0.2167 287:0.2 288:0.2 289:0.1833 290:0.1833 291:0.1667 292:0.1667 293:0.15 294:0.15 295:0.15 296:0.1333 297:0.1333 298:0.08333 299:0.08333 300:0.08333 301:0.08333 302:0.08333 303:0.08333 304:0.08333 305:0.08333 306:0.06667 307:0.06667 308:0.06667 309:0.06667 310:0.06667 311:0.06667 312:0.06667 313:0.06667 314:0.06667 315:0.06667 316:0.06667 317:0.06667 318:0.06667 319:0.06667 320:0.06667 321:0.06667 322:0.06667 323:0.06667 324:0.06667 325:0.06667 326:0.06667 327:0.06667 328:0.06667 329:0.06667 330:0.06667 331:0.06667 332:0.06667 333:0.06667 334:0.06667 335:0.06667 336:0.06667 337:0.06667 338:0.06667 339:0.06667 340:0.06667 341:0.06667 342:0.06667 343:0.06667 344:0.06667 345:0.06667 346:0.06667 347:0.06667 348:0.06667 349:0.06667 350:0.06667 351:0.06667 352:0.06667 353:0.06667 354:0.06667 355:0.06667 356:0.06667 357:0.06667 358:0.06667 359:0.06667 360:0.06667 +-0.1833006335014134 1:0.06667 2:0.06667 3:0.06667 4:0.06667 5:0.06667 6:0.06667 7:0.06667 8:0.06667 9:0.06667 10:0.06667 11:0.06667 12:0.06667 13:0.06667 14:0.06667 15:0.06667 16:0.06667 17:0.06667 18:0.06667 19:0.06667 20:0.06667 21:0.06667 22:0.06667 23:0.06667 24:0.06667 25:0.06667 26:0.06667 27:0.06667 28:0.06667 29:0.08333 30:0.08333 31:0.08333 32:0.08333 33:0.08333 34:0.08333 35:0.08333 36:0.08333 37:0.08333 38:0.08333 39:0.08333 40:0.08333 41:0.08333 42:0.08333 43:0.08333 44:0.08333 45:0.08333 46:0.08333 47:0.08333 48:0.08333 49:0.08333 50:0.1 51:0.1 52:0.1 53:0.1 54:0.1 55:0.1 56:0.1 57:0.1 58:0.1167 59:0.1167 60:0.1167 61:0.1167 62:0.1167 63:0.1167 64:0.1167 65:0.1167 66:0.1167 67:0.1 68:0.1 69:0.1167 70:0.1167 71:0.1167 72:0.1333 73:0.1333 74:0.1333 75:0.15 76:0.15 77:0.1667 78:0.1833 79:0.2 80:0.2167 81:0.2333 82:0.2667 83:0.3167 84:0.3333 85:0.4 86:0.5 87:0.6667 88:0.8167 89:0.8167 90:1 91:1 92:1 93:1 94:1 95:1 96:0.7 97:0.4 98:0.4 99:0.4333 100:0.3833 101:0.3333 102:0.3 103:0.2833 104:0.25 105:0.2333 106:0.2167 107:0.2 108:0.2 109:0.1833 110:0.1833 111:0.1667 112:0.1667 113:0.15 114:0.15 115:0.15 116:0.1333 117:0.1333 118:0.1333 119:0.1167 120:0.1167 121:0.1167 122:0.1167 123:0.1167 124:0.1167 125:0.1 126:0.06667 127:0.06667 128:0.06667 129:0.06667 130:0.06667 131:0.06667 132:0.06667 133:0.06667 134:0.06667 135:0.06667 136:0.06667 137:0.06667 138:0.06667 139:0.06667 140:0.06667 141:0.06667 142:0.017547368 143:0.017547368 144:0.017547368 145:0.017547368 146:0.017547368 147:0.017547368 148:0.017547368 149:0.017547368 150:0.017547368 151:0.017547368 152:0.017547368 153:0.017547368 154:0.017547368 155:0.017547368 156:0.017547368 221:0.06667 222:0.06667 223:0.06667 224:0.06667 225:0.06667 226:0.06667 227:0.06667 228:0.06667 229:0.06667 230:0.06667 231:0.06667 232:0.06667 233:0.06667 234:0.06667 235:0.06667 236:0.06667 237:0.1 238:0.1167 239:0.1167 240:0.1167 241:0.1167 242:0.1167 243:0.1167 244:0.1167 245:0.1167 246:0.1167 247:0.1 248:0.1 249:0.1167 250:0.1167 251:0.1167 252:0.1333 253:0.1333 254:0.1333 255:0.15 256:0.15 257:0.1667 258:0.1833 259:0.2 260:0.2167 261:0.2333 262:0.2667 263:0.3 264:0.3333 265:0.4 266:0.6 267:0.6 268:0.7833 269:1 270:1 271:1 272:1 273:1 274:1 275:0.8333 276:0.6667 277:0.55 278:0.4667 279:0.4167 280:0.3667 281:0.3333 282:0.3 283:0.2833 284:0.25 285:0.2333 286:0.2167 287:0.2 288:0.2 289:0.1833 290:0.1833 291:0.1667 292:0.1667 293:0.15 294:0.15 295:0.15 296:0.1333 297:0.1333 298:0.1333 299:0.1167 300:0.1167 301:0.1167 302:0.1167 303:0.1167 304:0.1167 305:0.1 306:0.1 307:0.1 308:0.1 309:0.1 310:0.1 311:0.1 312:0.1 313:0.08333 314:0.08333 315:0.08333 316:0.08333 317:0.08333 318:0.08333 319:0.08333 320:0.08333 321:0.08333 322:0.08333 323:0.08333 324:0.06667 325:0.06667 326:0.06667 327:0.06667 328:0.06667 329:0.06667 330:0.06667 331:0.06667 332:0.06667 333:0.06667 334:0.06667 335:0.06667 336:0.06667 337:0.06667 338:0.06667 339:0.06667 340:0.06667 341:0.06667 342:0.06667 343:0.06667 344:0.06667 345:0.06667 346:0.06667 347:0.06667 348:0.06667 349:0.06667 350:0.06667 351:0.06667 352:0.06667 353:0.06667 354:0.06667 355:0.06667 356:0.06667 357:0.06667 358:0.06667 359:0.06667 360:0.06667 +-2 1:0.08333 2:0.08333 3:0.08333 4:0.08333 5:0.08333 6:0.08333 7:0.08333 8:0.08333 9:0.08333 10:0.08333 11:0.08333 12:0.08333 13:0.08333 14:0.08333 15:0.08333 16:0.08333 17:0.08333 18:0.08333 19:0.08333 20:0.08333 21:0.08333 22:0.08333 23:0.08333 24:0.08333 25:0.08333 26:0.08333 27:0.08333 28:0.08333 29:0.08333 30:0.08333 31:0.08333 32:0.08333 33:0.08333 34:0.08333 35:0.08333 36:0.08333 37:0.08333 38:0.08333 39:0.08333 40:0.08333 41:0.08333 42:0.08333 43:0.08333 44:0.08333 45:0.08333 46:0.08333 47:0.08333 48:0.08333 49:0.08333 50:0.1 51:0.1 52:0.1 53:0.1 54:0.1 55:0.1 56:0.1 57:0.1 58:0.1167 59:0.1167 60:0.1167 61:0.1167 62:0.1167 63:0.1167 64:0.1333 65:0.1333 66:0.1333 67:0.15 68:0.15 69:0.15 70:0.1667 71:0.1667 72:0.1833 73:0.1833 74:0.1833 75:0.1833 76:0.1833 77:0.1833 78:0.1833 79:0.2 80:0.2167 81:0.2333 82:0.2667 83:0.3 84:0.3333 85:0.4333 86:0.5 87:0.5833 88:0.8 89:1 90:1 91:1 92:1 93:1 94:0.7833 95:0.65 96:0.5333 97:0.4 98:0.3667 99:0.3 100:0.2667 101:0.2333 102:0.2167 103:0.2167 104:0.2167 105:0.2167 106:0.2167 107:0.2 108:0.2 109:0.1833 110:0.1833 111:0.1667 112:0.1667 113:0.15 114:0.15 115:0.15 116:0.1333 117:0.1333 118:0.1333 119:0.1167 120:0.1167 121:0.1167 122:0.1167 123:0.1167 124:0.1167 125:0.1 126:0.06667 127:0.06667 128:0.06667 129:0.06667 130:0.06667 131:0.06667 132:0.06667 133:0.06667 134:0.06667 135:0.06667 136:0.06667 137:0.06667 138:0.06667 139:0.06667 140:0.06667 141:0.06667 142:0.017547368 143:0.017547368 144:0.017547368 145:0.017547368 146:0.017547368 147:0.017547368 148:0.017547368 149:0.017547368 150:0.017547368 151:0.017547368 152:0.017547368 153:0.017547368 154:0.017547368 155:0.017547368 156:0.017547368 221:0.06667 222:0.06667 223:0.06667 224:0.06667 225:0.06667 226:0.06667 227:0.06667 228:0.06667 229:0.06667 230:0.06667 231:0.06667 232:0.06667 233:0.06667 234:0.06667 235:0.06667 236:0.06667 237:0.08333 238:0.08333 239:0.08333 240:0.08333 241:0.08333 242:0.08333 243:0.08333 244:0.08333 245:0.1 246:0.1 247:0.1 248:0.1 249:0.1167 250:0.1167 251:0.1167 252:0.1333 253:0.1333 254:0.1333 255:0.15 256:0.15 257:0.1667 258:0.1833 259:0.2 260:0.2167 261:0.2333 262:0.2667 263:0.3 264:0.3333 265:0.4 266:0.5833 267:0.5833 268:0.7833 269:1 270:1 271:1 272:1 273:1 274:1 275:0.8333 276:0.6667 277:0.55 278:0.5333 279:0.4167 280:0.3667 281:0.3333 282:0.3 283:0.2833 284:0.25 285:0.2333 286:0.2167 287:0.2 288:0.2 289:0.1833 290:0.1833 291:0.1667 292:0.1667 293:0.15 294:0.15 295:0.15 296:0.1333 297:0.1333 298:0.1333 299:0.1167 300:0.1167 301:0.1167 302:0.1167 303:0.1167 304:0.1167 305:0.1 306:0.1 307:0.1 308:0.1 309:0.1 310:0.1 311:0.1 312:0.1 313:0.08333 314:0.08333 315:0.08333 316:0.08333 317:0.08333 318:0.08333 319:0.08333 320:0.08333 321:0.08333 322:0.08333 323:0.08333 324:0.08333 325:0.08333 326:0.08333 327:0.08333 328:0.08333 329:0.08333 330:0.08333 331:0.08333 332:0.08333 333:0.08333 334:0.08333 335:0.08333 336:0.08333 337:0.08333 338:0.08333 339:0.08333 340:0.08333 341:0.08333 342:0.08333 343:0.08333 344:0.08333 345:0.08333 346:0.08333 347:0.08333 348:0.08333 349:0.08333 350:0.08333 351:0.08333 352:0.08333 353:0.08333 354:0.08333 355:0.08333 356:0.08333 357:0.08333 358:0.08333 359:0.08333 360:0.08333 +-2 1:0.4833 2:0.4833 3:0.4833 4:0.4833 5:0.4833 6:0.5 7:0.5 8:0.5 9:0.5 10:0.55 11:1 12:1 13:1 14:1 15:1 16:1 17:1 18:1 19:1 20:1 21:1 22:0.8167 23:0.6833 24:0.6667 25:0.6667 26:0.6667 27:0.6667 28:0.6667 29:0.6667 30:0.6667 31:0.6667 32:0.6667 33:1 34:1 35:1 36:1 37:1 38:0.9833 39:0.8 40:0.55 41:0.5333 42:0.5333 43:0.2667 44:0.2667 45:0.25 46:0.25 47:0.25 48:0.2667 49:0.25 50:0.25 51:0.25 52:0.25 53:0.25 54:0.25 55:0.25 56:0.25 57:0.25 58:0.2333 59:0.2333 60:0.2333 61:0.2333 62:0.2333 63:0.2333 64:0.2333 65:0.2333 66:0.2333 67:0.2333 68:0.2333 69:0.2333 70:0.2333 71:0.2333 72:0.2333 73:0.2333 74:0.2333 75:0.2333 76:0.2333 77:0.2333 78:0.2333 79:0.2333 80:0.2333 81:0.2333 82:0.35 83:0.35 84:0.35 85:0.35 86:0.35 87:0.35 88:0.35 89:0.35 90:0.35 91:0.35 92:0.35 93:0.2833 94:0.2833 95:0.2833 96:0.2833 97:0.2833 98:0.2833 99:0.2833 100:0.2833 101:0.2833 102:0.2833 103:0.2833 104:0.2833 105:0.2833 106:0.2833 107:0.2833 108:0.2833 109:0.3 110:0.3 111:0.3333 112:0.4667 113:0.4667 114:0.4833 115:0.4833 116:0.6167 117:0.6167 118:0.6167 119:0.7333 120:0.9167 121:1 122:1 123:1 124:1 125:1 126:1 127:1 128:1 129:0.8833 130:0.7667 131:0.7667 132:0.7667 133:0.6 134:0.6 135:0.55 136:0.5167 137:0.3833 138:0.3667 139:0.3667 140:0.2833 141:0.2833 142:0.24557895 143:0.22810526 144:0.22810526 145:0.24557895 146:0.24557895 147:0.22810526 148:0.24557895 149:0.24557895 150:0.22810526 151:0.22810526 152:0.24557895 153:0.22810526 154:0.22810526 155:0.24557895 156:0.22810526 157:0.21431862 158:0.2321044 159:0.2321044 160:0.26789024 161:0.2321044 162:0.2321044 163:0.21431862 164:0.21431862 165:0.21431862 166:0.21431862 167:0.21431862 168:0.21431862 169:0.21431862 170:0.21431862 171:0.21431862 172:0.21431862 173:0.21431862 174:0.21431862 175:0.21431862 176:0.21431862 177:0.21431862 178:0.21431862 179:0.12496116 180:0.12496116 181:0.12496116 182:0.12496116 183:0.12496116 184:0.12496116 185:0.12496116 186:0.12496116 187:0.12496116 188:0.12496116 189:0.12496116 190:0.12496116 191:0.12496116 192:0.12496116 193:0.12496116 194:0.12496116 195:0.12496116 196:0.12496116 197:0.12496116 198:0.12496116 199:0.12496116 200:0.12496116 201:0.12496116 202:0.12496116 203:0.12496116 204:0.12496116 205:0.12496116 206:0.12496116 207:0.12496116 208:0.21431862 209:0.21431862 210:0.2321044 211:0.21431862 212:0.21431862 213:0.2321044 214:0.2321044 215:0.21431862 216:0.2321044 217:0.2321044 218:0.21431862 219:0.21431862 220:0.2321044 221:0.2833 222:0.2833 223:0.2833 224:0.2833 225:0.3 226:0.3 227:0.3 228:0.25 229:0.25 230:0.2333 231:0.2333 232:0.2333 233:0.2333 234:0.2333 235:0.2333 236:0.2333 237:0.2333 238:0.2333 239:0.2333 240:0.2333 241:0.2333 242:0.2333 243:0.2333 244:0.2333 245:0.2333 246:0.2333 247:0.2333 248:0.2333 249:0.35 250:0.35 251:0.35 252:0.35 253:0.35 254:0.3667 255:0.35 256:0.35 257:0.6 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:0.9833 282:0.9833 283:0.85 284:0.85 285:0.3667 286:0.35 287:0.35 288:0.3667 289:0.35 290:0.3667 291:0.35 292:0.35 293:0.3667 294:0.35 295:0.35 296:0.3333 297:0.3333 298:0.3333 299:0.3333 300:0.3333 301:0.3333 302:0.3333 303:0.3333 304:0.3167 305:0.25 306:0.25 307:0.25 308:0.2333 309:0.2333 310:0.25 311:0.25 312:0.2333 313:0.25 314:0.25 315:0.25 316:0.2333 317:0.25 318:0.25 319:0.25 320:0.2333 321:0.25 322:0.1833 323:0.1833 324:0.1833 325:0.1833 326:0.1833 327:0.1833 328:0.1833 329:0.1833 330:0.1833 331:0.1667 332:0.1667 333:0.1833 334:0.1833 335:0.1833 336:0.1833 337:0.1833 338:0.1833 339:0.1833 340:0.1833 341:0.1833 342:0.1833 343:0.1833 344:0.1833 345:0.1833 346:0.1833 347:0.1833 348:0.1833 349:0.1833 350:0.1833 351:0.1833 352:0.1667 353:0.1667 354:0.2 355:0.4833 356:0.4833 357:0.4833 358:0.4833 359:0.4833 360:0.4833 +-0.6980622909351277 1:0.2833 2:0.2833 3:0.2833 4:0.2833 5:0.2833 6:0.2833 7:0.2833 8:0.2833 9:0.2833 10:0.2833 11:0.2833 12:0.2833 13:0.2833 14:0.2833 15:0.2833 16:0.15 17:0.15 18:0.1333 19:0.1333 20:0.1333 21:0.1333 22:0.1333 23:0.1333 24:0.1333 25:0.1333 26:0.1333 27:0.1333 28:0.1333 29:0.1333 30:0.1333 31:0.1333 32:0.1333 33:0.1333 34:0.1333 35:0.1333 36:0.1333 37:0.1333 38:0.1333 39:0.1333 40:0.1333 41:0.1333 42:0.1333 43:0.1333 44:0.1333 45:0.1333 46:0.1333 47:0.1333 48:0.1333 49:0.1333 50:0.1333 51:0.1333 52:0.1333 53:0.1333 54:0.1333 55:0.1333 56:0.1333 57:0.1333 58:0.1333 59:0.2333 60:0.2333 61:0.2333 62:0.2333 63:0.2333 64:0.2333 65:0.25 66:0.25 67:0.25 68:0.25 69:0.2333 70:0.25 71:0.25 72:0.2333 73:0.2333 74:0.25 75:0.3333 76:0.3333 77:0.3333 78:0.3333 79:0.3333 80:0.3333 81:0.3333 82:0.3833 83:0.3833 84:0.3833 85:0.3833 86:0.3833 87:0.3833 88:0.4 89:0.4 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:0.7667 100:0.7667 101:0.7667 102:0.75 103:0.6 104:0.5833 105:0.5833 106:0.5833 107:0.5833 108:0.4167 109:0.4 110:0.4 111:0.4 112:0.4 113:0.4 114:0.4 115:0.4 116:0.4 117:0.4 118:0.2333 119:0.2333 120:0.2333 121:0.2333 122:0.2333 123:0.2333 124:0.2333 125:0.2333 126:0.2333 127:0.2333 128:0.2333 129:0.2333 130:0.2333 131:0.2333 132:0.2333 133:0.2333 134:0.2333 135:0.2333 136:0.2333 137:0.2333 138:0.2333 139:0.2333 140:0.2667 141:0.3333 142:0.29821053 143:0.29821053 144:0.15789474 145:0.15789474 146:0.15789474 147:0.15789474 148:0.15789474 149:0.15789474 150:0.15789474 151:0.15789474 152:0.15789474 153:0.15789474 154:0.15789474 155:0.15789474 156:0.10526316 157:0.089282462 158:0.089282462 159:0.089282462 160:0.071389541 161:0.071389541 162:0.071389541 163:0.071389541 164:0.071389541 165:0.071389541 166:0.071389541 167:0.071389541 168:0.071389541 169:0.035710842 170:0.035710842 171:0.035710842 172:0.035710842 173:0.035710842 174:0.035710842 175:0.035710842 176:0.035710842 177:0.035710842 178:0.035710842 179:0.035710842 180:0.035710842 181:0.035710842 182:0.035710842 183:0.035710842 184:0.035710842 185:0.035710842 186:0.035710842 187:0.035710842 188:0.035710842 189:0.035710842 190:0.035710842 191:0.035710842 192:0.035710842 193:0.035710842 194:0.035710842 195:0.035710842 196:0.035710842 197:0.035710842 198:0.035710842 199:0.035710842 200:0.035710842 201:0.035710842 202:0.035710842 203:0.035710842 204:0.035710842 205:0.035710842 206:0.035710842 207:0.035710842 208:0.035710842 209:0.035710842 210:0.035710842 211:0.035710842 212:0.035710842 213:0.035710842 214:0.035710842 215:0.035710842 216:0.035710842 217:0.035710842 218:0.12496116 219:0.12496116 220:0.12496116 221:0.1833 222:0.1833 223:0.1833 224:0.1833 225:0.1833 226:0.1833 227:0.1833 228:0.1833 229:0.2 230:0.2 231:0.2 232:0.2167 233:0.2 234:0.2 235:0.2 236:0.2 237:0.2 238:0.2 239:0.2 240:0.2 241:0.2167 242:0.2167 243:0.2 244:0.2 245:0.2833 246:0.2833 247:0.3 248:0.2833 249:0.2833 250:0.3 251:0.2833 252:0.2833 253:0.2833 254:0.2833 255:0.2833 256:0.2833 257:0.3 258:0.55 259:0.55 260:0.55 261:0.55 262:0.55 263:0.55 264:0.75 265:0.7333 266:0.9 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:0.8167 280:0.7333 281:0.7333 282:0.5667 283:0.4333 284:0.4167 285:0.4167 286:0.4167 287:0.3833 288:0.3667 289:0.3667 290:0.2833 291:0.2667 292:0.2667 293:0.2667 294:0.2667 295:0.2667 296:0.2667 297:0.2667 298:0.2667 299:0.2667 300:0.2667 301:0.2667 302:0.2667 303:0.2667 304:0.2667 305:0.2667 306:0.2667 307:0.2667 308:0.2667 309:0.1167 310:0.1167 311:0.1167 312:0.1167 313:0.1167 314:0.1167 315:0.1167 316:0.1167 317:0.1167 318:0.1167 319:0.1167 320:0.1167 321:0.1167 322:0.1167 323:0.1167 324:0.1167 325:0.1167 326:0.1167 327:0.1167 328:0.1167 329:0.1167 330:0.1167 331:0.1167 332:0.1167 333:0.1167 334:0.1167 335:0.1167 336:0.1167 337:0.1167 338:0.1167 339:0.1167 340:0.1167 341:0.1167 342:0.1167 343:0.1167 344:0.1167 345:0.1167 346:0.1167 347:0.1167 348:0.1167 349:0.1167 350:0.3 351:0.2833 352:0.2833 353:0.2833 354:0.2833 355:0.2833 356:0.2833 357:0.2833 358:0.2833 359:0.2833 360:0.2833 +-2 1:0.15 2:0.15 3:0.15 4:0.15 5:0.15 6:0.15 7:0.15 8:0.15 9:0.15 10:0.15 11:0.15 12:0.15 13:0.15 14:0.15 15:0.15 16:0.2167 17:0.2 18:0.2 19:0.2 20:0.2 21:0.2 22:0.2 23:0.2 24:0.2 25:0.2167 26:0.2167 27:0.2 28:0.2 29:0.2 30:0.1833 31:0.1833 32:0.1833 33:0.1833 34:0.1833 35:0.1833 36:0.1833 37:0.1833 38:0.1833 39:0.1833 40:0.1833 41:0.1833 42:0.1833 43:0.1833 44:0.1833 45:0.1833 46:0.1833 47:0.1833 48:0.1833 49:0.1833 50:0.1833 51:0.1833 52:0.1833 53:0.1833 54:0.1833 55:0.1833 56:0.1833 57:0.25 58:0.25 59:0.25 60:0.25 61:0.25 62:0.25 63:0.2667 64:0.2667 65:0.25 66:0.25 67:0.3167 68:0.3167 69:0.3167 70:0.3167 71:0.3167 72:0.3167 73:0.3167 74:0.3167 75:0.3167 76:0.3167 77:0.3167 78:0.3167 79:0.3167 80:0.3167 81:0.3333 82:0.3333 83:0.3167 84:0.9667 85:0.9667 86:0.9667 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:0.7 97:0.7 98:0.65 99:0.65 100:0.4833 101:0.4833 102:0.4833 103:0.4833 104:0.4833 105:0.4833 106:0.2833 107:0.2833 108:0.2833 109:0.2833 110:0.2833 111:0.2833 112:0.3 113:0.2833 114:0.2833 115:0.3 116:0.2833 117:0.2833 118:0.3 119:0.2833 120:0.2833 121:0.2833 122:0.3 123:0.3 124:0.1333 125:0.1333 126:0.1333 127:0.1333 128:0.1333 129:0.1333 130:0.1333 131:0.1333 132:0.1333 133:0.1333 134:0.1333 135:0.1333 136:0.1333 137:0.1333 138:0.1333 139:0.1333 140:0.1333 141:0.1333 142:0.087684211 143:0.087684211 144:0.087684211 145:0.087684211 146:0.087684211 147:0.087684211 148:0.087684211 149:0.087684211 150:0.087684211 151:0.087684211 152:0.087684211 153:0.087684211 154:0.087684211 155:0.087684211 156:0.087684211 157:0.089282462 158:0.089282462 159:0.089282462 160:0.089282462 161:0.089282462 162:0.089282462 163:0.089282462 164:0.089282462 165:0.089282462 166:0.089282462 167:0.089282462 168:0.089282462 169:0.089282462 170:0.089282462 171:0.089282462 172:0.089282462 173:0.089282462 174:0.089282462 175:0.089282462 176:0.089282462 177:0.089282462 178:0.089282462 179:0.089282462 180:0.089282462 181:0.089282462 182:0.089282462 183:0.089282462 184:0.51785542 185:0.51785542 186:0.51785542 187:0.51785542 188:0.51785542 189:0.51785542 190:0.51785542 191:0.51785542 192:0.160747 193:0.14285408 194:0.14285408 195:0.14285408 196:0.14285408 197:0.14285408 198:0.14285408 199:0.14285408 200:0.14285408 201:0.053603763 202:0.053603763 203:0.053603763 204:0.053603763 205:0.071389541 206:0.071389541 207:0.071389541 208:0.053603763 209:0.053603763 210:0.053603763 211:0.071389541 212:0.071389541 213:0.071389541 214:0.071389541 215:0.071389541 216:0.053603763 217:0.071389541 218:0.071389541 219:0.071389541 220:0.071389541 221:0.1333 222:0.1333 223:0.1167 224:0.1167 225:0.1333 226:0.1333 227:0.1333 228:0.1333 229:0.1167 230:0.1167 231:0.1167 232:0.1167 233:0.1167 234:0.1333 235:0.1333 236:0.1333 237:0.1333 238:0.1333 239:0.1333 240:0.1333 241:0.1333 242:0.25 243:0.25 244:0.1333 245:0.1333 246:0.1333 247:0.1333 248:0.1333 249:0.1333 250:0.1333 251:0.1333 252:0.1333 253:0.1333 254:0.1333 255:0.2667 256:0.2833 257:0.2833 258:0.2833 259:0.2833 260:0.3833 261:0.3833 262:0.3667 263:0.3833 264:0.3667 265:0.4 266:0.6333 267:0.6333 268:0.6333 269:0.6333 270:0.6333 271:0.6333 272:0.6333 273:0.6333 274:0.6667 275:0.7333 276:1 277:1 278:1 279:1 280:0.9167 281:0.85 282:0.8333 283:0.6833 284:0.6333 285:0.6333 286:0.55 287:0.5333 288:0.5333 289:0.5333 290:0.3833 291:0.3833 292:0.3833 293:0.3833 294:0.3833 295:0.3833 296:0.3833 297:0.3833 298:0.3833 299:0.3833 300:0.2167 301:0.2167 302:0.2167 303:0.2167 304:0.2167 305:0.2167 306:0.2167 307:0.2167 308:0.2167 309:0.2167 310:0.2167 311:0.2167 312:0.2167 313:0.2167 314:0.2167 315:0.2167 316:0.2167 317:0.2167 318:0.2167 319:0.2167 320:0.2167 321:0.2167 322:0.2333 323:0.2333 324:0.2333 325:0.3667 326:0.3667 327:0.3667 328:0.3667 329:0.3667 330:0.3667 331:0.3667 332:0.3667 333:0.3667 334:0.3667 335:0.3333 336:0.3333 337:0.3333 338:0.3333 339:0.3333 340:0.3333 341:0.3333 342:0.15 343:0.15 344:0.15 345:0.15 346:0.15 347:0.15 348:0.15 349:0.15 350:0.15 351:0.15 352:0.15 353:0.15 354:0.15 355:0.15 356:0.15 357:0.15 358:0.15 359:0.15 360:0.15 +-2 1:0.15 2:0.15 3:0.15 4:0.3167 5:0.3167 6:0.3167 7:0.3167 8:0.2 9:0.2 10:0.2 11:0.2167 12:0.2167 13:0.2 14:0.2167 15:0.2167 16:0.2167 17:0.2167 18:0.2167 19:0.1833 20:0.1833 21:0.1667 22:0.1667 23:0.1833 24:0.1833 25:0.1833 26:0.1667 27:0.1667 28:0.1667 29:0.1667 30:0.1667 31:0.1667 32:0.1667 33:0.1667 34:0.1667 35:0.1667 36:0.1833 37:0.1833 38:0.1667 39:0.1667 40:0.1667 41:0.1667 42:0.1667 43:0.1667 44:0.1667 45:0.1667 46:0.1833 47:0.1667 48:0.1667 49:0.1667 50:0.1667 51:0.1667 52:0.2333 53:0.2333 54:0.2333 55:0.2333 56:0.2333 57:0.2333 58:0.2333 59:0.2333 60:0.2333 61:0.2333 62:0.2333 63:0.2333 64:0.2333 65:0.3 66:0.3 67:0.3 68:0.3 69:0.3 70:0.3 71:0.3 72:0.3 73:0.3 74:0.3 75:0.3 76:0.3 77:0.3 78:0.3 79:0.3 80:0.3 81:0.3167 82:0.3167 83:0.3 84:0.95 85:0.95 86:0.95 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:0.6667 97:0.6667 98:0.6167 99:0.6167 100:0.4667 101:0.4667 102:0.4667 103:0.45 104:0.45 105:0.45 106:0.45 107:0.2667 108:0.25 109:0.25 110:0.2667 111:0.2667 112:0.25 113:0.2667 114:0.2667 115:0.25 116:0.25 117:0.2667 118:0.2667 119:0.25 120:0.2667 121:0.2667 122:0.25 123:0.25 124:0.25 125:0.2667 126:0.2667 127:0.2667 128:0.65 129:0.1167 130:0.1167 131:0.1167 132:0.1167 133:0.1167 134:0.1167 135:0.1167 136:0.1167 137:0.1167 138:0.1167 139:0.1167 140:0.1167 141:0.1167 142:0.070210526 143:0.070210526 144:0.070210526 145:0.070210526 146:0.070210526 147:0.070210526 148:0.070210526 149:0.070210526 150:0.070210526 151:0.070210526 152:0.070210526 153:0.070210526 154:0.070210526 155:0.070210526 156:0.070210526 157:0.053603763 158:0.053603763 159:0.053603763 160:0.053603763 161:0.053603763 162:0.053603763 163:0.053603763 164:0.053603763 165:0.053603763 166:0.053603763 167:0.053603763 168:0.053603763 169:0.053603763 170:0.071389541 171:0.089282462 172:0.089282462 173:0.089282462 174:0.089282462 175:0.089282462 176:0.089282462 177:0.089282462 178:0.089282462 179:0.089282462 180:0.089282462 181:0.089282462 182:0.089282462 183:0.089282462 184:0.089282462 185:0.089282462 186:0.089282462 187:0.089282462 188:0.089282462 189:0.089282462 190:0.51785542 191:0.51785542 192:0.51785542 193:0.51785542 194:0.51785542 195:0.53574834 196:0.53574834 197:0.53574834 198:0.53574834 199:0.53574834 200:0.53574834 201:0.160747 202:0.160747 203:0.160747 204:0.160747 205:0.160747 206:0.071389541 207:0.071389541 208:0.071389541 209:0.071389541 210:0.071389541 211:0.071389541 212:0.071389541 213:0.071389541 214:0.071389541 215:0.071389541 216:0.071389541 217:0.071389541 218:0.071389541 219:0.071389541 220:0.071389541 221:0.1333 222:0.1333 223:0.1333 224:0.1333 225:0.1333 226:0.1333 227:0.1333 228:0.1333 229:0.1333 230:0.1333 231:0.1333 232:0.1333 233:0.1333 234:0.1333 235:0.1333 236:0.1333 237:0.1333 238:0.1333 239:0.1333 240:0.1333 241:0.1333 242:0.1333 243:0.1333 244:0.1333 245:0.1333 246:0.1333 247:0.15 248:0.15 249:0.15 250:0.15 251:0.15 252:0.15 253:0.15 254:0.15 255:0.15 256:0.15 257:0.1667 258:0.3 259:0.3 260:0.3 261:0.4 262:0.4 263:0.4 264:0.4 265:0.4 266:0.4 267:0.4 268:0.65 269:0.65 270:0.65 271:0.65 272:0.6667 273:0.6667 274:0.7167 275:0.7167 276:1 277:1 278:1 279:1 280:0.95 281:0.8833 282:0.8667 283:0.6833 284:0.6333 285:0.5833 286:0.5667 287:0.5667 288:0.4167 289:0.4 290:0.4 291:0.4 292:0.4 293:0.4 294:0.4 295:0.4 296:0.4 297:0.4 298:0.4 299:0.2667 300:0.25 301:0.25 302:0.25 303:0.2333 304:0.25 305:0.25 306:0.25 307:0.2333 308:0.25 309:0.25 310:0.25 311:0.25 312:0.25 313:0.25 314:0.25 315:0.25 316:0.25 317:0.25 318:0.2333 319:0.2333 320:0.4 321:0.4 322:0.4 323:0.4 324:0.4 325:0.4 326:0.4 327:0.3667 328:0.35 329:0.35 330:0.15 331:0.15 332:0.15 333:0.15 334:0.15 335:0.15 336:0.15 337:0.15 338:0.15 339:0.15 340:0.15 341:0.15 342:0.15 343:0.15 344:0.15 345:0.15 346:0.15 347:0.15 348:0.15 349:0.15 350:0.15 351:0.15 352:0.15 353:0.15 354:0.15 355:0.15 356:0.15 357:0.15 358:0.15 359:0.15 360:0.15 +-0.3333908625310683 1:0.3 2:0.3 3:0.3 4:0.1833 5:0.1833 6:0.1833 7:0.1833 8:0.1833 9:0.1833 10:0.1833 11:0.1833 12:0.1833 13:0.1833 14:0.1833 15:0.1667 16:0.15 17:0.15 18:0.1333 19:0.1333 20:0.1333 21:0.1333 22:0.1333 23:0.1333 24:0.1333 25:0.1333 26:0.1333 27:0.1333 28:0.1333 29:0.15 30:0.15 31:0.1333 32:0.1333 33:0.1333 34:0.1333 35:0.15 36:0.15 37:0.15 38:0.1333 39:0.1333 40:0.1333 41:0.1333 42:0.15 43:0.1333 44:0.1333 45:0.1333 46:0.1333 47:0.1333 48:0.1333 49:0.1333 50:0.15 51:0.15 52:0.2167 53:0.2 54:0.2 55:0.2 56:0.2 57:0.2 58:0.2 59:0.2 60:0.2 61:0.2167 62:0.2167 63:0.2 64:0.2 65:0.2667 66:0.2667 67:0.2667 68:0.2667 69:0.2667 70:0.2667 71:0.2667 72:0.2667 73:0.2833 74:0.2667 75:0.2667 76:0.2833 77:0.2833 78:0.2667 79:0.2667 80:0.2833 81:0.2667 82:0.2667 83:0.2667 84:0.2667 85:0.2667 86:0.9167 87:0.9167 88:0.9833 89:0.9833 90:1 91:1 92:1 93:0.9667 94:0.95 95:0.95 96:0.95 97:0.95 98:0.65 99:0.65 100:0.6 101:0.6 102:0.6 103:0.4333 104:0.4333 105:0.4333 106:0.4333 107:0.4333 108:0.4333 109:0.4333 110:0.4333 111:0.4333 112:0.25 113:0.25 114:0.25 115:0.25 116:0.25 117:0.25 118:0.25 119:0.25 120:0.25 121:0.25 122:0.25 123:0.25 124:0.25 125:0.25 126:0.25 127:0.25 128:0.25 129:0.25 130:0.25 131:0.25 132:0.6333 133:0.5333 134:0.5333 135:0.5167 136:0.5167 137:0.5167 138:0.5167 139:0.5167 140:0.5167 141:0.5167 142:0.49126316 143:0.070210526 144:0.070210526 145:0.070210526 146:0.070210526 147:0.070210526 148:0.070210526 149:0.070210526 150:0.070210526 151:0.070210526 152:0.070210526 153:0.070210526 154:0.070210526 155:0.070210526 156:0.070210526 157:0.053603763 158:0.053603763 159:0.053603763 160:0.053603763 161:0.053603763 162:0.053603763 163:0.053603763 164:0.053603763 165:0.053603763 166:0.053603763 167:0.053603763 168:0.053603763 169:0.053603763 170:0.053603763 171:0.053603763 172:0.053603763 173:0.053603763 174:0.053603763 175:0.053603763 176:0.053603763 177:0.053603763 178:0.053603763 179:0.053603763 180:0.053603763 181:0.053603763 182:0.053603763 183:0.053603763 184:0.053603763 185:0.10717538 186:0.10717538 187:0.10717538 188:0.10717538 189:0.10717538 190:0.10717538 191:0.10717538 192:0.10717538 193:0.10717538 194:0.10717538 195:0.10717538 196:0.10717538 197:0.10717538 198:0.10717538 199:0.10717538 200:0.53574834 201:0.51785542 202:0.51785542 203:0.51785542 204:0.51785542 205:0.51785542 206:0.51785542 207:0.51785542 208:0.1964257 209:0.1964257 210:0.1964257 211:0.1964257 212:0.1964257 213:0.10717538 214:0.10717538 215:0.10717538 216:0.10717538 217:0.10717538 218:0.10717538 219:0.10717538 220:0.10717538 221:0.1667 222:0.1667 223:0.1667 224:0.1667 225:0.1667 226:0.1667 227:0.1667 228:0.1667 229:0.1667 230:0.1667 231:0.1667 232:0.1667 233:0.1667 234:0.1667 235:0.1667 236:0.1667 237:0.1667 238:0.1667 239:0.1667 240:0.1667 241:0.1667 242:0.1667 243:0.1667 244:0.1667 245:0.1667 246:0.3167 247:0.3167 248:0.3167 249:0.3167 250:0.3167 251:0.3167 252:0.3167 253:0.3167 254:0.3333 255:0.3333 256:0.3333 257:0.3333 258:0.3333 259:0.4333 260:0.4333 261:0.4333 262:0.45 263:0.45 264:0.5 265:0.6833 266:0.6833 267:0.7333 268:0.7167 269:0.7167 270:0.7167 271:0.7167 272:0.7167 273:0.7167 274:0.7167 275:1 276:1 277:1 278:1 279:0.9 280:0.9 281:0.7167 282:0.65 283:0.6167 284:0.5667 285:0.5833 286:0.4167 287:0.4333 288:0.4167 289:0.4167 290:0.4167 291:0.4167 292:0.4167 293:0.4167 294:0.4167 295:0.2667 296:0.25 297:0.25 298:0.2667 299:0.2667 300:0.25 301:0.2667 302:0.2667 303:0.2667 304:0.2667 305:0.2667 306:0.2667 307:0.25 308:0.2667 309:0.2667 310:0.25 311:0.25 312:0.2667 313:0.2667 314:0.2667 315:0.2667 316:0.4333 317:0.3833 318:0.15 319:0.15 320:0.15 321:0.15 322:0.15 323:0.15 324:0.15 325:0.15 326:0.1333 327:0.1333 328:0.1333 329:0.1333 330:0.1333 331:0.1333 332:0.1333 333:0.15 334:0.15 335:0.1333 336:0.1333 337:0.1333 338:0.1333 339:0.15 340:0.15 341:0.15 342:0.1333 343:0.1333 344:0.1333 345:0.15 346:0.15 347:0.15 348:0.1333 349:0.1333 350:0.1333 351:0.1333 352:0.1333 353:0.1333 354:0.1333 355:0.1333 356:0.1333 357:0.1333 358:0.3 359:0.3 360:0.3 +-1.281383192868089 1:0.1833 2:0.1833 3:0.1833 4:0.15 5:0.1333 6:0.1333 7:0.1333 8:0.1333 9:0.1333 10:0.1333 11:0.1333 12:0.1333 13:0.1333 14:0.1333 15:0.1333 16:0.1333 17:0.1333 18:0.1333 19:0.1333 20:0.1333 21:0.1333 22:0.1333 23:0.1333 24:0.1333 25:0.1333 26:0.1333 27:0.1333 28:0.1333 29:0.1333 30:0.1333 31:0.1333 32:0.1333 33:0.1333 34:0.1333 35:0.1333 36:0.1333 37:0.1333 38:0.1333 39:0.1333 40:0.1333 41:0.1333 42:0.1333 43:0.1833 44:0.1833 45:0.1833 46:0.1833 47:0.1833 48:0.1833 49:0.1833 50:0.1833 51:0.1833 52:0.1833 53:0.1833 54:0.1833 55:0.1833 56:0.1833 57:0.1833 58:0.1833 59:0.1833 60:0.1833 61:0.1833 62:0.25 63:0.25 64:0.25 65:0.25 66:0.25 67:0.25 68:0.25 69:0.25 70:0.25 71:0.25 72:0.25 73:0.25 74:0.25 75:0.25 76:0.25 77:0.25 78:0.25 79:0.25 80:0.25 81:0.25 82:0.2667 83:0.25 84:0.25 85:0.25 86:0.8833 87:0.9 88:0.95 89:0.9667 90:0.9667 91:1 92:1 93:1 94:0.9167 95:0.9167 96:0.9167 97:0.9167 98:0.6333 99:0.6333 100:0.6167 101:0.6167 102:0.5667 103:0.5667 104:0.4 105:0.4 106:0.4 107:0.4 108:0.4 109:0.4 110:0.4 111:0.4 112:0.4 113:0.4 114:0.4 115:0.2167 116:0.2167 117:0.2167 118:0.2167 119:0.2333 120:0.2167 121:0.2167 122:0.2333 123:0.2333 124:0.2167 125:0.2167 126:0.2333 127:0.2333 128:0.2167 129:0.2167 130:0.2167 131:0.2333 132:0.2167 133:0.2167 134:0.2167 135:0.2333 136:0.2333 137:0.2333 138:0.5167 139:0.5167 140:0.5167 141:0.5167 142:0.49126316 143:0.49126316 144:0.49126316 145:0.49126316 146:0.49126316 147:0.49126316 148:0.64915789 149:0.64915789 150:0.070210526 151:0.070210526 152:0.070210526 153:0.070210526 154:0.070210526 155:0.070210526 156:0.070210526 157:0.053603763 158:0.053603763 159:0.053603763 160:0.053603763 161:0.053603763 162:0.053603763 163:0.053603763 164:0.053603763 165:0.053603763 166:0.053603763 167:0.053603763 168:0.053603763 169:0.053603763 170:0.053603763 171:0.053603763 172:0.053603763 173:0.053603763 174:0.053603763 175:0.053603763 176:0.053603763 177:0.053603763 178:0.053603763 179:0.053603763 180:0.053603763 181:0.053603763 182:0.053603763 183:0.053603763 184:0.053603763 185:0.053603763 186:0.053603763 187:0.053603763 188:0.053603763 189:0.053603763 190:0.053603763 191:0.053603763 192:0.10717538 193:0.10717538 194:0.53574834 195:0.55353412 196:0.55353412 197:0.55353412 198:0.55353412 199:0.55353412 200:0.55353412 201:0.55353412 202:0.55353412 203:0.53574834 204:0.53574834 205:0.53574834 206:0.53574834 207:0.53574834 208:0.53574834 209:0.53574834 210:0.53574834 211:0.53574834 212:0.53574834 213:0.21431862 214:0.21431862 215:0.1964257 216:0.1964257 217:0.1964257 218:0.1964257 219:0.1964257 220:0.1964257 221:0.25 222:0.2 223:0.1833 224:0.1833 225:0.1833 226:0.1833 227:0.1833 228:0.1833 229:0.1833 230:0.1833 231:0.1833 232:0.1833 233:0.1833 234:0.1833 235:0.1833 236:0.1833 237:0.1833 238:0.1833 239:0.1833 240:0.1833 241:0.1833 242:0.1833 243:0.1833 244:0.1833 245:0.1833 246:0.1833 247:0.1833 248:0.1833 249:0.35 250:0.3333 251:0.35 252:0.3333 253:0.35 254:0.35 255:0.3333 256:0.35 257:0.35 258:0.35 259:0.35 260:0.4667 261:0.45 262:0.4667 263:0.45 264:0.45 265:0.45 266:0.4667 267:0.7167 268:0.7167 269:0.7167 270:0.7167 271:0.7167 272:0.7167 273:0.7333 274:0.7333 275:1 276:1 277:1 278:1 279:1 280:0.9167 281:0.75 282:0.65 283:0.6 284:0.5833 285:0.45 286:0.4333 287:0.45 288:0.4333 289:0.45 290:0.4333 291:0.45 292:0.3 293:0.2833 294:0.2833 295:0.2667 296:0.2667 297:0.2833 298:0.2667 299:0.2667 300:0.2833 301:0.2833 302:0.2667 303:0.2833 304:0.2833 305:0.2667 306:0.2833 307:0.2833 308:0.2667 309:0.2667 310:0.3 311:0.4333 312:0.4167 313:0.4167 314:0.4 315:0.4 316:0.1667 317:0.15 318:0.15 319:0.15 320:0.15 321:0.15 322:0.15 323:0.15 324:0.15 325:0.15 326:0.15 327:0.15 328:0.15 329:0.1667 330:0.15 331:0.15 332:0.15 333:0.15 334:0.15 335:0.15 336:0.15 337:0.15 338:0.15 339:0.15 340:0.15 341:0.15 342:0.15 343:0.15 344:0.15 345:0.15 346:0.15 347:0.1667 348:0.3 349:0.3 350:0.3 351:0.3 352:0.3 353:0.3 354:0.3 355:0.3 356:0.3 357:0.3 358:0.3 359:0.1833 360:0.1833 +-0.008592076477101866 1:0.1167 2:0.1167 3:0.1167 4:0.1167 5:0.1167 6:0.1167 7:0.1167 8:0.1167 9:0.1167 10:0.1167 11:0.1167 12:0.1167 13:0.1167 14:0.1167 15:0.1167 16:0.1167 17:0.1167 18:0.1167 19:0.1167 20:0.1167 21:0.1167 22:0.1167 23:0.1167 24:0.1167 25:0.1167 26:0.1167 27:0.1167 28:0.1167 29:0.1167 30:0.1167 31:0.1167 32:0.1167 33:0.1167 34:0.1167 35:0.1167 36:0.1167 37:0.1167 38:0.1167 39:0.1167 40:0.1667 41:0.1667 42:0.1667 43:0.1667 44:0.1667 45:0.1667 46:0.1667 47:0.1667 48:0.1667 49:0.1667 50:0.1667 51:0.1667 52:0.1667 53:0.1667 54:0.1667 55:0.1667 56:0.1667 57:0.1667 58:0.1667 59:0.1667 60:0.2333 61:0.2167 62:0.2167 63:0.2333 64:0.2167 65:0.2167 66:0.2167 67:0.2167 68:0.2333 69:0.2333 70:0.2333 71:0.2333 72:0.2333 73:0.2333 74:0.2333 75:0.2333 76:0.2333 77:0.2333 78:0.2333 79:0.2333 80:0.2333 81:0.2333 82:0.2333 83:0.2333 84:0.2333 85:0.2333 86:0.8667 87:0.8667 88:0.9333 89:0.9333 90:1 91:1 92:1 93:0.8667 94:0.8667 95:0.8667 96:0.8667 97:0.8667 98:0.8667 99:0.6 100:0.5833 101:0.5833 102:0.5667 103:0.5667 104:0.5667 105:0.3833 106:0.3833 107:0.3833 108:0.3833 109:0.3833 110:0.3833 111:0.3833 112:0.3833 113:0.3833 114:0.3833 115:0.3833 116:0.3833 117:0.4 118:0.2 119:0.2 120:0.2167 121:0.2167 122:0.2 123:0.2167 124:0.2167 125:0.2167 126:0.2167 127:0.2 128:0.2167 129:0.2167 130:0.2167 131:0.2 132:0.2167 133:0.2167 134:0.2167 135:0.2 136:0.2 137:0.2167 138:0.2167 139:0.2167 140:0.2167 141:0.2167 142:0.45610526 143:0.45610526 144:0.45610526 145:0.45610526 146:0.45610526 147:0.45610526 148:0.45610526 149:0.45610526 150:0.50873684 151:0.63157895 152:0.63157895 153:0.63157895 154:0.614 155:0.614 156:0.614 157:0.14285408 158:0.14285408 159:0.14285408 160:0.14285408 161:0.14285408 162:0.14285408 163:0.14285408 164:0.053603763 165:0.053603763 166:0.053603763 167:0.053603763 168:0.053603763 169:0.053603763 170:0.053603763 171:0.053603763 172:0.053603763 173:0.053603763 174:0.053603763 175:0.053603763 176:0.053603763 177:0.053603763 178:0.053603763 179:0.053603763 180:0.053603763 181:0.053603763 182:0.053603763 183:0.053603763 184:0.053603763 185:0.053603763 186:0.053603763 187:0.053603763 188:0.053603763 189:0.053603763 190:0.053603763 191:0.053603763 192:0.053603763 193:0.053603763 194:0.053603763 195:0.053603763 196:0.053603763 197:0.053603763 198:0.053603763 199:0.053603763 200:0.053603763 201:0.053603763 202:0.053603763 203:0.053603763 204:0.053603763 205:0.053603763 206:0.53574834 207:0.53574834 208:0.53574834 209:0.55353412 210:0.53574834 211:0.53574834 212:0.53574834 213:0.53574834 214:0.55353412 215:0.53574834 216:0.24999732 217:0.21431862 218:0.21431862 219:0.21431862 220:0.21431862 221:0.2667 222:0.2667 223:0.2667 224:0.2667 225:0.2667 226:0.2 227:0.2 228:0.2167 229:0.2167 230:0.2167 231:0.2 232:0.2167 233:0.2167 234:0.2167 235:0.2 236:0.2167 237:0.2167 238:0.2167 239:0.2167 240:0.2 241:0.2167 242:0.2167 243:0.2 244:0.2 245:0.2167 246:0.2167 247:0.2167 248:0.2167 249:0.2167 250:0.2167 251:0.2167 252:0.3667 253:0.35 254:0.3667 255:0.35 256:0.35 257:0.3667 258:0.3833 259:0.3833 260:0.3833 261:0.4833 262:0.4833 263:0.4833 264:0.4833 265:0.4833 266:0.4833 267:0.95 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:0.95 281:0.7833 282:0.65 283:0.6167 284:0.6167 285:0.6167 286:0.4833 287:0.4667 288:0.4667 289:0.4667 290:0.4667 291:0.3167 292:0.3 293:0.3 294:0.3 295:0.3 296:0.3 297:0.3 298:0.3 299:0.3 300:0.3 301:0.3 302:0.3 303:0.3 304:0.3 305:0.3 306:0.3 307:0.4667 308:0.1833 309:0.1833 310:0.1833 311:0.1667 312:0.1667 313:0.1667 314:0.1667 315:0.1667 316:0.1667 317:0.15 318:0.1667 319:0.1667 320:0.1667 321:0.1667 322:0.1667 323:0.1667 324:0.1667 325:0.1667 326:0.1667 327:0.1667 328:0.1667 329:0.1667 330:0.1667 331:0.1667 332:0.1667 333:0.1667 334:0.1667 335:0.1667 336:0.1667 337:0.1667 338:0.1667 339:0.15 340:0.3167 341:0.3 342:0.3 343:0.3 344:0.3 345:0.3 346:0.3 347:0.3 348:0.3 349:0.3 350:0.3 351:0.3 352:0.3 353:0.3 354:0.1833 355:0.1833 356:0.1833 357:0.1833 358:0.1167 359:0.1167 360:0.1167 +-0.5505324532054231 1:0.1167 2:0.1167 3:0.1167 4:0.1167 5:0.1167 6:0.1167 7:0.1167 8:0.1167 9:0.1167 10:0.1167 11:0.1167 12:0.1167 13:0.1167 14:0.1167 15:0.1167 16:0.1167 17:0.1167 18:0.1167 19:0.1167 20:0.1167 21:0.1167 22:0.1167 23:0.1167 24:0.1167 25:0.1167 26:0.15 27:0.15 28:0.15 29:0.15 30:0.15 31:0.15 32:0.15 33:0.15 34:0.15 35:0.15 36:0.15 37:0.15 38:0.15 39:0.15 40:0.15 41:0.15 42:0.15 43:0.15 44:0.15 45:0.15 46:0.15 47:0.15 48:0.15 49:0.15 50:0.15 51:0.15 52:0.2167 53:0.2 54:0.2 55:0.2 56:0.2 57:0.2 58:0.2 59:0.2 60:0.2 61:0.2167 62:0.2167 63:0.2 64:0.2 65:0.2 66:0.2 67:0.2167 68:0.2167 69:0.2167 70:0.2167 71:0.2 72:0.2167 73:0.2167 74:0.2167 75:0.2167 76:0.2167 77:0.2167 78:0.2167 79:0.2 80:0.2167 81:0.2167 82:0.2 83:0.2 84:0.2 85:0.8333 86:0.8333 87:0.8333 88:0.9 89:0.9167 90:1 91:1 92:1 93:0.8167 94:0.8167 95:0.8167 96:0.8167 97:0.8167 98:0.8167 99:0.5667 100:0.5667 101:0.55 102:0.55 103:0.5333 104:0.5333 105:0.5333 106:0.35 107:0.35 108:0.3667 109:0.35 110:0.3667 111:0.35 112:0.35 113:0.3667 114:0.35 115:0.35 116:0.3667 117:0.35 118:0.35 119:0.3667 120:0.3667 121:0.1833 122:0.1833 123:0.1833 124:0.1833 125:0.1833 126:0.1833 127:0.1833 128:0.1833 129:0.1833 130:0.1833 131:0.1833 132:0.1833 133:0.1833 134:0.1833 135:0.1833 136:0.1833 137:0.1833 138:0.1833 139:0.1833 140:0.1833 141:0.1833 142:0.14031579 143:0.14031579 144:0.14031579 145:0.14031579 146:0.14031579 147:0.45610526 148:0.43863158 149:0.43863158 150:0.43863158 151:0.45610526 152:0.47368421 153:0.63157895 154:0.63157895 155:0.614 156:0.59652632 157:0.58931996 158:0.58931996 159:0.58931996 160:0.58931996 161:0.58931996 162:0.58931996 163:0.58931996 164:0.58931996 165:0.58931996 166:0.14285408 167:0.14285408 168:0.14285408 169:0.14285408 170:0.14285408 171:0.14285408 172:0.14285408 173:0.14285408 174:0.14285408 175:0.14285408 176:0.14285408 177:0.14285408 178:0.053603763 179:0.053603763 180:0.053603763 181:0.053603763 182:0.053603763 183:0.053603763 184:0.053603763 185:0.053603763 186:0.053603763 187:0.053603763 188:0.053603763 189:0.053603763 190:0.053603763 191:0.053603763 192:0.053603763 193:0.053603763 194:0.053603763 195:0.053603763 196:0.053603763 197:0.053603763 198:0.053603763 199:0.053603763 200:0.053603763 201:0.053603763 202:0.053603763 203:0.053603763 204:0.053603763 205:0.053603763 206:0.053603763 207:0.053603763 208:0.053603763 209:0.053603763 210:0.053603763 211:0.053603763 212:0.053603763 213:0.55353412 214:0.55353412 215:0.55353412 216:0.55353412 217:0.57142704 218:1 219:1 220:0.53574834 221:0.3 222:0.3 223:0.2833 224:0.2833 225:0.2833 226:0.3 227:0.2833 228:0.2833 229:0.3 230:0.2333 231:0.2333 232:0.2333 233:0.2333 234:0.2333 235:0.2167 236:0.2333 237:0.2333 238:0.2333 239:0.2333 240:0.2333 241:0.2333 242:0.2333 243:0.2333 244:0.2333 245:0.2333 246:0.2333 247:0.2333 248:0.2333 249:0.2333 250:0.2333 251:0.2333 252:0.4 253:0.4 254:0.4 255:0.3833 256:0.4 257:0.4 258:0.4 259:0.4 260:0.4 261:0.5 262:0.5 263:0.5 264:0.5 265:0.5 266:0.5 267:0.9833 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:0.8 281:0.7667 282:0.65 283:0.6333 284:0.6333 285:0.5167 286:0.5167 287:0.5 288:0.5167 289:0.35 290:0.3333 291:0.3333 292:0.3333 293:0.3333 294:0.3333 295:0.3333 296:0.3333 297:0.3333 298:0.3333 299:0.3333 300:0.3333 301:0.3333 302:0.3333 303:0.3333 304:0.3333 305:0.3333 306:0.1833 307:0.1833 308:0.1833 309:0.1833 310:0.1833 311:0.1833 312:0.1833 313:0.1833 314:0.1833 315:0.1833 316:0.1833 317:0.1833 318:0.1833 319:0.1833 320:0.1833 321:0.1833 322:0.1833 323:0.1833 324:0.1833 325:0.1833 326:0.1833 327:0.1833 328:0.1833 329:0.1833 330:0.1833 331:0.1833 332:0.1833 333:0.3167 334:0.3167 335:0.3167 336:0.3167 337:0.3167 338:0.3167 339:0.3167 340:0.3167 341:0.3 342:0.3 343:0.3 344:0.3 345:0.3 346:0.1333 347:0.1333 348:0.1333 349:0.1333 350:0.1333 351:0.1167 352:0.1167 353:0.1167 354:0.1167 355:0.1167 356:0.1167 357:0.1167 358:0.1167 359:0.1167 360:0.1167 +-1.337034051918933 1:0.2333 2:0.2333 3:0.2333 4:0.2333 5:0.2333 6:0.2333 7:0.2333 8:0.2333 9:0.2333 10:0.2333 11:0.2333 12:0.2333 13:0.2333 14:0.2333 15:0.2333 16:0.2333 17:0.2333 18:0.2333 19:0.2333 20:0.2333 21:0.1667 22:0.1667 23:0.1833 24:0.1833 25:0.1833 26:0.1667 27:0.1667 28:0.1667 29:0.1667 30:0.1667 31:0.1667 32:0.1667 33:0.1667 34:0.1667 35:0.1667 36:0.1833 37:0.1833 38:0.1667 39:0.1667 40:0.1667 41:0.1667 42:0.1667 43:0.1667 44:0.1667 45:0.1667 46:0.1833 47:0.1667 48:0.1667 49:0.1667 50:0.1667 51:0.1667 52:0.4667 53:0.3333 54:0.3333 55:0.3333 56:0.3333 57:0.3333 58:0.3333 59:0.3333 60:0.3333 61:0.3333 62:0.3333 63:0.3333 64:0.3333 65:0.3333 66:0.3333 67:0.35 68:0.3333 69:0.3333 70:0.5 71:0.5 72:0.5 73:0.5 74:0.5 75:0.5 76:0.5167 77:0.5833 78:0.5667 79:0.7 80:0.7 81:0.9 82:0.9 83:0.9 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:0.9167 95:0.9167 96:0.9167 97:0.9167 98:0.85 99:0.4167 100:0.4167 101:0.4167 102:0.4167 103:0.4167 104:0.4167 105:0.4167 106:0.2833 107:0.2667 108:0.2667 109:0.2667 110:0.2833 111:0.2667 112:0.2667 113:0.2833 114:0.2667 115:0.2667 116:0.2833 117:0.2667 118:0.2667 119:0.1167 120:0.1167 121:0.1167 122:0.1167 123:0.1167 124:0.1167 125:0.1 126:0.1 127:0.1167 128:0.1167 129:0.1167 130:0.1167 131:0.1167 132:0.1167 133:0.1167 134:0.1167 135:0.1167 136:0.1167 137:0.1167 138:0.1167 139:0.1167 140:0.1167 141:0.1167 142:0.070210526 143:0.070210526 144:0.070210526 145:0.070210526 146:0.070210526 147:0.070210526 148:0.070210526 149:0.070210526 150:0.070210526 151:0.070210526 152:0.070210526 153:0.070210526 154:0.070210526 155:0.070210526 156:0.070210526 157:0.035710842 158:0.035710842 159:0.053603763 160:0.053603763 161:0.053603763 162:0.071389541 163:0.071389541 164:0.071389541 165:0.160747 166:0.160747 167:0.17853278 168:0.1964257 169:0.66067736 170:0.66067736 171:0.33924764 172:0.33924764 173:0.1964257 174:0.1964257 175:0.1964257 176:0.17853278 177:0.17853278 178:0.17853278 179:0.17853278 180:0.17853278 181:0.17853278 182:0.17853278 183:0.17853278 184:0.17853278 185:0.053603763 186:0.035710842 187:0.035710842 188:0.035710842 189:0.035710842 190:0.035710842 191:0.035710842 192:0.053603763 193:0.053603763 194:0.035710842 195:0.035710842 196:0.035710842 197:0.053603763 198:0.053603763 199:0.053603763 200:0.053603763 201:0.053603763 202:0.035710842 203:0.053603763 204:0.053603763 205:0.053603763 206:0.053603763 207:0.053603763 208:0.053603763 209:0.053603763 210:0.035710842 211:0.035710842 212:0.035710842 213:0.053603763 214:0.053603763 215:0.053603763 216:0.053603763 217:0.053603763 218:0.035710842 219:0.035710842 220:0.035710842 221:0.1 222:0.1 223:0.1 224:0.1167 225:0.1167 226:0.1167 227:0.1167 228:0.1167 229:0.4167 230:0.2333 231:0.2333 232:0.2333 233:0.2333 234:0.2333 235:0.2167 236:0.2333 237:0.2333 238:0.2333 239:0.2333 240:0.2333 241:0.2333 242:0.2333 243:0.2333 244:0.2333 245:0.2333 246:0.2333 247:0.2333 248:0.2333 249:0.2333 250:0.2333 251:0.2333 252:0.35 253:0.35 254:0.35 255:0.35 256:0.35 257:0.35 258:0.35 259:0.35 260:0.3667 261:0.3667 262:0.3667 263:0.9167 264:0.9167 265:0.95 266:0.95 267:0.95 268:0.95 269:0.95 270:1 271:1 272:1 273:0.9 274:0.8833 275:0.8833 276:0.8833 277:0.8833 278:0.6333 279:0.4333 280:0.4333 281:0.4333 282:0.4333 283:0.4333 284:0.4333 285:0.4333 286:0.35 287:0.35 288:0.3667 289:0.35 290:0.3667 291:0.35 292:0.35 293:0.2833 294:0.2833 295:0.2667 296:0.2667 297:0.2833 298:0.2667 299:0.2667 300:0.2167 301:0.2167 302:0.2167 303:0.2 304:0.2 305:0.2 306:0.1833 307:0.1833 308:0.2 309:0.2 310:0.2 311:0.2 312:0.2 313:0.2 314:0.2 315:0.2 316:0.2 317:0.2 318:0.15 319:0.15 320:0.15 321:0.15 322:0.15 323:0.15 324:0.15 325:0.15 326:0.1333 327:0.15 328:0.15 329:0.15 330:0.15 331:0.15 332:0.15 333:0.15 334:0.15 335:0.15 336:0.15 337:0.15 338:0.15 339:0.15 340:0.15 341:0.15 342:0.15 343:0.15 344:0.15 345:0.15 346:0.15 347:0.15 348:0.15 349:0.15 350:0.15 351:0.1333 352:0.2667 353:0.2667 354:0.2667 355:0.2667 356:0.25 357:0.25 358:0.25 359:0.25 360:0.2333 +-1.791166510934416 1:0.2333 2:0.2333 3:0.2333 4:0.2333 5:0.2333 6:0.2333 7:0.2333 8:0.2333 9:0.2333 10:0.2333 11:0.2333 12:0.2333 13:0.2333 14:0.2333 15:0.2333 16:0.25 17:0.25 18:0.25 19:0.2333 20:0.2333 21:0.25 22:0.2333 23:0.2333 24:0.2333 25:0.2333 26:0.25 27:0.25 28:0.25 29:0.25 30:0.25 31:0.25 32:0.25 33:0.25 34:0.25 35:0.2667 36:0.3167 37:0.3167 38:0.2667 39:0.2667 40:0.3167 41:0.3167 42:0.3167 43:0.3167 44:0.3167 45:0.3167 46:0.3167 47:0.3167 48:0.3167 49:0.35 50:0.35 51:0.35 52:0.35 53:0.35 54:0.35 55:0.4 56:0.4 57:0.4 58:0.4 59:0.4 60:0.4 61:0.4667 62:0.4667 63:0.4667 64:0.4667 65:0.4667 66:0.5167 67:0.5167 68:0.5667 69:0.5667 70:0.5667 71:0.5667 72:0.6333 73:0.65 74:0.6667 75:0.8833 76:0.8833 77:0.8833 78:0.9 79:1 80:1 81:1 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:0.9333 105:0.85 106:0.75 107:0.75 108:0.65 109:0.6167 110:0.5833 111:0.55 112:0.5333 113:0.5167 114:0.4833 115:0.4667 116:0.45 117:0.4333 118:0.4167 119:0.4 120:0.4 121:0.3833 122:0.3667 123:0.3667 124:0.3167 125:0.3333 126:0.3333 127:0.3167 128:0.3167 129:0.3167 130:0.3 131:0.3 132:0.3 133:0.2833 134:0.2833 135:0.25 136:0.25 137:0.25 138:0.25 139:0.25 140:0.25 141:0.25 142:0.21052632 143:0.21052632 144:0.21052632 145:0.21052632 146:0.21052632 147:0.19294737 148:0.19294737 149:0.19294737 150:0.19294737 151:0.19294737 152:0.19294737 153:0.19294737 154:0.19294737 155:0.19294737 156:0.17547368 157:0.160747 158:0.160747 159:0.160747 160:0.160747 161:0.160747 162:0.160747 163:0.160747 164:0.160747 165:0.160747 166:0.160747 167:0.160747 168:0.160747 169:0.160747 170:0.160747 171:0.160747 172:0.160747 173:0.160747 174:0.160747 175:0.160747 176:0.160747 177:0.160747 178:0.160747 179:0.160747 180:0.160747 181:0.160747 182:0.160747 183:0.160747 184:0.7321419 185:0.7321419 186:0.7321419 187:0.7321419 188:0.7321419 189:0.7321419 190:0.75003482 191:0.75003482 192:0.7321419 193:0.7321419 194:0.7321419 195:0.7321419 196:0.7321419 197:0.7321419 198:0.7321419 199:0.75003482 200:0.75003482 201:0.17853278 202:0.17853278 203:0.17853278 204:0.17853278 205:0.17853278 206:0.17853278 207:0.17853278 208:0.17853278 209:0.17853278 210:0.17853278 211:0.17853278 212:0.17853278 213:0.17853278 214:0.17853278 215:0.17853278 216:0.17853278 217:0.160747 218:0.17853278 219:0.17853278 220:0.17853278 221:0.2333 222:0.2333 223:0.2667 224:0.2667 225:0.2667 226:0.2833 227:0.3167 228:0.3167 229:0.3167 230:0.3167 231:0.3167 232:0.3167 233:0.3167 234:0.3167 235:0.3167 236:0.3167 237:0.3167 238:0.3167 239:0.3333 240:0.3333 241:0.3333 242:0.3333 243:0.3667 244:0.3833 245:0.4 246:0.4 247:0.4 248:0.4 249:0.4167 250:0.5333 251:0.55 252:0.5333 253:0.5667 254:0.6 255:0.6167 256:0.6167 257:0.65 258:0.7333 259:0.75 260:0.8167 261:0.9 262:0.9 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:0.9333 287:0.8667 288:0.7667 289:0.7333 290:0.6833 291:0.65 292:0.6333 293:0.6 294:0.5667 295:0.55 296:0.5333 297:0.5167 298:0.5 299:0.4833 300:0.4667 301:0.4667 302:0.4333 303:0.4333 304:0.4167 305:0.4 306:0.4 307:0.3833 308:0.3833 309:0.3667 310:0.3667 311:0.3667 312:0.35 313:0.3333 314:0.3333 315:0.3333 316:0.3167 317:0.3167 318:0.3167 319:0.3167 320:0.3167 321:0.3167 322:0.3 323:0.3 324:0.2833 325:0.2833 326:0.2833 327:0.2833 328:0.2833 329:0.2833 330:0.2667 331:0.2667 332:0.2833 333:0.2833 334:0.2667 335:0.2667 336:0.2667 337:0.2333 338:0.2333 339:0.2333 340:0.2333 341:0.2333 342:0.2333 343:0.2333 344:0.2333 345:0.2333 346:0.2333 347:0.2333 348:0.2333 349:0.2333 350:0.2333 351:0.2333 352:0.2333 353:0.2333 354:0.2333 355:0.2333 356:0.2333 357:0.2333 358:0.2333 359:0.2333 360:0.2333 +-1.695589249122103 1:1 2:1 3:1 4:0.8 5:0.8 6:0.8 7:0.7833 8:0.7833 9:0.1833 10:0.1833 11:0.2 12:0.2 13:0.8167 14:0.2 15:0.2 16:0.2 17:0.2 18:0.2 19:0.2 20:0.2 21:0.2 22:0.2 23:0.1833 24:0.2 25:0.2 26:0.8667 27:0.2 28:0.1833 29:0.1833 30:0.8333 31:0.2 32:0.2 33:0.2 34:0.8333 35:0.2 36:0.2 37:0.2 38:0.2 39:0.9667 40:0.9167 41:0.9167 42:0.9167 43:0.2833 44:0.2833 45:0.2833 46:0.3 47:0.2833 48:0.2833 49:0.3 50:0.2833 51:0.2833 52:0.3 53:0.2833 54:0.2833 55:0.3 56:0.2833 57:0.2833 58:0.3 59:0.3 60:0.3 61:0.4333 62:0.4333 63:0.4333 64:0.4333 65:0.4333 66:0.4333 67:0.4333 68:0.4333 69:0.4333 70:0.4333 71:0.4667 72:0.5 73:0.5833 74:0.5833 75:0.5833 76:0.6 77:0.65 78:0.9333 79:0.9333 80:0.9333 81:0.95 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:0.8167 103:0.8667 104:0.7 105:0.65 106:0.6 107:0.6 108:0.6 109:0.5667 110:0.5 111:0.5 112:0.4833 113:0.4667 114:0.45 115:0.4333 116:0.4333 117:0.4333 118:0.3833 119:0.3667 120:0.3667 121:0.3667 122:0.3667 123:0.3667 124:0.3167 125:0.3333 126:0.3 127:0.2667 128:0.2667 129:0.2667 130:0.25 131:0.25 132:0.25 133:0.2333 134:0.2333 135:0.25 136:0.25 137:0.25 138:0.25 139:0.25 140:0.2333 141:0.2167 142:0.17547368 143:0.17547368 144:0.15789474 145:0.15789474 146:0.15789474 147:0.15789474 148:0.15789474 149:0.15789474 150:0.15789474 151:0.15789474 152:0.15789474 153:0.14031579 154:0.14031579 155:0.14031579 156:0.14031579 157:0.12496116 158:0.12496116 159:0.12496116 160:0.12496116 161:0.12496116 162:0.12496116 163:0.12496116 164:0.12496116 165:0.12496116 166:0.12496116 167:0.12496116 168:0.12496116 169:0.12496116 170:0.12496116 171:0.12496116 172:0.12496116 173:0.12496116 174:0.12496116 175:0.12496116 176:0.12496116 177:0.12496116 178:0.12496116 179:0.12496116 180:0.12496116 181:0.12496116 182:0.12496116 183:0.12496116 184:0.12496116 185:0.12496116 186:0.12496116 187:0.12496116 188:0.12496116 189:0.12496116 190:0.12496116 191:0.12496116 192:0.12496116 193:0.12496116 194:0.12496116 195:0.12496116 196:0.12496116 197:0.12496116 198:0.12496116 199:0.12496116 200:0.12496116 201:0.12496116 202:0.12496116 203:0.12496116 204:0.12496116 205:0.12496116 206:0.12496116 207:0.12496116 208:0.12496116 209:0.12496116 210:0.14285408 211:0.14285408 212:0.14285408 213:0.14285408 214:0.14285408 215:0.14285408 216:0.14285408 217:0.14285408 218:0.14285408 219:0.160747 220:0.160747 221:0.2167 222:0.2167 223:0.2167 224:0.2167 225:0.2333 226:0.2333 227:0.2333 228:0.2333 229:0.2333 230:0.25 231:0.25 232:0.25 233:0.2667 234:0.2667 235:0.2667 236:0.2833 237:0.2833 238:0.3 239:0.3 240:0.3 241:0.3167 242:0.3333 243:0.3333 244:0.35 245:0.3667 246:0.3667 247:0.3833 248:0.4 249:0.4333 250:0.4333 251:0.4667 252:0.4667 253:0.4667 254:0.4833 255:0.5167 256:0.6 257:0.6 258:0.6333 259:0.6833 260:0.8167 261:0.9 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:0.95 282:0.8167 283:0.75 284:0.7 285:0.65 286:0.65 287:0.65 288:0.5333 289:0.5167 290:0.4833 291:0.4833 292:0.4833 293:0.4667 294:0.45 295:0.3833 296:0.3667 297:0.3667 298:0.35 299:0.3333 300:0.3333 301:0.3333 302:0.3333 303:0.3333 304:0.3333 305:0.2833 306:0.2833 307:0.3333 308:0.2667 309:0.2667 310:0.25 311:0.25 312:0.25 313:0.2333 314:0.2333 315:0.2333 316:0.2333 317:0.2333 318:0.2167 319:0.2167 320:0.2167 321:0.2167 322:0.2167 323:0.2167 324:0.2 325:0.2 326:0.2 327:0.2 328:0.2167 329:0.2 330:0.2 331:0.2 332:0.2167 333:0.2167 334:0.2 335:0.1833 336:0.1833 337:0.1833 338:0.1833 339:0.1833 340:0.1833 341:0.1833 342:0.1833 343:0.1833 344:0.1833 345:0.1833 346:0.1833 347:0.1833 348:0.1833 349:0.1833 350:0.1833 351:0.1833 352:0.1833 353:0.1833 354:0.1833 355:0.1833 356:0.1833 357:0.1833 358:0.1833 359:0.8833 360:0.9 +-0.9989272910754306 1:0.2167 2:0.2167 3:0.2167 4:0.2167 5:0.2167 6:0.2167 7:0.2167 8:0.2167 9:0.2167 10:0.2167 11:0.2167 12:0.2167 13:0.2167 14:0.2167 15:0.2167 16:0.2167 17:0.2167 18:0.2167 19:0.2167 20:0.2167 21:0.2167 22:0.2167 23:0.2167 24:0.2167 25:0.2167 26:0.2167 27:0.2333 28:0.2333 29:0.2333 30:0.2333 31:0.2333 32:0.2333 33:0.2333 34:0.2333 35:0.2333 36:0.2333 37:0.2167 38:0.2333 39:0.2333 40:0.2333 41:0.2333 42:0.2333 43:0.25 44:0.25 45:0.25 46:0.25 47:0.25 48:0.2667 49:0.2667 50:0.2667 51:0.2833 52:0.2833 53:0.2833 54:0.3 55:0.3 56:0.3 57:0.3167 58:0.3167 59:0.3333 60:0.3333 61:0.35 62:0.3667 63:0.3667 64:0.3833 65:0.4 66:0.4167 67:0.4333 68:0.45 69:0.4667 70:0.4833 71:0.5167 72:0.5333 73:0.5667 74:0.6333 75:0.6333 76:0.6333 77:0.65 78:0.85 79:0.9 80:1 81:1 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:0.85 102:0.85 103:0.7 104:0.7 105:0.6167 106:0.6167 107:0.5167 108:0.5167 109:0.5167 110:0.5167 111:0.4167 112:0.4167 113:0.3833 114:0.3667 115:0.3667 116:0.3667 117:0.3167 118:0.3167 119:0.3 120:0.3 121:0.2833 122:0.2833 123:0.2667 124:0.2667 125:0.25 126:0.25 127:0.25 128:0.2333 129:0.2333 130:0.2333 131:0.2167 132:0.2167 133:0.2167 134:0.2167 135:0.2167 136:0.2 137:0.2 138:0.2 139:0.2 140:0.2 141:0.2 142:0.14031579 143:0.14031579 144:0.14031579 145:0.14031579 146:0.14031579 147:0.14031579 148:0.14031579 149:0.14031579 150:0.14031579 151:0.12284211 152:0.12284211 153:0.12284211 154:0.12284211 155:0.12284211 156:0.12284211 157:0.10717538 158:0.10717538 159:0.10717538 160:0.10717538 161:0.10717538 162:0.10717538 163:0.10717538 164:0.10717538 165:0.10717538 166:0.10717538 167:0.10717538 168:0.10717538 169:0.10717538 170:0.10717538 171:0.10717538 172:0.10717538 173:0.10717538 174:0.10717538 175:0.10717538 176:0.10717538 177:0.10717538 178:0.10717538 179:0.10717538 180:0.10717538 181:0.10717538 182:0.10717538 183:0.10717538 184:0.10717538 185:0.10717538 186:0.10717538 187:0.10717538 188:0.10717538 189:0.10717538 190:0.10717538 191:0.10717538 192:0.10717538 193:0.10717538 194:0.10717538 195:0.10717538 196:0.10717538 197:0.10717538 198:0.10717538 199:0.10717538 200:0.10717538 201:0.10717538 202:0.10717538 203:0.10717538 204:0.10717538 205:0.10717538 206:0.10717538 207:0.10717538 208:0.10717538 209:0.10717538 210:0.10717538 211:0.10717538 212:0.12496116 213:0.12496116 214:0.12496116 215:0.12496116 216:0.12496116 217:0.12496116 218:0.12496116 219:0.12496116 220:0.12496116 221:0.2 222:0.2 223:0.2 224:0.2 225:0.2 226:0.2 227:0.2167 228:0.2167 229:0.2167 230:0.2167 231:0.2167 232:0.2333 233:0.2333 234:0.2333 235:0.25 236:0.25 237:0.25 238:0.2667 239:0.2667 240:0.2833 241:0.2833 242:0.3 243:0.3 244:0.3167 245:0.3167 246:0.3333 247:0.35 248:0.3667 249:0.3833 250:0.4 251:0.4333 252:0.4333 253:0.6167 254:0.6167 255:0.6167 256:0.6167 257:0.2167 258:0.2167 259:0.2167 260:0.2167 261:0.2167 262:0.2167 263:0.2167 264:0.2167 265:0.2167 266:0.2167 267:0.2167 268:0.2167 269:0.2167 270:0.2167 271:0.2167 272:0.2167 273:0.2167 274:0.2167 275:0.2167 276:0.2167 277:0.2167 278:0.25 279:0.25 280:0.2833 281:0.2833 282:0.2833 283:0.2833 284:0.2833 285:0.2833 286:0.6667 287:0.6333 288:0.6 289:0.5667 290:0.5333 291:0.5167 292:0.4833 293:0.4667 294:0.45 295:0.4333 296:0.4167 297:0.4 298:0.3833 299:0.3667 300:0.3667 301:0.35 302:0.3333 303:0.3333 304:0.3167 305:0.3167 306:0.3 307:0.3 308:0.3 309:0.2833 310:0.2833 311:0.2833 312:0.2667 313:0.2667 314:0.2667 315:0.25 316:0.25 317:0.25 318:0.25 319:0.25 320:0.2333 321:0.2333 322:0.2333 323:0.2333 324:0.2333 325:0.2167 326:0.2167 327:0.2167 328:0.2167 329:0.2167 330:0.2167 331:0.2167 332:0.2167 333:0.2167 334:0.2167 335:0.2 336:0.2 337:0.2167 338:0.2167 339:0.2167 340:0.2167 341:0.2 342:0.2167 343:0.2167 344:0.2167 345:0.2167 346:0.2167 347:0.2167 348:0.2167 349:0.2 350:0.2167 351:0.2167 352:0.2 353:0.2 354:0.2 355:0.2167 356:0.2167 357:0.2167 358:0.2167 359:0.2167 360:0.2167 +-1.013490659548135 1:0.2 2:0.2 3:0.2 4:0.2 5:0.2 6:0.2 7:0.2 8:0.2 9:0.1833 10:0.1833 11:0.2 12:0.2 13:0.2 14:0.2 15:0.2 16:0.2 17:0.2 18:0.2 19:0.1833 20:0.1833 21:0.1667 22:0.1667 23:0.1833 24:0.1833 25:0.1833 26:0.1667 27:0.1833 28:0.1833 29:0.1833 30:0.1833 31:0.1833 32:0.1833 33:0.1833 34:0.1833 35:0.1833 36:0.1833 37:0.1833 38:0.1833 39:0.1833 40:0.1833 41:0.1667 42:0.1667 43:0.1667 44:0.1833 45:0.1833 46:0.1833 47:0.1833 48:0.1833 49:0.1833 50:0.1833 51:0.1833 52:0.1833 53:0.1833 54:0.1833 55:0.2 56:0.2 57:0.2 58:0.2 59:0.2 60:0.2 61:0.2 62:0.1833 63:0.2 64:0.2 65:0.2 66:0.2 67:0.2 68:0.2 69:0.2 70:0.2 71:0.2 72:0.2 73:0.2 74:0.2 75:0.2 76:0.2167 77:0.2333 78:0.2333 79:0.2333 80:0.2333 81:0.2333 82:0.2667 83:0.25 84:0.25 85:0.25 86:0.2833 87:0.2833 88:0.2833 89:0.2833 90:0.3 91:0.3 92:0.3 93:0.3333 94:0.3333 95:0.3333 96:0.3667 97:0.3667 98:0.4167 99:0.4333 100:0.4333 101:0.4833 102:0.5 103:0.5 104:0.5333 105:0.6333 106:0.7 107:0.7667 108:0.9333 109:1 110:1 111:1 112:1 113:1 114:1 115:1 116:1 117:1 118:1 119:1 120:1 121:1 122:1 123:1 124:1 125:1 126:1 127:1 128:1 129:1 130:1 131:1 132:0.8833 133:0.7833 134:0.75 135:0.7167 136:0.65 137:0.6167 138:0.5667 139:0.55 140:0.5333 141:0.45 142:0.42105263 143:0.386 144:0.386 145:0.35084211 146:0.35084211 147:0.33336842 148:0.31578947 149:0.29821053 150:0.29821053 151:0.29821053 152:0.26315789 153:0.26315789 154:0.26315789 155:0.26315789 156:0.26315789 157:0.2321044 158:0.2321044 159:0.21431862 160:0.21431862 161:0.21431862 162:0.1964257 163:0.1964257 164:0.17853278 165:0.17853278 166:0.17853278 167:0.17853278 168:0.17853278 169:0.17853278 170:0.17853278 171:0.160747 172:0.160747 173:0.160747 174:0.160747 175:0.14285408 176:0.14285408 177:0.14285408 178:0.14285408 179:0.14285408 180:0.14285408 181:0.14285408 182:0.14285408 183:0.14285408 184:0.14285408 185:0.14285408 186:0.14285408 187:0.14285408 188:0.14285408 189:0.12496116 190:0.12496116 191:0.14285408 192:0.14285408 193:0.14285408 194:0.12496116 195:0.12496116 196:0.12496116 197:0.12496116 198:0.12496116 199:0.12496116 200:0.12496116 201:0.12496116 202:0.12496116 203:0.12496116 204:0.12496116 205:0.12496116 206:0.12496116 207:0.12496116 208:0.12496116 209:0.12496116 210:0.12496116 211:0.12496116 212:0.12496116 213:0.12496116 214:0.12496116 215:0.12496116 216:0.12496116 217:0.12496116 218:0.14285408 219:0.14285408 220:0.14285408 221:0.2 222:0.2 223:0.1833 224:0.2 225:0.2 226:0.2 227:0.2 228:0.2 229:0.1833 230:0.2 231:0.2 232:0.2 233:0.2 234:0.2 235:0.2 236:0.2 237:0.2 238:0.2 239:0.2 240:0.2 241:0.2 242:0.1833 243:0.2 244:0.2 245:0.2167 246:0.2167 247:0.2167 248:0.2167 249:0.2167 250:0.2167 251:0.2167 252:0.2333 253:0.2333 254:0.2667 255:0.2667 256:0.2667 257:0.2667 258:0.2667 259:0.2667 260:0.2667 261:0.2667 262:0.2667 263:0.2667 264:0.2667 265:0.2667 266:0.2667 267:0.2667 268:0.2667 269:0.2667 270:0.3 271:0.3 272:0.3 273:0.3167 274:0.3167 275:0.3167 276:0.35 277:0.35 278:0.3667 279:0.3667 280:1 281:1 282:1 283:1 284:1 285:0.85 286:0.8333 287:0.8333 288:0.8333 289:0.8333 290:0.8333 291:0.9167 292:1 293:1 294:1 295:1 296:1 297:1 298:1 299:1 300:1 301:1 302:1 303:1 304:1 305:1 306:1 307:1 308:1 309:1 310:1 311:1 312:1 313:0.5167 314:0.5167 315:0.5167 316:0.5167 317:0.5167 318:0.5167 319:0.4833 320:0.4333 321:0.4333 322:0.4 323:0.4 324:0.4 325:0.3833 326:0.3833 327:0.3667 328:0.35 329:0.35 330:0.35 331:0.35 332:0.35 333:0.35 334:0.3333 335:0.3333 336:0.3333 337:0.3333 338:0.25 339:0.25 340:0.25 341:0.25 342:0.2667 343:0.2167 344:0.2167 345:0.2167 346:0.2167 347:0.2167 348:0.2167 349:0.2167 350:0.2167 351:0.2167 352:0.2167 353:0.2167 354:0.2167 355:0.2167 356:0.2167 357:0.2167 358:0.2167 359:0.2 360:0.2 +-0.03591734355888352 1:0.1833 2:0.1833 3:0.1833 4:0.1833 5:0.1833 6:0.1833 7:0.1833 8:0.1833 9:0.1667 10:0.1667 11:0.1833 12:0.1833 13:0.1833 14:0.1833 15:0.1833 16:0.1833 17:0.1833 18:0.1833 19:0.1833 20:0.1833 21:0.1667 22:0.1667 23:0.1833 24:0.1833 25:0.1833 26:0.1667 27:0.1667 28:0.1667 29:0.1667 30:0.1667 31:0.1667 32:0.1667 33:0.1667 34:0.1667 35:0.1667 36:0.1833 37:0.1833 38:0.1667 39:0.1667 40:0.1667 41:0.1667 42:0.1667 43:0.1667 44:0.1667 45:0.1667 46:0.1833 47:0.1667 48:0.1667 49:0.1667 50:0.1667 51:0.1667 52:0.1833 53:0.1833 54:0.1833 55:0.1833 56:0.1833 57:0.1833 58:0.1833 59:0.1833 60:0.1833 61:0.1833 62:0.1833 63:0.2 64:0.2 65:0.2 66:0.2 67:0.2 68:0.2 69:0.2 70:0.2 71:0.2 72:0.2 73:0.2 74:0.2 75:0.2 76:0.2167 77:0.2333 78:0.25 79:0.25 80:0.25 81:0.25 82:0.2667 83:0.2667 84:0.2667 85:0.2667 86:0.2833 87:0.2833 88:0.2833 89:0.2833 90:0.3333 91:0.3333 92:0.3333 93:0.3667 94:0.3667 95:0.4167 96:0.4167 97:0.4667 98:0.5 99:0.5 100:0.5333 101:0.5833 102:0.6167 103:0.7333 104:0.8167 105:0.9667 106:1 107:1 108:1 109:1 110:1 111:1 112:1 113:1 114:1 115:1 116:1 117:1 118:1 119:1 120:1 121:1 122:1 123:1 124:1 125:1 126:1 127:1 128:0.9333 129:0.8833 130:0.75 131:0.75 132:0.7 133:0.6667 134:0.6333 135:0.5667 136:0.5333 137:0.5 138:0.5 139:0.45 140:0.4333 141:0.4333 142:0.40347368 143:0.386 144:0.33336842 145:0.31578947 146:0.31578947 147:0.29821053 148:0.29821053 149:0.29821053 150:0.29821053 151:0.28073684 152:0.26315789 153:0.26315789 154:0.24557895 155:0.24557895 156:0.24557895 157:0.2321044 158:0.1964257 159:0.1964257 160:0.1964257 161:0.1964257 162:0.1964257 163:0.1964257 164:0.17853278 165:0.17853278 166:0.17853278 167:0.160747 168:0.160747 169:0.160747 170:0.160747 171:0.160747 172:0.160747 173:0.160747 174:0.160747 175:0.160747 176:0.160747 177:0.160747 178:0.160747 179:0.160747 180:0.160747 181:0.160747 182:0.160747 183:0.160747 184:0.12496116 185:0.12496116 186:0.12496116 187:0.12496116 188:0.12496116 189:0.12496116 190:0.12496116 191:0.12496116 192:0.12496116 193:0.12496116 194:0.12496116 195:0.12496116 196:0.12496116 197:0.12496116 198:0.12496116 199:0.12496116 200:0.12496116 201:0.12496116 202:0.12496116 203:0.12496116 204:0.12496116 205:0.12496116 206:0.12496116 207:0.12496116 208:0.12496116 209:0.12496116 210:0.160747 211:0.14285408 212:0.14285408 213:0.14285408 214:0.160747 215:0.14285408 216:0.14285408 217:0.14285408 218:0.14285408 219:0.14285408 220:0.14285408 221:0.2 222:0.2167 223:0.2167 224:0.2 225:0.2 226:0.2 227:0.2 228:0.2 229:0.2 230:0.2 231:0.2 232:0.2167 233:0.2 234:0.2 235:0.2 236:0.2 237:0.2 238:0.2 239:0.2 240:0.2 241:0.2167 242:0.2167 243:0.2 244:0.2 245:0.2167 246:0.2167 247:0.2167 248:0.2333 249:0.2667 250:0.25 251:0.2667 252:0.2667 253:0.25 254:0.25 255:0.2833 256:0.2833 257:0.2833 258:0.2833 259:0.2833 260:0.2833 261:0.2833 262:0.2833 263:0.2833 264:0.2833 265:0.2833 266:0.2833 267:0.3167 268:0.3167 269:0.3167 270:0.35 271:0.35 272:0.35 273:0.3833 274:0.3833 275:0.7667 276:0.7667 277:0.7667 278:0.7667 279:0.7667 280:0.7667 281:0.7667 282:0.7667 283:0.7833 284:0.8 285:0.8167 286:0.8333 287:0.9667 288:1 289:1 290:1 291:1 292:1 293:1 294:1 295:1 296:1 297:1 298:1 299:1 300:1 301:1 302:1 303:1 304:1 305:1 306:1 307:0.8167 308:0.7333 309:0.7 310:0.6333 311:0.5833 312:0.5167 313:0.5167 314:0.45 315:0.45 316:0.4167 317:0.4167 318:0.4 319:0.4 320:0.3667 321:0.3833 322:0.3667 323:0.3833 324:0.3667 325:0.3667 326:0.3667 327:0.3333 328:0.3333 329:0.3 330:0.3 331:0.2833 332:0.2667 333:0.2667 334:0.2667 335:0.2667 336:0.2667 337:0.2333 338:0.2333 339:0.2333 340:0.2333 341:0.2667 342:0.2333 343:0.2167 344:0.2167 345:0.2167 346:0.2 347:0.2 348:0.2 349:0.2 350:0.1833 351:0.1833 352:0.1833 353:0.1833 354:0.1833 355:0.1833 356:0.1833 357:0.1833 358:0.1833 359:0.1833 360:0.1833 +-0.4449203349903729 1:0.6667 2:0.6667 3:0.6667 4:0.6667 5:0.6667 6:0.6667 7:0.6667 8:0.6667 9:0.6667 10:0.6667 11:0.6667 12:0.6667 13:0.7 14:0.7 15:0.7 16:0.7 17:0.7 18:0.7 19:0.7 20:0.7 21:0.7 22:0.9167 23:0.9 24:0.9 25:0.75 26:0.75 27:0.75 28:0.75 29:0.75 30:0.75 31:0.75 32:0.7667 33:0.8 34:0.8 35:1 36:1 37:1 38:1 39:1 40:1 41:1 42:0.95 43:0.95 44:0.95 45:0.95 46:0.95 47:0.95 48:1 49:1 50:1 51:1 52:1 53:1 54:1 55:1 56:1 57:1 58:1 59:1 60:1 61:1 62:1 63:1 64:1 65:1 66:1 67:1 68:1 69:1 70:1 71:1 72:1 73:1 74:1 75:1 76:1 77:1 78:1 79:1 80:1 81:1 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:0.75 99:0.6833 100:0.5833 101:0.5667 102:0.5667 103:0.5667 104:0.4833 105:0.4667 106:0.4167 107:0.3833 108:0.3667 109:0.35 110:0.3333 111:0.3167 112:0.3 113:0.3 114:0.3 115:0.3 116:0.25 117:0.25 118:0.2333 119:0.2333 120:0.2167 121:0.2167 122:0.2167 123:0.2 124:0.2 125:0.2 126:0.1833 127:0.1833 128:0.1833 129:0.1833 130:0.1833 131:0.1667 132:0.1667 133:0.1667 134:0.1667 135:0.1667 136:0.1833 137:0.1667 138:0.15 139:0.15 140:0.15 141:0.15 142:0.10526316 143:0.10526316 144:0.10526316 145:0.10526316 146:0.10526316 147:0.087684211 148:0.087684211 149:0.087684211 150:0.087684211 151:0.087684211 152:0.087684211 153:0.087684211 154:0.087684211 155:0.087684211 156:0.087684211 157:0.071389541 158:0.071389541 159:0.071389541 160:0.071389541 161:0.071389541 162:0.071389541 163:0.071389541 164:0.071389541 165:0.071389541 166:0.071389541 167:0.071389541 168:0.071389541 169:0.071389541 170:0.071389541 171:0.071389541 172:0.071389541 173:0.071389541 174:0.071389541 175:0.071389541 176:0.071389541 177:0.071389541 178:0.071389541 179:0.071389541 180:0.071389541 181:0.071389541 182:0.071389541 183:0.071389541 184:0.071389541 185:0.071389541 186:0.071389541 187:0.071389541 188:0.071389541 189:0.071389541 190:0.071389541 191:0.071389541 192:0.071389541 193:0.071389541 194:0.071389541 195:0.071389541 196:0.071389541 197:0.071389541 198:0.071389541 199:0.071389541 200:0.071389541 201:0.071389541 202:0.071389541 203:0.089282462 204:0.089282462 205:0.089282462 206:0.089282462 207:0.089282462 208:0.089282462 209:0.089282462 210:0.089282462 211:0.089282462 212:0.089282462 213:0.089282462 214:0.089282462 215:0.089282462 216:0.071389541 217:0.089282462 218:0.089282462 219:0.10717538 220:0.10717538 221:0.1667 222:0.1667 223:0.1667 224:0.1667 225:0.1667 226:0.1833 227:0.1667 228:0.1667 229:0.1667 230:0.1667 231:0.1667 232:0.1833 233:0.1833 234:0.1833 235:0.1833 236:0.1833 237:0.2 238:0.2 239:0.2 240:0.2167 241:0.2167 242:0.2167 243:0.2333 244:0.2333 245:0.2833 246:0.2833 247:0.2833 248:0.2833 249:0.2833 250:0.35 251:0.3667 252:0.3833 253:0.4333 254:0.4167 255:0.4333 256:0.4167 257:0.5167 258:0.6 259:0.6 260:0.65 261:0.7167 262:0.8 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:1 287:1 288:1 289:1 290:1 291:1 292:1 293:1 294:1 295:1 296:1 297:1 298:1 299:1 300:1 301:1 302:1 303:1 304:1 305:1 306:1 307:1 308:1 309:1 310:1 311:1 312:0.95 313:0.9333 314:0.9167 315:0.9 316:0.9 317:0.9 318:0.9 319:0.9 320:0.8333 321:0.8167 322:0.8167 323:0.8 324:0.7833 325:0.7833 326:0.7667 327:0.7667 328:0.75 329:0.75 330:0.7333 331:0.7333 332:0.7333 333:0.7167 334:0.7167 335:0.7 336:0.7 337:0.7 338:0.7 339:0.6833 340:0.6833 341:0.7 342:0.6833 343:0.6667 344:0.6667 345:0.6667 346:0.6667 347:0.6667 348:0.6667 349:0.6667 350:0.6667 351:0.6667 352:0.6667 353:0.6667 354:0.6667 355:0.6667 356:0.6667 357:0.6667 358:0.6667 359:0.6667 360:0.6667 +-0.5441108218943412 1:0.65 2:0.65 3:0.65 4:0.65 5:0.65 6:0.65 7:0.65 8:0.8333 9:0.6667 10:0.6667 11:0.6667 12:0.6667 13:0.6667 14:0.6667 15:0.6667 16:0.6667 17:0.6667 18:0.6667 19:0.6833 20:0.6833 21:0.7 22:0.6833 23:0.6833 24:0.7 25:0.7 26:0.7167 27:0.7 28:0.7167 29:1 30:1 31:1 32:1 33:0.8167 34:0.8 35:0.8167 36:0.8167 37:0.8167 38:0.8167 39:0.8167 40:1 41:1 42:1 43:1 44:1 45:1 46:1 47:0.9833 48:0.9833 49:0.9833 50:0.9833 51:0.9833 52:1 53:1 54:1 55:1 56:1 57:1 58:1 59:1 60:1 61:1 62:1 63:1 64:1 65:1 66:1 67:1 68:1 69:1 70:1 71:1 72:1 73:1 74:1 75:1 76:1 77:1 78:1 79:1 80:1 81:1 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:0.8 101:0.75 102:0.65 103:0.6 104:0.55 105:0.5167 106:0.5 107:0.45 108:0.4167 109:0.4 110:0.3833 111:0.3667 112:0.35 113:0.3333 114:0.3167 115:0.3 116:0.3 117:0.2833 118:0.2833 119:0.2667 120:0.25 121:0.25 122:0.25 123:0.2333 124:0.2333 125:0.2333 126:0.2167 127:0.2167 128:0.2167 129:0.2 130:0.2 131:0.2 132:0.2 133:0.1833 134:0.1833 135:0.1833 136:0.1833 137:0.1833 138:0.1833 139:0.1667 140:0.1667 141:0.1667 142:0.12284211 143:0.12284211 144:0.12284211 145:0.12284211 146:0.12284211 147:0.087684211 148:0.087684211 149:0.087684211 150:0.087684211 151:0.087684211 152:0.087684211 153:0.10526316 154:0.10526316 155:0.087684211 156:0.087684211 157:0.071389541 158:0.071389541 159:0.089282462 160:0.089282462 161:0.089282462 162:0.071389541 163:0.071389541 164:0.071389541 165:0.089282462 166:0.089282462 167:0.089282462 168:0.071389541 169:0.071389541 170:0.071389541 171:0.071389541 172:0.071389541 173:0.071389541 174:0.071389541 175:0.071389541 176:0.071389541 177:0.071389541 178:0.089282462 179:0.089282462 180:0.089282462 181:0.089282462 182:0.089282462 183:0.089282462 184:0.089282462 185:0.089282462 186:0.089282462 187:0.089282462 188:0.089282462 189:0.089282462 190:0.089282462 191:0.089282462 192:0.089282462 193:0.089282462 194:0.089282462 195:0.089282462 196:0.089282462 197:0.089282462 198:0.089282462 199:0.089282462 200:0.089282462 201:0.089282462 202:0.089282462 203:0.089282462 204:0.089282462 205:0.089282462 206:0.089282462 207:0.089282462 208:0.089282462 209:0.089282462 210:0.089282462 211:0.089282462 212:0.089282462 213:0.089282462 214:0.10717538 215:0.10717538 216:0.10717538 217:0.10717538 218:0.10717538 219:0.10717538 220:0.10717538 221:0.1667 222:0.1667 223:0.1667 224:0.1667 225:0.15 226:0.1667 227:0.1667 228:0.1667 229:0.1667 230:0.1667 231:0.1667 232:0.1833 233:0.1833 234:0.1833 235:0.1833 236:0.1833 237:0.2 238:0.2 239:0.2 240:0.2167 241:0.2167 242:0.2167 243:0.2333 244:0.2333 245:0.2833 246:0.2667 247:0.2667 248:0.2833 249:0.2833 250:0.3 251:0.3167 252:0.35 253:0.35 254:0.4167 255:0.4167 256:0.4167 257:0.55 258:0.55 259:0.55 260:0.5667 261:0.6333 262:0.6833 263:0.7667 264:0.8833 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:0.7333 285:0.7167 286:0.7167 287:0.7 288:0.7 289:0.7 290:0.6833 291:0.6833 292:0.6833 293:0.6833 294:0.6833 295:0.6833 296:0.6833 297:1 298:1 299:1 300:1 301:1 302:1 303:1 304:1 305:1 306:1 307:1 308:1 309:1 310:1 311:1 312:0.95 313:0.9333 314:0.9333 315:0.9 316:0.8833 317:0.8833 318:0.9 319:0.85 320:0.8333 321:0.8333 322:0.8333 323:0.8333 324:0.8333 325:0.8333 326:0.8333 327:0.7833 328:0.7667 329:0.7667 330:0.7667 331:0.75 332:0.75 333:0.7333 334:0.7333 335:0.7333 336:0.7167 337:0.7167 338:0.7167 339:0.6833 340:0.6833 341:0.6833 342:0.6833 343:0.6667 344:0.6667 345:0.6667 346:0.6667 347:0.6667 348:0.6667 349:0.65 350:0.65 351:0.65 352:0.65 353:0.65 354:0.65 355:0.65 356:0.65 357:0.65 358:0.65 359:0.65 360:0.65 +-0.2431753598127436 1:0.3 2:0.3 3:0.3 4:0.3 5:0.3 6:0.3 7:0.3 8:0.3 9:0.3 10:0.3 11:0.3 12:0.3 13:0.3 14:0.3 15:0.3 16:0.3 17:0.3 18:0.4167 19:0.4167 20:0.3333 21:0.3333 22:0.3333 23:0.3333 24:0.3333 25:0.3333 26:0.3333 27:0.3333 28:0.3333 29:0.3333 30:0.3333 31:0.3333 32:0.3333 33:0.3333 34:0.35 35:0.35 36:0.35 37:0.35 38:0.35 39:0.35 40:0.3667 41:0.3667 42:0.3667 43:0.3833 44:0.3833 45:0.3833 46:0.4 47:0.45 48:0.4667 49:0.45 50:0.4667 51:0.45 52:0.45 53:0.45 54:0.4667 55:0.4667 56:0.4833 57:0.5 58:0.5 59:0.5833 60:0.6 61:0.6167 62:0.75 63:0.6167 64:0.7167 65:0.7167 66:0.7167 67:0.7167 68:0.7167 69:0.7333 70:0.7667 71:0.8667 72:0.8833 73:0.8833 74:0.9333 75:1 76:1 77:1 78:1 79:1 80:1 81:1 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:0.95 97:0.55 98:0.4667 99:0.4167 100:0.2833 101:0.2333 102:0.2333 103:0.2333 104:0.2333 105:0.2333 106:0.15 107:0.15 108:0.1333 109:0.1333 110:0.1333 111:0.1333 112:0.1333 113:0.1333 114:0.1333 115:0.1333 116:0.1 117:0.1 118:0.08333 119:0.08333 120:0.08333 121:0.08333 122:0.08333 123:0.08333 124:0.08333 125:0.08333 126:0.06667 127:0.06667 128:0.06667 129:0.06667 130:0.06667 131:0.06667 132:0.08333 133:0.08333 134:0.08333 135:0.08333 136:0.08333 137:0.08333 138:0.08333 139:0.08333 140:0.08333 141:0.08333 142:0.035084211 143:0.035084211 144:0.035084211 145:0.035084211 146:0.035084211 147:0.035084211 148:0.035084211 149:0.035084211 150:0.035084211 151:0.035084211 152:0.035084211 153:0.035084211 154:0.035084211 155:0.035084211 156:0.035084211 157:0.017850064 158:0.017850064 159:0.017850064 160:0.017850064 161:0.017850064 162:0.017850064 163:0.017850064 164:0.017850064 165:0.017850064 166:0.017850064 167:0.017850064 168:0.017850064 169:0.017850064 176:0.017850064 177:0.017850064 178:0.017850064 179:0.017850064 180:0.017850064 181:0.017850064 182:0.017850064 183:0.017850064 184:0.017850064 185:0.017850064 186:0.017850064 187:0.017850064 188:0.017850064 189:0.017850064 190:0.017850064 191:0.017850064 192:0.017850064 193:0.017850064 194:0.017850064 195:0.017850064 196:0.017850064 197:0.017850064 198:0.017850064 199:0.017850064 200:0.017850064 201:0.017850064 202:0.017850064 203:0.017850064 204:0.017850064 205:0.017850064 206:0.017850064 207:0.017850064 208:0.017850064 209:0.017850064 210:0.017850064 211:0.017850064 212:0.017850064 213:0.017850064 214:0.017850064 215:0.017850064 216:0.017850064 217:0.017850064 218:0.017850064 219:0.017850064 220:0.017850064 221:0.08333 222:0.08333 223:0.08333 224:0.08333 225:0.08333 226:0.08333 227:0.08333 228:0.08333 229:0.08333 230:0.08333 231:0.08333 232:0.08333 233:0.1 234:0.08333 235:0.08333 236:0.08333 237:0.08333 238:0.08333 239:0.08333 240:0.08333 241:0.08333 242:0.08333 243:0.08333 244:0.08333 245:0.1 246:0.1 247:0.1 248:0.1 249:0.1167 250:0.1167 251:0.1167 252:0.1333 253:0.1333 254:0.1333 255:0.15 256:0.15 257:0.1667 258:0.1833 259:0.2 260:0.2167 261:0.2333 262:0.2667 263:0.3 264:0.3333 265:0.5833 266:0.6 267:0.6 268:0.7833 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:1 287:1 288:0.9333 289:0.8833 290:0.85 291:0.8333 292:0.7667 293:0.6833 294:0.6833 295:0.6667 296:0.65 297:0.65 298:0.6167 299:0.6167 300:0.6167 301:0.55 302:0.5333 303:0.5167 304:0.5 305:0.5 306:0.5 307:0.5 308:0.4333 309:0.4333 310:0.4333 311:0.4333 312:0.4167 313:0.4167 314:0.4 315:0.4 316:0.4 317:0.3833 318:0.3833 319:0.3833 320:0.3833 321:0.3833 322:0.3833 323:0.3833 324:0.3833 325:0.3833 326:0.3833 327:0.3833 328:0.3833 329:0.4333 330:0.4333 331:0.4333 332:0.4333 333:0.4333 334:0.3167 335:0.3167 336:0.3167 337:0.3167 338:0.3167 339:0.3167 340:0.3167 341:0.3 342:0.3 343:0.3 344:0.3 345:0.3 346:0.3 347:0.3 348:0.3 349:0.3 350:0.3 351:0.3 352:0.3 353:0.3 354:0.3 355:0.3 356:0.3 357:0.3 358:0.3 359:0.3 360:0.3 +-1.162418084943818 1:0.25 2:0.25 3:0.25 4:0.25 5:0.25 6:0.25 7:0.25 8:0.25 9:0.25 10:0.25 11:0.25 12:0.25 13:0.25 14:0.25 15:0.25 16:0.25 17:0.25 18:0.25 19:0.25 20:0.25 21:0.25 22:0.25 23:0.25 24:0.25 25:0.25 26:0.25 27:0.25 28:0.25 29:0.25 30:0.25 31:0.25 32:0.2667 33:0.2833 34:0.2833 35:0.2833 36:0.3 37:0.3 38:0.3 39:0.3 40:0.3 41:0.3 42:0.3 43:0.3167 44:0.3167 45:0.3167 46:0.3167 47:0.3333 48:0.3333 49:0.3333 50:0.35 51:0.35 52:0.35 53:0.35 54:0.35 55:0.3833 56:0.3833 57:0.3833 58:0.3833 59:0.4 60:0.4 61:0.4167 62:0.4333 63:0.45 64:0.4667 65:0.4667 66:0.5167 67:0.5167 68:0.55 69:0.55 70:0.6 71:0.6 72:0.6333 73:0.65 74:0.7667 75:0.7667 76:0.7667 77:0.9 78:0.9167 79:0.9167 80:1 81:1 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:1 107:1 108:0.85 109:0.8333 110:0.7833 111:0.7 112:0.6667 113:0.65 114:0.6167 115:0.6 116:0.5667 117:0.55 118:0.5333 119:0.5167 120:0.5 121:0.4833 122:0.4333 123:0.4333 124:0.4167 125:0.4333 126:0.4167 127:0.4167 128:0.4 129:0.4 130:0.3833 131:0.3833 132:0.3667 133:0.3667 134:0.3667 135:0.3667 136:0.3667 137:0.35 138:0.3667 139:0.3667 140:0.3667 141:0.3667 142:0.33336842 143:0.33336842 144:0.33336842 145:0.31578947 146:0.33336842 147:0.33336842 148:0.35084211 149:0.35084211 150:0.35084211 151:0.35084211 152:0.36842105 153:0.36842105 154:0.43863158 155:0.43863158 156:0.63157895 157:0.6964632 158:1 159:1 160:1 161:1 162:1 163:1 164:0.83928514 165:0.82139222 166:0.82139222 167:0.71424898 168:0.71424898 169:0.71424898 170:0.71424898 171:0.71424898 172:0.71424898 173:0.80360644 174:0.87496384 175:0.89285676 176:0.67857028 177:0.24999732 178:0.24999732 179:0.24999732 180:0.21431862 181:0.21431862 182:0.21431862 183:0.1964257 184:0.1964257 185:0.1964257 186:0.1964257 187:0.1964257 188:0.1964257 189:0.1964257 190:0.1964257 191:0.1964257 192:0.1964257 193:0.1964257 194:0.1964257 195:0.1964257 196:0.1964257 197:0.1964257 198:0.1964257 199:0.1964257 200:0.1964257 201:0.1964257 202:0.1964257 203:0.1964257 204:0.1964257 205:0.1964257 206:0.1964257 207:0.21431862 208:0.21431862 209:0.1964257 210:0.21431862 211:0.21431862 212:0.1964257 213:0.1964257 214:0.1964257 215:0.21431862 216:0.21431862 217:0.21431862 218:0.21431862 219:0.21431862 220:0.2321044 221:0.2833 222:0.2833 223:0.2833 224:0.2833 225:0.3 226:0.3 227:0.3 228:0.3167 229:0.3167 230:0.3167 231:0.3333 232:0.3333 233:0.3333 234:0.35 235:0.35 236:0.3667 237:0.3667 238:0.3833 239:0.4 240:0.4 241:0.4167 242:0.4167 243:0.4167 244:0.4167 245:0.4667 246:0.4833 247:0.4667 248:0.4833 249:0.5167 250:0.5333 251:0.55 252:0.5833 253:0.6167 254:0.65 255:0.7 256:0.7333 257:0.7833 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:1 287:1 288:0.8167 289:0.8167 290:0.7333 291:0.7 292:0.6667 293:0.6667 294:0.6667 295:0.6333 296:0.6167 297:0.5833 298:0.5667 299:0.5167 300:0.5 301:0.4833 302:0.4667 303:0.45 304:0.4167 305:0.4 306:0.4 307:0.4 308:0.4 309:0.4 310:0.3833 311:0.3833 312:0.35 313:0.3333 314:0.3333 315:0.3333 316:0.3167 317:0.3167 318:0.3167 319:0.3167 320:0.3 321:0.3 322:0.3 323:0.3 324:0.2833 325:0.2833 326:0.2833 327:0.2833 328:0.2833 329:0.2833 330:0.2667 331:0.2667 332:0.2667 333:0.2667 334:0.2667 335:0.2667 336:0.2667 337:0.2667 338:0.25 339:0.25 340:0.25 341:0.25 342:0.25 343:0.25 344:0.25 345:0.25 346:0.25 347:0.25 348:0.25 349:0.25 350:0.25 351:0.25 352:0.25 353:0.25 354:0.25 355:0.25 356:0.25 357:0.25 358:0.25 359:0.25 360:0.25 +-0.17667374294657 1:0.45 2:0.45 3:0.45 4:0.45 5:0.45 6:0.45 7:0.45 8:0.45 9:0.45 10:0.45 11:0.45 12:0.45 13:0.45 14:0.45 15:0.45 16:0.45 17:0.45 18:0.4667 19:0.45 20:0.4667 21:0.45 22:0.4667 23:0.45 24:0.45 25:0.4667 26:0.4667 27:0.4667 28:0.4667 29:0.4667 30:0.4833 31:0.4833 32:0.4833 33:0.4833 34:0.5 35:0.5 36:0.5 37:0.5167 38:0.5167 39:0.5333 40:0.5333 41:0.5333 42:0.55 43:0.55 44:0.55 45:0.55 46:0.55 47:0.55 48:0.5833 49:0.5833 50:0.6 51:0.6167 52:0.6333 53:0.6333 54:0.65 55:0.6667 56:0.6833 57:0.7 58:0.7167 59:0.7333 60:0.7333 61:0.75 62:0.7667 63:0.7667 64:0.7833 65:0.85 66:0.5667 67:0.5667 68:0.5667 69:0.5667 70:0.5667 71:0.55 72:0.55 73:0.55 74:0.55 75:0.55 76:0.55 77:0.55 78:0.55 79:0.55 80:0.5667 81:1 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:1 107:1 108:1 109:1 110:1 111:1 112:1 113:1 114:1 115:1 116:1 117:1 118:0.9667 119:0.9333 120:0.9167 121:0.8833 122:0.8667 123:0.8333 124:0.8167 125:0.7333 126:0.7167 127:0.7 128:0.7 129:0.7 130:0.65 131:0.6333 132:0.6333 133:0.6167 134:0.6 135:0.6 136:0.5833 137:0.5667 138:0.5667 139:0.55 140:0.55 141:0.5333 142:0.50873684 143:0.50873684 144:0.49126316 145:0.49126316 146:0.47368421 147:0.47368421 148:0.47368421 149:0.45610526 150:0.45610526 151:0.47368421 152:0.45610526 153:0.47368421 154:0.45610526 155:0.45610526 156:0.45610526 157:0.44639088 158:0.44639088 159:0.44639088 160:0.41071218 161:0.41071218 162:0.41071218 163:0.41071218 164:0.41071218 165:0.41071218 166:0.39281926 167:0.39281926 168:0.39281926 169:0.39281926 170:0.39281926 171:0.39281926 172:0.39281926 173:0.39281926 174:0.39281926 175:0.39281926 176:0.39281926 177:0.39281926 178:0.39281926 179:0.39281926 180:0.39281926 181:0.39281926 182:0.39281926 183:0.39281926 184:0.39281926 185:0.39281926 186:0.39281926 187:0.39281926 188:0.39281926 189:0.39281926 190:0.39281926 191:0.39281926 192:0.39281926 193:0.39281926 194:0.39281926 195:0.39281926 196:0.39281926 197:0.39281926 198:0.39281926 199:0.39281926 200:0.39281926 201:0.39281926 202:0.39281926 203:0.39281926 204:0.39281926 205:0.41071218 206:0.41071218 207:0.41071218 208:0.41071218 209:0.41071218 210:0.41071218 211:0.41071218 212:0.41071218 213:0.41071218 214:0.41071218 215:0.44639088 216:0.44639088 217:0.4642838 218:0.4642838 219:0.4642838 220:0.4642838 221:0.5167 222:0.5 223:0.5167 224:0.5167 225:0.5333 226:0.5333 227:0.55 228:0.4667 229:0.45 230:0.45 231:0.45 232:0.45 233:0.45 234:0.45 235:0.45 236:0.45 237:0.45 238:0.45 239:0.45 240:0.4667 241:0.4833 242:0.5 243:1 244:1 245:1 246:1 247:1 248:1 249:1 250:1 251:1 252:1 253:1 254:1 255:1 256:1 257:1 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:1 287:1 288:1 289:1 290:1 291:1 292:1 293:1 294:1 295:1 296:1 297:1 298:1 299:0.9 300:0.8833 301:0.75 302:0.7333 303:0.7333 304:0.7333 305:0.75 306:0.75 307:0.6667 308:0.65 309:0.6667 310:0.6667 311:0.65 312:0.65 313:0.6333 314:0.6333 315:0.6167 316:0.6 317:0.6 318:0.5833 319:0.5833 320:0.5667 321:0.5667 322:0.55 323:0.55 324:0.5333 325:0.5333 326:0.5333 327:0.5167 328:0.5167 329:0.5167 330:0.5 331:0.5 332:0.5 333:0.5 334:0.4833 335:0.4833 336:0.4833 337:0.4833 338:0.4833 339:0.4833 340:0.4833 341:0.4667 342:0.4667 343:0.4667 344:0.4667 345:0.4667 346:0.4667 347:0.4667 348:0.45 349:0.45 350:0.45 351:0.45 352:0.45 353:0.45 354:0.45 355:0.45 356:0.45 357:0.45 358:0.45 359:0.45 360:0.45 +-0.07818660114870858 1:0.4333 2:0.4333 3:0.4333 4:0.4333 5:0.4333 6:0.4333 7:0.4333 8:0.4333 9:0.4333 10:0.4333 11:0.4333 12:0.4333 13:0.4333 14:0.4333 15:0.4333 16:0.4333 17:0.4333 18:0.45 19:0.45 20:0.45 21:0.45 22:0.45 23:0.45 24:0.45 25:0.45 26:0.45 27:0.45 28:0.45 29:0.45 30:0.4833 31:0.4833 32:0.4833 33:0.4833 34:0.4833 35:0.5 36:0.4833 37:0.5 38:0.5 39:0.5 40:0.5167 41:0.5167 42:0.5333 43:0.5333 44:0.55 45:0.55 46:0.5667 47:0.5833 48:0.5833 49:0.5833 50:0.6 51:0.6333 52:0.65 53:0.6667 54:0.65 55:0.6667 56:0.6667 57:0.6667 58:0.6833 59:0.6833 60:0.7 61:0.7167 62:0.7333 63:0.8 64:0.8 65:0.8167 66:0.8333 67:0.5833 68:0.5833 69:0.5833 70:0.5833 71:0.5667 72:0.5667 73:0.5667 74:0.5667 75:0.5667 76:0.5667 77:0.5667 78:0.5667 79:0.5667 80:0.5667 81:1 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:1 107:1 108:1 109:1 110:1 111:1 112:1 113:1 114:1 115:0.9667 116:0.9667 117:0.9333 118:0.9167 119:0.9167 120:0.9167 121:0.9167 122:0.8667 123:0.8 124:0.7833 125:0.7667 126:0.75 127:0.75 128:0.7333 129:0.7167 130:0.7 131:0.6333 132:0.6333 133:0.6167 134:0.6 135:0.6 136:0.5833 137:0.5667 138:0.5667 139:0.55 140:0.55 141:0.5333 142:0.50873684 143:0.50873684 144:0.49126316 145:0.49126316 146:0.47368421 147:0.47368421 148:0.47368421 149:0.45610526 150:0.45610526 151:0.45610526 152:0.45610526 153:0.43863158 154:0.43863158 155:0.43863158 156:0.43863158 157:0.4286051 158:0.41071218 159:0.41071218 160:0.41071218 161:0.41071218 162:0.41071218 163:0.41071218 164:0.41071218 165:0.39281926 166:0.39281926 167:0.39281926 168:0.39281926 169:0.39281926 170:0.39281926 171:0.39281926 172:0.39281926 173:0.39281926 174:0.39281926 175:0.39281926 176:0.39281926 177:0.39281926 178:0.39281926 179:0.39281926 180:0.39281926 181:0.39281926 182:0.39281926 183:0.39281926 184:0.39281926 185:0.39281926 186:0.39281926 187:0.39281926 188:0.39281926 189:0.39281926 190:0.39281926 191:0.39281926 192:0.39281926 193:0.39281926 194:0.39281926 195:0.39281926 196:0.39281926 197:0.39281926 198:0.41071218 199:0.41071218 200:0.41071218 201:0.41071218 202:0.41071218 203:0.41071218 204:0.41071218 205:0.41071218 206:0.41071218 207:0.41071218 208:0.41071218 209:0.41071218 210:0.4286051 211:0.4286051 212:0.4286051 213:0.4286051 214:0.44639088 215:0.44639088 216:0.44639088 217:0.4642838 218:0.4642838 219:0.4642838 220:0.48217672 221:0.5167 222:0.5167 223:0.5167 224:0.5167 225:0.5333 226:0.5667 227:0.5667 228:0.5833 229:0.5833 230:0.5833 231:0.5833 232:0.6 233:0.6167 234:0.6333 235:0.6333 236:0.65 237:0.6667 238:0.6833 239:0.7 240:0.6 241:0.6 242:0.6 243:0.6 244:0.6 245:0.6 246:0.6 247:0.6 248:0.6167 249:0.6 250:0.6333 251:0.65 252:1 253:1 254:1 255:1 256:1 257:1 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:1 287:1 288:1 289:1 290:1 291:1 292:1 293:1 294:1 295:1 296:1 297:0.85 298:0.8333 299:0.8333 300:0.8333 301:0.8333 302:0.7667 303:0.75 304:0.75 305:0.75 306:0.75 307:0.7333 308:0.7167 309:0.7 310:0.6833 311:0.6667 312:0.65 313:0.6333 314:0.6333 315:0.6167 316:0.6167 317:0.6 318:0.5833 319:0.5833 320:0.5667 321:0.5667 322:0.55 323:0.55 324:0.5333 325:0.5333 326:0.5333 327:0.5167 328:0.5167 329:0.5167 330:0.5 331:0.5 332:0.5 333:0.5 334:0.4833 335:0.4833 336:0.4833 337:0.4833 338:0.4833 339:0.4833 340:0.4833 341:0.4667 342:0.4667 343:0.4667 344:0.4667 345:0.4667 346:0.45 347:0.45 348:0.45 349:0.45 350:0.45 351:0.45 352:0.45 353:0.45 354:0.45 355:0.45 356:0.45 357:0.45 358:0.45 359:0.45 360:0.4333 +-1.40280426951943 142:0.84210526 143:0.84210526 144:0.84210526 145:0.84210526 146:0.78947368 147:0.77189474 148:0.73684211 149:0.73684211 150:0.73684211 151:0.73684211 152:0.73684211 153:0.73684211 154:0.73684211 155:0.73684211 156:0.73684211 157:0.71424898 158:0.71424898 159:0.71424898 160:0.71424898 161:0.6964632 162:0.6964632 163:0.6964632 164:0.6964632 165:0.6964632 166:0.6964632 167:0.6964632 168:0.6964632 169:0.67857028 170:0.66067736 171:0.66067736 172:0.66067736 173:0.66067736 174:0.66067736 175:0.66067736 176:0.66067736 177:0.66067736 178:0.66067736 179:0.66067736 180:0.66067736 181:0.66067736 182:0.66067736 183:0.66067736 184:0.67857028 185:0.67857028 186:0.6964632 187:0.6964632 188:0.6964632 189:0.6964632 190:0.6964632 191:0.6964632 192:0.6964632 193:0.6964632 194:0.6964632 195:0.6964632 196:0.6964632 197:0.6964632 198:0.6964632 199:0.71424898 200:0.71424898 201:0.71424898 202:0.71424898 203:0.7321419 204:0.7321419 205:0.7321419 206:0.7321419 207:0.80360644 208:0.7321419 209:0.7321419 210:0.7321419 211:0.7321419 212:0.7321419 213:0.7321419 214:0.7321419 215:0.75003482 216:0.75003482 217:0.83928514 218:0.83928514 219:0.85717806 220:0.89285676 +-0.8882500798720596 1:0.35 2:0.35 3:0.35 4:0.35 5:0.35 6:0.35 7:0.35 8:0.35 9:0.35 10:0.35 11:0.35 12:0.35 13:0.35 14:0.35 15:0.35 16:0.35 17:0.35 18:0.35 19:0.35 20:0.3667 21:0.3667 22:0.3667 23:0.3667 24:0.3667 25:0.3667 26:0.3667 27:0.3667 28:0.3833 29:0.3833 30:0.3833 31:0.3833 32:0.3833 33:0.4 34:0.4 35:0.4 36:0.4 37:0.4167 38:0.4167 39:0.4167 40:0.4333 41:0.4333 42:0.4333 43:0.4667 44:0.4667 45:0.4833 46:0.4833 47:0.4833 48:0.4833 49:0.4833 50:0.5 51:0.5167 52:0.5167 53:0.5333 54:0.55 55:0.55 56:0.5667 57:0.5833 58:0.5833 59:0.5833 60:0.6667 61:0.65 62:0.6667 63:0.7167 64:0.7167 65:0.7 66:0.7667 67:1 68:1 69:1 70:1 71:1 72:0.75 73:0.75 74:0.7333 75:0.7333 76:0.5667 77:0.5667 78:0.5667 79:0.5667 80:0.5667 81:0.5667 82:0.5667 83:0.5667 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:1 107:1 108:0.7167 109:0.6667 110:0.6333 111:0.6 112:0.5833 113:0.55 114:0.5333 115:0.5167 116:0.5 117:0.4667 118:0.4667 119:0.45 120:0.4333 121:0.4167 122:0.4167 123:0.4167 124:0.4167 125:0.4167 126:0.4167 127:0.4167 128:0.4167 129:0.4167 130:0.4167 131:0.4167 132:0.4167 133:0.4167 134:0.4333 135:0.4333 136:0.4333 137:0.4333 138:0.4333 139:0.4333 140:0.4333 141:0.4333 142:0.40347368 143:0.386 144:0.386 145:0.386 146:0.36842105 147:0.386 148:0.36842105 149:0.386 150:0.386 151:0.36842105 152:0.386 153:0.36842105 154:0.386 155:0.36842105 156:0.64915789 157:0.64289158 158:0.64289158 159:0.64289158 160:0.64289158 161:0.64289158 162:0.71424898 163:0.71424898 164:0.71424898 165:0.71424898 166:0.71424898 167:0.67857028 168:0.67857028 169:0.67857028 170:0.66067736 171:0.66067736 172:0.66067736 173:0.66067736 174:0.66067736 175:0.58931996 176:0.58931996 177:0.58931996 178:0.35714056 179:0.35714056 180:0.35714056 181:0.35714056 182:0.35714056 183:0.35714056 184:0.35714056 185:0.30356894 186:0.30356894 187:0.30356894 188:0.28567602 189:0.28567602 190:0.30356894 191:0.28567602 192:0.30356894 193:0.30356894 194:0.30356894 195:0.30356894 196:0.30356894 197:0.30356894 198:0.30356894 199:0.28567602 200:0.28567602 201:0.30356894 202:0.30356894 203:0.30356894 204:0.30356894 205:0.30356894 206:0.30356894 207:0.30356894 208:0.30356894 209:0.33924764 210:0.33924764 211:0.33924764 212:0.33924764 213:0.33924764 214:0.33924764 215:0.35714056 216:0.4999625 217:0.4999625 218:0.4999625 219:0.4999625 220:0.4999625 221:0.5167 222:0.4667 223:0.4833 224:0.4667 225:0.4833 226:0.4667 227:0.4833 228:0.4667 229:0.4833 230:0.4667 231:0.4833 232:0.5 233:0.5 234:0.5167 235:0.5333 236:0.5333 237:0.55 238:0.5667 239:0.5833 240:0.7 241:0.7 242:0.7 243:0.7 244:0.7167 245:0.7167 246:0.7333 247:0.75 248:0.7833 249:1 250:1 251:1 252:0.6667 253:0.65 254:0.65 255:0.65 256:0.65 257:0.65 258:0.65 259:0.65 260:0.65 261:0.65 262:0.65 263:0.65 264:0.65 265:0.65 266:0.65 267:0.65 268:0.65 269:0.65 270:0.65 271:0.65 272:0.65 273:0.65 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:1 287:1 288:1 289:1 290:1 291:0.95 292:0.9 293:0.8667 294:0.8333 295:0.8 296:0.7667 297:0.7333 298:0.7167 299:0.7 300:0.6667 301:0.65 302:0.6333 303:0.6167 304:0.6 305:0.5833 306:0.5667 307:0.5833 308:0.5667 309:0.5667 310:0.5667 311:0.5833 312:0.5833 313:0.5667 314:0.5833 315:0.5667 316:0.5833 317:0.5833 318:0.5833 319:0.5833 320:0.5833 321:0.5833 322:0.6 323:0.6 324:0.6167 325:0.6167 326:0.95 327:0.95 328:0.9 329:0.45 330:0.4333 331:0.4167 332:0.4 333:0.4 334:0.3833 335:0.3667 336:0.3667 337:0.3667 338:0.3667 339:0.3667 340:0.3667 341:0.3667 342:0.3667 343:0.3667 344:0.3667 345:0.3667 346:0.3667 347:0.35 348:0.35 349:0.35 350:0.35 351:0.35 352:0.35 353:0.35 354:0.35 355:0.35 356:0.35 357:0.35 358:0.35 359:0.35 360:0.35 +-0.1454729085346107 1:0.2 2:0.2 3:0.2 4:0.2 5:0.2 6:0.2 7:0.2 8:0.25 9:0.1833 10:0.1833 11:0.2 12:0.2 13:0.2 14:0.2 15:0.2 16:0.2 17:0.2 18:0.2 19:0.2 20:0.2 21:0.2 22:0.2 23:0.1833 24:0.2 25:0.2 26:0.2 27:0.2 28:0.1833 29:0.1833 30:0.2 31:0.2 32:0.2 33:0.2 34:0.2 35:0.2 36:0.2 37:0.2 38:0.2 39:0.2167 40:0.2167 41:0.2167 42:0.2167 43:0.2167 44:0.2167 45:0.2667 46:0.2667 47:0.2667 48:0.2667 49:0.2667 50:0.2667 51:0.2667 52:0.2667 53:0.2667 54:0.2667 55:0.3 56:0.3 57:0.3 58:0.3 59:0.3 60:0.3 61:0.3167 62:0.35 63:0.3667 64:0.35 65:0.3833 66:0.3833 67:0.3833 68:0.4167 69:0.4167 70:0.5333 71:0.5333 72:0.5833 73:0.5667 74:0.5833 75:0.5833 76:0.6667 77:0.6667 78:0.8333 79:0.8167 80:0.8167 81:0.8 82:0.8 83:0.8 84:0.8 85:0.8 86:0.8 87:0.8 88:0.8 89:0.8 90:0.8 91:0.8167 92:1 93:1 94:0.5667 95:0.5667 96:0.55 97:0.55 98:0.5333 99:0.5333 100:0.55 101:0.55 102:0.55 103:0.55 104:0.55 105:0.5333 106:0.6167 107:1 108:1 109:1 110:1 111:1 112:1 113:1 114:1 115:1 116:1 117:1 118:1 119:1 120:1 121:1 122:1 123:1 124:0.9333 125:0.9333 126:0.9333 127:0.9333 128:0.9333 129:0.9333 130:0.9333 131:0.9333 132:0.75 133:0.7333 134:0.7333 135:0.7167 136:0.7167 137:0.7167 138:0.7167 139:0.6667 140:0.65 141:0.65 142:0.614 143:0.614 144:0.59652632 145:0.59652632 146:0.59652632 147:0.59652632 148:0.59652632 149:0.59652632 150:0.59652632 151:0.59652632 152:0.57894737 153:0.56136842 154:0.56136842 155:0.56136842 156:0.54389474 157:0.53574834 158:0.51785542 159:0.51785542 160:0.51785542 161:0.51785542 162:0.51785542 163:0.51785542 164:0.51785542 165:0.51785542 166:0.51785542 167:0.51785542 168:0.51785542 169:0.51785542 170:0.48217672 171:0.48217672 172:0.48217672 173:0.48217672 174:0.48217672 175:0.48217672 176:0.48217672 177:0.48217672 178:0.48217672 179:0.48217672 180:0.48217672 181:0.48217672 182:0.48217672 183:0.48217672 184:0.48217672 185:0.48217672 186:0.48217672 187:0.48217672 188:0.48217672 189:0.48217672 190:0.48217672 191:0.48217672 192:0.48217672 193:0.48217672 194:0.48217672 195:0.48217672 196:0.4999625 197:0.4999625 198:0.4999625 199:0.4999625 200:0.51785542 201:0.51785542 202:0.51785542 203:0.51785542 204:0.51785542 205:0.51785542 206:0.51785542 207:0.53574834 208:0.53574834 209:0.53574834 210:0.53574834 211:0.55353412 212:0.55353412 213:0.55353412 214:0.57142704 215:0.57142704 216:0.58931996 217:0.58931996 218:0.58931996 219:0.60710574 220:0.60710574 221:0.6667 222:0.6833 223:0.6833 224:0.7 225:0.7167 226:0.7167 227:0.75 228:0.75 229:0.75 230:0.75 231:0.7667 232:0.7833 233:0.8 234:0.8167 235:0.8333 236:0.8667 237:0.8833 238:0.9 239:0.9333 240:0.95 241:0.9833 242:1 243:1 244:1 245:1 246:1 247:1 248:1 249:1 250:1 251:1 252:1 253:1 254:1 255:1 256:1 257:1 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:1 287:1 288:1 289:1 290:1 291:0.4167 292:0.4 293:0.4167 294:0.4 295:0.4167 296:0.4 297:0.4167 298:0.4167 299:0.4 300:0.4167 301:0.4 302:0.4333 303:0.4167 304:0.4167 305:0.4 306:0.4 307:0.3833 308:0.3833 309:0.3667 310:0.3667 311:0.35 312:0.3667 313:0.3667 314:0.3667 315:0.3 316:0.3 317:0.3 318:0.2833 319:0.2833 320:0.3 321:0.3 322:0.2833 323:0.3 324:0.3 325:0.2833 326:0.3 327:0.3 328:0.2833 329:0.3 330:0.2167 331:0.2167 332:0.2167 333:0.1833 334:0.1833 335:0.2 336:0.2 337:0.2 338:0.2 339:0.1833 340:0.2 341:0.2 342:0.2 343:0.2 344:0.2 345:0.2 346:0.2 347:0.2 348:0.2 349:0.2 350:0.2 351:0.2 352:0.1833 353:0.1833 354:0.2 355:0.2 356:0.2 357:0.2 358:0.2 359:0.2 360:0.2 +-0.07017368170936793 1:0.4167 2:0.4167 3:0.4167 4:0.4167 5:0.4167 6:0.4167 7:0.4 8:0.4 9:0.4167 10:0.4 11:0.4167 12:0.4 13:0.4167 14:0.4 15:0.4167 16:0.4 17:0.4 18:0.4333 19:0.4333 20:0.4333 21:0.4333 22:0.4333 23:0.4333 24:0.4333 25:0.4333 26:0.4333 27:0.4333 28:0.4333 29:0.4333 30:0.4333 31:0.4333 32:0.4333 33:0.4333 34:0.4333 35:0.4333 36:0.45 37:0.5 38:0.5 39:0.5 40:0.5 41:0.5 42:0.5 43:0.2833 44:0.2833 45:0.2833 46:0.2833 47:0.2667 48:0.2667 49:0.2667 50:0.2667 51:0.2667 52:0.2667 53:0.2667 54:0.2667 55:0.2667 56:0.2667 57:0.2667 58:0.2667 59:0.2667 60:0.2667 61:0.2667 62:0.2667 63:0.2667 64:0.2833 65:0.2833 66:0.3 67:0.7333 68:0.7333 69:0.7333 70:0.7333 71:0.4333 72:0.4333 73:0.4333 74:0.4333 75:0.4333 76:0.4333 77:0.4333 78:0.4333 79:0.4333 80:0.4333 81:0.4333 82:0.4333 83:0.4333 84:0.4833 85:0.65 86:0.65 87:0.65 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:1 107:1 108:1 109:1 110:1 111:0.9 112:0.8833 113:0.8667 114:0.8667 115:0.75 116:0.7333 117:0.7167 118:0.7167 119:0.7167 120:0.7 121:0.7167 122:0.7 123:0.7 124:0.7 125:0.5167 126:0.5167 127:0.5 128:0.4833 129:0.5 130:0.4833 131:0.45 132:0.45 133:0.4333 134:0.4333 135:0.4333 136:0.4167 137:0.4167 138:0.4 139:0.4 140:0.4 141:0.3833 142:0.35084211 143:0.35084211 144:0.35084211 145:0.35084211 146:0.35084211 147:0.35084211 148:0.35084211 149:0.35084211 150:0.35084211 151:0.35084211 152:0.33336842 153:0.33336842 154:0.31578947 155:0.31578947 156:0.31578947 157:0.30356894 158:0.28567602 159:0.28567602 160:0.28567602 161:0.28567602 162:0.26789024 163:0.26789024 164:0.26789024 165:0.26789024 166:0.26789024 167:0.26789024 168:0.26789024 169:0.26789024 170:0.26789024 171:0.26789024 172:0.26789024 173:0.26789024 174:0.26789024 175:0.26789024 176:0.26789024 177:0.26789024 178:0.26789024 179:0.26789024 180:0.26789024 181:0.26789024 182:0.26789024 183:0.26789024 184:0.26789024 185:0.26789024 186:0.26789024 187:0.26789024 188:0.26789024 189:0.26789024 190:0.26789024 191:0.26789024 192:0.26789024 193:0.26789024 194:0.26789024 195:0.26789024 196:0.26789024 197:0.26789024 198:0.26789024 199:0.26789024 200:0.26789024 201:0.28567602 202:0.30356894 203:0.30356894 204:0.30356894 205:0.30356894 206:0.30356894 207:0.30356894 208:0.30356894 209:0.32146186 210:0.30356894 211:0.30356894 212:0.30356894 213:0.30356894 214:0.30356894 215:0.32146186 216:0.32146186 217:0.32146186 218:0.32146186 219:0.33924764 220:0.33924764 221:0.3833 222:0.4 223:0.4 224:0.4 225:0.4167 226:0.4167 227:0.4333 228:0.4333 229:0.4333 230:0.45 231:0.45 232:0.4667 233:0.4833 234:0.4833 235:0.5 236:0.5333 237:0.5833 238:0.6 239:0.6167 240:0.6167 241:0.6167 242:0.6167 243:0.6167 244:0.65 245:0.6667 246:0.6833 247:0.7167 248:0.75 249:0.7833 250:0.8167 251:0.85 252:0.9 253:0.9333 254:1 255:1 256:1 257:1 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:1 287:1 288:1 289:1 290:1 291:1 292:1 293:1 294:1 295:1 296:1 297:1 298:1 299:1 300:1 301:1 302:1 303:1 304:0.6333 305:0.6167 306:0.6 307:0.6 308:0.6 309:0.5833 310:0.55 311:0.5333 312:0.5333 313:0.5167 314:0.5167 315:0.5167 316:0.4833 317:0.4833 318:0.4667 319:0.4667 320:0.4667 321:0.4667 322:0.4667 323:0.4667 324:0.45 325:0.45 326:0.45 327:0.45 328:0.4667 329:0.45 330:0.4667 331:0.45 332:0.45 333:0.45 334:0.4667 335:0.45 336:0.45 337:0.45 338:0.4333 339:0.4333 340:0.4333 341:0.4333 342:0.4333 343:0.4333 344:0.4333 345:0.4333 346:0.4333 347:0.4333 348:0.4333 349:0.4333 350:0.4333 351:0.4333 352:0.4333 353:0.4333 354:0.4333 355:0.4333 356:0.4167 357:0.4167 358:0.4167 359:0.4167 360:0.4167 +-2 1:0.1833 2:0.1833 3:0.1833 4:0.1833 5:0.1833 6:0.1833 7:0.1833 8:0.1833 9:0.1833 10:0.1833 11:0.1833 12:0.1833 13:0.1833 14:0.1833 15:0.1833 16:0.1833 17:0.1833 18:0.1833 19:0.1833 20:0.1833 21:0.1833 22:0.1833 23:0.1833 24:0.1833 25:0.1833 26:0.1833 27:0.1833 28:0.1833 29:0.1833 30:0.2 31:0.2 32:0.2 33:0.2 34:0.2 35:0.2 36:0.2 37:0.2 38:0.2 39:0.2333 40:0.2333 41:0.2333 42:0.2333 43:0.25 44:0.25 45:0.25 46:0.25 47:0.25 48:0.2667 49:0.2667 50:0.2667 51:0.2833 52:0.2833 53:0.2833 54:0.3167 55:0.3333 56:0.3333 57:0.35 58:0.35 59:0.35 60:0.35 61:0.35 62:0.3667 63:0.3667 64:0.3833 65:0.4 66:0.4167 67:0.4333 68:0.45 69:0.65 70:0.6667 71:0.7 72:0.7333 73:0.8833 74:0.8833 75:0.8833 76:1 77:1 78:1 79:1 80:1 81:1 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:0.8667 98:0.75 99:0.7167 100:0.6833 101:0.6167 102:0.5667 103:0.5167 104:0.4833 105:0.45 106:0.4167 107:0.3833 108:0.3667 109:0.35 110:0.3333 111:0.3167 112:0.3 113:0.2833 114:0.2833 115:0.2667 116:0.25 117:0.25 118:0.2333 119:0.2333 120:0.2167 121:0.2167 122:0.2167 123:0.2 124:0.2 125:0.2 126:0.1833 127:0.1833 128:0.1833 129:0.1833 130:0.1833 131:0.1833 132:0.1833 133:0.1833 134:0.1833 135:0.1833 136:0.1833 137:0.1833 138:0.1833 139:0.1833 140:0.1833 141:0.1833 142:0.14031579 143:0.14031579 144:0.14031579 145:0.14031579 146:0.14031579 147:0.14031579 148:0.14031579 149:0.14031579 150:0.14031579 151:0.14031579 152:0.14031579 153:0.14031579 154:0.14031579 155:0.14031579 156:0.14031579 157:0.12496116 158:0.12496116 159:0.51785542 160:0.48217672 161:0.48217672 162:0.48217672 163:0.48217672 164:0.48217672 165:0.48217672 166:0.48217672 167:0.48217672 168:0.48217672 169:0.48217672 170:0.48217672 171:0.4642838 172:0.4642838 173:0.4642838 174:0.4642838 175:0.4642838 176:0.4642838 177:0.4642838 178:0.4642838 179:0.4642838 180:0.4642838 181:0.4642838 182:0.4642838 183:0.4642838 184:0.089282462 185:0.089282462 186:0.089282462 187:0.089282462 188:0.089282462 189:0.089282462 190:0.089282462 191:0.071389541 192:0.089282462 193:0.089282462 194:0.089282462 195:0.089282462 196:0.089282462 197:0.089282462 198:0.089282462 199:0.089282462 200:0.089282462 201:0.089282462 202:0.089282462 203:0.089282462 204:0.089282462 205:0.089282462 206:0.089282462 207:0.089282462 208:0.089282462 209:0.089282462 210:0.089282462 211:0.089282462 212:0.089282462 213:0.089282462 214:0.089282462 215:0.089282462 216:0.071389541 217:0.089282462 218:0.089282462 219:0.089282462 220:0.089282462 221:0.15 222:0.15 223:0.15 224:0.15 225:0.15 226:0.1667 227:0.1667 228:0.1667 229:0.1667 230:0.1667 231:0.1667 232:0.1833 233:0.1833 234:0.1833 235:0.1833 236:0.1833 237:0.2 238:0.2 239:0.2 240:0.2167 241:0.2167 242:0.2167 243:0.2333 244:0.2333 245:0.25 246:0.25 247:0.2667 248:0.2833 249:0.2833 250:0.3 251:0.3167 252:0.3333 253:0.35 254:0.3667 255:0.3833 256:0.4167 257:0.45 258:0.4833 259:0.4833 260:0.4833 261:0.5333 262:0.5833 263:0.65 264:0.75 265:0.8667 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:0.85 285:0.7833 286:0.6 287:0.5667 288:0.5333 289:0.5167 290:0.4833 291:0.4667 292:0.4333 293:0.4167 294:0.4 295:0.3833 296:0.3667 297:0.3667 298:0.35 299:0.3333 300:0.3333 301:0.3167 302:0.3 303:0.3 304:0.3 305:0.2833 306:0.2833 307:0.2667 308:0.2667 309:0.2667 310:0.25 311:0.25 312:0.25 313:0.2333 314:0.1833 315:0.1833 316:0.1833 317:0.1833 318:0.1833 319:0.1833 320:0.1833 321:0.1833 322:0.1833 323:0.1833 324:0.1833 325:0.1833 326:0.1833 327:0.1833 328:0.1833 329:0.1833 330:0.1833 331:0.1833 332:0.1833 333:0.1833 334:0.1833 335:0.1833 336:0.1833 337:0.1833 338:0.1833 339:0.1833 340:0.1833 341:0.1833 342:0.1833 343:0.1833 344:0.1833 345:0.1833 346:0.1833 347:0.1833 348:0.1833 349:0.1833 350:0.1833 351:0.1833 352:0.1833 353:0.1833 354:0.1833 355:0.1833 356:0.1833 357:0.1833 358:0.1833 359:0.1833 360:0.1833 +-0.1033417771238669 1:0.1333 2:0.1333 3:0.1333 4:0.1333 5:0.1333 6:0.1333 7:0.1333 8:0.1333 9:0.1333 10:0.1333 11:0.1333 12:0.1333 13:0.1333 14:0.1333 15:0.1333 16:0.1333 17:0.1333 18:0.1333 19:0.1333 20:0.1333 21:0.1333 22:0.1333 23:0.1333 24:0.1333 25:0.1333 26:0.1333 27:0.1333 28:0.1333 29:0.1333 30:0.1333 31:0.1333 32:0.1333 33:0.1333 34:0.1333 35:0.1333 36:0.1333 37:0.15 38:0.15 39:0.15 40:0.15 41:0.15 42:0.15 43:0.15 44:0.15 45:0.15 46:0.1667 47:0.1667 48:0.1667 49:0.1667 50:0.1667 51:0.1667 52:0.1833 53:0.1833 54:0.1833 55:0.1833 56:0.1833 57:0.2 58:0.2 59:0.2 60:0.2 61:0.2 62:0.2 63:0.1833 64:0.1833 65:0.1833 66:0.1833 67:0.1833 68:0.1833 69:0.1833 70:0.1833 71:0.1833 72:0.1833 73:0.1833 74:0.1833 75:0.1833 76:0.1833 77:0.1833 78:0.1833 79:0.1833 80:0.1833 81:0.1833 82:0.1833 83:0.1833 84:0.1833 85:0.1833 86:0.1833 87:0.1833 88:0.1833 89:0.1833 90:0.1833 91:0.1833 92:0.1833 93:0.1833 94:0.1833 95:0.1833 96:0.1833 97:0.1833 98:0.1833 99:0.1833 100:0.1833 101:0.1833 102:0.1833 103:1 104:0.8667 105:0.8167 106:0.7333 107:0.7 108:0.65 109:0.6167 110:0.5833 111:0.5167 112:0.4833 113:0.4667 114:0.45 115:0.4333 116:0.4167 117:0.4 118:0.3833 119:0.3667 120:0.3667 121:0.35 122:0.3333 123:0.3333 124:0.3167 125:0.3167 126:0.3 127:0.3 128:0.3 129:0.2833 130:0.2833 131:0.2833 132:0.2667 133:0.2667 134:0.2667 135:0.25 136:0.25 137:0.25 138:0.25 139:0.25 140:0.2333 141:0.2333 142:0.19294737 143:0.19294737 144:0.19294737 145:0.17547368 146:0.17547368 147:0.17547368 148:0.17547368 149:0.17547368 150:0.17547368 151:0.17547368 152:0.17547368 153:0.17547368 154:0.17547368 155:0.15789474 156:0.15789474 157:0.14285408 158:0.14285408 159:0.14285408 160:0.12496116 161:0.12496116 162:0.12496116 163:0.12496116 164:0.12496116 165:0.12496116 166:0.12496116 167:0.12496116 168:0.12496116 169:0.12496116 170:0.12496116 171:0.12496116 172:0.12496116 173:0.12496116 174:0.12496116 175:0.12496116 176:0.12496116 177:0.12496116 178:0.12496116 179:0.12496116 180:0.12496116 181:0.12496116 182:0.12496116 183:0.12496116 184:0.12496116 185:0.12496116 186:0.12496116 187:0.12496116 188:0.12496116 189:0.12496116 190:0.12496116 191:0.12496116 192:0.12496116 193:0.12496116 194:0.12496116 195:0.12496116 196:0.12496116 197:0.12496116 198:0.12496116 199:0.12496116 200:0.12496116 201:0.12496116 202:0.12496116 203:0.12496116 204:0.12496116 205:0.12496116 206:0.12496116 207:0.12496116 208:0.12496116 209:0.12496116 210:0.14285408 211:0.14285408 212:0.14285408 213:0.14285408 214:0.14285408 215:0.14285408 216:0.14285408 217:0.14285408 218:0.14285408 219:0.160747 220:0.160747 221:0.2167 222:0.2167 223:0.2167 224:0.2167 225:0.2333 226:0.2333 227:0.2333 228:0.2333 229:0.2333 230:0.25 231:0.25 232:0.25 233:0.2667 234:0.2667 235:0.2667 236:0.2833 237:0.2833 238:0.3 239:0.3 240:0.3 241:0.3167 242:0.3333 243:0.3333 244:0.35 245:0.35 246:0.35 247:0.35 248:0.3667 249:0.3833 250:0.4 251:0.4167 252:0.4333 253:0.45 254:0.4833 255:0.5167 256:0.55 257:0.5833 258:0.5667 259:0.6 260:0.65 261:0.7167 262:0.8 263:0.9 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:0.9 281:0.7167 282:0.65 283:0.6 284:0.5833 285:0.5167 286:0.4833 287:0.45 288:0.3833 289:0.3833 290:0.3333 291:0.3333 292:0.3333 293:0.2833 294:0.2833 295:0.2667 296:0.25 297:0.25 298:0.2333 299:0.2333 300:0.2167 301:0.2167 302:0.2167 303:0.2 304:0.2 305:0.2 306:0.1833 307:0.1833 308:0.1833 309:0.1833 310:0.1833 311:0.1667 312:0.1667 313:0.1667 314:0.1667 315:0.1667 316:0.1667 317:0.15 318:0.15 319:0.15 320:0.15 321:0.15 322:0.15 323:0.15 324:0.15 325:0.15 326:0.1333 327:0.1333 328:0.1333 329:0.1333 330:0.1333 331:0.1333 332:0.1333 333:0.1333 334:0.1333 335:0.1333 336:0.1333 337:0.1333 338:0.1333 339:0.1333 340:0.1333 341:0.1333 342:0.1333 343:0.1333 344:0.1333 345:0.1333 346:0.1333 347:0.1333 348:0.1333 349:0.1333 350:0.1333 351:0.1333 352:0.1333 353:0.1333 354:0.1333 355:0.1333 356:0.1333 357:0.1333 358:0.1333 359:0.1333 360:0.1333 +-0.9972275900320716 1:0.45 2:0.45 3:0.45 4:0.45 5:0.45 6:0.45 7:0.45 8:0.45 9:0.45 10:0.45 11:0.45 12:0.45 13:0.45 14:0.45 15:0.45 16:0.45 17:0.4667 18:0.4667 19:0.4667 20:0.4667 21:0.4667 22:0.4667 23:0.4667 24:0.4833 25:0.4833 26:0.4833 27:0.4833 28:0.4833 29:0.5 30:0.5 31:0.5 32:0.5 33:0.5333 34:0.5333 35:0.5333 36:0.5333 37:0.5333 38:0.5333 39:0.55 40:0.55 41:0.5667 42:0.5667 43:0.6167 44:0.6 45:0.6167 46:0.6 47:0.6167 48:0.6833 49:0.6833 50:0.6833 51:0.6833 52:0.7 53:0.7 54:0.7167 55:0.7167 56:0.7167 57:0.7333 58:0.7833 59:1 60:1 61:1 62:1 63:1 64:1 65:1 66:1 67:1 68:1 69:1 70:1 71:1 72:1 73:1 74:1 75:1 76:1 77:1 78:1 79:1 80:1 81:1 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:1 107:1 108:1 109:1 110:1 111:1 112:1 113:1 114:1 115:1 116:1 117:1 118:1 119:1 120:1 121:1 122:1 123:0.8 124:0.7833 125:0.7667 126:0.7667 127:0.75 128:0.7333 129:0.7167 130:0.6833 131:0.6833 132:0.6833 133:0.6667 134:0.6667 135:0.6667 136:0.6667 137:0.6 138:0.5833 139:0.5833 140:0.5667 141:0.5667 142:0.52631579 143:0.52631579 144:0.50873684 145:0.50873684 146:0.50873684 147:0.49126316 148:0.49126316 149:0.49126316 150:0.49126316 151:0.45610526 152:0.45610526 153:0.45610526 154:0.45610526 155:0.45610526 156:0.45610526 157:0.44639088 158:0.44639088 159:0.4286051 160:0.4286051 161:0.4286051 162:0.4286051 163:0.4286051 164:0.4286051 165:0.4286051 166:0.39281926 167:0.39281926 168:0.39281926 169:0.39281926 170:0.39281926 171:0.39281926 172:0.39281926 173:0.39281926 174:0.39281926 175:0.39281926 176:0.39281926 177:0.39281926 178:0.39281926 179:0.39281926 180:0.39281926 181:0.39281926 182:0.39281926 183:0.39281926 184:0.39281926 185:0.39281926 186:0.39281926 187:0.39281926 188:0.39281926 189:0.39281926 190:0.39281926 191:0.39281926 192:0.39281926 193:0.39281926 194:0.39281926 195:0.39281926 196:0.39281926 197:0.41071218 198:0.41071218 199:0.41071218 200:0.41071218 201:0.41071218 202:0.41071218 203:0.41071218 204:0.41071218 205:0.4286051 206:0.4286051 207:0.4286051 208:0.4286051 209:0.4286051 210:0.44639088 211:0.44639088 212:0.44639088 213:0.44639088 214:0.4642838 215:0.4642838 216:0.4642838 217:0.48217672 218:0.48217672 219:0.4999625 220:0.4999625 221:0.5333 222:0.55 223:0.55 224:0.5667 225:0.5667 226:0.5833 227:0.6 228:0.6 229:0.6 230:0.6 231:0.6333 232:0.65 233:0.6667 234:0.6833 235:0.7 236:0.7167 237:0.7333 238:0.75 239:0.7667 240:0.8 241:0.8167 242:0.8167 243:0.8333 244:0.8667 245:0.9333 246:0.9667 247:1 248:1 249:1 250:1 251:1 252:1 253:1 254:1 255:1 256:1 257:0.15 258:0.15 259:0.15 260:0.15 261:0.15 262:0.15 263:0.15 264:0.15 265:0.15 266:0.15 267:0.15 268:0.15 269:0.15 270:0.15 271:0.15 272:0.15 273:0.15 274:0.15 275:0.15 276:0.15 277:0.15 278:0.15 279:0.15 280:0.15 281:0.15 282:0.15 283:0.15 284:0.15 285:0.15 286:0.15 287:0.15 288:0.15 289:0.15 290:0.15 291:1 292:1 293:1 294:1 295:1 296:1 297:1 298:1 299:1 300:0.8833 301:0.85 302:0.8333 303:0.8 304:0.7833 305:0.7667 306:0.75 307:0.7333 308:0.7167 309:0.7 310:0.6833 311:0.6667 312:0.65 313:0.6333 314:0.6333 315:0.6167 316:0.6 317:0.6 318:0.5833 319:0.5833 320:0.5667 321:0.5667 322:0.55 323:0.55 324:0.5333 325:0.5333 326:0.5333 327:0.5167 328:0.5167 329:0.5167 330:0.5 331:0.5 332:0.5 333:0.5 334:0.4833 335:0.4833 336:0.4833 337:0.4833 338:0.4833 339:0.4667 340:0.4667 341:0.4667 342:0.4667 343:0.4667 344:0.4667 345:0.4667 346:0.45 347:0.45 348:0.45 349:0.45 350:0.45 351:0.45 352:0.45 353:0.45 354:0.45 355:0.45 356:0.45 357:0.45 358:0.45 359:0.45 360:0.45 +-0.7343290063912017 1:0.3333 2:0.3333 3:0.3333 4:0.3333 5:0.3333 6:0.3333 7:0.3333 8:0.3333 9:0.3333 10:0.3333 11:0.3333 12:0.3333 13:0.3333 14:0.3333 15:0.3333 16:0.3333 17:0.3333 18:0.3333 19:0.3333 20:0.3333 21:0.35 22:0.35 23:0.35 24:0.35 25:0.35 26:0.35 27:0.35 28:0.35 29:0.3667 30:0.3667 31:0.3667 32:0.3667 33:0.3667 34:0.3833 35:0.3833 36:0.3833 37:0.3833 38:0.4 39:0.4 40:0.4 41:0.4167 42:0.4167 43:0.4167 44:0.4333 45:0.4333 46:0.4333 47:0.45 48:0.45 49:0.4667 50:0.45 51:0.45 52:0.4667 53:0.5167 54:0.5167 55:0.55 56:0.55 57:0.55 58:0.5667 59:0.5833 60:0.6 61:0.6167 62:0.6333 63:0.45 64:0.45 65:0.45 66:0.45 67:0.45 68:0.4333 69:0.45 70:0.4333 71:0.45 72:0.4333 73:0.45 74:0.4333 75:0.45 76:0.4333 77:0.45 78:0.45 79:0.45 80:0.4833 81:0.55 82:1 83:1 84:1 85:1 86:1 87:1 88:0.7333 89:0.7333 90:0.7333 91:0.4833 92:0.4833 93:0.4833 94:0.4833 95:0.4833 96:0.4833 97:0.4833 98:0.4833 99:0.4833 100:0.4667 101:0.4667 102:0.3833 103:0.35 104:0.3333 105:0.3 106:0.3 107:0.2667 108:0.25 109:0.2333 110:0.2333 111:0.2167 112:0.2 113:0.2 114:0.1833 115:0.1833 116:0.1833 117:0.1667 118:0.1667 119:0.1667 120:0.15 121:0.15 122:0.15 123:0.15 124:0.1333 125:0.1333 126:0.1333 127:0.1333 128:0.1333 129:0.1167 130:0.1167 131:0.1167 132:0.1167 133:0.1167 134:0.1167 135:0.1167 136:0.1167 137:0.1167 138:0.1167 139:0.1 140:0.1 141:0.1 142:0.052631579 143:0.052631579 144:0.052631579 145:0.052631579 146:0.052631579 147:0.052631579 148:0.052631579 149:0.052631579 150:0.052631579 151:0.052631579 152:0.052631579 153:0.052631579 154:0.052631579 155:0.052631579 156:0.052631579 157:0.035710842 158:0.035710842 159:0.035710842 160:0.035710842 161:0.035710842 162:0.035710842 163:0.035710842 164:0.035710842 165:0.035710842 166:0.035710842 167:0.035710842 168:0.035710842 169:0.035710842 170:0.035710842 171:0.035710842 172:0.035710842 173:0.035710842 174:0.035710842 175:0.035710842 176:0.035710842 177:0.035710842 178:0.035710842 179:0.035710842 180:0.035710842 181:0.035710842 182:0.035710842 183:0.035710842 184:0.035710842 185:0.035710842 186:0.035710842 187:0.035710842 188:0.035710842 189:0.035710842 190:0.035710842 191:0.035710842 192:0.035710842 193:0.035710842 194:0.035710842 195:0.035710842 196:0.035710842 197:0.035710842 198:0.035710842 199:0.035710842 200:0.035710842 201:0.035710842 202:0.035710842 203:0.035710842 204:0.035710842 205:0.035710842 206:0.035710842 207:0.035710842 208:0.035710842 209:0.035710842 210:0.035710842 211:0.035710842 212:0.035710842 213:0.035710842 214:0.035710842 215:0.035710842 216:0.035710842 217:0.035710842 218:0.035710842 219:0.035710842 220:0.035710842 221:0.1 222:0.1 223:0.1 224:0.1167 225:0.1167 226:0.1167 227:0.1167 228:0.1167 229:0.1167 230:0.1167 231:0.1167 232:0.1167 233:0.1167 234:0.1333 235:0.1333 236:0.1333 237:0.1333 238:0.1333 239:0.15 240:0.15 241:0.15 242:0.15 243:0.1667 244:0.1667 245:0.1667 246:0.1833 247:0.1833 248:0.1833 249:0.2 250:0.2 251:0.2167 252:0.2333 253:0.2333 254:0.25 255:0.2667 256:0.2833 257:0.3 258:0.3333 259:0.35 260:0.35 261:0.35 262:0.3667 263:0.6833 264:0.6833 265:0.7167 266:0.7167 267:0.8333 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:0.4833 283:0.4833 284:0.4833 285:0.4833 286:0.4833 287:0.4833 288:0.4833 289:0.4833 290:0.4833 291:0.4833 292:0.85 293:0.8167 294:0.7833 295:0.75 296:0.7333 297:0.7 298:0.6833 299:0.65 300:0.6333 301:0.6167 302:0.6 303:0.5833 304:0.5667 305:0.55 306:0.5333 307:0.5333 308:0.5167 309:0.5 310:0.5 311:0.4833 312:0.4667 313:0.4667 314:0.45 315:0.45 316:0.4333 317:0.4333 318:0.4333 319:0.4167 320:0.4167 321:0.4167 322:0.4 323:0.4 324:0.4 325:0.3833 326:0.3833 327:0.3833 328:0.3833 329:0.3667 330:0.3667 331:0.3667 332:0.3667 333:0.3667 334:0.35 335:0.35 336:0.35 337:0.35 338:0.35 339:0.35 340:0.35 341:0.35 342:0.3333 343:0.3333 344:0.3333 345:0.3333 346:0.3333 347:0.3333 348:0.3333 349:0.3333 350:0.3333 351:0.3333 352:0.3333 353:0.3333 354:0.3333 355:0.3333 356:0.3333 357:0.3333 358:0.3333 359:0.3333 360:0.3333 +-0.02674690764760544 1:0.45 2:0.45 3:0.45 4:0.45 5:0.45 6:0.45 7:0.45 8:0.45 9:0.45 10:0.45 11:0.45 12:0.45 13:0.45 14:0.45 15:0.45 16:0.45 17:0.4667 18:0.4667 19:0.4667 20:0.4667 21:0.4667 22:0.4667 23:0.4667 24:0.4833 25:0.4833 26:0.4833 27:0.4833 28:0.4833 29:0.5 30:0.5 31:0.5 32:0.5 33:0.5167 34:0.5167 35:0.5167 36:0.55 37:0.55 38:0.55 39:0.5667 40:0.55 41:0.5667 42:0.5667 43:0.5833 44:0.5833 45:0.6 46:0.6 47:0.6167 48:0.6667 49:0.6667 50:0.6667 51:0.6667 52:0.6833 53:0.7 54:0.7167 55:0.75 56:0.75 57:0.75 58:0.7667 59:1 60:1 61:1 62:1 63:1 64:1 65:1 66:1 67:1 68:1 69:1 70:1 71:1 72:1 73:1 74:1 75:1 76:1 77:1 78:1 79:1 80:1 81:1 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:1 107:1 108:1 109:1 110:1 111:1 112:1 113:1 114:0.95 115:0.95 116:0.8833 117:0.8833 118:0.8833 119:0.8833 120:0.4667 121:0.45 122:0.45 123:0.45 124:0.45 125:0.45 126:0.45 127:0.45 128:0.45 129:0.45 130:0.45 131:0.45 132:0.4667 133:0.4667 134:0.4667 135:0.4833 136:0.5167 137:0.5 138:0.5 139:0.4833 140:0.5 141:0.4833 142:0.47368421 143:0.47368421 144:0.47368421 145:0.47368421 146:0.47368421 147:0.73684211 148:0.70178947 149:0.68421053 150:0.68421053 151:0.68421053 152:0.68421053 153:0.386 154:0.386 155:0.386 156:0.36842105 157:0.35714056 158:0.35714056 159:0.35714056 160:0.35714056 161:0.35714056 162:0.35714056 163:0.35714056 164:0.35714056 165:0.35714056 166:0.35714056 167:0.35714056 168:0.35714056 169:0.35714056 170:0.35714056 171:0.35714056 172:0.35714056 173:0.33924764 174:0.33924764 175:0.33924764 176:0.33924764 177:0.33924764 178:0.33924764 179:0.33924764 180:0.33924764 181:0.33924764 182:0.33924764 183:0.33924764 184:0.33924764 185:0.33924764 186:0.33924764 187:0.33924764 188:0.33924764 189:0.33924764 190:0.33924764 191:0.33924764 192:0.33924764 193:0.33924764 194:0.33924764 195:0.33924764 196:0.33924764 197:0.33924764 198:0.33924764 199:0.35714056 200:0.35714056 201:0.37503348 202:0.37503348 203:0.37503348 204:0.37503348 205:0.39281926 206:0.39281926 207:0.39281926 208:0.39281926 209:0.39281926 210:0.39281926 211:0.39281926 212:0.39281926 213:0.39281926 214:0.39281926 215:0.39281926 216:0.4286051 217:0.4286051 218:0.44639088 219:0.48217672 220:0.48217672 221:0.5167 222:0.5333 223:0.5333 224:0.5833 225:0.5833 226:0.5833 227:0.5833 228:0.5833 229:0.5833 230:0.5833 231:0.5833 232:0.5833 233:0.5833 234:0.7167 235:0.7167 236:0.7167 237:0.7167 238:0.7167 239:0.7167 240:0.7667 241:0.8333 242:0.8333 243:0.8333 244:0.8333 245:0.8667 246:0.8667 247:1 248:1 249:1 250:1 251:1 252:1 253:1 254:1 255:1 256:1 257:1 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:1 287:1 288:1 289:1 290:1 291:1 292:1 293:1 294:1 295:1 296:1 297:1 298:1 299:1 300:1 301:1 302:1 303:0.9333 304:0.8833 305:0.8833 306:0.7667 307:0.7667 308:0.7667 309:0.7667 310:0.7667 311:0.7667 312:0.7667 313:1 314:1 315:1 316:1 317:0.4333 318:0.4 319:0.4167 320:0.4 321:0.4167 322:0.4167 323:0.4167 324:0.4167 325:0.4 326:0.4167 327:0.4 328:0.4167 329:0.4167 330:0.4167 331:0.4833 332:0.4833 333:0.4833 334:0.4833 335:0.4833 336:0.4833 337:0.4833 338:0.4833 339:0.4833 340:0.4833 341:0.4667 342:0.4667 343:0.4667 344:0.4667 345:0.4667 346:0.4667 347:0.4667 348:0.4667 349:0.4667 350:0.45 351:0.45 352:0.45 353:0.45 354:0.45 355:0.45 356:0.45 357:0.45 358:0.45 359:0.45 360:0.45 +-0.7704745852510203 1:0.6 2:0.6 3:0.6 4:0.6 5:0.6 6:0.6 7:0.55 8:0.5167 9:0.5333 10:0.5333 11:0.5167 12:0.5333 13:0.5167 14:0.5333 15:0.5167 16:0.5333 17:0.5333 18:0.5667 19:0.5833 20:0.5833 21:0.5833 22:0.6 23:0.6 24:0.6 25:0.6 26:0.6167 27:0.6167 28:0.6167 29:0.6333 30:0.6167 31:0.6167 32:0.6 33:0.6167 34:0.6167 35:0.6 36:0.6167 37:0.6 38:0.6 39:0.8167 40:0.8333 41:0.85 42:0.85 43:0.8167 44:0.8167 45:0.8167 46:0.8167 47:0.8167 48:0.8167 49:0.9167 50:0.9667 51:0.9667 52:0.9667 53:1 54:1 55:1 56:1 57:1 58:1 59:1 60:1 61:1 62:1 63:1 64:1 65:1 66:1 67:1 68:1 69:1 70:1 71:1 72:1 73:1 74:1 75:1 76:1 77:1 78:1 79:1 80:1 81:1 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:0.9833 104:0.9833 105:0.9333 106:0.9333 107:0.3833 108:0.3833 109:0.3833 110:0.3833 111:0.3667 112:0.35 113:0.35 114:0.35 115:0.35 116:0.35 117:0.35 118:0.35 119:0.3667 120:0.35 121:0.35 122:0.35 123:0.35 124:0.35 125:0.3667 126:0.45 127:0.4667 128:0.45 129:0.3667 130:0.3 131:0.3 132:0.3 133:0.3 134:0.3 135:0.3 136:0.3 137:0.3 138:0.3 139:0.3 140:0.3 141:0.3 142:0.26315789 143:0.26315789 144:0.26315789 145:0.26315789 146:0.26315789 147:0.26315789 148:0.26315789 149:0.26315789 150:0.26315789 151:0.24557895 152:0.24557895 153:0.24557895 154:0.24557895 155:0.24557895 156:0.24557895 157:0.2321044 158:0.2321044 159:0.21431862 160:0.2321044 161:0.2321044 162:0.2321044 163:0.2321044 164:0.2321044 165:0.2321044 166:0.2321044 167:0.2321044 168:0.2321044 169:0.2321044 170:0.21431862 171:0.21431862 172:0.21431862 173:0.21431862 174:0.21431862 175:0.21431862 176:0.21431862 177:0.21431862 178:0.21431862 179:0.21431862 180:0.21431862 181:0.21431862 182:0.21431862 183:0.21431862 184:0.21431862 185:0.21431862 186:0.21431862 187:0.2321044 188:0.2321044 189:0.2321044 190:0.2321044 191:0.2321044 192:0.2321044 193:0.2321044 194:0.2321044 195:0.2321044 196:0.2321044 197:0.2321044 198:0.2321044 199:0.2321044 200:0.2321044 201:0.2321044 202:0.2321044 203:0.24999732 204:0.24999732 205:0.24999732 206:0.24999732 207:0.28567602 208:0.28567602 209:0.28567602 210:0.28567602 211:0.28567602 212:0.28567602 213:0.28567602 214:0.30356894 215:0.30356894 216:0.30356894 217:0.30356894 218:0.32146186 219:0.35714056 220:0.35714056 221:0.4167 222:0.5167 223:0.5167 224:0.5167 225:0.5167 226:0.5167 227:0.5167 228:0.5167 229:0.5167 230:0.5167 231:0.5167 232:0.5167 233:0.5333 234:0.5833 235:0.5833 236:0.5667 237:0.5833 238:0.5833 239:0.5833 240:0.5833 241:0.5833 242:0.6 243:0.6167 244:0.65 245:0.6667 246:0.7 247:0.7167 248:0.7833 249:0.7833 250:0.8667 251:0.9 252:0.95 253:1 254:1 255:1 256:1 257:1 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:1 287:1 288:1 289:1 290:1 291:1 292:1 293:1 294:1 295:1 296:1 297:1 298:1 299:1 300:1 301:1 302:1 303:1 304:1 305:1 306:1 307:1 308:1 309:1 310:1 311:0.85 312:0.8333 313:0.8333 314:0.8 315:0.7833 316:0.7667 317:0.7667 318:0.7833 319:0.7333 320:0.7333 321:0.7667 322:0.6833 323:0.6667 324:0.6667 325:0.6667 326:0.6667 327:0.6667 328:0.65 329:0.6333 330:0.6167 331:0.6333 332:0.6167 333:0.6167 334:0.6333 335:0.6167 336:0.6167 337:0.6333 338:0.6167 339:0.6167 340:0.6167 341:0.6167 342:0.6167 343:0.6167 344:0.5667 345:0.5667 346:0.5667 347:0.5667 348:0.55 349:0.5667 350:0.55 351:0.5667 352:0.5667 353:0.55 354:0.55 355:0.55 356:0.9167 357:0.9167 358:0.9167 359:0.9167 360:0.9167 +-0.3110097732608271 1:0.3833 2:0.3833 3:0.4 4:0.4 5:0.4 6:0.4 7:0.4 8:0.4 9:0.4 10:0.4 11:0.4 12:0.4 13:0.4 14:0.4 15:0.4 16:0.4 17:0.4 18:0.4167 19:0.4167 20:0.4167 21:0.4167 22:0.4167 23:0.4167 24:0.4167 25:0.4167 26:0.4333 27:0.4333 28:0.4333 29:0.4333 30:0.4333 31:0.45 32:0.45 33:0.45 34:0.45 35:0.4667 36:0.4667 37:0.4667 38:0.4833 39:0.4833 40:0.4833 41:0.5 42:0.5 43:0.5333 44:0.55 45:0.55 46:0.5667 47:0.5667 48:0.6167 49:0.6167 50:0.6167 51:0.6167 52:0.6167 53:0.6167 54:0.7 55:0.7 56:0.7 57:0.7 58:0.7 59:0.7 60:0.7 61:0.7167 62:1 63:1 64:1 65:1 66:0.9 67:0.9 68:0.9 69:0.9 70:0.9 71:0.9 72:1 73:1 74:1 75:1 76:0.9333 77:0.9333 78:0.9333 79:0.9333 80:0.9333 81:0.9333 82:0.9333 83:0.9333 84:0.9333 85:0.9333 86:0.9333 87:1 88:1 89:1 90:1 91:1 92:1 93:0.9667 94:0.8 95:0.5833 96:0.4667 97:0.4 98:0.4 99:0.4167 100:0.3667 101:0.3333 102:0.3 103:0.2833 104:0.25 105:0.2333 106:0.2167 107:0.2 108:0.2 109:0.1833 110:0.1833 111:0.1667 112:0.1667 113:0.15 114:0.15 115:0.15 116:0.1333 117:0.1333 118:0.1333 119:0.1167 120:0.1167 121:0.1167 122:0.1167 123:0.1167 124:0.1167 125:0.1 126:0.1 127:0.1 128:0.1 129:0.1 130:0.1 131:0.1 132:0.1 133:0.08333 134:0.08333 135:0.08333 136:0.08333 137:0.08333 138:0.08333 139:0.08333 140:0.08333 141:0.08333 142:0.035084211 143:0.035084211 144:0.035084211 145:0.035084211 146:0.035084211 147:0.035084211 148:0.035084211 149:0.035084211 150:0.035084211 151:0.035084211 152:0.035084211 153:0.035084211 154:0.035084211 155:0.035084211 156:0.035084211 157:0.017850064 158:0.017850064 159:0.017850064 160:0.017850064 161:0.017850064 162:0.017850064 163:0.017850064 164:0.017850064 165:0.017850064 166:0.017850064 167:0.017850064 168:0.017850064 169:0.017850064 170:0.017850064 171:0.017850064 172:0.017850064 173:0.017850064 174:0.017850064 175:0.017850064 176:0.017850064 177:0.017850064 178:0.017850064 179:0.017850064 180:0.017850064 181:0.017850064 182:0.017850064 183:0.017850064 184:0.017850064 185:0.017850064 186:0.017850064 187:0.017850064 188:0.017850064 189:0.017850064 190:0.017850064 191:0.017850064 192:0.017850064 193:0.017850064 194:0.017850064 195:0.017850064 196:0.017850064 197:0.017850064 198:0.017850064 199:0.017850064 200:0.017850064 201:0.017850064 202:0.017850064 203:0.017850064 204:0.035710842 205:0.035710842 206:0.035710842 207:0.035710842 208:0.035710842 209:0.035710842 210:0.035710842 211:0.035710842 212:0.035710842 213:0.035710842 214:0.035710842 215:0.035710842 216:0.035710842 217:0.035710842 218:0.035710842 219:0.035710842 220:0.035710842 221:0.1 222:0.1 223:0.1 224:0.1167 225:0.1167 226:0.1167 227:0.1167 228:0.1167 229:0.1167 230:0.1167 231:0.1167 232:0.1167 233:0.1167 234:0.1333 235:0.1333 236:0.1333 237:0.1333 238:0.1333 239:0.15 240:0.15 241:0.15 242:0.15 243:0.1667 244:0.1667 245:0.1667 246:0.1833 247:0.1833 248:0.1833 249:0.2 250:0.2 251:0.2167 252:0.2333 253:0.2333 254:0.25 255:0.2667 256:0.2833 257:0.3 258:0.3333 259:0.35 260:0.3833 261:0.4333 262:0.4667 263:0.5333 264:0.75 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:0.9 281:0.9 282:0.8167 283:0.75 284:0.7 285:0.65 286:0.6 287:0.5833 288:0.5833 289:0.5833 290:0.5833 291:0.5833 292:0.5833 293:0.5833 294:0.5833 295:0.5833 296:0.6 297:0.6 298:0.6 299:0.6 300:0.7 301:0.3833 302:0.3667 303:0.3833 304:0.3833 305:0.3667 306:0.3833 307:0.3667 308:0.3833 309:0.1167 310:0.1167 311:0.1167 312:0.1167 313:0.1167 314:0.1167 315:0.1167 316:0.1167 317:0.1167 318:0.1167 319:0.1 320:0.1 321:0.1 322:0.1 323:0.1 324:0.1 325:0.1167 326:0.1167 327:0.1167 328:0.1167 329:0.1167 330:0.1 331:0.1 332:0.1 333:0.1167 334:0.1167 335:0.1167 336:0.1167 337:0.1167 338:0.1167 339:0.1167 340:0.1 341:0.1167 342:0.1167 343:0.1167 344:0.1167 345:0.1167 346:0.1 347:0.1 348:0.1 349:0.1167 350:0.1167 351:0.1 352:0.1 353:0.1 354:0.1 355:0.1 356:0.1 357:0.1167 358:0.3833 359:0.3833 360:0.3833 +-0.1273458683593925 1:0.4333 2:0.4333 3:0.4333 4:0.4333 5:0.4333 6:0.4333 7:0.4333 8:0.4333 9:0.4333 10:0.4333 11:0.45 12:0.45 13:0.45 14:0.45 15:0.4667 16:0.4833 17:0.4667 18:0.4667 19:0.4667 20:0.4667 21:0.4667 22:0.4667 23:0.4667 24:0.4667 25:0.4667 26:0.4667 27:0.4833 28:0.5 29:0.5 30:0.5 31:0.5 32:0.5 33:0.6333 34:0.65 35:0.6667 36:0.6833 37:1 38:1 39:1 40:1 41:1 42:1 43:1 44:1 45:1 46:1 47:0.8667 48:0.8667 49:0.8667 50:0.8667 51:0.8667 52:0.8667 53:0.8667 54:0.9167 55:0.9167 56:0.9167 57:0.9167 58:1 59:1 60:1 61:1 62:1 63:1 64:1 65:1 66:1 67:1 68:1 69:1 70:1 71:1 72:1 73:1 74:1 75:1 76:0.9167 77:0.9167 78:0.9167 79:0.9167 80:0.9167 81:1 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:1 107:1 108:1 109:1 110:1 111:1 112:0.7167 113:0.6833 114:0.6833 115:0.6833 116:0.6833 117:0.4667 118:0.4667 119:0.4667 120:0.4667 121:0.4667 122:0.4667 123:0.4667 124:0.4667 125:0.4667 126:0.4667 127:0.4667 128:0.4833 129:0.5333 130:0.4667 131:0.45 132:0.45 133:0.4333 134:0.4333 135:0.4333 136:0.4333 137:0.4333 138:0.4333 139:0.4333 140:0.4333 141:0.4333 142:0.40347368 143:0.40347368 144:0.40347368 145:0.40347368 146:0.40347368 147:0.40347368 148:0.21052632 149:0.21052632 150:0.21052632 151:0.21052632 152:0.21052632 153:0.21052632 154:0.21052632 155:0.21052632 156:0.21052632 157:0.1964257 158:0.1964257 159:0.1964257 160:0.1964257 161:0.1964257 162:0.1964257 163:0.1964257 164:0.1964257 165:0.1964257 166:0.1964257 167:0.1964257 168:0.1964257 169:0.37503348 170:0.37503348 171:0.37503348 172:0.37503348 173:0.37503348 174:0.37503348 175:0.37503348 176:0.37503348 177:0.37503348 178:0.37503348 179:0.37503348 180:0.37503348 181:0.37503348 182:0.37503348 183:0.37503348 184:0.37503348 185:0.37503348 186:0.37503348 187:0.37503348 188:0.37503348 189:0.37503348 190:0.37503348 191:0.37503348 192:0.37503348 193:0.39281926 194:0.37503348 195:0.39281926 196:0.37503348 197:0.37503348 198:0.39281926 199:0.39281926 200:0.39281926 201:0.39281926 202:0.39281926 203:0.39281926 204:0.39281926 205:0.24999732 206:0.26789024 207:0.26789024 208:0.26789024 209:0.24999732 210:0.24999732 211:0.26789024 212:0.24999732 213:0.24999732 214:0.26789024 215:0.24999732 216:0.24999732 217:0.24999732 218:0.24999732 219:0.24999732 220:0.26789024 221:0.3 222:0.3 223:0.3167 224:0.3167 225:0.3167 226:0.35 227:0.35 228:0.3667 229:0.3667 230:0.3667 231:0.3667 232:0.3667 233:0.3667 234:0.3833 235:0.3833 236:0.4 237:0.4 238:0.4167 239:0.4333 240:0.4333 241:0.45 242:0.4667 243:0.4833 244:0.5 245:0.5167 246:0.5333 247:0.55 248:0.5667 249:0.6 250:0.6333 251:0.65 252:0.6833 253:0.7 254:0.7 255:0.7 256:0.7 257:0.7 258:0.6667 259:0.7 260:0.6333 261:0.6333 262:0.6333 263:0.6167 264:0.5667 265:0.5667 266:0.5667 267:0.5667 268:0.5667 269:0.5667 270:0.5667 271:0.5667 272:0.5667 273:0.5667 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:1 287:1 288:1 289:1 290:1 291:1 292:1 293:0.95 294:0.9167 295:0.8833 296:0.8833 297:0.8833 298:0.8833 299:0.8667 300:0.85 301:0.8167 302:0.8 303:0.7667 304:0.75 305:0.75 306:0.75 307:0.7333 308:0.6833 309:0.6667 310:0.6333 311:0.6167 312:0.6 313:0.6 314:0.6167 315:0.6 316:0.6167 317:0.6167 318:0.5667 319:0.55 320:0.55 321:0.55 322:0.55 323:0.55 324:0.55 325:0.35 326:0.35 327:0.3333 328:0.3333 329:0.3333 330:0.3333 331:0.3333 332:0.3333 333:0.3333 334:0.3333 335:0.3333 336:0.3333 337:0.3333 338:0.3333 339:0.3333 340:0.3333 341:0.3333 342:0.3333 343:0.35 344:0.35 345:0.3333 346:0.4333 347:0.4333 348:0.4333 349:0.4333 350:0.4333 351:0.4333 352:0.4333 353:0.4333 354:0.4333 355:0.4333 356:0.4333 357:0.4333 358:0.4333 359:0.4333 360:0.4333 +-1.46790920289066 1:0.2167 2:0.2167 3:0.2167 4:0.2167 5:0.2167 6:0.2167 7:0.2167 8:0.2167 9:0.2167 10:0.2167 11:0.2167 12:0.2167 13:0.2167 14:0.2167 15:0.2167 16:0.2167 17:0.2167 18:0.2167 19:0.2167 20:0.2167 21:0.2167 22:0.2167 23:0.2167 24:0.2167 25:0.2167 26:0.1 27:0.1 28:0.08333 29:0.08333 30:0.08333 31:0.08333 32:0.08333 33:0.08333 34:0.08333 35:0.08333 36:0.08333 37:0.08333 38:0.08333 39:0.1 40:0.08333 41:0.08333 42:0.08333 43:0.08333 44:0.08333 45:0.08333 46:0.08333 47:0.1 48:0.1 49:0.1 50:0.08333 51:0.08333 52:0.08333 53:0.08333 54:0.08333 55:0.08333 56:0.1 57:0.1 58:0.1 59:0.08333 60:0.08333 61:0.08333 62:0.08333 63:0.08333 64:0.08333 65:0.08333 66:0.08333 67:0.08333 68:0.08333 69:0.08333 70:0.08333 71:0.08333 72:0.08333 73:0.08333 74:0.08333 75:0.08333 76:0.1 77:0.1 78:0.1 79:0.1167 80:0.1333 81:0.1333 82:0.4333 83:0.4333 84:0.6833 85:0.6 86:0.5667 87:0.5667 88:0.5667 89:0.5667 90:0.5667 91:0.5667 92:0.5667 93:0.5667 94:0.5833 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:0.8333 106:0.8 107:0.8 108:0.8 109:0.8 110:0.8 111:0.8 112:0.5333 113:0.5333 114:0.5333 115:0.5167 116:0.5 117:0.4667 118:0.4667 119:0.45 120:0.4333 121:0.4167 122:0.4 123:0.4 124:0.3833 125:0.3667 126:0.3667 127:0.35 128:0.35 129:0.3333 130:0.3 131:0.3167 132:0.3167 133:0.3167 134:0.3167 135:0.3 136:0.3 137:0.3 138:0.2833 139:0.2833 140:0.2833 141:0.2833 142:0.24557895 143:0.22810526 144:0.22810526 145:0.22810526 146:0.22810526 147:0.22810526 148:0.22810526 149:0.22810526 150:0.22810526 151:0.21052632 152:0.21052632 153:0.21052632 154:0.21052632 155:0.21052632 156:0.21052632 157:0.17853278 158:0.17853278 159:0.17853278 160:0.17853278 161:0.17853278 162:0.17853278 163:0.17853278 164:0.17853278 165:0.17853278 166:0.17853278 167:0.17853278 168:0.17853278 169:0.17853278 170:0.17853278 171:0.17853278 172:0.17853278 173:0.17853278 174:0.17853278 175:0.17853278 176:0.17853278 177:0.17853278 178:0.17853278 179:0.17853278 180:0.17853278 181:0.17853278 182:0.17853278 183:0.17853278 184:0.160747 185:0.160747 186:0.160747 187:0.160747 188:0.160747 189:0.160747 190:0.160747 191:0.160747 192:0.160747 193:0.160747 194:0.160747 195:0.160747 196:0.160747 197:0.160747 198:0.160747 199:0.160747 200:0.160747 201:0.160747 202:0.160747 203:0.160747 204:0.160747 205:0.160747 206:0.160747 207:0.17853278 208:0.17853278 209:0.17853278 210:0.17853278 211:0.17853278 212:0.17853278 213:0.17853278 214:0.17853278 215:0.21431862 216:0.21431862 217:0.21431862 218:0.21431862 219:0.21431862 220:0.2321044 221:0.2833 222:0.2833 223:0.2833 224:0.2833 225:0.3 226:0.3 227:0.3 228:0.3167 229:0.3167 230:0.3167 231:0.3333 232:0.3333 233:0.3333 234:0.35 235:0.35 236:0.35 237:0.35 238:0.35 239:0.3667 240:0.3667 241:0.45 242:0.5 243:0.4833 244:0.5 245:0.55 246:0.5667 247:0.55 248:0.55 249:0.55 250:0.5833 251:0.6 252:0.7 253:0.7 254:0.7167 255:0.75 256:0.7833 257:0.7833 258:0.7833 259:0.7833 260:0.7833 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:0.85 277:0.7167 278:0.6167 279:0.5333 280:0.4667 281:0.4333 282:0.3833 283:0.3833 284:0.3833 285:0.3667 286:0.3667 287:0.2667 288:0.2667 289:0.2667 290:0.2833 291:0.2667 292:0.2667 293:0.2833 294:0.2667 295:0.2667 296:0.2667 297:0.2667 298:0.2667 299:0.2667 300:0.2833 301:0.2667 302:0.2667 303:0.2833 304:0.2833 305:0.2667 306:0.2833 307:0.2833 308:0.2667 309:0.2667 310:0.2833 311:0.2833 312:0.2667 313:0.2667 314:0.2667 315:0.25 316:0.25 317:0.25 318:0.25 319:0.25 320:0.2333 321:0.2333 322:0.2333 323:0.2333 324:0.2 325:0.2 326:0.2 327:0.2 328:0.2 329:0.2 330:0.2 331:0.2 332:0.2 333:0.1833 334:0.1833 335:0.2 336:0.2 337:0.2 338:0.2 339:0.1833 340:0.2 341:0.2 342:0.2 343:0.2 344:0.2 345:0.2 346:0.2 347:0.2 348:0.2 349:0.2 350:0.2 351:0.2 352:0.1833 353:0.1833 354:0.2 355:0.2167 356:0.2167 357:0.2167 358:0.2167 359:0.2167 360:0.2167 +-0.4885576313018514 1:0.35 2:0.35 3:0.35 4:0.35 5:0.35 6:0.35 7:0.35 8:0.35 9:0.35 10:0.35 11:0.35 12:0.35 13:0.35 14:0.35 15:0.35 16:0.35 17:0.35 18:0.35 19:0.35 20:0.3667 21:0.3667 22:0.3667 23:0.3667 24:0.3667 25:0.3667 26:0.3667 27:0.3667 28:0.3833 29:0.3833 30:0.3833 31:0.3833 32:0.3833 33:0.4 34:0.4 35:0.4 36:0.4 37:0.4167 38:0.4167 39:0.4167 40:0.4333 41:0.45 42:0.45 43:0.45 44:0.4667 45:0.4667 46:0.4667 47:0.4667 48:0.4833 49:0.4833 50:0.5 51:0.5333 52:0.5167 53:0.5333 54:0.55 55:0.55 56:0.6 57:0.6 58:0.6 59:0.6167 60:0.7 61:0.7 62:0.7 63:0.7 64:0.8 65:0.7 66:0.8 67:0.9 68:0.9 69:0.9667 70:0.9667 71:0.9667 72:1 73:1 74:1 75:1 76:1 77:1 78:1 79:1 80:1 81:1 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:0.5833 101:0.55 102:0.55 103:0.55 104:0.55 105:0.55 106:0.55 107:0.55 108:0.55 109:0.55 110:0.55 111:1 112:1 113:1 114:1 115:1 116:1 117:1 118:1 119:1 120:1 121:1 122:1 123:0.9667 124:0.9667 125:0.6833 126:0.6667 127:0.55 128:0.55 129:0.55 130:0.55 131:0.55 132:0.55 133:0.4833 134:0.4833 135:0.4667 136:0.4667 137:0.45 138:0.45 139:0.45 140:0.45 141:0.45 142:0.42105263 143:0.42105263 144:0.42105263 145:0.42105263 146:0.42105263 147:0.42105263 148:0.35084211 149:0.35084211 150:0.42105263 151:0.35084211 152:0.35084211 153:0.35084211 154:0.35084211 155:0.33336842 156:0.33336842 157:0.32146186 158:0.32146186 159:0.32146186 160:0.32146186 161:0.32146186 162:0.32146186 163:0.32146186 164:0.32146186 165:0.32146186 166:0.32146186 167:0.28567602 168:0.28567602 169:0.28567602 170:0.28567602 171:0.28567602 172:0.28567602 173:0.28567602 174:0.28567602 175:0.28567602 176:0.28567602 177:0.28567602 178:0.28567602 179:0.28567602 180:0.28567602 181:0.28567602 182:0.28567602 183:0.28567602 184:0.28567602 185:0.28567602 186:0.28567602 187:0.28567602 188:0.28567602 189:0.28567602 190:0.28567602 191:0.28567602 192:0.28567602 193:0.28567602 194:0.30356894 195:0.30356894 196:0.30356894 197:0.30356894 198:0.30356894 199:0.30356894 200:0.30356894 201:0.30356894 202:0.30356894 203:0.30356894 204:0.32146186 205:0.32146186 206:0.32146186 207:0.32146186 208:0.32146186 209:0.32146186 210:0.32146186 211:0.83928514 212:0.60710574 213:0.60710574 214:0.60710574 215:0.60710574 216:0.60710574 217:0.60710574 218:0.60710574 219:0.60710574 220:0.60710574 221:0.5833 222:0.5833 223:0.5667 224:0.55 225:0.5667 226:0.5667 227:0.5667 228:0.5667 229:0.5667 230:0.5667 231:0.5667 232:0.5667 233:0.3333 234:0.3333 235:0.3333 236:0.3167 237:0.3167 238:0.3167 239:0.3167 240:0.3167 241:0.3167 242:0.3 243:0.3 244:0.3 245:0.3 246:0.3 247:0.3 248:0.3 249:0.3 250:0.3 251:0.3 252:0.3 253:0.3 254:0.3 255:0.3 256:0.3 257:0.3 258:0.3333 259:0.35 260:0.3833 261:0.4333 262:0.4667 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:0.7833 280:0.7833 281:0.7833 282:0.7833 283:0.7833 284:0.7833 285:1 286:1 287:1 288:1 289:1 290:1 291:0.95 292:0.9 293:0.8667 294:0.8333 295:0.8333 296:0.8 297:0.8167 298:0.8 299:0.8 300:0.8 301:0.7833 302:0.7833 303:0.7833 304:0.7833 305:0.7833 306:0.7833 307:0.6333 308:0.5667 309:0.6 310:0.5667 311:0.6167 312:0.6 313:0.5667 314:0.55 315:0.4667 316:0.4667 317:0.45 318:0.45 319:0.45 320:0.4333 321:0.4333 322:0.4333 323:0.4167 324:0.4167 325:0.4167 326:0.4 327:0.4 328:0.4 329:0.4 330:0.3833 331:0.3833 332:0.3833 333:0.3833 334:0.3833 335:0.3667 336:0.3667 337:0.3667 338:0.3667 339:0.3667 340:0.3667 341:0.3667 342:0.3667 343:0.3667 344:0.3667 345:0.35 346:0.35 347:0.35 348:0.35 349:0.35 350:0.35 351:0.35 352:0.35 353:0.35 354:0.35 355:0.35 356:0.35 357:0.35 358:0.35 359:0.35 360:0.35 +-1.130700285543645 1:0.4 2:0.4 3:0.4 4:0.4 5:0.4 6:0.4 7:0.4 8:0.4 9:0.4 10:0.4167 11:0.4167 12:0.4167 13:0.4167 14:0.4333 15:0.4333 16:0.4333 17:0.4333 18:0.4333 19:0.4333 20:0.4333 21:0.4333 22:0.4333 23:0.4333 24:0.4333 25:0.4667 26:0.4667 27:0.4667 28:0.4667 29:0.4667 30:0.4833 31:0.4833 32:0.4833 33:0.4833 34:0.5 35:0.5 36:0.5 37:0.5167 38:0.5333 39:0.5333 40:0.55 41:0.5333 42:0.5833 43:0.5833 44:0.5833 45:0.6 46:0.6 47:0.65 48:0.65 49:0.6333 50:0.65 51:0.6667 52:0.6833 53:0.7167 54:0.7333 55:0.75 56:0.7667 57:0.8333 58:0.8333 59:0.8333 60:0.8667 61:0.8833 62:0.8833 63:0.9833 64:0.9833 65:1 66:1 67:1 68:1 69:1 70:1 71:1 72:1 73:1 74:1 75:1 76:1 77:1 78:1 79:1 80:1 81:1 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:1 107:1 108:1 109:1 110:1 111:1 112:1 113:1 114:1 115:0.8833 116:0.8667 117:0.85 118:0.8333 119:0.8333 120:0.8333 121:0.7833 122:0.7833 123:0.6833 124:0.6667 125:0.65 126:0.6333 127:0.6167 128:0.6167 129:0.6333 130:0.5667 131:0.5667 132:0.55 133:0.55 134:0.55 135:0.55 136:0.5167 137:0.5 138:0.5 139:0.4833 140:0.4833 141:0.4667 142:0.43863158 143:0.43863158 144:0.42105263 145:0.42105263 146:0.42105263 147:0.42105263 148:0.386 149:0.386 150:0.386 151:0.36842105 152:0.386 153:0.36842105 154:0.386 155:0.386 156:0.36842105 157:0.37503348 158:0.35714056 159:0.33924764 160:0.33924764 161:0.33924764 162:0.33924764 163:0.33924764 164:0.33924764 165:0.33924764 166:0.33924764 167:0.33924764 168:0.33924764 169:0.33924764 170:0.33924764 171:0.33924764 172:0.33924764 173:0.33924764 174:0.33924764 175:0.33924764 176:0.33924764 177:0.33924764 178:0.35714056 179:0.35714056 180:0.83928514 181:0.83928514 182:0.83928514 183:0.83928514 184:0.83928514 185:0.83928514 186:0.64289158 187:0.64289158 188:0.64289158 189:0.64289158 190:0.85717806 191:0.64289158 192:0.64289158 193:0.85717806 194:0.85717806 195:0.41071218 196:0.41071218 197:0.41071218 198:0.4286051 199:0.41071218 200:0.4286051 201:0.41071218 202:0.4286051 203:0.41071218 204:0.41071218 205:0.4286051 206:0.4286051 207:0.4999625 208:0.48217672 209:0.4999625 210:0.4999625 211:0.62499866 212:0.4999625 213:0.4999625 214:0.4999625 215:0.48217672 216:0.48217672 217:0.4642838 218:0.4642838 219:0.4642838 220:0.4642838 221:0.5 222:0.5 223:0.5 224:0.5 225:0.5 226:0.5167 227:0.5167 228:0.5167 229:0.5167 230:0.5167 231:0.5333 232:0.55 233:0.55 234:0.5667 235:0.5833 236:0.6 237:0.6167 238:0.75 239:0.75 240:0.7167 241:0.7167 242:0.7167 243:0.9167 244:1 245:1 246:0.85 247:0.85 248:0.85 249:0.85 250:0.85 251:0.85 252:1 253:1 254:1 255:1 256:1 257:1 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:1 287:0.9 288:0.9 289:0.9 290:0.9 291:0.9 292:0.9 293:0.9 294:0.9167 295:0.75 296:0.7333 297:0.7 298:0.7167 299:0.7167 300:0.7 301:0.6167 302:0.6 303:0.5833 304:0.5667 305:0.5667 306:0.5667 307:0.55 308:0.55 309:0.55 310:0.55 311:0.55 312:0.55 313:0.5333 314:0.5333 315:0.5333 316:0.5333 317:0.5333 318:0.4667 319:0.4667 320:0.4667 321:0.45 322:0.45 323:0.4333 324:0.4333 325:0.4333 326:0.4333 327:0.4167 328:0.4167 329:0.4167 330:0.4167 331:0.4167 332:0.4167 333:0.4167 334:0.4167 335:0.4167 336:0.4167 337:0.4 338:0.4 339:0.4 340:0.4 341:0.4 342:0.4 343:0.4 344:0.4 345:0.4 346:0.3833 347:0.3833 348:0.3833 349:0.3833 350:0.3833 351:0.3833 352:0.3833 353:0.3833 354:0.3833 355:0.3833 356:0.3833 357:0.3833 358:0.4 359:0.4 360:0.4 +-0.5977584850516793 1:0.45 2:0.45 3:0.45 4:0.45 5:0.45 6:0.45 7:0.45 8:0.45 9:0.45 10:0.45 11:0.45 12:0.45 13:0.45 14:0.45 15:0.45 16:0.45 17:0.4667 18:0.4667 19:0.4667 20:0.4667 21:0.4667 22:0.4667 23:0.4667 24:0.4833 25:0.4833 26:0.4833 27:0.4833 28:0.4833 29:0.5 30:0.5 31:0.5 32:0.5 33:0.5 34:0.5 35:0.5167 36:0.5167 37:0.55 38:0.5167 39:0.5667 40:0.55 41:0.5667 42:0.5667 43:0.5833 44:0.5833 45:0.6 46:0.6167 47:0.6167 48:0.6 49:0.6167 50:0.65 51:0.6667 52:0.65 53:0.6667 54:0.7 55:0.7 56:0.75 57:0.7667 58:0.7833 59:0.7667 60:0.8333 61:0.85 62:0.9333 63:0.9333 64:0.9333 65:0.9667 66:0.9667 67:1 68:1 69:1 70:1 71:1 72:1 73:1 74:1 75:1 76:1 77:1 78:1 79:1 80:1 81:1 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:0.8333 101:0.8333 102:0.8333 103:0.8333 104:0.8333 105:0.8333 106:0.8333 107:1 108:1 109:1 110:1 111:1 112:1 113:1 114:1 115:1 116:1 117:1 118:0.8833 119:0.7667 120:0.7667 121:0.75 122:0.7333 123:0.7167 124:0.7167 125:0.7167 126:0.7167 127:0.6667 128:0.6 129:0.6 130:0.6 131:0.6 132:0.5667 133:0.5667 134:0.5667 135:0.5667 136:0.5167 137:0.5167 138:0.5167 139:0.5167 140:0.5167 141:0.4667 142:0.43863158 143:0.43863158 144:0.43863158 145:0.43863158 146:0.42105263 147:0.40347368 148:0.40347368 149:0.40347368 150:0.40347368 151:0.386 152:0.386 153:0.386 154:0.386 155:0.386 156:0.36842105 157:0.35714056 158:0.35714056 159:0.35714056 160:0.35714056 161:0.35714056 162:0.35714056 163:0.35714056 164:0.35714056 165:0.35714056 166:0.35714056 167:0.35714056 168:0.35714056 169:0.35714056 170:0.35714056 171:1 172:0.85717806 173:0.4286051 174:0.4286051 175:0.4286051 176:0.4286051 177:0.4286051 178:0.4286051 179:0.4286051 180:0.41071218 181:0.41071218 182:0.41071218 183:0.41071218 184:0.41071218 185:0.39281926 186:0.39281926 187:0.39281926 188:0.39281926 189:0.39281926 190:0.39281926 191:0.39281926 192:0.39281926 193:0.39281926 194:0.35714056 195:0.35714056 196:0.35714056 197:0.33924764 198:0.35714056 199:0.35714056 200:0.35714056 201:0.35714056 202:0.35714056 203:0.35714056 204:0.35714056 205:0.35714056 206:0.35714056 207:0.35714056 208:0.35714056 209:0.35714056 210:0.35714056 211:0.35714056 212:0.39281926 213:0.39281926 214:0.39281926 215:0.39281926 216:0.39281926 217:0.39281926 218:0.48217672 219:0.48217672 220:0.48217672 221:0.5167 222:0.5333 223:0.5333 224:0.55 225:0.55 226:0.5667 227:0.5667 228:0.5833 229:0.5667 230:0.6 231:0.6 232:0.5667 233:0.6 234:0.5667 235:0.6167 236:0.6333 237:0.7 238:0.7167 239:0.7333 240:0.7167 241:0.7167 242:0.7167 243:0.7333 244:0.75 245:0.7833 246:0.8 247:0.8333 248:0.8667 249:0.9167 250:0.95 251:1 252:1 253:1 254:1 255:1 256:1 257:1 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:1 287:1 288:1 289:1 290:1 291:1 292:1 293:1 294:1 295:1 296:1 297:1 298:0.9333 299:0.9333 300:0.9333 301:0.9333 302:0.9333 303:0.95 304:0.75 305:0.7333 306:0.7333 307:0.7333 308:0.7167 309:0.6667 310:0.6333 311:0.6167 312:0.6167 313:0.6167 314:0.6167 315:0.6167 316:0.6 317:0.6 318:0.5833 319:0.5833 320:0.5667 321:0.5667 322:0.5667 323:0.5667 324:0.5667 325:0.5667 326:0.5667 327:0.5667 328:0.55 329:0.55 330:0.55 331:0.55 332:0.5 333:0.5 334:0.4833 335:0.4833 336:0.4833 337:0.4833 338:0.4833 339:0.4833 340:0.4833 341:0.4667 342:0.4667 343:0.4667 344:0.4667 345:0.4667 346:0.45 347:0.45 348:0.45 349:0.45 350:0.45 351:0.45 352:0.45 353:0.45 354:0.45 355:0.45 356:0.45 357:0.45 358:0.45 359:0.45 360:0.45 +-0.1733932787329221 1:0.4333 2:0.4333 3:0.4333 4:0.4333 5:0.4667 6:0.4833 7:0.4833 8:0.4833 9:0.4833 10:0.5 11:0.5 12:0.5 13:0.45 14:0.45 15:0.45 16:0.45 17:0.45 18:0.45 19:0.45 20:0.45 21:0.45 22:0.45 23:0.5 24:0.4833 25:0.5 26:0.4833 27:0.5 28:0.4833 29:0.5 30:0.5 31:0.5 32:0.5 33:0.5167 34:0.5167 35:0.5167 36:0.5333 37:0.5333 38:0.5333 39:0.55 40:0.55 41:0.5667 42:0.5667 43:0.5667 44:0.5833 45:0.5667 46:0.65 47:0.6667 48:0.6667 49:0.6667 50:0.6833 51:0.65 52:0.65 53:0.65 54:0.65 55:0.65 56:0.65 57:0.65 58:0.5333 59:0.5333 60:0.5333 61:0.5333 62:0.5333 63:0.5333 64:0.5167 65:0.5333 66:0.5333 67:0.5333 68:0.5333 69:0.9667 70:0.9667 71:0.9667 72:0.55 73:0.55 74:0.55 75:0.55 76:0.55 77:0.55 78:0.55 79:0.55 80:0.55 81:0.55 82:0.55 83:0.55 84:0.55 85:0.55 86:0.9167 87:0.9167 88:0.9167 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:1 107:1 108:1 109:1 110:1 111:1 112:1 113:1 114:1 115:1 116:1 117:0.4667 118:0.4667 119:0.45 120:0.4333 121:0.3833 122:0.3667 123:0.3667 124:0.35 125:0.35 126:0.3333 127:0.3333 128:0.3167 129:0.3167 130:0.3 131:0.3 132:0.3 133:0.2833 134:0.2833 135:0.25 136:0.25 137:0.25 138:0.25 139:0.25 140:0.2333 141:0.2333 142:0.19294737 143:0.19294737 144:0.19294737 145:0.17547368 146:0.17547368 147:0.17547368 148:0.17547368 149:0.17547368 150:0.17547368 151:0.17547368 152:0.17547368 153:0.17547368 154:0.19294737 155:0.17547368 156:0.17547368 157:0.160747 158:0.17853278 159:0.160747 160:0.160747 161:0.160747 162:0.160747 163:0.160747 164:0.160747 165:0.160747 166:0.160747 167:0.17853278 168:0.1964257 169:0.2321044 170:0.2321044 171:0.2321044 172:0.2321044 173:0.41071218 174:0.41071218 175:0.41071218 176:0.41071218 177:0.41071218 178:0.41071218 179:0.41071218 180:0.41071218 181:0.41071218 182:0.41071218 183:0.41071218 184:0.41071218 185:0.39281926 186:0.39281926 187:0.39281926 188:0.39281926 189:0.39281926 190:0.39281926 191:0.39281926 192:0.39281926 193:0.39281926 194:0.39281926 195:0.39281926 196:0.39281926 197:0.41071218 198:0.41071218 199:0.41071218 200:0.41071218 201:0.41071218 202:0.41071218 203:0.41071218 204:0.41071218 205:0.4286051 206:0.4286051 207:0.4286051 208:0.4286051 209:0.4286051 210:0.4286051 211:0.4286051 212:0.4286051 213:0.4286051 214:0.44639088 215:0.44639088 216:0.44639088 217:0.4642838 218:0.4642838 219:0.4642838 220:0.48217672 221:0.5167 222:0.5333 223:0.5333 224:0.5333 225:0.55 226:0.5333 227:0.55 228:0.55 229:0.5667 230:0.5833 231:0.5833 232:0.6 233:0.6667 234:0.6667 235:0.6667 236:0.6833 237:0.6667 238:0.6833 239:0.6833 240:0.7 241:0.7167 242:0.7167 243:0.7333 244:0.75 245:0.7833 246:0.8 247:0.8167 248:0.8333 249:0.8667 250:0.9 251:0.95 252:0.9333 253:0.9333 254:0.9333 255:0.9333 256:0.9333 257:0.95 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:1 287:1 288:1 289:1 290:1 291:1 292:0.95 293:0.9167 294:0.8667 295:0.8333 296:0.8 297:0.7833 298:0.75 299:0.7333 300:0.7167 301:0.6833 302:0.6667 303:0.6667 304:0.6667 305:0.65 306:0.6333 307:0.6333 308:0.5667 309:0.55 310:0.55 311:0.55 312:0.55 313:0.55 314:0.55 315:0.55 316:0.4833 317:0.4833 318:0.4667 319:0.4667 320:0.4667 321:0.45 322:0.45 323:0.4333 324:0.4333 325:0.4333 326:0.4333 327:0.4167 328:0.4167 329:0.4167 330:0.4167 331:0.4 332:0.4 333:0.4 334:0.4 335:0.4 336:0.4 337:0.4 338:0.4 339:0.3833 340:0.3833 341:0.3833 342:0.3833 343:0.3833 344:0.3833 345:0.3667 346:0.3667 347:0.3667 348:0.3667 349:0.3667 350:0.3667 351:0.3667 352:0.3667 353:0.3667 354:0.3667 355:0.3667 356:0.3667 357:0.3667 358:0.3667 359:0.3667 360:0.4333 +-0.3516405260248972 1:0.3 2:0.3 3:0.3 4:0.3 5:0.3 6:0.3 7:0.3 8:0.3 9:0.3 10:0.3 11:0.3 12:0.3 13:0.3 14:0.3 15:0.3 16:0.3 17:0.3 18:0.3 19:0.3 20:0.3 21:0.3 22:0.3167 23:0.3167 24:0.3167 25:0.3167 26:0.3167 27:0.3167 28:0.3167 29:0.3167 30:0.3333 31:0.3333 32:0.3 33:0.3 34:0.3 35:0.2833 36:0.2833 37:0.2667 38:0.2833 39:0.2833 40:0.2833 41:0.2833 42:0.2667 43:0.2833 44:0.2833 45:0.2667 46:0.2833 47:0.2667 48:0.2833 49:0.2833 50:0.2667 51:0.2833 52:0.2833 53:0.2833 54:0.2833 55:0.2667 56:0.3 57:0.9667 58:1 59:1 60:0.6 61:0.4833 62:0.4833 63:0.4833 64:0.4833 65:0.4833 66:0.4833 67:0.4833 68:0.4167 69:0.4167 70:0.4167 71:0.4167 72:0.4167 73:0.4167 74:0.4167 75:0.4167 76:0.4167 77:0.4167 78:0.4167 79:0.4167 80:0.4167 81:0.4167 82:0.4167 83:0.4167 84:0.4167 85:0.4167 86:0.4333 87:0.4333 88:0.4333 89:0.4333 90:0.4333 91:0.4333 92:0.4333 93:0.4333 94:0.4333 95:0.4333 96:0.4333 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:1 107:1 108:0.9 109:0.9 110:0.9 111:0.9 112:0.9 113:0.9 114:0.9167 115:0.8833 116:0.85 117:0.8167 118:0.7833 119:0.7667 120:0.7333 121:0.7167 122:0.7 123:0.6833 124:0.6667 125:0.65 126:0.6333 127:0.6167 128:0.6 129:0.5833 130:0.5667 131:0.5667 132:0.55 133:0.5333 134:0.5333 135:0.5167 136:0.5167 137:0.5 138:0.5 139:0.4833 140:0.4833 141:0.4833 142:0.45610526 143:0.45610526 144:0.45610526 145:0.43863158 146:0.43863158 147:0.40347368 148:0.40347368 149:0.40347368 150:0.40347368 151:0.386 152:0.386 153:0.386 154:0.386 155:0.386 156:0.36842105 157:0.35714056 158:0.35714056 159:0.35714056 160:0.35714056 161:0.35714056 162:0.35714056 163:0.35714056 164:0.35714056 165:0.35714056 166:0.35714056 167:0.35714056 168:0.33924764 169:0.33924764 170:0.33924764 171:0.33924764 172:0.33924764 173:0.33924764 174:0.33924764 175:0.33924764 176:0.33924764 177:0.24999732 178:0.24999732 179:0.24999732 180:0.24999732 181:0.24999732 182:0.24999732 183:0.24999732 184:0.24999732 185:0.24999732 186:0.24999732 187:0.24999732 188:0.24999732 189:0.24999732 190:0.24999732 191:0.24999732 192:0.24999732 193:0.24999732 194:0.24999732 195:0.24999732 196:0.24999732 197:0.24999732 198:0.24999732 199:0.24999732 200:0.24999732 201:0.37503348 202:0.37503348 203:0.37503348 204:0.37503348 205:0.37503348 206:0.39281926 207:0.39281926 208:0.39281926 209:0.39281926 210:0.39281926 211:0.41071218 212:0.41071218 213:0.41071218 214:0.41071218 215:0.4286051 216:0.41071218 217:0.41071218 218:0.41071218 219:0.41071218 220:0.41071218 221:0.45 222:0.45 223:0.45 224:0.45 225:0.45 226:0.4333 227:0.45 228:0.45 229:0.5667 230:0.5833 231:0.5833 232:0.6 233:0.6167 234:0.6333 235:0.6333 236:0.6833 237:0.7 238:0.7167 239:0.7333 240:0.7667 241:0.7833 242:0.8 243:0.8667 244:0.8667 245:0.9 246:0.9333 247:1 248:1 249:1 250:1 251:1 252:1 253:1 254:1 255:1 256:1 257:1 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:0.4667 273:0.4667 274:0.4667 275:0.4 276:0.4 277:0.4 278:0.4 279:0.4 280:0.4 281:0.4 282:0.4 283:0.4 284:0.4 285:0.4 286:0.4 287:0.4 288:0.4167 289:0.4167 290:0.9167 291:0.9167 292:0.9167 293:0.9167 294:1 295:1 296:1 297:1 298:1 299:1 300:1 301:1 302:1 303:1 304:1 305:1 306:1 307:1 308:1 309:1 310:1 311:1 312:1 313:1 314:1 315:1 316:1 317:0.3833 318:0.3833 319:0.3833 320:0.3667 321:0.3667 322:0.3667 323:0.35 324:0.35 325:0.35 326:0.35 327:0.3333 328:0.3333 329:0.3333 330:0.3333 331:0.3333 332:0.3333 333:0.3167 334:0.3167 335:0.3167 336:0.3167 337:0.3167 338:0.3167 339:0.3167 340:0.3167 341:0.3 342:0.3 343:0.3 344:0.3 345:0.3 346:0.3 347:0.3 348:0.3 349:0.3 350:0.3 351:0.3 352:0.3 353:0.3 354:0.3 355:0.3 356:0.3 357:0.3 358:0.3 359:0.3 360:0.3 +-0.7970714984249795 1:0.35 2:0.35 3:0.35 4:0.35 5:0.35 6:0.35 7:0.35 8:0.35 9:0.35 10:0.35 11:0.35 12:0.35 13:0.35 14:0.35 15:0.35 16:0.35 17:0.35 18:0.35 19:0.35 20:0.3667 21:0.3667 22:0.3667 23:0.3667 24:0.3667 25:0.3667 26:0.3667 27:0.3667 28:0.3833 29:0.3833 30:0.3833 31:0.3833 32:0.3833 33:0.4 34:0.4 35:0.4 36:0.4 37:0.4167 38:0.4167 39:0.4167 40:0.4333 41:0.4333 42:0.4333 43:0.45 44:0.45 45:0.45 46:0.4667 47:0.4667 48:0.4833 49:0.4833 50:0.5 51:0.5167 52:0.5167 53:0.5333 54:0.55 55:0.55 56:0.5667 57:0.6167 58:0.6167 59:0.6167 60:0.6667 61:0.65 62:0.6667 63:0.7 64:0.75 65:0.7333 66:0.7833 67:0.8 68:0.8167 69:0.8833 70:0.8833 71:0.9667 72:0.9667 73:1 74:1 75:1 76:1 77:1 78:1 79:1 80:1 81:1 82:1 83:0.15 84:0.15 85:0.15 86:0.15 87:0.15 88:0.15 89:0.15 90:0.15 91:0.15 92:0.15 93:0.15 94:0.15 95:0.15 96:0.15 97:0.15 98:0.15 99:0.15 100:0.15 101:0.15 102:0.15 103:0.15 104:0.15 105:0.15 106:0.15 107:0.15 108:0.15 109:0.15 110:0.15 111:0.15 112:0.15 113:0.15 114:0.15 115:0.15 116:0.15 117:0.15 118:0.15 119:0.15 120:0.15 121:0.15 122:0.15 123:0.15 124:0.1667 125:0.1667 126:0.1667 127:0.1667 128:0.1667 129:0.1667 130:0.1667 131:0.1667 132:0.1667 133:0.1667 134:0.45 135:0.45 136:0.4333 137:0.4333 138:0.4333 139:0.4167 140:0.4167 141:0.4167 142:0.36842105 143:0.36842105 144:0.36842105 145:0.35084211 146:0.35084211 147:0.35084211 148:0.35084211 149:0.33336842 150:0.33336842 151:0.33336842 152:0.33336842 153:0.33336842 154:0.31578947 155:0.31578947 156:0.31578947 157:0.30356894 158:0.30356894 159:0.30356894 160:0.30356894 161:0.30356894 162:0.28567602 163:0.28567602 164:0.28567602 165:0.28567602 166:0.28567602 167:0.28567602 168:0.28567602 169:0.28567602 170:0.28567602 171:0.28567602 172:0.28567602 173:0.28567602 174:0.28567602 175:0.28567602 176:0.28567602 177:0.28567602 178:0.28567602 179:0.28567602 180:0.28567602 181:0.28567602 182:0.28567602 183:0.28567602 184:0.28567602 185:0.28567602 186:0.28567602 187:0.28567602 188:0.28567602 189:0.28567602 190:0.28567602 191:0.28567602 192:0.28567602 193:0.28567602 194:0.28567602 195:0.28567602 196:0.28567602 197:0.28567602 198:0.28567602 199:0.28567602 200:0.28567602 201:0.30356894 202:0.30356894 203:0.30356894 204:0.30356894 205:0.30356894 206:0.30356894 207:0.30356894 208:0.30356894 209:0.32146186 210:0.32146186 211:0.32146186 212:0.32146186 213:0.32146186 214:0.33924764 215:0.33924764 216:0.33924764 217:0.33924764 218:0.35714056 219:0.35714056 220:0.35714056 221:0.4167 222:0.4167 223:0.4167 224:0.4333 225:0.4333 226:0.4333 227:0.45 228:0.45 229:0.4667 230:0.4667 231:0.4833 232:0.5 233:0.5 234:0.5167 235:0.5333 236:0.5333 237:0.55 238:0.5667 239:0.5833 240:0.6 241:0.6167 242:0.6333 243:0.65 244:0.6833 245:0.7 246:0.7333 247:0.75 248:0.7833 249:0.8167 250:0.85 251:0.9 252:0.95 253:1 254:1 255:1 256:1 257:1 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:1 287:1 288:1 289:1 290:1 291:0.95 292:0.9 293:0.8667 294:0.8333 295:0.8 296:0.7667 297:0.7333 298:0.7167 299:0.7 300:0.6667 301:0.65 302:0.6333 303:0.6167 304:0.6 305:0.5833 306:0.5667 307:0.55 308:0.55 309:0.5333 310:0.5333 311:0.5333 312:0.5333 313:0.4833 314:0.4833 315:0.4667 316:0.4667 317:0.45 318:0.45 319:0.45 320:0.4333 321:0.4333 322:0.4333 323:0.4167 324:0.4167 325:0.4167 326:0.4 327:0.4 328:0.4 329:0.4 330:0.3833 331:0.3833 332:0.3833 333:0.3833 334:0.3833 335:0.3667 336:0.3667 337:0.3667 338:0.3667 339:0.3667 340:0.3667 341:0.3667 342:0.3667 343:0.35 344:0.35 345:0.35 346:0.35 347:0.35 348:0.35 349:0.35 350:0.35 351:0.35 352:0.35 353:0.35 354:0.35 355:0.35 356:0.35 357:0.35 358:0.35 359:0.35 360:0.35 +-0.6987935041815414 1:0.45 2:0.45 3:0.45 4:0.45 5:0.45 6:0.45 7:0.45 8:0.45 9:0.45 10:0.45 11:0.4833 12:0.4833 13:0.4833 14:0.4833 15:0.4667 16:0.4667 17:0.4667 18:0.4833 19:0.4667 20:0.4833 21:0.4667 22:0.4667 23:0.4667 24:0.4833 25:0.4833 26:0.4833 27:0.4833 28:0.4833 29:0.5 30:0.5 31:0.5333 32:0.5333 33:0.55 34:0.5333 35:0.5333 36:0.5333 37:0.5333 38:0.5333 39:0.55 40:0.55 41:0.6 42:0.6 43:0.6 44:0.6167 45:1 46:1 47:0.45 48:0.45 49:1 50:0.45 51:0.5 52:0.45 53:0.4833 54:0.45 55:0.45 56:0.4 57:0.4 58:0.4 59:0.4 60:0.4 61:0.4 62:0.4 63:0.4 64:0.4 65:0.4 66:0.4 67:0.4 68:0.4 69:0.4167 70:0.4333 71:0.4667 72:0.5333 73:0.5333 74:0.5333 75:0.5333 76:0.55 77:0.5833 78:0.9333 79:0.9333 80:0.9333 81:0.7333 82:0.7333 83:0.7333 84:0.7333 85:0.7333 86:0.7333 87:0.7333 88:0.7333 89:0.7333 90:0.7333 91:0.7333 92:0.85 93:0.85 94:0.85 95:0.85 96:0.85 97:0.85 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:1 107:1 108:1 109:1 110:1 111:1 112:1 113:1 114:1 115:1 116:1 117:1 118:1 119:0.9 120:0.8833 121:0.8167 122:0.8167 123:0.7667 124:0.75 125:0.7333 126:0.7167 127:0.7 128:0.6833 129:0.6667 130:0.65 131:0.6333 132:0.6333 133:0.6167 134:0.6 135:0.6 136:0.5833 137:0.5667 138:0.5667 139:0.55 140:0.55 141:0.5333 142:0.50873684 143:0.50873684 144:0.49126316 145:0.49126316 146:0.47368421 147:0.47368421 148:0.47368421 149:0.45610526 150:0.45610526 151:0.45610526 152:0.45610526 153:0.42105263 154:0.42105263 155:0.42105263 156:0.42105263 157:0.41071218 158:0.41071218 159:0.41071218 160:0.41071218 161:0.41071218 162:0.41071218 163:0.41071218 164:0.41071218 165:0.39281926 166:0.39281926 167:0.39281926 168:0.39281926 169:0.39281926 170:0.39281926 171:0.39281926 172:0.39281926 173:0.39281926 174:0.39281926 175:0.39281926 176:0.39281926 177:0.39281926 178:0.39281926 179:0.39281926 180:0.39281926 181:0.39281926 182:0.39281926 183:0.39281926 184:0.39281926 185:0.39281926 186:0.39281926 187:0.39281926 188:0.39281926 189:0.39281926 190:0.39281926 191:0.39281926 192:0.39281926 193:0.39281926 194:0.39281926 195:0.39281926 196:0.39281926 197:0.39281926 198:0.41071218 199:0.41071218 200:0.41071218 201:0.41071218 202:0.41071218 203:0.41071218 204:0.41071218 205:0.4286051 206:0.4286051 207:0.4286051 208:0.4286051 209:0.4286051 210:0.44639088 211:0.44639088 212:0.44639088 213:0.44639088 214:0.4642838 215:0.4642838 216:0.4642838 217:0.48217672 218:0.48217672 219:0.4999625 220:0.4999625 221:0.5333 222:0.55 223:0.55 224:0.5667 225:0.5667 226:0.5833 227:0.6 228:0.6 229:0.6167 230:0.6333 231:0.6333 232:0.65 233:0.6667 234:0.6833 235:0.7 236:0.7167 237:0.7333 238:0.75 239:0.7667 240:0.8 241:0.8167 242:0.85 243:0.8667 244:0.9 245:1 246:1 247:1 248:1 249:1 250:1 251:1 252:1 253:1 254:1 255:1 256:1 257:1 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:0.8833 283:0.7167 284:0.7167 285:0.7167 286:0.7167 287:0.5833 288:0.5833 289:0.5833 290:0.5833 291:0.5833 292:0.5833 293:0.5833 294:0.5833 295:0.5833 296:0.6167 297:0.6167 298:0.6167 299:0.6167 300:0.6167 301:0.6333 302:0.6167 303:0.65 304:0.65 305:0.65 306:0.65 307:0.65 308:0.65 309:0.65 310:0.5667 311:0.5667 312:0.55 313:0.5333 314:0.5333 315:0.5167 316:0.5167 317:0.5 318:0.5 319:0.4833 320:0.4833 321:0.4833 322:0.4833 323:0.4833 324:0.4833 325:0.4833 326:0.4833 327:0.4833 328:0.4833 329:0.4833 330:0.5 331:0.5 332:0.5 333:0.5 334:0.5 335:0.5 336:0.5 337:0.5 338:0.5 339:0.4667 340:0.4667 341:0.4667 342:0.4667 343:0.4667 344:0.4667 345:0.4667 346:0.4667 347:0.4667 348:0.4667 349:0.4667 350:0.4667 351:0.4667 352:0.4667 353:0.4667 354:0.4667 355:0.4667 356:0.4667 357:0.4667 358:0.4667 359:0.4667 360:0.45 +-0.1302920249306628 1:0.35 2:0.35 3:0.35 4:0.35 5:0.35 6:0.35 7:0.35 8:0.35 9:0.35 10:0.35 11:0.35 12:0.35 13:0.35 14:0.35 15:0.35 16:0.35 17:0.35 18:0.35 19:0.35 20:0.3667 21:0.3667 22:0.3667 23:0.3667 24:0.3667 25:0.3667 26:0.3667 27:0.3667 28:0.3833 29:0.3833 30:0.3833 31:0.3833 32:0.3833 33:0.4 34:0.4 35:0.4 36:0.4 37:0.4167 38:0.4167 39:0.4167 40:0.4333 41:0.4333 42:0.4333 43:0.45 44:0.45 45:0.45 46:0.4667 47:0.4667 48:0.5 49:0.5 50:0.5 51:0.5167 52:0.5333 53:0.5333 54:0.5833 55:0.5833 56:0.6 57:0.5833 58:0.7 59:0.7 60:0.7 61:0.7167 62:0.7333 63:0.7667 64:0.7833 65:0.8667 66:0.8667 67:0.8667 68:0.8667 69:0.9167 70:1 71:1 72:1 73:1 74:1 75:1 76:1 77:1 78:1 79:1 80:1 81:1 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:0.5333 100:0.5333 101:0.5333 102:0.5333 103:0.5333 104:0.5333 105:0.5333 106:0.5333 107:0.5333 108:1 109:1 110:1 111:1 112:1 113:1 114:0.75 115:0.75 116:0.7333 117:0.7 118:0.6833 119:0.65 120:0.6333 121:0.6167 122:0.6167 123:0.6167 124:0.6 125:0.5833 126:0.5667 127:0.55 128:0.55 129:0.55 130:0.5167 131:0.5167 132:0.5 133:0.4833 134:0.4833 135:0.4667 136:0.4667 137:0.45 138:0.45 139:0.45 140:0.4333 141:0.4333 142:0.40347368 143:0.386 144:0.386 145:0.386 146:0.36842105 147:0.36842105 148:0.36842105 149:0.36842105 150:0.35084211 151:0.35084211 152:0.35084211 153:0.35084211 154:0.35084211 155:0.33336842 156:0.33336842 157:0.32146186 158:0.32146186 159:0.32146186 160:0.32146186 161:0.32146186 162:0.32146186 163:0.30356894 164:0.30356894 165:0.30356894 166:0.30356894 167:0.30356894 168:0.30356894 169:0.30356894 170:0.30356894 171:0.30356894 172:0.30356894 173:0.30356894 174:0.30356894 175:0.30356894 176:0.30356894 177:0.30356894 178:0.30356894 179:0.30356894 180:0.30356894 181:0.30356894 182:0.30356894 183:0.30356894 184:0.30356894 185:0.30356894 186:0.30356894 187:0.30356894 188:0.30356894 189:0.30356894 190:0.30356894 191:0.30356894 192:0.30356894 193:0.30356894 194:0.30356894 195:0.30356894 196:0.30356894 197:0.30356894 198:0.30356894 199:0.30356894 200:0.32146186 201:0.32146186 202:0.32146186 203:0.32146186 204:0.32146186 205:0.32146186 206:0.32146186 207:0.32146186 208:0.33924764 209:0.33924764 210:0.33924764 211:0.33924764 212:0.33924764 213:0.35714056 214:0.35714056 215:0.35714056 216:0.35714056 217:0.37503348 218:0.37503348 219:0.37503348 220:0.39281926 221:0.45 222:0.45 223:0.45 224:0.45 225:0.45 226:0.4667 227:0.4667 228:0.4833 229:0.4833 230:0.5 231:0.5167 232:0.5167 233:0.5333 234:0.55 235:0.55 236:0.5667 237:0.5833 238:0.6 239:0.6167 240:0.6333 241:0.65 242:0.6667 243:0.7 244:0.7167 245:0.7333 246:0.7667 247:0.8 248:0.8333 249:0.8667 250:0.9 251:0.95 252:1 253:1 254:1 255:1 256:1 257:1 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:1 287:1 288:1 289:0.5667 290:0.5333 291:0.5167 292:0.4833 293:0.4667 294:0.45 295:0.4333 296:0.4167 297:0.4 298:0.4 299:0.4 300:0.3833 301:0.3833 302:0.3667 303:0.3667 304:0.35 305:0.35 306:0.3333 307:0.3333 308:0.3167 309:0.2833 310:0.2833 311:0.2833 312:0.2833 313:0.2833 314:0.3 315:0.2833 316:0.2833 317:0.2833 318:0.3 319:0.2833 320:0.2833 321:0.2833 322:0.2833 323:0.2833 324:0.3 325:0.3 326:0.3 327:0.9667 328:0.9667 329:0.9667 330:0.9833 331:0.95 332:0.95 333:0.95 334:0.95 335:0.8167 336:0.8167 337:0.8167 338:0.8167 339:0.8167 340:0.8167 341:0.4333 342:0.4333 343:0.4333 344:0.4333 345:0.4333 346:0.4333 347:0.4333 348:0.4333 349:0.4333 350:0.4333 351:0.4333 352:0.9167 353:0.9167 354:1 355:0.35 356:0.35 357:0.35 358:0.35 359:0.35 360:0.35 +-1.407225774852224 1:0.25 2:0.25 3:0.25 4:0.25 5:0.25 6:0.25 7:0.25 8:0.25 9:0.25 10:0.25 11:0.25 12:0.25 13:0.25 14:0.25 15:0.25 16:0.25 17:0.25 18:0.25 19:0.25 20:0.25 21:0.25 22:0.25 23:0.25 24:0.25 25:0.2667 26:0.2667 27:0.2667 28:0.2667 29:0.2667 30:0.2667 31:0.2833 32:0.2833 33:0.2833 34:0.2833 35:0.2833 36:0.3 37:0.3333 38:0.3333 39:0.3333 40:0.3333 41:0.3333 42:0.3333 43:0.4333 44:0.4333 45:0.4333 46:0.4333 47:0.5333 48:0.5333 49:0.5333 50:0.5667 51:0.5167 52:0.55 53:0.5333 54:0.5333 55:0.55 56:0.55 57:0.55 58:0.55 59:0.55 60:0.5667 61:0.5667 62:0.6 63:0.6 64:0.6 65:0.8167 66:0.03333 67:0.03333 68:0.03333 69:0.03333 70:0.03333 71:0.03333 72:0.05 73:0.05 74:0.05 75:0.05 76:0.05 77:0.05 78:0.05 79:0.05 80:0.05 81:0.05 82:0.05 83:0.05 84:0.05 85:0.05 86:0.05 87:0.05 88:0.05 89:0.05 90:0.05 91:0.05 92:0.05 93:0.05 94:0.05 95:0.05 96:0.05 97:0.05 98:0.05 99:0.05 100:0.05 101:0.05 102:0.05 103:0.05 104:0.05 105:0.05 106:0.05 107:0.05 108:0.05 109:0.05 110:0.05 111:0.05 112:0.05 113:0.05 114:0.05 115:0.05 116:0.05 117:0.05 118:0.05 119:0.05 120:0.05 121:0.05 122:0.05 123:0.05 124:0.05 125:0.05 126:0.05 127:0.05 128:0.05 129:0.05 130:0.05 131:0.05 132:0.05 133:0.03333 134:0.03333 135:0.03333 136:0.03333 137:0.03333 138:0.03333 139:0.05 140:0.05 141:0.05 152:0.087684211 153:0.087684211 154:0.087684211 155:0.087684211 156:0.087684211 157:0.071389541 158:0.071389541 159:0.071389541 160:0.071389541 161:0.071389541 162:0.071389541 163:0.071389541 164:0.071389541 165:0.071389541 166:0.071389541 167:0.071389541 168:0.071389541 169:0.071389541 170:0.071389541 171:0.071389541 172:0.17853278 173:0.17853278 174:0.17853278 175:0.17853278 176:0.17853278 177:0.17853278 178:0.17853278 179:0.17853278 180:0.17853278 181:0.17853278 182:0.17853278 183:0.17853278 184:0.17853278 185:0.17853278 186:0.17853278 187:0.17853278 188:0.17853278 189:0.17853278 190:0.17853278 191:0.17853278 192:0.17853278 193:0.17853278 194:0.17853278 195:0.1964257 196:0.1964257 197:0.1964257 198:0.1964257 199:0.1964257 200:0.1964257 201:0.1964257 202:0.1964257 203:0.1964257 204:0.17853278 205:0.17853278 206:0.17853278 207:0.10717538 208:0.10717538 209:0.10717538 210:0.10717538 211:0.10717538 212:0.10717538 213:0.10717538 214:0.10717538 215:0.10717538 216:0.12496116 217:0.12496116 218:0.10717538 219:0.10717538 220:0.10717538 221:0.1833 222:0.1833 223:0.1667 224:0.1667 225:0.1667 226:0.1833 227:0.1667 228:0.1667 229:0.1667 230:0.1667 231:0.1667 232:0.1833 233:0.1833 234:0.1833 235:0.2167 236:0.2167 237:0.2333 238:0.2333 239:0.2333 240:0.2333 241:0.2333 242:0.2333 243:0.2333 244:0.2333 245:0.4333 246:0.5167 247:0.5167 248:0.5167 249:0.5167 250:0.5167 251:0.5167 252:0.5167 253:0.5167 254:0.5333 255:0.5667 256:0.5667 257:0.5667 258:0.55 259:0.5667 260:0.55 261:0.5667 262:0.5667 263:0.55 264:0.55 265:0.55 266:0.6167 267:0.6167 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:0.9667 285:0.85 286:0.8 287:0.75 288:0.7167 289:0.7 290:0.6833 291:0.65 292:0.6333 293:0.6 294:0.6167 295:0.6167 296:0.6 297:0.4833 298:0.4833 299:0.4833 300:0.4667 301:0.45 302:0.4 303:0.4 304:0.3833 305:0.3667 306:0.3667 307:0.35 308:0.35 309:0.3333 310:0.3333 311:0.3333 312:0.3167 313:0.3167 314:0.3167 315:0.3 316:0.3 317:0.3 318:0.2833 319:0.2833 320:0.2833 321:0.2833 322:0.2833 323:0.2667 324:0.2667 325:0.2833 326:0.2833 327:0.2667 328:0.2833 329:0.2833 330:0.2667 331:0.25 332:0.25 333:0.25 334:0.25 335:0.25 336:0.25 337:0.25 338:0.25 339:0.25 340:0.25 341:0.25 342:0.25 343:0.25 344:0.25 345:0.25 346:0.25 347:0.25 348:0.25 349:0.25 350:0.25 351:0.25 352:0.25 353:0.25 354:0.25 355:0.25 356:0.25 357:0.25 358:0.25 359:0.25 360:0.25 +-0.7629019586111927 1:0.3667 2:0.3667 3:0.3667 4:0.3667 5:0.3667 6:0.3667 7:0.3667 8:0.3667 9:0.3667 10:0.3667 11:0.3667 12:0.3667 13:0.3667 14:0.3667 15:0.3667 16:0.3667 17:0.3667 18:0.3667 19:0.35 20:0.3333 21:0.3333 22:0.3333 23:0.3333 24:0.3333 25:0.3333 26:0.3333 27:0.3333 28:0.3333 29:0.3333 30:0.3333 31:0.3333 32:0.3333 33:0.3333 34:0.3333 35:0.3333 36:0.35 37:0.35 38:0.35 39:0.35 40:0.3833 41:0.3833 42:0.4 43:0.4 44:0.4 45:0.4167 46:0.4167 47:0.4333 48:0.4333 49:0.4333 50:0.5333 51:0.5333 52:0.5333 53:0.5333 54:0.6 55:0.6167 56:0.6333 57:0.4833 58:0.4833 59:0.4833 60:0.4833 61:0.4833 62:0.4833 63:0.4833 64:0.4833 65:0.4833 66:0.7 67:0.7 68:0.4333 69:0.4333 70:0.4333 71:0.4333 72:0.4333 73:0.4333 74:0.4333 75:0.4333 76:0.4333 77:0.4333 78:0.4333 79:0.4333 80:0.4833 81:0.4833 82:0.4833 83:0.65 84:0.65 85:0.7333 86:0.9833 87:0.9833 88:0.9833 89:0.9833 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:1 107:0.85 108:0.7667 109:0.7667 110:0.7667 111:0.7667 112:0.7667 113:0.7667 114:0.7667 115:0.7667 116:0.7667 117:0.7667 118:0.7167 119:0.7167 120:0.7 121:0.7167 122:0.7167 123:0.7167 124:0.7 125:0.7167 126:0.7167 127:0.7167 128:0.7167 129:1 130:1 131:1 132:1 133:0.5333 134:0.5333 135:0.5333 136:0.5333 137:0.5333 138:0.5333 139:0.5333 140:0.5333 141:0.5333 142:0.52631579 143:0.77189474 144:0.77189474 145:0.77189474 146:0.71926316 147:0.70178947 148:0.71926316 149:0.71926316 150:0.70178947 151:0.70178947 152:0.68421053 153:0.386 154:0.386 155:0.386 156:0.36842105 157:0.37503348 158:0.37503348 159:0.37503348 160:0.37503348 161:0.37503348 162:0.37503348 163:0.37503348 164:0.37503348 165:0.37503348 166:0.37503348 167:0.55353412 168:0.55353412 169:0.55353412 170:0.55353412 171:0.58931996 172:0.58931996 173:0.58931996 174:0.55353412 175:0.55353412 176:0.51785542 177:0.51785542 178:0.51785542 179:0.51785542 180:0.51785542 181:0.51785542 182:0.51785542 183:0.32146186 184:0.32146186 185:0.32146186 186:0.32146186 187:0.32146186 188:0.32146186 189:0.32146186 190:0.32146186 191:0.32146186 192:0.32146186 193:0.32146186 194:0.32146186 195:0.33924764 196:0.33924764 197:0.33924764 198:0.33924764 199:0.48217672 200:0.4999625 201:0.4999625 202:0.57142704 203:0.57142704 204:0.57142704 205:0.57142704 206:0.57142704 207:0.51785542 208:0.51785542 209:0.51785542 210:0.4286051 211:0.4286051 212:0.4286051 213:0.4286051 214:0.4286051 215:0.4286051 216:0.4286051 217:0.4286051 218:0.4286051 219:0.4286051 220:0.4286051 221:0.4667 222:0.7667 223:0.7833 224:0.7833 225:0.7667 226:0.7667 227:0.7833 228:0.6167 229:0.6167 230:0.6 231:0.6167 232:0.6167 233:0.6 234:0.6167 235:0.6167 236:0.65 237:0.6333 238:0.6333 239:0.65 240:0.6667 241:0.6667 242:0.6667 243:0.6667 244:0.6667 245:0.6667 246:0.6833 247:0.75 248:0.7833 249:0.7833 250:0.7833 251:0.7833 252:0.7833 253:0.7833 254:0.8167 255:1 256:1 257:1 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:0.9 282:0.9 283:0.9 284:0.9 285:0.9 286:0.9 287:0.9 288:0.95 289:0.95 290:0.95 291:0.95 292:0.3 293:0.2833 294:0.2833 295:0.2667 296:0.25 297:0.25 298:0.2333 299:0.2333 300:0.2167 301:0.1833 302:0.1833 303:0.1833 304:0.1833 305:0.1833 306:0.1833 307:0.1833 308:0.1833 309:0.1833 310:0.1833 311:0.1833 312:0.1833 313:0.1833 314:0.1833 315:0.1833 316:0.1833 317:0.1833 318:0.1833 319:0.1833 320:0.1833 321:0.1833 322:0.1833 323:0.1833 324:0.1833 325:0.1833 326:0.1833 327:0.2667 328:0.2667 329:0.2667 330:0.2667 331:0.2667 332:0.2667 333:0.2667 334:0.2667 335:0.2833 336:0.2667 337:0.2667 338:0.3 339:0.3 340:0.3 341:0.3 342:0.3 343:0.3 344:0.3167 345:0.3333 346:0.3333 347:0.3333 348:0.3333 349:0.3333 350:0.3333 351:0.3333 352:0.35 353:0.35 354:0.35 355:0.35 356:0.35 357:0.35 358:0.3667 359:0.3667 360:0.3667 +-1.703244380358791 1:0.2667 2:0.2667 3:0.2667 4:0.2667 5:0.2667 6:0.2667 7:0.2667 8:0.2667 9:0.2667 10:0.2667 11:0.2667 12:0.2667 13:0.2667 14:0.2667 15:0.2667 16:0.2667 17:0.2667 18:0.2667 19:0.2667 20:0.2833 21:0.2833 22:0.5833 23:0.2667 24:0.2833 25:0.2667 26:0.25 27:0.25 28:0.25 29:0.25 30:0.25 31:0.25 32:0.25 33:0.2333 34:0.25 35:0.25 36:0.1833 37:0.1833 38:0.2 39:0.2 40:0.2 41:0.2 42:0.2 43:0.2 44:0.2 45:0.2 46:0.2 47:0.2 48:0.2 49:0.2 50:0.2 51:0.2 52:0.2 53:0.2 54:0.2 55:0.1833 56:0.1833 57:0.2 58:0.2 59:0.2 60:0.2167 61:0.2167 62:0.2167 63:0.2333 64:0.2333 65:0.25 66:0.25 67:0.35 68:0.35 69:0.35 70:0.35 71:0.3667 72:0.3833 73:0.4 74:0.4833 75:0.5333 76:0.6 77:0.6 78:0.95 79:1 80:1 81:1 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:0.95 107:0.9667 108:0.7667 109:0.7667 110:0.75 111:0.7167 112:0.6667 113:0.65 114:0.6333 115:0.6 116:0.5667 117:0.55 118:0.5333 119:0.5167 120:0.5 121:0.4833 122:0.4667 123:0.45 124:0.45 125:0.4333 126:0.4167 127:0.4167 128:0.4 129:0.4 130:0.3833 131:0.3833 132:0.3667 133:0.3667 134:0.3667 135:0.35 136:0.35 137:0.35 138:0.3333 139:0.3333 140:0.3333 141:0.3167 142:0.28073684 143:0.28073684 144:0.28073684 145:0.26315789 146:0.26315789 147:0.26315789 148:0.26315789 149:0.26315789 150:0.26315789 151:0.24557895 152:0.24557895 153:0.24557895 154:0.24557895 155:0.24557895 156:0.24557895 157:0.2321044 158:0.2321044 159:0.21431862 160:0.21431862 161:0.21431862 162:0.21431862 163:0.21431862 164:0.21431862 165:0.21431862 166:0.21431862 167:0.21431862 168:0.21431862 169:0.21431862 170:0.21431862 171:0.21431862 172:0.21431862 173:0.21431862 174:0.21431862 175:0.21431862 176:0.21431862 177:0.21431862 178:0.21431862 179:0.21431862 180:0.21431862 181:0.21431862 182:0.21431862 183:0.21431862 184:0.21431862 185:0.21431862 186:0.21431862 187:0.21431862 188:0.21431862 189:0.21431862 190:0.21431862 191:0.21431862 192:0.21431862 193:0.21431862 194:0.21431862 195:0.21431862 196:0.21431862 197:0.21431862 198:0.21431862 199:0.21431862 200:0.21431862 201:0.21431862 202:0.21431862 203:0.21431862 204:0.21431862 205:0.21431862 206:0.2321044 207:0.21431862 208:0.21431862 209:0.2321044 210:0.2321044 211:0.21431862 212:0.21431862 213:0.24999732 214:0.24999732 215:0.24999732 216:0.24999732 217:0.24999732 218:0.26789024 219:0.26789024 220:0.26789024 221:0.3167 222:0.3333 223:0.3333 224:0.3333 225:0.35 226:0.35 227:0.35 228:0.3667 229:0.3667 230:0.3667 231:0.3833 232:0.3833 233:0.4 234:0.4 235:0.4167 236:0.4167 237:0.4333 238:0.45 239:0.45 240:0.4667 241:0.4667 242:0.4667 243:0.5167 244:0.5333 245:0.55 246:0.5667 247:0.6 248:0.6167 249:0.6333 250:0.6333 251:0.7 252:0.7 253:0.7333 254:0.7667 255:0.8167 256:0.8667 257:0.9333 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:0.7833 278:0.6333 279:0.5667 280:0.5667 281:0.5667 282:0.4 283:0.35 284:0.3333 285:0.3 286:0.2833 287:0.2667 288:0.25 289:0.2333 290:0.2333 291:0.2167 292:0.2 293:0.2 294:0.1833 295:0.1833 296:0.1833 297:0.1667 298:0.1667 299:0.1667 300:0.15 301:0.15 302:0.15 303:0.1667 304:0.1667 305:0.1667 306:0.15 307:0.15 308:0.1667 309:0.1667 310:0.1667 311:0.15 312:0.15 313:0.15 314:0.15 315:0.15 316:0.15 317:0.15 318:0.15 319:0.15 320:0.15 321:0.15 322:0.15 323:0.15 324:0.15 325:0.15 326:0.15 327:0.15 328:0.15 329:0.15 330:0.15 331:0.15 332:0.15 333:0.15 334:0.15 335:0.15 336:0.15 337:0.15 338:0.15 339:0.2667 340:0.2667 341:0.2667 342:0.2833 343:0.2833 344:0.2833 345:0.2833 346:0.2833 347:0.5167 348:0.5333 349:0.5167 350:0.5333 351:0.5167 352:0.5333 353:0.5333 354:0.5167 355:0.5333 356:0.5333 357:0.5333 358:0.5333 359:0.5167 360:0.2667 +-0.461920983197538 1:0.2167 2:0.2167 3:0.2167 4:0.2167 5:0.2167 6:0.2167 7:0.2167 8:0.2167 9:0.2167 10:0.2167 11:0.2167 12:0.2167 13:0.2167 14:0.2167 15:0.2167 16:0.2167 17:0.2167 18:0.2167 19:0.2167 20:0.2167 21:0.2167 22:0.2167 23:0.2167 24:0.2333 25:0.2333 26:0.2333 27:0.2333 28:0.2333 29:0.2333 30:0.2333 31:0.2333 32:0.2333 33:0.2333 34:0.2333 35:0.2333 36:0.25 37:0.25 38:0.25 39:0.25 40:0.25 41:0.25 42:0.2667 43:0.2667 44:0.2667 45:0.2667 46:0.2833 47:0.2833 48:0.2833 49:0.2833 50:0.3 51:0.3 52:0.3 53:0.3167 54:0.3167 55:0.3667 56:0.3667 57:0.3667 58:0.3667 59:0.3667 60:0.3667 61:0.4 62:0.4 63:0.4 64:0.4167 65:0.45 66:0.5167 67:0.5167 68:0.5167 69:0.5167 70:0.5667 71:0.5667 72:0.6 73:0.6667 74:0.7833 75:0.7833 76:0.7833 77:0.7833 78:0.85 79:0.85 80:1 81:1 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:1 107:1 108:1 109:1 110:1 111:1 112:1 113:1 114:1 115:1 116:1 117:1 118:1 119:1 120:1 121:1 122:1 123:1 124:1 125:1 126:1 127:1 128:0.5167 129:0.5167 130:0.5167 131:0.5167 132:0.5167 133:0.4667 134:0.45 135:0.45 136:0.4333 137:0.45 138:0.45 139:0.45 140:0.45 141:0.45 142:0.42105263 143:0.42105263 144:0.42105263 145:0.42105263 146:0.42105263 147:0.42105263 148:0.42105263 149:0.42105263 150:0.43863158 151:0.64915789 152:0.64915789 153:0.64915789 154:0.63157895 155:0.63157895 156:0.63157895 157:0.62499866 158:0.60710574 159:0.60710574 160:0.60710574 161:0.60710574 162:0.58931996 163:0.58931996 164:0.58931996 165:0.58931996 166:0.58931996 167:0.58931996 168:0.57142704 169:0.57142704 170:0.57142704 171:0.57142704 172:0.57142704 173:0.55353412 174:0.55353412 175:0.55353412 176:0.55353412 177:0.55353412 178:0.55353412 179:0.55353412 180:0.55353412 181:0.55353412 182:0.53574834 183:0.53574834 184:0.53574834 185:0.53574834 186:0.53574834 187:0.53574834 188:0.53574834 189:0.53574834 190:0.53574834 191:0.53574834 192:0.53574834 193:0.53574834 194:0.53574834 195:0.57142704 196:0.57142704 197:0.57142704 198:0.57142704 199:0.57142704 200:0.57142704 201:0.58931996 202:0.58931996 203:0.58931996 204:0.58931996 205:0.58931996 206:0.60710574 207:0.60710574 208:0.60710574 209:0.60710574 210:0.60710574 211:0.60710574 212:0.64289158 213:0.71424898 214:0.82139222 215:0.82139222 216:0.82139222 217:0.7678206 218:0.75003482 219:0.75003482 220:0.75003482 221:0.7667 222:0.7667 223:0.7667 224:0.7667 225:0.7833 226:0.8 227:0.8167 228:0.8167 229:0.8333 230:0.85 231:0.8667 232:0.8833 233:0.9167 234:0.9333 235:0.9333 236:0.95 237:0.9667 238:1 239:1 240:1 241:1 242:1 243:1 244:1 245:1 246:1 247:1 248:1 249:1 250:1 251:1 252:1 253:1 254:1 255:1 256:1 257:1 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:0.7333 271:0.7333 272:0.7333 273:0.7333 274:0.7333 275:0.7333 276:0.7333 277:0.7333 278:0.7333 279:0.7333 280:1 281:1 282:1 283:1 284:0.9167 285:0.85 286:0.8 287:0.8 288:0.8 289:0.8 290:0.8 291:0.75 292:0.6667 293:0.6833 294:0.6833 295:0.6833 296:0.6833 297:0.6833 298:0.6833 299:0.7333 300:0.4333 301:0.4167 302:0.4 303:0.4 304:0.3833 305:0.3667 306:0.3667 307:0.35 308:0.35 309:0.3333 310:0.3 311:0.3 312:0.3 313:0.2833 314:0.2833 315:0.2833 316:0.2833 317:0.2667 318:0.2667 319:0.2667 320:0.2667 321:0.25 322:0.25 323:0.25 324:0.25 325:0.25 326:0.25 327:0.2333 328:0.2333 329:0.2333 330:0.2333 331:0.2333 332:0.2333 333:0.2333 334:0.2333 335:0.2333 336:0.2333 337:0.2333 338:0.2333 339:0.2167 340:0.2167 341:0.2167 342:0.2167 343:0.2167 344:0.2167 345:0.2167 346:0.2167 347:0.2167 348:0.2167 349:0.2167 350:0.2167 351:0.2167 352:0.2167 353:0.2167 354:0.2167 355:0.2167 356:0.2167 357:0.2167 358:0.2167 359:0.2167 360:0.2167 +-1.24390864212422 1:0.65 2:0.6833 3:0.45 4:0.45 5:0.45 6:0.45 7:0.45 8:0.45 9:0.45 10:0.45 11:0.4333 12:0.4167 13:0.4167 14:0.4 15:0.3667 16:0.3667 17:0.3667 18:0.3667 19:0.35 20:0.3333 21:0.3333 22:0.3333 23:0.3333 24:0.3333 25:0.3333 26:0.3333 27:0.3333 28:0.3333 29:0.3333 30:0.3333 31:0.3333 32:0.3333 33:0.3333 34:0.3333 35:0.3333 36:0.35 37:0.35 38:0.35 39:0.35 40:0.3667 41:0.3667 42:0.3667 43:0.3833 44:0.3833 45:0.3833 46:0.4 47:0.4 48:0.4 49:0.4167 50:0.4167 51:0.4333 52:0.4333 53:0.45 54:0.5167 55:0.5167 56:0.5167 57:0.5167 58:0.6 59:0.6 60:0.6 61:0.6 62:0.6 63:0.65 64:1 65:1 66:1 67:1 68:1 69:1 70:0.5333 71:0.5333 72:0.5333 73:0.5333 74:0.5333 75:0.5333 76:0.5333 77:0.5333 78:0.5333 79:0.5333 80:0.5333 81:0.5333 82:0.6 83:0.8667 84:0.8667 85:0.8667 86:0.8667 87:0.8667 88:0.8667 89:0.8667 90:0.8667 91:0.8833 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:1 107:1 108:1 109:1 110:1 111:1 112:1 113:1 114:1 115:1 116:1 117:0.9 118:0.8667 119:0.8333 120:0.8 121:0.7833 122:0.7667 123:0.7333 124:0.7167 125:0.7 126:0.6833 127:0.6667 128:0.65 129:0.6667 130:0.65 131:0.6333 132:0.6 133:0.6 134:0.6 135:0.6 136:0.6 137:0.6 138:0.6 139:0.6 140:0.6 141:0.6 142:0.57894737 143:0.80705263 144:0.80705263 145:0.78947368 146:0.78947368 147:0.59652632 148:0.614 149:0.56136842 150:0.56136842 151:0.56136842 152:0.54389474 153:0.54389474 154:0.54389474 155:0.56136842 156:0.54389474 157:0.53574834 158:0.53574834 159:0.53574834 160:0.55353412 161:0.55353412 162:0.55353412 163:0.58931996 164:0.58931996 165:0.60710574 166:0.53574834 167:0.53574834 168:0.53574834 169:0.53574834 170:0.41071218 171:0.41071218 172:0.39281926 173:0.39281926 174:0.39281926 175:0.39281926 176:0.39281926 177:0.39281926 178:0.39281926 179:0.39281926 180:0.39281926 181:0.39281926 182:0.39281926 183:0.39281926 184:0.39281926 185:0.39281926 186:0.39281926 187:0.39281926 188:0.39281926 189:0.39281926 190:0.39281926 191:0.39281926 192:0.39281926 193:0.39281926 194:0.39281926 195:0.39281926 196:0.39281926 197:0.39281926 198:0.41071218 199:0.41071218 200:0.41071218 201:0.41071218 202:0.41071218 203:0.41071218 204:0.41071218 205:0.4286051 206:0.4286051 207:0.4286051 208:0.4286051 209:0.4286051 210:0.44639088 211:0.44639088 212:0.44639088 213:0.44639088 214:0.4999625 215:0.51785542 216:0.51785542 217:0.51785542 218:0.51785542 219:0.37503348 220:0.37503348 221:0.4167 222:0.4167 223:0.4167 224:0.4167 225:0.4167 226:0.4167 227:0.4167 228:0.4167 229:0.4167 230:0.4167 231:0.4333 232:0.4333 233:0.45 234:0.4667 235:0.4667 236:0.75 237:0.7667 238:0.7833 239:0.8 240:0.8333 241:0.85 242:0.8833 243:0.9 244:0.9 245:0.9 246:0.9 247:0.9167 248:1 249:1 250:1 251:1 252:1 253:1 254:1 255:1 256:1 257:1 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:0.9167 277:0.8667 278:0.75 279:0.75 280:0.75 281:0.75 282:0.75 283:0.75 284:0.75 285:1 286:1 287:1 288:1 289:0.8333 290:0.7833 291:0.75 292:0.7333 293:0.7333 294:0.7333 295:0.7333 296:0.7333 297:0.7333 298:0.7333 299:0.5167 300:0.5 301:0.4833 302:0.4667 303:0.4667 304:0.4667 305:0.4667 306:0.45 307:0.45 308:0.4333 309:0.4167 310:0.4167 311:0.4 312:0.4 313:0.3833 314:0.3833 315:0.3833 316:0.3667 317:0.3667 318:0.3667 319:0.3667 320:0.3833 321:0.3667 322:0.3833 323:0.35 324:0.35 325:0.3833 326:0.35 327:0.3667 328:0.3833 329:0.35 330:0.4833 331:0.35 332:0.35 333:0.5 334:0.35 335:0.4833 336:0.4833 337:0.4833 338:0.4833 339:0.6833 340:0.6667 341:0.6667 342:0.6667 343:0.6667 344:0.6667 345:0.6667 346:0.6667 347:0.6667 348:0.6833 349:0.65 350:0.6333 351:0.6333 352:0.6333 353:0.6333 354:0.6333 355:0.6333 356:0.6333 357:0.6333 358:0.65 359:0.65 360:0.65 +-0.6755532882257953 1:0.1 2:0.1 3:0.1 4:0.1 5:0.1 6:0.1167 7:0.1167 8:0.1167 9:0.1167 10:0.1167 11:0.1167 12:0.1167 13:0.1167 14:0.1167 15:0.1167 16:0.1167 17:0.1167 18:0.1167 19:0.1167 20:0.1167 21:0.1167 22:0.1167 23:0.1167 24:0.1167 25:0.1167 26:0.1167 27:0.1167 28:0.1167 29:0.1167 30:0.1167 31:0.1167 32:0.1167 33:0.1833 34:0.1833 35:0.1833 36:0.2167 37:0.2167 38:0.1833 39:0.1833 40:0.1833 41:0.2167 42:0.2167 43:0.2167 44:0.2167 45:0.2167 46:0.2167 47:0.2167 48:0.2167 49:0.2167 50:0.2167 51:0.2167 52:0.25 53:0.3167 54:0.3167 55:0.35 56:0.4167 57:0.4333 58:0.5 59:0.8333 60:1 61:1 62:1 63:1 64:1 65:1 66:1 67:1 68:1 69:1 70:1 71:1 72:1 73:1 74:0.55 75:0.55 76:0.55 77:0.55 78:0.55 79:0.55 80:0.55 81:0.55 82:0.5667 83:0.5667 84:1 85:0.2167 86:0.2167 87:0.2167 88:0.2167 89:0.1833 90:0.1833 91:0.1833 92:0.1833 93:0.1833 94:0.15 95:0.1333 96:0.1333 97:0.1333 98:0.1333 99:0.1333 100:0.1333 101:0.1333 102:0.1333 103:0.1167 104:0.1 105:0.1 106:0.1 107:0.1 108:0.1 109:0.1 110:0.1 111:0.1 112:0.1 113:0.1 114:0.1 115:0.1 116:0.1 117:0.1 118:0.08333 119:0.08333 120:0.08333 121:0.08333 122:0.08333 123:0.08333 124:0.08333 125:0.08333 126:0.08333 127:0.08333 128:0.08333 129:0.1 130:0.08333 131:0.08333 132:0.08333 133:0.08333 134:0.08333 135:0.08333 136:0.08333 137:0.08333 138:0.08333 139:0.08333 140:0.08333 141:0.08333 142:0.035084211 143:0.035084211 144:0.035084211 145:0.035084211 146:0.035084211 147:0.035084211 148:0.035084211 149:0.035084211 150:0.035084211 151:0.035084211 152:0.035084211 153:0.035084211 154:0.035084211 155:0.035084211 156:0.035084211 157:0.017850064 158:0.017850064 159:0.017850064 160:0.017850064 161:0.017850064 162:0.017850064 163:0.017850064 164:0.017850064 165:0.017850064 166:0.017850064 167:0.017850064 168:0.017850064 169:0.017850064 170:0.017850064 171:0.017850064 172:0.017850064 173:0.017850064 174:0.017850064 175:0.017850064 176:0.017850064 177:0.017850064 178:0.017850064 179:0.017850064 180:0.017850064 181:0.017850064 182:0.017850064 183:0.017850064 184:0.017850064 185:0.017850064 186:0.017850064 187:0.017850064 188:0.017850064 189:0.017850064 190:0.017850064 191:0.017850064 192:0.017850064 193:0.017850064 194:0.017850064 195:0.017850064 196:0.017850064 197:0.017850064 198:0.017850064 199:0.017850064 200:0.017850064 201:0.017850064 202:0.017850064 203:0.017850064 204:0.035710842 205:0.035710842 206:0.035710842 207:0.035710842 208:0.035710842 209:0.035710842 210:0.035710842 211:0.035710842 212:0.035710842 213:0.035710842 214:0.035710842 215:0.035710842 216:0.035710842 217:0.035710842 218:0.035710842 219:0.035710842 220:0.035710842 221:0.1 222:0.1 223:0.1 224:0.1167 225:0.1167 226:0.1167 227:0.1167 228:0.1167 229:0.1167 230:0.1167 231:0.1167 232:0.1167 233:0.1167 234:0.15 235:0.1667 236:0.1667 237:0.1667 238:0.1667 239:0.1667 240:0.1833 241:0.1833 242:0.1833 243:0.2 244:0.2 245:0.25 246:0.25 247:0.2667 248:0.3 249:0.3 250:0.3 251:0.3167 252:0.3333 253:0.35 254:0.5667 255:0.5667 256:0.5667 257:0.8333 258:0.85 259:0.85 260:0.8833 261:0.8833 262:0.8833 263:0.8833 264:0.8833 265:0.8833 266:0.8833 267:0.9333 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:0.35 276:0.3 277:0.3 278:0.3 279:0.3 280:0.2667 281:0.2333 282:0.2167 283:0.2 284:0.2 285:0.2 286:0.2 287:0.2 288:0.2 289:0.2 290:0.2 291:0.2 292:0.2 293:0.2 294:0.2 295:0.2 296:0.2 297:0.2 298:0.2 299:0.2 300:0.2 301:0.2 302:0.2 303:0.15 304:0.1333 305:0.1333 306:0.1333 307:0.1333 308:0.1333 309:0.1167 310:0.1167 311:0.1167 312:0.1167 313:0.1167 314:0.1167 315:0.1167 316:0.1167 317:0.1167 318:0.1167 319:0.1 320:0.1 321:0.1 322:0.1 323:0.1 324:0.1 325:0.1 326:0.1 327:0.1 328:0.1 329:0.1 330:0.1 331:0.1 332:0.1 333:0.1 334:0.1 335:0.1 336:0.1 337:0.1 338:0.1 339:0.1 340:0.1 341:0.1 342:0.1 343:0.1 344:0.1 345:0.1 346:0.1 347:0.1 348:0.1 349:0.1 350:0.1 351:0.1 352:0.1 353:0.1 354:0.1 355:0.1 356:0.1 357:0.1 358:0.1 359:0.1 360:0.1 +-0.07977645679315452 1:0.1167 2:0.1167 3:0.1167 4:0.1167 5:0.1167 6:0.1167 7:0.1167 8:0.1167 9:0.1167 10:0.1167 11:0.1167 12:0.1167 13:0.1167 14:0.1167 15:0.1167 16:0.1167 17:0.1167 18:0.1167 19:0.1167 20:0.1167 21:0.1167 22:0.1167 23:0.1167 24:0.1167 25:0.1167 26:0.1167 27:0.1167 28:0.1167 29:0.1167 30:0.1167 31:0.1167 32:0.1167 33:0.1167 34:0.1167 35:0.1167 36:0.1167 37:0.1167 38:0.1167 39:0.1167 40:0.1333 41:0.1333 42:0.1333 43:0.1667 44:0.2667 45:0.2667 46:0.1667 47:0.1667 48:0.15 49:0.2167 50:0.2167 51:0.3 52:0.15 53:0.15 54:0.15 55:0.3167 56:0.3167 57:0.2167 58:0.2167 59:0.3333 60:0.3333 61:0.2167 62:0.2167 63:0.3667 64:0.2167 65:0.2167 66:0.2167 67:0.2167 68:0.4167 69:0.4167 70:0.4833 71:0.4833 72:0.4833 73:0.55 74:0.55 75:0.6167 76:0.6167 77:0.6 78:0.6 79:0.6 80:0.6 81:0.6 82:0.6 83:0.6 84:0.6 85:0.6 86:0.6167 87:0.6167 88:0.6167 89:0.6167 90:0.2833 91:0.2833 92:0.2833 93:0.2833 94:0.2833 95:0.2833 96:0.2833 97:0.2833 98:0.2833 99:0.2833 100:0.2833 101:0.2833 102:0.2833 103:0.2833 104:0.2833 105:0.2833 106:0.2833 107:0.2833 108:0.2833 109:0.2833 110:0.2833 111:0.2833 112:0.2833 113:0.2833 114:0.2833 115:0.2833 116:0.2833 117:0.1667 118:0.1667 119:0.1667 120:0.1667 121:0.1667 122:0.1667 123:0.1667 124:0.1667 125:0.1667 126:0.1833 127:0.1833 128:0.1667 129:0.1667 130:0.1667 131:0.1833 132:0.1833 133:0.1667 134:0.1667 135:0.1667 136:0.1833 137:0.1667 138:0.1667 139:0.1 140:0.1 141:0.1 142:0.052631579 143:0.052631579 144:0.052631579 145:0.052631579 146:0.052631579 147:0.052631579 148:0.052631579 149:0.052631579 150:0.052631579 151:0.052631579 152:0.052631579 153:0.052631579 154:0.052631579 155:0.052631579 156:0.052631579 157:0.035710842 158:0.035710842 159:0.035710842 160:0.035710842 161:0.035710842 162:0.035710842 163:0.035710842 164:0.035710842 165:0.035710842 166:0.035710842 167:0.035710842 168:0.035710842 169:0.035710842 170:0.035710842 171:0.035710842 172:0.035710842 173:0.035710842 174:0.035710842 175:0.035710842 176:0.035710842 177:0.035710842 178:0.035710842 179:0.035710842 180:0.035710842 181:0.035710842 182:0.035710842 183:0.035710842 184:0.035710842 185:0.035710842 186:0.035710842 187:0.035710842 188:0.035710842 189:0.035710842 190:0.035710842 191:0.035710842 192:0.035710842 193:0.035710842 194:0.035710842 195:0.035710842 196:0.035710842 197:0.035710842 198:0.035710842 199:0.035710842 200:0.035710842 201:0.035710842 202:0.035710842 203:0.035710842 204:0.035710842 205:0.035710842 206:0.035710842 207:0.035710842 208:0.035710842 209:0.035710842 210:0.035710842 211:0.035710842 212:0.035710842 213:0.035710842 214:0.035710842 215:0.035710842 216:0.035710842 217:0.035710842 218:0.035710842 219:0.035710842 220:0.035710842 221:0.1 222:0.1 223:0.1 224:0.1167 225:0.1167 226:0.1167 227:0.1167 228:0.1167 229:0.1333 230:0.15 231:0.15 232:0.15 233:0.15 234:0.15 235:0.1667 236:0.1667 237:0.1667 238:0.1667 239:0.1667 240:0.1667 241:0.1667 242:0.1667 243:0.1667 244:0.1667 245:0.1667 246:0.1667 247:0.1667 248:0.1667 249:0.15 250:0.1667 251:0.1667 252:0.1833 253:0.1833 254:0.2 255:0.2 256:0.2167 257:0.2333 258:0.25 259:0.2833 260:0.5333 261:0.5167 262:0.5333 263:0.3667 264:0.3667 265:0.3667 266:0.3667 267:0.3667 268:0.3667 269:0.3667 270:0.3667 271:0.3667 272:0.3667 273:0.3667 274:0.3667 275:1 276:1 277:0.8667 278:0.7833 279:0.7833 280:0.7833 281:0.7833 282:0.7833 283:0.7833 284:0.85 285:0.7833 286:0.6667 287:0.3333 288:0.35 289:0.6667 290:0.3333 291:0.35 292:0.3333 293:0.35 294:0.2333 295:0.2167 296:0.2167 297:0.2167 298:0.2 299:0.2 300:0.2167 301:0.1833 302:0.1833 303:0.1667 304:0.1667 305:0.1667 306:0.1667 307:0.1667 308:0.15 309:0.15 310:0.15 311:0.15 312:0.15 313:0.15 314:0.15 315:0.15 316:0.15 317:0.15 318:0.15 319:0.15 320:0.1333 321:0.1333 322:0.1333 323:0.1333 324:0.1333 325:0.1333 326:0.1333 327:0.1333 328:0.1333 329:0.1333 330:0.1333 331:0.1333 332:0.1333 333:0.1333 334:0.1333 335:0.1333 336:0.1333 337:0.1167 338:0.1167 339:0.1167 340:0.1167 341:0.1167 342:0.1167 343:0.1167 344:0.1167 345:0.1167 346:0.1167 347:0.1167 348:0.1167 349:0.1167 350:0.1167 351:0.1167 352:0.1167 353:0.1167 354:0.1167 355:0.1167 356:0.1167 357:0.1167 358:0.1167 359:0.1167 360:0.1167 +-0.4149747376290368 1:0.1667 2:0.1667 3:0.1667 4:0.1667 5:0.1667 6:0.1667 7:0.1667 8:0.1667 9:0.1667 10:0.1667 11:0.1667 12:0.1667 13:0.1667 14:0.1667 15:0.1667 16:0.1667 17:0.1667 18:0.1667 19:0.1667 20:0.1667 21:0.1667 22:0.1667 23:0.1667 24:0.1667 25:0.1667 26:0.1667 27:0.1667 28:0.1667 29:0.1667 30:0.1667 31:0.1667 32:0.1833 33:0.1833 34:0.1833 35:0.1833 36:0.1833 37:0.1833 38:0.1833 39:0.1833 40:0.1833 41:0.1667 42:0.1667 43:0.1667 44:0.1833 45:0.1833 46:0.1833 47:0.1833 48:0.1833 49:0.1833 50:0.2 51:0.2 52:0.2 53:0.2 54:0.2167 55:0.2167 56:0.2167 57:0.2333 58:0.2333 59:0.2333 60:0.25 61:0.25 62:0.25 63:0.2667 64:0.2833 65:0.2833 66:0.3 67:0.3 68:0.3167 69:0.4833 70:0.4833 71:0.4833 72:0.4833 73:0.4833 74:0.4833 75:0.5 76:0.5 77:0.5833 78:0.65 79:0.75 80:0.75 81:1 82:1 83:1 84:1 85:0.6833 86:0.6833 87:0.6833 88:0.6833 89:0.6833 90:0.6833 91:0.6833 92:0.6833 93:0.6833 94:0.6833 95:0.6833 96:0.7 97:0.7 98:0.6167 99:0.55 100:0.55 101:0.5167 102:0.4833 103:0.4333 104:0.4 105:0.3667 106:0.3667 107:0.3667 108:0.3167 109:0.3 110:0.3 111:0.3 112:0.3 113:0.2833 114:0.2833 115:0.2667 116:0.25 117:0.25 118:0.2333 119:0.2333 120:0.2333 121:0.2333 122:0.2333 123:0.2 124:0.2 125:0.2 126:0.1833 127:0.1833 128:0.1833 129:0.1833 130:0.1833 131:0.1833 132:0.1833 133:0.1833 134:0.1833 135:0.1833 136:0.1833 137:0.1833 138:0.1833 139:0.1667 140:0.1667 141:0.1667 142:0.12284211 143:0.12284211 144:0.12284211 145:0.12284211 146:0.12284211 147:0.12284211 148:0.12284211 149:0.10526316 150:0.10526316 151:0.10526316 152:0.10526316 153:0.10526316 154:0.10526316 155:0.10526316 156:0.10526316 157:0.089282462 158:0.089282462 159:0.089282462 160:0.089282462 161:0.089282462 162:0.089282462 163:0.089282462 164:0.089282462 165:0.089282462 166:0.089282462 167:0.089282462 168:0.089282462 169:0.089282462 170:0.089282462 171:0.089282462 172:0.089282462 173:0.089282462 174:0.089282462 175:0.089282462 176:0.089282462 177:0.089282462 178:0.089282462 179:0.089282462 180:0.089282462 181:0.089282462 182:0.089282462 183:0.089282462 184:0.089282462 185:0.089282462 186:0.089282462 187:0.089282462 188:0.089282462 189:0.089282462 190:0.089282462 191:0.089282462 192:0.089282462 193:0.089282462 194:0.089282462 195:0.089282462 196:0.089282462 197:0.089282462 198:0.089282462 199:0.089282462 200:0.089282462 201:0.089282462 202:0.089282462 203:0.089282462 204:0.089282462 205:0.089282462 206:0.089282462 207:0.089282462 208:0.089282462 209:0.089282462 210:0.089282462 211:0.089282462 212:0.089282462 213:0.089282462 214:0.10717538 215:0.10717538 216:0.10717538 217:0.10717538 218:0.10717538 219:0.10717538 220:0.10717538 221:0.1667 222:0.1667 223:0.1667 224:0.1833 225:0.1833 226:0.1833 227:0.1833 228:0.1833 229:0.2167 230:0.2167 231:0.2167 232:0.2333 233:0.2333 234:0.2333 235:0.45 236:0.6333 237:0.6333 238:0.6333 239:0.6333 240:0.6333 241:0.7167 242:0.7667 243:0.8 244:0.8333 245:0.5833 246:0.5667 247:0.5667 248:0.5667 249:0.5667 250:0.5667 251:0.5667 252:0.5667 253:0.5667 254:0.5667 255:0.5667 256:0.6667 257:0.7167 258:0.7667 259:0.9167 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:0.7167 274:0.6667 275:0.6667 276:0.6667 277:0.6667 278:0.6667 279:0.3 280:0.2833 281:0.2833 282:0.2833 283:0.2833 284:0.1833 285:0.1667 286:0.15 287:0.15 288:0.15 289:0.15 290:0.15 291:0.15 292:0.15 293:0.15 294:0.15 295:0.15 296:0.15 297:0.15 298:0.15 299:0.15 300:0.15 301:0.15 302:0.15 303:0.1667 304:0.15 305:0.15 306:0.15 307:0.15 308:0.15 309:0.15 310:0.15 311:0.15 312:0.15 313:0.15 314:0.15 315:0.15 316:0.1667 317:0.1833 318:0.1833 319:0.2 320:0.2 321:0.2 322:0.1833 323:0.1833 324:0.1833 325:0.1833 326:0.1833 327:0.1833 328:0.1833 329:0.1833 330:0.1833 331:0.1667 332:0.1667 333:0.1667 334:0.1667 335:0.1667 336:0.1667 337:0.1667 338:0.1667 339:0.1667 340:0.1667 341:0.1667 342:0.1667 343:0.1667 344:0.1667 345:0.1667 346:0.1667 347:0.1667 348:0.1667 349:0.1667 350:0.1667 351:0.1667 352:0.1667 353:0.1667 354:0.1667 355:0.1667 356:0.1667 357:0.1667 358:0.1667 359:0.1667 360:0.1667 diff --git a/.svn/pristine/1b/1bf353f1f69296fe2826ceb5a77f200b98f37b02.svn-base b/.svn/pristine/1b/1bf353f1f69296fe2826ceb5a77f200b98f37b02.svn-base new file mode 100644 index 0000000..41b247b --- /dev/null +++ b/.svn/pristine/1b/1bf353f1f69296fe2826ceb5a77f200b98f37b02.svn-base @@ -0,0 +1,136 @@ +/** + * @file + * @brief Representation of a 3D point + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __POINT_H__ +#define __POINT_H__ + +#include +#include +using std::ostream; +using std::istream; + +#include +using std::runtime_error; + +/** + * @brief Representation of a point in 3D space + */ +class Point { + +public: + /** + * Default constructor + */ + inline Point() { x = y = z = 0.0; point_id = 0; type = 0; reflectance = 0.0; amplitude = 0.0; deviation = 0.0; rgb[0] = 255; rgb[1] = 255; rgb[2] = 255;}; + /** + * Copy constructor + */ + inline Point(const Point& p) { x = p.x; y = p.y; z = p.z; type = p.type; point_id = p.point_id; + reflectance = p.reflectance; amplitude = p.amplitude; deviation = p.deviation; rgb[0] = p.rgb[0]; rgb[1] = p.rgb[1]; rgb[2] = p.rgb[2];}; + /** + * Constructor with an array, i.e., vecctor of coordinates + */ + inline Point(const double *p) { x = p[0]; y = p[1]; z = p[2]; type = 0; reflectance = 0.0; amplitude = 0.0; deviation = 0.0; + rgb[0] = 255; rgb[1] = 255; rgb[2] = 255;}; + inline Point(const double *p, const char *c) { x = p[0]; y = p[1]; z = p[2]; rgb[0] = c[0]; rgb[1] = c[1]; rgb[2] = c[2];}; + + /** + * Constructor with three double values + */ + inline Point(const double _x, const double _y, const double _z) { x = _x; y = _y; z = _z; }; + inline Point(const double _x, const double _y, const double _z, const char _r, const char _g, const char _b) { x = _x; y = _y; z = _z; rgb[0] = _r; rgb[1] = _g; rgb[2] = _b;}; + + static inline Point cross(const Point &X, const Point &Y) { + Point res; + res.x = X.y * Y.z - X.z * Y.y; + res.y = X.z * Y.x - X.x * Y.z; + res.z = X.x * Y.y - X.y * Y.x; + return res; + }; + + static inline Point norm(const Point &p) { + double l = sqrt(p.x*p.x + p.y*p.y + p.z*p.z); + Point res(p.x/l, p.y/l, p.z/l); + return res; + }; + + inline Point operator+(const Point &p) const { + Point res; + res.x = x + p.x; + res.y = y + p.y; + res.z = z + p.z; + return res; + }; + + inline Point operator-(const Point &p) const { + Point res; + res.x = x - p.x; + res.y = y - p.y; + res.z = z - p.z; + return res; + }; + + inline Point& operator-=(const Point &p) { + x -= p.x; + y -= p.y; + z -= p.z; + return *this; + }; + inline Point& operator+=(const Point &p) { + x += p.x; + y += p.y; + z += p.z; + return *this; + }; + + + + inline void transform(const double alignxf[16]); + inline double distance(const Point& p); + inline friend ostream& operator<<(ostream& os, const Point& p); + inline friend istream& operator>>(istream& is, Point& p); + + // also public; set/get functions not necessary here + /// x coordinate in 3D space + double x; + /// y coordinate in 3D space + double y; + /// z coordinate in 3D space + double z; + /// additional information about the point, e.g., semantic + /// also used in veloscan for distiuguish moving or static + int type; + + /////////////////////////for veloslam///////////////////////////// + double rad; + /// tang in cylindrical coordinates for veloscan + double tan_theta; + // point id in points for veloscan , you can use it find point. + long point_id; + /////////////////////////for veloslam///////////////////////////// + + // color information of the point between 0 and 255 + // rgb + unsigned char rgb[3]; + + float reflectance; + float amplitude; + float deviation; +}; + + +inline Point operator*(const double &v, const Point &p) { + Point res; + res.x = v * p.x; + res.y = v * p.y; + res.z = v * p.z; + return res; +} + +#include "point.icc" + +#endif diff --git a/.svn/pristine/1c/1c5a56bb644b308b0deb7d2aeaad5e4b2f0f0140.svn-base b/.svn/pristine/1c/1c5a56bb644b308b0deb7d2aeaad5e4b2f0f0140.svn-base new file mode 100644 index 0000000..9dbd36c --- /dev/null +++ b/.svn/pristine/1c/1c5a56bb644b308b0deb7d2aeaad5e4b2f0f0140.svn-base @@ -0,0 +1,302 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.svn/pristine/1c/1cd1acf52aa3601767e206e9fbee1863ce165799.svn-base b/.svn/pristine/1c/1cd1acf52aa3601767e206e9fbee1863ce165799.svn-base new file mode 100644 index 0000000..6ccfadb --- /dev/null +++ b/.svn/pristine/1c/1cd1acf52aa3601767e206e9fbee1863ce165799.svn-base @@ -0,0 +1,429 @@ +cmake_minimum_required (VERSION 2.6.1) +SET(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/3rdparty/CMakeModules" ${CMAKE_MODULE_PATH}) +project (Slam6D) + +#include_directories(OPENGL_INCLUDE_DIR) +IF(WIN32) + set(Boost_USE_STATIC_LIBS TRUE) +ELSE(WIN32) + set(Boost_USE_STATIC_LIBS FALSE) +ENDIF(WIN32) + +SET(Boost_ADDITIONAL_VERSIONS "1.42" "1.42.0" "1.44" "1.44.0" "1.45.0" "1.45" "1.46" "1.46.1" "1.47.0" "1.47" "1.48" "1.49") +IF(WIN32) + # for some unknown reason no one variant works on all windows platforms + find_package( Boost COMPONENTS serialization graph regex filesystem system thread date_time REQUIRED) +ELSE(WIN32) + find_package( Boost COMPONENTS serialization graph regex filesystem system thread date_time REQUIRED) +ENDIF(WIN32) + +if(Boost_FOUND) + link_directories(${BOOST_LIBRARY_DIRS}) + include_directories(${Boost_INCLUDE_DIRS}) + add_definitions(${Boost_LIB_DIAGNOSTIC_DEFINITIONS}) +endif() + +################################################# +# Declare Options and modify build accordingly ## +################################################# + +## FreeGLUT +OPTION(WITH_FREEGLUT "Whether freeglut is available. This enables iterative drawing in show. ON/OFF" ON) + +IF(WITH_FREEGLUT) + MESSAGE(STATUS "With freeglut") + SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DWITH_FREEGLUT") +ELSE(WITH_FREEGLUT) + MESSAGE(STATUS "Without freeglut") +ENDIF(WITH_FREEGLUT) + +## Show +OPTION(WITH_SHOW "Whether to build Show. This is the Visualization program of slam6d. ON/OFF" ON) + +IF(WITH_SHOW) + FIND_PACKAGE(OpenGL REQUIRED) + FIND_PACKAGE(GLUT REQUIRED) + MESSAGE(STATUS "With show") +ELSE(WITH_SHOW) + # SET (WITH_OCTREE_DISPLAY "ON" CACHE INTERNAL "" FORCE) + MESSAGE(STATUS "Without show") +ENDIF(WITH_SHOW) + +## WXShow +OPTION(WITH_WXSHOW "Whether to build WXShow. This is the wxwidgets variant of Show. ON/OFF" OFF) + +IF(WITH_WXSHOW) + FIND_PACKAGE(OpenGL REQUIRED) + FIND_PACKAGE(GLUT REQUIRED) + find_package(wxWidgets COMPONENTS core base gl REQUIRED) + # set wxWidgets_wxrc_EXECUTABLE to be ignored in the configuration + SET (wxWidgets_wxrc_EXECUTABLE " " CACHE INTERNAL "" FORCE) + # wxWidgets include (this will do all the magic to configure everything) + include( ${wxWidgets_USE_FILE}) + MESSAGE(STATUS "With wxshow") +ELSE(WITH_XWSHOW) + MESSAGE(STATUS "Without wxshow") +ENDIF(WITH_WXSHOW) + +## Shapes +OPTION(WITH_SHAPE_DETECTION "Whether to build shapes and planes executable for detecting planes. ON/OFF" OFF) +IF(WITH_SHAPE_DETECTION) + MESSAGE(STATUS "With shape detection") +ELSE(WITH_SHAPE_DETECTION) + MESSAGE(STATUS "Without shape detection") +ENDIF(WITH_SHAPE_DETECTION) + +## Interior reconstruction +option(WITH_MODEL "Whether to build model executable for modelling interior environments. ON/OFF" OFF) + +if(WITH_MODEL) + message(STATUS "With interior reconstruction") +else(WITH_MODEL) + message(STATUS "Without interior reconstruction") +endif(WITH_MODEL) + +## Thermo +OPTION(WITH_THERMO "Whether to build executables for mutual calibration of laser scanner and camera. ON/OFF" OFF) +IF(WITH_THERMO) + FIND_PACKAGE(OpenCV REQUIRED) + add_subdirectory(3rdparty/cvblob) + include_directories(${CMAKE_SOURCE_DIR}/3rdparty/cvblob) + link_directories(${CMAKE_SOURCE_DIR}/3rdparty/cvblob) + MESSAGE(STATUS "With thermo") +ELSE(WITH_THERMO) + MESSAGE(STATUS "Without thermo") +ENDIF(WITH_THERMO) + +## Octree +OPTION(WITH_OCTREE_DISPLAY "Whether to use octree display for efficiently culling scans ON/OFF" ON) + +IF(WITH_OCTREE_DISPLAY) + MESSAGE(STATUS "Using octree display") + SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DUSE_GL_POINTS") +ELSE(WITH_OCTREE_DISPLAY) + MESSAGE(STATUS "Using displaylists: Warning potentially much slower") +ENDIF(WITH_OCTREE_DISPLAY) +#SET (WITH_OCTREE_DISPLAY ${WITH_OCTREE_DISPLAY} CACHE BOOL +#"Whether to use octree display for efficiently culling scans ON/OFF" FORCE) + + +## Octree +OPTION(WITH_COMPACT_OCTREE "Whether to use the compact octree display ON/OFF" OFF) + +IF(WITH_COMPACT_OCTREE) + MESSAGE(STATUS "Using compact octrees") + SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DUSE_COMPACT_TREE") +ELSE(WITH_COMPACT_OCTREE) + MESSAGE(STATUS "Not using compact octreees: Warning uses more memory") +ENDIF(WITH_COMPACT_OCTREE) + +## Glee? +OPTION(WITH_GLEE "Whether to use OpenGL extensions, requires glee. ON/OFF" OFF) + +IF(WITH_GLEE) + MESSAGE(STATUS "Using opengl extensions") + SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DWITH_GLEE") +ELSE(WITH_GLEE) + MESSAGE(STATUS "Not using opengl extensions") +ENDIF(WITH_GLEE) + +## Gridder +OPTION(WITH_GRIDDER "Whether to build the 2DGridder binary ON/OFF" OFF) + +IF(WITH_GRIDDER) + MESSAGE(STATUS "With 2DGridder") +ELSE(WITH_GRIDDER) + MESSAGE(STATUS "Without 2DGridder") +ENDIF(WITH_GRIDDER) + +## Dynamic VELOSLAM +OPTION(WITH_VELOSLAM "Whether to build the Velodyne data processing (veloslam/veloshow) ON/OFF" OFF) + +IF(WITH_VELOSLAM) + MESSAGE(STATUS "With VELOSLAM") +ELSE(WITH_VELOSLAM) + MESSAGE(STATUS "Without VELOSLAM") +ENDIF(WITH_VELOSLAM) + +## Home-made Laserscanner +OPTION(WITH_DAVID_3D_SCANNER "Whether to build the David scanner app for homemade laser scanners binary ON/OFF" OFF) + +IF(WITH_DAVID_3D_SCANNER) + MESSAGE(STATUS "With David scanner") +ELSE(WITH_DAVID_3D_SCANNER) + MESSAGE(STATUS "Without David scanner") +ENDIF(WITH_DAVID_3D_SCANNER) + +## Tools + +OPTION(WITH_TOOLS "Whether to build additional tools like convergence frame_to_graph etc. ON/OFF" OFF) + +IF(WITH_TOOLS) + MESSAGE(STATUS "With Tools") +ELSE(WITH_TOOLS) + MESSAGE(STATUS "Without Tools") +ENDIF(WITH_TOOLS) + + + +## Scan reduction +OPTION(WITH_SCAN_REDUCTION "Whether to build the scan reduction binary scan_red ON/OFF" OFF) + +IF(WITH_SCAN_REDUCTION) + MESSAGE(STATUS "With scan_red") +ELSE(WITH_SCAN_REDUCTION) + MESSAGE(STATUS "Without scan_red") +ENDIF(WITH_SCAN_REDUCTION) + +## Scan difference +OPTION(WITH_SCAN_DIFF "Whether to build the scan_diff binary ON/OFF" OFF) + +IF(WITH_SCAN_DIFF) + MESSAGE(STATUS "With scan_diff") +ELSE(WITH_SCAN_DIFF) + MESSAGE(STATUS "Without scan_diff") +ENDIF(WITH_SCAN_DIFF) + + +## CAD matching +OPTION (WITH_CAD "Wether to build with CAD import lib ON/OFF" OFF) + +IF (WITH_CAD) + MESSAGE (STATUS "With CAD import") + find_package (Boost COMPONENTS program_options filesystem REQUIRED) +ELSE (WITH_CAD) + MESSAGE (STATUS "Without CAD import") +ENDIF (WITH_CAD) + +## RivLib +OPTION(WITH_RIVLIB "Whether the RIEGL rivlib is present ON/OFF" OFF) + +IF(WITH_RIVLIB) + MESSAGE(STATUS "Compiling a scan IO for RXP files") + include_directories(${CMAKE_SOURCE_DIR}/3rdparty) + link_directories(${CMAKE_SOURCE_DIR}/3rdparty) + SET(RIEGL_DIR ${CMAKE_SOURCE_DIR}/3rdparty/riegl/) + IF(WIN32) + SET(RIVLIB ${RIEGL_DIR}libscanlib-mt.lib ${RIEGL_DIR}libctrllib-mt.lib ${RIEGL_DIR}libboost_system-mt-1_43_0-vns.lib) + ELSE(WIN32) + SET(RIVLIB ${RIEGL_DIR}libscanlib-mt-s.a ${RIEGL_DIR}libctrllib-mt-s.a ${RIEGL_DIR}libboost_system-mt-s-1_43_0-vns.a pthread) + ENDIF(WIN32) + FIND_PACKAGE(LibXml2 ) + +ELSE(WITH_RIVLIB) + MESSAGE(STATUS "Do NOT compile a scan IO for RXP") +ENDIF(WITH_RIVLIB) + +## CUDA support, TODO depend on CUDA_FIND +OPTION(WITH_CUDA "Compile with CUDA support" OFF) +IF(WITH_CUDA) + MESSAGE(STATUS "Compiling WITH CUDA support") + FIND_PACKAGE(CUDA) + SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DWITH_CUDA") +ELSE(WITH_CUDA) + MESSAGE(STATUS "Compiling WITHOUT CUDA support") +ENDIF(WITH_CUDA) + +## PMD +OPTION(WITH_PMD "Whether to build the PMD tools like grabVideoAnd3D calibrate etc. ON/OFF" OFF) + +IF(WITH_PMD) + FIND_PACKAGE(OpenGL REQUIRED) + MESSAGE(STATUS "With Tools") +ELSE(WITH_PMD) + MESSAGE(STATUS "Without Tools") +ENDIF(WITH_PMD) + +## FBR +OPTION(WITH_FBR "Whether to compile feature based registration. ON/OFF" OFF) + +IF(WITH_FBR) + MESSAGE(STATUS "With FBR ") +ELSE(WITH_FBR) + MESSAGE(STATUS "Without FBR") +ENDIF(WITH_FBR) + +## Special treatment for system specifics +IF(APPLE) +add_definitions(-Dfopen64=fopen) +ENDIF(APPLE) + +## Multiple Cores +IF(APPLE) + SET(PROCESSOR_COUNT 2) +ELSE(APPLE) + INCLUDE(CountProcessors) + SET(NUMBER_OF_CPUS "${PROCESSOR_COUNT}" CACHE STRING "The number of processors to use (default: ${PROCESSOR_COUNT})" ) +ENDIF(APPLE) + +# OPEN +FIND_PACKAGE(OpenMP) +IF(OPENMP_FOUND) + OPTION(WITH_OPENMP "Whether to use parallel processing capabilities of OPENMP. ON/OFF" ON) +ENDIF(OPENMP_FOUND) + +IF(OPENMP_FOUND AND WITH_OPENMP) + MESSAGE(STATUS "With OpenMP ") + SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DMAX_OPENMP_NUM_THREADS=${PROCESSOR_COUNT} -DOPENMP_NUM_THREADS=${NUMBER_OF_CPUS} ${OpenMP_CXX_FLAGS} -DOPENMP") +ELSE(OPENMP_FOUND AND WITH_OPENMP) + MESSAGE(STATUS "Without OpenMP") + SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DMAX_OPENMP_NUM_THREADS=1 -DOPENMP_NUM_THREADS=1") +ENDIF(OPENMP_FOUND AND WITH_OPENMP) + +## TORO +OPTION(WITH_TORO "Whether to use TORO. ON/OFF" OFF) + +IF(WITH_TORO) + IF(WIN32) + SET(Subversion_SVN_EXECUTABLE "svn.exe") + ENDIF(WIN32) + cmake_minimum_required (VERSION 2.8) + include(ExternalProject) + ExternalProject_Add(toro3d + SVN_REPOSITORY https://www.openslam.org/data/svn/toro/trunk + SOURCE_DIR "${CMAKE_SOURCE_DIR}/3rdparty/toro" + CONFIGURE_COMMAND "" + BUILD_COMMAND make + BUILD_IN_SOURCE 1 + INSTALL_COMMAND cp ${CMAKE_SOURCE_DIR}/3rdparty/toro/toro3d ${CMAKE_SOURCE_DIR}/bin/ + ) + MESSAGE(STATUS "With TORO ") +ELSE(WITH_TORO) + MESSAGE(STATUS "Without TORO") +ENDIF(WITH_TORO) + + +## HOGMAN +OPTION(WITH_HOGMAN "Whether to use HOGMAN. ON/OFF" OFF) + +IF(WITH_HOGMAN) + # dependant on libqt4-devi + find_package( Qt4 REQUIRED) + # CMake of earlier versions do not have external project capabilities + cmake_minimum_required (VERSION 2.8) + include(ExternalProject) + ExternalProject_Add(hogman + SVN_REPOSITORY https://svn.openslam.org/data/svn/hog-man/trunk + SOURCE_DIR "${CMAKE_SOURCE_DIR}/3rdparty/hogman" + CONFIGURE_COMMAND /configure --prefix= + BUILD_COMMAND LD_LIBRARY_PATH=${CMAKE_SOURCE_DIR}/3rdparty/hogman/lib make + BUILD_IN_SOURCE 1 + INSTALL_COMMAND cp ${CMAKE_SOURCE_DIR}/3rdparty/hogman/bin/hogman3d ${CMAKE_SOURCE_DIR}/bin/ && + cp ${CMAKE_SOURCE_DIR}/3rdparty/hogman/lib/libhogman_csparse.so ${CMAKE_SOURCE_DIR}/lib/ && + cp ${CMAKE_SOURCE_DIR}/3rdparty/hogman/lib/libhogman_graph_optimizer_hogman.so ${CMAKE_SOURCE_DIR}/lib/ && + cp ${CMAKE_SOURCE_DIR}/3rdparty/hogman/lib/libhogman_graph_optimizer.so ${CMAKE_SOURCE_DIR}/lib/ && + cp ${CMAKE_SOURCE_DIR}/3rdparty/hogman/lib/libhogman_graph.so ${CMAKE_SOURCE_DIR}/lib/ && + cp ${CMAKE_SOURCE_DIR}/3rdparty/hogman/lib/libhogman_graph_viewer.so ${CMAKE_SOURCE_DIR}/lib/ && + cp ${CMAKE_SOURCE_DIR}/3rdparty/hogman/lib/libhogman_math.so ${CMAKE_SOURCE_DIR}/lib/ && + cp ${CMAKE_SOURCE_DIR}/3rdparty/hogman/lib/libhogman_qglviewer.so ${CMAKE_SOURCE_DIR}/lib/ && + cp ${CMAKE_SOURCE_DIR}/3rdparty/hogman/lib/libhogman_stuff.so ${CMAKE_SOURCE_DIR}/lib/ + ) + MESSAGE(STATUS "With HOGMAN: Currently hogman needs to be compiled manually, please make sure hogman3d is somewhere in your PATH") +ELSE(WITH_HOGMAN) + MESSAGE(STATUS "Without HOGMAN") +ENDIF(WITH_HOGMAN) + +OPTION(EXPORT_SHARED_LIBS "Whether to build additional shared libraries for use in other projects. ON/OFF" OFF) + +IF(EXPORT_SHARED_LIBS) + MESSAGE(STATUS "exporting additional libraries") +ELSE(EXPORT_SHARED_LIBS) + MESSAGE(STATUS "not exporting libraries") +ENDIF(EXPORT_SHARED_LIBS) + +OPTION(WITH_METRICS "Whether to use metrics in slam6d. ON/OFF" OFF) + +IF(WITH_METRICS) + MESSAGE(STATUS "With metrics in slam6d.") + SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DWITH_METRICS") +ELSE(WITH_METRICS) + MESSAGE(STATUS "Without metrics in slam6d.") +ENDIF(WITH_METRICS) + +IF(WIN32) + SET(ADDITIONAL_CFLAGS "-O2" CACHE STRING"Additional flags given to the compiler ()" ) + include_directories(${CMAKE_SOURCE_DIR}/3rdparty/windows/) + link_directories(${CMAKE_SOURCE_DIR}/3rdparty/windows) + link_directories(${CMAKE_SOURCE_DIR}/3rdparty/windows/x64) + add_library(XGetopt STATIC ${CMAKE_SOURCE_DIR}/3rdparty/windows/XGetopt.cpp) + SET(CMAKE_STATIC_LIBRARY_SUFFIX "32.lib") +ELSE(WIN32) + SET(ADDITIONAL_CFLAGS "-O3 -std=c++0x -msse3 -Wall -finline-functions -Wno-unused-but-set-variable -Wno-write-strings -Wno-char-subscripts -Wno-unused-result" CACHE STRING"Additional flags given to the compiler (-O3 -Wall -finline-functions -Wno-write-strings)" ) + # Add include path for OpenGL without GL/-prefix + # to avoid the include incompatibility between MACOS + # and linux + FIND_PATH(OPENGL_INC gl.h /usr/include/GL) + include_directories(${OPENGL_INC}) +ENDIF(WIN32) + +# Add OpenGL includes for MACOS if needed +# The OSX OpenGL frameworks natively supports freeglut extensions +IF(APPLE) + include_directories(/System/Library/Frameworks/GLUT.framework/Headers) + include_directories(/System/Library/Frameworks/OpenGL.framework/Headers) +ENDIF(APPLE) + +SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${ADDITIONAL_CFLAGS}") + +# Hide CMake variables +SET (CMAKE_INSTALL_PREFIX "/usr/local" CACHE INTERNAL "" FORCE) +SET (CMAKE_BUILD_TYPE "" CACHE INTERNAL "" FORCE) + + +# Set output directories for libraries and executables +SET( CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/lib ) +SET( CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/obj ) +SET( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin ) + +# Set include and link dirs ... +include_directories(${CMAKE_SOURCE_DIR}/include) +include_directories(${CMAKE_SOURCE_DIR}/3rdparty/) +include_directories(${CMAKE_SOURCE_DIR}/3rdparty/glui) +include_directories(${CMAKE_SOURCE_DIR}/3rdparty/wxthings/include/) +include_directories(${CMAKE_SOURCE_DIR}/3rdparty/ann_1.1.1_modified/include) +include_directories(${CMAKE_SOURCE_DIR}/3rdparty/ann_1.1.1_modified/src) +link_directories(${CMAKE_SOURCE_DIR}/obj) +link_directories(${CMAKE_SOURCE_DIR}/lib) + +add_subdirectory(3rdparty) +add_subdirectory(src/slam6d) +add_subdirectory(src/scanio) +add_subdirectory(src/scanserver) +add_subdirectory(src/veloslam) +add_subdirectory(src/show) +add_subdirectory(src/grid) +add_subdirectory(src/pmd) +add_subdirectory(src/shapes) +add_subdirectory(src/thermo) +IF(WITH_FBR) + add_subdirectory(src/slam6d/fbr) +ENDIF(WITH_FBR) +add_subdirectory(src/scanner) +add_subdirectory(src/model) + +IF(EXPORT_SHARED_LIBS) +## Compiling a shared library containing all of the project +add_library(slam SHARED src/slam6d/icp6D.cc) +target_link_libraries(slam scanlib_s ANN_s sparse_s newmat_s) +ENDIF(EXPORT_SHARED_LIBS) + +MESSAGE (STATUS "Build environment is set up!") + + +# hack to "circumvent" Debug and Release folders that are created under visual studio +# this is why the INSTALL target has to be used in visual studio +IF(MSVC) + INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/bin/Release/ CONFIGURATIONS Release DESTINATION ${CMAKE_SOURCE_DIR}/windows FILES_MATCHING PATTERN "*.dll" PATTERN "*.exe") + IF( CMAKE_SIZEOF_VOID_P EQUAL 8 ) + INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/3rdparty/windows/x64/ CONFIGURATIONS Release DESTINATION ${CMAKE_SOURCE_DIR}/windows FILES_MATCHING PATTERN "*.dll" PATTERN "*.exe") + ELSE( CMAKE_SIZEOF_VOID_P EQUAL 8 ) + INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/3rdparty/windows/ CONFIGURATIONS Release DESTINATION ${CMAKE_SOURCE_DIR}/windows FILES_MATCHING PATTERN "*.dll" PATTERN "*.exe") + ENDIF(CMAKE_SIZEOF_VOID_P EQUAL 8 ) + + INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/bin/Debug/ CONFIGURATIONS Debug DESTINATION ${CMAKE_SOURCE_DIR}/windows FILES_MATCHING PATTERN "*.dll" PATTERN "*.exe") + IF( CMAKE_SIZEOF_VOID_P EQUAL 8 ) + INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/3rdparty/windows/x64/ CONFIGURATIONS Debug DESTINATION ${CMAKE_SOURCE_DIR}/windows FILES_MATCHING PATTERN "*.dll" PATTERN "*.exe") + ELSE( CMAKE_SIZEOF_VOID_P EQUAL 8 ) + INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/3rdparty/windows/ CONFIGURATIONS Debug DESTINATION ${CMAKE_SOURCE_DIR}/windows FILES_MATCHING PATTERN "*.dll" PATTERN "*.exe") + ENDIF(CMAKE_SIZEOF_VOID_P EQUAL 8 ) +ENDIF(MSVC) diff --git a/.svn/pristine/1c/1cefa281d57ddafbc607acc53445ac6ff5b2cd29.svn-base b/.svn/pristine/1c/1cefa281d57ddafbc607acc53445ac6ff5b2cd29.svn-base new file mode 100644 index 0000000..ce7b0bb --- /dev/null +++ b/.svn/pristine/1c/1cefa281d57ddafbc607acc53445ac6ff5b2cd29.svn-base @@ -0,0 +1,114 @@ +/** + * @file + * @brief Implementation of reading 3D scans + * @author Jan Elsberg. Automation Group, Jacobs University Bremen gGmbH, Germany. + */ +#include "slam6d/Boctree.h" +#include "slam6d/scan_io_oct.h" +#include "slam6d/globals.icc" +#include +using std::ifstream; +#include +using std::cout; +using std::cerr; +using std::endl; + +#ifdef _MSC_VER +#include +#endif + +/** + * Reads specified scans from given directory. + * + * Scan poses will NOT be initialized after a call + * to this function. + * + * This function actually implements loading of 3D scans + * in oct-file format and will be compiled as shared lib. + * + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param dir The directory from which to read + * @param maxDist Reads only Points up to this Distance + * @param minDist Reads only Points from this Distance + * @param euler Initital pose estimates (will not be applied to the points + * @param ptss Vector containing the read points + */ +int ScanIO_oct::readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss) +{ + static int fileCounter = start; + string scanFileName; + string poseFileName; + + ifstream pose_in; + + //double maxDist2 = sqr(maxDist); + + int my_fileNr = fileCounter; + + if (end > -1 && fileCounter > end) return -1; // 'nuf read + scanFileName = dir + "scan" + to_string(fileCounter,3) + ".oct"; + poseFileName = dir + "scan" + to_string(fileCounter,3) + ".pose"; + +// scan_in.open(scanFileName.c_str()); + pose_in.open(poseFileName.c_str()); + + // read 3D scan + if (!pose_in.good() ) return -1; // no more files in the directory + if (!pose_in.good()) { cerr << "ERROR: Missing file " << poseFileName << endl; exit(1); } + cout << "Processing Scan " << scanFileName; + + for (unsigned int i = 0; i < 6; pose_in >> euler[i++]); + + cout << " @ pose (" << euler[0] << "," << euler[1] << "," << euler[2] + << "," << euler[3] << "," << euler[4] << "," << euler[5] << ")" << endl; + + // convert angles from deg to rad + for (unsigned int i = 3; i <= 5; i++) euler[i] = rad(euler[i]); + + BOctTree::deserialize(scanFileName, ptss); + + pose_in.close(); + pose_in.clear(); + fileCounter++; + + return my_fileNr; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_oct; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/.svn/pristine/1d/1d0fc2cfd571bf6058b9188c59af42b5356095f7.svn-base b/.svn/pristine/1d/1d0fc2cfd571bf6058b9188c59af42b5356095f7.svn-base new file mode 100644 index 0000000..b6a2b53 --- /dev/null +++ b/.svn/pristine/1d/1d0fc2cfd571bf6058b9188c59af42b5356095f7.svn-base @@ -0,0 +1,69 @@ +/** + * @file + * @brief Definition of plane pairs + * + * @author + * @author Jan Elseberg. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Dorit Borrmann. School of Engineering and Science, Jacobs University Bremen gGmbH, Germany. + */ +#ifndef __PPAIR_H__ +#define __PPAIR_H__ + +#include "convexplane.h" +/** + * @brief Representing point pairs + */ +class PPair { +public: + enum TYPE {UNDEFINED, EQUAL, PARALLEL, PERPENDICULAR}; + + inline PPair(ConvexPlane *p1, ConvexPlane *p2); + inline PPair() : p1(0), p2(0) {}; + + ConvexPlane *p1; ///< The two points forming the pair + ConvexPlane *p2; ///< The two points forming the pair + double angle; + double center_distance; // or poly distance? + double plane_distance; + // intersection linie + Point istart, iend; + + TYPE type; + +}; + +inline PPair::PPair(ConvexPlane *_p1, ConvexPlane *_p2) { + type = UNDEFINED; + p1 = _p1; + p2 = _p2; + + // TODO hier richtigen wert berechnen + center_distance = 0.0; + plane_distance = fabs(p1->rho - p2->rho); + double tmp = p1->n[0] * p2->n[0] + p1->n[1] * p2->n[1] + p1->n[2] * p2->n[2]; + if (tmp > 1.0) { + angle = 0.0; + } else if (tmp < -1.0) { + angle = M_PI; + } else { + angle = acos( tmp ); + } + if (angle > M_PI / 2.0) { + angle = M_PI - angle; + } + + double nnx = p2->n[0]/p2->n[0]; + + double y = (p2->rho - nnx * p1->rho) / (p2->n[1] - nnx * p1->n[1]); + double x = (p1->rho - p1->n[1] * y) / p1->n[0]; + double z = 0.0; + + istart = Point(x,y,z); + + double nn[3]; + Cross(p1->n, p2->n, nn); + + iend = Point(x + nn[0], y + nn[1], nn[2]); +} + +#endif diff --git a/.svn/pristine/1d/1d575d9db1fdef6c354a816d14a84b1c1e453eda.svn-base b/.svn/pristine/1d/1d575d9db1fdef6c354a816d14a84b1c1e453eda.svn-base new file mode 100644 index 0000000..bda709e --- /dev/null +++ b/.svn/pristine/1d/1d575d9db1fdef6c354a816d14a84b1c1e453eda.svn-base @@ -0,0 +1,839 @@ +/* + * viewcull implementation + * + * Copyright (C) Jan Elseberg + * + * Released under the GPL version 3. + * + */ + +/** + * @file + * @brief Frustrum culling routines + * + * @author Jan Elseberg. Automation Group, Jacobs University Bremen gGmbH, Germany. + */ +#include "show/viewcull.h" +#include +#include +#include + +#include +#include +#include "slam6d/globals.icc" + +/** The 6 planes of the viewing frustum */ +float frustum[6][4]; + +/** the modelview * projection matrix to map a model point to an onscreen coordinate */ +float matrix[16]; +/** some useful variables for faster calculation of the pixel coordinates */ +short VP[4]; +/** a unit vector pointing to the right of the screen */ +float right[3]; +/** how much detail is shown, 0 means everything is plotted */ +short DETAIL; + +double SX, SY, SZ, EX, EY, EZ; +float origin[3], dir[3]; /*ray */ +float dist; +int rayX,rayY; +float rayVP[4]; + +void calcRay(int x, int y, double znear, double zfar) { + + GLdouble modelMatrix[16]; + GLdouble projMatrix[16]; + int viewport[4]; + glGetDoublev(GL_MODELVIEW_MATRIX,modelMatrix); + glGetDoublev(GL_PROJECTION_MATRIX,projMatrix); + glGetIntegerv(GL_VIEWPORT,viewport); + + gluUnProject(x, viewport[3]-y, zfar, modelMatrix, projMatrix, viewport, &SX, &SY, &SZ); + gluUnProject(x, viewport[3]-y, znear, modelMatrix, projMatrix, viewport, &EX, &EY, &EZ); + + origin[0] = SX; + origin[1] = SY; + origin[2] = SZ; + dir[0] = EX-SX; + dir[1] = EY-SY; + dir[2] = EZ-SZ; + double t = sqrt( dir[0] * dir[0] + dir[1] * dir[1] + dir[2] * dir[2] ); + dir[0] /= t; + dir[1] /= t; + dir[2] /= t; + + dist = SX * dir[0] + SY * dir[1] + SZ * dir[2]; + rayVP[0] = 0.5*viewport[2]; + rayVP[1] = 0.5*viewport[2] + viewport[0]; + + rayVP[2] = 0.5*viewport[3]; + rayVP[3] = 0.5*viewport[3] + viewport[1]; + rayX = x; + rayY = viewport[3]-y; + + remViewport(); +} + +void remViewport() { + GLdouble modelMatrix[16]; + GLdouble projMatrix[16]; + int viewport[4]; + glGetDoublev(GL_MODELVIEW_MATRIX,modelMatrix); + glGetDoublev(GL_PROJECTION_MATRIX,projMatrix); + glGetIntegerv(GL_VIEWPORT,viewport); + + MMult( projMatrix, modelMatrix, matrix ); + VP[0] = 0.5*viewport[2]; + VP[1] = 0.5*viewport[2] + viewport[0]; + + VP[2] = 0.5*viewport[3]; + VP[3] = 0.5*viewport[3] + viewport[1]; + + right[0] = modelMatrix[0]; + right[1] = modelMatrix[4]; + right[2] = modelMatrix[8]; +} + +void ExtractFrustum(short detail) +{ + DETAIL = detail + 1; + remViewport(); + + float proj[16]; + float modl[16]; + float clip[16]; + float t; + + /* Get the current PROJECTION matrix from OpenGL */ + glGetFloatv( GL_PROJECTION_MATRIX, proj ); + + /* Get the current MODELVIEW matrix from OpenGL */ + glGetFloatv( GL_MODELVIEW_MATRIX, modl ); + + /* Combine the two matrices (multiply projection by modelview) */ + clip[ 0] = modl[ 0] * proj[ 0] + modl[ 1] * proj[ 4] + modl[ 2] * proj[ 8] + modl[ 3] * proj[12]; + clip[ 1] = modl[ 0] * proj[ 1] + modl[ 1] * proj[ 5] + modl[ 2] * proj[ 9] + modl[ 3] * proj[13]; + clip[ 2] = modl[ 0] * proj[ 2] + modl[ 1] * proj[ 6] + modl[ 2] * proj[10] + modl[ 3] * proj[14]; + clip[ 3] = modl[ 0] * proj[ 3] + modl[ 1] * proj[ 7] + modl[ 2] * proj[11] + modl[ 3] * proj[15]; + + clip[ 4] = modl[ 4] * proj[ 0] + modl[ 5] * proj[ 4] + modl[ 6] * proj[ 8] + modl[ 7] * proj[12]; + clip[ 5] = modl[ 4] * proj[ 1] + modl[ 5] * proj[ 5] + modl[ 6] * proj[ 9] + modl[ 7] * proj[13]; + clip[ 6] = modl[ 4] * proj[ 2] + modl[ 5] * proj[ 6] + modl[ 6] * proj[10] + modl[ 7] * proj[14]; + clip[ 7] = modl[ 4] * proj[ 3] + modl[ 5] * proj[ 7] + modl[ 6] * proj[11] + modl[ 7] * proj[15]; + + clip[ 8] = modl[ 8] * proj[ 0] + modl[ 9] * proj[ 4] + modl[10] * proj[ 8] + modl[11] * proj[12]; + clip[ 9] = modl[ 8] * proj[ 1] + modl[ 9] * proj[ 5] + modl[10] * proj[ 9] + modl[11] * proj[13]; + clip[10] = modl[ 8] * proj[ 2] + modl[ 9] * proj[ 6] + modl[10] * proj[10] + modl[11] * proj[14]; + clip[11] = modl[ 8] * proj[ 3] + modl[ 9] * proj[ 7] + modl[10] * proj[11] + modl[11] * proj[15]; + + clip[12] = modl[12] * proj[ 0] + modl[13] * proj[ 4] + modl[14] * proj[ 8] + modl[15] * proj[12]; + clip[13] = modl[12] * proj[ 1] + modl[13] * proj[ 5] + modl[14] * proj[ 9] + modl[15] * proj[13]; + clip[14] = modl[12] * proj[ 2] + modl[13] * proj[ 6] + modl[14] * proj[10] + modl[15] * proj[14]; + clip[15] = modl[12] * proj[ 3] + modl[13] * proj[ 7] + modl[14] * proj[11] + modl[15] * proj[15]; + + /* Extract the numbers for the RIGHT plane */ + frustum[0][0] = clip[ 3] - clip[ 0]; + frustum[0][1] = clip[ 7] - clip[ 4]; + frustum[0][2] = clip[11] - clip[ 8]; + frustum[0][3] = clip[15] - clip[12]; + + /* Normalize the result */ + t = sqrt( frustum[0][0] * frustum[0][0] + frustum[0][1] * frustum[0][1] + frustum[0][2] * frustum[0][2] ); + frustum[0][0] /= t; + frustum[0][1] /= t; + frustum[0][2] /= t; + frustum[0][3] /= t; + + /* Extract the numbers for the LEFT plane */ + frustum[1][0] = clip[ 3] + clip[ 0]; + frustum[1][1] = clip[ 7] + clip[ 4]; + frustum[1][2] = clip[11] + clip[ 8]; + frustum[1][3] = clip[15] + clip[12]; + + /* Normalize the result */ + t = sqrt( frustum[1][0] * frustum[1][0] + frustum[1][1] * frustum[1][1] + frustum[1][2] * frustum[1][2] ); + frustum[1][0] /= t; + frustum[1][1] /= t; + frustum[1][2] /= t; + frustum[1][3] /= t; + + /* Extract the BOTTOM plane */ + frustum[2][0] = clip[ 3] + clip[ 1]; + frustum[2][1] = clip[ 7] + clip[ 5]; + frustum[2][2] = clip[11] + clip[ 9]; + frustum[2][3] = clip[15] + clip[13]; + + /* Normalize the result */ + t = sqrt( frustum[2][0] * frustum[2][0] + frustum[2][1] * frustum[2][1] + frustum[2][2] * frustum[2][2] ); + frustum[2][0] /= t; + frustum[2][1] /= t; + frustum[2][2] /= t; + frustum[2][3] /= t; + + /* Extract the TOP plane */ + frustum[3][0] = clip[ 3] - clip[ 1]; + frustum[3][1] = clip[ 7] - clip[ 5]; + frustum[3][2] = clip[11] - clip[ 9]; + frustum[3][3] = clip[15] - clip[13]; + + /* Normalize the result */ + t = sqrt( frustum[3][0] * frustum[3][0] + frustum[3][1] * frustum[3][1] + frustum[3][2] * frustum[3][2] ); + frustum[3][0] /= t; + frustum[3][1] /= t; + frustum[3][2] /= t; + frustum[3][3] /= t; + + /* Extract the FAR plane */ + frustum[4][0] = clip[ 3] - clip[ 2]; + frustum[4][1] = clip[ 7] - clip[ 6]; + frustum[4][2] = clip[11] - clip[10]; + frustum[4][3] = clip[15] - clip[14]; + + /* Normalize the result */ + t = sqrt( frustum[4][0] * frustum[4][0] + frustum[4][1] * frustum[4][1] + frustum[4][2] * frustum[4][2] ); + frustum[4][0] /= t; + frustum[4][1] /= t; + frustum[4][2] /= t; + frustum[4][3] /= t; + + /* Extract the NEAR plane */ + frustum[5][0] = clip[ 3] + clip[ 2]; + frustum[5][1] = clip[ 7] + clip[ 6]; + frustum[5][2] = clip[11] + clip[10]; + frustum[5][3] = clip[15] + clip[14]; + + /* Normalize the result */ + t = sqrt( frustum[5][0] * frustum[5][0] + frustum[5][1] * frustum[5][1] + frustum[5][2] * frustum[5][2] ); + frustum[5][0] /= t; + frustum[5][1] /= t; + frustum[5][2] /= t; + frustum[5][3] /= t; + +} + + +void ExtractFrustum(float *frust[6]) +{ + remViewport(); + + float proj[16]; + float modl[16]; + float clip[16]; + float t; + + /* Get the current PROJECTION matrix from OpenGL */ + glGetFloatv( GL_PROJECTION_MATRIX, proj ); + + /* Get the current MODELVIEW matrix from OpenGL */ + glGetFloatv( GL_MODELVIEW_MATRIX, modl ); + + /* Combine the two matrices (multiply projection by modelview) */ + clip[ 0] = modl[ 0] * proj[ 0] + modl[ 1] * proj[ 4] + modl[ 2] * proj[ 8] + modl[ 3] * proj[12]; + clip[ 1] = modl[ 0] * proj[ 1] + modl[ 1] * proj[ 5] + modl[ 2] * proj[ 9] + modl[ 3] * proj[13]; + clip[ 2] = modl[ 0] * proj[ 2] + modl[ 1] * proj[ 6] + modl[ 2] * proj[10] + modl[ 3] * proj[14]; + clip[ 3] = modl[ 0] * proj[ 3] + modl[ 1] * proj[ 7] + modl[ 2] * proj[11] + modl[ 3] * proj[15]; + + clip[ 4] = modl[ 4] * proj[ 0] + modl[ 5] * proj[ 4] + modl[ 6] * proj[ 8] + modl[ 7] * proj[12]; + clip[ 5] = modl[ 4] * proj[ 1] + modl[ 5] * proj[ 5] + modl[ 6] * proj[ 9] + modl[ 7] * proj[13]; + clip[ 6] = modl[ 4] * proj[ 2] + modl[ 5] * proj[ 6] + modl[ 6] * proj[10] + modl[ 7] * proj[14]; + clip[ 7] = modl[ 4] * proj[ 3] + modl[ 5] * proj[ 7] + modl[ 6] * proj[11] + modl[ 7] * proj[15]; + + clip[ 8] = modl[ 8] * proj[ 0] + modl[ 9] * proj[ 4] + modl[10] * proj[ 8] + modl[11] * proj[12]; + clip[ 9] = modl[ 8] * proj[ 1] + modl[ 9] * proj[ 5] + modl[10] * proj[ 9] + modl[11] * proj[13]; + clip[10] = modl[ 8] * proj[ 2] + modl[ 9] * proj[ 6] + modl[10] * proj[10] + modl[11] * proj[14]; + clip[11] = modl[ 8] * proj[ 3] + modl[ 9] * proj[ 7] + modl[10] * proj[11] + modl[11] * proj[15]; + + clip[12] = modl[12] * proj[ 0] + modl[13] * proj[ 4] + modl[14] * proj[ 8] + modl[15] * proj[12]; + clip[13] = modl[12] * proj[ 1] + modl[13] * proj[ 5] + modl[14] * proj[ 9] + modl[15] * proj[13]; + clip[14] = modl[12] * proj[ 2] + modl[13] * proj[ 6] + modl[14] * proj[10] + modl[15] * proj[14]; + clip[15] = modl[12] * proj[ 3] + modl[13] * proj[ 7] + modl[14] * proj[11] + modl[15] * proj[15]; + + /* Extract the numbers for the RIGHT plane */ + frust[0][0] = clip[ 3] - clip[ 0]; + frust[0][1] = clip[ 7] - clip[ 4]; + frust[0][2] = clip[11] - clip[ 8]; + frust[0][3] = clip[15] - clip[12]; + + /* Normalize the result */ + t = sqrt( frust[0][0] * frust[0][0] + frust[0][1] * frust[0][1] + frust[0][2] * frust[0][2] ); + frust[0][0] /= t; + frust[0][1] /= t; + frust[0][2] /= t; + frust[0][3] /= t; + + /* Extract the numbers for the LEFT plane */ + frust[1][0] = clip[ 3] + clip[ 0]; + frust[1][1] = clip[ 7] + clip[ 4]; + frust[1][2] = clip[11] + clip[ 8]; + frust[1][3] = clip[15] + clip[12]; + + /* Normalize the result */ + t = sqrt( frust[1][0] * frust[1][0] + frust[1][1] * frust[1][1] + frust[1][2] * frust[1][2] ); + frust[1][0] /= t; + frust[1][1] /= t; + frust[1][2] /= t; + frust[1][3] /= t; + + /* Extract the BOTTOM plane */ + frust[2][0] = clip[ 3] + clip[ 1]; + frust[2][1] = clip[ 7] + clip[ 5]; + frust[2][2] = clip[11] + clip[ 9]; + frust[2][3] = clip[15] + clip[13]; + + /* Normalize the result */ + t = sqrt( frust[2][0] * frust[2][0] + frust[2][1] * frust[2][1] + frust[2][2] * frust[2][2] ); + frust[2][0] /= t; + frust[2][1] /= t; + frust[2][2] /= t; + frust[2][3] /= t; + + /* Extract the TOP plane */ + frust[3][0] = clip[ 3] - clip[ 1]; + frust[3][1] = clip[ 7] - clip[ 5]; + frust[3][2] = clip[11] - clip[ 9]; + frust[3][3] = clip[15] - clip[13]; + + /* Normalize the result */ + t = sqrt( frust[3][0] * frust[3][0] + frust[3][1] * frust[3][1] + frust[3][2] * frust[3][2] ); + frust[3][0] /= t; + frust[3][1] /= t; + frust[3][2] /= t; + frust[3][3] /= t; + + /* Extract the FAR plane */ + frust[4][0] = clip[ 3] - clip[ 2]; + frust[4][1] = clip[ 7] - clip[ 6]; + frust[4][2] = clip[11] - clip[10]; + frust[4][3] = clip[15] - clip[14]; + + /* Normalize the result */ + t = sqrt( frust[4][0] * frust[4][0] + frust[4][1] * frust[4][1] + frust[4][2] * frust[4][2] ); + frust[4][0] /= t; + frust[4][1] /= t; + frust[4][2] /= t; + frust[4][3] /= t; + + /* Extract the NEAR plane */ + frust[5][0] = clip[ 3] + clip[ 2]; + frust[5][1] = clip[ 7] + clip[ 6]; + frust[5][2] = clip[11] + clip[10]; + frust[5][3] = clip[15] + clip[14]; + + /* Normalize the result */ + t = sqrt( frust[5][0] * frust[5][0] + frust[5][1] * frust[5][1] + frust[5][2] * frust[5][2] ); + frust[5][0] /= t; + frust[5][1] /= t; + frust[5][2] /= t; + frust[5][3] /= t; + +} + + + +void myProject(float x, float y, float z, short &Xi ) { + float pn[2]; + // x coordinate on screen, not normalized + pn[0] = x * matrix[0] + y * matrix[4] + z * matrix[8] + matrix[12]; + // normalization + pn[1] = x * matrix[3] + y * matrix[7] + z * matrix[11] + matrix[15]; + + // normalized x coordinate on screen + pn[0] /= pn[1]; + + // true x coordinate in viewport coordinate system + Xi = pn[0]*VP[0] + VP[1]; +} + +int LOD2(float x, float y, float z, float size) +{ + size = sqrt(3*size*size); + + short X1; + short X2; + + // onscreen position of the leftmost point + myProject(x - size*right[0], y - size*right[1], z - size*right[2], X1); + // onscreen position of the rightmost point + myProject(x + size*right[0], y + size*right[1], z + size*right[2], X2); + + if (X1 > X2) { + return (X1-X2); + } else { + return (X2-X1); + } +} + +bool LOD(float x, float y, float z, float size) +{ + size = sqrt(3*size*size); + + short X1; + short X2; + + // onscreen position of the leftmost point + myProject(x - size*right[0], y - size*right[1], z - size*right[2], X1); + // onscreen position of the rightmost point + myProject(x + size*right[0], y + size*right[1], z + size*right[2], X2); + + if (X1 > X2) { + return (X1-X2) > DETAIL; + } else { + return (X2-X1) > DETAIL; + } +} + + +/** + * 0 if not in frustrum + * 1 if partial overlap + * 2 if entirely within frustrum + */ +int CubeInFrustum2( float x, float y, float z, float size ) +{ + int p; + + float xm, xp, ym, yp, zm, zp; + float Fxm, Fxp, Fym, Fyp, Fzm, Fzp; + xm = x - size; + xp = x + size; + ym = y - size; + yp = y + size; + zm = z - size; + zp = z + size; + + for( p = 0; p < 6; p++ ) + { + Fxm = frustum[p][0] * xm; + Fym = frustum[p][1] * ym; + Fzm = frustum[p][2] * zm; + if( Fxm + Fym + Fzm + frustum[p][3] > 0 ) + continue; + + Fxp = frustum[p][0] * xp; + if( Fxp + Fym + Fzm + frustum[p][3] > 0 ) + continue; + + Fyp = frustum[p][1] * yp; + if( Fxm + Fyp + Fzm + frustum[p][3] > 0 ) + continue; + + if( Fxp + Fyp + Fzm + frustum[p][3] > 0 ) + continue; + + Fzp = frustum[p][2] * zp; + if( Fxm + Fym + Fzp + frustum[p][3] > 0 ) + continue; + + if( Fxp + Fym + Fzp + frustum[p][3] > 0 ) + continue; + if( Fxm + Fyp + Fzp + frustum[p][3] > 0 ) + continue; + if( Fxp + Fyp + Fzp + frustum[p][3] > 0 ) + continue; + return 0; + } + + // box is in frustrum, now check wether all corners are within. + // If one is outside return 1 otherwise 2 + for( p = 0; p < 6; p++ ) + { + Fxm = frustum[p][0] * xm; + Fym = frustum[p][1] * ym; + Fzm = frustum[p][2] * zm; + if( Fxm + Fym + Fzm + frustum[p][3] < 0 ) + return 1; + + Fxp = frustum[p][0] * xp; + if( Fxp + Fym + Fzm + frustum[p][3] < 0 ) + return 1; + + Fyp = frustum[p][1] * yp; + if( Fxm + Fyp + Fzm + frustum[p][3] < 0 ) + return 1; + + if( Fxp + Fyp + Fzm + frustum[p][3] < 0 ) + return 1; + + Fzp = frustum[p][2] * zp; + if( Fxm + Fym + Fzp + frustum[p][3] < 0 ) + return 1; + + if( Fxp + Fym + Fzp + frustum[p][3] < 0 ) + return 1; + if( Fxm + Fyp + Fzp + frustum[p][3] < 0 ) + return 1; + if( Fxp + Fyp + Fzp + frustum[p][3] < 0 ) + return 1; + } + return 2; + +} + +/* +char PlaneAABB( float x, float y, float z, float size, float *plane ) +{ + float dist = plane[3]; + + float xm, xp, ym, yp, zm, zp; + float Fxm, Fxp, Fym, Fyp, Fzm, Fzp; + + float dmmm, dpmm, dmpm, dppm, dmmp, dpmp, dmpp, dppp; + xm = x - size; + xp = x + size; + ym = y - size; + yp = y + size; + zm = z - size; + zp = z + size; + + { + Fxm = plane[0] * xm; + Fym = plane[1] * ym; + Fzm = plane[2] * zm; + dmmm = Fxm + Fym + Fzm + dist; + if( dmmm > 0 ) + goto intersects; + + Fxp = plane[0] * xp; + dpmm = Fxp + Fym + Fzm + dist; + if( dpmm > 0 ) + goto intersects; + + Fyp = plane[1] * yp; + dmpm = Fxm + Fyp + Fzm + dist; + if( dmpm > 0 ) + goto intersects; + + dppm = Fxp + Fyp + Fzm + dist; + if( dppm > 0 ) + goto intersects; + + Fzp = plane[2] * zp; + dmmp = Fxm + Fym + Fzp + dist; + if( dmmp > 0 ) + goto intersects; + + dpmp = Fxp + Fym + Fzp + dist; + if( dpmp > 0 ) + goto intersects; + dmpp = Fxm + Fyp + Fzp + dist; + if( dmpp > 0 ) + goto intersects; + dppp = Fxp + Fyp + Fzp + dist; + if( dppp > 0 ) + goto intersects; + return 0; // outside + } + + intersects: + + // cube is inside, determine if plane intersects the cube + { + if( dmmm < 0 ) + return 1; + Fxp = plane[0] * xp; + dpmm = Fxp + Fym + Fzm + dist; + if( dpmm < 0 ) + return 1; + Fyp = plane[1] * yp; + dmpm = Fxm + Fyp + Fzm + dist; + if( dmpm < 0 ) + return 1; + dppm = Fxp + Fyp + Fzm + dist; + if( dppm < 0 ) + return 1; + Fzp = plane[2] * zp; + dmmp = Fxm + Fym + Fzp + dist; + if( dmmp < 0 ) + return 1; + dpmp = Fxp + Fym + Fzp + dist; + if( dpmp < 0 ) + return 1; + dmpp = Fxm + Fyp + Fzp + dist; + if( dmpp < 0 ) + return 1; + dppp = Fxp + Fyp + Fzp + dist; + if( dppp < 0 ) + return 1; + } + + // plane is outside + return 2; + +} +*/ +char PlaneAABB( float x, float y, float z, float size, float *plane ) +{ + float dist = plane[3]; + + float xm, xp, ym, yp, zm, zp; + float Fxm, Fxp, Fym, Fyp, Fzm, Fzp; + + float dmmm, dpmm, dmpm, dppm, dmmp, dpmp, dmpp, dppp; + xm = x - size; + xp = x + size; + ym = y - size; + yp = y + size; + zm = z - size; + zp = z + size; + + Fxm = plane[0] * xm; + Fym = plane[1] * ym; + Fzm = plane[2] * zm; + dmmm = Fxm + Fym + Fzm + dist; + if( dmmm > 0 ) + { + Fxp = plane[0] * xp; + dpmm = Fxp + Fym + Fzm + dist; + if( dpmm < 0 ) + return 1; + Fyp = plane[1] * yp; + dmpm = Fxm + Fyp + Fzm + dist; + if( dmpm < 0 ) + return 1; + dppm = Fxp + Fyp + Fzm + dist; + if( dppm < 0 ) + return 1; + Fzp = plane[2] * zp; + dmmp = Fxm + Fym + Fzp + dist; + if( dmmp < 0 ) + return 1; + dpmp = Fxp + Fym + Fzp + dist; + if( dpmp < 0 ) + return 1; + dmpp = Fxm + Fyp + Fzp + dist; + if( dmpp < 0 ) + return 1; + dppp = Fxp + Fyp + Fzp + dist; + if( dppp < 0 ) + return 1; + return 2; + } + + Fxp = plane[0] * xp; + dpmm = Fxp + Fym + Fzm + dist; + if( dpmm > 0 ) + { + if( dmmm < 0 ) + return 1; + Fyp = plane[1] * yp; + dmpm = Fxm + Fyp + Fzm + dist; + if( dmpm < 0 ) + return 1; + dppm = Fxp + Fyp + Fzm + dist; + if( dppm < 0 ) + return 1; + Fzp = plane[2] * zp; + dmmp = Fxm + Fym + Fzp + dist; + if( dmmp < 0 ) + return 1; + dpmp = Fxp + Fym + Fzp + dist; + if( dpmp < 0 ) + return 1; + dmpp = Fxm + Fyp + Fzp + dist; + if( dmpp < 0 ) + return 1; + dppp = Fxp + Fyp + Fzp + dist; + if( dppp < 0 ) + return 1; + return 2; + } + + Fyp = plane[1] * yp; + dmpm = Fxm + Fyp + Fzm + dist; + if( dmpm > 0 ) + { + if( dmmm < 0 || dpmm < 0 ) + return 1; + dppm = Fxp + Fyp + Fzm + dist; + if( dppm < 0 ) + return 1; + Fzp = plane[2] * zp; + dmmp = Fxm + Fym + Fzp + dist; + if( dmmp < 0 ) + return 1; + dpmp = Fxp + Fym + Fzp + dist; + if( dpmp < 0 ) + return 1; + dmpp = Fxm + Fyp + Fzp + dist; + if( dmpp < 0 ) + return 1; + dppp = Fxp + Fyp + Fzp + dist; + if( dppp < 0 ) + return 1; + return 2; + } + + dppm = Fxp + Fyp + Fzm + dist; + if( dppm > 0 ) + { + if( dmmm < 0 || dpmm < 0 || dmpm < 0 ) + return 1; + Fzp = plane[2] * zp; + dmmp = Fxm + Fym + Fzp + dist; + if( dmmp < 0 ) + return 1; + dpmp = Fxp + Fym + Fzp + dist; + if( dpmp < 0 ) + return 1; + dmpp = Fxm + Fyp + Fzp + dist; + if( dmpp < 0 ) + return 1; + dppp = Fxp + Fyp + Fzp + dist; + if( dppp < 0 ) + return 1; + return 2; + } + + Fzp = plane[2] * zp; + dmmp = Fxm + Fym + Fzp + dist; + if( dmmp > 0 ) + { + if( dmmm < 0 || dpmm < 0 || dmpm < 0 || dppm < 0 ) + return 1; + dpmp = Fxp + Fym + Fzp + dist; + if( dpmp < 0 ) + return 1; + dmpp = Fxm + Fyp + Fzp + dist; + if( dmpp < 0 ) + return 1; + dppp = Fxp + Fyp + Fzp + dist; + if( dppp < 0 ) + return 1; + return 2; + } + + dpmp = Fxp + Fym + Fzp + dist; + if( dpmp > 0 ) + { + if( dmmm < 0 || dpmm < 0 || dmpm < 0 || dppm < 0 || dmmp < 0 ) + return 1; + dmpp = Fxm + Fyp + Fzp + dist; + if( dmpp < 0 ) + return 1; + dppp = Fxp + Fyp + Fzp + dist; + if( dppp < 0 ) + return 1; + return 2; + } + dmpp = Fxm + Fyp + Fzp + dist; + if( dmpp > 0 ) + { + if( dmmm < 0 || dpmm < 0 || dmpm < 0 || dppm < 0 || dmmp < 0 || dpmp < 0 ) + return 1; + dppp = Fxp + Fyp + Fzp + dist; + if( dppp < 0 ) + return 1; + return 2; + } + dppp = Fxp + Fyp + Fzp + dist; + if( dppp > 0 ) + { + if( dmmm < 0 || dpmm < 0 || dmpm < 0 || dppm < 0 || dmmp < 0 || dpmp < 0 || dmpp < 0) + return 1; + return 2; + } + return 0; // outside +} + +int QuadInFrustrum2old( float x, float y, float z, float size ) +{ + int p; + + for( p = 0; p < 6; p++ ) + { + if( frustum[p][0] * (x - size) + frustum[p][1] * (y - size) + frustum[p][2] * (z - size) + frustum[p][3] > 0 ) + continue; + if( frustum[p][0] * (x + size) + frustum[p][1] * (y - size) + frustum[p][2] * (z - size) + frustum[p][3] > 0 ) + continue; + if( frustum[p][0] * (x - size) + frustum[p][1] * (y + size) + frustum[p][2] * (z - size) + frustum[p][3] > 0 ) + continue; + if( frustum[p][0] * (x + size) + frustum[p][1] * (y + size) + frustum[p][2] * (z - size) + frustum[p][3] > 0 ) + continue; + if( frustum[p][0] * (x - size) + frustum[p][1] * (y - size) + frustum[p][2] * (z + size) + frustum[p][3] > 0 ) + continue; + if( frustum[p][0] * (x + size) + frustum[p][1] * (y - size) + frustum[p][2] * (z + size) + frustum[p][3] > 0 ) + continue; + if( frustum[p][0] * (x - size) + frustum[p][1] * (y + size) + frustum[p][2] * (z + size) + frustum[p][3] > 0 ) + continue; + if( frustum[p][0] * (x + size) + frustum[p][1] * (y + size) + frustum[p][2] * (z + size) + frustum[p][3] > 0 ) + continue; + return 0; + } + + // box is in frustrum, now check wether all corners are within. If one is outside return 1 otherwise 2 + for( p = 0; p < 6; p++ ) + { + if( frustum[p][0] * (x - size) + frustum[p][1] * (y - size) + frustum[p][2] * (z - size) + frustum[p][3] < 0 ) + return 1; + if( frustum[p][0] * (x + size) + frustum[p][1] * (y - size) + frustum[p][2] * (z - size) + frustum[p][3] < 0 ) + return 1; + if( frustum[p][0] * (x - size) + frustum[p][1] * (y + size) + frustum[p][2] * (z - size) + frustum[p][3] < 0 ) + return 1; + if( frustum[p][0] * (x + size) + frustum[p][1] * (y + size) + frustum[p][2] * (z - size) + frustum[p][3] < 0 ) + return 1; + if( frustum[p][0] * (x - size) + frustum[p][1] * (y - size) + frustum[p][2] * (z + size) + frustum[p][3] < 0 ) + return 1; + if( frustum[p][0] * (x + size) + frustum[p][1] * (y - size) + frustum[p][2] * (z + size) + frustum[p][3] < 0 ) + return 1; + if( frustum[p][0] * (x - size) + frustum[p][1] * (y + size) + frustum[p][2] * (z + size) + frustum[p][3] < 0 ) + return 1; + if( frustum[p][0] * (x + size) + frustum[p][1] * (y + size) + frustum[p][2] * (z + size) + frustum[p][3] < 0 ) + return 1; + } + return 2; + +} + +bool CubeInFrustum( float x, float y, float z, float size ) +{ + int p; + + float xm, xp, ym, yp, zm, zp; + float Fxm, Fxp, Fym, Fyp, Fzm, Fzp; + xm = x - size; + xp = x + size; + ym = y - size; + yp = y + size; + zm = z - size; + zp = z + size; + + for( p = 0; p < 6; p++ ) + { + Fxm = frustum[p][0] * xm; + Fym = frustum[p][1] * ym; + Fzm = frustum[p][2] * zm; + if( Fxm + Fym + Fzm + frustum[p][3] > 0 ) + continue; + + Fxp = frustum[p][0] * xp; + if( Fxp + Fym + Fzm + frustum[p][3] > 0 ) + continue; + + Fyp = frustum[p][1] * yp; + if( Fxm + Fyp + Fzm + frustum[p][3] > 0 ) + continue; + + if( Fxp + Fyp + Fzm + frustum[p][3] > 0 ) + continue; + + Fzp = frustum[p][2] * zp; + if( Fxm + Fym + Fzp + frustum[p][3] > 0 ) + continue; + + if( Fxp + Fym + Fzp + frustum[p][3] > 0 ) + continue; + if( Fxm + Fyp + Fzp + frustum[p][3] > 0 ) + continue; + if( Fxp + Fyp + Fzp + frustum[p][3] > 0 ) + continue; + return false; + } + return true; +} + + + + +float minB[NUMDIM], maxB[NUMDIM]; /*box */ +float coord[NUMDIM]; /* hit point */ diff --git a/.svn/pristine/1d/1ddc5261ac14800ca1c9cf86c8dbe6211b4b8781.svn-base b/.svn/pristine/1d/1ddc5261ac14800ca1c9cf86c8dbe6211b4b8781.svn-base new file mode 100644 index 0000000..a310ccb --- /dev/null +++ b/.svn/pristine/1d/1ddc5261ac14800ca1c9cf86c8dbe6211b4b8781.svn-base @@ -0,0 +1,61 @@ +//$$ newmatio.h definition file for matrix package input/output + +// Copyright (C) 1991,2,3,4: R B Davies + +#ifndef NEWMATIO_LIB +#define NEWMATIO_LIB 0 + +#ifndef WANT_STREAM +#define WANT_STREAM +#endif + +#include "newmat.h" + +#ifdef use_namespace +namespace NEWMAT { +#endif + + + +/**************************** input/output *****************************/ + +ostream& operator<<(ostream&, const BaseMatrix&); + +ostream& operator<<(ostream&, const GeneralMatrix&); + + +/* Use in some old versions of G++ without complete iomanipulators + +class Omanip_precision +{ + int x; +public: + Omanip_precision(int i) : x(i) {} + friend ostream& operator<<(ostream& os, Omanip_precision i); +}; + + +Omanip_precision setprecision(int i); + +class Omanip_width +{ + int x; +public: + Omanip_width(int i) : x(i) {} + friend ostream& operator<<(ostream& os, Omanip_width i); +}; + +Omanip_width setw(int i); + +*/ + +#ifdef use_namespace +} +#endif + + + +#endif + +// body file: newmat9.cpp + diff --git a/.svn/pristine/1e/1e01705de838528cb262769618e697421890c0d1.svn-base b/.svn/pristine/1e/1e01705de838528cb262769618e697421890c0d1.svn-base new file mode 100644 index 0000000..5b3f031 --- /dev/null +++ b/.svn/pristine/1e/1e01705de838528cb262769618e697421890c0d1.svn-base @@ -0,0 +1,579 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: wxBitmapComboBox +// Purpose: A wxComboBox type button for bitmaps and strings +// Author: John Labenski +// Modified by: +// Created: 11/05/2002 +// RCS-ID: +// Copyright: (c) John Labenki +// Licence: wxWidgets licence +///////////////////////////////////////////////////////////////////////////// + +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) + #pragma implementation "bmpcombo.h" +#endif + +// For compilers that support precompilation, includes "wx/wx.h". +#include "wx/wxprec.h" + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#ifndef WX_PRECOMP + #include "wx/control.h" + #include "wx/menu.h" + #include "wx/settings.h" + #include "wx/bitmap.h" + #include "wx/dc.h" + #include "wx/dcclient.h" + #include "wx/scrolwin.h" +#endif // WX_PRECOMP + +#include "wx/things/bmpcombo.h" + +#define BORDER 4 + +// ============================================================================ +// wxBitmapComboPopupChild +// ============================================================================ +BEGIN_EVENT_TABLE(wxBitmapComboPopupChild, wxScrolledWindow) + EVT_PAINT( wxBitmapComboPopupChild::OnPaint ) + EVT_MOUSE_EVENTS( wxBitmapComboPopupChild::OnMouse ) + EVT_KEY_DOWN( wxBitmapComboPopupChild::OnKeyDown ) +END_EVENT_TABLE() + +wxBitmapComboPopupChild::wxBitmapComboPopupChild(wxWindow *parent, wxBitmapComboBox *owner) + : wxScrolledWindow( parent, wxID_ANY, wxDefaultPosition, + wxDefaultSize, wxSUNKEN_BORDER|wxHSCROLL|wxVSCROLL) +{ + m_bmpCombo = owner; + m_last_selection = -1; + SetBackgroundColour(m_bmpCombo->GetBackgroundColour()); +} + +void wxBitmapComboPopupChild::OnPaint( wxPaintEvent &WXUNUSED(event) ) +{ + wxPaintDC dc(this); + PrepareDC(dc); + //dc.SetBackground(*wxTheBrushList->FindOrCreateBrush(GetBackgroundColour(), wxSOLID)); + //dc.Clear(); + + dc.SetFont(m_bmpCombo->GetFont()); + + int y = 0, dy = m_bmpCombo->GetItemSize().y; + wxPoint origin = dc.GetDeviceOrigin(); + wxSize clientSize = GetClientSize(); + + for (int n=0; nGetCount(); n++) + { + if (y + dy > -origin.y) + { + dc.SetDeviceOrigin(origin.x, origin.y + y + 1); + m_bmpCombo->DrawItem(dc, n); + } + + y += dy; + if (y > -origin.y + clientSize.y) + break; + } + + dc.SetDeviceOrigin(0, 0); + PrepareDC(dc); // reset back + + if (m_bmpCombo->GetSelection() >= 0) + { + if (m_last_selection < 0) + m_last_selection = m_bmpCombo->GetSelection(); + + DrawSelection(m_last_selection, dc); + } +} + +void wxBitmapComboPopupChild::OnMouse( wxMouseEvent &event ) +{ + wxPoint mouse = event.GetPosition(); + CalcUnscrolledPosition(mouse.x, mouse.y, &mouse.x, &mouse.y); + + //wxPrintf(wxT("bmpcombo mouse %d %d\n"), mouse.x, mouse.y); fflush(stdout); + + // Get selection from mouse pos, force valid + int sel = m_bmpCombo->GetItemSize().y != 0 ? mouse.y/m_bmpCombo->GetItemSize().y : -1; + if (sel < 0) + sel = 0; + else if (sel >= m_bmpCombo->GetCount()) + sel = m_bmpCombo->GetCount()-1; + + if (event.LeftDown()) + { + // quickly show user what they selected before hiding it + if (sel != m_last_selection) + { + wxClientDC dc(this); + PrepareDC(dc); + if (m_last_selection >= 0) + DrawSelection(m_last_selection, dc); + if (sel >= 0) + DrawSelection(sel, dc); + + m_last_selection = sel; + } + + m_bmpCombo->SetSelection(sel, true); + m_bmpCombo->HidePopup(); + return; + } +} + +void wxBitmapComboPopupChild::OnKeyDown( wxKeyEvent &event ) +{ + int sel = m_last_selection; + + switch (event.GetKeyCode()) + { + case WXK_ESCAPE : + { + m_bmpCombo->HidePopup(); + return; + } + case WXK_RETURN : + { + m_bmpCombo->SetSelection(sel, true); + m_bmpCombo->HidePopup(); + return; + } + case WXK_UP : sel--; break; + case WXK_DOWN : sel++; break; + default : event.Skip(true); return; + } + + if (sel < 0) + sel = 0; + if (sel >= m_bmpCombo->GetCount()) + sel = m_bmpCombo->GetCount()-1; + + if (sel != m_last_selection) + { + wxClientDC dc(this); + PrepareDC(dc); + if (m_last_selection>=0) + DrawSelection(m_last_selection, dc); + + if (sel>=0) + DrawSelection(sel, dc); + + m_last_selection = sel; + } +} + +void wxBitmapComboPopupChild::DrawSelection( int n, wxDC& dc ) +{ + dc.SetBrush(*wxTRANSPARENT_BRUSH); + dc.SetPen(*wxBLACK_PEN); + dc.SetLogicalFunction(wxINVERT); + int height = m_bmpCombo->GetItemSize().y; + dc.DrawRectangle(0, wxMax(0,height*n-1), GetClientSize().x, height+2); + dc.SetLogicalFunction(wxCOPY); +} + +// ========================================================================== +// wxBitmapComboLabel - the main "window" to the left of the dropdown button +// ========================================================================== +IMPLEMENT_DYNAMIC_CLASS( wxBitmapComboLabel, wxWindow ) + +BEGIN_EVENT_TABLE(wxBitmapComboLabel, wxWindow) + EVT_PAINT( wxBitmapComboLabel::OnPaint ) + EVT_CHAR( wxBitmapComboLabel::OnChar ) +END_EVENT_TABLE() + +void wxBitmapComboLabel::OnChar( wxKeyEvent &event ) +{ + switch (event.GetKeyCode()) + { + case WXK_UP : m_bmpCombo->SetNextSelection(false, true); break; + case WXK_DOWN : m_bmpCombo->SetNextSelection(true, true); break; + default : break; + } +} + +void wxBitmapComboLabel::OnPaint( wxPaintEvent &WXUNUSED(event) ) +{ + wxPaintDC dc(this); + dc.SetFont(m_bmpCombo->GetFont()); + //dc.SetBackground(*wxTheBrushList->FindOrCreateBrush(GetBackgroundColour(), wxSOLID)); + //dc.Clear(); + dc.SetBrush(*wxTheBrushList->FindOrCreateBrush(GetBackgroundColour(), wxSOLID)); + dc.SetPen(*wxTRANSPARENT_PEN); + dc.DrawRectangle(wxRect(wxPoint(0,0), GetClientSize())); + + const int sel = m_bmpCombo->GetSelection(); + if ((sel >= 0) && (sel < m_bmpCombo->GetCount())) + m_bmpCombo->DrawItem(dc, sel); +} + +// ============================================================================ +// wxBitmapComboBox +// ============================================================================ +IMPLEMENT_DYNAMIC_CLASS( wxBitmapComboBox, DropDownBase ) + +BEGIN_EVENT_TABLE(wxBitmapComboBox,DropDownBase) + EVT_SIZE( wxBitmapComboBox::OnSize ) +END_EVENT_TABLE() + +wxBitmapComboBox::~wxBitmapComboBox() +{ + while (m_bitmaps.GetCount() > 0u) + { + wxBitmap *bmp = (wxBitmap*)m_bitmaps.Item(0); + m_bitmaps.RemoveAt(0); + delete bmp; + } +} + +void wxBitmapComboBox::Init() +{ + m_labelWin = NULL; + m_frozen = true; + m_selection = 0; + m_win_border = 0; + m_label_style = wxBMPCOMBO_LEFT; +} + +bool wxBitmapComboBox::Create( wxWindow* parent, wxWindowID id, + const wxPoint& pos, const wxSize& size, + long style, const wxValidator& val, + const wxString& name) +{ + if (!DropDownBase::Create(parent,id,pos,size,wxNO_BORDER|wxCLIP_CHILDREN,val,name)) + return false; + + m_labelWin = new wxBitmapComboLabel(this); + m_win_border = m_labelWin->GetSize().x - m_labelWin->GetClientSize().x; + + SetBackgroundColour(*wxWHITE); + + m_frozen = false; + CalcLayout(); + + wxSize bestSize = DoGetBestSize(); + SetSize( wxSize(size.x < 0 ? bestSize.x : size.x, + size.y < 0 ? bestSize.y : size.y) ); + + return SetButtonStyle(style); +} + +#define BMPCOMBO_LABEL_MASK (wxBMPCOMBO_LEFT|wxBMPCOMBO_RIGHT) + +bool wxBitmapComboBox::SetButtonStyle(long style) +{ + style &= BMPCOMBO_LABEL_MASK; // strip off extras + + int n_styles = 0; + if (style & wxBMPCOMBO_LEFT) n_styles++; + if (style & wxBMPCOMBO_RIGHT) n_styles++; + wxCHECK_MSG(n_styles < 2, false, wxT("Only one wxBitmapComboBox label position allowed")); + if (n_styles < 1) style |= (m_label_style & BMPCOMBO_LABEL_MASK); + + m_label_style = style; + + m_labelWin->Refresh(true); + + return true; +} + +void wxBitmapComboBox::OnSize( wxSizeEvent& event ) +{ + event.Skip(); + + if (!m_labelWin || !m_dropdownButton) return; + + wxSize size = GetClientSize(); + //wxPrintf(wxT("ComboOnSize %d %d\n"), size.x, size.y); + int width = size.x - ((wxWindow*)m_dropdownButton)->GetSize().x; + m_labelWin->SetSize(0, 0, width, size.y); +} + +void wxBitmapComboBox::DoSetSize(int x, int y, int width, int height, int sizeFlags) +{ +/* + wxSize curSize( GetSize() ); + + if (width == -1) + width = curSize.GetWidth(); + if (height == -1) + height = curSize.GetHeight(); +*/ + DropDownBase::DoSetSize(x, y, width, height, sizeFlags); +/* + width = width - ((wxWindow*)m_dropdownButton)->GetSize().x; + m_labelWin->SetSize(0, 0, width, height); +*/ +} + +wxSize wxBitmapComboBox::DoGetBestSize() const +{ + if (GetCount() == 0) return DropDownBase::DoGetBestSize(); + + wxSize size(0,0); + size.x = m_labelSize.x + m_bitmapSize.x + (m_labelSize.x != 0 ? BORDER*2 : 0); + size.y = wxMax(m_labelSize.y, m_bitmapSize.y) + m_win_border; + + size.x += m_win_border + DROPDOWN_DROP_WIDTH; + if (size.y < DROPDOWN_DROP_HEIGHT) size.y = DROPDOWN_DROP_HEIGHT; + + return size; +} + +int wxBitmapComboBox::DoGetBestDropHeight(int max_height) +{ + int count = GetCount(); + if (count < 1) return -1; + + // add one for drawing selection rect + return wxMin(m_itemSize.y*count + m_win_border+1, max_height); +} + +bool wxBitmapComboBox::DoShowPopup() +{ + if (m_popupWin) + { + wxBitmapComboPopupChild *popChild = new wxBitmapComboPopupChild(m_popupWin, this); + m_popupWin->SetChild(popChild); + + if (popChild) + { + popChild->m_last_selection = GetSelection(); + int scr_pos = m_selection > 0 ? m_selection*m_itemSize.y-1 : 0; + int count = GetCount(); + popChild->SetScrollbars(1, 1, m_itemSize.x, m_itemSize.y*count+1, 0, scr_pos); + } + } + + return DropDownBase::DoShowPopup(); +} + +void wxBitmapComboBox::HidePopup() +{ + DropDownBase::HidePopup(); + + // FIXME - MSW destroys the sunken border of labelWin when in toolbar + // a refresh doesn't help +} + +void wxBitmapComboBox::Thaw() +{ + m_frozen = false; + CalcLayout(); + if (m_labelWin) + m_labelWin->Refresh(); +} + +void wxBitmapComboBox::CalcLayout() +{ + if (m_frozen) return; + + int height = 0, width = 0; + m_itemSize = m_labelSize = m_bitmapSize = wxSize(0,0); + int count = GetCount(); + wxBitmap bmp; + + for (int n=0; n m_bitmapSize.x) m_bitmapSize.x = width; + if (height > m_bitmapSize.y) m_bitmapSize.y = height; + } + if (!m_labels[n].IsEmpty()) + { + GetTextExtent(m_labels[n], &width, &height); + + if (width > m_labelSize.x) m_labelSize.x = width; + if (height > m_labelSize.y) m_labelSize.y = height; + } + } + + m_itemSize.x = m_labelSize.x + m_bitmapSize.x + m_win_border; + m_itemSize.y = wxMax(m_labelSize.y, m_bitmapSize.y) + m_win_border; +} + +void wxBitmapComboBox::CalcLabelBitmapPos(int n, const wxSize &area, wxPoint &labelPos, wxPoint &bitmapPos) const +{ + labelPos = bitmapPos = wxPoint(0,0); + + int bw = 0, bh = 0; + int lw = 0, lh = 0; + + if (GetBitmap(n).Ok()) + { + bw = GetBitmap(n).GetWidth(); + bh = GetBitmap(n).GetHeight(); + } + if (!m_labels[n].IsEmpty()) + { + GetTextExtent(m_labels[n], &lw, &lh); + } + + if (m_bitmapSize.x == 0) // There aren't any bitmaps, left align label + { + labelPos = wxPoint(BORDER, (area.y-lh)/2); + } + else if (m_labelSize.x == 0) // There aren't any labels, center bitmap + { + bitmapPos = wxPoint((area.x-bw)/2, (area.y-bh)/2); + } + else if ((m_label_style & wxBMPCOMBO_RIGHT) != 0) + { + labelPos = wxPoint(m_bitmapSize.x+BORDER, (area.y - lh)/2); + bitmapPos = wxPoint((m_bitmapSize.x-bw)/2, (area.y - bh)/2); + } + else // if ((m_label_style & wxBMPCOMBO_LEFT) != 0) + { + labelPos = wxPoint(BORDER, (area.y - lh)/2); + bitmapPos = wxPoint(BORDER*2 + m_labelSize.x + (area.x - BORDER*2 - m_labelSize.x - bw)/2, (area.y - bh)/2); + } +} + +void wxBitmapComboBox::DrawItem(wxDC &dc, int n) const +{ + wxSize itemSize(GetItemSize()); //((wxWindow*)GetLabelWindow())->GetClientSize().x, dy); + + wxPoint labelPos, bitmapPos; + CalcLabelBitmapPos(n, itemSize, labelPos, bitmapPos); + + if (GetBitmap(n).Ok()) + dc.DrawBitmap(GetBitmap(n), bitmapPos.x, bitmapPos.y, true); + if (!GetLabel(n).IsEmpty()) + dc.DrawText(GetLabel(n), labelPos.x, labelPos.y); +} + +void wxBitmapComboBox::Append(const wxString &label, const wxBitmap &bitmap, int count) +{ + for (int n=0; n=0) && (n 0u) + { + wxBitmap *bmp = (wxBitmap*)m_bitmaps.Item(0); + m_bitmaps.RemoveAt(0); + delete bmp; + } + CalcLayout(); +} + +void wxBitmapComboBox::Delete( int n, int count ) +{ + wxCHECK_RET((n>=0) && (count>0) && (n+count<=GetCount()), wxT("invalid index")); + + for (int i=0; i=0) && (n < GetCount()), wxEmptyString, wxT("invalid index")); + return m_labels[n]; +} + +wxBitmap wxBitmapComboBox::GetBitmap( int n ) const +{ + wxCHECK_MSG((n>=0) && (n < GetCount()), wxNullBitmap, wxT("invalid index")); + return *(wxBitmap *)m_bitmaps.Item(n); +} + +void wxBitmapComboBox::SetSelection( int n, bool send_event ) +{ + wxCHECK_RET((n>=0) && (n < GetCount()), wxT("invalid index")); + m_selection = n; + m_labelWin->Refresh(true); + + if (send_event) + { + wxCommandEvent event( wxEVT_COMMAND_COMBOBOX_SELECTED, GetId() ); + event.SetInt( m_selection ); + event.SetEventObject( this ); + GetEventHandler()->ProcessEvent( event ); + } +} + +void wxBitmapComboBox::SetNextSelection(bool foward, bool send_event) +{ + const int count = GetCount(); + if (count == 0) return; + + int sel = m_selection; + + if (foward) + { + if ((sel < 0) || (sel == count - 1)) + sel = 0; + else + sel++; + } + else + { + if (sel <= 0) + sel = count - 1; + else + sel--; + } + + SetSelection(sel, send_event); +} + +void wxBitmapComboBox::SetLabel(int n, const wxString &label) +{ + wxCHECK_RET( (n>=0) && (n < GetCount()), wxT("invalid index")); + m_labels[n] = label; + CalcLayout(); + + if (n == m_selection) m_labelWin->Refresh(false); +} + +void wxBitmapComboBox::SetBitmap(int n, const wxBitmap &bitmap) +{ + wxCHECK_RET((n>=0) && (n < GetCount()), wxT("invalid index")); + *((wxBitmap*)m_bitmaps.Item(n)) = bitmap; + CalcLayout(); + + if (n == m_selection) m_labelWin->Refresh(false); +} + +bool wxBitmapComboBox::SetBackgroundColour(const wxColour &colour) +{ + // not a failure for wx 2.5.x since InheritAttributes calls this + // from wxWindow::Create + if (m_labelWin) + { + m_labelWin->SetBackgroundColour(colour); + m_labelWin->Refresh(); + } + return DropDownBase::SetBackgroundColour(colour); +} diff --git a/.svn/pristine/1e/1e227ff6313550051b9fb033d091ebd858fe683a.svn-base b/.svn/pristine/1e/1e227ff6313550051b9fb033d091ebd858fe683a.svn-base new file mode 100644 index 0000000..68024a3 --- /dev/null +++ b/.svn/pristine/1e/1e227ff6313550051b9fb033d091ebd858fe683a.svn-base @@ -0,0 +1,950 @@ +//$$ newmat4.cpp Constructors, ReSize, basic utilities + +// Copyright (C) 1991,2,3,4,8,9: R B Davies + +#include "include.h" + +#include "newmat.h" +#include "newmatrc.h" + +#ifdef use_namespace +namespace NEWMAT { +#endif + + + +#ifdef DO_REPORT +#define REPORT { static ExeCounter ExeCount(__LINE__,4); ++ExeCount; } +#else +#define REPORT {} +#endif + + +#define DO_SEARCH // search for LHS of = in RHS + +// ************************* general utilities *************************/ + +static int tristore(int n) // elements in triangular matrix +{ return (n*(n+1))/2; } + + +// **************************** constructors ***************************/ + +GeneralMatrix::GeneralMatrix() +{ store=0; storage=0; nrows=0; ncols=0; tag=-1; } + +GeneralMatrix::GeneralMatrix(ArrayLengthSpecifier s) +{ + REPORT + storage=s.Value(); tag=-1; + if (storage) + { + store = new Real [storage]; MatrixErrorNoSpace(store); + MONITOR_REAL_NEW("Make (GenMatrix)",storage,store) + } + else store = 0; +} + +Matrix::Matrix(int m, int n) : GeneralMatrix(m*n) +{ REPORT nrows=m; ncols=n; } + +SymmetricMatrix::SymmetricMatrix(ArrayLengthSpecifier n) + : GeneralMatrix(tristore(n.Value())) +{ REPORT nrows=n.Value(); ncols=n.Value(); } + +UpperTriangularMatrix::UpperTriangularMatrix(ArrayLengthSpecifier n) + : GeneralMatrix(tristore(n.Value())) +{ REPORT nrows=n.Value(); ncols=n.Value(); } + +LowerTriangularMatrix::LowerTriangularMatrix(ArrayLengthSpecifier n) + : GeneralMatrix(tristore(n.Value())) +{ REPORT nrows=n.Value(); ncols=n.Value(); } + +DiagonalMatrix::DiagonalMatrix(ArrayLengthSpecifier m) : GeneralMatrix(m) +{ REPORT nrows=m.Value(); ncols=m.Value(); } + +Matrix::Matrix(const BaseMatrix& M) +{ + REPORT // CheckConversion(M); + // MatrixConversionCheck mcc; + GeneralMatrix* gmx=((BaseMatrix&)M).Evaluate(MatrixType::Rt); + GetMatrix(gmx); +} + +RowVector::RowVector(const BaseMatrix& M) : Matrix(M) +{ + if (nrows!=1) + { + Tracer tr("RowVector"); + Throw(VectorException(*this)); + } +} + +ColumnVector::ColumnVector(const BaseMatrix& M) : Matrix(M) +{ + if (ncols!=1) + { + Tracer tr("ColumnVector"); + Throw(VectorException(*this)); + } +} + +SymmetricMatrix::SymmetricMatrix(const BaseMatrix& M) +{ + REPORT // CheckConversion(M); + // MatrixConversionCheck mcc; + GeneralMatrix* gmx=((BaseMatrix&)M).Evaluate(MatrixType::Sm); + GetMatrix(gmx); +} + +UpperTriangularMatrix::UpperTriangularMatrix(const BaseMatrix& M) +{ + REPORT // CheckConversion(M); + // MatrixConversionCheck mcc; + GeneralMatrix* gmx=((BaseMatrix&)M).Evaluate(MatrixType::UT); + GetMatrix(gmx); +} + +LowerTriangularMatrix::LowerTriangularMatrix(const BaseMatrix& M) +{ + REPORT // CheckConversion(M); + // MatrixConversionCheck mcc; + GeneralMatrix* gmx=((BaseMatrix&)M).Evaluate(MatrixType::LT); + GetMatrix(gmx); +} + +DiagonalMatrix::DiagonalMatrix(const BaseMatrix& M) +{ + REPORT //CheckConversion(M); + // MatrixConversionCheck mcc; + GeneralMatrix* gmx=((BaseMatrix&)M).Evaluate(MatrixType::Dg); + GetMatrix(gmx); +} + +IdentityMatrix::IdentityMatrix(const BaseMatrix& M) +{ + REPORT //CheckConversion(M); + // MatrixConversionCheck mcc; + GeneralMatrix* gmx=((BaseMatrix&)M).Evaluate(MatrixType::Id); + GetMatrix(gmx); +} + +GeneralMatrix::~GeneralMatrix() +{ + if (store) + { + MONITOR_REAL_DELETE("Free (GenMatrix)",storage,store) + delete [] store; + } +} + +CroutMatrix::CroutMatrix(const BaseMatrix& m) +{ + REPORT + Tracer tr("CroutMatrix"); + indx = 0; // in case of exception at next line + GeneralMatrix* gm = ((BaseMatrix&)m).Evaluate(MatrixType::Rt); + GetMatrix(gm); + if (nrows!=ncols) { CleanUp(); Throw(NotSquareException(*gm)); } + d=true; sing=false; + indx=new int [nrows]; MatrixErrorNoSpace(indx); + MONITOR_INT_NEW("Index (CroutMat)",nrows,indx) + ludcmp(); +} + +CroutMatrix::~CroutMatrix() +{ + MONITOR_INT_DELETE("Index (CroutMat)",nrows,indx) + delete [] indx; +} + +//ReturnMatrixX::ReturnMatrixX(GeneralMatrix& gmx) +//{ +// REPORT +// gm = gmx.Image(); gm->ReleaseAndDelete(); +//} + +#ifndef TEMPS_DESTROYED_QUICKLY_R + +GeneralMatrix::operator ReturnMatrixX() const +{ + REPORT + GeneralMatrix* gm = Image(); gm->ReleaseAndDelete(); + return ReturnMatrixX(gm); +} + +#else + +GeneralMatrix::operator ReturnMatrixX&() const +{ + REPORT + GeneralMatrix* gm = Image(); gm->ReleaseAndDelete(); + ReturnMatrixX* x = new ReturnMatrixX(gm); + MatrixErrorNoSpace(x); return *x; +} + +#endif + +#ifndef TEMPS_DESTROYED_QUICKLY_R + +ReturnMatrixX GeneralMatrix::ForReturn() const +{ + REPORT + GeneralMatrix* gm = Image(); gm->ReleaseAndDelete(); + return ReturnMatrixX(gm); +} + +#else + +ReturnMatrixX& GeneralMatrix::ForReturn() const +{ + REPORT + GeneralMatrix* gm = Image(); gm->ReleaseAndDelete(); + ReturnMatrixX* x = new ReturnMatrixX(gm); + MatrixErrorNoSpace(x); return *x; +} + +#endif + +// ************************** ReSize matrices ***************************/ + +void GeneralMatrix::ReSize(int nr, int nc, int s) +{ + REPORT + if (store) + { + MONITOR_REAL_DELETE("Free (ReDimensi)",storage,store) + delete [] store; + } + storage=s; nrows=nr; ncols=nc; tag=-1; + if (s) + { + store = new Real [storage]; MatrixErrorNoSpace(store); + MONITOR_REAL_NEW("Make (ReDimensi)",storage,store) + } + else store = 0; +} + +void Matrix::ReSize(int nr, int nc) +{ REPORT GeneralMatrix::ReSize(nr,nc,nr*nc); } + +void SymmetricMatrix::ReSize(int nr) +{ REPORT GeneralMatrix::ReSize(nr,nr,tristore(nr)); } + +void UpperTriangularMatrix::ReSize(int nr) +{ REPORT GeneralMatrix::ReSize(nr,nr,tristore(nr)); } + +void LowerTriangularMatrix::ReSize(int nr) +{ REPORT GeneralMatrix::ReSize(nr,nr,tristore(nr)); } + +void DiagonalMatrix::ReSize(int nr) +{ REPORT GeneralMatrix::ReSize(nr,nr,nr); } + +void RowVector::ReSize(int nc) +{ REPORT GeneralMatrix::ReSize(1,nc,nc); } + +void ColumnVector::ReSize(int nr) +{ REPORT GeneralMatrix::ReSize(nr,1,nr); } + +void RowVector::ReSize(int nr, int nc) +{ + Tracer tr("RowVector::ReSize"); + if (nr != 1) Throw(VectorException(*this)); + REPORT GeneralMatrix::ReSize(1,nc,nc); +} + +void ColumnVector::ReSize(int nr, int nc) +{ + Tracer tr("ColumnVector::ReSize"); + if (nc != 1) Throw(VectorException(*this)); + REPORT GeneralMatrix::ReSize(nr,1,nr); +} + +void IdentityMatrix::ReSize(int nr) +{ REPORT GeneralMatrix::ReSize(nr,nr,1); *store = 1; } + + +void Matrix::ReSize(const GeneralMatrix& A) +{ REPORT ReSize(A.Nrows(), A.Ncols()); } + +void nricMatrix::ReSize(const GeneralMatrix& A) +{ REPORT ReSize(A.Nrows(), A.Ncols()); } + +void ColumnVector::ReSize(const GeneralMatrix& A) +{ REPORT ReSize(A.Nrows(), A.Ncols()); } + +void RowVector::ReSize(const GeneralMatrix& A) +{ REPORT ReSize(A.Nrows(), A.Ncols()); } + +void SymmetricMatrix::ReSize(const GeneralMatrix& A) +{ + REPORT + int n = A.Nrows(); + if (n != A.Ncols()) + { + Tracer tr("SymmetricMatrix::ReSize(GM)"); + Throw(NotSquareException(*this)); + } + ReSize(n); +} + +void DiagonalMatrix::ReSize(const GeneralMatrix& A) +{ + REPORT + int n = A.Nrows(); + if (n != A.Ncols()) + { + Tracer tr("DiagonalMatrix::ReSize(GM)"); + Throw(NotSquareException(*this)); + } + ReSize(n); +} + +void UpperTriangularMatrix::ReSize(const GeneralMatrix& A) +{ + REPORT + int n = A.Nrows(); + if (n != A.Ncols()) + { + Tracer tr("UpperTriangularMatrix::ReSize(GM)"); + Throw(NotSquareException(*this)); + } + ReSize(n); +} + +void LowerTriangularMatrix::ReSize(const GeneralMatrix& A) +{ + REPORT + int n = A.Nrows(); + if (n != A.Ncols()) + { + Tracer tr("LowerTriangularMatrix::ReSize(GM)"); + Throw(NotSquareException(*this)); + } + ReSize(n); +} + +void IdentityMatrix::ReSize(const GeneralMatrix& A) +{ + REPORT + int n = A.Nrows(); + if (n != A.Ncols()) + { + Tracer tr("IdentityMatrix::ReSize(GM)"); + Throw(NotSquareException(*this)); + } + ReSize(n); +} + +void GeneralMatrix::ReSize(const GeneralMatrix&) +{ + REPORT + Tracer tr("GeneralMatrix::ReSize(GM)"); + Throw(NotDefinedException("ReSize", "this type of matrix")); +} + +void GeneralMatrix::ReSizeForAdd(const GeneralMatrix& A, const GeneralMatrix&) +{ REPORT ReSize(A); } + +void GeneralMatrix::ReSizeForSP(const GeneralMatrix& A, const GeneralMatrix&) +{ REPORT ReSize(A); } + + +// ************************* SameStorageType ******************************/ + +// SameStorageType checks A and B have same storage type including bandwidth +// It does not check same dimensions since we assume this is already done + +bool GeneralMatrix::SameStorageType(const GeneralMatrix& A) const +{ + REPORT + return Type() == A.Type(); +} + + +// ******************* manipulate types, storage **************************/ + +int GeneralMatrix::search(const BaseMatrix* s) const +{ REPORT return (s==this) ? 1 : 0; } + +int GenericMatrix::search(const BaseMatrix* s) const +{ REPORT return gm->search(s); } + +int MultipliedMatrix::search(const BaseMatrix* s) const +{ REPORT return bm1->search(s) + bm2->search(s); } + +int ShiftedMatrix::search(const BaseMatrix* s) const +{ REPORT return bm->search(s); } + +int NegatedMatrix::search(const BaseMatrix* s) const +{ REPORT return bm->search(s); } + +int ReturnMatrixX::search(const BaseMatrix* s) const +{ REPORT return (s==gm) ? 1 : 0; } + +MatrixType Matrix::Type() const { return MatrixType::Rt; } +MatrixType SymmetricMatrix::Type() const { return MatrixType::Sm; } +MatrixType UpperTriangularMatrix::Type() const { return MatrixType::UT; } +MatrixType LowerTriangularMatrix::Type() const { return MatrixType::LT; } +MatrixType DiagonalMatrix::Type() const { return MatrixType::Dg; } +MatrixType RowVector::Type() const { return MatrixType::RV; } +MatrixType ColumnVector::Type() const { return MatrixType::CV; } +MatrixType CroutMatrix::Type() const { return MatrixType::Ct; } +MatrixType BandMatrix::Type() const { return MatrixType::BM; } +MatrixType UpperBandMatrix::Type() const { return MatrixType::UB; } +MatrixType LowerBandMatrix::Type() const { return MatrixType::LB; } +MatrixType SymmetricBandMatrix::Type() const { return MatrixType::SB; } + +MatrixType IdentityMatrix::Type() const { return MatrixType::Id; } + + + +MatrixBandWidth BaseMatrix::BandWidth() const { REPORT return -1; } +MatrixBandWidth DiagonalMatrix::BandWidth() const { REPORT return 0; } +MatrixBandWidth IdentityMatrix::BandWidth() const { REPORT return 0; } + +MatrixBandWidth UpperTriangularMatrix::BandWidth() const + { REPORT return MatrixBandWidth(0,-1); } + +MatrixBandWidth LowerTriangularMatrix::BandWidth() const + { REPORT return MatrixBandWidth(-1,0); } + +MatrixBandWidth BandMatrix::BandWidth() const + { REPORT return MatrixBandWidth(lower,upper); } + +MatrixBandWidth GenericMatrix::BandWidth()const + { REPORT return gm->BandWidth(); } + +MatrixBandWidth AddedMatrix::BandWidth() const + { REPORT return gm1->BandWidth() + gm2->BandWidth(); } + +MatrixBandWidth SPMatrix::BandWidth() const + { REPORT return gm1->BandWidth().minimum(gm2->BandWidth()); } + +MatrixBandWidth KPMatrix::BandWidth() const +{ + int lower, upper; + MatrixBandWidth bw1 = gm1->BandWidth(), bw2 = gm2->BandWidth(); + if (bw1.Lower() < 0) + { + if (bw2.Lower() < 0) { REPORT lower = -1; } + else { REPORT lower = bw2.Lower() + (gm1->Nrows() - 1) * gm2->Nrows(); } + } + else + { + if (bw2.Lower() < 0) + { REPORT lower = (1 + bw1.Lower()) * gm2->Nrows() - 1; } + else { REPORT lower = bw2.Lower() + bw1.Lower() * gm2->Nrows(); } + } + if (bw1.Upper() < 0) + { + if (bw2.Upper() < 0) { REPORT upper = -1; } + else { REPORT upper = bw2.Upper() + (gm1->Nrows() - 1) * gm2->Nrows(); } + } + else + { + if (bw2.Upper() < 0) + { REPORT upper = (1 + bw1.Upper()) * gm2->Nrows() - 1; } + else { REPORT upper = bw2.Upper() + bw1.Upper() * gm2->Nrows(); } + } + return MatrixBandWidth(lower, upper); +} + +MatrixBandWidth MultipliedMatrix::BandWidth() const +{ REPORT return gm1->BandWidth() * gm2->BandWidth(); } + +MatrixBandWidth ConcatenatedMatrix::BandWidth() const { REPORT return -1; } + +MatrixBandWidth SolvedMatrix::BandWidth() const +{ + if (+gm1->Type() & MatrixType::Diagonal) + { REPORT return gm2->BandWidth(); } + else { REPORT return -1; } +} + +MatrixBandWidth ScaledMatrix::BandWidth() const + { REPORT return gm->BandWidth(); } + +MatrixBandWidth NegatedMatrix::BandWidth() const + { REPORT return gm->BandWidth(); } + +MatrixBandWidth TransposedMatrix::BandWidth() const + { REPORT return gm->BandWidth().t(); } + +MatrixBandWidth InvertedMatrix::BandWidth() const +{ + if (+gm->Type() & MatrixType::Diagonal) + { REPORT return MatrixBandWidth(0,0); } + else { REPORT return -1; } +} + +MatrixBandWidth RowedMatrix::BandWidth() const { REPORT return -1; } +MatrixBandWidth ColedMatrix::BandWidth() const { REPORT return -1; } +MatrixBandWidth DiagedMatrix::BandWidth() const { REPORT return 0; } +MatrixBandWidth MatedMatrix::BandWidth() const { REPORT return -1; } +MatrixBandWidth ReturnMatrixX::BandWidth() const + { REPORT return gm->BandWidth(); } + +MatrixBandWidth GetSubMatrix::BandWidth() const +{ + + if (row_skip==col_skip && row_number==col_number) + { REPORT return gm->BandWidth(); } + else { REPORT return MatrixBandWidth(-1); } +} + +// ********************** the memory managment tools **********************/ + +// Rules regarding tDelete, reuse, GetStore +// All matrices processed during expression evaluation must be subject +// to exactly one of reuse(), tDelete(), GetStore() or BorrowStore(). +// If reuse returns true the matrix must be reused. +// GetMatrix(gm) always calls gm->GetStore() +// gm->Evaluate obeys rules +// bm->Evaluate obeys rules for matrices in bm structure + +void GeneralMatrix::tDelete() +{ + if (tag<0) + { + if (tag<-1) { REPORT store=0; delete this; return; } // borrowed + else { REPORT return; } + } + if (tag==1) + { + if (store) + { + REPORT MONITOR_REAL_DELETE("Free (tDelete)",storage,store) + delete [] store; + } + store=0; CleanUp(); tag=-1; return; + } + if (tag==0) { REPORT delete this; return; } + REPORT tag--; return; +} + +static void BlockCopy(int n, Real* from, Real* to) +{ + REPORT + int i = (n >> 3); + while (i--) + { + *to++ = *from++; *to++ = *from++; *to++ = *from++; *to++ = *from++; + *to++ = *from++; *to++ = *from++; *to++ = *from++; *to++ = *from++; + } + i = n & 7; while (i--) *to++ = *from++; +} + +bool GeneralMatrix::reuse() +{ + if (tag<-1) + { + if (storage) + { + REPORT + Real* s = new Real [storage]; MatrixErrorNoSpace(s); + MONITOR_REAL_NEW("Make (reuse)",storage,s) + BlockCopy(storage, store, s); store=s; + } + else { REPORT store = 0; CleanUp(); } + tag=0; return true; + } + if (tag<0) { REPORT return false; } + if (tag<=1) { REPORT return true; } + REPORT tag--; return false; +} + +Real* GeneralMatrix::GetStore() +{ + if (tag<0 || tag>1) + { + Real* s; + if (storage) + { + s = new Real [storage]; MatrixErrorNoSpace(s); + MONITOR_REAL_NEW("Make (GetStore)",storage,s) + BlockCopy(storage, store, s); + } + else s = 0; + if (tag>1) { REPORT tag--; } + else if (tag < -1) { REPORT store=0; delete this; } // borrowed store + else { REPORT } + return s; + } + Real* s=store; store=0; + if (tag==0) { REPORT delete this; } + else { REPORT CleanUp(); tag=-1; } + return s; +} + +void GeneralMatrix::GetMatrix(const GeneralMatrix* gmx) +{ + REPORT tag=-1; nrows=gmx->Nrows(); ncols=gmx->Ncols(); + storage=gmx->storage; SetParameters(gmx); + store=((GeneralMatrix*)gmx)->GetStore(); +} + +GeneralMatrix* GeneralMatrix::BorrowStore(GeneralMatrix* gmx, MatrixType mt) +// Copy storage of *this to storage of *gmx. Then convert to type mt. +// If mt == 0 just let *gmx point to storage of *this if tag==-1. +{ + if (!mt) + { + if (tag == -1) { REPORT gmx->tag = -2; gmx->store = store; } + else { REPORT gmx->tag = 0; gmx->store = GetStore(); } + } + else if (Compare(gmx->Type(),mt)) + { REPORT gmx->tag = 0; gmx->store = GetStore(); } + else + { + REPORT gmx->tag = -2; gmx->store = store; + gmx = gmx->Evaluate(mt); gmx->tag = 0; tDelete(); + } + + return gmx; +} + +void GeneralMatrix::Eq(const BaseMatrix& X, MatrixType mt) +// Count number of references to this in X. +// If zero delete storage in this; +// otherwise tag this to show when storage can be deleted +// evaluate X and copy to this +{ +#ifdef DO_SEARCH + int counter=X.search(this); + if (counter==0) + { + REPORT + if (store) + { + MONITOR_REAL_DELETE("Free (operator=)",storage,store) + REPORT delete [] store; storage=0; store = 0; + } + } + else { REPORT Release(counter); } + GeneralMatrix* gmx = ((BaseMatrix&)X).Evaluate(mt); + if (gmx!=this) { REPORT GetMatrix(gmx); } + else { REPORT } + Protect(); +#else + GeneralMatrix* gmx = ((BaseMatrix&)X).Evaluate(mt); + if (gmx!=this) + { + REPORT + if (store) + { + MONITOR_REAL_DELETE("Free (operator=)",storage,store) + REPORT delete [] store; storage=0; store = 0; + } + GetMatrix(gmx); + } + else { REPORT } + Protect(); +#endif +} + +// version to work with operator<< +void GeneralMatrix::Eq(const BaseMatrix& X, MatrixType mt, bool ldok) +{ + REPORT + if (ldok) mt.SetDataLossOK(); + Eq(X, mt); +} + +void GeneralMatrix::Eq2(const BaseMatrix& X, MatrixType mt) +// a cut down version of Eq for use with += etc. +// we know BaseMatrix points to two GeneralMatrix objects, +// the first being this (may be the same). +// we know tag has been set correctly in each. +{ + GeneralMatrix* gmx = ((BaseMatrix&)X).Evaluate(mt); + if (gmx!=this) { REPORT GetMatrix(gmx); } // simplify GetMatrix ? + else { REPORT } + Protect(); +} + +void GeneralMatrix::Inject(const GeneralMatrix& X) +// copy stored values of X; otherwise leave els of *this unchanged +{ + REPORT + Tracer tr("Inject"); + if (nrows != X.nrows || ncols != X.ncols) + Throw(IncompatibleDimensionsException()); + MatrixRow mr((GeneralMatrix*)&X, LoadOnEntry); + MatrixRow mrx(this, LoadOnEntry+StoreOnExit+DirectPart); + int i=nrows; + while (i--) { mrx.Inject(mr); mrx.Next(); mr.Next(); } +} + +// ************* checking for data loss during conversion *******************/ + +bool Compare(const MatrixType& source, MatrixType& destination) +{ + if (!destination) { destination=source; return true; } + if (destination==source) return true; + if (!destination.DataLossOK && !(destination>=source)) + Throw(ProgramException("Illegal Conversion", source, destination)); + return false; +} + +// ************* Make a copy of a matrix on the heap *********************/ + +GeneralMatrix* Matrix::Image() const +{ + REPORT + GeneralMatrix* gm = new Matrix(*this); MatrixErrorNoSpace(gm); + return gm; +} + +GeneralMatrix* SymmetricMatrix::Image() const +{ + REPORT + GeneralMatrix* gm = new SymmetricMatrix(*this); MatrixErrorNoSpace(gm); + return gm; +} + +GeneralMatrix* UpperTriangularMatrix::Image() const +{ + REPORT + GeneralMatrix* gm = new UpperTriangularMatrix(*this); + MatrixErrorNoSpace(gm); return gm; +} + +GeneralMatrix* LowerTriangularMatrix::Image() const +{ + REPORT + GeneralMatrix* gm = new LowerTriangularMatrix(*this); + MatrixErrorNoSpace(gm); return gm; +} + +GeneralMatrix* DiagonalMatrix::Image() const +{ + REPORT + GeneralMatrix* gm = new DiagonalMatrix(*this); MatrixErrorNoSpace(gm); + return gm; +} + +GeneralMatrix* RowVector::Image() const +{ + REPORT + GeneralMatrix* gm = new RowVector(*this); MatrixErrorNoSpace(gm); + return gm; +} + +GeneralMatrix* ColumnVector::Image() const +{ + REPORT + GeneralMatrix* gm = new ColumnVector(*this); MatrixErrorNoSpace(gm); + return gm; +} + +GeneralMatrix* BandMatrix::Image() const +{ + REPORT + GeneralMatrix* gm = new BandMatrix(*this); MatrixErrorNoSpace(gm); + return gm; +} + +GeneralMatrix* UpperBandMatrix::Image() const +{ + REPORT + GeneralMatrix* gm = new UpperBandMatrix(*this); MatrixErrorNoSpace(gm); + return gm; +} + +GeneralMatrix* LowerBandMatrix::Image() const +{ + REPORT + GeneralMatrix* gm = new LowerBandMatrix(*this); MatrixErrorNoSpace(gm); + return gm; +} + +GeneralMatrix* SymmetricBandMatrix::Image() const +{ + REPORT + GeneralMatrix* gm = new SymmetricBandMatrix(*this); MatrixErrorNoSpace(gm); + return gm; +} + +GeneralMatrix* nricMatrix::Image() const +{ + REPORT + GeneralMatrix* gm = new nricMatrix(*this); MatrixErrorNoSpace(gm); + return gm; +} + +GeneralMatrix* IdentityMatrix::Image() const +{ + REPORT + GeneralMatrix* gm = new IdentityMatrix(*this); MatrixErrorNoSpace(gm); + return gm; +} + +GeneralMatrix* GeneralMatrix::Image() const +{ + bool dummy = true; + if (dummy) // get rid of warning message + Throw(InternalException("Cannot apply Image to this matrix type")); + return 0; +} + + +// *********************** nricMatrix routines *****************************/ + +void nricMatrix::MakeRowPointer() +{ + if (nrows > 0) + { + row_pointer = new Real* [nrows]; MatrixErrorNoSpace(row_pointer); + Real* s = Store() - 1; int i = nrows; Real** rp = row_pointer; + if (i) for (;;) { *rp++ = s; if (!(--i)) break; s+=ncols; } + } + else row_pointer = 0; +} + +void nricMatrix::DeleteRowPointer() +{ if (nrows) delete [] row_pointer; } + +void GeneralMatrix::CheckStore() const +{ + if (!store) + Throw(ProgramException("NRIC accessing matrix with unset dimensions")); +} + + +// *************************** CleanUp routines *****************************/ + +void GeneralMatrix::CleanUp() +{ + // set matrix dimensions to zero, delete storage + REPORT + if (store && storage) + { + MONITOR_REAL_DELETE("Free (CleanUp) ",storage,store) + REPORT delete [] store; + } + store=0; storage=0; nrows=0; ncols=0; +} + +void nricMatrix::CleanUp() +{ DeleteRowPointer(); GeneralMatrix::CleanUp(); } + +void RowVector::CleanUp() +{ GeneralMatrix::CleanUp(); nrows=1; } + +void ColumnVector::CleanUp() +{ GeneralMatrix::CleanUp(); ncols=1; } + +void CroutMatrix::CleanUp() +{ + if (nrows) delete [] indx; + GeneralMatrix::CleanUp(); +} + +void BandLUMatrix::CleanUp() +{ + if (nrows) delete [] indx; + if (storage2) delete [] store2; + GeneralMatrix::CleanUp(); +} + +// ************************ simple integer array class *********************** + +// construct a new array of length xn. Check that xn is non-negative and +// that space is available + +SimpleIntArray::SimpleIntArray(int xn) : n(xn) +{ + if (n < 0) Throw(Logic_error("invalid array length")); + else if (n == 0) { REPORT a = 0; } + else { REPORT a = new int [n]; if (!a) Throw(Bad_alloc()); } +} + +// destroy an array - return its space to memory + +SimpleIntArray::~SimpleIntArray() { REPORT if (a) delete [] a; } + +// access an element of an array; return a "reference" so elements +// can be modified. +// check index is within range +// in this array class the index runs from 0 to n-1 + +int& SimpleIntArray::operator[](int i) +{ + REPORT + if (i < 0 || i >= n) Throw(Logic_error("array index out of range")); + return a[i]; +} + +// same thing again but for arrays declared constant so we can't +// modify its elements + +int SimpleIntArray::operator[](int i) const +{ + REPORT + if (i < 0 || i >= n) Throw(Logic_error("array index out of range")); + return a[i]; +} + +// set all the elements equal to a given value + +void SimpleIntArray::operator=(int ai) + { REPORT for (int i = 0; i < n; i++) a[i] = ai; } + +// set the elements equal to those of another array. +// check the arrays are of the same length + +void SimpleIntArray::operator=(const SimpleIntArray& b) +{ + REPORT + if (b.n != n) Throw(Logic_error("array lengths differ in copy")); + for (int i = 0; i < n; i++) a[i] = b.a[i]; +} + +// construct a new array equal to an existing array +// check that space is available + +SimpleIntArray::SimpleIntArray(const SimpleIntArray& b) : n(b.n) +{ + if (n == 0) { REPORT a = 0; } + else + { + REPORT + a = new int [n]; if (!a) Throw(Bad_alloc()); + for (int i = 0; i < n; i++) a[i] = b.a[i]; + } +} + +// change the size of an array; optionally copy data from old array to +// new array + +void SimpleIntArray::ReSize(int n1, bool keep) +{ + if (n1 == n) { REPORT return; } + else if (n1 == 0) { REPORT n = 0; delete [] a; a = 0; } + else if (n == 0) + { REPORT a = new int [n1]; if (!a) Throw(Bad_alloc()); n = n1; } + else + { + int* a1 = a; + if (keep) + { + REPORT + a = new int [n1]; if (!a) Throw(Bad_alloc()); + if (n > n1) n = n1; + for (int i = 0; i < n; i++) a[i] = a1[i]; + n = n1; delete [] a1; + } + else + { + REPORT n = n1; delete [] a1; + a = new int [n]; if (!a) Throw(Bad_alloc()); + } + } +} + + +#ifdef use_namespace +} +#endif + diff --git a/.svn/pristine/1e/1ea44db6aa5034ef5b376d762f8f69ac75dcb20f.svn-base b/.svn/pristine/1e/1ea44db6aa5034ef5b376d762f8f69ac75dcb20f.svn-base new file mode 100644 index 0000000..c0a18f4 --- /dev/null +++ b/.svn/pristine/1e/1ea44db6aa5034ef5b376d762f8f69ac75dcb20f.svn-base @@ -0,0 +1,5016 @@ + +Begin test +Now print a real number: 3.14159 + +Matrix type: Rect (1, 8) + +0 0 0 0 0 0 0 1 + ++ UT LT Rect Sym Diag Band UpBnd LwBnd SmBnd Ident +UT UT Rect Rect Rect UT Rect UT Rect Rect UT +LT Rect LT Rect Rect LT Rect Rect LT Rect LT +Rect Rect Rect Rect Rect Rect Rect Rect Rect Rect Rect +Sym Rect Rect Rect Sym Sym Rect Rect Rect Sym Sym +Diag UT LT Rect Sym Diag Band UpBnd LwBnd SmBnd Diag +Band Rect Rect Rect Rect Band Band Band Band Band Band +UpBnd UT Rect Rect Rect UpBnd Band UpBnd Band Band UpBnd +LwBnd Rect LT Rect Rect LwBnd Band Band LwBnd Band LwBnd +SmBnd Rect Rect Rect Sym SmBnd Band Band Band SmBnd SmBnd +Ident UT LT Rect Sym Diag Band UpBnd LwBnd SmBnd Ident + +* UT LT Rect Sym Diag Band UpBnd LwBnd SmBnd Ident +UT UT Rect Rect Rect UT Rect UT Rect Rect UT +LT Rect LT Rect Rect LT Rect Rect LT Rect LT +Rect Rect Rect Rect Rect Rect Rect Rect Rect Rect Rect +Sym Rect Rect Rect Rect Rect Rect Rect Rect Rect Rect +Diag UT LT Rect Rect Diag Band UpBnd LwBnd Band Diag +Band Rect Rect Rect Rect Band Band Band Band Band Band +UpBnd UT Rect Rect Rect UpBnd Band UpBnd Band Band UpBnd +LwBnd Rect LT Rect Rect LwBnd Band Band LwBnd Band LwBnd +SmBnd Rect Rect Rect Rect Band Band Band Band Band Band +Ident UT LT Rect Rect Diag Band UpBnd LwBnd Band Ident + +| UT LT Rect Sym Diag Band UpBnd LwBnd SmBnd Ident +UT Rect Rect Rect Rect Rect Rect Rect Rect Rect Rect +LT Rect Rect Rect Rect Rect Rect Rect Rect Rect Rect +Rect Rect Rect Rect Rect Rect Rect Rect Rect Rect Rect +Sym Rect Rect Rect Rect Rect Rect Rect Rect Rect Rect +Diag Rect Rect Rect Rect Rect Rect Rect Rect Rect Rect +Band Rect Rect Rect Rect Rect Rect Rect Rect Rect Rect +UpBnd Rect Rect Rect Rect Rect Rect Rect Rect Rect Rect +LwBnd Rect Rect Rect Rect Rect Rect Rect Rect Rect Rect +SmBnd Rect Rect Rect Rect Rect Rect Rect Rect Rect Rect +Ident Rect Rect Rect Rect Rect Rect Rect Rect Rect Rect + +SP UT LT Rect Sym Diag Band UpBnd LwBnd SmBnd Ident +UT UT Diag UT UT Diag UpBnd UpBnd Diag UpBnd Diag +LT Diag LT LT LT Diag LwBnd Diag LwBnd LwBnd Diag +Rect UT LT Rect Rect Diag Band UpBnd LwBnd Band Diag +Sym UT LT Rect Sym Diag Band UpBnd LwBnd SmBnd Diag +Diag Diag Diag Diag Diag Diag Diag Diag Diag Diag Diag +Band UpBnd LwBnd Band Band Diag Band UpBnd LwBnd Band Diag +UpBnd UpBnd Diag UpBnd UpBnd Diag UpBnd UpBnd Diag UpBnd Diag +LwBnd Diag LwBnd LwBnd LwBnd Diag LwBnd Diag LwBnd LwBnd Diag +SmBnd UpBnd LwBnd Band SmBnd Diag Band UpBnd LwBnd SmBnd Diag +Ident Diag Diag Diag Diag Diag Diag Diag Diag Diag Ident + +KP UT LT Rect Sym Diag Band UpBnd LwBnd SmBnd Ident +UT UT Rect Rect Rect UT Rect UT Rect Rect UT +LT Rect LT Rect Rect LT Rect Rect LT Rect LT +Rect Rect Rect Rect Rect Rect Rect Rect Rect Rect Rect +Sym Rect Rect Rect Sym Sym Rect Rect Rect Sym Sym +Diag UT LT Rect Sym Diag Band UpBnd LwBnd SmBnd Diag +Band Rect Rect Rect Rect Band Band Band Band Band Band +UpBnd UT Rect Rect Rect UpBnd Band UpBnd Band Band UpBnd +LwBnd Rect LT Rect Rect LwBnd Band Band LwBnd Band LwBnd +SmBnd Rect Rect Rect Sym SmBnd Band Band Band SmBnd SmBnd +Ident UT LT Rect Sym Diag Band UpBnd LwBnd SmBnd Diag + +>= UT LT Rect Sym Diag Band UpBnd LwBnd SmBnd Ident +UT Yes No Yes No No No No No No No +LT No Yes Yes No No No No No No No +Rect No No Yes No No No No No No No +Sym No No Yes Yes No No No No No No +Diag Yes Yes Yes Yes Yes Yes Yes Yes Yes No +Band No No Yes No No Yes No No No No +UpBnd Yes No Yes No No Yes Yes No No No +LwBnd No Yes Yes No No Yes No Yes No No +SmBnd No No Yes Yes No Yes No No Yes No +Ident Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes + + + * First test of Matrix package + * Matrix test program + +Matrix type: LT (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: UT (9, 9) + +All elements are zero + +Matrix type: Rect (9, 9) + +All elements are zero + +Matrix type: Rect (10, 3) + +All elements are zero + +Matrix type: Rect (10, 3) + +All elements are zero + +Matrix type: Rect (10, 3) + +All elements are zero + +Matrix type: Rect (10, 3) + +All elements are zero + +Matrix type: Rect (10, 3) + +All elements are zero + +Matrix type: Rect (10, 3) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (20, 8) + +All elements are zero + +Matrix type: Rect (20, 6) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 20) + +All elements are zero + +Matrix type: Rect (20, 10) + +All elements are zero + +Matrix type: Rect (20, 10) + +All elements are zero + +Matrix type: Rect (10, 20) + +All elements are zero + +Matrix type: Rect (3, 3) + +All elements are zero + + * Second test of Matrix package + * Matrix test program + +Matrix type: Rect (8, 10) + +All elements are zero + +Matrix type: Rect (8, 10) + +All elements are zero + +Matrix type: Rect (8, 10) + +All elements are zero + +Matrix type: Rect (8, 10) + +All elements are zero + +Matrix type: Rect (8, 10) + +All elements are zero + +Matrix type: Rect (100, 1) + +All elements are zero + +Matrix type: Rect (10, 1) + +All elements are zero + +Matrix type: Rect (20, 1) + +All elements are zero + +Matrix type: Rect (4, 7) + +All elements are zero + +Matrix type: Rect (4, 7) + +All elements are zero + +Matrix type: Rect (8, 8) + +All elements are zero + +Matrix type: Rect (8, 8) + +All elements are zero + +Matrix type: Rect (8, 8) + +All elements are zero + +Matrix type: Rect (8, 8) + +All elements are zero + +Matrix type: Rect (8, 8) + +All elements are zero + +Matrix type: Rect (10, 20) + +All elements are zero + +Matrix type: Rect (0, 0) + +All elements are zero + +Matrix type: Rect (16, 1) + +All elements are zero + +Matrix type: Rect (0, 1) + +All elements are zero + +Matrix type: Rect (16, 1) + +All elements are zero + +Matrix type: Rect (1, 0) + +All elements are zero + +Matrix type: Rect (16, 1) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Diag (10, 10) + +All elements are zero + +Matrix type: Rect (8, 1) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (14, 1) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 20) + +All elements are zero + +Matrix type: Rect (20, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (4, 6) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Diag (20, 20) + +All elements are zero + +Matrix type: Rect (3, 3) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + + * Third test of Matrix package + * Matrix test program + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Rect (6, 7) + +All elements are zero + +Matrix type: Rect (6, 7) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Diag (6, 6) + +All elements are zero + +Matrix type: Diag (6, 6) + +All elements are zero + +Matrix type: Rect (3, 3) + +All elements are zero + +Matrix type: Rect (5, 5) + +All elements are zero + +Matrix type: Rect (10, 1) + +All elements are zero + +Matrix type: Rect (1, 10) + +All elements are zero + +Matrix type: Diag (10, 10) + +All elements are zero + +Matrix type: Rect (19, 1) + +All elements are zero + +Matrix type: Rect (19, 1) + +All elements are zero + +Matrix type: Rect (3, 3) + +All elements are zero + +Matrix type: Rect (3, 3) + +All elements are zero + +Matrix type: Rect (3, 3) + +All elements are zero + +Matrix type: Rect (3, 3) + +All elements are zero + +Matrix type: Rect (4, 1) + +All elements are zero + +Matrix type: Rect (6, 1) + +All elements are zero + +Matrix type: Rect (6, 3) + +All elements are zero + +Matrix type: Rect (3, 3) + +All elements are zero + + * Fourth test of Matrix package + * Matrix test program + +Matrix type: Rect (3, 10) + +All elements are zero + +Matrix type: Rect (3, 10) + +All elements are zero + +Matrix type: Rect (3, 3) + +All elements are zero + +Matrix type: Rect (10, 3) + +All elements are zero + +Matrix type: Rect (10, 3) + +All elements are zero + +Matrix type: Rect (10, 1) + +All elements are zero + +Matrix type: Rect (10, 3) + +All elements are zero + +Matrix type: Rect (5, 8) + +All elements are zero + +Matrix type: Rect (4, 5) + +All elements are zero + +Matrix type: Rect (4, 5) + +All elements are zero + +Matrix type: Rect (4, 5) + +All elements are zero + +Matrix type: Rect (4, 5) + +All elements are zero + +Matrix type: Rect (5, 5) + +All elements are zero + +Matrix type: Rect (5, 5) + +All elements are zero + +Matrix type: Rect (5, 5) + +All elements are zero + +Matrix type: Rect (4, 4) + +All elements are zero + +Matrix type: Diag (1, 1) + +All elements are zero + +Matrix type: Rect (2, 2) + +All elements are zero + +Matrix type: Diag (4, 4) + +All elements are zero + +Matrix type: Diag (4, 4) + +All elements are zero + + * Fifth test of Matrix package + * Matrix test program + +Matrix type: Rect (6, 1) + +All elements are zero + +Matrix type: Rect (6, 1) + +All elements are zero + +Matrix type: Rect (6, 1) + +All elements are zero + +Matrix type: Rect (1, 6) + +All elements are zero + +Matrix type: Rect (1, 10) + +All elements are zero + +Matrix type: Rect (2, 3) + +All elements are zero + +Matrix type: Rect (3, 2) + +All elements are zero + +Matrix type: Rect (1, 10) + +All elements are zero + +Matrix type: Rect (10, 1) + +All elements are zero + +Matrix type: Rect (5, 6) + +All elements are zero + +Matrix type: Rect (31, 31) + +All elements are zero + +Matrix type: Rect (31, 31) + +All elements are zero + +Matrix type: Rect (31, 31) + +All elements are zero + +Matrix type: Rect (31, 31) + +All elements are zero + +Matrix type: Rect (31, 31) + +All elements are zero + +Matrix type: Rect (31, 31) + +All elements are zero + +Matrix type: Diag (31, 31) + +All elements are zero + + * Sixth test of Matrix package + * Matrix test program + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (5, 5) + +All elements are zero + +Matrix type: Rect (5, 5) + +All elements are zero + +Matrix type: LT (5, 5) + +All elements are zero + +Matrix type: LT (5, 5) + +All elements are zero + +Matrix type: Diag (5, 5) + +All elements are zero + +Matrix type: Rect (5, 5) + +All elements are zero + +Matrix type: Rect (5, 10) + +All elements are zero + +Matrix type: Rect (5, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (15, 15) + +All elements are zero + +Matrix type: Rect (15, 15) + +All elements are zero + +Matrix type: Rect (1, 1) + +All elements are zero + +Matrix type: Rect (1, 1) + +All elements are zero + +Matrix type: Rect (1, 1) + +All elements are zero + +Matrix type: Rect (1, 1) + +All elements are zero + +Matrix type: Rect (1, 1) + +All elements are zero + +Matrix type: Rect (1, 1) + +All elements are zero + +Matrix type: Rect (1, 1) + +All elements are zero + +Matrix type: Rect (1, 1) + +All elements are zero + +Matrix type: Rect (1, 2) + +All elements are zero + +Matrix type: Rect (1, 2) + +All elements are zero + +Matrix type: Rect (1, 2) + +All elements are zero + +Matrix type: Rect (1, 2) + +All elements are zero + +Matrix type: Rect (1, 2) + +All elements are zero + +Matrix type: Rect (1, 2) + +All elements are zero + +Matrix type: Rect (1, 2) + +All elements are zero + +Matrix type: Rect (1, 2) + +All elements are zero + +Matrix type: Rect (1, 3) + +All elements are zero + +Matrix type: Rect (1, 3) + +All elements are zero + +Matrix type: Rect (1, 3) + +All elements are zero + +Matrix type: Rect (1, 3) + +All elements are zero + +Matrix type: Rect (1, 3) + +All elements are zero + +Matrix type: Rect (1, 3) + +All elements are zero + +Matrix type: Rect (1, 3) + +All elements are zero + +Matrix type: Rect (1, 3) + +All elements are zero + +Matrix type: Rect (1, 4) + +All elements are zero + +Matrix type: Rect (1, 4) + +All elements are zero + +Matrix type: Rect (1, 4) + +All elements are zero + +Matrix type: Rect (1, 4) + +All elements are zero + +Matrix type: Rect (1, 4) + +All elements are zero + +Matrix type: Rect (1, 4) + +All elements are zero + +Matrix type: Rect (1, 4) + +All elements are zero + +Matrix type: Rect (1, 4) + +All elements are zero + +Matrix type: Rect (1, 15) + +All elements are zero + +Matrix type: Rect (1, 15) + +All elements are zero + +Matrix type: Rect (1, 15) + +All elements are zero + +Matrix type: Rect (1, 15) + +All elements are zero + +Matrix type: Rect (1, 15) + +All elements are zero + +Matrix type: Rect (1, 15) + +All elements are zero + +Matrix type: Rect (1, 15) + +All elements are zero + +Matrix type: Rect (1, 15) + +All elements are zero + +Matrix type: Rect (1, 16) + +All elements are zero + +Matrix type: Rect (1, 16) + +All elements are zero + +Matrix type: Rect (1, 16) + +All elements are zero + +Matrix type: Rect (1, 16) + +All elements are zero + +Matrix type: Rect (1, 16) + +All elements are zero + +Matrix type: Rect (1, 16) + +All elements are zero + +Matrix type: Rect (1, 16) + +All elements are zero + +Matrix type: Rect (1, 16) + +All elements are zero + +Matrix type: Rect (1, 17) + +All elements are zero + +Matrix type: Rect (1, 17) + +All elements are zero + +Matrix type: Rect (1, 17) + +All elements are zero + +Matrix type: Rect (1, 17) + +All elements are zero + +Matrix type: Rect (1, 17) + +All elements are zero + +Matrix type: Rect (1, 17) + +All elements are zero + +Matrix type: Rect (1, 17) + +All elements are zero + +Matrix type: Rect (1, 17) + +All elements are zero + +Matrix type: Rect (1, 18) + +All elements are zero + +Matrix type: Rect (1, 18) + +All elements are zero + +Matrix type: Rect (1, 18) + +All elements are zero + +Matrix type: Rect (1, 18) + +All elements are zero + +Matrix type: Rect (1, 18) + +All elements are zero + +Matrix type: Rect (1, 18) + +All elements are zero + +Matrix type: Rect (1, 18) + +All elements are zero + +Matrix type: Rect (1, 18) + +All elements are zero + +Matrix type: Rect (1, 99) + +All elements are zero + +Matrix type: Rect (1, 99) + +All elements are zero + +Matrix type: Rect (1, 99) + +All elements are zero + +Matrix type: Rect (1, 99) + +All elements are zero + +Matrix type: Rect (1, 99) + +All elements are zero + +Matrix type: Rect (1, 99) + +All elements are zero + +Matrix type: Rect (1, 99) + +All elements are zero + +Matrix type: Rect (1, 99) + +All elements are zero + +Matrix type: Rect (1, 100) + +All elements are zero + +Matrix type: Rect (1, 100) + +All elements are zero + +Matrix type: Rect (1, 100) + +All elements are zero + +Matrix type: Rect (1, 100) + +All elements are zero + +Matrix type: Rect (1, 100) + +All elements are zero + +Matrix type: Rect (1, 100) + +All elements are zero + +Matrix type: Rect (1, 100) + +All elements are zero + +Matrix type: Rect (1, 100) + +All elements are zero + +Matrix type: Rect (1, 101) + +All elements are zero + +Matrix type: Rect (1, 101) + +All elements are zero + +Matrix type: Rect (1, 101) + +All elements are zero + +Matrix type: Rect (1, 101) + +All elements are zero + +Matrix type: Rect (1, 101) + +All elements are zero + +Matrix type: Rect (1, 101) + +All elements are zero + +Matrix type: Rect (1, 101) + +All elements are zero + +Matrix type: Rect (1, 101) + +All elements are zero + + * Seventh test of Matrix package + * Matrix test program + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (11, 11) + +All elements are zero + +Matrix type: Rect (11, 11) + +All elements are zero + +Matrix type: Rect (1, 1) + +All elements are zero + +Matrix type: Rect (1, 121) + +All elements are zero + +Matrix type: Rect (11, 11) + +All elements are zero + +Matrix type: Rect (11, 11) + +All elements are zero + +Matrix type: Rect (11, 11) + +All elements are zero + +Matrix type: Rect (11, 11) + +All elements are zero + +Matrix type: Rect (11, 11) + +All elements are zero + +Matrix type: Rect (11, 11) + +All elements are zero + +Matrix type: Rect (11, 11) + +All elements are zero + +Matrix type: Rect (11, 11) + +All elements are zero + +Matrix type: Rect (11, 11) + +All elements are zero + +Matrix type: Rect (11, 11) + +All elements are zero + +Matrix type: Rect (10, 1) + +All elements are zero + + * Eighth test of Matrix package + * Matrix test program + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Diag (6, 6) + +All elements are zero + +Matrix type: Diag (6, 6) + +All elements are zero + +Matrix type: Diag (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: LT (4, 4) + +All elements are zero + +Matrix type: LT (4, 4) + +All elements are zero + +Matrix type: LT (4, 4) + +All elements are zero + +Matrix type: LT (4, 4) + +All elements are zero + +Matrix type: LT (4, 4) + +All elements are zero + +Matrix type: LT (4, 4) + +All elements are zero + +Matrix type: LT (4, 4) + +All elements are zero + +Matrix type: LT (4, 4) + +All elements are zero + +Matrix type: Rect (4, 4) + +All elements are zero + +Matrix type: LT (4, 4) + +All elements are zero + +Matrix type: LT (4, 4) + +All elements are zero + +Matrix type: LT (4, 4) + +All elements are zero + +Matrix type: LT (4, 4) + +All elements are zero + +Matrix type: UT (4, 4) + +All elements are zero + +Matrix type: Diag (12, 12) + +All elements are zero + +Matrix type: Rect (10, 6) + +All elements are zero + +Matrix type: Rect (5, 9) + +All elements are zero + +Matrix type: Diag (5, 5) + +All elements are zero + +Matrix type: Rect (5, 5) + +All elements are zero + +Matrix type: Rect (5, 5) + +All elements are zero + +Matrix type: Rect (5, 5) + +All elements are zero + +Matrix type: Rect (5, 5) + +All elements are zero + +Matrix type: Rect (5, 5) + +All elements are zero + +Matrix type: Rect (6, 0) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + + * Ninth test of Matrix package + * Matrix test program + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Rect (7, 3) + +All elements are zero + +Matrix type: Rect (7, 3) + +All elements are zero + +Matrix type: Rect (3, 7) + +All elements are zero + +Matrix type: Diag (7, 7) + +All elements are zero + +Matrix type: Diag (7, 7) + +All elements are zero + +Matrix type: Diag (7, 7) + +All elements are zero + +Matrix type: Rect (18, 1) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (22, 1) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (12, 1) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (4, 4) + +All elements are zero + +Matrix type: Rect (4, 4) + +All elements are zero + + * Tenth test of Matrix package + * Matrix test program + +Matrix type: Rect (8, 6) + +All elements are zero + +Matrix type: Rect (8, 6) + +All elements are zero + +Matrix type: Rect (8, 8) + +All elements are zero + +Matrix type: Rect (8, 8) + +All elements are zero + +Matrix type: Rect (8, 8) + +All elements are zero + +Matrix type: Rect (8, 8) + +All elements are zero + +Matrix type: Rect (8, 8) + +All elements are zero + +Matrix type: Rect (8, 8) + +All elements are zero + +Matrix type: Rect (4, 2) + +All elements are zero + +Matrix type: Rect (4, 2) + +All elements are zero + +Matrix type: Rect (4, 2) + +All elements are zero + +Matrix type: UT (4, 4) + +All elements are zero + +Matrix type: Rect (4, 2) + +All elements are zero + +Matrix type: Rect (4, 4) + +All elements are zero + +Matrix type: Rect (4, 4) + +All elements are zero + + * Eleventh test of Matrix package + * Matrix test program + +Matrix type: Rect (1, 10) + +All elements are zero + +Matrix type: Rect (1, 10) + +All elements are zero + +Matrix type: Rect (5, 5) + +All elements are zero + +Matrix type: Rect (5, 5) + +All elements are zero + +Matrix type: Rect (5, 5) + +All elements are zero + +Matrix type: Rect (5, 5) + +All elements are zero + +Matrix type: Rect (5, 5) + +All elements are zero + +Matrix type: Rect (5, 10) + +All elements are zero + +Matrix type: Rect (5, 5) + +All elements are zero + +Matrix type: Rect (5, 5) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (3, 4) + +All elements are zero + +Matrix type: Rect (6, 4) + +All elements are zero + +Matrix type: Rect (7, 6) + +All elements are zero + +Matrix type: Rect (3, 4) + +All elements are zero + +Matrix type: Rect (2, 3) + +All elements are zero + + * Twelfth test of Matrix package + * Matrix test program + +Matrix type: Rect (15, 1) + +All elements are zero + +Matrix type: Rect (1, 15) + +All elements are zero + +Matrix type: Rect (1, 15) + +All elements are zero + +Matrix type: Rect (1, 15) + +All elements are zero + +Matrix type: Rect (1, 15) + +All elements are zero + +Matrix type: Rect (1, 15) + +All elements are zero + +Matrix type: Rect (1, 15) + +All elements are zero + +Matrix type: Rect (15, 1) + +All elements are zero + +Matrix type: Rect (3, 5) + +All elements are zero + +Matrix type: Rect (15, 1) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Rect (7, 5) + +All elements are zero + +Matrix type: Rect (7, 5) + +All elements are zero + +Matrix type: Rect (7, 5) + +All elements are zero + +Matrix type: UT (20, 20) + +All elements are zero + +Matrix type: UT (5, 5) + +All elements are zero + +Matrix type: UT (20, 20) + +All elements are zero + +Matrix type: UT (5, 5) + +All elements are zero + +Matrix type: Rect (8, 5) + +All elements are zero + +Matrix type: UT (20, 20) + +All elements are zero + +Matrix type: LT (20, 20) + +All elements are zero + +Matrix type: LT (5, 5) + +All elements are zero + +Matrix type: LT (20, 20) + +All elements are zero + +Matrix type: LT (5, 5) + +All elements are zero + +Matrix type: Rect (5, 8) + +All elements are zero + +Matrix type: LT (20, 20) + +All elements are zero + +Matrix type: Rect (20, 30) + +All elements are zero + +Matrix type: Rect (0, 0) + +All elements are zero + +Matrix type: Rect (20, 30) + +All elements are zero + +Matrix type: Rect (0, 0) + +All elements are zero + +Matrix type: Rect (20, 30) + +All elements are zero + + * Thirteenth test of Matrix package + * Matrix test program + +Matrix type: Rect (5, 5) + +All elements are zero + +Matrix type: Rect (5, 5) + +All elements are zero + +Matrix type: Rect (5, 5) + +All elements are zero + +Matrix type: Rect (5, 5) + +All elements are zero + +Matrix type: Rect (20, 5) + +All elements are zero + +Matrix type: Rect (20, 3) + +All elements are zero + +Matrix type: Rect (5, 3) + +All elements are zero + +Matrix type: Rect (3, 5) + +All elements are zero + +Matrix type: Rect (5, 1) + +All elements are zero + +Matrix type: Rect (1, 7) + +All elements are zero + +Matrix type: Rect (5, 1) + +All elements are zero + +Matrix type: Rect (40, 1) + +All elements are zero + +Matrix type: Rect (40, 1) + +All elements are zero + +Matrix type: Rect (40, 1) + +All elements are zero + +Matrix type: Rect (40, 40) + +All elements are zero + +Matrix type: Rect (40, 1) + +All elements are zero + +Matrix type: Rect (40, 1) + +All elements are zero + +Matrix type: Rect (40, 1) + +All elements are zero + +Matrix type: Rect (40, 1) + +All elements are zero + +Matrix type: Rect (40, 40) + +All elements are zero + +Matrix type: Rect (40, 40) + +All elements are zero + +Matrix type: Rect (40, 40) + +All elements are zero + +Matrix type: Rect (40, 40) + +All elements are zero + +Matrix type: Rect (40, 40) + +All elements are zero + +Matrix type: Rect (40, 40) + +All elements are zero + +Matrix type: Rect (4, 4) + +All elements are zero + +Matrix type: Rect (4, 4) + +All elements are zero + +Matrix type: Rect (50, 50) + +All elements are zero + +Matrix type: Rect (4, 4) + +All elements are zero + + * Fourteenth test of Matrix package + * Matrix test program + +Matrix type: Diag (5, 5) + +All elements are zero + +Matrix type: Diag (5, 5) + +All elements are zero + +Matrix type: Diag (5, 5) + +All elements are zero + +Matrix type: Rect (8, 5) + +All elements are zero + +Matrix type: Diag (5, 5) + +All elements are zero + +Matrix type: Rect (5, 5) + +All elements are zero + +Matrix type: Diag (5, 5) + +All elements are zero + +Matrix type: Rect (5, 5) + +All elements are zero + +Matrix type: Rect (5, 5) + +All elements are zero + +Matrix type: Rect (8, 5) + +All elements are zero + +Matrix type: Diag (5, 5) + +All elements are zero + +Matrix type: Rect (8, 5) + +All elements are zero + +Matrix type: Diag (5, 5) + +All elements are zero + +Matrix type: Diag (5, 5) + +All elements are zero + +Matrix type: Rect (5, 5) + +All elements are zero + +Matrix type: Diag (5, 5) + +All elements are zero + +Matrix type: Diag (5, 5) + +All elements are zero + +Matrix type: Diag (5, 5) + +All elements are zero + +Matrix type: Diag (5, 5) + +All elements are zero + +Matrix type: Diag (5, 5) + +All elements are zero + +Matrix type: Diag (8, 8) + +All elements are zero + +Matrix type: Rect (8, 8) + +All elements are zero + +Matrix type: Diag (8, 8) + +All elements are zero + +Matrix type: Diag (5, 5) + +All elements are zero + +Matrix type: Rect (5, 5) + +All elements are zero + +Matrix type: Diag (5, 5) + +All elements are zero + +Matrix type: Diag (8, 8) + +All elements are zero + +Matrix type: Rect (8, 8) + +All elements are zero + +Matrix type: Diag (8, 8) + +All elements are zero + +Matrix type: Diag (5, 5) + +All elements are zero + +Matrix type: Diag (5, 5) + +All elements are zero + +Matrix type: Diag (8, 8) + +All elements are zero + +Matrix type: Diag (8, 8) + +All elements are zero + +Matrix type: Diag (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (21, 20) + +All elements are zero + +Matrix type: Diag (20, 20) + +All elements are zero + +Matrix type: Diag (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Diag (20, 20) + +All elements are zero + +Matrix type: Diag (21, 21) + +All elements are zero + +Matrix type: Rect (21, 21) + +All elements are zero + +Matrix type: Diag (21, 21) + +All elements are zero + +Matrix type: Diag (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Diag (20, 20) + +All elements are zero + +Matrix type: Diag (21, 21) + +All elements are zero + +Matrix type: Rect (21, 21) + +All elements are zero + +Matrix type: Diag (21, 21) + +All elements are zero + +Matrix type: Diag (20, 20) + +All elements are zero + +Matrix type: Diag (20, 20) + +All elements are zero + +Matrix type: Diag (21, 21) + +All elements are zero + +Matrix type: Diag (21, 21) + +All elements are zero + +Matrix type: Diag (30, 30) + +All elements are zero + +Matrix type: Rect (30, 30) + +All elements are zero + +Matrix type: Rect (30, 30) + +All elements are zero + +Matrix type: Rect (30, 30) + +All elements are zero + +Matrix type: Rect (3, 1) + +All elements are zero + +Matrix type: Diag (2, 2) + +All elements are zero + +Matrix type: Rect (2, 2) + +All elements are zero + +Matrix type: Rect (2, 2) + +All elements are zero + +Matrix type: Rect (2, 2) + +All elements are zero + +Matrix type: Diag (2, 2) + +All elements are zero + +Matrix type: Diag (2, 2) + +All elements are zero + +Matrix type: Rect (2, 2) + +All elements are zero + +Matrix type: Rect (2, 2) + +All elements are zero + +Matrix type: Rect (2, 2) + +All elements are zero + +Matrix type: Diag (2, 2) + +All elements are zero + +Matrix type: Diag (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (22, 20) + +All elements are zero + +Matrix type: Diag (10, 10) + +All elements are zero + +Matrix type: Diag (10, 10) + +All elements are zero + +Matrix type: Diag (10, 10) + +All elements are zero + +Matrix type: Diag (10, 10) + +All elements are zero + +Matrix type: Rect (6, 1) + +All elements are zero + +Matrix type: Sym (10, 10) + +All elements are zero + +Matrix type: Diag (9, 9) + +All elements are zero + +Matrix type: Diag (9, 9) + +All elements are zero + +Matrix type: Diag (9, 9) + +All elements are zero + +Matrix type: Rect (6, 1) + +All elements are zero + +Matrix type: Diag (8, 8) + +All elements are zero + +Matrix type: Rect (8, 8) + +All elements are zero + +Matrix type: Diag (8, 8) + +All elements are zero + +Matrix type: Rect (8, 8) + +All elements are zero + +Matrix type: Rect (8, 8) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (15, 15) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (15, 15) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (15, 15) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (15, 15) + +All elements are zero + +Matrix type: Diag (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + + * Fifteenth test of Matrix package + * Matrix test program + +Matrix type: Rect (12, 1) + +All elements are zero + +Matrix type: Rect (12, 1) + +All elements are zero + +Matrix type: Rect (2048, 1) + +All elements are zero + +Matrix type: Rect (2048, 1) + +All elements are zero + +Matrix type: Rect (2000, 1) + +All elements are zero + +Matrix type: Rect (2000, 1) + +All elements are zero + +Matrix type: Rect (2187, 1) + +All elements are zero + +Matrix type: Rect (2187, 1) + +All elements are zero + +Matrix type: Rect (2310, 1) + +All elements are zero + +Matrix type: Rect (2310, 1) + +All elements are zero + +Matrix type: Rect (2401, 1) + +All elements are zero + +Matrix type: Rect (2401, 1) + +All elements are zero + +Matrix type: Rect (2197, 1) + +All elements are zero + +Matrix type: Rect (2197, 1) + +All elements are zero + +Matrix type: Rect (2021, 1) + +All elements are zero + +Matrix type: Rect (2021, 1) + +All elements are zero + +Matrix type: Rect (768, 1) + +All elements are zero + +Matrix type: Rect (768, 1) + +All elements are zero + +Matrix type: Rect (1280, 1) + +All elements are zero + +Matrix type: Rect (1280, 1) + +All elements are zero + +Matrix type: Rect (1792, 1) + +All elements are zero + +Matrix type: Rect (1792, 1) + +All elements are zero + +Matrix type: Rect (320, 1) + +All elements are zero + +Matrix type: Rect (320, 1) + +All elements are zero + +Matrix type: Rect (2, 1) + +All elements are zero + +Matrix type: Rect (2, 1) + +All elements are zero + +Matrix type: Rect (2, 1) + +All elements are zero + +Matrix type: Rect (50, 1) + +All elements are zero + +Matrix type: Rect (50, 1) + +All elements are zero + +Matrix type: Rect (98, 1) + +All elements are zero + +Matrix type: Rect (12, 1) + +All elements are zero + +Matrix type: Rect (12, 1) + +All elements are zero + +Matrix type: Rect (22, 1) + +All elements are zero + +Matrix type: Rect (51, 1) + +All elements are zero + +Matrix type: Rect (51, 1) + +All elements are zero + +Matrix type: Rect (100, 1) + +All elements are zero + +Matrix type: Rect (1025, 1) + +All elements are zero + +Matrix type: Rect (1025, 1) + +All elements are zero + +Matrix type: Rect (2048, 1) + +All elements are zero + +Matrix type: Rect (1001, 1) + +All elements are zero + +Matrix type: Rect (1001, 1) + +All elements are zero + +Matrix type: Rect (2000, 1) + +All elements are zero + +Matrix type: Rect (1226, 1) + +All elements are zero + +Matrix type: Rect (1226, 1) + +All elements are zero + +Matrix type: Rect (2450, 1) + +All elements are zero + +Matrix type: Rect (1, 1) + +All elements are zero + +Matrix type: Rect (1, 1) + +All elements are zero + +Matrix type: Rect (13, 1) + +All elements are zero + +Matrix type: Rect (13, 1) + +All elements are zero + +Matrix type: Rect (12, 1) + +All elements are zero + +Matrix type: Rect (12, 1) + +All elements are zero + +Matrix type: Rect (9, 1) + +All elements are zero + +Matrix type: Rect (9, 1) + +All elements are zero + +Matrix type: Rect (16, 1) + +All elements are zero + +Matrix type: Rect (16, 1) + +All elements are zero + +Matrix type: Rect (30, 1) + +All elements are zero + +Matrix type: Rect (30, 1) + +All elements are zero + +Matrix type: Rect (42, 1) + +All elements are zero + +Matrix type: Rect (42, 1) + +All elements are zero + +Matrix type: Rect (24, 1) + +All elements are zero + +Matrix type: Rect (24, 1) + +All elements are zero + +Matrix type: Rect (8, 1) + +All elements are zero + +Matrix type: Rect (8, 1) + +All elements are zero + +Matrix type: Rect (40, 1) + +All elements are zero + +Matrix type: Rect (40, 1) + +All elements are zero + +Matrix type: Rect (48, 1) + +All elements are zero + +Matrix type: Rect (48, 1) + +All elements are zero + +Matrix type: Rect (4, 1) + +All elements are zero + +Matrix type: Rect (4, 1) + +All elements are zero + +Matrix type: Rect (3, 1) + +All elements are zero + +Matrix type: Rect (3, 1) + +All elements are zero + +Matrix type: Rect (5, 1) + +All elements are zero + +Matrix type: Rect (5, 1) + +All elements are zero + +Matrix type: Rect (32, 1) + +All elements are zero + +Matrix type: Rect (32, 1) + +All elements are zero + +Matrix type: Rect (2, 1) + +All elements are zero + +Matrix type: Rect (2, 1) + +All elements are zero + +Matrix type: Rect (2, 1) + +All elements are zero + +Matrix type: Rect (2, 1) + +All elements are zero + +Matrix type: Rect (26, 1) + +All elements are zero + +Matrix type: Rect (26, 1) + +All elements are zero + +Matrix type: Rect (32, 1) + +All elements are zero + +Matrix type: Rect (32, 1) + +All elements are zero + +Matrix type: Rect (18, 1) + +All elements are zero + +Matrix type: Rect (18, 1) + +All elements are zero + +Matrix type: Rect (2, 1) + +All elements are zero + +Matrix type: Rect (2, 1) + +All elements are zero + +Matrix type: Rect (2, 1) + +All elements are zero + +Matrix type: Rect (2, 1) + +All elements are zero + +Matrix type: Rect (202, 1) + +All elements are zero + +Matrix type: Rect (202, 1) + +All elements are zero + +Matrix type: Rect (202, 1) + +All elements are zero + +Matrix type: Rect (202, 1) + +All elements are zero + +Matrix type: Rect (1000, 1) + +All elements are zero + +Matrix type: Rect (1000, 1) + +All elements are zero + +Matrix type: Rect (1000, 1) + +All elements are zero + +Matrix type: Rect (1000, 1) + +All elements are zero + +Matrix type: Rect (3, 1) + +All elements are zero + +Matrix type: Rect (3, 1) + +All elements are zero + +Matrix type: Rect (3, 1) + +All elements are zero + +Matrix type: Rect (3, 1) + +All elements are zero + +Matrix type: Rect (275, 1) + +All elements are zero + +Matrix type: Rect (275, 1) + +All elements are zero + +Matrix type: Rect (275, 1) + +All elements are zero + +Matrix type: Rect (275, 1) + +All elements are zero + +Matrix type: Rect (1001, 1) + +All elements are zero + +Matrix type: Rect (1001, 1) + +All elements are zero + +Matrix type: Rect (1001, 1) + +All elements are zero + +Matrix type: Rect (1001, 1) + +All elements are zero + +Matrix type: Rect (3, 1) + +All elements are zero + +Matrix type: Rect (3, 1) + +All elements are zero + +Matrix type: Rect (27, 1) + +All elements are zero + +Matrix type: Rect (27, 1) + +All elements are zero + +Matrix type: Rect (33, 1) + +All elements are zero + +Matrix type: Rect (33, 1) + +All elements are zero + +Matrix type: Rect (19, 1) + +All elements are zero + +Matrix type: Rect (19, 1) + +All elements are zero + +Matrix type: Rect (12, 1) + +All elements are zero + +Matrix type: Rect (12, 1) + +All elements are zero + +Matrix type: Rect (2048, 1) + +All elements are zero + +Matrix type: Rect (2048, 1) + +All elements are zero + +Matrix type: Rect (2000, 1) + +All elements are zero + +Matrix type: Rect (2000, 1) + +All elements are zero + +Matrix type: Rect (2187, 1) + +All elements are zero + +Matrix type: Rect (2187, 1) + +All elements are zero + +Matrix type: Rect (2310, 1) + +All elements are zero + +Matrix type: Rect (2310, 1) + +All elements are zero + +Matrix type: Rect (2401, 1) + +All elements are zero + +Matrix type: Rect (2401, 1) + +All elements are zero + +Matrix type: Rect (2197, 1) + +All elements are zero + +Matrix type: Rect (2197, 1) + +All elements are zero + +Matrix type: Rect (2021, 1) + +All elements are zero + +Matrix type: Rect (2021, 1) + +All elements are zero + +Matrix type: Rect (768, 1) + +All elements are zero + +Matrix type: Rect (768, 1) + +All elements are zero + +Matrix type: Rect (1280, 1) + +All elements are zero + +Matrix type: Rect (1280, 1) + +All elements are zero + +Matrix type: Rect (1792, 1) + +All elements are zero + +Matrix type: Rect (1792, 1) + +All elements are zero + +Matrix type: Rect (320, 1) + +All elements are zero + +Matrix type: Rect (320, 1) + +All elements are zero + +Matrix type: Rect (2, 1) + +All elements are zero + +Matrix type: Rect (2, 1) + +All elements are zero + +Matrix type: Rect (2, 1) + +All elements are zero + +Matrix type: Rect (50, 1) + +All elements are zero + +Matrix type: Rect (50, 1) + +All elements are zero + +Matrix type: Rect (98, 1) + +All elements are zero + +Matrix type: Rect (12, 1) + +All elements are zero + +Matrix type: Rect (12, 1) + +All elements are zero + +Matrix type: Rect (22, 1) + +All elements are zero + +Matrix type: Rect (51, 1) + +All elements are zero + +Matrix type: Rect (51, 1) + +All elements are zero + +Matrix type: Rect (100, 1) + +All elements are zero + +Matrix type: Rect (1025, 1) + +All elements are zero + +Matrix type: Rect (1025, 1) + +All elements are zero + +Matrix type: Rect (2048, 1) + +All elements are zero + +Matrix type: Rect (1001, 1) + +All elements are zero + +Matrix type: Rect (1001, 1) + +All elements are zero + +Matrix type: Rect (2000, 1) + +All elements are zero + +Matrix type: Rect (1226, 1) + +All elements are zero + +Matrix type: Rect (1226, 1) + +All elements are zero + +Matrix type: Rect (2450, 1) + +All elements are zero + +Matrix type: Rect (1, 1) + +All elements are zero + +Matrix type: Rect (1, 1) + +All elements are zero + +Matrix type: Rect (13, 1) + +All elements are zero + +Matrix type: Rect (13, 1) + +All elements are zero + +Matrix type: Rect (12, 1) + +All elements are zero + +Matrix type: Rect (12, 1) + +All elements are zero + +Matrix type: Rect (9, 1) + +All elements are zero + +Matrix type: Rect (9, 1) + +All elements are zero + +Matrix type: Rect (16, 1) + +All elements are zero + +Matrix type: Rect (16, 1) + +All elements are zero + +Matrix type: Rect (30, 1) + +All elements are zero + +Matrix type: Rect (30, 1) + +All elements are zero + +Matrix type: Rect (42, 1) + +All elements are zero + +Matrix type: Rect (42, 1) + +All elements are zero + +Matrix type: Rect (24, 1) + +All elements are zero + +Matrix type: Rect (24, 1) + +All elements are zero + +Matrix type: Rect (8, 1) + +All elements are zero + +Matrix type: Rect (8, 1) + +All elements are zero + +Matrix type: Rect (40, 1) + +All elements are zero + +Matrix type: Rect (40, 1) + +All elements are zero + +Matrix type: Rect (48, 1) + +All elements are zero + +Matrix type: Rect (48, 1) + +All elements are zero + +Matrix type: Rect (4, 1) + +All elements are zero + +Matrix type: Rect (4, 1) + +All elements are zero + +Matrix type: Rect (3, 1) + +All elements are zero + +Matrix type: Rect (3, 1) + +All elements are zero + +Matrix type: Rect (5, 1) + +All elements are zero + +Matrix type: Rect (5, 1) + +All elements are zero + +Matrix type: Rect (32, 1) + +All elements are zero + +Matrix type: Rect (32, 1) + +All elements are zero + +Matrix type: Rect (2, 1) + +All elements are zero + +Matrix type: Rect (2, 1) + +All elements are zero + +Matrix type: Rect (2, 1) + +All elements are zero + +Matrix type: Rect (2, 1) + +All elements are zero + +Matrix type: Rect (26, 1) + +All elements are zero + +Matrix type: Rect (26, 1) + +All elements are zero + +Matrix type: Rect (32, 1) + +All elements are zero + +Matrix type: Rect (32, 1) + +All elements are zero + +Matrix type: Rect (18, 1) + +All elements are zero + +Matrix type: Rect (18, 1) + +All elements are zero + +Matrix type: Rect (2, 1) + +All elements are zero + +Matrix type: Rect (2, 1) + +All elements are zero + +Matrix type: Rect (2, 1) + +All elements are zero + +Matrix type: Rect (2, 1) + +All elements are zero + +Matrix type: Rect (202, 1) + +All elements are zero + +Matrix type: Rect (202, 1) + +All elements are zero + +Matrix type: Rect (202, 1) + +All elements are zero + +Matrix type: Rect (202, 1) + +All elements are zero + +Matrix type: Rect (1000, 1) + +All elements are zero + +Matrix type: Rect (1000, 1) + +All elements are zero + +Matrix type: Rect (1000, 1) + +All elements are zero + +Matrix type: Rect (1000, 1) + +All elements are zero + +Matrix type: Rect (3, 1) + +All elements are zero + +Matrix type: Rect (3, 1) + +All elements are zero + +Matrix type: Rect (3, 1) + +All elements are zero + +Matrix type: Rect (3, 1) + +All elements are zero + +Matrix type: Rect (275, 1) + +All elements are zero + +Matrix type: Rect (275, 1) + +All elements are zero + +Matrix type: Rect (275, 1) + +All elements are zero + +Matrix type: Rect (275, 1) + +All elements are zero + +Matrix type: Rect (1001, 1) + +All elements are zero + +Matrix type: Rect (1001, 1) + +All elements are zero + +Matrix type: Rect (1001, 1) + +All elements are zero + +Matrix type: Rect (1001, 1) + +All elements are zero + +Matrix type: Rect (3, 1) + +All elements are zero + +Matrix type: Rect (3, 1) + +All elements are zero + +Matrix type: Rect (27, 1) + +All elements are zero + +Matrix type: Rect (27, 1) + +All elements are zero + +Matrix type: Rect (33, 1) + +All elements are zero + +Matrix type: Rect (33, 1) + +All elements are zero + +Matrix type: Rect (19, 1) + +All elements are zero + +Matrix type: Rect (19, 1) + +All elements are zero + + * Sixteenth test of Matrix package + * Matrix test program + +Matrix type: Rect (1, 7) + +All elements are zero + +Matrix type: Rect (1, 6) + +All elements are zero + +Matrix type: Rect (1, 6) + +All elements are zero + +Matrix type: Rect (1, 8) + +All elements are zero + +Matrix type: Rect (1, 3) + +All elements are zero + +Matrix type: Rect (1, 4) + +All elements are zero + +Matrix type: Rect (1, 4) + +All elements are zero + +Matrix type: Rect (1, 4) + +All elements are zero + +Matrix type: Rect (1, 3) + +All elements are zero + +Matrix type: Rect (1, 5) + +All elements are zero + +Matrix type: Rect (6, 1) + +All elements are zero + + * Seventeenth test of Matrix package + * Matrix test program + +Matrix type: Rect (8, 8) + +All elements are zero + +Matrix type: Rect (8, 8) + +All elements are zero + +Matrix type: Rect (8, 8) + +All elements are zero + +Matrix type: Rect (8, 8) + +All elements are zero + +Matrix type: Rect (8, 8) + +All elements are zero + +Matrix type: Rect (8, 8) + +All elements are zero + +Matrix type: Rect (1, 1) + +All elements are zero + +Matrix type: Rect (8, 8) + +All elements are zero + +Matrix type: Rect (8, 8) + +All elements are zero + +Matrix type: Rect (6, 1) + +All elements are zero + +Matrix type: Rect (1, 7) + +All elements are zero + +Matrix type: Rect (80, 1) + +All elements are zero + +Matrix type: Rect (80, 1) + +All elements are zero + +Matrix type: Rect (1, 1) + +All elements are zero + +Matrix type: Rect (80, 1) + +All elements are zero + +Matrix type: Rect (80, 1) + +All elements are zero + +Matrix type: Rect (1, 4) + +All elements are zero + +Matrix type: Rect (8, 8) + +All elements are zero + +Matrix type: Rect (8, 8) + +All elements are zero + +Matrix type: Rect (8, 8) + +All elements are zero + +Matrix type: Rect (8, 1) + +All elements are zero + +Matrix type: Rect (7, 1) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (7, 2) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (7, 2) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (7, 2) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (7, 2) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (7, 2) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (7, 2) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (7, 2) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (7, 2) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (7, 2) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (7, 2) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (7, 2) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (7, 2) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (7, 2) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (7, 2) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Rect (7, 2) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Rect (7, 2) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Rect (7, 2) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Rect (7, 2) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (9, 2) + +All elements are zero + +Matrix type: Rect (1, 1) + +All elements are zero + +Matrix type: Rect (20, 30) + +All elements are zero + +Matrix type: UT (25, 25) + +All elements are zero + +Matrix type: LT (25, 25) + +All elements are zero + +Matrix type: Diag (25, 25) + +All elements are zero + +Matrix type: Sym (25, 25) + +All elements are zero + +Matrix type: Diag (25, 25) + +All elements are zero + +Matrix type: Rect (10, 1) + +All elements are zero + +Matrix type: Rect (1, 10) + +All elements are zero + +Matrix type: Rect (5, 5) + +All elements are zero + +Matrix type: Diag (4, 4) + +All elements are zero + +Matrix type: Rect (4, 4) + +All elements are zero + +Matrix type: Rect (1, 2) + +All elements are zero + + * Eighteenth test of Matrix package + * Matrix test program + +Matrix type: Rect (23, 1) + +All elements are zero + +Matrix type: Rect (10, 20) + +All elements are zero + + * Nineteenth test of Matrix package + * Matrix test program + +Matrix type: Rect (13, 7) + +All elements are zero + +Matrix type: Rect (13, 7) + +All elements are zero + +Matrix type: Rect (13, 7) + +All elements are zero + +Matrix type: Rect (13, 7) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Diag (7, 7) + +All elements are zero + +Matrix type: Diag (7, 7) + +All elements are zero + +Matrix type: Diag (7, 7) + +All elements are zero + +Matrix type: Diag (7, 7) + +All elements are zero + +Matrix type: LT (7, 7) + +All elements are zero + +Matrix type: LT (7, 7) + +All elements are zero + +Matrix type: LT (7, 7) + +All elements are zero + +Matrix type: LT (7, 7) + +All elements are zero + +Matrix type: UT (25, 25) + +All elements are zero + +Matrix type: Rect (25, 25) + +All elements are zero + +Matrix type: Rect (25, 25) + +All elements are zero + +Matrix type: Rect (25, 25) + +All elements are zero + +Matrix type: Rect (25, 25) + +All elements are zero + +Matrix type: Rect (25, 25) + +All elements are zero + +Matrix type: Rect (25, 25) + +All elements are zero + +Matrix type: Rect (25, 25) + +All elements are zero + +Matrix type: Rect (25, 25) + +All elements are zero + +Matrix type: Rect (25, 25) + +All elements are zero + +Matrix type: Rect (25, 25) + +All elements are zero + +Matrix type: Rect (19, 19) + +All elements are zero + +Matrix type: Rect (19, 19) + +All elements are zero + +Matrix type: Rect (19, 19) + +All elements are zero + +Matrix type: Rect (19, 19) + +All elements are zero + +Matrix type: Rect (19, 19) + +All elements are zero + +Matrix type: Rect (19, 19) + +All elements are zero + +Matrix type: Rect (19, 19) + +All elements are zero + +Matrix type: Rect (19, 19) + +All elements are zero + +Matrix type: Rect (2, 1) + +All elements are zero + +Matrix type: Rect (19, 19) + +All elements are zero + +Matrix type: Rect (19, 19) + +All elements are zero + +Matrix type: Rect (19, 19) + +All elements are zero + +Matrix type: Rect (19, 19) + +All elements are zero + +Matrix type: Rect (19, 19) + +All elements are zero + +Matrix type: Rect (19, 19) + +All elements are zero + +Matrix type: Rect (19, 19) + +All elements are zero + +Matrix type: Rect (19, 19) + +All elements are zero + +Matrix type: Rect (2, 1) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + + * Twentieth test of Matrix package + * Matrix test program +C subscripts not enabled, not tested + + + * Twenty first test of Matrix package + * Matrix test program + +Matrix type: Rect (1, 28) + +All elements are zero + + * Twenty second test of Matrix package + * Matrix test program + +Matrix type: Rect (8, 9) + +All elements are zero + +Matrix type: Diag (150, 150) + +All elements are zero + +Matrix type: UT (12, 12) + +All elements are zero + +Matrix type: Rect (12, 12) + +All elements are zero + +Matrix type: UT (12, 12) + +All elements are zero + +Matrix type: LT (12, 12) + +All elements are zero + +Matrix type: Rect (12, 12) + +All elements are zero + +Matrix type: UT (12, 12) + +All elements are zero + +Matrix type: LT (12, 12) + +All elements are zero + +Matrix type: Rect (24, 24) + +All elements are zero + +Matrix type: Rect (24, 24) + +All elements are zero + +Matrix type: Rect (24, 24) + +All elements are zero + +Matrix type: Rect (1, 4) + +All elements are zero + +Matrix type: UT (24, 24) + +All elements are zero + +Matrix type: LT (24, 24) + +All elements are zero + +Matrix type: Rect (12, 12) + +All elements are zero + +Matrix type: Rect (12, 12) + +All elements are zero + +Matrix type: Rect (12, 12) + +All elements are zero + +Matrix type: Rect (12, 12) + +All elements are zero + +Matrix type: Rect (12, 12) + +All elements are zero + +Matrix type: Rect (3, 3) + +All elements are zero + +Matrix type: Rect (1, 15) + +All elements are zero + +Matrix type: Rect (15, 1) + +All elements are zero + +Matrix type: Rect (15, 15) + +All elements are zero + +End of tests + +(The following memory checks are probably not valid with all +compilers - see documentation) + +Checking for lost memory: 8797116 8797116 - ok + +Checking for lost memory: 8797116 8797116 - ok + +Number of matrices tested = 1215 +Number of non-zero matrices (should be 1) = 1 diff --git a/.svn/pristine/1f/1f0f3764fc269eaae44e1929506122e71791fb3f.svn-base b/.svn/pristine/1f/1f0f3764fc269eaae44e1929506122e71791fb3f.svn-base new file mode 100644 index 0000000..4b9ed98 --- /dev/null +++ b/.svn/pristine/1f/1f0f3764fc269eaae44e1929506122e71791fb3f.svn-base @@ -0,0 +1,96 @@ +/** + * @file registration.h + * @brife register two scans. + * This class register two scans with respect to the matched features. + * It determines the transformation matrix. + * @author HamidReza Houshiar. Jacobs University Bremen gGmbH, Germany. + * @date Date: 2012/05/30 1:00 + */ + +#ifndef REGISTRATION_H_ +#define REGISTRATION_H_ + +#include "fbr_global.h" +#include "slam6d/icp6Dquat.h" + +using namespace std; + +namespace fbr{ + /** + * @class registration : registers two scnas + * @param minDistance threshold for min distance between the each three points for registration process + * @param minError threshold for min error after transformation of a point from second coordinate to first to determin the inliers + * @param minInlier threshold fir min inlier to consider the align as positive + * @param rMethod registration Method + * @param bAlign best alignment + * @param bError error of registration with bAlign + * @param bErrorIndex error index of registration with bAlign + */ + class registration{ + unsigned int minDistance; + double minError; + unsigned int minInlier; + registration_method rMethod; + double bestAlign[16]; + double bestError; + unsigned int bestErrorIndex; + + /** + * getCoord : get 3D coordinate of query scan and train scan for each match + * @param fKeypoints vector of KeyPoints from query (first) scan + * @param sKeypoints vector of KeyPoints from train (second) scan + * @param matches vector holding found matches + * @param fPMap Mat containing the 3D coordinate of each match from query scan + * @param sPMap Mat containing the 3D coordinate of each match from train scan + * @param idx index of the match + * @param cq Point3f for returning the 3D coordinate of query scan + * @param ct Point3f for returning the 3D coordinate of train scan + * @return 1 on success 0 on failure + */ + int getCoord( vector fKeypoints, vector sKeypoints, vector matches, cv::Mat fPMap, cv::Mat sPMap, int idx, cv::Point3f& cq, cv::Point3f& ct); + /** + * pointToArray : convert 3D point3f to double array + * @param c 3D point whith Point3f type + * @param cd returning 3d point as double array + */ + void pointToArray(cv::Point3f c, double* cd); + /** + * coordTransform : transform a point with the align + * @param p input train 3D point + * @param align input transformation matrix + * @return Point3f trasformed 3D point + */ + cv::Point3f coordTransform(cv::Point3f p, double* align); + /** + * findAlign : find the best align + * @param fPMap input Mat wich contains the 3D coordinates of each pixel of first panorama image + * @param fKeypoints vector containing the features of first panorama image + * @param sPMap input Mat wich contains the 3D coordinates of each pixel of second panorama image + * @param sKeypoints vector containing the features of second panorama image + * @param matches vector containing the matched features of both images + */ + int findAlign(unsigned int i, unsigned int j, unsigned int k, cv::Mat fPMap, vector fKeypoints, cv::Mat sPMap, vector sKeypoints, vector matches); + + public: + registration(); + registration(unsigned int minD, double minE, unsigned int minI, registration_method method); + /** + * findRegistration : find the transformation matrix between two scans + * @param fPMap first panorama map which is 3D points coresponding to fist panorama image + * @param fKeypoints keypoints from the first scan + * @param sPMap second panorama map which is 3D points coresponding to second panorama image + * @param sKeypoints keypoints from the second scan + * @param matches matched keypoints from first to second scan + */ + void findRegistration(cv::Mat fPMap, vector fKeypoints, cv::Mat sPMap, vector sKeypoints, vector matches); + unsigned int getMinDistance(); + double getMinError(); + unsigned int getMinInlier(); + registration_method getRegistrationMethod(); + double * getBestAlign(); + double getBestError(); + unsigned int getBestErrorIndex(); + void getDescription(); + }; +} +#endif /* REGISTRATION_H_ */ diff --git a/.svn/pristine/1f/1f328d21b769fc9e378bd272060ac831c2fc3d19.svn-base b/.svn/pristine/1f/1f328d21b769fc9e378bd272060ac831c2fc3d19.svn-base new file mode 100644 index 0000000..228ef87 --- /dev/null +++ b/.svn/pristine/1f/1f328d21b769fc9e378bd272060ac831c2fc3d19.svn-base @@ -0,0 +1,73 @@ +/** + * @file + * @brief allocator object that gets chunks of memory and then hands parts of them to a user + * @author Jan Elsberg. Automation Group, Jacobs University Bremen gGmbH, Germany. + * @author Thomas Escher + */ +#ifndef ALLOCATOR_H +#define ALLOCATOR_H + +#include + +class Allocator { +public: + virtual ~Allocator() {} + + template + T* allocate(unsigned int nr = 1) { return reinterpret_cast(allocate(nr*sizeof(T))); } + + virtual void printSize() const = 0; + +protected: + virtual unsigned char* allocate(unsigned int size) = 0; +}; + + + +class ChunkAllocator : public Allocator { +public: + ChunkAllocator(unsigned int _csize = (1 << 20)); + ~ChunkAllocator(); + void printSize() const; +protected: + unsigned char* allocate(unsigned int size); +private: + std::vector mem; + const unsigned int chunksize; + unsigned int index; + unsigned long int memsize; + unsigned long int wastedspace; +}; + + + +class PackedChunkAllocator : public Allocator { +public: + PackedChunkAllocator(unsigned int _csize = (1<<20)); + ~PackedChunkAllocator(); + void printSize() const; +protected: + unsigned char* allocate(unsigned int size); +private: + std::vector mem; + std::vector index; + const unsigned int chunksize; + unsigned long int memsize; +}; + + + +class SequentialAllocator : public Allocator { +public: + //! Handle a preallocated memory up to \a max_size. + SequentialAllocator(unsigned char* base_ptr, unsigned int max_size); + ~SequentialAllocator(); + void printSize() const; +protected: + unsigned char* allocate(unsigned int size); +private: + unsigned char* m_base_ptr; + unsigned int m_size, m_index; +}; + +#endif diff --git a/.svn/pristine/1f/1f86c92d761f35552d5275b33b99a0dec4ea25c4.svn-base b/.svn/pristine/1f/1f86c92d761f35552d5275b33b99a0dec4ea25c4.svn-base new file mode 100644 index 0000000..f0761d3 --- /dev/null +++ b/.svn/pristine/1f/1f86c92d761f35552d5275b33b99a0dec4ea25c4.svn-base @@ -0,0 +1,154 @@ +/** + * @file + * @brief Implementation of reading 3D scans + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "slam6d/scan_io_stl.h" +#include "slam6d/globals.icc" +#include +using std::ifstream; +#include +using std::cout; +using std::cerr; +using std::endl; + +#ifdef _MSC_VER +#include +#endif + +#include +typedef float real32_t; + +/** + * Reads specified scans from given directory. + * + * Scan poses will NOT be initialized after a call + * to this function. + * + * This function actually implements loading of 3D scans + * in UOS file format and will be compiled as shared lib. + * + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param dir The directory from which to read + * @param maxDist Reads only Points up to this Distance + * @param mindist Reads only Points from this Distance + * @param euler Initital pose estimates (will not be applied to the points + * @param ptss Vector containing the read points + */ +int ScanIO_stl::readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss) +{ + static int fileCounter = start; + string scanFileName; + string poseFileName; + + ifstream scan_in, pose_in; + + double maxDist2 = sqr(maxDist); + double minDist2 = sqr(mindist); + + int my_fileNr = fileCounter; + + if (end > -1 && fileCounter > end) return -1; // 'nuf read + scanFileName = dir + "scan" + to_string(fileCounter,3) + ".stl"; + poseFileName = dir + "scan" + to_string(fileCounter,3) + ".pose"; + + scan_in.open(scanFileName.c_str(), std::ios::binary); + pose_in.open(poseFileName.c_str()); + + // read 3D scan + if (!pose_in.good() && !scan_in.good()) return -1; // no more files in the directory + if (!scan_in.good()) return -1; // no more files in the directory + if (!pose_in.good()) { cerr << "ERROR: Missing file " << poseFileName << endl; exit(1); } + if (!scan_in.good()) { cerr << "ERROR: Missing file " << scanFileName << endl; exit(1); } + cout << "Processing Scan " << scanFileName; + + for (unsigned int i = 0; i < 6; pose_in >> euler[i++]); + + cout << " @ pose (" << euler[0] << "," << euler[1] << "," << euler[2] + << "," << euler[3] << "," << euler[4] << "," << euler[5] << ")" << endl; + + // convert angles from deg to rad + for (unsigned int i = 3; i <= 5; i++) euler[i] = rad(euler[i]); + + + // read the STL data: + uint8_t header[80]; + uint32_t number; + + scan_in.read((char*)header, sizeof(header)); + scan_in.read((char*)&number, sizeof(number)); + + real32_t normal[3]; + real32_t v1[3], v2[3], v3[3]; + uint16_t attrib; + + for (unsigned int i=0; i < number; i++) { + Point p; + scan_in.read((char*)normal, sizeof(normal)); + scan_in.read((char*)v1, sizeof(v1)); + scan_in.read((char*)v2, sizeof(v2)); + scan_in.read((char*)v3, sizeof(v3)); + scan_in.read((char*)&attrib, sizeof(attrib)); + + // forget the other vertices + p.x = v1[0]; + p.y = v1[1]; + p.z = v1[2]; + + // load points up to a certain distance only + // maxDist2 = -1 indicates no limitation + if (maxDist == -1 || sqr(p.x) + sqr(p.y) + sqr(p.z) < maxDist2) + if (mindist == -1 || sqr(p.x) + sqr(p.y) + sqr(p.z) > minDist2) + ptss.push_back(p); + } + cout << "Read " << ptss.size() << " points." << endl; + + scan_in.close(); + scan_in.clear(); + pose_in.close(); + pose_in.clear(); + fileCounter++; + + return my_fileNr; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_stl; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/.svn/pristine/20/2017d08ddb5aa91b575262bd1fdb50bd6af92e17.svn-base b/.svn/pristine/20/2017d08ddb5aa91b575262bd1fdb50bd6af92e17.svn-base new file mode 100644 index 0000000..36e9662 --- /dev/null +++ b/.svn/pristine/20/2017d08ddb5aa91b575262bd1fdb50bd6af92e17.svn-base @@ -0,0 +1,345 @@ +//$$ example.cpp Example of use of matrix package + +#define WANT_STREAM // include.h will get stream fns +#define WANT_MATH // include.h will get math fns + // newmatap.h will get include.h + +#include "newmatap.h" // need matrix applications + +#include "newmatio.h" // need matrix output routines + +#ifdef use_namespace +using namespace NEWMAT; // access NEWMAT namespace +#endif + + +// demonstration of matrix package on linear regression problem + + +void test1(Real* y, Real* x1, Real* x2, int nobs, int npred) +{ + cout << "\n\nTest 1 - traditional, bad\n"; + + // traditional sum of squares and products method of calculation + // but not adjusting means; maybe subject to round-off error + + // make matrix of predictor values with 1s into col 1 of matrix + int npred1 = npred+1; // number of cols including col of ones. + Matrix X(nobs,npred1); + X.Column(1) = 1.0; + + // load x1 and x2 into X + // [use << rather than = when loading arrays] + X.Column(2) << x1; X.Column(3) << x2; + + // vector of Y values + ColumnVector Y(nobs); Y << y; + + // form sum of squares and product matrix + // [use << rather than = for copying Matrix into SymmetricMatrix] + SymmetricMatrix SSQ; SSQ << X.t() * X; + + // calculate estimate + // [bracket last two terms to force this multiplication first] + // [ .i() means inverse, but inverse is not explicity calculated] + ColumnVector A = SSQ.i() * (X.t() * Y); + + // Get variances of estimates from diagonal elements of inverse of SSQ + // get inverse of SSQ - we need it for finding D + DiagonalMatrix D; D << SSQ.i(); + ColumnVector V = D.AsColumn(); + + // Calculate fitted values and residuals + ColumnVector Fitted = X * A; + ColumnVector Residual = Y - Fitted; + Real ResVar = Residual.SumSquare() / (nobs-npred1); + + // Get diagonals of Hat matrix (an expensive way of doing this) + DiagonalMatrix Hat; Hat << X * (X.t() * X).i() * X.t(); + + // print out answers + cout << "\nEstimates and their standard errors\n\n"; + + // make vector of standard errors + ColumnVector SE(npred1); + for (int i=1; i<=npred1; i++) SE(i) = sqrt(V(i)*ResVar); + // use concatenation function to form matrix and use matrix print + // to get two columns + cout << setw(11) << setprecision(5) << (A | SE) << endl; + + cout << "\nObservations, fitted value, residual value, hat value\n"; + + // use concatenation again; select only columns 2 to 3 of X + cout << setw(9) << setprecision(3) << + (X.Columns(2,3) | Y | Fitted | Residual | Hat.AsColumn()); + cout << "\n\n"; +} + +void test2(Real* y, Real* x1, Real* x2, int nobs, int npred) +{ + cout << "\n\nTest 2 - traditional, OK\n"; + + // traditional sum of squares and products method of calculation + // with subtraction of means - less subject to round-off error + // than test1 + + // make matrix of predictor values + Matrix X(nobs,npred); + + // load x1 and x2 into X + // [use << rather than = when loading arrays] + X.Column(1) << x1; X.Column(2) << x2; + + // vector of Y values + ColumnVector Y(nobs); Y << y; + + // make vector of 1s + ColumnVector Ones(nobs); Ones = 1.0; + + // calculate means (averages) of x1 and x2 [ .t() takes transpose] + RowVector M = Ones.t() * X / nobs; + + // and subtract means from x1 and x1 + Matrix XC(nobs,npred); + XC = X - Ones * M; + + // do the same to Y [use Sum to get sum of elements] + ColumnVector YC(nobs); + Real m = Sum(Y) / nobs; YC = Y - Ones * m; + + // form sum of squares and product matrix + // [use << rather than = for copying Matrix into SymmetricMatrix] + SymmetricMatrix SSQ; SSQ << XC.t() * XC; + + // calculate estimate + // [bracket last two terms to force this multiplication first] + // [ .i() means inverse, but inverse is not explicity calculated] + ColumnVector A = SSQ.i() * (XC.t() * YC); + + // calculate estimate of constant term + // [AsScalar converts 1x1 matrix to Real] + Real a = m - (M * A).AsScalar(); + + // Get variances of estimates from diagonal elements of inverse of SSQ + // [ we are taking inverse of SSQ - we need it for finding D ] + Matrix ISSQ = SSQ.i(); DiagonalMatrix D; D << ISSQ; + ColumnVector V = D.AsColumn(); + Real v = 1.0/nobs + (M * ISSQ * M.t()).AsScalar(); + // for calc variance of const + + // Calculate fitted values and residuals + int npred1 = npred+1; + ColumnVector Fitted = X * A + a; + ColumnVector Residual = Y - Fitted; + Real ResVar = Residual.SumSquare() / (nobs-npred1); + + // Get diagonals of Hat matrix (an expensive way of doing this) + Matrix X1(nobs,npred1); X1.Column(1)< + * @date 16 Feb 2012 + * + */ + +#ifndef RAOTATION3D_H_ +#define RAOTATION3D_H_ + +//============================================================================== +// Defines +//============================================================================== + +//============================================================================== +// Includes +//============================================================================== + +namespace model { + +/** + * A rotation in space. + */ +class Rotation3d { +public: + double x; + double y; + double z; + + inline Rotation3d(const double& x = 0.0, const double& y = 0.0, const double& z = 0.0) { + this->x = x; + this->y = y; + this->z = z; + } + + Rotation3d(const Rotation3d& other); + + Rotation3d& operator=(const Rotation3d& other); + + /** + * Returns a rotation that represents the inverse of the current one. + */ + Rotation3d getInverse(); +}; + +} /* namespace model */ + +#endif /* RAOTATION3D_H_ */ diff --git a/.svn/pristine/20/20b987632b3c18d13e0cd5346c6fdcbe0ae74d13.svn-base b/.svn/pristine/20/20b987632b3c18d13e0cd5346c6fdcbe0ae74d13.svn-base new file mode 100644 index 0000000..0bebbfa --- /dev/null +++ b/.svn/pristine/20/20b987632b3c18d13e0cd5346c6fdcbe0ae74d13.svn-base @@ -0,0 +1,63 @@ +This file describes the scanserver functionality, the code changes and its behaviour. + +To run with the scanserver functionality, pass -S or --scanserver to the slam6D/show call. Start the scanserver with bin/scanserver & first. If you want to directly jump to usage examples, see the "USAGE" section below. + +The scanserver is a new method to load and manage scans for 'slam6D', 'show' and some few other tools (so far). It removes all the IO code from the clients and handles it in the server process. This separation offers persistence of scan data and avoids unneccessary reloads of full scans or even reduced versions thereof. By using a caching framework it also transparently handles the available memory given and enables (nearly) endless amounts of data. The client is only required to open the interface, load a directory and start working on those scans without having to alter its workflow (e.g., pre-reduce them) to accomodate huge data volumes. + +If you have questions or problems (or both), contact Thomas Escher . + + + +USAGE: + +1. General + +Start the scanserver once (in another terminal, or in the same one as a background process): + bin/scanserver & + +Do all the normal work as you would normally do, adding the parameter -S: + bin/slam6D dat -S + bin/show dat -S + +2. Changing the available memory size + +Changing the cache memory size used by scan data (about half the system memory usually works): + + bin/scanserver -c 3500 (for 8GB RAM) + +If you intend to not reload the full scans for different reduction parameters or don't have too much memory/disk space, disable binary scan caching. Binary scan caching saves the full scans as long as the range or height parameters aren't touched, which would cause a full reload: + + bin/scanserver -b 0 + +If your dataset contains many scans and loops (e.g., 'hannover' with 468 scans), the default data memory (150M) won't be enough to hold all the animation frames and you need to increase it: + + bin/scanserver -d 250 + +3. Altering the shared memory on your linux system (bus_error) + +If you receive a bus_error, the size of your shared memory is too small and the requested allocation was too big. This is resolved via remounting your shm device. Default is half of the available RAM. This limit can be increased to nearly 90% of the RAM if required. + + sudo mount -o remount,size=7000M /dev/shm (for 8GB RAM) + +4. Locking the memory to avoid swapping (Linux only) + +If a great portion of the RAM is used for the cache data, swapping will usually occur after 50% of usage. To avoid this, the scanserver tries to lock the whole memory in place. This will fail without superuser rights, as well as on a full shared memory (see 3.) even with rights. Add these two additional lines to '/etc/security/limits.conf': + + * soft memlock unlimited + * hard memlock unlimited + +5. Using the octtree serialization feature in show with scanserver + +The octtree serialization behaves slightly different than before. Since the scanserver caches octtrees between calls of 'show', the loading of octtrees only becomes relevant if no octtrees are in the cache and have to be created from the scan itself. If this has been done once before and the octtrees have been saved via --saveOct before this can be used to speed up the octtree loading with --loadOct. + + bin/show dat --loadOct --saveOct + +If octtrees are not cached, they are deserialized if available, created otherwise and then saved for future calls. + +IMPLEMENTATION STATUS: + +Currently only 'slam6D' and 'show' are working with the scanserver. + +Since the scanserver handles the disk IO now and the filtering has been optimized, not all ScanIOs are updated yet. Just copy and paste and change the minor parts about reading the input lines. + +Working: 'ls src/scanio' in a shell diff --git a/.svn/pristine/21/21e6e3dfb5d6c03c1461997751ad016df7b8235a.svn-base b/.svn/pristine/21/21e6e3dfb5d6c03c1461997751ad016df7b8235a.svn-base new file mode 100644 index 0000000..3a31884 --- /dev/null +++ b/.svn/pristine/21/21e6e3dfb5d6c03c1461997751ad016df7b8235a.svn-base @@ -0,0 +1,105 @@ +/* +This is a Optical-Character-Recognition program +Copyright (C) 2000-2006 Joerg Schulenburg + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + see README for EMAIL-address + +*/ + +#ifndef PGM2ASC_H +#define PGM2ASC_H 1 + +#include "pnm.h" +#include "output.h" +#include "list.h" +#include "unicode.h" + +#define pixel_at(pic, xx, yy) (pic).p[(xx)+((yy)*((pic).x))] +#define pixel_atp(pic, xx, yy) (pic)->p[(xx)+((yy)*((pic)->x))] + +#ifndef HAVE_WCHAR_H +wchar_t *wcschr (const wchar_t *wcs, wchar_t wc); +wchar_t *wcscpy (wchar_t *dest, const wchar_t *src); +size_t wcslen (const wchar_t *s); +#endif +#ifndef HAVE_WCSDUP +wchar_t * wcsdup (const wchar_t *WS); /* its a gnu extension */ +#endif + +/* declared in pgm2asc.c */ +/* set alternate chars and its weight, called from the engine + if a char is recognized to (weight) percent */ +int setas(struct box *b, char *as, int weight); /* string + xml */ +int setac(struct box *b, wchar_t ac, int weight); /* wchar */ + +/* for qsort() call */ +int intcompare (const void *vr, const void *vs); + +/* declared in box.c */ +int box_gt(struct box *box1, struct box *box2); +int reset_box_ac(struct box *box); /* reset and free char table */ +struct box *malloc_box( struct box *inibox ); /* alloc memory for a box */ +int free_box( struct box *box ); /* free memory of a box */ +int copybox( pix *p, int x0, int y0, int dx, int dy, pix *b, int len); +int reduce_vectors ( struct box *box1, int mode ); +int merge_boxes( struct box *box1, struct box *box2 ); +int cut_box( struct box *box1); + + +/* declared in database.c */ +int load_db(void); +wchar_t ocr_db(struct box *box1); + +/* declared in detect.c */ +int detect_lines1(pix * p, int x0, int y0, int dx, int dy); +int detect_lines2(pix *p,int x0,int y0,int dx,int dy,int r); +int detect_rotation_angle(job_t *job); +int detect_text_lines(pix * pp, int mo); +int adjust_text_lines(pix * pp, int mo); +int detect_pictures(job_t *job); + +/* declared in lines.c */ +void store_boxtree_lines( int mo ); + /* free memory for internal stored textlines. + * Needs to be called _after_ having retrieved the text. + * After freeing, no call to getTextLine is possible any + * more + */ +void free_textlines( void ); + + /* get result of ocr for a given line number. + * If the line is out of range, the function returns 0, + * otherwise a pointer to a complete line. + */ +const char *getTextLine( int ); + +/* declared in remove.c */ +int remove_dust( job_t *job ); +int remove_pictures( job_t *job); +int remove_melted_serifs( pix *pp ); +int remove_rest_of_dust(); +int smooth_borders( job_t *job ); + +/* declared in pixel.c */ +int marked(pix * p, int x, int y); +int pixel(pix *p, int x, int y); +void put(pix * p, int x, int y, int ia, int io); + +/* start ocr on a image in job.src.p */ +int pgm2asc(job_t *job); + +#endif diff --git a/.svn/pristine/22/22216def3f805d39599edcd8087a942f9b76e3ac.svn-base b/.svn/pristine/22/22216def3f805d39599edcd8087a942f9b76e3ac.svn-base new file mode 100644 index 0000000..d0039bd --- /dev/null +++ b/.svn/pristine/22/22216def3f805d39599edcd8087a942f9b76e3ac.svn-base @@ -0,0 +1,50 @@ +/** + * @file + * @brief Representation of the cache for cached k-d tree search. + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __KD_CACHE_H__ +#define __KD_CACHE_H__ + +#include "searchCache.h" +#include "kdparams.h" + +// just a prototype +class KDtree_cache; +class Scan; + +/** + * @brief cache item + * + * The return value of the cached k-d tree + * is a bundle of the closest point and + * a pointer to the leaf. + **/ +class KDCacheItem : public SearchTreeCacheItem { +public: + KDCacheItem() { node = 0; }; + KDParams param; + KDtree_cache *node; +}; + +/** + * @brief cache + * + * The cache consists of an array of KDCacheItems + * and two Scan numbers. + **/ +class KDCache { +public: +// KDCache() { SourceScanNr = TargetScanNr = 0; item = 0; }; + KDCache() { target = 0; item = 0; }; + KDCacheItem *item; // array of items +// unsigned int SourceScanNr; +// unsigned int TargetScanNr; + Scan const * target; +}; + +#endif + + diff --git a/.svn/pristine/22/22ff86df4de124190ef21b6493afdc8b82af0e4f.svn-base b/.svn/pristine/22/22ff86df4de124190ef21b6493afdc8b82af0e4f.svn-base new file mode 100644 index 0000000..4d74204 --- /dev/null +++ b/.svn/pristine/22/22ff86df4de124190ef21b6493afdc8b82af0e4f.svn-base @@ -0,0 +1,2118 @@ +#include +#include +#include +#include + +#include "csparse.h" + +cs *cs_add ( const cs *A, const cs *B, double alpha, double beta ) +/* + Purpose: + + CS_ADD computes C = alpha*A + beta*B for sparse A and B. + + Reference: + + Timothy Davis, + Direct Methods for Sparse Linear Systems, + SIAM, Philadelphia, 2006. +*/ +{ + int p, j, nz = 0, anz, *Cp, *Ci, *Bp, m, n, bnz, *w, values ; + double *x, *Bx, *Cx ; + cs *C ; + if (!A || !B) return (NULL) ; /* check inputs */ + m = A->m ; anz = A->p [A->n] ; + n = B->n ; Bp = B->p ; Bx = B->x ; bnz = Bp [n] ; + w = (int*)cs_calloc (m, sizeof (int)) ; + values = (A->x != NULL) && (Bx != NULL) ; + x = values ? (double*)cs_malloc (m, sizeof (double)) : NULL ; + C = cs_spalloc (m, n, anz + bnz, values, 0) ; + if (!C || !w || (values && !x)) return (cs_done (C, w, x, 0)) ; + Cp = C->p ; Ci = C->i ; Cx = C->x ; + for (j = 0 ; j < n ; j++) + { + Cp [j] = nz ; /* column j of C starts here */ + nz = cs_scatter (A, j, alpha, w, x, j+1, C, nz) ; /* alpha*A(:,j)*/ + nz = cs_scatter (B, j, beta, w, x, j+1, C, nz) ; /* beta*B(:,j) */ + if (values) for (p = Cp [j] ; p < nz ; p++) Cx [p] = x [Ci [p]] ; + } + Cp [n] = nz ; /* finalize the last column of C */ + cs_sprealloc (C, 0) ; /* remove extra space from C */ + return (cs_done (C, w, x, 1)) ; /* success; free workspace, return C */ +} +static int cs_wclear (int mark, int lemax, int *w, int n) +/* + Purpose: + + CS_WCLEAR clears W. + + Reference: + + Timothy Davis, + Direct Methods for Sparse Linear Systems, + SIAM, Philadelphia, 2006. +*/ +{ + int k ; + if (mark < 2 || (mark + lemax < 0)) + { + for (k = 0 ; k < n ; k++) if (w [k] != 0) w [k] = 1 ; + mark = 2 ; + } + return (mark) ; /* at this point, w [0..n-1] < mark holds */ +} + +/* keep off-diagonal entries; drop diagonal entries */ +static int cs_diag (int i, int j, double aij, void *other) +{ + return (i != j); +} + +/* p = amd(A+A') if symmetric is true, or amd(A'A) otherwise */ +int *cs_amd ( const cs *A, int order ) +/* + Purpose: + + CS_AMD carries out the approximate minimum degree algorithm. + + Reference: + + Timothy Davis, + Direct Methods for Sparse Linear Systems, + SIAM, Philadelphia, 2006. + + Parameters: + + Input, int ORDER: + -1:natural, + 0:Cholesky, + 1:LU, + 2:QR +*/ +{ + cs *C, *A2, *AT ; + int *Cp, *Ci, *last, *ww, *len, *nv, *next, *P, *head, *elen, *degree, *w, + *hhead, *ATp, *ATi, d, dk, dext, lemax = 0, e, elenk, eln, i, j, k, k1, + k2, k3, jlast, ln, dense, nzmax, mindeg = 0, nvi, nvj, nvk, mark, wnvi, + ok, cnz, nel = 0, p, p1, p2, p3, p4, pj, pk, pk1, pk2, pn, q, n, m ; + unsigned int h ; + /* --- Construct matrix C ----------------------------------------------- */ + if (!A || order < 0) return (NULL) ; /* check inputs; quick return */ + AT = cs_transpose (A, 0) ; /* compute A' */ + if (!AT) return (NULL) ; + m = A->m ; n = A->n ; + dense = (int)CS_MAX (16, 10 * sqrt ((double) n)) ; /* find dense threshold */ + dense = CS_MIN (n-2, dense) ; + if (order == 0 && n == m) + { + C = cs_add (A, AT, 0, 0) ; /* C = A+A' */ + } + else if (order == 1) + { + ATp = AT->p ; /* drop dense columns from AT */ + ATi = AT->i ; + for (p2 = 0, j = 0 ; j < m ; j++) + { + p = ATp [j] ; /* column j of AT starts here */ + ATp [j] = p2 ; /* new column j starts here */ + if (ATp [j+1] - p > dense) continue ; /* skip dense col j */ + for ( ; p < ATp [j+1] ; p++) ATi [p2++] = ATi [p] ; + } + ATp [m] = p2 ; /* finalize AT */ + A2 = cs_transpose (AT, 0) ; /* A2 = AT' */ + C = A2 ? cs_multiply (AT, A2) : NULL ; /* C=A'*A with no dense rows */ + cs_spfree (A2) ; + } + else + { + C = cs_multiply (AT, A) ; /* C=A'*A */ + } + cs_spfree (AT) ; + if (!C) return (NULL) ; + P = (int*)cs_malloc (n+1, sizeof (int)) ; /* allocate result */ + ww = (int*)cs_malloc (8*(n+1), sizeof (int)) ;/* get workspace */ + len = ww ; nv = ww + (n+1) ; next = ww + 2*(n+1) ; + head = ww + 3*(n+1) ; elen = ww + 4*(n+1) ; degree = ww + 5*(n+1) ; + w = ww + 6*(n+1) ; hhead = ww + 7*(n+1) ; + last = P ; /* use P as workspace for last */ + cs_fkeep (C, &cs_diag, NULL) ; /* drop diagonal entries */ + Cp = C->p ; + cnz = Cp [n] ; + if (!cs_sprealloc (C, cnz+cnz/5+2*n)) return (cs_idone (P, C, ww, 0)) ; + /* --- Initialize quotient graph ---------------------------------------- */ + for (k = 0 ; k < n ; k++) len [k] = Cp [k+1] - Cp [k] ; + len [n] = 0 ; + nzmax = C->nzmax ; + Ci = C->i ; + for (i = 0 ; i <= n ; i++) + { + head [i] = -1 ; /* degree list i is empty */ + last [i] = -1 ; + next [i] = -1 ; + hhead [i] = -1 ; /* hash list i is empty */ + nv [i] = 1 ; /* node i is just one node */ + w [i] = 1 ; /* node i is alive */ + elen [i] = 0 ; /* Ek of node i is empty */ + degree [i] = len [i] ; /* degree of node i */ + } + mark = cs_wclear (0, 0, w, n) ; /* clear w */ + elen [n] = -2 ; /* n is a dead element */ + Cp [n] = -1 ; /* n is a root of assembly tree */ + w [n] = 0 ; /* n is a dead element */ + /* --- Initialize degree lists ------------------------------------------ */ + for (i = 0 ; i < n ; i++) + { + d = degree [i] ; + if (d == 0) /* node i is empty */ + { + elen [i] = -2 ; /* element i is dead */ + nel++ ; + Cp [i] = -1 ; /* i is a root of assemby tree */ + w [i] = 0 ; + } + else if (d > dense) /* node i is dense */ + { + nv [i] = 0 ; /* absorb i into element n */ + elen [i] = -1 ; /* node i is dead */ + nel++ ; + Cp [i] = CS_FLIP (n) ; + nv [n]++ ; + } + else + { + if (head [d] != -1) last [head [d]] = i ; + next [i] = head [d] ; /* put node i in degree list d */ + head [d] = i ; + } + } + while (nel < n) /* while (selecting pivots) do */ + { + /* --- Select node of minimum approximate degree -------------------- */ + for (k = -1 ; mindeg < n && (k = head [mindeg]) == -1 ; mindeg++) ; + if (next [k] != -1) last [next [k]] = -1 ; + head [mindeg] = next [k] ; /* remove k from degree list */ + elenk = elen [k] ; /* elenk = |Ek| */ + nvk = nv [k] ; /* # of nodes k represents */ + nel += nvk ; /* nv[k] nodes of A eliminated */ + /* --- Garbage collection ------------------------------------------- */ + if (elenk > 0 && cnz + mindeg >= nzmax) + { + for (j = 0 ; j < n ; j++) + { + if ((p = Cp [j]) >= 0) /* j is a live node or element */ + { + Cp [j] = Ci [p] ; /* save first entry of object */ + Ci [p] = CS_FLIP (j) ; /* first entry is now CS_FLIP(j) */ + } + } + for (q = 0, p = 0 ; p < cnz ; ) /* scan all of memory */ + { + if ((j = CS_FLIP (Ci [p++])) >= 0) /* found object j */ + { + Ci [q] = Cp [j] ; /* restore first entry of object */ + Cp [j] = q++ ; /* new pointer to object j */ + for (k3 = 0 ; k3 < len [j]-1 ; k3++) Ci [q++] = Ci [p++] ; + } + } + cnz = q ; /* Ci [cnz...nzmax-1] now free */ + } + /* --- Construct new element ---------------------------------------- */ + dk = 0 ; + nv [k] = -nvk ; /* flag k as in Lk */ + p = Cp [k] ; + pk1 = (elenk == 0) ? p : cnz ; /* do in place if elen[k] == 0 */ + pk2 = pk1 ; + for (k1 = 1 ; k1 <= elenk + 1 ; k1++) + { + if (k1 > elenk) + { + e = k ; /* search the nodes in k */ + pj = p ; /* list of nodes starts at Ci[pj]*/ + ln = len [k] - elenk ; /* length of list of nodes in k */ + } + else + { + e = Ci [p++] ; /* search the nodes in e */ + pj = Cp [e] ; + ln = len [e] ; /* length of list of nodes in e */ + } + for (k2 = 1 ; k2 <= ln ; k2++) + { + i = Ci [pj++] ; + if ((nvi = nv [i]) <= 0) continue ; /* node i dead, or seen */ + dk += nvi ; /* degree[Lk] += size of node i */ + nv [i] = -nvi ; /* negate nv[i] to denote i in Lk*/ + Ci [pk2++] = i ; /* place i in Lk */ + if (next [i] != -1) last [next [i]] = last [i] ; + if (last [i] != -1) /* remove i from degree list */ + { + next [last [i]] = next [i] ; + } + else + { + head [degree [i]] = next [i] ; + } + } + if (e != k) + { + Cp [e] = CS_FLIP (k) ; /* absorb e into k */ + w [e] = 0 ; /* e is now a dead element */ + } + } + if (elenk != 0) cnz = pk2 ; /* Ci [cnz...nzmax] is free */ + degree [k] = dk ; /* external degree of k - |Lk\i| */ + Cp [k] = pk1 ; /* element k is in Ci[pk1..pk2-1] */ + len [k] = pk2 - pk1 ; + elen [k] = -2 ; /* k is now an element */ + /* --- Find set differences ----------------------------------------- */ + mark = cs_wclear (mark, lemax, w, n) ; /* clear w if necessary */ + for (pk = pk1 ; pk < pk2 ; pk++) /* scan 1: find |Le\Lk| */ + { + i = Ci [pk] ; + if ((eln = elen [i]) <= 0) continue ;/* skip if elen[i] empty */ + nvi = -nv [i] ; /* nv [i] was negated */ + wnvi = mark - nvi ; + for (p = Cp [i] ; p <= Cp [i] + eln - 1 ; p++) /* scan Ei */ + { + e = Ci [p] ; + if (w [e] >= mark) + { + w [e] -= nvi ; /* decrement |Le\Lk| */ + } + else if (w [e] != 0) /* ensure e is a live element */ + { + w [e] = degree [e] + wnvi ; /* 1st time e seen in scan 1 */ + } + } + } + /* --- Degree update ------------------------------------------------ */ + for (pk = pk1 ; pk < pk2 ; pk++) /* scan2: degree update */ + { + i = Ci [pk] ; /* consider node i in Lk */ + p1 = Cp [i] ; + p2 = p1 + elen [i] - 1 ; + pn = p1 ; + for (h = 0, d = 0, p = p1 ; p <= p2 ; p++) /* scan Ei */ + { + e = Ci [p] ; + if (w [e] != 0) /* e is an unabsorbed element */ + { + dext = w [e] - mark ; /* dext = |Le\Lk| */ + if (dext > 0) + { + d += dext ; /* sum up the set differences */ + Ci [pn++] = e ; /* keep e in Ei */ + h += e ; /* compute the hash of node i */ + } + else + { + Cp [e] = CS_FLIP (k) ; /* aggressive absorb. e->k */ + w [e] = 0 ; /* e is a dead element */ + } + } + } + elen [i] = pn - p1 + 1 ; /* elen[i] = |Ei| */ + p3 = pn ; + p4 = p1 + len [i] ; + for (p = p2 + 1 ; p < p4 ; p++) /* prune edges in Ai */ + { + j = Ci [p] ; + if ((nvj = nv [j]) <= 0) continue ; /* node j dead or in Lk */ + d += nvj ; /* degree(i) += |j| */ + Ci [pn++] = j ; /* place j in node list of i */ + h += j ; /* compute hash for node i */ + } + if (d == 0) /* check for mass elimination */ + { + Cp [i] = CS_FLIP (k) ; /* absorb i into k */ + nvi = -nv [i] ; + dk -= nvi ; /* |Lk| -= |i| */ + nvk += nvi ; /* |k| += nv[i] */ + nel += nvi ; + nv [i] = 0 ; + elen [i] = -1 ; /* node i is dead */ + } + else + { + degree [i] = CS_MIN (degree [i], d) ; /* update degree(i) */ + Ci [pn] = Ci [p3] ; /* move first node to end */ + Ci [p3] = Ci [p1] ; /* move 1st el. to end of Ei */ + Ci [p1] = k ; /* add k as 1st element in of Ei */ + len [i] = pn - p1 + 1 ; /* new len of adj. list of node i */ + h %= n ; /* finalize hash of i */ + next [i] = hhead [h] ; /* place i in hash bucket */ + hhead [h] = i ; + last [i] = h ; /* save hash of i in last[i] */ + } + } /* scan2 is done */ + degree [k] = dk ; /* finalize |Lk| */ + lemax = CS_MAX (lemax, dk) ; + mark = cs_wclear (mark+lemax, lemax, w, n) ; /* clear w */ + /* --- Supernode detection ------------------------------------------ */ + for (pk = pk1 ; pk < pk2 ; pk++) + { + i = Ci [pk] ; + if (nv [i] >= 0) continue ; /* skip if i is dead */ + h = last [i] ; /* scan hash bucket of node i */ + i = hhead [h] ; + hhead [h] = -1 ; /* hash bucket will be empty */ + for ( ; i != -1 && next [i] != -1 ; i = next [i], mark++) + { + ln = len [i] ; + eln = elen [i] ; + for (p = Cp[i]+1 ; p <= Cp[i]+ln-1 ; p++) w [Ci [p]] = mark ; + jlast = i ; + for (j = next [i] ; j != -1 ; ) /* compare i with all j */ + { + ok = (len [j] == ln) && (elen [j] == eln) ; + for (p = Cp [j] + 1 ; ok && p <= Cp [j] + ln - 1 ; p++) + { + if (w [Ci [p]] != mark) ok = 0 ; /* compare i and j*/ + } + if (ok) /* i and j are identical */ + { + Cp [j] = CS_FLIP (i) ; /* absorb j into i */ + nv [i] += nv [j] ; + nv [j] = 0 ; + elen [j] = -1 ; /* node j is dead */ + j = next [j] ; /* delete j from hash bucket */ + next [jlast] = j ; + } + else + { + jlast = j ; /* j and i are different */ + j = next [j] ; + } + } + } + } + /* --- Finalize new element------------------------------------------ */ + for (p = pk1, pk = pk1 ; pk < pk2 ; pk++) /* finalize Lk */ + { + i = Ci [pk] ; + if ((nvi = -nv [i]) <= 0) continue ;/* skip if i is dead */ + nv [i] = nvi ; /* restore nv[i] */ + d = degree [i] + dk - nvi ; /* compute external degree(i) */ + d = CS_MIN (d, n - nel - nvi) ; + if (head [d] != -1) last [head [d]] = i ; + next [i] = head [d] ; /* put i back in degree list */ + last [i] = -1 ; + head [d] = i ; + mindeg = CS_MIN (mindeg, d) ; /* find new minimum degree */ + degree [i] = d ; + Ci [p++] = i ; /* place i in Lk */ + } + nv [k] = nvk ; /* # nodes absorbed into k */ + if ((len [k] = p-pk1) == 0) /* length of adj list of element k*/ + { + Cp [k] = -1 ; /* k is a root of the tree */ + w [k] = 0 ; /* k is now a dead element */ + } + if (elenk != 0) cnz = p ; /* free unused space in Lk */ + } + /* --- Postordering ----------------------------------------------------- */ + for (i = 0 ; i < n ; i++) Cp [i] = CS_FLIP (Cp [i]) ;/* fix assembly tree */ + for (j = 0 ; j <= n ; j++) head [j] = -1 ; + for (j = n ; j >= 0 ; j--) /* place unordered nodes in lists */ + { + if (nv [j] > 0) continue ; /* skip if j is an element */ + next [j] = head [Cp [j]] ; /* place j in list of its parent */ + head [Cp [j]] = j ; + } + for (e = n ; e >= 0 ; e--) /* place elements in lists */ + { + if (nv [e] <= 0) continue ; /* skip unless e is an element */ + if (Cp [e] != -1) + { + next [e] = head [Cp [e]] ; /* place e in list of its parent */ + head [Cp [e]] = e ; + } + } + for (k = 0, i = 0 ; i <= n ; i++) /* postorder the assembly tree */ + { + if (Cp [i] == -1) k = cs_tdfs (i, k, head, next, P, w) ; + } + return (cs_idone (P, C, ww, 1)) ; +} + +/* compute nonzero pattern of L(k,:) */ +static +int cs_ereach (const cs *A, int k, const int *parent, int *s, int *w, + double *x, int top) +{ + int i, p, len, *Ap = A->p, *Ai = A->i ; + double *Ax = A->x ; + for (p = Ap [k] ; p < Ap [k+1] ; p++) /* get pattern of L(k,:) */ + { + i = Ai [p] ; /* A(i,k) is nonzero */ + if (i > k) continue ; /* only use upper triangular part of A */ + x [i] = Ax [p] ; /* x(i) = A(i,k) */ + for (len = 0 ; w [i] != k ; i = parent [i]) /* traverse up etree */ + { + s [len++] = i ; /* L(k,i) is nonzero */ + w [i] = k ; /* mark i as visited */ + } + while (len > 0) s [--top] = s [--len] ; /* push path onto stack */ + } + return (top) ; /* s [top..n-1] contains pattern of L(k,:)*/ +} + +/* L = chol (A, [Pinv parent cp]), Pinv is optional */ +csn *cs_chol (const cs *A, const css *S) +{ + double d, lki, *Lx, *x ; + int top, i, p, k, n, *Li, *Lp, *cp, *Pinv, *w, *s, *c, *parent ; + cs *L, *C, *E ; + csn *N ; + if (!A || !S || !S->cp || !S->parent) return (NULL) ; /* check inputs */ + n = A->n ; + N = (csn*)cs_calloc (1, sizeof (csn)) ; + w = (int*)cs_malloc (3*n, sizeof (int)) ; s = w + n, c = w + 2*n ; + x = (double*)cs_malloc (n, sizeof (double)) ; + cp = S->cp ; Pinv = S->Pinv ; parent = S->parent ; + C = Pinv ? cs_symperm (A, Pinv, 1) : ((cs *) A) ; + E = Pinv ? C : NULL ; + if (!N || !w || !x || !C) return (cs_ndone (N, E, w, x, 0)) ; + N->L = L = cs_spalloc (n, n, cp [n], 1, 0) ; + if (!L) return (cs_ndone (N, E, w, x, 0)) ; + Lp = L->p ; Li = L->i ; Lx = L->x ; + for (k = 0 ; k < n ; k++) + { + /* --- Nonzero pattern of L(k,:) ------------------------------------ */ + Lp [k] = c [k] = cp [k] ; /* column k of L starts here */ + x [k] = 0 ; /* x (0:k) is now zero */ + w [k] = k ; /* mark node k as visited */ + top = cs_ereach (C, k, parent, s, w, x, n) ; /* find row k of L*/ + d = x [k] ; /* d = C(k,k) */ + x [k] = 0 ; /* clear workspace for k+1st iteration */ + /* --- Triangular solve --------------------------------------------- */ + for ( ; top < n ; top++) /* solve L(0:k-1,0:k-1) * x = C(:,k) */ + { + i = s [top] ; /* s [top..n-1] is pattern of L(k,:) */ + lki = x [i] / Lx [Lp [i]] ; /* L(k,i) = x (i) / L(i,i) */ + x [i] = 0 ; /* clear workspace for k+1st iteration */ + for (p = Lp [i] + 1 ; p < c [i] ; p++) + { + x [Li [p]] -= Lx [p] * lki ; + } + d -= lki * lki ; /* d = d - L(k,i)*L(k,i) */ + p = c [i]++ ; + Li [p] = k ; /* store L(k,i) in column i */ + Lx [p] = lki ; + } + /* --- Compute L(k,k) ----------------------------------------------- */ + if (d <= 0) return (cs_ndone (N, E, w, x, 0)) ; /* not pos def */ + p = c [k]++ ; + Li [p] = k ; /* store L(k,k) = sqrt (d) in column k */ + Lx [p] = sqrt (d) ; + } + Lp [n] = cp [n] ; /* finalize L */ + return (cs_ndone (N, E, w, x, 1)) ; /* success: free E,w,x; return N */ +} + + +/* x=A\b where A is symmetric positive definite; b overwritten with solution */ +int cs_cholsol (const cs *A, double *b, int order) +{ + double *x ; + css *S ; + csn *N ; + int n, ok ; + if (!A || !b) return (0) ; /* check inputs */ + n = A->n ; + S = cs_schol (A, order) ; /* ordering and symbolic analysis */ + N = cs_chol (A, S) ; /* numeric Cholesky factorization */ + x = (double*)cs_malloc (n, sizeof (double)) ; + ok = (S && N && x) ; + if (ok) + { + cs_ipvec (n, S->Pinv, b, x) ; /* x = P*b */ + cs_lsolve (N->L, x) ; /* x = L\x */ + cs_ltsolve (N->L, x) ; /* x = L'\x */ + cs_pvec (n, S->Pinv, x, b) ; /* b = P'*x */ + } + cs_free (x) ; + cs_sfree (S) ; + cs_nfree (N) ; + return (ok) ; +} + +/* process edge (j,i) of the matrix */ +static void cs_cedge (int j, int i, const int *first, int *maxfirst, int *delta, + int *prevleaf, int *ancestor) +{ + int q, s, sparent, jprev ; + if (i <= j || first [j] <= maxfirst [i]) return ; + maxfirst [i] = first [j] ; /* update max first[j] seen so far */ + jprev = prevleaf [i] ; /* j is a leaf of the ith subtree */ + delta [j]++ ; /* A(i,j) is in the skeleton matrix */ + if (jprev != -1) + { + /* q = least common ancestor of jprev and j */ + for (q = jprev ; q != ancestor [q] ; q = ancestor [q]) ; + for (s = jprev ; s != q ; s = sparent) + { + sparent = ancestor [s] ; /* path compression */ + ancestor [s] = q ; + } + delta [q]-- ; /* decrement to account for overlap in q */ + } + prevleaf [i] = j ; /* j is now previous leaf of ith subtree */ +} + +/* colcount = column counts of LL'=A or LL'=A'A, given parent & post ordering */ +int *cs_counts (const cs *A, const int *parent, const int *post, int ata) +{ + int i, j, k, p, n, m, ii, s, *ATp, *ATi, *maxfirst, *prevleaf, *ancestor, + *head = NULL, *next = NULL, *colcount, *w, *first, *delta ; + cs *AT ; + if (!A || !parent || !post) return (NULL) ; /* check inputs */ + m = A->m ; n = A->n ; + s = 4*n + (ata ? (n+m+1) : 0) ; + w = (int*)cs_malloc (s, sizeof (int)) ; first = w+3*n ; /* get workspace */ + ancestor = w ; maxfirst = w+n ; prevleaf = w+2*n ; + delta = colcount = (int*)cs_malloc (n, sizeof (int)) ; /* allocate result */ + AT = cs_transpose (A, 0) ; + if (!AT || !colcount || !w) return (cs_idone (colcount, AT, w, 1)) ; + for (k = 0 ; k < s ; k++) w [k] = -1 ; /* clear workspace w [0..s-1] */ + for (k = 0 ; k < n ; k++) /* find first [j] */ + { + j = post [k] ; + delta [j] = (first [j] == -1) ? 1 : 0 ; /* delta[j]=1 if j is a leaf */ + for ( ; j != -1 && first [j] == -1 ; j = parent [j]) first [j] = k ; + } + ATp = AT->p ; ATi = AT->i ; + if (ata) + { + head = w+4*n ; next = w+5*n+1 ; + for (k = 0 ; k < n ; k++) w [post [k]] = k ; /* invert post */ + for (i = 0 ; i < m ; i++) + { + k = n ; /* k = least postordered column in row i */ + for (p = ATp [i] ; p < ATp [i+1] ; p++) k = CS_MIN (k, w [ATi [p]]); + next [i] = head [k] ; /* place row i in link list k */ + head [k] = i ; + } + } + for (i = 0 ; i < n ; i++) ancestor [i] = i ; /* each node in its own set */ + for (k = 0 ; k < n ; k++) + { + j = post [k] ; /* j is the kth node in postordered etree */ + if (parent [j] != -1) delta [parent [j]]-- ; /* j is not a root */ + if (ata) + { + for (ii = head [k] ; ii != -1 ; ii = next [ii]) + { + for (p = ATp [ii] ; p < ATp [ii+1] ; p++) + cs_cedge (j, ATi [p], first, maxfirst, delta, prevleaf, + ancestor) ; + } + } + else + { + for (p = ATp [j] ; p < ATp [j+1] ; p++) + cs_cedge (j, ATi [p], first, maxfirst, delta, prevleaf, + ancestor) ; + } + if (parent [j] != -1) ancestor [j] = parent [j] ; + } + for (j = 0 ; j < n ; j++) /* sum up delta's of each child */ + { + if (parent [j] != -1) colcount [parent [j]] += colcount [j] ; + } + return (cs_idone (colcount, AT, w, 1)) ; /* success: free workspace */ +} + +/* p [0..n] = cumulative sum of c [0..n-1], and then copy p [0..n-1] into c */ +int cs_cumsum (int *p, int *c, int n) +{ + int i, nz = 0 ; + if (!p || !c) return (-1) ; /* check inputs */ + for (i = 0 ; i < n ; i++) + { + p [i] = nz ; + nz += c [i] ; + c [i] = p [i] ; + } + p [n] = nz ; + return (nz) ; /* return sum (c [0..n-1]) */ +} + +/* depth-first-search of the graph of a matrix, starting at node j */ +int cs_dfs (int j, cs *L, int top, int *xi, int *pstack, const int *Pinv) +{ + int i, p, p2, done, jnew, head = 0, *Lp, *Li ; + if (!L || !xi || !pstack) return (-1) ; + Lp = L->p ; Li = L->i ; + xi [0] = j ; /* initialize the recursion stack */ + while (head >= 0) + { + j = xi [head] ; /* get j from the top of the recursion stack */ + jnew = Pinv ? (Pinv [j]) : j ; + if (!CS_MARKED(Lp,j)) + { + CS_MARK (Lp,j) ; /* mark node j as visited */ + pstack [head] = (jnew < 0) ? 0 : CS_UNFLIP (Lp [jnew]) ; + } + done = 1 ; /* node j done if no unvisited neighbors */ + p2 = (jnew < 0) ? 0 : CS_UNFLIP (Lp [jnew+1]) ; + for (p = pstack [head] ; p < p2 ; p++) /* examine all neighbors of j */ + { + i = Li [p] ; /* consider neighbor node i */ + if (CS_MARKED (Lp,i)) continue ; /* skip visited node i */ + pstack [head] = p ; /* pause depth-first search of node j */ + xi [++head] = i ; /* start dfs at node i */ + done = 0 ; /* node j is not done */ + break ; /* break, to start dfs (i) */ + } + if (done) /* depth-first search at node j is done */ + { + head-- ; /* remove j from the recursion stack */ + xi [--top] = j ; /* and place in the output stack */ + } + } + return (top) ; +} + +/* breadth-first search for coarse decomposition (C0,C1,R1 or R0,R3,C3) */ +static int cs_bfs (const cs *A, int n, int *wi, int *wj, int *queue, + const int *imatch, const int *jmatch, int mark) +{ + int *Ap, *Ai, head = 0, tail = 0, j, i, p, j2 ; + cs *C ; + for (j = 0 ; j < n ; j++) /* place all unmatched nodes in queue */ + { + if (imatch [j] >= 0) continue ; /* skip j if matched */ + wj [j] = 0 ; /* j in set C0 (R0 if transpose) */ + queue [tail++] = j ; /* place unmatched col j in queue */ + } + if (tail == 0) return (1) ; /* quick return if no unmatched nodes */ + C = (mark == 1) ? ((cs *) A) : cs_transpose (A, 0) ; + if (!C) return (0) ; /* bfs of C=A' to find R0,R3,C3 */ + Ap = C->p ; Ai = C->i ; + while (head < tail) /* while queue is not empty */ + { + j = queue [head++] ; /* get the head of the queue */ + for (p = Ap [j] ; p < Ap [j+1] ; p++) + { + i = Ai [p] ; + if (wi [i] >= 0) continue ; /* skip if i is marked */ + wi [i] = mark ; /* i in set R1 (C3 if transpose) */ + j2 = jmatch [i] ; /* traverse alternating path to j2 */ + if (wj [j2] >= 0) continue ;/* skip j2 if it is marked */ + wj [j2] = mark ; /* j2 in set C1 (R3 if transpose) */ + queue [tail++] = j2 ; /* add j2 to queue */ + } + } + if (mark != 1) cs_spfree (C) ; /* free A' if it was created */ + return (1) ; +} + +/* collect matched rows and columns into P and Q */ +static void cs_matched (int m, const int *wi, const int *jmatch, int *P, int *Q, + int *cc, int *rr, int set, int mark) +{ + int kc = cc [set], i ; + int kr = rr [set-1] ; + for (i = 0 ; i < m ; i++) + { + if (wi [i] != mark) continue ; /* skip if i is not in R set */ + P [kr++] = i ; + Q [kc++] = jmatch [i] ; + } + cc [set+1] = kc ; + rr [set] = kr ; +} + + +static void cs_unmatched (int m, const int *wi, int *P, int *rr, int set) +/* + Purpose: + + CS_UNMATCHED collects unmatched rows into the permutation vector P. +*/ +{ + int i, kr = rr [set] ; + for (i = 0 ; i < m ; i++) if (wi [i] == 0) P [kr++] = i ; + rr [set+1] = kr ; +} + +/* return 1 if row i is in R2 */ +static int cs_rprune (int i, int j, double aij, void *other) +{ + int *rr = (int *) other ; + return (i >= rr [1] && i < rr [2]) ; +} + +/* Given A, find coarse dmperm */ +csd *cs_dmperm (const cs *A) +{ + int m, n, i, j, k, p, cnz, nc, *jmatch, *imatch, *wi, *wj, *Pinv, *Cp, *Ci, + *Ps, *Rs, nb1, nb2, *P, *Q, *cc, *rr, *R, *S, ok ; + cs *C ; + csd *D, *scc ; + /* --- Maximum matching ------------------------------------------------- */ + if (!A) return (NULL) ; /* check inputs */ + m = A->m ; n = A->n ; + D = cs_dalloc (m, n) ; /* allocate result */ + if (!D) return (NULL) ; + P = D->P ; Q = D->Q ; R = D->R ; S = D->S ; cc = D->cc ; rr = D->rr ; + jmatch = cs_maxtrans (A) ; /* max transversal */ + imatch = jmatch + m ; /* imatch = inverse of jmatch */ + if (!jmatch) return (cs_ddone (D, NULL, jmatch, 0)) ; + /* --- Coarse decomposition --------------------------------------------- */ + wi = R ; wj = S ; /* use R and S as workspace */ + for (j = 0 ; j < n ; j++) wj [j] = -1 ; /* unmark all cols for bfs */ + for (i = 0 ; i < m ; i++) wi [i] = -1 ; /* unmark all rows for bfs */ + cs_bfs (A, n, wi, wj, Q, imatch, jmatch, 1) ; /* find C0, C1, R1 */ + ok = cs_bfs (A, m, wj, wi, P, jmatch, imatch, 3) ; /* find R0, R3, C3 */ + if (!ok) return (cs_ddone (D, NULL, jmatch, 0)) ; + cs_unmatched (n, wj, Q, cc, 0) ; /* unmatched set C0 */ + cs_matched (m, wi, jmatch, P, Q, cc, rr, 1, 1) ; /* set R1 and C1 */ + cs_matched (m, wi, jmatch, P, Q, cc, rr, 2, -1) ; /* set R2 and C2 */ + cs_matched (m, wi, jmatch, P, Q, cc, rr, 3, 3) ; /* set R3 and C3 */ + cs_unmatched (m, wi, P, rr, 3) ; /* unmatched set R0 */ + cs_free (jmatch) ; + /* --- Fine decomposition ----------------------------------------------- */ + Pinv = cs_pinv (P, m) ; /* Pinv=P' */ + if (!Pinv) return (cs_ddone (D, NULL, NULL, 0)) ; + C = cs_permute (A, Pinv, Q, 0) ;/* C=A(P,Q) (it will hold A(R2,C2)) */ + cs_free (Pinv) ; + if (!C) return (cs_ddone (D, NULL, NULL, 0)) ; + Cp = C->p ; Ci = C->i ; + nc = cc [3] - cc [2] ; /* delete cols C0, C1, and C3 from C */ + if (cc [2] > 0) for (j = cc [2] ; j <= cc [3] ; j++) Cp [j-cc[2]] = Cp [j] ; + C->n = nc ; + if (rr [2] - rr [1] < m) /* delete rows R0, R1, and R3 from C */ + { + cs_fkeep (C, cs_rprune, rr) ; + cnz = Cp [nc] ; + if (rr [1] > 0) for (p = 0 ; p < cnz ; p++) Ci [p] -= rr [1] ; + } + C->m = nc ; + scc = cs_scc (C) ; /* find strongly-connected components of C*/ + if (!scc) return (cs_ddone (D, C, NULL, 0)) ; + /* --- Combine coarse and fine decompositions --------------------------- */ + Ps = scc->P ; /* C(Ps,Ps) is the permuted matrix */ + Rs = scc->R ; /* kth block is Rs[k]..Rs[k+1]-1 */ + nb1 = scc->nb ; /* # of blocks of A(*/ + for (k = 0 ; k < nc ; k++) wj [k] = Q [Ps [k] + cc [2]] ; /* combine */ + for (k = 0 ; k < nc ; k++) Q [k + cc [2]] = wj [k] ; + for (k = 0 ; k < nc ; k++) wi [k] = P [Ps [k] + rr [1]] ; + for (k = 0 ; k < nc ; k++) P [k + rr [1]] = wi [k] ; + nb2 = 0 ; /* create the fine block partitions */ + R [0] = 0 ; + S [0] = 0 ; + if (cc [2] > 0) nb2++ ; /* leading coarse block A (R1, [C0 C1]) */ + for (k = 0 ; k < nb1 ; k++) /* coarse block A (R2,C2) */ + { + R [nb2] = Rs [k] + rr [1] ; /* A (R2,C2) splits into nb1 fine blocks */ + S [nb2] = Rs [k] + cc [2] ; + nb2++ ; + } + if (rr [2] < m) + { + R [nb2] = rr [2] ; /* trailing coarse block A ([R3 R0], C3) */ + S [nb2] = cc [3] ; + nb2++ ; + } + R [nb2] = m ; + S [nb2] = n ; + D->nb = nb2 ; + cs_dfree (scc) ; + return (cs_ddone (D, C, NULL, 1)) ; +} + +static int cs_tol (int i, int j, double aij, void *tol) +{ + return (fabs (aij) > *((double *) tol)) ; +} +int cs_droptol (cs *A, double tol) +{ + return (cs_fkeep (A, &cs_tol, &tol)) ; /* keep all large entries */ +} + +static int cs_nonzero (int i, int j, double aij, void *other) +{ + return (aij != 0) ; +} +int cs_dropzeros (cs *A) +{ + return (cs_fkeep (A, &cs_nonzero, NULL)) ; /* keep all nonzero entries */ +} +int cs_dupl (cs *A) +/* + Purpose: + + CS_DUPL removes duplicate entries from A. + + Reference: + + Timothy Davis, + Direct Methods for Sparse Linear Systems, + SIAM, Philadelphia, 2006. +*/ +{ + int i, j, p, q, nz = 0, n, m, *Ap, *Ai, *w ; + double *Ax ; + if (!A) return (0) ; /* check inputs */ + m = A->m ; n = A->n ; Ap = A->p ; Ai = A->i ; Ax = A->x ; + w = (int*)cs_malloc (m, sizeof (int)) ; /* get workspace */ + if (!w) return (0) ; /* out of memory */ + for (i = 0 ; i < m ; i++) w [i] = -1 ; /* row i not yet seen */ + for (j = 0 ; j < n ; j++) + { + q = nz ; /* column j will start at q */ + for (p = Ap [j] ; p < Ap [j+1] ; p++) + { + i = Ai [p] ; /* A(i,j) is nonzero */ + if (w [i] >= q) + { + Ax [w [i]] += Ax [p] ; /* A(i,j) is a duplicate */ + } + else + { + w [i] = nz ; /* record where row i occurs */ + Ai [nz] = i ; /* keep A(i,j) */ + Ax [nz++] = Ax [p] ; + } + } + Ap [j] = q ; /* record start of column j */ + } + Ap [n] = nz ; /* finalize A */ + cs_free (w) ; /* free workspace */ + return (cs_sprealloc (A, 0)) ; /* remove extra space from A */ +} + +/* add an entry to a triplet matrix; return 1 if ok, 0 otherwise */ +int cs_entry (cs *T, int i, int j, double x) +{ + if (!T || (T->nz >= T->nzmax && !cs_sprealloc (T, 2*(T->nzmax)))) return(0); + if (T->x) T->x [T->nz] = x ; + T->i [T->nz] = i ; + T->p [T->nz++] = j ; + T->m = CS_MAX (T->m, i+1) ; + T->n = CS_MAX (T->n, j+1) ; + return (1) ; +} + +/* compute the etree of A (using triu(A), or A'A without forming A'A */ +int *cs_etree (const cs *A, int ata) +{ + int i, k, p, m, n, inext, *Ap, *Ai, *w, *parent, *ancestor, *prev ; + if (!A) return (NULL) ; /* check inputs */ + m = A->m ; n = A->n ; Ap = A->p ; Ai = A->i ; + parent = (int*)cs_malloc (n, sizeof (int)) ; + w = (int*)cs_malloc (n + (ata ? m : 0), sizeof (int)) ; + ancestor = w ; prev = w + n ; + if (!w || !parent) return (cs_idone (parent, NULL, w, 0)) ; + if (ata) for (i = 0 ; i < m ; i++) prev [i] = -1 ; + for (k = 0 ; k < n ; k++) + { + parent [k] = -1 ; /* node k has no parent yet */ + ancestor [k] = -1 ; /* nor does k have an ancestor */ + for (p = Ap [k] ; p < Ap [k+1] ; p++) + { + i = ata ? (prev [Ai [p]]) : (Ai [p]) ; + for ( ; i != -1 && i < k ; i = inext) /* traverse from i to k */ + { + inext = ancestor [i] ; /* inext = ancestor of i */ + ancestor [i] = k ; /* path compression */ + if (inext == -1) parent [i] = k ; /* no anc., parent is k */ + } + if (ata) prev [Ai [p]] = k ; + } + } + return (cs_idone (parent, NULL, w, 1)) ; +} + +/* drop entries for which fkeep(A(i,j)) is false; return nz if OK, else -1 */ +int cs_fkeep (cs *A, int (*fkeep) (int, int, double, void *), void *other) +{ + int j, p, nz = 0, n, *Ap, *Ai ; + double *Ax ; + if (!A || !fkeep) return (-1) ; /* check inputs */ + n = A->n ; Ap = A->p ; Ai = A->i ; Ax = A->x ; + for (j = 0 ; j < n ; j++) + { + p = Ap [j] ; /* get current location of col j */ + Ap [j] = nz ; /* record new location of col j */ + for ( ; p < Ap [j+1] ; p++) + { + if (fkeep (Ai [p], j, Ax ? Ax [p] : 1, other)) + { + if (Ax) Ax [nz] = Ax [p] ; /* keep A(i,j) */ + Ai [nz++] = Ai [p] ; + } + } + } + return (Ap [n] = nz) ; /* finalize A and return nnz(A) */ +} + +/* y = A*x+y */ +int cs_gaxpy (const cs *A, const double *x, double *y) +{ + int p, j, n, *Ap, *Ai ; + double *Ax ; + if (!A || !x || !y) return (0) ; /* check inputs */ + n = A->n ; Ap = A->p ; Ai = A->i ; Ax = A->x ; + for (j = 0 ; j < n ; j++) + { + for (p = Ap [j] ; p < Ap [j+1] ; p++) + { + y [Ai [p]] += Ax [p] * x [j] ; + } + } + return (1) ; +} + +/* apply the ith Householder vector to x */ +int cs_happly (const cs *V, int i, double beta, double *x) +{ + int p, *Vp, *Vi ; + double *Vx, tau = 0 ; + if (!V || !x) return (0) ; /* check inputs */ + Vp = V->p ; Vi = V->i ; Vx = V->x ; + for (p = Vp [i] ; p < Vp [i+1] ; p++) /* tau = v'*x */ + { + tau += Vx [p] * x [Vi [p]] ; + } + tau *= beta ; /* tau = beta*(v'*x) */ + for (p = Vp [i] ; p < Vp [i+1] ; p++) /* x = x - v*tau */ + { + x [Vi [p]] -= Vx [p] * tau ; + } + return (1) ; +} + +/* create a Householder reflection [v,beta,s]=house(x), overwrite x with v, + * where (I-beta*v*v')*x = s*x. See Algo 5.1.1, Golub & Van Loan, 3rd ed. */ +double cs_house (double *x, double *beta, int n) +{ + double s, sigma = 0 ; + int i ; + if (!x || !beta) return (-1) ; /* check inputs */ + for (i = 1 ; i < n ; i++) sigma += x [i] * x [i] ; + if (sigma == 0) + { + s = fabs (x [0]) ; /* s = |x(0)| */ + (*beta) = (x [0] <= 0) ? 2 : 0 ; + x [0] = 1 ; + } + else + { + s = sqrt (x [0] * x [0] + sigma) ; /* s = norm (x) */ + x [0] = (x [0] <= 0) ? (x [0] - s) : (-sigma / (x [0] + s)) ; + (*beta) = -1. / (s * x [0]) ; + } + return (s) ; +} + +/* x(P) = b, for dense vectors x and b; P=NULL denotes identity */ +int cs_ipvec (int n, const int *P, const double *b, double *x) +{ + int k ; + if (!x || !b) return (0) ; /* check inputs */ + for (k = 0 ; k < n ; k++) x [P ? P [k] : k] = b [k] ; + return (1) ; +} +cs *cs_load ( FILE *f ) +/* + Purpose: + + CS_LOAD loads a triplet matrix from a file. + + Reference: + + Timothy Davis, + Direct Methods for Sparse Linear Systems, + SIAM, Philadelphia, 2006. +*/ +{ + int i, j ; + double x ; + cs *T ; + if (!f) return (NULL) ; + T = cs_spalloc (0, 0, 1, 1, 1) ; + while (fscanf (f, "%d %d %lg\n", &i, &j, &x) == 3) + { + if (!cs_entry (T, i, j, x)) return (cs_spfree (T)) ; + } + return (T) ; +} +int cs_lsolve ( const cs *L, double *x ) +/* + Purpose: + + CS_LSOLVE solves L*x=b. + + Discussion: + + On input, X contains the right hand side, and on output, the solution. + + Reference: + + Timothy Davis, + Direct Methods for Sparse Linear Systems, + SIAM, Philadelphia, 2006. +*/ +{ + int p, j, n, *Lp, *Li ; + double *Lx ; + if (!L || !x) return (0) ; /* check inputs */ + n = L->n ; Lp = L->p ; Li = L->i ; Lx = L->x ; + for (j = 0 ; j < n ; j++) + { + x [j] /= Lx [Lp [j]] ; + for (p = Lp [j]+1 ; p < Lp [j+1] ; p++) + { + x [Li [p]] -= Lx [p] * x [j] ; + } + } + return (1) ; +} +int cs_ltsolve ( const cs *L, double *x ) +/* + Purpose: + + CS_LTSOLVE solves L'*x=b. + + Discussion: + + On input, X contains the right hand side, and on output, the solution. + + Reference: + + Timothy Davis, + Direct Methods for Sparse Linear Systems, + SIAM, Philadelphia, 2006. +*/ +{ + int p, j, n, *Lp, *Li ; + double *Lx ; + if (!L || !x) return (0) ; /* check inputs */ + n = L->n ; Lp = L->p ; Li = L->i ; Lx = L->x ; + for (j = n-1 ; j >= 0 ; j--) + { + for (p = Lp [j]+1 ; p < Lp [j+1] ; p++) + { + x [j] -= Lx [p] * x [Li [p]] ; + } + x [j] /= Lx [Lp [j]] ; + } + return (1) ; +} + +/* [L,U,Pinv]=lu(A, [Q lnz unz]). lnz and unz can be guess */ +csn *cs_lu (const cs *A, const css *S, double tol) +{ + cs *L, *U ; + csn *N ; + double pivot, *Lx, *Ux, *x, a, t ; + int *Lp, *Li, *Up, *Ui, *Pinv, *xi, *Q, n, ipiv, k, top, p, i, col, lnz,unz; + if (!A || !S) return (NULL) ; /* check inputs */ + n = A->n ; + Q = S->Q ; lnz = S->lnz ; unz = S->unz ; + x = (double*)cs_malloc (n, sizeof (double)) ; + xi = (int*)cs_malloc (2*n, sizeof (int)) ; + N = (csn*)cs_calloc (1, sizeof (csn)) ; + if (!x || !xi || !N) return (cs_ndone (N, NULL, xi, x, 0)) ; + N->L = L = cs_spalloc (n, n, lnz, 1, 0) ; /* initial L and U */ + N->U = U = cs_spalloc (n, n, unz, 1, 0) ; + N->Pinv = Pinv = (int*)cs_malloc (n, sizeof (int)) ; + if (!L || !U || !Pinv) return (cs_ndone (N, NULL, xi, x, 0)) ; + Lp = L->p ; Up = U->p ; + for (i = 0 ; i < n ; i++) x [i] = 0 ; /* clear workspace */ + for (i = 0 ; i < n ; i++) Pinv [i] = -1 ; /* no rows pivotal yet */ + for (k = 0 ; k <= n ; k++) Lp [k] = 0 ; /* no cols of L yet */ + lnz = unz = 0 ; + for (k = 0 ; k < n ; k++) /* compute L(:,k) and U(:,k) */ + { + /* --- Triangular solve --------------------------------------------- */ + Lp [k] = lnz ; /* L(:,k) starts here */ + Up [k] = unz ; /* U(:,k) starts here */ + if ((lnz + n > L->nzmax && !cs_sprealloc (L, 2*L->nzmax + n)) || + (unz + n > U->nzmax && !cs_sprealloc (U, 2*U->nzmax + n))) + { + return (cs_ndone (N, NULL, xi, x, 0)) ; + } + Li = L->i ; Lx = L->x ; Ui = U->i ; Ux = U->x ; + col = Q ? (Q [k]) : k ; + top = cs_splsolve (L, A, col, xi, x, Pinv) ; /* x = L\A(:,col) */ + /* --- Find pivot --------------------------------------------------- */ + ipiv = -1 ; + a = -1 ; + for (p = top ; p < n ; p++) + { + i = xi [p] ; /* x(i) is nonzero */ + if (Pinv [i] < 0) /* row i is not pivotal */ + { + if ((t = fabs (x [i])) > a) + { + a = t ; /* largest pivot candidate so far */ + ipiv = i ; + } + } + else /* x(i) is the entry U(Pinv[i],k) */ + { + Ui [unz] = Pinv [i] ; + Ux [unz++] = x [i] ; + } + } + if (ipiv == -1 || a <= 0) return (cs_ndone (N, NULL, xi, x, 0)) ; + if (Pinv [col] < 0 && fabs (x [col]) >= a*tol) ipiv = col ; + /* --- Divide by pivot ---------------------------------------------- */ + pivot = x [ipiv] ; /* the chosen pivot */ + Ui [unz] = k ; /* last entry in U(:,k) is U(k,k) */ + Ux [unz++] = pivot ; + Pinv [ipiv] = k ; /* ipiv is the kth pivot row */ + Li [lnz] = ipiv ; /* first entry in L(:,k) is L(k,k) = 1 */ + Lx [lnz++] = 1 ; + for (p = top ; p < n ; p++) /* L(k+1:n,k) = x / pivot */ + { + i = xi [p] ; + if (Pinv [i] < 0) /* x(i) is an entry in L(:,k) */ + { + Li [lnz] = i ; /* save unpermuted row in L */ + Lx [lnz++] = x [i] / pivot ; /* scale pivot column */ + } + x [i] = 0 ; /* x [0..n-1] = 0 for next k */ + } + } + /* --- Finalize L and U ------------------------------------------------- */ + Lp [n] = lnz ; + Up [n] = unz ; + Li = L->i ; /* fix row indices of L for final Pinv */ + for (p = 0 ; p < lnz ; p++) Li [p] = Pinv [Li [p]] ; + cs_sprealloc (L, 0) ; /* remove extra space from L and U */ + cs_sprealloc (U, 0) ; + return (cs_ndone (N, NULL, xi, x, 1)) ; /* success */ +} + +/* x=A\b where A is unsymmetric; b overwritten with solution */ +int cs_lusol (const cs *A, double *b, int order, double tol) +{ + double *x ; + css *S ; + csn *N ; + int n, ok ; + if (!A || !b) return (0) ; /* check inputs */ + n = A->n ; + S = cs_sqr (A, order, 0) ; /* ordering and symbolic analysis */ + N = cs_lu (A, S, tol) ; /* numeric LU factorization */ + x = (double*)cs_malloc (n, sizeof (double)) ; + ok = (S && N && x) ; + if (ok) + { + cs_ipvec (n, N->Pinv, b, x) ; /* x = P*b */ + cs_lsolve (N->L, x) ; /* x = L\x */ + cs_usolve (N->U, x) ; /* x = U\x */ + cs_ipvec (n, S->Q, x, b) ; /* b = Q*x */ + } + cs_free (x) ; + cs_sfree (S) ; + cs_nfree (N) ; + return (ok) ; +} + +#ifdef MATLAB_MEX_FILE +#define malloc mxMalloc +#define free mxFree +#define realloc mxRealloc +#define calloc mxCalloc +#endif + +/* wrapper for malloc */ +void *cs_malloc (int n, size_t size) +{ + return (CS_OVERFLOW (n,size) ? NULL : malloc (CS_MAX (n,1) * size)) ; +} + +/* wrapper for calloc */ +void *cs_calloc (int n, size_t size) +{ + return (CS_OVERFLOW (n,size) ? NULL : calloc (CS_MAX (n,1), size)) ; +} + +/* wrapper for free */ +void *cs_free (void *p) +{ + if (p) free (p) ; /* free p if it is not already NULL */ + return (NULL) ; /* return NULL to simplify the use of cs_free */ +} + +/* wrapper for realloc */ +void *cs_realloc (void *p, int n, size_t size, int *ok) +{ + void *p2 ; + *ok = !CS_OVERFLOW (n,size) ; /* guard against int overflow */ + if (!(*ok)) return (p) ; /* p unchanged if n too large */ + p2 = realloc (p, CS_MAX (n,1) * size) ; /* realloc the block */ + *ok = (p2 != NULL) ; + return ((*ok) ? p2 : p) ; /* return original p if failure */ +} + +/* find an augmenting path starting at column k and extend the match if found */ +static void cs_augment (int k, const cs *A, int *jmatch, int *cheap, int *w, + int *js, int *is, int *ps) +{ + int found = 0, p, i = -1, *Ap = A->p, *Ai = A->i, head = 0, j ; + js [0] = k ; /* start with just node k in jstack */ + while (head >= 0) + { + /* --- Start (or continue) depth-first-search at node j ------------- */ + j = js [head] ; /* get j from top of jstack */ + if (w [j] != k) /* 1st time j visited for kth path */ + { + w [j] = k ; /* mark j as visited for kth path */ + for (p = cheap [j] ; p < Ap [j+1] && !found ; p++) + { + i = Ai [p] ; /* try a cheap assignment (i,j) */ + found = (jmatch [i] == -1) ; + } + cheap [j] = p ; /* start here next time j is traversed*/ + if (found) + { + is [head] = i ; /* column j matched with row i */ + break ; /* end of augmenting path */ + } + ps [head] = Ap [j] ; /* no cheap match: start dfs for j */ + } + /* --- Depth-first-search of neighbors of j ------------------------- */ + for (p = ps [head] ; p < Ap [j+1] ; p++) + { + i = Ai [p] ; /* consider row i */ + if (w [jmatch [i]] == k) continue ; /* skip jmatch [i] if marked */ + ps [head] = p + 1 ; /* pause dfs of node j */ + is [head] = i ; /* i will be matched with j if found */ + js [++head] = jmatch [i] ; /* start dfs at column jmatch [i] */ + break ; + } + if (p == Ap [j+1]) head-- ; /* node j is done; pop from stack */ + } /* augment the match if path found: */ + if (found) for (p = head ; p >= 0 ; p--) jmatch [is [p]] = js [p] ; +} + +/* find a maximum transveral */ +int *cs_maxtrans (const cs *A) /* returns jmatch [0..m-1]; imatch [0..n-1] */ +{ + int i, j, k, n, m, p, n2 = 0, m2 = 0, *Ap, *jimatch, *w, *cheap, *js, *is, + *ps, *Ai, *Cp, *jmatch, *imatch ; + cs *C ; + if (!A) return (NULL) ; /* check inputs */ + n = A->n ; m = A->m ; Ap = A->p ; Ai = A->i ; + w = jimatch = (int*)cs_calloc (m+n, sizeof (int)) ; /* allocate result */ + if (!jimatch) return (NULL) ; + for (j = 0 ; j < n ; j++) /* count non-empty rows and columns */ + { + n2 += (Ap [j] < Ap [j+1]) ; + for (p = Ap [j] ; p < Ap [j+1] ; p++) w [Ai [p]] = 1 ; + } + for (i = 0 ; i < m ; i++) m2 += w [i] ; + C = (m2 < n2) ? cs_transpose (A,0) : ((cs *) A) ; /* transpose if needed */ + if (!C) return (cs_idone (jimatch, (m2 < n2) ? C : NULL, NULL, 0)) ; + n = C->n ; m = C->m ; Cp = C->p ; + jmatch = (m2 < n2) ? jimatch + n : jimatch ; + imatch = (m2 < n2) ? jimatch : jimatch + m ; + w = (int*)cs_malloc (5*n, sizeof (int)) ; /* allocate workspace */ + if (!w) return (cs_idone (jimatch, (m2 < n2) ? C : NULL, w, 0)) ; + cheap = w + n ; js = w + 2*n ; is = w + 3*n ; ps = w + 4*n ; + for (j = 0 ; j < n ; j++) cheap [j] = Cp [j] ; /* for cheap assignment */ + for (j = 0 ; j < n ; j++) w [j] = -1 ; /* all columns unflagged */ + for (i = 0 ; i < m ; i++) jmatch [i] = -1 ; /* nothing matched yet */ + for (k = 0 ; k < n ; k++) cs_augment (k, C, jmatch, cheap, w, js, is, ps) ; + for (j = 0 ; j < n ; j++) imatch [j] = -1 ; /* find row match */ + for (i = 0 ; i < m ; i++) if (jmatch [i] >= 0) imatch [jmatch [i]] = i ; + return (cs_idone (jimatch, (m2 < n2) ? C : NULL, w, 1)) ; +} + +/* C = A*B */ +cs *cs_multiply (const cs *A, const cs *B) +{ + int p, j, nz = 0, anz, *Cp, *Ci, *Bp, m, n, bnz, *w, values, *Bi ; + double *x, *Bx, *Cx ; + cs *C ; + if (!A || !B) return (NULL) ; /* check inputs */ + m = A->m ; anz = A->p [A->n] ; + n = B->n ; Bp = B->p ; Bi = B->i ; Bx = B->x ; bnz = Bp [n] ; + w = (int*)cs_calloc (m, sizeof (int)) ; + values = (A->x != NULL) && (Bx != NULL) ; + x = values ? (double*)cs_malloc (m, sizeof (double)) : NULL ; + C = cs_spalloc (m, n, anz + bnz, values, 0) ; + if (!C || !w || (values && !x)) return (cs_done (C, w, x, 0)) ; + Cp = C->p ; + for (j = 0 ; j < n ; j++) + { + if (nz + m > C->nzmax && !cs_sprealloc (C, 2*(C->nzmax)+m)) + { + return (cs_done (C, w, x, 0)) ; /* out of memory */ + } + Ci = C->i ; Cx = C->x ; /* C may have been reallocated */ + Cp [j] = nz ; /* column j of C starts here */ + for (p = Bp [j] ; p < Bp [j+1] ; p++) + { + nz = cs_scatter (A, Bi [p], Bx ? Bx [p] : 1, w, x, j+1, C, nz) ; + } + if (values) for (p = Cp [j] ; p < nz ; p++) Cx [p] = x [Ci [p]] ; + } + Cp [n] = nz ; /* finalize the last column of C */ + cs_sprealloc (C, 0) ; /* remove extra space from C */ + return (cs_done (C, w, x, 1)) ; /* success; free workspace, return C */ +} + +/* 1-norm of a sparse matrix = max (sum (abs (A))), largest column sum */ +double cs_norm (const cs *A) +{ + int p, j, n, *Ap ; + double *Ax, norm = 0, s ; + if (!A || !A->x) return (-1) ; /* check inputs */ + n = A->n ; Ap = A->p ; Ax = A->x ; + for (j = 0 ; j < n ; j++) + { + for (s = 0, p = Ap [j] ; p < Ap [j+1] ; p++) s += fabs (Ax [p]) ; + norm = CS_MAX (norm, s) ; + } + return (norm) ; +} + +/* C = A(P,Q) where P and Q are permutations of 0..m-1 and 0..n-1. */ +cs *cs_permute (const cs *A, const int *Pinv, const int *Q, int values) +{ + int p, j, k, nz = 0, m, n, *Ap, *Ai, *Cp, *Ci ; + double *Cx, *Ax ; + cs *C ; + if (!A) return (NULL) ; /* check inputs */ + m = A->m ; n = A->n ; Ap = A->p ; Ai = A->i ; Ax = A->x ; + C = cs_spalloc (m, n, Ap [n], values && Ax != NULL, 0) ; + if (!C) return (cs_done (C, NULL, NULL, 0)) ; /* out of memory */ + Cp = C->p ; Ci = C->i ; Cx = C->x ; + for (k = 0 ; k < n ; k++) + { + Cp [k] = nz ; /* column k of C is column Q[k] of A */ + j = Q ? (Q [k]) : k ; + for (p = Ap [j] ; p < Ap [j+1] ; p++) + { + if (Cx) Cx [nz] = Ax [p] ; /* row i of A is row Pinv[i] of C */ + Ci [nz++] = Pinv ? (Pinv [Ai [p]]) : Ai [p] ; + } + } + Cp [n] = nz ; /* finalize the last column of C */ + return (cs_done (C, NULL, NULL, 1)) ; +} + +/* Pinv = P', or P = Pinv' */ +int *cs_pinv (int const *P, int n) +{ + int k, *Pinv ; + if (!P) return (NULL) ; /* P = NULL denotes identity */ + Pinv = (int*)cs_malloc (n, sizeof (int)) ; /* allocate resuult */ + if (!Pinv) return (NULL) ; /* out of memory */ + for (k = 0 ; k < n ; k++) Pinv [P [k]] = k ;/* invert the permutation */ + return (Pinv) ; /* return result */ +} + +/* post order a forest */ +int *cs_post (int n, const int *parent) +{ + int j, k = 0, *post, *w, *head, *next, *stack ; + if (!parent) return (NULL) ; /* check inputs */ + post = (int*)cs_malloc (n, sizeof (int)) ; /* allocate result */ + w = (int*)cs_malloc (3*n, sizeof (int)) ; /* 3*n workspace */ + head = w ; next = w + n ; stack = w + 2*n ; + if (!w || !post) return (cs_idone (post, NULL, w, 0)) ; + for (j = 0 ; j < n ; j++) head [j] = -1 ; /* empty link lists */ + for (j = n-1 ; j >= 0 ; j--) /* traverse nodes in reverse order*/ + { + if (parent [j] == -1) continue ; /* j is a root */ + next [j] = head [parent [j]] ; /* add j to list of its parent */ + head [parent [j]] = j ; + } + for (j = 0 ; j < n ; j++) + { + if (parent [j] != -1) continue ; /* skip j if it is not a root */ + k = cs_tdfs (j, k, head, next, post, stack) ; + } + return (cs_idone (post, NULL, w, 1)) ; /* success; free w, return post */ +} + +/* print a sparse matrix */ +int cs_print (const cs *A, int brief) +{ + int p, j, m, n, nzmax, nz, *Ap, *Ai ; + double *Ax ; + if (!A) { printf ("(null)\n") ; return (0) ; } + m = A->m ; n = A->n ; Ap = A->p ; Ai = A->i ; Ax = A->x ; + nzmax = A->nzmax ; nz = A->nz ; + printf ("CSparse Version %d.%d.%d, %s. %s\n", CS_VER, CS_SUBVER, + CS_SUBSUB, CS_DATE, CS_COPYRIGHT) ; + if (nz < 0) + { + printf ("%d-by-%d, nzmax: %d nnz: %d, 1-norm: %g\n", m, n, nzmax, + Ap [n], cs_norm (A)) ; + for (j = 0 ; j < n ; j++) + { + printf (" col %d : locations %d to %d\n", j, Ap [j], Ap [j+1]-1); + for (p = Ap [j] ; p < Ap [j+1] ; p++) + { + printf (" %d : %g\n", Ai [p], Ax ? Ax [p] : 1) ; + if (brief && p > 20) { printf (" ...\n") ; return (1) ; } + } + } + } + else + { + printf ("triplet: %d-by-%d, nzmax: %d nnz: %d\n", m, n, nzmax, nz) ; + for (p = 0 ; p < nz ; p++) + { + printf (" %d %d : %g\n", Ai [p], Ap [p], Ax ? Ax [p] : 1) ; + if (brief && p > 20) { printf (" ...\n") ; return (1) ; } + } + } + return (1) ; +} + +/* x = b(P), for dense vectors x and b; P=NULL denotes identity */ +int cs_pvec (int n, const int *P, const double *b, double *x) +{ + int k ; + if (!x || !b) return (0) ; /* check inputs */ + for (k = 0 ; k < n ; k++) x [k] = b [P ? P [k] : k] ; + return (1) ; +} + +/* sparse QR factorization [V,beta,p,R] = qr (A) */ +csn *cs_qr (const cs *A, const css *S) +{ + double *Rx, *Vx, *Ax, *Beta, *x ; + int i, k, p, m, n, vnz, p1, top, m2, len, col, rnz, *s, *leftmost, *Ap, + *Ai, *parent, *Rp, *Ri, *Vp, *Vi, *w, *Pinv, *Q ; + cs *R, *V ; + csn *N ; + if (!A || !S || !S->parent || !S->Pinv) return (NULL) ; /* check inputs */ + m = A->m ; n = A->n ; Ap = A->p ; Ai = A->i ; Ax = A->x ; + Q = S->Q ; parent = S->parent ; Pinv = S->Pinv ; m2 = S->m2 ; + vnz = S->lnz ; rnz = S->unz ; + leftmost = Pinv + m + n ; + w = (int*)cs_malloc (m2+n, sizeof (int)) ; + x = (double*)cs_malloc (m2, sizeof (double)) ; + N = (csn*)cs_calloc (1, sizeof (csn)) ; + if (!w || !x || !N) return (cs_ndone (N, NULL, w, x, 0)) ; + s = w + m2 ; /* size n */ + for (k = 0 ; k < m2 ; k++) x [k] = 0 ; /* clear workspace x */ + N->L = V = cs_spalloc (m2, n, vnz, 1, 0) ; /* allocate V */ + N->U = R = cs_spalloc (m2, n, rnz, 1, 0) ; /* allocate R, m2-by-n */ + N->B = Beta = (double*)cs_malloc (n, sizeof (double)) ; + if (!R || !V || !Beta) return (cs_ndone (N, NULL, w, x, 0)) ; + Rp = R->p ; Ri = R->i ; Rx = R->x ; + Vp = V->p ; Vi = V->i ; Vx = V->x ; + for (i = 0 ; i < m2 ; i++) w [i] = -1 ; /* clear w, to mark nodes */ + rnz = 0 ; vnz = 0 ; + for (k = 0 ; k < n ; k++) /* compute V and R */ + { + Rp [k] = rnz ; /* R(:,k) starts here */ + Vp [k] = p1 = vnz ; /* V(:,k) starts here */ + w [k] = k ; /* add V(k,k) to pattern of V */ + Vi [vnz++] = k ; + top = n ; + col = Q ? Q [k] : k ; + for (p = Ap [col] ; p < Ap [col+1] ; p++) /* find R(:,k) pattern */ + { + i = leftmost [Ai [p]] ; /* i = min(find(A(i,Q))) */ + for (len = 0 ; w [i] != k ; i = parent [i]) /* traverse up to k */ + { + s [len++] = i ; + w [i] = k ; + } + while (len > 0) s [--top] = s [--len] ; /* push path on stack */ + i = Pinv [Ai [p]] ; /* i = permuted row of A(:,col) */ + x [i] = Ax [p] ; /* x (i) = A(.,col) */ + if (i > k && w [i] < k) /* pattern of V(:,k) = x (k+1:m) */ + { + Vi [vnz++] = i ; /* add i to pattern of V(:,k) */ + w [i] = k ; + } + } + for (p = top ; p < n ; p++) /* for each i in pattern of R(:,k) */ + { + i = s [p] ; /* R(i,k) is nonzero */ + cs_happly (V, i, Beta [i], x) ; /* apply (V(i),Beta(i)) to x */ + Ri [rnz] = i ; /* R(i,k) = x(i) */ + Rx [rnz++] = x [i] ; + x [i] = 0 ; + if (parent [i] == k) vnz = cs_scatter (V, i, 0, w, NULL, k, V, vnz); + } + for (p = p1 ; p < vnz ; p++) /* gather V(:,k) = x */ + { + Vx [p] = x [Vi [p]] ; + x [Vi [p]] = 0 ; + } + Ri [rnz] = k ; /* R(k,k) = norm (x) */ + Rx [rnz++] = cs_house (Vx+p1, Beta+k, vnz-p1) ; /* [v,beta]=house(x) */ + } + Rp [n] = rnz ; /* finalize R */ + Vp [n] = vnz ; /* finalize V */ + return (cs_ndone (N, NULL, w, x, 1)) ; /* success */ +} + +/* x=A\b where A can be rectangular; b overwritten with solution */ +int cs_qrsol (const cs *A, double *b, int order) +{ + double *x ; + css *S ; + csn *N ; + cs *AT = NULL ; + int k, m, n, ok ; + if (!A || !b) return (0) ; /* check inputs */ + n = A->n ; + m = A->m ; + if (m >= n) + { + S = cs_sqr (A, order, 1) ; /* ordering and symbolic analysis */ + N = cs_qr (A, S) ; /* numeric QR factorization */ + x = (double*)cs_calloc (S ? S->m2 : 1, sizeof (double)) ; + ok = (S && N && x) ; + if (ok) + { + cs_ipvec (m, S->Pinv, b, x) ; /* x(0:m-1) = P*b(0:m-1) */ + for (k = 0 ; k < n ; k++) /* apply Householder refl. to x */ + { + cs_happly (N->L, k, N->B [k], x) ; + } + cs_usolve (N->U, x) ; /* x = R\x */ + cs_ipvec (n, S->Q, x, b) ; /* b(0:n-1) = Q*x (permutation) */ + } + } + else + { + AT = cs_transpose (A, 1) ; /* Ax=b is underdetermined */ + S = cs_sqr (AT, order, 1) ; /* ordering and symbolic analysis */ + N = cs_qr (AT, S) ; /* numeric QR factorization of A' */ + x = (double*)cs_calloc (S ? S->m2 : 1, sizeof (double)) ; + ok = (AT && S && N && x) ; + if (ok) + { + cs_pvec (m, S->Q, b, x) ; /* x(0:m-1) = Q'*b (permutation) */ + cs_utsolve (N->U, x) ; /* x = R'\x */ + for (k = m-1 ; k >= 0 ; k--) /* apply Householder refl. to x */ + { + cs_happly (N->L, k, N->B [k], x) ; + } + cs_pvec (n, S->Pinv, x, b) ; /* b (0:n-1) = P'*x */ + } + } + cs_free (x) ; + cs_sfree (S) ; + cs_nfree (N) ; + cs_spfree (AT) ; + return (ok) ; +} + +/* xi [top...n-1] = nodes reachable from graph of L*P' via nodes in B(:,k). + * xi [n...2n-1] used as workspace */ +int cs_reach (cs *L, const cs *B, int k, int *xi, const int *Pinv) +{ + int p, n, top, *Bp, *Bi, *Lp ; + if (!L || !B || !xi) return (-1) ; + n = L->n ; Bp = B->p ; Bi = B->i ; Lp = L->p ; + top = n ; + for (p = Bp [k] ; p < Bp [k+1] ; p++) + { + if (!CS_MARKED (Lp, Bi [p])) /* start a dfs at unmarked node i */ + { + top = cs_dfs (Bi [p], L, top, xi, xi+n, Pinv) ; + } + } + for (p = top ; p < n ; p++) CS_MARK (Lp, xi [p]) ; /* restore L */ + return (top) ; +} + +/* x = x + beta * A(:,j), where x is a dense vector and A(:,j) is sparse */ +int cs_scatter (const cs *A, int j, double beta, int *w, double *x, int mark, + cs *C, int nz) +{ + int i, p, *Ap, *Ai, *Ci ; + double *Ax ; + if (!A || !w || !C) return (-1) ; /* ensure inputs are valid */ + Ap = A->p ; Ai = A->i ; Ax = A->x ; Ci = C->i ; + for (p = Ap [j] ; p < Ap [j+1] ; p++) + { + i = Ai [p] ; /* A(i,j) is nonzero */ + if (w [i] < mark) + { + w [i] = mark ; /* i is new entry in column j */ + Ci [nz++] = i ; /* add i to pattern of C(:,j) */ + if (x) x [i] = beta * Ax [p] ; /* x(i) = beta*A(i,j) */ + } + else if (x) x [i] += beta * Ax [p] ; /* i exists in C(:,j) already */ + } + return (nz) ; +} + +/* find the strongly connected components of a square matrix */ +csd *cs_scc (cs *A) /* matrix A temporarily modified, then restored */ +{ + int n, i, k, b = 0, top, *xi, *pstack, *P, *R, *Ap, *ATp ; + cs *AT ; + csd *D ; + if (!A) return (NULL) ; + n = A->n ; Ap = A->p ; + D = cs_dalloc (n, 0) ; + AT = cs_transpose (A, 0) ; /* AT = A' */ + xi = (int*)cs_malloc (2*n, sizeof (int)) ; /* allocate workspace */ + pstack = xi + n ; + if (!D || !AT || !xi) return (cs_ddone (D, AT, xi, 0)) ; + P = D->P ; R = D->R ; ATp = AT->p ; + top = n ; + for (i = 0 ; i < n ; i++) /* first dfs(A) to find finish times (xi) */ + { + if (!CS_MARKED (Ap,i)) top = cs_dfs (i, A, top, xi, pstack, NULL) ; + } + for (i = 0 ; i < n ; i++) CS_MARK (Ap, i) ; /* restore A; unmark all nodes*/ + top = n ; + b = n ; + for (k = 0 ; k < n ; k++) /* dfs(A') to find strongly connnected comp. */ + { + i = xi [k] ; /* get i in reverse order of finish times */ + if (CS_MARKED (ATp,i)) continue ; /* skip node i if already ordered */ + R [b--] = top ; /* node i is the start of a component in P */ + top = cs_dfs (i, AT, top, P, pstack, NULL) ; + } + R [b] = 0 ; /* first block starts at zero; shift R up */ + for (k = b ; k <= n ; k++) R [k-b] = R [k] ; + D->nb = R [n+1] = b = n-b ; /* b = # of strongly connected components */ + return (cs_ddone (D, AT, xi, 1)) ; +} + +/* ordering and symbolic analysis for a Cholesky factorization */ +css *cs_schol (const cs *A, int order) +{ + int n, *c, *post, *P ; + cs *C ; + css *S ; + if (!A) return (NULL) ; /* check inputs */ + n = A->n ; + S = (css*)cs_calloc (1, sizeof (css)) ; /* allocate symbolic analysis */ + if (!S) return (NULL) ; /* out of memory */ + P = cs_amd (A, order) ; /* P = amd(A+A'), or natural */ + S->Pinv = cs_pinv (P, n) ; /* find inverse permutation */ + cs_free (P) ; + if (order >= 0 && !S->Pinv) return (cs_sfree (S)) ; + C = cs_symperm (A, S->Pinv, 0) ; /* C = spones(triu(A(P,P))) */ + S->parent = cs_etree (C, 0) ; /* find etree of C */ + post = cs_post (n, S->parent) ; /* postorder the etree */ + c = cs_counts (C, S->parent, post, 0) ; /* find column counts of chol(C) */ + cs_free (post) ; + cs_spfree (C) ; + S->cp = (int*)cs_malloc (n+1, sizeof (int)) ; /* find column pointers for L */ + S->unz = S->lnz = cs_cumsum (S->cp, c, n) ; + cs_free (c) ; + return ((S->lnz >= 0) ? S : cs_sfree (S)) ; +} + +/* solve Lx=b(:,k), leaving pattern in xi[top..n-1], values scattered in x. */ +int cs_splsolve (cs *L, const cs *B, int k, int *xi, double *x, const int *Pinv) +{ + int j, jnew, p, px, top, n, *Lp, *Li, *Bp, *Bi ; + double *Lx, *Bx ; + if (!L || !B || !xi || !x) return (-1) ; + Lp = L->p ; Li = L->i ; Lx = L->x ; n = L->n ; + Bp = B->p ; Bi = B->i ; Bx = B->x ; + top = cs_reach (L, B, k, xi, Pinv) ; /* xi[top..n-1]=Reach(B(:,k)) */ + for (p = top ; p < n ; p++) x [xi [p]] = 0 ;/* clear x */ + for (p = Bp [k] ; p < Bp [k+1] ; p++) x [Bi [p]] = Bx [p] ; /* scatter B */ + for (px = top ; px < n ; px++) + { + j = xi [px] ; /* x(j) is nonzero */ + jnew = Pinv ? (Pinv [j]) : j ; /* j is column jnew of L */ + if (jnew < 0) continue ; /* column jnew is empty */ + for (p = Lp [jnew]+1 ; p < Lp [jnew+1] ; p++) + { + x [Li [p]] -= Lx [p] * x [j] ; /* x(i) -= L(i,j) * x(j) */ + } + } + return (top) ; /* return top of stack */ +} + +/* compute vnz, Pinv, leftmost, m2 from A and parent */ +static int *cs_vcount (const cs *A, const int *parent, int *m2, int *vnz) +{ + int i, k, p, pa, n = A->n, m = A->m, *Ap = A->p, *Ai = A->i ; + int *Pinv = (int*)cs_malloc (2*m+n, sizeof (int)), *leftmost = Pinv + m + n ; + int *w = (int*)cs_malloc (m+3*n, sizeof (int)) ; + int *next = w, *head = w + m, *tail = w + m + n, *nque = w + m + 2*n ; + if (!Pinv || !w) return (cs_idone (Pinv, NULL, w, 0)) ; + for (k = 0 ; k < n ; k++) head [k] = -1 ; /* queue k is empty */ + for (k = 0 ; k < n ; k++) tail [k] = -1 ; + for (k = 0 ; k < n ; k++) nque [k] = 0 ; + for (i = 0 ; i < m ; i++) leftmost [i] = -1 ; + for (k = n-1 ; k >= 0 ; k--) + { + for (p = Ap [k] ; p < Ap [k+1] ; p++) + { + leftmost [Ai [p]] = k ; /* leftmost[i] = min(find(A(i,:)))*/ + } + } + for (i = m-1 ; i >= 0 ; i--) /* scan rows in reverse order */ + { + Pinv [i] = -1 ; /* row i is not yet ordered */ + k = leftmost [i] ; + if (k == -1) continue ; /* row i is empty */ + if (nque [k]++ == 0) tail [k] = i ; /* first row in queue k */ + next [i] = head [k] ; /* put i at head of queue k */ + head [k] = i ; + } + (*vnz) = 0 ; + (*m2) = m ; + for (k = 0 ; k < n ; k++) /* find row permutation and nnz(V)*/ + { + i = head [k] ; /* remove row i from queue k */ + (*vnz)++ ; /* count V(k,k) as nonzero */ + if (i < 0) i = (*m2)++ ; /* add a fictitious row */ + Pinv [i] = k ; /* associate row i with V(:,k) */ + if (--nque [k] <= 0) continue ; /* skip if V(k+1:m,k) is empty */ + (*vnz) += nque [k] ; /* nque [k] = nnz (V(k+1:m,k)) */ + if ((pa = parent [k]) != -1) /* move all rows to parent of k */ + { + if (nque [pa] == 0) tail [pa] = tail [k] ; + next [tail [k]] = head [pa] ; + head [pa] = next [i] ; + nque [pa] += nque [k] ; + } + } + for (i = 0 ; i < m ; i++) if (Pinv [i] < 0) Pinv [i] = k++ ; + return (cs_idone (Pinv, NULL, w, 1)) ; +} + +/* symbolic analysis for QR or LU */ +css *cs_sqr (const cs *A, int order, int qr) +{ + int n, k, ok = 1, *post ; + css *S ; + if (!A) return (NULL) ; /* check inputs */ + n = A->n ; + S = (css*)cs_calloc (1, sizeof (css)) ; /* allocate symbolic analysis */ + if (!S) return (NULL) ; /* out of memory */ + S->Q = cs_amd (A, order) ; /* fill-reducing ordering */ + if (order >= 0 && !S->Q) return (cs_sfree (S)) ; + if (qr) /* QR symbolic analysis */ + { + cs *C = (order >= 0) ? cs_permute (A, NULL, S->Q, 0) : ((cs *) A) ; + S->parent = cs_etree (C, 1) ; /* etree of C'*C, where C=A(:,Q) */ + post = cs_post (n, S->parent) ; + S->cp = cs_counts (C, S->parent, post, 1) ; /* col counts chol(C'*C) */ + cs_free (post) ; + ok = C && S->parent && S->cp ; + if (ok) S->Pinv = cs_vcount (C, S->parent, &(S->m2), &(S->lnz)) ; + ok = ok && S->Pinv ; + if (ok) for (S->unz = 0, k = 0 ; k < n ; k++) S->unz += S->cp [k] ; + if (order >= 0) cs_spfree (C) ; + } + else + { + S->unz = 4*(A->p [n]) + n ; /* for LU factorization only, */ + S->lnz = S->unz ; /* guess nnz(L) and nnz(U) */ + } + return (ok ? S : cs_sfree (S)) ; +} + +/* C = A(p,p) where A and C are symmetric the upper part stored, Pinv not P */ +cs *cs_symperm (const cs *A, const int *Pinv, int values) +{ + int i, j, p, q, i2, j2, n, *Ap, *Ai, *Cp, *Ci, *w ; + double *Cx, *Ax ; + cs *C ; + if (!A) return (NULL) ; + n = A->n ; Ap = A->p ; Ai = A->i ; Ax = A->x ; + C = cs_spalloc (n, n, Ap [n], values && (Ax != NULL), 0) ; + w = (int*)cs_calloc (n, sizeof (int)) ; + if (!C || !w) return (cs_done (C, w, NULL, 0)) ; /* out of memory */ + Cp = C->p ; Ci = C->i ; Cx = C->x ; + for (j = 0 ; j < n ; j++) /* count entries in each column of C */ + { + j2 = Pinv ? Pinv [j] : j ; /* column j of A is column j2 of C */ + for (p = Ap [j] ; p < Ap [j+1] ; p++) + { + i = Ai [p] ; + if (i > j) continue ; /* skip lower triangular part of A */ + i2 = Pinv ? Pinv [i] : i ; /* row i of A is row i2 of C */ + w [CS_MAX (i2, j2)]++ ; /* column count of C */ + } + } + cs_cumsum (Cp, w, n) ; /* compute column pointers of C */ + for (j = 0 ; j < n ; j++) + { + j2 = Pinv ? Pinv [j] : j ; /* column j of A is column j2 of C */ + for (p = Ap [j] ; p < Ap [j+1] ; p++) + { + i = Ai [p] ; + if (i > j) continue ; /* skip lower triangular part of A*/ + i2 = Pinv ? Pinv [i] : i ; /* row i of A is row i2 of C */ + Ci [q = w [CS_MAX (i2, j2)]++] = CS_MIN (i2, j2) ; + if (Cx) Cx [q] = Ax [p] ; + } + } + return (cs_done (C, w, NULL, 1)) ; /* success; free workspace, return C */ +} + +/* depth-first search and postorder of a tree rooted at node j */ +int cs_tdfs (int j, int k, int *head, const int *next, int *post, int *stack) +{ + int i, p, top = 0 ; + if (!head || !next || !post || !stack) return (-1) ; /* check inputs */ + stack [0] = j ; /* place j on the stack */ + while (top >= 0) /* while (stack is not empty) */ + { + p = stack [top] ; /* p = top of stack */ + i = head [p] ; /* i = youngest child of p */ + if (i == -1) + { + top-- ; /* p has no unordered children left */ + post [k++] = p ; /* node p is the kth postordered node */ + } + else + { + head [p] = next [i] ; /* remove i from children of p */ + stack [++top] = i ; /* start dfs on child node i */ + } + } + return (k) ; +} + +/* C = A' */ +cs *cs_transpose (const cs *A, int values) +{ + int p, q, j, *Cp, *Ci, n, m, *Ap, *Ai, *w ; + double *Cx, *Ax ; + cs *C ; + if (!A) return (NULL) ; + m = A->m ; n = A->n ; Ap = A->p ; Ai = A->i ; Ax = A->x ; + C = cs_spalloc (n, m, Ap [n], values && Ax, 0) ; /* allocate result */ + w = (int*)cs_calloc (m, sizeof (int)) ; + if (!C || !w) return (cs_done (C, w, NULL, 0)) ; /* out of memory */ + Cp = C->p ; Ci = C->i ; Cx = C->x ; + for (p = 0 ; p < Ap [n] ; p++) w [Ai [p]]++ ; /* row counts */ + cs_cumsum (Cp, w, m) ; /* row pointers */ + for (j = 0 ; j < n ; j++) + { + for (p = Ap [j] ; p < Ap [j+1] ; p++) + { + Ci [q = w [Ai [p]]++] = j ; /* place A(i,j) as entry C(j,i) */ + if (Cx) Cx [q] = Ax [p] ; + } + } + return (cs_done (C, w, NULL, 1)) ; /* success; free w and return C */ +} + +/* C = compressed-column form of a triplet matrix T */ +cs *cs_triplet (const cs *T) +{ + int m, n, nz, p, k, *Cp, *Ci, *w, *Ti, *Tj ; + double *Cx, *Tx ; + cs *C ; + if (!T) return (NULL) ; /* check inputs */ + m = T->m ; n = T->n ; Ti = T->i ; Tj = T->p ; Tx = T->x ; nz = T->nz ; + C = cs_spalloc (m, n, nz, Tx != NULL, 0) ; /* allocate result */ + w = (int*)cs_calloc (n, sizeof (int)) ; /* get workspace */ + if (!C || !w) return (cs_done (C, w, NULL, 0)) ; /* out of memory */ + Cp = C->p ; Ci = C->i ; Cx = C->x ; + for (k = 0 ; k < nz ; k++) w [Tj [k]]++ ; /* column counts */ + cs_cumsum (Cp, w, n) ; /* column pointers */ + for (k = 0 ; k < nz ; k++) + { + Ci [p = w [Tj [k]]++] = Ti [k] ; /* A(i,j) is the pth entry in C */ + if (Cx) Cx [p] = Tx [k] ; + } + return (cs_done (C, w, NULL, 1)) ; /* success; free w and return C */ +} + +/* sparse Cholesky update/downdate, L*L' + sigma*w*w' (sigma = +1 or -1) */ +int cs_updown (cs *L, int sigma, const cs *C, const int *parent) +{ + int p, f, j, *Lp, *Li, *Cp, *Ci ; + double *Lx, *Cx, alpha, beta = 1, delta, gamma, w1, w2, *w, n, beta2 = 1 ; + if (!L || !C || !parent) return (0) ; + Lp = L->p ; Li = L->i ; Lx = L->x ; n = L->n ; + Cp = C->p ; Ci = C->i ; Cx = C->x ; + if ((p = Cp [0]) >= Cp [1]) return (1) ; /* return if C empty */ + w = (double*)cs_malloc ((int)n, sizeof (double)) ; + if (!w) return (0) ; + f = Ci [p] ; + for ( ; p < Cp [1] ; p++) f = CS_MIN (f, Ci [p]) ; /* f = min (find (C)) */ + for (j = f ; j != -1 ; j = parent [j]) w [j] = 0 ; /* clear workspace w */ + for (p = Cp [0] ; p < Cp [1] ; p++) w [Ci [p]] = Cx [p] ; /* w = C */ + for (j = f ; j != -1 ; j = parent [j]) /* walk path f up to root */ + { + p = Lp [j] ; + alpha = w [j] / Lx [p] ; /* alpha = w(j) / L(j,j) */ + beta2 = beta*beta + sigma*alpha*alpha ; + if (beta2 <= 0) break ; /* not positive definite */ + beta2 = sqrt (beta2) ; + delta = (sigma > 0) ? (beta / beta2) : (beta2 / beta) ; + gamma = sigma * alpha / (beta2 * beta) ; + Lx [p] = delta * Lx [p] + ((sigma > 0) ? (gamma * w [j]) : 0) ; + beta = beta2 ; + for (p++ ; p < Lp [j+1] ; p++) + { + w1 = w [Li [p]] ; + w [Li [p]] = w2 = w1 - alpha * Lx [p] ; + Lx [p] = delta * Lx [p] + gamma * ((sigma > 0) ? w1 : w2) ; + } + } + cs_free (w) ; + return (beta2 > 0) ; +} + +/* solve Ux=b where x and b are dense. x=b on input, solution on output. */ +int cs_usolve (const cs *U, double *x) +{ + int p, j, n, *Up, *Ui ; + double *Ux ; + if (!U || !x) return (0) ; /* check inputs */ + n = U->n ; Up = U->p ; Ui = U->i ; Ux = U->x ; + for (j = n-1 ; j >= 0 ; j--) + { + x [j] /= Ux [Up [j+1]-1] ; + for (p = Up [j] ; p < Up [j+1]-1 ; p++) + { + x [Ui [p]] -= Ux [p] * x [j] ; + } + } + return (1) ; +} + +/* allocate a sparse matrix (triplet form or compressed-column form) */ +cs *cs_spalloc (int m, int n, int nzmax, int values, int triplet) +{ + cs *A = (cs*)cs_calloc (1, sizeof (cs)) ; /* allocate the cs struct */ + if (!A) return (NULL) ; /* out of memory */ + A->m = m ; /* define dimensions and nzmax */ + A->n = n ; + A->nzmax = nzmax = CS_MAX (nzmax, 1) ; + A->nz = triplet ? 0 : -1 ; /* allocate triplet or comp.col */ + A->p = (int*)cs_malloc (triplet ? nzmax : n+1, sizeof (int)) ; + A->i = (int*)cs_malloc (nzmax, sizeof (int)) ; + A->x = values ? (double*)cs_malloc (nzmax, sizeof (double)) : NULL ; + return ((!A->p || !A->i || (values && !A->x)) ? cs_spfree (A) : A) ; +} + +/* change the max # of entries sparse matrix */ +int cs_sprealloc (cs *A, int nzmax) +{ + int ok, oki, okj = 1, okx = 1 ; + if (!A) return (0) ; + nzmax = (nzmax <= 0) ? (A->p [A->n]) : nzmax ; + A->i = (int*)cs_realloc (A->i, nzmax, sizeof (int), &oki) ; + if (A->nz >= 0) A->p = (int*)cs_realloc (A->p, nzmax, sizeof (int), &okj) ; + if (A->x) A->x = (double*)cs_realloc (A->x, nzmax, sizeof (double), &okx) ; + ok = (oki && okj && okx) ; + if (ok) A->nzmax = nzmax ; + return (ok) ; +} + +/* free a sparse matrix */ +cs *cs_spfree (cs *A) +{ + if (!A) return (NULL) ; /* do nothing if A already NULL */ + cs_free (A->p) ; + cs_free (A->i) ; + cs_free (A->x) ; + return (cs*)(cs_free (A)) ; /* free the cs struct and return NULL */ +} + +/* free a numeric factorization */ +csn *cs_nfree (csn *N) +{ + if (!N) return (NULL) ; /* do nothing if N already NULL */ + cs_spfree (N->L) ; + cs_spfree (N->U) ; + cs_free (N->Pinv) ; + cs_free (N->B) ; + return (csn*)(cs_free (N)) ; /* free the csn struct and return NULL */ +} + +/* free a symbolic factorization */ +css *cs_sfree (css *S) +{ + if (!S) return (NULL) ; /* do nothing if S already NULL */ + cs_free (S->Pinv) ; + cs_free (S->Q) ; + cs_free (S->parent) ; + cs_free (S->cp) ; + return (css*)(cs_free (S)) ; /* free the css struct and return NULL */ +} + +/* allocate a cs_dmperm or cs_scc result */ +csd *cs_dalloc (int m, int n) +{ + csd *D ; + D = (csd*)cs_calloc (1, sizeof (csd)) ; + if (!D) return (NULL) ; + D->P = (int*)cs_malloc (m, sizeof (int)) ; + D->R = (int*)cs_malloc (m+6, sizeof (int)) ; + D->Q = (int*)cs_malloc (n, sizeof (int)) ; + D->S = (int*)cs_malloc (n+6, sizeof (int)) ; + return ((!D->P || !D->R || !D->Q || !D->S) ? cs_dfree (D) : D) ; +} + +/* free a cs_dmperm or cs_scc result */ +csd *cs_dfree (csd *D) +{ + if (!D) return (NULL) ; /* do nothing if D already NULL */ + cs_free (D->P) ; + cs_free (D->Q) ; + cs_free (D->R) ; + cs_free (D->S) ; + return (csd*)(cs_free (D)) ; +} + +/* free workspace and return a sparse matrix result */ +cs *cs_done (cs *C, void *w, void *x, int ok) +{ + cs_free (w) ; /* free workspace */ + cs_free (x) ; + return (ok ? C : cs_spfree (C)) ; /* return result if OK, else free it */ +} + +/* free workspace and return int array result */ +int *cs_idone (int *p, cs *C, void *w, int ok) +{ + cs_spfree (C) ; /* free temporary matrix */ + cs_free (w) ; /* free workspace */ + return (ok ? p : (int*)cs_free (p)) ; /* return result if OK, else free it */ +} + +/* free workspace and return a numeric factorization (Cholesky, LU, or QR) */ +csn *cs_ndone (csn *N, cs *C, void *w, void *x, int ok) +{ + cs_spfree (C) ; /* free temporary matrix */ + cs_free (w) ; /* free workspace */ + cs_free (x) ; + return (ok ? N : cs_nfree (N)) ; /* return result if OK, else free it */ +} + +/* free workspace and return a csd result */ +csd *cs_ddone (csd *D, cs *C, void *w, int ok) +{ + cs_spfree (C) ; /* free temporary matrix */ + cs_free (w) ; /* free workspace */ + return (ok ? D : cs_dfree (D)) ; /* return result if OK, else free it */ +} + +/* solve U'x=b where x and b are dense. x=b on input, solution on output. */ +int cs_utsolve (const cs *U, double *x) +{ + int p, j, n, *Up, *Ui ; + double *Ux ; + if (!U || !x) return (0) ; /* check inputs */ + n = U->n ; Up = U->p ; Ui = U->i ; Ux = U->x ; + for (j = 0 ; j < n ; j++) + { + for (p = Up [j] ; p < Up [j+1]-1 ; p++) + { + x [j] -= Ux [p] * x [Ui [p]] ; + } + x [j] /= Ux [p] ; + } + return (1) ; +} diff --git a/.svn/pristine/23/2354cc31a9028bfa520a3f521bfe59cd3f71ca50.svn-base b/.svn/pristine/23/2354cc31a9028bfa520a3f521bfe59cd3f71ca50.svn-base new file mode 100644 index 0000000..9842ee7 --- /dev/null +++ b/.svn/pristine/23/2354cc31a9028bfa520a3f521bfe59cd3f71ca50.svn-base @@ -0,0 +1,474 @@ +/************************************************************************** + + algebra3.cpp, algebra3.h - C++ Vector and Matrix Algebra routines + + There are three vector classes and two matrix classes: vec2, vec3, + vec4, mat3, and mat4. + + All the standard arithmetic operations are defined, with '*' + for dot product of two vectors and multiplication of two matrices, + and '^' for cross product of two vectors. + + Additional functions include length(), normalize(), homogenize for + vectors, and print(), set(), apply() for all classes. + + There is a function transpose() for matrices, but note that it + does not actually change the matrix, + + When multiplied with a matrix, a vector is treated as a row vector + if it precedes the matrix (v*M), and as a column vector if it + follows the matrix (M*v). + + Matrices are stored in row-major form. + + A vector of one dimension (2d, 3d, or 4d) can be cast to a vector + of a higher or lower dimension. If casting to a higher dimension, + the new component is set by default to 1.0, unless a value is + specified: + vec3 a(1.0, 2.0, 3.0 ); + vec4 b( a, 4.0 ); // now b == {1.0, 2.0, 3.0, 4.0}; + When casting to a lower dimension, the vector is homogenized in + the lower dimension. E.g., if a 4d {X,Y,Z,W} is cast to 3d, the + resulting vector is {X/W, Y/W, Z/W}. It is up to the user to + insure the fourth component is not zero before casting. + + There are also the following function for building matrices: + identity2D(), translation2D(), rotation2D(), + scaling2D(), identity3D(), translation3D(), + rotation3D(), rotation3Drad(), scaling3D(), + perspective3D() + + NOTE: When compiling for Windows, include this file first, to avoid + certain name conflicts + + --------------------------------------------------------------------- + + Author: Jean-Francois DOUEg + Revised: Paul Rademacher + Version 3.2 - Feb 1998 + +**************************************************************************/ + +#ifndef _ALGEBRA3_H_ +#define _ALGEBRA3_H_ + +#include +#include +#include + +// this line defines a new type: pointer to a function which returns a +// float and takes as argument a float +typedef float (*V_FCT_PTR)(float); + +// min-max macros +#ifndef MIN +#define MIN(A,B) ((A) < (B) ? (A) : (B)) +#define MAX(A,B) ((A) > (B) ? (A) : (B)) +#endif + +//#include +// error handling macro +//#define VEC_ERROR(E) { cerr << E; exit(1); } +/*#define << +#define >>*/ + +#ifdef VEC_ERROR_FATAL +#ifndef VEC_ERROR +#define VEC_ERROR(E) { printf( "VERROR %s\n", E ); exit(1); } +#endif +#else +#ifndef VEC_ERROR +#define VEC_ERROR(E) { printf( "VERROR %s\n", E ); } +#endif +#endif + +class vec2; +class vec3; +class vec4; +class mat3; +class mat4; + +/*#ifndef X +enum {X,Y,Z,W}; +#endif +*/ + +/*#ifndef R +enum {R,G,B,ALPHA}; +#endif +*/ + +#ifndef M_PI +#define M_PI 3.141592654 +#endif + + +enum {VX, VY, VZ, VW}; // axes +enum {PA, PB, PC, PD}; // planes +enum {RED, GREEN, BLUE, ALPHA}; // colors +enum {KA, KD, KS, ES}; // phong coefficients + +/**************************************************************** +* * +* 2D Vector * +* * +****************************************************************/ + +class vec2 +{ +protected: + + float n[2]; + +public: + + // Constructors + + vec2(void); + vec2(const float x, const float y); + vec2(const float d); + vec2(const vec2& v); // copy constructor + vec2(const vec3& v); // cast v3 to v2 + vec2(const vec3& v, int dropAxis); // cast v3 to v2 + + // Assignment operators + + vec2& operator = ( const vec2& v ); // assignment of a vec2 + vec2& operator += ( const vec2& v ); // incrementation by a vec2 + vec2& operator -= ( const vec2& v ); // decrementation by a vec2 + vec2& operator *= ( const float d ); // multiplication by a constant + vec2& operator /= ( const float d ); // division by a constant + float& operator [] ( int i); // indexing + + // special functions + + float length(void); // length of a vec2 + float length2(void); // squared length of a vec2 + vec2& normalize(void); // normalize a vec2 + vec2& apply(V_FCT_PTR fct); // apply a func. to each component + void set( float x, float y ); // set vector + + // friends + + friend vec2 operator - (const vec2& v); // -v1 + friend vec2 operator + (const vec2& a, const vec2& b); // v1 + v2 + friend vec2 operator - (const vec2& a, const vec2& b); // v1 - v2 + friend vec2 operator * (const vec2& a, const float d); // v1 * 3.0 + friend vec2 operator * (const float d, const vec2& a); // 3.0 * v1 + friend vec2 operator * (const mat3& a, const vec2& v); // M . v + friend vec2 operator * (const vec2& v, mat3& a); // v . M + friend float operator * (const vec2& a, const vec2& b); // dot product + friend vec2 operator / (const vec2& a, const float d); // v1 / 3.0 + friend vec3 operator ^ (const vec2& a, const vec2& b); // cross product + friend int operator == (const vec2& a, const vec2& b); // v1 == v2 ? + friend int operator != (const vec2& a, const vec2& b); // v1 != v2 ? + //friend ostream& operator << (ostream& s, vec2& v); // output to stream + //friend istream& operator >> (istream& s, vec2& v); // input from strm. + friend void swap(vec2& a, vec2& b); // swap v1 & v2 + friend vec2 min_vec(const vec2& a, const vec2& b); // min(v1, v2) + friend vec2 max_vec(const vec2& a, const vec2& b); // max(v1, v2) + friend vec2 prod(const vec2& a, const vec2& b); // term by term * + + // necessary friend declarations + + friend class vec3; +}; + +/**************************************************************** +* * +* 3D Vector * +* * +****************************************************************/ + +class vec3 +{ +protected: + + float n[3]; + +public: + + // Constructors + + vec3(void); + vec3(const float x, const float y, const float z); + vec3(const float d); + vec3(const vec3& v); // copy constructor + vec3(const vec2& v); // cast v2 to v3 + vec3(const vec2& v, float d); // cast v2 to v3 + vec3(const vec4& v); // cast v4 to v3 + vec3(const vec4& v, int dropAxis); // cast v4 to v3 + + // Assignment operators + + vec3& operator = ( const vec3& v ); // assignment of a vec3 + vec3& operator += ( const vec3& v ); // incrementation by a vec3 + vec3& operator -= ( const vec3& v ); // decrementation by a vec3 + vec3& operator *= ( const float d ); // multiplication by a constant + vec3& operator /= ( const float d ); // division by a constant + float& operator [] ( int i); // indexing + + // special functions + + float length(void); // length of a vec3 + float length2(void); // squared length of a vec3 + vec3& normalize(void); // normalize a vec3 + vec3& homogenize(void); // homogenize (div by Z) + vec3& apply(V_FCT_PTR fct); // apply a func. to each component + void set( float x, float y, float z ); // set vector + void print( FILE *file, char *name ); // print vector to a file + + // friends + + friend vec3 operator - (const vec3& v); // -v1 + friend vec3 operator + (const vec3& a, const vec3& b); // v1 + v2 + friend vec3 operator - (const vec3& a, const vec3& b); // v1 - v2 + friend vec3 operator * (const vec3& a, const float d); // v1 * 3.0 + friend vec3 operator * (const float d, const vec3& a); // 3.0 * v1 + friend vec3 operator * (const mat4& a, const vec3& v); // M . v + friend vec3 operator * (const vec3& v, mat4& a); // v . M + friend float operator * (const vec3& a, const vec3& b); // dot product + friend vec3 operator / (const vec3& a, const float d); // v1 / 3.0 + friend vec3 operator ^ (const vec3& a, const vec3& b); // cross product + friend int operator == (const vec3& a, const vec3& b); // v1 == v2 ? + friend int operator != (const vec3& a, const vec3& b); // v1 != v2 ? + //friend ostream& operator << (ostream& s, vec3& v); // output to stream + //friend istream& operator >> (istream& s, vec3& v); // input from strm. + friend void swap(vec3& a, vec3& b); // swap v1 & v2 + friend vec3 min_vec(const vec3& a, const vec3& b); // min(v1, v2) + friend vec3 max_vec(const vec3& a, const vec3& b); // max(v1, v2) + friend vec3 prod(const vec3& a, const vec3& b); // term by term * + + // necessary friend declarations + + friend class vec2; + friend class vec4; + friend class mat3; + friend vec2 operator * (const mat3& a, const vec2& v); // linear transform + friend vec3 operator * (const mat3& a, const vec3& v); // linear transform + friend mat3 operator * (mat3& a, mat3& b); // matrix 3 product + + }; + +/**************************************************************** +* * +* 4D Vector * +* * +****************************************************************/ + +class vec4 +{ +protected: + + float n[4]; + +public: + + // Constructors + + vec4(void); + vec4(const float x, const float y, const float z, const float w); + vec4(const float d); + vec4(const vec4& v); // copy constructor + vec4(const vec3& v); // cast vec3 to vec4 + vec4(const vec3& v, const float d); // cast vec3 to vec4 + + // Assignment operators + + vec4& operator = ( const vec4& v ); // assignment of a vec4 + vec4& operator += ( const vec4& v ); // incrementation by a vec4 + vec4& operator -= ( const vec4& v ); // decrementation by a vec4 + vec4& operator *= ( const float d ); // multiplication by a constant + vec4& operator /= ( const float d ); // division by a constant + float& operator [] ( int i); // indexing + + // special functions + + float length(void); // length of a vec4 + float length2(void); // squared length of a vec4 + vec4& normalize(void); // normalize a vec4 + vec4& apply(V_FCT_PTR fct); // apply a func. to each component + vec4& homogenize(void); + void print( FILE *file, char *name ); // print vector to a file + void set( float x, float y, float z, float a ); + + // friends + + friend vec4 operator - (const vec4& v); // -v1 + friend vec4 operator + (const vec4& a, const vec4& b); // v1 + v2 + friend vec4 operator - (const vec4& a, const vec4& b); // v1 - v2 + friend vec4 operator * (const vec4& a, const float d); // v1 * 3.0 + friend vec4 operator * (const float d, const vec4& a); // 3.0 * v1 + friend vec4 operator * (const mat4& a, const vec4& v); // M . v + friend vec4 operator * (const vec4& v, mat4& a); // v . M + friend float operator * (const vec4& a, const vec4& b); // dot product + friend vec4 operator / (const vec4& a, const float d); // v1 / 3.0 + friend int operator == (const vec4& a, const vec4& b); // v1 == v2 ? + friend int operator != (const vec4& a, const vec4& b); // v1 != v2 ? + //friend ostream& operator << (ostream& s, vec4& v); // output to stream + //friend istream& operator >> (istream& s, vec4& v); // input from strm. + friend void swap(vec4& a, vec4& b); // swap v1 & v2 + friend vec4 min_vec(const vec4& a, const vec4& b); // min(v1, v2) + friend vec4 max_vec(const vec4& a, const vec4& b); // max(v1, v2) + friend vec4 prod(const vec4& a, const vec4& b); // term by term * + + // necessary friend declarations + + friend class vec3; + friend class mat4; + friend vec3 operator * (const mat4& a, const vec3& v); // linear transform + friend mat4 operator * (mat4& a, mat4& b); // matrix 4 product + }; + +/**************************************************************** +* * +* 3x3 Matrix * +* * +****************************************************************/ + +class mat3 +{ +protected: + + vec3 v[3]; + +public: + + // Constructors + + mat3(void); + mat3(const vec3& v0, const vec3& v1, const vec3& v2); + mat3(const float d); + mat3(const mat3& m); + + // Assignment operators + + mat3& operator = ( const mat3& m ); // assignment of a mat3 + mat3& operator += ( const mat3& m ); // incrementation by a mat3 + mat3& operator -= ( const mat3& m ); // decrementation by a mat3 + mat3& operator *= ( const float d ); // multiplication by a constant + mat3& operator /= ( const float d ); // division by a constant + vec3& operator [] ( int i); // indexing + + // special functions + + mat3 transpose(void); // transpose + mat3 inverse(void); // inverse + mat3& apply(V_FCT_PTR fct); // apply a func. to each element + void print( FILE *file, char *name ); // print matrix to a file + void set(const vec3& v0, const vec3& v1, const vec3& v2); + + + // friends + + friend mat3 operator - (const mat3& a); // -m1 + friend mat3 operator + (const mat3& a, const mat3& b); // m1 + m2 + friend mat3 operator - (const mat3& a, const mat3& b); // m1 - m2 + friend mat3 operator * (mat3& a, mat3& b); // m1 * m2 + friend mat3 operator * (const mat3& a, const float d); // m1 * 3.0 + friend mat3 operator * (const float d, const mat3& a); // 3.0 * m1 + friend mat3 operator / (const mat3& a, const float d); // m1 / 3.0 + friend int operator == (const mat3& a, const mat3& b); // m1 == m2 ? + friend int operator != (const mat3& a, const mat3& b); // m1 != m2 ? + //friend ostream& operator << (ostream& s, mat3& m); // output to stream + //friend istream& operator >> (istream& s, mat3& m); // input from strm. + friend void swap(mat3& a, mat3& b); // swap m1 & m2 + + // necessary friend declarations + + friend vec3 operator * (const mat3& a, const vec3& v); // linear transform + friend vec2 operator * (const mat3& a, const vec2& v); // linear transform + }; + +/**************************************************************** +* * +* 4x4 Matrix * +* * +****************************************************************/ + +class mat4 +{ +protected: +public: + + vec4 v[4]; + + + // Constructors + + mat4(void); + mat4(const vec4& v0, const vec4& v1, const vec4& v2, const vec4& v3); + mat4(const float d); + mat4(const mat4& m); + mat4(const float a00, const float a01, const float a02, const float a03, + const float a10, const float a11, const float a12, const float a13, + const float a20, const float a21, const float a22, const float a23, + const float a30, const float a31, const float a32, const float a33 ); + + + // Assignment operators + + mat4& operator = ( const mat4& m ); // assignment of a mat4 + mat4& operator += ( const mat4& m ); // incrementation by a mat4 + mat4& operator -= ( const mat4& m ); // decrementation by a mat4 + mat4& operator *= ( const float d ); // multiplication by a constant + mat4& operator /= ( const float d ); // division by a constant + vec4& operator [] ( int i); // indexing + + // special functions + + mat4 transpose(void); // transpose + mat4 inverse(void); // inverse + mat4& apply(V_FCT_PTR fct); // apply a func. to each element + void print( FILE *file, char *name ); // print matrix to a file + void swap_rows( int i, int j ); // swap rows i and j + void swap_cols( int i, int j ); // swap cols i and j + + // friends + + friend mat4 operator - (const mat4& a); // -m1 + friend mat4 operator + (const mat4& a, const mat4& b); // m1 + m2 + friend mat4 operator - (const mat4& a, const mat4& b); // m1 - m2 + friend mat4 operator * (mat4& a, mat4& b); // m1 * m2 + friend mat4 operator * (const mat4& a, const float d); // m1 * 4.0 + friend mat4 operator * (const float d, const mat4& a); // 4.0 * m1 + friend mat4 operator / (const mat4& a, const float d); // m1 / 3.0 + friend int operator == (const mat4& a, const mat4& b); // m1 == m2 ? + friend int operator != (const mat4& a, const mat4& b); // m1 != m2 ? + //friend ostream& operator << (ostream& s, mat4& m); // output to stream + //friend istream& operator >> (istream& s, mat4& m); // input from strm. + friend void swap(mat4& a, mat4& b); // swap m1 & m2 + + // necessary friend declarations + + friend vec4 operator * (const mat4& a, const vec4& v); // linear transform + //friend vec4 operator * (const vec4& v, const mat4& a); // linear transform + friend vec3 operator * (const mat4& a, const vec3& v); // linear transform + friend vec3 operator * (const vec3& v, const mat4& a); // linear transform + }; + +/**************************************************************** +* * +* 2D functions and 3D functions * +* * +****************************************************************/ + +mat3 identity2D(void); // identity 2D +mat3 translation2D(vec2& v); // translation 2D +mat3 rotation2D(vec2& Center, const float angleDeg); // rotation 2D +mat3 scaling2D(vec2& scaleVector); // scaling 2D +mat4 identity3D(void); // identity 3D +mat4 translation3D(vec3& v); // translation 3D +mat4 rotation3D(vec3& Axis, const float angleDeg); // rotation 3D +mat4 rotation3Drad(vec3& Axis, const float angleRad); // rotation 3D +mat4 scaling3D(vec3& scaleVector); // scaling 3D +mat4 perspective3D(const float d); // perspective 3D + + +vec3 operator * (const vec3& v, mat3& a); +vec2 operator * (const vec2& v, mat3& a); +vec3 operator * (const vec3& v, mat4& a); +vec4 operator * (const vec4& v, mat4& a); + + +#endif diff --git a/.svn/pristine/23/238a47231d70654503acd4dcbb6d85178c6520d0.svn-base b/.svn/pristine/23/238a47231d70654503acd4dcbb6d85178c6520d0.svn-base new file mode 100644 index 0000000..ef80461 --- /dev/null +++ b/.svn/pristine/23/238a47231d70654503acd4dcbb6d85178c6520d0.svn-base @@ -0,0 +1,85 @@ +//---------------------------------------------------------------------- +// File: kd_split.h +// Programmer: Sunil Arya and David Mount +// Description: Methods for splitting kd-trees +// Last modified: 01/04/05 (Version 1.0) +//---------------------------------------------------------------------- +// Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +// David Mount. All Rights Reserved. +// +// This software and related documentation is part of the Approximate +// Nearest Neighbor Library (ANN). This software is provided under +// the provisions of the Lesser GNU Public License (LGPL). See the +// file ../ReadMe.txt for further information. +// +// The University of Maryland (U.M.) and the authors make no +// representations about the suitability or fitness of this software for +// any purpose. It is provided "as is" without express or implied +// warranty. +//---------------------------------------------------------------------- +// History: +// Revision 0.1 03/04/98 +// Initial release +//---------------------------------------------------------------------- + +#ifndef ANN_KD_SPLIT_H +#define ANN_KD_SPLIT_H + +#include "kd_tree.h" // kd-tree definitions + +//---------------------------------------------------------------------- +// External entry points +// These are all splitting procedures for kd-trees. +//---------------------------------------------------------------------- + +void kd_split( // standard (optimized) kd-splitter + ANNpointArray pa, // point array (unaltered) + ANNidxArray pidx, // point indices (permuted on return) + const ANNorthRect &bnds, // bounding rectangle for cell + int n, // number of points + int dim, // dimension of space + int &cut_dim, // cutting dimension (returned) + ANNcoord &cut_val, // cutting value (returned) + int &n_lo); // num of points on low side (returned) + +void midpt_split( // midpoint kd-splitter + ANNpointArray pa, // point array (unaltered) + ANNidxArray pidx, // point indices (permuted on return) + const ANNorthRect &bnds, // bounding rectangle for cell + int n, // number of points + int dim, // dimension of space + int &cut_dim, // cutting dimension (returned) + ANNcoord &cut_val, // cutting value (returned) + int &n_lo); // num of points on low side (returned) + +void sl_midpt_split( // sliding midpoint kd-splitter + ANNpointArray pa, // point array (unaltered) + ANNidxArray pidx, // point indices (permuted on return) + const ANNorthRect &bnds, // bounding rectangle for cell + int n, // number of points + int dim, // dimension of space + int &cut_dim, // cutting dimension (returned) + ANNcoord &cut_val, // cutting value (returned) + int &n_lo); // num of points on low side (returned) + +void fair_split( // fair-split kd-splitter + ANNpointArray pa, // point array (unaltered) + ANNidxArray pidx, // point indices (permuted on return) + const ANNorthRect &bnds, // bounding rectangle for cell + int n, // number of points + int dim, // dimension of space + int &cut_dim, // cutting dimension (returned) + ANNcoord &cut_val, // cutting value (returned) + int &n_lo); // num of points on low side (returned) + +void sl_fair_split( // sliding fair-split kd-splitter + ANNpointArray pa, // point array (unaltered) + ANNidxArray pidx, // point indices (permuted on return) + const ANNorthRect &bnds, // bounding rectangle for cell + int n, // number of points + int dim, // dimension of space + int &cut_dim, // cutting dimension (returned) + ANNcoord &cut_val, // cutting value (returned) + int &n_lo); // num of points on low side (returned) + +#endif diff --git a/.svn/pristine/23/23bf6435244ba8545d2aab32e04be19a7e4bc460.svn-base b/.svn/pristine/23/23bf6435244ba8545d2aab32e04be19a7e4bc460.svn-base new file mode 100644 index 0000000..147e3d2 --- /dev/null +++ b/.svn/pristine/23/23bf6435244ba8545d2aab32e04be19a7e4bc460.svn-base @@ -0,0 +1,3 @@ +-3.10605 -7.50803 156.917 +1.35694 -0.852409 -0.56224 + diff --git a/.svn/pristine/23/23e22fc3557b5a9a27b069649c98f29e8c4aeab9.svn-base b/.svn/pristine/23/23e22fc3557b5a9a27b069649c98f29e8c4aeab9.svn-base new file mode 100644 index 0000000..79a621d --- /dev/null +++ b/.svn/pristine/23/23e22fc3557b5a9a27b069649c98f29e8c4aeab9.svn-base @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.svn/pristine/24/247a47058db146ee1b4f85c65a7a6e35ba33d0a0.svn-base b/.svn/pristine/24/247a47058db146ee1b4f85c65a7a6e35ba33d0a0.svn-base new file mode 100644 index 0000000..ba142d1 --- /dev/null +++ b/.svn/pristine/24/247a47058db146ee1b4f85c65a7a6e35ba33d0a0.svn-base @@ -0,0 +1,93 @@ +// This is an example of a non-linear least squares fit. The example +// is from "Nonlinear estimation" by Gavin Ross (Springer,1990), p 63. +// There are better ways of doing the fit in this case so this +// example is just an example. + +// The model is E(y) = a + b exp(-kx) and there are 6 data points. + +#define WANT_STREAM +#define WANT_MATH +#include "newmatnl.h" +#include "newmatio.h" + +#ifdef use_namespace +using namespace RBD_LIBRARIES; +#endif + + +// first define the class describing the predictor function + +class Model_3pe : public R1_Col_I_D +{ + ColumnVector x_values; // the values of "x" + RowVector deriv; // values of derivatives +public: + Model_3pe(const ColumnVector& X_Values) + : x_values(X_Values) { deriv.ReSize(3); } + // load X data + Real operator()(int); + bool IsValid() { return para(3)>0; } + // require "k" > 0 + ReturnMatrix Derivatives() { return deriv; } +}; + +Real Model_3pe::operator()(int i) +{ + Real a = para(1); Real b = para(2); Real k = para(3); + Real xvi = x_values(i); + Real e = exp(-k * xvi); + deriv(1) = 1.0; // calculate derivatives + deriv(2) = e; + deriv(3) = - b * e * xvi; + return a + b * e; // function value +} + +int main() +{ + { + // Get the data + ColumnVector X(6); + ColumnVector Y(6); + X << 1 << 2 << 3 << 4 << 6 << 8; + Y << 3.2 << 7.9 << 11.1 << 14.5 << 16.7 << 18.3; + + + // Do the fit + Model_3pe model(X); // the model object + NonLinearLeastSquares NLLS(model); // the non-linear least squares + // object + ColumnVector Para(3); // for the parameters + Para << 9 << -6 << .5; // trial values of parameters + cout << "Fitting parameters\n"; + NLLS.Fit(Y,Para); // do the fit + + // Inspect the results + ColumnVector SE; // for the standard errors + NLLS.GetStandardErrors(SE); + cout << "\n\nEstimates and standard errors\n" << + setw(10) << setprecision(2) << (Para | SE) << endl; + Real ResidualSD = sqrt(NLLS.ResidualVariance()); + cout << "\nResidual s.d. = " << setw(10) << setprecision(2) << + ResidualSD << endl; + SymmetricMatrix Correlations; + NLLS.GetCorrelations(Correlations); + cout << "\nCorrelationMatrix\n" << + setw(10) << setprecision(2) << Correlations << endl; + ColumnVector Residuals; + NLLS.GetResiduals(Residuals); + DiagonalMatrix Hat; + NLLS.GetHatDiagonal(Hat); + cout << "\nX, Y, Residual, Hat\n" << setw(10) << setprecision(2) << + (X | Y | Residuals | Hat.AsColumn()) << endl; + // recover var/cov matrix + SymmetricMatrix D; + D << SE.AsDiagonal() * Correlations * SE.AsDiagonal(); + cout << "\nVar/cov\n" << setw(14) << setprecision(4) << D << endl; + } + +#ifdef DO_FREE_CHECK + FreeCheck::Status(); +#endif + + return 0; +} diff --git a/.svn/pristine/24/24820da9aa196ec7a72b02a84db8b3210e3c6a37.svn-base b/.svn/pristine/24/24820da9aa196ec7a72b02a84db8b3210e3c6a37.svn-base new file mode 100644 index 0000000..199ddce --- /dev/null +++ b/.svn/pristine/24/24820da9aa196ec7a72b02a84db8b3210e3c6a37.svn-base @@ -0,0 +1,9 @@ + + + + 3 + 3 +
f
+ + 83.88370514 0. 31.98480415 0. 84.15943909 29.34420967 0. 0. 1.
+
diff --git a/.svn/pristine/24/249c40c4ebf28a1cfa3d024febb7635c32c0bd49.svn-base b/.svn/pristine/24/249c40c4ebf28a1cfa3d024febb7635c32c0bd49.svn-base new file mode 100644 index 0000000..7af6afe --- /dev/null +++ b/.svn/pristine/24/249c40c4ebf28a1cfa3d024febb7635c32c0bd49.svn-base @@ -0,0 +1,485 @@ +@Book{WasIstWas_1999, + author = {P. Clausen}, + title = {Was ist was, Band 37, Computer und Roboter}, + publisher = {Tessloff Verlag}, + year = {1999}, + address = {N{\"u}nberg}, +} + +@Book{Voelker_1971, + editor = {K. V{\"o}lker}, + title = {K{\"u}nstliche Menschen}, + publisher = {Carl Hanser Verlag}, + address = {M{\"u}nchen}, + year = {1971}, +} + +@MastersThesis{DIPLOM_STIENE, + author = {S. Stiene}, + title = {{K}onturbasierte {O}bjekterkennung aus {T}iefenbildern eines {3D}-{L}aserscanners}, + school = {University of Osnabr點k}, + year = {2006}, + month = {January}, +} + +@PhdThesis{DISS_SIMONE, + author = {S. Frintrop}, + title = {{VOCUS}: {A} {V}isual {A}ttention {S}ystem for {O}bject {D}etection and {G}oal-directed search}, + school = {University of Bonn}, + year = {2005}, +} + +@Misc{P3AT, + author = {P3-AT, \texttt{http://www.activrobots.com/ROBOTS/p2at.html}}, + year = {2006}, +} + +@Misc{P3DX, + author = {P3-DX, \texttt{http://www.activrobots.com/ROBOTS/p2dx.html}}, + year = {2006}, +} + +@Misc{ATRV, + author = {ATRV - JR Specifications, \texttt{http://rescue.isr.ist.utl.pt/atrvjr.php}}, + year = {2006}, +} + +@Misc{Galileo, + author = {Galileo (Satellitennavigation), \texttt{http://de.wikipedia.org/wiki/Galileo\_(Satellitennavigation)}}, + year = {2006}, +} + +@Misc{GPS, + author = {Global Positioning System, \texttt{http://de.wikipedia.org/wiki/Global\_Positioning\_System}}, + year = {2006}, +} + +@Misc{PMD, + author = {PMDTechnologies GmbH, \texttt{http://www.pmdtec.com/inhalt/produkte/kamera.htm}}, + year = {2005}, +} + +@Misc{CSEM, + title = {Swissranger 3D camera distance measurement object recognition range finding camera depth measurement \texttt{http://www.swissranger.ch/}}, + year = {2005}, +} + +@Misc{Leutze, + title = {Siemens/{L}eutze {L}aserscanner, \texttt{http://www2.automation.siemens.com/cd/safety/html\_ 00/produkte/optisch\_laser.htm}}, + year = {2005}, +} + +@Misc{Schmersal, + title = {Schmersal {L}aserscanner, \texttt{http://www.produkte.schmersal.de/585/521/23124/range. html?lang=de}}, + year = {2005}, +} + +@Misc{Sick, + title = {SICK {L}aserscanner, \texttt{http://ecatalog.sick.com/Products/ProductFinder/product.aspx? finder=Produktfinder\&pid=9168\&lang=de}}, + year = {2005}, +} + +@Misc{Cyberware, + title = {Cyberware Body Scanner, \texttt{http://www.cyberware.com/products/wbInfo.html}}, + year = {2005}, +} + +@Misc{Cyrax, + title = {Cyrax {L}aserscanner, \texttt{http://hds.leica-geosystems.com/products/products.html}}, + year = {2005}, +} + +@Misc{Riegl, + title = {Riegl {L}aserscanner, \texttt{http://www.riegl.co.at/terrestrial\_scanners/terrestrial\_ scanner\_overview\_/terr\_scanner\_menu\_all.htm}}, + year = {2005}, +} + +@Misc{Zoller, + title = {Zoller und {F}r{\"o}hlich {L}aserscanner, \texttt{http://www.zf-laser.com/d\_bildgebende.html}}, + year = {2005}, +} + +@InProceedings{Fasano_2003, + author = "A. Fasano and M. Callieri and P. Cignoni and R. Scopigno", + title = "Exploiting Mirrors for Laser Stripe 3D Scanning", + booktitle = "Proceedings of the 4th IEEE International Conference on Recent Advances in 3D Digital Imaging and Modeling (3DIM '03)", + month = "October", + year = "2003", + address = "Banff, Canada", + pages = "243 -- 251", +} + +@article{Elfes_1989, + author = {A. Elfes}, + title = {Using Occupancy Grids for Mobile Robot Perception and Navigation}, + journal = {Computer}, + volume = {22}, + number = {6}, + year = {1989}, + issn = {0018-9162}, + pages = {46 -- 57}, + publisher = {IEEE Computer Society Press}, + } + +@Article{Elfes_1987, + author = {A. Elfes}, + title = {Sonar-based real-world mapping and navigation}, + journal = {IEEE Journal of Robotics and Automation}, + year = {1987}, + OPTkey = {}, + volume = {3}, + OPTnumber = {}, + pages = {249 -- 265}, + OPTmonth = {}, + OPTnote = {}, + OPTannote = {} +} + +@inproceedings{Choset_1996, + author = "H. Choset and J. W. Burdick", + title = "Sensor based motion planning: The hierarchical generalized voronoi graph", + booktitle = "Proceedings of the Workshop on Algorithmic Foundations of Robotics", + address = "Toulouse, France", + year = "1996", +} + + +@InProceedings{Kortenkamp_1994, + author = {D. Kortenkamp and T. Weymouth}, + title = { Topological mapping for mobile robots using a combination of sonar and vision sensing}, + OPTcrossref = {}, + OPTkey = {}, + booktitle = {Proceedings of the twelfth national Conference on Artificial Intelligence (AAAI '94)}, + OPTpages = {}, + year = {1994}, + OPTeditor = {}, + OPTvolume = {}, + OPTnumber = {}, + OPTseries = {}, + OPTaddress = {}, + month = {July}, + OPTorganization = {}, + OPTpublisher = {}, + OPTnote = {}, + OPTannote = {} +} + +@Misc{KURT2, + OPTkey = {}, + author = {KURT2 home site at AIS}, + title = {A Mobile Platform for Research in Robotics, \texttt{http://www.ais.fraunhofer.de/KURT2/}}, + OPThowpublished = {}, + OPTmonth = {}, + year = {2005}, + OPTnote = {}, + OPTannote = {} +} + +@incollection{Smith_1990, + author = {R. Smith and M. Self and P. Cheeseman}, + title = {Estimating uncertain spatial relationships in robotics}, + booktitle = {Autonomous robot vehicles}, + year = {1990}, + pages = {167 -- 193}, + publisher = {Springer-Verlag New York, Inc.}, + } + + + +@Article{Zimmer_1996, + author = {U. R. Zimmer}, + title = {Robust World-Modelling and Navigation in a Real World}, + journal = {NeuroComputing}, + year = {1996}, + OPTkey = {}, + volume = {13}, + number = {2 - 4}, + pages = {247 -- 260}, + OPTmonth = {}, + OPTnote = {}, + OPTannote = {} +} + +@inproceedings{Pierce_1995, + author = {D. Pierce and B. Kuipers}, + title = {Learning to explore and build maps}, + booktitle = {Proceedings of the twelfth national Conference on Artificial Intelligence (AAAI '94)}, + year = {1994}, + pages = {1264 -- 1271}, + month = {July}, + address = {Seattle, W.A., U.S.A.}, + publisher = {American Association for Artificial Intelligence}, + } + + + +@Misc{WWWNIST, + OPTkey = {}, + author = {NIST National Institute of Standards and Technology}, + title = {Intelligent Systems Division, \texttt{http://robotarenas.nist.gov/competitions.htm}}, + OPThowpublished = {}, + OPTmonth = {}, + year = {2005}, + OPTnote = {}, + OPTannote = {} +} + +@Book{ControllTheory, + author = "K. Ogata", + title = "Modern Control Engineering (4th Edition)", + publisher = "Prentice Hall", + month = "November", + year = "2001" +} + +@Book{Mathe, + OPTkey = {}, + author = {J. Frehse}, + title = {Vorlesung {I}nfinitisimalrechnung {I} -- {IV} (Vorlesungsmitschrift)}, + year = {1996 -- 1997}, + address = {University of Bonn}, +} + +@Book{SensorsForMobileRobots, + author = {H. R. Everett}, + ALTeditor = {}, + title = {Sensors for Mobile Robots: Theory and Application}, + publisher = {AK Peters, Ltd}, + year = {1995}, + OPTkey = {}, + OPTvolume = {}, + OPTnumber = {}, + OPTseries = {}, + OPTaddress = {}, + OPTedition = {}, + OPTmonth = {}, + OPTnote = {}, + OPTannote = {} +} + +@MastersThesis{KaiLDiplom, + author = {K. Lingemann}, + title = {Schnelles {P}ose-{T}racking auf {L}aserscan-{D}aten f黵 autonome mobile {R}oboter}, + school = {University of Bonn}, + year = {2004}, +} + +@Book{Photogrammetrie, + author = {W. F{\"o}rstner}, + ALTeditor = {}, + title = {Vorlesung {P}hotogrammetrie {I} und {II}}, + year = {2002}, + address = {University of Bonn}, + OPTedition = {}, + OPTmonth = {}, + OPTnote = {}, + OPTannote = {} +} + + +@Book{VisionBuch, + author = {D. A. Forsyth and J. Ponce}, + ALTeditor = {}, + title = {Computer Vision}, + publisher = {Morgan Kaufmann}, + year = {2003}, + OPTkey = {}, + OPTvolume = {}, + OPTnumber = {}, + OPTseries = {}, + OPTaddress = {}, + OPTedition = {}, + OPTmonth = {}, + OPTnote = {}, + OPTannote = {} +} + +@Article{Bentley_1975, + author = {J. L. Bentley}, + title = {Multidimensional binary search trees used for associative searchin}, + journal = {Communications of the ACM}, + year = {1975}, + OPTkey = {}, + volume = {18}, + number = {9}, + pages = {509 -- 517}, + month = {September}, + OPTnote = {}, + OPTannote = {} +} + +@Article{Friedman_1977, + author = {J. H. Friedman and J. L. Bentley and R. A. Finkel}, + title = {An Algorithm for Finding Best Matches in Logarithmic Expected Time}, + journal = {ACM Transaction on Mathematical Software}, + year = {1977}, + OPTkey = {}, + volume = {3}, + number = {3}, + pages = {209 -- 226}, + month = {September}, + OPTnote = {}, + OPTannote = {} +} + + + +@Article{Shoemake_1985, + author = {K. Shoemake}, + title = {Animating rotation with quaternion curves}, + journal = {Computer Graphics}, + year = {1985}, + OPTkey = {}, + volume = {19}, + number = {3}, + pages = {245 -- 254}, + month = {July}, + OPTnote = {}, + OPTannote = {} +} + +@Article{Walker_1991, + author = {M. W. Walker and L. Shao and R. A. Volz}, + title = {Estimating 3-D location parameters using dual number quaternions}, + journal = {CVGIP: Image Understanding}, + year = {1991}, + OPTkey = {}, + volume = {54}, + OPTnumber = {}, + pages = {358 -- 367}, + month = {November}, + OPTnote = {}, + OPTannote = {} +} + +@Article{Hyafil_1977, + author = {L. Hyafil and R. L. Rivest}, + title = {Constructing optimal binary decision trees is NP-complete}, + journal = {Information Processing Letters 5}, + year = {1976}, + OPTkey = {}, + OPTvolume = {}, + OPTnumber = {}, + pages = {15 -- 17}, + month = {May}, + OPTnote = {}, + OPTannote = {} +} + + +@Article{Arya_1998, + author = {S. Arya and D. M. Mount and N. S. Netanyahu and R. Silverman and A. Y. Wu}, + title = {{A}n {O}ptimal {A}lgorithms for {A}pproximate {N}earest {N}eighbor {S}earcching in {F}ixed {D}imensions}, + journal = {Journal of the ACM}, + year = {1998}, + OPTkey = {}, + OPTvolume = {}, + volume = {45}, + pages = {891 -- 923}, + month = {}, + OPTnote = {}, + OPTannote = {} +} + + +@InProceedings{Arya_1993, + author = {S. Arya and D. M. Mount}, + title = {{A}pproximate nearest neigbor queries in fixed dimensions}, + year = {1993}, + OPTkey = {}, + booktitle = {Proceedings of the 4th ACM-SIAM Symposium on Discrete Algorithms}, + pages = {271 -- 280}, + OPTeditor = {}, + OPTvolume = {}, + OPTnumber = {}, + OPTseries = {}, + OPTaddress = {}, + OPTmonth = {}, + OPTorganization = {}, + OPTpublisher = {}, + OPTnote = {}, + OPTannote = {} +} + +@InProceedings{Surmann_2000, + author = {H. Surmann and A. Morales}, + title = {A five layer sensor architecture for autonomous robots in indoor environments}, + year = {2000}, + OPTkey = {}, + booktitle = {Proceedings of the International symposium on robotics and automation (ISRA '00)}, + pages = {533 -- 538}, + OPTeditor = {}, + OPTvolume = {}, + OPTnumber = {}, + OPTseries = {}, + address = {Monterrey, N.L., Mexico}, + month = {November}, + OPTorganization = {}, + OPTpublisher = {}, + OPTnote = {}, + OPTannote = {} +} + +@Article{Fukunaga_1973, + author = {K. Fukuanaga and L. D. Hostetler}, + title = {Optimization of $k$-nearest neighbor density estimation}, + journal = {IEEE Transaction on Information Theory IT-19}, + year = {1973}, + OPTkey = {}, + OPTvolume = {}, + OPTnumber = {}, + pages = {320 -- 326}, + OPTmonth = {}, + OPTnote = {}, + OPTannote = {} +} + + +@Article{Stetson_1968, + author = {K. A. Stetson}, + title = {Holographic surface contouring by limited depth of focus}, + journal = {Applied Optics}, + year = {1968}, + OPTkey = {}, + volume = {7}, + number = {5}, + pages = {987 -- 989}, + OPTmonth = {}, + OPTnote = {}, + OPTannote = {} +} + + +@PhdThesis{PhDGiel, + author = {D. Giel}, + title = {Hologram tomography for surface topometry}, + school = {Mathematisch-Naturwissenschaftliche Fakult{\"a}t der Heinrich-Heine- Universit{\"a}t D\"{u}sseldorf}, + year = {2003}, + OPTkey = {}, + OPTtype = {}, + OPTaddress = {}, + OPTmonth = {}, + OPTnote = {}, + OPTannote = {} +} + +@InProceedings{MRNV2004, + author = {D. Giel and S. Frey and A. Thelen and J. Bongartz and P. Hering and A. N\"{u}chter and H. Surmann and K. Lingemann and J. Hertzberg}, + title = {Ultra-fast Holographic Recording and Automatic 3D Scan Matching of Living Human Faces}, + OPTcrossref = {}, + OPTkey = {}, + booktitle = {Proceedings of the Scientific Workshop Medical Robotics, Navigation and Visualization (MRNV '04)}, + OPTpages = {to appaer}, + year = {2004}, + OPTeditor = {}, + OPTvolume = {}, + OPTnumber = {}, + OPTseries = {}, + address = {Remagen, Germany}, + OPTmonth = {}, + OPTorganization = {}, + OPTpublisher = {}, + OPTnote = {}, + OPTannote = {} +} + diff --git a/.svn/pristine/24/24ec7528b691cca37ad3a73888c787eaac36d75c.svn-base b/.svn/pristine/24/24ec7528b691cca37ad3a73888c787eaac36d75c.svn-base new file mode 100644 index 0000000..07bb7ee --- /dev/null +++ b/.svn/pristine/24/24ec7528b691cca37ad3a73888c787eaac36d75c.svn-base @@ -0,0 +1,105 @@ +# For more information, please see: http://software.sci.utah.edu +# +# The MIT License +# +# Copyright (c) 2007 +# Scientific Computing and Imaging Institute, University of Utah +# +# License for the specific language governing rights and limitations under +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +# DEALINGS IN THE SOFTWARE. + +# .cubin Parsing CMake Script +# Abe Stephens +# (c) 2007 Scientific Computing and Imaging Institute, University of Utah + +FILE(READ ${input_file} file_text) + +IF (${file_text} MATCHES ".+") + + # Remember, four backslashes is escaped to one backslash in the string. + STRING(REGEX REPLACE ";" "\\\\;" file_text ${file_text}) + STRING(REGEX REPLACE "\ncode" ";code" file_text ${file_text}) + + LIST(LENGTH file_text len) + + FOREACH(line ${file_text}) + + # Only look at "code { }" blocks. + IF(line MATCHES "^code") + + # Break into individual lines. + STRING(REGEX REPLACE "\n" ";" line ${line}) + + FOREACH(entry ${line}) + + # Extract kernel names. + IF (${entry} MATCHES "[^g]name = ([^ ]+)") + STRING(REGEX REPLACE ".* = ([^ ]+)" "\\1" entry ${entry}) + + # Check to see if the kernel name starts with "_" + SET(skip FALSE) + # IF (${entry} MATCHES "^_") + # Skip the rest of this block. + # MESSAGE("Skipping ${entry}") + # SET(skip TRUE) + # ELSE (${entry} MATCHES "^_") + MESSAGE("Kernel: ${entry}") + # ENDIF (${entry} MATCHES "^_") + + ENDIF(${entry} MATCHES "[^g]name = ([^ ]+)") + + # Skip the rest of the block if necessary + IF(NOT skip) + + # Registers + IF (${entry} MATCHES "reg = ([^ ]+)") + STRING(REGEX REPLACE ".* = ([^ ]+)" "\\1" entry ${entry}) + MESSAGE("Registers: ${entry}") + ENDIF(${entry} MATCHES "reg = ([^ ]+)") + + # Local memory + IF (${entry} MATCHES "lmem = ([^ ]+)") + STRING(REGEX REPLACE ".* = ([^ ]+)" "\\1" entry ${entry}) + MESSAGE("Local: ${entry}") + ENDIF(${entry} MATCHES "lmem = ([^ ]+)") + + # Shared memory + IF (${entry} MATCHES "smem = ([^ ]+)") + STRING(REGEX REPLACE ".* = ([^ ]+)" "\\1" entry ${entry}) + MESSAGE("Shared: ${entry}") + ENDIF(${entry} MATCHES "smem = ([^ ]+)") + + IF (${entry} MATCHES "^}") + MESSAGE("") + ENDIF(${entry} MATCHES "^}") + + ENDIF(NOT skip) + + + ENDFOREACH(entry) + + ENDIF(line MATCHES "^code") + + ENDFOREACH(line) + +ELSE() + # MESSAGE("FOUND NO DEPENDS") +ENDIF() + + diff --git a/.svn/pristine/25/256993007b4323112e53cd09286da85369b8daac.svn-base b/.svn/pristine/25/256993007b4323112e53cd09286da85369b8daac.svn-base new file mode 100644 index 0000000..aa10cf2 --- /dev/null +++ b/.svn/pristine/25/256993007b4323112e53cd09286da85369b8daac.svn-base @@ -0,0 +1,11 @@ +#ifndef _BARCODE_H +#define _BARCODE_H +#include "pnm.h" + +/* + detect barcode and add a string to the box (obj-pointer) +*/ + +int detect_barcode(job_t *job); + +#endif diff --git a/.svn/pristine/25/2583d93d0226f7295a1fa38d2cc456b702c903d2.svn-base b/.svn/pristine/25/2583d93d0226f7295a1fa38d2cc456b702c903d2.svn-base new file mode 100644 index 0000000..f859d07 --- /dev/null +++ b/.svn/pristine/25/2583d93d0226f7295a1fa38d2cc456b702c903d2.svn-base @@ -0,0 +1,44 @@ + + +int glui_img_radiobutton_1[] = { 14, 14, /* width, height */ + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 255,255,255, + 255,255,255, 255,255,255, 255,255,255, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 255,255,255, 255,255,255, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 255,255,255, 255,255,255, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 128,128,128, + 192,192,192, 192,192,192, 255,255,255, 255,255,255, 255,255,255, + 255,255,255, 192,192,192, 192,192,192, 255,255,255, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 128,128,128, 0, 0, 0, + 255,255,255, 255,255,255, 255,255,255, 255,255,255, 255,255,255, + 255,255,255, 192,192,192, 255,255,255, 192,192,192, 192,192,192, + 192,192,192, 128,128,128, 0, 0, 0, 255,255,255, 255,255,255, + 255,255,255, 0, 0, 0, 0, 0, 0, 255,255,255, 255,255,255, + 255,255,255, 192,192,192, 255,255,255, 192,192,192, 192,192,192, + 128,128,128, 0, 0, 0, 255,255,255, 255,255,255, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 255,255,255, 255,255,255, + 192,192,192, 255,255,255, 192,192,192, 192,192,192, 128,128,128, + 0, 0, 0, 255,255,255, 255,255,255, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 255,255,255, 255,255,255, 192,192,192, + 255,255,255, 192,192,192, 192,192,192, 128,128,128, 0, 0, 0, + 255,255,255, 255,255,255, 255,255,255, 0, 0, 0, 0, 0, 0, + 255,255,255, 255,255,255, 255,255,255, 192,192,192, 255,255,255, + 192,192,192, 192,192,192, 192,192,192, 128,128,128, 0, 0, 0, + 255,255,255, 255,255,255, 255,255,255, 255,255,255, 255,255,255, + 255,255,255, 192,192,192, 255,255,255, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 128,128,128, 0, 0, 0, 0, 0, 0, + 255,255,255, 255,255,255, 255,255,255, 255,255,255, 0, 0, 0, + 0, 0, 0, 255,255,255, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 128,128,128, 128,128,128, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 128,128,128, 128,128,128, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 128,128,128, 128,128,128, + 128,128,128, 128,128,128, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, +}; diff --git a/.svn/pristine/25/25a2e0536737b73946d07744f40edce65461baff.svn-base b/.svn/pristine/25/25a2e0536737b73946d07744f40edce65461baff.svn-base new file mode 100644 index 0000000..1fc51f9 --- /dev/null +++ b/.svn/pristine/25/25a2e0536737b73946d07744f40edce65461baff.svn-base @@ -0,0 +1,32 @@ +/** @file + * @brief Definition of the ICP error function minimization + * @author Andreas Nuechter. Jacobs University Bremen gGmbH, Germany + */ + +#ifndef __ICP6DLUMQUAT_H__ +#define __ICP6DLUMQUAT_H__ + +#include "icp6Dminimizer.h" + +/** + * @brief Implementation of the ICP error function minimization via singular value decomposition + */ +class icp6D_LUMQUAT : public icp6Dminimizer +{ +public: + /** + * Constructor + */ + icp6D_LUMQUAT(bool quiet = false) : icp6Dminimizer(quiet) {}; + /** + * Destructor + */ + virtual ~icp6D_LUMQUAT() {}; + + double Point_Point_Align(const vector& Pairs, double *alignxf, + const double centroid_m[3], const double centroid_d[3]); + + inline int getAlgorithmID() { return 8; }; +}; + +#endif diff --git a/.svn/pristine/25/25bca7e9ce1ce1979de541eb79023f377f84b1fc.svn-base b/.svn/pristine/25/25bca7e9ce1ce1979de541eb79023f377f84b1fc.svn-base new file mode 100644 index 0000000..cebd81f --- /dev/null +++ b/.svn/pristine/25/25bca7e9ce1ce1979de541eb79023f377f84b1fc.svn-base @@ -0,0 +1,90 @@ +README for 0.10.3 cvBlob. + + +1. DOWNLOAD LATEST SOURCE + +You need Subversion ( http://subversion.tigris.org ). + +Read only checkout: + + svn checkout http://cvblob.googlecode.com/svn/trunk/ cvblob-read-only + + +2. DEPENDENCIES + +In order to compile cvBlob you need the following: + + * CMAKE ( http://www.cmake.org ) + * OpenCV ( http://opencvlibrary.sourceforge.net ) + +2.1 Instalation of dependencies in Debian type SO (Ubuntu,...) using apt: + +If you are in a Debian style distribution (Ubuntu, for example) you can do something +like this: + + sudo aptitude install cmake libcv4 libcv-dev libcvaux4 + +2.2 Instalation of dependencies in SuSE using Yast + +Type this: + + su -c "yast -i libopencv1 opencv opencv-debuginfo opencv-debugsource opencv-devel opencv-python cmake cmake-gui" + + +3. COMPILING AND INSTALLING + +In Linux, if you have unpacked the source in $CVBLOB, enter in a console: + + cd $CVBLOB + cmake . + make + sudo make install + +In Windows it must be as easy as in Linux (changing "make" for the equivalent in your compiler). +If problems, please read: + http://www.cmake.org/HTML/RunningCMake.html + +3.1 OpenCV path + +You can tell CMake where OpenCV is installed, in case it can't find it, using the "OpenCV_DIR" variable: + + cmake . -DOpenCV_DIR= + +3.2 Installation path + +To change the destination path for the installation, set "CMAKE_INSTALL_PREFIX" variable: + + cmake . -DCMAKE_INSTALL_PREFIX= + +3.3 Problems + +Latest information about compiling: + http://code.google.com/p/cvblob/wiki/HowToCompile + + +4. INFORMATION + +The official home page of cvBlob is: + http://cvblob.googlecode.com + +Downloads: + http://code.google.com/p/cvblob/downloads/list + +Documentation: + http://code.google.com/p/cvblob/wiki/WikiIndex?tm=6 + +Bug reports: + http://code.google.com/p/cvblob/issues/list + + +5. MAIN AUTHOR + +Comments, suggestions and, why not, donations (PayPal) to: + + Crist贸bal Carnero Li帽谩n E-mail: grendel.ccl@gmail.com + + +6. CONTRIBUTORS + + Stefan Gachter Web page: http://gachter.name + Kouichi Nishino diff --git a/.svn/pristine/26/262c460ce050e03677d57546553a7d867606026a.svn-base b/.svn/pristine/26/262c460ce050e03677d57546553a7d867606026a.svn-base new file mode 100644 index 0000000..13c9f84 --- /dev/null +++ b/.svn/pristine/26/262c460ce050e03677d57546553a7d867606026a.svn-base @@ -0,0 +1,126 @@ +#ifndef __GRIDWRITER_H_ +#define __GRIDWRITER_H_ + +#include +#include + +#include "grid/grid.h" +#include +using std::string; + +/** + * The class represents the baseclass for all writers. + * Writers are used by the grid-class for writing the + * internal gridPoint-array to a file. + * Writers for a specific format must inherit this class. + * + * Furthermore it provides static methods for creating writers + * for each format. + * + * @author Andre Schemschat, Sebastian Stock, Uwe Hebbelmann + * @date 20.02.08 + */ +class gridWriter +{ + protected: + /** The referenz to the used stream */ + std::ofstream stream; + + /** The filename of the file to be opened*/ + std::string filename; + public: + /** @brief CTor */ + gridWriter(std::string file); + + /** @brief Copy-CTor */ + gridWriter(std::ofstream &stream); + + /** @brief DTor */ + virtual ~gridWriter(); + + /** @brief Method to write the grid */ + virtual void write(const grid& grid) = 0; +}; + +/** + * Class for writing the grid as a PPM to a file. + * The PPM is in a greyscaled format with 100 tones. + * + * @author Andre Schemschat, Uwe Hebbelmann, Sebastian Stock + * @date 20.2.08 + */ +class ppmWriter : public gridWriter +{ + public: + /** @brief CTor */ + ppmWriter(std::string file); + + /** @brief CTor */ + ppmWriter(std::ofstream &stream); + + /** @brief Method to write the grid */ + virtual void write(const grid& grid); +}; + +/** + * Class for writing the grid in the parcel-file-format + * (this writer is used to store each parcel during the convert) + * + * @author Sebastian Stock, Andre Schemschatt, Uwe Hebbelmann + * @date 20.2.08 + */ +class parcelWriter : public gridWriter +{ + public: + /** @brief CTor */ + parcelWriter(std::string file); + + /** @brief CTor */ + parcelWriter(std::ofstream &stream); + + /** @brief Method to write the grid */ + virtual void write(const grid& grid); +}; + +/** + * Class for writing the grid in the gnuplot-file-format + * + * @author Sebastian Stock, Andre Schemschatt, Uwe Hebbelmann + * @date 20.2.08 + */ +class gnuplotWriter : public gridWriter +{ + public: + /** @brief CTor */ + gnuplotWriter(std::string file); + + /** @brief CTor */ + gnuplotWriter(std::ofstream &stream); + + /** @brief Writemethod for gnuplot */ + virtual void write(const grid& grid); +}; + +/** + * Class for writing all parcels to one world map (own format) + * @author Sebastian Stock, Andre Schemschatt, Uwe Hebbelmann + * @date 20.2.08 + */ +class worldWriter : public gridWriter +{ + public: + /** @brief CTor */ + worldWriter(std::string file, long minX, long maxX, + long minZ, long maxZ, int resolution, + long vpX, long vpZ); + + /** @brief CTor */ + worldWriter(std::ofstream &stream, long minX, long maxX, + long minZ, long maxZ, int resolution, + long vpX, long vpZ); + + /** @brief Writemethod for the world map */ + virtual void write(const grid& grid); +}; + +#endif diff --git a/.svn/pristine/26/2642517f45aad824c1dfdf7c4f1100261fb8d4e8.svn-base b/.svn/pristine/26/2642517f45aad824c1dfdf7c4f1100261fb8d4e8.svn-base new file mode 100644 index 0000000..fcb84cb --- /dev/null +++ b/.svn/pristine/26/2642517f45aad824c1dfdf7c4f1100261fb8d4e8.svn-base @@ -0,0 +1,391 @@ +/** + * @file plane3d.cc + * + * @auhtor Remus Claudiu Dumitru + * @date 15 Apr 2012 + * + */ + +//============================================================================== +// Includes +//============================================================================== +#include "model/labeledPlane3d.h" +#include "model/util.h" + +#include + +#include +#include +#include +#include +#include +using namespace std; + +//============================================================================== +// Static member initializations +//============================================================================== +const std::string model::LabeledPlane3d::RED = "180 0 0"; +const std::string model::LabeledPlane3d::GREEN = "0 180 0"; +const std::string model::LabeledPlane3d::BLUE = "0 0 180"; +const std::string model::LabeledPlane3d::WHITE = "255 255 255"; + +const double model::LabeledPlane3d::LINE_EPSILON = 0.2; + +const double model::LabeledPlane3d::SOBEL_SCALE = 1.0; +const double model::LabeledPlane3d::SOBEL_DELTA = 0.0; +const int model::LabeledPlane3d::SOBEL_KERNEL = 3; + +const double model::LabeledPlane3d::CANNY_THRESH1 = 40.0; +const double model::LabeledPlane3d::CANNY_THRESH2 = 120.0; + +const double model::LabeledPlane3d::HOUGH_RHO = 1.0; +const double model::LabeledPlane3d::HOUGH_THETA = CV_PI / 180.0; +const int model::LabeledPlane3d::HOUGH_THRESH = 80; +const double model::LabeledPlane3d::HOUGH_MIN_LINE_LEN = 15.0; + +const double model::LabeledPlane3d::MIN_EMPTY_AREA = 0.67; +const double model::LabeledPlane3d::MIN_TOTAL_AREA = 0.0075; +const double model::LabeledPlane3d::MAX_TOTAL_AREA = 0.400; + +//============================================================================== +// Class implementation +//============================================================================== +model::LabeledPlane3d::LabeledPlane3d() : Plane3d() {} + +model::LabeledPlane3d::LabeledPlane3d(const Point3d& pt, const Vector3d& normal) : + Plane3d(pt, normal) +{ + +} + +model::LabeledPlane3d::LabeledPlane3d(const Point3d& pt, const Vector3d& normal, const std::vector& hull) : + Plane3d(pt, normal, hull) +{} + +model::LabeledPlane3d::LabeledPlane3d(const LabeledPlane3d& other) : Plane3d(other) { + this->patches= other.patches; + this->depthMap = other.depthMap; + this->depthImg = other.depthImg; + this->correctedDepthImg = other.correctedDepthImg; + this->depthMapDistances = other.depthMapDistances; +} + +model::LabeledPlane3d::~LabeledPlane3d() {} + +model::LabeledPlane3d& model::LabeledPlane3d::operator=(const LabeledPlane3d& other) { + if (this != &other) { + Plane3d::operator =(other); + this->patches= other.patches; + this->depthMap = other.depthMap; + this->depthImg = other.depthImg; + this->correctedDepthImg = other.correctedDepthImg; + this->depthMapDistances = other.depthMapDistances; + } + + return *this; +} + +void model::LabeledPlane3d::detectEdges(cv::Mat& canny, cv::Mat& hSobel, cv::Mat& vSobel, cv::Mat& combined) const { + int imgHeight = static_cast(this->depthMap.size()); + int imgWidth = static_cast(this->depthMap.front().size()); + + if (imgHeight == 0 || imgWidth == 0) { + throw runtime_error("please initialize the patches and depth map for labeled plane"); + } + + // apply Canny edge detection so we can see the lines contained in the image + cv::Canny(this->depthImg, canny, CANNY_THRESH1, CANNY_THRESH2); + + // apply Sobel on same image so we get better defined horizontal and vertical lines + cv::Sobel(canny, hSobel, CV_8UC1, 0, 1, SOBEL_KERNEL, SOBEL_SCALE, SOBEL_DELTA, cv::BORDER_DEFAULT); + cv::Sobel(canny, vSobel, CV_8UC1, 1, 0, SOBEL_KERNEL, SOBEL_SCALE, SOBEL_DELTA, cv::BORDER_DEFAULT); + + // combine all of them for even better edges + cv::addWeighted(canny, 0.5, hSobel, 0.5, 0, combined); + cv::threshold(combined, combined, 1, MAX_IMG_VAL, CV_8UC1); + cv::addWeighted(combined, 0.5, vSobel, 0.5, 0, combined); + cv::threshold(combined, combined, 1, MAX_IMG_VAL, CV_8UC1); + + cv::imwrite("./img/edgeCanny.png", canny); + cv::imwrite("./img/edgeSobelHoriz.png", hSobel); + cv::imwrite("./img/edgeSobelVert.png", vSobel); + cv::imwrite("./img/edgeCombined.png", combined); +} + +void model::LabeledPlane3d::computeLines(std::vector& verticalResult, std::vector& horizontalResult) const { + + if (this->depthMap.size() != this->patches.size() || + this->depthMap.front().size() != this->patches.front().size()) + { + throw runtime_error("depth map and patch matrix must match in sizes"); + } + + int imgHeight = static_cast(this->depthMap.size()); + int imgWidth = static_cast(this->depthMap.front().size()); + + if (imgHeight == 0 || imgWidth == 0) { + throw runtime_error("please initialize the patches and depth map for labeled plane"); + } + + // clear the output + verticalResult.clear(); + horizontalResult.clear(); + + // compute the Canny edges normally, and using sobel on x and y + cv::Mat canny, hSobel, vSobel, combined; + this->detectEdges(canny, hSobel, vSobel, combined); + + // detect all the proper lines from the image + vector lines; + cv::HoughLinesP(combined, lines, HOUGH_RHO, HOUGH_THETA, HOUGH_THRESH, HOUGH_MIN_LINE_LEN); + + // convert to color image so we can draw some colored lines on it + cv::cvtColor(combined, combined, CV_GRAY2BGR, 3); + cv::Mat imgLines = combined.clone(); + cv::Mat imgFinalLines = combined.clone(); + + // filter out the vertical and the horizontal lines + // XXX use sets so that the numbers are ordered automatically + set horizontalSet, verticalSet; + int curr; + + for (vector::iterator it = lines.begin(); it != lines.end(); ++it) { + int dX = it->val[2] - it->val[0]; + int dY = it->val[3] - it->val[1]; + + double angle = atan2(static_cast(dY), static_cast(dX)); + + if (((angle < +M_PI_2 + LINE_EPSILON) && (angle > +M_PI_2 - LINE_EPSILON)) || + ((angle < -M_PI_2 + LINE_EPSILON) && (angle > -M_PI_2 - LINE_EPSILON))) + { + // detect and add the vertical lines + curr = static_cast(round((it->val[2] + it->val[0]) / 2.0)); + verticalSet.insert(curr); + cv::line(imgLines, cv::Point(curr, 0), cv::Point(curr, imgLines.rows-1), cv::Scalar(0, 0, MAX_IMG_VAL), 1); + + } else if (((angle < +0.0 + LINE_EPSILON) && (angle > +0.0 - LINE_EPSILON)) || + ((angle < +M_PI + LINE_EPSILON) && (angle > +M_PI - LINE_EPSILON)) || + ((angle < -M_PI + LINE_EPSILON) && (angle > -M_PI - LINE_EPSILON))) + { + // detect and add the horizontal lines + curr = static_cast(round((it->val[3] + it->val[1]) / 2.0)); + horizontalSet.insert(curr); + cv::line(imgLines, cv::Point(0, curr), cv::Point(imgLines.cols-1, curr), cv::Scalar(MAX_IMG_VAL, 0, 0), 1); + } + } + + // insert the edges as lines + horizontalSet.insert(0); + horizontalSet.insert(imgHeight - 1); + cv::line(imgLines, cv::Point(0, 0), cv::Point(imgLines.cols-1, 0), cv::Scalar(MAX_IMG_VAL, 0, 0), 1); + cv::line(imgLines, cv::Point(0, imgHeight - 1), cv::Point(imgLines.cols-1, imgHeight - 1), cv::Scalar(MAX_IMG_VAL, 0, 0), 1); + + verticalSet.insert(0); + verticalSet.insert(imgWidth - 1); + cv::line(imgLines, cv::Point(0, 0), cv::Point(0, imgLines.rows-1), cv::Scalar(0, 0, MAX_IMG_VAL), 1); + cv::line(imgLines, cv::Point(imgWidth - 1, 0), cv::Point(imgWidth - 1, imgLines.rows-1), cv::Scalar(0, 0, MAX_IMG_VAL), 1); + + cv::imwrite("./img/edgeLines.png", imgLines); + if (!quiet) cout << "** Total lines: " << verticalSet.size() << " vertical, " << horizontalSet.size() << " horizontal" << endl; + + horizontalResult.assign(horizontalSet.begin(), horizontalSet.end()); + verticalResult.assign(verticalSet.begin(), verticalSet.end()); +} + +void model::LabeledPlane3d::computeOpeningCandidates(std::vector& result) const { + if (!quiet) cout << endl << "== Computing opening candidates for surface centered at " << this->pt << endl; + + // make sure the result is empty + result.clear(); + + if (this->depthMap.size() != this->patches.size() || + this->depthMap.front().size() != this->patches.front().size()) + { + throw runtime_error("depth map and patch matrix must match in sizes"); + } + + int imgHeight = static_cast(this->depthMap.size()); + int imgWidth = static_cast(this->depthMap.front().size()); + + if (imgHeight == 0 || imgWidth == 0) { + throw runtime_error("please initialize the patches and depth map for labeled plane"); + } + + // convert the sets to vectors + vector horizontal, vertical; + this->computeLines(vertical, horizontal); + + // we require the total wall area to discard a few small candidates + double wCentimetersWall = this->patches[0][0].first.distance(this->patches[0][imgWidth - 1].first); + double hCentimetersWall = this->patches[0][0].first.distance(this->patches[imgHeight - 1][0].first); + double wallArea = wCentimetersWall * hCentimetersWall; + + // put temporary candidates in here + std::vector candidates; + + // count the number of discarded small planes + unsigned int discarded = 0; + + // there is no other way of determining all the rectangles in the image + // u - upper, l - lower, h - horizontal, v - vertical + for (vector::iterator y1 = horizontal.begin(); y1 != horizontal.end() - 1; ++y1) { + for (vector::iterator y2 = y1 + 1; y2 != horizontal.end(); ++y2) { + for (vector::iterator x1 = vertical.begin(); x1 != vertical.end() - 1; ++x1) { + for (vector::iterator x2 = x1 + 1; x2 != vertical.end(); ++x2) { + + // do not add really small candidates that are smaller than a certain percentage of the whole wall + double wCentiMeters = this->patches[0][*x2].first.distance(this->patches[0][*x1].first); + double hCentiMeters = this->patches[*y2][0].first.distance(this->patches[*y1][0].first); + double area = wCentiMeters * hCentiMeters; + + if (area < MIN_TOTAL_AREA * wallArea || area > MAX_TOTAL_AREA * wallArea) { + discarded++; + continue; + } + + // create edges for candidate opening + int tempEdges[4] = {*y1, *y2, *x1, *x2}; + vector edges(tempEdges, tempEdges + 4); + + // compute the hull + vector hull; + hull.push_back(this->patches[*y1][*x1].first); + hull.push_back(this->patches[*y1][*x2].first); + hull.push_back(this->patches[*y2][*x2].first); + hull.push_back(this->patches[*y2][*x1].first); + + // compute the normal application point + Point3d pt(0.0, 0.0, 0.0); + for (vector::iterator it = hull.begin(); it != hull.end(); ++it) { + pt += *it; + } + pt /= hull.size(); + + CandidateOpening candidate(pt, this->normal, hull, vector(), edges); + candidate.normal = candidate.computeAverageNormal(); + candidates.push_back(candidate); + } + } + } + } + + if (!quiet) cout << "** Total opening candidates: " << candidates.size() << endl; + if (!quiet) cout << "** Discarded openings relative size to wall: " << discarded << endl; + discarded = 0; + + // determine the features of each candidate opening + for (vector::iterator it = candidates.begin(); it < candidates.end(); ++it) { + int y1 = it->edges[0]; + int y2 = it->edges[1]; + int x1 = it->edges[2]; + int x2 = it->edges[3]; + + if (y1 > y2 || x1 > x2) { + throw runtime_error("upper coordinates need to be smaller than the lower ones (candidate opening)"); + } + + int w = abs(x2 - x1); + int h = abs(y2 - y1); + + // first feature, the area of the opening + double wCentiMeters = this->patches[0][x2].first.distance(this->patches[0][x1].first); + double hCentiMeters = this->patches[y2][0].first.distance(this->patches[y1][0].first); + double area = wCentiMeters * hCentiMeters; + it->features.push_back(static_cast(area)); + + // second feature, w/h + it->features.push_back(static_cast(w) / h); + + // third feature, w/W + it->features.push_back(static_cast(w) / imgWidth); + + // fourth feature, h/H + it->features.push_back(static_cast(h) / imgHeight); + + // distance from every edge + // upper horizontal line + it->features.push_back(this->patches[y1][0].first.distance(this->patches.front()[0].first)); + // lower horizontal line + it->features.push_back(this->patches[y2][0].first.distance(this->patches.back()[0].first)); + // upper vertical line + it->features.push_back(this->patches[0][x1].first.distance(this->patches[0].front().first)); + // lower vertical line + it->features.push_back(this->patches[0][x2].first.distance(this->patches[0].back().first)); + + // compute the RMS of the plane fit residual for this particular rectangle + // in the same time compute the area of each label + int empty = 0, occupied = 0, occluded = 0; + + // TODO figure out how to compute the residual + double sqSum = 0.0; + for (int i = y1; i < y2; ++i) { + for (int j = x1; j < x2; ++j) { + // TODO should be computed accordingly + double temp = 0.0; + + switch (this->patches[i][j].second) { + case EMPTY: + empty++; + break; + case OCCUPIED: + occupied++; + break; + case OCCLUDED: + occluded++; + break; + default: + throw runtime_error("default branch taken while computing features for opening candidate"); + break; + } + sqSum += pow(temp, 2.0); + } + } + + // add the RMS plane fit + int totalCount = w * h; + it->features.push_back(sqrt(sqSum / totalCount)); + + // discard a few more candidates + if ((static_cast(empty) / totalCount) < MIN_EMPTY_AREA) { + discarded++; + continue; + } + + // add the area of each label, empty, occupied, occluded + it->features.push_back(static_cast(empty) / totalCount); + it->features.push_back(static_cast(occupied) / totalCount); + it->features.push_back(static_cast(occluded) / totalCount); + + // determine how many interior rectangles this candidate contains + // compute the number of interior inverted U-shapes as well + // start counting from 2 as we include the edges as well + int vCount = 2, hCount = 2; + for (vector::iterator jt = horizontal.begin(); jt != horizontal.end(); ++jt) { + if (*jt > y1 && *jt < y2) { + hCount++; + } + } + + for (vector::iterator jt = vertical.begin(); jt != vertical.end(); ++jt) { + if (*jt > x1 && *jt < x2) { + vCount++; + } + } + + // add the number of rectangles contained inside + it->features.push_back((hCount * (hCount - 1) / 2.0) * (vCount * (vCount - 1) / 2.0)); + + // add the number of interior inverted U-shapes + if (y2 == imgHeight - 1) { + it->features.push_back((hCount - 1) * (vCount * (vCount - 1) / 2.0)); + } else { + it->features.push_back(0.0); + } + + // add this current candidate to the final result + result.push_back(*it); + } + + if (!quiet) cout << "** Discarded openings due to small empty area: " << discarded << endl; + if (!quiet) cout << "** Done computing features for all opening candidates" << endl; +} diff --git a/.svn/pristine/26/266314f603cf18978cb6caed1562f09a116a9d8c.svn-base b/.svn/pristine/26/266314f603cf18978cb6caed1562f09a116a9d8c.svn-base new file mode 100644 index 0000000..d339451 --- /dev/null +++ b/.svn/pristine/26/266314f603cf18978cb6caed1562f09a116a9d8c.svn-base @@ -0,0 +1,451 @@ +/* + * show_menu implementation + * + * Copyright (C) Kai Lingemann, Andreas Nuechter + * + * Released under the GPL version 3. + * + */ + +/** + * @file + * @brief Functions for the menu panels of the viewer software + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ +#include "show/colormanager.h" + +// GUI variables + +GLUI *glui1, ///< pointer to the glui window(s) + *glui2; ///< pointer to the glui window(s) + +/** GLUI spinner for the fog */ +GLUI_Spinner *fog_spinner; + +/** GLUI spinner for the point size */ +GLUI_Spinner *ps_spinner; + +/** GLUI spinner for the current angle */ +GLUI_Spinner *cangle_spinner; +/** GLUI spinner for the current angle */ +GLUI_Spinner *pzoom_spinner; +/** GLUI spinner for the factor for the image size */ +GLUI_Spinner *image_spinner; +/** GLUI_Spinner for the depth to select groups of points */ +GLUI_Spinner *depth_spinner; +GLUI_Spinner *brushsize_spinner; +GLUI_Spinner *frame_spinner; +GLUI_Spinner *fps_spinner; +GLUI_Spinner *farplane_spinner; +GLUI_Spinner *nearplane_spinner; +GLUI_Spinner *lod_spinner; + +int window_id_menu1, ///< menue window ids + window_id_menu2; ///< menue window ids + +/** User IDs for callbacks */ +#define BOX_ID 201 +/** User IDs for callbacks */ +#define ENABLE_ID 300 +/** User IDs for callbacks */ +#define DISABLE_ID 301 +/** User IDs for callbacks */ +#define SHOW_ID 302 +/** User IDs for callbacks */ +#define HIDE_ID 303 + +/** Pointer to the panels */ +GLUI_Panel *ground_panel; +/** Pointer to the panels */ +GLUI_Panel *points_panel; +/** Pointer to the panels */ +GLUI_Panel *wireframe_panel; +/** Pointer to the panels */ +GLUI_Panel *path_panel; +/** Pointer to the panels */ +GLUI_Panel *pose_panel; +/** Pointer to the panels */ +GLUI_Panel *selection_panel; +/** Pointer to the panels */ +GLUI_Panel *color_panel; +/** Pointer to the panels */ +GLUI_Panel *camera_panel; +/** Pointer to the panels */ +GLUI_Panel *nav_panel; +/** Pointer to the panels */ +GLUI_Panel *mode_panel; +/** Pointer to the panels */ +GLUI_Panel *settings_panel; +/** Pointer to the panels */ +GLUI_Panel *advanced_panel; +/** Pointer to the button */ +GLUI_Button *button1; +/** Pointer to the edit text box*/ +GLUI_EditText *path_filename_edit; +/** Pointer to the edit text box*/ +GLUI_EditText *pose_filename_edit; +/** Pointer to the edit text box*/ +GLUI_EditText *selection_filename_edit; + +/** Pointer to the rotation button */ +GLUI_Rotation *rotButton; + +/** used for GLUI menue */ +float obj_pos_button[3]; +/** used for GLUI menue */ +GLfloat view_rotate_button[16]; +/** used for GLUI menue */ +GLfloat obj_pos_button_old[3]; + +/** used for GLUI menue */ +GLfloat X_button; +/** used for GLUI menue */ +GLfloat Y_button; +/** used for GLUI menue */ +GLfloat Z_button; +/** GLUI spinner for choosing the camera */ +GLUI_Spinner *cam_spinner; +/** GLUI spinner for choosing the animation delay */ +GLUI_Spinner *anim_spinner; +/** Panel for the camera controls **/ +GLUI_Panel *cam_panel; +/** ListBox for choosing which value to map to a color */ +GLUI_Listbox *value_listbox; +/** ListBox for choosing which color map to use */ +GLUI_Listbox *colormap_listbox; +GLUI_Spinner *mincol_spinner; +GLUI_Spinner *maxcol_spinner; + +/** Checkboxes for changing point display mode **/ +GLUI_Checkbox *always_box; +GLUI_Checkbox *never_box; +/** Checkbox for changing interpolation mode **/ +GLUI_Checkbox *interpol_box; + +/** + * Generate the menu for the application. + * It consists of control and selection menus. + */ +void newMenu() +{ + /*** Create the bottom subwindow ***/ + glui2 = GLUI_Master.create_glui("3D_Viewer - Controls"); + window_id_menu2 = glui2->get_glut_window_id(); + glutSetWindow(window_id_menu2); + + glutPositionWindow(START_X, START_Y + START_HEIGHT + 65); + glutSetWindow(window_id); + glui2->set_main_gfx_window( window_id ); + + settings_panel = glui2->add_panel("Settings: "); + + cangle_spinner = glui2->add_spinner_to_panel(settings_panel, "Apex Angle : ", GLUI_SPINNER_FLOAT, &cangle); + cangle_spinner->set_float_limits( 1.0, 180.0 ); + cangle_spinner->set_speed( 20.0 ); + cangle_spinner->set_float_val(60.0); + cangle_spinner->set_alignment( GLUI_ALIGN_RIGHT ); + + pzoom_spinner = glui2->add_spinner_to_panel(settings_panel, "Parallel Zoom :", GLUI_SPINNER_FLOAT, &pzoom); + pzoom_spinner->set_float_limits( 10.0, 50000.0 ); + pzoom_spinner->set_speed( 5.0 ); + pzoom_spinner->set_float_val(2000.0); + pzoom_spinner->set_alignment( GLUI_ALIGN_RIGHT ); + pzoom_spinner->disable(); + + glui2->add_column( true ); + + mode_panel = glui2->add_panel("Mode: "); + + /****** Top view *****/ + glui2->add_button_to_panel(mode_panel, "Top view", 0, callTopView )->set_alignment( GLUI_ALIGN_CENTER ); + + + /****** Reset button *****/ + glui2->add_button_to_panel(mode_panel, "Reset position", 0, resetView )->set_alignment( GLUI_ALIGN_CENTER ); + glui2->add_column( true ); + + /****** Add Camera View *****/ + + + camera_panel = glui2->add_panel("Camera: "); + cam_spinner = glui2->add_spinner_to_panel(camera_panel, "Choose Camera", GLUI_SPINNER_INT, &cam_choice); + cam_spinner->set_int_limits( 0, 0 ); + cam_spinner->set_speed( 1 ); + cam_spinner->set_alignment( GLUI_ALIGN_LEFT ); + + glui2->add_button_to_panel(camera_panel, "Add Camera", 1, callAddCamera )->set_alignment( GLUI_ALIGN_CENTER ); + glui2->add_button_to_panel(camera_panel, "Delete Camera", 0, callDeleteCamera )->set_alignment( GLUI_ALIGN_CENTER ); + + /******* Other navigation controls**********/ + glui2->add_column(true); + + nav_panel = glui2->add_panel("Navigation: "); + rotButton = glui2->add_rotation_to_panel(nav_panel, "Rotation", view_rotate_button, -1, update_view_rotate); + + glui2->add_column_to_panel(nav_panel, true ); + glui2->add_translation_to_panel(nav_panel, "Move XY", GLUI_TRANSLATION_XY, + obj_pos_button, -1, update_view_translation); + + glui2->add_column_to_panel(nav_panel, false ); + glui2->add_translation_to_panel(nav_panel, "Move X", GLUI_TRANSLATION_X, + &obj_pos_button[0], -1, update_view_translation); + + glui2->add_column_to_panel(nav_panel, false ); + glui2->add_translation_to_panel(nav_panel, "Move Y", GLUI_TRANSLATION_Y, + &obj_pos_button[1], -1, update_view_translation); + + glui2->add_column_to_panel(nav_panel, false ); + glui2->add_translation_to_panel(nav_panel, "Move Z", GLUI_TRANSLATION_Z, + &obj_pos_button[2], -1, update_view_translation); + + glui2->add_column_to_panel(nav_panel, false); + glui2->add_checkbox_to_panel(nav_panel, "MouseNav", &cameraNavMouseMode ); + + static int dummy4; + always_box = glui2->add_checkbox_to_panel(nav_panel, "Always all Points", &dummy4, 0, &changePointMode); + glui2->set_glutMouseFunc(CallBackMouseFuncMoving); + static int dummy5 = 1; + never_box = glui2->add_checkbox_to_panel(nav_panel, "Always reduce Points", &dummy5, 1, &changePointMode ); + + /*** Create the right subwindow ***/ + glui1 = GLUI_Master.create_glui("3D_Viewer - Selection"); + window_id_menu1 = glui1->get_glut_window_id(); + glutSetWindow(window_id_menu1); + glutPositionWindow(START_X + START_WIDTH + 50, START_Y + 30); + glutSetWindow(window_id); + glui1->set_main_gfx_window( window_id ); + + glui1->add_checkbox( "Draw Points", &show_points ); + glui1->add_checkbox( "Draw Camera", &show_cameras); + glui1->add_checkbox( "Draw Path", &show_path); + ps_spinner = glui1->add_spinner( "Point Size:", GLUI_SPINNER_FLOAT, &pointsize); + ps_spinner->set_float_limits( 0.0000001, 10.0 ); + ps_spinner->set_speed( 25.0 ); + ps_spinner->set_float_val(pointsize); + ps_spinner->set_alignment( GLUI_ALIGN_LEFT ); + + + /**** Fog Panel *****/ + + GLUI_Panel *fogt_panel = glui1->add_rollout("Fog :", false ); + fogt_panel ->set_alignment( GLUI_ALIGN_LEFT ); + GLUI_RadioGroup *fogt = glui1-> add_radiogroup_to_panel( fogt_panel, &show_fog ); + glui1->add_radiobutton_to_group( fogt, "No Fog" ); + glui1->add_radiobutton_to_group( fogt, "Fog Exp" ); + glui1->add_radiobutton_to_group( fogt, "Fog Exp2" ); + glui1->add_radiobutton_to_group( fogt, "Fog Linear" ); + glui1->add_radiobutton_to_group( fogt, "inverted Fog Exp" ); + glui1->add_radiobutton_to_group( fogt, "inverted Fog Exp2" ); + glui1->add_radiobutton_to_group( fogt, "inverted Fog Linear" ); + + + + + fog_spinner = glui1->add_spinner( "Fog Density:", GLUI_SPINNER_FLOAT, &fogDensity); + fog_spinner->set_float_limits( 0.0, 1.0 ); + fog_spinner->set_speed( 0.5 ); + fog_spinner->set_float_val(0.001); + fog_spinner->set_alignment( GLUI_ALIGN_LEFT ); + + + /****** Color Controls *****/ + color_panel = glui1->add_rollout("Color :", false ); + color_panel ->set_alignment( GLUI_ALIGN_LEFT ); + + GLUI_Panel *color_ro = glui1->add_rollout_to_panel(color_panel, "Color values:", false); + color_ro->set_alignment(GLUI_ALIGN_LEFT); + + GLUI_RadioGroup *color_rog = glui1->add_radiogroup_to_panel( color_ro, &listboxColorVal, 0, &mapColorToValue ); + glui1->add_radiobutton_to_group( color_rog, "height"); + GLUI_RadioButton *rbrefl = glui1->add_radiobutton_to_group( color_rog, "reflectance"); + GLUI_RadioButton *rbampl = glui1->add_radiobutton_to_group( color_rog, "amplitude"); + GLUI_RadioButton *rbdevi = glui1->add_radiobutton_to_group( color_rog, "deviation"); + GLUI_RadioButton *rbtype = glui1->add_radiobutton_to_group( color_rog, "type"); + //if (!(types & PointType::USE_REFLECTANCE)) rbrefl->disable(); + //if (!(types & PointType::USE_AMPLITUDE)) rbampl->disable(); + //if (!(types & PointType::USE_DEVIATION)) rbdevi->disable(); + //if (!(types & PointType::USE_TYPE)) rbtype->disable(); + if (!(pointtype.hasReflectance())) rbrefl->disable(); + if (!(pointtype.hasAmplitude())) rbampl->disable(); + if (!(pointtype.hasDeviation())) rbdevi->disable(); + if (!(pointtype.hasType())) rbtype->disable(); + + GLUI_Panel *colorm_ro = glui1->add_rollout_to_panel(color_panel, "Colormap:", false); + colorm_ro->set_alignment(GLUI_ALIGN_LEFT); + + GLUI_RadioGroup *colorm_rog = glui1->add_radiogroup_to_panel(colorm_ro, &listboxColorMapVal, 0, &changeColorMap); + glui1->add_radiobutton_to_group(colorm_rog, "Solid"); + glui1->add_radiobutton_to_group(colorm_rog, "Grey"); + glui1->add_radiobutton_to_group(colorm_rog, "HSV"); + glui1->add_radiobutton_to_group(colorm_rog, "Jet"); + glui1->add_radiobutton_to_group(colorm_rog, "Hot"); + glui1->add_radiobutton_to_group(colorm_rog, "Rand"); + glui1->add_radiobutton_to_group(colorm_rog, "SHSV"); + + GLUI_Panel *scans_color = glui1->add_rollout_to_panel(color_panel, "Color type:", false); + scans_color->set_alignment(GLUI_ALIGN_LEFT); + GLUI_RadioGroup *scans_colored = glui1->add_radiogroup_to_panel(scans_color, &colorScanVal, 0, &setScansColored); + glui1->add_radiobutton_to_group(scans_colored, "None"); + glui1->add_radiobutton_to_group(scans_colored, "Id Scans by Color"); + GLUI_RadioButton *colorb = glui1->add_radiobutton_to_group( scans_colored, "Color by Points"); + if (!(pointtype.hasColor())) colorb->disable(); + + mincol_spinner = glui1->add_spinner_to_panel(color_panel, "Min Val:", GLUI_SPINNER_FLOAT, &mincolor_value, 0, &minmaxChanged); + mincol_spinner->set_alignment(GLUI_ALIGN_RIGHT); + maxcol_spinner = glui1->add_spinner_to_panel(color_panel, "Max Val:", GLUI_SPINNER_FLOAT, &maxcolor_value, 0, &minmaxChanged); + maxcol_spinner->set_alignment(GLUI_ALIGN_RIGHT); + glui1->add_button_to_panel(color_panel, "Reset Min/Max", 0, &resetMinMax )->set_alignment( GLUI_ALIGN_CENTER ); + + glui1->add_separator(); + + /****** Invert button *****/ + glui1->add_button( "Invert", 0, invertView )->set_alignment( GLUI_ALIGN_CENTER ); + /****** Animate button *****/ + anim_spinner = glui1->add_spinner( "Anim delay:", GLUI_SPINNER_INT, &anim_delay); + anim_spinner->set_int_limits( 0, 100 ); + anim_spinner->set_speed( 1 ); + glui1->add_button( "Animate", 0, startAnimation )->set_alignment( GLUI_ALIGN_CENTER ); + + glui1->add_separator(); + + +/**** Path panel *******/ + + path_panel = glui1->add_rollout("Camera Path :", false ); + path_panel ->set_alignment( GLUI_ALIGN_LEFT ); + path_filename_edit = glui1->add_edittext_to_panel(path_panel,"File: ",GLUI_EDITTEXT_TEXT, path_file_name); + path_filename_edit->set_alignment( GLUI_ALIGN_LEFT ); + glui1->add_button_to_panel(path_panel, "Save Path ", 0, savePath)->set_alignment( GLUI_ALIGN_CENTER); + glui1->add_button_to_panel(path_panel, "Load Path ", 0, loadPath)->set_alignment( GLUI_ALIGN_CENTER); + glui1->add_button_to_panel(path_panel, "Load Robot P.", 0, drawRobotPath )->set_alignment( GLUI_ALIGN_CENTER ); + glui1->add_separator_to_panel(path_panel); + glui1->add_checkbox_to_panel(path_panel, "Save Animation", &save_animation); + interpol_box = glui1->add_checkbox_to_panel(path_panel, "Interpolate by Distance", &inter_by_dist, -1, &callCameraUpdate); + //always_box = glui2->add_checkbox_to_panel(nav_panel, "Always all Points", &dummy4, 0, &changePointMode); + //glui1->add_checkbox_to_panel(path_panel, "Interpolate by Distance", &inter_by_dist); + glui1->add_button_to_panel(path_panel, "Animate Path", 0, pathAnimate)->set_alignment( GLUI_ALIGN_CENTER); + + /**** Position panel *******/ + + pose_panel = glui1->add_rollout("Position :", false ); + pose_panel ->set_alignment( GLUI_ALIGN_LEFT ); + pose_filename_edit = glui1->add_edittext_to_panel(pose_panel,"File: ",GLUI_EDITTEXT_TEXT, pose_file_name); + pose_filename_edit->set_alignment( GLUI_ALIGN_LEFT ); + glui1->add_button_to_panel(pose_panel, "Save Pose ", 0, savePose)->set_alignment( GLUI_ALIGN_CENTER); + glui1->add_button_to_panel(pose_panel, "Load Pose ", 0, loadPose)->set_alignment( GLUI_ALIGN_CENTER); + image_spinner = glui1->add_spinner_to_panel(pose_panel, "Factor : ", +GLUI_SPINNER_INT, &factor); + image_spinner->set_int_limits( 1, 10 ); + image_spinner->set_speed( 1 ); + image_spinner->set_alignment(GLUI_ALIGN_RIGHT); + glui1->add_button_to_panel(pose_panel, "Save Image ", 0, saveImage)->set_alignment( GLUI_ALIGN_CENTER); + + + glui1->add_separator(); + + /**** Selection panel ******/ + selection_panel = glui1->add_rollout("Selection :", false ); + selection_panel ->set_alignment( GLUI_ALIGN_LEFT ); + + selection_filename_edit = glui1->add_edittext_to_panel(selection_panel,"File: ",GLUI_EDITTEXT_TEXT, selection_file_name); + selection_filename_edit->set_alignment( GLUI_ALIGN_LEFT ); + glui1->add_button_to_panel(selection_panel, "Save selected points ", 0, saveSelection)->set_alignment( GLUI_ALIGN_CENTER); + + glui1->add_button_to_panel(selection_panel, "Clear selected points ", 0, clearSelection)->set_alignment( GLUI_ALIGN_CENTER); + glui1->add_checkbox_to_panel(selection_panel, "Select/Unselect", &selectOrunselect); + glui1->add_checkbox_to_panel(selection_panel, "Select Voxels", &select_voxels); + depth_spinner = glui1->add_spinner_to_panel(selection_panel, "Depth : ", + GLUI_SPINNER_INT, &selection_depth); + depth_spinner->set_int_limits( 1, 100 ); + depth_spinner->set_speed( 1 ); + depth_spinner->set_alignment(GLUI_ALIGN_RIGHT); + brushsize_spinner = glui1->add_spinner_to_panel(selection_panel, "Brushsize : ", + GLUI_SPINNER_INT, &brush_size); + brushsize_spinner->set_int_limits( 0, 100 ); + brushsize_spinner->set_speed( 1 ); + brushsize_spinner->set_alignment(GLUI_ALIGN_RIGHT); + + + glui1->add_separator(); + /**** Advanced panel ******/ + if (advanced_controls) { + advanced_panel = glui1->add_rollout("Advanced :", false ); + advanced_panel->set_alignment( GLUI_ALIGN_LEFT ); + + // glui1->add_edittext_to_panel(advanced_panel,"Frame #: ",GLUI_EDITTEXT_TEXT, current_frame)->set_alignment( GLUI_ALIGN_LEFT ); + frame_spinner = glui1->add_spinner_to_panel(advanced_panel, "Frame #: ", + GLUI_SPINNER_INT, ¤t_frame); + frame_spinner->set_int_limits( 0, MetaMatrix[0].size()-1 ); + frame_spinner->set_speed( 10 ); + frame_spinner->set_alignment(GLUI_ALIGN_RIGHT); + + fps_spinner = glui1->add_spinner_to_panel(advanced_panel, "FPS : ", + GLUI_SPINNER_FLOAT, &idealfps); + fps_spinner->set_int_limits( 0, 100 ); + fps_spinner->set_speed( 1 ); + fps_spinner->set_alignment(GLUI_ALIGN_RIGHT); + + farplane_spinner = glui1->add_spinner_to_panel(advanced_panel, "farplane : ", + GLUI_SPINNER_FLOAT, &maxfardistance); + farplane_spinner->set_float_limits( 1, 100000 ); + farplane_spinner->set_speed( 1 ); + farplane_spinner->set_alignment(GLUI_ALIGN_RIGHT); + + nearplane_spinner = glui1->add_spinner_to_panel(advanced_panel, "nearplane : ", + GLUI_SPINNER_FLOAT, &neardistance); + nearplane_spinner->set_int_limits( 1, 100000 ); + nearplane_spinner->set_speed( 1 ); + nearplane_spinner->set_alignment(GLUI_ALIGN_RIGHT); + + glui1->add_button_to_panel(advanced_panel, "Cycle LOD", 0,(GLUI_Update_CB)cycleLOD )->set_alignment( GLUI_ALIGN_CENTER ); + + lod_spinner = glui1->add_spinner_to_panel(advanced_panel, "lod speed : ", + GLUI_SPINNER_FLOAT, &adaption_rate); + lod_spinner->set_float_limits( 0, 3.0 ); + lod_spinner->set_speed( 0.1 ); + lod_spinner->set_alignment(GLUI_ALIGN_RIGHT); + + glui1->add_separator(); + } + + /****** A 'quit' button *****/ + glui1->add_button( "Quit", 0,(GLUI_Update_CB)exit )->set_alignment( GLUI_ALIGN_CENTER ); + + glui1->set_glutMouseFunc(CallBackMouseFuncMoving); + /**** Link windows to GLUI, and register idle callback ******/ + glutSetWindow(window_id); + glui1->set_main_gfx_window( window_id ); // right + glui2->set_main_gfx_window( window_id ); // bottom + glui1->sync_live(); + glui2->sync_live(); + + // cout << "Called : myNewMenu()...."<= 0; iterator--) + selected_points[iterator].clear(); +} + diff --git a/.svn/pristine/26/267343202f1893ba2f24c64cce779fc5ef7d3d61.svn-base b/.svn/pristine/26/267343202f1893ba2f24c64cce779fc5ef7d3d61.svn-base new file mode 100644 index 0000000..6a293e0 --- /dev/null +++ b/.svn/pristine/26/267343202f1893ba2f24c64cce779fc5ef7d3d61.svn-base @@ -0,0 +1,125 @@ + +//#define WANT_STREAM + +#include "include.h" + +#include "newmat.h" + +#include "tmt.h" + +#ifdef use_namespace +using namespace NEWMAT; +#endif + + +// **************************** test program ****************************** + + + +ReturnMatrix Returner0(const GenericMatrix& GM) +{ Matrix M = GM; M.Release(); return M; } + +ReturnMatrix Returner1(const GenericMatrix& GM) +{ Matrix M = GM+1; M.Release(); return M; } + +ReturnMatrix Returner2(const GenericMatrix& GM) +{ UpperBandMatrix M = GM*2; M.Release(); return M; } + +ReturnMatrix Returner3(const GenericMatrix& GM) +{ LowerBandMatrix M = GM*3; M.Release(); return M; } + +ReturnMatrix Returner4(const GenericMatrix& GM) +{ SymmetricMatrix M = GM+4; M.Release(); return M; } + +ReturnMatrix Returner5(const GenericMatrix& GM) +{ SymmetricBandMatrix M = GM*5; M.Release(); return M; } + +ReturnMatrix Returner6(const GenericMatrix& GM) +{ BandMatrix M = GM*6; M.Release(); return M; } + +ReturnMatrix Returner7(const GenericMatrix& GM) +{ DiagonalMatrix M = GM*7; M.Release(); return M; } + +void trymat5() +{ +// cout << "\nFifth test of Matrix package\n"; + Tracer et("Fifth test of Matrix package"); + Tracer::PrintTrace(); + + int i,j; + + Matrix A(5,6); + for (i=1;i<=5;i++) for (j=1;j<=6;j++) A(i,j)=1+i*j+i*i+j*j; + ColumnVector CV(6); + for (i=1;i<=6;i++) CV(i)=i*i+3; + ColumnVector CV2(5); for (i=1;i<=5;i++) CV2(i)=1.0; + ColumnVector CV1=CV; + + { + CV=A*CV; + RowVector RV=CV.t(); // RowVector RV; RV=CV.t(); + RV=RV-1.0; + CV=(RV*A).t()+A.t()*CV2; CV1=(A.t()*A)*CV1 - CV; + Print(CV1); + } + + CV1.ReSize(6); + CV2.ReSize(6); + CV.ReSize(6); + for (i=1;i<=6;i++) { CV1(i)=i*3+1; CV2(i)=10-i; CV(i)=11+i*2; } + ColumnVector CX=CV2-CV; { CX=CX+CV1; Print(CX); } + Print(ColumnVector(CV1+CV2-CV)); + RowVector RV=CV.t(); RowVector RV1=CV1.t(); + RowVector R=RV-RV1; Print(RowVector(R-CV2.t())); + +// test loading of list + + RV.ReSize(10); + for (i=1;i<=10;i++) RV(i) = i*i; + RV1.ReSize(10); + RV1 << 1 << 4 << 9 << 16 << 25 << 36 << 49 << 64 << 81 << 100; // << 121; + Print(RowVector(RV-RV1)); + + et.ReName("Fifth test of Matrix package - almost at end"); + + Matrix X(2,3); + X << 11 << 12 << 13 + << 21 << 22 << 23; + + Matrix Y = X.t(); // check simple transpose + + X(1,1) -= 11; X(1,2) -= 12; X(1,3) -= 13; + X(2,1) -= 21; X(2,2) -= 22; X(2,3) -= 23; + Print(X); + + Y(1,1) -= 11; Y(2,1) -= 12; Y(3,1) -= 13; + Y(1,2) -= 21; Y(2,2) -= 22; Y(3,2) -= 23; + Print(Y); + + et.ReName("Fifth test of Matrix package - at end"); + + RV = Returner1(RV)-1; Print(RowVector(RV-RV1)); + CV1 = Returner1(RV.t())-1; Print(ColumnVector(RV.t()-CV1)); +#ifndef DONT_DO_NRIC + nricMatrix AA = A; + X = Returner1(AA)-A-1; Print(X); +#endif + UpperTriangularMatrix UT(31); + for (i=1; i<=31; i++) for (j=i; j<=31; j++) UT(i,j) = i+j+(i-j)*(i-2*j); + UpperBandMatrix UB(31,5); UB.Inject(UT); + LowerTriangularMatrix LT = UT.t(); + LowerBandMatrix LB(31,5); LB.Inject(LT); + A = Returner0(UB)-LB.t(); Print(A); + A = Returner2(UB).t()-LB*2; Print(A); + A = Returner3(LB).t()-UB*3; Print(A); + SymmetricMatrix SM; SM << (UT+LT); + A = Returner4(SM)-UT-LT-4; Print(A); + SymmetricBandMatrix SB(31,5); SB.Inject(SM); + A = Returner5(SB)/5-UB-LB; Print(A); + BandMatrix B = UB+LB*LB; A = LB; + A = Returner6(B)/6 - UB - A*A; Print(A); + DiagonalMatrix D; D << UT; + D << (Returner7(D)/7 - UT); Print(D); + +// cout << "\nEnd of fifth test\n"; +} diff --git a/.svn/pristine/26/2684beb4d928336ccddac1f4e0fbe4de765d5071.svn-base b/.svn/pristine/26/2684beb4d928336ccddac1f4e0fbe4de765d5071.svn-base new file mode 100644 index 0000000..04b64d1 --- /dev/null +++ b/.svn/pristine/26/2684beb4d928336ccddac1f4e0fbe4de765d5071.svn-base @@ -0,0 +1,1044 @@ +/**************************************************************************** + + GLUI User Interface Toolkit + --------------------------- + + glui_edittext.cpp - GLUI_EditText control class + + + -------------------------------------------------- + + Copyright (c) 1998 Paul Rademacher + + This program is freely distributable without licensing fees and is + provided without guarantee or warrantee expressed or implied. This + program is -not- in the public domain. + +*****************************************************************************/ + +#include "glui.h" +#include "stdinc.h" + +/****************************** GLUI_EditText::mouse_down_handler() **********/ + +int GLUI_EditText::mouse_down_handler( int local_x, int local_y ) +{ + int tmp_insertion_pt; + + if ( debug ) dump( stdout, "-> MOUSE DOWN" ); + + tmp_insertion_pt = find_insertion_pt( local_x, local_y ); + if ( tmp_insertion_pt == -1 ) { + if ( glui ) + glui->disactivate_current_control( ); + return false; + } + + insertion_pt = tmp_insertion_pt; + + sel_start = sel_end = insertion_pt; + + if ( can_draw()) + update_and_draw_text(); + + if ( debug ) dump( stdout, "<- MOUSE UP" ); + + return true; +} + + +/******************************** GLUI_EditText::mouse_up_handler() **********/ + +int GLUI_EditText::mouse_up_handler( int local_x, int local_y, int inside ) +{ + return false; +} + + +/***************************** GLUI_EditText::mouse_held_down_handler() ******/ + +int GLUI_EditText::mouse_held_down_handler( int local_x, int local_y, + int new_inside) +{ + int tmp_pt; + + if ( NOT new_inside ) + return false; + + if ( debug ) dump( stdout, "-> HELD DOWN" ); + + tmp_pt = find_insertion_pt( local_x, local_y ); + + if ( tmp_pt == -1 AND sel_end != 0 ) { /* moved mouse past left edge */ + special_handler( GLUT_KEY_LEFT, GLUT_ACTIVE_SHIFT ); + } + else if ( tmp_pt == substring_end+1 AND sel_end != (int) strlen(text)) { + /* moved mouse past right edge */ + special_handler( GLUT_KEY_RIGHT, GLUT_ACTIVE_SHIFT ); + } + else if ( tmp_pt != -1 AND tmp_pt != sel_end ) { + sel_end = insertion_pt = tmp_pt; + + update_and_draw_text(); + } + + if ( debug ) + dump( stdout, "<- HELD DOWN" ); + + return false; +} + + +/****************************** GLUI_EditText::key_handler() **********/ + +int GLUI_EditText::key_handler( unsigned char key,int modifiers ) +{ + int i, regular_key; + /* int has_selection; */ + + if ( NOT glui ) + return false; + + if ( debug ) + dump( stdout, "-> KEY HANDLER" ); + + regular_key = false; + /* has_selection = (sel_start != sel_end); */ + + if ( key == 21 AND (modifiers & GLUT_ACTIVE_CTRL )!=0) { /* DEL all text */ + /** This one (key==21) may not port!! */ + + insertion_pt = -1; + text[0] = '\0'; + sel_start = sel_end = -1; + } + else if ( key == 13 ) { /* RETURN */ + /* glui->disactivate_current_control(); */ + disactivate(); /** Force callbacks, etc **/ + activate(GLUI_ACTIVATE_TAB); /** Reselect all text **/ + translate_and_draw_front(); + return true; + } + else if ( key == 27 ) { /* ESCAPE */ + glui->disactivate_current_control(); + return true; + } + else if ( key == 8 ) { /* BACKSPACE */ + if ( sel_start == sel_end ) { /* no selection */ + if ( insertion_pt > 0 ) { + /*** See if we're deleting a period in a float data-type box ***/ + if ( data_type == GLUI_EDITTEXT_FLOAT AND text[insertion_pt-1]=='.' ) + num_periods--; + + /*** Shift over string first ***/ + insertion_pt--; + for( i=insertion_pt; i< (int)strlen( text ); i++ ) + text[i] = text[i+1]; + } + } + else { /* There is a selection */ + clear_substring( MIN(sel_start,sel_end), MAX(sel_start,sel_end )); + insertion_pt = MIN(sel_start,sel_end); + sel_start = sel_end = insertion_pt; + } + } + else { /* Regular key */ + regular_key = true; + + /** Check if we only accept numbers **/ + if (data_type == GLUI_EDITTEXT_FLOAT ) { + if ( (key < '0' OR key > '9') AND key != '.' AND key != '-' ) + return true; + + if ( key == '-' ) { /* User typed a '-' */ + + /* If user has first character selected, then '-' is allowed */ + if ( NOT ( MIN(sel_start,sel_end) == 0 AND + MAX(sel_start,sel_end) > 0 ) ) { + + /* User does not have 1st char selected */ + if (insertion_pt != 0 OR text[0] == '-' ) { + return true; /* Can only place negative at beginning of text, + and only one of them */ + } + } + } + + if ( key == '.' ) { + /*printf( "PERIOD: %d\n", num_periods ); */ + + if ( num_periods > 0 ) { + /** We're trying to type a period, but the text already contains + a period. Check whether the period is contained within + is current selection (thus it will be safely replaced) **/ + + int period_found = false; + if ( sel_start != sel_end ) { + for( i=MIN(sel_end,sel_start); i '9') AND key != '-' ) + return true; + + if ( key == '-' ) { /* User typed a '-' */ + + /* If user has first character selected, then '-' is allowed */ + if ( NOT ( MIN(sel_start,sel_end) == 0 AND + MAX(sel_start,sel_end) > 0 ) ) { + + /* User does not have 1st char selected */ + if (insertion_pt != 0 OR text[0] == '-' ) { + return true; /* Can only place negative at beginning of text, + and only one of them */ + } + } + } + } + + /** This is just to get rid of warnings - the flag regular_key is + set if the key was not a backspace, return, whatever. But I + believe if we're here, we know it was a regular key anyway */ + if ( regular_key ) { + } + + /**** If there's a current selection, erase it ******/ + if ( sel_start != sel_end ) { + clear_substring( MIN(sel_start,sel_end), MAX(sel_start,sel_end )); + insertion_pt = MIN(sel_start,sel_end); + sel_start = sel_end = insertion_pt; + } + + /******** check whether we have space ******/ + if ( (unsigned int)strlen( text ) + 2 >= sizeof( GLUI_String )) + return false; + + /******** We insert the character into the string ***/ + + /*** Shift over string first ***/ + for( i=(int)strlen( text ); i >= insertion_pt; i-- ) + text[i+1] = text[i]; + + /******** Now insert the character ********/ + text[insertion_pt] = key; + + /******** Move the insertion point and substring_end one over ******/ + insertion_pt++; + substring_end++; + + sel_start = sel_end = insertion_pt; + } + + /******** Now redraw text ***********/ + /* Hack to prevent text box from being cleared first **/ + /** int substring_change = update_substring_bounds(); + draw_text_only = + (NOT substring_change AND NOT has_selection AND regular_key ); + */ + + draw_text_only = false; /** Well, hack is not yet working **/ + update_and_draw_text(); + draw_text_only = false; + + + if ( debug ) + dump( stdout, "<- KEY HANDLER" ); + + /*** Now look to see if this string has a period ***/ + num_periods = 0; + for( i=0; i<(int)strlen(text); i++ ) + if ( text[i] == '.' ) + num_periods++; + + return true; +} + + +/****************************** GLUI_EditText::activate() **********/ + +void GLUI_EditText::activate( int how ) +{ + if ( debug ) + dump( stdout, "-> ACTIVATE" ); + + active = true; + + if ( how == GLUI_ACTIVATE_MOUSE ) + return; /* Don't select everything if activated with mouse */ + + strcpy( orig_text, text ); + + sel_start = 0; + sel_end = (int)strlen(text); + insertion_pt = 0; + + if ( debug ) + dump( stdout, "<- ACTIVATE" ); +} + + +/****************************** GLUI_EditText::disactivate() **********/ + +void GLUI_EditText::disactivate( void ) +{ + int new_int_val; + float new_float_val; + + active = false; + + if ( NOT glui ) + return; + + if ( debug ) + dump( stdout, "-> DISACTIVATE" ); + + sel_start = sel_end = insertion_pt = -1; + + /***** Retrieve the current value from the text *****/ + /***** The live variable will be updated by set_text() ****/ + if ( data_type == GLUI_EDITTEXT_FLOAT ) { + if ( text[0] == '\0' ) /* zero-length string - make it "0.0" */ + strcpy( text, "0.0" ); + + new_float_val = atof( text ); + + set_float_val( new_float_val ); + } + else if ( data_type == GLUI_EDITTEXT_INT ) { + if ( text[0] == '\0' ) /* zero-length string - make it "0" */ + strcpy( text, "0" ); + + new_int_val = atoi( text ); + + set_int_val( new_int_val ); + } + else + if ( data_type == GLUI_EDITTEXT_TEXT ) { + set_text(text); /* This will force callbacks and gfx refresh */ + } + + update_substring_bounds(); + + /******** redraw text without insertion point ***********/ + translate_and_draw_front(); + + /***** Now do callbacks if value changed ******/ + if ( strcmp( orig_text, text ) != 0 ) { + this->execute_callback(); + + if ( 0 ) { + /* THE CODE BELOW IS FROM WHEN SPINNER ALSO MAINTAINED CALLBACKS */ + if ( spinner == NULL ) { /** Are we independent of a spinner? **/ + if ( callback ) { + callback( this->user_id ); + } + } + else { /* We're attached to a spinner */ + spinner->do_callbacks(); /* Let the spinner do the callback stuff */ + } + } + } + + if ( debug ) + dump( stdout, "<- DISACTIVATE" ); +} + +/****************************** GLUI_EditText::draw() **********/ + +void GLUI_EditText::draw( int x, int y ) +{ + int orig; + int name_x; + + if ( NOT can_draw() ) + return; + + orig = set_to_glut_window(); + + name_x = MAX(text_x_offset - string_width(this->name) - 3,0); + draw_name( name_x , 13); + + glBegin( GL_LINES ); + glColor3f( .5, .5, .5 ); + glVertex2i( text_x_offset, 0 ); glVertex2i( w, 0 ); + glVertex2i( text_x_offset, 0 ); glVertex2i( text_x_offset, h ); + + glColor3f( 1., 1., 1. ); + glVertex2i( text_x_offset, h ); glVertex2i( w, h ); + glVertex2i( w, h ); glVertex2i( w, 0 ); + + if ( enabled ) + glColor3f( 0., 0., 0. ); + else + glColor3f( .25, .25, .25 ); + glVertex2i( text_x_offset+1, 1 ); glVertex2i( w-1, 1 ); + glVertex2i( text_x_offset+1, 1 ); glVertex2i( text_x_offset+1, h-1 ); + + glColor3f( .75, .75, .75 ); + glVertex2i( text_x_offset+1, h-1 ); glVertex2i( w-1, h-1 ); + glVertex2i( w-1, h-1 ); glVertex2i( w-1, 1 ); + glEnd(); + + /** Find where to draw the text **/ + update_substring_bounds(); + draw_text(0,0); + + draw_insertion_pt(); + + restore_window(orig); +} + + + +/************************** GLUI_EditText::update_substring_bounds() *********/ + +int GLUI_EditText::update_substring_bounds( void ) +{ + int box_width; + int text_len = (int)strlen(text); + int old_start, old_end; + + old_start = substring_start; + old_end = substring_end; + + /*** Calculate the width of the usable area of the edit box ***/ + box_width = MAX( this->w - this->text_x_offset + - 4 /* 2 * the two-line box border */ + - 2 * GLUI_EDITTEXT_BOXINNERMARGINX, 0 ); + + CLAMP( substring_end, 0, MAX(text_len-1,0) ); + CLAMP( substring_start, 0, MAX(text_len-1,0) ); + + if ( debug ) dump( stdout, "-> UPDATE SS" ); + + if ( insertion_pt >= 0 AND + insertion_pt < substring_start ) { /* cursor moved left */ + substring_start = insertion_pt; + + while ( substring_width( substring_start, substring_end ) > box_width ) + substring_end--; + } + else if ( insertion_pt > substring_end ) { /* cursor moved right */ + substring_end = insertion_pt-1; + + while ( substring_width( substring_start, substring_end ) > box_width ) + substring_start++; + } + else { /* cursor is within old substring bounds */ + if ( last_insertion_pt > insertion_pt ) { /* cursor moved left */ + } + else { + while ( substring_width( substring_start, substring_end ) > box_width ) + substring_end--; + + while(substring_width( substring_start, substring_end+1 ) <= box_width + AND substring_end < text_len-1 ) + substring_end++; + } + } + + while ( substring_width( substring_start, substring_end ) > box_width ) + substring_end--; + + last_insertion_pt = insertion_pt; + + /*** No selection if not enabled ***/ + if ( NOT enabled ) { + sel_start = sel_end = 0; + } + + if ( debug ) dump( stdout, "<- UPDATE SS" ); + + if ( substring_start == old_start AND substring_end == old_end ) + return false; /*** bounds did not change ***/ + else + return true; /*** bounds did change ***/ +} + + +/********************************* GLUI_EditText::update_x_offsets() *********/ + +void GLUI_EditText::update_x_offsets( void ) +{ +} + + +/********************************* GLUI_EditText::draw_text() ****************/ + +void GLUI_EditText::draw_text( int x, int y ) +{ + int text_x, i, sel_lo, sel_hi; + int orig; + + if ( NOT can_draw() ) + return; + + if ( debug ) dump( stdout, "-> DRAW_TEXT" ); + + orig = set_to_glut_window(); + + if ( NOT draw_text_only ) { + if ( enabled ) + glColor3f( 1., 1., 1. ); + else + set_to_bkgd_color(); + glDisable( GL_CULL_FACE ); + glBegin( GL_QUADS ); + glVertex2i( text_x_offset+2, 2 ); glVertex2i( w-2, 2 ); + glVertex2i( w-2, h-2 ); glVertex2i( text_x_offset+2, h-2 ); + glEnd(); + } + + /** Find where to draw the text **/ + + text_x = text_x_offset + 2 + GLUI_EDITTEXT_BOXINNERMARGINX; + + /*printf( "text_x: %d substr_width: %d start/end: %d/%d\n", + text_x, substring_width( substring_start, substring_end ), + substring_start, substring_end ); + */ + /** Find lower and upper selection bounds **/ + sel_lo = MIN(sel_start, sel_end ); + sel_hi = MAX(sel_start, sel_end ); + + int sel_x_start, sel_x_end, delta; + + /** Draw selection area dark **/ + if ( sel_start != sel_end ) { + sel_x_start = text_x; + sel_x_end = text_x; + for( i=substring_start; i<=substring_end; i++ ) { + delta = char_width( text[i] ); + + if ( i < sel_lo ) { + sel_x_start += delta; + sel_x_end += delta; + } + else if ( i < sel_hi ) { + sel_x_end += delta; + } + } + + glColor3f( 0.0f, 0.0f, .6f ); + glBegin( GL_QUADS ); + glVertex2i( sel_x_start, 2 ); glVertex2i( sel_x_end, 2 ); + glVertex2i( sel_x_end, h-2 ); glVertex2i( sel_x_start, h-2 ); + glEnd(); + } + + + if ( sel_start == sel_end ) { /* No current selection */ + if ( enabled ) + glColor3b( 0, 0, 0 ); + else + glColor3b( 32, 32, 32 ); + + glRasterPos2i( text_x, 13); + for( i=substring_start; i<=substring_end; i++ ) { + glutBitmapCharacter( get_font(), this->text[i] ); + } + } + else { /* There is a selection */ + int x = text_x; + for( i=substring_start; i<=substring_end; i++ ) { + if ( IN_BOUNDS( i, sel_lo, sel_hi-1)) { /* This character is selected */ + glColor3f( 1., 1., 1. ); + glRasterPos2i( x, 13); + glutBitmapCharacter( get_font(), this->text[i] ); + } + else { + glColor3f( 0., 0., 0. ); + glRasterPos2i( x, 13); + glutBitmapCharacter( get_font(), this->text[i] ); + } + + x += char_width( text[i] ); + } + } + + restore_window( orig ); + + if ( debug ) dump( stdout, "<- DRAW_TEXT" ); +} + + +/******************************** GLUI_EditText::find_insertion_pt() *********/ +/* This function returns the character numer *before which* the insertion */ +/* point goes */ + +int GLUI_EditText::find_insertion_pt( int x, int y ) +{ + int curr_x, i; + + /*** See if we clicked outside box ***/ + if ( x < this->x_abs + text_x_offset ) + return -1; + + /* We move from right to left, looking to see if the mouse was clicked + to the right of the ith character */ + + curr_x = this->x_abs + text_x_offset + + substring_width( substring_start, substring_end ) + + 2 /* The edittext box has a 2-pixel margin */ + + GLUI_EDITTEXT_BOXINNERMARGINX; /** plus this many pixels blank space + between the text and the box **/ + + /*** See if we clicked in an empty box ***/ + if ( (int)strlen( text ) == 0 ) + return 0; + + /** find mouse click in text **/ + for( i=substring_end; i>=substring_start; i-- ) { + curr_x -= char_width( text[i] ); + + if ( x > curr_x ) { + /* printf( "-> %d\n", i ); */ + + return i+1; + } + } + + return 0; + + /* Well, the mouse wasn't after any of the characters...see if it's + before the beginning of the substring */ + if ( 0 ) { + if ( x > (x_abs + text_x_offset + 2 ) ) + return substring_start; + + return -1; /* Nothing found */ + } +} + + +/******************************** GLUI_EditText::draw_insertion_pt() *********/ + +void GLUI_EditText::draw_insertion_pt( void ) +{ + int curr_x, i; + + if ( NOT can_draw() ) + return; + + /*** Don't draw insertion pt if control is disabled ***/ + if ( NOT enabled ) + return; + + if ( debug ) dump( stdout, "-> DRAW_INS_PT" ); + + if ( sel_start != sel_end OR insertion_pt < 0 ) { + return; /* Don't draw insertion point if there is a current selection */ + } + + /* printf( "insertion pt: %d\n", insertion_pt ); */ + + curr_x = this->x_abs + text_x_offset + + substring_width( substring_start, substring_end ) + + 2 /* The edittext box has a 2-pixel margin */ + + GLUI_EDITTEXT_BOXINNERMARGINX; /** plus this many pixels blank space + between the text and the box **/ + + for( i=substring_end; i>=insertion_pt; i-- ) { + curr_x -= char_width( text[i] ); + } + + glColor3f( 0.0, 0.0, 0.0 ); + glBegin( GL_LINE_LOOP ); + /*** + glVertex2i( curr_x, y_abs + 4 ); + glVertex2i( curr_x, y_abs + 4 ); + glVertex2i( curr_x, y_abs + h - 3 ); + glVertex2i( curr_x, y_abs + h - 3 ); + ***/ + curr_x -= x_abs; + glVertex2i( curr_x, 0 + 4 ); + glVertex2i( curr_x, 0 + 4 ); + glVertex2i( curr_x, 0 + h - 3 ); + glVertex2i( curr_x, 0 + h - 3 ); + glEnd(); + + if ( debug ) dump( stdout, "-> DRAW_INS_PT" ); +} + + + +/******************************** GLUI_EditText::substring_width() *********/ + +int GLUI_EditText::substring_width( int start, int end ) +{ + int i, width; + + width = 0; + + for( i=start; i<=end; i++ ) + width += char_width( text[i] ); + + return width; +} + + +/***************************** GLUI_EditText::update_and_draw_text() ********/ + +void GLUI_EditText::update_and_draw_text( void ) +{ + if ( NOT can_draw() ) + return; + + update_substring_bounds(); + /* printf( "ss: %d/%d\n", substring_start, substring_end ); */ + + translate_and_draw_front(); +} + + +/********************************* GLUI_EditText::special_handler() **********/ + +int GLUI_EditText::special_handler( int key,int modifiers ) +{ + if ( NOT glui ) + return false; + + if ( 0 ) + printf( "SPECIAL:%d - mod:%d subs:%d/%d ins:%d sel:%d/%d\n", + key, modifiers, substring_start, substring_end,insertion_pt, + sel_start, sel_end ); + + if ( key == GLUT_KEY_LEFT ) { + if ( (modifiers & GLUT_ACTIVE_CTRL) != 0 ) { + insertion_pt = find_word_break( insertion_pt, -1 ); + } + else { + insertion_pt--; + } + } + else if ( key == GLUT_KEY_RIGHT ) { + if ( (modifiers & GLUT_ACTIVE_CTRL) != 0 ) { + insertion_pt = find_word_break( insertion_pt, +1 ); + } + else { + insertion_pt++; + } + } + else if ( key == GLUT_KEY_HOME ) { + insertion_pt = 0; + } + else if ( key == GLUT_KEY_END ) { + insertion_pt = (int)strlen( text ); + } + + /*** Update selection if shift key is down ***/ + if ( (modifiers & GLUT_ACTIVE_SHIFT ) != 0 ) + sel_end = insertion_pt; + else + sel_start = sel_end = insertion_pt; + + CLAMP( insertion_pt, 0, (int)strlen( text )); /* Make sure insertion_pt + is in bounds */ + CLAMP( sel_start, 0, (int)strlen( text )); /* Make sure insertion_pt + is in bounds */ + CLAMP( sel_end, 0, (int)strlen( text )); /* Make sure insertion_pt + is in bounds */ + + /******** Now redraw text ***********/ + if ( can_draw()) + update_and_draw_text(); + + return true; +} + + +/****************************** GLUI_EditText::find_word_break() **********/ +/* It looks either left or right (depending on value of 'direction' */ +/* for the beginning of the next 'word', where word are characters */ +/* separated by one of the following tokens: " :-.," */ +/* If there is no next word in the specified direction, this returns */ +/* the beginning of 'text', or the very end. */ + +int GLUI_EditText::find_word_break( int start, int direction ) +{ + int i, j; + char *breaks = " :-.,"; + int num_break_chars = (int)strlen(breaks), text_len = (int)strlen(text); + int new_pt; + + /** If we're moving left, we have to start two back, in case we're either + already at the beginning of a word, or on a separating token. + Otherwise, this function would just return the word we're already at **/ + if ( direction == -1 ) { + start -= 2; + } + + /***** Iterate over text in the specified direction *****/ + for ( i=start; i >= 0 AND i < text_len; i += direction ) { + + /** For each character in text, iterate over list of separating tokens **/ + for( j=0; j 0 ) /* Return the end of string */ + return text_len; + else /* Return the beginning of the text */ + return 0; +} + + +/********************************** GLUI_EditText::clear_substring() ********/ + +void GLUI_EditText::clear_substring( int start, int end ) +{ + int i, leftover; + + /* + printf( "clearing: %d-%d '", start,end); + for(i=start;ifloat_val = this->float_val; + spinner->int_val = this->int_val; + } + + /*** Now update the live variable ***/ + output_live(true); +} + + +/******************************* GLUI_EditText::set_float_val() ************/ + +void GLUI_EditText::set_float_val( float new_val ) +{ + if ( has_limits == GLUI_LIMIT_CLAMP ) { + /*** Clamp the new value to the existing limits ***/ + + CLAMP( new_val, float_low, float_high ); + } + else if ( has_limits == GLUI_LIMIT_WRAP ) { + /*** Clamp the value cyclically to the limits - that is, if the + value exceeds the max, set it the the minimum, and conversely ***/ + + if ( new_val < float_low ) + new_val = float_high; + if ( new_val > float_high ) + new_val = float_low; + } + + float_val = new_val; + int_val = (int) new_val; /* Mirror the value as an int, too */ + + set_numeric_text(); +} + + +/********************************** GLUI_EditText::set_int_val() ************/ + +void GLUI_EditText::set_int_val( int new_val ) +{ + if ( has_limits == GLUI_LIMIT_CLAMP ) { + /*** Clamp the new value to the existing limits ***/ + + CLAMP( new_val, int_low, int_high ); + } + else if ( has_limits == GLUI_LIMIT_WRAP ) { + /*** Clamp the value cyclically to the limits - that is, if the + value exceeds the max, set it the the minimum, and conversely ***/ + + if ( new_val < int_low ) + new_val = int_high; + if ( new_val > int_high ) + new_val = int_low; + } + + int_val = new_val; + float_val = (float) new_val; /* We mirror the value as a float, too */ + + set_numeric_text(); +} + + +/********************************* GLUI_EditText::set_float_limits() *********/ + +void GLUI_EditText::set_float_limits( float low, float high, int limit_type ) +{ + has_limits = limit_type; + float_low = low; + float_high = high; + + if ( NOT IN_BOUNDS( float_val, float_low, float_high )) + set_float_val( float_low ); + + int_low = (int) float_low; + int_high = (int) float_high; +} + + +/*********************************** GLUI_EditText::set_int_limits() *********/ + +void GLUI_EditText::set_int_limits( int low, int high, int limit_type ) +{ + has_limits = limit_type; + int_low = low; + int_high = high; + + if ( NOT IN_BOUNDS( int_val, int_low, int_high )) + set_int_val( int_low ); + + float_low = (float) int_low; + float_high = (float) int_high; +} + + +/************************************ GLUI_EditText::set_numeric_text() ******/ + +void GLUI_EditText::set_numeric_text( void ) +{ + char buf_float[200], buf_int[200]; + int i, text_len; + + if ( data_type == GLUI_EDITTEXT_FLOAT ) { + sprintf( buf_float, "%#g", float_val ); + + num_periods = 0; + text_len = (int)strlen( buf_float ); + for ( i=0; i 0 ) { + text_len = (int)strlen( buf_float ); + for ( i=text_len-1; i>0; i-- ) { + if ( buf_float[i] == '0' AND buf_float[i-1] != '.' ) + buf_float[i] = '\0'; + else + break; + } + } + + set_text( buf_float ); + } + else { + sprintf( buf_int, "%d", int_val ); + + set_text( buf_int ); + } + +} + + +/*************************************** GLUI_EditText::dump() **************/ + +void GLUI_EditText::dump( FILE *out, char *name ) +{ + fprintf( out, + "%s (edittext@%p): ins_pt:%d subs:%d/%d sel:%d/%d len:%d\n", + name, this, + insertion_pt, substring_start, substring_end, sel_start, sel_end, + (int)strlen( text )); +} + + +/**************************************** GLUI_EditText::mouse_over() ********/ + +int GLUI_EditText::mouse_over( int state, int x, int y ) +{ + if ( state ) { + /* curr_cursor = GLUT_CURSOR_TEXT; */ + glutSetCursor( GLUT_CURSOR_TEXT ); + } + else { + /* printf( "OUT\n" ); */ + glutSetCursor( GLUT_CURSOR_LEFT_ARROW ); + } + + return true; +} diff --git a/.svn/pristine/26/26bfd4d3b74c669dc82a5034105f4dc6ddda89fa.svn-base b/.svn/pristine/26/26bfd4d3b74c669dc82a5034105f4dc6ddda89fa.svn-base new file mode 100644 index 0000000..c287100 --- /dev/null +++ b/.svn/pristine/26/26bfd4d3b74c669dc82a5034105f4dc6ddda89fa.svn-base @@ -0,0 +1,33 @@ +// This is an example of the use of solution to find the cube root of +// the integers -10 to 10 + +// you will need to compile and link solution.cpp and except.cpp + +#define WANT_STREAM +#define WANT_MATH + +#include "include.h" +#include "solution.h" + +#ifdef use_namespace +using namespace RBD_LIBRARIES; +#endif + + +// the cube class + +class Cube : public R1_R1 +{ Real operator()() { return x*x*x; } }; + +int main() +{ + // construct the Cube object + Cube cube; + // and then the solve object + OneDimSolve cube_root(cube); + // Now do the solves + for (int i=-10; i<=10; i++) + cout << i << " " << cube_root.Solve(i,0,1.5) << endl; + return 0; +} + diff --git a/.svn/pristine/28/28020226e2c7a82b7c03d1e072adfaf8a3c0a7bd.svn-base b/.svn/pristine/28/28020226e2c7a82b7c03d1e072adfaf8a3c0a7bd.svn-base new file mode 100644 index 0000000..b9491fe --- /dev/null +++ b/.svn/pristine/28/28020226e2c7a82b7c03d1e072adfaf8a3c0a7bd.svn-base @@ -0,0 +1,2 @@ +clean: + rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out refman.pdf diff --git a/.svn/pristine/28/280bf5c223654b2fa4ef74205ea84011251d066f.svn-base b/.svn/pristine/28/280bf5c223654b2fa4ef74205ea84011251d066f.svn-base new file mode 100644 index 0000000..7b22b11 --- /dev/null +++ b/.svn/pristine/28/280bf5c223654b2fa4ef74205ea84011251d066f.svn-base @@ -0,0 +1,36 @@ +/** + * @file + * @brief IO of a 3D scan in ks file format + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SCAN_IO_KS_RGB_H__ +#define __SCAN_IO_KS_RGB_H__ + +#include +using std::string; +#include +using std::vector; + +#include "scan_io.h" + +/** + * @brief 3D scan loader for KS RGB scans + * + * The compiled class is available as shared object file + */ +class ScanIO_ks_rgb : public ScanIO { +public: + virtual int readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss); +}; + +// Since this shared object file is loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/.svn/pristine/28/280ffa6011cd125d75df2c546db11a1d98174951.svn-base b/.svn/pristine/28/280ffa6011cd125d75df2c546db11a1d98174951.svn-base new file mode 100644 index 0000000..9125bfd --- /dev/null +++ b/.svn/pristine/28/280ffa6011cd125d75df2c546db11a1d98174951.svn-base @@ -0,0 +1,113 @@ +/** + * @file plane3d.h + * + * @auhtor Remus Claudiu Dumitru + * @date 16 Feb 2012 + * + */ + +#ifndef PLANE3D_H_ +#define PLANE3D_H_ + +//============================================================================== +// Includes +//============================================================================== +#include "model/vector3d.h" + +#include + +namespace model { + +/** + * A class defining a plane. + */ +class Plane3d { +private: + /** + * used to determine if vertical + */ + static constexpr double _EPSILON_VERTICAL = 0.02; + + /** + * used to determine if horizontal + */ + static constexpr double _EPSILON_HORIZONTAL = 0.02; + + /** + * if two planes are this close in cm + * then they may be considered to be the same + */ + static constexpr double _EPSILON_DISTANCE = 20; + + /** + * if the length of the crossproduct of two normals is less than this + * then the planes may be considered to be the same + */ + static constexpr double _EPSILON_NORMAL_CROSS_PRODUCT = 2e-1; + +public: + /** + * the normal defining the plane + */ + Vector3d normal; + + /** + * the point of application of the normal + */ + Point3d pt; + + /** + * the convex hull of this plane + */ + std::vector hull; + + Plane3d(); + Plane3d(const Point3d& pt, const Vector3d& normal); + Plane3d(const Point3d& pt, const Vector3d& normal, + const std::vector& hull); + + Plane3d(const Plane3d& other); + + virtual ~Plane3d(); + + /** + * compute the intersection of three planes + */ + Point3d intersect(const Plane3d& first, const Plane3d& second); + + /** + * copies one plane to another + */ + Plane3d& operator=(const Plane3d& other); + + /** + * returns true if a plane is vertical within some predefined epsilon values + */ + bool isVertical(); + + /** + * returns true if a plane is horizontal within some predefined epsilon values + */ + bool isHorizontal(); + + /** + * returns true if this plane replresents the same plane as other + * within some predefined epsilon values + */ + bool isSamePlane(Plane3d other); + + /** + * Computes the normal of the plane from the hull. + */ + Vector3d computeAverageNormal(); + + /** + * Returns the 3D coordinates of points on the plane, which have a fixed + * distance to their next neighbor. + */ + std::vector > getDiscretePoints(const double& dist) const; +}; + +} /* namespace model */ + +#endif /* PLANE3D_H_ */ diff --git a/.svn/pristine/28/285085933c29eb9ada8d86d00a14a0ce0932294b.svn-base b/.svn/pristine/28/285085933c29eb9ada8d86d00a14a0ce0932294b.svn-base new file mode 100644 index 0000000..5ec9108 --- /dev/null +++ b/.svn/pristine/28/285085933c29eb9ada8d86d00a14a0ce0932294b.svn-base @@ -0,0 +1,322 @@ +/* + * plane implementation + * + * Copyright (C) Dorit Borrmann + * + * Released under the GPL version 3. + * + */ + +/** + * @file + * @author Dorit Borrmann. Institute of Computer Science, University of Osnabrueck, Germany. +*/ + +#include +#include +#ifndef _MSC_VER +#include +#else +#include "XGetopt.h" +#endif + +#include +using std::ofstream; +using std::flush; +using std::cout; +using std::string; +using std::cerr; +using std::endl; +#include + +#ifdef _MSC_VER +#define strcasecmp _stricmp +#define strncasecmp _strnicmp +#include +#include +#else +#include +#include +#include +#include +#endif + +#include "shapes/hough.h" +#include "shapes/shape.h" +#include "shapes/ransac.h" + +enum plane_alg { + RHT, SHT, PHT, PPHT, APHT, RANSAC +}; + +void usage(char* prog) { +#ifndef _MSC_VER + const string bold("\033[1m"); + const string normal("\033[m"); +#else + const string bold(""); + const string normal(""); +#endif + cout << endl + << bold << "USAGE " << normal << endl + << " " << prog << " [options] directory" << endl << endl; + cout << bold << "OPTIONS" << normal << endl + + << bold << " -f" << normal << " F, " << bold << "--format=" << normal << "F" << endl + << " using shared library F for input" << endl + << " (chose F from {uos, uos_map, uos_rgb, uos_frames, uos_map_frames, old, rts, rts_map, ifp, riegl_txt, riegl_rgb, riegl_bin, zahn, ply})" << endl + << endl + << bold << " -m" << normal << " NR, " << bold << "--max=" << normal << "NR" << endl + << " neglegt all data points with a distance larger than NR 'units'" << endl + << endl + << bold << " -M" << normal << " NR, " << bold << "--min=" << normal << "NR" << endl + << " neglegt all data points with a distance smaller than NR 'units'" << endl + << endl + << bold << " -p" << normal << " P, " << bold << "--plane=" << normal << "P" << endl + << " using algorithm P for plane detection" << endl + << " (chose P from {rht, sht, pht, ppht, apht, ran})" << endl + << endl + << bold << " -r" << normal << " NR, " << bold << "--reduce=" << normal << "NR" << endl + << " turns on octree based point reduction (voxel size=)" << endl + << endl + << bold << " -O" << normal << " NR (optional), " << bold << "--octree=" << normal << "NR (optional)" << endl + << " use randomized octree based point reduction (pts per voxel=)" << endl + << " requires " << bold << "-r" << normal <<" or " << bold << "--reduce" << endl + << endl + << bold << " -s" << normal << " NR, " << bold << "--start=" << normal << "NR" << endl + << " start at scan NR (i.e., neglects the first NR scans)" << endl + << " [ATTENTION: counting naturally starts with 0]" << endl + << endl + << bold << " -S, --scanserver" << normal << endl + << " Use the scanserver as an input method and handling of scan data" << endl + << endl + << endl << endl; + + cout << bold << "EXAMPLES " << normal << endl + << " " << prog << " -m 500 -r 5 dat" << endl + << " " << prog << " --max=5000 -r 10.2 dat" << endl + << " " << prog << " -s 2 -e 10 -r dat" << endl << endl; + exit(1); + +} + +/** + * Parses command line arguments needed for plane detection. For details about + * the argument see usage(). + */ + +int parseArgs(int argc, char **argv, string &dir, double &red, int &start, int + &maxDist, int&minDist, int &octree, IOType &type, plane_alg &alg, bool + &quiet, bool& scanserver) +{ + bool reduced = false; + int c; + // from unistd.h: + extern char *optarg; + extern int optind; + + /* options descriptor */ + // 0: no arguments, 1: required argument, 2: optional argument + static struct option longopts[] = { + { "format", required_argument, 0, 'f' }, + { "max", required_argument, 0, 'm' }, + { "min", required_argument, 0, 'M' }, + { "start", required_argument, 0, 's' }, + { "reduce", required_argument, 0, 'r' }, + { "plane", required_argument, 0, 'p' }, + { "quiet", no_argument, 0, 'q' }, + { "octree", optional_argument, 0, 'O' }, + { "scanserver", no_argument, 0, 'S' }, + { 0, 0, 0, 0} // needed, cf. getopt.h + }; + + cout << endl; + while ((c = getopt_long(argc, argv, "f:r:s:e:m:M:p:O:q", longopts, NULL)) != -1) + switch (c) + { + case 'r': + red = atof(optarg); + reduced = true; + break; + case 's': + start = atoi(optarg); + if (start < 0) { cerr << "Error: Cannot start at a negative scan number.\n"; exit(1); } + break; + case 'f': + try { + type = formatname_to_io_type(optarg); + } catch (...) { // runtime_error + cerr << "Format " << optarg << " unknown." << endl; + abort(); + } + break; + case 'p': + if(strcasecmp(optarg, "rht") == 0) alg = RHT; + else if(strcasecmp(optarg, "sht") == 0) alg = SHT; + else if(strcasecmp(optarg, "pht") == 0) alg = PHT; + else if(strcasecmp(optarg, "ppht") == 0) alg = PPHT; + else if(strcasecmp(optarg, "apht") == 0) alg = APHT; + else if(strcasecmp(optarg, "ran") == 0) alg = RANSAC; + else abort(); + break; + case 'q': + quiet = true; + break; + case 'm': + maxDist = atoi(optarg); + break; + case 'O': + if (optarg) { + octree = atoi(optarg); + } else { + octree = 1; + } + break; + case 'M': + minDist = atoi(optarg); + break; + case 'S': + scanserver = true; + break; + case '?': + usage(argv[0]); + return 1; + default: + abort (); + } + + if (optind != argc-1) { + cerr << "\n*** Directory missing ***" << endl; + usage(argv[0]); + } + dir = argv[optind]; + +#ifndef _MSC_VER + if (dir[dir.length()-1] != '/') dir = dir + "/"; +#else + if (dir[dir.length()-1] != '\\') dir = dir + "\\"; +#endif + + return 0; +} + +/** + * Main function. The Hough Transform or RANSAC are called for the scan indicated as + * argument. + * + */ +int main(int argc, char **argv) +{ + + cout << "(c) Jacobs University Bremen, gGmbH, 2010" << endl << endl; + + if (argc <= 1) { + usage(argv[0]); + } + // parsing the command line parameters + // init, default values if not specified + string dir; + double red = -1.0; + int start = 0; + int maxDist = -1; + int minDist = -1; + int octree = 0; + bool quiet = false; + IOType type = UOS; + plane_alg alg = RHT; + bool scanserver = false; + + cout << "Parse args" << endl; + parseArgs(argc, argv, dir, red, start, maxDist, minDist, octree, type, alg, quiet, scanserver); + int fileNr = start; + string planedir = dir + "planes"; + +#ifdef _MSC_VER + int success = mkdir(planedir.c_str()); +#else + int success = mkdir(planedir.c_str(), S_IRWXU|S_IRWXG|S_IRWXO); +#endif + if(success == 0) { + if(!quiet) { + cout << "Writing planes to " << planedir << endl; + } + } else if(errno == EEXIST) { + cout << "Directory " << planedir << " exists already. CONTINUE" << endl; + } else { + cerr << "Creating directory " << planedir << " failed" << endl; + exit(1); + } + + Scan::openDirectory(scanserver, dir, type, fileNr, fileNr); + Scan* scan = Scan::allScans.front(); + scan->setRangeFilter(maxDist, minDist); + scan->setReductionParameter(red, octree); + // scan->setSearchTreeParameter(nns_method, use_cuda); + scan->toGlobal(); + + double id[16]; + M4identity(id); + for(int i = 0; i < 10; i++) { + scan->transform(id, Scan::ICP, 0); // write end pose + } + + if (!quiet) cout << "start plane detection" << endl; + long starttime = GetCurrentTimeInMilliSec(); + if(alg >= RANSAC) { + vector points; + CollisionPlane * plane; + plane = new CollisionPlane(1.0); // 1.0 cm maxdist + Ransac(*plane, Scan::allScans[0], &points); + starttime = (GetCurrentTimeInMilliSec() - starttime); + + cout << "nr points " << points.size() << endl; + double nx,ny,nz,d; + plane->getPlane(nx,ny,nz,d); + if(!quiet) cout << "DONE " << endl; + + if(!quiet) cout << nx << " " << ny << " " << nz << " " << d << endl; + + /** + for (unsigned int i = 0; i < points.size(); i++) { + cerr << points[i][0] << " " << points[i][1] << " " << points[i][2] << endl; + } + */ + for(int i = points.size() - 1; i > -1; i--) { + delete[] points[i]; + } + + delete plane; + } else { + Hough hough(Scan::allScans[0], quiet); + starttime = (GetCurrentTimeInMilliSec() - starttime); + cout << "Time for Constructor call: " << starttime << endl; + + starttime = GetCurrentTimeInMilliSec(); + if (!quiet) cout << "algorithm: " << alg << endl; + // choose Hough method here + switch(alg) { + case RHT: hough.RHT(); + break; + case SHT: hough.SHT(); + break; + case PHT: hough.PHT(); + break; + case PPHT: hough.PPHT(); + break; + case APHT: hough.APHT(); + break; + default: usage(argv[0]); + exit(1); + break; + } + + hough.writePlanes(0); + cout << "Write Planes done" << endl; + starttime = (GetCurrentTimeInMilliSec() - starttime); + } + + cout << "Time for Plane Detection " << starttime << endl; + delete Scan::allScans[0]; + Scan::allScans.clear(); +} + diff --git a/.svn/pristine/28/28eb7096b5965f10c7bc9c09e036def77f419dd8.svn-base b/.svn/pristine/28/28eb7096b5965f10c7bc9c09e036def77f419dd8.svn-base new file mode 100644 index 0000000..661680d --- /dev/null +++ b/.svn/pristine/28/28eb7096b5965f10c7bc9c09e036def77f419dd8.svn-base @@ -0,0 +1,502 @@ +500 + 3.44443 -0.49800 + 1.43549 -0.49600 + 3.70477 -0.49400 + -3.82558 -0.49200 + 1.20130 -0.49000 + -2.62383 -0.48800 + -1.34321 -0.48600 + -0.35801 -0.48400 + -2.18813 -0.48200 + -1.98628 -0.48000 + -1.53262 -0.47800 + -1.45007 -0.47600 + -1.18593 -0.47400 + -0.55274 -0.47200 + -1.55943 -0.47000 + -3.10084 -0.46800 + 0.44254 -0.46600 + -0.63936 -0.46400 + 2.44989 -0.46200 + -2.14392 -0.46000 + 0.47310 -0.45800 + -1.64464 -0.45600 + 0.56628 -0.45400 + -0.80925 -0.45200 + -0.78961 -0.45000 + -1.12984 -0.44800 + -0.50715 -0.44600 + -1.75134 -0.44400 + -1.04231 -0.44200 + 0.94435 -0.44000 + 1.16306 -0.43800 + -2.87888 -0.43600 + -3.31084 -0.43400 + -3.06191 -0.43200 + 1.06977 -0.43000 + 3.50462 -0.42800 + 3.94848 -0.42600 + 1.56565 -0.42400 + -5.21742 -0.42200 + 1.94652 -0.42000 + -3.01182 -0.41800 + -3.88963 -0.41600 + -0.31319 -0.41400 + -5.71752 -0.41200 + -6.72218 -0.41000 + 3.23482 -0.40800 + 2.12675 -0.40600 + -0.10975 -0.40400 + -1.73790 -0.40200 + -0.86870 -0.40000 + -1.46022 -0.39800 + -0.22960 -0.39600 + 0.01596 -0.39400 + 0.00568 -0.39200 + -3.41221 -0.39000 + -0.47401 -0.38800 + -1.76305 -0.38600 + -0.49640 -0.38400 + -2.36184 -0.38200 + -0.09625 -0.38000 + -2.81448 -0.37800 + 3.14301 -0.37600 + 1.88025 -0.37400 + -2.61618 -0.37200 + -1.56239 -0.37000 + 0.95722 -0.36800 + 1.29773 -0.36600 + -1.45155 -0.36400 + -0.63342 -0.36200 + -0.78925 -0.36000 + 0.42473 -0.35800 + 1.39599 -0.35600 + 1.03934 -0.35400 + -0.11042 -0.35200 + 0.89123 -0.35000 + 0.93411 -0.34800 + 2.78027 -0.34600 + 3.37402 -0.34400 + -0.07986 -0.34200 + 0.79142 -0.34000 + -4.17148 -0.33800 + -1.26717 -0.33600 + -4.36262 -0.33400 + 1.17431 -0.33200 + -1.75656 -0.33000 + 0.40495 -0.32800 + 0.17572 -0.32600 + -0.27991 -0.32400 + -0.85524 -0.32200 + -1.23380 -0.32000 + -1.01889 -0.31800 + 1.08393 -0.31600 + -0.55989 -0.31400 + -1.91643 -0.31200 + -1.23897 -0.31000 + -0.85407 -0.30800 + 0.35218 -0.30600 + -1.57057 -0.30400 + 0.20665 -0.30200 + 0.19680 -0.30000 + 0.03116 -0.29800 + 0.09100 -0.29600 + 1.03416 -0.29400 + -0.16048 -0.29200 + -0.27530 -0.29000 + -0.11056 -0.28800 + -2.11332 -0.28600 + -0.51348 -0.28400 + -0.16360 -0.28200 + 1.30712 -0.28000 + -0.94392 -0.27800 + -0.06838 -0.27600 + -0.04095 -0.27400 + -2.00364 -0.27200 + 0.63950 -0.27000 + -1.02895 -0.26800 + -0.17454 -0.26600 + -0.86659 -0.26400 + 0.81698 -0.26200 + 0.51579 -0.26000 + -0.74525 -0.25800 + 2.43378 -0.25600 + 0.89364 -0.25400 + 1.81727 -0.25200 + -0.29667 -0.25000 + -0.99628 -0.24800 + 0.09452 -0.24600 + 1.73730 -0.24400 + 0.36819 -0.24200 + -1.56521 -0.24000 + 0.74916 -0.23800 + 0.56802 -0.23600 + -1.34157 -0.23400 + -0.65638 -0.23200 + -2.12183 -0.23000 + -2.35486 -0.22800 + -2.09369 -0.22600 + -3.30745 -0.22400 + -4.14763 -0.22200 + -3.56306 -0.22000 + 0.78907 -0.21800 + -3.74014 -0.21600 + -2.73770 -0.21400 + -4.43153 -0.21200 + -0.80243 -0.21000 + -0.17474 -0.20800 + -0.38250 -0.20600 + -0.98962 -0.20400 + -1.41965 -0.20200 + 0.90585 -0.20000 + 0.66850 -0.19800 + -0.81629 -0.19600 + -3.04422 -0.19400 + -0.94514 -0.19200 + 0.05209 -0.19000 + 0.21315 -0.18800 + -0.86960 -0.18600 + -1.72978 -0.18400 + -2.85623 -0.18200 + -3.15650 -0.18000 + -0.09176 -0.17800 + -1.27376 -0.17600 + -1.06533 -0.17400 + 1.21766 -0.17200 + 0.41706 -0.17000 + -0.30885 -0.16800 + 0.78344 -0.16600 + -1.76348 -0.16400 + 2.46496 -0.16200 + -0.32712 -0.16000 + 1.38586 -0.15800 + 0.33513 -0.15600 + 0.66116 -0.15400 + 0.92420 -0.15200 + -0.67200 -0.15000 + -0.90707 -0.14800 + -0.41053 -0.14600 + 0.62288 -0.14400 + 0.78497 -0.14200 + 0.99670 -0.14000 + -2.19972 -0.13800 + 0.21922 -0.13600 + -0.15003 -0.13400 + -0.72706 -0.13200 + 0.13596 -0.13000 + -0.00235 -0.12800 + 0.50025 -0.12600 + 0.80875 -0.12400 + -0.71010 -0.12200 + -3.85477 -0.12000 + 2.45549 -0.11800 + -2.87772 -0.11600 + 1.03987 -0.11400 + -1.41914 -0.11200 + -1.87414 -0.11000 + 1.32656 -0.10800 + 2.15281 -0.10600 + 3.25624 -0.10400 + -3.72420 -0.10200 + -4.01675 -0.10000 + 1.19241 -0.09800 + 0.35189 -0.09600 + -0.40223 -0.09400 + 0.84146 -0.09200 + 1.08746 -0.09000 + 2.20874 -0.08800 + -0.18822 -0.08600 + -1.29757 -0.08400 + -1.36022 -0.08200 + 0.54575 -0.08000 + -0.23008 -0.07800 + 0.00750 -0.07600 + 1.81600 -0.07400 + -0.07319 -0.07200 + 0.70587 -0.07000 + -2.67033 -0.06800 + 0.67446 -0.06600 + -0.21002 -0.06400 + 2.11396 -0.06200 + -0.94189 -0.06000 + 0.27803 -0.05800 + -0.92172 -0.05600 + 1.37776 -0.05400 + 2.72565 -0.05200 + 0.47208 -0.05000 + -3.33845 -0.04800 + -0.20695 -0.04600 + -2.18905 -0.04400 + -4.33413 -0.04200 + 0.17860 -0.04000 + -5.57817 -0.03800 + -0.32771 -0.03600 + 1.47321 -0.03400 + 2.33767 -0.03200 + 1.22282 -0.03000 + -1.48593 -0.02800 + 0.79435 -0.02600 + 0.54491 -0.02400 + 1.31706 -0.02200 + -1.26472 -0.02000 + -1.72634 -0.01800 + -3.85299 -0.01600 + 0.43717 -0.01400 + -3.39362 -0.01200 + -3.60823 -0.01000 + 0.18868 -0.00800 + 1.23035 -0.00600 + 1.70454 -0.00400 + -1.44766 -0.00200 + 0.99808 0.00000 + 0.24554 0.00200 + 1.44446 0.00400 + 0.96697 0.00600 + -3.30396 0.00800 + -5.97223 0.01000 + 1.22379 0.01200 + 6.00662 0.01400 + 4.43380 0.01600 + 2.01081 0.01800 + -2.74552 0.02000 + 1.19452 0.02200 + 3.81020 0.02400 + 2.04597 0.02600 + 0.66764 0.02800 + 2.68350 0.03000 + -2.85514 0.03200 + 0.21727 0.03400 + 1.88780 0.03600 + 2.23549 0.03800 + 1.57589 0.04000 + 1.92344 0.04200 + -1.78414 0.04400 + -0.67367 0.04600 + 0.19357 0.04800 + 1.00246 0.05000 + 2.13782 0.05200 + 1.90734 0.05400 + 0.43943 0.05600 + -0.55699 0.05800 + 1.76985 0.06000 + -0.77310 0.06200 + -0.33812 0.06400 + -0.85572 0.06600 + -2.49390 0.06800 + -3.17954 0.07000 + 2.86688 0.07200 + 2.03589 0.07400 + -1.34393 0.07600 + 1.01839 0.07800 + -0.15220 0.08000 + 1.17978 0.08200 + 1.96847 0.08400 + 1.90596 0.08600 + 3.72675 0.08800 + -0.65513 0.09000 + -1.45672 0.09200 + -0.08779 0.09400 + -0.39105 0.09600 + 1.88645 0.09800 + 2.34710 0.10000 + -2.65900 0.10200 + -0.47996 0.10400 + -2.51512 0.10600 + -3.59097 0.10800 + -1.62117 0.11000 + -2.43947 0.11200 + 3.50339 0.11400 + 3.05144 0.11600 + -2.73565 0.11800 + -1.31556 0.12000 + 1.85250 0.12200 + -1.03864 0.12400 + 0.79097 0.12600 + -0.12426 0.12800 + 0.48964 0.13000 + 1.42419 0.13200 + 0.55098 0.13400 + -0.78121 0.13600 + -0.01716 0.13800 + -1.27952 0.14000 + 1.91981 0.14200 + 0.25822 0.14400 + 0.68516 0.14600 + 1.25616 0.14800 + -1.40178 0.15000 + -0.99551 0.15200 + 1.45728 0.15400 + -1.66513 0.15600 + -1.20284 0.15800 + 1.84775 0.16000 + -1.91535 0.16200 + 0.34142 0.16400 + 1.90641 0.16600 + 1.55524 0.16800 + 1.77263 0.17000 + 1.25731 0.17200 + -0.66331 0.17400 + 0.93506 0.17600 + 0.87120 0.17800 + 0.73840 0.18000 + -1.48181 0.18200 + -1.76043 0.18400 + 0.96176 0.18600 + 1.29128 0.18800 + 1.20889 0.19000 + 0.78386 0.19200 + 1.54668 0.19400 + -0.25996 0.19600 + 0.93201 0.19800 + 1.30374 0.20000 + 2.23175 0.20200 + -0.42525 0.20400 + 1.12784 0.20600 + -0.42014 0.20800 + -0.00577 0.21000 + -1.14837 0.21200 + 2.48454 0.21400 + -0.51466 0.21600 + -0.06257 0.21800 + -1.25993 0.22000 + 1.26623 0.22200 + 3.05099 0.22400 + -1.84077 0.22600 + -0.36058 0.22800 + 2.65788 0.23000 + -0.17717 0.23200 + 1.68915 0.23400 + -1.53406 0.23600 + 1.78097 0.23800 + -1.24217 0.24000 + -4.17466 0.24200 + 0.80433 0.24400 + 0.70856 0.24600 + -0.96881 0.24800 + 0.87322 0.25000 + -2.45936 0.25200 + 2.95677 0.25400 + 1.81628 0.25600 + -0.85793 0.25800 + 1.02089 0.26000 + -1.05425 0.26200 + -0.29861 0.26400 + 1.69682 0.26600 + 1.07389 0.26800 + 0.22183 0.27000 + 1.72766 0.27200 + -0.99746 0.27400 + -2.14178 0.27600 + -1.67924 0.27800 + 1.56520 0.28000 + -0.86864 0.28200 + 2.65155 0.28400 + -2.27166 0.28600 + 0.68310 0.28800 + 0.84102 0.29000 + 0.64604 0.29200 + 0.68712 0.29400 + 1.56297 0.29600 + -0.68136 0.29800 + 1.25519 0.30000 + -1.38612 0.30200 + 2.36320 0.30400 + 5.40128 0.30600 + -1.14776 0.30800 + -1.36081 0.31000 + 0.07679 0.31200 + -0.17231 0.31400 + 1.19094 0.31600 + 0.09285 0.31800 + -0.85191 0.32000 + -0.43739 0.32200 + -0.22950 0.32400 + 2.21298 0.32600 + 0.75045 0.32800 + 0.97489 0.33000 + -0.62158 0.33200 + 1.10503 0.33400 + 0.36977 0.33600 + -0.32894 0.33800 + 2.13729 0.34000 + 4.42019 0.34200 + -2.80916 0.34400 + 2.28181 0.34600 + 2.59053 0.34800 + -1.52891 0.35000 + -1.35202 0.35200 + 1.27639 0.35400 + 0.28782 0.35600 + 0.83540 0.35800 + -0.32867 0.36000 + 1.16891 0.36200 + 0.02511 0.36400 + -0.71878 0.36600 + 0.69811 0.36800 + 1.29399 0.37000 + 0.86300 0.37200 + -0.12139 0.37400 + -0.28069 0.37600 + 3.07623 0.37800 + -2.91737 0.38000 + 0.16709 0.38200 + -1.60815 0.38400 + 0.02795 0.38600 + 1.19657 0.38800 + 0.04390 0.39000 + 0.95983 0.39200 + -1.83683 0.39400 + -1.69167 0.39600 + 3.15836 0.39800 + 2.24002 0.40000 + 0.45225 0.40200 + 1.35014 0.40400 + -1.67177 0.40600 + -0.97317 0.40800 + 4.20922 0.41000 + -0.03983 0.41200 + -0.35933 0.41400 + -1.49772 0.41600 + 2.72900 0.41800 + -2.61061 0.42000 + -0.26581 0.42200 + -4.30162 0.42400 + -3.55225 0.42600 + -5.60739 0.42800 + 2.26730 0.43000 + -0.05568 0.43200 + -0.14348 0.43400 + -1.73015 0.43600 + -1.01649 0.43800 + -2.39568 0.44000 + 3.41626 0.44200 + 2.23817 0.44400 + -1.02668 0.44600 + 3.18086 0.44800 + 0.71908 0.45000 + -0.37826 0.45200 + -0.39837 0.45400 + 0.50378 0.45600 + 0.38287 0.45800 + 2.95404 0.46000 + -1.16143 0.46200 + 0.89913 0.46400 + -0.82190 0.46600 + 1.30638 0.46800 + 0.89138 0.47000 + 0.85038 0.47200 + -1.38925 0.47400 + 3.74026 0.47600 + 4.60999 0.47800 + 1.31364 0.48000 + 5.17183 0.48200 + 1.82162 0.48400 + 1.09830 0.48600 + 1.36666 0.48800 + -0.09676 0.49000 + 0.74155 0.49200 + 1.21910 0.49400 + 1.20746 0.49600 + 0.82236 0.49800 + 1.54856 0.50000 + diff --git a/.svn/pristine/29/2916f27dd125f9ab3b39bda2151adcb112ae7d0d.svn-base b/.svn/pristine/29/2916f27dd125f9ab3b39bda2151adcb112ae7d0d.svn-base new file mode 100644 index 0000000..abc4a79 --- /dev/null +++ b/.svn/pristine/29/2916f27dd125f9ab3b39bda2151adcb112ae7d0d.svn-base @@ -0,0 +1,42 @@ + + +int glui_img_listbox_up[] = { 11, 17, /* width, height */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 191,191,191, 127,127,127, 127,127,127, 127,127,127, + 127,127,127, 127,127,127, 127,127,127, 127,127,127, 127,127,127, + 127,127,127, 0, 0, 0, 191,191,191, 255,255,255, 191,191,191, + 191,191,191, 191,191,191, 191,191,191, 191,191,191, 191,191,191, + 191,191,191, 127,127,127, 0, 0, 0, 191,191,191, 255,255,255, + 191,191,191, 191,191,191, 191,191,191, 191,191,191, 191,191,191, + 191,191,191, 191,191,191, 127,127,127, 0, 0, 0, 191,191,191, + 255,255,255, 191,191,191, 191,191,191, 191,191,191, 191,191,191, + 191,191,191, 191,191,191, 191,191,191, 127,127,127, 0, 0, 0, + 191,191,191, 255,255,255, 191,191,191, 191,191,191, 191,191,191, + 191,191,191, 191,191,191, 191,191,191, 191,191,191, 127,127,127, + 0, 0, 0, 191,191,191, 255,255,255, 191,191,191, 191,191,191, + 191,191,191, 191,191,191, 191,191,191, 191,191,191, 191,191,191, + 127,127,127, 0, 0, 0, 191,191,191, 255,255,255, 191,191,191, + 191,191,191, 191,191,191, 0, 0, 0, 191,191,191, 191,191,191, + 191,191,191, 127,127,127, 0, 0, 0, 191,191,191, 255,255,255, + 191,191,191, 191,191,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 191,191,191, 191,191,191, 127,127,127, 0, 0, 0, 191,191,191, + 255,255,255, 191,191,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 191,191,191, 127,127,127, 0, 0, 0, + 191,191,191, 255,255,255, 191,191,191, 191,191,191, 191,191,191, + 191,191,191, 191,191,191, 191,191,191, 191,191,191, 127,127,127, + 0, 0, 0, 191,191,191, 255,255,255, 191,191,191, 191,191,191, + 191,191,191, 191,191,191, 191,191,191, 191,191,191, 191,191,191, + 127,127,127, 0, 0, 0, 191,191,191, 255,255,255, 191,191,191, + 191,191,191, 191,191,191, 191,191,191, 191,191,191, 191,191,191, + 191,191,191, 127,127,127, 0, 0, 0, 191,191,191, 255,255,255, + 191,191,191, 191,191,191, 191,191,191, 191,191,191, 191,191,191, + 191,191,191, 191,191,191, 127,127,127, 0, 0, 0, 191,191,191, + 255,255,255, 191,191,191, 191,191,191, 191,191,191, 191,191,191, + 191,191,191, 191,191,191, 191,191,191, 127,127,127, 0, 0, 0, + 191,191,191, 255,255,255, 255,255,255, 255,255,255, 255,255,255, + 255,255,255, 255,255,255, 255,255,252, 255,255,255, 127,127,127, + 0, 0, 0, 191,191,191, 191,191,191, 191,191,191, 191,191,191, + 191,191,191, 191,191,191, 191,191,191, 191,191,191, 191,191,191, + 191,191,191, 0, 0, 0, +}; diff --git a/.svn/pristine/29/298c79a7583e5f6fe0e26fd4a112735e64c30189.svn-base b/.svn/pristine/29/298c79a7583e5f6fe0e26fd4a112735e64c30189.svn-base new file mode 100644 index 0000000..996f21b --- /dev/null +++ b/.svn/pristine/29/298c79a7583e5f6fe0e26fd4a112735e64c30189.svn-base @@ -0,0 +1,703 @@ +/* +This is a Optical-Character-Recognition program +Copyright (C) 2000-2009 Joerg Schulenburg + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + see README for EMAIL-address +*/ + +#include +#include +#include "pgm2asc.h" +#include "gocr.h" +#include "progress.h" + +/* measure mean thickness as an criteria for big chars */ +int mean_thickness( struct box *box2 ){ + int mt=0, i, y, dx=box2->x1-box2->x0+1, dy; + for (y=box2->y0+1; yy1; y++) { + i=loop(box2->p,box2->x0+0,y,dx,JOB->cfg.cs,0,RI); + i=loop(box2->p,box2->x0+i,y,dx,JOB->cfg.cs,1,RI); + mt+=i; + } + dy = box2->y1 - box2->y0 - 1; + if (dy) mt=(mt+dy/2)/dy; + return mt; +} + +/* ---- remove dust --------------------------------- + What is dust? I think, this is a very small pixel cluster without + neighbours. Of course not all dust clusters can be detected correct. + This feature should be possible to switch off via option. + -> may be, all clusters should be stored here? + speed is very slow, I know, but I am happy that it is working well +*/ +int remove_dust( job_t *job ){ + /* new dust removing */ + /* FIXME jb:remove pp */ + pix *pp = &job->src.p; + int i1,i,j,x,y,x0,x1,y0,y1,nC,sX,sY,sP, cs,vvv=job->cfg.verbose; + struct box *box2; +#define HISTSIZE 220 /* histogramm size */ + int histo[HISTSIZE]; + cs=job->cfg.cs; sP=sX=sY=nC=0; + /* + * count number of black pixels within a box and store it in .dots + * later .dots is re-used for number of objects belonging to the character + * should be done in the flood-fill algorithm + * volume of white pixels is estimated to big here (left/right rot) + * ToDo: mean thickness of char lines? + * or interval nesting (minP..maxP) to remove outriders + */ + j=0; + for (i1=0;i1res.boxlist)) { + box2 = (struct box *)list_get_current(&(job->res.boxlist)); + if (!box2->num_frames) continue; + if (box2->frame_vol[0]<0) continue; /* don't count inner holes */ + j = abs(box2->frame_vol[0]); + if ((box2->y1-box2->y0+1)>3) { + nC++; /* only count potential chars v0.42 */ + sX+=box2->x1 - box2->x0 + 1; + sY+=box2->y1 - box2->y0 + 1; + sP+=j; + } + if (jres.boxlist)); + + if (job->cfg.dust_size < 0 && nC > 0) { /* auto detection */ + /* this formula is empirically, high resolution scans have bigger dust */ + /* maximum allowed dustsize (min=4*7 ca. 32) + * does not work for background pattern! + */ + job->cfg.dust_size = ( ( sX/nC ) * ( sY/nC ) + 16) / 32; + if (vvv) fprintf(stderr, "# remove.c remove_dust(): "); + if (vvv) fprintf(stderr, "\n# dust size detection, vol num" + " #obj=%d maxDust=%d mpixel= %3d mxy= %2d %2d", + nC, job->cfg.dust_size, sP/nC, sX/nC, sY/nC); + /* we assume that for random dust applies histo[i+1]=nC) continue; /* v0.42 lot of pixels -> bg pattern < 3 */ + if (i>=job->cfg.dust_size) break; /* maximum = mean size / 32 */ + if (histo[i/*+1*/]==0) break; /* bad statistic */ + if ((histo[i+2]+histo[i+3]) + >=(histo[i] +histo[i+1])) break; /* no noise, but to late? */ + if ( histo[i-1] > 1024*histo[i] && + 2*histo[i+1] >=histo[i]) break; /* bg pattern */ + } + if (vvv) fprintf(stderr," break"); + if (vvv) for (i1=0,j=i+1;j20) break; /* dont do excessive output */ + } + } + job->cfg.dust_size=i-1; + /* what is the statistic of random dust? + * if we have p pixels on a x*y image we should have + * (p/(x*y))^1 * (x*y) = p singlets + * (p/(x*y))^2 * (x*y) = p^2/(x*y) doublets and + * (p/(x*y))^3 * (x*y) = p^3/(x*y)^2 triplets + */ + if (vvv) fprintf(stderr,"\n# auto dust size = %d nC= %3d .. %3d" + " avD= %2d %2d .. %2d %2d\n", + job->cfg.dust_size, nC, job->res.numC, + (job->res.sumX+job->res.numC/2)/job->res.numC, + (job->res.sumY+job->res.numC/2)/job->res.numC, sX/nC, sY/nC); + } + if (job->cfg.dust_size) + { i=0; + if(vvv){ + fprintf(stderr,"# remove dust of size %2d",job->cfg.dust_size); + /* Warning: better use (1/(x*y))^2 as 1/((x*y)^2), + * because (x*y)^2 may overflow */ + fprintf(stderr," histo=%d,%d(?=%d),%d(?=%d),...\n# ...", + histo[1],histo[2],histo[1]*histo[1]/(pp->x*pp->y), + histo[3], histo[1]*histo[1]/(pp->x*pp->y) + *histo[1]/(pp->x*pp->y)); + } + i = 0; + for_each_data(&(job->res.boxlist)) { + box2 = (struct box *)list_get_current(&(job->res.boxlist)); + x0=box2->x0;x1=box2->x1;y0=box2->y0;y1=box2->y1; /* box */ + j=abs(box2->frame_vol[0]); + if(j<=job->cfg.dust_size) /* remove this tiny object */ + { /* here we should distinguish dust and i-dots, + * may be we should sort out dots to a seperate dot list and + * after line detection decide, which is dust and which not + * dust should be removed to make recognition easier (ToDo) + */ +#if 0 + if(get_bw((3*x0+x1)/4,(x0+3*x1)/4,y1+y1-y0+1,y1+8*(y1-y0+1),pp,cs,1)) + continue; /* this idea was to simple, see kscan003.jpg sample */ +#endif + /* remove from average */ + job->res.numC--; + job->res.sumX-=x1-x0+1; + job->res.sumY-=y1-y0+1; + /* remove pixels (should only be done with dust) */ + for(x=x0;x<=x1;x++) + for(y=y0;y<=y1;y++){ put(pp,x,y,0,255&~7); } + /* remove from list */ + list_del(&(job->res.boxlist),box2); + /* free memory */ + free_box(box2); + i++; /* count as dust particle */ + continue; + } + } end_for_each(&(job->res.boxlist)); + if(vvv)fprintf(stderr," %3d cluster removed, nC= %3d\n",i,job->res.numC); + } + /* reset dots to 0 and remove white pixels (new) */ + i=0; + for_each_data(&(job->res.boxlist)) { + box2 = ((struct box *)list_get_current(&(job->res.boxlist))); + if (box2->frame_vol[0]<0) continue; /* for black areas only */ + x0=box2->x0;x1=box2->x1;y0=box2->y0;y1=box2->y1; /* box */ + if (x1-x0>16 && y1-y0>30) /* only on large enough chars */ + for(x=x0+1;x<=x1-1;x++) + for(y=y0+1;y<=y1-1;y++){ + if( pixel_atp(pp,x ,y )>=cs + && pixel_atp(pp,x-1,y ) res.boxlist)); + if (vvv) fprintf(stderr,"# ... %3d white pixels removed, cs=%d nC= %3d\n", + i,cs,job->res.numC); + return 0; +} + +/* ---- smooth big chars --------------------------------- + * Big chars often do not have smooth borders, which let fail + * the engine. Here we smooth the borders of big chars (>7x16). + * Smoothing is important for b/w scans, where we often have + * comb like pattern on a vertikal border. I also received + * samples with lot of white pixels (sample: 04/02/25). + * ToDo: obsolete if vector code is complete + */ +int smooth_borders( job_t *job ){ + pix *pp = &job->src.p; + int ii=0,x,y,x0,x1,y0,y1,dx,dy,cs,i0,i1,i2,i3,i4,n1,n2, + cn[8],cm,vvv=job->cfg.verbose; /* dust found */ + struct box *box2; + cs=job->cfg.cs; n1=n2=0; + if(vvv){ fprintf(stderr,"# smooth big chars 7x16 cs=%d",cs); } + /* filter for each big box */ + for_each_data(&(job->res.boxlist)) { n2++; /* count boxes */ + box2 = (struct box *)list_get_current(&(job->res.boxlist)); + /* do not touch small characters! but how we define small characters? */ + if (box2->x1-box2->x0+1<7 || box2->y1-box2->y0+1<16 ) continue; + if (box2->c==PICTURE) continue; + if (mean_thickness(box2)<3) continue; + n1++; /* count boxes matching big-char criteria */ + x0=box2->x0; y0=box2->y0; + x1=box2->x1; y1=box2->y1; + dx=x1-x0+1; dy=y1-y0-1; + /* out_x(box2); + * dont change to much! only change if absolutely sure! + * ....... 1 2 3 + * ex: .?##### 0 * 4 + * ....... 7 6 5 + * we should also avoid removing lines by sytematic remove + * from left end to the right, so we concern also about distance>1 + */ + for(x=box2->x0;x<=box2->x1;x++) + for(y=box2->y0;y<=box2->y1;y++){ /* filter out high frequencies */ + /* this is a very primitive solution, only for learning */ + cn[0]=getpixel(pp,x-1,y); + cn[4]=getpixel(pp,x+1,y); /* horizontal */ + cn[2]=getpixel(pp,x,y-1); + cn[6]=getpixel(pp,x,y+1); /* vertical */ + cn[1]=getpixel(pp,x-1,y-1); + cn[3]=getpixel(pp,x+1,y-1); /* diagonal */ + cn[7]=getpixel(pp,x-1,y+1); + cn[5]=getpixel(pp,x+1,y+1); + cm=getpixel(pp,x,y); + /* check for 5 other and 3 same surrounding pixels */ + for (i0=0;i0<8;i0++) + if ((cn[i0 ]=5 && i3>=3 && i4>=3) { /* change only on borders */ + ii++; /* white : black */ + put(pp,x,y,7,((cmx0,y-box2->y0,i0,i1,i2,i3,i3,cm,getpixel(pp,x,y),cs); +#endif + } + } +#if 0 /* debugging */ + out_x(box2); +#endif + } end_for_each(&(job->res.boxlist)); + if(vvv)fprintf(stderr," ... %3d changes in %d of %d\n",ii,n1,n2); + return 0; +} + +/* test if a corner of box1 is within box2 */ +int box_nested( struct box *box1, struct box *box2){ + /* box1 in box2, +1..-1 frame for pixel-patterns */ + if ( ( ( box1->x0>=box2->x0-1 && box1->x0<=box2->x1+1 ) + || ( box1->x1>=box2->x0-1 && box1->x1<=box2->x1+1 ) ) + && ( ( box1->y0>=box2->y0-1 && box1->y0<=box2->y1+1 ) + || ( box1->y1>=box2->y0-1 && box1->y1<=box2->y1+1 ) ) ) + return 1; + return 0; +} + +/* test if box1 is within box2 */ +int box_covered( struct box *box1, struct box *box2){ + /* box1 in box2, +1..-1 frame for pixel-patterns */ + if ( ( box1->x0>=box2->x0-1 && box1->x1<=box2->x1+1 ) + && ( box1->y0>=box2->y0-1 && box1->y1<=box2->y1+1 ) ) + return 1; + return 0; +} + +/* ---- remove pictures ------------------------------------------ + * may be, not deleting or moving to another list is much better! + * should be renamed to remove_pictures and border boxes + */ +int remove_pictures( job_t *job){ + struct box *box4,*box2; + int j=0, j2=0, num_del=0; + + if (job->cfg.verbose) + fprintf(stderr, "# "__FILE__" L%d: remove pictures\n# ...", + __LINE__); + + /* ToDo: output a list for picture handle scripts */ + j=0; j2=0; + if(job->cfg.verbose) + for_each_data(&(job->res.boxlist)) { + box4 = (struct box *)list_get_current(&(job->res.boxlist)); + if (box4->c==PICTURE) j++; else j2++; + } end_for_each(&(job->res.boxlist)); + if (job->cfg.verbose) + fprintf(stderr," status: pictures= %d other= %d nC= %d\n# ...", + j, j2, job->res.numC); + + /* remove table frames */ + if (job->res.numC > 8) + for_each_data(&(job->res.boxlist)) { + box2 = (struct box *)list_get_current(&(job->res.boxlist)); + if (box2->c==PICTURE + && box2->num_ac==0 /* dont remove barcodes */ + && box2->x1-box2->x0+1>box2->p->x/2 /* big table? */ + && box2->y1-box2->y0+1>box2->p->y/2 ){ j=0; + /* count boxes nested with the picture */ + for_each_data(&(job->res.boxlist)) { + box4 = (struct box *)list_get_current(&(job->res.boxlist)); + if( box4 != box2 ) /* not count itself */ + if (box_nested(box4,box2)) j++; /* box4 in box2 */ + } end_for_each(&(job->res.boxlist)); + if( j>8 ){ /* remove box if more than 8 chars are within box */ + list_del(&(job->res.boxlist), box2); /* does not work proper ?! */ + free_box(box2); num_del++; + } + } + } end_for_each(&(job->res.boxlist)); + if (job->cfg.verbose) + fprintf(stderr, " deleted= %d pictures (table frames)\n# ...", + num_del); + num_del=0; + + /* remove dark-border-boxes (typical for hard copy of book site, + * or spam random border) */ + if (job->res.numC > 1) /* dont remove the only char */ + for_each_data(&(job->res.boxlist)) { + box2 = (struct box *)list_get_current(&(job->res.boxlist)); + if (box2->c!=PICTURE) continue; // ToDo: PICTUREs set already? + if ( box2->x1-box2->x0+1 > box2->p->x/2 + && box2->y1-box2->y0+1 > box2->p->y/2 ) continue; + j=0; + if (box2->x0==0) j++; + if (box2->y0==0) j++; /* on border? */ + if (box2->x1==box2->p->x-1) j++; + if (box2->y1==box2->p->y-1) j++; + if (j>2){ /* ToDo: check corner pixel */ + int cs=job->cfg.cs; + j=0; + if (getpixel(box2->p,box2->x0,box2->y0)p,box2->x1,box2->y0)p,box2->x0,box2->y1)p,box2->x1,box2->y1)2) { + list_del(&(job->res.boxlist), box2); + free_box(box2); num_del++; + } + } + } end_for_each(&(job->res.boxlist)); + if (job->cfg.verbose) + fprintf(stderr, " deleted= %d pictures (on border)\n# ...", + num_del); + num_del=0; + + j=0; j2=0; + if(job->cfg.verbose) + for_each_data(&(job->res.boxlist)) { + box4 = (struct box *)list_get_current(&(job->res.boxlist)); + if( box4->c==PICTURE ) j++; else j2++; + } end_for_each(&(job->res.boxlist)); + if (job->cfg.verbose) + fprintf(stderr," status: pictures= %d other= %d nC= %d\n# ...", + j, j2, job->res.numC); + + for(j=1;j;){ j=0; /* this is only because list_del does not work */ + /* can be slow on gray images */ + for_each_data(&(job->res.boxlist)) { + box2 = (struct box *)list_get_current(&(job->res.boxlist)); + if( box2->c==PICTURE && box2->num_ac==0) + for(j=1;j;){ /* let it grow to max before leave */ + j=0; box4=NULL; + /* find boxes nested with the picture and remove */ + /* its for pictures build by compounds */ + for_each_data(&(job->res.boxlist)) { + box4 = (struct box *)list_get_current(&(job->res.boxlist)); + if( box4!=box2 /* not destroy self */ + && (box4->num_ac==0) /* dont remove barcodes etc. */ + && (/* box4->c==UNKNOWN || */ + box4->c==PICTURE) ) /* dont remove valid chars */ + if( + /* box4 in box2, +1..-1 frame for pixel-patterns */ + box_nested(box4,box2) + /* or box2 in box4 */ + || box_nested(box2,box4) /* same? */ + ) + if ( box4->x1-box4->x0+1>2*job->res.avX + || box4->x1-box4->x0+1res.avX/2 + || box4->y1-box4->y0+1>2*job->res.avY + || box4->y1-box4->y0+1res.avY/2 + || box_covered(box4,box2) ) /* box4 completely within box2 */ + /* dont remove chars! see rotate45.fig */ + { + /* do not remove boxes in inner loop (bug?) ToDo: check why! */ + /* instead we leave inner loop and mark box4 as valid */ + if( box4->x0x0 ) box2->x0=box4->x0; + if( box4->x1>box2->x1 ) box2->x1=box4->x1; + if( box4->y0y0 ) box2->y0=box4->y0; + if( box4->y1>box2->y1 ) box2->y1=box4->y1; + j=1; /* mark box4 as valid */ + break; /* and leave inner loop */ + } + } end_for_each(&(job->res.boxlist)); + if (j!=0 && box4!=NULL) { /* check for valid box4 */ + /* ToDo: melt */ + list_del(&(job->res.boxlist), box4); /* does not work proper ?! */ + free_box(box4); /* break; ToDo: necessary to leave after del??? */ + num_del++; + } + + } + } end_for_each(&(job->res.boxlist)); + } + + if (job->cfg.verbose) + fprintf(stderr, " deleted= %d nested pictures\n# ...", num_del); + + /* output a list for picture handle scripts */ + j=0; j2=0; + if(job->cfg.verbose) + for_each_data(&(job->res.boxlist)) { + box4 = (struct box *)list_get_current(&(job->res.boxlist)); + if( box4->c==PICTURE ) { + fprintf(stderr," found picture at %4d %4d size %4d %4d\n# ...", + box4->x0, box4->y0, box4->x1-box4->x0+1, box4->y1-box4->y0+1 ); + j++; + } else j2++; + } end_for_each(&(job->res.boxlist)); + if (job->cfg.verbose) + fprintf(stderr," status: pictures= %d other= %d nC= %d\n", + j, j2, job->res.numC); + return 0; +} + + + + /* ---- remove melted serifs --------------------------------- v0.2.5 + >>v<< + ##########.######## <-y0 + ################### like X VW etc. + ...###.......###... <-y + ...###......###.... + j1 j2 j3 + - can generate new boxes if two characters were glued + */ +int remove_melted_serifs( pix *pp ){ + int x,y,j1,j2,j3,j4,i2,i3,i,ii,ni,cs,x0,x1,xa,xb,y0,y1,vvv=JOB->cfg.verbose; + struct box *box2, *box3; + progress_counter_t *pc = NULL; + + cs=JOB->cfg.cs; i=0; ii=0; ni=0; + for_each_data(&(JOB->res.boxlist)) { + ni++; + } end_for_each(&(JOB->res.boxlist)); + pc = open_progress(ni,"remove_melted_serifs"); + ni = 0; + + if(vvv){ fprintf(stderr,"# searching melted serifs ..."); } + for_each_data(&(JOB->res.boxlist)) { + box2 = (struct box *)list_get_current(&(JOB->res.boxlist)); + if (box2->c != UNKNOWN) continue; /* dont try on pictures */ + x0=box2->x0; x1=box2->x1; + y0=box2->y0; y1=box2->y1; /* box */ + /* upper serifs */ + for(j1=x0;j1+4x1+1) break; + y =loop(pp,j1,y0+1,x1-x0,cs,1,RI); if(y>x) x=y; if(j1+x>x1+1) break; + /* measure mean thickness of serif pos: (j1,y0)-(j1+x,y0) */ + for(j2=j3=j4=0,i2=j1;i2y1-y0) break; + i3+=loop(pp,i2,y0+i3,y1-y0,cs,1,DO); if(8*i3>y1-y0) continue; + if(8*i3j3)j3=i3; + j3 = j3 + loop(pp,j3,y ,x1-j3,cs,1,RI); + i3 = loop(pp,j3,y ,x1-j3,cs,0,RI); + if(i3<2 || j3>=j1+x){j1+=x;continue;} + j3 += i3/2; + + if(x>5) + { + i++; /* snip! */ + for(y=0;y<(y1-y0+1+4)/8;y++)put(pp,j2,y0+y,255,128+64); /* clear highest bit */ + if(vvv&4){ + fprintf(stderr,"\n"); + out_x(box2); + fprintf(stderr,"# melted serifs corrected on %d %d j1=%d j3=%d", + j2-x0, y, j1-x0, j3-x0); + // ToDo: vector cut with line from xa,ya to xb,yb + // two frames of double melted MN become one frame if cut one + // of the melted serifs (new function cut_frames_at_line()) + } + for(xb=0,xa=0;xa<(x1-x0+4)/8;xa++){ /* detect vertical gap */ + i3=y1; + if(box2->m3>y0 && 2*y1>box2->m3+box2->m4) i3=box2->m3; /* some IJ */ + if( loop(pp,j2-xa,i3,i3-y0,cs,0,UP) > (y1-y0+1)/2 + && loop(pp,j2,(y0+y1)/2,xa+1,cs,0,LE) >=xa ){ xb=-xa; break; } + if( loop(pp,j2+xa,i3,i3-y0,cs,0,UP) > (y1-y0+1)/2 + && loop(pp,j2,(y0+y1)/2,xa+1,cs,0,RI) >=xa ){ xb= xa; break; } + } + if( get_bw(j2 ,j2 ,y0,(y0+y1)/2,pp,cs,1) == 0 + && get_bw(j2+xb,j2+xb,(y0+y1)/2,i3,pp,cs,1) == 0 ) + { /* divide */ + box3=malloc_box(box2); + box3->x1=j2-1; + box2->x0=j2+1; x1=box2->x1; + cut_box(box2); /* cut vectors outside the box, see box.c */ + cut_box(box3); + box3->num=JOB->res.numC; + list_ins(&(JOB->res.boxlist),box2,box3); JOB->res.numC++; ii++; /* insert box3 before box2 */ + if(vvv&4) fprintf(stderr," => splitted"); + j1=x0=box2->x0; x=0; /* hopefully ok, UVW */ + } + } + j1+=x; + } + /* same on lower serifs -- change this later to better function + // #### ### + // #### v ### # <-y + // #################### <-y1 + // j1 j2 j3 + */ + for(j1=x0;j1x1+1) break; + y =loop(pp,j1,y1-1,x1-x0,cs,1,RI); if(y>x) x=y; if(j1+x>x1+1) break; + /* measure mean thickness of serif */ + for(j2=j3=j4=0,i2=j1;i2y1-y0) break; + i3+=loop(pp,i2,y1-i3,y1-y0,cs,1,UP); if(8*i3>y1-y0) continue; + if(8*i3j3)j3=i3; + j3 = j3 + loop(pp,j3,y ,x1-j3,cs,1,RI); + i3 = loop(pp,j3,y,x1-j3,cs,0,RI); + if(i3<2 || j3>=j1+x){j1+=x;continue;} + j3 += i3/2; + + /* y =y1-(y1-y0+1+4)/8; */ + if(x>5) + { + i++; /* snip! */ + for(i3=0;i3<(y1-y0+1+4)/8;i3++) + put(pp,j2,y1-i3,255,128+64); /* clear highest bit */ + if(vvv&4){ + fprintf(stderr,"\n"); + out_x(box2); + fprintf(stderr,"# melted serifs corrected on %d %d j1=%d j3=%d",j2-x0,y-y0,j1-x0,j3-x0); + } + for(xb=0,xa=0;xa<(x1-x0+4)/8;xa++){ /* detect vertical gap */ + if( loop(pp,j2-xa,y0,y1-y0,cs,0,DO) > (y1-y0+1)/2 + && loop(pp,j2,(y0+y1)/2,xa+1,cs,0,LE) >=xa ){ xb=-xa; break; } + if( loop(pp,j2+xa,y0,y1-y0,cs,0,DO) > (y1-y0+1)/2 + && loop(pp,j2,(y0+y1)/2,xa+1,cs,0,RI) >=xa ){ xb= xa; break; } + } + if( get_bw(j2 ,j2 ,(y0+y1)/2,y1,pp,cs,1) == 0 + && get_bw(j2+xb,j2+xb,y0,(y0+y1)/2,pp,cs,1) == 0 ) + { /* divide */ + box3=malloc_box(box2); + box3->x1=j2-1; + box2->x0=j2; x1=box2->x1; + cut_box(box2); /* cut vectors outside the box */ + cut_box(box3); + box3->num=JOB->res.numC; + list_ins(&(JOB->res.boxlist),box2,box3); JOB->res.numC++; ii++; + /* box3,box2 in correct order??? */ + if(vvv&4) fprintf(stderr," => splitted"); + j1=x0=box2->x0; x=0; /* hopefully ok, NMK */ + } + } + j1+=x; + } + progress(ni++,pc); + } end_for_each(&(JOB->res.boxlist)); + close_progress(pc); + if(vvv)fprintf(stderr," %3d cluster corrected, %d new boxes\n",i,ii); + return 0; +} + +/* remove black borders often seen on bad scanned copies of books + - dust around the border + */ +int remove_rest_of_dust() { + int i1, i2, vvv = JOB->cfg.verbose, x0, x1, y0, y1, cnt=0; + struct box *box2, *box4; + progress_counter_t *pc = NULL; + + i1 = i2 = 0; /* counter for removed boxes */ + if (vvv) + fprintf(stderr, "# detect dust (avX,nC), ... "); + /* remove fragments from border */ + for_each_data(&(JOB->res.boxlist)) { + box2 = (struct box *)list_get_current(&(JOB->res.boxlist)); + if (box2->c == UNKNOWN) { + x0 = box2->x0; x1 = box2->x1; + y0 = box2->y0; y1 = box2->y1; /* box */ + /* box in char ??? */ + if ( 2 * JOB->res.numC * (y1 - y0 + 1) < 3 * JOB->res.sumY + && ( y1 < box2->p->y/4 || y0 > 3*box2->p->y/4 ) /* not single line */ + && JOB->res.numC > 1 /* do not remove everything */ + && ( box2->m4 == 0 ) ) /* remove this */ + { + JOB->res.numC--; /* ToDo: dont count tiny pixels */ + /* ToDo: res.sumX,Y must also be corrected */ + i1++; + list_del(&(JOB->res.boxlist), box2); + free_box(box2); + } + } + } end_for_each(&(JOB->res.boxlist)); + + pc = open_progress(JOB->res.boxlist.n,"remove_dust2"); + for_each_data(&(JOB->res.boxlist)) { + box2 = (struct box *)list_get_current(&(JOB->res.boxlist)); + progress(cnt++,pc); + if (box2->c == PICTURE) continue; + x0 = box2->x0; x1 = box2->x1; + y0 = box2->y0; y1 = box2->y1; /* box */ + /* remove tiny box2 if to far away from bigger boxes */ + /* ToDo: remove clouds of tiny pixels (count near small, compare with num bigger) */ + /* 0.42: remove far away pixel? ToDo: do it at earlier? */ + if (x1-x0+1<3 && y1-y0+1<3){ + int xn, yn, xs, ys; + int found=0; /* nearest bigger box */ + /* search near bigger box */ + for_each_data(&(JOB->res.boxlist)) { + box4 = (struct box *)list_get_current(&(JOB->res.boxlist)); + if (found || box4 == box2) continue; + if (box4->x1-box4->x0+1<3 && box4->y1-box4->y0+1<3) continue; + xs = box4->x1-box4->x0+1; + ys = box4->y1-box4->y0+1; + xn = abs((box4->x0+box4->x1)/2 - box2->x0); + yn = abs((box4->y0+box4->y1)/2 - box2->y0); + if (2*xn < 3*xs && 2*yn < 3*ys) { found=1; } + } end_for_each(&(JOB->res.boxlist)); + if (!found) { /* found nothing, box2 to far from big boxes */ + i2++; + list_del(&(JOB->res.boxlist), box2); + free_box(box2); + } + } + } end_for_each(&(JOB->res.boxlist)); + close_progress(pc); + if (vvv) + fprintf(stderr, " %3d + %3d boxes deleted, nC= %d ?\n", + i1, i2, JOB->res.numC); + + return 0; +} diff --git a/.svn/pristine/29/29c6895e972d84b5309d12ab77c2a0c561b90df1.svn-base b/.svn/pristine/29/29c6895e972d84b5309d12ab77c2a0c561b90df1.svn-base new file mode 100644 index 0000000..e0680e2 --- /dev/null +++ b/.svn/pristine/29/29c6895e972d84b5309d12ab77c2a0c561b90df1.svn-base @@ -0,0 +1,194 @@ +/* + * NurbsPath implementation + * + * Copyright (C) Christof Soeger, Marcel Junker, Anton Fluegge, Hannes Schulz, + Andreas Nuechter, Kai Lingemann, Jan Elseberg + * + * Released under the GPL version 3. + * + */ + +#include "show/NurbsPath.h" +#include +#include +/** + * Smoothes a given path, using the Cox-De-Boor algorithm to compute + * new nodes on the B-Spline. + * @param origP vector of PointXYs representing the path + * @param nump number of points, which should be computed for the smoothed path + * @return vector of PointXYs representing the smoothed path + */ +vector NurbsPath::camRatio = vector(); + +vector +NurbsPath::getNurbsPath(vector& origP, + unsigned int nump, int inter_by_dist){ + list pgnl; + list freepgnl; + for(unsigned int i=0; ipoint.x = origP[i].x; + p->point.y = origP[i].y; + pgnl.push_back(p); + freepgnl.push_back(p); + } + + vector vec = getNurbsPath(pgnl,nump,inter_by_dist); + + for(list::iterator it = freepgnl.begin();it!=freepgnl.end();it++) { + PGNode *p = *it; + delete p; + } + pgnl.clear(); + freepgnl.clear(); + + return vec; +} + +/** + * Smoothes a given path, using the Cox-De-Boor algorithm to compute + * new nodes on the B-Spline. + * @param origP list of PGNode*s representing the path + * @param nump number of points, which should be computed for the smoothed path + * @return vector of PointXYs representing the smoothed path + */ +vector +NurbsPath::getNurbsPath(list& origP, + unsigned int nump, int inter_by_dist){ + ivN = origP.size(); + if(ivN<=1){ + vector pv; + return pv; + } + + //hack for short paths + if(ivN==2){ + list::iterator it = origP.begin(); + PGNode* tmpStart = *it; + it++; + origP.push_back(*it); + origP.push_front(tmpStart); + ivN=4; + } + if(ivN==3){ + list::iterator it = origP.begin(); + it++; + origP.insert(it, (*it)); + ivN=4; + } + //end short path hack + + float *origPX = new float[ivN]; + float *origPY = new float[ivN]; + list::iterator it; + unsigned int i=0; + for(it=origP.begin();it!=origP.end();it++,i++){ + origPX[i] = (*it)->point.x; + origPY[i] = (*it)->point.y; + } + + ivDegree = 3; + ivOrder = ivDegree+1; + ivNumKnots = ivN + ivDegree; + if(inter_by_dist) { + ivNumP = nump; + } else { + ivNumP = camRatio.size(); + } + float *ivpKnots = new float[ivNumKnots+1]; + + for(i=0;i<=ivDegree;i++) + ivpKnots[i] = 0.0f; + + int numIntKnots = ((ivNumKnots-ivDegree)-(ivOrder)); + + for(i=ivOrder; i < ivNumKnots - ivDegree ; i++) + ivpKnots[i] = ((float)(i-ivDegree))/(numIntKnots+1); + + for(i=ivNumKnots-ivDegree;i<=ivNumKnots;i++) + ivpKnots[i] = 1.f; + + vector nurbsPath; + nurbsPath.reserve(ivNumP); + PointXY outPoint; + float out[2]={0,0}; + + for(i=0;i<=ivNumP; i++){ + out[0] = 0; + out[1] = 0; + if(i!=ivNumP) + if(inter_by_dist) { + getOutpoint((float)i/ivNumP,out,origPX,origPY,ivpKnots); + } else { + getOutpoint(camRatio[i],out,origPX,origPY,ivpKnots); + } + else + getOutpoint(.999999,out,origPX,origPY,ivpKnots); + + outPoint.x = out[0]; + outPoint.y = out[1]; + nurbsPath.push_back(outPoint); + } + + delete [] origPX; + delete [] origPY; + delete [] ivpKnots; + + return nurbsPath; +} + + +/** + * Implementation of the Cox-De-Boor algorithm. + * The implementation of this algorithm is inspired by the Nurbs Curve Example on + * http://www.robthebloke.org/opengl_programming.html + * @param u measure for the length already gone on the smoothed path for the point to be calculated (it should hold that 0 <= u < 1) + * @param i effect of which original path node on the output path should be computed + * @param k order (degree of the B-Splines plus 1) + * @param Knots array of knots needed to compute the B-Spline + */ +float +NurbsPath::coxDeBoor(float u,int i,int k,const float* Knots) { + if(k==1) + { + if( Knots[i] <= u && u < Knots[i+1] ) { + return 1.0f; + } + return 0.0f; + } + float Den1 = Knots[i+k-1] - Knots[i]; + float Den2 = Knots[i+k] - Knots[i+1]; + float Eq1=0,Eq2=0; + if(Den1>0) { + Eq1 = ((u-Knots[i]) / Den1) * coxDeBoor(u,i,k-1,Knots); + } + if(Den2>0) { + Eq2 = (Knots[i+k]-u) / Den2 * coxDeBoor(u,i+1,k-1,Knots); + } + return Eq1+Eq2; +} + +/** + * Computes one value on the B-Spline + * @param[in] t which point on the spline you want to compute (betwenn 0 for the start point and 1-epsilon for the end point of the smoothed path) + * @param[out] OutPoint[] array of two floats, will be overwritten with the x and y coordinate of the point + */ +void +NurbsPath::getOutpoint(float t,float OutPoint[],float*opx,float*opy,const float*knots) { + + // sum the effect of all CV's on the curve at this point to + // get the evaluated curve point + // + for(unsigned int i=0;i!=ivN;++i) { + + // calculate the effect of this point on the curve + float Val = coxDeBoor(t,i,ivOrder,knots); + + if(Val>0.0001f) { + + // sum effect of CV on this part of the curve + OutPoint[0] += Val * opx[i]; + OutPoint[1] += Val * opy[i]; + } + } +} diff --git a/.svn/pristine/29/29eaf387dd8a5787bc080318183fa67cb12a9705.svn-base b/.svn/pristine/29/29eaf387dd8a5787bc080318183fa67cb12a9705.svn-base new file mode 100644 index 0000000..cbe3ff3 --- /dev/null +++ b/.svn/pristine/29/29eaf387dd8a5787bc080318183fa67cb12a9705.svn-base @@ -0,0 +1,33 @@ +/** @file + * @brief Definition of the ICP error function minimization + * @author Andreas Nuechter. Jacobs University Bremen gGmbH, Germany + * @author Christian Mueller (Knut). Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __ICP6DORTHO_H__ +#define __ICP6DORTHO_H__ + +#include "icp6Dminimizer.h" + +/** + * @brief Implementation of the ICP error function minimization via singular value decomposition + */ +class icp6D_ORTHO : public icp6Dminimizer +{ +public: + /** + * Constructor + */ + icp6D_ORTHO(bool quiet = false) : icp6Dminimizer(quiet) {}; + /** + * Destructor + */ + virtual ~icp6D_ORTHO() {}; + + double Point_Point_Align(const vector& Pairs, double *alignxf, + const double centroid_m[3], const double centroid_d[3]); + + inline int getAlgorithmID() { return 3; }; +}; + +#endif diff --git a/.svn/pristine/2a/2a20232bb18eb5fff18f6930e34390e4c1bbfc83.svn-base b/.svn/pristine/2a/2a20232bb18eb5fff18f6930e34390e4c1bbfc83.svn-base new file mode 100644 index 0000000..854aed0 --- /dev/null +++ b/.svn/pristine/2a/2a20232bb18eb5fff18f6930e34390e4c1bbfc83.svn-base @@ -0,0 +1,81361 @@ +360 x 225 +10.2 0 2.84217e-14 +10.9996 -0.0721153 0.0633548 +10.9983 -0.144225 0.126704 +10.9962 -0.216324 0.190045 +11.8928 -0.312003 0.274101 +12.4881 -0.409621 0.359861 +12.1833 -0.479681 0.42141 +12.7761 -0.587054 0.515739 +12.6691 -0.66555 0.5847 +13.7575 -0.813424 0.71461 +13.349 -0.877394 0.770809 +14.5328 -1.05128 0.923573 +15.1167 -1.19363 1.04863 +15.2016 -1.3012 1.14313 +17.3696 -1.60223 1.40759 +31.4288 -3.10849 2.73088 +35.4516 -3.7431 3.28839 +41.242 -4.63053 4.06802 +41.6804 -4.95949 4.35702 +42.8048 -5.38136 4.72764 +47.8617 -6.34014 5.56995 +59.6836 -8.31026 7.30074 +114.654 -16.743 14.7091 +116.807 -17.8536 15.6847 +116.986 -18.6811 16.4117 +117.937 -19.6425 17.2563 +118.873 -20.6177 18.1131 +119.504 -21.5541 18.9357 +119.346 -22.3549 19.6393 +119.566 -23.2305 20.4085 +119.871 -24.1302 21.1989 +119.972 -24.9955 21.959 +120.542 -25.9674 22.8129 +120.332 -26.778 23.525 +120.877 -27.7636 24.3909 +120.264 -28.4872 25.0266 +120.404 -29.3907 25.8203 +120.911 -30.3934 26.7012 +120.27 -31.1116 27.3322 +120.375 -32.0242 28.134 +119.999 -32.8122 28.8262 +120.175 -33.7555 29.6549 +120.525 -34.7575 30.5352 +120.117 -35.5463 31.2282 +119.792 -36.3606 31.9436 +120.012 -37.3458 32.8091 +120.034 -38.2779 33.6279 +118.576 -38.7339 34.0286 +116.751 -39.0514 34.3075 +115.11 -39.4103 34.6228 +112.201 -39.3062 34.5314 +110.837 -39.7169 34.8922 +107.945 -39.5529 34.748 +105.602 -39.555 34.7499 +102.198 -39.1204 34.3681 +99.8774 -39.0604 34.3154 +96.5062 -38.5498 33.8668 +94.385 -38.5 33.823 +92.7097 -38.6073 33.9174 +91.2133 -38.7697 34.06 +88.8542 -38.5399 33.8581 +87.9723 -38.9303 34.2011 +85.9739 -38.809 34.0946 +84.0703 -38.7039 34.0022 +82.3455 -38.6564 33.9605 +81.1343 -38.8315 34.1143 +79.2544 -38.6664 33.9692 +78.3019 -38.9357 34.2058 +76.8518 -38.9434 34.2126 +74.9131 -38.6798 33.981 +73.9694 -38.911 34.1841 +72.2935 -38.74 34.0339 +70.3036 -38.3734 33.7119 +68.9709 -38.3414 33.6837 +68.4431 -38.7468 34.0399 +66.6417 -38.4166 33.7498 +65.4837 -38.4358 33.7667 +65.0347 -38.8636 34.1425 +63.1043 -38.3902 33.7266 +62.6559 -38.8025 34.0888 +60.7473 -38.2943 33.6423 +59.6919 -38.3007 33.648 +58.5655 -38.247 33.6008 +58.1939 -38.6793 33.9806 +56.7763 -38.4058 33.7403 +55.6644 -38.3198 33.6648 +54.4859 -38.1709 33.534 +54.0404 -38.5266 33.8465 +52.296 -37.9401 33.3312 +51.9246 -38.3342 33.6774 +50.841 -38.195 33.5551 +49.8346 -38.0982 33.4701 +49.3207 -38.3694 33.7083 +48.1848 -38.1463 33.5124 +47.1261 -37.9663 33.3542 +46.2104 -37.8861 33.2838 +45.7685 -38.1876 33.5486 +44.6606 -37.9235 33.3166 +43.8903 -37.9314 33.3235 +43.1883 -37.9892 33.3743 +42.6811 -38.2134 33.5712 +42.1084 -38.3757 33.7139 +40.717 -37.7745 33.1857 +40.2144 -37.9813 33.3674 +39.8333 -38.3027 33.6497 +38.7781 -37.9663 33.3542 +38.3356 -38.2191 33.5763 +37.4144 -37.9859 33.3714 +37.3831 -38.6552 33.9594 +36.4101 -38.3483 33.6898 +35.3897 -37.9702 33.3576 +34.9473 -38.2007 33.5602 +34.5581 -38.4906 33.8149 +34.0545 -38.6531 33.9576 +33.0596 -38.2448 33.5989 +32.0231 -37.7631 33.1757 +32.0071 -38.4813 33.8067 +31.1932 -38.2413 33.5958 +30.7478 -38.4444 33.7742 +30.3 -38.6445 33.95 +29.75 -38.7115 34.0089 +29.2992 -38.9051 34.179 +28.5068 -38.6357 33.9423 +27.6752 -38.293 33.6412 +27.1824 -38.4067 33.7411 +26.7814 -38.65 33.9548 +25.9229 -38.2217 33.5786 +25.3887 -38.2557 33.6085 +25.031 -38.5557 33.872 +24.1947 -38.1081 33.4788 +23.7934 -38.3333 33.6767 +23.0155 -37.941 33.332 +22.5739 -38.0904 33.4633 +22.1704 -38.3058 33.6525 +21.6856 -38.3806 33.7182 +21.3155 -38.6601 33.9638 +20.5284 -38.1715 33.5345 +20.0476 -38.2347 33.59 +19.3519 -37.8737 33.2729 +19.1914 -38.5621 33.8776 +18.2297 -37.6275 33.0566 +17.9922 -38.1705 33.5336 +17.4505 -38.0739 33.4488 +17.1662 -38.5431 33.8609 +16.7178 -38.6542 33.9585 +16.1178 -38.404 33.7388 +15.4957 -38.0772 33.4517 +15.1096 -38.3214 33.6662 +14.6363 -38.3468 33.6885 +14.1904 -38.4413 33.7715 +13.7951 -38.6779 33.9794 +13.3703 -38.8397 34.1215 +12.7251 -38.3427 33.6849 +12.2559 -38.3516 33.6927 +11.8099 -38.4305 33.762 +11.2981 -38.2864 33.6355 +10.9362 -38.653 33.9575 +10.6064 -39.1649 34.4072 +9.97931 -38.5692 33.8839 +9.56737 -38.7809 34.0699 +8.94288 -38.1023 33.4737 +8.51646 -38.2336 33.589 +8.08766 -38.3622 33.702 +7.64175 -38.4137 33.7473 +7.20917 -38.5368 33.8554 +6.7482 -38.5081 33.8302 +6.30065 -38.5508 33.8677 +5.84129 -38.516 33.8372 +5.40412 -38.6276 33.9352 +4.95523 -38.6616 33.965 +4.49724 -38.6177 33.9265 +4.04849 -38.6457 33.9511 +3.59246 -38.5958 33.9073 +3.144 -38.6179 33.9267 +2.70577 -38.7871 34.0753 +2.2115 -38.0528 33.4302 +1.7694 -38.0659 33.4417 +1.32717 -38.076 33.4506 +0.886582 -38.1584 33.523 +0.443308 -38.1628 33.5268 +1.22125e-15 -38.0891 33.4621 +-0.442435 -38.0877 33.4608 +-0.884837 -38.0833 33.457 +-1.32717 -38.076 33.4506 +-1.8043 -38.8167 34.1013 +-2.25512 -38.8034 34.0896 +-2.70577 -38.7871 34.0753 +-3.15621 -38.7679 34.0585 +-3.64826 -39.1954 34.434 +-4.0328 -38.496 33.8195 +-4.47981 -38.468 33.795 +-4.91689 -38.3624 33.7022 +-5.45639 -39.0011 34.2633 +-5.92053 -39.0385 34.2962 +-6.27627 -38.4017 33.7367 +-6.7221 -38.3591 33.6993 +-7.1535 -38.2392 33.594 +-7.5974 -38.1908 33.5514 +-8.27538 -39.2526 34.4842 +-8.61549 -38.6782 33.9796 +-9.01234 -38.3982 33.7337 +-9.40335 -38.1161 33.4858 +-9.65494 -37.3155 32.7825 +-10.4668 -38.6495 33.9544 +-10.7282 -37.9181 33.3119 +-11.1899 -37.9197 33.3133 +-11.8324 -38.5037 33.8263 +-12.2559 -38.3516 33.6927 +-12.8702 -38.78 34.0691 +-13.1199 -38.1123 33.4825 +-13.8468 -38.8231 34.1069 +-14.2438 -38.5861 33.8987 +-14.7466 -38.6356 33.9422 +-15.1664 -38.4655 33.7927 +-15.6419 -38.4364 33.7672 +-16.1178 -38.404 33.7388 +-16.8414 -38.94 34.2096 +-17.1345 -38.4719 33.7984 +-17.5156 -38.216 33.5736 +-18.2926 -38.8079 34.0936 +-18.7427 -38.6865 33.9869 +-19.2264 -38.6325 33.9395 +-19.6027 -38.3647 33.7042 +-20.4508 -39.0036 34.2655 +-20.903 -38.8681 34.1464 +-21.5451 -39.0766 34.3296 +-21.9591 -38.8647 34.1435 +-22.2103 -38.3747 33.713 +-22.9806 -38.7767 34.0662 +-23.8863 -39.3766 34.5932 +-24.047 -38.7419 34.0356 +-24.8405 -39.1252 34.3724 +-25.3817 -39.0959 34.3466 +-25.7456 -38.7936 34.081 +-26.5584 -39.1588 34.4019 +-27.1046 -39.1164 34.3646 +-27.4641 -38.8046 34.0907 +-28.3432 -39.2173 34.4532 +-28.6038 -38.7672 34.0578 +-29.5947 -39.2974 34.5236 +-29.55 -38.4513 33.7803 +-30.4523 -38.8386 34.1206 +-30.8508 -38.5731 33.8873 +-31.8202 -39.01 34.2711 +-32.1661 -38.6724 33.9746 +-33.2588 -39.2204 34.456 +-33.6587 -38.9379 34.2078 +-34.8824 -39.5928 34.7831 +-34.8936 -38.8643 34.1431 +-35.7969 -39.1294 34.3761 +-36.4221 -39.0779 34.3308 +-37.2811 -39.2657 34.4958 +-37.148 -38.4121 33.7458 +-38.6635 -39.2541 34.4855 +-38.7569 -38.6391 33.9453 +-39.6304 -38.8008 34.0873 +-40.6952 -39.1315 34.3778 +-41.1482 -38.8632 34.1421 +-42.2903 -39.2342 34.4681 +-43.1261 -39.3032 34.5287 +-43.8381 -39.2492 34.4813 +-44.747 -39.3602 34.5788 +-45.3337 -39.1787 34.4194 +-46.2509 -39.2739 34.503 +-46.6384 -38.9134 34.1862 +-47.494 -38.9385 34.2083 +-48.6947 -39.23 34.4644 +-49.0797 -38.8548 34.1348 +-50.1543 -39.0179 34.278 +-51.4467 -39.3306 34.5528 +-51.9016 -38.9918 34.2551 +-52.8519 -39.0187 34.2788 +-53.9505 -39.1404 34.3857 +-55.0559 -39.2506 34.4825 +-55.5829 -38.9394 34.2091 +-56.6229 -38.9796 34.2444 +-58.1139 -39.3106 34.5352 +-59.4671 -39.5255 34.724 +-60.8296 -39.7256 34.8998 +-61.9731 -39.7644 34.9339 +-63.1221 -39.7912 34.9574 +-64.1992 -39.7582 34.9284 +-66.0574 -40.1868 35.3049 +-67.226 -40.1731 35.2929 +-68.3205 -40.1008 35.2294 +-70.1324 -40.4289 35.5177 +-71.398 -40.4197 35.5096 +-72.2667 -40.1735 35.2933 +-74.4296 -40.6255 35.6904 +-76.1198 -40.7904 35.8353 +-77.5737 -40.8069 35.8498 +-78.5392 -40.5521 35.6259 +-80.0021 -40.5398 35.6151 +-82.2211 -40.8845 35.918 +-83.4477 -40.7122 35.7665 +-85.0982 -40.7287 35.781 +-86.6705 -40.6867 35.7442 +-88.4188 -40.7058 35.7609 +-90.0883 -40.6663 35.7262 +-91.8497 -40.6461 35.7085 +-93.5307 -40.5683 35.6401 +-95.8262 -40.7304 35.7825 +-97.5201 -40.6106 35.6772 +-100.537 -41.0093 36.0275 +-102.863 -41.0892 36.0977 +-105.111 -41.1071 36.1134 +-106.03 -40.587 35.6565 +-106.497 -39.8902 35.0444 +-105.968 -38.8283 34.1115 +-107.498 -38.5202 33.8409 +-108.757 -38.0998 33.4715 +-108.103 -37.0115 32.5154 +-108.255 -36.2097 31.811 +-107.663 -35.169 30.8967 +-108.159 -34.4912 30.3013 +-105.599 -32.8608 28.8689 +-55.9092 -16.9702 14.9086 +-46.4278 -13.7394 12.0704 +-43.5048 -12.546 11.022 +-39.9022 -11.208 9.84643 +-36.742 -10.0467 8.8262 +-17.0618 -4.53906 3.98766 +-16.1684 -4.18245 3.67437 +-16.5008 -4.1478 3.64394 +-16.0729 -3.92339 3.44679 +-16.4993 -3.90823 3.43347 +-16.0659 -3.69009 3.24182 +-14.3823 -3.20056 2.81176 +-13.8422 -2.9819 2.61967 +-13.7799 -2.87096 2.5222 +-13.1366 -2.6444 2.32317 +-13.1668 -2.55818 2.24742 +-13.002 -2.43541 2.13956 +-13.0298 -2.35008 2.0646 +-13.2514 -2.29836 2.01916 +-12.3013 -2.0488 1.79992 +-12.6181 -2.01494 1.77016 +-12.445 -1.90218 1.6711 +-12.8593 -1.87786 1.64974 +-14.2572 -1.98516 1.744 +-14.3782 -1.90465 1.67328 +-14.3998 -1.81032 1.59041 +-13.9264 -1.65709 1.45579 +-13.9451 -1.56572 1.37552 +-13.4676 -1.42196 1.24922 +-13.9794 -1.38264 1.21468 +-13.9949 -1.29094 1.13412 +-13.7113 -1.17362 1.03105 +-12.7299 -1.00516 0.883056 +-13.0397 -0.943272 0.828685 +-12.054 -0.792268 0.696025 +-12.7605 -0.75448 0.662826 +-11.2725 -0.592182 0.520245 +-10.9795 -0.504499 0.443214 +-11.9836 -0.471817 0.414502 +-11.589 -0.380128 0.333951 +-11.5929 -0.304137 0.267191 +-10.9962 -0.216324 0.190045 +-11.2983 -0.148158 0.13016 +-11.2996 -0.0740821 0.0650827 +11.9 -8.88178e-16 2.84217e-14 +10.6996 -0.0695895 0.0622574 +11.5982 -0.15088 0.134983 +11.596 -0.226306 0.202462 +11.8928 -0.309517 0.276905 +11.8887 -0.386852 0.346092 +11.5841 -0.452456 0.404784 +12.7761 -0.582376 0.521015 +12.7688 -0.665446 0.595333 +13.259 -0.777705 0.695764 +13.7475 -0.896383 0.801938 +14.0351 -1.00719 0.901071 +15.0173 -1.17633 1.05239 +15.4997 -1.31614 1.17747 +15.7815 -1.44414 1.29198 +34.1057 -3.34637 2.99379 +37.9273 -3.97258 3.55402 +41.242 -4.59363 4.10964 +42.2731 -4.98994 4.46418 +41.3254 -5.15396 4.61093 +43.2331 -5.68137 5.08276 +56.7338 -7.8366 7.01091 +76.0761 -11.021 9.85975 +19.5985 -2.97169 2.65859 +115.03 -18.2223 16.3024 +116.863 -19.3085 17.2741 +118.776 -20.4366 18.2834 +119.504 -21.3823 19.1294 +120.414 -22.3751 20.0176 +119.566 -23.0454 20.6173 +120.161 -23.9958 21.4675 +120.068 -24.8162 22.2015 +120.638 -25.781 23.0647 +120.428 -26.5858 23.7846 +120.973 -27.5641 24.6599 +119.978 -28.193 25.2225 +120.404 -29.1565 26.0845 +121.006 -30.1749 26.9956 +120.365 -30.8879 27.6335 +120.375 -31.769 28.4218 +120.187 -32.6017 29.1667 +120.269 -33.5126 29.9816 +119.778 -34.2668 30.6564 +120.117 -35.2631 31.5476 +120.07 -36.1546 32.3453 +121.121 -37.3905 33.4509 +119.758 -37.8855 33.8938 +118.576 -38.4253 34.3767 +116.112 -38.5281 34.4686 +114.837 -39.0036 34.8941 +112.201 -38.993 34.8846 +110.025 -39.1117 34.9908 +107.406 -39.0417 34.9282 +105.065 -39.0404 34.927 +101.753 -38.6395 34.5683 +98.6356 -38.2674 34.2354 +95.7115 -37.9277 33.9316 +94.2092 -38.122 34.1054 +91.9225 -37.9745 33.9734 +91.0392 -38.3874 34.3428 +88.1614 -37.9347 33.9378 +87.9723 -38.6201 34.551 +85.031 -38.0776 34.0656 +84.0703 -38.3955 34.3501 +82.0911 -38.2299 34.2019 +80.8812 -38.4019 34.3558 +78.7512 -38.1147 34.0988 +77.5514 -38.2552 34.2245 +76.0227 -38.2164 34.1898 +74.9131 -38.3716 34.3287 +72.7407 -37.9597 33.9602 +72.2935 -38.4313 34.3821 +70.3036 -38.0677 34.0568 +68.4082 -37.7255 33.7507 +67.7243 -38.0345 34.027 +66.6417 -38.1105 34.0951 +64.6957 -37.6707 33.7016 +64.1739 -38.0436 34.0352 +62.4048 -37.6622 33.694 +61.267 -37.64 33.6741 +60.8239 -38.037 34.0293 +59.6919 -37.9955 33.9922 +58.5655 -37.9423 33.9446 +58.119 -38.3217 34.284 +56.1074 -37.651 33.684 +55.5907 -37.9641 33.9641 +53.9008 -37.4601 33.5132 +52.8073 -37.3475 33.4125 +51.6486 -37.1719 33.2553 +51.2114 -37.5063 33.5546 +50.1339 -37.3637 33.427 +49.0636 -37.2099 33.2893 +48.6956 -37.5812 33.6215 +48.116 -37.7884 33.8069 +47.2625 -37.7728 33.7929 +46.1428 -37.5292 33.575 +45.1663 -37.3849 33.4459 +44.1968 -37.2306 33.3079 +43.6935 -37.4604 33.5135 +42.9935 -37.5165 33.5636 +42.1026 -37.395 33.455 +41.6631 -37.6674 33.6987 +40.717 -37.4736 33.5252 +40.2767 -37.7369 33.7609 +39.2176 -37.4102 33.4686 +38.839 -37.7229 33.7483 +37.794 -37.3789 33.4406 +37.4144 -37.6832 33.7128 +36.3839 -37.3222 33.3898 +35.9455 -37.5574 33.6002 +34.8734 -37.1181 33.2073 +34.9473 -37.8964 33.9035 +33.8871 -37.4426 33.4975 +33.5026 -37.7237 33.749 +32.8962 -37.7526 33.7749 +32.4529 -37.9651 33.965 +31.5302 -37.6059 33.6437 +31.1409 -37.8731 33.8827 +30.6448 -38.0103 34.0054 +29.7417 -37.6302 33.6654 +29.35 -37.8867 33.8949 +29.3484 -38.66 34.5866 +28.4098 -38.1975 34.1729 +27.6752 -37.9879 33.9854 +27.2294 -38.1664 34.1451 +26.3658 -37.7471 33.7699 +25.8775 -37.8507 33.8627 +25.4779 -38.0843 34.0716 +24.6365 -37.6456 33.6792 +24.1947 -37.8045 33.8213 +23.7934 -38.0279 34.0212 +23.3472 -38.1812 34.1583 +22.5332 -37.7188 33.7447 +21.8116 -37.3855 33.4465 +21.7247 -38.1434 34.1245 +20.9711 -37.7324 33.7568 +20.1913 -37.2454 33.3211 +20.0476 -37.93 33.9336 +19.2444 -37.3633 33.4266 +18.8412 -37.5568 33.5997 +18.4691 -37.8179 33.8333 +17.9588 -37.7961 33.8138 +17.5156 -37.9115 33.917 +17.0075 -37.8826 33.8912 +16.5324 -37.9209 33.9254 +16.1178 -38.098 34.0839 +15.4957 -37.7738 33.7939 +15.0812 -37.9446 33.9466 +14.6363 -38.0412 34.0331 +13.9766 -37.5605 33.603 +13.5621 -37.7219 33.7474 +13.17 -37.953 33.9542 +12.5316 -37.4587 33.5119 +12.0691 -37.4663 33.5187 +11.585 -37.3981 33.4578 +11.2981 -37.9814 33.9796 +10.7698 -37.7618 33.7831 +10.4269 -38.1956 34.1712 +9.80758 -37.6035 33.6415 +9.40335 -37.8124 33.8284 +8.96025 -37.8721 33.8818 +8.49995 -37.8554 33.8669 +8.08766 -38.0565 34.0468 +7.65653 -38.1813 34.1585 +7.05608 -37.4179 33.4754 +6.7482 -38.2012 34.1763 +6.31283 -38.3177 34.2804 +5.7394 -37.5427 33.5871 +5.31005 -37.6527 33.6855 +4.95523 -38.3535 34.3125 +4.41008 -37.5676 33.6094 +3.97003 -37.5948 33.6337 +3.53665 -37.6936 33.7221 +3.09516 -37.7151 33.7413 +2.65867 -37.8083 33.8247 +2.2115 -37.7496 33.7722 +1.7694 -37.7626 33.7838 +1.32717 -37.7726 33.7928 +0.86913 -37.1092 33.1993 +0.443308 -37.8587 33.8698 +2.44249e-15 -37.1894 33.271 +-0.441563 -37.7097 33.7365 +-0.881347 -37.6308 33.6659 +-1.32717 -37.7726 33.7928 +-1.7694 -37.7626 33.7838 +-2.25512 -38.4942 34.4384 +-2.6482 -37.6594 33.6915 +-3.09516 -37.7151 33.7413 +-3.5227 -37.5449 33.589 +-4.0328 -38.1892 34.1655 +-4.47981 -38.1615 34.1407 +-5.00315 -38.7244 34.6443 +-5.36231 -38.0233 34.0171 +-5.81865 -38.0611 34.0508 +-6.27627 -38.0957 34.0818 +-6.73515 -38.1274 34.1102 +-7.13958 -37.8607 33.8716 +-7.5974 -37.8865 33.8947 +-8.00944 -37.6884 33.7175 +-8.61549 -38.37 34.3272 +-8.96025 -37.8721 33.8818 +-9.36691 -37.6658 33.6973 +-9.82666 -37.6766 33.7069 +-10.3073 -37.7574 33.7791 +-10.5203 -36.887 33.0005 +-11.1899 -37.6175 33.6541 +-11.6075 -37.4707 33.5227 +-12.2092 -37.901 33.9077 +-12.7009 -37.9648 33.9648 +-13.0949 -37.7365 33.7605 +-13.5362 -37.6499 33.683 +-14.0033 -37.6322 33.6672 +-14.7466 -38.3278 34.2895 +-15.1664 -38.159 34.1385 +-15.3788 -37.4887 33.5388 +-16.0878 -38.027 34.0204 +-16.5633 -37.9917 33.9888 +-17.1345 -38.1653 34.1441 +-17.5156 -37.9115 33.917 +-18.0256 -37.9366 33.9395 +-18.6743 -38.2381 34.2093 +-19.1563 -38.1851 34.1618 +-19.6027 -38.059 34.049 +-20.4508 -38.6928 34.616 +-20.491 -37.7983 33.8157 +-21.2007 -38.1455 34.1264 +-21.9591 -38.555 34.4928 +-22.5692 -38.6841 34.6082 +-22.9806 -38.4678 34.4147 +-23.5546 -38.5203 34.4617 +-23.5398 -37.6226 33.6586 +-24.7974 -38.7462 34.6638 +-25.3817 -38.7844 34.698 +-25.7902 -38.5512 34.4893 +-26.1953 -38.3156 34.2785 +-26.5967 -38.0776 34.0656 +-27.0416 -37.9032 33.9096 +-28.3432 -38.9048 34.8057 +-28.7492 -38.6538 34.5811 +-29.1515 -38.4005 34.3545 +-29.5 -38.0804 34.0681 +-30.4015 -38.465 34.4122 +-30.8508 -38.2658 34.234 +-31.4022 -38.1908 34.1669 +-32.1661 -38.3643 34.3221 +-32.7753 -38.3423 34.3024 +-33.2774 -38.1901 34.1663 +-34.4409 -38.7802 34.6942 +-34.8377 -38.4929 34.4372 +-35.1738 -38.142 34.1233 +-36.0206 -38.3391 34.2996 +-36.8166 -38.4675 34.4144 +-37.0892 -38.0457 34.0371 +-38.1876 -38.462 34.4096 +-38.6967 -38.2717 34.2393 +-39.5086 -38.3733 34.3302 +-40.1411 -38.2911 34.2567 +-41.0237 -38.4369 34.3871 +-41.4722 -38.1686 34.1471 +-42.5536 -38.4725 34.419 +-43.0668 -38.2514 34.2211 +-44.2274 -38.5932 34.5269 +-44.612 -38.2479 34.218 +-45.6545 -38.4586 34.4065 +-46.1031 -38.1603 34.1396 +-47.5616 -38.6831 34.6074 +-48.0809 -38.4268 34.3781 +-49.2174 -38.6533 34.5807 +-49.5291 -38.2245 34.1971 +-50.6056 -38.3794 34.3356 +-51.1945 -38.1541 34.1341 +-52.8519 -38.7078 34.6295 +-52.6557 -37.8967 33.9038 +-54.3305 -38.4249 34.3764 +-55.5829 -38.6292 34.5591 +-56.6966 -38.7194 34.6398 +-57.1478 -38.3491 34.3085 +-59.2424 -39.0624 34.9467 +-59.9994 -38.8713 34.7757 +-62.4293 -39.738 35.5511 +-62.4326 -39.043 34.9294 +-64.1992 -39.4414 35.2857 +-64.6585 -39.0224 34.9109 +-66.5217 -39.4354 35.2804 +-67.6113 -39.3684 35.2205 +-69.4978 -39.7438 35.5563 +-70.5994 -39.6491 35.4716 +-72.2667 -39.8535 35.6544 +-73.7014 -39.9076 35.7028 +-75.3057 -40.0326 35.8147 +-76.5907 -39.9688 35.7576 +-78.5392 -40.229 35.9904 +-79.0073 -39.7167 35.532 +-80.7201 -39.8184 35.623 +-81.9381 -39.6571 35.4788 +-84.3391 -40.0438 35.8247 +-85.2288 -39.6912 35.5092 +-87.0546 -39.7584 35.5694 +-88.0311 -39.421 35.2675 +-91.505 -40.1709 35.9384 +-93.0111 -40.0214 35.8047 +-95.0428 -40.0756 35.8531 +-96.7329 -39.9617 35.7513 +-99.8336 -40.398 36.1415 +-101.274 -40.132 35.9036 +-104.312 -40.4698 36.2058 +-105.852 -40.1959 35.9608 +-105.96 -39.3729 35.2245 +-105.069 -38.1922 34.1682 +-106.505 -37.8604 33.8713 +-108.032 -37.5442 33.5884 +-108.194 -36.7474 32.8756 +-108.072 -35.8605 32.0821 +-107.846 -34.9483 31.266 +-107.331 -33.9543 30.3768 +-104.86 -32.3709 28.9602 +-52.7568 -15.8857 14.2119 +-45.4974 -13.3568 11.9495 +-41.0775 -11.7517 10.5135 +-38.9656 -10.8577 9.71367 +-33.2651 -9.02346 8.07272 +-16.2134 -4.279 3.82815 +-15.6956 -4.0278 3.60342 +-15.7422 -3.92557 3.51196 +-15.7875 -3.82304 3.42023 +-15.3548 -3.60816 3.22799 +-15.3009 -3.48637 3.11904 +-14.0947 -3.11156 2.78372 +-13.8422 -2.95814 2.64647 +-12.8163 -2.64892 2.36982 +-3164.66 -631.973 565.386 +-3171.94 -611.367 546.951 +-12.4198 -2.30783 2.06467 +-13.3215 -2.38355 2.13241 +-12.2771 -2.1124 1.88983 +-12.5942 -2.08087 1.86162 +-12.6181 -1.99888 1.78827 +-12.739 -1.9316 1.72808 +-13.4483 -1.94822 1.74295 +-12.4873 -1.72486 1.54313 +-13.0979 -1.72123 1.53988 +-13.9066 -1.73439 1.55165 +-14.3215 -1.69051 1.5124 +-13.4506 -1.49817 1.34031 +-14.2599 -1.4936 1.33623 +-14.2768 -1.40081 1.25322 +-13.6971 -1.25341 1.12135 +-12.7177 -1.07991 0.966126 +-12.3321 -0.965992 0.864213 +-12.3429 -0.885756 0.79243 +-11.9543 -0.779464 0.697338 +-12.2621 -0.719228 0.643449 +-11.9708 -0.623856 0.558125 +-12.1772 -0.555077 0.496593 +-11.5841 -0.452456 0.404784 +-10.9895 -0.357594 0.319917 +-12.1926 -0.31732 0.283886 +-10.9962 -0.2146 0.191989 +-10.9983 -0.143076 0.128001 +-10.4996 -0.0682888 0.0610937 +11.3 8.88178e-16 2.84217e-14 +11.2996 -0.0728956 0.066409 +10.4984 -0.135464 0.12341 +10.9962 -0.212859 0.193918 +11.8928 -0.307006 0.279687 +11.8887 -0.383714 0.349569 +11.8837 -0.460392 0.419424 +11.5784 -0.523496 0.476913 +11.6715 -0.603325 0.549638 +13.5581 -0.78879 0.718599 +12.8509 -0.831125 0.757168 +14.0351 -0.99902 0.910122 +14.4206 -1.12042 1.02072 +14.5061 -1.22178 1.11306 +15.186 -1.37837 1.25572 +37.3775 -3.63764 3.31395 +40.502 -4.20784 3.83341 +42.0332 -4.64378 4.23055 +41.2854 -4.83381 4.40367 +39.6487 -4.90474 4.46829 +37.3242 -4.86508 4.43216 +44.1481 -6.04867 5.51043 +64.9837 -9.33768 8.50677 +69.2807 -10.4197 9.4925 +77.8605 -12.2341 11.1455 +3198.83 -524.236 477.587 +115.755 -19.7554 17.9974 +119.213 -21.1571 19.2744 +119.54 -22.0326 20.0721 +120.341 -23.0065 20.9593 +120.161 -23.8011 21.6832 +119.972 -24.5951 22.4065 +120.734 -25.5923 23.315 +120.428 -26.3701 24.0236 +120.877 -27.3189 24.8879 +120.931 -28.1865 25.6784 +120.404 -28.9199 26.3465 +120.058 -29.6955 27.0531 +120.365 -30.6373 27.9111 +120.564 -31.5607 28.7523 +119.811 -32.2361 29.3676 +120.269 -33.2407 30.2828 +119.872 -34.0153 30.9885 +120.768 -35.1667 32.0374 +120.07 -35.8613 32.6702 +120.659 -36.9457 33.6581 +119.297 -37.4338 34.1028 +117.475 -37.7598 34.3998 +115.564 -38.0351 34.6506 +114.291 -38.5032 35.077 +110.479 -38.0831 34.6943 +108.4 -38.2215 34.8204 +106.597 -38.4332 35.0133 +104.349 -38.4598 35.0374 +100.416 -37.8226 34.4569 +97.6599 -37.5814 34.2373 +95.4466 -37.5159 34.1776 +94.2092 -37.8127 34.448 +90.3482 -37.0213 33.727 +89.2985 -37.348 34.0246 +87.382 -37.2942 33.9756 +86.4214 -37.6314 34.2828 +84.5167 -37.5403 34.1997 +83.3029 -37.7364 34.3784 +81.3278 -37.5672 34.2243 +79.9535 -37.6535 34.3029 +78.4157 -37.6444 34.2946 +76.7175 -37.5368 34.1966 +74.8621 -37.3276 34.006 +74.4186 -37.8091 34.4447 +71.512 -37.0157 33.7219 +70.5024 -37.1751 33.8671 +69.3328 -37.2375 33.9239 +68.6494 -37.5514 34.2099 +67.0055 -37.3255 34.0041 +65.8483 -37.3513 34.0276 +64.6957 -37.3651 34.0401 +63.4695 -37.3208 33.9998 +61.6277 -36.8914 33.6087 +61.267 -37.3346 34.0124 +60.2111 -37.3483 34.0248 +59.0835 -37.3032 33.9838 +57.6598 -37.0524 33.7553 +57.2202 -37.423 34.0929 +55.3643 -36.8508 33.5717 +55.0009 -37.2565 33.9413 +53.1694 -36.6521 33.3906 +52.8073 -37.0445 33.7481 +51.7205 -36.9216 33.6361 +50.5695 -36.7357 33.4668 +49.4975 -36.5901 33.3342 +49.0636 -36.908 33.6237 +48.6261 -37.2231 33.9108 +47.703 -37.16 33.8533 +46.6487 -36.9798 33.6891 +45.5348 -36.7343 33.4655 +44.5641 -36.5871 33.3314 +44.1305 -36.8732 33.5921 +42.8407 -36.4312 33.1894 +43.1883 -37.3807 34.0544 +42.0383 -37.035 33.7394 +41.1543 -36.9055 33.6214 +39.9618 -36.4802 33.234 +39.5919 -36.7944 33.5203 +38.7251 -36.6407 33.3802 +38.1693 -36.7718 33.4997 +37.3125 -36.6033 33.3462 +37.3549 -37.318 33.9973 +36.4427 -37.0792 33.7797 +35.4229 -36.711 33.4443 +34.8161 -36.7564 33.4857 +34.4375 -37.0406 33.7446 +33.943 -37.2001 33.8898 +33.4474 -37.356 34.0319 +32.406 -36.8883 33.6058 +31.9693 -37.096 33.795 +31.5302 -37.3008 33.9816 +31.0887 -37.5028 34.1656 +30.1812 -37.1316 33.8275 +29.7417 -37.3249 34.0036 +29.3 -37.5153 34.177 +28.8068 -37.6386 34.2893 +28.022 -37.3704 34.045 +27.5798 -37.5497 34.2084 +27.1355 -37.7262 34.3692 +26.2735 -37.3097 33.9897 +25.7867 -37.4119 34.0828 +25.0763 -37.1799 33.8714 +24.6365 -37.3402 34.0175 +24.1517 -37.431 34.1002 +23.3285 -36.9824 33.6916 +22.6008 -36.6606 33.3984 +22.2078 -36.8726 33.5915 +21.8116 -37.0822 33.7825 +21.3339 -37.1535 33.8474 +20.6266 -36.8116 33.5359 +20.491 -37.4916 34.1554 +19.6811 -36.9345 33.6479 +19.2444 -37.0601 33.7623 +18.8412 -37.2521 33.9372 +18.3323 -37.2332 33.9201 +17.7585 -37.0714 33.7726 +17.2877 -37.1146 33.812 +16.8806 -37.2948 33.9762 +16.2543 -36.9805 33.6898 +15.9073 -37.2954 33.9767 +15.2033 -36.7604 33.4893 +15.0528 -37.5658 34.223 +14.3883 -37.0931 33.7924 +13.9766 -37.2557 33.9405 +13.3292 -36.7732 33.501 +12.9196 -36.9293 33.6432 +12.5316 -37.1547 33.8485 +11.859 -36.5154 33.2661 +11.6525 -37.3108 33.9907 +11.2981 -37.6732 34.3209 +10.5411 -36.66 33.3979 +10.2674 -37.3061 33.9865 +9.80758 -37.2984 33.9794 +9.23934 -36.8514 33.5722 +8.80396 -36.9097 33.6253 +8.36791 -36.9651 33.6757 +7.91558 -36.9446 33.6571 +7.50872 -37.1405 33.8355 +7.05608 -37.1143 33.8117 +6.7482 -37.8913 34.5196 +6.16659 -37.1263 33.8226 +5.7394 -37.2381 33.9245 +5.28914 -37.2002 33.89 +4.85938 -37.3065 33.9868 +4.41008 -37.2628 33.947 +3.97788 -37.3635 34.0387 +3.4669 -36.6503 33.389 +3.04022 -36.7451 33.4753 +2.61156 -36.8371 33.5592 +2.17661 -36.8525 33.5732 +1.73799 -36.7913 33.5175 +1.32717 -37.4662 34.1323 +0.86913 -36.8081 33.5328 +0.443308 -37.5516 34.21 +1.66533e-15 -36.8137 33.5379 +-0.443308 -37.5516 34.21 +-0.86913 -36.8081 33.5328 +-1.32194 -37.3184 33.9976 +-1.73799 -36.7913 33.5175 +-2.2115 -37.4433 34.1115 +-2.65343 -37.4277 34.0972 +-3.08906 -37.3353 34.0131 +-3.52968 -37.314 33.9936 +-3.97003 -37.2898 33.9716 +-4.39265 -37.1155 33.8128 +-4.91689 -37.748 34.389 +-5.36231 -37.7149 34.3588 +-5.81865 -37.7523 34.3929 +-6.14221 -36.9795 33.6889 +-6.70905 -37.6715 34.3193 +-7.01432 -36.8947 33.6116 +-7.43481 -36.7749 33.5025 +-7.85301 -36.6526 33.3911 +-8.46694 -37.4025 34.0743 +-8.90815 -37.3464 34.0232 +-9.53092 -38.0144 34.6317 +-9.67402 -36.7904 33.5167 +-10.2674 -37.3061 33.9865 +-10.5203 -36.5878 33.332 +-11.125 -37.0958 33.7949 +-11.5625 -37.0226 33.7282 +-12.0458 -37.0904 33.7899 +-12.4348 -36.8678 33.5872 +-12.8946 -36.8578 33.578 +-13.3033 -36.7018 33.4359 +-13.8162 -36.8283 33.5511 +-14.4985 -37.3773 34.0513 +-14.9392 -37.2823 33.9648 +-15.3788 -37.1845 33.8757 +-15.8472 -37.1544 33.8483 +-16.347 -37.1914 33.8819 +-17.0393 -37.6454 34.2955 +-17.2551 -37.0447 33.7483 +-17.9922 -37.5592 34.217 +-18.4691 -37.5111 34.1732 +-18.9112 -37.3906 34.0634 +-19.3877 -37.3361 34.0138 +-20.0476 -37.6223 34.2745 +-20.1913 -36.9432 33.6559 +-21.2389 -37.9043 34.5314 +-21.6465 -37.6979 34.3433 +-22.0508 -37.4889 34.153 +-22.3298 -37.0751 33.776 +-23.0984 -37.4678 34.1337 +-23.5398 -37.3174 33.9967 +-24.453 -37.898 34.5257 +-24.5488 -37.2074 33.8965 +-25.2994 -37.5107 34.1728 +-25.7413 -37.3461 34.0228 +-26.5967 -37.7687 34.4078 +-26.9946 -37.5304 34.1908 +-27.9138 -38.0045 34.6227 +-28.2644 -37.6936 34.3395 +-28.8068 -37.6386 34.2893 +-29.2 -37.3873 34.0604 +-29.9448 -37.5797 34.2356 +-30.5418 -37.5751 34.2315 +-31.2454 -37.6919 34.3379 +-31.7422 -37.5516 34.21 +-32.2917 -37.47 34.1358 +-32.8962 -37.4463 34.1141 +-33.9993 -37.9724 34.5934 +-34.3344 -37.629 34.2806 +-35.3437 -38.0154 34.6326 +-35.6765 -37.6648 34.3132 +-36.2359 -37.5536 34.2119 +-36.7954 -37.438 34.1066 +-37.5928 -37.5558 34.2139 +-38.6967 -37.9612 34.5833 +-39.0825 -37.6515 34.3011 +-39.6486 -37.5145 34.1762 +-41.1482 -38.2407 34.8379 +-40.9688 -37.3994 34.0714 +-41.9176 -37.59 34.2451 +-43.0668 -37.9411 34.5649 +-43.7079 -37.8304 34.4641 +-44.1528 -37.5471 34.2059 +-45.0582 -37.6483 34.2982 +-46.0362 -37.7957 34.4325 +-47.1562 -38.0423 34.6572 +-47.3989 -37.5745 34.2309 +-48.529 -37.8035 34.4396 +-48.9039 -37.4358 34.1046 +-50.6757 -38.1207 34.7285 +-51.1945 -37.8446 34.477 +-52.2813 -37.9792 34.5996 +-52.6557 -37.5892 34.2443 +-54.4031 -38.164 34.768 +-54.1933 -37.3579 34.0336 +-56.0331 -37.9558 34.5783 +-56.6276 -37.6918 34.3378 +-57.8943 -37.8638 34.4945 +-58.7919 -37.7799 34.4181 +-61.1366 -38.5994 35.1647 +-62.2794 -38.6312 35.1936 +-63.4275 -38.6512 35.2118 +-63.9591 -38.2871 34.8801 +-65.8173 -38.7014 35.2575 +-66.9021 -38.6394 35.2011 +-68.7837 -39.0163 35.5445 +-69.2417 -38.5712 35.1389 +-71.8648 -39.3103 35.8123 +-72.3261 -38.8451 35.3885 +-74.8986 -39.4932 35.9789 +-75.1162 -38.8814 35.4215 +-77.7975 -39.5258 36.0086 +-78.3441 -39.0637 35.5877 +-80.2198 -39.2505 35.7578 +-80.9317 -38.8523 35.3951 +-82.9054 -39.0437 35.5694 +-84.1264 -38.8599 35.402 +-86.7135 -39.2814 35.7859 +-87.5168 -38.8728 35.4137 +-90.2987 -39.3197 35.8209 +-91.5389 -39.0684 35.5919 +-93.5632 -39.1316 35.6495 +-96.2956 -39.4583 35.9471 +-98.5154 -39.5411 36.0226 +-100.568 -39.5288 36.0113 +-103.869 -39.9708 36.4141 +-105.317 -39.6684 36.1385 +-105.334 -38.8226 35.368 +-104.799 -37.7852 34.4229 +-105.873 -37.3305 34.0086 +-107.488 -37.0521 33.7551 +-107.83 -36.3267 33.0941 +-107.89 -35.5094 32.3496 +-107.204 -34.4584 31.3921 +-107.607 -33.7655 30.7609 +-19.771 -6.05389 5.51518 +-47.9354 -14.3168 13.0429 +-42.334 -12.3273 11.2303 +-38.6502 -10.9675 9.99159 +-36.4365 -10.0706 9.17449 +-31.8556 -8.57102 7.80833 +-15.9306 -4.17026 3.79917 +-15.2228 -3.87479 3.53 +-15.837 -3.91718 3.56861 +-15.1218 -3.63212 3.30892 +-15.7363 -3.66781 3.34143 +-15.6834 -3.54454 3.22913 +-14.9576 -3.27527 2.98382 +-13.5538 -2.87302 2.61736 +-13.7799 -2.82498 2.5736 +-3164.66 -626.845 571.066 +-13.1668 -2.51721 2.29322 +-13.002 -2.3964 2.18316 +-12.8353 -2.27793 2.07523 +-12.6668 -2.16178 1.96941 +-13.4729 -2.20799 2.01151 +-12.7159 -1.99803 1.82024 +-13.8169 -2.07805 1.89313 +-13.3501 -1.91831 1.74761 +-13.9622 -1.91294 1.74272 +-13.8858 -1.80996 1.64891 +-14.3011 -1.76912 1.6117 +-13.6301 -1.59585 1.45385 +-14.5385 -1.6062 1.46327 +-14.1608 -1.4712 1.34029 +-13.3845 -1.3026 1.18669 +-14.4912 -1.31531 1.19827 +-13.6119 -1.14646 1.04444 +-13.1277 -1.01998 0.929215 +-11.7457 -0.836056 0.76166 +-12.2532 -0.792471 0.721953 +-11.5642 -0.672794 0.612926 +-11.3722 -0.587855 0.535545 +-11.6782 -0.528009 0.481025 +-11.9836 -0.46426 0.422948 +-10.6898 -0.345019 0.314318 +-12.1926 -0.314746 0.286738 +-11.2961 -0.218665 0.199207 +-10.7984 -0.139335 0.126936 +-10.4996 -0.0677348 0.0617074 +10.5 -8.88178e-16 2.84217e-14 +10.9996 -0.070374 0.0652835 +10.9983 -0.140742 0.130562 +11.596 -0.222616 0.206513 +11.8928 -0.30447 0.282446 +12.1884 -0.390137 0.361917 +12.1833 -0.468099 0.434239 +13.0756 -0.586306 0.543896 +12.4696 -0.639253 0.593012 +13.3587 -0.770771 0.715017 +13.5482 -0.868987 0.806129 +13.6369 -0.962659 0.893025 +13.426 -1.03453 0.959701 +14.7049 -1.22828 1.13944 +14.4912 -1.30444 1.21008 +37.6749 -3.6363 3.37327 +41.0961 -4.23429 3.92801 +42.7255 -4.68127 4.34265 +41.1866 -4.78241 4.43647 +36.5912 -4.48912 4.1644 +34.1728 -4.41751 4.09797 +42.1816 -5.7315 5.31691 +58.8976 -8.39318 7.78606 +65.263 -9.73436 9.03022 +71.796 -11.188 10.3787 +75.4677 -12.2658 11.3785 +113.904 -19.2788 17.8843 +118.046 -20.777 19.2741 +119.346 -21.8152 20.2372 +120.147 -22.7798 21.132 +120.065 -23.5855 21.8794 +119.876 -24.3724 22.6094 +119.773 -25.1787 23.3574 +120.428 -26.1522 24.2605 +120.016 -26.9003 24.9544 +119.978 -27.7332 25.7271 +120.499 -28.7037 26.6274 +120.911 -29.6595 27.5141 +120.932 -30.5275 28.3193 +120.564 -31.3 29.0359 +120.093 -32.045 29.7271 +120.175 -32.9405 30.5577 +119.872 -33.7343 31.2941 +119.652 -34.5537 32.0543 +120.441 -35.6749 33.0943 +120.382 -36.5563 33.912 +118.745 -36.9526 34.2797 +117.475 -37.4479 34.7391 +114.833 -37.4823 34.771 +112.38 -37.5467 34.8308 +110.932 -37.9234 35.1803 +107.588 -37.6217 34.9003 +105.968 -37.8908 35.15 +103.275 -37.7495 35.0189 +99.7036 -37.2438 34.5498 +96.9503 -37.0001 34.3237 +94.652 -36.8963 34.2274 +93.1546 -37.0806 34.3983 +90.6981 -36.8577 34.1916 +88.6022 -36.7506 34.0922 +87.6418 -37.0961 34.4128 +85.4736 -36.9112 34.2412 +83.7452 -36.8903 34.2218 +82.5356 -37.0799 34.3977 +80.5646 -36.9072 34.2375 +79.6162 -37.1849 34.4951 +77.577 -36.9342 34.2625 +76.0504 -36.9031 34.2337 +74.0331 -36.6092 33.9611 +73.4296 -36.9985 34.3222 +71.1843 -36.5417 33.8985 +70.0139 -36.6126 33.9642 +68.8473 -36.6713 34.0187 +67.9259 -36.8487 34.1832 +66.3666 -36.6642 34.0121 +65.1343 -36.6411 33.9906 +63.9865 -36.6502 33.9991 +62.7652 -36.6018 33.9542 +61.7054 -36.6328 33.9829 +60.4954 -36.5598 33.9153 +59.5217 -36.6156 33.967 +59.0075 -36.9474 34.2748 +57.056 -36.3616 33.7314 +55.8721 -36.2395 33.6181 +54.6955 -36.1049 33.4933 +54.2636 -36.4535 33.8166 +53.2425 -36.3993 33.7663 +52.0819 -36.2339 33.6129 +51.0012 -36.1073 33.4955 +50.6408 -36.4837 33.8446 +49.4268 -36.236 33.6149 +49.1337 -36.6554 34.004 +47.9314 -36.3882 33.7561 +47.0146 -36.3213 33.694 +46.5805 -36.6207 33.9717 +45.6023 -36.4848 33.8457 +44.0957 -35.9035 33.3064 +43.998 -36.4588 33.8216 +43.3655 -36.5729 33.9274 +42.4739 -36.4587 33.8215 +42.1026 -36.7852 34.1243 +41.0907 -36.544 33.9006 +40.0877 -36.2928 33.6675 +39.0939 -36.0315 33.4251 +38.6635 -36.2802 33.6559 +38.2911 -36.5843 33.938 +37.3727 -36.3595 33.7295 +36.998 -36.6562 34.0046 +35.9137 -36.239 33.6177 +35.4229 -36.4077 33.7742 +34.8161 -36.4528 33.816 +34.3809 -36.6742 34.0214 +33.4397 -36.3457 33.7166 +32.9506 -36.4972 33.8571 +32.406 -36.5836 33.9373 +31.9693 -36.7895 34.1283 +31.5302 -36.9927 34.3168 +30.6184 -36.6304 33.9807 +30.1812 -36.8249 34.1611 +29.285 -36.448 33.8116 +28.85 -36.634 33.9841 +28.4128 -36.8172 34.154 +27.5857 -36.4846 33.8455 +27.2458 -36.7886 34.1275 +26.3843 -36.3789 33.7474 +26.3197 -37.0665 34.3853 +25.4235 -36.5803 33.9343 +25.0763 -36.8727 34.2055 +24.2419 -36.4387 33.8029 +23.7642 -36.5263 33.8841 +23.3708 -36.7433 34.0855 +22.6008 -36.3578 33.7278 +22.2078 -36.568 33.9228 +21.8116 -36.7759 34.1157 +21.0604 -36.3741 33.743 +20.8562 -36.9139 34.2437 +20.1164 -36.5021 33.8618 +19.7178 -36.6977 34.0431 +19.2085 -36.6855 34.0318 +18.526 -36.3263 33.6987 +18.0587 -36.3746 33.7434 +17.9254 -37.1106 34.4262 +17.2877 -36.808 34.1455 +16.8171 -36.8477 34.1823 +16.2543 -36.675 34.0221 +15.6367 -36.3581 33.7281 +15.2326 -36.5268 33.8847 +14.8256 -36.6932 34.039 +14.3883 -36.7867 34.1257 +13.7628 -36.3828 33.751 +13.0962 -35.8321 33.2401 +12.9446 -36.6952 34.0409 +12.5316 -36.8478 34.1824 +11.8824 -36.285 33.6603 +11.3825 -36.1453 33.5308 +10.9086 -36.0736 33.4642 +10.5619 -36.4289 33.7938 +10.2475 -36.9261 34.2551 +9.80758 -36.9903 34.3146 +9.23934 -36.547 33.9034 +8.75187 -36.3881 33.756 +8.3349 -36.515 33.8737 +7.79044 -36.0601 33.4517 +7.49394 -36.7611 34.102 +7.05608 -36.8077 34.1452 +6.61768 -36.8515 34.1858 +6.16659 -36.8196 34.1562 +5.72808 -36.8576 34.1915 +5.28914 -36.8929 34.2242 +4.85938 -36.9983 34.322 +4.33164 -36.2977 33.6721 +3.89942 -36.324 33.6965 +3.4669 -36.3475 33.7183 +3.04022 -36.4415 33.8055 +2.60633 -36.4596 33.8223 +2.17661 -36.5481 33.9044 +1.73799 -36.4874 33.8481 +1.30361 -36.4971 33.8571 +0.86913 -36.504 33.8635 +0.435454 -36.5815 33.9354 +1.88738e-15 -36.5096 33.8687 +-0.434581 -36.5082 33.8674 +-0.863894 -36.2842 33.6596 +-1.30099 -36.4238 33.7891 +-1.73799 -36.4874 33.8481 +-2.17225 -36.4749 33.8365 +-2.60633 -36.4596 33.8223 +-3.03411 -36.3683 33.7376 +-3.5227 -36.9326 34.2611 +-3.95434 -36.8356 34.1711 +-4.47109 -37.4662 34.7561 +-4.82104 -36.7064 34.0512 +-5.36231 -37.4033 34.6977 +-5.70544 -36.712 34.0564 +-6.1544 -36.7469 34.0888 +-6.57852 -36.6334 33.9835 +-7.00041 -36.5173 33.8758 +-7.43481 -36.4711 33.833 +-7.86865 -36.4222 33.7876 +-8.46694 -37.0935 34.4104 +-8.96025 -37.2545 34.5597 +-9.14822 -36.1866 33.569 +-9.52137 -35.9108 33.3132 +-10.0681 -36.2796 33.6553 +-10.5411 -36.3572 33.7273 +-10.9518 -36.2168 33.5971 +-11.36 -36.0739 33.4645 +-11.789 -35.9999 33.3958 +-12.2171 -35.923 33.3245 +-12.8695 -36.4823 33.8434 +-13.3033 -36.3986 33.7657 +-13.8162 -36.5241 33.8821 +-14.2505 -36.4342 33.7988 +-14.6836 -36.3417 33.7129 +-15.3788 -36.8773 34.2098 +-15.5766 -36.2182 33.5984 +-16.2852 -36.7447 34.0868 +-16.7854 -36.7782 34.1178 +-17.2551 -36.7387 34.0812 +-17.6584 -36.5578 33.9134 +-18.4691 -37.2012 34.5103 +-18.9112 -37.0817 34.3994 +-19.316 -36.8908 34.2223 +-19.7544 -36.7658 34.1064 +-20.5284 -37.2498 34.5554 +-20.5884 -36.4397 33.8039 +-21.3339 -36.8466 34.1813 +-21.7318 -36.6414 33.991 +-22.5739 -37.1707 34.482 +-23.0569 -37.0916 34.4085 +-23.5398 -37.0091 34.332 +-24.0656 -36.9894 34.3138 +-24.5488 -36.9 34.2308 +-24.9425 -36.6759 34.0229 +-25.8321 -37.1682 34.4796 +-26.1811 -36.8714 34.2043 +-27.0885 -37.3498 34.6481 +-27.4366 -37.0463 34.3665 +-27.8281 -36.8052 34.1429 +-28.6591 -37.1362 34.45 +-29.2 -37.0784 34.3964 +-29.9955 -37.3324 34.632 +-30.5418 -37.2647 34.5692 +-30.8274 -36.8804 34.2127 +-31.7952 -37.3035 34.6052 +-32.1842 -37.0368 34.3577 +-32.7873 -37.014 34.3366 +-33.7233 -37.353 34.6511 +-33.943 -36.8927 34.2241 +-35.0605 -37.3992 34.6939 +-35.0455 -36.693 34.0388 +-35.8874 -36.8852 34.2171 +-36.7366 -37.0694 34.388 +-37.5333 -37.1866 34.4967 +-37.9745 -36.945 34.2726 +-39.0825 -37.3405 34.6394 +-39.5255 -37.089 34.4062 +-40.5257 -37.3511 34.6493 +-41.0317 -37.1474 34.4603 +-41.9812 -37.336 34.6353 +-42.6168 -37.2345 34.5411 +-43.513 -37.3507 34.6489 +-44.1528 -37.2369 34.5433 +-44.9919 -37.2824 34.5856 +-45.434 -36.9931 34.3172 +-45.805 -36.647 33.9961 +-46.9215 -36.8887 34.2204 +-47.9095 -37.0126 34.3353 +-48.9039 -37.1265 34.441 +-50.115 -37.3875 34.683 +-50.5581 -37.0654 34.3843 +-51.6393 -37.203 34.5119 +-52.0083 -36.8203 34.1569 +-53.7502 -37.3946 34.6896 +-54.3396 -37.1493 34.4621 +-55.2958 -37.1469 34.4599 +-55.8102 -36.8408 34.1759 +-57.0704 -37.0166 34.339 +-59.0183 -37.6121 34.8914 +-59.92 -37.5188 34.8048 +-61.5134 -37.8408 35.1036 +-62.9646 -38.0521 35.2996 +-63.9591 -37.9708 35.2242 +-65.1913 -38.0166 35.2666 +-66.2717 -37.9591 35.2133 +-67.435 -37.9353 35.1913 +-69.1618 -38.2084 35.4446 +-71.0609 -38.5494 35.7609 +-72.0834 -38.395 35.6177 +-73.189 -38.2729 35.5045 +-74.379 -38.1817 35.4198 +-75.8196 -38.2027 35.4393 +-77.6808 -38.4131 35.6345 +-79.4693 -38.5621 35.7727 +-81.1833 -38.6511 35.8553 +-83.1584 -38.8393 36.0298 +-84.1264 -38.5389 35.7512 +-86.0314 -38.6504 35.8546 +-87.5168 -38.5517 35.763 +-89.3509 -38.5856 35.7945 +-91.5389 -38.7456 35.943 +-93.2151 -38.664 35.8672 +-95.2461 -38.7059 35.9061 +-97.1972 -38.6898 35.8912 +-98.9784 -38.5827 35.7919 +-102.006 -38.9297 36.1137 +-104.07 -38.8747 36.0627 +-104.439 -38.1748 35.4134 +-104.53 -37.3766 34.673 +-104.971 -36.7064 34.0512 +-106.672 -36.4672 33.8294 +-107.193 -35.8138 33.2232 +-107.616 -35.1266 32.5858 +-107.479 -34.2614 31.7831 +-106.779 -33.2287 30.8251 +-57.2805 -17.3944 16.1362 +-47.0082 -13.9239 12.9168 +-42.7992 -12.3598 11.4658 +-37.1565 -10.4566 9.70018 +-34.8442 -9.55093 8.86006 +-19.1697 -5.11517 4.74516 +-16.4962 -4.28264 3.97285 +-15.2228 -3.84278 3.56482 +-16.1215 -3.95461 3.66855 +-15.9777 -3.80601 3.5307 +-15.1641 -3.50523 3.25168 +-14.7271 -3.30091 3.06214 +-14.0947 -3.06082 2.83941 +-13.5538 -2.84928 2.64318 +-13.3945 -2.72327 2.52628 +-3164.66 -621.667 576.699 +-13.9413 -2.64326 2.45206 +-12.1287 -2.21698 2.05662 +-12.3491 -2.17354 2.01632 +-12.8617 -2.1769 2.01944 +-12.5942 -2.04694 1.89887 +-13.3028 -2.07298 1.92303 +-13.7189 -2.04626 1.89824 +-13.7428 -1.95842 1.81676 +-13.9622 -1.89714 1.75991 +-14.3782 -1.85866 1.72422 +-14.2025 -1.74241 1.61637 +-13.8276 -1.6056 1.48946 +-13.2528 -1.45206 1.34703 +-14.1608 -1.45905 1.35351 +-13.5828 -1.31098 1.21615 +-13.9949 -1.25977 1.16865 +-13.91 -1.16189 1.07784 +-13.1277 -1.01155 0.93838 +-12.2434 -0.864281 0.801763 +-12.7513 -0.817867 0.758706 +-11.2652 -0.64998 0.602963 +-10.9732 -0.562542 0.521851 +-10.7799 -0.483367 0.448402 +-11.5841 -0.445078 0.412883 +-11.2892 -0.361356 0.335218 +-10.9933 -0.281442 0.261084 +-11.596 -0.222616 0.206513 +-11.7982 -0.150978 0.140057 +-10.4996 -0.0671752 0.0623161 +11.3 8.88178e-16 2.84217e-14 +11.2996 -0.0716853 0.0677136 +11.2983 -0.143365 0.135422 +10.9962 -0.209325 0.197727 +11.8928 -0.301909 0.285182 +11.8887 -0.377343 0.356437 +12.1833 -0.464162 0.438446 +11.8778 -0.528119 0.498859 +11.5717 -0.588236 0.555646 +12.4615 -0.712956 0.673455 +12.8509 -0.817326 0.772043 +12.7411 -0.891854 0.842442 +13.9233 -1.06383 1.00489 +14.1087 -1.16858 1.10383 +14.4912 -1.29347 1.22181 +34.8989 -3.34002 3.15497 +41.1952 -4.2088 3.97561 +42.6266 -4.63115 4.37457 +41.1866 -4.74218 4.47944 +37.183 -4.52335 4.27273 +34.2713 -4.39298 4.14959 +39.1335 -5.27261 4.98048 +56.3454 -7.96194 7.52081 +63.3031 -9.36264 8.84391 +71.796 -11.0939 10.4792 +74.9795 -12.0839 11.4144 +114.683 -19.2475 18.1811 +117.851 -20.5683 19.4287 +119.346 -21.6317 20.4332 +120.244 -22.6064 21.3539 +120.065 -23.3871 22.0914 +119.972 -24.1868 22.8467 +119.869 -24.987 23.6026 +120.332 -25.9116 24.476 +120.016 -26.674 25.1961 +120.168 -27.5437 26.0176 +120.404 -28.4398 26.8641 +119.963 -29.1794 27.5627 +120.365 -30.1286 28.4594 +120.564 -31.0367 29.3171 +119.999 -31.7506 29.9915 +120.175 -32.6634 30.8537 +119.685 -33.3985 31.5481 +120.21 -34.4229 32.5157 +120.627 -35.4293 33.4663 +120.197 -36.1931 34.1879 +118.653 -36.6134 34.5849 +116.558 -36.843 34.8017 +114.833 -37.1671 35.1078 +112.744 -37.3515 35.282 +110.932 -37.6045 35.521 +108.039 -37.4618 35.3862 +105.249 -37.3172 35.2496 +102.828 -37.2698 35.2049 +99.7036 -36.9306 34.8845 +96.152 -36.3868 34.3708 +94.9169 -36.6883 34.6556 +92.7152 -36.5952 34.5677 +90.6981 -36.5477 34.5228 +88.8633 -36.5488 34.5239 +86.8623 -36.457 34.4371 +84.6981 -36.2687 34.2592 +83.7452 -36.58 34.5533 +82.1092 -36.5781 34.5515 +80.5646 -36.5968 34.5691 +79.3631 -36.7549 34.7186 +78.4157 -37.0194 34.9684 +75.4667 -36.3118 34.3 +74.5305 -36.5452 34.5204 +73.1824 -36.5637 34.538 +71.4301 -36.3595 34.345 +70.0139 -36.3047 34.2932 +69.0901 -36.4911 34.4693 +68.1671 -36.6685 34.6369 +66.2867 -36.312 34.3002 +65.1343 -36.3329 34.3199 +63.9865 -36.3419 34.3284 +62.8434 -36.3391 34.3258 +61.7054 -36.3247 34.3121 +60.4954 -36.2523 34.2438 +59.445 -36.2609 34.2519 +59.0835 -36.6838 34.6514 +56.9806 -36.0081 34.0131 +55.7972 -35.8864 33.8982 +55.3643 -36.239 34.2312 +54.2636 -36.1468 34.1441 +53.2425 -36.0931 34.0934 +52.0819 -35.9291 33.9385 +51.0731 -35.8541 33.8676 +50.5695 -36.1258 34.1243 +49.4268 -35.9312 33.9405 +48.5029 -35.8804 33.8925 +47.9314 -36.0821 34.083 +46.8769 -35.9103 33.9207 +45.8985 -35.781 33.7985 +45.0619 -35.7492 33.7685 +44.1626 -35.6556 33.6801 +43.3354 -35.6077 33.6348 +42.6438 -35.6617 33.6859 +42.409 -36.0968 34.0968 +41.3955 -35.8633 33.8763 +40.391 -35.6196 33.6462 +40.0248 -35.931 33.9403 +39.0939 -35.7284 33.7489 +38.7251 -36.0323 34.036 +38.2302 -36.219 34.2123 +37.3727 -36.0537 34.0562 +37.1764 -36.5232 34.4996 +35.8549 -35.8754 33.8877 +35.3648 -36.0423 34.0454 +34.8161 -36.1462 34.1435 +34.3809 -36.3657 34.3509 +33.4397 -36.04 34.0432 +33.0058 -36.2508 34.2423 +32.4605 -36.3369 34.3236 +31.9156 -36.4188 34.401 +31.4772 -36.6199 34.591 +30.5662 -36.2602 34.2513 +30.1812 -36.5151 34.492 +29.285 -36.1415 34.1391 +28.85 -36.3259 34.3133 +28.4128 -36.5075 34.4848 +28.0705 -36.8135 34.7739 +27.198 -36.4152 34.3977 +26.7129 -36.5222 34.4987 +25.9503 -36.2389 34.2311 +25.4235 -36.2726 34.2629 +24.6747 -35.9771 33.9838 +24.2419 -36.1322 34.1303 +23.8073 -36.2847 34.2743 +23.3708 -36.4343 34.4157 +22.6423 -36.1181 34.117 +22.2078 -36.2604 34.2514 +21.7717 -36.3999 34.3832 +21.0213 -36.0013 34.0067 +20.5501 -36.0661 34.0679 +20.1538 -36.2625 34.2534 +19.6811 -36.3213 34.3089 +19.1727 -36.3091 34.2974 +18.561 -36.0888 34.0893 +18.0587 -36.0686 34.0703 +17.5916 -36.1133 34.1124 +17.2877 -36.4984 34.4762 +16.8171 -36.5378 34.5134 +16.2543 -36.3665 34.3517 +15.6668 -36.1216 34.1203 +15.2326 -36.2196 34.2129 +14.8256 -36.3846 34.3687 +14.3607 -36.4073 34.3902 +13.7361 -36.0067 34.0118 +13.3551 -36.2329 34.2254 +12.7193 -35.7532 33.7723 +12.2654 -35.762 33.7806 +12.1158 -36.6867 34.6541 +11.405 -35.9122 33.9225 +10.8653 -35.6283 33.6543 +10.5203 -35.9803 33.9868 +10.2674 -36.6868 34.6541 +9.61677 -35.9655 33.9729 +9.22112 -36.1681 34.1643 +8.76923 -36.1537 34.1506 +8.3184 -36.1362 34.1341 +7.91558 -36.3312 34.3183 +7.49394 -36.4519 34.4323 +7.05608 -36.4981 34.4759 +6.61768 -36.5415 34.5169 +6.16659 -36.5099 34.4871 +5.6262 -35.8976 33.9087 +5.27869 -36.5103 34.4875 +4.77312 -36.0358 34.0393 +4.34036 -36.0648 34.0666 +3.89942 -36.0185 34.0229 +3.4669 -36.0418 34.0449 +3.04022 -36.135 34.133 +2.61156 -36.2255 34.2184 +2.17225 -36.1681 34.1642 +1.73799 -36.1805 34.1759 +1.28005 -35.536 33.5672 +0.86913 -36.197 34.1915 +0.435454 -36.2738 34.2641 +2.10942e-15 -36.2752 34.2654 +-0.434581 -36.2011 34.1954 +-0.86913 -36.197 34.1915 +-1.32455 -36.7715 34.7342 +-1.73799 -36.1805 34.1759 +-2.20714 -36.7491 34.713 +-2.60633 -36.1529 34.1499 +-3.09516 -36.788 34.7498 +-3.5227 -36.622 34.593 +-3.88373 -35.8735 33.886 +-4.39265 -36.4993 34.477 +-4.83063 -36.47 34.4494 +-5.26823 -36.438 34.4192 +-5.70544 -36.4032 34.3863 +-6.14221 -36.3656 34.3508 +-6.57852 -36.3252 34.3127 +-7.01432 -36.2821 34.2719 +-7.44959 -36.2363 34.2286 +-7.86865 -36.1158 34.1148 +-8.30189 -36.0645 34.0664 +-8.7345 -36.0105 34.0153 +-9.29401 -36.4541 34.4343 +-9.52137 -35.6087 33.6359 +-10.0681 -35.9744 33.9813 +-10.5411 -36.0514 34.054 +-10.9086 -35.7702 33.7884 +-11.6075 -36.5496 34.5246 +-11.8123 -35.7677 33.786 +-12.2171 -35.6209 33.6473 +-12.8695 -36.1755 34.1712 +-13.3292 -36.1627 34.1591 +-13.7628 -36.0768 34.0779 +-14.2505 -36.1278 34.1262 +-14.9108 -36.5936 34.5662 +-15.0864 -35.872 33.8845 +-15.8472 -36.5376 34.5132 +-16.347 -36.5739 34.5476 +-17.0393 -37.0204 34.9693 +-17.2551 -36.4297 34.4113 +-17.6918 -36.3188 34.3066 +-18.1613 -36.2735 34.2638 +-18.8412 -36.6336 34.6039 +-19.316 -36.5805 34.5538 +-19.7544 -36.4566 34.4367 +-20.1913 -36.3299 34.3171 +-20.9711 -36.8049 34.7657 +-21.3339 -36.5366 34.5123 +-22.1306 -36.9999 34.9499 +-22.6552 -36.9909 34.9415 +-23.1399 -36.9119 34.8668 +-23.5821 -36.7637 34.7269 +-24.0656 -36.6783 34.6462 +-24.8118 -36.9816 34.9327 +-25.2994 -36.8879 34.8441 +-25.7867 -36.7908 34.7524 +-26.2273 -36.6258 34.5965 +-26.9946 -36.9073 34.8625 +-27.4843 -36.7986 34.7598 +-28.2644 -37.0678 35.0141 +-28.3144 -36.381 34.3653 +-29.65 -37.3332 35.2647 +-29.9955 -37.0184 34.9674 +-30.4388 -36.8267 34.7863 +-31.4022 -37.252 35.1881 +-31.7952 -36.9897 34.9404 +-32.238 -36.7866 34.7485 +-32.6783 -36.5807 34.554 +-33.2818 -36.5539 34.5286 +-33.943 -36.5824 34.5556 +-35.1172 -37.1445 35.0865 +-35.6191 -36.9799 34.931 +-35.9455 -36.6342 34.6045 +-37.0305 -37.0517 34.9989 +-37.6523 -36.9906 34.9412 +-38.0347 -36.6923 34.6594 +-38.4128 -36.392 34.3757 +-39.587 -36.8343 34.7935 +-39.9654 -36.5249 34.5012 +-40.9688 -36.7784 34.7407 +-42.0448 -37.0781 35.0238 +-42.4883 -36.8099 34.7705 +-43.0584 -36.6495 34.619 +-44.0872 -36.8688 34.8261 +-45.1244 -37.0777 35.0234 +-45.434 -36.682 34.6496 +-46.6157 -36.9819 34.9329 +-47.5353 -37.057 35.0039 +-47.9095 -36.7013 34.6679 +-48.9039 -36.8143 34.7746 +-50.115 -37.073 35.019 +-51.1238 -37.1649 35.1058 +-51.568 -36.8391 34.7981 +-52.6557 -36.9651 34.9171 +-53.0974 -36.6297 34.6002 +-54.9247 -37.2334 35.1705 +-55.3695 -36.8835 34.84 +-56.5533 -37.0173 34.9664 +-57.8943 -37.2352 35.1722 +-58.9428 -37.248 35.1843 +-59.7679 -37.1087 35.0528 +-62.2028 -37.9432 35.8409 +-62.8874 -37.6858 35.5978 +-63.9591 -37.6514 35.5654 +-65.1913 -37.6968 35.6082 +-66.9809 -38.0426 35.9349 +-67.9904 -37.9261 35.8248 +-69.2417 -37.9308 35.8293 +-70.3375 -37.836 35.7397 +-72.3261 -38.2002 36.0837 +-73.189 -37.951 35.8484 +-74.8705 -38.1107 35.9992 +-76.2317 -38.0872 35.977 +-77.6808 -38.09 35.9796 +-79.2192 -38.1173 36.0055 +-81.1833 -38.326 36.2026 +-82.9054 -38.3955 36.2682 +-84.1264 -38.2147 36.0975 +-85.6903 -38.1734 36.0584 +-87.8596 -38.3771 36.2509 +-89.1786 -38.1873 36.0715 +-91.2791 -38.3107 36.1881 +-93.4762 -38.4461 36.316 +-95.9458 -38.6623 36.5202 +-96.9335 -38.2603 36.1405 +-99.5082 -38.4629 36.3319 +-102.006 -38.6023 36.4635 +-104.693 -38.7788 36.6303 +-105.244 -38.1456 36.0322 +-105.249 -37.3172 35.2496 +-105.332 -36.5228 34.4993 +-107.488 -36.437 34.4182 +-107.193 -35.5126 33.545 +-107.433 -34.772 32.8455 +-107.571 -34.0022 32.1184 +-107.607 -33.2049 31.3652 +-57.1881 -17.2203 16.2662 +-46.1738 -13.5617 12.8103 +-42.0549 -12.0427 11.3755 +-37.5299 -10.4729 9.89261 +-33.9075 -9.21601 8.70541 +-26.7812 -7.08608 6.69348 +-15.1765 -3.90688 3.69043 +-16.0738 -4.02347 3.80055 +-16.1215 -3.92134 3.70408 +-15.1218 -3.57182 3.37392 +-15.0687 -3.45389 3.26253 +-15.1096 -3.35816 3.17211 +-14.6699 -3.15895 2.98393 +-14.0344 -2.92551 2.76342 +-14.1654 -2.85578 2.69756 +-12.4604 -2.42715 2.29267 +-12.9732 -2.43901 2.30388 +-13.5841 -2.46214 2.32573 +-13.4187 -2.34193 2.21218 +-12.5694 -2.10954 1.99266 +-12.8871 -2.07692 1.96185 +-12.4225 -1.91952 1.81317 +-13.425 -1.98557 1.87556 +-13.7428 -1.94195 1.83435 +-13.6672 -1.84144 1.73941 +-14.3782 -1.84303 1.74092 +-14.1039 -1.71575 1.62069 +-14.1239 -1.62621 1.53611 +-14.4396 -1.56879 1.48187 +-14.1608 -1.44678 1.36662 +-14.1777 -1.35688 1.2817 +-12.7046 -1.134 1.07118 +-12.3203 -1.02045 0.963909 +-12.8293 -0.980245 0.925935 +-11.9448 -0.836111 0.789787 +-10.9581 -0.696944 0.658331 +-10.667 -0.61029 0.576477 +-11.7713 -0.598378 0.565225 +-11.2789 -0.501491 0.473706 +-10.9849 -0.418507 0.39532 +-11.2892 -0.358317 0.338465 +-10.9933 -0.279075 0.263613 +-11.796 -0.224549 0.212108 +-10.9983 -0.139559 0.131826 +-11.2996 -0.0716853 0.0677136 +11.3 8.88178e-16 2.84217e-14 +10.9996 -0.0691845 0.0665428 +11.2983 -0.142137 0.13671 +10.9962 -0.207532 0.199608 +11.5929 -0.291777 0.280636 +10.6898 -0.336385 0.323541 +11.8837 -0.448871 0.431732 +11.8778 -0.523596 0.503604 +12.1703 -0.613364 0.589944 +13.0596 -0.740776 0.712491 +12.8509 -0.810327 0.779386 +13.6369 -0.946387 0.910251 +13.9233 -1.05472 1.01445 +15.0029 -1.232 1.18496 +15.7815 -1.39658 1.34325 +37.2783 -3.5372 3.40214 +40.502 -4.10254 3.94589 +41.8354 -4.50627 4.3342 +41.2854 -4.71284 4.53289 +37.3802 -4.5084 4.33626 +36.044 -4.58063 4.40573 +41.1984 -5.50328 5.29315 +61.1554 -8.56764 8.2405 +63.6951 -9.3399 8.98328 +77.078 -11.8081 11.3572 +76.6392 -12.2456 11.778 +115.755 -19.261 18.5256 +118.24 -20.4594 19.6782 +119.734 -21.5162 20.6946 +120.341 -22.4308 21.5743 +120.354 -23.2428 22.3554 +119.876 -23.9604 23.0455 +120.734 -24.9518 23.9991 +120.428 -25.7102 24.7285 +120.973 -26.6563 25.6385 +121.027 -27.5029 26.4527 +120.499 -28.2185 27.141 +119.963 -28.9295 27.8249 +120.27 -29.8472 28.7076 +120.752 -30.819 29.6423 +120.938 -31.7252 30.5139 +120.175 -32.3837 31.1472 +119.778 -33.1383 31.873 +120.675 -34.2602 32.952 +120.163 -34.9908 33.6548 +120.566 -35.9935 34.6192 +119.482 -36.5533 35.1576 +116.558 -36.5275 35.1327 +114.833 -36.8488 35.4418 +112.744 -37.0316 35.6176 +110.932 -37.2824 35.8589 +108.039 -37.1409 35.7228 +105.968 -37.2503 35.828 +102.828 -36.9506 35.5397 +100.416 -36.8761 35.468 +96.152 -36.0752 34.6977 +95.7115 -36.6786 35.2781 +93.1546 -36.4538 35.0619 +90.9604 -36.3395 34.9519 +88.6022 -36.1294 34.7499 +87.6418 -36.4691 35.0766 +86.1629 -36.5799 35.1832 +84.5167 -36.6008 35.2033 +81.7682 -36.1142 34.7352 +81.3278 -36.6271 35.2286 +79.0258 -36.2853 34.8998 +78.4157 -36.7024 35.301 +76.2172 -36.3588 34.9705 +76.0227 -36.9577 35.5466 +73.5945 -36.4547 35.0628 +72.1673 -36.4201 35.0295 +70.2582 -36.1193 34.7402 +69.3328 -36.3056 34.9194 +68.2474 -36.3974 35.0076 +67.0854 -36.4348 35.0437 +65.9277 -36.4605 35.0683 +64.6957 -36.43 35.039 +63.5478 -36.4317 35.0407 +62.4048 -36.4218 35.0311 +61.1898 -36.3545 34.9664 +60.2111 -36.4136 35.0233 +59.0835 -36.3697 34.981 +57.6598 -36.1252 34.7459 +55.7972 -35.5791 34.2206 +55.3643 -35.9287 34.5568 +54.2636 -35.8373 34.4689 +53.2425 -35.784 34.4177 +52.0819 -35.6214 34.2613 +51.7205 -35.9976 34.6232 +50.5695 -35.8164 34.4489 +50.2046 -36.1841 34.8025 +49.0636 -35.9844 34.6104 +48.0009 -35.825 34.4571 +47.0146 -35.7073 34.3439 +46.5805 -36.0017 34.627 +45.6699 -35.9212 34.5497 +44.5641 -35.6715 34.3095 +43.9317 -35.7886 34.4221 +43.4967 -36.0634 34.6864 +42.6038 -35.952 34.5793 +42.1669 -36.2186 34.8357 +40.4546 -35.3702 34.0196 +40.6541 -36.1834 34.8018 +39.6542 -35.93 34.5581 +38.7867 -35.7806 34.4144 +38.352 -36.0232 34.6477 +37.3727 -35.745 34.3801 +36.9385 -35.9786 34.6049 +36.4427 -36.1513 34.7709 +35.3648 -35.7336 34.3692 +34.8161 -35.8366 34.4683 +34.4375 -36.1137 34.7348 +33.943 -36.2691 34.8843 +32.9506 -35.8802 34.5102 +32.406 -35.9652 34.592 +31.9693 -36.1677 34.7867 +31.5302 -36.3674 34.9788 +30.6184 -36.0112 34.6362 +30.2327 -36.2642 34.8795 +29.3357 -35.8941 34.5235 +28.85 -36.0148 34.6397 +28.4128 -36.1948 34.8128 +27.9735 -36.3722 34.9834 +27.198 -36.1034 34.7248 +26.7129 -36.2094 34.8268 +25.9041 -35.8646 34.4952 +25.7867 -36.4757 35.083 +25.0763 -36.2495 34.8654 +24.6803 -36.4706 35.078 +23.8073 -35.9739 34.6003 +23.3708 -36.1223 34.743 +22.6423 -35.8088 34.4415 +22.2485 -36.0157 34.6405 +21.8514 -36.2203 34.8374 +20.9823 -35.6266 34.2663 +20.5501 -35.7572 34.3919 +20.1538 -35.9519 34.5792 +19.7544 -36.1444 34.7643 +19.2802 -36.1999 34.8177 +18.561 -35.7798 34.4136 +18.0929 -35.8274 34.4594 +17.6584 -35.9398 34.5676 +17.3202 -36.254 34.8697 +16.8489 -36.2932 34.9074 +16.2543 -36.0551 34.6784 +15.6367 -35.7435 34.3787 +15.2326 -35.9094 34.5383 +14.7972 -36.0038 34.6291 +14.4158 -36.2341 34.8506 +13.7628 -35.7678 34.4021 +13.3551 -35.9226 34.551 +12.9196 -36.0052 34.6304 +12.5316 -36.225 34.8418 +12.1625 -36.5127 35.1185 +11.6525 -36.3771 34.9881 +11.1034 -36.0972 34.7189 +10.5411 -35.7426 34.3779 +10.2475 -36.3019 34.9158 +9.80758 -36.365 34.9765 +9.22112 -35.8584 34.4892 +8.7866 -35.915 34.5437 +8.35141 -35.969 34.5956 +7.93123 -36.0913 34.7132 +7.49394 -36.1398 34.7599 +7.05608 -36.1855 34.8039 +6.61768 -36.2286 34.8453 +6.06909 -35.6249 34.2647 +5.7394 -36.3063 34.92 +5.29959 -36.341 34.9534 +4.77312 -35.7272 34.3631 +4.34036 -35.7559 34.3907 +3.97003 -36.3566 34.9684 +3.47387 -35.8051 34.4379 +3.04022 -35.8255 34.4576 +2.6168 -35.9873 34.6132 +2.17661 -35.9303 34.5584 +1.74148 -35.9426 34.5703 +1.30361 -35.8802 34.5102 +0.86913 -35.887 34.5167 +0.436327 -36.0353 34.6593 +1.55431e-15 -35.8925 34.522 +-0.434581 -35.8911 34.5207 +-0.883092 -36.4635 35.0712 +-1.30099 -35.8082 34.4409 +-1.73799 -35.8706 34.501 +-2.18097 -36.0023 34.6277 +-2.65343 -36.4911 35.0977 +-3.08906 -36.401 35.0111 +-3.53665 -36.4521 35.0603 +-3.96218 -36.2848 34.8993 +-4.39265 -36.1867 34.805 +-4.91689 -36.8033 35.3981 +-5.36231 -36.7711 35.367 +-5.70544 -36.0914 34.7133 +-6.14221 -36.0541 34.6775 +-6.57852 -36.0141 34.639 +-7.01432 -35.9714 34.5979 +-7.44959 -35.9259 34.5542 +-8.00944 -36.4472 35.0555 +-8.46694 -36.4665 35.0742 +-8.96025 -36.6248 35.2264 +-9.34868 -36.3545 34.9664 +-9.67402 -35.8698 34.5002 +-10.0681 -35.6663 34.3045 +-10.5203 -35.6722 34.3101 +-10.9518 -35.6046 34.2451 +-11.585 -36.1664 34.7855 +-12.0458 -36.1623 34.7815 +-12.459 -36.0152 34.64 +-12.8695 -35.8657 34.4962 +-13.3292 -35.853 34.484 +-14.0033 -36.3928 35.0032 +-14.471 -36.3726 34.9838 +-14.9392 -36.3494 34.9614 +-15.3788 -36.254 34.8697 +-15.8472 -36.2247 34.8415 +-16.347 -36.2607 34.8762 +-16.7537 -36.0882 34.7102 +-17.2551 -36.1177 34.7386 +-17.6918 -36.0078 34.6329 +-18.0929 -35.8274 34.4594 +-18.8762 -36.3873 34.998 +-19.316 -36.2673 34.8825 +-19.7911 -36.2114 34.8288 +-20.5659 -36.687 35.2862 +-20.9328 -36.4231 35.0324 +-21.6074 -36.6881 35.2873 +-22.1306 -36.683 35.2823 +-22.6146 -36.6082 35.2104 +-23.1399 -36.5958 35.1985 +-23.7089 -36.6449 35.2457 +-24.0225 -36.2992 34.9132 +-24.8995 -36.7945 35.3896 +-25.3887 -36.701 35.2997 +-25.7867 -36.4757 35.083 +-26.7352 -37.0153 35.602 +-27.0885 -36.7185 35.3165 +-27.4366 -36.4201 35.0294 +-28.3614 -36.8765 35.4685 +-28.7575 -36.634 35.2352 +-29.6 -36.951 35.5401 +-29.9955 -36.7014 35.3 +-30.4903 -36.5731 35.1766 +-31.3499 -36.8715 35.4637 +-31.7952 -36.673 35.2727 +-32.1305 -36.35 34.9621 +-32.7873 -36.3883 34.9989 +-33.1714 -36.1206 34.7414 +-34.3344 -36.6874 35.2866 +-35.2305 -36.9452 35.5345 +-35.8485 -36.8993 35.4904 +-36.4101 -36.7898 35.3851 +-37.2068 -36.9093 35.5 +-37.6523 -36.6738 35.2735 +-38.6365 -36.9537 35.5427 +-38.4737 -36.1375 34.7576 +-39.6486 -36.5757 35.1791 +-40.5257 -36.7197 35.3177 +-40.9688 -36.4634 35.0712 +-42.0448 -36.7605 35.3569 +-42.6168 -36.6051 35.2074 +-43.1234 -36.3905 35.001 +-44.0216 -36.4986 35.105 +-44.5943 -36.3283 34.9412 +-46.0362 -36.8499 35.4429 +-46.5482 -36.6121 35.2141 +-47.5353 -36.7396 35.3368 +-48.529 -36.8575 35.4502 +-48.9734 -36.5509 35.1553 +-50.0449 -36.7041 35.3026 +-51.1945 -36.8975 35.4887 +-51.568 -36.5236 35.1291 +-53.2311 -37.049 35.6344 +-53.8228 -36.8121 35.4065 +-54.9247 -36.9146 35.5051 +-56.1068 -37.0546 35.6398 +-56.6276 -36.7486 35.3454 +-57.8943 -36.9163 35.5067 +-59.3956 -37.2127 35.7918 +-60.5283 -37.2591 35.8364 +-62.356 -37.7108 36.2709 +-62.8102 -37.3172 35.8924 +-64.7363 -37.7825 36.3399 +-65.8173 -37.7329 36.2921 +-67.0597 -37.7612 36.3194 +-68.1491 -37.689 36.2499 +-69.9605 -37.9963 36.5455 +-71.0609 -37.8978 36.4507 +-72.7306 -38.0849 36.6307 +-73.596 -37.8352 36.3906 +-75.7716 -38.239 36.779 +-76.8086 -38.0468 36.5941 +-78.7586 -38.2877 36.8258 +-78.8856 -37.6318 36.1949 +-81.1833 -37.9978 36.547 +-83.1584 -38.1828 36.7248 +-84.8048 -38.193 36.7347 +-86.4577 -38.1854 36.7274 +-87.8596 -38.0485 36.5957 +-90.1264 -38.2626 36.8016 +-92.7513 -38.5952 37.1216 +-93.9984 -38.3298 36.8663 +-96.7329 -38.6456 37.17 +-97.9881 -38.3453 36.8812 +-100.568 -38.5396 37.068 +-102.006 -38.2717 36.8104 +-105.584 -38.7739 37.2934 +-104.797 -37.6581 36.2202 +-105.069 -36.9344 35.5241 +-105.422 -36.2411 34.8573 +-107.76 -36.2163 34.8335 +-107.193 -35.2084 33.8641 +-107.616 -34.5329 33.2143 +-107.204 -33.5961 32.3133 +-106.779 -32.6671 31.4197 +-59.8674 -17.8727 17.1902 +-47.9354 -13.9586 13.4256 +-43.9157 -12.4679 11.9918 +-40.6107 -11.2355 10.8065 +-35.2189 -9.49046 9.12809 +-32.4194 -8.50443 8.17971 +-16.0249 -4.08996 3.93379 +-16.5466 -4.10633 3.94954 +-15.5525 -3.75055 3.60734 +-15.8826 -3.7194 3.57738 +-15.1641 -3.44598 3.3144 +-15.6834 -3.45584 3.32389 +-15.8205 -3.37753 3.24857 +-14.4189 -2.97991 2.86613 +-12.4308 -2.48464 2.38977 +-3164.66 -611.159 587.823 +-13.1668 -2.45422 2.36051 +-12.4198 -2.23182 2.1466 +-14.0021 -2.42282 2.33031 +-12.8617 -2.14011 2.05839 +-13.4729 -2.15273 2.07054 +-13.3028 -2.03794 1.96013 +-13.131 -1.92546 1.85194 +-14.2336 -1.99407 1.91793 +-13.9622 -1.86507 1.79386 +-14.4767 -1.83976 1.76952 +-14.7943 -1.78433 1.71619 +-14.2227 -1.62357 1.56157 +-14.1429 -1.52339 1.46522 +-14.1608 -1.43439 1.37962 +-13.2854 -1.2606 1.21246 +-14.1934 -1.25604 1.20808 +-12.7177 -1.04434 1.00447 +-12.8293 -0.97185 0.934742 +-12.542 -0.8704 0.837166 +-11.9543 -0.753793 0.725011 +-11.5642 -0.655958 0.630911 +-11.472 -0.578171 0.556095 +-12.1772 -0.536796 0.5163 +-11.2845 -0.426238 0.409963 +-10.6898 -0.336385 0.323541 +-10.4936 -0.264109 0.254024 +-11.2961 -0.213193 0.205052 +-11.2983 -0.142137 0.13671 +-10.9996 -0.0691845 0.0665428 +11.9 -8.88178e-16 2.84217e-14 +10.9996 -0.0685812 0.0671644 +10.9983 -0.137157 0.134323 +10.9962 -0.205723 0.201472 +11.8928 -0.296713 0.290583 +12.1884 -0.380199 0.372344 +11.8837 -0.444957 0.435764 +13.0756 -0.57137 0.559566 +12.9683 -0.647886 0.634501 +13.3587 -0.751135 0.735617 +13.7475 -0.859303 0.84155 +14.5328 -0.999763 0.979109 +14.1222 -1.06046 1.03855 +15.1023 -1.22934 1.20395 +15.3845 -1.34957 1.32169 +38.0715 -3.58096 3.50698 +39.6107 -3.97728 3.89511 +42.0332 -4.48809 4.39537 +42.2731 -4.78352 4.68469 +38.6624 -4.62239 4.52689 +39.1953 -4.93769 4.83569 +44.7381 -5.924 5.80162 +71.9533 -9.99249 9.78605 +70.7506 -10.2841 10.0716 +14.77 -2.24299 2.19665 +78.2989 -12.4017 12.1455 +117.704 -19.4145 19.0134 +118.824 -20.3811 19.96 +120.511 -21.4668 21.0233 +120.341 -22.2352 21.7758 +120.065 -22.9847 22.5098 +119.972 -23.7706 23.2795 +119.773 -24.5373 24.0304 +120.428 -25.486 24.9595 +120.016 -26.215 25.6734 +120.264 -27.0912 26.5315 +120.499 -27.9724 27.3945 +120.911 -28.9039 28.3068 +120.27 -29.5869 28.9757 +120.658 -30.5264 29.8958 +120.844 -31.4241 30.7749 +120.456 -32.1764 31.5117 +120.712 -33.1054 32.4215 +120.582 -33.9353 33.2342 +120.719 -34.8464 34.1265 +121.398 -35.9257 35.1835 +119.758 -36.3183 35.568 +117.475 -36.4939 35.7399 +116.112 -36.9343 36.1712 +113.563 -36.9753 36.2115 +111.748 -37.229 36.4599 +108.852 -37.0939 36.3275 +107.226 -37.364 36.5921 +103.633 -36.9153 36.1527 +101.218 -36.8465 36.0852 +98.0147 -36.4534 35.7003 +96.0647 -36.4929 35.739 +93.5061 -36.2723 35.523 +92.2724 -36.5422 35.7872 +89.5596 -36.2014 35.4535 +88.1614 -36.3654 35.6141 +86.4214 -36.3698 35.6184 +84.5167 -36.2817 35.5321 +82.5356 -36.1353 35.3888 +81.667 -36.4592 35.7059 +80.1222 -36.4679 35.7145 +78.5834 -36.4602 35.707 +77.1344 -36.4756 35.722 +75.0279 -36.1561 35.4091 +73.5945 -36.1369 35.3903 +72.495 -36.2665 35.5172 +70.9909 -36.1777 35.4303 +69.8182 -36.241 35.4923 +68.6494 -36.2925 35.5427 +67.0055 -36.0741 35.3289 +65.9277 -36.1426 35.3959 +64.6169 -36.0683 35.3232 +63.5478 -36.1141 35.368 +63.0265 -36.4639 35.7106 +61.3442 -36.1284 35.382 +60.0579 -36.0043 35.2604 +59.0835 -36.0526 35.3077 +57.6598 -35.8102 35.0704 +56.5462 -35.7423 35.0039 +56.1074 -36.0935 35.3478 +55.0009 -36.0075 35.2636 +53.8276 -35.8618 35.1209 +52.8073 -35.8026 35.0629 +51.7205 -35.6838 34.9466 +50.7121 -35.6042 34.8687 +50.2046 -35.8686 35.1276 +49.1337 -35.7216 34.9836 +48.6261 -35.9752 35.232 +47.703 -35.9142 35.1722 +46.6487 -35.74 35.0016 +46.2779 -36.0821 35.3367 +45.0994 -35.7853 35.046 +43.6667 -35.2625 34.534 +43.5623 -35.8029 35.0633 +43.1234 -36.0732 35.328 +42.0383 -35.7934 35.0539 +41.0907 -35.613 34.8773 +40.6541 -35.8679 35.1269 +39.5919 -35.5609 34.8262 +39.2792 -35.919 35.1769 +38.352 -35.7091 34.9713 +37.9143 -35.9467 35.2041 +37.4144 -36.1244 35.3781 +37.0305 -36.4141 35.6618 +36.0036 -36.0619 35.3169 +35.5044 -36.2265 35.478 +34.3809 -35.7399 35.0016 +33.943 -35.9529 35.2101 +33.0058 -35.627 34.8909 +32.8962 -36.1909 35.4432 +31.9693 -35.8523 35.1116 +31.5302 -36.0503 35.3055 +31.0887 -36.2455 35.4967 +30.1812 -35.8867 35.1453 +30.2493 -36.6891 35.9312 +28.9 -35.7626 35.0238 +28.4128 -35.8792 35.138 +28.022 -36.1175 35.3713 +27.6275 -36.3536 35.6026 +26.7599 -35.9568 35.2139 +26.2735 -36.0588 35.3139 +25.9229 -36.3486 35.5977 +25.0763 -35.9334 35.191 +24.6365 -36.0884 35.3428 +23.7642 -35.5957 34.8604 +23.4131 -35.8721 35.131 +22.974 -36.0167 35.2726 +22.6146 -36.289 35.5393 +21.8116 -35.839 35.0986 +21.4121 -36.0394 35.2949 +20.9711 -36.1715 35.4242 +20.1538 -35.6385 34.9022 +20.0476 -36.361 35.6098 +19.2444 -35.8176 35.0777 +18.8762 -36.0701 35.3249 +18.4007 -36.1193 35.3731 +17.7251 -35.7612 35.0224 +17.4179 -36.1405 35.3939 +16.8806 -36.0445 35.2998 +16.5324 -36.3522 35.6012 +15.6367 -35.4318 34.6999 +15.4957 -36.2112 35.4631 +14.8256 -35.7584 35.0197 +14.6363 -36.4676 35.7142 +14.03 -36.1444 35.3977 +13.3809 -35.6784 34.9413 +12.9196 -35.6913 34.9539 +12.4832 -35.7705 35.0315 +12.0691 -35.9164 35.1744 +11.6075 -35.9207 35.1786 +11.3198 -36.4799 35.7263 +10.749 -36.1298 35.3834 +10.2674 -36.0554 35.3105 +9.97931 -36.6791 35.9214 +9.42158 -36.3185 35.5682 +8.97761 -36.3758 35.6243 +8.36791 -35.7258 34.9877 +7.93123 -35.7766 35.0375 +7.49394 -35.8247 35.0845 +7.05608 -35.87 35.129 +6.63073 -35.9835 35.2401 +6.30065 -36.6616 35.9042 +5.7394 -35.9897 35.2462 +5.28914 -35.953 35.2103 +4.86896 -36.1269 35.3805 +4.41008 -36.0136 35.2695 +3.90726 -35.4699 34.7371 +3.5506 -36.2768 35.5274 +3.04632 -35.5845 34.8493 +2.65343 -36.1729 35.4256 +2.18097 -35.6884 34.9511 +1.77289 -36.2719 35.5225 +1.30885 -35.7102 34.9724 +0.884837 -36.217 35.4688 +0.436327 -35.7211 34.9831 +1.66533e-15 -36.2225 35.4742 +-0.442435 -36.2212 35.4729 +-0.883092 -36.1456 35.3988 +-1.32717 -36.2101 35.462 +-1.7694 -36.2004 35.4526 +-2.17225 -35.5457 34.8113 +-2.6482 -36.1016 35.3557 +-3.09516 -36.1549 35.408 +-3.52968 -36.063 35.318 +-4.04064 -36.6806 35.9228 +-4.47981 -36.5829 35.8271 +-4.92647 -36.5536 35.7984 +-5.36231 -36.4504 35.6974 +-5.81865 -36.4866 35.7328 +-6.27627 -36.5198 35.7653 +-6.57852 -35.7001 34.9626 +-7.13958 -36.2945 35.5447 +-7.58262 -36.2486 35.4997 +-8.00944 -36.1294 35.383 +-8.46694 -36.1486 35.4018 +-8.96025 -36.3055 35.5554 +-9.36691 -36.1077 35.3618 +-9.65494 -35.4869 34.7537 +-10.2674 -36.0554 35.3105 +-10.7282 -36.0599 35.3149 +-11.1683 -35.9917 35.2481 +-11.6075 -35.9207 35.1786 +-12.0458 -35.8469 35.1064 +-12.459 -35.7011 34.9636 +-12.8695 -35.5529 34.8184 +-13.5362 -36.0924 35.3468 +-13.7895 -35.5247 34.7908 +-14.4985 -36.1242 35.3779 +-14.9392 -36.0324 35.288 +-15.3788 -35.9379 35.1954 +-16.1178 -36.522 35.7675 +-16.5633 -36.4201 35.6677 +-17.071 -36.451 35.698 +-17.5481 -36.4108 35.6586 +-17.9922 -36.3 35.55 +-18.7427 -36.7907 36.0306 +-18.9112 -36.137 35.3904 +-19.6386 -36.5513 35.7962 +-20.0476 -36.361 35.6098 +-20.5284 -36.3009 35.551 +-20.9711 -36.1715 35.4242 +-21.6856 -36.4997 35.7457 +-22.0907 -36.2976 35.5477 +-22.6552 -36.3543 35.6033 +-23.1399 -36.2767 35.5272 +-23.5821 -36.1311 35.3846 +-24.1517 -36.1761 35.4287 +-24.8556 -36.4094 35.6572 +-25.701 -36.8285 36.0677 +-26.286 -36.8579 36.0964 +-26.6891 -36.6292 35.8725 +-27.4641 -36.903 36.1406 +-27.8661 -36.6676 35.91 +-28.3129 -36.4924 35.7385 +-29.25 -36.9363 36.1733 +-29.55 -36.567 35.8115 +-29.9955 -36.3813 35.6297 +-30.4388 -36.1929 35.4452 +-31.3499 -36.55 35.7949 +-31.7952 -36.3532 35.6022 +-32.238 -36.1536 35.4067 +-33.2774 -36.6103 35.854 +-34.0545 -36.7589 35.9995 +-34.8377 -36.9005 36.1382 +-35.4004 -36.7997 36.0395 +-36.1353 -36.8702 36.1085 +-36.1197 -36.1782 35.4308 +-37.2068 -36.5875 35.8316 +-37.5333 -36.2392 35.4906 +-37.9745 -36.0038 35.26 +-39.1434 -36.4459 35.6929 +-40.0796 -36.6508 35.8937 +-40.5257 -36.3996 35.6476 +-41.4722 -36.5897 35.8338 +-42.5536 -36.881 36.1191 +-42.6168 -36.2859 35.5363 +-43.6429 -36.5078 35.7536 +-44.6776 -36.7196 35.961 +-45.1907 -36.4932 35.7392 +-46.0362 -36.5286 35.7739 +-47.0886 -36.7142 35.9557 +-47.5353 -36.4193 35.6669 +-48.5978 -36.5879 35.832 +-49.5986 -36.6947 35.9366 +-50.6757 -36.8427 36.0815 +-51.1238 -36.5253 35.7707 +-52.3526 -36.756 35.9967 +-53.375 -36.8253 36.0645 +-54.4031 -36.8845 36.1225 +-54.9247 -36.5927 35.8367 +-56.0331 -36.6833 35.9254 +-57.1478 -36.7627 36.0032 +-58.6432 -37.0678 36.302 +-59.9994 -37.2633 36.4934 +-61.2127 -37.3518 36.5801 +-62.6624 -37.5657 36.7896 +-63.5047 -37.4008 36.6281 +-65.358 -37.8127 37.0316 +-66.5217 -37.8041 37.0231 +-67.6113 -37.7399 36.9602 +-68.7837 -37.7083 36.9293 +-70.3598 -37.88 37.0974 +-71.8648 -37.9924 37.2075 +-73.7014 -38.2567 37.4663 +-74.8986 -38.1692 37.3806 +-75.7716 -37.9056 37.1225 +-77.7975 -38.2006 37.4114 +-78.427 -37.794 37.0132 +-80.3032 -37.974 37.1895 +-81.9381 -38.0166 37.2313 +-83.9174 -38.1953 37.4062 +-85.2288 -38.0493 37.2632 +-86.7135 -37.9644 37.1801 +-88.2025 -37.8639 37.0817 +-90.2987 -38.0015 37.2164 +-92.7513 -38.2587 37.4683 +-94.6947 -38.2771 37.4863 +-97.1702 -38.4818 37.6868 +-98.779 -38.3177 37.5261 +-101.274 -38.4719 37.6771 +-104.046 -38.6967 37.8973 +-106.386 -38.7277 37.9277 +-104.976 -37.3935 36.621 +-106.058 -36.9568 36.1933 +-105.602 -35.9866 35.2432 +-108.123 -36.0213 35.2772 +-107.739 -35.0792 34.3545 +-108.164 -34.4061 33.6953 +-107.204 -33.3031 32.6151 +-107.423 -32.5776 31.9046 +-17.5537 -5.19475 5.08743 +-51.1805 -14.7736 14.4684 +-44.0088 -12.3853 12.1294 +-41.6377 -11.4192 11.1833 +-36.8112 -9.83309 9.62995 +-33.0772 -8.60131 8.42362 +-16.0249 -4.05429 3.97054 +-15.9793 -3.93097 3.84975 +-15.5525 -3.71785 3.64104 +-16.168 -3.7532 3.67567 +-15.9271 -3.58781 3.51369 +-15.8747 -3.46748 3.39585 +-15.3411 -3.24663 3.17956 +-14.4189 -2.95393 2.8929 +-14.2617 -2.82574 2.76736 +-13.04 -2.49633 2.44475 +-3171.94 -586.076 573.968 +-13.5841 -2.41977 2.36978 +-11.9602 -2.05145 2.00907 +-13.7386 -2.26609 2.21928 +-13.8634 -2.19581 2.15045 +-14.0853 -2.13901 2.09482 +-13.8169 -2.00838 1.96689 +-13.4483 -1.86762 1.82904 +-14.5522 -1.92693 1.88712 +-13.6888 -1.72447 1.68884 +-13.9066 -1.66264 1.62829 +-13.9264 -1.57588 1.54332 +-14.1429 -1.51011 1.47891 +-14.755 -1.48154 1.45093 +-13.8802 -1.30556 1.27859 +-14.1934 -1.24509 1.21937 +-13.6119 -1.10802 1.08513 +-12.3321 -0.926032 0.906901 +-12.6415 -0.869655 0.851689 +-11.6555 -0.728537 0.713486 +-12.1624 -0.683871 0.669742 +-11.472 -0.57313 0.561289 +-12.1772 -0.532115 0.521122 +-12.4829 -0.467391 0.457735 +-11.7888 -0.367733 0.360136 +-10.9933 -0.274272 0.268606 +-11.2961 -0.211334 0.206968 +-11.7982 -0.147132 0.144092 +-10.9996 -0.0685812 0.0671644 +10.7 0 2.84217e-14 +10.4996 -0.0648827 0.0646995 +11.5982 -0.143355 0.14295 +11.2961 -0.209458 0.208866 +11.8928 -0.294079 0.293249 +11.2892 -0.349025 0.348039 +11.8837 -0.441007 0.439762 +12.7761 -0.553329 0.551766 +13.0681 -0.647074 0.645247 +12.3618 -0.688911 0.686966 +13.7475 -0.851674 0.849269 +14.0351 -0.956955 0.954253 +14.9178 -1.11026 1.10713 +13.6119 -1.09819 1.09509 +15.6822 -1.36349 1.35964 +36.4852 -3.40129 3.39168 +38.1253 -3.79414 3.78343 +41.1431 -4.35405 4.34176 +41.4829 -4.65243 4.6393 +40.8322 -4.83847 4.8248 +45.6951 -5.70541 5.6893 +51.2276 -6.72309 6.70411 +20.1234 -2.76981 2.76199 +12.3471 -1.77879 1.77377 +114.345 -17.2104 17.1618 +115.789 -18.1769 18.1255 +118.776 -19.4173 19.3625 +119.407 -20.2993 20.242 +119.54 -21.1049 21.0454 +120.244 -22.0201 21.9579 +120.161 -22.799 22.7346 +119.972 -23.5595 23.493 +120.734 -24.5147 24.4455 +120.428 -25.2598 25.1884 +120.016 -25.9822 25.9089 +121.027 -27.021 26.9447 +120.404 -27.7022 27.624 +121.006 -28.6699 28.5889 +120.365 -29.3473 29.2644 +120.47 -30.2081 30.1229 +119.999 -30.9272 30.8399 +120.456 -31.8907 31.8007 +120.619 -32.7861 32.6935 +120.117 -33.5042 33.4096 +120.348 -34.4309 34.3336 +121.213 -35.5526 35.4523 +120.034 -36.0789 35.977 +117.475 -36.1699 36.0678 +116.112 -36.6064 36.503 +114.382 -36.9114 36.8071 +112.292 -37.0781 36.9734 +108.942 -36.7951 36.6912 +108.035 -37.3116 37.2063 +105.155 -37.1247 37.0199 +102.198 -36.873 36.7689 +98.4582 -36.2933 36.1908 +96.2413 -36.2355 36.1332 +93.8577 -36.0855 35.9836 +92.7097 -36.3894 36.2867 +89.9077 -36.0195 35.9178 +88.5078 -36.1842 36.082 +87.1969 -36.3704 36.2677 +85.031 -36.1784 36.0762 +83.3029 -36.1475 36.0454 +82.8543 -36.6608 36.5573 +81.2186 -36.6388 36.5354 +79.6737 -36.6379 36.5344 +78.1351 -36.6208 36.5174 +76.4373 -36.5082 36.4052 +74.5834 -36.2974 36.1949 +73.1503 -36.2695 36.1671 +71.2351 -35.9799 35.8783 +70.3036 -36.169 36.0669 +68.8905 -36.0966 35.9947 +67.7243 -36.1374 36.0354 +66.5623 -36.1666 36.0645 +64.6957 -35.7918 35.6907 +63.5478 -35.7935 35.6924 +63.1043 -36.1848 36.0826 +61.1898 -35.7176 35.6167 +60.7473 -36.0943 35.9924 +59.7679 -36.1464 36.0443 +58.5655 -36.0498 35.948 +57.2202 -35.8473 35.7461 +56.1817 -35.8204 35.7193 +54.9272 -35.64 35.5394 +54.559 -36.0264 35.9246 +53.3876 -35.8747 35.7734 +52.3679 -35.8097 35.7086 +51.2114 -35.6356 35.535 +50.2046 -35.5502 35.4498 +49.0636 -35.3539 35.2541 +48.6956 -35.7067 35.6059 +48.116 -35.9036 35.8022 +47.1943 -35.837 35.7358 +46.2104 -35.7096 35.6088 +45.7685 -35.9938 35.8922 +44.3955 -35.5327 35.4324 +43.5623 -35.4851 35.3849 +42.7337 -35.4299 35.3298 +42.6168 -35.9638 35.8622 +41.5359 -35.6794 35.5787 +41.3463 -36.1548 36.0527 +40.2767 -35.8547 35.7535 +39.8333 -36.1023 36.0003 +38.7781 -35.7853 35.6842 +37.8542 -35.5711 35.4707 +37.3549 -35.7467 35.6458 +36.9129 -35.9762 35.8747 +35.8874 -35.6264 35.5258 +35.5044 -35.9049 35.8035 +34.9473 -36.0062 35.9045 +34.5022 -36.2207 36.1185 +33.3922 -35.724 35.6231 +32.9507 -35.929 35.8276 +32.5066 -36.1312 36.0292 +31.5302 -35.7302 35.6294 +31.0887 -35.9237 35.8223 +30.6448 -36.1145 36.0125 +30.1985 -36.3024 36.1999 +29.4 -36.0584 35.9566 +28.856 -36.1154 36.0134 +28.0705 -35.8588 35.7576 +27.5798 -35.9687 35.8671 +27.1824 -36.2003 36.0981 +26.3197 -35.8015 35.7005 +25.9229 -36.0259 35.9242 +25.4779 -36.1848 36.0826 +24.8995 -36.1499 36.0478 +24.2378 -35.9828 35.8812 +23.7511 -36.067 35.9652 +23.0155 -35.7614 35.6604 +22.5739 -35.9022 35.8009 +21.8116 -35.5208 35.4206 +21.6856 -36.1757 36.0736 +20.9328 -35.785 35.6839 +20.491 -35.913 35.8116 +20.011 -35.9723 35.8708 +19.6744 -36.293 36.1905 +18.8762 -35.7499 35.6489 +18.7427 -36.464 36.3611 +18.0256 -36.0444 35.9427 +17.6132 -36.2214 36.1192 +16.9441 -35.8588 35.7576 +16.7178 -36.4336 36.3307 +15.8773 -35.6576 35.5569 +15.4957 -35.8898 35.7884 +15.1096 -36.1199 36.0179 +14.6363 -36.1438 36.0418 +13.9498 -35.6188 35.5182 +13.588 -35.9088 35.8074 +13.17 -36.06 35.9582 +12.7009 -36.0713 35.9694 +12.1158 -35.7353 35.6344 +11.8099 -36.2227 36.1204 +11.1034 -35.4648 35.3646 +10.7698 -35.8783 35.777 +10.2475 -35.6659 35.5652 +9.80758 -35.7279 35.627 +9.42158 -35.9961 35.8944 +8.96025 -35.9832 35.8816 +8.53296 -36.107 36.0051 +8.08766 -36.1584 36.0563 +7.64175 -36.2069 36.1047 +7.06999 -35.6217 35.5211 +6.61768 -35.5939 35.4934 +6.28846 -36.2659 36.1635 +5.72808 -35.5998 35.4993 +5.29959 -35.7043 35.6035 +4.85938 -35.7357 35.6348 +4.48852 -36.3287 36.2261 +3.97788 -35.7903 35.6892 +3.5506 -35.9548 35.8533 +3.04632 -35.2686 35.169 +2.65343 -35.8517 35.7505 +2.17225 -35.2301 35.1306 +1.7694 -35.8791 35.7778 +1.30623 -35.3224 35.2226 +0.86913 -35.2583 35.1587 +0.442435 -35.8996 35.7983 +1.77636e-15 -35.901 35.7996 +-0.442435 -35.8996 35.7983 +-0.884837 -35.8955 35.7942 +-1.32717 -35.8886 35.7873 +-1.76591 -35.8083 35.7072 +-2.25076 -36.5035 36.4004 +-2.65343 -35.8517 35.7505 +-3.09516 -35.834 35.7328 +-3.53665 -35.8135 35.7124 +-4.04849 -36.4256 36.3227 +-4.47981 -36.2581 36.1558 +-4.91689 -36.1586 36.0565 +-5.46684 -36.8311 36.7271 +-5.81865 -36.1627 36.0606 +-6.28846 -36.2659 36.1635 +-6.70905 -36.0853 35.9834 +-7.1535 -36.0424 35.9407 +-7.5974 -35.9968 35.8952 +-8.15024 -36.4381 36.3352 +-8.56597 -36.2467 36.1443 +-9.01234 -36.1923 36.0902 +-9.36691 -35.7872 35.6861 +-9.82666 -35.7974 35.6964 +-10.2475 -35.6659 35.5652 +-10.749 -35.809 35.7079 +-11.1899 -35.7413 35.6404 +-11.63 -35.6708 35.57 +-12.2092 -36.0106 35.909 +-12.6525 -35.9339 35.8324 +-13.0949 -35.8543 35.7531 +-13.5621 -35.8404 35.7392 +-14.03 -35.8235 35.7223 +-14.719 -36.3481 36.2454 +-14.9108 -35.6446 35.544 +-15.6419 -36.2283 36.126 +-16.0878 -36.1303 36.0283 +-16.5942 -36.1642 36.0621 +-17.1027 -36.1945 36.0923 +-17.5481 -36.0875 35.9857 +-17.9922 -35.9777 35.8761 +-18.4349 -35.8651 35.7639 +-19.1914 -36.3468 36.2442 +-19.6744 -36.293 36.1905 +-20.4141 -36.6971 36.5935 +-20.8281 -36.5038 36.4008 +-21.3155 -36.4392 36.3363 +-21.6856 -36.1757 36.0736 +-22.4496 -36.5599 36.4566 +-22.9806 -36.5491 36.4459 +-23.5131 -36.5346 36.4314 +-24.0047 -36.4521 36.3492 +-24.41 -36.2384 36.1361 +-25.294 -36.7226 36.619 +-25.7902 -36.6283 36.5249 +-26.6038 -36.9723 36.8679 +-27.1046 -36.8693 36.7652 +-27.6049 -36.7629 36.6591 +-28.2478 -36.8399 36.7359 +-28.6522 -36.602 36.4986 +-29.25 -36.6084 36.5051 +-29.65 -36.365 36.2623 +-30.4523 -36.6074 36.5041 +-30.7993 -36.2965 36.194 +-31.2454 -36.1048 36.0029 +-32.696 -37.0513 36.9467 +-32.7215 -36.3701 36.2674 +-33.7676 -36.8198 36.7158 +-34.0545 -36.4326 36.3297 +-34.7818 -36.5143 36.4112 +-34.9473 -36.0062 35.9045 +-35.9059 -36.3109 36.2084 +-36.7585 -36.4912 36.3881 +-37.7946 -36.8355 36.7315 +-37.6523 -36.0313 35.9296 +-38.6967 -36.3629 36.2602 +-39.6304 -36.5717 36.4685 +-40.6952 -36.8835 36.7793 +-41.1482 -36.6306 36.5272 +-42.1645 -36.8702 36.7661 +-42.2356 -36.2804 36.178 +-43.1953 -36.452 36.3491 +-43.6429 -36.1837 36.0815 +-44.612 -36.3402 36.2376 +-45.6545 -36.5404 36.4372 +-46.6384 -36.6779 36.5743 +-47.0886 -36.3883 36.2855 +-48.0127 -36.4585 36.3555 +-49.2862 -36.7767 36.6729 +-50.2238 -36.8274 36.7234 +-50.8159 -36.6166 36.5133 +-51.8309 -36.7018 36.5981 +-52.4952 -36.529 36.4258 +-53.3031 -36.4492 36.3463 +-54.4756 -36.6058 36.5025 +-55.5829 -36.7025 36.5988 +-56.6229 -36.7403 36.6365 +-57.4451 -36.6259 36.5225 +-58.5683 -36.6918 36.5882 +-60.0749 -36.9789 36.8745 +-61.6689 -37.2961 37.1908 +-63.0455 -37.4598 37.354 +-63.5047 -37.0688 36.9641 +-65.4357 -37.5217 37.4157 +-66.5217 -37.4685 37.3627 +-68.3205 -37.7971 37.6904 +-68.7837 -37.3735 37.268 +-70.5994 -37.6715 37.5651 +-72.0256 -37.7393 37.6327 +-73.9442 -38.042 37.9346 +-75.3057 -38.0359 37.9285 +-77.0822 -38.2189 38.111 +-78.292 -38.1022 37.9946 +-79.8363 -38.1317 38.024 +-80.7201 -37.8323 37.7255 +-82.6929 -38.0263 37.9189 +-84.3391 -38.0465 37.9391 +-85.9921 -38.0492 37.9418 +-88.2483 -38.2934 38.1852 +-89.6597 -38.1478 38.0401 +-91.0742 -37.9876 37.8803 +-93.7906 -38.3439 38.2357 +-95.2169 -38.1464 38.0387 +-97.1702 -38.1402 38.0325 +-99.8336 -38.383 38.2746 +-101.804 -38.3298 38.2216 +-104.046 -38.3532 38.2449 +-106.03 -38.2553 38.1473 +-105.334 -37.1879 37.0829 +-105.698 -36.5046 36.4015 +-106.234 -35.8806 35.7793 +-108.485 -35.8212 35.7201 +-108.376 -34.9733 34.8746 +-107.89 -34.0143 33.9182 +-107.846 -33.2051 33.1114 +-107.331 -32.2607 32.1696 +-104.121 -30.5395 30.4532 +-54.2403 -15.5178 15.474 +-45.4974 -12.6906 12.6548 +-42.5713 -11.5716 11.5389 +-38.7782 -10.2665 10.2376 +-36.836 -9.49372 9.46691 +-15.8364 -3.97103 3.95982 +-15.8847 -3.87301 3.86208 +-15.5525 -3.68484 3.67444 +-15.7875 -3.63236 3.6221 +-15.641 -3.49208 3.48222 +-16.5441 -3.58162 3.57151 +-14.3823 -3.01669 3.00818 +-13.8422 -2.8106 2.80266 +-12.0454 -2.36541 2.35873 +-3164.66 -600.452 598.756 +-13.3604 -2.44668 2.43977 +-12.1287 -2.14133 2.13528 +-12.8353 -2.18201 2.17585 +-13.4463 -2.19819 2.19198 +-11.7156 -1.83915 1.83396 +-12.8137 -1.92863 1.92318 +-12.837 -1.84937 1.84415 +-13.7428 -1.89158 1.88624 +-13.3723 -1.75497 1.75001 +-14.5752 -1.81982 1.81469 +-14.4984 -1.71801 1.71316 +-13.9264 -1.56189 1.55748 +-14.2418 -1.50717 1.50292 +-13.3686 -1.33042 1.32666 +-13.3845 -1.24775 1.24423 +-13.8956 -1.20815 1.20474 +-13.6119 -1.09819 1.09509 +-12.7299 -0.947417 0.944742 +-13.1392 -0.895867 0.893338 +-12.6517 -0.783788 0.781575 +-13.0596 -0.727798 0.725743 +-11.2725 -0.558163 0.556587 +-11.3787 -0.492808 0.491417 +-11.684 -0.433595 0.432371 +-11.589 -0.358291 0.357279 +-11.5929 -0.286665 0.285856 +-11.8959 -0.220579 0.219956 +-11.2983 -0.139647 0.139253 +-10.9996 -0.0679724 0.0677805 +11.3 8.88178e-16 2.84217e-14 +10.6996 -0.065521 0.0665258 +11.5982 -0.142059 0.144238 +11.2961 -0.207564 0.210748 +10.9933 -0.269381 0.273512 +12.1884 -0.373418 0.379144 +11.5841 -0.426003 0.432537 +12.9758 -0.556895 0.565436 +13.0681 -0.641226 0.65106 +13.259 -0.732237 0.743467 +14.2456 -0.874557 0.887969 +14.2342 -0.961751 0.9765 +15.1167 -1.11489 1.13199 +14.9036 -1.19153 1.2098 +17.9651 -1.54785 1.57159 +33.5108 -3.09578 3.14326 +36.3428 -3.58407 3.63903 +41.242 -4.32507 4.3914 +40.8903 -4.54452 4.61421 +42.7062 -5.01478 5.09169 +51.21 -6.3362 6.43337 +67.058 -8.72115 8.8549 +114.85 -15.6654 15.9056 +115.239 -16.452 16.7043 +117.378 -17.5071 17.7756 +117.839 -18.3316 18.6127 +119.165 -19.305 19.601 +120.282 -20.2633 20.5741 +119.734 -20.9482 21.2694 +120.438 -21.8562 22.1914 +120.258 -22.6111 22.9578 +120.068 -23.3653 23.7237 +120.638 -24.2737 24.646 +120.428 -25.0315 25.4153 +120.877 -25.9321 26.3298 +120.836 -26.7346 27.1446 +120.784 -27.5386 27.9609 +121.196 -28.4552 28.8916 +120.365 -29.082 29.5281 +120.47 -29.9351 30.3942 +119.811 -30.5997 31.069 +120.175 -31.5288 32.0123 +120.432 -32.4395 32.937 +120.117 -33.2014 33.7106 +120.534 -34.1723 34.6964 +121.213 -35.2313 35.7716 +120.402 -35.8625 36.4125 +117.842 -35.9549 36.5063 +117.025 -36.561 37.1217 +114.018 -36.4614 37.0206 +112.745 -36.8913 37.457 +110.567 -37.0063 37.5738 +108.844 -37.2512 37.8225 +105.602 -36.9457 37.5123 +102.733 -36.7308 37.2942 +99.0791 -36.1921 36.7471 +97.7423 -36.468 37.0273 +95.0001 -36.1946 36.7497 +93.4094 -36.3327 36.8899 +90.6911 -36.0049 36.557 +89.8068 -36.3834 36.9414 +87.7138 -36.2553 36.8113 +86.7453 -36.5742 37.1351 +84.0703 -36.1507 36.7052 +83.5327 -36.6269 37.1886 +81.556 -36.4584 37.0176 +80.0092 -36.4596 37.0188 +78.1351 -36.2898 36.8463 +77.2663 -36.5706 37.1315 +75.3251 -36.3269 36.8841 +74.1333 -36.4246 36.9832 +72.0492 -36.0622 36.6153 +71.5171 -36.4608 37.0199 +69.1317 -35.8956 36.4461 +68.6827 -36.3175 36.8745 +66.6417 -35.8824 36.4327 +66.8233 -36.6347 37.1966 +65.0347 -36.2999 36.8566 +64.5031 -36.6526 37.2147 +62.6559 -36.2428 36.7986 +61.5134 -36.2191 36.7746 +59.7679 -35.8197 36.369 +59.2447 -36.1383 36.6925 +57.2202 -35.5233 36.0681 +57.7424 -36.4827 37.0422 +55.6644 -35.792 36.3409 +54.4859 -35.6529 36.1997 +53.3876 -35.5504 36.0956 +52.4399 -35.5348 36.0798 +51.9246 -35.8054 36.3545 +50.841 -35.6754 36.2225 +49.8346 -35.585 36.1307 +49.3207 -35.8383 36.3879 +48.2537 -35.6808 36.228 +47.1943 -35.5131 36.0577 +46.8184 -35.8525 36.4023 +45.8354 -35.7206 36.2684 +44.8594 -35.5795 36.1251 +44.0872 -35.588 36.1338 +43.1234 -35.4298 35.9732 +43.0025 -35.9613 36.5128 +41.5359 -35.3569 35.8992 +41.2834 -35.7735 36.3221 +40.2144 -35.4758 36.0198 +39.7717 -35.7207 36.2685 +38.7781 -35.4618 36.0057 +38.3958 -35.7539 36.3023 +37.4738 -35.5365 36.0815 +37.0305 -35.7646 36.3131 +36.4681 -35.8757 36.4259 +36.078 -36.1552 36.7097 +34.9473 -35.6807 36.228 +34.5022 -35.8934 36.4438 +33.5026 -35.5182 36.0629 +33.0596 -35.7219 36.2698 +32.5604 -35.8638 36.4138 +32.0071 -35.9428 36.4941 +31.6112 -36.1973 36.7524 +30.7478 -35.9083 36.459 +30.2493 -36.0348 36.5874 +29.7 -36.0971 36.6507 +28.9053 -35.8501 36.3999 +28.5068 -36.087 36.6405 +27.6752 -35.7669 36.3154 +27.6519 -36.4926 37.0523 +26.7814 -36.1004 36.654 +26.3314 -36.263 36.8192 +25.4333 -35.7949 36.3439 +25.0748 -36.0754 36.6286 +24.5822 -36.1642 36.7188 +24.1315 -36.3134 36.8703 +23.4302 -36.0766 36.6299 +22.9806 -36.2187 36.7742 +22.2103 -35.8433 36.393 +21.6856 -35.8487 36.3985 +21.3155 -36.1098 36.6636 +20.5284 -35.6534 36.2002 +20.0843 -35.7778 36.3265 +19.6744 -35.9649 36.5165 +19.2264 -36.084 36.6374 +18.7427 -36.1345 36.6886 +18.2592 -36.1817 36.7366 +17.5807 -35.8277 36.3771 +17.2614 -36.2001 36.7553 +16.7487 -36.171 36.7258 +16.3584 -36.406 36.9644 +15.7296 -36.1022 36.6559 +15.1096 -35.7934 36.3424 +14.6363 -35.8172 36.3665 +13.9766 -35.3645 35.9068 +13.5362 -35.4487 35.9923 +13.17 -35.7341 36.2821 +12.7009 -35.7452 36.2934 +12.3259 -36.0263 36.5788 +11.9899 -36.4423 37.0012 +11.2981 -35.7608 36.3092 +10.9154 -36.0345 36.5871 +10.4269 -35.9625 36.514 +10.151 -36.6449 37.2069 +9.56737 -36.2227 36.7782 +9.09916 -36.2107 36.7661 +8.49995 -35.6422 36.1888 +8.08766 -35.8315 36.3811 +7.77478 -36.5043 37.0641 +7.22308 -36.0641 36.6172 +6.7482 -35.9678 36.5194 +6.41033 -36.6346 37.1964 +5.85261 -36.045 36.5978 +5.40412 -36.0795 36.6328 +4.95523 -36.1112 36.665 +4.48852 -36.0003 36.5524 +4.04849 -36.0964 36.6499 +3.60641 -36.1898 36.7448 +3.09516 -35.5101 36.0547 +2.65343 -35.5277 36.0726 +2.2115 -35.5426 36.0877 +1.80081 -36.186 36.7409 +1.32717 -35.5643 36.1097 +0.884837 -35.5711 36.1166 +0.443308 -35.6453 36.192 +1.88738e-15 -36.2782 36.8345 +-0.441563 -35.505 36.0495 +-0.902289 -36.2726 36.8289 +-1.32717 -35.5643 36.1097 +-1.8043 -36.2561 36.8121 +-2.2115 -35.5426 36.0877 +-2.70577 -36.2284 36.784 +-3.15621 -36.2105 36.7659 +-3.59943 -36.1198 36.6737 +-4.04064 -36.0264 36.5789 +-4.55825 -36.5596 37.1202 +-4.91689 -35.8318 36.3813 +-5.46684 -36.4982 37.0579 +-5.81865 -35.8358 36.3854 +-6.38595 -36.4953 37.055 +-6.73515 -35.8983 36.4488 +-7.27875 -36.342 36.8994 +-7.5974 -35.6715 36.2185 +-8.25974 -36.5939 37.1551 +-8.71451 -36.5419 37.1024 +-9.20335 -36.6254 37.1871 +-9.40335 -35.6017 36.1477 +-9.97931 -36.0249 36.5774 +-10.3073 -35.5499 36.0951 +-10.7075 -35.3481 35.8902 +-11.1683 -35.3497 35.8919 +-11.7874 -35.827 36.3764 +-12.2559 -35.8216 36.371 +-12.8702 -36.2218 36.7773 +-13.1199 -35.5982 36.1441 +-13.7692 -36.0588 36.6118 +-14.2438 -36.0406 36.5934 +-14.9395 -36.5591 37.1198 +-15.1664 -35.928 36.479 +-15.6711 -35.968 36.5196 +-16.0878 -35.8038 36.3528 +-16.8723 -36.438 36.9968 +-17.1027 -35.8674 36.4175 +-17.8411 -36.3585 36.9161 +-18.326 -36.314 36.8709 +-18.7769 -36.2004 36.7555 +-19.5416 -36.6756 37.238 +-19.9611 -36.489 37.0486 +-20.4141 -36.3654 36.9231 +-20.8656 -36.239 36.7947 +-21.1624 -35.8505 36.4003 +-21.9982 -36.3655 36.9232 +-22.5692 -36.4224 36.981 +-23.3874 -36.8598 37.4251 +-23.5131 -36.2044 36.7596 +-24.3428 -36.6313 37.1931 +-24.41 -35.9109 36.4616 +-25.3379 -36.4538 37.0129 +-26.1472 -36.7997 37.3641 +-26.6946 -36.7632 37.327 +-26.6891 -35.9759 36.5276 +-27.9336 -36.8644 37.4297 +-28.3432 -36.6302 37.192 +-29.234 -37.0077 37.5752 +-29.5454 -36.644 37.206 +-30.05 -36.5224 37.0826 +-30.4523 -36.2766 36.8329 +-31.3658 -36.6301 37.1919 +-31.3499 -35.8981 36.4487 +-32.2721 -36.2404 36.7961 +-32.829 -36.1597 36.7143 +-33.9855 -36.7224 37.2855 +-34.3305 -36.3959 36.954 +-35.4528 -36.8823 37.448 +-35.6836 -36.4325 36.9912 +-36.8236 -36.9024 37.4684 +-37.1069 -36.5041 37.064 +-37.8534 -36.5593 37.12 +-38.6635 -36.6646 37.2269 +-39.118 -36.4264 36.9851 +-39.6304 -36.2412 36.797 +-40.6952 -36.5501 37.1106 +-41.086 -36.2446 36.8004 +-42.1645 -36.537 37.0973 +-43.1897 -36.7647 37.3285 +-43.7738 -36.6063 37.1677 +-44.747 -36.7638 37.3276 +-45.7929 -36.9649 37.5318 +-45.7208 -36.2627 36.8188 +-47.1068 -36.7114 37.2744 +-47.6291 -36.4733 37.0327 +-48.6947 -36.6422 37.2041 +-49.1485 -36.3425 36.8999 +-50.2933 -36.545 37.1054 +-51.5168 -36.7861 37.3503 +-52.4673 -36.8166 37.3812 +-53.6364 -36.9858 37.553 +-53.9505 -36.5584 37.1191 +-55.0559 -36.6614 37.2236 +-56.168 -36.7536 37.3172 +-57.6551 -37.0719 37.6405 +-58.8571 -37.187 37.7573 +-59.542 -36.9647 37.5316 +-61.9617 -37.7955 38.3752 +-61.897 -37.0957 37.6646 +-63.8115 -37.5723 38.1485 +-64.2763 -37.1801 37.7503 +-66.1351 -37.58 38.1563 +-67.226 -37.523 38.0985 +-68.9509 -37.8012 38.3809 +-70.2118 -37.8047 38.3844 +-71.5577 -37.8378 38.4181 +-73.2314 -38.0243 38.6075 +-75.0768 -38.2756 38.8626 +-75.3057 -37.6921 38.2702 +-77.8194 -38.2358 38.8222 +-78.9513 -38.0757 38.6597 +-80.1679 -37.944 38.5259 +-81.4706 -37.8389 38.4192 +-83.8671 -38.2176 38.8037 +-85.0982 -38.0419 38.6253 +-87.6882 -38.449 39.0387 +-88.4188 -38.0206 38.6037 +-91.0312 -38.3812 38.9698 +-91.5912 -37.8579 38.4385 +-94.3102 -38.2079 38.7938 +-96.0002 -38.1126 38.6972 +-98.7446 -38.4079 38.9969 +-100.537 -38.304 38.8914 +-103.923 -38.774 39.3687 +-105.377 -38.4925 39.0829 +-105.495 -37.7184 38.2969 +-106.497 -37.2588 37.8302 +-106.507 -36.4515 37.0105 +-107.769 -36.0698 36.6229 +-108.485 -35.4975 36.0419 +-107.83 -34.4826 35.0114 +-108.255 -33.821 34.3397 +-107.755 -32.877 33.3812 +-107.331 -31.9691 32.4594 +-105.599 -30.6931 31.1638 +-56.7437 -16.0872 16.3339 +-44.9392 -12.4216 12.6121 +-42.758 -11.5173 11.6939 +-39.9959 -10.4932 10.6542 +-38.5274 -9.83988 9.99078 +-17.3446 -4.30991 4.37601 +-16.7357 -4.04362 4.10563 +-15.9318 -3.7406 3.79796 +-14.4561 -3.29595 3.3465 +-16.0224 -3.54492 3.59928 +-15.8747 -3.40564 3.45787 +-15.2452 -3.16879 3.21739 +-14.4189 -2.90124 2.94574 +-13.5872 -2.64407 2.68462 +-12.9434 -2.43364 2.47096 +-13.3604 -2.42456 2.46174 +-14.3604 -2.51241 2.55095 +-12.8353 -2.16229 2.19545 +-14.3232 -2.32039 2.35597 +-12.3013 -1.91365 1.943 +-13.4984 -2.01332 2.0442 +-13.7189 -1.95857 1.9886 +-13.7428 -1.87449 1.90323 +-13.7656 -1.79026 1.81772 +-14.2797 -1.76682 1.79392 +-14.3998 -1.6909 1.71683 +-14.2227 -1.5807 1.60495 +-13.9451 -1.46243 1.48486 +-13.0715 -1.28909 1.30886 +-13.5828 -1.2548 1.27404 +-14.8882 -1.28275 1.30242 +-14.0094 -1.12004 1.13722 +-13.3266 -0.982865 0.997938 +-13.0397 -0.881047 0.894559 +-11.5559 -0.709431 0.720311 +-11.963 -0.660662 0.670794 +-12.27 -0.602067 0.6113 +-10.9795 -0.471219 0.478446 +-11.3844 -0.418659 0.425079 +-11.589 -0.355052 0.360498 +-11.2931 -0.276727 0.280971 +-11.2961 -0.207564 0.210748 +-11.7982 -0.144508 0.146724 +-11.2996 -0.0691951 0.0702563 +11 -4.44089e-16 2.84217e-14 +10.9996 -0.0667394 0.0689949 +11.2983 -0.137114 0.141748 +10.9962 -0.200198 0.206963 +12.1926 -0.296024 0.306028 +13.0875 -0.397282 0.410708 +12.4829 -0.454839 0.47021 +12.1772 -0.517825 0.535325 +13.5669 -0.659586 0.681877 +14.6547 -0.801879 0.828979 +14.8433 -0.90288 0.933393 +14.5328 -0.972913 1.00579 +15.1167 -1.10465 1.14198 +15.6984 -1.24355 1.28558 +17.3696 -1.48279 1.5329 +31.8254 -2.91307 3.01152 +34.5604 -3.37698 3.49111 +39.4617 -4.10037 4.23894 +42.7669 -4.70943 4.86858 +47.4403 -5.51953 5.70607 +55.0508 -6.74885 6.97693 +114.549 -14.7607 15.2595 +117.304 -15.8531 16.3889 +117.199 -16.5781 17.1383 +118.356 -17.4909 18.082 +119.01 -18.3438 18.9637 +119.165 -19.1277 19.7741 +119.407 -19.9311 20.6047 +119.734 -20.7558 21.4572 +120.341 -21.638 22.3693 +120.258 -22.4034 23.1605 +120.068 -23.1507 23.9331 +119.869 -23.8975 24.7051 +120.428 -24.8016 25.6397 +120.59 -25.6329 26.4992 +120.264 -26.3636 27.2546 +120.689 -27.2642 28.1856 +120.153 -27.9512 28.8959 +120.459 -28.8376 29.8122 +120.658 -29.7066 30.7106 +120.657 -30.5327 31.5645 +120.175 -31.2392 32.2949 +120.339 -32.1166 33.202 +120.024 -32.871 33.9819 +120.441 -33.8324 34.9758 +120.197 -34.615 35.7849 +120.954 -35.6961 36.9025 +120.135 -36.3177 37.5451 +118.578 -36.7059 37.9464 +115.656 -36.6455 37.8839 +114.376 -37.0813 38.3345 +111.83 -37.0854 38.3387 +110.102 -37.3359 38.5976 +106.139 -36.7926 38.036 +103.98 -36.8354 38.0803 +100.676 -36.4376 37.669 +99.155 -36.6553 37.8941 +95.7911 -36.1607 37.3828 +94.1965 -36.3023 37.5292 +92.6058 -36.4274 37.6585 +91.0193 -36.536 37.7707 +88.5755 -36.2752 37.5011 +87.2596 -36.4531 37.6851 +85.5198 -36.4363 37.6676 +84.72 -36.8063 38.0502 +83.0741 -36.796 38.0395 +81.1833 -36.6549 37.8937 +79.8863 -36.7623 38.0047 +77.6808 -36.4292 37.6603 +75.3251 -35.9933 37.2097 +75.5258 -36.768 38.0106 +72.7005 -36.054 37.2725 +72.2452 -36.4937 37.727 +70.0963 -36.0621 37.2809 +69.2417 -36.2769 37.5029 +67.9904 -36.2724 37.4982 +66.8233 -36.2982 37.525 +65.6608 -36.3128 37.54 +64.5808 -36.3597 37.5885 +63.2732 -36.2637 37.4892 +62.1262 -36.244 37.4689 +61.1366 -36.3035 37.5304 +59.9239 -36.2169 37.4409 +58.8679 -36.2105 37.4343 +57.668 -36.1011 37.3211 +56.328 -35.886 37.0987 +55.2172 -35.7996 37.0095 +54.0404 -35.6546 36.8596 +53.6627 -36.0295 37.2471 +52.5666 -35.9151 37.1289 +51.4774 -35.7902 36.9998 +50.4655 -35.7044 36.9111 +49.8765 -35.9092 37.1228 +48.8732 -35.807 37.0172 +48.4219 -36.1022 37.3223 +46.8184 -35.5232 36.7237 +46.3708 -35.8059 37.0159 +45.3895 -35.6693 36.8748 +45.0056 -35.9958 37.2123 +43.7728 -35.6331 36.8373 +43.4524 -36.0038 37.2206 +42.2356 -35.6223 36.8262 +41.8498 -35.9312 37.1455 +40.8992 -35.7485 36.9566 +40.5105 -36.05 37.2684 +39.5086 -35.798 37.0078 +38.9976 -35.9809 37.1969 +37.8902 -35.6013 36.8045 +38.0885 -36.4486 37.6804 +36.4681 -35.5462 36.7476 +36.4221 -36.1648 37.387 +35.5703 -35.9833 37.1994 +35.0055 -36.0825 37.3019 +34.0545 -35.7717 36.9807 +34.2033 -36.6183 37.8559 +32.6141 -35.5931 36.796 +32.59 -36.2613 37.4868 +31.6112 -35.8648 37.0769 +31.1083 -35.9957 37.2122 +30.6553 -36.183 37.4059 +29.75 -35.8257 37.0365 +29.3484 -36.0654 37.2843 +28.7492 -36.0596 37.2783 +28.2001 -36.1105 37.3309 +27.7458 -36.2802 37.5064 +26.8738 -35.8921 37.1051 +26.4222 -36.0539 37.2723 +25.8795 -36.0883 37.308 +25.4694 -36.3064 37.5334 +24.5822 -35.8321 37.043 +24.216 -36.1059 37.3261 +23.4302 -35.7453 36.9533 +23.306 -36.3943 37.6242 +22.2103 -35.5141 36.7143 +22.0763 -36.1595 37.3815 +21.3537 -35.8424 37.0538 +21.1653 -36.4219 37.6528 +20.3775 -35.9667 37.1822 +20.2836 -36.7381 37.9797 +19.1914 -35.6875 36.8935 +19.0163 -36.3252 37.5529 +18.326 -35.9804 37.1964 +17.8411 -36.0245 37.242 +17.2296 -35.8018 37.0117 +16.8105 -35.9711 37.1867 +16.3283 -36.0053 37.2222 +15.9343 -36.236 37.4606 +15.28 -35.8647 37.0768 +14.8844 -36.0897 37.3093 +14.511 -36.3796 37.6091 +14.0798 -36.5335 37.7681 +13.3453 -35.8771 37.0895 +12.9186 -36.0241 37.2416 +12.4426 -36.0335 37.2513 +12.0124 -36.1754 37.398 +11.4497 -35.9075 37.121 +11.1025 -36.3156 37.5429 +10.5864 -36.1772 37.3998 +10.151 -36.3083 37.5354 +9.60381 -36.0267 37.2442 +9.25545 -36.4944 37.7278 +8.63199 -35.8634 37.0755 +8.2441 -36.1892 37.4122 +7.77478 -36.169 37.3914 +7.32051 -36.2148 37.4387 +6.7482 -35.6375 36.8419 +6.41033 -36.2981 37.5248 +5.95449 -36.3356 37.5636 +5.48774 -36.3012 37.5281 +5.04149 -36.4023 37.6326 +4.58439 -36.4315 37.6628 +4.11126 -36.3194 37.5468 +3.66221 -36.4123 37.6428 +3.15621 -35.878 37.0905 +2.70054 -35.8263 37.0371 +2.25512 -35.9108 37.1244 +1.83222 -36.4789 37.7118 +1.35335 -35.9327 37.147 +0.904035 -36.009 37.226 +0.451162 -35.9436 37.1583 +2.55351e-15 -35.945 37.1598 +-0.451162 -35.9436 37.1583 +-0.916251 -36.4956 37.729 +-1.35335 -35.9327 37.147 +-1.83571 -36.5485 37.7836 +-2.25076 -35.8413 37.0526 +-2.75287 -36.5206 37.7548 +-3.15621 -35.878 37.0905 +-3.66919 -36.4817 37.7146 +-4.11126 -36.3194 37.5468 +-4.55825 -36.2238 37.448 +-5.08941 -36.7484 37.9903 +-5.55046 -36.7161 37.9569 +-5.92053 -36.1284 37.3494 +-6.48345 -36.7122 37.9529 +-6.82652 -36.0511 37.2694 +-7.40401 -36.6279 37.8658 +-7.84868 -36.5128 37.7468 +-8.40053 -36.8759 38.1221 +-8.81354 -36.6178 37.8553 +-9.22072 -36.3575 37.5862 +-9.60381 -36.0267 37.2442 +-9.97931 -35.6941 36.9004 +-10.2874 -35.1552 36.3433 +-10.9362 -35.7716 36.9805 +-11.3847 -35.7039 36.9105 +-11.9899 -36.1076 37.3279 +-12.4426 -36.0335 37.2513 +-12.8702 -35.8892 37.1021 +-13.3202 -35.8098 37.02 +-14.028 -36.3991 37.6293 +-14.4576 -36.2456 37.4706 +-14.9947 -36.357 37.5857 +-15.422 -36.198 37.4213 +-15.905 -36.1696 37.3919 +-16.3885 -36.138 37.3593 +-17.1504 -36.6984 37.9386 +-17.3248 -35.9996 37.2162 +-18.1341 -36.6162 37.8537 +-18.5263 -36.3737 37.603 +-19.0505 -36.3906 37.6204 +-19.5416 -36.3387 37.5668 +-20.2836 -36.7381 37.9797 +-20.4508 -36.0961 37.316 +-21.1653 -36.4219 37.6528 +-21.9278 -36.8059 38.0498 +-22.3498 -36.6075 37.8447 +-22.9281 -36.6618 37.9008 +-23.7534 -37.0929 38.3465 +-23.8863 -36.4413 37.6728 +-24.7232 -36.862 38.1078 +-24.8405 -36.2086 37.4323 +-25.9954 -37.0564 38.3087 +-26.1026 -36.3995 37.6296 +-27.1486 -37.045 38.297 +-27.474 -36.6938 37.9339 +-27.9336 -36.5258 37.7602 +-28.2955 -36.2327 37.4573 +-29.5249 -37.0326 38.2841 +-29.6931 -36.489 37.7221 +-30.85 -37.1504 38.4059 +-30.9091 -36.4826 37.7155 +-31.8809 -36.8896 38.1363 +-31.8202 -36.102 37.3221 +-32.802 -36.4972 37.7306 +-33.2588 -36.2967 37.5234 +-34.4757 -36.9099 38.1573 +-34.6064 -36.3514 37.58 +-36.1239 -37.2352 38.4936 +-36.0801 -36.499 37.7325 +-36.9383 -36.6774 37.9169 +-37.3973 -36.4518 37.6837 +-38.2648 -36.6173 37.8548 +-38.723 -36.3838 37.6134 +-39.78 -36.7027 37.9431 +-40.1783 -36.4048 37.6351 +-41.7418 -37.1458 38.4011 +-42.2065 -36.8911 38.1379 +-43.3602 -37.228 38.4862 +-43.1897 -36.427 37.6581 +-44.9951 -37.282 38.542 +-44.747 -36.4261 37.6571 +-46.3178 -37.0452 38.2972 +-46.1846 -36.2941 37.5207 +-47.7759 -36.8909 38.1376 +-48.3047 -36.6509 37.8895 +-49.2403 -36.7123 37.9531 +-50.3187 -36.8661 38.112 +-51.5437 -37.1095 38.3637 +-52.0075 -36.7954 38.039 +-53.1037 -36.9209 38.1687 +-53.5651 -36.5973 37.8342 +-55.3172 -37.1403 38.3955 +-55.7813 -36.8033 38.0471 +-57.1187 -37.0324 38.284 +-58.2449 -37.1072 38.3612 +-59.8232 -37.4502 38.7159 +-60.3658 -37.1319 38.3868 +-61.7352 -37.3116 38.5726 +-63.2658 -37.5678 38.8374 +-65.1138 -37.9869 39.2707 +-65.6653 -37.6347 38.9066 +-68.078 -38.3287 39.624 +-67.8521 -37.5246 38.7928 +-70.4482 -38.2672 39.5605 +-70.9258 -37.8384 39.1172 +-73.2349 -38.3689 39.6656 +-73.9548 -38.0472 39.3331 +-75.8858 -38.3327 39.6282 +-76.8525 -38.1131 39.4011 +-78.8843 -38.403 39.7009 +-79.693 -38.0805 39.3674 +-81.7431 -38.3342 39.6297 +-82.2211 -37.8368 39.1155 +-84.6219 -38.2074 39.4987 +-85.5199 -37.8793 39.1595 +-88.197 -38.3169 39.6119 +-88.5893 -37.744 39.0196 +-92.3169 -38.5658 39.8692 +-93.4868 -38.2866 39.5805 +-96.2154 -38.6217 39.927 +-97.0447 -38.1734 39.4635 +-100.581 -38.7629 40.073 +-102.119 -38.5493 39.8521 +-105.159 -38.8749 40.1887 +-106.796 -38.6527 39.959 +-106.921 -37.877 39.1571 +-105.96 -36.7305 37.9718 +-107.406 -36.4215 37.6524 +-108.852 -36.0977 37.3176 +-109.391 -35.4653 36.6638 +-108.103 -34.2524 35.41 +-108.529 -33.5952 34.7306 +-107.938 -32.6305 33.7333 +-107.791 -31.8114 32.8865 +-106.8 -30.7571 31.7965 +-19.0073 -5.33921 5.51966 +-50.0565 -13.709 14.1723 +-45.7454 -12.2088 12.6214 +-41.2136 -10.7133 11.0754 +-40.0309 -10.13 10.4724 +-33.7466 -8.30857 8.58937 +-16.5466 -3.96121 4.09508 +-16.0267 -3.7283 3.8543 +-16.6435 -3.75983 3.8869 +-16.7854 -3.67961 3.80397 +-16.4484 -3.49632 3.61448 +-15.3411 -3.15944 3.26621 +-15.2841 -3.04707 3.15005 +-14.3581 -2.76842 2.86198 +-12.9434 -2.41129 2.49278 +-3171.94 -570.336 589.611 +-12.7109 -2.20341 2.27787 +-13.0298 -2.17489 2.2484 +-12.4719 -2.00191 2.06957 +-12.5942 -1.94122 2.00682 +-13.205 -1.95146 2.01742 +-13.229 -1.87127 1.93451 +-14.1354 -1.91033 1.97489 +-12.8806 -1.65979 1.71588 +-14.7721 -1.81096 1.87216 +-14.1039 -1.64094 1.6964 +-13.7289 -1.5118 1.5629 +-14.2418 -1.47983 1.52985 +-14.2599 -1.39337 1.44045 +-13.9794 -1.27957 1.32282 +-13.9949 -1.19471 1.23508 +-14.5061 -1.14911 1.18794 +-13.7244 -1.00291 1.0368 +-13.1392 -0.879616 0.909343 +-13.1498 -0.79987 0.826902 +-13.1593 -0.720054 0.744388 +-11.9708 -0.581987 0.601656 +-11.4786 -0.488113 0.50461 +-11.7838 -0.429368 0.443879 +-12.4881 -0.379085 0.391897 +-10.7934 -0.262054 0.270911 +-10.6963 -0.194738 0.201319 +-10.9983 -0.133473 0.137984 +-11.7996 -0.0715931 0.0740126 +11 -4.44089e-16 2.84217e-14 +10.3996 -0.0625079 0.0657983 +12.1981 -0.146647 0.154367 +11.596 -0.20914 0.220149 +12.1926 -0.293251 0.308687 +11.8887 -0.357509 0.376327 +13.082 -0.472206 0.497062 +13.375 -0.563429 0.593088 +14.6642 -0.706255 0.743431 +14.6547 -0.794366 0.836181 +15.3414 -0.924436 0.973097 +14.9309 -0.990205 1.04233 +15.4151 -1.1159 1.17464 +17.0894 -1.34106 1.41165 +18.7591 -1.58641 1.66992 +30.1399 -2.73295 2.87681 +36.838 -3.56581 3.75351 +40.5497 -4.17394 4.39365 +43.0632 -4.69763 4.9449 +49.7088 -5.72927 6.03086 +53.2781 -6.47034 6.81094 +13.9622 -1.7823 1.87612 +118.286 -15.836 16.6696 +118.179 -16.5601 17.4318 +118.454 -17.3413 18.2542 +118.718 -18.1272 19.0814 +119.165 -18.9485 19.9459 +119.99 -19.8409 20.8853 +119.443 -20.5113 21.591 +119.663 -21.3147 22.4366 +120.161 -22.1757 23.343 +120.936 -23.0995 24.3154 +119.677 -23.6357 24.8798 +120.332 -24.5496 25.8419 +120.112 -25.2921 26.6234 +121.027 -26.2823 27.6658 +120.499 -26.9662 28.3856 +121.006 -27.8861 29.3539 +120.554 -28.5898 30.0948 +120.564 -29.4053 30.9532 +119.999 -30.0817 31.6652 +120.175 -30.9465 32.5755 +119.592 -31.6182 33.2826 +119.931 -32.5378 34.2505 +120.534 -33.5412 35.3068 +120.012 -34.238 36.0403 +120.034 -35.0926 36.9398 +120.869 -36.1972 38.1025 +119.674 -36.6982 38.6299 +117.112 -36.7591 38.6941 +115.826 -37.1996 39.1578 +112.823 -37.0642 39.0152 +111.54 -37.4691 39.4415 +107.929 -37.0625 39.0134 +105.317 -36.9593 38.9048 +102.45 -36.7323 38.6658 +101.539 -37.1849 39.1423 +97.4608 -36.4464 38.3649 +96.4706 -36.8304 38.7691 +93.7373 -36.527 38.4497 +92.4915 -36.7791 38.7151 +89.7818 -36.4247 38.3421 +89.6597 -37.1049 39.058 +86.2872 -36.4188 38.3359 +86.1617 -37.082 39.034 +83.4958 -36.6363 38.5648 +83.0284 -37.1368 39.0916 +80.7201 -36.798 38.735 +79.8363 -37.0892 39.0416 +77.2206 -36.5534 38.4775 +76.4269 -36.8581 38.7983 +74.4102 -36.5561 38.4804 +73.6205 -36.84 38.7793 +71.6236 -36.5027 38.4242 +71.1584 -36.9318 38.8758 +68.9424 -36.4357 38.3536 +68.0053 -36.5942 38.5205 +66.8347 -36.6156 38.5431 +65.902 -36.7559 38.6907 +64.122 -36.4059 38.3222 +63.6583 -36.7899 38.7265 +61.745 -36.3212 38.2331 +61.2824 -36.6909 38.6223 +59.4671 -36.2364 38.1438 +59.0057 -36.5924 38.5186 +57.8763 -36.5269 38.4496 +56.753 -36.4506 38.3693 +54.7658 -35.7947 37.6789 +54.9576 -36.5531 38.4772 +53.2085 -36.0131 37.9088 +52.7502 -36.3315 38.244 +51.0262 -35.7629 37.6454 +50.6406 -36.1178 38.019 +49.4927 -35.9212 37.812 +49.1721 -36.318 38.2298 +47.494 -35.6982 37.5773 +47.6421 -36.4429 38.3612 +45.9196 -35.7478 37.6295 +45.4649 -36.0224 37.9186 +44.682 -36.0324 37.9291 +43.8381 -35.983 37.8771 +42.9989 -35.9263 37.8174 +42.6679 -36.2904 38.2007 +41.335 -35.7909 37.6749 +41.0646 -36.2007 38.1063 +40.1783 -36.0637 37.962 +39.6596 -36.2488 38.1569 +38.5445 -35.8768 37.7653 +38.5587 -36.5528 38.4769 +37.5134 -36.2225 38.1292 +37.053 -36.4466 38.3651 +36.0234 -36.1003 38.0005 +35.5087 -36.2583 38.1669 +34.5513 -35.9535 37.846 +34.4212 -36.5063 38.428 +33.5275 -36.2471 38.1551 +33.014 -36.3888 38.3043 +32.0814 -36.0573 37.9554 +32.0869 -36.7801 38.7162 +30.7568 -35.9627 37.8558 +30.7 -36.6234 38.5512 +29.4962 -35.9073 37.7975 +29.3795 -36.505 38.4265 +28.5341 -36.1959 38.1012 +28.1213 -36.4269 38.3443 +27.2893 -36.1057 38.0063 +27.1486 -36.698 38.6297 +26.2811 -36.305 38.216 +25.8201 -36.4616 38.3809 +24.9696 -36.0558 37.9538 +24.9345 -36.8288 38.7674 +24.1351 -36.4758 38.3959 +23.7534 -36.7454 38.6796 +22.9281 -36.3183 38.2301 +22.467 -36.4547 38.3736 +21.6599 -36.0157 37.9115 +21.465 -36.5915 38.5176 +20.744 -36.2705 38.1798 +20.2478 -36.3295 38.2419 +19.5416 -35.9983 37.8932 +19.3583 -36.6321 38.5604 +18.6264 -36.2277 38.1347 +18.1341 -36.2731 38.1825 +17.42 -35.8582 37.7458 +17.3977 -36.8786 38.8199 +16.6892 -36.4563 38.3753 +16.1682 -36.4235 38.3408 +15.564 -36.189 38.094 +15.1325 -36.3474 38.2607 +14.6714 -36.437 38.355 +14.2609 -36.6568 38.5864 +13.5956 -36.2077 38.1136 +13.3541 -36.8895 38.8313 +12.466 -35.7629 37.6454 +12.1699 -36.3062 38.2173 +11.6228 -36.109 38.0097 +11.2896 -36.5817 38.5073 +10.7659 -36.4457 38.3641 +10.3228 -36.5766 38.5019 +9.87717 -36.705 38.6371 +9.39437 -36.6951 38.6267 +8.79704 -36.2067 38.1126 +8.38489 -36.4623 38.3817 +7.9078 -36.4432 38.3615 +7.44576 -36.4893 38.4101 +6.86568 -35.9182 37.8088 +6.52001 -36.5733 38.4985 +6.04505 -36.5426 38.4662 +5.58182 -36.5776 38.503 +5.10858 -36.5412 38.4647 +4.65412 -36.6391 38.5678 +4.12695 -36.1164 38.0176 +3.725 -36.6895 38.6208 +3.20505 -36.0918 37.9916 +2.74764 -36.1097 38.0105 +2.29438 -36.1936 38.0988 +1.86363 -36.7567 38.6915 +1.37691 -36.2157 38.122 +0.921487 -36.3603 38.2743 +0.460761 -36.3645 38.2786 +1.22125e-15 -36.2281 38.1351 +-0.460761 -36.3645 38.2786 +-0.933704 -36.8424 38.7817 +-1.39785 -36.7665 38.7018 +-1.86712 -36.8255 38.764 +-2.29438 -36.1936 38.0988 +-2.79997 -36.7975 38.7345 +-3.20505 -36.0918 37.9916 +-3.77383 -37.1704 39.127 +-4.18187 -36.597 38.5235 +-4.71513 -37.1194 39.0733 +-5.09899 -36.4727 38.3925 +-5.64454 -36.9886 38.9356 +-6.12429 -37.0217 38.9704 +-6.61751 -37.1202 39.0742 +-6.95705 -36.3961 38.312 +-7.52926 -36.8986 38.8409 +-7.84868 -36.1707 38.0747 +-8.55697 -37.2107 39.1694 +-8.89607 -36.6143 38.5417 +-9.4291 -36.8308 38.7695 +-9.60381 -35.6891 37.5678 +-10.1892 -36.1034 38.0038 +-10.6662 -36.1082 38.0089 +-11.1233 -36.0427 37.94 +-11.5795 -35.9745 37.8682 +-12.2373 -36.5075 38.4292 +-12.4893 -35.8299 37.7159 +-13.3783 -36.9564 38.9017 +-13.5956 -36.2077 38.1136 +-14.2868 -36.7234 38.6564 +-14.7248 -36.5697 38.4947 +-15.2427 -36.6123 38.5395 +-15.6776 -36.4532 38.372 +-16.1682 -36.4235 38.3408 +-16.6591 -36.3906 38.3061 +-17.4286 -36.9441 38.8888 +-17.7056 -36.4461 38.3646 +-18.3946 -36.7941 38.7309 +-18.6264 -36.2277 38.1347 +-19.5978 -37.0852 39.0373 +-20.1369 -37.095 39.0477 +-20.6062 -36.9726 38.9188 +-21.0738 -36.8473 38.7869 +-21.8021 -37.1662 39.1226 +-22.0043 -36.5884 38.5143 +-22.7406 -36.8985 38.8408 +-23.2072 -36.7604 38.6955 +-24.0381 -37.1858 39.1432 +-24.2596 -36.6639 38.5938 +-25.4839 -37.6403 39.6216 +-25.271 -36.4911 38.4119 +-26.4338 -37.3282 39.2931 +-26.9503 -37.2295 39.1893 +-27.0578 -36.5752 38.5005 +-27.8434 -36.8389 38.778 +-28.7317 -37.2174 39.1765 +-29.1544 -36.9827 38.9295 +-29.9612 -37.2278 39.1874 +-30.5303 -37.1662 39.1226 +-31.35 -37.3988 39.3675 +-31.4166 -36.7342 38.6678 +-32.3959 -37.1343 39.0891 +-32.7607 -36.8208 38.759 +-33.5969 -37.0313 38.9806 +-33.9573 -36.7118 38.6443 +-35.2926 -37.4306 39.4009 +-35.1584 -36.5852 38.511 +-36.4594 -37.229 39.1887 +-36.9863 -37.0652 39.0163 +-37.9134 -37.2929 39.256 +-38.3845 -37.0635 39.0145 +-39.3228 -37.2772 39.2394 +-39.7342 -36.9841 38.9309 +-40.6827 -37.1839 39.1413 +-41.274 -37.0473 38.9974 +-42.3575 -37.3405 39.306 +-42.829 -37.0845 39.0366 +-43.9266 -37.3609 39.3276 +-44.3983 -37.0955 39.0482 +-45.3808 -37.2493 39.2101 +-45.851 -36.9752 38.9215 +-46.9738 -37.218 39.1771 +-47.2448 -36.7794 38.7155 +-49.0473 -37.5178 39.4927 +-48.7776 -36.663 38.5929 +-50.6043 -37.3758 39.3432 +-51.0071 -37.0203 38.969 +-52.1688 -37.2078 39.1663 +-52.6383 -36.8928 38.8348 +-54.2351 -37.3543 39.3205 +-54.7776 -37.0751 39.0267 +-56.8278 -37.7971 39.7867 +-57.3046 -37.4541 39.4256 +-58.5814 -37.6249 39.6055 +-59.4246 -37.5041 39.4782 +-61.7553 -38.2976 40.3136 +-61.6391 -37.5598 39.537 +-64.1503 -38.408 40.4297 +-64.6345 -38.021 40.0223 +-66.4161 -38.3837 40.4041 +-66.8999 -37.983 39.9824 +-69.4768 -38.7497 40.7895 +-69.7304 -38.2021 40.213 +-71.5514 -38.5024 40.5291 +-72.5125 -38.3224 40.3397 +-74.6724 -38.7556 40.7956 +-75.1606 -38.3053 40.3216 +-78.2319 -39.1475 41.2082 +-78.2365 -38.4359 40.4592 +-80.3588 -38.7543 40.7943 +-80.8468 -38.2699 40.2844 +-83.8986 -38.9764 41.0281 +-84.3892 -38.4706 40.4957 +-87.2217 -39.0123 41.0659 +-87.7127 -38.4866 40.5125 +-90.9108 -39.1259 41.1854 +-91.8293 -38.7579 40.7981 +-94.8027 -39.2332 41.2984 +-95.0377 -38.5571 40.5867 +-98.1207 -39.0175 41.0714 +-99.1335 -38.6297 40.6632 +-102.68 -39.2011 41.2646 +-104.491 -39.0755 41.1324 +-107.013 -39.1897 41.2526 +-108.215 -38.7994 40.8417 +-107.544 -37.7411 39.7277 +-106.676 -36.6322 38.5605 +-109.563 -36.8048 38.7422 +-110.296 -36.2339 38.1413 +-109.029 -35.0166 36.8598 +-108.74 -34.1314 35.928 +-108.529 -33.2805 35.0323 +-108.397 -32.4621 34.1709 +-107.883 -31.5403 33.2005 +-107.632 -30.7061 32.3225 +-104.494 -29.0777 30.6083 +-52.8477 -14.3379 15.0926 +-44.8119 -11.8476 12.4713 +-42.8996 -11.0472 11.6287 +-40.1249 -10.0587 10.5881 +-36.1974 -8.8285 9.29322 +-32.4313 -7.69124 8.0961 +-15.7422 -3.62781 3.81877 +-16.3582 -3.66075 3.85345 +-15.8317 -3.43803 3.61901 +-15.5878 -3.28233 3.45511 +-15.5329 -3.16896 3.33577 +-15.5724 -3.07548 3.23737 +-15.7072 -3.00017 3.1581 +-13.9093 -2.56695 2.70207 +-13.4573 -2.39703 2.52321 +-3178.98 -545.907 574.643 +-12.6408 -2.0902 2.20023 +-12.6668 -2.01414 2.12017 +-12.4966 -1.90813 2.00857 +-12.6181 -1.84726 1.9445 +-12.641 -1.77135 1.8646 +-14.1354 -1.89244 1.99205 +-12.979 -1.65679 1.744 +-13.2949 -1.61459 1.69959 +-14.1039 -1.62557 1.71113 +-13.8276 -1.50841 1.58781 +-14.9341 -1.53723 1.61815 +-14.2599 -1.38031 1.45297 +-14.5742 -1.32153 1.39109 +-14.8882 -1.25906 1.32533 +-13.7113 -1.07596 1.1326 +-13.8239 -1.00071 1.05339 +-13.1392 -0.871375 0.917243 +-13.1498 -0.792376 0.834086 +-13.0596 -0.707901 0.745164 +-12.3698 -0.595752 0.627112 +-12.2771 -0.517178 0.544402 +-12.1833 -0.439764 0.462913 +-11.4891 -0.345491 0.363678 +-11.493 -0.276424 0.290975 +-11.2961 -0.203731 0.214456 +-11.2983 -0.135829 0.142979 +-10.9996 -0.0661141 0.0695943 +11.4 4.44089e-16 2.84217e-14 +10.7996 -0.0642929 0.0689119 +11.4982 -0.136915 0.146751 +11.3961 -0.203573 0.218199 +12.0926 -0.288072 0.308769 +12.6879 -0.377903 0.405053 +13.7811 -0.492693 0.52809 +14.2733 -0.595536 0.638322 +15.0632 -0.718551 0.770174 +14.8541 -0.797492 0.854787 +16.238 -0.969128 1.03875 +16.0259 -1.05268 1.12831 +16.4096 -1.17656 1.26109 +17.7849 -1.38232 1.48163 +19.6524 -1.6461 1.76436 +19.0357 -1.7096 1.83243 +35.3526 -3.38938 3.63289 +39.5606 -4.03329 4.32306 +42.5694 -4.59946 4.9299 +50.0047 -5.7084 6.11851 +55.5432 -6.68108 7.16107 +65.3865 -8.2671 8.86104 +117.795 -15.6199 16.7421 +118.081 -16.3885 17.5659 +118.551 -17.1901 18.4251 +118.522 -17.9247 19.2125 +118.873 -18.7217 20.0667 +119.796 -19.6198 21.0293 +120.608 -20.5137 21.9875 +120.438 -21.248 22.7745 +120.258 -21.9818 23.561 +119.972 -22.6968 24.3275 +120.638 -23.5982 25.2936 +120.236 -24.2961 26.0416 +121.164 -25.2702 27.0857 +120.741 -25.9701 27.8359 +120.784 -26.7722 28.6956 +120.911 -27.5984 29.5811 +120.932 -28.406 30.4468 +120.847 -29.1931 31.2904 +121.126 -30.0747 32.2354 +120.175 -30.6513 32.8534 +120.619 -31.5855 33.8548 +120.024 -32.2524 34.5696 +120.719 -33.2724 35.6628 +120.012 -33.9114 36.3477 +120.31 -34.8378 37.3407 +120.96 -35.8791 38.4568 +120.862 -36.7088 39.3461 +118.568 -36.8611 39.5093 +116.732 -37.1331 39.8009 +114.448 -37.2392 39.9146 +113.428 -37.7397 40.451 +109.092 -37.1046 39.7704 +107.277 -37.2881 39.967 +104.046 -36.9488 39.6034 +102.863 -37.3106 39.9911 +100.273 -37.1403 39.8086 +98.0449 -37.0744 39.738 +96.0002 -37.052 39.7139 +94.137 -37.0763 39.74 +92.022 -36.9775 39.6341 +91.2883 -37.4185 40.1068 +88.6746 -37.0694 39.7326 +88.7058 -37.8128 40.5294 +85.3512 -37.0932 39.7581 +84.7896 -37.5627 40.2614 +82.2211 -37.1248 39.7919 +81.0799 -37.3076 39.988 +79.3634 -37.2093 39.8825 +78.6386 -37.5629 40.2616 +75.957 -36.9601 39.6154 +74.8341 -37.09 39.7547 +72.9902 -36.8443 39.4913 +73.0751 -37.5648 40.2636 +70.4498 -36.8771 39.5265 +69.3449 -36.9591 39.6144 +68.2434 -37.0308 39.6912 +68.078 -37.6074 40.3092 +65.5109 -36.8396 39.4863 +65.1138 -37.272 39.9498 +63.1897 -36.8165 39.4615 +62.7918 -37.236 39.9112 +60.8152 -36.7043 39.3413 +60.4177 -37.1106 39.7768 +58.4661 -36.5472 39.1728 +58.1426 -36.9869 39.6442 +56.9419 -36.862 39.5103 +56.612 -37.2943 39.9737 +53.9217 -36.1477 38.7447 +53.528 -36.5156 39.139 +52.2878 -36.2976 38.9054 +52.0299 -36.7547 39.3953 +50.7317 -36.4693 39.0893 +50.4679 -36.9196 39.572 +48.6425 -36.2127 38.8143 +48.2443 -36.5515 39.1775 +47.046 -36.2754 38.8815 +46.7114 -36.657 39.2906 +45.5263 -36.3631 38.9756 +45.2522 -36.7895 39.4326 +43.5714 -36.0574 38.6478 +43.8007 -36.8985 39.5495 +42.58 -36.5172 39.1407 +42.1112 -36.7693 39.4109 +41.0305 -36.4774 39.098 +40.6225 -36.7747 39.4168 +39.5557 -36.4668 39.0867 +39.0877 -36.7009 39.3376 +38.0941 -36.4323 39.0498 +37.684 -36.7136 39.3512 +36.5332 -36.2619 38.8671 +36.6271 -37.0436 39.7049 +35.5447 -36.6344 39.2664 +35.0748 -36.8447 39.4917 +33.9573 -36.3616 38.974 +33.5439 -36.6202 39.2511 +32.5517 -36.2369 38.8403 +32.6019 -37.014 39.6733 +31.6196 -36.6189 39.2498 +31.2 -36.8648 39.5133 +30.284 -36.5148 39.1382 +29.8643 -36.7534 39.3939 +28.9158 -36.3302 38.9403 +29.0133 -37.2238 39.8981 +27.6587 -36.2454 38.8494 +27.2848 -36.5302 39.1547 +26.6826 -36.5081 39.131 +26.3023 -36.7882 39.4312 +25.7446 -36.8202 39.4655 +25.3571 -37.0958 39.7609 +24.5084 -36.6866 39.3223 +24.4855 -37.5166 40.2119 +23.2072 -36.4098 39.0256 +22.7796 -36.6093 39.2394 +22.3487 -36.8066 39.4509 +21.8396 -36.8749 39.5242 +21.4037 -37.067 39.7301 +20.6778 -36.7472 39.3873 +19.8217 -36.166 38.7643 +19.7004 -36.9237 39.5764 +18.9268 -36.4609 39.0803 +18.7202 -37.0881 39.7527 +17.9594 -36.6159 39.2465 +17.5213 -36.7863 39.4292 +16.9297 -36.629 39.2606 +16.8991 -37.7069 40.4159 +16.0185 -36.8904 39.5407 +15.4081 -36.6564 39.29 +14.7248 -36.2209 38.8231 +14.5197 -36.9661 39.6219 +13.7959 -36.3907 39.0051 +13.6202 -37.2657 39.943 +12.8628 -36.5494 39.1752 +12.5523 -37.0898 39.7545 +11.9908 -36.8968 39.5476 +11.5183 -36.9668 39.6226 +10.9652 -36.7665 39.408 +10.7807 -37.8348 40.553 +10.0047 -36.8244 39.47 +9.62011 -37.2184 39.8923 +8.97859 -36.6015 39.231 +8.66647 -37.3273 40.009 +8.04083 -36.7028 39.3397 +7.58493 -36.8168 39.4619 +7.11368 -36.8605 39.5087 +6.65407 -36.9692 39.6252 +6.15825 -36.8719 39.5209 +5.79088 -37.5856 40.2858 +5.21401 -36.9396 39.5935 +4.74999 -37.0372 39.698 +4.27602 -37.064 39.7269 +3.80173 -37.0881 39.7526 +3.32104 -37.0412 39.7024 +2.85231 -37.1277 39.7951 +2.33364 -36.4617 39.0813 +1.90202 -37.156 39.8254 +1.40308 -36.5521 39.1782 +0.952901 -37.2412 39.9167 +0.46687 -36.4951 39.117 +1.44329e-15 -36.7693 39.411 +-0.46687 -36.4951 39.117 +-0.935449 -36.5591 39.1856 +-1.39785 -36.4158 39.032 +-1.90202 -37.156 39.8254 +-2.33364 -36.4617 39.0813 +-2.85231 -37.1277 39.7951 +-3.32104 -37.0412 39.7024 +-3.85753 -37.6325 40.3362 +-4.25248 -36.86 39.5082 +-4.79357 -37.377 40.0622 +-5.27152 -37.347 40.0302 +-5.74907 -37.3142 39.995 +-6.12429 -36.6685 39.3029 +-6.72719 -37.3755 40.0606 +-7.07452 -36.6577 39.2913 +-7.68236 -37.2897 39.9687 +-7.99649 -36.5004 39.1227 +-8.6039 -37.0578 39.7202 +-9.04461 -36.8706 39.5196 +-9.58538 -37.0841 39.7484 +-9.89539 -36.4219 39.0386 +-10.5517 -37.0313 39.6918 +-10.8456 -36.3654 38.978 +-11.4975 -36.9 39.5511 +-11.7527 -36.1642 38.7623 +-12.4623 -36.824 39.4695 +-12.8862 -36.6157 39.2463 +-13.4025 -36.67 39.3045 +-13.7709 -36.3246 38.9343 +-14.5456 -37.032 39.6925 +-14.9921 -36.8783 39.5278 +-15.5184 -36.9187 39.5711 +-15.9617 -36.7596 39.4005 +-16.7237 -37.3155 39.9964 +-17.1703 -37.1495 39.8184 +-17.7685 -37.3053 39.9855 +-17.9277 -36.5513 39.1772 +-18.7527 -37.1527 39.8218 +-19.1939 -36.9753 39.6317 +-20.0082 -37.5006 40.1948 +-20.0669 -36.6133 39.2438 +-20.9645 -37.2568 39.9334 +-21.4037 -37.067 39.7301 +-22.2516 -37.5707 40.2699 +-22.6166 -37.2478 39.9238 +-23.522 -37.8024 40.5183 +-23.6458 -37.0979 39.7632 +-24.5262 -37.579 40.2788 +-24.9645 -37.3695 40.0542 +-25.5684 -37.4049 40.0922 +-26.0459 -37.2512 39.9275 +-26.9598 -37.7079 40.4169 +-27.3073 -37.3628 40.0471 +-28.2382 -37.8067 40.5228 +-28.259 -37.032 39.6926 +-29.2011 -37.4647 40.1563 +-29.6793 -37.2894 39.9684 +-30.543 -37.5886 40.2891 +-30.481 -36.7523 39.3927 +-32.1 -37.9282 40.6531 +-32.2287 -37.3243 40.0058 +-32.8594 -37.3064 39.9866 +-33.3354 -37.1093 39.7754 +-34.9747 -38.1823 40.9254 +-35.0319 -37.5123 40.2073 +-35.8372 -37.6456 40.3502 +-36.0415 -37.1464 39.8151 +-37.0186 -37.4394 40.1292 +-37.3828 -37.1052 39.7709 +-38.3723 -37.3842 40.07 +-38.849 -37.1543 39.8236 +-39.9106 -37.4736 40.1658 +-40.2695 -37.1248 39.792 +-41.4651 -37.5375 40.2343 +-41.8828 -37.2351 39.9102 +-43.5888 -38.0595 40.7938 +-43.3893 -37.2113 39.8846 +-44.5559 -37.5347 40.2313 +-45.5432 -37.6891 40.3968 +-46.6664 -37.9391 40.6648 +-46.9551 -37.5043 40.1988 +-48.1547 -37.7897 40.5046 +-48.57 -37.4505 40.1411 +-50.2517 -38.0724 40.8077 +-49.9937 -37.2186 39.8925 +-51.9001 -37.9672 40.6949 +-52.2461 -37.5579 40.2562 +-53.4192 -37.7361 40.4472 +-53.8298 -37.368 40.0527 +-55.9321 -38.1556 40.8968 +-56.2041 -37.6778 40.3847 +-58.1227 -38.2895 41.0404 +-57.8849 -37.4725 40.1646 +-60.2635 -38.3361 41.0903 +-61.4152 -38.3907 41.1488 +-62.7214 -38.5257 41.2935 +-63.6612 -38.4221 41.1824 +-65.4333 -38.8024 41.5901 +-65.8512 -38.3671 41.1236 +-67.1821 -38.456 41.2188 +-68.7518 -38.6621 41.4397 +-70.4094 -38.8953 41.6897 +-71.2956 -38.687 41.4664 +-73.285 -39.0591 41.8652 +-74.1785 -38.829 41.6186 +-76.9086 -39.5354 42.3758 +-77.2506 -38.9949 41.7965 +-79.7691 -39.536 42.3764 +-80.2718 -39.0596 41.8658 +-82.5705 -39.4411 42.2747 +-82.9895 -38.9094 41.7048 +-85.2251 -39.2149 42.0323 +-85.8069 -38.7438 41.5273 +-88.5636 -39.2347 42.0534 +-89.3995 -38.8526 41.6439 +-92.8613 -39.5841 42.428 +-94.0462 -39.315 42.1395 +-97.6314 -40.0184 42.8935 +-98.0534 -39.4011 42.2318 +-100.199 -39.4639 42.2992 +-101.658 -39.2355 42.0543 +-104.342 -39.4556 42.2902 +-106.425 -39.4189 42.2508 +-109.309 -39.6485 42.497 +-110.078 -39.0908 41.8992 +-108.525 -37.7217 40.4317 +-108.645 -36.9524 39.6072 +-110.462 -36.7528 39.3933 +-110.115 -35.8296 38.4037 +-109.301 -34.7691 37.267 +-108.74 -33.8058 36.2346 +-108.712 -33.0185 35.3907 +-107.663 -31.9348 34.2291 +-106.687 -30.8929 33.1123 +-106.616 -30.1261 32.2905 +-105.143 -28.9792 31.0611 +-53.406 -14.3511 15.3821 +-45.6521 -11.9546 12.8135 +-43.4616 -11.0851 11.8815 +-41.7224 -10.3593 11.1036 +-37.9885 -9.17692 9.83622 +-32.904 -7.72893 8.2842 +-15.1732 -3.46332 3.71214 +-16.9288 -3.75231 4.02189 +-16.4039 -3.52832 3.7818 +-16.5441 -3.45047 3.69837 +-16.3958 -3.3131 3.55113 +-15.6686 -3.06495 3.28514 +-15.8999 -3.00801 3.22412 +-14.9719 -2.73669 2.9333 +-15.0063 -2.64745 2.83766 +-13.9723 -2.37649 2.54722 +-14.78 -2.42062 2.59452 +-11.7899 -1.85682 1.99023 +-12.7895 -1.93422 2.07318 +-13.205 -1.91474 2.0523 +-12.935 -1.79526 1.92424 +-12.4667 -1.6531 1.77186 +-13.5689 -1.71557 1.83883 +-13.6888 -1.64658 1.76487 +-14.3011 -1.63258 1.74987 +-14.519 -1.56873 1.68143 +-14.044 -1.43181 1.53468 +-14.4579 -1.38614 1.48572 +-13.3845 -1.20206 1.28842 +-14.4912 -1.21379 1.30099 +-13.7113 -1.0657 1.14226 +-13.7244 -0.984034 1.05473 +-14.6323 -0.96114 1.03019 +-13.8471 -0.82643 0.885804 +-12.4615 -0.669038 0.717104 +-12.3698 -0.590069 0.632462 +-12.6763 -0.528903 0.566901 +-11.5841 -0.414148 0.443901 +-11.2892 -0.336244 0.360401 +-12.0926 -0.288072 0.308769 +-11.3961 -0.203573 0.218199 +-11.8982 -0.141677 0.151856 +-11.2996 -0.0672694 0.0721023 +11.4 4.44089e-16 2.84217e-14 +10.8996 -0.0642579 0.0701326 +12.2981 -0.145017 0.158275 +11.8959 -0.210438 0.229677 +12.9921 -0.306493 0.334514 +12.8877 -0.380126 0.414878 +14.1805 -0.50205 0.547949 +15.6707 -0.647491 0.706686 +29.7274 -1.4043 1.53268 +20.2374 -1.07596 1.17433 +30.7824 -1.81933 1.98566 +15.9263 -1.03598 1.13069 +17.9014 -1.27106 1.38726 +16.9901 -1.30771 1.42727 +19.1561 -1.58895 1.73422 +18.7383 -1.66655 1.81891 +35.8477 -3.40348 3.71463 +40.6486 -4.10396 4.47915 +46.8164 -5.00921 5.46717 +51.1882 -5.78675 6.3158 +56.134 -6.68658 7.29788 +67.1563 -8.40839 9.17711 +117.501 -15.4295 16.8401 +118.375 -16.2697 17.7571 +118.551 -17.0232 18.5795 +118.62 -17.7653 19.3894 +119.75 -18.6766 20.3841 +120.088 -19.4765 21.2571 +120.026 -20.2164 22.0646 +120.631 -21.0754 23.0022 +120.354 -21.7858 23.7775 +120.743 -22.6208 24.6889 +120.638 -23.369 25.5055 +120.14 -24.0409 26.2388 +120.303 -24.8471 27.1187 +120.836 -25.7381 28.0912 +120.594 -26.4704 28.8904 +121.101 -27.3732 29.8758 +120.648 -28.0641 30.6298 +120.941 -28.9321 31.5772 +120.375 -29.5978 32.3037 +120.269 -30.3773 33.1544 +119.872 -31.0851 33.927 +120.303 -32.0134 34.9402 +120.719 -32.9492 35.9615 +120.289 -33.6596 36.7369 +120.678 -34.6051 37.7688 +120.41 -35.369 38.6026 +121.319 -36.4897 39.8257 +119.842 -36.8953 40.2684 +118.183 -37.2292 40.6329 +115.441 -37.1975 40.5982 +113.697 -37.462 40.8869 +111.061 -37.4074 40.8273 +108.703 -37.4166 40.8374 +106.264 -37.3698 40.7863 +104.806 -37.646 41.0877 +101.679 -37.2954 40.705 +99.4443 -37.2384 40.6428 +97.4798 -37.2576 40.6638 +95.6958 -37.3242 40.7365 +93.4868 -37.2012 40.6023 +92.5741 -37.577 41.0124 +91.403 -37.8389 41.2982 +89.0451 -37.5887 41.0252 +87.1223 -37.4951 40.9231 +85.7121 -37.6026 41.0404 +83.472 -37.3235 40.7357 +82.5721 -37.6253 41.0651 +80.0227 -37.154 40.5507 +79.3758 -37.5469 40.9795 +77.5038 -37.3465 40.7608 +76.6139 -37.6034 41.0413 +74.2764 -37.1294 40.5239 +73.155 -37.2407 40.6453 +71.6398 -37.1359 40.531 +70.2906 -37.0993 40.491 +69.1043 -37.1337 40.5286 +68.622 -37.5397 40.9717 +66.8999 -37.2553 40.6613 +65.7266 -37.2575 40.6637 +64.6345 -37.2925 40.7019 +64.0748 -37.6278 41.0679 +61.5642 -36.7955 40.1595 +61.0865 -37.157 40.554 +60.0144 -37.1506 40.547 +58.874 -37.0884 40.4791 +57.6673 -36.969 40.3488 +56.612 -36.9321 40.3086 +55.4909 -36.8383 40.2062 +55.0836 -37.2118 40.6138 +53.199 -36.5715 39.9149 +52.2383 -36.5436 39.8845 +50.9382 -36.2621 39.5772 +49.9905 -36.2151 39.526 +49.4532 -36.4586 39.7918 +49.6495 -37.2508 40.6564 +47.8412 -36.5302 39.8699 +47.3019 -36.7599 40.1206 +46.3056 -36.6263 39.9748 +45.8308 -36.898 40.2713 +44.271 -36.2806 39.5975 +43.9266 -36.6452 39.9954 +43.4515 -36.9027 40.2764 +42.7269 -36.9445 40.3221 +42.1263 -37.0879 40.4785 +41.1641 -36.9032 40.277 +40.7454 -37.1987 40.5995 +39.5579 -36.7816 40.1443 +39.1394 -37.0685 40.4574 +38.1428 -36.7997 40.1641 +37.666 -37.0232 40.408 +37.0745 -37.1318 40.5265 +36.1519 -36.8983 40.2717 +35.6194 -37.0534 40.4409 +34.6021 -36.6922 40.0467 +34.1268 -36.8948 40.2678 +33.6489 -37.0945 40.4858 +32.6019 -36.6546 40.0056 +32.1272 -36.8453 40.2138 +31.7 -37.0918 40.4829 +30.7272 -36.6893 40.0436 +30.3006 -36.9282 40.3042 +29.8224 -37.1054 40.4977 +29.0133 -36.8623 40.2324 +28.5361 -37.0319 40.4175 +28.0566 -37.1987 40.5995 +27.2181 -36.879 40.2506 +26.7406 -37.0381 40.4242 +25.8737 -36.6456 39.9958 +25.7797 -37.3477 40.7622 +24.9231 -36.945 40.3227 +24.4449 -37.0906 40.4815 +23.6059 -36.6757 40.0287 +23.2094 -36.9378 40.3148 +22.6549 -36.9484 40.3264 +22.1767 -37.0806 40.4706 +21.4403 -36.7699 40.1315 +21.2871 -37.4625 40.8875 +20.1719 -36.4476 39.7797 +20.0082 -37.1364 40.5316 +19.294 -36.8072 40.1723 +18.7853 -36.8557 40.2251 +18.2767 -36.9009 40.2745 +17.8303 -37.0716 40.4608 +17.2004 -36.8531 40.2223 +16.8991 -37.3407 40.7545 +16.2741 -37.1151 40.5083 +15.9043 -37.4693 40.8949 +15.2059 -37.0409 40.4273 +14.7527 -37.1944 40.5948 +14.0714 -36.7567 40.1171 +13.596 -36.8382 40.2061 +13.0496 -36.7199 40.077 +12.5748 -36.7955 40.1594 +12.034 -36.6704 40.0229 +11.7054 -37.2024 40.6036 +11.1646 -37.0714 40.4606 +10.7235 -37.2684 40.6756 +10.0958 -36.7989 40.1631 +9.77639 -37.4558 40.8801 +9.14364 -36.9123 40.2869 +8.68211 -37.0315 40.417 +8.23298 -37.2149 40.6172 +7.73802 -37.1951 40.5956 +7.23115 -37.1053 40.4976 +6.77594 -37.2807 40.689 +6.1809 -36.648 39.9985 +5.80133 -37.2877 40.6967 +5.31944 -37.3205 40.7325 +4.82843 -37.2832 40.6917 +4.26817 -36.6367 39.9862 +3.85753 -37.267 40.6741 +3.32715 -36.7489 40.1086 +2.85231 -36.7671 40.1285 +2.34236 -36.2426 39.556 +1.90202 -36.7951 40.1591 +1.42926 -36.8725 40.2435 +0.954647 -36.9471 40.3249 +0.477341 -36.9513 40.3295 +1.33227e-15 -36.9527 40.331 +-0.476469 -36.8837 40.2557 +-0.951156 -36.812 40.1774 +-1.42141 -36.6699 40.0224 +-1.89853 -36.7276 40.0854 +-2.41651 -37.39 40.8083 +-2.89941 -37.3743 40.7912 +-3.38209 -37.3558 40.771 +-3.85753 -37.267 40.6741 +-4.3231 -37.1081 40.5007 +-4.88072 -37.6869 41.1324 +-5.27152 -36.9843 40.3655 +-5.84314 -37.5565 40.99 +-6.32806 -37.5206 40.9509 +-6.82468 -37.5489 40.9818 +-7.19199 -36.9044 40.2784 +-7.68236 -36.9275 40.3036 +-8.12952 -36.7472 40.1068 +-8.74469 -37.2984 40.7084 +-9.22616 -37.2455 40.6506 +-9.62011 -36.8569 40.2265 +-10.0412 -36.5996 39.9456 +-10.5327 -36.6053 39.9519 +-11.025 -36.608 39.9548 +-11.6846 -37.1364 40.5315 +-12.0124 -36.6044 39.9508 +-12.4623 -36.4663 39.8002 +-13.143 -36.9827 40.3637 +-13.8137 -37.4282 40.85 +-14.0213 -36.6259 39.9744 +-14.8044 -37.3249 40.7373 +-15.2593 -37.1711 40.5694 +-15.7389 -37.0797 40.4696 +-16.2173 -36.9855 40.3668 +-16.9868 -37.5345 40.9661 +-17.471 -37.433 40.8552 +-17.9848 -37.3928 40.8114 +-18.5306 -37.4135 40.8339 +-19.0783 -37.4306 40.8526 +-19.5277 -37.253 40.6587 +-20.316 -37.7077 41.1551 +-20.7673 -37.5233 40.9538 +-21.3229 -37.5255 40.9562 +-21.7335 -37.2728 40.6803 +-22.5888 -37.7696 41.2226 +-22.9993 -37.5101 40.9394 +-23.4829 -37.3731 40.7898 +-24.0446 -37.3571 40.7724 +-24.9736 -37.8928 41.3571 +-25.4207 -37.6827 41.1277 +-25.9065 -37.5314 40.9627 +-26.4334 -37.4382 40.8609 +-27.3105 -37.8274 41.2858 +-27.7981 -37.665 41.1084 +-28.2382 -37.4395 40.8623 +-28.7669 -37.3315 40.7445 +-29.5298 -37.5184 40.9484 +-30.1564 -37.5209 40.9512 +-31.1248 -37.9326 41.4005 +-31.4659 -37.5713 41.0062 +-31.9 -37.3258 40.7383 +-32.8885 -37.7185 41.1668 +-33.735 -37.9285 41.3961 +-34.1714 -37.6706 41.1145 +-35.5046 -38.3843 41.8935 +-35.5155 -37.6608 41.1039 +-36.1096 -37.5633 40.9975 +-36.5934 -37.349 40.7635 +-37.4659 -37.5239 40.9544 +-38.0059 -37.3573 40.7726 +-38.8311 -37.4638 40.8889 +-39.4297 -37.3434 40.7575 +-40.4984 -37.6561 41.0988 +-41.5186 -37.9047 41.37 +-41.9465 -37.6045 41.0424 +-43.1003 -37.9453 41.4144 +-43.4657 -37.5834 41.0194 +-44.0118 -37.3785 40.7958 +-45.0593 -37.5902 41.0268 +-46.1157 -37.7922 41.2473 +-47.1806 -37.9847 41.4574 +-47.1499 -37.2942 40.7037 +-48.8108 -37.9325 41.4004 +-49.2327 -37.5927 41.0295 +-50.3855 -37.8031 41.2591 +-51.3449 -37.8533 41.3139 +-52.4457 -37.9938 41.4673 +-52.9345 -37.6831 41.1283 +-54.1834 -37.9042 41.3695 +-55.4419 -38.1133 41.5978 +-56.4271 -38.1194 41.6044 +-57.06 -37.88 41.3431 +-58.1946 -37.9646 41.4354 +-59.118 -37.8991 41.3639 +-60.9949 -38.4245 41.9374 +-62.5948 -38.748 42.2905 +-63.8361 -38.8296 42.3795 +-64.3353 -38.4518 41.9672 +-66.188 -38.8688 42.4223 +-67.372 -38.872 42.4258 +-68.3312 -38.7339 42.2751 +-69.6777 -38.8023 42.3497 +-71.8083 -39.2828 42.8741 +-72.313 -38.858 42.4105 +-73.9942 -39.054 42.6245 +-75.6859 -39.2332 42.82 +-77.5475 -39.4767 43.0858 +-78.5368 -39.2591 42.8483 +-80.1736 -39.3505 42.9481 +-81.4116 -39.2295 42.816 +-83.7173 -39.6005 43.2209 +-84.2257 -39.1055 42.6806 +-85.9712 -39.1741 42.7555 +-87.8082 -39.2624 42.8519 +-88.9829 -39.0376 42.6065 +-91.1706 -39.2375 42.8247 +-93.8789 -39.6293 43.2523 +-95.922 -39.7097 43.3401 +-98.7457 -40.0821 43.7465 +-99.1735 -39.4642 43.0721 +-101.238 -39.486 43.0959 +-102.963 -39.3534 42.9512 +-105.916 -39.6619 43.2879 +-108.007 -39.6162 43.2381 +-110.898 -39.8343 43.4761 +-111.142 -39.0855 42.6588 +-109.237 -37.6007 41.0382 +-110.345 -37.1663 40.5641 +-112.439 -37.0474 40.4344 +-111.018 -35.7724 39.0428 +-109.845 -34.6026 37.7661 +-109.286 -33.6456 36.7216 +-109.169 -32.8352 35.8371 +-108.213 -31.7863 34.6923 +-106.871 -30.6457 33.4474 +-105.969 -29.6525 32.3635 +-104.123 -28.4193 31.0175 +-56.6624 -15.0782 16.4567 +-46.4923 -12.0564 13.1586 +-41.7756 -10.5516 11.5162 +-38.7153 -9.51933 10.3896 +-37.7057 -9.02017 9.84482 +-16.452 -3.82693 4.1768 +-16.406 -3.70835 4.04738 +-15.7875 -3.46536 3.78218 +-16.1178 -3.43311 3.74697 +-16.2572 -3.35771 3.66468 +-16.2999 -3.26174 3.55994 +-16.2453 -3.1469 3.4346 +-15.8999 -2.9788 3.25113 +-14.0059 -2.53526 2.76705 +-13.7477 -2.40186 2.62144 +-14.4574 -2.43512 2.65775 +-3185.78 -516.687 563.924 +-13.5437 -2.11233 2.30544 +-13.18 -1.97391 2.15438 +-13.4984 -1.93828 2.11548 +-12.935 -1.77782 1.94036 +-13.8409 -1.81751 1.98367 +-14.5522 -1.82202 1.9886 +-13.6888 -1.63059 1.77966 +-13.7094 -1.54982 1.69151 +-14.8153 -1.5852 1.73012 +-13.9451 -1.40792 1.53664 +-14.4579 -1.37267 1.49817 +-13.4837 -1.19921 1.30885 +-13.7964 -1.14437 1.24899 +-13.0158 -1.00182 1.09341 +-14.9178 -1.05922 1.15605 +-14.0351 -0.912961 0.996426 +-14.0463 -0.830185 0.906084 +-13.7575 -0.731447 0.798318 +-12.5693 -0.593764 0.648048 +-12.8759 -0.532014 0.580653 +-12.2831 -0.434874 0.474632 +-12.6879 -0.374233 0.408446 +-11.9927 -0.282917 0.308782 +-11.596 -0.205133 0.223887 +-11.4982 -0.135585 0.147981 +-11.3996 -0.0672056 0.0733497 +11.8 -1.33227e-15 -1.13687e-13 +11.4996 -0.0671246 0.0746017 +11.0983 -0.129575 0.144009 +11.3961 -0.199603 0.221837 +12.8921 -0.301128 0.334672 +12.6879 -0.370532 0.411806 +13.9808 -0.490084 0.544676 +31.3414 -1.28217 1.425 +33.0194 -1.54438 1.71642 +32.7986 -1.72656 1.91888 +35.3649 -2.06951 2.30003 +32.7485 -2.10917 2.34412 +19.4926 -1.37036 1.523 +17.3875 -1.32507 1.47268 +18.0643 -1.48357 1.64883 +20.7212 -1.82468 2.02794 +35.9467 -3.37912 3.75553 +41.5387 -4.15235 4.61489 +46.8164 -4.95967 5.51214 +51.8786 -5.8068 6.45364 +57.9067 -6.82951 7.59026 +71.8759 -8.9103 9.90284 +117.403 -15.2642 16.9645 +118.375 -16.1088 17.9032 +118.747 -16.8826 18.7632 +118.62 -17.5896 19.5489 +119.848 -18.507 20.5685 +119.893 -19.2527 21.3973 +120.22 -20.0488 22.2821 +120.728 -20.8838 23.2101 +120.451 -21.5876 23.9923 +119.972 -22.2541 24.7331 +120.638 -23.1379 25.7153 +120.044 -23.7842 26.4336 +120.686 -24.6795 27.4287 +119.882 -25.2825 28.0987 +120.499 -26.188 29.1051 +120.153 -26.8903 29.8857 +120.554 -27.7648 30.8576 +120.375 -28.512 31.6881 +120.375 -29.3051 32.5695 +120.362 -30.1003 33.4532 +119.872 -30.7777 34.2061 +120.303 -31.6969 35.2277 +119.885 -32.3978 36.0067 +120.197 -33.3012 37.0107 +120.77 -34.2889 38.1085 +120.043 -34.9126 38.8016 +120.679 -35.9384 39.9416 +120.934 -36.8633 40.9696 +119.089 -37.1438 41.2813 +115.711 -36.916 41.0282 +114.327 -37.2968 41.4514 +110.793 -36.948 41.0637 +109.416 -37.2896 41.4433 +106.707 -37.1547 41.2935 +104.982 -37.3365 41.4955 +102.646 -37.2776 41.43 +100.669 -37.3241 41.4817 +98.4372 -37.2515 41.401 +95.9556 -37.0555 41.1832 +94.693 -37.3086 41.4645 +93.1741 -37.4465 41.6177 +91.062 -37.3249 41.4826 +89.8083 -37.536 41.7173 +87.9657 -37.4837 41.6591 +86.8024 -37.7043 41.9043 +84.3059 -37.3235 41.4811 +82.655 -37.2906 41.4445 +81.5061 -37.4686 41.6423 +79.8673 -37.4057 41.5725 +78.1551 -37.2879 41.4415 +77.342 -37.5854 41.7721 +75.4018 -37.3193 41.4763 +74.1932 -37.3956 41.5612 +72.5918 -37.2573 41.4074 +71.1574 -37.1854 41.3275 +69.8086 -37.1413 41.2785 +68.3888 -37.0422 41.1684 +67.3628 -37.1421 41.2795 +66.4161 -37.276 41.4283 +65.2428 -37.2712 41.423 +64.0748 -37.2557 41.4057 +62.3131 -36.8749 40.9824 +61.8296 -37.2372 41.3851 +60.0144 -36.7832 40.8806 +59.6053 -37.1778 41.3191 +57.7398 -36.6495 40.7319 +57.2594 -36.9851 41.105 +55.7762 -36.6616 40.7454 +55.0836 -36.8438 40.948 +53.6896 -36.5438 40.6145 +53.2108 -36.8557 40.9612 +52.1084 -36.7283 40.8195 +51.0135 -36.5908 40.6667 +49.9937 -36.4926 40.5576 +49.5157 -36.783 40.8804 +48.5038 -36.6699 40.7547 +48.0235 -36.9516 41.0677 +46.8252 -36.6711 40.7559 +45.8308 -36.5331 40.6026 +44.8435 -36.3863 40.4394 +43.9895 -36.3348 40.3822 +43.327 -36.4331 40.4914 +43.1579 -36.9482 41.0639 +42.1263 -36.7211 40.8115 +41.7058 -37.0189 41.1426 +40.6859 -36.7771 40.8738 +40.087 -36.905 41.0159 +39.1394 -36.7019 40.7902 +38.7164 -36.9838 41.1035 +37.7227 -36.7122 40.8017 +37.1304 -36.8201 40.9216 +36.5934 -36.9796 41.0989 +35.6194 -36.687 40.7736 +35.1394 -36.8935 41.0031 +34.7097 -37.1539 41.2926 +33.7012 -36.7848 40.8823 +33.1685 -36.9228 41.0357 +32.1272 -36.481 40.5447 +32.2 -37.3043 41.4597 +30.7765 -36.3847 40.4377 +30.7369 -37.0895 41.221 +29.8224 -36.7385 40.8309 +29.4359 -37.0292 41.154 +28.5361 -36.6657 40.75 +28.0566 -36.8309 40.9335 +27.1734 -36.4545 40.5152 +27.1352 -37.2129 41.3582 +26.3042 -36.8869 40.9958 +25.7797 -36.9784 41.0975 +24.9231 -36.5797 40.6544 +24.4449 -36.7238 40.8145 +24.0047 -36.9264 41.0397 +23.5611 -37.1266 41.2623 +22.6931 -36.6448 40.7268 +22.2516 -36.8379 40.9413 +21.7702 -36.9664 41.0841 +21.2871 -37.092 41.2238 +20.5222 -36.7137 40.8033 +20.0082 -36.7692 40.865 +19.4943 -36.8216 40.9232 +19.0457 -36.9971 41.1183 +18.2767 -36.536 40.6059 +17.8303 -36.705 40.7936 +17.2906 -36.68 40.7659 +16.9576 -37.0994 41.232 +16.5013 -37.2611 41.4117 +15.9043 -37.0988 41.2313 +15.2593 -36.8035 40.9031 +14.7268 -36.762 40.857 +14.2466 -36.8465 40.9509 +13.8137 -37.0581 41.1861 +13.3297 -37.1373 41.2741 +12.7997 -37.0834 41.2142 +12.2505 -36.9607 41.0779 +11.6846 -36.7691 40.8649 +11.344 -37.2947 41.4491 +10.8189 -37.2282 41.3752 +10.2599 -37.0269 41.1514 +9.77639 -37.0854 41.2164 +9.29218 -37.141 41.2782 +8.68211 -36.6653 40.7495 +8.2182 -36.7808 40.8779 +7.73802 -36.8273 40.9296 +7.25726 -36.8711 40.9782 +6.78812 -36.9784 41.0975 +6.28278 -36.8837 40.9923 +5.81178 -36.9855 41.1054 +5.31944 -36.9515 41.0676 +4.84586 -37.0477 41.1745 +4.27602 -36.3411 40.3892 +3.86451 -36.9652 41.0828 +3.38209 -36.9864 41.1064 +2.89941 -37.0047 41.1267 +2.42088 -37.087 41.2182 +1.90202 -36.4313 40.4894 +1.42926 -36.5079 40.5746 +0.970354 -37.1836 41.3255 +0.477341 -36.5858 40.6612 +2.33147e-15 -36.5873 40.6628 +-0.484323 -37.1209 41.2559 +-0.968609 -37.1167 41.2512 +-1.4502 -37.0428 41.169 +-1.92994 -36.966 41.0838 +-2.42088 -37.087 41.2182 +-2.90465 -37.0714 41.2009 +-3.38209 -36.9864 41.1064 +-3.90636 -37.3656 41.5278 +-4.33094 -36.8078 40.908 +-4.88072 -37.3142 41.4708 +-5.36736 -37.2843 41.4375 +-5.93722 -37.7837 41.9926 +-6.32806 -37.1496 41.2878 +-6.83687 -37.2439 41.3926 +-7.30947 -37.1363 41.273 +-7.93287 -37.7546 41.9602 +-8.26255 -36.9792 41.0984 +-8.88548 -37.5241 41.704 +-9.22616 -36.8771 40.985 +-9.62011 -36.4925 40.5575 +-10.2052 -36.8296 40.9321 +-10.857 -37.3595 41.5211 +-11.1845 -36.7704 40.8663 +-11.7054 -36.8345 40.9376 +-12.1856 -36.7648 40.8602 +-12.6647 -36.6923 40.7795 +-13.3064 -37.0723 41.2018 +-13.8137 -37.0581 41.1861 +-14.2466 -36.8465 40.9509 +-14.7786 -36.8912 41.0006 +-15.286 -36.868 40.9748 +-15.9594 -37.2274 41.3743 +-16.5013 -37.2611 41.4117 +-16.9868 -37.1634 41.3031 +-17.471 -37.0628 41.1913 +-18.2938 -37.6591 41.8541 +-18.5623 -37.1069 41.2403 +-19.3387 -37.5663 41.751 +-19.8281 -37.452 41.6239 +-20.5896 -37.8377 42.0525 +-20.8724 -37.3402 41.4996 +-21.6096 -37.654 41.8484 +-22.0267 -37.402 41.5683 +-22.5888 -37.3961 41.5617 +-23.0758 -37.2627 41.4135 +-23.9518 -37.7423 41.9465 +-24.0446 -36.9877 41.1079 +-24.9736 -37.5181 41.6974 +-25.7939 -37.8578 42.0749 +-25.991 -37.2815 41.4343 +-26.8208 -37.6114 41.801 +-27.3982 -37.5736 41.759 +-27.7981 -37.2925 41.4466 +-28.6922 -37.6652 41.8608 +-29.1363 -37.437 41.6072 +-29.9523 -37.6789 41.8761 +-30.6336 -37.7378 41.9415 +-31.1248 -37.5575 41.7411 +-31.4166 -37.1415 41.2788 +-32.35 -37.4781 41.6528 +-32.8377 -37.2878 41.4414 +-33.735 -37.5534 41.7366 +-34.5894 -37.7543 41.9598 +-35.6106 -38.1182 42.3642 +-35.8379 -37.6268 41.8182 +-36.5453 -37.6406 41.8335 +-36.9798 -37.3701 41.5328 +-37.9692 -37.6519 41.846 +-38.5156 -37.4839 41.6594 +-39.4047 -37.6412 41.8341 +-39.9524 -37.4642 41.6374 +-41.0274 -37.7708 41.9781 +-41.3997 -37.4223 41.5908 +-42.4881 -37.7134 41.9144 +-42.9786 -37.4639 41.6371 +-44.1429 -37.7915 42.0012 +-44.5098 -37.4277 41.5969 +-45.5628 -37.6343 41.8265 +-46.1157 -37.4185 41.5867 +-47.1806 -37.6091 41.7985 +-48.3189 -37.8409 42.056 +-48.7452 -37.5069 41.6849 +-49.829 -37.6718 41.8682 +-50.9208 -37.8269 42.0405 +-51.4124 -37.5282 41.7086 +-52.7867 -37.8627 42.0803 +-53.6917 -37.8442 42.0598 +-54.878 -38.0105 42.2446 +-55.4419 -37.7364 41.94 +-56.6393 -37.8844 42.1044 +-57.7733 -37.9743 42.2043 +-58.7701 -37.9608 42.1894 +-60.3511 -38.307 42.5741 +-62.0919 -38.7288 43.0429 +-62.8898 -38.5456 42.8393 +-64.4307 -38.8036 43.1261 +-64.9345 -38.4261 42.7065 +-66.1126 -38.4406 42.7225 +-68.0563 -38.8785 43.2093 +-69.4036 -38.9528 43.2918 +-70.6036 -38.9291 43.2655 +-72.5077 -39.2732 43.6479 +-73.2521 -38.9734 43.3147 +-74.7034 -39.0385 43.3871 +-75.6859 -38.8452 43.1723 +-77.5475 -39.0863 43.4402 +-79.5014 -39.3484 43.7315 +-80.9017 -39.3152 43.6947 +-81.0859 -38.6862 42.9955 +-84.045 -39.3623 43.747 +-84.7202 -38.9461 43.2844 +-86.8002 -39.1607 43.5229 +-88.4753 -39.1694 43.5326 +-90.1571 -39.1615 43.5238 +-91.8453 -39.1369 43.4965 +-94.8118 -39.6273 44.0415 +-96.3483 -39.4917 43.8908 +-99.1743 -39.858 44.2978 +-100.38 -39.5491 43.9546 +-103.23 -39.8647 44.3054 +-104.53 -39.5571 43.9635 +-107.491 -39.8534 44.2928 +-108.798 -39.5118 43.9131 +-111.693 -39.7231 44.1479 +-112.828 -39.2857 43.6619 +-110.307 -37.5932 41.7808 +-111.777 -37.2763 41.4286 +-113.608 -37.0622 41.1907 +-110.837 -35.3611 39.3 +-109.845 -34.2605 38.0768 +-109.468 -33.3684 37.0854 +-108.895 -32.4289 36.0412 +-108.763 -31.632 35.1556 +-107.607 -30.5517 33.9549 +-105.692 -29.2825 32.5444 +-102.454 -27.6873 30.7714 +-62.431 -16.449 18.2813 +-47.3325 -12.1529 13.5067 +-41.8692 -10.4707 11.6371 +-38.6214 -9.40232 10.4497 +-34.3122 -8.12719 9.03249 +-16.5466 -3.81085 4.23535 +-16.1215 -3.60801 4.00992 +-16.6435 -3.61712 4.02004 +-16.1178 -3.39916 3.7778 +-16.1616 -3.30495 3.67309 +-17.067 -3.38146 3.75813 +-15.7647 -3.0236 3.3604 +-15.2254 -2.82422 3.13882 +-14.1025 -2.5275 2.80905 +-13.7477 -2.3781 2.64301 +-13.002 -2.16831 2.40985 +-14.1966 -2.27971 2.53366 +-13.0566 -2.01621 2.2408 +-12.3013 -1.82411 2.0273 +-11.9334 -1.69661 1.88559 +-13.9149 -1.89359 2.10452 +-12.9575 -1.68467 1.87233 +-13.6672 -1.6943 1.88303 +-13.8858 -1.63769 1.82012 +-13.7094 -1.5345 1.70543 +-13.5313 -1.43349 1.59317 +-13.9451 -1.394 1.54928 +-14.854 -1.39634 1.55188 +-13.9794 -1.231 1.36813 +-14.4912 -1.19012 1.32269 +-14.8042 -1.12821 1.25388 +-14.6195 -1.02777 1.14225 +-14.0351 -0.903933 1.00462 +-14.6441 -0.856951 0.952409 +-13.8572 -0.729458 0.810714 +-13.7664 -0.643881 0.715605 +-12.5765 -0.514504 0.571816 +-11.9836 -0.420072 0.466865 +-11.589 -0.338439 0.376138 +-11.1932 -0.261444 0.290567 +-11.696 -0.204855 0.227674 +-11.0983 -0.129575 0.144009 +-11.3996 -0.066541 0.0739531 +11.8 -1.33227e-15 -1.13687e-13 +12.2995 -0.0710711 0.0804358 +12.0982 -0.139826 0.15825 +12.2958 -0.213192 0.241283 +12.8921 -0.298096 0.337375 +12.7878 -0.369689 0.418402 +25.8645 -0.897526 1.01579 +33.4375 -1.35415 1.53259 +33.4184 -1.54731 1.75119 +34.0946 -1.77671 2.01082 +36.2615 -2.10061 2.3774 +33.6444 -2.14505 2.4277 +20.4872 -1.42577 1.61364 +17.3875 -1.31173 1.48457 +18.9576 -1.54125 1.74434 +21.7126 -1.89273 2.14213 +35.1545 -3.27138 3.70244 +40.7475 -4.03224 4.56356 +46.9152 -4.9201 5.5684 +52.6677 -5.83576 6.60472 +57.1188 -6.66877 7.54749 +76.2023 -9.35155 10.5838 +117.501 -15.1231 17.1158 +118.473 -15.9599 18.0628 +118.747 -16.7127 18.9148 +118.815 -17.4411 19.7393 +119.068 -18.2015 20.5998 +120.088 -19.0897 21.6051 +120.899 -19.9591 22.589 +120.631 -20.6569 23.3787 +120.451 -21.3702 24.1861 +120.068 -22.0477 24.9529 +120.446 -22.8685 25.8818 +120.044 -23.5447 26.6471 +120.399 -24.373 27.5845 +119.882 -25.0279 28.3257 +120.594 -25.9448 29.3634 +120.058 -26.5985 30.1033 +120.648 -27.5068 31.1313 +121.035 -28.3797 32.1192 +120.469 -29.0327 32.8582 +120.55 -29.8436 33.776 +120.805 -30.7051 34.751 +120.303 -31.3777 35.5122 +120.719 -32.2949 36.5503 +120.104 -32.9405 37.2809 +120.678 -33.9179 38.3871 +120.593 -34.7194 39.2943 +121.136 -35.7112 40.4167 +120.479 -36.3549 41.1452 +119.905 -37.0216 41.8998 +117.246 -37.0289 41.9081 +115.046 -37.1535 42.049 +112.404 -37.1077 41.9972 +109.416 -36.9141 41.7781 +107.328 -36.9946 41.8693 +105.512 -37.1471 42.0418 +102.997 -37.0286 41.9078 +100.406 -36.8519 41.7078 +98.2632 -36.8112 41.6617 +96.302 -36.8148 41.6657 +94.4346 -36.8321 41.6854 +93.4312 -37.1718 42.0698 +92.0851 -37.3642 42.2876 +90.9108 -37.6142 42.5705 +88.5561 -37.3554 42.2776 +85.8799 -36.928 41.7939 +84.6394 -37.0939 41.9817 +83.4841 -37.2854 42.1983 +81.5061 -37.0913 41.9787 +80.6046 -37.3709 42.2951 +79.2134 -37.4123 42.342 +77.9892 -37.5183 42.4619 +76.1252 -37.2979 42.2125 +75.2315 -37.5372 42.4833 +72.9885 -37.0837 41.97 +71.3938 -36.9332 41.7998 +69.8086 -36.7673 41.612 +68.8551 -36.9193 41.784 +67.5943 -36.8946 41.756 +66.8757 -37.156 42.052 +65.2428 -36.896 41.7576 +64.1503 -36.924 41.7894 +62.9872 -36.8984 41.7604 +61.8296 -36.8623 41.7195 +60.6042 -36.7707 41.6159 +59.6053 -36.8035 41.6529 +58.4652 -36.7362 41.5768 +57.9788 -37.0727 41.9576 +56.1328 -36.5245 41.3372 +55.5786 -36.8006 41.6497 +54.5307 -36.7425 41.584 +54.0444 -37.0562 41.9389 +52.1084 -36.3584 41.1492 +51.0817 -36.2708 41.05 +50.6693 -36.6134 41.4378 +49.4488 -36.3635 41.1549 +48.5038 -36.3007 41.0839 +48.0235 -36.5795 41.3995 +46.8901 -36.3521 41.1421 +45.895 -36.2159 40.988 +45.416 -36.4797 41.2865 +44.43 -36.3291 41.116 +43.8873 -36.5326 41.3464 +43.3426 -36.7327 41.5728 +42.8568 -36.9817 41.8546 +41.6456 -36.5934 41.4151 +41.2212 -36.8858 41.7461 +40.1457 -36.5869 41.4079 +39.662 -36.8175 41.6688 +39.1753 -37.0453 41.9266 +38.0625 -36.67 41.5018 +37.5778 -36.8885 41.7491 +37.0902 -37.1042 41.9933 +36.1096 -36.8174 41.6686 +35.623 -37.0246 41.9032 +34.6567 -36.7236 41.5625 +34.1714 -36.9225 41.7876 +33.1685 -36.551 41.3672 +32.6855 -36.7412 41.5825 +32.2 -36.9287 41.7946 +31.2197 -36.5371 41.3514 +30.6884 -36.6581 41.4884 +29.7747 -36.3104 41.0948 +29.342 -36.5395 41.3541 +28.5361 -36.2965 41.0792 +28.0566 -36.46 41.2642 +27.575 -36.6207 41.4461 +27.1352 -36.8382 41.6922 +26.2612 -36.4557 41.2593 +26.1178 -37.0861 41.9728 +25.3378 -36.8138 41.6647 +24.4449 -36.354 41.1442 +23.9648 -36.4938 41.3025 +23.4829 -36.6309 41.4576 +22.6931 -36.2759 41.0558 +22.5888 -37.0195 41.8974 +21.7702 -36.5942 41.416 +21.2154 -36.5949 41.4169 +20.7673 -36.7782 41.6243 +20.0424 -36.4612 41.2655 +19.5277 -36.5132 41.3244 +19.0783 -36.6872 41.5214 +18.5623 -36.7333 41.5735 +18.0775 -36.8391 41.6933 +17.5913 -36.9422 41.8099 +16.9868 -36.7892 41.6367 +16.4729 -36.8224 41.6743 +15.9043 -36.7253 41.5644 +15.2593 -36.4329 41.2336 +14.9856 -37.0314 41.9108 +14.2967 -36.6037 41.4268 +13.8137 -36.6849 41.5188 +13.3064 -36.699 41.5347 +12.7772 -36.6454 41.474 +12.2288 -36.5239 41.3365 +11.851 -36.917 41.7814 +11.3241 -36.8543 41.7105 +11.0288 -37.5684 42.5186 +10.2599 -36.6541 41.4838 +9.79376 -36.7772 41.6232 +9.29218 -36.767 41.6117 +8.68211 -36.2961 41.0787 +8.2182 -36.4104 41.2081 +7.76586 -36.5877 41.4087 +7.34862 -36.9593 41.8293 +6.88562 -37.1319 42.0246 +6.2941 -36.5781 41.3979 +5.90586 -37.2058 42.1082 +5.32902 -36.6453 41.4739 +4.83714 -36.6087 41.4325 +4.34663 -36.5693 41.3878 +3.86451 -36.593 41.4147 +3.37598 -36.5479 41.3636 +2.89941 -36.6321 41.459 +2.41651 -36.6475 41.4764 +1.93343 -36.66 41.4906 +1.43188 -36.2065 40.9773 +0.966863 -36.6768 41.5095 +0.48345 -36.681 41.5143 +1.44329e-15 -36.8148 41.6657 +-0.485195 -36.8134 41.6641 +-0.968609 -36.7429 41.5844 +-1.4502 -36.6698 41.5016 +-1.94041 -36.7923 41.6403 +-2.42524 -36.7797 41.6261 +-2.90465 -36.6982 41.5338 +-3.38209 -36.614 41.4384 +-3.96914 -37.5838 42.5361 +-4.40156 -37.0314 41.9108 +-4.88072 -36.9385 41.8058 +-5.44404 -37.4362 42.369 +-5.84314 -36.8107 41.6611 +-6.33938 -36.8413 41.6957 +-6.95874 -37.5262 42.4709 +-7.32252 -36.8281 41.6808 +-7.80761 -36.7843 41.6312 +-8.36601 -37.0653 41.9492 +-8.88548 -37.1463 42.0409 +-9.39121 -37.1589 42.0552 +-9.75903 -36.6467 41.4755 +-10.2234 -36.5238 41.3364 +-10.7235 -36.5283 41.3415 +-11.364 -36.9841 41.8573 +-11.7262 -36.5284 41.3416 +-12.1639 -36.33 41.117 +-12.8222 -36.7745 41.6201 +-13.3531 -36.8278 41.6804 +-13.8379 -36.7492 41.5915 +-14.2717 -36.5396 41.3543 +-14.9597 -36.9674 41.8385 +-15.4731 -36.9434 41.8113 +-15.987 -36.9162 41.7805 +-16.7285 -37.3938 42.3211 +-17.2499 -37.3591 42.2817 +-17.471 -36.6896 41.5241 +-18.2629 -37.217 42.1209 +-18.8479 -37.2984 42.2131 +-19.3062 -37.1255 42.0174 +-19.8615 -37.1374 42.0308 +-20.2476 -36.8345 41.6881 +-20.8023 -36.8401 41.6944 +-21.6454 -37.3367 42.2565 +-22.1 -37.1486 42.0436 +-22.5888 -37.0195 41.8974 +-23.4202 -37.4381 42.3712 +-23.9127 -37.3014 42.2164 +-24.4034 -37.1618 42.0585 +-24.9736 -37.1403 42.0342 +-25.7939 -37.4766 42.4148 +-26.3291 -37.3862 42.3124 +-26.8208 -37.2327 42.1387 +-27.3544 -37.1357 42.0289 +-28.1997 -37.4504 42.3851 +-28.6468 -37.227 42.1322 +-29.0902 -37.0013 41.8768 +-29.9523 -37.2995 42.2143 +-30.4427 -37.125 42.0168 +-31.1248 -37.1793 42.0783 +-31.9583 -37.4015 42.3297 +-32.4 -37.158 42.0542 +-33.3453 -37.4829 42.4218 +-33.7865 -37.2321 42.138 +-35.0074 -37.8258 42.81 +-35.2926 -37.3975 42.3252 +-35.8916 -37.3038 42.2191 +-36.5453 -37.2616 42.1714 +-37.0902 -37.1042 41.9933 +-37.9692 -37.2728 42.1841 +-39.0254 -37.5976 42.5517 +-39.5768 -37.4249 42.3563 +-40.4169 -37.5182 42.4619 +-41.0274 -37.3904 42.3172 +-41.3997 -37.0455 41.9268 +-42.6085 -37.4394 42.3727 +-43.5264 -37.5595 42.5086 +-44.0198 -37.3066 42.2224 +-45.1323 -37.569 42.5193 +-46.1292 -37.7185 42.6885 +-46.6245 -37.4505 42.3852 +-47.6948 -37.6362 42.5953 +-48.254 -37.4095 42.3388 +-49.4012 -37.6289 42.5872 +-49.8953 -37.3421 42.2625 +-50.9878 -37.4952 42.4358 +-51.3449 -37.1015 41.9903 +-53.3323 -37.8688 42.8587 +-53.8293 -37.5592 42.5083 +-54.9475 -37.6754 42.6398 +-56.0027 -37.7343 42.7064 +-57.2049 -37.8774 42.8684 +-57.702 -37.5455 42.4927 +-59.3455 -37.9466 42.9466 +-60.4962 -38.0124 43.0212 +-61.8725 -38.2033 43.2373 +-63.3321 -38.4259 43.4891 +-64.505 -38.4572 43.5246 +-65.6085 -38.434 43.4983 +-66.8673 -38.4879 43.5593 +-68.0563 -38.4871 43.5584 +-69.8633 -38.8159 43.9305 +-70.6036 -38.5371 43.615 +-72.974 -39.1278 44.2835 +-73.2521 -38.581 43.6646 +-75.1762 -38.89 44.0144 +-76.3999 -38.8169 43.9316 +-78.0267 -38.9318 44.0617 +-79.2603 -38.834 43.951 +-81.8725 -39.3864 44.5763 +-81.7372 -38.6043 43.691 +-84.045 -38.966 44.1004 +-85.6267 -38.9665 44.1009 +-87.2977 -38.9886 44.1259 +-88.7255 -38.8847 44.0084 +-90.6603 -38.9836 44.1203 +-92.6044 -39.0631 44.2103 +-94.5574 -39.123 44.2781 +-97.1157 -39.4055 44.5978 +-99.6028 -39.6271 44.8487 +-101.414 -39.5542 44.7661 +-103.23 -39.4633 44.6633 +-104.53 -39.1588 44.3186 +-107.491 -39.4521 44.6506 +-109.061 -39.2087 44.375 +-111.693 -39.3231 44.5045 +-112.828 -38.8902 44.0146 +-109.683 -37.0043 41.8802 +-111.956 -36.96 41.8301 +-114.147 -36.8632 41.7205 +-111.199 -35.119 39.7465 +-110.116 -33.9994 38.4794 +-110.014 -33.1971 37.5714 +-109.26 -32.2101 36.4543 +-108.397 -31.2079 35.32 +-106.871 -30.0371 33.995 +-105.599 -28.9623 32.7786 +-103.937 -27.8054 31.4692 +-67.3622 -17.5696 19.8847 +-47.3325 -12.0306 13.6158 +-42.6186 -10.5507 11.941 +-38.4334 -9.26236 10.4828 +-31.2957 -7.33806 8.30497 +-17.3975 -3.96649 4.48914 +-16.406 -3.63471 4.11364 +-16.0729 -3.45793 3.91357 +-16.5947 -3.46448 3.92098 +-16.4484 -3.32974 3.76849 +-15.437 -3.02772 3.42667 +-16.5337 -3.13916 3.5528 +-16.2854 -2.99043 3.38446 +-14.9719 -2.65629 3.0063 +-14.619 -2.50337 2.83322 +-13.099 -2.1625 2.44745 +-13.2242 -2.10219 2.37919 +-14.5181 -2.21933 2.51176 +-13.3753 -1.96338 2.22209 +-12.0312 -1.69329 1.91641 +-13.327 -1.79532 2.03188 +-13.3501 -1.71824 1.94465 +-13.9622 -1.71344 1.93921 +-12.8025 -1.49473 1.69168 +-13.7094 -1.51905 1.71921 +-14.4202 -1.51228 1.71155 +-13.5495 -1.34082 1.51749 +-15.0521 -1.4007 1.58527 +-14.8717 -1.29639 1.46721 +-13.9949 -1.13779 1.28771 +-14.9036 -1.12434 1.27249 +-14.0228 -0.97589 1.10448 +-14.2342 -0.907517 1.0271 +-14.6441 -0.848322 0.960103 +-13.5581 -0.706526 0.799622 +-12.8686 -0.595829 0.674339 +-11.778 -0.476985 0.539836 +-12.383 -0.429704 0.486324 +-12.1884 -0.35236 0.39879 +-12.3924 -0.286542 0.324299 +-10.7963 -0.187193 0.211859 +-11.0983 -0.12827 0.145172 +-11.7996 -0.0681822 0.0771663 +11.5 -2.66454e-15 -1.13687e-13 +11.4996 -0.0657674 0.0758009 +11.2983 -0.129242 0.14896 +11.696 -0.200713 0.231334 +12.5923 -0.288179 0.332143 +12.6879 -0.36304 0.418426 +31.0574 -1.06668 1.22941 +33.737 -1.35227 1.55857 +35.214 -1.61373 1.85992 +34.4933 -1.77906 2.05047 +36.9588 -2.11905 2.44234 +33.0472 -2.08537 2.40351 +21.1833 -1.4591 1.68171 +17.0894 -1.27603 1.4707 +18.9576 -1.52545 1.75818 +26.769 -2.30958 2.66193 +36.0458 -3.31992 3.82641 +41.6376 -4.07808 4.70024 +47.014 -4.8799 5.62438 +52.569 -5.76512 6.64465 +57.4143 -6.63454 7.64671 +76.1039 -9.24368 10.6539 +117.599 -14.9805 17.266 +118.473 -15.7962 18.2061 +118.649 -16.5277 19.0491 +118.913 -17.2765 19.9122 +119.068 -18.0148 20.7632 +120.185 -18.9093 21.7941 +120.123 -19.6276 22.622 +119.76 -20.2974 23.394 +120.451 -21.1511 24.378 +120.068 -21.8217 25.1508 +120.638 -22.6701 26.1287 +120.907 -23.4708 27.0515 +120.686 -24.1806 27.8695 +120.073 -24.8107 28.5959 +120.499 -25.6585 29.573 +120.911 -26.5129 30.5578 +120.554 -27.2034 31.3536 +120.187 -27.8918 32.147 +120.657 -28.7798 33.1705 +120.643 -29.5606 34.0703 +119.965 -30.1789 34.7831 +120.303 -31.056 35.7939 +120.719 -31.9638 36.8402 +121.028 -32.8535 37.8657 +120.77 -33.5957 38.721 +120.227 -34.2589 39.4855 +121.045 -35.3184 40.7066 +120.479 -35.9821 41.4716 +120.176 -36.7251 42.328 +117.517 -36.7339 42.338 +114.506 -36.6002 42.1839 +111.867 -36.5518 42.1282 +109.683 -36.6249 42.2124 +107.594 -36.7061 42.306 +105.071 -36.6124 42.198 +103.525 -36.8366 42.4564 +100.931 -36.6647 42.2583 +99.0465 -36.7242 42.3269 +96.4752 -36.5029 42.0717 +94.6069 -36.521 42.0927 +93.1741 -36.6894 42.2867 +92.4262 -37.1181 42.7808 +90.3171 -36.9854 42.628 +88.3031 -36.8668 42.4912 +86.8024 -36.942 42.5779 +84.6394 -36.7136 42.3147 +83.4841 -36.9031 42.533 +81.5061 -36.711 42.3116 +80.6046 -36.9877 42.6306 +78.8878 -36.8765 42.5024 +77.7465 -37.0181 42.6656 +75.7233 -36.7206 42.3227 +74.912 -36.9945 42.6384 +72.9885 -36.7035 42.303 +71.1574 -36.4335 41.9918 +69.5739 -36.268 41.801 +68.3888 -36.2933 41.8302 +67.5943 -36.5163 42.0872 +66.1862 -36.3959 41.9485 +65.0147 -36.39 41.9417 +64.2258 -36.5884 42.1704 +62.9872 -36.5201 42.0916 +61.8296 -36.4843 42.0504 +61.3415 -36.8365 42.4563 +59.2396 -36.2026 41.7257 +58.4652 -36.3596 41.9066 +57.9788 -36.6926 42.2904 +56.7747 -36.5634 42.1415 +55.72 -36.516 42.0869 +54.6008 -36.4125 41.9677 +54.1139 -36.7234 42.326 +52.1084 -35.9857 41.4756 +51.6273 -36.2823 41.8176 +50.5341 -36.1413 41.655 +49.5157 -36.0393 41.5375 +49.0339 -36.3211 41.8623 +47.9579 -36.1551 41.6709 +46.8901 -35.9794 41.4685 +46.345 -36.196 41.7181 +45.3524 -36.0551 41.5557 +44.8076 -36.2622 41.7944 +43.8873 -36.1581 41.6744 +43.3426 -36.3561 41.9026 +42.248 -36.0826 41.5874 +41.6456 -36.2182 41.7436 +41.2807 -36.5603 42.138 +40.1457 -36.2118 41.7363 +39.0813 -35.9065 41.3844 +38.6017 -36.1286 41.6404 +38.2324 -36.456 42.0177 +37.1863 -36.13 41.642 +36.6486 -36.2866 41.8225 +36.1096 -36.4399 41.9992 +35.1394 -36.1475 41.6622 +34.6567 -36.3471 41.8922 +34.1192 -36.488 42.0547 +33.6835 -36.7379 42.3427 +32.6855 -36.3645 41.9123 +32.25 -36.6068 42.1915 +31.1704 -36.1054 41.6136 +30.7854 -36.3969 41.9497 +29.7747 -35.9381 41.4208 +29.342 -36.1648 41.6821 +28.9516 -36.4475 42.008 +28.3744 -36.4949 42.0626 +27.6196 -36.3039 41.8424 +26.6968 -35.8715 41.3441 +26.6917 -36.6734 42.2684 +26.1178 -36.7059 42.3057 +25.2963 -36.3768 41.9264 +24.4855 -36.0411 41.5395 +23.9648 -36.1197 41.6301 +23.5611 -36.376 41.9255 +23.0375 -36.4488 42.0094 +22.2516 -36.0931 41.5994 +21.8068 -36.2799 41.8148 +21.2154 -36.2197 41.7454 +20.8023 -36.4624 42.0251 +20.316 -36.58 42.1606 +19.5611 -36.2006 41.7234 +19.4039 -36.9307 42.5649 +18.5623 -36.3566 41.9032 +18.0775 -36.4614 42.024 +17.5612 -36.501 42.0696 +17.2499 -36.976 42.6171 +16.4729 -36.4449 42.0049 +15.9043 -36.3487 41.8941 +15.4197 -36.4383 41.9973 +15.0115 -36.715 42.3162 +14.2967 -36.2284 41.7554 +13.7654 -36.1816 41.7015 +13.3064 -36.3227 41.8641 +12.8447 -36.4612 42.0238 +12.4236 -36.7253 42.3281 +11.8302 -36.4744 42.039 +11.3241 -36.4764 42.0413 +10.857 -36.6042 42.1885 +10.4603 -36.987 42.6298 +9.81112 -36.4646 42.0276 +9.29218 -36.3901 41.9418 +8.8229 -36.5065 42.076 +8.38079 -36.75 42.3567 +7.8772 -36.7317 42.3355 +7.27031 -36.1906 41.7118 +6.76375 -36.1007 41.6082 +6.2941 -36.2031 41.7263 +5.81178 -36.2377 41.7661 +5.31944 -36.2043 41.7277 +4.85457 -36.3639 41.9116 +4.34663 -36.1943 41.7161 +3.86451 -36.2178 41.7432 +3.37598 -36.1731 41.6917 +2.90465 -36.3219 41.8632 +2.41651 -36.2717 41.8053 +1.93343 -36.2842 41.8197 +1.45544 -36.4248 41.9818 +0.970354 -36.4317 41.9898 +0.477341 -35.8461 41.3148 +2.10942e-15 -36.3718 41.9207 +-0.48345 -36.3049 41.8436 +-0.980825 -36.8249 42.4429 +-1.44759 -36.2283 41.7553 +-1.93343 -36.2842 41.8197 +-2.42524 -36.4026 41.9563 +-2.89941 -36.2565 41.7878 +-3.3943 -36.3694 41.9179 +-3.89939 -36.5447 42.1199 +-4.40156 -36.6517 42.2433 +-4.88072 -36.5598 42.1374 +-5.35778 -36.4652 42.0284 +-5.93722 -37.0198 42.6675 +-6.44126 -37.0495 42.7018 +-6.94655 -37.0763 42.7327 +-7.33557 -36.5154 42.0862 +-7.94678 -37.0562 42.7095 +-8.38079 -36.75 42.3567 +-8.86983 -36.7007 42.2998 +-9.24267 -36.1961 41.7183 +-9.77639 -36.3355 41.8789 +-10.2052 -36.0849 41.5901 +-10.857 -36.6042 42.1885 +-11.2045 -36.0912 41.5972 +-11.851 -36.5385 42.1128 +-12.3587 -36.5333 42.1069 +-12.8672 -36.5251 42.0974 +-13.3064 -36.3227 41.8641 +-13.7895 -36.2452 41.7748 +-14.522 -36.7995 42.4136 +-14.9597 -36.5884 42.1703 +-15.4998 -36.6278 42.2157 +-15.9594 -36.4747 42.0393 +-16.4445 -36.3821 41.9325 +-16.9576 -36.3493 41.8948 +-17.7416 -36.8759 42.5018 +-18.2938 -36.8977 42.5268 +-18.7844 -36.7917 42.4047 +-19.2736 -36.6829 42.2792 +-19.8281 -36.6948 42.293 +-20.5554 -37.0111 42.6575 +-21.1175 -37.0149 42.6619 +-21.6096 -36.8927 42.5211 +-22.0267 -36.6458 42.2365 +-22.8885 -37.126 42.79 +-23.4202 -37.0543 42.7073 +-23.8737 -36.8586 42.4817 +-24.4433 -36.8409 42.4613 +-25.299 -37.2385 42.9196 +-25.8354 -37.152 42.82 +-26.0333 -36.5871 42.1689 +-26.95 -37.0283 42.6774 +-27.442 -36.8728 42.4981 +-28.1551 -37.0077 42.6537 +-28.6922 -36.9037 42.5337 +-29.1363 -36.6801 42.276 +-29.8584 -36.8014 42.4158 +-30.4427 -36.7443 42.3501 +-31.5126 -37.2567 42.9406 +-32.0075 -37.075 42.7312 +-32.4 -36.777 42.3878 +-33.3453 -37.0986 42.7583 +-33.735 -36.7942 42.4075 +-35.0074 -37.438 43.1495 +-35.8225 -37.5698 43.3015 +-36.2677 -37.3082 43 +-36.5453 -36.8795 42.5059 +-37.4765 -37.1063 42.7673 +-37.9692 -36.8906 42.5187 +-38.9687 -37.1581 42.827 +-39.5768 -37.0412 42.6922 +-40.475 -37.187 42.8602 +-41.0274 -37.0071 42.6529 +-42.054 -37.2452 42.9273 +-42.5483 -37.0032 42.6484 +-43.1003 -36.8105 42.4263 +-44.5739 -37.3889 43.0929 +-44.5098 -36.6709 42.2655 +-46.1921 -37.3827 43.0858 +-46.6881 -37.117 42.7796 +-47.1806 -36.8487 42.4703 +-48.3189 -37.0758 42.7321 +-49.4669 -37.2926 42.982 +-49.9616 -37.0083 42.6543 +-51.7238 -37.6465 43.3899 +-51.9529 -37.156 42.8245 +-53.2641 -37.4326 43.1433 +-54.38 -37.5544 43.2837 +-55.5032 -37.6663 43.4127 +-55.9326 -37.3007 42.9913 +-57.1342 -37.4428 43.155 +-57.702 -37.1606 42.8298 +-59.2736 -37.512 43.2348 +-60.4962 -37.6227 43.3624 +-62.2382 -38.0351 43.8378 +-62.6686 -37.6335 43.3748 +-64.505 -38.0629 43.8698 +-65.6085 -38.04 43.8434 +-67.3201 -38.3513 44.2021 +-68.0563 -38.0925 43.9039 +-69.4036 -38.1652 43.9877 +-70.6036 -38.142 43.961 +-72.2746 -38.3554 44.2069 +-73.4869 -38.3077 44.152 +-75.4126 -38.6123 44.503 +-76.7966 -38.6184 44.51 +-78.0267 -38.5327 44.4112 +-79.9838 -38.7867 44.704 +-81.2253 -38.6744 44.5746 +-82.877 -38.7413 44.6516 +-84.045 -38.5665 44.4502 +-85.6267 -38.5669 44.4507 +-87.7122 -38.7721 44.6871 +-88.7255 -38.486 44.3574 +-90.9119 -38.691 44.5937 +-93.3634 -38.9795 44.9262 +-95.0662 -38.9302 44.8694 +-97.6273 -39.2069 45.1883 +-99.86 -39.3221 45.3211 +-101.414 -39.1487 45.1212 +-103.49 -39.157 45.1308 +-105.4 -39.08 45.0421 +-107.753 -39.1429 45.1146 +-109.061 -38.8067 44.727 +-111.693 -38.9199 44.8575 +-113.36 -38.673 44.573 +-109.683 -36.6249 42.2124 +-112.225 -36.6688 42.263 +-114.956 -36.7438 42.3495 +-112.101 -35.0411 40.387 +-110.66 -33.817 38.9762 +-110.014 -32.8568 37.8694 +-108.621 -31.6933 36.5284 +-108.58 -30.9402 35.6604 +-107.883 -30.0108 34.5892 +-105.784 -28.7156 33.0964 +-104.215 -27.5939 31.8037 +-69.2231 -17.8698 20.596 +-49.8532 -12.5413 14.4546 +-41.8692 -10.259 11.8241 +-39.3731 -9.39152 10.8243 +-33.2752 -7.72222 8.90033 +-18.154 -4.09652 4.72148 +-16.6905 -3.65983 4.21817 +-15.7875 -3.36172 3.87459 +-16.5947 -3.42896 3.95209 +-16.3528 -3.27645 3.77631 +-16.5876 -3.22003 3.71128 +-15.9569 -2.99859 3.45606 +-15.4181 -2.80214 3.22964 +-14.4889 -2.54425 2.9324 +-13.7477 -2.33002 2.68549 +-13.9723 -2.28302 2.63132 +-13.6132 -2.14183 2.46859 +-13.8361 -2.09338 2.41274 +-13.18 -1.91488 2.20701 +-12.2268 -1.70318 1.96302 +-13.621 -1.81611 2.09317 +-12.9575 -1.65061 1.90243 +-13.3723 -1.62421 1.872 +-13.5903 -1.57044 1.81002 +-13.4135 -1.47103 1.69545 +-14.2227 -1.47627 1.7015 +-13.9451 -1.36582 1.57419 +-14.5569 -1.34074 1.54528 +-14.5742 -1.25744 1.44928 +-14.0942 -1.1341 1.30712 +-14.5061 -1.08314 1.24838 +-14.6195 -1.00699 1.16061 +-13.7365 -0.866808 0.999049 +-13.349 -0.765374 0.88214 +-13.5581 -0.699282 0.805965 +-12.6691 -0.580577 0.66915 +-12.3769 -0.496099 0.571784 +-12.5827 -0.432158 0.498088 +-12.1884 -0.348748 0.401953 +-12.6923 -0.290466 0.334779 +-11.0962 -0.19042 0.219471 +-11.2983 -0.129242 0.14896 +-11.4996 -0.0657674 0.0758009 +11.9 -8.88178e-16 2.84217e-14 +11.4996 -0.0650807 0.0763912 +11.6982 -0.13242 0.155434 +11.9959 -0.20371 0.239114 +11.7928 -0.267064 0.313477 +13.0875 -0.370565 0.434966 +33.554 -1.14039 1.33858 +35.1343 -1.39358 1.63577 +35.0145 -1.58783 1.86379 +34.8921 -1.78084 2.09034 +37.1581 -2.10823 2.47463 +34.7393 -2.16926 2.54626 +23.7691 -1.62012 1.90168 +17.3875 -1.28473 1.508 +18.0643 -1.4384 1.68838 +28.851 -2.46322 2.89131 +35.2535 -3.21306 3.77146 +41.7365 -4.04509 4.74809 +48.0017 -4.9304 5.78727 +53.4567 -5.80126 6.80947 +58.3006 -6.66663 7.82524 +76.4972 -9.19444 10.7924 +117.599 -14.8241 17.4004 +119.453 -15.7606 18.4997 +118.747 -16.3686 19.2133 +118.913 -17.0961 20.0673 +120.237 -18.0019 21.1304 +119.31 -18.5756 21.8039 +120.317 -19.4541 22.835 +119.857 -20.1017 23.5952 +120.354 -20.9136 24.5482 +120.068 -21.5939 25.3467 +120.638 -22.4334 26.3322 +120.811 -23.2073 27.2406 +120.686 -23.9281 28.0866 +121.027 -24.7467 29.0475 +120.404 -25.3706 29.7798 +121.006 -26.2567 30.82 +119.797 -26.7505 31.3995 +121.224 -27.8388 32.6769 +120.375 -28.4128 33.3507 +120.643 -29.2519 34.3357 +119.872 -29.8406 35.0266 +120.303 -30.7318 36.0727 +120.719 -31.6301 37.1271 +120.197 -32.2872 37.8984 +120.77 -33.2449 39.0226 +120.318 -33.9271 39.8234 +120.771 -34.8705 40.9307 +120.934 -35.7409 41.9523 +119.542 -36.1498 42.4324 +117.787 -36.4341 42.7661 +115.315 -36.4739 42.8127 +112.672 -36.4306 42.762 +109.95 -36.3308 42.6448 +107.594 -36.3228 42.6355 +105.159 -36.2606 42.5624 +102.997 -36.2664 42.5692 +101.194 -36.3763 42.6982 +98.3502 -36.0854 42.3567 +96.735 -36.219 42.5136 +94.9515 -36.2714 42.575 +93.6884 -36.5068 42.8513 +92.5967 -36.7983 43.1936 +90.9956 -36.8742 43.2826 +88.7248 -36.656 43.0266 +87.4733 -36.8389 43.2412 +84.6394 -36.3303 42.6442 +83.4841 -36.5178 42.8643 +82.495 -36.7685 43.1586 +80.6046 -36.6016 42.9626 +78.6436 -36.3785 42.7008 +77.7465 -36.6316 42.9979 +76.8487 -36.8773 43.2863 +74.912 -36.6083 42.9705 +73.7025 -36.6755 43.0494 +72.8122 -36.8916 43.303 +70.2782 -36.2526 42.553 +69.5546 -36.5265 42.8746 +68.3659 -36.5475 42.8991 +67.1055 -36.5162 42.8624 +65.9272 -36.5155 42.8615 +64.7541 -36.5043 42.8484 +62.9872 -36.1388 42.4194 +62.4242 -36.4505 42.7853 +60.6779 -36.0576 42.3241 +59.6785 -36.09 42.3622 +58.4652 -35.98 42.233 +57.9069 -36.2644 42.5669 +56.7747 -36.1817 42.4697 +56.2857 -36.5016 42.8452 +54.6008 -36.0324 42.2945 +54.0444 -36.2933 42.6008 +52.1084 -35.6099 41.7987 +51.6273 -35.9035 42.1433 +50.6017 -35.8118 42.0356 +50.1848 -36.145 42.4267 +48.5038 -35.5534 41.7323 +47.9579 -35.7776 41.9954 +47.4097 -35.9983 42.2545 +46.2807 -35.7684 41.9847 +45.2888 -35.6287 41.8207 +44.8076 -35.8836 42.1199 +43.8873 -35.7806 41.9989 +43.4657 -36.0787 42.3489 +42.8568 -36.2204 42.5152 +42.1872 -36.3061 42.6158 +41.2212 -36.1265 42.405 +40.7335 -36.3584 42.6772 +39.6039 -36.0068 42.2644 +39.1753 -36.2826 42.5883 +38.1191 -35.9685 42.2195 +37.6337 -36.1828 42.4711 +37.0902 -36.3404 42.656 +36.1096 -36.0594 42.3263 +35.623 -36.2624 42.5645 +34.7097 -36.0227 42.2831 +34.1192 -36.1071 42.3822 +33.6835 -36.3544 42.6725 +32.6347 -35.929 42.1732 +32.2 -36.1684 42.4542 +31.7121 -36.3493 42.6665 +30.7369 -35.9602 42.2098 +30.2519 -36.1328 42.4123 +29.7645 -36.3026 42.6117 +28.9978 -36.1245 42.4027 +28.4198 -36.1717 42.458 +27.575 -35.8668 42.1002 +27.442 -36.4878 42.8291 +26.6056 -36.1735 42.4602 +26.1178 -36.3227 42.6352 +25.3378 -36.056 42.3222 +24.8923 -36.2573 42.5585 +23.9648 -35.7426 41.9543 +23.4829 -35.8768 42.1119 +22.9993 -36.0084 42.2663 +22.5513 -36.1973 42.4881 +21.7702 -35.8408 42.0696 +21.5379 -36.3865 42.7101 +20.8023 -36.0817 42.3524 +20.2818 -36.1372 42.4175 +19.5945 -35.8838 42.1201 +19.4039 -36.5452 42.8964 +18.5623 -35.9771 42.2296 +18.1084 -36.1424 42.4237 +17.892 -36.8002 43.1958 +17.2499 -36.59 42.949 +16.6717 -36.4996 42.843 +16.1248 -36.4679 42.8057 +15.6602 -36.6203 42.9845 +15.0115 -36.3317 42.6458 +14.497 -36.3524 42.6702 +13.8137 -35.9297 42.174 +13.3064 -35.9435 42.1901 +13.0472 -36.6493 43.0187 +12.2505 -35.8354 42.0633 +11.8925 -36.2839 42.5897 +11.3241 -36.0956 42.3687 +10.857 -36.222 42.5171 +10.2963 -36.027 42.2882 +9.77639 -35.9562 42.2051 +9.29218 -36.0101 42.2684 +8.97934 -36.7659 43.1555 +8.35123 -36.2381 42.536 +7.75194 -35.7702 41.9868 +7.36168 -36.2628 42.565 +6.88562 -36.3675 42.6878 +6.38466 -36.3406 42.6563 +5.81178 -35.8594 42.0914 +5.4057 -36.4073 42.7346 +4.85457 -35.9843 42.238 +4.34663 -35.8164 42.041 +3.86451 -35.8396 42.0683 +3.38209 -35.8602 42.0924 +2.89941 -35.878 42.1133 +2.38598 -35.4395 41.5985 +1.93343 -35.9053 42.1454 +1.4502 -35.9149 42.1566 +0.970354 -36.0514 42.3168 +0.485195 -36.0555 42.3217 +1.88738e-15 -36.0569 42.3233 +-0.484323 -35.9907 42.2456 +-0.98257 -36.5053 42.8496 +-1.47376 -36.4983 42.8414 +-1.96833 -36.5534 42.9061 +-2.4645 -36.6057 42.9674 +-2.90988 -36.0075 42.2653 +-3.38209 -35.8602 42.0924 +-3.89939 -36.1631 42.448 +-4.39371 -36.2044 42.4964 +-4.88072 -36.1781 42.4656 +-5.44404 -36.6655 43.0377 +-5.93722 -36.6333 42.9998 +-6.44126 -36.6627 43.0344 +-6.94655 -36.6893 43.0655 +-7.32252 -36.0699 42.3386 +-7.93287 -36.6051 42.9667 +-8.38079 -36.3664 42.6865 +-8.88548 -36.3816 42.7044 +-9.40771 -36.4579 42.7939 +-9.75903 -35.8923 42.1301 +-10.3692 -36.2821 42.5876 +-10.8761 -36.2856 42.5918 +-11.2244 -35.7779 41.9958 +-11.8925 -36.2839 42.5897 +-12.3587 -36.1519 42.4348 +-12.8672 -36.1438 42.4253 +-13.283 -35.8804 42.1161 +-13.9831 -36.3702 42.691 +-14.472 -36.2896 42.5965 +-14.9597 -36.2064 42.4987 +-15.4998 -36.2453 42.5445 +-15.987 -36.1562 42.4399 +-16.7285 -36.624 42.989 +-17.2499 -36.59 42.949 +-17.7416 -36.4909 42.8328 +-18.2938 -36.5125 42.858 +-18.8162 -36.4691 42.8071 +-19.5666 -36.8518 43.2563 +-20.0618 -36.7396 43.1247 +-20.6238 -36.7466 43.1328 +-21.1525 -36.6892 43.0655 +-21.6454 -36.5681 42.9233 +-22.3932 -36.8666 43.2737 +-22.851 -36.6783 43.0527 +-23.4202 -36.6674 43.0399 +-24.3035 -37.1304 43.5834 +-24.7623 -36.932 43.3505 +-25.299 -36.8497 43.2539 +-25.7939 -36.7051 43.0842 +-26.3291 -36.6166 42.9802 +-26.8639 -36.5247 42.8723 +-27.7489 -36.8959 43.3081 +-28.1997 -36.6794 43.054 +-29.1462 -37.0962 43.5432 +-29.1825 -36.3546 42.6728 +-29.8584 -36.4171 42.7461 +-30.4427 -36.3607 42.6799 +-31.4641 -36.811 43.2084 +-31.909 -36.575 42.9315 +-32.85 -36.8986 43.3113 +-33.4468 -36.823 43.2226 +-34.147 -36.8547 43.2597 +-35.0597 -37.1024 43.5505 +-35.5046 -36.8476 43.2514 +-36.1065 -36.7546 43.1423 +-36.5997 -36.5489 42.9008 +-37.4765 -36.7189 43.1003 +-38.4166 -36.9356 43.3546 +-39.0254 -36.8236 43.2233 +-39.9783 -37.0263 43.4612 +-40.475 -36.7987 43.194 +-41.6152 -37.1453 43.6009 +-42.054 -36.8563 43.2616 +-42.6085 -36.6687 43.0414 +-43.5264 -36.7863 43.1795 +-44.6355 -37.0496 43.4885 +-45.0078 -36.6941 43.0712 +-46.1292 -36.942 43.3622 +-46.6881 -36.7295 43.1128 +-47.1806 -36.464 42.8011 +-48.3189 -36.6887 43.0649 +-49.4012 -36.8543 43.2593 +-49.8953 -36.5734 42.9295 +-51.1216 -36.8197 43.2187 +-51.9529 -36.768 43.158 +-53.3323 -37.0892 43.5351 +-54.38 -37.1623 43.6208 +-55.3643 -37.1797 43.6412 +-56.5634 -37.3275 43.8147 +-57.2049 -37.0977 43.545 +-58.2726 -37.1362 43.5902 +-59.9929 -37.5708 44.1003 +-61.2216 -37.6763 44.2241 +-62.2382 -37.638 44.1792 +-63.9957 -38.0291 44.6383 +-64.4307 -37.6221 44.1605 +-66.1328 -37.9437 44.5379 +-67.5465 -38.0785 44.6962 +-68.8928 -38.1581 44.7896 +-70.0931 -38.1419 44.7707 +-70.6036 -37.7438 44.3033 +-72.2746 -37.9549 44.5512 +-74.1913 -38.2711 44.9224 +-75.8854 -38.4487 45.1308 +-77.2726 -38.4521 45.1347 +-78.7455 -38.4817 45.1694 +-79.9838 -38.3817 45.0521 +-81.5489 -38.4232 45.1008 +-82.877 -38.3368 44.9994 +-84.7003 -38.4614 45.1457 +-85.9564 -38.3112 44.9694 +-87.7122 -38.3673 45.0352 +-89.4759 -38.4063 45.081 +-91.3312 -38.4636 45.1483 +-93.3634 -38.5725 45.2761 +-95.0662 -38.5237 45.2189 +-98.2241 -39.0347 45.8186 +-100.974 -39.3458 46.1838 +-102.448 -39.1349 45.9362 +-103.49 -38.7482 45.4823 +-105.4 -38.672 45.3929 +-108.54 -39.0173 45.7981 +-109.852 -38.68 45.4022 +-112.576 -38.818 45.5642 +-114.424 -38.6286 45.3419 +-111.019 -36.6841 43.0595 +-112.225 -36.2859 42.5921 +-115.225 -36.4455 42.7794 +-111.379 -34.4519 40.4394 +-110.298 -33.3543 39.151 +-109.741 -32.433 38.0696 +-109.443 -31.5997 37.0915 +-108.58 -30.6172 35.9382 +-108.067 -29.7481 34.9181 +-105.137 -28.242 33.1502 +-104.401 -27.3544 32.1084 +-17.3988 -4.44458 5.21701 +-48.2661 -12.0152 14.1034 +-42.7123 -10.3563 12.1561 +-39.5611 -9.33783 10.9607 +-34.1236 -7.83641 9.19831 +-20.045 -4.47601 5.2539 +-16.1215 -3.49815 4.1061 +-16.2631 -3.42683 4.02238 +-16.5947 -3.39316 3.98286 +-15.8747 -3.14744 3.69443 +-16.2041 -3.11273 3.6537 +-16.3414 -3.03879 3.56691 +-16.6708 -2.99818 3.51924 +-15.0684 -2.61839 3.07345 +-14.0381 -2.3544 2.76358 +-13.9723 -2.25918 2.65181 +-14.78 -2.30114 2.70106 +-12.6668 -1.89646 2.22605 +-12.4966 -1.79664 2.10888 +-13.205 -1.82023 2.13657 +-13.033 -1.71957 2.01842 +-12.4667 -1.5715 1.84462 +-13.6672 -1.64271 1.9282 +-14.2797 -1.63287 1.91665 +-13.019 -1.41285 1.6584 +-14.1239 -1.45071 1.70283 +-13.9451 -1.35156 1.58645 +-14.5569 -1.32674 1.55731 +-13.0871 -1.11734 1.31153 +-14.0942 -1.12226 1.3173 +-14.8042 -1.09385 1.28396 +-14.52 -0.989697 1.1617 +-14.2342 -0.888835 1.04331 +-14.6441 -0.830858 0.975255 +-14.1562 -0.722513 0.848079 +-13.1678 -0.597134 0.700911 +-12.0774 -0.479042 0.562296 +-11.9836 -0.407281 0.478064 +-11.8887 -0.33662 0.395122 +-11.493 -0.260274 0.305507 +-11.3961 -0.193525 0.227158 +-11.5982 -0.131289 0.154105 +-11.0996 -0.0628171 0.0737342 +10.2 0 2.84217e-14 +10.7996 -0.0604696 0.07229 +11.6982 -0.131012 0.156622 +11.9959 -0.201545 0.240942 +12.6923 -0.284377 0.339966 +15.3853 -0.430995 0.515245 +35.2516 -1.18535 1.41706 +37.1306 -1.4571 1.74193 +35.7128 -1.60228 1.91549 +36.5869 -1.84748 2.20863 +36.8592 -2.06904 2.47349 +32.9476 -2.0355 2.4334 +25.4598 -1.7169 2.05252 +17.0894 -1.24928 1.49349 +18.5606 -1.4622 1.74803 +29.7433 -2.51241 3.00353 +35.2535 -3.1789 3.8003 +41.7365 -4.00208 4.7844 +47.3103 -4.80772 5.74752 +54.1471 -5.8137 6.95015 +60.8611 -6.88544 8.23139 +114.844 -13.6567 16.3263 +117.697 -14.6788 17.5481 +118.571 -15.4779 18.5035 +118.747 -16.1946 19.3602 +118.913 -16.9143 20.2207 +119.36 -17.6805 21.1367 +120.379 -18.5429 22.1676 +120.317 -19.2472 23.0096 +120.728 -20.0326 23.9485 +120.451 -20.7078 24.7557 +120.068 -21.3643 25.5405 +120.638 -22.1949 26.5335 +120.044 -22.8148 27.2746 +120.686 -23.6737 28.3014 +120.168 -24.3099 29.062 +120.499 -25.1206 30.0312 +120.153 -25.7943 30.8366 +120.554 -26.6332 31.8394 +121.035 -27.4999 32.8756 +120.375 -28.1107 33.6058 +120.55 -28.9185 34.5714 +119.965 -29.5463 35.322 +120.303 -30.405 36.3485 +120.627 -31.2697 37.3822 +120.289 -31.9685 38.2176 +120.77 -32.8914 39.321 +120.502 -33.6176 40.189 +120.588 -34.4475 41.1813 +121.207 -35.4407 42.3686 +119.723 -35.8198 42.8217 +117.246 -35.881 42.895 +115.855 -36.2548 43.3418 +112.135 -35.8715 42.8836 +110.218 -36.0319 43.0754 +107.328 -35.8478 42.8552 +105.424 -35.9654 42.9958 +102.558 -35.7277 42.7117 +100.669 -35.8029 42.8015 +98.4372 -35.7333 42.7183 +96.735 -35.8339 42.8387 +95.21 -35.9834 43.0174 +94.5456 -36.449 43.574 +92.0851 -36.2059 43.2834 +90.9956 -36.4822 43.6136 +88.7248 -36.2663 43.3556 +87.9765 -36.6569 43.8225 +85.3899 -36.2627 43.3513 +83.8986 -36.3089 43.4065 +82.1654 -36.2322 43.3148 +81.6695 -36.6909 43.8631 +80.109 -36.6624 43.8291 +78.4746 -36.5815 43.7324 +76.8487 -36.4852 43.6173 +75.6308 -36.5666 43.7145 +73.7025 -36.2856 43.3786 +72.497 -36.3414 43.4453 +70.9043 -36.1867 43.2604 +69.5546 -36.1382 43.2024 +68.1345 -36.0365 43.0808 +67.4119 -36.2929 43.3873 +65.6991 -36.0022 43.0399 +64.7541 -36.1162 43.1761 +63.6612 -36.1372 43.2012 +62.4242 -36.063 43.1125 +61.3415 -36.0643 43.1141 +60.1173 -35.9689 43 +58.9729 -35.9066 42.9255 +58.4823 -36.2354 43.3186 +57.4167 -36.2017 43.2783 +55.6493 -35.7052 42.6847 +55.1616 -36.0154 43.0556 +54.6696 -36.3228 43.4231 +53.6228 -36.2553 43.3424 +52.2411 -35.9441 42.9704 +51.2097 -35.8568 42.866 +50.2517 -35.8084 42.8081 +49.1001 -35.6078 42.5684 +48.4828 -35.7845 42.7796 +47.9942 -36.0546 43.1025 +46.8592 -35.8305 42.8345 +45.7976 -35.6459 42.6139 +44.8705 -35.5519 42.5016 +43.9495 -35.4503 42.3801 +43.4041 -35.6445 42.6122 +42.8568 -35.8353 42.8403 +42.1872 -35.9201 42.9417 +41.2807 -35.794 42.7909 +40.6747 -35.9199 42.9415 +39.6039 -35.6239 42.5876 +39.6341 -36.3173 43.4166 +38.0625 -35.5332 42.4792 +37.6337 -35.7981 42.7959 +37.0902 -35.954 42.9822 +36.5997 -36.1603 43.2289 +35.623 -35.8769 42.89 +35.1336 -36.0749 43.1268 +34.5894 -36.2156 43.2949 +33.6835 -35.9678 42.9987 +33.193 -36.1551 43.2226 +32.2 -35.7839 42.7788 +31.7121 -35.9628 42.9928 +31.2702 -36.1952 43.2705 +30.2519 -35.7486 42.7367 +29.342 -35.4067 42.328 +28.9516 -35.6835 42.6589 +28.4198 -35.7871 42.7827 +27.9766 -36.0023 43.0399 +27.4859 -36.1576 43.2256 +26.6056 -35.7889 42.7848 +26.4982 -36.4598 43.5869 +25.3378 -35.6726 42.6458 +24.8109 -35.7546 42.7438 +24.4034 -36.0098 43.0489 +23.8737 -36.086 43.14 +22.9993 -35.6255 42.5895 +22.5513 -35.8124 42.813 +21.7702 -35.4597 42.3913 +21.2871 -35.5803 42.5355 +20.8373 -35.7582 42.7482 +20.6238 -36.3559 43.4626 +19.6278 -35.5627 42.5144 +19.4039 -36.1566 43.2244 +18.5941 -35.6554 42.6253 +18.1084 -35.7582 42.7481 +17.6514 -35.9194 42.9408 +17.2499 -36.2009 43.2774 +16.6717 -36.1116 43.1706 +15.8767 -35.5251 42.4695 +15.7403 -36.4164 43.535 +14.7786 -35.3876 42.3051 +14.5471 -36.0902 43.145 +14.0557 -36.1703 43.2407 +13.5398 -36.1852 43.2586 +12.8447 -35.697 42.6749 +12.4236 -35.9555 42.9839 +12.0589 -36.4002 43.5157 +11.4637 -36.152 43.2189 +11.0478 -36.4667 43.5951 +10.4239 -36.0856 43.1395 +9.96741 -36.2689 43.3587 +9.45723 -36.2601 43.3481 +8.85419 -35.8681 42.8795 +8.36601 -35.9163 42.9371 +7.86328 -35.8982 42.9155 +7.38778 -36.0045 43.0425 +6.8978 -36.0444 43.0903 +6.39598 -36.0179 43.0587 +5.92676 -36.18 43.2524 +5.34819 -35.637 42.6033 +4.9243 -36.113 43.1723 +4.41725 -36.0113 43.0507 +3.92729 -36.0347 43.0787 +3.43703 -36.0553 43.1033 +2.90465 -35.5605 42.5118 +2.42088 -35.5755 42.5297 +1.96484 -36.1007 43.1575 +1.45282 -35.5972 42.5556 +0.970354 -35.6681 42.6404 +0.493049 -36.2496 43.3356 +1.22125e-15 -35.5452 42.4935 +-0.48345 -35.5439 42.4919 +-0.98257 -36.1171 43.1772 +-1.47376 -36.1103 43.169 +-1.96484 -36.1007 43.1575 +-2.42524 -35.6396 42.6063 +-2.95698 -36.2013 43.2779 +-3.44924 -36.1834 43.2564 +-3.96914 -36.4187 43.5377 +-4.47217 -36.4591 43.586 +-4.95916 -36.3687 43.478 +-5.44404 -36.2757 43.3668 +-5.93722 -36.2438 43.3286 +-6.53183 -36.7829 43.9732 +-6.95874 -36.3629 43.471 +-7.45305 -36.3225 43.4228 +-7.93287 -36.2159 43.2953 +-8.39557 -36.0432 43.0888 +-8.91676 -36.1215 43.1825 +-9.39121 -36.007 43.0455 +-9.77639 -35.5739 42.5278 +-10.2416 -35.4547 42.3853 +-10.857 -35.8369 42.8422 +-11.344 -35.7747 42.7679 +-11.8718 -35.8353 42.8404 +-12.3803 -35.8301 42.8341 +-12.8447 -35.697 42.6749 +-13.5165 -36.1228 43.184 +-14.0073 -36.0457 43.0919 +-14.522 -36.0281 43.0708 +-15.2186 -36.4412 43.5646 +-15.4731 -35.7981 42.7959 +-16.2075 -36.2652 43.3543 +-16.7001 -36.1731 43.2441 +-17.2499 -36.2009 43.2774 +-17.7416 -36.103 43.1603 +-18.541 -36.6125 43.7694 +-18.8479 -36.1422 43.2072 +-19.5666 -36.46 43.5871 +-19.8281 -35.9256 42.9483 +-20.5554 -36.2353 43.3184 +-21.0825 -36.1789 43.2511 +-21.9321 -36.6585 43.8244 +-22.4299 -36.5343 43.676 +-22.9259 -36.4073 43.5242 +-23.4202 -36.2775 43.369 +-24.2253 -36.6175 43.7754 +-24.7224 -36.4805 43.6116 +-25.2583 -36.3993 43.5146 +-25.8354 -36.3733 43.4834 +-26.4136 -36.3435 43.4478 +-26.8208 -36.0785 43.131 +-27.7051 -36.4459 43.5703 +-28.2443 -36.3468 43.4518 +-29.1916 -36.7589 43.9445 +-29.6443 -36.5372 43.6794 +-30.5157 -36.823 44.0211 +-31.063 -36.7072 43.8826 +-31.5611 -36.5318 43.673 +-32.0075 -36.2979 43.3933 +-32.9 -36.5618 43.7089 +-33.4468 -36.4315 43.5531 +-34.5591 -36.9028 44.1165 +-35.0597 -36.7079 43.8835 +-35.7166 -36.6734 43.8423 +-36.5364 -36.7967 43.9897 +-36.981 -36.5369 43.6791 +-37.4213 -36.275 43.366 +-38.5284 -36.6492 43.8133 +-39.0254 -36.4321 43.5538 +-39.9783 -36.6327 43.7935 +-40.9976 -36.8776 44.0863 +-41.4976 -36.6466 43.8102 +-42.1135 -36.516 43.6541 +-43.0298 -36.6375 43.7993 +-44.0743 -36.8533 44.0573 +-44.5739 -36.6051 43.7606 +-45.6926 -36.8563 44.0609 +-46.1921 -36.5991 43.7534 +-46.6245 -36.2895 43.3833 +-47.7591 -36.5186 43.6572 +-48.9034 -36.7377 43.9191 +-49.9917 -36.8983 44.1111 +-50.4916 -36.617 43.7748 +-51.7907 -36.905 44.1192 +-52.2231 -36.5663 43.7142 +-53.9461 -37.1172 44.3728 +-54.9307 -37.1395 44.3995 +-55.5032 -36.8767 44.0853 +-56.7036 -37.0222 44.2592 +-57.8413 -37.1116 44.3661 +-58.4152 -36.8313 44.031 +-59.9929 -37.1714 44.4375 +-61.6568 -37.5407 44.879 +-62.3113 -37.2816 44.5693 +-63.3321 -37.2347 44.5133 +-65.8426 -38.0379 45.4734 +-66.3575 -37.6677 45.0309 +-67.5465 -37.6736 45.038 +-68.8928 -37.7523 45.1321 +-70.0931 -37.7364 45.113 +-71.9926 -38.0771 45.5203 +-72.974 -37.9148 45.3263 +-74.8956 -38.2237 45.6956 +-76.5158 -38.3559 45.8536 +-76.7966 -37.8089 45.1997 +-79.4642 -38.42 45.9303 +-80.3857 -38.1645 45.6248 +-82.1152 -38.2786 45.7612 +-83.284 -38.1154 45.5662 +-85.4376 -38.3837 45.8869 +-86.6157 -38.1946 45.6608 +-88.1267 -38.1387 45.594 +-89.2258 -37.8918 45.2988 +-92.3376 -38.474 45.9948 +-94.0381 -38.4382 45.952 +-96.8471 -38.8282 46.4182 +-98.6505 -38.7873 46.3694 +-100.974 -38.9275 46.5369 +-102.448 -38.7188 46.2875 +-104.269 -38.6249 46.1753 +-106.183 -38.5452 46.0799 +-108.54 -38.6024 46.1483 +-110.643 -38.5443 46.0788 +-113.724 -38.7968 46.3807 +-114.691 -38.3068 45.7949 +-111.554 -36.4689 43.5977 +-113.388 -36.2723 43.3628 +-116.394 -36.4236 43.5436 +-112.191 -34.3342 41.0457 +-110.841 -33.1624 39.6449 +-110.287 -32.2478 38.5516 +-108.621 -31.0289 37.0944 +-108.763 -30.3428 36.2741 +-107.239 -29.2062 34.9154 +-105.23 -27.9663 33.433 +-105.05 -27.2318 32.555 +-102.346 -25.8666 30.9229 +-51.5336 -12.6923 15.1733 +-42.8059 -10.2687 12.2759 +-40.7827 -9.52387 11.3856 +-36.763 -8.3528 9.98559 +-33.0932 -7.31108 8.74024 +-17.4492 -3.74598 4.47824 +-16.6435 -3.4697 4.14795 +-16.3086 -3.2992 3.94413 +-17.2135 -3.3766 4.03665 +-17.3546 -3.29831 3.94306 +-16.8221 -3.0949 3.69989 +-16.0926 -2.86343 3.42317 +-15.7446 -2.70679 3.23591 +-15.1031 -2.50608 2.99597 +-13.9723 -2.23516 2.67209 +-14.0994 -2.17183 2.59637 +-13.2514 -1.9629 2.3466 +-12.6918 -1.80531 2.1582 +-13.7919 -1.88091 2.24859 +-14.1109 -1.842 2.20207 +-13.252 -1.65274 1.97581 +-14.7488 -1.75386 2.0967 +-13.9843 -1.58208 1.89134 +-14.4984 -1.55667 1.86097 +-14.1239 -1.43529 1.71586 +-13.9451 -1.33719 1.59858 +-14.755 -1.33049 1.59058 +-13.6819 -1.15571 1.38162 +-14.5904 -1.14943 1.37412 +-14.6055 -1.0677 1.27641 +-14.1222 -0.952342 1.1385 +-14.6323 -0.903984 1.08069 +-13.349 -0.74933 0.895808 +-13.9568 -0.704764 0.84253 +-13.9659 -0.626591 0.749075 +-13.5746 -0.532703 0.636835 +-11.684 -0.392878 0.469677 +-11.3891 -0.319048 0.381415 +-11.1932 -0.250789 0.299812 +-11.9959 -0.201545 0.240942 +-11.2983 -0.126533 0.151268 +-10.7996 -0.0604696 0.07229 +11.9 -8.88178e-16 2.84217e-14 +11.0996 -0.0614776 0.0748547 +11.3983 -0.126273 0.15375 +12.5957 -0.209335 0.254885 +13.2919 -0.294593 0.358695 +31.5699 -0.874819 1.06517 +37.6483 -1.25226 1.52474 +37.7295 -1.4646 1.78329 +36.6106 -1.62481 1.97836 +38.2816 -1.91217 2.32825 +37.0584 -2.05774 2.50549 +35.237 -2.15342 2.62199 +32.0236 -2.13621 2.60103 +17.7849 -1.28607 1.56591 +19.1561 -1.49281 1.81764 +30.9331 -2.58467 3.14708 +36.838 -3.28587 4.00086 +41.9343 -3.97759 4.84309 +47.3103 -4.75576 5.79059 +54.9361 -5.83468 7.10426 +62.2398 -6.96532 8.48093 +115.729 -13.6132 16.5754 +117.697 -14.5201 17.6796 +118.767 -15.3359 18.6729 +119.041 -16.0592 19.5535 +119.01 -16.7453 20.389 +120.432 -17.6465 21.4863 +120.574 -18.3721 22.3698 +120.414 -19.0546 23.2007 +120.05 -19.7049 23.9925 +120.451 -20.484 24.9412 +120.743 -21.2521 25.8765 +120.542 -21.9375 26.711 +119.948 -22.5502 27.457 +120.494 -23.3807 28.4682 +119.978 -24.0091 29.2333 +120.499 -24.8492 30.2562 +120.153 -25.5156 31.0676 +120.648 -26.3661 32.1031 +120.847 -27.1603 33.0703 +120.469 -27.8287 33.884 +120.55 -28.606 34.8304 +119.965 -29.227 35.5867 +120.303 -30.0764 36.6209 +120.534 -30.9081 37.6334 +120.104 -31.5744 38.4448 +120.126 -32.3624 39.4043 +120.318 -33.2037 40.4286 +120.131 -33.9462 41.3327 +120.661 -34.8998 42.4937 +120.72 -35.7277 43.5018 +117.607 -35.6026 43.3494 +115.315 -35.6961 43.4633 +112.404 -35.5688 43.3083 +110.039 -35.5849 43.328 +106.885 -35.3138 42.9979 +104.806 -35.3682 43.0641 +102.909 -35.4627 43.1792 +100.581 -35.3852 43.0848 +98.0891 -35.2221 42.8862 +96.3886 -35.3198 43.0051 +94.6069 -35.3691 43.0651 +94.2884 -35.9571 43.7811 +93.4494 -36.3453 44.2537 +92.098 -36.5251 44.4727 +89.8212 -36.3177 44.2202 +88.2281 -36.3644 44.2771 +86.7241 -36.4313 44.3585 +84.8934 -36.3425 44.2503 +82.9895 -36.2001 44.077 +82.3248 -36.5855 44.5463 +80.109 -36.2662 44.1575 +79.2028 -36.522 44.4689 +77.2506 -36.2797 44.1739 +75.6308 -36.1714 44.0421 +73.7025 -35.8934 43.7036 +72.9698 -36.1831 44.0563 +71.3739 -36.0327 43.8732 +70.8757 -36.4266 44.3528 +68.5974 -35.8893 43.6986 +68.1014 -36.2678 44.1595 +66.3834 -35.9841 43.814 +65.2069 -35.9757 43.8038 +64.2604 -36.0831 43.9346 +63.1673 -36.0979 43.9526 +61.9313 -36.0176 43.8548 +60.8486 -36.013 43.8492 +59.6258 -35.9117 43.7259 +59.2017 -36.2847 44.18 +57.488 -35.855 43.6568 +56.9221 -36.1271 43.9881 +55.7924 -36.0336 43.8742 +55.2948 -36.3412 44.2488 +53.554 -35.8174 43.611 +53.1277 -36.1591 44.0271 +51.2097 -35.4693 43.1872 +50.1848 -35.3743 43.0715 +49.6965 -35.6509 43.4082 +48.5484 -35.4457 43.1585 +47.9942 -35.665 43.4255 +46.9878 -35.5405 43.2739 +45.7976 -35.2607 42.9332 +45.3111 -35.513 43.2404 +44.0118 -35.1169 42.7581 +44.0198 -35.7595 43.5405 +43.3438 -35.8508 43.6517 +42.9094 -36.1402 44.0041 +41.7566 -35.8153 43.6085 +41.3213 -36.0965 43.9509 +39.6039 -35.239 42.9067 +39.6341 -35.9249 43.7419 +38.6289 -35.6723 43.4343 +38.5843 -36.3058 44.2057 +37.6421 -36.0947 43.9487 +36.5997 -35.7695 43.5528 +35.623 -35.4891 43.2113 +35.5576 -36.1156 43.9742 +34.5894 -35.8242 43.6193 +34.147 -36.0688 43.9171 +33.2438 -35.8191 43.613 +32.7 -35.9469 43.7687 +31.6628 -35.519 43.2477 +31.2217 -35.7485 43.5271 +30.729 -35.92 43.736 +30.234 -36.0889 43.9415 +29.3672 -35.8046 43.5954 +28.8738 -35.9659 43.7918 +27.9766 -35.6132 43.3624 +27.5297 -35.8239 43.6189 +26.6486 -35.4594 43.1751 +26.2023 -35.6632 43.4232 +25.628 -35.6914 43.4576 +25.1363 -35.832 43.6288 +24.3636 -35.5625 43.3006 +23.9518 -35.8128 43.6055 +22.9993 -35.2405 42.9086 +22.9259 -36.0139 43.8503 +22.1 -35.608 43.3561 +21.6096 -35.7291 43.5035 +21.1175 -35.8474 43.6475 +20.6238 -35.963 43.7883 +19.8281 -35.5374 43.2701 +19.3387 -35.6458 43.4021 +18.8479 -35.7516 43.5309 +18.3247 -35.7943 43.5829 +17.6514 -35.5312 43.2626 +17.2792 -35.8704 43.6756 +16.9557 -36.3298 44.235 +16.3729 -36.2393 44.1248 +15.6602 -35.8394 43.6378 +15.2444 -36.1087 43.9657 +14.5471 -35.7002 43.4683 +14.0799 -35.8409 43.6397 +13.4931 -35.6707 43.4324 +13.1821 -36.2388 44.1241 +12.4453 -35.6288 43.3814 +12.0589 -36.0069 43.8417 +11.683 -36.4454 44.3757 +11.0669 -36.1349 43.9976 +10.4785 -35.8828 43.6907 +9.96741 -35.877 43.6836 +9.45723 -35.8682 43.6729 +8.97934 -35.9819 43.8113 +8.35123 -35.4653 43.1824 +8.01637 -36.2016 44.0788 +7.40084 -35.6783 43.4416 +6.8978 -35.6549 43.4132 +6.49786 -36.1962 44.0723 +5.99993 -36.2309 44.1145 +5.43445 -35.8205 43.6148 +5.00274 -36.2918 44.1887 +4.41725 -35.6221 43.3732 +3.92729 -35.6453 43.4014 +3.44314 -35.729 43.5034 +2.95175 -35.7467 43.5249 +2.41651 -35.1276 42.7712 +1.97182 -35.8374 43.6354 +1.47638 -35.7835 43.5698 +0.986061 -35.8538 43.6553 +0.493049 -35.8578 43.6603 +2.88658e-15 -35.8592 43.662 +-0.491304 -35.731 43.5058 +-0.984316 -35.7903 43.578 +-1.47376 -35.72 43.4925 +-1.99974 -36.3448 44.2532 +-2.4645 -35.8251 43.6204 +-2.95698 -35.8101 43.6021 +-3.49808 -36.2991 44.1976 +-4.02495 -36.5316 44.4806 +-4.47217 -36.0651 43.9126 +-5.0376 -36.5447 44.4966 +-5.44404 -35.8837 43.6917 +-6.04175 -36.4834 44.4219 +-6.44126 -35.8809 43.6884 +-6.95874 -35.9699 43.7967 +-7.45305 -35.93 43.7481 +-7.9607 -35.9502 43.7727 +-8.5286 -36.2186 44.0995 +-9.04191 -36.2327 44.1167 +-9.42422 -35.743 43.5205 +-10.0369 -36.127 43.988 +-10.3692 -35.5084 43.2348 +-11.0288 -36.0103 43.8459 +-11.344 -35.3881 43.0883 +-12.0797 -36.0689 43.9173 +-12.3803 -35.4429 43.1551 +-13.0472 -35.8678 43.6724 +-13.7032 -36.2261 44.1087 +-14.2008 -36.1489 44.0146 +-14.7223 -36.1303 43.992 +-15.4515 -36.5991 44.5629 +-15.7136 -35.9617 43.7868 +-16.4556 -36.4224 44.3476 +-16.9273 -36.269 44.1609 +-17.5131 -36.356 44.2668 +-18.0123 -36.2575 44.1469 +-18.5719 -36.2772 44.1708 +-19.1335 -36.2933 44.1905 +-19.5992 -36.1259 43.9867 +-20.1286 -36.0758 43.9257 +-20.6238 -35.963 43.7883 +-21.3977 -36.323 44.2266 +-22.2188 -36.7363 44.7299 +-22.4665 -36.1985 44.0751 +-23.2256 -36.4846 44.4234 +-23.7264 -36.3546 44.2651 +-24.2644 -36.2803 44.1746 +-24.7623 -36.1444 44.0092 +-25.5837 -36.4698 44.4054 +-26.1257 -36.3845 44.3015 +-26.6672 -36.2959 44.1936 +-27.2083 -36.2041 44.0819 +-28.1873 -36.6795 44.6608 +-28.6459 -36.4652 44.3998 +-29.1916 -36.3617 44.2738 +-29.6904 -36.1987 44.0752 +-30.5157 -36.4251 44.351 +-31.0153 -36.2547 44.1435 +-31.949 -36.5811 44.5409 +-32.4507 -36.4028 44.3238 +-33.4 -36.7164 44.7056 +-33.8021 -36.4206 44.3455 +-35.0741 -37.048 45.1094 +-35.3209 -36.5818 44.5418 +-36.1405 -36.7077 44.6951 +-36.5364 -36.3991 44.3193 +-37.5256 -36.6744 44.6545 +-37.9733 -36.4122 44.3353 +-39.0317 -36.7267 44.7182 +-39.0254 -36.0384 43.8801 +-40.4945 -36.7047 44.6914 +-41.1138 -36.5824 44.5425 +-41.5564 -36.3019 44.201 +-42.6488 -36.5805 44.5402 +-43.5714 -36.6978 44.6829 +-44.0743 -36.4551 44.3874 +-45.1896 -36.7097 44.6975 +-45.6926 -36.458 44.391 +-47.262 -37.0421 45.1022 +-47.197 -36.3381 44.245 +-48.4019 -36.6101 44.5762 +-49.4879 -36.775 44.777 +-49.9917 -36.4996 44.4416 +-51.2868 -36.7917 44.7973 +-52.326 -36.8835 44.9091 +-52.8312 -36.5923 44.5546 +-54.3553 -36.9946 45.0444 +-54.9995 -36.7842 44.7882 +-56.1284 -36.8891 44.9159 +-56.7036 -36.6221 44.5908 +-58.4777 -37.1144 45.1903 +-58.9145 -36.7447 44.7401 +-60.7123 -37.2106 45.3073 +-61.3667 -36.9603 45.0026 +-63.4084 -37.528 45.6938 +-64.5855 -37.5612 45.7343 +-66.5115 -38.009 46.2795 +-66.8069 -37.513 45.6756 +-68.3767 -37.7245 45.9331 +-69.5771 -37.7153 45.9219 +-71.4719 -38.0629 46.3451 +-71.7611 -37.5445 45.7139 +-74.1397 -38.1042 46.3954 +-75.3652 -38.0477 46.3266 +-77.2251 -38.2931 46.6254 +-77.7486 -37.8639 46.1028 +-80.183 -38.3486 46.6929 +-81.0288 -38.054 46.3343 +-82.7624 -38.1634 46.4674 +-83.6911 -37.8878 46.132 +-85.7652 -38.1145 46.408 +-87.687 -38.2492 46.5719 +-88.8728 -38.046 46.3246 +-90.6434 -38.0778 46.3633 +-93.0924 -38.3693 46.7182 +-94.5442 -38.2274 46.5454 +-97.3559 -38.6104 47.0117 +-98.3947 -38.2686 46.5956 +-102.174 -38.9644 47.4428 +-103.223 -38.5903 46.9873 +-105.135 -38.5249 46.9076 +-106.967 -38.4099 46.7677 +-109.59 -38.5544 46.9436 +-111.522 -38.4306 46.7928 +-115.313 -38.9139 47.3813 +-114.602 -37.8635 46.1023 +-112.712 -36.4493 44.3805 +-114.194 -36.1352 43.998 +-117.472 -36.3639 44.2764 +-113.004 -34.2091 41.6527 +-111.113 -32.8845 40.0399 +-109.104 -31.5572 38.4238 +-109.717 -31.0034 37.7495 +-108.305 -29.8884 36.3919 +-107.791 -29.0394 35.3581 +-106.8 -28.0769 34.1863 +-105.514 -27.0564 32.9437 +-104.579 -26.1453 31.8344 +-66.4709 -16.1943 19.718 +-45.0539 -10.6911 13.0174 +-41.1585 -9.50777 11.5766 +-36.6688 -8.24134 10.0346 +-35.1733 -7.68663 9.35919 +-22.0959 -4.69229 5.7133 +-18.8309 -3.88329 4.72827 +-16.5947 -3.32081 4.04339 +-17.2135 -3.34011 4.06689 +-16.4917 -3.10043 3.77507 +-15.9569 -2.90401 3.53591 +-17.1526 -3.01905 3.67598 +-15.2616 -2.59541 3.16015 +-14.9095 -2.44722 2.97972 +-15.4277 -2.44132 2.97254 +-14.0021 -2.13354 2.59778 +-14.0309 -2.05591 2.50326 +-14.0587 -1.97812 2.40854 +-13.5963 -1.8342 2.2333 +-14.7969 -1.91067 2.32642 +-14.9207 -1.84075 2.24129 +-14.4538 -1.70021 2.07016 +-14.5752 -1.63111 1.98603 +-14.2025 -1.50843 1.83665 +-14.4202 -1.44956 1.76498 +-14.2418 -1.35088 1.64483 +-14.1608 -1.26312 1.53797 +-14.5742 -1.21778 1.48276 +-14.1934 -1.10607 1.34674 +-14.1087 -1.02024 1.24223 +-14.6195 -0.975225 1.18743 +-14.6323 -0.894215 1.08879 +-13.9467 -0.77442 0.942928 +-13.1593 -0.657309 0.800335 +-13.4671 -0.597683 0.727734 +-12.7761 -0.49595 0.603865 +-13.1819 -0.438457 0.533862 +-11.9886 -0.332211 0.404497 +-11.8928 -0.263584 0.320938 +-10.8963 -0.181092 0.220496 +-12.1981 -0.135135 0.164539 +-11.0996 -0.0614776 0.0748547 +11.9 -8.88178e-16 2.84217e-14 +11.2996 -0.0618952 0.0767652 +12.898 -0.141313 0.175262 +12.6956 -0.20867 0.258801 +33.2797 -0.729456 0.904703 +34.667 -0.950047 1.17829 +41.7427 -1.37313 1.70302 +40.7239 -1.56341 1.93901 +40.3016 -1.7689 2.19386 +38.7801 -1.91571 2.37595 +28.1923 -1.54817 1.92011 +31.1559 -1.88301 2.3354 +27.2499 -1.79772 2.22961 +18.7785 -1.34294 1.66557 +19.7517 -1.52224 1.88795 +32.8168 -2.71183 3.36333 +39.7097 -3.50297 4.34453 +42.9233 -4.02651 4.99385 +49.3844 -4.90952 6.089 +56.7114 -5.95681 7.3879 +61.452 -6.80127 8.43522 +116.614 -13.5661 16.8252 +118.482 -14.4558 17.9287 +118.963 -15.1919 18.8416 +119.627 -15.9603 19.7947 +119.303 -16.6014 20.5898 +119.848 -17.3672 21.5396 +119.796 -18.0523 22.3893 +120.414 -18.8445 23.3717 +120.05 -19.4876 24.1693 +120.548 -20.2744 25.1452 +120.068 -20.9004 25.9215 +120.542 -21.6956 26.9078 +120.044 -22.3194 27.6815 +121.355 -23.2881 28.8829 +120.645 -23.8764 29.6126 +120.689 -24.6139 30.5273 +121.006 -25.4135 31.5189 +120.648 -26.0753 32.3397 +120.941 -26.8818 33.34 +120.563 -27.5433 34.1603 +120.55 -28.2905 35.0871 +120.152 -28.9498 35.9047 +120.396 -29.7678 36.9193 +119.978 -30.4261 37.7358 +120.289 -31.2743 38.7877 +121.046 -32.2508 39.9988 +120.685 -32.9376 40.8507 +120.588 -33.6995 41.7956 +120.115 -34.3588 42.6132 +119.905 -35.095 43.5263 +117.426 -35.1559 43.6019 +114.237 -34.9723 43.3742 +112.135 -35.0926 43.5233 +109.416 -34.993 43.3999 +106.974 -34.9534 43.3508 +104.011 -34.713 43.0525 +102.646 -34.9818 43.3859 +99.6192 -34.6602 42.9871 +97.3928 -34.5864 42.8956 +95.436 -34.585 42.8939 +94.5207 -34.9472 43.3431 +94.0313 -35.4636 43.9835 +94.0462 -36.1741 44.8647 +92.8613 -36.4218 45.1718 +90.1585 -36.0521 44.7134 +89.6539 -36.5446 45.3242 +87.4746 -36.3414 45.0722 +86.137 -36.4681 45.2294 +83.6488 -36.0853 44.7546 +82.5705 -36.2901 45.0086 +80.8417 -36.1943 44.8897 +79.9309 -36.4513 45.2084 +77.8133 -36.1409 44.8236 +77.4676 -36.6414 45.4442 +75.1306 -36.1854 44.8787 +74.6246 -36.5956 45.3874 +72.4695 -36.1824 44.875 +71.5751 -36.3805 45.1206 +69.6777 -36.0525 44.7139 +69.1738 -36.4327 45.1855 +67.1438 -35.995 44.6426 +66.8673 -36.4849 45.2502 +65.0094 -36.1011 44.7742 +63.8361 -36.0779 44.7453 +62.6686 -36.0445 44.704 +62.1651 -36.3864 45.128 +60.3511 -35.9478 44.584 +59.8491 -36.277 44.9923 +58.0586 -35.8115 44.415 +57.6292 -36.1726 44.8628 +56.4933 -36.0839 44.7529 +55.2948 -35.9405 44.5749 +54.1735 -35.8322 44.4407 +53.1277 -35.7604 44.3516 +51.7502 -35.4484 43.9646 +51.2554 -35.7305 44.3145 +50.2266 -35.6338 44.1945 +49.7949 -35.955 44.5929 +48.7086 -35.7967 44.3966 +48.2733 -36.1102 44.7855 +46.9426 -35.7437 44.3309 +46.0033 -35.658 44.2246 +44.9456 -35.4665 43.9871 +44.5739 -35.8103 44.4135 +42.8568 -35.0571 43.4794 +42.8492 -35.6915 44.2662 +42.2919 -35.8744 44.493 +41.674 -36.0032 44.6527 +40.7073 -35.8213 44.4271 +40.2077 -36.0429 44.702 +39.1387 -35.7444 44.3318 +38.6402 -35.9575 44.596 +37.6421 -35.6967 44.2726 +37.0899 -35.8489 44.4613 +36.1065 -35.5742 44.1207 +36.1405 -36.3029 45.0245 +35.1119 -35.9643 44.6045 +34.5591 -36.1015 44.7746 +33.6498 -35.8567 44.4711 +33.15 -36.0397 44.698 +32.2045 -35.7282 44.3117 +31.755 -35.9582 44.5969 +30.7767 -35.5791 44.1267 +30.2809 -35.7463 44.3341 +29.829 -35.9665 44.6072 +29.2824 -36.0726 44.7388 +28.3782 -35.726 44.309 +27.8366 -35.8237 44.4301 +26.993 -35.5216 44.0554 +26.8785 -36.1801 44.8721 +26.0427 -35.869 44.4863 +25.5431 -36.0103 44.6616 +24.4433 -35.2854 43.7625 +24.577 -36.3424 45.0734 +23.4202 -35.4898 44.016 +23.338 -36.2569 44.9674 +22.4665 -35.7994 44.3999 +21.968 -35.9211 44.5509 +21.1175 -35.4521 43.9692 +20.9658 -36.1562 44.8425 +20.1286 -35.678 44.2494 +19.6318 -35.7869 44.3845 +19.1335 -35.8931 44.5161 +18.5719 -35.8771 44.4964 +18.0724 -35.9775 44.6208 +17.5715 -36.0751 44.7419 +17.0409 -36.1098 44.7849 +16.5658 -36.2621 44.9738 +15.9274 -36.049 44.7096 +15.3997 -36.0743 44.7409 +14.7223 -35.7319 44.3162 +14.4669 -36.4202 45.1699 +13.7032 -35.8267 44.4338 +13.2271 -35.9615 44.6011 +12.6184 -35.7262 44.3092 +12.4331 -36.7149 45.5354 +11.8624 -36.5971 45.3893 +11.2577 -36.3526 45.0861 +10.6243 -35.9809 44.625 +10.2452 -36.4704 45.2322 +9.62228 -36.0918 44.7626 +9.12013 -36.1431 44.8262 +8.61729 -36.1917 44.8865 +8.11379 -36.2375 44.9433 +7.47915 -35.6583 44.2249 +7.0928 -36.2586 44.9694 +6.50918 -35.8595 44.4745 +6.09401 -36.3931 45.1363 +5.51113 -35.9253 44.5561 +5.07246 -36.3918 45.1347 +4.50355 -35.9177 44.5467 +4.05285 -36.3793 45.1191 +3.49198 -35.8362 44.4456 +2.99885 -35.9167 44.5454 +2.49503 -35.869 44.4863 +1.99625 -35.8813 44.5016 +1.49732 -35.8909 44.5134 +1.00177 -36.0232 44.6776 +0.493049 -35.4624 43.982 +1.9984e-15 -35.9659 44.6065 +-0.50003 -35.9646 44.6048 +-0.998278 -35.8977 44.5219 +-1.49732 -35.8909 44.5134 +-1.99974 -35.944 44.5793 +-2.46886 -35.4927 44.0196 +-3.05119 -36.5435 45.3228 +-3.49198 -35.8362 44.4456 +-4.03192 -36.1914 44.8861 +-4.55063 -36.2931 45.0123 +-5.11604 -36.7045 45.5225 +-5.5303 -36.0503 44.7111 +-6.12537 -36.5804 45.3686 +-6.54315 -36.0466 44.7066 +-7.15373 -36.5701 45.3558 +-7.55747 -36.0317 44.688 +-8.16946 -36.4861 45.2516 +-8.67641 -36.44 45.1944 +-9.19835 -36.4531 45.2107 +-9.57276 -35.9061 44.5323 +-10.1931 -36.2849 45.0021 +-10.5332 -35.6722 44.2423 +-11.2196 -36.2294 44.9332 +-11.5434 -35.6129 44.1687 +-12.246 -36.1623 44.8501 +-12.5319 -35.4811 44.0051 +-13.2496 -36.0227 44.6769 +-13.7266 -35.8877 44.5095 +-14.4427 -36.3593 45.0944 +-14.7223 -35.7319 44.3162 +-15.4774 -36.2562 44.9665 +-15.9274 -36.049 44.7096 +-16.5107 -36.1414 44.8242 +-16.9841 -35.9894 44.6356 +-17.747 -36.4353 45.1886 +-18.0123 -35.8577 44.4723 +-18.85 -36.4144 45.1627 +-19.3873 -36.3693 45.1068 +-20.1852 -36.7959 45.6358 +-20.4624 -36.2697 44.9832 +-21.2052 -36.5691 45.3546 +-21.4677 -36.04 44.6984 +-22.2546 -36.3898 45.1322 +-22.7231 -36.2082 44.9069 +-23.6002 -36.6643 45.4726 +-23.9943 -36.3596 45.0948 +-24.5379 -36.2846 45.0017 +-25.0813 -36.2064 44.9047 +-26.1125 -36.8131 45.6571 +-26.6233 -36.6686 45.478 +-27.1744 -36.5783 45.366 +-27.7249 -36.4847 45.2499 +-28.538 -36.7264 45.5496 +-28.6905 -36.1193 44.7967 +-29.9634 -36.9115 45.7792 +-29.9675 -36.1335 44.8144 +-30.9382 -36.5222 45.2964 +-31.3493 -36.241 44.9477 +-32.3853 -36.6718 45.482 +-32.7954 -36.3838 45.1247 +-33.75 -36.692 45.507 +-34.0558 -36.2894 45.0077 +-35.1771 -36.7471 45.5753 +-35.6344 -36.4995 45.2683 +-36.5114 -36.6755 45.4866 +-37.0199 -36.4742 45.2368 +-37.9613 -36.6911 45.5059 +-38.5252 -36.5341 45.3112 +-39.479 -36.738 45.5641 +-40.1016 -36.6238 45.4224 +-41.1254 -36.8655 45.7222 +-41.5783 -36.5878 45.3778 +-42.5557 -36.7648 45.5974 +-43.0057 -36.4799 45.244 +-44.113 -36.7443 45.5718 +-45.1701 -36.9494 45.8262 +-45.7436 -36.75 45.579 +-46.1283 -36.3999 45.1447 +-47.3878 -36.7311 45.5556 +-48.4056 -36.8576 45.7124 +-49.7518 -37.2161 46.1571 +-50.2673 -36.9422 45.8174 +-51.435 -37.1392 46.0616 +-51.9494 -36.856 45.7105 +-52.9282 -36.8967 45.7608 +-53.3716 -36.559 45.3421 +-55.1055 -37.0916 46.0026 +-55.619 -36.7883 45.6265 +-57.3788 -37.295 46.2549 +-57.1942 -36.5316 45.3081 +-59.6091 -37.4153 46.4041 +-60.127 -37.0874 45.9974 +-62.4387 -37.8466 46.9391 +-62.6723 -37.3304 46.2988 +-64.7979 -37.9275 47.0393 +-65.9863 -37.9527 47.0706 +-67.106 -37.9259 47.0373 +-67.8554 -37.6816 46.7344 +-69.7352 -38.0498 47.191 +-70.2615 -37.6663 46.7154 +-72.8508 -38.3694 47.5874 +-73.3815 -37.9689 47.0906 +-75.4609 -38.3555 47.5702 +-75.9913 -37.9407 47.0557 +-78.4071 -38.4505 47.6879 +-78.9387 -38.0196 47.1535 +-80.8219 -38.2279 47.4119 +-81.5915 -37.8957 46.9999 +-84.3805 -38.4804 47.7251 +-85.5635 -38.3084 47.5117 +-87.6493 -38.5223 47.777 +-88.0991 -38.0051 47.1356 +-91.277 -38.6443 47.9283 +-91.8108 -38.1429 47.3065 +-95.0214 -38.7325 48.0377 +-96.3153 -38.5141 47.7668 +-99.3064 -38.9496 48.307 +-100.612 -38.6993 47.9966 +-104.06 -39.2459 48.6745 +-105.463 -38.993 48.3609 +-107.474 -38.9474 48.3043 +-108.272 -38.45 47.6873 +-110.989 -38.6162 47.8935 +-113.192 -38.5758 47.8434 +-116.637 -38.9268 48.2787 +-117.972 -38.5473 47.8081 +-118.682 -37.9566 47.0754 +-115.805 -36.2409 44.9475 +-122.685 -37.5588 46.582 +-117.336 -35.1289 43.5683 +-112.11 -32.8137 40.6969 +-109.741 -31.3914 38.933 +-109.443 -30.5849 37.9327 +-108.947 -29.734 36.8774 +-108.251 -28.8418 35.7708 +-107.632 -27.9835 34.7064 +-107.831 -27.3459 33.9155 +-3048.51 -753.741 934.822 +-61.1495 -14.7335 18.2732 +-51.1423 -12.002 14.8854 +-47.2665 -10.7983 13.3925 +-37.8942 -8.42281 10.4463 +-36.2134 -7.8267 9.70702 +-33.5707 -7.05045 8.74428 +-32.8114 -6.69174 8.29938 +-16.3086 -3.22756 4.00296 +-17.5004 -3.35833 4.16514 +-15.9164 -2.95928 3.67023 +-16.0531 -2.88929 3.58342 +-15.129 -2.63351 3.26619 +-15.9378 -2.6805 3.32448 +-15.0063 -2.43595 3.02117 +-15.5247 -2.42958 3.01328 +-13.5159 -2.03675 2.52606 +-14.1284 -2.04735 2.53922 +-14.9373 -2.07857 2.57794 +-13.7919 -1.84007 2.28213 +-13.523 -1.72692 2.1418 +-14.4299 -1.76057 2.18353 +-13.9622 -1.62427 2.01449 +-14.4767 -1.60223 1.98715 +-14.1039 -1.48143 1.83734 +-13.9264 -1.38449 1.7171 +-14.7363 -1.38237 1.71448 +-14.2599 -1.25792 1.56013 +-14.5742 -1.20435 1.49369 +-14.4912 -1.11682 1.38513 +-14.1087 -1.00899 1.25139 +-14.2217 -0.938228 1.16363 +-13.7365 -0.830211 1.02966 +-14.0463 -0.771353 0.956666 +-14.2559 -0.704236 0.873424 +-13.2676 -0.582335 0.722237 +-12.2771 -0.471321 0.584553 +-13.1819 -0.433622 0.537797 +-11.9886 -0.328547 0.407479 +-12.5923 -0.276011 0.342321 +-12.0959 -0.198811 0.246574 +-12.5981 -0.138026 0.171186 +-11.5996 -0.0635386 0.0788033 +12.5 4.44089e-16 5.68434e-14 +12.1995 -0.0660745 0.083479 +18.9971 -0.205798 0.260006 +29.29 -0.476012 0.601397 +37.0774 -0.80357 1.01524 +39.5623 -1.07203 1.35441 +43.3405 -1.40968 1.781 +41.3228 -1.56858 1.98176 +42.3965 -1.83994 2.3246 +39.3782 -1.92341 2.43004 +21.3186 -1.15755 1.46246 +23.4914 -1.40384 1.77361 +18.0008 -1.17421 1.4835 +19.474 -1.37704 1.73976 +19.7517 -1.50515 1.90161 +35.2954 -2.88389 3.64353 +41.5913 -3.62774 4.58331 +45.6925 -4.23814 5.35449 +49.3844 -4.85438 6.13305 +52.9635 -5.50066 6.94957 +63.4216 -6.94042 8.76857 +116.614 -13.4137 16.9469 +119.464 -14.4119 18.2081 +119.845 -15.1326 19.1186 +120.41 -15.8843 20.0683 +120.182 -16.5358 20.8915 +120.335 -17.242 21.7836 +120.088 -17.893 22.6061 +120.511 -18.6478 23.5598 +120.244 -19.2998 24.3835 +120.548 -20.0467 25.3271 +120.936 -20.8149 26.2976 +120.542 -21.4519 27.1025 +121.003 -22.245 28.1044 +120.59 -22.8814 28.9085 +121.027 -23.6829 29.9211 +120.499 -24.2991 30.6997 +121.006 -25.128 31.7469 +120.648 -25.7824 32.5737 +121.224 -26.6421 33.6598 +120.563 -27.2339 34.4075 +120.643 -27.9945 35.3684 +120.339 -28.669 36.2206 +120.396 -29.4335 37.1864 +120.719 -30.2704 38.2438 +120.382 -30.9468 39.0984 +120.218 -31.6703 40.0125 +120.593 -32.5429 41.115 +121.045 -33.4472 42.2575 +121.571 -34.3846 43.4418 +118.726 -34.3598 43.4104 +115.982 -34.3336 43.3773 +113.518 -34.3619 43.413 +110.972 -34.3384 43.3834 +108.168 -34.2055 43.2155 +105.466 -34.0736 43.0489 +103.393 -34.1191 43.1063 +101.591 -34.2336 43.2509 +98.4822 -33.8798 42.804 +96.8706 -34.0146 42.9742 +95.869 -34.3518 43.4002 +95.727 -34.9957 44.2137 +95.0599 -35.4488 44.7863 +94.4725 -35.9299 45.394 +94.3878 -36.6046 46.2465 +91.8453 -36.3141 45.8795 +91.1635 -36.7426 46.4208 +87.7248 -36.036 45.5281 +87.9609 -36.8221 46.5213 +85.7091 -36.5588 46.1887 +84.3727 -36.6657 46.3237 +82.6327 -36.5807 46.2163 +81.7916 -36.8809 46.5955 +80.1445 -36.8056 46.5004 +78.9052 -36.9021 46.6223 +76.4793 -36.4213 46.0149 +76.437 -37.0634 46.8261 +73.8782 -36.4714 46.0783 +73.3626 -36.8701 46.582 +70.3722 -36.0028 45.4862 +70.5527 -36.7416 46.4196 +69.1209 -36.6386 46.2895 +68.1503 -36.7673 46.452 +66.3575 -36.4359 46.0333 +65.8426 -36.7939 46.4857 +63.3321 -36.017 45.5041 +62.8233 -36.3587 45.9358 +61.004 -35.9285 45.3923 +61.2158 -36.6887 46.3527 +59.3424 -36.1923 45.7256 +58.902 -36.5562 46.1854 +57.1241 -36.077 45.58 +56.6147 -36.3851 45.9691 +54.8619 -35.8799 45.3309 +55.0373 -36.6296 46.278 +53.2365 -36.0569 45.5546 +52.7275 -36.3438 45.917 +50.7567 -35.6054 44.9841 +51.107 -36.4879 46.099 +49.2282 -35.7722 45.1949 +48.7876 -36.085 45.5901 +47.6423 -35.869 45.3171 +47.0732 -36.0774 45.5804 +46.0661 -35.9424 45.4099 +45.4974 -36.1416 45.6616 +44.1352 -35.6973 45.1002 +43.451 -35.7863 45.2127 +42.7678 -35.8706 45.3192 +42.2618 -36.1009 45.6101 +41.2299 -35.8737 45.323 +41.2401 -36.5531 46.1814 +40.1582 -36.2636 45.8157 +39.6468 -36.4798 46.0888 +38.6908 -36.2791 45.8352 +38.1247 -36.4351 46.0324 +37.0737 -36.1168 45.6302 +36.5644 -36.3162 45.8822 +35.6344 -36.0896 45.5958 +35.4861 -36.6535 46.3083 +34.0558 -35.8818 45.3333 +34.05 -36.6023 46.2436 +32.6477 -35.8131 45.2465 +32.5307 -36.4228 46.0168 +31.6356 -36.1613 45.6864 +31.126 -36.3312 45.9011 +30.1984 -36.0029 45.4863 +29.691 -36.1651 45.6912 +28.7798 -35.8247 45.2611 +28.2311 -35.9234 45.3858 +27.3375 -35.5708 44.9404 +27.3011 -36.3362 45.9074 +26.3745 -35.9179 45.3789 +25.8685 -36.0594 45.5577 +25.0016 -35.6859 45.0858 +24.9286 -36.4484 46.0491 +24.0708 -36.0659 45.5659 +23.5628 -36.195 45.7289 +22.7597 -35.8592 45.3047 +22.2546 -35.9811 45.4587 +21.7829 -36.1584 45.6828 +21.2737 -36.275 45.8301 +20.4624 -35.8623 45.3087 +20.2503 -36.4999 46.1142 +19.419 -36.0196 45.5074 +18.8809 -36.0644 45.564 +18.3431 -36.1061 45.6167 +17.6885 -35.9073 45.3655 +17.1545 -35.9422 45.4097 +17.0068 -36.8093 46.5051 +16.1145 -36.0628 45.5619 +15.6586 -36.2686 45.8219 +14.9226 -35.8112 45.2441 +14.6363 -36.4327 46.0293 +13.96 -36.0881 45.5939 +13.4521 -36.1623 45.6877 +12.7916 -35.8097 45.2422 +12.4331 -36.3025 45.8648 +11.8823 -36.2468 45.7945 +11.4104 -36.4317 46.028 +10.7701 -36.0649 45.5647 +10.4015 -36.6108 46.2544 +9.75431 -36.1761 45.7051 +9.24528 -36.2275 45.7701 +8.64685 -35.9079 45.3663 +8.22513 -36.3221 45.8896 +7.72715 -36.4268 46.0219 +7.21467 -36.4673 46.073 +6.67899 -36.3816 45.9648 +6.19854 -36.6016 46.2427 +5.59739 -36.0778 45.5809 +5.1509 -36.5395 46.1643 +4.50355 -35.5143 44.8689 +4.10866 -36.4659 46.0713 +3.60186 -36.5488 46.176 +3.03549 -35.9471 45.4158 +2.53429 -36.0242 45.5132 +2.02417 -35.9745 45.4504 +1.5235 -36.1082 45.6193 +1.01748 -36.1771 45.7064 +0.501776 -35.6847 45.0843 +1.44329e-15 -36.1826 45.7133 +-0.502648 -35.7468 45.1627 +-1.03144 -36.6735 46.3336 +-1.52088 -36.0461 45.5409 +-2.06605 -36.7188 46.3907 +-2.57354 -36.5822 46.2181 +-3.09829 -36.6908 46.3554 +-3.60186 -36.5488 46.176 +-4.09471 -36.3421 45.9149 +-4.62124 -36.4423 46.0414 +-5.21191 -36.9723 46.711 +-5.62615 -36.2632 45.8151 +-6.21944 -36.7251 46.3987 +-6.74691 -36.7517 46.4323 +-7.25123 -36.6521 46.3065 +-7.66189 -36.1192 45.6332 +-8.2808 -36.568 46.2003 +-8.67641 -36.0307 45.5214 +-9.35478 -36.6566 46.3122 +-9.7213 -36.0536 45.5504 +-10.3494 -36.4274 46.0227 +-10.6972 -35.8208 45.2563 +-11.3722 -36.3098 45.8741 +-11.7627 -35.882 45.3335 +-12.4123 -36.2418 45.7881 +-12.9431 -36.2338 45.778 +-13.4071 -36.0414 45.535 +-13.9367 -36.0278 45.5177 +-14.6605 -36.4929 46.1053 +-14.9226 -35.8112 45.2441 +-15.6844 -36.3285 45.8977 +-16.1946 -36.2422 45.7886 +-16.7312 -36.2128 45.7514 +-17.2965 -36.2398 45.7856 +-18.0686 -36.6789 46.3403 +-18.6137 -36.6388 46.2897 +-19.0973 -36.4776 46.086 +-19.6094 -36.3728 45.9536 +-20.2503 -36.4999 46.1142 +-20.696 -36.2719 45.8261 +-21.5815 -36.7999 46.4932 +-21.993 -36.5072 46.1234 +-22.828 -36.9082 46.63 +-23.1262 -36.4366 46.0343 +-23.8999 -36.7128 46.3832 +-24.3387 -36.4673 46.073 +-25.3585 -37.0768 46.8431 +-25.8788 -36.938 46.6677 +-26.3972 -36.7965 46.4889 +-26.6648 -36.3132 45.8784 +-27.5124 -36.6174 46.2627 +-28.1124 -36.5791 46.2142 +-29.064 -36.9832 46.7248 +-29.4491 -36.6578 46.3137 +-30.4174 -37.0499 46.809 +-30.4292 -36.2782 45.8341 +-31.7363 -37.0436 46.8011 +-31.7788 -36.3249 45.8931 +-32.8216 -36.7485 46.4283 +-33.2386 -36.4613 46.0654 +-34.5 -37.0861 46.8548 +-35.0201 -36.8978 46.6169 +-36.0527 -37.2387 47.0476 +-36.4704 -36.9362 46.6655 +-36.9884 -36.7373 46.4142 +-38.0408 -37.059 46.8206 +-38.8328 -37.1118 46.8873 +-39.0771 -36.6413 46.2929 +-40.5974 -37.3544 47.1938 +-40.498 -36.5705 46.2034 +-41.9858 -37.214 47.0164 +-41.9848 -36.5305 46.1529 +-43.1434 -36.854 46.5616 +-43.66 -36.619 46.2646 +-45.1963 -37.2237 47.0287 +-45.718 -36.9775 46.7176 +-46.7903 -37.1687 46.9591 +-47.3111 -36.9138 46.6372 +-48.3947 -37.0903 46.8601 +-49.1688 -37.0183 46.7692 +-50.9088 -37.6539 47.5722 +-50.8518 -36.9521 46.6855 +-52.4847 -37.4715 47.3418 +-53.0759 -37.2323 47.0396 +-54.1996 -37.3585 47.199 +-54.6552 -37.0178 46.7685 +-56.2649 -37.4466 47.3103 +-56.8581 -37.1855 46.9804 +-58.004 -37.278 47.0972 +-58.5259 -36.9624 46.6985 +-60.8819 -37.785 47.7378 +-61.2682 -37.3668 47.2095 +-63.0861 -37.8096 47.7689 +-64.0506 -37.7228 47.6593 +-66.2606 -38.348 48.4492 +-66.5761 -37.8619 47.835 +-68.6666 -38.372 48.4794 +-68.9788 -37.8752 47.8518 +-71.3201 -38.4774 48.6126 +-71.8584 -38.0897 48.1227 +-74.3829 -38.7363 48.9397 +-74.9247 -38.332 48.4288 +-76.8597 -38.6278 48.8026 +-77.3999 -38.21 48.2748 +-79.7467 -38.6682 48.8536 +-80.2874 -38.2348 48.3061 +-82.5789 -38.6202 48.7931 +-83.8423 -38.5038 48.6459 +-86.1603 -38.8507 49.0843 +-87.0289 -38.5268 48.675 +-89.5333 -38.9083 49.157 +-89.5825 -38.2111 48.2761 +-93.1838 -39.0085 49.2836 +-93.4786 -38.3995 48.5142 +-97.4535 -39.2777 49.6237 +-97.4961 -38.5483 48.7022 +-101.087 -39.2028 49.5291 +-102.402 -38.9457 49.2043 +-105.089 -39.1887 49.5113 +-107.359 -39.2481 49.5863 +-110.158 -39.4719 49.8691 +-110.187 -38.6904 48.8817 +-113.875 -39.1754 49.4944 +-116.004 -39.0902 49.3869 +-118.756 -39.1889 49.5115 +-120.545 -38.9454 49.2039 +-125.008 -39.5308 49.9435 +-124.038 -38.3815 48.4914 +-131.763 -39.8848 50.3907 +-132.048 -39.0895 49.3859 +-115.645 -33.468 42.2837 +-110.742 -31.322 39.5724 +-110.356 -30.4938 38.5261 +-109.222 -29.4742 37.2379 +-108.159 -28.4936 35.999 +-107.54 -27.6455 34.9275 +-107.831 -27.0387 34.1609 +-107.835 -26.3627 33.3068 +-107.642 -25.6442 32.3991 +-70.9061 -16.4533 20.7872 +-69.8192 -15.7715 19.9258 +-43.3615 -9.5298 12.04 +-39.4281 -8.42577 10.6452 +-35.2776 -7.32571 9.25534 +-34.5234 -6.96177 8.79554 +-30.7097 -6.00937 7.59228 +-28.7848 -5.46177 6.90043 +-16.7793 -3.08469 3.89721 +-15.7647 -2.80552 3.54451 +-16.0926 -2.76979 3.49937 +-16.0344 -2.66647 3.36883 +-16.1681 -2.59506 3.27862 +-15.3307 -2.37227 2.99714 +-15.4607 -2.30363 2.91043 +-15.7848 -2.2617 2.85744 +-13.5705 -1.86717 2.35899 +-14.77 -1.94844 2.46167 +-13.9149 -1.75701 2.21982 +-14.9207 -1.80001 2.27414 +-13.8639 -1.59472 2.01477 +-14.3782 -1.57345 1.98791 +-14.1039 -1.46479 1.85063 +-15.1116 -1.48544 1.87672 +-14.7363 -1.36685 1.72688 +-14.2599 -1.24379 1.57142 +-15.07 -1.23133 1.55566 +-14.5904 -1.11184 1.40471 +-14.6055 -1.03278 1.30482 +-14.3211 -0.934175 1.18024 +-14.8314 -0.886319 1.11978 +-14.7437 -0.800548 1.01142 +-13.8572 -0.676844 0.85513 +-13.5669 -0.588782 0.743871 +-14.1735 -0.538015 0.679732 +-12.8823 -0.419007 0.529376 +-11.7888 -0.319443 0.403586 +-11.9927 -0.259915 0.328379 +-11.8959 -0.193329 0.244253 +-12.6981 -0.13756 0.173794 +-11.3996 -0.0617416 0.0780048 +12.3 1.33227e-15 5.68434e-14 +13.9995 -0.0749553 0.0964752 +31.5952 -0.338358 0.435502 +34.888 -0.560503 0.721426 +38.2767 -0.820071 1.05552 +42.6594 -1.14273 1.47081 +41.7427 -1.34218 1.72752 +42.5205 -1.59558 2.05368 +42.596 -1.82745 2.35212 +28.0134 -1.35264 1.74099 +24.2075 -1.29938 1.67243 +18.4148 -1.08788 1.40021 +17.9014 -1.15436 1.48578 +18.8779 -1.31961 1.69848 +20.0494 -1.51036 1.94399 +36.386 -2.93899 3.78278 +41.2942 -3.56062 4.58289 +45.0991 -4.13524 5.32249 +49.6807 -4.82763 6.21366 +54.5416 -5.59974 7.20745 +74.4515 -8.05427 10.3667 +117.696 -13.3832 17.2256 +119.562 -14.2587 18.3524 +119.551 -14.9228 19.2071 +120.508 -15.7153 20.2272 +120.28 -16.36 21.057 +120.335 -17.0447 21.9383 +120.088 -17.6883 22.7667 +120.414 -18.4196 23.708 +121.018 -19.2019 24.7148 +120.644 -19.8332 25.5274 +120.936 -20.5767 26.4844 +120.446 -21.1896 27.2733 +121.099 -22.0079 28.3265 +120.59 -22.6196 29.1138 +120.836 -23.375 30.0861 +120.404 -24.0022 30.8933 +120.911 -24.8211 31.9473 +120.648 -25.4875 32.805 +120.093 -26.0915 33.5824 +120.375 -26.8804 34.5978 +120.831 -27.7172 35.6749 +120.339 -28.341 36.4779 +120.582 -29.1417 37.5084 +120.812 -29.947 38.5449 +120.382 -30.5927 39.376 +120.954 -31.4998 40.5435 +120.96 -32.2685 41.5329 +121.502 -33.1894 42.7182 +120.934 -33.8132 43.521 +117.548 -33.6296 43.2848 +114.899 -33.6238 43.2773 +111.81 -33.4577 43.0636 +110.524 -33.8087 43.5153 +107.099 -33.48 43.0922 +105.111 -33.5705 43.2087 +102.422 -33.4119 43.0046 +100.537 -33.4906 43.1059 +97.7825 -33.2542 42.8016 +95.9132 -33.2931 42.8517 +96.4752 -34.1735 43.9848 +95.6408 -34.5642 44.4877 +95.317 -35.1381 45.2263 +95.1546 -35.7753 46.0465 +95.0662 -36.4459 46.9097 +93.2791 -36.4591 46.9266 +91.8344 -36.5896 47.0945 +89.8929 -36.5041 46.9846 +88.8728 -36.7782 47.3374 +87.1926 -36.7661 47.3218 +86.1748 -37.0204 47.649 +83.6911 -36.6253 47.1406 +83.1669 -37.072 47.7155 +80.4661 -36.5305 47.0186 +80.2629 -37.1076 47.7613 +78.6213 -37.0131 47.6397 +77.8555 -37.3193 48.0338 +75.2086 -36.7035 47.2412 +74.6837 -37.1047 47.7576 +71.9926 -36.4105 46.864 +71.7018 -36.9128 47.5106 +69.349 -36.339 46.7721 +69.2823 -36.9504 47.559 +67.6307 -36.7102 47.2498 +67.106 -37.0709 47.714 +64.5855 -36.3096 46.7342 +64.0666 -36.654 47.1775 +62.2371 -36.2354 46.6387 +61.7194 -36.5673 47.0659 +59.9844 -36.1653 46.5485 +59.5384 -36.5284 47.0159 +57.7549 -36.0581 46.4105 +57.1704 -36.3219 46.75 +56.1009 -36.2705 46.6839 +54.9691 -36.1657 46.549 +53.777 -36.0063 46.3438 +53.3297 -36.3384 46.7712 +52.2145 -36.209 46.6047 +51.6975 -36.4872 46.9627 +50.592 -36.3427 46.7768 +49.2375 -36.0012 46.3372 +48.2783 -35.932 46.2482 +47.6396 -36.0938 46.4564 +46.5641 -35.9153 46.2268 +46.0515 -36.1633 46.5459 +44.9875 -35.9704 46.2976 +44.2936 -36.0629 46.4167 +43.4221 -36.0028 46.3393 +42.7908 -36.1346 46.5089 +42.3332 -36.4122 46.8663 +41.7564 -36.5873 47.0916 +40.668 -36.3038 46.7268 +40.1501 -36.5202 47.0052 +39.1323 -36.2733 46.6875 +38.6149 -36.4814 46.9553 +37.611 -36.2211 46.6203 +37.5713 -36.8893 47.4804 +36.5749 -36.6183 47.1315 +35.5376 -36.2868 46.7048 +35.0201 -36.4757 46.948 +34.5 -36.6618 47.1876 +33.5833 -36.4179 46.8737 +33.0155 -36.5427 47.0342 +32.0651 -36.2328 46.6353 +31.5015 -36.3489 46.7848 +30.6139 -36.0808 46.4397 +30.4628 -36.6807 47.2118 +29.6275 -36.458 46.9252 +29.064 -36.5601 47.0566 +28.2846 -36.3821 46.8276 +27.6392 -36.3653 46.8059 +26.8307 -36.1211 46.4916 +26.6819 -36.7678 47.324 +25.7991 -36.4029 46.8543 +25.2803 -36.5397 47.0303 +24.7596 -36.6736 47.2027 +23.9374 -36.3497 46.7858 +23.1262 -36.0198 46.3612 +22.5413 -36.0277 46.3714 +22.0631 -36.2044 46.5989 +21.5473 -36.3212 46.7491 +20.696 -35.8569 46.1515 +20.5108 -36.5464 47.039 +19.6729 -36.073 46.4297 +19.1591 -36.177 46.5635 +18.6738 -36.3367 46.769 +18.1855 -36.494 46.9715 +17.4669 -36.1781 46.565 +17.1171 -36.6242 47.1391 +16.3015 -36.0641 46.4182 +15.8915 -36.387 46.8338 +15.4484 -36.6489 47.1709 +14.8782 -36.6111 47.1223 +14.1701 -36.2122 46.6088 +13.7895 -36.6453 47.1663 +13.1812 -36.4781 46.9511 +12.7866 -36.9074 47.5037 +12.0817 -36.4333 46.8935 +11.6203 -36.6773 47.2075 +11.0981 -36.7381 47.2858 +10.4015 -36.192 46.5828 +9.88635 -36.2463 46.6527 +9.37042 -36.2978 46.7191 +8.88335 -36.468 46.9381 +8.3643 -36.5141 46.9975 +7.81852 -36.4359 46.8967 +7.32435 -36.5981 47.1056 +6.70163 -36.0874 46.4482 +6.28216 -36.671 47.1994 +5.67407 -36.1536 46.5335 +5.22934 -36.6716 47.2001 +4.63693 -36.1477 46.5258 +4.17841 -36.6608 47.1862 +3.6507 -36.6205 47.1344 +3.13492 -36.6999 47.2366 +2.56482 -36.0411 46.3886 +2.09048 -36.7279 47.2726 +1.54444 -36.1857 46.5748 +1.03318 -36.3153 46.7416 +0.516611 -36.3194 46.7468 +2.33147e-15 -36.3208 46.7487 +-0.514866 -36.1968 46.589 +-1.0454 -36.7447 47.2942 +-1.56538 -36.6764 47.2063 +-2.09048 -36.7279 47.2726 +-2.57791 -36.2249 46.6252 +-3.13492 -36.6999 47.2366 +-3.63239 -36.4368 46.8979 +-4.17144 -36.5996 47.1074 +-4.67616 -36.4535 46.9195 +-5.27292 -36.9772 47.5935 +-5.71241 -36.3979 46.8478 +-6.31352 -36.854 47.435 +-6.84879 -36.8798 47.4681 +-7.3731 -36.8417 47.4191 +-7.76631 -36.1926 46.5836 +-8.40606 -36.6964 47.2321 +-8.95725 -36.7714 47.3286 +-9.47993 -36.722 47.265 +-9.83684 -36.0647 46.4191 +-10.5231 -36.6149 47.1272 +-10.8612 -35.9539 46.2764 +-11.563 -36.4967 46.975 +-12.0817 -36.4333 46.8935 +-12.7658 -36.8474 47.4264 +-13.1595 -36.4183 46.8741 +-13.632 -36.2268 46.6277 +-14.1701 -36.2122 46.6088 +-14.6605 -36.0754 46.4327 +-15.173 -35.9955 46.3299 +-15.9691 -36.5648 47.0626 +-16.4886 -36.4779 46.9508 +-16.9517 -36.2703 46.6836 +-17.8078 -36.884 47.4736 +-18.2732 -36.6699 47.198 +-18.5836 -36.1611 46.5431 +-19.3754 -36.5854 47.0892 +-19.9585 -36.5967 47.1037 +-20.7387 -36.9525 47.5616 +-20.9965 -36.3773 46.8214 +-22.1629 -37.359 48.0849 +-22.3432 -36.6642 47.1906 +-23.1864 -37.0587 47.6984 +-23.7493 -36.9902 47.6103 +-24.237 -36.8048 47.3716 +-24.8362 -36.787 47.3487 +-25.671 -37.1044 47.7572 +-25.8788 -36.5154 46.9991 +-26.7633 -36.8799 47.4683 +-27.3283 -36.791 47.3539 +-28.2309 -37.1438 47.8079 +-28.3707 -36.4929 46.9701 +-29.6777 -37.3322 48.0504 +-29.7614 -36.6227 47.1373 +-30.7352 -37.0087 47.634 +-31.168 -36.7339 47.2803 +-32.1588 -37.1073 47.7609 +-32.6854 -36.9337 47.5375 +-33.3064 -36.8647 47.4486 +-34.0757 -36.9519 47.5609 +-35 -37.1931 47.8714 +-35.7307 -37.2158 47.9006 +-36.3617 -37.1282 47.7879 +-36.8884 -36.9321 47.5355 +-37.5183 -36.8373 47.4134 +-38.0945 -36.6868 47.2197 +-39.4863 -37.3047 48.015 +-39.5739 -36.6826 47.2143 +-41.0448 -37.334 48.0527 +-41.5176 -37.0622 47.7029 +-42.502 -37.2406 47.9325 +-43.0301 -37.0117 47.6378 +-44.1427 -37.2762 47.9783 +-44.0764 -36.5453 47.0375 +-45.7379 -37.2388 47.9303 +-46.2659 -36.9926 47.6133 +-47.3444 -37.1785 47.8526 +-47.8714 -36.9237 47.5246 +-49.7163 -37.6672 48.4816 +-50.3774 -37.4943 48.2591 +-51.4873 -37.6462 48.4545 +-51.9558 -37.3224 48.0378 +-53.0752 -37.4595 48.2143 +-53.6722 -37.2199 47.9059 +-55.3371 -37.7062 48.5318 +-55.7362 -37.3181 48.0322 +-56.9469 -37.4669 48.2238 +-58.0971 -37.5611 48.3451 +-59.1849 -37.6017 48.3973 +-60.2081 -37.5897 48.3819 +-62.4375 -38.3071 49.3052 +-62.1241 -37.4554 48.2089 +-64.3809 -38.1442 49.0955 +-65.7189 -38.2626 49.2479 +-67.1383 -38.4114 49.4394 +-68.1244 -38.2991 49.295 +-69.5584 -38.4256 49.4577 +-70.3269 -38.1737 49.1335 +-72.2257 -38.5202 49.5795 +-73.4552 -38.4907 49.5415 +-75.0724 -38.6481 49.7441 +-76.3137 -38.5958 49.6769 +-78.2586 -38.8808 50.0437 +-79.1999 -38.6513 49.7482 +-80.2195 -38.4524 49.4922 +-82.2707 -38.7311 49.851 +-83.9366 -38.8061 49.9475 +-84.4854 -38.3552 49.3671 +-87.0502 -38.803 49.9434 +-87.9245 -38.4779 49.5251 +-90.762 -38.9911 50.1856 +-92.1373 -38.8511 50.0054 +-94.6761 -39.1797 50.4284 +-96.2304 -39.0777 50.2971 +-98.4599 -39.2293 50.4922 +-99.5202 -38.8985 50.0664 +-102.699 -39.372 50.6759 +-103.255 -38.8207 49.9663 +-107.146 -39.4988 50.839 +-108.91 -39.3595 50.6598 +-111.89 -39.6339 51.0129 +-113.233 -39.3052 50.5899 +-116.237 -39.5303 50.8796 +-118.025 -39.3163 50.6042 +-120.699 -39.3742 50.6787 +-122.851 -39.2364 50.5013 +-128.483 -40.1648 51.6963 +-130.123 -39.8039 51.2318 +-135.089 -40.4236 52.0294 +-136.922 -40.0686 51.5724 +-124.708 -35.678 45.9213 +-111.561 -31.1926 40.1481 +-110.448 -30.1699 38.8318 +-109.497 -29.2104 37.5968 +-108.62 -28.2875 36.4089 +-108.094 -27.4701 35.3568 +-107.831 -26.7294 34.4035 +-107.835 -26.0611 33.5434 +-107.362 -25.2849 32.5443 +-107.905 -24.7521 31.8585 +-107.125 -23.9216 30.7896 +-53.6363 -11.6531 14.9987 +-47.2759 -9.98725 12.8546 +-37.6484 -7.72861 9.94752 +-35.8548 -7.14753 9.19962 +-33.1893 -6.42032 8.26362 +-32.3231 -6.06298 7.80368 +-17.5464 -3.1888 4.10431 +-16.5337 -2.90871 3.74381 +-15.8035 -2.68891 3.46091 +-15.8412 -2.6042 3.35187 +-15.684 -2.48857 3.20304 +-15.2336 -2.33028 2.99931 +-14.8773 -2.19134 2.82048 +-14.9079 -2.11161 2.71786 +-14.8397 -2.01843 2.59793 +-14.0853 -1.83686 2.36423 +-14.3069 -1.78584 2.29856 +-14.7244 -1.756 2.26015 +-13.4706 -1.53175 1.97152 +-13.7873 -1.49153 1.91975 +-13.9066 -1.42778 1.8377 +-14.519 -1.41086 1.81593 +-14.7363 -1.35121 1.73915 +-13.3686 -1.15272 1.48367 +-13.6819 -1.10512 1.42241 +-13.8956 -1.04678 1.34732 +-15.1023 -1.05569 1.35878 +-14.6195 -0.942728 1.21339 +-12.2434 -0.723288 0.930946 +-13.8471 -0.743264 0.956658 +-13.259 -0.640222 0.824032 +-14.1654 -0.607725 0.782205 +-12.8759 -0.483169 0.621888 +-13.2818 -0.427057 0.549666 +-13.0875 -0.350578 0.45123 +-12.9921 -0.278353 0.358269 +-12.5957 -0.20236 0.260458 +-12.1981 -0.130632 0.168136 +-11.9995 -0.0642474 0.082693 +27.2 8.88178e-16 2.84217e-14 +28.5989 -0.151339 0.19846 +33.5949 -0.35558 0.466293 +35.3879 -0.561908 0.736862 +39.376 -0.833793 1.0934 +42.0599 -1.11354 1.46025 +41.9424 -1.33288 1.74789 +41.8218 -1.55107 2.03401 +42.596 -1.80615 2.36851 +29.7081 -1.41776 1.85919 +24.2075 -1.28423 1.68409 +15.8268 -0.924088 1.21181 +16.3102 -1.03949 1.36315 +18.2817 -1.26305 1.65631 +31.0667 -2.31303 3.03321 +36.1877 -2.88891 3.78839 +41.6903 -3.55288 4.65909 +45.0991 -4.08705 5.35958 +56.0019 -5.37846 7.05309 +62.925 -6.38515 8.37322 +82.3299 -8.80278 11.5436 +119.269 -13.4041 17.5776 +119.857 -14.1273 18.5259 +119.649 -14.7609 19.3568 +120.41 -15.5196 20.3517 +119.401 -16.0512 21.0488 +120.14 -16.8188 22.0554 +119.796 -17.4397 22.8697 +120.414 -18.205 23.8732 +120.147 -18.8415 24.7079 +120.548 -19.5863 25.6847 +120.165 -20.2073 26.499 +120.542 -20.9594 27.4852 +120.907 -21.717 28.4787 +120.781 -22.3914 29.3631 +120.645 -23.0662 30.248 +120.404 -23.7224 31.1086 +120.911 -24.5318 32.1699 +120.648 -25.1904 33.0337 +120.941 -25.9696 34.0554 +120.469 -26.5878 34.8661 +120.924 -27.4154 35.9514 +121.085 -28.1846 36.9601 +120.396 -28.7576 37.7115 +119.978 -29.3936 38.5455 +120.382 -30.2362 39.6505 +120.954 -31.1327 40.8261 +120.869 -31.8682 41.7906 +121.227 -32.7286 42.9189 +121.207 -33.4945 43.9233 +117.186 -33.1352 43.4521 +114.899 -33.2319 43.579 +111.81 -33.0678 43.3637 +108.914 -32.9277 43.18 +106.208 -32.8145 43.0316 +104.312 -32.9272 43.1794 +101.627 -32.7663 42.9684 +99.7457 -32.8399 43.0648 +96.9953 -32.6021 42.753 +95.478 -32.7558 42.9546 +96.3886 -33.7449 44.2516 +96.761 -34.5614 45.3224 +96.0885 -35.0097 45.9102 +94.8989 -35.2633 46.2428 +95.2358 -36.0854 47.3209 +94.5442 -36.5229 47.8946 +93.5118 -36.8236 48.289 +91.0603 -36.5473 47.9265 +89.8677 -36.7565 48.2009 +87.8519 -36.6124 48.0119 +87.3216 -37.0758 48.6197 +84.9122 -36.7266 48.1617 +83.3288 -36.7112 48.1415 +81.5915 -36.6097 48.0084 +80.7421 -36.8941 48.3814 +79.4147 -36.9508 48.4557 +78.2495 -37.071 48.6133 +76.6173 -36.9552 48.4614 +75.4609 -37.0539 48.5909 +73.5358 -36.7575 48.2023 +73.004 -37.1453 48.7107 +70.2615 -36.3881 47.7178 +69.7352 -36.7585 48.2036 +68.3048 -36.6439 48.0533 +67.7748 -37.004 48.5255 +65.7651 -36.5419 47.9194 +65.4562 -37.0126 48.5367 +63.5428 -36.5645 47.9491 +63.0142 -36.8993 48.3882 +61.2682 -36.5088 47.8761 +60.6698 -36.7888 48.2432 +59.0166 -36.4164 47.7549 +58.4902 -36.7273 48.1626 +57.3399 -36.6395 48.0476 +56.1285 -36.4981 47.862 +55.0606 -36.436 47.7807 +54.5341 -36.726 48.1609 +52.7446 -36.1503 47.406 +52.2223 -36.428 47.7702 +51.1765 -36.3341 47.647 +50.5874 -36.5571 47.9394 +49.5505 -36.4491 47.7978 +49.0241 -36.7099 48.1398 +47.6846 -36.351 47.6691 +46.6056 -36.1718 47.4342 +45.5962 -36.0323 47.2512 +45.0158 -36.2237 47.5022 +43.9574 -36.0218 47.2375 +43.79 -36.5474 47.9268 +42.7978 -36.3828 47.7109 +42.7314 -37.0053 48.5271 +41.1777 -36.3305 47.6422 +40.6533 -36.547 47.9261 +40.0706 -36.7101 48.1401 +39.0506 -36.4631 47.8162 +38.5781 -36.7195 48.1524 +37.9422 -36.8193 48.2833 +36.5749 -36.1915 47.46 +36.0527 -36.3837 47.712 +35.5277 -36.573 47.9603 +35 -36.7597 48.2051 +33.9772 -36.4157 47.754 +33.5003 -36.6471 48.0575 +32.4945 -36.2901 47.5893 +31.971 -36.4607 47.813 +31.4913 -36.6822 48.1035 +30.9168 -36.7934 48.2494 +29.9845 -36.4673 47.8216 +29.4585 -36.6246 48.0279 +28.5429 -36.2865 47.5845 +28.0619 -36.491 47.8528 +27.2039 -36.1968 47.4669 +26.6819 -36.3393 47.6539 +26.1181 -36.4235 47.7642 +25.632 -36.6161 48.0169 +24.7596 -36.2462 47.5317 +24.312 -36.4883 47.8492 +23.3828 -35.9949 47.2022 +23.2222 -36.6834 48.105 +22.3783 -36.2937 47.5941 +22.1971 -36.9806 48.4948 +21.0632 -36.0677 47.2977 +20.7712 -36.5792 47.9684 +20.0219 -36.2851 47.5828 +19.4372 -36.2744 47.5687 +18.9144 -36.3758 47.7017 +18.3902 -36.4746 47.8312 +17.5237 -35.8728 47.0421 +17.1998 -36.3721 47.6969 +16.5153 -36.1112 47.3547 +16.0985 -36.4315 47.7747 +15.3984 -36.1044 47.3457 +14.8782 -36.1845 47.4508 +14.3335 -36.2028 47.4749 +13.8345 -36.3364 47.65 +13.376 -36.5858 47.9771 +12.8074 -36.5366 47.9125 +12.2611 -36.5436 47.9217 +11.7538 -36.6665 48.0829 +11.0981 -36.31 47.6154 +10.6967 -36.7854 48.2388 +10.0514 -36.4219 47.7622 +9.52686 -36.4737 47.8301 +8.86856 -35.983 47.1866 +8.47564 -36.569 47.955 +7.81852 -36.0112 47.2236 +7.44622 -36.7735 48.2232 +6.79219 -36.1487 47.4039 +6.36578 -36.7261 48.161 +5.75075 -36.2151 47.491 +5.22934 -36.2442 47.5291 +4.68401 -36.0891 47.3258 +4.24119 -36.7779 48.229 +3.6507 -36.1937 47.4629 +3.13492 -36.2722 47.5658 +2.60844 -36.2268 47.5064 +2.0835 -36.1786 47.4431 +1.568 -36.3096 47.6148 +1.0454 -36.3165 47.6239 +0.523592 -36.3812 47.7088 +1.9984e-15 -36.322 47.6311 +-0.521847 -36.26 47.5498 +-1.05936 -36.8015 48.2599 +-1.568 -36.3096 47.6148 +-2.12538 -36.9059 48.3968 +-2.6128 -36.2874 47.5858 +-3.18726 -36.8777 48.3599 +-3.69344 -36.6174 48.0185 +-4.22724 -36.6569 48.0704 +-4.75462 -36.6332 48.0392 +-5.35136 -37.0899 48.6381 +-5.79867 -36.5169 47.8868 +-6.41805 -37.0276 48.5564 +-6.95068 -36.9922 48.51 +-7.48278 -36.954 48.4599 +-7.89683 -36.372 47.6966 +-8.53131 -36.8091 48.27 +-8.95725 -36.3428 47.6585 +-9.62072 -36.833 48.3013 +-10.0019 -36.2425 47.5269 +-10.662 -36.6659 48.0821 +-11.0435 -36.1311 47.3808 +-11.7348 -36.607 48.0049 +-12.2611 -36.5436 47.9217 +-12.7866 -36.4773 47.8348 +-13.5058 -36.941 48.4429 +-14.0145 -36.8091 48.2699 +-14.4036 -36.3797 47.7068 +-15.0717 -36.6551 48.068 +-15.3733 -36.0457 47.2688 +-16.1503 -36.5486 47.9284 +-16.7024 -36.5202 47.8911 +-17.2273 -36.4305 47.7734 +-18.0066 -36.8612 48.3382 +-18.5364 -36.7645 48.2114 +-19.0347 -36.6072 48.0051 +-19.6535 -36.6781 48.098 +-20.1171 -36.4576 47.809 +-21.0643 -37.0952 48.645 +-21.2635 -36.4107 47.7475 +-22.1629 -36.9236 48.42 +-22.6934 -36.8049 48.2644 +-23.5089 -37.1363 48.699 +-24.0425 -37.0105 48.534 +-24.5742 -36.8819 48.3653 +-25.1423 -36.8064 48.2664 +-26.0227 -37.1743 48.7488 +-26.6364 -37.1464 48.7122 +-27.17 -37.004 48.5255 +-27.743 -36.9141 48.4075 +-28.569 -37.1505 48.7176 +-29.1456 -37.0527 48.5893 +-30.0284 -37.3331 48.957 +-30.2076 -36.7386 48.1775 +-31.0983 -37.0096 48.5328 +-31.6298 -36.8436 48.3151 +-32.6752 -37.2638 48.8662 +-33.2102 -37.0895 48.6376 +-34.0336 -37.2305 48.8225 +-34.9128 -37.4184 49.069 +-35.65 -37.4423 49.1003 +-35.4262 -36.4685 47.8233 +-36.7737 -37.1113 48.6662 +-37.3064 -36.9153 48.4092 +-37.8892 -36.7679 48.2159 +-38.9542 -37.0775 48.6218 +-40.031 -37.3785 49.0166 +-40.0154 -36.6596 48.0738 +-41.4362 -37.2508 48.8491 +-41.4609 -36.5803 47.9699 +-43.0182 -37.2536 48.8528 +-43.5527 -37.0246 48.5525 +-44.1427 -36.8418 48.3127 +-45.2065 -37.0455 48.5798 +-46.2796 -37.2407 48.8359 +-47.6051 -37.6198 49.333 +-48.5757 -37.7009 49.4394 +-49.1787 -37.4899 49.1626 +-50.2198 -37.6052 49.3139 +-50.8226 -37.3848 49.0249 +-52.0015 -37.579 49.2795 +-52.4754 -37.2563 48.8563 +-53.5344 -37.3433 48.9704 +-54.6662 -37.4673 49.133 +-55.9393 -37.6723 49.4019 +-56.4118 -37.3302 48.9533 +-58.1745 -37.8285 49.6067 +-58.7166 -37.5192 49.2011 +-60.2963 -37.8614 49.6498 +-60.909 -37.5842 49.2863 +-62.7911 -38.0751 49.9301 +-63.6219 -37.9114 49.7154 +-65.6038 -38.4157 50.3767 +-65.9365 -37.9419 49.7554 +-68.0159 -38.4599 50.4348 +-69.0092 -38.3444 50.2832 +-70.896 -38.7081 50.7602 +-71.8997 -38.5726 50.5824 +-73.5087 -38.7476 50.8119 +-74.5198 -38.5934 50.6098 +-76.4512 -38.8992 51.0108 +-77.0081 -38.4932 50.4783 +-78.6472 -38.6185 50.6426 +-79.6695 -38.4273 50.392 +-82.4259 -39.0496 51.208 +-83.3814 -38.7965 50.8761 +-85.0547 -38.8647 50.9655 +-85.9323 -38.5575 50.5626 +-88.8301 -39.1348 51.3198 +-89.2271 -38.5929 50.6091 +-91.5812 -38.8844 50.9914 +-93.6207 -39.0165 51.1646 +-96.0855 -39.2996 51.5358 +-97.1477 -38.9905 51.1305 +-99.7179 -39.2675 51.4938 +-101.291 -39.1293 51.3125 +-103.462 -39.2024 51.4084 +-105.557 -39.2237 51.4363 +-108.517 -39.5381 51.8486 +-111.322 -39.7626 52.143 +-113.536 -39.748 52.1239 +-114.626 -39.3249 51.569 +-117.374 -39.4518 51.7354 +-119.08 -39.2053 51.4122 +-123.348 -39.7694 52.1519 +-126.044 -39.7871 52.1752 +-130.622 -40.3574 52.923 +-132.003 -39.9082 52.334 +-136.617 -40.4044 52.9846 +-138.096 -39.941 52.3769 +-134.043 -37.9017 49.7027 +-112.107 -30.9799 40.6258 +-110.448 -29.8183 39.1024 +-109.314 -28.8216 37.7955 +-109.264 -28.1236 36.8802 +-108.002 -27.1267 35.5728 +-107.646 -26.3724 34.5837 +-107.742 -25.7351 33.748 +-107.922 -25.1206 32.942 +-107.811 -24.4424 32.0527 +-106.373 -23.4769 30.7866 +-59.4807 -12.7722 16.749 +-48.1269 -10.0485 13.1772 +-41.9159 -8.50438 11.1523 +-39.2786 -7.73883 10.1484 +-34.5246 -6.60072 8.6559 +-32.2275 -5.97459 7.83483 +-20.8064 -3.73718 4.90078 +-15.0918 -2.6241 3.44114 +-16.2854 -2.7386 3.59128 +-15.2616 -2.47968 3.25175 +-15.9744 -2.50511 3.28509 +-15.1366 -2.28845 3.00098 +-14.6828 -2.13749 2.80302 +-15.2002 -2.12792 2.79047 +-13.961 -1.87679 2.46115 +-13.9875 -1.80284 2.36417 +-14.8949 -1.83756 2.4097 +-14.0373 -1.65454 2.1697 +-14.9455 -1.67965 2.20263 +-14.8706 -1.58998 2.08503 +-14.1039 -1.43116 1.87676 +-14.519 -1.39442 1.82858 +-14.1429 -1.28168 1.68074 +-13.6657 -1.1646 1.52721 +-14.7725 -1.17931 1.54649 +-14.4912 -1.07892 1.41485 +-13.7113 -0.947282 1.24223 +-14.9178 -0.950757 1.24678 +-14.1346 -0.825285 1.08224 +-14.9429 -0.792741 1.03957 +-12.8602 -0.613726 0.804815 +-12.8686 -0.545654 0.715547 +-13.4748 -0.499749 0.655349 +-13.5814 -0.4316 0.565983 +-13.4872 -0.357072 0.46825 +-13.5917 -0.287807 0.377417 +-12.2958 -0.195239 0.256028 +-12.2981 -0.130168 0.170697 +-12.5995 -0.0666736 0.0874329 +29.1 8.88178e-16 2.84217e-14 +30.5988 -0.16 0.21379 +34.7947 -0.363907 0.48625 +36.5875 -0.574057 0.767051 +39.8757 -0.834348 1.11485 +41.1608 -1.07679 1.4388 +40.2448 -1.26375 1.68861 +41.0233 -1.50339 2.00882 +39.2043 -1.6426 2.19483 +33.8952 -1.59837 2.13573 +24.0083 -1.25854 1.68165 +16.1254 -0.930343 1.24312 +16.4096 -1.03341 1.38084 +21.7592 -1.48545 1.98485 +33.8458 -2.49003 3.32715 +38.2698 -3.01884 4.03375 +44.9582 -3.78588 5.05866 +46.9783 -4.20679 5.62109 +62.7182 -5.95198 7.95299 +69.1386 -6.93236 9.26297 +117.783 -12.4439 16.6274 +119.957 -13.3213 17.7999 +120.151 -13.9938 18.6984 +119.845 -14.6096 19.5212 +120.606 -15.3602 20.5242 +120.28 -15.9773 21.3488 +120.53 -16.6729 22.2783 +120.671 -17.3585 23.1943 +120.414 -17.9888 24.0365 +120.147 -18.6178 24.8769 +120.741 -19.3848 25.9019 +120.936 -20.0954 26.8514 +120.734 -20.7436 27.7174 +121.003 -21.4761 28.6963 +120.781 -22.1255 29.564 +121.027 -22.8644 30.5512 +120.689 -23.4963 31.3956 +120.911 -24.2405 32.39 +120.932 -24.9499 33.3378 +121.035 -25.6812 34.3151 +120.844 -26.3541 35.2141 +120.643 -27.0269 36.1132 +120.432 -27.6997 37.0121 +120.582 -28.4601 38.0282 +120.348 -29.1343 38.9291 +120.566 -29.923 39.9829 +121.138 -30.8098 41.1679 +120.227 -31.3226 41.853 +121.593 -32.4374 43.3426 +120.206 -32.8235 43.8586 +116.823 -32.6405 43.614 +113.906 -32.5536 43.4979 +111.091 -32.465 43.3796 +108.914 -32.5367 43.4753 +105.673 -32.2617 43.1078 +103.78 -32.3703 43.253 +101.097 -32.2085 43.0367 +99.7457 -32.4499 43.3594 +96.4706 -32.0407 42.8126 +95.5651 -32.3964 43.2878 +96.6484 -33.4341 44.6744 +96.5886 -34.0903 45.5511 +96.0885 -34.594 46.2242 +95.1546 -34.9385 46.6846 +95.4902 -35.7523 47.7719 +94.9659 -36.2502 48.4372 +94.015 -36.5822 48.8808 +92.061 -36.5102 48.7846 +91.4428 -36.9567 49.3812 +89.3353 -36.7885 49.1566 +88.1408 -36.9793 49.4115 +86.3777 -36.9169 49.3281 +85.3513 -37.1558 49.6473 +82.3149 -36.4958 48.7655 +81.3011 -36.7085 49.0496 +80.208 -36.8768 49.2746 +79.1163 -37.0366 49.488 +77.0086 -36.7028 49.0421 +75.9272 -36.8402 49.2256 +74.5389 -36.8166 49.194 +73.6935 -37.0508 49.5071 +70.9459 -36.3063 48.5121 +70.4899 -36.7151 49.0585 +68.7541 -36.4471 48.7003 +68.518 -36.9655 49.3931 +67.2397 -36.9176 49.329 +65.7487 -36.7366 49.0871 +64.921 -36.9139 49.3241 +63.8774 -36.9607 49.3866 +61.3395 -36.1173 48.2597 +60.9526 -36.5214 48.7996 +59.5773 -36.3259 48.5384 +59.1154 -36.6791 49.0104 +57.4088 -36.248 48.4342 +56.9469 -36.5906 48.892 +55.6686 -36.401 48.6388 +55.2702 -36.7798 49.1449 +53.4072 -36.1698 48.3298 +52.944 -36.493 48.7616 +51.6961 -36.2672 48.4599 +51.2945 -36.6279 48.9419 +50.0594 -36.3862 48.6189 +49.7163 -36.7862 49.1534 +47.6224 -35.8724 47.9325 +48.0216 -36.8283 49.2097 +46.0832 -35.9847 48.0825 +45.6176 -36.2722 48.4666 +44.0764 -35.6905 47.6894 +43.8488 -36.162 48.3194 +43.0301 -36.146 48.298 +42.7888 -36.6149 48.9246 +41.5742 -36.2448 48.43 +41.2684 -36.6595 48.9841 +40.1258 -36.3242 48.5362 +39.6497 -36.5829 48.8818 +38.4707 -36.1824 48.3467 +38.0482 -36.4838 48.7494 +37.4631 -36.6303 48.9451 +36.9797 -36.8761 49.2736 +35.9845 -36.6034 48.9093 +35.05 -36.3751 48.6041 +34.4696 -36.5048 48.7775 +33.5488 -36.2644 48.4563 +32.924 -36.3332 48.5481 +32.4874 -36.6097 48.9177 +31.4451 -36.1935 48.3616 +30.9622 -36.41 48.6507 +29.9845 -36.0343 48.1487 +29.4585 -36.1897 48.3564 +28.9734 -36.3964 48.6326 +28.4845 -36.6008 48.9057 +27.4942 -36.1486 48.3015 +27.1293 -36.51 48.7844 +26.5168 -36.5405 48.8252 +25.7492 -36.3469 48.5664 +25.104 -36.314 48.5226 +24.6491 -36.555 48.8446 +23.7859 -36.1808 48.3445 +23.2581 -36.3038 48.5089 +22.7285 -36.424 48.6695 +22.1971 -36.5415 48.8265 +21.3303 -36.0913 48.225 +20.7387 -36.0882 48.2207 +20.371 -36.4794 48.7434 +19.7462 -36.4135 48.6555 +19.155 -36.4011 48.6389 +18.4194 -36.0988 48.2349 +17.7226 -35.849 47.9012 +17.5581 -36.6891 49.0237 +16.8627 -36.433 48.6816 +16.2538 -36.3462 48.5655 +15.5736 -36.0817 48.2122 +15.1443 -36.3943 48.6298 +14.3569 -35.8313 47.8775 +14.0145 -36.372 48.6001 +13.376 -36.1514 48.3053 +13.0153 -36.6888 49.0233 +12.4406 -36.6381 48.9555 +11.7729 -36.29 48.4904 +11.2439 -36.3502 48.5708 +10.7488 -36.5256 48.8053 +10.1834 -36.4622 48.7205 +9.69894 -36.6916 49.0271 +9.03116 -36.2076 48.3804 +8.62873 -36.7875 49.1551 +8.06652 -36.7124 49.0548 +7.54371 -36.8126 49.1887 +6.99596 -36.7911 49.16 +6.45986 -36.8263 49.2071 +5.84659 -36.3816 48.6128 +5.33393 -36.5301 48.8113 +4.77031 -36.3177 48.5274 +4.24119 -36.3412 48.5589 +3.70565 -36.3022 48.5068 +3.18726 -36.4399 48.6907 +2.60844 -35.7967 47.8313 +2.12189 -36.4078 48.6479 +1.58894 -36.3576 48.5808 +1.06285 -36.4843 48.7501 +0.522719 -35.8893 47.9551 +2.9976e-15 -36.5498 48.8376 +-0.532319 -36.5484 48.8358 +-1.06285 -36.4843 48.7501 +-1.59418 -36.4774 48.7408 +-2.12189 -36.4078 48.6479 +-2.65206 -36.3953 48.6311 +-3.19773 -36.5596 48.8506 +-3.74838 -36.7209 49.0662 +-4.24119 -36.3412 48.5589 +-4.82523 -36.7358 49.0861 +-5.43852 -37.2464 49.7683 +-5.88493 -36.6201 48.9315 +-6.50167 -37.0647 49.5256 +-6.93936 -36.4935 48.7623 +-7.60465 -37.11 49.5861 +-8.01431 -36.4747 48.7373 +-8.6844 -37.0248 49.4722 +-9.0755 -36.3854 48.6179 +-9.65201 -36.5141 48.7899 +-10.1339 -36.2849 48.4836 +-10.8356 -36.8206 49.1995 +-11.2075 -36.2324 48.4134 +-11.9256 -36.7605 49.1192 +-12.4406 -36.6381 48.9555 +-12.9945 -36.6302 48.945 +-13.5058 -36.5024 48.7743 +-14.0369 -36.4304 48.678 +-14.5436 -36.2973 48.5002 +-15.1201 -36.3362 48.5522 +-15.824 -36.6618 48.9872 +-16.435 -36.7513 49.1068 +-16.9162 -36.5485 48.8358 +-17.503 -36.5738 48.8697 +-18.035 -36.481 48.7456 +-18.858 -36.9583 49.3834 +-19.4256 -36.9154 49.3261 +-19.9934 -36.8694 49.2646 +-20.5296 -36.7634 49.123 +-21.0968 -36.7114 49.0534 +-21.5973 -36.5432 48.8287 +-22.5049 -37.0482 49.5035 +-23.0086 -36.873 49.2694 +-23.5448 -36.7513 49.1068 +-24.0425 -36.571 48.8659 +-24.9113 -36.9439 49.3642 +-25.4484 -36.8123 49.1883 +-26.3744 -37.2293 49.7456 +-26.5567 -36.5955 48.8986 +-27.5361 -37.0573 49.5157 +-28.0333 -36.8574 49.2486 +-28.6113 -36.7637 49.1234 +-29.5331 -37.0995 49.5721 +-30.0723 -36.9437 49.3638 +-30.6092 -36.785 49.1518 +-31.5523 -37.1041 49.5782 +-32.0915 -36.9377 49.3558 +-33.0977 -37.2975 49.8366 +-33.5443 -37.0177 49.4627 +-34.373 -37.1553 49.6466 +-35.2575 -37.3392 49.8924 +-35.45 -36.7902 49.1588 +-36.289 -36.9132 49.3232 +-36.8767 -36.7734 49.1364 +-37.7766 -36.9368 49.3547 +-38.8961 -37.2968 49.8357 +-39.4378 -37.092 49.5621 +-40.031 -36.9347 49.3518 +-40.9537 -37.0737 49.5376 +-42.0513 -37.3549 49.9133 +-42.5371 -37.0842 49.5517 +-43.5345 -37.253 49.7772 +-44.1334 -37.0728 49.5364 +-45.4358 -37.4708 50.0681 +-45.6229 -36.9428 49.3626 +-47.1221 -37.4685 50.0651 +-47.5443 -37.1256 49.6069 +-49.2529 -37.7727 50.4716 +-49.1787 -37.0447 49.4989 +-50.4086 -37.2984 49.8379 +-51.4587 -37.4033 49.978 +-52.6443 -37.5918 50.2299 +-53.0599 -37.224 49.7385 +-54.3217 -37.4426 50.0305 +-55.395 -37.5161 50.1288 +-56.6084 -37.6703 50.3348 +-57.0198 -37.2845 49.8193 +-58.2427 -37.4232 50.0046 +-59.1985 -37.378 49.9442 +-61.0605 -37.886 50.623 +-62.5211 -38.1208 50.9367 +-63.9225 -38.3009 51.1774 +-64.8345 -38.1752 51.0094 +-66.3231 -38.3758 51.2775 +-67.0246 -38.1101 50.9224 +-68.7472 -38.4119 51.3258 +-69.6727 -38.2535 51.114 +-71.6392 -38.6495 51.6431 +-72.3491 -38.3528 51.2467 +-74.037 -38.5627 51.5272 +-75.2041 -38.4854 51.4239 +-77.2173 -38.8225 51.8743 +-78.0884 -38.5697 51.5366 +-79.8129 -38.7255 51.7448 +-81.1565 -38.6798 51.6836 +-82.2683 -38.5122 51.4597 +-83.7781 -38.5182 51.4678 +-85.6137 -38.6557 51.6514 +-86.8165 -38.4917 51.4323 +-88.911 -38.7054 51.7179 +-90.6111 -38.7261 51.7456 +-92.8918 -38.9727 52.075 +-93.868 -38.6551 51.6507 +-96.7487 -39.101 52.2465 +-98.3985 -39.0236 52.143 +-100.64 -39.1603 52.3256 +-102.894 -39.2764 52.4809 +-104.819 -39.2449 52.4388 +-106.068 -38.9458 52.0391 +-109.375 -39.3773 52.6156 +-111.753 -39.4425 52.7027 +-114.229 -39.5157 52.8006 +-115.235 -39.0645 52.1977 +-117.549 -39.0414 52.1669 +-120.574 -39.2259 52.4133 +-124.496 -39.6628 52.9972 +-128.173 -39.9787 53.4193 +-132.314 -40.3951 53.9756 +-134.867 -40.2899 53.835 +-137.875 -40.2923 53.8383 +-139.359 -39.8279 53.2177 +-137.306 -38.3633 51.2608 +-113.199 -30.9102 41.302 +-110.904 -29.5861 39.5327 +-110.047 -28.6706 38.3094 +-108.712 -27.6492 36.9447 +-107.817 -26.7588 35.7549 +-107.831 -26.1042 34.8802 +-107.742 -25.4296 33.9788 +-108.109 -24.8653 33.2248 +-107.624 -24.1102 32.2158 +-107.125 -23.3621 31.2163 +-58.9151 -12.5006 16.7032 +-47.2759 -9.75365 13.0328 +-43.6229 -8.74559 11.6858 +-39.564 -7.70248 10.292 +-37.2903 -7.04489 9.41333 +-33.375 -6.11389 8.16933 +-26.847 -4.76492 6.36685 +-15.8608 -2.72507 3.64122 +-15.4181 -2.56197 3.42328 +-15.8412 -2.54329 3.39832 +-15.1031 -2.34034 3.12715 +-15.8158 -2.36275 3.15709 +-14.9745 -2.15408 2.87826 +-14.8104 -2.04874 2.73752 +-15.7184 -2.08794 2.78989 +-14.5744 -1.85618 2.48021 +-14.4049 -1.75601 2.34637 +-14.7244 -1.71492 2.29147 +-14.4538 -1.60511 2.14474 +-14.9691 -1.5815 2.11319 +-14.8929 -1.49328 1.99531 +-15.0129 -1.42472 1.90371 +-14.5385 -1.30189 1.73958 +-14.0618 -1.18413 1.58223 +-13.9794 -1.10274 1.47347 +-14.3919 -1.05881 1.41478 +-14.1087 -0.963172 1.28698 +-13.9233 -0.876836 1.17162 +-13.2388 -0.763801 1.02059 +-13.349 -0.699773 0.935032 +-13.4584 -0.634649 0.848013 +-14.7639 -0.618591 0.826556 +-13.7743 -0.504789 0.674495 +-14.58 -0.457834 0.611755 +-12.7878 -0.334537 0.447007 +-12.9921 -0.271843 0.363234 +-12.8956 -0.202332 0.270355 +-12.5981 -0.131759 0.176056 +-12.6995 -0.066405 0.0887299 +41.1 4.44089e-16 -1.13687e-13 +31.6988 -0.163746 0.222962 +43.4934 -0.44938 0.611892 +37.5871 -0.582608 0.793298 +40.0756 -0.828387 1.12796 +40.5614 -1.04828 1.42737 +36.7496 -1.14003 1.55231 +40.2248 -1.4563 1.98295 +32.0218 -1.32544 1.80476 +34.8921 -1.62548 2.21331 +25.8014 -1.33618 1.81939 +14.9309 -0.85101 1.15876 +33.217 -2.06657 2.81391 +27.6213 -1.86283 2.53649 +39.8011 -2.89273 3.93884 +39.7569 -3.09821 4.21863 +54.3657 -4.52269 6.15825 +54.5937 -4.82959 6.57614 +120.103 -11.2599 15.3319 +79.6919 -7.89384 10.7485 +120.245 -12.5503 17.0889 +119.465 -13.1062 17.8459 +119.66 -13.768 18.747 +120.041 -14.4564 19.6844 +119.823 -15.076 20.5279 +120.475 -15.8096 21.5269 +120.53 -16.4712 22.4278 +120.963 -17.19 23.4064 +120.511 -17.7855 24.2173 +121.018 -18.5259 25.2255 +120.741 -19.1503 26.0757 +120.261 -19.7416 26.8808 +120.734 -20.4926 27.9035 +120.236 -21.0818 28.7057 +120.781 -21.8579 29.7624 +121.217 -22.6233 30.8047 +120.784 -23.2304 31.6312 +121.291 -24.0224 32.7097 +120.27 -24.5131 33.3779 +121.318 -25.4298 34.6261 +120.469 -25.9543 35.3403 +120.831 -26.7414 36.4121 +120.152 -27.3009 37.1739 +120.675 -28.1375 38.3129 +120.627 -28.8484 39.281 +120.751 -29.6063 40.313 +121.138 -30.4371 41.4442 +121.51 -31.2741 42.5839 +119.309 -31.4431 42.814 +119.66 -32.2792 43.9524 +113.107 -31.22 42.5102 +114.087 -32.2108 43.8593 +107.406 -31.0084 42.2221 +108.377 -31.9846 43.5514 +103 -31.0652 42.2994 +103.071 -31.7601 43.2456 +98.3604 -30.9573 42.1526 +98.4275 -31.6337 43.0736 +96.1207 -31.5383 42.9436 +95.9132 -32.1211 43.7371 +96.3886 -32.9408 44.8534 +96.0717 -33.4975 45.6114 +96.6028 -34.3584 46.7835 +95.8368 -34.7633 47.3348 +94.3029 -34.8806 47.4946 +95.0502 -35.8435 48.8057 +94.602 -36.3653 49.5163 +93.3118 -36.5585 49.7793 +94.4274 -37.7012 51.3352 +90.1594 -36.6787 49.943 +92.8918 -38.5012 52.4245 +87.2732 -36.8484 50.174 +90.3672 -38.8634 52.9178 +84.0834 -36.8289 50.1475 +86.8915 -38.758 52.7742 +81.2394 -36.8992 50.2432 +84.0807 -38.8845 52.9464 +78.1043 -36.7748 50.0738 +81.6003 -39.1138 53.2587 +74.9247 -36.5594 49.7805 +78.6728 -39.0758 53.2069 +72.5427 -36.6743 49.937 +75.7728 -38.9893 53.0892 +69.0537 -36.1631 49.2408 +73.2741 -39.0533 53.1763 +67.0922 -36.391 49.5512 +70.2831 -38.795 52.8246 +65.0661 -36.5489 49.7662 +68.697 -39.2685 53.4693 +62.6947 -36.4687 49.657 +65.8316 -38.9676 53.0596 +60.2782 -36.3086 49.439 +63.7002 -39.0457 53.1659 +58.0283 -36.1959 49.2856 +61.1753 -38.8319 52.8749 +56.4118 -36.4407 49.6189 +58.8166 -38.6662 52.6492 +54.0698 -36.1756 49.2579 +56.4211 -38.4191 52.3128 +52.4105 -36.3236 49.4594 +54.7012 -38.5881 52.5428 +50.8226 -36.4941 49.6916 +53.0517 -38.7793 52.8032 +48.5561 -36.1333 49.2004 +50.8536 -38.5285 52.4617 +46.692 -36.019 49.0447 +49.6497 -39.0006 53.1046 +45.147 -36.1152 49.1756 +47.4343 -38.6457 52.6213 +43.0882 -35.7569 48.6878 +45.6567 -38.5964 52.5542 +42.2539 -36.3917 49.5521 +44.1762 -38.7678 52.7875 +40.6778 -36.3784 49.5341 +42.4818 -38.7218 52.7249 +39.0617 -36.2939 49.419 +41.1747 -39.0041 53.1094 +37.5154 -36.2376 49.3424 +39.3489 -38.764 52.7824 +36.0352 -36.2117 49.307 +37.55 -38.4982 52.4204 +34.4696 -36.0632 49.1049 +36.2153 -38.6731 52.6586 +33.4488 -36.4658 49.6531 +34.6001 -38.5187 52.4484 +31.953 -36.3332 49.4726 +33.1413 -38.5011 52.4244 +30.4753 -36.1811 49.2654 +31.9573 -38.7844 52.8102 +29.0164 -36.0095 49.0318 +30.4285 -38.6258 52.5943 +27.9503 -36.3038 49.4325 +28.8783 -38.3935 52.2779 +26.2377 -35.7185 48.6355 +27.781 -38.7405 52.7504 +25.1806 -35.9841 48.9972 +26.2974 -38.5276 52.4605 +24.1158 -36.2388 49.3439 +24.8349 -38.2961 52.1452 +23.0436 -36.4823 49.6756 +23.702 -38.5468 52.4867 +21.6974 -36.2685 49.3844 +22.5619 -38.7858 52.812 +20.2758 -35.8696 48.8413 +21.1368 -38.5063 52.4315 +19.2151 -36.0736 49.1191 +19.9982 -38.7188 52.7208 +17.893 -35.7558 48.6863 +18.6331 -38.4643 52.3743 +16.8895 -36.0493 49.0859 +17.3668 -38.365 52.2391 +15.8491 -36.2756 49.3941 +16.112 -38.2514 52.0845 +14.5903 -35.9733 48.9825 +15.0042 -38.4697 52.3817 +13.6141 -36.3498 49.4951 +13.9717 -38.9084 52.979 +12.4406 -36.1948 49.2841 +12.8224 -39.0468 53.1674 +11.2439 -35.9104 48.8969 +11.5476 -38.7652 52.7841 +10.2164 -36.1379 49.2066 +10.2621 -38.3525 52.222 +9.16418 -36.2965 49.4225 +9.14367 -38.5112 52.4382 +7.9882 -35.9161 48.9046 +7.99463 -38.5411 52.4788 +7.00728 -36.4049 49.5701 +6.84661 -38.5589 52.5032 +5.85618 -36.0003 49.0193 +5.71742 -38.6828 52.6718 +4.85662 -36.5275 49.737 +4.56207 -38.6178 52.5834 +3.76669 -36.4539 49.6368 +3.42277 -38.6591 52.6395 +2.6477 -35.8959 48.877 +2.28243 -38.6886 52.6797 +1.59156 -35.977 48.9874 +1.14488 -38.8246 52.8649 +0.533191 -36.1655 49.2442 +1.88738e-15 -38.7713 52.7924 +-0.532319 -36.1063 49.1636 +-1.14139 -38.7062 52.7037 +-1.61512 -36.5095 49.7126 +-2.28243 -38.6886 52.6797 +-2.69568 -36.5464 49.7628 +-3.42277 -38.6591 52.6395 +-3.75449 -36.3357 49.476 +-4.56207 -38.6178 52.5834 +-4.84093 -36.4094 49.5763 +-5.84815 -39.5673 53.8762 +-5.98077 -36.7663 50.0622 +-6.90933 -38.9122 52.9841 +-7.06388 -36.6989 49.9705 +-8.16525 -39.3636 53.5988 +-8.13178 -36.5617 49.7836 +-9.3246 -39.2733 53.4758 +-9.22331 -36.5306 49.7414 +-10.4968 -39.2294 53.4161 +-10.299 -36.4298 49.604 +-11.6344 -39.0567 53.1809 +-11.3715 -36.3178 49.4516 +-12.8033 -38.9887 53.0883 +-12.4406 -36.1948 49.2841 +-13.9509 -38.8505 52.9001 +-13.5058 -36.0608 49.1017 +-15.1167 -38.7581 52.7744 +-14.6137 -36.0309 49.061 +-16.4749 -39.1129 53.2575 +-15.8491 -36.2756 49.3941 +-17.6515 -38.994 53.0955 +-16.9429 -36.1634 49.2413 +-18.7985 -38.8057 52.8391 +-18.3474 -36.6639 49.9229 +-20.2029 -39.1151 53.2604 +-19.4557 -36.5253 49.734 +-21.6312 -39.4071 53.658 +-20.5296 -36.3187 49.4527 +-22.8223 -39.2336 53.4218 +-21.6641 -36.2127 49.3084 +-24.2834 -39.4924 53.7742 +-22.9736 -36.3715 49.5246 +-25.4441 -39.2355 53.4244 +-24.1158 -36.2388 49.3439 +-26.9342 -39.4606 53.7309 +-25.8311 -36.9138 50.2631 +-28.0936 -39.1764 53.3439 +-26.9554 -36.6956 49.966 +-29.6511 -39.421 53.6769 +-28.1162 -36.5193 49.7259 +-30.8089 -39.1086 53.2516 +-30.0066 -37.2384 50.705 +-32.4395 -39.3697 53.6071 +-31.0107 -36.8167 50.1309 +-33.9585 -39.4505 53.7171 +-32.5533 -37.0159 50.402 +-35.8676 -39.9299 54.3698 +-33.592 -36.6219 49.8656 +-36.7001 -39.1908 53.3636 +-35.4053 -37.0421 50.4377 +-38.4 -39.3697 53.6071 +-36.3397 -36.5176 49.7236 +-40.6365 -40.0324 54.5095 +-38.3514 -37.0452 50.4419 +-41.8106 -39.6065 53.9296 +-39.4915 -36.6932 49.9628 +-43.6256 -39.7643 54.1444 +-41.1745 -36.8226 50.139 +-45.1828 -39.6511 53.9902 +-43.1035 -37.1234 50.5485 +-47.3774 -40.0511 54.5349 +-44.6561 -37.058 50.4594 +-49.0801 -39.9865 54.447 +-46.4557 -37.162 50.601 +-50.7932 -39.8988 54.3276 +-48.2139 -37.193 50.6433 +-52.5159 -39.7879 54.1765 +-49.8012 -37.0599 50.462 +-54.8138 -40.0673 54.557 +-52.0312 -37.3619 50.8732 +-56.5653 -39.903 54.3333 +-53.7743 -37.2688 50.7464 +-58.9797 -40.1614 54.6852 +-56.0577 -37.5056 51.0689 +-61.0916 -40.1618 54.6857 +-57.6278 -37.2263 50.6886 +-63.4258 -40.2606 54.8202 +-60.5064 -37.7416 51.3903 +-66.2009 -40.5786 55.2531 +-62.3108 -37.533 51.1062 +-68.1651 -40.3489 54.9404 +-64.9058 -37.7548 51.4082 +-71.2146 -40.7077 55.4289 +-67.9676 -38.1787 51.9854 +-73.8667 -40.7731 55.5181 +-70.6312 -38.3105 52.1649 +-76.321 -40.6772 55.3874 +-73.4726 -38.4771 52.3918 +-79.3954 -40.8534 55.6274 +-75.9646 -38.4043 52.2926 +-82.5796 -41.0162 55.8491 +-78.2427 -38.1784 51.985 +-84.9421 -40.7156 55.4398 +-81.7043 -38.4697 52.3817 +-88.6512 -40.9981 55.8244 +-84.6508 -38.4486 52.3529 +-92.2424 -41.1447 56.0241 +-88.1027 -38.5894 52.5446 +-96.0303 -41.2989 56.234 +-91.588 -38.6702 52.6546 +-99.7727 -41.3531 56.3078 +-95.4338 -38.8245 52.8647 +-103.796 -41.4415 56.4282 +-99.566 -39.0089 53.1158 +-108.356 -41.6525 56.7154 +-102.725 -38.7377 52.7465 +-111.858 -41.3737 56.3358 +-107.774 -39.0932 53.2307 +-117.775 -41.8885 57.0369 +-112.787 -39.3259 53.5474 +-117.26 -40.0736 54.5655 +-116.802 -39.1165 53.2624 +-118.249 -38.7987 52.8297 +-122.243 -39.288 53.4958 +-135.621 -42.6845 58.1206 +-129.592 -39.9324 54.3733 +-139.443 -42.0562 57.2652 +-135.225 -39.9081 54.3403 +-138.774 -40.0644 54.553 +-138.727 -39.1677 53.3321 +-139.209 -38.4246 52.3202 +-115.11 -31.0518 42.2812 +-130.546 -34.4045 46.8463 +-110.231 -28.3709 38.6308 +-110.276 -27.7079 37.7281 +-108.741 -26.6615 36.3033 +-108.017 -25.8328 35.1748 +-107.928 -25.1653 34.266 +-108.389 -24.6281 33.5344 +-107.717 -23.8392 32.4603 +-107.125 -23.0795 31.4258 +-58.9151 -12.3494 16.8153 +-102.778 -20.9479 28.5234 +-43.8126 -8.67738 11.8154 +-41.9416 -8.06657 10.9837 +-37.4811 -6.99524 9.52495 +-33.9488 -6.14375 8.36553 +-28.0934 -4.92582 6.70717 +-16.9182 -2.87158 3.91004 +-15.7072 -2.57844 3.51089 +-17.0969 -2.71168 3.69232 +-15.684 -2.40096 3.26923 +-16.495 -2.43441 3.31477 +-15.7524 -2.23856 3.0481 +-16.0771 -2.19706 2.99159 +-14.8397 -1.94737 2.65161 +-14.5744 -1.83372 2.49686 +-14.1109 -1.69937 2.31392 +-3216.11 -370.043 503.863 +-13.7656 -1.51019 2.05632 +-3226.53 -336.762 458.547 +-15.0902 -1.49476 2.03531 +-14.0252 -1.31489 1.7904 +-14.2418 -1.2599 1.71552 +-13.5667 -1.12861 1.53676 +-13.3845 -1.04304 1.42024 +-12.2083 -0.887295 1.20817 +-13.0158 -0.877807 1.19525 +-13.8239 -0.860043 1.17106 +-13.5374 -0.771579 1.05061 +-13.6479 -0.706781 0.962377 +-13.3587 -0.622324 0.847378 +-13.6666 -0.565685 0.770256 +-13.375 -0.484227 0.65934 +-14.4801 -0.449198 0.611643 +-14.1865 -0.366638 0.499226 +-14.9909 -0.30987 0.421929 +-12.4957 -0.193686 0.26373 +-13.6979 -0.141529 0.192711 +-12.1995 -0.0630191 0.0858089 +47.4 8.88178e-16 0 +44.8983 -0.229071 0.317884 +45.5931 -0.465268 0.645656 +43.885 -0.671842 0.93232 +41.2748 -0.842659 1.16937 +38.5633 -0.984351 1.36599 +37.9479 -1.1627 1.61349 +35.0345 -1.25275 1.73845 +30.3259 -1.23977 1.72044 +28.0134 -1.28894 1.78867 +28.4912 -1.45728 2.02228 +30.3596 -1.70905 2.37167 +34.7088 -2.13276 2.95965 +36.0667 -2.40242 3.33385 +41.5877 -2.98532 4.14276 +45.4082 -3.49499 4.85002 +55.8511 -4.58899 6.36817 +115.616 -10.1018 14.0183 +120.3 -11.1394 15.4582 +119.735 -11.7142 16.2558 +120.54 -12.4261 17.2437 +119.957 -12.9979 18.0374 +120.544 -13.6987 19.0098 +120.237 -14.3015 19.8463 +119.725 -14.878 20.6463 +120.768 -15.6527 21.7214 +120.432 -16.2551 22.5573 +120.768 -16.9508 23.5227 +119.734 -17.4531 24.2199 +120.922 -18.2829 25.3713 +120.837 -18.9294 26.2685 +120.357 -19.5139 27.0796 +120.734 -20.24 28.0872 +121.099 -20.9714 29.1022 +120.781 -21.5884 29.9584 +120.454 -22.2038 30.8124 +120.879 -22.9621 31.8646 +120.532 -23.5779 32.7192 +121.026 -24.3632 33.809 +120.47 -24.9407 34.6104 +120.657 -25.6744 35.6285 +120.55 -26.3504 36.5666 +120.152 -26.9644 37.4187 +120.861 -27.8335 38.6247 +120.441 -28.449 39.4789 +121.398 -29.398 40.7958 +121.783 -30.2218 41.939 +120.96 -30.7487 42.6702 +118.304 -30.794 42.733 +115.565 -30.7902 42.7279 +111.566 -30.4151 42.2072 +109.484 -30.5301 42.3668 +106.867 -30.4724 42.2867 +104.26 -30.3903 42.1729 +101.486 -30.231 41.9518 +99.7 -30.3427 42.1068 +97.1242 -30.1915 41.897 +95.7911 -30.4069 42.1959 +97.0828 -31.4613 43.6591 +96.2613 -31.8402 44.1849 +96.302 -32.5055 45.1082 +97.2779 -33.5001 46.4883 +95.2313 -33.4531 46.4231 +94.8136 -33.9682 47.1379 +95.2358 -34.7914 48.2803 +94.5442 -35.2131 48.8656 +94.5182 -35.8852 49.7982 +94.4793 -36.5597 50.7342 +94.5103 -37.2691 51.7187 +94.6097 -38.0148 52.7534 +94.3663 -38.6301 53.6074 +93.2162 -38.8725 53.9436 +91.7425 -38.9685 54.0769 +89.7908 -38.8439 53.9041 +88.4888 -38.9839 54.0983 +86.7929 -38.9356 54.0313 +85.4992 -39.053 54.1942 +83.2695 -38.7235 53.7368 +82.9215 -39.2572 54.4775 +80.7119 -38.8978 53.9788 +80.3581 -39.4208 54.7046 +78.702 -39.2977 54.5338 +76.8294 -39.0457 54.184 +75.1952 -38.8939 53.9733 +74.1659 -39.0413 54.1779 +73.1379 -39.1812 54.372 +71.7458 -39.1142 54.2791 +69.2733 -38.4325 53.3331 +69.1286 -39.0281 54.1596 +67.6875 -38.8876 53.9646 +66.8923 -39.1074 54.2696 +65.535 -38.9885 54.1046 +64.6727 -39.1531 54.3331 +63.1221 -38.8879 53.965 +62.8802 -39.4222 54.7065 +61.0734 -38.9657 54.073 +60.021 -38.9716 54.0812 +58.3106 -38.532 53.4711 +58.258 -39.181 54.3718 +56.437 -38.6321 53.61 +55.8582 -38.9185 54.0076 +54.1939 -38.4351 53.3367 +54.1216 -39.0736 54.2228 +52.4157 -38.5247 53.461 +51.8387 -38.7906 53.8301 +50.8316 -38.729 53.7445 +50.1914 -38.9401 54.0375 +49.0729 -38.7717 53.8039 +48.4335 -38.9733 54.0836 +46.8047 -38.3622 53.2355 +46.4597 -38.7911 53.8307 +45.6523 -38.834 53.8902 +44.6236 -38.6776 53.6732 +43.5478 -38.465 53.3783 +43.4622 -39.127 54.2969 +42.3929 -38.9035 53.9867 +41.8106 -39.1183 54.2848 +40.3891 -38.5326 53.472 +40.173 -39.0879 54.2426 +38.5729 -38.2839 53.1269 +38.35 -38.8337 53.8898 +37.6212 -38.8752 53.9475 +36.8455 -38.8611 53.9279 +35.596 -38.3284 53.1886 +35.4451 -38.973 54.0832 +34.077 -38.2708 53.1087 +33.8677 -38.86 53.9263 +32.9294 -38.6127 53.5832 +32.7025 -39.1996 54.3976 +31.3843 -38.4679 53.3822 +31.1892 -39.1034 54.2641 +29.775 -38.1971 53.0064 +29.5698 -38.8282 53.8822 +28.6701 -38.5486 53.4943 +28.0936 -38.6935 53.6952 +27.1705 -38.3492 53.2175 +26.9342 -38.9742 54.0848 +26.0216 -38.6206 53.5941 +25.4441 -38.7519 53.7763 +24.5495 -38.3873 53.2704 +24.2834 -39.0056 54.1284 +23.1662 -38.2462 53.0746 +23.1479 -39.3027 54.5407 +21.9892 -38.4213 53.3176 +21.6621 -38.9769 54.0885 +20.7788 -38.5283 53.466 +20.4953 -39.192 54.387 +19.4266 -38.3421 53.2076 +19.1017 -38.9455 54.045 +18.2791 -38.5344 53.4746 +17.8068 -38.8521 53.9154 +17.126 -38.7151 53.7252 +16.5475 -38.801 53.8444 +15.7809 -38.4292 53.3284 +15.5441 -39.3627 54.6239 +14.5664 -38.4131 53.3061 +14.3251 -39.4009 54.677 +13.3776 -38.4413 53.3452 +12.9941 -39.082 54.2343 +12.1004 -38.1695 52.9681 +11.8254 -39.2086 54.4101 +11.0912 -38.7485 53.7716 +10.528 -38.8613 53.9282 +9.82933 -38.451 53.3588 +9.35243 -38.9049 53.9887 +8.65389 -38.4295 53.3289 +8.18962 -38.9944 54.1129 +7.51669 -38.57 53.524 +7.01386 -39.0139 54.1399 +6.36416 -38.6408 53.6222 +5.85687 -39.1378 54.3118 +5.19399 -38.5833 53.5424 +4.68066 -39.1332 54.3055 +4.03531 -38.5721 53.5268 +3.50651 -39.1167 54.2825 +2.85271 -38.1986 53.0085 +2.28592 -38.2701 53.1077 +1.73553 -38.7478 53.7707 +1.16059 -38.8721 53.9432 +0.570715 -38.2335 53.0569 +1.77636e-15 -38.878 53.9514 +-0.578569 -38.7596 53.7871 +-1.15709 -38.7552 53.7809 +-1.73291 -38.6894 53.6895 +-2.31733 -38.7959 53.8374 +-2.89197 -38.7242 53.7379 +-3.48557 -38.8831 53.9584 +-4.04752 -38.6888 53.6887 +-4.69461 -39.2499 54.4674 +-5.19399 -38.5833 53.5424 +-5.85687 -39.1378 54.3118 +-6.38333 -38.7572 53.7837 +-7.10794 -39.5372 54.8661 +-7.61858 -39.0928 54.2494 +-8.2993 -39.5167 54.8376 +-8.82357 -39.183 54.3746 +-9.49161 -39.4839 54.7921 +-9.91801 -38.7979 53.8402 +-10.5593 -38.9768 54.0885 +-11.2232 -39.2098 54.4117 +-11.7039 -38.8055 53.8508 +-12.2098 -38.5144 53.4468 +-12.8224 -38.5654 53.5176 +-13.3577 -38.384 53.2658 +-14.2212 -39.115 54.2802 +-14.7179 -38.8126 53.8606 +-15.3642 -38.907 53.9915 +-15.8743 -38.6566 53.644 +-16.5233 -38.7443 53.7657 +-17.2512 -38.9981 54.118 +-17.8844 -39.0216 54.1505 +-18.4662 -38.9288 54.0219 +-19.3222 -39.3951 54.6689 +-19.8527 -39.1829 54.3744 +-20.466 -39.136 54.3094 +-21.0193 -38.9744 54.0851 +-21.9402 -39.4773 54.7829 +-22.4652 -39.253 54.4716 +-23.3432 -39.6344 55.0009 +-23.3999 -38.632 53.61 +-24.5912 -39.5 54.8145 +-25.1099 -39.2635 54.4863 +-26.0533 -39.6797 55.0639 +-26.6446 -39.5453 54.8774 +-27.571 -39.8957 55.3636 +-27.8594 -39.3214 54.5666 +-28.836 -39.716 55.1142 +-29.3479 -39.4601 54.7591 +-30.4239 -39.9498 55.4386 +-30.6044 -39.261 54.4828 +-31.6541 -39.6863 55.073 +-31.8578 -39.0483 54.1877 +-33.1847 -39.7776 55.1997 +-33.4648 -39.2406 54.4544 +-35.0935 -40.2664 55.878 +-35.0467 -39.3598 54.6199 +-35.9615 -39.5409 54.8712 +-36.6458 -39.4587 54.7571 +-37.5727 -39.6281 54.9923 +-38.0643 -39.3332 54.583 +-39.35 -39.8463 55.295 +-39.7403 -39.4426 54.7347 +-41.0485 -39.9398 55.4248 +-41.4341 -39.5295 54.8555 +-42.6585 -39.9116 55.3856 +-43.1452 -39.5938 54.9446 +-44.4425 -40.0096 55.5216 +-44.8725 -39.6351 55.0019 +-45.5742 -39.5016 54.8167 +-46.3887 -39.4603 54.7593 +-47.6642 -39.7968 55.2263 +-48.4887 -39.7425 55.1509 +-49.903 -40.1557 55.7244 +-50.203 -39.6647 55.043 +-51.5755 -40.014 55.5278 +-51.9273 -39.5638 54.903 +-53.2547 -39.8502 55.3005 +-54.3455 -39.9431 55.4293 +-55.5061 -40.0732 55.6099 +-56.5474 -40.1042 55.653 +-57.7866 -40.2621 55.872 +-58.3854 -39.9657 55.4608 +-59.7014 -40.1517 55.7188 +-60.2322 -39.8018 55.2333 +-62.1622 -40.3619 56.0106 +-62.357 -39.7846 55.2094 +-65.1308 -40.8332 56.6646 +-65.1872 -40.1601 55.7305 +-67.5208 -40.8774 56.7258 +-67.5677 -40.1977 55.7827 +-69.5086 -40.637 56.3922 +-70.1838 -40.3218 55.9549 +-72.4375 -40.8962 56.752 +-73.553 -40.8068 56.628 +-75.9145 -41.3869 57.433 +-76.1607 -40.8006 56.6193 +-77.8073 -40.9582 56.838 +-78.4157 -40.5596 56.2849 +-80.7539 -41.0402 56.9518 +-81.3634 -40.6266 56.3779 +-84.4181 -41.4125 57.4685 +-84.3386 -40.6455 56.4042 +-87.1958 -41.2807 57.2855 +-88.0434 -40.9435 56.8176 +-90.7 -41.4285 57.4907 +-91.3943 -40.9998 56.8958 +-93.8397 -41.3413 57.3696 +-95.1767 -41.1739 57.1373 +-98.5383 -41.8551 58.0826 +-98.915 -41.2489 57.2415 +-102.23 -41.8493 58.0746 +-103.181 -41.4587 57.5325 +-105.702 -41.6826 57.8432 +-106.904 -41.3676 57.4061 +-109.866 -41.7122 57.8843 +-110.99 -41.3385 57.3658 +-114.402 -41.7931 57.9966 +-116.3 -41.666 57.8203 +-119.489 -41.9744 58.2482 +-117.957 -40.6214 56.3706 +-120.811 -40.7781 56.5881 +-118.542 -39.2102 54.4123 +-118.686 -38.4622 53.3743 +-130.153 -41.3143 57.3322 +-137.475 -42.7347 59.3032 +-138.817 -42.2477 58.6274 +-139.532 -41.5644 57.6792 +-139.252 -40.5901 56.3272 +-139.223 -39.6987 55.0902 +-139.269 -38.8359 53.8929 +-139.118 -37.9262 52.6305 +-139.952 -37.2877 51.7445 +-139.407 -36.2869 50.3557 +-112.707 -28.6507 39.7587 +-110.645 -27.4578 38.1034 +-109.665 -26.5566 36.8528 +-108.388 -25.6019 35.528 +-108.021 -24.8766 34.5214 +-107.922 -24.2197 33.6099 +-107.062 -23.4021 32.4752 +-106.749 -22.715 31.5218 +-104.35 -21.6036 29.9794 +-103.062 -20.7468 28.7905 +-51.494 -10.073 13.9783 +-45.8409 -8.70786 12.084 +-39.77 -7.33094 10.1732 +-36.0527 -6.44405 8.94246 +-17.5464 -3.03861 4.21671 +-16.8221 -2.82006 3.91342 +-16.9599 -2.74976 3.81586 +-16.8071 -2.63286 3.65364 +-17.6203 -2.66412 3.69702 +-17.0772 -2.48926 3.45437 +-16.0441 -2.25191 3.125 +-16.3694 -2.20943 3.06604 +-15.9136 -2.06256 2.86224 +-14.8678 -1.84759 2.56391 +-13.621 -1.62014 2.24828 +-14.2336 -1.61752 2.24464 +-3221.44 -349.059 484.392 +-3226.53 -332.611 461.567 +-3231.37 -316.137 438.706 +-3235.96 -299.639 415.812 +-13.7473 -1.20116 1.66685 +-11.9822 -0.984515 1.36622 +-14.1777 -1.09123 1.5143 +-13.5979 -0.976108 1.35455 +-13.1151 -0.873604 1.21231 +-13.5255 -0.831107 1.15333 +-13.2388 -0.74526 1.0342 +-12.9505 -0.6624 0.919218 +-13.9568 -0.642177 0.891155 +-14.1654 -0.579103 0.803625 +-14.3731 -0.513949 0.713212 +-13.5814 -0.416123 0.577457 +-14.4862 -0.369769 0.513131 +-13.7916 -0.281566 0.390732 +-14.1951 -0.217315 0.30157 +-13.4979 -0.137743 0.191148 +-13.3995 -0.0683645 0.09487 +52.7 1.77636e-15 2.84217e-14 +47.1982 -0.23778 0.336327 +53.3919 -0.538008 0.760983 +44.5847 -0.673978 0.953303 +42.574 -0.858265 1.21397 +39.4624 -0.994649 1.40688 +38.9466 -1.1783 1.66664 +35.9329 -1.26873 1.79455 +26.5352 -1.07117 1.51511 +27.2158 -1.23651 1.74897 +29.9855 -1.51445 2.14211 +32.4499 -1.80378 2.55134 +35.5044 -2.15425 3.04706 +37.0602 -2.43759 3.44783 +40.4959 -2.87043 4.06006 +46.8953 -3.56411 5.04123 +60.4064 -4.90092 6.93207 +116.803 -10.0773 14.2538 +119.807 -10.9543 15.4943 +119.834 -11.5765 16.3743 +120.147 -12.2299 17.2985 +120.055 -12.8452 18.1688 +120.642 -13.5376 19.1482 +120.237 -14.1218 19.9745 +119.921 -14.7151 20.8136 +119.889 -15.3436 21.7027 +120.53 -16.0638 22.7214 +120.185 -16.6569 23.5603 +120.608 -17.3596 24.5541 +121.018 -18.0677 25.5557 +120.934 -18.7065 26.4593 +120.261 -19.2533 27.2327 +120.831 -20.0016 28.2912 +120.332 -20.5768 29.1047 +120.781 -21.3172 30.152 +121.313 -22.0811 31.2325 +121.069 -22.7093 32.121 +120.532 -23.2817 32.9306 +121.31 -24.1135 34.1072 +121.318 -24.8008 35.0793 +120.751 -25.3716 35.8866 +120.831 -26.08 36.8887 +120.245 -26.6463 37.6897 +120.489 -27.3992 38.7546 +120.719 -28.1565 39.8258 +121.305 -29.0066 41.0282 +121.507 -29.7745 42.1143 +121.51 -30.5006 43.1414 +116.934 -30.0549 42.511 +114.655 -30.164 42.6653 +111.566 -30.033 42.48 +108.852 -29.9725 42.3945 +106.148 -29.8871 42.2736 +104.26 -30.0086 42.4454 +101.753 -29.9299 42.3341 +98.9017 -29.7217 42.0396 +96.5062 -29.6225 41.8993 +95.2638 -29.8596 42.2348 +96.3831 -30.8422 43.6245 +96.3484 -31.4687 44.5107 +96.302 -32.0972 45.3997 +96.8471 -32.9327 46.5814 +95.4884 -33.122 46.8492 +94.7283 -33.5113 47.3999 +94.6422 -34.1402 48.2894 +94.6285 -34.8018 49.2252 +94.8536 -35.5602 50.2979 +94.7294 -36.1959 51.1971 +94.9248 -36.9623 52.2811 +94.9393 -37.668 53.2793 +94.9397 -38.3766 54.2816 +94.1932 -38.7864 54.8612 +93.037 -39.0219 55.1943 +90.6751 -38.7337 54.7866 +89.9264 -39.1196 55.3324 +87.9036 -38.9385 55.0763 +87.3904 -39.4154 55.7509 +84.2086 -38.6682 54.694 +83.9318 -39.2363 55.4975 +82.3323 -39.1802 55.4182 +80.9709 -39.2225 55.478 +79.7666 -39.3289 55.6286 +78.7162 -39.5021 55.8734 +76.3186 -38.979 55.1337 +75.4292 -39.2075 55.4568 +73.654 -38.962 55.1096 +73.1354 -39.3709 55.6879 +70.5064 -38.6252 54.6332 +70.7111 -39.42 55.7574 +68.5434 -38.8846 55.0001 +68.0944 -39.3101 55.6019 +66.0957 -38.8281 54.9201 +65.3674 -39.0765 55.2716 +63.6728 -38.7343 54.7875 +62.9484 -38.9692 55.1197 +61.4787 -38.7315 54.7835 +60.8909 -39.0398 55.2196 +59.172 -38.61 54.6116 +59.6358 -39.6037 56.0172 +57.4112 -38.8052 54.8878 +57.1438 -39.3141 55.6076 +55.6568 -38.9768 55.1306 +54.8138 -39.0763 55.2712 +53.5363 -38.8539 54.9567 +52.5159 -38.8037 54.8857 +51.8056 -38.9752 55.1283 +51.395 -39.373 55.6909 +49.8461 -38.8879 55.0048 +49.5503 -39.3711 55.6882 +48.1403 -38.9613 55.1085 +47.3774 -39.0604 55.2488 +46.2754 -38.8694 54.9786 +45.5742 -39.0054 55.1709 +44.5413 -38.8483 54.9488 +44.1158 -39.2165 55.4695 +42.8765 -38.853 54.9553 +42.1816 -38.9696 55.1203 +41.2251 -38.836 54.9314 +40.8425 -39.2402 55.5031 +40.0448 -39.2455 55.5105 +39.85 -39.8457 56.3594 +37.7689 -38.5376 54.5092 +37.8152 -39.3827 55.7047 +36.4549 -38.76 54.8239 +36.1024 -39.1971 55.4421 +34.9544 -38.763 54.828 +34.1401 -38.6804 54.7113 +33.3756 -38.6443 54.6601 +33.0532 -39.1223 55.3362 +31.8148 -38.5057 54.4642 +31.1892 -38.6122 54.6147 +30.3141 -38.4001 54.3148 +30.0985 -39.026 55.2001 +28.8296 -38.2761 54.1394 +28.5234 -38.7919 54.869 +27.7445 -38.6675 54.693 +27.0466 -38.6452 54.6614 +26.2048 -38.404 54.3203 +25.8025 -38.804 54.8861 +25.0048 -38.6081 54.6089 +24.6597 -39.1123 55.3221 +23.8004 -38.7997 54.88 +23.1479 -38.809 54.8931 +22.4334 -38.7051 54.7462 +22.0638 -39.201 55.4475 +21.1998 -38.8151 54.9018 +20.8169 -39.3069 55.5974 +19.7959 -38.58 54.5692 +19.4049 -39.0667 55.2576 +18.6265 -38.7735 54.843 +18.0397 -38.8659 54.9736 +17.3764 -38.7876 54.8629 +16.8378 -38.9857 55.1431 +16.1311 -38.7884 54.864 +15.6566 -39.1495 55.3747 +14.9776 -39.0014 55.1653 +14.4291 -39.1883 55.4296 +13.7564 -39.0332 55.2102 +13.2421 -39.3277 55.6268 +12.4649 -38.8253 54.9161 +11.9296 -39.0571 55.2441 +11.2728 -38.888 55.0049 +10.7627 -39.2284 55.4864 +10.1102 -39.0528 55.2379 +9.49161 -38.9879 55.1461 +8.82357 -38.6908 54.726 +8.32368 -39.1349 55.354 +7.65254 -38.7738 54.8434 +7.14975 -39.2702 55.5454 +6.48876 -38.9024 55.0253 +5.88301 -38.8186 54.9067 +5.22538 -38.3288 54.214 +4.75739 -39.2751 55.5525 +4.10246 -38.7214 54.7692 +3.51698 -38.7406 54.7963 +2.90069 -38.3531 54.2483 +2.34525 -38.7701 54.8381 +1.76171 -38.8381 54.9343 +1.17629 -38.9032 55.0264 +0.589041 -38.9654 55.1144 +2.77556e-15 -38.9669 55.1165 +-0.589914 -39.0231 55.196 +-1.16582 -38.5569 54.5366 +-1.76694 -38.9536 55.0976 +-2.35921 -39.0009 55.1645 +-2.94431 -38.9299 55.0641 +-3.54838 -39.0865 55.2856 +-4.13299 -39.0095 55.1767 +-4.72251 -38.9872 55.1452 +-5.30383 -38.9043 55.028 +-5.97888 -39.4513 55.8016 +-6.55585 -39.3047 55.5943 +-7.14975 -39.2702 55.5454 +-7.6299 -38.6591 54.681 +-8.34805 -39.2494 55.5161 +-8.94104 -39.2059 55.4546 +-9.51944 -39.1022 55.3078 +-10.0363 -38.7673 54.8341 +-10.747 -39.1714 55.4057 +-11.2067 -38.6603 54.6828 +-11.9123 -39.0003 55.1637 +-12.3556 -38.4847 54.4344 +-13.0895 -38.8743 54.9855 +-13.5171 -38.3544 54.2501 +-14.3459 -38.9624 55.1101 +-14.8478 -38.6632 54.6869 +-15.6116 -39.0369 55.2156 +-16.0144 -38.5077 54.467 +-16.9587 -39.2658 55.5392 +-17.4014 -38.8436 54.942 +-18.2467 -39.312 55.6046 +-18.8403 -39.2186 55.4724 +-19.3497 -38.9557 55.1007 +-19.9663 -38.9121 55.0389 +-20.6999 -39.0861 55.285 +-21.1095 -38.6499 54.6681 +-22.1565 -39.3657 55.6806 +-22.5604 -38.9241 55.0559 +-23.5711 -39.5185 55.8967 +-24.0675 -39.2351 55.4958 +-25.0701 -39.7633 56.2429 +-25.4951 -39.3651 55.6797 +-26.2325 -39.4507 55.8008 +-27.0478 -39.6393 56.0676 +-27.6834 -39.5551 55.9485 +-28.242 -39.3608 55.6736 +-29.3048 -39.8547 56.3723 +-29.5074 -39.1761 55.4124 +-30.912 -40.0808 56.692 +-31.2264 -39.5558 55.9495 +-32.119 -39.7632 56.2428 +-32.7188 -39.5999 56.0118 +-33.8861 -40.1081 56.7306 +-34.1788 -39.5742 55.9755 +-35.5021 -40.2235 56.8939 +-35.8779 -39.7871 56.2766 +-36.7127 -39.8597 56.3793 +-37.0752 -39.4196 55.7568 +-38.3969 -39.9887 56.5617 +-38.9015 -39.6932 56.1438 +-40 -39.9956 56.5716 +-40.5523 -39.7429 56.2141 +-41.6666 -40.0319 56.6229 +-42.3224 -39.8697 56.3935 +-43.8243 -40.4873 57.2669 +-43.9511 -39.8267 56.3327 +-45.5318 -40.4753 57.25 +-45.7004 -39.8592 56.3786 +-47.14 -40.3454 57.0663 +-47.2949 -39.7258 56.1898 +-48.8687 -40.2899 56.9879 +-49.4178 -39.9952 56.5709 +-51.1961 -40.6788 57.5379 +-51.1548 -39.9089 56.4489 +-52.9597 -40.5717 57.3864 +-53.5101 -40.2576 56.9421 +-55.2864 -40.8508 57.7812 +-55.2793 -40.119 56.746 +-57.2052 -40.7811 57.6826 +-57.7559 -40.4468 57.2097 +-59.3293 -40.8176 57.7343 +-60.1389 -40.6489 57.4956 +-61.5383 -40.8672 57.8044 +-62.0212 -40.4692 57.2414 +-63.9689 -41.0132 58.0108 +-64.5189 -40.6468 57.4926 +-66.3584 -41.0802 58.1056 +-66.9081 -40.7025 57.5714 +-69.2574 -41.402 58.5608 +-69.8106 -41.0103 58.0068 +-72.1249 -41.6368 58.8929 +-72.0383 -40.8672 57.8044 +-74.5236 -41.5454 58.7637 +-75.2939 -41.2479 58.3428 +-77.0847 -41.4969 58.6951 +-77.5616 -41.029 58.0333 +-80.2596 -41.7183 59.0082 +-80.1383 -40.9299 57.893 +-82.5652 -41.4336 58.6055 +-83.5686 -41.2035 58.28 +-85.6438 -41.486 58.6796 +-86.1133 -40.9795 57.9632 +-89.0609 -41.634 58.889 +-88.9825 -40.8604 57.7947 +-92.2761 -41.619 58.8677 +-93.219 -41.2931 58.4068 +-96.8745 -42.1421 59.6076 +-97.1863 -41.5151 58.7208 +-100.075 -41.974 59.3699 +-101.357 -41.7365 59.0339 +-104.114 -42.0852 59.5271 +-105.406 -41.8207 59.153 +-107.692 -41.9337 59.3129 +-109.489 -41.8356 59.1741 +-112.717 -42.2572 59.7704 +-113.774 -41.8428 59.1843 +-117.031 -42.2164 59.7127 +-119.114 -42.138 59.6018 +-122.489 -42.4877 60.0965 +-124.333 -42.2793 59.8017 +-128.432 -42.8059 60.5465 +-118.629 -38.746 54.804 +-119.386 -38.2029 54.0358 +-119.695 -37.5173 53.0662 +-137.475 -42.1978 59.6864 +-138.551 -41.6369 58.8931 +-139.799 -41.1208 58.1631 +-138.715 -39.9256 56.4725 +-139.673 -39.3265 55.6251 +-139.179 -38.3231 54.2059 +-140.115 -37.7181 53.3502 +-140.407 -36.939 52.2482 +-140.686 -36.1598 51.146 +-117.659 -29.5337 41.7738 +-110.829 -27.1579 38.4133 +-109.849 -26.2672 37.1535 +-109.222 -25.475 36.0329 +-108.021 -24.5641 34.7445 +-107.922 -23.9155 33.8271 +-107.343 -23.1687 32.7709 +-107.313 -22.5481 31.893 +-105.953 -21.6598 30.6365 +-103.629 -20.599 29.1361 +-70.176 -13.555 19.1728 +-53.1641 -9.97207 14.1049 +-43.2987 -7.88113 11.1474 +-39.9735 -7.05509 9.97903 +-21.1899 -3.62348 5.12521 +-17.8795 -2.95967 4.18628 +-16.5744 -2.6535 3.75323 +-16.8071 -2.59979 3.67725 +-16.749 -2.50056 3.5369 +-15.7188 -2.26247 3.20013 +-15.7524 -2.18319 3.088 +-16.5643 -2.20765 3.12259 +-16.4994 -2.11162 2.98677 +-15.2591 -1.87239 2.64838 +-14.7969 -1.7379 2.45816 +-13.9391 -1.56416 2.21241 +-3221.44 -344.674 487.522 +-3226.53 -328.433 464.55 +-3231.37 -312.165 441.54 +-3235.96 -295.875 418.498 +-3240.31 -279.562 395.425 +-3244.42 -263.228 372.321 +-12.9879 -0.987098 1.39619 +-13.1016 -0.928671 1.31355 +-12.4196 -0.816885 1.15544 +-13.7244 -0.832732 1.17785 +-13.5374 -0.752495 1.06436 +-13.6479 -0.689299 0.974974 +-13.5581 -0.615989 0.871282 +-13.9659 -0.563774 0.797426 +-14.8722 -0.525114 0.742744 +-13.2818 -0.401831 0.568368 +-13.7869 -0.347497 0.491515 +-14.1913 -0.286088 0.404656 +-14.3951 -0.217607 0.307793 +-14.4978 -0.146088 0.206634 +-13.9995 -0.0705278 0.0997576 +56 2.22045e-15 2.84217e-14 +56.4978 -0.280994 0.405142 +55.7915 -0.555004 0.800214 +48.3834 -0.722054 1.04107 +43.3736 -0.86321 1.24459 +41.5604 -1.03414 1.49104 +39.346 -1.17518 1.69439 +36.931 -1.28731 1.85607 +25.7372 -1.02568 1.47884 +27.9137 -1.25201 1.80517 +30.6828 -1.52987 2.20579 +34.8389 -1.91182 2.7565 +36.6979 -2.1982 3.1694 +38.4512 -2.49676 3.59986 +40.7936 -2.85459 4.11579 +45.8048 -3.43674 4.95515 +64.3674 -5.15555 7.43336 +119.275 -10.1591 14.6476 +120.597 -10.8856 15.6951 +120.327 -11.4756 16.5457 +120.344 -12.0934 17.4365 +120.252 -12.7018 18.3137 +119.857 -13.2777 19.144 +120.335 -13.9528 20.1174 +120.117 -14.5507 20.9795 +120.865 -15.2709 22.0178 +120.53 -15.8586 22.8651 +119.99 -16.4175 23.6711 +120.608 -17.1377 24.7095 +121.212 -17.8653 25.7585 +120.644 -18.4232 26.5629 +121.128 -19.1444 27.6027 +120.638 -19.7146 28.4249 +121.099 -20.4433 29.4755 +120.781 -21.0448 30.3427 +120.454 -21.6447 31.2077 +120.214 -22.2605 32.0956 +120.722 -23.0203 33.1911 +120.365 -23.6198 34.0555 +121.601 -24.541 35.3836 +120.751 -25.0473 36.1137 +120.924 -25.7667 37.1508 +121.085 -26.4896 38.1932 +120.861 -27.1326 39.1202 +120.719 -27.7967 40.0778 +121.49 -28.6796 41.3507 +121.691 -29.4386 42.445 +120.043 -29.7472 42.89 +117.482 -29.8099 42.9804 +113.836 -29.5659 42.6286 +110.932 -29.4806 42.5057 +108.852 -29.5895 42.6627 +105.339 -29.2804 42.2169 +103.544 -29.4217 42.4207 +100.149 -29.0817 41.9305 +98.9904 -29.3681 42.3434 +96.4179 -29.2172 42.1259 +96.4062 -29.8316 43.0117 +96.2082 -30.3928 43.8209 +96.4354 -31.0946 44.8327 +97.0814 -31.9435 46.0567 +96.5025 -32.3962 46.7093 +94.8884 -32.4933 46.8494 +95.1546 -33.2319 47.9144 +94.6422 -33.7039 48.5949 +94.6285 -34.3571 49.5366 +94.6859 -35.0436 50.5265 +94.9796 -35.8278 51.6571 +94.9248 -36.49 52.6119 +94.6097 -37.0575 53.4302 +95.0216 -37.919 54.6722 +94.5188 -38.4232 55.3991 +93.846 -38.8583 56.0265 +91.8005 -38.7134 55.8175 +91.1243 -39.1341 56.4242 +89.3316 -39.0654 56.3251 +87.8632 -39.1223 56.4071 +85.8521 -38.9191 56.1143 +85.2529 -39.3446 56.7277 +82.641 -38.8246 55.9779 +82.0434 -39.2341 56.5684 +80.1468 -39.0114 56.2473 +79.0936 -39.1842 56.4964 +77.6667 -39.1607 56.4625 +77.0641 -39.5454 57.0172 +74.6125 -38.9646 56.1798 +74.013 -39.3342 56.7127 +72.3924 -39.1516 56.4494 +71.7901 -39.5101 56.9664 +69.4706 -38.907 56.0968 +68.7308 -39.1704 56.4766 +66.8667 -38.7791 55.9123 +66.3399 -39.1512 56.4488 +65.0495 -39.0662 56.3263 +63.835 -39.0131 56.2497 +62.6272 -38.9509 56.16 +61.56 -38.9644 56.1795 +60.2984 -38.8423 56.0034 +59.767 -39.1836 56.4956 +58.3204 -38.9161 56.1098 +57.2724 -38.899 56.0853 +56.0385 -38.7426 55.8597 +55.3802 -38.9755 56.1955 +54.2833 -38.8926 56.0761 +53.7472 -39.206 56.5279 +51.9882 -38.6128 55.6726 +51.5154 -38.9609 56.1745 +50.2625 -38.7117 55.8152 +49.7854 -39.0524 56.3064 +48.5468 -38.7882 55.9254 +48.0083 -39.0748 56.3387 +46.8418 -38.8424 56.0036 +45.7979 -38.6959 55.7924 +45.0933 -38.8272 55.9816 +43.8979 -38.5241 55.5447 +43.575 -38.9813 56.2039 +43.1884 -39.3899 56.793 +42.2179 -39.263 56.6101 +41.203 -39.0807 56.3472 +40.0448 -38.744 55.8617 +39.6 -39.0897 56.3602 +38.4583 -38.7396 55.8553 +37.5243 -38.5804 55.6259 +36.8844 -38.7155 55.8207 +36.3371 -38.9478 56.1555 +35.2776 -38.6215 55.6851 +34.6395 -38.7447 55.8627 +33.6879 -38.5074 55.5207 +33.1847 -38.776 55.9079 +32.2453 -38.528 55.5503 +31.6118 -38.6353 55.705 +30.7702 -38.4799 55.4809 +30.1799 -38.6315 55.6995 +29.2283 -38.3097 55.2355 +28.9922 -38.9258 56.1238 +28.1272 -38.6998 55.7981 +27.4587 -38.7326 55.8453 +26.5713 -38.4435 55.4285 +25.8742 -38.4145 55.3867 +25.1449 -38.3283 55.2623 +24.7281 -38.7196 55.8266 +24.0007 -38.6262 55.6919 +23.2781 -38.5286 55.5511 +22.719 -38.6969 55.7939 +22.1565 -38.8627 56.0328 +21.2599 -38.4278 55.4059 +20.9338 -39.0226 56.2634 +20.0515 -38.5788 55.6235 +19.4876 -38.7318 55.8442 +18.68 -38.3879 55.3484 +18.2985 -38.9198 56.1152 +17.5767 -38.7334 55.8465 +17.0797 -39.0405 56.2893 +16.3178 -38.7361 55.8503 +15.6791 -38.7047 55.8051 +14.9993 -38.5586 55.5945 +14.533 -38.9662 56.1821 +13.7763 -38.5902 55.6401 +13.1849 -38.6573 55.7367 +12.6836 -39.0016 56.2331 +11.9991 -38.7825 55.9173 +11.4543 -39.0094 56.2443 +10.8253 -38.9523 56.162 +10.0806 -38.441 55.4249 +9.61686 -38.9976 56.2273 +8.94104 -38.7049 55.8054 +8.40898 -39.0307 56.2752 +7.73178 -38.6747 55.7618 +7.12884 -38.655 55.7334 +6.53668 -38.689 55.7824 +5.93531 -38.6633 55.7453 +5.30383 -38.4072 55.3761 +4.74344 -38.6596 55.74 +4.16351 -38.7954 55.9359 +3.54838 -38.587 55.6354 +2.97048 -38.774 55.905 +2.39411 -39.0721 56.3347 +1.75909 -38.2849 55.1998 +1.18676 -38.748 55.8675 +0.589041 -38.4675 55.4631 +2.33147e-15 -38.6399 55.7117 +-0.59515 -38.8664 56.0383 +-1.18851 -38.805 55.9497 +-1.78527 -38.8546 56.0212 +-2.38364 -38.9012 56.0884 +-2.9792 -38.8879 56.0692 +-3.60595 -39.213 56.538 +-4.17572 -38.9092 56.0999 +-4.80622 -39.1712 56.4777 +-5.34306 -38.6913 55.7857 +-6.04861 -39.4013 56.8094 +-6.5846 -38.9726 56.1913 +-7.24382 -39.2785 56.6323 +-7.77706 -38.9012 56.0884 +-8.45773 -39.257 56.6014 +-9.16294 -39.6654 57.1903 +-9.74212 -39.5055 56.9597 +-10.1545 -38.7228 55.8312 +-10.8409 -39.0086 56.2432 +-11.3223 -38.5597 55.596 +-12.0165 -38.8387 55.9982 +-12.4831 -38.3852 55.3444 +-13.3948 -39.2727 56.624 +-13.8162 -38.702 55.8011 +-14.6162 -39.1892 56.5037 +-15.2157 -39.115 56.3967 +-15.7691 -38.9268 56.1253 +-16.4346 -39.0131 56.2498 +-16.9829 -38.8194 55.9704 +-17.5767 -38.7334 55.8465 +-18.402 -39.1399 56.4326 +-19.0541 -39.1568 56.4569 +-19.8735 -39.4988 56.95 +-20.2219 -38.9067 56.0963 +-21.08 -39.2951 56.6563 +-21.6809 -39.1888 56.503 +-22.62 -39.6756 57.205 +-22.9411 -39.0752 56.3393 +-23.8316 -39.4447 56.872 +-24.4347 -39.3246 56.6989 +-25.3095 -39.6301 57.1393 +-25.9153 -39.5026 56.9555 +-26.8776 -39.9043 57.5347 +-27.5242 -39.8222 57.4163 +-28.058 -39.5781 57.0643 +-28.663 -39.437 56.8609 +-29.6956 -39.87 57.4853 +-29.9461 -39.2504 56.5919 +-30.9527 -39.6206 57.1257 +-31.5996 -39.517 56.9763 +-32.6684 -39.9266 57.5668 +-33.3216 -39.814 57.4045 +-34.2806 -40.0566 57.7542 +-34.848 -39.8336 57.4327 +-35.5929 -39.8111 57.4002 +-36.2011 -39.6325 57.1428 +-37.5577 -40.2561 58.0419 +-38.1727 -40.0678 57.7704 +-39.2696 -40.3749 58.2131 +-39.8863 -40.178 57.9293 +-40.85 -40.3236 58.1393 +-41.0599 -39.7261 57.2777 +-42.0786 -39.9112 57.5446 +-43.2106 -40.1863 57.9412 +-43.9303 -40.0665 57.7686 +-44.9182 -40.183 57.9365 +-46.022 -40.3883 58.2325 +-46.5835 -40.1103 57.8317 +-47.6432 -40.2551 58.0404 +-48.3145 -40.0636 57.7643 +-49.3849 -40.1952 57.9541 +-50.5792 -40.4121 58.2668 +-51.7251 -40.5739 58.5002 +-52.3444 -40.3151 58.127 +-53.8023 -40.6905 58.6682 +-54.6668 -40.6022 58.5409 +-55.7174 -40.6432 58.6 +-56.5866 -40.5429 58.4555 +-58.338 -41.0572 59.1969 +-58.9645 -40.7655 58.7763 +-60.4863 -41.0819 59.2326 +-61.1131 -40.7795 58.7966 +-62.1288 -40.7321 58.7282 +-62.9489 -40.5496 58.4651 +-64.7718 -40.9973 59.1106 +-65.7349 -40.8837 58.9469 +-67.3814 -41.1804 59.3746 +-68.629 -41.2158 59.4257 +-70.091 -41.3649 59.6406 +-70.8619 -41.096 59.2529 +-72.1249 -41.1048 59.2655 +-73.1082 -40.9442 59.034 +-75.3868 -41.4896 59.8204 +-76.4545 -41.3485 59.617 +-77.6698 -41.2776 59.5147 +-79.626 -41.5828 59.9548 +-80.9285 -41.5284 59.8764 +-81.9358 -41.3132 59.566 +-83.6973 -41.4649 59.7848 +-84.5571 -41.1582 59.3425 +-86.946 -41.5786 59.9488 +-88.0424 -41.3621 59.6366 +-89.7604 -41.4248 59.727 +-91.4086 -41.438 59.746 +-93.2217 -41.5082 59.8472 +-94.8057 -41.4593 59.7767 +-97.3537 -41.8094 60.2815 +-98.7136 -41.6287 60.0209 +-101.613 -42.0741 60.6631 +-102.986 -41.865 60.3617 +-104.524 -41.7109 60.1394 +-107.054 -41.9319 60.4581 +-109.184 -41.9715 60.5152 +-110.907 -41.8358 60.3195 +-113.975 -42.1827 60.8198 +-115.629 -41.9818 60.53 +-119.32 -42.4923 61.2661 +-120.478 -42.0759 60.6658 +-124.289 -42.5612 61.3655 +-128.038 -42.9828 61.9733 +-129.731 -42.6863 61.5458 +-117.585 -37.9141 54.6652 +-118.598 -37.466 54.0192 +-118.904 -36.7932 53.0491 +-138.093 -41.8459 60.3341 +-138.817 -41.1839 59.3796 +-138.73 -40.2849 58.0834 +-139.699 -39.6951 57.2331 +-139.493 -38.774 55.905 +-139.179 -37.8334 54.5488 +-140.478 -37.3325 53.8266 +-141.044 -36.6324 52.8172 +-140.686 -35.6977 51.4696 +-122.336 -30.3153 43.7091 +-111.657 -27.0113 38.9454 +-108.833 -25.6916 37.0426 +-109.13 -25.128 36.23 +-108.673 -24.3963 35.175 +-107.735 -23.5691 33.9823 +-107.53 -22.9126 33.0357 +-107.783 -22.3574 32.2353 +-104.916 -21.1737 30.5286 +-61.0805 -11.9862 17.2819 +-105.169 -20.0546 28.9151 +-61.4383 -11.3768 16.4033 +-45.3969 -8.15747 11.7616 +-41.1211 -7.16492 10.3305 +-37.6816 -6.36123 9.17173 +-36.0473 -5.89083 8.49349 +-18.7908 -2.96989 4.28204 +-16.5173 -2.52232 3.63672 +-16.6521 -2.45434 3.53871 +-16.5921 -2.35764 3.39929 +-17.1137 -2.34156 3.3761 +-16.272 -2.14097 3.08689 +-16.1089 -2.03529 2.93452 +-15.846 -1.91956 2.76765 +-14.9928 -1.73842 2.50648 +-14.5281 -1.60941 2.32047 +-3221.44 -340.27 490.607 +-3226.53 -324.236 467.489 +-3231.37 -308.176 444.334 +-3235.96 -292.094 421.146 +-3240.31 -275.99 397.926 +-3244.42 -259.864 374.676 +-12.7896 -0.95961 1.38358 +-13.1016 -0.916804 1.32186 +-14.1087 -0.916126 1.32089 +-12.8293 -0.768479 1.10801 +-13.9355 -0.764729 1.1026 +-14.5444 -0.725194 1.0456 +-13.1593 -0.590234 0.851009 +-14.8637 -0.592348 0.854057 +-14.0737 -0.49057 0.707312 +-14.58 -0.435472 0.62787 +-15.0856 -0.375373 0.54122 +-15.1907 -0.302322 0.435892 +-14.7949 -0.220794 0.318345 +-13.8979 -0.138253 0.199336 +-14.1995 -0.0706216 0.101823 +58.8 4.44089e-16 2.84217e-14 +59.0977 -0.290089 0.42642 +58.5911 -0.575247 0.845593 +51.1825 -0.75386 1.10815 +43.9732 -0.863722 1.26964 +42.6594 -1.04763 1.53999 +40.2448 -1.18633 1.74387 +37.2304 -1.28081 1.88275 +26.1362 -1.02799 1.5111 +27.1162 -1.20037 1.7645 +30.7824 -1.5148 2.22671 +34.4407 -1.86531 2.74194 +37.6924 -2.22831 3.27554 +39.9416 -2.55969 3.76265 +42.1832 -2.9133 4.28245 +46.2013 -3.42125 5.02912 +64.3674 -5.08827 7.47958 +118.583 -9.96832 14.6531 +119.807 -10.6732 15.6892 +120.327 -11.3258 16.6486 +120.344 -11.9356 17.5449 +120.154 -12.5258 18.4125 +119.759 -13.0936 19.2472 +120.433 -13.7819 20.2589 +120.117 -14.3608 21.1099 +120.768 -15.0594 22.1368 +120.627 -15.6643 23.0259 +120.768 -16.3083 23.9726 +120.608 -16.9141 24.8631 +120.341 -17.5054 25.7323 +120.644 -18.1828 26.7281 +120.357 -18.7743 27.5975 +120.831 -19.4883 28.6472 +120.428 -20.0647 29.4944 +120.686 -20.7537 30.5073 +120.454 -21.3622 31.4017 +121.069 -22.1265 32.5252 +120.627 -22.7021 33.3713 +121.121 -23.4581 34.4826 +121.412 -24.1831 35.5484 +121.032 -24.7782 36.423 +121.018 -25.4501 37.4108 +120.245 -25.9625 38.164 +120.861 -26.7785 39.3635 +120.627 -27.4129 40.2959 +121.583 -28.3268 41.6393 +121.691 -29.0544 42.7089 +119.951 -29.3366 43.1237 +116.568 -29.1921 42.9114 +113.108 -28.9935 42.6194 +110.841 -29.0721 42.735 +108.13 -29.0097 42.6432 +105.518 -28.9476 42.5519 +102.828 -28.8369 42.3893 +100.862 -28.9064 42.4915 +98.4582 -28.8291 42.3777 +95.7998 -28.6511 42.1161 +96.2305 -29.3886 43.2002 +96.9953 -30.2416 44.4541 +96.3484 -30.6611 45.0708 +97.0814 -31.5266 46.343 +95.6408 -31.6879 46.5801 +94.8884 -32.0692 47.1406 +95.0694 -32.7689 48.1691 +94.6422 -33.2641 48.897 +94.7129 -33.9389 49.889 +94.6859 -34.5863 50.8406 +94.8962 -35.3292 51.9326 +94.9248 -36.0138 52.939 +94.6921 -36.6058 53.8092 +94.5301 -37.2305 54.7275 +94.9259 -38.0851 55.9837 +94.0078 -38.4172 56.472 +93.167 -38.7769 57.0007 +91.7632 -38.8942 57.1731 +89.5696 -38.6583 56.8264 +88.0208 -38.6809 56.8596 +86.3217 -38.6213 56.772 +85.4861 -38.9373 57.2365 +83.7984 -38.8546 57.1149 +82.503 -38.939 57.239 +81.4395 -39.1233 57.5099 +79.5464 -38.8942 57.1731 +78.1161 -38.8732 57.1423 +77.51 -39.2552 57.7037 +75.7184 -39.0261 57.367 +74.4518 -39.051 57.4037 +73.4079 -39.1827 57.5972 +72.1498 -39.1899 57.6077 +69.8985 -38.6358 56.7932 +68.7308 -38.6592 56.8277 +67.4976 -38.634 56.7907 +66.8956 -38.9639 57.2755 +65.1183 -38.5971 56.7364 +64.517 -38.9153 57.2041 +63.2352 -38.8158 57.0579 +62.1622 -38.8321 57.0819 +60.3647 -38.3775 56.4135 +59.767 -38.6723 56.8469 +58.3854 -38.4509 56.5215 +57.8509 -38.7791 57.004 +56.6746 -38.671 56.8451 +55.5061 -38.5543 56.6735 +54.3455 -38.4291 56.4894 +53.7472 -38.6944 56.8794 +52.6579 -38.5998 56.7403 +51.9968 -38.8118 57.052 +50.3815 -38.2969 56.2951 +49.7854 -38.5427 56.6565 +48.6629 -38.3735 56.4078 +48.0657 -38.6109 56.7567 +46.9551 -38.4282 56.4881 +45.7979 -38.1909 56.1393 +45.314 -38.508 56.6054 +44.3336 -38.3988 56.4449 +43.8436 -38.7098 56.902 +43.1884 -38.8758 57.1461 +42.2179 -38.7506 56.9621 +41.2545 -38.6189 56.7684 +40.197 -38.3837 56.4227 +39.6 -38.5796 56.7106 +38.5075 -38.2829 56.2746 +37.9121 -38.4705 56.5503 +36.9798 -38.3091 56.313 +36.7596 -38.8865 57.1617 +35.2314 -38.0676 55.958 +34.6395 -38.2391 56.2101 +34.1341 -38.5083 56.6059 +33.097 -38.1689 56.1069 +32.4175 -38.2283 56.1943 +31.4428 -37.9272 55.7516 +30.8946 -38.1312 56.0516 +30.2612 -38.2301 56.1968 +29.6669 -38.3771 56.413 +28.7969 -38.1588 56.0922 +28.242 -38.3507 56.3742 +27.5336 -38.3314 56.3458 +26.7179 -38.1511 56.0808 +26.3042 -38.5434 56.6574 +25.5301 -38.4076 56.4578 +24.8649 -38.4257 56.4845 +24.3345 -38.6524 56.8176 +23.3758 -38.1853 56.131 +22.7825 -38.2986 56.2975 +22.2183 -38.4625 56.5385 +21.4403 -38.2482 56.2235 +20.9923 -38.6209 56.7714 +20.1935 -38.345 56.3658 +19.5703 -38.3886 56.4298 +18.8403 -38.2121 56.1705 +18.2209 -38.2488 56.2245 +17.7019 -38.5002 56.5939 +17.1281 -38.6402 56.7997 +16.5046 -38.6681 56.8408 +15.7916 -38.4736 56.5548 +15.1291 -38.3849 56.4245 +14.6786 -38.8428 57.0976 +13.876 -38.3622 56.3911 +13.2803 -38.4289 56.4891 +12.72 -38.6032 56.7453 +12.1206 -38.6642 56.835 +11.4873 -38.6112 56.7572 +10.9035 -38.7217 56.9196 +10.1988 -38.3843 56.4236 +9.70037 -38.8228 57.0682 +8.99325 -38.4229 56.4803 +8.50648 -38.968 57.2815 +7.7997 -38.5053 56.6014 +7.20201 -38.5421 56.6556 +6.59419 -38.52 56.6231 +6.00503 -38.6069 56.7508 +5.39014 -38.5228 56.6271 +4.79227 -38.5478 56.6639 +4.18793 -38.5137 56.6137 +3.59025 -38.5328 56.6418 +2.95303 -38.0432 55.9222 +2.39062 -38.506 56.6024 +1.79836 -38.6287 56.7828 +1.19898 -38.636 56.7935 +0.591659 -38.1342 56.0559 +3.55271e-15 -38.5857 56.7195 +-0.599513 -38.6404 56.8001 +-1.19549 -38.5236 56.6283 +-1.80097 -38.6849 56.8654 +-2.40109 -38.6746 56.8503 +-3.00538 -38.7175 56.9134 +-3.60595 -38.7013 56.8895 +-4.20624 -38.6821 56.8613 +-4.79227 -38.5478 56.6639 +-5.45291 -38.9714 57.2866 +-6.05732 -38.9431 57.245 +-6.64211 -38.8 57.0346 +-7.25428 -38.8218 57.0666 +-7.84498 -38.7288 56.93 +-8.55523 -39.1913 57.6098 +-9.16294 -39.1478 57.5459 +-9.74212 -38.99 57.3139 +-10.258 -38.6069 56.7507 +-10.9817 -38.9995 57.3278 +-11.4543 -38.5003 56.594 +-12.1901 -38.8857 57.1607 +-12.8112 -38.8797 57.1518 +-13.3948 -38.7601 56.976 +-13.9757 -38.6378 56.7962 +-14.6162 -38.6778 56.855 +-15.1941 -38.5497 56.6666 +-15.7916 -38.4736 56.5548 +-16.6213 -38.9415 57.2427 +-17.2006 -38.8039 57.0404 +-17.802 -38.718 56.9141 +-18.6609 -39.1725 57.5822 +-19.2679 -39.0794 57.4453 +-19.8735 -38.9833 57.3041 +-20.4775 -38.8843 57.1585 +-21.1385 -38.8898 57.1667 +-21.9816 -39.2138 57.6429 +-22.62 -39.1579 57.5607 +-23.195 -38.992 57.3169 +-23.8316 -38.9299 57.2256 +-24.6683 -39.1826 57.597 +-25.3437 -39.1657 57.5722 +-25.9504 -39.0398 57.3871 +-26.8776 -39.3835 57.8924 +-27.5242 -39.3025 57.7732 +-28.0955 -39.1137 57.4958 +-29.0074 -39.39 57.902 +-29.6565 -39.2979 57.7665 +-30.3049 -39.2025 57.6262 +-30.912 -39.0522 57.4054 +-32.0558 -39.5644 58.1582 +-33.091 -39.9153 58.6741 +-33.2785 -39.2436 57.6868 +-34.2806 -39.5338 58.1133 +-35.3389 -39.8674 58.6037 +-35.7291 -39.4419 57.9781 +-36.6167 -39.5644 58.1582 +-37.5577 -39.7307 58.4028 +-38.6021 -39.9898 58.7835 +-39.2211 -39.7987 58.5027 +-39.7878 -39.5558 58.1456 +-40.85 -39.7974 58.5008 +-41.5166 -39.6438 58.275 +-42.5936 -39.8724 58.6111 +-43.2106 -39.6618 58.3015 +-44.3013 -39.8775 58.6186 +-44.9182 -39.6586 58.2967 +-46.022 -39.8612 58.5945 +-46.5835 -39.5869 58.1913 +-47.6992 -39.7764 58.4698 +-48.7676 -39.9116 58.6686 +-49.9585 -40.1314 58.9917 +-50.5792 -39.8847 58.6291 +-52.2541 -40.454 59.4659 +-52.6418 -40.0151 58.8207 +-54.043 -40.3392 59.2971 +-54.6668 -40.0723 58.9049 +-56.5177 -40.689 59.8113 +-57.1468 -40.41 59.4012 +-58.338 -40.5213 59.565 +-59.2825 -40.4505 59.4608 +-59.715 -40.0287 58.8407 +-60.9182 -40.119 58.9735 +-62.0632 -40.158 59.0309 +-63.8103 -40.568 59.6336 +-65.1064 -40.6713 59.7854 +-66.4105 -40.7649 59.923 +-67.586 -40.7665 59.9253 +-68.629 -40.6779 59.7951 +-70.5078 -41.0678 60.3683 +-71.7731 -41.0812 60.388 +-73.1148 -41.1251 60.4525 +-74.5347 -41.1983 60.5601 +-75.8184 -41.1826 60.537 +-77.2524 -41.2348 60.6137 +-78.9862 -41.4294 60.8998 +-79.626 -41.0401 60.3275 +-80.7055 -40.8736 60.0827 +-82.3851 -40.9977 60.2651 +-83.6973 -40.9238 60.1565 +-85.2415 -40.9498 60.1947 +-86.946 -41.036 60.3215 +-88.1967 -40.8939 60.1126 +-89.7604 -40.8842 60.0983 +-91.6434 -41.0023 60.272 +-93.9309 -41.2781 60.6774 +-95.2817 -41.1236 60.4503 +-97.8328 -41.4668 60.9547 +-99.4371 -41.3865 60.8368 +-101.613 -41.525 61.0403 +-103.474 -41.5146 61.025 +-105.343 -41.4891 60.9875 +-107.796 -41.6713 61.2554 +-109.184 -41.4237 60.8914 +-111.657 -41.5692 61.1053 +-113.556 -41.4791 60.9728 +-115.882 -41.5246 61.0397 +-119.066 -41.8484 61.5157 +-121.586 -41.9089 61.6046 +-124.546 -42.0927 61.8747 +-128.814 -42.6788 62.7363 +-131.116 -42.5792 62.5899 +-117.324 -37.3362 54.8829 +-118.598 -36.9771 54.355 +-118.465 -36.1788 53.1816 +-138.093 -41.2998 60.7093 +-139.261 -40.7762 59.9396 +-138.73 -39.7591 58.4445 +-138.983 -38.9763 57.2938 +-139.223 -38.194 56.1438 +-139.901 -37.5334 55.1727 +-140.931 -36.9641 54.3359 +-141.044 -36.1544 53.1456 +-140.503 -35.1861 51.7224 +-125.27 -30.6374 45.0359 +-111.381 -26.5929 39.0906 +-109.572 -25.5286 37.5261 +-109.037 -24.779 36.4243 +-107.928 -23.913 35.1513 +-107.735 -23.2615 34.1935 +-107.53 -22.6136 33.2411 +-107.783 -22.0657 32.4357 +-107.932 -21.4982 31.6016 +-56.0693 -10.8592 15.9627 +-104.79 -19.7215 28.99 +-61.4383 -11.2284 16.5053 +-47.6858 -8.45695 12.4314 +-41.6949 -7.17007 10.5397 +-38.9281 -6.48588 9.53401 +-37.4892 -6.04653 8.88818 +-20.3326 -3.17163 4.66219 +-17.3867 -2.62042 3.85192 +-17.1362 -2.49273 3.66422 +-16.5921 -2.32687 3.42042 +-16.6275 -2.24535 3.30058 +-16.6617 -2.16364 3.18048 +-16.8899 -2.10613 3.09594 +-17.1176 -2.04653 3.00833 +-14.9928 -1.71573 2.52206 +-15.2152 -1.66354 2.44534 +-3221.44 -335.829 493.657 +-3226.53 -320.004 470.395 +-3231.37 -304.155 447.096 +-3235.96 -288.282 423.764 +-3240.31 -272.388 400.4 +-3244.42 -256.473 377.006 +-13.0871 -0.969113 1.42456 +-13.3001 -0.918547 1.35023 +-14.0094 -0.897803 1.31974 +-12.8293 -0.75845 1.11489 +-11.9448 -0.646928 0.950962 +-13.0502 -0.642198 0.944008 +-13.4584 -0.595771 0.875763 +-13.9659 -0.549306 0.807461 +-13.6744 -0.470433 0.69152 +-14.2804 -0.420957 0.618792 +-15.0856 -0.370475 0.544585 +-13.8915 -0.272857 0.401091 +-14.1951 -0.209079 0.307338 +-14.1978 -0.139394 0.204905 +-14.3995 -0.0706815 0.103899 +59.5 3.10862e-15 2.84217e-14 +59.9977 -0.290588 0.435554 +57.4912 -0.556938 0.834777 +49.9829 -0.726398 1.08878 +46.0719 -0.892906 1.33835 +43.8582 -1.06274 1.59292 +40.4445 -1.17636 1.76321 +38.3284 -1.30104 1.95009 +28.0315 -1.08787 1.63057 +27.5149 -1.20181 1.80136 +32.4759 -1.57688 2.36354 +35.3366 -1.88836 2.83041 +38.5874 -2.25087 3.37376 +38.948 -2.46281 3.69142 +43.3743 -2.9557 4.43021 +47.1928 -3.44818 5.16837 +65.2587 -5.09009 7.62939 +118.682 -9.84391 14.7547 +119.807 -10.5312 15.7849 +120.327 -11.1752 16.7501 +120.344 -11.7768 17.6518 +120.154 -12.3592 18.5248 +119.759 -12.9194 19.3646 +120.531 -13.6096 20.3991 +120.214 -14.1813 21.2559 +120.768 -14.8591 22.2718 +120.53 -15.4434 23.1476 +120.866 -16.1043 24.1383 +120.608 -16.689 25.0147 +120.244 -17.2586 25.8684 +120.644 -17.9409 26.891 +120.357 -18.5245 27.7658 +120.638 -19.1985 28.776 +121.195 -19.9238 29.8633 +120.877 -20.5101 30.742 +121.313 -21.2282 31.8184 +120.974 -21.815 32.6978 +121.765 -22.6113 33.8914 +120.365 -23.0014 34.4762 +121.412 -23.8614 35.7651 +121.032 -24.4485 36.6451 +121.018 -25.1115 37.6389 +120.245 -25.6171 38.3967 +120.861 -26.4222 39.6035 +120.719 -27.069 40.5728 +120.751 -27.7587 41.6068 +121.691 -28.6678 42.9693 +119.218 -28.7692 43.1213 +116.386 -28.7586 43.1053 +113.017 -28.5847 42.8447 +110.841 -28.6853 42.9955 +107.317 -28.4087 42.5809 +105.518 -28.5624 42.8114 +102.828 -28.4533 42.6477 +100.238 -28.3455 42.4862 +98.4582 -28.4455 42.6361 +95.7998 -28.2699 42.3729 +97.2851 -29.3154 43.9399 +97.0828 -29.8662 44.7655 +97.1317 -30.4992 45.7143 +97.3413 -31.1904 46.7504 +96.3301 -31.4917 47.2019 +94.8884 -31.6426 47.4281 +95.1546 -32.3619 48.5063 +95.3206 -33.0568 49.5478 +94.7129 -33.4874 50.1932 +95.4407 -34.3982 51.5584 +94.8962 -34.8591 52.2493 +95.0906 -35.5967 53.3548 +94.7745 -36.1502 54.1844 +94.7759 -36.8307 55.2044 +95.1701 -37.675 56.47 +94.655 -38.1671 57.2076 +92.9259 -38.1619 57.1998 +92.2424 -38.5771 57.8221 +90.0456 -38.3467 57.4767 +89.4392 -38.7813 58.1282 +87.026 -38.4184 57.5842 +86.1855 -38.7336 58.0567 +84.1842 -38.5141 57.7277 +82.5796 -38.4566 57.6415 +81.2114 -38.4947 57.6985 +80.603 -38.8865 58.2858 +78.7901 -38.687 57.9868 +77.6586 -38.8071 58.1669 +76.4557 -38.8819 58.2788 +75.622 -39.1371 58.6614 +73.1903 -38.5468 57.7766 +72.3656 -38.7841 58.1323 +70.6118 -38.5107 57.7226 +69.2965 -38.4588 57.6448 +68.1985 -38.5159 57.7303 +66.8956 -38.4455 57.6248 +65.7379 -38.446 57.6255 +65.0626 -38.7222 58.0396 +63.3028 -38.3403 57.4671 +62.6975 -38.6454 57.9245 +60.961 -38.2409 57.3182 +60.3574 -38.5348 57.7586 +58.3854 -37.9394 56.8662 +57.8509 -38.2632 57.3516 +56.611 -38.1137 57.1275 +56.0095 -38.3864 57.5362 +54.3455 -37.9178 56.8339 +54.3013 -38.5732 57.8162 +52.597 -38.0422 57.0202 +51.9366 -38.2511 57.3334 +50.9168 -38.1889 57.2402 +50.1969 -38.3443 57.4731 +48.6629 -37.863 56.7517 +47.8936 -37.9608 56.8984 +46.9551 -37.9169 56.8326 +46.3571 -38.1429 57.1712 +45.2036 -37.9031 56.8119 +44.3336 -37.8879 56.7891 +43.8436 -38.1948 57.249 +43.1884 -38.3586 57.4946 +42.2179 -38.2351 57.3094 +41.1515 -38.01 56.972 +40.6538 -38.3034 57.4119 +40 -38.4508 57.6327 +38.9507 -38.2083 57.2693 +38.3969 -38.4441 57.6227 +37.3615 -38.1896 57.2413 +36.7127 -38.3201 57.4368 +35.7393 -38.1026 57.1108 +34.9119 -38.027 56.9975 +34.0003 -37.847 56.7277 +33.4039 -38.0102 56.9723 +32.4175 -37.7197 56.5369 +31.8232 -37.8753 56.7701 +31.2679 -38.0784 57.0746 +30.5866 -38.127 57.1474 +30.0258 -38.3246 57.4436 +28.9922 -37.9066 56.8171 +28.1655 -37.7379 56.5642 +27.4961 -37.77 56.6123 +26.9745 -38.005 56.9645 +26.3042 -38.0306 57.0029 +25.4601 -37.7926 56.6462 +25.0701 -38.2274 57.2979 +24.2344 -37.9812 56.9288 +23.6362 -38.097 57.1025 +22.7507 -37.7364 56.562 +22.4346 -38.3202 57.437 +21.6809 -38.1628 57.201 +20.9631 -38.054 57.038 +20.1367 -37.7284 56.5499 +19.7908 -38.3046 57.4136 +18.7869 -37.5968 56.3527 +18.3762 -38.0616 57.0494 +17.7269 -38.0417 57.0196 +17.0797 -38.0184 56.9846 +16.4346 -37.9917 56.9446 +15.9265 -38.2862 57.386 +15.3023 -38.3077 57.4182 +14.637 -38.2175 57.283 +13.8561 -37.7975 56.6535 +13.433 -38.3534 57.4868 +12.6836 -37.9804 56.9277 +12.0859 -38.0404 57.0177 +11.4873 -38.0975 57.1033 +10.8878 -38.1517 57.1844 +10.2875 -38.203 57.2613 +9.68645 -38.2514 57.3338 +9.08462 -38.2968 57.402 +8.38461 -37.8987 56.8052 +7.78838 -37.9378 56.8639 +7.19156 -37.9741 56.9183 +6.60377 -38.0627 57.0511 +6.07476 -38.5356 57.7598 +5.39014 -38.0102 56.9724 +4.77832 -37.9242 56.8434 +4.23677 -38.4445 57.6233 +3.63212 -38.4635 57.6518 +2.98793 -37.9806 56.928 +2.39062 -37.9936 56.9475 +1.7748 -37.6154 56.3806 +1.19724 -38.0665 57.0568 +0.599513 -38.1263 57.1464 +2.77556e-15 -38.5163 57.7309 +-0.599513 -38.1263 57.1464 +-1.19724 -38.0665 57.0568 +-1.82192 -38.614 57.8774 +-2.43249 -38.6592 57.9451 +-2.99665 -38.0915 57.0942 +-3.59548 -38.0755 57.0702 +-4.20014 -38.1121 57.1251 +-4.85505 -38.5332 57.7563 +-5.39014 -38.0102 56.9724 +-6.05732 -38.425 57.5941 +-6.6517 -38.339 57.4651 +-7.25428 -38.3053 57.4146 +-7.8563 -38.2687 57.3598 +-8.54304 -38.6148 57.8785 +-9.16294 -38.6269 57.8968 +-9.74212 -38.4712 57.6633 +-10.258 -38.0932 57.0968 +-10.9973 -38.5354 57.7596 +-11.4213 -37.8786 56.7751 +-12.1901 -38.3684 57.5092 +-12.6107 -37.7622 56.6006 +-13.3948 -38.2444 57.3235 +-13.9956 -38.1781 57.224 +-14.5954 -38.1089 57.1203 +-15.1941 -38.0368 57.0122 +-15.8141 -38.0158 56.9807 +-16.598 -38.3695 57.5109 +-17.1765 -38.2338 57.3075 +-18.0524 -38.7402 58.0665 +-18.4279 -38.1688 57.2101 +-19.2946 -38.6129 57.8757 +-19.8735 -38.4647 57.6535 +-20.4775 -38.3669 57.507 +-21.3431 -38.7439 58.0721 +-21.9816 -38.692 57.9943 +-22.62 -38.6369 57.9117 +-23.2267 -38.5259 57.7453 +-23.799 -38.3594 57.4958 +-24.7351 -38.7659 58.105 +-25.6857 -39.1661 58.7049 +-25.9153 -38.4684 57.6591 +-26.9134 -38.9114 58.3231 +-27.4876 -38.7279 58.0481 +-28.058 -38.5419 57.7692 +-29.0457 -38.9173 58.3319 +-30.0082 -39.2349 58.808 +-30.6638 -39.1389 58.6642 +-31.278 -38.9889 58.4393 +-31.8899 -38.836 58.21 +-33.0487 -39.3339 58.9565 +-33.3216 -38.7716 58.1136 +-34.6313 -39.4069 59.0658 +-35.4281 -39.4363 59.1099 +-35.7291 -38.9171 58.3317 +-36.9861 -39.4318 59.1031 +-37.9333 -39.5942 59.3465 +-38.5544 -39.4089 59.0689 +-39.1726 -39.2207 58.7868 +-39.8371 -39.0778 58.5726 +-40.85 -39.2679 58.8575 +-41.5674 -39.1642 58.702 +-42.5936 -39.3419 58.9684 +-43.2106 -39.1341 58.657 +-44.2483 -39.2999 58.9055 +-44.9182 -39.1309 58.6522 +-46.022 -39.3308 58.9518 +-47.0802 -39.4767 59.1704 +-48.1465 -39.6152 59.3781 +-48.8242 -39.4263 59.0949 +-49.9585 -39.5975 59.3514 +-51.1019 -39.7607 59.5961 +-52.019 -39.7361 59.5593 +-52.8797 -39.6612 59.4469 +-54.043 -39.8025 59.6587 +-55.3364 -40.0235 59.9901 +-56.5177 -40.1476 60.1761 +-57.1468 -39.8723 59.7635 +-58.6527 -40.1979 60.2514 +-59.5369 -40.0836 60.0801 +-60.2935 -39.8788 59.7731 +-61.5027 -39.965 59.9024 +-62.7192 -40.0426 60.0187 +-63.8103 -40.0283 59.9972 +-65.7755 -40.5426 60.7681 +-66.4105 -40.2225 60.2884 +-67.9952 -40.4676 60.6557 +-68.8355 -40.2575 60.3408 +-70.7162 -40.6412 60.9159 +-71.9834 -40.6534 60.9342 +-73.7512 -40.9311 61.3505 +-74.7486 -40.7669 61.1043 +-75.8184 -40.6347 60.9061 +-77.2524 -40.6862 60.9833 +-78.9862 -40.8782 61.2711 +-80.0683 -40.7191 61.0326 +-81.9689 -40.9611 61.3953 +-82.3851 -40.4522 60.6326 +-84.6029 -40.8163 61.1783 +-85.2415 -40.405 60.5618 +-87.8653 -40.9181 61.3309 +-88.5053 -40.491 60.6908 +-90.3044 -40.5847 60.8312 +-92.113 -40.6641 60.9502 +-94.1673 -40.8314 61.201 +-95.9958 -40.8806 61.2747 +-98.5516 -41.2157 61.777 +-100.241 -41.166 61.7025 +-102.341 -41.2661 61.8526 +-103.474 -40.9623 61.3971 +-105.671 -41.0645 61.5503 +-107.466 -40.9912 61.4405 +-109.682 -41.0588 61.5418 +-112.408 -41.2918 61.8911 +-114.982 -41.4411 62.1148 +-117.4 -41.5088 62.2164 +-119.829 -41.5563 62.2875 +-121.586 -41.3513 61.9803 +-126.518 -42.1901 63.2375 +-128.814 -42.1109 63.1188 +-132.155 -42.3457 63.4707 +-118.02 -37.0581 55.5453 +-118.511 -36.4582 54.6461 +-118.025 -35.5651 53.3074 +-138.358 -40.8285 61.1966 +-138.728 -40.08 60.0747 +-139.532 -39.4569 59.1408 +-138.804 -38.4082 57.5689 +-139.133 -37.6615 56.4498 +-139.901 -37.034 55.5092 +-141.384 -36.5896 54.843 +-141.044 -35.6733 53.4697 +-141.051 -34.8534 52.2407 +-126.463 -30.5175 45.7418 +-111.381 -26.2391 39.329 +-110.311 -25.3588 38.0096 +-109.037 -24.4493 36.6464 +-107.928 -23.5949 35.3657 +-107.642 -22.9321 34.3722 +-107.436 -22.2933 33.4147 +-107.783 -21.7721 32.6335 +-106.896 -21.0084 31.4889 +-57.7712 -11.04 16.5475 +-103.272 -19.1774 28.7444 +-70.8537 -12.7769 19.1509 +-47.7812 -8.36114 12.5323 +-43.5119 -7.38297 11.0661 +-38.3528 -6.30501 9.4504 +-38.066 -6.05782 9.07989 +-34.0162 -5.2355 7.84733 +-17.0969 -2.54246 3.81082 +-16.8458 -2.41787 3.62408 +-16.5921 -2.29591 3.44128 +-16.822 -2.24138 3.35954 +-16.1745 -2.07244 3.10631 +-16.3041 -2.00603 3.00678 +-14.9657 -1.76545 2.64618 +-15.3848 -1.73716 2.60378 +-15.6079 -1.68376 2.52374 +-3221.44 -331.361 496.667 +-3226.53 -315.747 473.264 +-3231.37 -300.108 449.823 +-3235.96 -284.447 426.348 +-3240.31 -268.764 402.842 +-3244.42 -253.06 379.304 +-3248.27 -237.337 355.738 +-3251.88 -221.597 332.145 +-14.0094 -0.885858 1.32779 +-13.7244 -0.800567 1.19995 +-11.9448 -0.638321 0.956761 +-14.4448 -0.701374 1.05127 +-13.0596 -0.570424 0.854991 +-14.8637 -0.57684 0.864608 +-14.5728 -0.494667 0.741442 +-15.279 -0.444402 0.666101 +-14.4862 -0.35102 0.526134 +-14.791 -0.286659 0.429665 +-15.0948 -0.219372 0.32881 +-14.1978 -0.13754 0.206154 +-14.0995 -0.0682881 0.102355 +64.3 2.66454e-15 2.84217e-14 +64.5975 -0.308622 0.47175 +65.59 -0.626777 0.958071 +53.7816 -0.771 1.17853 +48.0707 -0.919006 1.40476 +44.1579 -1.05549 1.61339 +43.1408 -1.23776 1.892 +38.1287 -1.27671 1.95153 +29.1289 -1.11512 1.70453 +28.5118 -1.22846 1.87779 +32.8744 -1.57457 2.40684 +36.2324 -1.90998 2.91953 +42.2672 -2.43207 3.71759 +42.1274 -2.62771 4.01664 +45.2601 -3.04237 4.65047 +49.1757 -3.54432 5.41773 +70.7051 -5.4401 8.31556 +118.682 -9.71037 14.843 +120.597 -10.4568 15.984 +120.425 -11.0326 16.8641 +120.442 -11.6265 17.772 +120.154 -12.1915 18.6356 +120.74 -12.8486 19.64 +120.433 -13.4141 20.5043 +120.997 -14.08 21.5222 +119.889 -14.5509 22.242 +120.53 -15.2339 23.286 +120.866 -15.8858 24.2826 +120.705 -16.4759 25.1845 +120.244 -17.0245 26.0231 +120.548 -17.6833 27.0301 +120.261 -18.2585 27.9094 +120.734 -18.9532 28.9712 +120.524 -19.5447 29.8755 +120.877 -20.2319 30.9258 +121.313 -20.9403 32.0086 +120.974 -21.519 32.8933 +120.816 -22.1309 33.8286 +121.121 -22.832 34.9003 +121.412 -23.5377 35.979 +120.938 -24.0981 36.8356 +120.924 -24.7517 37.8346 +120.245 -25.2696 38.6263 +120.861 -26.0638 39.8403 +120.719 -26.7018 40.8154 +121.767 -27.6127 42.2078 +121.875 -28.3217 43.2916 +119.401 -28.4226 43.4458 +116.294 -28.3462 43.3291 +113.108 -28.2196 43.1356 +110.841 -28.2962 43.2526 +107.408 -28.0469 42.8715 +105.518 -28.175 43.0674 +102.828 -28.0673 42.9027 +100.238 -27.961 42.7402 +97.6599 -27.8321 42.5432 +95.7115 -27.8607 42.5869 +96.6699 -28.7349 43.9232 +96.8204 -29.3814 44.9114 +97.1317 -30.0854 45.9876 +97.5145 -30.8221 47.1136 +95.8993 -30.9255 47.2718 +94.8884 -31.2133 47.7117 +94.3873 -31.6655 48.4028 +94.6422 -32.3763 49.4894 +94.7972 -33.0625 50.5383 +94.7698 -33.693 51.5021 +94.9796 -34.4165 52.6079 +95.0077 -35.0832 53.6271 +94.8569 -35.6908 54.5559 +95.3493 -36.5509 55.8704 +94.9259 -37.0686 56.6618 +94.5741 -37.6172 57.5004 +94.3728 -38.2304 58.4378 +93.4404 -38.548 58.9233 +91.3943 -38.3931 58.6864 +90.306 -38.626 59.0425 +87.4956 -38.1017 58.241 +87.0403 -38.5872 58.9831 +85.1874 -38.4444 58.7648 +84.0351 -38.6036 59.0081 +81.9718 -38.328 58.587 +81.0558 -38.5745 58.9637 +79.9885 -38.7426 59.2207 +78.922 -38.9035 59.4666 +76.898 -38.5763 58.9666 +76.2802 -38.9422 59.5258 +74.4959 -38.7022 59.1589 +73.9481 -39.0947 59.7589 +70.6831 -38.0267 58.1264 +70.4278 -38.5565 58.9362 +69.39 -38.6572 59.0902 +68.0765 -38.5934 58.9927 +66.9081 -38.5995 59.002 +66.2902 -38.9177 59.4883 +63.8433 -38.1431 58.3043 +63.8351 -38.8128 59.328 +61.4911 -38.0502 58.1624 +60.8823 -38.3425 58.6091 +60.2688 -38.632 59.0516 +59.0722 -38.541 58.9125 +57.1198 -37.9346 57.9856 +57.2682 -38.7166 59.181 +55.4038 -38.1318 58.2871 +54.8554 -38.4382 58.7554 +53.6928 -38.3079 58.5563 +52.5385 -38.1695 58.3446 +51.2737 -37.9349 57.9861 +50.6083 -38.1342 58.2906 +49.4759 -37.9733 58.0448 +48.8687 -38.2083 58.404 +47.748 -38.0342 58.1378 +47.14 -38.2609 58.4844 +45.59 -37.7086 57.6401 +45.4229 -38.2922 58.5322 +43.8974 -37.7229 57.6619 +43.7183 -38.3026 58.5481 +42.5836 -38.0432 58.1516 +41.9756 -38.2451 58.4603 +40.9076 -38.0197 58.1157 +40.3 -38.2137 58.4122 +39.7386 -38.4524 58.7771 +38.6878 -38.2099 58.4064 +37.7433 -38.0564 58.1718 +37.0883 -38.187 58.3714 +36.0626 -37.9256 57.9719 +34.8665 -37.4624 57.2638 +33.911 -37.2356 56.9171 +33.7107 -37.839 57.8395 +33.1063 -37.9986 58.0834 +32.119 -37.7088 57.6404 +31.4752 -37.811 57.7967 +30.912 -38.0099 58.1008 +29.9859 -37.7545 57.7103 +29.3439 -37.8459 57.8501 +28.3951 -37.5295 57.3664 +28.2079 -38.222 58.425 +26.9012 -37.3875 57.1494 +26.5909 -37.9236 57.9687 +25.6702 -37.5876 57.4552 +25.0359 -37.6574 57.5619 +24.5014 -37.8788 57.9003 +23.8967 -37.9944 58.077 +23.0046 -37.6399 57.5351 +22.4655 -37.8524 57.86 +21.8312 -37.9061 57.9421 +21.1969 -37.9566 58.0193 +20.3071 -37.5315 57.3695 +19.9837 -38.1534 58.32 +18.9472 -37.4033 57.1735 +18.5314 -37.8626 57.8755 +17.8521 -37.7906 57.7655 +17.37 -38.1401 58.2997 +16.598 -37.849 57.8547 +16.0615 -38.0869 58.2183 +15.259 -37.6811 57.5982 +14.8033 -38.1274 58.2804 +14.0355 -37.7675 57.7302 +13.6047 -38.3168 58.5698 +12.8476 -37.9497 58.0087 +12.2596 -38.0635 58.1827 +11.6524 -38.1207 58.2701 +11.0443 -38.1749 58.3529 +10.2875 -37.6848 57.6037 +9.82562 -38.2746 58.5053 +9.08462 -37.7773 57.7452 +8.48211 -37.8193 57.8093 +7.87894 -37.8584 57.8691 +7.26473 -37.8401 57.8412 +6.69003 -38.0369 58.1419 +5.9876 -37.4675 57.2716 +5.39014 -37.4946 57.3131 +4.91086 -38.4474 58.7694 +4.23677 -37.923 57.9678 +3.63735 -37.9964 58.0801 +3.02282 -37.9029 57.9372 +2.42203 -37.9706 58.0407 +1.79312 -37.4882 57.3033 +1.21469 -38.0975 58.2346 +0.605622 -37.9924 58.0739 +2.33147e-15 -38.1033 58.2435 +-0.606494 -38.0471 58.1576 +-1.2112 -37.988 58.0672 +-1.82192 -38.0902 58.2235 +-2.429 -38.0801 58.208 +-3.03155 -38.0124 58.1045 +-3.64258 -38.0511 58.1636 +-4.24898 -38.0322 58.1348 +-4.84807 -37.9559 58.0181 +-5.46075 -37.9858 58.0639 +-6.12705 -38.3401 58.6054 +-6.74754 -38.3638 58.6417 +-7.3379 -38.2212 58.4237 +-7.94687 -38.1847 58.3679 +-8.73803 -38.9604 59.5536 +-9.2021 -38.2658 58.4919 +-9.88129 -38.4914 58.8368 +-10.4058 -38.1179 58.2658 +-11.1381 -38.4993 58.8488 +-11.5863 -37.9047 57.9398 +-12.2075 -37.9018 57.9355 +-12.7929 -37.7882 57.7619 +-13.5856 -38.2631 58.4877 +-14.1751 -38.143 58.3042 +-14.7825 -38.0739 58.1985 +-15.3889 -38.0018 58.0883 +-16.219 -38.4603 58.7891 +-16.598 -37.849 57.8547 +-17.4184 -38.2463 58.4621 +-17.802 -37.6846 57.6035 +-18.9197 -38.6558 59.088 +-19.2679 -38.0364 58.1412 +-20.094 -38.3639 58.6418 +-20.7331 -38.3189 58.573 +-21.3724 -38.2708 58.4994 +-21.9515 -38.1149 58.2613 +-22.8673 -38.5293 58.8947 +-23.5123 -38.4705 58.8048 +-24.1246 -38.3567 58.6308 +-24.7351 -38.24 58.4524 +-25.6857 -38.6348 59.0559 +-26.3006 -38.5107 58.8661 +-27.236 -38.8435 59.3749 +-27.8174 -38.661 59.0959 +-28.7698 -38.9834 59.5888 +-29.3901 -38.8445 59.3764 +-30.0082 -38.7026 59.1596 +-31.1423 -39.2105 59.9359 +-31.8068 -39.1102 59.7826 +-32.4705 -39.0066 59.6242 +-33.5559 -39.3957 60.219 +-33.709 -38.6904 59.1409 +-35.1135 -39.4136 60.2463 +-35.3389 -38.8034 59.3136 +-36.4554 -39.1696 59.8734 +-36.9861 -38.8969 59.4565 +-37.9333 -39.0571 59.7014 +-38.5544 -38.8743 59.422 +-39.6574 -39.1675 59.8702 +-40.231 -38.9289 59.5055 +-41.4 -39.2567 60.0066 +-42.4302 -39.4348 60.2788 +-43.1087 -39.2775 60.0384 +-43.6286 -38.9768 59.5786 +-45.2021 -39.6025 60.5351 +-45.8854 -39.4312 60.2733 +-47.0568 -39.6696 60.6377 +-47.577 -39.352 60.1523 +-48.7057 -39.5317 60.4269 +-49.334 -39.2975 60.0689 +-50.4747 -39.4639 60.3233 +-51.1019 -39.2213 59.9524 +-52.7831 -39.7729 60.7955 +-53.4151 -39.5192 60.4077 +-55.2466 -40.1369 61.352 +-55.0929 -39.3069 60.0832 +-57.0718 -39.9913 61.1293 +-58.2674 -40.1027 61.2996 +-59.3449 -40.1206 61.3271 +-59.855 -39.7511 60.7622 +-61.3219 -40.0088 61.1561 +-61.9573 -39.7143 60.706 +-63.7689 -40.1605 61.3881 +-64.1416 -39.6903 60.6693 +-66.1101 -40.1961 61.4424 +-67.3563 -40.242 61.5126 +-68.609 -40.279 61.5692 +-69.5926 -40.1482 61.3693 +-71.4109 -40.4837 61.8821 +-73.1048 -40.7267 62.2535 +-73.7512 -40.3759 61.7173 +-75.3906 -40.5593 61.9976 +-76.3939 -40.3877 61.7353 +-77.6876 -40.3604 61.6935 +-79.425 -40.5477 61.9799 +-80.6581 -40.4626 61.8499 +-82.4148 -40.6252 62.0984 +-83.6584 -40.5202 61.9378 +-85.4331 -40.6577 62.148 +-85.9259 -40.1768 61.413 +-88.9378 -40.8557 62.4507 +-89.1226 -40.2203 61.4795 +-91.8587 -40.7233 62.2483 +-92.5825 -40.3169 61.6272 +-95.5857 -40.8842 62.4943 +-96.4718 -40.526 61.9468 +-99.5898 -41.0849 62.8011 +-100.964 -40.9006 62.5194 +-102.826 -40.8994 62.5176 +-105.021 -41.0107 62.6876 +-106.408 -40.79 62.3503 +-108.785 -40.9313 62.5662 +-110.511 -40.808 62.3777 +-112.575 -40.7921 62.3535 +-115.988 -41.2367 63.0331 +-117.653 -41.034 62.7233 +-122.119 -41.7759 63.8572 +-123.633 -41.4769 63.4003 +-128.575 -42.2945 64.65 +-129.848 -41.8731 64.0059 +-133.368 -42.1545 64.436 +-118.455 -36.6902 56.0834 +-119.123 -36.1495 55.2569 +-118.289 -35.161 53.746 +-133.413 -38.8354 59.3625 +-139.438 -39.7385 60.743 +-138.73 -38.698 59.1525 +-139.341 -38.0338 58.1372 +-139.223 -37.1746 56.8239 +-140.081 -36.5788 55.9131 +-140.75 -35.9313 54.9234 +-141.044 -35.1894 53.7894 +-140.047 -34.1357 52.1787 +-129.489 -30.8239 47.1164 +-111.841 -25.9901 39.7276 +-109.48 -24.8263 37.9486 +-108.759 -24.0562 36.7715 +-108.673 -23.4353 35.8225 +-107.548 -22.6014 34.5477 +-108.279 -22.1634 33.8783 +-107.595 -21.4393 32.7714 +-108.121 -20.961 32.0403 +-106.844 -20.1407 30.7864 +-64.7705 -11.8645 18.1357 +-67.7152 -12.0452 18.412 +-53.3128 -9.20255 14.0667 +-44.7551 -7.49091 11.4504 +-38.9281 -6.31277 9.6495 +-38.4505 -6.03603 9.22648 +-36.8107 -5.58876 8.54279 +-20.4776 -3.0039 4.59166 +-17.233 -2.4399 3.72956 +-17.1742 -2.34424 3.58333 +-17.5027 -2.30044 3.51638 +-16.7592 -2.11821 3.23783 +-16.4994 -2.00252 3.06099 +-16.6285 -1.935 2.95778 +-16.4627 -1.83365 2.80287 +-15.1171 -1.60869 2.45899 +-15.0438 -1.52643 2.33325 +-3226.53 -311.464 476.093 +-3231.37 -296.037 452.512 +-3235.96 -280.588 428.898 +-3240.31 -265.118 405.251 +-3244.42 -249.627 381.572 +-3248.27 -234.118 357.865 +-3251.88 -218.591 334.131 +-14.3074 -0.892433 1.36414 +-14.9178 -0.858381 1.31209 +-11.9448 -0.629662 0.962481 +-14.4448 -0.691859 1.05755 +-14.0565 -0.60564 0.925761 +-14.2652 -0.546102 0.834754 +-14.3731 -0.481272 0.735657 +-15.279 -0.438374 0.670084 +-14.1865 -0.339095 0.518329 +-14.1913 -0.271307 0.414711 +-14.1951 -0.203498 0.311061 +-15.0977 -0.144273 0.220531 +-14.3995 -0.068795 0.105158 +68.8 8.88178e-16 2.84217e-14 +74.5972 -0.351467 0.547971 +74.5886 -0.702907 1.0959 +55.9808 -0.791427 1.23391 +49.5698 -0.934557 1.45706 +45.157 -1.06444 1.65957 +45.8371 -1.29693 2.02204 +40.9235 -1.35133 2.10686 +30.3259 -1.14489 1.78499 +30.0072 -1.27501 1.98786 +34.2691 -1.61867 2.52366 +40.214 -2.09054 3.25935 +46.5436 -2.64109 4.11772 +43.0217 -2.64637 4.12594 +47.543 -3.15162 4.91367 +52.5466 -3.73488 5.82304 +82.2913 -6.24396 9.73494 +119.77 -9.66383 15.0668 +119.807 -10.2446 15.9724 +120.425 -10.88 16.9629 +119.556 -11.3813 17.7446 +120.055 -12.013 18.7295 +120.74 -12.6709 19.7551 +120.433 -13.2285 20.6245 +120.117 -13.7842 21.4909 +119.889 -14.3496 22.3724 +120.53 -15.0231 23.4225 +121.06 -15.6912 24.4642 +120.705 -16.248 25.3322 +120.438 -16.816 26.2178 +120.644 -17.4527 27.2104 +120.357 -18.0204 28.0956 +120.734 -18.691 29.141 +120.62 -19.2897 30.0745 +120.781 -19.9362 31.0824 +120.645 -20.537 32.0191 +120.974 -21.2214 33.0862 +120.816 -21.8247 34.0269 +121.121 -22.5162 35.1049 +120.658 -23.0679 35.9651 +120.938 -23.7648 37.0516 +121.018 -24.4282 38.0859 +120.432 -24.9587 38.9131 +120.861 -25.7032 40.0738 +120.719 -26.3324 41.0547 +121.213 -27.1067 42.262 +121.599 -27.8666 43.4468 +118.576 -27.8357 43.3985 +115.289 -27.7125 43.2065 +112.198 -27.6054 43.0394 +109.21 -27.4941 42.8659 +107.408 -27.6589 43.1229 +104.08 -27.4065 42.7294 +102.291 -27.5345 42.9289 +99.5254 -27.3781 42.6851 +96.8616 -27.2227 42.4428 +95.7998 -27.5006 42.8761 +97.0214 -28.4404 44.3413 +96.2956 -28.8179 44.9298 +96.1743 -29.3768 45.8013 +97.5145 -30.3957 47.3898 +95.8132 -30.4703 47.5062 +94.8027 -30.7537 47.948 +95.1546 -31.4813 49.0824 +94.727 -31.957 49.8241 +94.7972 -32.6052 50.8346 +94.9375 -33.2858 51.8957 +95.063 -33.9702 52.9628 +95.0906 -34.6281 53.9885 +95.0217 -35.2582 54.971 +95.0216 -35.9214 56.0049 +94.8445 -36.5244 56.9451 +94.9786 -37.2555 58.0849 +94.5336 -37.7658 58.8805 +94.4786 -38.4371 59.9272 +91.8703 -38.0592 59.3379 +91.0152 -38.3908 59.855 +88.9825 -38.2132 59.5781 +88.5946 -38.7329 60.3883 +86.422 -38.462 59.966 +85.414 -38.6942 60.328 +83.4165 -38.464 59.9691 +83.0181 -38.9618 60.7452 +81.1119 -38.7433 60.4046 +80.2596 -39.0156 60.8291 +77.709 -38.4439 59.9377 +77.8892 -39.2136 61.1377 +75.9467 -38.9101 60.6646 +75.6026 -39.4164 61.454 +72.3236 -38.371 59.8241 +71.0642 -38.3667 59.8174 +69.39 -38.1224 59.4366 +69.188 -38.6809 60.3073 +68.1471 -38.7705 60.4469 +66.8358 -38.6952 60.3296 +65.1945 -38.4116 59.8873 +64.5042 -38.6771 60.3014 +62.6839 -38.2517 59.6381 +62.1288 -38.5863 60.1598 +60.2038 -38.0565 59.3337 +60.1649 -38.7109 60.3541 +58.4556 -38.2847 59.6895 +57.394 -38.2649 59.6587 +56.0263 -38.0268 59.2875 +55.4095 -38.2894 59.6968 +54.2406 -38.1635 59.5005 +53.6217 -38.4175 59.8967 +51.8685 -37.8441 59.0027 +51.7839 -38.4802 59.9943 +49.9985 -37.8436 59.0018 +49.3849 -38.0777 59.3669 +48.7676 -38.309 59.7274 +47.6992 -38.1792 59.525 +46.5283 -37.9523 59.1713 +45.9131 -38.17 59.5107 +44.0586 -37.3376 58.2129 +43.9303 -37.9558 59.1768 +43.1061 -37.9772 59.2101 +42.6452 -38.3177 59.741 +41.2629 -37.8194 58.9641 +40.75 -38.1059 59.4107 +39.6893 -37.8735 59.0484 +39.512 -38.484 60.0003 +38.0773 -37.8621 59.0307 +37.8864 -38.4691 59.977 +36.4781 -37.832 58.9838 +35.9106 -38.0505 59.3244 +35.2942 -38.2183 59.586 +34.2806 -37.9464 59.1621 +33.6229 -38.0577 59.3356 +33.0487 -38.2636 59.6567 +31.8899 -37.7792 58.9014 +31.2374 -37.8787 59.0565 +30.2651 -37.5788 58.589 +29.6956 -37.7697 58.8866 +29.0839 -37.9081 59.1024 +28.4701 -38.0437 59.3138 +27.5609 -37.7745 58.8942 +26.9493 -37.9029 59.0943 +25.9854 -37.5228 58.5016 +25.6857 -38.1004 59.4021 +24.5014 -37.3548 58.2397 +24.1246 -37.8261 58.9745 +23.2902 -37.58 58.5908 +22.96 -38.1504 59.4801 +21.8012 -37.3303 58.2015 +21.4601 -37.8962 59.0839 +20.8467 -37.9959 59.2393 +20.2042 -38.0408 59.3092 +19.1343 -37.25 58.0764 +18.7644 -37.8081 58.9465 +17.9773 -37.5292 58.5117 +17.4184 -37.7173 58.8048 +16.9948 -38.2178 59.5853 +16.4214 -38.4017 59.8719 +15.6486 -38.1086 59.415 +15.0112 -38.1281 59.4454 +14.195 -37.6683 58.7285 +13.7955 -38.3167 59.7394 +13.0298 -37.9556 59.1764 +12.4158 -38.0155 59.2699 +11.6524 -37.5934 58.6117 +11.0756 -37.7534 58.8612 +10.4353 -37.6974 58.7739 +9.95088 -38.2263 59.5985 +9.2021 -37.7365 58.8348 +8.59179 -37.7784 58.9001 +7.87894 -37.3346 58.2083 +7.45288 -38.2831 59.6871 +6.76671 -37.9406 59.1531 +6.1532 -37.971 59.2005 +5.52352 -37.8909 59.0756 +4.91086 -37.9155 59.1139 +4.30392 -37.9911 59.2318 +3.72632 -38.3873 59.8495 +3.02719 -37.4325 58.3609 +2.45692 -37.9849 59.2222 +1.81668 -37.4554 58.3965 +1.22865 -38.0023 59.2493 +0.607367 -37.5747 58.5826 +2.33147e-15 -38.0621 59.3425 +-0.614348 -38.0066 59.256 +-1.22865 -38.0023 59.2493 +-1.84024 -37.9411 59.1538 +-2.46041 -38.0389 59.3063 +-3.0708 -37.9719 59.2019 +-3.69492 -38.0638 59.3452 +-4.31003 -38.045 59.3158 +-4.97364 -38.4002 59.8696 +-5.53137 -37.9448 59.1596 +-6.2142 -38.3475 59.7875 +-6.82422 -38.263 59.6558 +-7.43197 -38.1757 59.5196 +-8.03743 -38.0856 59.3792 +-8.79897 -38.6893 60.3204 +-9.39789 -38.5393 60.0866 +-9.92304 -38.1194 59.4318 +-10.524 -38.0178 59.2734 +-11.1381 -37.9667 59.1938 +-11.7514 -37.9128 59.1097 +-12.5374 -38.3877 59.8501 +-13.1574 -38.3272 59.7558 +-13.7764 -38.2637 59.6568 +-14.1751 -37.6154 58.646 +-15.1776 -38.5506 60.1041 +-15.6269 -38.0559 59.3329 +-16.4439 -38.4543 59.954 +-16.8081 -37.7979 58.9305 +-17.8538 -38.6602 60.2749 +-18.2777 -38.1565 59.4896 +-19.1008 -38.4861 60.0035 +-19.7222 -38.3946 59.8609 +-20.3972 -38.4041 59.8756 +-20.9887 -38.2547 59.6428 +-21.9279 -38.7223 60.3718 +-22.2522 -38.1026 59.4057 +-23.4544 -38.9719 60.761 +-23.7978 -38.3991 59.868 +-24.7106 -38.745 60.4072 +-25.0689 -38.22 59.5886 +-25.9593 -38.5063 60.035 +-26.5807 -38.3825 59.8419 +-27.5227 -38.7094 60.3517 +-28.1473 -38.5783 60.1472 +-29.2568 -39.0949 60.9528 +-29.8876 -38.9556 60.7355 +-30.9459 -39.36 61.366 +-31.5411 -39.1632 61.0592 +-32.2135 -39.0624 60.902 +-32.8852 -38.9582 60.7397 +-33.894 -39.2422 61.1824 +-34.4409 -38.9836 60.7791 +-35.4642 -39.2565 61.2047 +-35.9635 -38.943 60.7159 +-36.7278 -38.9164 60.6744 +-37.771 -39.1729 61.0743 +-38.3558 -38.9458 60.7202 +-38.9362 -38.7162 60.3622 +-40.0938 -39.0506 60.8837 +-40.7234 -38.8603 60.5869 +-41.85 -39.1345 61.0144 +-42.481 -38.9358 60.7047 +-43.8812 -39.4284 61.4726 +-44.5169 -39.2201 61.1479 +-45.626 -39.4209 61.461 +-46.2615 -39.2045 61.1236 +-47.4381 -39.4378 61.4874 +-48.0737 -39.2129 61.1366 +-49.209 -39.3877 61.4092 +-50.3535 -39.5548 61.6697 +-51.5072 -39.7141 61.9181 +-52.031 -39.382 61.4003 +-53.8411 -40.0089 62.3778 +-54.6047 -39.8405 62.1152 +-56.3299 -40.3579 62.9218 +-56.4322 -39.7055 61.9046 +-58.18 -40.2038 62.6816 +-58.7031 -39.8437 62.1201 +-60.226 -40.153 62.6024 +-60.8727 -39.8677 62.1576 +-62.3504 -40.1171 62.5464 +-62.6068 -39.5754 61.7019 +-64.5562 -40.0939 62.5103 +-65.4669 -39.95 62.2858 +-67.5822 -40.5227 63.1788 +-68.2346 -40.2027 62.6799 +-70.1094 -40.5905 63.2845 +-71.1759 -40.4936 63.1334 +-72.8002 -40.7004 63.4559 +-73.4553 -40.3559 62.9187 +-75.3069 -40.6573 63.3886 +-75.9612 -40.3009 62.833 +-77.9045 -40.6166 63.3251 +-78.7757 -40.3595 62.9243 +-80.4489 -40.5023 63.1469 +-81.3217 -40.2311 62.7242 +-83.4552 -40.569 63.251 +-84.3324 -40.2816 62.8028 +-86.4897 -40.5911 63.2855 +-87.1425 -40.1821 62.6477 +-89.857 -40.707 63.4661 +-90.5116 -40.2821 62.8037 +-92.6358 -40.4997 63.1429 +-94.226 -40.465 63.0889 +-96.7677 -40.8172 63.638 +-97.8998 -40.557 63.2323 +-100.788 -41.004 63.9292 +-102.17 -40.8166 63.637 +-104.768 -41.0953 64.0715 +-105.998 -40.8196 63.6416 +-108.128 -40.876 63.7297 +-109.856 -40.7626 63.5528 +-113.164 -41.2095 64.2496 +-114.826 -41.0324 63.9734 +-117.749 -41.2838 64.3654 +-119.677 -41.1626 64.1764 +-123.9 -41.7988 65.1683 +-126.873 -41.9751 65.4432 +-129.604 -42.0431 65.5493 +-132.174 -42.0337 65.5346 +-135.62 -42.2732 65.908 +-123.416 -37.698 58.7749 +-117.636 -35.2044 54.8871 +-118.552 -34.7519 54.1815 +-122.2 -35.0792 54.6918 +-138.906 -39.0392 60.8658 +-139.532 -38.3833 59.8432 +-139.252 -37.4835 58.4405 +-139.583 -36.755 57.3046 +-140.894 -36.282 56.5671 +-141.384 -35.5939 55.4944 +-140.862 -34.6578 54.0349 +-140.595 -33.7952 52.69 +-135.358 -31.7753 49.5408 +-111.841 -25.6305 39.9605 +-109.942 -24.5861 38.3321 +-109.222 -23.8245 37.1448 +-108.487 -23.0716 35.9708 +-108.295 -22.4435 34.9916 +-108.186 -21.8379 34.0474 +-107.595 -21.1427 32.9635 +-108.31 -20.7071 32.2843 +-107.884 -20.0554 31.2683 +-62.779 -11.3407 17.6812 +-57.9193 -10.1602 15.8407 +-53.6943 -9.14014 14.2504 +-45.7114 -7.54515 11.7636 +-40.2704 -6.44011 10.0407 +-38.5466 -5.96743 9.3038 +-38.3525 -5.7423 8.9528 +-36.995 -5.35178 8.34395 +-16.5553 -2.31153 3.6039 +-16.6891 -2.24651 3.50252 +-16.2386 -2.10477 3.28155 +-17.1489 -2.13749 3.33255 +-16.7923 -2.00987 3.13358 +-16.6285 -1.90823 2.97512 +-15.8748 -1.74371 2.71861 +-15.5097 -1.62764 2.53765 +-15.2405 -1.52499 2.37761 +-14.0828 -1.34063 2.09018 +-3231.37 -291.942 455.165 +-3235.96 -276.707 431.412 +-3240.31 -261.45 407.626 +-3244.42 -246.174 383.809 +-3248.27 -230.879 359.963 +-3251.88 -215.567 336.09 +-3255.24 -200.238 312.19 +-12.531 -0.711065 1.10862 +-13.5374 -0.703744 1.0972 +-13.9467 -0.65876 1.02707 +-14.2559 -0.605738 0.944404 +-14.3649 -0.542312 0.845516 +-14.5728 -0.481207 0.750248 +-14.2804 -0.404054 0.629959 +-14.3863 -0.339114 0.528711 +-14.4912 -0.273206 0.425955 +-14.9949 -0.211989 0.330511 +-14.4978 -0.136624 0.21301 +-15.2994 -0.0720837 0.112385 +78.6 3.55271e-15 2.84217e-14 +116.696 -0.542059 0.862143 +84.4871 -0.784955 1.24847 +58.6799 -0.817882 1.30084 +52.7678 -0.98081 1.55997 +47.5547 -1.10514 1.75773 +50.3309 -1.40399 2.23303 +43.4189 -1.4135 2.24817 +33.4184 -1.24383 1.97831 +32.8983 -1.37813 2.19191 +32.6752 -1.52161 2.42011 +42.9016 -2.19878 3.49716 +47.8365 -2.67616 4.25642 +46.1017 -2.79582 4.44674 +53.8953 -3.52231 5.60221 +56.2149 -3.93925 6.26536 +116.951 -8.74856 13.9145 +119.968 -9.54324 15.1785 +119.807 -10.1001 16.0642 +120.425 -10.7265 17.0604 +120.344 -11.2947 17.9641 +119.957 -11.8338 18.8216 +119.857 -12.4007 19.7233 +120.335 -13.0313 20.7262 +120.214 -13.6007 21.6319 +119.987 -14.1586 22.5192 +120.432 -14.7993 23.5382 +120.282 -15.3705 24.4467 +120.705 -16.0187 25.4777 +120.438 -16.5788 26.3685 +120.644 -17.2064 27.3668 +120.454 -17.7804 28.2796 +120.927 -18.4566 29.3551 +120.524 -19.0024 30.2233 +120.877 -19.6705 31.2858 +120.454 -20.2152 32.1521 +121.069 -20.9384 33.3025 +120.722 -21.5 34.1956 +121.026 -22.1812 35.279 +121.318 -22.8668 36.3696 +120.469 -23.3385 37.1197 +121.018 -24.0835 38.3048 +120.525 -24.6257 39.167 +120.861 -25.3406 40.3041 +120.997 -26.0207 41.3858 +121.583 -26.8057 42.6344 +121.138 -27.3695 43.531 +117.842 -27.2732 43.3779 +114.376 -27.105 43.1104 +112.107 -27.1938 43.2516 +108.576 -26.9487 42.8618 +106.686 -27.0853 43.0791 +103.99 -26.9965 42.9378 +101.396 -26.9085 42.7979 +98.7235 -26.7743 42.5845 +96.8616 -26.8386 42.6867 +96.3296 -27.2625 43.3609 +97.0214 -28.0391 44.5961 +96.9953 -28.6177 45.5164 +96.8706 -29.172 46.3979 +97.2547 -29.887 47.5351 +95.6408 -29.9864 47.6933 +94.8027 -30.3198 48.2236 +95.1546 -31.0371 49.3644 +95.3206 -31.7036 50.4244 +94.7972 -32.1452 51.1267 +94.9375 -32.8161 52.1939 +94.8962 -33.4321 53.1737 +94.4274 -33.9014 53.9201 +94.3624 -34.5196 54.9033 +94.6121 -35.2619 56.0839 +94.6002 -35.9164 57.1249 +94.7359 -36.636 58.2695 +94.8551 -37.3596 59.4203 +94.798 -38.023 60.4754 +93.5364 -38.2027 60.7612 +92.6701 -38.5374 61.2935 +90.3912 -38.2705 60.869 +89.2941 -38.4879 61.2149 +87.7337 -38.4949 61.226 +87.0993 -38.901 61.8719 +84.4811 -38.4053 61.0835 +83.6973 -38.7264 61.5941 +81.9358 -38.5846 61.3687 +81.3 -38.9638 61.9717 +79.4785 -38.7645 61.6548 +79.1325 -39.2774 62.4706 +76.8897 -38.8374 61.7708 +76.6097 -39.378 62.6305 +74.0354 -38.725 61.592 +73.6805 -39.218 62.376 +71.0722 -38.4957 61.2273 +69.9521 -38.5564 61.3237 +68.7666 -38.5709 61.3469 +68.1316 -38.8889 61.8526 +66.343 -38.5367 61.2925 +65.7086 -38.8434 61.7803 +63.9428 -38.4694 61.1855 +63.1785 -38.6846 61.5277 +61.5027 -38.329 60.9622 +60.872 -38.6133 61.4142 +59.6005 -38.4838 61.2083 +58.9673 -38.7592 61.6464 +57.2713 -38.3235 60.9533 +56.6409 -38.588 61.3741 +54.7885 -38.0051 60.4469 +54.3439 -38.3857 61.0522 +52.9987 -38.1231 60.6347 +52.9007 -38.7554 61.6403 +51.1019 -38.133 60.6504 +50.4747 -38.3689 61.0256 +49.334 -38.2071 60.7683 +49.209 -38.832 61.7621 +47.025 -37.8163 60.1466 +46.8934 -38.435 61.1307 +45.2944 -37.8433 60.1897 +44.7782 -38.1426 60.6656 +43.6809 -37.9406 60.3444 +43.4177 -38.4614 61.1728 +42.0242 -37.9737 60.3971 +41.85 -38.5823 61.365 +40.5265 -38.1267 60.6404 +39.9968 -38.4066 61.0855 +38.5544 -37.7957 60.1139 +38.3089 -38.3493 60.9944 +36.8937 -37.7232 59.9986 +36.7278 -38.3673 61.0231 +35.6958 -38.1078 60.6102 +35.0697 -38.2721 60.8717 +34.0534 -38.0012 60.4407 +33.4291 -38.1579 60.69 +32.3875 -37.8274 60.1643 +31.8068 -38.025 60.4787 +30.6638 -37.5367 59.702 +30.5552 -38.3147 60.9394 +29.0839 -37.3733 59.442 +28.8072 -37.9511 60.3611 +27.9274 -37.7368 60.0203 +27.236 -37.7657 60.0662 +26.6158 -37.8908 60.2652 +25.9935 -38.013 60.4595 +25.0689 -37.6807 59.931 +24.5153 -37.8963 60.274 +23.893 -38.0088 60.4529 +23.2381 -38.0677 60.5466 +22.3124 -37.6666 59.9085 +21.6647 -37.7179 59.9901 +21.0739 -37.8681 60.229 +20.7004 -38.425 61.1149 +19.5886 -37.5965 59.797 +18.9973 -37.7375 60.0213 +18.4029 -37.8758 60.2413 +17.8055 -38.0115 60.4571 +17.0415 -37.7822 60.0924 +16.7589 -38.6378 61.4533 +15.8434 -38.0387 60.5003 +15.1983 -38.0587 60.5323 +14.3944 -37.6585 59.8956 +13.9481 -38.1941 60.7475 +13.1756 -37.8387 60.1824 +12.5548 -37.8985 60.2774 +11.966 -38.0604 60.5349 +11.3415 -38.1145 60.621 +10.5832 -37.6919 59.9489 +10.09 -38.214 60.7793 +9.31957 -37.679 59.9283 +8.81115 -38.1963 60.7511 +8.09403 -37.8127 60.141 +7.55741 -38.2723 60.872 +6.84339 -37.8292 60.1671 +6.30136 -38.3367 60.9744 +5.59413 -37.8339 60.1747 +5.03642 -38.3363 60.9737 +4.34666 -37.827 60.1637 +3.77866 -38.3773 61.0389 +3.06644 -37.383 59.4575 +2.51974 -38.4065 61.0854 +1.8638 -37.8847 60.2554 +1.24436 -37.9451 60.3515 +0.622202 -37.9495 60.3585 +2.33147e-15 -38.4832 61.2073 +-0.614348 -37.4704 59.5965 +-1.24436 -37.9451 60.3515 +-1.86642 -37.9379 60.3401 +-2.55115 -38.8853 61.8469 +-3.11006 -37.9148 60.3033 +-3.73679 -37.952 60.3625 +-4.35276 -37.8801 60.2482 +-5.04339 -38.3894 61.0582 +-5.59413 -37.8339 60.1747 +-6.29264 -38.2837 60.8901 +-6.92006 -38.253 60.8413 +-7.63058 -38.6429 61.4614 +-8.15063 -38.0771 60.5616 +-8.9574 -38.8303 61.7594 +-9.51536 -38.4706 61.1873 +-10.1736 -38.5303 61.2823 +-10.6423 -37.9025 60.2838 +-11.4197 -38.3774 61.039 +-11.9329 -37.9554 60.3679 +-12.5374 -37.8461 60.1941 +-13.1392 -37.7341 60.0159 +-13.9291 -38.1419 60.6645 +-14.5339 -38.0236 60.4763 +-15.3647 -38.4752 61.1947 +-15.7784 -37.8828 60.2524 +-16.6239 -38.3266 60.9583 +-17.2283 -38.1962 60.7509 +-18.1199 -38.6828 61.5249 +-18.7284 -38.5457 61.3067 +-19.3597 -38.4572 61.1661 +-20.0162 -38.4171 61.1023 +-20.8382 -38.6809 61.5217 +-21.3012 -38.2764 60.8784 +-22.1618 -38.5832 61.3664 +-22.8236 -38.5295 61.2811 +-23.7325 -38.8776 61.8347 +-24.0517 -38.2612 60.8542 +-25.0036 -38.6513 61.4747 +-25.6364 -38.5337 61.2877 +-26.7118 -39.0633 62.1301 +-26.8959 -38.2896 60.8995 +-28.3111 -39.2565 62.4373 +-28.6237 -38.6778 61.5168 +-29.6314 -39.0368 62.0879 +-30.2703 -38.8978 61.8667 +-31.2585 -39.1966 62.3421 +-31.9398 -39.0987 62.1864 +-32.905 -39.3379 62.5667 +-33.5902 -39.232 62.3984 +-34.2321 -39.0745 62.1478 +-34.8283 -38.8659 61.8161 +-35.9903 -39.2768 62.4696 +-36.5436 -39.0128 62.0497 +-37.6358 -39.3159 62.5317 +-38.279 -39.1396 62.2513 +-39.2009 -39.2422 62.4146 +-39.8428 -39.0587 62.1226 +-40.8695 -39.2445 62.4183 +-41.5605 -39.0995 62.1877 +-42.65 -39.3199 62.5381 +-43.3438 -39.1661 62.2936 +-44.3448 -39.2827 62.479 +-44.9871 -39.0752 62.149 +-46.6329 -39.7224 63.1783 +-46.7988 -39.1003 62.1888 +-48.4184 -39.6849 63.1187 +-48.5705 -39.0591 62.1233 +-50.1037 -39.538 62.8851 +-50.8633 -39.3915 62.652 +-52.6543 -40.0258 63.6609 +-53.1924 -39.693 63.1316 +-54.664 -40.0473 63.6951 +-55.5564 -39.963 63.561 +-56.7512 -40.086 63.7566 +-57.528 -39.9053 63.4693 +-58.9188 -40.1399 63.8424 +-59.5747 -39.8647 63.4047 +-61.5475 -40.4552 64.3438 +-61.8268 -39.9213 63.4947 +-62.6075 -39.7141 63.1652 +-64.1655 -39.9885 63.6015 +-65.6715 -40.2111 63.9556 +-66.0632 -39.7451 63.2145 +-68.7866 -40.663 64.6743 +-69.4507 -40.3419 64.1636 +-71.7462 -40.9521 65.1341 +-71.3135 -39.9995 63.619 +-74.259 -40.9302 65.0994 +-75.2777 -40.7736 64.8502 +-77.0039 -40.9869 65.1895 +-77.673 -40.6277 64.6182 +-79.3432 -40.783 64.8652 +-80.8792 -40.8526 64.9758 +-81.6922 -40.548 64.4914 +-82.7962 -40.3827 64.2286 +-85.6103 -41.0294 65.2572 +-86.7291 -40.8419 64.9588 +-87.8482 -40.647 64.6489 +-88.7394 -40.3411 64.1624 +-90.6231 -40.4748 64.375 +-91.9777 -40.357 64.1877 +-94.7341 -40.8327 64.9443 +-95.5565 -40.4574 64.3473 +-98.7377 -41.0606 65.3068 +-100.121 -40.8921 65.0387 +-102.465 -41.0982 65.3665 +-103.376 -40.7156 64.758 +-105.819 -40.9222 65.0866 +-107.463 -40.8 64.8923 +-110.176 -41.0625 65.3098 +-111.752 -40.8809 65.0209 +-115.153 -41.3425 65.755 +-116.077 -40.8941 65.042 +-120.014 -41.484 65.9801 +-122.207 -41.4398 65.9098 +-126.953 -42.2244 67.1578 +-128.152 -41.8 66.4827 +-131.747 -42.1353 67.016 +-134.156 -42.062 66.8994 +-137.525 -42.2623 67.218 +-136.472 -41.0977 65.3657 +-117.549 -34.6819 55.1614 +-118.025 -34.1092 54.2505 +-119.463 -33.8096 53.774 +-138.906 -38.4884 61.2156 +-138.819 -37.6484 59.8796 +-139.52 -37.0259 58.8896 +-140.392 -36.4465 57.968 +-140.894 -35.7701 56.8922 +-140.206 -34.7993 55.3482 +-140.498 -34.0805 54.205 +-140.686 -33.34 53.0272 +-139.485 -32.2821 51.3445 +-115.063 -25.9968 41.3479 +-110.496 -24.3614 38.7468 +-109.593 -23.5681 37.485 +-108.952 -22.8436 36.3327 +-108.295 -22.1269 35.1927 +-108.092 -21.5111 34.2134 +-107.783 -20.8808 33.2109 +-108.687 -20.486 32.5829 +-108.546 -19.8937 31.6409 +-107.824 -19.203 30.5423 +-107.184 -18.537 29.483 +-59.8934 -10.0516 15.987 +-48.9628 -7.96777 12.6727 +-42.284 -6.66674 10.6034 +-38.1621 -5.82453 9.26389 +-38.2561 -5.64707 8.98164 +-36.029 -5.13851 8.17279 +-18.298 -2.5188 4.00614 +-15.7188 -2.08604 3.31783 +-16.1413 -2.06265 3.28064 +-17.1489 -2.10733 3.35171 +-17.1828 -2.0276 3.22489 +-16.8241 -1.90344 3.02742 +-17.2467 -1.86767 2.97053 +-15.3134 -1.58437 2.51993 +-15.2405 -1.50348 2.39128 +-16.0524 -1.50658 2.3962 +-3231.37 -287.823 457.781 +-3235.96 -272.803 433.891 +-3240.31 -257.762 409.969 +-3244.42 -242.701 386.015 +-3248.27 -227.622 362.032 +-3251.88 -212.526 338.021 +-3255.24 -197.413 313.984 +-13.426 -0.751103 1.19463 +-13.3383 -0.683611 1.08728 +-13.6479 -0.635547 1.01084 +-13.9568 -0.584662 0.929903 +-14.2652 -0.53095 0.844473 +-14.6726 -0.477667 0.759728 +-15.3789 -0.428996 0.682317 +-14.7859 -0.343616 0.54652 +-14.9909 -0.278639 0.443175 +-14.0952 -0.196458 0.312466 +-15.2977 -0.142128 0.226054 +-14.3995 -0.0668862 0.106382 +117.1 5.32907e-15 5.68434e-14 +117.796 -0.539294 0.875172 +85.587 -0.783731 1.27185 +61.4789 -0.844559 1.37056 +56.1658 -1.02894 1.66978 +50.352 -1.15331 1.87161 +57.3213 -1.57597 2.5575 +47.8107 -1.53408 2.48952 +39.1045 -1.43452 2.32795 +36.8859 -1.52294 2.47144 +31.7786 -1.45856 2.36696 +44.8924 -2.2677 3.68005 +52.2124 -2.87892 4.67195 +49.4799 -2.9575 4.79946 +57.7662 -3.72095 6.0384 +59.4867 -4.10852 6.66735 +119.426 -8.80521 14.2892 +119.968 -9.40589 15.264 +119.905 -9.96292 16.1679 +119.735 -10.5115 17.0582 +120.245 -11.123 18.0505 +119.957 -11.6635 18.9276 +119.857 -12.2223 19.8344 +120.335 -12.8437 20.8429 +120.312 -13.4159 21.7715 +120.084 -13.9662 22.6645 +120.627 -14.6098 23.709 +120.185 -15.137 24.5645 +120.026 -15.6993 25.477 +120.438 -16.3402 26.517 +120.644 -16.9588 27.5209 +120.357 -17.5105 28.4162 +120.927 -18.191 29.5205 +120.62 -18.7438 30.4177 +120.973 -19.4027 31.4869 +120.55 -19.94 32.3589 +120.879 -20.6046 33.4374 +120.627 -21.1739 34.3612 +121.026 -21.8619 35.4777 +120.47 -22.3801 36.3187 +120.657 -23.0385 37.3871 +120.924 -23.7186 38.4907 +120.432 -24.2525 39.3571 +121.047 -25.0144 40.5935 +120.905 -25.6265 41.587 +121.028 -26.2995 42.6791 +120.126 -26.7501 43.4103 +117.475 -26.797 43.4864 +113.462 -26.5016 43.007 +111.288 -26.6067 43.1775 +108.576 -26.5609 43.1032 +105.873 -26.4923 42.992 +103.271 -26.424 42.8811 +101.486 -26.5446 43.0769 +98.9017 -26.4366 42.9016 +96.3294 -26.307 42.6913 +96.8594 -27.0179 43.845 +97.1093 -27.6606 44.8879 +96.1207 -27.9515 45.36 +96.7836 -28.7263 46.6174 +96.3886 -29.1946 47.3772 +94.7792 -29.2886 47.5298 +94.5456 -29.8024 48.3637 +95.3252 -30.6453 49.7314 +95.3206 -31.2473 50.7084 +94.7129 -31.6543 51.3689 +94.9375 -32.3438 52.4879 +95.1464 -33.0378 53.6142 +94.4274 -33.4135 54.2238 +94.7745 -34.1714 55.4536 +95.1855 -34.9651 56.7416 +95.1701 -35.6127 57.7927 +94.8168 -36.1396 58.6476 +94.614 -36.7283 59.603 +94.6383 -37.4126 60.7136 +94.7264 -38.1319 61.8808 +93.9309 -38.4995 62.4773 +91.7999 -38.3076 62.1659 +91.3924 -38.8254 63.0062 +89.1226 -38.5415 62.5456 +87.7887 -38.6446 62.7129 +86.078 -38.568 62.5886 +84.9803 -38.7541 62.8906 +83.0592 -38.5508 62.5606 +82.8606 -39.1402 63.5171 +81.1005 -38.9863 63.2674 +79.8638 -39.0699 63.4031 +78.9207 -39.2896 63.7596 +77.8326 -39.4307 63.9886 +75.9612 -39.1605 63.55 +74.9533 -39.3213 63.8109 +72.6142 -38.7649 62.908 +71.8277 -39.0203 63.3226 +69.7992 -38.5866 62.6188 +69.291 -38.9814 63.2594 +67.559 -38.6783 62.7675 +66.98 -39.0251 63.3304 +65.1356 -38.623 62.6778 +64.425 -38.8802 63.0951 +62.6717 -38.4955 62.4708 +62.0933 -38.8211 62.9993 +60.2366 -38.3347 62.21 +60.163 -38.976 63.2507 +58.3919 -38.5109 62.4959 +57.6875 -38.7354 62.8602 +56.5539 -38.6651 62.7461 +55.367 -38.5455 62.552 +54.1884 -38.4179 62.345 +53.5472 -38.6645 62.7451 +52.2633 -38.4384 62.3782 +51.5645 -38.6332 62.6944 +50.4102 -38.4787 62.4436 +49.7122 -38.6645 62.7451 +48.0737 -38.1032 61.8343 +47.9282 -38.7178 62.8316 +46.2615 -38.0951 61.8211 +45.626 -38.3054 62.1624 +44.0989 -37.7524 61.265 +43.9327 -38.3576 62.2471 +42.9377 -38.2408 62.0576 +42.5 -38.6177 62.6692 +40.9696 -37.9889 61.6488 +40.4331 -38.2668 62.0997 +38.9362 -37.6206 61.0511 +38.7314 -38.2143 62.0145 +37.6787 -37.9713 61.6203 +37.091 -38.1891 61.9737 +36.0974 -37.9819 61.6374 +35.4204 -38.0986 61.8267 +34.4409 -37.8804 61.4727 +34.1898 -38.4646 62.4207 +33.1755 -38.19 61.9751 +32.5389 -38.3404 62.2192 +31.5809 -38.1031 61.834 +30.9459 -38.2462 62.0663 +29.9258 -37.9017 61.5073 +29.2568 -37.9886 61.6484 +28.1839 -37.5354 60.9128 +28.0244 -38.2997 62.1531 +27.071 -37.9843 61.6413 +26.3013 -37.9096 61.5201 +25.6697 -38.0285 61.7131 +25.0362 -38.1446 61.9015 +23.8296 -37.3623 60.6319 +23.4853 -37.919 61.5353 +22.6431 -37.6748 61.1391 +21.9279 -37.6266 61.0608 +21.3296 -37.7758 61.303 +20.9209 -38.2754 62.1138 +19.8291 -37.5104 60.8722 +19.4373 -38.0557 61.7572 +18.6032 -37.737 61.24 +17.9506 -37.7698 61.2932 +17.4851 -38.2076 62.0037 +16.8713 -38.3374 62.2142 +15.9949 -37.8497 61.4229 +15.3855 -37.9728 61.6226 +14.7532 -38.0418 61.7346 +14.1389 -38.1594 61.9255 +13.3761 -37.8616 61.4422 +12.8673 -38.2831 62.1261 +12.0815 -37.8748 61.4636 +11.6074 -38.4468 62.3919 +10.7162 -37.6165 61.0444 +10.2014 -38.0797 61.7961 +9.55452 -38.0729 61.7852 +8.92084 -38.1152 61.8538 +8.18459 -37.6855 61.1564 +7.65148 -38.1911 61.9769 +6.92965 -37.7547 61.2687 +6.3798 -38.2554 62.0812 +5.67259 -37.8124 61.3623 +5.09222 -38.2033 61.9966 +4.4077 -37.8062 61.3523 +3.82052 -38.2441 62.0629 +3.14932 -37.8408 61.4084 +2.51974 -37.8538 61.4295 +1.88998 -37.8639 61.4459 +1.26181 -37.9235 61.5427 +0.622202 -37.4033 60.6984 +2.22045e-15 -38.4015 62.3183 +-0.630929 -37.9278 61.5497 +-1.27577 -38.3432 62.2237 +-1.91615 -38.3883 62.2969 +-2.54766 -38.2732 62.1101 +-3.16241 -37.998 61.6636 +-3.83099 -38.3488 62.2329 +-4.41991 -37.911 61.5223 +-5.10617 -38.3079 62.1665 +-5.73536 -38.2308 62.0413 +-6.37108 -38.2031 61.9963 +-7.00632 -38.1725 61.9467 +-7.72465 -38.5563 62.5696 +-8.25251 -37.9982 61.6639 +-9.07927 -38.7921 62.9523 +-9.61978 -38.333 62.2072 +-10.2988 -38.4433 62.3862 +-10.8049 -37.9278 61.5496 +-11.5605 -38.2914 62.1397 +-12.065 -37.8231 61.3797 +-12.85 -38.2314 62.0423 +-13.449 -38.0679 61.777 +-14.2725 -38.5199 62.5104 +-14.7532 -38.0418 61.7346 +-15.531 -38.332 62.2056 +-15.9516 -37.7473 61.2567 +-17.0063 -38.644 62.7119 +-17.4851 -38.2076 62.0037 +-18.2893 -38.4825 62.4497 +-18.9538 -38.448 62.3939 +-19.7997 -38.7652 62.9085 +-20.2834 -38.3698 62.2669 +-21.1414 -38.6789 62.7685 +-21.5568 -38.1782 61.9559 +-22.805 -39.1316 63.5032 +-23.0942 -38.4253 62.357 +-24.1342 -38.9667 63.2356 +-24.369 -38.208 62.0044 +-25.7524 -39.2359 63.6723 +-26.0369 -38.5725 62.5958 +-27.3616 -39.4378 64 +-27.6664 -38.8196 62.9969 +-28.6694 -39.1812 63.5837 +-29.3201 -39.0485 63.3683 +-30.2682 -39.302 63.7796 +-30.9208 -39.1619 63.5523 +-31.9618 -39.5017 64.1038 +-32.2588 -38.9209 63.1613 +-33.7185 -39.7302 64.4746 +-34.3366 -39.5266 64.1442 +-35.0351 -39.4155 63.9638 +-35.6463 -39.2063 63.6243 +-36.6917 -39.4659 64.0457 +-36.9452 -38.8739 63.085 +-38.3622 -39.4979 64.0977 +-38.556 -38.8555 63.055 +-40.0459 -39.5112 64.1192 +-40.6539 -39.2803 63.7444 +-41.7421 -39.5057 64.1102 +-42.0037 -38.9477 63.2048 +-43.55 -39.5718 64.2175 +-44.2066 -39.3709 63.8915 +-45.7869 -39.9764 64.8742 +-45.8754 -39.2733 63.733 +-47.0038 -39.4622 64.0396 +-47.7659 -39.334 63.8315 +-49.3988 -39.9057 64.7594 +-50.1711 -39.7656 64.5319 +-51.3339 -39.9258 64.7919 +-51.9961 -39.6893 64.4082 +-53.6868 -40.2232 65.2747 +-53.715 -39.5061 64.111 +-55.4281 -40.0227 64.9492 +-56.6271 -40.1469 65.1509 +-57.8344 -40.2632 65.3396 +-58.502 -39.997 64.9075 +-59.9654 -40.265 65.3424 +-60.1349 -39.6605 64.3614 +-62.1769 -40.2806 65.3678 +-62.8445 -39.9944 64.9034 +-64.4073 -40.2679 65.3471 +-64.75 -39.772 64.5424 +-67.1804 -40.5431 65.7937 +-67.8523 -40.234 65.2921 +-70.3925 -41.0134 66.5569 +-70.4641 -40.3415 65.4665 +-72.4282 -40.7464 66.1236 +-73.7228 -40.7557 66.1388 +-75.0231 -40.7563 66.1397 +-75.9085 -40.5235 65.762 +-77.9939 -40.9164 66.3995 +-79.5274 -40.999 66.5336 +-80.5661 -40.8156 66.2359 +-81.6772 -40.6618 65.9865 +-83.5937 -40.8946 66.3642 +-84.0496 -40.4041 65.5681 +-86.7993 -41.0006 66.5363 +-87.1784 -40.4627 65.6632 +-88.9803 -40.5783 65.8508 +-89.88 -40.2716 65.3531 +-92.4616 -40.7016 66.051 +-93.8295 -40.5771 65.8489 +-96.3661 -40.9383 66.4351 +-97.3565 -40.6262 65.9287 +-100.865 -41.3417 67.0898 +-100.835 -40.591 65.8714 +-104.462 -41.2959 67.0155 +-105.386 -40.9098 66.3888 +-107.599 -41.0116 66.554 +-109.01 -40.7916 66.1971 +-112.06 -41.1637 66.8009 +-113.482 -40.9165 66.3997 +-116.646 -41.2755 66.9823 +-118.579 -41.1742 66.818 +-122.781 -41.8299 67.882 +-125.497 -41.9427 68.065 +-129.836 -42.5619 69.0699 +-130.795 -42.0482 68.2362 +-134.832 -42.5016 68.9719 +-135.965 -42.0158 68.1837 +-138.824 -42.0475 68.2351 +-139.083 -41.2812 66.9916 +-118.424 -34.4371 55.8849 +-119.08 -33.9187 55.0436 +-119.286 -33.2737 53.9969 +-138.64 -37.8618 61.4425 +-139.799 -37.3686 60.6421 +-140.415 -36.7271 59.6011 +-141.111 -36.1059 58.5931 +-140.713 -35.2101 57.1393 +-140.568 -34.3872 55.8039 +-139.952 -33.4595 54.2985 +-140.321 -32.7749 53.1874 +-139.943 -31.9221 51.8034 +-119.113 -26.5246 43.0444 +-111.143 -24.1514 39.1931 +-110.242 -23.3665 37.9194 +-108.766 -22.4764 36.4749 +-108.202 -21.7896 35.3603 +-107.811 -21.1465 34.3167 +-107.595 -20.5444 33.3397 +-108.31 -20.1211 32.6527 +-107.695 -19.4537 31.5697 +-108.204 -18.9932 30.8224 +-108.325 -18.4647 29.9647 +-106.435 -17.6053 28.57 +-105.289 -16.8873 27.4048 +-44.2975 -6.88367 11.1709 +-40.0846 -6.02992 9.78542 +-37.967 -5.52372 8.96396 +-36.6086 -5.14603 8.35102 +-32.7234 -4.43969 7.20478 +-16.9802 -2.22101 3.60427 +-17.5027 -2.20442 3.57736 +-17.2464 -2.0888 3.38973 +-16.7923 -1.953 3.16934 +-17.3132 -1.93059 3.13297 +-16.3647 -1.74666 2.83449 +-16.3932 -1.67168 2.71281 +-15.3388 -1.4914 2.42026 +-14.6736 -1.35736 2.20273 +-13.6107 -1.19488 1.93907 +-16.0006 -1.32949 2.15751 +-3240.31 -254.052 412.278 +-3244.42 -239.208 388.189 +-3248.27 -224.346 364.071 +-3251.88 -209.467 339.925 +-3255.24 -194.572 315.753 +-14.7189 -0.811582 1.31704 +-13.5374 -0.683829 1.10973 +-14.2456 -0.653837 1.06105 +-15.1531 -0.62564 1.01529 +-13.9659 -0.51233 0.831414 +-15.2715 -0.490008 0.795191 +-13.881 -0.381638 0.619326 +-13.8868 -0.318076 0.516177 +-14.791 -0.270968 0.43973 +-14.7949 -0.203244 0.329826 +-15.6976 -0.143745 0.23327 +-14.3995 -0.0659236 0.106981 +117.8 5.77316e-15 2.84217e-14 +118.795 -0.535883 0.887467 +74.6886 -0.673886 1.11601 +63.1783 -0.85516 1.41622 +58.5643 -1.05713 1.7507 +54.3482 -1.22656 2.03129 +63.0135 -1.70703 2.82699 +55.4963 -1.75454 2.90566 +47.2845 -1.70913 2.83047 +39.2785 -1.59791 2.64627 +40.1466 -1.81557 3.00674 +47.2813 -2.35331 3.89728 +51.914 -2.82045 4.6709 +53.5535 -3.15398 5.22327 +64.714 -4.10728 6.802 +68.0131 -4.62844 7.66508 +120.417 -8.74782 14.4871 +120.165 -9.28303 15.3735 +120.004 -9.82475 16.2706 +120.524 -10.4254 17.2653 +120.245 -10.9597 18.1501 +119.957 -11.4922 19.0321 +119.759 -12.0329 19.9275 +120.433 -12.6654 20.975 +120.312 -13.2189 21.8916 +120.865 -13.8506 22.9378 +120.627 -14.3953 23.8398 +120.185 -14.9147 24.7001 +120.802 -15.5689 25.7834 +121.309 -16.2167 26.8563 +120.741 -16.7232 27.695 +120.454 -17.2672 28.5959 +120.734 -17.8954 29.6362 +120.524 -18.4539 30.5613 +120.208 -18.9969 31.4605 +121.313 -19.7716 32.7434 +120.974 -20.3181 33.6484 +120.532 -20.8465 34.5236 +121.026 -21.5409 35.6736 +121.224 -22.1896 36.7478 +120.844 -22.7355 37.652 +120.831 -23.3522 38.6732 +120.525 -23.9149 39.605 +121.047 -24.6471 40.8176 +121.183 -25.3083 41.9127 +121.398 -25.9925 43.0457 +119.666 -26.2563 43.4826 +117.017 -26.3004 43.5557 +113.462 -26.1124 43.2444 +110.56 -26.0445 43.1318 +107.851 -25.9961 43.0517 +105.241 -25.9475 42.9712 +102.552 -25.8547 42.8176 +101.486 -26.1549 43.3147 +98.0998 -25.8373 42.7887 +95.8859 -25.8014 42.7293 +96.7711 -26.597 44.0469 +97.0214 -27.2298 45.0948 +96.9079 -27.7666 45.9839 +97.2187 -28.4318 47.0855 +96.1288 -28.6883 47.5103 +95.1239 -28.9634 47.9659 +95.2313 -29.5778 48.9833 +94.5578 -29.9522 49.6034 +95.3206 -30.7885 50.9883 +94.7972 -31.2173 51.6985 +94.7698 -31.8126 52.6844 +94.9796 -32.4957 53.8156 +94.4274 -32.9229 54.5231 +95.1042 -33.7867 55.9537 +94.694 -34.2737 56.7602 +95.3329 -35.1498 58.2111 +94.7359 -35.5785 58.9211 +95.1767 -36.4042 60.2884 +95.2772 -37.1121 61.4608 +94.409 -37.4461 62.0139 +94.2461 -38.0615 63.033 +93.4434 -38.4208 63.628 +91.6255 -38.3529 63.5156 +90.1258 -38.403 63.5987 +89.1676 -38.6752 64.0495 +87.1425 -38.4717 63.7124 +86.4897 -38.8633 64.361 +84.7818 -38.7725 64.2105 +84.3469 -39.2572 65.0132 +81.9852 -38.8329 64.3106 +81.1071 -39.0955 64.7455 +79.501 -38.9974 64.5829 +79.1274 -39.4981 65.4122 +77.1737 -39.2014 64.9208 +76.509 -39.548 65.4949 +74.2964 -39.0805 64.7206 +73.3559 -39.2654 65.0269 +71.1759 -38.7699 64.2063 +70.5186 -39.0895 64.7356 +68.7075 -38.7582 64.1869 +68.1175 -39.1051 64.7613 +66.3283 -38.7528 64.1779 +66.1964 -39.3626 65.1877 +63.7758 -38.5984 63.9223 +63.7645 -39.2806 65.052 +61.3815 -38.4898 63.7424 +61.2958 -39.1268 64.7972 +59.5124 -38.6736 64.0467 +58.7957 -38.8998 64.4214 +57.1627 -38.5074 63.7716 +56.5104 -38.7638 64.1962 +54.7832 -38.2693 63.3772 +54.6052 -38.8495 64.3381 +52.902 -38.3369 63.4891 +52.769 -38.9551 64.513 +51.5996 -38.8083 64.2698 +50.9425 -39.0395 64.6528 +49.5639 -38.7075 64.1029 +48.9086 -38.9296 64.4707 +47.2824 -38.364 63.534 +46.6329 -38.5758 63.8848 +44.9871 -37.9473 62.844 +44.0873 -37.9273 62.8108 +43.3945 -38.0802 63.064 +42.95 -38.4535 63.6823 +41.856 -38.2409 63.3301 +41.3058 -38.5187 63.7902 +39.795 -37.8858 62.7421 +39.5765 -38.4747 63.7173 +38.556 -38.2849 63.4031 +37.8628 -38.4113 63.6124 +36.9006 -38.2568 63.3566 +36.2971 -38.4683 63.7067 +35.2158 -38.164 63.2028 +34.4857 -38.2277 63.3083 +33.5487 -38.0526 63.0183 +33.2304 -38.5802 63.8921 +32.2588 -38.3494 63.5099 +31.6101 -38.4934 63.7484 +30.6147 -38.2048 63.2704 +29.9685 -38.3414 63.4966 +28.9902 -38.0423 63.0012 +28.6694 -38.6059 63.9347 +27.3862 -37.8623 62.7032 +27.0538 -38.4215 63.6293 +26.1037 -38.1036 63.1028 +25.7524 -38.6597 64.0238 +24.4007 -37.696 62.4278 +24.1342 -38.3946 63.5846 +23.1243 -37.9104 62.7828 +22.7758 -38.5075 63.7718 +21.8124 -38.0637 63.0367 +21.4997 -38.7569 64.1846 +20.2834 -37.8064 62.6105 +19.8773 -38.3458 63.5038 +18.8286 -37.6333 62.3239 +18.3861 -38.118 63.1266 +17.5784 -37.8477 62.6789 +17.5012 -39.1846 64.8931 +16.3628 -38.1519 63.1827 +15.926 -38.7298 64.1399 +14.9327 -37.9391 62.8304 +14.4824 -38.5124 63.7798 +13.6859 -38.1696 63.2122 +13.0236 -38.1791 63.2277 +12.23 -37.7775 62.5628 +11.7482 -38.3418 63.4972 +10.9527 -37.8821 62.736 +10.438 -38.3907 63.5783 +9.67199 -37.9751 62.89 +9.15239 -38.5303 63.8095 +8.38836 -38.0566 63.025 +7.85009 -38.6071 63.9366 +7.09259 -38.075 63.0554 +6.53668 -38.6205 63.9588 +5.81382 -38.1847 63.2372 +5.16198 -38.1579 63.1927 +4.51759 -38.1798 63.2289 +3.87286 -38.1987 63.2603 +3.18858 -37.7499 62.5171 +2.58256 -38.2278 63.3085 +1.91353 -37.773 62.5552 +1.29148 -38.2453 63.3374 +0.638782 -37.8361 62.6598 +2.44249e-15 -38.3028 63.4327 +-0.638782 -37.8361 62.6598 +-1.29148 -38.2453 63.3374 +-1.93971 -38.2897 63.4109 +-2.58256 -38.2278 63.3085 +-3.22783 -38.2147 63.2868 +-3.87809 -38.2503 63.3457 +-4.51759 -38.1798 63.2289 +-5.23871 -38.7252 64.1322 +-5.80597 -38.1332 63.1518 +-6.53668 -38.6205 63.9588 +-7.18843 -38.5895 63.9075 +-7.81873 -38.4528 63.6811 +-8.43364 -38.262 63.3651 +-9.20114 -38.7356 64.1494 +-9.77641 -38.3851 63.569 +-10.5354 -38.749 64.1717 +-11.0561 -38.2399 63.3286 +-11.8264 -38.597 63.9199 +-12.3456 -38.1344 63.1538 +-13.1452 -38.5354 63.8178 +-13.613 -37.9663 62.8755 +-14.4442 -38.4109 63.6118 +-15.0722 -38.2937 63.4175 +-15.7181 -38.2242 63.3026 +-16.3628 -38.1519 63.1827 +-17.2088 -38.5299 63.8087 +-17.8586 -38.4508 63.6778 +-18.8457 -39.0709 64.7048 +-19.1541 -38.2838 63.4013 +-20.3949 -39.3444 65.1576 +-20.7911 -38.7527 64.1778 +-21.7478 -39.204 64.9252 +-22.1248 -38.6089 63.9395 +-23.3313 -39.4468 65.3272 +-23.7257 -38.8964 64.4157 +-24.6905 -39.2794 65.0501 +-25.1305 -38.8234 64.2949 +-26.0455 -39.0996 64.7523 +-26.6712 -38.9319 64.4746 +-27.6352 -39.2473 64.9968 +-28.2968 -39.1211 64.7879 +-29.2787 -39.4263 65.2933 +-29.6499 -38.908 64.4349 +-30.905 -39.5396 65.4809 +-31.3035 -39.0644 64.6939 +-32.3916 -39.4451 65.3245 +-32.6177 -38.776 64.2164 +-33.6778 -39.0997 64.7524 +-34.6684 -39.3226 65.1215 +-35.669 -39.5394 65.4807 +-36.0338 -39.0505 64.6709 +-37.3931 -39.6298 65.6302 +-38.1053 -39.5059 65.425 +-39.0886 -39.6549 65.6718 +-39.7566 -39.477 65.3773 +-40.891 -39.7526 65.8336 +-41.0834 -39.1124 64.7734 +-42.5663 -39.6941 65.7368 +-42.8901 -39.1857 64.8948 +-44.6 -39.9308 66.1288 +-45.0187 -39.5054 65.4243 +-45.9414 -39.5223 65.4523 +-46.8159 -39.4899 65.3987 +-48.5406 -40.1539 66.4983 +-48.7331 -39.5411 65.4834 +-50.3791 -40.1001 66.4091 +-51.0542 -39.8713 66.0303 +-52.3405 -40.1109 66.427 +-52.9023 -39.7881 65.8924 +-55.1207 -40.6912 67.388 +-55.2829 -40.0622 66.3465 +-56.7801 -40.3968 66.9005 +-57.4599 -40.1392 66.4739 +-59.2186 -40.6215 67.2726 +-59.2934 -39.9427 66.1486 +-61.3814 -40.6106 67.2547 +-61.6289 -40.049 66.3246 +-62.8062 -40.0909 66.3939 +-64.2439 -40.2847 66.7148 +-65.5643 -40.3893 66.8881 +-66.5035 -40.2493 66.6562 +-68.6894 -40.845 67.6428 +-68.8462 -40.2239 66.6142 +-71.2624 -40.9105 67.7513 +-71.7477 -40.4732 67.0271 +-74.4742 -41.2821 68.3667 +-74.9618 -40.8322 67.6216 +-76.8292 -41.1246 68.1058 +-77.9411 -40.9976 67.8956 +-79.8324 -41.2659 68.3399 +-80.312 -40.7955 67.5609 +-82.8679 -41.3653 68.5044 +-82.6927 -40.5629 67.1756 +-85.1296 -41.0344 67.9565 +-85.8191 -40.6489 67.318 +-88.5085 -41.1941 68.221 +-88.7513 -40.5878 67.2168 +-90.6406 -40.7285 67.4498 +-91.781 -40.5195 67.1037 +-94.2235 -40.8682 67.6811 +-95.6814 -40.7704 67.5192 +-98.0758 -41.0528 67.987 +-99.1565 -40.7698 67.5182 +-102.363 -41.3393 68.4614 +-102.739 -40.7501 67.4857 +-105.979 -41.2806 68.3643 +-106.913 -40.8932 67.7227 +-109.055 -40.9563 67.8272 +-110.883 -40.883 67.7058 +-114.517 -41.4487 68.6426 +-115.46 -41.0184 67.9299 +-120.128 -41.8835 69.3626 +-121.33 -41.5111 68.746 +-126.555 -42.4825 70.3546 +-128.617 -42.3544 70.1425 +-132.296 -42.7313 70.7667 +-133.268 -42.214 69.9099 +-136.89 -42.5164 70.4108 +-137.516 -41.8711 69.342 +-138.651 -41.3784 68.5261 +-139.344 -40.7514 67.4878 +-117.636 -33.7059 55.8198 +-118.904 -33.3713 55.2657 +-118.756 -32.6395 54.0538 +-130.834 -35.2054 58.3032 +-140.155 -36.9137 61.1322 +-141.131 -36.3724 60.2357 +-141.021 -35.5531 58.8789 +-141.164 -34.8043 57.6389 +-140.025 -33.7512 55.8948 +-139.497 -32.8611 54.4207 +-139.59 -32.1255 53.2025 +-142.419 -32.0098 53.011 +-124.084 -27.2258 45.0882 +-111.05 -23.7769 39.3766 +-109.871 -22.946 38.0005 +-108.673 -22.1274 36.6448 +-108.109 -21.4511 35.5249 +-107.811 -20.8359 34.5061 +-107.407 -20.2074 33.4651 +-108.121 -19.7911 32.7758 +-107.695 -19.168 31.7439 +-107.824 -18.6487 30.8838 +-107.184 -18.0019 29.8127 +-108.628 -17.7043 29.3198 +-107.584 -17.002 28.1567 +-51.0092 -7.81026 12.9344 +-41.6226 -6.16934 10.2169 +-37.2925 -5.3459 8.85327 +-35.0631 -4.85641 8.04262 +-32.5298 -4.34862 7.20168 +-16.7861 -2.16338 3.58275 +-17.0165 -2.11171 3.49718 +-17.3438 -2.06976 3.4277 +-17.0852 -1.95788 3.24242 +-17.8023 -1.95597 3.23925 +-16.8547 -1.77254 2.93548 +-15.9024 -1.59782 2.64612 +-14.9455 -1.43182 2.37122 +-16.8402 -1.53489 2.54191 +-14.6957 -1.27118 2.10519 +-14.9141 -1.22102 2.02211 +-3240.31 -250.321 414.554 +-13.9628 -1.01435 1.67984 +-3248.27 -221.052 366.08 +-15.4837 -0.982723 1.62747 +-13.7113 -0.807512 1.33731 +-14.7189 -0.799665 1.32431 +-15.8268 -0.78774 1.30456 +-14.4448 -0.653246 1.08183 +-15.2528 -0.620505 1.02761 +-14.2652 -0.515624 0.853917 +-15.0718 -0.476502 0.789127 +-14.3803 -0.389561 0.645145 +-15.0856 -0.340462 0.563834 +-14.791 -0.266989 0.442157 +-14.7949 -0.20026 0.331647 +-14.7977 -0.133515 0.221112 +-15.2994 -0.0690153 0.114295 +118.6 5.32907e-15 2.84217e-14 +118.096 -0.524742 0.887007 +74.8886 -0.665571 1.12506 +62.9784 -0.839684 1.41938 +62.7617 -1.11592 1.88632 +62.8401 -1.39697 2.36139 +68.3063 -1.82269 3.08101 +56.9935 -1.77487 3.00019 +50.5765 -1.80073 3.04389 +44.4625 -1.7817 3.01173 +43.3345 -1.93037 3.26304 +49.5707 -2.43029 4.10809 +58.0801 -3.10816 5.25393 +55.4413 -3.21624 5.43663 +68.982 -4.31256 7.28981 +119.667 -8.02159 13.5594 +120.615 -8.63095 14.5895 +120.165 -9.14393 15.4566 +120.004 -9.67753 16.3586 +119.735 -10.202 17.2451 +120.245 -10.7954 18.2483 +120.842 -11.4035 19.2762 +119.857 -11.8623 20.0517 +120.531 -12.4858 21.1056 +120.312 -13.0208 22.01 +119.987 -13.5439 22.8942 +120.627 -14.1796 23.9687 +121.06 -14.7982 25.0145 +120.026 -15.237 25.7562 +120.438 -15.859 26.8076 +121.031 -16.5121 27.9116 +121.225 -17.1173 28.9346 +120.831 -17.6412 29.8202 +120.524 -18.1774 30.7266 +120.973 -18.8313 31.8319 +120.645 -19.3682 32.7393 +121.165 -20.0451 33.8836 +120.627 -20.5504 34.7377 +120.743 -21.1684 35.7825 +121.318 -21.874 36.9752 +120.844 -22.3949 37.8556 +121.112 -23.0558 38.9727 +120.619 -23.5747 39.85 +120.954 -24.2591 41.0068 +121.368 -24.9672 42.2039 +121.49 -25.6225 43.3115 +118.653 -25.644 43.3479 +115.916 -25.6627 43.3795 +112.732 -25.5555 43.1982 +109.65 -25.4431 43.0082 +107.035 -25.4129 42.9571 +105.332 -25.5806 43.2406 +102.552 -25.4673 43.0491 +100.054 -25.3995 42.9345 +97.5652 -25.3114 42.7857 +96.152 -25.4853 43.0796 +96.7711 -26.1985 44.285 +96.7578 -26.7489 45.2155 +96.8204 -27.3259 46.1908 +97.828 -28.1813 47.6368 +96.0422 -28.233 47.7242 +95.6408 -28.6845 48.4874 +95.317 -29.1608 49.2925 +94.8989 -29.6098 50.0515 +94.727 -30.1383 50.9448 +94.7972 -30.7495 51.9781 +95.5246 -31.5855 53.3912 +95.1464 -32.065 54.2016 +95.2564 -32.7143 55.2992 +94.8569 -33.194 56.1101 +94.694 -33.7602 57.0671 +95.3329 -34.6231 58.5259 +94.7359 -35.0454 59.2397 +94.614 -35.6467 60.2561 +95.1175 -36.4948 61.6896 +94.8057 -37.04 62.6112 +94.9553 -37.7733 63.8508 +94.0695 -38.0987 64.4008 +93.4907 -38.5472 65.159 +91.9005 -38.5725 65.2018 +90.7763 -38.783 65.5576 +88.7394 -38.5897 65.2308 +87.8482 -38.8823 65.7254 +86.055 -38.765 65.5272 +84.7185 -38.8393 65.6528 +83.2386 -38.8358 65.6469 +82.3504 -39.1 66.0935 +80.444 -38.8686 65.7023 +80.2064 -39.4368 66.6628 +78.4575 -39.2564 66.3577 +77.7817 -39.6035 66.9444 +75.2076 -38.9671 65.8687 +74.5368 -39.2997 66.4311 +71.4512 -38.3368 64.8033 +71.4052 -38.9879 65.9039 +70.5316 -39.1911 66.2474 +69.3219 -39.2002 66.2629 +67.4547 -38.8204 65.6207 +66.7868 -39.1186 66.1248 +64.9448 -38.717 65.4459 +64.793 -39.3161 66.4587 +63.099 -38.9739 65.8802 +62.4915 -39.2923 66.4185 +60.6329 -38.8114 65.6055 +59.9654 -39.0793 66.0584 +58.7455 -38.9807 65.8918 +57.4733 -38.8336 65.6431 +56.3892 -38.801 65.5879 +55.6633 -39.0089 65.9394 +54.4119 -38.8402 65.6542 +53.8015 -39.1222 66.1309 +52.1094 -38.6044 65.2557 +51.8931 -39.1722 66.2155 +50.1711 -38.5946 65.239 +49.9979 -39.2004 66.2631 +48.2495 -38.5622 65.1843 +47.4808 -38.6887 65.3982 +46.3456 -38.5075 65.0919 +45.7869 -38.7992 65.585 +43.6991 -37.7728 63.85 +43.55 -38.4065 64.9211 +42.1022 -37.8895 64.0472 +42.13 -38.6986 65.4149 +40.5585 -38.0341 64.2917 +39.999 -38.3027 64.7458 +38.9716 -38.1177 64.433 +38.68 -38.6524 65.3368 +37.2575 -38.0481 64.3154 +36.5602 -38.1664 64.5154 +35.6033 -38.0058 64.2437 +34.9083 -38.1163 64.4307 +33.9219 -37.8993 64.0639 +33.6371 -38.4673 65.0239 +32.2588 -37.7748 63.8533 +31.9618 -38.3385 64.8062 +30.9591 -38.0557 64.3282 +30.6054 -38.5694 65.1966 +29.2834 -37.8513 63.9826 +28.992 -38.4553 65.0036 +28.0166 -38.1534 64.4933 +27.6694 -38.707 65.4292 +26.6378 -38.3006 64.7421 +26.0129 -38.4656 65.021 +25.0671 -38.1452 64.4794 +24.7214 -38.7393 65.4837 +23.5152 -37.9736 64.1894 +23.0681 -38.4175 64.9397 +22.1816 -38.128 64.4503 +21.8029 -38.7145 65.4418 +20.8446 -38.2702 64.6908 +20.2138 -38.4105 64.928 +19.2542 -37.9074 64.0775 +18.6038 -37.9914 64.2196 +17.9286 -38.0232 64.2732 +17.5012 -38.5975 65.244 +16.6442 -38.2264 64.6168 +16.1755 -38.7471 65.497 +15.2716 -38.2188 64.6039 +14.635 -38.3352 64.8006 +13.8317 -37.9982 64.231 +13.1799 -38.0583 64.3325 +12.3951 -37.7136 63.7499 +11.889 -38.2199 64.6057 +11.2187 -38.2209 64.6074 +10.5632 -38.2692 64.6891 +9.78946 -37.8604 63.9981 +9.24988 -38.3573 64.838 +8.59212 -38.3969 64.905 +7.92326 -38.383 64.8815 +7.19802 -38.062 64.3389 +6.5454 -38.0925 64.3904 +5.93935 -38.4247 64.9519 +5.28754 -38.5005 65.08 +4.57254 -38.0651 64.344 +3.96707 -38.5415 65.1494 +3.27145 -38.1508 64.4889 +2.61048 -38.0621 64.3389 +1.93709 -37.665 63.6678 +1.30893 -38.1813 64.5405 +0.645764 -37.6765 63.6872 +2.9976e-15 -38.1871 64.5503 +-0.655363 -38.2366 64.6339 +-1.32464 -38.6395 65.3149 +-1.96327 -38.174 64.5282 +-2.64887 -38.6218 65.2852 +-3.27582 -38.2016 64.5748 +-3.9723 -38.5924 65.2354 +-4.57864 -38.1159 64.4299 +-5.29452 -38.5512 65.1658 +-5.95505 -38.5262 65.1235 +-6.58897 -38.3461 64.8191 +-7.27469 -38.4675 65.0242 +-7.99643 -38.7375 65.4806 +-8.59212 -38.3969 64.905 +-9.37175 -38.8627 65.6923 +-9.98525 -38.6176 65.278 +-10.6607 -38.6222 65.2858 +-11.3074 -38.523 65.1181 +-11.9672 -38.4713 65.0307 +-12.6426 -38.4669 65.0233 +-13.3188 -38.4594 65.0106 +-13.941 -38.2986 64.7388 +-14.8449 -38.885 65.73 +-15.2516 -38.1689 64.5195 +-16.1755 -38.7471 65.497 +-16.839 -38.6738 65.373 +-17.7261 -39.0936 66.0827 +-18.3955 -39.0133 65.9469 +-19.0634 -38.9301 65.8063 +-19.7299 -38.8439 65.6606 +-20.3949 -38.7548 65.51 +-21.2989 -39.1043 66.1006 +-21.9683 -39.0082 65.9382 +-22.4088 -38.5185 65.1105 +-23.3313 -38.8557 65.6805 +-23.9963 -38.7506 65.5027 +-24.9686 -39.1267 66.1386 +-25.6382 -39.0143 65.9486 +-26.5664 -39.284 66.4045 +-27.005 -38.8285 65.6345 +-27.943 -39.0898 66.0762 +-28.6119 -38.9642 65.8638 +-29.637 -39.3109 66.4499 +-30.3097 -39.1777 66.2248 +-31.2797 -39.4192 66.6331 +-31.6862 -38.9494 65.8389 +-32.7042 -39.229 66.3115 +-33.3753 -39.0822 66.0633 +-34.3692 -39.3045 66.4391 +-35.083 -39.1966 66.2568 +-36.0916 -39.4084 66.6148 +-36.7226 -39.2006 66.2635 +-37.7876 -39.4478 66.6813 +-38.4176 -39.2328 66.318 +-39.5426 -39.5144 66.7938 +-40.2183 -39.3371 66.4942 +-41.6421 -39.8763 67.4056 +-42.4194 -39.7792 67.2415 +-43.4389 -39.9009 67.4473 +-44.1212 -39.7064 67.1185 +-45.35 -39.9939 67.6044 +-46.0337 -39.7909 67.2613 +-47.1775 -39.9776 67.5769 +-47.6519 -39.5928 66.9265 +-49.0175 -39.9409 67.5148 +-50.1838 -40.1081 67.7975 +-51.3595 -40.2679 68.0675 +-52.3236 -40.2504 68.0381 +-53.5148 -40.3963 68.2847 +-53.6953 -39.7794 67.2418 +-55.4075 -40.29 68.105 +-56.0959 -40.0423 67.6863 +-57.8381 -40.533 68.5157 +-58.5306 -40.2744 68.0786 +-59.7001 -40.3381 68.1863 +-60.2674 -39.9906 67.5988 +-62.4281 -40.6842 68.7713 +-62.5627 -40.0466 67.6936 +-64.4424 -40.5189 68.4919 +-64.88 -40.0739 67.7397 +-66.7856 -40.5252 68.5025 +-67.7374 -40.3818 68.2601 +-69.6079 -40.771 68.918 +-70.569 -40.6127 68.6504 +-72.4668 -40.9786 69.269 +-73.1664 -40.6551 68.7221 +-75.0198 -40.9615 69.24 +-76.132 -40.8482 69.0485 +-78.4269 -41.3508 69.8981 +-79.1327 -41.0007 69.3064 +-80.8223 -41.1516 69.5614 +-82.1665 -41.1121 69.4946 +-83.7312 -41.1699 69.5923 +-84.6512 -40.9015 69.1386 +-86.446 -41.0446 69.3806 +-87.5885 -40.8654 69.0775 +-89.1774 -40.8835 69.1082 +-89.65 -40.3845 68.2646 +-91.7727 -40.6193 68.6616 +-93.1497 -40.5076 68.4727 +-95.679 -40.8776 69.0983 +-97.0704 -40.7424 68.8697 +-99.0084 -40.8222 69.0046 +-100.956 -40.8879 69.1157 +-102.757 -40.8767 69.0966 +-104.723 -40.9144 69.1605 +-106.937 -41.0298 69.3554 +-108.762 -40.9771 69.2664 +-111.24 -41.1507 69.5599 +-112.836 -40.9801 69.2714 +-116.238 -41.4409 70.0504 +-118.18 -41.3555 69.906 +-121.371 -41.6829 70.4595 +-124.332 -41.9008 70.8279 +-128.4 -42.456 71.7664 +-130.557 -42.349 71.5854 +-134.416 -42.7656 72.2896 +-135.826 -42.3796 71.6371 +-138.175 -42.2727 71.4564 +-139.67 -41.8897 70.8091 +-137.092 -40.3001 68.1221 +-136.037 -39.188 66.2422 +-117.724 -33.2255 56.1634 +-116.707 -32.2639 54.5379 +-117.697 -31.8636 53.8613 +-122.94 -32.5855 55.0816 +-140.601 -36.4762 61.6582 +-141.221 -35.8501 60.5998 +-141.38 -35.1096 59.3483 +-140.713 -34.1732 57.7654 +-140.115 -33.267 56.2335 +-139.679 -32.4109 54.7864 +-142.148 -32.2239 54.4703 +-151.223 -33.4793 56.5923 +-130.436 -28.1905 47.6524 +-111.327 -23.4792 39.6885 +-109.686 -22.564 38.1415 +-109.417 -21.9451 37.0953 +-108.762 -21.2574 35.9329 +-107.998 -20.5594 34.7529 +-107.407 -19.9046 33.6461 +-107.932 -19.4606 32.8956 +-107.884 -18.914 31.9716 +-107.635 -18.337 30.9963 +-108.04 -17.8738 30.2133 +-107.484 -17.2552 29.1677 +-107.68 -16.7622 28.3342 +-54.7486 -8.25723 13.9578 +-45.8522 -6.69441 11.316 +-38.9307 -5.49711 9.29215 +-35.9324 -4.90224 8.2866 +-32.1425 -4.23247 7.15443 +-17.5624 -2.22951 3.7687 +-16.822 -2.0563 3.47591 +-15.9797 -1.8784 3.17519 +-18.0615 -2.03875 3.44624 +-17.3132 -1.87374 3.1673 +-17.1487 -1.77643 3.00283 +-16.4913 -1.63216 2.75896 +-16.4204 -1.54955 2.61931 +-15.363 -1.37927 2.33148 +-15.4847 -1.31936 2.23021 +-15.0129 -1.21068 2.0465 +-13.5495 -1.03105 1.74285 +-15.8443 -1.13379 1.91652 +-13.1862 -0.883905 1.49412 +-14.4912 -0.905946 1.53138 +-14.2081 -0.824236 1.39326 +-13.7244 -0.734461 1.24151 +-13.9355 -0.683213 1.15488 +-13.349 -0.594645 1.00517 +-15.851 -0.635179 1.07369 +-14.7639 -0.525658 0.888557 +-15.3713 -0.478687 0.809158 +-14.7797 -0.394382 0.666652 +-14.4862 -0.322035 0.544358 +-15.2907 -0.271873 0.459566 +-14.7949 -0.197259 0.33344 +-13.8979 -0.123516 0.208788 +-14.9994 -0.0666482 0.11266 +118.6 5.32907e-15 2.84217e-14 +117.396 -0.513674 0.886419 +78.688 -0.688659 1.18838 +69.7761 -0.916115 1.58089 +67.0591 -1.17413 2.02614 +69.3339 -1.5178 2.61919 +72.5005 -1.90508 3.28749 +66.376 -2.03551 3.51257 +58.4573 -2.04955 3.53679 +49.4471 -1.95119 3.36707 +50.5071 -2.21554 3.82324 +55.6426 -2.68634 4.63567 +67.3291 -3.54813 6.12281 +66.3706 -3.7915 6.54278 +118.212 -7.27747 12.5583 +120.758 -7.97115 13.7554 +120.615 -8.49921 14.6666 +120.165 -9.00436 15.5383 +120.103 -9.53764 16.4586 +120.623 -10.1207 17.4648 +120.147 -10.622 18.3298 +120.055 -11.1564 19.252 +119.857 -11.6813 20.1578 +119.649 -12.2052 21.0619 +120.312 -12.8221 22.1264 +119.987 -13.3372 23.0152 +120.627 -13.9632 24.0955 +120.282 -14.4787 24.9852 +120.802 -15.1015 26.0599 +120.341 -15.6044 26.9276 +120.934 -16.2471 28.0367 +120.454 -16.7488 28.9025 +120.831 -17.372 29.9778 +120.428 -17.8857 30.8644 +120.303 -18.4413 31.8232 +120.645 -19.0725 32.9124 +121.069 -19.7236 34.036 +120.627 -20.2367 34.9214 +120.932 -20.878 36.028 +121.318 -21.5402 37.1707 +121.126 -22.1045 38.1445 +120.269 -22.5458 38.9061 +120.712 -23.2329 40.0918 +121.14 -23.9256 41.2871 +121.554 -24.6237 42.4918 +121.49 -25.2314 43.5405 +118.929 -25.3114 43.6785 +115.825 -25.251 43.5743 +112.64 -25.145 43.3914 +109.741 -25.0755 43.2715 +107.035 -25.025 43.1842 +104.519 -24.9959 43.1341 +101.833 -24.9028 42.9734 +99.9642 -24.9894 43.1229 +97.4761 -24.9023 42.9726 +95.6198 -24.9574 43.0677 +96.7711 -25.7986 44.5192 +97.0214 -26.4124 45.5784 +96.8204 -26.9088 46.4351 +97.4798 -27.6524 47.7182 +97.1681 -28.128 48.5389 +96.5886 -28.5266 49.2269 +96.0027 -28.9223 49.9097 +94.8989 -29.1579 50.3162 +95.0662 -29.7845 51.3975 +94.7972 -30.2802 52.2529 +94.8536 -30.885 53.2965 +95.063 -31.5479 54.4404 +95.1735 -32.1869 55.5432 +94.9393 -32.7157 56.4557 +94.5301 -33.1873 57.2696 +94.6002 -33.8326 58.3832 +94.7359 -34.5105 59.5529 +94.7747 -35.1623 60.6776 +94.7182 -35.7869 61.7554 +94.6471 -36.4135 62.8369 +94.6401 -37.0732 63.9753 +95.0086 -37.8917 65.3876 +94.1901 -38.2428 65.9936 +93.0579 -38.4621 66.372 +91.2359 -38.3844 66.2379 +90.1081 -38.5868 66.5871 +88.1501 -38.4204 66.2999 +87.1784 -38.6717 66.7337 +86.0562 -38.8503 67.0419 +84.0496 -38.6157 66.637 +82.7892 -38.7084 66.797 +81.4595 -38.7585 66.8835 +80.7819 -39.1135 67.496 +79.3848 -39.114 67.497 +78.3474 -39.2826 67.7879 +76.1888 -38.8729 67.0809 +75.7872 -39.3491 67.9026 +73.5851 -38.879 67.0914 +71.678 -38.5395 66.5055 +70.3965 -38.5189 66.47 +69.7234 -38.8255 66.999 +69.1775 -39.2042 67.6525 +68.0333 -39.2405 67.7152 +66.6983 -39.1554 67.5683 +65.4358 -39.1 67.4728 +64.1167 -38.998 67.2968 +62.995 -39.0043 67.3076 +61.6912 -38.886 67.1035 +61.0736 -39.194 67.635 +59.2934 -38.7437 66.8579 +58.6168 -39.0017 67.3031 +56.8651 -38.5312 66.4911 +56.6625 -39.103 67.4779 +54.9926 -38.6555 66.7057 +54.2603 -38.8536 67.0476 +52.6191 -38.3871 66.2425 +52.3405 -38.9068 67.1394 +50.723 -38.4236 66.3055 +50.597 -39.0645 67.4116 +49.3241 -38.8193 66.9883 +48.6466 -39.0336 67.3582 +46.6069 -38.1335 65.8048 +46.1474 -38.5078 66.4509 +44.3589 -37.7579 65.1567 +43.6 -37.8637 65.3393 +43.0378 -38.1403 65.8166 +42.3724 -38.3271 66.1391 +41.2742 -38.1145 65.7721 +40.4215 -38.1166 65.7757 +39.341 -37.8917 65.3876 +39.0886 -38.4645 66.3761 +37.6145 -37.8264 65.2749 +37.3492 -38.3951 66.2563 +36.3351 -38.195 65.911 +35.6267 -38.307 66.1044 +34.6684 -38.1421 65.8198 +33.9218 -38.2007 65.921 +33.0164 -38.0718 65.6985 +32.3135 -38.1687 65.8657 +31.3035 -37.8917 65.3876 +30.98 -38.4456 66.3435 +29.9432 -38.1132 65.7699 +29.3145 -38.2896 66.0743 +28.2968 -37.9467 65.4826 +27.8746 -38.3989 66.2629 +26.9716 -38.1886 65.8999 +26.2734 -38.2577 66.0193 +25.3844 -38.0384 65.6408 +24.9686 -38.5295 66.4883 +24.0264 -38.2069 65.9316 +23.3313 -38.2626 66.0277 +22.4372 -37.9787 65.5378 +22.051 -38.5573 66.5363 +21.1386 -38.2175 65.9499 +20.4726 -38.3085 66.107 +19.5547 -37.9112 65.4214 +19.1602 -38.5305 66.49 +18.2321 -38.0766 65.7067 +17.5687 -38.1549 65.8419 +17.0122 -38.4751 66.3944 +16.3419 -38.5481 66.5203 +15.2716 -37.6354 64.9454 +14.9022 -38.4391 66.3323 +13.9957 -37.862 65.3363 +13.3362 -37.9217 65.4395 +12.6757 -37.9786 65.5377 +12.0298 -38.0822 65.7163 +11.3518 -38.0838 65.7191 +10.7024 -38.1816 65.888 +9.90694 -37.7299 65.1085 +9.35957 -38.2197 65.9537 +8.59212 -37.8109 65.2482 +8.02779 -38.2958 66.085 +7.27469 -37.8803 65.368 +6.68485 -38.3103 66.1099 +6.00997 -38.2881 66.0717 +5.34335 -38.3129 66.1145 +4.61527 -37.8344 65.2887 +3.96707 -37.9533 65.4939 +3.30635 -37.9692 65.5214 +2.64887 -38.0323 65.6303 +1.96065 -37.5412 64.7829 +1.32464 -38.0497 65.6603 +0.65449 -37.6028 64.8891 +2.88658e-15 -38.0555 65.6703 +-0.662344 -38.054 65.6678 +-1.32464 -38.0497 65.6603 +-1.98683 -38.0425 65.6478 +-2.68028 -38.4833 66.4085 +-3.31071 -38.0193 65.6078 +-4.0194 -38.4539 66.3579 +-4.68853 -38.4349 66.3251 +-5.29452 -37.9628 65.5103 +-5.9472 -37.8882 65.3816 +-6.78943 -38.9097 67.1443 +-7.34178 -38.2296 65.9708 +-8.13231 -38.7944 66.9455 +-8.76193 -38.5581 66.5377 +-9.53018 -38.9164 67.156 +-10.0114 -38.1276 65.7947 +-10.8277 -38.6285 66.6592 +-11.4996 -38.5796 66.5748 +-12.1862 -38.5774 66.5709 +-12.8407 -38.4732 66.391 +-13.6835 -38.9093 67.1437 +-14.1779 -38.3549 66.187 +-14.9976 -38.6852 66.7569 +-15.7102 -38.7164 66.8108 +-16.3834 -38.6461 66.6895 +-17.0554 -38.573 66.5633 +-17.9286 -38.9366 67.1908 +-18.6056 -38.8567 67.0528 +-19.0876 -38.3846 66.2382 +-19.9553 -38.6879 66.7617 +-20.6279 -38.5992 66.6085 +-21.2989 -38.5074 66.4501 +-22.2164 -38.8465 67.0354 +-22.8916 -38.7479 66.8651 +-23.8283 -39.0777 67.4343 +-24.2369 -38.5416 66.5092 +-25.2158 -38.911 67.1465 +-25.8603 -38.7516 66.8716 +-26.957 -39.2533 67.7372 +-27.5724 -39.0393 67.368 +-28.5245 -39.2941 67.8078 +-28.9271 -38.7921 66.9414 +-29.8879 -39.0385 67.3667 +-30.5662 -38.9063 67.1384 +-31.6543 -39.2824 67.7875 +-32.3368 -39.1424 67.5459 +-33.3684 -39.4148 68.016 +-34.0532 -39.2673 67.7615 +-34.6946 -39.071 67.4227 +-35.7051 -39.2827 67.7881 +-36.3874 -39.125 67.5159 +-37.4975 -39.4169 68.0196 +-38.5767 -39.6569 68.4337 +-38.8638 -39.0827 67.443 +-40.269 -39.626 68.3804 +-40.7724 -39.2704 67.7668 +-41.8769 -39.4889 68.1439 +-42.324 -39.0839 67.445 +-43.7783 -39.5989 68.3336 +-44.6628 -39.5804 68.3017 +-45.6 -39.6005 68.3365 +-46.5413 -39.6155 68.3624 +-47.8985 -39.9691 68.9725 +-48.1221 -39.3732 67.9443 +-49.7594 -39.9265 68.8991 +-50.4524 -39.7073 68.5208 +-52.122 -40.242 69.4434 +-52.3236 -39.6361 68.3978 +-54.2417 -40.3201 69.5782 +-54.7148 -39.916 68.8808 +-55.8663 -40.0036 69.032 +-57.1412 -40.1658 69.312 +-58.8373 -40.6039 70.0679 +-59.3038 -40.1836 69.3427 +-60.3019 -40.1229 69.2379 +-60.9979 -39.8575 68.7799 +-62.7359 -40.2608 69.4758 +-63.2475 -39.867 68.7964 +-65.6381 -40.6408 70.1316 +-66.343 -40.3521 69.6334 +-68.1998 -40.7516 70.3229 +-68.6467 -40.2992 69.5421 +-71.0512 -40.9811 70.7189 +-71.7618 -40.6687 70.1798 +-73.6044 -40.9866 70.7283 +-74.3149 -40.663 70.1699 +-76.793 -41.2897 71.2513 +-77.3022 -40.843 70.4805 +-78.8437 -40.936 70.6411 +-79.7635 -40.6968 70.2282 +-82.0951 -41.1617 71.0304 +-82.8084 -40.8009 70.4079 +-85.026 -41.1684 71.0421 +-85.3766 -40.6223 70.0996 +-87.7624 -41.0337 70.8095 +-88.2521 -40.5465 69.9688 +-90.0692 -40.662 70.1682 +-91.4475 -40.5654 70.0015 +-93.1312 -40.5914 70.0463 +-94.5945 -40.5079 69.9024 +-97.3642 -40.9627 70.6871 +-98.305 -40.6308 70.1144 +-100.563 -40.8302 70.4585 +-102.365 -40.8256 70.4506 +-104.569 -40.9627 70.6871 +-105.754 -40.6867 70.2109 +-108.055 -40.826 70.4512 +-109.485 -40.6201 70.0958 +-113.829 -41.4656 71.555 +-114.79 -41.0534 70.8436 +-118.204 -41.4986 71.6119 +-119.416 -41.1502 71.0107 +-124.107 -41.972 72.4287 +-126.667 -42.0361 72.5395 +-130.581 -42.518 73.371 +-131.822 -42.1067 72.6612 +-135.773 -42.538 73.4055 +-137.019 -42.0995 72.6488 +-139.204 -41.9374 72.369 +-138.981 -41.0467 70.8321 +-125.4 -36.3006 62.642 +-121.589 -34.4914 59.52 +-116.149 -32.2808 55.7053 +-115.389 -31.4125 54.2069 +-116.991 -31.189 53.8211 +-120.633 -31.4862 54.334 +-140.334 -35.8511 61.8664 +-141.221 -35.3029 60.9202 +-141.021 -34.4858 59.5103 +-140.262 -33.5437 57.8845 +-139.934 -32.7168 56.4577 +-140.407 -32.0825 55.3631 +-148.451 -33.1392 57.1866 +-157.734 -34.3877 59.341 +-137.984 -29.3667 50.6765 +-111.42 -23.1399 39.9314 +-110.428 -22.3698 38.6024 +-109.324 -21.5918 37.2598 +-108.669 -20.915 36.0918 +-107.811 -20.2105 34.8761 +-107.783 -19.6694 33.9424 +-107.744 -19.1301 33.0117 +-107.789 -18.609 32.1125 +-108.583 -18.2162 31.4347 +-107.564 -17.5235 30.2393 +-108.342 -17.1276 29.5561 +-107.68 -16.5063 28.484 +-65.1039 -9.6691 16.6854 +-49.7934 -7.15885 12.3536 +-40.6652 -5.65442 9.75753 +-37.7677 -5.07397 8.75587 +-32.1425 -4.16786 7.19226 +-17.5624 -2.19548 3.78862 +-17.0165 -2.04832 3.53468 +-16.7592 -1.93996 3.34768 +-16.4018 -1.82315 3.14611 +-17.0198 -1.81386 3.13008 +-17.2467 -1.75932 3.03596 +-16.7858 -1.63595 2.82307 +-16.617 -1.54417 2.66469 +-16.6433 -1.4714 2.53912 +-16.2737 -1.36543 2.35625 +-15.1116 -1.20005 2.07086 +-14.4396 -1.08201 1.86717 +-15.9433 -1.12346 1.93869 +-14.376 -0.948946 1.63754 +-14.1934 -0.873787 1.50785 +-15.4004 -0.879764 1.51816 +-15.3156 -0.807107 1.39278 +-15.3291 -0.740062 1.27708 +-15.1422 -0.664226 1.14622 +-15.7513 -0.621548 1.07257 +-15.3625 -0.538618 0.929464 +-15.6707 -0.480563 0.829282 +-14.9794 -0.393611 0.679233 +-15.2854 -0.334616 0.577429 +-14.791 -0.258974 0.446898 +-15.5947 -0.204748 0.353322 +-13.8979 -0.121631 0.209892 +-12.9995 -0.0568802 0.098155 +118.6 5.32907e-15 2.84217e-14 +117.496 -0.506084 0.891775 +84.8871 -0.731316 1.28866 +76.8736 -0.993546 1.75074 +76.7532 -1.32289 2.33107 +72.1313 -1.55439 2.739 +77.993 -2.01741 3.55489 +73.9618 -2.23273 3.93431 +70.5278 -2.43414 4.28922 +54.0329 -2.09886 3.69843 +58.377 -2.52079 4.4419 +64.9994 -3.08907 5.44328 +71.6056 -3.71458 6.54548 +81.8703 -4.60392 8.11261 +119.999 -7.27215 12.8143 +120.857 -7.85312 13.838 +119.723 -8.30468 14.6337 +120.264 -8.87109 15.6318 +120.103 -9.38874 16.544 +119.834 -9.89756 17.4406 +120.147 -10.4562 18.4249 +120.055 -10.9823 19.3519 +119.857 -11.4989 20.2623 +120.531 -12.1033 21.3273 +120.312 -12.6219 22.2412 +120.865 -13.2251 23.3041 +120.627 -13.7452 24.2205 +120.282 -14.2527 25.1148 +120.123 -14.7821 26.0477 +120.341 -15.3607 27.0673 +120.934 -15.9934 28.1822 +120.454 -16.4874 29.0525 +120.927 -17.1144 30.1574 +121.195 -17.7186 31.2222 +120.877 -18.24 32.1408 +121.313 -18.8787 33.2662 +121.355 -19.4615 34.2932 +120.532 -19.9051 35.0749 +120.27 -20.4396 36.0167 +120.658 -21.0886 37.1604 +121.032 -21.7425 38.3127 +120.456 -22.2284 39.1689 +120.712 -22.8702 40.2998 +121.047 -23.5339 41.4694 +120.997 -24.1284 42.5168 +121.398 -24.8186 43.733 +117.641 -24.6462 43.4293 +114.908 -24.66 43.4536 +111.727 -24.5517 43.2628 +109.741 -24.684 43.496 +106.31 -24.4674 43.1142 +103.707 -24.4144 43.0208 +101.923 -24.5356 43.2344 +99.2482 -24.4231 43.0361 +96.7633 -24.3343 42.8797 +95.6198 -24.5678 43.2911 +97.5657 -25.6043 45.1176 +96.9335 -25.9765 45.7734 +96.7329 -26.4648 46.6338 +96.9576 -27.0749 47.7088 +96.4752 -27.4914 48.4429 +96.6748 -28.1063 49.5264 +96.6885 -28.6742 50.527 +96.0073 -29.0379 51.1679 +95.3206 -29.398 51.8025 +94.7972 -29.8075 52.524 +94.1827 -30.1878 53.1941 +94.9796 -31.0281 54.6749 +94.9248 -31.6016 55.6855 +94.4449 -32.0372 56.4531 +94.694 -32.7259 57.6665 +94.6002 -33.3045 58.6861 +94.7359 -33.9718 59.8619 +94.7747 -34.6133 60.9924 +94.798 -35.2578 62.1281 +95.1231 -36.0254 63.4806 +94.5613 -36.4641 64.2537 +94.4608 -37.085 65.3479 +95.2004 -38.0496 67.0475 +93.7524 -38.1442 67.2143 +92.6148 -38.3562 67.5878 +91.2487 -38.4652 67.7798 +90.5651 -38.8567 68.4698 +87.478 -38.1988 67.3104 +86.7993 -38.5741 67.9718 +85.1555 -38.513 67.8641 +84.0325 -38.6763 68.1519 +82.33 -38.5611 67.9489 +81.8609 -39.0171 68.7524 +79.3134 -38.4688 67.7862 +78.8424 -38.9136 68.5701 +77.6607 -39.0053 68.7316 +76.6903 -39.1963 69.0681 +74.2046 -38.5943 68.0073 +74.1332 -39.2373 69.1403 +71.0721 -38.2815 67.4561 +70.9278 -38.8796 68.51 +69.7739 -38.9248 68.5897 +69.083 -39.2239 69.1167 +67.4127 -38.9569 68.6463 +66.7214 -39.2458 69.1554 +64.7528 -38.77 68.317 +64.0019 -39.0091 68.7382 +62.3137 -38.6652 68.1323 +62.0587 -39.2044 69.0824 +60.3891 -38.8437 68.4468 +59.6399 -39.0629 68.8331 +57.9357 -38.6438 68.0946 +57.603 -39.1315 68.9539 +55.9798 -38.7351 68.2555 +55.2354 -38.9343 68.6065 +53.582 -38.4793 67.8046 +53.4588 -39.1178 68.9298 +51.6613 -38.5234 67.8824 +51.5229 -39.1584 69.0013 +49.9151 -38.6712 68.1428 +49.1235 -38.801 68.3715 +47.9654 -38.6323 68.0743 +46.9715 -38.5836 67.9885 +45.4754 -38.104 67.1434 +44.5 -38.042 67.0341 +43.7765 -38.1892 67.2935 +43.0026 -38.29 67.4711 +41.8945 -38.0833 67.1069 +41.2196 -38.2623 67.4224 +39.7566 -37.6942 66.4212 +39.5426 -38.3038 67.4954 +38.4176 -38.0309 67.0145 +37.7438 -38.1949 67.3036 +36.6795 -37.9551 66.881 +36.0071 -38.1116 67.1568 +35.0416 -37.9509 66.8735 +34.654 -38.416 67.6931 +33.6145 -38.1564 67.2357 +32.9386 -38.2998 67.4883 +32.0306 -38.1665 67.2536 +31.2422 -38.1658 67.2522 +30.3097 -37.9774 66.9203 +29.9596 -38.5212 67.8785 +28.9271 -38.1865 67.2887 +28.5587 -38.727 68.2412 +27.2386 -37.9646 66.8977 +26.8919 -38.5471 67.9242 +25.6699 -37.8658 66.7237 +25.2158 -38.3035 67.4949 +24.5376 -38.4107 67.6837 +23.8283 -38.4677 67.7842 +22.9484 -38.2376 67.3787 +22.2991 -38.3824 67.634 +21.3791 -38.0489 67.0463 +20.9385 -38.5686 67.9621 +20.0304 -38.2273 67.3606 +19.3538 -38.3121 67.5101 +18.4655 -37.9621 66.8933 +17.9511 -38.3768 67.6241 +17.4017 -38.7418 68.2672 +16.7161 -38.8153 68.3967 +15.7102 -38.112 67.1574 +15.2647 -38.7596 68.2985 +14.3966 -38.3385 67.5566 +13.8398 -38.7393 68.2629 +12.8902 -38.0186 66.9928 +12.374 -38.5601 67.9471 +11.5439 -38.1238 67.1783 +10.9808 -38.5631 67.9524 +10.181 -38.1685 67.2571 +9.62768 -38.7008 68.1949 +8.84117 -38.2995 67.4878 +8.15322 -38.287 67.4658 +7.47597 -38.3206 67.5251 +6.78943 -38.3022 67.4927 +6.00997 -37.6904 66.4145 +5.49681 -38.798 68.3662 +4.68242 -37.7856 66.5823 +4.07697 -38.3958 67.6576 +3.40231 -38.4612 67.7729 +2.71518 -38.3758 67.6222 +2.01039 -37.8926 66.7709 +1.35954 -38.4426 67.7401 +0.669325 -37.8548 66.7043 +3.66374e-15 -38.5472 67.9244 +-0.669325 -37.8548 66.7043 +-1.36129 -38.492 67.8271 +-2.00777 -37.8433 66.6839 +-2.72565 -38.5237 67.883 +-3.40667 -38.5106 67.8598 +-4.08744 -38.4944 67.8313 +-4.68853 -37.8349 66.6692 +-5.50379 -38.8472 68.453 +-6.11196 -38.33 67.5416 +-6.86787 -38.7447 68.2724 +-7.4568 -38.2224 67.3519 +-8.31001 -39.0233 68.7632 +-8.89777 -38.5446 67.9198 +-9.63987 -38.7498 68.2813 +-10.2855 -38.56 67.9469 +-11.0921 -38.9541 68.6414 +-11.6622 -38.5144 67.8665 +-12.4678 -38.8526 68.4626 +-13.0058 -38.3593 67.5933 +-13.8398 -38.7393 68.2629 +-14.3602 -38.2415 67.3856 +-15.2075 -38.6142 68.0424 +-15.77 -38.257 67.413 +-16.529 -38.3807 67.631 +-17.2502 -38.4045 67.6729 +-18.1311 -38.7615 68.302 +-18.6056 -38.2501 67.4007 +-19.4505 -38.5037 67.8477 +-20.1306 -38.4185 67.6975 +-21.042 -38.7594 68.2982 +-21.5394 -38.3343 67.5492 +-22.7401 -39.1415 68.9716 +-23.1473 -38.5688 67.9625 +-24.3838 -39.3645 69.3644 +-24.8082 -38.8343 68.4302 +-25.772 -39.1484 68.9838 +-26.1776 -38.6147 68.0433 +-27.2175 -39.0138 68.7466 +-27.8395 -38.8021 68.3734 +-28.7639 -39.0053 68.7316 +-29.5225 -38.9724 68.6736 +-30.5329 -39.2585 69.1777 +-31.2259 -39.1255 68.9433 +-32.2536 -39.4013 69.4294 +-32.9873 -39.3065 69.2623 +-33.642 -39.1175 68.9293 +-34.3323 -38.9711 68.6714 +-35.7928 -39.6785 69.9178 +-36.2027 -39.2084 69.0894 +-37.1904 -39.3641 69.3638 +-37.885 -39.2024 69.0789 +-39.2781 -39.7475 70.0394 +-39.3993 -39.0026 68.7269 +-40.9953 -39.711 69.9751 +-41.6959 -39.5329 69.6613 +-42.8158 -39.744 70.0333 +-43.0874 -39.1677 69.0178 +-44.651 -39.7577 70.0573 +-45.3522 -39.5639 69.7158 +-46.3 -39.5807 69.7456 +-46.9981 -39.3798 69.3915 +-48.6196 -39.9374 70.374 +-49.5329 -39.8948 70.2989 +-50.7133 -40.0566 70.5841 +-51.2047 -39.6702 69.9031 +-53.0478 -40.3174 71.0436 +-53.7587 -40.0874 70.6383 +-55.4719 -40.5908 71.5254 +-56.0742 -40.269 70.9584 +-57.415 -40.4707 71.3137 +-58.1284 -40.2219 70.8753 +-59.1312 -40.1696 70.7832 +-59.8392 -39.9134 70.3317 +-61.686 -40.4031 71.1946 +-62.0328 -39.9009 70.3097 +-63.6594 -40.2156 70.8643 +-64.6793 -40.133 70.7188 +-66.5192 -40.5433 71.4417 +-67.2335 -40.2553 70.9342 +-69.6139 -40.9472 72.1534 +-70.3352 -40.6459 71.6224 +-72.1665 -40.9746 72.2017 +-73.1533 -40.8101 71.9117 +-75.1434 -41.1904 72.5819 +-75.8688 -40.8651 72.0087 +-78.3616 -41.4753 73.0839 +-78.3348 -40.7424 71.7925 +-80.8582 -41.3266 72.8219 +-81.3756 -40.8711 72.0193 +-83.1558 -41.0426 72.3215 +-83.8783 -40.6828 71.6875 +-86.3208 -41.1429 72.4982 +-87.0449 -40.7695 71.8403 +-89.0789 -40.9989 72.2446 +-89.358 -40.4136 71.2132 +-92.15 -40.952 72.1618 +-92.8705 -40.5535 71.4597 +-94.9425 -40.7348 71.7791 +-95.9632 -40.4525 71.2817 +-99.0495 -41.0212 72.2837 +-98.9994 -40.279 70.976 +-102.972 -41.1557 72.5208 +-103.539 -40.6492 71.6282 +-106.618 -41.1133 72.446 +-107.341 -40.6525 71.634 +-110.451 -41.0797 72.3869 +-111.415 -40.6905 71.701 +-115.285 -41.3405 72.8464 +-116.256 -40.9284 72.1202 +-120.661 -41.7 73.4799 +-122.877 -41.6819 73.4481 +-127.174 -42.3379 74.6039 +-128.252 -41.8975 73.8279 +-132.426 -42.4456 74.7938 +-134.015 -42.1388 74.2532 +-136.79 -42.1877 74.3394 +-137.36 -41.5454 73.2074 +-138.861 -41.181 72.5653 +-135.62 -39.429 69.4781 +-121.677 -34.6728 61.0972 +-110.622 -30.8906 54.4326 +-112.214 -30.7001 54.0969 +-113.016 -30.2863 53.3677 +-116.019 -30.4472 53.6512 +-120.013 -30.8351 54.3348 +-141.135 -35.4931 62.5427 +-140.415 -34.5535 60.887 +-140.392 -33.796 59.5522 +-139.449 -32.8288 57.8479 +-140.296 -32.2895 56.8976 +-141.681 -31.8682 56.1552 +-157.587 -34.6294 61.0207 +-176.167 -37.8067 66.6196 +-154 -32.2638 56.8524 +-111.697 -22.8354 40.2384 +-110.335 -22.0021 38.7701 +-109.045 -21.2004 37.3575 +-108.575 -20.5708 36.248 +-107.811 -19.895 35.0571 +-108.065 -19.4129 34.2077 +-107.744 -18.8314 33.183 +-107.978 -18.3506 32.3357 +-107.73 -17.7909 31.3494 +-107.564 -17.2499 30.3962 +-108.342 -16.8602 29.7095 +-107.967 -16.2919 28.7081 +-107.867 -15.7702 27.7887 +-103.24 -14.6112 25.7465 +-43.267 -5.92226 10.4357 +-41.3416 -5.46744 9.63422 +-33.2075 -4.23873 7.4691 +-25.4217 -3.12837 5.51253 +-17.2109 -2.03939 3.59363 +-16.6617 -1.89857 3.34548 +-16.7923 -1.83741 3.23772 +-16.0416 -1.68292 2.96549 +-16.5607 -1.66297 2.93033 +-16.884 -1.61983 2.85431 +-17.0103 -1.55604 2.74191 +-17.0372 -1.48272 2.61271 +-15.5833 -1.28709 2.26799 +-15.6055 -1.21992 2.14963 +-15.1319 -1.11618 1.96683 +-15.4482 -1.07157 1.88823 +-14.4751 -0.940572 1.65739 +-15.0867 -0.91428 1.61106 +-14.8042 -0.832507 1.46697 +-15.4151 -0.799665 1.4091 +-16.1254 -0.766354 1.3504 +-15.2418 -0.658156 1.15974 +-14.2559 -0.553762 0.975789 +-14.7639 -0.509554 0.897889 +-15.8703 -0.479087 0.844203 +-14.9794 -0.387466 0.682757 +-14.3863 -0.310016 0.546282 +-14.691 -0.253209 0.446181 +-14.695 -0.189923 0.334665 +-14.7977 -0.127485 0.224643 +-14.3995 -0.062022 0.10929 +118.9 5.32907e-15 2.84217e-14 +117.696 -0.498862 0.897826 +90.4862 -0.767126 1.38063 +85.5707 -1.08832 1.9587 +88.546 -1.50182 2.70289 +82.7212 -1.75418 3.15708 +88.6783 -2.25723 4.06245 +77.8545 -2.31278 4.16242 +84.7929 -2.87983 5.18297 +65.1984 -2.49221 4.48535 +79.6956 -3.38649 6.09483 +75.0529 -3.51 6.31713 +118.646 -6.05671 10.9006 +119.924 -6.63634 11.9437 +120.197 -7.16808 12.9007 +120.857 -7.72794 13.9083 +120.02 -8.1926 14.7446 +120.462 -8.74406 15.7371 +120.498 -9.26948 16.6827 +119.834 -9.73978 17.5292 +120.245 -10.2979 18.5336 +120.055 -10.8072 19.4502 +120.74 -11.399 20.5154 +120.531 -11.9104 21.4356 +121.29 -12.5217 22.5359 +120.084 -12.9302 23.2711 +120.724 -13.537 24.3632 +120.379 -14.0368 25.2628 +120.22 -14.5583 26.2012 +120.922 -15.1889 27.3362 +121.031 -15.7511 28.348 +120.454 -16.2245 29.2001 +121.023 -16.8549 30.3346 +120.524 -17.3396 31.207 +121.068 -17.9777 32.3553 +120.645 -18.4755 33.2512 +121.45 -19.1662 34.4944 +120.627 -19.6032 35.2809 +121.405 -20.3035 36.5412 +121.601 -20.9146 37.6409 +121.22 -21.4291 38.5671 +121.393 -22.0442 39.674 +120.992 -22.5578 40.5985 +121.14 -23.1766 41.7121 +122.203 -23.9803 43.1584 +121.767 -24.4973 44.089 +117.272 -24.1774 43.5133 +114.816 -24.2475 43.6395 +111.909 -24.1998 43.5536 +108.103 -23.928 43.0645 +106.491 -24.1184 43.4071 +103.707 -24.0252 43.2394 +101.294 -23.9955 43.1858 +99.3377 -24.0555 43.2938 +96.8524 -23.9685 43.1372 +95.7972 -24.2211 43.5918 +96.9476 -25.0366 45.0596 +97.0214 -25.5856 46.0476 +96.9953 -26.1136 46.9979 +96.3484 -26.4759 47.6499 +96.8216 -27.1503 48.8638 +96.6748 -27.6583 49.7779 +96.3456 -28.117 50.6036 +96.6041 -28.7527 51.7476 +95.575 -29.0066 52.2046 +95.3032 -29.4889 53.0726 +94.8536 -29.9182 53.8452 +94.3959 -30.3459 54.6149 +94.6761 -31.0164 55.8217 +94.6921 -31.6091 56.8884 +94.7759 -32.2321 58.0096 +94.6002 -32.7736 58.9842 +94.8168 -33.4587 60.2173 +94.7747 -34.0616 61.3023 +94.8779 -34.725 62.4963 +95.3611 -35.5398 63.9627 +94.9553 -36.0323 64.8491 +94.7738 -36.6148 65.8975 +95.045 -37.3819 67.2781 +94.2154 -37.7216 67.8894 +94.1469 -38.3692 69.0549 +92.1612 -38.2305 68.8054 +90.6406 -38.2692 68.8749 +89.2006 -38.3301 68.9845 +88.2113 -38.5767 69.4284 +86.4826 -38.4897 69.2718 +85.2027 -38.5898 69.452 +83.5631 -38.5148 69.317 +82.796 -38.8338 69.8911 +81.1679 -38.7407 69.7235 +80.1152 -38.9115 70.031 +78.3617 -38.73 69.7042 +77.7323 -39.0956 70.3622 +75.9943 -38.8951 70.0013 +75.3608 -39.2512 70.6423 +72.8286 -38.6023 69.4744 +71.8646 -38.7651 69.7675 +69.6414 -38.2316 68.8072 +69.9359 -39.0751 70.3254 +68.5168 -38.9638 70.125 +67.7498 -39.2155 70.5781 +65.9613 -38.8641 69.9456 +65.4493 -39.2554 70.6499 +63.3097 -38.657 69.5729 +62.6743 -38.9622 70.1222 +61.424 -38.8796 69.9735 +60.3019 -38.8669 69.9506 +58.9469 -38.6915 69.635 +58.3671 -39.0185 70.2235 +56.9089 -38.7503 69.7409 +55.8663 -38.7513 69.7427 +55.1113 -38.9466 70.0942 +54.4095 -39.1788 70.5119 +53.1515 -39.0028 70.1953 +52.013 -38.9007 70.0116 +50.8285 -38.7511 69.7422 +50.1304 -38.965 70.1272 +48.9059 -38.7619 69.7617 +48.2591 -39.0094 70.207 +46.2875 -38.1662 68.6895 +45.65 -38.403 69.1157 +44.2196 -37.9609 68.32 +44.0207 -38.5717 69.4194 +42.3717 -37.9031 68.2161 +41.9238 -38.2957 68.9226 +40.7724 -38.0411 68.4645 +40.3144 -38.4288 69.1623 +38.7746 -37.7724 67.9808 +38.5328 -38.3718 69.0596 +37.4975 -38.183 68.7198 +36.7678 -38.2964 68.924 +35.7051 -38.0531 68.486 +35.1014 -38.2917 68.9154 +33.9734 -37.949 68.2987 +33.3684 -38.181 68.7162 +32.3368 -37.9171 68.2413 +31.9539 -38.413 69.1338 +30.9694 -38.1855 68.7242 +30.6046 -38.7234 69.6923 +29.2073 -37.9417 68.2856 +28.9007 -38.5661 69.4093 +27.8729 -38.2293 68.8032 +27.2175 -38.3919 69.0958 +26.2411 -38.0913 68.5548 +25.8338 -38.6168 69.5005 +24.8082 -38.2152 68.7778 +24.413 -38.7834 69.8004 +23.2041 -38.0472 68.4754 +22.8228 -38.6577 69.5741 +21.8334 -38.2381 68.8189 +21.1455 -38.3291 68.9828 +20.2557 -38.0411 68.4645 +19.5957 -38.1727 68.7013 +18.8624 -38.1598 68.6781 +18.356 -38.6169 69.5007 +17.51 -38.3613 69.0407 +16.8824 -38.5766 69.4282 +16.0691 -38.3611 69.0403 +15.4174 -38.5231 69.3319 +14.5788 -38.2049 68.7593 +13.9092 -38.3131 68.954 +13.1708 -38.2269 68.7988 +12.5304 -38.4252 69.1556 +11.81 -38.3808 69.0757 +11.1338 -38.4774 69.2497 +10.416 -38.4269 69.1587 +9.74955 -38.566 69.409 +8.94305 -38.1232 68.6123 +8.35182 -38.5944 69.4603 +7.57181 -38.1932 68.7382 +6.95503 -38.6109 69.49 +6.18258 -38.1548 68.669 +5.56657 -38.664 69.5855 +4.81062 -38.2013 68.7528 +4.17641 -38.7053 69.6598 +3.39359 -37.7511 67.9425 +2.75706 -38.3465 69.0141 +2.06536 -38.3082 68.9451 +1.38049 -38.4126 69.1331 +0.687651 -38.2713 68.8787 +3.55271e-15 -38.807 69.8429 +-0.689396 -38.3684 69.0535 +-1.38049 -38.4126 69.1331 +-2.06798 -38.3567 69.0325 +-2.79196 -38.8319 69.8877 +-3.44593 -38.3334 68.9904 +-4.18688 -38.8023 69.8345 +-4.82283 -38.2983 68.9273 +-5.56657 -38.664 69.5855 +-6.26888 -38.6874 69.6276 +-6.95503 -38.6109 69.49 +-7.63891 -38.5317 69.3473 +-8.41454 -38.8842 69.9819 +-9.03362 -38.5093 69.307 +-9.83486 -38.9034 70.0164 +-10.4029 -38.3787 69.0721 +-11.2313 -38.8141 69.8556 +-11.7508 -38.1886 68.7299 +-12.6243 -38.713 69.6736 +-13.3028 -38.6101 69.4885 +-13.9787 -38.5044 69.2983 +-14.6517 -38.396 69.1031 +-15.3983 -38.4754 69.2461 +-16.0292 -38.2659 68.869 +-16.924 -38.6716 69.5992 +-17.2502 -37.7923 68.0166 +-18.356 -38.6169 69.5007 +-18.9791 -38.396 69.1031 +-19.9344 -38.8325 69.8887 +-20.5061 -38.5114 69.3108 +-21.3267 -38.6576 69.5739 +-22.0472 -38.6125 69.4928 +-22.7676 -38.5643 69.406 +-23.6869 -38.8389 69.9002 +-24.6177 -39.1086 70.3856 +-25.2894 -38.9564 70.1117 +-26.081 -38.9863 70.1656 +-26.4949 -38.4597 69.2179 +-27.771 -39.1726 70.5008 +-28.1399 -38.5956 69.4624 +-29.5505 -39.4333 70.97 +-29.8377 -38.7606 69.7594 +-30.9272 -39.1315 70.4268 +-31.9223 -39.3604 70.8388 +-32.6657 -39.2686 70.6736 +-32.949 -38.6351 69.5334 +-34.4234 -39.3881 70.8888 +-34.731 -38.7953 69.8218 +-36.1996 -39.4897 71.0715 +-36.8662 -39.2906 70.7131 +-38.2047 -39.7931 71.6175 +-38.0141 -38.709 69.6666 +-39.6288 -39.4632 71.0238 +-40.4701 -39.4241 70.9534 +-41.4493 -39.5107 71.1094 +-42.527 -39.6782 71.4108 +-43.4731 -39.7108 71.4695 +-43.9463 -39.3117 70.7512 +-45.5721 -39.9311 71.8659 +-46.0416 -39.525 71.1351 +-47.45 -39.9172 71.8409 +-48.3684 -39.882 71.7776 +-49.5982 -40.0918 72.1551 +-50.0554 -39.673 71.4013 +-51.5082 -40.036 72.0547 +-52.333 -39.898 71.8064 +-53.4291 -39.9599 71.9177 +-54.7521 -40.1774 72.3092 +-55.8075 -40.1854 72.3236 +-56.6973 -40.0674 72.1112 +-58.2754 -40.4223 72.75 +-59.1736 -40.2925 72.5163 +-60.248 -40.2758 72.4864 +-61.1478 -40.1361 72.2349 +-62.2879 -40.1469 72.2544 +-63.1894 -39.997 71.9846 +-65.137 -40.4931 72.8774 +-65.2395 -39.8354 71.6937 +-68.2183 -40.9162 73.6389 +-68.8873 -40.588 73.0482 +-70.2567 -40.6666 73.1896 +-71.2445 -40.515 72.9167 +-73.0194 -40.798 73.4261 +-74.4122 -40.8507 73.5209 +-76.4147 -41.2195 74.1847 +-77.2875 -40.9657 73.7279 +-79.4528 -41.3825 74.4781 +-80.1245 -41.009 73.8058 +-81.9697 -41.2268 74.1979 +-82.4269 -40.7392 73.3204 +-83.9336 -40.7661 73.3688 +-84.9481 -40.545 72.9708 +-87.2559 -40.9257 73.6559 +-87.4801 -40.3202 72.5663 +-89.8102 -40.6766 73.2077 +-90.5377 -40.2945 72.5199 +-92.5215 -40.4617 72.8208 +-93.9939 -40.3898 72.6915 +-96.4519 -40.7227 73.2907 +-97.332 -40.3755 72.6658 +-100.275 -40.8668 73.55 +-101.623 -40.6874 73.2271 +-103.671 -40.7747 73.3842 +-105.339 -40.6966 73.2437 +-107.957 -40.9662 73.7289 +-109.007 -40.6254 73.1154 +-111.969 -40.9803 73.7542 +-114.067 -40.9953 73.7812 +-117.793 -41.5665 74.8092 +-119.187 -41.2913 74.3139 +-122.709 -41.7318 75.1067 +-124.525 -41.5677 74.8114 +-128.998 -42.2605 76.0583 +-130.42 -41.9266 75.4573 +-133.6 -42.1394 75.8403 +-136.039 -42.0934 75.7576 +-137.469 -41.7211 75.0875 +-138.895 -41.3399 74.4014 +-132.518 -38.6734 69.6024 +-125.539 -35.9163 64.6403 +-117.866 -33.0515 59.4844 +-110.883 -30.47 54.8383 +-111.427 -29.9988 53.9903 +-113.28 -29.873 53.764 +-115.931 -29.939 53.8827 +-120.013 -30.3436 54.6108 +-140.779 -34.8391 62.7017 +-140.147 -33.9377 61.0794 +-139.852 -33.1295 59.6248 +-139.901 -32.41 58.3299 +-142.018 -32.1648 57.8885 +-149.416 -33.0722 59.5217 +-177.136 -38.3049 68.9392 +-203.954 -43.0723 77.5193 +-212.913 -43.8952 79.0003 +-113.637 -22.8617 41.1453 +-110.984 -21.7787 39.1963 +-108.952 -20.8447 37.5152 +-108.389 -20.2081 36.3694 +-107.811 -19.5778 35.2352 +-108.065 -19.1035 34.3815 +-108.121 -18.5961 33.4683 +-107.978 -18.0581 32.5 +-107.824 -17.5227 31.5364 +-107.85 -17.02 30.6316 +-107.484 -16.46 29.6238 +-108.349 -16.089 28.9561 +-107.771 -15.505 27.9051 +-107.565 -14.9807 26.9614 +-53.096 -7.15176 12.8714 +-45.2053 -5.88307 10.5881 +-37.1769 -4.66976 8.40439 +-33.9604 -4.11251 7.40148 +-17.6971 -2.06358 3.71392 +-17.2464 -1.93386 3.48046 +-16.6947 -1.79761 3.23525 +-16.0416 -1.6561 2.98056 +-17.2467 -1.70424 3.06721 +-15.706 -1.4828 2.66866 +-16.912 -1.52239 2.73991 +-16.7417 -1.43378 2.58044 +-15.6819 -1.27459 2.29394 +-16.9882 -1.30684 2.35199 +-15.2308 -1.10557 1.98974 +-14.5569 -0.993654 1.78833 +-15.5657 -0.995315 1.79132 +-15.186 -0.905626 1.6299 +-14.5061 -0.802742 1.44473 +-14.6195 -0.746304 1.34316 +-15.2296 -0.712242 1.28186 +-14.6441 -0.622267 1.11992 +-13.8572 -0.529689 0.953307 +-15.4622 -0.525148 0.945134 +-15.8703 -0.47145 0.848492 +-15.3789 -0.391457 0.704525 +-15.2854 -0.324142 0.583373 +-14.791 -0.250868 0.451499 +-14.695 -0.186896 0.336366 +-13.9979 -0.118672 0.213579 +-13.5995 -0.0576427 0.103742 +119 5.77316e-15 2.84217e-14 +117.796 -0.491161 0.903064 +116.882 -0.974777 1.79226 +116.66 -1.45957 2.68361 +116.929 -1.95092 3.58703 +114.891 -2.39669 4.40663 +114.842 -2.87563 5.28722 +115.185 -3.36601 6.18886 +117.413 -3.9228 7.21258 +117.437 -4.41594 8.11929 +119.643 -5.00119 9.19535 +118.651 -5.45863 10.0364 +120.437 -6.04803 11.1201 +120.222 -6.54454 12.033 +120.297 -7.05721 12.9756 +120.163 -7.5585 13.8973 +120.912 -8.11904 14.9279 +120.66 -8.6158 15.8413 +120.498 -9.11857 16.7657 +120.031 -9.59698 17.6453 +120.442 -10.1469 18.6564 +120.154 -10.6399 19.5629 +119.955 -11.1405 20.4833 +120.629 -11.726 21.5597 +120.41 -12.2284 22.4836 +121.061 -12.8231 23.577 +120.724 -13.3166 24.4843 +120.379 -13.8083 25.3884 +120.996 -14.4138 26.5016 +120.534 -14.8937 27.3841 +120.837 -15.4699 28.4435 +120.55 -15.9732 29.3688 +120.158 -16.462 30.2676 +120.715 -17.0845 31.4121 +121.164 -17.6989 32.5418 +120.836 -18.2034 33.4694 +121.45 -18.8542 34.666 +120.911 -19.3295 35.5399 +121.499 -19.9885 36.7515 +120.752 -20.4305 37.5642 +121.314 -21.0966 38.7889 +120.737 -21.5681 39.6559 +121.085 -22.2077 40.8318 +120.582 -22.6942 41.7264 +121.647 -23.4825 43.1757 +120.936 -23.934 44.0057 +117.641 -23.8585 43.867 +114.908 -23.8718 43.8915 +111.818 -23.7865 43.7345 +108.376 -23.5979 43.3879 +105.766 -23.5643 43.3261 +103.075 -23.4901 43.1897 +100.485 -23.4163 43.054 +98.6218 -23.4933 43.1955 +96.496 -23.4915 43.1922 +97.2164 -24.1797 44.4575 +97.0359 -24.6514 45.3249 +97.1972 -25.2147 46.3605 +97.9574 -25.9432 47.7001 +96.6095 -26.1154 48.0166 +96.9082 -26.7322 49.1507 +96.244 -27.0867 49.8025 +96.3456 -27.6593 50.8552 +96.4336 -28.2347 51.9132 +95.999 -28.661 52.697 +95.4719 -29.0601 53.4309 +94.8536 -29.4311 54.1129 +94.9796 -30.0364 55.2259 +95.0077 -30.6183 56.2958 +94.9393 -31.1756 57.3205 +94.694 -31.6799 58.2477 +94.9259 -32.351 59.4816 +94.3314 -32.7455 60.207 +94.8551 -33.5355 61.6594 +94.9578 -34.1885 62.86 +94.9644 -34.8158 64.0134 +94.7977 -35.3869 65.0635 +94.5391 -35.9295 66.0612 +94.7341 -36.6531 67.3915 +94.2925 -37.1378 68.2828 +94.3001 -37.806 69.5113 +92.9216 -37.9185 69.7181 +92.2255 -38.3044 70.4277 +90.6236 -38.3076 70.4335 +89.549 -38.5241 70.8317 +87.8835 -38.4764 70.744 +86.8117 -38.6784 71.1154 +84.7237 -38.414 70.6292 +83.8031 -38.6662 71.093 +82.3091 -38.6458 71.0554 +81.388 -38.8862 71.4974 +79.2027 -38.5084 70.8027 +78.0796 -38.6309 71.0281 +76.8204 -38.6778 71.1142 +76.5884 -39.2412 72.1501 +74.923 -39.0659 71.8278 +73.136 -38.8086 71.3548 +71.4967 -38.6111 70.9916 +70.7888 -38.9078 71.5371 +69.6208 -38.9471 71.6094 +68.9068 -39.2359 72.1404 +66.661 -38.6369 71.0391 +66.3933 -39.1733 72.0252 +64.6793 -38.8503 71.4315 +64.0288 -39.1562 71.9938 +61.9719 -38.5877 70.9487 +61.2648 -38.8447 71.421 +60.0771 -38.7913 71.323 +59.2488 -38.963 71.6387 +58.0703 -38.8974 71.5181 +57.3576 -39.1381 71.9605 +55.7344 -38.7457 71.2391 +55.416 -39.2539 72.1734 +53.7035 -38.7663 71.2769 +52.9934 -38.9887 71.6859 +51.3121 -38.4829 70.7558 +51.0842 -39.06 71.8169 +49.7941 -38.8234 71.3819 +49.0831 -39.0295 71.7609 +47.4548 -38.4917 70.772 +46.55 -38.5226 70.8288 +45.2537 -38.2162 70.2655 +44.457 -38.3198 70.456 +43.326 -38.1258 70.0994 +42.8628 -38.5159 70.8166 +41.4189 -38.0151 69.8958 +41.2223 -38.6546 71.0716 +39.4439 -37.7988 69.4981 +39.1465 -38.3483 70.5085 +37.8419 -37.9063 69.6958 +37.3595 -38.2792 70.3813 +36.0783 -37.8248 69.5459 +35.8335 -38.454 70.7027 +34.412 -37.8132 69.5246 +34.0718 -38.351 70.5135 +33.0256 -38.0944 70.0415 +32.3285 -38.2306 70.2921 +31.2626 -37.9194 69.7199 +30.9272 -38.4944 70.777 +29.8727 -38.1743 70.1885 +29.1743 -38.2974 70.4149 +28.1733 -38.0122 69.8905 +27.771 -38.5349 70.8514 +26.8122 -38.2867 70.3951 +26.081 -38.3516 70.5145 +25.1089 -38.0488 69.9577 +24.6762 -38.5632 70.9036 +23.7153 -38.2523 70.332 +23.0708 -38.4416 70.68 +22.1273 -38.122 70.0923 +21.6373 -38.582 70.9381 +20.7064 -38.2544 70.3358 +20.0311 -38.3857 70.5772 +19.0958 -38.0032 69.8738 +18.581 -38.4538 70.7023 +17.6182 -37.97 69.8129 +17.1527 -38.5561 70.8905 +16.2285 -38.1112 70.0724 +15.5891 -38.318 70.4528 +14.7429 -38.0058 69.8786 +14.1871 -38.4422 70.6811 +13.3524 -38.1229 70.094 +12.7807 -38.5546 70.8878 +11.9282 -38.1339 70.1143 +11.2591 -38.2768 70.377 +10.429 -37.8486 69.5897 +9.94454 -38.6969 71.1493 +9.1355 -38.3096 70.4372 +8.53998 -38.8214 71.3782 +7.74434 -38.4275 70.654 +7.03347 -38.4107 70.6232 +6.33165 -38.4386 70.6744 +5.62935 -38.4635 70.7203 +4.92662 -38.4855 70.7608 +4.22351 -38.5046 70.7958 +3.48083 -38.0911 70.0356 +2.81639 -38.5339 70.8497 +2.08892 -38.1144 70.0784 +1.40841 -38.5516 70.8822 +0.69725 -38.1738 70.1876 +2.44249e-15 -38.6052 70.9808 +-0.69725 -38.1738 70.1876 +-1.4119 -38.6471 71.0579 +-2.11248 -38.5442 70.8686 +-2.82337 -38.6295 71.0254 +-3.52445 -38.5685 70.9133 +-4.22351 -38.5046 70.7958 +-4.93272 -38.5332 70.8484 +-5.69213 -38.8925 71.509 +-6.26104 -38.0099 69.8862 +-7.03347 -38.4107 70.6232 +-7.73475 -38.38 70.5666 +-8.52952 -38.7739 71.2909 +-9.12418 -38.2621 70.35 +-9.92016 -38.602 70.9749 +-10.6248 -38.5592 70.8961 +-11.3287 -38.5134 70.812 +-12.0317 -38.4647 70.7225 +-12.7651 -38.5075 70.8011 +-13.4679 -38.4528 70.7005 +-14.3086 -38.7716 71.2867 +-14.8704 -38.3346 70.4832 +-15.7608 -38.7402 71.2289 +-16.3482 -38.392 70.5888 +-17.1319 -38.5094 70.8046 +-17.748 -38.2499 70.3275 +-18.7384 -38.7796 71.3015 +-19.3526 -38.5142 70.8135 +-20.3698 -39.0347 71.7705 +-20.8567 -38.532 70.8461 +-21.8443 -38.9512 71.6169 +-22.3144 -38.4443 70.6849 +-23.3465 -38.9009 71.5245 +-23.9141 -38.573 70.9216 +-25.1732 -39.34 72.3317 +-25.6502 -38.869 71.4658 +-26.3591 -38.7606 71.2664 +-27.0978 -38.6945 71.1449 +-28.0965 -38.9866 71.6821 +-28.8075 -38.868 71.464 +-30.132 -39.5545 72.7263 +-30.328 -38.7561 71.2582 +-31.5722 -39.2973 72.2532 +-32.2888 -39.1641 72.0085 +-33.2651 -39.3381 72.3283 +-33.7144 -38.8889 71.5025 +-35.1267 -39.5385 72.6968 +-35.4887 -38.9962 71.6997 +-36.769 -39.4578 72.5485 +-37.4883 -39.303 72.2638 +-38.585 -39.535 72.6902 +-38.9182 -38.9845 71.6781 +-40.4178 -39.5937 72.7982 +-40.9163 -39.2099 72.0925 +-42.2665 -39.6338 72.8719 +-42.9888 -39.456 72.5451 +-44.3651 -39.8659 73.2987 +-44.8529 -39.4695 72.5698 +-46.2508 -39.866 73.2988 +-46.9772 -39.6716 72.9415 +-48.4 -40.0535 73.6437 +-48.8759 -39.6444 72.8914 +-50.0617 -39.8077 73.1917 +-51.2571 -39.9641 73.4792 +-52.462 -40.1135 73.754 +-53.1927 -39.8933 73.349 +-54.8452 -40.3511 74.1909 +-55.3041 -39.9217 73.4014 +-57.3173 -40.6007 74.6497 +-57.7734 -40.1632 73.8454 +-59.3652 -40.5079 74.4791 +-60.1028 -40.2589 74.0212 +-61.1297 -40.2 73.913 +-62.04 -40.0588 73.6534 +-63.6118 -40.3328 74.1572 +-64.407 -40.104 73.7364 +-66.553 -40.6999 74.8321 +-66.7336 -40.0843 73.7002 +-68.9106 -40.6585 74.7561 +-69.8414 -40.4803 74.4283 +-71.9279 -40.9561 75.3033 +-72.6732 -40.6547 74.7489 +-74.9219 -41.1795 75.7139 +-75.87 -40.9729 75.334 +-77.9537 -41.3651 76.0552 +-78.7063 -41.0385 75.4547 +-80.6804 -41.3377 76.0049 +-81.2258 -40.8958 75.1924 +-83.6369 -41.3805 76.0834 +-83.8287 -40.7576 74.9382 +-85.6306 -40.9132 75.2244 +-86.5886 -40.6551 74.7498 +-88.1191 -40.6577 74.7545 +-89.076 -40.3873 74.2574 +-91.7118 -40.8616 75.1295 +-92.4546 -40.4777 74.4236 +-94.9739 -40.858 75.1227 +-95.0425 -40.1755 73.8679 +-97.8858 -40.6554 74.7503 +-98.8528 -40.3387 74.1681 +-102.19 -40.9693 75.3274 +-103.321 -40.6936 74.8205 +-104.138 -40.2913 74.0809 +-105.417 -40.0638 73.6625 +-108.036 -40.3287 74.1497 +-110.276 -40.4293 74.3347 +-113.965 -41.0319 75.4426 +-114.871 -40.612 74.6706 +-119.977 -41.6481 76.5755 +-120.489 -41.063 75.4997 +-123.528 -41.3264 75.984 +-126.503 -41.5405 76.3776 +-118.304 -38.1259 70.0995 +-131.504 -41.5869 76.4629 +-115.149 -35.7284 65.6914 +-134.943 -41.0744 75.5207 +-117.624 -35.1173 64.5678 +-132.671 -38.8445 71.4208 +-125.061 -35.9029 66.0122 +-115.717 -32.5671 59.879 +-111.977 -30.889 56.7934 +-111.667 -30.1856 55.5002 +-111.514 -29.5336 54.3014 +-113.455 -29.4323 54.1151 +-116.549 -29.6086 54.4393 +-121.698 -30.2687 55.6531 +-140.423 -34.1852 62.854 +-140.415 -33.4491 61.5007 +-140.122 -32.653 60.0369 +-140.081 -31.9235 58.6956 +-149.631 -33.3373 61.295 +-157.696 -34.3368 63.1328 +-208.014 -44.2498 81.359 +-209.365 -43.4951 79.9715 +-199.381 -40.4363 74.3475 +-121.675 -24.0802 44.2746 +-111.633 -21.5495 39.6215 +-109.696 -20.6454 37.9594 +-108.482 -19.8962 36.5818 +-107.624 -19.2256 35.3488 +-107.971 -18.7761 34.5224 +-108.215 -18.3093 33.6641 +-107.505 -17.6863 32.5186 +-108.109 -17.2829 31.7768 +-108.135 -16.7872 30.8654 +-108.056 -16.2782 29.9297 +-108.732 -15.8829 29.2029 +-108.251 -15.3204 28.1686 +-108.815 -14.908 27.4103 +-66.5869 -8.82292 16.2221 +-54.9612 -7.03628 12.9371 +-41.2431 -5.09618 9.36999 +-39.394 -4.69284 8.62841 +-31.6993 -3.63612 6.68548 +-28.0619 -3.09539 5.69128 +-16.597 -1.758 3.23232 +-16.8241 -1.70861 3.1415 +-16.3647 -1.59076 2.92483 +-15.6079 -1.44954 2.66517 +-15.8304 -1.40182 2.57744 +-16.6433 -1.40214 2.57802 +-15.9778 -1.27749 2.34884 +-15.803 -1.19588 2.19878 +-15.6265 -1.11582 2.05158 +-15.8443 -1.06392 1.95616 +-16.0614 -1.01029 1.85755 +-15.3845 -0.902526 1.65941 +-16.692 -0.908661 1.67069 +-16.4096 -0.82405 1.51512 +-14.9309 -0.68691 1.26298 +-15.9391 -0.66627 1.22503 +-15.851 -0.59604 1.0959 +-16.2603 -0.543259 0.998853 +-14.8722 -0.434607 0.799081 +-14.4801 -0.362579 0.66665 +-15.0856 -0.314696 0.57861 +-15.6904 -0.26179 0.481336 +-15.3947 -0.192608 0.354135 +-13.9979 -0.11674 0.214641 +-13.4995 -0.0562872 0.103491 +119.2 7.10543e-15 2.84217e-14 +118.795 -0.487089 0.915157 +117.882 -0.966764 1.81638 +117.76 -1.44882 2.72209 +117.828 -1.93323 3.63221 +117.488 -2.41012 4.52819 +119.137 -2.93354 5.51161 +116.682 -3.35306 6.29981 +118.91 -3.90672 7.34005 +119.829 -4.43097 8.32503 +120.639 -4.95899 9.31708 +120.244 -5.43992 10.2207 +120.437 -5.94744 11.1742 +120.222 -6.4357 12.0916 +120.297 -6.93984 13.0388 +120.163 -7.4328 13.9649 +120.12 -7.93172 14.9023 +119.77 -8.41002 15.801 +120.498 -8.96692 16.8473 +119.932 -9.42962 17.7166 +120.54 -9.98624 18.7624 +120.154 -10.463 19.6582 +120.838 -11.0359 20.7346 +119.747 -11.4467 21.5063 +120.41 -12.0251 22.593 +120.182 -12.5183 23.5197 +120.724 -13.0951 24.6035 +120.477 -13.5896 25.5326 +120.899 -14.1627 26.6092 +120.728 -14.6696 27.5616 +121.127 -15.2491 28.6505 +120.55 -15.7075 29.5117 +120.158 -16.1882 30.4149 +120.715 -16.8004 31.565 +120.399 -17.2947 32.4937 +120.836 -17.9007 33.6323 +121.545 -18.5552 34.862 +121.196 -19.0528 35.7969 +121.026 -19.5796 36.7866 +121.035 -20.1378 37.8354 +121.314 -20.7458 38.9777 +121.018 -21.2588 39.9417 +121.459 -21.9057 41.1571 +120.861 -22.3684 42.0264 +121.925 -23.1448 43.485 +120.012 -23.3561 43.8821 +116.536 -23.2415 43.6667 +113.899 -23.2687 43.7179 +110.996 -23.2189 43.6242 +108.376 -23.2055 43.5991 +105.041 -23.0135 43.2385 +102.443 -22.9579 43.1339 +99.6763 -22.8415 42.9153 +97.9058 -22.9348 43.0906 +95.8723 -22.9515 43.1218 +96.6842 -23.6474 44.4294 +96.8594 -24.1973 45.4626 +97.1093 -24.7729 46.5439 +98.3947 -25.6257 48.1462 +96.7836 -25.7273 48.3372 +96.9082 -26.2876 49.3899 +96.244 -26.6362 50.0449 +96.3456 -27.1993 51.1027 +96.5189 -27.7896 52.2119 +96.6775 -28.3835 53.3277 +95.6406 -28.6273 53.7858 +95.273 -29.0696 54.6167 +95.4799 -29.6925 55.787 +95.0906 -30.1353 56.6191 +94.4449 -30.4975 57.2995 +94.7759 -31.18 58.5818 +94.9259 -31.813 59.7711 +94.8168 -32.3666 60.8113 +94.9355 -33.0057 62.012 +94.9578 -33.6199 63.1659 +94.9644 -34.2367 64.3249 +94.2461 -34.5959 64.9997 +94.9304 -35.4782 66.6574 +94.9672 -36.1322 67.8862 +94.8327 -36.7294 69.0082 +95.3725 -37.6 70.644 +93.9862 -37.715 70.86 +94.7161 -38.6846 72.6816 +91.9718 -38.2309 71.8292 +91.2582 -38.6065 72.5349 +89.5055 -38.5348 72.4003 +88.7863 -38.9003 73.087 +86.1019 -38.3897 72.1275 +85.7453 -38.9044 73.0947 +83.7356 -38.6617 72.6387 +83.2265 -39.1033 73.4683 +80.8849 -38.6722 72.6584 +80.7193 -39.2728 73.7868 +78.1971 -38.7161 72.7409 +78.0888 -39.3445 73.9216 +75.3959 -38.6586 72.6329 +74.675 -38.9663 73.2109 +72.6894 -38.6024 72.5272 +71.7073 -38.7571 72.8179 +69.7507 -38.3708 72.0921 +69.6782 -39.0153 73.3029 +68.2512 -38.9007 73.0876 +68.5959 -39.7997 74.7769 +66.2356 -39.1235 73.5062 +65.5064 -39.3935 74.0136 +63.6764 -38.9897 73.2549 +63.5517 -39.6245 74.4476 +61.0883 -38.7883 72.8765 +61.0121 -39.4554 74.1299 +58.5349 -38.5565 72.441 +58.8489 -39.4878 74.1908 +56.6406 -38.7208 72.7498 +56.3666 -39.2632 73.7688 +54.697 -38.8268 72.9489 +54.4639 -39.4042 74.0338 +52.7628 -38.9127 73.1103 +52.409 -39.4065 74.0381 +50.3689 -38.6184 72.5573 +50.4737 -39.4678 74.1532 +48.8252 -38.9445 73.1701 +48.35 -39.3467 73.9257 +46.0908 -38.2758 71.9136 +45.8145 -38.8331 72.9608 +43.8509 -37.9459 71.2939 +43.8956 -38.788 72.876 +41.9729 -37.883 71.1756 +42.0395 -38.7653 72.8333 +40.3363 -38.0112 71.4164 +40.0233 -38.5551 72.4384 +39.0904 -38.5057 72.3456 +38.3737 -38.6645 72.644 +37.198 -38.3501 72.0532 +36.769 -38.8016 72.9015 +35.2494 -38.0891 71.5629 +35.1267 -38.881 73.0506 +33.6379 -38.1553 71.6873 +33.1152 -38.5097 72.353 +32.2888 -38.5128 72.3589 +31.5005 -38.556 72.44 +30.2229 -37.9795 71.357 +30.132 -38.8967 73.0802 +28.7408 -38.133 71.6453 +28.1942 -38.4715 72.2813 +27.0661 -38.0064 71.4075 +26.6682 -38.5628 72.4528 +25.6502 -38.2226 71.8136 +24.9393 -38.3263 72.0085 +24.2265 -38.4271 72.1978 +23.5119 -38.5249 72.3817 +22.5816 -38.2577 71.8796 +22.1031 -38.7573 72.8182 +21.1321 -38.3915 72.1311 +20.4182 -38.4767 72.2911 +19.4927 -38.1478 71.6731 +18.9409 -38.5467 72.4226 +18.0294 -38.2101 71.7902 +17.527 -38.7421 72.7897 +16.707 -38.5823 72.4895 +16.1043 -38.926 73.1353 +15.0527 -38.1591 71.6943 +14.6559 -39.0522 73.3723 +13.6494 -38.323 72.0023 +13.0623 -38.7488 72.8022 +12.2091 -38.3826 72.1143 +11.621 -38.85 72.9924 +10.7815 -38.4769 72.2914 +10.1761 -38.9393 73.1603 +9.35059 -38.5594 72.4465 +8.72813 -39.0168 73.3059 +7.82101 -38.1625 71.7008 +7.2775 -39.0825 73.4292 +6.40226 -38.2209 71.8105 +5.81071 -39.0425 73.354 +4.96935 -38.1738 71.7219 +4.33865 -38.8965 73.0798 +3.55062 -38.2087 71.7875 +2.90713 -39.114 73.4884 +2.13604 -38.3259 72.0078 +1.44157 -38.803 72.9041 +0.712085 -38.3376 72.0297 +2.44249e-15 -38.8089 72.9152 +-0.712085 -38.3376 72.0297 +-1.45728 -39.2258 73.6985 +-2.13604 -38.3259 72.0078 +-2.91411 -39.2078 73.6648 +-3.55934 -38.3025 71.9639 +-4.37005 -39.178 73.6087 +-4.98156 -38.2675 71.8981 +-5.84559 -39.2768 73.7944 +-6.48072 -38.6893 72.6905 +-7.26007 -38.9888 73.2533 +-7.89769 -38.5367 72.4038 +-8.67586 -38.7832 72.8669 +-9.38455 -38.6995 72.7096 +-10.2127 -39.0792 73.4232 +-10.8206 -38.6166 72.554 +-11.6627 -38.9896 73.2546 +-12.2534 -38.522 72.3762 +-12.9684 -38.4703 72.2791 +-13.5999 -38.184 71.7411 +-14.5517 -38.7746 72.8507 +-15.1073 -38.2976 71.9546 +-15.9898 -38.6493 72.6154 +-16.5276 -38.1679 71.711 +-17.6101 -38.9259 73.1351 +-18.0511 -38.2559 71.8763 +-19.0534 -38.7756 72.8526 +-19.5627 -38.2848 71.9306 +-20.7327 -39.0693 73.4045 +-21.3574 -38.8009 72.9002 +-22.4137 -39.3019 73.8414 +-22.9023 -38.801 72.9003 +-23.9804 -39.2927 73.8243 +-24.2265 -38.4271 72.1978 +-25.6995 -39.4945 74.2033 +-26.1614 -38.9843 73.2448 +-27.2244 -39.3671 73.964 +-27.669 -38.853 72.998 +-28.6826 -39.1379 73.5333 +-29.2081 -38.753 72.8103 +-30.5424 -39.4266 74.0757 +-31.0984 -39.0798 73.4241 +-32.3965 -39.6526 74.5004 +-32.5453 -38.8188 72.9338 +-34.2016 -39.773 74.7265 +-34.5946 -39.2405 73.7262 +-35.83 -39.6595 74.5133 +-36.2862 -39.2094 73.6678 +-37.7045 -39.7888 74.7564 +-38.2347 -39.4189 74.0614 +-39.5571 -39.8568 74.8841 +-39.9084 -39.3115 73.8595 +-41.4261 -39.9064 74.9773 +-41.9426 -39.5248 74.2604 +-43.3107 -39.9375 75.0356 +-44.0508 -39.7584 74.6991 +-45.6326 -40.323 75.7599 +-45.5209 -39.3911 74.0091 +-47.3659 -40.1481 75.4313 +-47.8636 -39.7479 74.6795 +-49.9 -40.6081 76.2955 +-50.4493 -40.24 75.604 +-51.6583 -40.3941 75.8935 +-51.7796 -39.7 74.5894 +-53.8398 -40.4823 76.0593 +-54.321 -40.0619 75.2694 +-56.3701 -40.7834 76.6249 +-56.7943 -40.3156 75.7461 +-58.3797 -40.6655 76.4034 +-59.1328 -40.4246 75.9508 +-60.9712 -40.9119 76.8663 +-60.7415 -40.01 75.172 +-62.6579 -40.5197 76.1295 +-62.6348 -39.7702 74.7214 +-65.4173 -40.7877 76.6331 +-65.8071 -40.2943 75.706 +-68.1537 -40.9856 77.0048 +-68.9124 -40.7046 76.4769 +-71.1132 -41.2603 77.521 +-72.0677 -41.0759 77.1746 +-73.7277 -41.2828 77.5632 +-74.6865 -41.0861 77.1936 +-77.6118 -41.9484 78.8139 +-77.7916 -41.3119 77.618 +-79.9611 -41.7246 78.3934 +-80.5304 -41.2913 77.5792 +-82.7264 -41.6811 78.3117 +-83.0844 -41.1359 77.2872 +-84.9567 -41.3344 77.6603 +-85.0904 -40.6829 76.4362 +-87.1863 -40.9637 76.9638 +-87.3732 -40.3412 75.7942 +-90.1333 -40.8953 76.8353 +-90.4542 -40.3301 75.7734 +-93.467 -40.9511 76.94 +-94.519 -40.6933 76.4557 +-97.5006 -41.2473 77.4966 +-97.3642 -40.4724 76.0407 +-101.056 -41.2738 77.5464 +-101.21 -40.6138 76.3063 +-104.182 -41.0731 77.1693 +-105.404 -40.8237 76.7007 +-105.614 -40.183 75.4969 +-105.809 -39.5437 74.2958 +-107.721 -39.5423 74.2931 +-112.894 -40.7009 76.4699 +-118.677 -42.0178 78.9441 +-118.489 -41.1942 77.3969 +-110.431 -37.6966 70.8255 +-102.579 -34.3776 64.5896 +-98.544 -32.4196 60.9109 +-102.027 -32.9458 61.8995 +-100.894 -31.9745 60.0746 +-105.236 -32.7265 61.4875 +-105.337 -32.1403 60.3861 +-109.135 -32.6665 61.3747 +-109.059 -32.0186 60.1574 +-116.556 -33.5587 63.051 +-112.375 -31.7244 59.6047 +-111.926 -30.9763 58.1991 +-111.371 -30.2108 56.7609 +-110.796 -29.4522 55.3357 +-114.488 -29.8169 56.0208 +-113.631 -28.9876 54.4627 +-119.198 -29.7779 55.9476 +-122.94 -30.0691 56.4946 +-140.155 -33.5526 63.0396 +-140.505 -32.9138 61.8394 +-141.021 -32.3159 60.716 +-143.421 -32.141 60.3874 +-165.945 -36.357 68.3085 +-188.635 -40.3903 75.8865 +-213.496 -44.6605 83.9094 +-207.256 -42.3408 79.5511 +-194.779 -38.8459 72.9847 +-127.218 -24.7585 46.517 +-111.818 -21.2263 39.8806 +-110.161 -20.3882 38.3058 +-109.136 -19.6832 36.9813 +-108.467 -19.0539 35.7991 +-107.877 -18.4478 34.6602 +-107.555 -17.895 33.6217 +-108.451 -17.5451 32.9643 +-107.919 -16.9656 31.8755 +-107.85 -16.4644 30.9338 +-108.056 -16.0075 30.0753 +-108.732 -15.6188 29.345 +-108.634 -15.119 28.406 +-108.911 -14.673 27.568 +-108.794 -14.1757 26.6337 +-105.479 -13.2791 24.9492 +-52.5704 -6.38778 12.0015 +-48.2237 -5.64914 10.6138 +-39.2837 -4.43116 8.32539 +-37.903 -4.11139 7.7246 +-18.2567 -1.90165 3.57286 +-17.411 -1.7388 3.26691 +-17.2467 -1.64862 3.09747 +-16.3932 -1.49715 2.81289 +-16.2237 -1.41276 2.65433 +-16.2493 -1.34618 2.52925 +-15.7806 -1.24074 2.33113 +-15.5067 -1.15394 2.16805 +-16.9122 -1.18754 2.23119 +-16.0423 -1.0593 1.99025 +-15.5657 -0.962827 1.80899 +-14.9874 -0.864616 1.62446 +-16.5926 -0.88823 1.66883 +-15.3156 -0.756322 1.421 +-16.225 -0.734028 1.37911 +-16.238 -0.667475 1.25407 +-15.3525 -0.567695 1.0666 +-15.0632 -0.494893 0.929819 +-14.7724 -0.42451 0.797581 +-15.0793 -0.371303 0.697614 +-15.5852 -0.319709 0.600678 +-15.3906 -0.252517 0.474436 +-15.3947 -0.189405 0.355859 +-13.4979 -0.110698 0.207982 +-14.1995 -0.0582213 0.109388 +118.6 5.32907e-15 2.84217e-14 +118.895 -0.479218 0.920295 +118.982 -0.959203 1.84206 +117.96 -1.42662 2.7397 +118.728 -1.91489 3.67737 +119.186 -2.40341 4.61552 +119.236 -2.8861 5.5425 +118.678 -3.35247 6.43811 +119.907 -3.87255 7.43687 +119.73 -4.35205 8.35772 +119.743 -4.83846 9.29182 +119.647 -5.32092 10.2183 +120.437 -5.84637 11.2274 +120.421 -6.33677 12.1692 +120.396 -6.82754 13.1117 +120.262 -7.31249 14.043 +120.219 -7.80335 14.9856 +120.66 -8.32853 15.9942 +120.399 -8.80734 16.9137 +119.932 -9.26938 17.801 +120.54 -9.81654 18.8518 +120.154 -10.2852 19.7518 +119.955 -10.7691 20.681 +120.629 -11.335 21.7678 +120.312 -11.8111 22.6822 +121.061 -12.3955 23.8045 +120.822 -12.883 24.7406 +120.477 -13.3587 25.6542 +120.802 -13.9108 26.7144 +120.631 -14.4087 27.6706 +121.127 -14.99 28.7869 +120.743 -15.4653 29.6997 +121.023 -16.0277 30.7797 +120.715 -16.5149 31.7153 +121.259 -17.1223 32.8818 +120.931 -17.6104 33.8191 +121.45 -18.2256 35.0006 +121.48 -18.773 36.0518 +121.026 -19.2468 36.9618 +120.847 -19.7647 37.9563 +121.314 -20.3932 39.1633 +121.205 -20.9299 40.1939 +121.272 -21.5004 41.2895 +121.14 -22.0391 42.3241 +121.925 -22.7514 43.6921 +119.642 -22.8885 43.9552 +115.431 -22.6299 43.4587 +112.248 -22.5418 43.2895 +109.351 -22.4862 43.1826 +106.829 -22.4855 43.1814 +104.225 -22.4468 43.107 +101.631 -22.3887 42.9956 +99.0471 -22.3116 42.8474 +97.2794 -22.4008 43.0188 +96.6742 -22.7502 43.6896 +96.7729 -23.2669 44.6819 +96.9476 -23.8078 45.7207 +96.8456 -24.2858 46.6386 +97.3452 -24.9215 47.8594 +96.9576 -25.3356 48.6548 +96.735 -25.7947 49.5364 +96.3301 -26.2071 50.3283 +96.4313 -26.7608 51.3917 +95.8368 -27.1243 52.0898 +96.0838 -27.7298 53.2527 +96.6527 -28.4386 54.6138 +96.7826 -29.0283 55.7462 +94.646 -28.9329 55.5631 +94.6761 -29.4941 56.6407 +94.4449 -29.9792 57.5724 +94.7759 -30.6501 58.8608 +94.8445 -31.2455 60.0042 +94.9786 -31.8709 61.2052 +94.2924 -32.225 61.8852 +95.0376 -33.0763 63.5201 +95.0437 -33.683 64.6852 +94.9553 -34.2639 65.8007 +94.226 -34.6166 66.4779 +94.9672 -35.5182 68.2095 +94.987 -36.164 69.4496 +95.1427 -36.872 70.8093 +94.9747 -37.464 71.9463 +94.867 -38.0878 73.1441 +94.4433 -38.5911 74.1107 +94.0821 -39.1248 75.1356 +91.2749 -38.6288 74.1832 +91.1998 -39.2787 75.4312 +88.7133 -38.8818 74.669 +88.4788 -39.4624 75.784 +85.6614 -38.8788 74.6631 +85.2064 -39.3532 75.5742 +82.497 -38.7727 74.4595 +82.1781 -39.3031 75.478 +80.1933 -39.0297 74.9531 +79.862 -39.5541 75.9601 +77.1524 -38.887 74.679 +77.2177 -39.6083 76.0642 +75.0749 -39.1917 75.264 +74.7251 -39.7019 76.2438 +71.5042 -38.667 74.2564 +71.3494 -39.2721 75.4185 +70.0322 -39.2375 75.352 +69.8546 -39.8413 76.5115 +68.3521 -39.6876 76.2163 +67.6612 -39.9979 76.8124 +65.4419 -39.3897 75.6444 +64.996 -39.8364 76.5021 +62.8133 -39.2058 75.2912 +63.1281 -40.13 77.066 +60.7996 -39.3677 75.6021 +60.5123 -39.9139 76.651 +58.7363 -39.4712 75.8008 +58.4357 -40.0127 76.8408 +56.132 -39.1683 75.2192 +56.4791 -40.1677 77.1385 +54.1598 -39.2643 75.4035 +53.8928 -39.8335 76.4967 +52.2499 -39.3798 75.6253 +51.8128 -39.8264 76.483 +49.9925 -39.198 75.2763 +49.9 -39.918 76.6588 +48.0605 -39.2332 75.3439 +47.9477 -39.9506 76.7215 +45.3301 -38.5593 74.0497 +45.2101 -39.2707 75.4159 +43.5891 -38.673 74.2681 +43.4923 -39.4234 75.709 +42.1211 -39.0185 74.9315 +41.6014 -39.3944 75.6533 +39.9084 -38.6434 74.2112 +39.7261 -39.3469 75.5622 +38.0688 -38.5809 74.0912 +37.7045 -39.1127 75.1124 +36.4058 -38.6702 74.2626 +36.2208 -39.4106 75.6845 +34.5946 -38.5737 74.0773 +34.2016 -39.0971 75.0824 +33.1317 -38.8467 74.6015 +32.5756 -39.1943 75.2692 +31.2735 -38.6319 74.1891 +30.9186 -39.2339 75.3452 +29.5085 -38.4863 73.9095 +29.236 -39.2152 75.3092 +28.1767 -38.8935 74.6914 +27.7188 -39.4009 75.6659 +26.4922 -38.8064 74.5241 +25.9918 -39.265 75.4049 +24.7093 -38.5269 73.9873 +24.6144 -39.6461 76.1368 +23.3032 -38.8092 74.5295 +22.7502 -39.2139 75.3068 +21.6078 -38.5887 74.106 +21.2649 -39.3913 75.6475 +20.0063 -38.4875 73.9118 +19.5932 -39.1967 75.2737 +18.7437 -39.0487 74.9895 +18.0259 -39.168 75.2185 +17.0061 -38.6055 74.1384 +16.6958 -39.67 76.1826 +15.5447 -38.7367 74.3903 +15.0379 -39.3892 75.6434 +14.0786 -38.8561 74.6197 +13.469 -39.2763 75.4266 +12.5786 -38.8723 74.6507 +11.9828 -39.3789 75.6236 +11.0164 -38.6472 74.2185 +10.493 -39.4695 75.7975 +9.55435 -38.7302 74.3778 +8.95809 -39.3643 75.5956 +8.08938 -38.8013 74.5143 +7.41695 -39.1545 75.1926 +6.60626 -38.7685 74.4513 +5.97813 -39.4847 75.8268 +5.14029 -38.8158 74.5423 +4.43286 -39.0657 75.0221 +3.67275 -38.8514 74.6105 +2.95599 -39.0955 75.0793 +2.2041 -38.875 74.6559 +1.47822 -39.1133 75.1136 +0.731284 -38.7021 74.3239 +2.22045e-15 -39.304 75.4798 +-0.73652 -38.9793 74.8561 +-1.4852 -39.298 75.4683 +-2.2041 -38.875 74.6559 +-2.99089 -39.557 75.9657 +-3.68148 -38.9436 74.7877 +-4.45379 -39.2502 75.3764 +-5.14029 -38.8158 74.5423 +-5.95023 -39.3004 75.4729 +-6.64549 -38.9987 74.8935 +-7.46925 -39.4305 75.7228 +-8.0798 -38.7553 74.426 +-9.03126 -39.6858 76.2131 +-9.65623 -39.1432 75.1709 +-10.4564 -39.332 75.5335 +-11.1339 -39.0593 75.0099 +-12.122 -39.8362 76.5019 +-12.4603 -38.5069 73.9489 +-13.4847 -39.3219 75.5141 +-14.0786 -38.8561 74.6197 +-15.1248 -39.6166 76.0801 +-15.4718 -38.555 74.0414 +-16.6195 -39.4886 75.8343 +-17.0858 -38.7865 74.486 +-18.0259 -39.168 75.2185 +-18.7437 -39.0487 74.9895 +-19.7057 -39.4217 75.7058 +-20.1697 -38.8019 74.5155 +-21.1924 -39.2569 75.3893 +-21.8081 -38.9464 74.7931 +-23.009 -39.66 76.1635 +-23.517 -39.1652 75.2133 +-24.5042 -39.4685 75.7958 +-24.9934 -38.9697 74.8378 +-26.255 -39.6625 76.1683 +-26.853 -39.3349 75.5392 +-28.0896 -39.928 76.6781 +-28.2084 -38.9373 74.7756 +-30.0174 -40.2632 77.3218 +-30.1761 -39.3571 75.5816 +-31.8421 -40.4057 77.5956 +-32.149 -39.7135 76.2661 +-33.2207 -39.9704 76.7596 +-33.9747 -39.835 76.4996 +-35.5502 -40.6387 78.0429 +-35.6278 -39.7258 76.2898 +-37.1195 -40.3885 77.5624 +-37.1634 -39.4749 75.808 +-39.006 -40.4628 77.7052 +-39.5617 -40.0939 76.9968 +-41.0785 -40.6864 78.1346 +-41.286 -39.9774 76.7729 +-43.0042 -40.7227 78.2043 +-43.1919 -40.0105 76.8365 +-44.9905 -40.7814 78.3169 +-45.5284 -40.3937 77.5724 +-46.6655 -40.5349 77.8436 +-47.0479 -40.0206 76.8558 +-49.0627 -40.8797 78.5057 +-49.1439 -40.1176 77.0422 +-51.05 -40.8379 78.4256 +-51.2106 -40.1531 77.1104 +-53.564 -41.1724 79.0679 +-53.6084 -40.4037 77.5916 +-55.5885 -41.0869 78.9036 +-56.0941 -40.6666 78.0964 +-58.0585 -41.2911 79.2958 +-58.6157 -40.9015 78.5475 +-61.1198 -41.8506 80.3703 +-60.8887 -40.9176 78.5785 +-62.1757 -41.0111 78.7581 +-62.6578 -40.5709 77.9128 +-65.2442 -41.4752 79.6493 +-65.3115 -40.7651 78.2857 +-67.8246 -41.57 79.8314 +-67.7551 -40.7821 78.3183 +-70.8011 -41.854 80.3769 +-70.9044 -41.1695 79.0623 +-73.3158 -41.8154 80.3026 +-73.9123 -41.4114 79.5268 +-76.8131 -42.2795 81.1938 +-76.8297 -41.5468 79.7869 +-79.3831 -42.1767 80.9966 +-79.9782 -41.7514 80.1798 +-82.5038 -42.3199 81.2715 +-82.0167 -41.3387 79.3873 +-84.7042 -41.9524 80.5657 +-85.4936 -41.6094 79.9071 +-87.1102 -41.6619 80.0079 +-87.6137 -41.1775 79.0776 +-89.449 -41.3126 79.3372 +-90.0122 -40.8534 78.4553 +-93.2264 -41.5799 79.8505 +-92.993 -40.7575 78.2712 +-97.27 -41.8931 80.4519 +-97.2469 -41.1562 79.0368 +-101.068 -42.0298 80.7144 +-100.36 -41.0088 78.7537 +-104.225 -41.8451 80.3597 +-104.404 -41.1834 79.089 +-108.089 -41.8892 80.4444 +-108.182 -41.1876 79.097 +-106.158 -39.7036 76.2472 +-105.652 -38.8142 74.5392 +-106.854 -38.5575 74.0462 +-116.782 -41.3869 79.4797 +-121.153 -42.1654 80.9748 +-112.379 -38.4063 73.7558 +-97.7293 -32.7939 62.9778 +-96.8797 -31.916 61.2918 +-97.7248 -31.6038 60.6923 +-99.3896 -31.5488 60.5866 +-100.562 -31.3278 60.1622 +-102.485 -31.3292 60.1649 +-104.498 -31.3425 60.1905 +-106.52 -31.342 60.1895 +-108.55 -31.3276 60.1619 +-111.184 -31.4681 60.4316 +-111.689 -30.995 59.5231 +-111.409 -30.3092 58.2061 +-112.323 -29.9514 57.519 +-114.539 -29.9297 57.4772 +-126.645 -32.4225 62.2646 +-121.453 -30.4564 58.4887 +-140.124 -34.4107 66.0826 +-139.97 -33.6527 64.627 +-140.155 -32.9825 63.3398 +-140.415 -32.3339 62.0943 +-156.75 -35.3098 67.8094 +-160.299 -35.313 67.8155 +-209.901 -45.2058 86.8137 +-211.293 -44.473 85.4064 +-196.869 -40.4825 77.7431 +-191.666 -38.4905 73.9175 +-193.49 -37.9331 72.8471 +-137.288 -26.2643 50.4383 +-111.633 -20.831 40.004 +-109.789 -19.974 38.3582 +-108.949 -19.3156 37.0938 +-108.373 -18.714 35.9385 +-108.065 -18.1659 34.886 +-108.31 -17.7142 34.0186 +-108.073 -17.1868 33.0057 +-108.299 -16.7359 32.1399 +-107.85 -16.1846 31.0811 +-108.438 -15.791 30.3251 +-109.114 -15.4074 29.5884 +-108.634 -14.862 28.5412 +-108.815 -14.4109 27.6748 +-110.047 -14.0952 27.0686 +-109.633 -13.5675 26.0552 +-62.3487 -7.44721 14.3017 +-52.8811 -6.08945 11.6942 +-46.6738 -5.17529 9.93868 +-46.1851 -4.92464 9.45733 +-38.9542 -3.98857 7.65969 +-19.0739 -1.8725 3.59596 +-16.7567 -1.57456 3.0238 +-16.884 -1.51577 2.9109 +-16.617 -1.42242 2.73162 +-15.6584 -1.27519 2.44889 +-15.4847 -1.19679 2.29832 +-16.1981 -1.18491 2.27551 +-15.8243 -1.09227 2.0976 +-15.7453 -1.02202 1.9627 +-14.9708 -0.910297 1.74814 +-15.583 -0.883694 1.69705 +-15.8971 -0.836538 1.6065 +-15.5145 -0.753122 1.4463 +-15.0305 -0.668432 1.28366 +-14.6441 -0.591727 1.13636 +-14.6547 -0.532683 1.02297 +-13.8661 -0.447823 0.860004 +-14.7724 -0.417296 0.801379 +-14.4801 -0.35049 0.673084 +-13.9867 -0.282043 0.541637 +-14.4912 -0.233719 0.448837 +-14.9949 -0.18135 0.348266 +-13.7979 -0.111235 0.213617 +-13.3995 -0.0540077 0.103717 +119.1 5.77316e-15 2.84217e-14 +119.295 -0.472479 0.927692 +119.282 -0.944916 1.8553 +119.959 -1.4256 2.79911 +119.827 -1.89905 3.7287 +119.386 -2.36562 4.6448 +120.235 -2.85973 5.61495 +120.076 -3.33303 6.54426 +120.007 -3.80845 7.47772 +120.727 -4.31207 8.46656 +119.942 -4.76236 9.3507 +119.746 -5.23281 10.2744 +120.536 -5.74954 11.289 +120.62 -6.23701 12.2461 +120.594 -6.71998 13.1944 +120.361 -7.19142 14.1201 +120.318 -7.67412 15.0678 +120.66 -8.18387 16.0687 +120.399 -8.65436 16.9925 +120.031 -9.11587 17.8986 +120.737 -9.66183 18.9706 +120.252 -10.1148 19.86 +120.838 -10.6599 20.9304 +120.727 -11.1471 21.8869 +120.508 -11.6248 22.8249 +120.182 -12.0918 23.7418 +119.945 -12.5674 24.6755 +120.477 -13.1267 25.7737 +120.899 -13.6802 26.8604 +120.631 -14.1584 27.7995 +121.127 -14.7296 28.921 +121.61 -15.3058 30.0523 +121.311 -15.7868 30.9968 +120.811 -16.2409 31.8883 +120.781 -16.7585 32.9047 +120.931 -17.3045 33.9767 +121.735 -17.9511 35.2462 +122.144 -18.5477 36.4176 +121.877 -19.0455 37.395 +121.695 -19.5578 38.4009 +121.596 -20.0856 39.4371 +121.112 -20.5505 40.35 +121.365 -21.1432 41.5137 +121.513 -21.7229 42.6519 +121.647 -22.3053 43.7954 +118.257 -22.2304 43.6485 +114.511 -22.0596 43.313 +112.34 -22.1684 43.5267 +108.803 -21.9848 43.1662 +106.101 -21.9444 43.0868 +103.682 -21.9418 43.0818 +101.812 -22.039 43.2726 +99.3167 -21.9838 43.1642 +96.7424 -21.8903 42.9806 +96.7633 -22.3756 43.9336 +97.4825 -23.0304 45.2192 +97.0359 -23.4156 45.9755 +97.6366 -24.0588 47.2385 +96.4706 -24.2686 47.6504 +96.6965 -24.8285 48.7498 +96.8216 -25.3694 49.8117 +96.3301 -25.7519 50.5627 +96.517 -26.3194 51.677 +96.6041 -26.8666 52.7515 +96.8471 -27.4646 53.9257 +96.231 -27.8228 54.6288 +96.4471 -28.4253 55.8118 +96.8975 -29.1068 57.1499 +96.3342 -29.4894 57.9011 +95.269 -29.7156 58.3453 +95.595 -30.3781 59.6461 +94.9259 -30.7292 60.3354 +95.0595 -31.344 61.5427 +95.0159 -31.9083 62.6505 +95.1974 -32.5565 63.9233 +95.0437 -33.098 64.9865 +95.0341 -33.6967 66.162 +95.0869 -34.326 67.3977 +95.1227 -34.9584 68.6393 +94.9098 -35.507 69.7164 +94.9895 -36.1732 71.0246 +95.0507 -36.8428 72.3392 +95.0934 -37.5155 73.6602 +95.1174 -38.1914 74.9873 +94.751 -38.7186 76.0223 +93.7079 -38.9697 76.5153 +93.1745 -39.4322 77.4234 +90.4542 -38.9562 76.4888 +90.3491 -39.5967 77.7464 +87.0166 -38.8078 76.1975 +87.3277 -39.6324 77.8165 +85.0904 -39.2969 77.1579 +84.4705 -39.6977 77.9448 +82.2584 -39.3394 77.2413 +82.3172 -40.062 78.6601 +79.7196 -39.4831 77.5233 +79.3589 -39.9997 78.5376 +77.1952 -39.5986 77.7502 +76.8245 -40.1083 78.751 +74.4917 -39.5829 77.7193 +74.1777 -40.1197 78.7733 +70.8591 -39.0112 76.5968 +71.1132 -39.8547 78.2529 +69.9084 -39.8861 78.3148 +70.1238 -40.7337 79.9789 +67.8769 -40.1457 78.8245 +67.1024 -40.4131 79.3493 +65.371 -40.0936 78.722 +65.0678 -40.6446 79.804 +62.774 -39.9402 78.4208 +62.5772 -40.559 79.6359 +60.832 -40.1695 78.8711 +60.3928 -40.6346 79.7843 +58.1742 -39.8883 78.319 +57.8951 -40.4597 79.4409 +56.0403 -39.9219 78.385 +55.7475 -40.4888 79.4979 +53.6084 -39.7019 77.953 +53.7185 -40.574 79.6653 +51.6167 -39.7685 78.0838 +51.75 -40.6789 79.8712 +49.3408 -39.5788 77.7112 +49.2082 -40.2887 79.1052 +47.4296 -39.6445 77.8403 +46.7594 -39.911 78.3635 +45.2514 -39.4506 77.4595 +44.5819 -39.7091 77.9672 +42.7904 -38.95 76.4767 +42.9165 -39.9338 78.4083 +40.8986 -38.9144 76.4067 +40.6136 -39.5273 77.6102 +39.0226 -38.8607 76.3014 +38.8433 -39.5942 77.7415 +37.3229 -38.9557 76.4879 +36.9632 -39.5199 77.5956 +35.4748 -38.8681 76.3158 +35.4378 -39.8066 78.1586 +33.7914 -38.932 76.4413 +33.4716 -39.5728 77.6995 +32.149 -39.0237 76.6213 +31.8421 -39.7039 77.957 +30.777 -39.4435 77.4456 +30.0174 -39.5639 77.682 +29.0968 -39.4661 77.49 +28.4914 -39.7956 78.137 +27.3342 -39.3443 77.2508 +26.6935 -39.6246 77.8012 +25.5046 -39.0761 76.7243 +25.1657 -39.83 78.2045 +23.8644 -39.0535 76.6799 +23.3972 -39.6287 77.8093 +22.3589 -39.2366 77.0394 +21.7488 -39.5878 77.7291 +20.94 -39.5842 77.7219 +20.2231 -39.7541 78.0555 +19.1549 -39.2123 76.9918 +18.5041 -39.5086 77.5736 +17.5444 -39.1357 76.8414 +16.982 -39.6492 77.8495 +15.9456 -39.0456 76.6644 +15.42 -39.6883 77.9263 +14.5077 -39.345 77.2522 +13.8288 -39.6251 77.8021 +12.9924 -39.4539 77.4661 +12.3029 -39.7286 78.0054 +11.4733 -39.5508 77.6563 +10.7732 -39.82 78.1848 +9.90528 -39.4553 77.4688 +9.20896 -39.7638 78.0746 +8.33858 -39.3019 77.1676 +7.62613 -39.5594 77.6733 +6.82594 -39.3619 77.2855 +6.10369 -39.6138 77.7801 +5.2868 -39.2288 77.0241 +4.6108 -39.9281 78.3971 +3.77744 -39.2647 77.0946 +3.04324 -39.5503 77.6554 +2.26692 -39.2886 77.1416 +1.52709 -39.7045 77.9582 +0.751355 -39.0737 76.7195 +3.10862e-15 -39.5744 77.7027 +-0.755718 -39.3006 77.1651 +-1.53407 -39.886 78.3145 +-2.26692 -39.2886 77.1416 +-3.06767 -39.8678 78.2788 +-3.79489 -39.4461 77.4507 +-4.6265 -40.0641 78.6641 +-5.34175 -39.6365 77.8246 +-6.16647 -40.0213 78.5801 +-6.79456 -39.1809 76.9301 +-7.70457 -39.9663 78.4722 +-8.30983 -39.1664 76.9015 +-9.31349 -40.2152 78.9608 +-9.86 -39.2749 77.1146 +-10.8098 -39.9551 78.4501 +-11.3949 -39.2808 77.1262 +-12.3864 -39.9982 78.5349 +-13.0664 -39.6783 77.9067 +-13.9227 -39.894 78.3303 +-14.4582 -39.2107 76.9886 +-15.5589 -40.0459 78.6283 +-16.0367 -39.2687 77.1024 +-17.1537 -40.0502 78.6368 +-17.6441 -39.3581 77.2779 +-18.7121 -39.9526 78.4452 +-19.1549 -39.2123 76.9918 +-20.2456 -39.7983 78.1422 +-20.7533 -39.2312 77.0287 +-22.16 -40.3364 79.1989 +-22.4841 -39.4563 77.4707 +-23.7078 -40.1548 78.8422 +-23.8911 -39.0972 76.7658 +-25.2484 -39.9609 78.4615 +-25.959 -39.7723 78.0913 +-26.8982 -39.9284 78.3977 +-27.6048 -39.7338 78.0156 +-28.9549 -40.4431 79.4082 +-29.4141 -39.8965 78.335 +-30.7011 -40.465 79.4513 +-31.2443 -40.0424 78.6216 +-32.5603 -40.5995 79.7154 +-33.2347 -40.3415 79.2088 +-34.26 -40.5049 79.5297 +-34.781 -40.0721 78.6798 +-36.4492 -40.9427 80.3893 +-36.3549 -39.8325 78.2093 +-38.2526 -40.8984 80.3023 +-38.5989 -40.2876 79.1029 +-39.9822 -40.7551 80.0208 +-40.6814 -40.5126 79.5447 +-41.8815 -40.7612 80.033 +-42.6206 -40.5528 79.6238 +-43.8371 -40.7904 80.0903 +-44.3521 -40.3716 79.2679 +-46.2162 -41.1649 80.8255 +-46.5904 -40.618 79.7516 +-48.1678 -41.1131 80.7238 +-48.7179 -40.7213 79.9546 +-50.2748 -41.162 80.8198 +-50.5227 -40.5268 79.5726 +-52.6 -41.347 81.1832 +-52.9363 -40.7852 80.08 +-54.7485 -41.352 81.193 +-55.4893 -41.0949 80.6882 +-56.8073 -41.2585 81.0093 +-57.5985 -41.0319 80.5645 +-59.3657 -41.4874 81.4587 +-59.9956 -41.1371 80.771 +-61.679 -41.4999 81.4834 +-62.1914 -41.0671 80.6335 +-64.2979 -41.6743 81.8256 +-64.458 -41.0116 80.5246 +-66.89 -41.7828 82.0388 +-67.0365 -41.115 80.7276 +-69.5096 -41.8628 82.1959 +-69.8249 -41.2979 81.0867 +-72.7712 -42.2715 82.9983 +-72.7097 -41.4844 81.4529 +-75.015 -42.0414 82.5464 +-75.8205 -41.7427 81.96 +-77.7773 -42.0666 82.596 +-78.3884 -41.6534 81.7847 +-80.7609 -42.1634 82.7861 +-81.171 -41.638 81.7545 +-83.8421 -42.2593 82.9743 +-83.8407 -41.5241 81.5309 +-85.8636 -41.7879 82.0489 +-86.9392 -41.578 81.6366 +-89.2636 -41.9503 82.3677 +-89.9267 -41.5304 81.5433 +-92.2774 -41.8787 82.2271 +-93.1505 -41.5435 81.5688 +-95.888 -42.0242 82.5128 +-96.1121 -41.3929 81.2733 +-99.4641 -42.094 82.6498 +-100.491 -41.7904 82.0538 +-103.966 -42.4841 83.4158 +-104.105 -41.8001 82.0727 +-101.131 -39.8975 78.337 +-105.925 -41.0576 80.6148 +-104.642 -39.8489 78.2416 +-110.265 -41.2516 80.9958 +-109.111 -40.0993 78.7333 +-105.965 -38.2531 75.1083 +-106.933 -37.9158 74.446 +-113.529 -39.5353 77.6259 +-97.6731 -33.4032 65.5857 +-96.7844 -32.5022 63.8166 +-97.8102 -32.251 63.3234 +-97.8567 -31.6779 62.1982 +-97.8887 -31.1069 61.0772 +-98.8951 -30.8466 60.5659 +-100.065 -30.6314 60.1435 +-102.568 -30.81 60.4942 +-104.582 -30.8229 60.5194 +-106.52 -30.7977 60.4699 +-107.787 -30.567 60.017 +-110.417 -30.7081 60.2941 +-111.517 -30.4099 59.7085 +-111.667 -29.8519 58.6129 +-113.796 -29.817 58.5443 +-116.541 -29.9238 58.7542 +-122.972 -30.9353 60.7401 +-140.699 -34.6699 68.0728 +-140.565 -33.9196 66.5997 +-140.325 -33.152 65.0926 +-144.878 -33.5016 65.779 +-150.438 -34.0403 66.8367 +-189.286 -41.8985 82.2659 +-196.222 -42.4758 83.3995 +-210.807 -44.6124 87.5946 +-200.737 -41.5174 81.5177 +-193.489 -39.0964 76.7642 +-193.775 -38.2382 75.0791 +-194.595 -37.487 73.6042 +-160.847 -30.2368 59.3688 +-113.302 -20.7752 40.7911 +-110.813 -19.81 38.8962 +-109.416 -19.0614 37.4262 +-109.122 -18.5161 36.3556 +-108.722 -17.959 35.2618 +-108.31 -17.4066 34.1771 +-108.073 -16.8883 33.1594 +-107.73 -16.3588 32.1199 +-108.516 -16.0017 31.4186 +-107.961 -15.4485 30.3325 +-108.636 -15.0734 29.596 +-108.443 -14.5781 28.6235 +-109.295 -14.2232 27.9266 +-109.565 -13.7898 27.0756 +-109.633 -13.3319 26.1765 +-109.304 -12.829 25.1891 +-109.643 -12.4066 24.3598 +-52.119 -5.6787 11.1499 +-52.0314 -5.45165 10.7041 +-45.9835 -4.62653 9.084 +-42.4516 -4.09512 8.0406 +-16.3647 -1.51102 2.96682 +-15.706 -1.38553 2.72043 +-14.4538 -1.21576 2.38709 +-15.6584 -1.25304 2.4603 +-16.0765 -1.22094 2.39727 +-16.0993 -1.15722 2.27216 +-15.7254 -1.06659 2.0942 +-16.4384 -1.04848 2.05865 +-14.6734 -0.876714 1.72139 +-15.7815 -0.879405 1.72667 +-14.8042 -0.765497 1.50302 +-16.2107 -0.773249 1.51824 +-15.0305 -0.656822 1.28964 +-14.4448 -0.573538 1.12612 +-14.1562 -0.505627 0.992776 +-15.3625 -0.487532 0.957249 +-14.8722 -0.412819 0.810552 +-15.1792 -0.361029 0.708865 +-13.7869 -0.273185 0.536387 +-14.791 -0.234412 0.460257 +-12.5957 -0.149688 0.293907 +-3275.8 -25.95 50.9517 +-3276.18 -12.9755 25.4768 +119.1 5.77316e-15 2.84217e-14 +119.395 -0.464476 0.932696 +119.182 -0.927361 1.8622 +119.159 -1.39095 2.79311 +119.527 -1.86066 3.73632 +119.386 -2.32362 4.66596 +119.336 -2.78795 5.59837 +119.976 -3.27112 6.5686 +119.907 -3.73771 7.50555 +120.627 -4.232 8.4981 +119.743 -4.66999 9.37762 +120.542 -5.17408 10.3899 +120.437 -5.64281 11.3311 +120.62 -6.12626 12.3019 +120.594 -6.60065 13.2545 +120.361 -7.06372 14.1844 +120.219 -7.53165 15.124 +120.66 -8.03855 16.1419 +120.103 -8.47973 17.0278 +120.721 -9.00548 18.0835 +120.54 -9.47475 19.0258 +120.252 -9.93519 19.9504 +120.838 -10.4707 21.0257 +120.629 -10.9403 21.9688 +120.41 -11.4091 22.9102 +121.061 -11.964 24.0243 +120.822 -12.4344 24.9691 +120.574 -12.904 25.9119 +120.996 -13.448 27.0045 +120.534 -13.8959 27.9037 +121.127 -14.4681 29.0527 +120.743 -14.9268 29.9739 +121.311 -15.5065 31.138 +120.907 -15.9652 32.059 +120.686 -16.4479 33.0284 +120.836 -16.9838 34.1045 +121.45 -17.591 35.3237 +121.48 -18.1193 36.3847 +121.026 -18.5767 37.3031 +121.695 -19.2105 38.5758 +121.408 -19.6984 39.5555 +120.924 -20.1543 40.4711 +121.365 -20.7677 41.7028 +121.885 -21.4025 42.9774 +121.554 -21.8925 43.9614 +117.887 -21.7674 43.7103 +114.327 -21.633 43.4403 +112.248 -21.7569 43.6892 +108.803 -21.5944 43.3629 +106.192 -21.5732 43.3203 +103.682 -21.5522 43.278 +100.909 -21.4557 43.0843 +98.5078 -21.4175 43.0077 +96.116 -21.3623 42.8968 +97.2088 -22.0795 44.3369 +97.5712 -22.642 45.4664 +96.8594 -22.9579 46.1008 +97.9002 -23.6954 47.5819 +96.2956 -23.7944 47.7806 +96.6095 -24.3657 48.9277 +96.735 -24.8966 49.9938 +96.3301 -25.2946 50.793 +96.517 -25.852 51.9124 +96.6041 -26.3895 52.9918 +96.8471 -26.9769 54.1713 +96.231 -27.3287 54.8776 +96.4471 -27.9205 56.066 +96.3972 -28.4422 57.1137 +96.5829 -29.0405 58.3151 +96.2579 -29.4908 59.2194 +95.4312 -29.7875 59.8151 +94.6002 -30.0799 60.4023 +94.7359 -30.6826 61.6125 +94.4532 -31.156 62.5632 +95.1175 -31.9515 64.1606 +95.0437 -32.5103 65.2825 +95.0341 -33.0983 66.4634 +95.1652 -33.7443 67.7605 +95.1227 -34.3376 68.9519 +94.987 -34.9048 70.0909 +94.9895 -35.5309 71.3481 +94.9747 -36.1596 72.6106 +95.4708 -36.9956 74.2894 +95.2672 -37.5724 75.4475 +95.1969 -38.21 76.7279 +94.8876 -38.7596 77.8315 +94.1984 -39.1576 78.6307 +92.8479 -39.2771 78.8706 +91.6439 -39.451 79.2198 +90.0122 -39.431 79.1797 +88.6005 -39.496 79.3103 +86.8427 -39.394 79.1054 +86.4155 -39.8907 80.1028 +84.3234 -39.6109 79.5411 +82.931 -39.644 79.6075 +81.1384 -39.4721 79.2624 +80.3626 -39.7863 79.8932 +78.9843 -39.7969 79.9145 +78.2022 -40.1026 80.5285 +75.8555 -39.5918 79.5026 +75.0776 -39.8854 80.0922 +73.149 -39.5567 79.4323 +72.6236 -39.9784 80.2789 +70.5309 -39.5267 79.372 +70.0623 -39.9752 80.2726 +68.9727 -40.0694 80.4618 +69.2087 -40.9415 82.2128 +66.8581 -40.2774 80.8794 +66.5961 -40.8605 82.0504 +64.2838 -40.1745 80.6728 +63.8391 -40.6421 81.6118 +62.1914 -40.3379 81.0008 +61.3994 -40.5782 81.4835 +59.6092 -40.1465 80.6164 +59.2023 -40.6385 81.6045 +57.0075 -39.8897 80.1009 +56.9133 -40.6015 81.5301 +55.9073 -40.6693 81.6663 +54.285 -40.2738 80.8722 +53.0378 -40.1378 80.599 +52.25 -40.3426 81.0103 +50.6704 -39.9235 80.1688 +50.5656 -40.6649 81.6576 +48.6702 -39.9591 80.2401 +48.0269 -40.2649 80.8544 +45.7593 -39.185 78.6857 +45.626 -39.9175 80.1568 +43.8166 -39.176 78.6676 +43.6618 -39.9058 80.1332 +42.2762 -39.5109 79.3402 +41.5434 -39.7142 79.7485 +40.3497 -39.4687 79.2554 +39.8195 -39.8685 80.0582 +38.6787 -39.6539 79.6274 +38.2526 -40.1722 80.6681 +36.7759 -39.5781 79.4752 +35.9997 -39.7197 79.7595 +34.8909 -39.485 79.2881 +34.4392 -39.9937 80.3098 +33.1296 -39.4999 79.318 +32.3893 -39.6691 79.6579 +31.478 -39.6255 79.5704 +30.8313 -39.9151 80.1518 +29.4459 -39.2303 78.7767 +29.1403 -39.9792 80.2807 +27.9055 -39.4534 79.2247 +27.3075 -39.8162 79.9533 +26.1862 -39.408 79.1336 +25.5791 -39.7655 79.8515 +24.5592 -39.4769 79.2719 +24.0184 -39.9584 80.2389 +22.9348 -39.5324 79.3835 +22.3778 -40.0095 80.3414 +21.2435 -39.4448 79.2075 +20.6955 -39.9603 80.2425 +19.6311 -39.4735 79.265 +19.1279 -40.1152 80.5537 +17.8634 -39.1397 78.5949 +17.3827 -39.8641 80.0494 +16.383 -39.4042 79.1259 +15.6978 -39.6859 79.6917 +14.7388 -39.2619 78.8401 +14.0635 -39.5819 79.4827 +13.155 -39.2383 78.7928 +12.4699 -39.5528 79.4244 +11.656 -39.4672 79.2525 +11.017 -39.9978 80.3179 +10.109 -39.5519 79.4226 +9.39711 -39.8557 80.0326 +8.55903 -39.6245 79.5684 +7.8353 -39.9228 80.1673 +6.98286 -39.5517 79.4222 +6.25018 -39.8442 80.0095 +5.43332 -39.6001 79.5193 +4.66313 -39.6642 79.6481 +3.84287 -39.2355 78.7871 +3.10955 -39.6944 79.7088 +2.30619 -39.2594 78.8352 +1.56374 -39.9355 80.1928 +0.771426 -39.4051 79.1277 +3.55271e-15 -39.7186 79.7574 +-0.771426 -39.4051 79.1277 +-1.56374 -39.9355 80.1928 +-2.34807 -39.9724 80.267 +-3.12699 -39.9172 80.1561 +-3.85595 -39.3691 79.0555 +-4.73117 -40.2429 80.8102 +-5.45163 -39.7335 79.7873 +-6.25018 -39.8442 80.0095 +-7.0064 -39.6851 79.69 +-7.90503 -40.278 80.8807 +-8.58778 -39.7576 79.8357 +-9.49118 -40.2547 80.8339 +-10.109 -39.5519 79.4226 +-10.9317 -39.6881 79.696 +-11.6299 -39.3788 79.075 +-12.5256 -39.7294 79.779 +-13.1698 -39.2824 78.8813 +-14.0791 -39.6259 79.5712 +-14.7057 -39.1739 78.6635 +-15.6283 -39.5103 79.3391 +-16.4012 -39.448 79.2139 +-17.4972 -40.1266 80.5766 +-17.8833 -39.1834 78.6825 +-19.0655 -39.9844 80.291 +-19.5878 -39.3865 79.0903 +-20.6955 -39.9603 80.2425 +-21.1968 -39.3581 79.0334 +-22.5229 -40.269 80.8624 +-23.035 -39.7051 79.7302 +-24.1996 -40.2599 80.8442 +-24.7195 -39.7346 79.7894 +-25.9099 -40.2797 80.884 +-26.6406 -40.0919 80.5069 +-27.7461 -40.4556 81.2373 +-28.2062 -39.8785 80.0784 +-29.5111 -40.488 81.3023 +-30.0488 -40.0335 80.3896 +-31.3848 -40.6316 81.5906 +-32.0788 -40.3819 81.0892 +-33.176 -40.6326 81.5926 +-33.795 -40.2932 80.9111 +-35.2276 -40.9093 82.1483 +-35.8805 -40.6048 81.5368 +-37.3108 -41.1663 82.6644 +-37.8091 -40.6901 81.7082 +-38.9168 -40.8698 82.0689 +-39.7154 -40.7168 81.7618 +-41.0397 -41.0902 82.5115 +-41.4279 -40.5233 81.3732 +-43.0225 -41.1282 82.5879 +-43.5247 -40.6777 81.6832 +-44.9769 -41.1078 82.5469 +-45.5122 -40.6919 81.7117 +-47.3058 -41.3871 83.1078 +-47.8372 -40.9643 82.2587 +-49.3415 -41.367 83.0674 +-49.9108 -40.9776 82.2855 +-51.1474 -41.1328 82.5971 +-51.9507 -40.9323 82.1944 +-53.6 -41.3849 83.1033 +-53.9513 -40.8292 81.9874 +-55.9331 -41.4966 83.3276 +-56.3253 -40.9733 82.2769 +-58.4501 -41.6978 83.7316 +-58.8343 -41.168 82.6679 +-60.5639 -41.5732 83.4814 +-61.0994 -41.1501 82.6319 +-62.8533 -41.5391 83.413 +-64.1172 -41.5869 83.509 +-65.9613 -41.9932 84.3249 +-66.3163 -41.4447 83.2234 +-68.477 -42.0146 84.3678 +-68.702 -41.3883 83.1101 +-71.1947 -42.1163 84.572 +-71.1033 -41.3073 82.9474 +-74.3103 -42.3991 85.1398 +-74.3282 -41.6548 83.6453 +-76.903 -42.3341 85.0094 +-77.4743 -41.8958 84.1292 +-80.1556 -42.5831 85.5093 +-79.9471 -41.7273 83.7909 +-82.7946 -42.4576 85.2574 +-82.4299 -41.533 83.4007 +-84.7119 -41.9395 84.2171 +-85.6648 -41.6742 83.6842 +-88.1824 -42.1544 84.6484 +-88.1782 -41.4217 83.1773 +-91.7644 -42.3598 85.0609 +-91.4687 -41.4925 83.3193 +-94.6816 -42.2068 84.7537 +-95.1476 -41.6806 83.6972 +-98.2618 -42.2998 84.9405 +-98.9411 -41.8546 84.0466 +-102.755 -42.7146 85.7735 +-103.587 -42.3132 84.9675 +-106.641 -42.8035 85.952 +-106.576 -42.0326 84.4039 +-102.565 -39.7447 79.8097 +-99.4611 -37.8677 76.0406 +-99.8156 -37.3361 74.973 +-103.321 -37.9671 76.2403 +-102.894 -37.143 74.5852 +-105.261 -37.324 74.9488 +-99.2894 -34.5803 69.4393 +-98.0585 -33.5415 67.3533 +-98.3919 -33.0514 66.3692 +-98.1509 -32.3758 65.0125 +-97.8102 -31.6783 63.6118 +-97.4496 -30.9859 62.2216 +-98.1344 -30.6313 61.5094 +-98.3183 -30.1221 60.487 +-99.9819 -30.0626 60.3674 +-101.901 -30.0661 60.3745 +-103.911 -30.0813 60.4051 +-105.846 -30.0592 60.3606 +-107.787 -30.0242 60.2904 +-110.332 -30.1395 60.5219 +-111.432 -29.8469 59.9343 +-113.304 -29.7517 59.7431 +-115.441 -29.711 59.6614 +-118.107 -29.7876 59.8153 +-121.222 -29.9537 60.1489 +-139.996 -33.8841 68.0412 +-140.3 -33.2544 66.7769 +-141.478 -32.8309 65.9264 +-157.174 -35.6995 71.6867 +-169.68 -37.7123 75.7284 +-209.239 -45.4928 91.3522 +-209.49 -44.5427 89.4443 +-195.4 -40.6176 81.5624 +-195.551 -39.7265 79.7731 +-193.215 -38.3478 77.0046 +-193.5 -37.5059 75.314 +-195.055 -36.9084 74.1143 +-195.308 -36.063 72.4166 +-114.878 -20.6902 41.5471 +-111.371 -19.5563 39.2702 +-110.069 -18.8348 37.8213 +-108.935 -18.1561 36.4584 +-108.441 -17.5944 35.3305 +-108.498 -17.1272 34.3925 +-108.073 -16.5884 33.3105 +-108.488 -16.1815 32.4935 +-107.755 -15.6073 31.3404 +-107.961 -15.1742 30.4706 +-108.636 -14.8057 29.7308 +-109.21 -14.4205 28.9573 +-108.719 -13.8969 27.9058 +-109.276 -13.5092 27.1272 +-109.633 -13.0951 26.2958 +-111.143 -12.8132 25.7297 +-111.778 -12.4235 24.9471 +-69.0383 -7.38856 14.8367 +-60.4109 -6.21724 12.4846 +-50.2792 -4.96889 9.97782 +-49.2986 -4.67115 9.37995 +-17.1487 -1.55529 3.12311 +-16.4913 -1.42898 2.86947 +-16.617 -1.37289 2.75685 +-17.1357 -1.3469 2.70466 +-16.8655 -1.25812 2.52638 +-16.0006 -1.1297 2.26851 +-16.9122 -1.12672 2.26251 +-14.854 -0.930602 1.8687 +-14.0785 -0.826232 1.65912 +-14.4912 -0.793165 1.59272 +-15.5991 -0.792273 1.59093 +-14.0228 -0.657007 1.31931 +-15.3291 -0.657974 1.32125 +-14.8433 -0.578894 1.16245 +-14.8541 -0.52113 1.04646 +-14.9635 -0.466438 0.936634 +-15.8703 -0.432702 0.868892 +-14.4801 -0.338287 0.679299 +-14.3863 -0.28 0.562257 +-14.5911 -0.227138 0.456106 +-12.0959 -0.141196 0.283529 +-3275.8 -25.4892 51.1837 +-3276.58 -12.7466 25.5959 +119.1 5.77316e-15 2.84217e-14 +119.395 -0.456041 0.936849 +119.182 -0.91052 1.87049 +119.159 -1.36569 2.80555 +119.427 -1.82534 3.74981 +120.285 -2.2986 4.72203 +120.235 -2.75794 5.66565 +120.076 -3.21439 6.60334 +119.907 -3.66984 7.53897 +120.727 -4.15858 8.543 +119.743 -4.58519 9.41938 +120.642 -5.08432 10.4447 +120.536 -5.54489 11.3909 +119.725 -5.9704 12.265 +120.495 -6.47544 13.3025 +120.361 -6.93545 14.2475 +120.219 -7.39488 15.1913 +120.462 -7.87965 16.1872 +120.893 -8.38054 17.2162 +119.932 -8.78417 18.0454 +120.54 -9.30269 19.1106 +120.252 -9.75477 20.0393 +119.955 -10.2054 20.9649 +120.629 -10.7416 22.0666 +120.508 -11.2111 23.031 +120.182 -11.6614 23.9562 +120.822 -12.2086 25.0803 +120.574 -12.6696 26.0273 +120.899 -13.1932 27.1029 +120.534 -13.6435 28.028 +120.354 -14.1147 28.996 +120.936 -14.6791 30.1554 +121.311 -15.2249 31.2766 +120.715 -15.6504 32.1507 +120.686 -16.1492 33.1755 +121.122 -16.7149 34.3374 +121.735 -17.3121 35.5644 +121.48 -17.7903 36.5467 +121.499 -18.3106 37.6156 +120.752 -18.7155 38.4474 +121.314 -19.3257 39.7009 +120.831 -19.773 40.6198 +121.365 -20.3906 41.8885 +121.233 -20.9015 42.9381 +120.256 -21.2654 43.6856 +117.517 -21.3051 43.7672 +114.327 -21.2401 43.6337 +111.423 -21.2048 43.5611 +107.981 -21.0421 43.2269 +105.465 -21.0362 43.2148 +102.957 -21.0128 43.1667 +100.277 -20.9342 43.0052 +97.609 -20.8367 42.805 +95.8475 -20.9158 42.9675 +97.2088 -21.6785 44.5343 +96.6842 -22.0287 45.2538 +96.8594 -22.541 46.3061 +97.9881 -23.286 47.8366 +96.8204 -23.4896 48.2549 +96.6095 -23.9232 49.1456 +96.8216 -24.4664 50.2614 +97.0194 -25.0129 51.3842 +96.4313 -25.36 52.0972 +96.6894 -25.9332 53.2746 +96.0838 -26.2783 53.9837 +96.99 -27.0441 55.5568 +96.3632 -27.3896 56.2667 +96.4806 -27.9499 57.4177 +96.5829 -28.5132 58.5748 +96.4228 -29.0049 59.5849 +96.3323 -29.5227 60.6487 +95.1701 -29.7116 61.0367 +95.464 -30.357 62.3625 +94.4532 -30.5903 62.8418 +94.9578 -31.3186 64.338 +95.1231 -31.9465 65.628 +94.4037 -32.2817 66.3164 +95.1652 -33.1315 68.0622 +95.1227 -33.714 69.2589 +95.0641 -34.2988 70.4602 +94.9895 -34.8857 71.6658 +94.9747 -35.503 72.934 +94.9425 -36.1228 74.2072 +94.8178 -36.716 75.426 +94.9739 -37.4282 76.889 +94.8876 -38.0557 78.178 +95.0028 -38.7748 79.6554 +94.3712 -39.1965 80.5215 +93.5861 -39.5554 81.259 +91.3674 -39.2978 80.7298 +90.2975 -39.5215 81.1892 +88.4547 -39.3966 80.9327 +87.2491 -39.5441 81.2356 +85.6313 -39.4948 81.1345 +84.4314 -39.6283 81.4087 +82.9625 -39.6266 81.4052 +81.7678 -39.7468 81.6521 +79.7795 -39.4676 81.0785 +79.1863 -39.8698 81.9048 +76.8297 -39.372 80.8822 +76.0418 -39.664 81.482 +74.6756 -39.6489 81.4511 +73.8822 -39.9326 82.0339 +71.5892 -39.3912 80.9216 +70.8626 -39.6976 81.5511 +70.0076 -39.9321 82.0327 +68.7273 -39.9183 82.0045 +68.4046 -40.4607 83.1188 +66.89 -40.2956 82.7794 +66.1421 -40.5852 83.3744 +64.7568 -40.4777 83.1537 +63.5508 -40.471 83.1399 +61.9027 -40.1679 82.5172 +60.7683 -40.1838 82.5499 +59.638 -40.1942 82.5711 +58.3507 -40.0882 82.3534 +57.2843 -40.1239 82.4269 +55.8028 -39.8561 81.8766 +54.7485 -39.8801 81.926 +53.7991 -39.9746 82.12 +52.75 -39.989 82.1497 +51.5075 -39.8461 81.8561 +50.5656 -39.9265 82.0212 +49.3382 -39.7719 81.7037 +48.9659 -40.3066 82.8022 +47.2369 -39.7157 81.5882 +46.9426 -40.3236 82.837 +44.8429 -39.3654 80.8686 +44.2316 -39.6925 81.5406 +42.922 -39.3859 80.9108 +42.135 -39.5484 81.2444 +40.9717 -39.3493 80.8356 +40.633 -39.9441 82.0575 +39.0774 -39.3352 80.8066 +38.6433 -39.8455 81.8549 +37.4647 -39.5873 81.3244 +36.7114 -39.7694 81.6986 +35.3674 -39.2973 80.7287 +34.9767 -39.8803 81.9264 +33.69 -39.4385 81.0188 +33.2786 -40.0181 82.2094 +31.9119 -39.4423 81.0265 +31.1894 -39.6454 81.4439 +30.017 -39.265 80.6622 +29.6038 -39.8776 81.9209 +28.3566 -39.363 80.8637 +27.9215 -39.9721 82.115 +26.6406 -39.3638 80.8654 +26.158 -39.9269 82.022 +24.9601 -39.3926 80.9245 +24.2513 -39.6133 81.3778 +23.3855 -39.5773 81.3039 +22.7407 -39.9199 82.0077 +21.8038 -39.7499 81.6585 +21.1454 -40.0875 82.3521 +19.9124 -39.3121 80.7592 +19.2318 -39.6008 81.3522 +18.2621 -39.2867 80.7069 +17.6689 -39.7846 81.7298 +16.7474 -39.5493 81.2464 +16.0104 -39.7411 81.6404 +14.9203 -39.0237 80.1666 +14.3763 -39.7277 81.6128 +13.4507 -39.3914 80.9221 +12.8735 -40.0915 82.3602 +11.9954 -39.8788 81.9232 +11.1632 -39.7927 81.7464 +10.3015 -39.5729 81.2949 +9.60617 -40.0025 82.1775 +8.70279 -39.5585 81.2652 +8.00961 -40.0698 82.3157 +7.13978 -39.7062 81.5687 +6.35481 -39.7756 81.7113 +5.48826 -39.2741 80.681 +4.74687 -39.6432 81.4394 +3.94319 -39.5287 81.2041 +3.16538 -39.6734 81.5014 +2.3664 -39.5528 81.2535 +1.58817 -39.8229 81.8084 +0.784516 -39.346 80.8288 +3.21965e-15 -39.829 81.8209 +-0.784516 -39.346 80.8288 +-1.5934 -39.9542 82.0781 +-2.3821 -39.8153 81.7928 +-3.18632 -39.9359 82.0406 +-3.96936 -39.791 81.743 +-4.76257 -39.7744 81.7087 +-5.54321 -39.6673 81.4887 +-6.36877 -39.8629 81.8906 +-7.13978 -39.7062 81.5687 +-7.98347 -39.939 82.0469 +-8.73155 -39.6892 81.5337 +-9.58526 -39.9155 81.9986 +-10.4034 -39.9643 82.099 +-11.212 -39.9665 82.1034 +-11.9954 -39.8788 81.9232 +-12.8735 -40.0915 82.3602 +-13.5837 -39.7811 81.7225 +-14.4702 -39.987 82.1456 +-15.1679 -39.6712 81.4968 +-16.1666 -40.129 82.4373 +-16.8568 -39.8075 81.7769 +-17.8216 -40.1283 82.4359 +-18.3418 -39.4583 81.0594 +-19.419 -39.9861 82.1437 +-20.0423 -39.5685 81.2859 +-21.2129 -40.2155 82.6149 +-21.6871 -39.5371 81.2213 +-22.8132 -40.0473 82.2694 +-23.4856 -39.7468 81.652 +-24.4843 -39.9938 82.1595 +-25.2808 -39.8987 81.9642 +-26.6541 -40.6842 83.5778 +-27.2939 -40.329 82.8482 +-28.2723 -40.4744 83.1468 +-28.988 -40.2396 82.6645 +-30.1601 -40.6269 83.4601 +-30.7786 -40.2611 82.7087 +-31.9057 -40.5559 83.3141 +-32.5795 -40.2674 82.7216 +-33.8942 -40.7584 83.7302 +-34.3904 -40.2584 82.7031 +-35.9085 -40.9428 84.109 +-36.5035 -40.5597 83.3221 +-37.648 -40.784 83.7828 +-38.4597 -40.6386 83.4842 +-39.6201 -40.8528 83.9241 +-40.5528 -40.8203 83.8574 +-42.0159 -41.3036 84.8502 +-42.1743 -40.5043 83.2083 +-43.8255 -41.135 84.504 +-44.1704 -40.5316 83.2642 +-45.8536 -41.1481 84.5308 +-46.36 -40.6972 83.6045 +-48.123 -41.3375 84.9199 +-48.6683 -40.9192 84.0605 +-50.3274 -41.4274 85.1045 +-50.5788 -40.772 83.7581 +-52.2625 -41.2663 84.7736 +-53.0833 -41.0651 84.3603 +-54.75 -41.5052 85.2644 +-55.3217 -41.1059 84.4442 +-57.0147 -41.5308 85.317 +-57.6316 -41.1622 84.5598 +-59.4039 -41.6086 85.4769 +-59.8014 -41.0849 84.4009 +-61.9799 -41.7726 85.8136 +-62.3689 -41.2423 84.7243 +-64.6986 -41.9822 86.2442 +-65.1934 -41.517 85.2887 +-67.1658 -41.9835 86.247 +-67.8261 -41.6185 85.4971 +-70.064 -42.2077 86.7075 +-70.7244 -41.8329 85.9376 +-73.0002 -42.4001 87.1028 +-73.4775 -41.9113 86.0987 +-75.9726 -42.5603 87.4319 +-76.258 -41.9602 86.1992 +-78.665 -42.5177 87.3444 +-79.7006 -42.317 86.9321 +-81.3126 -42.4133 87.1299 +-82.35 -42.201 86.6937 +-84.0412 -42.3142 86.9264 +-84.5503 -41.8277 85.9269 +-86.5855 -42.0887 86.463 +-87.3538 -41.7241 85.7141 +-89.41 -41.9651 86.2091 +-90.3121 -41.6537 85.5694 +-93.4316 -42.3461 86.9919 +-94.062 -41.894 86.0631 +-96.8029 -42.3688 87.0384 +-97.858 -42.0895 86.4647 +-100.851 -42.6262 87.5673 +-101.697 -42.2394 86.7727 +-104.364 -42.5956 87.5045 +-105.578 -42.3432 86.9859 +-109.762 -43.2563 88.8616 +-109.947 -42.5743 87.4608 +-106.414 -40.4874 83.1734 +-98.3965 -36.7821 75.5617 +-99.5092 -36.5455 75.0757 +-102.009 -36.8044 75.6074 +-103.127 -36.5511 75.0871 +-104.087 -36.2375 74.443 +-97.3193 -33.2787 68.3647 +-97.1858 -32.6393 67.0511 +-97.9127 -32.2932 66.3401 +-97.6686 -31.6316 64.9811 +-97.6484 -31.0516 63.7894 +-97.7753 -30.5249 62.7075 +-97.7248 -29.9495 61.5254 +-97.7414 -29.4016 60.3998 +-99.4016 -29.3453 60.2842 +-101.234 -29.3269 60.2464 +-103.073 -29.2966 60.1843 +-105.761 -29.4898 60.5811 +-107.024 -29.2703 60.1301 +-109.308 -29.3177 60.2276 +-111.86 -29.4176 60.4328 +-113.563 -29.278 60.1461 +-115.788 -29.259 60.1069 +-118.281 -29.2898 60.1702 +-120.26 -29.1764 59.9372 +-139.908 -33.2479 68.3013 +-143.214 -33.3286 68.4673 +-150.171 -34.2153 70.2886 +-177.667 -39.6214 81.3944 +-205.835 -44.917 92.2733 +-209.958 -44.8198 92.0737 +-202.901 -42.3583 87.0169 +-193.497 -39.4915 81.1276 +-194.55 -38.8054 79.7182 +-193.58 -37.7226 77.4938 +-194.6 -37.0342 76.0796 +-195.423 -36.3066 74.5848 +-196.417 -35.6091 73.1519 +-115.898 -20.4948 42.1025 +-111.929 -19.2974 39.6428 +-109.976 -18.477 37.9574 +-108.935 -17.8263 36.6208 +-109.004 -17.3647 35.6724 +-108.31 -16.787 34.4856 +-107.978 -16.2729 33.4296 +-108.204 -15.846 32.5526 +-107.85 -15.3374 31.5078 +-108.152 -14.9249 30.6603 +-108.445 -14.5113 29.8107 +-108.538 -14.0717 28.9075 +-108.719 -13.6445 28.03 +-109.276 -13.2638 27.248 +-110.405 -12.9479 26.599 +-111.143 -12.5805 25.8442 +-111.584 -12.1767 25.0147 +-111.531 -11.7194 24.0753 +-112.735 -11.3914 23.4015 +-60.4327 -5.86387 12.0462 +-55.2653 -5.14144 10.5621 +-14.6989 -1.30889 2.68887 +-16.3932 -1.39467 2.86509 +-17.9936 -1.45963 2.99852 +-15.166 -1.17044 2.40444 +-16.2737 -1.19193 2.44859 +-17.5809 -1.21874 2.50366 +-16.9122 -1.10626 2.27259 +-13.8638 -0.852786 1.75188 +-15.3674 -0.885498 1.81908 +-14.0942 -0.757424 1.55598 +-15.2016 -0.758067 1.5573 +-14.52 -0.667953 1.37218 +-15.5282 -0.654416 1.34437 +-12.5521 -0.480644 0.987389 +-15.4522 -0.532272 1.09345 +-14.1654 -0.433541 0.890626 +-13.7743 -0.368733 0.75749 +-13.9808 -0.32069 0.658796 +-12.588 -0.240551 0.494166 +-13.2919 -0.203155 0.417343 +-3275.18 -37.537 77.1126 +-3276.2 -25.0293 51.4179 +-3276.58 -12.5151 25.7099 +119.2 7.10543e-15 2.84217e-14 +119.295 -0.447212 0.940132 +119.182 -0.893638 1.87861 +119.159 -1.34037 2.81773 +119.427 -1.7915 3.7661 +119.386 -2.23912 4.70709 +120.135 -2.70455 5.68553 +120.076 -3.15479 6.63202 +119.907 -3.60179 7.57171 +120.727 -4.08148 8.5801 +120.739 -4.53763 9.53904 +120.542 -4.98593 10.4814 +120.636 -5.44659 11.4499 +120.62 -5.90348 12.4103 +120.594 -6.36062 13.3713 +120.361 -6.80685 14.3094 +120.219 -7.25777 15.2573 +120.66 -7.74623 16.2842 +120.103 -8.17137 17.1779 +121.017 -8.69926 18.2876 +120.442 -9.12277 19.1779 +120.154 -9.56608 20.1099 +120.053 -10.0243 21.0731 +120.629 -10.5425 22.1625 +120.41 -10.9943 23.1122 +120.28 -11.4545 24.0798 +120.822 -11.9823 25.1892 +120.574 -12.4347 26.1404 +120.899 -12.9486 27.2207 +120.631 -13.4013 28.1723 +121.127 -13.9419 29.3088 +120.839 -14.3955 30.2623 +121.215 -14.9308 31.3876 +120.907 -15.3846 32.3416 +120.686 -15.8498 33.3196 +121.122 -16.4049 34.4866 +120.784 -16.8584 35.4398 +121.48 -17.4604 36.7054 +121.31 -17.9431 37.7202 +121.601 -18.4976 38.8857 +121.408 -18.9821 39.9042 +121.767 -19.5568 41.1125 +121.272 -19.9971 42.0381 +121.419 -20.5454 43.1907 +120.812 -20.9676 44.0783 +117.24 -20.8608 43.8537 +113.498 -20.6952 43.5056 +110.689 -20.6746 43.4622 +108.164 -20.6869 43.488 +105.465 -20.6462 43.4025 +102.141 -20.4598 43.0108 +100.277 -20.546 43.192 +97.609 -20.4504 42.9909 +95.937 -20.5472 43.1944 +97.2088 -21.2766 44.7277 +96.7729 -21.6401 45.492 +97.654 -22.3046 46.8889 +98.2518 -22.9157 48.1736 +97.3452 -23.1791 48.7272 +96.5224 -23.4585 49.3146 +96.8216 -24.0127 50.4797 +96.9333 -24.5274 51.5616 +96.3456 -24.8677 52.277 +96.6894 -25.4523 53.506 +96.8471 -25.9959 54.6488 +96.231 -26.3349 55.3614 +96.4471 -26.9052 56.5603 +96.4806 -27.4317 57.667 +95.9196 -27.7923 58.4251 +95.8459 -28.2968 59.4857 +95.8408 -28.8275 60.6013 +96.0656 -29.4351 61.8786 +95.5449 -29.8193 62.6864 +95.4982 -30.3552 63.8129 +94.9578 -30.7379 64.6174 +95.0437 -31.3281 65.858 +94.4037 -31.6831 66.6045 +95.0869 -32.4904 68.3016 +95.1227 -33.0889 69.5597 +95.0641 -33.6628 70.7662 +94.9895 -34.2388 71.9771 +94.9747 -34.8447 73.2507 +94.867 -35.4248 74.4703 +94.8927 -36.0638 75.8135 +95.3455 -36.878 77.5252 +94.8876 -37.3501 78.5176 +94.8566 -37.9973 79.8782 +95.2417 -38.8246 81.6173 +94.4493 -39.1801 82.3646 +92.0806 -38.8703 81.7133 +91.0046 -39.0925 82.1804 +89.5061 -39.1257 82.2504 +88.0827 -39.1817 82.368 +86.2508 -39.043 82.0764 +85.0452 -39.1763 82.3567 +83.3678 -39.0819 82.1582 +81.9685 -39.1056 82.208 +80.5746 -39.1218 82.2422 +79.7768 -39.4224 82.874 +77.9987 -39.23 82.4695 +76.8131 -39.3234 82.666 +75.2481 -39.2121 82.432 +74.2598 -39.3925 82.8113 +72.523 -39.1652 82.3333 +71.4167 -39.2663 82.5458 +70.6163 -39.5325 83.1055 +69.2087 -39.4526 82.9376 +68.2262 -39.607 83.2621 +67.0663 -39.6527 83.3581 +65.5614 -39.4829 83.0013 +64.47 -39.5513 83.1449 +63.4941 -39.6852 83.4265 +62.35 -39.7081 83.4745 +60.4371 -39.2239 82.4566 +59.8014 -39.557 83.1569 +58.5657 -39.4898 83.0158 +57.2313 -39.3436 82.7083 +56.2731 -39.4467 82.9251 +55.2121 -39.4721 82.9784 +53.9513 -39.3444 82.7101 +52.75 -39.2476 82.5065 +51.5075 -39.1073 82.2116 +50.9535 -39.4868 83.0093 +49.7199 -39.3365 82.6934 +48.6842 -39.3318 82.6835 +47.3754 -39.0936 82.1828 +46.5794 -39.2697 82.5531 +45.4229 -39.1353 82.2704 +44.5823 -39.2655 82.5441 +43.6538 -39.3148 82.6477 +42.6422 -39.2823 82.5794 +41.6767 -39.2843 82.5836 +40.511 -39.0858 82.1664 +39.835 -39.3544 82.731 +38.9168 -39.3836 82.7924 +37.9239 -39.3295 82.6788 +37.0111 -39.3507 82.7233 +35.7705 -39.0083 82.0036 +35.1917 -39.3816 82.7881 +34.2853 -39.3913 82.8085 +33.4838 -39.5183 83.0756 +32.3793 -39.2779 82.5701 +31.5801 -39.3977 82.8222 +30.5882 -39.2702 82.5541 +29.6965 -39.2608 82.5343 +28.8978 -39.3706 82.7652 +28.0969 -39.4775 82.9898 +27.1235 -39.3342 82.6885 +26.4887 -39.6821 83.4199 +25.5213 -39.5315 83.1034 +24.4843 -39.2523 82.5163 +23.6859 -39.3425 82.7061 +23.031 -39.6799 83.4154 +22.0839 -39.5141 83.0668 +21.0104 -39.0931 82.1818 +20.4103 -39.5478 83.1377 +19.5021 -39.4127 82.8537 +18.5013 -39.0634 82.1193 +17.7643 -39.2578 82.528 +16.9115 -39.1962 82.3985 +16.1146 -39.2581 82.5286 +15.3164 -39.317 82.6524 +14.5171 -39.3729 82.77 +13.7167 -39.4258 82.8812 +12.9988 -39.731 83.5227 +12.1128 -39.5227 83.0848 +11.3095 -39.5666 83.1771 +10.4713 -39.4794 82.9938 +9.70024 -39.6453 83.3426 +8.80822 -39.2953 82.6069 +8.08805 -39.712 83.4828 +7.21824 -39.3982 82.8232 +6.38969 -39.2524 82.5166 +5.64699 -39.6607 83.375 +4.76781 -39.0798 82.1538 +3.97373 -39.0962 82.1883 +3.21075 -39.496 83.0287 +2.38472 -39.12 82.2384 +1.59864 -39.3422 82.7054 +0.801969 -39.4756 82.9858 +4.10783e-15 -39.7348 83.5308 +-0.804587 -39.6045 83.2567 +-1.60911 -39.5999 83.2472 +-2.41351 -39.5924 83.2313 +-3.21773 -39.5818 83.2091 +-4.02171 -39.5682 83.1806 +-4.82538 -39.5517 83.1457 +-5.62868 -39.5321 83.1046 +-6.41062 -39.3809 82.7868 +-7.23393 -39.4839 83.0032 +-8.00961 -39.3269 82.6732 +-8.81781 -39.3381 82.6968 +-9.76296 -39.9016 83.8814 +-10.5053 -39.6075 83.263 +-11.3095 -39.5666 83.1771 +-12.1128 -39.5227 83.0848 +-12.9153 -39.4758 82.9862 +-13.7167 -39.4258 82.8812 +-14.564 -39.5002 83.0376 +-15.3164 -39.317 82.6524 +-16.0104 -39.0043 81.995 +-16.8568 -39.0695 82.1321 +-17.7643 -39.2578 82.528 +-18.6808 -39.4422 82.9157 +-19.6269 -39.6648 83.3837 +-20.2155 -39.1704 82.3442 +-21.1454 -39.3443 82.7098 +-22.0839 -39.5141 83.0668 +-22.8858 -39.4298 82.8896 +-23.6859 -39.3425 82.7061 +-24.7172 -39.6257 83.3013 +-25.5747 -39.6143 83.2774 +-26.5714 -39.806 83.6803 +-27.1519 -39.3754 82.7751 +-28.3601 -39.8472 83.767 +-29.2587 -39.8623 83.7987 +-30.3455 -40.1187 84.3378 +-30.9689 -39.7591 83.5817 +-32.1661 -40.1288 84.3591 +-32.7798 -39.7638 83.5917 +-34.1678 -40.3256 84.7727 +-34.8807 -40.0753 84.2465 +-36.016 -40.3039 84.7271 +-36.9433 -40.2873 84.6922 +-38.0226 -40.4261 84.984 +-38.8041 -40.2423 84.5976 +-40.089 -40.5698 85.2861 +-40.792 -40.2998 84.7185 +-42.0566 -40.577 85.3013 +-42.8793 -40.4178 84.9666 +-43.6987 -40.2555 84.6255 +-44.9023 -40.4391 85.0114 +-46.1166 -40.6168 85.3848 +-47.0739 -40.5577 85.2606 +-48.5316 -40.9155 86.0129 +-49.3609 -40.7321 85.6272 +-50.4682 -40.773 85.7133 +-51.4377 -40.6955 85.5504 +-52.9412 -41.0272 86.2476 +-53.5264 -40.6402 85.4341 +-55.2 -41.0704 86.3385 +-56.0322 -40.862 85.9003 +-57.3237 -40.9817 86.152 +-58.5721 -41.0583 86.313 +-59.8809 -41.165 86.5374 +-60.5537 -40.8303 85.8337 +-62.1978 -41.1422 86.4893 +-63.7487 -41.3731 86.9748 +-65.4815 -41.7024 87.667 +-66.666 -41.6677 87.5942 +-68.1982 -41.8385 87.9531 +-69.0456 -41.5812 87.4123 +-70.4167 -41.6336 87.5224 +-71.7951 -41.6788 87.6175 +-73.3613 -41.8198 87.9139 +-74.5733 -41.7477 87.7622 +-75.9726 -41.7712 87.8116 +-77.6276 -41.9218 88.1283 +-79.4202 -42.13 88.5659 +-80.2731 -41.8307 87.9367 +-82.2768 -42.1205 88.546 +-83.3891 -41.9411 88.1689 +-84.6316 -41.8214 87.9173 +-85.743 -41.6313 87.5176 +-87.1877 -41.5956 87.4426 +-88.3672 -41.4256 87.0851 +-89.8192 -41.3755 86.9798 +-91.7577 -41.5357 87.3167 +-93.8483 -41.7464 87.7595 +-95.5339 -41.7607 87.7895 +-97.6514 -41.9477 88.1827 +-99.1418 -41.851 87.9795 +-101.499 -42.1044 88.5122 +-103.293 -42.1068 88.5171 +-106.046 -42.4797 89.301 +-107.79 -42.4288 89.194 +-110.431 -42.7129 89.7914 +-111.744 -42.4681 89.2767 +-109.357 -40.8358 85.8453 +-97.7882 -35.8769 75.4206 +-99.739 -35.9507 75.5759 +-101.777 -36.04 75.7635 +-103.205 -35.9004 75.47 +-97.9043 -33.4531 70.3253 +-96.7677 -32.4765 68.2724 +-97.9791 -32.2956 67.892 +-97.753 -31.6428 66.5196 +-97.9098 -31.1218 65.4244 +-97.8102 -30.5263 64.1726 +-98.0195 -30.0338 63.1372 +-97.8068 -29.4188 61.8444 +-97.3293 -28.7348 60.4064 +-99.4016 -28.8012 60.546 +-101.234 -28.7831 60.5081 +-103.073 -28.7535 60.4457 +-105.087 -28.7583 60.456 +-107.108 -28.7503 60.4391 +-109.223 -28.7517 60.4421 +-111.775 -28.8501 60.6488 +-113.649 -28.757 60.4531 +-115.528 -28.652 60.2325 +-117.672 -28.5986 60.1202 +-120.26 -28.6354 60.1975 +-139.38 -32.5084 68.3394 +-146.304 -33.4165 70.2484 +-157.267 -35.1677 73.9297 +-195.576 -42.8066 89.9883 +-215.142 -46.0778 96.865 +-209.599 -43.9136 92.3155 +-197.666 -40.5003 85.1399 +-195.128 -39.0861 82.1669 +-194.095 -37.9968 79.8772 +-194.494 -37.1979 78.1976 +-194.692 -36.3646 76.4459 +-194.871 -35.5327 74.6971 +-196.602 -34.9817 73.5387 +-116.454 -20.2113 42.4884 +-111.929 -18.9396 39.8149 +-109.696 -18.0882 38.0252 +-108.935 -17.4958 36.7798 +-108.159 -16.9105 35.5494 +-108.31 -16.4757 34.6354 +-107.978 -15.9712 33.5748 +-108.204 -15.5522 32.694 +-107.945 -15.0663 31.6725 +-108.342 -14.674 30.8479 +-109.306 -14.3553 30.1777 +-108.538 -13.8108 29.033 +-108.911 -13.4152 28.2015 +-109.372 -13.0294 27.3905 +-109.826 -12.6411 26.5743 +-110.369 -12.2612 25.7756 +-111.584 -11.9509 25.1234 +-112.406 -11.5924 24.3696 +-114.488 -11.3542 23.8688 +-15.4255 -1.46901 3.08816 +-57.9063 -5.28727 11.1149 +-15.1888 -1.32744 2.79056 +-17.0803 -1.42619 2.99815 +-15.4371 -1.22903 2.58368 +-17.825 -1.35014 2.83827 +-17.8518 -1.28327 2.69769 +-17.4821 -1.18942 2.50041 +-16.4177 -1.054 2.21572 +-13.3686 -0.807085 1.69666 +-14.376 -0.813009 1.70911 +-13.6971 -0.722444 1.51873 +-14.6055 -0.714836 1.50273 +-13.426 -0.606173 1.2743 +-13.4378 -0.555824 1.16846 +-14.5444 -0.546609 1.14909 +-14.0565 -0.475216 0.999001 +-14.3649 -0.431494 0.90709 +-13.1754 -0.346162 0.727703 +-13.9808 -0.314744 0.661657 +-10.8896 -0.204237 0.429349 +-3274.3 -49.117 103.254 +-3275.18 -36.8411 77.4475 +-3276.2 -24.5653 51.6413 +-3276.58 -12.2831 25.8216 +118.3 6.21725e-15 2.84217e-14 +119.295 -0.438711 0.944129 +119.982 -0.882534 1.89926 +119.059 -1.31379 2.82734 +119.527 -1.75891 3.78528 +119.386 -2.19656 4.7271 +119.336 -2.6355 5.67173 +119.976 -3.09225 6.65468 +119.907 -3.53332 7.6039 +119.829 -3.97413 8.55254 +119.743 -4.41463 9.50051 +119.746 -4.85883 10.4564 +119.84 -5.30783 11.4227 +120.62 -5.79126 12.4631 +120.594 -6.23971 13.4282 +120.361 -6.67746 14.3702 +120.219 -7.1198 15.3222 +120.561 -7.59278 16.3401 +120.103 -8.01604 17.2509 +120.919 -8.52694 18.3504 +120.442 -8.94935 19.2595 +120.154 -9.38424 20.1954 +120.053 -9.83375 21.1627 +120.629 -10.3421 22.2567 +120.312 -10.7765 23.1916 +120.182 -11.2277 24.1625 +120.919 -11.764 25.3167 +120.574 -12.1983 26.2515 +120.899 -12.7025 27.3364 +120.631 -13.1465 28.292 +121.127 -13.6769 29.4334 +120.839 -14.1218 30.3909 +121.311 -14.6586 31.546 +121.003 -15.1041 32.5048 +121.546 -15.6594 33.6998 +121.027 -16.0805 34.606 +121.735 -16.6681 35.8707 +121.385 -17.1152 36.8327 +121.499 -17.6295 37.9396 +121.601 -18.1459 39.051 +121.408 -18.6212 40.0739 +120.831 -19.0375 40.9697 +121.365 -19.6321 42.2493 +121.419 -20.1549 43.3744 +120.07 -20.4428 43.994 +117.148 -20.4481 44.0055 +113.498 -20.3018 43.6906 +110.689 -20.2816 43.647 +108.072 -20.2765 43.636 +105.556 -20.2712 43.6247 +102.141 -20.0709 43.1936 +100.277 -20.1555 43.3756 +98.5078 -20.2464 43.5713 +96.116 -20.1942 43.4589 +97.2088 -20.8721 44.9179 +97.5712 -21.4039 46.0623 +96.8594 -21.7025 46.705 +98.2518 -22.4801 48.3784 +97.4326 -22.7589 48.9783 +96.5224 -23.0126 49.5243 +96.8216 -23.5563 50.6943 +96.3301 -23.9114 51.4586 +96.3456 -24.395 52.4993 +96.6041 -24.9465 53.6862 +96.0838 -25.3008 54.4487 +96.231 -25.8343 55.5968 +96.4471 -26.3938 56.8008 +96.4806 -26.9102 57.9122 +95.8367 -27.2404 58.6228 +96.5876 -27.9737 60.2009 +96.578 -28.497 61.3271 +95.8214 -28.8021 61.9837 +95.6258 -29.2773 63.0062 +95.4982 -29.7782 64.0842 +95.0376 -30.179 64.9468 +95.0437 -30.7325 66.138 +94.9553 -31.2625 67.2785 +95.1652 -31.899 68.6484 +95.045 -32.4334 69.7984 +95.0641 -33.0229 71.0671 +95.0661 -33.615 72.3413 +94.9747 -34.1823 73.5622 +94.9425 -34.7791 74.8464 +94.8178 -35.3503 76.0757 +94.6767 -35.9232 77.3085 +94.9613 -36.6685 78.9126 +95.0028 -37.3325 80.3415 +94.2987 -37.7094 81.1527 +93.73 -38.1426 82.0849 +93.0079 -38.5154 82.8871 +91.2168 -38.4387 82.7222 +89.7164 -38.4722 82.7941 +88.0827 -38.4369 82.7181 +86.2508 -38.3008 82.4253 +85.659 -38.709 83.3037 +83.3678 -38.339 82.5075 +82.5707 -38.6441 83.1641 +80.7734 -38.4728 82.7956 +79.7768 -38.673 83.2264 +78.778 -38.8687 83.6476 +76.8131 -38.5759 83.0174 +76.2022 -38.9545 83.8321 +74.2598 -38.6437 83.1633 +72.523 -38.4207 82.6833 +71.4167 -38.5198 82.8967 +70.6163 -38.781 83.4588 +69.5096 -38.8709 83.6523 +68.4046 -38.9557 83.8347 +67.2426 -39.0012 83.9326 +65.5614 -38.7324 83.3541 +64.47 -38.7994 83.4984 +63.1543 -38.7225 83.3328 +62.6855 -39.1628 84.2805 +60.6027 -38.5837 83.0341 +59.8014 -38.805 83.5105 +58.8343 -38.9169 83.7512 +57.7082 -38.9173 83.7521 +56.4821 -38.8406 83.587 +55.6241 -39.0107 83.9531 +53.9513 -38.5965 83.0618 +52.75 -38.5015 82.8573 +52.1969 -38.8774 83.6662 +50.7111 -38.5519 82.9656 +49.7199 -38.5887 83.045 +49.1067 -38.9189 83.7556 +47.6986 -38.6121 83.0953 +46.5794 -38.5232 82.9041 +45.4229 -38.3913 82.6202 +44.4508 -38.4054 82.6505 +43.6538 -38.5674 82.9991 +42.6422 -38.5355 82.9305 +41.6767 -38.5375 82.9347 +40.877 -38.6893 83.2614 +39.7154 -38.4903 82.8332 +38.9168 -38.6349 83.1444 +38.2301 -38.8934 83.7006 +37.0111 -38.6027 83.075 +36.3203 -38.8549 83.6179 +35.4068 -38.869 83.6481 +34.2853 -38.6425 83.1606 +33.6206 -38.9255 83.7697 +32.3793 -38.5312 82.9212 +31.7103 -38.8082 83.5173 +30.5882 -38.5237 82.9051 +29.8201 -38.6748 83.2303 +28.7174 -38.3811 82.5982 +27.9507 -38.5255 82.909 +27.1519 -38.6269 83.1271 +26.3234 -38.6847 83.2516 +25.4411 -38.6582 83.1945 +24.6396 -38.7503 83.3927 +23.9113 -38.9618 83.8479 +23.1035 -39.0483 84.0339 +22.154 -38.8859 83.6845 +21.2129 -38.7195 83.3265 +20.4103 -38.7961 83.4912 +19.4813 -38.6223 83.1173 +18.6808 -38.6925 83.2683 +18.0505 -39.132 84.2141 +17.0755 -38.824 83.5513 +16.2187 -38.7608 83.4153 +15.3164 -38.5696 83.0038 +14.4702 -38.4996 82.8532 +13.8497 -39.0515 84.0408 +12.9292 -38.7671 83.4288 +12.0084 -38.4371 82.7187 +11.2729 -38.6889 83.2606 +10.5053 -38.8545 83.617 +9.7316 -39.0174 83.9675 +8.80822 -38.5484 82.9581 +8.08805 -38.9571 83.8378 +7.25747 -38.8593 83.6274 +6.45247 -38.8845 83.6816 +5.64699 -38.9068 83.7295 +4.81491 -38.7157 83.3181 +3.99554 -38.5635 82.9907 +3.19679 -38.5767 83.0191 +2.39781 -38.587 83.0413 +1.60388 -38.7208 83.3291 +0.796733 -38.4723 82.7945 +2.9976e-15 -38.8531 83.6139 +-0.804587 -38.8516 83.6107 +-1.60388 -38.7208 83.3291 +-2.40566 -38.7134 83.3132 +-3.20028 -38.6188 83.1097 +-3.9999 -38.6056 83.0813 +-4.82538 -38.7998 83.4992 +-5.62868 -38.7806 83.4579 +-6.41062 -38.6323 83.1388 +-7.26531 -38.9013 83.7177 +-8.03576 -38.7052 83.2957 +-8.95199 -39.1775 84.3122 +-9.70024 -38.8917 83.6969 +-10.5392 -38.9801 83.8873 +-11.2851 -38.7308 83.3507 +-12.152 -38.8967 83.7077 +-12.8874 -38.6419 83.1593 +-13.7611 -38.8014 83.5027 +-14.5171 -38.6245 83.1219 +-15.3164 -38.5696 83.0038 +-16.1493 -38.5948 83.058 +-17.0755 -38.824 83.5513 +-17.7071 -38.3874 82.6118 +-18.6808 -38.6925 83.2683 +-19.5437 -38.746 83.3834 +-20.2804 -38.5492 82.9599 +-21.2129 -38.7195 83.3265 +-22.0372 -38.681 83.2436 +-23.031 -38.9256 83.77 +-23.7611 -38.717 83.3211 +-24.7431 -38.9131 83.7431 +-25.6816 -39.0237 83.9811 +-26.599 -39.0898 84.1234 +-27.5495 -39.1925 84.3444 +-28.3893 -39.13 84.2099 +-29.1685 -38.9839 83.8955 +-30.2837 -39.2759 84.5239 +-31.191 -39.283 84.5391 +-32.2638 -39.4855 84.975 +-33.2472 -39.564 85.1439 +-34.0652 -39.4402 84.8775 +-35.0207 -39.4713 84.9444 +-36.016 -39.5378 85.0874 +-37.1632 -39.7567 85.5585 +-38.135 -39.7748 85.5975 +-38.8041 -39.4773 84.9573 +-39.9718 -39.6822 85.3982 +-40.6724 -39.4178 84.8292 +-41.7312 -39.4977 85.0012 +-43.2525 -39.9946 86.0706 +-44.0791 -39.834 85.725 +-45.4189 -40.1268 86.3551 +-46.2482 -39.9583 85.9924 +-47.0739 -39.7867 85.6231 +-48.6678 -40.2504 86.621 +-49.3609 -39.9578 85.9912 +-50.609 -40.1096 86.318 +-51.5809 -40.033 86.1532 +-52.9412 -40.2473 86.6143 +-53.6742 -39.9777 86.0341 +-55.2 -40.2897 86.7056 +-56.6413 -40.5209 87.2031 +-57.4782 -40.3111 86.7516 +-59.0423 -40.6012 87.3759 +-59.8809 -40.3825 86.9053 +-60.5537 -40.0541 86.1986 +-62.4701 -40.5368 87.2373 +-63.4728 -40.4109 86.9665 +-65.4815 -40.9096 88.0397 +-66.8359 -40.9798 88.1908 +-68.3703 -41.1467 88.5499 +-69.2198 -40.8937 88.0055 +-70.9457 -41.149 88.5549 +-71.9736 -40.9882 88.2087 +-73.9029 -41.3277 88.9394 +-75.1212 -41.255 88.7829 +-77.1424 -41.6081 89.5427 +-78.1878 -41.4218 89.1418 +-79.609 -41.4274 89.154 +-80.8455 -41.3282 88.9404 +-82.2768 -41.3198 88.9224 +-83.3891 -41.1438 88.5437 +-84.894 -41.1537 88.5649 +-85.743 -40.8399 87.8897 +-87.1877 -40.8049 87.8143 +-88.6374 -40.7623 87.7227 +-89.9556 -40.6506 87.4822 +-91.7577 -40.7462 87.6879 +-94.0567 -41.0438 88.3283 +-95.9545 -41.1472 88.5509 +-98.0757 -41.3291 88.9424 +-99.5698 -41.2327 88.7349 +-101.283 -41.2162 88.6995 +-103.656 -41.4514 89.2056 +-105.681 -41.5285 89.3714 +-107.79 -41.6222 89.5732 +-110.208 -41.8164 89.9911 +-112.194 -41.8284 90.0169 +-111.923 -40.9995 88.2331 +-97.7882 -35.1949 75.7413 +-99.8922 -35.3215 76.0138 +-101.623 -35.3013 75.9703 +-103.127 -35.1914 75.7339 +-96.8869 -32.4762 69.8904 +-97.0041 -31.937 68.7301 +-97.9791 -31.6817 68.1807 +-97.9127 -31.0919 66.9115 +-97.8294 -30.5051 65.6486 +-97.6484 -29.8965 64.3389 +-98.1823 -29.5118 63.511 +-97.7248 -28.8354 62.0554 +-97.9886 -28.3795 61.0741 +-99.4016 -28.2537 60.8034 +-101.234 -28.236 60.7653 +-103.156 -28.2298 60.7521 +-105.002 -28.189 60.6643 +-107.024 -28.1815 60.648 +-109.223 -28.2052 60.699 +-111.689 -28.2799 60.8599 +-113.132 -28.082 60.434 +-116.221 -28.2759 60.8513 +-117.759 -28.0757 60.4205 +-120.173 -28.0706 60.4095 +-139.556 -31.9307 68.7165 +-147.541 -33.0583 71.1432 +-158.42 -34.7521 74.7884 +-200.031 -42.9495 92.4296 +-216.037 -45.3898 97.6813 +-210.138 -43.1897 92.9465 +-196.222 -39.4401 84.8772 +-193.678 -38.0581 81.903 +-192.639 -36.9949 79.6151 +-193.854 -36.3708 78.2719 +-195.517 -35.8246 77.0964 +-194.871 -34.8573 75.0147 +-196.694 -34.3328 73.8861 +-117.381 -19.985 43.0087 +-111.929 -18.5796 39.9842 +-110.443 -17.8652 38.4469 +-108.935 -17.1632 36.9362 +-108.065 -16.5746 35.6695 +-108.31 -16.1625 34.7826 +-107.978 -15.6676 33.7175 +-108.109 -15.2432 32.8041 +-108.04 -14.7929 31.8352 +-108.342 -14.3951 30.979 +-108.445 -13.9715 30.0674 +-108.347 -13.5243 29.105 +-108.911 -13.1602 28.3214 +-109.468 -12.793 27.5312 +-109.826 -12.4008 26.6872 +-111.143 -12.1126 26.0669 +-111.681 -11.734 25.2521 +-112.6 -11.3917 24.5155 +-113.514 -11.0435 23.7663 +-113.738 -10.6257 22.867 +-3204.9 -287.067 617.784 +-16.7567 -1.43663 3.09171 +-17.0803 -1.39908 3.0109 +-17.6986 -1.38229 2.97477 +-3226.53 -239.745 515.943 +-15.5833 -1.09891 2.3649 +-18.0747 -1.20636 2.59616 +-16.7144 -1.05265 2.26536 +-3244.42 -192.147 413.51 +-14.376 -0.797554 1.71638 +-15.4837 -0.801149 1.72411 +-14.7049 -0.706018 1.51939 +-14.52 -0.643107 1.384 +-14.9309 -0.605842 1.30381 +-15.3414 -0.565603 1.21721 +-13.6578 -0.452959 0.974791 +-14.9635 -0.440932 0.948909 +-14.6726 -0.37817 0.813842 +-13.9808 -0.308761 0.66447 +-13.7869 -0.253661 0.545892 +-3274.3 -48.1833 103.693 +-3275.18 -36.1407 77.7768 +-3276.2 -24.0983 51.8608 +-3276.58 -12.0496 25.9314 +119.2 7.10543e-15 2.84217e-14 +119.395 -0.430534 0.948842 +119.182 -0.859592 1.89443 +119.059 -1.28822 2.83908 +119.427 -1.72325 3.79782 +119.486 -2.15561 4.7507 +120.135 -2.60151 5.73341 +120.076 -3.0346 6.68787 +119.907 -3.46457 7.63547 +119.829 -3.8968 8.58805 +119.743 -4.32872 9.53996 +119.746 -4.76428 10.4999 +120.636 -5.23908 11.5463 +120.62 -5.67856 12.5148 +120.594 -6.11829 13.4839 +120.361 -6.54752 14.4299 +120.12 -6.97552 15.3732 +120.561 -7.44503 16.4079 +120.893 -7.91178 17.4366 +120.228 -8.31329 18.3214 +120.442 -8.77521 19.3395 +120.154 -9.20163 20.2792 +120.151 -9.65028 21.268 +120.629 -10.1408 22.3491 +120.312 -10.5668 23.2879 +120.28 -11.0181 24.2826 +120.822 -11.5258 25.4013 +120.574 -11.961 26.3605 +120.802 -12.4453 27.4279 +120.534 -12.8804 28.3868 +121.127 -13.4108 29.5557 +120.839 -13.847 30.5171 +120.446 -14.2708 31.4512 +120.14 -14.7046 32.4071 +120.781 -15.258 33.6268 +120.454 -15.693 34.5853 +120.784 -16.2161 35.7383 +121.385 -16.7821 36.9857 +120.743 -17.1788 37.86 +121.601 -17.7928 39.2132 +121.314 -18.2448 40.2091 +121.58 -18.7828 41.3949 +121.459 -19.2649 42.4574 +122.257 -19.899 43.8549 +119.607 -19.9676 44.0061 +117.056 -20.0344 44.1533 +113.498 -19.9068 43.872 +110.781 -19.9034 43.8645 +107.25 -19.7307 43.4839 +104.737 -19.7225 43.466 +102.232 -19.6978 43.4114 +100.277 -19.7633 43.5557 +97.6989 -19.6893 43.3928 +95.6685 -19.709 43.4362 +97.2088 -20.466 45.1044 +97.4825 -20.9683 46.2115 +96.8594 -21.2802 46.8989 +97.9881 -21.9836 48.449 +97.0828 -22.2359 49.0051 +96.5224 -22.5648 49.7299 +96.8216 -23.0979 50.9048 +96.3301 -23.4461 51.6723 +96.4313 -23.9415 52.7641 +96.6041 -24.4611 53.9091 +95.999 -24.7866 54.6265 +96.231 -25.3316 55.8276 +96.4471 -25.8801 57.0366 +96.4806 -26.3866 58.1527 +96.6658 -26.9414 59.3755 +96.0107 -27.2655 60.0898 +95.9227 -27.7529 61.1639 +96.4727 -28.4336 62.6642 +95.7876 -28.7561 63.3749 +95.0159 -29.0513 64.0254 +94.798 -29.5171 65.052 +95.0437 -30.1345 66.4126 +95.0341 -30.6796 67.614 +95.1652 -31.2783 68.9335 +95.045 -31.8023 70.0883 +95.0641 -32.3803 71.3622 +95.0661 -32.9609 72.6417 +94.9747 -33.5172 73.8676 +94.9425 -34.1023 75.1572 +94.8178 -34.6624 76.3915 +95.3455 -35.473 78.178 +94.8876 -35.9271 79.1788 +95.2223 -36.6906 80.8614 +94.879 -37.2032 81.9911 +94.6651 -37.7735 83.248 +92.5086 -37.5631 82.7844 +91.2168 -37.6908 83.0657 +89.7164 -37.7235 83.1379 +88.9163 -38.0456 83.8477 +87.0769 -37.9152 83.5603 +86.0682 -38.137 84.0492 +84.0434 -37.8976 83.5215 +83.2398 -38.1992 84.1862 +81.171 -37.9099 83.5486 +80.1704 -38.1076 83.9843 +79.1677 -38.3009 84.4104 +77.9701 -38.395 84.6178 +76.0113 -38.1008 83.9693 +75.3926 -38.4698 84.7825 +73.4567 -38.1581 84.0956 +72.4634 -38.3238 84.4609 +70.9207 -38.1903 84.1666 +69.2087 -37.9496 83.636 +68.4046 -38.1976 84.1828 +67.5953 -38.4429 84.7233 +66.084 -38.2814 84.3675 +64.7568 -38.2137 84.2181 +63.9473 -38.4457 84.7294 +62.6855 -38.4008 84.6305 +60.7683 -37.9362 83.6066 +60.1281 -38.2578 84.3155 +58.9955 -38.2641 84.3293 +58.1851 -38.4754 84.7949 +56.4821 -38.0848 83.9341 +55.9331 -38.4641 84.7701 +54.4081 -38.1659 84.1128 +53.6 -38.3606 84.5419 +52.1969 -38.1209 84.0136 +51.5353 -38.4161 84.6641 +49.9108 -37.9831 83.71 +49.3415 -38.344 84.5054 +47.8833 -38.0074 83.7634 +47.3058 -38.3627 84.5465 +45.646 -37.8292 83.3708 +44.8454 -37.9923 83.7303 +43.826 -37.9661 83.6726 +42.9803 -38.0852 83.9351 +41.8425 -37.938 83.6105 +40.877 -37.9364 83.6071 +39.835 -37.855 83.4277 +39.034 -37.9972 83.741 +38.1153 -38.022 83.7957 +37.4232 -38.2729 84.3487 +36.3203 -38.0988 83.9651 +35.5143 -38.2283 84.2504 +34.6005 -38.2388 84.2736 +33.5864 -38.1292 84.0319 +32.5128 -37.9372 83.6089 +31.9708 -38.3656 84.5529 +30.6834 -37.8916 83.5084 +30.0674 -38.2366 84.2687 +29.1685 -38.2253 84.2438 +28.4478 -38.4476 84.7337 +27.2939 -38.0733 83.9088 +26.5163 -38.21 84.21 +25.6014 -38.1449 84.0665 +24.8984 -38.3954 84.6186 +23.8362 -38.0837 83.9316 +22.9584 -38.0479 83.8528 +22.154 -38.1292 84.032 +21.2804 -38.0869 83.9386 +20.3453 -37.9201 83.5711 +19.6269 -38.1537 84.0859 +18.7406 -38.061 83.8817 +17.8216 -37.8838 83.4912 +17.0755 -38.0685 83.8982 +16.2882 -38.1693 84.1204 +15.432 -38.1043 83.9772 +14.6266 -38.1585 84.0966 +13.8497 -38.2916 84.3898 +13.0405 -38.34 84.4966 +12.1128 -38.0169 83.7845 +11.3826 -38.3052 84.4198 +10.5053 -38.0985 83.9642 +9.77341 -38.4225 84.6784 +8.92324 -38.2918 84.3903 +8.1142 -38.3225 84.458 +7.281 -38.2267 84.2469 +6.4734 -38.2515 84.3015 +5.6653 -38.2734 84.3498 +4.81491 -37.9623 83.6641 +4.04788 -38.3085 84.427 +3.2282 -38.1977 84.183 +2.42399 -38.2492 84.2964 +1.61958 -38.3391 84.4946 +0.804587 -38.0956 83.9579 +3.66374e-15 -38.5929 85.0538 +-0.800223 -37.889 83.5025 +-1.61958 -38.3391 84.4946 +-2.40566 -37.96 83.6592 +-3.23867 -38.3216 84.456 +-4.01298 -37.9782 83.6991 +-4.90388 -38.6638 85.2101 +-5.61647 -37.9435 83.6227 +-6.53618 -38.6225 85.1192 +-7.22608 -37.9384 83.6114 +-8.17521 -38.6107 85.0931 +-8.98075 -38.5386 84.9342 +-9.80477 -38.5458 84.9502 +-10.5392 -38.2216 84.2356 +-11.4313 -38.4692 84.7813 +-12.1128 -38.0169 83.7845 +-13.0544 -38.3809 84.5867 +-13.8497 -38.2916 84.3898 +-14.6266 -38.1585 84.0966 +-15.465 -38.1859 84.1568 +-16.3924 -38.4135 84.6585 +-17.1848 -38.3123 84.4354 +-18.0696 -38.4111 84.6532 +-18.7007 -37.98 83.7032 +-19.6269 -38.1537 84.0859 +-20.4319 -38.0814 83.9267 +-21.4378 -38.3687 84.5598 +-22.3174 -38.4105 84.6519 +-23.2729 -38.5691 85.0014 +-23.9363 -38.2437 84.2842 +-24.8984 -38.3954 84.6186 +-25.7885 -38.4236 84.6807 +-26.8471 -38.6866 85.2604 +-27.6631 -38.5883 85.0438 +-28.5647 -38.6057 85.082 +-29.5594 -38.7376 85.3729 +-30.5309 -38.8261 85.5678 +-31.4449 -38.8321 85.581 +-32.1661 -38.6 85.0695 +-33.0803 -38.5994 85.0682 +-34.4756 -39.1387 86.2568 +-35.0207 -38.7033 85.2971 +-36.4819 -39.2699 86.5459 +-37.1632 -38.983 85.9137 +-38.2099 -39.0775 86.1218 +-38.9572 -38.8618 85.6465 +-40.4016 -39.3284 86.6749 +-41.2307 -39.1813 86.3506 +-42.4226 -39.3708 86.7684 +-43.3769 -39.3291 86.6765 +-44.5862 -39.5083 87.0713 +-45.2898 -39.2341 86.4671 +-46.8619 -39.7007 87.4953 +-47.4308 -39.3083 86.6306 +-48.9402 -39.688 87.4675 +-49.638 -39.4001 86.8329 +-51.1255 -39.7304 87.5608 +-52.1057 -39.6535 87.3912 +-53.523 -39.8977 87.9296 +-54.2158 -39.5954 87.2632 +-55.5 -39.7204 87.5388 +-56.6413 -39.7324 87.5652 +-58.0448 -39.9163 87.9704 +-58.8856 -39.7054 87.5057 +-60.3578 -39.9121 87.9612 +-61.1984 -39.6929 87.4782 +-62.9058 -40.0252 88.2105 +-64.3007 -40.1414 88.4666 +-66.488 -40.7302 89.7642 +-67.3457 -40.4889 89.2324 +-68.8865 -40.6507 89.589 +-70.0908 -40.6025 89.4829 +-71.4747 -40.6491 89.5856 +-72.6873 -40.5892 89.4534 +-74.264 -40.7215 89.7451 +-75.1212 -40.4522 89.1515 +-77.8812 -41.1892 90.7757 +-78.5613 -40.8097 89.9395 +-80.1754 -40.9103 90.161 +-81.2272 -40.7153 89.7313 +-83.4981 -41.1172 90.6171 +-83.9736 -40.626 89.5346 +-86.0093 -40.883 90.1009 +-86.737 -40.5094 89.2776 +-88.1245 -40.4408 89.1264 +-89.1103 -40.1824 88.557 +-91.7288 -40.6453 89.5771 +-92.5837 -40.313 88.8447 +-95.3071 -40.7801 89.8742 +-96.7956 -40.7001 89.698 +-98.9242 -40.8755 90.0844 +-100.426 -40.7779 89.8693 +-102.794 -41.017 90.3963 +-104.164 -40.8438 90.0147 +-107.363 -41.3683 91.1706 +-109.117 -41.3148 91.0526 +-112.289 -41.777 92.0712 +-112.418 -41.0966 90.5717 +-113.508 -40.771 89.8541 +-98.4726 -34.7515 76.588 +-98.5133 -34.1561 75.2758 +-101.623 -34.6144 76.2857 +-97.765 -32.7124 72.094 +-96.8869 -31.8442 70.1806 +-97.5557 -31.4936 69.408 +-97.8205 -31.0149 68.3529 +-97.753 -30.4372 67.0798 +-97.8294 -29.9115 65.9212 +-97.5674 -29.2905 64.5525 +-98.4266 -29.0095 63.9333 +-98.1344 -28.3928 62.5742 +-97.7414 -27.757 61.173 +-99.4016 -27.7039 61.0559 +-101.234 -27.6865 61.0176 +-103.073 -27.658 60.9547 +-105.087 -27.6627 60.9651 +-107.108 -27.655 60.9481 +-109.223 -27.6563 60.9511 +-110.66 -27.4742 60.5498 +-113.39 -27.5984 60.8235 +-115.874 -27.6431 60.9218 +-117.759 -27.5294 60.6713 +-119.561 -27.3842 60.3513 +-137.886 -30.9347 68.1762 +-153.721 -33.7729 74.4312 +-163.476 -35.1634 77.4958 +-212.861 -44.8148 98.7662 +-215.142 -44.3223 97.6808 +-199.802 -40.2663 88.7418 +-195.59 -38.5482 84.9553 +-194.675 -37.5096 82.6665 +-193.549 -36.4464 80.3233 +-194.037 -35.6967 78.671 +-194.325 -34.9133 76.9445 +-194.411 -34.0982 75.1482 +-196.14 -33.5699 73.9838 +-118.494 -19.7818 43.5966 +-112.208 -18.2634 40.2503 +-109.509 -17.3695 38.2802 +-108.935 -16.8293 37.0896 +-108.065 -16.2521 35.8176 +-108.215 -15.8342 34.8967 +-107.978 -15.3627 33.8575 +-108.204 -14.9597 32.9693 +-107.945 -14.4923 31.9393 +-109.105 -14.2144 31.3267 +-109.019 -13.7721 30.352 +-108.347 -13.2611 29.2258 +-109.199 -12.9383 28.5143 +-109.565 -12.5551 27.6698 +-109.826 -12.1595 26.7981 +-110.272 -11.7838 25.9699 +-111.681 -11.5056 25.357 +-112.503 -11.1604 24.596 +-114.683 -10.9402 24.1108 +-114.617 -10.4994 23.1394 +-3204.9 -281.481 620.349 +-17.2467 -1.44987 3.19533 +-17.2766 -1.38762 3.05815 +-17.6003 -1.34787 2.97053 +-3226.53 -235.079 518.085 +-3231.37 -223.436 492.424 +-17.7784 -1.1635 2.5642 +-17.3078 -1.06881 2.35552 +-3244.81 -188.431 415.278 +-15.07 -0.819788 1.80671 +-3251.88 -164.983 363.601 +-15.1023 -0.710989 1.56693 +-13.426 -0.583079 1.28503 +-16.424 -0.653455 1.44013 +-10.0616 -0.363729 0.801612 +-14.9538 -0.486291 1.07172 +-11.871 -0.342998 0.755924 +-14.6726 -0.370811 0.817221 +-11.9836 -0.259502 0.57191 +-3273.18 -59.0504 130.14 +-3274.3 -47.2457 104.124 +-3275.58 -35.4418 78.1093 +-3276.2 -23.6294 52.0762 +-3276.58 -11.8151 26.039 +119.3 4.44089e-15 0 +119.295 -0.421602 0.951892 +119.082 -0.841754 1.90051 +119.859 -1.27103 2.86974 +119.527 -1.69032 3.8164 +119.486 -2.11266 4.76996 +120.135 -2.54967 5.75665 +119.976 -2.97165 6.70939 +119.907 -3.39553 7.66642 +119.829 -3.81915 8.62286 +119.842 -4.24599 9.58659 +119.746 -4.66934 10.5424 +119.84 -5.10083 11.5166 +119.725 -5.52414 12.4724 +120.594 -5.99637 13.5386 +120.361 -6.41705 14.4884 +120.12 -6.83652 15.4355 +120.561 -7.29668 16.4744 +120.103 -7.70343 17.3928 +120.13 -8.14095 18.3806 +120.54 -8.60735 19.4337 +121.039 -9.08468 20.5114 +120.053 -9.45025 21.3368 +120.629 -9.93876 22.4397 +120.312 -10.3562 23.3823 +120.28 -10.7986 24.381 +119.945 -11.2141 25.3192 +120.574 -11.7226 26.4673 +120.899 -12.2071 27.5612 +120.631 -12.6338 28.5247 +121.031 -13.133 29.6518 +120.839 -13.5711 30.6408 +121.407 -14.0981 31.8306 +120.907 -14.5036 32.7462 +120.877 -14.9658 33.7899 +121.217 -15.4777 34.9455 +120.784 -15.893 35.8831 +121.48 -16.4605 37.1646 +121.499 -16.942 38.2515 +120.847 -17.3301 39.1279 +121.408 -17.895 40.4034 +120.831 -18.2951 41.3066 +121.552 -18.8955 42.6623 +121.513 -19.3837 43.7646 +119.978 -19.6304 44.3214 +116.132 -19.4802 43.9824 +112.67 -19.3677 43.7284 +110.781 -19.5068 44.0424 +107.25 -19.3375 43.6602 +104.737 -19.3295 43.6422 +102.141 -19.2882 43.5488 +99.3746 -19.1951 43.3387 +96.9799 -19.155 43.2481 +96.2054 -19.4247 43.8571 +97.2088 -20.0581 45.2872 +97.4825 -20.5505 46.3989 +96.6828 -20.8181 47.0031 +97.2851 -21.3909 48.2964 +97.5201 -21.891 49.4254 +96.5224 -22.1151 49.9315 +96.8216 -22.6376 51.1111 +96.3301 -22.9789 51.8817 +96.4313 -23.4645 52.978 +96.6041 -23.9736 54.1276 +96.7623 -24.4858 55.284 +96.231 -24.8268 56.0539 +96.531 -25.3865 57.3176 +96.4806 -25.8608 58.3884 +96.6658 -26.4046 59.6162 +96.7524 -26.9287 60.7995 +96.0046 -27.2231 61.4643 +96.4727 -27.8671 62.9182 +95.9494 -28.2307 63.7393 +95.0159 -28.4724 64.2849 +95.8363 -29.2458 66.031 +94.3297 -29.3121 66.1809 +95.0341 -30.0682 67.888 +95.0869 -30.6298 69.1559 +95.045 -31.1686 70.3724 +94.987 -31.7093 71.5933 +95.0661 -32.3041 72.9361 +95.0507 -32.8755 74.2264 +94.9425 -33.4227 75.4618 +94.8927 -33.9985 76.7618 +94.8253 -34.5764 78.0666 +94.6664 -35.1291 79.3144 +94.8566 -35.8214 80.8774 +95.6769 -36.7685 83.0158 +95.0967 -37.1896 83.9666 +93.5071 -37.212 84.0172 +93.2674 -37.7701 85.2773 +91.0481 -37.5206 84.7139 +89.8193 -37.6661 85.0425 +87.4899 -37.3359 84.2969 +86.8866 -37.7325 85.1924 +84.6515 -37.4111 84.4668 +84.645 -38.07 85.9543 +82.4299 -37.7307 85.1884 +81.8106 -38.1123 86.0499 +79.3626 -37.6301 84.9612 +78.3558 -37.8161 85.381 +76.7746 -37.7166 85.1564 +76.5254 -38.2697 86.4052 +74.2037 -37.778 85.2952 +73.7562 -38.2303 86.3163 +71.9556 -37.9754 85.7409 +70.8336 -38.0666 85.9466 +68.4046 -37.4365 84.524 +68.6533 -38.2665 86.3981 +66.6066 -37.8153 85.3794 +66.2481 -38.3147 86.5068 +64.1172 -37.7797 85.299 +64.1394 -38.5085 86.9444 +61.8721 -37.8557 85.4704 +61.9799 -38.6502 87.2645 +59.4253 -37.7749 85.288 +59.4039 -38.4986 86.922 +57.6316 -38.0855 85.9894 +57.2722 -38.6001 87.1514 +55.1187 -37.8938 85.5567 +54.5 -38.2275 86.31 +52.5908 -37.6432 84.9908 +52.214 -38.1464 86.1268 +50.9606 -38.0092 85.8171 +50.3274 -38.3308 86.5433 +48.8068 -37.9684 85.725 +48.2592 -38.356 86.6 +46.4938 -37.764 85.2634 +45.8536 -38.0724 85.9599 +44.0413 -37.3923 84.4244 +43.6565 -37.9136 85.6012 +42.1743 -37.4768 84.6151 +41.7312 -37.9574 85.7001 +40.4332 -37.6578 85.0236 +39.542 -37.7247 85.1747 +38.5745 -37.7133 85.1491 +37.9102 -37.9984 85.7927 +36.5035 -37.528 84.7308 +35.9443 -37.9203 85.6163 +34.7056 -37.5907 84.8721 +33.9968 -37.826 85.4035 +32.8132 -37.5248 84.7235 +32.1661 -37.8308 85.4143 +31.191 -37.751 85.2342 +30.5309 -38.0524 85.9146 +29.2887 -37.6181 84.9341 +28.6524 -37.9526 85.6892 +27.6631 -37.8194 85.3885 +27.0952 -38.2661 86.397 +25.7885 -37.6579 85.024 +25.209 -38.0997 86.0214 +24.0866 -37.7168 85.157 +23.418 -38.0363 85.8782 +22.2473 -37.5269 84.7283 +21.7753 -38.196 86.2389 +20.6267 -37.6784 85.0703 +20.0011 -38.1064 86.0366 +18.9998 -37.8185 85.3865 +18.3558 -38.242 86.3426 +17.2577 -37.7081 85.1373 +16.6008 -38.1266 86.0821 +15.564 -37.6646 85.039 +14.8926 -38.0781 85.9727 +13.9384 -37.7688 85.2744 +13.1797 -37.9771 85.7446 +12.3086 -37.8616 85.4839 +11.541 -38.0644 85.9418 +10.6185 -37.7416 85.213 +9.95111 -38.3416 86.5676 +8.99033 -37.811 85.3695 +8.21879 -38.043 85.8934 +7.32808 -37.7072 85.1353 +6.54316 -37.8933 85.5554 +5.72635 -37.9149 85.6043 +4.95622 -38.2977 86.4685 +4.05224 -37.5855 84.8606 +3.27357 -37.9627 85.7121 +2.44493 -37.8109 85.3693 +1.64576 -38.1825 86.2083 +0.810695 -37.6199 84.9382 +3.66374e-15 -37.9858 85.7643 +-0.815058 -37.8224 85.3953 +-1.64576 -38.1825 86.2083 +-2.43184 -37.6085 84.9123 +-3.29102 -38.1651 86.169 +-4.0915 -37.9497 85.6827 +-4.90911 -37.9338 85.6468 +-5.72025 -37.8745 85.5131 +-6.64082 -38.4589 86.8323 +-7.39869 -38.0706 85.9557 +-8.2798 -38.3254 86.531 +-9.04784 -38.0528 85.9155 +-9.89885 -38.1402 86.1129 +-10.6864 -37.9831 85.7581 +-11.6141 -38.3056 86.4863 +-12.3217 -37.9017 85.5745 +-13.3467 -38.4583 86.8311 +-13.9976 -37.929 85.6361 +-14.8613 -37.9981 85.7921 +-15.63 -37.8243 85.3997 +-16.5487 -38.007 85.812 +-17.2577 -37.7081 85.1373 +-18.2986 -38.1227 86.0734 +-18.9998 -37.8185 85.3865 +-19.9387 -37.9876 85.7683 +-20.8215 -38.0343 85.8738 +-21.7753 -38.196 86.2389 +-22.4574 -37.8813 85.5284 +-23.6358 -38.3899 86.6767 +-24.2368 -37.9521 85.6882 +-25.3643 -38.3344 86.5513 +-26.1894 -38.2433 86.3456 +-27.233 -38.4607 86.8366 +-27.8335 -38.0524 85.9145 +-29.1495 -38.6109 87.1757 +-29.7097 -38.1588 86.1549 +-30.9017 -38.5146 86.9582 +-31.7305 -38.4039 86.7083 +-32.7522 -38.52 86.9705 +-33.6811 -38.5173 86.9644 +-34.8177 -38.7393 87.4656 +-35.8262 -38.8045 87.6127 +-36.8761 -38.9032 87.8356 +-37.3831 -38.4323 86.7725 +-39.0715 -39.1624 88.4207 +-39.9139 -39.0228 88.1056 +-41.1049 -39.2157 88.5412 +-41.5895 -38.7348 87.4553 +-43.2361 -39.3262 88.7907 +-43.8331 -38.9508 87.9431 +-45.1779 -39.2349 88.5844 +-45.8925 -38.9641 87.973 +-47.5194 -39.4556 89.0827 +-47.9663 -38.9599 87.9636 +-49.712 -39.5106 89.207 +-50.4229 -39.2257 88.5636 +-52.1113 -39.6896 89.6111 +-52.5352 -39.1836 88.4687 +-54.2017 -39.5986 89.4056 +-55.2007 -39.5113 89.2085 +-56.95 -39.946 90.19 +-57.3518 -39.4292 89.0231 +-59.5899 -40.1622 90.6782 +-59.7738 -39.5012 89.1857 +-61.7356 -40.0097 90.3338 +-62.3268 -39.6192 89.4522 +-64.5942 -40.2805 90.9452 +-65.4597 -40.0507 90.4264 +-67.4946 -40.5229 91.4926 +-67.8555 -39.9824 90.2722 +-69.919 -40.4377 91.3002 +-70.7877 -40.1891 90.7389 +-72.3564 -40.3306 91.0583 +-73.4011 -40.171 90.698 +-75.7685 -40.7185 91.9342 +-76.6431 -40.4493 91.3264 +-78.8047 -40.8469 92.2241 +-79.1216 -40.2818 90.9481 +-81.5599 -40.7874 92.0897 +-82.4357 -40.4978 91.4359 +-84.4623 -40.7631 92.0348 +-85.3375 -40.4631 91.3576 +-86.731 -40.4045 91.2253 +-87.2671 -39.9448 90.1874 +-89.7973 -40.3873 91.1863 +-90.3264 -39.9191 90.1293 +-92.9564 -40.3684 91.1438 +-93.6162 -39.9503 90.1996 +-96.7659 -40.5792 91.6197 +-97.4264 -40.1491 90.6485 +-100.833 -40.8339 92.1948 +-101.282 -40.3059 91.0026 +-104.088 -40.706 91.9059 +-105.252 -40.4481 91.3236 +-108.679 -41.0413 92.6629 +-110.665 -41.066 92.7187 +-113.181 -41.2697 93.1786 +-113.467 -40.6533 91.787 +-115.546 -40.676 91.8382 +-98.0924 -33.9276 76.6016 +-98.3601 -33.4234 75.4634 +-100.928 -33.6928 76.0715 +-96.9878 -31.8057 71.8109 +-97.5912 -31.4365 70.9774 +-97.6345 -30.891 69.7457 +-97.8205 -30.3969 68.63 +-97.9127 -29.8794 67.4617 +-97.8294 -29.3155 66.1884 +-97.6484 -28.7306 64.8679 +-97.7753 -28.2433 63.7677 +-97.8887 -27.7573 62.6705 +-98.071 -27.2956 61.6281 +-98.7384 -26.9707 60.8944 +-101.234 -27.1348 61.265 +-102.402 -26.9304 60.8034 +-105.087 -27.1115 61.2122 +-106.345 -26.9108 60.7591 +-108.285 -26.8725 60.6726 +-110.403 -26.8642 60.6539 +-113.304 -27.028 61.0237 +-115.701 -27.0517 61.0774 +-117.237 -26.8612 60.6472 +-119.561 -26.8385 60.596 +-132.35 -29.1009 65.704 +-162.816 -35.0582 79.1542 +-183.611 -38.7075 87.3937 +-215.534 -44.4734 100.412 +-215.321 -43.4751 98.1581 +-196.117 -38.7361 87.4582 +-193.514 -37.379 84.3943 +-194.222 -36.6766 82.8084 +-194.459 -35.8881 81.028 +-194.22 -35.0183 79.0643 +-194.784 -34.2983 77.4387 +-194.687 -33.4662 75.56 +-194.846 -32.684 73.7938 +-119.885 -19.6152 44.2871 +-112.208 -17.8995 40.4135 +-110.162 -17.125 38.6647 +-108.935 -16.4939 37.2399 +-108.065 -15.9282 35.9628 +-108.121 -15.5052 35.0076 +-107.884 -15.0434 33.965 +-108.393 -14.6873 33.1609 +-107.85 -14.191 32.0405 +-108.533 -13.8581 31.2887 +-108.254 -13.403 30.2612 +-108.73 -13.0429 29.4482 +-108.719 -12.6247 28.5039 +-109.372 -12.2833 27.7331 +-109.922 -11.9277 26.9304 +-110.466 -11.5692 26.121 +-111.681 -11.2764 25.4597 +-112.698 -10.9569 24.7384 +-113.709 -10.6311 24.0029 +-116.082 -10.4217 23.5301 +-117.769 -10.1374 22.8881 +-3210.72 -264.536 597.268 +-3216.11 -253.164 571.593 +-3221.44 -241.788 545.909 +-15.56 -1.11108 2.5086 +-3231.37 -218.983 494.42 +-17.4821 -1.12131 2.53168 +-16.6155 -1.00561 2.27047 +-3244.81 -184.676 416.961 +-3248.67 -173.202 391.055 +-3251.88 -161.695 365.075 +-3255.24 -150.197 339.115 +-3258.75 -138.704 313.166 +-12.9402 -0.504584 1.13925 +-13.7475 -0.487073 1.09971 +-10.3679 -0.330442 0.746072 +-3268.32 -92.5522 208.964 +-14.1735 -0.351061 0.792624 +-3271.81 -69.4387 156.779 +-3273.18 -57.8737 130.667 +-3274.7 -46.3099 104.558 +-3275.58 -34.7356 78.4259 +-3276.2 -23.1585 52.2872 +-3276.58 -11.5797 26.1446 +119.3 4.44089e-15 0 +119.195 -0.412647 0.95485 +119.082 -0.824571 1.90803 +119.159 -1.23782 2.86427 +120.327 -1.66689 3.85713 +119.386 -2.0678 4.78483 +120.135 -2.49763 5.77942 +119.976 -2.91099 6.73593 +120.805 -3.35112 7.75438 +119.829 -3.74118 8.65697 +120.041 -4.16626 9.64057 +119.846 -4.57783 10.5929 +119.939 -5.00083 11.5718 +120.62 -5.4518 12.6153 +120.594 -5.87397 13.5922 +120.461 -6.29122 14.5577 +120.219 -6.70247 15.5093 +120.561 -7.14773 16.5396 +120.103 -7.54617 17.4616 +120.327 -7.98786 18.4836 +119.753 -8.37654 19.383 +120.252 -8.8414 20.4587 +120.053 -9.25734 21.4212 +120.727 -9.74377 22.5467 +120.41 -10.1531 23.4939 +120.182 -10.5695 24.4575 +120.822 -11.0655 25.6052 +120.477 -11.4741 26.5507 +120.802 -11.9483 27.648 +120.534 -12.366 28.6146 +120.934 -12.8547 29.7453 +120.839 -13.2941 30.762 +120.542 -13.7119 31.7288 +120.907 -14.2075 32.8757 +120.973 -14.6719 33.9503 +121.122 -15.1498 35.0561 +121.64 -15.6789 36.2804 +121.385 -16.1119 37.2825 +121.405 -16.5832 38.373 +121.035 -17.0029 39.344 +121.596 -17.5569 40.626 +120.924 -17.9355 41.5021 +121.646 -18.524 42.8639 +121.606 -19.0026 43.9713 +118.958 -19.0662 44.1184 +115.947 -19.0522 44.0861 +112.67 -18.9723 43.9014 +109.864 -18.9504 43.8505 +107.342 -18.9589 43.8702 +104.009 -18.8033 43.5102 +101.416 -18.7603 43.4107 +99.4649 -18.8203 43.5496 +97.1596 -18.7987 43.4997 +96.2054 -19.0282 44.0306 +97.2088 -19.6487 45.4664 +97.5712 -20.1493 46.6247 +97.4774 -20.5608 47.577 +96.7578 -20.8407 48.2246 +96.2082 -21.1556 48.9534 +96.5224 -21.6637 50.129 +96.735 -22.1557 51.2674 +96.3301 -22.5098 52.087 +96.4313 -22.9855 53.1876 +96.6894 -23.505 54.3896 +96.0838 -23.8178 55.1135 +96.231 -24.32 56.2757 +96.531 -24.8683 57.5444 +96.564 -25.3548 58.67 +96.0026 -25.6881 59.4413 +96.0931 -26.1992 60.6241 +96.1684 -26.7129 61.8127 +96.7169 -27.3673 63.327 +96.1921 -27.7244 64.1533 +95.4178 -28.0092 64.8122 +95.5967 -28.5771 66.1265 +95.5197 -29.076 67.281 +94.6401 -29.3323 67.8739 +95.0086 -29.9799 69.3724 +94.4232 -30.3326 70.1886 +94.4468 -30.8854 71.4678 +94.9895 -31.6192 73.1657 +95.0507 -32.2044 74.52 +94.9425 -32.7405 75.7603 +94.8927 -33.3045 77.0655 +94.8253 -33.8706 78.3755 +94.5927 -34.3852 79.5661 +95.2223 -35.2254 81.5103 +95.024 -35.7721 82.7755 +95.4564 -36.5682 84.6176 +94.2917 -36.7582 85.0573 +94.328 -37.4199 86.5883 +92.52 -37.3489 86.424 +91.6949 -37.6678 87.1619 +90.0368 -37.6384 87.094 +89.2054 -37.9487 87.812 +86.8133 -37.5833 86.9665 +86.3848 -38.0593 88.068 +83.8877 -37.6142 87.0379 +83.5163 -38.1127 88.1915 +81.3758 -37.7971 87.4611 +81.1198 -38.3508 88.7425 +79.1281 -38.0792 88.114 +78.665 -38.5366 89.1725 +75.6978 -37.752 87.3568 +76.4036 -38.7941 89.7681 +73.4775 -37.987 87.9006 +72.8196 -38.335 88.7059 +70.3675 -37.7246 87.2935 +70.0052 -38.2235 88.4479 +68.3487 -38.0123 87.9591 +67.8541 -38.4424 88.9545 +65.7031 -37.9239 87.7546 +65.6492 -38.6104 89.343 +63.4728 -38.0422 88.0284 +63.1781 -38.5932 89.3034 +61.1447 -38.0744 88.1028 +60.9407 -38.6883 89.5234 +59.4603 -38.4919 89.069 +58.3538 -38.5263 89.1485 +56.8951 -38.3166 88.6634 +56.45 -38.787 89.7518 +53.9204 -37.807 87.4841 +54.1048 -38.7209 89.5988 +51.8672 -37.8957 87.6892 +51.8297 -38.6692 89.4792 +49.915 -38.0379 88.0183 +49.3488 -38.4213 88.9055 +47.4308 -37.7386 87.3258 +46.9934 -38.2223 88.445 +45.1606 -37.56 86.9125 +44.5862 -37.9306 87.7701 +43.0037 -37.4337 86.6204 +42.6667 -38.0161 87.9678 +40.9117 -37.3256 86.3702 +40.8705 -38.1961 88.3845 +39.0337 -37.3832 86.5035 +38.8467 -38.1422 88.2598 +37.1999 -37.4633 86.6887 +36.8761 -38.1091 88.1831 +35.1258 -37.2692 86.2396 +34.7834 -37.9112 87.7253 +33.4808 -37.5067 86.7892 +33.208 -38.2588 88.5296 +31.5401 -37.3942 86.529 +31.2725 -38.1811 88.3497 +29.7999 -37.4934 86.7584 +29.3249 -38.0504 88.0472 +28.0607 -37.5799 86.9586 +27.6464 -38.2476 88.5036 +26.1894 -37.4626 86.6872 +25.5713 -37.8584 87.603 +24.5372 -37.6382 87.0936 +24.047 -38.2606 88.5338 +22.9477 -37.9181 87.7412 +22.0902 -37.9574 87.8322 +21.0812 -37.7226 87.2888 +20.3546 -37.9882 87.9034 +19.3586 -37.7462 87.3435 +18.6993 -38.1623 88.3062 +17.5857 -37.6405 87.0987 +17.0175 -38.2859 88.5923 +15.9271 -37.7565 87.3672 +15.1898 -38.0453 88.0354 +14.2636 -37.861 87.609 +13.5137 -38.1446 88.2653 +12.4783 -37.6 87.0051 +11.8701 -38.3505 88.7418 +10.8222 -37.6807 87.1918 +10.087 -38.0718 88.0968 +9.16285 -37.7499 87.3519 +8.38438 -38.0172 87.9706 +7.43008 -37.4516 86.6618 +6.71057 -38.0695 88.0916 +5.83624 -37.8537 87.5922 +5.03472 -38.1102 88.1857 +4.17001 -37.8884 87.6724 +3.35733 -38.1392 88.2529 +2.4711 -37.4356 86.6247 +1.68939 -38.3947 88.8439 +0.826403 -37.566 86.9264 +3.33067e-15 -38.1625 88.3067 +-0.826403 -37.566 86.9264 +-1.69463 -38.5136 89.1192 +-2.47896 -37.5545 86.8999 +-3.3678 -38.2582 88.5281 +-4.15257 -37.7298 87.3055 +-5.03472 -38.1102 88.1857 +-5.7813 -37.4974 86.7676 +-6.77335 -38.4257 88.9157 +-7.47715 -37.6889 87.2108 +-8.51512 -38.61 89.3423 +-9.19161 -37.8683 87.626 +-10.1497 -38.3085 88.6446 +-10.8562 -37.7989 87.4654 +-11.8701 -38.3505 88.7418 +-12.6349 -38.072 88.0973 +-13.5972 -38.3803 88.8108 +-14.2636 -37.861 87.609 +-15.2836 -38.2804 88.5795 +-15.8281 -37.5217 86.824 +-17.1043 -38.4813 89.0443 +-17.6404 -37.7575 87.3695 +-18.7374 -38.2402 88.4864 +-19.2988 -37.6296 87.0736 +-20.4169 -38.1046 88.1727 +-21.1462 -37.8388 87.5577 +-22.3601 -38.4213 88.9055 +-22.8076 -37.6866 87.2056 +-24.2648 -38.6071 89.3354 +-24.5873 -37.715 87.2713 +-25.9596 -38.4332 88.9331 +-26.5635 -37.9978 87.9256 +-27.8945 -38.5908 89.2978 +-28.4867 -38.1504 88.2787 +-29.8219 -38.6953 89.5396 +-30.1608 -37.9474 87.8089 +-31.5197 -38.4829 89.0482 +-32.2064 -38.1843 88.3571 +-33.501 -38.5964 89.3108 +-34.1484 -38.2546 88.5198 +-35.5701 -38.7686 89.7093 +-36.3165 -38.5326 89.163 +-37.8795 -39.1461 90.5827 +-38.5559 -38.8289 89.8487 +-39.5959 -38.8778 89.962 +-40.6792 -38.9592 90.1503 +-42.238 -39.4742 91.3419 +-42.5067 -38.7808 89.7374 +-44.0903 -39.2845 90.9029 +-44.5795 -38.8054 89.7945 +-46.4035 -39.4766 91.3475 +-46.6674 -38.8131 89.8123 +-48.6592 -39.5771 91.5802 +-49.1264 -39.0877 90.4476 +-50.7561 -39.517 91.441 +-51.2541 -39.0583 90.3796 +-53.4728 -39.8953 92.3163 +-53.7758 -39.2902 90.9161 +-55.4622 -39.6921 91.8463 +-56.087 -39.3262 90.9995 +-58.1 -39.9206 92.375 +-58.5699 -39.4446 91.2735 +-60.929 -40.2265 93.0827 +-61.1846 -39.6081 91.6518 +-63.0074 -40.0004 92.5595 +-63.7237 -39.6802 91.8187 +-66.2281 -40.4562 93.6142 +-66.6188 -39.9278 92.3915 +-68.8366 -40.4852 93.6812 +-69.3848 -40.0488 92.6715 +-71.525 -40.522 93.7666 +-72.2394 -40.1761 92.9662 +-74.7075 -40.791 94.389 +-75.0666 -40.244 93.1231 +-77.6341 -40.8696 94.5707 +-78.1041 -40.3788 93.4352 +-80.7132 -40.9822 94.8314 +-81.2382 -40.5149 93.7501 +-83.0703 -40.6946 94.1659 +-83.7715 -40.3138 93.2847 +-86.2621 -40.7819 94.3679 +-85.857 -39.8786 92.2777 +-88.6336 -40.4479 93.595 +-88.5923 -39.7235 91.9188 +-92.4069 -40.7125 94.2072 +-92.691 -40.1277 92.8542 +-94.7978 -40.3277 93.3168 +-95.4748 -39.9115 92.3539 +-98.4331 -40.4356 93.5665 +-99.7394 -40.2634 93.1681 +-102.955 -40.8422 94.5074 +-103.635 -40.4007 93.4857 +-106.966 -40.9775 94.8204 +-107.573 -40.4963 93.7069 +-111.385 -41.2044 95.3455 +-112.73 -40.9782 94.8223 +-115.559 -41.2766 95.5126 +-116.163 -40.7696 94.3394 +-119.32 -41.1468 95.2124 +-100.982 -34.214 79.17 +-97.5175 -32.4607 75.1129 +-98.2278 -32.1219 74.3289 +-97.4541 -31.3062 72.4416 +-97.5912 -30.7948 71.2581 +-97.7133 -30.2848 70.078 +-97.8205 -29.7764 68.9015 +-97.753 -29.2217 67.6181 +-97.8294 -28.717 66.4502 +-97.8911 -28.2141 65.2863 +-98.5894 -27.8971 64.553 +-98.544 -27.3727 63.3396 +-98.2358 -26.7834 61.9759 +-98.8213 -26.4423 61.1866 +-100.567 -26.4057 61.102 +-102.486 -26.4023 61.094 +-104.496 -26.4088 61.1091 +-106.345 -26.3614 60.9994 +-108.371 -26.3446 60.9606 +-110.317 -26.2954 60.8466 +-112.443 -26.2749 60.7992 +-115.008 -26.3408 60.9518 +-117.585 -26.391 61.0678 +-118.686 -26.0983 60.3906 +-126.11 -27.1629 62.8541 +-209.435 -44.176 102.222 +-213.237 -44.0352 101.896 +-205.912 -41.6205 96.3084 +-199.839 -39.5255 91.4607 +-193.78 -37.4932 86.7579 +-193.875 -36.6843 84.8862 +-195.4 -36.1459 83.6403 +-194.186 -35.1061 81.2343 +-194.037 -34.2712 79.3024 +-195.884 -33.788 78.1843 +-194.411 -32.7366 75.7513 +-195.955 -32.199 74.5073 +-124.335 -19.9281 46.1129 +-111.929 -17.4905 40.4724 +-110.629 -16.8465 38.9822 +-109.497 -16.2406 37.5801 +-108.91 -15.7252 36.3876 +-108.781 -15.2814 35.3606 +-107.695 -14.7105 34.0396 +-107.54 -14.2742 33.0299 +-108.135 -13.9381 32.2523 +-109.105 -13.6467 31.5781 +-109.019 -13.2221 30.5956 +-109.497 -12.8668 29.7733 +-109.007 -12.3998 28.6926 +-109.565 -12.0537 27.8919 +-109.246 -11.6123 26.8706 +-109.885 -11.2734 26.0864 +-111.196 -10.9982 25.4494 +-111.823 -10.6499 24.6434 +-114.001 -10.4408 24.1598 +-115.789 -10.1832 23.5635 +-118.551 -9.99639 23.1313 +-3210.53 -259.12 599.594 +-743.583 -57.3381 132.678 +-3221.44 -236.853 548.069 +-829.208 -58.0022 134.215 +-3231.37 -214.513 496.376 +-3235.96 -203.319 470.473 +-17.11 -1.0144 2.34729 +-3244.42 -180.884 418.56 +-905.288 -47.2798 109.404 +-909.47 -44.299 102.506 +-3255.64 -147.149 340.497 +-3258.75 -135.873 314.405 +-3261.61 -124.587 288.289 +-3264.23 -113.291 262.151 +-3266.2 -101.974 235.964 +-3268.72 -90.674 209.816 +-3270.19 -79.345 183.602 +-3272.21 -68.0296 157.418 +-3273.58 -56.6994 131.201 +-3274.7 -45.3646 104.972 +-3275.58 -34.0265 78.7361 +-3276.2 -22.6858 52.4941 +-3276.58 -11.3433 26.248 +119.4 4.88498e-15 0 +119.995 -0.406725 0.964967 +119.682 -0.811388 1.92504 +119.859 -1.21904 2.89221 +119.627 -1.62253 3.8495 +119.386 -2.02454 4.80329 +119.336 -2.42911 5.76314 +120.874 -2.87144 6.81256 +120.107 -3.26205 7.73931 +119.929 -3.66597 8.69761 +120.34 -4.08923 9.70182 +119.945 -4.48579 10.6427 +120.238 -4.90841 11.6453 +119.825 -5.30256 12.5805 +120.793 -5.76056 13.6671 +120.659 -6.16974 14.6379 +120.02 -6.55146 15.5435 +121.253 -7.03836 16.6987 +120.399 -7.40656 17.5723 +120.327 -7.82075 18.555 +119.753 -8.20131 19.4578 +120.252 -8.65643 20.5376 +120.053 -9.06367 21.5038 +120.531 -9.52447 22.5971 +120.508 -9.94876 23.6037 +120.963 -10.4157 24.7115 +120.822 -10.834 25.704 +120.671 -11.2522 26.6961 +120.802 -11.6983 27.7547 +120.534 -12.1073 28.725 +120.065 -12.4953 29.6455 +120.743 -13.0056 30.8561 +120.638 -13.4357 31.8767 +121.099 -13.9323 33.0549 +121.068 -14.3764 34.1083 +121.313 -14.8562 35.2468 +120.879 -15.2549 36.1926 +121.385 -15.7749 37.4263 +121.405 -16.2363 38.5211 +121.129 -16.6601 39.5266 +120.938 -17.0966 40.5622 +121.018 -17.5739 41.6945 +121.272 -18.0808 42.8972 +121.513 -18.5908 44.1072 +117.938 -18.5073 43.909 +115.023 -18.505 43.9036 +111.841 -18.4388 43.7467 +109.13 -18.43 43.7257 +106.519 -18.4201 43.7022 +104.009 -18.4099 43.6781 +101.325 -18.3514 43.5392 +98.9233 -18.3263 43.4796 +96.5305 -18.2863 43.3848 +96.7424 -18.7341 44.4472 +97.2088 -19.2376 45.6418 +96.7729 -19.5664 46.4218 +97.8306 -20.2036 47.9336 +96.7578 -20.4047 48.4107 +97.0828 -20.9013 49.589 +96.4354 -21.1913 50.277 +96.6484 -21.6727 51.4192 +96.244 -22.0192 52.2412 +96.3456 -22.4846 53.3454 +96.6041 -22.9929 54.5514 +96.0838 -23.3195 55.3262 +96.231 -23.8112 56.4928 +96.4471 -24.3269 57.7162 +96.564 -24.8243 58.8964 +96.7487 -25.3462 60.1345 +96.0107 -25.6291 60.8058 +96.2504 -26.1763 62.1041 +96.3913 -26.7045 63.3573 +96.4348 -27.2129 64.5633 +96.2217 -27.6542 65.6104 +96.3154 -28.1897 66.8808 +95.5197 -28.4678 67.5406 +96.1373 -29.173 69.2138 +94.7738 -29.2801 69.468 +95.2781 -29.9669 71.0973 +94.9098 -30.3875 72.0952 +95.0661 -30.9827 73.5072 +94.4424 -31.3289 74.3287 +95.0179 -32.081 76.1131 +94.8927 -32.6078 77.3628 +94.8253 -33.162 78.6779 +94.6664 -33.6921 79.9355 +94.3446 -34.1706 81.0707 +95.0966 -35.0505 83.1584 +94.8809 -35.5873 84.432 +94.9336 -36.2343 85.9668 +94.6816 -36.7744 87.2482 +94.1321 -37.2047 88.2691 +94.6125 -38.0532 90.2822 +92.1707 -37.7244 89.5022 +92.5472 -38.5467 91.4531 +88.6374 -37.5703 89.1365 +89.0613 -38.4177 91.147 +86.3394 -37.9036 89.9273 +86.403 -38.6052 91.5918 +84.3633 -38.3649 91.0218 +83.7552 -38.7684 91.9792 +81.1636 -38.2416 90.7293 +81.7487 -39.2094 93.0254 +78.9349 -38.5428 91.4439 +78.62 -39.0843 92.7287 +76.2778 -38.6098 91.6028 +76.3101 -39.3321 93.3166 +72.5089 -38.0594 90.2971 +72.709 -38.8692 92.2182 +69.9166 -38.0708 90.3241 +70.091 -38.8789 92.2412 +67.9687 -38.4109 91.1309 +67.8301 -39.0583 92.667 +65.4597 -38.4124 91.1344 +66.0103 -39.4797 93.6668 +63.67 -38.8175 92.0955 +63.7493 -39.6246 94.0105 +61.2891 -38.8459 92.1629 +61.1865 -39.5512 93.8363 +58.6207 -38.6529 91.7051 +58.8 -39.5566 93.8492 +56.1855 -38.5711 91.511 +56.141 -39.3376 93.3295 +54.0144 -38.6389 91.6718 +53.8484 -39.3349 93.3231 +51.5311 -38.4479 91.2187 +51.2555 -39.0711 92.6974 +48.9925 -38.1657 90.5492 +49.0099 -39.0284 92.596 +46.6674 -38.0012 90.1588 +46.2767 -38.5451 91.4494 +44.3307 -37.7816 89.6379 +44.3343 -38.6755 91.7588 +42.387 -37.8626 89.8301 +42.0036 -38.4339 91.1855 +40.5644 -38.0365 90.2427 +40.2702 -38.7128 91.8471 +38.5193 -37.9805 90.1097 +38.3095 -38.7622 91.9645 +36.3165 -37.7264 89.5071 +36.2541 -38.6875 91.7873 +34.5156 -37.857 89.8169 +34.1195 -38.4867 91.3108 +32.4603 -37.6801 89.397 +32.2305 -38.5274 91.4075 +30.7622 -37.8944 89.9054 +30.4067 -38.6286 91.6475 +28.9696 -37.9854 90.1214 +28.5009 -38.6049 91.5911 +26.9644 -37.7643 89.5968 +26.5548 -38.492 91.3234 +25.2633 -37.9413 90.0168 +24.8938 -38.7792 92.0048 +23.5546 -38.1068 90.4094 +23.0125 -38.715 91.8524 +21.644 -37.9194 89.9648 +21.207 -38.7511 91.9381 +19.8172 -37.8319 89.7573 +19.2526 -38.4696 91.2702 +18.1142 -37.9605 90.0624 +17.4169 -38.3647 91.0214 +16.3067 -37.8477 89.7947 +15.6904 -38.4769 91.2876 +14.6036 -37.9525 90.0433 +13.9591 -38.5774 91.5261 +12.8568 -37.9301 89.9903 +12.2235 -38.6662 91.7366 +11.1505 -38.0115 90.1834 +10.4528 -38.6273 91.6443 +9.39288 -37.888 89.8903 +8.74172 -38.8083 92.0738 +7.66545 -37.8297 89.7521 +6.97565 -38.7454 91.9246 +6.01328 -38.1861 90.5976 +5.21789 -38.6705 91.7468 +4.28342 -38.1046 90.4042 +3.48995 -38.8164 92.093 +2.55749 -37.9337 89.9988 +1.73477 -38.6011 91.5823 +0.8552 -38.0618 90.3027 +3.66374e-15 -38.9566 92.4255 +-0.859564 -38.256 90.7633 +-1.75048 -38.9507 92.4117 +-2.55749 -37.9337 89.9988 +-3.50042 -38.9329 92.3693 +-4.2747 -38.027 90.2201 +-5.2336 -38.7868 92.0228 +-6.01328 -38.1861 90.5976 +-7.03843 -39.094 92.7517 +-7.72822 -38.1395 90.4871 +-8.76787 -38.9243 92.349 +-9.44081 -38.0813 90.3489 +-10.5156 -38.8591 92.1942 +-11.1845 -38.1273 90.458 +-12.321 -38.9744 92.4679 +-12.9351 -38.1612 90.5385 +-14.1122 -39.0004 92.5296 +-14.6479 -38.0677 90.3167 +-15.8155 -38.7838 92.0157 +-16.3562 -37.9626 90.0673 +-17.4169 -38.3647 91.0214 +-18.0595 -37.846 89.7906 +-19.2908 -38.5458 91.451 +-19.877 -37.9461 90.0283 +-21.207 -38.7511 91.9381 +-21.8388 -38.2607 90.7745 +-23.1475 -38.9422 92.3914 +-23.4846 -37.9935 90.1406 +-25.0873 -39.0808 92.7204 +-25.4636 -38.2421 90.7305 +-27.1242 -39.3174 93.2816 +-27.2583 -38.176 90.5736 +-28.9695 -39.2397 93.0973 +-29.14 -38.2088 90.6516 +-31.0791 -39.4828 93.6741 +-31.1832 -38.4129 91.1358 +-32.8485 -39.2661 93.1599 +-33.2853 -38.6378 91.6692 +-34.8032 -39.258 93.1406 +-35.2834 -38.6991 91.8148 +-37.075 -39.5636 93.8658 +-37.5422 -38.9997 92.5278 +-39.0263 -39.4875 93.6852 +-39.7287 -39.1729 92.9388 +-41.4689 -39.865 94.5809 +-41.6742 -39.077 92.7112 +-43.5665 -39.8639 94.5781 +-43.9023 -39.216 93.0411 +-45.7172 -39.8821 94.6214 +-45.9065 -39.1247 92.8245 +-47.9672 -39.9532 94.7901 +-48.3894 -39.4036 93.4862 +-50.325 -40.0759 95.0813 +-50.5542 -39.3822 93.4355 +-52.7537 -40.213 95.4065 +-53.1473 -39.6537 94.0796 +-55.3976 -40.4667 96.0083 +-55.3027 -39.5605 93.8584 +-57.6439 -40.3905 95.8277 +-57.6628 -39.5854 93.9174 +-60.35 -40.5991 96.3225 +-60.194 -39.6902 94.1662 +-63.0922 -40.7832 96.7593 +-62.9088 -39.8724 94.5984 +-65.922 -40.9751 97.2145 +-66.1416 -40.3241 95.6701 +-69.2236 -41.4015 98.2263 +-68.661 -40.2907 95.5908 +-71.4089 -41.1192 97.5564 +-71.8203 -40.5874 96.2949 +-74.5076 -41.3289 98.054 +-74.33 -40.474 96.0258 +-77.4113 -41.3833 98.183 +-77.2675 -40.5572 96.223 +-80.2219 -41.3483 98.1001 +-80.7218 -40.8593 96.9399 +-82.9912 -41.2574 97.8844 +-82.7944 -40.4274 95.9152 +-86.154 -41.3223 98.0383 +-85.9342 -40.4892 96.0617 +-88.5761 -40.9999 97.2735 +-88.3249 -40.1664 95.296 +-92.5699 -41.3608 98.1295 +-92.5018 -40.6088 96.3455 +-95.8195 -41.3328 98.0632 +-94.7177 -40.1474 95.2508 +-99.0944 -41.2737 97.9231 +-98.3659 -40.26 95.518 +-103.504 -41.6295 98.7672 +-102.473 -40.5012 96.0903 +-106.632 -41.4159 98.2604 +-106.774 -40.7533 96.6883 +-110.994 -41.6311 98.7709 +-110.547 -40.7451 96.669 +-115.115 -41.6936 98.9193 +-115.163 -40.9867 97.2422 +-119.275 -41.7123 98.9635 +-119.758 -41.1522 97.6347 +-98.1122 -33.1258 78.5918 +-98.5486 -32.6911 77.5605 +-97.6707 -31.8315 75.5211 +-98.1506 -31.4251 74.557 +-97.6095 -30.7002 72.837 +-97.7478 -30.1989 71.6478 +-97.7921 -29.6752 70.4052 +-97.8205 -29.1534 69.1674 +-97.753 -28.6104 67.879 +-97.6686 -28.0701 66.5971 +-97.8911 -27.6238 65.5383 +-97.8567 -27.1105 64.3205 +-97.7248 -26.5773 63.0555 +-98.3183 -26.2451 62.2672 +-97.5777 -25.5633 60.6498 +-99.8995 -25.6818 60.9309 +-101.815 -25.6807 60.9282 +-103.737 -25.6686 60.8994 +-105.752 -25.6658 60.8929 +-108.456 -25.8138 61.2439 +-109.632 -25.5853 60.7017 +-113.132 -25.8829 61.408 +-114.229 -25.615 60.7723 +-117.063 -25.7241 61.0313 +-118.686 -25.5524 60.6237 +-122.507 -25.8348 61.2938 +-211.996 -43.7805 103.87 +-211.641 -42.7912 101.523 +-194.596 -38.5105 91.3672 +-195.096 -37.7801 89.6344 +-195.308 -36.9983 87.7795 +-193.875 -35.9169 85.2138 +-196.125 -35.521 84.2746 +-195.369 -34.5811 82.0446 +-196.504 -33.9808 80.6204 +-195.792 -33.0656 78.4492 +-162.929 -26.8615 63.7297 +-162.048 -26.0705 61.8529 +-146.402 -22.974 54.5065 +-112.581 -17.2242 40.865 +-111.283 -16.5915 39.3638 +-109.403 -15.8872 37.6928 +-108.91 -15.3962 36.528 +-108.592 -14.9358 35.4356 +-108.356 -14.4913 34.3809 +-108.014 -14.0372 33.3036 +-108.23 -13.6585 32.4052 +-108.724 -13.3146 31.5892 +-108.062 -12.832 30.4442 +-110.456 -12.7079 30.1499 +-109.199 -12.1617 28.8541 +-109.276 -11.7704 27.9256 +-108.956 -11.3393 26.9027 +-109.982 -11.0473 26.2101 +-111.39 -10.7869 25.5922 +-111.92 -10.4362 24.7601 +-114.001 -10.2224 24.253 +-115.203 -9.91971 23.5348 +-117.769 -9.72267 23.0673 +-3210.53 -253.699 601.908 +-3216.11 -242.808 576.068 +-806.564 -58.0612 137.752 +-3226.53 -220.97 524.258 +-3231.37 -210.026 498.292 +-3235.96 -199.065 472.288 +-3240.31 -188.09 446.248 +-892.826 -48.7357 115.627 +-906.379 -46.3466 109.959 +-893.788 -42.6242 101.127 +-3255.24 -144.053 341.77 +-3258.35 -133.014 315.58 +-3261.61 -121.98 289.402 +-3264.23 -110.921 263.162 +-3266.6 -99.8527 236.903 +-3268.72 -88.7771 210.626 +-3270.59 -77.6948 184.333 +-3272.21 -66.6064 158.026 +-3273.58 -55.5133 131.707 +-3274.7 -44.4155 105.377 +-3275.58 -33.3146 79.0399 +-3276.2 -22.2112 52.6966 +-3276.58 -11.106 26.3493 +119.4 4.88498e-15 0 +119.395 -0.396014 0.96376 +119.682 -0.793985 1.93228 +119.259 -1.18692 2.88856 +119.627 -1.58773 3.86398 +119.786 -1.98775 4.83749 +119.336 -2.37701 5.78483 +119.477 -2.77736 6.75914 +120.107 -3.19208 7.76843 +119.73 -3.58137 8.71582 +120.34 -4.00153 9.73833 +120.244 -4.40052 10.7093 +120.238 -4.80313 11.6892 +120.123 -5.20175 12.6593 +120.793 -5.637 13.7185 +120.758 -6.04239 14.7051 +120.02 -6.41094 15.602 +120.561 -6.8481 16.6659 +120.399 -7.2477 17.6384 +120.228 -7.64674 18.6095 +119.753 -8.0254 19.531 +120.252 -8.47077 20.6149 +120.053 -8.86927 21.5847 +120.727 -9.33531 22.7189 +120.508 -9.73537 23.6925 +120.28 -10.1347 24.6644 +120.822 -10.6016 25.8007 +120.574 -11.002 26.7749 +120.802 -11.4474 27.8591 +120.534 -11.8476 28.8331 +120.065 -12.2273 29.757 +120.839 -12.7368 30.9969 +120.638 -13.1476 31.9966 +121.099 -13.6335 33.1793 +121.068 -14.068 34.2367 +121.313 -14.5376 35.3795 +120.879 -14.9277 36.3287 +121.575 -15.4607 37.6259 +121.405 -15.8881 38.666 +121.129 -16.3028 39.6753 +120.938 -16.7299 40.7148 +121.018 -17.1969 41.8514 +121.272 -17.693 43.0586 +120.21 -17.9971 43.7986 +117.938 -18.1103 44.0742 +113.914 -17.9336 43.644 +111.841 -18.0434 43.9113 +107.571 -17.7771 43.2633 +106.519 -18.025 43.8666 +102.462 -17.7472 43.1904 +101.325 -17.9578 43.7031 +97.389 -17.655 42.9662 +96.5305 -17.8941 43.548 +96.9214 -18.3662 44.6969 +97.2088 -18.825 45.8135 +97.5712 -19.3046 46.9807 +97.8306 -19.7702 48.1139 +97.4608 -20.1121 48.9459 +97.0828 -20.453 49.7756 +96.5224 -20.7555 50.5118 +96.6484 -21.2079 51.6126 +97.0194 -21.7205 52.8602 +96.3456 -22.0023 53.5461 +96.6894 -22.5196 54.805 +96.0838 -22.8193 55.5344 +96.231 -23.3005 56.7054 +96.4471 -23.8051 57.9333 +95.8969 -24.1241 58.7097 +96.7487 -24.8025 60.3607 +96.0931 -25.1009 61.087 +96.2504 -25.6149 62.3377 +96.3913 -26.1318 63.5957 +96.4348 -26.6292 64.8062 +96.4628 -27.1289 66.0223 +96.3154 -27.585 67.1324 +95.9164 -27.9729 68.0763 +96.1373 -28.5473 69.4742 +96.3391 -29.1253 70.881 +95.2781 -29.3242 71.3648 +95.0641 -29.7841 72.4841 +95.0661 -30.3181 73.7838 +95.8112 -31.1013 75.6898 +95.0179 -31.3929 76.3995 +95.0425 -31.9587 77.7765 +94.8253 -32.4508 78.9739 +94.7401 -32.9951 80.2986 +94.3446 -33.4377 81.3758 +95.0966 -34.2987 83.4712 +94.8809 -34.824 84.7496 +94.7197 -35.3772 86.0958 +94.6816 -35.9856 87.5765 +94.9732 -36.732 89.3929 +94.6125 -37.237 90.6219 +94.9241 -38.018 92.5226 +92.5472 -37.7199 91.7972 +94.4475 -39.1742 95.3363 +89.0613 -37.5937 91.49 +93.0981 -39.994 97.3315 +86.403 -37.7771 91.9365 +90.0784 -40.0852 97.5535 +83.7552 -37.9369 92.3252 +87.3335 -40.2661 97.9937 +81.7487 -38.3684 93.3754 +84.3507 -40.3037 98.0853 +78.62 -38.246 93.0776 +81.9393 -40.5857 98.7716 +76.3101 -38.4885 93.6677 +79.1114 -40.6344 98.89 +72.709 -38.0355 92.5652 +76.4786 -40.7507 99.1731 +70.091 -38.045 92.5883 +73.5762 -40.688 99.0204 +67.8301 -38.2206 93.0156 +70.6479 -40.5675 98.7272 +66.0103 -38.6329 94.0192 +68.9355 -41.1262 100.087 +63.7493 -38.7747 94.3642 +66.6708 -41.3504 100.633 +61.1865 -38.7029 94.1894 +64.6604 -41.721 101.534 +58.8 -38.7082 94.2023 +62.3901 -41.9118 101.999 +56.141 -38.4938 93.6807 +59.2631 -41.4842 100.958 +53.8484 -38.4912 93.6742 +56.7951 -41.4664 100.915 +51.2555 -38.2331 93.0461 +54.6146 -41.6328 101.32 +49.0099 -38.1913 92.9444 +51.1878 -40.7879 99.2637 +46.2767 -37.7184 91.7935 +48.685 -40.6025 98.8123 +44.3343 -37.846 92.1041 +46.0156 -40.2224 97.8874 +42.0036 -37.6095 91.5286 +43.8938 -40.2756 98.0169 +40.2702 -37.8824 92.1927 +41.8178 -40.3486 98.1945 +38.3095 -37.9308 92.3105 +39.6785 -40.3349 98.1612 +36.2541 -37.8578 92.1326 +37.8203 -40.5918 98.7864 +34.1195 -37.6612 91.6544 +35.6016 -40.4402 98.4174 +32.2305 -37.7011 91.7514 +33.4686 -40.344 98.1834 +30.4067 -37.8001 91.9923 +31.5257 -40.4504 98.4423 +28.5009 -37.7768 91.9357 +29.316 -40.1772 97.7773 +26.5548 -37.6664 91.667 +27.2664 -40.0711 97.5192 +24.8938 -37.9474 92.3509 +25.5156 -40.3938 98.3045 +23.0125 -37.8846 92.198 +23.4621 -40.2228 97.8883 +21.207 -37.92 92.2841 +21.4919 -40.149 97.7088 +19.2526 -37.6445 91.6136 +19.7361 -40.4725 98.496 +17.4169 -37.5418 91.3638 +17.7426 -40.2973 98.0696 +15.6904 -37.6516 91.631 +15.8452 -40.2961 98.0668 +13.9591 -37.75 91.8704 +14.0316 -40.5078 98.582 +12.2235 -37.8368 92.0818 +12.0675 -40.2551 97.9669 +10.4528 -37.7988 91.9891 +10.2459 -40.4425 98.4229 +8.74172 -37.9759 92.4202 +8.37159 -40.4284 98.3887 +6.97565 -37.9144 92.2705 +6.56272 -40.7811 99.2471 +5.21789 -37.841 92.0919 +4.68908 -40.8187 99.3386 +3.48995 -37.9838 92.4395 +2.77737 -40.3117 98.1047 +1.73477 -37.7732 91.9268 +0.930249 -40.5139 98.5968 +3.77476e-15 -38.121 92.7733 +-0.925885 -40.3239 98.1343 +-1.75048 -38.1153 92.7594 +-2.79046 -40.5014 98.5663 +-3.50042 -38.0978 92.7169 +-4.68908 -40.8187 99.3386 +-5.2336 -37.9549 92.3691 +-6.47725 -40.2501 97.9549 +-7.03843 -38.2555 93.1007 +-8.37159 -40.4284 98.3887 +-8.76787 -38.0894 92.6965 +-10.2555 -40.4801 98.5145 +-10.5156 -38.0256 92.5411 +-12.1241 -40.444 98.4266 +-12.321 -38.1385 92.8158 +-13.9794 -40.3573 98.2157 +-14.1122 -38.1639 92.8778 +-15.9339 -40.5215 98.6153 +-15.8155 -37.952 92.3619 +-17.7921 -40.4098 98.3434 +-17.4169 -37.5418 91.3638 +-19.645 -40.2855 98.0409 +-19.2908 -37.7191 91.7951 +-21.7909 -40.7077 99.0685 +-21.207 -37.92 92.2841 +-23.5703 -40.4086 98.3406 +-23.1475 -38.1069 92.739 +-25.8191 -40.8742 99.4737 +-25.0873 -38.2426 93.0693 +-27.7922 -40.8438 99.3997 +-27.1242 -38.4741 93.6326 +-29.7436 -40.7632 99.2036 +-28.9695 -38.3981 93.4476 +-31.8665 -40.8879 99.507 +-31.0791 -38.636 94.0266 +-33.7392 -40.6701 98.977 +-32.8485 -38.4239 93.5105 +-36.2045 -41.1251 100.084 +-34.8032 -38.4159 93.491 +-38.4879 -41.3086 100.531 +-37.075 -38.715 94.219 +-40.519 -41.1893 100.24 +-39.0263 -38.6405 94.0377 +-43.0639 -41.5507 101.12 +-41.4689 -39.01 94.9367 +-45.3097 -41.5747 101.178 +-43.5665 -39.0088 94.934 +-47.7701 -41.756 101.62 +-45.7172 -39.0267 94.9774 +-50.2194 -41.8822 101.927 +-47.9672 -39.0962 95.1467 +-52.3501 -41.7142 101.518 +-50.325 -39.2164 95.439 +-55.1054 -42.0068 102.23 +-52.7537 -39.3505 95.7655 +-57.8571 -42.2417 102.802 +-55.3976 -39.5987 96.3695 +-60.6469 -42.453 103.316 +-57.6439 -39.5242 96.1882 +-63.0795 -42.3751 103.126 +-60.35 -39.7283 96.6849 +-66.0815 -42.6377 103.765 +-63.0922 -39.9085 97.1233 +-69.4401 -43.068 104.813 +-65.922 -40.0962 97.5803 +-72.2668 -43.1136 104.924 +-69.2236 -40.5135 98.5959 +-74.7323 -42.9129 104.435 +-71.4089 -40.2372 97.9234 +-78.2207 -43.2565 105.271 +-74.5076 -40.4425 98.4229 +-80.5435 -42.9167 104.444 +-77.4113 -40.4957 98.5524 +-84.1079 -43.2006 105.135 +-80.2219 -40.4615 98.4692 +-86.8703 -43.0284 104.716 +-82.9912 -40.3725 98.2527 +-89.7666 -42.8916 104.383 +-86.154 -40.436 98.4072 +-93.5671 -43.1402 104.988 +-88.5761 -40.1205 97.6395 +-97.5471 -43.4089 105.642 +-92.5699 -40.4736 98.4988 +-100.718 -43.2675 105.298 +-95.8195 -40.4463 98.4322 +-104.514 -43.3496 105.498 +-99.0944 -40.3885 98.2916 +-108.072 -43.2839 105.338 +-103.504 -40.7366 99.1388 +-112.496 -43.5092 105.886 +-106.632 -40.5276 98.6301 +-115.475 -43.1292 104.961 +-110.994 -40.7381 99.1425 +-120.049 -43.2987 105.374 +-115.115 -40.7993 99.2915 +-97.4681 -33.9452 82.6108 +-119.275 -40.8176 99.3358 +-97.4391 -32.7646 79.7377 +-98.1122 -32.4153 78.8875 +-97.9403 -31.7924 77.3717 +-97.6707 -31.1488 75.8053 +-97.4562 -30.5335 74.3081 +-97.6095 -30.0417 73.1111 +-97.826 -29.5749 71.9749 +-97.7921 -29.0387 70.6701 +-97.9791 -28.5744 69.5402 +-97.753 -27.9968 68.1344 +-97.8294 -27.5132 66.9576 +-97.8911 -27.0313 65.7849 +-98.5894 -26.7277 65.0459 +-97.7248 -26.0073 63.2927 +-98.4007 -25.7037 62.5539 +-97.5777 -25.015 60.878 +-98.6487 -24.8163 60.3943 +-101.815 -25.1299 61.1575 +-103.062 -24.9546 60.7309 +-105.752 -25.1153 61.122 +-106.239 -24.7438 60.2178 +-109.632 -25.0365 60.9301 +-110.806 -24.8069 60.3714 +-114.229 -25.0656 61.001 +-115.322 -24.7981 60.3499 +-118.686 -25.0043 60.8518 +-119.959 -24.7548 60.2445 +-211.996 -42.8415 104.261 +-195.231 -38.6269 94.0044 +-194.596 -37.6845 91.711 +-194.738 -36.902 89.8066 +-195.308 -36.2047 88.1097 +-196.222 -35.5719 86.5697 +-196.125 -34.7591 84.5917 +-163.429 -28.3072 68.8898 +-196.504 -33.252 80.9237 +-157.551 -26.0367 63.3643 +-162.929 -26.2854 63.9695 +-157.337 -24.7695 60.2804 +-146.402 -22.4813 54.7116 +-116.023 -17.3702 42.2731 +-111.283 -16.2356 39.5119 +-110.34 -15.6795 38.1586 +-108.91 -15.066 36.6654 +-108.781 -14.6408 35.6306 +-108.356 -14.1804 34.5103 +-108.109 -13.7481 33.4582 +-108.23 -13.3656 32.5272 +-108.152 -12.9604 31.5411 +-108.062 -12.5567 30.5588 +-109.018 -12.2734 29.8692 +-109.199 -11.9009 28.9627 +-109.083 -11.4976 27.9813 +-108.956 -11.0961 27.004 +-109.885 -10.8009 26.2855 +-111.39 -10.5555 25.6885 +-111.823 -10.2034 24.8316 +-114.001 -10.0032 24.3442 +-115.105 -9.69869 23.6033 +-117.769 -9.51413 23.1541 +-120.335 -9.30502 22.6452 +-3216.11 -237.6 578.236 +-3221.44 -226.924 552.253 +-3226.53 -216.231 526.231 +-3231.37 -205.521 500.166 +-3235.96 -194.796 474.065 +-881.411 -50.0658 121.843 +-892.826 -47.6904 116.062 +-381.012 -19.0648 46.397 +-893.788 -41.71 101.508 +-887.558 -38.4342 93.5354 +-3258.35 -130.161 316.768 +-909.394 -33.2807 80.9937 +-3264.23 -108.541 264.152 +-3266.2 -97.6992 237.766 +-3268.72 -86.8729 211.419 +-3270.59 -76.0284 185.027 +-3272.21 -65.1778 158.62 +-3273.58 -54.3226 132.202 +-3274.7 -43.4629 105.774 +-3275.58 -32.6001 79.3373 +-3276.2 -21.7348 52.8949 +-3276.58 -10.8678 26.4484 +119.1 5.77316e-15 2.84217e-14 +118.795 -0.385354 0.962429 +119.382 -0.774573 1.93451 +119.459 -1.16276 2.90402 +119.327 -1.54891 3.86843 +120.086 -1.94888 4.86738 +120.135 -2.34028 5.84491 +120.275 -2.73441 6.82926 +120.306 -3.12704 7.80986 +120.727 -3.53175 8.82062 +119.743 -3.89405 9.72548 +120.642 -4.31795 10.7842 +120.437 -4.70523 11.7514 +120.322 -5.09571 12.7267 +120.991 -5.52206 13.7915 +120.758 -5.90945 14.759 +120.912 -6.31644 15.7754 +120.66 -6.7029 16.7407 +120.696 -7.10568 17.7466 +120.228 -7.47851 18.6777 +120.048 -7.86821 19.651 +120.547 -8.30474 20.7413 +120.151 -8.68124 21.6816 +120.629 -9.12253 22.7837 +120.606 -9.52892 23.7987 +120.28 -9.91175 24.7548 +120.822 -10.3684 25.8953 +120.477 -10.7512 26.8515 +120.22 -11.1416 27.8264 +120.534 -11.587 28.9388 +121.031 -12.0545 30.1064 +121.514 -12.5261 31.2843 +121.023 -12.8993 32.2162 +121.099 -13.3336 33.3009 +121.642 -13.8237 34.525 +121.217 -14.2066 35.4812 +121.83 -14.7141 36.7488 +121.385 -15.0969 37.7049 +121.499 -15.5506 38.838 +121.318 -15.9689 39.8827 +121.408 -16.4254 41.0228 +121.486 -16.8837 42.1674 +121.179 -17.2904 43.1833 +118.535 -17.3559 43.3468 +115.527 -17.3498 43.3316 +112.344 -17.2972 43.2001 +109.632 -17.2978 43.2018 +106.929 -17.2822 43.1628 +103.687 -17.1598 42.8569 +101.097 -17.1255 42.7713 +99.3313 -17.2171 43.0002 +96.9377 -17.1866 42.924 +97.1596 -17.6145 43.9925 +97.0109 -17.9787 44.9022 +96.5851 -18.2927 45.6865 +98.3695 -19.0344 47.5388 +97.0359 -19.1782 47.8981 +96.7578 -19.5278 48.771 +96.9953 -19.985 49.9131 +96.5224 -20.2989 50.697 +96.8216 -20.7785 51.8947 +96.9333 -21.2238 53.007 +96.4313 -21.5374 53.7903 +96.6041 -22.0048 54.9575 +96.8471 -22.4946 56.1808 +96.3153 -22.8079 56.9632 +96.531 -23.3016 58.1964 +96.564 -23.7575 59.3348 +96.0026 -24.0698 60.1148 +96.1755 -24.5698 61.3635 +96.4142 -25.094 62.6728 +96.3913 -25.5569 63.8289 +96.4348 -26.0434 65.0439 +96.5432 -26.5542 66.3196 +95.8363 -26.8439 67.0434 +95.9164 -27.3575 68.3259 +96.6101 -28.0566 70.0719 +95.9478 -28.3689 70.8519 +95.8221 -28.8428 72.0355 +95.8358 -29.3653 73.3405 +96.3684 -30.0573 75.0689 +96.4195 -30.6102 76.4496 +95.6972 -30.9218 77.2278 +96.0161 -31.5758 78.8614 +95.8657 -32.085 80.1331 +95.33 -32.4701 81.0949 +95.3685 -33.057 82.5605 +95.4593 -33.6721 84.0969 +95.3125 -34.2128 85.4473 +94.791 -34.6249 86.4765 +94.6109 -35.1676 87.832 +94.4826 -35.7383 89.2573 +94.8903 -36.5247 91.2213 +94.6488 -37.0738 92.5927 +95.0706 -37.896 94.6462 +94.7177 -38.422 95.9598 +94.7489 -39.1145 97.6893 +94.3571 -39.643 99.0094 +94.6037 -40.4526 101.031 +94.4297 -41.0972 102.641 +94.4255 -41.8291 104.469 +93.9488 -42.3632 105.803 +94.3981 -43.3308 108.22 +91.5719 -42.7918 106.873 +91.3026 -43.4386 108.489 +88.8183 -43.0252 107.456 +87.8048 -43.3118 108.172 +85.3571 -42.8776 107.088 +84.935 -43.4538 108.527 +82.634 -43.062 107.548 +81.9641 -43.511 108.67 +79.75 -43.1319 107.723 +79.2376 -43.6664 109.058 +77.216 -43.3638 108.302 +76.8486 -43.9865 109.857 +74.8458 -43.6698 109.066 +74.2417 -44.1634 110.299 +71.3733 -43.2932 108.126 +71.6933 -44.3515 110.769 +68.873 -43.4612 108.545 +69.2 -44.5522 111.27 +67.8067 -44.5485 111.261 +67.1946 -45.0592 112.536 +65.5616 -44.8834 112.097 +64.9749 -45.4227 113.444 +62.4746 -44.6098 111.414 +62.1059 -45.3075 113.157 +60.2367 -44.9083 112.159 +59.1363 -45.0685 112.56 +57.1719 -44.554 111.275 +56.2505 -44.8391 111.987 +53.8687 -43.9374 109.735 +53.4452 -44.6198 111.439 +51.0798 -43.6664 109.058 +50.5215 -44.2411 110.493 +48.4477 -43.4761 108.583 +48.1369 -44.2864 110.606 +45.8127 -43.2304 107.969 +45.1185 -43.6898 109.116 +43.7759 -43.5211 108.695 +42.8551 -43.766 109.307 +41.125 -43.1676 107.812 +40.5332 -43.7564 109.283 +39.0919 -43.4278 108.462 +38.2563 -43.7653 109.305 +36.5959 -43.143 107.751 +36.1079 -43.9002 109.642 +34.4511 -43.2315 107.972 +33.6278 -43.5917 108.871 +32.5229 -43.5917 108.871 +31.5759 -43.8032 109.4 +30.1458 -43.3282 108.213 +29.2242 -43.5687 108.814 +28.0368 -43.4088 108.415 +27.2416 -43.8601 109.542 +25.7996 -43.2572 108.036 +25.1781 -44.0303 109.967 +23.7248 -43.3453 108.256 +22.8589 -43.7125 109.173 +21.7407 -43.6021 108.897 +20.8551 -43.9638 109.801 +19.5416 -43.4066 108.409 +18.647 -43.7619 109.296 +17.3528 -43.159 107.791 +16.4503 -43.5084 108.663 +15.2846 -43.1546 107.78 +14.4537 -43.756 109.282 +13.3014 -43.3951 108.38 +12.3657 -43.7322 109.222 +11.2331 -43.3635 108.301 +10.3105 -43.8058 109.406 +9.12479 -43.0962 107.634 +8.21034 -43.6434 109 +7.14878 -43.446 108.507 +6.15994 -43.6902 109.117 +5.10783 -43.4858 108.607 +4.10767 -43.7233 109.2 +3.06532 -43.5122 108.673 +2.04891 -43.6318 108.972 +1.02188 -43.5255 108.706 +4.88498e-15 -43.8616 109.545 +-1.01751 -43.3397 108.242 +-2.05938 -43.8549 109.529 +-3.06532 -43.5122 108.673 +-4.10069 -43.6489 109.014 +-5.08602 -43.2999 108.143 +-6.22798 -44.1727 110.322 +-7.14878 -43.446 108.507 +-8.27312 -43.9772 109.834 +-9.25817 -43.7263 109.207 +-10.3192 -43.8426 109.498 +-11.2619 -43.4746 108.579 +-12.4912 -44.1756 110.33 +-13.3693 -43.6166 108.933 +-14.5634 -44.0879 110.111 +-15.4804 -43.7073 109.16 +-16.7147 -44.2076 110.41 +-17.5006 -43.5266 108.709 +-18.6939 -43.8723 109.572 +-19.5416 -43.4066 108.409 +-20.9072 -44.0738 110.075 +-21.7407 -43.6021 108.897 +-23.0306 -44.0407 109.993 +-23.7048 -43.3088 108.165 +-25.2405 -44.1392 110.239 +-25.9295 -43.475 108.58 +-27.444 -44.1861 110.356 +-28.1769 -43.6255 108.956 +-29.6596 -44.2177 110.435 +-30.296 -43.5441 108.752 +-32.0418 -44.4496 111.014 +-32.416 -43.4482 108.513 +-34.2066 -44.3422 110.746 +-34.7067 -43.5523 108.773 +-36.6342 -44.5399 111.239 +-37.4078 -44.1002 110.141 +-39.0288 -44.6488 111.512 +-39.6631 -44.0623 110.047 +-41.5099 -44.8109 111.916 +-42.0263 -44.1139 110.176 +-43.9154 -44.8492 112.012 +-44.4413 -44.1827 110.347 +-46.337 -44.8696 112.063 +-46.8389 -44.1987 110.387 +-49.036 -45.1135 112.672 +-49.5958 -44.5065 111.156 +-51.3811 -44.9938 112.373 +-52.0368 -44.4845 111.101 +-54.096 -45.1633 112.796 +-54.698 -44.6139 111.424 +-56.7576 -45.2432 112.996 +-57.5163 -44.8224 111.945 +-60.013 -45.7368 114.229 +-60.0582 -44.7752 111.827 +-62.6961 -45.7379 114.232 +-63.2134 -45.1373 112.731 +-66.1016 -46.2104 115.412 +-66.8977 -45.7982 114.382 +-69.958 -46.9125 117.165 +-70.2196 -46.1338 115.22 +-73.5 -47.3207 118.184 +-73.8976 -46.6319 116.464 +-76.7922 -47.5058 118.647 +-77.0163 -46.7159 116.674 +-79.5409 -47.3155 118.171 +-79.198 -46.2093 115.409 +-82.4583 -47.1976 117.877 +-82.8457 -46.5252 116.198 +-84.8855 -46.7787 116.831 +-85.4707 -46.226 115.45 +-88.3881 -46.9211 117.187 +-88.0926 -45.9063 114.652 +-90.4014 -46.2505 115.512 +-91.3648 -45.8955 114.625 +-94.6053 -46.6665 116.551 +-95.6973 -46.3576 115.779 +-98.8752 -47.0415 117.487 +-99.4778 -46.4862 116.1 +-102.642 -47.1151 117.671 +-102.981 -46.436 115.975 +-106.124 -47.0114 117.412 +-106.834 -46.4959 116.124 +-109.759 -46.933 117.216 +-110.194 -46.2966 115.627 +-113.351 -46.794 116.869 +-114.242 -46.3423 115.741 +-118.122 -47.0843 117.594 +-118.328 -46.349 115.758 +-106.908 -41.1503 102.774 +-99.8796 -37.7797 94.3556 +-97.51 -36.2453 90.5234 +-97.1447 -35.4847 88.6238 +-97.3267 -34.9358 87.2531 +-97.4178 -34.3629 85.8222 +-97.4894 -33.7921 84.3966 +-97.0257 -33.0477 82.5374 +-97.2777 -32.5576 81.3134 +-97.514 -32.0684 80.0916 +-97.8104 -31.6046 78.9332 +-97.8642 -31.0689 77.5952 +-98.0537 -30.583 76.3816 +-97.5333 -29.8854 74.6396 +-97.765 -29.4276 73.496 +-97.7478 -28.9011 72.1811 +-97.5557 -28.3312 70.7578 +-98.2171 -28.0137 69.9648 +-97.5134 -27.3137 68.2166 +-98.2313 -27.0185 67.4792 +-97.8102 -26.4148 65.9715 +-97.7753 -25.9238 64.7453 +-97.7248 -25.4351 63.5248 +-98.4831 -25.1592 62.8358 +-98.4897 -24.6933 61.6722 +-98.4819 -24.2293 60.5134 +-99.8857 -24.1114 60.2188 +-101.797 -24.1061 60.2054 +-103.716 -24.0901 60.1655 +-105.472 -24.0246 60.0021 +-107.574 -24.0262 60.006 +-109.427 -23.9593 59.839 +-112.064 -24.0495 60.0642 +-113.93 -23.9596 59.8397 +-117.112 -24.1298 60.2647 +-119.255 -24.0682 60.111 +-120.611 -23.8376 59.5349 +-160.194 -30.9974 77.4167 +-163.678 -30.9997 77.4226 +-164.31 -30.451 76.0522 +-163.76 -29.6888 74.1484 +-164.451 -29.1564 72.8189 +-163.951 -28.4177 70.9738 +-163.975 -27.7769 69.3734 +-163.981 -27.1381 67.7781 +-164.245 -26.5459 66.299 +-164.402 -25.9395 64.7845 +-163.434 -25.1634 62.8462 +-164.204 -24.6602 61.5893 +-123.559 -18.0916 45.1841 +-112.963 -16.1182 40.2556 +-110.434 -15.3476 38.3311 +-109.756 -14.849 37.0857 +-108.31 -14.2566 35.6063 +-108.356 -13.8685 34.6368 +-108.204 -13.4575 33.6104 +-107.85 -13.0256 32.5317 +-108.247 -12.6864 31.6847 +-108.062 -12.2805 30.6708 +-108.73 -11.9717 29.8996 +-109.488 -11.6698 29.1456 +-109.468 -11.2844 28.1831 +-108.956 -10.8519 27.103 +-110.078 -10.5819 26.4284 +-110.129 -10.2064 25.4907 +-111.531 -9.95293 24.8577 +-112.442 -9.64932 24.0994 +-113.446 -9.34857 23.3483 +-116.595 -9.21208 23.0074 +-118.963 -8.99656 22.4691 +-3216.11 -232.373 580.356 +-3221.44 -221.931 554.279 +-847.821 -55.5681 138.783 +-858.759 -53.4171 133.41 +-872.129 -51.3448 128.235 +-872.708 -48.4808 121.082 +-853.809 -44.6031 111.397 +-380.616 -18.6259 46.5187 +-386.398 -17.6352 44.0443 +-380.439 -16.1119 40.2398 +-902.926 -35.2756 88.1017 +-404.23 -14.468 36.1342 +-404.057 -13.14 32.8175 +-406.244 -11.8843 29.6813 +-404.612 -10.5168 26.266 +-144.829 -3.29264 8.22345 +-3272.01 -63.7401 159.192 +-1013.33 -16.4455 41.0731 +-3274.3 -42.5015 106.148 +-3275.58 -31.8829 79.6283 +-3275.8 -21.254 53.0824 +-3276.58 -10.6287 26.5454 +119 5.77316e-15 2.84217e-14 +119.695 -0.379509 0.97319 +119.482 -0.757718 1.94305 +119.459 -1.13651 2.91439 +119.327 -1.51394 3.88225 +120.186 -1.90647 4.88883 +120.335 -2.29125 5.87553 +120.275 -2.67268 6.85366 +120.206 -3.05391 7.83127 +119.73 -3.42351 8.77903 +119.842 -3.8093 9.76833 +119.945 -4.19609 10.7602 +120.437 -4.599 11.7934 +120.222 -4.97656 12.7616 +120.197 -5.36197 13.7499 +120.758 -5.77604 14.8117 +120.02 -6.12835 15.7152 +120.759 -6.55695 16.8142 +119.807 -6.89411 17.6788 +120.228 -7.30967 18.7445 +120.934 -7.74736 19.8668 +120.35 -8.10399 20.7814 +120.936 -8.54073 21.9013 +120.727 -8.92381 22.8837 +120.606 -9.31379 23.8837 +120.28 -9.68797 24.8432 +120.919 -10.1425 26.0088 +120.477 -10.5085 26.9474 +120.899 -10.9516 28.0837 +120.631 -11.3345 29.0655 +121.031 -11.7823 30.2139 +120.357 -12.1268 31.0972 +121.311 -12.6381 32.4084 +121.099 -13.0326 33.4199 +120.686 -13.4054 34.376 +121.122 -13.8749 35.5799 +120.974 -14.2809 36.621 +121.385 -14.7561 37.8396 +121.783 -15.235 39.0677 +121.318 -15.6084 40.0252 +120.751 -15.9676 40.9463 +121.674 -16.5279 42.3833 +121.832 -16.9912 43.5712 +118.442 -16.9507 43.4674 +114.507 -16.8084 43.1025 +112.251 -16.8928 43.3187 +108.804 -16.7795 43.0284 +106.196 -16.7762 43.0198 +103.687 -16.7724 43.01 +101.188 -16.7539 42.9627 +98.5157 -16.6902 42.7994 +96.3961 -16.7048 42.8367 +96.5305 -17.1053 43.8639 +97.0109 -17.5728 45.0626 +97.2088 -17.9952 46.1458 +98.4582 -18.6214 47.7517 +96.8594 -18.7112 47.9817 +96.7578 -19.0869 48.9453 +96.9953 -19.5338 50.0914 +96.6095 -19.8585 50.9239 +96.8216 -20.3094 52.0801 +96.4163 -20.634 52.9126 +96.4313 -21.0512 53.9824 +96.6894 -21.527 55.2024 +96.8471 -21.9867 56.3814 +96.231 -22.2734 57.1166 +96.531 -22.7756 58.4043 +96.564 -23.2211 59.5468 +96.0026 -23.5264 60.3296 +96.1755 -24.0151 61.5827 +96.3323 -24.5066 62.8433 +96.4727 -25.001 64.111 +96.4348 -25.4554 65.2762 +96.4628 -25.933 66.5011 +95.8363 -26.2379 67.2829 +96.6304 -26.9388 69.0803 +95.8221 -27.1995 69.7486 +95.7912 -27.6832 70.989 +95.8221 -28.1916 72.2928 +95.8358 -28.7023 73.6024 +95.7556 -29.1919 74.858 +95.7351 -29.7067 76.1781 +96.2255 -30.3905 77.9315 +96.3157 -30.9592 79.3899 +96.1629 -31.4579 80.6688 +96.2147 -32.0316 82.1399 +96.0999 -32.5584 83.4909 +95.2417 -32.8369 84.2049 +95.3125 -33.4404 85.7526 +95.2189 -33.996 87.1773 +95.2473 -34.6049 88.7387 +95.1134 -35.1647 90.1742 +94.2651 -35.4649 90.944 +94.6488 -36.2368 92.9234 +94.3204 -36.748 94.2343 +94.7177 -37.5546 96.3026 +94.1467 -37.9884 97.415 +94.3571 -38.748 99.3631 +94.5381 -39.5121 101.322 +94.7545 -40.3074 103.362 +94.2969 -40.8291 104.7 +94.2032 -41.5191 106.469 +95.0274 -42.6348 109.33 +93.3772 -42.6501 109.369 +94.8119 -44.0899 113.061 +90.7055 -42.9476 110.132 +90.9342 -43.8428 112.428 +87.9148 -43.1656 110.691 +88.109 -44.0601 112.985 +84.7826 -43.1841 110.739 +85.635 -44.4332 113.942 +82.6387 -43.6852 112.024 +83.3197 -44.8794 115.086 +80.5276 -44.2025 113.35 +80.77 -45.1875 115.876 +78.0159 -44.4917 114.092 +78.2161 -45.477 116.618 +75.71 -44.887 115.105 +75.8651 -45.8727 117.633 +71.6137 -44.1705 113.268 +71.45 -44.9622 115.298 +70.1704 -45.0607 115.551 +70.5398 -46.2345 118.561 +67.8043 -45.3709 116.346 +68.0264 -46.4823 119.196 +65.2913 -45.5682 116.852 +65.1022 -46.4209 119.039 +62.2892 -45.3902 116.396 +62.2049 -46.337 118.824 +59.6688 -45.4501 116.55 +59.082 -46.0329 118.044 +57.0618 -45.4912 116.655 +57.2685 -46.7323 119.837 +54.3096 -45.3797 116.369 +53.8037 -46.0518 118.092 +49.8254 -43.703 112.069 +49.7103 -44.7013 114.629 +47.4986 -43.8094 112.342 +46.8387 -44.3315 113.681 +44.6514 -43.3894 111.265 +44.4284 -44.3486 113.725 +42.4602 -43.5631 111.71 +41.9332 -44.2457 113.461 +40.1708 -43.619 111.854 +39.3997 -44.0557 112.974 +37.8889 -43.659 111.956 +37.0143 -43.986 112.795 +35.5019 -43.5442 111.662 +35.0059 -44.3537 113.738 +33.4048 -43.7629 112.223 +32.6371 -44.253 113.48 +30.997 -43.546 111.667 +30.5064 -44.4532 113.993 +28.7838 -43.5591 111.7 +28.3663 -44.6399 114.472 +26.687 -43.7349 112.151 +26.0305 -44.4932 114.096 +24.3827 -43.5416 111.655 +23.6794 -44.2592 113.496 +22.3421 -43.7967 112.31 +21.5497 -44.4027 113.864 +20.0863 -43.6092 111.829 +19.3666 -44.4249 113.92 +17.9293 -43.5863 111.77 +17.1879 -44.4329 113.941 +15.7545 -43.477 111.49 +14.9046 -44.1022 113.093 +13.6636 -43.5703 111.729 +12.7943 -44.2261 113.411 +11.5398 -43.542 111.656 +10.7114 -44.4815 114.066 +9.44648 -43.6085 111.827 +8.57307 -44.5429 114.223 +7.33193 -43.5529 111.684 +6.43209 -44.5905 114.345 +5.25177 -43.7015 112.065 +4.25774 -44.2977 113.594 +3.17003 -43.9827 112.787 +2.13443 -44.4267 113.925 +1.04282 -43.4145 111.329 +4.66294e-15 -44.6516 114.502 +-1.05067 -43.7415 112.168 +-2.1449 -44.6447 114.484 +-3.1517 -43.7284 112.134 +-4.29962 -44.7333 114.711 +-5.25177 -43.7015 112.065 +-6.44779 -44.6992 114.624 +-7.36856 -43.7705 112.242 +-8.53122 -44.3253 113.665 +-9.5014 -43.8621 112.477 +-10.7637 -44.6988 114.623 +-11.5398 -43.542 111.656 +-12.972 -44.8405 114.986 +-13.7089 -43.7149 112.1 +-15.1362 -44.7875 114.85 +-16.0025 -44.1615 113.245 +-17.2853 -44.6846 114.587 +-18.0771 -43.9456 112.692 +-19.4292 -44.5684 114.288 +-20.2348 -43.9318 112.656 +-21.6539 -44.6174 114.414 +-22.2874 -43.6895 112.035 +-23.8893 -44.6516 114.502 +-24.6219 -43.9689 112.751 +-26.0929 -44.6 114.369 +-26.8818 -44.0543 112.97 +-28.3663 -44.6399 114.472 +-28.9706 -43.8417 112.425 +-30.6273 -44.6294 114.445 +-31.3726 -44.0735 113.019 +-33.0771 -44.8496 115.009 +-33.5651 -43.9729 112.761 +-35.5572 -45.0523 115.529 +-35.8427 -43.9624 112.734 +-37.7159 -44.8198 114.933 +-38.2498 -44.075 113.023 +-40.3576 -45.1268 115.72 +-40.8371 -44.3424 113.709 +-42.8122 -45.1733 115.84 +-43.4617 -44.5905 114.345 +-45.1809 -45.0995 115.65 +-45.4919 -44.2061 113.36 +-47.7704 -45.2133 115.942 +-48.5248 -44.7558 114.769 +-50.497 -45.4087 116.443 +-50.8969 -44.6429 114.479 +-53.2567 -45.5835 116.891 +-53.7514 -44.9132 115.173 +-56.089 -45.7699 117.369 +-56.813 -45.2928 116.146 +-58.6594 -45.7037 117.2 +-59.7119 -45.4832 116.634 +-61.9857 -46.1735 118.404 +-62.1554 -45.2925 116.145 +-65.6924 -46.842 120.119 +-65.7068 -45.8585 117.597 +-69.3409 -47.3804 121.499 +-69.7606 -46.68 119.703 +-72.7214 -47.6646 122.228 +-73.0264 -46.8947 120.254 +-75.9 -47.7626 122.48 +-76.4353 -47.1443 120.894 +-78.7493 -47.6166 122.105 +-79.263 -46.9935 120.507 +-81.8195 -47.5723 121.991 +-82.1531 -46.8515 120.143 +-85.0726 -47.5944 122.048 +-85.2191 -46.7777 119.954 +-87.2341 -46.9877 120.492 +-87.5098 -46.26 118.626 +-90.1089 -46.7548 119.895 +-89.6605 -45.6685 117.109 +-94.1044 -47.0582 120.673 +-94.4579 -46.3781 118.929 +-97.6144 -47.0636 120.687 +-97.6453 -46.2335 118.558 +-101.276 -47.096 120.77 +-101.719 -46.4602 119.14 +-105.097 -47.1523 120.914 +-105.843 -46.6491 119.624 +-109.338 -47.3416 121.4 +-109.367 -46.5234 119.302 +-113.301 -47.3539 121.431 +-113.838 -46.7483 119.878 +-117.299 -47.3303 121.371 +-117.62 -46.6353 119.589 +-111.507 -43.4439 111.405 +-108.898 -41.692 106.912 +-97.2522 -36.5889 93.8262 +-97.0058 -35.8644 91.9684 +-97.5807 -35.4527 90.9126 +-97.1447 -34.6836 88.9404 +-97.2547 -34.1219 87.5 +-97.3452 -33.5621 86.0647 +-96.9044 -32.831 84.1898 +-97.0994 -32.3261 82.8952 +-97.129 -31.774 81.4792 +-97.514 -31.3444 80.3777 +-97.8104 -30.8911 79.2152 +-97.332 -30.2023 77.4488 +-97.4409 -29.7057 76.1754 +-98.1506 -29.3956 75.3802 +-97.4541 -28.6718 73.5241 +-98.2173 -28.3843 72.787 +-98.2649 -27.8929 71.5268 +-97.5825 -27.2043 69.761 +-97.753 -26.7627 68.6286 +-97.6686 -26.2572 67.3324 +-97.6484 -25.7757 66.0977 +-98.5894 -25.5495 65.5176 +-98.3802 -25.0276 64.1792 +-98.4831 -24.5912 63.0603 +-98.4068 -24.1156 61.8404 +-98.3151 -23.6422 60.6267 +-99.2147 -23.4088 60.028 +-101.038 -23.3861 59.9699 +-102.953 -23.3729 59.9361 +-105.727 -23.5392 60.3624 +-106.717 -23.2966 59.7405 +-109.427 -23.4184 60.0528 +-111.371 -23.3612 59.9061 +-114.017 -23.4366 60.0994 +-115.887 -23.3385 59.8477 +-118.377 -23.3515 59.8812 +-120.346 -23.2482 59.6164 +-159.928 -30.2473 77.5643 +-163.411 -30.2504 77.5723 +-163.862 -29.6825 76.116 +-163.76 -29.0185 74.4133 +-163.639 -28.3575 72.7181 +-163.951 -27.7761 71.2273 +-163.611 -27.0895 69.4667 +-164.255 -26.5698 68.1338 +-164.245 -25.9466 66.5358 +-164.402 -25.3539 65.0159 +-165.005 -24.8317 63.6768 +-165.224 -24.2531 62.1933 +-132.864 -19.0147 48.76 +-113.243 -15.7934 40.4995 +-110.996 -15.0775 38.6638 +-109.662 -14.5013 37.1863 +-108.498 -13.959 35.7957 +-108.546 -13.579 34.8212 +-108.299 -13.1652 33.76 +-108.325 -12.7876 32.7918 +-108.056 -12.3782 31.7419 +-108.445 -12.0458 30.8894 +-109.689 -11.8047 30.2711 +-110.161 -11.4764 29.4295 +-108.698 -10.952 28.0846 +-109.729 -10.6822 27.3927 +-109.304 -10.2702 26.3362 +-111.099 -10.0639 25.8072 +-111.434 -9.71973 24.9247 +-111.955 -9.3906 24.0807 +-113.348 -9.12963 23.4115 +-115.324 -8.9059 22.8377 +-119.061 -8.80068 22.5679 +-3216.11 -227.126 582.429 +-159.582 -10.7457 27.5557 +-3226.72 -206.712 530.079 +-859.844 -52.2772 134.056 +-862.054 -49.6058 127.206 +-856.389 -46.5001 119.242 +-851.135 -43.4595 111.445 +-381.211 -18.2339 46.7578 +-381.435 -17.0157 43.634 +-380.935 -15.7687 40.4363 +-901.136 -34.4108 88.2411 +-404.927 -14.1657 36.3257 +-404.654 -12.8624 32.9835 +-403.452 -11.5362 29.5826 +-402.118 -10.216 26.1973 +-145.728 -3.23827 8.30402 +-403.247 -7.67807 19.6892 +-408.211 -6.47535 16.605 +-406.752 -5.16058 13.2335 +-3275.18 -31.1593 79.9029 +-1118.93 -7.09593 18.1964 +-3276.18 -10.3875 26.637 +118.9 5.32907e-15 2.84217e-14 +119.795 -0.371038 0.977382 +119.482 -0.740189 1.94979 +119.459 -1.11022 2.92451 +119.427 -1.48015 3.89899 +119.386 -1.84998 4.87319 +119.536 -2.22338 5.85678 +119.477 -2.59352 6.83179 +120.306 -2.98574 7.86497 +119.829 -3.34709 8.81684 +119.842 -3.72117 9.80224 +119.746 -4.0922 10.7796 +120.437 -4.49261 11.8343 +120.322 -4.86544 12.8165 +120.098 -5.23359 13.7862 +120.857 -5.64703 14.8753 +120.813 -6.02607 15.8738 +120.858 -6.41051 16.8864 +120.696 -6.78459 17.8718 +120.327 -7.14642 18.825 +120.048 -7.51265 19.7897 +120.35 -7.91651 20.8535 +120.053 -8.28217 21.8167 +119.943 -8.66076 22.814 +120.508 -9.09094 23.9472 +120.28 -9.46385 24.9295 +120.919 -9.90784 26.099 +120.477 -10.2654 27.041 +120.802 -10.6897 28.1585 +120.631 -11.0723 29.1664 +121.127 -11.519 30.343 +120.743 -11.8842 31.3051 +121.023 -12.3164 32.4436 +121.003 -12.721 33.5093 +120.686 -13.0953 34.4953 +120.836 -13.5219 35.6191 +121.83 -14.0492 37.0081 +120.437 -14.3021 37.6743 +120.932 -14.7786 38.9294 +121.129 -15.2236 40.1018 +121.502 -15.6953 41.3443 +121.861 -16.1705 42.5959 +121.459 -16.5473 43.5885 +118.07 -16.5066 43.4813 +114.414 -16.4063 43.2172 +112.251 -16.5019 43.4691 +107.975 -16.2666 42.8491 +106.104 -16.3739 43.1319 +102.865 -16.2544 42.817 +100.278 -16.2192 42.7242 +97.8812 -16.1991 42.6715 +96.4864 -16.3336 43.0256 +97.4293 -16.8652 44.4259 +97.0109 -17.1663 45.2191 +97.2979 -17.595 46.3484 +98.1921 -18.1415 47.788 +97.1242 -18.3283 48.28 +96.7578 -18.6453 49.1152 +96.2082 -18.9271 49.8574 +96.5224 -19.3816 51.0547 +96.8216 -19.8395 52.2609 +96.244 -20.1206 53.0014 +96.4313 -20.5642 54.1698 +96.6894 -21.0289 55.394 +96.8471 -21.4781 56.5772 +96.3153 -21.7772 57.3651 +96.531 -22.2487 58.607 +95.8969 -22.5272 59.3407 +96.7487 -23.1607 61.0095 +96.1755 -23.4595 61.7965 +96.2504 -23.9193 63.0078 +96.4727 -24.4226 64.3336 +95.8685 -24.7205 65.1182 +96.5432 -25.3542 66.7876 +95.9161 -25.6523 67.5727 +96.6304 -26.3156 69.3201 +95.8221 -26.5702 69.9907 +95.9478 -27.0869 71.3519 +95.9775 -27.5841 72.6615 +95.8358 -28.0383 73.8579 +95.7556 -28.5166 75.1178 +95.7351 -29.0195 76.4426 +95.6972 -29.5245 77.7727 +96.4655 -30.2901 79.7895 +96.1629 -30.7302 80.9488 +96.0672 -31.2426 82.2987 +95.9536 -31.7568 83.6532 +96.1846 -32.3948 85.3337 +96.0319 -32.9134 86.6997 +95.005 -33.1349 87.2833 +95.318 -33.8294 89.1128 +94.5527 -34.1487 89.9537 +95.0293 -34.9253 91.9995 +94.6488 -35.3985 93.246 +94.2522 -35.8719 94.4932 +94.7177 -36.6857 96.6369 +94.2136 -37.1361 97.8233 +94.4234 -37.8782 99.7781 +94.5381 -38.598 101.674 +94.8194 -39.4019 103.792 +94.7469 -40.0748 105.564 +94.5848 -40.7229 107.271 +94.5239 -41.4277 109.128 +94.7467 -42.2745 111.359 +94.7503 -43.0419 113.38 +94.2363 -43.587 114.816 +94.0637 -44.3025 116.701 +91.3648 -43.8216 115.434 +91.4594 -44.6773 117.688 +88.6153 -44.092 116.146 +88.1013 -44.6556 117.631 +85.584 -44.1953 116.418 +85.5006 -44.9885 118.508 +83.2321 -44.6301 117.564 +83.1119 -45.4219 119.649 +81.4009 -45.3484 119.456 +81.3426 -46.2006 121.701 +78.845 -45.6639 120.287 +78.6463 -46.454 122.368 +75.5725 -45.534 119.945 +75.35 -46.3195 122.014 +71.2537 -44.6975 117.741 +71.1216 -45.5376 119.954 +70.3809 -46.0057 121.187 +70.1391 -46.817 123.325 +67.8309 -46.2456 121.819 +67.2814 -46.865 123.451 +64.8772 -46.1821 121.652 +64.6159 -47.0193 123.857 +61.9075 -46.0646 121.343 +61.491 -46.8014 123.283 +59.5499 -46.3762 122.163 +58.8548 -46.9157 123.584 +56.5426 -46.1523 121.573 +56.2653 -47.0445 123.924 +53.3843 -45.7413 120.491 +52.857 -46.4316 122.309 +49.1845 -44.3149 116.733 +48.523 -44.8633 118.178 +46.2974 -43.9479 115.767 +45.9333 -44.7901 117.985 +43.8956 -43.9937 115.887 +43.4959 -44.8327 118.098 +41.3448 -43.8553 115.523 +40.7593 -44.5215 117.278 +38.8813 -43.7662 115.288 +38.3884 -44.5637 117.389 +36.7232 -44.0001 115.904 +36.1912 -44.7948 117.997 +34.5539 -44.2209 116.486 +33.8276 -44.8065 118.028 +32.0236 -43.9472 115.765 +31.4015 -44.6989 117.745 +29.9277 -44.2425 116.543 +29.3336 -45.0943 118.787 +27.4229 -43.9014 115.644 +26.8622 -44.8526 118.15 +25.3197 -44.1687 116.348 +24.5762 -44.8728 118.203 +22.9799 -44.0047 115.916 +22.2096 -44.7035 117.757 +20.8125 -44.1407 116.274 +19.961 -44.7291 117.825 +18.5796 -44.1222 116.226 +17.7446 -44.8107 118.04 +16.3941 -44.1953 116.418 +15.5749 -45.0194 118.589 +14.1164 -43.9728 115.832 +13.2751 -44.8267 118.082 +11.904 -43.877 115.58 +11.0426 -44.7962 118.001 +9.82308 -44.2979 116.689 +8.83815 -44.8576 118.163 +7.58223 -43.9976 115.898 +6.63097 -44.9055 118.289 +5.43934 -44.2152 116.471 +4.42177 -44.9399 118.38 +3.2695 -44.3131 116.729 +2.21122 -44.9605 118.434 +1.08384 -44.0782 116.11 +4.77396e-15 -44.8608 118.171 +-1.08384 -44.0782 116.11 +-2.21122 -44.9605 118.434 +-3.27212 -44.3486 116.822 +-4.45318 -45.259 119.22 +-5.41753 -44.0381 116.004 +-6.64667 -45.012 118.57 +-7.61275 -44.1747 116.364 +-8.91488 -45.2473 119.189 +-9.878 -44.5456 117.341 +-11.1472 -45.2203 119.118 +-12.0861 -44.5481 117.348 +-13.4319 -45.3562 119.476 +-14.3315 -44.6429 117.597 +-15.6602 -45.2661 119.239 +-16.4202 -44.2659 116.604 +-17.8837 -45.1621 118.965 +-18.7127 -44.4381 117.058 +-20.0549 -44.9396 118.379 +-20.9445 -44.4207 117.012 +-22.3659 -45.018 118.586 +-23.0346 -44.1094 116.192 +-24.6525 -45.012 118.57 +-25.4393 -44.3774 116.898 +-27.0493 -45.1649 118.973 +-27.8774 -44.629 117.561 +-29.4686 -45.3016 119.333 +-29.8577 -44.1389 116.27 +-31.7643 -45.2157 119.106 +-32.6245 -44.772 117.938 +-34.2676 -45.3892 119.563 +-34.8746 -44.6315 117.567 +-36.6046 -45.3065 119.346 +-37.1776 -44.5449 117.339 +-39.1486 -45.446 119.713 +-39.7232 -44.7138 117.784 +-41.5628 -45.3992 119.59 +-42.2332 -44.7976 118.005 +-44.5052 -45.873 120.838 +-44.5966 -44.6964 117.739 +-46.7542 -45.5905 120.094 +-47.4181 -45.0116 118.569 +-49.5981 -45.8574 120.797 +-50.0641 -45.1074 118.821 +-52.1827 -45.8393 120.749 +-52.619 -45.0854 118.763 +-55.0149 -45.999 121.17 +-55.5457 -45.3385 119.43 +-58.1227 -46.3322 122.047 +-59.0108 -45.9564 121.057 +-61.2796 -46.6407 122.86 +-61.52 -45.7761 120.582 +-64.3529 -46.828 123.354 +-64.8325 -46.1505 121.569 +-68.7342 -47.8768 126.116 +-68.7544 -46.8752 123.478 +-72.4395 -48.3527 127.37 +-72.051 -47.0971 124.062 +-75.3879 -48.269 127.149 +-75.7347 -47.5088 125.147 +-78.25 -48.1022 126.71 +-78.3639 -47.216 124.375 +-81.2215 -47.9751 126.375 +-81.771 -47.3586 124.751 +-84.4161 -47.9464 126.299 +-84.571 -47.1145 124.108 +-87.0333 -47.5652 125.295 +-87.8132 -47.0864 124.034 +-89.2472 -46.9597 123.7 +-89.7187 -46.3308 122.044 +-94.1239 -47.7082 125.672 +-93.8416 -46.6925 122.996 +-97.396 -47.5773 125.327 +-97.432 -46.7319 123.1 +-100.924 -47.5336 125.212 +-101.298 -46.8532 123.42 +-104.539 -47.4885 125.093 +-105.392 -47.0243 123.871 +-109.187 -47.8544 126.057 +-108.96 -46.9118 123.574 +-113.195 -47.8775 126.118 +-113.134 -47.0126 123.84 +-116.844 -47.705 125.664 +-116.952 -46.9161 123.585 +-110.808 -43.6771 115.053 +-111.135 -43.0443 113.387 +-97.4576 -37.0918 97.7064 +-97.1957 -36.3511 95.7553 +-97.1827 -35.7168 94.0846 +-97.2862 -35.1359 92.5544 +-96.9443 -34.4066 90.6332 +-97.1447 -33.8812 89.2491 +-97.3986 -33.3818 87.9336 +-97.4903 -32.8346 86.4922 +-97.5626 -32.2893 85.0559 +-97.0994 -31.5783 83.1829 +-97.352 -31.1101 81.9497 +-97.514 -30.6193 80.6567 +-97.7349 -30.1531 79.4287 +-98.0163 -29.711 78.2641 +-97.6707 -29.0869 76.6201 +-98.0735 -28.693 75.5825 +-97.9981 -28.1648 74.1911 +-97.4347 -27.5067 72.4577 +-97.7921 -27.1165 71.4297 +-97.8205 -26.6397 70.1739 +-97.753 -26.1435 68.8668 +-98.5529 -25.882 68.1779 +-97.8102 -25.2211 66.437 +-97.8567 -24.773 65.2565 +-97.7248 -24.2858 63.9731 +-98.4007 -24.0023 63.2263 +-98.4068 -23.5577 62.0551 +-98.4819 -23.1345 60.9403 +-99.2986 -22.8866 60.2873 +-101.123 -22.8642 60.2283 +-102.868 -22.8134 60.0946 +-105.727 -22.9946 60.572 +-106.717 -22.7577 59.9478 +-109.341 -22.8586 60.2137 +-110.591 -22.6611 59.6934 +-113.32 -22.7546 59.9397 +-115.187 -22.6609 59.6928 +-117.674 -22.6758 59.7323 +-119.639 -22.5771 59.4722 +-146.091 -26.991 71.0991 +-164.123 -29.6795 78.1811 +-163.326 -28.9008 76.1299 +-163.491 -28.3005 74.5486 +-163.639 -27.7014 72.9705 +-164.042 -27.1485 71.5141 +-164.157 -26.5512 69.9405 +-164.073 -25.9262 68.2944 +-164.337 -25.3605 66.804 +-164.862 -24.8366 65.4242 +-164.173 -24.135 63.5758 +-163.184 -23.3996 61.6387 +-161.055 -22.5161 59.3114 +-113.617 -15.4789 40.7742 +-110.902 -14.7162 38.7653 +-109.662 -14.1659 37.3154 +-108.404 -13.6243 35.8888 +-108.167 -13.2187 34.8204 +-108.299 -12.8606 33.8772 +-108.42 -12.5028 32.9346 +-108.628 -12.1558 32.0207 +-108.636 -11.7878 31.0512 +-109.305 -11.4912 30.2699 +-109.776 -11.1718 29.4286 +-109.468 -10.7745 28.382 +-109.15 -10.3799 27.3426 +-109.594 -10.0592 26.4979 +-110.42 -9.77095 25.7385 +-110.85 -9.44518 24.8803 +-112.053 -9.18134 24.1853 +-113.446 -8.92612 23.513 +-115.617 -8.72201 22.9754 +-118.571 -8.5617 22.5531 +-159.318 -10.991 28.9523 +-159.877 -10.5166 27.7025 +-163.183 -10.212 26.9003 +-860.238 -51.0912 134.584 +-843.782 -47.431 124.942 +-842.938 -44.711 117.777 +-851.631 -42.479 111.897 +-381.31 -17.8167 46.9324 +-383.123 -16.6956 43.9792 +-381.83 -15.4401 40.6719 +-897.954 -33.4961 88.2346 +-404.33 -13.8176 36.398 +-404.654 -12.5648 33.098 +-405.247 -11.3194 29.8173 +-404.113 -10.0292 26.4187 +-144.131 -3.12869 8.24153 +-404.046 -7.51528 19.7966 +-405.114 -6.27756 16.5362 +-402.854 -4.99289 13.1522 +-3275.18 -30.4384 80.1803 +-149.577 -0.92663 2.44091 +-3276.18 -10.1472 26.7294 +119 5.77316e-15 2.84217e-14 +118.895 -0.359484 0.973326 +119.482 -0.722565 1.95639 +119.659 -1.08559 2.93931 +119.727 -1.44854 3.92201 +119.586 -1.80896 4.89786 +119.636 -2.17226 5.88152 +119.577 -2.53388 6.86065 +120.306 -2.91465 7.89159 +119.929 -3.27012 8.85404 +120.739 -3.65977 9.90906 +119.945 -4.00142 10.8341 +119.542 -4.35304 11.7861 +120.322 -4.7496 12.8598 +120.098 -5.10898 13.8329 +120.758 -5.50807 14.9134 +120.02 -5.84403 15.8231 +120.858 -6.25788 16.9436 +120.794 -6.62846 17.947 +120.228 -6.97055 18.8732 +119.95 -7.32775 19.8403 +120.35 -7.72802 20.9241 +120.053 -8.08498 21.8906 +120.825 -8.51674 23.0596 +119.627 -8.80967 23.8527 +120.28 -9.23852 25.0139 +120.822 -9.66415 26.1663 +120.477 -10.021 27.1325 +120.899 -10.4435 28.2765 +120.534 -10.8 29.2416 +120.258 -11.164 30.2272 +120.743 -11.6012 31.4111 +121.215 -12.0423 32.6051 +120.907 -12.4083 33.5961 +121.355 -12.8544 34.8041 +121.122 -13.2312 35.8243 +121.64 -13.6933 37.0754 +121.385 -14.0715 38.0995 +121.783 -14.5282 39.336 +121.129 -14.8612 40.2375 +121.784 -15.3572 41.5805 +121.955 -15.7976 42.7729 +121.179 -16.116 43.6352 +117.698 -16.0628 43.4909 +114.414 -16.0157 43.3634 +111.512 -16.003 43.3291 +107.975 -15.8793 42.9941 +105.37 -15.8736 42.9786 +102.043 -15.7406 42.6186 +100.278 -15.833 42.8688 +97.8812 -15.8134 42.8159 +96.3058 -15.9149 43.0905 +97.4293 -16.4636 44.5763 +96.9214 -16.7421 45.3303 +97.1197 -17.1446 46.4201 +97.8373 -17.6456 47.7765 +97.3008 -17.9244 48.5315 +96.7578 -18.2014 49.2814 +96.2082 -18.4764 50.0261 +96.5224 -18.9202 51.2275 +96.8216 -19.3672 52.4378 +96.244 -19.6416 53.1807 +96.4313 -20.0746 54.3531 +96.6041 -20.5102 55.5326 +96.8471 -20.9667 56.7687 +96.3153 -21.2587 57.5593 +96.4471 -21.7001 58.7543 +96.564 -22.1438 59.9557 +96.0026 -22.4349 60.7439 +96.1755 -22.9009 62.0057 +96.2504 -23.3498 63.221 +96.3913 -23.821 64.4968 +96.4348 -24.2744 65.7245 +96.5432 -24.7505 67.0136 +96.3953 -25.1666 68.1402 +96.6304 -25.6891 69.5548 +96.4525 -26.1083 70.6897 +95.9478 -26.442 71.5934 +95.8221 -26.8837 72.7893 +96.3759 -27.525 74.5257 +95.7556 -27.8376 75.3721 +95.7351 -28.3285 76.7013 +95.6972 -28.8215 78.036 +96.3157 -29.5229 79.9352 +96.1629 -29.9985 81.2228 +96.2147 -30.5456 82.704 +95.9536 -31.0007 83.9363 +96.3297 -31.6712 85.7518 +96.1757 -32.1778 87.1235 +95.7895 -32.6131 88.302 +95.8837 -33.22 89.9451 +95.1835 -33.558 90.8604 +95.3071 -34.1934 92.5808 +94.1669 -34.3797 93.0853 +94.5932 -35.1446 95.1563 +94.6502 -35.787 96.8955 +94.682 -36.4321 98.6422 +94.4234 -36.9764 100.116 +94.6037 -37.705 102.089 +94.17 -38.2004 103.43 +94.7469 -39.1206 105.922 +94.0124 -39.5125 106.982 +94.5239 -40.4413 109.497 +94.6845 -41.241 111.662 +94.8734 -42.0714 113.911 +94.6624 -42.7415 115.725 +94.4248 -43.4136 117.545 +93.6251 -43.8367 118.69 +93.2815 -44.4825 120.439 +90.7639 -44.0858 119.365 +90.6824 -44.8695 121.487 +88.5293 -44.628 120.833 +87.4019 -44.8941 121.553 +85.1639 -44.5788 120.7 +85.1271 -45.4155 122.965 +82.6367 -44.9408 121.68 +82.4554 -45.7176 123.783 +81.353 -45.9948 124.534 +80.0369 -46.15 124.954 +78.0086 -45.8825 124.23 +77.7 -46.6267 126.245 +74.3067 -45.5031 123.203 +72.7214 -45.4532 123.067 +70.4286 -44.9405 121.679 +70.5616 -45.9778 124.488 +69.447 -46.22 125.143 +69.1882 -47.0456 127.379 +66.9297 -46.5089 125.926 +66.194 -47.021 127.312 +63.8448 -46.3748 125.563 +63.0546 -46.8488 126.846 +61.1258 -46.4701 125.821 +60.3597 -46.9697 127.173 +58.4167 -46.5467 126.028 +57.5547 -46.9766 127.192 +55.5656 -46.4767 125.839 +54.9922 -47.1571 127.681 +50.9437 -44.8071 121.318 +49.9207 -45.0565 121.993 +47.8733 -44.3619 120.113 +47.062 -44.7981 121.294 +45.5313 -44.5466 120.613 +44.668 -44.9446 121.69 +43.0582 -44.5854 120.718 +41.8718 -44.6477 120.886 +40.2946 -44.277 119.883 +39.5287 -44.7946 121.284 +37.8024 -44.215 119.715 +37.1008 -44.8272 121.372 +35.4893 -44.3366 120.044 +34.7594 -44.9443 121.689 +33.1754 -44.444 120.335 +32.2724 -44.8449 121.42 +30.558 -44.0986 119.4 +29.941 -44.9322 121.657 +28.4185 -44.4121 120.249 +27.6107 -45.0046 121.853 +26.2368 -44.6789 120.971 +25.1677 -44.8587 121.458 +23.7635 -44.4218 120.275 +22.7479 -44.6969 121.02 +21.3737 -44.2514 119.813 +20.6337 -45.1355 122.207 +19.23 -44.5795 120.702 +18.2317 -44.9446 121.69 +16.9945 -44.7233 121.091 +15.9161 -44.9107 121.598 +14.5466 -44.234 119.766 +13.6305 -44.9311 121.654 +12.3449 -44.4187 120.266 +11.3913 -45.1102 122.139 +10.1605 -44.7284 121.105 +9.1381 -45.2759 122.587 +7.84474 -44.4371 120.316 +6.80891 -45.0129 121.875 +5.59201 -44.374 120.145 +4.52995 -44.9433 121.687 +3.36374 -44.505 120.5 +2.26009 -44.8598 121.461 +1.11612 -44.3106 119.974 +5.55112e-15 -44.832 121.386 +-1.12136 -44.5185 120.537 +-2.27579 -45.1716 122.305 +-3.36897 -44.5743 120.688 +-4.56136 -45.2547 122.53 +-5.60509 -44.478 120.427 +-6.80891 -45.0129 121.875 +-7.84474 -44.4371 120.316 +-9.13112 -45.2412 122.493 +-10.1918 -44.8667 121.479 +-11.4435 -45.3171 122.699 +-12.4983 -44.9706 121.761 +-13.7559 -45.3445 122.773 +-14.6485 -44.5438 120.605 +-16.1111 -45.4609 123.088 +-17.0598 -44.8951 121.556 +-18.3987 -45.3562 122.805 +-19.363 -44.8878 121.537 +-20.7276 -45.341 122.764 +-21.6212 -44.7638 121.201 +-23.0084 -45.2086 122.405 +-23.9822 -44.8307 121.382 +-25.3967 -45.2668 122.563 +-26.177 -44.577 120.695 +-27.673 -45.1061 122.128 +-28.6133 -44.7163 121.072 +-30.3459 -45.5399 123.302 +-30.8615 -44.5365 120.585 +-32.7804 -45.5509 123.332 +-33.3256 -44.645 120.879 +-35.277 -45.6137 123.502 +-35.9703 -44.9377 121.672 +-37.6796 -45.5263 123.265 +-38.4557 -44.9789 121.783 +-40.2303 -45.5901 123.438 +-41.2568 -45.3344 122.746 +-42.7989 -45.6362 123.563 +-43.6611 -45.2093 122.407 +-45.6772 -45.9601 124.44 +-46.5327 -45.5263 123.265 +-48.2932 -45.9702 124.467 +-48.8189 -45.2381 122.485 +-51.1033 -46.124 124.884 +-51.9332 -45.6774 123.674 +-53.8684 -46.1933 125.071 +-54.9151 -45.9327 124.366 +-57.1249 -46.626 126.243 +-57.8585 -46.1018 124.824 +-60.319 -46.9382 127.088 +-60.7526 -46.1864 125.052 +-62.9279 -46.7546 126.591 +-63.4573 -46.0935 124.801 +-66.8954 -47.5192 128.661 +-67.9559 -47.2223 127.857 +-70.3231 -47.8175 129.469 +-71.5249 -47.603 128.888 +-73.754 -48.0579 130.12 +-74.6753 -47.6505 129.017 +-76.7454 -47.9682 129.877 +-77.5075 -47.4631 128.509 +-79.8 -47.8871 129.657 +-80.3941 -47.2857 128.029 +-83.0241 -47.8722 129.617 +-83.5475 -47.2354 127.893 +-85.7939 -47.5687 128.795 +-86.8276 -47.2198 127.851 +-88.994 -47.4787 128.551 +-89.5242 -46.8609 126.879 +-92.7142 -47.6224 128.941 +-94.0234 -47.3976 128.332 +-96.8771 -47.9346 129.786 +-97.0355 -47.1322 127.613 +-99.9823 -47.6779 129.091 +-101.06 -47.3179 128.116 +-103.994 -47.813 129.457 +-104.463 -47.1668 127.707 +-107.864 -47.832 129.508 +-108.567 -47.2874 128.034 +-111.767 -47.8189 129.473 +-112.459 -47.2652 127.974 +-115.123 -47.5341 128.701 +-116.446 -47.2368 127.897 +-120.19 -47.9027 129.7 +-118.742 -46.4996 125.9 +-97.0909 -37.3589 101.151 +-96.7445 -36.5786 99.039 +-97.253 -36.1328 97.8317 +-97.471 -35.586 96.3514 +-97.1827 -34.8664 94.4031 +-97.3563 -34.3241 92.9345 +-96.9443 -33.5874 90.94 +-97.216 -33.0988 89.617 +-97.3267 -32.5629 88.1661 +-97.4178 -32.0289 86.7203 +-97.0506 -31.3551 84.896 +-97.6892 -31.0137 83.9715 +-97.352 -30.3694 82.2271 +-97.514 -29.8903 80.9297 +-97.0557 -29.2306 79.1437 +-97.7882 -28.9361 78.3462 +-97.6707 -28.3943 76.8794 +-97.9192 -27.9657 75.719 +-97.6095 -27.3852 74.1471 +-97.826 -26.9596 72.9948 +-97.7133 -26.4495 71.6137 +-97.9791 -26.0476 70.5256 +-97.9926 -25.5836 69.2692 +-98.3921 -25.2245 68.297 +-97.8102 -24.6206 66.6619 +-97.7753 -24.163 65.4229 +-97.7248 -23.7075 64.1896 +-98.4007 -23.4308 63.4403 +-98.241 -22.958 62.1603 +-98.1484 -22.5071 60.9395 +-98.7115 -22.2095 60.1337 +-101.123 -22.3198 60.4322 +-102.953 -22.2886 60.3477 +-104.107 -22.1032 59.8458 +-106.803 -22.2337 60.1991 +-108.651 -22.1737 60.0367 +-110.591 -22.1215 59.8954 +-113.32 -22.2128 60.1426 +-115.187 -22.1213 59.8949 +-117.849 -22.169 60.0239 +-119.551 -22.0233 59.6294 +-128.883 -23.2448 62.9367 +-163.589 -28.8785 78.1902 +-164.399 -28.3982 76.8899 +-164.21 -27.7482 75.13 +-164.451 -27.1761 73.5809 +-164.585 -26.59 71.9941 +-163.975 -25.8902 70.0994 +-164.347 -25.3512 68.64 +-164.887 -24.8395 67.2546 +-164.402 -24.1776 65.4624 +-164.173 -23.5603 63.791 +-163.926 -22.9462 62.1284 +-163.102 -22.2593 60.2685 +-114.55 -15.2345 41.2483 +-111.37 -14.4265 39.0607 +-109.568 -13.8167 37.4095 +-109.158 -13.3924 36.2607 +-108.167 -12.9039 34.9382 +-108.109 -12.5324 33.9323 +-108.325 -12.1944 33.0171 +-108.438 -11.8456 32.0726 +-108.254 -11.4666 31.0466 +-109.114 -11.1979 30.3191 +-109.968 -10.9249 29.5799 +-108.601 -10.4346 28.2524 +-110.019 -10.2135 27.6537 +-109.594 -9.81974 26.5876 +-110.323 -9.52993 25.8029 +-111.045 -9.23647 25.0083 +-111.37 -8.90817 24.1194 +-113.055 -8.68359 23.5114 +-114.737 -8.44949 22.8775 +-118.375 -8.34403 22.592 +-155.195 -10.4517 28.2985 +-160.762 -10.323 27.9501 +-159.834 -9.76434 26.4376 +-848.304 -49.1825 133.165 +-834.498 -45.7921 123.985 +-838.982 -43.4417 117.621 +-852.324 -41.5012 112.367 +-384.482 -17.5372 47.483 +-382.825 -16.2854 44.0937 +-381.532 -15.0607 40.7777 +-899.346 -32.7493 88.6706 +-405.823 -13.5384 36.6561 +-404.654 -12.2657 33.21 +-403.452 -11.001 29.7858 +-402.417 -9.74934 26.3969 +-146.327 -3.10073 8.39541 +-401.749 -7.29466 19.7508 +-403.915 -6.10994 16.543 +-401.655 -4.8595 13.1574 +-144.251 -1.3087 3.54338 +-145.178 -0.877963 2.37714 +-145.694 -0.440511 1.19271 +119 5.77316e-15 2.84217e-14 +118.895 -0.350687 0.97653 +119.682 -0.706062 1.96611 +119.659 -1.05903 2.94899 +119.627 -1.41191 3.93164 +119.686 -1.76616 4.91809 +119.636 -2.1191 5.90088 +119.577 -2.47187 6.88323 +120.306 -2.84332 7.91757 +120.129 -3.19539 8.89796 +119.842 -3.54368 9.86779 +119.647 -3.89379 10.8427 +120.536 -4.28183 11.9233 +120.322 -4.63337 12.9022 +120.098 -4.98396 13.8784 +120.758 -5.37328 14.9625 +120.912 -5.74334 15.993 +120.067 -6.06479 16.8881 +120.696 -6.46097 17.9914 +120.228 -6.79997 18.9353 +119.95 -7.14843 19.9057 +119.564 -7.48962 20.8557 +120.053 -7.88712 21.9626 +119.845 -8.24092 22.9478 +120.41 -8.65029 24.0878 +120.182 -9.0051 25.0758 +120.822 -9.42765 26.2524 +120.477 -9.77577 27.2218 +120.802 -10.1798 28.3469 +120.631 -10.5441 29.3614 +120.451 -10.9083 30.3754 +120.743 -11.3173 31.5145 +120.927 -11.7196 32.6346 +120.715 -12.0854 33.6533 +121.355 -12.5398 34.9186 +121.027 -12.8973 35.914 +121.64 -13.3582 37.1974 +121.291 -13.7164 38.1951 +121.121 -14.0957 39.251 +121.129 -14.4975 40.37 +120.938 -14.8773 41.4276 +121.205 -15.3163 42.65 +120.805 -15.6732 43.6439 +116.674 -15.5334 43.2547 +113.58 -15.5098 43.1888 +110.588 -15.482 43.1116 +107.883 -15.4775 43.0989 +104.728 -15.3907 42.8574 +102.043 -15.3554 42.7589 +100.369 -15.4596 43.049 +97.8812 -15.4265 42.9568 +96.1253 -15.4963 43.1513 +97.4293 -16.0607 44.723 +97.0109 -16.3475 45.5215 +97.2088 -16.7404 46.6157 +97.4825 -17.1513 47.7599 +96.8594 -17.4064 48.4703 +96.7578 -17.756 49.4436 +96.2082 -18.0243 50.1908 +96.5224 -18.4572 51.3961 +96.8216 -18.8932 52.6104 +96.244 -19.1609 53.3558 +96.4313 -19.5833 54.5321 +96.7747 -20.0436 55.8137 +96.0838 -20.2924 56.5067 +97.0744 -20.9019 58.2039 +96.531 -21.1874 58.999 +96.564 -21.6019 60.1531 +95.9196 -21.867 60.8912 +96.1755 -22.3405 62.2098 +96.3323 -22.7978 63.4832 +95.6586 -23.0614 64.2173 +96.4348 -23.6804 65.9409 +96.5432 -24.1449 67.2342 +96.555 -24.5914 68.4777 +95.9164 -24.8753 69.2682 +95.9797 -25.3445 70.5748 +95.7912 -25.7528 71.7119 +95.8221 -26.2258 73.0289 +96.3759 -26.8514 74.771 +95.7556 -27.1564 75.6202 +95.7351 -27.6353 76.9538 +95.6972 -28.1162 78.2929 +96.3157 -28.8005 80.1983 +95.5684 -29.0835 80.9864 +96.2147 -29.7981 82.9762 +95.9536 -30.2421 84.2126 +96.3297 -30.8962 86.034 +96.2477 -31.4139 87.4757 +96.0035 -31.8861 88.7906 +95.7423 -32.3592 90.1081 +96.0246 -33.0261 91.965 +95.4461 -33.4053 93.021 +94.9241 -33.808 94.1425 +95.3434 -34.5563 96.2262 +94.7853 -34.9609 97.3528 +94.682 -35.5405 98.9669 +94.3571 -36.0462 100.375 +94.6037 -36.7823 102.425 +94.8194 -37.5225 104.486 +94.5541 -38.0855 106.054 +94.4576 -38.7281 107.843 +94.5239 -39.4517 109.858 +94.56 -40.1787 111.882 +94.6272 -40.9354 113.99 +94.2971 -41.5347 115.658 +94.9664 -42.5942 118.609 +94.5173 -43.1715 120.216 +93.8693 -43.6673 121.597 +93.4351 -44.2727 123.282 +92.0017 -44.4082 123.66 +90.1152 -44.3156 123.402 +89.359 -44.7759 124.684 +87.2612 -44.5586 124.079 +86.2708 -44.8993 125.027 +84.5172 -44.8384 124.858 +84.0982 -45.4874 126.665 +82.2413 -45.3593 126.308 +81.3245 -45.7449 127.382 +79.785 -45.779 127.477 +79 -46.2468 128.78 +76.9658 -45.9781 128.032 +75.7757 -46.2032 128.658 +72.4327 -45.0882 125.553 +71.8761 -45.6881 127.224 +71.0631 -46.1383 128.478 +69.9145 -46.3763 129.14 +68.4467 -46.3992 129.204 +67.2461 -46.5993 129.761 +65.3946 -46.3384 129.035 +64.1957 -46.5294 129.567 +62.6601 -46.4709 129.404 +61.4172 -46.623 129.827 +59.4934 -46.2444 128.773 +58.6097 -46.6673 129.951 +56.4075 -46.0264 128.166 +55.5167 -46.4418 129.323 +53.0327 -45.5029 126.708 +51.1033 -44.9953 125.295 +49.1341 -44.416 123.682 +48.1906 -44.7499 124.611 +46.4325 -44.3166 123.405 +45.3842 -44.5478 124.049 +43.915 -44.3595 123.524 +42.768 -44.4873 123.88 +41.2869 -44.2571 123.239 +40.3181 -44.5711 124.114 +38.7397 -44.2024 123.087 +37.845 -44.6073 124.214 +36.4513 -44.4241 123.704 +35.3806 -44.6279 124.272 +34.0016 -44.4359 123.737 +33.0707 -44.8297 124.834 +31.4918 -44.3342 123.454 +30.5484 -44.7215 124.532 +29.0678 -44.3152 123.401 +28.1097 -44.6968 124.464 +26.6555 -44.2811 123.306 +25.6829 -44.6566 124.352 +24.4196 -44.5312 124.002 +23.321 -44.7016 124.477 +21.9183 -44.2686 123.271 +21.0091 -44.8324 124.841 +19.5404 -44.1905 123.054 +18.6074 -44.7485 124.608 +17.2817 -44.3659 123.542 +16.3183 -44.9185 125.081 +14.9315 -44.2933 123.34 +13.9127 -44.7391 124.581 +12.6996 -44.5765 124.129 +11.5481 -44.6123 124.228 +10.3017 -44.2402 123.192 +9.24273 -44.6735 124.399 +8.03399 -44.3957 123.625 +6.96592 -44.9239 125.096 +5.70978 -44.1997 123.079 +4.62418 -44.7553 124.626 +3.45274 -44.5647 124.096 +2.31244 -44.7759 124.684 +1.14841 -44.4768 123.851 +5.21805e-15 -44.7827 124.703 +-1.14841 -44.4768 123.851 +-2.32292 -44.9787 125.249 +-3.45274 -44.5647 124.096 +-4.61371 -44.6539 124.344 +-5.74031 -44.4362 123.738 +-6.95021 -44.8226 124.814 +-8.03399 -44.3957 123.625 +-9.38225 -45.3478 126.276 +-10.3488 -44.4423 123.755 +-11.705 -45.2183 125.916 +-12.6996 -44.5765 124.129 +-14.0382 -45.1423 125.704 +-15.1239 -44.8641 124.93 +-16.4036 -45.1534 125.735 +-17.4122 -44.7012 124.476 +-18.7745 -45.1501 125.726 +-19.7621 -44.6918 124.45 +-21.103 -45.0324 125.398 +-22.1164 -44.6684 124.385 +-23.4772 -45.001 125.311 +-24.5836 -44.8303 124.835 +-25.8355 -44.9219 125.09 +-26.8947 -44.6786 124.413 +-28.3384 -45.0605 125.476 +-29.1977 -44.513 123.952 +-30.8183 -45.1169 125.633 +-31.912 -44.9256 125.101 +-33.4336 -45.3218 126.204 +-34.4273 -44.9922 125.286 +-35.8982 -45.2809 126.09 +-36.9056 -44.9777 125.246 +-38.5617 -45.4522 126.567 +-39.4781 -45.0449 125.433 +-41.0198 -45.3471 126.274 +-42.159 -45.192 125.842 +-43.9113 -45.6766 127.192 +-44.5178 -44.9686 125.22 +-46.5562 -45.6983 127.252 +-47.434 -45.2724 126.066 +-49.3877 -45.8615 127.707 +-50.3948 -45.5556 126.855 +-52.1784 -45.9416 127.93 +-53.2526 -45.6918 127.234 +-55.1046 -46.0971 128.363 +-56.2927 -45.9328 127.905 +-58.4924 -46.574 129.691 +-59.294 -46.0896 128.342 +-61.2139 -46.4689 129.398 +-61.9966 -45.9788 128.033 +-64.1112 -46.4682 129.396 +-65.9543 -46.7349 130.139 +-68.079 -47.1766 131.369 +-69.4284 -47.0647 131.057 +-71.1857 -47.2195 131.488 +-72.5407 -47.0975 131.149 +-74.646 -47.449 132.127 +-75.2479 -46.8406 130.433 +-78.1028 -47.6221 132.609 +-79.034 -47.2134 131.471 +-81.1 -47.4761 132.203 +-81.8152 -46.9441 130.721 +-84.3117 -47.425 132.061 +-84.906 -46.8288 130.4 +-86.9068 -47.0066 130.895 +-88.2783 -46.8339 130.415 +-90.0833 -46.8836 130.553 +-91.9527 -46.9542 130.75 +-94.224 -47.2138 131.472 +-95.2695 -46.8504 130.461 +-97.7948 -47.2043 131.446 +-99.4163 -47.107 131.175 +-101.158 -47.058 131.039 +-102.904 -47.0022 130.883 +-105.257 -47.2097 131.461 +-106.655 -46.9782 130.816 +-108.911 -47.1144 131.196 +-110.185 -46.818 130.37 +-113.026 -47.1739 131.361 +-114.303 -46.865 130.501 +-117.566 -47.3547 131.865 +-119.174 -47.16 131.323 +-99.3273 -38.6189 107.539 +-97.8027 -37.3626 104.041 +-97.0239 -36.4196 101.415 +-96.9472 -35.7582 99.573 +-97.253 -35.2485 98.1537 +-97.5398 -34.7399 96.7373 +-97.1132 -33.9889 94.6461 +-97.3563 -33.4841 93.2404 +-97.51 -32.9567 91.7718 +-97.1447 -32.2651 89.846 +-97.3267 -31.7661 88.4564 +-97.4178 -31.2451 87.0058 +-96.9044 -30.5417 85.0471 +-97.8367 -30.3004 84.3751 +-97.352 -29.6262 82.4978 +-97.514 -29.1588 81.1961 +-97.433 -28.6262 79.713 +-97.5601 -28.1621 78.4208 +-97.6707 -27.6995 77.1325 +-97.4562 -27.1524 75.6091 +-97.6872 -26.7363 74.4504 +-97.7478 -26.2788 73.1766 +-97.7133 -25.8023 71.8495 +-97.8205 -25.3691 70.6432 +-97.753 -24.8965 69.3274 +-97.8294 -24.4665 68.1299 +-98.4574 -24.1771 67.3239 +-98.508 -23.7484 66.1302 +-98.4621 -23.3018 64.8867 +-98.4831 -22.8765 63.7024 +-98.241 -22.3962 62.3649 +-98.5653 -22.0496 61.3998 +-98.7115 -21.666 60.3316 +-100.364 -21.6102 60.1761 +-102.275 -21.5999 60.1475 +-104.193 -21.5799 60.0919 +-106.117 -21.5503 60.0095 +-108.651 -21.6311 60.2343 +-110.591 -21.5802 60.0926 +-112.45 -21.5028 59.8772 +-115.187 -21.58 60.092 +-117.41 -21.5458 59.997 +-119.639 -21.5002 59.8699 +-125.423 -22.0673 61.4491 +-163.321 -28.1257 78.3194 +-164.399 -27.7032 77.143 +-164.569 -27.1284 75.5424 +-164.451 -26.511 73.8231 +-163.951 -25.8393 71.9526 +-163.793 -25.2286 70.2521 +-164.438 -24.7446 68.9042 +-164.612 -24.1913 67.3635 +-165.231 -23.7048 66.0089 +-164.173 -22.9838 64.001 +-164.019 -22.3974 62.3682 +-164.498 -21.9004 60.9842 +-115.017 -14.9222 41.5527 +-111.277 -14.0616 39.1563 +-109.568 -13.4786 37.5327 +-109.064 -13.0534 36.3487 +-108.167 -12.5882 35.0532 +-108.678 -12.2901 34.2232 +-108.42 -11.9064 33.1548 +-108.342 -11.5455 32.15 +-108.254 -11.186 31.1489 +-108.922 -10.9047 30.3654 +-110.257 -10.6855 29.7551 +-109.854 -10.2967 28.6724 +-109.15 -9.88484 27.5255 +-109.497 -9.57099 26.6516 +-110.323 -9.29671 25.8878 +-111.045 -9.01044 25.0907 +-111.468 -8.69777 24.22 +-114.129 -8.55156 23.8129 +-114.932 -8.25678 22.992 +-118.277 -8.13311 22.6476 +-153.33 -10.0734 28.0505 +-158.796 -9.94716 27.6991 +-160.425 -9.56061 26.6227 +-837.258 -47.3544 131.864 +-831.337 -44.5025 123.922 +-839.872 -42.4236 118.133 +-852.819 -40.5092 112.803 +-381.012 -16.9536 47.2093 +-381.138 -15.8168 44.0439 +-379.743 -14.6232 40.7202 +-899.147 -31.9408 88.9429 +-404.33 -13.1585 36.6414 +-403.758 -11.939 33.2455 +-403.153 -10.7238 29.8617 +-403.914 -9.54611 26.5823 +-145.728 -3.01247 8.38858 +-403.546 -7.14799 19.9044 +-403.016 -5.94717 16.5606 +-401.955 -4.74412 13.2106 +-146.15 -1.29348 3.60186 +-147.078 -0.867685 2.41617 +-145.194 -0.428254 1.19252 +118.9 5.32907e-15 2.84217e-14 +118.895 -0.341861 0.979655 +119.682 -0.688293 1.97241 +119.659 -1.03237 2.95842 +119.727 -1.37753 3.94751 +119.586 -1.72028 4.92971 +119.636 -2.06577 5.91977 +119.577 -2.40967 6.90526 +120.306 -2.77176 7.9429 +120.129 -3.11498 8.92643 +119.842 -3.45449 9.89937 +119.647 -3.7958 10.8774 +120.536 -4.17407 11.9614 +120.322 -4.51676 12.9434 +120.098 -4.85853 13.9228 +120.758 -5.23805 15.0104 +120.912 -5.59879 16.0442 +120.165 -5.917 16.956 +120.696 -6.29837 18.0489 +120.228 -6.62883 18.9959 +120.737 -7.01432 20.1006 +120.252 -7.34317 21.043 +120.053 -7.68863 22.0329 +120.727 -8.09263 23.1906 +120.508 -8.43944 24.1845 +120.28 -8.78562 25.1765 +120.822 -9.19038 26.3364 +120.574 -9.53742 27.3309 +120.899 -9.93157 28.4604 +120.534 -10.2705 29.4318 +120.354 -10.6253 30.4482 +120.647 -11.0237 31.59 +121.023 -11.4337 32.765 +120.715 -11.7813 33.7609 +121.164 -12.205 34.9751 +120.836 -12.5529 35.9721 +121.45 -13.0016 37.2581 +121.385 -13.3817 38.3472 +121.215 -13.7516 39.4073 +121.318 -14.1546 40.5621 +120.938 -14.5029 41.5602 +121.393 -14.9539 42.8527 +120.339 -15.2197 43.6143 +116.395 -15.1063 43.2892 +113.487 -15.1071 43.2916 +111.512 -15.2185 43.6108 +107.883 -15.0879 43.2368 +104.728 -15.0034 42.9945 +102.043 -14.9689 42.8957 +99.4588 -14.9338 42.7952 +97.8812 -15.0382 43.0943 +96.3058 -15.1347 43.3706 +96.6204 -15.5265 44.4936 +97.0109 -15.936 45.6671 +97.1197 -16.3041 46.7219 +98.0147 -16.8109 48.1743 +96.8594 -16.9684 48.6254 +96.9335 -17.3405 49.6919 +96.9953 -17.7144 50.7633 +96.5224 -17.9926 51.5606 +96.8216 -18.4177 52.7788 +96.3301 -18.6954 53.5745 +96.4313 -19.0905 54.7066 +96.6894 -19.5219 55.9429 +96.0838 -19.7817 56.6875 +96.3153 -20.2165 57.9335 +96.531 -20.6542 59.1877 +96.564 -21.0583 60.3456 +96.7487 -21.5009 61.6141 +96.1755 -21.7783 62.4088 +96.3323 -22.224 63.6863 +96.3099 -22.6341 64.8614 +96.4348 -23.0844 66.1519 +95.8197 -23.3608 66.944 +95.8363 -23.7941 68.1854 +96.4718 -24.3896 69.8921 +95.8221 -24.6661 70.6843 +96.4956 -25.2893 72.4703 +95.9775 -25.6073 73.3814 +95.8358 -26.0289 74.5898 +96.3684 -26.6424 76.3476 +95.7351 -26.9398 77.2 +95.6972 -27.4086 78.5434 +96.1659 -28.032 80.3298 +96.1629 -28.5279 81.7509 +96.0672 -29.0036 83.1142 +95.9536 -29.481 84.4821 +95.7494 -29.9372 85.7894 +95.6003 -30.4173 87.1653 +96.0035 -31.0836 89.0747 +95.813 -31.5681 90.4632 +96.1648 -32.2419 92.394 +95.3766 -32.5409 93.2507 +95.3371 -33.1005 94.8545 +94.5932 -33.4218 95.775 +94.7177 -34.0567 97.5944 +94.2136 -34.4748 98.7926 +94.3571 -35.139 100.696 +94.6037 -35.8566 102.752 +94.2349 -36.3528 104.174 +94.4898 -37.102 106.321 +94.4576 -37.7534 108.188 +94.5239 -38.4588 110.209 +94.56 -39.1675 112.24 +94.6272 -39.9052 114.354 +95.2103 -40.8814 117.152 +94.846 -41.4695 118.837 +94.6958 -42.1644 120.828 +94.2808 -42.7548 122.52 +94.0158 -43.4266 124.446 +93.0341 -43.7762 125.447 +90.6816 -43.4721 124.576 +90.3656 -44.1406 126.492 +88.6963 -44.1515 126.523 +87.3601 -44.3222 127.012 +85.3232 -44.1271 126.453 +84.8401 -44.734 128.192 +82.9205 -44.5828 127.759 +82.3546 -45.1584 129.408 +80.7494 -45.1663 129.431 +79.45 -45.3396 129.927 +77.9014 -45.3656 130.002 +76.7454 -45.6167 130.721 +73.387 -44.5327 127.615 +71.8761 -44.5383 127.631 +70.4167 -44.5679 127.716 +70.5955 -45.6496 130.816 +69.2053 -45.7326 131.054 +67.9914 -45.93 131.619 +66.1265 -45.6776 130.896 +64.9564 -45.8961 131.522 +63.2822 -45.7511 131.107 +62.2714 -46.0819 132.055 +60.6099 -45.9267 131.61 +59.7819 -46.4025 132.973 +57.4791 -45.7205 131.019 +56.6405 -46.1893 132.362 +54.0223 -45.1857 129.486 +52.5009 -45.0625 129.133 +49.9396 -44.0078 126.111 +48.7037 -44.0879 126.34 +47.2337 -43.9469 125.936 +45.9702 -43.9874 126.052 +44.2005 -43.5242 124.725 +43.3242 -43.9317 125.893 +42.0086 -43.8975 125.795 +40.8443 -44.0167 126.137 +39.2509 -43.6586 125.11 +38.2585 -43.9597 125.973 +36.6918 -43.5917 124.919 +35.9241 -44.1732 126.585 +34.4523 -43.8919 125.779 +33.2885 -43.9894 126.058 +32.0287 -43.9551 125.96 +30.9533 -44.1739 126.587 +29.5873 -43.9719 126.008 +28.5463 -44.2487 126.801 +27.0144 -43.7479 125.366 +26.0263 -44.1149 126.418 +24.6929 -43.8965 125.792 +23.6856 -44.2579 126.828 +22.2649 -43.8368 125.621 +21.2438 -44.192 126.639 +19.9838 -44.0559 126.249 +18.858 -44.2095 126.689 +17.5166 -43.8375 125.623 +16.428 -44.0823 126.324 +15.1692 -43.8662 125.705 +14.0382 -44.0062 126.106 +12.7187 -43.5202 124.714 +11.705 -44.0803 126.319 +10.4821 -43.8823 125.751 +9.34737 -44.0424 126.21 +8.1805 -44.0675 126.282 +7.01302 -44.0892 126.344 +5.80574 -43.8115 125.548 +4.66257 -43.9914 126.064 +3.48415 -43.8382 125.625 +2.33862 -44.1433 126.499 +1.1615 -43.8517 125.663 +4.66294e-15 -44.1498 126.518 +-1.16936 -44.1482 126.513 +-2.33862 -44.1433 126.499 +-3.49986 -44.0358 126.191 +-4.67653 -44.1228 126.441 +-5.845 -44.1077 126.397 +-7.02872 -44.1881 126.627 +-8.21713 -44.2648 126.847 +-9.46595 -44.6009 127.811 +-10.6077 -44.4078 127.257 +-11.8357 -44.5726 127.729 +-12.9775 -44.4058 127.252 +-14.195 -44.4978 127.515 +-15.3277 -44.3245 127.018 +-16.5864 -44.5077 127.543 +-17.7646 -44.4582 127.402 +-19.0667 -44.6991 128.092 +-20.0725 -44.2513 126.809 +-21.4315 -44.5824 127.758 +-22.463 -44.2266 126.738 +-23.9461 -44.7445 128.222 +-24.8387 -44.1558 126.535 +-26.179 -44.3736 127.159 +-27.2536 -44.1353 126.476 +-28.7126 -44.5063 127.54 +-29.7821 -44.2612 126.837 +-31.1557 -44.4628 127.415 +-32.1921 -44.1795 126.603 +-33.6513 -44.4688 127.432 +-34.8779 -44.4342 127.333 +-36.0017 -44.2685 126.858 +-37.3866 -44.4174 127.285 +-39.0578 -44.8783 128.605 +-40.0746 -44.5745 127.735 +-41.6922 -44.9304 128.755 +-42.7002 -44.6203 127.866 +-44.3439 -44.966 128.857 +-45.5332 -44.8365 128.486 +-47.3051 -45.2648 129.713 +-48.0348 -44.6922 128.072 +-50.106 -45.3574 129.978 +-51.2003 -45.1188 129.295 +-53.0743 -45.5544 130.543 +-54.0223 -45.1857 129.486 +-55.8164 -45.5172 130.436 +-57.0198 -45.3551 129.972 +-58.9613 -45.7656 131.148 +-60.4105 -45.7758 131.177 +-61.824 -45.7508 131.106 +-62.909 -45.4813 130.333 +-65.1255 -46.0153 131.864 +-66.514 -45.9452 131.663 +-68.6051 -46.3445 132.807 +-69.83 -46.1455 132.237 +-71.7305 -46.3834 132.918 +-73.2795 -46.3801 132.909 +-74.646 -46.2549 132.55 +-76.584 -46.4726 133.174 +-78.1028 -46.4236 133.034 +-79.7234 -46.4269 133.043 +-81.25 -46.3669 132.871 +-82.7795 -46.302 132.685 +-84.3117 -46.2315 132.483 +-86.0033 -46.2404 132.509 +-87.8076 -46.2987 132.676 +-88.8694 -45.961 131.708 +-91.4449 -46.3946 132.951 +-92.7806 -46.1847 132.349 +-95.2865 -46.5445 133.38 +-96.7988 -46.4044 132.979 +-98.7125 -46.4483 133.104 +-99.939 -46.1626 132.286 +-102.216 -46.3534 132.833 +-104.035 -46.3227 132.745 +-106.1 -46.39 132.937 +-107.386 -46.1096 132.134 +-109.711 -46.2664 132.583 +-111.368 -46.1297 132.191 +-114.536 -46.6015 133.543 +-116.339 -46.499 133.25 +-119.366 -46.8693 134.311 +-112.809 -43.5182 124.708 +-97.4904 -36.9508 105.888 +-97.2064 -36.2002 103.737 +-97.0909 -35.5274 101.809 +-96.8796 -34.8342 99.8227 +-97.253 -34.3614 98.4678 +-97.5398 -33.8656 97.0468 +-97.1827 -33.1572 95.0169 +-97.3563 -32.6414 93.5388 +-97.4393 -32.104 91.9987 +-97.1447 -31.4531 90.1335 +-97.4705 -31.0124 88.8706 +-97.4178 -30.4588 87.2842 +-97.6357 -29.9978 85.9631 +-97.0994 -29.3152 84.0072 +-97.2777 -28.8586 82.6986 +-97.8885 -28.5341 81.7687 +-97.5085 -27.9273 80.03 +-98.0924 -27.6031 79.1009 +-97.9005 -27.0659 77.5615 +-98.305 -26.6996 76.5116 +-97.6095 -26.0427 74.6292 +-97.826 -25.638 73.4694 +-97.7921 -25.1732 72.1375 +-97.8205 -24.7306 70.8692 +-97.9127 -24.3096 69.6628 +-97.6686 -23.8116 68.2357 +-97.8102 -23.4136 67.0953 +-98.508 -23.1507 66.3418 +-98.3802 -22.6965 65.0401 +-98.4007 -22.2821 63.8528 +-98.3239 -21.851 62.6172 +-98.1484 -21.4038 61.3357 +-98.7115 -21.1208 60.5247 +-100.364 -21.0663 60.3686 +-102.275 -21.0563 60.3399 +-104.789 -21.1574 60.6296 +-106.203 -21.0249 60.2501 +-108.651 -21.0867 60.427 +-109.812 -20.8888 59.86 +-112.45 -20.9617 60.0687 +-114.488 -20.9091 59.9181 +-117.586 -21.035 60.279 +-119.639 -20.9591 60.0615 +-124.359 -21.3294 61.1225 +-163.945 -27.5226 78.8701 +-163.594 -26.8737 77.0107 +-163.401 -26.2579 75.246 +-163.639 -25.7162 73.6936 +-163.951 -25.189 72.1828 +-164.157 -24.6484 70.6336 +-163.89 -24.0414 68.8943 +-164.887 -23.6218 67.6919 +-164.034 -22.9409 65.7405 +-164.635 -22.4684 64.3865 +-163.648 -21.7844 62.4263 +-164.498 -21.3492 61.1794 +-116.137 -14.6884 42.0918 +-111.277 -13.7077 39.2816 +-109.662 -13.1507 37.6852 +-109.064 -12.7249 36.465 +-108.167 -12.2713 35.1654 +-108.678 -11.9808 34.3327 +-108.516 -11.6169 33.2901 +-108.342 -11.255 32.2528 +-108.158 -10.8949 31.2209 +-108.73 -10.6115 30.409 +-110.257 -10.4166 29.8503 +-108.987 -9.95833 28.5371 +-109.15 -9.63607 27.6136 +-109.401 -9.32184 26.7131 +-110.323 -9.06274 25.9706 +-111.142 -8.79135 25.1929 +-111.468 -8.47888 24.2975 +-113.446 -8.28643 23.746 +-115.128 -8.06268 23.1048 +-118.571 -7.94812 22.7765 +-146.95 -9.4112 26.9692 +-161.549 -9.86495 28.2695 +-161.607 -9.38866 26.9046 +-3231.56 -178.174 510.583 +-829.757 -43.3001 124.083 +-839.971 -41.3608 118.526 +-853.116 -39.5036 113.203 +-381.508 -16.5484 47.422 +-382.23 -15.463 44.3114 +-379.544 -14.2477 40.829 +-897.357 -31.0749 89.0498 +-403.434 -12.7989 36.6773 +-403.459 -11.6299 33.3272 +-402.655 -10.441 29.9202 +-401.819 -9.2576 26.529 +-145.229 -2.92659 8.38659 +-403.147 -6.96118 19.9483 +-403.016 -5.7975 16.6136 +-402.555 -4.63161 13.2726 +-146.95 -1.26783 3.63315 +-146.078 -0.840099 2.40743 +-146.594 -0.421502 1.20788 +119.1 5.77316e-15 2.84217e-14 +118.895 -0.333008 0.9827 +119.782 -0.671029 1.98019 +119.659 -1.00564 2.96762 +119.827 -1.34297 3.96309 +119.686 -1.67712 4.94916 +119.636 -2.01227 5.93816 +119.577 -2.34726 6.92672 +120.306 -2.69998 7.96759 +120.129 -3.0343 8.95417 +119.842 -3.36503 9.93014 +119.746 -3.70054 10.9202 +120.536 -4.06597 11.9986 +120.322 -4.39978 12.9837 +120.098 -4.7327 13.9661 +120.758 -5.10239 15.0571 +120.912 -5.45379 16.094 +120.957 -5.80173 17.1208 +120.696 -6.13525 18.105 +120.228 -6.45716 19.055 +119.95 -6.78805 20.0314 +120.35 -7.15884 21.1256 +120.053 -7.48951 22.1014 +119.845 -7.82547 23.0928 +120.508 -8.22087 24.2596 +120.182 -8.55112 25.2342 +120.822 -8.95237 26.4183 +120.574 -9.29042 27.4158 +120.996 -9.68213 28.5718 +120.631 -10.0126 29.5469 +121.224 -10.4248 30.7635 +120.647 -10.7382 31.6882 +120.35 -11.0757 32.6842 +120.715 -11.4761 33.8659 +121.164 -11.8889 35.0838 +121.027 -12.2471 36.1409 +121.45 -12.6649 37.3739 +121.48 -13.0453 38.4964 +121.215 -13.3955 39.5298 +121.318 -13.788 40.6882 +121.784 -14.2261 41.9809 +121.393 -14.5666 42.9859 +120.992 -14.9061 43.9875 +116.581 -14.7386 43.4932 +113.487 -14.7158 43.4262 +110.588 -14.7015 43.3839 +107.883 -14.6972 43.3711 +104.728 -14.6148 43.1281 +102.043 -14.5813 43.029 +99.4588 -14.5471 42.9282 +97.0656 -14.5267 42.8679 +96.3058 -14.7427 43.5054 +96.6204 -15.1244 44.6319 +96.9214 -15.509 45.7668 +97.1197 -15.8819 46.8672 +97.039 -16.2126 47.843 +97.0359 -16.5591 48.8654 +96.9335 -16.8915 49.8464 +96.2082 -17.1156 50.5079 +96.5224 -17.5267 51.7208 +96.8216 -17.9407 52.9428 +96.3301 -18.2112 53.741 +96.517 -18.6126 54.9254 +95.922 -18.8654 55.6715 +95.999 -19.2524 56.8135 +96.3153 -19.693 58.1136 +96.531 -20.1193 59.3717 +96.564 -20.5129 60.5331 +96.0026 -20.7825 61.3289 +96.0931 -21.1961 62.5492 +96.3323 -21.6485 63.8842 +96.3913 -22.0665 65.1179 +96.4348 -22.4866 66.3575 +95.8197 -22.7558 67.152 +96.555 -23.3517 68.9103 +95.9164 -23.6212 69.7058 +95.9797 -24.0668 71.0206 +95.7912 -24.4546 72.1649 +95.8221 -24.9037 73.4903 +95.8358 -25.3548 74.8216 +96.445 -25.973 76.6458 +96.4195 -26.4297 77.9935 +96.3009 -26.8672 79.2845 +96.2408 -27.3273 80.6423 +96.0886 -27.7676 81.9416 +96.0672 -28.2525 83.3725 +95.9536 -28.7175 84.7447 +95.822 -29.1839 86.1212 +96.2477 -29.8302 88.0283 +96.0035 -30.2786 89.3515 +95.813 -30.7506 90.7443 +95.6741 -31.2467 92.2083 +95.9323 -31.8828 94.0855 +95.3371 -32.2433 95.1493 +95.1388 -32.7439 96.6268 +95.0555 -33.2931 98.2472 +94.7489 -33.7726 99.6622 +94.4234 -34.253 101.08 +94.6037 -34.928 103.072 +94.17 -35.3869 104.426 +94.3612 -36.0917 106.506 +94.4576 -36.7756 108.524 +94.461 -37.4381 110.479 +94.56 -38.1531 112.589 +94.6272 -38.8717 114.71 +95.1494 -39.7973 117.441 +94.5451 -40.2675 118.829 +94.3984 -40.9434 120.823 +94.3395 -41.6736 122.978 +94.5965 -42.5632 125.603 +94.4107 -43.2735 127.699 +92.0977 -43.0074 126.914 +91.0366 -43.3168 127.827 +89.3586 -43.3293 127.864 +88.5038 -43.7395 129.074 +86.5052 -43.5796 128.603 +85.476 -43.9019 129.554 +83.9133 -43.9481 129.69 +82.7151 -44.1814 130.379 +81.1046 -44.1901 130.404 +80.95 -44.9995 132.793 +79.2802 -44.9729 132.714 +78.1028 -45.2213 133.447 +75.4865 -44.6205 131.674 +74.3173 -44.8586 132.377 +71.6634 -44.1824 130.381 +70.2777 -44.2671 130.631 +69.9192 -45.0078 132.817 +69.1311 -45.4905 134.242 +67.2028 -45.219 133.44 +66.0975 -45.4928 134.248 +64.0701 -45.1211 133.152 +63.2882 -45.6215 134.628 +61.4074 -45.3259 133.756 +60.5243 -45.7621 135.043 +58.5506 -45.3667 133.876 +58.064 -46.1238 136.11 +55.0118 -44.8217 132.268 +53.146 -44.4346 131.126 +50.9902 -43.77 129.164 +49.9349 -44.0319 129.937 +47.7344 -43.2626 127.667 +46.719 -43.5463 128.504 +45.1842 -43.3405 127.897 +44.1585 -43.6182 128.716 +42.7303 -43.4952 128.354 +41.6337 -43.7055 128.974 +39.7621 -43.0819 127.134 +39.0027 -43.6544 128.823 +37.4134 -43.2979 127.771 +36.5452 -43.7732 129.174 +34.903 -43.3145 127.82 +33.9658 -43.7221 129.023 +32.2388 -43.0976 127.18 +31.3582 -43.5928 128.642 +30.0418 -43.4911 128.341 +28.9829 -43.7619 129.141 +27.433 -43.2754 127.705 +26.4843 -43.7286 129.042 +24.9663 -43.233 127.58 +23.9461 -43.5857 128.621 +22.6115 -43.3662 127.973 +21.5254 -43.6182 128.716 +20.2499 -43.4863 128.327 +19.192 -43.8274 129.334 +17.7255 -43.2112 127.515 +16.8302 -43.9921 129.82 +15.373 -43.304 127.789 +14.3204 -43.7282 129.041 +12.9775 -43.2558 127.647 +11.9926 -43.9937 129.824 +10.6547 -43.4497 128.219 +9.53571 -43.7661 129.153 +8.29039 -43.5029 128.376 +7.15433 -43.813 129.291 +5.90607 -43.4144 128.115 +4.78821 -44.0065 129.862 +3.53389 -43.3126 127.815 +2.37876 -43.7379 129.07 +1.17983 -43.39 128.043 +5.21805e-15 -43.6162 128.711 +-1.18506 -43.5825 128.611 +-2.38574 -43.8663 129.448 +-3.53127 -43.2805 127.72 +-4.77076 -43.8464 129.39 +-5.92351 -43.5427 128.494 +-7.15433 -43.813 129.291 +-8.29039 -43.5029 128.376 +-9.6543 -44.3104 130.759 +-10.6783 -43.5456 128.502 +-12.0362 -44.1535 130.296 +-13.0638 -43.5434 128.496 +-14.5086 -44.3031 130.737 +-15.4749 -43.5909 128.636 +-16.9398 -44.2787 130.665 +-17.9082 -43.6567 128.83 +-19.2755 -44.0181 129.896 +-20.3829 -43.7719 129.17 +-21.9008 -44.3788 130.961 +-22.7601 -43.6512 128.814 +-24.3107 -44.2495 130.579 +-25.1667 -43.5803 128.605 +-26.7133 -44.1066 130.158 +-27.6125 -43.5585 128.54 +-29.2324 -44.1387 130.253 +-30.2799 -43.8358 129.358 +-32.078 -44.5935 131.595 +-32.8925 -43.9715 129.759 +-34.4255 -44.3136 130.769 +-35.4288 -43.967 129.746 +-36.9852 -44.3002 130.729 +-37.8677 -43.8236 129.322 +-39.8296 -44.5797 131.554 +-40.5858 -43.9741 129.767 +-42.657 -44.7797 132.144 +-43.3317 -44.1076 130.161 +-45.3637 -44.8085 132.229 +-46.1996 -44.3146 130.772 +-48.3794 -45.0939 133.071 +-49.2031 -44.5935 131.595 +-51.2346 -45.1779 133.319 +-51.9358 -44.5816 131.56 +-54.0419 -45.1837 133.336 +-54.9752 -44.7919 132.18 +-57.0526 -45.3204 133.74 +-58.0531 -44.9812 132.739 +-59.9382 -45.3188 133.735 +-60.9687 -45.0021 132.8 +-62.8001 -45.2694 133.589 +-63.8628 -44.9751 132.721 +-66.5201 -45.7836 135.106 +-67.375 -45.3349 133.782 +-70.0955 -46.1251 136.114 +-71.0793 -45.7547 135.021 +-73.1379 -46.0686 135.947 +-73.9721 -45.6058 134.582 +-75.9605 -45.8503 135.303 +-77.6814 -45.9177 135.502 +-79.0724 -45.7826 135.104 +-80.6097 -45.7271 134.94 +-82.3 -45.7499 135.007 +-83.5408 -45.5175 134.321 +-85.7538 -45.8044 135.168 +-86.6303 -45.3712 133.889 +-88.8145 -45.6167 134.614 +-89.8902 -45.2848 133.635 +-92.6431 -45.7852 135.111 +-93.4981 -45.3365 133.787 +-96.7963 -46.0573 135.914 +-96.9687 -45.2819 133.626 +-100.376 -46.0079 135.768 +-100.984 -45.4376 134.085 +-104.449 -46.1395 136.157 +-105.165 -45.6131 134.604 +-107.364 -45.7271 134.94 +-108.36 -45.3227 133.746 +-113.035 -46.4338 137.025 +-113.484 -45.7887 135.122 +-117.431 -46.5416 137.343 +-118.311 -46.0625 135.929 +-99.8249 -38.1817 112.673 +-98.0667 -36.8511 108.747 +-96.2439 -35.5336 104.859 +-97.1401 -35.2386 103.989 +-97.2247 -34.6552 102.267 +-96.8796 -33.9321 100.133 +-97.253 -33.4715 98.7738 +-97.5398 -32.9885 97.3484 +-97.1827 -32.2985 95.3122 +-97.4264 -31.8189 93.897 +-97.6514 -31.3406 92.4855 +-97.1447 -30.6385 90.4136 +-97.3986 -30.1869 89.0809 +-97.4178 -29.67 87.5555 +-97.7089 -29.2428 86.2949 +-97.0257 -28.5344 84.2043 +-97.0547 -28.0468 82.7655 +-97.2893 -27.625 81.5208 +-97.2821 -27.1409 80.0923 +-97.6361 -26.7632 78.9777 +-98.0537 -26.4062 77.9242 +-98.305 -26.0081 76.7494 +-97.6872 -25.3884 74.9208 +-97.7478 -24.954 73.6389 +-97.7133 -24.5015 72.3034 +-97.9791 -24.1292 71.2047 +-97.5933 -23.6028 69.6513 +-97.6686 -23.1949 68.4477 +-97.6484 -22.7696 67.1926 +-97.7753 -22.3834 66.0529 +-98.4621 -22.1271 65.2967 +-98.3183 -21.6869 63.9976 +-98.3239 -21.2851 62.8118 +-98.1484 -20.8495 61.5263 +-98.7115 -20.5738 60.7128 +-100.364 -20.5207 60.5562 +-102.359 -20.528 60.5776 +-104.278 -20.5088 60.5211 +-106.203 -20.4804 60.4374 +-107.962 -20.4103 60.2303 +-110.765 -20.5243 60.5669 +-112.537 -20.4346 60.3021 +-114.4 -20.352 60.0584 +-117.674 -20.5056 60.5116 +-119.551 -20.4012 60.2036 +-123.295 -20.5992 60.7877 +-162.609 -26.5912 78.4702 +-163.057 -26.0918 76.9964 +-162.951 -25.5075 75.2722 +-164.451 -25.1745 74.2895 +-164.314 -24.5909 72.5673 +-162.792 -23.8104 70.2639 +-164.438 -23.4971 69.3395 +-164.704 -22.9845 67.8267 +-164.678 -22.4345 66.2039 +-165.005 -21.9356 64.7316 +-164.019 -21.2683 62.7622 +-163.567 -20.6787 61.0224 +-116.978 -14.4115 42.528 +-112.026 -13.4427 39.669 +-110.32 -12.8869 38.029 +-109.158 -12.406 36.6099 +-108.073 -11.9431 35.2438 +-107.73 -11.5687 34.1389 +-108.42 -11.3062 33.3643 +-108.628 -10.9924 32.4385 +-108.636 -10.6596 31.4564 +-109.305 -10.3914 30.6649 +-110.064 -10.1291 29.8909 +-108.698 -9.67468 28.5498 +-109.343 -9.4031 27.7484 +-109.304 -9.0724 26.7725 +-110.226 -8.82027 26.0284 +-111.239 -8.57115 25.2933 +-111.565 -8.26651 24.3943 +-112.665 -8.01624 23.6558 +-114.345 -7.8005 23.0191 +-117.395 -7.66551 22.6208 +-136.839 -8.53671 25.1917 +-159.582 -9.49248 28.0121 +-158.948 -8.99502 26.5441 +-161.554 -8.67665 25.6046 +-828.967 -42.1383 124.349 +-840.762 -40.3275 119.006 +-852.225 -38.4401 113.436 +-381.211 -16.1073 47.5323 +-382.825 -15.086 44.5184 +-380.637 -13.9187 41.0739 +-897.655 -30.2802 89.3563 +-405.226 -12.5228 36.9546 +-403.658 -11.3343 33.4473 +-403.851 -10.2008 30.1024 +-404.313 -9.07381 26.7766 +-144.829 -2.84296 8.38953 +-403.247 -6.7826 20.0153 +-402.417 -5.63895 16.6404 +-402.854 -4.51503 13.3238 +-146.65 -1.23247 3.63701 +-144.978 -0.81218 2.39673 +-144.994 -0.406106 1.19841 +119 5.77316e-15 2.84217e-14 +118.995 -0.324399 0.986491 +119.782 -0.653134 1.98617 +119.759 -0.979638 2.97906 +119.827 -1.30716 3.97504 +119.686 -1.6324 4.96409 +119.536 -1.95697 5.9511 +119.676 -2.28657 6.95341 +120.206 -2.6258 7.985 +120.129 -2.95338 8.98119 +119.842 -3.27529 9.9601 +119.547 -3.59589 10.935 +120.536 -3.95754 12.0348 +120.322 -4.28245 13.0228 +120.098 -4.60649 14.0082 +120.659 -4.96223 15.09 +120.02 -5.26924 16.0237 +120.165 -5.61005 17.0601 +119.807 -5.92765 18.0259 +121.017 -6.3262 19.2378 +119.95 -6.60703 20.0918 +120.35 -6.96793 21.1893 +120.151 -7.29574 22.1862 +120.727 -7.67282 23.3329 +120.41 -7.99514 24.3131 +120.28 -8.32986 25.3309 +120.822 -8.71363 26.498 +120.574 -9.04266 27.4986 +120.996 -9.42393 28.658 +120.728 -9.7534 29.6599 +120.258 -10.066 30.6104 +120.839 -10.4685 31.8346 +121.215 -10.8578 33.0185 +120.907 -11.1878 34.022 +120.303 -11.4896 34.9398 +121.122 -11.9298 36.2784 +121.64 -12.3465 37.5454 +121.575 -12.7073 38.6428 +121.31 -13.0484 39.68 +121.318 -13.4203 40.811 +121.784 -13.8467 42.1075 +121.486 -14.1891 43.1488 +120.339 -14.4302 43.8819 +116.395 -14.3226 43.5548 +113.487 -14.3234 43.5572 +110.588 -14.3095 43.5148 +107.239 -14.2198 43.2422 +104.728 -14.2251 43.2582 +102.043 -14.1924 43.1589 +99.4588 -14.1591 43.0577 +97.3375 -14.1789 43.1177 +96.5766 -14.3899 43.7594 +96.8001 -14.7485 44.8499 +97.0109 -15.1094 45.9473 +98.0107 -15.6002 47.4398 +96.9503 -15.7658 47.9434 +97.0359 -16.1175 49.0129 +96.7578 -16.4112 49.9061 +96.9079 -16.7803 51.0287 +96.5224 -17.0593 51.8769 +96.8216 -17.4623 53.1025 +96.244 -17.7097 53.8549 +96.4313 -18.1001 55.0421 +96.6041 -18.4929 56.2365 +96.0838 -18.7555 57.0352 +95.5563 -19.0167 57.8295 +96.531 -19.5828 59.5508 +95.8969 -19.8279 60.2963 +96.0026 -20.2283 61.5139 +96.1755 -20.6485 62.7917 +96.3323 -21.0712 64.077 +95.74 -21.333 64.8731 +96.5157 -21.9053 66.6136 +95.8197 -22.149 67.3546 +95.9161 -22.5785 68.6609 +96.6304 -23.1624 70.4365 +96.6101 -23.5788 71.7028 +96.6521 -24.0163 73.0332 +96.677 -24.4558 74.3697 +95.9901 -24.7184 75.1682 +95.7556 -25.0996 76.3275 +95.6591 -25.522 77.612 +95.6972 -25.9867 79.0252 +96.1659 -26.5778 80.8226 +96.1629 -27.048 82.2524 +96.0672 -27.499 83.624 +96.0999 -27.9942 85.1299 +95.822 -28.4056 86.381 +96.2477 -29.0347 88.2939 +96.0748 -29.493 89.6877 +95.813 -29.9305 91.0181 +95.604 -30.3911 92.4187 +96.0713 -31.0775 94.5061 +95.6813 -31.4968 95.7812 +96.0254 -32.1678 97.8217 +95.0555 -32.4052 98.5437 +95.418 -33.104 100.669 +94.9535 -33.5267 101.954 +94.6693 -34.0202 103.455 +94.2349 -34.467 104.813 +94.8755 -35.3207 107.41 +94.4576 -35.7949 108.852 +94.5239 -36.4637 110.885 +94.4977 -37.1113 112.855 +94.5656 -37.8104 114.981 +95.0885 -38.7113 117.72 +94.5451 -39.1937 119.187 +94.6363 -39.9521 121.494 +94.5746 -40.6634 123.657 +94.6546 -41.4538 126.06 +94.0665 -41.9661 127.618 +93.9102 -42.6842 129.802 +93.3852 -43.2493 131.52 +90.9592 -42.9291 130.547 +90.7913 -43.6732 132.81 +87.8485 -43.0763 130.994 +88.1786 -44.0822 134.053 +84.9583 -43.3087 131.701 +84.7238 -44.0475 133.948 +81.1046 -43.0116 130.798 +81.85 -44.2861 134.673 +81.0529 -44.7525 136.092 +79.3149 -44.6985 135.927 +77.6814 -44.6932 135.911 +76.1483 -44.7379 136.047 +73.0486 -43.8354 133.303 +71.4127 -43.7823 133.141 +70.3208 -44.0594 133.984 +69.7448 -44.6704 135.842 +68.3652 -44.7744 136.158 +66.9427 -44.8456 136.375 +65.1068 -44.6285 135.714 +63.9797 -44.89 136.51 +62.7232 -45.0627 137.035 +60.8368 -44.7719 136.151 +59.8517 -45.138 137.264 +58.1389 -44.9518 136.698 +56.9543 -45.1668 137.351 +54.5794 -44.4161 135.069 +52.286 -43.6854 132.847 +51.2004 -43.9438 133.632 +48.9695 -43.1984 131.366 +48.412 -43.921 133.563 +46.1044 -43.0438 130.895 +45.7345 -43.97 133.712 +43.4219 -43.0207 130.825 +42.9494 -43.8841 133.451 +40.955 -43.1909 131.343 +40.2155 -43.8113 133.229 +38.2151 -43.0463 130.903 +37.6841 -43.9335 133.601 +35.8043 -43.2481 131.517 +34.9335 -43.7685 133.099 +33.1959 -43.1937 131.351 +32.5729 -44.074 134.028 +30.5613 -43.0632 130.954 +29.9185 -43.9697 133.711 +28.2106 -43.3149 131.72 +27.2857 -43.8504 133.348 +25.5676 -43.0938 131.047 +24.9185 -44.1462 134.248 +23.1067 -43.1341 131.17 +22.2293 -43.8435 133.327 +20.6933 -43.2534 131.533 +19.7765 -43.9578 133.675 +18.1562 -43.081 131.008 +17.2323 -43.8419 133.322 +15.6786 -42.9873 130.723 +14.7594 -43.8669 133.398 +13.3321 -43.2528 131.531 +12.3325 -44.0344 133.908 +10.9372 -43.4121 132.015 +9.84961 -44.0013 133.807 +8.49185 -43.3718 131.893 +7.38984 -44.0481 133.949 +6.08054 -43.5049 132.297 +4.94875 -44.2693 134.622 +3.6386 -43.4065 131.998 +2.46428 -44.1018 134.113 +1.21561 -43.5136 132.324 +5.10703e-15 -44.2024 134.419 +-1.22084 -43.701 132.894 +-2.46952 -44.1956 134.398 +-3.66216 -43.6876 132.853 +-4.95922 -44.3627 134.906 +-6.08927 -43.5673 132.487 +-7.42124 -44.2355 134.519 +-8.52848 -43.5586 132.461 +-9.94727 -44.4377 135.134 +-11.0235 -43.7548 133.057 +-12.4023 -44.2833 134.665 +-13.5047 -43.8123 133.232 +-14.843 -44.1156 134.155 +-15.939 -43.701 132.894 +-17.4517 -44.4002 135.02 +-18.4303 -43.7314 132.986 +-19.9713 -44.3908 134.992 +-20.8707 -43.6242 132.66 +-22.4014 -44.1827 134.359 +-23.5358 -43.935 133.606 +-25.0748 -44.423 135.089 +-25.841 -43.5545 132.449 +-27.4383 -44.0956 134.094 +-28.39 -43.5905 132.558 +-30.1472 -44.3058 134.733 +-30.9509 -43.612 132.623 +-32.8204 -44.4089 135.047 +-33.7329 -43.8922 133.475 +-35.6593 -44.6779 135.865 +-36.23 -43.7623 133.08 +-38.0723 -44.3861 134.977 +-39.1504 -44.1 134.107 +-40.9873 -44.6523 135.787 +-41.6082 -43.8797 133.437 +-43.6511 -44.601 135.631 +-44.5947 -44.1824 134.358 +-46.5998 -44.8019 136.242 +-47.0563 -43.9325 133.598 +-49.4864 -44.8956 136.527 +-49.9709 -44.0815 134.051 +-52.1923 -44.795 136.221 +-53.0214 -44.2999 134.715 +-55.332 -45.0287 136.931 +-56.038 -44.4402 135.142 +-58.2888 -45.0677 137.05 +-59.1629 -44.6185 135.684 +-62.009 -45.6344 138.773 +-62.0055 -44.547 135.467 +-65.7286 -46.117 140.241 +-65.2312 -44.7138 135.974 +-69.4362 -46.5159 141.454 +-68.6235 -44.9434 136.672 +-73.471 -47.057 143.099 +-72.3733 -45.3451 137.894 +-76.6336 -46.9833 142.875 +-75.9576 -45.581 138.611 +-80.1388 -47.0823 143.176 +-79.3038 -45.6266 138.75 +-82.9024 -46.7202 142.075 +-82.4317 -45.5138 138.407 +-86.35 -46.7212 142.078 +-85.9262 -45.5688 138.574 +-88.535 -46.0289 139.973 +-88.7203 -45.2264 137.533 +-93.9547 -46.9698 142.834 +-93.92 -46.0533 140.047 +-97.0002 -46.66 141.892 +-97.3617 -45.9508 139.736 +-100.99 -46.7715 142.231 +-100.594 -45.7222 139.04 +-104.448 -46.5978 141.703 +-104.352 -45.7009 138.976 +-106.33 -45.7178 139.027 +-105.7 -44.6226 135.696 +-107.665 -44.6323 135.726 +-111.525 -45.4026 138.068 +-116.545 -46.5984 141.705 +-116.721 -45.839 139.396 +-101.761 -39.2558 119.376 +-102.218 -38.7357 117.795 +-97.1252 -36.1582 109.956 +-97.0275 -35.4885 107.92 +-96.8343 -34.7981 105.82 +-97.2064 -34.3223 104.374 +-97.1578 -33.7079 102.505 +-97.5552 -33.2574 101.135 +-97.253 -32.5789 99.0718 +-97.5398 -32.1088 97.6421 +-97.1827 -31.4371 95.5997 +-97.4264 -30.9704 94.1803 +-97.5807 -30.4827 92.6973 +-97.1447 -29.8214 90.6864 +-97.3986 -29.3819 89.3497 +-97.4178 -28.8787 87.8196 +-97.3432 -28.3564 86.2313 +-96.8782 -27.7312 84.33 +-97.5749 -27.4451 83.4601 +-97.0647 -26.8262 81.578 +-97.5839 -26.4991 80.5832 +-97.9403 -26.1306 79.4627 +-98.0537 -25.702 78.1593 +-98.305 -25.3145 76.981 +-97.6872 -24.7114 75.1468 +-97.7478 -24.2886 73.8611 +-97.7133 -23.8481 72.5215 +-97.8205 -23.4477 71.304 +-98.6315 -23.2177 70.6047 +-97.9098 -22.6321 68.8237 +-97.8102 -22.1991 67.5069 +-97.8567 -21.8046 66.3074 +-98.4621 -21.537 65.4937 +-98.3183 -21.1085 64.1907 +-98.241 -20.7 62.9482 +-98.3151 -20.3279 61.8168 +-98.2083 -19.923 60.5855 +-100.364 -19.9735 60.7389 +-101.511 -19.815 60.2569 +-103.511 -19.815 60.2569 +-106.203 -19.9343 60.6197 +-108.048 -19.8818 60.4602 +-109.985 -19.8364 60.3222 +-112.537 -19.8897 60.4841 +-114.488 -19.8244 60.2857 +-117.058 -19.8544 60.3768 +-118.756 -19.7252 59.9839 +-121.254 -19.718 59.9622 +-160.916 -25.6126 77.8875 +-164.399 -25.6051 77.8645 +-163.76 -24.9505 75.8741 +-164.451 -24.5032 74.5137 +-164.314 -23.9351 72.7863 +-164.43 -23.4086 71.185 +-165.078 -22.9594 69.8192 +-164.979 -22.4089 68.1451 +-164.402 -21.7996 66.2923 +-163.711 -21.1833 64.4179 +-164.761 -20.7947 63.2363 +-164.219 -20.2074 61.4503 +-118.471 -14.2063 43.201 +-111.839 -13.0623 39.7222 +-109.944 -12.5005 38.0138 +-108.969 -12.0543 36.657 +-108.924 -11.7161 35.6286 +-108.393 -11.3295 34.4529 +-108.611 -11.024 33.5237 +-108.533 -10.6899 32.5078 +-107.871 -10.3023 31.3291 +-109.114 -10.0966 30.7034 +-110.064 -9.85902 29.9811 +-109.758 -9.50852 28.9152 +-109.826 -9.19276 27.955 +-109.497 -8.84611 26.9008 +-110.129 -8.57749 26.084 +-111.045 -8.32802 25.3253 +-111.565 -8.04606 24.4679 +-112.665 -7.80246 23.7271 +-113.661 -7.54699 22.9503 +-117.395 -7.46109 22.689 +-131.244 -7.96931 24.2345 +-159.484 -9.23365 28.0794 +-161.607 -8.90162 27.0697 +-159.186 -8.32152 25.3056 +-829.461 -41.0392 124.799 +-840.169 -39.2243 119.28 +-852.423 -37.4237 113.805 +-3248.47 -133.597 406.267 +-382.329 -14.6646 44.5948 +-380.935 -13.5581 41.2301 +-897.357 -29.4629 89.596 +-404.927 -12.1799 37.0389 +-403.957 -11.0402 33.573 +-404.051 -9.93368 30.2081 +-403.614 -8.81659 26.8111 +-142.733 -2.7271 8.29306 +-401.05 -6.56573 19.9663 +-403.715 -5.50628 16.7445 +-402.555 -4.39135 13.354 +-146.15 -1.19552 3.63555 +-144.778 -0.78943 2.40064 +-146.194 -0.398547 1.21197 +118.9 5.32907e-15 2.84217e-14 +119.895 -0.317869 0.996857 +119.782 -0.635186 1.99198 +119.859 -0.953514 2.99028 +119.827 -1.27124 3.98668 +120.385 -1.59682 5.00771 +120.035 -1.91114 5.99345 +119.676 -2.22373 6.97376 +119.508 -2.53881 7.96185 +120.228 -2.87461 9.01495 +119.743 -3.18264 9.98095 +120.443 -3.52326 11.0492 +119.641 -3.82023 11.9805 +120.322 -4.16477 13.061 +120.098 -4.4799 14.0492 +120.659 -4.82587 15.1342 +120.12 -5.12867 16.0838 +120.165 -5.45589 17.11 +120.597 -5.80277 18.1978 +120.228 -6.11225 19.1684 +119.95 -6.42547 20.1506 +120.35 -6.77645 21.2513 +120.151 -7.09526 22.2511 +120.727 -7.46197 23.4012 +120.606 -7.78807 24.4239 +120.182 -8.09436 25.3844 +120.919 -8.48101 26.597 +120.477 -8.78709 27.5568 +120.996 -9.16496 28.7418 +120.631 -9.47775 29.7228 +121.224 -9.86798 30.9466 +120.839 -10.1809 31.9278 +120.35 -10.4841 32.8787 +120.907 -10.8804 34.1216 +120.59 -11.2005 35.1256 +120.836 -11.5746 36.2987 +121.45 -11.9884 37.5964 +121.575 -12.3581 38.7559 +121.877 -12.7492 39.9822 +121.506 -13.0718 40.994 +121.784 -13.4662 42.2308 +121.486 -13.7992 43.2751 +119.685 -13.9574 43.7713 +116.116 -13.8956 43.5776 +112.653 -13.8274 43.3635 +109.849 -13.8232 43.3505 +107.239 -13.829 43.3687 +104.728 -13.8342 43.3848 +101.312 -13.7035 42.9751 +99.7318 -13.8078 43.3022 +97.3375 -13.7893 43.2439 +96.7571 -14.0206 43.9695 +96.6204 -14.3166 44.8976 +97.0109 -14.6942 46.0817 +97.387 -15.0749 47.2759 +97.2164 -15.3746 48.2157 +96.3296 -15.5604 48.7985 +96.7578 -15.9602 50.0522 +96.9953 -16.3339 51.2242 +96.5224 -16.5905 52.0287 +96.735 -16.9672 53.2103 +96.3301 -17.2385 54.0609 +96.4313 -17.6027 55.2032 +95.922 -17.8577 56.0029 +96.0838 -18.2401 57.2022 +96.3153 -18.6411 58.4595 +96.4471 -19.0281 59.6732 +95.8969 -19.2831 60.4728 +96.7487 -19.8253 62.1734 +96.1755 -20.0811 62.9755 +96.3323 -20.4921 64.2645 +96.3913 -20.8878 65.5055 +95.8685 -21.1605 66.3605 +95.8197 -21.5403 67.5517 +95.996 -21.9764 68.9192 +96.6304 -22.5259 70.6426 +96.0585 -22.7999 71.502 +95.7912 -23.1483 72.5945 +95.8221 -23.5734 73.9277 +95.8358 -24.0005 75.267 +95.7556 -24.4099 76.5509 +95.7351 -24.8404 77.9009 +96.15 -25.3922 79.6315 +96.3157 -25.8877 81.1854 +96.1629 -26.3047 82.4931 +96.0672 -26.7434 83.8688 +95.9536 -27.1835 85.2491 +95.822 -27.625 86.6338 +95.6722 -28.068 88.0229 +96.0035 -28.6612 89.8834 +95.7423 -29.0865 91.2171 +95.5339 -29.5342 92.6212 +96.1407 -30.2453 94.8511 +95.819 -30.6753 96.1996 +96.0936 -31.306 98.1775 +95.7311 -31.7386 99.5342 +95.8864 -32.3526 101.46 +95.4173 -32.7649 102.753 +95.4566 -33.3603 104.62 +94.6895 -33.6814 105.627 +94.7469 -34.3036 107.578 +94.4576 -34.8113 109.17 +94.5869 -35.4854 111.284 +94.56 -36.1152 113.259 +94.6272 -36.7954 115.392 +95.0277 -37.6232 117.989 +94.5451 -38.1166 119.536 +94.5173 -38.8053 121.696 +94.5159 -39.5214 123.941 +94.4223 -40.2156 126.118 +94.7548 -41.1115 128.928 +94.3633 -41.7115 130.81 +94.6154 -42.615 133.643 +93.4429 -42.8896 134.504 +93.2422 -43.6196 136.794 +89.944 -42.8917 134.511 +90.0333 -43.7725 137.273 +87.4663 -43.362 135.986 +87.299 -44.1391 138.423 +83.8961 -43.2694 135.695 +84.5 -44.4636 139.44 +81.8408 -43.9456 137.816 +82.1267 -45.0114 141.158 +79.6378 -44.5599 139.743 +79.8102 -45.6007 143.007 +76.0038 -44.3554 139.101 +76.452 -45.5837 142.953 +71.8825 -43.8001 137.36 +71.8052 -44.7261 140.264 +68.9248 -43.9004 137.674 +69.3939 -45.2103 141.782 +65.8948 -43.9274 137.759 +66.6235 -45.4604 142.566 +62.8429 -43.908 137.698 +63.2984 -45.3033 142.074 +60.1578 -44.1221 138.37 +60.986 -45.8574 143.812 +56.9909 -43.9538 137.842 +56.658 -44.8406 140.623 +53.6518 -43.5947 136.716 +53.0131 -44.2491 138.768 +50.5717 -43.3857 136.06 +49.8445 -43.9778 137.917 +47.6592 -43.2727 135.706 +47.2178 -44.1486 138.453 +44.8052 -43.1712 135.388 +44.2943 -44.0146 138.032 +42.0343 -43.1108 135.198 +41.511 -43.98 137.924 +39.3375 -43.0929 135.142 +38.797 -43.9879 137.949 +36.7808 -43.2068 135.499 +36.4092 -44.364 139.128 +34.3398 -43.4544 136.276 +33.5627 -44.1653 138.505 +31.8383 -43.6297 136.825 +30.9788 -44.2771 138.856 +29.0878 -43.4346 136.214 +28.3351 -44.2856 138.882 +26.3695 -43.2238 135.552 +25.7868 -44.429 139.332 +23.8824 -43.3572 135.971 +23.2774 -44.6489 140.022 +21.388 -43.4772 136.347 +20.5837 -44.4949 139.539 +18.848 -43.4936 136.398 +17.9879 -44.5067 139.576 +16.3465 -43.5868 136.691 +15.2925 -44.2026 138.622 +13.7826 -43.4854 136.373 +12.7945 -44.4281 139.329 +11.3138 -43.6728 136.961 +10.2193 -44.3983 139.236 +8.71163 -43.2715 135.702 +7.63582 -44.2637 138.814 +6.27683 -43.6752 136.968 +5.15466 -44.844 140.633 +3.75639 -43.5805 136.671 +2.55678 -44.5001 139.555 +1.26011 -43.8672 137.57 +7.21645e-15 -44.7194 140.243 +-1.26011 -43.8672 137.57 +-2.56027 -44.5608 139.745 +-3.76686 -43.702 137.052 +-5.15117 -44.8136 140.538 +-6.32917 -44.0395 138.11 +-7.72479 -44.7796 140.431 +-8.85204 -43.969 137.889 +-10.2961 -44.7316 140.281 +-11.4001 -44.0061 138.006 +-12.9252 -44.8822 140.753 +-14.0222 -44.2412 138.743 +-15.4389 -44.6255 139.948 +-16.5163 -44.0395 138.11 +-18.0245 -44.5973 139.86 +-19.1221 -44.1261 138.382 +-20.709 -44.7656 140.388 +-21.6541 -44.0179 138.043 +-23.387 -44.8588 140.68 +-24.229 -43.9863 137.944 +-26.082 -44.9375 140.927 +-26.8615 -44.0304 138.082 +-28.7168 -44.8819 140.752 +-29.5663 -44.1492 138.454 +-31.4155 -44.9011 140.812 +-32.2928 -44.2525 138.778 +-34.305 -45.142 141.568 +-35.1335 -44.4587 139.425 +-36.8205 -44.8649 140.699 +-37.6321 -44.2069 138.635 +-39.7805 -45.1031 141.446 +-40.5935 -44.4688 139.457 +-42.6135 -45.1481 141.587 +-43.2271 -44.3342 139.035 +-45.5515 -45.2638 141.95 +-46.2185 -44.5329 139.658 +-48.423 -45.2757 141.987 +-48.8649 -44.3676 139.139 +-51.2444 -45.2131 141.791 +-51.9737 -44.5885 139.832 +-54.2786 -45.3054 142.081 +-54.7374 -44.477 139.482 +-57.5897 -45.5779 142.935 +-58.2004 -44.8865 140.767 +-60.6863 -45.632 143.105 +-61.5738 -45.1605 141.626 +-64.8223 -46.3939 145.494 +-65.5145 -45.7745 143.552 +-69.2266 -47.2364 148.136 +-69.3782 -46.2496 145.042 +-73.113 -47.6332 149.38 +-73.5743 -46.8618 146.961 +-77.3725 -48.194 151.139 +-77.3261 -47.117 147.762 +-80.3563 -47.9117 150.254 +-80.2519 -46.8345 146.876 +-83.3312 -47.6125 149.316 +-83.2165 -46.5623 146.022 +-86.3446 -47.323 148.408 +-85.9279 -46.1403 144.699 +-88.6 -46.6212 146.207 +-88.667 -45.7301 143.412 +-92.8614 -46.9514 147.242 +-92.9002 -46.0558 144.434 +-96.6573 -46.993 147.373 +-96.7677 -46.1457 144.716 +-100.813 -47.1613 147.901 +-100.397 -46.0816 144.515 +-104.513 -47.0729 147.624 +-104.842 -46.3435 145.336 +-108.234 -46.9596 147.268 +-107.837 -45.9288 144.036 +-112.796 -47.165 147.912 +-106.116 -43.5674 136.63 +-110.373 -44.4976 139.547 +-116.821 -46.2521 145.049 +-101.276 -39.381 123.501 +-101.283 -38.6829 121.312 +-97.1041 -36.4299 114.246 +-97.5108 -35.9365 112.699 +-97.1252 -35.1646 110.278 +-97.0925 -34.5363 108.308 +-96.7687 -33.819 106.059 +-97.2064 -33.3791 104.679 +-97.2247 -32.8041 102.875 +-96.9472 -32.1418 100.798 +-97.253 -31.6836 99.3618 +-96.9203 -31.028 97.3058 +-97.1827 -30.5732 95.8795 +-97.3563 -30.0976 94.388 +-96.9443 -29.4517 92.3623 +-97.1447 -29.0019 90.9518 +-97.1109 -28.4901 89.3465 +-97.2002 -28.0224 87.8799 +-97.3432 -27.5772 86.4836 +-96.952 -26.9896 84.6411 +-97.2033 -26.5893 83.3856 +-97.4391 -26.1897 82.1324 +-97.8104 -25.8307 81.0066 +-97.9403 -25.4126 79.6953 +-97.9771 -24.9762 78.3268 +-97.6105 -24.445 76.6608 +-97.6872 -24.0323 75.3667 +-97.7478 -23.6211 74.0772 +-97.9497 -23.2488 72.9097 +-97.9791 -22.8403 71.6286 +-97.9926 -22.4334 70.3526 +-97.8294 -21.9921 68.9684 +-97.8102 -21.589 67.7045 +-98.508 -21.3466 66.9441 +-98.3802 -20.9277 65.6306 +-98.4007 -20.5457 64.4325 +-98.241 -20.1311 63.1325 +-98.3985 -19.7861 62.0503 +-97.8729 -19.3094 60.5553 +-99.6889 -19.294 60.5071 +-101.681 -19.3026 60.5343 +-103.425 -19.2546 60.3835 +-105.346 -19.23 60.3065 +-107.962 -19.3201 60.5888 +-109.899 -19.2761 60.4511 +-111.841 -19.2234 60.2857 +-113.788 -19.1618 60.0926 +-116.795 -19.2653 60.4172 +-118.845 -19.1974 60.2042 +-120.988 -19.1341 60.0057 +-161.718 -25.0329 78.5048 +-162.789 -24.6575 77.3273 +-164.21 -24.3315 76.305 +-163.368 -23.6729 74.2396 +-163.135 -23.1105 72.4758 +-163.429 -22.6267 70.9587 +-164.347 -22.2296 69.7135 +-164.704 -21.7567 68.2305 +-163.574 -21.0937 66.1512 +-164.173 -20.6593 64.7887 +-163.184 -20.0298 62.8146 +-163.474 -19.563 61.3508 +-118.565 -13.8268 43.3616 +-111.651 -12.6821 39.7717 +-110.508 -12.2193 38.3206 +-108.969 -11.7231 36.7643 +-108.829 -11.3843 35.7018 +-108.393 -11.0182 34.5537 +-108.516 -10.7116 33.5923 +-108.438 -10.387 32.5742 +-108.349 -10.0636 31.56 +-108.347 -9.75008 30.5768 +-110.353 -9.61321 30.1476 +-109.372 -9.21475 28.898 +-109.15 -8.88513 27.8643 +-109.691 -8.61824 27.0273 +-110.226 -8.34913 26.1834 +-111.142 -8.10624 25.4217 +-111.663 -7.83179 24.561 +-113.543 -7.64723 23.9822 +-114.737 -7.40908 23.2353 +-116.807 -7.21972 22.6415 +-127.219 -7.51262 23.56 +-159.484 -8.97991 28.1615 +-158.456 -8.48818 26.6194 +-162.836 -8.27838 25.9615 +-3236.16 -155.715 488.332 +-841.652 -38.2138 119.841 +-852.72 -36.408 114.178 +-3248.47 -129.926 407.456 +-381.435 -14.2283 44.6208 +-379.246 -13.1271 41.1674 +-897.954 -28.6723 89.918 +-403.335 -11.7986 37.0011 +-402.562 -10.6997 33.555 +-403.652 -9.65116 30.2666 +-404.313 -8.58913 26.936 +-143.332 -2.66329 8.35222 +-401.05 -6.3853 20.0247 +-402.716 -5.34172 16.752 +-402.555 -4.27067 13.3931 +-145.25 -1.15551 3.62374 +-144.778 -0.767737 2.40767 +-146.594 -0.388655 1.21884 +119.8 1.77636e-15 -1.13687e-13 +118.995 -0.306544 0.992184 +119.082 -0.613578 1.98595 +119.959 -0.927263 3.00125 +119.727 -1.23418 3.99465 +119.686 -1.54255 4.99274 +120.135 -1.85853 6.01546 +119.577 -2.15892 6.98771 +119.508 -2.46686 7.98443 +120.129 -2.79083 9.03302 +119.643 -3.08988 10.001 +120.542 -3.42625 11.0897 +119.641 -3.71197 12.0144 +120.322 -4.04675 13.098 +120.098 -4.35295 14.0891 +120.758 -4.69298 15.1897 +120.12 -4.98333 16.1294 +120.165 -5.30128 17.1585 +120.597 -5.63833 18.2494 +120.228 -5.93904 19.2227 +120.048 -6.24852 20.2244 +120.35 -6.58442 21.3116 +120.151 -6.89419 22.3143 +120.727 -7.25051 23.4676 +120.508 -7.56123 24.4733 +120.182 -7.86498 25.4564 +120.919 -8.24067 26.6724 +120.574 -8.54496 27.6573 +120.123 -8.84095 28.6153 +120.631 -9.20917 29.8071 +121.127 -9.58069 31.0096 +120.743 -9.88448 31.9928 +121.023 -10.2439 33.1563 +121.003 -10.5804 34.2455 +120.399 -10.8659 35.1693 +120.836 -11.2466 36.4016 +120.404 -11.5484 37.3783 +121.48 -11.9985 38.8354 +121.121 -12.311 39.8468 +121.506 -12.7014 41.1103 +121.126 -13.0139 42.1218 +121.674 -13.4288 43.4647 +119.032 -13.4878 43.6558 +115.93 -13.4802 43.6311 +112.56 -13.4245 43.4507 +109.849 -13.4315 43.4735 +106.41 -13.3333 43.1557 +103.903 -13.3362 43.1651 +101.404 -13.3272 43.1359 +98.8218 -13.2941 43.0288 +95.7967 -13.1864 42.6802 +96.8474 -13.636 44.1353 +96.8001 -13.9367 45.1087 +97.0109 -14.2777 46.2124 +98.1889 -14.7684 47.8004 +96.5068 -14.8299 47.9995 +96.3296 -15.1195 48.9369 +96.6699 -15.4938 50.1486 +96.9953 -15.8711 51.3695 +96.5224 -16.1203 52.1763 +96.8216 -16.5012 53.409 +96.9333 -16.8549 54.5537 +96.4313 -17.1039 55.3598 +96.6041 -17.4751 56.5611 +96.0838 -17.7232 57.3644 +96.3153 -18.1128 58.6253 +96.4471 -18.4889 59.8424 +96.564 -18.8669 61.0662 +96.0026 -19.115 61.8689 +96.1755 -19.512 63.1541 +96.2504 -19.8945 64.3919 +95.6586 -20.1417 65.192 +96.4348 -20.6823 66.9418 +96.4628 -21.0704 68.1979 +95.8363 -21.3181 68.9996 +96.7098 -21.9055 70.9012 +95.8221 -22.0993 71.5283 +96.6521 -22.6945 73.4547 +95.8221 -22.9054 74.1374 +96.4531 -23.4706 75.9667 +95.7556 -23.7182 76.768 +95.7351 -24.1365 78.1219 +96.3009 -24.7114 79.9827 +96.4655 -25.1932 81.5424 +96.1629 -25.5593 82.7271 +96.0672 -25.9855 84.1067 +95.9536 -26.4132 85.4909 +95.967 -26.8829 87.0111 +96.2477 -27.4366 88.8035 +96.0748 -27.8697 90.2053 +95.8837 -28.304 91.611 +95.604 -28.7184 92.9521 +96.0713 -29.367 95.0515 +95.819 -29.806 96.4725 +96.1618 -30.4404 98.5257 +95.7987 -30.8611 99.8872 +96.0872 -31.5016 101.961 +95.8149 -31.9689 103.473 +95.4566 -32.4149 104.917 +94.2999 -32.5924 105.491 +94.5541 -33.2636 107.664 +94.5848 -33.8705 109.628 +94.7757 -34.5486 111.823 +94.56 -35.0917 113.581 +94.6272 -35.7527 115.72 +94.5406 -36.3699 117.718 +94.5451 -37.0365 119.875 +94.5173 -37.7057 122.041 +94.5159 -38.4014 124.293 +94.9449 -39.2923 127.176 +94.3533 -39.7773 128.746 +94.7031 -40.6756 131.654 +94.1681 -41.2116 133.389 +94.4364 -42.1173 136.32 +94.1681 -42.8045 138.544 +93.2215 -43.1947 139.807 +92.8948 -43.884 142.038 +90.34 -43.5174 140.852 +89.6681 -44.0523 142.583 +87.2966 -43.7473 141.596 +87.25 -44.6096 144.387 +84.7461 -44.2161 143.113 +84.4054 -44.9491 145.486 +82.1667 -44.6719 144.588 +82.1106 -45.5858 147.546 +79.7902 -45.2454 146.445 +79.0851 -45.8175 148.296 +76.1213 -45.0686 145.872 +76.0136 -46.0058 148.906 +71.7231 -44.3882 143.67 +70.8731 -44.8655 145.215 +69.0879 -44.751 144.844 +68.9012 -45.6823 147.859 +66.1923 -44.9375 145.448 +65.5256 -45.5684 147.49 +63.181 -45.0264 145.736 +62.8964 -45.9536 148.737 +60.1429 -45.0704 145.878 +59.4174 -45.692 147.89 +56.3484 -44.4886 143.995 +55.1678 -44.7427 144.818 +52.5412 -43.7981 141.76 +51.7653 -44.3782 143.638 +49.3091 -43.502 140.802 +48.8556 -44.3855 143.662 +46.6695 -43.6933 141.421 +46.0193 -44.4328 143.814 +43.4259 -43.2762 140.071 +43.1648 -44.4363 143.826 +40.9142 -43.5501 140.958 +40.117 -44.1957 143.047 +38.233 -43.6399 141.248 +37.3044 -44.1665 142.953 +35.4837 -43.6293 141.214 +34.62 -44.2657 143.274 +32.769 -43.6325 141.224 +31.8729 -44.2639 143.268 +30.0049 -43.5345 140.907 +29.251 -44.4213 143.777 +27.5722 -43.9144 142.137 +26.6203 -44.5653 144.243 +24.8067 -43.7588 141.633 +23.8093 -44.3749 143.627 +22.1566 -43.763 141.647 +21.1961 -44.5201 144.097 +19.5006 -43.7243 141.521 +18.6094 -44.7398 144.808 +16.9465 -43.9061 142.11 +15.8779 -44.5939 144.336 +14.3194 -43.8985 142.085 +13.2477 -44.6984 144.674 +11.6747 -43.789 141.731 +10.5542 -44.5535 144.205 +9.14507 -44.1373 142.858 +7.90796 -44.5423 144.169 +6.50801 -44.0006 142.416 +5.27331 -44.5762 144.279 +3.88204 -43.7618 141.643 +2.63706 -44.5966 144.345 +1.29415 -43.7751 141.686 +6.32827e-15 -44.6624 144.558 +-1.30811 -44.2474 143.214 +-2.64928 -44.8032 145.014 +-3.91084 -44.0865 142.694 +-5.32217 -44.9892 145.615 +-6.52982 -44.1482 142.893 +-7.96553 -44.8664 145.218 +-9.18781 -44.3433 143.525 +-10.603 -44.7598 144.873 +-11.7846 -44.201 143.064 +-13.2738 -44.7864 144.959 +-14.4631 -44.3392 143.512 +-15.9929 -44.9169 145.381 +-17.139 -44.4047 143.724 +-18.646 -44.8277 145.093 +-19.6703 -44.1048 142.753 +-21.4187 -44.9877 145.611 +-22.3783 -44.201 143.064 +-24.1691 -45.0456 145.798 +-25.1368 -44.341 143.517 +-26.9155 -45.0595 145.843 +-27.9003 -44.4369 143.828 +-29.5754 -44.9139 145.372 +-30.6429 -44.4599 143.902 +-32.6006 -45.2746 146.539 +-33.4399 -44.526 144.116 +-35.3848 -45.2434 146.438 +-36.2074 -44.5193 144.094 +-38.2479 -45.2835 146.568 +-38.9341 -44.4401 143.838 +-40.9969 -45.1651 146.185 +-41.8763 -44.5742 144.272 +-43.909 -45.2023 146.305 +-44.704 -44.5497 144.193 +-47.0134 -45.3927 146.922 +-47.9024 -44.8475 145.157 +-50.0917 -45.5084 147.296 +-50.6418 -44.6778 144.607 +-53.1978 -45.6064 147.613 +-53.576 -44.6607 144.552 +-56.4675 -45.7968 148.23 +-56.8737 -44.9033 145.337 +-59.9908 -46.1328 149.317 +-60.2895 -45.1802 146.234 +-63.2336 -46.2001 149.535 +-64.3674 -45.8718 148.472 +-68.4561 -47.6061 154.085 +-68.6646 -46.616 150.881 +-72.6432 -48.1631 155.888 +-72.9031 -47.222 152.842 +-76.2403 -48.2632 156.212 +-76.8462 -47.5585 153.932 +-80.1781 -48.5262 157.064 +-80.4048 -47.6046 154.081 +-83.4435 -48.3426 156.469 +-83.2533 -47.2093 152.801 +-85.9133 -47.6967 154.379 +-86.0317 -46.7733 151.39 +-88.4293 -47.0921 152.422 +-88.4885 -46.1688 149.433 +-91.95 -47.0127 152.165 +-92.1182 -46.1638 149.417 +-96.2606 -47.2911 153.066 +-96.2442 -46.3615 150.057 +-99.3599 -46.9381 151.923 +-100.099 -46.3816 150.122 +-103.754 -47.1618 152.647 +-104.316 -46.5233 150.581 +-107.701 -47.1341 152.558 +-108.354 -46.5384 150.63 +-112.765 -47.5391 153.869 +-112.656 -46.6219 150.9 +-116.264 -47.2377 152.893 +-106.295 -42.4039 137.248 +-103.271 -40.4548 130.939 +-101.846 -39.1801 126.813 +-97.2129 -36.7298 118.882 +-96.801 -35.9236 116.273 +-96.7895 -35.2827 114.199 +-96.6839 -34.6221 112.06 +-97.1252 -34.1681 110.591 +-97.0275 -33.5352 108.543 +-96.8999 -32.9053 106.504 +-97.1401 -32.4111 104.904 +-97.2916 -31.8963 103.238 +-96.8796 -31.2094 101.015 +-97.3894 -30.8289 99.7831 +-96.9203 -30.1488 97.5818 +-97.8079 -29.8978 96.7696 +-97.3563 -29.2447 94.6557 +-97.3686 -28.7424 93.0297 +-97.5727 -28.3042 91.6116 +-97.7583 -27.8673 90.1973 +-97.2002 -27.2283 88.1291 +-97.5626 -26.8561 86.9244 +-97.6892 -26.4242 85.5267 +-97.352 -25.8753 83.75 +-97.514 -25.4671 82.4286 +-97.7349 -25.0793 81.1736 +-97.9403 -24.6924 79.9214 +-98.1303 -24.3064 78.6718 +-97.5333 -23.7335 76.8175 +-97.6872 -23.3513 75.5805 +-97.826 -22.9701 74.3468 +-97.9497 -22.59 73.1165 +-97.9791 -22.1931 71.8318 +-97.753 -21.7444 70.3797 +-97.6686 -21.3338 69.0505 +-97.8911 -20.9946 67.9527 +-98.2637 -20.6902 66.9674 +-98.4621 -20.3516 65.8716 +-98.4007 -19.9635 64.6152 +-97.9922 -19.5111 63.1512 +-98.3151 -19.2091 62.1736 +-98.2922 -18.8426 60.9872 +-99.6889 -18.7472 60.6787 +-101.596 -18.74 60.6553 +-103.511 -18.7244 60.6047 +-105.346 -18.6851 60.4775 +-107.273 -18.6527 60.3727 +-109.206 -18.6118 60.2404 +-111.928 -18.6932 60.5038 +-113.701 -18.6045 60.2168 +-116.795 -18.7194 60.5885 +-118.845 -18.6534 60.375 +-120.988 -18.5919 60.1759 +-160.559 -24.1493 78.1635 +-163.594 -24.0773 77.9303 +-163.76 -23.5773 76.312 +-163.639 -23.0402 74.5736 +-163.498 -22.5055 72.8429 +-163.793 -22.0345 71.3185 +-164.073 -21.5637 69.7947 +-164.062 -21.0578 68.1573 +-163.574 -20.496 66.3388 +-164.173 -20.0738 64.9725 +-163.648 -19.5175 63.1718 +-165.335 -19.225 62.2251 +-121.739 -13.7946 44.6488 +-112.12 -12.3744 40.0518 +-110.32 -11.8529 38.3639 +-108.969 -11.3909 36.8685 +-108.829 -11.0617 35.803 +-108.488 -10.7154 34.6821 +-107.66 -10.326 33.4219 +-108.533 -10.1015 32.6954 +-108.445 -9.78706 31.6776 +-108.443 -9.48216 30.6907 +-109.872 -9.30009 30.1014 +-109.854 -8.99306 29.1076 +-109.343 -8.6486 27.9927 +-109.691 -8.37401 27.104 +-110.226 -8.11253 26.2576 +-110.267 -7.81451 25.293 +-111.76 -7.61649 24.6521 +-112.762 -7.37942 23.8848 +-114.248 -7.16845 23.202 +-117.101 -7.03278 22.7628 +-125.55 -7.20399 23.317 +-159.091 -8.70392 28.1718 +-159.145 -8.28351 26.811 +-162.54 -8.02914 25.9877 +-830.843 -38.8451 125.729 +-842.048 -37.1483 120.237 +-850.937 -35.3022 114.262 +-862.557 -33.5213 108.498 +-381.138 -13.8143 44.7124 +-379.942 -12.7785 41.3599 +-897.457 -27.8443 90.1231 +-404.33 -11.4925 37.1976 +-402.164 -10.3862 33.6169 +-403.652 -9.37766 30.3525 +-402.916 -8.31689 26.9191 +-144.131 -2.60223 8.42258 +-401.948 -6.21826 20.1265 +-403.116 -5.19548 16.8161 +-402.854 -4.15275 13.4411 +-146.15 -1.12972 3.65653 +-144.978 -0.747011 2.41783 +-145.094 -0.373777 1.20979 +118.9 5.32907e-15 2.84217e-14 +118.995 -0.297579 0.99491 +119.282 -0.596634 1.99475 +119.059 -0.893393 2.98692 +119.727 -1.19809 4.00562 +119.686 -1.49744 5.00645 +120.135 -1.80417 6.03198 +119.676 -2.09752 7.01275 +120.406 -2.41271 8.06652 +120.129 -2.70921 9.05783 +120.54 -3.02198 10.1035 +119.647 -3.30135 11.0376 +120.536 -3.63035 12.1375 +120.322 -3.9284 13.134 +120.098 -4.22564 14.1278 +120.659 -4.55197 15.2188 +120.219 -4.84157 16.187 +120.165 -5.14624 17.2057 +120.696 -5.47793 18.3146 +120.327 -5.77007 19.2914 +120.048 -6.06577 20.28 +120.35 -6.39185 21.3702 +120.053 -6.68709 22.3573 +119.845 -6.98706 23.3602 +120.606 -7.34606 24.5604 +121.061 -7.69079 25.713 +120.822 -7.99322 26.7241 +120.574 -8.29505 27.7332 +120.123 -8.58238 28.6939 +120.728 -8.94703 29.913 +121.127 -9.3005 31.0948 +120.743 -9.59539 32.0807 +120.35 -9.88906 33.0626 +121.003 -10.271 34.3396 +121.355 -10.6319 35.546 +121.027 -10.9349 36.5593 +121.26 -11.2903 37.7474 +121.48 -11.6476 38.9421 +121.215 -11.9603 39.9874 +121.506 -12.3299 41.2232 +121.22 -12.6431 42.2703 +121.767 -13.0461 43.6177 +118.565 -13.042 43.604 +115.744 -13.065 43.6808 +112.653 -13.0426 43.6059 +109.018 -12.94 43.2629 +105.582 -12.8426 42.9374 +103.903 -12.9462 43.2837 +100.764 -12.8559 42.9817 +98.0938 -12.8103 42.8291 +96.703 -12.9219 43.2023 +97.0279 -13.2619 44.3391 +96.8001 -13.5291 45.2326 +97.0109 -13.8602 46.3394 +97.387 -14.2194 47.5402 +96.5068 -14.3962 48.1314 +97.2125 -14.8118 49.5211 +96.6699 -15.0407 50.2863 +96.2082 -15.2819 51.0926 +96.5224 -15.6489 52.3196 +96.8216 -16.0186 53.5557 +96.9333 -16.3619 54.7036 +96.4313 -16.6037 55.5119 +96.6894 -16.9789 56.7665 +96.1687 -17.2201 57.5727 +96.3153 -17.5831 58.7864 +96.4471 -17.9481 60.0068 +96.564 -18.3152 61.2339 +96.0026 -18.5559 62.0389 +96.1755 -18.9414 63.3276 +96.2504 -19.3126 64.5688 +96.4727 -19.719 65.9275 +95.7876 -19.9427 66.6752 +95.9001 -20.3348 67.9864 +95.9161 -20.7118 69.2469 +95.9958 -21.1079 70.571 +95.8221 -21.453 71.7248 +95.9478 -21.8702 73.1196 +95.8221 -22.2355 74.3411 +95.8358 -22.6383 75.6878 +95.7556 -23.0245 76.9789 +95.7351 -23.4306 78.3365 +95.6972 -23.8383 79.6996 +96.4655 -24.4564 81.7664 +96.3116 -24.8501 83.0825 +96.0672 -25.2255 84.3377 +95.9536 -25.6407 85.7257 +95.822 -26.0572 87.1182 +95.6722 -26.475 88.515 +96.0035 -27.0346 90.386 +95.8837 -27.4762 91.8626 +95.604 -27.8785 93.2074 +96.1407 -28.5287 95.3815 +95.8878 -28.9553 96.8075 +95.6162 -29.3825 98.2359 +95.8663 -29.9797 100.233 +96.1541 -30.6015 102.312 +95.5498 -30.948 103.47 +95.8502 -31.5967 105.639 +95.4689 -32.0315 107.092 +94.9397 -32.4226 108.4 +95.0301 -33.0347 110.446 +95.0274 -33.6273 112.428 +94.6845 -34.1104 114.043 +95.0581 -34.8652 116.567 +94.5406 -35.3062 118.041 +94.6053 -35.9762 120.281 +94.5768 -36.6258 122.453 +94.5159 -37.2783 124.634 +94.4223 -37.9331 126.824 +94.5254 -38.6842 129.335 +94.5898 -39.4387 131.857 +94.0003 -39.935 133.517 +94.326 -40.8377 136.535 +94.3315 -41.6248 139.166 +94.2424 -42.3908 141.727 +93.8487 -43.0379 143.891 +93.2137 -43.5886 145.732 +92.0373 -43.8938 146.752 +89.7835 -43.6777 146.03 +89.2 -44.2729 148.02 +86.2234 -43.6712 146.008 +86.1022 -44.5116 148.818 +83.9322 -44.2973 148.101 +83.6129 -45.0621 150.658 +81.9142 -45.0916 150.757 +81.0373 -45.5756 152.375 +78.6201 -45.1865 151.074 +77.9862 -45.8192 153.189 +75.4255 -45.3143 151.501 +74.4653 -45.7607 152.994 +70.954 -44.6154 149.165 +69.5113 -44.7389 149.578 +67.9468 -44.7796 149.714 +67.7528 -45.7392 152.922 +65.4389 -45.2713 151.358 +64.8069 -45.9648 153.676 +62.4885 -45.4584 151.983 +61.711 -46.0679 154.021 +59.4302 -45.5493 152.287 +58.4512 -46.0192 153.858 +54.6776 -44.246 147.93 +53.3932 -44.4351 148.562 +50.9274 -43.6158 145.823 +50.2153 -44.2867 148.066 +47.8724 -43.5087 145.465 +47.1011 -44.1474 147.6 +44.988 -43.5216 145.508 +44.0468 -44.0182 147.168 +42.4375 -43.8505 146.608 +41.4369 -44.3148 148.16 +39.3097 -43.5565 145.625 +38.4172 -44.1537 147.621 +36.5809 -43.6628 145.98 +35.5648 -44.1437 147.588 +33.9161 -43.8394 146.57 +32.954 -44.4268 148.534 +31.1014 -43.8055 146.457 +30.0333 -44.2755 148.028 +28.3923 -43.8981 146.767 +27.1586 -44.1368 147.565 +25.6484 -43.9205 146.841 +24.5289 -44.3792 148.375 +22.8366 -43.7869 146.395 +21.711 -44.2681 148.003 +20.1663 -43.8944 146.754 +19.0116 -44.3698 148.344 +17.422 -43.8179 146.498 +16.4005 -44.7145 149.496 +14.6932 -43.727 146.195 +13.5701 -44.4474 148.603 +12.0435 -43.8511 146.609 +10.882 -44.5942 149.094 +9.44421 -44.2477 147.935 +8.20104 -44.842 149.922 +6.71302 -44.0594 147.306 +5.47922 -44.9621 150.324 +4.02863 -44.0861 147.395 +2.71734 -44.6102 149.147 +1.34301 -44.0996 147.44 +4.77396e-15 -44.703 149.458 +-1.34476 -44.1569 147.632 +-2.73654 -44.9254 150.201 +-4.03387 -44.1434 147.587 +-5.44781 -44.7045 149.463 +-6.73483 -44.2024 147.784 +-8.20628 -44.8707 150.018 +-9.49915 -44.5053 148.797 +-10.9518 -44.8801 150.05 +-12.1925 -44.3939 148.424 +-13.6835 -44.8185 149.844 +-14.9519 -44.4973 148.77 +-16.505 -44.9996 150.449 +-17.6257 -44.3302 148.211 +-19.2432 -44.9102 150.15 +-20.4012 -44.4059 148.464 +-22.0033 -44.8638 149.995 +-23.1617 -44.4105 148.48 +-24.7949 -44.8604 149.984 +-25.863 -44.2878 148.07 +-27.8011 -45.181 151.056 +-28.7203 -44.4053 148.462 +-30.663 -45.2037 151.132 +-31.5599 -44.4515 148.617 +-33.5777 -45.2679 151.346 +-34.652 -44.7904 149.75 +-36.4871 -45.2885 151.415 +-37.1878 -44.3875 148.403 +-39.4575 -45.3492 151.618 +-40.4113 -44.7773 149.706 +-42.291 -45.228 151.213 +-43.3193 -44.7615 149.653 +-45.5353 -45.5054 152.14 +-46.4081 -44.8953 150.101 +-48.5922 -45.545 152.273 +-49.3158 -44.8205 149.851 +-51.6367 -45.5404 152.257 +-52.4187 -44.893 150.093 +-54.7931 -45.6003 152.458 +-55.7791 -45.1372 150.909 +-58.3144 -45.9118 153.499 +-58.9399 -45.1736 151.031 +-61.8543 -46.1748 154.378 +-62.7817 -45.6719 152.697 +-66.6051 -47.2399 157.94 +-67.9646 -47.0187 157.2 +-71.1131 -48.0076 160.506 +-71.9742 -47.4337 158.587 +-74.7989 -48.142 160.956 +-75.4742 -47.4577 158.668 +-78.5225 -48.2541 161.33 +-79.5154 -47.7715 159.717 +-82.0631 -48.2145 161.198 +-82.7251 -47.546 158.963 +-84.987 -47.7967 159.801 +-86.0238 -47.3537 158.32 +-87.7442 -47.2887 158.102 +-88.1789 -46.5385 155.594 +-89.9807 -46.5167 155.521 +-91.64 -46.4147 155.18 +-94.95 -47.1268 157.561 +-95.5187 -46.468 155.359 +-99.3508 -47.3818 158.414 +-99.536 -46.545 155.616 +-102.963 -47.2179 157.866 +-103.269 -46.4511 155.302 +-107.13 -47.2726 158.049 +-107.738 -46.6445 155.949 +-111.503 -47.3709 158.377 +-112.205 -46.7832 156.412 +-111.79 -45.7498 152.958 +-115.037 -46.2149 154.513 +-109.446 -43.1668 144.322 +-105.343 -40.7953 136.393 +-97.0126 -36.8915 123.341 +-97.1583 -36.2837 121.309 +-96.9667 -35.5653 118.907 +-96.8633 -34.8953 116.667 +-97.2929 -34.4291 115.108 +-96.6839 -33.6095 112.368 +-97.1895 -33.1909 110.969 +-97.0275 -32.5544 108.841 +-96.8999 -31.9429 106.796 +-96.7425 -31.3345 104.762 +-97.2916 -30.9635 103.522 +-96.9472 -30.3176 101.362 +-97.253 -29.8854 99.9173 +-96.9892 -29.2877 97.9188 +-97.53 -28.9409 96.7596 +-97.146 -28.3281 94.7107 +-97.2979 -27.8815 93.2175 +-96.9307 -27.2957 91.2589 +-97.4705 -26.9726 90.1788 +-97.4178 -26.4911 88.5691 +-97.0506 -25.9338 86.7058 +-97.0257 -25.4772 85.1792 +-97.2777 -25.0994 83.916 +-97.4391 -24.7033 82.5916 +-97.7349 -24.3459 81.3966 +-97.8642 -23.9517 80.0787 +-98.1303 -23.5955 78.888 +-98.305 -23.2216 77.638 +-97.6872 -22.6683 75.7881 +-97.7478 -22.2805 74.4914 +-97.9497 -21.9293 73.3174 +-98.4551 -21.6487 72.3791 +-97.753 -21.1085 70.573 +-98.5529 -20.8973 69.867 +-97.8102 -20.3637 68.083 +-98.4266 -20.1184 67.2627 +-98.0525 -19.6742 65.7778 +-98.1534 -19.3309 64.63 +-98.0751 -18.9565 63.3783 +-98.065 -18.5998 62.1858 +-98.3761 -18.3071 61.207 +-99.0142 -18.0758 60.4336 +-100.918 -18.0705 60.4158 +-102.743 -18.042 60.3207 +-105.346 -18.1386 60.6437 +-107.273 -18.1072 60.5386 +-109.206 -18.0675 60.4059 +-111.928 -18.1465 60.67 +-113.788 -18.0743 60.4286 +-116.795 -18.1719 60.755 +-118.05 -17.9868 60.136 +-120.19 -17.929 59.943 +-160.025 -23.365 78.1173 +-164.668 -23.5265 78.6573 +-163.76 -22.8877 76.5216 +-163.639 -22.3663 74.7784 +-163.77 -21.8836 73.1645 +-163.975 -21.4138 71.5938 +-163.981 -20.9214 69.9474 +-163.512 -20.3734 68.1154 +-164.31 -19.9861 66.8206 +-164.451 -19.5197 65.261 +-164.39 -19.0325 63.6323 +-164.498 -18.5682 62.08 +-124.54 -13.6993 45.8014 +-112.401 -12.0426 40.2625 +-110.32 -11.5062 38.4693 +-109.629 -11.1247 37.1936 +-108.829 -10.7382 35.9014 +-108.299 -10.3838 34.7166 +-108.42 -10.0948 33.7505 +-108.438 -9.79748 32.7564 +-108.349 -9.49243 31.7365 +-107.963 -9.16415 30.6389 +-109.488 -8.99652 30.0785 +-110.625 -8.79131 29.3924 +-109.343 -8.39566 28.0696 +-109.497 -8.11475 27.1304 +-110.226 -7.87527 26.3298 +-110.364 -7.59264 25.3848 +-110.786 -7.32927 24.5043 +-112.86 -7.1698 23.9711 +-114.15 -6.95284 23.2458 +-116.709 -6.80423 22.7489 +-124.568 -6.93863 23.1982 +-159.484 -8.47025 28.319 +-160.031 -8.08604 27.0344 +-160.666 -7.70448 25.7588 +-162.08 -7.3562 24.5943 +-841.949 -36.0576 120.553 +-3244.61 -130.671 436.878 +-862.557 -32.541 108.796 +-379.947 -13.3684 44.6952 +-379.544 -12.3918 41.4301 +-897.457 -27.03 90.3707 +-404.33 -11.1564 37.2998 +-402.762 -10.0975 33.7594 +-403.752 -9.10564 30.4433 +-402.717 -8.06967 26.9797 +-403.546 -7.0728 23.6468 +-402.248 -6.0409 20.1968 +-402.716 -5.03855 16.8456 +-402.555 -4.02829 13.468 +-150.248 -1.12743 3.7694 +-145.378 -0.727164 2.43116 +-145.894 -0.364846 1.21981 +118.9 5.32907e-15 2.84217e-14 +118.995 -0.288607 0.99755 +119.282 -0.578645 2.00005 +119.059 -0.866457 2.99485 +119.727 -1.16197 4.01625 +120.485 -1.46199 5.05326 +120.135 -1.74978 6.04799 +120.475 -2.04786 7.07827 +119.608 -2.32445 8.03431 +120.129 -2.62753 9.08186 +120.54 -2.93087 10.1303 +119.647 -3.20181 11.0668 +119.641 -3.49477 12.0794 +120.322 -3.80995 13.1688 +120.991 -4.12873 14.2706 +120.758 -4.41837 15.2718 +120.219 -4.6956 16.23 +120.363 -4.9993 17.2797 +120.597 -5.30841 18.3481 +120.228 -5.59152 19.3267 +120.147 -5.88773 20.3505 +120.547 -6.20928 21.4619 +120.053 -6.48547 22.4166 +120.629 -6.82073 23.5754 +120.606 -7.12457 24.6256 +120.28 -7.4108 25.6149 +120.822 -7.75222 26.795 +120.671 -8.05146 27.8293 +120.22 -8.33035 28.7933 +120.728 -8.67728 29.9924 +121.031 -9.01289 31.1524 +120.839 -9.31351 32.1915 +120.35 -9.5909 33.1503 +121.003 -9.96134 34.4307 +120.399 -10.2301 35.3595 +120.836 -10.5885 36.5985 +120.309 -10.864 37.5506 +121.291 -11.2788 38.9845 +121.31 -11.6088 40.1248 +121.601 -11.9675 41.3647 +121.22 -12.2619 42.3825 +121.674 -12.643 43.6997 +119.312 -12.7285 43.9951 +114.907 -12.5794 43.4798 +112.653 -12.6494 43.7216 +109.018 -12.5498 43.3776 +106.502 -12.564 43.4266 +103.261 -12.4783 43.1303 +100.673 -12.457 43.0566 +98.8218 -12.5162 43.2615 +96.1593 -12.4618 43.0733 +97.0279 -12.862 44.4567 +96.6204 -13.0969 45.2684 +96.9214 -13.4299 46.4195 +98.0107 -13.879 47.9716 +96.8616 -14.0134 48.4365 +96.4179 -14.2478 49.2466 +96.7578 -14.6005 50.4656 +96.2956 -14.8346 51.2747 +96.5224 -15.1771 52.4584 +96.8216 -15.5356 53.6978 +96.244 -15.7557 54.4586 +96.4313 -16.1031 55.6592 +96.6041 -16.4525 56.8669 +96.0838 -16.6862 57.6746 +96.3153 -17.053 58.9423 +96.4471 -17.407 60.166 +95.8969 -17.6403 60.9723 +95.9196 -17.9809 62.1498 +96.0931 -18.3546 63.4412 +96.3323 -18.7463 64.7953 +96.3913 -19.1083 66.0466 +96.4348 -19.4721 67.3038 +95.8197 -19.7052 68.1097 +95.9161 -20.0874 69.4306 +96.6304 -20.6068 71.2261 +95.9797 -20.8404 72.0334 +95.7912 -21.1762 73.194 +95.8221 -21.5651 74.5383 +95.9901 -21.9911 76.0108 +95.7556 -22.3303 77.1831 +96.3434 -22.8685 79.0435 +95.8481 -23.156 80.0371 +96.3157 -23.6822 81.8559 +96.1629 -24.0637 83.1744 +96.0672 -24.465 84.5615 +95.9536 -24.8676 85.9532 +95.967 -25.3098 87.4816 +95.6722 -25.6768 88.7499 +96.0748 -26.239 90.6931 +95.813 -26.6282 92.0384 +95.604 -27.0379 93.4547 +96.1407 -27.6686 95.6345 +95.8878 -28.0823 97.0643 +95.548 -28.4763 98.4264 +95.8663 -29.0758 100.498 +95.6188 -29.5135 102.011 +95.7486 -30.0774 103.96 +95.9158 -30.6652 105.992 +95.339 -31.0235 107.23 +95.1326 -31.509 108.909 +95.3481 -32.146 111.11 +95.0274 -32.6134 112.726 +94.6222 -33.06 114.27 +94.2578 -33.5292 115.891 +94.4798 -34.2195 118.277 +94.1239 -34.7139 119.986 +94.5768 -35.5216 122.778 +94.3983 -36.1094 124.809 +94.3642 -36.7669 127.082 +94.468 -37.4951 129.599 +94.5898 -38.2496 132.207 +94.4477 -38.9152 134.508 +94.2708 -39.5833 136.817 +94.6038 -40.4863 139.938 +94.1886 -41.0894 142.023 +94.2726 -41.929 144.925 +93.8407 -42.5587 147.101 +93.4279 -43.2135 149.364 +91.2554 -43.0554 148.818 +90.15 -43.3953 149.993 +88.5378 -43.4914 150.325 +87.6051 -43.9233 151.818 +85.4114 -43.7188 151.111 +84.5049 -44.1698 152.67 +83.2071 -44.4222 153.542 +81.8091 -44.6223 154.234 +80.1371 -44.6698 154.398 +79.126 -45.0872 155.841 +77.0184 -44.8763 155.112 +75.6909 -45.1117 155.925 +71.4931 -43.599 150.697 +71.0976 -44.3802 153.397 +69.3425 -44.3216 153.194 +68.8078 -45.0508 155.715 +66.7783 -44.8051 154.866 +65.7809 -45.2487 156.399 +63.7712 -44.993 155.515 +62.6786 -45.3793 156.85 +60.9011 -45.2693 156.47 +59.8535 -45.7025 157.968 +56.4134 -44.274 153.03 +54.5978 -44.0676 152.316 +52.4187 -43.5395 150.491 +51.0805 -43.6915 151.017 +49.1353 -43.3099 149.698 +47.9197 -43.5604 150.563 +46.0389 -43.1954 149.302 +44.9565 -43.5726 150.606 +43.1056 -43.1979 149.311 +42.1616 -43.7302 151.15 +40.3362 -43.3466 149.825 +39.2639 -43.7663 151.275 +37.4446 -43.3464 149.824 +36.3071 -43.7063 151.068 +34.6303 -43.4128 150.053 +33.5569 -43.8758 151.654 +31.7792 -43.4108 150.046 +30.663 -43.8408 151.533 +28.939 -43.3944 149.99 +27.8011 -43.8188 151.457 +26.2096 -43.5281 150.452 +25.0452 -43.9469 151.899 +23.4574 -43.6212 150.774 +22.1564 -43.8141 151.44 +20.6101 -43.5078 150.382 +19.4016 -43.9147 151.788 +17.8182 -43.4631 150.227 +16.5991 -43.8916 151.708 +15.1053 -43.5982 150.694 +13.8403 -43.9656 151.964 +12.3573 -43.6371 150.828 +11.0704 -43.9981 152.076 +9.63346 -43.7738 151.301 +8.32142 -44.1284 152.527 +6.89623 -43.8972 151.728 +5.54902 -44.162 152.643 +4.12549 -43.7849 151.339 +2.76621 -44.0434 152.233 +1.3753 -43.7983 151.386 +7.32747e-15 -44.05 152.256 +-1.37007 -43.6315 150.809 +-2.7854 -44.3491 153.289 +-4.12025 -43.7293 151.147 +-5.556 -44.2176 152.835 +-6.88314 -43.8138 151.439 +-8.35282 -44.2949 153.102 +-9.67009 -43.9403 151.876 +-11.1401 -44.2754 153.035 +-12.4593 -43.9972 152.073 +-14.0059 -44.4914 153.781 +-15.2778 -44.0962 152.415 +-16.7664 -44.3338 153.237 +-18.0786 -44.0981 152.422 +-19.6697 -44.5217 153.886 +-20.8059 -43.9211 151.81 +-22.4625 -44.4194 153.532 +-23.753 -44.1709 152.674 +-25.1859 -44.194 152.753 +-26.5232 -44.0489 152.252 +-28.1831 -44.4208 153.537 +-29.4675 -44.1868 152.728 +-31.0255 -44.3594 153.325 +-32.2378 -44.0373 152.212 +-34.1599 -44.6642 154.379 +-35.4528 -44.4439 153.617 +-37.1394 -44.7082 154.531 +-38.3551 -44.4002 153.466 +-40.159 -44.764 154.724 +-41.3377 -44.4227 153.544 +-43.1451 -44.7504 154.677 +-44.5486 -44.644 154.309 +-46.3898 -44.9616 155.407 +-47.459 -44.5278 153.907 +-49.4693 -44.9691 155.433 +-50.4584 -44.4764 153.729 +-52.6874 -45.0658 155.767 +-53.6879 -44.5937 154.135 +-56.1931 -45.3554 156.768 +-57.0142 -44.7457 154.66 +-59.4773 -45.4155 156.975 +-60.5509 -45.0091 155.571 +-62.7861 -45.4571 157.119 +-64.7241 -45.6653 157.839 +-67.7663 -46.6147 161.12 +-68.9596 -46.2687 159.924 +-71.9336 -47.0974 162.789 +-72.373 -46.2584 159.889 +-75.6123 -47.1983 163.138 +-76.345 -46.558 160.924 +-79.9594 -47.6555 164.718 +-81.0652 -47.2342 163.261 +-82.9398 -47.2606 163.353 +-84.4206 -47.0577 162.652 +-86.349 -47.0985 162.793 +-86.9934 -46.4438 160.53 +-89.5282 -46.7953 161.745 +-89.7058 -45.9171 158.709 +-93.2289 -46.7428 161.563 +-94.6438 -46.4907 160.692 +-97.2 -46.7889 161.723 +-98.0564 -46.2642 159.909 +-100.999 -46.7156 161.469 +-101.992 -46.2553 159.878 +-105.136 -46.7606 161.625 +-105.848 -46.1756 159.603 +-109.527 -46.8729 162.013 +-110.443 -46.3737 160.287 +-113.852 -46.9104 162.142 +-105.635 -42.716 147.645 +-109.209 -43.3461 149.823 +-108.127 -42.1291 145.616 +-97.6899 -37.3686 129.162 +-96.8371 -36.3706 125.712 +-97.5542 -35.979 124.359 +-96.8539 -35.0797 121.25 +-96.9051 -34.471 119.147 +-96.801 -33.8215 116.902 +-97.3559 -33.4124 115.488 +-96.7475 -32.6176 112.74 +-97.1252 -32.1688 111.189 +-97.0275 -31.5729 109.129 +-96.8999 -30.9798 107.08 +-97.3389 -30.5771 105.688 +-97.2916 -30.0299 103.796 +-96.9472 -29.4035 101.631 +-97.253 -28.9844 100.182 +-96.8515 -28.3643 98.0393 +-97.1827 -27.9686 96.6714 +-97.2862 -27.5137 95.0991 +-96.9443 -26.9426 93.1252 +-97.2874 -26.5701 91.8377 +-97.3986 -26.1401 90.3513 +-97.4178 -25.6924 88.8041 +-96.9775 -25.133 86.8704 +-97.0994 -24.7278 85.47 +-97.4263 -24.3798 84.2671 +-97.514 -23.9769 82.8743 +-97.8858 -23.6483 81.7387 +-97.8642 -23.2295 80.2912 +-98.0537 -22.8662 79.0355 +-98.305 -22.5215 77.8439 +-97.765 -22.0024 76.0496 +-97.7478 -21.6087 74.689 +-97.9497 -21.2682 73.5119 +-97.8205 -20.8606 72.1033 +-97.753 -20.4721 70.7603 +-97.8294 -20.1185 69.5381 +-98.2956 -19.8478 68.6025 +-98.1009 -19.4472 67.218 +-98.0525 -19.0811 65.9523 +-98.1534 -18.7481 64.8014 +-98.158 -18.4005 63.6001 +-98.2317 -18.0697 62.4568 +-98.4599 -17.7703 61.4216 +-99.0142 -17.5308 60.594 +-101.681 -17.6582 61.0342 +-102.658 -17.4835 60.4305 +-105.346 -17.5917 60.8045 +-107.273 -17.5612 60.6992 +-109.206 -17.5227 60.5661 +-111.928 -17.5994 60.831 +-113.875 -17.5428 60.6355 +-116.707 -17.6108 60.8704 +-118.05 -17.4445 60.2955 +-120.545 -17.4398 60.2795 +-159.312 -22.5596 77.9756 +-164.131 -22.7428 78.6089 +-164.21 -22.2586 76.9352 +-164.451 -21.7997 75.349 +-163.498 -21.1886 73.2368 +-163.975 -20.7682 71.7838 +-164.164 -20.3132 70.2112 +-164.062 -19.8256 68.5259 +-164.402 -19.3944 67.0354 +-164.173 -18.8992 65.3238 +-164.019 -18.4171 63.6573 +-165.8 -18.151 62.7376 +-125.94 -13.4356 46.4393 +-111.932 -11.6308 40.2011 +-110.32 -11.1593 38.5714 +-109.723 -10.7985 37.3244 +-108.829 -10.4144 35.9966 +-108.488 -10.0883 34.8697 +-107.564 -9.71319 33.5729 +-107.865 -9.45194 32.67 +-108.445 -9.21438 31.8488 +-108.826 -8.95889 30.9658 +-110.257 -8.78655 30.3701 +-110.625 -8.52625 29.4704 +-109.343 -8.14253 28.1441 +-109.207 -7.84922 27.1303 +-109.546 -7.59078 26.237 +-110.461 -7.37023 25.4747 +-111.76 -7.17082 24.7854 +-112.86 -6.95363 24.0347 +-114.345 -6.75478 23.3474 +-117.003 -6.61571 22.8667 +-124.863 -6.74533 23.3147 +-158.501 -8.16424 28.2191 +-160.327 -7.85672 27.1562 +-162.441 -7.55474 26.1124 +-159.709 -7.03008 24.299 +-840.663 -34.9171 120.688 +-152.897 -5.97199 20.6418 +-863.747 -31.6032 109.234 +-379.649 -12.9552 44.7786 +-379.445 -12.015 41.5292 +-896.561 -26.1889 90.5201 +-403.633 -10.8014 37.3344 +-403.758 -9.81724 33.9326 +-403.652 -8.82894 30.5166 +-402.417 -7.82056 27.0312 +-402.248 -6.83751 23.6334 +-400.65 -5.83551 20.17 +-403.715 -4.89875 16.9322 +-401.655 -3.89811 13.4735 +-147.949 -1.07671 3.72157 +-145.378 -0.70524 2.43761 +-145.594 -0.353117 1.22053 +118.9 5.32907e-15 2.84217e-14 +119.895 -0.281708 1.00767 +119.282 -0.560575 2.00519 +119.059 -0.839399 3.00254 +119.727 -1.12568 4.02657 +119.686 -1.40694 5.03264 +120.435 -1.69936 6.07865 +119.676 -1.97076 7.04943 +119.508 -2.24999 8.04824 +120.129 -2.54547 9.1052 +120.54 -2.83934 10.1564 +119.746 -3.10438 11.1044 +119.641 -3.38563 12.1105 +120.322 -3.69097 13.2027 +120.098 -3.97026 14.2017 +120.758 -4.28039 15.311 +120.219 -4.54896 16.2717 +120.363 -4.84318 17.3241 +120.597 -5.14263 18.3953 +120.327 -5.42135 19.3923 +120.048 -5.69917 20.386 +119.564 -5.96629 21.3415 +120.053 -6.28294 22.4742 +119.845 -6.56478 23.4823 +120.606 -6.90208 24.6889 +120.28 -7.17937 25.6807 +119.945 -7.45564 26.6689 +120.671 -7.80002 27.9008 +120.996 -8.12233 29.0537 +120.728 -8.40629 30.0695 +121.127 -8.7384 31.2574 +120.839 -9.02266 32.2742 +120.35 -9.29139 33.2355 +121.099 -9.65791 34.5465 +120.686 -9.9342 35.5348 +121.027 -10.2741 36.7505 +120.404 -10.5331 37.677 +121.385 -10.9352 39.1152 +121.405 -11.255 40.2594 +121.695 -11.6027 41.5032 +121.314 -11.8882 42.5243 +120.924 -12.1728 43.5423 +118.938 -12.2924 43.9702 +114.907 -12.1865 43.5915 +111.911 -12.1737 43.5454 +109.018 -12.1579 43.4891 +105.766 -12.0875 43.2372 +103.261 -12.0886 43.2411 +100.673 -12.0679 43.1673 +98.8218 -12.1254 43.3727 +96.4311 -12.1068 43.3061 +97.0279 -12.4604 44.5709 +96.8001 -12.7115 45.4692 +97.0109 -13.0225 46.5817 +98.7235 -13.5433 48.4446 +97.1277 -13.6131 48.6944 +96.3296 -13.7902 49.3279 +96.7578 -14.1445 50.5953 +96.2082 -14.3583 51.3598 +96.5224 -14.7031 52.5932 +96.8216 -15.0505 53.8358 +96.3301 -15.2774 54.6475 +96.517 -15.6141 55.8518 +96.5189 -15.9246 56.9627 +96.1687 -16.1793 57.8738 +96.3153 -16.5204 59.0938 +96.4471 -16.8634 60.3207 +95.8969 -17.0894 61.129 +96.0026 -17.4345 62.3633 +96.8348 -17.9186 64.0951 +96.3323 -18.1609 64.9618 +96.3913 -18.5116 66.2163 +95.7876 -18.7374 67.0239 +95.8197 -19.0898 68.2847 +95.8363 -19.4439 69.551 +95.7577 -19.783 70.7642 +95.9797 -20.1896 72.2186 +95.7912 -20.5149 73.3821 +95.8221 -20.8917 74.7299 +95.8358 -21.2701 76.0837 +95.9088 -21.6676 77.5053 +95.7351 -22.0145 78.7462 +95.6217 -22.3799 80.0533 +96.3157 -22.9427 82.0663 +95.5684 -23.1681 82.8727 +96.0672 -23.701 84.7788 +95.9536 -24.091 86.1741 +95.822 -24.4824 87.5738 +95.8161 -24.9123 89.1117 +96.0748 -25.4195 90.9262 +95.9544 -25.8347 92.4111 +95.6741 -26.2128 93.7636 +96.1407 -26.8045 95.8803 +95.8878 -27.2053 97.3137 +95.6162 -27.6067 98.7497 +96.0014 -28.2074 100.898 +96.221 -28.772 102.918 +95.8149 -29.1583 104.3 +95.9158 -29.7076 106.265 +95.4689 -30.0956 107.652 +95.2611 -30.5662 109.336 +95.0937 -31.0589 111.098 +95.0903 -31.616 113.091 +94.9335 -32.1332 114.941 +94.8734 -32.6943 116.948 +94.845 -33.279 119.04 +94.5451 -33.7804 120.833 +94.6363 -34.4341 123.171 +94.5159 -35.0253 125.286 +94.3062 -35.5967 127.33 +93.8371 -36.0816 129.064 +94.5898 -37.0551 132.547 +94.5036 -37.7223 134.933 +94.2708 -38.3472 137.169 +94.6038 -39.222 140.298 +94.3498 -39.8743 142.631 +94.2196 -40.5967 145.215 +94.0497 -41.3215 147.808 +93.5309 -41.9103 149.914 +92.4227 -42.2444 151.109 +91.7 -42.763 152.964 +89.2271 -42.4612 151.884 +88.2838 -42.8812 153.387 +86.2226 -42.7557 152.938 +85.6316 -43.361 155.103 +83.6688 -43.2737 154.791 +83.0803 -43.9005 157.033 +81.6096 -44.0699 157.639 +80.6165 -44.502 159.184 +78.1808 -44.1307 157.856 +77.0856 -44.5082 159.207 +74.5204 -44.026 157.482 +71.9924 -43.5354 155.727 +69.7013 -43.1596 154.383 +69.5111 -44.0901 157.711 +67.8115 -44.0774 157.666 +66.7924 -44.5098 159.212 +64.8341 -44.3144 158.513 +64.0762 -44.9425 160.76 +61.6715 -44.4105 158.857 +60.9138 -45.0596 161.179 +58.3828 -44.3889 158.78 +55.607 -43.4808 155.532 +53.1485 -42.767 152.978 +51.9458 -43.0441 153.969 +49.9773 -42.6766 152.655 +48.8553 -43.0242 153.898 +46.8341 -42.5691 152.271 +45.8109 -43.0142 153.863 +43.5866 -42.3158 151.364 +42.731 -42.9367 153.585 +40.862 -42.5403 152.168 +39.7236 -42.896 153.44 +38.0983 -42.7258 152.831 +36.937 -43.0761 154.084 +35.1281 -42.6618 152.602 +34.1391 -43.243 154.681 +32.178 -42.5829 152.32 +31.14 -43.1327 154.286 +29.4675 -42.8069 153.121 +28.3047 -43.2194 154.596 +26.6387 -42.8591 153.308 +25.4988 -43.3456 155.048 +23.7234 -42.7382 152.875 +22.56 -43.2188 154.594 +21.0278 -43.0034 153.824 +19.755 -43.3184 154.951 +18.2031 -43.0153 153.866 +16.9023 -43.2974 154.876 +15.3737 -42.9873 153.766 +14.0669 -43.2899 154.849 +12.5848 -43.053 154.001 +11.2726 -43.403 155.253 +9.76777 -42.998 153.805 +8.42609 -43.288 154.842 +6.9791 -43.0373 153.945 +5.65023 -43.5632 155.826 +4.19878 -43.1712 154.424 +2.81682 -43.4485 155.416 +1.39974 -43.1844 154.471 +6.21725e-15 -43.2667 154.766 +-1.39363 -42.9959 153.797 +-2.8046 -43.2603 154.743 +-4.19093 -43.0904 154.135 +-5.62231 -43.3481 155.057 +-6.98346 -43.0643 154.042 +-8.48889 -43.6108 155.997 +-9.84713 -43.3472 155.054 +-11.3354 -43.6448 156.118 +-12.6084 -43.1335 154.289 +-14.189 -43.6652 156.191 +-15.4695 -43.2552 154.724 +-17.1427 -43.9135 157.079 +-18.4295 -43.5502 155.78 +-20.0231 -43.9062 157.053 +-21.2497 -43.4571 155.447 +-22.9357 -43.9388 157.17 +-23.9895 -43.2175 154.59 +-26.0307 -44.2497 158.282 +-26.9853 -43.417 155.303 +-28.7735 -43.9353 157.157 +-29.9231 -43.4687 155.488 +-31.846 -44.1105 157.784 +-32.9555 -43.6119 156.001 +-34.95 -44.2702 158.355 +-35.8208 -43.5029 155.611 +-37.8593 -44.1515 157.931 +-38.9854 -43.7207 156.39 +-40.788 -44.0454 157.551 +-42.0889 -43.8176 156.736 +-43.8698 -44.0809 157.678 +-45.2435 -43.9245 157.119 +-47.2442 -44.3599 158.676 +-48.595 -44.1698 157.996 +-50.2002 -44.2085 158.135 +-51.3606 -43.8577 156.88 +-53.7072 -44.5036 159.19 +-55.0524 -44.299 158.458 +-56.9093 -44.499 159.174 +-58.049 -44.135 157.872 +-60.5034 -44.7562 160.094 +-61.6015 -44.3601 158.677 +-64.1479 -44.9928 160.94 +-66.2634 -45.2912 162.007 +-68.8902 -45.9077 164.213 +-70.7964 -46.0178 164.607 +-72.3243 -45.8743 164.093 +-74.5262 -46.1473 165.07 +-75.287 -45.5275 162.853 +-77.7965 -45.9616 164.405 +-80.0016 -46.1918 165.229 +-82.2276 -46.4152 166.028 +-84.518 -46.6557 166.888 +-85.1345 -45.9734 164.448 +-87.1208 -46.0356 164.67 +-87.8246 -45.4231 162.479 +-90.7019 -45.9282 164.286 +-92.1871 -45.7133 163.517 +-95.3621 -46.3194 165.685 +-96.4165 -45.8827 164.123 +-99.4 -46.3538 165.808 +-99.8328 -45.6312 163.224 +-102.853 -46.0873 164.855 +-104.343 -45.8439 163.984 +-107.627 -46.3735 165.879 +-108.481 -45.8463 163.993 +-111.705 -46.3121 165.659 +-112.871 -45.9134 164.233 +-115.25 -46.0036 164.556 +-101.727 -39.8509 142.547 +-100.548 -38.6619 138.294 +-100.055 -37.7667 135.092 +-97.6899 -36.2016 129.494 +-96.7777 -35.2133 125.958 +-97.5542 -34.8554 124.679 +-97.5236 -34.219 122.402 +-96.9667 -33.4158 119.529 +-96.8633 -32.7863 117.277 +-96.9153 -32.2225 115.261 +-96.8111 -31.6197 113.104 +-97.2538 -31.2056 111.623 +-97.1574 -30.6278 109.556 +-96.8999 -30.0124 107.355 +-97.2064 -29.5819 105.815 +-97.2247 -29.0722 103.992 +-96.9472 -28.4852 101.892 +-97.0484 -28.0203 100.229 +-97.3333 -27.6153 98.7805 +-96.9048 -27.0176 96.6425 +-97.146 -26.616 95.2061 +-97.6514 -26.2916 94.0455 +-97.7866 -25.8725 92.5462 +-97.3267 -25.3051 90.5167 +-97.4178 -24.8901 89.0323 +-97.5626 -24.495 87.6191 +-97.0994 -23.9556 85.6896 +-97.352 -23.6005 84.4193 +-97.4391 -23.2103 83.0236 +-97.7349 -22.8745 81.8223 +-97.9403 -22.5216 80.56 +-98.1303 -22.1695 79.3005 +-98.305 -21.8182 78.044 +-97.6872 -21.2983 76.1845 +-97.7478 -20.9339 74.881 +-98.5013 -20.72 74.1159 +-97.9791 -20.2419 72.4058 +-97.753 -19.8328 70.9421 +-98.5529 -19.6344 70.2324 +-98.1338 -19.1963 68.6656 +-98.2637 -18.8712 67.5026 +-98.0525 -18.4852 66.1218 +-97.9886 -18.1321 64.8588 +-98.241 -17.841 63.8175 +-98.1484 -17.4906 62.5641 +-98.5438 -17.23 61.632 +-98.9298 -16.9689 60.6979 +-100.833 -16.9641 60.6807 +-102.743 -16.9516 60.6362 +-104.66 -16.9314 60.5639 +-107.273 -17.0128 60.8552 +-109.206 -16.9755 60.7218 +-111.144 -16.9304 60.5605 +-113.088 -16.8775 60.3711 +-115.652 -16.9066 60.4753 +-118.05 -16.8997 60.4505 +-120.633 -16.9076 60.4789 +-157.886 -21.6595 77.4765 +-164.936 -22.1407 79.1977 +-163.76 -21.5045 76.9218 +-163.639 -21.0146 75.1695 +-164.857 -20.6976 74.0356 +-163.793 -20.0973 71.8884 +-164.073 -19.6679 70.3524 +-165.713 -19.3998 69.3933 +-164.402 -18.7888 67.2077 +-164.173 -18.309 65.4917 +-165.224 -17.973 64.2899 +-164.219 -17.4164 62.2988 +-128.461 -13.2766 47.4905 +-112.494 -11.3242 40.5068 +-110.132 -10.7924 38.6046 +-109.629 -10.4523 37.3881 +-108.829 -10.0892 36.0892 +-108.678 -9.79037 35.0203 +-108.42 -9.48473 33.9271 +-107.865 -9.15677 32.7539 +-108.254 -8.91088 31.8744 +-107.963 -8.6103 30.7992 +-109.68 -8.46763 30.2888 +-110.721 -8.26718 29.5718 +-109.343 -7.88825 28.2164 +-109.207 -7.6041 27.2 +-109.449 -7.34721 26.2811 +-110.461 -7.14006 25.5401 +-111.858 -6.95294 24.8708 +-111.981 -6.68402 23.9089 +-114.345 -6.54383 23.4074 +-117.003 -6.4091 22.9255 +-124.47 -6.51413 23.3012 +-159.091 -7.93871 28.3969 +-159.243 -7.55994 27.042 +-162.737 -7.33216 26.2273 +-161.191 -6.8737 24.5874 +-841.059 -33.8426 121.055 +-155.472 -5.88293 21.0433 +-862.061 -30.5568 109.302 +-381.138 -12.5998 45.0697 +-379.346 -11.6368 41.625 +-896.561 -25.3711 90.7527 +-404.031 -10.4744 37.4672 +-403.558 -9.50597 34.003 +-402.156 -8.52153 30.4817 +-403.614 -7.59887 27.1813 +-3270.39 -53.8548 192.64 +-401.549 -5.66595 20.2672 +-403.715 -4.74577 16.9757 +-401.056 -3.77075 13.488 +-3275.38 -23.0923 82.6016 +-145.278 -0.682745 2.44219 +-146.994 -0.34538 1.23543 +119 5.77316e-15 2.84217e-14 +118.995 -0.270559 1.0026 +119.282 -0.542459 2.01016 +119.059 -0.812272 3.01 +119.727 -1.0893 4.03656 +119.686 -1.36147 5.04513 +120.335 -1.64308 6.08868 +119.676 -1.90707 7.06692 +119.608 -2.17909 8.07494 +120.129 -2.46321 9.1278 +119.743 -2.72942 10.1143 +120.642 -3.02654 11.2153 +119.641 -3.27622 12.1405 +120.322 -3.57169 13.2354 +120.098 -3.84195 14.2369 +119.866 -4.11145 15.2356 +120.219 -4.40195 16.3121 +120.165 -4.67895 17.3386 +120.597 -4.97644 18.4409 +120.327 -5.24615 19.4404 +120.147 -5.51953 20.4534 +120.35 -5.81146 21.5352 +120.053 -6.07989 22.53 +119.845 -6.35263 23.5406 +120.606 -6.67903 24.7501 +120.377 -6.95298 25.7653 +120.042 -7.22056 26.7569 +120.671 -7.54795 27.9701 +120.22 -7.8094 28.9389 +120.05 -8.08896 29.9748 +120.258 -8.39532 31.1101 +120.839 -8.73108 32.3543 +121.215 -9.05576 33.5575 +121.099 -9.34579 34.6322 +120.781 -9.62076 35.6512 +121.027 -9.94203 36.8417 +121.64 -10.2973 38.1583 +121.291 -10.5735 39.1817 +120.365 -10.798 40.0134 +121.601 -11.2191 41.5739 +121.314 -11.504 42.6298 +121.674 -11.8524 43.9208 +118.565 -11.8578 43.9409 +114.907 -11.7927 43.6997 +111.911 -11.7802 43.6534 +109.018 -11.765 43.5971 +106.41 -11.7681 43.6085 +103.261 -11.6979 43.3484 +100.673 -11.6779 43.2744 +98.0938 -11.6471 43.16 +96.2499 -11.6935 43.332 +97.0279 -12.0577 44.6816 +96.6204 -12.2778 45.4974 +97.0109 -12.6017 46.6973 +98.3671 -13.0583 48.3896 +96.8616 -13.1371 48.6815 +96.4179 -13.3568 49.4957 +96.6699 -13.675 50.6748 +96.2082 -13.8943 51.4873 +96.5224 -14.2279 52.7238 +95.9556 -14.4338 53.4867 +96.244 -14.7704 54.7341 +96.4313 -15.0961 55.9407 +96.6041 -15.4236 57.1546 +96.1687 -15.6565 58.0174 +96.231 -15.9725 59.1886 +96.4471 -16.3184 60.4704 +96.564 -16.6521 61.7069 +96.0026 -16.871 62.5181 +96.1755 -17.2215 63.8168 +96.3323 -17.574 65.123 +96.3099 -17.8982 66.3246 +95.8685 -18.1472 67.247 +96.4628 -18.5969 68.9135 +95.9161 -18.8312 69.7818 +95.9164 -19.1754 71.0574 +95.8221 -19.505 72.2788 +95.7912 -19.8519 73.5643 +95.8221 -20.2165 74.9153 +96.4531 -20.7153 76.7638 +95.7556 -20.9339 77.5735 +95.7351 -21.303 78.9416 +95.6972 -21.6737 80.3153 +96.2408 -22.184 82.206 +96.1629 -22.5588 83.5951 +96.0672 -22.935 84.9892 +95.9536 -23.3125 86.3879 +95.822 -23.6912 87.7911 +96.3196 -24.2339 89.8024 +96.0748 -24.5981 91.1518 +95.8837 -24.9814 92.5722 +95.6741 -25.3657 93.9963 +96.2102 -25.9571 96.1878 +95.9566 -26.3448 97.6248 +95.6162 -26.7145 98.9948 +95.9338 -27.2765 101.077 +95.6188 -27.6679 102.527 +95.7486 -28.1965 104.486 +95.3254 -28.5704 105.872 +95.5338 -29.1428 107.993 +95.5182 -29.6581 109.903 +95.2209 -30.0953 111.523 +95.342 -30.6752 113.672 +94.9335 -31.0947 115.226 +94.9966 -31.6788 117.391 +94.6624 -32.1416 119.105 +94.5451 -32.6887 121.133 +94.5173 -33.2793 123.322 +94.5159 -33.8934 125.597 +94.3062 -34.4463 127.646 +94.3533 -35.1078 130.097 +94.4766 -35.8146 132.716 +94.5036 -36.5032 135.268 +94.2708 -37.1079 137.509 +94.1136 -37.7577 139.917 +94.3498 -38.5857 142.985 +94.5376 -39.4173 146.067 +93.9452 -39.9418 148.01 +93.9944 -40.7568 151.03 +93.6408 -41.418 153.481 +93.45 -42.1707 156.27 +91.64 -42.2002 156.379 +91.0472 -42.7944 158.581 +87.7495 -42.1066 156.032 +87.4626 -42.8567 158.812 +85.0541 -42.5686 157.744 +84.1698 -43.0391 159.488 +82.4127 -43.0654 159.585 +81.274 -43.415 160.881 +79.2571 -43.2926 160.427 +78.0999 -43.6365 161.702 +76.3865 -43.6701 161.826 +74.3921 -43.5325 161.316 +71.2166 -42.6728 158.13 +69.9018 -42.9049 158.991 +68.7299 -43.2308 160.198 +67.2793 -43.3853 160.771 +66.0435 -43.6821 161.871 +64.4704 -43.7577 162.151 +63.2825 -44.0979 163.411 +61.632 -44.1177 163.485 +59.9183 -44.0841 163.36 +57.886 -43.7999 162.307 +54.4812 -42.4227 157.204 +53.6144 -42.9909 159.309 +50.8494 -42.018 155.704 +50.1417 -42.7298 158.342 +47.8282 -42.0678 155.889 +47.2718 -42.9513 159.162 +44.8426 -42.1282 156.113 +43.9734 -42.7572 158.443 +41.8635 -42.1744 156.283 +41.1751 -43.0263 159.441 +38.822 -42.1303 156.12 +38.1067 -43.0039 159.357 +36.0805 -42.4023 157.128 +35.0747 -42.9925 159.315 +33.135 -42.432 157.238 +32.1132 -43.043 159.502 +30.2329 -42.4995 157.488 +29.1382 -43.0542 159.544 +27.2164 -42.3734 157.021 +26.2028 -43.1029 159.724 +24.492 -42.697 158.22 +23.3115 -43.2155 160.141 +21.5629 -42.6728 158.13 +20.3278 -43.1339 159.839 +18.6899 -42.7384 158.374 +17.4144 -43.1678 159.965 +15.7954 -42.7389 158.376 +14.4853 -43.1368 159.85 +12.8673 -42.5964 157.847 +11.5935 -43.1959 160.069 +10.0608 -42.8567 158.812 +8.7244 -43.3723 160.723 +7.16667 -42.7658 158.475 +5.82124 -43.4312 160.941 +4.29825 -42.7658 158.475 +2.9163 -43.5294 161.305 +1.42679 -42.5964 157.847 +5.88418e-15 -43.2493 160.267 +-1.4329 -42.7788 158.523 +-2.90932 -43.4252 160.919 +-4.28778 -42.6616 158.089 +-5.80379 -43.3012 160.459 +-7.15794 -42.7137 158.282 +-8.7244 -43.3723 160.723 +-10.0608 -42.8567 158.812 +-11.6493 -43.4038 160.839 +-13.0242 -43.1159 159.773 +-14.5637 -43.3702 160.715 +-15.9391 -43.1279 159.817 +-17.5294 -43.4528 161.021 +-18.8483 -43.1008 159.717 +-20.5106 -43.5219 161.277 +-21.7718 -43.086 159.662 +-23.3811 -43.3444 160.619 +-24.6398 -42.9547 159.175 +-26.3749 -43.3859 160.773 +-27.5795 -42.9388 159.116 +-29.4855 -43.5672 161.445 +-30.4698 -42.8325 158.722 +-32.7237 -43.8613 162.535 +-33.4539 -42.8406 158.752 +-35.7192 -43.7824 162.242 +-36.6216 -43.038 159.484 +-39.0065 -44.0195 163.121 +-39.8024 -43.1944 160.063 +-42.2396 -44.1388 163.563 +-43.0654 -43.3851 160.77 +-45.3451 -44.0909 163.385 +-46.2055 -43.4088 160.858 +-48.457 -44.0284 163.154 +-49.4471 -43.4919 161.166 +-51.9252 -44.2498 163.974 +-52.6536 -43.5088 161.229 +-55.1595 -44.23 163.901 +-55.9725 -43.5839 161.507 +-58.9929 -44.6375 165.411 +-59.5845 -43.8387 162.451 +-62.3845 -44.6562 165.48 +-63.0373 -43.927 162.778 +-68.52 -46.5063 172.336 +-67.7661 -44.8214 166.093 +-72.7111 -46.888 173.751 +-72.9012 -45.8545 169.921 +-76.5442 -46.9821 174.099 +-77.3573 -46.3524 171.766 +-80.6152 -47.1744 174.812 +-81.0725 -46.349 171.753 +-83.8475 -46.8476 173.601 +-84.3802 -46.091 170.797 +-86.9728 -46.4594 172.162 +-87.2317 -45.5838 168.918 +-89.2999 -45.6622 169.208 +-89.4869 -44.7873 165.966 +-94.6455 -46.3763 171.854 +-94.2389 -45.2206 167.572 +-98.3194 -46.2124 171.247 +-99.4203 -45.7831 169.656 +-103.2 -46.5707 172.575 +-103.081 -45.5934 168.953 +-106.922 -46.3623 171.802 +-106.851 -45.4287 168.343 +-111.336 -46.4214 172.021 +-111.651 -45.6611 169.204 +-114.755 -46.0392 170.605 +-114.858 -45.2117 167.539 +-120.226 -46.4391 172.087 +-98.6113 -37.382 138.525 +-96.705 -35.9827 133.339 +-96.4548 -35.2313 130.555 +-97.3372 -34.9051 129.346 +-97.5509 -34.3475 127.28 +-97.494 -33.7082 124.911 +-96.9757 -32.9271 122.016 +-97.0282 -32.3562 119.901 +-96.8633 -31.7268 117.568 +-96.9153 -31.1812 115.547 +-96.8111 -30.5979 113.385 +-97.2538 -30.1972 111.9 +-96.9626 -29.5786 109.608 +-96.8343 -29.0227 107.548 +-97.3389 -28.6649 106.222 +-97.0239 -28.0746 104.034 +-96.7445 -27.5071 101.932 +-97.0484 -27.1147 100.478 +-97.471 -26.7607 99.1657 +-97.2522 -26.2383 97.2299 +-97.3563 -25.8117 95.649 +-97.6514 -25.4419 94.2789 +-97.216 -24.8902 92.2345 +-97.3267 -24.4873 90.7413 +-97.4178 -24.0857 89.2532 +-97.5626 -23.7034 87.8365 +-97.0994 -23.1814 85.9023 +-97.9465 -22.9772 85.1456 +-97.514 -22.4774 83.2935 +-97.7349 -22.1352 82.0254 +-97.8642 -21.7768 80.6973 +-98.0537 -21.4363 79.4353 +-98.1506 -21.0799 78.1148 +-97.765 -20.6264 76.4343 +-97.7478 -20.2574 75.0668 +-97.7133 -19.89 73.7054 +-98.4551 -19.683 72.9382 +-98.1523 -19.2702 71.4087 +-98.1509 -18.9223 70.1196 +-97.4865 -18.4534 68.3819 +-98.1823 -18.2462 67.6141 +-98.3802 -17.9476 66.5074 +-98.3183 -17.6052 65.2386 +-98.4068 -17.2935 64.0838 +-98.1484 -16.9253 62.7194 +-98.0406 -16.588 61.4694 +-99.0985 -16.4485 60.9523 +-100.918 -16.4296 60.8825 +-102.658 -16.3901 60.7362 +-104.66 -16.3842 60.7142 +-106.584 -16.3572 60.6142 +-108.513 -16.3227 60.4863 +-111.144 -16.3833 60.7108 +-113.088 -16.3321 60.521 +-116.355 -16.4597 60.9939 +-118.138 -16.3658 60.6459 +-120.013 -16.277 60.3169 +-142.205 -18.8778 69.9545 +-162.699 -21.1345 78.3172 +-164.3 -20.878 77.3666 +-164.451 -20.4364 75.7301 +-163.498 -19.8635 73.6072 +-163.975 -19.4694 72.1469 +-164.438 -19.0747 70.6841 +-164.062 -18.5858 68.8725 +-164.402 -18.1816 67.3745 +-163.896 -17.6874 65.5434 +-164.019 -17.2653 63.9792 +-163.195 -16.7485 62.0641 +-129.954 -12.9969 48.162 +-112.494 -10.9582 40.6073 +-110.79 -10.506 38.9315 +-109.535 -10.1059 37.4488 +-107.884 -9.67829 35.8644 +-108.678 -9.47398 35.1072 +-108.42 -9.17821 34.0113 +-107.961 -8.86869 32.8643 +-108.349 -8.63051 31.9817 +-108.538 -8.37643 31.0401 +-109.68 -8.19398 30.364 +-110.528 -7.98607 29.5936 +-109.15 -7.61986 28.2365 +-109.304 -7.36487 27.2916 +-109.449 -7.10978 26.3463 +-110.558 -6.91539 25.626 +-111.078 -6.68135 24.7587 +-112.86 -6.51877 24.1563 +-114.345 -6.33236 23.4655 +-117.003 -6.20198 22.9824 +-123.194 -6.23898 23.1195 +-158.599 -7.65842 28.3794 +-159.44 -7.32467 27.1427 +-160.074 -6.97909 25.8621 +-160.302 -6.61488 24.5124 +-841.356 -32.7603 121.398 +-154.581 -5.66017 20.9746 +-862.061 -29.5693 109.573 +-379.748 -12.1482 45.0169 +-379.942 -11.2784 41.7939 +-897.059 -24.5648 91.0284 +-405.325 -10.1684 37.6805 +-404.057 -9.21013 34.1295 +-404.051 -8.28498 30.7013 +-400.622 -7.29877 27.0467 +-142.833 -2.27607 8.43434 +-144.901 -1.97851 7.33168 +-401.817 -4.5708 16.9378 +-403.554 -3.67161 13.6057 +-402.962 -2.74917 10.1875 +-145.378 -0.661137 2.44994 +-146.994 -0.334218 1.2385 +119.8 1.77636e-15 -1.13687e-13 +118.995 -0.261501 1.005 +119.082 -0.52342 2.0116 +119.959 -0.791012 3.04 +119.727 -1.05283 4.04623 +119.686 -1.31589 5.05721 +119.636 -1.57885 6.0678 +119.577 -1.84169 7.07794 +119.608 -2.10614 8.09428 +119.929 -2.3768 9.13447 +119.743 -2.63805 10.1385 +119.945 -2.90832 11.1772 +120.536 -3.19021 12.2605 +120.322 -3.45212 13.2671 +121.091 -3.74403 14.389 +120.659 -4.0001 15.3731 +120.318 -4.25808 16.3646 +120.165 -4.52231 17.3801 +120.597 -4.80984 18.4851 +120.327 -5.07052 19.4869 +120.147 -5.33475 20.5024 +119.76 -5.58938 21.481 +120.151 -5.88116 22.6024 +119.943 -6.14497 23.6162 +120.41 -6.44495 24.7691 +120.377 -6.72021 25.827 +120.919 -7.0298 27.0168 +120.574 -7.28937 28.0144 +120.996 -7.59671 29.1955 +120.825 -7.8686 30.2405 +121.127 -8.17292 31.41 +120.936 -8.44551 32.4576 +121.215 -8.7526 33.6378 +121.099 -9.03292 34.7152 +120.781 -9.29868 35.7365 +121.217 -9.62433 36.9881 +120.784 -9.88257 37.9805 +121.291 -10.2195 39.2755 +121.31 -10.5185 40.4244 +121.601 -10.8435 41.6735 +121.408 -11.1275 42.765 +121.58 -11.4468 43.9921 +117.818 -11.3886 43.7686 +114.907 -11.3979 43.8043 +111.911 -11.3859 43.758 +109.018 -11.3712 43.7014 +105.582 -11.2856 43.3727 +103.261 -11.3063 43.4522 +99.8505 -11.1948 43.0237 +98.2758 -11.2781 43.3436 +95.978 -11.2701 43.3131 +97.2084 -11.6757 44.8719 +96.6204 -11.8668 45.6063 +96.9214 -12.1686 46.766 +98.5453 -12.644 48.5932 +96.9503 -12.7089 48.8427 +96.3296 -12.8978 49.5688 +96.6699 -13.2172 50.7961 +96.2082 -13.4291 51.6106 +96.5224 -13.7516 52.85 +96.8216 -14.0765 54.0986 +96.3301 -14.2887 54.9143 +96.4313 -14.5907 56.0746 +96.6041 -14.9073 57.2914 +96.0838 -15.119 58.1051 +96.231 -15.4378 59.3303 +96.4471 -15.7721 60.6151 +95.8969 -15.9835 61.4274 +96.0026 -16.3062 62.6678 +96.1755 -16.6449 63.9695 +96.3323 -16.9856 65.2789 +96.3913 -17.3137 66.5396 +95.7876 -17.5248 67.3511 +95.7394 -17.8395 68.5605 +95.8363 -18.1856 69.8906 +95.9164 -18.5335 71.2276 +95.9797 -18.8831 72.5711 +95.9478 -19.2187 73.8609 +95.8221 -19.5397 75.0947 +95.8358 -19.8937 76.4551 +95.7556 -20.233 77.7593 +95.7351 -20.5899 79.1306 +96.2255 -21.0638 80.952 +96.3157 -21.458 82.4669 +96.1629 -21.8036 83.7953 +95.4037 -22.0141 84.6043 +95.9536 -22.532 86.5948 +95.822 -22.898 88.0013 +95.6722 -23.2652 89.4124 +96.1462 -23.7922 91.4379 +95.8837 -24.1451 92.7939 +95.7442 -24.5344 94.2903 +96.1407 -25.0699 96.3484 +95.9566 -25.4629 97.8585 +95.6162 -25.8202 99.2318 +96.0014 -26.382 101.391 +95.6188 -26.7416 102.773 +95.8811 -27.2903 104.882 +95.3254 -27.6139 106.125 +95.6637 -28.2054 108.399 +95.5825 -28.6846 110.24 +95.0301 -29.0296 111.566 +95.7826 -29.7853 114.47 +94.8712 -30.0338 115.426 +95.0581 -30.6382 117.748 +94.5406 -31.0257 119.238 +94.9062 -31.715 121.886 +94.6958 -32.2259 123.85 +94.3983 -32.7179 125.741 +95.0611 -33.5598 128.976 +94.9843 -34.1593 131.281 +94.4199 -34.595 132.955 +94.5036 -35.2812 135.592 +94.326 -35.8866 137.919 +94.1681 -36.5148 140.333 +94.4035 -37.3151 143.409 +94.1137 -37.9268 145.76 +94.1542 -38.6905 148.695 +93.7884 -39.306 151.06 +94.1484 -40.2483 154.681 +93.5 -40.7808 156.728 +93.3635 -41.5544 159.701 +92.4532 -42.0004 161.415 +90.3262 -41.8921 160.999 +89.8099 -42.5337 163.465 +86.5779 -41.8808 160.956 +86.349 -42.675 164.008 +83.2605 -42.052 161.614 +82.9837 -42.8445 164.659 +80.1612 -42.3204 162.645 +80.382 -43.408 166.825 +77.3403 -42.7352 164.239 +78.0528 -44.1456 169.66 +73.649 -42.6528 163.923 +74.1998 -44.0184 169.171 +69.6484 -42.3419 162.728 +70.6133 -44.0109 169.142 +67.0331 -42.8523 164.689 +68.6991 -45.0668 173.2 +64.2631 -43.2819 166.34 +65.8731 -45.5749 175.153 +61.1868 -43.5103 167.218 +62.1835 -45.4765 174.774 +56.9879 -42.8891 164.83 +56.8282 -44.0424 169.263 +52.7438 -42.1243 161.891 +52.3638 -43.1295 165.755 +49.5607 -42.1323 161.922 +49.0359 -43.0626 165.497 +46.2055 -41.9556 161.243 +45.7333 -42.9797 165.179 +43.2406 -42.1034 161.811 +43.0379 -43.4675 167.053 +40.0826 -42.0422 161.576 +39.4114 -42.9875 165.209 +37.0977 -42.1381 161.945 +36.5301 -43.2774 166.323 +34.1717 -42.2948 162.547 +33.2198 -43.0356 165.394 +31.0712 -42.2157 162.243 +30.2321 -43.1751 165.93 +28.2562 -42.5196 163.411 +27.204 -43.2517 166.224 +25.1276 -42.3386 162.715 +24.1326 -43.2398 166.179 +22.1895 -42.4426 163.115 +21.0834 -43.2393 166.177 +19.1766 -42.3834 162.887 +18.0834 -43.3254 166.508 +16.1788 -42.3109 162.608 +15.0169 -43.2227 166.113 +13.2282 -42.3252 162.664 +12.033 -43.3325 166.535 +10.2378 -42.1507 161.993 +8.99655 -43.2277 166.132 +7.3455 -42.3655 162.818 +5.97828 -43.1099 165.679 +4.40558 -42.366 162.82 +3.00705 -43.3814 166.722 +1.47217 -42.4798 163.258 +6.21725e-15 -43.3879 166.748 +-1.47566 -42.5806 163.645 +-3.00007 -43.2806 166.335 +-4.4082 -42.3912 162.917 +-6.03761 -43.5377 167.323 +-7.34114 -42.3403 162.722 +-9.10122 -43.7309 168.066 +-10.3905 -42.7793 164.409 +-12.1167 -43.6339 167.693 +-13.338 -42.6768 164.015 +-15.1738 -43.6742 167.848 +-16.428 -42.9626 165.113 +-18.3134 -43.8764 168.625 +-19.5049 -43.1089 165.675 +-21.3515 -43.7893 168.29 +-22.4766 -42.9918 165.225 +-24.5501 -43.988 169.054 +-25.4528 -42.8865 164.821 +-27.7358 -44.0973 169.474 +-28.6688 -43.1406 165.797 +-30.892 -44.1174 169.551 +-31.7819 -43.1814 165.954 +-34.1166 -44.1975 169.859 +-34.9891 -43.3066 166.435 +-37.3617 -44.2625 170.109 +-38.115 -43.2937 166.386 +-40.6037 -44.2879 170.206 +-41.3899 -43.4133 166.845 +-43.7637 -44.2003 169.87 +-44.7679 -43.5906 167.527 +-47.1568 -44.3176 170.321 +-47.8624 -43.4599 167.024 +-50.8551 -44.6603 171.638 +-51.4068 -43.7017 167.954 +-54.3227 -44.7429 171.955 +-54.8788 -43.8293 168.444 +-57.7553 -44.7608 172.024 +-58.2571 -43.8442 168.501 +-61.8254 -45.2146 173.768 +-62.1882 -44.2224 169.955 +-67.2412 -46.5215 178.791 +-68.0803 -45.8529 176.221 +-71.7811 -47.0886 180.97 +-72.384 -46.273 177.835 +-75.5956 -47.1163 181.077 +-76.3071 -46.39 178.285 +-79.4747 -47.1478 181.198 +-80.0688 -46.3709 178.212 +-83.5844 -47.2744 181.684 +-83.7266 -46.2639 177.801 +-86.9748 -46.9682 180.507 +-87.1785 -46.0254 176.884 +-89.1647 -46.0357 176.924 +-89.1949 -45.0491 173.132 +-94.203 -46.5568 178.926 +-94.4738 -45.7001 175.634 +-98.7299 -46.7582 179.7 +-98.247 -45.5656 175.117 +-103.071 -46.8237 179.952 +-103.064 -45.8721 176.295 +-107.5 -46.8869 180.195 +-106.685 -45.6074 175.278 +-111.969 -46.9254 180.343 +-111.815 -45.9476 176.585 +-114.939 -46.3195 178.014 +-114.982 -45.4493 174.67 +-120.583 -46.7577 179.698 +-120.046 -45.6719 175.525 +-97.2996 -36.3252 139.604 +-96.6855 -35.425 136.145 +-96.9918 -34.8813 134.055 +-97.0935 -34.2772 131.734 +-97.3372 -33.7365 129.656 +-96.9561 -32.9952 126.807 +-97.5542 -32.5998 125.287 +-97.0366 -31.8449 122.386 +-96.9667 -31.2534 120.113 +-96.9878 -30.7039 118.001 +-96.9783 -30.157 115.899 +-96.8111 -29.5735 113.656 +-97.2538 -29.1862 112.168 +-97.0925 -28.6267 110.018 +-97.2936 -28.184 108.316 +-97.0738 -27.6298 106.186 +-97.0239 -27.1347 104.284 +-97.3525 -26.7534 102.818 +-97.253 -26.2621 100.93 +-97.6087 -25.9013 99.5434 +-97.8774 -25.5228 98.0888 +-97.4965 -24.9834 96.016 +-97.7222 -24.608 94.5731 +-97.1447 -24.0393 92.3875 +-97.9741 -23.8249 91.5636 +-97.4178 -23.2794 89.4669 +-97.7089 -22.9442 88.1788 +-97.6892 -22.5415 86.6311 +-97.352 -22.0732 84.8314 +-97.514 -21.7249 83.493 +-97.7349 -21.3942 82.2218 +-97.9403 -21.0641 80.9533 +-97.9771 -20.7024 79.5632 +-98.305 -20.4063 78.425 +-97.6095 -19.9042 76.4955 +-97.6695 -19.5635 75.1863 +-98.1073 -19.3017 74.1799 +-98.2171 -18.978 72.9361 +-98.0724 -18.6099 71.5214 +-97.9902 -18.2589 70.1723 +-97.6484 -17.8653 68.6595 +-98.4266 -17.6792 67.9446 +-98.4621 -17.3612 66.7222 +-98.4007 -17.03 65.4496 +-98.3239 -16.7005 64.1831 +-98.1484 -16.3587 62.8696 +-98.4599 -16.1013 61.8801 +-99.0142 -15.8843 61.0463 +-100.154 -15.7595 60.5668 +-102.743 -15.8546 60.9322 +-104.66 -15.8357 60.8596 +-106.584 -15.8096 60.7593 +-109.206 -15.877 61.0182 +-111.144 -15.8348 60.8561 +-113.088 -15.7853 60.6659 +-115.74 -15.8246 60.8167 +-117.609 -15.747 60.5185 +-120.013 -15.7321 60.4614 +-129.998 -16.6796 64.1027 +-163.326 -20.5057 78.807 +-164.569 -20.2122 77.6792 +-164.18 -19.7197 75.7865 +-163.498 -19.1985 73.7835 +-163.793 -18.7968 72.2394 +-164.347 -18.4259 70.8139 +-164.337 -17.9937 69.1531 +-164.862 -17.6221 67.7248 +-164.081 -17.1146 65.7744 +-164.297 -16.7156 64.2412 +-164.219 -16.2893 62.603 +-143.865 -13.9064 53.4449 +-113.056 -10.6443 40.9079 +-110.602 -10.1371 38.9586 +-109.441 -9.75913 37.5061 +-108.64 -9.41988 36.2023 +-108.678 -9.15681 35.1913 +-108.516 -8.87873 34.1226 +-108.533 -8.61722 33.1176 +-107.68 -8.29006 31.8602 +-108.538 -8.09601 31.1145 +-109.392 -7.89884 30.3567 +-110.143 -7.6918 29.561 +-109.246 -7.37126 28.3291 +-109.304 -7.11831 27.357 +-109.449 -6.87176 26.4094 +-109.683 -6.63097 25.484 +-111.078 -6.45767 24.818 +-112.86 -6.30054 24.2141 +-114.345 -6.12036 23.5217 +-116.807 -5.98433 22.9989 +-122.703 -6.00609 23.0825 +-159.189 -7.42955 28.5531 +-158.554 -7.04012 27.0565 +-161.554 -6.8078 26.1636 +-160.993 -6.42101 24.6771 +-840.466 -31.6301 121.56 +-153.095 -5.41812 20.8228 +-862.458 -28.5924 109.886 +-379.748 -11.7415 45.1246 +-378.849 -10.8695 41.7734 +-896.76 -23.7345 91.216 +-403.534 -9.78454 37.6038 +-403.359 -8.88644 34.1522 +-403.452 -7.99576 30.7292 +-403.315 -7.10184 27.2937 +-145.528 -2.24138 8.61405 +-145.201 -1.91623 7.36443 +-402.417 -4.42438 17.0037 +-402.854 -3.54255 13.6147 +-400.163 -2.63868 10.1409 +-145.678 -0.640323 2.46088 +-146.094 -0.321053 1.23386 +119 5.77316e-15 2.84217e-14 +119.095 -0.252633 1.00816 +119.282 -0.506096 2.01962 +119.859 -0.762915 3.04449 +120.427 -1.02222 4.07926 +119.686 -1.2702 5.06887 +119.636 -1.52403 6.0818 +119.676 -1.77923 7.10019 +119.608 -2.03302 8.11295 +119.929 -2.29428 9.15555 +119.743 -2.54646 10.1619 +119.945 -2.80735 11.203 +120.536 -3.07945 12.2888 +120.322 -3.33227 13.2977 +120.197 -3.58737 14.3158 +120.758 -3.8644 15.4213 +120.516 -4.11703 16.4294 +120.165 -4.3653 17.4202 +120.597 -4.64285 18.5277 +120.425 -4.89849 19.5479 +120.048 -5.1453 20.5328 +119.76 -5.39533 21.5306 +120.151 -5.67698 22.6545 +119.845 -5.92678 23.6514 +120.508 -6.22625 24.8465 +119.499 -6.43955 25.6976 +120.919 -6.78573 27.0791 +120.671 -7.04198 28.1017 +120.996 -7.33296 29.2629 +120.728 -7.58933 30.286 +121.224 -7.89546 31.5076 +120.936 -8.15229 32.5325 +120.542 -8.4018 33.5282 +121.195 -8.72621 34.8228 +120.781 -8.97585 35.819 +121.313 -9.2975 37.1026 +120.879 -9.54697 38.0981 +121.291 -9.86472 39.3661 +121.215 -10.1453 40.486 +121.789 -10.4832 41.8343 +121.408 -10.7412 42.8637 +121.58 -11.0494 44.0936 +117.538 -10.9671 43.7653 +114.907 -11.0022 43.9054 +111.818 -10.9815 43.8226 +108.279 -10.902 43.5053 +104.846 -10.8178 43.1695 +102.436 -10.8266 43.2044 +99.8505 -10.8061 43.123 +97.2749 -10.7756 43.0011 +95.7967 -10.8583 43.331 +96.3961 -11.1762 44.5996 +96.8001 -11.4761 45.7966 +96.8319 -11.7352 46.8306 +98.0107 -12.1388 48.4412 +97.4825 -12.335 49.2242 +96.5945 -12.4843 49.8198 +96.6699 -12.7583 50.9133 +96.2956 -12.9746 51.7766 +96.5224 -13.2742 52.9719 +96.8216 -13.5878 54.2234 +96.3301 -13.7927 55.041 +96.4313 -14.0841 56.204 +96.6041 -14.3897 57.4236 +96.1687 -14.607 58.2905 +96.3153 -14.9149 59.5193 +96.4471 -15.2245 60.755 +95.8969 -15.4285 61.5691 +96.0026 -15.7401 62.8124 +96.1755 -16.067 64.1171 +96.2504 -16.382 65.3739 +96.3913 -16.7126 66.6931 +96.4348 -17.0307 67.9626 +95.8197 -17.2346 68.7764 +96.6349 -17.7005 70.6356 +96.6304 -18.0232 71.9233 +96.4525 -18.3173 73.0969 +95.7912 -18.5212 73.9105 +95.9775 -18.8919 75.3901 +95.8358 -19.203 76.6315 +95.7556 -19.5306 77.9387 +95.8872 -19.9066 79.4392 +95.6972 -20.2209 80.6933 +96.3157 -20.713 82.6572 +96.1629 -21.0466 83.9886 +96.0672 -21.3976 85.3892 +95.8805 -21.7332 86.7284 +95.822 -22.103 88.2044 +95.6722 -22.4574 89.6186 +96.1462 -22.9662 91.6489 +95.9544 -23.324 93.0765 +95.7442 -23.6826 94.5079 +95.5155 -24.0422 95.9427 +95.8878 -24.5613 98.0145 +95.6162 -24.9238 99.4607 +96.0689 -25.484 101.697 +95.6188 -25.8132 103.01 +95.8811 -26.3428 105.124 +95.4566 -26.6919 106.517 +95.7286 -27.2446 108.722 +95.7111 -27.7259 110.643 +95.0937 -28.0404 111.898 +95.1532 -28.5621 113.98 +95.2447 -29.1054 116.148 +95.1197 -29.5937 118.097 +94.7842 -30.0256 119.82 +94.7859 -30.575 122.012 +94.8742 -31.1656 124.37 +94.6922 -31.6805 126.424 +95.003 -32.3747 129.194 +94.6975 -32.8737 131.186 +94.7031 -33.494 133.661 +94.4477 -34.0361 135.824 +94.326 -34.6406 138.237 +94.1136 -35.2267 140.575 +94.4573 -36.04 143.821 +94.1137 -36.61 146.096 +94.1542 -37.3472 149.038 +94.252 -38.129 152.157 +93.7931 -38.7043 154.453 +94 -39.5755 157.93 +93.8067 -40.3023 160.83 +94.1015 -41.2651 164.672 +93.1891 -41.7194 166.485 +93.1432 -42.5809 169.923 +89.6254 -41.8497 167.005 +89.8447 -42.8611 171.041 +86.5624 -42.2017 168.41 +86.2276 -42.9737 171.491 +83.3039 -42.4528 169.412 +83.5094 -43.531 173.715 +80.8237 -43.1093 172.032 +80.9406 -44.1898 176.344 +77.6763 -43.4233 173.285 +77.1303 -44.1684 176.258 +73.8579 -43.3422 172.961 +73.0108 -43.9253 175.288 +70.185 -43.3096 172.831 +70.0251 -44.3419 176.951 +68.5006 -44.5342 177.718 +67.9252 -45.3631 181.026 +65.2592 -44.795 178.759 +64.6253 -45.6212 182.056 +61.6206 -44.7653 178.641 +61.2163 -45.796 182.753 +55.3299 -42.6555 170.221 +54.4396 -43.2826 172.723 +51.4068 -42.1844 168.341 +50.8551 -43.1098 172.034 +48.3701 -42.3961 169.186 +47.5451 -43.1312 172.119 +44.9933 -42.2889 168.758 +44.1991 -43.0903 171.956 +42.1135 -42.6389 170.155 +41.0536 -43.224 172.49 +38.6561 -42.3837 169.136 +37.9439 -43.3915 173.158 +35.6071 -42.5415 169.766 +34.5555 -43.2119 172.441 +32.4379 -42.5424 169.77 +31.4998 -43.4236 173.286 +29.296 -42.5539 169.815 +28.1895 -43.2624 172.643 +26.177 -42.5755 169.902 +25.1207 -43.4476 173.382 +22.9987 -42.4632 169.454 +21.8877 -43.3305 172.915 +19.9351 -42.53 169.72 +18.721 -43.296 172.777 +16.8209 -42.463 169.453 +15.6706 -43.5383 173.744 +13.7696 -42.5279 169.712 +12.4515 -43.2828 172.724 +10.6957 -42.507 169.628 +9.34197 -43.329 172.909 +7.66829 -42.6917 170.365 +6.23305 -43.3864 173.138 +4.59405 -42.6448 170.178 +3.13096 -43.6008 173.993 +1.53151 -42.6577 170.23 +6.88338e-15 -43.6317 174.116 +-1.52889 -42.5847 169.939 +-3.13271 -43.6251 174.09 +-4.58882 -42.5962 169.984 +-6.26795 -43.6295 174.108 +-7.70318 -42.8859 171.14 +-9.42571 -43.7175 174.459 +-10.8666 -43.1863 172.339 +-12.6468 -43.9617 175.434 +-13.9579 -43.1095 172.033 +-15.8013 -43.9015 175.193 +-17.0797 -43.1163 172.06 +-19.0137 -43.9729 175.478 +-20.3426 -43.3995 173.19 +-22.3143 -44.1749 176.284 +-23.3511 -43.1137 172.049 +-25.5661 -44.2179 176.456 +-26.6205 -43.2967 172.78 +-28.7839 -44.1749 176.284 +-29.9231 -43.4649 173.451 +-32.0034 -44.1178 176.056 +-33.094 -43.4029 173.204 +-35.376 -44.2379 176.536 +-36.3049 -43.375 173.092 +-38.63 -44.1761 176.289 +-39.6517 -43.4754 173.493 +-42.1783 -44.408 177.215 +-43.164 -43.7024 174.399 +-45.7232 -44.5762 177.886 +-46.5206 -43.7245 174.487 +-49.0721 -44.5164 177.647 +-49.8667 -43.7077 174.42 +-52.8121 -44.7688 178.654 +-53.3949 -43.8159 174.852 +-56.4862 -44.9097 179.217 +-57.104 -44.0232 175.679 +-60.5055 -45.2644 180.632 +-61.3985 -44.6042 177.997 +-64.7229 -45.6902 182.331 +-65.6598 -45.0702 179.857 +-69.6011 -46.4822 185.492 +-71.0221 -46.1735 184.26 +-73.9313 -46.8154 186.822 +-74.6563 -46.0687 183.842 +-77.5061 -46.6297 186.081 +-78.9093 -46.3064 184.79 +-82.1708 -47.0546 187.776 +-83.1392 -46.4773 185.472 +-86.3095 -47.1207 188.04 +-86.6709 -46.2282 184.478 +-89.2992 -46.5493 185.759 +-89.2019 -45.4586 181.407 +-93.6799 -46.6876 186.311 +-94.1924 -45.9216 183.255 +-97.608 -46.5646 185.821 +-98.2601 -45.8815 183.095 +-101.594 -46.444 185.339 +-102.685 -45.9703 183.449 +-105.64 -46.3249 184.864 +-106.856 -45.9085 183.202 +-110.65 -46.5852 185.903 +-111.76 -46.1185 184.041 +-114.956 -46.5048 185.582 +-114.897 -45.5753 181.873 +-120.08 -46.7109 186.404 +-120.409 -45.9418 183.335 +-97.5449 -36.5111 145.701 +-97.1409 -35.6744 142.362 +-97.1318 -35.0035 139.685 +-97.3652 -34.4355 137.418 +-97.0491 -33.6902 134.444 +-97.0935 -33.0871 132.037 +-97.4548 -32.6046 130.112 +-96.9561 -31.8497 127.099 +-97.0126 -31.2933 124.879 +-97.0974 -30.7585 122.745 +-96.9051 -30.1491 120.313 +-96.9878 -29.6379 118.273 +-96.9153 -29.091 116.091 +-96.8111 -28.5468 113.919 +-96.9967 -28.0983 112.129 +-96.8976 -27.5774 110.05 +-97.2279 -27.1873 108.493 +-97.0738 -26.6705 106.431 +-97.2916 -26.2648 104.812 +-96.9472 -25.7169 102.626 +-97.3212 -25.3681 101.234 +-97.6775 -25.0198 99.8439 +-97.3216 -24.4969 97.7574 +-97.3563 -24.0814 96.0992 +-97.5807 -23.7193 94.6541 +-97.7866 -23.3581 93.2126 +-97.3267 -22.8458 91.1684 +-97.4903 -22.4879 89.7402 +-97.5626 -22.1145 88.25 +-97.1732 -21.6439 86.3722 +-97.2777 -21.2906 84.9622 +-97.3642 -20.9385 83.5571 +-97.5839 -20.6195 82.2842 +-97.7882 -20.3012 81.0141 +-97.9771 -19.9837 79.7468 +-98.2278 -19.6823 78.5443 +-97.221 -19.1367 76.3668 +-98.0608 -18.96 75.6617 +-97.8709 -18.5866 74.1718 +-98.0585 -18.2895 72.9862 +-97.6731 -17.8907 71.3945 +-98.3921 -17.6973 70.6227 +-97.6484 -17.245 68.8179 +-98.4266 -17.0654 68.1013 +-98.3802 -16.7445 66.8205 +-98.3183 -16.425 65.5457 +-98.241 -16.1071 64.277 +-98.2317 -15.8042 63.0682 +-98.7115 -15.582 62.1814 +-99.1828 -15.3589 61.2913 +-100.154 -15.2124 60.7065 +-102.743 -15.3042 61.0728 +-103.889 -15.1733 60.5504 +-106.67 -15.2731 60.9487 +-108.426 -15.2164 60.7225 +-110.448 -15.1893 60.6143 +-113.001 -15.2255 60.7588 +-114.861 -15.1592 60.4942 +-117.344 -15.166 60.5215 +-120.013 -15.1859 60.6009 +-125.543 -15.5487 62.0488 +-163.057 -19.7612 78.8589 +-164.3 -19.4785 77.7308 +-163.639 -18.9723 75.7108 +-163.951 -18.5833 74.1587 +-163.793 -18.1442 72.406 +-164.621 -17.8158 71.0957 +-163.237 -17.2527 68.8485 +-164.402 -16.9628 67.6916 +-164.173 -16.5297 65.9633 +-163.648 -16.0715 64.1351 +-165.056 -15.804 63.0673 +-160.202 -14.948 59.6515 +-113.899 -10.3513 41.308 +-111.354 -9.85161 39.3138 +-109.441 -9.42031 37.5927 +-108.64 -9.09284 36.2859 +-108.583 -8.83119 35.2417 +-108.516 -8.57047 34.2013 +-108.533 -8.31804 33.194 +-108.445 -8.0591 32.1606 +-108.922 -7.84254 31.2964 +-109.584 -7.63802 30.4803 +-110.336 -7.43775 29.6811 +-109.246 -7.11534 28.3945 +-109.594 -6.88943 27.4929 +-110.323 -6.6861 26.6815 +-110.558 -6.45182 25.7466 +-111.078 -6.23347 24.8753 +-111.981 -6.03444 24.081 +-113.759 -5.87754 23.4549 +-116.807 -5.77656 23.0519 +-122.311 -5.77902 23.0617 +-158.501 -7.14062 28.4953 +-160.13 -6.86322 27.3884 +-160.074 -6.51125 25.9838 +-162.672 -6.26273 24.9921 +-840.367 -30.5285 121.827 +-3244.61 -110.842 442.325 +-861.566 -27.5711 110.025 +-379.153 -11.3161 45.1578 +-377.259 -10.4481 41.6941 +-896.363 -22.9003 91.3859 +-404.927 -9.47745 37.8207 +-403.359 -8.57791 34.231 +-404.051 -7.72961 30.8458 +-400.223 -6.80272 27.1469 +-143.731 -2.13685 8.52733 +-144.502 -1.8408 7.34588 +-403.316 -4.2803 17.081 +-3274.5 -27.7949 110.918 +-402.662 -2.56299 10.2279 +-145.378 -0.616818 2.46147 +-146.494 -0.310755 1.2401 +120 6.21725e-15 5.68434e-14 +119.095 -0.243526 1.0104 +119.282 -0.487851 2.02411 +119.759 -0.734799 3.0487 +119.727 -0.979644 4.06457 +119.686 -1.22441 5.08013 +120.035 -1.474 6.11566 +119.676 -1.71509 7.11595 +119.907 -1.96463 8.15131 +119.829 -2.20973 9.16824 +119.942 -2.45876 10.2015 +119.945 -2.70615 11.2279 +119.939 -2.95375 12.2552 +120.322 -3.21214 13.3273 +120.297 -3.46091 14.3594 +120.758 -3.7251 15.4555 +120.615 -3.97187 16.4794 +120.165 -4.20794 17.4589 +119.905 -4.44982 18.4624 +120.425 -4.7219 19.5913 +120.147 -4.9639 20.5953 +119.564 -5.19228 21.5429 +120.446 -5.48575 22.7605 +119.845 -5.71313 23.7039 +120.606 -6.00667 24.9219 +120.28 -6.24799 25.9231 +121.017 -6.54639 27.1611 +120.574 -6.78264 28.1414 +121.287 -7.08561 29.3984 +120.825 -7.3216 30.3775 +120.548 -7.56838 31.4014 +120.936 -7.85841 32.6047 +121.503 -8.16353 33.8707 +121.291 -8.41829 34.9277 +121.738 -8.72079 36.1828 +121.408 -8.96937 37.2142 +120.974 -9.21005 38.2128 +121.48 -9.52396 39.5152 +122.066 -9.84827 40.8607 +121.601 -10.0897 41.8624 +121.032 -10.3219 42.8259 +121.393 -10.6346 44.1234 +117.351 -10.555 43.7929 +113.976 -10.5197 43.6466 +111.169 -10.5241 43.6649 +108.186 -10.5 43.5647 +105.03 -10.4461 43.3413 +102.436 -10.4363 43.3004 +99.3024 -10.3594 42.9815 +97.4569 -10.4066 43.1772 +96.6124 -10.556 43.797 +97.2084 -10.8641 45.0753 +96.89 -11.0727 45.9409 +96.9214 -11.3226 46.978 +98.0107 -11.7012 48.5488 +97.2164 -11.8579 49.1988 +96.5945 -12.0342 49.9304 +96.6699 -12.2984 51.0263 +96.2956 -12.5069 51.8916 +96.5224 -12.7957 53.0896 +96.9082 -13.1097 54.3924 +96.244 -13.2835 55.1138 +96.517 -13.5885 56.3789 +96.6041 -13.871 57.5511 +96.1687 -14.0804 58.4199 +96.231 -14.3646 59.5993 +96.531 -14.6885 60.9429 +96.6474 -14.9887 62.1887 +96.2513 -15.212 63.115 +96.0931 -15.4746 64.2045 +96.4142 -15.8183 65.6305 +96.3913 -16.1101 66.8412 +96.5966 -16.4443 68.2279 +95.8197 -16.6133 68.9291 +95.9161 -16.9355 70.2659 +95.7577 -17.2166 71.432 +96.5313 -17.6714 73.319 +96.4956 -17.9848 74.6193 +96.0552 -18.2256 75.6186 +95.8358 -18.5108 76.8017 +96.445 -18.9621 78.6741 +96.4195 -19.2955 80.0575 +95.9236 -19.538 81.0638 +96.4655 -19.9974 82.9696 +96.3116 -20.3193 84.3052 +96.0672 -20.6262 85.5788 +96.0999 -20.9977 87.1199 +96.4023 -21.4353 88.9356 +95.6722 -21.6479 89.8176 +96.1462 -22.1383 91.8524 +96.0958 -22.5163 93.4207 +95.7442 -22.8289 94.7177 +95.585 -23.1924 96.2257 +95.8878 -23.6759 98.2321 +95.6844 -24.0424 99.7525 +95.3258 -24.3754 101.134 +95.6857 -24.9002 103.312 +95.8149 -25.3756 105.284 +95.5222 -25.7475 106.827 +95.6637 -26.2447 108.89 +95.1968 -26.5828 110.293 +95.1573 -27.0477 112.221 +95.2791 -27.569 114.385 +95.307 -28.0744 116.482 +95.2428 -28.5637 118.511 +94.9059 -28.9805 120.241 +94.9062 -29.5103 122.439 +95.3501 -30.1928 125.271 +95.2212 -30.709 127.412 +94.7127 -31.1123 129.086 +94.5828 -31.6502 131.318 +94.25 -32.1322 133.317 +94.3918 -32.7899 136.046 +94.6572 -33.509 139.03 +94.3315 -34.0355 141.214 +94.4035 -34.7211 144.059 +94.2196 -35.3301 146.585 +94.2065 -36.0208 149.451 +93.9429 -36.6338 151.995 +93.8946 -37.3494 154.964 +94 -38.1488 158.281 +94.1514 -38.9921 161.779 +94.15 -39.7979 165.123 +93.9048 -40.5243 168.136 +94.176 -41.5009 172.188 +93.0885 -41.8997 173.843 +93.3404 -42.9236 178.091 +89.6858 -42.1483 174.874 +89.9099 -43.1936 179.211 +86.0161 -42.2549 175.317 +86.7213 -43.5757 180.797 +83.5192 -42.9412 178.164 +83.4624 -43.9239 182.241 +81.1056 -43.706 181.337 +81.233 -44.8408 186.046 +76.9194 -43.5115 180.53 +77.3563 -44.8618 186.133 +72.4573 -43.1001 178.823 +71.8886 -43.8808 182.063 +70.3216 -44.0701 182.848 +70.5588 -45.4233 188.462 +67.5625 -44.7044 185.48 +67.3601 -45.8378 190.182 +64.1907 -44.9516 186.505 +63.9047 -46.0838 191.203 +60.6824 -45.0955 187.102 +57.7726 -44.2768 183.706 +53.6505 -42.4386 176.079 +53.6115 -43.8079 181.76 +50.321 -42.5162 176.401 +50.0556 -43.7716 181.61 +46.8711 -42.4658 176.192 +46.7635 -43.9469 182.337 +43.701 -42.6511 176.961 +43.3931 -44.0401 182.724 +40.1928 -42.4801 176.251 +39.7943 -43.867 182.005 +37.0226 -42.638 176.906 +36.5781 -44.0921 182.939 +33.7318 -42.6446 176.933 +33.1842 -44.0966 182.958 +30.4183 -42.5911 176.712 +29.8008 -44.0867 182.917 +27.2708 -42.7554 177.393 +26.3872 -43.993 182.528 +24.0299 -42.7676 177.444 +23.0455 -43.9778 182.465 +20.7275 -42.6265 176.859 +19.7036 -43.9255 182.248 +17.5206 -42.6347 176.893 +16.4289 -43.9996 182.555 +14.3423 -42.6999 177.163 +13.0863 -43.8496 181.933 +11.2146 -42.9625 178.253 +9.84439 -44.0134 182.613 +7.97362 -42.7912 177.542 +6.5646 -44.0469 182.752 +4.78515 -42.8173 177.65 +3.29501 -44.2311 183.516 +1.59783 -42.9007 177.996 +6.77236e-15 -44.2379 183.544 +-1.59783 -42.9007 177.996 +-3.29501 -44.2311 183.516 +-4.81132 -43.0516 178.622 +-6.59949 -44.2812 183.724 +-8.03905 -43.1425 178.999 +-9.87579 -44.1538 183.195 +-11.2635 -43.1497 179.029 +-13.2816 -44.5041 184.649 +-14.5699 -43.3775 179.974 +-16.5945 -44.4429 184.395 +-17.8561 -43.4511 180.28 +-20.0277 -44.6479 185.245 +-21.1577 -43.5113 180.529 +-23.3989 -44.6524 185.264 +-24.6042 -43.7896 181.684 +-26.8187 -44.7124 185.513 +-27.8473 -43.6594 181.144 +-30.1293 -44.5727 184.933 +-31.293 -43.8161 181.794 +-33.7051 -44.7887 185.83 +-34.7523 -43.9349 182.287 +-37.036 -44.6442 185.23 +-38.1989 -43.9928 182.527 +-40.522 -44.6692 185.334 +-41.5348 -43.8984 182.135 +-44.1804 -44.8391 186.039 +-45.1016 -44.0181 182.632 +-47.8522 -44.9699 186.581 +-48.6739 -44.0992 182.969 +-51.3756 -44.9258 186.398 +-52.4589 -44.3225 183.895 +-54.8794 -44.844 186.059 +-56.1214 -44.3932 184.189 +-58.6205 -44.9265 186.401 +-59.9307 -44.5369 184.785 +-63.3794 -45.7051 189.632 +-64.159 -44.9293 186.413 +-69.639 -47.3884 196.616 +-69.6655 -46.0957 191.252 +-74.2868 -47.8231 198.419 +-73.5436 -46.0892 191.225 +-78.4826 -47.9058 198.762 +-77.5517 -46.1302 191.395 +-82.7131 -47.9686 199.023 +-81.2054 -45.9359 190.589 +-86.4297 -47.7094 197.948 +-85.3323 -45.9837 190.788 +-89.0753 -46.8776 194.497 +-88.4955 -45.4999 188.78 +-94.582 -47.5257 197.186 +-93.2918 -45.8288 190.145 +-99.6418 -47.8688 198.609 +-98.6097 -46.342 192.274 +-103.101 -47.4123 196.715 +-102.416 -46.0981 191.262 +-107.509 -47.3765 196.566 +-106.693 -46.043 191.034 +-112.136 -47.4011 196.668 +-112.174 -46.4561 192.748 +-116.55 -47.3006 196.251 +-115.77 -46.051 191.067 +-106.716 -41.6148 172.661 +-120.488 -46.07 191.145 +-96.7103 -36.264 150.461 +-97.0363 -35.6893 148.076 +-97.2181 -35.077 145.536 +-96.8649 -34.2907 142.273 +-97.1877 -33.7611 140.076 +-97.3652 -33.1941 137.723 +-97.1065 -32.4947 134.821 +-97.2677 -31.9516 132.568 +-97.5136 -31.4483 130.48 +-97.0156 -30.7203 127.459 +-97.1931 -30.2214 125.389 +-97.5845 -29.7985 123.635 +-97.0898 -29.1176 120.81 +-96.9878 -28.5695 118.536 +-96.9153 -28.0423 116.348 +-96.7475 -27.4997 114.097 +-97.318 -27.1751 112.75 +-97.4822 -26.7435 110.96 +-97.0311 -26.1542 108.515 +-97.2726 -25.7618 106.886 +-97.4254 -25.3529 105.19 +-96.9472 -24.7898 102.854 +-97.3212 -24.4536 101.459 +-97.5398 -24.0839 99.9246 +-97.9468 -23.7654 98.6034 +-97.3563 -23.2133 96.3125 +-97.7222 -22.8974 95.0018 +-97.2874 -22.401 92.9426 +-97.3986 -22.0385 91.4383 +-97.4903 -21.6772 89.9394 +-96.9775 -21.1894 87.9155 +-97.763 -20.9903 87.0895 +-97.352 -20.5388 85.2159 +-97.6638 -20.2458 84.0003 +-97.3575 -19.8301 82.2756 +-97.6361 -19.539 81.0677 +-97.6707 -19.203 79.6739 +-97.7648 -18.8834 78.3476 +-97.9981 -18.5943 77.1481 +-97.7478 -18.2182 75.5876 +-98.5013 -18.032 74.8153 +-98.4551 -17.7015 73.4442 +-98.4718 -17.3868 72.1381 +-98.3921 -17.0593 70.7795 +-97.972 -16.6784 69.1993 +-98.4266 -16.4503 68.2526 +-98.3802 -16.1409 66.9688 +-98.3183 -15.8329 65.6912 +-98.3239 -15.5396 64.4741 +-98.2317 -15.2345 63.2082 +-98.2083 -14.9437 62.0018 +-98.5081 -14.7045 61.0096 +-100.324 -14.6888 60.9442 +-102.061 -14.6545 60.802 +-103.974 -14.6384 60.7349 +-106.584 -14.7106 61.0347 +-107.734 -14.5741 60.4685 +-110.535 -14.6533 60.7969 +-112.301 -14.5858 60.5167 +-114.686 -14.5903 60.5357 +-117.785 -14.6743 60.8841 +-120.013 -14.6385 60.7354 +-123.315 -14.7223 61.0832 +-162.968 -19.0384 78.9907 +-164.389 -18.7866 77.9461 +-163.639 -18.2884 75.8789 +-164.404 -17.963 74.5288 +-163.702 -17.4804 72.5265 +-164.255 -17.1354 71.0954 +-163.787 -16.6868 69.2341 +-165.047 -16.4154 68.1078 +-164.173 -15.9338 66.1097 +-165.502 -15.6677 65.0058 +-164.963 -15.2257 63.1718 +-163.47 -14.703 61.0033 +-113.899 -9.97817 41.3997 +-111.166 -9.48045 39.3346 +-110.101 -9.13545 37.9032 +-108.735 -8.77267 36.398 +-108.583 -8.51284 35.32 +-108.706 -8.276 34.3373 +-108.152 -7.99 33.1507 +-108.254 -7.75487 32.1752 +-108.443 -7.52655 31.2279 +-110.545 -7.42725 30.8159 +-109.854 -7.13833 29.6171 +-108.86 -6.83459 28.3569 +-108.723 -6.58828 27.335 +-110.226 -6.4394 26.7172 +-110.558 -6.21924 25.8038 +-111.176 -6.01403 24.9524 +-112.079 -5.82199 24.1556 +-113.856 -5.67053 23.5272 +-115.435 -5.50291 22.8317 +-121.624 -5.53939 22.9831 +-157.616 -6.84478 28.3992 +-160.13 -6.61581 27.4492 +-158.397 -6.21078 25.7687 +-163.462 -6.06628 25.1692 +-164.473 -5.75952 23.8964 +-3244.61 -106.846 443.307 +-861.962 -26.5894 110.32 +-379.55 -10.9195 45.3055 +-379.346 -10.1271 42.0178 +-896.263 -22.0723 91.5787 +-404.728 -9.1313 37.886 +-404.256 -8.28706 34.3832 +-401.259 -7.39949 30.7007 +-400.322 -6.55913 27.214 +-144.829 -2.07556 8.61154 +-143.703 -1.76463 7.32149 +-400.918 -4.10149 17.0172 +-404.653 -3.311 13.7374 +-402.662 -2.4706 10.2506 +-145.178 -0.593765 2.46355 +-145.894 -0.298324 1.23776 +119.3 4.44089e-15 0 +119.295 -0.234794 1.01426 +120.182 -0.473111 2.04373 +119.859 -0.707851 3.05776 +119.727 -0.942929 4.07324 +119.786 -1.17951 5.09522 +119.836 -1.41639 6.11851 +119.676 -1.65081 7.13114 +120.506 -1.90044 8.20948 +119.929 -2.12869 9.19546 +119.942 -2.36661 10.2232 +119.846 -2.60256 11.2425 +120.636 -2.85955 12.3526 +120.421 -3.09431 13.3667 +120.297 -3.3312 14.3901 +120.956 -3.59137 15.5139 +120.615 -3.82301 16.5146 +120.462 -4.06025 17.5394 +120.696 -4.31128 18.6238 +120.524 -4.54865 19.6492 +120.147 -4.77786 20.6393 +120.449 -5.03469 21.7488 +120.446 -5.28016 22.8091 +119.943 -5.5035 23.7739 +120.606 -5.78155 24.975 +120.573 -6.02846 26.0416 +120.335 -6.26554 27.0657 +120.768 -6.53897 28.2469 +121.19 -6.81459 29.4375 +121.018 -7.0585 30.4912 +121.32 -7.33144 31.6702 +121.032 -7.56991 32.7003 +120.734 -7.80784 33.7282 +121.291 -8.10279 35.0023 +120.973 -8.3412 36.0321 +120.836 -8.59253 37.1178 +121.069 -8.87185 38.3244 +121.67 -9.18134 39.6614 +121.31 -9.42045 40.6942 +121.695 -9.71907 41.9842 +121.878 -10.0045 43.2171 +121.205 -10.2203 44.1493 +117.071 -10.1351 43.7815 +113.976 -10.1255 43.7397 +111.077 -10.1213 43.7217 +107.632 -10.0547 43.434 +105.122 -10.0635 43.4719 +102.527 -10.0541 43.4316 +99.9419 -10.0354 43.3506 +97.5478 -10.0259 43.3098 +96.2499 -10.1222 43.7258 +97.389 -10.4763 45.2553 +96.89 -10.6577 46.0389 +96.9214 -10.8983 47.0782 +97.5652 -11.2115 48.4312 +96.7729 -11.3614 49.0789 +96.5945 -11.5832 50.037 +96.1426 -11.7729 50.8563 +96.4706 -12.0601 52.0968 +96.5224 -12.3161 53.2029 +96.1288 -12.5169 54.0701 +96.5886 -12.8315 55.4293 +96.4313 -13.0676 56.449 +96.8599 -13.3865 57.8266 +96.2535 -13.5646 58.5962 +96.3996 -13.8505 59.8311 +96.6148 -14.1502 61.1259 +96.7308 -14.4394 62.3752 +96.1684 -14.6293 63.1952 +96.2579 -14.9202 64.4518 +96.3323 -15.2125 65.7148 +96.4727 -15.5194 67.0404 +96.5157 -15.8147 68.3162 +96.5432 -16.1114 69.5977 +95.9161 -16.3008 70.4159 +96.7098 -16.7361 72.2961 +95.9797 -16.9119 73.0556 +96.026 -17.2265 74.4146 +96.7547 -17.6703 76.3318 +95.9901 -17.8457 77.0895 +95.8322 -18.1354 78.341 +96.5716 -18.6016 80.3549 +95.8481 -18.791 81.1729 +96.5404 -19.2628 83.2112 +96.3116 -19.5577 84.4851 +96.2147 -19.8837 85.8931 +96.0999 -20.2107 87.3058 +95.822 -20.5077 88.5889 +95.8161 -20.8679 90.1446 +95.5042 -21.1663 91.4338 +95.9544 -21.6405 93.4823 +95.8844 -22.0055 95.0589 +96.3491 -22.5016 97.2019 +95.9566 -22.8048 98.5119 +96.23 -23.2733 100.535 +96.0689 -23.6447 102.14 +95.6857 -23.967 103.532 +95.8811 -24.4415 105.582 +95.5222 -24.7825 107.055 +95.7286 -25.2782 109.196 +95.7111 -25.7248 111.125 +95.2209 -26.0513 112.536 +95.405 -26.5707 114.78 +95.3692 -27.0401 116.807 +94.8734 -27.3865 118.303 +95.0277 -27.93 120.651 +95.0266 -28.4404 122.856 +95.1716 -29.0069 125.303 +95.1624 -29.5398 127.605 +95.1772 -30.0933 129.996 +94.9843 -30.5935 132.157 +94.4199 -30.9837 133.843 +94.7832 -31.6918 136.902 +94.602 -32.2344 139.246 +94.4404 -32.7976 141.678 +94.2424 -33.3628 144.12 +94.4846 -34.1016 147.311 +93.8407 -34.5362 149.189 +94.4065 -35.4349 153.071 +93.8946 -35.9496 155.294 +93.35 -36.4651 157.521 +93.8067 -37.3934 161.531 +93.7137 -38.1289 164.708 +93.9048 -39.0055 168.495 +94.129 -39.9257 172.47 +93.735 -40.6095 175.424 +93.8852 -41.556 179.513 +93.3 -42.2035 182.31 +93.1977 -43.095 186.161 +90.5365 -42.8086 184.924 +89.8909 -43.4757 187.805 +86.7124 -42.9121 185.371 +86.0248 -43.5756 188.237 +83.3784 -43.2468 186.817 +82.5224 -43.8454 189.402 +80.1722 -43.6519 188.566 +78.8547 -44.017 190.144 +76.2323 -43.646 188.541 +75.4723 -44.3418 191.547 +71.6524 -43.2211 186.706 +71.1402 -44.081 190.42 +69.4986 -44.2619 191.202 +68.2391 -44.6956 193.075 +66.4753 -44.8068 193.555 +64.5227 -44.7858 193.465 +62.9377 -45.0186 194.47 +61.5442 -45.3995 196.116 +56.9451 -43.3564 187.29 +55.4307 -43.5971 188.33 +52.7529 -42.9004 185.32 +51.8156 -43.6124 188.396 +49.3249 -43.0141 185.811 +48.2392 -43.6347 188.492 +45.872 -43.0921 186.148 +44.6978 -43.664 188.619 +42.5953 -43.3321 187.185 +41.0834 -43.5907 188.302 +38.8767 -43.0953 186.162 +37.5894 -43.6131 188.399 +35.5177 -43.2195 186.699 +34.2782 -43.8431 189.393 +32.0357 -43.1749 186.506 +30.8332 -43.9045 189.658 +28.4681 -42.9597 185.576 +27.431 -44.0192 190.153 +25.2307 -43.2218 186.709 +23.9717 -44.031 190.204 +21.8482 -43.2473 186.819 +20.5189 -44.0289 190.195 +18.4599 -43.2369 186.774 +17.1174 -44.1255 190.612 +15.0563 -43.1455 186.379 +13.742 -44.321 191.457 +11.7335 -43.266 186.899 +10.2631 -44.1656 190.786 +8.3662 -43.2152 186.68 +6.84379 -44.1994 190.932 +5.04168 -43.422 187.574 +3.42765 -44.2872 191.311 +1.672 -43.2098 186.657 +7.77156e-15 -44.4518 192.022 +-1.67549 -43.3 187.047 +-3.43812 -44.4225 191.895 +-5.03383 -43.3544 187.281 +-6.8752 -44.4022 191.808 +-8.40109 -43.3957 187.46 +-10.3625 -44.5937 192.635 +-11.8312 -43.6261 188.455 +-13.8397 -44.6361 192.818 +-15.2917 -43.8201 189.293 +-17.3701 -44.777 193.427 +-18.7474 -43.9103 189.683 +-20.8743 -44.7915 193.489 +-22.2218 -43.9868 190.013 +-24.4714 -44.9487 194.168 +-25.7137 -44.0492 190.283 +-27.9877 -44.9126 194.012 +-29.2958 -44.2089 190.973 +-31.6623 -45.0851 194.758 +-32.7619 -44.1537 190.734 +-35.2679 -45.109 194.861 +-36.2831 -44.151 190.722 +-38.8487 -45.074 194.71 +-39.9932 -44.333 191.509 +-42.5179 -45.1128 194.877 +-43.5044 -44.2567 191.179 +-46.2274 -45.1584 195.074 +-47.2493 -44.386 191.738 +-50.0053 -45.2321 195.393 +-51.2778 -44.7173 193.169 +-53.912 -45.3769 196.018 +-54.9977 -44.7258 193.206 +-57.6633 -45.353 195.915 +-58.706 -44.6972 193.082 +-61.8074 -45.5937 196.955 +-63.0279 -45.0831 194.749 +-67.5202 -46.8663 202.452 +-68.8868 -46.4322 200.577 +-72.7645 -47.6595 205.879 +-73.7379 -46.962 202.865 +-77.3992 -47.9592 207.173 +-77.9211 -47.0025 203.041 +-81.4212 -47.8368 206.644 +-82.5361 -47.2551 204.132 +-85.5976 -47.7811 206.404 +-86.2951 -46.9856 202.968 +-88.5787 -47.063 203.302 +-89.1603 -46.2459 199.772 +-94.0782 -47.655 205.859 +-94.3012 -46.6676 201.594 +-98.5546 -47.6658 205.906 +-99.5772 -47.0833 203.389 +-103.412 -47.8181 206.563 +-103.339 -46.7448 201.927 +-106.779 -47.263 204.166 +-106.341 -46.0709 199.016 +-108.542 -46.0389 198.878 +-111.703 -46.3984 200.431 +-116.839 -47.5377 205.352 +-117 -46.6388 201.469 +-107.5 -41.9924 181.398 +-102.726 -39.3309 169.901 +-96.9302 -36.3821 157.163 +-96.6622 -35.5745 153.674 +-96.9752 -35.0006 151.195 +-97.305 -34.4469 148.803 +-96.7279 -33.5921 145.111 +-96.9753 -33.0432 142.739 +-97.2996 -32.5333 140.537 +-97.4219 -31.9688 138.098 +-97.2212 -31.3138 135.269 +-97.3258 -30.7726 132.931 +-97.5724 -30.2879 130.837 +-97.0751 -29.587 127.809 +-97.6746 -29.2329 126.28 +-97.7062 -28.7173 124.052 +-97.0282 -28.0085 120.99 +-96.9255 -27.4812 118.713 +-97.0412 -27.0265 116.749 +-97.5108 -26.6779 115.242 +-97.318 -26.1567 112.991 +-97.2224 -25.6727 110.9 +-97.0311 -25.174 108.746 +-97.4051 -24.8299 107.26 +-97.3585 -24.386 105.342 +-97.0823 -23.8941 103.217 +-97.3894 -23.5536 101.746 +-97.1268 -23.0829 99.7131 +-97.3911 -22.7448 98.2527 +-97.6367 -22.4076 96.796 +-97.6514 -22.0232 95.1355 +-97.216 -21.5457 93.0726 +-97.5425 -21.2439 91.7689 +-97.4903 -20.8648 90.1314 +-97.6357 -20.5337 88.7011 +-97.0994 -20.0665 86.6829 +-97.7235 -19.8445 85.7237 +-97.2893 -19.4123 83.8567 +-97.3575 -19.0869 82.4512 +-97.5601 -18.792 81.1775 +-97.8239 -18.5123 79.9692 +-97.9963 -18.2187 78.7007 +-98.3867 -17.9684 77.6194 +-97.826 -17.5494 75.8095 +-98.1073 -17.2868 74.6751 +-97.9791 -16.9557 73.245 +-97.9926 -16.6537 71.9402 +-97.9902 -16.3529 70.6408 +-98.7001 -16.1727 69.8623 +-98.5894 -15.8599 68.5113 +-98.3802 -15.5359 67.1117 +-98.4007 -15.2523 65.8865 +-98.3239 -14.9572 64.6117 +-98.3151 -14.676 63.3969 +-98.2922 -14.3959 62.1872 +-98.6768 -14.1777 61.2445 +-100.239 -14.1264 61.0228 +-102.146 -14.1171 60.9826 +-104.06 -14.1014 60.9147 +-106.756 -14.1822 61.2639 +-107.907 -14.0505 60.6949 +-110.709 -14.1263 61.0226 +-112.301 -14.0391 60.6458 +-112.928 -13.8283 59.7352 +-116.814 -14.0079 60.5109 +-120.19 -14.1107 60.955 +-122.246 -14.0477 60.6827 +-163.326 -18.3651 79.3331 +-163.581 -17.9935 77.728 +-163.368 -17.5738 75.9149 +-164.676 -17.3183 74.8113 +-164.248 -16.8813 72.9236 +-164.073 -16.4749 71.1679 +-164.979 -16.1783 69.8868 +-165.047 -15.8001 68.2532 +-164.728 -15.3884 66.4746 +-165.317 -15.0636 65.0716 +-164.684 -14.6302 63.1994 +-164.777 -14.2652 61.6223 +-114.836 -9.68319 41.8292 +-111.072 -9.11742 39.3853 +-109.346 -8.73285 37.724 +-108.829 -8.45123 36.5075 +-108.583 -8.19379 35.3954 +-108.42 -7.94492 34.3203 +-107.579 -7.64986 33.0457 +-108.254 -7.46423 32.2438 +-108.73 -7.26369 31.3775 +-109.968 -7.11159 30.7205 +-109.854 -6.87079 29.6803 +-108.956 -6.58428 28.4426 +-109.594 -6.39217 27.6128 +-110.42 -6.20898 26.8214 +-110.947 -6.00722 25.9499 +-111.176 -5.78864 25.0056 +-112.372 -5.61843 24.2704 +-113.759 -5.45332 23.5571 +-116.513 -5.34613 23.0941 +-121.918 -5.3447 23.0879 +-158.009 -6.60467 28.5307 +-159.933 -6.36004 27.474 +-161.06 -6.07853 26.2579 +-162.475 -5.80366 25.0705 +-165.561 -5.58034 24.1058 +-3244.61 -102.842 444.253 +-150.898 -4.48039 19.3543 +-379.748 -10.5158 45.4259 +-378.75 -9.73229 42.0413 +-895.468 -21.2262 91.6926 +-403.932 -8.77178 37.8921 +-403.06 -7.95288 34.3547 +-402.854 -7.15047 30.8885 +-403.515 -6.36365 27.4895 +-142.334 -1.96335 8.48123 +-142.405 -1.68315 7.27083 +-401.617 -3.95465 17.0832 +-401.155 -3.15937 13.6478 +-402.462 -2.37681 10.2673 +-145.778 -0.573873 2.479 +-146.094 -0.287538 1.2421 +119.3 4.44089e-15 0 +119.095 -0.225253 1.01463 +119.982 -0.453894 2.04451 +119.759 -0.679663 3.06146 +119.727 -0.906136 4.08159 +119.786 -1.13349 5.10565 +119.836 -1.36113 6.13104 +119.676 -1.5864 7.14574 +119.608 -1.81268 8.16501 +119.231 -2.03372 9.16068 +120.141 -2.27804 10.2612 +119.846 -2.50101 11.2655 +119.74 -2.72758 12.2861 +120.52 -2.97602 13.4051 +120.297 -3.20122 14.4195 +121.055 -3.45406 15.5584 +120.615 -3.67384 16.5484 +120.462 -3.90182 17.5753 +119.905 -4.11593 18.5397 +120.425 -4.36759 19.6733 +120.048 -4.58766 20.6646 +120.645 -4.84613 21.8288 +120.446 -5.07413 22.8558 +120.825 -5.32766 23.9978 +120.606 -5.55596 25.0262 +120.377 -5.78385 26.0527 +121.017 -6.05518 27.2748 +120.768 -6.28383 28.3048 +120.22 -6.49627 29.2617 +120.825 -6.77223 30.5047 +120.548 -7.00049 31.5329 +121.128 -7.28035 32.7935 +120.734 -7.50319 33.7972 +120.62 -7.74354 34.8799 +120.973 -8.01573 36.1059 +120.931 -8.26378 37.2232 +121.26 -8.53907 38.4632 +121.575 -8.81622 39.7116 +121.31 -9.05287 40.7776 +121.695 -9.33984 42.0702 +121.22 -9.56223 43.0719 +120.831 -9.79114 44.103 +116.884 -9.72414 43.8013 +113.976 -9.73036 43.8293 +110.335 -9.6614 43.5187 +108.371 -9.72872 43.8219 +105.122 -9.67079 43.5609 +102.436 -9.65319 43.4817 +99.3937 -9.5909 43.2011 +96.8199 -9.56283 43.0747 +96.703 -9.77306 44.0216 +97.389 -10.0675 45.348 +97.609 -10.3179 46.4756 +97.7268 -10.5601 47.5667 +97.5652 -10.774 48.5304 +96.8616 -10.9281 49.2244 +96.4179 -11.1109 50.0478 +96.7578 -11.3859 51.2865 +97.0828 -11.663 52.5348 +96.6095 -11.8462 53.3599 +96.9082 -12.126 54.6202 +96.3301 -12.2978 55.3941 +96.517 -12.5688 56.6149 +96.6894 -12.8415 57.843 +96.1687 -13.0239 58.6645 +96.3996 -13.3101 59.9536 +96.531 -13.5863 61.198 +95.9803 -13.7684 62.018 +96.1684 -14.0584 63.3246 +96.2579 -14.338 64.5838 +96.3323 -14.619 65.8494 +96.4727 -14.9139 67.1777 +96.5157 -15.1977 68.4561 +96.5432 -15.4827 69.7402 +96.7946 -15.8082 71.2063 +95.9958 -15.9643 71.9093 +96.7677 -16.3854 73.8062 +96.1043 -16.5678 74.6278 +96.677 -16.9672 76.4267 +95.9901 -17.1494 77.2474 +95.9854 -17.4557 78.627 +95.9632 -17.7632 80.0122 +95.8481 -18.0578 81.3391 +96.4655 -18.4969 83.317 +96.3116 -18.7946 84.6581 +96.2884 -19.1225 86.135 +96.0999 -19.4221 87.4846 +95.967 -19.7374 88.9047 +96.3196 -20.159 90.804 +95.6469 -20.3708 91.7579 +96.0958 -20.8268 93.8118 +95.7442 -21.1159 95.1143 +96.2102 -21.5924 97.2606 +95.9566 -21.915 98.7136 +96.23 -22.3652 100.741 +96.0014 -22.7061 102.277 +95.6857 -23.0318 103.744 +95.8811 -23.4878 105.798 +95.5878 -23.8318 107.347 +95.6637 -24.2754 109.346 +95.6468 -24.7043 111.278 +95.857 -25.2021 113.52 +95.405 -25.534 115.015 +95.4315 -26.0019 117.122 +95.366 -26.4546 119.162 +94.9059 -26.8059 120.744 +95.3877 -27.4345 123.575 +94.9337 -27.8055 125.247 +95.2212 -28.4048 127.946 +95.4676 -29.0073 130.66 +95.2137 -29.4706 132.747 +94.7598 -29.8818 134.599 +94.5595 -30.3833 136.858 +94.7124 -31.0129 139.694 +94.4404 -31.5179 141.969 +94.7797 -32.2437 145.238 +94.3786 -32.7341 147.447 +94.102 -33.2809 149.91 +93.6854 -33.7922 152.213 +93.9454 -34.5657 155.697 +93.8 -35.2111 158.604 +93.8559 -35.9532 161.947 +94.15 -36.8117 165.814 +93.9048 -37.4835 168.84 +93.7065 -38.1955 172.047 +94.1044 -39.1788 176.476 +93.7944 -39.896 179.707 +93.9693 -40.8476 183.993 +94.206 -41.8615 188.56 +92.1724 -41.8816 188.651 +92.5534 -43.0166 193.763 +88.9517 -42.3027 190.548 +88.5872 -43.1226 194.241 +85.1728 -42.4538 191.228 +85.0231 -43.4113 195.541 +81.7029 -42.7494 192.56 +81.402 -43.666 196.688 +77.8082 -42.8101 192.833 +77.8017 -43.9267 197.863 +74.6992 -43.3008 195.043 +74.7998 -44.5403 200.626 +71.2678 -43.6176 196.471 +71.1041 -44.7548 201.593 +69.2993 -44.8877 202.191 +68.7254 -45.8415 206.488 +65.614 -45.1016 203.155 +64.7311 -45.8872 206.694 +62.0005 -45.3636 204.335 +57.8838 -43.7501 197.067 +54.677 -42.7301 192.473 +53.7826 -43.5017 195.948 +51.0274 -42.7624 192.618 +50.0536 -43.5093 195.982 +47.3427 -42.7384 192.51 +46.4524 -43.6074 196.425 +43.5909 -42.6146 191.953 +42.9753 -43.819 197.377 +40.3122 -42.943 193.432 +39.1158 -43.6133 196.451 +36.7022 -42.9185 193.321 +35.5805 -43.7332 196.991 +33.0425 -42.7941 192.761 +31.9596 -43.7327 196.989 +29.7688 -43.1699 194.454 +28.4331 -43.8469 197.503 +26.0661 -42.9107 193.286 +24.8613 -43.8831 197.666 +22.6293 -43.0457 193.894 +21.2924 -43.9059 197.769 +19.1404 -43.0817 194.056 +17.71 -43.8719 197.616 +15.7389 -43.342 195.229 +14.1675 -43.9104 197.789 +12.1853 -43.1785 194.493 +10.6608 -44.0873 198.586 +8.71079 -43.2397 194.768 +7.08111 -43.9475 197.956 +5.22492 -43.2444 194.789 +3.54458 -44.011 198.242 +1.74182 -43.2574 194.848 +7.21645e-15 -44.0827 198.566 +-1.74443 -43.3224 195.141 +-3.54458 -44.011 198.242 +-5.23277 -43.3092 195.081 +-7.1195 -44.1859 199.03 +-8.74569 -43.4128 195.548 +-10.7236 -44.3469 199.756 +-12.2769 -43.503 195.954 +-14.3977 -44.6239 201.003 +-15.8409 -43.6228 196.494 +-18.0325 -44.6707 201.214 +-19.4375 -43.7503 197.068 +-21.6269 -44.5957 200.876 +-23.0029 -43.7563 197.095 +-25.4341 -44.8942 202.221 +-26.6273 -43.8346 197.448 +-29.0176 -44.7483 201.564 +-30.3009 -43.9414 197.929 +-32.7104 -44.7602 201.617 +-34.0823 -44.1408 198.827 +-36.2056 -44.5015 200.452 +-37.577 -43.9412 197.928 +-40.089 -44.6982 201.338 +-41.329 -44.026 198.31 +-43.9317 -44.7943 201.771 +-45.2142 -44.2015 199.101 +-48.072 -45.128 203.274 +-49.0469 -44.2767 199.439 +-51.7713 -45.0023 202.708 +-52.8302 -44.2732 199.424 +-55.7755 -45.1137 203.209 +-56.8683 -44.4427 200.187 +-59.9787 -45.3335 204.199 +-61.0065 -44.6363 201.059 +-64.5264 -45.742 206.04 +-66.1553 -45.4737 204.831 +-70.4559 -46.9958 211.687 +-71.7743 -46.4908 209.412 +-74.9132 -47.1525 212.393 +-76.2081 -46.6412 210.09 +-79.1093 -47.1063 212.185 +-80.4777 -46.6503 210.131 +-83.7864 -47.3057 213.083 +-84.6618 -46.5808 209.818 +-87.4332 -46.9013 211.261 +-87.7493 -45.9132 206.811 +-91.939 -46.9425 211.447 +-93.1079 -46.4091 209.044 +-96.9253 -47.1815 212.524 +-97.4114 -46.3259 208.67 +-101.471 -47.1612 212.432 +-102.548 -46.5959 209.886 +-107.269 -47.6664 214.708 +-106.641 -46.356 208.805 +-110.91 -47.1761 212.499 +-106.987 -44.5422 200.635 +-108.87 -44.3766 199.889 +-116.093 -46.3402 208.734 +-121.299 -47.4269 213.629 +-121.382 -46.4978 209.444 +-97.2 -36.4875 164.353 +-96.8891 -35.6487 160.575 +-97.0847 -35.0183 157.736 +-97.028 -34.3158 154.572 +-97.0282 -33.6533 151.587 +-96.8214 -32.9383 148.367 +-97.2725 -32.4632 146.227 +-96.9753 -31.7539 143.032 +-97.2996 -31.2638 140.824 +-96.9687 -30.5783 137.737 +-97.2212 -30.092 135.546 +-97.3258 -29.5718 133.203 +-97.5724 -29.1061 131.105 +-97.6104 -28.5894 128.778 +-97.6746 -28.0922 126.538 +-97.7062 -27.5968 124.307 +-97.0282 -26.9156 121.238 +-97.05 -26.4429 119.109 +-97.0412 -25.972 116.988 +-96.9383 -25.4865 114.801 +-97.318 -25.136 113.222 +-97.2224 -24.6709 111.127 +-97.0311 -24.1918 108.969 +-97.3389 -23.845 107.407 +-97.3585 -23.4345 105.558 +-97.6903 -23.1055 104.076 +-97.3212 -22.6187 101.883 +-97.058 -22.1666 99.847 +-97.2522 -21.8264 98.3143 +-96.9358 -21.3787 96.2979 +-97.7929 -21.1946 95.4685 +-97.216 -20.705 93.2632 +-97.3986 -20.3848 91.8211 +-97.6354 -20.0805 90.4503 +-97.4894 -19.7029 88.7496 +-97.6155 -19.386 87.3221 +-97.7235 -19.0702 85.8993 +-97.8885 -18.7697 84.546 +-97.3575 -18.3421 82.6201 +-98.0924 -18.1573 81.7875 +-97.9005 -17.8039 80.1958 +-98.305 -17.563 79.1103 +-97.6872 -17.1445 77.2254 +-97.826 -16.8646 75.9648 +-98.0285 -16.5989 74.7679 +-98.0585 -16.3073 73.4545 +-97.9127 -15.9908 72.0288 +-98.6332 -15.8179 71.2501 +-98.6192 -15.5289 69.948 +-98.5894 -15.2411 68.6516 +-98.544 -14.9546 67.3612 +-98.4007 -14.6572 66.0215 +-98.3239 -14.3736 64.744 +-98.2317 -14.0913 63.4728 +-98.2922 -13.8342 62.3145 +-98.0864 -13.543 61.0027 +-100.324 -13.5866 61.1994 +-102.232 -13.5776 61.1586 +-104.06 -13.5511 61.0395 +-106.067 -13.5408 60.993 +-107.214 -13.4155 60.4287 +-110.796 -13.5858 61.1956 +-111.864 -13.4388 60.5334 +-112.84 -13.2784 59.811 +-117.079 -13.4918 60.7723 +-119.303 -13.46 60.6291 +-121.266 -13.3913 60.3195 +-162.252 -17.5325 78.973 +-165.198 -17.4624 78.6575 +-164.18 -16.9721 76.4487 +-164.676 -16.6426 74.9645 +-163.793 -16.1777 72.8706 +-165.169 -15.9378 71.7901 +-164.704 -15.5211 69.9131 +-164.954 -15.1752 68.3548 +-163.25 -14.6553 66.013 +-165.224 -14.4677 65.1683 +-164.312 -14.0276 63.1857 +-164.31 -13.6697 61.5737 +-115.492 -9.3585 42.1543 +-111.072 -8.76167 39.4659 +-110.195 -8.45721 38.0945 +-108.64 -8.10737 36.5187 +-108.583 -7.87408 35.4679 +-108.325 -7.62822 34.3604 +-108.342 -7.40352 33.3483 +-108.732 -7.20467 32.4526 +-108.155 -6.94333 31.2754 +-110.353 -6.85801 30.8911 +-109.661 -6.59111 29.6889 +-109.439 -6.35541 28.6272 +-109.013 -6.11021 27.5227 +-110.42 -5.96671 26.8763 +-110.656 -5.75765 25.9347 +-111.176 -5.56277 25.0568 +-112.274 -5.39452 24.299 +-113.856 -5.24504 23.6257 +-115.729 -5.10298 22.9858 +-121.329 -5.11134 23.0234 +-158.304 -6.35882 28.6425 +-159.539 -6.09681 27.4624 +-159.877 -5.79842 26.1183 +-161.586 -5.54669 24.9844 +-161.21 -5.22164 23.5203 +-851.532 -25.9371 116.831 +-148.023 -4.22353 19.0244 +-380.046 -10.1134 45.5547 +-379.743 -9.37707 42.2379 +-896.164 -20.4139 91.9519 +-403.633 -8.42329 37.9417 +-401.367 -7.61045 34.2804 +-402.655 -6.86806 30.9364 +-403.215 -6.11081 27.5254 +-142.234 -1.88542 8.49265 +-143.303 -1.62768 7.33171 +-402.217 -3.80603 17.1438 +-401.855 -3.04138 13.6996 +-3275.38 -18.5886 83.7302 +-145.578 -0.550724 2.48067 +-145.494 -0.275183 1.23953 +119.4 4.88498e-15 0 +119.095 -0.216089 1.01662 +119.982 -0.435427 2.04852 +119.759 -0.652011 3.06747 +119.827 -0.869996 4.09301 +119.786 -1.08737 5.11567 +119.836 -1.30575 6.14307 +119.676 -1.52186 7.15977 +119.608 -1.73893 8.18103 +120.228 -1.9673 9.2554 +120.141 -2.18536 10.2813 +119.846 -2.39926 11.2876 +119.74 -2.61661 12.3102 +120.421 -2.85259 13.4204 +120.297 -3.07098 14.4478 +120.064 -3.2864 15.4613 +120.714 -3.52726 16.5945 +120.462 -3.74308 17.6098 +120.696 -3.9745 18.6986 +120.425 -4.1899 19.7119 +120.934 -4.43351 20.858 +120.645 -4.64897 21.8717 +120.446 -4.86769 22.9007 +120.041 -5.07774 23.8889 +119.823 -5.29534 24.9126 +120.573 -5.55754 26.1462 +120.14 -5.76674 27.1304 +120.671 -6.02333 28.3375 +121.093 -6.27725 29.5321 +120.825 -6.4967 30.5646 +120.644 -6.72106 31.6201 +121.032 -6.97858 32.8316 +120.734 -7.19792 33.8636 +121.387 -7.47574 35.1706 +121.068 -7.69571 36.2054 +120.931 -7.92757 37.2963 +121.165 -8.18523 38.5085 +121.765 -8.47072 39.8516 +121.31 -8.68455 40.8576 +121.695 -8.95985 42.1528 +121.972 -9.23007 43.4241 +121.58 -9.45102 44.4636 +116.791 -9.32106 43.8521 +113.139 -9.2659 43.5926 +110.242 -9.26053 43.5674 +107.632 -9.26924 43.6084 +104.293 -9.20421 43.3024 +101.794 -9.2024 43.2939 +99.3024 -9.19225 43.2462 +96.8199 -9.17377 43.1592 +97.0656 -9.41058 44.2733 +97.2987 -9.64899 45.3949 +96.89 -9.82516 46.2237 +97.9953 -10.1583 47.791 +97.5652 -10.3357 48.6257 +97.1277 -10.5123 49.4566 +96.6828 -10.6881 50.2837 +96.9335 -10.9425 51.4805 +96.4706 -11.118 52.306 +96.6095 -11.3642 53.4646 +96.1288 -11.5391 54.2872 +96.4163 -11.808 55.5524 +96.517 -12.0575 56.726 +95.922 -12.2213 57.4966 +96.0838 -12.483 58.7279 +96.3996 -12.7685 60.0713 +96.531 -13.0336 61.3181 +95.9803 -13.2082 62.1397 +96.1684 -13.4865 63.4489 +96.2579 -13.7546 64.7105 +96.4142 -14.0361 66.0346 +96.4727 -14.3071 67.3096 +96.5157 -14.5793 68.5904 +96.6236 -14.8652 69.9353 +95.9161 -15.0274 70.6986 +96.7098 -15.4287 72.5864 +96.0585 -15.6036 73.4091 +96.1043 -15.8938 74.7743 +95.9775 -16.1591 76.0227 +95.9901 -16.4517 77.399 +95.9854 -16.7455 78.7813 +95.9632 -17.0405 80.1693 +96.3764 -17.4186 81.9479 +96.4655 -17.7443 83.4805 +96.3116 -18.03 84.8243 +95.5511 -18.204 85.6432 +96.0999 -18.6319 87.6563 +95.967 -18.9344 89.0792 +95.888 -19.2522 90.5745 +95.6469 -19.542 91.938 +96.0958 -19.9794 93.9959 +95.8844 -20.2865 95.4405 +96.2102 -20.714 97.4515 +95.9566 -21.0234 98.9074 +95.6844 -21.3336 100.367 +96.0014 -21.7823 102.478 +95.6857 -22.0948 103.948 +95.8149 -22.5166 105.932 +95.5222 -22.8466 107.485 +95.6637 -23.2878 109.56 +95.1326 -23.572 110.897 +95.2845 -24.0323 113.063 +95.405 -24.4951 115.24 +95.4315 -24.944 117.352 +94.6272 -25.1816 118.47 +94.9059 -25.7153 120.981 +94.9062 -26.1854 123.193 +94.8148 -26.6408 125.335 +95.28 -27.266 128.276 +95.3514 -27.7932 130.757 +95.1563 -28.2546 132.927 +94.9863 -28.7346 135.186 +94.7273 -29.1989 137.37 +95.0987 -29.8725 140.539 +94.8217 -30.3578 142.822 +95.0483 -31.0196 145.936 +94.9085 -31.5787 148.566 +94.6767 -32.1219 151.122 +94.252 -32.6134 153.434 +93.7931 -33.1056 155.749 +93.9 -33.8148 159.086 +93.9052 -34.5086 162.35 +94.15 -35.314 166.139 +93.9526 -35.9768 169.258 +93.7535 -36.66 172.472 +94.1044 -37.5848 176.823 +93.8398 -38.2913 180.146 +94.1031 -39.2417 184.618 +94.3375 -40.2143 189.193 +93.8945 -40.9282 192.552 +94.2861 -42.0391 197.779 +92.0204 -41.9815 197.508 +92.1258 -43.0207 202.396 +88.1235 -42.1375 198.241 +88.2271 -43.2144 203.308 +84.6878 -42.5086 199.987 +84.5112 -43.4895 204.602 +81.0701 -42.7899 201.311 +80.8478 -43.7895 206.014 +77.5359 -43.1165 202.847 +77.3308 -44.174 207.822 +73.9716 -43.4305 204.324 +73.611 -44.4478 209.11 +70.283 -43.6727 205.464 +70.2396 -44.9453 211.451 +67.7189 -44.6546 210.084 +67.5963 -45.9689 216.266 +64.3011 -45.1328 212.333 +63.81 -46.267 217.669 +56.9752 -42.7146 200.957 +56.3449 -43.7201 205.687 +52.8803 -42.5123 200.005 +52.1342 -43.4741 204.53 +49.3737 -42.7583 201.162 +48.477 -43.6567 205.388 +45.3225 -42.5046 199.969 +44.4515 -43.4802 204.558 +42.1065 -43.0294 202.437 +41.3101 -44.1858 207.878 +38.2148 -42.8691 201.683 +37.5948 -44.3291 208.552 +34.594 -42.9805 202.208 +33.7742 -44.3355 208.582 +30.833 -42.8941 201.801 +29.9918 -44.369 208.74 +27.1494 -42.8758 201.715 +26.2994 -44.5328 209.51 +23.5802 -43.0296 202.438 +22.4423 -44.3941 208.858 +19.8784 -42.9223 201.934 +18.6252 -44.2617 208.235 +16.3116 -43.0916 202.73 +14.907 -44.3224 208.521 +12.6798 -43.1028 202.783 +11.1894 -44.3906 208.841 +9.08156 -43.246 203.457 +7.46151 -44.4245 209.001 +5.43957 -43.1893 203.19 +3.74529 -44.611 209.878 +1.81774 -43.3063 203.74 +8.10463e-15 -44.4931 209.324 +-1.80988 -43.1192 202.86 +-3.75052 -44.6734 210.172 +-5.46051 -43.3556 203.972 +-7.49292 -44.6114 209.88 +-9.09464 -43.3084 203.75 +-11.2627 -44.6813 210.209 +-12.8263 -43.6007 205.125 +-15.0116 -44.6337 209.985 +-16.5549 -43.7342 205.753 +-18.9128 -44.9451 211.45 +-20.3193 -43.8744 206.413 +-22.6618 -44.8283 210.9 +-24.101 -43.9798 206.909 +-26.5066 -44.8838 211.162 +-27.8151 -43.927 206.66 +-30.4372 -45.0279 211.839 +-31.5869 -43.9428 206.734 +-34.3843 -45.1364 212.35 +-35.3037 -43.8623 206.356 +-38.1158 -44.9432 211.441 +-39.2171 -43.9933 206.972 +-42.1879 -45.1247 212.295 +-43.2628 -44.2112 207.997 +-46.1564 -45.1478 212.404 +-47.0323 -44.1083 207.513 +-50.0741 -45.095 212.155 +-51.0078 -44.1735 207.82 +-54.2873 -45.2694 212.976 +-55.0836 -44.2835 208.338 +-58.1566 -45.126 212.301 +-59.1131 -44.3174 208.497 +-62.7902 -45.5275 214.19 +-63.6194 -44.6544 210.083 +-68.4442 -46.5454 218.979 +-69.1924 -45.6262 214.654 +-73.5151 -47.0413 221.312 +-74.4079 -46.2358 217.522 +-78.8526 -47.6128 224.001 +-79.0788 -46.4292 218.432 +-84.0001 -47.9837 225.746 +-82.824 -46.0572 216.682 +-87.0834 -47.1668 221.903 +-87.0074 -45.9237 216.054 +-91.0669 -46.8629 220.473 +-90.8108 -45.5819 214.446 +-96.4324 -47.2336 222.217 +-96.0985 -45.9508 216.181 +-101.399 -47.3513 222.77 +-100.688 -45.9358 216.111 +-106.458 -47.466 223.31 +-106.595 -46.4641 218.596 +-112.135 -47.8014 224.888 +-111.46 -46.4797 218.67 +-116.358 -47.4798 223.375 +-109.157 -43.5968 205.107 +-109.105 -42.6629 200.713 +-121.341 -46.4647 218.599 +-96.9619 -36.3687 171.101 +-96.9582 -35.6305 167.628 +-97 -34.931 164.338 +-97.0413 -34.252 161.143 +-97.0847 -33.5935 158.045 +-97.028 -32.9197 154.875 +-97.0282 -32.2841 151.885 +-96.8214 -31.5982 148.658 +-97.327 -31.1597 146.595 +-96.9753 -30.462 143.312 +-97.2996 -29.9919 141.101 +-97.4785 -29.4885 138.733 +-97.1065 -28.8336 135.651 +-97.3258 -28.3687 133.464 +-97.4548 -27.8882 131.204 +-97.4915 -27.3928 128.873 +-97.1931 -26.8164 126.161 +-97.7062 -26.474 124.55 +-97.0898 -25.837 121.553 +-97.05 -25.3671 119.343 +-97.0412 -24.9153 117.217 +-97.5108 -24.5939 115.705 +-97.3823 -24.1294 113.52 +-97.2224 -23.6672 111.345 +-97.6216 -23.3487 109.847 +-97.4051 -22.8902 107.69 +-97.3585 -22.4811 105.765 +-97.1499 -22.0428 103.703 +-97.3212 -21.6985 102.083 +-97.7463 -21.4155 100.752 +-97.3216 -20.9533 98.5777 +-97.5666 -20.6424 97.1149 +-97.1565 -20.2 95.0334 +-97.2874 -19.8772 93.5148 +-97.7583 -19.6277 92.3411 +-97.2727 -19.192 90.2911 +-97.4894 -18.9013 88.9238 +-97.6155 -18.5973 87.4934 +-98.0208 -18.3499 86.3296 +-97.2893 -17.8959 84.1934 +-97.8104 -17.6778 83.1673 +-97.8642 -17.3781 81.7575 +-98.0537 -17.1063 80.4789 +-98.4593 -16.8749 79.39 +-98.3867 -16.5647 77.931 +-98.3738 -16.2691 76.5401 +-98.5013 -16.0004 75.276 +-98.0585 -15.6439 73.5987 +-98.6315 -15.4529 72.7 +-98.5529 -15.162 71.3317 +-98.6192 -14.8971 70.0853 +-98.508 -14.6089 68.7296 +-98.4621 -14.3342 67.4373 +-98.4007 -14.0608 66.151 +-98.3239 -13.7888 64.871 +-98.3985 -13.541 63.7054 +-98.9631 -13.3619 62.863 +-98.4238 -13.0367 61.3327 +-99.476 -12.9237 60.8012 +-102.146 -13.0143 61.2274 +-103.374 -12.9141 60.7563 +-105.98 -12.9793 61.063 +-107.82 -12.9425 60.8897 +-110.013 -12.9409 60.8822 +-111.776 -12.8819 60.6048 +-113.719 -12.8374 60.395 +-116.108 -12.8355 60.3864 +-119.303 -12.9124 60.7481 +-121.89 -12.9125 60.7487 +-162.789 -16.8748 79.3898 +-164.389 -16.67 78.426 +-164.722 -16.3353 76.8514 +-165.401 -16.0358 75.4424 +-164.521 -15.5885 73.3381 +-165.169 -15.2894 71.931 +-164.704 -14.8897 70.0503 +-164.494 -14.5172 68.2979 +-164.358 -14.1545 66.5917 +-164.39 -13.809 64.9663 +-164.684 -13.4874 63.4531 +-164.87 -13.1583 61.9048 +-116.335 -9.04329 42.5453 +-111.729 -8.45498 39.7775 +-110.101 -8.10619 38.1366 +-108.64 -7.77752 36.5903 +-108.583 -7.55372 35.5375 +-108.23 -7.31144 34.3976 +-108.342 -7.1023 33.4137 +-108.158 -6.87506 32.3446 +-107.963 -6.64904 31.2813 +-109.968 -6.55606 30.8438 +-109.661 -6.32295 29.7471 +-109.15 -6.08071 28.6075 +-109.885 -5.90846 27.7971 +-109.74 -5.68875 26.7635 +-110.656 -5.5234 25.9856 +-111.37 -5.3458 25.15 +-112.176 -5.17054 24.3255 +-113.759 -5.02733 23.6517 +-115.925 -4.90364 23.0698 +-121.035 -4.89148 23.0126 +-157.517 -6.06979 28.5561 +-159.145 -5.83431 27.4483 +-159.186 -5.5385 26.0566 +-161.685 -5.32426 25.0487 +-165.66 -5.1475 24.2171 +-850.442 -24.85 116.91 +-149.807 -4.10054 19.2915 +-381.336 -9.73488 45.799 +-380.24 -9.00734 42.3762 +-897.258 -19.6072 92.2448 +-403.932 -8.08656 38.0443 +-403.558 -7.3407 34.5353 +-402.655 -6.58864 30.9971 +-403.515 -5.86654 27.5999 +-143.432 -1.82394 8.58098 +-144.102 -1.57017 7.38705 +-402.616 -3.6548 17.1945 +-402.055 -2.9191 13.7333 +-3275.38 -17.8323 83.8945 +-144.878 -0.525777 2.47359 +-146.594 -0.265984 1.25135 +119.4 4.88498e-15 0 +119.095 -0.206925 1.01852 +119.982 -0.416961 2.05236 +119.859 -0.624881 3.07579 +119.827 -0.8331 4.10068 +119.786 -1.04126 5.12526 +119.836 -1.25037 6.15458 +119.776 -1.45853 7.17916 +120.406 -1.6763 8.25105 +120.228 -1.88386 9.27274 +120.141 -2.09268 10.3006 +119.846 -2.29751 11.3088 +119.641 -2.50357 12.3231 +120.52 -2.73386 13.4566 +120.297 -2.94074 14.4749 +120.956 -3.17042 15.6054 +120.714 -3.37767 16.6256 +120.462 -3.58433 17.6428 +120.696 -3.80595 18.7336 +120.524 -4.01549 19.765 +120.048 -4.21437 20.7439 +120.645 -4.45181 21.9127 +120.249 -4.65365 22.9062 +120.825 -4.89416 24.09 +120.606 -5.10388 25.1223 +120.377 -5.31323 26.1527 +120.14 -5.52218 27.1812 +120.768 -5.77252 28.4135 +120.317 -5.97249 29.3977 +120.825 -6.22118 30.6218 +120.644 -6.43602 31.6793 +121.128 -6.68796 32.9194 +120.638 -6.88717 33.9 +121.482 -7.16435 35.2643 +121.068 -7.36934 36.2733 +121.122 -7.60333 37.4251 +121.26 -7.84426 38.6109 +121.765 -8.11148 39.9263 +121.31 -8.31625 40.9342 +121.789 -8.5865 42.2644 +121.314 -8.79097 43.2708 +121.205 -9.02232 44.4096 +116.604 -8.9115 43.8641 +113.139 -8.87294 43.6743 +110.335 -8.87526 43.6858 +107.632 -8.87614 43.6901 +104.293 -8.81386 43.3835 +101.794 -8.81213 43.375 +99.3024 -8.80242 43.3272 +96.8199 -8.78472 43.2401 +96.5218 -8.96099 44.1077 +97.2987 -9.23979 45.48 +96.89 -9.40848 46.3103 +97.9953 -9.72749 47.8806 +96.6742 -9.80699 48.2719 +97.039 -10.0573 49.504 +96.5945 -10.2255 50.332 +96.9335 -10.4785 51.577 +96.4706 -10.6465 52.404 +96.7836 -10.9019 53.6613 +96.9082 -11.1393 54.8299 +97.0194 -11.378 56.0047 +96.517 -11.5461 56.8323 +96.0073 -11.7134 57.6555 +96.1687 -11.9641 58.8898 +96.3153 -12.2163 60.1312 +95.7762 -12.3832 60.9526 +95.9803 -12.648 62.2561 +96.1684 -12.9145 63.5678 +96.1755 -13.1601 64.7763 +96.2504 -13.418 66.046 +96.4727 -13.7003 67.4357 +96.5157 -13.961 68.719 +95.9001 -14.1282 69.5418 +96.555 -14.486 71.3028 +95.9958 -14.6653 72.1854 +96.0585 -14.9418 73.5466 +96.026 -15.2073 74.8533 +95.9775 -15.4738 76.1651 +96.0673 -15.7666 77.6063 +96.5982 -16.1377 79.4328 +96.5716 -16.4213 80.8287 +95.8481 -16.5884 81.6515 +96.3157 -16.9654 83.507 +96.3116 -17.2653 84.9832 +96.2147 -17.553 86.3995 +96.0999 -17.8418 87.8205 +95.967 -18.1314 89.2461 +96.4635 -18.5464 91.2888 +96.1462 -18.8109 92.5911 +96.0958 -19.1321 94.172 +95.7442 -19.3978 95.4795 +96.3491 -19.8641 97.775 +95.4748 -20.0307 98.5948 +95.6162 -20.4143 100.483 +96.0689 -20.8732 102.742 +96.2879 -21.2909 104.798 +95.8149 -21.5617 106.131 +96.047 -21.9977 108.277 +95.6637 -22.3002 109.766 +95.0683 -22.557 111.03 +95.857 -23.1515 113.956 +95.342 -23.441 115.381 +95.307 -23.8549 117.418 +94.9966 -24.2079 119.156 +95.332 -24.7353 121.752 +95.809 -25.3134 124.598 +95.4691 -25.6869 126.436 +95.4563 -26.1578 128.754 +94.8288 -26.4686 130.283 +95.271 -27.089 133.337 +94.7598 -27.4503 135.116 +94.6714 -27.9441 137.546 +95.1539 -28.6222 140.884 +94.4404 -28.9533 142.514 +94.7259 -29.6033 145.713 +95.1205 -30.3071 149.178 +94.6767 -30.7597 151.405 +94.767 -31.401 154.562 +94.1484 -31.8216 156.632 +94.45 -32.5702 160.317 +93.9052 -33.0451 162.654 +94.1985 -33.8339 166.537 +94.0957 -34.5036 169.834 +93.7535 -35.1053 172.795 +93.7811 -35.8672 176.545 +93.8852 -36.6851 180.571 +93.8354 -37.4705 184.437 +93.9868 -38.3657 188.843 +94.1528 -39.3002 193.443 +94.0326 -40.148 197.616 +94.011 -41.0708 202.158 +94.1189 -42.0873 207.162 +92.7092 -42.4501 208.947 +92.3688 -43.3243 213.251 +88.8974 -42.729 210.32 +88.2573 -43.4912 214.072 +84.8817 -42.9018 211.171 +84.109 -43.6237 214.724 +80.6878 -42.9663 211.489 +80.3405 -43.9469 216.315 +76.809 -43.1839 212.56 +76.5085 -44.2382 217.749 +72.9166 -43.3876 213.562 +71.8774 -44.0428 216.787 +69.433 -43.8431 215.804 +68.2103 -44.4191 218.639 +66.8856 -44.9559 221.282 +64.8575 -45.0321 221.657 +60.9571 -43.7617 215.404 +59.1143 -43.9236 216.2 +55.5343 -42.7525 210.436 +54.6502 -43.6395 214.802 +51.8716 -43.0165 211.736 +50.7939 -43.8033 215.608 +47.8764 -42.9958 211.634 +47.0712 -44.09 217.02 +43.8211 -42.8823 211.075 +42.9129 -43.9536 216.348 +40.3287 -43.3217 213.238 +38.9493 -43.9783 216.47 +36.3765 -43.2785 213.025 +35.1821 -44.225 217.684 +32.5624 -43.3787 213.518 +31.3 -44.3405 218.252 +28.6244 -43.2879 213.071 +27.445 -44.5018 219.046 +24.8594 -43.44 213.82 +23.5398 -44.5904 219.482 +21.0477 -43.5198 214.213 +19.6013 -44.6059 219.559 +17.1982 -43.5069 214.149 +15.7301 -44.7865 220.448 +13.3391 -43.4209 213.726 +11.7599 -44.6752 219.9 +9.54392 -43.5204 214.216 +7.85239 -44.7689 220.361 +5.75369 -43.746 215.326 +3.92679 -44.7894 220.462 +1.91373 -43.6598 214.902 +9.54792e-15 -44.7763 220.398 +-1.91635 -43.7195 215.196 +-3.93552 -44.889 220.952 +-5.73799 -43.6265 214.738 +-7.86984 -44.8685 220.851 +-9.61807 -43.8585 215.88 +-11.7965 -44.8143 220.585 +-13.394 -43.5999 214.607 +-15.7719 -44.9055 221.034 +-17.2218 -43.5664 214.442 +-19.7582 -44.9629 221.316 +-21.2586 -43.9558 216.359 +-23.7907 -45.0656 221.821 +-25.2217 -44.0731 216.936 +-27.9203 -45.2724 222.84 +-29.1596 -44.0972 217.055 +-32.0933 -45.4644 223.784 +-33.198 -44.2254 217.686 +-36.1676 -45.464 223.782 +-37.2017 -44.2605 217.858 +-40.1648 -45.3509 223.226 +-41.3128 -44.3789 218.442 +-44.4394 -45.5171 224.044 +-45.3163 -44.3457 218.278 +-48.6305 -45.5506 224.209 +-49.4781 -44.4341 218.713 +-52.886 -45.6073 224.488 +-53.7858 -44.6039 219.549 +-57.3113 -45.7644 225.261 +-57.8127 -44.5065 219.07 +-61.7542 -45.8853 225.856 +-62.32 -44.7403 220.22 +-66.9799 -46.5058 228.911 +-68.4193 -45.9868 226.356 +-73.6484 -47.9604 236.07 +-74.3645 -46.9572 231.132 +-78.6757 -48.2085 237.291 +-79.3262 -47.2015 232.335 +-83.7036 -48.3984 238.226 +-83.919 -47.1814 232.236 +-87.1809 -47.6887 234.733 +-87.2016 -46.435 228.562 +-90.9896 -47.1925 232.291 +-91.6253 -46.3101 227.947 +-96.686 -47.6445 234.515 +-96.2832 -46.2791 227.794 +-101.707 -47.7044 234.81 +-101.92 -46.6679 229.708 +-107.012 -47.8531 235.542 +-106.618 -46.5783 229.267 +-112.459 -48.0154 236.341 +-112.536 -46.9735 231.213 +-102.184 -41.712 205.315 +-116.904 -46.6822 229.779 +-101.921 -39.825 196.026 +-105.279 -40.2644 198.189 +-96.805 -36.2479 178.419 +-96.9109 -35.5359 174.915 +-97.3983 -34.9831 172.193 +-96.8597 -34.0847 167.772 +-97 -33.4496 164.646 +-97.0413 -32.7994 161.445 +-97.1362 -32.186 158.426 +-97.0802 -31.5407 155.249 +-97.0812 -30.9317 152.252 +-97.4124 -30.4429 149.846 +-97.327 -29.8383 146.87 +-97.0857 -29.2033 143.744 +-97.0759 -28.6538 141.04 +-97.1953 -28.1559 138.589 +-96.8771 -27.5457 135.585 +-97.1516 -27.117 133.475 +-97.5724 -26.7378 131.608 +-97.6104 -26.2631 129.272 +-97.6746 -25.8064 127.024 +-97.0974 -25.1934 124.007 +-97.6439 -24.8826 122.477 +-97.05 -24.2913 119.566 +-97.0412 -23.8587 117.437 +-96.9383 -23.4127 115.242 +-97.318 -23.0908 113.657 +-97.2224 -22.6635 111.554 +-97.6216 -22.3585 110.053 +-97.4051 -21.9195 107.892 +-97.4254 -21.5424 106.036 +-97.0823 -21.0934 103.826 +-97.3894 -20.7928 102.346 +-97.7463 -20.5073 100.941 +-97.3216 -20.0647 98.7624 +-97.5666 -19.767 97.2969 +-97.51 -19.4137 95.5579 +-97.7153 -19.1179 94.1022 +-97.6863 -18.7815 92.4461 +-97.1276 -18.3507 90.3255 +-97.782 -18.1541 89.3577 +-97.8367 -17.849 87.856 +-97.4263 -17.4651 85.9668 +-97.6638 -17.2029 84.6759 +-97.7349 -16.915 83.2587 +-97.9403 -16.654 81.9743 +-97.9771 -16.368 80.5666 +-97.6105 -16.0199 78.853 +-98.4644 -15.8748 78.1386 +-97.826 -15.4924 76.2565 +-98.5013 -15.3218 75.417 +-98.6932 -15.0774 74.2138 +-98.7113 -14.8095 72.8952 +-98.6332 -14.5309 71.5237 +-97.8911 -14.16 69.6982 +-98.508 -13.9894 68.8584 +-98.4621 -13.7263 67.5637 +-98.4007 -13.4645 66.275 +-98.241 -13.1929 64.9378 +-98.3151 -12.9557 63.7707 +-98.2083 -12.6977 62.5004 +-98.0864 -12.441 61.2369 +-99.5608 -12.3862 60.967 +-102.146 -12.4624 61.3422 +-103.374 -12.3665 60.8701 +-105.98 -12.4289 61.1774 +-107.127 -12.314 60.6118 +-110.013 -12.3921 60.9962 +-111.776 -12.3356 60.7183 +-113.455 -12.2644 60.368 +-116.549 -12.3379 60.7296 +-119.392 -12.374 60.9072 +-121.533 -12.3288 60.6846 +-161.178 -15.9993 78.7514 +-164.839 -16.0066 78.7878 +-164.993 -15.6682 77.1219 +-163.589 -15.1874 74.7554 +-165.34 -15.0017 73.8413 +-164.073 -14.5438 71.5875 +-164.154 -14.2106 69.9472 +-165.599 -13.9948 68.8853 +-164.635 -13.5771 66.829 +-165.224 -13.2905 65.4185 +-164.405 -12.8935 63.4643 +-165.804 -12.6716 62.3719 +-117.178 -8.7225 42.9338 +-111.542 -8.08279 39.785 +-109.912 -7.74913 38.1427 +-109.396 -7.49952 36.9141 +-108.583 -7.23337 35.6041 +-108.23 -7.00137 34.4621 +-108.247 -6.79511 33.4468 +-108.827 -6.62425 32.6058 +-108.059 -6.37271 31.3677 +-109.199 -6.23412 30.6855 +-109.854 -6.06545 29.8553 +-109.633 -5.84859 28.7879 +-109.885 -5.65788 27.8492 +-109.837 -5.45232 26.8373 +-109.683 -5.24267 25.8054 +-111.273 -5.11461 25.1751 +-112.274 -4.95558 24.3923 +-113.954 -4.8224 23.7368 +-115.925 -4.69568 23.113 +-120.642 -4.66884 22.9809 +-157.517 -5.81238 28.6096 +-156.387 -5.49008 27.0233 +-158.496 -5.28062 25.9922 +-162.08 -5.11093 25.157 +-162.1 -4.82326 23.741 +-850.838 -23.8073 117.184 +-3248.47 -85.1465 419.107 +-380.145 -9.29292 45.7416 +-380.24 -8.62534 42.4556 +-896.959 -18.7695 92.3869 +-402.737 -7.72072 38.0029 +-400.371 -6.97385 34.3267 +-403.253 -6.3186 31.1013 +-402.318 -5.60108 27.5696 +-146.925 -1.78913 8.80645 +-142.405 -1.48586 7.3137 +-402.616 -3.4998 17.2267 +-402.055 -2.7953 13.759 +-3275.38 -17.0761 84.0517 +-145.078 -0.504174 2.48164 +-146.894 -0.255225 1.25627 +119.5 2.66454e-15 -1.13687e-13 +118.995 -0.19756 1.01949 +119.982 -0.398425 2.05604 +119.859 -0.597102 3.0813 +119.827 -0.796065 4.10803 +119.786 -0.994966 5.13444 +119.836 -1.19479 6.16561 +119.776 -1.39369 7.19203 +120.406 -1.60178 8.26584 +120.228 -1.80012 9.28936 +120.141 -1.99965 10.319 +119.846 -2.19537 11.329 +120.536 -2.41016 12.4374 +120.52 -2.61233 13.4807 +120.396 -2.81233 14.5128 +120.163 -3.00962 15.5309 +120.714 -3.22752 16.6554 +120.462 -3.42499 17.6744 +120.794 -3.63972 18.7825 +120.425 -3.83385 19.7843 +120.048 -4.02702 20.7811 +120.744 -4.25737 21.9698 +120.249 -4.44677 22.9472 +120.237 -4.65381 24.0156 +120.606 -4.87699 25.1673 +120.377 -5.07703 26.1996 +120.042 -5.27241 27.2079 +120.768 -5.5159 28.4644 +120.317 -5.70698 29.4504 +120.728 -5.93986 30.6522 +120.644 -6.14991 31.7361 +121.128 -6.39064 32.9784 +120.734 -6.58625 33.9878 +120.62 -6.79723 35.0766 +120.973 -7.03616 36.3095 +121.122 -7.26533 37.4921 +121.45 -7.5073 38.7408 +121.006 -7.7026 39.7487 +121.405 -7.95275 41.0395 +121.789 -8.20479 42.3402 +121.408 -8.40667 43.382 +121.112 -8.61457 44.4548 +116.698 -8.52215 43.9779 +113.139 -8.47849 43.7526 +110.335 -8.48072 43.7641 +106.893 -8.42332 43.4679 +104.293 -8.42205 43.4613 +101.885 -8.42798 43.4919 +99.211 -8.40336 43.3649 +96.7289 -8.3863 43.2768 +97.1562 -8.61893 44.4773 +97.2987 -8.82903 45.5615 +96.8001 -8.98189 46.3504 +97.9953 -9.29505 47.9664 +97.0306 -9.40557 48.5367 +96.3294 -9.53994 49.2301 +96.5945 -9.77095 50.4222 +96.7578 -9.99448 51.5757 +96.4706 -10.1732 52.4979 +96.6095 -10.3985 53.6608 +96.9082 -10.6441 54.9282 +96.4163 -10.8046 55.7563 +96.517 -11.0329 56.9342 +96.6894 -11.2722 58.1692 +96.1687 -11.4323 58.9953 +96.3996 -11.6835 60.2917 +96.531 -11.926 61.5431 +96.7308 -12.1803 62.8554 +96.8316 -12.4255 64.1209 +96.1755 -12.575 64.8924 +96.4142 -12.8433 66.277 +96.4727 -13.0913 67.5566 +96.5157 -13.3404 68.8421 +96.5432 -13.5907 70.1335 +96.6349 -13.8535 71.4897 +95.9164 -14.0018 72.2551 +96.0585 -14.2776 73.6785 +96.026 -14.5313 74.9875 +95.9775 -14.7859 76.3017 +95.9901 -15.0536 77.683 +95.8322 -15.298 78.9441 +95.8872 -15.5801 80.3997 +95.9236 -15.8635 81.8622 +96.3157 -16.2112 83.6566 +96.3859 -16.5105 85.2012 +96.2147 -16.7727 86.5543 +95.9536 -17.0227 87.8441 +95.967 -17.3254 89.4061 +95.6722 -17.5765 90.7023 +96.1462 -17.9747 92.7571 +95.9544 -18.2547 94.202 +95.8844 -18.5626 95.7907 +95.585 -18.8305 97.1735 +95.8878 -19.2232 99.1996 +95.6844 -19.5207 100.735 +96.0014 -19.9312 102.854 +95.6188 -20.2029 104.256 +95.8149 -20.6032 106.321 +95.5222 -20.9051 107.879 +95.7286 -21.3233 110.037 +95.6468 -21.6853 111.905 +95.857 -22.1223 114.16 +95.405 -22.4135 115.663 +95.2447 -22.7796 117.552 +95.4275 -23.2367 119.911 +95.2712 -23.6206 121.892 +95.3275 -24.0666 124.194 +95.2311 -24.4838 126.347 +95.28 -24.9489 128.747 +95.003 -25.3384 130.757 +95.0416 -25.8223 133.254 +94.7031 -26.2144 135.277 +94.895 -26.765 138.119 +95.0987 -27.334 141.055 +94.6583 -27.7301 143.099 +94.7259 -28.2873 145.974 +94.6966 -28.8307 148.778 +94.6245 -29.3761 151.593 +94.767 -30.005 154.839 +94.8082 -30.6201 158.013 +94.85 -31.2542 161.285 +94.8408 -31.8907 164.57 +94.5379 -32.4462 167.436 +94.1434 -32.9865 170.224 +94.176 -33.6958 173.884 +93.8273 -34.2897 176.949 +93.8852 -35.0543 180.895 +94.1477 -35.9239 185.382 +93.7238 -36.5576 188.653 +93.8514 -37.4331 193.17 +94.0748 -38.3805 198.06 +94.1768 -39.3142 202.878 +94.2002 -40.2512 207.713 +93.706 -40.9992 211.573 +93.9318 -42.0988 217.248 +91.844 -42.1829 217.682 +91.891 -43.2686 223.284 +87.887 -42.446 219.039 +88.051 -43.6383 225.192 +84.0848 -42.7848 220.788 +84.1028 -43.9596 226.85 +80.7145 -43.3624 223.768 +80.7083 -44.592 230.113 +76.5973 -43.5515 224.744 +76.6671 -44.8893 231.648 +71.3274 -43.0373 222.09 +70.9001 -44.1182 227.669 +70.0382 -44.9821 232.127 +68.7715 -45.6271 235.455 +66.0079 -45.2812 233.67 +65.1965 -46.2895 238.873 +58.3636 -42.9332 221.553 +57.3597 -43.7669 225.855 +54.276 -43.0095 221.947 +53.2459 -43.8764 226.421 +50.1707 -43.0531 222.172 +49.0464 -43.8978 226.531 +45.9942 -43.0082 221.94 +44.821 -43.8671 226.373 +42.1693 -43.2852 223.37 +40.981 -44.2155 228.17 +37.9114 -43.0997 222.412 +36.6057 -43.9689 226.898 +34.0405 -43.3318 223.61 +32.6918 -44.2533 228.366 +30.021 -43.3816 223.867 +28.5784 -44.2796 228.501 +25.9688 -43.3613 223.762 +24.5433 -44.4245 229.249 +21.987 -43.441 224.174 +20.3857 -44.3287 228.755 +17.9357 -43.3556 223.733 +16.4067 -44.6363 230.342 +14.0167 -43.5985 224.987 +12.2675 -44.532 229.804 +10.0281 -43.6953 225.486 +8.18044 -44.5659 229.979 +6.01285 -43.6839 225.427 +4.0891 -44.5672 229.986 +2.0071 -43.7543 225.791 +8.77076e-15 -44.517 229.726 +-2.0071 -43.7543 225.791 +-4.09957 -44.6814 230.575 +-6.0207 -43.741 225.722 +-8.21534 -44.7561 230.96 +-10.0106 -43.6194 225.095 +-12.3513 -44.836 231.373 +-14.0656 -43.7503 225.77 +-16.5672 -45.0727 232.594 +-18.179 -43.9436 226.767 +-20.8477 -45.3331 233.938 +-22.3225 -44.1038 227.594 +-25.1286 -45.484 234.717 +-26.5122 -44.2687 228.445 +-29.3583 -45.488 234.737 +-30.7128 -44.3814 229.026 +-33.6521 -45.5533 235.074 +-35.0456 -44.6114 230.213 +-38.0292 -45.6788 235.722 +-39.2648 -44.6382 230.352 +-42.2139 -45.5456 235.035 +-43.2992 -44.4449 229.354 +-46.5956 -45.6039 235.335 +-47.5493 -44.4622 229.444 +-51.0215 -45.6655 235.653 +-51.8589 -44.502 229.649 +-55.4054 -45.656 235.604 +-56.237 -44.5634 229.966 +-60.1176 -45.8712 236.714 +-61.293 -45.0883 232.675 +-64.3942 -45.7197 235.933 +-65.8208 -45.1528 233.007 +-70.1773 -46.5596 240.267 +-72.1115 -46.3137 238.998 +-75.7535 -47.1384 243.254 +-77.0108 -46.4664 239.786 +-80.5916 -47.1873 243.506 +-81.8329 -46.5284 240.106 +-84.9733 -46.9483 242.273 +-86.5227 -46.4828 239.871 +-89.9171 -46.9987 242.533 +-90.1084 -45.8498 236.604 +-95.2542 -47.2082 243.614 +-95.8401 -46.287 238.861 +-100.095 -47.1317 243.219 +-100.914 -46.3485 239.178 +-105.419 -47.2474 243.816 +-105.788 -46.2855 238.853 +-111.405 -47.6028 245.65 +-111.511 -46.5505 240.22 +-116.305 -47.4498 244.861 +-102.806 -41.0045 211.601 +-99.1596 -38.6779 199.594 +-102.759 -39.2098 202.339 +-97.0632 -36.2408 187.018 +-96.8287 -35.3864 182.609 +-96.805 -34.6365 178.739 +-97.1018 -34.023 175.573 +-97.0104 -33.2947 171.815 +-97.2537 -32.7019 168.756 +-97 -31.9626 164.941 +-97.0921 -31.3579 161.82 +-97.0847 -30.7388 158.625 +-97.1325 -30.1548 155.611 +-97.0282 -29.5406 152.442 +-97.3587 -29.0736 150.032 +-97.1636 -28.4641 146.886 +-97.3617 -27.9843 144.411 +-96.964 -27.3485 141.13 +-97.1953 -26.9042 138.837 +-97.1065 -26.3834 136.149 +-97.2677 -25.9424 133.874 +-97.5136 -25.5337 131.765 +-97.0156 -24.9426 128.715 +-97.7348 -24.6742 127.329 +-97.0974 -24.0734 124.229 +-97.0898 -23.6414 121.999 +-96.9878 -23.1964 119.703 +-97.5447 -22.9164 118.258 +-97.4472 -22.4893 116.054 +-97.3823 -22.0789 113.936 +-97.2224 -21.656 111.754 +-96.9655 -21.2209 109.509 +-96.8088 -20.8168 107.424 +-97.3585 -20.5707 106.153 +-97.6903 -20.2819 104.663 +-97.8668 -19.9659 103.032 +-97.5398 -19.5544 100.909 +-97.8079 -19.2684 99.4333 +-97.2862 -18.834 97.1912 +-97.3686 -18.5238 95.5903 +-97.5727 -18.2414 94.1333 +-98.1179 -18.0258 93.0209 +-97.4903 -17.6004 90.8253 +-97.7089 -17.334 89.451 +-97.2469 -16.9527 87.4829 +-97.9465 -16.7778 86.5808 +-97.6638 -16.4381 84.8277 +-97.8104 -16.1755 83.4725 +-98.0924 -15.9384 82.2487 +-98.1303 -15.6649 80.8373 +-98.2278 -15.4046 79.494 +-98.3867 -15.1571 78.2169 +-97.9825 -14.8274 76.5154 +-98.4225 -14.629 75.4917 +-98.6932 -14.4071 74.3468 +-98.6315 -14.1397 72.9668 +-98.5529 -13.8736 71.5935 +-98.7001 -13.6423 70.4002 +-98.5894 -13.3785 69.0388 +-98.4621 -13.1161 67.6848 +-98.4007 -12.866 66.3938 +-99.07 -12.7128 65.6032 +-98.3151 -12.3798 63.885 +-98.8793 -12.2161 63.0402 +-98.1708 -11.8982 61.3995 +-99.5608 -11.8355 61.0763 +-101.379 -11.8189 60.9905 +-103.289 -11.8069 60.9287 +-105.894 -11.8667 61.2373 +-107.734 -11.8332 61.064 +-109.839 -11.8225 61.009 +-111.427 -11.7503 60.6367 +-114.158 -11.7918 60.8509 +-116.726 -11.8073 60.9306 +-119.392 -11.8239 61.0163 +-121.533 -11.7807 60.7934 +-161.715 -15.3389 79.1554 +-163.311 -15.1533 78.1973 +-164.812 -14.9553 77.1756 +-164.676 -14.6087 75.3873 +-164.521 -14.2638 73.6072 +-164.712 -13.9514 71.9953 +-164.337 -13.594 70.1508 +-164.954 -13.3207 68.7402 +-164.728 -12.9808 66.9864 +-166.244 -12.7781 65.9403 +-165.149 -12.3761 63.8659 +-169.632 -12.3878 63.9263 +-116.522 -8.28811 42.7702 +-112.387 -7.78203 40.1585 +-109.818 -7.39829 38.1783 +-108.64 -7.11659 36.7246 +-108.583 -6.91182 35.6679 +-108.135 -6.68425 34.4935 +-108.247 -6.49303 33.5068 +-108.158 -6.29082 32.4633 +-108.347 -6.10562 31.5076 +-108.911 -5.94125 30.6593 +-109.468 -5.77547 29.8039 +-109.729 -5.5935 28.8648 +-108.917 -5.35874 27.6534 +-109.837 -5.20993 26.8855 +-110.656 -5.05403 26.0809 +-111.468 -4.8958 25.2644 +-112.274 -4.73528 24.436 +-113.074 -4.57243 23.5957 +-114.259 -4.42246 22.8218 +-120.936 -4.47219 23.0784 +-157.517 -5.55399 28.6609 +-159.637 -5.35505 27.6343 +-159.186 -5.06784 26.1522 +-162.969 -4.91051 25.3403 +-159.726 -4.54134 23.4352 +-850.838 -22.7489 117.394 +-3248.47 -81.3613 419.858 +-380.244 -8.88211 45.8354 +-378.452 -8.20313 42.3316 +-896.263 -17.9212 92.4807 +-403.534 -7.39209 38.1463 +-404.754 -6.73679 34.7647 +-404.549 -6.05711 31.2572 +-402.517 -5.35473 27.6327 +-3270.39 -38.0537 196.373 +-143.703 -1.43275 7.3936 +-402.017 -3.33923 17.2318 +-403.254 -2.67899 13.8247 +-147.749 -0.736043 3.79829 +-144.878 -0.481097 2.48267 +-146.294 -0.242882 1.25337 +119.4 4.88498e-15 0 +119.895 -0.189777 1.02896 +119.082 -0.377007 2.0441 +119.759 -0.5688 3.08398 +119.927 -0.759598 4.11848 +119.786 -0.948597 5.14321 +119.736 -1.13816 6.171 +119.776 -1.32874 7.20431 +120.306 -1.52586 8.27309 +120.228 -1.71622 9.30523 +120.141 -1.90646 10.3367 +119.846 -2.09306 11.3484 +120.536 -2.29783 12.4587 +120.421 -2.48853 13.4926 +120.396 -2.68127 14.5376 +120.163 -2.86935 15.5574 +120.714 -3.0771 16.6838 +120.462 -3.26537 17.7046 +120.696 -3.46726 18.7992 +120.425 -3.65517 19.818 +120.048 -3.83934 20.8166 +119.957 -4.03251 21.8639 +120.249 -4.23953 22.9864 +120.041 -4.42971 24.0175 +120.801 -4.65725 25.2512 +120.377 -4.84042 26.2444 +120.919 -5.0634 27.4534 +119.893 -5.22073 28.3064 +120.317 -5.44101 29.5007 +120.728 -5.66304 30.7045 +120.644 -5.8633 31.7903 +121.128 -6.09281 33.0347 +120.638 -6.2743 34.0187 +120.524 -6.4753 35.1086 +120.973 -6.70824 36.3716 +120.931 -6.91583 37.4971 +121.45 -7.15742 38.807 +121.86 -7.39541 40.0973 +121.499 -7.58801 41.1416 +121.884 -7.82847 42.4453 +121.408 -8.01489 43.4561 +120.55 -8.17499 44.3241 +115.671 -8.05348 43.6653 +112.394 -8.03018 43.539 +110.335 -8.08548 43.8388 +106.8 -8.02381 43.5044 +104.385 -8.03663 43.574 +101.794 -8.02796 43.527 +99.3024 -8.01911 43.479 +96.8199 -8.00299 43.3916 +96.5218 -8.16358 44.2623 +96.4864 -8.34728 45.2583 +96.8001 -8.5633 46.4295 +97.9953 -8.86186 48.0483 +97.5652 -9.01663 48.8875 +97.1277 -9.17071 49.7229 +96.4179 -9.29855 50.416 +96.1426 -9.46812 51.3354 +96.4706 -9.69907 52.5875 +96.6095 -9.91391 53.7524 +96.302 -10.0846 54.6778 +96.4163 -10.3011 55.8515 +96.517 -10.5187 57.0314 +96.0925 -10.6805 57.9089 +96.1687 -10.8995 59.0961 +96.3996 -11.139 60.3947 +96.531 -11.3702 61.6482 +95.9803 -11.5225 62.4742 +96.0855 -11.7552 63.7355 +96.1755 -11.989 65.0032 +96.3323 -12.2344 66.3338 +95.8214 -12.3969 67.215 +95.8685 -12.6334 68.4973 +95.8197 -12.8602 69.7269 +95.996 -13.1205 71.1384 +96.6304 -13.4486 72.9173 +96.0585 -13.6122 73.8043 +96.7304 -13.9557 75.6666 +96.0552 -14.1083 76.4938 +96.6846 -14.4559 78.3787 +95.9854 -14.6084 79.2054 +95.8872 -14.854 80.537 +96.5274 -15.2194 82.5181 +96.4655 -15.4797 83.9299 +96.3116 -15.7289 85.2809 +96.2147 -15.991 86.7022 +96.0999 -16.2541 88.1282 +95.967 -16.5179 89.5588 +95.6722 -16.7574 90.8572 +95.6469 -17.048 92.4329 +96.0958 -17.4296 94.5019 +95.8844 -17.6975 95.9543 +95.5155 -17.9399 97.2686 +95.9566 -18.3403 99.4398 +95.6844 -18.611 100.907 +96.0689 -19.0158 103.102 +96.221 -19.3827 105.092 +95.8811 -19.6566 106.576 +95.5878 -19.9444 108.137 +95.5988 -20.3019 110.075 +95.6468 -20.6747 112.096 +95.2209 -20.9513 113.596 +95.2791 -21.3409 115.708 +95.307 -21.7321 117.83 +95.366 -22.1395 120.038 +95.332 -22.5341 122.178 +95.147 -22.9014 124.17 +95.1122 -23.3137 126.405 +95.2212 -23.7715 128.887 +95.1772 -24.2019 131.221 +94.9843 -24.6042 133.402 +94.5898 -24.9628 135.346 +95.0628 -25.5626 138.598 +94.9884 -26.0298 141.132 +94.6583 -26.4378 143.343 +94.9408 -27.0301 146.555 +94.7496 -27.5024 149.116 +94.6245 -28.007 151.852 +94.9215 -28.6533 155.356 +94.8589 -29.2087 158.367 +94.95 -29.829 161.73 +94.7915 -30.3885 164.764 +94.6833 -30.9816 167.98 +94.9546 -31.7202 171.984 +95.1619 -32.4617 176.004 +94.012 -32.7559 177.6 +94.203 -33.5338 181.817 +94.1031 -34.2335 185.611 +93.7238 -34.8538 188.975 +93.8945 -35.7049 193.589 +93.6945 -36.4438 197.595 +93.8036 -37.3335 202.419 +93.8748 -38.2427 207.349 +94.1048 -39.2548 212.836 +94.2053 -40.2538 218.253 +94.0253 -41.1721 223.232 +94.2136 -42.2949 229.319 +91.9552 -42.3411 229.57 +92.2797 -43.6026 236.41 +87.9021 -42.6427 231.205 +87.6598 -43.6835 236.848 +84.2862 -43.1709 234.069 +83.7687 -44.1259 239.247 +80.6588 -43.7236 237.066 +80.3135 -44.8329 243.08 +76.0184 -43.7301 237.101 +75.2565 -44.6466 242.07 +71.089 -43.5293 236.012 +70.6183 -44.6687 242.19 +68.5199 -44.8138 242.977 +66.7753 -45.2009 245.076 +60.8423 -42.6708 231.358 +60.3837 -43.9271 238.169 +56.4471 -42.6453 231.219 +55.9228 -43.9347 238.21 +52.3351 -42.8174 232.152 +51.4997 -43.9454 238.268 +48.267 -43.03 233.305 +47.2061 -44.0484 238.827 +43.9005 -42.9621 232.937 +42.7695 -43.9945 238.535 +39.925 -43.2734 234.625 +38.4516 -44.0337 238.747 +35.7551 -43.3933 235.275 +34.167 -44.0948 239.079 +31.5351 -43.4459 235.56 +29.7971 -44.0163 238.653 +27.3952 -43.6111 236.456 +25.6304 -44.2301 239.812 +23.0509 -43.4205 235.422 +21.3619 -44.2864 240.117 +18.8145 -43.3603 235.096 +17.0555 -44.2387 239.859 +14.6761 -43.5219 235.972 +12.8589 -44.5033 241.293 +10.473 -43.5072 235.892 +8.58528 -44.5916 241.772 +6.29294 -43.5883 236.332 +4.2706 -44.3763 240.605 +2.0996 -43.6378 236.6 +1.05471e-14 -44.6733 242.215 +-2.0996 -43.6378 236.6 +-4.28108 -44.4852 241.195 +-6.29032 -43.5701 236.234 +-8.60273 -44.6823 242.264 +-10.473 -43.5072 235.892 +-12.8275 -44.3947 240.704 +-14.7493 -43.739 237.149 +-17.0624 -44.2568 239.957 +-18.9557 -43.6857 236.86 +-21.5275 -44.6297 241.979 +-23.3384 -43.9621 238.359 +-26.1217 -45.0779 244.409 +-27.6782 -44.0616 238.899 +-30.6014 -45.2043 245.094 +-31.992 -44.0753 238.972 +-35.2386 -45.4778 246.577 +-36.302 -44.0569 238.873 +-39.3902 -45.1086 244.575 +-40.7007 -44.1142 239.184 +-43.933 -45.1913 245.023 +-45.0486 -44.0858 239.029 +-48.5036 -45.2591 245.391 +-49.5429 -44.1674 239.472 +-53.0591 -45.276 245.483 +-54.0666 -44.2341 239.834 +-57.8349 -45.437 246.356 +-58.6415 -44.3031 240.208 +-62.2223 -45.2645 245.421 +-63.0707 -44.2336 239.831 +-67.5518 -45.7265 247.925 +-67.7984 -44.3419 240.418 +-74.1464 -46.9004 254.29 +-74.3836 -45.5466 246.95 +-80.256 -47.6127 258.152 +-80.108 -46.0826 249.856 +-84.9179 -47.403 257.015 +-85.3232 -46.252 250.774 +-89.3685 -47.0756 255.24 +-89.4936 -45.8381 248.53 +-96.1761 -47.9275 259.859 +-95.3264 -46.2443 250.733 +-100.379 -47.4295 257.159 +-100.165 -46.1212 250.065 +-105.751 -47.4744 257.403 +-105.276 -46.0987 249.943 +-111.476 -47.6333 258.264 +-111.371 -46.4571 251.887 +-116.123 -47.3063 256.491 +-116.363 -46.312 251.1 +-118.883 -46.2411 250.715 +-98.8884 -37.6039 203.885 +-96.9239 -36.0439 195.427 +-96.8695 -35.2398 191.067 +-97.1086 -34.568 187.425 +-96.7825 -33.7211 182.833 +-96.805 -33.0223 179.044 +-97.1018 -32.4374 175.873 +-97.4952 -31.9017 172.969 +-97.2537 -31.1779 169.044 +-97 -30.473 165.222 +-97.0413 -29.8807 162.011 +-97.0847 -29.3062 158.896 +-97.1325 -28.7494 155.877 +-96.9752 -28.1485 152.619 +-97.2512 -27.688 150.122 +-97.0547 -27.107 146.972 +-96.8097 -26.529 143.838 +-97.2436 -26.1492 141.779 +-97.4785 -25.7251 139.48 +-97.1638 -25.1687 136.462 +-97.3258 -24.7482 134.183 +-97.5724 -24.3584 132.069 +-97.0751 -23.7947 129.013 +-97.6746 -23.51 127.469 +-97.0974 -22.9515 124.441 +-97.0282 -22.5253 122.13 +-97.05 -22.1297 119.985 +-97.0412 -21.7355 117.848 +-96.8111 -21.3011 115.493 +-97.3823 -21.0499 114.131 +-97.2873 -20.6605 112.02 +-97.6216 -20.3689 110.438 +-97.4051 -19.9689 108.27 +-97.4923 -19.6388 106.48 +-97.4201 -19.2831 104.552 +-97.1848 -18.9028 102.489 +-97.5398 -18.6431 101.081 +-97.7384 -18.3574 99.5323 +-97.2161 -17.9433 97.2869 +-97.7222 -17.7246 96.1013 +-97.9293 -17.4548 94.6386 +-97.4705 -17.0724 92.565 +-97.6354 -16.8051 91.1157 +-97.7089 -16.5262 89.6037 +-97.9104 -16.2729 88.2303 +-97.352 -15.8988 86.2022 +-98.1881 -15.7562 85.4286 +-97.7349 -15.4098 83.5504 +-97.8642 -15.1602 82.1976 +-98.0537 -14.9232 80.9121 +-98.305 -14.6982 79.6923 +-97.765 -14.3594 77.8554 +-98.4521 -14.2041 77.0134 +-98.0285 -13.8914 75.318 +-98.6932 -13.7357 74.4738 +-98.6315 -13.4807 73.0914 +-97.9098 -13.1407 71.2477 +-98.7001 -13.0065 70.5204 +-98.5894 -12.755 69.1567 +-98.4621 -12.5049 67.8004 +-98.4831 -12.2766 66.5628 +-98.241 -12.0189 65.1653 +-98.2317 -11.7928 63.9398 +-98.1245 -11.5579 62.6659 +-97.7491 -11.2949 61.2401 +-99.6457 -11.2936 61.2327 +-101.294 -11.2586 61.0432 +-103.203 -11.2473 60.9821 +-105.205 -11.24 60.9425 +-107.387 -11.2454 60.9716 +-109.752 -11.2626 61.0647 +-111.864 -11.2467 60.9787 +-114.246 -11.2509 61.0017 +-116.814 -11.2655 61.0809 +-119.126 -11.2477 60.9842 +-121.088 -11.1905 60.674 +-162.52 -14.6969 79.6855 +-164.659 -14.5663 78.9775 +-163.097 -14.11 76.5031 +-163.589 -13.8359 75.0173 +-164.885 -13.6291 73.8961 +-164.712 -13.3012 72.1182 +-164.796 -12.9966 70.4667 +-165.691 -12.7566 69.165 +-165.374 -12.4244 67.3641 +-170.973 -12.5291 67.9318 +-171.104 -12.2248 66.2817 +-178.967 -12.4605 67.5596 +-116.335 -7.88916 42.7744 +-111.542 -7.36352 39.9244 +-109.629 -7.04138 38.1778 +-109.302 -6.82627 37.0115 +-108.583 -6.58969 35.7288 +-108.04 -6.36713 34.522 +-108.152 -6.18497 33.5344 +-108.636 -6.02416 32.6625 +-108.347 -5.82107 31.5614 +-109.295 -5.68437 30.8202 +-109.854 -5.5257 29.9599 +-109.439 -5.31875 28.8378 +-109.788 -5.14987 27.9222 +-109.643 -4.95835 26.8838 +-110.656 -4.81849 26.1255 +-111.468 -4.66764 25.3076 +-112.176 -4.51066 24.4564 +-113.954 -4.39327 23.8199 +-116.023 -4.28145 23.2137 +-119.955 -4.22916 22.9302 +-157.616 -5.29847 28.7279 +-158.259 -5.06139 27.4425 +-160.962 -4.88555 26.489 +-160.104 -4.59937 24.9374 +-162.396 -4.40208 23.8677 +-851.135 -21.6962 117.635 +-152.98 -3.65298 19.8061 +-379.847 -8.45933 45.8658 +-377.557 -7.80235 42.3037 +-896.959 -17.0992 92.7105 +-402.638 -7.03193 38.1266 +-402.463 -6.38646 34.6269 +-403.652 -5.76202 31.2412 +-401.619 -5.0938 27.6182 +-403.746 -4.47895 24.2845 +-143.004 -1.35933 7.3702 +-402.217 -3.1852 17.2699 +-401.455 -2.54275 13.7866 +-145.45 -0.690821 3.74558 +-145.778 -0.461526 2.50235 +-146.294 -0.231563 1.25551 +119.4 4.88498e-15 0 +119.895 -0.18049 1.03063 +119.982 -0.361268 2.06289 +119.859 -0.541417 3.09157 +120.127 -0.72363 4.13203 +119.786 -0.902177 5.15156 +119.736 -1.08246 6.18101 +119.776 -1.26372 7.216 +120.306 -1.45119 8.28652 +120.328 -1.63359 9.32805 +120.241 -1.81467 10.362 +119.846 -1.99063 11.3668 +119.641 -2.16917 12.3863 +119.527 -2.34918 13.4142 +120.396 -2.55006 14.5612 +119.37 -2.71093 15.4798 +120.714 -2.92652 16.7109 +120.363 -3.10303 17.7187 +120.794 -3.30028 18.8451 +120.425 -3.4763 19.8502 +120.147 -3.65446 20.8675 +119.957 -3.83518 21.8994 +120.249 -4.03207 23.0237 +120.041 -4.21294 24.0565 +120.801 -4.42934 25.2922 +120.573 -4.61102 26.3296 +120.042 -4.78071 27.2985 +120.671 -4.99748 28.5363 +120.317 -5.17476 29.5486 +120.728 -5.38591 30.7544 +120.644 -5.57637 31.8419 +121.225 -5.79926 33.1146 +120.638 -5.96726 34.0739 +121.291 -6.19762 35.3893 +120.973 -6.37997 36.4306 +121.122 -6.58777 37.6171 +121.355 -6.80184 38.8395 +121.101 -6.98973 39.9124 +121.499 -7.21669 41.2084 +121.129 -7.39932 42.2512 +121.502 -7.62857 43.5603 +119.988 -7.7387 44.1891 +115.671 -7.65938 43.7362 +113.139 -7.68779 43.8984 +109.5 -7.63164 43.5778 +106.893 -7.63777 43.6128 +103.465 -7.57596 43.2598 +101.06 -7.58008 43.2834 +98.5716 -7.57056 43.229 +96.1829 -7.56128 43.176 +96.8843 -7.79326 44.5006 +96.4864 -7.9388 45.3317 +96.89 -8.15181 46.548 +98.0848 -8.4359 48.1702 +97.0306 -8.52841 48.6985 +96.2407 -8.64228 49.3487 +96.5945 -8.85972 50.5903 +96.9335 -9.07886 51.8416 +96.4706 -9.22444 52.6729 +96.5224 -9.42028 53.7912 +96.9082 -9.65147 55.1113 +96.4163 -9.79697 55.9421 +96.4313 -9.99505 57.0732 +96.0073 -10.1488 57.9513 +96.9319 -10.4484 59.6618 +96.3996 -10.5939 60.4927 +96.531 -10.8138 61.7483 +96.7308 -11.0444 63.0649 +96.1684 -11.1896 63.894 +96.1755 -11.4023 65.1087 +96.4142 -11.6456 66.4979 +95.8214 -11.7903 67.3241 +96.5966 -12.1064 69.1295 +96.5432 -12.3232 70.3673 +96.6349 -12.5615 71.728 +95.9164 -12.696 72.496 +96.6889 -13.0311 74.4093 +96.1043 -13.1869 75.2988 +96.677 -13.5047 77.1139 +95.9901 -13.6497 77.9419 +95.9854 -13.8935 79.3339 +95.9632 -14.1383 80.7317 +95.8481 -14.3727 82.0705 +96.4655 -14.7222 84.0661 +96.3116 -14.9592 85.4193 +96.2147 -15.2085 86.8428 +96.0999 -15.4587 88.2712 +95.967 -15.7096 89.7041 +96.4635 -16.0692 91.7573 +96.1462 -16.2984 93.0662 +95.9544 -16.5523 94.516 +95.7442 -16.8068 95.9694 +95.585 -17.0744 97.4974 +95.9566 -17.4428 99.6012 +95.6162 -17.6876 100.999 +95.3933 -17.9581 102.543 +95.5519 -18.306 104.53 +95.8811 -18.6947 106.749 +96.047 -19.0595 108.833 +95.7286 -19.3347 110.404 +95.5825 -19.6498 112.203 +95.857 -20.0592 114.541 +95.2791 -20.2965 115.896 +95.307 -20.6686 118.021 +95.3044 -21.0424 120.155 +95.2712 -21.4178 122.299 +95.147 -21.7807 124.371 +94.9932 -22.1451 126.452 +95.0449 -22.5663 128.857 +95.1191 -23.0034 131.353 +94.9843 -23.4002 133.618 +94.9297 -23.8266 136.053 +95.1187 -24.326 138.905 +94.9884 -24.7561 141.361 +94.8761 -25.2018 143.906 +95.0483 -25.7366 146.959 +94.8026 -26.1713 149.442 +94.311 -26.5483 151.595 +94.9215 -27.2511 155.608 +94.9097 -27.7943 158.71 +94.45 -28.2199 161.14 +94.8408 -28.9166 165.118 +94.8288 -29.5109 168.511 +94.9069 -30.1528 172.177 +94.8333 -30.7665 175.681 +94.9355 -31.4589 179.635 +94.9294 -32.1386 183.516 +94.1924 -32.5892 186.089 +94.0744 -33.2723 189.99 +94.0667 -34.0199 194.259 +93.948 -34.7542 198.452 +93.8866 -35.5379 202.927 +93.9155 -36.3871 207.776 +93.7858 -37.2074 212.46 +93.9318 -38.1727 217.972 +94.0253 -39.1573 223.594 +94.0637 -40.1611 229.326 +93.7877 -41.0716 234.525 +93.9641 -42.2258 241.115 +91.7894 -42.3495 241.822 +91.6956 -43.4587 248.155 +87.1904 -42.473 242.527 +87.4802 -43.8259 250.252 +83.5146 -43.0562 245.857 +84.0217 -44.6075 254.716 +79.0255 -43.2353 246.88 +80.1098 -45.2003 258.1 +74.3268 -43.2846 247.161 +75.2214 -45.252 258.396 +68.707 -42.7371 244.035 +69.2341 -44.5718 254.512 +64.4979 -43.021 245.656 +63.4319 -43.8865 250.598 +59.0383 -42.4202 242.226 +58.6447 -43.8185 250.21 +54.7809 -42.6253 243.397 +54.0362 -43.8535 250.41 +50.3205 -42.6653 243.625 +49.4004 -43.8401 250.333 +45.9962 -42.8104 244.454 +44.8881 -43.9143 250.757 +42.0046 -43.2996 247.247 +40.407 -44.0086 251.296 +37.1593 -42.8906 244.912 +35.8232 -43.9698 251.074 +32.8404 -43.0302 245.709 +31.4301 -44.1566 252.141 +28.4819 -43.1225 246.236 +26.9892 -44.296 252.937 +24.0573 -43.0985 246.099 +22.4339 -44.233 252.577 +19.7011 -43.1816 246.573 +18.0181 -44.4487 253.808 +15.4087 -43.4582 248.152 +13.5602 -44.6339 254.866 +10.9877 -43.4118 247.887 +9.04246 -44.6679 255.06 +6.59136 -43.4211 247.941 +4.51145 -44.5849 254.586 +2.20781 -43.6412 249.197 +1.04361e-14 -44.7297 255.413 +-2.20258 -43.5377 248.606 +-4.54112 -44.878 256.26 +-6.60706 -43.5246 248.532 +-9.0983 -44.9437 256.635 +-11.0575 -43.6876 249.462 +-13.7905 -45.3919 259.194 +-15.5124 -43.7509 249.824 +-18.3878 -45.3607 259.016 +-19.9992 -43.8351 250.305 +-22.9917 -45.3327 258.856 +-24.5173 -43.9227 250.805 +-27.7837 -45.5998 260.381 +-29.0706 -44.0136 251.324 +-32.4294 -45.5606 260.158 +-33.7932 -44.2786 252.837 +-37.1731 -45.6268 260.536 +-38.2087 -44.1019 251.828 +-42.0339 -45.7805 261.414 +-42.7803 -44.0992 251.813 +-46.6766 -45.6639 260.748 +-47.4177 -44.1333 252.008 +-51.4421 -45.652 260.68 +-52.035 -44.119 251.926 +-56.3025 -45.6926 260.911 +-56.9886 -44.3431 253.205 +-61.2992 -45.8019 261.536 +-61.9097 -44.4835 254.007 +-66.3834 -45.9284 262.258 +-67.4273 -44.975 256.814 +-71.6411 -46.1214 263.36 +-72.8225 -45.297 258.653 +-78.1708 -47.0264 268.527 +-79.7515 -46.4438 265.201 +-84.2323 -47.5261 271.381 +-84.8291 -46.4105 265.011 +-88.8115 -47.1506 269.237 +-89.0357 -45.9027 262.111 +-95.0333 -47.6099 271.86 +-95.4688 -46.5056 265.554 +-99.0832 -46.9599 268.148 +-100.054 -46.1626 263.595 +-104.858 -47.1216 269.071 +-105.223 -46.0791 263.119 +-107.774 -46.015 262.752 +-110.902 -46.1856 263.726 +-116.907 -47.5095 271.286 +-116.235 -46.1136 263.316 +-100.667 -39.0031 222.714 +-103.259 -39.0854 223.183 +-96.9486 -35.8643 204.79 +-96.908 -35.0475 200.126 +-97.143 -34.3577 196.187 +-97.0034 -33.5617 191.642 +-97.1086 -32.8764 187.729 +-96.8287 -32.0863 183.218 +-97.2745 -31.5587 180.204 +-97.1495 -30.8652 176.245 +-97.0104 -30.1897 172.387 +-97.3029 -29.6672 169.404 +-97 -28.9818 165.49 +-97.0921 -28.4334 162.359 +-96.6211 -27.7391 158.394 +-97.028 -27.313 155.961 +-97.0812 -26.8002 153.033 +-97.3587 -26.3622 150.532 +-97.2181 -25.824 147.459 +-97.0305 -25.2882 144.399 +-97.2436 -24.8696 142.009 +-97.4785 -24.4662 139.706 +-97.2212 -23.9512 136.765 +-97.3258 -23.5372 134.401 +-97.5724 -23.1664 132.284 +-97.5509 -22.7414 129.857 +-97.6746 -22.3595 127.676 +-97.828 -21.9926 125.581 +-97.0898 -21.4366 122.406 +-96.9878 -21.0331 120.102 +-96.9783 -20.6584 117.963 +-97.5108 -20.4052 116.517 +-97.318 -20.0066 114.24 +-97.2873 -19.6495 112.201 +-97.4248 -19.3329 110.394 +-97.2064 -18.9531 108.225 +-97.4254 -18.665 106.58 +-97.4201 -18.3395 104.721 +-97.3212 -18.003 102.8 +-97.6775 -17.7558 101.388 +-97.2522 -17.3723 99.1983 +-97.4264 -17.1021 97.6556 +-97.7222 -16.8572 96.2573 +-97.9293 -16.6007 94.7922 +-97.5425 -16.2489 92.7836 +-97.6354 -15.9827 91.2636 +-97.6357 -15.7057 89.6819 +-97.8367 -15.4649 88.3069 +-98.0951 -15.2362 87.0011 +-97.6638 -14.9051 85.1104 +-97.8104 -14.667 83.7507 +-98.0163 -14.4408 82.459 +-98.2069 -14.2151 81.1701 +-98.305 -13.9789 79.8216 +-98.4644 -13.7544 78.5396 +-98.5304 -13.5197 77.1997 +-98.6589 -13.2966 75.9253 +-98.7725 -13.074 74.6546 +-98.7113 -12.8314 73.2692 +-98.5529 -12.5797 71.8321 +-97.8911 -12.2687 70.0558 +-98.508 -12.1208 69.2118 +-98.4621 -11.8929 67.9104 +-98.4007 -11.6661 66.6151 +-98.3239 -11.4404 65.3261 +-98.3151 -11.2253 64.0979 +-97.789 -10.9547 62.5529 +-98.0864 -10.7793 61.5512 +-99.1368 -10.6861 61.019 +-100.782 -10.6536 60.8335 +-103.289 -10.7058 61.1317 +-105.463 -10.7163 61.1914 +-107.56 -10.7124 61.1691 +-109.317 -10.6689 60.9212 +-112.564 -10.7632 61.4597 +-114.07 -10.6839 61.0067 +-119.375 -10.9491 62.5211 +-120.456 -10.8168 61.7655 +-130.443 -11.4652 65.4679 +-162.61 -13.9854 79.8587 +-164.3 -13.8233 78.9329 +-165.624 -13.6274 77.8145 +-165.492 -13.312 76.0133 +-165.249 -12.9908 74.1794 +-166.265 -12.7696 72.9164 +-165.713 -12.4294 70.9739 +-170.57 -12.4895 71.3171 +-171.472 -12.2521 69.9613 +-176.907 -12.3295 70.4034 +-177.431 -12.0564 68.8441 +-671.058 -44.4356 253.733 +-116.803 -7.5333 43.0162 +-112.293 -7.05038 40.2587 +-110.383 -6.74288 38.5028 +-109.302 -6.49222 37.0715 +-108.583 -6.26723 35.7868 +-108.325 -6.07154 34.6694 +-108.247 -5.8875 33.6185 +-108.636 -5.72937 32.7155 +-108.634 -5.55091 31.6965 +-108.334 -5.35864 30.5986 +-109.854 -5.2553 30.0085 +-109.246 -5.04954 28.8336 +-109.885 -4.90217 27.9921 +-109.546 -4.71154 26.9036 +-110.656 -4.5827 26.1679 +-111.37 -4.43534 25.3265 +-112.274 -4.29367 24.5175 +-113.367 -4.15677 23.7358 +-116.023 -4.07194 23.2513 +-120.642 -4.04523 23.0989 +-156.731 -5.01088 28.6128 +-158.554 -4.8227 27.5383 +-160.863 -4.64362 26.5158 +-163.265 -4.46065 25.471 +-160.616 -4.14076 23.6444 +-849.947 -20.6057 117.661 +-860.971 -19.5529 111.65 +-379.351 -8.03487 45.8803 +-380.141 -7.4713 42.6622 +-895.567 -16.2372 92.7169 +-403.036 -6.69443 38.2261 +-403.857 -6.09498 34.8032 +-403.652 -5.48005 31.2919 +-403.515 -4.86739 27.7935 +-402.747 -4.24925 24.2638 +-144.602 -1.30726 7.46465 +-403.116 -3.0361 17.3366 +-402.055 -2.42194 13.8296 +-144.051 -0.650693 3.71555 +-146.978 -0.442553 2.52704 +-146.494 -0.220533 1.25928 +119.4 4.88498e-15 0 +119.995 -0.171327 1.03307 +119.082 -0.340073 2.05057 +119.859 -0.513504 3.09633 +120.227 -0.686895 4.14184 +119.886 -0.85638 5.1638 +120.535 -1.03351 6.23183 +119.976 -1.20056 7.23915 +120.306 -1.37638 8.29927 +120.228 -1.54809 9.33467 +119.942 -1.71684 10.3522 +120.045 -1.89115 11.4032 +120.536 -2.07272 12.4981 +120.421 -2.24474 13.5353 +120.396 -2.41859 14.5836 +120.163 -2.58825 15.6066 +120.813 -2.77792 16.7503 +120.363 -2.94305 17.746 +119.807 -3.10455 18.7198 +120.425 -3.29708 19.8808 +120.147 -3.46606 20.8996 +119.957 -3.63746 21.9331 +121.035 -3.84916 23.2097 +120.041 -3.99574 24.0935 +120.019 -4.17378 25.1671 +120.573 -4.3733 26.3701 +119.945 -4.53056 27.3184 +120.671 -4.73983 28.5802 +120.414 -4.91193 29.618 +120.922 -5.11644 30.8511 +121.513 -5.32699 32.1207 +120.454 -5.4653 32.9547 +120.734 -5.66414 34.1536 +121.387 -5.88275 35.4718 +120.973 -6.05105 36.4866 +121.122 -6.24814 37.675 +121.355 -6.45118 38.8993 +121.101 -6.62938 39.9738 +121.499 -6.84464 41.2718 +121.884 -7.06153 42.5796 +121.502 -7.23528 43.6273 +119.707 -7.32254 44.1534 +116.324 -7.30554 44.0509 +113.139 -7.29145 43.966 +109.408 -7.23208 43.608 +106.893 -7.244 43.6799 +104.385 -7.24931 43.7119 +101.06 -7.18929 43.35 +98.5716 -7.18026 43.2955 +96.1829 -7.17146 43.2425 +96.8843 -7.39148 44.5691 +97.2987 -7.59292 45.7838 +96.8001 -7.72438 46.5764 +98.0848 -8.00099 48.2443 +97.2088 -8.10359 48.863 +96.2407 -8.19673 49.4246 +96.4179 -8.38759 50.5755 +96.9335 -8.61081 51.9214 +96.2956 -8.733 52.6583 +96.6095 -8.94267 53.9225 +96.9082 -9.15389 55.1961 +96.4163 -9.29189 56.0282 +96.517 -9.48819 57.2119 +95.922 -9.61708 57.989 +96.2535 -9.84035 59.3354 +96.3996 -10.0477 60.5858 +96.531 -10.2563 61.8433 +96.6474 -10.4659 63.1075 +96.1684 -10.6127 63.9923 +96.1755 -10.8144 65.2089 +96.4142 -11.0452 66.6002 +95.74 -11.1729 67.3705 +96.5157 -11.4727 69.1779 +95.9001 -11.61 70.0062 +95.996 -11.8351 71.3635 +96.0751 -12.0614 72.7276 +95.9797 -12.2686 73.9772 +96.1043 -12.507 75.4147 +95.9775 -12.7158 76.6738 +95.9901 -12.946 78.0619 +96.5982 -13.2614 79.9633 +95.9632 -13.4094 80.8559 +95.8481 -13.6318 82.1968 +95.7914 -13.8657 83.6071 +95.7171 -14.1004 85.0227 +96.2147 -14.4244 86.9765 +96.0999 -14.6617 88.4071 +95.967 -14.8997 89.8422 +96.4635 -15.2407 91.8985 +96.2888 -15.4811 93.3478 +96.0958 -15.7221 94.8009 +95.8844 -15.9637 96.2579 +96.3491 -16.3236 98.428 +96.0943 -16.5673 99.8975 +95.6844 -16.7877 101.226 +96.0014 -17.1408 103.355 +95.5519 -17.3623 104.691 +95.2848 -17.6206 106.249 +95.5222 -17.9783 108.405 +95.6637 -18.3254 110.499 +95.5825 -18.6368 112.376 +95.0937 -18.8735 113.804 +95.405 -19.2755 116.227 +95.1202 -19.5648 117.972 +95.1197 -19.919 120.107 +94.9668 -20.2487 122.095 +95.2673 -20.684 124.72 +94.6958 -20.9376 126.25 +94.9273 -21.3764 128.895 +95.1772 -21.8309 131.636 +94.9843 -22.1938 133.824 +95.1562 -22.6521 136.587 +95.1746 -23.0855 139.201 +94.9332 -23.466 141.495 +94.7127 -23.8615 143.88 +95.0483 -24.4097 147.186 +94.8555 -24.8359 149.756 +94.7812 -25.3051 152.585 +94.973 -25.8603 155.932 +94.9604 -26.3755 159.039 +94.6 -26.8076 161.644 +94.9393 -27.4543 165.544 +94.8288 -27.9895 168.771 +94.5252 -28.4832 171.748 +94.7863 -29.166 175.865 +94.9817 -29.8517 179.999 +94.657 -30.3943 183.272 +94.817 -31.1141 187.611 +94.6882 -31.7629 191.524 +94.4111 -32.3841 195.27 +94.4552 -33.1405 199.831 +93.8036 -33.676 203.059 +93.8748 -34.4962 208.005 +93.8257 -35.3041 212.876 +93.6192 -36.0843 217.581 +94.0636 -37.1538 224.03 +94.1386 -38.1209 229.861 +93.7144 -38.9237 234.702 +93.8566 -40.0031 241.21 +93.6805 -40.9937 247.184 +93.8161 -42.1714 254.285 +91.9304 -42.4732 256.105 +91.8428 -43.6394 263.137 +87.703 -42.8845 258.585 +87.3591 -43.9884 265.241 +83.8368 -43.5028 262.313 +83.2382 -44.544 268.591 +79.8935 -44.1278 266.082 +78.722 -44.9164 270.837 +74.8802 -44.1757 266.371 +73.867 -45.1027 271.96 +69.3302 -43.8601 264.468 +68.222 -44.767 269.936 +62.61 -42.6674 257.276 +61.8615 -43.8392 264.341 +58.179 -42.9354 258.892 +57.1133 -43.9611 265.076 +53.4904 -43.0149 259.371 +52.2053 -43.9408 264.954 +48.6569 -42.9519 258.992 +47.1976 -43.7932 264.064 +43.6881 -42.7132 257.552 +42.7379 -44.1474 266.2 +39.3321 -43.058 259.631 +37.702 -43.8902 264.649 +34.6678 -43.0827 259.78 +33.1241 -44.1373 266.139 +30.0668 -43.1751 260.337 +28.3063 -44.0625 265.688 +25.3704 -43.1077 259.931 +23.5756 -44.0877 265.84 +20.8074 -43.2551 260.82 +18.897 -44.2135 266.599 +16.2389 -43.4387 261.926 +14.1255 -44.0974 265.898 +11.5809 -43.3966 261.673 +9.40541 -44.0656 265.707 +6.94998 -43.4231 261.833 +4.72088 -44.2493 266.815 +2.32475 -43.5836 262.8 +1.07692e-14 -44.3542 267.447 +-2.32213 -43.5345 262.505 +-4.75229 -44.5438 268.59 +-7.00495 -43.7665 263.903 +-9.60434 -44.9975 271.326 +-11.6813 -43.7726 263.94 +-14.429 -45.045 271.612 +-16.3915 -43.8469 264.388 +-19.2807 -45.1112 272.012 +-21.1212 -43.9076 264.754 +-24.238 -45.3264 273.309 +-25.8688 -43.9545 265.037 +-29.153 -45.3804 273.635 +-30.7234 -44.1178 266.021 +-34.1965 -45.5662 274.755 +-35.5945 -44.2343 266.724 +-38.9685 -45.3645 273.539 +-40.1894 -43.9964 265.289 +-43.8955 -45.3432 273.411 +-44.926 -43.9234 264.85 +-49.0903 -45.5494 274.654 +-49.8779 -44.0298 265.491 +-54.2279 -45.6431 275.219 +-54.8661 -44.1211 266.041 +-59.6083 -45.8815 276.656 +-60.0836 -44.3411 267.368 +-64.6959 -45.8478 276.453 +-65.1313 -44.3855 267.635 +-70.4235 -46.2117 278.647 +-70.7824 -44.7788 270.007 +-76.5328 -46.7305 281.775 +-76.644 -45.2163 272.645 +-83.3252 -47.5428 286.673 +-84.7502 -46.8103 282.257 +-89.2026 -47.7358 287.838 +-89.7306 -46.5611 280.754 +-95.1154 -47.8939 288.791 +-96.3337 -47.1046 284.032 +-101.805 -48.3731 291.68 +-100.576 -46.4677 280.191 +-106.505 -47.8751 288.677 +-106.428 -46.5719 280.819 +-112.743 -48.0524 289.746 +-109.914 -45.652 275.272 +-108.524 -43.946 264.986 +-118.096 -46.6462 281.267 +-99.3629 -38.2981 230.93 +-99.8069 -37.5547 226.447 +-97.1694 -35.7069 215.305 +-97.287 -34.9266 210.6 +-96.9486 -34.0153 205.106 +-97.2955 -33.3735 201.235 +-97.1869 -32.6011 196.578 +-97.0034 -31.8315 191.937 +-96.7454 -31.0648 187.315 +-96.8287 -30.4321 183.5 +-96.805 -29.7872 179.611 +-97.1972 -29.2883 176.603 +-97.3498 -28.7336 173.258 +-97.1552 -28.095 169.407 +-96.95 -27.4734 165.659 +-96.5338 -26.8125 161.674 +-97.1362 -26.4493 159.484 +-97.1325 -25.9329 156.37 +-96.9752 -25.3909 153.102 +-97.3587 -25.0031 150.764 +-97.2181 -24.4927 147.686 +-97.0305 -23.9845 144.622 +-97.2996 -23.601 142.309 +-97.4785 -23.2049 139.921 +-97.1065 -22.6895 136.813 +-97.3258 -22.3237 134.607 +-97.5724 -21.9721 132.487 +-97.6104 -21.5821 130.136 +-97.6746 -21.2068 127.872 +-97.7062 -20.8327 125.617 +-97.6439 -20.4476 123.295 +-97.05 -19.9617 120.365 +-97.1671 -19.6315 118.374 +-97.2564 -19.3027 116.391 +-97.1895 -18.9501 114.265 +-97.677 -18.7111 112.824 +-96.8999 -18.2376 109.969 +-97.0738 -17.9514 108.244 +-97.76 -17.7634 107.11 +-97.6903 -17.4423 105.173 +-98.0032 -17.1946 103.68 +-97.7463 -16.8522 101.615 +-97.8774 -16.5825 99.9893 +-97.5666 -16.2438 97.9467 +-97.7222 -15.9882 96.4054 +-97.216 -15.6301 94.2466 +-97.4705 -15.3998 92.8579 +-97.5629 -15.1475 91.3362 +-96.9775 -14.7956 89.2144 +-97.3206 -14.5902 87.9763 +-98.0951 -14.4507 87.1351 +-98.3379 -14.2343 85.8297 +-97.8104 -13.9108 83.8796 +-97.8642 -13.675 82.4577 +-98.1303 -13.4717 81.2316 +-98.3821 -13.2686 80.0072 +-98.4644 -13.0453 78.6605 +-98.5304 -12.8227 77.3185 +-98.0285 -12.5305 75.5563 +-98.7725 -12.4 74.7695 +-97.9926 -12.0813 72.8477 +-98.5529 -11.9312 71.9427 +-97.972 -11.6458 70.2217 +-98.5894 -11.5054 69.3755 +-98.4621 -11.2798 68.0149 +-98.3183 -11.0554 66.6618 +-98.241 -10.8414 65.3715 +-97.8982 -10.6014 63.9243 +-99.2986 -10.5503 63.6164 +-98.3394 -10.2499 61.8049 +-103.716 -10.6033 63.9358 +-102.658 -10.2924 62.0611 +-109.546 -10.769 64.935 +-107.617 -10.3714 62.5373 +-115.268 -10.8881 65.6533 +-112.885 -10.4492 63.0067 +-127.869 -11.5964 69.9241 +-120.749 -10.7264 64.6782 +-150.631 -13.1037 79.0126 +-144.494 -12.3064 74.2053 +-163.678 -13.6446 82.2743 +-163.326 -13.3228 80.3338 +-164.929 -13.1608 79.3572 +-164.812 -12.8615 77.552 +-165.492 -12.6257 76.1303 +-166.068 -12.3821 74.6617 +-171.747 -12.5106 75.4361 +-170.573 -12.1344 73.1679 +-177.842 -12.3507 74.4721 +-177.939 -12.0587 72.7117 +-658.671 -43.5396 262.535 +-665.621 -42.8973 258.662 +-380.714 -23.9101 144.173 +-115.679 -7.07616 42.6678 +-112.575 -6.70369 40.4219 +-110.195 -6.38432 38.4962 +-109.207 -6.15218 37.0964 +-108.583 -5.94412 35.8418 +-108.516 -5.76863 34.7837 +-108.152 -5.57904 33.6405 +-108.541 -5.42921 32.7371 +-108.538 -5.26009 31.7173 +-108.911 -5.10944 30.8089 +-109.661 -4.97561 30.0019 +-109.826 -4.81462 29.0312 +-109.401 -4.62895 27.9117 +-109.546 -4.46863 26.945 +-110.558 -4.34261 26.185 +-110.494 -4.17355 25.1657 +-111.591 -4.04751 24.4057 +-113.367 -3.94247 23.7723 +-115.141 -3.83264 23.11 +-119.464 -3.79923 22.9086 +-157.616 -4.77939 28.8188 +-157.569 -4.54565 27.4093 +-158.2 -4.3313 26.1169 +-161.586 -4.18718 25.2478 +-161.506 -3.94906 23.8121 +-850.244 -19.5502 117.884 +-861.863 -18.564 111.937 +-379.748 -7.6286 45.9989 +-378.253 -7.05095 42.5158 +-896.064 -15.4087 92.9111 +-403.036 -6.3493 38.285 +-403.957 -5.7822 34.8655 +-402.256 -5.17955 31.2316 +-402.318 -4.60276 27.7537 +-402.248 -4.02519 24.2711 +-144.402 -1.23815 7.46581 +-403.116 -2.87957 17.3632 +-403.054 -2.30279 13.8853 +-141.551 -0.606441 3.65671 +-145.678 -0.416027 2.50856 +-144.994 -0.207022 1.2483 +119.4 4.88498e-15 0 +119.995 -0.162001 1.03457 +120.282 -0.324799 2.07424 +119.859 -0.48555 3.10083 +120.227 -0.649501 4.14787 +119.886 -0.80976 5.17132 +120.634 -0.978052 6.24607 +119.976 -1.13521 7.24969 +120.406 -1.30253 8.31825 +119.53 -1.45532 9.294 +120.141 -1.62607 10.3845 +119.846 -1.78523 11.4009 +120.636 -1.96151 12.5267 +119.527 -2.10678 13.4544 +119.503 -2.26995 14.4965 +120.262 -2.44936 15.6422 +120.02 -2.60948 16.6647 +120.165 -2.77826 17.7426 +119.905 -2.93796 18.7625 +120.327 -3.11504 19.8934 +120.245 -3.28005 20.9471 +119.957 -3.43944 21.965 +120.446 -3.62192 23.1304 +120.041 -3.77822 24.1286 +120.801 -3.97229 25.368 +120.377 -4.12853 26.3657 +120.919 -4.31872 27.5803 +120.671 -4.4818 28.6218 +120.414 -4.64453 29.6611 +120.825 -4.83403 30.8712 +120.741 -5.00497 31.9629 +120.454 -5.16778 33.0026 +120.927 -5.36431 34.2578 +120.62 -5.52735 35.299 +120.973 -5.72164 36.5397 +120.931 -5.8987 37.6705 +121.355 -6.09998 38.9559 +121.006 -6.26358 40.0007 +121.499 -6.47203 41.3319 +121.035 -6.63064 42.3448 +121.596 -6.8467 43.7246 +119.613 -6.91849 44.1831 +115.391 -6.85241 43.7611 +112.301 -6.8435 43.7041 +109.5 -6.84416 43.7084 +106.893 -6.84965 43.7435 +103.557 -6.80027 43.4281 +101.152 -6.80409 43.4525 +98.5716 -6.78938 43.3586 +96.2739 -6.78746 43.3463 +97.0656 -7.00217 44.7175 +96.5766 -7.12629 45.5101 +97.609 -7.3649 47.034 +98.6218 -7.60684 48.579 +97.8325 -7.7116 49.2481 +96.8616 -7.80051 49.8159 +96.6828 -7.95277 50.7882 +96.1426 -8.07562 51.5728 +96.4706 -8.2726 52.8307 +96.7836 -8.47108 54.0983 +96.1288 -8.58595 54.8318 +97.0194 -8.84102 56.4608 +96.6028 -8.97963 57.346 +96.7747 -9.17437 58.5897 +96.1687 -9.29646 59.3694 +96.3996 -9.50075 60.674 +96.6148 -9.70636 61.9871 +96.8141 -9.91327 63.3085 +96.8316 -10.1041 64.5274 +96.1755 -10.2257 65.3038 +96.4142 -10.4439 66.6972 +95.74 -10.5647 67.4686 +96.5157 -10.8481 69.2786 +95.9001 -10.978 70.1081 +95.9161 -11.1815 71.4079 +95.9958 -11.3953 72.7733 +96.1373 -11.6198 74.2065 +96.1043 -11.8261 75.5245 +96.0552 -12.0333 76.8476 +96.6846 -12.3298 78.7411 +95.9854 -12.4599 79.5717 +96.5716 -12.7598 81.4869 +95.9236 -12.8998 82.3812 +95.7914 -13.1108 83.7288 +96.3116 -13.4156 85.6753 +96.2147 -13.6392 87.1031 +96.173 -13.8741 88.6031 +95.967 -14.0886 89.9729 +95.8161 -14.3143 91.4146 +95.6469 -14.5407 92.8604 +96.0958 -14.8662 94.9389 +95.7442 -15.0726 96.2571 +96.3491 -15.435 98.5713 +95.9566 -15.643 99.8997 +95.8208 -15.8964 101.518 +96.0014 -16.2076 103.506 +95.7526 -16.4516 105.064 +95.351 -16.673 106.478 +95.5878 -17.0112 108.637 +95.6637 -17.3278 110.66 +95.454 -17.5986 112.388 +95.0937 -17.8461 113.969 +95.0903 -18.1662 116.013 +95.2447 -18.5238 118.297 +95.3044 -18.8711 120.515 +95.0885 -19.171 122.43 +95.0868 -19.5209 124.665 +95.1122 -19.8849 126.99 +94.9861 -20.2252 129.163 +94.9449 -20.592 131.506 +94.8122 -20.9475 133.776 +95.1562 -21.4189 136.786 +95.1187 -21.8159 139.321 +94.9884 -22.2016 141.784 +94.7672 -22.5755 144.172 +94.6722 -22.9896 146.817 +94.8026 -23.4707 149.89 +94.8857 -23.9539 152.975 +95.076 -24.4789 156.328 +94.6052 -24.8463 158.674 +94.6 -25.3482 161.879 +94.9885 -25.9732 165.871 +94.5379 -26.3845 168.498 +95.05 -27.0821 172.952 +94.8333 -27.5918 176.208 +94.9817 -28.2266 180.261 +94.657 -28.7397 183.538 +94.4601 -29.3095 187.177 +94.469 -29.9642 191.358 +94.4111 -30.6212 195.554 +94.6242 -31.3924 200.479 +94.5915 -32.1102 205.063 +94.729 -32.9151 210.204 +93.7459 -33.3539 213.005 +94.049 -34.2767 218.899 +94.1019 -35.1455 224.447 +93.839 -35.931 229.464 +93.6777 -36.7904 234.952 +93.8924 -37.8397 241.653 +93.9256 -38.8634 248.191 +93.6451 -39.8029 254.191 +93.3324 -40.7737 260.39 +93.5357 -42.0243 268.377 +91.4789 -42.2958 270.111 +92.0871 -43.8448 280.003 +86.2124 -42.3003 270.139 +87.0391 -44.0424 281.265 +82.194 -42.927 274.141 +82.8842 -44.7167 285.571 +77.606 -43.2914 276.469 +78.3704 -45.2475 288.961 +72.6102 -43.4345 277.383 +71.875 -44.5967 284.805 +66.0183 -42.5408 271.676 +65.9781 -44.2111 282.343 +60.8412 -42.4559 271.133 +60.5439 -44.0648 281.408 +56.1021 -42.6592 272.431 +55.8307 -44.4341 283.766 +51.2811 -42.8041 273.357 +50.6532 -44.4409 283.81 +46.2959 -42.7987 273.322 +45.2252 -44.1737 282.103 +41.6231 -43.0855 275.154 +40.5968 -44.6873 285.383 +36.4429 -42.8231 273.479 +35.3665 -44.5598 284.569 +31.5724 -42.8689 273.771 +30.3028 -44.6024 284.841 +26.7697 -43.0093 274.667 +25.2316 -44.6157 284.926 +21.9842 -43.2138 275.973 +20.2852 -44.8777 286.6 +16.9776 -42.9423 274.239 +15.146 -44.7093 285.524 +12.1829 -43.1671 275.675 +10.0825 -44.6661 285.248 +7.3086 -43.1779 275.744 +5.05073 -44.7639 285.873 +2.45477 -43.5159 277.903 +1.22125e-14 -44.9099 286.805 +-2.44954 -43.4231 277.31 +-5.06643 -44.9031 286.762 +-7.37666 -43.58 278.312 +-10.1418 -44.929 286.927 +-12.3181 -43.6462 278.734 +-15.3449 -45.2964 289.273 +-17.3683 -43.9305 280.55 +-20.4665 -45.2789 289.161 +-22.4785 -44.1855 282.179 +-25.6499 -45.3555 289.65 +-27.709 -44.5184 284.305 +-30.8777 -45.4486 290.245 +-32.8969 -44.6673 285.256 +-36.2196 -45.6347 291.434 +-37.8918 -44.5256 284.351 +-41.4318 -45.6065 291.254 +-42.9682 -44.4778 284.046 +-46.7583 -45.6711 291.666 +-48.2764 -44.6298 285.016 +-52.1639 -45.7664 292.274 +-53.6319 -44.7664 285.888 +-57.4908 -45.7552 292.203 +-58.7936 -44.7057 285.501 +-62.9972 -45.8504 292.811 +-64.2393 -44.8272 286.277 +-69.0375 -46.2611 295.434 +-70.057 -45.1432 288.295 +-74.9716 -46.518 297.075 +-75.5396 -45.1868 288.574 +-81.1139 -46.8315 299.077 +-81.7215 -45.5872 291.13 +-87.8181 -47.3787 302.571 +-88.982 -46.4721 296.782 +-96.4242 -48.7912 311.592 +-95.2335 -46.7264 298.406 +-101.728 -48.4353 309.319 +-101.157 -46.7704 298.686 +-108.317 -48.6652 310.787 +-106.451 -46.5046 296.989 +-114.235 -48.5542 310.079 +-113.082 -46.7897 298.81 +-109.195 -44.0068 281.037 +-118.417 -46.5061 296.999 +-98.9711 -37.8961 242.013 +-98.6941 -36.8606 235.401 +-97.0967 -35.3873 225.991 +-97.0156 -34.5172 220.435 +-96.9253 -33.6783 215.077 +-96.9553 -32.9126 210.188 +-96.9486 -32.1636 205.404 +-97.2955 -31.5567 201.528 +-97.143 -30.8124 196.775 +-96.9588 -30.0847 192.128 +-97.154 -29.4978 188.38 +-97.1981 -28.8853 184.468 +-97.2276 -28.2885 180.657 +-97.0541 -27.6531 176.599 +-97.4467 -27.1964 173.683 +-97.1552 -26.5655 169.654 +-97.05 -26.0047 166.072 +-97.0921 -25.4995 162.846 +-97.1877 -25.0225 159.8 +-97.1325 -24.5212 156.598 +-97.0812 -24.0348 153.492 +-97.305 -23.6288 150.899 +-97.2725 -23.1723 147.984 +-97.0857 -22.6918 144.915 +-97.2436 -22.3034 142.434 +-97.4785 -21.9417 140.125 +-97.6801 -21.5812 137.823 +-97.3258 -21.1084 134.803 +-97.5724 -20.776 132.68 +-97.6104 -20.4072 130.325 +-97.5542 -20.0275 127.9 +-97.7671 -19.711 125.879 +-97.5823 -19.3223 123.396 +-97.4235 -18.9476 121.004 +-97.1671 -18.5628 118.546 +-97.1291 -18.228 116.409 +-97.2538 -17.9304 114.508 +-97.2873 -17.6219 112.538 +-96.9655 -17.2564 110.203 +-97.3389 -17.0206 108.697 +-97.3585 -16.7276 106.826 +-97.0823 -16.3902 104.672 +-97.4576 -16.1679 103.252 +-97.6087 -15.9123 101.62 +-97.3911 -15.6018 99.6369 +-97.5666 -15.3595 98.0892 +-97.7222 -15.1178 96.5457 +-97.9293 -14.8877 95.0763 +-97.3986 -14.5507 92.9244 +-97.5629 -14.3229 91.4691 +-97.782 -14.1062 90.0855 +-97.9842 -13.89 88.705 +-98.0951 -13.6641 87.2619 +-97.7387 -13.3774 85.4309 +-97.8104 -13.1536 84.0017 +-97.9403 -12.9406 82.6419 +-98.1303 -12.7383 81.3498 +-98.3821 -12.5463 80.1237 +-97.765 -12.2475 78.2154 +-97.7478 -12.0284 76.8161 +-97.8709 -11.8293 75.5447 +-98.6932 -11.7155 74.8182 +-98.7113 -11.5074 73.4888 +-98.6332 -11.2909 72.1062 +-98.7001 -11.0936 70.8465 +-98.4266 -10.8611 69.3618 +-98.7078 -10.6924 68.2839 +-98.3183 -10.4536 66.7588 +-100.894 -10.528 67.2345 +-99.4826 -10.1865 65.0534 +-108.021 -10.8523 69.305 +-106.942 -10.5398 67.3094 +-111.603 -10.7885 68.8978 +-111.696 -10.5889 67.6233 +-116.832 -10.86 69.3546 +-117.957 -10.749 68.6455 +-137.265 -12.2601 78.2959 +-135.775 -11.8839 75.8933 +-161.192 -13.8227 88.2747 +-161.439 -13.5602 86.5989 +-163.522 -13.4507 85.8994 +-163.476 -13.1652 84.0758 +-164.569 -12.9721 82.8425 +-163.952 -12.6458 80.7593 +-166.816 -12.5868 80.3822 +-168.152 -12.4077 79.2386 +-171.292 -12.3568 78.9133 +-173.166 -12.2085 77.966 +-180.151 -12.4084 79.2429 +-178.552 -12.0105 76.7018 +-648.588 -42.5908 271.995 +-653.09 -41.8498 267.262 +-377.642 -23.6039 150.74 +-380.076 -23.1613 147.914 +-379.034 -22.5086 143.745 +-113.993 -6.59342 42.1071 +-112.575 -6.33875 40.4807 +-110.101 -6.03161 38.5192 +-109.207 -5.81727 37.1504 +-108.488 -5.61563 35.8627 +-108.42 -5.44982 34.8038 +-108.152 -5.27533 33.6895 +-108.541 -5.13365 32.7847 +-107.867 -4.94298 31.567 +-109.199 -4.84408 30.9354 +-109.661 -4.70474 30.0456 +-109.439 -4.53651 28.9712 +-109.401 -4.37696 27.9523 +-109.837 -4.2366 27.0559 +-110.656 -4.10982 26.2463 +-111.273 -3.9742 25.3801 +-111.688 -3.83052 24.4626 +-113.465 -3.73107 23.8275 +-115.337 -3.63017 23.1831 +-120.249 -3.61601 23.0927 +-154.764 -4.43745 28.3386 +-156.191 -4.26058 27.209 +-158.693 -4.10829 26.2365 +-159.61 -3.91083 24.9755 +-163.089 -3.77067 24.0804 +-850.244 -18.4859 118.055 +-861.268 -17.5413 112.023 +-378.855 -7.19634 45.9575 +-379.743 -6.69337 42.7454 +-895.865 -14.5666 93.0256 +-403.932 -6.017 38.426 +-403.359 -5.45933 34.8646 +-402.954 -4.90609 31.3314 +-403.515 -4.36514 27.8768 +-403.746 -3.82022 24.3968 +-145.5 -1.17966 7.53355 +-402.217 -2.71675 17.3498 +-402.455 -2.17418 13.8848 +-145.25 -0.58841 3.75772 +-144.578 -0.390408 2.49324 +-146.394 -0.197641 1.26218 +119.4 4.88498e-15 0 +119.295 -0.151771 1.02996 +120.282 -0.306073 2.07709 +119.959 -0.457937 3.10767 +120.227 -0.612055 4.15356 +120.086 -0.764345 5.18704 +120.634 -0.921664 6.25464 +119.976 -1.06976 7.25964 +120.406 -1.22743 8.32966 +120.328 -1.38056 9.36884 +120.141 -1.53232 10.3987 +120.144 -1.6865 11.445 +120.636 -1.84842 12.5438 +120.421 -2.00017 13.5736 +119.503 -2.13908 14.5163 +120.262 -2.30815 15.6637 +120.02 -2.45903 16.6876 +120.165 -2.61808 17.7669 +119.905 -2.76857 18.7882 +120.327 -2.93545 19.9207 +120.245 -3.09094 20.9759 +119.859 -3.23849 21.9772 +120.446 -3.41311 23.1622 +120.237 -3.56619 24.2011 +120.801 -3.74327 25.4028 +120.377 -3.8905 26.4019 +120.919 -4.06973 27.6182 +120.671 -4.22341 28.6611 +120.414 -4.37676 29.7018 +120.922 -4.55899 30.9384 +120.741 -4.71642 32.0068 +120.454 -4.86984 33.0479 +120.927 -5.05504 34.3048 +120.715 -5.21282 35.3755 +120.973 -5.39177 36.5899 +120.836 -5.55423 37.6924 +121.355 -5.74829 39.0093 +121.006 -5.90246 40.0556 +121.499 -6.09889 41.3886 +121.978 -6.29702 42.7331 +121.596 -6.45196 43.7846 +119.613 -6.51962 44.2437 +115.391 -6.45734 43.8211 +112.301 -6.44894 43.7641 +109.5 -6.44957 43.7684 +106.154 -6.4101 43.5005 +103.557 -6.40821 43.4877 +101.152 -6.41181 43.5121 +98.5716 -6.39795 43.418 +96.7289 -6.42637 43.611 +97.0656 -6.59847 44.7788 +97.389 -6.77191 45.9558 +97.609 -6.94029 47.0985 +98.0848 -7.12925 48.3808 +97.8325 -7.267 49.3157 +97.1277 -7.37099 50.0213 +96.6828 -7.49426 50.8579 +96.9335 -7.67263 52.0683 +96.4706 -7.79565 52.9032 +96.6095 -7.96833 54.0751 +96.1288 -8.09093 54.9071 +96.3301 -8.27211 56.1366 +96.6028 -8.46192 57.4247 +96.0073 -8.57687 58.2048 +96.1687 -8.76048 59.4508 +96.3996 -8.95299 60.7572 +96.6148 -9.14675 62.0721 +95.9803 -9.26126 62.8492 +96.8316 -9.5216 64.6159 +96.2579 -9.64442 65.4494 +96.4142 -9.84177 66.7887 +96.4727 -10.0318 68.0781 +96.5157 -10.2227 69.3737 +95.8197 -10.3364 70.1454 +95.9161 -10.5369 71.5058 +96.6304 -10.8094 73.355 +96.1373 -10.9498 74.3083 +96.6521 -11.2079 76.0593 +96.0552 -11.3396 76.953 +96.6846 -11.619 78.8491 +95.9854 -11.7415 79.6808 +95.7351 -11.92 80.892 +95.9236 -12.1561 82.4943 +96.5404 -12.4515 84.4992 +96.3116 -12.6422 85.7928 +96.2147 -12.8528 87.2226 +96.173 -13.0742 88.7247 +96.0396 -13.2863 90.1644 +95.8161 -13.489 91.54 +96.2888 -13.7944 93.6119 +96.0958 -14.0091 95.0692 +95.8844 -14.2244 96.5303 +96.3491 -14.5451 98.7065 +95.9566 -14.7411 100.037 +95.8208 -14.9799 101.657 +96.0014 -15.2732 103.648 +95.7526 -15.5031 105.208 +95.351 -15.7117 106.624 +95.5878 -16.0304 108.786 +95.6637 -16.3288 110.811 +95.454 -16.5839 112.543 +95.7298 -16.9296 114.888 +95.0903 -17.1188 116.172 +95.8673 -17.57 119.234 +95.3044 -17.7831 120.681 +95.0885 -18.0657 122.598 +95.0868 -18.3954 124.836 +94.9337 -18.7033 126.925 +94.9861 -19.0592 129.34 +94.8869 -19.3929 131.605 +94.8122 -19.7398 133.959 +94.8164 -20.112 136.485 +95.1187 -20.5581 139.512 +94.7676 -20.8729 141.648 +94.7672 -21.2739 144.37 +94.9408 -21.7255 147.435 +94.8026 -22.1176 150.095 +94.8857 -22.5728 153.185 +95.076 -23.0676 156.543 +94.6052 -23.4139 158.892 +94.6 -23.8868 162.102 +94.5453 -24.3614 165.323 +94.5379 -24.8634 168.729 +94.6683 -25.4182 172.494 +94.8333 -26.0011 176.45 +94.6123 -26.4958 179.807 +94.657 -27.0828 183.79 +94.6386 -27.6719 187.788 +94.469 -28.2366 191.621 +94.7124 -28.9479 196.448 +94.6242 -29.5825 200.754 +94.4671 -30.2191 205.074 +94.729 -31.0174 210.492 +94.3839 -31.6447 214.749 +94.049 -32.3005 219.199 +94.6376 -33.3077 226.034 +93.839 -33.8595 229.779 +94.0442 -34.8049 236.194 +93.8924 -35.6581 241.985 +93.8556 -36.5955 248.346 +93.6451 -37.5081 254.539 +93.4325 -38.464 261.026 +93.5357 -39.6014 268.745 +93.5731 -40.7697 276.673 +92.0871 -41.317 280.387 +93.6097 -43.2817 293.72 +87.0391 -41.5031 281.651 +92.1346 -45.3444 307.718 +82.8842 -42.1386 285.963 +87.4938 -45.9934 312.122 +78.3704 -42.6388 289.357 +83.4266 -47.0276 319.141 +71.875 -42.0255 285.195 +74.6325 -45.319 307.546 +65.9781 -41.6622 282.73 +68.9793 -45.3597 307.822 +60.5439 -41.5243 281.794 +63.5585 -45.5425 309.063 +55.8307 -41.8723 284.155 +57.6775 -45.3675 307.875 +50.6532 -41.8787 284.199 +52.5016 -45.7374 310.385 +45.2252 -41.6269 282.49 +47.0921 -45.9361 311.734 +40.5968 -42.1109 285.775 +41.6248 -46.0924 312.794 +35.3665 -41.9908 284.96 +35.8741 -45.9015 311.499 +30.3028 -42.0309 285.232 +30.3735 -45.9858 312.071 +25.2316 -42.0434 285.317 +24.8872 -46.0997 312.844 +20.2852 -42.2904 286.993 +19.3402 -46.0978 312.831 +15.146 -42.1316 285.915 +13.8361 -46.1982 313.512 +10.0825 -42.0909 285.639 +8.31118 -46.2701 314 +5.05073 -42.1831 286.265 +2.77504 -46.3571 314.591 +1.29896e-14 -42.3207 287.199 +-2.77853 -46.4154 314.987 +-5.06643 -42.3143 287.155 +-8.33212 -46.3867 314.792 +-10.1418 -42.3386 287.32 +-13.9582 -46.606 316.28 +-15.3449 -42.6849 289.67 +-19.6088 -46.738 317.176 +-20.4665 -42.6684 289.558 +-25.1618 -46.6083 316.295 +-25.6499 -42.7405 290.048 +-31.0444 -47.0016 318.965 +-30.8777 -42.8283 290.643 +-36.7231 -46.9879 318.872 +-36.2196 -43.0037 291.834 +-42.4732 -47.0318 319.169 +-41.4318 -42.9771 291.654 +-48.5258 -47.3347 321.225 +-46.7583 -43.0379 292.066 +-54.7958 -47.7361 323.949 +-52.1639 -43.1277 292.675 +-61.1582 -48.1053 326.455 +-57.4908 -43.1172 292.604 +-67.3066 -48.2282 327.289 +-62.9972 -43.2069 293.213 +-74.4552 -48.9605 332.258 +-69.0375 -43.594 295.839 +-80.9589 -49.1605 333.615 +-74.9716 -43.8361 297.483 +-87.2825 -49.201 333.89 +-81.1139 -44.1315 299.487 +-94.2015 -49.5194 336.051 +-87.8181 -44.6471 302.986 +-101.45 -49.9291 338.831 +-96.4242 -45.9782 312.02 +-107.833 -49.8581 338.349 +-101.728 -45.6428 309.743 +-114.61 -49.9356 338.876 +-108.317 -45.8594 311.213 +-122.173 -50.296 341.321 +-114.235 -45.7549 310.504 +-97.5678 -38.043 258.169 +-109.195 -41.4696 281.423 +-96.9396 -35.8764 243.466 +-98.9711 -35.7112 242.345 +-97.1251 -34.1832 231.976 +-97.0967 -33.347 226.301 +-97.0156 -32.5272 220.737 +-96.9253 -31.7366 215.372 +-97.0797 -31.0549 210.746 +-96.9486 -30.3092 205.686 +-96.7789 -29.5794 200.733 +-97.143 -29.036 197.045 +-97.3157 -28.4546 193.1 +-97.154 -27.7971 188.638 +-97.2443 -27.2328 184.808 +-97.2276 -26.6575 180.904 +-97.1972 -26.0973 177.103 +-97.4467 -25.6284 173.921 +-96.8597 -24.9578 169.37 +-97.05 -24.5055 166.3 +-97.0921 -24.0293 163.069 +-97.1877 -23.5799 160.019 +-97.1325 -23.1074 156.813 +-97.0812 -22.6491 153.702 +-97.305 -22.2665 151.106 +-97.2725 -21.8363 148.187 +-97.0857 -21.3835 145.114 +-97.2436 -21.0175 142.63 +-97.4219 -20.6647 140.236 +-97.6801 -20.337 138.012 +-97.2097 -19.8677 134.827 +-97.5724 -19.5782 132.862 +-97.432 -19.1955 130.265 +-97.5542 -18.8729 128.076 +-97.7062 -18.5629 125.973 +-97.5823 -18.2082 123.566 +-97.6103 -17.8894 121.402 +-97.1671 -17.4926 118.709 +-97.5108 -17.2446 117.026 +-97.2538 -16.8966 114.665 +-97.2873 -16.6059 112.692 +-96.9655 -16.2615 110.354 +-97.4051 -16.0501 108.92 +-97.3585 -15.7632 106.973 +-97.6903 -15.5419 105.471 +-97.4576 -15.2357 103.393 +-97.7463 -15.016 101.903 +-97.3911 -14.7023 99.7736 +-97.4264 -14.4531 98.0826 +-97.7222 -14.2462 96.6782 +-97.9293 -14.0294 95.2067 +-97.3986 -13.7118 93.0519 +-97.5629 -13.4971 91.5946 +-97.782 -13.2929 90.2091 +-97.9104 -13.0794 88.7599 +-98.0951 -12.8763 87.3816 +-98.3379 -12.6834 86.0725 +-97.8104 -12.3952 84.1169 +-98.0163 -12.204 82.8196 +-98.1303 -12.0039 81.4614 +-98.305 -11.8137 80.1707 +-97.765 -11.5414 78.3227 +-98.0608 -11.3712 77.1678 +-97.8709 -11.1473 75.6483 +-98.5345 -11.0224 74.8005 +-98.7113 -10.8439 73.5896 +-99.839 -10.77 73.0877 +-98.7001 -10.454 70.9437 +-105.102 -10.9291 74.1679 +-98.7078 -10.0759 68.3776 +-109.774 -10.9986 74.6393 +-100.894 -9.92106 67.3268 +-112.992 -10.9027 73.9885 +-108.021 -10.2266 69.4001 +-122.376 -11.3655 77.1293 +-111.603 -10.1665 68.9924 +-162.684 -14.5335 98.6276 +-116.832 -10.2339 69.4497 +-163.882 -14.0729 95.5025 +-137.265 -11.5533 78.4033 +-163.975 -13.5246 91.7815 +-161.192 -13.0257 88.3958 +-166.536 -13.1819 89.4556 +-163.522 -12.6752 86.0172 +-170.483 -12.9379 87.8 +-164.569 -12.2242 82.9562 +-176.392 -12.8209 87.006 +-166.816 -11.8611 80.4925 +-184.127 -12.8033 86.886 +-171.292 -11.6444 79.0216 +-2981.49 -198.081 1344.22 +-180.151 -11.693 79.3516 +-378.379 -23.9847 162.766 +-648.588 -40.1353 272.368 +-378.329 -22.8454 155.035 +-377.642 -22.2431 150.947 +-378.959 -21.7618 147.681 +-379.034 -21.2109 143.943 +-114.368 -6.23371 42.3035 +-112.575 -5.9733 40.5363 +-110.949 -5.72767 38.8694 +-109.207 -5.48188 37.2014 +-108.488 -5.29186 35.9119 +-108.42 -5.13561 34.8515 +-108.819 -5.00187 33.9439 +-108.541 -4.83768 32.8297 +-108.059 -4.66628 31.6665 +-109.199 -4.5648 30.9779 +-109.565 -4.4296 30.0604 +-109.439 -4.27496 29.0109 +-109.594 -4.13192 28.0402 +-109.837 -3.99234 27.093 +-110.656 -3.87287 26.2823 +-111.273 -3.74507 25.415 +-111.688 -3.60968 24.4962 +-113.465 -3.51596 23.8601 +-114.553 -3.39762 23.0571 +-120.249 -3.40754 23.1244 +-154.174 -4.16566 28.2692 +-156.191 -4.01494 27.2464 +-161.849 -3.94842 26.7949 +-159.61 -3.68535 25.0097 +-162.1 -3.53173 23.9672 +-850.244 -17.4201 118.217 +-861.764 -16.5395 112.241 +-378.855 -6.78144 46.0205 +-381.333 -6.33387 42.9832 +-895.865 -13.7268 93.1533 +-402.041 -5.64355 38.2985 +-403.359 -5.14458 34.9124 +-402.655 -4.61979 31.351 +-403.515 -4.11347 27.9151 +-403.147 -3.59463 24.3941 +-145.5 -1.11164 7.54389 +-401.717 -2.55694 17.352 +-402.455 -2.04883 13.9039 +-145.15 -0.554104 3.76028 +-144.578 -0.3679 2.49666 +-147.894 -0.188154 1.27686 +120.3 5.77316e-15 5.68434e-14 +120.295 -0.143667 1.03992 +120.282 -0.287323 2.07977 +119.959 -0.429882 3.11168 +120.127 -0.574081 4.15545 +119.786 -0.715728 5.18075 +119.736 -0.858754 6.21604 +120.076 -1.00506 7.27504 +119.708 -1.14555 8.29202 +120.228 -1.29491 9.37315 +119.842 -1.43486 10.3862 +120.244 -1.58449 11.4693 +119.939 -1.72516 12.4875 +120.719 -1.88228 13.6248 +119.503 -2.00804 14.535 +120.064 -2.16317 15.658 +120.714 -2.32171 16.8056 +120.067 -2.45568 17.7753 +120.794 -2.61823 18.9519 +120.425 -2.75787 19.9627 +120.245 -2.90158 21.0029 +120.645 -3.06004 22.1499 +120.446 -3.20401 23.192 +120.237 -3.34772 24.2322 +120.801 -3.51395 25.4355 +120.377 -3.65216 26.4359 +120.919 -3.8204 27.6538 +120.671 -3.96467 28.698 +121.287 -4.13842 29.9557 +120.05 -4.24884 30.755 +120.837 -4.43102 32.0737 +121.225 -4.60076 33.3023 +120.927 -4.74535 34.349 +120.715 -4.89347 35.4211 +120.781 -5.05345 36.5791 +121.408 -5.23865 37.9196 +121.165 -5.38768 38.9984 +121.765 -5.57559 40.3586 +121.499 -5.72525 41.4419 +121.224 -5.87471 42.5237 +121.502 -6.05201 43.8071 +117.927 -6.03394 43.6763 +115.204 -6.05193 43.8065 +111.464 -6.00871 43.4937 +108.017 -5.97243 43.2311 +105.322 -5.97027 43.2154 +102.728 -5.96749 43.1953 +100.235 -5.96444 43.1732 +97.8407 -5.96146 43.1517 +96.0919 -5.99295 43.3796 +97.0656 -6.19423 44.8366 +96.5766 -6.30403 45.6313 +96.8001 -6.46112 46.7684 +97.9953 -6.68639 48.399 +96.4069 -6.72239 48.6596 +97.1277 -6.91942 50.0858 +96.6828 -7.03514 50.9234 +96.2305 -7.15034 51.7573 +96.2956 -7.30479 52.8753 +96.6095 -7.48017 54.1447 +96.1288 -7.59526 54.9778 +96.4163 -7.77228 56.2592 +96.6028 -7.94352 57.4987 +96.7747 -8.11579 58.7456 +96.2535 -8.23105 59.5799 +96.3153 -8.39716 60.7823 +96.6148 -8.58639 62.1521 +95.9803 -8.69389 62.9302 +96.0855 -8.86942 64.2007 +96.2579 -9.05358 65.5338 +96.3323 -9.23099 66.818 +96.4727 -9.41721 68.1659 +95.7876 -9.52402 68.939 +95.8197 -9.70317 70.2358 +95.9161 -9.89136 71.598 +95.9164 -10.0722 72.9068 +96.0585 -10.2706 74.343 +96.026 -10.4531 75.6639 +96.0552 -10.6449 77.0522 +95.9901 -10.8288 78.3836 +95.9854 -11.0222 79.7835 +95.8872 -11.2075 81.1249 +95.6972 -11.3844 82.4056 +96.4655 -11.6797 84.5425 +96.3116 -11.8677 85.9034 +96.2147 -12.0654 87.335 +96.0999 -12.2639 88.7715 +95.967 -12.463 90.2125 +95.8161 -12.6627 91.658 +96.2888 -12.9493 93.7325 +95.9544 -13.1315 95.0516 +95.7442 -13.3334 96.5133 +96.1407 -13.6245 98.6199 +95.9566 -13.838 100.166 +95.6162 -14.0322 101.571 +95.3258 -14.2367 103.051 +95.6857 -14.5432 105.27 +95.2848 -14.7389 106.687 +95.5878 -15.0483 108.926 +95.6637 -15.3285 110.954 +95.5182 -15.5784 112.763 +95.1573 -15.7975 114.349 +95.342 -16.1126 116.63 +95.2447 -16.3865 118.612 +94.6272 -16.575 119.977 +95.0885 -16.9589 122.756 +95.2673 -17.3013 125.235 +94.9337 -17.5575 127.089 +95.5151 -17.9912 130.228 +95.003 -18.2271 131.936 +94.7548 -18.5193 134.051 +94.5898 -18.8347 136.334 +94.6154 -19.1966 138.953 +94.9884 -19.6398 142.162 +94.6583 -19.9476 144.39 +94.511 -20.3023 146.957 +94.7496 -20.7509 150.204 +94.8335 -21.1783 153.298 +94.561 -21.5371 155.895 +94.6052 -21.9795 159.097 +94.65 -22.4353 162.397 +94.4961 -22.8571 165.45 +94.3924 -23.3042 168.686 +94.1911 -23.7407 171.846 +94.7863 -24.3961 176.59 +94.4738 -24.8361 179.775 +94.7024 -25.4358 184.115 +94.5939 -25.9643 187.941 +94.5128 -26.5191 191.957 +93.9806 -26.9644 195.18 +94.4129 -27.7082 200.564 +94.2183 -28.2931 204.798 +94.2002 -28.9546 209.586 +94.2244 -29.6559 214.662 +94.3616 -30.4224 220.21 +94.1784 -31.1155 225.228 +94.5132 -32.0134 231.727 +94.484 -32.8255 237.605 +94.2508 -33.6014 243.222 +94.1007 -34.4433 249.316 +93.9529 -35.326 255.705 +93.8665 -36.2754 262.577 +93.666 -37.2272 269.467 +93.9222 -38.4148 278.063 +93.5703 -39.4105 285.271 +93.5195 -40.591 293.815 +93.3835 -41.8005 302.57 +93.4694 -43.1832 312.579 +93.1654 -44.4639 321.849 +93.3731 -46.0768 333.524 +93.2007 -47.6011 344.557 +93.2666 -49.3535 357.242 +96.1156 -52.756 381.871 +107.502 -61.2788 443.563 +103.455 -61.325 443.897 +99.454 -61.3927 444.387 +95.3067 -61.3619 444.164 +92.5466 -62.2512 450.601 +92.6568 -65.2341 472.193 +92.6485 -68.4103 495.184 +92.3808 -71.699 518.989 +90.6441 -74.1281 536.572 +91.4985 -79.059 572.264 +83.2463 -76.2282 551.773 +84.3946 -82.1792 594.849 +69.962 -72.7248 526.414 +71.4642 -79.6516 576.553 +61.5825 -73.9687 535.418 +61.3164 -79.8374 577.898 +51.9772 -73.8729 534.724 +51.1866 -80.0671 579.56 +41.9756 -72.9899 528.333 +40.9122 -80.0679 579.566 +32.6793 -73.1201 529.275 +30.7892 -80.3995 581.967 +23.3276 -73.1186 529.264 +20.5384 -80.4881 582.609 +14.2115 -74.2713 537.608 +10.2864 -80.648 583.766 +4.71757 -73.9791 535.493 +2.86438e-14 -80.8382 585.142 +-4.7612 -74.6633 540.446 +-10.2864 -80.648 583.766 +-14.4444 -75.4888 546.421 +-20.6675 -80.9941 586.271 +-24.1913 -75.8256 548.859 +-31.4853 -82.2171 595.124 +-34.1078 -76.3164 552.411 +-42.4538 -83.0849 601.405 +-43.8351 -76.2233 551.738 +-53.1563 -83.1481 601.863 +-54.1337 -76.9379 556.911 +-63.4592 -82.6274 598.093 +-63.7221 -76.5386 554.02 +-75.364 -83.9983 608.016 +-74.2564 -77.1888 558.726 +-87.2059 -84.9167 614.664 +-84.7244 -77.5817 561.57 +-101.229 -87.4663 633.12 +-97.2626 -79.5406 575.75 +-112.732 -87.4943 633.322 +-107.665 -79.498 575.442 +-122.27 -86.0833 623.109 +-117.547 -79.0679 572.328 +-135.621 -87.3176 632.043 +-131.227 -81.0063 586.359 +-142.506 -84.4734 611.456 +-140.698 -80.2014 580.533 +-143.29 -78.6494 569.299 +-142.717 -75.5207 546.652 +-142.402 -72.73 526.452 +-142.492 -70.3154 508.974 +-97.4654 -46.5161 336.704 +-97.5877 -45.0857 326.35 +-97.2136 -43.5148 314.979 +-97.3986 -42.2747 306.003 +-97.124 -40.9073 296.105 +-97 -39.6737 287.175 +-97.117 -38.5987 279.394 +-97.1044 -37.5266 271.634 +-97.4415 -36.6376 265.199 +-97.0775 -35.533 257.203 +-97.4402 -34.7385 251.453 +-97.416 -33.8441 244.978 +-97.3977 -32.9905 238.8 +-97.2016 -32.1143 232.457 +-97.4483 -31.4176 227.414 +-97.4543 -30.6724 222.02 +-97.1694 -29.8673 216.193 +-97.287 -29.2147 211.469 +-97.4135 -28.5888 206.939 +-97.3816 -27.9403 202.244 +-97.2307 -27.2818 197.477 +-97.405 -26.7359 193.526 +-97.1086 -26.082 188.793 +-97.2443 -25.5644 185.046 +-97.2745 -25.0366 181.226 +-97.1972 -24.4985 177.331 +-97.5437 -24.0822 174.317 +-97.3029 -23.536 170.364 +-97.5 -23.1108 167.286 +-97.1428 -22.569 163.364 +-97.6512 -22.241 160.99 +-97.1325 -21.6918 157.015 +-97.0812 -21.2615 153.9 +-97.4124 -20.9256 151.468 +-97.327 -20.5099 148.46 +-97.5825 -20.1762 146.044 +-97.7469 -19.832 143.553 +-97.4785 -19.4099 140.498 +-97.508 -19.0574 137.946 +-97.2677 -18.6616 135.081 +-98.5128 -18.5558 134.315 +-97.6104 -18.0525 130.672 +-99.3597 -18.0446 130.614 +-97.9497 -17.4692 126.45 +-100.907 -17.6751 127.94 +-99.2288 -17.072 123.574 +-105.789 -17.878 129.409 +-100.182 -16.6317 120.388 +-109.595 -17.8743 129.382 +-103.132 -16.5251 119.616 +-113.039 -17.7956 128.813 +-107.808 -16.676 120.709 +-119.44 -18.1535 131.403 +-111.675 -16.6784 120.725 +-165.589 -24.3011 175.902 +-117.846 -16.9948 123.016 +-163.731 -23.2029 167.953 +-128.547 -17.9016 129.579 +-165.675 -22.6729 164.116 +-165.403 -22.244 161.012 +-166.383 -21.9885 159.162 +-163.935 -21.2897 154.104 +-171.502 -21.8865 158.424 +-165.371 -20.7378 150.109 +-176.868 -21.794 157.755 +-167.541 -20.2852 146.833 +-142.64 -16.9689 122.828 +-141.816 -16.5757 119.982 +-142.025 -16.309 118.052 +-142.442 -16.0691 116.315 +-141.674 -15.7003 113.646 +-142.2 -15.4794 112.047 +-143.26 -15.3174 110.874 +-147.326 -15.4707 111.983 +-154.776 -15.9613 115.535 +-155.386 -15.7351 113.897 +-156.626 -15.573 112.724 +-158.508 -15.4728 111.999 +-159.98 -15.33 110.965 +-381.9 -35.9198 260.004 +-378.87 -34.9726 253.147 +-379.835 -34.4054 249.042 +-377.821 -33.5779 243.052 +-380.707 -33.1916 240.255 +-377.805 -32.3078 233.858 +-380.363 -31.8983 230.894 +-378.268 -31.1044 225.148 +-379.72 -30.6099 221.568 +-379.233 -29.9636 216.89 +-380.258 -29.4422 213.116 +-379.41 -28.7812 208.331 +-378.419 -28.1182 203.532 +-380.021 -27.6524 200.16 +-380.528 -27.1089 196.226 +-379.034 -26.4299 191.311 +-379.363 -25.8845 187.363 +-379.74 -25.3465 183.469 +-378.905 -24.733 179.029 +-379.29 -24.2044 175.202 +-378.635 -23.6143 170.931 +-378.025 -23.0332 166.724 +-380.397 -22.6354 163.845 +-378.696 -21.9985 159.235 +-378.883 -21.4772 155.461 +-378.847 -20.947 151.624 +-379.331 -20.4488 148.017 +-379.314 -19.9263 144.235 +-113.993 -5.83264 42.2192 +-113.797 -5.6682 41.0289 +-110.289 -5.34479 38.6879 +-109.869 -5.17723 37.4751 +-109.152 -4.99806 36.1782 +-108.135 -4.80831 34.8046 +-108.628 -4.68722 33.9282 +-107.776 -4.5093 32.6403 +-108.538 -4.39985 31.848 +-108.623 -4.26252 30.854 +-108.794 -4.12898 29.8873 +-110.116 -4.03786 29.2278 +-109.401 -3.87193 28.0267 +-109.352 -3.7312 27.0081 +-110.072 -3.61644 26.1774 +-110.591 -3.49408 25.2917 +-111.786 -3.3915 24.5491 +-112.976 -3.28633 23.7879 +-115.043 -3.20312 23.1856 +-117.108 -3.11522 22.5493 +-127.921 -3.24459 23.4857 +-158.849 -3.83314 27.746 +-159.186 -3.64555 26.3881 +-159.215 -3.45101 24.9799 +-162.792 -3.32952 24.1005 +-849.452 -16.3377 118.26 +-861.169 -15.5155 112.308 +-379.947 -6.38434 46.2127 +-380.24 -5.92881 42.9153 +-3258.55 -46.87 339.266 +-403.335 -5.31486 38.4713 +-402.961 -4.82463 34.9228 +-402.655 -4.33677 31.3915 +-402.218 -3.84906 27.8612 +-403.346 -3.37609 24.4376 +-146.998 -1.05428 7.63137 +-403.016 -2.40805 17.4305 +-404.154 -1.93144 13.9806 +-144.45 -0.517651 3.74698 +-145.578 -0.347749 2.51716 +-145.994 -0.174358 1.26208 +119.4 4.88498e-15 0 +119.395 -0.133275 1.03339 +119.382 -0.26654 2.0667 +119.959 -0.401793 3.11543 +119.927 -0.535677 4.15354 +120.485 -0.672867 5.21729 +120.035 -0.80465 6.23911 +120.076 -0.939384 7.28381 +119.708 -1.0707 8.30202 +120.228 -1.2103 9.38445 +119.842 -1.3411 10.3987 +120.144 -1.47973 11.4736 +119.939 -1.61244 12.5026 +119.825 -1.74626 13.5402 +120.297 -1.8893 14.6493 +120.064 -2.02183 15.6769 +120.714 -2.17001 16.8258 +120.067 -2.29522 17.7967 +119.905 -2.42914 18.8351 +120.524 -2.57978 20.0031 +120.245 -2.71199 21.0282 +120.449 -2.85544 22.1405 +120.249 -2.98977 23.1821 +120.041 -3.12388 24.222 +120.019 -3.26307 25.3013 +120.377 -3.41352 26.4678 +120.14 -3.54776 27.5087 +120.671 -3.70561 28.7326 +120.414 -3.84016 29.7759 +120.147 -3.97443 30.817 +120.837 -4.14149 32.1123 +120.55 -4.2762 33.1569 +120.927 -4.43528 34.3904 +120.62 -4.57009 35.4356 +120.877 -4.72699 36.6522 +121.408 -4.89635 37.9654 +121.165 -5.03564 39.0454 +121.575 -5.20316 40.3444 +121.405 -5.347 41.4596 +121.224 -5.49084 42.575 +121.408 -5.65219 43.826 +118.395 -5.66206 43.9026 +114.364 -5.61523 43.5395 +111.464 -5.61609 43.5461 +108.851 -5.6253 43.6176 +105.322 -5.58016 43.2676 +102.636 -5.57256 43.2086 +100.326 -5.5798 43.2648 +97.8407 -5.57192 43.2037 +96.2739 -5.61196 43.5141 +97.0656 -5.78949 44.8906 +97.389 -5.94166 46.0705 +96.6204 -6.02772 46.7378 +97.9058 -6.24377 48.413 +96.6742 -6.30056 48.8534 +97.1277 -6.46729 50.1462 +96.5945 -6.56945 50.9383 +96.9335 -6.73195 52.1983 +96.4706 -6.83989 53.0353 +96.6095 -6.9914 54.21 +96.1288 -7.09897 55.0441 +96.4163 -7.26442 56.327 +96.517 -7.41789 57.5169 +96.0073 -7.52533 58.35 +96.1687 -7.68643 59.5992 +96.3996 -7.85534 60.9088 +96.6148 -8.02534 62.227 +96.7308 -8.18936 63.4988 +96.1684 -8.29702 64.3336 +96.2579 -8.462 65.6128 +96.3323 -8.62782 66.8985 +96.4727 -8.80187 68.2481 +96.5966 -8.97689 69.6051 +95.9001 -9.07676 70.3795 +95.996 -9.25273 71.744 +95.9958 -9.42182 73.055 +95.9797 -9.59162 74.3716 +96.026 -9.77004 75.7551 +96.0552 -9.9493 77.1451 +96.0673 -10.1294 78.5412 +95.8322 -10.2855 79.7522 +95.9632 -10.4835 81.2871 +95.8481 -10.6573 82.6351 +96.4655 -10.9165 84.6445 +96.3116 -11.0922 86.007 +96.2147 -11.2771 87.4403 +96.0999 -11.4625 88.8785 +95.967 -11.6486 90.3212 +95.8161 -11.8353 91.7685 +96.1462 -12.0852 93.7065 +95.9544 -12.2735 95.1662 +95.8844 -12.4805 96.7712 +95.585 -12.6606 98.1682 +95.8878 -12.9246 100.215 +95.6844 -13.1247 101.766 +95.3933 -13.3159 103.249 +95.7526 -13.6024 105.47 +95.8149 -13.8525 107.409 +95.5222 -14.0555 108.983 +95.6637 -14.3269 111.088 +95.004 -14.482 112.291 +95.1573 -14.7652 114.487 +95.6567 -15.1094 117.156 +95.2447 -15.3157 118.755 +95.2428 -15.5928 120.904 +95.0885 -15.8508 122.904 +95.147 -16.1504 125.227 +94.9337 -16.4103 127.242 +95.1037 -16.7432 129.824 +94.9449 -17.0258 132.015 +94.8695 -17.3302 134.375 +94.6465 -17.6145 136.58 +94.3918 -17.8999 138.792 +94.7676 -18.3138 142.002 +94.7672 -18.6657 144.73 +94.4573 -18.9649 147.05 +94.5906 -19.3625 150.134 +94.311 -19.6855 152.638 +94.5095 -20.1189 155.998 +94.6559 -20.5543 159.374 +94.55 -20.9471 162.42 +94.4961 -21.3636 165.649 +94.344 -21.7703 168.803 +94.6206 -22.2906 172.838 +94.9741 -22.8472 177.153 +94.5661 -23.236 180.168 +94.7478 -23.7851 184.426 +94.5493 -24.2564 188.079 +94.5567 -24.7978 192.278 +94.2819 -25.2833 196.042 +94.4129 -25.8977 200.806 +94.1354 -26.4211 204.864 +94.2002 -27.0627 209.839 +94.2244 -27.7181 214.921 +94.3616 -28.4345 220.476 +94.5228 -29.1887 226.324 +94.2136 -29.8268 231.272 +94.5207 -30.6925 237.984 +94.2508 -31.4058 243.515 +94.1708 -32.2167 249.802 +93.9529 -33.0178 256.014 +93.8331 -33.893 262.8 +93.8287 -34.8551 270.26 +93.8904 -35.8925 278.304 +93.2304 -36.7016 284.577 +93.4894 -37.9265 294.075 +93.442 -39.0936 303.124 +93.3274 -40.3002 312.48 +93.3032 -41.6201 322.714 +93.2127 -42.9921 333.353 +93.356 -44.5648 345.547 +93.2165 -46.1038 357.48 +96.3333 -49.4206 383.198 +107.548 -57.2997 444.291 +103.545 -57.3677 444.819 +99.3025 -57.2938 444.246 +95.1404 -57.2522 443.923 +92.6064 -58.2212 451.436 +92.1226 -60.6201 470.037 +92.5574 -63.8773 495.293 +92.1551 -66.8502 518.344 +92.5092 -70.71 548.272 +92.2963 -74.5374 577.949 +91.494 -78.3063 607.172 +91.8821 -83.624 648.405 +85.2597 -82.8357 642.292 +87.1731 -90.8116 704.136 +72.3935 -81.2722 630.17 +72.7832 -88.5755 686.798 +61.5905 -81.8162 634.388 +61.2356 -89.5271 694.177 +50.5747 -82.1962 637.334 +48.9202 -89.4844 693.845 +39.3397 -82.2711 637.915 +36.9963 -90.2952 700.132 +28.0996 -82.3208 638.3 +114.341 -418.814 3247.4 +16.7297 -81.7189 633.633 +12.3738 -90.6739 703.069 +5.60244 -82.1148 636.703 +3.4639e-14 -90.9947 705.556 +-5.626 -82.46 639.38 +-12.3249 -90.3158 700.292 +-16.9836 -82.9592 643.25 +-25.0613 -91.7958 711.768 +-28.2697 -82.8192 642.164 +-37.5144 -91.5598 709.938 +-39.8586 -83.3562 646.329 +-51.0129 -93.3123 723.527 +-51.9792 -84.4788 655.033 +-63.6411 -93.044 721.446 +-63.9387 -84.9355 658.575 +-78.3127 -95.3048 738.976 +-76.7744 -86.1905 668.305 +-91.1461 -94.9503 736.227 +-88.8753 -86.3484 669.53 +-105.354 -95.8851 743.475 +-103.156 -88.2874 684.564 +-111.413 -89.9756 697.654 +-115.83 -88.5357 686.489 +-123.603 -89.6627 695.228 +-128.494 -88.6787 687.598 +-139.348 -91.6959 710.993 +-138.521 -87.0874 675.259 +-140.964 -84.8275 657.737 +-140.339 -80.9705 627.83 +-142.799 -79.1158 613.449 +-143.265 -76.329 591.841 +-143.581 -73.6593 571.141 +-143.217 -70.8337 549.231 +-142.48 -68.0148 527.374 +-142.652 -65.7948 510.161 +-97.5481 -43.5136 337.397 +-97.3889 -42.0539 326.078 +-97.2136 -40.6715 315.359 +-97.158 -39.4148 305.615 +-97.1549 -38.2464 296.556 +-97 -37.0813 287.522 +-97.0519 -36.0524 279.544 +-97.071 -35.0625 271.868 +-97.3389 -34.2077 265.24 +-97.2876 -33.283 258.071 +-97.4402 -32.4686 251.756 +-97.2328 -31.5732 244.812 +-97.3977 -30.8349 239.088 +-97.4695 -30.0986 233.379 +-97.5656 -29.4 227.962 +-97.0555 -28.5509 221.379 +-97.2101 -27.9274 216.544 +-97.0382 -27.2359 211.182 +-97.4135 -26.7208 207.188 +-97.3816 -26.1146 202.488 +-97.5814 -25.5911 198.429 +-97.405 -24.9889 193.759 +-97.608 -24.5031 189.992 +-97.2904 -23.9054 185.358 +-96.852 -23.2989 180.656 +-97.1495 -22.8864 177.457 +-97.0589 -22.3968 173.661 +-97.3521 -22.0092 170.656 +-97.45 -21.5896 167.402 +-97.1428 -21.0943 163.561 +-97.8572 -20.8316 161.524 +-97.1325 -20.2744 157.204 +-98.565 -20.176 156.441 +-97.7885 -19.6337 152.236 +-99.8868 -19.674 152.549 +-98.1896 -18.9751 147.129 +-102.556 -19.448 150.796 +-99.1777 -18.4578 143.119 +-107.374 -19.6143 152.085 +-100.636 -18.0462 139.927 +-111.503 -19.6304 152.21 +-103.975 -17.9731 139.36 +-117.896 -20.0118 155.168 +-109.09 -18.1847 141.001 +-128.981 -21.1163 163.732 +-112.302 -18.0586 140.023 +-166.141 -26.2428 203.482 +-119.646 -18.5652 143.951 +-2106.09 -321.045 2489.32 +-161.648 -24.2088 187.71 +-472.887 -69.5821 539.527 +-2171.07 -313.883 2433.79 +-478.696 -68.0025 527.279 +-169.1 -23.6045 183.025 +-484.56 -66.4652 515.359 +-168.922 -22.7688 176.545 +-490.846 -65.0145 504.111 +-2296.53 -298.92 2317.77 +-495.965 -63.4386 491.891 +-498.491 -62.6583 485.841 +-501.308 -61.9218 480.13 +-538.373 -65.3485 506.7 +-510.265 -60.8631 471.921 +-520.37 -60.9913 472.915 +-2434.91 -280.43 2174.4 +-516.854 -58.4896 453.518 +-139.848 -15.5497 120.569 +-141.283 -15.4344 119.676 +-141.335 -15.1693 117.62 +-141.902 -14.9622 116.014 +-140.974 -14.602 113.221 +-142.122 -14.46 112.12 +-143.891 -14.3796 111.497 +-146.374 -14.3663 111.393 +-154.776 -14.9183 115.674 +-156.029 -14.7678 114.507 +-156.626 -14.5554 112.86 +-158.02 -14.4172 111.788 +-159.489 -14.2843 110.758 +-380.911 -33.4858 259.643 +-378.953 -32.6945 253.507 +-382.003 -32.3409 250.765 +-380.673 -31.6207 245.181 +-379.948 -30.9608 240.065 +-380.35 -30.4001 235.717 +-378.316 -29.6536 229.929 +-379.382 -29.1577 226.084 +-379.461 -28.5903 221.684 +-380.099 -28.0697 217.647 +-378.779 -27.4114 212.543 +-379.585 -26.913 208.679 +-379.034 -26.3236 204.109 +-378.608 -25.7493 199.655 +-378.488 -25.2017 195.41 +-378.856 -24.6912 191.451 +-380.168 -24.2446 187.988 +-378.302 -23.6006 182.994 +-378.635 -23.1003 179.116 +-380.468 -22.693 175.958 +-379.09 -22.0978 171.342 +-378.939 -21.5801 167.328 +-379.479 -21.1053 163.647 +-378.788 -20.566 159.465 +-379.714 -20.118 155.991 +-378.847 -19.5783 151.807 +-378.029 -19.0469 147.686 +-380.341 -18.6746 144.8 +-113.899 -5.44705 42.2354 +-113.139 -5.26721 40.8409 +-111.043 -5.0297 38.9994 +-109.775 -4.83478 37.488 +-108.488 -4.64307 36.0015 +-108.991 -4.52969 35.1224 +-107.675 -4.34249 33.6708 +-108.541 -4.24457 32.9116 +-108.634 -4.11598 31.9146 +-108.334 -3.97342 30.8091 +-109.758 -3.89337 30.1885 +-110.116 -3.77402 29.263 +-109.691 -3.62855 28.1351 +-109.449 -3.49049 27.0646 +-110.267 -3.38611 26.2552 +-111.565 -3.29455 25.5453 +-111.786 -3.16989 24.5787 +-112.976 -3.07159 23.8165 +-114.259 -2.97342 23.0554 +-117.992 -2.93363 22.7468 +-127.725 -3.02792 23.478 +-157.569 -3.5538 27.5555 +-159.384 -3.41156 26.4526 +-160.894 -3.25954 25.2739 +-162.396 -3.1044 24.0709 +-849.155 -15.2648 118.361 +-861.466 -14.5067 112.482 +-379.053 -5.95315 46.1596 +-380.339 -5.54285 42.9782 +-896.064 -12.0465 93.4065 +-405.027 -4.98841 38.6793 +-403.658 -4.51718 35.0254 +-403.851 -4.06545 31.5227 +-403.614 -3.61005 27.9917 +-403.646 -3.15783 24.4852 +-145.101 -0.972675 7.54195 +-402.017 -2.24512 17.4082 +-403.254 -1.80121 13.9662 +-144.55 -0.484161 3.7541 +-144.578 -0.322795 2.50289 +-145.694 -0.162632 1.26102 +119.5 2.66454e-15 -1.13687e-13 +119.495 -0.124052 1.03542 +119.482 -0.248095 2.07075 +119.959 -0.373676 3.11892 +120.227 -0.499437 4.1686 +120.485 -0.625781 5.22315 +120.135 -0.748965 6.25131 +120.076 -0.873648 7.29199 +120.506 -1.00241 8.36674 +120.228 -1.12561 9.39498 +120.141 -1.25037 10.4364 +120.045 -1.37504 11.4769 +120.138 -1.50209 12.5373 +120.818 -1.63752 13.6678 +120.396 -1.75854 14.6778 +120.956 -1.89432 15.8111 +120.813 -2.01981 16.8585 +120.957 -2.15043 17.9487 +120.893 -2.27777 19.0116 +120.524 -2.39925 20.0256 +120.344 -2.52428 21.0691 +120.645 -2.65995 22.2015 +120.446 -2.78509 23.2461 +121.021 -2.92898 24.4471 +120.801 -3.05451 25.4948 +120.377 -3.17465 26.4975 +120.335 -3.30485 27.5842 +119.796 -3.42131 28.5563 +121.384 -3.60021 30.0495 +121.018 -3.7231 31.0753 +121.031 -3.85782 32.1997 +121.225 -3.99922 33.3799 +121.215 -4.13475 34.5111 +120.62 -4.25028 35.4754 +121.164 -4.40664 36.7805 +121.408 -4.55371 38.008 +121.165 -4.68325 39.0893 +121.575 -4.83905 40.3897 +121.405 -4.97282 41.5062 +121.412 -5.11454 42.689 +121.502 -5.26073 43.9092 +118.114 -5.25335 43.8476 +114.457 -5.22655 43.6239 +111.464 -5.22309 43.595 +108.11 -5.196 43.3689 +105.322 -5.18967 43.3161 +102.084 -5.15472 43.0244 +100.235 -5.1846 43.2738 +97.2012 -5.14814 42.9695 +96.4559 -5.22912 43.6454 +97.0656 -5.38435 44.941 +96.6669 -5.4849 45.7803 +97.609 -5.66327 47.2691 +97.5478 -5.78562 48.2902 +96.7633 -5.86506 48.9533 +96.3294 -5.96528 49.7898 +96.6828 -6.11531 51.0421 +96.9335 -6.26086 52.2569 +96.558 -6.36702 53.1429 +96.6095 -6.50215 54.2709 +97.0814 -6.66763 55.652 +96.3301 -6.75004 56.3399 +96.7742 -6.91718 57.7349 +96.7747 -7.05467 58.8825 +96.3383 -7.16116 59.7713 +96.3996 -7.30564 60.9772 +96.6148 -7.46374 62.2969 +96.0636 -7.56375 63.1316 +96.2513 -7.72306 64.4613 +96.2579 -7.86984 65.6864 +95.7589 -7.9763 66.575 +96.4727 -8.18593 68.3247 +95.9494 -8.29275 69.2163 +95.9001 -8.44158 70.4585 +95.996 -8.60525 71.8245 +95.9958 -8.7625 73.1371 +96.1373 -8.93506 74.5774 +96.026 -9.08635 75.8401 +96.0552 -9.25307 77.2317 +95.9901 -9.41296 78.5662 +96.062 -9.58872 80.0332 +95.8872 -9.74216 81.3139 +95.9236 -9.91937 82.793 +96.4655 -10.1526 84.7395 +96.3859 -10.324 86.17 +96.2147 -10.4879 87.5385 +96.173 -10.6685 89.046 +95.967 -10.8335 90.4226 +95.888 -11.0153 91.9405 +96.1462 -11.2395 93.8117 +96.0958 -11.4314 95.4134 +95.7442 -11.5901 96.7382 +95.585 -11.7747 98.2784 +95.8878 -12.0202 100.328 +95.8208 -12.2236 102.025 +95.3933 -12.3841 103.365 +95.6857 -12.6417 105.515 +95.2848 -12.8118 106.935 +95.5222 -13.0719 109.106 +95.6637 -13.3243 111.213 +95.0683 -13.4778 112.493 +95.0937 -13.7228 114.539 +95.2791 -13.9967 116.825 +95.307 -14.2533 118.966 +95.366 -14.5204 121.196 +95.2712 -14.7699 123.278 +95.3275 -15.0487 125.606 +95.0527 -15.2809 127.544 +95.2212 -15.5908 130.13 +94.8869 -15.8246 132.081 +94.8695 -16.1175 134.526 +94.7598 -16.4015 136.897 +94.951 -16.7459 139.771 +94.9332 -17.062 142.41 +94.6583 -17.3395 144.726 +94.4573 -17.6377 147.215 +94.6966 -18.0277 150.47 +94.8335 -18.4093 153.655 +94.5095 -18.711 156.173 +94.5036 -19.0851 159.296 +94.65 -19.5019 162.775 +94.4468 -19.8582 165.749 +94.3924 -20.2572 169.079 +94.6206 -20.7308 173.032 +94.5516 -21.1539 176.563 +94.5661 -21.61 180.37 +94.3846 -22.0359 183.925 +94.5939 -22.5695 188.379 +94.6005 -23.0732 192.583 +94.325 -23.5248 196.352 +94.4974 -24.1069 201.211 +94.5086 -24.6696 205.907 +94.2816 -25.1907 210.256 +94.1845 -25.7676 215.072 +94.4006 -26.4557 220.815 +94.2167 -27.0582 225.844 +94.251 -27.7505 231.623 +94.3741 -28.5004 237.882 +94.3941 -29.2525 244.159 +94.1007 -29.94 249.897 +94.0897 -30.7518 256.673 +93.8999 -31.5436 263.282 +93.6008 -32.3373 269.907 +93.7001 -33.3131 278.051 +93.4467 -34.2124 285.557 +93.3391 -35.2158 293.932 +93.4128 -36.3465 303.369 +93.299 -37.4686 312.735 +93.4686 -38.7762 323.649 +93.3196 -40.0295 334.111 +93.3819 -41.4578 346.031 +93.2415 -42.8891 357.978 +96.164 -45.8815 382.954 +107.478 -53.2552 444.5 +103.702 -53.4344 445.995 +99.2809 -53.2728 444.647 +95.1196 -53.2343 444.325 +92.407 -54.0304 450.97 +92.3134 -56.4947 471.539 +92.3752 -59.2904 494.873 +91.9988 -62.0667 518.046 +92.1461 -65.5037 546.733 +92.046 -69.1335 577.029 +92.0261 -73.25 611.389 +91.6177 -77.5482 647.264 +91.8904 -83.0303 693.021 +91.6701 -88.8136 741.292 +89.7135 -93.6687 781.815 +86.7377 -98.171 819.394 +314.019 -387.95 3238.06 +285.548 -388.26 3240.65 +59.9663 -90.6397 756.534 +228.543 -388.795 3245.11 +46.0062 -89.4799 746.853 +171.468 -389.21 3248.58 +33.0199 -89.966 750.91 +114.355 -389.553 3251.45 +85.7635 -389.611 3251.92 +14.4157 -98.2448 820.01 +6.73339 -91.7849 766.092 +1.4333e-13 -389.744 3253.04 +-6.79972 -92.6889 773.637 +-57.1793 -389.684 3252.54 +-20.4861 -93.0651 776.777 +-114.341 -389.506 3251.05 +-34.3895 -93.6977 782.057 +-171.468 -389.21 3248.58 +-48.0391 -93.4338 779.855 +-60.7928 -103.42 863.204 +-61.8807 -93.5334 780.686 +-285.548 -388.26 3240.65 +-77.2996 -95.4984 797.087 +-342.467 -387.609 3235.21 +-91.8644 -95.9144 800.559 +-399.281 -386.839 3228.79 +-108.441 -97.9852 817.843 +-123.989 -104.949 875.965 +-122.224 -97.2863 812.01 +-111.632 -83.8436 699.809 +-117.332 -83.4078 696.171 +-123.707 -83.4586 696.595 +-139.957 -89.8303 749.778 +-140.779 -86.1551 719.102 +-140.873 -82.3687 687.498 +-141.255 -79.0542 659.834 +-140.794 -75.5483 630.571 +-142.844 -73.6026 614.332 +-143.476 -71.0919 593.375 +-143.774 -68.5971 572.552 +-143.593 -66.0497 551.29 +-142.609 -63.3127 528.446 +-142.652 -61.1906 510.733 +-97.5756 -40.48 337.871 +-97.6445 -39.2137 327.301 +-97.506 -37.9392 316.663 +-97.3986 -36.7474 306.716 +-97.1858 -35.5813 296.983 +-97.2221 -34.5653 288.503 +-97.1821 -33.5745 280.233 +-97.1044 -32.6201 272.267 +-97.2363 -31.7804 265.258 +-97.3577 -30.9762 258.546 +-97.5119 -30.2187 252.223 +-97.3427 -29.3969 245.364 +-97.5101 -28.7102 239.632 +-97.5077 -28.0034 233.733 +-97.5265 -27.3317 228.127 +-97.0954 -26.5639 221.718 +-97.2914 -25.9948 216.968 +-97.4114 -25.4274 212.232 +-97.498 -24.8724 207.6 +-97.683 -24.3623 203.343 +-97.6253 -23.8109 198.74 +-97.405 -23.2402 193.977 +-97.4718 -22.7566 189.941 +-97.6137 -22.3064 186.183 +-98.589 -22.0572 184.102 +-97.4835 -21.3581 178.267 +-99.0466 -21.2561 177.416 +-98.2877 -20.6658 172.489 +-100.55 -20.7176 172.921 +-98.767 -19.9461 166.482 +-105.222 -20.8319 173.876 +-100.476 -19.5048 162.799 +-110.064 -20.9534 174.889 +-104.666 -19.5441 163.126 +-115.191 -21.1007 176.119 +-109.891 -19.7503 164.848 +-123.973 -21.8643 182.493 +-112.771 -19.5192 162.919 +-164.444 -27.9375 233.183 +-122.122 -20.3667 169.992 +-166.755 -27.3031 227.888 +-1948.94 -313.318 2615.14 +-450.94 -71.1869 594.169 +-1994.61 -309.223 2580.96 +-469.627 -71.5054 596.827 +-462.777 -69.209 577.66 +-465.194 -68.3376 570.387 +-464.21 -66.9894 559.133 +-467.564 -66.2862 553.264 +-470.655 -65.554 547.153 +-473.281 -64.7666 540.581 +-476.026 -64.0056 534.229 +-479.365 -63.3322 528.609 +-482.169 -62.5954 522.459 +-484.696 -61.8314 516.082 +-487.63 -61.1274 510.206 +-490.568 -60.4307 504.391 +-493.51 -59.741 498.634 +-496.46 -59.0581 492.935 +-498.776 -58.307 486.666 +-501.452 -57.6052 480.807 +-539.751 -60.9312 508.568 +-384.546 -42.6579 356.049 +-382.352 -41.6784 347.873 +-380.267 -40.7307 339.963 +-379.87 -39.9797 333.695 +-139.999 -14.4771 120.835 +-141.131 -14.339 119.682 +-141.335 -14.1078 117.752 +-142.673 -13.9908 116.776 +-140.974 -13.5802 113.348 +-142.513 -13.4851 112.555 +-143.891 -13.3733 111.622 +-145.977 -13.3248 111.217 +-154.935 -13.8886 115.923 +-155.868 -13.7202 114.517 +-156.949 -13.5648 113.22 +-158.02 -13.4083 111.914 +-159.735 -13.3052 111.053 +-379.593 -31.0347 259.034 +-381.523 -30.6129 255.514 +-381.086 -30.0055 250.444 +-380.337 -29.382 245.24 +-381.044 -28.8774 241.028 +-380.604 -28.2917 236.139 +-380.278 -27.7214 231.379 +-380.925 -27.2276 227.258 +-378.083 -26.493 221.127 +-378.193 -25.9746 216.8 +-379.301 -25.5283 213.074 +-380.547 -25.0932 209.443 +-378.77 -24.4644 204.195 +-377.548 -23.8804 199.321 +-377.778 -23.3943 195.263 +-377.965 -22.9094 191.216 +-379.094 -22.4842 187.667 +-379.651 -22.0273 183.853 +-378.905 -21.4993 179.446 +-378.927 -21.0196 175.442 +-378.635 -20.5268 171.329 +-378.573 -20.0507 167.355 +-378.379 -19.5715 163.356 +-379.708 -19.1734 160.033 +-379.253 -18.6874 155.977 +-378.106 -18.1727 151.68 +-378.773 -17.749 148.144 +-378.66 -17.2911 144.322 +-379.165 -16.864 140.757 +-112.387 -4.86607 40.6151 +-111.137 -4.68171 39.0763 +-109.775 -4.49645 37.5301 +-108.393 -4.31438 36.0104 +-108.325 -4.18698 34.9471 +-108.628 -4.07438 34.0072 +-108.827 -3.95798 33.0356 +-108.634 -3.82795 31.9504 +-108.142 -3.68881 30.789 +-108.987 -3.59549 30.0101 +-109.729 -3.49759 29.193 +-108.626 -3.34185 27.8931 +-109.449 -3.24624 27.095 +-110.364 -3.15193 26.3079 +-110.786 -3.04259 25.3953 +-111.884 -2.95065 24.6279 +-113.856 -2.8789 24.0291 +-114.259 -2.76535 23.0812 +-117.403 -2.71473 22.6588 +-128.02 -2.82254 23.5586 +-157.766 -3.30924 27.6209 +-158.102 -3.1473 26.2692 +-160.993 -3.0333 25.3177 +-161.012 -2.86255 23.8925 +-850.244 -14.2148 118.645 +-860.574 -13.4776 112.493 +-380.145 -5.55251 46.3446 +-380.637 -5.15902 43.0603 +-895.865 -11.201 93.4906 +-403.633 -4.62338 38.5895 +-404.057 -4.20523 35.0994 +-404.748 -3.78935 31.6282 +-404.213 -3.3624 28.0646 +-403.646 -2.93685 24.5127 +-403.147 -2.51336 20.978 +-403.016 -2.09321 17.4712 +-402.854 -1.67351 13.9681 +-144.65 -0.450591 3.7609 +-144.378 -0.299791 2.50224 +-145.394 -0.150939 1.25983 +119.5 2.66454e-15 -1.13687e-13 +119.495 -0.114706 1.03649 +120.382 -0.231132 2.08852 +120.059 -0.345812 3.12477 +120.027 -0.461042 4.166 +119.786 -0.575276 5.19822 +120.235 -0.693114 6.26301 +120.175 -0.808499 7.30564 +119.807 -0.921521 8.32691 +120.328 -1.04167 9.41255 +120.141 -1.15617 10.4472 +120.343 -1.27461 11.5175 +119.343 -1.37973 12.4673 +120.023 -1.50419 13.5919 +119.701 -1.61666 14.6082 +120.163 -1.74012 15.7238 +120.813 -1.86764 16.8761 +120.363 -1.97866 17.8792 +120.004 -2.09068 18.8915 +120.721 -2.22212 20.0792 +120.442 -2.33601 21.1083 +119.957 -2.44551 22.0978 +121.231 -2.59205 23.4219 +120.335 -2.69297 24.3338 +120.899 -2.82667 25.542 +120.377 -2.93547 26.5251 +121.017 -3.07317 27.7694 +120.768 -3.18922 28.818 +120.705 -3.31035 29.9125 +120.244 -3.42058 30.9085 +121.031 -3.56718 32.2332 +120.743 -3.68322 33.2818 +121.023 -3.81717 34.4921 +120.715 -3.93319 35.5405 +121.164 -4.07465 36.8187 +120.836 -4.19079 37.8682 +121.26 -4.33382 39.1606 +121.765 -4.48146 40.4947 +121.499 -4.60175 41.5816 +121.506 -4.73289 42.7666 +121.408 -4.86062 43.9209 +118.114 -4.85757 43.8932 +114.457 -4.83278 43.6693 +110.813 -4.80137 43.3854 +108.017 -4.80042 43.3769 +105.415 -4.8029 43.3992 +102.82 -4.80075 43.3799 +100.418 -4.80277 43.3981 +97.9321 -4.79608 43.3376 +96.7289 -4.84884 43.8144 +97.0656 -4.97869 44.9877 +96.6669 -5.07167 45.8279 +97.6989 -5.24142 47.3618 +97.5478 -5.34973 48.3405 +96.6742 -5.4182 48.9591 +96.4181 -5.52094 49.8875 +96.6828 -5.65459 51.0952 +97.0214 -5.79442 52.3586 +96.4706 -5.882 53.15 +96.7836 -6.02312 54.4252 +97.0814 -6.16529 55.7099 +96.5886 -6.25825 56.5499 +96.6028 -6.38471 57.6926 +96.0925 -6.4772 58.5283 +96.4231 -6.62747 59.8862 +96.484 -6.76115 61.0941 +96.6148 -6.90143 62.3617 +96.147 -6.99998 63.2521 +96.2513 -7.14121 64.5284 +96.3404 -7.28317 65.8111 +95.7589 -7.37537 66.6442 +95.74 -7.51172 67.8763 +95.9494 -7.66798 69.2883 +95.9805 -7.81213 70.5908 +96.0759 -7.96354 71.959 +96.0751 -8.10903 73.2737 +96.0585 -8.25512 74.5937 +96.1043 -8.40864 75.9809 +96.133 -8.56287 77.3745 +96.0673 -8.71079 78.7112 +96.062 -8.86631 80.1165 +95.8872 -9.00819 81.3985 +95.8481 -9.16483 82.8139 +95.8663 -9.32938 84.3007 +96.3859 -9.54616 86.2596 +96.2884 -9.7052 87.6967 +96.173 -9.86477 89.1386 +96.0396 -10.0249 90.5851 +95.8161 -10.1778 91.967 +95.7182 -10.3465 93.4912 +96.0958 -10.5702 95.5127 +95.9545 -10.7405 97.0515 +95.7934 -10.9113 98.5951 +96.0943 -11.1384 100.648 +95.889 -11.3107 102.204 +96.204 -11.5483 104.351 +95.6857 -11.6893 105.625 +95.351 -11.8548 107.121 +95.6534 -12.1037 109.369 +95.7286 -12.3288 111.404 +95.6468 -12.5381 113.295 +95.2845 -12.7144 114.888 +95.342 -12.9507 117.024 +95.4937 -13.2053 119.324 +94.8119 -13.3485 120.618 +95.1494 -13.6396 123.249 +95.4479 -13.9326 125.895 +95.1716 -14.1474 127.837 +95.2212 -14.4162 130.266 +94.9449 -14.6414 132.3 +94.8695 -14.9032 134.666 +94.6465 -15.1477 136.875 +95.0069 -15.4933 139.998 +94.9884 -15.7858 142.641 +94.8217 -16.0609 145.127 +94.9408 -16.3924 148.123 +94.6436 -16.6601 150.542 +94.8335 -17.0224 153.815 +94.5095 -17.3013 156.336 +94.5544 -17.6568 159.548 +94.55 -18.0135 162.771 +94.4961 -18.3717 166.008 +94.4409 -18.7407 169.342 +94.716 -19.1883 173.386 +94.5516 -19.5602 176.747 +94.7046 -20.0112 180.822 +94.7478 -20.4541 184.825 +94.2816 -20.8003 187.953 +94.2498 -21.2558 192.068 +94.368 -21.7624 196.646 +94.4552 -22.2808 201.331 +94.2183 -22.741 205.488 +94.2409 -23.2827 210.384 +94.2643 -23.8464 215.478 +94.3616 -24.4524 220.953 +94.5611 -25.1112 226.906 +94.5507 -25.7414 232.601 +94.1542 -26.2917 237.574 +94.2866 -27.0178 244.135 +94.1708 -27.7049 250.343 +93.9871 -28.4041 256.661 +93.8665 -29.1568 263.463 +93.7962 -29.9634 270.751 +93.827 -30.845 278.717 +93.4467 -31.6348 285.854 +93.3992 -32.5835 294.427 +93.4128 -33.6081 303.685 +93.2706 -34.6352 312.965 +93.193 -35.7491 323.031 +93.3731 -37.0349 334.649 +93.356 -38.3237 346.295 +93.2666 -39.6685 358.447 +96.4301 -42.5422 384.413 +107.525 -49.2645 445.156 +103.68 -49.3979 446.362 +99.3025 -49.2701 445.207 +95.1404 -49.2343 444.884 +92.4868 -50.0029 451.829 +92.2561 -52.2061 471.737 +92.357 -54.8127 495.29 +92.0162 -57.4016 518.683 +91.9645 -60.4493 546.223 +92.0148 -63.9032 577.433 +91.8044 -67.5683 610.551 +91.4506 -71.5751 646.757 +91.4467 -76.4041 690.391 +91.7067 -82.1552 742.359 +96.1435 -92.8194 838.721 +90.2185 -94.4177 853.163 +84.7947 -96.8657 875.283 +285.548 -359.009 3244.03 +257.056 -359.27 3246.38 +228.543 -359.503 3248.49 +200.038 -359.753 3250.74 +171.468 -359.887 3251.96 +142.91 -360.038 3253.32 +114.341 -360.161 3254.43 +85.774 -360.302 3255.7 +57.1793 -360.326 3255.92 +28.5907 -360.368 3256.3 +1.49658e-13 -360.381 3256.42 +-7.70553 -97.123 877.608 +-57.1793 -360.326 3255.92 +-85.7635 -360.258 3255.31 +-114.341 -360.161 3254.43 +-142.91 -360.038 3253.32 +-171.489 -359.931 3252.35 +-200.013 -359.709 3250.35 +-228.543 -359.503 3248.49 +-257.056 -359.27 3246.38 +-285.548 -359.009 3244.03 +-314.019 -358.722 3241.43 +-342.467 -358.406 3238.58 +-370.888 -358.064 3235.49 +-122.162 -109.438 988.891 +-427.643 -357.298 3228.56 +-138.783 -108.621 981.503 +-138.911 -102.239 923.837 +-111.616 -77.5161 700.44 +-117.299 -77.1022 696.7 +-123.638 -77.1275 696.928 +-141.123 -83.7548 756.813 +-141.141 -79.8694 721.704 +-140.893 -76.1738 688.311 +-681.264 -352.549 3185.65 +-141.919 -70.4149 636.273 +-142.754 -68.0145 614.583 +-143.546 -65.7679 594.282 +-143.919 -63.493 573.726 +-143.493 -61.0309 551.478 +-142.532 -58.5109 528.707 +-142.732 -56.6123 511.552 +-97.8237 -37.5254 339.082 +-97.6729 -36.2699 327.737 +-97.506 -35.0809 316.993 +-97.4587 -33.9998 307.224 +-97.1858 -32.9007 297.292 +-97.3173 -31.9925 289.086 +-97.1495 -31.0347 280.431 +-97.1378 -30.173 272.644 +-97.5099 -29.4687 266.28 +-97.3577 -28.6425 258.815 +-97.4761 -27.9318 252.393 +-97.3794 -27.1924 245.712 +-97.4726 -26.5369 239.789 +-97.6225 -25.9241 234.252 +-97.5265 -25.2725 228.364 +-97.1353 -24.5727 222.04 +-97.6168 -24.1168 217.921 +-97.4529 -23.5217 212.543 +-97.4558 -22.9887 207.727 +-97.3386 -22.4475 202.837 +-98.1513 -22.1356 200.019 +-98.0297 -21.6271 195.424 +-99.0153 -21.3755 193.15 +-98.6295 -20.8406 188.316 +-100.279 -20.7451 187.454 +-99.9648 -20.2516 182.995 +-104.283 -20.6937 186.989 +-102.917 -20.0088 180.8 +-109.7 -20.9 188.853 +-107.852 -20.1399 181.985 +-114.544 -20.969 189.477 +-112.598 -20.2112 182.629 +-124.902 -21.9866 198.672 +-120.677 -20.8362 188.277 +-162.902 -27.5921 249.324 +-162.821 -27.0586 244.503 +-166.919 -27.2206 245.966 +-166.977 -26.7238 241.478 +-441.941 -69.4249 627.327 +-1902.67 -293.41 2651.26 +-447.128 -67.6938 611.685 +-448.794 -66.7138 602.83 +-451.421 -65.8939 595.421 +-453.649 -65.0306 587.62 +-471.043 -66.3175 599.249 +-462.777 -63.9948 578.261 +-465.886 -63.2832 571.83 +-465.037 -62.0527 560.712 +-467.949 -61.3427 554.296 +-470.98 -60.657 548.1 +-473.937 -59.9702 541.894 +-476.424 -59.2329 535.231 +-479.164 -58.5363 528.937 +-482.507 -57.92 523.368 +-485.378 -57.2535 517.346 +-487.975 -56.5621 511.098 +-490.568 -55.8779 504.915 +-493.65 -55.2557 499.294 +-495.823 -54.5387 492.814 +-498.847 -53.9219 487.241 +-501.811 -53.3035 481.653 +-382.708 -39.948 360.972 +-2396.28 -245.794 2221.01 +-383.163 -38.6201 348.974 +-381.828 -37.8166 341.713 +-380.769 -37.0551 334.832 +-139.697 -13.3576 120.7 +-141.968 -13.3373 120.516 +-141.412 -13.052 117.939 +-142.751 -12.9437 116.96 +-141.596 -12.6124 113.966 +-141.809 -12.4076 112.116 +-143.812 -12.359 111.676 +-145.977 -12.3209 111.332 +-154.935 -12.8423 116.044 +-155.225 -12.6342 114.163 +-156.464 -12.5042 112.988 +-157.694 -12.3726 111.799 +-159.817 -12.3091 111.226 +-381.241 -28.8212 260.43 +-380.694 -28.245 255.223 +-382.003 -27.8117 251.308 +-381.847 -27.2762 246.469 +-379.526 -26.5954 240.318 +-379.586 -26.0902 235.753 +-379.595 -25.5869 231.204 +-379.725 -25.097 226.778 +-380.323 -24.6421 222.668 +-378.453 -24.0342 217.174 +-379.649 -23.6266 213.492 +-379.06 -23.112 208.841 +-379.913 -22.6896 205.024 +-380.639 -22.262 201.161 +-379.197 -21.713 196.2 +-379.658 -21.2782 192.271 +-378.378 -20.751 187.507 +-378.213 -20.2907 183.348 +-379.808 -19.9268 180.06 +-378.927 -19.436 175.625 +-379.272 -19.0122 171.795 +-378.847 -18.5535 167.65 +-380.488 -18.1979 164.437 +-379.156 -17.703 159.965 +-378.513 -17.2458 155.834 +-378.755 -16.8324 152.098 +-379.889 -16.4601 148.734 +-379.5 -16.0239 144.793 +-381.226 -15.6782 141.669 +-112.951 -4.52203 40.8613 +-111.232 -4.33266 39.1502 +-109.68 -4.15411 37.5367 +-109.342 -4.02424 36.3632 +-109.181 -3.90214 35.2599 +-108.628 -3.76742 34.0426 +-109.114 -3.66943 33.1572 +-108.826 -3.54581 32.0401 +-108.526 -3.42303 30.9307 +-109.661 -3.34517 30.2272 +-109.826 -3.23694 29.2491 +-108.917 -3.09835 27.9969 +-110.226 -3.02295 27.3155 +-110.364 -2.91446 26.3352 +-110.786 -2.81336 25.4217 +-111.884 -2.72835 24.6535 +-112.976 -2.64143 23.8681 +-114.553 -2.56358 23.1647 +-117.403 -2.5102 22.6823 +-128.708 -2.62392 23.7099 +-157.766 -3.05992 27.6496 +-160.271 -2.95012 26.6575 +-159.907 -2.78584 25.173 +-160.418 -2.63713 23.8292 +-850.244 -13.1439 118.769 +-861.367 -12.4737 112.713 +-380.145 -5.13419 46.3928 +-381.134 -4.77657 43.1613 +-3258.55 -37.6724 340.41 +-404.33 -4.28243 38.6963 +-403.658 -3.88457 35.1012 +-403.353 -3.49179 31.552 +-404.213 -3.10908 28.0938 +-403.346 -2.71357 24.52 +-404.245 -2.33034 21.057 +-402.317 -1.93214 17.4589 +-403.654 -1.5505 14.0104 +-144.351 -0.41578 3.75701 +-145.078 -0.278548 2.51697 +-146.194 -0.140335 1.26808 +119.5 2.66454e-15 -1.13687e-13 +119.595 -0.105439 1.03835 +119.482 -0.210694 2.07489 +120.059 -0.317608 3.12777 +120.027 -0.423439 4.16999 +120.585 -0.531883 5.23792 +120.235 -0.636584 6.26901 +120.175 -0.742558 7.31264 +119.708 -0.845658 8.32795 +120.228 -0.955916 9.41376 +120.241 -1.06275 10.4659 +120.144 -1.16872 11.5094 +120.138 -1.27564 12.5624 +120.023 -1.38151 13.6049 +120.594 -1.49589 14.7313 +120.262 -1.59951 15.7518 +120.813 -1.71531 16.8922 +120.363 -1.81728 17.8964 +120.004 -1.92016 18.9096 +120.623 -2.03922 20.082 +120.344 -2.14373 21.1112 +120.842 -2.26263 22.2821 +120.544 -2.36715 23.3114 +120.335 -2.47334 24.3571 +120.117 -2.57933 25.401 +120.573 -2.70043 26.5935 +120.14 -2.80208 27.5946 +119.893 -2.90788 28.6365 +120.511 -3.03547 29.893 +121.115 -3.16436 31.1623 +121.031 -3.27624 32.2641 +121.321 -3.39902 33.4732 +121.215 -3.51142 34.5801 +121.578 -3.63823 35.8289 +121.068 -3.73937 36.8249 +121.694 -3.87634 38.1738 +121.165 -3.97723 39.1674 +121.86 -4.11915 40.565 +121.405 -4.22315 41.5891 +121.601 -4.35025 42.8408 +121.408 -4.4642 43.9629 +118.114 -4.46139 43.9353 +114.457 -4.43863 43.7111 +110.72 -4.40607 43.3905 +108.017 -4.4089 43.4184 +105.415 -4.41118 43.4408 +102.176 -4.38158 43.1493 +100.418 -4.41106 43.4396 +97.9321 -4.40491 43.3791 +96.7289 -4.45338 43.8564 +97.0656 -4.57264 45.0308 +97.389 -4.69283 46.2144 +97.609 -4.80951 47.3635 +97.8163 -4.92693 48.5199 +96.6742 -4.97629 49.006 +96.2407 -5.06132 49.8434 +96.7711 -5.19815 51.1909 +96.2305 -5.27845 51.9816 +96.4706 -5.40226 53.2009 +96.8706 -5.53685 54.5263 +97.0814 -5.66245 55.7632 +96.4163 -5.73757 56.5029 +96.6028 -5.86398 57.7478 +96.8599 -5.99642 59.0521 +95.4902 -6.02805 59.3636 +96.5683 -6.21514 61.2061 +95.9439 -6.29454 61.9879 +96.0636 -6.42349 63.2578 +96.1684 -6.55313 64.5345 +96.2579 -6.68343 65.8177 +95.7589 -6.77384 66.7081 +96.5541 -6.95774 68.519 +96.6775 -7.09603 69.8809 +95.9001 -7.16898 70.5993 +95.996 -7.30797 71.9681 +96.0751 -7.44767 73.3438 +96.1373 -7.58806 74.7264 +96.1043 -7.72284 76.0537 +96.0552 -7.85813 77.386 +96.0673 -8.00035 78.7865 +96.062 -8.14318 80.1932 +95.9632 -8.28004 81.541 +95.9236 -8.42398 82.9585 +95.8663 -8.56848 84.3815 +96.3859 -8.76758 86.3422 +96.2884 -8.91365 87.7807 +96.0999 -9.05332 89.1561 +96.0396 -9.20723 90.6718 +96.4635 -9.41086 92.6771 +96.3601 -9.56634 94.2083 +96.0958 -9.70808 95.6042 +95.9545 -9.86449 97.1444 +95.7934 -10.0214 98.6895 +95.9566 -10.2153 100.6 +95.889 -10.3882 102.302 +95.4609 -10.5245 103.644 +95.7526 -10.7434 105.8 +95.2848 -10.8804 107.149 +95.5878 -11.1088 109.398 +95.6637 -11.3156 111.435 +95.6468 -11.5155 113.404 +95.3481 -11.6853 115.075 +95.342 -11.8945 117.136 +95.4937 -12.1283 119.438 +95.366 -12.3314 121.439 +95.332 -12.5513 123.603 +94.846 -12.7155 125.221 +95.1122 -12.9855 127.879 +95.28 -13.2486 130.471 +94.9449 -13.4472 132.427 +94.8695 -13.6877 134.795 +94.6465 -13.9123 137.006 +94.6154 -14.1711 139.555 +94.9884 -14.4983 142.778 +94.5493 -14.7085 144.848 +94.9408 -15.0555 148.265 +94.5906 -15.2929 150.603 +94.8335 -15.634 153.962 +94.458 -15.8815 156.4 +94.6052 -16.2254 159.786 +94.6 -16.5532 163.014 +94.4468 -16.8645 166.08 +94.4409 -17.2122 169.504 +94.716 -17.6233 173.553 +94.5516 -17.9649 176.916 +94.6585 -18.3701 180.907 +94.3392 -18.7049 184.204 +94.2816 -19.1038 188.133 +94.206 -19.5131 192.163 +94.368 -19.9875 196.835 +94.4552 -20.4636 201.524 +94.1768 -20.877 205.595 +94.2816 -21.3931 210.677 +94.2244 -21.8922 215.592 +94.4006 -22.4674 221.256 +94.5993 -23.0724 227.215 +94.2885 -23.5764 232.178 +94.484 -24.2321 238.635 +94.2866 -24.8143 244.368 +94.1708 -25.4453 250.582 +94.0555 -26.1064 257.093 +93.733 -26.7407 263.34 +93.7311 -27.5005 270.822 +93.5414 -28.2432 278.136 +93.4158 -29.0451 286.033 +93.3391 -29.9068 294.519 +93.3543 -30.8478 303.786 +93.3558 -31.8395 313.552 +93.193 -32.8334 323.34 +93.3998 -34.0241 335.066 +93.0713 -35.0907 345.57 +93.2415 -36.4234 358.693 +96.3817 -39.0528 384.588 +107.548 -45.2563 445.679 +103.477 -45.2804 445.917 +99.3674 -45.2811 445.924 +95.1404 -45.2188 445.31 +92.4868 -45.9247 452.261 +92.2752 -47.9581 472.286 +92.3387 -50.3322 495.666 +91.912 -52.6602 518.592 +91.9645 -55.5191 546.746 +91.8896 -58.6115 577.2 +91.7453 -62.0175 610.741 +91.4228 -65.7175 647.179 +91.5119 -70.2227 691.546 +91.597 -75.3645 742.181 +96.4944 -85.5602 842.588 +90.5635 -87.0486 857.246 +89.0215 -93.4001 919.794 +88.62 -102.331 1007.75 +257.087 -330.008 3249.89 +228.571 -330.223 3252 +200.038 -330.411 3253.86 +171.489 -330.575 3255.47 +142.91 -330.673 3256.43 +114.355 -330.827 3257.95 +85.774 -330.916 3258.82 +57.1863 -330.978 3259.44 +28.5942 -331.017 3259.82 +1.45439e-13 -331.029 3259.94 +-28.5907 -330.976 3259.42 +-57.1863 -330.978 3259.44 +-85.7635 -330.875 3258.42 +-114.341 -330.786 3257.55 +-142.928 -330.714 3256.83 +-171.489 -330.575 3255.47 +-200.013 -330.371 3253.46 +-228.571 -330.223 3252 +-257.087 -330.008 3249.89 +-285.583 -329.769 3247.53 +-314.058 -329.504 3244.92 +-109.19 -104.953 1033.56 +-117.052 -103.788 1022.09 +-126.878 -104.393 1028.05 +-136.478 -104.728 1031.35 +-140.885 -101.273 997.321 +-141.675 -95.7689 943.122 +-111.757 -71.2838 701.995 +-117.184 -70.7441 696.68 +-123.742 -70.8967 698.184 +-144.458 -78.7415 775.438 +-625.224 -324.947 3200.04 +-653.269 -324.383 3194.49 +-681.264 -323.795 3188.7 +-140.989 -64.2478 632.705 +-142.934 -62.5461 615.948 +-143.452 -60.3646 594.464 +-143.847 -58.2852 573.986 +-143.718 -56.1413 552.874 +-142.454 -53.7096 528.926 +-142.812 -52.0243 512.329 +-97.7686 -34.4455 339.216 +-97.7013 -33.3215 328.147 +-97.2721 -32.1424 316.535 +-97.1881 -31.1401 306.664 +-97.1549 -30.2077 297.482 +-97.0635 -29.3066 288.608 +-97.117 -28.4939 280.605 +-97.1044 -27.7025 272.811 +-97.2363 -26.9893 265.788 +-97.4277 -26.3253 259.249 +-97.4761 -25.6537 252.635 +-97.3794 -24.9746 245.947 +-97.5476 -24.3914 240.204 +-97.5843 -23.8004 234.384 +-97.5656 -23.2206 228.674 +-97.4941 -22.6519 223.074 +-97.9015 -22.2144 218.765 +-97.6603 -21.6493 213.2 +-98.8081 -21.4067 210.811 +-98.6731 -20.8994 205.815 +-99.9048 -20.6935 203.787 +-99.3236 -20.1254 198.193 +-103.964 -20.6132 202.996 +-100.8 -19.5619 192.643 +-108.166 -20.5516 202.39 +-106.12 -19.7452 194.449 +-112.815 -20.561 202.483 +-110.992 -19.8189 195.174 +-121.85 -21.3213 209.97 +-117.038 -20.0729 197.675 +-163.628 -27.5113 270.929 +-128.535 -21.1899 208.676 +-163.427 -26.4219 260.2 +-163.876 -25.9871 255.918 +-167.967 -26.1297 257.323 +-1808.42 -276.024 2718.25 +-437.345 -65.5036 645.073 +-439.531 -64.6077 636.25 +-442.572 -63.8537 628.824 +-444.18 -62.91 619.531 +-447.305 -62.1973 612.512 +-449.567 -61.3783 604.447 +-451.301 -60.5036 595.833 +-453.284 -59.6786 587.709 +-471.597 -60.9803 600.528 +-462.404 -58.728 578.347 +-466.641 -58.2161 573.306 +-464.401 -56.9138 560.481 +-467.949 -56.3396 554.827 +-470.785 -55.6868 548.398 +-473.74 -55.0562 542.188 +-476.159 -54.3717 535.447 +-479.164 -53.7621 529.443 +-481.898 -53.1291 523.209 +-485.174 -52.5618 517.623 +-487.768 -51.9269 511.37 +-490.568 -51.3205 505.399 +-493.65 -50.7491 499.772 +-496.106 -50.1191 493.568 +-499.133 -49.5524 487.987 +-501.164 -48.8929 481.492 +-382.708 -36.6899 361.318 +-380.889 -35.8826 353.368 +-380.583 -35.2315 346.956 +-379.004 -34.4755 339.511 +-382.791 -34.2136 336.932 +-137.81 -12.1024 119.183 +-141.283 -12.1904 120.05 +-141.335 -11.981 117.987 +-142.751 -11.888 117.072 +-140.974 -11.5329 113.575 +-141.652 -11.383 112.099 +-143.97 -11.3634 111.906 +-145.739 -11.2975 111.257 +-155.335 -11.8253 116.454 +-155.868 -11.6518 114.746 +-156.949 -11.5199 113.447 +-158.183 -11.3988 112.254 +-160.554 -11.3573 111.846 +-379.757 -26.3675 259.665 +-378.787 -25.8114 254.188 +-380.919 -25.4709 250.835 +-379.163 -24.8755 244.971 +-381.719 -24.5675 241.938 +-380.689 -24.0319 236.664 +-380.363 -23.5476 231.894 +-379.382 -23.0293 226.79 +-380.323 -22.6323 222.881 +-380.099 -22.1699 218.327 +-378.344 -21.6251 212.962 +-379.41 -21.2466 209.234 +-379.913 -20.839 205.221 +-379.667 -20.3942 200.84 +-378.31 -19.8955 195.928 +-379.391 -19.5291 192.32 +-378.736 -19.0767 187.865 +-379.92 -18.7198 184.351 +-378.996 -18.2625 179.847 +-380.559 -17.9276 176.549 +-378.817 -17.4407 171.754 +-380.309 -17.106 168.458 +-380.488 -16.7137 164.595 +-378.051 -16.2118 159.652 +-379.068 -15.8624 156.212 +-378.106 -15.4331 151.983 +-379.703 -15.1102 148.804 +-378.38 -14.6736 144.504 +-379.914 -14.35 141.317 +-113.515 -4.17395 41.1046 +-111.137 -3.97592 39.1545 +-109.775 -3.8186 37.6051 +-108.583 -3.67038 36.1455 +-108.42 -3.5589 35.0477 +-108.628 -3.46015 34.0752 +-109.593 -3.38492 33.3344 +-108.634 -3.25087 32.0143 +-108.815 -3.15219 31.0425 +-109.276 -3.06154 30.1498 +-110.888 -3.0017 29.5604 +-108.82 -2.84312 27.9987 +-110.226 -2.7764 27.3417 +-110.17 -2.67205 26.3141 +-110.786 -2.58391 25.446 +-111.884 -2.50583 24.6771 +-113.074 -2.4281 23.9116 +-114.553 -2.3545 23.1869 +-117.697 -2.31125 22.761 +-127.823 -2.39334 23.5694 +-156.88 -2.79457 27.5207 +-159.68 -2.69951 26.5845 +-161.882 -2.59024 25.5084 +-160.122 -2.41756 23.8079 +-850.244 -12.0719 118.883 +-862.16 -11.4669 112.925 +-380.443 -4.71913 46.4735 +-381.432 -4.39042 43.2364 +-896.263 -9.51667 93.7192 +-403.832 -3.92832 38.6857 +-403.459 -3.56599 35.1175 +-402.755 -3.20224 31.5353 +-402.717 -2.84494 28.0166 +-402.947 -2.48979 24.5192 +-402.548 -2.13128 20.9887 +-403.915 -1.78161 17.5451 +-403.354 -1.42298 14.0133 +-144.351 -0.38187 3.76061 +-145.278 -0.256182 2.52286 +-145.794 -0.128537 1.26582 +119.5 2.66454e-15 -1.13687e-13 +119.595 -0.0960671 1.03926 +119.482 -0.191967 2.07671 +120.059 -0.289378 3.1305 +120.027 -0.385803 4.17364 +119.786 -0.481395 5.20776 +120.135 -0.579521 6.26929 +120.076 -0.675996 7.31296 +120.605 -0.776272 8.39776 +120.228 -0.870951 9.422 +120.34 -0.969093 10.4837 +120.343 -1.06661 11.5386 +120.238 -1.16323 12.5839 +120.023 -1.25871 13.6168 +120.594 -1.36293 14.7442 +120.262 -1.45734 15.7656 +120.912 -1.56413 16.9209 +120.165 -1.65303 17.8826 +120.004 -1.74949 18.9261 +119.834 -1.84582 19.9682 +120.442 -1.95479 21.147 +119.957 -2.04642 22.1383 +120.544 -2.15675 23.3318 +120.433 -2.25533 24.3983 +120.801 -2.36346 25.5681 +120.573 -2.46041 26.6168 +120.335 -2.55716 27.6636 +120.768 -2.66876 28.8708 +120.511 -2.76567 29.9191 +121.115 -2.8831 31.1895 +121.127 -2.98742 32.3181 +121.514 -3.10183 33.5557 +121.023 -3.19423 34.5554 +120.715 -3.29132 35.6057 +121.164 -3.40969 36.8862 +120.741 -3.50412 37.9078 +122.116 -3.65217 39.5094 +121.765 -3.75011 40.5689 +121.594 -3.85377 41.6904 +121.601 -3.96358 42.8783 +121.408 -4.0674 44.0014 +118.021 -4.06161 43.9388 +114.457 -4.04411 43.7494 +110.72 -4.01444 43.4285 +108.11 -4.02047 43.4937 +105.415 -4.0191 43.4788 +102.912 -4.02089 43.4983 +99.5927 -3.98595 43.1203 +97.9321 -4.01339 43.4171 +96.6379 -4.05373 43.8534 +97.1562 -4.1701 45.1124 +97.389 -4.27571 46.2549 +97.6989 -4.38606 47.4486 +97.5478 -4.47669 48.4291 +96.7633 -4.53816 49.0941 +96.4181 -4.61996 49.979 +96.6828 -4.7318 51.1889 +96.2305 -4.80928 52.0271 +96.558 -4.92656 53.2958 +96.7836 -5.04019 54.525 +97.0814 -5.15916 55.8121 +96.5886 -5.23694 56.6536 +96.7742 -5.35225 57.901 +96.0925 -5.42016 58.6356 +96.3383 -5.54103 59.9432 +96.484 -5.65778 61.2062 +96.6148 -5.77516 62.476 +96.0636 -5.85254 63.3132 +96.2513 -5.97581 64.6467 +96.3404 -6.09461 65.9318 +96.4961 -6.21927 67.2805 +95.9028 -6.29655 68.1164 +95.9494 -6.41662 69.4154 +95.9805 -6.53724 70.7203 +96.0759 -6.66395 72.091 +96.0751 -6.78569 73.408 +96.2161 -6.91928 74.8532 +96.1825 -7.04213 76.1822 +96.0552 -7.15968 77.4538 +96.0673 -7.28925 78.8555 +96.062 -7.41939 80.2634 +95.9632 -7.54409 81.6124 +95.9236 -7.67523 83.0311 +96.5404 -7.86177 85.0491 +96.3859 -7.98829 86.4178 +96.3621 -8.12759 87.9247 +96.173 -8.25491 89.3021 +96.0396 -8.38886 90.7512 +95.888 -8.52324 92.2049 +96.3601 -8.71606 94.2908 +96.1665 -8.8517 95.7583 +95.9545 -8.9877 97.2295 +95.7934 -9.13065 98.7759 +96.0943 -9.32072 100.832 +95.6844 -9.44471 102.173 +95.6636 -9.60938 103.955 +95.7526 -9.7885 105.893 +95.4173 -9.92712 107.392 +95.5878 -10.1214 109.494 +95.2091 -10.2609 111.003 +95.6468 -10.492 113.503 +95.3481 -10.6466 115.176 +95.342 -10.8373 117.238 +95.4937 -11.0503 119.542 +95.3044 -11.2281 121.466 +95.3929 -11.4429 123.79 +95.147 -11.622 125.728 +95.3501 -11.8608 128.311 +95.0449 -12.0412 130.263 +94.8869 -12.2445 132.461 +94.9843 -12.4862 135.076 +95.2695 -12.7592 138.03 +95.1187 -12.9802 140.42 +94.9884 -13.2096 142.903 +94.8761 -13.4475 145.476 +94.4573 -13.6474 147.639 +94.6966 -13.9491 150.903 +94.3632 -14.1738 153.333 +94.5095 -14.4779 156.622 +94.6559 -14.7912 160.012 +94.6 -15.0819 163.156 +94.4961 -15.3735 166.312 +94.3924 -15.6743 169.565 +94.2389 -15.976 172.829 +94.5516 -16.3681 177.071 +94.6585 -16.7373 181.065 +94.2938 -17.0341 184.276 +94.6832 -17.4799 189.099 +94.206 -17.7787 192.331 +94.368 -18.2109 197.007 +94.4552 -18.6448 201.7 +94.1354 -19.013 205.684 +94.2409 -19.4831 210.769 +94.2244 -19.9464 215.781 +94.4006 -20.4704 221.45 +94.2167 -20.9366 226.493 +94.251 -21.4723 232.289 +94.4474 -22.0697 238.751 +94.2866 -22.6087 244.582 +94.2058 -23.1923 250.895 +93.9529 -23.7601 257.038 +93.7997 -24.3812 263.758 +93.6334 -25.0301 270.777 +93.5414 -25.7328 278.379 +93.4467 -26.4722 286.378 +93.3391 -27.2486 294.777 +93.5005 -28.1499 304.528 +93.4694 -29.0448 314.208 +93.2757 -29.9416 323.91 +93.3464 -30.9822 335.167 +93.3043 -32.0518 346.738 +93.0412 -33.1147 358.237 +96.164 -35.5013 384.056 +107.618 -41.2606 446.36 +103.455 -41.2468 446.211 +99.3674 -41.2564 446.314 +95.2028 -41.2267 445.993 +92.407 -41.8067 452.267 +92.2752 -43.6954 472.7 +92.2658 -45.8223 495.709 +91.9641 -48.0068 519.34 +91.7665 -50.4755 546.047 +91.8114 -53.3564 577.213 +91.7305 -56.496 611.177 +91.3393 -59.8216 647.154 +91.2378 -63.7894 690.078 +91.3167 -68.4557 740.558 +96.4831 -77.9461 843.226 +90.8039 -79.522 860.273 +90.7276 -86.7292 938.242 +89.7356 -94.4093 1021.33 +257.056 -300.639 3252.33 +87.4328 -115.089 1245.04 +200.038 -301.043 3256.71 +171.489 -301.193 3258.32 +142.928 -301.319 3259.68 +114.355 -301.422 3260.8 +85.774 -301.503 3261.67 +57.1863 -301.56 3262.29 +28.5942 -301.595 3262.67 +1.46216e-13 -301.606 3262.79 +-28.5907 -301.558 3262.27 +-57.1863 -301.56 3262.29 +-85.774 -301.503 3261.67 +-114.355 -301.422 3260.8 +-142.928 -301.319 3259.68 +-171.489 -301.193 3258.32 +-200.038 -301.043 3256.71 +-228.571 -300.871 3254.84 +-257.087 -300.676 3252.73 +-119.586 -125.815 1361.08 +-314.058 -300.217 3247.76 +-109.859 -96.2097 1040.8 +-118.229 -95.5148 1033.28 +-127.938 -95.9088 1037.55 +-140.981 -98.568 1066.31 +-142.764 -93.5018 1011.51 +-142.976 -88.0577 952.614 +-111.632 -64.875 701.822 +-117.118 -64.4198 696.897 +-123.846 -64.6496 699.383 +-146.444 -72.7293 786.79 +-625.224 -296.065 3202.85 +-653.269 -295.551 3197.29 +-681.264 -295.015 3191.49 +-709.121 -294.421 3185.06 +-142.799 -56.933 615.904 +-143.756 -55.1155 596.243 +-143.968 -53.1492 574.972 +-143.192 -50.9642 551.333 +-142.273 -48.8734 528.715 +-144.095 -47.826 517.384 +-97.6859 -31.3573 339.225 +-97.6729 -30.3509 328.338 +-97.506 -29.3559 317.574 +-97.4587 -28.4513 307.788 +-97.464 -27.6103 298.69 +-97.3173 -26.7716 289.616 +-97.1821 -25.9787 281.039 +-97.4382 -25.327 273.989 +-97.4415 -24.6423 266.581 +-97.4277 -23.9854 259.476 +-98.1928 -23.5454 254.715 +-97.3794 -22.7548 246.163 +-99.2333 -22.6074 244.568 +-98.12 -21.804 235.877 +-100.105 -21.7074 234.832 +-98.7303 -20.9002 226.1 +-104.897 -21.6862 234.603 +-99.8581 -20.1689 218.189 +-111.571 -22.0233 238.249 +-102.16 -19.7146 213.274 +-122.919 -23.1975 250.952 +-113.959 -21.0385 227.596 +-138.876 -25.0879 271.402 +-114.421 -20.2317 218.868 +-161.874 -28.0224 303.148 +-123.059 -20.8619 225.685 +-168.229 -27.9352 302.205 +-163.534 -26.6053 287.818 +-420.15 -66.9835 724.632 +-164.747 -25.7438 278.498 +-423.361 -64.8546 701.601 +-1711.97 -257.146 2781.82 +-438.773 -64.6329 699.203 +-429.947 -62.1199 672.017 +-431.844 -61.2087 662.159 +-434.816 -60.468 654.146 +-436.953 -59.6281 645.06 +-439.645 -58.8804 636.971 +-442.055 -58.1102 628.64 +-444.877 -57.4083 621.046 +-446.834 -56.6094 612.404 +-449.567 -55.9228 604.976 +-451.301 -55.1258 596.355 +-453.832 -54.4399 588.934 +-469.442 -55.3063 598.307 +-461.595 -53.4144 577.84 +-466.263 -52.9987 573.343 +-464.782 -51.8977 561.432 +-467.949 -51.332 555.313 +-470.98 -50.7582 549.105 +-473.543 -50.1417 542.436 +-476.424 -49.5665 536.213 +-478.897 -48.9562 529.611 +-482.034 -48.4203 523.814 +-485.174 -47.8899 518.076 +-487.975 -47.3315 512.035 +-490.915 -46.792 506.199 +-493.37 -46.2121 499.926 +-496.035 -45.6578 493.929 +-498.491 -45.0899 487.785 +-501.596 -44.5855 482.329 +-382.708 -33.4288 361.634 +-382.791 -32.8564 355.443 +-381.099 -32.1435 347.731 +-380.342 -31.522 341.007 +-381.144 -31.0384 335.775 +-2472.81 -197.859 2140.45 +-141.816 -11.1487 120.608 +-141.948 -10.9635 118.603 +-142.056 -10.7787 116.605 +-141.751 -10.5657 114.301 +-141.652 -10.3712 112.197 +-144.364 -10.3817 112.31 +-145.739 -10.2934 111.354 +-154.217 -10.6966 115.717 +-155.868 -10.6162 114.846 +-156.221 -10.4473 113.019 +-158.183 -10.3856 112.352 +-159.817 -10.3004 111.43 +-381.982 -24.1646 261.415 +-380.197 -23.6047 255.357 +-382.003 -23.273 251.769 +-379.75 -22.6996 245.566 +-379.864 -22.275 240.973 +-379.671 -21.8374 236.238 +-379.681 -21.4162 231.681 +-379.811 -21.006 227.244 +-378.255 -20.5086 221.863 +-380.532 -20.2224 218.767 +-379.301 -19.7528 213.687 +-380.197 -19.3983 209.852 +-379.561 -18.9692 205.21 +-379.314 -18.5642 200.829 +-379.729 -18.1951 196.836 +-379.658 -17.8058 192.624 +-377.215 -17.3112 187.274 +-378.033 -16.9713 183.596 +-379.627 -16.667 180.304 +-379.38 -16.2836 176.157 +-379.818 -15.9324 172.358 +-380.309 -15.5855 168.605 +-380.03 -15.2098 164.541 +-379.708 -14.8356 160.493 +-380.269 -14.4984 156.844 +-378.569 -14.0786 152.303 +-379.052 -13.7436 148.679 +-379.314 -13.4023 144.987 +-380.476 -13.0939 141.65 +-113.045 -3.78722 40.9703 +-111.137 -3.62253 39.1887 +-109.68 -3.47619 37.6056 +-109.247 -3.36459 36.3983 +-108.42 -3.24257 35.0784 +-108.628 -3.1526 34.105 +-110.262 -3.1029 33.5674 +-108.826 -2.96715 32.0989 +-108.238 -2.8568 30.905 +-110.047 -2.8091 30.389 +-109.922 -2.71107 29.3286 +-109.497 -2.60655 28.1978 +-109.546 -2.51404 27.1971 +-110.267 -2.4367 26.3603 +-110.786 -2.35424 25.4683 +-111.981 -2.28509 24.7202 +-113.074 -2.21228 23.9326 +-114.847 -2.15073 23.2667 +-117.697 -2.10582 22.7809 +-127.233 -2.17055 23.4812 +-156.978 -2.54778 27.562 +-158.792 -2.4459 26.4599 +-160.302 -2.33697 25.2815 +-161.21 -2.21765 23.9906 +-850.244 -10.9989 118.987 +-861.268 -10.4369 112.907 +-379.748 -4.29183 46.4293 +-379.843 -3.98351 43.0939 +-3258.55 -31.5245 341.034 +-404.23 -3.58269 38.7578 +-403.06 -3.24582 35.1135 +-403.054 -2.91978 31.5863 +-403.614 -2.59785 28.1037 +-403.845 -2.27354 24.5953 +-403.147 -1.94474 21.0383 +-402.017 -1.61562 17.4779 +-403.454 -1.29682 14.0291 +-145.75 -0.351301 3.8004 +-144.978 -0.232931 2.51986 +-145.894 -0.117192 1.2678 +119.5 2.66454e-15 -1.13687e-13 +119.595 -0.0866875 1.04008 +119.482 -0.173224 2.07835 +120.059 -0.261124 3.13299 +120.027 -0.348135 4.17695 +119.886 -0.434756 5.21624 +120.235 -0.523373 6.27948 +120.076 -0.609994 7.31876 +120.506 -0.699901 8.39746 +120.228 -0.785915 9.42947 +120.34 -0.874475 10.492 +120.144 -0.960873 11.5286 +120.437 -1.05139 12.6147 +119.924 -1.13488 13.6164 +120.594 -1.22986 14.7559 +120.262 -1.31505 15.7781 +120.813 -1.41026 16.9204 +120.363 -1.49409 17.9262 +120.893 -1.59037 19.0814 +119.834 -1.6656 19.984 +120.442 -1.76393 21.1638 +119.957 -1.84662 22.1559 +120.642 -1.94776 23.3694 +120.335 -2.03348 24.3978 +120.117 -2.12062 25.4434 +120.377 -2.21659 26.5948 +120.335 -2.30749 27.6855 +120.768 -2.40819 28.8937 +120.511 -2.49564 29.9429 +121.115 -2.60161 31.2143 +121.031 -2.69359 32.3179 +121.321 -2.79453 33.529 +120.927 -2.88008 34.5554 +121.578 -2.9912 35.8887 +121.164 -3.07678 36.9155 +120.836 -3.16449 37.9678 +121.355 -3.27505 39.2944 +120.911 -3.36025 40.3165 +121.594 -3.47751 41.7234 +121.695 -3.57937 42.9456 +121.972 -3.68732 44.2408 +117.74 -3.65633 43.869 +114.457 -3.64926 43.7841 +110.72 -3.62249 43.4629 +108.017 -3.62482 43.4909 +105.507 -3.62986 43.5514 +102.084 -3.59911 43.1824 +99.5927 -3.59678 43.1545 +97.9321 -3.62154 43.4515 +96.0009 -3.63383 43.5989 +97.1562 -3.76295 45.1482 +96.6669 -3.82964 45.9484 +97.6989 -3.95782 47.4862 +97.5478 -4.03961 48.4675 +96.8524 -4.09885 49.1783 +97.1277 -4.19957 50.3868 +96.7711 -4.27371 51.2763 +97.1093 -4.37935 52.5438 +96.6455 -4.44958 53.3864 +96.7836 -4.54809 54.5683 +96.3886 -4.62221 55.4577 +96.5886 -4.72563 56.6985 +96.7742 -4.82968 57.9469 +97.1157 -4.94304 59.307 +96.3383 -5.00003 59.9908 +96.5683 -5.10984 61.3082 +96.6987 -5.21583 62.5799 +96.0636 -5.28113 63.3634 +96.2513 -5.39236 64.698 +96.3404 -5.49956 65.9841 +96.4142 -5.60728 67.2766 +95.9028 -5.68178 68.1704 +96.0303 -5.79501 69.529 +95.9805 -5.89898 70.7764 +95.996 -6.00831 72.0882 +96.0751 -6.12317 73.4663 +96.1373 -6.23859 74.8512 +96.1043 -6.3494 76.1807 +96.0552 -6.46064 77.5152 +96.0673 -6.57756 78.9181 +96.062 -6.69499 80.3271 +96.0393 -6.81291 81.7419 +95.9236 -6.92586 83.097 +95.8663 -7.04465 84.5223 +96.3859 -7.20835 86.4863 +95.6249 -7.27793 87.3212 +96.173 -7.44893 89.3729 +96.0396 -7.56981 90.8232 +95.888 -7.69107 92.278 +96.3601 -7.86506 94.3656 +95.5301 -7.9346 95.2 +95.9545 -8.11018 97.3066 +95.7934 -8.23917 98.8542 +96.0943 -8.41069 100.912 +95.889 -8.54076 102.473 +95.596 -8.6651 103.965 +95.8864 -8.84517 106.125 +95.4173 -8.95788 107.477 +95.6534 -9.13953 109.657 +95.7286 -9.30955 111.697 +95.7754 -9.4804 113.747 +95.2845 -9.60067 115.19 +95.405 -9.78556 117.408 +95.3692 -9.9584 119.482 +95.4275 -10.145 121.72 +94.9668 -10.2796 123.335 +95.3877 -10.5139 126.147 +95.2906 -10.6961 128.333 +95.28 -10.8925 130.689 +95.003 -11.0625 132.729 +94.9843 -11.2671 135.183 +94.9297 -11.4724 137.647 +94.951 -11.6923 140.285 +94.9332 -11.9129 142.932 +94.8761 -12.1345 145.591 +94.5647 -12.329 147.924 +94.2196 -12.5238 150.262 +94.3632 -12.79 153.455 +94.561 -13.0714 156.832 +94.6052 -13.3399 160.053 +94.55 -13.6021 163.199 +94.4961 -13.8725 166.444 +94.4409 -14.1512 169.787 +94.6683 -14.4819 173.755 +94.5046 -14.7626 177.123 +94.6585 -15.1031 181.209 +94.3392 -15.3784 184.511 +94.6832 -15.7733 189.249 +94.6005 -16.1101 193.29 +94.368 -16.4329 197.163 +94.5397 -16.8394 202.04 +94.2183 -17.1718 206.029 +94.2409 -17.5809 210.937 +94.2244 -17.9989 215.952 +94.1662 -18.4259 221.075 +94.2549 -18.9002 226.766 +94.251 -19.3758 232.473 +94.3741 -19.8994 238.755 +94.2866 -20.4013 244.776 +94.1007 -20.9045 250.814 +93.9187 -21.4325 257.148 +93.7997 -22.0007 263.967 +93.6334 -22.5862 270.991 +93.8587 -23.2991 279.545 +93.5394 -23.9113 286.89 +93.3992 -24.604 295.2 +93.5882 -25.4253 305.055 +93.3558 -26.1771 314.075 +93.2206 -27.0023 323.976 +93.3998 -27.9732 335.625 +93.2525 -28.9063 346.82 +93.2165 -29.9377 359.196 +96.4543 -32.1318 385.52 +107.595 -37.224 446.616 +103.432 -37.2115 446.467 +99.3674 -37.2283 446.668 +95.2028 -37.2015 446.346 +92.407 -37.7248 452.626 +92.1035 -39.3558 472.194 +92.2476 -41.3403 496.004 +91.8078 -43.246 518.869 +91.7995 -45.5637 546.676 +91.6706 -48.0731 576.785 +91.7453 -50.9882 611.761 +91.2836 -53.948 647.273 +91.2509 -57.5695 690.724 +91.2314 -61.7143 740.453 +96.4831 -70.3358 843.895 +90.5739 -71.5761 858.775 +90.2579 -77.8563 934.126 +90.8076 -86.2099 1034.35 +91.3421 -96.3987 1156.6 +88.0327 -104.565 1254.58 +200.038 -271.651 3259.29 +86.4433 -137 1643.74 +142.928 -271.899 3262.27 +114.355 -271.992 3263.38 +85.774 -272.065 3264.26 +57.1863 -272.117 3264.88 +28.5942 -272.148 3265.26 +1.4555e-13 -272.158 3265.38 +-28.5942 -272.148 3265.26 +-57.1863 -272.117 3264.88 +-85.774 -272.065 3264.26 +-114.355 -271.992 3263.38 +-142.928 -271.899 3262.27 +-171.489 -271.785 3260.9 +-200.038 -271.651 3259.29 +-119.646 -142.115 1705.11 +-257.087 -271.319 3255.31 +-120.528 -114.425 1372.88 +-314.019 -270.873 3249.95 +-109.88 -86.8329 1041.83 +-118.422 -86.3295 1035.79 +-128.536 -86.9491 1043.22 +-146.972 -92.7242 1112.51 +-456.028 -269.51 3233.6 +-143.567 -79.7887 957.312 +-111.491 -58.4671 701.493 +-117.101 -58.122 697.352 +-123.742 -58.2884 699.349 +-146.517 -65.661 787.805 +-625.224 -267.158 3205.39 +-653.269 -266.695 3199.83 +-681.264 -266.211 3194.03 +-139.409 -52.2299 626.659 +-142.754 -51.3581 616.198 +-146.113 -50.55 606.503 +-152.169 -50.692 608.207 +-142.817 -45.8676 550.323 +-142.273 -44.1016 529.134 +-146.473 -43.8688 526.341 +-97.741 -28.3116 339.685 +-97.6729 -27.3876 328.599 +-99.5818 -27.0536 324.592 +-97.4888 -25.6813 308.127 +-100.492 -25.6887 308.215 +-97.7933 -24.2758 291.263 +-101.219 -24.4161 292.946 +-98.5398 -23.1126 277.306 +-108.899 -24.851 298.164 +-99.669 -22.1415 265.656 +-114.427 -24.7591 297.062 +-101.557 -21.4141 256.928 +-121.71 -25.0208 300.201 +-110.251 -22.1077 265.25 +-411.713 -80.5616 966.585 +-117.352 -22.4168 268.958 +-161.027 -30.0401 360.423 +-129.053 -23.5206 282.202 +-166.934 -29.7343 356.755 +-166.436 -28.9824 347.733 +-141.199 -24.0457 288.502 +-141.534 -23.5781 282.892 +-144.823 -23.6078 283.249 +-149.514 -23.8556 286.222 +-411.492 -64.2794 771.23 +-414.508 -63.4093 760.79 +-414.949 -62.1766 746 +-418.314 -61.4108 736.812 +-417.95 -60.1271 721.41 +-421.003 -59.3638 712.251 +-421.713 -58.2946 699.424 +-432.263 -58.5887 702.952 +-437.183 -58.1112 697.223 +-428.98 -55.9287 671.037 +-431.79 -55.2255 662.601 +-434.098 -54.4741 653.585 +-436.953 -53.8062 645.572 +-439.305 -53.0904 636.983 +-442.227 -52.457 629.384 +-444.18 -51.722 620.565 +-446.599 -51.0554 612.567 +-448.615 -50.3559 604.174 +-451.241 -49.7369 596.748 +-453.466 -49.0851 588.927 +-463.347 -49.2585 591.008 +-461.034 -48.1408 577.597 +-467.082 -47.9081 574.805 +-464.464 -46.7986 561.493 +-467.628 -46.2883 555.371 +-471.434 -45.8466 550.072 +-473.543 -45.2461 542.867 +-476.424 -44.727 536.638 +-479.834 -44.2627 531.068 +-482.507 -43.7356 524.744 +-484.833 -43.1838 518.123 +-487.768 -42.6922 512.224 +-490.568 -42.1936 506.243 +-493.02 -41.6705 499.966 +-495.823 -41.1824 494.11 +-498.847 -40.7167 488.522 +-501.38 -40.2151 482.504 +-2376.69 -187.33 2247.6 +-383.229 -29.6824 356.132 +-380.14 -28.9322 347.13 +-381.308 -28.5166 342.145 +-380.844 -27.986 335.778 +-382.487 -27.6163 331.342 +-141.816 -10.0602 120.703 +-142.101 -9.90367 118.825 +-142.828 -9.77916 117.331 +-140.897 -9.47666 113.702 +-141.809 -9.36902 112.41 +-145.152 -9.41927 113.013 +-145.739 -9.28837 111.443 +-154.696 -9.68232 116.169 +-156.109 -9.59452 115.116 +-156.707 -9.45656 113.461 +-157.938 -9.35706 112.267 +-160.554 -9.33754 112.033 +-380.746 -21.7348 260.776 +-380.694 -21.3279 255.894 +-381.92 -20.9962 251.914 +-381.26 -20.5647 246.737 +-381.382 -20.1805 242.127 +-381.198 -19.7845 237.376 +-380.107 -19.3469 232.125 +-379.125 -18.9208 227.014 +-379.892 -18.5864 223.001 +-380.445 -18.2438 218.891 +-380.345 -17.8733 214.445 +-379.41 -17.4681 209.583 +-378.858 -17.0854 204.992 +-380.374 -16.7984 201.549 +-380.528 -16.4531 197.406 +-377.43 -15.973 191.646 +-377.483 -15.6321 187.556 +-378.662 -15.3398 184.048 +-380.891 -15.0898 181.048 +-380.287 -14.7289 176.718 +-379.363 -14.3597 172.289 +-379.944 -14.0504 168.577 +-379.204 -13.695 164.313 +-379.708 -13.3871 160.62 +-379.437 -13.0542 156.625 +-379.867 -12.7475 152.946 +-379.052 -12.4017 148.797 +-378.38 -12.064 144.745 +-379.54 -11.7864 141.414 +-113.515 -3.43165 41.1732 +-111.137 -3.26884 39.2198 +-109.775 -3.13949 37.6679 +-109.342 -3.03872 36.4588 +-108.325 -2.92342 35.0754 +-108.628 -2.84479 34.1321 +-109.019 -2.76838 33.2152 +-108.155 -2.66094 31.9262 +-108.334 -2.58016 30.957 +-110.143 -2.53705 30.4398 +-110.502 -2.45928 29.5066 +-109.497 -2.35206 28.2202 +-109.449 -2.26657 27.1945 +-110.364 -2.20072 26.4044 +-110.786 -2.12438 25.4885 +-111.884 -2.06019 24.7183 +-112.976 -1.99455 23.9308 +-114.651 -1.93743 23.2454 +-116.814 -1.88596 22.6278 +-127.233 -1.95863 23.4998 +-156.781 -2.29614 27.5493 +-161.258 -2.24136 26.8921 +-160.203 -2.10751 25.286 +-161.012 -1.99867 23.9803 +-850.541 -9.9285 119.123 +-861.665 -9.42218 113.048 +-378.656 -3.86166 46.3326 +-381.432 -3.60962 43.3085 +-3258.55 -28.4466 341.305 +-404.031 -3.2313 38.7694 +-404.355 -2.93833 35.2543 +-403.353 -2.63666 31.6349 +-402.717 -2.33899 28.0634 +-402.248 -2.04346 24.5176 +-403.546 -1.75661 21.0759 +-402.716 -1.46042 17.5222 +-402.854 -1.16847 14.0194 +-144.051 -0.313306 3.75907 +-145.578 -0.211058 2.53229 +-145.894 -0.10575 1.2688 +119.6 2.66454e-15 -1.13687e-13 +119.695 -0.0773661 1.0417 +120.382 -0.155631 2.0955 +119.459 -0.231686 3.11956 +120.227 -0.310955 4.18688 +119.986 -0.388003 5.2243 +120.335 -0.467089 6.28916 +120.175 -0.544395 7.33005 +120.605 -0.624631 8.4104 +120.328 -0.701396 9.444 +120.44 -0.78043 10.5082 +120.343 -0.85825 11.556 +120.437 -0.937544 12.6236 +120.918 -1.02038 13.739 +120.694 -1.09759 14.7786 +121.353 -1.18329 15.9325 +120.912 -1.25859 16.9463 +120.363 -1.33231 17.939 +121.091 -1.42048 19.1262 +120.031 -1.48769 20.0311 +120.442 -1.57293 21.1789 +120.94 -1.66017 22.3534 +120.642 -1.73685 23.386 +120.433 -1.81476 24.435 +120.899 -1.90331 25.6273 +120.67 -1.98138 26.6784 +120.432 -2.0593 27.7276 +120.768 -2.14743 28.9143 +120.705 -2.22899 30.0124 +121.115 -2.3199 31.2365 +121.127 -2.40385 32.3668 +121.514 -2.4959 33.6062 +121.792 -2.58659 34.8274 +120.907 -2.65259 35.7159 +121.259 -2.74579 36.9709 +120.931 -2.82406 38.0248 +121.355 -2.92043 39.3223 +121.954 -3.02225 40.6933 +121.877 -3.10819 41.8504 +121.789 -3.19426 43.0093 +121.126 -3.26526 43.9653 +117.552 -3.25523 43.8303 +114.457 -3.25411 43.8152 +110.813 -3.23296 43.5304 +108.11 -3.23509 43.5591 +105.415 -3.23399 43.5443 +102.82 -3.23254 43.5248 +99.5927 -3.20732 43.1852 +97.2012 -3.2053 43.1579 +96.4559 -3.25571 43.8368 +97.2468 -3.35862 45.2224 +96.7571 -3.41816 46.024 +97.8787 -3.53576 47.6075 +97.5478 -3.60219 48.502 +96.9415 -3.65838 49.2585 +96.5068 -3.72089 50.1002 +96.7711 -3.81095 51.3128 +97.0214 -3.90162 52.5336 +97.2577 -3.9929 53.7627 +96.8706 -4.05926 54.6562 +97.1681 -4.15505 55.9459 +96.5886 -4.21393 56.7388 +96.7742 -4.30672 57.9881 +96.2631 -4.3691 58.8281 +95.575 -4.4233 59.5579 +96.5683 -4.55654 61.3518 +95.9439 -4.61474 62.1356 +96.147 -4.71337 63.4635 +96.2513 -4.80847 64.744 +96.3404 -4.90406 66.031 +96.4961 -5.00437 67.3817 +96.6355 -5.10525 68.7401 +96.6775 -5.20235 70.0474 +96.0609 -5.26463 70.8861 +96.0759 -5.36218 72.1995 +96.0751 -5.46014 73.5185 +96.1373 -5.56307 74.9044 +96.1825 -5.66649 76.2969 +96.133 -5.76573 77.6331 +96.1444 -5.87004 79.0376 +96.1386 -5.97481 80.4482 +95.9632 -6.07039 81.7352 +95.9236 -6.17592 83.1561 +96.5404 -6.32602 85.1771 +96.3859 -6.42782 86.5478 +96.2884 -6.53491 87.9898 +96.173 -6.64235 89.4365 +96.1121 -6.75524 90.9565 +95.888 -6.85827 92.3437 +95.7182 -6.9667 93.8037 +96.1665 -7.12257 95.9024 +96.0246 -7.23728 97.4469 +95.7934 -7.34702 98.9245 +96.1631 -7.50537 101.057 +95.889 -7.61595 102.546 +95.596 -7.72683 104.038 +95.7526 -7.87637 106.052 +95.4173 -7.98791 107.554 +95.6534 -8.14989 109.735 +95.7936 -8.30713 111.852 +95.7754 -8.45385 113.828 +95.2845 -8.5611 115.272 +95.342 -8.72026 117.415 +95.556 -8.89743 119.8 +95.4891 -9.05222 121.884 +95.4538 -9.21353 124.056 +95.2071 -9.35767 125.997 +95.1716 -9.52602 128.264 +95.1037 -9.69503 130.539 +95.1772 -9.88279 133.068 +94.8695 -10.0349 135.116 +94.8164 -10.2179 137.58 +94.7832 -10.4078 140.136 +95.0987 -10.6416 143.284 +94.7127 -10.802 145.444 +95.102 -11.0564 148.87 +94.6966 -11.2243 151.13 +94.3632 -11.405 153.564 +94.561 -11.656 156.944 +94.6052 -11.8954 160.167 +94.6 -12.1357 163.402 +94.4961 -12.3704 166.562 +94.5379 -12.6319 170.083 +94.716 -12.9203 173.966 +94.5046 -13.1641 177.249 +94.6585 -13.4678 181.338 +94.3392 -13.7132 184.642 +94.3262 -14.0123 188.669 +94.5567 -14.359 193.338 +94.368 -14.6535 197.304 +94.4974 -15.0093 202.093 +94.1768 -15.3057 206.084 +94.2002 -15.6704 210.996 +94.2244 -16.05 216.106 +94.1271 -16.4239 221.141 +94.5228 -16.9015 227.571 +94.2136 -17.271 232.547 +94.4474 -17.7585 239.11 +94.3583 -18.2061 245.137 +94.1007 -18.641 250.993 +94.0555 -19.1395 257.705 +93.7997 -19.6185 264.154 +93.6985 -20.1546 271.373 +93.7001 -20.7412 279.271 +93.5394 -21.3222 287.094 +93.2188 -21.8975 294.84 +93.5297 -22.6581 305.082 +93.1002 -23.2787 313.438 +93.2481 -24.0856 324.302 +93.3998 -24.9443 335.864 +93.2784 -25.7835 347.164 +93.2165 -26.6961 359.451 +96.4301 -28.6454 385.698 +107.665 -33.215 447.225 +103.455 -33.1895 446.882 +99.2159 -33.1466 446.305 +95.182 -33.166 446.566 +92.4469 -33.6545 453.143 +92.1226 -35.1016 472.628 +92.2112 -36.8493 496.161 +91.9641 -38.6289 520.122 +91.915 -40.6811 547.753 +91.7957 -42.9263 577.984 +91.7305 -45.4598 612.097 +91.2976 -48.1138 647.832 +91.3553 -51.3946 692.006 +91.1217 -54.9656 740.089 +96.4831 -62.7198 844.495 +90.5635 -63.8184 859.287 +90.0471 -69.2637 932.606 +90.8163 -76.8817 1035.18 +89.5767 -84.2993 1135.05 +88.228 -93.4493 1258.25 +88.148 -106.743 1437.25 +87.5057 -123.667 1665.12 +79.0645 -134.122 1805.9 +114.341 -242.511 3265.31 +85.774 -242.606 3266.58 +57.1863 -242.652 3267.2 +28.5942 -242.68 3267.58 +1.47771e-13 -242.689 3267.7 +-28.5942 -242.68 3267.58 +-57.1863 -242.652 3267.2 +-85.774 -242.606 3266.58 +-114.355 -242.541 3265.71 +-142.928 -242.458 3264.59 +-125.13 -176.839 2381.06 +-125.241 -151.661 2042.05 +-119.988 -127.089 1711.2 +-142.238 -133.858 1802.35 +-120.475 -101.99 1373.26 +-141.267 -108.661 1463.08 +-110.079 -77.5705 1044.45 +-118.478 -77.0179 1037.01 +-128.219 -77.3431 1041.39 +-148.761 -83.6897 1126.85 +-456.028 -240.327 3235.9 +-143.538 -71.1344 957.795 +-111.538 -52.1582 702.288 +-117.167 -51.8576 698.241 +-123.585 -51.9113 698.963 +-146.444 -58.522 787.974 +-625.224 -238.23 3207.67 +-653.269 -237.817 3202.1 +-681.264 -237.386 3196.3 +-138.391 -46.2346 622.529 +-142.799 -45.8114 616.831 +-146.58 -45.2204 608.874 +-162.015 -48.1279 648.022 +-142.667 -40.858 550.136 +-142.221 -39.3119 529.318 +-146.473 -39.1186 526.715 +-903.071 -233.259 3140.73 +-100.627 -25.1606 338.777 +-109.084 -26.4262 355.817 +-108.916 -25.5847 344.487 +-117.087 -26.6897 359.365 +-115.118 -25.4822 343.107 +-125.148 -26.9194 362.459 +-118.635 -24.8129 334.095 +-1120.56 -228.025 3070.25 +-1147.52 -227.319 3060.76 +-1174.26 -226.569 3050.66 +-445.739 -83.8097 1128.46 +-539.733 -98.9427 1332.22 +-414.599 -74.1339 998.181 +-412.299 -71.9406 968.649 +-158.184 -26.9447 362.799 +-161.556 -26.8752 361.863 +-163.928 -26.6418 358.72 +-167.991 -26.6824 359.268 +-408.168 -63.3804 853.391 +-140.849 -21.3887 287.99 +-141.4 -21.0052 282.826 +-144.641 -21.0252 283.095 +-147.575 -20.9966 282.71 +-410.13 -57.1295 769.224 +-412.265 -56.2374 757.213 +-415.046 -55.457 746.705 +-416.787 -54.5614 734.646 +-418.5 -53.687 722.872 +-419.836 -52.7891 710.782 +-421.507 -51.957 699.579 +-431.009 -52.0931 701.411 +-434.375 -51.4859 693.236 +-428.98 -49.8727 671.515 +-431.79 -49.2457 663.072 +-433.933 -48.5571 653.8 +-437.289 -48.0168 646.526 +-439.475 -47.3601 637.684 +-442.572 -46.8134 630.322 +-444.122 -46.1155 620.926 +-446.893 -45.5571 613.407 +-449.091 -44.9509 605.245 +-451.421 -44.3691 597.411 +-453.588 -43.7819 589.504 +-462.423 -43.8372 590.249 +-459.914 -42.8237 576.603 +-467.648 -42.7723 575.911 +-465.037 -41.7826 562.586 +-468.206 -41.3273 556.454 +-471.24 -40.8654 550.236 +-473.74 -40.3636 543.479 +-476.424 -39.8839 537.02 +-479.566 -39.4479 531.149 +-482.371 -38.989 524.97 +-484.833 -38.5078 518.491 +-487.768 -38.0694 512.588 +-490.568 -37.6249 506.603 +-493.65 -37.2059 500.962 +-496.035 -36.7388 494.673 +-499.061 -36.3234 489.079 +-501.596 -35.876 483.055 +-382.708 -26.8986 362.179 +-381.913 -26.3775 355.162 +-382.205 -25.9395 349.264 +-380.119 -25.3495 341.32 +-381.593 -25.0047 336.678 +-382.109 -24.6016 331.251 +-141.816 -8.9709 120.789 +-142.025 -8.82655 118.846 +-142.828 -8.72026 117.415 +-141.751 -8.50177 114.473 +-142.043 -8.36831 112.676 +-145.467 -8.41756 113.339 +-146.929 -8.35031 112.433 +-153.338 -8.55806 115.231 +-155.868 -8.54236 115.019 +-156.949 -8.44563 113.717 +-157.938 -8.34386 112.347 +-160.472 -8.32224 112.055 +-381.406 -19.4149 261.413 +-379.533 -18.9606 255.296 +-379.168 -18.5878 250.277 +-381.26 -18.338 246.913 +-380.707 -17.9635 241.871 +-379.841 -17.5794 236.699 +-380.107 -17.252 232.29 +-379.125 -16.8721 227.175 +-380.323 -16.5926 223.412 +-379.146 -16.2128 218.299 +-379.736 -15.9124 214.254 +-379.585 -15.5838 209.829 +-378.858 -15.2354 205.138 +-379.579 -14.9482 201.272 +-379.286 -14.6237 196.902 +-377.965 -14.2637 192.054 +-379.005 -13.9957 188.446 +-378.662 -13.6788 184.179 +-379.447 -13.4048 180.49 +-380.015 -13.1246 176.717 +-379.636 -12.814 172.535 +-380.309 -12.541 168.859 +-380.03 -12.2386 164.788 +-379.708 -11.9376 160.734 +-378.144 -11.6009 156.202 +-376.715 -11.2729 151.785 +-379.424 -11.0697 149.048 +-380.434 -10.8161 145.634 +-379.54 -10.5101 141.514 +-112.763 -3.0398 40.9297 +-111.043 -2.91241 39.2144 +-109.586 -2.79472 37.6297 +-109.437 -2.71204 36.5164 +-108.325 -2.60686 35.1003 +-108.438 -2.5323 34.0963 +-109.21 -2.47294 33.2971 +-108.443 -2.37912 32.0339 +-109.199 -2.31915 31.2264 +-109.758 -2.25443 30.3549 +-110.405 -2.19106 29.5017 +-108.917 -2.08625 28.0904 +-110.323 -2.03727 27.431 +-110.17 -1.95897 26.3768 +-110.786 -1.89435 25.5067 +-111.981 -1.83871 24.7574 +-113.074 -1.78012 23.9686 +-114.553 -1.72617 23.2421 +-117.108 -1.68598 22.701 +-126.348 -1.7344 23.353 +-156.092 -2.03851 27.4476 +-158.496 -1.96444 26.4504 +-159.314 -1.86887 25.1636 +-160.418 -1.77569 23.9089 +-850.244 -8.85032 119.166 +-861.07 -8.39615 113.051 +-378.954 -3.44622 46.4019 +-379.644 -3.20367 43.1361 +-896.263 -6.977 93.9424 +-403.633 -2.87857 38.7588 +-402.164 -2.60596 35.0882 +-403.353 -2.35116 31.6574 +-403.116 -2.08779 28.1112 +-402.248 -1.82219 24.535 +-403.047 -1.56446 21.0648 +-403.316 -1.30422 17.5607 +-402.455 -1.04091 14.0154 +-144.95 -0.281125 3.78523 +-146.178 -0.18898 2.54453 +-146.094 -0.0944291 1.27145 +119.6 2.66454e-15 -1.13687e-13 +119.695 -0.0679652 1.04236 +120.482 -0.136833 2.09855 +120.359 -0.205066 3.14502 +121.026 -0.274987 4.21737 +120.186 -0.341424 5.23629 +119.536 -0.407608 6.25134 +120.275 -0.478643 7.34076 +120.605 -0.548732 8.41569 +120.428 -0.616679 9.45778 +120.639 -0.686738 10.5322 +120.244 -0.753339 11.5537 +120.437 -0.823622 12.6316 +120.123 -0.890503 13.6573 +119.8 -0.957084 14.6784 +120.461 -1.03186 15.8253 +120.912 -1.10565 16.957 +120.561 -1.17235 17.9798 +120.202 -1.23872 18.9978 +120.919 -1.31658 20.1919 +120.344 -1.38067 21.1748 +120.94 -1.45844 22.3675 +120.642 -1.52581 23.4007 +120.531 -1.59555 24.4703 +120.997 -1.67339 25.6642 +120.67 -1.74062 26.6952 +121.309 -1.82224 27.9471 +120.963 -1.88953 28.9791 +120.802 -1.95972 30.0555 +121.115 -2.03801 31.2561 +120.837 -2.1067 32.3097 +121.514 -2.19262 33.6274 +120.927 -2.25615 34.6017 +121.578 -2.3432 35.9368 +121.451 -2.41595 37.0525 +121.79 -2.49851 38.3187 +121.355 -2.56556 39.347 +121.954 -2.65501 40.7189 +121.877 -2.73051 41.8768 +121.695 -2.80395 43.0032 +121.126 -2.86849 43.993 +117.459 -2.85741 43.8229 +114.457 -2.8587 43.8428 +110.813 -2.84012 43.5578 +108.202 -2.84443 43.624 +104.676 -2.8211 43.2661 +102.176 -2.82196 43.2793 +99.6844 -2.82019 43.2522 +97.9321 -2.83699 43.5098 +96.5469 -2.86281 43.9058 +97.2468 -2.95051 45.2508 +96.8474 -3.00561 46.0959 +97.8787 -3.10612 47.6374 +97.9058 -3.1761 48.7106 +96.9415 -3.21385 49.2895 +96.5068 -3.26876 50.1317 +96.7711 -3.34787 51.3451 +97.1093 -3.43063 52.6143 +96.6455 -3.48564 53.458 +96.8706 -3.56601 54.6906 +97.1681 -3.65016 55.9811 +96.761 -3.7085 56.8758 +96.7742 -3.7834 58.0246 +97.1157 -3.8722 59.3865 +96.4231 -3.9203 60.1241 +96.737 -4.00986 61.4977 +96.6987 -4.0859 62.6638 +96.8975 -4.17297 63.9992 +96.2513 -4.22419 64.7847 +96.3404 -4.30816 66.0726 +96.4961 -4.39628 67.4241 +95.9028 -4.45091 68.2618 +96.0303 -4.53961 69.6223 +96.704 -4.65589 71.4056 +96.0759 -4.71061 72.2449 +96.8684 -4.83629 74.1723 +96.1373 -4.8871 74.9515 +96.2608 -4.982 76.4071 +96.133 -5.06513 77.6819 +96.1444 -5.15677 79.0874 +96.062 -5.24462 80.4348 +95.9632 -5.33277 81.7866 +95.9991 -5.42974 83.2739 +96.6153 -5.56165 85.2969 +95.8657 -5.61629 86.1349 +96.2884 -5.74084 88.0451 +96.173 -5.83523 89.4928 +96.0396 -5.92992 90.945 +95.9599 -6.02943 92.471 +96.2888 -6.15666 94.4223 +96.1665 -6.2571 95.9627 +95.3237 -6.31147 96.7966 +95.7934 -6.45428 98.9868 +96.1631 -6.59339 101.12 +95.889 -6.69053 102.61 +96.2716 -6.83589 104.839 +95.8864 -6.92899 106.267 +96.0799 -7.06602 108.369 +95.6534 -7.15959 109.804 +95.7936 -7.29772 111.922 +95.1326 -7.37677 113.135 +95.2845 -7.52083 115.344 +95.405 -7.66566 117.565 +95.4315 -7.80614 119.72 +95.4891 -7.95228 121.961 +95.3929 -8.08878 124.055 +95.147 -8.2154 125.996 +95.3501 -8.38418 128.585 +95.28 -8.53279 130.864 +95.1772 -8.68192 133.151 +94.8695 -8.81556 135.201 +94.9297 -8.98707 137.831 +94.8391 -9.1485 140.307 +95.1539 -9.35391 143.457 +94.8761 -9.50577 145.786 +94.6185 -9.66356 148.206 +94.8026 -9.87144 151.395 +94.938 -10.0802 154.597 +94.5095 -10.2341 156.957 +94.6052 -10.45 160.268 +94.65 -10.6667 163.592 +94.5453 -10.8729 166.754 +94.5864 -11.1026 170.276 +94.716 -11.3503 174.075 +94.5046 -11.5645 177.36 +94.6585 -11.8313 181.452 +94.3392 -12.0469 184.759 +94.2816 -12.3038 188.699 +94.6005 -12.6201 193.549 +94.368 -12.873 197.428 +94.4974 -13.1855 202.221 +94.2183 -13.4518 206.305 +94.6069 -13.8258 212.041 +94.2244 -14.0997 216.242 +94.1662 -14.4342 221.372 +94.2167 -14.7997 226.977 +94.251 -15.1784 232.785 +94.484 -15.6067 239.354 +94.2866 -15.9817 245.105 +94.1007 -16.3759 251.151 +93.8503 -16.7772 257.306 +93.8999 -17.253 264.603 +93.7636 -17.7179 271.732 +93.8587 -18.2517 279.92 +93.354 -18.6942 286.705 +93.6398 -19.3235 296.358 +93.6467 -19.9297 305.655 +93.2706 -20.4875 314.209 +93.2757 -21.1651 324.602 +93.2929 -21.8881 335.69 +93.2525 -22.6442 347.286 +93.0913 -23.4207 359.194 +96.2607 -25.1205 385.263 +107.688 -29.1853 447.604 +103.477 -29.1629 447.26 +99.3674 -29.1634 447.267 +95.2028 -29.1423 446.945 +92.3273 -29.5268 452.841 +92.0463 -30.8108 472.534 +92.1201 -32.3397 495.982 +91.7904 -33.871 519.466 +91.6179 -35.6224 546.327 +91.608 -37.6331 577.164 +91.7896 -39.9617 612.878 +91.2976 -42.2674 648.239 +91.2117 -45.0786 691.354 +90.9145 -48.1769 738.87 +96.4944 -55.1051 845.126 +90.3858 -55.9537 858.141 +90.0471 -60.8474 933.193 +90.7378 -67.4818 1034.94 +89.4826 -73.9779 1134.57 +88.221 -82.0876 1258.95 +87.6657 -93.2593 1430.28 +87.4324 -108.549 1664.77 +79.0427 -117.793 1806.54 +66.85 -124.556 1910.27 +85.7531 -213.074 3267.84 +57.1723 -213.115 3268.46 +28.5873 -213.139 3268.84 +1.4766e-13 -213.147 3268.96 +-28.5873 -213.139 3268.84 +-57.1723 -213.115 3268.46 +-85.7531 -213.074 3267.84 +-114.327 -213.017 3266.96 +-106.235 -158.315 2428.02 +-125.229 -155.475 2384.46 +-125.546 -133.557 2048.31 +-119.981 -111.64 1712.17 +-142.364 -117.697 1805.08 +-120.467 -89.591 1374.02 +-138.564 -93.6315 1435.99 +-109.839 -67.9958 1042.83 +-118.456 -67.6464 1037.47 +-128.072 -67.8676 1040.86 +-148.865 -73.5719 1128.34 +-455.973 -211.099 3237.55 +-143.493 -62.4716 958.102 +-111.616 -45.8525 703.223 +-117.134 -45.5435 698.484 +-123.585 -45.6035 699.403 +-146.135 -51.3021 786.801 +-625.224 -209.282 3209.68 +-653.269 -208.919 3204.12 +-681.181 -208.515 3197.91 +-709.208 -208.146 3192.25 +-142.866 -40.2638 617.511 +-146.627 -39.7383 609.452 +-158.507 -41.3645 634.391 +-142.541 -35.8618 549.998 +-142.454 -34.5917 530.519 +-146.928 -34.4718 528.681 +-151.435 -34.3621 526.998 +-108.977 -23.9374 367.119 +-111.247 -23.6756 363.103 +-114.238 -23.5742 361.549 +-117.457 -23.5209 360.731 +-120.861 -23.5026 360.451 +-124.986 -23.6177 362.216 +-1093.78 -200.97 3082.2 +-1120.7 -200.342 3072.57 +-1147.52 -199.698 3062.69 +-1174.26 -199.039 3052.58 +-381.418 -63.0018 966.234 +-540.033 -86.9682 1333.8 +-380.311 -59.7397 916.205 +-412.417 -63.2169 969.534 +-158.184 -23.6706 363.027 +-161.718 -23.6334 362.456 +-164.55 -23.4933 360.308 +-167.991 -23.4402 359.494 +-408.081 -55.6673 853.748 +-141.243 -18.8423 288.977 +-141.355 -18.447 282.914 +-144.778 -18.4878 283.54 +-147.529 -18.4395 282.799 +-410.553 -50.2394 770.502 +-412.885 -49.4782 758.829 +-415.046 -48.7184 747.175 +-416.689 -47.9202 734.934 +-418.7 -47.186 723.673 +-419.988 -46.3914 711.487 +-422.022 -45.6994 700.875 +-429.598 -45.6134 699.556 +-430.559 -44.8325 687.579 +-429.41 -43.8565 672.61 +-431.626 -43.2454 663.238 +-433.933 -42.6568 654.212 +-436.953 -42.1499 646.437 +-439.475 -41.6053 638.085 +-442.4 -41.109 630.473 +-444.877 -40.5808 622.372 +-446.893 -40.0214 613.793 +-449.091 -39.4889 605.626 +-450.94 -38.9362 597.15 +-453.771 -38.4774 590.113 +-461.254 -38.4131 589.127 +-458.669 -37.5183 575.404 +-465.76 -37.4233 573.947 +-465.228 -36.7206 563.17 +-468.978 -36.3654 557.722 +-471.24 -35.8998 550.582 +-473.74 -35.459 543.821 +-476.623 -35.0522 537.582 +-479.365 -34.64 531.261 +-482.507 -34.261 525.447 +-484.764 -33.8239 518.744 +-488.319 -33.4813 513.491 +-491.54 -33.1185 507.926 +-493.37 -32.6665 500.993 +-496.672 -32.3161 495.62 +-499.133 -31.9142 489.457 +-502.243 -31.5573 483.982 +-382.708 -23.6301 362.406 +-379.646 -23.0347 353.275 +-381.099 -22.7216 348.473 +-381.085 -22.3258 342.403 +-380.694 -21.9146 336.096 +-2472.81 -139.863 2145.03 +-141.664 -7.87238 120.736 +-141.259 -7.71219 118.279 +-142.828 -7.66065 117.489 +-141.674 -7.46461 114.482 +-142.2 -7.3596 112.871 +-144.364 -7.33865 112.55 +-146.453 -7.31184 112.139 +-154.376 -7.56911 116.084 +-155.868 -7.50437 115.092 +-156.949 -7.41939 113.788 +-158.183 -7.34138 112.592 +-160.226 -7.2998 111.954 +-380.911 -17.0336 261.238 +-381.191 -16.7294 256.572 +-380.669 -16.3938 251.425 +-379.918 -16.053 246.198 +-382.056 -15.8367 242.881 +-381.452 -15.5088 237.853 +-380.363 -15.1659 232.593 +-379.725 -14.8454 227.679 +-379.978 -14.5632 223.35 +-379.233 -14.246 218.486 +-379.388 -13.9661 214.192 +-380.285 -13.7154 210.348 +-379.473 -13.4059 205.6 +-379.579 -13.1319 201.398 +-380.794 -12.8978 197.809 +-378.5 -12.5482 192.446 +-379.81 -12.3211 188.965 +-379.651 -12.048 184.776 +-380.62 -11.8124 181.162 +-380.831 -11.5545 177.208 +-379.272 -11.2461 172.478 +-379.395 -10.9907 168.56 +-379.204 -10.7282 164.534 +-378.051 -10.4412 160.133 +-378.513 -10.2013 156.453 +-379.867 -9.98596 153.151 +-379.424 -9.72459 149.142 +-378.1 -9.44351 144.831 +-380.476 -9.25579 141.953 +-113.703 -2.69269 41.2967 +-111.137 -2.5607 39.2724 +-109.586 -2.45513 37.6533 +-109.626 -2.38662 36.6027 +-108.611 -2.29613 35.2149 +-108.533 -2.22655 34.1478 +-108.541 -2.15914 33.1139 +-108.538 -2.09188 32.0824 +-108.526 -2.0248 31.0536 +-110.239 -1.98918 30.5073 +-109.826 -1.91472 29.3653 +-109.594 -1.84414 28.2829 +-110.226 -1.78814 27.4241 +-110.072 -1.71941 26.37 +-110.786 -1.66417 25.5227 +-112.079 -1.6167 24.7946 +-113.074 -1.56382 23.9837 +-114.553 -1.51642 23.2567 +-117.403 -1.48484 22.7724 +-126.25 -1.52246 23.3494 +-157.668 -1.80889 27.7422 +-159.68 -1.73862 26.6646 +-159.808 -1.64687 25.2575 +-163.188 -1.58685 24.3369 +-3244.61 -29.6698 455.035 +-862.16 -7.3853 113.265 +-379.748 -3.03381 46.5284 +-379.942 -2.8166 43.1972 +-3258.55 -22.2841 341.762 +-404.031 -2.53129 38.8214 +-403.658 -2.29781 35.2407 +-403.951 -2.06853 31.7242 +-403.116 -1.8341 28.1289 +-403.147 -1.60435 24.6053 +-402.548 -1.37266 21.0519 +-403.316 -1.14574 17.5718 +-403.054 -0.915794 14.0452 +-144.051 -0.245433 3.76411 +-145.578 -0.165335 2.53569 +-146.494 -0.083182 1.27573 +119.5 2.66454e-15 -1.13687e-13 +119.795 -0.0586076 1.0438 +120.282 -0.1177 2.09622 +120.359 -0.176685 3.14674 +119.927 -0.234777 4.18135 +120.186 -0.294171 5.23916 +120.335 -0.353543 6.29656 +120.275 -0.412399 7.34478 +120.506 -0.472396 8.41333 +120.328 -0.530891 9.45512 +120.34 -0.590225 10.5118 +120.244 -0.649077 11.56 +120.238 -0.708461 12.6176 +121.216 -0.774237 13.7891 +120.396 -0.828727 14.7596 +120.461 -0.889054 15.834 +120.813 -0.951852 16.9524 +120.462 -1.00926 17.9749 +120.893 -1.07342 19.1175 +120.919 -1.13437 20.203 +120.344 -1.18959 21.1864 +120.055 -1.2474 22.216 +120.544 -1.31356 23.3945 +120.433 -1.3736 24.4638 +120.899 -1.44063 25.6575 +120.67 -1.49972 26.7098 +120.432 -1.5587 27.7603 +120.185 -1.61755 28.8084 +120.705 -1.68714 30.0478 +121.309 -1.75876 31.3233 +120.741 -1.81368 32.3015 +121.514 -1.88916 33.6458 +120.927 -1.9439 34.6207 +121.578 -2.0189 35.9565 +121.259 -2.0783 37.0144 +120.931 -2.13755 38.0695 +121.355 -2.21049 39.3686 +121.291 -2.27511 40.5195 +121.783 -2.35079 41.8673 +121.695 -2.41589 43.0267 +121.784 -2.48492 44.2561 +117.552 -2.4639 43.8819 +114.457 -2.46306 43.8668 +110.813 -2.44705 43.5817 +108.202 -2.45076 43.6479 +105.507 -2.44997 43.6337 +102.728 -2.44454 43.537 +100.418 -2.44776 43.5943 +97.2012 -2.42611 43.2087 +96.4559 -2.46427 43.8884 +97.1562 -2.53979 45.2335 +96.7571 -2.58723 46.0782 +97.7888 -2.67378 47.6198 +97.9953 -2.73903 48.7819 +96.9415 -2.76905 49.3165 +96.5955 -2.81896 50.2053 +96.7711 -2.88453 51.3732 +97.0214 -2.95316 52.5955 +95.7709 -2.97605 53.0032 +96.9576 -3.07524 54.7697 +96.302 -3.11695 55.5126 +96.6748 -3.1924 56.8562 +96.7742 -3.25978 58.0564 +96.2631 -3.307 58.8973 +96.4231 -3.37773 60.157 +96.5683 -3.44887 61.4241 +96.6987 -3.52041 62.6981 +96.8975 -3.59543 64.0342 +96.2513 -3.63956 64.8202 +96.3404 -3.71191 66.1088 +96.4961 -3.78784 67.461 +95.9842 -3.83816 68.3572 +95.9494 -3.90803 69.6017 +95.9805 -3.9815 70.9101 +96.0759 -4.05867 72.2844 +96.1544 -4.13623 73.6659 +96.0585 -4.20727 74.9311 +96.1825 -4.289 76.3867 +96.0552 -4.36059 77.6617 +96.1444 -4.44307 79.1307 +96.062 -4.51877 80.4788 +96.0393 -4.59836 81.8963 +95.9236 -4.67459 83.254 +96.6153 -4.79192 85.3436 +95.7914 -4.83525 86.1153 +96.2884 -4.94631 88.0933 +95.5879 -4.99705 88.997 +96.1121 -5.11309 91.0636 +95.888 -5.19107 92.4524 +96.3601 -5.3085 94.5439 +95.5301 -5.35544 95.3799 +96.0246 -5.47794 97.5616 +95.7239 -5.55697 98.9691 +96.1631 -5.68086 101.176 +95.8208 -5.76047 102.593 +96.0689 -5.87741 104.676 +95.7526 -5.96167 106.177 +95.4173 -6.0461 107.68 +95.5878 -6.16444 109.788 +95.339 -6.25789 111.452 +95.1968 -6.36009 113.273 +95.3481 -6.48432 115.485 +95.4679 -6.60911 117.708 +95.4315 -6.72577 119.785 +95.4275 -6.84731 121.95 +95.4538 -6.97378 124.202 +95.2071 -7.08288 126.145 +95.3501 -7.22381 128.655 +95.1037 -7.33823 130.693 +95.1772 -7.48034 133.224 +94.8695 -7.59549 135.275 +94.873 -7.73861 137.824 +94.7273 -7.87304 140.218 +95.0987 -8.05468 143.453 +94.8761 -8.19018 145.866 +94.6722 -8.33089 148.372 +94.8026 -8.50524 151.477 +94.4677 -8.64208 153.915 +94.561 -8.82254 157.129 +94.6559 -9.00854 160.441 +94.6 -9.18558 163.594 +94.6438 -9.37787 167.019 +94.5864 -9.56601 170.37 +94.716 -9.77943 174.171 +94.5046 -9.96398 177.457 +94.6123 -10.1889 181.463 +94.7024 -10.4196 185.572 +94.6832 -10.6461 189.606 +94.5567 -10.8684 193.565 +94.368 -11.0914 197.536 +94.4552 -11.3556 202.241 +94.5915 -11.636 207.236 +94.2409 -11.8662 211.335 +94.2244 -12.1483 216.36 +94.3616 -12.4623 221.952 +94.2167 -12.7514 227.101 +94.2136 -13.0725 232.82 +94.484 -13.4467 239.485 +94.2866 -13.7698 245.239 +94.1708 -14.1199 251.475 +93.7819 -14.4447 257.259 +93.6328 -14.8229 263.995 +93.7311 -15.2604 271.787 +93.6366 -15.6885 279.41 +93.354 -16.1069 286.862 +93.3992 -16.6064 295.758 +93.3835 -17.1233 304.964 +93.5263 -17.7004 315.242 +93.1654 -18.2143 324.395 +93.1593 -18.8319 335.394 +93.0196 -19.4615 346.608 +93.1664 -20.1956 359.681 +95.8736 -21.5567 383.923 +107.595 -25.1242 447.46 +103.522 -25.1377 447.7 +99.454 -25.1491 447.903 +95.1404 -25.0926 446.896 +92.3273 -25.4403 453.089 +91.9699 -26.5246 472.4 +92.0289 -27.8364 495.763 +91.8078 -29.1888 519.849 +91.6179 -30.6923 546.626 +91.5924 -32.4192 577.383 +91.6123 -34.3645 612.028 +91.1723 -36.3677 647.705 +91.0812 -38.7842 690.742 +90.9023 -41.5036 739.176 +96.3925 -47.4284 844.696 +90.3753 -48.2042 858.512 +89.9512 -52.3703 932.71 +90.7378 -58.1423 1035.51 +89.3649 -63.6558 1133.7 +88.1443 -70.6651 1258.54 +87.3849 -80.0949 1426.48 +87.3539 -93.4418 1664.19 +79.0601 -101.512 1807.92 +66.9023 -107.402 1912.82 +85.7531 -183.585 3269.63 +57.1723 -183.62 3270.25 +28.5873 -183.641 3270.63 +1.41887e-13 -183.648 3270.75 +-28.5873 -183.641 3270.63 +-57.1723 -183.62 3270.25 +-85.7531 -183.585 3269.63 +-114.327 -183.536 3268.75 +-106.095 -136.225 2426.16 +-125.229 -133.957 2385.76 +-125.559 -115.084 2049.63 +-119.981 -96.1887 1713.11 +-142.325 -101.38 1805.57 +-120.502 -77.214 1375.17 +-137.97 -80.327 1430.62 +-110.006 -58.6743 1044.98 +-118.388 -58.2511 1037.45 +-127.999 -58.4411 1040.83 +-148.591 -63.273 1126.89 +-455.973 -181.883 3239.32 +-143.553 -53.8477 959.021 +-111.616 -39.5065 703.608 +-117.035 -39.2071 698.275 +-123.585 -39.292 699.786 +-146.062 -44.1799 786.84 +-625.224 -180.318 3211.44 +-653.269 -180.005 3205.87 +-681.264 -179.679 3200.06 +-709.208 -179.338 3194 +-142.641 -34.6367 616.876 +-146.884 -34.2985 610.853 +-158.096 -35.5471 633.091 +-142.692 -30.9311 550.879 +-142.635 -29.8421 531.485 +-146.821 -29.6794 528.586 +-151.325 -29.5848 526.903 +-108.977 -20.6245 367.32 +-111.247 -20.3989 363.302 +-114.208 -20.3063 361.652 +-117.21 -20.2229 360.169 +-120.83 -20.2446 360.554 +-124.953 -20.3437 362.319 +-1093.78 -173.156 3083.89 +-1120.7 -172.615 3074.25 +-1147.52 -172.06 3064.36 +-1174.26 -171.492 3054.25 +-1200.84 -170.9 3043.72 +-1227.4 -170.307 3033.14 +-381.229 -51.5961 918.922 +-413.12 -54.5606 971.719 +-158.503 -20.4357 363.958 +-161.393 -20.3216 361.925 +-164.758 -20.2673 360.959 +-168.118 -20.2113 359.962 +-408.684 -48.0338 855.477 +-140.98 -16.2043 288.597 +-141.311 -15.8889 282.98 +-144.641 -15.9141 283.429 +-147.667 -15.9024 283.22 +-411.257 -43.3605 772.246 +-412.408 -42.5812 758.368 +-415.046 -41.9758 747.584 +-416.689 -41.2881 735.337 +-418.5 -40.636 723.723 +-419.836 -39.9564 711.619 +-421.662 -39.341 700.659 +-428.815 -39.2288 698.662 +-427.433 -38.3472 682.96 +-429.41 -37.7867 672.978 +-432.117 -37.3025 664.355 +-434.098 -36.7672 654.82 +-436.786 -36.3024 646.543 +-439.645 -35.861 638.681 +-441.883 -35.3782 630.083 +-444.877 -34.9644 622.713 +-447.481 -34.5278 614.936 +-449.27 -34.0371 606.198 +-451.783 -33.6101 598.593 +-453.771 -33.1521 590.436 +-460.699 -33.0569 588.741 +-457.735 -32.26 574.547 +-467.27 -32.3485 576.124 +-465.673 -31.6688 564.018 +-468.206 -31.2809 557.11 +-471.434 -30.9441 551.111 +-473.74 -30.5515 544.119 +-476.358 -30.1842 537.577 +-479.7 -29.8667 531.923 +-482.507 -29.5192 525.735 +-484.423 -29.1222 518.664 +-488.319 -28.8475 513.772 +-490.915 -28.4986 507.558 +-493.58 -28.1574 501.481 +-496.035 -27.8078 495.255 +-498.847 -27.4816 489.445 +-502.027 -27.1781 484.04 +-2376.69 -126.438 2251.84 +-381.255 -19.9309 354.967 +-382.057 -19.6262 349.54 +-380.862 -19.2247 342.39 +-380.919 -18.8928 336.479 +-383.166 -18.6726 332.557 +-141.588 -6.7792 120.737 +-142.025 -6.68087 118.986 +-142.905 -6.60401 117.617 +-141.674 -6.43151 114.545 +-142.122 -6.33755 112.871 +-143.733 -6.2954 112.12 +-145.739 -6.26916 111.653 +-154.376 -6.52154 116.148 +-155.707 -6.45909 115.036 +-156.464 -6.37282 113.499 +-158.427 -6.33509 112.827 +-160.718 -6.3088 112.359 +-382.395 -14.7333 262.399 +-381.026 -14.4078 256.601 +-381.753 -14.1651 252.28 +-381.847 -13.9015 247.584 +-380.876 -13.6027 242.263 +-381.198 -13.3535 237.824 +-379.681 -13.0435 232.303 +-380.154 -12.8052 228.06 +-381.099 -12.5846 224.131 +-380.012 -12.2996 219.055 +-380.52 -12.0691 214.949 +-379.847 -11.8037 210.222 +-380.088 -11.5692 206.046 +-379.932 -11.325 201.696 +-379.02 -11.061 196.995 +-379.123 -10.8293 192.869 +-380.258 -10.6284 189.291 +-380.909 -10.415 185.49 +-379.718 -10.1534 180.831 +-380.287 -9.94122 177.052 +-380.091 -9.71059 172.945 +-379.395 -9.46958 168.652 +-379.663 -9.25454 164.822 +-378.512 -9.00714 160.416 +-378.513 -8.7894 156.538 +-380.424 -8.61652 153.459 +-379.052 -8.37052 149.078 +-379.314 -8.16265 145.376 +-381.319 -7.99245 142.345 +-113.139 -2.30852 41.1144 +-110.949 -2.20256 39.2273 +-109.68 -2.11717 37.7065 +-109.437 -2.05276 36.5594 +-108.801 -1.98181 35.2959 +-108.819 -1.92345 34.2565 +-108.158 -1.85376 33.0152 +-109.114 -1.81192 32.2701 +-109.007 -1.75229 31.2081 +-110.432 -1.71687 30.5773 +-111.081 -1.66859 29.7174 +-109.304 -1.58471 28.2234 +-109.546 -1.53117 27.27 +-110.17 -1.48276 26.4078 +-111.663 -1.4452 25.7389 +-111.2 -1.38203 24.6137 +-113.074 -1.34739 23.9968 +-114.553 -1.30655 23.2694 +-116.814 -1.27292 22.6706 +-125.955 -1.30869 23.3077 +-156.683 -1.5488 27.584 +-158.989 -1.49152 26.5639 +-159.709 -1.41807 25.2557 +-162.594 -1.36226 24.2617 +-3244.61 -25.5635 455.284 +-862.16 -6.36317 113.327 +-380.344 -2.61803 46.6269 +-379.942 -2.42679 43.2208 +-386.471 -2.27716 40.5559 +-404.23 -2.18203 38.8618 +-405.551 -1.98908 35.4253 +-403.353 -1.77961 31.6947 +-404.013 -1.58378 28.207 +-402.847 -1.38128 24.6005 +-403.047 -1.18415 21.0896 +-403.216 -0.986929 17.5771 +-402.755 -0.788459 14.0424 +-144.251 -0.211758 3.77139 +-144.978 -0.141866 2.52662 +-145.694 -0.0712784 1.26946 +119.4 4.88498e-15 0 +119.595 -0.0491063 1.04253 +119.482 -0.098127 2.08325 +120.059 -0.14792 3.14037 +120.726 -0.198359 4.21119 +119.886 -0.246279 5.22853 +119.436 -0.294508 6.25245 +120.076 -0.345547 7.33601 +119.708 -0.393851 8.36151 +120.228 -0.445201 9.45169 +120.44 -0.495778 10.5254 +121.04 -0.548366 11.6419 +120.238 -0.594603 12.6235 +121.017 -0.648744 13.7729 +119.8 -0.692096 14.6933 +120.262 -0.744944 15.8153 +120.813 -0.798878 16.9603 +120.363 -0.846366 17.9685 +120.893 -0.900907 19.1264 +120.721 -0.950508 20.1794 +120.245 -0.997587 21.1789 +119.957 -1.04606 22.2081 +120.544 -1.10246 23.4053 +120.433 -1.15285 24.4752 +120.117 -1.20128 25.5033 +120.573 -1.25768 26.7007 +120.432 -1.3082 27.7732 +120.963 -1.36638 29.0084 +120.705 -1.41599 30.0618 +121.115 -1.47374 31.2878 +120.837 -1.52342 32.3424 +121.321 -1.58303 33.608 +120.831 -1.63019 34.6092 +121.387 -1.69177 35.9165 +121.259 -1.7443 37.0316 +120.836 -1.7926 38.0572 +121.26 -1.85378 39.3561 +121.954 -1.91992 40.7602 +121.877 -1.97451 41.9192 +121.695 -2.02762 43.0468 +121.032 -2.07269 44.0034 +117.365 -2.06463 43.8324 +113.617 -2.05204 43.5651 +110.72 -2.05205 43.5653 +108.017 -2.05337 43.5934 +105.507 -2.05623 43.654 +102.176 -2.04064 43.3232 +99.5927 -2.03749 43.2561 +97.2012 -2.0362 43.2289 +96.3649 -2.06628 43.8674 +97.1562 -2.13162 45.2545 +96.7571 -2.17143 46.0997 +97.7888 -2.24407 47.642 +97.1004 -2.27784 48.3589 +96.8524 -2.32189 49.2941 +96.5068 -2.36374 50.1826 +96.6828 -2.41874 51.3502 +97.0214 -2.47855 52.62 +96.4706 -2.51601 53.4153 +96.7836 -2.57638 54.6969 +96.3886 -2.61837 55.5884 +96.5886 -2.67695 56.8321 +96.6028 -2.73105 57.9805 +97.1157 -2.80011 59.4467 +96.4231 -2.83489 60.1851 +96.484 -2.89207 61.399 +95.9439 -2.93157 62.2377 +96.0636 -2.99163 63.5127 +96.2513 -3.05464 64.8504 +96.3404 -3.11536 66.1396 +95.7589 -3.1548 66.9768 +95.9028 -3.21859 68.331 +95.9494 -3.27996 69.6341 +95.9805 -3.34162 70.9431 +95.996 -3.40356 72.2581 +96.1544 -3.47149 73.7002 +96.1373 -3.53401 75.0275 +96.1043 -3.59678 76.3601 +96.0552 -3.65979 77.6979 +96.0673 -3.72602 79.104 +96.062 -3.79255 80.5163 +95.9632 -3.85629 81.8695 +95.9236 -3.92332 83.2928 +95.8663 -3.99062 84.7215 +96.3859 -4.08335 86.6901 +96.2884 -4.15138 88.1344 +96.0999 -4.21643 89.5154 +95.967 -4.28487 90.9684 +95.8161 -4.35353 92.426 +95.6469 -4.42238 93.8878 +96.0958 -4.52137 95.9894 +96.0246 -4.59757 97.6071 +95.7239 -4.6639 99.0152 +96.0943 -4.76444 101.15 +95.6844 -4.82782 102.495 +96.0689 -4.93284 104.725 +95.6857 -5.00007 106.152 +95.4173 -5.07441 107.731 +95.5878 -5.17374 109.839 +95.2091 -5.24502 111.353 +95.1968 -5.33794 113.325 +95.4117 -5.44583 115.616 +95.405 -5.54327 117.685 +95.4315 -5.64486 119.841 +94.935 -5.71717 121.376 +95.332 -5.84553 124.101 +95.3275 -5.9521 126.364 +95.1122 -6.04775 128.395 +95.1037 -6.15888 130.754 +95.1772 -6.27816 133.286 +95.4431 -6.41333 136.156 +94.8164 -6.49106 137.806 +94.7273 -6.60775 140.283 +95.0435 -6.75624 143.436 +94.8217 -6.87001 145.851 +94.5647 -6.98406 148.273 +94.6966 -7.13034 151.378 +94.8857 -7.28528 154.668 +94.5095 -7.4006 157.116 +94.6052 -7.55671 160.43 +94.65 -7.71344 163.757 +94.6438 -7.87073 167.097 +94.5379 -8.02454 170.362 +94.2389 -8.1664 173.374 +94.5046 -8.36264 177.54 +94.6585 -8.55555 181.636 +94.7024 -8.74502 185.658 +94.6832 -8.93516 189.695 +94.206 -9.08788 192.937 +94.368 -9.30883 197.628 +94.4974 -9.53482 202.426 +94.1768 -9.72311 206.423 +94.2409 -9.95912 211.434 +94.1845 -10.1916 216.37 +94.3225 -10.4551 221.964 +94.2167 -10.7021 227.207 +94.251 -10.9759 233.021 +94.4474 -11.2813 239.503 +94.2508 -11.5524 245.26 +94.1007 -11.8419 251.405 +93.7819 -12.1233 257.379 +93.8999 -12.4762 264.871 +93.6334 -12.7945 271.63 +93.6049 -13.1627 279.445 +93.4467 -13.5317 287.28 +93.4894 -13.951 296.183 +93.3543 -14.3668 305.01 +93.1286 -14.7926 314.049 +93.2206 -15.2961 324.739 +93.1593 -15.8054 335.55 +93.2007 -16.3656 347.445 +93.1414 -16.9453 359.752 +95.8495 -18.0877 384.005 +107.618 -21.0911 447.767 +103.477 -21.0886 447.714 +99.2376 -21.0614 447.136 +95.182 -21.0691 447.3 +92.2675 -21.3379 453.007 +92.0844 -22.2895 473.208 +92.0289 -23.3627 495.994 +91.6515 -24.4561 519.206 +91.6179 -25.7596 546.881 +91.5924 -27.209 577.652 +91.4497 -28.7905 611.226 +91.1584 -30.5183 647.908 +90.9637 -32.5091 690.173 +91.1217 -34.9176 741.305 +96.3925 -39.8061 845.089 +90.2708 -40.4104 857.918 +89.9512 -43.9537 933.144 +90.6681 -48.7605 1035.19 +89.3649 -53.4256 1134.23 +88.0885 -59.2707 1258.32 +87.5253 -67.3309 1429.45 +87.2911 -78.3681 1663.77 +79.0252 -85.1608 1807.98 +66.8814 -90.1128 1913.11 +85.7531 -154.081 3271.15 +57.1723 -154.11 3271.77 +28.5873 -154.128 3272.15 +1.44662e-13 -154.133 3272.27 +-28.5873 -154.128 3272.15 +-57.1723 -154.11 3271.77 +-85.7531 -154.081 3271.15 +-114.327 -154.039 3270.27 +-119.107 -128.354 2724.98 +-125.287 -112.48 2387.97 +-125.516 -96.556 2049.9 +-120.016 -80.7535 1714.41 +-142.325 -85.0869 1806.41 +-120.467 -64.7859 1375.42 +-136.676 -66.7851 1417.86 +-110.037 -49.2587 1045.77 +-118.478 -48.9266 1038.72 +-127.938 -49.0254 1040.82 +-148.891 -53.2115 1129.69 +-455.973 -152.652 3240.83 +-143.523 -45.1844 959.27 +-111.616 -33.1574 703.936 +-117.101 -32.9246 698.995 +-123.638 -32.9911 700.406 +-146.025 -37.0704 787.009 +-625.224 -151.338 3212.94 +-653.269 -151.076 3207.36 +-681.264 -150.802 3201.55 +-709.208 -150.516 3195.49 +-142.889 -29.1206 618.235 +-146.86 -28.7817 611.041 +-159.112 -30.026 637.456 +-142.792 -25.9783 551.524 +-142.635 -25.0461 531.732 +-146.767 -24.9004 528.64 +-151.408 -24.8437 527.436 +-109.005 -17.3144 367.587 +-110.984 -17.08 362.611 +-114.088 -17.0248 361.439 +-117.21 -16.9729 360.336 +-120.798 -16.9866 360.627 +-124.953 -17.0742 362.488 +-1093.78 -145.328 3085.33 +-1120.7 -144.873 3075.68 +-1147.52 -144.407 3065.79 +-1174.26 -143.931 3055.67 +-1200.84 -143.434 3045.13 +-380.713 -44.3357 941.253 +-382.454 -43.4431 922.302 +-412.886 -45.766 971.62 +-158.902 -17.1946 365.043 +-161.718 -17.09 362.824 +-164.675 -17.0016 360.946 +-168.287 -16.9802 360.492 +-408.899 -40.3354 856.327 +-141.462 -13.6466 289.72 +-141.311 -13.3354 283.112 +-144.46 -13.3397 283.204 +-147.436 -13.3258 282.909 +-410.975 -36.367 772.076 +-412.647 -35.7586 759.159 +-415.191 -35.2421 748.194 +-416.541 -34.6403 735.419 +-418.7 -34.1216 724.407 +-420.496 -33.5876 713.069 +-422.28 -33.0668 702.013 +-428.501 -32.9002 698.476 +-431.195 -32.4676 689.293 +-429.625 -31.7298 673.629 +-431.953 -31.2957 664.413 +-434.595 -30.8936 655.875 +-437.121 -30.4916 647.341 +-439.645 -30.0977 638.979 +-442.055 -29.704 630.621 +-444.877 -29.3452 623.003 +-446.893 -28.9407 614.415 +-449.091 -28.5556 606.24 +-451.482 -28.1897 598.472 +-453.953 -27.8354 590.949 +-460.145 -27.7109 588.307 +-458.233 -27.1049 575.44 +-468.97 -27.2484 578.488 +-465.037 -26.5429 563.51 +-468.206 -26.2537 557.369 +-471.24 -25.9602 551.14 +-474.199 -25.6663 544.9 +-476.623 -25.3473 538.127 +-479.7 -25.0668 532.171 +-483.047 -24.8029 526.569 +-485.31 -24.4866 519.855 +-488.319 -24.2114 514.011 +-490.568 -23.9016 507.435 +-493.37 -23.6221 501.501 +-496.46 -23.3588 495.91 +-499.061 -23.0749 489.883 +-502.243 -22.82 484.473 +-381.039 -17.0132 361.193 +-381.913 -16.7566 355.746 +-379.108 -16.3448 347.003 +-380.342 -16.113 342.082 +-381.443 -15.8783 337.098 +-380.826 -15.576 330.68 +-141.588 -5.6897 120.793 +-141.412 -5.58298 118.528 +-142.133 -5.51274 117.036 +-140.897 -5.36829 113.97 +-142.043 -5.31607 112.861 +-142.945 -5.25466 111.557 +-145.263 -5.24445 111.341 +-154.696 -5.48479 116.443 +-156.109 -5.43506 115.387 +-156.221 -5.3403 113.375 +-158.183 -5.30877 112.706 +-159.98 -5.27057 111.895 +-380.005 -12.2882 260.881 +-379.533 -12.0449 255.715 +-379.918 -11.8315 251.184 +-380.253 -11.6186 246.666 +-381.129 -11.4242 242.537 +-380.858 -11.1974 237.723 +-379.34 -10.9374 232.203 +-379.382 -10.7255 227.704 +-378.858 -10.5001 222.918 +-379.925 -10.3206 219.107 +-379.91 -10.1132 214.705 +-379.847 -9.90666 210.32 +-379.473 -9.69418 205.809 +-379.138 -9.48499 201.368 +-379.197 -9.28771 197.179 +-377.163 -9.04191 191.961 +-379.094 -8.893 188.8 +-379.74 -8.71435 185.007 +-378.996 -8.50544 180.572 +-380.015 -8.33757 177.008 +-379.272 -8.13242 172.653 +-380.766 -7.9764 169.34 +-380.03 -7.77475 165.059 +-379.34 -7.5761 160.842 +-379.068 -7.38766 156.841 +-378.662 -7.19823 152.82 +-379.052 -7.02528 149.148 +-379.5 -6.8542 145.516 +-379.821 -6.68162 141.852 +-113.421 -1.94234 41.2361 +-110.949 -1.84858 39.2456 +-109.775 -1.77844 37.7566 +-109.437 -1.72285 36.5764 +-108.896 -1.66477 35.3432 +-108.819 -1.61433 34.2725 +-108.541 -1.56134 33.1474 +-108.922 -1.51805 32.2284 +-108.334 -1.4616 31.0299 +-110.528 -1.44221 30.6183 +-110.792 -1.39677 29.6536 +-109.207 -1.32885 28.2116 +-110.517 -1.29648 27.5244 +-110.17 -1.24446 26.4201 +-110.688 -1.20235 25.5261 +-112.079 -1.16908 24.8198 +-113.074 -1.13084 24.008 +-113.769 -1.08906 23.121 +-117.403 -1.07373 22.7955 +-125.365 -1.09322 23.2093 +-156.978 -1.30234 27.6488 +-159.384 -1.25492 26.6422 +-160.894 -1.199 25.455 +-163.979 -1.15306 24.4797 +-3244.61 -21.4551 455.496 +-861.665 -5.33743 113.314 +-379.55 -2.19269 46.5512 +-380.339 -2.0389 43.2862 +-3258.55 -16.1143 342.109 +-404.23 -1.83135 38.8799 +-404.156 -1.66367 35.3199 +-403.353 -1.4936 31.7094 +-404.013 -1.32925 28.2201 +-403.845 -1.16216 24.6728 +-402.548 -0.992609 21.0732 +-402.716 -0.827292 17.5635 +-402.854 -0.661909 14.0524 +-146.45 -0.180436 3.83067 +-144.678 -0.11882 2.52256 +-146.694 -0.0602333 1.27876 +120.1 6.21725e-15 5.68434e-14 +119.595 -0.0397009 1.04293 +119.482 -0.0793326 2.08405 +120.059 -0.119589 3.14157 +119.927 -0.159305 4.18491 +119.886 -0.199109 5.23054 +120.335 -0.239892 6.30192 +120.076 -0.279364 7.33882 +120.506 -0.320539 8.42048 +119.53 -0.357842 9.40044 +120.34 -0.40049 10.5208 +120.045 -0.439693 11.5506 +120.238 -0.480718 12.6284 +120.123 -0.520613 13.6764 +120.594 -0.563247 14.7964 +120.262 -0.602264 15.8213 +120.813 -0.645868 16.9668 +120.462 -0.684824 17.9902 +120.893 -0.728356 19.1337 +120.623 -0.767829 20.1707 +120.245 -0.806518 21.1871 +119.957 -0.84571 22.2166 +120.544 -0.891303 23.4143 +120.335 -0.931286 24.4647 +120.899 -0.977522 25.6793 +120.573 -1.01679 26.711 +120.432 -1.05764 27.7839 +120.185 -1.09757 28.8329 +120.511 -1.14295 30.025 +121.115 -1.19148 31.2998 +120.837 -1.23164 32.3549 +121.321 -1.27983 33.6209 +120.927 -1.31901 34.6501 +120.524 -1.35802 35.6749 +121.259 -1.41021 37.0459 +120.836 -1.44926 38.0718 +121.355 -1.4999 39.4021 +121.291 -1.54375 40.5539 +121.783 -1.5951 41.9029 +121.695 -1.63927 43.0633 +121.032 -1.6757 44.0203 +117.365 -1.66919 43.8492 +114.457 -1.67128 43.9041 +110.72 -1.65902 43.582 +108.017 -1.66009 43.6101 +105.415 -1.66094 43.6326 +102.176 -1.6498 43.3398 +98.7674 -1.6336 42.9142 +97.2012 -1.64621 43.2455 +96.5469 -1.67368 43.9672 +97.2468 -1.72495 45.3141 +96.7571 -1.75553 46.1174 +97.7888 -1.81426 47.6603 +97.5478 -1.85005 48.6004 +96.8524 -1.87718 49.3131 +96.5068 -1.91101 50.2018 +96.7711 -1.95726 51.4169 +96.9335 -2.00202 52.5925 +96.558 -2.03596 53.4843 +96.8706 -2.08479 54.767 +97.0814 -2.13209 56.0094 +96.5886 -2.16423 56.8539 +96.7742 -2.21188 58.1057 +96.8599 -2.25784 59.3128 +96.4231 -2.29192 60.2082 +96.484 -2.33815 61.4226 +96.6987 -2.38873 62.7515 +95.9803 -2.41654 63.4819 +96.2513 -2.46958 64.8753 +96.2579 -2.51652 66.1083 +95.677 -2.54837 66.9452 +95.8214 -2.59992 68.2992 +95.9494 -2.65175 69.6608 +95.9805 -2.7016 70.9704 +95.996 -2.75167 72.2858 +96.0751 -2.80427 73.6676 +96.0585 -2.85479 74.9948 +96.1825 -2.91025 76.4516 +96.133 -2.96122 77.7906 +96.0673 -3.01237 79.1344 +96.1386 -3.0686 80.6114 +95.9632 -3.11769 81.901 +95.9236 -3.17189 83.3248 +95.9412 -3.22881 84.8202 +95.7914 -3.2809 86.1885 +96.2884 -3.35626 88.1682 +96.173 -3.41144 89.6179 +95.967 -3.46419 91.0034 +95.888 -3.52234 92.531 +96.3601 -3.60202 94.6243 +95.5301 -3.63387 95.461 +96.0246 -3.71699 97.6446 +95.7934 -3.77335 99.1252 +96.0943 -3.85191 101.189 +95.8208 -3.9087 102.681 +95.596 -3.96842 104.249 +95.7526 -4.04522 106.267 +95.4173 -4.10251 107.772 +95.5878 -4.18281 109.881 +95.7286 -4.26356 112.003 +95.6468 -4.33595 113.905 +95.3481 -4.39986 115.583 +95.4679 -4.48453 117.808 +95.4937 -4.56666 119.965 +95.5507 -4.65213 122.21 +95.4538 -4.73198 124.308 +95.3877 -4.81513 126.492 +95.1716 -4.89246 128.524 +95.0449 -4.97619 130.723 +95.003 -5.06638 133.093 +94.9843 -5.16007 135.554 +94.8164 -5.24782 137.859 +94.6714 -5.339 140.254 +95.0435 -5.46221 143.491 +94.7127 -5.5478 145.739 +94.511 -5.6432 148.246 +94.6966 -5.76466 151.436 +94.8857 -5.88992 154.727 +94.5095 -5.98315 157.176 +94.6052 -6.10937 160.492 +94.75 -6.24266 163.993 +94.5453 -6.35662 166.987 +94.5864 -6.4909 170.515 +94.6683 -6.63237 174.231 +94.4107 -6.75424 177.432 +94.7046 -6.92028 181.794 +94.2938 -7.03957 184.928 +94.2816 -7.19317 188.963 +94.206 -7.34727 193.011 +94.4111 -7.52933 197.794 +94.4129 -7.70172 202.322 +94.1768 -7.86084 206.502 +94.2409 -8.05164 211.515 +94.1845 -8.23963 216.453 +94.3616 -8.45615 222.141 +94.5228 -8.68042 228.033 +94.251 -8.8737 233.11 +94.3741 -9.1135 239.41 +94.2149 -9.33622 245.26 +94.1007 -9.57381 251.502 +93.7819 -9.80128 257.478 +93.6996 -10.0651 264.407 +93.6334 -10.344 271.734 +93.6049 -10.6416 279.553 +93.3231 -10.9255 287.011 +93.4894 -11.279 296.296 +93.2958 -11.6079 304.936 +93.2706 -11.9776 314.648 +93.2206 -12.3664 324.864 +93.2395 -12.7891 335.968 +92.9937 -13.2017 346.806 +93.0913 -13.6924 359.696 +96.043 -14.6529 384.928 +107.595 -17.0477 447.841 +103.522 -17.0569 448.08 +99.151 -17.0126 446.917 +95.0364 -17.0077 446.787 +92.3074 -17.2585 453.377 +91.9318 -17.9905 472.606 +91.9743 -18.8768 495.89 +91.6515 -19.772 519.406 +91.6014 -20.8221 546.993 +91.5924 -21.9976 577.873 +91.5827 -23.3101 612.35 +91.047 -24.6429 647.364 +90.9637 -26.2826 690.438 +91.012 -28.1958 740.697 +96.3812 -32.1782 845.315 +90.2708 -32.6705 858.247 +89.865 -35.5012 932.608 +90.8163 -39.4856 1037.28 +89.3492 -43.1853 1134.47 +88.0815 -47.9147 1258.71 +87.4826 -54.4083 1429.29 +87.3382 -63.3924 1665.3 +79.0645 -68.8837 1809.56 +66.8465 -72.8154 1912.84 +85.7531 -124.569 3272.41 +57.1723 -124.593 3273.03 +28.5873 -124.607 3273.41 +1.54432e-13 -124.612 3273.53 +-28.5873 -124.607 3273.41 +-57.1723 -124.593 3273.03 +-85.7531 -124.569 3272.41 +-114.327 -124.536 3271.53 +-119.094 -103.759 2725.73 +-125.277 -90.9292 2388.69 +-125.528 -78.0697 2050.87 +-119.967 -65.2601 1714.37 +-142.176 -68.7178 1805.2 +-120.493 -52.3888 1376.24 +-136.695 -54.0013 1418.6 +-110.1 -39.847 1046.77 +-118.478 -39.5556 1039.12 +-127.938 -39.6355 1041.22 +-148.774 -42.986 1129.23 +-455.973 -123.414 3242.07 +-143.449 -36.5114 959.145 +-111.632 -26.8104 704.304 +-116.92 -26.5773 698.179 +-123.638 -26.6723 700.676 +-146.098 -29.9852 787.704 +-625.224 -122.352 3214.17 +-653.269 -122.14 3208.6 +-681.264 -121.919 3202.78 +-709.208 -121.688 3196.71 +-142.664 -23.506 617.498 +-146.534 -23.2174 609.915 +-160.322 -24.4596 642.55 +-142.667 -20.9843 551.252 +-142.635 -20.249 531.937 +-146.447 -20.0872 527.687 +-151.545 -20.1037 528.119 +-109.033 -14.0018 367.825 +-111.218 -13.8378 363.515 +-114.088 -13.764 361.578 +-117.396 -13.7437 361.045 +-120.766 -13.7295 360.671 +-125.181 -13.8292 363.289 +-1093.78 -117.493 3086.51 +-1120.7 -117.126 3076.86 +-1147.52 -116.749 3066.97 +-1174.26 -116.364 3056.85 +-382.078 -36.8963 969.258 +-1227.4 -115.559 3035.72 +-382.951 -35.168 923.857 +-413.237 -37.032 972.821 +-158.622 -13.8769 364.542 +-161.678 -13.8133 362.871 +-164.426 -13.7245 360.539 +-168.794 -13.7693 361.717 +-408.254 -32.5584 855.303 +-141.375 -11.026 289.651 +-141.712 -10.8119 284.025 +-144.505 -10.7881 283.402 +-147.76 -10.7971 283.638 +-409.708 -29.3109 769.99 +-412.647 -28.9097 759.451 +-415.191 -28.4921 748.482 +-416.393 -27.9957 735.44 +-418.65 -27.583 724.598 +-420.14 -27.1316 712.741 +-421.971 -26.7139 701.769 +-428.658 -26.6085 699 +-432.997 -26.3587 692.438 +-429.141 -25.6237 673.129 +-432.28 -25.3208 665.171 +-434.098 -24.9479 655.376 +-436.953 -24.642 647.341 +-439.475 -24.3237 638.977 +-442.572 -24.0429 631.601 +-444.818 -23.7216 623.161 +-447.069 -23.4068 614.893 +-449.686 -23.1169 607.276 +-451.783 -22.8057 599.102 +-453.771 -22.495 590.938 +-459.591 -22.3764 587.824 +-459.603 -21.9789 577.382 +-469.725 -22.065 579.642 +-464.782 -21.4474 563.418 +-468.206 -21.2253 557.583 +-471.24 -20.9881 551.352 +-473.543 -20.7217 544.355 +-477.153 -20.5153 538.933 +-479.7 -20.2657 532.375 +-482.439 -20.0272 526.109 +-485.378 -19.7995 520.127 +-488.525 -19.5824 514.425 +-491.123 -19.3456 508.205 +-493.65 -19.1086 501.978 +-496.46 -18.8848 496.101 +-499.489 -18.6713 490.492 +-501.811 -18.4335 484.243 +-383.07 -13.8279 363.257 +-381.255 -13.5239 355.269 +-382.499 -13.3325 350.242 +-381.01 -13.0498 342.815 +-381.069 -12.8245 336.897 +-381.053 -12.6002 331.004 +-141.359 -4.59252 120.645 +-141.412 -4.51367 118.573 +-142.905 -4.48107 117.717 +-141.596 -4.36163 114.579 +-141.965 -4.29552 112.842 +-142.945 -4.24823 111.6 +-146.136 -4.26547 112.053 +-154.855 -4.43885 116.608 +-155.868 -4.38727 115.253 +-156.949 -4.33759 113.947 +-158.183 -4.29198 112.749 +-160.554 -4.27638 112.34 +-381.241 -9.96698 261.83 +-380.528 -9.76347 256.484 +-382.003 -9.61786 252.659 +-380.589 -9.4016 246.978 +-380.117 -9.21156 241.986 +-380.434 -9.04271 237.55 +-381.386 -8.89025 233.545 +-379.382 -8.67122 227.791 +-378.255 -8.47543 222.648 +-379.492 -8.33434 218.941 +-379.388 -8.16496 214.492 +-380.197 -8.0166 210.594 +-379.385 -7.83562 205.84 +-379.579 -7.67726 201.68 +-379.552 -7.51582 197.439 +-378.767 -7.34118 192.851 +-378.02 -7.16936 188.338 +-380.1 -7.05194 185.253 +-379.627 -6.88784 180.942 +-380.015 -6.74066 177.076 +-378.362 -6.55903 172.304 +-380.492 -6.44403 169.283 +-379.204 -6.27198 164.764 +-379.34 -6.12504 160.903 +-378.791 -5.96832 156.786 +-378.569 -5.81814 152.841 +-378.866 -5.6769 149.131 +-378.66 -5.52912 145.249 +-379.914 -5.40321 141.941 +-114.267 -1.58203 41.5595 +-110.855 -1.49325 39.2273 +-109.775 -1.43782 37.7711 +-109.437 -1.39287 36.5905 +-108.611 -1.34238 35.2642 +-108.628 -1.30285 34.2256 +-108.062 -1.25673 33.0141 +-108.634 -1.22405 32.1556 +-109.103 -1.19004 31.2622 +-109.95 -1.15988 30.4698 +-110.116 -1.12236 29.484 +-109.11 -1.07338 28.1974 +-109.643 -1.03988 27.3174 +-110.072 -1.00522 26.4069 +-110.688 -0.972064 25.5359 +-112.274 -0.946814 24.8726 +-113.074 -0.914252 24.0172 +-113.769 -0.880474 23.1298 +-117.403 -0.86808 22.8043 +-125.758 -0.886609 23.291 +-158.16 -1.06083 27.8677 +-157.411 -1.00201 26.3225 +-159.709 -0.962216 25.2772 +-161.902 -0.920407 24.1789 +-850.244 -4.54543 119.408 +-862.16 -4.31765 113.424 +-380.145 -1.77551 46.6422 +-379.942 -1.64667 43.2576 +-3258.55 -13.0279 342.24 +-403.135 -1.47658 38.7894 +-403.459 -1.3427 35.2726 +-403.353 -1.20753 31.7216 +-403.614 -1.07359 28.2031 +-403.147 -0.937947 24.6397 +-403.546 -0.804487 21.1337 +-403.715 -0.670498 17.6138 +-3274.5 -4.34968 114.265 +-146.45 -0.145877 3.83214 +-145.278 -0.0964604 2.53399 +-146.694 -0.0486968 1.27925 +119.2 7.10543e-15 2.84217e-14 +119.595 -0.0302905 1.04325 +120.282 -0.0609333 2.09864 +120.059 -0.0912424 3.14253 +119.927 -0.121544 4.18618 +119.886 -0.151913 5.23213 +120.335 -0.18303 6.30382 +120.076 -0.213145 7.34105 +120.506 -0.24456 8.42303 +120.228 -0.274616 9.45818 +120.241 -0.305308 10.5153 +120.144 -0.33575 11.5637 +120.238 -0.366772 12.6322 +120.123 -0.397211 13.6805 +120.396 -0.429034 14.7766 +120.262 -0.459507 15.8261 +120.813 -0.492776 16.9719 +120.462 -0.522498 17.9956 +120.893 -0.555711 19.1395 +120.721 -0.586307 20.1933 +120.245 -0.615347 21.1935 +120.842 -0.650008 22.3873 +120.544 -0.680035 23.4214 +120.335 -0.71054 24.4721 +120.801 -0.745214 25.6663 +120.67 -0.776407 26.7406 +120.53 -0.807592 27.8147 +120.963 -0.842831 29.0284 +120.802 -0.874137 30.1066 +121.018 -0.908332 31.2843 +121.031 -0.9412 32.4163 +121.225 -0.975696 33.6044 +120.927 -1.00636 34.6606 +120.524 -1.03612 35.6857 +120.399 -1.06831 36.7941 +120.836 -1.10574 38.0834 +121.355 -1.14437 39.414 +121.101 -1.17599 40.5027 +121.783 -1.21701 41.9155 +121.695 -1.25071 43.0763 +121.784 -1.28645 44.3071 +117.365 -1.27354 43.8625 +113.617 -1.26577 43.595 +110.813 -1.26684 43.6319 +108.11 -1.26768 43.6607 +105.415 -1.26724 43.6458 +102.912 -1.26781 43.6653 +99.6844 -1.25795 43.3257 +97.2012 -1.256 43.2586 +96.5469 -1.27696 43.9805 +97.1562 -1.31486 45.2856 +96.7571 -1.33941 46.1314 +97.7888 -1.38422 47.6747 +97.9058 -1.4167 48.7934 +96.0505 -1.42037 48.9196 +96.3294 -1.45536 50.1248 +97.4774 -1.50423 51.8079 +97.0214 -1.52886 52.6561 +96.558 -1.55337 53.5005 +96.8706 -1.59063 54.7836 +96.302 -1.61365 55.5766 +96.4163 -1.64829 56.7696 +96.6028 -1.6846 58.0203 +96.9452 -1.72417 59.3831 +96.4231 -1.74866 60.2264 +96.484 -1.78393 61.4412 +96.6987 -1.82252 62.7704 +96.0636 -1.84534 63.5563 +96.2513 -1.88421 64.895 +96.3404 -1.92166 66.185 +95.8408 -1.94765 67.0801 +96.5541 -1.99882 68.8424 +95.9494 -2.0232 69.6819 +95.9001 -2.05951 70.9325 +96.0759 -2.10118 72.3678 +96.0751 -2.13957 73.6899 +96.1373 -2.1799 75.0791 +96.1043 -2.21862 76.4126 +96.0552 -2.25749 77.7512 +96.0673 -2.29834 79.1583 +96.062 -2.33938 80.5716 +95.9632 -2.37869 81.9258 +95.9236 -2.42004 83.35 +95.8663 -2.46155 84.7797 +95.7914 -2.50322 86.2146 +96.2884 -2.56072 88.1949 +96.173 -2.60282 89.645 +95.967 -2.64306 91.0309 +95.8161 -2.68541 92.4895 +95.7182 -2.72991 94.0224 +96.1665 -2.79099 96.126 +96.0246 -2.83594 97.6741 +95.585 -2.87268 98.9395 +96.1631 -2.94099 101.292 +95.6844 -2.97797 102.566 +96.204 -3.04701 104.944 +95.7526 -3.08637 106.299 +96.0136 -3.14964 108.478 +95.5222 -3.18917 109.84 +95.7936 -3.25516 112.113 +95.1326 -3.29043 113.327 +95.2845 -3.35468 115.54 +95.5308 -3.42381 117.921 +95.4937 -3.48421 120.001 +94.9966 -3.52885 121.539 +95.332 -3.60573 124.187 +95.147 -3.6645 126.211 +95.4096 -3.74213 128.885 +95.0449 -3.79666 130.763 +94.9449 -3.86313 133.052 +95.099 -3.94169 135.758 +95.1562 -4.01825 138.395 +94.6714 -4.07348 140.297 +95.0435 -4.16749 143.535 +94.8217 -4.23766 145.951 +94.5647 -4.30801 148.374 +94.7496 -4.40071 151.567 +94.3632 -4.46909 153.922 +94.5095 -4.56495 157.224 +94.6052 -4.66124 160.54 +94.65 -4.75792 163.87 +94.4961 -4.84737 166.951 +94.5379 -4.94982 170.479 +94.1911 -5.03476 173.405 +94.5046 -5.15837 177.662 +94.6585 -5.27736 181.76 +94.2938 -5.37096 184.984 +94.2816 -5.48815 189.02 +94.2498 -5.60834 193.16 +94.325 -5.73937 197.673 +94.4552 -5.8788 202.475 +94.2183 -6.0002 206.656 +94.2002 -6.14049 211.488 +94.1845 -6.28656 216.519 +94.0881 -6.43307 221.565 +94.1784 -6.59876 227.271 +94.2136 -6.76767 233.089 +94.3741 -6.9533 239.482 +94.2149 -7.12322 245.335 +94.1007 -7.3045 251.578 +93.6451 -7.46714 257.18 +93.6662 -7.6766 264.394 +93.666 -7.89487 271.911 +93.5731 -8.11646 279.543 +93.2613 -8.3303 286.908 +93.5496 -8.611 296.576 +93.2958 -8.85642 305.028 +93.3842 -9.14963 315.127 +93.0552 -9.41844 324.385 +93.1593 -9.74929 335.78 +93.1749 -10.0921 347.587 +92.891 -10.4244 359.032 +95.4624 -11.1121 382.718 +107.595 -13.0069 447.976 +103.432 -13.0025 447.826 +99.3674 -13.0084 448.028 +95.2236 -13.0018 447.803 +92.2874 -13.1648 453.416 +91.989 -13.7347 473.043 +91.956 -14.3995 495.941 +91.6515 -15.0854 519.563 +91.5849 -15.8837 547.059 +91.5767 -16.7806 577.949 +91.3314 -17.736 610.856 +91.0749 -18.8075 647.758 +90.7679 -20.0096 689.161 +90.9145 -21.4894 740.127 +96.3925 -24.5538 845.67 +90.1035 -24.8803 856.917 +89.6925 -27.0342 931.1 +90.7378 -30.1004 1036.7 +89.2943 -32.9286 1134.11 +88.0815 -36.5573 1259.09 +87.2017 -41.3785 1425.14 +87.2964 -48.3431 1665.01 +79.0383 -52.5388 1809.52 +66.8814 -55.5848 1914.42 +85.7531 -95.0423 3273.4 +57.1723 -95.0603 3274.02 +28.5873 -95.0713 3274.4 +1.52212e-13 -95.0748 3274.52 +-28.5873 -95.0713 3274.4 +-57.1723 -95.0603 3274.02 +-85.7531 -95.0423 3273.4 +-114.327 -95.0167 3272.52 +-119.181 -79.2227 2728.55 +-125.245 -69.3585 2388.81 +-125.546 -59.5733 2051.8 +-119.953 -49.7855 1714.69 +-142.215 -52.4439 1806.25 +-120.502 -39.9738 1376.76 +-137.146 -41.337 1423.71 +-154.389 -42.6314 1468.29 +-118.422 -30.1654 1038.94 +-127.89 -30.2293 1041.14 +-148.735 -32.7882 1129.27 +-455.973 -94.1612 3243.05 +-143.508 -27.8684 959.832 +-111.679 -20.4641 704.814 +-117.167 -20.3205 699.869 +-123.69 -20.3587 701.184 +-146.062 -22.872 787.747 +-625.224 -93.3509 3215.15 +-653.269 -93.1889 3209.57 +-681.264 -93.02 3203.75 +-709.208 -92.8438 3197.68 +-142.866 -17.9598 618.561 +-146.44 -17.7028 609.711 +-160.297 -18.6591 642.647 +-142.591 -16.0018 551.128 +-142.842 -15.4717 532.869 +-146.366 -15.3175 527.558 +-151.38 -15.3217 527.703 +-109.033 -10.6829 367.936 +-111.189 -10.555 363.53 +-113.998 -10.4932 361.402 +-117.179 -10.4667 360.489 +-120.544 -10.4559 360.116 +-124.986 -10.5347 362.832 +-1093.78 -89.6432 3087.45 +-1120.7 -89.3629 3077.79 +-1147.52 -89.0756 3067.9 +-1174.26 -88.7816 3057.77 +-1200.84 -88.4754 3047.23 +-1227.4 -88.168 3036.64 +-1253.86 -87.8537 3025.81 +-413.237 -28.2542 973.116 +-158.503 -10.5796 364.377 +-161.474 -10.5258 362.525 +-164.094 -10.4502 359.92 +-167.864 -10.4477 359.833 +-408.684 -24.8672 856.463 +-141.243 -8.40465 289.469 +-141.311 -8.22573 283.307 +-144.097 -8.20771 282.686 +-147.621 -8.23011 283.458 +-410.975 -22.4324 772.606 +-412.551 -22.052 759.505 +-415.191 -21.7385 748.708 +-416.246 -21.3522 735.402 +-418.65 -21.0449 724.818 +-419.988 -20.693 712.698 +-422.795 -20.4216 703.353 +-427.979 -20.2693 698.104 +-432.573 -20.0912 691.97 +-428.98 -19.5427 673.08 +-431.626 -19.2897 664.366 +-434.595 -19.0562 656.325 +-437.792 -18.8372 648.781 +-439.475 -18.5581 639.171 +-442.858 -18.3558 632.201 +-445.167 -18.113 623.838 +-447.481 -17.8751 615.646 +-449.329 -17.6234 606.977 +-452.264 -17.4186 599.922 +-453.771 -17.1629 591.117 +-460.145 -17.0931 588.711 +-459.354 -16.7601 577.244 +-470.039 -16.8461 580.205 +-465.037 -16.3726 563.897 +-468.206 -16.1942 557.752 +-471.434 -16.0198 551.746 +-474.068 -15.8275 545.123 +-476.623 -15.6351 538.497 +-479.967 -15.4707 532.833 +-482.642 -15.2865 526.489 +-485.105 -15.0979 519.993 +-488.319 -14.9344 514.364 +-491.193 -14.7621 508.431 +-493.65 -14.5792 502.13 +-496.743 -14.4167 496.534 +-499.489 -14.2456 490.64 +-501.38 -14.052 483.973 +-381.402 -10.5043 361.785 +-380.304 -10.2925 354.49 +-379.698 -10.0978 347.782 +-381.902 -9.97985 343.721 +-383.166 -9.83851 338.853 +-383.543 -9.67636 333.269 +-141.588 -3.5096 120.876 +-141.488 -3.44564 118.673 +-142.905 -3.41891 117.752 +-141.596 -3.32778 114.614 +-141.887 -3.27554 112.814 +-142.63 -3.23412 111.388 +-146.453 -3.26146 112.33 +-155.095 -3.39192 116.823 +-155.948 -3.34908 115.347 +-156.787 -3.30604 113.865 +-158.101 -3.27295 112.725 +-160.308 -3.25775 112.202 +-379.51 -7.56994 260.72 +-379.202 -7.42323 255.667 +-380.419 -7.30769 251.688 +-381.008 -7.18104 247.326 +-381.635 -7.05618 243.026 +-379.841 -6.88852 237.251 +-380.874 -6.77385 233.302 +-378.354 -6.59792 227.242 +-380.495 -6.50478 224.035 +-380.532 -6.37624 219.607 +-379.91 -6.23818 214.852 +-380.022 -6.11359 210.561 +-379.297 -5.97695 205.855 +-379.579 -5.85749 201.741 +-380.528 -5.74907 198.007 +-377.965 -5.58924 192.502 +-378.915 -5.48293 188.84 +-378.662 -5.36005 184.608 +-380.079 -5.26143 181.212 +-378.927 -5.12819 176.623 +-379.818 -5.02359 173.02 +-378.299 -4.88826 168.359 +-378.838 -4.78067 164.654 +-378.327 -4.66072 160.522 +-379.899 -4.56695 157.293 +-379.496 -4.4499 153.261 +-379.796 -4.34194 149.543 +-379.5 -4.22791 145.616 +-380.383 -4.12755 142.159 +-113.985 -1.20406 41.4695 +-111.703 -1.14802 39.5394 +-109.775 -1.09701 37.7826 +-109.437 -1.06272 36.6016 +-108.706 -1.02509 35.3057 +-108.628 -0.994032 34.236 +-108.349 -0.96139 33.1117 +-108.251 -0.930615 32.0518 +-108.911 -0.906364 31.2165 +-109.95 -0.884951 30.4791 +-110.792 -0.861576 29.674 +-109.885 -0.824764 28.4061 +-110.226 -0.797605 27.4707 +-110.17 -0.767628 26.4383 +-111.565 -0.74753 25.7461 +-111.395 -0.716734 24.6854 +-113.074 -0.697544 24.0245 +-114.553 -0.676401 23.2963 +-117.697 -0.663977 22.8684 +-124.873 -0.671694 23.1342 +-158.456 -0.810889 27.9282 +-159.581 -0.775037 26.6935 +-160.203 -0.736408 25.363 +-164.968 -0.715538 24.6442 +-3244.61 -13.2343 455.809 +-861.665 -3.29231 113.392 +-379.252 -1.35147 46.5467 +-380.24 -1.25734 43.3047 +-3258.55 -9.93986 342.344 +-403.633 -1.12797 38.8491 +-404.156 -1.02621 35.3442 +-403.752 -0.922216 31.7625 +-404.013 -0.819926 28.2395 +-404.145 -0.717395 24.7082 +-404.046 -0.614554 21.1662 +-402.317 -0.509795 17.5581 +-403.654 -0.409098 14.09 +-146.15 -0.111071 3.82546 +-144.978 -0.0734443 2.52953 +-145.294 -0.0367997 1.26744 +120 6.21725e-15 5.68434e-14 +119.595 -0.0208776 1.04348 +119.382 -0.041684 2.0834 +119.959 -0.062836 3.1406 +119.927 -0.083774 4.1871 +119.786 -0.104618 5.22891 +119.436 -0.12521 6.25813 +120.076 -0.146909 7.34267 +120.506 -0.168562 8.42489 +120.228 -0.189278 9.46028 +120.34 -0.210606 10.5263 +120.045 -0.231222 11.5567 +119.641 -0.251542 12.5723 +120.023 -0.273548 13.6722 +120.594 -0.296196 14.8041 +120.262 -0.316713 15.8296 +120.813 -0.339644 16.9757 +120.561 -0.360425 18.0144 +120.004 -0.380205 19.003 +120.623 -0.403779 20.1813 +121.033 -0.426905 21.3371 +120.744 -0.447651 22.374 +120.642 -0.469093 23.4457 +120.335 -0.489737 24.4775 +120.899 -0.514051 25.6928 +120.573 -0.534703 26.725 +120.432 -0.556181 27.7984 +121.06 -0.581383 29.0581 +120.705 -0.602011 30.0891 +121.115 -0.626564 31.3162 +120.837 -0.647683 32.3718 +121.225 -0.672494 33.6119 +120.927 -0.69363 34.6683 +121.482 -0.719825 35.9775 +121.259 -0.741589 37.0653 +121.694 -0.767541 38.3624 +121.355 -0.788755 39.4227 +121.101 -0.810543 40.5117 +121.594 -0.837514 41.8597 +121.695 -0.862046 43.0859 +121.126 -0.881888 44.0776 +117.271 -0.877079 43.8372 +114.457 -0.878877 43.9271 +110.72 -0.87243 43.6049 +107.182 -0.866247 43.2958 +105.415 -0.873442 43.6555 +102.084 -0.866799 43.3234 +99.6844 -0.867037 43.3353 +97.9321 -0.872202 43.5935 +96.4559 -0.87931 43.9487 +97.1562 -0.906258 45.2956 +96.7571 -0.923183 46.1416 +97.8787 -0.954945 47.729 +97.8163 -0.975565 48.7596 +96.8524 -0.987155 49.3389 +96.4181 -1.00402 50.1821 +96.6828 -1.02833 51.3968 +97.0214 -1.05376 52.6678 +96.558 -1.07065 53.5123 +96.7836 -1.09535 54.7465 +97.0814 -1.1212 56.0388 +96.4163 -1.13608 56.7821 +96.6028 -1.16111 58.0332 +96.0073 -1.17688 58.8215 +96.3383 -1.20419 60.1868 +96.484 -1.22957 61.4548 +96.6987 -1.25617 62.7843 +96.0636 -1.27189 63.5704 +96.2513 -1.29868 64.9093 +96.3404 -1.3245 66.1997 +96.4961 -1.35159 67.5538 +95.9842 -1.36955 68.4512 +96.5157 -1.40271 70.1088 +95.9805 -1.42069 71.0076 +96.0759 -1.44823 72.3838 +96.0751 -1.47469 73.7062 +96.1373 -1.50249 75.0957 +95.4782 -1.51921 75.9316 +96.133 -1.55722 77.8313 +96.0673 -1.58412 79.1759 +96.062 -1.6124 80.5895 +95.9632 -1.6395 81.9439 +95.9236 -1.668 83.3684 +95.8663 -1.69662 84.7984 +96.3859 -1.73604 86.7688 +96.2884 -1.76496 88.2144 +96.173 -1.79398 89.6649 +96.0396 -1.82309 91.1199 +95.8161 -1.85091 92.51 +96.3601 -1.8942 94.6739 +96.0958 -1.92226 96.0766 +96.0246 -1.95466 97.6957 +95.585 -1.97998 98.9614 +96.0943 -2.02561 101.242 +95.6844 -2.05255 102.588 +95.4609 -2.08392 104.156 +95.7526 -2.12727 106.323 +96.0136 -2.17087 108.502 +95.5878 -2.19962 109.939 +95.7286 -2.24209 112.062 +95.1326 -2.26791 113.352 +95.3481 -2.31376 115.644 +95.4679 -2.35829 117.869 +95.4315 -2.39992 119.95 +95.0581 -2.43382 121.645 +94.845 -2.47253 123.579 +94.846 -2.51776 125.84 +94.8742 -2.56477 128.189 +95.1037 -2.61845 130.873 +95.1191 -2.66752 133.325 +95.0416 -2.71515 135.706 +94.5898 -2.75308 137.601 +94.7273 -2.80929 140.411 +94.9884 -2.87076 143.483 +94.7672 -2.91911 145.9 +94.511 -2.9676 148.323 +94.6966 -3.03147 151.516 +94.3632 -3.0803 153.956 +94.5095 -3.14637 157.259 +94.6052 -3.21274 160.576 +94.6 -3.27763 163.819 +94.5453 -3.34277 167.075 +94.4409 -3.40814 170.342 +94.2389 -3.47195 173.531 +94.5046 -3.55538 177.701 +94.6585 -3.6374 181.801 +94.3392 -3.70369 185.114 +94.2816 -3.78269 189.062 +94.206 -3.86372 193.112 +94.0236 -3.94322 197.086 +94.4552 -4.05194 202.519 +94.2183 -4.13561 206.702 +94.2409 -4.23413 211.626 +94.2244 -4.33481 216.658 +94.3225 -4.44501 222.166 +94.1784 -4.54817 227.322 +94.5132 -4.67941 233.881 +94.3374 -4.79065 239.441 +94.2149 -4.90965 245.389 +94.1007 -5.03459 251.634 +93.6793 -5.14857 257.33 +93.6996 -5.29294 264.546 +93.4055 -5.42636 271.215 +93.5097 -5.59043 279.415 +93.2922 -5.74352 287.067 +93.4594 -5.92938 296.356 +93.325 -6.10615 305.191 +93.2138 -6.29484 314.622 +93.0276 -6.4897 324.361 +92.999 -6.70808 335.276 +93.149 -6.954 347.567 +92.891 -7.18496 359.111 +95.2205 -7.63955 381.832 +107.572 -8.96299 447.978 +103.41 -8.95999 447.828 +99.3241 -8.96207 447.932 +95.2028 -8.95951 447.804 +92.2276 -9.0679 453.222 +92.0844 -9.47638 473.638 +91.8285 -9.91104 495.363 +91.6515 -10.3975 519.678 +91.5684 -10.9458 547.082 +91.4203 -11.5462 577.09 +91.361 -12.2284 611.189 +90.9775 -12.9491 647.208 +90.6374 -13.7717 688.321 +90.8048 -14.7936 739.398 +96.3925 -16.9236 845.857 +90.0931 -17.1467 857.006 +89.6925 -18.6332 931.306 +90.7291 -20.7446 1036.83 +89.2315 -22.6799 1133.56 +88.0187 -25.1792 1258.48 +87.2017 -28.52 1425.45 +87.4063 -33.3623 1667.48 +79.0252 -36.2062 1809.62 +66.8919 -38.3176 1915.15 +85.7531 -65.5075 3274.12 +57.1723 -65.5199 3274.74 +28.5873 -65.5275 3275.12 +1.51434e-13 -65.5299 3275.24 +-28.5873 -65.5275 3275.12 +-57.1723 -65.5199 3274.74 +-85.7531 -65.5075 3274.12 +-114.327 -65.4899 3273.24 +-119.146 -54.5879 2728.35 +-125.308 -47.8291 2390.54 +-125.516 -41.0508 2051.76 +-119.974 -34.3204 1715.37 +-142.129 -36.125 1805.56 +-120.554 -27.5638 1377.66 +-136.456 -28.3481 1416.87 +-154.368 -29.3795 1468.42 +-118.456 -20.7972 1039.46 +-127.89 -20.8354 1041.37 +-148.865 -22.6189 1130.51 +-456.028 -64.908 3244.16 +-143.582 -19.2181 960.538 +-111.35 -14.0633 702.896 +-117.151 -14.0039 699.926 +-123.585 -14.0203 700.748 +-146.153 -15.7743 788.412 +-625.224 -64.3417 3215.86 +-653.269 -64.2301 3210.28 +-681.181 -64.1056 3204.06 +-709.208 -63.9922 3198.39 +-142.889 -12.3806 618.796 +-146.37 -12.1957 609.554 +-161.676 -12.9713 648.319 +-142.817 -11.0466 552.121 +-142.842 -10.6638 532.987 +-146.554 -10.571 528.349 +-151.022 -10.5354 526.57 +-109.175 -7.37274 368.496 +-111.218 -7.27688 363.705 +-114.178 -7.24383 362.054 +-117.087 -7.20841 360.283 +-121.052 -7.23701 361.713 +-124.953 -7.25912 362.817 +-1093.78 -61.7862 3088.13 +-1120.7 -61.593 3078.47 +-1147.52 -61.3949 3068.58 +-1174.26 -61.1923 3058.45 +-1200.84 -60.9813 3047.9 +-1227.4 -60.7694 3037.31 +-382.607 -18.4773 923.51 +-413.354 -19.4796 973.607 +-158.902 -7.31029 365.375 +-161.474 -7.25488 362.605 +-164.675 -7.22823 361.274 +-167.991 -7.20645 360.185 +-408.254 -17.1215 855.751 +-140.98 -5.78209 288.994 +-141.668 -5.68387 284.085 +-144.051 -5.65535 282.659 +-147.436 -5.66549 283.166 +-410.975 -15.4614 772.777 +-413.029 -15.2168 760.552 +-415.191 -14.9832 748.874 +-416.689 -14.7326 736.348 +-418.55 -14.5016 724.805 +-420.952 -14.2953 714.492 +-422.846 -14.0772 703.593 +-428.397 -13.9841 698.94 +-432.255 -13.8376 691.615 +-429.625 -13.49 674.241 +-432.498 -13.3222 665.855 +-434.264 -13.1244 655.97 +-437.289 -12.9685 648.177 +-439.645 -12.7961 639.559 +-442.916 -12.6533 632.422 +-444.877 -12.4761 623.569 +-447.187 -12.3122 615.377 +-449.686 -12.1565 607.594 +-451.783 -11.9929 599.416 +-454.501 -11.8485 592.199 +-460.084 -11.7797 588.762 +-459.416 -11.5534 577.449 +-470.039 -11.6111 580.334 +-465.228 -11.2894 564.253 +-468.206 -11.1618 557.875 +-471.434 -11.0416 551.869 +-473.74 -10.9015 544.867 +-476.623 -10.7764 538.616 +-479.967 -10.6631 532.951 +-482.439 -10.5317 526.385 +-485.31 -10.4105 520.327 +-488.525 -10.2978 514.695 +-491.54 -10.1819 508.903 +-494.211 -10.0601 502.812 +-495.823 -9.91826 495.724 +-498.847 -9.8061 490.118 +-502.243 -9.70196 484.913 +-382.055 -7.25244 362.483 +-383.229 -7.14864 357.295 +-381.467 -6.99227 349.48 +-380.713 -6.85716 342.727 +-381.967 -6.75995 337.868 +-382.487 -6.65103 332.424 +-141.588 -2.41898 120.903 +-141.642 -2.37745 118.827 +-142.905 -2.35647 117.778 +-141.596 -2.29366 114.639 +-141.887 -2.25765 112.839 +-143.26 -2.23895 111.905 +-145.422 -2.23212 111.564 +-154.855 -2.33426 116.669 +-155.868 -2.30714 115.313 +-156.221 -2.27043 113.478 +-157.45 -2.24657 112.286 +-160.308 -2.24539 112.227 +-382.395 -5.25719 262.759 +-380.777 -5.13767 256.786 +-382.003 -5.05776 252.791 +-381.008 -4.9495 247.38 +-381.382 -4.86022 242.918 +-380.604 -4.75742 237.78 +-380.107 -4.65945 232.883 +-379.382 -4.55995 227.91 +-379.117 -4.46715 223.272 +-379.492 -4.3828 219.056 +-379.388 -4.29372 214.604 +-378.011 -4.19146 209.493 +-378.858 -4.11481 205.662 +-380.197 -4.04381 202.114 +-380.794 -3.9653 198.189 +-380.103 -3.87414 193.633 +-378.915 -3.77909 188.882 +-377.224 -3.68035 183.947 +-379.988 -3.62556 181.209 +-378.927 -3.53458 176.662 +-378.817 -3.45337 172.602 +-380.766 -3.39118 169.494 +-379.388 -3.29984 164.929 +-380.261 -3.22881 161.379 +-379.068 -3.14087 156.984 +-378.569 -3.05959 152.921 +-379.424 -2.98972 149.429 +-378.1 -2.90331 145.11 +-378.603 -2.83159 141.526 +-113.703 -0.827838 41.3761 +-110.76 -0.784588 39.2145 +-109.869 -0.756757 37.8234 +-108.583 -0.72676 36.3241 +-108.611 -0.705922 35.2826 +-107.961 -0.680922 34.0331 +-108.158 -0.661464 33.0606 +-108.922 -0.645399 32.2576 +-108.43 -0.621951 31.0857 +-109.276 -0.606206 30.2987 +-110.888 -0.594356 29.7065 +-109.013 -0.563958 28.1872 +-109.546 -0.546359 27.3075 +-110.267 -0.52955 26.4674 +-110.786 -0.511631 25.5718 +-112.274 -0.497902 24.8856 +-113.074 -0.480779 24.0298 +-114.553 -0.466207 23.3014 +-117.403 -0.456499 22.8162 +-126.25 -0.468065 23.3943 +-159.145 -0.561332 28.0559 +-158.496 -0.53056 26.5179 +-162.475 -0.514763 25.7284 +-162.594 -0.486086 24.295 +-850.244 -2.39031 119.47 +-861.665 -2.26921 113.417 +-379.847 -0.932957 46.6301 +-381.631 -0.869786 43.4727 +-386.571 -0.812751 40.6221 +-403.633 -0.777451 38.8577 +-403.658 -0.706438 35.3084 +-403.752 -0.635633 31.7695 +-402.617 -0.563176 28.1481 +-404.744 -0.495194 24.7502 +-146.299 -0.153372 7.66569 +-403.316 -0.352246 17.6056 +-3274.5 -2.28737 114.325 +-147.15 -0.077079 3.85248 +-144.678 -0.0505164 2.52485 +-147.194 -0.0256957 1.28429 +120.3 5.77316e-15 5.68434e-14 +119.695 -0.0114727 1.04451 +120.282 -0.0230593 2.09939 +119.859 -0.0344719 3.13843 +120.227 -0.0461117 4.19816 +119.786 -0.0574414 5.22964 +119.436 -0.0687476 6.259 +120.076 -0.0806617 7.3437 +119.807 -0.092014 8.37724 +120.328 -0.10401 9.46944 +120.54 -0.115826 10.5452 +120.045 -0.126954 11.5583 +120.536 -0.139143 12.668 +120.023 -0.150193 13.6741 +120.793 -0.162896 14.8306 +120.262 -0.173894 15.8318 +120.813 -0.186484 16.9781 +120.561 -0.197894 18.0169 +120.3 -0.209269 19.0526 +120.623 -0.221698 20.1841 +120.245 -0.232869 21.2011 +120.744 -0.245786 22.3772 +120.642 -0.257559 23.449 +120.335 -0.268894 24.4809 +120.899 -0.282244 25.6963 +120.573 -0.293583 26.7287 +120.53 -0.305621 27.8247 +120.088 -0.316649 28.8288 +120.802 -0.330804 30.1175 +121.309 -0.34457 31.3707 +121.031 -0.356183 32.428 +121.225 -0.369238 33.6166 +121.215 -0.381751 34.7558 +121.387 -0.394913 35.9541 +121.259 -0.407175 37.0705 +120.931 -0.418781 38.1272 +121.45 -0.433411 39.4591 +121.291 -0.445732 40.5809 +121.877 -0.460915 41.9632 +121.695 -0.473313 43.0919 +121.972 -0.487588 44.3915 +117.365 -0.481951 43.8784 +113.71 -0.479405 43.6466 +110.72 -0.479014 43.611 +108.202 -0.480145 43.714 +104.583 -0.475787 43.3172 +102.268 -0.47678 43.4076 +99.6844 -0.476053 43.3414 +97.1099 -0.474868 43.2335 +96.3649 -0.482335 43.9134 +96.5218 -0.494338 45.0061 +97.389 -0.51019 46.4493 +97.8787 -0.52432 47.7357 +97.9953 -0.536622 48.8558 +96.9415 -0.542503 49.3912 +96.4181 -0.551267 50.1891 +96.7711 -0.565127 51.451 +96.2305 -0.573857 52.2457 +96.558 -0.58785 53.5198 +96.0002 -0.596541 54.311 +97.1681 -0.616154 56.0966 +97.1056 -0.628231 57.1961 +96.9456 -0.639776 58.2473 +96.9452 -0.652487 59.4045 +96.3383 -0.661172 60.1952 +96.484 -0.675102 61.4634 +96.7826 -0.690304 62.8475 +96.0636 -0.698342 63.5793 +96.2513 -0.71305 64.9184 +96.3404 -0.727225 66.2089 +96.4142 -0.74147 67.5058 +95.9028 -0.751321 68.4027 +96.0303 -0.766295 69.7659 +95.9805 -0.780042 71.0175 +96.2356 -0.796483 72.5143 +96.0751 -0.809688 73.7166 +96.2161 -0.825628 75.1678 +96.1043 -0.839604 76.4402 +96.133 -0.855003 77.8422 +96.1444 -0.870472 79.2505 +96.1386 -0.886007 80.6649 +96.0393 -0.900895 82.0204 +95.9236 -0.91583 83.3801 +95.8663 -0.931539 84.8103 +96.6088 -0.95539 86.9818 +96.2884 -0.969065 88.2268 +96.2461 -0.985747 89.7456 +96.0396 -1.00098 91.1326 +95.9599 -1.01778 92.6618 +95.7182 -1.0331 94.0563 +96.2372 -1.05699 96.2314 +96.0246 -1.07322 97.7094 +95.7239 -1.0887 99.119 +95.3371 -1.10341 100.458 +95.8208 -1.12857 102.749 +95.4609 -1.14419 104.171 +95.8864 -1.16963 106.487 +95.2848 -1.18288 107.694 +95.5878 -1.20772 109.954 +95.2091 -1.22436 111.469 +95.6468 -1.25193 113.98 +95.3481 -1.27039 115.66 +95.4679 -1.29483 117.886 +94.9957 -1.31167 119.419 +95.4275 -1.3415 122.135 +94.845 -1.35756 123.597 +94.9664 -1.38415 126.017 +95.3501 -1.41526 128.85 +95.3388 -1.44124 131.215 +95.1191 -1.46462 133.344 +94.8695 -1.48808 135.48 +94.6465 -1.5125 137.703 +94.6714 -1.54155 140.348 +94.8228 -1.57347 143.253 +94.7672 -1.60276 145.92 +94.9408 -1.63678 149.018 +94.7496 -1.66538 151.622 +94.311 -1.69033 153.893 +94.6125 -1.72943 157.453 +94.6052 -1.76398 160.598 +94.6 -1.79961 163.842 +94.5453 -1.83537 167.098 +94.4894 -1.87222 170.453 +94.8114 -1.91789 174.61 +94.6455 -1.95502 177.991 +94.6123 -1.99617 181.738 +94.43 -2.03549 185.318 +94.3262 -2.07789 189.178 +94.2936 -2.12338 193.319 +94.325 -2.17198 197.744 +94.2016 -2.21877 202.004 +94.1354 -2.26869 206.549 +94.2409 -2.32478 211.655 +94.1845 -2.37906 216.597 +94.3616 -2.44157 222.289 +94.1784 -2.4972 227.353 +94.2136 -2.56112 233.173 +94.3374 -2.63034 239.475 +93.9999 -2.68953 244.863 +94.0657 -2.76325 251.575 +93.7819 -2.82996 257.648 +93.6328 -2.90406 264.395 +93.7311 -2.98977 272.199 +93.478 -3.06842 279.359 +93.4467 -3.15874 287.582 +93.2188 -3.24719 295.634 +93.3835 -3.35473 305.426 +93.1286 -3.45307 314.378 +93.0276 -3.56321 324.406 +93.1326 -3.68841 335.805 +92.9937 -3.81177 347.036 +92.9661 -3.94814 359.451 +94.9302 -4.18176 380.721 +107.618 -4.92333 448.236 +103.477 -4.92275 448.183 +99.3458 -4.92176 448.093 +95.2859 -4.92358 448.258 +92.1877 -4.97665 453.09 +91.9509 -5.19553 473.017 +91.8285 -5.44173 495.432 +91.4952 -5.69909 518.864 +91.5354 -6.00771 546.961 +91.3264 -6.33301 576.577 +91.2132 -6.70325 610.285 +90.88 -7.10219 646.606 +90.7679 -7.57233 689.409 +90.5977 -8.10401 737.814 +96.3812 -9.29093 845.876 +89.9363 -9.39813 855.635 +89.6062 -10.2209 930.54 +90.7553 -11.3932 1037.28 +88.9412 -12.4122 1130.04 +88.0745 -13.8335 1259.44 +86.9942 -15.6218 1422.25 +87.3539 -18.3068 1666.71 +79.0645 -19.889 1810.76 +66.8779 -21.0341 1915.01 +76.989 -32.2914 2939.91 +57.1723 -35.9742 3275.2 +28.5873 -35.9783 3275.58 +1.48659e-13 -35.9797 3275.7 +-28.5873 -35.9783 3275.58 +-57.1723 -35.9742 3275.2 +-85.7531 -35.9674 3274.58 +-114.327 -35.9577 3273.7 +-142.91 -35.9498 3272.98 +-125.324 -26.2642 2391.18 +-125.546 -22.5446 2052.54 +-120.1 -18.8636 1717.41 +-142.074 -19.827 1805.11 +-120.536 -15.1319 1377.66 +-136.264 -15.5428 1415.06 +-154.389 -16.1332 1468.82 +-118.49 -11.4221 1039.91 +-128.012 -11.4507 1042.51 +-148.813 -12.4148 1130.28 +-455.973 -35.6339 3244.22 +-143.567 -10.5507 960.573 +-111.663 -7.74324 704.969 +-117.068 -7.68349 699.53 +-123.655 -7.70228 701.24 +-145.934 -8.64802 787.344 +-625.224 -35.3273 3216.31 +-653.269 -35.266 3210.73 +-681.181 -35.1977 3204.51 +-709.208 -35.1354 3198.84 +-142.934 -6.79982 619.078 +-146.51 -6.70256 610.222 +-162.112 -7.14118 650.156 +-142.992 -6.07267 552.876 +-142.79 -5.85292 532.869 +-146.366 -5.79668 527.748 +-903.071 -34.5901 3149.19 +-109.005 -4.04174 367.973 +-111.277 -3.99753 363.948 +-113.998 -3.971 361.532 +-117.272 -3.9641 360.904 +-120.544 -3.95687 360.246 +-125.083 -3.98982 363.246 +-1093.78 -33.9242 3088.56 +-1120.7 -33.8181 3078.9 +-1147.52 -33.7093 3069 +-1174.26 -33.5981 3058.88 +-1200.84 -33.4822 3048.33 +-1227.4 -33.3659 3037.74 +-382.722 -10.1481 923.916 +-413.472 -10.6984 974.019 +-158.902 -4.01377 365.426 +-161.434 -3.98233 362.564 +-164.301 -3.95972 360.505 +-168.456 -3.9677 361.232 +-1410.57 -32.4806 2957.14 +-141.331 -3.18259 289.754 +-141.623 -3.11978 284.035 +-144.006 -3.10413 282.61 +-147.621 -3.11456 283.56 +-411.445 -8.49892 773.768 +-413.363 -8.36167 761.273 +-415.676 -8.23624 749.854 +-417.23 -8.09954 737.408 +-419.65 -7.98315 726.811 +-421.257 -7.85461 715.109 +-422.743 -7.72733 703.521 +-428.083 -7.67247 698.526 +-433.262 -7.61531 693.322 +-429.893 -7.41139 674.756 +-432.226 -7.31003 665.529 +-434.595 -7.21155 656.562 +-437.904 -7.13046 649.18 +-439.984 -7.0312 640.142 +-443.317 -6.95368 633.085 +-445.225 -6.85548 624.144 +-447.363 -6.76279 615.706 +-449.864 -6.67727 607.92 +-452.384 -6.59355 600.298 +-453.771 -6.49505 591.33 +-460.145 -6.46862 588.923 +-459.229 -6.34089 577.295 +-470.165 -6.37687 580.571 +-465.037 -6.19597 564.101 +-468.914 -6.13769 558.795 +-471.24 -6.05996 551.718 +-474.331 -5.993 545.622 +-476.623 -5.91688 538.692 +-479.9 -5.85382 532.951 +-482.642 -5.78494 526.679 +-484.969 -5.71196 520.035 +-488.319 -5.65171 514.55 +-491.401 -5.58889 508.83 +-494.001 -5.52121 502.669 +-496.955 -5.45812 496.925 +-499.133 -5.38718 490.466 +-502.819 -5.33304 485.537 +-382.272 -3.98428 362.741 +-382.717 -3.91977 356.868 +-380.509 -3.82951 348.651 +-381.828 -3.77599 343.778 +-381.069 -3.70287 337.121 +-383.242 -3.659 333.127 +-141.664 -1.32887 120.985 +-141.642 -1.30536 118.844 +-142.056 -1.28615 117.095 +-141.751 -1.26073 114.781 +-141.809 -1.2389 112.793 +-142.236 -1.22052 111.12 +-145.977 -1.23024 112.005 +-155.654 -1.28826 117.287 +-155.868 -1.26675 115.329 +-156.949 -1.25241 114.023 +-157.694 -1.23541 112.475 +-160.636 -1.23536 112.471 +-382.477 -2.88713 262.853 +-378.621 -2.80491 255.368 +-381.503 -2.77336 252.496 +-381.344 -2.71994 247.632 +-380.117 -2.65969 242.146 +-381.028 -2.61501 238.079 +-379.681 -2.55544 232.655 +-380.839 -2.51328 228.817 +-378.6 -2.44937 222.999 +-380.272 -2.41135 219.537 +-378.431 -2.35156 214.093 +-380.722 -2.31786 211.025 +-379.737 -2.2645 206.168 +-378.608 -2.211 201.297 +-377.689 -2.15943 196.601 +-380.638 -2.13012 193.933 +-379.452 -2.07788 189.177 +-377.673 -2.02314 184.193 +-378.635 -1.98354 180.588 +-379.471 -1.94347 176.939 +-380.091 -1.90247 173.207 +-380.035 -1.85837 169.192 +-379.204 -1.81093 164.873 +-379.892 -1.77109 161.245 +-380.269 -1.72999 157.503 +-378.569 -1.67989 152.943 +-378.68 -1.63831 149.157 +-378.754 -1.59684 145.381 +-379.727 -1.55932 141.965 +-113.797 -0.454906 41.4161 +-111.703 -0.43445 39.5537 +-109.869 -0.415503 37.8287 +-108.583 -0.399033 36.3292 +-108.611 -0.387592 35.2876 +-108.533 -0.375846 34.2182 +-108.349 -0.363824 33.1237 +-108.155 -0.351866 32.035 +-108.719 -0.342395 31.1727 +-110.625 -0.336952 30.6771 +-110.405 -0.324914 29.5812 +-109.304 -0.31047 28.2662 +-110.517 -0.302639 27.5532 +-110.364 -0.291009 26.4944 +-111.078 -0.281656 25.6429 +-111.395 -0.271237 24.6943 +-113.269 -0.264432 24.0747 +-114.553 -0.255974 23.3047 +-117.501 -0.250853 22.8384 +-125.758 -0.255994 23.3065 +-156.683 -0.303435 27.6257 +-158.102 -0.290582 26.4555 +-161.092 -0.280229 25.513 +-163.385 -0.268187 24.4166 +-3244.61 -5.00832 455.973 +-861.665 -1.24593 113.433 +-380.939 -0.51372 46.7707 +-379.942 -0.475448 43.2863 +-3258.55 -3.76159 342.467 +-404.33 -0.427601 38.9302 +-404.355 -0.388545 35.3744 +-402.854 -0.348224 31.7034 +-403.714 -0.310058 28.2287 +-402.847 -0.270616 24.6377 +-146.699 -0.08444 7.68769 +-402.716 -0.193116 17.5819 +-3274.5 -1.2559 114.341 +-146.45 -0.0421194 3.83469 +-145.678 -0.0279281 2.54267 +-146.094 -0.0140029 1.27487 +119.4 4.88498e-15 0 +119.695 -0.00204918 1.04457 +120.282 -0.00411873 2.09952 +120.059 -0.00616744 3.14384 +120.227 -0.00823623 4.1984 +119.886 -0.0102684 5.23432 +120.335 -0.0123717 6.30647 +120.275 -0.0144313 7.35634 +120.605 -0.0165445 8.43354 +120.527 -0.0186086 9.48568 +120.54 -0.0206882 10.5458 +120.244 -0.0227135 11.5782 +120.337 -0.024812 12.6479 +120.123 -0.0268491 13.6863 +120.793 -0.0290957 14.8315 +120.659 -0.0311624 15.885 +120.912 -0.033336 16.993 +120.66 -0.0353756 18.0327 +120.202 -0.037348 19.0381 +120.721 -0.0396309 20.2018 +120.245 -0.0415938 21.2024 +119.957 -0.043615 22.2327 +120.642 -0.0460038 23.4504 +120.433 -0.0480674 24.5023 +120.214 -0.0501272 25.5523 +120.67 -0.0524805 26.7518 +120.53 -0.0545884 27.8263 +120.963 -0.0569704 29.0405 +120.802 -0.0590865 30.1192 +120.534 -0.0611522 31.1722 +121.031 -0.0636195 32.4299 +121.225 -0.0659513 33.6185 +120.542 -0.0678077 34.5648 +121.578 -0.0706487 36.013 +120.686 -0.0723832 36.8972 +121.122 -0.0749184 38.1895 +121.45 -0.0774136 39.4614 +122.144 -0.0801743 40.8687 +121.026 -0.0817514 41.6726 +121.695 -0.0845406 43.0944 +121.972 -0.0870903 44.3941 +117.365 -0.0860835 43.8809 +114.457 -0.0861912 43.9358 +110.813 -0.0856309 43.6502 +108.11 -0.0856874 43.679 +104.583 -0.0849826 43.3197 +102.176 -0.0850834 43.3711 +99.6844 -0.08503 43.3439 +97.2012 -0.0848982 43.2767 +96.6379 -0.0863962 44.0403 +97.3375 -0.0890422 45.3891 +96.8474 -0.0906206 46.1937 +97.8787 -0.0936511 47.7385 +97.4584 -0.0953231 48.5908 +96.9415 -0.096899 49.3941 +96.5068 -0.0985547 50.2381 +96.8594 -0.101032 51.5009 +97.0214 -0.103342 52.6782 +96.558 -0.104999 53.5229 +96.8706 -0.107517 54.8066 +96.3886 -0.109171 55.6499 +96.6748 -0.111713 56.9457 +96.8599 -0.114172 58.1992 +96.1778 -0.115621 58.9377 +96.4231 -0.118199 60.2517 +96.5683 -0.120688 61.5207 +96.6987 -0.123192 62.7968 +96.147 -0.124842 63.6382 +96.3342 -0.127471 64.9781 +96.3404 -0.129893 66.2128 +96.578 -0.132663 67.6246 +95.9028 -0.134197 68.4067 +95.9494 -0.136756 69.7112 +96.1413 -0.13956 71.1407 +96.2356 -0.142263 72.5186 +96.1544 -0.144742 73.7818 +96.2161 -0.147469 75.1722 +96.1825 -0.150088 76.5069 +96.133 -0.152716 77.8468 +96.2216 -0.155604 79.3188 +96.1386 -0.158254 80.6696 +96.0393 -0.160913 82.0251 +95.9991 -0.163709 83.4505 +95.9412 -0.166516 84.8814 +96.5345 -0.170515 86.9199 +95.8461 -0.172294 87.8265 +96.2461 -0.176069 89.7508 +96.1121 -0.178925 91.2068 +95.888 -0.181654 92.5978 +95.7182 -0.184526 94.0618 +95.6008 -0.187545 95.6006 +96.0246 -0.191693 97.7151 +95.7934 -0.1946 99.1968 +95.5436 -0.197513 100.682 +95.889 -0.201723 102.828 +95.596 -0.204659 104.325 +95.8864 -0.208913 106.493 +95.4173 -0.211575 107.85 +95.6534 -0.215865 110.037 +95.8585 -0.220179 112.236 +95.1326 -0.222413 113.375 +95.4753 -0.227212 115.821 +95.5308 -0.231429 117.971 +95.4315 -0.235359 119.974 +95.5507 -0.23992 122.299 +95.0277 -0.242947 123.842 +94.9664 -0.247229 126.025 +95.4096 -0.252946 128.939 +95.2212 -0.257109 131.061 +95.1191 -0.261603 133.352 +95.099 -0.266435 135.815 +94.9297 -0.270965 138.124 +94.6154 -0.27518 140.273 +94.9332 -0.28137 143.428 +94.7127 -0.286111 145.845 +94.6185 -0.291361 148.521 +94.8026 -0.297629 151.716 +94.4155 -0.302251 154.072 +94.6125 -0.308901 157.462 +94.6559 -0.315241 160.694 +94.55 -0.321266 163.765 +94.6931 -0.328336 167.369 +94.4894 -0.334406 170.463 +94.382 -0.341011 173.83 +94.2699 -0.34781 177.296 +94.7046 -0.356893 181.926 +94.43 -0.363569 185.329 +94.4155 -0.371492 189.368 +94.2936 -0.379267 193.331 +94.0236 -0.38671 197.125 +94.1593 -0.396126 201.925 +93.928 -0.404328 206.106 +94.2409 -0.415239 211.668 +94.2244 -0.425113 216.701 +94.4397 -0.436462 222.486 +94.2167 -0.446217 227.459 +94.1761 -0.457272 233.094 +94.1175 -0.468723 238.931 +93.9999 -0.480389 244.878 +93.8556 -0.492454 251.028 +93.6109 -0.50455 257.194 +93.9666 -0.520558 265.353 +93.666 -0.533647 272.025 +93.7953 -0.549925 280.323 +93.4467 -0.564197 287.598 +93.1587 -0.579622 295.461 +93.2666 -0.598453 305.06 +93.2706 -0.617708 314.875 +93 -0.636254 324.329 +93.2127 -0.659371 336.113 +93.0196 -0.681029 347.153 +93.0412 -0.705767 359.763 +94.4221 -0.742926 378.705 +107.642 -0.87957 448.359 +103.477 -0.879275 448.209 +99.4107 -0.879674 448.412 +95.2236 -0.878848 447.991 +92.1279 -0.888325 452.822 +92.0844 -0.929345 473.732 +91.6827 -0.97043 494.675 +91.4952 -1.01794 518.894 +91.4529 -1.0721 546.5 +91.2169 -1.12981 575.92 +91.2132 -1.1973 610.321 +90.6991 -1.26603 645.357 +90.6635 -1.35097 688.657 +90.5002 -1.44594 737.064 +96.4039 -1.65989 846.124 +89.9363 -1.67864 855.685 +89.5487 -1.82442 929.997 +90.8424 -2.03694 1038.33 +88.8549 -2.21483 1129.01 +88.0117 -2.46912 1258.63 +86.7622 -2.78284 1418.55 +87.2597 -3.26635 1665.02 +79.0645 -3.55247 1810.87 +66.9128 -3.75897 1916.13 +77.1147 -5.77713 2944.88 +57.1723 -6.42551 3275.39 +28.5873 -6.42626 3275.77 +1.80078e-13 -6.42649 3275.89 +-28.5873 -6.42626 3275.77 +-57.1723 -6.42551 3275.39 +-85.7531 -6.4243 3274.77 +-114.327 -6.42257 3273.89 +-142.91 -6.42116 3273.17 +-125.36 -4.69254 2392.02 +-125.644 -4.02994 2054.26 +-120.128 -3.37011 1717.91 +-135.875 -3.38688 1726.46 +-120.545 -2.70298 1377.84 +-136.283 -2.77656 1415.35 +-154.577 -2.88514 1470.7 +-118.501 -2.04036 1040.07 +-127.853 -2.04273 1041.28 +-148.917 -2.21901 1131.14 +-455.973 -6.36474 3244.41 +-143.715 -1.88646 961.618 +-111.663 -1.38306 705.011 +-117.167 -1.37355 700.163 +-123.655 -1.37574 701.281 +-146.08 -1.54621 788.175 +-625.224 -6.30997 3216.49 +-653.269 -6.29902 3210.91 +-681.181 -6.28682 3204.69 +-709.208 -6.27569 3199.02 +-142.934 -1.21455 619.114 +-146.627 -1.19813 610.745 +-162.523 -1.27876 651.844 +-142.591 -1.08163 551.359 +-143.023 -1.04712 533.77 +-146.66 -1.03745 528.839 +-903.071 -6.17829 3149.37 +-109.033 -0.722102 368.09 +-111.247 -0.713829 363.873 +-114.058 -0.709653 361.744 +-117.148 -0.707301 360.545 +-120.798 -0.708244 361.026 +-125.083 -0.712641 363.267 +-1093.78 -6.05935 3088.74 +-1120.7 -6.0404 3079.08 +-1147.52 -6.02098 3069.18 +-1174.26 -6.00111 3059.05 +-1200.84 -5.98041 3048.5 +-383.223 -1.86074 948.507 +-383.028 -1.81405 924.709 +-414.292 -1.91469 976.009 +-159.141 -0.717998 365.998 +-161.841 -0.713096 363.499 +-164.633 -0.708692 361.254 +-168.075 -0.707091 360.438 +-409.201 -1.683 857.905 +-141.331 -0.568458 289.77 +-141.623 -0.557239 284.051 +-143.915 -0.554094 282.448 +-147.667 -0.556481 283.665 +-412.055 -1.52028 774.962 +-413.363 -1.49352 761.318 +-415.724 -1.47128 749.985 +-417.329 -1.44704 737.625 +-419.8 -1.42642 727.114 +-421.155 -1.40261 714.979 +-423.052 -1.38122 704.076 +-428.031 -1.37025 698.482 +-434.375 -1.3637 695.144 +-429.84 -1.32362 674.712 +-431.899 -1.30469 665.065 +-435.037 -1.2894 657.268 +-437.904 -1.2736 649.218 +-440.607 -1.25765 641.087 +-443.317 -1.24203 633.122 +-445.631 -1.22561 624.751 +-448.069 -1.20984 616.713 +-450.34 -1.19392 608.599 +-452.565 -1.17818 600.573 +-454.44 -1.16182 592.237 +-460.207 -1.15554 589.037 +-460.101 -1.13473 578.425 +-469.662 -1.13778 579.983 +-465.736 -1.10836 564.983 +-468.656 -1.09568 558.522 +-471.369 -1.0827 551.902 +-474.331 -1.07044 545.654 +-477.484 -1.05875 539.696 +-479.633 -1.045 532.685 +-482.912 -1.03385 527.005 +-486.469 -1.0234 521.674 +-488.663 -1.01019 514.942 +-491.679 -0.998822 509.148 +-494.351 -0.98687 503.055 +-497.237 -0.975454 497.236 +-499.347 -0.962644 490.706 +-502.819 -0.952559 485.565 +-379.806 -0.707057 360.421 +-379.792 -0.694777 354.161 +-379.624 -0.682416 347.86 +-382.051 -0.674842 343.999 +-381.743 -0.662555 337.736 +-383.694 -0.654322 333.539 +-141.664 -0.237356 120.992 +-141.565 -0.23303 118.787 +-142.905 -0.231098 117.802 +-141.518 -0.224814 114.599 +-141.965 -0.221529 112.924 +-142.788 -0.218849 111.558 +-146.374 -0.220336 112.316 +-155.175 -0.229393 116.933 +-155.546 -0.225793 115.098 +-156.949 -0.223698 114.03 +-158.183 -0.221346 112.831 +-160.144 -0.219979 112.134 +-380.994 -0.513684 261.849 +-381.357 -0.504619 257.229 +-379.668 -0.492982 251.297 +-380.84 -0.485182 247.321 +-380.791 -0.475903 242.591 +-381.198 -0.467287 238.199 +-381.045 -0.458078 233.505 +-380.925 -0.449011 228.883 +-379.289 -0.43829 223.418 +-379.406 -0.429721 219.05 +-378.779 -0.420409 214.303 +-380.285 -0.413527 210.795 +-379.473 -0.404193 206.037 +-379.932 -0.396301 202.014 +-378.044 -0.386066 196.797 +-378.41 -0.378245 192.81 +-378.468 -0.370176 188.697 +-379.651 -0.363253 185.168 +-379.627 -0.35522 181.073 +-379.924 -0.347547 177.162 +-380.819 -0.34046 173.549 +-379.578 -0.331534 168.999 +-380.397 -0.324475 165.401 +-379.524 -0.316034 161.098 +-379.992 -0.308775 157.398 +-379.682 -0.300934 153.401 +-378.959 -0.292842 149.276 +-378.754 -0.285219 145.39 +-379.914 -0.278655 142.044 +-113.233 -0.0808503 41.2133 +-110.949 -0.0770753 39.289 +-109.869 -0.0742149 37.8309 +-109.342 -0.071771 36.5851 +-108.706 -0.0692901 35.3205 +-108.819 -0.0673086 34.3104 +-108.349 -0.0649843 33.1256 +-109.21 -0.0634612 32.3492 +-108.911 -0.0612648 31.2296 +-110.336 -0.0600272 30.5987 +-110.502 -0.0580852 29.6088 +-109.304 -0.0554545 28.2678 +-109.837 -0.0537237 27.3855 +-110.558 -0.0520701 26.5426 +-111.078 -0.0503079 25.6444 +-112.469 -0.0489139 24.9338 +-113.269 -0.0472315 24.0762 +-113.867 -0.0454471 23.1666 +-117.501 -0.044806 22.8398 +-125.07 -0.0454741 23.1804 +-160.031 -0.0553562 28.2177 +-160.37 -0.0526469 26.8366 +-160.302 -0.0498074 25.3893 +-162.396 -0.0476122 24.2703 +-851.829 -0.234855 119.717 +-863.251 -0.222951 113.649 +-380.046 -0.0915427 46.6637 +-381.333 -0.0852329 43.4473 +-3258.55 -0.671875 342.487 +-404.429 -0.0763946 38.942 +-403.857 -0.0693143 35.3328 +-404.35 -0.0624287 31.8229 +-404.213 -0.0554494 28.2652 +-403.246 -0.0483838 24.6636 +-145.5 -0.014959 7.62534 +-404.315 -0.0346304 17.6528 +-402.755 -0.027591 14.0645 +-147.749 -0.00758991 3.86894 +-146.678 -0.00502261 2.56027 +-145.394 -0.00248915 1.26884 +119.5 2.66454e-15 -1.13687e-13 +119.695 0.00737336 1.04454 +120.082 0.0147954 2.09598 +120.059 0.0221917 3.14377 +120.027 0.0295863 4.19133 +119.986 0.0369786 5.23856 +119.536 0.0442203 6.26445 +120.275 0.0519266 7.35617 +120.605 0.0595304 8.43335 +120.627 0.0670126 9.49331 +120.54 0.0744402 10.5455 +120.244 0.0817276 11.5779 +120.536 0.0894259 12.6685 +120.123 0.0966082 13.686 +120.793 0.104692 14.8311 +120.659 0.112128 15.8846 +120.912 0.119949 16.9926 +119.968 0.126558 17.9289 +120.202 0.134385 19.0376 +120.623 0.142483 20.1848 +120.245 0.149662 21.2019 +120.744 0.157964 22.3779 +120.74 0.165665 23.4689 +120.433 0.172956 24.5017 +120.117 0.180221 25.531 +120.67 0.188835 26.7512 +120.53 0.19642 27.8257 +121.06 0.205155 29.0632 +120.802 0.212605 30.1185 +120.438 0.219861 31.1465 +121.031 0.228915 32.4292 +121.321 0.237494 33.6445 +120.542 0.243985 34.564 +120.715 0.252403 35.7566 +121.546 0.262306 37.1595 +121.122 0.269571 38.1886 +121.45 0.278549 39.4605 +121.385 0.286691 40.614 +121.783 0.295996 41.9322 +121.695 0.304193 43.0934 +121.878 0.313126 44.3589 +117.365 0.309745 43.8799 +113.71 0.308109 43.6481 +110.813 0.308117 43.6492 +108.017 0.308056 43.6406 +105.507 0.308484 43.7013 +102.084 0.30587 43.331 +99.6844 0.305954 43.3429 +97.1099 0.305193 43.235 +96.7289 0.311163 44.0808 +96.703 0.318303 45.0923 +96.8474 0.326071 46.1926 +97.9686 0.337285 47.7813 +97.7268 0.343936 48.7236 +96.9415 0.348661 49.393 +96.5068 0.354619 50.2369 +96.7711 0.363202 51.4528 +97.1093 0.37218 52.7247 +96.6455 0.378148 53.5702 +96.9576 0.387215 54.8546 +96.3886 0.392819 55.6486 +96.5886 0.401608 56.8937 +96.9456 0.411178 58.2493 +96.3483 0.416765 59.0408 +96.4231 0.425302 60.2503 +96.5683 0.43426 61.5193 +96.6987 0.443268 62.7953 +96.2304 0.449597 63.6919 +96.2513 0.45827 64.9207 +96.4228 0.46778 66.2678 +96.4961 0.476941 67.5656 +95.9842 0.483277 68.4632 +96.0303 0.49249 69.7684 +96.7844 0.505524 71.6149 +96.1557 0.511466 72.4567 +96.2338 0.521238 73.841 +96.2161 0.530623 75.1704 +96.1043 0.539605 76.4429 +96.133 0.549502 77.845 +96.1444 0.559443 79.2533 +96.2152 0.569882 80.7321 +96.0393 0.578996 82.0233 +95.9991 0.589058 83.4486 +95.9412 0.599158 84.8795 +95.8657 0.609296 86.3156 +96.2884 0.622808 88.2299 +96.2461 0.63353 89.7488 +96.1121 0.643807 91.2047 +95.888 0.653626 92.5957 +95.7182 0.66396 94.0597 +95.5301 0.674323 95.5277 +96.0246 0.689748 97.7129 +95.2377 0.696145 98.619 +96.0943 0.714783 101.259 +95.2752 0.721193 102.167 +95.6636 0.736919 104.395 +95.0835 0.745411 105.598 +95.4173 0.761286 107.847 +95.719 0.777253 110.109 +95.2091 0.786881 111.473 +95.7754 0.805693 114.138 +95.4753 0.817552 115.818 +95.5308 0.832728 117.968 +95.4937 0.847417 120.049 +95.0581 0.858831 121.666 +94.9059 0.873055 123.681 +95.4479 0.89409 126.661 +94.8148 0.904473 128.132 +95.28 0.925699 131.139 +95.0611 0.940727 133.268 +95.0416 0.958105 135.73 +94.9297 0.974983 138.121 +94.6714 0.990738 140.353 +94.9332 1.01242 143.424 +94.7672 1.03008 145.925 +94.9946 1.05254 149.108 +94.8555 1.07153 151.797 +94.4155 1.08756 154.068 +94.6125 1.11149 157.458 +94.6559 1.1343 160.69 +94.6 1.15659 163.848 +94.2006 1.17527 166.495 +94.6348 1.20511 170.722 +94.4297 1.22764 173.914 +94.6455 1.25647 177.998 +94.2429 1.27791 181.034 +94.4754 1.30882 185.413 +94.3708 1.33607 189.274 +94.2936 1.36468 193.326 +94.0667 1.39209 197.21 +94.5397 1.4311 202.736 +94.2598 1.45999 206.829 +94.2409 1.49411 211.663 +94.1845 1.529 216.605 +94.4397 1.57047 222.48 +94.2167 1.60558 227.453 +94.1761 1.64535 233.088 +94.484 1.69313 239.856 +93.8924 1.72656 244.592 +94.2058 1.77856 251.959 +93.5767 1.8148 257.094 +93.5327 1.86441 264.121 +93.4055 1.91482 271.262 +93.5731 1.97406 279.654 +93.2304 2.0254 286.927 +93.2789 2.08828 295.836 +93.1789 2.15132 304.766 +93.3842 2.22534 315.252 +93 2.28936 324.322 +92.9722 2.36643 335.239 +92.8643 2.44638 346.565 +92.7908 2.53265 358.787 +94.277 2.66908 378.115 +107.572 3.1628 448.057 +103.455 3.16312 448.102 +99.3891 3.16454 448.304 +95.2028 3.16157 447.883 +92.1678 3.19775 453.008 +91.7028 3.33011 471.758 +91.8285 3.49734 495.45 +91.3389 3.6565 517.996 +91.3704 3.85413 545.994 +91.1074 4.06041 575.216 +91.2427 4.3095 610.504 +90.6991 4.55542 645.342 +90.6374 4.85966 688.442 +90.5977 5.20836 737.841 +96.4718 5.9768 846.701 +89.8422 6.03376 854.771 +89.5391 6.56393 929.876 +90.8337 7.32861 1038.2 +88.6195 7.94829 1125.99 +87.9908 8.88224 1258.3 +85.0772 9.81872 1390.97 +87.2754 11.755 1665.27 +79.0819 12.7853 1811.22 +66.9652 13.5361 1917.58 +85.7531 23.1159 3274.7 +57.1723 23.1202 3275.32 +28.5873 23.1229 3275.7 +1.5532e-13 23.1238 3275.82 +-28.5873 23.1229 3275.7 +-57.1723 23.1202 3275.32 +-85.7531 23.1159 3274.7 +-114.327 23.1096 3273.82 +-142.91 23.1046 3273.1 +-125.423 16.8931 2393.16 +-125.62 14.4977 2053.81 +-120.19 12.1326 1718.76 +-142.176 12.7517 1806.46 +-120.624 9.73211 1378.7 +-136.753 10.025 1420.19 +-154.42 10.3708 1469.17 +-118.603 7.34795 1040.94 +-127.987 7.35783 1042.34 +-148.956 7.98655 1131.41 +-455.973 22.9016 3244.34 +-143.715 6.78784 961.596 +-111.819 4.98348 705.982 +-117.316 4.94855 701.035 +-123.915 4.9606 702.741 +-145.57 5.54411 785.404 +-625.224 22.7045 3216.42 +-653.269 22.6651 3210.84 +-681.264 22.624 3205.02 +-709.208 22.5812 3198.95 +-142.911 4.36949 619.002 +-146.744 4.31453 611.217 +-153.016 4.33204 613.697 +-142.867 3.89943 552.411 +-143.256 3.77389 534.627 +-146.58 3.73091 528.538 +-903.071 22.2307 3149.3 +-109.232 2.603 368.753 +-111.306 2.56984 364.056 +-114.208 2.55683 362.213 +-117.396 2.55037 361.297 +-120.861 2.54973 361.207 +-125.051 2.56355 363.165 +-1093.78 21.8027 3088.67 +-1120.7 21.7345 3079.01 +-1147.52 21.6646 3069.11 +-1174.26 21.5931 3058.98 +-1200.84 21.5187 3048.43 +-384.047 6.70969 950.525 +-383.143 6.52926 924.965 +-414.527 6.89332 976.54 +-158.782 2.57767 365.164 +-161.881 2.5665 363.582 +-164.924 2.55451 361.883 +-168.582 2.55192 361.517 +-1410.57 20.875 2957.25 +-141.331 2.04542 289.764 +-141.668 2.00569 284.135 +-144.051 1.99562 282.709 +-147.667 2.00233 283.659 +-411.774 5.46653 774.414 +-413.124 5.37086 760.861 +-416.306 5.30138 751.017 +-417.329 5.20672 737.608 +-419.8 5.13252 727.097 +-421.308 5.04869 715.22 +-423.516 4.97535 704.831 +-428.188 4.93222 698.722 +-434.375 4.90686 695.128 +-430.001 4.76442 674.949 +-432.77 4.70401 666.391 +-435.202 4.64126 657.503 +-438.407 4.58794 649.949 +-440.381 4.52295 640.742 +-443.317 4.46906 633.107 +-445.631 4.40997 624.736 +-447.892 4.35152 616.456 +-450.34 4.29596 608.585 +-452.745 4.24099 600.798 +-454.806 4.18382 592.699 +-461.069 4.16566 590.126 +-460.35 4.08517 578.725 +-470.165 4.09835 580.592 +-465.736 3.98808 564.97 +-468.914 3.94463 558.815 +-471.954 3.90057 552.573 +-474.856 3.85591 546.245 +-477.749 3.8117 539.984 +-480.101 3.76377 533.193 +-483.182 3.72209 527.288 +-485.242 3.67308 520.345 +-488.181 3.63128 514.423 +-491.401 3.59192 508.848 +-494.141 3.54944 502.829 +-497.874 3.51437 497.862 +-499.347 3.46378 490.695 +-502.819 3.42749 485.554 +-381.837 2.55774 362.341 +-380.596 2.50524 354.903 +-379.845 2.4569 348.055 +-381.01 2.4216 343.054 +-382.716 2.39009 338.591 +-383.694 2.35438 333.532 +-141.74 0.854511 121.054 +-141.642 0.83894 118.848 +-142.982 0.83198 117.862 +-141.674 0.809815 114.722 +-141.809 0.796227 112.797 +-142.709 0.787022 111.493 +-146.374 0.792811 112.313 +-155.175 0.825401 116.93 +-155.868 0.814128 115.333 +-156.707 0.803667 113.851 +-158.427 0.797674 113.002 +-159.898 0.790312 111.959 +-380.829 1.84753 261.729 +-381.772 1.81768 257.502 +-381.002 1.78008 252.174 +-379.918 1.74154 246.715 +-380.454 1.71087 242.37 +-381.282 1.68176 238.246 +-380.278 1.64493 233.028 +-379.554 1.60981 228.053 +-380.582 1.58243 224.174 +-379.579 1.54693 219.145 +-379.91 1.51723 214.938 +-379.585 1.48521 210.402 +-379.473 1.45436 206.032 +-380.55 1.42828 202.337 +-380.616 1.39859 198.131 +-379.48 1.36484 193.35 +-380.168 1.33795 189.54 +-379.651 1.30705 185.163 +-379.357 1.27724 180.939 +-379.743 1.24994 177.073 +-379.454 1.22065 172.923 +-379.761 1.19349 169.076 +-379.296 1.16415 164.919 +-379.432 1.13688 161.055 +-379.53 1.10968 157.202 +-380.053 1.08388 153.547 +-378.308 1.05189 149.015 +-380.527 1.03108 146.067 +-380.102 1.00315 142.11 +-113.797 0.292364 41.4176 +-111.797 0.279452 39.5885 +-109.869 0.26704 37.8301 +-109.247 0.258022 36.5526 +-108.801 0.249537 35.3506 +-108.628 0.241765 34.2495 +-109.019 0.235271 33.3296 +-108.922 0.227744 32.2633 +-108.623 0.219859 31.1462 +-111.203 0.217687 30.8385 +-110.888 0.209732 29.7117 +-109.11 0.199182 28.2171 +-110.323 0.194162 27.5058 +-110.656 0.187523 26.5654 +-111.273 0.181335 25.6888 +-111.395 0.174321 24.6952 +-113.172 0.169801 24.0548 +-113.867 0.163527 23.166 +-116.617 0.160008 22.6675 +-124.185 0.162466 23.0157 +-158.849 0.197712 28.0088 +-159.186 0.188036 26.638 +-160.993 0.17999 25.4982 +-162.693 0.171631 24.314 +-851.829 0.845052 119.714 +-862.854 0.801853 113.594 +-380.244 0.32956 46.6869 +-381.631 0.306924 43.4803 +-897.457 0.665827 94.3242 +-403.832 0.274477 38.8836 +-402.961 0.248853 35.2536 +-403.452 0.224132 31.7516 +-403.116 0.198976 28.1879 +-403.945 0.174396 24.7057 +-145.201 0.0537146 7.60946 +-403.016 0.124206 17.5957 +-147.11 0.0362623 5.13708 +-146.85 0.0271436 3.84529 +-145.978 0.017986 2.54799 +-146.294 0.00901184 1.27666 +119.6 2.66454e-15 -1.13687e-13 +119.595 0.0167821 1.04356 +120.082 0.0337032 2.09576 +119.159 0.0501729 3.11989 +120.227 0.0675085 4.19787 +119.986 0.0842358 5.23801 +120.335 0.101405 6.30566 +120.175 0.118189 7.34929 +120.605 0.135608 8.43247 +120.627 0.152652 9.49232 +120.54 0.169572 10.5444 +120.244 0.186172 11.5767 +120.536 0.203709 12.6672 +120.918 0.221525 13.775 +120.892 0.23868 14.8418 +120.659 0.255424 15.8829 +120.912 0.27324 16.9908 +120.759 0.290196 18.0452 +120.893 0.307885 19.1451 +120.623 0.324571 20.1827 +120.344 0.341205 21.2171 +120.744 0.359836 22.3756 +120.642 0.377072 23.4474 +120.531 0.394308 24.5191 +120.214 0.410869 25.549 +120.67 0.430158 26.7484 +120.53 0.447436 27.8228 +121.06 0.467334 29.0601 +120.802 0.484305 30.1154 +120.244 0.500029 31.0932 +121.031 0.52146 32.4258 +121.321 0.541001 33.641 +121.407 0.559777 34.8085 +120.907 0.575878 35.8097 +121.451 0.597053 37.1264 +121.122 0.614072 38.1847 +121.355 0.634026 39.4255 +122.144 0.657152 40.8635 +121.783 0.674267 41.9278 +121.695 0.69294 43.0889 +121.972 0.713839 44.3885 +117.365 0.705587 43.8753 +114.457 0.706469 43.9302 +110.72 0.701287 43.608 +107.275 0.69692 43.3364 +104.676 0.697177 43.3524 +102.176 0.697389 43.3656 +99.5927 0.69631 43.2985 +97.8407 0.700449 43.5559 +96.5469 0.707484 43.9933 +97.3375 0.729838 45.3833 +96.8474 0.742775 46.1878 +97.8787 0.767615 47.7324 +97.5478 0.782038 48.6293 +97.0306 0.794966 49.4332 +96.5068 0.807808 50.2317 +96.7711 0.827359 51.4474 +96.3184 0.840906 52.2898 +96.6455 0.861406 53.5646 +96.8706 0.881267 54.7996 +97.1681 0.902063 56.0927 +96.5886 0.914848 56.8877 +96.8599 0.935818 58.1918 +96.3483 0.949374 59.0347 +96.4231 0.968822 60.244 +96.5683 0.989227 61.5128 +96.0278 1.00274 62.3531 +96.2304 1.02416 63.6853 +96.2513 1.04392 64.9139 +96.4228 1.06558 66.2609 +95.7589 1.07815 67.0424 +95.9028 1.09995 68.398 +96.7584 1.13038 70.29 +96.1413 1.14391 71.1316 +96.2356 1.16607 72.5093 +96.0751 1.1854 73.7115 +96.2161 1.20874 75.1626 +96.1825 1.2302 76.4971 +96.133 1.25174 77.8368 +96.1444 1.27439 79.2451 +96.1386 1.29713 80.6594 +96.1153 1.31997 82.0796 +95.9991 1.34185 83.4399 +95.9412 1.36486 84.8706 +95.8657 1.38795 86.3066 +96.3621 1.41982 88.2882 +95.5879 1.43329 89.1257 +96.1121 1.46657 91.1952 +95.888 1.48893 92.586 +95.6469 1.51135 93.9797 +95.6008 1.53722 95.5884 +96.0947 1.57236 97.774 +95.7934 1.59504 99.1842 +96.0943 1.62825 101.249 +95.889 1.65343 102.815 +95.6636 1.67867 104.385 +95.7526 1.70996 106.33 +95.351 1.73297 107.761 +95.6534 1.76935 110.023 +95.2091 1.79248 111.462 +95.1968 1.82424 113.436 +95.4753 1.86235 115.806 +95.4679 1.89567 117.878 +95.556 1.93164 120.114 +95.0581 1.95638 121.653 +94.9668 1.99005 123.747 +94.846 2.02385 125.849 +94.9337 2.06294 128.279 +94.751 2.097 130.397 +95.0611 2.14294 133.254 +95.0416 2.18253 135.715 +94.9297 2.22097 138.106 +94.5595 2.25419 140.172 +94.9884 2.30761 143.493 +94.7672 2.34647 145.91 +95.102 2.40036 149.261 +94.8555 2.44089 151.781 +94.3632 2.47604 153.967 +94.664 2.53328 157.527 +94.5544 2.58112 160.501 +94.2 2.62352 163.138 +94.5453 2.68702 167.086 +94.6348 2.7452 170.704 +94.4297 2.79652 173.896 +94.2229 2.84942 177.185 +94.2891 2.91246 181.105 +94.4754 2.98144 185.394 +94.3262 3.04207 189.165 +94.2498 3.10723 193.216 +94.4541 3.18418 198.001 +94.2016 3.24833 201.99 +94.3012 3.32726 206.898 +94.3222 3.40647 211.824 +94.1845 3.48299 216.582 +94.1662 3.56712 221.813 +94.1784 3.65596 227.338 +94.2136 3.74954 233.157 +94.3741 3.85239 239.552 +94.1791 3.94504 245.313 +93.7155 4.03039 250.621 +93.8845 4.14766 257.913 +93.4993 4.24555 264 +93.5357 4.36796 271.612 +93.4462 4.49071 279.245 +93.3231 4.61835 287.182 +93.0985 4.74782 295.233 +93.0327 4.89294 304.257 +93.1002 5.05382 314.26 +93.0552 5.21817 324.48 +92.9188 5.38752 335.011 +92.8902 5.57431 346.626 +92.7908 5.76928 358.75 +94.2528 6.0785 377.978 +107.548 7.20317 447.913 +103.59 7.21485 448.639 +99.454 7.21341 448.55 +95.4107 7.21766 448.814 +91.9684 7.26858 451.981 +91.7982 7.59374 472.2 +91.628 7.94942 494.317 +91.4779 8.34202 518.73 +91.1723 8.76052 544.754 +90.9823 9.23674 574.366 +91.0358 9.79462 609.056 +90.6852 10.3755 645.176 +90.5199 11.0558 687.478 +90.5977 11.8644 737.764 +96.4039 13.6053 846.017 +89.7586 13.7319 853.886 +89.3666 14.9235 927.987 +90.4764 16.6287 1034.02 +88.4391 18.0691 1123.58 +88.0675 20.2509 1259.26 +83.0443 21.8322 1357.58 +87.1655 26.7438 1663 +79.1212 29.1389 1811.94 +67.0035 30.8523 1918.48 +85.7531 52.657 3274.36 +57.1723 52.667 3274.98 +28.5873 52.6731 3275.36 +1.53988e-13 52.675 3275.48 +-28.5873 52.6731 3275.36 +-57.1723 52.667 3274.98 +-85.7531 52.657 3274.36 +-114.327 52.6428 3273.48 +-142.91 52.6313 3272.76 +-125.491 38.5026 2394.2 +-125.729 33.0541 2055.39 +-120.232 27.6472 1719.18 +-139.265 28.4532 1769.3 +-120.676 22.179 1379.15 +-136.273 22.7566 1415.07 +-155.005 23.7138 1474.59 +-118.716 16.7542 1041.83 +-127.987 16.7608 1042.24 +-148.865 18.1818 1130.59 +-135.555 15.5091 964.396 +-143.952 15.4879 963.078 +-111.819 11.3522 705.909 +-117.25 11.2662 700.566 +-123.776 11.2874 701.88 +-145.697 12.6403 786.01 +-625.224 51.7199 3216.08 +-653.269 51.6301 3210.5 +-681.181 51.5301 3204.29 +-709.208 51.439 3198.62 +-143.114 9.96762 619.814 +-146.744 9.82833 611.153 +-152.967 9.86509 613.439 +-143.167 8.90143 553.515 +-143.256 8.59677 534.571 +-146.554 8.49732 528.387 +-903.071 50.6406 3148.97 +-109.232 5.92953 368.714 +-111.569 5.86785 364.879 +-114.268 5.82742 362.365 +-117.241 5.802 360.784 +-120.798 5.80515 360.98 +-125.376 5.85487 364.072 +-1093.78 49.6657 3088.35 +-1120.7 49.5104 3078.69 +-1147.52 49.3512 3068.79 +-1174.26 49.1883 3058.66 +-1200.84 49.0187 3048.12 +-384.234 15.2918 950.889 +-383.372 14.8823 925.423 +-414.644 15.7071 976.714 +-158.702 5.86887 364.943 +-162.003 5.85078 363.818 +-164.758 5.81321 361.481 +-168.667 5.81609 361.66 +-409.588 13.8078 858.609 +-141.243 4.65649 289.554 +-141.712 4.57031 284.194 +-144.142 4.54882 282.858 +-147.483 4.55551 283.274 +-412.149 12.4639 775.04 +-414.317 12.2699 762.978 +-417.033 12.0974 752.251 +-418.166 11.8845 739.01 +-419.5 11.6833 726.501 +-422.069 11.5215 716.438 +-423.825 11.3419 705.272 +-428.344 11.2395 698.904 +-435.17 11.1981 696.327 +-430.484 10.8654 675.638 +-432.77 10.7155 666.322 +-435.202 10.5726 657.434 +-438.407 10.4511 649.881 +-440.437 10.3044 640.758 +-443.489 10.1843 633.286 +-445.631 10.0457 624.671 +-448.598 9.92819 617.362 +-450.34 9.78601 608.521 +-452.384 9.6531 600.256 +-455.171 9.53823 593.113 +-462.3 9.51454 591.641 +-460.91 9.31718 579.368 +-469.662 9.32588 579.909 +-465.991 9.08964 565.219 +-469.492 8.99681 559.447 +-472.214 8.89024 552.82 +-474.593 8.77874 545.886 +-477.749 8.68291 539.927 +-479.9 8.57013 532.914 +-483.182 8.47876 527.233 +-485.856 8.3777 520.949 +-488.663 8.28005 514.876 +-492.027 8.19266 509.442 +-494.772 8.09578 503.418 +-496.955 7.99081 496.891 +-499.989 7.90048 491.273 +-502.819 7.80768 485.503 +-383.215 5.84746 363.611 +-381.547 5.72109 355.753 +-380.509 5.60649 348.627 +-382.497 5.53783 344.357 +-383.091 5.44984 338.886 +-2472.81 34.5643 2149.3 +-141.816 1.94759 121.106 +-142.101 1.91728 119.222 +-142.828 1.89317 117.723 +-141.596 1.84371 114.647 +-141.73 1.81276 112.722 +-143.182 1.79875 111.852 +-146.929 1.81286 112.728 +-155.414 1.88312 117.098 +-156.27 1.85934 115.619 +-156.707 1.83072 113.839 +-158.427 1.81707 112.99 +-160.39 1.80583 112.291 +-382.559 4.22773 262.892 +-380.114 4.12264 256.357 +-380.335 4.04783 251.705 +-381.679 3.98556 247.833 +-380.201 3.89471 242.184 +-381.198 3.83013 238.168 +-380.022 3.74457 232.848 +-380.154 3.67287 228.389 +-379.892 3.59818 223.745 +-380.012 3.52785 219.372 +-379.04 3.44826 214.422 +-379.41 3.38169 210.283 +-379.737 3.31528 206.153 +-376.577 3.21961 200.204 +-379.197 3.17407 197.372 +-378.143 3.09811 192.649 +-378.199 3.03201 188.539 +-378.213 2.96615 184.443 +-379.357 2.9095 180.921 +-380.105 2.85004 177.223 +-380.273 2.78659 173.278 +-380.948 2.72724 169.587 +-380.672 2.6615 165.5 +-378.972 2.58662 160.843 +-379.53 2.5278 157.186 +-379.125 2.46302 153.157 +-379.61 2.40442 149.514 +-379.407 2.34184 145.622 +-380.57 2.28794 142.271 +-114.361 0.669294 41.6185 +-111.703 0.636044 39.551 +-109.869 0.608305 37.8261 +-109.531 0.589295 36.644 +-108.706 0.567939 35.316 +-108.724 0.551215 34.2761 +-108.636 0.534056 33.2091 +-108.73 0.517879 32.2031 +-108.334 0.4995 31.0603 +-110.239 0.491586 30.5681 +-110.792 0.477346 29.6827 +-109.401 0.454937 28.2892 +-109.449 0.438792 27.2853 +-110.364 0.426044 26.4926 +-111.078 0.41235 25.6411 +-111.395 0.397097 24.6926 +-113.172 0.3868 24.0523 +-114.651 0.375072 23.323 +-117.206 0.366334 22.7797 +-123.497 0.368042 22.8858 +-158.849 0.45038 28.0059 +-160.765 0.432585 26.8993 +-160.993 0.410009 25.4955 +-160.913 0.386691 24.0455 +-851.829 1.925 119.702 +-862.359 1.82554 113.517 +-379.351 0.748961 46.5725 +-380.935 0.697886 43.3965 +-898.352 1.51824 94.4084 +-404.031 0.625556 38.8988 +-403.857 0.568137 35.3283 +-403.452 0.510564 31.7483 +-403.315 0.453483 28.1989 +-403.346 0.396678 24.6665 +-145.201 0.12236 7.60867 +-403.016 0.282937 17.5938 +-146.211 0.082099 5.10514 +-145.45 0.061243 3.80826 +-146.378 0.0410837 2.5547 +-146.394 0.0205426 1.27739 +119.6 2.66454e-15 -1.13687e-13 +119.595 0.0261956 1.04336 +120.082 0.0526083 2.09537 +120.059 0.0789076 3.14286 +120.027 0.105201 4.19011 +120.186 0.131705 5.24576 +120.335 0.158287 6.30449 +120.175 0.184484 7.34792 +120.605 0.211674 8.4309 +120.527 0.238082 9.48271 +119.643 0.262722 10.4641 +120.244 0.290602 11.5746 +120.536 0.317975 12.6648 +120.023 0.343227 13.6706 +120.793 0.372256 14.8268 +120.659 0.398698 15.88 +120.912 0.426508 16.9876 +120.759 0.452975 18.0418 +120.202 0.477838 19.0321 +120.623 0.506632 20.1789 +120.245 0.53216 21.1957 +120.842 0.562136 22.3896 +120.642 0.588582 23.443 +120.433 0.614984 24.4946 +120.997 0.645515 25.7106 +120.573 0.670905 26.7219 +120.53 0.698416 27.8176 +121.06 0.729476 29.0547 +120.802 0.755965 30.1098 +120.438 0.781767 31.1375 +121.031 0.813962 32.4198 +120.55 0.839099 33.421 +121.311 0.87308 34.7744 +120.907 0.898905 35.803 +121.451 0.931957 37.1195 +121.122 0.958522 38.1776 +121.355 0.98967 39.4182 +121.291 1.0186 40.5705 +121.783 1.05248 41.92 +121.695 1.08163 43.0809 +121.126 1.10653 44.0725 +117.365 1.10137 43.8672 +113.803 1.09645 43.6713 +110.813 1.09558 43.6365 +108.11 1.0963 43.6653 +104.768 1.08921 43.3826 +102.268 1.08955 43.3965 +99.6844 1.08789 43.3303 +97.2012 1.08621 43.2632 +96.6379 1.10537 44.0265 +97.2468 1.13816 45.3326 +96.8474 1.15942 46.1792 +97.9686 1.19929 47.7674 +98.1743 1.22855 48.9325 +96.9415 1.23975 49.3786 +96.5068 1.26093 50.2224 +96.8594 1.29263 51.4848 +96.3184 1.31259 52.2801 +96.558 1.34338 53.5061 +96.8706 1.3756 54.7894 +97.1681 1.40806 56.0823 +96.6748 1.42928 56.9279 +96.8599 1.46075 58.181 +96.1778 1.47928 58.9192 +96.4231 1.51226 60.2328 +96.5683 1.54411 61.5014 +96.6987 1.57614 62.7771 +96.147 1.59726 63.6183 +96.2513 1.62949 64.9018 +96.4228 1.6633 66.2486 +96.578 1.69731 67.6034 +95.9842 1.7184 68.4433 +96.0303 1.75116 69.7481 +96.1413 1.78557 71.1184 +96.1557 1.81864 72.4357 +96.1544 1.85185 73.7587 +96.2161 1.88675 75.1486 +95.5565 1.90775 75.9851 +96.133 1.95388 77.8224 +96.1444 1.98923 79.2303 +96.2152 2.02635 80.7087 +96.0393 2.05876 81.9995 +95.9991 2.09453 83.4244 +95.9412 2.13045 84.8549 +95.8657 2.16649 86.2906 +96.2884 2.21454 88.2043 +96.2461 2.25266 89.7227 +96.1121 2.28921 91.1783 +95.888 2.32412 92.5688 +96.3601 2.3767 94.663 +96.2372 2.41546 96.2069 +95.3938 2.43645 97.0428 +95.7934 2.48975 99.1657 +96.1631 2.54341 101.303 +95.889 2.58088 102.796 +95.6636 2.62029 104.365 +95.8864 2.67287 106.459 +95.351 2.70505 107.741 +95.719 2.76371 110.077 +95.2091 2.79794 111.441 +95.7754 2.86483 114.105 +95.3481 2.90313 115.631 +95.5938 2.96289 118.011 +94.8712 2.99354 119.231 +95.0581 3.05377 121.631 +95.0277 3.10832 123.803 +94.9664 3.16311 125.985 +95.3501 3.23421 128.817 +95.2212 3.28951 131.02 +95.1191 3.34701 133.31 +95.1563 3.41088 135.854 +94.873 3.4647 137.998 +94.6714 3.5228 140.312 +94.7676 3.59363 143.133 +94.7127 3.66057 145.799 +94.5647 3.72563 148.39 +94.3256 3.78878 150.905 +94.52 3.87135 154.194 +94.6125 3.95214 157.412 +94.6052 4.03111 160.557 +94.2 4.09513 163.108 +94.6931 4.2008 167.316 +94.6348 4.28506 170.672 +94.4774 4.36738 173.951 +94.6455 4.46768 177.946 +94.3352 4.54835 181.159 +94.43 4.65158 185.271 +94.3708 4.75072 189.219 +94.2498 4.85016 193.18 +94.0667 4.94991 197.153 +94.2016 5.07041 201.952 +94.2598 5.19133 206.769 +94.2409 5.31266 211.601 +94.2244 5.43899 216.633 +94.1271 5.56571 221.68 +94.2167 5.709 227.387 +94.251 5.85508 233.206 +94.0442 5.99227 238.67 +93.8566 6.13684 244.428 +93.7855 6.29587 250.762 +93.6451 6.45768 257.207 +93.4993 6.627 263.951 +93.6985 6.82995 272.034 +93.6366 7.02397 279.762 +93.0141 7.18505 286.178 +93.3992 7.43494 296.131 +93.0912 7.64233 304.391 +92.8446 7.86699 313.339 +92.9725 8.13796 324.132 +92.9188 8.40953 334.948 +93.0972 8.72051 347.335 +92.8159 9.00784 358.779 +94.0108 9.46377 376.938 +107.712 11.2607 448.51 +103.635 11.2668 448.751 +99.5189 11.267 448.76 +95.3275 11.2564 448.34 +92.108 11.363 452.582 +91.7791 11.8508 472.014 +91.6462 12.4109 494.323 +91.3216 12.999 517.747 +91.1558 13.6721 544.554 +91.0292 14.4253 574.555 +91.021 15.2862 608.844 +90.6434 16.1879 644.759 +90.5982 17.2722 687.945 +90.2686 18.4523 734.947 +96.4831 21.2544 846.554 +89.6541 21.4095 852.732 +89.2036 23.2521 926.123 +90.4589 25.9512 1033.62 +88.29 28.1569 1121.48 +88.0466 31.603 1258.73 +82.5315 33.8681 1348.95 +87.2022 41.7628 1663.4 +79.1779 45.5164 1812.9 +67.0489 48.1909 1919.43 +77.9026 74.6691 2974.04 +57.1793 82.2194 3274.77 +25.9396 74.6041 2971.45 +1.53766e-13 82.232 3275.27 +-27.7635 79.8496 3180.38 +-57.1793 82.2194 3274.77 +-85.7531 82.1938 3273.75 +-114.355 82.1918 3273.67 +-119.482 68.6858 2735.73 +-125.475 60.0924 2393.46 +-125.784 51.6177 2055.91 +-120.246 43.1603 1719.06 +-139.077 44.3535 1766.58 +-120.754 34.6424 1379.8 +-135.938 35.4341 1411.33 +-155.037 37.0228 1474.61 +-118.716 26.1522 1041.63 +-128.109 26.1873 1043.03 +-149.113 28.4279 1132.27 +-381.432 68.1195 2713.17 +-143.892 24.1655 962.504 +-111.913 17.7348 706.369 +-117.398 17.6081 701.324 +-123.829 17.6262 702.045 +-145.971 19.7677 787.339 +-625.224 80.7311 3215.49 +-653.269 80.591 3209.91 +-681.264 80.4449 3204.09 +-709.208 80.2926 3198.02 +-143.091 15.5563 619.602 +-146.604 15.3267 610.456 +-152.629 15.3646 611.967 +-142.817 13.8605 552.057 +-143.36 13.4286 534.857 +-146.66 13.2734 528.673 +-903.071 79.0464 3148.39 +-109.403 9.27 369.221 +-111.569 9.15929 364.811 +-114.238 9.09381 362.203 +-117.334 9.06366 361.002 +-121.083 9.08284 361.766 +-125.116 9.12006 363.249 +-1093.78 77.5247 3087.78 +-1120.56 77.2727 3077.74 +-1147.52 77.0337 3068.22 +-1174.26 76.7795 3058.1 +-446.289 28.4365 1132.61 +-540.745 33.5923 1337.97 +-1253.86 75.977 3026.14 +-414.722 24.5224 976.716 +-158.583 9.154 364.6 +-162.247 9.14642 364.298 +-164.343 9.05117 360.504 +-168.202 9.05347 360.596 +-409.373 21.5417 857.998 +-141.199 7.26622 289.411 +-141.712 7.13392 284.141 +-144.278 7.10709 283.073 +-147.76 7.12419 283.754 +-412.102 19.453 774.807 +-414.89 19.179 763.89 +-418.003 18.9271 753.859 +-418.954 18.5858 740.266 +-421.65 18.3303 730.089 +-422.576 18.0058 717.166 +-424.288 17.7233 705.912 +-428.501 17.5505 699.03 +-434.905 17.4688 695.774 +-430.861 16.9749 676.103 +-433.424 16.7514 667.204 +-435.699 16.5219 658.062 +-438.407 16.3135 649.76 +-440.891 16.101 641.298 +-443.833 15.9093 633.66 +-445.631 15.6807 624.555 +-448.421 15.4911 617.005 +-450.34 15.2753 608.408 +-452.745 15.0798 600.624 +-454.806 14.8766 592.527 +-463.408 14.8871 592.949 +-461.159 14.5513 579.573 +-470.417 14.5805 580.734 +-466.373 14.1999 565.577 +-469.492 14.0434 559.343 +-472.214 13.877 552.717 +-474.987 13.7144 546.238 +-477.484 13.5459 539.527 +-480.503 13.3942 533.484 +-483.182 13.2347 527.135 +-485.856 13.077 520.852 +-489.076 12.9355 515.216 +-492.304 12.7954 509.635 +-494.491 12.6298 503.039 +-497.591 12.4891 497.434 +-500.274 12.3391 491.463 +-502.819 12.1872 485.413 +-382.853 9.11883 363.2 +-381.255 8.92336 355.414 +-382.721 8.80221 350.589 +-383.017 8.65591 344.761 +-383.69 8.52012 339.353 +-383.392 8.36496 333.173 +-141.664 3.03678 120.954 +-142.254 2.99597 119.328 +-142.751 2.9535 117.637 +-141.596 2.87791 114.626 +-141.496 2.82492 112.516 +-143.103 2.80617 111.769 +-146.77 2.82668 112.586 +-155.654 2.94397 117.257 +-155.546 2.88885 115.062 +-156.707 2.85763 113.818 +-158.02 2.82901 112.678 +-160.144 2.81446 112.099 +-381.323 6.57786 261.993 +-379.368 6.42252 255.806 +-381.336 6.33502 252.321 +-381.344 6.2157 247.569 +-381.213 6.09553 242.782 +-381.367 5.98123 238.23 +-381.13 5.86206 233.483 +-381.268 5.74991 229.017 +-378.772 5.59995 223.044 +-379.666 5.50171 219.131 +-380.345 5.40104 215.121 +-380.285 5.29075 210.729 +-379.473 5.17133 205.972 +-380.462 5.07741 202.231 +-379.375 4.95681 197.428 +-377.341 4.82567 192.204 +-378.468 4.73611 188.638 +-377.673 4.62334 184.146 +-379.808 4.54692 181.102 +-379.834 4.44552 177.063 +-381.092 4.35905 173.619 +-2993.05 33.4467 1332.17 +-380.213 4.1494 165.269 +-379.524 4.0434 161.047 +-379.53 3.94572 157.156 +-378.291 3.83611 152.791 +-380.076 3.75773 149.669 +-379.127 3.65274 145.487 +-380.57 3.57132 142.244 +-113.797 1.03957 41.4056 +-111.703 0.99282 39.5436 +-109.869 0.949522 37.8191 +-109.342 0.918253 36.5737 +-108.706 0.886513 35.3095 +-108.819 0.861161 34.2997 +-108.732 0.83436 33.2322 +-109.018 0.810511 32.2823 +-108.526 0.78107 31.1097 +-109.854 0.764647 30.4556 +-111.178 0.747703 29.7807 +-109.401 0.710125 28.284 +-109.643 0.686137 27.3286 +-110.558 0.666196 26.5343 +-111.078 0.64365 25.6363 +-111.395 0.619841 24.688 +-113.172 0.603767 24.0478 +-114.847 0.586462 23.3585 +-117.206 0.571821 22.7754 +-123.792 0.57586 22.9363 +-158.357 0.70083 27.9138 +-159.482 0.669848 26.6798 +-159.314 0.633322 25.225 +-161.506 0.605823 24.1297 +-852.324 3.00651 119.748 +-862.854 2.85118 113.561 +-380.542 1.17275 46.71 +-380.041 1.08679 43.2866 +-897.457 2.3675 94.2968 +-404.33 0.977168 38.9202 +-402.961 0.884854 35.2434 +-402.854 0.795773 31.6953 +-402.417 0.706282 28.1309 +-403.047 0.618726 24.6436 +-143.303 0.188499 7.50784 +-403.915 0.442629 17.6297 +-151.508 0.132793 5.28909 +-147.749 0.0971069 3.86773 +-146.678 0.0642603 2.55946 +-145.794 0.0319343 1.27193 +119.7 3.55271e-15 -1.13687e-13 +119.595 0.035607 1.04308 +120.082 0.0715092 2.09481 +120.059 0.107257 3.14202 +120.227 0.143235 4.19597 +120.285 0.179172 5.24871 +120.235 0.214976 6.29758 +120.076 0.250556 7.33986 +120.506 0.287485 8.42167 +119.73 0.321478 9.41745 +119.842 0.357705 10.4787 +120.343 0.395335 11.5811 +120.536 0.432215 12.6614 +120.918 0.470016 13.7688 +119.9 0.502256 14.7132 +120.659 0.54194 15.8758 +120.12 0.575944 16.8719 +120.66 0.615212 18.0222 +120.202 0.649513 19.027 +119.735 0.683585 20.0251 +120.344 0.723945 21.2074 +120.055 0.759126 22.238 +119.759 0.794187 23.2651 +120.433 0.835932 24.488 +120.214 0.871755 25.5374 +120.67 0.912681 26.7363 +120.432 0.948575 27.7878 +121.06 0.991558 29.047 +120.802 1.02756 30.1018 +120.438 1.06264 31.1292 +121.031 1.1064 32.4111 +121.514 1.14968 33.6792 +121.311 1.18676 34.7652 +121.77 1.23058 36.0489 +120.59 1.25781 36.8466 +120.931 1.30084 38.1073 +121.355 1.34523 39.4076 +121.385 1.38564 40.5914 +121.783 1.43061 41.9088 +121.789 1.47137 43.1027 +121.314 1.50641 44.1291 +117.365 1.49707 43.8555 +114.457 1.49894 43.9103 +110.813 1.48919 43.6249 +108.202 1.49146 43.6912 +104.768 1.48053 43.371 +102.084 1.47834 43.3069 +99.6844 1.47874 43.3188 +97.1099 1.47506 43.2109 +96.9109 1.50675 44.1391 +97.2468 1.54708 45.3205 +96.8474 1.57597 46.1669 +97.3394 1.6197 47.448 +97.6373 1.6608 48.6519 +97.0306 1.68671 49.4108 +96.5955 1.71553 50.2551 +96.8594 1.75703 51.471 +96.3184 1.78418 52.2662 +96.6455 1.82767 53.5403 +96.8706 1.86981 54.7748 +97.1681 1.91393 56.0673 +96.6748 1.94279 56.9126 +96.8599 1.98556 58.1654 +96.1778 2.01075 58.9035 +97.1015 2.07004 60.6405 +96.484 2.09704 61.4313 +96.6987 2.14241 62.7603 +96.147 2.17112 63.6013 +96.3342 2.21683 64.9404 +95.7635 2.24542 65.7781 +96.4961 2.30516 67.528 +95.9028 2.3338 68.367 +96.0303 2.38031 69.7295 +96.1413 2.42707 71.0994 +96.1557 2.47203 72.4163 +96.1544 2.51718 73.7389 +96.1373 2.56251 75.067 +96.1825 2.61015 76.4625 +96.2107 2.65801 77.8645 +96.1444 2.70391 79.2092 +96.1386 2.75217 80.6228 +96.0393 2.79841 81.9776 +96.6783 2.86719 83.9923 +95.8663 2.8936 84.766 +95.7914 2.94258 86.2007 +96.3621 3.01247 88.2482 +95.5879 3.04105 89.0853 +96.1121 3.11166 91.1539 +95.9599 3.16149 92.6135 +95.7182 3.20906 94.0072 +96.2372 3.28327 96.1812 +96.0947 3.33613 97.7297 +95.7934 3.38425 99.1393 +95.9566 3.44976 101.058 +95.8208 3.50564 102.695 +95.596 3.5592 104.264 +95.2842 3.61034 105.762 +95.9474 3.6999 108.386 +95.719 3.75663 110.048 +95.7936 3.8265 112.095 +95.2611 3.87318 113.462 +95.4117 3.94878 115.677 +95.5308 4.02476 117.902 +95.4315 4.09309 119.904 +94.9966 4.14822 121.519 +94.845 4.21693 123.532 +94.9062 4.2968 125.872 +95.2311 4.39069 128.622 +94.751 4.44927 130.338 +95.1191 4.5495 133.274 +95.099 4.63353 135.736 +94.9297 4.71231 138.044 +94.7832 4.79412 140.44 +94.4916 4.8705 142.678 +94.8217 4.98145 145.928 +94.4573 5.05838 148.182 +94.8026 5.17602 151.628 +94.4155 5.25639 153.982 +94.6125 5.37205 157.37 +94.7574 5.48818 160.772 +94.3 5.57231 163.237 +94.5453 5.70114 167.011 +94.247 5.80069 169.927 +94.4774 5.93647 173.905 +94.2229 6.04571 177.105 +94.3352 6.18245 181.111 +94.0668 6.29848 184.51 +94.3262 6.45446 189.079 +94.2498 6.5927 193.129 +94.0236 6.72521 197.01 +94.4974 6.91371 202.532 +94.2598 7.05645 206.714 +94.2816 7.22451 211.637 +94.1845 7.38997 216.484 +94.1662 7.56847 221.713 +94.2167 7.7601 227.327 +93.9139 7.93021 232.31 +94.1175 8.15149 238.792 +93.9999 8.35438 244.735 +93.8556 8.56419 250.882 +93.7135 8.78418 257.326 +93.4993 9.00791 263.88 +93.5683 9.27088 271.584 +93.3828 9.52164 278.93 +93.0141 9.76646 286.101 +93.0985 10.0736 295.099 +93.0034 10.3783 304.024 +92.9582 10.7065 313.639 +93 11.065 324.141 +92.999 11.4407 335.148 +92.7349 11.8074 345.89 +92.7908 12.2409 358.587 +93.6238 12.8109 375.285 +107.735 15.3097 448.488 +103.545 15.3013 448.242 +99.4973 15.3116 448.542 +95.3275 15.3006 448.22 +91.9684 15.422 451.776 +91.7028 16.0951 471.495 +91.6462 16.8699 494.191 +91.1827 17.6424 516.822 +91.0238 18.5572 543.62 +90.9666 19.5945 574.007 +91.0063 20.7748 608.583 +90.5182 21.9734 643.695 +90.4285 23.4337 686.473 +90.5855 25.1698 737.331 +96.5623 28.9143 847.024 +89.6645 29.1048 852.604 +89.0982 31.5687 924.781 +90.886 35.4412 1038.23 +88.2194 38.2422 1120.28 +88.0815 42.9738 1258.89 +82.1774 45.8386 1342.81 +87.2493 56.7978 1663.85 +79.2303 61.9102 1813.61 +67.0803 65.5354 1919.81 +85.774 111.751 3273.67 +57.1863 111.772 3274.29 +22.7571 88.9656 2606.18 +1.50657e-13 111.789 3274.79 +-28.5942 111.785 3274.67 +-57.1863 111.772 3274.29 +-85.774 111.751 3273.67 +-114.355 111.721 3272.79 +-142.91 111.669 3271.27 +-125.538 81.723 2394.02 +-125.888 70.2203 2057.05 +-120.33 58.7076 1719.8 +-139.406 60.4312 1770.29 +-120.859 47.1292 1380.62 +-136.341 48.3072 1415.13 +-155.078 50.3378 1474.61 +-118.818 35.5784 1042.24 +-128.146 35.606 1043.05 +-149.165 38.6547 1132.36 +-455.973 110.688 3242.53 +-144.04 32.8813 963.235 +-111.991 24.1233 706.674 +-117.497 23.9544 701.728 +-123.829 23.9588 701.857 +-145.916 26.8596 786.834 +-625.224 109.736 3214.63 +-653.269 109.545 3209.05 +-681.181 109.333 3202.83 +-709.208 109.14 3197.17 +-143.316 21.1785 620.41 +-146.814 20.863 611.167 +-153.645 21.0238 615.876 +-143.292 18.903 553.748 +-143.36 18.2532 534.715 +-146.821 18.0619 529.111 +-903.071 107.446 3147.55 +-109.204 12.5776 368.451 +-111.54 12.4467 364.618 +-114.569 12.3968 363.154 +-117.488 12.3362 361.382 +-121.02 12.3396 361.48 +-125.311 12.416 363.718 +-1093.78 105.377 3086.95 +-1120.7 105.048 3077.3 +-1147.52 104.71 3067.4 +-1174.26 104.364 3057.28 +-1200.84 104.004 3046.74 +-1227.4 103.643 3036.15 +-383.334 31.5731 924.911 +-415.113 33.364 977.375 +-158.822 12.4616 365.052 +-162.003 12.4138 363.653 +-164.758 12.3341 361.318 +-167.822 12.2784 359.685 +-1410.57 100.893 2955.6 +-141.156 9.87372 289.244 +-141.712 9.69696 284.066 +-143.915 9.63617 282.285 +-147.898 9.69283 283.945 +-412.055 26.439 774.512 +-415.367 26.0995 764.565 +-418.245 25.742 754.095 +-419.446 25.2929 740.937 +-421.65 24.9159 729.894 +-423.338 24.519 718.267 +-424.958 24.1288 706.837 +-429.807 23.9287 700.974 +-436.071 23.8085 697.453 +-430.592 23.0591 675.501 +-433.26 22.7612 666.774 +-436.03 22.4749 658.387 +-438.911 22.2 650.333 +-441.004 21.8914 641.291 +-443.833 21.6251 633.491 +-445.631 21.3143 624.388 +-448.598 21.065 617.083 +-451.173 20.8017 609.37 +-452.926 20.5058 600.703 +-454.988 20.2294 592.607 +-463.778 20.2519 593.263 +-462.279 19.8273 580.827 +-469.347 19.7737 579.258 +-466.373 19.3016 565.426 +-469.492 19.0888 559.193 +-472.214 18.8627 552.569 +-474.987 18.6416 546.092 +-477.484 18.4126 539.383 +-480.503 18.2063 533.341 +-483.858 18.0148 527.731 +-486.197 17.7877 521.078 +-489.076 17.5829 515.078 +-492.513 17.3998 509.715 +-494.772 17.1771 503.19 +-497.874 16.9857 497.584 +-500.274 16.7723 491.332 +-502.819 16.5658 485.283 +-380.096 12.3057 360.488 +-2396.28 76.2357 2233.27 +-380.656 11.9001 348.604 +-380.267 11.6813 342.195 +-380.17 11.4749 336.15 +-2472.81 73.3361 2148.33 +-141.74 4.13004 120.987 +-141.412 4.04823 118.59 +-142.828 4.01681 117.669 +-141.596 3.91186 114.595 +-142.435 3.86533 113.232 +-143.024 3.81228 111.678 +-146.532 3.83599 112.373 +-155.175 3.98934 116.865 +-155.546 3.92674 115.031 +-157.03 3.89232 114.023 +-158.427 3.85533 112.939 +-160.881 3.84322 112.584 +-380.581 8.92371 261.414 +-382.85 8.81007 258.085 +-382.587 8.63928 253.082 +-380.589 8.43213 247.013 +-381.972 8.30201 243.201 +-380.774 8.11747 237.795 +-381.556 7.97705 233.682 +-378.525 7.75949 227.309 +-379.634 7.62916 223.491 +-379.666 7.47833 219.072 +-380.345 7.34149 215.064 +-379.235 7.17173 210.091 +-379.737 7.03414 206.06 +-379.667 6.8872 201.755 +-380.173 6.75182 197.79 +-378.767 6.58417 192.879 +-379.631 6.45747 189.167 +-380.01 6.32325 185.235 +-378.273 6.15553 180.322 +-379.471 6.03691 176.847 +-377.361 5.86711 171.873 +-380.035 5.77258 169.104 +-380.672 5.64699 165.425 +-378.972 5.48811 160.77 +-380.361 5.37509 157.459 +-379.125 5.22586 153.088 +-379.61 5.10154 149.446 +-378.567 4.95774 145.233 +-380.102 4.84843 142.031 +-113.797 1.41306 41.3945 +-111.703 1.34952 39.5331 +-109.869 1.29066 37.809 +-109.437 1.24924 36.5957 +-108.706 1.20501 35.3 +-108.056 1.16235 34.0502 +-108.541 1.13213 33.1649 +-108.251 1.09396 32.0466 +-108.526 1.06169 31.1014 +-110.336 1.04392 30.581 +-111.081 1.01545 29.7469 +-109.304 0.964401 28.2514 +-109.74 0.933475 27.3455 +-110.461 0.904749 26.504 +-111.078 0.874897 25.6295 +-111.395 0.842534 24.6814 +-113.172 0.820686 24.0414 +-114.161 0.792403 23.2129 +-116.617 0.773356 22.6549 +-124.382 0.78648 23.0394 +-158.554 0.953808 27.9411 +-160.173 0.914448 26.7881 +-160.203 0.865661 25.3589 +-161.803 0.824991 24.1675 +-3244.61 15.5572 455.736 +-862.854 3.87553 113.531 +-380.542 1.59408 46.6975 +-380.637 1.47957 43.343 +-898.153 3.22059 94.3447 +-404.429 1.32857 38.9194 +-405.252 1.2096 35.4344 +-402.555 1.08087 31.6634 +-404.013 0.963838 28.235 +-403.945 0.842892 24.6919 +-145.201 0.259615 7.60522 +-403.416 0.600911 17.6032 +-144.012 0.171572 5.02609 +-148.649 0.132799 3.89024 +-144.478 0.0860373 2.5204 +-146.694 0.0436752 1.27943 +119.7 3.55271e-15 -1.13687e-13 +119.595 0.0450156 1.04272 +120.282 0.0905547 2.09757 +120.259 0.135824 3.14616 +120.227 0.181082 4.1945 +120.285 0.226515 5.24688 +120.235 0.27178 6.29539 +120.974 0.319131 7.39219 +120.605 0.363749 8.42571 +120.527 0.409129 9.47687 +120.739 0.455607 10.5535 +120.244 0.499381 11.5674 +119.74 0.542814 12.5735 +120.918 0.594209 13.764 +119.999 0.635494 14.7203 +120.659 0.685138 15.8702 +120.219 0.728727 16.8799 +120.66 0.777771 18.0159 +121.091 0.827208 19.1611 +120.623 0.870615 20.1665 +120.344 0.915234 21.2001 +119.957 0.958922 22.212 +120.642 1.01144 23.4286 +120.433 1.05681 24.4795 +120.214 1.1021 25.5285 +120.67 1.15384 26.727 +120.53 1.20018 27.8005 +120.963 1.25255 29.0136 +120.802 1.29908 30.0913 +120.534 1.3445 31.1433 +121.224 1.40098 32.4516 +121.321 1.45116 33.614 +121.311 1.50033 34.753 +121.003 1.54594 35.8093 +120.59 1.59016 36.8338 +121.122 1.64716 38.1541 +121.355 1.70069 39.3939 +121.291 1.7504 40.5455 +121.783 1.80863 41.8942 +121.695 1.85872 43.0544 +121.314 1.90445 44.1137 +117.365 1.89264 43.8402 +114.457 1.89501 43.895 +110.813 1.88269 43.6097 +108.202 1.88555 43.6759 +104.676 1.87008 43.3177 +102.176 1.87065 43.3308 +99.6844 1.86948 43.3037 +97.9321 1.88061 43.5616 +96.5469 1.89773 43.9581 +97.2468 1.95586 45.3047 +96.8474 1.99239 46.1508 +97.3394 2.04768 47.4314 +98.0848 2.10926 48.8578 +97.0306 2.13239 49.3936 +96.5955 2.16882 50.2376 +96.7711 2.21927 51.4062 +97.1093 2.27413 52.6769 +96.6455 2.3106 53.5216 +96.8706 2.36388 54.7557 +96.3886 2.40025 55.5982 +96.5886 2.45395 56.8422 +96.8599 2.5102 58.1451 +96.3483 2.54656 58.9874 +96.4231 2.59873 60.1957 +96.0623 2.63956 61.1414 +95.9439 2.68736 62.2487 +96.147 2.74479 63.5791 +96.3342 2.80258 64.9177 +96.3404 2.85584 66.1513 +96.4961 2.91426 67.5044 +95.9028 2.95046 68.3431 +95.9494 3.00673 69.6464 +96.1413 3.06838 71.0746 +96.1557 3.12522 72.3911 +96.1544 3.1823 73.7132 +96.2161 3.24227 75.1023 +96.1825 3.29984 76.4358 +96.2107 3.36034 77.8374 +96.0673 3.41563 79.118 +96.1386 3.47938 80.5947 +96.0393 3.53785 81.949 +95.9991 3.59932 83.373 +96.6153 3.68676 85.3985 +95.8657 3.72299 86.2375 +96.2884 3.80555 88.15 +96.173 3.86812 89.5993 +96.1121 3.93386 91.1221 +95.888 3.99386 92.5118 +95.7895 4.06003 94.0445 +95.5301 4.12032 95.4412 +95.9545 4.2115 97.5531 +95.7934 4.27848 99.1047 +95.4748 4.33938 100.515 +95.6844 4.42564 102.514 +95.596 4.49966 104.228 +95.8864 4.59317 106.394 +95.9474 4.67753 108.348 +95.719 4.74926 110.01 +95.7286 4.83431 111.98 +95.7111 4.91971 113.958 +95.3481 4.98885 115.559 +95.2791 5.07481 117.551 +95.3692 5.17125 119.784 +95.0581 5.24772 121.556 +94.9059 5.33463 123.569 +94.9664 5.4356 125.908 +94.8742 5.53006 128.096 +94.8098 5.62836 130.373 +95.0611 5.74813 133.147 +95.2137 5.86493 135.852 +94.873 5.95387 137.913 +94.7273 6.0573 140.308 +94.3812 6.15024 142.461 +94.7127 6.29046 145.709 +94.5647 6.40226 148.299 +94.3786 6.5144 150.896 +94.4155 6.6453 153.929 +94.561 6.78781 157.23 +94.6052 6.92721 160.459 +94.35 7.04845 163.267 +94.6931 7.21882 167.213 +94.6348 7.36361 170.567 +94.4774 7.50508 173.844 +94.176 7.63935 176.954 +94.3352 7.81606 181.047 +94.4754 7.99729 185.245 +94.3708 8.16382 189.103 +94.2498 8.33471 193.061 +94.0236 8.50223 196.942 +94.1171 8.70538 201.647 +94.2598 8.92099 206.642 +94.2816 9.13345 211.563 +94.1845 9.34264 216.408 +94.1662 9.5683 221.636 +94.2167 9.81057 227.247 +93.9139 10.0256 232.229 +94.1542 10.3094 238.802 +93.9999 10.5619 244.65 +93.7855 10.8191 250.608 +93.4057 11.0687 256.391 +93.5327 11.3921 263.882 +93.3404 11.692 270.828 +93.5414 12.058 279.306 +93.1995 12.3717 286.572 +93.1286 12.7395 295.091 +93.0034 13.1205 303.918 +92.873 13.5231 313.242 +92.8622 13.968 323.548 +92.9722 14.4596 334.935 +92.9937 14.969 346.734 +92.7658 15.4711 358.365 +93.3335 16.1457 373.992 +107.875 19.3802 448.914 +103.792 19.3906 449.156 +99.4324 19.3448 448.093 +95.5562 19.3899 449.139 +91.8488 19.4716 451.031 +91.5311 20.3099 470.449 +91.3364 21.2553 492.348 +91.1827 22.3041 516.642 +91.0403 23.4649 543.529 +90.9354 24.7634 573.609 +90.8289 26.213 607.184 +88.8481 27.267 631.599 +88.6142 29.0312 672.466 +90.3661 31.7434 735.288 +96.4831 36.5244 846.033 +89.675 36.7995 852.406 +89.0982 39.9101 924.459 +90.8947 44.8102 1037.96 +88.4077 48.4505 1122.28 +88.1024 54.3418 1258.75 +82.7574 58.3595 1351.81 +87.3958 71.9259 1666.06 +79.2303 78.2688 1812.98 +67.0978 82.8735 1919.64 +85.774 141.28 3272.53 +57.1863 141.306 3273.15 +28.5942 141.323 3273.53 +1.55098e-13 141.328 3273.65 +-28.5942 141.323 3273.53 +-57.1863 141.306 3273.15 +-85.774 141.28 3272.53 +-114.355 141.242 3271.65 +-142.928 141.193 3270.53 +-125.465 103.256 2391.78 +-125.754 88.6802 2054.15 +-120.386 74.2546 1720 +-138.935 76.1411 1763.7 +-120.815 59.5611 1379.64 +-136.024 60.9301 1411.36 +-155.016 63.6133 1473.51 +-118.784 44.9664 1041.58 +-128.255 45.0531 1043.59 +-149.335 48.9241 1133.25 +-456.028 139.952 3241.79 +-144.144 41.5995 963.59 +-111.851 30.4591 705.54 +-117.547 30.2967 701.779 +-123.985 30.3278 702.499 +-145.843 33.9399 786.167 +-625.224 138.731 3213.51 +-653.269 138.491 3207.93 +-681.264 138.24 3202.12 +-709.208 137.978 3196.05 +-143.271 26.7662 619.999 +-146.72 26.3589 610.565 +-153.016 26.4701 613.141 +-143.142 23.8727 552.975 +-143.489 23.0971 535.011 +-146.928 22.8511 529.311 +-903.071 135.836 3146.45 +-109.431 15.9341 369.089 +-111.569 15.7397 364.586 +-114.208 15.6231 361.885 +-117.519 15.6 361.35 +-121.083 15.6083 361.543 +-125.246 15.6886 363.403 +-1093.78 133.221 3085.88 +-1120.56 132.788 3075.85 +-1147.52 132.378 3066.33 +-1174.26 131.941 3056.21 +-383.434 41.984 972.497 +-384.721 41.0703 951.332 +-1253.86 130.562 3024.27 +-415.621 42.2315 978.23 +-159.141 15.786 365.658 +-161.881 15.6821 363.253 +-164.799 15.597 361.282 +-167.779 15.5188 359.469 +-1410.57 127.553 2954.57 +-141.462 12.5098 289.771 +-141.757 12.2631 284.056 +-144.278 12.2131 282.898 +-148.267 12.2846 284.554 +-412.572 33.4669 775.212 +-415.796 33.0299 765.088 +-418.1 32.5326 753.57 +-420.185 32.0324 741.984 +-421.65 31.4995 729.639 +-423.541 31.0126 718.361 +-424.958 30.5045 706.591 +-429.389 30.222 700.048 +-436.865 30.1543 698.48 +-430.861 29.1703 675.687 +-433.805 28.8117 667.379 +-436.196 28.4243 658.407 +-438.743 28.0552 649.858 +-440.891 27.6686 640.903 +-444.006 27.3497 633.516 +-445.631 26.9463 624.171 +-448.421 26.6205 616.625 +-450.816 26.2774 608.676 +-453.107 25.9345 600.733 +-455.354 25.5952 592.876 +-465.379 25.6914 595.103 +-462.466 25.0765 580.859 +-468.529 24.955 578.047 +-466.373 24.4017 565.229 +-470.071 24.1624 559.687 +-472.603 23.8665 552.832 +-475.84 23.6096 546.882 +-478.345 23.3198 540.168 +-480.703 23.0266 533.378 +-483.858 22.7749 527.547 +-486.469 22.5004 521.19 +-489.282 22.2383 515.116 +-492.027 21.9757 509.034 +-495.122 21.7312 503.371 +-497.874 21.4739 497.411 +-500.63 21.2191 491.51 +-502.819 20.943 485.114 +-380.169 15.5603 360.431 +-381.693 15.3519 355.604 +-381.541 15.0794 349.293 +-382.051 14.8371 343.68 +-382.641 14.6013 338.218 +-2472.81 92.7139 2147.58 +-141.74 5.22133 120.944 +-142.101 5.14283 119.126 +-142.828 5.07818 117.628 +-141.518 4.94279 114.492 +-142.2 4.87861 113.006 +-143.024 4.8196 111.639 +-146.85 4.8601 112.577 +-155.175 5.04346 116.824 +-156.27 4.98743 115.526 +-157.03 4.92079 113.983 +-158.183 4.86653 112.726 +-160.636 4.85131 112.373 +-381.818 11.3183 262.172 +-379.036 11.027 255.425 +-380.669 10.8673 251.725 +-380.84 10.6672 247.091 +-381.972 10.4957 243.117 +-381.961 10.2944 238.454 +-380.022 10.0443 232.661 +-378.354 9.80535 227.126 +-382.477 9.71728 225.086 +-379.319 9.44572 218.796 +-379.127 9.25163 214.3 +-380.285 9.09183 210.599 +-380.264 8.90516 206.275 +-379.667 8.70702 201.685 +-379.907 8.52992 197.583 +-378.143 8.31025 192.495 +-378.199 8.13294 188.388 +-379.381 7.98082 184.864 +-381.252 7.84331 181.679 +-378.655 7.61567 176.406 +-379.09 7.45138 172.6 +-380.4 7.30491 169.207 +-380.121 7.12876 165.127 +-380.997 6.97534 161.574 +-379.992 6.78876 157.252 +-379.682 6.61636 153.258 +-379.61 6.44953 149.394 +-379.967 6.29094 145.72 +-379.633 6.12199 141.807 +-113.985 1.78938 41.4484 +-111.703 1.7061 39.5193 +-109.869 1.63169 37.7958 +-109.531 1.5807 36.6146 +-108.611 1.52209 35.2569 +-108.819 1.47985 34.2786 +-108.923 1.43631 33.2701 +-108.538 1.38669 32.1206 +-108.526 1.34222 31.0905 +-110.239 1.31861 30.5437 +-110.309 1.27483 29.5296 +-109.401 1.22031 28.2666 +-109.837 1.18117 27.3601 +-110.072 1.13978 26.4014 +-111.176 1.10704 25.643 +-111.493 1.06609 24.6944 +-113.172 1.03754 24.033 +-113.965 1.00006 23.1649 +-117.206 0.98264 22.7614 +-124.578 0.995864 23.0677 +-156.191 1.18786 27.515 +-159.088 1.14825 26.5974 +-159.907 1.09237 25.3031 +-163.287 1.05254 24.3806 +-852.72 5.16892 119.73 +-863.449 4.90293 113.569 +-377.862 2.0011 46.3525 +-380.041 1.86759 43.2599 +-897.755 4.06976 94.27 +-402.837 1.67301 38.7527 +-403.459 1.52245 35.2653 +-402.854 1.36749 31.6758 +-403.415 1.21671 28.1832 +-403.246 1.06377 24.6406 +-144.502 0.326633 7.56596 +-401.817 0.75668 17.5274 +-147.01 0.221423 5.12894 +-147.949 0.167098 3.87058 +-145.378 0.109449 2.53522 +-146.894 0.0552911 1.28074 +119.7 3.55271e-15 -1.13687e-13 +119.495 0.054375 1.0414 +120.082 0.109292 2.09318 +120.259 0.164201 3.14481 +120.227 0.218915 4.1927 +120.285 0.273839 5.24463 +120.235 0.328562 6.29268 +120.076 0.38294 7.33415 +120.605 0.439745 8.42209 +120.627 0.495016 9.48064 +120.54 0.549882 10.5315 +120.343 0.604215 11.572 +120.536 0.660581 12.6516 +119.825 0.711863 13.6337 +120.594 0.772076 14.787 +120.659 0.828281 15.8634 +120.12 0.880251 16.8587 +120.759 0.941038 18.0229 +121.091 1.00003 19.1528 +120.623 1.05251 20.1578 +120.344 1.10645 21.1909 +120.842 1.16782 22.3662 +120.642 1.22276 23.4185 +120.433 1.27761 24.469 +120.214 1.33236 25.5175 +120.768 1.39604 26.7372 +120.53 1.45093 27.7885 +121.06 1.51546 29.0244 +120.705 1.56923 30.0542 +120.534 1.6254 31.1299 +121.224 1.69368 32.4376 +120.743 1.74599 33.4394 +121.215 1.81236 34.7106 +120.907 1.86744 35.7656 +121.451 1.93611 37.0807 +121.122 1.99129 38.1376 +121.45 2.05761 39.4078 +121.291 2.11611 40.5281 +121.783 2.18649 41.8762 +120.941 2.23312 42.7691 +121.314 2.30233 44.0947 +117.365 2.28806 43.8213 +114.457 2.29092 43.8761 +110.813 2.27603 43.5909 +108.11 2.27753 43.6197 +104.676 2.26079 43.299 +101.992 2.2574 43.2341 +99.6844 2.26006 43.285 +97.2012 2.25655 43.2179 +96.4559 2.29205 43.8977 +97.2468 2.36449 45.2852 +96.8474 2.40865 46.131 +97.2495 2.4732 47.3673 +97.8163 2.54295 48.7031 +97.0306 2.5779 49.3723 +96.6842 2.62435 50.2621 +96.7711 2.68294 51.3841 +97.1093 2.74926 52.6543 +96.6455 2.79334 53.4986 +96.8706 2.85775 54.7321 +97.1681 2.92518 56.0237 +96.5886 2.96664 56.8177 +96.8599 3.03465 58.1201 +96.9452 3.09768 59.3273 +96.4231 3.14167 60.1698 +96.5683 3.20784 61.4371 +96.0278 3.25166 62.2764 +96.147 3.31825 63.5517 +96.2513 3.3852 64.834 +96.4228 3.45545 66.1794 +96.4961 3.52312 67.4754 +95.9842 3.56992 68.3718 +96.6775 3.66249 70.1447 +96.1413 3.70945 71.044 +96.2356 3.78129 72.4201 +96.1544 3.84716 73.6815 +96.2161 3.91966 75.07 +96.2608 3.9925 76.4651 +96.133 4.05912 77.741 +96.1444 4.13255 79.1475 +96.2152 4.20966 80.6243 +96.0393 4.27699 81.9137 +96.0745 4.35473 83.4027 +95.9412 4.42592 84.7661 +95.94 4.5043 86.2673 +95.6986 4.57244 87.5723 +96.2461 4.67982 89.6289 +96.1121 4.75574 91.0829 +95.9599 4.83189 92.5413 +95.7182 4.90461 93.934 +96.2372 5.01803 96.1063 +96.0246 5.0951 97.5824 +95.7934 5.17236 99.0621 +95.5436 5.24979 100.545 +95.8208 5.35788 102.615 +96.204 5.47432 104.845 +95.8864 5.55279 106.348 +95.4173 5.62355 107.703 +95.6534 5.73758 109.887 +95.2091 5.81262 111.324 +95.7754 5.95158 113.986 +95.3481 6.03115 115.51 +95.342 6.13913 117.578 +95.4315 6.25572 119.811 +95.0581 6.3441 121.503 +94.845 6.445 123.436 +95.4479 6.60455 126.492 +94.8742 6.68543 128.041 +94.8098 6.80426 130.316 +95.1772 6.95756 133.252 +94.6401 7.04756 134.976 +94.873 7.19778 137.853 +94.7273 7.32281 140.248 +94.3812 7.43518 142.4 +94.8217 7.61346 145.814 +94.6185 7.74423 148.319 +94.3786 7.87542 150.832 +94.4155 8.03367 153.862 +94.6125 8.21043 157.248 +94.1991 8.33849 159.7 +94.3 8.51651 163.11 +94.2991 8.69072 166.446 +94.6348 8.90205 170.494 +94.4774 9.07308 173.769 +94.6455 9.28144 177.76 +94.2891 9.44443 180.882 +94.0214 9.62166 184.276 +94.0139 9.83211 188.306 +94.2936 10.0807 193.068 +94.0236 10.2786 196.857 +94.1171 10.5241 201.56 +93.8866 10.7421 205.735 +94.2409 11.0369 211.38 +94.2244 11.2993 216.406 +94.1662 11.5674 221.54 +94.1784 11.8554 227.058 +93.9139 12.1202 232.129 +94.1908 12.4681 238.792 +93.9999 12.7685 244.545 +93.7505 13.0745 250.406 +93.4741 13.3911 256.469 +93.3992 13.7526 263.392 +93.3078 14.1298 270.617 +93.4462 14.5624 278.901 +93.2613 14.9664 286.639 +93.0684 15.3911 294.773 +92.9157 15.8468 303.501 +93.0434 16.3784 313.682 +92.9174 16.8962 323.6 +92.9722 17.4806 334.791 +92.8384 18.0662 346.007 +92.7408 18.6983 358.114 +93.0432 19.4583 372.668 +107.875 23.4292 448.721 +103.792 23.4418 448.962 +99.6055 23.4271 448.68 +95.5562 23.4409 448.945 +91.8488 23.5397 450.837 +91.5502 24.5582 470.344 +91.3 25.6859 491.941 +91.1306 26.9486 516.124 +90.8587 28.3107 542.211 +90.8259 29.9011 572.672 +90.8584 31.6998 607.121 +88.4445 32.8139 628.459 +88.4837 35.0448 671.186 +90.1468 38.2822 733.187 +96.5623 44.1915 846.364 +89.7481 44.5241 852.734 +89.012 48.2016 923.166 +90.9557 54.2087 1038.22 +88.8863 58.8901 1127.87 +88.0257 65.6383 1257.12 +83.1542 70.8906 1357.71 +87.4586 87.0156 1666.54 +79.2826 94.6837 1813.4 +67.1431 100.256 1920.11 +85.774 170.796 3271.12 +57.1863 170.829 3271.74 +19.2132 114.798 2198.63 +1.54543e-13 170.855 3272.24 +-28.5942 170.848 3272.12 +-57.1863 170.829 3271.74 +-85.774 170.796 3271.12 +-114.355 170.75 3270.25 +-142.928 170.692 3269.13 +-124.738 124.105 2376.89 +-125.833 107.276 2054.56 +-120.421 89.7938 1719.75 +-139.218 92.2361 1766.52 +-120.868 72.0356 1379.64 +-136.408 73.8674 1414.72 +-155.078 76.9344 1473.46 +-118.886 54.4079 1042.03 +-128.328 54.4965 1043.73 +-149.309 59.1351 1132.57 +-456.028 169.192 3240.4 +-144.144 50.2906 963.176 +-111.898 36.8382 705.532 +-117.596 36.6419 701.772 +-123.985 36.664 702.196 +-142.217 40.0105 766.288 +-625.224 167.716 3212.12 +-653.269 167.425 3206.55 +-681.264 167.121 3200.74 +-709.208 166.805 3194.68 +-143.316 32.3684 619.927 +-146.977 31.9217 611.371 +-153.354 32.0712 614.233 +-143.217 28.8754 553.027 +-143.36 27.8975 534.298 +-146.928 27.6252 529.083 +-903.071 164.216 3145.1 +-109.431 19.2631 368.93 +-111.511 19.0181 364.239 +-114.238 18.892 361.824 +-117.426 18.8443 360.909 +-121.337 18.9088 362.146 +-125.441 18.9959 363.812 +-1093.78 161.055 3084.55 +-1120.7 160.551 3074.9 +-1147.52 160.035 3065.01 +-1174.26 159.506 3054.9 +-1200.84 158.956 3044.36 +-541.868 69.9317 1339.35 +-383.143 48.231 923.73 +-415.621 51.0547 977.809 +-159.42 19.1175 366.142 +-162.085 18.9823 363.553 +-164.467 18.8177 360.4 +-168.329 18.8224 360.491 +-410.019 44.8227 858.453 +-141.55 15.1328 289.826 +-141.757 14.8252 283.934 +-144.687 14.8065 283.578 +-148.406 14.865 284.697 +-412.712 40.4728 775.143 +-415.367 39.8894 763.969 +-418.148 39.334 753.333 +-420.087 38.7157 741.49 +-422.3 38.1392 730.45 +-423.795 37.5143 718.481 +-425.421 36.9178 707.057 +-429.546 36.5494 700.001 +-437.342 36.4941 698.942 +-431.344 35.3043 676.154 +-434.459 34.8836 668.098 +-436.196 34.3628 658.124 +-439.414 33.9685 650.572 +-441.174 33.4708 641.039 +-444.35 33.0894 633.734 +-445.864 32.593 624.228 +-448.598 32.1949 616.602 +-451.352 31.8051 609.137 +-453.468 31.3778 600.953 +-455.658 30.9634 593.017 +-465.748 31.0836 595.319 +-463.587 30.389 582.015 +-468.34 30.1566 577.565 +-466.373 29.4998 564.985 +-469.492 29.1746 558.758 +-472.603 28.8528 552.594 +-475.577 28.5265 546.345 +-478.345 28.1918 539.936 +-480.503 27.8259 532.926 +-483.587 27.5177 527.025 +-486.197 27.1861 520.673 +-489.076 26.873 514.677 +-492.93 26.6157 509.75 +-494.842 26.2565 502.87 +-497.874 25.9603 497.197 +-500.488 25.645 491.159 +-503.466 25.3511 485.53 +-383.07 18.9548 363.025 +-384.107 18.6766 357.699 +-381.172 18.2123 348.805 +-382.72 17.9683 344.133 +-381.668 17.6069 337.212 +-136.753 6.19857 118.716 +-141.664 6.3088 120.827 +-142.101 6.21729 119.075 +-142.751 6.13579 117.514 +-141.518 5.97546 114.443 +-142.2 5.89787 112.957 +-143.497 5.84578 111.959 +-147.564 5.90407 113.076 +-155.175 6.09716 116.774 +-156.029 6.02009 115.298 +-156.787 5.93969 113.758 +-158.915 5.91049 113.199 +-159.898 5.83796 111.81 +-381.735 13.68 262.002 +-380.528 13.3834 256.321 +-381.086 13.1521 251.892 +-382.685 12.9584 248.181 +-378.683 12.5792 240.92 +-381.452 12.4285 238.034 +-380.789 12.1673 233.031 +-379.725 11.8969 227.852 +-379.289 11.6495 223.114 +-379.752 11.4322 218.952 +-380.52 11.2256 214.995 +-380.722 11.004 210.751 +-380.616 10.7756 206.376 +-379.138 10.5114 201.317 +-380.971 10.3409 198.051 +-380.816 10.1175 193.772 +-378.826 9.84843 188.619 +-376.864 9.58423 183.559 +-379.627 9.44157 180.827 +-379.562 9.22882 176.752 +-379.181 9.01035 172.568 +-379.213 8.8035 168.606 +-380.397 8.62439 165.176 +-378.604 8.37969 160.489 +-380.361 8.21507 157.337 +-380.053 8.0065 153.342 +-381.006 7.82562 149.878 +-379.967 7.60527 145.658 +-379.071 7.39008 141.536 +-113.797 2.15966 41.3623 +-111.703 2.06255 39.5023 +-109.869 1.9726 37.7795 +-109.531 1.91095 36.5988 +-108.706 1.8417 35.2726 +-108.152 1.77805 34.0536 +-108.541 1.7303 33.1391 +-108.634 1.67788 32.1351 +-108.719 1.62552 31.1322 +-110.914 1.60385 30.7173 +-110.309 1.54118 29.5169 +-109.401 1.47526 28.2544 +-109.643 1.42542 27.3 +-110.17 1.37913 26.4134 +-111.176 1.33833 25.632 +-111.395 1.2877 24.6622 +-113.074 1.25322 24.0019 +-114.651 1.21627 23.2943 +-117.992 1.19589 22.904 +-123.988 1.19823 22.9486 +-155.403 1.42879 27.3644 +-158.792 1.38556 26.5366 +-160.697 1.32712 25.4173 +-161.803 1.26088 24.1487 +-852.027 6.24378 119.582 +-863.449 5.92728 113.52 +-379.053 2.4268 46.4786 +-380.041 2.25777 43.2413 +-898.352 4.92331 94.2922 +-403.832 2.02753 38.8317 +-404.156 1.84371 35.311 +-403.951 1.65769 31.7484 +-403.415 1.47091 28.1711 +-404.245 1.2892 24.6911 +-143.603 0.392418 7.51567 +-402.816 0.917043 17.5634 +-148.31 0.27005 5.17204 +-147.05 0.200781 3.84539 +-145.378 0.132315 2.53413 +-146.894 0.0668428 1.28019 +119.7 3.55271e-15 -1.13687e-13 +119.595 0.0638208 1.04174 +120.082 0.128171 2.09211 +120.359 0.192724 3.1458 +120.227 0.25673 4.19055 +120.285 0.321142 5.24194 +120.235 0.385317 6.28946 +120.175 0.449462 7.33649 +120.605 0.515706 8.41778 +119.929 0.577165 9.42097 +120.54 0.644868 10.5261 +120.443 0.709166 11.5756 +120.536 0.774687 12.6451 +120.123 0.836907 13.6607 +120.594 0.905443 14.7794 +120.857 0.972952 15.8813 +120.12 1.0323 16.8501 +120.858 1.1045 18.0285 +121.091 1.17277 19.143 +120.623 1.23432 20.1475 +120.344 1.29757 21.1801 +120.842 1.36954 22.3548 +120.642 1.43397 23.4065 +120.531 1.49952 24.4764 +120.214 1.5625 25.5045 +120.768 1.63719 26.7235 +120.53 1.70156 27.7743 +121.255 1.78009 29.0561 +120.705 1.84029 30.0388 +120.728 1.90923 31.164 +121.224 1.98624 32.421 +120.936 2.05085 33.4756 +121.215 2.12542 34.6929 +121.003 2.19175 35.7756 +121.451 2.27054 37.0617 +121.313 2.33895 38.1782 +121.45 2.41304 39.3877 +121.385 2.48358 40.539 +121.783 2.56418 41.8547 +121.789 2.63723 43.0471 +121.314 2.70003 44.0722 +118.021 2.69828 44.0435 +114.457 2.68665 43.8537 +110.906 2.67142 43.6051 +108.11 2.67094 43.5974 +105.692 2.67705 43.6971 +101.992 2.64733 43.212 +99.7761 2.65289 43.3027 +97.2012 2.64634 43.1958 +96.4559 2.68797 43.8752 +97.2468 2.77293 45.262 +97.0279 2.82998 46.1933 +97.2495 2.90042 47.343 +97.6373 2.97676 48.5891 +97.0306 3.02319 49.3471 +96.6842 3.07768 50.2364 +96.7711 3.14638 51.3578 +96.4941 3.20373 52.294 +96.6455 3.27586 53.4712 +97.0447 3.35741 54.8025 +97.1681 3.43047 55.995 +96.6748 3.48219 56.8392 +96.8599 3.55884 58.0904 +96.4336 3.61359 58.984 +96.4231 3.68435 60.139 +96.737 3.76852 61.513 +96.0278 3.81334 62.2445 +96.3138 3.89818 63.6294 +96.2513 3.96995 64.8008 +96.5052 4.0558 66.2021 +96.4961 4.13169 67.4409 +96.0656 4.19012 68.3947 +96.6775 4.29514 70.1089 +96.1413 4.35021 71.0077 +96.2356 4.43446 72.383 +96.2338 4.51543 73.7046 +96.2161 4.59673 75.0316 +96.2608 4.68215 76.426 +96.133 4.76028 77.7012 +96.2987 4.85418 79.234 +96.2152 4.93683 80.583 +96.1153 5.01975 81.9366 +96.0745 5.10696 83.36 +96.0161 5.1945 84.7889 +95.94 5.28236 86.2231 +95.7723 5.36641 87.595 +96.2461 5.4882 89.583 +96.1121 5.57724 91.0363 +95.9599 5.66654 92.494 +96.5028 5.79897 94.6555 +96.2372 5.88483 96.0571 +96.0947 5.97958 97.6036 +95.7934 6.06582 99.0114 +96.1631 6.19656 101.145 +95.8208 6.28339 102.563 +95.6636 6.38386 104.203 +95.8864 6.51197 106.294 +95.6161 6.60864 107.872 +95.6534 6.72868 109.831 +95.274 6.82132 111.343 +95.7754 6.97963 113.927 +95.4117 7.07766 115.527 +95.342 7.19959 117.518 +95.3692 7.33155 119.672 +95.0581 7.43997 121.441 +94.845 7.55829 123.373 +95.4479 7.74541 126.427 +94.8148 7.83536 127.895 +94.8098 7.97961 130.25 +94.7127 8.11952 132.534 +94.6401 8.26493 134.907 +94.8164 8.43609 137.701 +94.7273 8.58774 140.176 +94.5468 8.73486 142.578 +94.8217 8.92858 145.74 +94.7797 9.09742 148.496 +94.3786 9.2358 150.754 +94.6245 9.44224 154.124 +94.6125 9.62868 157.167 +94.3006 9.78944 159.791 +94.3 9.98763 163.026 +94.3976 10.2026 166.535 +94.6348 10.4398 170.407 +94.1911 10.608 173.153 +94.6455 10.8847 177.669 +94.3814 11.0867 180.966 +94.0214 11.2837 184.182 +94.0585 11.5359 188.299 +94.2936 11.822 192.969 +94.1097 12.065 196.936 +94.1171 12.3421 201.457 +93.9695 12.6088 205.811 +94.2409 12.9433 211.272 +93.9453 13.2118 215.655 +94.1662 13.5655 221.427 +93.9488 13.8694 226.388 +93.9139 14.2138 232.01 +94.0809 14.6048 238.391 +93.9999 14.9741 244.42 +93.7855 15.3387 250.372 +93.4741 15.7042 256.337 +93.3992 16.1282 263.257 +93.3078 16.5706 270.479 +93.2241 17.0372 278.096 +93.2613 17.5516 286.492 +92.8279 18.0031 293.861 +92.9157 18.5841 303.345 +93.0434 19.2075 313.521 +92.9174 19.8149 323.435 +92.7584 20.453 333.85 +92.8384 21.1869 345.83 +92.5905 21.8927 357.351 +93.0432 22.8194 372.478 +108.272 27.5774 450.141 +103.792 27.4911 448.733 +99.9518 27.5693 450.009 +95.5562 27.4901 448.716 +91.8289 27.5999 450.508 +91.5502 28.8004 470.104 +91.3 30.1228 491.689 +91.1306 31.6036 515.86 +88.3995 32.3024 527.266 +90.8259 35.0661 572.379 +90.1637 36.8913 602.171 +88.4445 38.4821 628.137 +87.7136 40.7407 665.004 +90.1468 44.8949 732.812 +91.1965 48.9451 798.923 +89.7481 52.2151 852.298 +88.5998 56.2661 918.422 +90.9557 63.5726 1037.68 +86.9719 67.5748 1103.01 +88.0257 76.9765 1256.47 +85.6267 85.6077 1397.36 +87.4586 102.046 1665.69 +142.928 200.177 3267.45 +67.1431 117.573 1919.13 +85.774 200.299 3269.45 +57.1863 200.337 3270.07 +28.5942 200.36 3270.45 +1.56208e-13 200.368 3270.57 +-28.5942 200.36 3270.45 +-57.1863 200.337 3270.07 +-85.774 200.299 3269.45 +-114.355 200.245 3268.57 +-142.928 200.177 3267.45 +-124.738 145.543 2375.68 +-200.013 199.97 3264.07 +-120.421 105.304 1718.87 +-135.467 105.255 1718.06 +-120.868 84.4789 1378.93 +-136.494 86.6815 1414.89 +-155.078 90.2239 1472.71 +-119.395 64.0795 1045.96 +-128.328 63.9101 1043.19 +-150.014 69.6777 1137.34 +-456.028 198.418 3238.74 +-144.705 59.2076 966.435 +-111.898 43.2015 705.171 +-118.059 43.1402 704.17 +-123.985 42.9973 701.837 +-147.228 48.5752 792.885 +-625.224 196.687 3210.48 +-653.269 196.345 3204.91 +-681.264 195.989 3199.1 +-709.208 195.618 3193.04 +-143.316 37.9597 619.609 +-147.514 37.5726 613.291 +-153.354 37.6111 613.919 +-142.516 33.6975 550.039 +-143.36 32.7164 534.025 +-147.622 32.5503 531.313 +-903.071 192.582 3143.49 +-109.602 22.6258 369.317 +-111.511 22.3033 364.052 +-114.809 22.2662 363.448 +-117.426 22.0994 360.725 +-121.623 22.2273 362.812 +-125.441 22.2772 363.626 +-1093.78 188.875 3082.97 +-1120.7 188.284 3073.33 +-1147.52 187.679 3063.45 +-1174.26 187.059 3053.34 +-1200.84 186.414 3042.81 +-541.868 82.0115 1338.66 +-419.383 61.9124 1010.59 +-415.621 59.8737 977.309 +-159.221 22.3917 365.497 +-162.085 22.2613 363.367 +-165.628 22.224 362.759 +-168.329 22.0738 360.306 +-411.181 52.7142 860.446 +-141.55 17.7468 289.678 +-141.98 17.4133 284.235 +-144.687 17.3642 283.433 +-148.498 17.4436 284.729 +-412.712 47.464 774.746 +-416.75 46.9356 766.123 +-418.148 46.1285 752.947 +-421.17 45.5204 743.022 +-422.3 44.7273 730.076 +-424.556 44.0735 719.404 +-425.421 43.2949 706.695 +-430.487 42.9567 701.175 +-437.342 42.798 698.584 +-433.386 41.5986 679.007 +-434.459 40.9093 667.756 +-437.796 40.4464 660.2 +-439.414 39.8362 650.239 +-443.1 39.4238 643.508 +-444.35 38.8051 633.409 +-447.49 38.3624 626.183 +-448.598 37.7561 616.287 +-452.303 37.3777 610.109 +-453.468 36.7979 600.646 +-456.875 36.409 594.298 +-465.748 36.4529 595.014 +-469.252 36.0738 588.826 +-468.34 35.3658 577.27 +-467.517 34.6804 566.083 +-469.492 34.2142 558.472 +-473.383 33.8926 553.223 +-475.577 33.4541 546.065 +-479.074 33.112 540.482 +-480.503 32.6324 532.653 +-485.682 32.4109 529.037 +-486.197 31.8821 520.406 +-490.521 31.6082 515.935 +-492.93 31.2133 509.489 +-496.174 30.8749 503.965 +-497.874 30.4446 496.942 +-501.415 30.1306 491.817 +-503.466 29.7302 485.281 +-381.692 22.149 361.534 +-384.107 21.9028 357.516 +-382.499 21.4326 349.84 +-382.72 21.0721 343.957 +-381.293 20.6281 336.709 +-136.753 7.2693 118.656 +-142.12 7.42242 121.155 +-142.101 7.29125 119.014 +-142.519 7.18406 117.264 +-141.518 7.00764 114.385 +-142.748 6.94331 113.335 +-143.497 6.85556 111.902 +-148.992 6.99089 114.111 +-155.175 7.15036 116.714 +-156.35 7.07454 115.476 +-156.787 6.96569 113.7 +-159.648 6.96343 113.663 +-159.898 6.84639 111.752 +-382.724 16.0846 262.547 +-380.528 15.6952 256.19 +-380.836 15.4139 251.598 +-382.685 15.1967 248.054 +-383.153 14.9262 243.638 +-381.452 14.5754 237.912 +-379.766 14.2307 232.285 +-379.725 13.9519 227.735 +-380.151 13.6929 223.507 +-379.752 13.407 218.84 +-380.258 13.1556 214.737 +-380.722 12.9048 210.643 +-381.758 12.6749 206.89 +-379.138 12.3271 201.214 +-380.439 12.1102 197.673 +-380.816 11.8652 193.673 +-379.452 11.5687 188.834 +-376.864 11.2398 183.465 +-379.447 11.0672 180.648 +-379.562 10.823 176.662 +-380.546 10.6048 173.1 +-379.213 10.3242 168.52 +-380.855 10.1263 165.29 +-378.604 9.82717 160.407 +-381.008 9.65051 157.524 +-380.053 9.38953 153.264 +-379.331 9.1371 149.143 +-379.967 8.91898 145.583 +-380.289 8.69444 141.918 +-113.797 2.53272 41.3411 +-111.043 2.40453 39.2488 +-109.869 2.31334 37.7602 +-108.773 2.22551 36.3267 +-108.706 2.15983 35.2545 +-108.533 2.09255 34.1563 +-108.541 2.02919 33.1221 +-108.634 1.96771 32.1187 +-108.719 1.9063 31.1163 +-110.818 1.87926 30.6749 +-110.309 1.80739 29.5018 +-109.497 1.73162 28.265 +-109.643 1.67165 27.286 +-110.461 1.62164 26.4698 +-111.176 1.56951 25.6189 +-112.079 1.51939 24.8008 +-113.074 1.4697 23.9896 +-114.847 1.42881 23.3222 +-117.992 1.40247 22.8923 +-125.365 1.4208 23.1915 +-155.403 1.67559 27.3504 +-161.554 1.65316 26.9842 +-160.697 1.55636 25.4043 +-164.572 1.504 24.5495 +-852.027 7.32231 119.521 +-864.837 6.96233 113.645 +-379.053 2.846 46.4548 +-380.836 2.65331 43.3096 +-898.352 5.77375 94.2439 +-405.126 2.38538 38.9362 +-404.156 2.16218 35.2929 +-403.652 1.94259 31.7087 +-403.415 1.72499 28.1567 +-403.147 1.50779 24.6114 +-143.603 0.460204 7.51183 +-403.516 1.07732 17.5849 +-148.31 0.316697 5.1694 +-147.649 0.236424 3.8591 +-145.378 0.155171 2.53283 +-146.594 0.0782288 1.27692 +119.9 5.32907e-15 2.84217e-14 +120.295 0.0736447 1.04721 +120.282 0.147284 2.09435 +120.359 0.221095 3.14394 +120.327 0.294768 4.19155 +120.285 0.368418 5.23883 +120.135 0.441673 6.28051 +120.275 0.516057 7.33823 +120.705 0.592113 8.41974 +119.929 0.662131 9.41538 +119.942 0.736138 10.4677 +120.343 0.812898 11.5593 +120.636 0.889468 12.6481 +120.123 0.96011 13.6526 +120.892 1.0413 14.8071 +119.965 1.10795 15.7548 +121.011 1.19306 16.9651 +120.067 1.2588 17.8999 +120.202 1.33554 18.9912 +120.623 1.41602 20.1356 +120.737 1.49347 21.2369 +120.055 1.56093 22.1962 +120.642 1.64507 23.3926 +120.531 1.72027 24.4619 +120.214 1.79252 25.4893 +120.768 1.8782 26.7076 +120.627 1.95363 27.7803 +121.352 2.04378 29.0622 +120.996 2.1163 30.0934 +120.728 2.19029 31.1455 +121.224 2.27864 32.4018 +120.936 2.35276 33.4558 +121.311 2.44024 34.6997 +121.003 2.51441 35.7544 +121.451 2.6048 37.0397 +121.313 2.68327 38.1556 +121.64 2.77261 39.4259 +121.48 2.85141 40.5466 +121.972 2.94623 41.8948 +121.695 3.02313 42.9883 +121.596 3.10471 44.1484 +118.302 3.10287 44.1222 +114.644 3.08718 43.8992 +111.65 3.08526 43.8717 +108.295 3.0694 43.6463 +105.692 3.07115 43.6711 +102.084 3.0398 43.2253 +100.51 3.06581 43.5952 +97.9321 3.05875 43.4948 +96.2739 3.07785 43.7664 +97.6093 3.193 45.4039 +97.0279 3.24659 46.1659 +97.2495 3.3274 47.3149 +97.9058 3.42436 48.6937 +96.8524 3.46188 49.2272 +96.6842 3.53075 50.2066 +96.9476 3.61615 51.421 +97.1972 3.70214 52.6438 +96.6455 3.7581 53.4395 +96.9576 3.84821 54.7209 +96.4752 3.90742 55.5628 +96.6748 3.99481 56.8055 +96.9456 4.08636 58.1073 +96.3483 4.14189 58.8968 +96.5927 4.23417 60.2091 +96.737 4.3233 61.4765 +96.8665 4.41292 62.7508 +96.3138 4.47205 63.5916 +96.4171 4.56222 64.8739 +95.7635 4.6171 65.6543 +96.6599 4.74797 67.5153 +96.0656 4.80696 68.3541 +96.1112 4.89858 69.6569 +96.2217 4.99478 71.0249 +96.2356 5.08727 72.34 +96.3131 5.18442 73.7215 +96.2949 5.27774 75.0485 +96.3391 5.3758 76.4428 +96.2107 5.46547 77.718 +96.2987 5.56878 79.187 +95.679 5.63203 80.0864 +96.1153 5.75872 81.888 +95.9991 5.85416 83.2451 +96.0161 5.95919 84.7386 +95.94 6.05999 86.172 +96.5096 6.2038 88.2169 +95.7342 6.26265 89.0537 +95.6043 6.36447 90.5016 +96.0319 6.5056 92.5084 +95.8609 6.60839 93.9701 +96.3787 6.76108 96.1413 +96.0947 6.85984 97.5457 +95.8629 6.96383 99.0243 +95.5436 7.06296 100.434 +95.9572 7.21863 102.647 +95.6636 7.32364 104.141 +95.9533 7.4758 106.304 +96.0136 7.61309 108.257 +95.719 7.72449 109.841 +95.339 7.83083 111.353 +95.2611 7.96412 113.248 +95.3481 8.11418 115.382 +95.4679 8.27033 117.603 +95.4315 8.41632 119.678 +94.8734 8.5186 121.133 +94.7842 8.66542 123.221 +94.7859 8.82396 125.475 +94.7553 8.98314 127.739 +94.8098 9.15431 130.173 +95.1772 9.36055 133.105 +95.1563 9.53333 135.562 +94.9297 9.68956 137.784 +94.951 9.87525 140.424 +94.5468 10.0207 142.493 +94.985 10.2606 145.904 +94.8334 10.4426 148.492 +94.5906 10.6193 151.004 +94.52 10.8203 153.863 +94.664 11.0521 157.159 +94.3006 11.2306 159.697 +94.35 11.464 163.016 +94.3976 11.7045 166.436 +94.2955 11.9337 169.695 +94.5252 12.2129 173.665 +94.2229 12.4313 176.771 +94.3814 12.7188 180.858 +94.4754 13.0073 184.961 +94.0585 13.2342 188.187 +93.9429 13.512 192.137 +94.0667 13.8349 196.729 +94.2016 14.1717 201.518 +93.8866 14.4522 205.507 +93.9968 14.8103 210.6 +93.9852 15.1632 215.618 +94.2443 15.5754 221.479 +94.2549 15.963 226.991 +93.9139 16.3063 231.872 +94.1908 16.7743 238.528 +94.0357 17.1851 244.368 +93.7505 17.5902 250.129 +93.5767 18.0359 256.467 +93.3992 18.5024 263.101 +93.2102 18.9901 270.035 +93.2558 19.552 278.025 +92.9832 20.0754 285.468 +92.8279 20.6533 293.687 +93.0034 21.3401 303.452 +93.015 22.0284 313.239 +92.7795 22.6982 322.764 +92.6515 23.4369 333.268 +92.5537 24.2313 344.564 +92.5655 25.1088 357.042 +92.4384 26.0085 369.837 +108.249 31.6303 449.777 +104.107 31.6338 449.827 +99.9735 31.6347 449.84 +95.8265 31.6261 449.717 +91.8687 31.6767 450.437 +91.2449 32.9299 468.258 +91.2818 34.5503 491.299 +90.9743 36.1939 514.67 +88.548 37.1199 527.838 +88.6827 39.2791 558.542 +89.9272 42.2111 600.235 +87.7208 43.786 622.628 +87.3481 46.5435 661.84 +90.0371 51.4414 731.486 +90.6984 55.8438 794.089 +89.8736 59.9856 852.983 +88.4273 64.4235 916.091 +89.7181 71.9386 1022.95 +87.576 78.0614 1110.02 +88.2489 88.5322 1258.91 +85.4435 98.0005 1393.55 +87.3382 116.908 1662.4 +142.928 229.645 3265.52 +114.355 229.724 3266.63 +37.1399 99.4961 1414.82 +24.7178 99.3397 1412.59 +28.5942 229.856 3268.51 +1.55542e-13 229.864 3268.63 +-28.5942 229.856 3268.51 +-57.1863 229.829 3268.13 +-85.774 229.786 3267.51 +-114.355 229.724 3266.63 +-142.928 229.645 3265.52 +-171.489 229.549 3264.15 +-200.038 229.436 3262.53 +-119.988 120.373 1711.68 +-257.087 229.156 3258.55 +-121.356 97.3067 1383.68 +-136.561 99.4912 1414.75 +-155.57 103.834 1476.5 +-119.418 73.5268 1045.54 +-128.767 73.5689 1046.14 +-150.092 79.9765 1137.25 +-456.028 227.627 3236.82 +-144.661 67.9028 965.565 +-112.336 49.7553 707.512 +-118.042 49.484 703.653 +-124.454 49.5135 704.073 +-147.228 55.7261 792.415 +-625.224 225.641 3208.58 +-653.269 225.25 3203.01 +-681.264 224.842 3197.2 +-709.208 224.416 3191.15 +-143.901 43.7256 621.769 +-147.748 43.1719 613.897 +-175.49 49.3761 702.119 +-143.668 38.9706 554.154 +-143.645 37.6073 534.768 +-147.756 37.3759 531.478 +-903.071 220.933 3141.62 +-109.857 26.017 369.957 +-112.095 25.7207 365.744 +-115.05 25.5976 363.993 +-118.23 25.5262 362.978 +-121.655 25.5061 362.691 +-125.93 25.6562 364.826 +-1093.78 216.679 3081.14 +-1120.7 216.002 3071.5 +-1147.52 215.307 3061.63 +-1174.26 214.597 3051.52 +-384.863 68.5399 974.624 +-415.476 72.1393 1025.81 +-419.842 71.1045 1011.09 +-416.637 68.8558 979.116 +-159.619 25.7524 366.195 +-162.817 25.6537 364.791 +-165.628 25.4957 362.544 +-169.301 25.4696 362.173 +-140.949 20.7301 294.778 +-141.419 20.3404 289.237 +-142.382 20.0333 284.87 +-144.687 19.9204 283.264 +-148.914 20.0675 285.356 +-414.356 54.6681 777.37 +-417.466 53.9376 766.983 +-419.894 53.1401 755.642 +-421.318 52.2399 742.841 +-422.9 51.3846 730.679 +-425.114 50.6282 719.923 +-425.679 49.6985 706.704 +-429.86 49.2087 699.739 +-448.418 50.3417 715.85 +-433.225 47.7047 678.352 +-435.875 47.0846 669.534 +-438.348 46.4592 660.64 +-440.532 45.8168 651.507 +-442.76 45.1927 642.632 +-445.726 44.6556 634.995 +-447.838 44.0441 626.299 +-450.126 43.4618 618.019 +-452.839 42.9308 610.468 +-454.611 42.3214 601.803 +-457.18 41.7966 594.34 +-472.766 42.4494 603.622 +-470.932 41.5325 590.584 +-466.893 40.4467 575.145 +-468.09 39.8346 566.44 +-470.842 39.3638 559.746 +-473.967 38.93 553.577 +-476.561 38.4583 546.87 +-479.472 38.018 540.609 +-482.109 37.5615 534.117 +-485.006 37.1304 527.987 +-487.629 36.6833 521.63 +-491.141 36.3071 516.28 +-493.416 35.8435 509.688 +-496.875 35.47 504.377 +-498.369 34.9612 497.141 +-501.415 34.5662 491.525 +-503.754 34.1264 485.271 +-2376.69 158.218 2249.83 +-2396.28 156.758 2229.06 +-383.384 24.6446 350.442 +-382.943 24.1883 343.954 +-381.818 23.6973 336.972 +-140.98 8.59717 122.25 +-141.892 8.50141 120.888 +-142.178 8.3691 119.007 +-142.442 8.23715 117.131 +-140.897 8.00397 113.815 +-142.513 7.95234 113.081 +-144.758 7.93389 112.818 +-148.992 8.02003 114.043 +-155.574 8.2241 116.945 +-156.35 8.116 115.408 +-157.03 8.00348 113.808 +-158.59 7.93557 112.842 +-160.963 7.9066 112.43 +-381.982 18.4167 261.882 +-381.938 18.0723 256.985 +-381.503 17.7139 251.889 +-381.511 17.3804 247.146 +-379.864 16.9766 241.404 +-380.774 16.6913 237.348 +-380.619 16.3623 232.668 +-378.182 15.9408 226.675 +-380.151 15.7087 223.374 +-379.925 15.3877 218.81 +-380.52 15.1027 214.758 +-379.935 14.7739 210.082 +-380.088 14.4772 205.863 +-381.08 14.2143 202.125 +-379.641 13.8638 197.141 +-380.103 13.5863 193.195 +-381.868 13.3563 189.924 +-379.74 12.9928 184.756 +-380.259 12.7236 180.927 +-378.837 12.3925 176.219 +-378.089 12.0874 171.881 +-379.944 11.8669 168.745 +-380.488 11.6059 165.033 +-379.156 11.2903 160.545 +-378.791 11.0067 156.513 +-380.145 10.7744 153.211 +-379.703 10.4924 149.201 +-380.621 10.2496 145.747 +-380.664 9.98419 141.973 +-113.797 2.90556 41.3166 +-111.043 2.75851 39.2255 +-110.058 2.65846 37.8027 +-109.531 2.57095 36.5584 +-108.706 2.47778 35.2336 +-109.105 2.41325 34.3159 +-108.158 2.3197 32.9857 +-108.634 2.25739 32.0996 +-109.295 2.19854 31.2628 +-110.336 2.14654 30.5234 +-110.599 2.07892 29.5618 +-109.497 1.98654 28.2482 +-109.935 1.92283 27.3423 +-110.656 1.86364 26.5007 +-111.176 1.80056 25.6037 +-111.981 1.74154 24.7644 +-113.074 1.68606 23.9754 +-114.749 1.63775 23.2885 +-117.108 1.59689 22.7074 +-124.382 1.61718 22.996 +-158.948 1.96611 27.9578 +-160.567 1.88495 26.8036 +-161.29 1.79206 25.4828 +-3240.51 33.9741 483.105 +-853.809 8.41779 119.699 +-863.648 7.97626 113.421 +-379.252 3.26668 46.4516 +-381.134 3.0463 43.3178 +-899.147 6.62958 94.2714 +-405.425 2.73856 38.9418 +-403.06 2.47375 35.1763 +-403.253 2.22637 31.6585 +-403.515 1.97942 28.147 +-403.746 1.73232 24.6333 +-146.898 0.540067 7.67965 +-3273.38 10.0259 142.567 +-403.854 0.989335 14.0682 +-146.95 0.269942 3.83853 +-145.778 0.178504 2.53829 +-147.294 0.0901737 1.28225 +119.9 5.32907e-15 2.84217e-14 +120.295 0.0830889 1.04651 +120.382 0.16631 2.09468 +119.659 0.247999 3.12355 +120.327 0.332569 4.18872 +120.385 0.41601 5.23965 +120.235 0.498728 6.28148 +120.275 0.582236 7.33327 +120.705 0.668046 8.41405 +119.929 0.747043 9.40902 +120.838 0.836746 10.5388 +120.343 0.917144 11.5514 +119.74 0.996086 12.5457 +120.123 1.08324 13.6434 +119.999 1.16616 14.6878 +120.758 1.25829 15.8482 +120.912 1.34495 16.9397 +120.067 1.42023 17.8878 +121.091 1.51796 19.1187 +120.623 1.59761 20.122 +120.54 1.68224 21.1878 +120.842 1.77264 22.3264 +120.74 1.85755 23.3959 +120.531 1.94088 24.4454 +120.214 2.0224 25.4721 +120.67 2.11734 26.668 +120.53 2.20239 27.7391 +121.352 2.30588 29.0426 +121.093 2.38961 30.0972 +120.728 2.47117 31.1245 +121.127 2.5688 32.3541 +121.032 2.65659 33.4598 +121.407 2.75536 34.7038 +120.907 2.83461 35.7019 +121.546 2.94115 37.0438 +121.313 3.02737 38.1298 +121.735 3.13061 39.4301 +121.575 3.2196 40.5509 +121.972 3.32406 41.8665 +121.789 3.41345 42.9925 +121.784 3.50827 44.1867 +118.489 3.50632 44.1622 +114.457 3.47741 43.7981 +111.557 3.47801 43.8056 +108.295 3.46302 43.6168 +105.599 3.46196 43.6035 +103.097 3.46364 43.6246 +100.51 3.45897 43.5658 +97.8407 3.44778 43.4248 +96.0009 3.46271 43.6129 +96.7937 3.57237 44.994 +97.2084 3.66975 46.2205 +98.0584 3.78533 47.6763 +98.0848 3.87057 48.7499 +96.7633 3.90224 49.1487 +96.6842 3.98354 50.1727 +96.2413 4.05016 51.0119 +96.4062 4.14292 52.1801 +96.7329 4.24388 53.4517 +96.2613 4.31053 54.2911 +96.4752 4.40851 55.5253 +96.6748 4.50711 56.7672 +97.0313 4.61448 58.1194 +96.3483 4.67304 58.8571 +96.5927 4.77716 60.1685 +96.737 4.87772 61.435 +96.8665 4.97883 62.7085 +96.9809 5.0805 63.9889 +96.4171 5.14728 64.8301 +96.5876 5.25403 66.1746 +96.0046 5.32054 67.0123 +96.0656 5.42341 68.3079 +96.1112 5.52678 69.6098 +96.3021 5.64003 71.0363 +96.2356 5.73967 72.2912 +96.2338 5.84447 73.6111 +96.2161 5.94969 74.9365 +95.5565 6.01591 75.7706 +96.2107 6.16637 77.6655 +96.2987 6.28293 79.1336 +96.2152 6.38989 80.4808 +96.1153 6.49723 81.8327 +96.0745 6.6101 83.2543 +96.0161 6.72341 84.6814 +96.6088 6.88479 86.7141 +95.8461 6.95125 87.5512 +96.3193 7.10896 89.5374 +95.6043 7.18066 90.4405 +95.9599 7.33438 92.3767 +95.7895 7.45031 93.8368 +95.7423 7.57775 95.4419 +96.1648 7.74521 97.551 +95.8629 7.85688 98.9575 +96.1631 8.0204 101.017 +95.9572 8.14435 102.578 +95.7311 8.26869 104.144 +95.9533 8.4345 106.233 +95.6161 8.55378 107.735 +95.8502 8.72703 109.917 +95.274 8.82905 111.202 +95.2611 8.98545 113.172 +94.7757 9.09973 114.611 +95.405 9.32475 117.445 +94.9335 9.44608 118.974 +94.935 9.61728 121.13 +94.9668 9.79552 123.375 +94.9062 9.96822 125.55 +95.2311 10.186 128.293 +95.3388 10.386 130.811 +95.1191 10.5545 132.934 +95.099 10.7494 135.389 +94.9863 10.9386 137.772 +94.7273 11.1154 139.998 +95.0435 11.3652 143.145 +94.4404 11.51 144.969 +94.8334 11.7818 148.392 +94.3786 11.9542 150.563 +94.1542 12.1607 153.164 +94.664 12.4694 157.053 +94.3006 12.6708 159.589 +94.35 12.9342 162.906 +94.3484 13.1986 166.237 +94.2955 13.4641 169.58 +94.0957 13.7165 172.759 +94.2699 14.0325 176.74 +94.4276 14.3569 180.825 +94.4754 14.6754 184.836 +94.4601 14.9951 188.864 +93.9429 15.2447 192.008 +93.7223 15.5519 195.877 +93.9058 15.9389 200.75 +93.928 16.3128 205.459 +93.9968 16.7096 210.458 +93.9453 17.1005 215.381 +93.8927 17.5072 220.503 +93.9488 17.9516 226.1 +93.8764 18.3901 231.623 +93.8976 18.8666 237.625 +94.0357 19.3889 244.204 +93.6805 19.8312 249.774 +93.5083 20.3339 256.106 +93.3992 20.8752 262.924 +93.2753 21.4403 270.041 +92.9703 21.9918 276.987 +93.045 22.6649 285.465 +92.8279 23.3019 293.488 +92.945 24.0615 303.055 +92.9014 24.823 312.646 +92.8347 25.6242 322.737 +92.705 26.4576 333.234 +92.5796 27.3464 344.428 +92.5655 28.3288 356.801 +92.4625 29.3516 369.684 +108.202 35.6712 449.279 +104.085 35.6829 449.427 +99.9302 35.6762 449.342 +95.8681 35.6974 449.609 +91.9086 35.7544 450.328 +90.9586 37.0364 466.474 +91.1724 38.9343 490.379 +90.8006 40.7574 513.341 +88.2179 41.7241 525.516 +88.1821 44.0661 555.013 +89.7499 47.5304 598.646 +87.6512 49.3619 621.714 +87.2437 52.4496 660.603 +89.9396 57.9754 730.201 +91.1965 63.3512 797.91 +89.884 67.686 852.506 +88.4081 72.6694 915.273 +89.2736 80.762 1017.2 +86.9484 87.4405 1101.31 +88.228 99.8619 1257.76 +84.7171 109.628 1380.76 +84.2714 127.268 1602.95 +142.928 259.095 3263.31 +114.355 259.184 3264.43 +85.774 259.254 3265.3 +57.1863 259.303 3265.92 +28.5942 259.333 3266.3 +1.54099e-13 259.342 3266.42 +-28.5942 259.333 3266.3 +-57.1863 259.303 3265.92 +-85.774 259.254 3265.3 +-114.355 259.184 3264.43 +-142.91 259.064 3262.91 +-171.489 258.987 3261.94 +-200.013 258.827 3259.93 +-228.571 258.711 3258.47 +-257.087 258.543 3256.35 +-121.399 109.825 1383.25 +-136.666 112.337 1414.89 +-155.873 117.378 1478.38 +-119.611 83.0897 1046.52 +-128.84 83.0509 1046.03 +-150.183 90.2882 1137.18 +-456.028 256.818 3234.63 +-144.883 76.7281 966.392 +-112.476 56.2064 707.92 +-118.191 55.9001 704.063 +-124.454 55.8632 703.598 +-147.593 63.0281 793.84 +-625.224 254.578 3206.41 +-653.269 254.136 3200.85 +-681.264 253.675 3195.05 +-709.208 253.195 3188.99 +-143.924 49.3406 621.446 +-147.748 48.7083 613.482 +-175.877 55.831 703.192 +-143.918 44.0448 554.745 +-143.852 42.4912 535.178 +-147.997 42.2377 531.985 +-903.181 249.296 3139.89 +-109.886 29.3611 369.803 +-111.861 28.9586 364.734 +-115.05 28.8803 363.747 +-118.23 28.7997 362.732 +-121.94 28.8446 363.298 +-126.19 29.0062 365.333 +-1093.78 244.467 3079.06 +-1120.7 243.702 3069.43 +-1147.52 242.918 3059.56 +-1174.26 242.117 3049.46 +-1200.77 241.267 3038.77 +-415.551 81.4055 1025.3 +-419.306 80.1201 1009.11 +-416.91 77.7369 979.098 +-159.699 29.0695 366.131 +-163.02 28.9797 365 +-165.628 28.7653 362.299 +-169.512 28.7717 362.38 +-411.353 68.2583 859.715 +-141.769 23.0058 289.758 +-142.426 22.6095 284.767 +-145.005 22.5243 283.694 +-148.406 22.5637 284.191 +-414.356 61.6788 776.845 +-417.609 60.8755 766.728 +-419.894 59.9548 755.132 +-421.761 59.0012 743.121 +-423.5 58.0565 731.223 +-425.317 57.148 719.78 +-426.143 56.1329 706.995 +-429.494 55.472 698.671 +-454.406 57.5561 724.92 +-433.762 53.8891 678.734 +-435.875 53.1228 669.082 +-439.342 52.5359 661.691 +-440.868 51.7318 651.563 +-443.1 51.0274 642.691 +-445.726 50.3823 634.566 +-448.07 49.7182 626.201 +-450.302 49.0546 617.844 +-453.017 48.4554 610.296 +-454.852 47.7741 601.715 +-457.362 47.1755 594.176 +-472.951 47.9119 603.451 +-473.36 47.1002 593.228 +-466.201 45.5659 573.904 +-467.708 44.9063 565.596 +-470.842 44.4118 559.368 +-474.162 43.9404 553.43 +-476.561 43.3903 546.501 +-479.737 42.9172 540.543 +-481.908 42.3607 533.534 +-485.682 41.9504 528.366 +-487.902 41.4107 521.569 +-490.521 40.9114 515.28 +-493.416 40.4401 509.344 +-496.594 39.9962 503.753 +-499.005 39.4949 497.44 +-502.057 39.049 491.822 +-504.401 38.5522 485.566 +-383.07 28.7717 362.38 +-383.522 28.3063 356.518 +-382.057 27.7088 348.993 +-380.564 27.1208 341.587 +-381.743 26.731 336.677 +-141.055 9.70482 122.232 +-141.892 9.59164 120.807 +-142.331 9.45257 119.055 +-142.288 9.28344 116.925 +-141.596 9.0752 114.302 +-142.356 8.96226 112.88 +-144.6 8.9416 112.62 +-149.468 9.07749 114.331 +-155.974 9.30251 117.165 +-156.35 9.1568 115.33 +-157.273 9.04378 113.907 +-158.508 8.94864 112.708 +-160.718 8.90693 112.183 +-382.724 20.8189 262.214 +-380.777 20.328 256.031 +-379.418 19.8764 250.343 +-380.756 19.5705 246.49 +-381.55 19.2387 242.311 +-381.961 18.8906 237.927 +-381.642 18.5102 233.136 +-379.897 18.0666 227.549 +-380.323 17.7312 223.324 +-380.272 17.3768 218.861 +-380.694 17.0472 214.71 +-379.935 16.6685 209.94 +-380.528 16.3526 205.962 +-380.286 16.0037 201.567 +-380.794 15.6893 197.607 +-379.391 15.2999 192.703 +-379.721 14.9843 188.728 +-376.685 14.541 183.145 +-379.447 14.3247 180.419 +-380.287 14.0353 176.775 +-378.544 13.6539 171.971 +-379.304 13.3662 168.347 +-380.763 13.1037 165.042 +-380.905 12.7969 161.178 +-380.546 12.4758 157.133 +-380.609 12.171 153.294 +-379.983 11.8467 149.209 +-379.781 11.5384 145.327 +-380.57 11.2618 141.843 +-113.515 3.27005 41.1864 +-111.137 3.11491 39.2323 +-109.964 2.99681 37.7448 +-108.678 2.87804 36.249 +-108.706 2.79553 35.2098 +-108.914 2.71797 34.2329 +-108.636 2.62875 33.1092 +-108.443 2.54238 32.0213 +-109.392 2.48266 31.2691 +-110.047 2.41547 30.4229 +-110.405 2.34142 29.4902 +-109.304 2.23733 28.1792 +-109.837 2.1675 27.2997 +-110.267 2.09525 26.3897 +-111.176 2.03147 25.5864 +-112.176 1.96831 24.7909 +-113.074 1.90228 23.9592 +-114.847 1.84935 23.2926 +-117.893 1.81376 22.8443 +-125.365 1.83899 23.1621 +-157.865 2.20313 27.7485 +-160.173 2.12144 26.7196 +-160.993 2.01816 25.4188 +-165.265 1.95486 24.6215 +-853.512 9.49397 119.577 +-864.639 9.00951 113.475 +-380.344 3.69621 46.5538 +-380.737 3.43337 43.2434 +-899.943 7.48638 94.2911 +-404.529 3.08293 38.8295 +-402.961 2.7903 35.1439 +-403.253 2.51188 31.6371 +-403.515 2.23326 28.128 +-403.446 1.95303 24.5984 +-146.998 0.60974 7.67968 +-404.515 1.39786 17.6061 +-3274.5 9.05035 113.989 +-148.149 0.307046 3.86725 +-145.978 0.201672 2.54006 +-146.294 0.101047 1.27268 +119.9 5.32907e-15 2.84217e-14 +120.295 0.0925264 1.04571 +119.582 0.18397 2.07919 +120.459 0.278013 3.14204 +120.327 0.370344 4.18555 +120.285 0.462876 5.23133 +120.135 0.554913 6.27152 +120.175 0.647829 7.32164 +120.705 0.743925 8.40768 +120.826 0.838118 9.47223 +120.739 0.93102 10.5222 +120.343 1.02132 11.5427 +120.636 1.11752 12.63 +120.222 1.20727 13.6443 +119.999 1.29861 14.6767 +120.659 1.40006 15.8232 +120.219 1.48913 16.8298 +120.858 1.59196 17.992 +120.3 1.67934 18.9795 +120.623 1.77908 20.1067 +120.54 1.87331 21.1718 +120.842 1.97398 22.3095 +120.74 2.06854 23.3782 +120.531 2.16133 24.4269 +120.997 2.26677 25.6186 +120.67 2.35784 26.6478 +120.627 2.45452 27.7405 +120.282 2.54516 28.7648 +120.996 2.6589 30.0503 +120.825 2.75406 31.1258 +121.224 2.86285 32.3554 +121.032 2.95833 33.4345 +121.407 3.06832 34.6775 +120.907 3.15657 35.6749 +120.686 3.25202 36.7537 +121.313 3.37123 38.1009 +120.879 3.46168 39.1233 +121.48 3.58249 40.4885 +121.121 3.67579 41.543 +121.695 3.79823 42.9268 +121.032 3.88264 43.8808 +118.114 3.89224 43.9893 +114.457 3.87239 43.7649 +111.65 3.87628 43.8089 +108.295 3.85636 43.5838 +105.507 3.85181 43.5323 +103.004 3.8536 43.5526 +99.6844 3.82022 43.1753 +97.7494 3.8358 43.3514 +96.4559 3.87429 43.7864 +97.6093 4.01165 45.3389 +97.2084 4.08657 46.1856 +97.3394 4.18437 47.2908 +98.0848 4.3102 48.713 +97.2979 4.36947 49.3829 +96.6842 4.436 50.1347 +96.8594 4.53915 51.3006 +97.1972 4.65133 52.5684 +96.6455 4.72164 53.363 +96.9576 4.83485 54.6425 +96.4752 4.90924 55.4832 +96.761 5.02352 56.7748 +96.9456 5.13406 58.0241 +96.4336 5.20843 58.8646 +96.5927 5.31977 60.1229 +96.737 5.43175 61.3885 +97.0342 5.55394 62.7695 +96.3138 5.61863 63.5006 +96.4171 5.73192 64.781 +96.5876 5.85079 66.1245 +96.6599 5.9653 67.4186 +96.7169 6.08036 68.719 +96.0303 6.14934 69.4986 +96.1413 6.27015 70.8639 +96.2356 6.39159 72.2365 +96.2338 6.5083 73.5554 +96.2949 6.6309 74.941 +96.2608 6.7486 76.2713 +96.2884 6.8723 77.6694 +96.2987 6.99656 79.0737 +96.2152 7.11568 80.4199 +95.507 7.18941 81.2533 +96.0745 7.36089 83.1913 +96.0161 7.48707 84.6173 +95.94 7.61371 86.0486 +96.5833 7.80034 88.1579 +96.3193 7.91641 89.4697 +96.1121 8.03873 90.8521 +95.9599 8.16744 92.3068 +95.7895 8.29654 93.7658 +95.6715 8.43222 95.2992 +96.0947 8.61864 97.406 +95.8629 8.74928 98.8826 +96.1631 8.93138 100.941 +95.9572 9.0694 102.501 +95.596 9.19491 103.919 +95.9533 9.39252 106.152 +95.6823 9.53195 107.728 +95.8502 9.71827 109.834 +95.274 9.83188 111.118 +95.2611 10.006 113.086 +95.5389 10.2149 115.447 +95.0903 10.3497 116.97 +95.4315 10.5742 119.507 +94.8119 10.6958 120.882 +94.7842 10.8871 123.044 +94.9062 11.1004 125.455 +95.2311 11.343 128.196 +95.2212 11.5513 130.551 +94.7127 11.703 132.265 +95.2137 11.9848 135.45 +94.9297 12.1739 137.586 +94.8391 12.3925 140.058 +94.602 12.5973 142.372 +94.8761 12.8765 145.527 +94.8334 13.12 148.28 +94.3786 13.312 150.449 +94.4155 13.5795 153.472 +94.767 13.9009 157.105 +94.3006 14.11 159.468 +94.35 14.4033 162.783 +94.3484 14.6978 166.111 +94.247 14.9856 169.364 +94.1434 15.2822 172.716 +94.3168 15.6341 176.694 +94.3352 15.9719 180.511 +94.43 16.3344 184.608 +94.0139 16.6194 187.829 +94.2936 17.0397 192.579 +94.1097 17.3899 196.537 +93.8635 17.7412 200.508 +93.9695 18.1736 205.395 +94.0375 18.6156 210.39 +93.9852 19.0509 215.31 +93.8927 19.4957 220.336 +93.9488 19.9906 225.929 +93.9513 20.4952 231.633 +93.9343 21.0177 237.538 +93.9641 21.5747 243.832 +93.7855 22.1084 249.865 +93.5767 22.6601 256.099 +93.3992 23.2463 262.725 +93.3078 23.8839 269.931 +93.0337 24.5064 276.966 +92.9523 25.2141 284.965 +93.0083 25.9991 293.837 +92.828 26.7608 302.445 +92.8162 27.6171 312.123 +92.6417 28.4754 321.823 +92.6515 29.4458 332.791 +92.6313 30.4695 344.36 +92.5154 31.5294 356.339 +92.2932 32.6256 368.727 +108.435 39.8086 449.908 +104.31 39.8217 450.057 +100.168 39.823 450.072 +96.1176 39.8555 450.438 +91.8089 39.7723 449.499 +90.8632 41.1998 465.632 +90.972 43.2613 488.931 +90.7833 45.378 512.853 +87.8218 46.2547 522.761 +87.9787 48.9581 553.314 +89.4395 52.746 596.124 +87.7069 55.0035 621.638 +87.1654 58.3545 659.51 +89.8299 64.4817 728.759 +90.6871 70.1528 792.852 +89.9781 75.4528 852.752 +88.4944 81.0024 915.472 +88.9076 89.5668 1012.27 +87.0033 97.4339 1101.18 +88.2838 111.275 1257.61 +87.3055 125.81 1421.87 +74.6311 125.512 1418.51 +142.928 288.524 3260.84 +114.355 288.623 3261.96 +85.774 288.7 3262.83 +57.1863 288.755 3263.45 +28.5907 288.753 3263.43 +1.49436e-13 288.764 3263.55 +-28.5942 288.789 3263.83 +-57.1793 288.72 3263.05 +-85.7635 288.665 3262.43 +-114.341 288.588 3261.56 +-142.91 288.489 3260.44 +-171.468 288.368 3259.08 +-200.013 288.225 3257.46 +-228.543 288.061 3255.6 +-257.056 287.874 3253.49 +-121.591 122.492 1384.38 +-136.925 125.333 1416.49 +-342.467 287.182 3245.67 +-119.735 92.6234 1046.81 +-129.096 92.6674 1047.31 +-150.314 100.631 1137.31 +-456.028 285.988 3232.18 +-145.104 85.5739 967.139 +-112.555 62.634 707.876 +-118.504 62.4146 705.397 +-124.731 62.3471 704.634 +-147.848 70.3084 794.611 +-625.224 283.493 3203.98 +-653.269 283.001 3198.42 +-681.264 282.489 3192.63 +-709.121 281.919 3186.19 +-144.126 55.0222 621.85 +-148.331 54.455 615.44 +-175.78 62.1382 702.273 +-144.069 49.0988 554.904 +-143.67 47.2578 534.098 +-148.13 47.0776 532.061 +-903.181 277.612 3137.51 +-109.914 32.7044 369.619 +-111.861 32.2478 364.458 +-115.321 32.2362 364.327 +-118.23 32.0708 362.458 +-121.877 32.1041 362.833 +-126.418 32.3591 365.716 +-1093.78 272.234 3076.73 +-1120.7 271.382 3067.11 +-1147.52 270.51 3057.25 +-1174.26 269.617 3047.16 +-1200.77 268.671 3036.47 +-383.972 83.7623 946.665 +-385.056 81.933 925.99 +-416.91 86.5665 978.357 +-159.699 32.3713 365.854 +-162.044 32.0781 362.541 +-165.753 32.0566 362.297 +-169.259 31.9917 361.563 +-143.102 26.4428 298.851 +-141.375 25.5475 288.733 +-142.382 25.1697 284.463 +-145.095 25.0985 283.658 +-147.529 24.9781 282.297 +-414.825 68.7622 777.136 +-418.039 67.8596 766.936 +-419.894 66.7646 754.56 +-421.761 65.7027 742.559 +-423.35 64.6278 730.41 +-425.317 63.639 719.235 +-426.143 62.5087 706.46 +-428.815 61.6751 697.039 +-464.951 65.5809 741.181 +-433.762 60.01 678.22 +-436.583 59.2527 669.662 +-439.507 58.5251 661.439 +-440.868 57.6076 651.069 +-443.609 56.8887 642.944 +-445.956 56.1338 634.412 +-448.245 55.3868 625.97 +-450.302 54.6264 617.376 +-452.839 53.9378 609.594 +-455.213 53.2426 601.737 +-457.667 52.5688 594.122 +-471.412 53.1802 601.032 +-475.726 52.7121 595.742 +-466.201 50.7415 573.47 +-468.281 50.0681 565.859 +-471.42 49.517 559.631 +-474.552 48.9716 553.467 +-476.955 48.3586 546.539 +-480.068 47.8248 540.506 +-483.179 47.2966 534.537 +-485.682 46.7153 527.966 +-488.515 46.1723 521.83 +-491.141 45.6158 515.541 +-494.388 45.1222 509.962 +-496.384 44.5202 503.158 +-499.288 44.0058 497.345 +-502.699 43.5399 492.079 +-504.905 42.974 485.684 +-2376.69 198.784 2246.61 +-381.474 31.353 354.346 +-382.352 30.8798 348.998 +-379.45 30.1128 340.328 +-380.919 29.703 335.697 +-140.829 10.7898 121.945 +-142.728 10.744 121.427 +-142.484 10.5375 119.093 +-142.056 10.321 116.646 +-141.596 10.106 114.216 +-141.809 9.94187 112.361 +-145.23 10.0006 113.024 +-150.499 10.1783 115.033 +-155.974 10.3591 117.077 +-156.591 10.2125 115.42 +-157.435 10.0814 113.938 +-158.997 9.99573 112.97 +-161.455 9.96409 112.612 +-380.417 23.0437 260.436 +-380.445 22.6172 255.615 +-381.419 22.2508 251.474 +-381.008 21.8078 246.467 +-381.044 21.3955 241.807 +-381.706 21.0222 237.589 +-382.835 20.6772 233.689 +-379.639 20.105 227.222 +-379.72 19.7138 222.802 +-380.185 19.3461 218.646 +-380.694 18.9835 214.548 +-379.935 18.5618 209.781 +-380.791 18.2226 205.948 +-380.639 17.838 201.601 +-380.173 17.4428 197.135 +-380.549 17.0897 193.144 +-380.437 16.7178 188.941 +-378.213 16.2584 183.749 +-379.447 15.9517 180.283 +-379.652 15.6034 176.346 +-379.181 15.2304 172.131 +-381.862 14.9847 169.354 +-380.58 14.585 164.837 +-379.616 14.2023 160.511 +-378.791 13.8287 156.289 +-379.775 13.5237 152.842 +-379.331 13.1697 148.841 +-378.94 12.8206 144.896 +-116.709 3.84594 43.466 +-113.797 3.65052 41.2574 +-111.232 3.47165 39.2359 +-109.964 3.33719 37.7162 +-109.437 3.22732 36.4745 +-108.611 3.11033 35.1524 +-108.914 3.02668 34.207 +-108.445 2.92219 33.026 +-108.826 2.84116 32.1102 +-108.623 2.74521 31.0258 +-110.047 2.68982 30.3998 +-110.502 2.60965 29.4937 +-109.497 2.49587 28.2078 +-109.837 2.41369 27.279 +-110.364 2.33528 26.3929 +-110.981 2.25824 25.5222 +-111.298 2.17471 24.5781 +-113.172 2.12018 23.9618 +-114.749 2.05765 23.2551 +-117.893 2.01977 22.827 +-124.185 2.02859 22.9267 +-159.243 2.4748 27.9696 +-160.37 2.36531 26.7323 +-162.771 2.27221 25.6801 +-162.99 2.14693 24.2642 +-854.403 10.5834 119.612 +-864.639 10.0328 113.389 +-379.847 4.11067 46.4579 +-379.743 3.81337 43.0979 +-900.44 8.34131 94.2718 +-404.529 3.43309 38.8001 +-403.957 3.11492 35.2042 +-402.954 2.79511 31.5898 +-402.517 2.48077 28.0372 +-403.147 2.17324 24.5615 +-146.399 0.676228 7.64259 +-149.158 0.573982 6.48703 +-3274.5 10.0783 113.903 +-3275.38 7.55942 85.435 +-146.378 0.225193 2.54509 +-145.994 0.112293 1.26911 +119.9 5.32907e-15 2.84217e-14 +120.295 0.101956 1.04484 +119.582 0.202719 2.07744 +120.459 0.306346 3.13941 +120.427 0.408426 4.18551 +120.285 0.51005 5.22694 +120.135 0.611467 6.26626 +120.275 0.714446 7.32157 +120.705 0.819741 8.40063 +119.929 0.916676 9.39401 +120.739 1.0259 10.5134 +120.642 1.12819 11.5616 +120.636 1.23141 12.6194 +120.918 1.338 13.7117 +120.892 1.44161 14.7735 +120.758 1.54402 15.8229 +120.219 1.64089 16.8157 +120.858 1.7542 17.9769 +120.202 1.84897 18.9481 +120.524 1.95879 20.0735 +120.442 2.06255 21.1368 +119.957 2.15923 22.1276 +120.642 2.27749 23.3395 +120.531 2.3816 24.4064 +120.997 2.49779 25.5971 +120.768 2.60024 26.647 +120.53 2.70249 27.6949 +120.379 2.80681 28.7639 +120.996 2.92988 30.0251 +120.728 3.03231 31.0748 +121.224 3.15462 32.3282 +121.032 3.25983 33.4064 +121.311 3.37835 34.621 +121.003 3.48103 35.6733 +121.738 3.61469 37.043 +121.313 3.71481 38.069 +121.64 3.83849 39.3365 +121.385 3.94451 40.423 +121.972 4.07886 41.7998 +121.695 4.18532 42.8908 +121.126 4.28165 43.878 +118.676 4.30932 44.1615 +115.391 4.30185 44.0849 +111.65 4.27133 43.7722 +108.944 4.27485 43.8082 +105.507 4.24436 43.4958 +102.912 4.24254 43.4772 +100.51 4.24441 43.4963 +97.7494 4.22672 43.3151 +96.4559 4.26914 43.7497 +96.7937 4.38355 44.9222 +97.0279 4.49469 46.0611 +97.2495 4.60656 47.2076 +98.3533 4.76247 48.8053 +97.1197 4.80596 49.2511 +96.5955 4.8836 50.0467 +96.8594 5.00176 51.2575 +96.4062 5.08366 52.0969 +96.7329 5.20754 53.3664 +96.9576 5.32759 54.5967 +96.4752 5.40956 55.4367 +96.761 5.53549 56.7272 +97.0313 5.6623 58.0267 +96.3483 5.73417 58.7632 +96.5927 5.86193 60.0725 +96.5683 5.97488 61.23 +96.1955 6.06707 62.1748 +96.4806 6.20197 63.5572 +96.4171 6.31609 64.7267 +96.5052 6.44158 66.0127 +95.9227 6.52312 66.8483 +96.147 6.66056 68.2568 +96.1112 6.78176 69.4988 +96.1413 6.90917 70.8045 +96.2356 7.04299 72.1759 +96.1544 7.16567 73.4331 +96.2949 7.30668 74.8781 +96.2608 7.43638 76.2073 +96.2107 7.56658 77.5416 +96.2987 7.70961 79.0073 +96.2152 7.84087 80.3524 +96.1153 7.97257 81.7021 +96.0745 8.11107 83.1215 +96.0161 8.25011 84.5463 +95.8657 8.38315 85.9098 +95.8461 8.5297 87.4115 +95.7342 8.67022 88.8516 +96.1846 8.86467 90.8443 +95.9599 8.99982 92.2293 +95.7895 9.14207 93.6871 +95.6715 9.29158 95.2192 +96.0947 9.497 97.3243 +95.3071 9.58507 98.2268 +95.5436 9.7782 100.206 +95.3434 9.9298 101.76 +95.6636 10.1391 103.904 +95.2842 10.2776 105.324 +95.6823 10.5034 107.638 +95.2598 10.6428 109.066 +95.274 10.8339 111.025 +95.2611 11.0258 112.991 +95.4117 11.241 115.197 +95.342 11.4347 117.181 +95.3692 11.6443 119.329 +94.9966 11.8088 121.015 +94.845 12.0044 123.02 +94.7859 12.2162 125.19 +94.8742 12.4522 127.609 +94.6922 12.6579 129.717 +95.1191 12.9511 132.722 +94.6975 13.1347 134.603 +94.5332 13.3585 136.897 +94.7832 13.6474 139.858 +94.5468 13.8731 142.17 +95.0395 14.2133 145.656 +94.6722 14.4326 147.903 +94.3786 14.6687 150.323 +94.1542 14.922 152.92 +94.664 15.3009 156.802 +94.3514 15.5563 159.42 +94.75 15.9385 163.336 +94.3976 16.2041 166.058 +94.7318 16.5978 170.093 +94.5252 16.9079 173.271 +94.2699 17.2189 176.458 +94.3814 17.6083 180.448 +94.1122 17.9386 183.833 +94.0139 18.3132 187.672 +93.9429 18.7064 191.701 +93.7223 19.0833 195.564 +94.2016 19.6197 201.061 +93.928 20.0169 205.132 +94.0375 20.5128 210.214 +93.6263 20.9124 214.308 +93.8927 21.4826 220.151 +93.9488 22.0279 225.74 +93.9888 22.5929 231.53 +93.9343 23.1597 237.339 +93.7491 23.719 243.07 +93.7855 24.3616 249.655 +93.3373 24.9056 255.23 +93.5661 25.6611 262.973 +93.2753 26.3088 269.61 +93.0972 27.0224 276.923 +92.7978 27.7376 284.252 +93.0083 28.6488 293.591 +92.7695 29.4695 302.001 +93.0434 30.5061 312.624 +92.752 31.4148 321.936 +92.6515 32.4468 332.512 +92.6313 33.5747 344.071 +92.5905 34.7709 356.329 +92.3416 35.9694 368.611 +108.622 43.9412 450.305 +104.422 43.9275 450.165 +100.32 43.9479 450.374 +96.0344 43.8792 449.67 +92.0282 43.9304 450.195 +91.0541 45.4939 466.218 +91.0995 47.7371 489.205 +90.6096 49.9072 511.444 +87.8879 51.0069 522.714 +87.9787 53.9476 552.85 +88.4935 57.5069 589.325 +87.9156 60.7534 622.595 +86.4867 63.8009 653.826 +89.9152 71.1208 728.839 +89.906 76.6366 785.365 +90.0931 83.2488 853.126 +88.3314 89.0934 913.02 +88.3846 98.1141 1005.46 +87.0896 107.471 1101.35 +85.8005 119.166 1221.2 +83.2458 132.186 1354.63 +171.468 317.757 3256.34 +142.91 317.89 3257.71 +114.341 317.999 3258.82 +28.6978 106.435 1090.74 +57.1793 318.144 3260.31 +28.5907 318.181 3260.69 +1.58762e-13 318.193 3260.81 +-28.5907 318.181 3260.69 +-57.1863 318.183 3260.71 +-85.7635 318.084 3259.7 +-114.341 317.999 3258.82 +-142.91 317.89 3257.71 +-171.468 317.757 3256.34 +-200.013 317.6 3254.73 +-228.571 317.457 3253.27 +-105.261 129.894 1331.14 +-120.554 133.825 1371.43 +-314.019 316.728 3245.8 +-146.58 135.445 1388.03 +-119.95 102.247 1047.81 +-129.108 102.121 1046.53 +-150.679 111.155 1139.11 +-456.028 315.135 3229.47 +-145.43 94.5064 968.493 +-112.727 69.1228 708.363 +-118.438 68.7373 704.413 +-124.957 68.8256 705.318 +-148.103 77.6074 795.313 +-625.224 312.385 3201.29 +-653.269 311.843 3195.74 +-681.264 311.278 3189.95 +-140.426 61.5176 630.427 +-144.261 60.6866 621.91 +-148.495 60.0709 615.601 +-176.216 68.6406 703.422 +-144.219 54.1591 555.017 +-143.722 52.0929 533.843 +-148.317 51.941 532.287 +-903.181 305.904 3134.88 +-109.971 36.0561 369.5 +-112.066 35.5994 364.819 +-115.321 35.5215 364.021 +-118.477 35.4132 362.911 +-122.131 35.4496 363.284 +-126.841 35.7763 366.633 +-1093.65 299.942 3073.78 +-1120.7 299.04 3064.53 +-1147.38 298.043 3054.31 +-1174.26 297.095 3044.6 +-493.017 121.555 1245.68 +-1227.4 295.042 3023.56 +-419.651 98.3948 1008.34 +-416.637 95.3262 976.894 +-159.978 35.7327 366.186 +-163.02 35.5603 364.418 +-166.582 35.5002 363.803 +-169.681 35.3402 362.163 +-143.317 29.1816 299.051 +-141.901 28.256 289.565 +-142.783 27.813 285.025 +-145.322 27.6996 283.863 +-148.729 27.7477 284.355 +-415.858 75.9587 778.418 +-418.087 74.7841 766.38 +-420.184 73.6199 754.45 +-422.204 72.4748 742.715 +-423.8 71.29 730.573 +-425.672 70.1833 719.232 +-426.091 68.8709 705.783 +-427.195 67.7039 693.824 +-465.64 72.3716 741.657 +-433.762 66.1258 677.651 +-436.746 65.3159 669.351 +-439.342 64.4654 660.635 +-441.706 63.5995 651.761 +-444.119 62.7584 643.142 +-446.472 61.9262 634.614 +-448.767 61.1026 626.174 +-450.831 60.2643 617.583 +-453.909 59.5754 610.523 +-455.574 58.7153 601.709 +-457.667 57.9263 593.623 +-469.627 58.3781 598.253 +-477.842 58.3427 597.89 +-466.012 55.8901 572.757 +-468.344 55.1782 565.461 +-471.87 54.6155 559.695 +-474.941 54.0068 553.456 +-477.152 53.309 546.305 +-480.068 52.6989 540.053 +-482.778 52.0735 533.644 +-485.682 51.4762 527.523 +-488.243 50.8495 521.101 +-491.554 50.307 515.541 +-494.388 49.7208 509.534 +-497.646 49.1822 504.014 +-499.924 48.5524 497.561 +-502.699 47.9772 491.666 +-382.689 35.8913 367.811 +-382.055 35.2113 360.842 +-381.767 34.5749 354.32 +-384.711 34.2369 350.857 +-382.497 33.4482 342.774 +-381.518 32.7817 335.943 +-140.074 11.8258 121.189 +-142.5 11.8201 121.132 +-142.484 11.6114 118.993 +-141.747 11.3482 116.296 +-141.829 11.1543 114.308 +-141.809 10.9551 112.267 +-145.388 11.0318 113.053 +-150.896 11.2451 115.239 +-155.734 11.3974 116.799 +-156.27 11.2303 115.087 +-157.03 11.0803 113.55 +-159.729 11.0652 113.395 +-161.291 10.9684 112.403 +-381.653 25.4748 261.063 +-380.445 24.9223 255.401 +-382.754 24.6042 252.141 +-379.415 23.9298 245.23 +-381.044 23.576 241.604 +-383.911 23.2984 238.76 +-380.533 22.6474 232.089 +-378.868 22.109 226.571 +-380.151 21.7476 222.867 +-379.406 21.2741 218.014 +-379.562 20.8561 213.731 +-380.285 20.4723 209.799 +-379.649 20.0196 205.159 +-380.815 19.6651 201.526 +-378.931 19.1577 196.327 +-378.767 18.7432 192.079 +-379.721 18.3869 188.427 +-378.302 17.9195 183.638 +-379.988 17.6024 180.388 +-378.112 17.1237 175.483 +-380.364 16.8349 172.523 +-380.583 16.4565 168.645 +-378.838 15.9978 163.944 +-379.984 15.6648 160.532 +-379.714 15.2753 156.539 +-380.145 14.9165 152.863 +-379.331 14.5119 148.717 +-379.407 14.1446 144.953 +-115.679 4.20048 43.0461 +-113.233 4.00263 41.0186 +-111.42 3.83195 39.2695 +-110.058 3.68046 37.717 +-109.342 3.55314 36.4123 +-108.611 3.42732 35.1229 +-108.914 3.33515 34.1783 +-108.636 3.22567 33.0564 +-108.251 3.11417 31.9137 +-109.68 3.05443 31.3015 +-111.107 2.99251 30.6669 +-110.212 2.86807 29.3917 +-109.304 2.74537 28.1343 +-110.711 2.68082 27.4728 +-110.461 2.57555 26.394 +-111.76 2.50587 25.6799 +-112.176 2.41526 24.7513 +-113.172 2.33625 23.9417 +-114.651 2.26541 23.2157 +-116.814 2.20523 22.599 +-125.463 2.25835 23.1434 +-158.554 2.71521 27.8252 +-158.2 2.57111 26.3485 +-160.401 2.46732 25.2849 +-163.88 2.37865 24.3762 +-855.295 11.6742 119.636 +-864.342 11.0515 113.255 +-379.153 4.52132 46.334 +-379.942 4.2042 43.0843 +-900.042 9.18735 94.1511 +-403.633 3.7746 38.6818 +-404.854 3.43999 35.2527 +-403.652 3.08531 31.6179 +-403.914 2.74309 28.1109 +-402.548 2.39117 24.5045 +-145.5 0.740571 7.5893 +-145.861 0.6185 6.33832 +-404.154 1.37069 14.0467 +-146.85 0.373463 3.82721 +-145.478 0.246619 2.52733 +-146.294 0.123992 1.27065 +119.8 1.77636e-15 -1.13687e-13 +119.495 0.110637 1.03693 +119.682 0.221636 2.07726 +120.459 0.334656 3.13652 +120.327 0.445798 4.17818 +120.385 0.557647 5.22647 +120.135 0.667972 6.26049 +120.275 0.780467 7.31483 +120.705 0.895492 8.39289 +120.826 1.00888 9.45557 +120.739 1.12071 10.5037 +120.443 1.23041 11.5318 +120.536 1.34409 12.5973 +120.023 1.45083 13.5977 +120.892 1.57483 14.7599 +120.758 1.6867 15.8084 +120.912 1.80286 16.8971 +120.759 1.91474 17.9456 +120.3 2.02149 18.9462 +120.524 2.1398 20.055 +120.442 2.25315 21.1173 +120.842 2.37616 22.2703 +120.74 2.48998 23.337 +120.531 2.60168 24.3839 +120.312 2.71316 25.4288 +120.768 2.84053 26.6225 +120.724 2.957 27.7141 +120.379 3.06618 28.7374 +120.996 3.20062 29.9974 +120.631 3.30986 31.0212 +121.224 3.44614 32.2985 +121.032 3.56107 33.3757 +121.407 3.69346 34.6165 +121.003 3.80271 35.6404 +120.877 3.9208 36.7472 +121.217 4.05489 38.004 +121.64 4.1932 39.3002 +121.385 4.30902 40.3858 +121.215 4.42814 41.5022 +121.789 4.57562 42.8844 +121.972 4.70997 44.1436 +119.145 4.72612 44.295 +115.391 4.69937 44.0443 +111.65 4.66604 43.7319 +108.944 4.66988 43.7679 +105.692 4.6447 43.5319 +103.004 4.63874 43.476 +100.51 4.63663 43.4562 +97.7494 4.61731 43.2752 +96.1829 4.65044 43.5857 +96.7937 4.78863 44.8809 +97.2084 4.91917 46.1043 +97.3394 5.03689 47.2077 +97.9058 5.17889 48.5385 +97.6543 5.27898 49.4766 +96.5955 5.33489 50.0006 +96.8594 5.46396 51.2103 +96.4941 5.55849 52.0963 +96.7329 5.68877 53.3173 +96.9576 5.81991 54.5464 +96.4752 5.90945 55.3856 +96.6748 6.04163 56.6244 +96.9456 6.18008 57.922 +96.3483 6.26405 58.7091 +96.5927 6.40362 60.0171 +96.0623 6.4928 60.853 +96.0278 6.61617 62.0092 +96.3138 6.76338 63.3889 +96.4171 6.89975 64.6671 +96.5876 7.04284 66.0081 +96.0046 7.132 66.8438 +96.0656 7.26989 68.1362 +96.1921 7.41469 69.4933 +96.2217 7.55395 70.7985 +96.3154 7.70021 72.1693 +96.2338 7.8343 73.426 +96.2949 7.98188 74.8092 +96.3391 8.13018 76.1991 +95.589 8.21238 76.9695 +96.2987 8.42204 78.9346 +96.2152 8.56543 80.2784 +96.1914 8.7162 81.6915 +96.15 8.86757 83.1102 +96.0161 9.01249 84.4685 +95.94 9.16494 85.8973 +96.5096 9.38243 87.9357 +96.3924 9.53654 89.3801 +95.5318 9.61812 90.1446 +96.0319 9.83886 92.2135 +95.8609 9.99432 93.6705 +95.6715 10.1502 95.1315 +96.0947 10.3746 97.2347 +95.9323 10.5395 98.7801 +95.5436 10.6818 100.114 +95.9572 10.9172 102.32 +95.6636 11.076 103.809 +95.7526 11.2825 105.744 +95.4835 11.4502 107.316 +95.1286 11.6102 108.815 +95.274 11.835 110.922 +95.3254 12.0527 112.963 +95.3481 12.2716 115.014 +95.4679 12.5078 117.228 +94.9957 12.6704 118.752 +94.7503 12.8666 120.591 +94.845 13.1137 122.906 +95.3275 13.4214 125.79 +94.7553 13.5858 127.331 +94.8098 13.8447 129.758 +94.5965 14.0701 131.871 +95.2137 14.4266 135.212 +94.9297 14.6542 137.344 +94.6714 14.891 139.564 +94.6572 15.1727 142.204 +94.8761 15.5 145.271 +94.6722 15.7663 147.767 +94.3786 16.0242 150.185 +94.4677 16.3552 153.287 +94.767 16.7331 156.829 +94.1991 16.9664 159.015 +94.3 17.3286 162.41 +94.2991 17.6831 165.732 +94.2955 18.0481 169.154 +94.5252 18.4704 173.111 +94.2699 18.8101 176.295 +94.3814 19.2354 180.282 +94.0668 19.5868 183.575 +93.9693 19.9959 187.409 +93.8553 20.4159 191.346 +94.1097 20.9329 196.191 +93.8635 21.3558 200.155 +93.928 21.8667 204.943 +93.6308 22.3114 209.111 +93.6662 22.8545 214.201 +93.9318 23.4775 220.04 +94.0253 24.0831 225.716 +93.6516 24.5922 230.488 +93.9343 25.2999 237.12 +93.7491 25.9109 242.847 +93.5754 26.5532 248.866 +93.6109 27.2868 255.742 +93.2656 27.9425 261.888 +93.1776 28.7099 269.08 +92.9703 29.4793 276.291 +92.8287 30.3108 284.085 +92.858 31.2456 292.846 +92.8573 32.2232 302.008 +92.7878 33.2336 311.478 +92.7244 34.3075 321.543 +92.5714 35.4145 331.918 +92.6313 36.6773 343.754 +92.3401 37.8813 355.038 +92.4142 39.3242 368.561 +108.786 48.0739 450.567 +104.602 48.0694 450.525 +100.45 48.0712 450.542 +96.3879 48.1105 450.91 +92.088 48.0212 450.072 +91.2449 49.8022 466.765 +90.972 52.0755 488.071 +90.4881 54.4458 510.287 +87.8879 55.7204 522.233 +88.0726 58.9958 552.931 +87.8579 62.3698 584.553 +88.1105 66.5147 623.401 +86.4475 69.6652 652.928 +89.1718 77.0506 722.147 +90.2682 84.0558 787.802 +90.1976 91.0473 853.33 +88.1589 97.1363 910.398 +87.7223 106.378 997.011 +86.7365 116.926 1095.87 +85.654 129.956 1218 +200.013 346.949 3251.73 +171.468 347.121 3253.34 +142.91 347.266 3254.71 +114.341 347.385 3255.82 +28.7711 116.568 1092.52 +57.1793 347.544 3257.31 +10.9902 133.61 1252.24 +1.55764e-13 347.597 3257.81 +-28.5907 347.584 3257.69 +-57.1793 347.544 3257.31 +-85.7635 347.478 3256.7 +-114.341 347.385 3255.82 +-54.799 133.159 1248.02 +-171.468 347.121 3253.34 +-200.013 346.949 3251.73 +-90.5858 137.439 1288.13 +-257.056 346.525 3247.77 +-285.548 346.274 3245.41 +-314.019 345.997 3242.81 +-136.755 138.043 1293.79 +-120.086 111.821 1048.03 +-129.401 111.812 1047.94 +-150.888 121.596 1139.64 +-456.028 344.256 3226.5 +-145.637 103.386 968.977 +-112.727 75.5103 707.711 +-118.735 75.2775 705.529 +-125.061 75.2484 705.256 +-148.486 84.9981 796.634 +-625.224 341.252 3198.35 +-653.269 340.66 3192.8 +-681.264 340.043 3187.01 +-140.686 67.3266 631.01 +-144.374 66.3462 621.822 +-148.821 65.7664 616.387 +-176.385 75.0557 703.45 +-144.469 59.2665 555.468 +-143.878 56.9682 533.927 +-148.718 56.8942 533.233 +-903.181 334.173 3131.99 +-110.255 39.4898 370.113 +-112.358 38.9905 365.434 +-115.531 38.8749 364.35 +-118.724 38.7664 363.334 +-122.384 38.8059 363.704 +-127.134 39.1727 367.141 +-1093.78 327.699 3071.32 +-134.961 39.3401 368.71 +-134.305 38.1106 357.187 +-1174.12 324.51 3041.43 +-1200.77 323.411 3031.13 +-417.986 109.76 1028.71 +-420.072 107.595 1008.42 +-417.027 104.233 976.91 +-159.938 39.025 365.757 +-163.183 38.8851 364.445 +-166.707 38.8097 363.739 +-169.893 38.654 362.28 +-143.059 31.8208 298.236 +-142.032 30.8956 289.565 +-143.051 30.4402 285.297 +-145.913 30.3821 284.753 +-413.404 84.2539 789.659 +-415.952 82.9968 777.877 +-418.945 81.8625 767.246 +-420.912 80.5622 755.059 +-422.056 79.1445 741.772 +-424 77.9146 730.245 +-426.332 76.7877 719.683 +-426.606 75.3261 705.985 +-426.411 73.8247 691.913 +-452.551 76.837 720.145 +-434.568 72.3707 678.285 +-436.909 71.3784 668.985 +-439.894 70.511 660.856 +-442.042 69.5294 651.655 +-444.629 68.6366 643.288 +-447.045 67.7356 634.844 +-449.116 66.8009 626.083 +-451.184 65.8847 617.496 +-454.088 65.1063 610.201 +-456.055 64.2089 601.79 +-458.215 63.355 593.787 +-466.425 63.338 593.628 +-478.776 63.8586 598.507 +-466.326 61.096 572.615 +-469.235 60.3918 566.014 +-472.063 59.6869 559.408 +-475.136 59.0217 553.173 +-477.545 58.2832 546.252 +-480.665 57.6402 540.226 +-483.781 57.0039 534.262 +-486.965 56.3817 528.431 +-488.72 55.6028 521.13 +-491.829 54.9866 515.355 +-495.014 54.3842 509.709 +-497.646 53.727 503.55 +-500.278 53.0767 497.454 +-502.984 52.4404 491.491 +-2356.92 241.476 2263.2 +-383.288 38.5894 361.674 +-381.986 37.7917 354.198 +-382.057 37.1427 348.115 +-381.456 36.4397 341.527 +-380.844 35.7476 335.04 +-139.999 12.9116 121.012 +-142.272 12.8917 120.826 +-142.791 12.7118 119.14 +-141.516 12.3766 115.999 +-141.285 12.1383 113.764 +-141.965 11.9806 112.287 +-145.388 12.0513 112.949 +-151.61 12.3424 115.677 +-155.974 12.4697 116.871 +-156.35 12.2744 115.04 +-157.516 12.1416 113.796 +-159.485 12.0693 113.118 +-160.39 11.915 111.672 +-383.466 27.9611 262.062 +-381.689 27.3142 255.999 +-380.585 26.7256 250.482 +-382.266 26.3375 246.845 +-381.55 25.7888 241.702 +-383.148 25.4009 238.067 +-382.068 24.8401 232.811 +-379.897 24.2176 226.977 +-378.945 23.6818 221.955 +-379.839 23.2665 218.062 +-380.868 22.8617 214.269 +-380.722 22.3899 209.847 +-380.528 21.9202 205.444 +-380.286 21.4524 201.06 +-380.794 21.031 197.11 +-379.747 20.5283 192.399 +-379.094 20.0528 187.942 +-378.302 19.5755 183.469 +-380.53 19.2564 180.479 +-381.284 18.8631 176.793 +-378.089 18.2806 171.333 +-380.4 17.9687 168.409 +-380.855 17.5692 164.665 +-379.156 17.075 160.034 +-378.791 16.6462 156.014 +-378.94 16.2433 152.238 +-379.703 15.8684 148.725 +-380.621 15.5011 145.282 +-114.742 4.55149 42.6583 +-113.327 4.37614 41.0148 +-110.572 4.15418 38.9345 +-110.342 4.03093 37.7794 +-108.773 3.86128 36.1894 +-109.276 3.767 35.3057 +-108.533 3.63058 34.0272 +-108.445 3.51756 32.9679 +-108.73 3.41701 32.0255 +-109.968 3.34546 31.3549 +-111.107 3.26904 30.6387 +-110.985 3.15507 29.5705 +-110.272 3.02563 28.3573 +-110.711 2.92855 27.4475 +-110.267 2.8086 26.3233 +-111.468 2.73027 25.5892 +-112.176 2.63845 24.7285 +-113.172 2.55214 23.9196 +-114.455 2.47053 23.1548 +-117.599 2.4252 22.7299 +-125.07 2.45931 23.0496 +-159.539 2.98454 27.9722 +-159.976 2.84022 26.6196 +-161.586 2.71524 25.4483 +-163.385 2.59062 24.2803 +-855.592 12.7574 119.567 +-865.531 12.0893 113.306 +-379.748 4.94688 46.364 +-380.24 4.59631 43.0784 +-899.744 10.033 94.0332 +-403.633 4.12341 38.6461 +-403.359 3.74401 35.0902 +-403.951 3.37291 31.6122 +-404.412 3.00027 28.1197 +-403.147 2.61602 24.5183 +-143.703 0.799011 7.48863 +-143.663 0.665474 6.23707 +-404.154 1.49735 14.0337 +-147.449 0.409641 3.83931 +-145.378 0.269223 2.52326 +-145.994 0.135172 1.26688 +119.8 1.77636e-15 -1.13687e-13 +120.295 0.12079 1.04283 +120.482 0.241973 2.08904 +120.359 0.362636 3.13077 +120.427 0.483874 4.17746 +120.385 0.604774 5.22123 +120.235 0.725024 6.2594 +120.275 0.846425 7.30749 +119.807 0.963947 8.32211 +119.73 1.08421 9.36036 +119.842 1.20639 10.4152 +120.343 1.3333 11.5108 +120.636 1.45889 12.5951 +120.123 1.57475 13.5954 +120.892 1.70792 14.7451 +120.758 1.82924 15.7925 +120.912 1.95522 16.8801 +119.968 2.06295 17.8102 +121.189 2.20853 19.067 +120.524 2.32063 20.0348 +120.442 2.44356 21.0962 +119.957 2.5581 22.085 +120.642 2.69821 23.2947 +120.433 2.81924 24.3396 +120.312 2.94245 25.4033 +120.768 3.08058 26.5958 +120.627 3.20431 27.6639 +120.282 3.32262 28.6854 +120.996 3.47111 29.9673 +121.406 3.61263 31.1892 +120.837 3.72546 32.1633 +121.032 3.86201 33.3422 +121.311 4.00242 34.5544 +121.099 4.12734 35.6329 +120.877 4.25215 36.7104 +121.122 4.39411 37.936 +121.355 4.5369 39.1687 +121.385 4.67318 40.3453 +121.121 4.79863 41.4283 +121.789 4.9623 42.8414 +121.126 5.0726 43.7936 +119.707 5.1497 44.4592 +115.391 5.09652 44.0001 +112.487 5.09833 44.0157 +108.944 5.06453 43.724 +106.339 5.06805 43.7544 +102.912 5.02626 43.3936 +100.418 5.02388 43.373 +98.6629 5.05433 43.6359 +96.8199 5.07686 43.8304 +96.6124 5.1836 44.7519 +97.0279 5.32498 45.9725 +96.6204 5.42221 46.8119 +98.4428 5.64737 48.7558 +97.5652 5.71988 49.3818 +96.5955 5.78574 49.9504 +96.8594 5.92573 51.159 +96.4062 6.02276 51.9967 +96.6455 6.16396 53.2157 +96.9576 6.31175 54.4917 +96.4752 6.40887 55.3301 +96.6748 6.55221 56.5676 +96.9456 6.70236 57.8639 +96.4336 6.79945 58.7021 +96.4231 6.9326 59.8516 +96.737 7.09098 61.219 +96.8665 7.23797 62.488 +96.4806 7.34765 63.435 +96.4171 7.48285 64.6022 +96.5876 7.63803 65.9419 +96.0046 7.73473 66.7767 +95.9842 7.8776 68.0102 +96.1112 8.03454 69.3651 +96.1413 8.18549 70.6683 +96.3154 8.35096 72.0969 +96.2338 8.49638 73.3524 +96.2161 8.64936 74.673 +96.2608 8.8101 76.0608 +96.133 8.9571 77.3299 +96.2987 9.1338 78.8554 +96.2152 9.2893 80.1979 +96.1153 9.44533 81.545 +96.0745 9.60942 82.9616 +96.0161 9.77414 84.3837 +95.94 9.93947 85.8111 +95.8461 10.1054 87.2434 +95.7342 10.2719 88.6807 +96.1121 10.4943 90.6012 +96.0319 10.6703 92.121 +95.7895 10.8309 93.5069 +95.7423 11.0161 95.1064 +96.0246 11.2432 97.0663 +95.9323 11.4302 98.681 +95.6125 11.5929 100.086 +95.9572 11.8398 102.218 +95.6636 12.0121 103.705 +95.9533 12.2616 105.859 +95.4835 12.4179 107.208 +95.719 12.6695 109.381 +95.2091 12.8265 110.736 +95.1968 13.0537 112.698 +95.2845 13.2997 114.821 +95.405 13.5558 117.033 +95.4937 13.8132 119.255 +94.935 13.9811 120.704 +94.845 14.2219 122.783 +94.7859 14.4729 124.95 +94.7553 14.7339 127.204 +94.6334 14.9868 129.387 +94.6546 15.2686 131.82 +95.1563 15.6364 134.994 +94.5332 15.8262 136.633 +94.8391 16.1781 139.671 +94.5468 16.4358 141.896 +94.4404 16.7327 144.459 +94.7259 17.1083 147.702 +94.4316 17.3882 150.118 +94.52 17.7473 153.219 +94.3035 18.0584 155.905 +94.3006 18.4201 159.028 +94.3 18.793 162.247 +94.3976 19.1975 165.739 +94.247 19.5633 168.897 +94.4297 20.0111 172.763 +94.2699 20.3998 176.118 +94.3814 20.861 180.101 +94.0214 21.2318 183.301 +93.9693 21.6858 187.221 +94.2936 22.2447 192.047 +94.0236 22.6813 195.816 +93.8635 23.1606 199.954 +93.8866 23.7042 204.647 +93.9562 24.2811 209.627 +94.025 24.881 214.807 +93.8927 25.451 219.728 +93.9871 26.1078 225.398 +93.6516 26.6705 230.257 +93.9343 27.438 236.882 +93.7849 28.1113 242.695 +93.6104 28.8079 248.709 +93.3373 29.5063 254.739 +93.4993 30.3799 262.28 +93.1776 31.1362 268.81 +93.002 31.9815 276.108 +92.8287 32.8724 283.8 +92.7978 33.8642 292.362 +92.7695 34.9134 301.42 +92.731 36.0202 310.976 +92.5039 37.1184 320.456 +92.5179 38.3852 331.393 +92.5537 39.7436 343.121 +92.3151 41.0715 354.585 +92.1481 42.5247 367.131 +108.786 52.1366 450.115 +104.782 52.2216 450.848 +100.623 52.2236 450.866 +96.3879 52.1763 450.457 +92.3672 52.2373 450.984 +91.2449 54.011 466.296 +90.808 56.3745 486.702 +90.4881 59.0471 509.775 +87.9374 60.4634 522.003 +87.7128 63.7201 550.119 +87.3406 67.2423 580.528 +88.3888 72.3637 624.742 +86.3822 75.4955 651.78 +88.7574 83.1738 718.07 +90.0758 90.965 785.334 +90.3962 98.9592 854.351 +88.0631 105.231 908.496 +87.5654 115.162 994.233 +85.6616 125.235 1081.2 +85.2215 140.226 1210.63 +73.301 137.895 1190.5 +171.468 376.456 3250.08 +49.3292 129.998 1122.32 +38.557 127.042 1096.8 +31.1296 136.783 1180.89 +21.3844 140.962 1216.97 +10.3898 136.985 1182.64 +5.93969e-14 140.753 1215.18 +-10.368 136.698 1180.16 +-21.3356 140.64 1214.19 +-31.0642 136.495 1178.41 +-42.6367 140.484 1212.85 +-51.7239 136.309 1176.8 +-63.9022 140.297 1211.23 +-72.4158 136.23 1176.13 +-85.0192 139.894 1207.76 +-93.0682 136.064 1174.69 +-106.443 139.988 1208.57 +-314.019 375.237 3239.56 +-342.467 374.907 3236.71 +-120.29 121.477 1048.76 +-129.596 121.443 1048.46 +-150.118 131.199 1132.69 +-456.028 373.349 3223.26 +-145.77 112.226 968.889 +-113.071 82.1417 709.16 +-118.95 81.7868 706.095 +-125.218 81.7096 705.429 +-148.795 92.3737 797.496 +-625.224 370.092 3195.14 +-653.269 369.45 3189.59 +-681.264 368.78 3183.81 +-141.119 73.2411 632.317 +-144.509 72.0203 621.778 +-149.195 71.5034 617.315 +-176.772 81.5773 704.286 +-144.695 64.3755 555.777 +-143.929 61.8048 533.584 +-148.959 61.8022 533.561 +-903.181 362.414 3128.85 +-110.34 42.8601 370.027 +-112.563 42.3626 365.732 +-115.772 42.248 364.742 +-118.941 42.1192 363.631 +-122.607 42.1618 363.998 +-127.395 42.5702 367.524 +-1093.78 355.393 3068.24 +-1120.7 354.281 3058.64 +-1147.52 353.142 3048.81 +-134.782 40.4 348.788 +-135.019 39.4388 340.49 +-385.695 109.84 948.288 +-420.607 116.837 1008.7 +-159.496 43.234 373.254 +-160.815 42.5551 367.394 +-162.776 42.0662 363.173 +-411.583 103.915 897.139 +-170.315 42.0249 362.816 +-141.81 34.2088 295.337 +-142.032 33.5066 289.275 +-143.453 33.1053 285.81 +-146.23 33.0215 285.087 +-414.142 91.5375 790.276 +-416.093 90.0412 777.359 +-418.898 88.7707 766.39 +-420.766 87.3403 754.041 +-422.598 85.9431 741.978 +-424.45 84.5889 730.286 +-425.977 83.2077 718.362 +-427.07 81.7807 706.042 +-426.307 80.044 691.049 +-444.92 81.9254 707.292 +-435.051 78.5741 678.359 +-437.617 77.536 669.396 +-440.722 76.6139 661.436 +-442.378 75.4626 651.496 +-444.855 74.475 642.97 +-447.045 73.46 634.207 +-449.464 72.5024 625.94 +-451.889 71.5644 617.841 +-454.623 70.6917 610.308 +-456.597 69.718 601.901 +-458.458 68.7456 593.506 +-464.147 68.3552 590.135 +-479.336 69.3363 598.606 +-466.326 66.2593 572.04 +-469.489 65.5311 565.753 +-472.642 64.8103 559.531 +-475.721 64.0883 553.298 +-477.742 63.2349 545.93 +-480.93 62.5459 539.982 +-483.781 61.8213 533.726 +-487.236 61.1804 528.193 +-488.925 60.327 520.825 +-492.174 59.6753 515.198 +-495.014 58.9802 509.198 +-497.856 58.2921 503.257 +-500.561 57.5948 497.237 +-503.127 56.8883 491.137 +-383.336 42.5934 367.724 +-381.112 41.6129 359.259 +-381.255 40.907 353.165 +-382.352 40.3127 348.034 +-382.125 39.5885 341.782 +-380.395 38.723 334.31 +-140.678 14.0706 121.477 +-142.12 13.9663 120.576 +-142.101 13.7195 118.445 +-141.516 13.4226 115.882 +-141.985 13.2293 114.213 +-141.887 12.9859 112.112 +-145.624 13.0909 113.018 +-152.8 13.4905 116.468 +-155.734 13.5028 116.575 +-156.993 13.3665 115.397 +-157.516 13.1677 113.682 +-159.729 13.1093 113.177 +-161.373 13.0013 112.245 +-380.417 30.0829 259.717 +-383.513 29.7642 256.965 +-383.171 29.181 251.931 +-381.595 28.5132 246.165 +-382.562 28.0424 242.1 +-382.894 27.5292 237.67 +-380.874 26.8551 231.85 +-381.439 26.3709 227.67 +-381.357 25.8467 223.144 +-381.311 25.3306 218.688 +-380.868 24.7938 214.054 +-379.585 24.2095 209.01 +-380.879 23.7946 205.428 +-381.168 23.3194 201.325 +-381.06 22.8242 197.05 +-378.232 22.1743 191.439 +-380.258 21.8142 188.33 +-378.213 21.2249 183.242 +-380.169 20.864 180.127 +-380.196 20.3988 176.111 +-380.546 19.9544 172.273 +-379.395 19.4358 167.796 +-379.479 18.9852 163.906 +-379.156 18.5181 159.873 +-378.421 18.0354 155.706 +-379.311 17.6332 152.234 +-379.331 17.1927 148.431 +-378.007 16.6956 144.139 +-114.18 4.91196 42.4068 +-113.327 4.74597 40.9737 +-110.666 4.50909 38.9286 +-110.153 4.36409 37.6768 +-108.678 4.18395 36.1216 +-108.42 4.05334 34.9939 +-108.914 3.95124 34.1125 +-108.541 3.81819 32.9638 +-108.347 3.69271 31.8805 +-109.584 3.61551 31.214 +-110.721 3.53301 30.5018 +-110.309 3.40085 29.3608 +-109.304 3.25252 28.0802 +-109.837 3.151 27.2037 +-110.753 3.05939 26.4128 +-111.273 2.95583 25.5188 +-111.981 2.85644 24.6607 +-113.172 2.76782 23.8956 +-115.337 2.69996 23.3098 +-117.304 2.62357 22.6503 +-126.84 2.70489 23.3523 +-159.539 3.23676 27.9442 +-160.962 3.09924 26.7569 +-161.586 2.94471 25.4227 +-163.88 2.81806 24.3293 +-855.592 13.8356 119.447 +-866.424 13.1246 113.309 +-379.252 5.35794 46.257 +-380.24 4.98475 43.0352 +-900.738 10.8929 94.0426 +-403.633 4.47188 38.6074 +-403.359 4.06041 35.055 +-403.652 3.65525 31.5571 +-403.914 3.24981 28.0568 +-403.746 2.84131 24.5301 +-145.5 0.877376 7.57471 +-403.815 2.02863 17.5139 +-403.254 1.62027 13.9884 +-146.65 0.44185 3.81466 +-145.378 0.291975 2.52073 +-147.294 0.147901 1.27688 +119.8 1.77636e-15 -1.13687e-13 +120.395 0.130301 1.04256 +119.682 0.259078 2.07292 +120.559 0.391515 3.13257 +120.427 0.52154 4.17292 +120.485 0.652392 5.21989 +120.235 0.781463 6.2526 +121.174 0.919127 7.35408 +120.705 1.04677 8.37537 +120.826 1.17931 9.43583 +120.739 1.31003 10.4818 +120.443 1.43826 11.5078 +120.636 1.57245 12.5814 +120.222 1.69874 13.5919 +120.793 1.83936 14.717 +120.758 1.97164 15.7754 +120.912 2.10742 16.8618 +120.858 2.24003 17.9229 +120.3 2.36299 18.9066 +120.623 2.50332 20.0295 +120.344 2.63162 21.056 +120.154 2.76176 22.0973 +120.642 2.90825 23.2694 +120.531 3.04119 24.333 +120.312 3.1715 25.3757 +120.768 3.32039 26.5669 +120.627 3.45374 27.6339 +120.282 3.58127 28.6543 +121.093 3.74431 29.9588 +121.406 3.89385 31.1553 +120.837 4.01546 32.1283 +121.032 4.16265 33.306 +121.407 4.31741 34.5442 +121.099 4.44863 35.5942 +120.781 4.57952 36.6414 +121.122 4.73616 37.8948 +121.45 4.8939 39.1569 +121.48 5.04089 40.3329 +121.121 5.17217 41.3833 +121.789 5.34859 42.7949 +121.126 5.46747 43.7461 +119.894 5.55925 44.4804 +115.484 5.49769 43.9879 +112.581 5.49974 44.0042 +108.944 5.45878 43.6765 +106.339 5.46257 43.7069 +102.912 5.41753 43.3465 +100.418 5.41496 43.3259 +98.6629 5.44778 43.5885 +96.5469 5.45663 43.6593 +96.7937 5.59759 44.7872 +97.0279 5.7395 45.9226 +96.6204 5.8443 46.7611 +97.9953 6.05932 48.4815 +97.2979 6.14825 49.1931 +96.7729 6.24759 49.9879 +96.8594 6.38701 51.1034 +96.4941 6.49751 51.9875 +96.6455 6.64378 53.1579 +97.1317 6.8153 54.5303 +96.5618 6.91396 55.3196 +96.761 7.06855 56.5566 +96.9456 7.2241 57.8011 +96.4336 7.32874 58.6384 +96.5927 7.4854 59.8918 +96.0623 7.58965 60.726 +96.0278 7.73386 61.8798 +96.4806 7.91962 63.3661 +96.4171 8.06534 64.532 +96.5876 8.2326 65.8703 +95.9227 8.32971 66.6473 +96.147 8.50522 68.0516 +96.1112 8.65998 69.2898 +96.2217 8.83006 70.6506 +96.3154 9.00103 72.0186 +96.3131 9.16531 73.3331 +96.2949 9.33028 74.653 +96.3391 9.50363 76.04 +96.2107 9.66216 77.3084 +96.2987 9.8448 78.7698 +96.2152 10.0124 80.1108 +96.1914 10.1887 81.521 +96.0745 10.3575 82.8716 +96.0161 10.535 84.2921 +95.94 10.7132 85.7179 +95.8461 10.892 87.1487 +96.3193 11.1391 89.1258 +96.1846 11.3198 90.5712 +96.0319 11.501 92.021 +95.8609 11.6827 93.475 +95.6715 11.8649 94.9329 +96.0246 12.1184 96.9609 +95.8629 12.311 98.5026 +95.6125 12.4953 99.9772 +96.0254 12.7707 102.18 +95.6636 12.9471 103.592 +95.8864 13.207 105.671 +95.6161 13.403 107.24 +95.719 13.6558 109.262 +95.274 13.8344 110.691 +95.7754 14.1554 113.26 +95.2845 14.335 114.697 +95.4679 14.6208 116.983 +95.4315 14.8788 119.048 +94.935 15.0694 120.573 +94.7842 15.3192 122.571 +94.846 15.6094 124.893 +95.4096 15.9906 127.944 +95.2212 16.2538 130.049 +95.1191 16.5379 132.323 +95.0416 16.8332 134.685 +94.8164 17.1093 136.894 +94.7832 17.4271 139.437 +94.602 17.7255 141.825 +94.985 18.1392 145.135 +94.7797 18.4505 147.625 +94.4316 18.7417 149.955 +94.52 19.1288 153.052 +94.3035 19.4641 155.735 +94.3006 19.854 158.855 +94.3 20.256 162.071 +94.2991 20.6703 165.386 +94.2955 21.0971 168.801 +94.0957 21.4925 171.965 +94.2699 21.9877 175.927 +94.3814 22.4849 179.905 +94.43 22.984 183.898 +93.9693 23.3739 187.018 +93.8991 23.876 191.036 +94.0236 24.4469 195.603 +93.8635 24.9635 199.737 +93.8866 25.5494 204.425 +93.9968 26.1825 209.49 +94.0649 26.8291 214.664 +93.8927 27.4322 219.489 +93.9488 28.1286 225.061 +93.6891 28.7582 230.099 +93.9709 29.5854 236.717 +93.7849 30.2996 242.432 +93.8556 31.1318 249.09 +93.2689 31.7799 254.276 +93.1989 32.6396 261.154 +93.1776 33.5599 268.518 +92.8433 34.4123 275.338 +92.8287 35.4313 283.491 +92.8279 36.5121 292.139 +92.5941 37.5601 300.524 +92.589 38.7647 310.162 +92.4488 39.984 319.918 +92.5714 41.3972 331.225 +92.5796 42.8494 342.845 +92.3151 44.2687 354.2 +92.1722 45.847 366.829 +108.949 56.2796 450.302 +104.76 56.2745 450.261 +100.861 56.4221 451.442 +96.5542 56.335 450.745 +92.407 56.328 450.689 +91.1495 58.1545 465.303 +90.9355 60.8483 486.856 +90.3839 63.5702 508.635 +88.2345 65.3903 523.198 +87.5407 68.5455 548.443 +87.1928 72.3541 578.916 +88.5558 78.1442 625.244 +86.2648 81.2617 650.188 +87.7825 88.6637 709.412 +89.9286 97.8859 783.2 +90.4903 106.774 854.311 +87.9576 113.287 906.423 +87.609 124.187 993.64 +87.0739 137.21 1097.84 +77.8692 138.103 1104.98 +69.0825 140.076 1120.77 +171.468 405.76 3246.55 +49.2899 140.005 1120.2 +40.3857 143.426 1147.57 +29.4909 139.669 1117.52 +20.1593 143.23 1146 +9.82259 139.589 1116.87 +7.32747e-14 143.091 1144.89 +-9.81386 139.465 1115.88 +-20.1401 143.093 1144.91 +-29.3784 139.137 1113.26 +-40.1554 142.607 1141.02 +-48.954 139.052 1112.57 +-60.2806 142.647 1141.34 +-68.5453 138.987 1112.06 +-80.4083 142.606 1141.01 +-88.1488 138.904 1111.39 +-100.412 142.337 1138.86 +-107.817 138.864 1111.08 +-120.344 141.998 1136.15 +-120.539 131.205 1049.79 +-129.84 131.143 1049.3 +-145.615 137.17 1097.52 +-455.973 402.364 3219.37 +-146.08 121.22 969.898 +-113.493 88.8667 711.036 +-119.197 88.3368 706.796 +-125.669 88.3876 707.203 +-148.959 99.6742 797.508 +-625.224 398.901 3191.67 +-653.269 398.209 3186.13 +-681.264 397.487 3180.36 +-141.465 79.1362 633.181 +-144.936 77.8563 622.941 +-149.965 77.4673 619.828 +-177.28 88.1803 705.544 +-144.67 69.3747 555.078 +-143.981 66.64 533.197 +-149.36 66.7923 534.415 +-903.181 390.625 3125.45 +-110.397 46.2203 369.816 +-112.592 45.6722 365.43 +-115.772 45.5367 364.346 +-118.91 45.3862 363.142 +-122.86 45.538 364.356 +-127.655 45.9779 367.876 +-1093.78 383.058 3064.91 +-1120.7 381.86 3055.32 +-1147.38 380.586 3045.13 +-481.682 155.62 1245.14 +-1200.91 378.091 3025.16 +-134.746 41.3607 330.933 +-135.011 40.4228 323.429 +-159.262 46.531 372.302 +-161.095 45.9474 367.632 +-163.386 45.5107 364.138 +-166.748 45.3772 363.07 +-412.222 109.633 877.188 +-141.035 36.6703 293.404 +-141.769 36.0481 288.426 +-143.676 35.7379 285.944 +-146.457 35.6474 285.22 +-413.958 98.619 789.066 +-417.548 97.3899 779.232 +-419.327 95.7789 766.342 +-421.639 94.3345 754.785 +-422.499 92.6117 741 +-424.65 91.2165 729.837 +-426.434 89.7811 718.352 +-427.739 88.2849 706.381 +-426.672 86.3489 690.891 +-439.886 87.3037 698.53 +-435.374 84.7533 678.124 +-437.944 83.6341 669.169 +-440.391 82.5157 660.22 +-442.545 81.3676 651.035 +-445.195 80.3337 642.762 +-447.39 79.2394 634.006 +-449.638 78.1767 625.504 +-452.242 77.1955 617.653 +-454.98 76.2544 610.123 +-456.597 75.1451 601.247 +-458.945 74.1758 593.492 +-462.546 73.4221 587.462 +-478.589 74.6173 597.024 +-467.27 71.5617 572.576 +-469.807 70.6801 565.522 +-473.22 69.941 559.608 +-475.721 69.0772 552.697 +-478.201 68.2228 545.861 +-481.128 67.4426 539.619 +-484.451 66.7258 533.883 +-487.573 65.9886 527.985 +-489.402 65.0865 520.767 +-492.793 64.4016 515.287 +-495.361 63.616 509.001 +-497.856 62.8298 502.711 +-500.278 62.043 496.416 +-503.626 61.3776 491.091 +-2356.92 282.269 2258.48 +-383.288 45.1084 360.919 +-383.229 44.3196 354.608 +-381.025 43.3 346.45 +-381.828 42.637 341.145 +-382.417 41.9592 335.722 +-140.225 15.1172 120.955 +-142.044 15.0454 120.38 +-143.097 14.8911 119.146 +-142.133 14.5306 116.261 +-141.829 14.2435 113.964 +-141.73 13.9813 111.867 +-146.097 14.1558 113.263 +-153.752 14.6313 117.067 +-155.494 14.5315 116.268 +-156.35 14.3479 114.8 +-157.273 14.1708 113.383 +-160.218 14.1729 113.4 +-161.045 13.9848 111.894 +-382.642 32.6143 260.952 +-380.777 31.8522 254.854 +-381.67 31.3295 250.672 +-381.26 30.7058 245.682 +-380.454 30.0588 240.505 +-382.385 29.6328 237.096 +-382.068 29.0364 232.325 +-379.897 28.3088 226.503 +-380.754 27.8147 222.55 +-379.839 27.197 217.607 +-380.694 26.7116 213.723 +-379.935 26.1181 208.975 +-380.088 25.5935 204.778 +-379.314 25.0124 200.128 +-382.568 24.6983 197.615 +-377.43 23.8497 190.825 +-377.483 23.3408 186.753 +-380.819 23.0347 184.304 +-377.1 22.3067 178.479 +-380.468 22.0025 176.045 +-380.091 21.4819 171.88 +-381.04 21.0395 168.34 +-380.305 20.5076 164.084 +-379.616 19.9839 159.894 +-378.791 19.4583 155.689 +-378.384 18.9594 151.697 +-380.169 18.5718 148.596 +-380.621 18.1198 144.979 +-114.368 5.30301 42.4302 +-113.139 5.10693 40.8613 +-110.666 4.8601 38.8864 +-110.058 4.69977 37.6035 +-109.626 4.549 36.3972 +-109.276 4.40336 35.232 +-109.01 4.26256 34.1054 +-108.349 4.10815 32.87 +-108.538 3.98721 31.9023 +-108.334 3.85251 30.8245 +-109.95 3.78152 30.2565 +-110.309 3.66559 29.3289 +-109.304 3.5057 28.0497 +-110.517 3.41728 27.3422 +-110.753 3.29754 26.3841 +-111.273 3.18593 25.4911 +-112.762 3.10028 24.8058 +-113.172 2.98328 23.8697 +-115.337 2.91014 23.2844 +-116.912 2.81834 22.55 +-127.037 2.91996 23.363 +-159.539 3.48873 27.9138 +-158.792 3.29547 26.3676 +-162.178 3.18557 25.4882 +-164.177 3.04293 24.347 +-855.592 14.9126 119.318 +-866.82 14.1527 113.238 +-379.153 5.77351 46.1947 +-379.743 5.36576 42.9323 +-899.147 11.7201 93.7746 +-402.936 4.81167 38.4989 +-403.06 4.37324 34.991 +-403.652 3.93979 31.5229 +-404.412 3.50712 28.061 +-402.747 3.05493 24.4429 +-143.803 0.93464 7.4782 +-404.015 2.18763 17.5035 +-402.655 1.7438 13.9525 +-144.351 0.468779 3.75077 +-145.778 0.315569 2.52492 +-146.294 0.158331 1.26683 +120 6.21725e-15 5.68434e-14 +120.295 0.139585 1.04048 +119.782 0.278001 2.07224 +120.459 0.41941 3.12631 +120.626 0.560093 4.17497 +119.686 0.694815 5.1792 +120.435 0.83923 6.25568 +120.175 0.977316 7.28498 +120.905 1.12414 8.37941 +120.826 1.26438 9.42481 +121.038 1.40801 10.4954 +120.343 1.54076 11.4849 +120.735 1.68728 12.5771 +120.222 1.82128 13.576 +120.991 1.9753 14.724 +120.659 2.11213 15.744 +121.011 2.26131 16.856 +120.759 2.39966 17.8873 +120.399 2.53554 18.9001 +120.623 2.68391 20.0061 +120.442 2.82378 21.0486 +120.055 2.95858 22.0534 +120.838 3.12313 23.28 +120.433 3.25792 24.2847 +121.095 3.42242 25.511 +120.768 3.55992 26.5359 +120.724 3.70589 27.6239 +120.379 3.84272 28.6439 +121.093 4.01443 29.9238 +121.406 4.17476 31.1189 +121.9 4.343 32.373 +120.936 4.45939 33.2406 +121.503 4.63254 34.5312 +121.099 4.76956 35.5526 +120.781 4.90989 36.5986 +121.79 5.10582 38.0591 +121.45 5.24695 39.1111 +121.48 5.40454 40.2858 +121.215 5.54961 41.3672 +121.695 5.73001 42.7119 +121.314 5.87099 43.7627 +120.362 5.98358 44.602 +115.577 5.89907 43.9721 +112.581 5.89649 43.9528 +109.779 5.89739 43.9596 +106.246 5.85155 43.6178 +103.833 5.86031 43.6832 +101.243 5.85332 43.631 +98.6629 5.84078 43.5376 +96.0009 5.81718 43.3616 +97.6093 6.05198 45.1119 +97.0279 6.15355 45.869 +96.8001 6.27756 46.7934 +98.5323 6.53203 48.6902 +97.387 6.59782 49.1806 +96.5955 6.686 49.8379 +97.0359 6.86025 51.1368 +96.4941 6.96624 51.9268 +96.7329 7.1295 53.1438 +96.9576 7.29386 54.3689 +96.5618 7.41273 55.255 +96.761 7.57848 56.4905 +97.0313 7.75209 57.7846 +96.3483 7.85049 58.5181 +96.6775 8.03245 59.8744 +96.737 8.19433 61.0811 +97.0342 8.37867 62.4552 +96.4806 8.49095 63.2921 +96.5829 8.66206 64.5676 +95.8459 8.75872 65.2881 +96.0046 8.93825 66.6263 +96.0656 9.11106 67.9145 +96.1921 9.29253 69.2672 +96.2217 9.46706 70.5681 +96.3154 9.65036 71.9345 +96.2338 9.81842 73.1871 +96.3737 10.0116 74.6268 +96.2608 10.1809 75.8894 +96.2884 10.3676 77.2805 +96.2987 10.555 78.6778 +96.2152 10.7347 80.0173 +96.1153 10.915 81.3613 +96.15 11.1134 82.8398 +96.0161 11.295 84.1936 +96.0143 11.4949 85.6841 +95.9198 11.6868 87.1139 +96.3924 11.9518 89.0893 +96.1121 12.1272 90.3972 +96.0319 12.3306 91.9135 +95.7895 12.5162 93.2963 +95.7423 12.7303 94.8922 +96.1648 13.0116 96.9891 +95.8629 13.1992 98.3875 +95.6125 13.3968 99.8604 +96.0936 13.7016 102.133 +95.6636 13.8812 103.471 +95.418 14.0904 105.031 +95.6161 14.3699 107.114 +95.8502 14.661 109.284 +95.339 14.8425 110.637 +95.3897 15.1155 112.672 +95.2209 15.3589 114.486 +95.5308 15.6859 116.924 +94.9335 15.869 118.288 +94.9966 16.1671 120.51 +94.9059 16.4455 122.586 +94.7859 16.7248 124.668 +94.9337 17.0587 127.157 +94.751 17.3403 129.256 +95.1191 17.731 132.168 +95.099 18.0585 134.609 +94.5332 18.2888 136.326 +94.7273 18.6733 139.192 +94.5468 18.9932 141.577 +94.8217 19.4144 144.717 +94.6722 19.7592 147.287 +94.4316 20.0937 149.78 +94.0497 20.4066 152.112 +94.664 20.948 156.148 +94.1991 21.2633 158.498 +94.3 21.7172 161.882 +94.2991 22.1615 165.193 +94.1985 22.5957 168.43 +94.1434 23.0547 171.851 +94.2699 23.5739 175.722 +94.3814 24.107 179.695 +94.0668 24.5474 182.978 +94.0139 25.072 186.889 +93.9429 25.6104 190.902 +94.0236 26.2105 195.375 +93.8635 26.7644 199.504 +93.9695 27.4167 204.366 +93.6308 27.962 208.431 +93.6662 28.6427 213.504 +93.9318 29.4234 219.324 +93.9871 30.1701 224.89 +93.6891 30.8328 229.83 +93.8976 31.695 236.256 +93.8207 32.4978 242.241 +93.5404 33.2655 247.964 +93.2347 34.06 253.886 +93.1989 34.9942 260.849 +93.1125 35.9558 268.017 +92.7799 36.8695 274.828 +92.8905 38.0127 283.35 +92.437 38.9814 290.57 +92.5941 40.2697 300.173 +92.3902 41.4719 309.135 +92.4212 42.8557 319.449 +92.5981 44.3963 330.933 +92.3466 45.8249 341.582 +92.265 47.4364 353.594 +92.1964 49.1673 366.497 +108.996 60.3655 449.969 +105.03 60.4896 450.894 +101.012 60.5832 451.591 +96.6997 60.49 450.897 +92.6463 60.5478 451.328 +90.9396 62.2063 463.69 +90.9902 65.2771 486.58 +90.3491 68.13 507.845 +88.2345 70.1075 522.586 +87.4312 73.3985 547.118 +87.1189 77.508 577.75 +88.7785 83.9921 626.083 +86.1734 87.0317 648.74 +87.1975 94.4265 703.861 +89.7928 104.789 781.103 +90.7098 114.754 855.383 +87.8906 121.366 904.673 +86.4324 131.358 979.154 +85.9676 145.239 1082.62 +77.8552 148.039 1103.49 +66.7932 145.204 1082.36 +58.1662 147.574 1100.03 +47.5844 144.912 1080.18 +38.7035 147.366 1098.48 +28.4727 144.575 1077.68 +19.339 147.315 1098.09 +9.47178 144.314 1075.72 +6.75016e-14 147.178 1097.07 +-9.46567 144.22 1075.03 +-19.2343 146.517 1092.15 +-28.3575 143.99 1073.31 +-38.3825 146.144 1089.37 +-47.2485 143.889 1072.56 +-57.5748 146.073 1088.84 +-66.1217 143.744 1071.48 +-76.6763 145.797 1086.78 +-85.0889 143.755 1071.56 +-95.9672 145.849 1087.17 +-104.127 143.787 1071.8 +-114.866 145.313 1083.18 +-120.199 140.273 1045.6 +-130.169 140.96 1050.73 +-143.918 145.352 1083.46 +-146.619 138.714 1033.99 +-146.257 130.122 969.942 +-113.493 95.2776 710.206 +-119.313 94.8013 706.655 +-125.947 94.9735 707.939 +-149.196 107.035 797.843 +-625.224 427.678 3187.94 +-653.269 426.936 3182.41 +-681.264 426.162 3176.64 +-141.768 85.0269 633.796 +-144.756 83.3692 621.44 +-150.386 83.2886 620.839 +-177.692 94.7609 706.354 +-145.02 74.5596 555.772 +-144.317 71.6143 533.818 +-149.573 71.7132 534.555 +-903.181 418.805 3121.8 +-110.482 49.593 369.669 +-112.68 49.0051 365.288 +-115.772 48.8218 363.921 +-119.188 48.774 363.565 +-122.829 48.8105 363.837 +-127.948 49.4079 368.29 +-1093.78 410.692 3061.32 +-1120.7 409.407 3051.75 +-1147.52 408.091 3041.94 +-1174.12 406.695 3031.53 +-1200.77 405.317 3021.26 +-420.496 138.383 1031.52 +-420.875 135.102 1007.06 +-136.6 42.7888 318.951 +-137.489 42.0434 313.394 +-163.752 48.9031 364.527 +-166.914 48.6992 363.007 +-171.372 48.8652 364.245 +-141.122 39.3396 293.24 +-141.988 38.7083 288.534 +-143.274 38.2089 284.811 +-146.866 38.3256 285.682 +-414.281 105.816 788.76 +-417.736 104.463 778.671 +-419.566 102.747 765.883 +-422.124 101.256 754.769 +-423.337 99.4895 741.601 +-425.55 98.0041 730.529 +-426.637 96.3037 717.854 +-427.739 94.6538 705.556 +-426.725 92.5894 690.168 +-438.296 93.2636 695.193 +-435.374 90.8674 677.332 +-438.108 89.7009 668.637 +-440.722 88.535 659.946 +-443.049 87.3367 651.014 +-445.195 86.129 642.011 +-447.39 84.9557 633.266 +-450.161 83.9137 625.498 +-453.124 82.9256 618.133 +-454.98 81.7554 609.411 +-457.139 80.6617 601.258 +-459.493 79.6218 593.506 +-460.946 78.4465 584.745 +-478.963 80.0627 596.793 +-467.774 76.8069 572.524 +-470.952 75.9637 566.238 +-473.22 74.9865 558.955 +-475.721 74.0604 552.051 +-478.989 73.2648 546.121 +-481.592 72.3776 539.508 +-484.451 71.5394 533.26 +-487.371 70.7197 527.149 +-490.289 69.9084 521.102 +-492.793 69.0475 514.685 +-496.056 68.301 509.12 +-498.837 67.4951 503.113 +-501.622 66.6975 497.168 +-504.268 65.8893 491.143 +-2356.92 302.632 2255.84 +-383.288 48.3625 360.497 +-382.205 47.3899 353.247 +-382.057 46.5494 346.983 +-380.49 45.5527 339.553 +-383.091 45.0654 335.921 +-140.753 16.2688 121.269 +-141.968 16.1221 120.175 +-142.484 15.8969 118.496 +-141.979 15.5618 115.999 +-140.897 15.1706 113.083 +-141.887 15.0066 111.86 +-145.94 15.1607 113.009 +-154.704 15.7839 117.654 +-156.213 15.6518 116.67 +-156.35 15.383 114.666 +-158.001 15.2634 113.775 +-159.974 15.1722 113.095 +-160.554 14.9479 111.423 +-382.395 34.9445 260.478 +-381.938 34.2541 255.333 +-381.169 33.5454 250.05 +-383.608 33.1237 246.906 +-381.803 32.3416 241.076 +-382.385 31.7705 236.819 +-380.874 31.0337 231.328 +-381.354 30.4673 227.105 +-380.151 29.774 221.938 +-381.311 29.272 218.195 +-380.084 28.5927 213.132 +-381.247 28.0991 209.453 +-379.825 27.4208 204.397 +-381.257 26.9541 200.918 +-379.995 26.302 196.057 +-378.232 25.6246 191.008 +-378.02 25.0602 186.801 +-379.83 24.6323 183.611 +-379.718 24.0819 179.508 +-381.012 23.6235 176.091 +-380.091 23.0316 171.679 +-379.944 22.4924 167.66 +-378.562 21.8864 163.142 +-380.537 21.4774 160.094 +-380.546 20.9587 156.227 +-379.311 20.377 151.891 +-379.331 19.8678 148.096 +-379.781 19.384 144.49 +-114.555 5.69489 42.4501 +-113.421 5.48898 40.9153 +-110.666 5.2107 38.8409 +-110.058 5.03881 37.5596 +-109.626 4.87716 36.3547 +-108.611 4.69225 34.9764 +-108.724 4.55806 33.9761 +-108.349 4.40452 32.8316 +-108.826 4.28618 31.9495 +-109.199 4.16341 31.0344 +-110.047 4.05787 30.2476 +-109.439 3.89906 29.0638 +-109.982 3.78191 28.1907 +-110.42 3.66059 27.2863 +-110.656 3.53233 26.3302 +-111.37 3.41875 25.4836 +-111.786 3.29515 24.5623 +-113.074 3.19573 23.8212 +-115.337 3.12007 23.2572 +-117.501 3.03687 22.637 +-128.905 3.17665 23.679 +-158.357 3.71269 27.6747 +-160.666 3.5749 26.6476 +-160.993 3.39042 25.2724 +-166.155 3.30176 24.6115 +-856.285 16.0013 119.274 +-867.713 15.1894 113.223 +-380.641 6.21431 46.3219 +-379.743 5.75285 42.8821 +-900.639 12.5865 93.8205 +-404.529 5.17916 38.6058 +-404.256 4.70264 35.0538 +-404.25 4.23027 31.5327 +-404.412 3.76012 28.0282 +-404.145 3.28668 24.4991 +-141.506 0.986059 7.35015 +-403.516 2.34254 17.4615 +-3274.5 15.2041 113.333 +-145.65 0.507121 3.78012 +-146.278 0.339495 2.53062 +-144.994 0.168246 1.25411 +119.8 1.77636e-15 -1.13687e-13 +120.295 0.148966 1.03918 +120.382 0.298169 2.08001 +120.459 0.447597 3.1224 +120.327 0.596248 4.15938 +120.385 0.745844 5.20295 +120.235 0.894145 6.23749 +120.076 1.04213 7.26983 +120.705 1.19771 8.35512 +119.73 1.33711 9.32759 +120.838 1.50016 10.465 +120.343 1.6443 11.4705 +120.536 1.7977 12.5406 +121.116 1.95814 13.6599 +120.892 2.10631 14.6935 +120.659 2.25407 15.7243 +120.912 2.4113 16.821 +119.869 2.54206 17.7332 +120.3 2.70371 18.8609 +119.735 2.84321 19.834 +120.344 3.01108 21.0051 +120.055 3.15741 22.0258 +120.642 3.3276 23.2131 +120.531 3.4797 24.2742 +120.997 3.64947 25.4585 +120.768 3.79916 26.5027 +120.627 3.95175 27.5671 +120.379 4.10097 28.6081 +121.093 4.28422 29.8864 +121.406 4.45532 31.08 +121.127 4.60548 32.1275 +120.839 4.75529 33.1726 +120.734 4.91258 34.2698 +121.195 5.09412 35.5362 +120.781 5.23985 36.5528 +121.79 5.44896 38.0115 +121.64 5.60834 39.1234 +121.48 5.76775 40.2354 +121.972 5.95954 41.5733 +121.695 6.11509 42.6584 +121.22 6.26069 43.6741 +119.613 6.34596 44.269 +115.577 6.29552 43.9171 +112.581 6.29276 43.8979 +109.593 6.2831 43.8304 +106.246 6.2448 43.5633 +103.649 6.24305 43.5511 +101.243 6.24669 43.5764 +98.6629 6.23331 43.4831 +96.2739 6.22577 43.4305 +97.4281 6.44671 44.9718 +97.2084 6.57931 45.8968 +96.6204 6.687 46.648 +97.9953 6.93303 48.3643 +97.2979 7.03478 49.0741 +96.6842 7.14189 49.8213 +96.8594 7.30797 50.9799 +96.3184 7.42086 51.7674 +96.7329 7.60864 53.0773 +96.2613 7.72813 53.9109 +97.1681 7.96056 55.5323 +96.761 8.08779 56.4199 +96.9456 8.26576 57.6614 +96.3483 8.37808 58.4449 +96.6775 8.57227 59.7995 +96.737 8.74503 61.0047 +97.0342 8.94176 62.3771 +96.4806 9.06158 63.2129 +96.4171 9.22831 64.376 +96.5876 9.41969 65.7111 +95.9227 9.5308 66.4862 +96.147 9.73161 67.887 +96.1112 9.90869 69.1223 +96.2217 10.1033 70.4798 +96.2356 10.2904 71.7849 +96.1544 10.4696 73.0353 +96.2949 10.6756 74.4725 +95.5565 10.7856 75.2399 +95.589 10.9839 76.6231 +96.2987 11.2644 78.5793 +96.2152 11.4561 79.9172 +96.1153 11.6486 81.2595 +96.0745 11.8509 82.6712 +95.9412 12.0447 84.0227 +95.94 12.258 85.5107 +96.5096 12.5489 87.5399 +95.7342 12.6679 88.3702 +96.1846 12.952 90.3522 +95.9599 13.1495 91.7297 +95.8609 13.3672 93.249 +96.3787 13.6761 95.4035 +96.0947 13.8759 96.7971 +95.8629 14.0862 98.2644 +96.1631 14.3794 100.31 +95.4116 14.5186 101.281 +95.596 14.8037 103.269 +95.3511 15.0269 104.826 +95.6823 15.3463 107.055 +95.6534 15.6142 108.924 +95.274 15.8292 110.423 +95.2611 16.1096 112.379 +95.3481 16.4131 114.497 +94.9015 16.6298 116.008 +94.9335 16.9354 118.14 +94.8734 17.2311 120.203 +94.7842 17.5281 122.275 +94.846 17.8602 124.591 +95.2311 18.262 127.395 +94.8098 18.517 129.174 +95.0611 18.9111 131.922 +95.099 19.2721 134.441 +94.8164 19.5763 136.563 +94.1122 19.7988 138.115 +94.5468 20.2696 141.4 +94.8217 20.7192 144.536 +94.6185 21.0751 147.018 +94.3786 21.4321 149.509 +94.52 21.887 152.682 +94.561 22.3316 155.784 +94.6559 22.8024 159.068 +94.3 23.1767 161.679 +94.2991 23.6508 164.986 +94.1985 24.1143 168.219 +94.0957 24.5916 171.549 +94.2699 25.1582 175.502 +94.3814 25.7271 179.47 +94.0668 26.1971 182.749 +94.0139 26.757 186.655 +93.8991 27.3188 190.574 +93.7223 27.8823 194.505 +93.9058 28.576 199.344 +93.9695 29.2593 204.111 +94.0375 29.9709 209.075 +93.6263 30.5547 213.147 +93.541 31.2703 218.139 +93.9488 32.1845 224.517 +93.9139 32.9838 230.093 +93.8976 33.825 235.961 +93.7849 34.6686 241.846 +93.5404 35.5011 247.653 +93.2347 36.349 253.568 +93.4325 37.4395 261.175 +93.0474 38.3454 267.495 +92.7799 39.3473 274.484 +92.7978 40.5268 282.712 +92.3167 41.5469 289.828 +92.4479 42.9082 299.324 +92.3334 44.2318 308.558 +92.5315 45.7904 319.431 +92.3576 47.2569 329.661 +92.3725 48.9183 341.251 +92.3151 50.6519 353.344 +92.1481 52.4441 365.846 +108.762 64.2843 448.443 +105.165 64.6378 450.909 +101.012 64.6547 451.026 +96.8868 64.6802 451.205 +92.6263 64.603 450.666 +91.2067 66.5818 464.47 +90.808 69.5245 484.998 +90.3665 72.7227 507.308 +88.3995 74.9591 522.91 +87.1966 78.121 544.966 +86.9267 82.5345 575.754 +88.9873 89.8475 626.77 +85.9646 92.6556 646.359 +87.49 101.11 705.339 +89.6796 111.69 779.143 +90.7098 122.466 854.313 +87.881 129.509 903.444 +85.3603 138.448 965.8 +84.2729 151.945 1059.95 +75.4974 153.203 1068.73 +65.1327 151.11 1054.13 +56.392 152.687 1065.13 +46.3412 150.611 1050.65 +37.4751 152.279 1062.29 +27.7214 150.221 1047.93 +18.7125 152.122 1061.19 +9.22831 150.053 1046.76 +6.38378e-14 151.691 1058.18 +-9.21958 149.911 1045.77 +-18.6374 151.512 1056.94 +-27.6167 149.653 1043.97 +-37.2831 151.499 1056.85 +-46.0054 149.52 1043.04 +-55.8582 151.242 1055.05 +-64.455 149.538 1043.17 +-74.5069 151.194 1054.72 +-82.7351 149.172 1040.61 +-93.2392 151.227 1054.95 +-101.251 149.213 1040.9 +-111.981 151.184 1054.65 +-120.097 149.573 1043.41 +-127.609 147.476 1028.78 +-140.159 151.068 1053.84 +-145.603 147.011 1025.54 +-146.405 139.008 969.707 +-113.587 101.765 709.904 +-119.544 101.368 707.138 +-125.878 101.3 706.663 +-149.269 114.284 797.234 +-625.224 456.42 3183.95 +-653.269 455.628 3178.43 +-681.264 454.802 3172.67 +-141.79 90.755 633.1 +-144.734 88.9582 620.566 +-150.689 89.0654 621.314 +-177.692 101.129 705.47 +-145.02 79.5703 555.077 +-144.188 76.3586 532.672 +-149.734 76.6147 534.459 +-903.181 446.951 3117.9 +-110.709 53.0347 369.966 +-112.885 52.3934 365.493 +-116.042 52.2246 364.315 +-119.188 52.0519 363.11 +-123.082 52.1985 364.133 +-128.079 52.7819 368.203 +-1093.78 438.292 3057.5 +-1120.7 436.921 3047.93 +-1147.52 435.517 3038.13 +-386.321 142.808 996.216 +-1200.77 432.557 3017.48 +-421.283 147.96 1032.16 +-420.646 144.103 1005.25 +-159.145 53.2013 371.128 +-149.252 48.7079 339.783 +-1332.59 424.712 2962.76 +-167.868 52.269 364.625 +-171.372 52.1492 363.789 +-141.035 41.9579 292.695 +-141.769 41.2459 287.729 +-143.006 40.7005 283.924 +-146.866 40.9013 285.324 +-415.481 113.255 790.056 +-417.736 111.483 777.697 +-420.043 109.777 765.795 +-421.978 108.024 753.566 +-423.14 106.126 740.329 +-425.35 104.541 729.273 +-426.332 102.702 716.444 +-427.997 101.076 705.098 +-427.561 99.0054 690.655 +-437.66 99.3869 693.316 +-436.18 97.1537 677.737 +-438.217 95.753 667.966 +-441.384 94.6268 660.11 +-443.72 93.3473 651.184 +-445.875 92.0576 642.187 +-447.676 90.7232 632.878 +-450.161 89.5531 624.716 +-452.771 88.4298 616.88 +-455.872 87.4209 609.842 +-457.139 86.0825 600.505 +-460.102 85.0852 593.549 +-460.699 83.6736 583.701 +-478.153 85.2988 595.038 +-467.585 81.9355 571.576 +-470.952 81.0688 565.53 +-473.22 80.026 558.255 +-476.955 79.2427 552.791 +-478.989 78.1885 545.437 +-482.189 77.3374 539.5 +-485.053 76.4421 533.255 +-487.979 75.5665 527.146 +-490.289 74.6065 520.45 +-493.068 73.729 514.328 +-496.056 72.8911 508.483 +-498.557 71.9906 502.201 +-501.268 71.1297 496.196 +-504.268 70.3173 490.529 +-2356.92 322.97 2253.02 +-384.376 51.7591 361.068 +-381.255 50.449 351.928 +-382.352 49.7161 346.816 +-383.165 48.9559 341.513 +-385.038 48.3385 337.206 +-140.829 17.3715 121.182 +-142.424 17.2609 120.411 +-143.174 17.0474 118.921 +-141.902 16.5987 115.791 +-141.596 16.2705 113.502 +-141.965 16.0239 111.781 +-146.412 16.2319 113.232 +-155.101 16.8879 117.809 +-155.494 16.6268 115.987 +-156.35 16.4168 114.522 +-158.001 16.2892 113.632 +-160.218 16.2166 113.126 +-160.39 15.9362 111.17 +-383.136 37.3653 260.657 +-380.445 36.4134 254.017 +-383.504 36.0192 251.267 +-380.505 35.0638 244.603 +-380.623 34.4082 240.029 +-381.876 33.8605 236.208 +-382.068 33.2232 231.763 +-380.154 32.4126 226.108 +-381.099 31.8542 222.212 +-381.224 31.2321 217.873 +-380.084 30.5142 212.865 +-379.323 29.8361 208.134 +-380.528 29.3179 204.519 +-379.932 28.6657 199.97 +-376.536 27.814 194.029 +-379.747 27.4563 191.533 +-379.094 26.8203 187.096 +-378.752 26.2131 182.861 +-378.725 25.633 178.814 +-379.652 25.1212 175.244 +-381.183 24.6501 171.957 +-381.405 24.0964 168.095 +-379.938 23.4421 163.53 +-379.616 22.8654 159.507 +-379.53 22.3075 155.615 +-380.424 21.8101 152.146 +-378.494 21.1562 147.584 +-378.38 20.6105 143.777 +-114.274 6.0627 42.293 +-112.857 5.82875 40.6609 +-110.572 5.55615 38.7593 +-110.153 5.38207 37.5449 +-108.773 5.16441 36.0265 +-109.467 5.04707 35.208 +-108.152 4.83877 33.7549 +-108.349 4.70052 32.7905 +-108.922 4.57826 31.9376 +-109.295 4.44713 31.0229 +-109.468 4.30783 30.0511 +-109.246 4.15374 28.9762 +-110.078 4.03962 28.1801 +-110.42 3.90659 27.2521 +-110.461 3.76309 26.2511 +-111.37 3.64851 25.4517 +-111.981 3.52274 24.5744 +-113.856 3.4341 23.956 +-115.043 3.32127 23.169 +-117.795 3.24909 22.6654 +-129.79 3.41341 23.8117 +-159.539 3.99178 27.8463 +-160.666 3.81515 26.6142 +-163.265 3.66932 25.5969 +-167.045 3.54252 24.7124 +-857.473 17.1003 119.291 +-867.316 16.2027 113.029 +-380.641 6.63194 46.264 +-379.246 6.13144 42.7725 +-900.639 13.4324 93.7031 +-405.126 5.53539 38.6145 +-403.957 5.01497 34.9841 +-403.652 4.50788 31.4466 +-403.515 4.00391 27.931 +-403.746 3.50408 24.4442 +-145.5 1.08203 7.54819 +-403.416 2.49935 17.4353 +-402.655 1.99525 13.9187 +-145.45 0.54046 3.77021 +-145.778 0.361072 2.51881 +-146.294 0.181162 1.26377 +119.8 1.77636e-15 -1.13687e-13 +120.295 0.158335 1.03779 +120.482 0.317184 2.07895 +120.459 0.475747 3.11824 +120.427 0.634273 4.15728 +120.385 0.792751 5.19601 +120.235 0.950378 6.22917 +120.076 1.10767 7.26013 +120.705 1.27303 8.34398 +119.929 1.42357 9.33066 +120.838 1.59451 10.4511 +120.443 1.74915 11.4646 +120.536 1.91076 12.5239 +120.123 2.06422 13.5297 +120.793 2.23694 14.6618 +120.659 2.39584 15.7033 +121.011 2.56506 16.8125 +120.759 2.72199 17.841 +121.189 2.89499 18.9749 +120.524 3.04194 19.9381 +120.442 3.20308 20.9943 +120.055 3.35598 21.9965 +120.74 3.53976 23.201 +120.433 3.69553 24.222 +121.095 3.88213 25.4451 +120.768 4.0381 26.4673 +120.627 4.20028 27.5303 +121.352 4.3941 28.8007 +121.093 4.55366 29.8465 +121.406 4.73552 31.0385 +121.127 4.89512 32.0846 +120.839 5.05436 33.1283 +121.407 5.25063 34.4148 +121.195 5.4145 35.4888 +121.642 5.60909 36.7643 +121.122 5.7599 37.7527 +121.64 5.96105 39.0712 +121.385 6.12571 40.1504 +121.972 6.33434 41.5179 +121.695 6.49968 42.6015 +121.22 6.65444 43.6159 +119.8 6.75562 44.2791 +116.324 6.73467 44.1418 +112.487 6.683 43.8031 +109.593 6.67825 43.772 +106.154 6.63177 43.4673 +103.741 6.64159 43.5317 +101.243 6.63955 43.5183 +98.4802 6.61305 43.3446 +96.3649 6.62358 43.4136 +96.7937 6.80752 44.6193 +97.2084 6.9931 45.8356 +97.4293 7.16706 46.9758 +98.0848 7.37578 48.3439 +97.2088 7.47036 48.9638 +96.6842 7.59105 49.7549 +96.153 7.71094 50.5407 +96.4062 7.89477 51.7455 +96.6455 8.07986 52.9587 +96.2613 8.21417 53.839 +96.4752 8.40089 55.0628 +96.6748 8.58878 56.2944 +96.1742 8.7157 57.1263 +96.3483 8.90498 58.3669 +96.5927 9.10339 59.6673 +96.737 9.29501 60.9233 +96.0278 9.40555 61.6478 +96.3138 9.61482 63.0195 +96.4171 9.80869 64.2902 +96.5876 10.0121 65.6234 +96.6599 10.2081 66.9078 +96.147 10.3436 67.7965 +96.7584 10.6028 69.4949 +96.1413 10.7297 70.327 +96.3154 10.9466 71.7486 +96.2338 11.1373 72.9981 +96.2949 11.347 74.3732 +96.2608 11.5485 75.6934 +96.2107 11.7507 77.0187 +96.2987 11.9728 78.4745 +96.2152 12.1766 79.8106 +96.1153 12.3812 81.1511 +96.0745 12.5962 82.5609 +96.091 12.8222 84.0417 +95.94 13.0289 85.3966 +96.5096 13.3381 87.4232 +96.3924 13.5572 88.8591 +96.1121 13.7562 90.1637 +96.0319 13.9869 91.6761 +95.7895 14.1974 93.0553 +96.3787 14.5362 95.2762 +96.0246 14.7378 96.5975 +95.8629 14.9721 98.1333 +95.6125 15.1963 99.6024 +95.9572 15.5199 101.724 +95.7311 15.7569 103.277 +95.8864 16.0617 105.275 +95.4835 16.2777 106.69 +95.6534 16.5962 108.778 +95.274 16.8247 110.276 +95.3254 17.1342 112.304 +95.2845 17.4336 114.267 +95.2791 17.7459 116.314 +94.9957 18.0123 118.06 +94.935 18.3268 120.121 +94.845 18.6424 122.19 +94.7257 18.9593 124.267 +94.6958 19.3015 126.51 +94.751 19.6695 128.922 +95.0611 20.1004 131.746 +95.0416 20.4718 134.18 +94.8164 20.8075 136.381 +94.7273 21.1815 138.832 +95.1539 21.6827 142.117 +94.9306 22.0474 144.508 +94.6722 22.4133 146.906 +94.3786 22.78 149.309 +94.4677 23.2505 152.394 +94.561 23.736 155.576 +94.1991 24.1194 158.089 +94.3 24.6344 161.464 +94.2991 25.1383 164.766 +94.247 25.644 168.081 +94.0957 26.1382 171.321 +94.2699 26.7405 175.268 +94.3814 27.3451 179.231 +94.0214 27.8311 182.416 +93.9693 28.4262 186.317 +93.8553 29.0233 190.231 +94.0236 29.7311 194.87 +93.8635 30.3595 198.988 +93.8866 31.072 203.658 +93.5901 31.7042 207.802 +93.6263 32.4763 212.863 +93.541 33.2369 217.848 +93.9488 34.2086 224.217 +93.6142 34.9463 229.052 +93.8976 35.9523 235.646 +93.7849 36.849 241.523 +93.5404 37.7339 247.323 +93.2347 38.635 253.23 +93.3324 39.7516 260.548 +93.0799 40.7713 267.232 +92.7799 41.8219 274.118 +92.6742 43.0183 281.959 +92.3468 44.1742 289.536 +92.3895 45.5777 298.735 +92.3334 47.0136 308.146 +92.5039 48.6556 318.909 +92.5446 50.3307 329.888 +92.3208 51.9657 340.605 +92.3652 53.8667 353.064 +92.0997 55.7131 365.166 +107.338 67.4327 441.982 +105.142 68.6883 450.211 +101.186 68.8387 451.197 +96.8868 68.7481 450.603 +92.6662 68.6956 450.259 +90.8632 70.5027 462.104 +90.7715 73.8673 484.156 +90.4881 77.4002 507.313 +88.5315 79.7924 522.992 +87.1496 82.9894 543.947 +86.8232 87.6208 574.302 +89.21 95.7372 627.501 +85.6643 98.1388 643.242 +86.9416 106.796 699.982 +89.0909 117.935 772.996 +90.7725 130.258 853.763 +87.5934 137.203 899.287 +85.2732 147.004 963.527 +82.3821 157.876 1034.79 +74.2837 160.222 1050.16 +63.9911 157.798 1034.27 +55.1307 158.661 1039.93 +45.4427 156.979 1028.9 +36.6061 158.103 1036.27 +27.2005 156.667 1026.86 +18.2814 157.964 1035.36 +9.05291 156.459 1025.49 +5.4956e-14 157.535 1032.55 +-9.04069 156.247 1024.11 +-18.2133 157.376 1031.5 +-27.0931 156.05 1022.81 +-36.4386 157.379 1031.52 +-45.0894 155.759 1020.91 +-54.6126 157.169 1030.15 +-63.0937 155.585 1019.77 +-72.9234 157.287 1030.92 +-81.2444 155.697 1020.5 +-90.9557 156.801 1027.74 +-99.4016 155.7 1020.52 +-109.431 157.032 1029.25 +-118.388 156.718 1027.19 +-127.28 156.347 1024.76 +-137.092 157.054 1029.4 +-145.784 156.451 1025.44 +-146.405 147.75 968.414 +-113.743 108.314 709.933 +-119.643 107.833 706.779 +-126.034 107.805 706.596 +-149.542 121.694 797.629 +-625.224 485.125 3179.71 +-653.269 484.283 3174.19 +-681.264 483.405 3168.44 +-142.028 96.6245 633.316 +-144.913 94.6704 620.509 +-150.712 94.6815 620.581 +-177.861 107.592 705.201 +-145.02 84.5746 554.336 +-144.24 81.19 532.152 +-149.6 81.3604 533.269 +-903.071 475.001 3113.35 +-110.51 56.2689 368.809 +-113.177 55.8329 365.951 +-116.042 55.509 363.829 +-119.157 55.3112 362.532 +-123.336 55.5956 364.396 +-128.176 56.1443 367.993 +-1093.78 465.857 3053.42 +-1120.7 464.4 3043.87 +-1147.52 462.907 3034.08 +-1174.26 461.379 3024.07 +-1200.84 459.788 3013.64 +-1227.4 458.191 3003.17 +-421.067 153.318 1004.91 +-158.793 56.4221 369.814 +-160.855 55.7961 365.71 +-141.544 47.949 314.277 +-135.522 44.8512 293.973 +-171.921 55.6066 364.468 +-141.251 44.6647 292.75 +-141.594 43.7857 286.989 +-143.185 43.3142 283.899 +-147.275 43.5946 285.737 +-152.469 44.1749 289.541 +-418.158 118.614 777.445 +-419.804 116.614 764.338 +-422.124 114.857 752.82 +-423.878 112.997 740.632 +-426 111.286 729.413 +-427.043 109.343 716.682 +-427.997 107.433 704.158 +-427.822 105.296 690.156 +-436.706 105.407 690.881 +-436.18 103.264 676.833 +-438.979 101.952 668.235 +-441.384 100.578 659.23 +-443.552 99.1807 650.071 +-446.385 97.9592 642.064 +-448.193 96.5401 632.763 +-450.742 95.308 624.687 +-452.595 93.9546 615.817 +-455.337 92.8097 608.313 +-457.139 91.4964 599.704 +-460.102 90.4364 592.757 +-460.207 88.841 582.3 +-477.78 90.5926 593.781 +-467.585 87.0885 570.814 +-470.952 86.1673 564.776 +-473.606 85.1283 557.965 +-476.76 84.192 551.828 +-479.579 83.2084 545.382 +-481.725 82.1222 538.262 +-485.254 81.2833 532.764 +-487.979 80.319 526.443 +-490.084 79.2656 519.539 +-493.481 78.4315 514.072 +-496.056 77.4753 507.805 +-499.468 76.658 502.448 +-501.904 75.6991 496.163 +-504.482 74.7714 490.082 +-2356.92 343.283 2250.01 +-2376.69 340.166 2229.59 +-381.986 53.7246 352.133 +-381.394 52.7104 345.485 +-381.382 51.7926 339.47 +-384.589 51.3186 336.363 +-141.282 18.5233 121.409 +-141.664 18.2485 119.608 +-143.25 18.1292 118.826 +-141.747 17.6235 115.511 +-141.674 17.3033 113.413 +-142.122 17.0505 111.756 +-147.122 17.3363 113.629 +-155.656 18.0142 118.073 +-155.734 17.6998 116.012 +-157.234 17.5479 115.016 +-158.729 17.3935 114.004 +-160.951 17.3153 113.492 +-160.963 16.999 111.419 +-381.158 39.5103 258.966 +-383.513 39.0156 255.724 +-381.169 38.0513 249.404 +-381.008 37.3183 244.6 +-383.068 36.8072 241.249 +-382.13 36.014 236.05 +-381.642 35.2732 231.195 +-380.925 34.521 226.265 +-379.892 33.7504 221.214 +-377.587 32.8796 215.506 +-380.345 32.4556 212.727 +-380.809 31.8368 208.671 +-380.44 31.1545 204.199 +-381.08 30.5605 200.306 +-380.616 29.8836 195.869 +-380.371 29.231 191.592 +-381.063 28.6552 187.818 +-378.302 27.8285 182.399 +-379.627 27.3101 179.002 +-381.102 26.803 175.678 +-379.454 26.0815 170.949 +-380.948 25.5811 167.669 +-381.222 25.0006 163.864 +-378.327 24.2208 158.753 +-380.454 23.7682 155.786 +-378.94 23.0914 151.351 +-380.262 22.5917 148.076 +-379.781 21.9877 144.116 +-114.461 6.45455 42.3058 +-112.857 6.19533 40.6067 +-110.666 5.91062 38.7406 +-110.058 5.71563 37.4626 +-108.773 5.4892 35.9785 +-108.516 5.31787 34.8555 +-108.914 5.17938 33.9478 +-108.349 4.99614 32.7468 +-108.059 4.82764 31.6423 +-109.392 4.73097 31.0087 +-109.083 4.56263 29.9053 +-109.922 4.4423 29.1167 +-109.885 4.28613 28.093 +-110.42 4.15228 27.2158 +-110.656 4.0068 26.2622 +-111.37 3.87797 25.4178 +-111.786 3.73776 24.4988 +-113.856 3.65007 23.9241 +-114.945 3.52715 23.1184 +-117.795 3.45343 22.6352 +-129.986 3.63357 23.8159 +-158.849 4.2245 27.6891 +-159.384 4.02273 26.3666 +-162.475 3.88122 25.4391 +-164.968 3.7185 24.3726 +-856.582 18.1569 119.008 +-867.019 17.2158 112.839 +-380.641 7.04904 46.2023 +-379.743 6.52559 42.7714 +-899.943 14.2661 93.5058 +-403.832 5.86472 38.4398 +-403.558 5.32511 34.9029 +-404.15 4.7973 31.4434 +-403.914 4.25993 27.9213 +-403.446 3.7217 24.3935 +-145.001 1.14614 7.51225 +-403.416 2.65654 17.412 +-403.554 2.12547 13.9312 +-146.35 0.578004 3.78847 +-146.678 0.38615 2.53098 +-145.994 0.19216 1.2595 +119.8 1.77636e-15 -1.13687e-13 +120.295 0.167691 1.03632 +119.682 0.333696 2.06223 +120.459 0.503858 3.11382 +120.427 0.671751 4.15139 +119.586 0.834019 5.1542 +120.235 1.00654 6.22034 +120.076 1.17312 7.24984 +120.705 1.34825 8.33215 +120.826 1.51897 9.38714 +120.838 1.68873 10.4363 +120.443 1.8525 11.4484 +120.536 2.02366 12.5061 +120.123 2.18619 13.5106 +120.892 2.37107 14.6531 +120.659 2.5374 15.681 +120.912 2.71439 16.7748 +119.968 2.86395 17.6991 +120.3 3.04356 18.809 +120.623 3.22431 19.9261 +120.344 3.38956 20.9473 +121.039 3.58338 22.1452 +120.74 3.74892 23.1681 +120.531 3.91709 24.2074 +120.312 4.08494 25.2447 +120.768 4.2767 26.4298 +120.53 4.44487 27.4691 +121.352 4.65374 28.7599 +121.093 4.82273 29.8042 +120.631 4.98332 30.7967 +121.127 5.18437 32.0392 +120.839 5.35302 33.0814 +120.638 5.52566 34.1483 +121.099 5.7299 35.4105 +121.546 5.93585 36.6833 +121.79 6.13387 37.907 +121.45 6.30341 38.9548 +121.48 6.49273 40.1248 +121.783 6.69823 41.3948 +121.601 6.8784 42.5082 +121.314 7.0531 43.5878 +119.894 7.1604 44.2509 +115.484 7.0811 43.7609 +112.394 7.07203 43.7048 +109.593 7.07286 43.71 +106.893 7.07254 43.708 +103.741 7.03403 43.47 +101.06 7.01913 43.3779 +98.4802 7.00381 43.2832 +96.1829 7.00171 43.2703 +96.6124 7.19627 44.4726 +97.2084 7.40631 45.7707 +97.4293 7.59055 46.9092 +98.1743 7.81873 48.3194 +97.0306 7.89727 48.8048 +96.6842 8.0396 49.6843 +96.8594 8.22655 50.8397 +96.3184 8.35364 51.6251 +96.6455 8.55728 52.8836 +96.9576 8.76247 54.1516 +96.3886 8.8893 54.9354 +96.6748 9.09628 56.2146 +96.1742 9.2307 57.0453 +96.4336 9.43952 58.3358 +96.5927 9.6413 59.5828 +96.0623 9.77557 60.4126 +96.1955 9.97871 61.668 +96.2304 10.1741 62.8757 +96.4171 10.3883 64.199 +96.5876 10.6037 65.5304 +95.9227 10.7288 66.3034 +96.0656 10.9456 67.6431 +96.1112 11.1542 68.9323 +96.1413 11.3637 70.2273 +96.2356 11.5838 71.5875 +96.2338 11.7953 72.8946 +96.2949 12.0175 74.2678 +96.2608 12.2309 75.5861 +96.2107 12.445 76.9095 +96.2987 12.6802 78.3633 +96.2152 12.8961 79.6975 +96.1153 13.1127 81.0361 +96.0745 13.3405 82.4439 +96.0161 13.5692 83.8572 +95.94 13.7987 85.2756 +95.8461 14.0291 86.699 +96.3924 14.3582 88.7332 +96.1846 14.58 90.1038 +96.0319 14.8134 91.5461 +95.7895 15.0363 92.9234 +95.7423 15.2935 94.513 +96.0246 15.6086 96.4606 +95.8629 15.8568 97.9943 +95.6125 16.0942 99.4613 +96.0254 16.4488 101.653 +95.6636 16.6761 103.058 +95.9533 17.0226 105.199 +95.6161 17.2633 106.686 +95.6534 17.5768 108.624 +95.274 17.8188 110.12 +95.3254 18.1466 112.145 +95.3481 18.4762 114.182 +94.7757 18.6952 115.535 +94.9335 19.0641 117.816 +95.0581 19.4349 120.107 +94.9668 19.7694 122.174 +94.9062 20.1179 124.328 +94.7553 20.4548 126.41 +94.5159 20.78 128.42 +95.1191 21.3011 131.64 +95.1563 21.7076 134.152 +94.9297 22.0633 136.35 +94.7273 22.4331 138.636 +94.5468 22.8175 141.011 +94.9306 23.3502 144.303 +94.2424 23.6299 146.032 +94.4316 24.1396 149.182 +94.52 24.6381 152.262 +94.767 25.1934 155.694 +94.3006 25.5723 158.035 +94.3 26.09 161.235 +93.8067 26.4847 163.674 +94.1985 27.1453 167.757 +94.048 27.6686 170.991 +94.2699 28.3205 175.019 +94.3352 28.9467 178.889 +94.0214 29.4756 182.158 +94.0585 30.1345 186.23 +93.9429 30.767 190.139 +94.0236 31.4879 194.594 +93.5254 32.0376 197.991 +93.9695 32.937 203.549 +93.5901 33.5776 207.508 +93.6263 34.3953 212.561 +93.502 35.1861 217.449 +93.9488 36.23 223.9 +93.6142 37.0113 228.728 +93.8976 38.0767 235.312 +93.7491 39.0115 241.089 +93.5404 39.9635 246.973 +93.2347 40.9179 252.871 +93.0987 41.995 259.527 +93.145 43.2106 267.04 +92.8433 44.3235 273.917 +92.736 45.5905 281.747 +92.3167 46.7692 289.032 +92.6234 48.3931 299.067 +92.3618 49.8069 307.804 +92.5039 51.5306 318.457 +92.4912 53.2738 329.23 +92.3466 55.0517 340.217 +92.3652 57.0496 352.564 +92.0755 58.9896 364.553 +105.144 69.9571 432.332 +105.322 72.8715 450.342 +101.164 72.8908 450.462 +97.0532 72.9352 450.736 +92.8656 72.9112 450.588 +90.9968 74.7784 462.127 +90.7533 78.2164 483.374 +90.4707 81.958 506.497 +88.5315 84.5073 522.251 +86.9619 87.7039 542.006 +86.7493 92.7191 573 +89.2935 101.489 627.198 +85.7035 103.985 642.624 +86.8685 113.011 698.403 +88.8645 124.587 769.939 +89.7272 136.366 842.736 +87.3059 144.833 895.064 +83.748 152.906 944.952 +81.3072 165.025 1019.84 +73.328 167.505 1035.18 +63.0754 164.731 1018.03 +54.2672 165.403 1022.18 +44.9062 164.291 1015.31 +36.0477 164.89 1019.02 +26.8288 163.657 1011.39 +17.983 164.566 1017.01 +8.9447 163.723 1011.8 +5.14033e-14 164.688 1017.76 +-8.91677 163.212 1008.64 +-17.9289 164.071 1013.95 +-26.7476 163.162 1008.33 +-35.8557 164.012 1013.59 +-44.5747 163.079 1007.82 +-53.7804 163.919 1013.01 +-62.4038 162.977 1007.19 +-71.7515 163.903 1012.91 +-80.1695 162.715 1005.57 +-89.57 163.536 1010.64 +-98.1844 162.879 1006.59 +-107.57 163.483 1010.32 +-117.199 164.311 1015.43 +-126.781 164.935 1019.29 +-134.912 163.691 1011.6 +-145.046 164.857 1018.81 +-146.243 156.307 965.967 +-113.712 114.682 708.732 +-119.593 114.157 705.487 +-126.19 114.317 706.471 +-149.397 128.759 795.722 +-625.224 513.79 3175.2 +-653.269 512.899 3169.69 +-681.264 511.969 3163.95 +-142.158 102.428 632.997 +-144.913 100.264 619.629 +-150.899 100.4 620.469 +-178.127 114.12 705.256 +-145.22 89.6958 554.316 +-144.292 86.0184 531.59 +-149.921 86.3527 533.656 +-903.181 503.131 3109.33 +-110.738 59.7163 369.044 +-112.914 58.9944 364.583 +-116.253 58.8957 363.973 +-119.435 58.7162 362.863 +-123.336 58.8807 363.88 +-128.469 59.5977 368.311 +-1093.78 493.384 3049.09 +-1120.7 491.841 3039.55 +-1147.52 490.259 3029.78 +-1174.26 488.641 3019.78 +-386.146 156.587 967.701 +-1227.4 485.264 2998.91 +-420.875 162.304 1003.03 +-159.145 59.8885 370.108 +-160.815 59.0783 365.101 +-154.763 55.5248 343.141 +-134.817 47.2543 292.03 +-137.224 47.0067 290.499 +-139.615 46.7559 288.95 +-141.331 46.2868 286.05 +-143.363 45.9307 283.85 +-147.502 46.2416 285.771 +-150.438 46.1617 285.277 +-417.642 125.468 775.384 +-420.091 123.589 763.776 +-422.172 121.658 751.84 +-423.583 119.591 739.067 +-425.55 117.737 727.61 +-426.84 115.749 715.326 +-428.203 113.836 703.498 +-428.135 111.6 689.682 +-435.965 111.446 688.731 +-436.18 109.365 675.874 +-438.979 107.976 667.288 +-441.715 106.601 658.79 +-444.111 105.174 649.968 +-446.385 103.747 641.154 +-448.193 102.244 631.866 +-450.742 100.94 623.802 +-453.3 99.6614 615.903 +-455.515 98.3324 607.69 +-457.139 96.9027 598.855 +-460.954 95.9576 593.014 +-459.838 94.0149 581.008 +-476.659 95.7205 591.549 +-467.774 92.2718 570.236 +-470.634 91.1971 563.594 +-473.863 90.2073 557.477 +-476.76 89.1667 551.046 +-478.792 87.9804 543.715 +-481.924 87.0105 537.721 +-485.387 86.1099 532.155 +-488.181 85.1004 525.916 +-490.698 84.0544 519.452 +-493.826 83.1239 513.702 +-496.959 82.2026 508.008 +-498.977 81.1079 501.243 +-501.622 80.127 495.181 +-504.268 79.1559 489.18 +-2356.92 363.567 2246.83 +-382.708 58.0122 358.513 +-2396.28 356.941 2205.88 +-383.089 56.0732 346.53 +-382.497 55.0133 339.98 +-384.214 54.298 335.559 +-141.055 19.5863 121.043 +-141.588 19.3164 119.374 +-143.25 19.2004 118.658 +-140.976 18.5631 114.719 +-141.596 18.3156 113.19 +-142.513 18.1076 111.904 +-146.806 18.3214 113.225 +-155.18 19.0204 117.545 +-156.213 18.8033 116.204 +-157.476 18.6134 115.03 +-158.648 18.4119 113.785 +-159.892 18.2179 112.586 +-161.291 18.0401 111.487 +-380.746 41.7997 258.32 +-382.435 41.2048 254.644 +-380.169 40.194 248.397 +-381.595 39.5843 244.629 +-380.623 38.7332 239.369 +-380.858 38.015 234.931 +-380.874 37.2823 230.403 +-380.668 36.536 225.791 +-379.72 35.7284 220.8 +-380.791 35.1179 217.027 +-379.475 34.2948 211.94 +-379.935 33.6405 207.897 +-380.264 32.9802 203.816 +-380.639 32.3288 199.79 +-380.794 31.6643 195.684 +-380.549 30.9726 191.409 +-381.421 30.377 187.728 +-380.549 29.6479 183.223 +-381.072 29.0339 179.428 +-379.924 28.2991 174.887 +-379.454 27.6226 170.707 +-379.761 27.0081 166.909 +-379.663 26.3695 162.962 +-380.445 25.7956 159.415 +-379.345 25.0993 155.112 +-380.053 24.5276 151.579 +-380.448 23.9383 147.938 +-379.781 23.2869 143.912 +-113.618 6.78561 41.9347 +-112.857 6.5614 40.5492 +-110.76 6.2652 38.7187 +-109.302 6.01177 37.1525 +-108.773 5.81355 35.9275 +-108.611 5.63703 34.8366 +-108.342 5.45661 33.7216 +-108.254 5.28669 32.6715 +-108.922 5.15373 31.8498 +-109.295 5.00612 30.9376 +-109.083 4.83223 29.863 +-109.246 4.67585 28.8965 +-109.885 4.53939 28.0532 +-110.323 4.39377 27.1533 +-110.656 4.24356 26.225 +-111.468 4.1107 25.404 +-112.762 3.9932 24.6778 +-113.856 3.86575 23.8902 +-115.043 3.73874 23.1053 +-117.795 3.65749 22.6031 +-130.871 3.87447 23.9441 +-160.721 4.52682 27.9755 +-161.258 4.31052 26.6388 +-164.746 4.16803 25.7583 +-163.88 3.91225 24.1775 +-857.473 19.2498 118.963 +-867.019 18.233 112.679 +-380.145 7.45583 46.0767 +-380.24 6.92022 42.7666 +-899.446 15.1007 93.3216 +-404.031 6.21433 38.4043 +-403.857 5.64393 34.8792 +-404.15 5.08076 31.3989 +-403.914 4.51164 27.8817 +-403.746 3.94453 24.377 +-146.399 1.22556 7.57393 +-403.715 2.8156 17.4003 +-403.554 2.25106 13.9115 +-144.85 0.605884 3.74434 +-145.778 0.406457 2.51189 +-145.594 0.202957 1.25427 +119.8 1.77636e-15 -1.13687e-13 +120.295 0.177033 1.03477 +119.682 0.352286 2.05913 +120.359 0.531486 3.10656 +120.327 0.708586 4.14172 +120.385 0.886368 5.18086 +120.235 1.06261 6.21101 +120.974 1.24774 7.29311 +120.905 1.42572 8.3334 +120.826 1.60359 9.37305 +120.838 1.78281 10.4206 +120.343 1.95411 11.4218 +120.536 2.1364 12.4874 +120.222 2.30989 13.5014 +120.793 2.50111 14.6191 +120.659 2.67876 15.6575 +120.12 2.84684 16.6399 +120.66 3.04094 17.7744 +121.189 3.23686 18.9196 +120.623 3.40394 19.8962 +120.344 3.5784 20.9159 +120.055 3.75229 21.9323 +119.857 3.92882 22.9641 +120.531 4.13531 24.1711 +120.214 4.30901 25.1864 +120.768 4.51496 26.3902 +120.627 4.69629 27.4501 +121.255 4.90906 28.6937 +120.996 5.08732 29.7357 +120.728 5.26518 30.7753 +121.127 5.47319 31.9911 +120.839 5.65124 33.0318 +120.734 5.83815 34.1243 +121.099 6.04911 35.3574 +120.781 6.22709 36.3977 +121.122 6.44009 37.6427 +121.45 6.65458 38.8964 +121.48 6.85445 40.0646 +121.972 7.08237 41.3968 +121.695 7.26723 42.4773 +121.22 7.44027 43.4887 +119.894 7.55931 44.1845 +116.324 7.52998 44.0131 +112.301 7.45985 43.6032 +109.593 7.46689 43.6444 +106.893 7.46656 43.6424 +102.912 7.36659 43.0581 +101.06 7.41017 43.3128 +98.4802 7.39399 43.2183 +96.8199 7.44074 43.4915 +97.4281 7.66133 44.7809 +97.2084 7.81892 45.702 +96.5305 7.93951 46.4068 +98.0848 8.2468 48.2029 +97.1197 8.34489 48.7763 +96.6842 8.48749 49.6098 +96.8594 8.68486 50.7634 +96.4062 8.82707 51.5947 +96.7329 9.04218 52.852 +97.0447 9.25892 54.1189 +96.4752 9.39296 54.9023 +96.6748 9.60304 56.1303 +97.0313 9.83179 57.4673 +96.4336 9.9654 58.2483 +96.5927 10.1784 59.4934 +96.737 10.3927 60.7457 +96.0278 10.5163 61.4681 +96.3138 10.7502 62.8357 +96.4171 10.967 64.1027 +96.5052 11.1849 65.3763 +96.0046 11.3362 66.2605 +96.0656 11.5553 67.5416 +96.0303 11.7657 68.7709 +96.1413 11.9968 70.122 +96.1557 12.219 71.4208 +95.5991 12.3703 72.3052 +96.2949 12.687 74.1563 +96.2608 12.9122 75.4727 +96.2107 13.1383 76.7941 +96.2987 13.3867 78.2457 +96.2152 13.6146 79.5779 +96.1153 13.8433 80.9146 +96.0745 14.0838 82.3202 +96.0161 14.3252 83.7313 +95.94 14.5675 85.1476 +95.8461 14.8106 86.5689 +95.7342 15.0546 87.9951 +96.1846 15.3923 89.9686 +95.9599 15.6269 91.3403 +95.7895 15.8739 92.784 +95.7423 16.1455 94.3711 +95.4638 16.382 95.7535 +95.8629 16.7402 97.8472 +95.6125 16.9908 99.312 +95.3434 17.2417 100.779 +95.6636 17.6051 102.903 +95.8864 17.9584 104.968 +95.6161 18.225 106.526 +95.719 18.5687 108.535 +95.274 18.8115 109.954 +95.3254 19.1576 111.977 +95.2845 19.4923 113.934 +95.405 19.8677 116.128 +95.4937 20.2449 118.333 +95.0581 20.5176 119.927 +94.9059 20.8574 121.913 +94.7859 21.2117 123.984 +94.5173 21.5402 125.904 +95.28 22.1151 129.264 +95.0611 22.4741 131.362 +94.6401 22.7927 133.224 +94.3066 23.1396 135.252 +94.7273 23.6829 138.428 +94.5468 24.0886 140.799 +94.8761 24.6369 144.004 +94.7797 25.0885 146.643 +94.4316 25.4844 148.958 +94.52 26.0107 152.034 +94.6125 26.5536 155.207 +94.1991 26.9677 157.628 +94.3 27.5435 160.993 +93.8067 27.9601 163.428 +94.6348 28.7903 168.281 +93.6663 29.0915 170.041 +94.2699 29.8983 174.757 +94.3814 30.5743 178.708 +94.0214 31.1177 181.884 +94.0139 31.7983 185.863 +93.8991 32.4659 189.765 +94.0236 33.2421 194.302 +93.8635 33.9447 198.408 +93.9695 34.772 203.244 +93.6308 35.4636 207.286 +93.6662 36.3268 212.332 +93.9318 37.317 218.12 +93.6044 38.1083 222.745 +93.6142 39.0732 228.385 +93.8976 40.198 234.959 +93.7849 41.2005 240.819 +93.5404 42.1899 246.602 +93.2347 43.1975 252.491 +93.0987 44.3346 259.138 +93.145 45.6179 266.639 +92.6847 46.7127 273.038 +92.4888 48.0021 280.574 +92.3768 49.4069 288.786 +92.331 50.9279 297.676 +92.3902 52.5979 307.437 +92.2283 54.2393 317.032 +92.5446 56.2743 328.926 +92.3208 58.1024 339.612 +92.3902 60.2441 352.13 +92.0513 62.2596 363.911 +103.813 72.9199 426.22 +105.322 76.9312 449.667 +101.164 76.9516 449.786 +96.8868 76.8666 449.289 +92.8656 76.9732 449.912 +91.035 78.9774 461.627 +90.7715 82.5904 482.745 +90.4881 86.5405 505.834 +88.5811 89.265 521.758 +87.0088 92.6398 541.485 +86.6754 97.8012 571.653 +89.2795 107.126 626.159 +85.6643 109.728 641.366 +86.71 119.089 696.083 +89.1815 131.996 771.526 +89.445 143.51 838.824 +87.2101 152.734 892.74 +83.5301 161.005 941.08 +80.8364 173.208 1012.41 +72.3514 174.481 1019.85 +62.4588 172.208 1006.57 +53.7386 172.916 1010.7 +44.5354 172.013 1005.42 +35.6743 172.274 1006.95 +26.6665 171.729 1003.77 +17.8259 172.217 1006.61 +8.87227 171.444 1002.1 +5.67324e-14 172.244 1006.77 +-8.86703 171.343 1001.51 +-17.7962 171.93 1004.94 +-26.5853 171.206 1000.71 +-35.5661 171.751 1003.89 +-44.2519 170.916 999.015 +-53.2989 171.502 1002.44 +-62.0619 171.114 1000.17 +-71.0958 171.454 1002.16 +-79.6124 170.586 997.083 +-88.8727 171.303 1001.27 +-97.3793 170.544 996.836 +-106.567 170.982 999.399 +-116.475 172.394 1007.65 +-125.769 172.734 1009.64 +-133.646 171.188 1000.6 +-144.42 173.289 1012.88 +-146.08 164.831 963.446 +-113.806 121.171 708.252 +-119.593 120.517 704.428 +-126.138 120.635 705.119 +-149.506 136.031 795.109 +-625.224 542.414 3170.44 +-653.269 541.473 3164.94 +-681.264 540.491 3159.2 +-142.028 108.035 631.47 +-144.891 105.834 618.604 +-151.133 106.158 620.497 +-178.272 120.576 704.771 +-145.045 94.5785 552.816 +-144.343 90.843 530.982 +-149.76 91.066 532.285 +-903.071 531.095 3104.28 +-110.709 63.0269 368.395 +-113.148 62.41 364.79 +-116.253 62.1768 363.427 +-119.404 61.9712 362.225 +-123.336 62.161 363.334 +-128.372 62.8701 367.479 +-1093.78 520.871 3044.51 +-1120.7 519.242 3034.99 +-1147.52 517.572 3025.23 +-1174.26 515.864 3015.25 +-433.351 185.52 1084.37 +-1227.4 512.299 2994.41 +-420.416 171.159 1000.43 +-158.637 63.023 368.373 +-161.214 62.5242 365.457 +-163.63 61.9765 362.256 +-135.314 50.071 292.668 +-136.717 49.4422 288.992 +-140.045 49.513 289.406 +-141.243 48.8351 285.444 +-143.586 48.5651 283.866 +-147.275 48.7427 284.904 +-150.853 48.868 285.636 +-418.111 132.606 775.091 +-420.472 130.593 763.323 +-422.172 128.435 750.712 +-423.583 126.253 737.958 +-425.75 124.355 726.86 +-426.84 122.198 714.252 +-428.203 120.177 702.443 +-428.606 117.947 689.404 +-435.647 117.569 687.195 +-436.019 115.416 674.61 +-439.142 114.034 666.536 +-440.998 112.357 656.733 +-443.72 110.935 648.42 +-446.215 109.486 639.949 +-448.709 108.065 631.646 +-450.742 106.563 622.866 +-453.3 105.214 614.979 +-455.515 103.811 606.778 +-457.801 102.449 598.821 +-461.502 101.424 592.828 +-460.207 99.3323 580.602 +-476.099 100.934 589.967 +-468.34 97.5302 570.069 +-470.952 96.3429 563.129 +-473.606 95.1812 556.339 +-476.955 94.1727 550.444 +-479.382 92.9963 543.568 +-481.924 91.8579 536.914 +-485.387 90.9071 531.357 +-488.181 89.8413 525.127 +-490.902 88.7741 518.889 +-493.481 87.6936 512.574 +-496.681 86.7336 506.962 +-499.188 85.6626 500.702 +-501.904 84.6385 494.716 +-504.268 83.5658 488.446 +-2356.92 383.821 2243.45 +-2376.69 380.337 2223.09 +-385.57 60.6326 354.401 +-382.057 59.0375 345.077 +-382.943 58.1458 339.865 +-383.241 57.1778 334.207 +-142.036 20.8213 121.702 +-141.588 20.3925 119.195 +-143.25 20.2701 118.48 +-141.67 19.6938 115.111 +-141.596 19.336 113.02 +-142.2 19.0744 111.491 +-147.516 19.4355 113.601 +-155.18 20.08 117.369 +-155.494 19.7594 115.495 +-156.832 19.5701 114.388 +-158.244 19.3881 113.324 +-160.381 19.2915 112.76 +-161.291 19.0451 111.32 +-382.724 44.3575 259.272 +-383.43 43.6135 254.923 +-380.169 42.4332 248.024 +-381.511 41.7803 244.208 +-382.394 41.0814 240.123 +-381.367 40.1865 234.892 +-381.045 39.3771 230.161 +-380.154 38.5194 225.148 +-379.72 37.7189 220.469 +-380.705 37.0659 216.652 +-380.345 36.2883 212.107 +-380.285 35.5474 207.776 +-379.385 34.7369 203.039 +-380.021 34.0745 199.167 +-381.592 33.4983 195.799 +-378.232 32.4991 189.959 +-379.452 31.9037 186.479 +-379.74 31.2332 182.56 +-381.162 30.6586 179.201 +-379.38 29.8328 174.374 +-380.364 29.2315 170.86 +-379.944 28.5266 166.739 +-380.305 27.8856 162.993 +-379.616 27.1735 158.83 +-380.731 26.5944 155.445 +-379.775 25.8751 151.242 +-379.889 25.2348 147.499 +-380.621 24.6387 144.015 +-114.274 7.20497 42.1134 +-112.857 6.92694 40.4883 +-110.76 6.61424 38.6606 +-109.396 6.35217 37.1287 +-108.773 6.13743 35.8736 +-108.611 5.95107 34.7843 +-108.342 5.7606 33.671 +-108.349 5.58614 32.6513 +-108.826 5.43606 31.774 +-109.295 5.28501 30.8912 +-109.083 5.10144 29.8182 +-110.019 4.97127 29.0573 +-109.885 4.79228 28.0111 +-110.42 4.64263 27.1364 +-110.753 4.4839 26.2086 +-111.37 4.33592 25.3437 +-111.786 4.17916 24.4274 +-113.856 4.08111 23.8543 +-115.043 3.94703 23.0706 +-117.501 3.85158 22.5127 +-130.871 4.09032 23.9081 +-159.834 4.75265 27.7795 +-161.258 4.55066 26.5988 +-163.265 4.36066 25.4883 +-165.66 4.17508 24.4035 +-858.364 20.3433 118.907 +-867.019 19.2488 112.51 +-380.046 7.86914 45.9955 +-379.743 7.2962 42.6467 +-900.341 15.9578 93.2744 +-403.633 6.55407 38.3089 +-403.359 5.95102 34.784 +-403.652 5.35721 31.3131 +-402.517 4.74651 27.7436 +-404.145 4.16842 24.3646 +-143.803 1.2709 7.42845 +-403.715 2.97246 17.3742 +-403.654 2.37706 13.894 +-145.85 0.644053 3.76452 +-145.778 0.429101 2.50812 +-145.994 0.214852 1.25582 +119.8 1.77636e-15 -1.13687e-13 +119.495 0.185121 1.02626 +119.682 0.370847 2.05587 +120.459 0.559953 3.10422 +120.427 0.746538 4.1386 +119.686 0.927645 5.1426 +120.235 1.11859 6.20117 +120.076 1.30373 7.2275 +120.705 1.49836 8.30647 +120.627 1.68529 9.34277 +119.842 1.86125 10.3183 +120.343 2.05706 11.4038 +120.536 2.24896 12.4676 +120.123 2.42958 13.4689 +120.892 2.63504 14.6079 +120.659 2.81989 15.6327 +120.219 2.9993 16.6273 +120.759 3.20378 17.7609 +120.202 3.37963 18.7357 +120.623 3.58328 19.8647 +120.442 3.77001 20.8999 +120.154 3.95321 21.9155 +120.74 4.16629 23.0967 +120.433 4.34963 24.1131 +120.312 4.53972 25.1669 +120.768 4.75283 26.3484 +120.53 4.93972 27.3844 +120.379 5.1304 28.4415 +120.996 5.35535 29.6886 +120.631 5.53812 30.7018 +121.127 5.76155 31.9404 +120.743 5.94423 32.9532 +120.734 6.14574 34.0702 +121.099 6.36781 35.3014 +120.781 6.55517 36.34 +121.122 6.77939 37.583 +121.64 7.01615 38.8956 +120.722 7.17052 39.7514 +121.877 7.44972 41.2992 +121.695 7.65011 42.41 +121.22 7.83226 43.4198 +120.081 7.97001 44.1835 +115.577 7.87582 43.6613 +113.139 7.91141 43.8587 +109.593 7.86029 43.5752 +106.985 7.86671 43.6109 +103.741 7.81713 43.336 +101.243 7.81474 43.3227 +98.4802 7.78355 43.1498 +96.4559 7.80331 43.2593 +97.3375 8.05746 44.6683 +97.8402 8.28436 45.9262 +96.6204 8.36558 46.3764 +98.1743 8.6892 48.1705 +97.5652 8.82484 48.9224 +96.6842 8.93465 49.5312 +96.2413 9.08409 50.3596 +96.4062 9.29212 51.5129 +96.7329 9.51857 52.7683 +96.9576 9.738 53.9847 +96.4752 9.88783 54.8153 +96.6748 10.109 56.0413 +96.9456 10.3406 57.3256 +96.4336 10.4904 58.156 +96.5927 10.7147 59.3992 +96.5683 10.9211 60.5437 +96.1955 11.0896 61.4779 +96.2304 11.3068 62.6819 +96.4171 11.5448 64.0012 +96.5052 11.7742 65.2728 +95.9227 11.9232 66.099 +96.0656 12.1641 67.4346 +96.1112 12.396 68.7198 +96.2217 12.6394 70.0694 +96.2356 12.8735 71.3669 +96.2338 13.1085 72.67 +96.2161 13.3445 73.9784 +96.2608 13.5925 75.3532 +96.2107 13.8305 76.6725 +96.2987 14.0919 78.1218 +96.2152 14.3319 79.4518 +96.1153 14.5726 80.7864 +96.0745 14.8258 82.1898 +96.0161 15.0799 83.5987 +95.94 15.335 85.0128 +95.8461 15.5909 86.4318 +95.8073 15.8599 87.9228 +96.1846 16.2032 89.8261 +96.0319 16.4626 91.264 +95.8609 16.7227 92.706 +95.7423 16.9961 94.2217 +96.0947 17.359 96.2335 +95.2377 17.5072 97.0551 +95.6125 17.886 99.1547 +96.0254 18.2801 101.339 +95.6636 18.5327 102.74 +95.8864 18.9046 104.802 +95.4835 19.1588 106.211 +95.719 19.547 108.363 +95.2091 19.7891 109.705 +95.1968 20.1397 111.649 +95.2845 20.5193 113.753 +95.405 20.9144 115.944 +95.058 21.2143 117.606 +95.0581 21.5986 119.737 +94.845 21.9421 121.641 +94.7859 22.3293 123.787 +94.5768 22.6893 125.783 +94.751 23.151 128.343 +94.9449 23.6292 130.994 +95.1563 24.1243 133.739 +94.7031 24.4611 135.605 +94.7832 24.9454 138.29 +94.602 25.3725 140.658 +94.9306 25.9498 143.858 +94.7797 26.4103 146.411 +94.4316 26.8271 148.722 +94.4677 27.3658 151.709 +94.664 27.9676 155.045 +94.1991 28.3885 157.378 +94.3 28.9946 160.738 +94.2991 29.5877 164.026 +94.1985 30.1675 167.24 +94.0957 30.7646 170.55 +94.2699 31.4735 174.48 +94.3814 32.1851 178.425 +94.0214 32.7571 181.596 +94.0139 33.4736 185.568 +93.9429 34.1923 189.553 +94.0667 35.0095 194.083 +93.9058 35.7492 198.184 +93.9695 36.6039 202.922 +93.6308 37.332 206.958 +93.6263 38.2245 211.906 +93.502 39.1034 216.778 +93.9105 40.2472 223.119 +93.8764 41.247 228.662 +93.8976 42.3158 234.587 +93.7491 43.3547 240.346 +93.5404 44.4127 246.211 +93.2347 45.4733 252.091 +92.9986 46.6201 258.449 +93.145 48.0213 266.217 +92.7482 49.2075 272.792 +92.427 50.4973 279.943 +92.437 52.0439 288.517 +92.331 53.611 297.204 +92.3618 55.3519 306.856 +92.4488 57.2335 317.286 +92.4912 59.2048 328.215 +92.2949 61.1463 338.978 +92.3652 63.401 351.477 +92.0271 65.5224 363.238 +100.615 74.3967 412.435 +105.3 80.9671 448.859 +101.207 81.0404 449.265 +97.0948 81.0899 449.54 +92.8656 81.0285 449.199 +91.0159 83.1209 460.799 +90.7715 86.9417 481.98 +90.3144 90.9252 504.064 +88.6141 94.003 521.127 +86.9306 97.4329 540.141 +86.7493 103.042 571.234 +89.2656 112.753 625.07 +85.586 115.404 639.765 +86.7466 125.416 695.273 +89.0117 138.686 768.838 +89.2673 150.771 835.832 +86.5775 159.615 884.86 +83.9223 170.283 944.001 +79.4006 179.096 992.856 +71.1935 180.734 1001.94 +61.5308 178.588 990.042 +53.1576 180.06 998.2 +43.8724 178.379 988.88 +35.3462 179.681 996.104 +26.279 178.151 987.621 +17.6269 179.268 993.811 +8.74224 177.832 985.849 +5.07372e-14 179.366 994.352 +-8.7117 177.211 982.407 +-17.6217 179.215 993.516 +-26.1612 177.352 983.19 +-35.2241 179.062 992.669 +-43.5409 177.031 981.411 +-52.7232 178.588 990.042 +-60.9264 176.834 980.318 +-70.4192 178.769 991.046 +-78.3649 176.76 979.906 +-87.914 178.382 988.9 +-95.7882 176.596 978.999 +-105.678 178.489 989.491 +-114.709 178.725 990.799 +-124.355 179.79 996.704 +-130.8 176.37 977.747 +-143.251 180.942 1003.09 +-145.592 172.936 958.708 +-113.963 127.731 708.103 +-119.643 126.919 703.603 +-126.364 127.218 705.263 +-149.725 143.408 795.011 +-625.224 570.991 3165.41 +-653.269 570 3159.92 +-681.264 568.967 3154.19 +-142.222 113.883 631.335 +-144.891 111.41 617.624 +-151.226 111.82 619.896 +-178.175 126.859 703.273 +-145.27 99.716 552.797 +-144.343 95.6291 530.141 +-149.76 95.8638 531.442 +-108.325 67.0625 371.776 +-110.738 66.3645 367.906 +-113.177 65.7152 364.306 +-116.253 65.4526 362.851 +-119.404 65.2362 361.651 +-123.336 65.4359 362.758 +-128.306 66.1488 366.711 +-1093.78 548.313 3039.69 +-1120.7 546.598 3030.19 +-1147.52 544.84 3020.44 +-1174.26 543.042 3010.47 +-427.084 192.47 1067 +-1227.4 539.289 2989.67 +-420.875 180.374 999.942 +-159.067 66.5232 368.786 +-161.533 65.9486 365.601 +-163.915 65.3553 362.312 +-142.281 55.4229 307.249 +-135.999 51.7735 287.018 +-140.088 52.1376 289.036 +-141.199 51.3922 284.904 +-143.542 51.1078 283.327 +-147.638 51.4371 285.153 +-416.22 141.936 786.853 +-418.346 139.671 774.299 +-420.234 137.395 761.681 +-422.415 135.28 749.953 +-424.026 133.044 737.56 +-425.75 130.906 725.709 +-427.5 128.835 714.223 +-428.666 126.646 702.089 +-428.971 124.267 688.9 +-435.647 123.763 686.107 +-436.663 121.676 674.538 +-438.979 119.997 665.232 +-441.715 118.469 656.76 +-443.887 116.824 647.638 +-446.668 115.371 639.584 +-447.906 113.555 629.516 +-450.742 112.177 621.879 +-453.3 110.757 614.005 +-455.337 109.237 605.579 +-457.801 107.847 597.873 +-462.111 106.908 592.67 +-460.022 104.524 579.45 +-475.726 106.169 588.57 +-468.403 102.682 569.243 +-471.207 101.473 562.54 +-473.863 100.25 555.759 +-476.76 99.0938 549.348 +-479.382 97.8959 542.707 +-482.321 96.7773 536.506 +-485.187 95.657 530.296 +-487.979 94.5352 524.077 +-491.175 93.5031 518.355 +-492.793 92.1851 511.048 +-496.056 91.1883 505.522 +-499.818 90.2897 500.541 +-501.622 89.0476 493.655 +-504.625 88.0306 488.017 +-2356.92 404.043 2239.9 +-2376.69 400.375 2219.57 +-384.546 63.6575 352.9 +-380.583 61.9081 343.201 +-384.206 61.4112 340.447 +-384.364 60.3667 334.656 +-141.357 21.8136 120.928 +-141.512 21.4553 118.942 +-143.25 21.338 118.292 +-141.825 20.754 115.054 +-141.518 20.3435 112.779 +-142.513 20.1236 111.56 +-146.806 20.3611 112.876 +-155.418 21.1702 117.362 +-156.213 20.8967 115.845 +-156.832 20.6011 114.207 +-158.891 20.493 113.607 +-160.381 20.3079 112.581 +-159.898 19.8754 110.184 +-380.746 46.4533 257.524 +-383.927 45.9708 254.849 +-381.92 44.8746 248.772 +-381.26 43.9525 243.661 +-380.791 43.0646 238.738 +-381.537 42.3226 234.624 +-381.386 41.4887 230.002 +-380.154 40.5488 224.791 +-380.151 39.7512 220.369 +-379.406 38.8856 215.571 +-380.084 38.1739 211.626 +-380.285 37.4202 207.447 +-380.704 36.6941 203.422 +-380.462 35.9113 199.082 +-380.971 35.2058 195.171 +-379.48 34.3242 190.284 +-379.094 33.5527 186.007 +-380.28 32.9254 182.529 +-378.725 32.0674 177.773 +-379.652 31.4271 174.223 +-379.909 30.7346 170.384 +-380.218 30.0512 166.595 +-379.663 29.3052 162.46 +-379.984 28.6328 158.732 +-378.791 27.8528 154.408 +-380.145 27.265 151.15 +-380.541 26.61 147.518 +-379.781 25.8795 143.469 +-113.993 7.56591 41.9433 +-112.857 7.29189 40.4242 +-110.855 6.96864 38.6322 +-110.153 6.73308 37.3263 +-108.868 6.46642 35.848 +-108.611 6.2646 34.7292 +-107.77 6.03207 33.4401 +-108.445 5.88565 32.6284 +-108.73 5.71742 31.6958 +-109.199 5.55856 30.8151 +-109.083 5.37021 29.7709 +-109.922 5.22858 28.9858 +-109.691 5.03589 27.9175 +-110.323 4.88293 27.0696 +-110.753 4.72013 26.1671 +-111.468 4.56835 25.3257 +-111.688 4.3955 24.3674 +-113.856 4.29613 23.8165 +-115.043 4.15498 23.0341 +-117.795 4.06468 22.5334 +-129.986 4.27671 23.7089 +-160.031 5.0092 27.7696 +-160.173 4.75817 26.378 +-162.08 4.55708 25.2632 +-3240.51 85.9722 476.606 +-857.473 21.3929 118.596 +-867.019 20.2629 112.332 +-380.046 8.28373 45.9227 +-380.24 7.69065 42.6348 +-3258.55 60.7982 337.048 +-404.33 6.91127 38.3141 +-404.754 6.28621 34.849 +-402.655 5.62552 31.1863 +-403.515 5.00897 27.7683 +-403.147 4.37718 24.2659 +-144.602 1.34529 7.45789 +-403.815 3.12984 17.351 +-404.154 2.5054 13.8892 +-145.65 0.677055 3.7534 +-145.378 0.450469 2.49728 +-144.994 0.224624 1.24525 +119.7 3.55271e-15 -1.13687e-13 +119.495 0.194372 1.02455 +119.682 0.389379 2.05244 +120.359 0.587446 3.09647 +120.427 0.783844 4.13169 +119.586 0.973188 5.12974 +120.235 1.17449 6.19083 +120.974 1.37912 7.26942 +120.007 1.56413 8.24464 +120.627 1.76951 9.32718 +119.942 1.95591 10.3097 +120.343 2.15985 11.3847 +120.536 2.36134 12.4468 +120.222 2.5531 13.4576 +120.793 2.76445 14.5716 +120.659 2.96081 15.6066 +120.219 3.14918 16.5995 +120.759 3.36388 17.7312 +120.399 3.55435 18.7352 +120.721 3.76542 19.8478 +120.442 3.95841 20.865 +120.055 4.14737 21.8611 +120.74 4.37449 23.0582 +120.335 4.56328 24.0534 +121.095 4.79759 25.2884 +120.084 4.9621 26.1556 +120.627 5.19076 27.3609 +120.379 5.38677 28.394 +120.899 5.61846 29.6153 +120.728 5.81955 30.6753 +120.548 6.02052 31.7346 +121.514 6.28113 33.1083 +120.734 6.45285 34.0134 +121.099 6.68602 35.2425 +121.546 6.92634 36.5092 +120.931 7.10697 37.4613 +121.64 7.36676 38.8307 +121.575 7.58208 39.9656 +121.877 7.822 41.2303 +121.695 8.0324 42.3393 +121.126 8.21728 43.3138 +120.175 8.37481 44.1442 +116.324 8.32281 43.8701 +113.232 8.3136 43.8216 +109.686 8.26007 43.5394 +106.985 8.25983 43.5381 +103.741 8.20777 43.2637 +101.152 8.19782 43.2112 +98.4802 8.17251 43.0778 +96.1829 8.17006 43.065 +96.6124 8.39709 44.2616 +97.0279 8.62612 45.4689 +96.6204 8.78362 46.2991 +98.3533 9.14004 48.1778 +96.6742 9.18121 48.3948 +96.5955 9.37252 49.4032 +96.8594 9.59929 50.5985 +96.4062 9.75647 51.427 +96.6455 9.98521 52.6327 +97.0447 10.2338 53.943 +96.4752 10.3819 54.7239 +96.5886 10.6047 55.8981 +96.0885 10.7614 56.724 +96.3483 11.0049 58.0076 +96.5927 11.2501 59.3001 +96.0623 11.4068 60.1259 +97.0342 11.7453 61.9104 +96.3138 11.8821 62.6316 +96.4171 12.1217 63.8944 +95.8459 12.2781 64.7186 +96.6599 12.6153 66.4959 +96.0656 12.772 67.3221 +96.1112 13.0154 68.6052 +96.2217 13.271 69.9526 +96.2356 13.5168 71.2479 +96.2338 13.7636 72.5488 +96.2161 14.0114 73.855 +95.6347 14.179 74.7382 +96.2884 14.5334 76.6064 +96.2987 14.7961 77.9915 +95.6023 14.9522 78.8141 +96.1153 15.3008 80.6516 +96.0745 15.5666 82.0527 +96.0161 15.8335 83.4593 +95.94 16.1013 84.871 +96.5096 16.4834 86.885 +96.3924 16.7541 88.3122 +96.1121 17.0001 89.6087 +95.9599 17.2723 91.0435 +95.8609 17.5584 92.5514 +95.6715 17.8322 93.9949 +95.4638 18.1068 95.4423 +95.8629 18.5028 97.5293 +95.6125 18.7798 98.9893 +95.9572 19.1797 101.098 +95.6636 19.4588 102.569 +95.2842 19.7246 103.97 +95.6161 20.1439 106.18 +95.719 20.5238 108.182 +95.339 20.8064 109.672 +95.2611 21.1605 111.539 +95.3481 21.5592 113.64 +95.342 21.9452 115.675 +94.9335 22.2453 117.257 +94.9966 22.6632 119.459 +94.9668 23.0682 121.594 +94.7859 23.4451 123.581 +95.1122 23.958 126.284 +95.2212 24.4285 128.764 +95.1191 24.8555 131.015 +94.8122 25.2384 133.033 +94.7598 25.6987 135.46 +94.6154 26.1455 137.815 +94.602 26.6404 140.423 +94.9306 27.2465 143.618 +94.7259 27.7144 146.084 +94.4316 28.1677 148.474 +94.4677 28.7334 151.456 +94.149 29.2055 153.944 +94.3006 29.8394 157.286 +94.2 30.4113 160.3 +94.2991 31.0662 163.752 +94.247 31.6912 167.046 +94.0957 32.302 170.266 +94.2699 33.0463 174.189 +94.3814 33.7935 178.128 +94.0668 34.4108 181.382 +94.0139 35.1463 185.259 +93.8991 35.8842 189.148 +93.7223 36.6244 193.05 +93.8213 37.5017 197.674 +93.928 38.4162 202.494 +93.6308 39.1975 206.613 +93.6263 40.1347 211.553 +93.8536 41.2118 217.23 +93.9488 42.2756 222.837 +93.6142 43.1872 227.643 +93.9343 44.4477 234.287 +93.7491 45.5212 239.945 +93.5404 46.6321 245.801 +93.1321 47.6932 251.394 +93.1989 49.0553 258.574 +93.1125 50.4033 265.679 +92.7799 51.6842 272.431 +92.3343 52.9676 279.196 +92.3768 54.609 287.848 +92.6818 56.504 297.837 +92.447 58.1717 306.627 +92.4488 60.0935 316.757 +92.2507 62.0018 326.816 +92.2949 64.2019 338.413 +92.2901 66.5151 350.605 +92.0029 68.7786 362.537 +98.0704 76.1391 401.334 +105.525 85.1947 449.067 +101.315 85.1811 448.995 +97.0324 85.0874 448.501 +93.045 85.2421 449.317 +90.9968 87.2564 459.934 +90.7351 91.2498 480.984 +90.3318 95.4872 503.319 +88.8451 98.958 521.614 +86.8211 102.173 538.561 +86.6902 108.117 569.893 +89.363 118.516 624.708 +85.3119 120.782 636.652 +86.7832 131.739 694.406 +88.8645 145.376 766.286 +88.6401 157.193 828.576 +85.7053 165.903 874.485 +86.4934 184.27 971.299 +76.733 181.728 957.899 +69.4007 184.988 975.084 +59.4735 181.243 955.343 +51.8649 184.46 972.299 +42.4373 181.167 954.941 +34.5331 184.321 971.567 +25.4178 180.923 953.657 +17.2255 183.939 969.556 +8.44903 180.456 951.197 +5.4956e-14 184.004 969.9 +-8.44641 180.4 950.902 +-17.2098 183.772 968.672 +-25.2817 179.954 948.55 +-34.3969 183.594 967.739 +-42.1494 179.937 948.462 +-51.5614 183.38 966.609 +-58.9546 179.661 947.007 +-68.745 183.24 965.871 +-75.9406 179.851 948.007 +-85.9094 183.026 964.741 +-92.6445 179.335 945.289 +-103.379 183.33 966.345 +-109.739 179.525 946.29 +-121.004 183.687 968.229 +-126.467 179.049 943.777 +-139.354 184.816 974.179 +-145.238 181.135 954.777 +-114.056 134.224 707.504 +-120.006 133.666 704.561 +-126.416 133.631 704.376 +-149.779 150.629 793.975 +-625.224 599.524 3160.13 +-653.269 598.484 3154.65 +-681.264 597.4 3148.93 +-142.417 119.738 631.145 +-144.846 116.941 616.402 +-151.81 117.861 621.251 +-148.54 111.044 585.322 +-145.27 104.699 551.875 +-144.395 100.444 529.446 +-150.054 100.852 531.596 +-108.27 70.378 370.967 +-110.738 69.6809 367.293 +-113.177 68.9991 363.699 +-116.253 68.7234 362.246 +-119.651 68.638 361.796 +-123.622 68.8651 362.992 +-128.925 69.7892 367.863 +-1093.78 575.713 3034.62 +-1120.7 573.912 3025.13 +-1147.52 572.067 3015.4 +-1174.26 570.179 3005.45 +-1200.91 568.248 2995.27 +-421.844 194.61 1025.8 +-420.646 189.285 997.734 +-159.418 70.0019 368.984 +-161.055 69.0391 363.91 +-164.403 68.8255 362.784 +-167.287 68.4198 360.645 +-145.043 57.9758 305.594 +-140.734 54.9954 289.884 +-141.112 53.9268 284.252 +-143.542 53.6618 282.855 +-147.683 54.0241 284.765 +-415.435 148.748 784.059 +-418.158 146.585 772.659 +-420.043 144.196 760.066 +-422.415 142.04 748.702 +-423.878 139.644 736.073 +-426.2 137.593 725.264 +-427.398 135.241 712.863 +-428.924 133.055 701.339 +-430.748 131.017 690.599 +-435.117 129.79 684.129 +-436.663 127.756 673.412 +-438.761 125.931 663.793 +-442.046 124.482 656.155 +-444.782 122.909 647.86 +-446.725 121.151 638.597 +-448.766 119.458 629.674 +-451.264 117.92 621.562 +-453.3 116.292 612.98 +-456.051 114.876 605.517 +-457.981 113.281 597.111 +-464.363 112.798 594.565 +-461.315 110.055 580.109 +-474.294 111.139 585.82 +-468.151 107.756 567.988 +-471.716 106.659 562.209 +-474.184 105.331 555.208 +-477.539 104.216 549.329 +-479.579 102.83 542.025 +-482.321 101.613 535.611 +-485.655 100.534 529.923 +-488.654 99.3969 523.928 +-491.857 98.3119 518.209 +-494.17 97.062 511.62 +-496.681 95.8657 505.315 +-499.188 94.682 499.075 +-502.258 93.616 493.456 +-504.91 92.482 487.479 +-2356.92 424.234 2236.16 +-385.029 68.1031 358.976 +-384.326 66.8004 352.109 +-383.016 65.4172 344.819 +-382.497 64.1932 338.367 +-522.771 86.2072 454.404 +-141.659 22.9525 120.984 +-142.196 22.6365 119.319 +-143.174 22.3924 118.032 +-141.825 21.7911 114.862 +-141.674 21.3836 112.715 +-143.687 21.3033 112.291 +-147.516 21.4819 113.232 +-155.418 22.2282 117.166 +-155.734 21.8736 115.297 +-157.234 21.686 114.308 +-158.486 21.4623 113.129 +-160.625 21.3553 112.565 +-2683.95 350.287 1846.39 +-380.417 48.7323 256.871 +-384.259 48.3098 254.644 +-382.42 47.1787 248.682 +-380.505 46.0576 242.773 +-380.791 45.2166 238.34 +-381.537 44.4375 234.233 +-381.301 43.5521 229.566 +-380.668 42.6327 224.72 +-380.495 41.7755 220.201 +-379.839 40.8754 215.457 +-380.955 40.1734 211.757 +-380.285 39.2901 207.101 +-380.44 38.5012 202.942 +-380.462 37.7058 198.75 +-379.818 36.8533 194.256 +-380.549 36.1409 190.501 +-378.736 35.1963 185.522 +-378.752 34.4319 181.493 +-377.1 33.5256 176.716 +-380.468 33.0684 174.306 +-380.091 32.286 170.182 +-380.218 31.5529 166.317 +-380.855 30.8662 162.698 +-379.984 30.0636 158.467 +-379.714 29.316 154.527 +-380.331 28.6415 150.971 +-379.331 27.851 146.804 +-379.781 27.1727 143.229 +-113.525 7.91135 41.7013 +-112.387 7.62441 40.1888 +-110.855 7.31688 38.5678 +-109.396 7.02099 37.0081 +-108.962 6.79547 35.8194 +-109.467 6.62951 34.9446 +-108.342 6.36713 33.5616 +-108.636 6.19066 32.6314 +-108.826 6.00842 31.6708 +-109.103 5.83118 30.7366 +-108.794 5.62362 29.6425 +-109.729 5.48021 28.8866 +-109.497 5.2782 27.8217 +-110.226 5.12243 27.0007 +-110.85 4.96037 26.1464 +-111.37 4.79245 25.2613 +-111.786 4.61918 24.348 +-113.856 4.51081 23.7768 +-115.043 4.36261 22.9956 +-118.679 4.2998 22.6645 +-132.346 4.57195 24.0991 +-161.312 5.30161 27.9451 +-160.567 5.00827 26.3989 +-162.08 4.78481 25.221 +-165.265 4.60365 24.2662 +-857.869 22.4723 118.453 +-867.911 21.2975 112.261 +-381.237 8.72493 45.9897 +-380.737 8.08552 42.6193 +-3258.55 63.8364 336.486 +-405.126 7.27094 38.3256 +-403.06 6.57272 34.6452 +-404.549 5.93442 31.2808 +-403.515 5.25928 27.722 +-404.145 4.60731 24.2854 +-146.399 1.43007 7.538 +-405.014 3.296 17.3734 +-403.254 2.62473 13.8351 +-145.15 0.708449 3.73428 +-144.878 0.471353 2.48453 +-145.594 0.236824 1.24831 +119.8 1.77636e-15 -1.13687e-13 +120.395 0.205139 1.03045 +119.682 0.407879 2.04884 +120.359 0.615357 3.09104 +120.327 0.820405 4.12103 +119.686 1.02028 5.12503 +120.235 1.23029 6.17998 +120.974 1.44464 7.25668 +120.905 1.6507 8.29177 +120.627 1.85358 9.31084 +120.739 2.06244 10.36 +120.443 2.26433 11.3741 +120.536 2.47353 12.425 +121.017 2.69209 13.5228 +119.999 2.87676 14.4504 +120.659 3.10148 15.5793 +120.219 3.2988 16.5704 +120.66 3.52081 17.6856 +120.202 3.71711 18.6717 +120.623 3.9411 19.7968 +120.442 4.14648 20.8285 +120.94 4.37644 21.9836 +120.74 4.58233 23.0178 +120.433 4.78398 24.0307 +120.312 4.99305 25.0809 +120.084 5.19786 26.1097 +120.627 5.43739 27.3129 +120.379 5.64271 28.3443 +120.899 5.8854 29.5634 +120.728 6.09605 30.6215 +121.32 6.347 31.8821 +121.514 6.57956 33.0502 +120.638 6.75405 33.9267 +121.099 7.00369 35.1807 +121.451 7.24972 36.4166 +120.931 7.44464 37.3957 +121.735 7.7228 38.793 +121.48 7.93611 39.8644 +121.026 8.13643 40.8707 +121.601 8.40751 42.2324 +121.126 8.6077 43.2379 +120.55 8.80007 44.2043 +116.324 8.71825 43.7932 +113.046 8.69429 43.6729 +109.686 8.65253 43.4631 +106.893 8.64481 43.4244 +103.741 8.59774 43.1879 +100.968 8.57175 43.0574 +99.211 8.62433 43.3215 +96.0009 8.54204 42.9081 +97.2468 8.85381 44.4742 +97.0279 9.03597 45.3892 +96.8001 9.21808 46.304 +97.6373 9.50462 47.7433 +96.7633 9.6263 48.3545 +96.6842 9.82685 49.362 +96.8594 10.0554 50.5098 +96.4062 10.22 51.3369 +96.6455 10.4596 52.5405 +96.8706 10.7008 53.7519 +96.4752 10.8752 54.628 +95.8993 11.0293 55.4018 +96.9456 11.3732 57.1297 +96.3483 11.5278 57.906 +96.5927 11.7846 59.1962 +96.5683 12.0117 60.3368 +96.8665 12.2821 61.6951 +96.3138 12.4467 62.5218 +96.4171 12.6977 63.7825 +96.5052 12.9499 65.0497 +96.6599 13.2146 66.3794 +96.0656 13.3788 67.2041 +96.1112 13.6338 68.485 +96.1413 13.89 69.7716 +96.2356 14.159 71.123 +96.1544 14.4056 72.3619 +96.2161 14.6771 73.7256 +96.2608 14.9499 75.0957 +96.2107 15.2116 76.4105 +96.2987 15.4991 77.8548 +95.679 15.6752 78.7391 +96.1153 16.0278 80.5103 +96.0745 16.3062 81.909 +96.091 16.5987 83.378 +95.94 16.8663 84.7223 +95.8461 17.1478 86.1364 +96.3924 17.5502 88.1575 +95.6043 17.7137 88.979 +96.0319 18.1065 90.9521 +95.8609 18.3926 92.3892 +95.6715 18.6795 93.8302 +95.4638 18.9671 95.2751 +95.8629 19.3819 97.3584 +96.232 19.7993 99.4553 +95.9572 20.091 100.921 +96.2716 20.5129 103.04 +95.3511 20.6762 103.86 +95.6161 21.101 105.994 +95.719 21.4989 107.993 +95.339 21.7949 109.48 +95.2611 22.1659 111.343 +95.3481 22.5835 113.441 +95.2162 22.9574 115.319 +94.9335 23.3022 117.051 +95.0581 23.7554 119.327 +94.9059 24.1488 121.304 +94.6053 24.5124 123.13 +94.7553 25.002 125.59 +94.9861 25.5259 128.221 +95.0611 26.0206 130.706 +94.8695 26.4535 132.88 +94.7598 26.9198 135.222 +94.6714 27.404 137.655 +94.7124 27.9387 140.341 +94.3859 28.3775 142.545 +94.7259 29.0311 145.828 +94.3256 29.473 148.048 +94.52 30.1153 151.274 +94.767 30.794 154.684 +94.1991 31.2234 156.84 +94.3 31.8899 160.189 +94.2991 32.5423 163.465 +94.15 33.1627 166.582 +94.0957 33.8367 169.968 +94.2699 34.6164 173.884 +94.3814 35.3991 177.816 +94.0668 36.0457 181.064 +94.0585 36.8336 185.021 +93.8991 37.5892 188.817 +93.7223 38.3645 192.711 +93.8635 39.3013 197.417 +93.5133 40.0637 201.247 +93.6308 41.0599 206.251 +93.5465 42.0056 211.001 +93.7755 43.134 216.669 +93.9105 44.2662 222.357 +93.9139 45.384 227.971 +93.8976 46.5414 233.785 +93.7491 47.684 239.525 +93.4704 48.8111 245.187 +93.2347 50.0142 251.23 +93.0654 51.3122 257.75 +93.1776 52.835 265.399 +92.9385 54.2323 272.418 +92.736 55.7256 279.919 +92.4971 57.278 287.717 +92.3895 59.0018 296.376 +92.305 60.8418 305.619 +92.2283 62.7986 315.448 +92.1705 64.8912 325.96 +92.269 67.2336 337.726 +92.265 69.6564 349.896 +92.0271 72.0653 361.996 +96.1095 78.1619 392.62 +105.57 89.2806 448.471 +101.705 89.5713 449.932 +97.3858 89.4547 449.346 +93.1846 89.426 449.202 +91.035 91.4404 459.321 +90.7351 95.5853 480.141 +90.2971 99.9855 502.244 +89.1092 103.968 522.248 +86.6803 106.854 536.745 +86.4981 113.003 567.633 +89.2795 124.031 623.031 +85.1553 126.289 634.371 +88.2943 140.401 705.26 +88.9098 152.36 765.333 +87.8875 163.264 820.101 +87.6222 177.672 892.478 +83.6434 186.665 937.648 +73.0454 181.214 910.267 +66.6174 186.006 934.339 +56.769 181.221 910.303 +49.8552 185.736 932.986 +40.4657 180.957 908.98 +33.1441 185.312 930.854 +24.2582 180.872 908.553 +16.5431 185.046 929.516 +8.07117 180.576 907.065 +4.04121e-14 184.82 928.382 +-8.05896 180.303 905.692 +-16.5135 184.714 927.848 +-24.2189 180.58 907.083 +-32.98 184.395 926.248 +-40.3043 180.236 905.355 +-49.4679 184.294 925.739 +-56.3783 179.973 904.037 +-65.885 183.961 924.066 +-72.457 179.754 902.934 +-82.4493 184 924.263 +-88.6573 179.771 903.021 +-99.0407 183.982 924.174 +-104.736 179.481 901.561 +-115.386 183.481 921.657 +-120.802 179.154 899.922 +-132.047 183.447 921.483 +-139.044 181.651 912.461 +-114.182 140.756 707.039 +-120.171 140.209 704.294 +-126.59 140.172 704.108 +-150.691 158.745 797.405 +-625.224 628.009 3154.6 +-653.269 626.92 3149.12 +-681.264 625.783 3143.42 +-142.547 125.541 630.614 +-144.846 122.497 615.322 +-152.557 124.068 623.214 +-147.935 115.847 581.917 +-145.421 109.787 551.478 +-144.732 105.461 529.751 +-150.375 105.869 531.799 +-108.27 73.7218 370.317 +-111.05 73.1976 367.684 +-113.411 72.4267 363.812 +-116.554 72.1749 362.547 +-119.899 72.0478 361.908 +-123.781 72.2295 362.821 +-128.99 73.1419 367.404 +-1093.78 603.066 3029.3 +-1120.7 601.18 3019.83 +-1147.52 599.247 3010.12 +-1174.26 597.27 3000.19 +-1200.91 595.247 2990.03 +-1227.32 593.105 2979.27 +-417.125 196.619 987.649 +-159.184 73.22 367.797 +-161.294 72.4267 363.812 +-164.525 72.1491 362.417 +-167.743 71.866 360.995 +-172.259 72.1261 362.301 +-141.251 57.8198 290.439 +-140.936 56.4187 283.401 +-143.185 56.0716 281.657 +-147.956 56.6954 284.79 +-415.805 155.953 783.38 +-417.971 153.481 770.959 +-420.186 151.098 758.992 +-422.56 148.84 747.648 +-424.026 146.33 735.039 +-426.45 144.215 724.417 +-427.753 141.784 712.205 +-429.336 139.51 700.783 +-434.667 138.49 695.66 +-434.64 135.807 682.182 +-436.61 133.81 672.15 +-439.524 132.144 663.781 +-442.433 130.511 655.578 +-444.614 128.7 646.482 +-447.404 127.101 638.448 +-448.938 125.182 628.811 +-451.787 123.665 621.192 +-453.711 121.927 612.461 +-456.408 120.428 604.928 +-458.703 118.85 597.005 +-468.503 119.21 598.814 +-463.101 115.731 581.334 +-471.057 115.625 580.803 +-468.403 112.936 567.298 +-472.097 111.817 561.678 +-475.341 110.605 555.587 +-477.344 109.123 548.142 +-479.973 107.804 541.52 +-483.448 106.69 535.921 +-486.056 105.398 529.431 +-488.857 104.163 523.227 +-491.584 102.926 517.014 +-494.445 101.73 511.008 +-497.306 100.547 505.064 +-499.818 99.3059 498.83 +-502.965 98.202 493.285 +-505.837 97.0539 487.518 +-2356.92 444.39 2232.25 +-384.593 71.2582 357.942 +-2396.28 436.291 2191.56 +-384.416 68.776 345.474 +-383.983 67.5044 339.086 +-140.953 24.3482 122.305 +-141.885 24.0815 120.965 +-141.359 23.5725 118.408 +-143.097 23.4438 117.762 +-141.13 22.7147 114.1 +-141.596 22.3873 112.455 +-144.704 22.4734 112.888 +-147.752 22.5386 113.215 +-155.18 23.2487 116.782 +-156.373 23.0068 115.567 +-156.913 22.6698 113.874 +-158.729 22.5164 113.104 +-160.299 22.3244 112.139 +-381.889 52.209 262.255 +-381.9 51.2468 257.422 +-379.948 50.0373 251.346 +-381.67 49.3235 247.76 +-380.253 48.2139 242.186 +-381.129 47.4069 238.133 +-381.876 46.5902 234.031 +-379.681 45.4277 228.191 +-380.754 44.6684 224.377 +-381.099 43.8296 220.164 +-381.051 42.9541 215.766 +-380.084 41.9859 210.902 +-379.76 41.1001 206.453 +-379.034 40.1815 201.838 +-380.462 39.4973 198.402 +-380.262 38.6494 194.142 +-378.678 37.672 189.233 +-379.542 36.9468 185.59 +-378.302 36.0249 180.959 +-380.349 35.421 177.925 +-381.374 34.7222 174.415 +-380.546 33.8606 170.087 +-381.862 33.195 166.744 +-381.405 32.3796 162.648 +-380.537 31.5377 158.419 +-379.068 30.6566 153.993 +-380.053 29.9802 150.596 +-379.331 29.1743 146.547 +-379.781 28.4638 142.978 +-114.087 8.32828 41.8344 +-112.857 8.02005 40.2861 +-110.572 7.64496 38.4019 +-109.396 7.35457 36.9432 +-108.962 7.11834 35.7566 +-108.801 6.90224 34.6711 +-108.247 6.66377 33.4732 +-108.445 6.47338 32.5169 +-108.826 6.29389 31.6153 +-109.103 6.10823 30.6827 +-109.083 5.90647 29.6692 +-109.246 5.71532 28.709 +-109.497 5.52898 27.773 +-110.032 5.35636 26.9059 +-110.753 5.19148 26.0777 +-111.273 5.01575 25.195 +-112.567 4.87246 24.4752 +-113.661 4.71701 23.6943 +-115.435 4.58545 23.0335 +-118.384 4.49292 22.5687 +-140.409 5.08093 25.5224 +-158.948 5.47212 27.4874 +-161.652 5.28166 26.5307 +-162.969 5.03963 25.3149 +-165.265 4.82238 24.2237 +-858.76 23.5644 118.368 +-868.407 22.3221 112.128 +-379.45 9.09663 45.6939 +-380.24 8.45863 42.4891 +-404.273 8.29616 41.673 +-404.131 7.59769 38.1645 +-402.961 6.8833 34.576 +-403.253 6.19647 31.1259 +-402.916 5.50098 27.6324 +-403.746 4.82143 24.2188 +-144.302 1.47656 7.417 +-402.916 3.43471 17.2531 +-405.353 2.76375 13.8828 +-145.45 0.743644 3.73545 +-144.878 0.493748 2.48018 +-145.994 0.248757 1.24955 +120.6 4.44089e-15 2.84217e-14 +119.695 0.213182 1.02258 +119.682 0.426346 2.04508 +120.359 0.643218 3.08537 +120.327 0.857549 4.11346 +120.385 1.0727 5.14551 +120.235 1.286 6.16863 +120.076 1.49884 7.18957 +121.005 1.72687 8.28337 +120.826 1.9407 9.3091 +120.739 2.15582 10.341 +120.642 2.37077 11.372 +120.536 2.58552 12.4022 +120.918 2.81165 13.4868 +119.999 3.007 14.4239 +120.659 3.24191 15.5507 +120.318 3.45099 16.5536 +120.759 3.68324 17.6677 +120.399 3.8918 18.668 +120.623 4.11954 19.7605 +120.344 4.33066 20.7732 +120.94 4.57459 21.9432 +120.642 4.7859 22.9568 +120.433 5.00058 23.9866 +120.312 5.21911 25.0349 +120.084 5.4332 26.0618 +120.627 5.68357 27.2628 +121.255 5.94107 28.4979 +121.093 6.16174 29.5564 +120.728 6.37205 30.5653 +121.224 6.62908 31.7982 +121.707 6.88835 33.0418 +121.311 7.09921 34.0533 +121.195 7.32659 35.1439 +121.164 7.56006 36.2638 +120.931 7.7817 37.327 +121.735 8.07246 38.7217 +120.627 8.23716 39.5117 +121.877 8.56461 41.0824 +120.847 8.73366 41.8933 +121.032 8.99044 43.125 +120.55 9.1985 44.1231 +116.324 9.11297 43.7128 +113.139 9.0954 43.6285 +110.428 9.10542 43.6766 +107.817 9.11432 43.7193 +104.385 9.04283 43.3763 +102.619 9.10632 43.6809 +99.1197 9.0065 43.2021 +97.3659 9.05575 43.4383 +97.5187 9.28055 44.5166 +96.9377 9.4363 45.2638 +96.6204 9.61753 46.1331 +97.5478 9.92585 47.612 +98.0998 10.2011 48.9324 +96.6842 10.2718 49.2713 +96.2413 10.4436 50.0954 +96.4062 10.6827 51.2426 +96.6455 10.9332 52.444 +96.1743 11.1049 53.2676 +96.4752 11.3676 54.5277 +96.761 11.6322 55.797 +96.9456 11.8882 57.0248 +96.4336 12.0604 57.8508 +96.6775 12.329 59.1393 +96.737 12.5775 60.3312 +96.0278 12.727 61.0487 +96.3138 13.0102 62.407 +96.4171 13.2725 63.6653 +96.5052 13.5362 64.9302 +96.0046 13.7193 65.8084 +96.0656 13.9846 67.0807 +96.1921 14.2631 68.4168 +96.2217 14.531 69.7017 +96.2356 14.8001 70.9924 +96.1544 15.0579 72.229 +96.2161 15.3416 73.5901 +96.2608 15.6267 74.9577 +96.2107 15.9003 76.2701 +96.2987 16.2009 77.7118 +96.2152 16.4767 79.0349 +96.1914 16.7667 80.4261 +96.0745 17.0445 81.7585 +96.0161 17.3367 83.16 +95.94 17.6299 84.5667 +95.8461 17.9242 85.9782 +96.3193 18.3308 87.9288 +96.1121 18.6141 89.2874 +95.9599 18.9121 90.717 +95.8609 19.2254 92.2195 +95.6715 19.5252 93.6579 +96.0246 19.9423 95.6587 +95.8629 20.2594 97.1796 +95.6125 20.5627 98.6344 +96.0254 21.0158 100.808 +95.596 21.2913 102.129 +95.8864 21.7337 104.252 +95.6161 22.0564 105.799 +95.719 22.4723 107.794 +95.274 22.7662 109.204 +95.2611 23.1695 111.139 +95.2845 23.5901 113.156 +95.405 24.0444 115.335 +94.9335 24.3573 116.836 +95.0581 24.8309 119.108 +94.9059 25.2422 121.081 +94.7859 25.671 123.138 +94.7553 26.134 125.359 +95.1624 26.7312 128.223 +94.5965 27.0657 129.828 +95.0416 27.7012 132.876 +94.5898 28.0882 134.732 +94.8391 28.6955 137.646 +94.7124 29.2037 140.083 +94.7127 29.7649 142.775 +94.7259 30.3455 145.561 +94.3786 30.8245 147.858 +94.52 31.4788 150.997 +94.2005 31.9958 153.476 +94.3514 32.6899 156.806 +94.35 33.3515 159.98 +94.2991 34.0156 163.165 +94.1985 34.6822 166.362 +94.048 35.3508 169.569 +94.2229 36.1657 173.478 +94.3352 36.9836 177.402 +94.0668 37.6777 180.731 +94.0585 38.5012 184.681 +93.5046 39.1259 187.678 +93.6792 40.0831 192.269 +93.8635 41.0807 197.054 +93.928 42.0634 201.768 +93.9968 43.0866 206.677 +93.5465 43.9075 210.614 +93.8145 45.1057 216.361 +93.5661 46.1008 221.135 +93.5767 47.2686 226.736 +93.5678 48.4778 232.537 +93.6057 49.7666 238.719 +93.4704 51.0211 244.736 +93.1663 52.2403 250.585 +93.0987 53.6548 257.37 +92.852 55.0342 263.986 +92.8433 56.6298 271.64 +92.4888 58.0933 278.66 +92.3468 59.7739 286.722 +92.5356 61.7707 296.3 +92.3618 63.6356 305.245 +92.2834 65.681 315.056 +92.411 68.0062 326.21 +92.2949 70.2972 337.199 +92.0147 72.6126 348.306 +91.8094 75.15 360.477 +94.1952 80.0733 384.093 +105.952 93.6608 449.269 +101.856 93.7663 449.775 +97.573 93.6847 449.383 +93.5434 93.8349 450.104 +90.8251 95.3602 457.421 +90.7351 99.913 479.259 +90.1929 104.392 500.743 +89.4393 109.077 523.219 +86.43 111.369 534.213 +87.7988 119.895 575.11 +89.3213 129.708 622.177 +87.7005 135.952 652.131 +89.1718 148.217 710.961 +88.5249 158.569 760.62 +85.9956 166.982 800.972 +85.4369 181.085 868.621 +79.5906 185.662 890.578 +69.3657 179.876 862.825 +63.4156 185.083 887.798 +53.8204 179.587 861.436 +47.4792 184.893 886.889 +38.3589 179.302 860.072 +31.6224 184.81 886.489 +22.9755 179.065 858.932 +15.8014 184.751 886.209 +7.64357 178.752 857.433 +4.80727e-14 184.351 884.288 +-7.64357 178.752 857.433 +-15.7543 184.2 883.567 +-22.9101 178.555 856.486 +-31.5282 184.259 883.848 +-38.1364 178.263 855.084 +-47.2489 183.996 882.588 +-53.3564 178.039 854.009 +-63.018 183.922 882.231 +-68.5968 177.882 853.26 +-78.7539 183.71 881.216 +-83.8842 177.794 852.835 +-94.6505 183.788 881.586 +-99.0981 177.508 851.467 +-110.499 183.666 881.001 +-114.432 177.392 850.906 +-126.314 183.426 879.851 +-129.939 177.441 851.145 +-114.401 147.411 707.094 +-120.518 146.98 705.028 +-126.972 146.96 704.935 +-147.52 162.441 779.193 +-625.148 656.363 3148.42 +-653.269 655.304 3143.34 +-681.264 654.116 3137.64 +-142.98 131.623 631.367 +-144.913 128.103 614.478 +-153.7 130.657 626.734 +-179.192 146.676 703.572 +-145.621 114.916 551.224 +-145.042 110.473 529.912 +-150.829 110.997 532.426 +-109.345 77.8247 373.307 +-111.334 76.7072 367.946 +-113.645 75.862 363.892 +-117.035 75.7541 363.375 +-120.177 75.4845 362.081 +-124.288 75.8094 363.64 +-129.12 76.5308 367.101 +-1093.78 630.371 3023.74 +-1120.7 628.399 3014.28 +-1147.52 626.379 3004.59 +-1174.26 624.311 2994.68 +-1200.91 622.197 2984.53 +-1227.32 619.958 2973.79 +-1253.79 617.75 2963.2 +-158.285 76.1031 365.049 +-161.812 75.9492 364.31 +-164.891 75.5835 362.556 +-168.905 75.6398 362.826 +-173.062 75.7431 363.322 +-141.724 60.6403 290.877 +-141.506 59.2117 284.025 +-144.97 59.3409 284.644 +-147.229 58.9713 282.871 +-416.636 163.34 783.505 +-136.1 52.2393 250.58 +-135.227 50.829 243.815 +-422.463 155.543 746.103 +-424.42 153.097 734.371 +-426.4 150.727 723.002 +-427.956 148.274 711.235 +-430.211 146.124 700.922 +-442.452 147.353 706.82 +-434.216 141.818 680.266 +-437.416 140.126 672.154 +-439.524 138.127 662.562 +-442.046 136.301 653.803 +-444.95 134.628 645.781 +-448.254 133.108 638.486 +-449.454 131 628.378 +-452.484 129.464 621.008 +-454.24 127.596 612.049 +-456.764 125.979 604.29 +-458.162 124.084 595.204 +-472.094 125.563 602.297 +-468.026 122.257 586.438 +-469.314 120.412 577.59 +-469.536 118.335 567.625 +-472.861 117.069 561.553 +-475.341 115.613 554.567 +-478.513 114.343 548.475 +-480.17 112.731 540.746 +-483.779 111.597 535.304 +-486.659 110.306 529.113 +-489.262 108.969 522.698 +-491.584 107.586 516.065 +-494.858 106.425 510.497 +-497.792 105.202 504.63 +-501.15 104.079 499.241 +-502.965 102.648 492.379 +-506.336 101.548 487.103 +-2356.92 464.51 2228.15 +-2376.69 460.294 2207.92 +-383.522 72.9893 350.113 +-384.416 71.8899 344.839 +-382.051 70.2056 336.76 +-141.553 25.5587 122.599 +-142.112 25.212 120.936 +-141.588 24.6795 118.382 +-142.867 24.4658 117.357 +-140.976 23.717 113.765 +-142.14 23.4909 112.68 +-145.643 23.6434 113.412 +-149.486 23.8354 114.333 +-155.656 24.3758 116.925 +-156.612 24.0854 115.532 +-156.752 23.6719 113.549 +-158.972 23.5719 113.069 +-160.706 23.3946 112.218 +-380.824 54.4208 261.044 +-382.395 53.6363 257.281 +-381.191 52.474 251.705 +-380.585 51.4101 246.602 +-379.163 50.2523 241.049 +-381.55 49.608 237.958 +-380.35 48.5049 232.667 +-381.556 47.719 228.897 +-382.554 46.9114 225.023 +-381.185 45.8245 219.809 +-379.666 44.7357 214.586 +-379.823 43.8569 210.371 +-380.285 43.0203 206.358 +-379.737 42.0785 201.841 +-378.785 41.1035 197.164 +-381.858 40.5688 194.599 +-380.994 39.6184 190.04 +-377.931 38.4557 184.463 +-380.37 37.8618 181.614 +-379.718 36.9632 177.304 +-377.387 35.9146 172.274 +-381.183 35.4528 170.059 +-381.04 34.6232 166.079 +-379.938 33.7154 161.725 +-380.537 32.9656 158.128 +-380.176 32.1382 154.16 +-378.847 31.2382 149.842 +-380.727 30.6072 146.816 +-380.621 29.8184 143.032 +-114.555 8.74109 41.9289 +-112.857 8.38316 40.2121 +-110.666 7.99791 38.3641 +-109.396 7.68755 36.8754 +-108.868 7.43416 35.6599 +-108.801 7.21475 34.6075 +-108.342 6.97162 33.4412 +-108.445 6.76647 32.4572 +-109.018 6.59045 31.6128 +-108.719 6.3623 30.5185 +-109.083 6.17389 29.6147 +-109.15 5.96882 28.631 +-109.691 5.78953 27.771 +-109.837 5.58902 26.8092 +-110.558 5.41699 25.9841 +-111.176 5.23826 25.1267 +-112.469 5.08864 24.409 +-113.465 4.92211 23.6102 +-115.435 4.79306 22.9912 +-118.581 4.70412 22.5646 +-154.174 5.83166 27.9731 +-157.865 5.6809 27.2499 +-161.258 5.50732 26.4173 +-161.981 5.23589 25.1153 +-165.265 5.04072 24.1792 +-858.76 24.6313 118.151 +-868.01 23.3221 111.871 +-380.344 9.53088 45.7174 +-380.141 8.83927 42.3999 +-404.77 8.68245 41.6477 +-404.33 7.94558 38.1131 +-403.558 7.20562 34.5637 +-402.954 6.47222 31.0457 +-403.515 5.75859 27.6226 +-404.145 5.04472 24.1983 +-145.201 1.55302 7.44949 +-404.615 3.60536 17.2941 +-402.755 2.87037 13.7685 +-145.65 0.77838 3.73371 +-146.378 0.521446 2.50125 +-146.294 0.260555 1.24982 +119.7 3.55271e-15 -1.13687e-13 +119.595 0.222211 1.01976 +119.682 0.444778 2.04115 +120.359 0.671026 3.07944 +120.327 0.894624 4.10556 +120.385 1.11908 5.13563 +120.135 1.34048 6.15166 +120.076 1.56364 7.17575 +120.107 1.78816 8.20611 +120.627 2.02127 9.27588 +120.739 2.24902 10.3211 +120.642 2.47326 11.3502 +120.536 2.69731 12.3783 +120.023 2.91151 13.3614 +120.892 3.16036 14.5034 +120.659 3.38206 15.5208 +120.318 3.60019 16.5218 +120.66 3.83933 17.6192 +120.3 4.05671 18.6168 +120.623 4.29764 19.7225 +120.442 4.5216 20.7503 +120.154 4.74132 21.7586 +120.74 4.99688 22.9314 +120.433 5.21677 23.9405 +120.312 5.44475 24.9868 +120.865 5.70495 26.1808 +120.724 5.93408 27.2324 +120.379 6.15319 28.2379 +120.123 6.37661 29.2632 +120.728 6.64754 30.5065 +121.127 6.91016 31.7117 +120.839 7.13495 32.7433 +121.215 7.40028 33.961 +120.907 7.6252 34.9931 +121.259 7.89312 36.2227 +120.931 8.11813 37.2553 +121.735 8.42146 38.6473 +121.385 8.64731 39.6838 +121.877 8.93489 41.0035 +121.506 9.161 42.0412 +120.938 9.37184 43.0088 +121.112 9.64092 44.2436 +116.511 9.52222 43.6989 +113.976 9.55886 43.867 +110.335 9.49111 43.5561 +107.817 9.50836 43.6353 +104.293 9.42545 43.2548 +101.702 9.41513 43.2074 +99.211 9.40454 43.1588 +97.1839 9.42958 43.2737 +97.3375 9.66378 44.3485 +97.0279 9.85342 45.2188 +97.3394 10.108 46.3871 +97.5478 10.355 47.5205 +98.0998 10.6421 48.8384 +96.5955 10.706 49.1315 +96.9476 10.975 50.3661 +97.1972 11.236 51.5638 +96.6455 11.4059 52.3432 +96.2613 11.5955 53.2133 +96.5618 11.8697 54.4718 +96.6748 12.1243 55.6401 +96.9456 12.4021 56.9152 +96.3483 12.5707 57.6886 +96.5927 12.8507 58.9739 +96.737 13.1212 60.2153 +96.0278 13.2773 60.9314 +96.3138 13.5727 62.2871 +96.3342 13.8345 63.4884 +96.5052 14.1215 64.8055 +95.9227 14.3002 65.6258 +96.147 14.6015 67.0086 +96.1112 14.8672 68.2279 +96.2217 15.1592 69.5678 +96.1557 15.4271 70.7972 +96.3131 15.7348 72.2091 +95.5857 15.9 72.9674 +95.6347 16.1963 74.3271 +95.589 16.4805 75.6316 +96.2987 16.9013 77.5625 +96.2152 17.189 78.883 +96.1153 17.4778 80.208 +96.0745 17.7814 81.6014 +96.0161 18.0862 83.0002 +95.94 18.3921 84.4042 +95.8461 18.6991 85.813 +96.3924 19.1379 87.8265 +95.6043 19.3162 88.645 +96.0319 19.7445 90.6106 +95.8609 20.0565 92.0423 +95.6715 20.3694 93.4779 +96.0947 20.8197 95.5445 +95.9323 21.1506 97.0631 +95.5436 21.4361 98.3736 +95.9572 21.9086 100.542 +95.6636 22.2273 102.004 +95.8864 22.6734 104.051 +95.4835 22.9782 105.45 +95.6534 23.4279 107.514 +95.339 23.7666 109.069 +95.3254 24.1873 110.999 +95.3481 24.6266 113.015 +95.405 25.0839 115.114 +95.1202 25.4603 116.841 +94.935 25.8708 118.725 +94.845 26.3164 120.77 +94.7859 26.7808 122.901 +94.8148 27.2811 125.197 +95.1624 27.8869 127.977 +94.5965 28.2358 129.578 +94.9843 28.8816 132.542 +94.7598 29.3551 134.715 +94.6154 29.8654 137.057 +94.602 30.4307 139.651 +94.4404 30.9623 142.091 +94.7259 31.6575 145.281 +94.3786 32.1572 147.574 +93.9975 32.6582 149.873 +94.6125 33.5251 153.852 +94.4021 34.1215 156.588 +94.3 34.7749 159.587 +94.3484 35.5048 162.937 +94.247 36.2001 166.128 +94.4774 37.0475 170.016 +93.8474 37.5787 172.454 +94.3352 38.5826 177.061 +94.0668 39.3067 180.384 +94.0139 40.1468 184.24 +93.8553 40.9706 188.02 +93.7223 41.8352 191.988 +93.8635 42.8567 196.676 +93.8866 43.8625 201.291 +93.5494 44.7354 205.297 +93.8655 45.962 210.926 +93.8536 47.0753 216.035 +93.9488 48.2904 221.612 +93.5767 49.3121 226.301 +93.5311 50.5538 231.999 +93.4624 51.8387 237.896 +93.5754 53.2867 244.541 +93.2347 54.5388 250.287 +93.0987 55.9745 256.875 +92.7544 57.3531 263.202 +92.5578 58.8963 270.284 +92.4888 60.6048 278.125 +92.2265 62.277 285.798 +92.1848 64.1971 294.61 +92.2482 66.3053 304.285 +92.2834 68.5206 314.451 +92.1705 70.7617 324.736 +92.2949 73.3364 336.551 +91.9646 75.7108 347.448 +91.9061 78.4816 360.163 +92.6311 82.1481 376.99 +106.312 98.042 449.929 +102.073 98.0279 449.864 +97.9264 98.089 450.145 +93.7029 98.0586 450.005 +90.9014 99.5664 456.925 +90.5711 104.044 477.474 +90.3318 109.073 500.551 +89.8024 114.255 524.334 +86.5239 116.31 533.765 +89.7203 127.816 586.569 +89.3909 135.421 621.466 +89.1885 144.236 661.921 +89.1352 154.561 709.303 +86.3401 161.342 740.422 +87.8248 177.906 816.438 +81.4689 180.14 826.688 +75.2067 183.02 839.907 +65.8586 178.165 817.626 +59.8999 182.38 836.968 +51.1709 178.128 817.455 +44.8257 182.107 835.715 +36.4266 177.631 815.176 +29.8286 181.863 834.594 +21.8394 177.569 814.892 +14.9026 181.776 834.195 +7.2692 177.347 813.87 +4.4742e-14 181.484 832.856 +-7.2631 177.198 813.186 +-14.8607 181.265 831.85 +-21.7975 177.229 813.329 +-29.7309 181.267 831.861 +-36.2608 176.823 811.467 +-44.5641 181.044 830.837 +-50.7435 176.64 810.628 +-59.4186 180.914 830.242 +-65.2623 176.552 810.223 +-74.2567 180.708 829.298 +-79.6766 176.177 808.501 +-89.1105 180.511 828.391 +-94.287 176.192 808.572 +-104.101 180.512 828.394 +-108.833 176.005 807.713 +-118.965 180.224 827.073 +-123.303 175.658 806.121 +-114.87 154.415 708.631 +-120.947 153.88 706.179 +-127.458 153.901 706.275 +-134.672 154.705 709.965 +-625.148 684.74 3142.37 +-653.189 683.552 3136.92 +-681.264 682.396 3131.61 +-143.694 138 633.302 +-145.206 133.911 614.535 +-153.14 135.81 623.25 +-179.966 153.679 705.253 +-145.546 119.822 549.88 +-145.508 115.619 530.592 +-151.31 116.165 533.098 +-109.511 81.312 373.153 +-111.646 80.2481 368.27 +-113.937 79.3453 364.127 +-117.305 79.2118 363.515 +-120.424 78.9099 362.129 +-125.018 79.5514 365.073 +-1066.79 659.631 3027.14 +-1093.78 657.624 3017.93 +-1120.7 655.567 3008.49 +-1147.52 653.459 2998.82 +-1174.26 651.302 2988.92 +-1200.91 649.097 2978.8 +-463.613 244.309 1121.17 +-445.405 228.941 1050.65 +-159.692 80.0986 367.584 +-162.171 79.4084 364.417 +-164.81 78.8124 361.682 +-168.822 78.8712 361.951 +-173.907 79.4037 364.395 +-141.681 63.2428 290.23 +-142.076 62.0203 284.62 +-145.416 62.0969 284.972 +-148.818 62.1848 285.375 +-417.744 170.855 784.08 +-419.05 167.798 770.049 +-421.045 165.104 757.688 +-134.874 51.8049 237.74 +-134.53 50.6258 232.329 +-426.65 157.336 722.036 +-428.413 154.849 710.625 +-430.263 152.46 699.66 +-464.658 161.439 740.868 +-435.329 148.328 680.699 +-438.383 146.508 672.346 +-440.014 144.259 662.027 +-443.316 142.602 654.42 +-445.565 140.643 645.431 +-448.197 138.845 637.179 +-450.258 136.908 628.29 +-452.89 135.182 620.371 +-454.769 133.268 611.585 +-457.478 131.63 604.071 +-459.426 129.806 595.699 +-469.355 130.231 597.65 +-474.737 129.371 593.703 +-467.882 125.235 574.722 +-470.102 123.6 567.218 +-473.433 122.278 561.152 +-475.984 120.774 554.25 +-479.098 119.432 548.089 +-481.613 117.959 541.329 +-484.773 116.661 535.373 +-487.06 115.17 528.532 +-490.073 113.868 522.559 +-492.812 112.517 516.359 +-495.271 111.119 509.941 +-497.792 109.75 503.66 +-500.94 108.533 498.072 +-503.389 107.176 491.847 +-506.336 105.938 486.167 +-2356.92 484.592 2223.86 +-384.593 77.7047 356.598 +-384.18 76.2756 350.04 +-380.804 74.293 340.941 +-381.828 73.198 335.916 +-140.429 26.4521 121.392 +-142.187 26.316 120.768 +-142.728 25.9539 119.106 +-142.101 25.3867 116.503 +-141.284 24.7967 113.796 +-142.14 24.5065 112.464 +-145.8 24.6919 113.315 +-149.88 24.9315 114.414 +-156.291 25.5334 117.176 +-156.213 25.0626 115.016 +-157.395 24.7967 113.796 +-158.972 24.591 112.852 +-160.869 24.4307 112.116 +-382.626 57.0422 261.775 +-2700.25 395.123 1813.28 +-383.181 55.0283 252.533 +-383.171 53.997 247.8 +-382.014 52.8192 242.395 +-380.538 51.6156 236.872 +-382.47 50.884 233.514 +-380.107 49.593 227.589 +-380.154 48.6325 223.182 +-380.151 47.6759 218.792 +-379.925 46.7017 214.321 +-379.91 45.7634 210.015 +-379.497 44.7874 205.536 +-381.143 44.0603 202.199 +-379.844 43.0007 197.336 +-380.262 42.1458 193.413 +-379.747 41.196 189.055 +-379.452 40.2799 184.85 +-380.01 39.4613 181.093 +-380.259 38.6162 177.215 +-381.102 37.8363 173.636 +-379.545 36.8267 169.003 +-379.121 35.9382 164.926 +-379.113 35.0966 161.063 +-380.261 34.3659 157.71 +-379.345 33.4544 153.527 +-380.145 32.7005 150.068 +-380.541 31.9149 146.462 +-380.621 31.1075 142.757 +-114.461 9.11152 41.8141 +-112.669 8.73103 40.068 +-110.289 8.31526 38.1599 +-109.396 8.01991 36.8045 +-108.868 7.75556 35.5914 +-108.611 7.51351 34.4806 +-109.105 7.32423 33.612 +-108.636 7.07144 32.4519 +-109.018 6.87537 31.5521 +-109.007 6.65497 30.5406 +-109.854 6.48632 29.7667 +-110.019 6.27646 28.8036 +-109.691 6.03983 27.7177 +-109.74 5.8255 26.7341 +-110.461 5.64623 25.9114 +-111.76 5.49346 25.2103 +-112.274 5.29944 24.3199 +-114.15 5.16588 23.707 +-115.533 5.00454 22.9666 +-118.875 4.9197 22.5772 +-158.206 6.24286 28.6494 +-160.425 6.02263 27.6387 +-161.06 5.7384 26.3343 +-162.969 5.49555 25.2199 +-3240.51 103.112 473.194 +-859.058 25.7052 117.965 +-381.706 10.6992 49.1004 +-380.046 9.93516 45.5939 +-380.737 9.2359 42.3849 +-403.776 9.03557 41.4656 +-404.429 8.29114 38.0492 +-403.26 7.51157 34.4717 +-403.253 6.75704 31.009 +-404.412 6.02093 27.6309 +-402.747 5.24462 24.0683 +-143.403 1.60011 7.34313 +-402.816 3.7445 17.1841 +-403.354 2.99891 13.7624 +-145.75 0.81259 3.72909 +-145.378 0.540274 2.4794 +-144.095 0.267731 1.22866 +119.7 3.55271e-15 -1.13687e-13 +119.595 0.231402 1.01771 +119.682 0.463174 2.03706 +120.259 0.698201 3.07071 +120.427 0.932399 4.10072 +120.385 1.16537 5.12532 +120.135 1.39592 6.13932 +120.175 1.62966 7.1673 +120.206 1.86366 8.19646 +120.627 2.10487 9.25727 +120.54 2.33817 10.2833 +120.443 2.5713 11.3087 +120.337 2.80423 12.3331 +120.918 3.05453 13.4339 +120.892 3.29108 14.4743 +120.659 3.52195 15.4896 +121.11 3.77379 16.5973 +120.759 4.00141 17.5983 +120.3 4.2245 18.5795 +120.721 4.47905 19.699 +120.344 4.70475 20.6917 +120.154 4.93742 21.715 +120.74 5.20355 22.8854 +120.433 5.43253 23.8925 +120.312 5.66995 24.9366 +119.987 5.89772 25.9384 +120.724 6.17952 27.1777 +120.477 6.41287 28.204 +120.996 6.68864 29.4169 +120.728 6.92248 30.4453 +121.224 7.20171 31.6734 +120.936 7.43598 32.7037 +121.503 7.72469 33.9735 +121.003 7.94687 34.9506 +121.546 8.23903 36.2355 +121.98 8.52724 37.5031 +121.64 8.76292 38.5396 +121.385 9.00497 39.6042 +121.783 9.29723 40.8895 +121.224 9.51771 41.8592 +121.502 9.80496 43.1225 +121.486 10.0707 44.2914 +117.444 9.99552 43.9607 +113.976 9.95422 43.779 +111.077 9.95012 43.761 +108.463 9.961 43.8088 +104.293 9.81529 43.168 +102.527 9.88409 43.4706 +99.9419 9.86567 43.3895 +97.1839 9.81959 43.1869 +96.6124 9.98852 43.9298 +96.9377 10.2514 45.0861 +97.3394 10.5261 46.294 +97.6373 10.7931 47.4686 +97.1197 10.9716 48.2534 +96.8616 11.1795 49.1679 +96.2413 11.3457 49.8988 +97.1972 11.7008 51.4603 +96.7329 11.8884 52.2854 +96.9576 12.1624 53.4907 +96.4752 12.3495 54.3137 +96.6748 12.6258 55.5285 +96.9456 12.9151 56.801 +96.3483 13.0906 57.5728 +96.5927 13.3822 58.8556 +96.737 13.6639 60.0945 +96.1955 13.8506 60.9153 +96.3138 14.1341 62.1621 +96.4171 14.4191 63.4155 +96.5876 14.7181 64.7306 +95.9227 14.8917 65.4941 +96.0656 15.1926 66.8175 +96.1112 15.4821 68.091 +96.2217 15.7862 69.4282 +96.3154 16.0919 70.7725 +96.2338 16.3721 72.005 +96.1373 16.6532 73.2413 +96.2608 16.9766 74.6636 +96.2107 17.2738 75.9708 +96.2987 17.6003 77.4069 +96.2152 17.9 78.7247 +96.1914 18.2151 80.1105 +96.15 18.5314 81.5017 +96.0161 18.8342 82.8337 +95.94 19.1528 84.2348 +95.8461 19.4725 85.6408 +96.3924 19.9294 87.6502 +96.1121 20.222 88.937 +95.3125 20.4072 89.7514 +95.7895 20.8705 91.7893 +95.7423 21.2275 93.3594 +96.0947 21.6808 95.3528 +95.9323 22.0254 96.8684 +95.5436 22.3227 98.1762 +95.9572 22.8147 100.34 +95.596 23.1304 101.729 +95.3511 23.4792 103.262 +95.4835 23.9286 105.239 +95.719 24.4135 107.371 +95.2091 24.7159 108.702 +95.2611 25.1709 110.702 +95.2845 25.6278 112.712 +94.8386 25.9664 114.201 +95.4315 26.6001 116.988 +94.9966 26.9584 118.564 +94.9059 27.4226 120.606 +94.846 27.9062 122.732 +94.8742 28.4272 125.024 +95.0449 29.0044 127.562 +95.0611 29.5482 129.954 +94.9843 30.0761 132.276 +94.7598 30.5692 134.444 +94.5595 31.0823 136.701 +94.602 31.6893 139.371 +94.4404 32.2429 141.806 +94.6722 32.9482 144.907 +94.3786 33.4872 147.278 +94.4677 34.179 150.32 +94.149 34.7406 152.79 +94.3514 35.5137 156.19 +94 36.0981 158.761 +94.2991 36.954 162.525 +94.247 37.6974 165.794 +94.0003 38.3849 168.818 +94.2699 39.3092 172.883 +94.3352 40.1784 176.706 +94.0668 40.9324 180.022 +93.6123 41.6286 183.084 +93.5046 42.5057 186.942 +93.7223 43.5655 191.603 +93.8635 44.6293 196.281 +93.8866 45.6767 200.888 +93.5494 46.5857 204.886 +93.5465 47.7003 209.787 +93.8536 49.0224 215.602 +93.6044 50.1034 220.357 +93.5767 51.3517 225.847 +93.5311 52.6447 231.533 +93.4624 53.9828 237.418 +93.2952 55.3244 243.319 +93.2347 56.7946 249.785 +93.0654 58.2686 256.267 +92.852 59.7882 262.951 +92.6847 61.4162 270.111 +92.2107 62.9217 276.732 +92.5572 65.0854 286.248 +92.1263 66.8099 293.832 +92.2482 69.0477 303.674 +92.2834 71.3546 313.82 +92.1171 73.6456 323.896 +92.1396 76.2412 335.312 +92.0397 78.9065 347.033 +91.8819 81.7061 359.346 +92.1409 85.093 374.242 +106.469 102.248 449.691 +102.441 102.45 450.58 +98.0927 102.319 450.004 +94.0419 102.483 450.726 +90.8823 103.663 455.912 +90.5711 108.347 476.516 +90.1755 113.388 498.683 +89.8684 119.068 523.667 +88.276 123.574 543.481 +89.6021 132.927 584.619 +89.2935 140.868 619.543 +89.0711 150.004 659.723 +88.8428 160.426 705.557 +87.7212 170.703 750.757 +86.6645 182.817 804.036 +78.5552 180.881 795.522 +71.9558 182.352 801.988 +63.7872 179.699 790.322 +57.4305 182.093 800.853 +49.4615 179.299 788.562 +42.9731 181.801 799.567 +35.3186 179.352 788.796 +28.5827 181.474 798.13 +21.13 178.907 786.84 +14.2778 181.358 797.617 +7.03708 178.784 786.3 +3.87468e-14 181.119 796.569 +-7.0397 178.851 786.592 +-14.2516 181.025 796.155 +-21.0986 178.641 785.671 +-28.478 180.809 795.206 +-35.1354 178.422 784.704 +-42.7061 180.672 794.601 +-49.1563 178.192 783.695 +-56.8725 180.324 793.072 +-63.1988 178.041 783.031 +-71.1714 180.364 793.246 +-77.3763 178.167 783.583 +-85.3893 180.127 792.205 +-91.321 177.708 781.565 +-99.6647 179.967 791.502 +-105.583 177.811 782.02 +-114.066 179.949 791.424 +-119.489 177.266 779.621 +-115.058 161.064 708.365 +-121.095 160.442 705.628 +-127.822 160.725 706.875 +-134.472 160.864 707.486 +-156.921 178.989 787.198 +-653.189 711.824 3130.62 +-681.264 710.62 3125.33 +-143.694 143.708 632.031 +-145.543 139.773 614.727 +-147.257 135.994 598.105 +-792.609 704.828 3099.86 +-145.396 124.649 548.211 +-145.922 120.744 531.035 +-151.658 121.247 533.249 +-110.034 85.0801 374.185 +-111.646 83.5672 367.531 +-114.23 82.839 364.329 +-117.546 82.6572 363.529 +-120.887 82.4898 362.793 +-125.208 82.9679 364.895 +-1066.79 686.914 3021.07 +-1093.78 684.823 3011.88 +-1120.7 682.681 3002.46 +-1147.52 680.486 2992.8 +-1174.26 678.24 2982.92 +-1200.91 675.943 2972.82 +-461.515 253.263 1113.86 +-445.367 238.39 1048.45 +-160.161 83.6565 367.924 +-162.769 82.9978 365.027 +-165.42 82.3759 362.292 +-168.697 82.0728 360.959 +-413.278 196.501 864.22 +-141.896 65.9585 290.088 +-142.777 64.9043 285.451 +-145.773 64.824 285.098 +-148.818 64.7568 284.803 +-417.975 178.02 782.938 +-420.083 175.169 770.398 +-422.238 172.42 758.31 +-423.433 169.367 744.881 +-425.602 166.785 733.526 +-135.2 51.9197 228.345 +-136.071 51.2169 225.254 +-428.821 158.233 695.915 +-468.315 169.439 745.201 +-435.541 154.538 679.663 +-438.168 152.493 670.668 +-441.321 150.672 662.661 +-443.978 148.722 654.083 +-446.18 146.662 645.025 +-448.424 144.661 636.222 +-450.258 142.57 627.03 +-453.413 140.936 619.84 +-455.827 139.103 611.778 +-458.014 137.235 603.565 +-459.787 135.281 594.972 +-465.946 134.633 592.12 +-479.108 135.962 597.968 +-468.007 130.45 573.721 +-470.669 128.867 566.761 +-473.942 127.472 560.628 +-476.756 125.973 554.034 +-479.682 124.523 547.658 +-482.203 122.988 540.906 +-484.773 121.486 534.299 +-487.93 120.148 528.414 +-490.546 118.692 522.013 +-493.699 117.382 516.25 +-495.959 115.876 509.624 +-498.695 114.497 503.561 +-501.781 113.211 497.908 +-504.026 111.75 491.482 +-507.549 110.584 486.353 +-506.559 108.458 477.003 +-525.896 110.649 486.636 +-2396.28 495.438 2178.95 +-383.089 77.8303 342.3 +-380.787 76.018 334.33 +-140.579 27.5756 121.279 +-142.036 27.3752 120.397 +-142.348 26.9555 118.551 +-141.795 26.3797 116.019 +-141.439 25.8505 113.691 +-141.674 25.4363 111.87 +-146.348 25.8099 113.513 +-150.825 26.1265 114.905 +-156.053 26.5489 116.763 +-156.213 26.0992 114.785 +-157.476 25.8356 113.626 +-160.024 25.7775 113.37 +-161.113 25.4797 112.061 +-384.264 59.6558 262.368 +-382.889 58.3448 256.603 +-382.435 57.1928 251.536 +-383.421 56.2671 247.465 +-381.26 54.8952 241.431 +-381.044 53.8218 236.71 +-381.537 52.8594 232.477 +-381.301 51.8062 227.846 +-381.182 50.781 223.337 +-380.409 49.6815 218.501 +-380.878 48.7552 214.427 +-379.649 47.6233 209.449 +-381.946 46.9407 206.447 +-379.913 45.7345 201.142 +-380.727 44.8832 197.398 +-381.06 43.981 193.43 +-380.192 42.9502 188.897 +-378.289 41.8173 183.914 +-380.549 41.1517 180.987 +-380.259 40.2134 176.86 +-379.652 39.2514 172.629 +-381.456 38.5428 169.512 +-381.04 37.614 165.428 +-379.479 36.5835 160.895 +-380.445 35.8046 157.47 +-379.714 34.872 153.368 +-380.424 34.0779 149.876 +-380.634 33.2431 146.204 +-379.687 32.3146 142.121 +-114.087 9.45733 41.5937 +-111.917 9.03148 39.7208 +-111.137 8.72578 38.3763 +-109.68 8.37328 36.826 +-108.868 8.07633 35.52 +-108.516 7.81742 34.3813 +-109.01 7.62051 33.5153 +-109.019 7.38986 32.5009 +-109.114 7.16604 31.5165 +-108.815 6.91798 30.4255 +-109.276 6.71904 29.5506 +-109.633 6.51311 28.6449 +-110.272 6.32294 27.8085 +-109.935 6.07717 26.7276 +-110.753 5.89528 25.9276 +-111.955 5.73065 25.2036 +-112.176 5.51382 24.2499 +-113.856 5.36571 23.5986 +-115.533 5.21153 22.9205 +-119.17 5.13586 22.5877 +-156.731 6.44045 28.3253 +-157.865 6.17162 27.143 +-161.948 6.00866 26.4263 +-163.66 5.74713 25.2761 +-3240.51 107.376 472.245 +-859.355 26.7774 117.768 +-381.706 11.1418 49.0019 +-380.046 10.3461 45.5024 +-380.439 9.61036 42.2667 +-403.676 9.40696 41.3721 +-403.932 8.62344 37.9262 +-403.957 7.8358 34.4621 +-403.253 7.03651 30.9468 +-403.515 6.25603 27.5142 +-403.746 5.47506 24.0795 +-143.803 1.67093 7.34881 +-403.715 3.90809 17.1879 +-403.654 3.12528 13.7451 +-144.45 0.838654 3.68843 +-144.878 0.560685 2.46591 +-145.594 0.281707 1.23896 +119.7 3.55271e-15 -1.13687e-13 +119.695 0.240777 1.01644 +120.482 0.484751 2.04638 +120.359 0.726477 3.06683 +120.327 0.968551 4.08875 +119.686 1.20452 5.08488 +120.135 1.45125 6.12648 +120.175 1.69425 7.15231 +120.306 1.93914 8.18609 +120.627 2.18829 9.2379 +120.54 2.43084 10.2618 +120.642 2.67764 11.3037 +120.238 2.91298 12.2972 +120.123 3.15474 13.3177 +120.892 3.42152 14.444 +120.659 3.66154 15.4572 +120.318 3.89769 16.4542 +119.968 4.13276 17.4465 +120.399 4.39556 18.5559 +120.031 4.62996 19.5454 +120.245 4.88722 20.6315 +120.154 5.13312 21.6695 +120.74 5.4098 22.8375 +120.433 5.64786 23.8425 +120.312 5.89468 24.8845 +120.768 6.1714 26.0526 +120.724 6.42445 27.1209 +120.379 6.66166 28.1223 +120.899 6.94817 29.3318 +120.631 7.19108 30.3572 +121.127 7.48119 31.5819 +120.936 7.73071 32.6353 +121.407 8.02451 33.8755 +121.003 8.26186 34.8775 +121.546 8.56559 36.1597 +121.217 8.80976 37.1905 +120.879 9.05327 38.2185 +121.385 9.36189 39.5213 +121.877 9.67323 40.8356 +121.412 9.91032 41.8365 +121.408 10.1857 42.9991 +121.486 10.4699 44.1988 +117.444 10.3917 43.8687 +114.814 10.4248 44.0084 +111.077 10.3445 43.6694 +108.371 10.347 43.68 +105.03 10.2764 43.3819 +102.527 10.2759 43.3796 +100.033 10.2661 43.3384 +97.0929 10.1993 43.0563 +96.2499 10.3455 43.6735 +97.0279 10.6677 45.0337 +96.5305 10.8523 45.8133 +96.8319 11.1284 46.9785 +98.278 11.5425 48.7268 +97.3938 11.6865 49.3347 +96.9476 11.882 50.1599 +96.4062 12.0655 50.9347 +96.7329 12.3596 52.176 +96.9576 12.6445 53.3788 +96.4752 12.839 54.2001 +96.761 13.1379 55.4618 +96.1742 13.3202 56.2312 +96.4336 13.6215 57.5033 +96.6775 13.9249 58.784 +96.5683 14.1807 59.8641 +96.8665 14.5 61.2118 +96.2304 14.6816 61.9783 +96.4171 14.9906 63.2828 +96.5052 15.2884 64.5401 +96.0046 15.4952 65.413 +96.0656 15.7947 66.6777 +96.1112 16.0958 67.9485 +96.2217 16.4119 69.283 +96.2356 16.7158 70.5659 +96.3131 17.035 71.9135 +96.2949 17.3416 73.2079 +96.3391 17.6638 74.568 +96.2107 17.9585 75.8119 +96.3759 18.3126 77.3068 +96.2152 18.6095 78.5601 +96.1153 18.9221 79.8796 +95.9991 19.2357 81.2035 +96.0161 19.5808 82.6604 +95.94 19.912 84.0586 +95.8461 20.2443 85.4617 +96.3924 20.7193 87.4669 +96.1121 21.0235 88.7509 +95.9599 21.3601 90.172 +95.8609 21.7139 91.6655 +95.6715 22.0526 93.0952 +96.1648 22.5566 95.2228 +95.8629 22.8818 96.5957 +95.5436 23.2075 97.9708 +95.9572 23.719 100.13 +95.6636 24.0641 101.587 +95.8864 24.547 103.625 +95.6823 24.9287 105.237 +95.063 25.2071 106.412 +95.274 25.7131 108.548 +95.9039 26.3451 111.216 +94.712 26.4837 111.801 +95.4679 27.1747 114.718 +94.9335 27.5101 116.134 +94.9966 28.0269 118.316 +94.7233 28.4547 120.122 +94.7859 28.9938 122.398 +94.7553 29.5169 124.606 +94.5159 29.9862 126.587 +95.1191 30.7381 129.761 +94.8695 31.2304 131.84 +94.8164 31.8 134.244 +94.6154 32.3334 136.496 +94.7124 32.9839 139.242 +94.8217 33.6565 142.081 +94.6185 34.2346 144.522 +94.3786 34.8145 146.97 +93.9975 35.3569 149.259 +94.149 36.1175 152.471 +94.3514 36.9213 155.864 +94.4 37.6887 159.103 +93.8559 38.2382 161.423 +94.247 39.1915 165.447 +94.048 39.9266 168.551 +94.2229 40.847 172.436 +94.3814 41.7914 176.423 +94.0668 42.5548 179.646 +94.0139 43.4644 183.485 +93.5046 44.1905 186.55 +93.7223 45.2923 191.202 +93.8635 46.3982 195.871 +93.5548 47.3193 199.759 +93.5901 48.4534 204.546 +93.5465 49.5909 209.349 +93.8145 50.9442 215.061 +93.6044 52.0893 219.896 +93.2396 53.1946 224.562 +93.5678 54.7528 231.14 +93.4265 56.1008 236.83 +93.5404 57.6684 243.448 +93.1321 58.9807 248.988 +93.0987 60.6 255.823 +92.8846 62.1796 262.492 +92.8116 63.9381 269.915 +92.2416 65.4376 276.245 +92.3468 67.5112 284.999 +92.331 69.6122 293.869 +92.2198 71.7623 302.945 +92.2558 74.1607 313.07 +92.1171 76.5646 323.218 +91.8808 79.0405 333.67 +92.1148 82.1011 346.591 +91.5916 84.6763 357.462 +91.6973 88.04 371.662 +106.649 106.481 449.509 +102.614 106.691 450.398 +98.2383 106.533 449.729 +94.1814 106.704 450.45 +90.8632 107.749 454.863 +90.5711 112.642 475.519 +90.1755 117.882 497.64 +89.9674 123.924 523.147 +89.9655 130.93 552.724 +89.6464 138.265 583.685 +89.1265 146.178 617.091 +89.058 155.927 658.247 +87.8312 164.885 696.065 +88.7626 179.576 758.081 +84.6471 185.639 783.677 +76.8683 184.013 776.811 +70.204 184.964 780.827 +62.5319 183.145 773.147 +56.0354 184.712 779.764 +48.5641 183.023 772.634 +41.942 184.472 778.751 +34.5771 182.546 770.62 +27.9475 184.474 778.761 +20.7295 182.473 770.312 +13.941 184.098 777.171 +6.90531 182.39 769.962 +4.05231e-14 183.988 776.706 +-6.90443 182.367 769.865 +-13.9235 183.867 776.198 +-20.6719 181.966 768.171 +-27.8254 183.668 775.357 +-34.4157 181.694 767.023 +-41.6647 183.252 773.601 +-48.2283 181.758 767.292 +-55.6587 183.47 774.522 +-61.9278 181.375 765.678 +-69.4893 183.081 772.878 +-75.6798 181.167 764.8 +-83.4973 183.117 773.031 +-89.5664 181.202 764.945 +-97.4711 182.982 772.461 +-103.573 181.339 765.526 +-111.352 182.631 770.977 +-117.302 180.918 763.747 +-115.214 167.675 707.843 +-121.145 166.869 704.44 +-128.048 167.391 706.642 +-134.891 167.761 708.206 +-147.782 175.245 739.797 +-653.189 740.038 3124.08 +-681.264 738.786 3118.79 +-143.694 149.404 630.709 +-145.543 145.313 613.441 +-145.577 139.77 590.041 +-792.609 732.765 3093.38 +-145.546 129.724 547.629 +-146.31 125.864 531.334 +-151.685 126.075 532.228 +-110.034 88.4524 373.403 +-111.675 86.9016 366.856 +-114.464 86.2988 364.311 +-117.786 86.1093 363.511 +-121.135 85.9348 362.775 +-125.367 86.3656 364.593 +-1066.79 714.14 3014.75 +-1093.78 711.967 3005.57 +-1120.7 709.74 2996.17 +-1147.52 707.458 2986.54 +-1174.26 705.123 2976.68 +-1200.91 702.735 2966.6 +-460.953 262.981 1110.18 +-445.367 247.839 1046.26 +-159.653 86.6964 365.99 +-162.769 86.2875 364.264 +-166.071 85.9779 362.957 +-169.319 85.6405 361.532 +-407.362 201.365 850.066 +-141.896 68.5729 289.481 +-142.821 67.4976 284.942 +-145.951 67.4759 284.85 +-148.228 67.0566 283.08 +-417.652 184.933 780.696 +-420.553 182.315 769.645 +-422.381 179.315 756.981 +-423.724 176.201 743.833 +-425.848 173.496 732.415 +-136.2 54.3769 229.552 +-134.904 52.7901 222.854 +-428.769 164.485 694.376 +-1711.86 643.911 2718.28 +-435.541 160.663 678.242 +-438.598 158.692 669.921 +-440.776 156.451 660.459 +-443.647 154.501 652.227 +-446.516 152.59 644.161 +-448.934 150.565 635.612 +-451.462 148.618 627.393 +-453.239 146.466 618.306 +-455.651 144.56 610.262 +-457.835 142.619 602.068 +-460.328 140.809 594.426 +-464.302 139.475 588.797 +-480.278 141.697 598.173 +-467.882 135.584 572.368 +-471.487 134.208 566.559 +-474.005 132.543 559.531 +-477.077 131.054 553.248 +-479.877 129.511 546.734 +-482.4 127.915 539.994 +-485.369 126.456 533.837 +-488.332 125.013 527.742 +-491.154 123.55 521.567 +-493.289 121.933 514.743 +-496.166 120.519 508.77 +-499.39 119.201 503.207 +-501.781 117.699 496.866 +-504.026 116.18 490.453 +-507.834 115.032 485.608 +-506.127 112.661 475.6 +-525.679 114.987 485.418 +-2396.28 515.076 2174.4 +-2415.69 510.235 2153.96 +-383.834 79.6633 336.299 +-140.504 28.6534 120.961 +-142.489 28.5511 120.529 +-143.184 28.1885 118.998 +-141.642 27.3955 115.651 +-141.439 26.8751 113.453 +-141.674 26.4445 111.636 +-146.583 26.876 113.457 +-151.85 27.3464 115.443 +-155.418 27.4889 116.045 +-156.612 27.2031 114.838 +-157.476 26.8596 113.388 +-159.619 26.7315 112.847 +-161.113 26.4897 111.826 +-383.035 61.8219 260.982 +-381.158 60.3833 254.909 +-379.45 58.9957 249.051 +-380.752 58.09 245.228 +-382.098 57.1966 241.456 +-380.538 55.8809 235.902 +-381.706 54.9789 232.094 +-381.13 53.8356 227.268 +-381.439 52.8295 223.02 +-381.357 51.7793 218.587 +-380.532 50.6416 213.784 +-380.694 49.6472 209.586 +-380.547 48.6226 205.261 +-380.791 47.6572 201.185 +-380.021 46.5757 196.62 +-377.334 45.2773 191.139 +-377.876 44.3804 187.352 +-377.931 43.4335 183.355 +-380.28 42.7526 180.48 +-378.905 41.6586 175.862 +-378.837 40.7193 171.897 +-380.728 39.9942 168.836 +-379.761 38.9735 164.527 +-380.855 38.1713 161.141 +-379.984 37.1788 156.951 +-380.176 36.2983 153.233 +-379.311 35.3251 149.125 +-379.703 34.4761 145.541 +-379.5 33.579 141.754 +-114.368 9.85639 41.6088 +-111.917 9.38946 39.6377 +-110.101 8.987 37.9387 +-109.68 8.70516 36.7489 +-108.962 8.40376 35.4765 +-108.611 8.13439 34.3394 +-108.342 7.87404 33.2403 +-109.019 7.68276 32.4329 +-108.251 7.39115 31.2018 +-109.295 7.22397 30.4961 +-109.372 6.99153 29.5148 +-109.536 6.76529 28.5597 +-109.497 6.52739 27.5554 +-110.129 6.32918 26.7187 +-110.753 6.12894 25.8734 +-111.176 5.9163 24.9757 +-112.957 5.77228 24.3678 +-113.856 5.57839 23.5492 +-115.533 5.41809 22.8725 +-118.875 5.32624 22.4848 +-157.911 6.74614 28.4789 +-160.425 6.52031 27.5256 +-160.173 6.17834 26.0819 +-161.882 5.91001 24.9492 +-3240.51 111.632 471.257 +-860.048 27.8614 117.617 +-380.913 11.5593 48.7978 +-380.046 10.7562 45.4072 +-379.942 9.97823 42.1232 +-402.98 9.76294 41.2143 +-404.131 8.96966 37.8655 +-405.152 8.17046 34.4917 +-403.652 7.32265 30.9126 +-403.515 6.50399 27.4567 +-403.746 5.69207 24.0291 +-146.499 1.76973 7.47093 +-403.715 4.06299 17.1519 +-403.254 3.24592 13.7027 +-146.45 0.883961 3.73165 +-145.178 0.584116 2.46585 +-145.294 0.292271 1.23383 +119.7 3.55271e-15 -1.13687e-13 +119.695 0.249937 1.01423 +119.682 0.499852 2.02837 +120.459 0.754742 3.06269 +120.327 1.0054 4.07985 +120.485 1.25869 5.1077 +120.135 1.50646 6.11314 +120.175 1.75871 7.13673 +120.206 2.01124 8.1615 +120.627 2.27154 9.21779 +120.54 2.52332 10.2395 +120.642 2.77951 11.2791 +121.133 3.04632 12.3618 +120.123 3.27475 13.2887 +120.892 3.55169 14.4125 +120.659 3.80084 15.4236 +120.318 4.04598 16.4183 +120.759 4.31827 17.5233 +120.3 4.55902 18.5002 +121.017 4.84558 19.6631 +120.344 5.07731 20.6034 +120.154 5.3284 21.6223 +120.74 5.6156 22.7878 +120.433 5.86272 23.7906 +121.095 6.15875 24.9918 +120.865 6.41135 26.0169 +120.627 6.66347 27.04 +120.477 6.92069 28.0837 +120.899 7.21251 29.2679 +120.728 7.47066 30.3155 +121.127 7.7658 31.5131 +120.936 8.02481 32.5642 +121.407 8.32979 33.8018 +121.099 8.58296 34.8291 +120.781 8.83549 35.8539 +120.931 9.12334 37.0219 +121.64 9.45683 38.3752 +121.385 9.71805 39.4352 +121.121 9.97893 40.4939 +121.224 10.2714 41.6807 +121.408 10.5732 42.9054 +121.58 10.8766 44.1365 +117.724 10.8128 43.8775 +114.814 10.8214 43.9126 +111.911 10.8187 43.9016 +108.463 10.7498 43.622 +105.858 10.7515 43.6289 +102.527 10.6668 43.2852 +99.9419 10.6469 43.2045 +97.1839 10.5972 43.0027 +95.978 10.7087 43.4553 +97.8402 11.1662 45.3118 +96.6204 11.2757 45.756 +97.5478 11.6372 47.2229 +97.5652 11.8947 48.268 +97.2164 12.109 49.1376 +96.9476 12.334 50.0507 +96.4062 12.5245 50.8238 +96.7329 12.8298 52.0624 +96.3484 13.043 52.9279 +96.4752 13.3275 54.0821 +96.761 13.6377 55.341 +96.8599 13.9255 56.5088 +96.4336 14.1397 57.378 +96.6775 14.4546 58.656 +96.0623 14.6431 59.4207 +96.8665 15.0516 61.0785 +96.3138 15.2533 61.897 +96.4171 15.5609 63.145 +95.8459 15.7616 63.9596 +95.9227 16.0709 65.2148 +96.0656 16.3956 66.5325 +96.1112 16.7081 67.8005 +96.1413 17.022 69.0743 +96.3154 17.3661 70.4707 +96.2338 17.6685 71.6978 +96.2949 18.0014 73.0484 +95.6347 18.2018 73.8616 +96.2107 18.6417 75.6468 +96.2987 18.9941 77.0767 +96.2918 19.3328 78.4514 +96.1914 19.6575 79.7688 +96.0745 19.9831 81.0904 +96.0161 20.3257 82.4804 +95.94 20.6695 83.8755 +96.5096 21.16 85.866 +95.6611 21.3444 86.6142 +96.1846 21.8398 88.6245 +96.0319 22.1894 90.0431 +95.8609 22.54 91.4659 +95.7423 22.9085 92.9612 +96.0947 23.3976 94.9461 +95.7934 23.7351 96.3156 +95.6125 24.1079 97.8283 +95.9572 24.6214 99.912 +95.7311 24.9973 101.437 +95.7526 25.4452 103.255 +95.4835 25.8235 104.79 +95.719 26.3468 106.914 +95.339 26.7095 108.385 +95.3897 27.2007 110.379 +95.4117 27.6943 112.382 +95.4679 28.2085 114.469 +94.9957 28.5753 115.957 +95.0581 29.112 118.135 +94.9059 29.5942 120.091 +94.846 30.116 122.209 +94.8148 30.6592 124.413 +95.1624 31.3399 127.175 +95.1191 31.9075 129.478 +94.5828 32.3204 131.154 +94.8164 33.0098 133.952 +94.6714 33.5833 136.279 +94.6572 34.2186 138.857 +94.8761 34.9567 141.852 +94.7259 35.5774 144.371 +94.3256 36.1189 146.568 +94.4677 36.8855 149.679 +94.6125 37.6763 152.888 +93.9454 38.1611 154.855 +94.35 39.1017 158.672 +94.3484 39.9011 161.916 +94.247 40.6825 165.087 +94.048 41.4456 168.184 +94.2229 42.401 172.061 +93.9658 43.1903 175.264 +94.0214 44.1522 179.167 +94.0139 45.1179 183.086 +93.8991 46.0652 186.93 +93.7223 47.0153 190.785 +93.8213 48.1416 195.356 +93.8866 49.2937 200.031 +93.5494 50.2747 204.012 +93.5465 51.4775 208.893 +93.4629 52.6842 213.789 +93.6044 54.071 219.417 +93.2396 55.2183 224.073 +93.5311 56.8136 230.546 +93.4265 58.2351 236.314 +93.2252 59.6607 242.099 +93.0637 61.1796 248.263 +92.7315 62.6573 254.259 +92.7869 64.4774 261.645 +92.7164 66.3024 269.051 +92.2725 67.9498 275.736 +92.1663 69.9427 283.823 +92.2725 72.2148 293.043 +92.4186 74.653 302.937 +92.2558 76.9821 312.388 +92.1171 79.4774 322.514 +92.1396 82.2786 333.881 +92.0898 85.2013 345.742 +91.7852 88.0833 357.437 +91.8374 91.5289 371.418 +106.874 110.765 449.476 +102.614 110.75 449.417 +98.3838 110.749 449.414 +94.2013 110.786 449.565 +90.9586 111.966 454.349 +90.4253 116.739 473.719 +90.1929 122.39 496.651 +89.9509 128.615 521.912 +89.8247 135.699 550.657 +89.6168 143.477 582.222 +89.1265 151.739 615.747 +89.1755 162.072 657.68 +87.2097 169.947 689.635 +88.5136 185.884 754.308 +83.2569 189.537 769.127 +75.6702 188.036 763.038 +68.9925 188.687 765.681 +61.7473 187.727 761.784 +55.0379 188.326 764.215 +47.9353 187.526 760.969 +41.2669 188.408 764.546 +34.1016 186.885 758.368 +27.4345 187.977 762.801 +20.4285 186.664 757.472 +13.7036 187.848 762.275 +6.80495 186.577 757.12 +3.5083e-14 187.637 761.421 +-6.80408 186.554 757.023 +-13.6705 187.394 760.432 +-20.3866 186.281 755.919 +-27.3263 187.236 759.793 +-33.9315 185.953 754.585 +-40.9791 187.094 759.214 +-47.5263 185.926 754.477 +-54.6472 186.989 758.792 +-61.0726 185.675 753.459 +-68.2604 186.685 757.557 +-74.683 185.583 753.083 +-81.9085 186.467 756.67 +-88.2985 185.433 752.475 +-95.6431 186.381 756.323 +-101.85 185.107 751.152 +-109.432 186.309 756.03 +-115.483 184.89 750.272 +-115.308 174.196 706.878 +-121.475 173.689 704.82 +-128.152 173.9 705.677 +-134.945 174.214 706.951 +-145.435 179.023 726.463 +-155.946 183.402 744.232 +-681.264 766.892 3112 +-142.547 153.85 624.312 +-144.576 149.839 608.038 +-145.577 145.088 588.756 +-148.25 142.271 577.325 +-145.396 134.52 545.872 +-146.362 130.698 530.364 +-152.032 131.171 532.285 +-110.007 91.7945 372.496 +-111.902 90.3911 366.802 +-114.434 89.5592 363.426 +-117.817 89.408 362.812 +-121.104 89.1814 361.892 +-125.557 89.7874 364.352 +-1066.79 741.309 3008.19 +-1093.78 739.053 2999.03 +-1120.7 736.741 2989.65 +-1147.52 734.372 2980.04 +-1174.26 731.949 2970.2 +-1200.91 729.47 2960.14 +-459.83 272.321 1105.06 +-444.793 256.938 1042.64 +-160.043 90.215 366.087 +-162.929 89.658 363.827 +-166.193 89.3144 362.432 +-169.444 88.9639 361.01 +-406.517 208.592 846.454 +-141.896 71.1816 288.851 +-142.865 70.087 284.408 +-146.174 70.1499 284.664 +-148.409 69.6929 282.809 +-418.021 192.138 779.686 +-420.318 189.146 767.541 +-422.667 186.263 755.844 +-424.354 183.176 743.318 +-426.143 180.221 731.327 +-427.65 177.232 719.196 +-429.733 174.559 708.35 +-135.507 53.9609 218.97 +-1711.86 668.407 2712.36 +-436.071 166.978 677.588 +-438.383 164.649 668.135 +-441.158 162.543 659.59 +-444.144 160.558 651.536 +-447.019 158.574 643.482 +-449.273 156.412 634.709 +-451.806 154.39 626.503 +-453.239 152.038 616.96 +-456.239 150.253 609.718 +-458.014 148.102 600.99 +-460.509 146.223 593.365 +-462.963 144.364 585.819 +-480.093 147.031 596.642 +-468.754 141.004 572.186 +-471.676 139.369 565.552 +-474.324 137.677 558.686 +-477.27 136.095 552.266 +-479.682 134.384 545.322 +-482.4 132.781 538.818 +-485.568 131.321 532.893 +-488.332 129.769 526.593 +-490.546 128.091 519.787 +-493.903 126.73 514.261 +-496.372 125.155 507.873 +-499.182 123.684 501.903 +-501.781 122.176 495.784 +-504.521 120.718 489.866 +-2336.97 549.496 2229.82 +-507.854 117.346 476.183 +-2376.69 539.653 2189.88 +-2396.28 534.671 2169.66 +-2415.69 529.646 2149.27 +-2434.91 524.583 2128.73 +-140.804 29.8069 120.954 +-142.338 29.6059 120.139 +-142.576 29.1367 118.235 +-141.718 28.4533 115.462 +-141.362 27.8824 113.145 +-141.907 27.4957 111.576 +-146.113 27.809 112.847 +-153.347 28.6667 116.328 +-155.815 28.6076 116.088 +-157.171 28.3387 114.997 +-158.199 28.0095 113.661 +-160.024 27.8188 112.887 +-160.951 27.4697 111.47 +-2683.95 449.669 1824.73 +-381.488 62.7346 254.573 +-382.767 61.7751 250.68 +-380.585 60.2737 244.587 +-381.595 59.2943 240.613 +-381.044 58.0839 235.701 +-381.537 57.0452 231.486 +-380.107 55.7337 226.164 +-381.697 54.8762 222.684 +-381.357 53.7492 218.111 +-381.311 52.6758 213.755 +-379.04 51.312 208.221 +-380.285 50.4374 204.672 +-380.44 49.4246 200.562 +-379.932 48.3364 196.146 +-381.149 47.4748 192.65 +-380.103 46.3404 188.046 +-378.289 45.1287 183.129 +-381.089 44.4733 180.47 +-379.447 43.3052 175.73 +-380.74 42.4809 172.385 +-380.364 41.476 168.307 +-379.761 40.4562 164.169 +-380.305 39.5663 160.558 +-379.616 38.5559 156.457 +-379.253 37.5878 152.529 +-379.775 36.7137 148.982 +-379.703 35.7877 145.224 +-381.554 35.045 142.211 +-114.274 10.223 41.4842 +-112.105 9.76303 39.6178 +-110.101 9.3289 37.8561 +-109.68 9.03634 36.6689 +-108.962 8.72346 35.3993 +-108.611 8.44385 34.2646 +-109.01 8.22396 33.3723 +-109.401 8.00302 32.4757 +-108.73 7.70632 31.2718 +-109.392 7.50538 30.4564 +-109.372 7.25751 29.4505 +-109.826 7.04124 28.5729 +-110.175 6.81764 27.6655 +-110.905 6.61629 26.8485 +-110.753 6.36211 25.817 +-111.955 6.18445 25.0961 +-112.957 5.99188 24.3147 +-113.759 5.78563 23.4777 +-116.219 5.6576 22.9582 +-118.384 5.50604 22.3432 +-158.402 7.02458 28.5053 +-160.721 6.78084 27.5162 +-161.06 6.44894 26.1694 +-164.154 6.22094 25.2442 +-3240.51 115.879 470.23 +-860.048 28.9213 117.361 +-379.624 11.9585 48.5267 +-380.641 11.1828 45.3793 +-379.246 10.3389 41.9546 +-404.87 10.1819 41.3174 +-405.126 9.33382 37.8761 +-403.558 8.44794 34.2812 +-402.655 7.58245 30.7691 +-403.515 6.75143 27.3969 +-403.147 5.89986 23.9413 +-142.804 1.79072 7.26665 +-403.216 4.21234 17.0934 +-403.654 3.37276 13.6864 +-146.25 0.916339 3.71845 +-145.778 0.608843 2.47065 +-145.194 0.30318 1.23028 +119.8 1.77636e-15 -1.13687e-13 +119.795 0.25929 1.01278 +120.582 0.522023 2.039 +120.459 0.782336 3.05576 +120.427 1.04302 4.07399 +120.585 1.30579 5.10036 +120.135 1.56154 6.0993 +120.175 1.82301 7.12058 +120.306 2.0865 8.14978 +120.826 2.35849 9.21212 +120.54 2.61557 10.2163 +120.742 2.88351 11.2628 +120.238 3.13436 12.2426 +120.421 3.40289 13.2915 +120.892 3.68154 14.3799 +120.659 3.9398 15.3887 +120.318 4.1939 16.3812 +120.858 4.47982 17.4979 +120.399 4.7296 18.4736 +121.116 5.02683 19.6345 +120.344 5.26294 20.5568 +121.039 5.56389 21.7323 +119.955 5.78307 22.5884 +120.433 6.07707 23.7367 +120.312 6.34265 24.7741 +120.084 6.60282 25.7903 +120.627 6.9071 26.9788 +120.477 7.17372 28.0202 +120.996 7.4822 29.2251 +120.728 7.74379 30.2469 +121.127 8.04973 31.4418 +120.936 8.31821 32.4905 +120.734 8.58649 33.5384 +121.003 8.88972 34.7228 +120.781 9.15853 35.7727 +121.217 9.47927 37.0255 +121.64 9.80258 38.2884 +121.385 10.0733 39.346 +121.215 10.3518 40.4337 +121.412 10.6635 41.6509 +121.314 10.9513 42.7752 +121.674 11.2829 44.0705 +117.164 11.1548 43.5699 +114.814 11.217 43.8132 +111.077 11.1306 43.4757 +108.556 11.1523 43.5604 +105.122 11.067 43.2273 +102.619 11.0667 43.2258 +100.033 11.0463 43.1461 +98.2758 11.1081 43.3875 +96.6124 11.1736 43.6435 +97.0279 11.4784 44.8339 +97.3394 11.7749 45.9922 +97.6373 12.0737 47.1592 +97.9216 12.3746 48.3347 +97.3051 12.5632 49.0711 +96.9476 12.785 49.9374 +97.1972 13.089 51.1249 +96.8204 13.3109 51.9915 +96.2613 13.5077 52.7603 +96.4752 13.8147 53.9596 +96.8471 14.1489 55.2648 +96.9456 14.4474 56.4307 +96.4336 14.6567 57.2482 +96.6775 14.9831 58.5233 +96.0623 15.1785 59.2862 +96.2794 15.5074 60.571 +96.4806 15.8384 61.8638 +96.4171 16.1298 63.0021 +96.5876 16.4643 64.3087 +95.9227 16.6585 65.0672 +96.147 17.0095 66.4382 +96.1112 17.319 67.6471 +96.2217 17.6591 68.9756 +96.3154 18.001 70.3112 +96.3131 18.3296 71.5945 +95.6645 18.5374 72.406 +96.3391 19.0062 74.2372 +95.589 19.1984 74.9878 +96.3759 19.7043 76.9639 +96.2918 20.0397 78.2738 +96.1153 20.36 79.5253 +96.0745 20.7137 80.9068 +96.0161 21.0688 82.2937 +95.94 21.4252 83.6857 +95.9198 21.7996 85.148 +96.4656 22.3108 87.1449 +95.6043 22.5017 87.8904 +95.3845 22.8456 89.2337 +95.8609 23.3641 91.2588 +95.7423 23.746 92.7508 +96.1648 24.2708 94.8004 +95.8629 24.6207 96.1672 +95.6125 24.9893 97.6069 +96.0254 25.5399 99.7575 +95.7311 25.9112 101.208 +95.9533 26.4308 103.237 +95.6161 26.8046 104.697 +95.8502 27.3475 106.818 +95.2091 27.6483 107.993 +94.9397 28.0623 109.61 +95.4117 28.7069 112.128 +95.405 29.2205 114.134 +95.556 29.7947 116.377 +94.9966 30.1568 117.791 +94.9059 30.6762 119.819 +94.9664 31.2568 122.087 +94.7553 31.76 124.053 +95.0449 32.4455 126.731 +95.1191 33.074 129.185 +94.9843 33.6445 131.414 +94.8164 34.2166 133.648 +94.6714 34.8112 135.971 +94.602 35.4491 138.462 +94.4404 36.0684 140.881 +94.7259 36.8782 144.044 +94.2726 37.4183 146.154 +94.1542 38.1073 148.845 +94.767 39.1175 152.791 +94.3514 39.7272 155.172 +93.9 40.338 157.558 +94.3484 41.3599 161.55 +94.247 42.1699 164.714 +94.4774 43.157 168.569 +94.2699 43.973 171.756 +94.012 44.7912 174.952 +94.1122 45.8109 178.935 +93.6569 46.5899 181.978 +93.9429 47.7717 186.594 +93.7653 48.7566 190.441 +93.8213 49.9017 194.913 +93.928 51.1185 199.666 +93.5901 52.1356 203.639 +93.5465 53.3596 208.42 +93.4629 54.6104 213.305 +93.5661 56.0251 218.831 +93.5018 57.3981 224.194 +93.5678 58.9138 230.114 +93.4624 60.3875 235.87 +93.5754 62.0743 242.459 +92.7559 63.2068 246.882 +93.0987 65.2053 254.689 +92.5265 66.647 260.32 +92.8116 68.7971 268.718 +92.2416 70.4105 275.02 +92.5873 72.8309 284.474 +92.1848 74.7839 292.102 +92.1914 77.1921 301.508 +91.9802 79.5582 310.75 +92.1171 82.3832 321.785 +92.1396 85.2868 333.126 +91.8644 88.1001 344.114 +91.7126 91.2316 356.346 +91.6506 94.6823 369.824 +106.852 114.79 448.365 +102.83 115.041 449.345 +98.4046 114.823 448.492 +94.2013 114.837 448.547 +90.9396 116.035 453.226 +90.6075 121.251 473.599 +90.1929 126.865 495.527 +89.9674 133.342 520.826 +89.8247 140.66 549.411 +89.6612 148.797 581.192 +89.2656 157.532 615.312 +89.0189 167.703 655.038 +86.6735 175.077 683.843 +88.1061 191.793 749.135 +82.4625 194.591 760.064 +74.9226 192.985 753.789 +68.2778 193.56 756.035 +61.151 192.711 752.72 +54.5844 193.603 756.204 +47.4225 192.303 751.125 +40.843 193.29 754.98 +33.7876 191.934 749.684 +27.1727 192.991 753.813 +20.261 191.902 749.56 +13.5658 192.757 752.899 +6.73514 191.415 747.657 +4.07452e-14 192.34 751.269 +-6.7299 191.266 747.076 +-13.5343 192.311 751.155 +-20.1641 190.985 745.976 +-27.0646 192.223 750.812 +-33.6393 191.091 746.393 +-40.5708 192.002 749.95 +-47.0806 190.917 745.711 +-54.0334 191.649 748.569 +-60.5861 190.931 745.767 +-67.5544 191.509 748.025 +-73.9833 190.565 744.339 +-81.0827 191.336 747.347 +-87.4268 190.315 743.36 +-94.6925 191.275 747.111 +-101.027 190.325 743.401 +-108.374 191.254 747.028 +-114.464 189.957 741.963 +-115.402 180.712 705.852 +-121.541 180.137 703.608 +-128.361 180.551 705.224 +-135.31 181.072 707.256 +-144.595 184.497 720.634 +-152.217 185.562 724.796 +-681.264 794.93 3104.96 +-139.69 156.278 610.413 +-143.384 154.036 601.658 +-145.717 150.537 587.989 +-147.33 146.558 572.447 +-145.621 139.654 545.482 +-146.569 135.668 529.913 +-151.872 135.824 530.52 +-110.007 95.1505 371.653 +-111.902 93.6959 365.971 +-114.434 92.8335 362.603 +-117.786 92.6532 361.899 +-121.413 92.6778 361.995 +-125.843 93.2817 364.354 +-1066.79 768.412 3001.38 +-1093.78 766.073 2992.24 +-1120.7 763.677 2982.88 +-1147.52 761.222 2973.29 +-1174.26 758.709 2963.48 +-1200.91 756.14 2953.44 +-459.005 281.771 1100.58 +-444.793 266.332 1040.28 +-160.434 93.7415 366.15 +-162.769 92.8449 362.648 +-166.03 92.489 361.257 +-170.232 92.6453 361.868 +-142.507 75.7968 296.058 +-141.983 73.829 288.372 +-142.865 72.6494 283.765 +-146.353 72.8034 284.366 +-149.908 72.9701 285.017 +-417.79 199.053 777.491 +-420.177 195.995 765.547 +-422.763 193.117 754.303 +-424.354 189.873 741.635 +-426.143 186.81 729.672 +-427.75 183.755 717.736 +-429.631 180.898 706.58 +-135.197 55.8061 217.976 +-135.17 54.7078 213.686 +-435.806 172.978 675.644 +-439.404 171.066 668.175 +-441.539 168.632 658.666 +-443.978 166.367 649.819 +-446.683 164.248 641.543 +-449.84 162.335 634.07 +-451.806 160.034 625.085 +-453.994 157.859 616.589 +-456.239 155.747 608.338 +-458.549 153.697 600.331 +-460.509 151.569 592.022 +-462.963 149.642 584.493 +-480.093 152.406 595.291 +-468.567 146.101 570.663 +-471.172 144.31 563.669 +-475.087 142.941 558.319 +-477.591 141.166 551.387 +-480.462 139.523 544.971 +-482.991 137.804 538.257 +-485.568 136.122 531.687 +-488.332 134.513 525.401 +-491.154 132.939 519.254 +-493.903 131.363 513.097 +-496.785 129.839 507.146 +-499.807 128.367 501.394 +-501.781 126.643 494.662 +-504.945 125.237 489.168 +-508.334 123.896 483.93 +-2356.92 564.507 2204.93 +-2376.69 559.383 2184.92 +-2396.28 554.219 2164.75 +-384.195 87.3156 341.05 +-2434.91 543.762 2123.91 +-140.579 30.8473 120.488 +-142.036 30.6231 119.612 +-142.728 30.2339 118.092 +-141.642 29.4775 115.137 +-141.362 28.9018 112.889 +-142.218 28.5635 111.568 +-146.504 28.9031 112.894 +-154.371 29.9132 116.84 +-155.894 29.6687 115.884 +-155.894 29.1359 113.804 +-158.119 29.0189 113.346 +-159.134 28.6754 112.005 +-161.276 28.5315 111.443 +-382.298 66.3921 259.324 +-383.466 65.3655 255.314 +-381.44 63.8119 249.246 +-381.086 62.5594 244.354 +-382.098 61.5433 240.385 +-381.297 60.2474 235.323 +-382.385 59.2622 231.475 +-382.068 58.0695 226.817 +-381.439 56.8443 222.031 +-380.582 55.6012 217.175 +-380.185 54.4405 212.642 +-381.216 53.4935 208.943 +-381.247 52.4139 204.726 +-380.791 51.279 200.293 +-380.639 50.1966 196.065 +-378.133 48.8211 190.693 +-377.43 47.6968 186.301 +-378.289 46.7786 182.715 +-379.74 45.9364 179.425 +-380.259 44.9845 175.707 +-379.199 43.8557 171.298 +-381.183 43.0849 168.287 +-380.766 42.0464 164.231 +-379.938 40.9735 160.04 +-379.984 40.0042 156.254 +-380.823 39.1232 152.813 +-378.94 37.9724 148.318 +-380.727 37.1961 145.286 +-380.341 36.2107 141.437 +-114.368 10.6054 41.4242 +-112.105 10.12 39.5281 +-110.289 9.68654 37.8351 +-109.68 9.36671 36.5859 +-109.152 9.05815 35.3807 +-108.801 8.76789 34.2469 +-108.914 8.51717 33.2676 +-108.541 8.23036 32.1474 +-108.73 7.98807 31.201 +-108.719 7.73194 30.2005 +-109.468 7.52948 29.4097 +-109.633 7.28585 28.4581 +-109.497 7.02344 27.4332 +-110.032 6.80417 26.5767 +-110.753 6.59471 25.7586 +-111.955 6.41056 25.0393 +-112.86 6.20557 24.2386 +-114.541 6.03843 23.5858 +-116.219 5.86444 22.9062 +-119.268 5.74993 22.4589 +-158.206 7.27238 28.4055 +-157.865 6.90385 26.9661 +-161.06 6.68472 26.1102 +-163.857 6.43675 25.1416 +-3240.51 120.116 469.166 +-860.246 29.9857 117.122 +-380.318 12.4183 48.5054 +-381.038 11.6038 45.3238 +-379.644 10.7281 41.9034 +-406.063 10.5853 41.3455 +-403.633 9.63944 37.6511 +-403.26 8.75031 34.1783 +-404.549 7.89665 30.8439 +-403.515 6.99827 27.3349 +-402.747 6.10951 23.8634 +-143.603 1.86658 7.29076 +-403.216 4.36635 17.0547 +-403.654 3.49607 13.6555 +-145.85 0.947244 3.69989 +-145.078 0.628072 2.45322 +-146.094 0.316214 1.23511 +119.9 5.32907e-15 2.84217e-14 +119.895 0.26864 1.01124 +119.882 0.537259 2.02239 +120.559 0.810544 3.05111 +120.527 1.08063 4.06779 +120.685 1.35287 5.09258 +120.235 1.61785 6.09002 +120.275 1.88874 7.10975 +120.406 2.16173 8.13737 +120.826 2.4415 9.19047 +120.54 2.70763 10.1923 +120.841 2.98746 11.2456 +121.431 3.27687 12.3351 +120.421 3.52266 13.2603 +120.892 3.81112 14.3461 +120.758 4.08184 15.3652 +120.516 4.34868 16.3696 +120.858 4.63749 17.4568 +120.399 4.89607 18.4302 +120.228 5.16563 19.4449 +120.442 5.45265 20.5253 +120.252 5.72229 21.5403 +120.838 6.0307 22.7012 +121.315 6.33705 23.8544 +120.41 6.57123 24.7359 +120.084 6.83522 25.7297 +120.724 7.15598 26.9371 +120.477 7.42621 27.9543 +121.093 7.75177 29.1798 +120.825 8.02277 30.1999 +121.127 8.33305 31.3679 +121.032 8.61784 32.4399 +120.831 8.89577 33.4861 +121.195 9.21719 34.6961 +120.877 9.4884 35.717 +121.217 9.8129 36.9385 +121.735 10.1555 38.2283 +121.48 10.436 39.2841 +122.066 10.7914 40.6218 +121.601 11.0559 41.6176 +122.254 11.4245 43.0052 +121.861 11.698 44.0347 +118.285 11.6578 43.8831 +114.907 11.6212 43.7456 +112.004 11.6186 43.7355 +108.556 11.5448 43.458 +105.214 11.4666 43.1635 +102.619 11.4562 43.1242 +100.033 11.4351 43.0447 +98.0938 11.4777 43.2053 +96.7937 11.5886 43.6226 +97.0279 11.8824 44.7285 +97.4293 12.2006 45.9264 +96.9214 12.407 46.7033 +98.0107 12.8218 48.2649 +97.926 13.0883 49.2681 +96.9476 13.2349 49.82 +97.2851 13.5619 51.0508 +96.8204 13.7794 51.8693 +97.0447 14.0969 53.0647 +97.3413 14.4293 54.3161 +96.8471 14.6469 55.135 +97.0313 14.9691 56.3479 +96.4336 15.1725 57.1136 +96.6775 15.5105 58.3857 +96.1466 15.7265 59.1989 +97.0342 16.179 60.9023 +95.7301 16.2683 61.2384 +96.4171 16.6975 62.854 +96.0107 16.942 63.7743 +96.0046 17.2596 64.9697 +96.147 17.6082 66.282 +96.1921 17.9437 67.5449 +96.3021 18.2959 68.871 +96.2356 18.6192 70.0877 +96.3131 18.9747 71.4262 +96.2949 19.3163 72.7118 +96.3391 19.6752 74.0627 +95.6667 19.8902 74.8724 +96.3759 20.3978 76.783 +96.2152 20.7285 78.0277 +96.1153 21.0767 79.3384 +96.15 21.4596 80.7801 +96.0161 21.8104 82.1003 +95.94 22.1793 83.489 +95.8461 22.5495 84.8826 +95.7342 22.921 86.281 +96.1846 23.4351 88.216 +96.0319 23.8102 89.6282 +95.9322 24.2044 91.1121 +95.6715 24.5636 92.4644 +95.5339 24.9602 93.9571 +95.9323 25.5057 96.0107 +95.6813 25.8873 97.4471 +96.0254 26.4388 99.5231 +95.6636 26.8042 100.898 +95.8864 27.3421 102.923 +95.6823 27.7672 104.524 +95.8502 28.31 106.567 +95.339 28.6605 107.886 +95.3897 29.1876 109.87 +95.4117 29.7173 111.864 +95.5308 30.289 114.016 +94.8712 30.6223 115.271 +95.0581 31.2385 117.59 +94.9668 31.7761 119.614 +94.9062 32.3364 121.723 +94.8148 32.8986 123.84 +94.8098 33.5043 126.12 +94.7127 34.0918 128.331 +95.1563 34.8915 131.341 +94.873 35.442 133.414 +94.7832 36.079 135.811 +94.602 36.6968 138.137 +94.4949 37.3594 140.631 +94.7259 38.1761 143.706 +94.3256 38.7572 145.893 +93.9975 39.3829 148.248 +94.3035 40.2961 151.686 +94.3514 41.1254 154.808 +94.4 41.9802 158.025 +94.3976 42.838 161.254 +94.2955 43.6768 164.411 +94.048 44.4729 167.408 +94.2229 45.4981 171.268 +94.012 46.3677 174.541 +94.0668 47.4004 178.428 +94.0139 48.4135 182.242 +93.8553 49.4069 185.981 +93.7653 50.4727 189.993 +93.8213 51.6581 194.455 +93.5963 52.7308 198.493 +93.5494 53.947 203.071 +93.5864 55.2613 208.019 +93.4629 56.5325 212.804 +93.6044 58.0206 218.406 +93.5018 59.4183 223.667 +93.5311 60.9635 229.483 +93.4265 62.4888 235.225 +93.5404 64.235 241.798 +93.0979 65.6725 247.21 +93.0654 67.4759 253.998 +92.9823 69.3327 260.988 +92.7164 71.1454 267.811 +92.4579 73.0597 275.017 +92.2565 75.125 282.791 +92.4479 77.6371 292.247 +92.3334 80.032 301.263 +92.2007 82.5559 310.763 +92.1438 85.3077 321.122 +92.1396 88.2886 332.343 +92.1148 91.4497 344.242 +91.7368 94.4675 355.602 +91.4872 97.8402 368.298 +107.077 119.081 448.252 +103.004 119.291 449.044 +98.6333 119.14 448.478 +94.4007 119.13 448.44 +90.9777 120.169 452.35 +90.5711 125.468 472.296 +90.0713 131.153 493.696 +89.9674 138.035 519.602 +89.8403 145.636 548.214 +89.6464 154.008 579.73 +89.0708 162.721 612.527 +88.5098 172.613 649.762 +86.8197 181.545 683.387 +86.7703 195.534 736.043 +81.3127 198.632 747.705 +73.1974 195.177 734.701 +67.3191 197.559 743.667 +59.6995 194.759 733.126 +53.6985 197.165 742.183 +46.3725 194.663 732.767 +40.1888 196.888 741.142 +33.033 194.252 731.217 +26.7365 196.576 739.967 +19.7976 194.113 730.697 +13.3598 196.512 739.726 +6.58766 193.813 729.566 +4.26326e-14 196.311 738.969 +-6.58243 193.659 728.986 +-13.3336 196.127 738.277 +-19.7165 193.318 727.702 +-26.6527 195.961 737.65 +-32.8541 193.2 727.258 +-39.9742 195.837 737.184 +-45.9573 192.921 726.208 +-53.2939 195.679 736.59 +-59.0875 192.762 725.61 +-66.5783 195.385 735.483 +-72.3348 192.877 726.043 +-79.9434 195.287 735.113 +-85.4571 192.574 724.904 +-93.3763 195.255 734.996 +-98.6647 192.417 724.31 +-106.634 194.807 733.308 +-111.936 192.301 723.875 +-115.668 187.504 705.816 +-121.624 186.604 702.43 +-128.569 187.21 704.709 +-137.387 190.323 716.427 +-144.824 191.293 720.079 +-146.037 184.294 693.733 +-158.138 191.017 719.039 +-137.223 158.921 598.223 +-142.731 158.733 597.513 +-144.176 154.188 580.405 +-145.879 150.221 565.475 +-145.621 144.569 544.2 +-146.673 140.542 529.04 +-152.192 140.901 530.391 +-110.172 98.6474 371.336 +-112.186 97.2399 366.038 +-114.727 96.3464 362.675 +-117.997 96.0858 361.694 +-121.351 95.891 360.96 +-125.938 96.6381 363.773 +-1066.79 795.457 2994.32 +-1093.78 793.036 2985.21 +-1120.7 790.556 2975.87 +-1147.52 788.014 2966.3 +-1174.26 785.413 2956.51 +-1200.91 782.753 2946.5 +-457.844 290.949 1095.21 +-443.913 275.159 1035.77 +-161.02 97.3955 366.624 +-163.288 96.4188 362.947 +-166.355 95.932 361.115 +-171.019 96.35 362.688 +-143.648 79.0928 297.727 +-142.37 76.636 288.479 +-143.304 75.4372 283.967 +-146.576 75.4809 284.131 +-416.264 209.755 789.578 +-417.975 206.15 776.006 +-420.177 202.894 763.748 +-422.763 199.914 752.531 +-424.742 196.736 740.568 +-426.636 193.609 728.798 +-428.45 190.533 717.22 +-429.885 187.376 705.336 +-428.306 183.016 688.925 +-135.536 56.7867 213.761 +-138.097 56.742 213.593 +-439.242 177.022 666.36 +-441.321 174.481 656.794 +-444.309 172.351 648.775 +-446.851 170.093 640.276 +-449.443 167.9 632.022 +-451.864 165.688 623.695 +-454.516 163.603 615.847 +-456.415 161.291 607.143 +-459.144 159.313 599.697 +-460.87 157.027 591.093 +-461.502 154.42 581.279 +-480.093 157.771 593.892 +-469.314 151.485 570.23 +-471.739 149.569 563.021 +-474.896 147.912 556.783 +-478.17 146.312 550.757 +-480.851 144.551 544.132 +-482.991 142.655 536.992 +-486.164 141.086 531.088 +-489.134 139.477 525.028 +-491.627 137.751 518.532 +-494.517 136.156 512.528 +-497.061 134.484 506.234 +-499.598 132.829 500.006 +-502.272 131.229 493.981 +-505.228 129.717 488.292 +-2337.11 589.67 2219.68 +-2356.92 584.376 2199.75 +-520.311 126.772 477.205 +-2396.28 573.726 2159.66 +-383.089 90.1287 339.269 +-2434.91 562.901 2118.92 +-141.253 32.086 120.781 +-142.036 31.7009 119.331 +-142.728 31.2981 117.815 +-141.642 30.515 114.867 +-141.979 30.0495 113.115 +-141.907 29.5042 111.062 +-147.678 30.1602 113.531 +-155.238 31.1399 117.219 +-156.529 30.838 116.083 +-156.932 30.3625 114.293 +-158.601 30.1319 113.425 +-160.104 29.8659 112.424 +-160.625 29.4166 110.732 +-384.1 69.0529 259.934 +-384.62 67.8698 255.481 +-381.191 66.0148 248.498 +-381.169 64.7754 243.833 +-382.014 63.6953 239.767 +-380.538 62.2439 234.303 +-382.47 61.3617 230.982 +-382.068 60.1134 226.283 +-382.382 58.9903 222.056 +-379.978 57.4668 216.321 +-380.878 56.4593 212.528 +-378.692 55.0094 207.071 +-380.285 54.1216 203.729 +-379.649 52.9246 199.223 +-380.462 51.9392 195.514 +-380.794 50.8953 191.584 +-377.43 49.3756 185.863 +-380.526 48.7114 183.363 +-380.19 47.6094 179.215 +-381.162 46.6784 175.711 +-380.015 45.4971 171.264 +-379.545 44.4098 167.171 +-379.395 43.3697 163.256 +-379.938 42.4156 159.664 +-380.813 41.5023 156.226 +-378.421 40.2448 151.493 +-380.424 39.4627 148.549 +-380.634 38.4961 144.91 +-379.687 37.4208 140.862 +-113.993 10.9427 41.1915 +-112.105 10.4762 39.4352 +-110.478 10.0446 37.8107 +-109.018 9.63788 36.2796 +-109.152 9.37697 35.2975 +-108.801 9.07649 34.1664 +-108.628 8.79379 33.1023 +-108.732 8.53506 32.1283 +-109.305 8.31297 31.2923 +-109.584 8.06778 30.3693 +-109.854 7.82194 29.4439 +-109.439 7.52899 28.3412 +-110.272 7.32207 27.5623 +-110.129 7.04986 26.5376 +-111.531 6.87479 25.8786 +-111.176 6.58997 24.8065 +-112.762 6.41844 24.1608 +-113.661 6.2029 23.3494 +-116.023 6.06063 22.8139 +-119.759 5.9768 22.4983 +-157.714 7.50495 28.2507 +-160.425 7.26276 27.339 +-159.877 6.86914 25.8573 +-162.475 6.60707 24.8709 +-3240.51 124.343 468.063 +-860.939 31.066 116.941 +-382.995 12.9459 48.732 +-379.351 11.959 45.0171 +-379.246 11.0941 41.7612 +-404.174 10.9068 41.0564 +-404.23 9.99348 37.6182 +-403.658 9.06725 34.1316 +-405.048 8.18465 30.8093 +-403.914 7.25175 27.2976 +-402.747 6.32455 23.8073 +-147.597 1.98602 7.47595 +-149.458 1.67541 6.30671 +-404.553 3.62718 13.6537 +-147.05 0.988649 3.72155 +-146.378 0.656004 2.46938 +-146.094 0.327343 1.23221 +120.7 5.32907e-15 2.84217e-14 +119.995 0.277983 1.00961 +119.882 0.555483 2.01746 +120.659 0.838732 3.0462 +120.527 1.11728 4.05787 +119.786 1.38834 5.04232 +120.335 1.67411 6.08022 +120.275 1.95281 7.09242 +120.306 2.2332 8.1108 +120.926 2.52639 9.17564 +120.54 2.79947 10.1674 +120.841 3.0888 11.2182 +121.232 3.38247 12.2848 +120.421 3.64214 13.228 +120.991 3.94363 14.3229 +120.758 4.22029 15.3277 +120.516 4.49618 16.3297 +121.154 4.80658 17.4571 +120.399 5.06213 18.3852 +120.13 5.33646 19.3816 +120.54 5.64219 20.4919 +120.252 5.91638 21.4878 +120.838 6.23525 22.6459 +120.629 6.51494 23.6617 +121.095 6.83277 24.816 +120.865 7.11301 25.8338 +120.724 7.3987 26.8714 +121.546 7.74627 28.1338 +121.19 8.02109 29.1319 +121.503 8.34142 30.2953 +121.224 8.62257 31.3164 +121.707 8.95981 32.5412 +120.734 9.1902 33.378 +121.195 9.52983 34.6115 +121.642 9.87232 35.8554 +121.217 10.1457 36.8485 +121.735 10.5 38.1351 +121.101 10.7563 39.066 +121.972 11.1488 40.4915 +121.601 11.4309 41.5162 +121.408 11.7303 42.6036 +121.486 12.0576 43.7923 +118.751 12.1008 43.9489 +114.814 12.0057 43.6037 +111.911 12.0027 43.5928 +109.203 12.0075 43.6103 +105.95 11.9385 43.3597 +104.086 12.0141 43.6342 +100.764 11.9093 43.2535 +98.0938 11.867 43.1 +96.4311 11.9368 43.3533 +97.2084 12.3083 44.7025 +97.4293 12.6144 45.8145 +97.6373 12.9226 46.9337 +97.9216 13.2447 48.1035 +96.8616 13.3852 48.6138 +96.3296 13.5966 49.3817 +96.582 13.9206 50.5583 +96.8204 14.2467 51.7429 +97.0447 14.5751 52.9353 +96.5618 14.7993 53.7498 +96.761 15.1302 54.9517 +97.0313 15.4768 56.2105 +96.5189 15.701 57.0247 +96.6775 16.0366 58.2434 +96.8213 16.374 59.469 +96.1955 16.5832 60.2288 +96.564 16.9666 61.6212 +96.5829 17.2936 62.8087 +96.7524 17.652 64.1104 +96.0046 17.845 64.8114 +96.7983 18.3287 66.5684 +96.1921 18.5523 67.3803 +96.3021 18.9165 68.7032 +96.3154 19.2667 69.9749 +96.3924 19.6345 71.3108 +96.2949 19.9715 72.5346 +96.3391 20.3425 73.8822 +96.2884 20.6985 75.1753 +96.3759 21.0897 76.5959 +95.679 21.3121 77.4038 +96.1914 21.8088 79.2077 +96.0745 22.1701 80.5199 +96.091 22.5677 81.9641 +96.6088 23.0914 83.8661 +96.5833 23.4937 85.327 +96.3924 23.8614 86.6624 +96.2572 24.2482 88.0675 +96.0319 24.6178 89.4097 +95.9322 25.0254 90.89 +95.7423 25.4156 92.3073 +95.5339 25.8068 93.7281 +95.9323 26.3709 95.7767 +95.6125 26.7463 97.1401 +96.0254 27.3356 99.2805 +95.7311 27.733 100.724 +95.9533 28.2891 102.744 +95.6823 28.7091 104.269 +95.8502 29.2703 106.307 +95.4689 29.673 107.77 +95.3897 30.1776 109.602 +95.3481 30.7048 111.517 +95.5308 31.3164 113.738 +94.9957 31.7027 115.141 +95.0581 32.2981 117.304 +94.9059 32.833 119.247 +94.9062 33.4332 121.426 +95.2906 34.1852 124.158 +94.6922 34.598 125.657 +95.1772 35.4212 128.647 +95.099 36.0532 130.942 +94.8164 36.6224 133.009 +94.8391 37.3248 135.56 +94.7124 37.9858 137.961 +94.4404 38.6043 140.207 +94.7797 39.4933 143.436 +94.3786 40.0941 145.618 +94.4677 40.9223 148.626 +94.3035 41.6629 151.316 +94.4021 42.5432 154.513 +94.35 43.381 157.556 +94.3484 44.2679 160.777 +94.247 45.1349 163.926 +94.0957 46.0048 167.085 +94.2699 47.0647 170.935 +94.0582 47.9641 174.201 +94.0668 49.0082 177.993 +94.0585 50.0793 181.884 +93.5046 50.8919 184.835 +93.7653 52.1846 189.53 +93.9058 53.4586 194.157 +93.5963 54.5193 198.01 +93.5901 55.8012 202.665 +93.5864 57.1357 207.512 +93.4629 58.45 212.285 +93.6044 59.9886 217.873 +93.5767 61.4831 223.301 +93.5678 63.056 229.014 +93.7491 64.8316 235.463 +93.2602 66.2149 240.487 +93.1321 67.925 246.698 +93.032 69.7397 253.288 +92.7869 71.5339 259.805 +92.7164 73.5586 267.158 +92.3961 75.4874 274.164 +92.2565 77.6732 282.102 +92.1263 79.9911 290.521 +92.3618 82.7721 300.621 +92.0353 85.2029 309.45 +91.93 87.9966 319.596 +92.0619 91.2062 331.253 +91.7893 94.2173 342.189 +91.5191 97.44 353.894 +91.604 101.288 367.869 +107.482 123.585 448.851 +103.372 123.778 449.55 +98.7788 123.363 448.045 +94.7596 123.639 449.048 +90.8632 124.089 450.68 +90.5893 129.75 471.24 +90.0539 135.575 492.397 +89.9344 142.665 518.145 +89.8403 150.576 546.878 +89.5873 159.127 577.936 +89.0429 168.188 610.843 +86.7999 175.02 635.656 +88.7087 191.787 696.553 +83.7364 195.097 708.577 +78.804 199.033 722.87 +70.5041 194.372 705.943 +65.2622 198.019 719.188 +57.5497 194.114 705.004 +52.0593 197.629 717.772 +44.6875 193.953 704.421 +38.9484 197.283 716.516 +31.877 193.812 703.91 +25.9338 197.142 716.003 +19.0961 193.586 703.086 +12.9567 197.046 715.655 +6.35379 193.273 701.95 +3.88578e-14 196.864 714.993 +-6.34943 193.14 701.468 +-12.92 196.489 713.631 +-19.0359 192.975 700.87 +-25.8361 196.399 713.305 +-31.7287 192.911 700.635 +-38.7286 196.17 712.473 +-44.3701 192.575 699.417 +-51.6337 196.014 711.905 +-57.0947 192.579 699.429 +-64.5911 195.983 711.792 +-69.699 192.153 697.882 +-77.4974 195.733 710.885 +-82.5931 192.434 698.902 +-90.4392 195.528 710.142 +-95.1666 191.89 696.927 +-103.433 195.369 709.562 +-107.871 191.604 695.888 +-115.871 194.204 705.334 +-119.461 189.504 688.262 +-124.558 187.521 681.059 +-132.503 189.783 689.275 +-144.271 197.025 715.579 +-144.761 188.88 685.995 +-152.399 190.329 691.258 +-142.612 170.764 620.202 +-140.752 161.84 587.79 +-144.059 159.288 578.521 +-146.024 155.471 564.658 +-145.546 149.396 542.593 +-147.009 145.643 528.962 +-152.059 145.553 528.634 +-110.2 102.019 370.524 +-112.214 100.564 365.238 +-114.99 99.8429 362.621 +-118.478 99.7498 362.282 +-121.845 99.5475 361.548 +-126.573 100.419 364.714 +-1066.79 822.438 2987.02 +-1093.78 819.935 2977.93 +-1120.7 817.371 2968.62 +-1147.52 814.743 2959.07 +-1174.26 812.054 2949.31 +-1200.91 809.303 2939.32 +-448.516 294.691 1070.29 +-159.12 101.976 370.367 +-160.434 100.332 364.399 +-163.647 99.9082 362.858 +-166.843 99.4769 361.291 +-170.19 99.135 360.05 +-142.718 81.2462 295.079 +-142.069 79.0676 287.167 +-143.654 78.1868 283.968 +-147.29 78.4212 284.819 +-412.405 214.859 780.351 +-414.327 211.282 767.359 +-420.74 210.057 762.908 +-422.429 206.531 750.104 +-424.451 203.27 738.257 +-426.685 200.199 727.105 +-428.7 197.111 715.89 +-430.596 194.052 704.779 +-428.151 189.156 686.998 +-440.31 190.737 692.741 +-135.394 57.5185 208.902 +-135.4 56.4192 204.91 +-442.301 180.8 656.648 +-445.027 178.484 648.239 +-447.354 176.06 639.435 +-450.35 173.945 631.754 +-451.864 171.308 622.175 +-454.807 169.26 614.739 +-457.826 167.277 607.535 +-459.501 164.844 598.7 +-461.773 162.671 590.807 +-462.05 159.847 580.551 +-479.108 162.787 591.229 +-469.874 156.81 569.52 +-472.305 154.828 562.322 +-475.723 153.196 556.393 +-478.17 151.274 549.415 +-481.046 149.515 543.025 +-482.991 147.493 535.683 +-486.827 146.071 530.516 +-488.934 144.148 523.534 +-492.438 142.658 518.12 +-494.722 140.832 511.49 +-498.093 139.334 506.049 +-500.501 137.583 499.689 +-503.463 136.002 493.947 +-505.864 134.286 487.715 +-505.409 131.844 478.845 +-515.551 132.162 480 +-2376.69 598.713 2174.47 +-2396.28 593.186 2154.4 +-384.416 93.5086 339.615 +-523.991 125.244 454.877 +-141.927 33.3326 121.061 +-141.81 32.7239 118.85 +-142.576 32.3254 117.403 +-142.178 31.6695 115.021 +-142.21 31.1194 113.023 +-142.295 30.5885 111.095 +-148.383 31.3318 113.794 +-155.79 32.3106 117.349 +-156.846 31.9485 116.034 +-156.612 31.3284 113.782 +-158.36 31.1064 112.976 +-160.104 30.8789 112.15 +-2667.45 505.08 1834.41 +-2683.95 498.882 1811.89 +-380.911 69.4952 252.4 +-383.679 68.6991 249.509 +-383.171 67.3243 244.516 +-380.505 65.5956 238.238 +-383.406 64.8398 235.493 +-382.13 63.3867 230.215 +-382.835 62.2771 226.185 +-382.897 61.0735 221.814 +-381.185 59.6047 216.479 +-380.878 58.3743 212.01 +-381.738 57.3329 208.228 +-380.722 56.0218 203.466 +-380.704 54.8716 199.289 +-380.639 53.7259 195.128 +-379.197 52.401 190.316 +-380.192 51.4241 186.768 +-377.931 50.0201 181.669 +-380.819 49.3057 179.074 +-380.53 48.1815 174.991 +-381.374 47.2086 171.458 +-380.364 46.0151 167.123 +-379.761 44.8837 163.014 +-381.222 44.0024 159.813 +-380.445 42.8686 155.695 +-380.546 41.8434 151.972 +-380.053 40.7614 148.042 +-380.541 39.792 144.521 +-113.803 11.5966 42.1178 +-113.899 11.3046 41.0573 +-111.448 10.768 39.1083 +-110.006 10.341 37.5577 +-109.775 10.0339 36.4424 +-109.247 9.70344 35.242 +-108.801 9.38436 34.0832 +-109.105 9.13196 33.1665 +-109.21 8.86334 32.1909 +-109.593 8.61758 31.2983 +-109.103 8.30482 30.1624 +-109.468 8.05887 29.2691 +-110.019 7.82558 28.4218 +-110.078 7.55713 27.4468 +-110.905 7.34038 26.6596 +-111.239 7.08936 25.7479 +-111.955 6.86128 24.9196 +-113.543 6.6821 24.2688 +-114.443 6.45746 23.4529 +-116.709 6.30323 22.8928 +-120.151 6.19978 22.5171 +-159.386 7.84175 28.4806 +-157.372 7.36621 26.7534 +-162.047 7.19852 26.1444 +-163.166 6.86024 24.9158 +-3240.51 128.561 466.922 +-860.642 32.1085 116.615 +-381.409 13.3296 48.4119 +-379.649 12.3743 44.9426 +-380.141 11.4974 41.7576 +-401.588 11.2046 40.6943 +-404.33 10.335 37.5357 +-403.26 9.36554 34.0148 +-403.652 8.43311 30.6283 +-404.412 7.50698 27.2647 +-404.644 6.56986 23.8612 +-148.296 2.06311 7.49305 +-147.659 1.7114 6.21565 +-403.354 3.73909 13.58 +-145.65 1.01245 3.67714 +-146.378 0.678255 2.46336 +-145.494 0.337055 1.22416 +119.7 3.55271e-15 -1.13687e-13 +120.495 0.288278 1.01126 +119.782 0.573183 2.0107 +119.659 0.859002 3.01333 +120.427 1.15289 4.04427 +119.686 1.43257 5.0254 +120.235 1.72746 6.05984 +120.175 2.01504 7.06864 +120.206 2.30437 8.08362 +120.627 2.60261 9.12984 +120.34 2.88631 10.125 +120.742 3.18724 11.1807 +120.337 3.46737 12.1633 +120.222 3.75514 13.1728 +120.793 4.06599 14.2633 +120.361 4.34408 15.2388 +120.219 4.63185 16.2483 +120.759 4.94764 17.3561 +120.3 5.22349 18.3237 +120.721 5.53823 19.4278 +121.328 5.86493 20.5739 +120.055 6.10001 21.3985 +120.642 6.42882 22.552 +120.531 6.72268 23.5828 +120.997 7.05067 24.7334 +120.768 7.33986 25.7479 +120.53 7.62848 26.7603 +121.352 7.98696 28.0178 +121.093 8.27697 29.0352 +120.728 8.55948 30.0262 +121.127 8.89764 31.2125 +120.743 9.17976 32.2021 +121.503 9.5514 33.5058 +121.099 9.8339 34.4968 +121.642 10.1954 35.7649 +121.122 10.4695 36.7265 +121.64 10.8351 38.0091 +121.86 11.1779 39.2115 +121.783 11.4958 40.3267 +121.412 11.7867 41.3471 +122.066 12.1798 42.7263 +121.486 12.4522 43.6817 +119.125 12.5361 43.9759 +115.558 12.479 43.7756 +112.746 12.4879 43.807 +109.11 12.39 43.4634 +105.858 12.3185 43.2126 +103.995 12.3963 43.4857 +100.855 12.3101 43.1834 +98.8218 12.3463 43.3103 +96.5218 12.339 43.2844 +96.9377 12.6756 44.4655 +97.3394 13.0152 45.6567 +96.7424 13.2231 46.3861 +98.0107 13.6906 48.0257 +97.039 13.8485 48.58 +96.2413 14.0287 49.2119 +96.4941 14.363 50.3848 +96.7329 14.6997 51.5656 +97.0447 15.052 52.8017 +96.4752 15.2699 53.566 +96.6748 15.6114 54.7641 +96.1742 15.8421 55.5734 +96.4336 16.2005 56.8306 +96.5927 16.5468 58.0454 +96.737 16.8951 59.2672 +97.0342 17.2752 60.6005 +96.3138 17.4764 61.3064 +96.4171 17.8288 62.5425 +96.5876 18.1985 63.8396 +96.0046 18.4289 64.6478 +96.0656 18.7852 65.8977 +96.1112 19.1433 67.1536 +96.2217 19.5192 68.4725 +96.2356 19.8807 69.7404 +96.2338 20.2437 71.0138 +96.2161 20.6082 72.2923 +95.5565 20.8375 73.097 +96.2107 21.3587 74.925 +95.6043 21.6054 75.7907 +95.6023 21.9919 77.1465 +96.1153 22.5047 78.9452 +96.0745 22.8956 80.3166 +96.0161 23.2881 81.6934 +95.94 23.682 83.0752 +95.8461 24.0773 84.4619 +95.7342 24.474 85.8534 +96.1846 25.0229 87.7789 +96.0319 25.4234 89.184 +95.8609 25.8251 90.5931 +95.6715 26.2279 92.0062 +96.0947 26.8078 94.0402 +95.8629 27.2141 95.4657 +95.6125 27.6215 96.8949 +95.9572 28.2099 98.9587 +95.596 28.6002 100.328 +95.9533 29.2149 102.484 +95.6161 29.628 103.933 +95.8502 30.2281 106.039 +95.339 30.6023 107.351 +95.3254 31.144 109.252 +95.4117 31.7307 111.31 +94.9015 32.1282 112.704 +95.4937 32.9117 115.453 +94.935 33.3117 116.856 +95.4538 34.1032 119.632 +94.7859 34.4834 120.966 +95.2906 35.3039 123.844 +95.1624 35.9076 125.962 +94.5384 36.3347 127.46 +95.099 37.2331 130.612 +94.9297 37.8661 132.832 +94.7832 38.5235 135.138 +94.7676 39.2516 137.693 +94.3859 39.8449 139.774 +94.7259 40.7627 142.993 +94.3786 41.4061 145.251 +94.1542 42.1214 147.76 +94.2005 42.9794 150.77 +94.1991 43.8408 153.791 +94.4 44.8244 157.242 +93.8559 45.478 159.534 +94.2955 46.636 163.597 +94.0957 47.5102 166.663 +93.9413 48.4355 169.909 +94.0582 49.5337 173.762 +94.0214 50.5873 177.457 +93.7015 51.5218 180.736 +93.5046 52.5573 184.368 +93.6792 53.843 188.878 +93.5254 54.9843 192.882 +93.5963 56.3035 197.51 +93.6308 57.6523 202.241 +93.5465 58.9802 206.9 +93.502 60.388 211.838 +93.6044 61.9517 217.323 +93.5767 63.4951 222.738 +93.5311 65.0939 228.346 +93.319 66.6459 233.79 +93.4704 68.5358 240.42 +93.1663 70.1736 246.165 +92.9318 71.9443 252.377 +92.6893 73.797 258.876 +92.6847 75.9397 266.392 +92.3961 77.9577 273.471 +92.1964 80.1629 281.207 +92.1556 82.6349 289.879 +92.3334 85.4545 299.77 +91.9526 87.9122 308.391 +91.9834 90.9291 318.975 +92.1396 94.2704 330.696 +91.7893 97.3006 341.325 +91.6642 100.788 353.56 +91.5339 104.522 366.659 +107.617 127.79 448.28 +103.566 128.069 449.26 +99.3402 128.124 449.454 +95.0985 128.142 449.516 +90.806 128.069 449.258 +90.4435 133.78 469.293 +90.0887 140.066 491.344 +89.8189 147.144 516.174 +89.809 155.449 545.308 +89.5577 164.28 576.287 +88.6811 172.986 606.824 +84.581 176.126 617.842 +88.3187 197.192 691.74 +80.8158 194.454 682.136 +75.6368 197.285 692.065 +67.8492 193.174 677.645 +62.7609 196.661 689.877 +55.3843 192.923 676.763 +50.1549 196.631 689.77 +43.0392 192.912 676.726 +37.5458 196.403 688.97 +29.2337 183.557 643.91 +24.9462 195.84 686.996 +17.1302 179.339 629.113 +12.454 195.6 686.156 +6.12166 192.306 674.598 +4.07452e-14 195.356 685.299 +-6.10945 191.922 673.252 +-12.4348 195.299 685.098 +-18.3029 191.617 672.182 +-24.8624 195.182 684.689 +-30.5205 191.637 672.253 +-37.2841 195.034 684.168 +-42.6851 191.325 671.158 +-49.7154 194.908 683.726 +-54.9449 191.392 671.394 +-62.1072 194.613 682.691 +-67.1208 191.1 670.37 +-74.5183 194.368 681.832 +-79.3781 190.995 670.001 +-86.9294 194.09 680.859 +-91.6163 190.777 669.234 +-99.5784 194.242 681.392 +-104.013 190.797 669.306 +-112.445 194.63 682.751 +-116.573 190.974 669.925 +-124.315 193.279 678.013 +-128.749 190.441 668.056 +-139.023 196.073 687.813 +-143.046 192.751 676.159 +-144.81 186.77 655.179 +-142.742 176.513 619.199 +-142.551 169.273 593.802 +-143.826 164.234 576.125 +-144.645 159.043 557.914 +-145.471 154.205 540.944 +-146.336 149.72 525.211 +-147.462 145.772 511.359 +-110.586 105.726 370.883 +-112.498 104.117 365.238 +-115.194 103.294 362.349 +-118.749 103.25 362.194 +-122.309 103.196 362.006 +-127.207 104.225 365.618 +-1066.79 849.352 2979.48 +-1093.78 846.767 2970.41 +-1120.7 844.119 2961.12 +-1147.52 841.405 2951.6 +-1174.26 838.628 2941.86 +-1200.77 835.686 2931.54 +-456.683 309.875 1087.03 +-159.694 105.693 370.764 +-161.372 104.222 365.604 +-164.165 103.505 363.089 +-167.169 102.933 361.082 +-172.429 103.726 363.866 +-141.281 83.0603 291.371 +-141.724 81.4571 285.747 +-143.435 80.6221 282.818 +-147.825 81.282 285.133 +-432.199 232.541 815.74 +-433.72 228.41 801.249 +-416.187 214.583 752.745 +-418.468 211.29 741.195 +-423.869 209.634 735.384 +-425.306 206.082 722.926 +-429.15 203.775 714.832 +-431.052 200.615 703.746 +-430.366 196.356 688.808 +-437.436 195.693 686.482 +-437.819 192.082 673.814 +-440.693 189.64 665.248 +-135.288 57.1116 200.345 +-134.673 55.7798 195.673 +-447.969 182.072 638.698 +-449.953 179.479 629.604 +-452.839 177.296 621.944 +-455.852 175.201 614.597 +-457.297 172.551 605.301 +-460.274 170.525 598.193 +-462.314 168.192 590.007 +-467.407 166.992 585.8 +-475.66 166.904 585.492 +-470.248 162.07 568.533 +-472.62 160.001 561.277 +-476.232 158.378 555.582 +-478.748 156.414 548.691 +-482.02 154.72 542.751 +-484.762 152.879 536.29 +-487.225 150.974 529.608 +-489.536 149.049 522.855 +-493.046 147.508 517.451 +-495.404 145.641 510.902 +-498.506 144.013 505.19 +-501.127 142.263 499.051 +-504.164 140.648 493.385 +-506.501 138.855 487.096 +-505.409 136.158 477.636 +-2356.92 623.969 2188.85 +-516.539 134.38 471.397 +-384.326 98.251 344.659 +-2415.69 606.84 2128.76 +-525.478 129.71 455.015 +-142.077 34.4598 120.883 +-142.187 33.8849 118.867 +-143.184 33.5255 117.606 +-141.412 32.5298 114.113 +-141.747 32.0334 112.371 +-144.316 32.038 112.388 +-148.852 32.4594 113.866 +-156.105 33.4356 117.29 +-156.053 32.827 115.155 +-157.092 32.4525 113.842 +-159.083 32.271 113.205 +-160.833 32.0345 112.375 +-2667.45 521.608 1829.78 +-2683.95 515.207 1807.32 +-383.878 72.3284 253.724 +-2716.34 502.289 1762.01 +-382.67 69.4367 243.58 +-381.26 67.8765 238.107 +-381.044 66.5494 233.452 +-382.385 65.5046 229.787 +-381.898 64.1575 225.061 +-380.668 62.7048 219.965 +-380.409 61.43 215.493 +-379.666 60.0927 210.802 +-380.171 58.9662 206.85 +-379.06 57.6024 202.066 +-380.088 56.5757 198.465 +-380.639 55.484 194.635 +-379.729 54.1917 190.102 +-379.034 52.9452 185.729 +-380.526 52.0117 182.454 +-380.28 50.8471 178.369 +-381.162 49.841 174.84 +-381.374 48.7535 171.025 +-380.273 47.5094 166.661 +-379.395 46.3081 162.446 +-381.222 45.4424 159.409 +-380.169 44.2394 155.19 +-379.714 43.1184 151.257 +-380.702 42.1671 147.92 +-380.262 41.064 144.05 +-115.391 12.1431 42.5973 +-113.244 11.6073 40.718 +-111.823 11.1578 39.1411 +-110.572 10.7343 37.6554 +-109.113 10.2998 36.1312 +-108.962 9.99488 35.0615 +-108.801 9.69146 33.9971 +-109.296 9.4473 33.1406 +-108.636 9.10531 31.9409 +-109.018 8.85284 31.0553 +-108.815 8.55392 30.0067 +-109.854 8.3519 29.298 +-109.826 8.06747 28.3003 +-109.788 7.78384 27.3053 +-110.905 7.58059 26.5923 +-111.142 7.31497 25.6605 +-111.76 7.07348 24.8134 +-113.543 6.90076 24.2075 +-114.15 6.65168 23.3337 +-116.709 6.5095 22.835 +-120.053 6.39743 22.4419 +-160.467 8.15331 28.6014 +-158.653 7.66914 26.9029 +-161.06 7.38885 25.9197 +-162.771 7.06758 24.7927 +-851.543 34.8889 122.388 +-862.028 33.2127 116.509 +-381.805 13.7801 48.3398 +-380.641 12.8127 44.9463 +-379.048 11.8395 41.5324 +-404.273 11.6487 40.8629 +-403.335 10.6469 37.3488 +-404.256 9.69592 34.0128 +-404.549 8.72844 30.6189 +-404.811 7.76029 27.2227 +-404.644 6.78486 23.8009 +-145.201 2.08615 7.31811 +-147.759 1.7686 6.20415 +-404.553 3.87294 13.5861 +-145.95 1.04774 3.67541 +-146.478 0.70093 2.45883 +-145.294 0.347608 1.21939 +119.6 2.66454e-15 -1.13687e-13 +119.695 0.295415 1.00193 +119.782 0.5913 2.00544 +120.459 0.892074 3.02555 +120.427 1.18933 4.03371 +120.485 1.48772 5.04574 +121.034 1.7939 6.08417 +120.175 2.07872 7.05017 +120.107 2.37523 8.05581 +120.527 2.68265 9.09845 +121.237 2.99974 10.1739 +120.642 3.28526 11.1423 +120.238 3.57401 12.1216 +120.222 3.87382 13.1384 +120.793 4.1945 14.226 +121.155 4.51091 15.2991 +121.011 4.80975 16.3127 +120.759 5.10402 17.3107 +120.3 5.38858 18.2758 +120.721 5.71328 19.3771 +120.442 6.0061 20.3702 +120.154 6.29796 21.3601 +120.642 6.63201 22.4931 +120.531 6.93516 23.5212 +120.997 7.27351 24.6688 +120.67 7.56571 25.6598 +120.627 7.87595 26.712 +120.379 8.17336 27.7207 +120.123 8.47014 28.7272 +120.728 8.83001 29.9478 +120.354 9.12032 30.9324 +120.743 9.4699 32.118 +121.311 9.83767 33.3653 +121.003 10.1367 34.3795 +120.781 10.4432 35.419 +121.122 10.8004 36.6305 +120.879 11.1077 37.6727 +121.101 11.4594 38.8656 +121.783 11.8591 40.2213 +121.412 12.1592 41.2391 +121.126 12.4681 42.2866 +121.486 12.8458 43.5676 +119.218 12.9424 43.8953 +115.651 12.8837 43.6963 +112.746 12.8826 43.6926 +109.849 12.8682 43.6436 +106.502 12.7852 43.362 +103.995 12.7881 43.3721 +101.404 12.7683 43.3047 +98.8218 12.7366 43.1972 +95.8874 12.6453 42.8876 +96.9377 13.0763 44.3493 +97.4293 13.439 45.5795 +96.9214 13.6663 46.3504 +97.9216 14.1104 47.8567 +97.2164 14.3123 48.5416 +97.0359 14.5916 49.4886 +96.4062 14.8035 50.2074 +96.7329 15.1643 51.4309 +97.0447 15.5278 52.6637 +96.4752 15.7525 53.4261 +95.8993 15.9757 54.1829 +97.0313 16.4885 55.9222 +96.4336 16.7126 56.6821 +96.5927 17.0698 57.8937 +96.0623 17.3075 58.7 +96.0278 17.6364 59.8154 +96.3138 18.0288 61.1462 +96.4171 18.3923 62.3791 +96.5052 18.7577 63.6185 +96.6599 19.1412 64.9189 +96.7983 19.5268 66.2269 +96.1112 19.7483 66.9782 +96.2217 20.1362 68.2936 +96.2356 20.509 69.5582 +96.2338 20.8835 70.8282 +96.2949 21.2769 72.1624 +96.2608 21.6546 73.4434 +96.2884 22.0515 74.7896 +96.2987 22.4502 76.1419 +96.2152 22.8324 77.4382 +96.1153 23.2159 78.7389 +96.15 23.6378 80.1697 +96.0161 24.0241 81.48 +95.94 24.4305 82.8582 +95.8461 24.8383 84.2413 +96.3924 25.4211 86.2178 +95.6043 25.658 87.0213 +96.0319 26.2269 88.951 +95.7895 26.6215 90.2892 +95.6715 27.0569 91.7658 +96.0947 27.6551 93.7945 +95.8629 28.0743 95.2163 +95.6125 28.4945 96.6418 +95.9572 29.1015 98.7002 +95.6636 29.5248 100.136 +95.3511 29.949 101.575 +95.6823 30.5856 103.734 +95.6534 31.1196 105.545 +95.339 31.5695 107.071 +95.2611 32.1069 108.893 +94.8393 32.537 110.352 +94.8386 33.1216 112.335 +94.809 33.7084 114.325 +94.935 34.3646 116.55 +94.9059 34.9791 118.635 +94.7859 35.5733 120.65 +94.6958 36.1924 122.75 +94.6922 36.8595 125.012 +94.5965 37.506 127.205 +94.5254 38.1782 129.485 +94.4199 38.853 131.774 +94.224 39.5066 133.99 +94.6572 40.445 137.173 +94.3859 41.1042 139.409 +94.7797 42.0748 142.7 +94.3786 42.7148 144.871 +94.1542 43.4527 147.374 +94.2005 44.3379 150.376 +94.3006 45.2754 153.555 +93.95 46.0206 156.083 +94.2991 47.1368 159.869 +94.247 48.0851 163.085 +94.048 48.987 166.144 +93.9413 49.9663 169.465 +93.9658 51.0492 173.138 +93.7036 52.0099 176.396 +93.6123 53.0996 180.092 +93.5046 54.2184 183.886 +93.7223 55.5702 188.471 +93.5254 56.7221 192.378 +93.8866 58.2631 197.605 +93.5494 59.4227 201.537 +93.5864 60.8704 206.447 +93.4629 62.2706 211.196 +93.5661 63.8837 216.667 +93.5767 65.502 222.156 +93.4945 67.125 227.66 +93.319 68.7523 233.179 +93.4353 70.6754 239.702 +93.0637 72.3117 245.252 +93.0654 74.3248 252.079 +92.6893 76.1294 258.2 +92.653 78.3133 265.606 +92.2725 80.3139 272.392 +92.0761 82.5885 280.106 +92.2725 85.355 289.489 +92.2482 88.0742 298.711 +91.8975 90.6364 307.401 +92.0102 93.8302 318.233 +92.1137 97.2225 329.739 +91.9646 100.568 341.084 +91.4949 103.782 351.985 +91.4405 107.716 365.328 +107.999 132.297 448.698 +103.934 132.586 449.678 +99.4857 132.368 448.937 +95.4374 132.663 449.94 +91.0731 132.505 449.404 +90.407 137.953 467.879 +90.0366 144.409 489.777 +89.8189 151.795 514.825 +89.6682 160.111 543.031 +89.4099 169.193 573.833 +87.5538 176.185 597.545 +84.2938 181.076 614.136 +85.5279 196.997 668.132 +78.2687 194.278 658.912 +72.9713 196.348 665.933 +65.8364 193.368 655.825 +60.6255 195.974 664.664 +53.7053 192.987 654.532 +48.411 195.792 664.046 +41.7389 192.997 654.566 +36.2269 195.493 663.031 +27.9077 180.77 613.097 +22.1996 179.786 609.761 +17.2349 186.138 631.305 +12.0544 195.307 662.402 +5.93492 192.332 652.311 +3.66374e-14 195.082 661.64 +-5.92706 192.077 651.447 +-12.0282 194.883 660.963 +-17.7663 191.877 650.769 +-24.0283 194.596 659.991 +-29.6219 191.874 650.757 +-36.0595 194.589 659.967 +-41.4336 191.585 649.778 +-47.9994 194.128 658.401 +-53.2502 191.352 648.986 +-60.0242 194.03 658.07 +-65.0889 191.172 648.378 +-72.0201 193.789 657.252 +-77.0121 191.159 648.333 +-84.1386 193.797 657.279 +-88.8753 190.918 647.516 +-96.1964 193.576 656.53 +-100.806 190.758 646.973 +-108.675 194.049 658.136 +-112.992 190.957 647.646 +-120.894 193.901 657.633 +-124.959 190.676 646.694 +-132.65 192.997 654.568 +-138.74 192.857 654.091 +-144.873 192.756 653.748 +-142.677 182.009 617.301 +-142.484 174.541 591.971 +-142.378 167.72 568.837 +-143.944 163.274 553.757 +-143.843 157.299 533.495 +-145.456 153.524 520.689 +-145.298 148.172 502.537 +-110.475 108.959 369.546 +-112.754 107.652 365.111 +-115.721 107.045 363.053 +-118.989 106.729 361.98 +-122.587 106.7 361.882 +-127.525 107.788 365.572 +-1066.79 876.197 2971.7 +-1093.78 873.53 2962.65 +-1120.7 870.798 2953.39 +-1147.52 867.998 2943.89 +-1174.26 865.133 2934.18 +-475.389 341.307 1157.57 +-466.76 326.722 1108.11 +-159.579 108.955 369.53 +-161.763 107.776 365.531 +-164.444 106.958 362.756 +-167.494 106.393 360.84 +-172.803 107.236 363.701 +-141.281 85.6856 290.61 +-141.466 83.8787 284.482 +-143.61 83.2721 282.425 +-147.959 83.9268 284.645 +-433.425 240.571 815.917 +-434.367 235.98 800.347 +-435.482 231.628 785.586 +-437.173 227.711 772.302 +-420.088 214.33 726.919 +-422.253 211.07 715.862 +-427.75 209.53 710.639 +-430.951 206.907 701.742 +-434.641 204.574 693.832 +-437.07 201.71 684.116 +-438.561 198.489 673.193 +-441.016 195.777 663.995 +-443.881 193.306 655.613 +-446.075 190.599 646.434 +-135.269 56.7159 192.357 +-134.691 55.4243 187.976 +-453.47 183.154 621.183 +-455.91 180.762 613.069 +-458.414 178.44 605.194 +-460.214 175.892 596.554 +-462.916 173.733 589.231 +-473.434 174.491 591.803 +-471.966 170.843 579.428 +-470.87 167.414 567.799 +-473.375 165.322 560.704 +-476.804 163.58 554.797 +-479.005 161.444 547.551 +-482.735 159.847 542.136 +-484.762 157.711 534.889 +-487.821 155.936 528.871 +-490.74 154.138 522.772 +-493.046 152.17 516.099 +-495.813 150.368 509.988 +-499.126 148.749 504.497 +-501.543 146.881 498.16 +-504.304 145.134 492.234 +-507.208 143.444 486.502 +-506.265 140.7 477.195 +-2356.92 643.69 2183.13 +-515.741 138.413 469.44 +-518.822 136.826 464.059 +-385.449 99.8883 338.78 +-141.123 35.9361 121.881 +-142.227 35.5866 120.695 +-142.338 34.993 118.682 +-142.652 34.4565 116.862 +-141.488 33.5761 113.876 +-142.056 33.1176 112.321 +-145.326 33.282 112.879 +-150.496 33.8552 114.823 +-156.263 34.5272 117.102 +-156.608 33.9853 115.264 +-157.81 33.6315 114.064 +-159.083 33.291 112.909 +-161.318 33.1465 112.419 +-2667.45 538.095 1825 +-382.626 75.7699 256.98 +-381.158 74.0858 251.269 +-384.259 73.3005 248.605 +-381.169 71.3502 241.99 +-380.756 69.9294 237.172 +-380.37 68.5311 232.429 +-381.367 67.3951 228.576 +-382.068 66.2149 224.574 +-379.982 64.5701 218.995 +-380.582 63.4004 215.028 +-380.185 62.0768 210.539 +-381.216 60.9971 206.877 +-380.46 59.6424 202.283 +-379.913 58.337 197.855 +-380.021 57.1449 193.812 +-379.375 55.8522 189.428 +-379.034 54.6186 185.244 +-378.289 53.3403 180.908 +-380.28 52.4542 177.903 +-380.44 51.3187 174.052 +-381.012 50.2466 170.416 +-380.091 48.9875 166.146 +-381.04 47.9788 162.724 +-381.222 46.8786 158.993 +-380.813 45.7149 155.046 +-380.731 44.6003 151.266 +-381.165 43.5531 147.714 +-379.703 42.2996 143.463 +-113.897 12.3647 41.936 +-112.775 11.9247 40.4437 +-110.79 11.4041 38.678 +-110.383 11.0547 37.493 +-109.018 10.6161 36.0055 +-108.962 10.3108 34.9699 +-108.801 9.99777 33.9083 +-109.01 9.72039 32.9675 +-109.019 9.42618 31.9697 +-109.018 9.13265 30.9742 +-109.199 8.85547 30.0341 +-109.854 8.61587 29.2215 +-110.405 8.36637 28.3753 +-109.691 8.02279 27.21 +-110.711 7.8065 26.4764 +-111.045 7.53958 25.5711 +-111.663 7.29068 24.727 +-113.543 7.11887 24.1443 +-114.737 6.89718 23.3924 +-117.493 6.76035 22.9283 +-121.624 6.68597 22.6761 +-158.894 8.32856 28.2471 +-161.115 8.0343 27.249 +-160.765 7.60839 25.8045 +-163.166 7.30866 24.788 +-852.433 36.0292 122.196 +-862.424 34.2783 116.258 +-381.409 14.2009 48.1635 +-381.435 13.2452 44.9224 +-380.737 12.2682 41.6086 +-404.572 12.0257 40.7863 +-404.031 11.0024 37.3156 +-404.256 10.0024 33.9239 +-404.15 8.99543 30.5088 +-403.614 7.98189 27.0713 +-403.845 6.98547 23.6918 +-144.502 2.14172 7.26385 +-145.262 1.79366 6.08334 +-403.854 3.98844 13.5272 +-145.75 1.07937 3.66079 +-145.078 0.716172 2.42896 +-144.694 0.357113 1.21118 +119.7 3.55271e-15 -1.13687e-13 +119.695 0.304442 0.99922 +119.782 0.609368 2.00003 +119.559 0.912466 2.99484 +120.427 1.22567 4.02282 +120.385 1.53191 5.02795 +120.235 1.83651 6.02768 +120.175 2.14224 7.03113 +120.905 2.46407 8.08743 +120.527 2.76463 9.07388 +120.44 3.07106 10.0796 +120.642 3.38565 11.1122 +120.238 3.68322 12.0888 +121.017 4.0186 13.1896 +120.793 4.32267 14.1876 +121.055 4.64493 15.2453 +120.219 4.92426 16.1621 +120.66 5.25567 17.2498 +120.3 5.55324 18.2265 +120.721 5.88785 19.3247 +120.442 6.18962 20.3152 +120.94 6.53289 21.4419 +120.74 6.84023 22.4506 +120.433 7.14124 23.4385 +120.312 7.45333 24.4629 +120.67 7.79689 25.5905 +120.627 8.11662 26.6399 +121.255 8.48434 27.8468 +120.899 8.78538 28.8348 +120.825 9.10711 29.8908 +121.127 9.45933 31.0468 +120.839 9.76705 32.0568 +121.311 10.1383 33.2752 +120.907 10.4381 34.2594 +121.546 10.8305 35.5471 +121.122 11.1304 36.5316 +120.879 11.4471 37.5709 +121.385 11.8373 38.8517 +121.783 12.2215 40.1127 +121.224 12.5113 41.0639 +121.878 12.9288 42.4341 +121.486 13.2383 43.4499 +119.685 13.3901 43.9482 +116.674 13.3949 43.964 +113.58 13.3745 43.897 +109.849 13.2614 43.5257 +107.423 13.2897 43.6187 +103.903 13.1673 43.2169 +101.312 13.1466 43.1488 +98.8218 13.1257 43.0805 +97.0656 13.1918 43.2974 +97.0279 13.4884 44.2707 +97.3394 13.8369 45.4145 +97.0109 14.0969 46.2679 +98.0107 14.5548 47.7709 +98.1034 14.8843 48.8522 +96.2413 14.9143 48.9508 +96.4941 15.2697 50.1174 +96.8204 15.6418 51.3384 +96.2613 15.8731 52.0976 +96.4752 16.2339 53.2818 +96.761 16.6118 54.5221 +96.1742 16.8422 55.2785 +96.5189 17.2384 56.579 +96.5927 17.5914 57.7374 +96.0623 17.8364 58.5415 +96.0278 18.1753 59.6538 +96.3138 18.5797 60.9811 +96.4171 18.9543 62.2107 +96.5876 19.3474 63.5008 +95.9227 19.5756 64.2498 +96.147 19.9881 65.6036 +96.1921 20.3689 66.8536 +96.2217 20.7515 68.1092 +96.3154 21.1533 69.4279 +96.2338 21.5216 70.637 +95.5857 21.7655 71.4375 +96.2608 22.3163 73.2451 +96.2107 22.707 74.5275 +96.2987 23.1362 75.9362 +96.2918 23.5488 77.2906 +96.0393 23.9064 78.4642 +96.0745 24.341 79.8905 +96.0161 24.7582 81.2599 +95.94 25.177 82.6344 +95.9198 25.617 84.0784 +96.3924 26.1979 85.985 +96.1846 26.6025 87.3131 +96.0319 27.0283 88.7108 +95.8609 27.4554 90.1125 +95.813 27.9249 91.6533 +96.1648 28.5209 93.6095 +95.8629 28.9321 94.9592 +95.6125 29.3652 96.3808 +95.9572 29.9907 98.4336 +95.6636 30.427 99.8656 +95.3511 30.8642 101.3 +95.6161 31.4984 103.382 +95.6534 32.0705 105.26 +95.339 32.5342 106.782 +95.1968 33.0655 108.526 +95.4117 33.7338 110.719 +95.4679 34.3601 112.775 +94.8712 34.7612 114.091 +94.4425 35.231 115.633 +94.9668 36.071 118.39 +94.846 36.6836 120.401 +94.7553 37.3216 122.495 +94.4571 37.8914 124.365 +94.9449 38.7946 127.329 +94.5254 39.3448 129.135 +94.8164 40.2084 131.97 +94.7273 40.9312 134.342 +94.4364 41.5838 136.484 +94.9306 42.6044 139.834 +94.0812 43.041 141.267 +94.4316 44.0448 144.561 +94.0497 44.7306 146.812 +94.355 45.7676 150.215 +94.3006 46.6588 153.141 +93.95 47.4268 155.661 +94.3976 48.6279 159.603 +94.2955 49.5801 162.729 +94.0957 50.5095 165.779 +93.8943 51.4675 168.923 +94.012 52.6348 172.755 +94.0214 53.7807 176.516 +93.6569 54.7484 179.692 +93.5046 55.8751 183.39 +93.6792 57.242 187.876 +93.8635 58.6666 192.552 +93.8866 60.0435 197.071 +93.5494 61.2384 200.993 +93.5465 62.7035 205.802 +93.8536 64.4415 211.506 +93.6044 65.8626 216.17 +93.2021 67.233 220.668 +93.5311 69.2032 227.135 +93.4265 70.9347 232.818 +93.1201 72.5893 238.248 +93.0979 74.5487 244.679 +93.032 76.5685 251.308 +92.7869 78.5384 257.774 +92.7164 80.7613 265.07 +92.2416 82.7403 271.565 +92.0761 85.1121 279.35 +92.0971 87.7958 288.158 +92.305 90.8211 298.087 +91.9526 93.4619 306.755 +91.9834 96.6694 317.282 +91.8031 99.8555 327.74 +91.7643 103.415 339.421 +91.7368 107.236 351.962 +91.3939 110.951 364.156 +107.999 136.34 447.486 +104.107 136.865 449.211 +99.8392 136.897 449.314 +95.577 136.917 449.381 +91.2067 136.754 448.847 +90.407 142.168 466.616 +89.8803 148.564 487.606 +89.8189 156.433 513.435 +89.6682 165.003 541.564 +88.5674 172.72 566.89 +86.343 179.057 587.69 +85.2597 188.748 619.496 +79.3491 188.35 618.19 +73.8991 189.037 620.445 +67.9226 188.348 618.184 +62.3093 188.601 619.013 +56.6948 188.868 619.891 +51.0141 188.918 620.055 +45.3626 189.07 620.552 +39.6083 188.741 619.475 +33.7567 187.729 616.152 +28.4835 190.137 624.055 +22.3496 186.532 612.224 +17.3448 193.05 633.616 +11.7001 195.36 641.197 +5.76999 192.701 632.47 +2.94209e-14 195.331 641.104 +-5.7726 192.788 632.757 +-11.6861 195.126 640.432 +-17.2951 192.496 631.8 +-23.3687 195.037 640.139 +-28.8193 192.379 631.414 +-35.0442 194.889 639.651 +-40.3287 192.174 630.742 +-46.7089 194.681 638.969 +-51.7908 191.794 629.495 +-58.4118 194.588 638.664 +-63.402 191.908 629.868 +-70.1491 194.522 638.448 +-74.9179 191.643 628.999 +-81.8231 194.222 637.464 +-86.5258 191.551 628.696 +-93.5104 193.921 636.475 +-98.0715 191.254 627.723 +-105.343 193.847 636.234 +-109.79 191.215 627.594 +-117.629 194.43 638.147 +-121.496 191.057 627.076 +-129.044 193.487 635.052 +-133.497 191.239 627.671 +-142.96 196.023 643.375 +-143.564 188.738 619.463 +-142.619 180.045 590.932 +-142.378 172.845 567.301 +-143.46 167.697 550.405 +-143.969 162.247 532.517 +-145.094 157.821 517.989 +-145.378 152.783 501.456 +-110.779 112.597 369.559 +-112.953 111.137 364.768 +-116.013 110.595 362.988 +-119.47 110.435 362.462 +-123.051 110.376 362.269 +-128.318 111.772 366.852 +-1066.79 902.971 2963.67 +-1093.78 900.222 2954.65 +-1120.7 897.407 2945.41 +-1147.52 894.521 2935.94 +-1174.26 891.569 2926.25 +-474.143 350.815 1151.42 +-467.996 337.598 1108.04 +-159.732 112.392 368.885 +-162.114 111.31 365.336 +-165.202 110.734 363.443 +-167.779 109.83 360.478 +-172.844 110.54 362.806 +-141.662 88.5413 290.605 +-141.983 86.7574 284.75 +-144.093 86.1048 282.608 +-148.316 86.7 284.561 +-433.425 247.922 813.714 +-434.644 243.346 798.694 +-435.904 238.937 784.225 +-437.65 234.925 771.057 +-437.638 230.107 755.242 +-438.06 225.662 740.654 +-424.45 214.266 703.252 +-426.332 210.944 692.346 +-432.683 209.876 688.843 +-435.503 207.128 679.822 +-438.932 204.727 671.942 +-441.875 202.153 663.492 +-444.371 199.432 654.564 +-446.683 196.69 645.565 +-449.311 194.145 637.212 +-451.936 191.65 629.022 +-135.02 56.2001 184.456 +-135.072 55.1902 181.142 +-458.414 183.892 603.56 +-460.631 181.431 595.481 +-461.833 178.623 586.265 +-474.834 180.355 591.95 +-470.735 175.604 576.355 +-471.928 172.917 567.537 +-473.941 170.578 559.86 +-477.186 168.714 553.742 +-479.584 166.578 546.733 +-483.124 164.864 541.108 +-485.746 162.86 534.528 +-488.417 160.897 528.088 +-490.941 158.913 521.573 +-494.262 157.207 515.975 +-496.427 155.155 509.24 +-499.814 153.506 503.828 +-501.752 151.432 497.022 +-505.005 149.776 491.586 +-507.349 147.868 485.323 +-506.836 145.162 476.443 +-526.269 148.119 486.148 +-516.684 142.903 469.028 +-519.115 141.087 463.066 +-523.025 139.682 458.457 +-140.677 36.917 121.167 +-142.901 36.8477 120.939 +-142.112 36.0048 118.173 +-142.044 35.3581 116.05 +-141.488 34.602 113.569 +-142.133 34.1483 112.079 +-145.948 34.4455 113.055 +-150.965 34.9984 114.87 +-156.026 35.5283 116.609 +-156.767 35.059 115.069 +-157.171 34.5187 113.295 +-159.244 34.3429 112.718 +-161.399 34.1765 112.172 +-578.185 120.199 394.51 +-383.035 78.1686 256.56 +-2700.08 540.853 1775.15 +-381.191 74.9372 245.954 +-381.92 73.6753 241.812 +-381.26 72.1615 236.844 +-382.647 71.0481 233.19 +-382.47 69.6553 228.618 +-382.324 68.2837 224.116 +-383.668 67.1887 220.523 +-380.84 65.382 214.593 +-380.532 64.032 210.162 +-380.345 62.7172 205.847 +-381.247 61.5922 202.154 +-380.088 60.1472 197.412 +-381.08 59.0552 193.827 +-380.616 57.7471 189.534 +-380.192 56.4595 185.308 +-378.289 54.9702 180.42 +-381.448 54.2232 177.968 +-379.988 52.8242 173.376 +-379.652 51.5972 169.349 +-380.91 50.5934 166.055 +-379.761 49.2787 161.739 +-380.305 48.1948 158.182 +-380.445 47.0663 154.478 +-380.176 45.8961 150.637 +-379.311 44.6656 146.599 +-379.331 43.5496 142.936 +-114.27 12.7843 41.9599 +-112.494 12.2584 40.2339 +-110.79 11.7526 38.5735 +-109.912 11.3439 37.2321 +-109.207 10.9595 35.9706 +-108.962 10.6258 34.8755 +-108.611 10.2853 33.7576 +-108.438 9.9648 32.7058 +-108.827 9.69716 31.8274 +-108.922 9.40343 30.8634 +-109.584 9.15821 30.0585 +-109.854 8.87914 29.1426 +-109.343 8.53905 28.0263 +-110.466 8.32632 27.3281 +-111.002 8.06619 26.4744 +-111.725 7.81759 25.6584 +-112.345 7.55936 24.8109 +-113.348 7.32378 24.0377 +-115.324 7.1443 23.4486 +-117.395 6.96113 22.8474 +-121.133 6.86247 22.5236 +-159.681 8.62552 28.3101 +-159.539 8.19883 26.9097 +-160.074 7.80718 25.6242 +-164.055 7.57303 24.8557 +-853.323 37.1689 121.993 +-863.019 35.3499 116.023 +-379.426 14.5587 47.7837 +-379.748 13.5896 44.6029 +-381.631 12.6727 41.5937 +-404.572 12.3932 40.6761 +-403.335 11.319 37.1506 +-404.256 10.308 33.8323 +-404.549 9.27945 30.4564 +-404.811 8.25019 27.0783 +-403.147 7.18648 23.587 +-143.303 2.18887 7.18416 +-145.162 1.84719 6.06274 +-404.154 4.11338 13.5007 +-145.75 1.11236 3.6509 +-144.478 0.735004 2.41238 +-146.594 0.372857 1.22377 +119.7 3.55271e-15 -1.13687e-13 +119.695 0.313444 0.996433 +119.782 0.627386 1.99445 +120.359 0.94573 3.00646 +120.327 1.26086 4.00826 +120.385 1.57721 5.01392 +120.235 1.89082 6.01087 +120.076 2.20376 7.0057 +120.905 2.53693 8.06487 +120.527 2.84637 9.04857 +120.54 3.16448 10.0598 +120.642 3.48576 11.0812 +121.133 3.82037 12.1449 +120.123 4.10685 13.0556 +120.793 4.45049 14.148 +120.262 4.75095 15.1032 +120.219 5.06986 16.117 +120.561 5.40666 17.1877 +120.202 5.71276 18.1608 +120.721 6.06195 19.2708 +120.344 6.36742 20.2419 +120.94 6.72607 21.3821 +120.642 7.03676 22.3697 +121.119 7.39429 23.5063 +120.41 7.67996 24.4145 +120.768 8.03395 25.5398 +120.627 8.35662 26.5655 +120.477 8.67919 27.591 +120.996 9.05242 28.7775 +120.728 9.3689 29.7836 +121.031 9.73127 30.9355 +121.032 10.0719 32.0183 +121.407 10.4463 33.2087 +121.099 10.7638 34.2181 +121.546 11.1507 35.4479 +121.217 11.4686 36.4584 +120.974 11.7948 37.4956 +121.385 12.1873 38.7433 +121.499 12.5536 39.9076 +121.978 12.9614 41.2041 +121.972 13.3214 42.3484 +121.486 13.6297 43.3287 +119.498 13.7645 43.7572 +116.767 13.802 43.8763 +113.487 13.7587 43.7388 +110.681 13.7569 43.7328 +107.423 13.6827 43.497 +104.728 13.6643 43.4386 +102.134 13.6451 43.3777 +99.5498 13.6134 43.2767 +96.7937 13.5438 43.0556 +96.8474 13.8614 44.0651 +97.3394 14.246 45.2878 +96.9214 14.5003 46.0963 +98.0107 14.9852 47.6377 +97.3051 15.1997 48.3195 +96.8594 15.4539 49.1277 +96.4941 15.7213 49.9776 +96.6455 16.0752 51.1028 +97.0447 16.4754 52.375 +96.4752 16.7139 53.1332 +96.761 17.103 54.37 +96.9456 17.4793 55.5664 +96.4336 17.7325 56.3714 +96.5927 18.1116 57.5763 +96.0623 18.3638 58.3782 +96.0278 18.7127 59.4874 +96.3138 19.1291 60.811 +96.3342 19.498 61.9838 +95.7635 19.7495 62.7834 +96.0046 20.1717 64.1254 +96.147 20.5791 65.4206 +96.1112 20.9535 66.611 +96.2217 21.3651 67.9192 +96.2356 21.7607 69.1768 +96.2338 22.158 70.4399 +96.2949 22.5754 71.7668 +95.6347 22.8267 72.5657 +96.2107 23.3784 74.3196 +96.2987 23.8203 75.7244 +96.2152 24.2259 77.0136 +96.1153 24.6328 78.3073 +96.0745 25.0607 79.6676 +96.0161 25.4903 81.0333 +95.94 25.9215 82.4039 +95.8461 26.3541 83.7794 +96.3193 26.952 85.6801 +95.6769 27.2445 86.61 +95.9599 27.8067 88.397 +95.7895 28.2462 89.7942 +95.6715 28.7081 91.2627 +96.0947 29.3428 93.2803 +95.9323 29.8092 94.7629 +95.6125 30.2335 96.1119 +96.0254 30.8997 98.2296 +95.6636 31.3267 99.5871 +95.9533 31.9775 101.656 +95.4835 32.385 102.952 +95.719 33.0413 105.038 +95.274 33.4734 106.411 +95.2611 34.0663 108.296 +95.4753 34.7544 110.484 +95.342 35.3296 112.312 +94.9957 35.8361 113.923 +94.9966 36.4855 115.987 +94.845 37.0898 117.908 +94.9664 37.8163 120.217 +94.6958 38.4011 122.077 +94.6334 39.0847 124.25 +94.5965 39.795 126.508 +94.6401 40.5574 128.931 +94.6465 41.3229 131.365 +94.6154 42.0917 133.809 +94.5468 42.8635 136.262 +94.3315 43.5875 138.564 +94.7259 44.6174 141.838 +94.5906 45.4237 144.401 +94.1542 46.1045 146.566 +94.3035 47.0951 149.714 +94.3006 48.0385 152.714 +93.9 48.8034 155.145 +93.8559 49.7786 158.245 +93.8591 50.8096 161.523 +94.0957 52.003 165.317 +93.8474 52.9626 168.367 +94.012 54.1911 172.273 +94.0214 55.371 176.023 +93.6123 56.3402 179.105 +93.5046 57.5273 182.878 +93.7223 58.9616 187.438 +93.8635 60.4014 192.015 +93.5133 61.5731 195.74 +93.5494 63.0492 200.432 +93.5465 64.5576 205.228 +93.8145 66.3193 210.828 +93.6044 67.8101 215.567 +93.5393 69.4716 220.849 +93.5311 71.2495 226.501 +93.2832 72.9203 231.812 +93.4353 74.9887 238.388 +93.0637 76.7249 243.907 +92.6982 78.5499 249.709 +92.9172 80.9742 257.416 +92.7164 83.1494 264.33 +92.427 85.3582 271.352 +92.1663 87.7146 278.843 +92.1263 90.4207 287.446 +92.0494 93.2476 296.433 +92.0077 96.2831 306.082 +92.0102 99.5566 316.489 +91.7772 102.779 326.733 +91.7643 106.473 338.475 +91.4949 110.115 350.055 +91.2071 113.998 362.398 +106.829 138.851 441.404 +104.454 141.381 449.448 +100.006 141.18 448.808 +95.9159 141.466 449.717 +91.4929 141.24 448.999 +90.2613 146.136 464.563 +89.8977 152.986 486.34 +89.6539 160.762 511.061 +89.6213 169.794 539.771 +86.8528 174.384 554.365 +88.027 187.947 597.481 +85.3119 194.448 618.146 +80.8969 197.702 628.49 +73.5934 193.821 616.155 +68.9679 196.902 625.947 +62.1368 193.64 615.577 +57.3485 196.695 625.289 +50.7787 193.607 615.472 +45.7184 196.187 623.674 +39.3519 193.064 613.748 +34.2434 196.067 623.292 +28.0778 192.971 613.452 +22.8033 195.946 622.91 +16.8082 192.609 612.3 +11.3929 195.856 622.623 +5.59458 192.368 611.533 +2.69784e-14 195.706 622.145 +-5.59458 192.368 611.533 +-11.3685 195.436 621.287 +-16.7611 192.069 610.584 +-22.7266 195.286 620.812 +-27.9295 191.952 610.212 +-34.0969 195.228 620.625 +-39.1016 191.836 609.844 +-45.4742 195.139 620.344 +-50.2531 191.602 609.101 +-56.8168 194.871 619.492 +-61.4467 191.489 608.741 +-68.1421 194.544 618.452 +-72.5746 191.138 607.625 +-79.6172 194.574 618.549 +-83.7587 190.907 606.892 +-90.894 194.068 616.94 +-95.1154 190.974 607.103 +-102.605 194.393 617.971 +-106.456 190.891 606.838 +-113.948 193.914 616.451 +-117.651 190.481 605.536 +-125.323 193.465 615.022 +-129.091 190.395 605.261 +-139.093 196.36 624.225 +-139.041 188.196 598.271 +-142.619 185.368 589.283 +-142.378 177.956 565.719 +-142.298 171.258 544.427 +-142.316 165.127 524.936 +-143.774 161.009 511.845 +-144.148 155.971 495.829 +-110.916 116.071 368.987 +-113.237 114.711 364.664 +-116.189 114.037 362.523 +-119.711 113.929 362.179 +-123.545 114.096 362.71 +-129.175 115.846 368.272 +-1066.79 929.67 2955.41 +-1093.78 926.841 2946.41 +-1120.7 923.942 2937.2 +-1147.52 920.971 2927.75 +-1174.26 917.932 2918.09 +-470.698 358.565 1139.87 +-469.007 348.33 1107.34 +-158.622 114.911 365.301 +-162.232 114.685 364.581 +-165.561 114.256 363.216 +-168.918 113.845 361.911 +-173.632 114.327 363.443 +-142.042 91.4043 290.573 +-142.671 89.756 285.333 +-145.189 89.3251 283.963 +-149.253 89.8277 285.561 +-433.788 255.467 812.124 +-434.782 250.621 796.72 +-436.562 246.373 783.217 +-438.079 242.109 769.66 +-439.625 237.987 756.557 +-441.901 234.372 745.064 +-436.5 226.865 721.2 +-430.9 219.508 697.812 +-429.593 214.539 682.016 +-431.061 211.078 671.012 +-438.402 210.526 669.259 +-440.747 207.599 659.952 +-444.861 205.556 653.458 +-447.621 202.932 645.116 +-450.15 200.259 636.621 +-452.785 197.688 628.446 +-454.559 194.799 619.262 +-457.304 192.38 611.572 +-135.72 56.0537 178.194 +-135.382 54.9002 174.527 +-459.546 182.994 581.735 +-477.086 186.569 593.099 +-469.565 180.347 573.32 +-472.489 178.242 566.627 +-474.822 175.948 559.336 +-477.886 173.957 553.007 +-480.741 171.918 546.523 +-483.969 170.036 540.542 +-485.943 167.743 533.252 +-488.815 165.79 527.044 +-491.811 163.901 521.04 +-494.87 162.055 515.169 +-497.109 159.962 508.518 +-500.503 158.263 503.115 +-502.446 156.126 496.321 +-505.636 154.398 490.828 +-508.693 152.643 485.251 +-510.045 150.401 478.122 +-526.053 152.437 484.594 +-517.555 147.377 468.508 +-520.212 145.565 462.75 +-523.467 143.934 457.565 +-140.975 38.0891 121.085 +-142.302 37.7782 120.096 +-142.716 37.227 118.344 +-141.816 36.3451 115.54 +-141.871 35.7215 113.558 +-141.902 35.1007 111.584 +-146.259 35.5397 112.98 +-153.704 36.6871 116.628 +-156.184 36.6157 116.401 +-156.767 36.0957 114.748 +-157.81 35.684 113.439 +-159.968 35.5193 112.915 +-161.561 35.2225 111.972 +-383.367 82.055 260.852 +-2683.95 563.927 1792.72 +-381.488 78.675 250.107 +-2716.34 549.788 1747.77 +-385.005 76.4665 243.086 +-380.421 74.1317 235.663 +-381.044 72.8426 231.565 +-382.385 71.699 227.93 +-382.324 70.3028 223.491 +-383.668 69.1754 219.907 +-380.582 67.2697 213.849 +-381.051 66.0154 209.862 +-381.216 64.7197 205.743 +-380.984 63.3697 201.451 +-380.088 61.9257 196.861 +-380.639 60.7308 193.062 +-379.375 59.2608 188.389 +-380.46 58.1697 184.921 +-381.153 57.0241 181.279 +-381.448 55.8265 177.472 +-380.62 54.4768 173.181 +-380.74 53.275 169.36 +-379.545 51.9028 164.998 +-380.492 50.8336 161.599 +-379.938 49.5721 157.589 +-379.984 48.3995 153.861 +-380.454 47.2877 150.327 +-380.887 46.1772 146.796 +-381.378 45.0792 143.306 +-114.084 13.1408 41.7745 +-112.494 12.6209 40.1217 +-111.166 12.1411 38.5964 +-110.006 11.6893 37.1601 +-109.302 11.2933 35.9013 +-109.057 10.9495 34.8084 +-108.801 10.6079 33.7224 +-108.819 10.2955 32.7294 +-108.732 9.97513 31.7108 +-108.73 9.66444 30.7231 +-109.776 9.44554 30.0272 +-109.372 9.1016 28.9338 +-109.246 8.78377 27.9234 +-109.788 8.51991 27.0847 +-111.002 8.3047 26.4005 +-111.045 7.99971 25.431 +-111.468 7.72212 24.5485 +-113.446 7.54685 23.9913 +-114.443 7.29941 23.2047 +-117.689 7.1849 22.8407 +-120.936 7.05395 22.4244 +-158.304 8.80402 27.9878 +-158.16 8.36832 26.6027 +-159.877 8.02813 25.5213 +-162.87 7.7406 24.6072 +-853.62 38.2811 121.695 +-863.019 36.3952 115.7 +-379.723 15.0009 47.6878 +-379.748 13.9914 44.4785 +-381.631 13.0475 41.4777 +-404.074 12.7439 40.5128 +-404.529 11.6882 37.1567 +-403.558 10.5945 33.6798 +-405.147 9.56797 30.4164 +-404.811 8.49414 27.0027 +-405.043 7.43378 23.6319 +-145.5 2.28814 7.27395 +-145.561 1.90705 6.06247 +-402.755 4.22033 13.4164 +-145.35 1.1421 3.63073 +-146.078 0.765118 2.4323 +-145.194 0.380216 1.2087 +120.5 5.77316e-15 2.84217e-14 +119.695 0.322421 0.993565 +120.582 0.649662 2.00199 +120.359 0.972815 2.99781 +120.327 1.29697 3.99673 +120.385 1.62238 4.99949 +120.235 1.94497 5.99357 +120.974 2.28383 7.03779 +120.905 2.60959 8.04166 +120.627 2.93031 9.02999 +120.739 3.2605 10.0475 +120.443 3.57966 11.031 +121.033 3.92654 12.0999 +120.918 4.25239 13.1041 +120.594 4.57041 14.0841 +120.956 4.91522 15.1466 +121.011 5.24944 16.1766 +120.561 5.5615 17.1382 +120.3 5.88118 18.1233 +119.834 6.18972 19.0741 +120.442 6.55515 20.2002 +120.842 6.91304 21.3031 +120.642 7.23828 22.3053 +120.335 7.55682 23.287 +120.312 7.89348 24.3244 +120.67 8.25733 25.4456 +120.432 8.58208 26.4464 +121.352 8.9926 27.7114 +120.996 9.31167 28.6947 +121.503 9.69904 29.8884 +121.031 10.01 30.8465 +120.936 10.3521 31.9008 +121.407 10.7455 33.1131 +121.195 11.0809 34.1466 +120.686 11.3888 35.0957 +120.454 11.7228 36.1246 +121.735 12.2089 37.6228 +121.291 12.5266 38.6017 +121.499 12.9131 39.7927 +122.261 13.3635 41.1807 +121.596 13.6606 42.0964 +121.205 13.9876 43.104 +120.432 14.2694 43.9722 +116.86 14.2086 43.7849 +114.322 14.2569 43.9337 +110.681 14.1508 43.6069 +107.423 14.0745 43.3718 +104.637 14.0434 43.2757 +102.134 14.0359 43.2528 +99.5498 14.0033 43.1522 +97.6093 14.0491 43.2935 +96.5766 14.2185 43.8154 +97.4293 14.6675 45.1991 +96.9214 14.9156 45.9636 +97.8325 15.3863 47.4142 +97.8373 15.7205 48.444 +97.0359 15.9255 49.0756 +96.4062 16.1568 49.7884 +96.7329 16.5505 51.0017 +96.1743 16.7952 51.7559 +96.4752 17.1926 52.9802 +96.6748 17.5771 54.1652 +96.2599 17.8527 55.0146 +96.4336 18.2403 56.2091 +96.6775 18.6466 57.461 +96.737 19.0224 58.6191 +96.8665 19.4167 59.8342 +96.3138 19.6769 60.6359 +95.7538 19.9356 61.4331 +96.5876 20.4899 63.1414 +95.9227 20.7316 63.8862 +96.0656 21.1505 65.177 +96.1112 21.5536 66.4192 +96.2217 21.9769 67.7237 +96.3154 22.4025 69.035 +96.2338 22.7926 70.2372 +96.2949 23.2219 71.5602 +95.713 23.4996 72.416 +96.2107 24.0479 74.1057 +95.6043 24.3258 74.9619 +96.2152 24.9197 76.792 +96.1153 25.3382 78.0818 +96.0745 25.7784 79.4383 +96.0161 26.2203 80.8 +95.94 26.6638 82.1667 +95.7723 27.0881 83.474 +96.3924 27.745 85.4983 +96.1121 28.1523 86.7535 +96.0319 28.6245 88.2087 +95.8609 29.0768 89.6024 +95.6715 29.5303 91 +96.0947 30.1831 93.0118 +95.3071 30.463 93.8743 +95.6125 31.0994 95.8353 +95.3434 31.5587 97.2506 +95.6636 32.2238 99.3004 +95.8864 32.8705 101.293 +95.4835 33.3125 102.655 +95.1286 33.778 104.09 +95.274 34.432 106.105 +95.2611 35.0419 107.985 +94.8393 35.5114 109.431 +94.9015 36.1735 111.472 +94.9957 36.8624 113.595 +94.8734 37.4816 115.503 +94.845 38.152 117.569 +94.7859 38.8252 119.643 +94.7553 39.5256 121.801 +94.6922 40.229 123.969 +94.9449 41.0856 126.609 +94.5828 41.6936 128.482 +94.9297 42.6338 131.38 +94.1681 43.0925 132.793 +94.5468 44.091 135.87 +94.3859 44.8618 138.245 +94.0274 45.5569 140.387 +94.4846 46.6721 143.824 +94.1542 47.4249 146.144 +94.355 48.4703 149.365 +93.9454 49.2281 151.7 +93.9 50.201 154.699 +93.8067 51.1773 157.707 +93.8591 52.2647 161.058 +94.0957 53.4923 164.841 +93.8943 54.5069 167.967 +93.9197 55.6884 171.608 +94.0668 56.9845 175.602 +93.5677 57.9262 178.504 +93.9429 59.4523 183.207 +93.6792 60.6224 186.813 +93.8635 62.1312 191.462 +93.5548 63.3646 195.263 +93.224 64.6295 199.161 +93.4668 66.35 204.463 +93.4238 67.9347 209.346 +93.5661 69.7237 214.859 +93.2021 71.2034 219.419 +93.5311 73.29 225.849 +93.319 75.0373 231.234 +93.3653 77.0785 237.524 +93.1321 78.9802 243.384 +92.8317 80.9158 249.349 +92.7218 83.1181 256.135 +92.5895 85.4137 263.209 +92.0253 87.4212 269.395 +92.3167 90.3739 278.494 +92.331 93.2167 287.255 +91.5665 95.415 294.029 +91.9526 98.9813 305.019 +92.0369 102.437 315.669 +91.7514 105.693 325.701 +91.8394 109.612 337.777 +91.3013 113.029 348.309 +91.2304 117.293 361.447 +96.1441 128.542 396.111 +104.8 145.912 449.641 +100.338 145.706 449.004 +96.4143 146.273 450.752 +91.8745 145.891 449.574 +90.1337 150.109 462.572 +89.8977 157.367 484.94 +89.5383 165.153 508.934 +88.8704 173.193 533.708 +87.9762 181.698 559.918 +88.7229 194.858 600.471 +82.2837 192.917 594.489 +78.0817 196.286 604.873 +71.0011 192.349 592.74 +66.5533 195.449 602.293 +59.8748 191.934 591.461 +55.3526 195.286 601.79 +48.9036 191.797 591.038 +44.2465 195.308 601.858 +37.9172 191.353 589.671 +33.1287 195.116 601.266 +27.1225 191.744 590.875 +22.039 194.802 600.298 +16.1826 190.75 587.812 +11.0037 194.583 599.622 +5.38689 190.531 587.135 +3.35287e-14 194.026 597.906 +-5.39125 190.685 587.611 +-10.9706 193.996 597.815 +-16.1355 190.195 586.101 +-21.9588 194.093 598.113 +-26.9088 190.233 586.219 +-32.9246 193.914 597.562 +-37.6608 190.059 585.683 +-43.8698 193.646 596.734 +-48.4328 189.951 585.348 +-54.8122 193.38 595.915 +-59.0793 189.384 583.603 +-65.8007 193.239 595.483 +-70.0049 189.651 584.423 +-76.7168 192.855 594.299 +-80.6913 189.183 582.983 +-87.8321 192.902 594.442 +-91.5236 189.025 582.496 +-98.8509 192.643 593.645 +-102.379 188.838 581.92 +-109.954 192.476 593.131 +-113.168 188.47 580.786 +-121.126 192.34 592.71 +-124.326 188.618 581.243 +-132.211 191.99 591.632 +-137.006 190.752 587.819 +-139.965 187.128 576.65 +-142.448 183.142 564.368 +-142.226 176.073 542.583 +-142.291 169.826 523.333 +-143.696 165.531 510.096 +-143.774 160.021 493.119 +-111.054 119.543 368.381 +-113.748 118.529 365.256 +-116.715 117.834 363.116 +-120.493 117.957 363.494 +-124.009 117.804 363.023 +-129.524 119.485 368.204 +-1066.79 956.295 2946.9 +-1093.78 953.384 2937.93 +-1120.7 950.402 2928.74 +-1147.52 947.347 2919.33 +-1174.26 944.22 2909.69 +-465.457 364.726 1123.93 +-465.973 355.988 1097 +-159.732 119.029 366.797 +-162.818 118.395 364.845 +-166.159 117.952 363.48 +-169.894 117.782 362.956 +-424.936 287.809 886.907 +-142.084 94.0501 289.823 +-143.059 92.5771 285.284 +-145.715 92.216 284.171 +-149.209 92.3725 284.653 +-433.788 262.783 809.786 +-435.383 258.155 795.525 +-436.937 253.647 781.634 +-438.7 249.395 768.531 +-440.74 245.424 756.292 +-442.344 241.326 743.665 +-443.8 237.265 731.15 +-446.278 233.853 720.637 +-445.25 228.726 704.838 +-450.133 226.729 698.683 +-433.951 214.357 660.557 +-439.404 212.893 656.048 +-442.138 210.148 647.589 +-443.04 206.607 636.676 +-450.094 205.969 634.709 +-452.219 203.095 625.854 +-455.534 200.807 618.804 +-457.478 197.964 610.043 +-459.707 195.301 601.837 +-462.475 192.914 594.481 +-135.649 55.5631 171.222 +-136.058 54.7303 168.656 +-469.996 185.682 572.193 +-473.36 183.684 566.037 +-475.389 181.203 558.391 +-478.649 179.224 552.295 +-481.576 177.148 545.896 +-484.878 175.234 539.998 +-487.124 172.966 533.01 +-490.008 170.954 526.809 +-492.212 168.733 519.964 +-495.951 167.059 514.807 +-497.722 164.747 507.68 +-501.053 162.974 502.218 +-503.905 161.063 496.33 +-506.477 159.084 490.229 +-2316.69 715.077 2203.57 +-517.677 157.023 483.88 +-521.234 155.365 478.771 +-518.933 152.001 468.403 +-386.886 111.359 343.161 +-524.941 148.473 457.532 +-140.826 39.1385 120.609 +-141.103 38.5329 118.742 +-143.017 38.374 118.252 +-141.816 37.3859 115.208 +-141.718 36.705 113.109 +-143.059 36.4004 112.171 +-146.881 36.713 113.134 +-155.817 38.2567 117.891 +-155.711 37.5504 115.715 +-157.401 37.2798 114.881 +-157.81 36.7059 113.112 +-159.968 36.5365 112.59 +-160.994 36.1041 111.258 +-2667.45 587.285 1809.77 +-384.51 83.1036 256.091 +-383.136 81.2779 250.464 +-385.171 80.1911 247.115 +-382.253 78.0943 240.654 +-380.756 76.322 235.192 +-381.129 74.9453 230.95 +-381.791 73.6378 226.921 +-382.068 72.268 222.7 +-382.125 70.8704 218.393 +-382.133 69.478 214.102 +-380.618 67.8288 209.02 +-381.216 66.5731 205.151 +-379.672 64.9601 200.18 +-380.879 63.8319 196.703 +-380.904 62.5136 192.641 +-381.237 61.2573 188.769 +-380.46 59.8356 184.388 +-379.094 58.3402 179.78 +-379.74 57.1682 176.168 +-381.433 56.1564 173.05 +-380.015 54.6964 168.551 +-379.909 53.4401 164.68 +-380.583 52.3018 161.172 +-380.855 51.1147 157.514 +-379.34 49.701 153.158 +-379.807 48.5592 149.639 +-381.351 47.5576 146.553 +-379.61 46.1554 142.232 +-113.803 13.484 41.552 +-112.307 12.9607 39.9396 +-109.944 12.3516 38.0625 +-110.195 12.0447 37.1166 +-109.302 11.6168 35.798 +-109.057 11.2631 34.7082 +-108.611 10.8926 33.5666 +-109.105 10.6182 32.721 +-108.636 10.2518 31.5916 +-109.401 10.0026 30.8238 +-109.584 9.69904 29.8884 +-109.372 9.36226 28.8505 +-110.019 9.09924 28.0401 +-109.885 8.77163 27.0305 +-110.517 8.50519 26.2094 +-110.947 8.22159 25.3355 +-112.345 8.00577 24.6704 +-114.129 7.80974 24.0663 +-114.835 7.5341 23.217 +-117.199 7.35989 22.6801 +-121.82 7.30896 22.5232 +-160.172 9.16304 28.2367 +-158.751 8.64014 26.6253 +-162.836 8.41089 25.9188 +-164.648 8.0492 24.8043 +-854.51 39.4185 121.471 +-863.019 37.4375 115.367 +-378.435 15.3782 47.3891 +-379.649 14.3883 44.3389 +-382.525 13.4525 41.4551 +-404.87 13.1347 40.4757 +-404.23 12.0141 37.0224 +-403.06 10.8845 33.5413 +-404.549 9.82744 30.2841 +-404.512 8.73095 26.9051 +-404.644 7.63914 23.5406 +-143.203 2.31651 7.13852 +-3273.38 44.1139 135.94 +-403.954 4.35413 13.4176 +-144.95 1.17158 3.61032 +-145.778 0.785413 2.42031 +-146.094 0.39353 1.2127 +119.7 3.55271e-15 -1.13687e-13 +119.695 0.331371 0.990616 +119.782 0.663268 1.98281 +120.459 1.00065 2.99139 +120.227 1.33187 3.98155 +120.385 1.66741 4.98465 +120.335 2.00062 5.98074 +120.076 2.32979 6.9648 +120.007 2.66211 7.95825 +120.428 3.00668 8.98831 +120.739 3.35101 10.0177 +120.343 3.67602 10.9893 +120.238 4.00902 11.9847 +120.62 4.35969 13.0331 +120.594 4.69728 14.0423 +120.857 5.04751 15.0893 +120.912 5.39072 16.1153 +120.561 5.71588 17.0873 +120.004 6.02956 18.0251 +120.721 6.40865 19.1583 +120.344 6.7316 20.1238 +119.957 7.05292 21.0843 +120.74 7.44527 22.2573 +120.335 7.7666 23.2178 +120.214 8.106 24.2325 +120.768 8.49344 25.3907 +120.432 8.82031 26.3679 +120.379 9.16816 27.4077 +120.996 9.57015 28.6095 +120.728 9.90474 29.6097 +121.224 10.3043 30.8041 +120.743 10.6225 31.7554 +121.407 11.0438 33.0148 +121.099 11.3795 34.0183 +120.781 11.7143 35.0192 +121.313 12.1341 36.2741 +121.735 12.5479 37.5111 +121.291 12.8743 38.4871 +121.499 13.2716 39.6746 +121.129 13.6074 40.6786 +121.596 14.0399 41.9714 +121.767 14.4426 43.1754 +121.365 14.7791 44.1814 +117.419 14.6728 43.8635 +114.322 14.6526 43.8032 +111.42 14.6408 43.7678 +108.067 14.552 43.5024 +105.462 14.547 43.4875 +102.134 14.4255 43.1244 +100.278 14.4972 43.3387 +97.7 14.4525 43.205 +96.7571 14.6405 43.767 +97.3394 15.0608 45.0234 +96.9214 15.3297 45.8272 +97.0306 15.6838 46.8859 +97.3938 16.0837 48.0812 +97.5657 16.4569 49.1971 +96.4062 16.6053 49.6406 +96.6455 16.9946 50.8044 +96.2613 17.2771 51.6489 +96.4752 17.6698 52.823 +96.761 18.0811 54.0526 +96.1742 18.332 54.8025 +96.4336 18.7467 56.0422 +95.8294 18.9961 56.7879 +96.5683 19.5164 58.3431 +96.1955 19.8175 59.2434 +96.3138 20.2231 60.456 +96.3342 20.6132 61.6219 +95.8459 20.897 62.4705 +95.9227 21.3071 63.6966 +96.0656 21.7376 64.9836 +96.1112 22.1519 66.2221 +96.2217 22.587 67.5227 +96.2356 23.0052 68.773 +96.3131 23.4446 70.0863 +96.2161 23.847 71.2895 +95.713 24.152 72.2011 +96.2107 24.7155 73.8857 +96.2987 25.1827 75.2823 +96.2152 25.6114 76.564 +96.1153 26.0416 77.8501 +96.0745 26.494 79.2025 +96.0161 26.9482 80.5602 +95.94 27.404 81.9229 +95.8461 27.8614 83.2903 +96.3193 28.4935 85.1799 +96.1121 28.9338 86.496 +96.0319 29.4191 87.9469 +95.8609 29.8839 89.3365 +95.6715 30.35 90.7299 +96.0947 31.021 92.7357 +95.3071 31.3087 93.5957 +95.6813 31.9855 95.6191 +95.3434 32.4347 96.9619 +95.6636 33.1184 99.0056 +95.2842 33.5707 100.358 +95.4173 34.2135 102.279 +95.8502 34.9789 104.568 +95.274 35.3878 105.79 +95.2611 36.0147 107.664 +94.7757 36.4728 109.033 +94.8386 37.1529 111.067 +94.3732 37.6373 112.515 +94.9966 38.5722 115.31 +94.4189 39.0351 116.693 +94.7859 39.903 119.288 +94.5768 40.5464 121.211 +94.751 41.3715 123.678 +94.9449 42.2261 126.233 +94.5828 42.851 128.101 +94.5332 43.6343 130.442 +94.224 44.3151 132.478 +94.6572 45.3676 135.624 +94.3859 46.1071 137.835 +94.1349 46.8748 140.13 +94.4846 47.9677 143.397 +94.0497 48.6872 145.548 +94.3035 49.7886 148.84 +93.8946 50.5671 151.168 +93.9 51.5946 154.239 +93.9052 52.6532 157.404 +93.8591 53.7156 160.58 +94.0003 54.9214 164.185 +93.8474 55.9917 167.384 +93.9658 57.2626 171.183 +94.0668 58.5664 175.081 +93.5677 59.5343 177.975 +93.8553 61.0456 182.493 +93.7223 62.3338 186.344 +93.5254 63.6259 190.206 +93.5548 65.1236 194.684 +93.5494 66.6552 199.262 +93.4668 68.1918 203.856 +93.4238 69.8205 208.725 +93.5278 71.6297 214.133 +93.2021 73.18 218.768 +93.4945 75.295 225.09 +93.319 77.1203 230.547 +93.1552 79.0399 236.286 +92.9269 80.9937 242.127 +92.9652 83.2816 248.966 +92.5916 85.3052 255.016 +92.2405 87.4538 261.439 +92.1489 89.9685 268.956 +91.7153 92.2777 275.859 +90.8399 94.2572 281.777 +87.1643 93.3493 279.063 +91.677 101.424 303.202 +91.93 105.159 314.367 +91.7772 108.657 324.825 +91.8644 112.685 336.866 +91.1562 115.982 346.723 +90.8803 120.086 358.991 +93.0173 127.813 382.091 +105.601 151.109 451.731 +100.712 150.309 449.342 +96.7931 150.924 451.179 +92.2752 150.595 450.195 +90.1701 154.338 461.386 +89.7066 161.392 482.474 +88.5976 167.955 502.091 +86.9776 174.209 520.79 +89.07 189.064 565.197 +85.9116 193.921 579.718 +79.1772 190.786 570.346 +75.1081 194.053 580.11 +68.1483 189.746 567.235 +64.1073 193.492 578.435 +57.4404 189.242 565.728 +53.2957 193.249 577.708 +46.9735 189.341 566.025 +42.5375 192.977 576.894 +36.4948 189.287 565.865 +31.8621 192.866 576.563 +26.0146 189.017 565.056 +21.3376 193.838 579.467 +15.6015 189.005 565.022 +10.5919 192.499 575.465 +5.18443 188.46 563.392 +3.27516e-14 192.052 574.13 +-5.18269 188.397 563.202 +-10.5552 191.833 573.474 +-15.5282 188.118 562.368 +-21.0967 191.65 572.927 +-25.8925 188.13 562.404 +-31.6737 191.726 573.154 +-36.2384 187.958 561.89 +-42.1887 191.395 572.164 +-46.5733 187.728 561.204 +-52.7467 191.258 571.756 +-56.894 187.442 560.348 +-63.3547 191.221 571.645 +-67.3333 187.477 560.452 +-73.865 190.841 570.509 +-77.637 187.075 559.251 +-84.4224 190.56 569.67 +-88.1979 187.213 559.664 +-95.1434 190.565 569.684 +-98.5829 186.884 558.679 +-105.925 190.572 569.704 +-109.05 186.653 557.989 +-116.699 190.454 569.353 +-119.621 186.518 557.586 +-127.221 189.872 567.614 +-130.513 186.756 558.298 +-140.189 192.632 575.863 +-142.635 188.473 563.431 +-142.686 181.545 542.721 +-142.441 174.725 522.33 +-142.195 168.349 503.269 +-118.681 135.759 405.844 +-111.413 123.258 368.473 +-114.515 122.641 366.628 +-117.212 121.621 363.581 +-121.215 121.958 364.586 +-124.812 121.859 364.291 +-1039.71 985.757 2946.87 +-1066.79 982.841 2938.15 +-1093.78 979.85 2929.21 +-1120.7 976.785 2920.05 +-1147.52 973.645 2910.66 +-1174.26 970.431 2901.05 +-464.284 373.905 1117.77 +-456.87 358.723 1072.38 +-160.459 122.89 367.374 +-163.326 122.062 364.897 +-167.076 121.896 364.401 +-170.382 121.4 362.918 +-142.447 99.1578 296.427 +-142.127 96.6894 289.048 +-143.575 95.4906 285.464 +-146.81 95.4887 285.458 +-433.481 275.811 824.521 +-434.378 270.445 808.481 +-436.399 265.94 795.013 +-437.36 260.94 780.067 +-439.272 256.653 767.251 +-440.983 252.375 754.462 +-443.23 248.522 742.942 +-444.9 244.455 730.787 +-447.649 241.083 720.704 +-448.65 236.87 708.111 +-451.857 233.915 699.277 +-452.869 229.911 687.308 +-455.576 226.856 678.175 +-449.382 219.52 656.245 +-459.598 220.278 658.511 +-445.285 209.425 626.064 +-447.631 206.615 617.666 +-455.706 206.46 617.2 +-456.665 203.098 607.151 +-460.941 201.262 601.661 +-464.973 199.341 595.918 +-463.337 195.056 583.11 +-475.382 196.535 587.53 +-135.261 54.9211 164.184 +-135.272 53.9488 161.277 +-476.71 186.751 558.281 +-479.539 184.543 551.681 +-482.219 182.309 545.003 +-486.047 180.533 539.693 +-488.042 178.103 532.429 +-491.399 176.199 526.737 +-493.283 173.794 519.549 +-496.559 171.908 513.909 +-498.95 169.737 507.421 +-501.81 167.752 501.485 +-504.183 165.626 495.13 +-507.598 163.862 489.856 +-505.723 160.431 479.601 +-525.309 163.761 489.556 +-517.493 158.532 473.925 +-519.078 156.264 467.144 +-2396.28 708.877 2119.15 +-140.82 40.935 122.373 +-142.238 40.6285 121.457 +-141.777 39.7917 118.955 +-143.017 39.4392 117.901 +-141.283 38.2794 114.434 +-142.561 37.9482 113.444 +-144.525 37.794 112.983 +-148.279 38.0913 113.872 +-156.052 39.3777 117.717 +-156.657 38.8273 116.072 +-157.243 38.2762 114.425 +-158.369 37.8584 113.176 +-161.173 37.8337 113.102 +-564.775 130.171 389.138 +-571.265 129.265 386.432 +-384.51 85.4105 255.33 +-380.664 82.9951 248.11 +-381.689 81.672 244.154 +-381.503 80.1045 239.468 +-382.937 78.8898 235.837 +-381.044 77.0087 230.213 +-380.519 75.4298 225.493 +-382.921 74.4397 222.534 +-381.697 72.7559 217.5 +-380.582 71.117 212.601 +-380.618 69.7117 208.399 +-380.258 68.2493 204.028 +-380.984 66.994 200.275 +-380.088 65.4674 195.712 +-380.639 64.2042 191.935 +-380.794 62.8845 187.99 +-381.796 61.7127 184.487 +-381.332 60.3137 180.305 +-381.268 58.9915 176.352 +-381.613 57.7425 172.618 +-381.918 56.4961 168.892 +-379.09 54.8053 163.838 +-379.395 53.5862 160.193 +-381.222 52.5843 157.198 +-380.721 51.2666 153.259 +-382.394 50.2473 150.212 +-381.536 48.9016 146.189 +-381.657 47.6923 142.574 +-113.337 13.8015 41.2587 +-111.745 13.2539 39.6217 +-110.226 12.727 38.0468 +-109.252 12.2731 36.6899 +-108.64 11.8669 35.4756 +-109.152 11.5859 34.6354 +-108.801 11.2146 33.5255 +-108.533 10.8558 32.4528 +-108.636 10.5363 31.4979 +-109.018 10.2442 30.6245 +-109.872 9.99448 29.878 +-109.565 9.63909 28.8156 +-109.826 9.3354 27.9077 +-110.853 9.09456 27.1877 +-111.099 8.78735 26.2693 +-111.823 8.51647 25.4595 +-112.247 8.22087 24.5759 +-113.055 7.951 23.7691 +-114.737 7.73665 23.1283 +-118.277 7.63377 22.8208 +-122.998 7.58451 22.6735 +-160.172 9.41741 28.1528 +-161.312 9.02322 26.9744 +-162.441 8.62341 25.7792 +-162.475 8.16349 24.4043 +-856.389 40.6019 121.377 +-864.504 38.543 115.222 +-379.723 15.8589 47.4093 +-379.748 14.7916 44.2188 +-384.413 13.8942 41.536 +-404.572 13.4894 40.3258 +-403.832 12.3354 36.8761 +-403.26 11.1921 33.4583 +-404.25 10.0928 30.1719 +-403.914 8.96002 26.7855 +-403.746 7.83375 23.4186 +-142.005 2.36089 7.05777 +-404.115 5.59724 16.7327 +-403.654 4.47167 13.3678 +-147.15 1.22237 3.65422 +-146.578 0.811644 2.42637 +-145.594 0.403068 1.20495 +119.7 3.55271e-15 -1.13687e-13 +119.695 0.340292 0.987587 +119.782 0.681126 1.97674 +120.459 1.02759 2.98225 +120.227 1.36773 3.96938 +120.385 1.71231 4.96941 +120.235 2.05278 5.9575 +120.175 2.39451 6.94927 +120.107 2.73606 7.94052 +120.527 3.09018 8.96824 +120.54 3.43553 9.97051 +120.343 3.77499 10.9557 +120.337 4.12034 11.9579 +120.62 4.47706 12.9932 +119.701 4.78801 13.8956 +120.857 5.1834 15.0431 +120.714 5.5268 16.0397 +120.462 5.86495 17.0211 +121.091 6.24796 18.1327 +120.721 6.5812 19.0998 +120.442 6.9185 20.0787 +120.055 7.24877 21.0372 +120.74 7.64572 22.1892 +120.531 7.9887 23.1846 +120.214 8.32424 24.1584 +120.084 8.67276 25.1698 +120.53 9.06508 26.3084 +120.379 9.415 27.3239 +120.996 9.82782 28.522 +121.406 10.2285 29.6849 +121.224 10.5817 30.7099 +121.61 10.9868 31.8857 +121.407 11.3411 32.9139 +121.195 11.6951 33.9411 +120.686 12.0201 34.8845 +121.313 12.4607 36.1632 +120.974 12.8052 37.1627 +122.144 13.3139 38.6393 +121.783 13.6607 39.6457 +121.412 14.0064 40.6489 +121.596 14.4179 41.8431 +121.767 14.8315 43.0434 +121.365 15.177 44.0463 +118.535 15.2111 44.1451 +115.064 15.1448 43.9527 +112.159 15.1347 43.9234 +108.804 15.0456 43.665 +106.104 15.0296 43.6185 +103.505 15.0127 43.5694 +100.278 14.8876 43.2062 +98.425 14.9518 43.3926 +95.4935 14.8383 43.0634 +97.3394 15.4663 44.8857 +97.0109 15.7569 45.7292 +97.0306 16.1061 46.7426 +98.1034 16.637 48.2835 +96.6828 16.747 48.6027 +96.4941 17.0679 49.5339 +96.6455 17.4521 50.6491 +96.9576 17.8706 51.8635 +96.4752 18.1455 52.6615 +96.6748 18.5514 53.8393 +96.9456 18.9765 55.0731 +96.4336 19.2514 55.8709 +96.5927 19.6629 57.0652 +96.5683 20.0418 58.1647 +96.0278 20.3156 58.9593 +96.3138 20.7676 60.2711 +96.4171 21.1863 61.4864 +96.5876 21.6257 62.7615 +96.0046 21.8995 63.556 +96.0656 22.3229 64.7848 +96.1112 22.7484 66.0196 +96.2217 23.1951 67.3162 +96.3154 23.6442 68.6196 +96.2338 24.056 69.8145 +96.2949 24.5091 71.1297 +95.6347 24.782 71.9215 +96.2107 25.3809 73.6598 +96.2987 25.8607 75.0521 +96.2152 26.301 76.3299 +96.0393 26.7216 77.5507 +95.9991 27.186 78.8983 +96.0161 27.6737 80.3138 +96.0143 28.1636 81.7356 +95.8461 28.6115 83.0356 +96.3193 29.2606 84.9194 +95.6769 29.5782 85.841 +95.9599 30.1885 87.6122 +95.7895 30.6657 88.997 +95.7423 31.1902 90.5194 +95.4638 31.6471 91.8453 +95.8629 32.3391 93.8536 +95.6125 32.8232 95.2586 +95.4116 33.3318 96.7345 +95.6636 34.01 98.7029 +95.3511 34.4987 100.121 +95.6161 35.2076 102.178 +95.063 35.6255 103.391 +95.274 36.3406 105.467 +95.3254 37.0091 107.407 +94.7757 37.4547 108.7 +94.9015 38.1786 110.801 +94.8712 38.8546 112.763 +94.8734 39.5592 114.808 +94.9668 40.3186 117.011 +94.7257 40.9513 118.848 +94.8148 41.7429 121.145 +94.6922 42.4589 123.223 +95.2353 43.4956 126.232 +94.6401 44.0314 127.787 +94.5898 44.8358 130.121 +94.7273 45.7512 132.778 +94.602 46.5621 135.131 +94.4949 47.4029 137.571 +94.1886 48.1645 139.782 +94.4846 49.2591 142.958 +94.0497 49.998 145.103 +94.355 51.1571 148.467 +94.3514 52.1813 151.439 +93.95 53.0117 153.849 +93.8559 54.0424 156.84 +93.8591 55.1618 160.089 +94.1434 56.4861 163.932 +94.2699 57.7582 167.624 +93.8735 58.7463 170.492 +94.0214 60.1139 174.461 +93.6123 61.1661 177.514 +93.5484 62.4842 181.34 +93.7653 64.0414 185.859 +93.4832 65.3093 189.539 +93.5548 66.8769 194.088 +93.5901 68.4797 198.74 +93.5067 70.0578 203.32 +93.3847 71.6703 208 +93.6044 73.6185 213.653 +93.5018 75.392 218.8 +93.4945 77.3222 224.402 +93.3907 79.2576 230.019 +93.0851 81.1067 235.385 +92.6191 82.8991 240.587 +92.9652 85.5238 248.205 +92.559 87.5713 254.147 +92.6847 90.2407 261.894 +92.2416 92.4836 268.403 +88.197 91.1268 264.465 +87.2145 92.9319 269.704 +87.5903 96.331 279.569 +91.2084 103.622 300.729 +91.7429 107.77 312.767 +91.8031 111.614 323.924 +91.589 115.372 334.829 +91.3739 119.39 346.489 +91.2538 123.826 359.364 +91.6676 129.35 375.396 +104.216 153.142 444.443 +101.274 155.216 450.464 +95.6368 153.136 444.427 +92.5996 155.193 450.396 +90.0243 158.237 459.231 +89.5677 165.481 480.254 +86.7655 168.91 490.205 +87.9787 180.959 525.174 +86.4537 188.451 546.918 +82.6967 191.69 556.318 +76.0707 188.236 546.293 +72.2563 191.711 556.378 +65.7145 187.895 545.304 +61.5986 190.926 554.101 +55.5139 187.819 545.082 +51.2824 190.955 554.185 +45.3101 187.554 544.313 +40.954 190.795 553.721 +35.1762 187.36 543.751 +30.6427 190.479 552.802 +25.0811 187.141 543.115 +20.4337 190.624 553.222 +15.023 186.897 542.406 +10.1887 190.157 551.868 +5.00816 186.954 542.572 +3.16414e-14 189.893 551.102 +-4.99507 186.465 541.154 +-10.187 190.125 551.774 +-14.9758 186.311 540.706 +-20.3115 189.484 549.915 +-24.9939 186.49 541.226 +-30.5014 189.6 550.252 +-34.9442 186.124 540.165 +-40.661 189.43 549.759 +-44.9806 186.19 540.355 +-50.8292 189.268 549.287 +-54.9196 185.808 539.248 +-60.961 188.95 548.365 +-64.9334 185.662 538.823 +-71.1717 188.833 548.026 +-74.9873 185.555 538.513 +-81.3606 188.593 547.33 +-84.9165 185.101 537.194 +-91.5924 188.392 546.745 +-95.1004 185.136 537.296 +-101.897 188.259 546.36 +-105.132 184.791 536.296 +-112.138 187.939 545.431 +-115.534 184.995 536.888 +-122.709 188.07 545.81 +-125.838 184.914 536.653 +-133.666 188.613 547.387 +-137.733 186.895 542.402 +-142.129 185.706 538.952 +-142.216 179.145 519.909 +-142.143 172.818 501.547 +-115.42 135.584 393.488 +-112.019 127.265 369.346 +-114.771 126.224 366.322 +-117.709 125.425 364.005 +-121.666 125.707 364.824 +-125.585 125.914 365.424 +-1039.59 1012.17 2937.5 +-1066.66 1009.18 2928.81 +-1093.65 1006.11 2919.9 +-1120.7 1003.08 2911.12 +-1147.52 999.859 2901.76 +-1174.26 996.558 2892.18 +-466.153 385.519 1118.84 +-1227.4 989.672 2872.2 +-161.148 126.741 367.823 +-164.068 125.918 365.435 +-168.033 125.895 365.367 +-171.521 125.501 364.226 +-141.535 101.175 293.628 +-142.253 99.3812 288.421 +-143.532 98.0322 284.506 +-147.819 98.7329 286.54 +-433.972 283.557 822.93 +-435.195 278.249 807.525 +-436.306 273.042 792.415 +-437.547 268.081 778.016 +-439.797 263.878 765.819 +-441.274 259.341 752.651 +-443.28 255.241 740.753 +-445.5 251.376 729.535 +-447.801 247.657 718.744 +-449.268 243.583 706.918 +-452.014 240.296 697.38 +-454.088 236.736 687.05 +-456.651 233.513 677.695 +-458.477 229.993 667.48 +-461.364 227.078 659.02 +-463.235 223.733 649.31 +-465.756 220.769 640.71 +-451.29 209.963 609.35 +-455.794 208.168 604.14 +-457.297 205.046 595.079 +-459.679 202.377 587.332 +-466.226 201.557 584.952 +-468.929 199.086 577.782 +-471.843 196.744 570.985 +-475.601 194.784 565.296 +-135.304 54.4321 157.971 +-135.294 53.4675 155.172 +-482.733 187.417 543.915 +-486.631 185.616 538.69 +-488.895 183.218 531.729 +-491.995 181.162 525.764 +-494.22 178.812 518.944 +-497.167 176.752 512.964 +-499.018 174.331 505.94 +-502.43 172.481 500.568 +-504.808 170.296 494.227 +-508.44 168.552 489.167 +-506.218 164.912 478.603 +-526.165 168.444 488.854 +-516.918 162.62 471.951 +-520.529 160.92 467.016 +-522.918 158.856 461.028 +-140.673 41.9931 121.871 +-142.609 41.8312 121.401 +-142.676 41.122 119.343 +-142.263 40.2873 116.921 +-141.436 39.3524 114.207 +-142.714 39.0116 113.218 +-145.683 39.1227 113.541 +-149.989 39.568 114.833 +-156.209 40.4786 117.476 +-156.814 39.9127 115.833 +-157.957 39.485 114.592 +-158.769 38.9758 113.114 +-160.852 38.7748 112.531 +-566.959 134.192 389.449 +-567.113 131.781 382.451 +-586.349 133.751 388.169 +-576.888 129.164 374.855 +-380.445 83.5979 242.615 +-381.503 82.2612 238.736 +-381.008 80.606 233.932 +-383.153 79.5195 230.779 +-381.367 77.6333 225.305 +-381.301 76.1204 220.914 +-383.325 75.0336 217.76 +-383.77 73.6435 213.726 +-380.618 71.5886 207.762 +-381.129 70.247 203.869 +-379.672 68.5608 198.975 +-381.67 67.5099 195.925 +-380.815 65.9634 191.437 +-382.036 64.7881 188.026 +-380.371 63.1377 183.236 +-379.721 61.676 178.994 +-381.358 60.5941 175.854 +-379.808 59.0167 171.276 +-381.012 57.8797 167.977 +-380.91 56.5512 164.121 +-380.218 55.1481 160.049 +-380.855 53.948 156.566 +-381.365 52.7361 153.049 +-379.714 51.2385 148.703 +-380.887 50.1325 145.493 +-115.093 14.7693 42.863 +-113.897 14.2431 41.3358 +-111.183 13.5422 39.3019 +-110.602 13.1142 38.0598 +-109.252 12.6036 36.5777 +-108.64 12.1864 35.3671 +-109.247 11.9081 34.5594 +-108.801 11.5166 33.423 +-109.01 11.197 32.4957 +-108.541 10.8105 31.3739 +-109.114 10.5293 30.5577 +-109.872 10.2636 29.7866 +-109.372 9.88121 28.677 +-110.309 9.6289 27.9447 +-110.466 9.30681 27.0099 +-110.808 9.00029 26.1204 +-111.434 8.71533 25.2934 +-112.053 8.42755 24.4582 +-113.641 8.20739 23.8192 +-115.226 7.97883 23.1559 +-117.983 7.81982 22.6944 +-125.452 7.9441 23.0551 +-159.877 9.65314 28.015 +-160.622 9.22654 26.777 +-163.033 8.88786 25.7941 +-165.043 8.51577 24.7142 +-857.675 41.7576 121.188 +-865.989 39.6488 115.068 +-380.616 16.3241 47.3755 +-380.641 15.2256 44.1873 +-899.779 33.3972 96.9245 +-404.174 13.839 40.163 +-402.339 12.6207 36.6275 +-404.754 11.5361 33.4796 +-404.15 10.362 30.0722 +-404.113 9.20578 26.7168 +-403.746 8.04467 23.347 +-144.801 2.4722 7.17473 +-403.516 5.73943 16.6568 +-402.755 4.58183 13.2973 +-147.15 1.25528 3.64305 +-146.878 0.835203 2.4239 +-146.094 0.415344 1.2054 +119.8 1.77636e-15 -1.13687e-13 +119.895 0.34977 0.986116 +119.882 0.699513 1.97216 +119.759 1.04833 2.95559 +120.427 1.40582 3.96346 +120.485 1.75853 4.95787 +120.335 2.10819 5.94367 +120.275 2.45915 6.93314 +120.306 2.81225 7.92866 +120.627 3.17359 8.94739 +120.54 3.52534 9.93911 +120.443 3.87685 10.9301 +120.636 4.23855 11.9499 +120.719 4.59788 12.9629 +120.495 4.94577 13.9438 +120.956 5.32328 15.0081 +120.714 5.67128 15.9892 +120.462 6.01827 16.9675 +120.992 6.40604 18.0608 +120.721 6.75324 19.0396 +120.442 7.09936 20.0154 +121.039 7.49917 21.1426 +120.936 7.85836 22.1553 +120.531 8.19753 23.1115 +121.192 8.61138 24.2783 +120.865 8.95734 25.2537 +120.627 9.30958 26.2468 +120.477 9.66894 27.2599 +121.19 10.1009 28.4777 +120.922 10.454 29.4734 +121.224 10.8583 30.6131 +120.936 11.2115 31.609 +121.503 11.6468 32.8362 +121.291 12.0103 33.861 +120.877 12.3539 34.8298 +121.313 12.7865 36.0493 +121.069 13.1502 37.0748 +121.385 13.5771 38.2784 +121.499 13.9851 39.4287 +121.318 14.3614 40.4894 +121.69 14.8062 41.7435 +121.674 15.2074 42.8748 +121.926 15.6457 44.1104 +119.186 15.6945 44.2479 +115.249 15.5657 43.8848 +113.175 15.671 44.1818 +109.632 15.5565 43.8589 +107.021 15.5558 43.8569 +103.596 15.4187 43.4704 +101.825 15.5124 43.7346 +98.5157 15.3568 43.2958 +96.8474 15.4421 43.5363 +97.3394 15.8706 44.7444 +97.0109 16.1688 45.5852 +97.4761 16.603 46.8093 +98.3695 17.1182 48.2619 +97.8306 17.3888 49.0249 +96.6699 17.546 49.4679 +96.9079 17.957 50.6266 +96.2613 18.206 51.3288 +96.5618 18.6366 52.5427 +96.761 19.0533 53.7176 +97.0313 19.4898 54.9482 +96.5189 19.7721 55.7441 +96.6775 20.1947 56.9354 +96.1466 20.4759 57.7284 +97.1181 21.0833 59.4409 +96.3972 21.3289 60.1333 +96.5 21.7589 61.3455 +95.8459 22.0206 62.0834 +96.0046 22.472 63.3559 +96.147 22.9259 64.6356 +96.1921 23.3627 65.8671 +96.3824 23.8412 67.2163 +96.3154 24.2623 68.4035 +96.3131 24.7052 69.652 +95.6645 24.9852 70.4415 +95.6347 25.4298 71.695 +95.7444 25.9182 73.0719 +95.7586 26.3879 74.3961 +96.2918 27.01 76.1501 +96.2674 27.4853 77.49 +95.6217 27.787 78.3407 +96.091 28.4193 80.1234 +96.0143 28.8998 81.4782 +95.9198 29.3821 82.8378 +95.7342 29.8432 84.1377 +95.6769 30.3514 85.5707 +96.1757 31.0473 87.5327 +95.9322 31.5142 88.8489 +95.813 32.0292 90.3009 +95.604 32.5221 91.6905 +95.9323 33.2085 93.6258 +95.6813 33.7053 95.0265 +96.0936 34.4478 97.1197 +95.7311 34.9238 98.4618 +95.3511 35.4005 99.8058 +95.0197 35.9026 101.221 +95.719 36.8092 103.777 +95.339 37.316 105.206 +95.2611 37.9511 106.997 +94.8393 38.4596 108.43 +95.5938 39.4621 111.257 +94.9335 39.8967 112.482 +95.0581 40.6726 114.669 +94.9668 41.3726 116.643 +94.9062 42.102 118.699 +94.8148 42.8341 120.763 +94.8098 43.6227 122.987 +94.4804 44.2789 124.837 +94.6975 45.2099 127.462 +94.5898 46.0078 129.711 +94.3358 46.7533 131.813 +94.5468 47.7515 134.627 +94.277 48.5301 136.822 +94.1886 49.4236 139.341 +94.4316 50.5184 142.428 +94.1542 51.3621 144.807 +94.355 52.4944 147.999 +93.7931 53.2285 150.069 +93.9 54.3687 153.283 +93.9544 55.5133 156.51 +93.8591 56.6038 159.585 +93.714 57.6983 162.67 +94.2229 59.2387 167.013 +93.9658 60.3415 170.123 +94.0668 61.7154 173.996 +93.6569 62.7952 177.04 +93.5922 64.1477 180.854 +93.4209 65.4742 184.593 +93.5677 67.0774 189.113 +93.5548 68.6252 193.477 +93.6308 70.3003 198.2 +93.5864 71.9503 202.852 +93.4238 73.5746 207.431 +93.5661 75.5122 212.894 +93.5767 77.425 218.287 +93.4578 79.312 223.607 +93.2832 81.2359 229.031 +93.1552 83.2897 234.821 +92.9611 85.3801 240.715 +92.9986 87.7909 247.512 +92.5916 89.892 253.435 +92.7164 92.6314 261.159 +90.7892 93.407 263.345 +88.1369 93.4451 263.453 +87.2437 95.393 268.944 +87.3063 98.5286 277.785 +90.3815 105.367 297.065 +91.9834 110.878 312.601 +91.8549 114.597 323.086 +91.6391 118.453 333.957 +91.3739 122.511 345.398 +91.2304 127.03 358.141 +90.8802 131.591 371 +101.9 153.653 433.197 +98.4462 154.827 436.508 +93.5235 153.667 433.238 +90.6534 155.903 439.541 +90.0426 162.406 457.877 +88.7342 168.227 474.286 +86.815 173.424 488.941 +89.1833 188.232 530.687 +84.4583 188.915 532.613 +80.1637 190.676 537.58 +74.3608 188.815 532.332 +69.8799 190.252 536.385 +64.2315 188.456 531.321 +59.7276 189.966 535.578 +54.287 188.469 531.357 +49.6003 189.52 534.319 +44.2823 188.091 530.291 +39.6217 189.413 534.019 +34.3642 187.82 529.527 +29.6797 189.315 533.743 +24.5272 187.792 529.447 +19.781 189.36 533.867 +14.6905 187.539 528.734 +9.87108 189.045 532.98 +4.89908 187.663 529.083 +3.07532e-14 189.074 533.061 +-4.89384 187.462 528.518 +-9.86585 188.945 532.698 +-14.68 187.405 528.357 +-19.7077 188.658 531.889 +-24.3963 186.79 526.622 +-29.5855 188.714 532.048 +-34.2177 187.02 527.27 +-39.3915 188.313 530.916 +-43.9763 186.791 526.626 +-49.2953 188.354 531.033 +-53.7215 186.506 525.823 +-59.1527 188.138 530.422 +-63.5862 186.563 525.983 +-69.0024 187.864 529.65 +-73.3166 186.164 524.857 +-78.9111 187.697 529.18 +-83.1132 185.906 524.131 +-88.933 187.704 529.198 +-93.1034 185.986 524.357 +-98.719 187.156 527.654 +-102.963 185.711 523.579 +-108.761 187.044 527.338 +-112.862 185.442 522.821 +-118.988 187.133 527.589 +-123.046 185.538 523.094 +-129.122 186.964 527.113 +-133.788 186.287 525.206 +-138.162 185.242 522.257 +-140.714 181.886 512.797 +-142.195 177.4 500.15 +-114.699 138.259 389.796 +-112.377 131.01 369.36 +-115.026 129.812 365.982 +-118.235 129.28 364.482 +-121.906 129.248 364.394 +-126.295 129.937 366.336 +-1039.59 1038.63 2928.25 +-1066.66 1035.56 2919.59 +-1093.65 1032.41 2910.71 +-1120.56 1029.18 2901.59 +-1147.52 1026 2892.62 +-1174.26 1022.61 2883.07 +-467.106 396.406 1117.6 +-159.882 132.285 372.956 +-161.722 130.517 367.97 +-164.498 129.548 365.238 +-168.272 129.369 364.735 +-172.497 129.515 365.146 +-141.784 104.003 293.218 +-142.127 101.888 287.257 +-144.006 100.927 284.546 +-148.476 101.765 286.909 +-434.641 291.418 821.604 +-435.558 285.761 805.654 +-437.23 280.773 791.591 +-438.439 275.65 777.147 +-440.656 271.305 764.898 +-441.855 266.471 751.27 +-443.378 261.971 738.584 +-445.95 258.207 727.972 +-448.207 254.362 717.131 +-450.349 250.552 706.388 +-452.902 247.062 696.55 +-454.989 243.407 686.245 +-457.564 240.097 676.913 +-459.675 236.622 667.117 +-462.247 233.46 658.202 +-463.962 229.941 648.28 +-466.492 226.899 639.702 +-468.669 223.749 630.823 +-471.124 220.795 622.494 +-456.474 210.028 592.138 +-460.155 207.882 586.089 +-463.157 205.464 579.271 +-465.885 202.964 572.224 +-472.459 202.151 569.93 +-475.912 200.006 563.884 +-478.472 197.519 556.872 +-482.02 195.471 551.097 +-135.628 54.0328 152.336 +-135.475 53.0252 149.496 +-489.748 188.335 530.979 +-492.525 186.098 524.672 +-495.224 183.859 518.36 +-497.91 181.644 512.113 +-500.723 179.5 506.069 +-503.531 177.377 500.085 +-506.267 175.253 494.095 +-509.491 173.316 488.635 +-509.046 170.168 479.761 +-523.668 172.028 485.003 +-518.212 167.289 471.642 +-2376.69 753.952 2125.64 +-524.234 163.419 460.732 +-141.041 43.2035 121.805 +-142.312 42.8354 120.767 +-143.125 42.33 119.342 +-141.659 41.165 116.058 +-141.512 40.4028 113.909 +-142.408 39.9455 112.62 +-146.454 40.358 113.783 +-153.02 41.4227 116.784 +-156.365 41.5782 117.223 +-156.42 40.8531 115.178 +-158.274 40.5987 114.461 +-159.567 40.1959 113.325 +-161.093 39.8479 112.344 +-581.441 141.217 398.138 +-568.253 135.498 382.013 +-573.406 134.218 378.406 +-577.3 132.635 373.942 +-579.746 130.722 368.547 +-583.887 129.191 364.233 +-382.182 82.9678 233.914 +-382.731 81.5087 229.8 +-383.063 80.0171 225.594 +-381.045 78.0581 220.072 +-380.239 76.3753 215.327 +-381.616 75.1445 211.857 +-381.917 73.7107 207.815 +-380.607 71.9848 202.949 +-380.11 70.434 198.577 +-381.758 69.2907 195.353 +-379.667 67.4839 190.259 +-380.173 66.1574 186.52 +-381.351 64.955 183.13 +-381.6 63.6015 179.314 +-379.651 61.8996 174.515 +-381.072 60.761 171.305 +-381.012 59.3928 167.448 +-380.91 58.0295 163.604 +-380.674 56.6576 159.737 +-380.121 55.2516 155.772 +-380.905 54.0495 152.383 +-380.269 52.6548 148.451 +-379.404 51.2428 144.47 +-114.348 15.0574 42.4517 +-112.777 14.4716 40.8003 +-111.37 13.9197 39.2442 +-110.978 13.5028 38.0688 +-110.289 13.0558 36.8086 +-108.924 12.5377 35.3478 +-108.488 12.1346 34.2114 +-108.801 11.8176 33.3178 +-109.391 11.53 32.5068 +-109.497 11.1909 31.5507 +-108.922 10.7855 30.408 +-109.776 10.5227 29.6669 +-109.372 10.1395 28.5866 +-109.439 9.80275 27.6372 +-110.659 9.56681 26.972 +-111.584 9.30025 26.2205 +-111.434 8.94316 25.2137 +-113.027 8.72303 24.5931 +-114.422 8.47981 23.9074 +-114.639 8.14572 22.9655 +-118.669 8.0709 22.7545 +-125.157 8.13261 22.9285 +-159.582 9.8872 27.8753 +-160.524 9.46195 26.6763 +-161.06 9.00985 25.4018 +-3236.16 171.342 483.071 +-857.872 42.8592 120.834 +-867.376 40.7505 114.889 +-380.715 16.7553 47.2386 +-382.031 15.6807 44.2089 +-900.673 34.3044 96.7154 +-404.77 14.2217 40.0956 +-403.434 12.9859 36.6115 +-405.053 11.8464 33.3988 +-404.449 10.6407 29.9997 +-404.712 9.46044 26.6721 +-404.744 8.27539 23.331 +-150.394 2.6348 7.42837 +-404.215 5.89966 16.6331 +-403.854 4.71444 13.2916 +-147.849 1.29422 3.64884 +-147.078 0.858203 2.41956 +-145.694 0.425035 1.19831 +119.8 1.77636e-15 -1.13687e-13 +119.795 0.358354 0.982104 +119.982 0.717876 1.96741 +120.559 1.08213 2.96568 +120.327 1.44032 3.94733 +120.485 1.80318 4.9418 +120.335 2.16172 5.92441 +120.275 2.52159 6.91068 +120.306 2.88366 7.90296 +120.627 3.25418 8.9184 +120.54 3.61487 9.9069 +120.443 3.9753 10.8947 +120.636 4.34618 11.9111 +120.719 4.71463 12.9209 +120.594 5.07554 13.91 +120.956 5.45846 14.9595 +120.615 5.81053 15.9243 +120.462 6.1711 16.9125 +120.992 6.56872 18.0022 +120.623 6.91907 18.9624 +120.54 7.28557 19.9668 +121.039 7.6896 21.0741 +120.838 8.05137 22.0656 +120.531 8.4057 23.0367 +120.41 8.77302 24.0433 +120.963 9.19224 25.1922 +120.627 9.54598 26.1617 +121.352 9.98649 27.369 +121.19 10.3574 28.3854 +120.922 10.7195 29.3779 +121.224 11.134 30.5139 +120.936 11.4962 31.5065 +120.35 11.8292 32.4191 +121.195 12.3055 33.7246 +120.781 12.6576 34.6894 +121.408 13.1215 35.9607 +121.165 13.4947 36.9837 +121.385 13.9219 38.1544 +121.31 14.318 39.2398 +121.318 14.726 40.3582 +121.69 15.1822 41.6083 +121.674 15.5936 42.7358 +121.179 15.9447 43.6981 +119.28 16.1056 44.139 +116.176 16.0894 44.0945 +113.175 16.069 44.0386 +109.632 15.9515 43.7168 +107.113 15.9645 43.7523 +103.596 15.8102 43.3296 +101.097 15.7926 43.2812 +98.6063 15.7612 43.1952 +96.6669 15.8047 43.3143 +96.6204 16.1534 44.2699 +97.0109 16.5794 45.4375 +97.2979 16.9935 46.5723 +98.2808 17.5371 48.0621 +97.0359 17.6856 48.4691 +97.2851 18.106 49.6214 +96.8204 18.3963 50.417 +97.1317 18.8372 51.6252 +96.5618 19.1099 52.3725 +96.8471 19.5545 53.5912 +96.2599 19.8259 54.3347 +97.2862 20.4354 56.0053 +96.6775 20.7075 56.7509 +96.9057 21.1616 57.9955 +96.1955 21.4134 58.6854 +96.3972 21.8706 59.9384 +96.5 22.3114 61.1467 +95.9283 22.5992 61.9355 +96.0046 23.0426 63.1506 +96.147 23.508 64.4261 +96.1921 23.9559 65.6537 +96.3021 24.4263 66.9426 +96.3953 24.8991 68.2384 +96.3924 25.3534 69.4835 +96.2949 25.7885 70.6759 +96.3391 26.2676 71.989 +96.3661 26.7489 73.308 +96.3759 27.2324 74.6331 +95.679 27.5196 75.4203 +96.2674 28.1832 77.2389 +96.2255 28.6725 78.5798 +96.091 29.141 79.8637 +96.0143 29.6337 81.2142 +95.9935 30.1513 82.6328 +95.8073 30.6244 83.9292 +95.6769 31.1222 85.2934 +96.1757 31.8358 87.2491 +96.0035 32.3385 88.6268 +95.813 32.8426 90.0083 +95.604 33.348 91.3934 +95.9323 34.0518 93.3224 +95.6813 34.5613 94.7186 +95.4798 35.097 96.1869 +95.7311 35.8107 98.1427 +95.418 36.3248 99.5518 +95.5498 37.0197 101.456 +95.1942 37.5369 102.874 +95.339 38.2636 104.865 +95.2611 38.9149 106.65 +94.7757 39.4098 108.007 +95.0274 40.2246 110.24 +94.9335 40.9098 112.117 +95.0581 41.7054 114.298 +94.9059 42.3961 116.191 +94.485 42.9795 117.79 +94.8148 43.9218 120.372 +94.751 44.703 122.513 +94.7127 45.5147 124.738 +94.6975 46.3579 127.049 +94.5898 47.1762 129.291 +94.3358 47.9406 131.386 +94.4916 48.9353 134.112 +94.277 49.7624 136.379 +94.1886 50.6787 138.89 +94.4846 51.8304 142.046 +94.1542 52.6664 144.338 +94.355 53.8274 147.519 +94.3514 54.9051 150.473 +94.35 56.0164 153.519 +93.9052 56.8932 155.922 +94.2955 58.3113 159.808 +94.0957 59.4044 162.804 +93.8004 60.4704 165.725 +93.9658 61.8738 169.571 +94.0214 63.2517 173.348 +93.6569 64.3898 176.467 +93.5484 65.7458 180.183 +93.464 67.1676 184.08 +93.5254 68.7496 188.415 +93.5548 70.3678 192.85 +93.6308 72.0855 197.557 +93.5465 73.7459 202.108 +93.4629 75.4745 206.845 +93.5278 77.3978 212.116 +93.1272 79.0096 216.534 +93.4578 81.3261 222.882 +93.3549 83.3629 228.464 +93.1201 85.3726 233.972 +92.9953 87.5804 240.023 +92.9652 89.9881 246.621 +92.5916 92.1746 252.614 +92.7164 94.9837 260.312 +90.4802 95.453 261.598 +88.2271 95.9164 262.868 +87.2145 97.7828 267.984 +87.1927 100.899 276.525 +89.6924 107.219 293.845 +91.7429 113.396 310.772 +91.5961 117.175 321.131 +91.7142 121.56 333.147 +91.3255 125.555 344.096 +91.2304 130.256 356.98 +90.8127 134.833 369.522 +101.727 157.287 431.06 +97.3443 156.982 430.224 +93.3441 157.267 431.005 +90.6915 159.929 438.301 +90.0426 166.53 456.393 +88.2827 171.621 470.343 +86.8315 177.862 487.449 +88.9799 192.572 527.761 +84.3696 193.508 530.329 +79.2452 193.278 529.698 +74.2433 193.304 529.769 +69.0634 192.804 528.399 +64.2315 193.242 529.599 +59.0272 192.506 527.583 +54.2104 192.982 528.888 +49.121 192.454 527.44 +44.3059 192.97 528.853 +39.2101 192.206 526.76 +34.3459 192.487 527.53 +29.3709 192.103 526.478 +24.5054 192.389 527.262 +19.5647 192.044 526.316 +14.68 192.164 526.644 +9.76113 191.686 525.336 +4.88861 192.017 526.241 +2.93099e-14 191.818 525.697 +-4.89384 192.223 526.805 +-9.75066 191.481 524.772 +-14.6565 191.855 525.799 +-19.5088 191.496 524.813 +-24.4094 191.636 525.197 +-29.2401 191.247 524.132 +-34.1628 191.461 524.717 +-38.9729 191.043 523.573 +-43.9763 191.535 524.92 +-48.7201 190.884 523.136 +-53.7215 191.243 524.119 +-58.4941 190.767 522.817 +-63.5183 191.096 523.718 +-68.3078 190.695 522.618 +-73.3166 190.891 523.156 +-78.0483 190.359 521.697 +-83.1576 190.728 522.71 +-87.8692 190.168 521.174 +-93.0208 190.54 522.194 +-97.8681 190.255 521.412 +-102.963 190.426 521.883 +-107.578 189.707 519.912 +-112.862 190.151 521.127 +-117.595 189.638 519.723 +-123.046 190.25 521.399 +-127.817 189.774 520.096 +-133.671 190.851 523.047 +-139.008 191.11 523.755 +-140.613 186.372 510.772 +-142.195 181.905 498.53 +-114.699 141.769 388.533 +-112.405 134.37 368.254 +-115.282 133.404 365.607 +-118.469 132.825 364.019 +-122.207 132.858 364.109 +-126.821 133.791 366.667 +-1039.59 1065.01 2918.76 +-1066.66 1061.86 2910.12 +-1093.65 1058.63 2901.28 +-1120.56 1055.31 2892.19 +-1147.52 1052.05 2883.25 +-1174.26 1048.58 2873.73 +-467.399 406.726 1114.67 +-159.133 135.009 370.006 +-161.837 133.926 367.038 +-164.849 133.122 364.833 +-168.711 133.001 364.501 +-172.253 132.616 363.448 +-142.032 106.831 292.78 +-142.127 104.476 286.326 +-144.092 103.551 283.793 +-148.608 104.441 286.232 +-434.507 298.726 818.689 +-435.967 293.292 803.797 +-436.537 287.447 787.776 +-438.862 282.922 775.375 +-439.893 277.712 761.097 +-442.292 273.508 749.575 +-444.068 269.042 737.336 +-446.4 265.031 726.345 +-448.664 261.087 715.535 +-450.607 257.061 704.502 +-452.902 253.336 694.293 +-455.307 249.763 684.499 +-457.081 245.934 674.006 +-459.675 242.631 664.955 +-461.75 239.132 655.364 +-464.466 236.036 646.881 +-466.832 232.83 638.094 +-469.243 229.712 629.548 +-470.95 226.318 620.248 +-465.291 219.521 601.619 +-460.155 213.161 584.189 +-462.856 210.545 577.019 +-465.52 207.955 569.922 +-471.72 206.96 567.195 +-475.726 205.005 561.836 +-479.102 202.801 555.797 +-481.448 200.197 548.66 +-135.821 55.4837 152.059 +-135.215 54.2675 148.726 +-490.404 193.376 529.967 +-493.321 191.132 523.817 +-495.826 188.757 517.309 +-498.18 186.357 510.731 +-501.61 184.384 505.322 +-503.531 181.882 498.465 +-506.267 179.703 492.494 +-509.561 177.742 487.118 +-509.965 174.805 479.07 +-522.813 176.108 482.64 +-518.212 171.537 470.114 +-521.399 169.603 464.813 +-524.527 167.663 459.496 +-140.894 44.2543 121.283 +-142.089 43.8543 120.187 +-143.125 43.4049 118.955 +-141.659 42.2103 115.682 +-141.512 41.4288 113.54 +-142.561 41.0041 112.376 +-146.84 41.4919 113.713 +-153.175 42.5178 116.524 +-155.661 42.4421 116.317 +-156.184 41.8271 114.631 +-158.274 41.6297 114.09 +-159.328 41.1546 112.788 +-161.897 41.0637 112.539 +-581.521 144.824 396.903 +-568.497 138.998 380.938 +-574.881 137.98 378.149 +-576.559 135.828 372.251 +-580.243 134.156 367.668 +-583.887 132.472 363.053 +-381.344 84.8879 232.644 +-382.815 83.5966 229.105 +-383.403 82.1213 225.062 +-382.58 80.3625 220.242 +-380.497 78.3676 214.774 +-381.271 76.9831 210.98 +-381.571 75.5139 206.953 +-380.345 73.762 202.152 +-380.634 72.3223 198.207 +-381.319 70.9684 194.496 +-380.462 69.3422 190.039 +-381.415 68.0592 186.523 +-378.054 66.0286 180.958 +-380.616 65.0482 178.271 +-380.549 63.6216 174.361 +-380.44 62.2004 170.467 +-381.012 60.901 166.905 +-381.183 59.5456 163.191 +-380.309 58.0405 159.066 +-380.947 56.7777 155.605 +-379.8 55.2613 151.449 +-380.546 54.031 148.077 +-380.794 52.7367 144.53 +-114.627 15.4774 42.4175 +-113.057 14.876 40.7692 +-111.37 14.2732 39.117 +-110.79 13.8222 37.8812 +-109.441 13.2844 36.4071 +-108.924 12.8561 35.2333 +-109.247 12.5297 34.339 +-108.42 12.0753 33.0937 +-109.201 11.8021 32.3449 +-108.636 11.3848 31.2012 +-109.018 11.0692 30.3361 +-109.68 10.7804 29.5448 +-110.239 10.4794 28.7199 +-110.309 10.1315 27.7664 +-110.562 9.80118 26.8611 +-110.711 9.4618 25.931 +-112.211 9.2343 25.3075 +-112.929 8.93683 24.4923 +-114.422 8.69514 23.8299 +-115.421 8.40957 23.0473 +-118.179 8.24168 22.5871 +-125.845 8.38493 22.9797 +-159.681 10.1445 27.802 +-160.524 9.70222 26.5899 +-161.455 9.26127 25.3814 +-3236.16 175.693 481.505 +-857.477 43.9273 120.387 +-867.376 41.7853 114.517 +-380.417 17.1673 47.0487 +-381.138 16.0412 43.9626 +-900.673 35.1755 96.402 +-404.074 14.5577 39.8969 +-404.131 13.3386 36.5559 +-404.355 12.1263 33.2333 +-404.15 10.9028 29.8803 +-403.116 9.66242 26.4808 +-403.246 8.45413 23.1694 +-404.046 7.25835 19.8922 +-403.715 6.04201 16.5587 +-404.354 4.84012 13.2648 +-147.649 1.3253 3.6321 +-146.378 0.875807 2.40024 +-146.294 0.437621 1.19934 +119.8 1.77636e-15 -1.13687e-13 +119.895 0.367505 0.979645 +119.882 0.734981 1.95922 +119.759 1.10148 2.93619 +120.327 1.47587 3.93418 +120.485 1.84769 4.92533 +120.235 2.21324 5.89977 +120.275 2.58384 6.88765 +120.206 2.95239 7.8701 +120.627 3.3345 8.88868 +120.54 3.70409 9.87388 +120.443 4.07342 10.8584 +120.636 4.45346 11.8715 +119.825 4.79522 12.7825 +120.495 5.19654 13.8523 +120.956 5.5932 14.9096 +120.615 5.95395 15.8713 +120.561 6.32862 16.87 +120.992 6.73086 17.9422 +120.721 7.09565 18.9147 +120.54 7.4654 19.9003 +120.154 7.82181 20.8503 +120.838 8.25011 21.992 +120.629 8.62017 22.9785 +120.312 8.98226 23.9437 +120.963 9.41913 25.1083 +120.627 9.78161 26.0745 +121.352 10.233 27.2778 +121.19 10.613 28.2908 +120.922 10.9841 29.28 +121.32 11.418 30.4365 +120.936 11.78 31.4015 +121.407 12.2277 32.5949 +121.195 12.6093 33.6122 +120.781 12.97 34.5738 +121.408 13.4453 35.8408 +121.069 13.817 36.8315 +121.385 14.2656 38.0273 +121.405 14.6828 39.1396 +121.318 15.0895 40.2237 +121.69 15.5569 41.4696 +121.674 15.9785 42.5934 +121.926 16.439 43.8209 +119 16.4645 43.8889 +115.342 16.3681 43.632 +113.175 16.4656 43.8919 +109.816 16.3727 43.6442 +107.021 16.3445 43.5691 +103.596 16.2005 43.1852 +101.006 16.1678 43.0981 +98.5157 16.1354 43.0117 +96.3058 16.1343 43.0088 +97.7888 16.7523 44.656 +97.0109 16.9886 45.2861 +97.387 17.4289 46.4596 +97.5712 17.8402 47.5561 +97.654 18.2376 48.6153 +96.6699 18.4356 49.1433 +96.8204 18.8504 50.249 +97.0447 19.2848 51.407 +96.5618 19.5816 52.1979 +96.8471 20.0372 53.4126 +96.2599 20.3152 54.1537 +96.4336 20.7563 55.3294 +96.6775 21.2186 56.5618 +96.1466 21.5141 57.3496 +96.1955 21.9419 58.4899 +96.3972 22.4104 59.7387 +96.0026 22.7443 60.6287 +96.67 23.3361 62.2064 +96.0046 23.6114 62.9401 +96.2285 24.1087 64.2658 +96.1921 24.5473 65.4349 +96.3824 25.0501 66.7753 +95.5967 25.3023 67.4475 +96.3131 25.9578 69.1949 +96.3737 26.4467 70.498 +95.6347 26.7192 71.2245 +95.7444 27.2323 72.5924 +95.6814 27.7035 73.8483 +96.2918 28.3795 75.6504 +96.3434 28.9017 77.0424 +96.2255 29.3802 78.318 +96.091 29.8603 79.5976 +96.0886 30.3887 81.0061 +95.9198 30.8719 82.2942 +96.4656 31.5959 84.2242 +96.3297 32.108 85.5892 +96.1757 32.6216 86.9583 +95.9322 33.1121 88.2658 +95.813 33.6532 89.7084 +96.1648 34.3715 91.6231 +95.9323 34.8923 93.0114 +95.6813 35.4143 94.4029 +96.0254 36.1688 96.414 +95.7311 36.6946 97.8157 +96.0202 37.4565 99.8465 +95.6823 37.9861 101.258 +95.1286 38.4371 102.461 +95.4039 39.2348 104.587 +95.1968 39.8484 106.223 +94.9029 40.4367 107.791 +95.0274 41.2175 109.872 +94.9957 41.947 111.817 +95.0581 42.7349 113.917 +94.9668 43.4704 115.878 +94.9062 44.2368 117.921 +94.8742 45.0341 120.046 +94.8098 45.8345 122.18 +94.7707 46.667 124.399 +94.6975 47.5022 126.625 +94.5898 48.3406 128.86 +94.895 49.4151 131.724 +94.602 50.2019 133.821 +94.3315 51.0202 136.003 +94.1886 51.9296 138.427 +94.4316 53.0799 141.493 +94.102 53.9362 143.776 +93.8914 54.8853 146.306 +93.8946 55.9878 149.245 +93.95 57.1557 152.358 +93.9544 58.3281 155.483 +94.2955 59.7506 159.275 +94.1434 60.9016 162.344 +93.8004 61.9631 165.173 +93.9658 63.4011 169.006 +94.0668 64.8446 172.854 +93.6569 65.9791 175.879 +93.5484 67.3686 179.582 +93.4209 68.794 183.382 +93.5254 70.4465 187.787 +93.5963 72.1367 192.293 +93.6308 73.8648 196.899 +93.5864 75.5985 201.521 +93.4629 77.3375 206.156 +93.5661 79.341 211.497 +93.4643 81.2528 216.593 +93.4578 83.3335 222.139 +93.319 85.3875 227.615 +93.1552 87.5129 233.28 +92.9611 89.7092 239.135 +92.6648 91.9111 245.004 +92.5916 94.4499 251.772 +92.7482 97.3616 259.534 +90.851 98.2102 261.796 +87.8662 97.8818 260.92 +87.1852 100.163 267.001 +87.3063 103.524 275.962 +90.0232 110.271 293.945 +91.7429 116.195 309.736 +91.8808 120.441 321.056 +91.7142 124.56 332.037 +91.3739 128.722 343.131 +91.1838 133.403 355.609 +90.9252 138.332 368.747 +102.289 162.061 432 +97.8848 161.75 431.171 +94.0618 162.388 432.871 +90.7678 164.014 437.208 +90.0426 170.641 454.872 +88.5432 176.376 470.159 +86.4189 181.386 483.516 +89.2459 197.915 527.575 +84.8574 199.431 531.618 +79.7323 199.267 531.178 +74.8568 199.712 532.367 +69.4655 198.714 529.705 +64.5824 199.094 530.718 +59.3617 198.376 528.804 +54.5171 198.865 530.107 +49.3214 198.01 527.828 +44.4942 198.574 529.331 +39.4543 198.177 528.273 +34.5718 198.536 529.23 +29.5384 197.968 527.716 +24.645 198.261 528.498 +19.6554 197.697 526.995 +14.7769 198.206 528.353 +9.8292 197.787 527.236 +4.91217 197.705 527.016 +3.27516e-14 197.502 526.474 +-4.91217 197.705 527.016 +-9.81872 197.577 526.674 +-14.7429 197.75 527.136 +-19.5926 197.065 525.311 +-24.5534 197.524 526.534 +-29.4285 197.231 525.752 +-34.3825 197.449 526.333 +-39.2031 196.915 524.911 +-44.1646 197.103 525.411 +-49.0077 196.75 524.47 +-54.0187 197.047 525.261 +-58.8704 196.734 524.428 +-63.9259 197.07 525.322 +-68.6856 196.483 523.757 +-73.7473 196.752 524.476 +-78.438 196.032 522.555 +-83.6453 196.583 524.024 +-88.4324 196.111 522.766 +-93.648 196.56 523.962 +-98.2675 195.746 521.795 +-103.455 196.059 522.629 +-108.265 195.631 521.488 +-113.48 195.911 522.235 +-118.343 195.556 521.288 +-123.739 196.043 522.586 +-128.47 195.451 521.008 +-134.908 197.373 526.13 +-139.033 195.861 522.1 +-142.116 193.013 514.509 +-142.428 186.701 497.682 +-114.725 145.303 387.329 +-112.432 137.72 367.117 +-114.771 136.091 362.772 +-118.206 135.801 362 +-121.696 135.567 361.377 +-126.512 136.759 364.555 +-1039.59 1091.3 2909.03 +-1066.66 1088.07 2900.43 +-1093.65 1084.76 2891.61 +-1120.56 1081.36 2882.55 +-1147.52 1078.02 2873.64 +-1174.26 1074.46 2864.15 +-466.923 416.341 1109.83 +-159.545 138.7 369.728 +-161.722 137.134 365.555 +-164.693 136.278 363.272 +-168.272 135.929 362.342 +-172.578 136.146 362.92 +-141.908 109.372 291.549 +-142.127 107.054 285.372 +-143.92 105.981 282.509 +-148.345 106.83 284.773 +-434.106 305.817 815.207 +-435.331 300.093 799.95 +-436.814 294.729 785.649 +-438.064 289.378 771.385 +-440.322 284.845 759.302 +-442.098 280.136 746.75 +-443.772 275.499 734.39 +-446.4 271.573 723.924 +-448.055 267.168 712.182 +-450.349 263.256 701.753 +-452.745 259.5 691.74 +-454.989 255.749 681.742 +-457.403 252.182 672.234 +-459.675 248.62 662.739 +-461.75 245.034 653.18 +-464.298 241.775 644.492 +-466.152 238.23 635.042 +-468.899 235.209 626.99 +-470.834 231.847 618.028 +-457.885 221.359 590.07 +-460.512 218.592 582.694 +-462.435 215.545 574.572 +-467.164 213.841 570.029 +-472.335 212.346 566.043 +-475.788 210.092 560.037 +-478.661 207.616 553.436 +-135.103 57.5656 153.451 +-135.757 56.8266 151.481 +-486.826 200.206 533.683 +-490.01 197.991 527.778 +-492.128 195.376 520.808 +-495.224 193.182 514.958 +-497.91 190.854 508.752 +-500.723 188.601 502.748 +-503.531 186.371 496.804 +-506.475 184.215 491.055 +-508.86 181.878 484.828 +-510.248 179.219 477.738 +-523.241 180.602 481.426 +-517.565 175.552 467.962 +-521.617 173.862 463.458 +-523.503 171.466 457.07 +-141.041 45.3941 121.006 +-142.387 45.0306 120.037 +-142.376 44.2434 117.938 +-141.81 43.2983 115.419 +-141.664 42.4971 113.283 +-142.254 41.926 111.761 +-146.84 42.516 113.334 +-152.709 43.4345 115.782 +-156.13 43.621 116.279 +-156.42 42.9245 114.423 +-157.322 42.4005 113.026 +-159.328 42.1704 112.412 +-161.093 41.8684 111.607 +-2650.74 676.444 1803.17 +-567.276 142.123 378.853 +-574.226 141.225 376.459 +-576.559 139.181 371.011 +-579.746 137.35 366.129 +-583.637 135.684 361.688 +-382.434 87.2319 232.531 +-382.984 85.698 228.443 +-383.572 84.1856 224.411 +-382.239 82.2728 219.312 +-381.954 80.6096 214.879 +-381.529 78.9367 210.419 +-380.965 77.255 205.936 +-380.694 75.6519 201.663 +-380.285 74.0394 197.364 +-381.495 72.7538 193.938 +-381.257 71.2024 189.802 +-378.31 69.1716 184.388 +-381.707 68.3124 182.098 +-380.437 66.6226 177.594 +-378.932 64.9149 173.042 +-380.71 63.7814 170.02 +-381.193 62.4337 166.428 +-381.092 61.001 162.609 +-379.852 59.4018 158.346 +-380.947 58.1792 155.086 +-381.089 56.8174 151.456 +-378.606 55.0827 146.832 +-381.073 54.0778 144.153 +-114.348 15.8208 42.1731 +-113.057 15.2432 40.6333 +-111.277 14.6131 38.9538 +-109.944 14.0553 37.4668 +-109.535 13.624 36.317 +-108.829 13.1619 35.0853 +-109.247 12.839 34.2245 +-108.801 12.4168 33.0991 +-108.438 12.0089 32.0118 +-108.636 11.6658 31.0972 +-109.018 11.3424 30.235 +-109.776 11.0562 29.4722 +-109.468 10.663 28.424 +-110.116 10.3634 27.6255 +-110.562 10.0431 26.7716 +-110.614 9.68685 25.8219 +-111.434 9.39662 25.0483 +-113.027 9.16533 24.4317 +-114.422 8.90977 23.7505 +-115.324 8.60985 22.951 +-119.061 8.50813 22.6798 +-126.728 8.6522 23.0639 +-159.386 10.3757 27.6583 +-160.228 9.92341 26.4525 +-161.751 9.50726 25.3432 +-163.561 9.09902 24.255 +-857.477 45.0116 119.986 +-867.376 42.8167 114.135 +-380.814 17.6094 46.9408 +-380.641 16.4158 43.7591 +-900.673 36.0438 96.0807 +-404.87 14.9464 39.8422 +-403.235 13.6376 36.3533 +-402.961 12.3827 33.0083 +-404.051 11.1692 29.7734 +-404.512 9.93524 26.4841 +-403.945 8.67781 23.1322 +-404.445 7.44489 19.8456 +-403.715 6.19114 16.5035 +-403.854 4.95348 13.2043 +-146.25 1.34514 3.58568 +-145.178 0.890071 2.37263 +-145.794 0.446892 1.19126 +119.7 3.55271e-15 -1.13687e-13 +119.795 0.376015 0.975478 +119.882 0.752626 1.95251 +120.559 1.13546 2.94567 +120.327 1.5113 3.92071 +120.385 1.89048 4.90439 +120.235 2.26638 5.87956 +120.175 2.64367 6.85836 +121.104 3.04585 7.90172 +120.627 3.41456 8.85823 +120.44 3.78989 9.83195 +120.443 4.17121 10.8212 +120.636 4.56038 11.8308 +120.818 4.95105 12.8443 +120.594 5.32569 13.8162 +120.956 5.72747 14.8585 +120.714 6.10189 15.8299 +120.264 6.46458 16.7708 +120.992 6.89245 17.8808 +120.721 7.266 18.8499 +120.54 7.64463 19.8321 +120.154 8.00959 20.7789 +120.838 8.44817 21.9167 +120.629 8.82712 22.8998 +120.214 9.19042 23.8423 +120.865 9.63746 25.002 +120.627 10.0164 25.9852 +120.574 10.4115 27.01 +120.317 10.7895 27.9908 +120.922 11.2478 29.1797 +120.354 11.599 30.0908 +120.936 12.0628 31.294 +121.407 12.5212 32.4833 +121.195 12.912 33.4971 +121.642 13.3761 34.7009 +121.408 13.7681 35.7181 +121.069 14.1487 36.7054 +121.385 14.608 37.897 +121.405 15.0353 39.0055 +121.318 15.4518 40.0859 +121.69 15.9304 41.3276 +121.674 16.3621 42.4475 +121.085 16.7176 43.3698 +119.093 16.873 43.7728 +116.176 16.8823 43.7971 +112.251 16.7233 43.3844 +109.816 16.7658 43.4947 +107.113 16.7513 43.4571 +103.596 16.5894 43.0372 +101.006 16.556 42.9505 +98.5157 16.5228 42.8643 +96.8474 16.6146 43.1025 +97.0698 17.0283 44.1758 +97.0109 17.3965 45.131 +97.387 17.8473 46.3005 +98.3695 18.418 47.781 +97.654 18.6754 48.4488 +96.582 18.861 48.9304 +96.1207 19.1635 49.715 +97.0447 19.7478 51.2309 +96.5618 20.0517 52.0192 +96.761 20.5 53.1823 +96.2599 20.8029 53.9682 +96.5189 21.2734 55.1886 +96.6775 21.728 56.3681 +96.737 22.1659 57.5041 +96.9503 22.645 58.7469 +96.3972 22.9484 59.5341 +96.6658 23.4512 60.8385 +96.5876 23.876 61.9404 +96.0046 24.1782 62.7246 +96.147 24.6666 63.9915 +96.1921 25.1366 65.2108 +96.3021 25.6301 66.491 +96.3953 26.1262 67.778 +96.3131 26.581 68.9579 +96.3737 27.0816 70.2566 +95.6347 27.3606 70.9805 +96.3661 28.0672 72.8135 +96.3759 28.5745 74.1296 +95.679 28.8759 74.9115 +96.2674 29.5722 76.7179 +96.2255 30.0856 78.0497 +96.7651 30.7916 79.8814 +96.0886 31.1182 80.7287 +95.8461 31.5887 81.9493 +95.8073 32.1337 83.363 +95.6769 32.656 84.718 +96.1757 33.4047 86.6605 +95.9322 33.907 87.9635 +95.7423 34.4357 89.3351 +95.604 34.9915 90.7768 +96.0018 35.7559 92.76 +95.7501 36.2908 94.1477 +95.548 36.853 95.6061 +95.7311 37.5756 97.4806 +95.3511 38.0885 98.8112 +95.6823 38.8981 100.912 +95.1286 39.3599 102.11 +95.4039 40.1767 104.229 +95.2611 40.8327 105.931 +95.4753 41.6575 108.07 +94.9015 42.1513 109.351 +95.556 43.2073 112.091 +95.0581 43.7608 113.527 +94.9668 44.514 115.481 +94.9664 45.3276 117.591 +94.8148 46.0865 119.56 +94.751 46.9061 121.687 +94.5965 47.6992 123.744 +94.6401 48.6131 126.115 +94.6465 49.5307 128.495 +94.3358 50.3032 130.5 +94.5468 51.3772 133.286 +94.2226 52.1847 135.38 +94.1886 53.1763 137.953 +94.3786 54.3236 140.929 +94.102 55.2311 143.284 +94.4065 56.5112 146.604 +94.3514 57.611 149.458 +93.9 58.4969 151.756 +93.9544 59.7284 154.951 +93.8591 60.9017 157.995 +93.714 62.0792 161.049 +93.8474 63.4823 164.689 +93.9197 64.8911 168.344 +94.0668 66.4014 172.262 +93.6569 67.5631 175.276 +93.5922 69.0184 179.051 +93.4209 70.4455 182.754 +93.5254 72.1378 187.144 +93.5548 73.8358 191.549 +93.6308 75.6381 196.225 +93.5864 77.4135 200.83 +93.4238 79.1611 205.364 +93.5661 81.2458 210.772 +93.1647 82.9369 215.16 +93.4578 85.3341 221.379 +93.2832 87.404 226.748 +93.1552 89.6139 232.481 +92.9953 91.8967 238.404 +92.6648 94.1177 244.165 +92.559 96.6836 250.822 +92.7164 99.6649 258.556 +90.8201 100.534 260.811 +88.0166 100.403 260.472 +87.2145 102.602 266.176 +87.3063 106.01 275.017 +90.3539 113.333 294.015 +91.7697 119.019 308.766 +91.8808 123.333 319.957 +91.6641 127.481 330.72 +91.3739 131.813 341.956 +91.2071 136.641 354.481 +90.8802 141.583 367.303 +101.9 165.319 428.88 +98.2591 166.266 431.337 +93.7029 165.652 429.744 +90.5579 167.564 434.703 +90.0608 174.773 453.406 +88.6995 180.929 469.376 +86.4684 185.847 482.136 +89.2771 202.737 525.952 +84.6357 203.685 528.412 +79.8436 204.335 530.098 +74.5827 203.758 528.601 +69.563 203.77 528.631 +64.4239 203.373 527.602 +59.5499 203.782 528.663 +54.3541 203.03 526.713 +49.4522 203.301 527.415 +44.3765 202.803 526.122 +39.5031 203.186 527.116 +34.4619 202.656 525.741 +29.5855 203.043 526.747 +24.5664 202.374 525.01 +19.7008 202.911 526.402 +14.735 202.389 525.05 +9.83967 202.752 525.99 +4.90431 202.128 524.371 +3.07532e-14 202.351 524.95 +-4.90431 202.128 524.371 +-9.81349 202.212 524.59 +-14.7036 201.958 523.931 +-19.6449 202.336 524.91 +-24.4879 201.727 523.332 +-29.4599 202.182 524.511 +-34.3276 201.866 523.692 +-39.3287 202.289 524.789 +-44.0234 201.189 521.936 +-49.1384 202.011 524.069 +-53.8653 201.205 521.977 +-58.9645 201.779 523.467 +-63.6542 200.943 521.297 +-68.7831 201.485 522.704 +-73.5124 200.834 521.015 +-78.6328 201.236 522.059 +-83.3793 200.662 520.569 +-88.4793 200.926 521.253 +-93.2519 200.427 519.959 +-98.4585 200.835 521.018 +-103.182 200.236 519.463 +-108.589 200.928 521.259 +-112.962 199.698 518.069 +-118.634 200.744 520.78 +-123.371 200.153 519.248 +-128.919 200.844 521.042 +-134.138 200.957 521.334 +-138.96 200.458 520.04 +-141.565 196.881 510.759 +-142.273 190.974 495.436 +-114.725 148.791 386.003 +-112.405 140.992 365.77 +-115.026 139.668 362.335 +-118.235 139.096 360.85 +-121.936 139.096 360.852 +-126.481 140.008 363.217 +-1039.59 1117.49 2899.07 +-1066.66 1114.19 2890.49 +-1093.65 1110.8 2881.7 +-1120.56 1107.32 2872.68 +-1147.38 1103.77 2863.45 +-1174.26 1100.26 2854.35 +-467.619 426.973 1107.68 +-159.77 142.23 368.981 +-161.913 140.593 364.734 +-164.693 139.55 362.028 +-168.033 138.995 360.588 +-172.497 139.349 361.508 +-141.701 111.834 290.126 +-142.127 109.625 284.394 +-144.178 108.72 282.047 +-148.345 109.395 283.798 +-434.775 313.642 813.667 +-435.558 307.458 797.626 +-436.814 301.804 782.958 +-438.439 296.579 769.403 +-440.179 291.589 756.456 +-441.855 286.704 743.784 +-444.265 282.426 732.686 +-446.4 278.093 721.445 +-448.207 273.676 709.985 +-450.195 269.484 699.11 +-452.432 265.546 688.893 +-454.83 261.797 679.17 +-457.081 258.054 669.459 +-459.185 254.317 659.764 +-462.247 251.187 651.643 +-464.466 247.669 642.517 +-466.832 244.305 633.789 +-468.669 240.738 624.537 +-471.24 237.619 616.443 +-457.003 226.237 586.917 +-460.512 223.84 580.698 +-462.856 220.921 573.126 +-465.946 218.404 566.596 +-472.274 217.415 564.03 +-476.037 215.249 558.411 +-479.039 212.768 551.976 +-481.575 210.119 545.102 +-135.435 58.0531 150.605 +-135.865 57.2154 148.431 +-489.748 202.635 525.688 +-492.459 200.202 519.374 +-495.224 197.819 513.194 +-498.18 195.542 507.285 +-500.109 192.892 500.412 +-503.738 190.924 495.305 +-506.267 188.559 489.171 +-509.07 186.322 483.367 +-509.895 183.395 475.772 +-523.027 184.863 479.581 +-517.277 179.666 466.1 +-520.674 177.714 461.035 +-523.503 175.582 455.505 +-140.746 46.3868 120.339 +-142.312 46.0879 119.564 +-143.125 45.5441 118.153 +-141.734 44.3144 114.963 +-141.588 43.4939 112.834 +-142.331 42.9555 111.438 +-146.84 43.5368 112.945 +-153.409 44.6812 115.915 +-156.365 44.7352 116.055 +-157.366 44.2208 114.72 +-158.036 43.6155 113.15 +-159.567 43.2479 112.196 +-161.334 42.9379 111.392 +-581.198 151.877 394.007 +-568.497 145.848 378.368 +-574.226 144.615 375.17 +-576.559 142.523 369.74 +-580.492 140.828 365.344 +-583.887 139.001 360.603 +-382.434 89.3261 231.735 +-382.056 87.5429 227.109 +-382.809 86.0355 223.198 +-383.091 84.436 219.049 +-382.297 82.619 214.335 +-381.529 80.8318 209.698 +-380.445 79.0018 204.951 +-381.216 77.5746 201.248 +-379.935 75.7471 196.507 +-380.616 74.3286 192.827 +-381.522 72.9625 189.284 +-381.149 71.3634 185.135 +-378.856 69.4298 180.119 +-378.468 67.8689 176.069 +-381.808 66.978 173.758 +-380.71 65.3127 169.438 +-381.193 63.9326 165.858 +-380.91 62.4357 161.974 +-380.857 60.9891 158.221 +-381.68 59.6907 154.853 +-381.549 58.2516 151.12 +-381.193 56.7903 147.329 +-381.443 55.43 143.8 +-115.186 16.3193 42.3365 +-113.337 15.6478 40.5944 +-111.37 14.9766 38.8531 +-110.79 14.5035 37.6257 +-109.441 13.9391 36.1615 +-108.829 13.4779 34.9652 +-109.342 13.1586 34.1369 +-108.896 12.726 33.0146 +-109.296 12.3946 32.1547 +-108.732 11.9564 31.0181 +-109.785 11.6964 30.3435 +-109.103 11.2522 29.1912 +-110.239 10.9959 28.5262 +-110.212 10.6216 27.555 +-110.562 10.2842 26.6799 +-110.711 9.92811 25.7561 +-111.434 9.62221 24.9625 +-113.027 9.38537 24.348 +-113.543 9.05361 23.4874 +-115.324 8.81655 22.8724 +-118.669 8.68372 22.5278 +-126.434 8.83935 22.9315 +-156.829 10.4544 27.1214 +-160.425 10.1741 26.3943 +-162.343 9.77111 25.3488 +-166.425 9.48064 24.5952 +-858.466 46.1454 119.713 +-867.079 43.8295 113.705 +-380.417 18.0134 46.7313 +-381.138 16.8318 43.6661 +-900.673 36.9091 95.7516 +-403.776 15.2639 39.5986 +-404.031 13.9926 36.3003 +-404.754 12.7365 33.0416 +-404.649 11.4543 29.7153 +-405.011 10.1863 26.4258 +-403.945 8.88614 23.0529 +-148.296 2.79532 7.25179 +-402.816 6.32564 16.4103 +-404.154 5.07618 13.1689 +-147.649 1.39061 3.6076 +-145.178 0.911439 2.36451 +-144.894 0.454793 1.17985 +119.8 1.77636e-15 -1.13687e-13 +119.895 0.38512 0.972855 +119.982 0.770854 1.94726 +120.559 1.16199 2.93531 +120.327 1.54661 3.90691 +119.686 1.92341 4.85874 +120.335 2.32125 5.86374 +119.477 2.68971 6.7945 +121.104 3.11701 7.87392 +120.627 3.49433 8.82707 +120.44 3.87844 9.79736 +120.443 4.26867 10.7831 +120.636 4.66692 11.7892 +120.818 5.06673 12.7991 +120.594 5.45011 13.7676 +121.055 5.86607 14.8184 +120.714 6.24445 15.7742 +120.462 6.62651 16.7393 +120.992 7.05348 17.8179 +120.721 7.43576 18.7836 +120.54 7.82323 19.7624 +120.154 8.19672 20.7058 +119.955 8.58235 21.68 +120.531 9.02603 22.8007 +120.312 9.4128 23.7778 +120.963 9.87061 24.9343 +120.627 10.2505 25.8938 +121.255 10.7149 27.0669 +121.19 11.1217 28.0947 +120.922 11.5106 29.0771 +120.548 11.889 30.033 +120.165 12.2659 30.9851 +121.215 12.7935 32.3178 +121.195 13.2137 33.3792 +121.738 13.6993 34.606 +121.408 14.0898 35.5924 +121.925 14.5816 36.8348 +121.385 14.9493 37.7637 +121.405 15.3866 38.8683 +121.318 15.8128 39.9449 +121.69 16.3026 41.1822 +121.58 16.7315 42.2657 +121.085 17.1082 43.2172 +119.559 17.3346 43.7891 +116.176 17.2767 43.643 +112.99 17.2267 43.5165 +109.632 17.1287 43.2691 +107.113 17.1427 43.3042 +103.596 16.977 42.8858 +101.825 17.0802 43.1465 +99.3313 17.0488 43.0672 +96.7571 16.9869 42.9108 +96.7102 17.3616 43.8573 +97.0109 17.8029 44.9722 +97.2979 18.2476 46.0954 +97.4825 18.6784 47.1836 +97.654 19.1117 48.2784 +96.582 19.3017 48.7582 +96.8204 19.754 49.9007 +97.0447 20.2092 51.0507 +96.4752 20.5017 51.7897 +96.8471 20.9976 53.0424 +96.2599 21.289 53.7783 +96.5189 21.7704 54.9945 +96.6775 22.2357 56.1697 +96.231 22.5651 57.002 +96.1955 22.9936 58.0845 +96.3972 23.4846 59.3246 +96.5 23.958 60.5205 +96.5876 24.4338 61.7225 +96.0046 24.7431 62.5039 +96.147 25.2429 63.7664 +96.1921 25.7239 64.9813 +96.2217 26.207 66.2018 +96.3953 26.7366 67.5396 +96.3131 27.202 68.7153 +96.3737 27.7143 70.0094 +96.3391 28.2061 71.2518 +95.6667 28.5145 72.0307 +96.3759 29.2421 73.8688 +95.679 29.5505 74.648 +96.2674 30.2631 76.448 +96.2255 30.7885 77.7751 +96.0161 31.2671 78.9843 +96.0143 31.8206 80.3825 +95.9198 32.3516 81.7238 +95.8073 32.8844 83.0697 +95.6769 33.4189 84.4199 +95.5283 33.9551 85.7743 +96.0035 34.725 87.7192 +95.7423 35.2403 89.0208 +95.604 35.809 90.4575 +95.9323 36.5648 92.3667 +95.6813 37.1118 93.7486 +95.4798 37.6871 95.2019 +95.7311 38.4535 97.1377 +95.418 39.0056 98.5324 +95.6823 39.8069 100.557 +95.719 40.5294 102.382 +95.4039 41.1154 103.862 +95.2611 41.7867 105.558 +94.8393 42.3466 106.972 +94.9644 43.1644 109.038 +94.9957 43.9576 111.042 +94.504 44.5223 112.468 +94.9059 45.5249 115.001 +95.0266 46.416 117.252 +94.7553 47.1334 119.064 +94.751 48.002 121.258 +94.7127 48.8736 123.46 +94.7548 49.8093 125.824 +94.6465 50.6879 128.043 +94.3358 51.4785 130.04 +94.5468 52.5776 132.817 +94.3859 53.4966 135.138 +94.1349 54.3874 137.389 +94.4846 55.6554 140.592 +94.102 56.5215 142.78 +94.355 57.7998 146.009 +93.7931 58.6081 148.051 +93.9 59.8636 151.222 +93.9544 61.1239 154.406 +93.9076 62.3569 157.521 +94.0957 63.7884 161.137 +93.8474 64.9655 164.11 +94.012 66.4724 167.917 +93.7036 67.6903 170.993 +93.6569 69.1416 174.659 +93.5922 70.6309 178.421 +93.8084 72.3903 182.866 +93.9058 74.1235 187.244 +93.5548 75.5609 190.875 +93.6308 77.4053 195.534 +93.5864 79.2221 200.124 +93.4238 81.0106 204.642 +93.6044 83.1778 210.116 +93.1647 84.8746 214.403 +93.3845 87.2594 220.427 +93.319 89.4803 226.037 +93.1902 91.7418 231.75 +92.9953 94.0437 237.565 +93.032 96.6983 244.271 +92.6241 99.012 250.115 +90.7491 99.8295 252.18 +90.5729 102.603 259.185 +88.2572 103.03 260.265 +87.1852 104.964 265.15 +87.3915 108.593 274.317 +89.6924 115.132 290.836 +91.7697 121.8 307.68 +91.8549 126.178 318.741 +91.6892 130.496 329.646 +91.3013 134.785 340.482 +91.2538 139.905 353.415 +90.9702 145.034 366.372 +100.558 166.954 421.744 +97.1571 168.242 424.999 +92.2675 166.925 421.671 +90.7297 171.804 433.995 +90.0061 178.748 451.537 +88.1265 183.96 464.703 +87.8053 193.13 487.868 +88.9017 206.601 521.898 +83.5123 205.678 519.565 +79.1199 207.214 523.445 +73.434 205.307 518.628 +69.0268 206.923 522.711 +63.4504 204.979 517.801 +59.0586 206.823 522.457 +53.6065 204.916 517.641 +49.0338 206.291 521.113 +43.7723 204.716 517.134 +39.1822 206.244 520.995 +33.9613 204.378 516.281 +29.35 206.133 520.715 +24.2437 204.381 516.289 +19.5542 206.106 520.648 +14.523 204.138 515.674 +9.76113 205.833 519.956 +4.83363 203.869 514.995 +2.9754e-14 205.643 519.477 +-4.83101 203.758 514.716 +-9.74193 205.428 518.933 +-14.4759 203.476 514.002 +-19.46 205.113 518.138 +-24.1346 203.462 513.966 +-29.2139 205.177 518.301 +-33.7598 203.166 513.219 +-38.9729 205.142 518.212 +-43.3879 202.918 512.592 +-48.6939 204.861 517.5 +-53.0602 202.828 512.365 +-58.4314 204.626 516.909 +-62.7033 202.566 511.703 +-68.125 204.22 515.882 +-72.4942 202.679 511.991 +-77.923 204.079 515.527 +-82.2707 202.62 511.84 +-87.6815 203.766 514.734 +-91.8655 202.061 510.428 +-97.6424 203.824 514.881 +-101.87 202.308 511.052 +-107.578 203.707 514.587 +-111.506 201.731 509.595 +-117.429 203.346 513.673 +-121.574 201.846 509.886 +-127.637 203.493 514.045 +-131.523 201.643 509.373 +-138.863 204.999 517.85 +-138.635 197.311 498.429 +-142.118 195.223 493.155 +-114.138 151.487 382.674 +-112.405 144.286 364.483 +-115.31 143.284 361.952 +-118.469 142.627 360.291 +-122.207 142.662 360.381 +-126.759 143.594 362.735 +-1039.59 1143.6 2888.87 +-1066.66 1140.22 2880.32 +-1093.65 1136.75 2871.56 +-1120.56 1133.19 2862.57 +-1147.52 1129.69 2853.72 +-1174.26 1125.96 2844.3 +-468.059 437.361 1104.82 +-159.32 145.143 366.648 +-162.181 144.116 364.052 +-164.849 142.946 361.097 +-168.631 142.748 360.598 +-172.741 142.807 360.745 +-141.991 114.681 289.698 +-142.084 112.153 283.31 +-144.695 111.659 282.062 +-148.827 112.315 283.719 +-434.507 320.772 810.305 +-435.558 314.642 794.82 +-437.137 309.084 780.781 +-438.862 303.801 767.434 +-440.513 298.627 754.366 +-441.855 293.402 741.167 +-444.166 288.961 729.947 +-446.65 284.75 719.309 +-448.512 280.26 707.967 +-450.195 275.78 696.65 +-453.059 272.126 687.421 +-455.307 268.195 677.49 +-457.994 264.611 668.437 +-459.948 260.691 658.535 +-462.468 257.178 649.661 +-464.466 253.456 640.257 +-466.832 250.013 631.56 +-469.472 246.785 623.406 +-472.17 243.649 615.485 +-468.171 237.18 599.144 +-461.582 229.602 580 +-462.675 225.994 570.887 +-464.728 222.923 563.127 +-470.735 221.77 560.214 +-474.854 219.731 555.064 +-479.479 217.94 550.54 +-481.766 215.113 543.399 +-135.757 59.5504 150.431 +-135.54 58.4123 147.556 +-490.142 207.536 524.26 +-493.519 205.32 518.661 +-495.826 202.687 512.011 +-498.518 200.246 505.844 +-500.723 197.641 499.263 +-503.807 195.411 493.631 +-506.267 192.965 487.45 +-509.281 190.754 481.865 +-509.753 187.627 473.967 +-521.386 188.588 476.395 +-518.212 184.196 465.3 +-521.617 182.195 460.245 +-524.015 179.86 454.347 +-141.041 47.5699 120.167 +-142.089 47.0907 118.956 +-143.2 46.6324 117.799 +-141.81 45.3736 114.619 +-142.044 44.6537 112.8 +-142.331 43.9591 111.046 +-146.609 44.4836 112.371 +-153.875 45.8639 115.857 +-155.896 45.643 115.299 +-157.129 45.1859 114.145 +-158.512 44.7692 113.092 +-160.047 44.3912 112.137 +-161.575 44.0066 111.166 +-581.117 155.403 392.566 +-571.672 150.09 379.143 +-574.062 147.952 373.743 +-577.3 146.04 368.913 +-580.492 144.118 364.059 +-584.721 142.451 359.848 +-2747.9 656.832 1659.23 +-382.141 89.6077 226.359 +-382.809 88.0456 222.413 +-381.471 86.0432 217.355 +-381.525 84.3784 213.149 +-380.926 82.5896 208.631 +-381.571 81.0868 204.834 +-383.392 79.8401 201.685 +-381.422 77.8201 196.582 +-380.704 76.0828 192.194 +-380.727 74.5115 188.224 +-380.794 72.963 184.313 +-381.173 71.4863 180.582 +-380.437 69.816 176.363 +-381.268 68.446 172.902 +-381.613 66.9969 169.242 +-380.559 65.3174 164.999 +-380.546 63.8333 161.25 +-379.852 62.2491 157.248 +-379.663 60.7624 153.493 +-380.445 59.4399 150.152 +-379.437 57.8495 146.134 +-380.238 56.5458 142.841 +-114.162 16.5522 41.8127 +-113.057 15.9738 40.3517 +-111.558 15.3523 38.7815 +-110.884 14.8549 37.5251 +-109.535 14.277 36.0653 +-108.924 13.8048 34.8725 +-109.342 13.4661 34.0168 +-109.276 13.0689 33.0134 +-108.914 12.6399 31.9298 +-108.636 12.225 30.8817 +-109.018 11.886 30.0255 +-109.584 11.5659 29.2167 +-109.372 11.1643 28.2022 +-110.309 10.8792 27.4821 +-110.562 10.5245 26.586 +-111.584 10.2402 25.8679 +-111.434 9.84702 24.8747 +-112.929 9.59636 24.2415 +-114.227 9.32089 23.5456 +-115.324 9.02253 22.7919 +-118.963 8.90861 22.5041 +-126.826 9.07395 22.9218 +-160.271 10.9334 27.619 +-160.031 10.3862 26.2368 +-164.019 10.1027 25.5205 +-167.907 9.78853 24.7269 +-857.872 47.1908 119.209 +-867.079 44.8535 113.305 +-379.823 18.4054 46.4941 +-379.947 17.1713 43.3765 +-899.977 37.742 95.3404 +-404.373 15.6436 39.5176 +-404.429 14.3336 36.2082 +-403.957 13.0084 32.8606 +-404.449 11.7161 29.5963 +-403.714 10.3909 26.2485 +-404.245 9.10053 22.9889 +-3272.01 63.117 159.441 +-403.715 6.4879 16.3891 +-403.454 5.18576 13.0998 +-145.95 1.40672 3.55352 +-146.178 0.939156 2.37241 +-145.494 0.467348 1.18057 +119.8 1.77636e-15 -1.13687e-13 +119.895 0.393881 0.969341 +119.882 0.787731 1.93861 +119.659 1.17955 2.90288 +120.327 1.58179 3.8928 +120.485 1.9803 4.87353 +120.335 2.37406 5.84256 +120.275 2.76928 6.8152 +120.306 3.16691 7.79378 +120.727 3.57678 8.80246 +120.54 3.96994 9.77003 +120.443 4.36577 10.7442 +120.636 4.77309 11.7466 +120.818 5.18199 12.7529 +120.594 5.57409 13.7179 +121.055 5.99952 14.7648 +120.615 6.38127 15.7043 +120.462 6.77726 16.6788 +120.992 7.21394 17.7535 +119.834 7.54901 18.5781 +120.54 8.0012 19.691 +120.154 8.38318 20.631 +120.74 8.83503 21.743 +120.531 9.23136 22.7184 +120.41 9.63476 23.7112 +120.182 10.03 24.6837 +120.627 10.4836 25.8003 +121.255 10.9586 26.9692 +121.19 11.3747 27.9933 +120.825 11.763 28.9488 +121.224 12.2277 30.0924 +120.839 12.6154 31.0465 +121.407 13.1053 32.2521 +121.099 13.5036 33.2323 +120.877 13.9119 34.2373 +121.408 14.4103 35.4639 +121.165 14.8203 36.4728 +121.385 15.2894 37.6273 +121.405 15.7366 38.7279 +121.506 16.1977 39.8625 +121.784 16.6863 41.0651 +121.58 17.1121 42.113 +121.926 17.6188 43.36 +119.466 17.7152 43.5971 +116.269 17.6839 43.5201 +113.822 17.7482 43.6784 +109.632 17.5184 43.1128 +107.755 17.6377 43.4064 +104.418 17.501 43.0701 +101.825 17.4687 42.9906 +99.3313 17.4367 42.9117 +97.2987 17.4706 42.9952 +97.2495 17.8556 43.9426 +97.0109 18.2079 44.8098 +97.2979 18.6627 45.9289 +97.5712 19.1206 47.0559 +97.654 19.5465 48.104 +97.3729 19.9025 48.98 +96.8204 20.2033 49.7204 +96.3484 20.5206 50.5013 +96.5618 20.9869 51.6489 +96.761 21.4562 52.8038 +97.0313 21.9477 54.0135 +96.5189 22.2657 54.7958 +96.6775 22.7415 55.9669 +95.9779 23.0178 56.6468 +96.9503 23.7012 58.3288 +96.3972 24.0188 59.1104 +96.4171 24.4819 60.2501 +96.67 25.011 61.5521 +96.0865 25.3276 62.3312 +96.2285 25.839 63.5899 +96.1112 26.2869 64.6921 +95.659 26.6464 65.5769 +96.3154 27.3221 67.2399 +96.3131 27.8208 68.4671 +96.3737 28.3448 69.7565 +96.3391 28.8478 70.9944 +96.3661 29.3763 72.2952 +96.3759 29.9073 73.602 +96.2918 30.4163 74.8547 +95.583 30.7315 75.6303 +96.15 31.4642 77.4334 +95.5667 31.8287 78.3306 +96.0886 32.5697 80.1541 +95.9198 33.0876 81.4286 +95.7342 33.6068 82.7065 +95.6769 34.1792 84.115 +96.1757 34.9629 86.0437 +95.9322 35.4886 87.3374 +95.813 36.0686 88.7648 +95.604 36.6236 90.1307 +95.3766 37.18 91.5 +95.6125 37.929 93.3433 +96.0936 38.7922 95.4676 +95.7311 39.3282 96.7868 +95.2173 39.8093 97.9708 +95.5498 40.6559 100.054 +95.1942 41.224 101.452 +95.4039 42.0507 103.487 +95.2611 42.7373 105.177 +94.8393 43.3099 106.586 +94.9644 44.1464 108.644 +94.9957 44.9576 110.641 +95.0581 45.802 112.719 +94.845 46.5304 114.511 +94.846 47.3816 116.606 +94.6363 48.1454 118.486 +94.5746 49.0025 120.595 +94.4804 49.8631 122.713 +94.8122 50.9732 125.445 +94.5332 51.7792 127.429 +94.3918 52.6808 129.648 +94.1053 53.5225 131.719 +94.277 54.6504 134.495 +94.1886 55.6566 136.971 +94.3786 56.8575 139.926 +94.5722 58.0964 142.975 +94.252 59.0503 145.323 +94.3514 60.2982 148.394 +93.9 61.2254 150.676 +93.9544 62.5144 153.848 +93.8591 63.7423 156.87 +93.714 64.9748 159.903 +93.8004 66.4102 163.436 +94.012 67.9845 167.31 +93.749 69.2637 170.458 +93.7015 70.748 174.111 +93.5484 72.2037 177.694 +93.8084 74.037 182.205 +93.5677 75.5368 185.896 +93.5963 77.314 190.27 +93.6308 79.1661 194.828 +93.5465 80.9896 199.316 +93.4629 82.8881 203.988 +93.5278 85.0003 209.186 +93.2396 86.875 213.8 +93.2013 89.0693 219.2 +93.4265 91.6213 225.48 +93.2952 93.9345 231.173 +93.0295 96.2185 236.794 +92.7315 98.5788 242.603 +92.0381 100.624 247.635 +87.6713 98.6375 242.747 +87.5445 101.428 249.614 +88.2872 105.409 259.413 +87.2145 107.388 264.281 +87.1927 110.81 272.704 +88.7552 116.52 286.757 +91.7162 124.498 306.39 +91.829 129.012 317.5 +91.4137 133.063 327.469 +91.3013 137.851 339.252 +91.2304 143.051 352.048 +91.0602 148.48 365.41 +97.8307 166.121 408.824 +95.2859 168.756 415.308 +90.6725 167.771 412.886 +90.2527 174.788 430.154 +88.9674 180.704 444.713 +87.1367 186.032 457.824 +89.3568 201.014 494.695 +87.4938 207.955 511.777 +81.3839 204.995 504.494 +77.589 207.827 511.462 +71.5153 204.491 503.253 +67.5766 207.184 509.881 +61.8769 204.443 503.136 +57.8356 207.147 509.79 +52.1497 203.882 501.754 +48.0141 206.596 508.433 +42.6033 203.781 501.505 +38.4707 207.105 509.686 +33.1555 204.067 502.21 +28.7534 206.537 508.287 +23.6155 203.615 501.096 +19.1528 206.469 508.12 +14.1591 203.551 500.939 +9.56217 206.224 507.518 +4.71233 203.274 500.257 +3.08642e-14 206.143 507.317 +-4.70971 203.161 499.979 +-9.54123 205.773 506.407 +-14.1277 203.099 499.827 +-19.09 205.791 506.453 +-23.5283 202.863 499.245 +-28.6278 205.634 506.067 +-32.9479 202.79 499.066 +-38.1359 205.302 505.25 +-42.3679 202.655 498.734 +-47.7003 205.246 505.11 +-51.7567 202.346 497.973 +-57.1771 204.789 503.985 +-61.2995 202.536 498.441 +-66.8819 205.054 504.639 +-70.6669 202.065 497.282 +-76.3782 204.584 503.481 +-80.2309 202.091 497.347 +-85.9451 204.274 502.719 +-89.6374 201.645 496.248 +-95.767 204.456 503.168 +-99.0997 201.284 495.361 +-105.46 204.24 502.634 +-108.755 201.23 495.227 +-115.225 204.068 502.212 +-118.457 201.146 495.021 +-125.073 203.94 501.898 +-128.115 200.886 494.382 +-136.565 206.192 507.44 +-139.261 202.711 498.872 +-142.118 199.664 491.373 +-112.935 153.301 377.273 +-112.653 147.894 363.968 +-115.821 147.194 362.244 +-118.703 146.159 359.699 +-122.959 146.805 361.288 +-127.191 147.362 362.659 +-1039.59 1169.62 2878.43 +-1066.66 1166.16 2869.92 +-1093.65 1162.61 2861.19 +-1120.56 1158.97 2852.23 +-1147.38 1155.25 2843.07 +-1174.12 1151.44 2833.69 +-470.074 449.234 1105.56 +-160.069 149.143 367.042 +-162.87 148.02 364.278 +-165.436 146.717 361.072 +-169.428 146.686 360.995 +-174.327 147.396 362.743 +-142.406 117.633 289.494 +-142.084 114.704 282.287 +-145.9 115.15 283.384 +-149.046 115.039 283.11 +-434.864 328.339 808.042 +-435.967 322.101 792.692 +-437.368 316.282 778.372 +-438.862 310.712 764.662 +-440.942 305.719 752.374 +-442.437 300.472 739.462 +-444.954 296.058 728.6 +-446.85 291.358 717.032 +-448.664 286.732 705.649 +-451.07 282.602 695.483 +-453.581 278.638 685.728 +-455.943 274.679 675.986 +-457.994 270.631 666.023 +-459.948 266.622 656.156 +-463.351 263.531 648.55 +-464.969 259.502 638.635 +-468.078 256.383 630.958 +-469.759 252.553 621.534 +-472.692 249.468 613.941 +-474.813 246.017 605.449 +-477.524 242.935 597.864 +-471.883 235.735 580.145 +-482.322 236.625 582.335 +-468.765 225.865 555.854 +-471.368 223.079 548.999 +-477.151 221.815 545.887 +-479.158 218.816 538.506 +-484.855 217.521 535.321 +-487.995 215.09 529.338 +-135.411 58.64 144.313 +-135.042 57.4598 141.409 +-496.361 207.522 510.713 +-499.194 205.079 504.699 +-501.61 202.495 498.341 +-504.426 200.102 492.452 +-506.892 197.598 486.289 +-505.636 193.697 476.688 +-514.137 193.546 476.316 +-518.39 191.77 471.947 +-518.356 188.439 463.748 +-522.27 186.573 459.157 +-525.112 184.337 453.654 +-142.368 49.1098 120.859 +-142.164 48.1872 118.589 +-143.2 47.6933 117.373 +-141.81 46.4058 114.205 +-141.892 45.6205 112.272 +-142.484 45.0073 110.763 +-147.998 45.9266 113.025 +-155.895 47.5235 116.955 +-156.13 46.7518 115.056 +-157.208 46.2368 113.789 +-158.512 45.7877 112.684 +-159.967 45.3785 111.677 +-162.218 45.1869 111.205 +-581.521 159.049 391.42 +-574.44 154.247 379.602 +-574.717 151.49 372.818 +-577.877 149.511 367.948 +-581.321 147.607 363.262 +-585.388 145.858 358.958 +-588.076 143.766 353.808 +-380.96 91.363 224.845 +-382.046 89.8689 221.168 +-381.045 87.9024 216.328 +-380.839 86.1428 211.998 +-380.754 84.43 207.782 +-379.925 82.5737 203.214 +-381.477 81.2483 199.952 +-380.809 79.4628 195.558 +-380.616 77.7955 191.455 +-381.433 76.3481 187.893 +-380.705 74.6055 183.604 +-381.44 73.1637 180.056 +-381.242 71.5551 176.097 +-380.999 69.9537 172.156 +-381.613 68.521 168.63 +-378.746 66.4851 163.62 +-381.365 65.4258 161.013 +-382.045 64.0326 157.584 +-379.663 62.1447 152.938 +-378.88 60.5422 148.994 +-380.361 59.3097 145.961 +-380.331 57.8464 142.36 +-114.534 16.9839 41.7975 +-112.87 16.3102 40.1395 +-110.902 15.6092 38.4144 +-110.79 15.1799 37.3579 +-109.535 14.6018 35.935 +-108.924 14.1188 34.7465 +-108.488 13.6649 33.6294 +-109.181 13.3545 32.8656 +-108.819 12.9161 31.7866 +-109.114 12.5581 30.9056 +-108.538 12.103 29.7854 +-109.488 11.8186 29.0856 +-109.758 11.4585 28.1994 +-110.019 11.0975 27.3109 +-110.853 10.7922 26.5596 +-110.711 10.3912 25.5727 +-111.92 10.115 24.893 +-112.735 9.79772 24.1122 +-114.422 9.54923 23.5007 +-115.128 9.21212 22.671 +-119.355 9.14127 22.4967 +-132.422 9.68979 23.8466 +-157.124 10.9626 26.979 +-160.918 10.6814 26.2868 +-164.019 10.3325 25.4283 +-161.388 9.62252 23.6811 +-859.158 48.3366 118.956 +-867.574 45.9002 112.961 +-382.103 18.9371 46.6043 +-380.244 17.5756 43.2536 +-900.474 38.622 95.0488 +-405.566 16.0467 39.491 +-403.235 14.6164 35.9709 +-404.355 13.3174 32.7741 +-404.25 11.9767 29.4748 +-404.313 10.643 26.1925 +-404.744 9.31903 22.9342 +-404.445 7.97922 19.6369 +-404.215 6.64369 16.3501 +-403.854 5.309 13.0655 +-145.35 1.43281 3.52614 +-145.278 0.954607 2.34929 +-146.094 0.479952 1.18116 +119.8 1.77636e-15 -1.13687e-13 +119.895 0.40261 0.965749 +119.882 0.805188 1.93142 +119.659 1.20569 2.89212 +120.327 1.61685 3.87837 +120.485 2.02419 4.85546 +120.235 2.42466 5.81608 +120.375 2.833 6.79557 +120.206 3.23441 7.75846 +120.727 3.65604 8.76983 +120.44 4.05457 9.72579 +120.443 4.46252 10.7044 +120.636 4.87887 11.703 +120.818 5.29683 12.7056 +120.495 5.69293 13.6558 +121.055 6.13247 14.7101 +120.714 6.52804 15.659 +120.462 6.92745 16.617 +120.992 7.37381 17.6877 +120.721 7.77345 18.6463 +120.442 8.17186 19.602 +120.154 8.56896 20.5546 +120.642 9.02348 21.6448 +120.433 9.42824 22.6157 +120.312 9.84027 23.6041 +120.963 10.3189 24.7521 +120.627 10.716 25.7047 +121.352 11.2105 26.8908 +121.093 11.6175 27.8672 +120.728 12.0141 28.8184 +121.224 12.4987 29.9808 +121.803 12.9978 31.1781 +120.734 13.3215 31.9545 +121.291 13.8247 33.1616 +120.973 14.2315 34.1373 +121.408 14.7297 35.3324 +121.83 15.2319 36.5372 +122.049 15.7137 37.6928 +121.688 16.1229 38.6744 +121.318 16.5309 39.6531 +121.972 17.0824 40.976 +121.393 17.4644 41.8923 +121.179 17.899 42.9346 +120.954 18.3334 43.9767 +116.454 18.1046 43.4279 +114.653 18.2741 43.8344 +110.369 18.0269 43.2415 +108.58 18.1667 43.5768 +105.149 18.0141 43.2108 +102.553 17.9835 43.1374 +99.9657 17.9369 43.0257 +97.389 17.8743 42.8755 +96.171 18.0488 43.2942 +97.0109 18.6114 44.6437 +97.2979 19.0763 45.7587 +96.7729 19.3845 46.498 +97.654 19.9797 47.9257 +97.5487 20.3802 48.8865 +96.8204 20.6511 49.5362 +96.3484 20.9754 50.3142 +96.5618 21.452 51.4575 +95.9855 21.7559 52.1865 +96.3456 22.2756 53.433 +96.4336 22.739 54.5446 +96.6775 23.2455 55.7594 +96.1466 23.5692 56.536 +96.1955 24.0379 57.6602 +96.3972 24.5511 58.8913 +96.6658 25.089 60.1816 +95.9283 25.3691 60.8534 +96.0865 25.8889 62.1002 +96.147 26.3893 63.3005 +96.1921 26.8921 64.5066 +96.3021 27.4201 65.7731 +95.5967 27.7192 66.4907 +96.3131 28.4374 68.2133 +96.3737 28.9729 69.498 +95.713 29.2954 70.2715 +96.3661 30.0274 72.0273 +95.6814 30.3498 72.8008 +95.6023 30.8678 74.0433 +96.2674 31.6375 75.8895 +95.5462 31.9595 76.6621 +96.091 32.7126 78.4685 +96.0143 33.2657 79.7953 +95.9198 33.8208 81.1268 +96.4656 34.614 83.0294 +95.6769 34.9366 83.8032 +96.1757 35.7377 85.7248 +96.0035 36.302 87.0784 +95.813 36.8679 88.4358 +95.5339 37.4077 89.7308 +96.0018 38.253 91.7584 +95.6813 38.7972 93.0637 +95.4798 39.3986 94.5064 +95.6636 40.1713 96.3598 +95.3511 40.7485 97.7443 +95.6823 41.6146 99.822 +95.1942 42.1376 101.076 +95.339 42.9533 103.033 +95.2611 43.6844 104.787 +95.4117 44.5371 106.832 +94.9644 45.1247 108.242 +94.9957 45.9539 110.231 +95.0581 46.817 112.301 +94.845 47.5616 114.087 +94.846 48.4316 116.174 +94.7553 49.2739 118.194 +94.5746 50.0885 120.148 +94.6546 51.062 122.484 +94.6401 52.0082 124.753 +94.5898 52.9583 127.032 +94.224 53.7525 128.937 +94.6572 55.0292 132 +94.4404 55.9581 134.228 +94.2424 56.9224 136.541 +94.3786 58.1175 139.408 +94.1542 59.1214 141.816 +94.4065 60.4578 145.021 +93.9454 61.3694 147.208 +93.95 62.6153 150.197 +93.9544 63.8998 153.278 +93.8591 65.1549 156.289 +94.048 66.6514 159.878 +93.8004 67.8819 162.83 +94.012 69.4911 166.69 +93.749 70.7987 169.826 +93.6569 72.2816 173.384 +93.5922 73.8385 177.118 +93.7223 75.6085 181.364 +93.5254 77.1758 185.123 +93.6792 79.0974 189.733 +93.224 80.5692 193.263 +93.5864 82.8199 198.662 +93.4629 84.725 203.232 +93.413 86.7774 208.155 +93.3145 88.8715 213.178 +93.128 90.9716 218.216 +93.3549 93.5801 224.473 +93.2952 96.0162 230.316 +92.7559 98.0618 235.223 +89.6939 97.4627 233.786 +88.8801 99.3247 238.252 +87.3857 100.495 241.059 +87.1737 103.236 247.636 +89.0991 108.736 260.828 +87.156 109.694 263.124 +87.1643 113.229 271.605 +87.57 117.512 281.879 +91.7429 127.294 305.343 +91.6219 131.574 315.61 +91.614 136.31 326.97 +91.3497 140.981 338.174 +91.1137 146.034 350.295 +91.0377 151.733 363.966 +94.4326 163.904 393.161 +92.2296 166.963 400.497 +90.214 170.622 409.275 +89.871 177.906 426.747 +87.2179 181.077 434.353 +87.154 190.192 456.218 +87.8218 201.939 484.395 +84.8031 206.027 494.2 +78.4572 202.003 484.55 +75.1535 205.764 493.572 +69.0353 201.774 484 +65.5779 205.512 492.966 +59.6807 201.557 483.48 +56.09 205.347 492.57 +50.4053 201.429 483.173 +46.576 204.849 491.376 +41.1126 201.008 482.164 +37.236 204.901 491.5 +31.9528 201.023 482.2 +27.8532 204.505 490.55 +22.778 200.746 481.534 +18.5735 204.661 490.924 +13.6539 200.638 481.274 +9.26199 204.177 489.764 +4.54827 200.545 481.051 +3.06422e-14 204.131 489.654 +-4.53169 199.814 479.298 +-9.2585 204.1 489.579 +-13.6172 200.099 479.982 +-18.5142 204.007 489.356 +-22.6646 199.746 479.136 +-27.7433 203.698 488.614 +-31.7208 199.564 478.699 +-36.9709 203.442 488.001 +-40.838 199.666 478.942 +-46.2797 203.546 488.25 +-49.9548 199.629 478.855 +-55.5046 203.204 487.43 +-59.0355 199.378 478.253 +-64.7736 202.991 486.92 +-68.1869 199.295 478.052 +-74.0958 202.869 486.625 +-77.3043 199.035 477.429 +-83.3014 202.378 485.449 +-86.3199 198.485 476.11 +-92.6066 202.091 484.76 +-95.6372 198.556 476.281 +-102.216 202.345 485.369 +-104.927 198.449 476.025 +-111.503 201.853 484.19 +-114.237 198.278 475.614 +-121.226 202.049 484.658 +-123.819 198.453 476.035 +-130.831 201.913 484.334 +-134.053 199.454 478.436 +-142.558 204.721 491.068 +-111.171 154.251 370.005 +-112.956 151.578 363.594 +-116.333 151.12 362.494 +-119.492 150.392 360.749 +-123.951 151.269 362.853 +-128.211 151.835 364.211 +-1039.59 1195.54 2867.76 +-1066.66 1192 2859.28 +-1093.65 1188.38 2850.59 +-1120.56 1184.66 2841.66 +-1147.38 1180.85 2832.53 +-200.579 201.062 482.293 +-465.493 454.714 1090.73 +-158.946 151.378 363.114 +-163.214 151.621 363.696 +-166.139 150.606 361.263 +-170.027 150.466 360.926 +-432.239 373.564 896.076 +-142.364 120.205 288.337 +-143.141 118.117 283.331 +-146.89 118.501 284.25 +-149.485 117.934 282.891 +-435.935 336.441 807.03 +-436.512 329.651 790.74 +-437.969 323.735 776.551 +-439.285 317.903 762.562 +-441.754 313.069 750.965 +-443.164 307.636 737.933 +-445.693 303.122 727.105 +-447.35 298.148 715.174 +-449.882 293.883 704.943 +-451.997 289.458 694.33 +-454.522 285.403 684.603 +-456.26 280.962 673.949 +-459.445 277.504 665.656 +-460.601 272.918 654.654 +-464.179 269.852 647.301 +-465.808 265.731 637.416 +-468.928 262.54 629.76 +-471.193 258.938 621.12 +-473.621 255.498 612.868 +-475.695 251.936 604.325 +-479.011 249.092 597.503 +-481.633 245.938 589.936 +-484.27 242.846 582.52 +-486.188 239.452 574.378 +-489.483 236.786 567.984 +-476.962 226.641 543.649 +-488.89 228.208 547.407 +-480.869 220.515 528.953 +-483.904 218.014 522.954 +-491.06 217.368 521.405 +-494.05 214.875 515.425 +-135.767 58.0202 139.174 +-134.848 56.6261 135.83 +-502.906 207.517 497.776 +-505.734 205.067 491.899 +-507.587 202.254 485.151 +-506.898 198.483 476.107 +-525.168 202.079 484.732 +-517.82 195.804 469.68 +-519.939 193.203 463.439 +-523.43 191.132 458.472 +-141.371 50.7269 121.68 +-142.663 50.3024 120.662 +-142.015 49.2035 118.025 +-142.826 48.6228 116.633 +-141.659 47.3838 113.661 +-142.272 46.7566 112.156 +-143.48 46.3264 111.124 +-150.081 47.6051 114.191 +-155.74 48.5282 116.406 +-156.991 48.051 115.261 +-157.681 47.4038 113.709 +-159.226 47.0129 112.771 +-161.404 46.8008 112.262 +-569.05 162.025 388.654 +-572.541 160.063 383.948 +-587.384 161.218 386.718 +-575.864 155.157 372.177 +-579.855 153.348 367.838 +-582.565 151.201 362.69 +-586.972 149.494 358.595 +-2747.9 686.661 1647.11 +-2763.37 677.407 1624.91 +-597.704 143.714 344.73 +-601.708 141.882 340.337 +-381.954 88.3097 211.83 +-380.582 86.2622 206.919 +-380.705 84.5768 202.876 +-381.738 83.1058 199.348 +-380.46 81.1491 194.654 +-382.11 79.832 191.495 +-382.051 78.1662 187.499 +-381.149 76.3473 183.136 +-381.707 74.8378 179.515 +-380.795 73.0551 175.239 +-381.358 71.5713 171.68 +-380.71 69.874 167.608 +-381.465 68.4464 164.184 +-381.365 66.8757 160.416 +-380.035 65.1072 156.174 +-380.672 63.6908 152.777 +-380.261 62.1093 148.983 +-381.377 60.786 145.809 +-382 59.3877 142.455 +-114.348 17.3321 41.5749 +-113.057 16.6993 40.0569 +-110.902 15.9552 38.272 +-110.32 15.4505 37.0616 +-109.912 14.9768 35.9251 +-109.113 14.4568 34.6778 +-109.531 14.1021 33.8269 +-109.371 13.6743 32.8008 +-109.296 13.2602 31.8076 +-109.688 12.9039 30.9529 +-109.977 12.5351 30.0683 +-109.199 12.0487 28.9015 +-109.372 11.6713 27.9962 +-110.116 11.3534 27.2336 +-110.659 11.0121 26.4149 +-110.905 10.6401 25.5226 +-111.92 10.3392 24.8008 +-113.514 10.0841 24.189 +-114.91 9.80248 23.5134 +-115.813 9.47226 22.7213 +-119.061 9.32084 22.3581 +-153.526 11.4831 27.5448 +-159.484 11.3739 27.2827 +-162.296 11.0116 26.4138 +-163.625 10.5361 25.2731 +-166.03 10.1187 24.2719 +-860.642 49.4932 118.72 +-868.069 46.944 112.606 +-381.508 19.3267 46.3593 +-380.344 17.9698 43.1046 +-901.17 39.5083 94.7695 +-404.074 16.342 39.1999 +-403.235 14.9403 35.8376 +-404.455 13.6159 32.6607 +-404.15 12.2391 29.3583 +-403.116 10.8467 26.0182 +-404.245 9.51382 22.821 +-403.546 8.13792 19.5206 +-403.715 6.78254 16.2694 +-3274.5 44 105.544 +-146.45 1.47564 3.53965 +-145.278 0.975762 2.34058 +-145.894 0.489915 1.17517 +119.8 1.77636e-15 -1.13687e-13 +119.895 0.411306 0.962077 +119.882 0.82258 1.92408 +120.559 1.241 2.90279 +120.327 1.65177 3.86363 +119.686 2.05419 4.80491 +120.235 2.47703 5.79397 +120.475 2.89659 6.77536 +120.206 3.30427 7.72896 +120.926 3.74118 8.75092 +120.54 4.14557 9.69681 +120.443 4.55891 10.6637 +120.337 4.9719 11.6297 +120.818 5.41123 12.6573 +120.594 5.82069 13.6151 +121.055 6.26493 14.6542 +120.813 6.6745 15.6122 +120.561 7.0829 16.5675 +120.992 7.53308 17.6205 +120.721 7.94135 18.5755 +120.442 8.34837 19.5275 +120.154 8.75405 20.4764 +120.838 9.2334 21.5977 +120.433 9.63188 22.5297 +120.997 10.1101 23.6482 +119.987 10.4566 24.4589 +120.627 10.9474 25.6069 +121.157 11.4343 26.7456 +121.19 11.8779 27.7835 +120.825 12.2834 28.7318 +120.548 12.6974 29.7002 +121.514 13.247 30.9859 +121.503 13.6959 32.0358 +121.195 14.1121 33.0094 +120.877 14.5274 33.9807 +121.408 15.0478 35.1981 +121.069 15.4638 36.171 +121.385 15.9658 37.3453 +121.594 16.4584 38.4975 +121.318 16.888 39.5023 +121.784 17.4245 40.7574 +121.393 17.8416 41.733 +121.926 18.3983 43.035 +121.606 18.8302 44.0454 +117.567 18.6723 43.6761 +114.838 18.6989 43.7382 +111.105 18.5391 43.3645 +109.314 18.6845 43.7044 +105.88 18.5311 43.3457 +103.19 18.4861 43.2404 +100.6 18.4406 43.1341 +98.8331 18.5312 43.3459 +95.9912 18.4042 43.0489 +96.8319 18.9784 44.3919 +97.2979 19.4883 45.5847 +97.4825 19.9484 46.6609 +98.0955 20.5035 47.9593 +96.7578 20.6516 48.3059 +96.8204 21.0971 49.3478 +96.3484 21.4285 50.1229 +96.5618 21.9154 51.2619 +96.8471 22.4254 52.4547 +96.3456 22.7567 53.2299 +96.5189 23.2507 54.3852 +95.999 23.5809 55.1577 +95.9779 24.0361 56.2223 +96.1955 24.5571 57.441 +96.3972 25.0814 58.6674 +96.5 25.587 59.85 +95.9283 25.917 60.622 +96.0865 26.448 61.8641 +96.0656 26.9364 63.0065 +96.1921 27.4729 64.2614 +96.3021 28.0123 65.523 +96.4752 28.5782 66.8467 +96.3131 29.0516 67.954 +96.3737 29.5987 69.2338 +96.3391 30.124 70.4624 +96.3661 30.6759 71.7535 +96.3759 31.2304 73.0504 +96.3684 31.7872 74.3529 +96.3434 32.3464 75.6608 +96.2255 32.8819 76.9135 +96.091 33.4192 78.1702 +96.0143 33.9843 79.4919 +95.9198 34.5514 80.8184 +95.7342 35.0936 82.0866 +95.6769 35.6912 83.4847 +95.6003 36.2911 84.8879 +96.0035 37.0861 86.7474 +95.813 37.6642 88.0996 +95.604 38.2438 89.4553 +95.9323 39.051 91.3434 +95.6125 39.6069 92.6437 +95.4798 40.2496 94.1471 +95.7311 41.0681 96.0615 +95.3511 41.6286 97.3727 +95.7486 42.543 99.5115 +95.1286 43.0182 100.623 +94.7545 43.6118 102.012 +95.3254 44.6579 104.458 +94.8393 45.2259 105.787 +94.9015 46.0691 107.759 +94.9957 46.9465 109.812 +94.935 47.7661 111.729 +94.4189 48.3707 113.143 +94.3044 49.195 115.071 +94.6363 50.2753 117.598 +94.4571 51.1067 119.543 +94.7127 52.1968 122.092 +94.5828 53.0993 124.204 +94.5898 54.1021 126.549 +94.3358 54.9787 128.6 +94.1604 55.923 130.808 +94.4404 57.1667 133.718 +94.2424 58.1518 136.022 +94.3786 59.3728 138.878 +94.1542 60.3984 141.277 +94.355 61.7299 144.391 +93.9454 62.6949 146.648 +93.95 63.9678 149.626 +93.9544 65.2799 152.695 +93.8107 66.528 155.614 +94.048 68.091 159.27 +93.8474 69.3827 162.292 +94.012 70.9921 166.056 +93.7036 72.2929 169.099 +93.6569 73.8429 172.724 +93.5922 75.4334 176.445 +93.4209 76.9932 180.093 +93.5677 78.8785 184.503 +93.2645 80.4482 188.175 +93.2647 82.3453 192.612 +93.2275 84.2844 197.148 +93.4629 86.555 202.459 +93.1834 88.434 206.854 +93.1647 90.6456 212.027 +93.2379 93.0463 217.643 +93.0682 95.3078 222.933 +92.945 97.7222 228.58 +90.8063 98.074 229.403 +88.3921 98.1224 229.516 +87.3174 99.6857 233.173 +87.2588 102.516 239.794 +87.2355 105.541 246.869 +89.3096 111.347 260.451 +86.8052 111.612 261.07 +87.2495 115.788 270.836 +87.2944 119.673 279.924 +91.4757 129.665 303.296 +91.5702 134.34 314.233 +91.3887 138.912 324.926 +91.3013 143.95 336.71 +90.9503 148.92 348.337 +90.9477 154.857 362.224 +91.1427 161.611 378.021 +90.8158 167.954 392.859 +90.1143 174.115 407.268 +88.7071 179.395 419.619 +87.1086 184.756 432.159 +89.2725 199.023 465.531 +85.3131 200.407 468.769 +81.9717 203.449 475.884 +76.1071 200.184 468.247 +72.537 202.891 474.577 +66.973 199.974 467.756 +63.3233 202.733 474.209 +57.8468 199.583 466.842 +54.1248 202.433 473.506 +48.8334 199.363 466.326 +44.9724 202.068 472.654 +39.8965 199.276 466.122 +35.9176 201.915 472.295 +30.9943 199.205 465.957 +26.9164 201.895 472.248 +22.1063 199.034 465.557 +17.886 201.342 470.954 +13.256 198.998 465.472 +8.92865 201.08 470.342 +4.41388 198.823 465.063 +2.95319e-14 201.111 470.414 +-4.40341 198.351 463.96 +-8.91818 200.844 469.79 +-13.201 198.173 463.542 +-17.8476 200.909 469.943 +-22.0103 198.17 463.536 +-26.7646 200.756 469.585 +-30.8417 198.224 463.663 +-35.7362 200.895 469.91 +-39.6375 197.983 463.097 +-44.6499 200.62 469.265 +-48.5171 198.072 463.306 +-53.6336 200.595 469.208 +-57.3035 197.709 462.456 +-62.5312 200.197 468.276 +-66.0724 197.285 461.466 +-71.535 200.088 468.021 +-74.9985 197.269 461.428 +-80.5481 199.916 467.619 +-83.8442 196.957 460.697 +-89.4983 199.526 466.708 +-92.7761 196.777 460.276 +-98.591 199.384 466.374 +-101.877 196.842 460.43 +-107.677 199.138 465.801 +-110.904 196.65 459.981 +-116.907 199.059 465.614 +-119.968 196.433 459.473 +-126.404 199.294 466.166 +-129.346 196.608 459.881 +-137.407 201.586 471.526 +-111.545 158.113 369.838 +-113.48 155.57 363.891 +-116.844 155.062 362.702 +-120.194 154.543 361.488 +-124.612 155.361 363.403 +-130.189 157.508 368.423 +-1039.59 1221.36 2856.86 +-1066.66 1217.75 2848.41 +-1093.65 1214.05 2839.75 +-1120.56 1210.24 2830.86 +-1147.38 1206.36 2821.77 +-193.555 198.212 463.634 +-456.441 455.502 1065.46 +-160.294 155.96 364.802 +-164.133 155.767 364.352 +-166.998 154.655 361.751 +-171.661 155.194 363.011 +-143.456 126.66 296.268 +-142.737 123.123 287.994 +-143.986 121.381 283.921 +-147.967 121.947 285.245 +-434.689 350.349 819.495 +-436.158 343.884 804.373 +-436.739 336.946 788.144 +-438.984 331.495 775.393 +-440.223 325.464 761.287 +-442.612 320.453 749.564 +-444.037 314.899 736.575 +-446.185 310.011 725.141 +-448.25 305.201 713.889 +-450.491 300.637 703.213 +-452.461 296.013 692.399 +-455.357 292.104 683.255 +-457.055 287.53 672.557 +-459.875 283.764 663.746 +-462.072 279.702 654.247 +-464.4 275.812 645.147 +-466.814 272.058 636.365 +-470.117 268.891 628.958 +-472.111 265.046 619.964 +-474.725 261.624 611.96 +-477.399 258.3 604.186 +-480.319 255.167 596.857 +-482.234 251.564 588.428 +-485.852 248.902 582.201 +-487.111 245.088 573.281 +-490.604 242.454 567.12 +-492.695 239.174 559.447 +-495.251 236.17 552.421 +-497.003 232.836 544.623 +-501.893 231.003 540.334 +-487.517 220.461 515.676 +-490.67 218.015 509.954 +-496.027 216.557 506.543 +-497.842 213.572 499.562 +-134.763 56.809 132.881 +-135.124 55.9741 130.928 +-514.256 209.337 489.656 +-511.243 204.509 478.363 +-525.805 206.695 483.475 +-518.89 200.447 468.861 +-521.737 198.059 463.275 +-524.736 195.747 457.868 +-141.151 51.7423 121.029 +-142.147 51.203 119.768 +-142.758 50.5292 118.192 +-141.927 49.3601 115.457 +-141.734 48.4332 113.289 +-142.652 47.8939 112.028 +-145.778 48.0849 112.474 +-153.167 49.6337 116.097 +-156.595 49.8484 116.599 +-156.6 48.9666 114.537 +-157.917 48.5004 113.446 +-160.178 48.3157 113.014 +-161.804 47.93 112.112 +-581.43 169.126 395.599 +-565.988 161.649 378.11 +-574.44 161.071 376.758 +-576.847 158.779 371.396 +-581.091 156.994 367.222 +-584.057 154.863 362.236 +-588.223 153.048 357.993 +-382.685 97.6931 228.512 +-594.928 148.99 348.499 +-381.537 93.7196 219.218 +-602.731 145.193 339.619 +-605.417 142.999 334.486 +-382.305 88.5244 207.066 +-380.965 86.4626 202.243 +-381.477 84.8426 198.454 +-379.847 82.7686 193.602 +-380.967 81.3122 190.196 +-380.992 79.6333 186.269 +-380.794 77.924 182.271 +-380.905 76.2935 178.457 +-381.242 74.7207 174.778 +-381.268 73.0999 170.987 +-380.981 71.4339 167.09 +-381.012 69.8419 163.366 +-381.365 68.3202 159.806 +-379.852 66.4817 155.506 +-380.947 65.1133 152.305 +-380.169 63.4355 148.381 +-381.193 62.0687 145.184 +-381.351 60.5675 141.672 +-114.534 17.7353 41.4842 +-112.963 17.0458 39.8716 +-111.277 16.3548 38.2552 +-109.85 15.717 36.7634 +-109.252 15.2084 35.5736 +-108.546 14.6922 34.3663 +-108.773 14.3068 33.4648 +-108.991 13.921 32.5624 +-109.201 13.5348 31.659 +-108.923 13.0907 30.6202 +-108.922 12.6831 29.6667 +-109.584 12.3523 28.893 +-110.143 12.0074 28.0863 +-110.212 11.6088 27.1539 +-110.756 11.2598 26.3376 +-110.808 10.8604 25.4034 +-111.823 10.5533 24.685 +-113.319 10.2842 24.0557 +-114.812 10.0057 23.4042 +-115.813 9.67685 22.6349 +-120.041 9.60055 22.4565 +-158.238 12.0912 28.2822 +-159.484 11.6195 27.179 +-161.508 11.1949 26.1857 +-164.611 10.8285 25.3288 +-851.091 52.99 123.948 +-860.642 50.5622 118.269 +-870.248 48.0782 112.459 +-381.607 19.7492 46.195 +-380.542 18.3675 42.9631 +-902.759 40.4328 94.5756 +-404.77 16.7237 39.1182 +-403.534 15.2743 35.7278 +-404.057 13.8963 32.5045 +-404.051 12.5004 29.2395 +-404.712 11.1248 26.0219 +-403.346 9.69769 22.6837 +-405.444 8.35277 19.5378 +-405.114 6.95306 16.2638 +-404.753 5.55621 12.9964 +-148.649 1.53015 3.57914 +-145.278 0.996838 2.33168 +-147.094 0.504612 1.18033 +119.9 5.32907e-15 2.84217e-14 +119.795 0.419617 0.957531 +119.882 0.839901 1.91658 +119.759 1.25872 2.8723 +120.327 1.68655 3.84857 +120.485 2.11145 4.81816 +120.235 2.52919 5.77139 +120.475 2.95758 6.74895 +120.107 3.37105 7.69245 +120.029 3.79162 8.65215 +120.44 4.22937 9.65106 +120.443 4.65491 10.6221 +120.138 5.06821 11.5652 +120.918 5.52971 12.6183 +121.388 5.98239 13.6513 +121.155 6.40211 14.6091 +120.813 6.81505 15.5514 +120.561 7.23204 16.5029 +120.3 7.64775 17.4515 +120.721 8.10857 18.5031 +120.54 8.5311 19.4673 +120.154 8.93838 20.3966 +120.838 9.42783 21.5135 +120.531 9.84273 22.4603 +121.095 10.3313 23.5751 +120.865 10.755 24.542 +120.53 11.1689 25.4865 +121.255 11.6844 26.6628 +120.22 12.031 27.4536 +120.728 12.532 28.597 +121.224 13.0375 29.7505 +120.936 13.4616 30.7182 +121.311 13.9621 31.8604 +121.195 14.4093 32.8808 +121.833 14.9506 34.1161 +121.408 15.3647 35.0609 +121.069 15.7894 36.0301 +121.48 16.3147 37.2288 +121.783 16.8311 38.4071 +121.506 17.2704 39.4096 +120.844 17.6542 40.2853 +121.299 18.2033 41.5384 +121.459 18.7138 42.7032 +122.071 19.3003 44.0416 +118.772 19.261 43.952 +115.67 19.2309 43.8832 +112.762 19.2118 43.8398 +109.314 19.0779 43.5341 +106.702 19.0682 43.5121 +104.009 19.0251 43.4137 +100.6 18.8289 42.966 +98.6526 18.8868 43.0982 +96.3507 18.8622 43.0418 +97.3689 19.4855 44.4641 +97.1197 19.8622 45.3239 +97.4825 20.3684 46.4791 +97.8306 20.8787 47.6434 +97.0214 21.144 48.2487 +96.8204 21.5414 49.1555 +97.0447 22.0378 50.2883 +96.6484 22.3969 51.1079 +96.8471 22.8976 52.2503 +96.3456 23.2359 53.0224 +96.4336 23.7193 54.1255 +95.999 24.0775 54.9427 +96.1466 24.5853 56.1016 +96.3632 25.1179 57.3169 +96.564 25.6538 58.5399 +95.9196 25.9686 59.2582 +95.8459 26.44 60.3339 +96.0046 26.982 61.5705 +96.147 27.527 62.8142 +96.1112 28.0278 63.9571 +96.3021 28.6022 65.2677 +95.6765 28.9384 66.0349 +96.3131 29.6633 67.6892 +95.6645 29.9996 68.4565 +95.713 30.5584 69.7316 +96.3661 31.3219 71.4738 +95.6814 31.6582 72.2414 +95.679 32.2244 73.5333 +96.2674 33.0014 75.3064 +96.2255 33.5743 76.6138 +96.091 34.1229 77.8655 +96.0143 34.6999 79.1822 +95.9935 35.306 80.5653 +95.8073 35.8599 81.8292 +96.3297 36.6914 83.7267 +95.5283 37.0274 84.4934 +96.0035 37.867 86.4094 +95.813 38.4573 87.7563 +96.1648 39.2781 89.6293 +95.3071 39.6134 90.3945 +95.6813 40.4698 92.3487 +95.4798 41.0972 93.7802 +95.7987 41.9625 95.755 +95.418 42.5349 97.061 +95.6161 43.3786 98.9863 +95.2598 43.9847 100.369 +95.274 44.7746 102.172 +95.3254 45.5982 104.051 +94.9029 46.2091 105.445 +94.9644 47.0701 107.41 +94.9957 47.9351 109.384 +94.8734 48.7402 111.221 +94.2971 49.3254 112.556 +94.3646 50.2631 114.696 +94.8148 51.4307 117.36 +94.6334 52.2804 119.299 +94.4223 53.1325 121.244 +94.5254 54.1845 123.644 +94.4766 55.1751 125.905 +94.1681 56.0365 127.87 +94.6572 57.4016 130.986 +94.7127 58.5391 133.581 +94.2424 59.3764 135.492 +94.5906 60.7595 138.648 +94.2065 61.7044 140.804 +94.355 63.0297 143.828 +93.9454 64.0151 146.077 +93.9 65.2802 148.964 +93.8559 66.5847 151.941 +93.8591 67.9639 155.088 +94.0957 69.5601 158.73 +93.8474 70.8438 161.659 +94.012 72.487 165.409 +94.0668 74.1013 169.093 +93.6123 75.3617 171.969 +93.5046 76.9495 175.592 +93.4209 78.6144 179.391 +93.1873 80.2119 183.037 +93.3474 82.2152 187.608 +93.2647 84.0792 191.862 +93.5465 86.3534 197.051 +93.502 88.4145 201.754 +93.1451 90.2588 205.963 +93.2021 92.5913 211.285 +93.2379 95.0056 216.795 +93.0682 97.3147 222.064 +92.0695 98.8399 225.544 +91.1142 100.479 229.284 +88.826 100.681 229.745 +87.4476 101.937 232.611 +87.354 104.79 239.121 +87.1428 107.649 245.646 +88.6481 112.85 257.514 +86.8636 114.039 260.227 +87.3631 118.38 270.133 +87.0738 121.884 278.129 +91.5559 132.511 302.379 +91.5961 137.208 313.096 +91.4388 141.915 323.837 +91.132 146.708 334.775 +90.997 152.135 347.158 +90.8577 157.962 360.455 +90.6666 164.152 374.581 +90.3584 170.627 389.357 +89.2969 176.168 402.001 +87.5432 180.769 412.5 +89.423 193.658 441.912 +88.6648 201.831 460.56 +83.4811 200.233 456.915 +79.7503 202.104 461.184 +74.3777 199.755 455.825 +70.6164 201.678 460.211 +65.5111 199.728 455.763 +61.6903 201.664 460.179 +56.5676 199.28 454.739 +52.651 201.067 458.818 +47.8079 199.286 454.754 +43.8742 201.285 459.315 +38.9863 198.83 453.714 +35.0247 201.041 458.759 +30.335 199.073 454.268 +26.2308 200.895 458.426 +21.5916 198.493 452.945 +17.4602 200.687 457.952 +12.9602 198.654 453.312 +8.71399 200.378 457.245 +4.31265 198.354 452.626 +2.83107e-14 200.408 457.315 +-4.30742 198.113 452.077 +-8.7105 200.298 457.062 +-12.9209 198.053 451.939 +-17.4009 200.005 456.395 +-21.548 198.092 452.03 +-26.0738 199.693 455.682 +-30.158 197.911 451.617 +-34.7806 199.64 455.561 +-38.7588 197.67 451.066 +-43.5779 199.926 456.213 +-47.4341 197.728 451.198 +-52.306 199.75 455.812 +-56.0243 197.366 450.371 +-60.9834 199.353 454.906 +-64.7149 197.301 450.224 +-69.8231 199.412 455.041 +-73.4169 197.175 449.936 +-78.4675 198.853 453.765 +-82.1442 197.026 449.597 +-87.2582 198.629 453.254 +-90.7351 196.5 448.397 +-96.1487 198.539 453.049 +-99.5444 196.385 448.134 +-105.037 198.345 452.607 +-108.35 196.167 447.637 +-114.05 198.284 452.466 +-117.516 196.471 448.331 +-123.162 198.272 452.44 +-126.392 196.162 447.626 +-132.697 198.775 453.587 +-111.679 161.636 368.839 +-114.031 159.618 364.234 +-117.412 159.097 363.046 +-120.75 158.526 361.743 +-125.334 159.552 364.083 +-136.925 169.146 385.977 +-1039.59 1247.08 2845.73 +-1066.66 1243.39 2837.31 +-1093.65 1239.61 2828.68 +-1120.56 1235.73 2819.83 +-1147.38 1231.76 2810.77 +-189.003 197.627 450.968 +-161.187 164.243 374.789 +-161.68 160.621 366.523 +-165.051 159.937 364.963 +-168.64 159.464 363.883 +-172.14 158.904 362.605 +-142.195 128.19 292.519 +-142.447 125.46 286.288 +-143.817 123.792 282.483 +-148.699 125.131 285.538 +-434.864 357.871 816.631 +-436.917 351.736 802.632 +-437.556 344.685 786.541 +-438.892 338.404 772.209 +-440.646 332.637 759.048 +-442.851 327.377 747.045 +-444.522 321.881 734.506 +-447.022 317.133 723.67 +-448.9 312.079 712.138 +-451.252 307.486 701.656 +-453.388 302.866 691.114 +-455.671 298.46 681.06 +-457.585 293.926 670.713 +-460.681 290.247 662.318 +-462.671 285.963 652.543 +-465.448 282.256 644.084 +-468.156 278.585 635.707 +-470.627 274.851 627.186 +-472.627 270.923 618.223 +-475.538 267.591 610.619 +-477.458 263.772 601.905 +-481.093 260.96 595.489 +-483.378 257.47 587.525 +-486.948 254.716 581.241 +-488.281 250.85 572.419 +-491.724 248.125 566.2 +-493.891 244.803 558.618 +-496.586 241.793 551.752 +-499.125 238.754 544.816 +-502.673 236.233 539.064 +-505.1 233.222 532.192 +-508.23 230.572 526.145 +-493.283 219.894 501.779 +-496.491 217.477 496.264 +-500.928 215.612 492.009 +-134.16 56.7449 129.487 +-518.701 215.593 491.965 +-516.5 210.962 481.398 +-522.34 209.656 478.418 +-519.104 204.752 467.227 +-522.456 202.508 462.105 +-526.041 200.366 457.219 +-141.298 52.8865 120.682 +-141.631 52.0913 118.868 +-143.427 51.8349 118.283 +-142.002 50.4264 115.069 +-141.659 49.4266 112.787 +-142.728 48.9285 111.651 +-146.698 49.4073 112.743 +-156.408 51.751 118.091 +-156.129 50.7463 115.799 +-157.461 50.2727 114.718 +-158.784 49.7934 113.624 +-160.733 49.5041 112.964 +-162.123 49.0356 111.895 +-580.706 172.472 393.567 +-571.571 166.681 380.351 +-575.173 164.672 375.769 +-578.158 162.49 370.789 +-582.41 160.663 366.62 +-584.803 158.326 361.286 +-588.974 156.471 357.053 +-382.602 99.7282 227.571 +-596.446 152.515 348.026 +-2778.63 696.906 1590.28 +-602.987 148.314 338.44 +-606.532 146.279 333.796 +-610.464 144.332 329.354 +-382.697 88.6846 202.371 +-380.955 86.5108 197.41 +-381.597 84.9004 193.736 +-380.44 82.9096 189.193 +-379.138 80.9143 184.64 +-381.858 79.7873 182.068 +-380.816 77.8819 177.72 +-380.258 76.097 173.647 +-381.268 74.6392 170.32 +-380.169 72.7824 166.083 +-380.287 71.1769 162.42 +-381.82 69.8419 159.373 +-381.771 68.2244 155.682 +-380.121 66.3403 151.383 +-380.905 64.8969 148.089 +-380.638 63.2838 144.408 +-380.794 61.7525 140.914 +-113.325 17.9175 40.8861 +-112.216 17.2897 39.4536 +-110.527 16.5868 37.8496 +-109.944 16.0617 36.6515 +-108.498 15.4215 35.1904 +-108.451 14.9886 34.2026 +-108.583 14.5827 33.2764 +-108.801 14.1893 32.3789 +-108.914 13.7836 31.453 +-109.401 13.425 30.6348 +-109.305 12.9957 29.6551 +-109.007 12.546 28.6289 +-109.758 12.2174 27.879 +-110.116 11.8428 27.0244 +-110.272 11.4466 26.1203 +-111.681 11.1765 25.5038 +-112.698 10.8598 24.7812 +-113.222 10.4918 23.9413 +-115.105 10.2425 23.3724 +-117.378 10.0142 22.8515 +-120.041 9.80271 22.369 +-158.925 12.3994 28.2944 +-159.779 11.8861 27.1232 +-161.508 11.4306 26.0836 +-163.921 11.0102 25.1243 +-3236.16 205.73 469.458 +-861.136 51.6566 117.876 +-871.238 49.1464 112.148 +-381.706 20.1703 46.027 +-379.748 18.7152 42.7064 +-405.775 18.5566 42.3446 +-404.074 17.0465 38.8987 +-404.031 15.6152 35.6325 +-404.355 14.1994 32.4018 +-404.051 12.7636 29.1255 +-403.315 11.3199 25.831 +-403.546 9.90679 22.6065 +-404.944 8.51814 19.4377 +-403.316 7.06792 16.1284 +-402.555 5.64238 12.8754 +-146.75 1.54241 3.51965 +-145.578 1.01993 2.3274 +-146.094 0.511738 1.16774 +119.9 5.32907e-15 2.84217e-14 +119.895 0.428595 0.9545 +119.882 0.857157 1.90893 +120.559 1.29316 2.87993 +120.327 1.7212 3.8332 +120.485 2.15483 4.79891 +120.335 2.58329 5.75311 +120.475 3.01835 6.722 +120.107 3.44031 7.66173 +120.926 3.89844 8.682 +120.54 4.31983 9.62045 +120.443 4.75055 10.5797 +120.834 5.20232 11.5858 +120.719 5.63407 12.5473 +120.495 6.06037 13.4967 +121.055 6.52828 14.5388 +120.912 6.96076 15.5019 +120.561 7.38063 16.437 +121.189 7.86255 17.5103 +120.721 8.27517 18.4292 +120.54 8.70638 19.3895 +120.154 9.12203 20.3152 +120.838 9.62152 21.4276 +120.433 10.0368 22.3523 +121.192 10.5521 23.4999 +120.963 10.9849 24.4638 +120.53 11.3984 25.3847 +120.379 11.8384 26.3646 +120.996 12.3575 27.5206 +121.503 12.8715 28.6655 +121.224 13.3054 29.6316 +120.839 13.7272 30.5712 +121.407 14.2603 31.7583 +120.811 14.6588 32.6458 +120.877 15.138 33.7131 +121.408 15.6804 34.9209 +120.974 16.1011 35.858 +121.48 16.6499 37.0801 +121.594 17.1502 38.1943 +121.601 17.6389 39.2827 +121.69 18.143 40.4052 +121.299 18.5773 41.3724 +121.365 19.0835 42.4999 +121.419 19.5917 43.6316 +119.05 19.7028 43.879 +115.67 19.626 43.7079 +112.578 19.5745 43.5933 +109.314 19.4699 43.3602 +106.519 19.4267 43.2641 +104.009 19.416 43.2403 +101.235 19.337 43.0643 +98.7428 19.2925 42.9652 +96.8001 19.3395 43.0699 +96.4739 19.703 43.8795 +96.496 20.1401 44.853 +97.4825 20.7869 46.2934 +97.654 21.2692 47.3675 +97.2851 21.637 48.1866 +96.558 21.9244 48.8266 +96.3484 22.3292 49.7281 +96.4752 22.8161 50.8125 +96.761 23.3472 51.9954 +96.3456 23.7133 52.8106 +96.4336 24.2066 53.9093 +96.7623 24.7675 55.1583 +96.1466 25.0905 55.8776 +96.2794 25.6117 57.0383 +96.4806 26.1583 58.2557 +95.9196 26.5022 59.0215 +96.0107 27.0297 60.1963 +96.9057 27.7948 61.9002 +96.147 28.0925 62.5633 +96.3539 28.6759 63.8625 +96.2217 29.1654 64.9527 +95.6765 29.5329 65.7711 +96.3131 30.2728 67.4188 +95.7433 30.6412 68.2392 +95.713 31.1862 69.4531 +95.6667 31.7334 70.6717 +96.3759 32.5432 72.4751 +95.679 32.8864 73.2396 +96.2674 33.6794 75.0056 +95.5462 34.0223 75.7692 +96.091 34.824 77.5545 +96.0143 35.4128 78.8659 +95.9198 36.0037 80.1819 +95.8073 36.5967 81.5024 +95.6769 37.1915 82.8272 +95.6003 37.8166 84.2194 +95.9322 38.6163 86.0003 +95.813 39.2474 87.4058 +95.604 39.8514 88.7508 +95.3071 40.4273 90.0334 +95.6813 41.3013 91.9798 +96.0254 42.1812 93.9393 +95.7311 42.7944 95.305 +95.418 43.4088 96.6734 +94.9535 43.963 97.9076 +95.2598 44.8884 99.9684 +94.6246 45.3828 101.07 +95.2611 46.5039 103.566 +94.9029 47.1585 105.024 +94.9644 48.0372 106.981 +94.9957 48.9199 108.947 +94.8734 49.7416 110.777 +94.9668 50.6965 112.903 +94.7859 51.5247 114.748 +94.1604 52.1252 116.085 +94.751 53.4209 118.971 +94.4223 54.2241 120.76 +94.5828 55.3314 123.225 +94.3633 56.2411 125.252 +94.1681 57.1878 127.36 +94.602 58.5469 130.387 +94.3859 59.5358 132.589 +94.2424 60.5963 134.951 +94.1667 61.7297 137.475 +94.2065 62.9721 140.242 +93.8399 63.9736 142.472 +93.8946 65.2947 145.414 +93.9 66.6215 148.369 +93.9052 67.9884 151.413 +93.8107 69.3246 154.389 +93.6185 70.6292 157.294 +93.8943 72.3357 161.095 +94.012 73.9763 164.748 +94.0214 75.5869 168.335 +93.6569 76.9469 171.364 +93.5484 78.5674 174.973 +93.3779 80.1928 178.593 +93.5254 82.1569 182.967 +93.223 83.7925 186.61 +93.2647 85.8067 191.095 +93.2275 87.8274 195.595 +93.3847 90.118 200.697 +93.5278 92.4918 205.983 +93.2396 94.5317 210.526 +93.3112 97.0337 216.098 +91.8855 98.052 218.366 +88.8826 97.379 216.867 +89.1304 100.311 223.396 +88.9261 102.865 229.085 +87.3499 103.915 231.423 +87.2905 106.865 237.992 +87.2355 109.977 244.925 +88.618 115.129 256.398 +86.7467 116.225 258.839 +87.3915 120.851 269.141 +87.129 124.467 277.193 +91.5559 135.234 301.171 +91.4408 139.79 311.318 +91.3887 144.751 322.367 +91.0836 149.643 333.261 +90.7869 154.902 344.973 +90.7678 161.047 358.66 +90.515 167.245 372.461 +90.2753 173.973 387.445 +88.7387 178.664 397.892 +86.2075 181.668 404.584 +89.5323 197.879 440.685 +87.1888 202.548 451.084 +82.4413 201.802 449.422 +78.2172 202.291 450.511 +73.4169 201.226 448.139 +69.336 202.089 450.062 +64.6235 201.07 447.793 +60.4838 201.782 449.377 +55.8431 200.769 447.122 +51.7834 201.817 449.455 +47.1369 200.526 446.581 +43.0201 201.422 448.575 +38.5626 200.71 446.991 +34.4248 201.658 449.101 +29.9077 200.301 446.079 +25.7179 201.014 447.668 +21.3168 199.993 445.394 +17.1287 200.922 447.461 +12.7744 199.829 445.028 +8.56215 200.931 447.483 +4.25593 199.766 444.889 +2.79776e-14 200.716 447.004 +-4.24895 199.439 444.159 +-8.54295 200.481 446.48 +-12.7456 199.378 444.024 +-17.0973 200.553 446.641 +-21.2165 199.052 443.298 +-25.6185 200.237 445.936 +-29.749 199.238 443.712 +-34.1458 200.023 445.461 +-38.2567 199.118 443.444 +-42.7412 200.116 445.667 +-46.744 198.855 442.858 +-51.2189 199.617 444.556 +-55.3224 198.897 442.953 +-59.8744 199.749 444.85 +-63.8404 198.634 442.366 +-68.501 199.655 444.642 +-72.4118 198.471 442.004 +-77.0596 199.297 443.843 +-81.0054 198.287 441.594 +-85.6259 198.918 442.999 +-89.6963 198.241 441.493 +-94.5268 199.2 443.627 +-98.3482 198.012 440.981 +-103.374 199.215 443.661 +-107.159 197.998 440.951 +-112.003 198.725 442.57 +-115.789 197.56 439.975 +-120.888 198.61 442.313 +-124.965 197.932 440.803 +-129.824 198.467 441.994 +-111.786 165.115 367.718 +-114.307 163.291 363.656 +-117.639 162.68 362.295 +-121.217 162.41 361.694 +-125.665 163.259 363.586 +-1012.43 1276.37 2842.54 +-1039.59 1272.7 2834.36 +-1066.66 1268.94 2825.98 +-1093.65 1265.08 2817.39 +-1120.56 1261.12 2808.57 +-1147.38 1257.07 2799.54 +-186.208 198.704 442.523 +-159.538 165.903 369.473 +-161.83 164.073 365.397 +-164.822 162.996 362.999 +-168.796 162.891 362.765 +-172.818 162.807 362.579 +-142.114 130.75 291.185 +-142.074 127.702 284.398 +-144.324 126.781 282.346 +-148.957 127.924 284.892 +-435.259 365.555 814.107 +-436.56 358.67 798.773 +-437.965 352.095 784.131 +-439.446 345.793 770.096 +-440.975 339.724 756.58 +-443.471 334.571 745.104 +-445.152 328.96 732.609 +-447.268 323.827 721.177 +-449.2 318.704 709.767 +-451.658 314.086 699.483 +-453.852 309.405 689.058 +-453.581 303.195 675.229 +-458.221 300.381 668.962 +-461.164 296.521 660.365 +-462.834 291.941 650.165 +-465.448 288.055 641.512 +-468.324 284.411 633.395 +-470.967 280.7 625.132 +-473.143 276.792 616.427 +-476.118 273.422 608.923 +-479.104 270.119 601.568 +-481.45 266.519 593.551 +-483.919 263.054 585.834 +-486.948 259.949 578.919 +-489.697 256.747 571.786 +-492.285 253.512 564.582 +-494.268 250.023 556.812 +-497.413 247.172 550.463 +-500.282 244.224 543.897 +-503.257 241.367 537.536 +-505.559 238.229 530.548 +-508.296 235.34 524.112 +-508.807 231.474 515.503 +-504.463 225.509 502.219 +-499.223 219.293 488.376 +-502.155 216.758 482.729 +-135.042 57.282 127.57 +-134.715 56.1543 125.058 +-519.158 212.66 473.604 +-519.817 209.246 466 +-523.104 206.925 460.831 +-139.852 54.3634 121.07 +-141.736 54.1406 120.574 +-142.368 53.4381 119.009 +-143.501 52.9273 117.871 +-141.852 51.408 114.488 +-142.338 50.6842 112.876 +-143.108 50.0669 111.501 +-148.076 50.8964 113.348 +-156.1 52.7102 117.388 +-156.362 51.8663 115.509 +-156.991 51.1524 113.919 +-158.548 50.7407 113.002 +-160.971 50.5961 112.68 +-161.804 49.9448 111.229 +-574.758 174.213 387.98 +-575.292 171.213 381.298 +-575.335 168.103 374.373 +-578.567 165.946 369.57 +-582.41 163.964 365.156 +-585.881 161.877 360.506 +-589.724 159.889 356.08 +-382.853 101.844 226.812 +-596.446 155.649 346.636 +-599.316 153.402 341.634 +-603.755 151.554 337.517 +-607.303 149.474 332.885 +-610.981 147.422 328.316 +-614.878 145.417 323.85 +-381.477 88.409 196.891 +-381.684 86.6648 193.006 +-381.495 84.8477 188.96 +-381.168 83.0192 184.887 +-380.528 81.1427 180.708 +-380.103 79.333 176.678 +-378.915 77.3864 172.343 +-381.718 76.2624 169.84 +-381.613 74.56 166.048 +-381.465 72.8641 162.272 +-380.182 70.9713 158.056 +-379.944 69.293 154.319 +-381.497 67.9486 151.325 +-380.721 66.1979 147.426 +-379.437 64.38 143.377 +-114.693 18.9815 42.2727 +-114.069 18.4057 40.9904 +-111.47 17.5275 39.0345 +-110.527 16.9276 37.6984 +-109.944 16.3917 36.5051 +-109.346 15.8613 35.3239 +-109.207 15.4032 34.3036 +-108.678 14.8952 33.1724 +-108.991 14.5062 32.3059 +-108.724 14.0422 31.2725 +-108.827 13.629 30.3524 +-109.977 13.3442 29.7181 +-109.199 12.8264 28.5649 +-109.758 12.4684 27.7676 +-110.695 12.1498 27.0581 +-111.143 11.7741 26.2215 +-111.487 11.3863 25.3577 +-112.6 11.0734 24.661 +-113.806 10.7626 23.9688 +-114.812 10.4263 23.2199 +-117.573 10.2369 22.7981 +-121.315 10.1103 22.5161 +-160.103 12.7479 28.3902 +-159.976 12.1453 27.0481 +-162.395 11.7295 26.122 +-162.934 11.1688 24.8734 +-853.264 55.3584 123.286 +-862.125 52.7782 117.539 +-380.263 21.8914 48.7531 +-380.021 20.4938 45.6407 +-381.138 19.1696 42.6915 +-404.582 18.8822 42.0515 +-405.268 17.4481 38.8577 +-403.733 15.9242 35.4639 +-403.459 14.459 32.2008 +-405.347 13.0677 29.1023 +-404.213 11.5782 25.7851 +-403.845 10.1178 22.5329 +-404.645 8.68672 19.3457 +-405.114 7.24533 16.1357 +-404.054 5.77977 12.8718 +-146.95 1.57624 3.51036 +-143.578 1.02659 2.28626 +-147.094 0.525824 1.17103 +119.9 5.32907e-15 2.84217e-14 +119.795 0.436825 0.949805 +119.882 0.874344 1.90112 +119.759 1.31034 2.84912 +120.327 1.75572 3.81752 +120.485 2.19804 4.77928 +120.335 2.63509 5.72957 +120.475 3.07887 6.69449 +120.107 3.50929 7.63038 +120.029 3.9471 8.58233 +120.54 4.40644 9.58108 +120.443 4.8458 10.5364 +121.033 5.31537 11.5574 +120.719 5.74703 12.496 +120.594 6.18698 13.4526 +121.055 6.65918 14.4793 +120.912 7.10033 15.4385 +120.561 7.52861 16.3697 +120.202 7.95485 17.2965 +120.721 8.44109 18.3538 +120.54 8.88095 19.3102 +120.055 9.29733 20.2155 +120.74 9.80646 21.3225 +120.433 10.238 22.2609 +120.312 10.6854 23.2337 +120.865 11.1961 24.344 +120.432 11.6176 25.2605 +121.255 12.1635 26.4476 +121.093 12.6153 27.43 +120.631 13.0354 28.3434 +121.127 13.5613 29.4869 +120.839 14.0025 30.4461 +121.503 14.5577 31.6534 +120.811 14.9527 32.5123 +121.355 15.5026 33.708 +121.217 15.9697 34.7234 +120.974 16.424 35.7112 +121.48 16.9838 36.9284 +121.877 17.5349 38.1267 +121.506 17.9786 39.0916 +121.596 18.4924 40.2088 +121.205 18.9351 41.1713 +122.112 19.586 42.5865 +121.419 19.9845 43.4531 +119.792 20.2231 43.9717 +116.594 20.1793 43.8767 +112.578 19.967 43.415 +110.047 19.9935 43.4727 +106.702 19.8502 43.1609 +103.918 19.788 43.0258 +102.05 19.8836 43.2336 +99.4649 19.8232 43.1023 +96.8001 19.7272 42.8937 +96.116 20.0235 43.5378 +97.2979 20.7147 45.0407 +97.4825 21.2037 46.104 +97.654 21.6957 47.1737 +97.5487 22.1307 48.1195 +96.9079 22.445 48.8029 +96.3484 22.7769 49.5247 +96.5618 23.2945 50.6501 +96.8471 23.8366 51.8287 +96.3456 24.1888 52.5946 +96.5189 24.7138 53.7361 +96.6775 25.242 54.8845 +96.1466 25.5935 55.6489 +96.2794 26.1252 56.8049 +96.3138 26.6367 57.9171 +95.9196 27.0336 58.7801 +96.7524 27.7846 60.4131 +96.2504 28.1603 61.23 +96.3099 28.7043 62.4129 +96.1112 29.1772 63.441 +96.3021 29.7751 64.741 +96.3154 30.3263 65.9395 +95.6784 30.6763 66.7005 +96.2949 31.4356 68.3515 +95.6347 31.7855 69.1124 +96.3661 32.6063 70.8971 +95.6814 32.9565 71.6584 +95.679 33.5458 72.9399 +96.2674 34.3547 74.6987 +95.5462 34.7045 75.4591 +96.1659 35.5499 77.2974 +96.0143 36.1229 78.5432 +96.5833 36.9797 80.4062 +95.8073 37.3304 81.1689 +95.6769 37.9372 82.4883 +95.5283 38.5459 83.8116 +96.0035 39.4199 85.7121 +95.7423 40.0048 86.9839 +95.604 40.6504 88.3877 +95.3071 41.2379 89.6651 +95.6813 42.1294 91.6035 +95.4116 42.7516 92.9563 +95.7987 43.6833 94.9823 +95.418 44.2792 96.2778 +94.9535 44.8445 97.507 +95.1286 45.7253 99.4222 +95.339 46.6425 101.416 +95.1968 47.4042 103.073 +94.9029 48.1041 104.594 +94.9015 48.9682 106.473 +94.9335 49.8682 108.43 +94.3193 50.4427 109.679 +94.845 51.6465 112.297 +94.3646 52.3242 113.77 +94.8742 53.5732 116.486 +94.8098 54.5254 118.557 +94.6546 55.4476 120.562 +94.6401 56.4751 122.796 +94.4199 57.4035 124.814 +94.1681 58.3344 126.839 +94.6572 59.7555 129.929 +94.4949 60.7993 132.198 +94.2961 61.8464 134.475 +94.1667 62.9674 136.912 +94.2065 64.2347 139.668 +94.3035 65.5785 142.59 +93.8946 66.6039 144.819 +93.85 67.9209 147.683 +93.8559 69.3152 150.715 +93.8107 70.7146 153.757 +93.6185 72.0454 156.651 +93.8474 73.7489 160.355 +94.012 75.4596 164.074 +93.6582 76.805 167 +93.6569 78.4897 170.663 +93.5922 80.1803 174.339 +93.7653 82.14 178.6 +93.5254 83.8042 182.218 +93.2645 85.5107 185.929 +93.3054 87.5652 190.396 +93.2275 89.5883 194.795 +93.4629 92.0018 200.043 +93.2217 94.0375 204.469 +93.2396 96.4271 209.665 +93.018 98.6684 214.538 +91.2046 99.2768 215.861 +88.1822 98.5489 214.278 +88.7542 101.89 221.543 +88.9595 104.967 228.233 +87.3499 105.999 230.476 +87.1953 108.888 236.76 +87.1428 112.063 243.664 +88.4977 117.279 255.003 +87.0975 119.035 258.822 +87.2211 123.034 267.518 +87.2117 127.083 276.32 +91.5559 137.945 299.939 +91.4667 142.633 310.131 +91.4388 147.734 321.224 +91.0352 152.562 331.721 +90.9503 158.292 344.18 +90.7678 164.277 357.192 +90.5367 170.639 371.026 +90.1505 177.216 385.327 +88.3001 181.346 394.306 +86.6464 186.254 404.98 +89.4959 201.764 438.703 +86.4421 204.84 445.391 +81.6821 203.952 443.461 +77.6228 204.779 445.258 +72.8553 203.69 442.891 +68.7515 204.403 444.441 +64.1536 203.611 442.718 +59.9841 204.127 443.841 +55.3677 203.051 441.501 +51.313 203.993 443.55 +46.8398 203.258 441.95 +42.6453 203.67 442.848 +38.1547 202.569 440.452 +34.1318 203.95 443.457 +29.6879 202.816 440.99 +25.5033 203.334 442.116 +21.151 202.417 440.122 +16.9961 203.363 442.18 +12.688 202.457 440.209 +8.47489 202.871 441.111 +4.2219 202.143 439.526 +2.54241e-14 202.693 440.724 +-4.2219 202.143 439.526 +-8.47314 202.83 441.02 +-12.6644 202.081 439.392 +-16.9437 202.737 440.818 +-21.1292 202.208 439.669 +-25.4091 202.583 440.483 +-29.5353 201.773 438.723 +-33.9016 202.575 440.466 +-38.0056 201.777 438.731 +-42.3926 202.463 440.223 +-46.4564 201.594 438.333 +-50.8008 201.957 439.123 +-54.9149 201.391 437.891 +-59.3382 201.929 439.062 +-63.4096 201.249 437.584 +-67.9304 201.962 439.134 +-71.9388 201.128 437.32 +-76.4026 201.56 438.259 +-80.4277 200.82 436.651 +-85.1571 201.795 438.77 +-89.0585 200.779 436.56 +-93.6681 201.348 437.799 +-97.5109 200.262 435.437 +-102.417 201.33 437.758 +-106.25 200.255 435.422 +-111.171 201.203 437.484 +-115.019 200.181 435.261 +-120.066 201.213 437.506 +-123.813 200.04 434.954 +-128.426 200.267 435.447 +-112.08 168.868 367.176 +-114.582 166.967 363.041 +-117.895 166.302 361.597 +-121.451 165.986 360.909 +-125.875 166.812 362.705 +-155.25 199.648 434.101 +-1039.59 1298.22 2822.77 +-1066.66 1294.38 2814.42 +-1093.65 1290.44 2805.86 +-1120.56 1286.4 2797.07 +-1147.38 1282.27 2788.09 +-184.918 201.285 437.66 +-159.538 169.229 367.961 +-162.055 167.595 364.408 +-165.74 167.191 363.528 +-168.288 165.657 360.193 +-172.778 166.033 361.012 +-142.317 133.562 290.409 +-141.949 130.148 282.986 +-144.493 129.474 281.521 +-148.914 130.451 283.644 +-435.478 373.072 811.184 +-436.783 366.048 795.911 +-438.237 359.378 781.409 +-439.308 352.615 766.703 +-441.209 346.72 753.886 +-443.567 341.352 742.215 +-445.395 335.739 730.009 +-447.268 330.32 718.226 +-449.45 325.275 707.257 +-451.861 320.527 696.934 +-453.697 315.501 686.005 +-452.484 308.526 670.839 +-457.108 305.66 664.607 +-461.164 302.466 657.663 +-463.324 298.11 648.191 +-465.614 293.935 639.114 +-468.883 290.46 631.557 +-470.797 286.225 622.35 +-473.717 282.684 614.649 +-476.351 279.041 606.728 +-478.516 275.197 598.371 +-481.806 272.065 591.56 +-484.461 268.629 584.09 +-486.705 265.029 576.262 +-489.451 261.763 569.16 +-492.036 258.464 561.987 +-494.835 255.329 555.17 +-497.413 252.128 548.211 +-500.474 249.216 541.88 +-503.062 246.111 535.128 +-506.215 243.322 529.063 +-509.224 240.496 522.919 +-511.885 237.544 516.5 +-513.584 234.189 509.206 +-499.973 224.026 487.108 +-501.535 220.831 480.161 +-133.791 57.8894 125.871 +-134.645 57.2501 124.481 +-517.036 216.038 469.738 +-519.888 213.471 464.157 +-523.967 211.422 459.702 +-141.013 55.9135 121.575 +-142.102 55.3686 120.39 +-142.295 54.4815 118.461 +-143.427 53.9605 117.328 +-141.852 52.4387 114.019 +-142.489 51.7552 112.533 +-144.021 51.3962 111.753 +-148.766 52.1584 113.41 +-156.1 53.767 116.908 +-156.595 52.9853 115.208 +-157.461 52.3343 113.792 +-159.021 51.9123 112.875 +-160.337 51.4071 111.776 +-565.354 178.01 387.053 +-572.668 177.06 384.988 +-578.771 175.702 382.035 +-576.719 171.886 373.738 +-578.895 169.369 368.265 +-583.152 167.465 364.125 +-586.295 165.239 359.285 +-590.475 163.303 355.075 +-2747.9 745.637 1621.27 +-596.784 158.859 345.413 +-600.164 156.699 340.717 +-604.096 154.68 336.326 +-607.817 152.6 331.804 +-611.326 150.463 327.157 +-614.878 148.333 322.525 +-382.173 90.3463 196.443 +-380.897 88.2203 191.821 +-380.528 86.3296 187.71 +-380.727 84.5856 183.917 +-379.995 82.6539 179.717 +-381.707 81.2654 176.698 +-377.304 78.6025 170.908 +-382.437 77.9382 169.464 +-380.71 75.8753 164.978 +-380.287 74.0957 161.109 +-379.727 72.3074 157.221 +-381.223 70.9202 154.204 +-380.672 69.1611 150.379 +-382.286 67.8031 147.427 +-380.638 65.8789 143.243 +-114.414 19.3152 41.9978 +-113.511 18.6829 40.6228 +-111.656 17.9089 38.9399 +-110.621 17.2816 37.576 +-109.944 16.7204 36.3558 +-108.498 16.0539 34.9065 +-109.302 15.7256 34.1928 +-108.678 15.1939 33.0367 +-108.991 14.797 32.1737 +-108.628 14.3111 31.1172 +-109.019 13.9267 30.2814 +-109.018 13.4931 29.3384 +-109.488 13.1181 28.5231 +-109.758 12.7184 27.654 +-110.019 12.3177 26.7828 +-110.95 11.9893 26.0687 +-111.196 11.5842 25.188 +-113.476 11.3832 24.7509 +-113.709 10.969 23.8503 +-114.715 10.6263 23.1052 +-117.867 10.4683 22.7615 +-120.433 10.238 22.2609 +-159.318 12.9397 28.1354 +-161.352 12.4954 27.1691 +-160.622 11.834 25.7311 +-163.625 11.441 24.8766 +-853.264 56.4684 122.781 +-862.521 53.8615 117.113 +-380.56 22.3478 48.5915 +-381.706 20.9975 45.6556 +-379.947 19.4928 42.384 +-405.775 19.3176 42.0029 +-405.268 17.798 38.6987 +-403.733 16.2435 35.3188 +-404.355 14.7817 32.1403 +-404.051 13.2871 28.8905 +-404.213 11.8103 25.6796 +-403.546 10.313 22.424 +-403.746 8.84121 19.2238 +-404.215 7.37418 16.0339 +-404.354 5.90001 12.8286 +-146.75 1.60566 3.49125 +-145.778 1.06322 2.31179 +-146.394 0.533814 1.16069 +119.8 1.77636e-15 -1.13687e-13 +119.895 0.445747 0.946612 +119.882 0.891459 1.89315 +119.759 1.33599 2.83719 +120.327 1.79008 3.80152 +120.385 2.23921 4.75531 +120.235 2.68444 5.70083 +119.577 3.11573 6.61674 +120.107 3.57799 7.59841 +120.029 4.02437 8.54637 +120.54 4.4927 9.54094 +120.443 4.94066 10.4922 +121.033 5.41941 11.509 +120.719 5.85953 12.4436 +120.495 6.30289 13.3852 +121.055 6.78953 14.4186 +120.912 7.23932 15.3738 +120.561 7.67599 16.3012 +120.202 8.11057 17.2241 +120.623 8.5993 18.2619 +120.54 9.05479 19.2293 +120.94 9.54919 20.2792 +120.74 9.99842 21.2332 +120.433 10.4384 22.1676 +120.312 10.8946 23.1364 +120.865 11.4152 24.242 +120.53 11.8545 25.175 +121.157 12.3917 26.3157 +121.093 12.8623 27.3151 +120.728 13.3013 28.2474 +121.127 13.8268 29.3633 +120.839 14.2766 30.3185 +121.407 14.831 31.4958 +121.003 15.2696 32.4274 +121.546 15.831 33.6196 +121.217 16.2823 34.5779 +120.974 16.7455 35.5616 +121.48 17.3162 36.7737 +121.026 17.7533 37.7019 +121.506 18.3306 38.9278 +121.69 18.869 40.0713 +121.205 19.3058 40.9988 +122.112 19.9694 42.4081 +121.606 20.407 43.3374 +119.514 20.571 43.6858 +116.686 20.5907 43.7275 +113.406 20.5077 43.5513 +109.956 20.3679 43.2544 +107.433 20.3774 43.2745 +103.918 20.1753 42.8455 +102.05 20.2728 43.0525 +99.4649 20.2113 42.9218 +97.4293 20.2441 42.9915 +96.4739 20.4915 43.5169 +97.387 21.1395 44.893 +97.3938 21.5991 45.869 +97.5657 22.1004 46.9335 +97.6366 22.5842 47.961 +97.6076 23.0496 48.9494 +96.2613 23.2018 49.2726 +96.5618 23.7505 50.4379 +96.8471 24.3032 51.6115 +96.2599 24.6404 52.3276 +96.5189 25.1976 53.511 +95.999 25.5555 54.271 +96.1466 26.0945 55.4158 +96.2794 26.6366 56.5669 +96.4806 27.2051 57.7743 +95.9196 27.5628 58.5338 +95.8459 28.0631 59.5963 +96.1684 28.6871 60.9216 +96.147 29.2167 62.0462 +96.1921 29.7734 63.2284 +96.2217 30.3326 64.416 +95.6765 30.7148 65.2276 +96.3131 31.4842 66.8617 +96.3737 32.0772 68.1209 +95.713 32.4342 68.8791 +95.7444 33.0301 70.1446 +95.7586 33.6287 71.4157 +95.679 34.2025 72.6343 +95.583 34.7782 73.8569 +96.2255 35.6353 75.6771 +96.091 36.2176 76.9136 +96.0886 36.8585 78.2747 +95.9198 37.4445 79.5193 +95.8073 38.0612 80.8288 +95.6769 38.6799 82.1427 +95.5283 39.3004 83.4605 +96.0035 40.1915 85.353 +95.7423 40.7879 86.6195 +95.5339 41.4157 87.9528 +95.3071 42.0451 89.2894 +95.6813 42.9541 91.2197 +96.0254 43.8692 93.163 +95.7311 44.5069 94.5174 +95.418 45.146 95.8744 +95.6823 46.0734 97.844 +95.2598 46.6847 99.1423 +95.4039 47.5879 101.06 +95.2611 48.3649 102.71 +94.9665 49.0789 104.227 +94.9644 49.9595 106.097 +94.9957 50.8776 108.046 +94.8734 51.7322 109.861 +94.845 52.6575 111.826 +94.7257 53.5526 113.727 +94.9337 54.6564 116.071 +94.8098 55.5928 118.06 +94.5965 56.498 119.982 +94.5254 57.5107 122.133 +94.3633 58.4918 124.216 +94.2799 59.5471 126.457 +93.9397 60.4634 128.403 +94.4404 61.9536 131.568 +94.2961 63.057 133.911 +94.1137 64.1638 136.262 +94.2065 65.4921 139.083 +94.3035 66.8622 141.992 +93.9454 67.9447 144.291 +93.85 69.2505 147.064 +93.8559 70.6721 150.083 +93.8107 72.0988 153.113 +94.0957 73.8302 156.79 +93.8474 75.1926 159.683 +93.6426 76.6346 162.746 +93.749 78.3843 166.461 +93.6569 80.0262 169.948 +93.5922 81.7498 173.608 +93.4209 83.4403 177.198 +93.5254 85.4447 181.455 +93.223 87.1458 185.068 +93.2647 89.2405 189.516 +93.2275 91.342 193.979 +93.1112 93.4495 198.455 +93.26 95.9175 203.696 +93.2396 98.3147 208.786 +92.2484 99.7674 211.872 +90.1295 100.027 212.423 +87.9021 100.159 212.703 +88.036 103.044 218.83 +89.26 107.383 228.044 +87.3499 108.073 229.511 +87.6713 111.626 237.055 +86.9883 114.054 242.212 +87.9865 118.884 252.468 +87.3607 121.732 258.517 +86.7383 124.748 264.922 +88.5623 131.577 279.424 +91.4757 140.522 298.421 +91.4408 145.384 308.745 +91.4638 150.667 319.965 +91.2529 155.921 331.122 +90.9503 161.39 342.738 +90.7678 167.492 355.696 +90.4068 173.73 368.942 +90.1505 180.685 383.712 +87.682 183.601 389.906 +87.3142 191.364 406.392 +89.0038 204.583 434.464 +85.487 206.542 438.625 +80.5597 205.087 435.535 +76.778 206.515 438.567 +71.9832 205.192 435.757 +67.9582 206 437.473 +63.2138 204.555 434.405 +59.2894 205.713 436.863 +54.5753 204.063 433.359 +50.759 205.741 436.923 +46.121 204.056 433.345 +42.2444 205.705 436.847 +37.7388 204.283 433.826 +33.7342 205.52 436.454 +29.23 203.597 432.37 +25.2626 205.357 436.107 +20.8632 203.57 432.313 +16.8146 205.131 435.627 +12.4943 203.268 431.672 +8.39112 204.798 434.921 +4.16867 203.501 432.166 +2.07612e-14 205 435.349 +-4.16343 203.245 431.623 +-8.3981 204.969 435.283 +-12.4812 203.056 431.221 +-16.7727 204.619 434.541 +-20.7846 202.804 430.686 +-25.137 204.336 433.939 +-29.1263 202.874 430.834 +-33.504 204.118 433.476 +-37.4328 202.626 430.309 +-41.9655 204.347 433.963 +-45.7855 202.572 430.193 +-50.3932 204.258 433.774 +-54.1791 202.581 430.213 +-58.7532 203.852 432.911 +-62.509 202.274 429.561 +-67.2484 203.849 432.904 +-70.8598 201.989 428.956 +-75.7299 203.696 432.58 +-79.2724 201.81 428.575 +-84.1673 203.354 431.853 +-87.6188 201.399 427.703 +-92.7332 203.241 431.613 +-96.3745 201.803 428.56 +-101.523 203.478 432.118 +-104.908 201.596 428.121 +-110.024 203.025 431.155 +-113.454 201.324 427.543 +-118.953 203.251 431.634 +-122.21 201.316 427.526 +-123.923 197.027 418.417 +-112.374 172.625 366.597 +-114.858 170.645 362.391 +-118.15 169.925 360.863 +-121.744 169.642 360.262 +-126.327 170.687 362.479 +-150.553 197.397 419.204 +-157.478 200.507 425.807 +-163.012 201.686 428.311 +-1093.65 1315.7 2794.1 +-1120.56 1311.59 2785.35 +-1147.38 1307.37 2776.41 +-182.839 202.918 430.927 +-159.501 172.502 366.335 +-162.13 170.955 363.048 +-165.664 170.385 361.838 +-168.64 169.253 359.434 +-174.692 171.159 363.482 +-142.276 136.137 289.109 +-142.489 133.2 282.871 +-145.507 132.935 282.309 +-149.473 133.505 283.518 +-436.092 380.911 808.924 +-436.962 373.366 792.9 +-438.328 366.489 778.296 +-439.723 359.857 764.213 +-442.007 354.146 752.085 +-443.996 348.371 739.821 +-445.395 342.311 726.95 +-447.613 337.045 715.768 +-449.45 331.642 704.293 +-452.318 327.132 694.716 +-453.852 321.787 683.364 +-456.455 317.326 673.891 +-454.406 309.801 657.91 +-458.478 306.59 651.092 +-463.597 304.124 645.854 +-465.945 299.902 636.888 +-468.995 296.216 629.061 +-471.477 292.249 620.637 +-474.004 288.391 612.444 +-476.583 284.642 604.481 +-479.104 280.929 596.596 +-482.044 277.528 589.373 +-484.461 273.888 581.643 +-487.861 270.859 575.211 +-489.82 267.088 567.203 +-492.845 263.957 560.553 +-495.401 260.624 553.476 +-498.176 257.458 546.752 +-501.053 254.389 540.234 +-504.037 251.415 533.918 +-506.412 248.181 527.051 +-509.224 245.204 520.729 +-512.086 242.289 514.538 +-515.002 239.433 508.474 +-511.021 233.459 495.786 +-500.64 224.752 477.296 +-506.823 223.587 474.821 +-135.275 58.6443 124.54 +-516.329 219.965 467.13 +-521.101 218.157 463.29 +-524.255 215.679 458.027 +-141.956 57.3893 121.875 +-142.76 56.714 120.441 +-142.737 55.7206 118.331 +-143.501 55.0453 116.897 +-141.852 53.4652 113.542 +-142.187 52.6566 111.825 +-145.161 52.8177 112.167 +-148.996 53.2616 113.109 +-155.945 54.765 116.302 +-156.983 54.1567 115.01 +-157.461 53.3587 113.316 +-158.784 52.8501 112.235 +-160.813 52.5689 111.638 +-565.594 181.571 385.594 +-569.774 179.613 381.437 +-585.486 181.219 384.848 +-576.312 175.127 371.91 +-579.632 172.905 367.19 +-583.893 170.96 363.061 +-586.627 168.569 357.982 +-590.475 166.499 353.587 +-593.863 164.298 348.911 +-598.049 162.312 344.695 +-600.842 159.948 339.673 +-604.948 157.93 335.39 +-607.817 155.587 330.414 +-612.532 153.711 326.429 +-615.224 151.321 321.355 +-380.607 91.7374 194.819 +-381.159 90.009 191.148 +-380.791 88.0804 187.053 +-381.345 86.3815 183.444 +-381.769 84.6655 179.8 +-380.282 82.5465 175.3 +-380.437 80.8066 171.605 +-381.628 79.2955 168.396 +-381.794 77.5804 164.754 +-380.649 75.6181 160.587 +-379.272 73.6346 156.375 +-381.679 72.3953 153.743 +-380.121 70.4126 149.532 +-379.8 68.6809 145.855 +-380.269 67.1033 142.504 +-114.971 19.789 42.0251 +-113.883 19.1111 40.5853 +-111.75 18.2747 38.8092 +-109.684 17.4707 37.1017 +-109.192 16.9311 35.9558 +-109.535 16.5245 35.0924 +-109.207 16.0196 34.0201 +-109.437 15.5995 33.1279 +-108.991 15.0867 32.0389 +-109.296 14.681 31.1773 +-108.636 14.1495 30.0487 +-109.401 13.8056 29.3184 +-109.295 13.3514 28.3538 +-109.854 12.9787 27.5623 +-110.116 12.5698 26.694 +-110.853 12.2133 25.9368 +-111.778 11.8729 25.2139 +-113.087 11.5663 24.5627 +-113.612 11.1741 23.73 +-115.398 10.8989 23.1455 +-117.28 10.62 22.5533 +-122.295 10.5998 22.5103 +-159.318 13.193 28.0175 +-160.172 12.6468 26.8575 +-161.41 12.1248 25.749 +-161.159 11.4892 24.3991 +-853.56 57.5938 122.309 +-863.114 54.9533 116.702 +-381.748 22.8564 48.539 +-381.012 21.3696 45.3816 +-380.542 19.9056 42.2725 +-403.589 19.5896 41.6016 +-404.969 18.133 38.5083 +-404.629 16.5982 35.2489 +-404.455 15.0747 32.0135 +-404.051 13.5472 28.7695 +-404.213 12.0415 25.572 +-404.943 10.5514 22.4074 +-404.645 9.03434 19.1858 +-404.215 7.51853 15.9668 +-403.454 6.00212 12.7464 +-145.65 1.62482 3.45056 +-144.378 1.07362 2.28 +-146.094 0.543151 1.15347 +119.9 5.32907e-15 2.84217e-14 +119.895 0.454268 0.942552 +119.882 0.908502 1.88503 +119.759 1.36153 2.82502 +120.327 1.82431 3.78522 +120.385 2.28202 4.73491 +120.335 2.73804 5.6811 +120.275 3.19385 6.62686 +120.007 3.64336 7.55953 +120.926 4.13196 8.57332 +120.739 4.58619 9.51579 +120.443 5.03511 10.4473 +121.133 5.52758 11.4691 +120.719 5.97155 12.3903 +120.495 6.42339 13.3278 +121.055 6.91933 14.3568 +121.011 7.3838 15.3205 +120.66 7.82912 16.2445 +121.091 8.32675 17.277 +120.623 8.7637 18.1836 +120.344 9.21284 19.1155 +120.055 9.66054 20.0445 +120.642 10.1813 21.1249 +120.335 10.6293 22.0546 +121.192 11.1842 23.2058 +120.865 11.6335 24.138 +120.53 12.0812 25.067 +121.157 12.6286 26.2028 +121.093 13.1082 27.1979 +120.728 13.5556 28.1262 +121.224 14.1024 29.2607 +120.839 14.5495 30.1885 +121.407 15.1145 31.3608 +121.195 15.5862 32.3395 +121.546 16.1336 33.4754 +121.408 16.6196 34.4838 +120.974 17.0656 35.4091 +121.48 17.6473 36.616 +120.743 18.0503 37.4523 +121.506 18.681 38.7608 +121.596 19.2149 39.8686 +121.299 19.6901 40.8546 +122.019 20.3356 42.1939 +121.513 20.7812 43.1185 +119.514 20.9643 43.4984 +116.871 21.0176 43.609 +113.406 20.8997 43.3645 +110.689 20.8958 43.3563 +108.072 20.8905 43.3454 +104.646 20.7051 42.9605 +102.05 20.6604 42.8678 +99.4649 20.5977 42.7377 +97.4293 20.6311 42.8071 +96.6529 20.922 43.4107 +96.4069 21.3268 44.2506 +96.7729 21.8717 45.3812 +96.6828 22.319 46.3093 +97.1972 22.9124 47.5405 +96.7329 23.2797 48.3027 +96.3484 23.6668 49.1057 +96.5618 24.2045 50.2215 +96.761 24.7458 51.3445 +96.1742 25.0891 52.0568 +96.5189 25.6793 53.2815 +95.999 26.044 54.0383 +96.231 26.6167 55.2265 +96.3632 27.1694 56.3733 +96.4806 27.7252 57.5265 +96.5829 28.2839 58.6858 +96.0107 28.6488 59.4427 +96.7419 29.4099 61.022 +96.147 29.7753 61.7801 +96.1112 30.3171 62.9043 +95.4982 30.68 63.6574 +96.3953 31.5372 65.4358 +96.3131 32.0862 66.5749 +96.3737 32.6904 67.8287 +95.713 33.0543 68.5837 +96.3661 33.8802 70.2973 +95.6814 34.244 71.0522 +95.7556 34.8843 72.3807 +95.583 35.4431 73.5402 +96.2255 36.3166 75.3526 +96.091 36.91 76.5837 +96.0886 37.5631 77.939 +95.9198 38.1604 79.1782 +95.8073 38.7888 80.4822 +95.6043 39.3894 81.7283 +96.1757 40.3232 83.6657 +95.9322 40.9295 84.9238 +95.7423 41.5677 86.248 +95.604 42.2385 87.6399 +95.3071 42.849 88.9064 +95.6125 43.744 90.7636 +95.4116 44.4217 92.1698 +95.7311 45.3578 94.112 +95.2842 45.9448 95.3299 +95.6823 46.9542 97.4244 +95.2598 47.5772 98.7171 +95.4039 48.4977 100.627 +95.004 49.1563 101.993 +94.8393 49.9499 103.64 +94.9644 50.9146 105.642 +95.058 51.8841 107.653 +94.935 52.7555 109.461 +94.4189 53.4232 110.847 +94.4248 54.4031 112.88 +94.8742 55.6661 115.501 +94.6922 56.5857 117.408 +94.5965 57.5782 119.468 +94.5828 58.6458 121.683 +94.5898 59.7533 123.981 +94.224 60.6494 125.84 +94.6572 62.09 128.829 +94.3315 63.0655 130.853 +94.2961 64.2625 133.337 +94.0077 65.3171 135.525 +94.2065 66.7442 138.486 +93.8914 67.8431 140.766 +93.9961 69.281 143.75 +93.9 70.6122 146.512 +93.9052 72.061 149.518 +93.8591 73.515 152.535 +94.048 75.2034 156.038 +93.8943 76.6687 159.078 +93.6888 78.1379 162.127 +93.749 79.8828 165.747 +93.6123 81.517 169.138 +93.5484 83.2736 172.783 +93.3779 84.9964 176.357 +93.1451 86.7239 179.942 +93.1401 88.7328 184.11 +93.2647 90.9466 188.703 +93.6263 93.4864 193.973 +93.4238 95.5561 198.267 +93.2217 97.7113 202.739 +93.0523 99.9928 207.473 +90.0494 99.2512 205.934 +88.6244 100.237 207.979 +87.9371 102.114 211.875 +87.6598 104.565 216.96 +89.8608 110.173 228.595 +87.5778 110.427 229.122 +87.8617 114.007 236.551 +87.2355 116.565 241.859 +87.5655 120.576 250.182 +87.5653 124.35 258.011 +87.1075 127.674 264.908 +91.4013 138.391 287.145 +91.3955 143.083 296.881 +91.5961 148.414 307.942 +91.4388 153.506 318.506 +91.1078 158.649 329.177 +90.7869 164.181 340.655 +90.7902 170.737 354.259 +90.2553 176.754 366.743 +89.2149 182.228 378.101 +86.3263 184.218 382.23 +89.6039 200.137 415.26 +87.6188 205.25 425.869 +84.0978 207.07 429.646 +79.0908 205.197 425.76 +75.5109 206.99 429.479 +70.4755 204.735 424.8 +66.8448 206.499 428.46 +62.013 204.506 424.325 +58.3754 206.414 428.284 +53.6357 204.384 424.072 +49.9332 206.263 427.971 +45.3063 204.284 423.864 +41.5559 206.221 427.884 +37.0013 204.12 423.524 +33.1832 206.028 427.483 +28.7905 204.369 424.041 +24.8962 206.248 427.94 +20.4968 203.819 422.9 +16.5528 205.798 427.006 +12.2848 203.682 422.617 +8.25324 205.284 425.94 +4.09449 203.701 422.655 +2.58682e-14 205.619 426.635 +-4.08925 203.441 422.115 +-8.24975 205.197 425.76 +-12.2587 203.249 421.717 +-16.5075 205.234 425.835 +-20.44 203.255 421.729 +-24.7392 204.947 425.241 +-28.589 202.939 421.074 +-32.9948 204.859 425.057 +-36.813 203.081 421.369 +-41.3031 204.967 425.281 +-44.9708 202.771 420.726 +-49.5047 204.493 424.299 +-53.2395 202.874 420.939 +-57.8636 204.604 424.528 +-61.4778 202.741 420.664 +-66.2046 204.521 424.357 +-69.6182 202.244 419.632 +-74.541 204.331 423.963 +-77.8695 202.029 419.185 +-82.8475 203.992 423.259 +-86.3067 202.176 419.492 +-91.0731 203.418 422.069 +-94.7197 202.129 419.394 +-99.86 203.971 423.216 +-103.004 201.72 418.545 +-108.156 203.395 422.02 +-111.33 201.331 417.738 +-116.727 203.261 421.742 +-116.151 194.993 404.586 +-117.814 190.896 396.087 +-112.668 176.386 365.979 +-115.106 174.283 361.616 +-118.576 173.798 360.61 +-122.241 173.592 360.182 +-127.229 175.192 363.503 +-145.887 194.936 404.469 +-151.608 196.723 408.176 +-1066.66 1344.95 2790.61 +-1093.65 1340.86 2782.12 +-165.469 197.38 409.54 +-167.189 194.143 402.824 +-470.322 531.949 1103.73 +-160.381 176.77 366.776 +-162.916 175.068 363.245 +-166.582 174.605 362.284 +-169.616 173.487 359.965 +-432.164 431.518 895.349 +-142.805 139.256 288.939 +-143.277 136.497 283.215 +-146.184 136.106 282.404 +-149.646 136.214 282.627 +-436.135 388.232 805.535 +-437.586 381.048 790.628 +-438.918 373.998 776.002 +-440.231 367.161 761.814 +-442.571 361.377 749.814 +-444.521 355.451 737.519 +-445.831 349.197 724.541 +-448.056 343.829 713.404 +-450.15 338.509 702.365 +-452.826 333.761 692.513 +-454.779 328.608 681.823 +-457.186 323.911 672.077 +-462.461 321.32 666.701 +-465.946 317.542 658.861 +-462.399 309.137 641.422 +-466 305.672 634.233 +-469.442 302.167 626.96 +-471.477 297.837 617.975 +-474.233 294.047 610.113 +-476.641 290.119 601.961 +-479.985 286.826 595.13 +-482.044 282.833 586.845 +-485.063 279.47 579.867 +-488.409 276.347 573.388 +-490.559 272.605 565.622 +-493.405 269.309 558.783 +-496.156 266.012 551.943 +-499.576 263.117 545.936 +-501.696 259.585 538.607 +-505.076 256.75 532.725 +-507.199 253.319 525.606 +-510.615 250.575 519.912 +-513.29 247.501 513.535 +-515.813 244.395 507.09 +-518.796 241.542 501.171 +-521.153 238.434 494.721 +-507.031 227.955 472.98 +-513.206 226.738 470.454 +-134.704 58.4834 121.346 +-134.448 57.362 119.019 +-523.895 219.651 455.75 +-140.65 57.9485 120.236 +-142.833 57.8278 119.986 +-141.262 56.1993 116.607 +-142.832 55.8363 115.854 +-141.777 54.4587 112.995 +-142.338 53.7202 111.463 +-146.986 54.5039 113.089 +-150.451 54.8099 113.724 +-157.026 56.1988 116.606 +-157.217 55.2741 114.687 +-158.087 54.595 113.278 +-159.809 54.2078 112.475 +-161.844 53.9173 111.872 +-570.306 186.584 387.139 +-566.88 182.118 377.872 +-2650.58 836.092 1734.79 +-577.859 178.954 371.309 +-580.042 176.335 365.873 +-584.718 174.475 362.014 +-587.042 171.913 356.698 +-383.337 110.158 228.564 +-594.701 167.675 347.906 +-598.808 165.626 343.653 +-602.453 163.443 339.124 +-605.375 161.063 334.186 +-608.589 158.763 329.415 +-612.877 156.738 325.212 +-616.004 154.41 320.382 +-379.562 93.2346 193.451 +-379.585 91.3508 189.542 +-381.67 89.9714 186.68 +-380.286 87.788 182.15 +-380.262 85.9433 178.322 +-379.391 83.9275 174.139 +-380.884 82.4483 171.07 +-380.729 80.6213 167.28 +-381.252 78.9515 163.815 +-382.281 77.3938 160.583 +-382.184 75.6185 156.899 +-379.944 73.4438 152.387 +-379.296 71.6033 148.568 +-379.34 69.9088 145.052 +-381.193 68.5521 142.237 +-114.693 20.1186 41.7436 +-112.86 19.3014 40.048 +-111.096 18.5152 38.4168 +-109.965 17.8503 37.0372 +-109.286 17.2696 35.8324 +-109.535 16.8405 34.9419 +-108.546 16.2269 33.6689 +-108.583 15.7737 32.7286 +-109.562 15.4557 32.0686 +-109.01 14.9225 30.9623 +-108.732 14.4327 29.9462 +-109.114 14.0325 29.1158 +-109.872 13.6784 28.3811 +-109.95 13.2384 27.4682 +-110.888 12.9 26.766 +-111.434 12.512 25.9609 +-111.293 12.0473 24.9967 +-112.406 11.7164 24.3102 +-113.514 11.378 23.608 +-115.203 11.0885 23.0072 +-117.28 10.8231 22.4565 +-121.511 10.7332 22.2701 +-158.336 13.3624 27.7254 +-160.664 12.9282 26.8244 +-162.493 12.4396 25.8106 +-162.145 11.7805 24.4431 +-854.548 58.7626 121.925 +-864.004 56.0616 116.321 +-381.748 23.2933 48.3309 +-380.417 21.7441 45.1164 +-381.634 20.3443 42.212 +-403.986 19.9838 41.464 +-404.969 18.4797 38.3431 +-405.126 16.9363 35.1408 +-405.949 15.4197 31.994 +-404.35 13.8163 28.6673 +-404.213 12.2717 25.4624 +-403.546 10.7159 22.2343 +-405.643 9.22981 19.1508 +-403.915 7.65658 15.8865 +-404.354 6.1305 12.7201 +-146.75 1.66839 3.46171 +-145.278 1.10096 2.28436 +-145.794 0.552398 1.14616 +119.8 1.77636e-15 -1.13687e-13 +119.895 0.462753 0.938416 +119.882 0.925471 1.87676 +119.759 1.38696 2.81262 +120.327 1.85838 3.76861 +120.385 2.32464 4.71413 +120.335 2.78918 5.65616 +120.275 3.2535 6.59777 +120.007 3.71141 7.52636 +120.826 4.20567 8.52866 +120.54 4.66411 9.45833 +120.343 5.12495 10.3929 +120.238 5.58921 11.3343 +120.719 6.08309 12.3359 +120.594 6.54876 13.2802 +121.055 7.04857 14.2938 +120.219 7.47244 15.1533 +120.759 7.98189 16.1865 +120.202 8.42001 17.0749 +120.524 8.92008 18.089 +121.23 9.45404 19.1718 +120.94 9.91351 20.1036 +120.642 10.3714 21.0322 +120.335 10.8279 21.9578 +121.095 11.3838 23.0853 +120.865 11.8508 24.0321 +120.53 12.3068 24.957 +121.157 12.8645 26.0879 +121.093 13.353 27.0785 +120.728 13.8088 28.0028 +120.451 14.2742 28.9466 +120.936 14.8331 30.08 +121.311 15.3846 31.1984 +121.195 15.8773 32.1976 +121.642 16.4479 33.3547 +121.408 16.9301 34.3324 +121.069 17.398 35.2814 +121.291 17.9488 36.3984 +121.783 18.5459 37.6091 +121.506 19.0299 38.5907 +121.878 19.6192 39.7857 +121.205 20.0423 40.6438 +121.926 20.6996 41.9766 +121.419 21.1531 42.8964 +121.276 21.6706 43.9458 +117.148 21.4609 43.5205 +114.235 21.4456 43.4895 +111.515 21.4448 43.4879 +108.072 21.2807 43.1551 +106.283 21.4219 43.4415 +102.685 21.1771 42.945 +100.187 21.1347 42.859 +98.2382 21.191 42.9732 +96.0265 21.1746 42.94 +97.2979 21.926 44.4636 +96.7729 22.2802 45.182 +96.9476 22.7982 46.2324 +97.9002 23.5092 47.6742 +96.9953 23.7789 48.2212 +96.3484 24.1088 48.8902 +96.5618 24.6566 50.0011 +96.8471 25.2304 51.1647 +96.2599 25.5805 51.8745 +96.5189 26.1589 53.0477 +96.6775 26.718 54.1813 +96.0623 27.0663 54.8877 +96.2794 27.6528 56.0771 +96.4806 28.2431 57.274 +96.5829 28.8122 58.4282 +95.8459 29.1337 59.0803 +96.0046 29.7309 60.2912 +96.3099 30.3828 61.6132 +96.1921 30.9093 62.681 +96.3021 31.5162 63.9116 +96.3953 32.1262 65.1486 +95.7577 32.497 65.9006 +96.2949 33.2738 67.4758 +96.3391 33.892 68.7294 +95.6667 34.2625 69.4808 +95.7586 34.9117 70.7974 +95.6023 35.479 71.9477 +96.2674 36.3636 73.7417 +95.5462 36.7338 74.4924 +96.091 37.5994 76.2476 +96.0143 38.2351 77.5369 +95.9198 38.8731 78.8307 +95.8073 39.5133 80.129 +95.6769 40.1556 81.4314 +96.1757 41.0763 83.2986 +96.0035 41.725 84.6139 +95.813 42.3754 85.9329 +95.5339 42.9959 87.1912 +95.3071 43.6493 88.5163 +95.6813 44.5929 90.4298 +96.0254 45.5429 92.3563 +95.7311 46.205 93.699 +95.418 46.8684 95.0443 +95.6823 47.8312 96.9968 +95.3254 48.499 98.3511 +95.339 49.3699 100.117 +95.3254 50.2438 101.889 +94.712 50.8148 103.047 +94.9015 51.8316 105.109 +95.058 52.8532 107.181 +94.2578 53.3574 108.203 +94.4189 54.4211 110.36 +94.7859 55.6311 112.814 +94.8148 56.6705 114.922 +94.5159 57.5351 116.675 +94.5384 58.6178 118.871 +94.5828 59.7411 121.149 +94.3066 60.6872 123.067 +94.2799 61.8189 125.362 +94.5468 63.1763 128.115 +94.3315 64.2435 130.279 +94.2961 65.4628 132.752 +94.1137 66.6118 135.082 +94.2065 67.9908 137.878 +93.8914 69.1102 140.148 +93.9454 70.537 143.042 +93.85 71.8926 145.791 +93.9052 73.4069 148.862 +93.8107 74.8496 151.787 +94.0957 76.647 155.432 +93.8943 78.1007 158.38 +93.6426 79.5584 161.336 +93.749 81.3749 165.02 +93.6569 83.0794 168.476 +93.5922 84.8688 172.105 +93.4209 86.6237 175.664 +93.5677 88.7449 179.965 +93.5548 90.7926 184.118 +93.2647 92.6453 187.875 +93.2275 94.827 192.299 +93.502 97.4222 197.562 +93.0686 99.3731 201.518 +91.9659 100.672 204.152 +88.4734 99.3355 201.442 +87.9077 101.283 205.392 +87.832 103.897 210.693 +87.7624 106.643 216.26 +90.0611 112.481 228.099 +87.4476 112.322 227.777 +87.2588 115.34 233.897 +87.3591 118.911 241.139 +87.1746 122.281 247.972 +88.0331 127.349 258.251 +90.6577 135.359 274.495 +91.3738 140.933 285.798 +91.4757 145.884 295.837 +91.4925 151.016 306.245 +91.4638 156.415 317.195 +91.1562 161.698 327.906 +90.7636 167.204 339.072 +90.7228 173.796 352.441 +90.1471 179.84 364.696 +88.5704 184.291 373.722 +87.1836 189.523 384.332 +89.5657 203.788 413.261 +86.0152 205.256 416.239 +82.6392 207.279 420.341 +77.5724 205.017 415.753 +74.1812 207.143 420.065 +69.3965 205.366 416.461 +65.6619 206.633 419.03 +60.9296 204.686 415.082 +57.242 206.187 418.125 +52.8093 204.993 415.705 +49.0448 206.377 418.512 +44.5683 204.709 415.13 +40.815 206.328 418.411 +36.3658 204.361 414.423 +32.5902 206.126 418.002 +28.2716 204.434 414.571 +24.3886 205.816 417.374 +20.1609 204.223 414.144 +16.2422 205.708 417.154 +12.0754 203.95 413.59 +8.11362 205.581 416.896 +4.02381 203.923 413.536 +2.38698e-14 205.656 417.05 +-4.01857 203.658 412.998 +-8.09443 205.094 415.91 +-12.0545 203.596 412.872 +-16.1969 205.133 415.989 +-20.1042 203.649 412.979 +-24.2891 204.977 415.672 +-28.1129 203.286 412.243 +-32.374 204.758 415.228 +-36.1618 203.214 412.098 +-40.5274 204.874 415.463 +-44.252 203.256 412.183 +-48.6057 204.53 414.765 +-52.3338 203.148 411.963 +-56.7424 204.386 414.475 +-60.3814 202.844 411.347 +-64.966 204.443 414.59 +-68.4653 202.61 410.872 +-73.1175 204.173 414.042 +-76.6481 202.574 410.799 +-81.3715 204.1 413.894 +-84.7395 202.213 410.067 +-89.5848 203.831 413.349 +-93.0051 202.178 409.996 +-98.0304 203.974 413.639 +-101.359 202.206 410.053 +-106.379 203.79 413.265 +-109.626 201.952 409.538 +-114.671 203.409 412.494 +-116.978 200.048 405.676 +-114.32 188.695 382.653 +-113.015 180.234 365.496 +-115.547 178.218 361.408 +-119.059 177.765 360.49 +-122.65 177.426 359.802 +-128.371 180.067 365.158 +-143.322 195.086 395.614 +-146.563 193.729 392.862 +-1066.66 1370.07 2778.36 +-1093.65 1365.9 2769.91 +-162.22 197.119 399.736 +-166.173 196.568 398.62 +-169.436 195.217 395.881 +-161.114 180.894 366.835 +-163.553 179.035 363.065 +-167.08 178.397 361.771 +-170.085 177.216 359.377 +-142.274 144.714 293.466 +-142.805 141.857 287.671 +-143.733 139.489 282.87 +-147.113 139.53 282.953 +-435.419 403.739 818.74 +-436.486 395.802 802.645 +-438.122 388.64 788.122 +-439.327 381.338 773.315 +-440.739 374.45 759.346 +-442.806 368.322 746.919 +-444.951 362.44 734.991 +-446.898 356.57 723.087 +-448.795 350.828 711.444 +-450.75 345.291 700.215 +-453.232 340.299 690.092 +-455.088 334.973 679.292 +-458.858 331.168 671.575 +-467.76 331.072 671.38 +-478.68 332.313 673.896 +-463.651 315.764 640.337 +-462.799 309.242 627.111 +-469.442 307.811 624.209 +-472.496 304.055 616.593 +-474.52 299.72 607.802 +-477.744 296.221 600.707 +-480.75 292.649 593.462 +-482.937 288.649 585.35 +-486.206 285.362 578.684 +-488.957 281.825 571.512 +-490.928 277.906 563.564 +-494.339 274.858 557.384 +-496.534 271.187 549.939 +-499.767 268.134 543.748 +-502.274 264.738 536.861 +-505.076 261.545 530.387 +-507.79 258.351 523.909 +-511.278 255.586 518.302 +-513.491 252.223 511.482 +-516.624 249.351 505.658 +-519.546 246.409 499.693 +-522.186 243.368 493.526 +-516.965 236.763 480.13 +-528.345 237.786 482.206 +-515.198 227.857 462.071 +-133.592 58.0614 117.743 +-134.373 57.39 116.381 +-139.127 58.3913 118.412 +-141.371 58.3046 118.236 +-140.378 56.8903 115.368 +-141.718 56.4352 114.445 +-141.628 55.4171 112.38 +-142.64 54.8395 111.209 +-147.671 55.7806 113.117 +-153.209 56.8575 115.301 +-156.408 57.0234 115.638 +-156.828 56.1671 113.901 +-158.165 55.6422 112.837 +-159.966 55.2746 112.091 +-161.765 54.8974 111.326 +-583.563 194.487 394.4 +-571.783 187.124 379.468 +-574.807 184.702 374.556 +-578.348 182.451 369.991 +-581.188 179.983 364.988 +-584.8 177.759 360.476 +-588.617 175.594 356.086 +-381.503 111.678 226.472 +-595.792 171.12 347.014 +-599.904 169.028 342.771 +-602.877 166.613 337.873 +-606.568 164.395 333.375 +-609.703 162.025 328.57 +-613.652 159.867 324.195 +-616.437 157.404 319.2 +-380.345 95.172 192.999 +-378.186 92.7143 188.015 +-378.682 90.9346 184.406 +-380.197 89.4069 181.308 +-380.528 87.6096 177.663 +-380.282 85.6958 173.782 +-380.884 83.9882 170.32 +-380.1 81.9914 166.27 +-378.635 79.8738 161.976 +-380.831 78.5403 159.272 +-380.546 76.7009 155.542 +-380.309 74.8872 151.864 +-381.222 73.3109 148.667 +-380.905 71.5087 145.012 +-380.916 69.7816 141.51 +-113.765 20.3287 41.2244 +-112.953 19.6781 39.9051 +-111.376 18.9086 38.3446 +-109.965 18.1837 36.8746 +-109.568 17.6376 35.7672 +-108.781 17.0369 34.549 +-108.451 16.5156 33.492 +-108.678 16.0824 32.6134 +-108.801 15.635 31.7061 +-109.01 15.2012 30.8264 +-109.401 14.7928 29.9983 +-108.922 14.2695 28.9371 +-109.68 13.9095 28.2071 +-109.95 13.4857 27.3476 +-110.695 13.1181 26.6021 +-111.434 12.7457 25.847 +-112.263 12.3794 25.1041 +-113.573 12.0592 24.4547 +-114.294 11.6701 23.6658 +-115.008 11.2764 22.8674 +-117.378 11.0344 22.3766 +-124.548 11.207 22.7267 +-158.336 13.612 27.6038 +-161.45 13.2341 26.8375 +-163.478 12.7487 25.8531 +-164.808 12.1976 24.7355 +-854.548 59.8601 121.39 +-864.894 57.1676 115.93 +-381.55 23.7161 48.0938 +-380.417 22.1502 44.9184 +-380.443 20.6596 41.8956 +-401.403 20.2269 41.0181 +-404.074 18.7832 38.0905 +-404.131 17.2103 34.9007 +-404.057 15.6345 31.7051 +-404.948 14.0952 28.5837 +-404.512 12.5102 25.3695 +-403.546 10.9161 22.1367 +-404.145 9.36749 18.9963 +-403.316 7.788 15.7933 +-404.054 6.24041 12.6549 +-144.55 1.67408 3.39487 +-146.278 1.12925 2.29 +-145.794 0.562715 1.14113 +119.8 1.77636e-15 -1.13687e-13 +119.895 0.4712 0.934203 +119.882 0.942364 1.86833 +120.559 1.42171 2.81869 +120.327 1.8923 3.75169 +120.385 2.36707 4.69297 +120.235 2.83773 5.6261 +120.275 3.31289 6.56815 +120.107 3.7823 7.4988 +120.826 4.28244 8.49037 +120.54 4.74924 9.41587 +120.343 5.2185 10.3462 +121.133 5.73361 11.3675 +120.719 6.19413 12.2805 +120.594 6.6683 13.2206 +121.055 7.17723 14.2296 +121.011 7.65901 15.1848 +119.968 8.07436 16.0083 +120.202 8.57371 16.9983 +120.524 9.08291 18.0078 +120.344 9.55622 18.9462 +120.94 10.0945 20.0133 +120.642 10.5608 20.9378 +120.335 11.0255 21.8592 +120.997 11.5823 22.9631 +119.987 11.9793 23.7503 +120.627 12.5416 24.865 +120.282 13.0047 25.7831 +121.093 13.5968 26.957 +121.503 14.151 28.0559 +121.224 14.628 29.0015 +121.707 15.2001 30.1358 +121.311 15.6654 31.0583 +121.195 16.1671 32.053 +120.877 16.6428 32.9962 +121.408 17.2391 34.1783 +120.974 17.7017 35.0954 +121.101 18.2479 36.1783 +121.594 18.8551 37.3821 +121.601 19.3923 38.4473 +120.844 19.8079 39.2711 +121.955 20.5344 40.7115 +121.459 20.9967 41.6282 +122.071 21.6548 42.9329 +121.554 22.1168 43.8489 +117.517 21.9216 43.4618 +114.327 21.8547 43.3292 +112.34 21.9979 43.6131 +108.895 21.8341 43.2883 +106.101 21.7756 43.1724 +102.685 21.5637 42.7522 +100.999 21.695 43.0126 +98.3281 21.5975 42.8194 +95.6685 21.4808 42.5878 +97.2088 22.3058 44.2235 +96.7729 22.6869 44.9792 +96.7711 23.1721 45.941 +98.076 23.9813 47.5453 +97.6076 24.3658 48.3077 +96.3484 24.5489 48.6707 +96.5618 25.1067 49.7767 +96.8471 25.6909 50.935 +96.2599 26.0474 51.6416 +96.4336 26.6129 52.7629 +96.6775 27.2057 53.9381 +96.1466 27.5846 54.6893 +96.2794 28.1576 55.8254 +96.4806 28.7586 57.0169 +96.5829 29.3382 58.1659 +95.8459 29.6656 58.815 +96.1684 30.3253 60.123 +96.147 30.8851 61.2329 +96.1112 31.4471 62.3471 +96.3021 32.0915 63.6247 +95.6765 32.4687 64.3725 +96.3131 33.2821 65.9852 +95.6645 33.6593 66.7331 +96.4173 34.5386 68.4764 +96.3661 35.143 69.6745 +95.6814 35.5204 70.4228 +96.2918 36.3871 72.1412 +95.6591 36.7934 72.9468 +96.2255 37.6702 74.6851 +95.5667 38.0768 75.4911 +96.0143 38.9331 77.1888 +95.9198 39.5827 78.4768 +95.8073 40.2346 79.7693 +95.6769 40.8886 81.0659 +96.1757 41.8261 82.9246 +96.0035 42.4866 84.2341 +95.813 43.1489 85.5471 +95.604 43.8129 86.8635 +95.9323 44.7376 88.6969 +95.6813 45.4069 90.0239 +95.4798 46.1108 91.4194 +95.7311 47.0484 93.2783 +95.418 47.7239 94.6176 +95.6823 48.7043 96.5614 +95.2598 49.3506 97.8426 +95.5338 50.3738 99.8712 +95.3254 51.161 101.432 +94.7757 51.777 102.653 +94.9015 52.7777 104.637 +94.9335 53.7477 106.56 +95.0581 54.793 108.633 +94.845 55.6644 110.36 +94.9664 56.7547 112.522 +94.2199 57.3428 113.688 +94.6922 58.6948 116.368 +94.5965 59.7243 118.41 +94.5254 60.7947 120.532 +94.3066 61.7949 122.515 +94.224 62.91 124.726 +94.7124 64.4421 127.763 +94.2226 65.3405 129.544 +94.3498 66.696 132.232 +94.1667 67.866 134.551 +94.2065 69.2319 137.259 +94.2005 70.6032 139.978 +93.8946 71.7854 142.322 +93.9 73.2441 145.214 +93.8559 74.7077 148.116 +93.8107 76.2159 151.106 +94.0957 78.0461 154.734 +93.8943 79.5264 157.669 +93.6888 81.0503 160.691 +93.749 82.8603 164.279 +93.6569 84.5959 167.72 +93.5922 86.418 171.333 +93.4209 88.205 174.875 +93.4832 90.2828 178.995 +93.223 92.1221 182.641 +93.2647 94.3364 187.032 +93.2275 96.558 191.436 +93.1894 98.8687 196.017 +91.9588 99.9801 198.221 +90.018 100.338 198.93 +87.6671 100.227 198.71 +87.7643 102.964 204.137 +87.6219 105.541 209.245 +87.6598 108.462 215.038 +90.3281 114.873 227.749 +87.4802 114.415 226.84 +87.4492 117.701 233.355 +87.4209 121.167 240.226 +87.2348 124.598 247.029 +89.2026 131.397 260.507 +91.6518 139.342 276.259 +91.677 143.982 285.46 +91.4757 148.547 294.509 +91.5443 153.859 305.042 +91.4638 159.271 315.771 +90.9142 164.212 325.568 +90.7869 170.3 337.638 +90.7228 176.969 350.859 +89.6493 182.111 361.054 +87.8635 186.157 369.075 +89.3168 197.704 391.969 +89.2604 206.801 410.003 +84.9764 206.479 409.367 +81.4757 208.092 412.563 +76.6481 206.272 408.955 +73.0862 207.811 412.006 +68.3323 205.907 408.233 +64.7155 207.372 411.137 +60.1073 205.609 407.642 +56.4499 207.045 410.487 +52.0169 205.603 407.629 +48.3235 207.054 410.505 +43.9836 205.712 407.844 +40.2137 206.998 410.395 +35.8872 205.353 407.133 +32.1159 206.833 410.069 +27.9053 205.468 407.362 +24.0484 206.65 409.704 +19.9123 205.387 407.201 +16.0154 206.537 409.481 +11.9262 205.107 406.645 +7.98797 206.091 408.597 +3.97057 204.899 406.234 +2.29816e-14 206.123 408.66 +-3.96447 204.584 405.609 +-7.98797 206.091 408.597 +-11.8843 204.386 405.217 +-15.9595 205.817 408.053 +-19.8337 204.577 405.594 +-23.9228 205.571 407.565 +-27.7466 204.3 405.045 +-31.9066 205.486 407.397 +-35.7224 204.41 405.263 +-39.926 205.518 407.461 +-43.6482 204.143 404.734 +-47.8845 205.173 406.776 +-51.6093 203.992 404.436 +-55.9258 205.123 406.677 +-59.546 203.69 403.836 +-63.9918 205.053 406.539 +-67.5785 203.636 403.729 +-72.085 204.964 406.362 +-75.5423 203.296 403.055 +-80.1734 204.765 405.969 +-83.6279 203.203 402.87 +-88.2682 204.502 405.446 +-91.8687 203.353 403.168 +-96.4918 204.438 405.319 +-99.9302 202.996 402.46 +-104.782 204.394 405.233 +-108.225 203.011 402.491 +-113.171 204.413 405.27 +-116.552 202.958 402.386 +-113.415 190.617 377.918 +-113.256 183.915 364.63 +-115.988 182.164 361.159 +-119.514 181.701 360.241 +-123.381 181.742 360.321 +-129.604 185.115 367.01 +-143.106 198.347 393.244 +-144.183 194.062 384.747 +-153.733 201.067 398.636 +-1093.65 1390.84 2757.47 +-164.033 202.96 402.389 +-167.784 202.097 400.678 +-167.501 196.51 389.602 +-160.931 183.987 364.772 +-163.328 182.053 360.938 +-167.424 182.028 360.889 +-171.297 181.736 360.311 +-142.752 147.852 293.131 +-142.805 144.446 286.38 +-143.981 142.281 282.088 +-147.874 142.812 283.139 +-435.548 411.23 815.307 +-437.1 403.593 800.166 +-438.122 395.734 784.584 +-439.327 388.299 769.844 +-441.432 381.884 757.125 +-442.993 375.204 743.881 +-445.237 369.293 732.162 +-446.898 363.079 719.841 +-448.992 357.389 708.561 +-450.9 351.711 697.304 +-453.689 346.86 687.686 +-456.015 341.783 677.62 +-459.955 338.019 670.158 +-469.402 338.299 670.713 +-480.131 339.405 672.904 +-484.402 335.918 665.993 +-479.468 326.228 646.781 +-466.255 311.302 617.188 +-470.23 308.121 610.882 +-475.552 305.856 606.39 +-478.267 301.959 598.664 +-480.75 297.991 590.798 +-484.245 294.715 584.302 +-486.206 290.57 576.086 +-489.505 287.291 569.583 +-492.221 283.724 562.512 +-494.588 280.016 555.161 +-497.1 276.452 548.095 +-500.339 273.341 541.927 +-502.853 269.881 535.067 +-506.245 266.936 529.227 +-508.577 263.475 522.366 +-511.675 260.454 516.377 +-514.428 257.295 510.115 +-517.435 254.301 504.178 +-520.706 251.468 498.56 +-523.149 248.268 492.217 +-525.926 245.263 486.259 +-529.186 242.512 480.806 +-531.603 239.405 474.644 +-133.806 59.2163 117.402 +-133.509 58.0625 115.115 +-136.298 58.2485 115.484 +-141.005 59.2154 117.401 +-140.746 58.081 115.151 +-142.387 57.7364 114.468 +-141.702 56.4588 111.935 +-142.791 55.8995 110.826 +-147.899 56.8866 112.784 +-156.12 58.9952 116.964 +-156.563 58.1215 115.232 +-157.217 57.3343 113.671 +-158.869 56.9101 112.83 +-160.124 56.339 111.698 +-162.161 56.0368 111.099 +-2616.73 888.012 1760.58 +-574.597 191.477 379.623 +-2650.74 867.31 1719.53 +-578.755 185.912 368.59 +-582.335 183.63 364.066 +-585.871 181.335 359.515 +-589.363 179.026 354.937 +-382.003 113.866 225.751 +-596.546 174.464 345.894 +-599.989 172.137 341.28 +-603.641 169.869 336.782 +-606.909 167.489 332.065 +-610.646 165.237 327.6 +-614.514 163.014 323.192 +-617.649 160.593 318.392 +-382.086 97.3528 193.012 +-378.448 94.472 187.3 +-376.309 92.014 182.427 +-382.405 91.5677 181.542 +-381.592 89.4583 177.36 +-381.44 87.5258 173.529 +-379.631 85.2399 168.997 +-380.999 83.6858 165.916 +-382.335 82.1271 162.825 +-380.287 79.8601 158.331 +-381.092 78.2132 155.066 +-380.766 76.346 151.364 +-380.58 74.5235 147.751 +-381.365 72.9018 144.535 +-381.377 71.1418 141.046 +-114.507 20.8347 41.3069 +-112.953 20.0373 39.726 +-110.816 19.1569 37.9805 +-110.153 18.5472 36.7717 +-109.286 17.9133 35.515 +-109.441 17.4531 34.6026 +-108.451 16.8171 33.3416 +-108.583 16.3617 32.4387 +-108.706 15.9064 31.5362 +-109.01 15.4787 30.688 +-109.401 15.0628 29.8636 +-109.497 14.6067 28.9594 +-109.584 14.151 28.0559 +-110.143 13.7559 27.2725 +-110.309 13.3109 26.3902 +-111.337 12.9671 25.7086 +-112.36 12.6162 25.013 +-113.573 12.2793 24.3449 +-114.294 11.8832 23.5596 +-115.886 11.57 22.9387 +-118.16 11.3107 22.4247 +-126.214 11.5642 22.9273 +-159.613 13.9722 27.7013 +-160.762 13.4182 26.6031 +-162.395 12.8954 25.5665 +-160.863 12.123 24.035 +-856.721 61.1077 121.152 +-864.894 58.2111 115.41 +-378.084 23.9297 47.443 +-381.111 22.5957 44.7984 +-379.252 20.9709 41.5769 +-404.284 20.744 41.127 +-403.776 19.112 37.8915 +-403.733 17.5071 34.7097 +-403.957 15.9159 31.555 +-403.054 14.2854 28.3222 +-404.213 12.7291 25.2368 +-403.546 11.1154 22.0374 +-405.643 9.57383 18.9811 +-403.316 7.93016 15.7224 +-402.954 6.33703 12.5638 +-147.349 1.73765 3.44506 +-143.978 1.13178 2.24388 +-146.694 0.576522 1.14301 +119.8 1.77636e-15 -1.13687e-13 +120.695 0.482808 0.936117 +119.882 0.959181 1.85976 +120.459 1.44588 2.80342 +120.327 1.92607 3.73446 +120.385 2.40932 4.67142 +120.335 2.89077 5.60492 +120.175 3.36921 6.53257 +121.005 3.87857 7.52017 +120.826 4.35886 8.45139 +120.54 4.834 9.37264 +120.343 5.31163 10.2987 +120.238 5.79279 11.2316 +120.918 6.31503 12.2442 +120.594 6.7873 13.1599 +121.155 7.31132 14.1759 +121.011 7.79569 15.1151 +120.759 8.27264 16.0398 +120.202 8.72671 16.9202 +120.623 9.25256 17.9398 +120.344 9.72676 18.8592 +120.055 10.1994 19.7757 +120.642 10.7492 20.8417 +120.433 11.2314 21.7766 +120.214 11.7127 22.7098 +120.865 12.2824 23.8144 +121.407 12.8479 24.9108 +121.06 13.3223 25.8307 +121.093 13.8394 26.8332 +120.728 14.3118 27.7491 +121.224 14.889 28.8684 +120.839 15.3611 29.7837 +120.254 15.806 30.6463 +121.003 16.4296 31.8554 +120.877 16.9398 32.8447 +121.408 17.5467 34.0214 +121.069 18.0318 34.9618 +121.006 18.559 35.984 +120.743 19.0572 36.9501 +121.412 19.7078 38.2114 +120.751 20.1457 39.0605 +121.674 20.8526 40.4312 +121.552 21.3878 41.4689 +121.978 22.0244 42.7032 +121.368 22.4772 43.581 +118.626 22.5233 43.6704 +115.247 22.4238 43.4775 +112.34 22.3905 43.4129 +108.803 22.205 43.0534 +106.192 22.1832 43.0111 +103.5 22.1229 42.894 +100.909 22.0624 42.7768 +98.3281 21.983 42.6228 +96.3844 22.0277 42.7096 +97.6543 22.8079 44.2222 +97.4825 23.2611 45.101 +97.0359 23.6501 45.8553 +98.076 24.4092 47.327 +97.0828 24.6673 47.8274 +97.5669 25.303 49.0599 +96.5618 25.5548 49.5481 +95.9855 25.9168 50.2501 +96.2599 26.5122 51.4046 +96.5189 27.1118 52.5671 +96.6775 27.6912 53.6904 +96.1466 28.0769 54.4382 +96.2794 28.6601 55.5691 +96.4806 29.2718 56.7551 +96.4171 29.8104 57.7994 +96.0107 30.2469 58.6457 +96.0046 30.8139 59.745 +96.147 31.4362 60.9518 +95.7067 31.8735 61.7996 +96.2217 32.6369 63.2797 +95.6765 33.0481 64.077 +96.3131 33.876 65.6822 +96.2949 34.4858 66.8645 +96.4173 35.155 68.1621 +95.6667 35.5105 68.8513 +95.6814 36.1542 70.0994 +95.7556 36.8302 71.4102 +96.2674 37.6881 73.0736 +96.2255 38.3424 74.3422 +96.1659 38.9993 75.6157 +96.0143 39.6278 76.8344 +95.9198 40.2891 78.1166 +95.8073 40.9526 79.403 +95.6769 41.6183 80.6937 +95.6003 42.3178 82.05 +95.9322 43.2127 83.785 +95.813 43.9189 85.1543 +95.5339 44.562 86.4013 +95.3766 45.2722 87.7783 +95.6813 46.2172 89.6106 +95.4798 46.9337 90.9997 +95.1231 47.5841 92.2608 +95.3511 48.5417 94.1174 +94.9535 49.1958 95.3857 +95.2598 50.2312 97.3934 +95.339 51.1682 99.21 +94.9397 51.8635 100.558 +94.8393 52.7363 102.25 +94.9015 53.7195 104.157 +94.4355 54.4199 105.515 +94.8734 55.6621 107.923 +94.1754 56.258 109.079 +94.3646 57.4012 111.295 +94.6958 58.6609 113.738 +94.8098 59.816 115.977 +94.5965 60.7901 117.866 +94.468 61.842 119.906 +94.3633 62.9353 122.025 +93.9444 63.8424 123.784 +94.1053 65.1717 126.362 +94.3859 66.622 129.174 +94.3498 67.8863 131.625 +94.1667 69.0771 133.934 +94.2587 70.5064 136.705 +94.3035 71.9416 139.488 +93.8946 73.0664 141.669 +93.95 74.5905 144.624 +93.7082 75.9212 147.204 +93.8591 77.6159 150.489 +93.6663 79.0763 153.321 +93.8943 80.9455 156.945 +93.6888 82.4967 159.953 +93.749 84.3389 163.525 +93.7015 86.1463 167.029 +93.5484 87.9189 170.466 +93.4209 89.779 174.073 +93.1873 91.6034 177.61 +93.1816 93.7243 181.722 +93.224 95.9782 186.092 +93.2275 98.2811 190.557 +93.5801 101.055 195.936 +91.5379 101.299 196.408 +89.044 101.024 195.875 +87.8503 102.229 198.211 +87.6926 104.716 203.034 +87.5518 107.338 208.118 +87.6256 110.355 213.967 +90.1279 116.664 226.2 +87.8383 116.934 226.722 +87.1319 119.367 231.441 +87.1428 122.937 238.362 +87.2348 126.822 245.895 +91.6878 137.467 266.535 +91.6234 141.784 274.905 +91.4565 146.199 283.466 +91.4222 151.109 292.985 +91.3631 156.295 303.041 +91.2385 161.714 313.547 +91.011 167.321 324.418 +90.6935 173.161 335.742 +90.6328 179.949 348.902 +88.7402 183.481 355.752 +86.4705 186.475 361.556 +89.6358 201.951 391.563 +88.3255 208.286 403.846 +83.7372 207.099 401.545 +80.2776 208.69 404.63 +75.4433 206.652 400.679 +71.9286 208.169 403.619 +67.3863 206.68 400.733 +63.6995 207.759 402.825 +59.1806 206.052 399.514 +55.7065 207.964 403.222 +51.2358 206.13 399.665 +47.6859 207.968 403.229 +43.2935 206.097 399.602 +39.5949 207.45 402.225 +35.3301 205.773 398.973 +31.6694 207.598 402.512 +27.4535 205.749 398.928 +23.7082 207.362 402.054 +19.572 205.48 398.405 +15.792 207.291 401.917 +11.7456 205.605 398.648 +7.88151 206.973 401.301 +3.90774 205.255 397.97 +2.43139e-14 206.867 401.095 +-3.89902 204.797 397.081 +-7.88325 207.019 401.39 +-11.6959 204.735 396.96 +-15.7292 206.466 400.318 +-19.5371 205.114 397.695 +-23.6454 206.813 400.99 +-27.3497 204.972 397.42 +-31.523 206.638 400.65 +-35.0712 204.265 396.049 +-39.3682 206.263 399.923 +-42.9485 204.455 396.418 +-47.3096 206.327 400.048 +-50.8056 204.399 396.309 +-55.1459 205.871 399.164 +-58.5932 204.007 395.55 +-63.1289 205.898 399.217 +-66.4847 203.915 395.371 +-70.9274 205.271 398.001 +-74.4035 203.805 395.157 +-79.062 205.53 398.503 +-82.4616 203.944 395.428 +-87.0471 205.271 398.001 +-90.4134 203.703 394.959 +-95.0364 204.947 397.372 +-98.3285 203.306 394.191 +-103.298 205.094 397.657 +-106.498 203.336 394.248 +-111.599 205.17 397.804 +-114.824 203.518 394.601 +-112.586 192.602 373.436 +-113.523 187.638 363.812 +-116.236 185.811 360.27 +-119.968 185.647 359.95 +-123.79 185.598 359.856 +-131.529 191.216 370.75 +-143.353 202.236 392.115 +-142.851 195.699 379.441 +-148.459 197.634 383.192 +-1093.65 1415.66 2744.82 +-162.357 204.471 396.449 +-164.843 202.097 391.845 +-164.455 196.38 380.761 +-162.03 188.55 365.579 +-164.003 186.067 360.765 +-167.998 185.912 360.464 +-172.273 186.034 360.702 +-141.955 149.649 290.155 +-142.724 146.94 284.902 +-144.023 144.862 280.873 +-148.339 145.817 282.726 +-435.548 418.569 811.564 +-436.968 410.672 796.252 +-438.836 403.452 782.254 +-439.69 395.555 766.943 +-441.801 389.024 754.28 +-443.416 382.264 741.172 +-446.048 376.568 730.129 +-448.013 370.48 718.324 +-449.681 364.326 706.391 +-451.55 358.504 695.103 +-454.247 353.484 685.371 +-456.015 347.882 674.509 +-462.202 345.732 670.34 +-471.31 345.736 670.348 +-480.668 345.848 670.564 +-483.204 341.067 661.296 +-488.354 338.204 655.743 +-475.482 323.127 626.511 +-473.516 315.81 612.325 +-475.724 311.426 603.825 +-479.254 307.982 597.146 +-481.631 303.865 589.164 +-484.84 300.342 582.334 +-487.109 296.305 574.506 +-490.053 292.745 567.603 +-493.022 289.256 560.839 +-495.708 285.659 553.865 +-497.415 281.563 545.924 +-501.293 278.749 540.467 +-503.238 274.908 533.019 +-506.894 272.048 527.474 +-509.627 268.73 521.04 +-512.47 265.514 514.805 +-514.829 262.091 508.169 +-518.245 259.244 502.649 +-520.91 256.055 496.466 +-523.631 252.931 490.408 +-526.759 250.035 484.794 +-529.887 247.167 479.232 +-532.027 243.871 472.842 +-535.865 241.38 468.013 +-134.804 59.6716 115.697 +-140.142 60.9601 118.196 +-141.078 60.3033 116.922 +-142.221 59.7367 115.824 +-141.569 58.4294 113.289 +-142.451 57.7698 112.01 +-143.168 57.0474 110.609 +-149.04 58.3483 113.131 +-155.89 59.9595 116.255 +-156.64 59.188 114.76 +-157.683 58.5302 113.484 +-159.182 58.0398 112.533 +-161.069 57.6832 111.842 +-566.613 199.294 386.411 +-576.535 199.144 386.12 +-2633.84 893.357 1732.13 +-384.849 128.168 248.504 +-2667.45 872.148 1691.01 +-582.745 187.039 362.65 +-586.283 184.701 358.116 +-590.109 182.451 353.755 +-593.893 180.185 349.361 +-597.301 177.802 344.741 +-601.169 175.554 340.382 +-603.641 172.9 335.236 +-607.762 170.718 331.005 +-611.332 168.375 326.462 +-614.945 166.039 321.934 +-382.783 101.302 196.415 +-380.258 98.6161 191.207 +-378.973 96.2912 186.699 +-377.276 93.8966 182.056 +-376.842 91.8458 178.08 +-382.39 91.2454 176.916 +-381.974 89.2129 172.975 +-381.242 87.1291 168.935 +-380.01 84.9577 164.725 +-382.064 83.5331 161.962 +-381.465 81.5369 158.092 +-380.546 79.4948 154.132 +-381.131 77.7832 150.814 +-380.672 75.8717 147.108 +-381.549 74.2385 143.941 +-382.486 72.6218 140.806 +-114.414 21.1894 41.0841 +-112.581 20.3276 39.4133 +-110.256 19.4002 37.6151 +-109.497 18.7658 36.3849 +-109.286 18.233 35.3519 +-108.592 17.6269 34.1767 +-108.64 17.147 33.2464 +-109.152 16.7409 32.459 +-108.801 16.2045 31.4188 +-108.819 15.7273 30.4937 +-109.306 15.3182 29.7005 +-109.497 14.8674 28.8264 +-109.488 14.3909 27.9026 +-109.565 13.9279 27.0048 +-110.309 13.5484 26.269 +-111.047 13.1641 25.5238 +-111.972 12.797 24.8121 +-112.795 12.4128 24.0672 +-114.099 12.0746 23.4114 +-115.691 11.7566 22.7949 +-118.16 11.5126 22.3217 +-126.704 11.8163 22.9106 +-158.042 14.0816 27.3028 +-160.664 13.6494 26.4647 +-160.622 12.9823 25.1713 +-165.4 12.6873 24.5994 +-856.326 62.1698 120.541 +-866.279 59.3448 115.064 +-379.174 24.4269 47.3613 +-380.12 22.9391 44.4766 +-381.435 21.468 41.6243 +-403.887 21.0934 40.898 +-405.069 19.5153 37.8382 +-404.728 17.8635 34.6356 +-403.558 16.184 31.3791 +-404.449 14.5907 28.2899 +-404.213 12.9563 25.1209 +-404.544 11.3417 21.9905 +-404.145 9.7087 18.8242 +-404.814 8.1017 15.7084 +-403.854 6.4645 12.534 +-147.15 1.76626 3.4246 +-145.778 1.16638 2.26149 +-145.594 0.58241 1.12924 +119.8 1.77636e-15 -1.13687e-13 +119.795 0.487573 0.92478 +119.882 0.97592 1.85103 +120.459 1.47111 2.79026 +120.327 1.95968 3.71693 +120.385 2.45136 4.6495 +119.436 2.91925 5.53695 +120.175 3.42801 6.50191 +120.107 3.91698 7.42934 +120.826 4.43492 8.41172 +120.54 4.91836 9.32865 +120.343 5.40432 10.2504 +121.133 5.93777 11.2622 +120.918 6.42523 12.1867 +120.793 6.91712 13.1197 +120.361 7.39022 14.017 +120.318 7.88626 14.9579 +120.759 8.417 15.9645 +120.3 8.88627 16.8546 +120.721 9.42173 17.8702 +120.344 9.8965 18.7707 +120.94 10.4539 19.828 +120.642 10.9368 20.7439 +120.335 11.4181 21.6567 +120.214 11.9171 22.6032 +120.865 12.4968 23.7026 +120.53 12.9777 24.6148 +120.866 13.5331 25.6682 +120.899 14.0583 26.6645 +120.728 14.5615 27.6188 +121.224 15.1489 28.7329 +120.839 15.6292 29.6439 +121.407 16.2361 30.795 +121.195 16.7428 31.7561 +120.877 17.2355 32.6905 +121.217 17.8249 33.8085 +120.879 18.3176 34.743 +121.67 18.9864 36.0116 +121.31 19.4809 36.9494 +121.412 20.0517 38.0321 +121.596 20.6408 39.1494 +121.861 21.2492 40.3034 +121.459 21.7444 41.2426 +121.699 22.3575 42.4056 +121.832 22.9568 43.5422 +118.996 22.9877 43.6008 +116.076 22.9791 43.5845 +112.982 22.9114 43.456 +109.717 22.7823 43.2111 +106.92 22.7251 43.1027 +104.225 22.6666 42.9918 +101.631 22.608 42.8807 +99.0471 22.5301 42.7329 +97.0109 22.5578 42.7854 +96.496 22.9306 43.4925 +97.4825 23.667 44.8893 +96.9476 24.041 45.5985 +97.8123 24.7684 46.9783 +96.9079 25.0525 47.5171 +96.6095 25.4919 48.3505 +96.5618 26.0007 49.3156 +96.8471 26.6057 50.4631 +96.3456 26.9989 51.2088 +96.5189 27.5849 52.3203 +95.999 27.9767 53.0635 +96.231 28.5919 54.2302 +96.3632 29.1856 55.3564 +96.564 29.8084 56.5376 +95.7538 30.122 57.1325 +96.5876 30.9596 58.7212 +96.0046 31.3516 59.4646 +96.147 31.9848 60.6657 +96.1921 32.5943 61.8216 +96.3021 33.2342 63.0353 +96.3953 33.8775 64.2554 +95.6784 34.2401 64.9432 +95.6645 34.8579 66.115 +95.713 35.5072 67.3465 +95.6667 36.1302 68.5281 +95.6814 36.7852 69.7704 +95.679 37.443 71.0181 +96.2674 38.3458 72.7306 +96.2255 39.0116 73.9933 +95.4919 39.4017 74.7333 +95.94 40.2882 76.4146 +95.9198 40.9922 77.7499 +95.8073 41.6673 79.0303 +95.6043 42.3124 80.254 +96.1757 43.3155 82.1565 +96.0035 43.9995 83.4538 +95.8837 44.7183 84.8172 +95.5339 45.3396 85.9957 +95.3071 46.0287 87.3026 +95.7501 47.0578 89.2545 +96.0936 48.0596 91.1546 +95.7311 48.7237 92.4143 +95.3511 49.3888 93.6757 +95.6161 50.4036 95.6006 +95.719 51.3541 97.4033 +94.7545 51.7416 98.1384 +95.3254 52.9827 100.492 +94.7757 53.6207 101.702 +94.9015 54.657 103.668 +94.9335 55.6616 105.573 +94.9966 56.7072 107.557 +94.2971 57.3135 108.707 +94.7257 58.6264 111.197 +94.8742 59.797 113.417 +94.6334 60.747 115.219 +94.7127 61.9269 117.457 +94.468 62.9213 119.343 +94.4766 64.1105 121.598 +94.0562 65.034 123.35 +93.9949 66.2312 125.621 +94.3859 67.7847 128.567 +94.2961 69.0313 130.932 +94.0077 70.1641 133.08 +94.2587 71.7368 136.063 +93.8914 72.8775 138.227 +93.9454 74.3821 141.081 +93.9 75.8521 143.869 +93.8067 77.3273 146.667 +93.8591 78.9703 149.783 +93.714 80.4973 152.679 +93.8474 82.3166 156.13 +93.6888 83.9364 159.202 +93.7036 85.7692 162.679 +93.7015 87.6497 166.245 +93.5484 89.4532 169.666 +93.4209 91.3457 173.256 +93.5254 93.5401 177.418 +93.1816 95.3599 180.869 +93.224 97.6531 185.219 +93.387 100.167 189.987 +93.3457 102.561 194.528 +90.1219 101.472 192.463 +89.7183 103.565 196.432 +87.8503 104.013 197.281 +87.8001 106.674 202.328 +87.9721 109.736 208.136 +87.3519 111.93 212.298 +88.8594 117.029 221.97 +88.2941 119.592 226.83 +87.3857 121.804 231.025 +87.3282 125.349 237.749 +87.5355 129.48 245.584 +91.8632 140.134 265.792 +91.5949 144.214 273.53 +91.484 148.795 282.22 +91.4222 153.746 291.61 +91.2855 158.887 301.362 +91.2385 164.536 312.075 +91.011 170.241 322.895 +90.8102 176.409 334.596 +90.6103 183.043 347.178 +88.1126 185.363 351.578 +86.72 190.276 360.897 +89.7355 205.704 390.158 +87.1425 209.083 396.567 +82.2429 206.953 392.528 +79.0099 208.979 396.372 +74.2219 206.855 392.342 +70.9274 208.854 396.133 +66.2038 206.597 391.853 +62.8506 208.568 395.59 +58.3322 206.642 391.939 +54.7559 207.983 394.481 +50.3754 206.205 391.109 +46.8288 207.794 394.123 +42.498 205.841 390.419 +38.9412 207.586 393.728 +34.8123 206.295 391.28 +31.1951 208.057 394.623 +27.014 205.989 390.699 +23.3366 207.674 393.896 +19.2449 205.571 389.907 +15.5407 207.553 393.666 +11.5493 205.697 390.145 +7.76458 207.461 393.491 +3.84317 205.386 389.556 +2.39808e-14 207.12 392.844 +-3.84317 205.386 389.556 +-7.75061 207.088 392.784 +-11.5283 205.324 389.437 +-15.4954 206.947 392.517 +-19.2143 205.245 389.289 +-23.2424 206.836 392.305 +-26.8919 205.057 388.932 +-30.9928 206.708 392.064 +-34.5612 204.807 388.458 +-38.7233 206.424 391.525 +-42.2392 204.588 388.041 +-46.4524 206.124 390.956 +-49.9792 204.583 388.033 +-54.3659 206.502 391.672 +-57.6273 204.145 387.203 +-62.099 206.074 390.861 +-65.4057 204.107 387.129 +-69.8011 205.537 389.842 +-73.1986 204.003 386.933 +-77.7944 205.764 390.273 +-81.113 204.11 387.136 +-85.6351 205.466 389.707 +-88.958 203.921 386.777 +-93.7058 205.604 389.97 +-96.7269 203.485 385.95 +-101.79 205.628 390.015 +-104.77 203.528 386.033 +-109.833 205.447 389.672 +-112.996 203.773 386.497 +-111.965 194.882 369.632 +-113.763 191.317 362.871 +-116.732 189.861 360.109 +-120.678 190.005 360.382 +-124.433 189.818 360.028 +-134.205 198.512 376.518 +-143.291 205.676 390.106 +-143.104 199.468 378.331 +-145.366 196.894 373.448 +-149.312 196.647 372.98 +-1120.56 1435.85 2723.38 +-162.706 202.959 384.952 +-161.337 196.019 371.789 +-161.884 191.666 363.533 +-164.864 190.308 360.958 +-168.802 190.061 360.488 +-173.211 190.311 360.963 +-141.955 152.261 288.793 +-142.643 149.419 283.403 +-144.728 148.111 280.923 +-148.888 148.912 282.441 +-435.936 426.252 808.473 +-437.494 418.341 793.469 +-439.103 410.744 779.058 +-440.098 402.832 764.053 +-442.401 396.351 751.759 +-444.261 389.676 739.099 +-446.048 383.14 726.702 +-447.673 376.66 714.411 +-450.321 371.211 704.076 +-452.15 365.244 692.759 +-454.805 360.095 682.993 +-457.148 354.833 673.011 +-464.553 353.555 670.587 +-474.172 353.905 671.252 +-481.582 352.552 668.686 +-484.838 348.193 660.417 +-490.838 345.856 655.986 +-494.271 341.757 648.211 +-494.02 335.236 635.842 +-476.585 317.434 602.077 +-479.603 313.584 594.775 +-482.395 309.658 587.329 +-485.375 305.921 580.24 +-487.711 301.848 572.515 +-490.662 298.224 565.641 +-493.391 294.525 558.626 +-496.269 290.972 551.888 +-498.548 287.129 544.599 +-501.484 283.722 538.136 +-504.267 280.277 531.602 +-507.479 277.114 525.603 +-510.217 273.736 519.196 +-513.067 270.461 512.985 +-515.632 267.081 506.572 +-518.651 263.975 500.682 +-521.115 260.626 494.33 +-524.389 257.717 488.812 +-527.593 254.802 483.283 +-530.869 251.946 477.867 +-532.876 248.523 471.374 +-537.078 246.149 466.87 +-141.278 63.6288 120.685 +-142.246 62.9548 119.406 +-138.592 60.2745 114.323 +-141.484 60.4644 114.683 +-142.015 59.6365 113.113 +-142.376 58.7472 111.426 +-145.433 58.9612 111.832 +-150.789 60.0633 113.922 +-155.89 61.0058 115.71 +-156.563 60.1911 114.164 +-158.615 59.9038 113.62 +-159.887 59.3143 112.501 +-161.385 58.8045 111.535 +-572.722 204.958 388.744 +-570.146 200.374 380.049 +-2634 909.004 1724.11 +-2650.74 898.193 1703.6 +-2667.45 887.368 1683.07 +-583.072 190.41 361.151 +-587.849 188.426 357.388 +-590.938 185.896 352.589 +-594.394 183.484 348.014 +-597.469 180.956 343.22 +-601.591 178.743 339.022 +-605.252 176.386 334.552 +-609.723 174.258 330.515 +-611.76 171.434 325.158 +-615.806 169.174 320.872 +-380.705 102.51 194.432 +-379.997 100.268 190.179 +-377.486 97.5873 185.094 +-376.397 95.3128 180.78 +-376.224 93.2957 176.954 +-376.536 91.4162 173.389 +-381.173 90.579 171.801 +-380.795 88.5456 167.945 +-381.268 86.7267 164.495 +-381.162 84.7903 160.822 +-381.465 82.9598 157.35 +-380.273 80.8237 153.298 +-380.766 79.0645 149.962 +-381.314 77.3259 146.664 +-380.629 75.3517 142.92 +-114.561 22.131 41.9759 +-113.209 21.332 40.4604 +-111.929 20.5628 39.0014 +-110.536 19.7889 37.5336 +-109.403 19.0769 36.1832 +-109.568 18.599 35.2768 +-108.687 17.95 34.0458 +-108.546 17.4311 33.0615 +-108.678 16.959 32.1662 +-108.801 16.4872 31.2714 +-109.487 16.0999 30.5367 +-109.21 15.5719 29.5352 +-109.401 15.1136 28.666 +-109.776 14.6806 27.8448 +-110.625 14.3081 27.1382 +-110.888 13.8573 26.2831 +-111.918 13.4989 25.6033 +-112.554 13.088 24.824 +-113.476 12.7056 24.0988 +-114.001 12.2748 23.2816 +-116.472 12.0425 22.841 +-118.16 11.7135 22.217 +-142.579 13.5288 25.66 +-159.024 14.4163 27.3435 +-161.45 13.9555 26.4695 +-163.478 13.4437 25.4987 +-163.625 12.7702 24.2212 +-857.313 63.3275 120.113 +-866.872 60.4219 114.602 +-379.174 24.8531 47.139 +-380.913 23.3881 44.3603 +-382.726 21.9165 41.5691 +-403.39 21.4351 40.6559 +-403.378 19.773 37.5035 +-404.131 18.1484 34.4222 +-404.654 16.5111 31.3167 +-404.948 14.8636 28.1918 +-404.512 13.1922 25.0216 +-403.945 11.5225 21.8548 +-403.746 9.86833 18.7173 +-403.915 8.22476 15.5999 +-403.454 6.57079 12.4628 +-145.95 1.78243 3.38073 +-144.878 1.17941 2.23698 +-146.694 0.597051 1.13243 +119.8 1.77636e-15 -1.13687e-13 +119.895 0.496307 0.92111 +119.882 0.992576 1.84215 +120.559 1.49746 2.77919 +120.327 1.99313 3.69911 +120.385 2.4932 4.6272 +120.235 2.98894 5.54725 +120.175 3.48651 6.47072 +120.206 3.98714 7.39985 +120.826 4.51061 8.37138 +120.739 5.0106 9.29931 +120.343 5.49656 10.2012 +121.133 6.03911 11.2082 +120.918 6.53489 12.1283 +120.793 7.03518 13.0568 +120.361 7.51635 13.9498 +120.318 8.02086 14.8861 +120.66 8.55363 15.8749 +120.399 9.04538 16.7876 +120.721 9.58253 17.7845 +120.344 10.0654 18.6807 +120.055 10.5545 19.5885 +120.544 11.1144 20.6275 +120.335 11.613 21.5529 +120.214 12.1205 22.4948 +120.768 12.6998 23.5699 +120.627 13.2099 24.5165 +120.866 13.7641 25.5451 +121.093 14.3212 26.5792 +120.631 14.7981 27.4643 +121.224 15.4074 28.5951 +120.743 15.8833 29.4782 +121.503 16.5263 30.6716 +121.099 17.0151 31.5788 +121.642 17.6406 32.7396 +121.313 18.1434 33.6729 +120.879 18.6302 34.5764 +121.006 19.2051 35.6434 +121.31 19.8134 36.7722 +121.129 20.3464 37.7615 +121.408 20.9606 38.9014 +121.58 21.562 40.0176 +121.272 22.0815 40.9817 +121.14 22.6348 42.0086 +121.832 23.3486 43.3333 +119.55 23.4889 43.5938 +116.168 23.3899 43.4099 +113.807 23.4726 43.5635 +110.265 23.2868 43.2187 +108.558 23.467 43.5531 +104.225 23.0535 42.7856 +102.173 23.1164 42.9025 +99.6763 23.0602 42.7982 +97.7268 23.1121 42.8945 +96.5851 23.3435 43.3239 +96.8616 23.9176 44.3894 +96.9476 24.4513 45.3798 +97.1972 25.0327 46.459 +97.0828 25.5261 47.3746 +96.1743 25.8102 47.9019 +96.5618 26.4445 49.079 +96.1578 26.8672 49.8637 +96.3456 27.4597 50.9632 +96.4336 28.0309 52.0234 +96.6775 28.6553 53.1821 +96.1466 29.0544 53.9229 +96.2794 29.6579 55.043 +96.4806 30.2909 56.2178 +96.0026 30.7157 57.0061 +95.8459 31.2462 57.9907 +96.0046 31.8867 59.1794 +95.5772 32.3379 60.0168 +96.1921 33.1505 61.5251 +95.5786 33.5474 62.2616 +95.5967 34.1702 63.4174 +95.6784 34.8244 64.6317 +95.6645 35.4528 65.7979 +95.6347 36.0837 66.9687 +96.3661 37.0155 68.6981 +96.3759 37.6845 69.9398 +96.3684 38.3564 71.1868 +95.583 38.723 71.8672 +96.2255 39.6774 73.6384 +95.4919 40.0742 74.3749 +96.0143 41.0075 76.107 +95.9198 41.6918 77.377 +95.8073 42.3784 78.6513 +95.6769 43.0672 79.9297 +95.5283 43.7582 81.212 +95.9322 44.7171 82.9918 +95.1766 45.1461 83.7879 +95.5339 46.1135 85.5833 +95.3071 46.8142 86.8839 +95.6813 47.8263 88.7622 +94.866 48.2551 89.558 +95.7311 49.5553 91.971 +95.3511 50.2317 93.2264 +95.6161 51.2638 95.142 +95.3254 52.0157 96.5374 +95.4039 52.9857 98.3377 +95.1326 53.7783 99.8087 +94.712 54.4993 101.147 +94.9015 55.5898 103.171 +94.8712 56.5741 104.997 +94.4425 57.3387 106.417 +94.358 58.3296 108.256 +94.3646 59.3997 110.242 +94.2199 60.3982 112.095 +94.8098 61.8986 114.879 +94.6546 62.9454 116.822 +94.5254 64.034 118.843 +94.4199 65.1658 120.943 +94.224 66.262 122.978 +94.1604 67.4801 125.238 +94.4404 68.9809 128.024 +94.3498 70.2498 130.379 +94.0077 71.3616 132.442 +93.7885 72.5973 134.735 +93.8399 74.0806 137.488 +93.9454 75.6516 140.404 +93.9 77.1467 143.179 +93.9052 78.7296 146.116 +93.8591 80.3181 149.065 +93.6185 81.7876 151.792 +93.4718 83.3866 154.76 +93.6426 85.3272 158.361 +93.7036 87.2331 161.898 +93.6569 89.1034 165.37 +93.5484 90.9799 168.852 +93.3779 92.8621 172.345 +93.2719 94.8785 176.088 +93.223 97.0306 180.082 +93.3054 99.4061 184.491 +91.5129 99.832 185.281 +90.337 100.95 187.355 +88.0937 100.881 187.228 +90.2427 105.948 196.632 +87.7404 105.655 196.089 +87.6926 108.362 201.111 +87.5518 111.075 206.148 +87.4546 113.974 211.528 +87.6243 117.372 217.834 +88.7173 122.216 226.824 +87.4174 123.928 230.001 +87.2355 127.352 236.357 +91.7754 138.068 256.245 +91.7755 142.389 264.264 +91.5665 146.629 272.134 +91.484 151.335 280.867 +91.4757 156.462 290.382 +91.3631 161.737 300.172 +91.2385 167.344 310.578 +90.9868 173.1 321.261 +90.7402 179.282 332.734 +89.5755 184.041 341.567 +86.4027 184.868 343.102 +89.6099 199.973 371.136 +88.3997 206.1 382.508 +85.3298 208.228 386.456 +80.6028 206.288 382.855 +77.4471 208.342 386.667 +72.687 206.034 382.385 +69.4882 208.108 386.233 +64.6962 205.338 381.093 +61.5423 207.712 385.499 +57.1183 205.795 381.941 +53.7688 207.719 385.511 +49.3566 205.483 381.361 +45.9507 207.378 384.878 +41.6066 204.963 380.396 +38.3137 207.726 385.525 +34.0356 205.135 380.715 +30.6022 207.586 385.265 +26.4462 205.101 380.653 +22.9127 207.382 384.885 +18.8697 205.004 380.473 +15.2546 207.208 384.563 +11.3163 204.987 380.441 +7.61972 207.066 384.299 +3.7655 204.67 379.853 +2.10942e-14 206.765 383.741 +-3.76463 204.623 379.765 +-7.6075 206.734 383.683 +-11.2954 204.608 379.737 +-15.2092 206.592 383.42 +-18.7825 204.056 378.714 +-22.8132 206.482 383.215 +-26.2997 203.964 378.543 +-30.4068 206.261 382.806 +-33.808 203.763 378.17 +-37.9999 206.025 382.368 +-41.3766 203.83 378.294 +-45.5744 205.68 381.727 +-48.9491 203.786 378.212 +-53.2569 205.742 381.842 +-56.557 203.773 378.189 +-60.93 205.645 381.662 +-64.0606 203.321 377.349 +-68.6434 205.578 381.538 +-71.6637 203.134 377.002 +-76.3357 205.352 381.118 +-79.4547 203.349 377.402 +-84.2422 205.573 381.529 +-86.9244 202.66 376.123 +-91.9593 205.216 380.867 +-94.7356 202.697 376.192 +-99.7208 204.886 380.253 +-102.856 203.22 377.161 +-107.873 205.226 380.884 +-110.793 203.21 377.143 +-111.887 198.07 367.604 +-114.244 195.405 362.658 +-117.201 193.876 359.82 +-121.388 194.385 360.764 +-124.989 193.92 359.901 +-135.859 204.388 379.33 +-142.148 207.517 385.137 +-143.422 203.322 377.351 +-143.087 197.114 365.83 +-145.139 194.414 360.818 +-155.859 203.121 376.978 +-159.59 202.468 375.767 +-160.047 197.77 367.047 +-162.69 195.908 363.592 +-165.651 194.48 360.941 +-169.414 194.006 360.061 +-175.008 195.568 362.96 +-142.553 155.512 288.619 +-142.358 151.666 281.481 +-146.428 152.409 282.86 +-150.325 152.915 283.799 +-436.71 434.298 806.026 +-437.494 425.481 789.663 +-439.371 418.009 775.794 +-440.916 410.468 761.8 +-442.632 403.326 748.545 +-444.683 396.704 736.254 +-447.432 390.888 725.46 +-449.273 384.457 713.526 +-451.208 378.29 702.079 +-452.75 371.971 690.352 +-455.516 366.813 680.779 +-458.075 361.62 671.142 +-467.95 362.218 672.251 +-476.98 362.077 671.989 +-483.194 359.769 667.706 +-483.639 353.26 655.625 +-490.893 351.798 652.912 +-495.333 348.337 646.489 +-480.652 331.731 615.67 +-477.101 323.202 599.839 +-479.893 319.129 592.281 +-483.277 315.519 585.58 +-486.268 311.714 578.519 +-488.253 307.341 570.402 +-491.818 304.028 564.255 +-494.315 300.112 556.987 +-497.14 296.458 550.206 +-499.366 292.509 542.876 +-502.438 289.113 536.573 +-505.038 285.496 529.861 +-508.648 282.493 524.287 +-511.004 278.838 517.503 +-514.061 275.611 511.514 +-516.903 272.309 505.386 +-520.002 269.18 499.578 +-522.956 266.011 493.697 +-525.765 262.804 487.745 +-528.635 259.662 481.915 +-532.13 256.855 476.705 +-534.361 253.469 470.42 +-537.506 250.549 465.001 +-140.703 64.451 119.616 +-142.536 64.1602 119.077 +-142.102 62.8558 116.656 +-140.378 61.0153 113.24 +-141.718 60.5272 112.334 +-142.526 59.8129 111.008 +-147.017 60.6207 112.508 +-155.427 62.9672 116.863 +-156.12 62.1386 115.325 +-157.257 61.4901 114.121 +-158.382 60.8365 112.908 +-160.278 60.4741 112.236 +-162.173 60.1003 111.542 +-581.449 211.632 392.774 +-567.111 202.709 376.213 +-575.883 202.131 375.141 +-578.528 199.377 370.03 +-581.848 196.864 365.366 +-383.117 127.247 236.162 +-383.466 125.012 232.013 +-383.679 122.756 227.827 +-595.645 187.008 347.074 +-599.398 184.639 342.676 +-603.531 182.38 338.484 +-606.1 179.648 333.414 +-610.149 177.356 329.16 +-613.389 174.823 324.46 +-617.357 172.494 320.137 +-380.445 104.189 193.367 +-377.125 101.209 187.836 +-376.699 99.046 183.822 +-381.143 98.1619 182.181 +-376.224 94.888 176.105 +-375.649 92.7577 172.152 +-378.678 91.522 169.858 +-380.437 89.9724 166.982 +-381.358 88.2278 163.744 +-380.44 86.0738 159.747 +-381.465 84.3756 156.595 +-381.82 82.5376 153.184 +-381.223 80.5102 149.421 +-379.479 78.2671 145.258 +-382.01 76.9157 142.75 +-114.653 22.5269 41.8083 +-113.116 21.6783 40.2334 +-111.371 20.8094 38.6208 +-109.882 20.0076 37.1327 +-110.246 19.552 36.2872 +-109.568 18.9165 35.1076 +-109.346 18.3672 34.0882 +-109.396 17.8675 33.1609 +-109.057 17.3087 32.1237 +-109.467 16.8713 31.3119 +-109.487 16.3747 30.3903 +-109.593 15.8931 29.4966 +-109.401 15.3716 28.5285 +-109.872 14.9442 27.7354 +-110.914 14.5903 27.0785 +-110.599 14.057 26.0887 +-111.627 13.6936 25.4144 +-112.845 13.3458 24.7689 +-112.989 12.8671 23.8805 +-114.586 12.5483 23.2887 +-117.058 12.3097 22.8458 +-119.432 12.0416 22.3484 +-159.336 15.3768 28.5382 +-159.122 14.6714 27.2291 +-162.925 14.3234 26.5831 +-163.872 13.7061 25.4376 +-3231.56 256.513 476.069 +-858.597 64.5046 119.716 +-868.059 61.5371 114.208 +-379.966 25.3301 47.0109 +-380.417 23.7563 44.0901 +-384.115 22.3715 41.5199 +-405.576 21.9191 40.6802 +-404.969 20.1898 37.4709 +-404.131 18.4582 34.2571 +-404.953 16.8053 31.1894 +-403.452 15.0614 27.953 +-404.512 13.4173 24.9016 +-3270.39 94.8804 176.091 +-403.746 10.0368 18.6275 +-404.814 8.38377 15.5597 +-403.454 6.68293 12.403 +-146.85 1.82402 3.38526 +-145.678 1.20616 2.23855 +-146.094 0.60476 1.12239 +119.8 1.77636e-15 -1.13687e-13 +119.895 0.504596 0.916595 +119.882 1.00915 1.83312 +120.559 1.52248 2.76556 +120.427 2.0281 3.68403 +120.385 2.53484 4.60452 +120.335 3.04138 5.52464 +120.175 3.54475 6.43901 +120.206 4.05374 7.36358 +120.826 4.58595 8.33035 +120.739 5.09429 9.25373 +120.343 5.58837 10.1512 +121.133 6.13998 11.1532 +120.918 6.64404 12.0688 +120.594 7.14091 12.9714 +120.361 7.64189 13.8814 +120.318 8.15482 14.8132 +120.66 8.6965 15.7971 +120.399 9.19646 16.7053 +120.721 9.74258 17.6973 +120.442 10.2419 18.6044 +120.055 10.7308 19.4925 +120.74 11.3185 20.5599 +120.335 11.807 21.4472 +121.095 12.4132 22.5485 +120.768 12.9119 23.4544 +120.627 13.4305 24.3964 +120.866 13.994 25.4199 +120.899 14.5371 26.4065 +120.631 15.0453 27.3297 +121.224 15.6648 28.4549 +120.743 16.1486 29.3337 +121.407 16.789 30.4971 +121.099 17.2993 31.424 +120.781 17.8083 32.3486 +121.313 18.4465 33.5078 +121.069 18.9712 34.461 +121.006 19.5259 35.4687 +120.932 20.0815 36.4779 +121.129 20.6863 37.5765 +121.502 21.3272 38.7407 +121.58 21.9222 39.8215 +121.179 22.433 40.7494 +121.14 23.0129 41.8027 +121.554 23.6844 43.0225 +119.55 23.8813 43.3801 +117.641 24.082 43.7447 +113.807 23.8647 43.35 +111.909 24.0288 43.6482 +108.558 23.8589 43.3396 +105.766 23.785 43.2053 +102.173 23.5026 42.6922 +101.204 23.8048 43.2412 +97.7268 23.4982 42.6842 +95.9614 23.5801 42.8331 +96.8616 24.3171 44.1718 +97.1242 24.905 45.2397 +97.1972 25.4508 46.2312 +97.5201 26.0693 47.3548 +96.1743 26.2413 47.6671 +97.0814 27.0308 49.1013 +96.1578 27.316 49.6193 +96.3456 27.9183 50.7134 +96.4336 28.4991 51.7684 +95.999 28.9295 52.5501 +96.1466 29.5397 53.6586 +96.3632 30.1795 54.8209 +96.4806 30.7969 55.9423 +96.5829 31.4175 57.0696 +95.8459 31.7681 57.7065 +96.0046 32.4193 58.8893 +95.5772 32.878 59.7227 +95.5449 33.4774 60.8115 +95.5786 34.1078 61.9565 +96.3953 35.0311 63.6338 +95.6784 35.4061 64.3149 +96.2949 36.2825 65.9068 +95.6347 36.6864 66.6405 +95.7444 37.391 67.9204 +96.3759 38.314 69.597 +95.679 38.7181 70.3311 +95.583 39.3698 71.515 +96.3009 40.3717 73.3349 +95.4919 40.7435 74.0103 +96.0143 41.6924 75.734 +95.9198 42.3882 76.9977 +95.8073 43.0862 78.2658 +95.6769 43.7866 79.538 +95.4564 44.4556 80.7532 +95.9322 45.464 82.585 +95.813 46.2071 83.9347 +95.5339 46.8837 85.1638 +95.3766 47.6309 86.5211 +95.6813 48.6251 88.3271 +95.4116 49.3432 89.6315 +95.7311 50.383 91.5202 +95.418 51.1064 92.8343 +95.6161 52.1201 94.6757 +95.3254 52.8845 96.0642 +95.4039 53.8707 97.8557 +94.9397 54.5656 99.118 +94.712 55.4096 100.651 +94.9015 56.5183 102.665 +94.8712 57.519 104.483 +94.504 58.3345 105.964 +94.358 59.3039 107.725 +94.7859 60.6614 110.191 +94.2199 61.407 111.545 +94.1044 62.4646 113.466 +94.6546 63.9968 116.25 +94.468 65.064 118.188 +94.4199 66.2542 120.35 +93.9444 67.1686 122.011 +94.1604 68.6072 124.624 +94.3315 70.0525 127.25 +94.3498 71.4231 129.74 +94.1137 72.6351 131.941 +93.7885 73.8099 134.075 +93.8399 75.3179 136.814 +93.9454 76.9151 139.716 +94 78.5187 142.629 +93.9052 80.0445 145.4 +93.8107 81.6177 148.258 +93.6185 83.1537 151.048 +93.4248 84.737 153.924 +93.6426 86.7523 157.585 +93.7944 88.7759 161.261 +93.6569 90.5916 164.559 +93.5484 92.4995 168.025 +93.3779 94.4131 171.501 +93.1873 96.3759 175.066 +93.223 98.6512 179.199 +91.3937 98.996 179.825 +91.5129 101.499 184.373 +87.9927 99.9721 181.599 +88.0937 102.566 186.311 +90.0929 107.539 195.343 +87.7404 107.42 195.128 +87.621 110.081 199.962 +87.5518 112.931 205.137 +87.3519 115.742 210.244 +87.6243 119.333 216.767 +89.7266 125.67 228.279 +87.4174 125.997 228.873 +92.1798 136.818 248.529 +91.7754 140.374 254.989 +91.6878 144.629 262.718 +91.5665 149.079 270.8 +91.4565 153.816 279.406 +91.4757 159.075 288.958 +91.1561 164.065 298.023 +91.2385 170.139 309.056 +90.7449 175.523 318.837 +90.7402 182.276 331.103 +87.7984 183.403 333.15 +86.4027 187.956 341.42 +89.6723 203.455 369.574 +88.3997 209.543 380.633 +82.4676 204.604 371.662 +80.6028 209.733 380.979 +74.5124 203.795 370.192 +72.687 209.476 380.511 +66.8288 203.486 369.631 +64.6962 208.768 379.225 +59.3434 203.636 369.902 +57.1183 209.233 380.069 +51.831 203.578 369.797 +49.3566 208.915 379.492 +44.2887 203.215 369.139 +41.6066 208.386 378.532 +36.8233 202.981 368.713 +34.0356 208.561 378.849 +29.5209 203.596 369.831 +26.4462 208.527 378.787 +22.0962 203.332 369.351 +18.8697 208.428 378.608 +14.7101 203.15 369.02 +11.3163 208.411 378.577 +7.34572 202.954 368.664 +3.7655 208.089 377.991 +2.28706e-14 202.502 367.844 +-3.76463 208.04 377.904 +-7.33001 202.52 367.875 +-11.2954 208.025 377.876 +-14.6857 202.813 368.408 +-18.7825 207.465 376.858 +-21.9863 202.321 367.514 +-26.2997 207.371 376.688 +-29.3047 202.105 367.123 +-33.808 207.167 376.316 +-36.6141 201.828 366.618 +-41.3766 207.235 376.44 +-44.0169 201.968 366.874 +-48.9491 207.19 376.359 +-51.3192 201.567 366.145 +-56.557 207.177 376.335 +-58.745 201.582 366.172 +-64.0606 206.717 375.499 +-66.1405 201.391 365.824 +-71.6637 206.527 375.154 +-73.5747 201.23 365.533 +-79.4547 206.746 375.552 +-81.1511 201.338 365.729 +-86.9244 206.045 374.28 +-88.7991 201.474 365.975 +-94.7356 206.083 374.348 +-96.324 201.212 365.5 +-102.856 206.614 375.313 +-104.293 201.728 366.437 +-110.793 206.604 375.294 +-111.862 201.332 365.717 +-114.244 198.669 360.881 +-118.221 198.83 361.173 +-121.388 197.631 358.996 +-126.772 199.972 363.248 +-135.859 207.802 377.47 +-137.018 203.369 369.419 +-143.422 206.718 375.502 +-143.12 200.453 364.12 +-145.139 197.661 359.049 +-145.29 192.51 349.693 +-159.59 205.85 373.925 +-160.441 201.569 366.148 +-162.69 199.18 361.809 +-166.475 198.712 360.959 +-169.414 197.246 358.296 +-141.679 160.967 292.396 +-142.553 158.109 287.204 +-144.066 156.05 283.463 +-146.428 154.954 281.473 +-436.015 450.934 819.118 +-436.71 441.552 802.075 +-438.459 433.542 787.525 +-439.371 424.99 771.991 +-441.733 418.097 759.47 +-442.632 410.063 744.876 +-445.341 403.926 733.728 +-447.432 397.417 721.905 +-449.806 391.343 710.871 +-451.208 384.608 698.637 +-454.15 379.353 689.092 +-455.516 372.94 677.442 +-461.062 370.058 672.207 +-467.95 368.268 668.956 +-481.061 371.274 674.416 +-483.194 365.778 664.433 +-484.184 359.565 653.146 +-490.893 357.674 649.712 +-489.797 350.197 636.13 +-480.652 337.272 612.652 +-478.994 329.904 599.267 +-479.893 324.459 589.378 +-484.1 321.335 583.702 +-486.268 316.921 575.683 +-489.938 313.552 569.565 +-491.818 309.106 561.489 +-495.854 306.075 555.983 +-497.14 301.41 547.509 +-501.128 298.444 542.121 +-502.438 293.942 533.943 +-506.581 291.152 528.875 +-508.648 287.212 521.718 +-512.251 284.186 516.222 +-514.061 280.214 509.006 +-518.108 277.502 504.081 +-520.002 273.676 497.129 +-524.32 271.16 492.559 +-525.765 267.193 485.355 +-529.955 264.658 480.749 +-532.13 261.145 474.368 +-536.199 258.589 469.725 +-537.506 254.734 462.722 +-142.357 66.2981 120.43 +-142.536 65.2318 118.493 +-143.126 64.3662 116.921 +-140.378 62.0344 112.685 +-141.941 61.6351 111.96 +-142.526 60.8119 110.464 +-148.753 62.3609 113.278 +-155.427 64.019 116.29 +-156.35 63.2695 114.929 +-157.257 62.5172 113.562 +-159.626 62.3383 113.237 +-160.278 61.4842 111.685 +-569.968 214.756 390.102 +-581.449 215.167 390.849 +-584.681 212.48 385.968 +-575.883 205.507 373.302 +-2650.74 928.78 1687.12 +-581.848 200.153 363.576 +-2683.95 906.326 1646.33 +-383.466 127.1 230.876 +-383.264 124.672 226.466 +-595.645 190.132 345.373 +-601.495 188.379 342.189 +-603.531 185.426 336.825 +-608.22 183.288 332.941 +-610.149 180.318 327.546 +-615.446 178.339 323.952 +-617.357 175.375 318.568 +-380.791 106.025 192.594 +-377.125 102.899 186.915 +-629.464 168.27 305.661 +-381.143 99.8014 181.288 +-652.233 167.248 303.805 +-375.649 94.307 171.308 +-2919.2 717.323 1303.01 +-380.437 91.4751 166.164 +-379.74 89.3209 162.251 +-380.44 87.5114 158.964 +-380.287 85.5202 155.347 +-381.82 83.9162 152.433 +-380.857 81.7768 148.547 +-379.479 79.5743 144.546 +-382.378 78.2761 142.188 +-114.653 22.9031 41.6034 +-113.395 22.0946 40.1346 +-111.371 21.157 38.4315 +-109.696 20.3072 36.8879 +-110.246 19.8786 36.1093 +-109.756 19.2654 34.9955 +-109.346 18.674 33.9211 +-108.546 18.0247 32.7417 +-109.057 17.5978 31.9662 +-108.516 17.004 30.8876 +-109.487 16.6482 30.2413 +-109.019 16.074 29.1983 +-109.401 15.6283 28.3887 +-109.68 15.1673 27.5512 +-110.914 14.834 26.9458 +-110.792 14.3167 26.0062 +-111.627 13.9224 25.2898 +-112.942 13.5804 24.6686 +-112.989 13.0821 23.7634 +-114.391 12.7362 23.1352 +-117.058 12.5153 22.7339 +-120.214 12.3229 22.3845 +-159.336 15.6336 28.3983 +-158.336 14.8428 26.9619 +-162.925 14.5626 26.4528 +-163.183 13.8764 25.2063 +-3231.56 260.797 473.736 +-860.375 65.718 119.376 +-868.059 62.5649 113.649 +-380.461 25.7867 46.8414 +-380.417 24.1531 43.8739 +-900.736 53.3363 96.885 +-405.576 22.2852 40.4808 +-404.77 20.517 37.2689 +-404.131 18.7665 34.0892 +-404.057 17.0482 30.9679 +-403.452 15.313 27.8159 +-404.213 13.6313 24.7612 +-3270.39 96.4651 175.228 +-404.145 10.2145 18.5546 +-404.814 8.5238 15.4834 +-403.454 6.79455 12.3423 +-146.85 1.85449 3.36866 +-145.978 1.22883 2.23216 +-146.094 0.614861 1.11689 +119.7 3.55271e-15 -1.13687e-13 +119.895 0.512845 0.912006 +119.882 1.02565 1.82394 +120.459 1.54608 2.74943 +119.727 2.04928 3.64429 +120.186 2.572 4.57385 +120.335 3.0911 5.49698 +120.275 3.60569 6.41209 +120.107 4.11658 7.32063 +120.826 4.66092 8.28864 +120.54 5.16899 9.19214 +120.343 5.67972 10.1004 +120.138 6.18908 11.0062 +120.719 6.74157 11.9887 +120.594 7.25765 12.9065 +121.055 7.81156 13.8915 +120.813 8.32224 14.7997 +119.968 8.78798 15.6279 +120.3 9.3391 16.608 +120.721 9.90184 17.6087 +120.344 10.4008 18.496 +120.842 10.9777 19.5219 +120.74 11.5035 20.457 +120.433 12.0097 21.3572 +121.095 12.6161 22.4356 +120.67 13.1123 23.318 +120.53 13.639 24.2546 +120.282 14.1541 25.1705 +120.608 14.7391 26.211 +121.406 15.3895 27.3675 +121.224 15.9208 28.3124 +121.707 16.5435 29.4198 +121.503 17.077 30.3685 +121.962 17.7074 31.4896 +121.642 18.2284 32.416 +121.408 18.7627 33.3662 +120.879 19.251 34.2346 +121.385 19.9073 35.4017 +121.026 20.4257 36.3236 +121.224 21.0408 37.4174 +121.032 21.592 38.3977 +121.018 22.1776 39.4389 +121.272 22.8173 40.5766 +121.419 23.4429 41.6892 +121.461 24.0532 42.7744 +121.213 24.6093 43.7634 +119.758 24.9161 44.309 +117.384 25.017 44.4884 +113.371 24.7406 43.9969 +112.107 25.0417 44.5323 +108.032 24.6917 43.9098 +106.595 24.9207 44.3171 +102.552 24.5162 43.5978 +101.486 24.8008 44.1039 +98.0998 24.4997 43.5684 +96.7729 24.692 43.9104 +97.0359 25.2891 44.9722 +96.4941 25.6797 45.667 +97.3452 26.448 47.0331 +97.6539 27.0805 48.158 +97.3413 27.5462 48.9862 +96.4163 27.8371 49.5035 +96.3456 28.3747 50.4595 +96.4336 28.965 51.5092 +96.7623 29.6361 52.7027 +96.0623 29.9962 53.343 +96.3632 30.6729 54.5464 +96.4806 31.3003 55.6622 +96.5829 31.9311 56.7839 +95.8459 32.2874 57.4176 +96.1684 33.0054 58.6944 +96.147 33.6147 59.778 +96.1112 34.2264 60.8657 +96.3021 34.9277 62.1129 +96.3953 35.6038 63.3152 +95.6784 35.9849 63.9929 +95.6645 36.6342 65.1475 +95.6347 37.2861 66.3068 +95.6667 37.9713 67.5254 +96.3759 38.9403 69.2485 +95.679 39.351 69.9789 +95.507 39.9816 71.1003 +95.5462 40.7101 72.3959 +95.4919 41.4096 73.6397 +96.0143 42.374 75.3548 +95.9198 43.0811 76.6122 +95.8073 43.7906 77.8739 +95.6769 44.5023 79.1397 +95.4564 45.1823 80.3488 +95.3616 45.9324 81.6828 +95.813 46.9624 83.5145 +95.5339 47.6501 84.7374 +95.3071 48.3742 86.0251 +95.6125 49.3847 87.8221 +95.4798 50.1861 89.2472 +95.7311 51.2066 91.062 +95.3511 51.9055 92.3049 +95.0197 52.6417 93.6142 +95.719 53.971 95.978 +94.7545 54.3783 96.7024 +94.8112 55.3826 98.4884 +94.9029 56.4286 100.348 +94.9015 57.4422 102.151 +94.9335 58.498 104.029 +94.8734 59.5195 105.845 +94.4189 60.312 107.254 +94.2442 61.3006 109.013 +94.2794 62.45 111.057 +94.751 63.9219 113.674 +94.7127 65.0826 115.738 +94.3533 66.0477 117.454 +94.4199 67.3373 119.748 +94.2799 68.5107 121.834 +93.9949 69.6062 123.782 +94.4404 71.2795 126.758 +94.4573 72.673 129.236 +94.4316 74.0719 131.724 +93.7885 75.0164 133.404 +94.4065 77.0113 136.951 +93.9454 78.1725 139.016 +94 79.8022 141.914 +93.462 80.9692 143.99 +93.7622 82.9087 147.439 +93.6663 84.5561 150.368 +93.8474 86.5113 153.845 +93.5503 88.0832 156.641 +93.2496 89.7032 159.521 +93.6569 92.0725 163.735 +93.2854 93.7469 166.713 +92.6029 95.16 169.225 +90.0177 94.6198 168.265 +88.8273 95.5364 169.895 +87.9771 96.8529 172.236 +87.5254 98.664 175.457 +88.0317 101.651 180.769 +88.1703 104.334 185.539 +87.5081 106.161 188.789 +90.819 113.007 200.963 +88.0152 112.384 199.856 +87.5518 114.777 204.11 +87.4203 117.726 209.355 +88.7926 122.901 218.558 +92.1683 131.2 233.317 +92.2722 135.169 240.375 +91.8089 138.495 246.29 +91.6251 142.436 253.297 +91.8047 147.181 261.736 +91.5949 151.563 269.528 +91.4013 156.236 277.839 +91.0748 160.967 286.251 +91.0784 166.605 296.278 +90.0366 170.642 303.458 +88.9789 174.921 311.067 +88.4058 180.49 320.969 +90.2504 191.607 340.739 +87.2468 192.895 343.03 +84.9527 195.897 348.369 +79.9266 192.555 342.426 +77.5448 195.536 347.726 +72.8942 192.776 342.818 +70.2581 195.3 347.308 +65.7715 192.645 342.585 +63.0118 195 346.774 +58.6508 192.354 342.067 +55.9337 195.073 346.903 +51.584 192.049 341.525 +48.7721 194.694 346.23 +44.5455 191.633 340.786 +41.8114 194.985 346.746 +37.7057 191.936 341.325 +34.6967 194.385 345.679 +30.8187 191.936 341.325 +27.777 194.701 346.242 +23.9616 192.024 341.481 +20.7931 194.469 345.828 +17.0814 191.758 341.009 +13.8725 194.715 346.266 +10.2326 191.533 340.607 +6.91464 194.167 345.292 +3.40248 191.101 339.839 +2.14273e-14 193.902 344.821 +-3.40335 191.15 339.927 +-6.90766 193.971 344.943 +-10.2116 191.14 339.91 +-13.8411 194.273 345.482 +-17.0116 190.975 339.616 +-20.725 193.832 344.696 +-23.815 190.849 339.392 +-27.6724 193.968 344.938 +-30.6618 190.959 339.587 +-34.5834 193.75 344.551 +-37.4757 190.765 339.242 +-41.4664 193.376 343.886 +-44.2511 190.366 338.534 +-48.4309 193.332 343.808 +-51.1402 190.396 338.587 +-55.3491 193.034 343.278 +-58.03 190.318 338.447 +-62.3235 192.87 342.986 +-64.9957 190.372 338.544 +-69.4072 192.935 343.102 +-71.819 189.932 337.761 +-76.5144 192.938 343.106 +-78.7503 189.721 337.386 +-83.4558 192.445 342.23 +-85.8616 189.832 337.584 +-90.5203 192.18 341.759 +-92.7945 189.45 336.904 +-97.8332 192.328 342.021 +-100.052 189.624 337.213 +-105.546 193.071 343.343 +-107.35 189.731 337.403 +-112.956 193.081 343.361 +-114.6 189.63 337.224 +-119.58 191.71 340.924 +-121.876 189.462 336.925 +-127.5 192.336 342.037 +-129.46 189.645 337.252 +-136.901 194.878 346.556 +-138.63 191.882 341.229 +-143.306 192.986 343.192 +-143.445 188.05 334.414 +-144.064 183.951 327.126 +-146.197 181.915 323.504 +-157.634 191.235 340.078 +-151.122 178.825 318.009 +-142.851 164.952 293.339 +-143.749 162.042 288.164 +-147.645 162.541 289.051 +-436.672 469.653 835.196 +-437.621 459.994 818.019 +-438.992 451.114 802.228 +-192.401 193.353 343.845 +-442.45 434.964 773.508 +-443.821 426.941 759.24 +-446.372 420.287 747.408 +-448.486 413.429 735.211 +-451.058 407.187 724.112 +-452.473 400.098 711.505 +-455.689 394.777 702.043 +-457.25 388.186 690.322 +-463.941 386.047 686.517 +-471.929 384.972 684.605 +-484.147 387.243 688.645 +-485.459 380.793 677.175 +-487.116 374.775 666.473 +-487.67 368.073 654.555 +-492.273 364.543 648.276 +-476.824 346.494 616.18 +-480.312 342.543 609.154 +-482.206 337.545 600.265 +-485.642 333.714 593.452 +-487.862 329.125 585.292 +-491.026 325.253 578.406 +-493.127 320.753 570.403 +-496.506 317.154 564.003 +-498.501 312.739 556.152 +-502.556 309.674 550.702 +-504.589 305.418 543.133 +-508.226 302.189 537.391 +-510.245 298.051 530.032 +-513.584 294.739 524.143 +-516.056 290.978 517.454 +-520.024 288.098 512.333 +-522.256 284.297 505.573 +-526.015 281.366 500.36 +-527.662 277.348 493.216 +-532.167 274.868 488.804 +-534.262 271.171 482.23 +-538.088 268.386 477.277 +-140.714 68.9705 122.652 +-143.292 69.019 122.738 +-142.573 67.4838 120.008 +-142.246 66.1629 117.659 +-141.956 64.8836 115.384 +-142.958 64.2077 114.182 +-144.988 63.9871 113.79 +-153.012 66.3526 117.997 +-156.074 66.4996 118.258 +-157.328 65.8615 117.123 +-145.778 59.9557 106.621 +-142.982 57.7711 102.736 +-161.336 64.0361 113.877 +-582.574 227.134 403.918 +-565.792 216.667 385.304 +-582.321 219.013 389.476 +-570.226 210.614 374.54 +-575.24 208.633 371.018 +-582.492 207.432 368.882 +-584.942 204.506 363.679 +-591.346 202.952 360.916 +-595.843 200.721 356.947 +-384.01 126.957 225.77 +-383.921 124.552 221.494 +-383.021 121.918 216.809 +-382.984 119.59 212.67 +-382.13 117.038 208.132 +-381.727 114.657 203.897 +-379.982 111.908 199.009 +-380.754 109.931 195.492 +-377.933 106.95 190.192 +-630.747 174.913 311.053 +-633.662 172.161 306.159 +-652.873 173.748 308.98 +-636.87 165.978 295.164 +-646.808 165.036 293.487 +-381.529 95.284 169.446 +-378.915 92.5984 164.67 +-381.358 91.1677 162.126 +-379.447 88.7101 157.756 +-666.317 152.293 270.826 +-672.552 150.23 267.158 +-382.319 83.4322 148.37 +-379.388 80.8555 143.788 +-114.879 23.9011 42.504 +-112.159 22.7711 40.4945 +-111.077 21.9967 39.1174 +-110.161 21.2693 37.8237 +-109.976 20.6919 36.7969 +-109.31 20.0319 35.6232 +-108.534 19.3624 34.4327 +-108.498 18.832 33.4895 +-108.924 18.3832 32.6913 +-109.437 17.9477 31.9168 +-108.896 17.3426 30.8407 +-109.105 16.8614 29.985 +-109.114 16.3511 29.0776 +-110.456 16.0369 28.5188 +-110.641 15.5503 27.6536 +-110.818 15.0634 26.7876 +-111.951 14.703 26.1467 +-112.692 14.2849 25.4033 +-113.525 13.8735 24.6717 +-114.934 13.5247 24.0513 +-116.34 13.1649 23.4116 +-118.327 12.8578 22.8653 +-125.888 13.1154 23.3235 +-159.924 15.9478 28.3604 +-159.318 15.179 26.9932 +-161.057 14.631 26.0186 +-162.789 14.0692 25.0196 +-856.49 70.2512 124.93 +-863.24 67.0148 119.174 +-380.672 27.8853 49.5892 +-381.055 26.2492 46.6796 +-379.823 24.5096 43.586 +-903.018 54.346 96.6448 +-404.582 22.5939 40.1794 +-403.676 20.796 36.982 +-405.325 19.1296 34.0187 +-403.758 17.314 30.79 +-404.051 15.5864 27.7177 +-404.313 13.8576 24.6433 +-404.943 12.1397 21.5883 +-403.746 10.3712 18.4434 +-403.915 8.64388 15.3716 +-403.454 6.90562 12.2805 +-147.749 1.89635 3.37233 +-143.178 1.22496 2.17839 +-145.594 0.62277 1.10749 +119.8 1.77636e-15 -1.13687e-13 +119.895 0.521052 0.907342 +119.782 1.0412 1.81311 +120.459 1.57082 2.73537 +120.527 2.09598 3.64987 +120.186 2.61316 4.55046 +120.335 3.14056 5.46887 +120.375 3.66643 6.38459 +120.905 4.21025 7.33158 +120.926 4.73941 8.25306 +120.54 5.2517 9.14514 +120.343 5.77061 10.0487 +120.834 6.32457 11.0134 +120.918 6.86071 11.947 +120.594 7.37379 12.8405 +121.155 7.94309 13.8318 +120.912 8.46234 14.736 +120.66 8.9801 15.6376 +120.3 9.48855 16.523 +120.623 10.0521 17.5043 +120.344 10.5672 18.4014 +120.842 11.1533 19.422 +120.642 11.6781 20.3358 +120.433 12.2019 21.248 +120.214 12.7248 22.1585 +120.67 13.3222 23.1988 +120.432 13.8461 24.1112 +120.185 14.3689 25.0215 +120.608 14.975 26.077 +121.115 15.5983 27.1623 +120.548 16.0854 28.0105 +120.839 16.6885 29.0608 +121.407 17.3365 30.1892 +121.195 17.8776 31.1314 +121.546 18.5055 32.2249 +120.931 18.9881 33.0652 +121.64 19.6822 34.2739 +121.006 20.1627 35.1106 +120.743 20.704 36.0532 +121.412 21.4107 37.2839 +121.408 22.0057 38.3199 +120.643 22.4627 39.1158 +121.085 23.1467 40.3069 +121.419 23.8181 41.476 +121.183 24.3821 42.4582 +121.583 25.0793 43.6723 +121.415 25.6651 44.6923 +119.401 25.8542 45.0216 +115.198 25.5417 44.4774 +113.745 25.8142 44.9519 +109.391 25.4025 44.235 +107.317 25.491 44.3892 +104.71 25.4324 44.2872 +102.738 25.5088 44.4201 +99.4363 25.2308 43.9361 +97.4825 25.2711 44.0062 +95.8881 25.3898 44.213 +96.4062 26.0669 45.3921 +96.7329 26.7022 46.4983 +96.8706 27.2932 47.5274 +96.8216 27.8376 48.4755 +96.9333 28.4343 49.5145 +96.3456 28.8288 50.2015 +95.7515 29.2204 50.8833 +95.9142 29.8465 51.9736 +96.0623 30.4762 53.0702 +96.3632 31.1637 54.2674 +96.4806 31.8012 55.3775 +95.9196 32.2192 56.1055 +95.8459 32.8041 57.1239 +96.1684 33.5336 58.3943 +96.147 34.1526 59.4723 +95.7067 34.6277 60.2996 +95.4982 35.1904 61.2794 +95.5967 35.8738 62.4695 +95.6784 36.5607 63.6656 +96.3737 37.4963 65.2949 +95.713 37.9137 66.0217 +95.7444 38.6103 67.2347 +95.6814 39.2783 68.3979 +95.7556 40.0127 69.6768 +96.2674 40.9448 71.2999 +95.5462 41.3616 72.0257 +95.4919 42.0722 73.2632 +95.4198 42.7855 74.5052 +95.9198 43.7705 76.2204 +95.8805 44.5253 77.5348 +95.6769 45.2145 78.735 +95.5283 45.9399 79.9981 +95.2903 46.6325 81.2043 +95.7423 47.6787 83.0261 +95.604 48.4481 84.366 +95.2377 49.1125 85.5229 +95.0618 49.8856 86.8692 +95.4798 50.9892 88.7909 +95.7311 52.026 90.5963 +95.418 52.773 91.8971 +95.0197 53.4841 93.1354 +95.2598 54.5717 95.0294 +94.7545 55.2485 96.2079 +95.004 56.3829 98.1833 +94.9029 57.3316 99.8353 +94.9644 58.3998 101.695 +94.4977 59.1612 103.021 +94.4425 60.1975 104.826 +94.1754 61.1193 106.431 +94.2442 62.2816 108.455 +94.7553 63.7696 111.046 +94.2808 64.6222 112.531 +94.3642 65.8811 114.723 +94.5828 67.2675 117.137 +94.4199 68.4148 119.135 +94.1681 69.5244 121.067 +93.8845 70.6369 123.005 +94.3859 72.3788 126.038 +93.7051 73.2478 127.551 +94.0077 74.9196 130.462 +93.8407 76.2592 132.795 +93.8914 77.8169 135.508 +93.9454 79.4234 138.305 +93.9 80.9931 141.039 +93.9052 82.6549 143.932 +93.8107 84.2793 146.761 +93.6663 85.9092 149.599 +93.8004 87.8519 152.982 +93.5503 89.4928 155.84 +93.7036 91.5823 159.478 +92.0952 91.9857 160.181 +93.1977 95.1579 165.705 +89.7185 93.6714 163.116 +90.9052 97.0816 169.055 +89.5737 97.8809 170.447 +87.8144 98.2205 171.038 +87.4855 100.197 174.48 +87.641 102.819 179.046 +87.3666 105.037 182.908 +87.6205 107.998 188.064 +87.9236 111.155 193.561 +89.592 116.228 202.396 +87.4818 116.52 202.904 +87.1809 119.283 207.715 +92.3977 129.937 226.268 +92.0056 133.065 231.715 +92.1135 137.096 238.734 +91.7471 140.617 244.866 +91.595 144.667 251.918 +91.5708 149.155 259.734 +91.3961 153.654 267.568 +91.2911 158.545 276.085 +91.155 163.686 285.038 +91.2078 169.512 295.182 +88.7597 170.914 297.624 +86.8983 173.564 302.239 +90.2967 187.3 326.159 +89.3281 192.683 335.532 +84.498 189.807 330.523 +82.2083 192.603 335.392 +77.5541 189.829 330.562 +75.1215 192.457 335.138 +70.4887 189.397 329.81 +68.018 192.099 334.515 +63.5763 189.195 329.458 +61.1815 192.366 334.98 +56.8032 189.275 329.598 +54.194 192.03 334.394 +50.0698 189.395 329.805 +47.3706 192.126 334.562 +43.2436 189.009 329.134 +40.5152 191.964 334.279 +36.5268 188.91 328.961 +33.6595 191.592 333.631 +29.8772 189.05 329.205 +26.8981 191.557 333.571 +23.1923 188.833 328.828 +20.1389 191.364 333.235 +16.5797 189.106 329.302 +13.4363 191.609 333.662 +9.93415 188.922 328.983 +6.71045 191.448 333.381 +3.30561 188.632 328.477 +2.09832e-14 191.328 333.172 +-3.30038 188.333 327.956 +-6.70521 191.298 333.12 +-9.90536 188.375 328.029 +-13.4119 191.261 333.055 +-16.5012 188.21 327.743 +-20.1075 191.065 332.715 +-23.1008 188.088 327.53 +-26.8074 190.911 332.447 +-29.6889 187.859 327.131 +-33.5637 191.046 332.682 +-36.2968 187.721 326.891 +-40.2644 190.775 332.209 +-42.9719 187.822 327.067 +-46.9563 190.445 331.635 +-49.6261 187.716 326.882 +-53.7626 190.502 331.733 +-56.2267 187.355 326.253 +-60.415 189.956 330.783 +-63.0482 187.623 326.721 +-67.1498 189.647 330.245 +-69.6322 187.096 325.802 +-73.9957 189.572 330.115 +-76.338 186.852 325.378 +-80.94 189.631 330.217 +-83.1994 186.89 325.443 +-87.9334 189.675 330.293 +-90.0866 186.865 325.4 +-94.9543 189.655 330.259 +-96.9972 186.776 325.246 +-101.975 189.522 330.028 +-104.17 187.056 325.734 +-109.29 189.804 330.518 +-110.936 186.505 324.773 +-116.452 189.682 330.306 +-118.177 186.652 325.03 +-123.576 189.399 329.814 +-125.272 186.446 324.672 +-131.041 189.521 330.025 +-133.656 187.958 327.304 +-140.502 192.237 334.755 +-142.219 189.427 329.862 +-143.025 185.547 323.105 +-143.082 180.887 314.991 +-148.457 182.983 318.64 +-142.511 171.335 298.357 +-142.929 167.684 291.999 +-145.663 166.828 290.508 +-149.801 167.553 291.771 +-1358.74 1484.75 2585.5 +-438.34 468.121 815.171 +-440.241 459.637 800.396 +-441.527 450.813 785.03 +-443.878 443.351 772.036 +-1487.5 1453.82 2531.64 +-447.619 428.206 745.663 +-449.613 421.1 733.289 +-452.347 414.885 722.467 +-453.539 407.459 709.535 +-456.969 402.221 700.415 +-459.1 395.994 689.571 +-470.793 398.017 693.093 +-478.419 396.511 690.471 +-487.543 396.2 689.93 +-489.221 389.885 678.933 +-486.955 380.647 662.845 +-491.537 376.929 656.371 +-477.37 359.164 625.437 +-478.613 353.36 615.33 +-482.465 349.584 608.755 +-484.041 344.251 599.468 +-487.5 340.351 592.676 +-489.155 335.279 583.843 +-493.406 332.059 578.237 +-495.354 327.357 570.049 +-499.063 323.888 564.008 +-500.841 319.235 555.905 +-504.922 316.111 550.464 +-506.603 311.543 542.511 +-510.326 308.293 536.85 +-512.173 303.965 529.315 +-516.181 300.971 524.1 +-517.827 296.649 516.574 +-522.012 293.827 511.661 +-524.465 290.068 505.114 +-527.906 286.896 499.592 +-529.776 282.916 492.66 +-534.025 280.241 488.003 +-535.998 276.406 481.324 +-140.883 71.3933 124.322 +-142.623 71.0248 123.68 +-142.793 69.8789 121.685 +-143.436 68.9791 120.118 +-142.101 67.1534 116.939 +-141.809 65.8537 114.675 +-145.539 66.4129 115.649 +-147.812 66.2775 115.413 +-155.783 68.6355 119.519 +-156.376 67.6943 117.881 +-158.012 67.2062 117.031 +-158.954 66.4209 115.663 +-161.038 66.1082 115.119 +-135.457 54.625 95.1222 +-134.765 53.383 92.9594 +-587.147 228.442 397.802 +-592 226.216 393.925 +-2616.73 981.961 1709.95 +-2633.84 970.552 1690.09 +-581.683 210.459 366.487 +-591.536 210.121 365.898 +-587.742 204.943 356.881 +-591.475 202.438 352.518 +-385.254 129.406 225.344 +-2732.23 900.575 1568.23 +-383.44 124.004 215.936 +-383.321 121.611 211.769 +-382.554 119.043 207.297 +-383.518 117.038 203.805 +-382.725 114.52 199.422 +-381.185 111.816 194.713 +-377.933 108.661 189.219 +-378.431 106.623 185.669 +-639.784 176.606 307.536 +-637.318 172.322 300.076 +-637.753 168.868 294.061 +-2906.29 753.419 1311.98 +-381.351 96.7634 168.501 +-379.721 94.2804 164.177 +-382.527 92.9105 161.791 +-666.559 158.327 275.705 +-381.193 88.5192 154.144 +-675.464 153.295 266.942 +-381.771 84.6458 147.399 +-114.724 24.8415 43.2581 +-114.419 24.1863 42.1172 +-111.974 23.0974 40.221 +-111.169 22.3674 38.9498 +-110.254 21.6279 37.6621 +-109.416 20.9159 36.4223 +-108.841 20.2652 35.2892 +-109.85 19.9107 34.6719 +-108.31 19.1001 33.2603 +-109.396 18.7584 32.6652 +-108.488 18.0769 31.4785 +-108.801 17.6047 30.6562 +-109.01 17.1163 29.8057 +-110.071 16.7584 29.1824 +-110.264 16.2652 28.3238 +-110.064 15.7168 27.3687 +-111.877 15.4508 26.9056 +-112.434 15.0027 26.1252 +-113.273 14.5884 25.4037 +-113.331 14.0715 24.5036 +-114.351 13.6714 23.8069 +-116.827 13.4316 23.3893 +-121.061 13.3653 23.2739 +-151.515 16.038 27.9281 +-161.296 16.342 28.4575 +-161.576 15.6405 27.2358 +-164.105 15.1464 26.3755 +-163.97 14.3981 25.0723 +-859.153 71.5975 124.677 +-865.709 68.2819 118.904 +-380.771 28.3389 49.3484 +-379.57 26.5653 46.2599 +-379.723 24.8953 43.3518 +-406.845 24.8767 43.3194 +-404.582 22.9555 39.9739 +-404.572 21.1756 36.8745 +-402.538 19.3021 33.612 +-403.758 17.5911 30.6325 +-403.452 15.8124 27.5351 +-403.714 14.0585 24.4809 +-404.245 12.3127 21.4408 +-403.746 10.5372 18.3491 +-403.915 8.7822 15.293 +-403.854 7.0231 12.2298 +-147.05 1.91757 3.3392 +-145.078 1.26108 2.196 +-145.794 0.633607 1.10334 +119.7 3.55271e-15 -1.13687e-13 +119.795 0.528776 0.901854 +119.782 1.05751 1.80364 +120.359 1.59411 2.71883 +119.727 2.1147 3.60673 +120.186 2.6541 4.5267 +120.335 3.18977 5.44032 +120.275 3.72079 6.34599 +120.007 4.24446 7.23914 +119.929 4.77399 8.14228 +119.643 5.29434 9.02975 +120.343 5.86103 9.99627 +121.63 6.46596 11.028 +120.918 6.96821 11.8846 +120.594 7.48933 12.7734 +120.361 8.01474 13.6695 +120.912 8.59494 14.6591 +120.66 9.12081 15.556 +120.3 9.63723 16.4368 +120.524 10.2012 17.3987 +120.245 10.724 18.2904 +119.957 11.2451 19.1791 +120.642 11.861 20.2296 +120.237 12.3729 21.1026 +120.997 13.0083 22.1864 +120.768 13.5419 23.0964 +120.53 14.0744 24.0046 +121.06 14.7003 25.0721 +120.414 15.1852 25.8991 +121.115 15.8427 27.0205 +121.224 16.4291 28.0206 +120.839 16.95 28.909 +121.407 17.6082 30.0316 +121.003 18.129 30.9199 +120.494 18.6328 31.7792 +121.313 19.3465 32.9964 +120.974 19.8812 33.9084 +121.385 20.5428 35.0367 +121.783 21.2095 36.1739 +120.658 21.6112 36.8589 +121.126 22.2986 38.0314 +121.486 22.9741 39.1834 +121.085 23.5094 40.0965 +121.233 24.1542 41.1962 +120.997 24.7263 42.1719 +121.028 25.3562 43.2462 +121.783 26.1463 44.5938 +120.318 26.461 45.1306 +116.386 26.2093 44.7012 +113.745 26.2186 44.7172 +110.841 26.1425 44.5874 +108.762 26.2388 44.7516 +106.148 26.1857 44.661 +104.17 26.2696 44.8041 +100.862 25.9936 44.3333 +98.1921 25.8539 44.0951 +95.7115 25.7402 43.9011 +95.9668 26.3547 44.9492 +96.7329 27.1206 46.2555 +96.8706 27.7208 47.2793 +96.9948 28.3244 48.3087 +97.0194 28.9055 49.2997 +96.6885 29.3847 50.1171 +96.5189 29.916 51.0233 +95.9142 30.3141 51.7023 +96.1466 30.9809 52.8395 +96.2794 31.6245 53.9372 +96.564 32.3274 55.136 +96.4171 32.8938 56.102 +96.0107 33.3754 56.9234 +96.0046 34.001 57.9904 +96.147 34.6878 59.1617 +95.5449 35.1108 59.8833 +95.5786 35.7719 61.0108 +96.2356 36.6794 62.5586 +95.6784 37.1336 63.3332 +95.6645 37.8036 64.476 +95.6347 38.4763 65.6233 +95.7444 39.2153 66.8836 +95.6814 39.8938 68.0408 +95.679 40.6072 69.2576 +95.583 41.2907 70.4234 +95.5462 42.0097 71.6496 +95.4919 42.7315 72.8806 +96.0143 43.7267 74.578 +95.9198 44.4563 75.8225 +95.8073 45.1884 77.0711 +95.6769 45.923 78.3239 +95.5283 46.6597 79.5804 +95.3616 47.3987 80.8408 +95.813 48.4615 82.6536 +95.604 49.2073 83.9255 +95.3071 49.9184 85.1383 +95.6813 50.9976 86.9789 +95.4798 51.7881 88.3272 +95.7311 52.8412 90.1233 +95.418 53.5999 91.4173 +95.086 54.3601 92.7138 +95.3254 55.4647 94.5979 +94.7545 56.1142 95.7055 +94.9397 57.2279 97.6051 +94.8393 58.191 99.2476 +94.461 59.0007 100.629 +94.9957 60.4048 103.023 +94.8734 61.4194 104.754 +94.358 62.1974 106.081 +94.3044 63.298 107.958 +94.2794 64.4436 109.912 +93.9869 65.4304 111.595 +94.5384 67.0368 114.335 +94.468 68.2385 116.384 +94.4199 69.4868 118.513 +94.1681 70.6137 120.435 +93.7189 71.6172 122.147 +94.277 73.428 125.235 +94.1349 74.737 127.468 +94.1137 76.179 129.927 +94.102 77.6696 132.469 +93.7884 78.9492 134.652 +93.9454 80.6679 137.583 +93.95 82.3057 140.376 +93.5112 83.598 142.58 +93.8591 85.6439 146.07 +93.6663 87.2553 148.818 +93.4248 88.8714 151.575 +93.7811 91.1196 155.409 +93.4312 92.7467 158.184 +89.9981 91.2997 155.716 +88.5948 91.8753 156.698 +87.609 92.902 158.449 +91.9617 99.7489 170.127 +90.2787 100.197 170.891 +88.0178 99.9907 170.539 +87.2463 101.489 173.094 +87.5628 104.337 177.953 +87.711 107.103 182.67 +87.2459 109.221 186.283 +87.3739 112.191 191.347 +90.3446 119.041 203.031 +90.2134 122.041 208.147 +92.3112 128.281 218.789 +92.2976 131.83 224.842 +92.3637 135.676 231.402 +92.177 139.34 237.651 +91.6853 142.724 243.422 +91.8957 147.416 251.426 +91.6001 151.541 258.46 +91.3109 155.916 265.923 +91.3462 161.126 274.809 +91.1817 166.3 283.633 +89.5514 169.041 288.308 +86.9069 169.969 289.89 +89.8982 182.37 311.041 +89.5963 188.76 321.939 +86.9886 190.577 325.039 +82.6799 188.633 321.723 +79.8381 189.98 324.021 +75.8994 188.69 321.819 +72.9844 189.911 323.903 +69.0855 188.535 321.556 +66.3162 190.228 324.443 +62.3385 188.418 321.356 +59.4764 189.935 323.943 +55.5763 188.089 320.795 +52.8162 190.081 324.192 +48.9604 188.1 320.814 +46.0301 189.614 323.396 +42.3493 188.001 320.645 +39.3863 189.539 323.268 +35.8559 188.346 321.234 +32.8141 189.706 323.553 +29.1946 187.625 320.004 +26.1936 189.462 323.138 +22.6734 187.501 319.792 +19.6207 189.362 322.966 +16.1566 187.167 319.223 +13.0594 189.152 322.609 +9.70903 187.534 319.849 +6.51847 188.885 322.152 +3.23056 187.237 319.343 +2.03171e-14 189.015 322.374 +-3.23405 187.44 319.688 +-6.51324 188.733 321.894 +-9.69856 187.332 319.504 +-13.0245 188.647 321.747 +-16.1304 186.864 318.706 +-19.5318 188.503 321.502 +-22.6124 186.996 318.931 +-26.0959 188.756 321.933 +-29.0769 186.869 318.715 +-32.605 188.497 321.491 +-35.5396 186.685 318.4 +-39.1982 188.633 321.724 +-42.0663 186.744 318.502 +-45.701 188.259 321.084 +-48.608 186.746 318.504 +-52.2177 187.927 320.519 +-55.0738 186.388 317.894 +-58.8037 187.787 320.28 +-61.6288 186.273 317.698 +-65.5522 188.036 320.705 +-68.1561 185.999 317.23 +-72.2212 187.925 320.516 +-74.763 185.865 317.002 +-79.0064 188.001 320.645 +-81.5328 186.016 317.259 +-85.7288 187.817 320.331 +-88.3357 186.104 317.41 +-92.3658 187.376 319.578 +-95.0192 185.834 316.95 +-99.283 187.411 319.639 +-102.165 186.332 317.799 +-106.231 187.381 319.588 +-108.806 185.79 316.874 +-113.148 187.189 319.26 +-115.682 185.573 316.504 +-120.208 187.124 319.149 +-122.892 185.771 316.841 +-127.46 187.23 319.33 +-130.118 185.85 316.976 +-136.637 189.878 323.847 +-139.032 188.084 320.786 +-143.598 189.21 322.707 +-143.265 183.957 313.748 +-143.474 179.613 306.338 +-142.894 174.487 297.596 +-143.32 170.776 291.268 +-147.737 171.854 293.105 +-152.648 173.413 295.765 +-168.448 186.954 318.86 +-1384.71 1501.96 2561.67 +-1410.57 1495.79 2551.15 +-442.448 458.832 782.56 +-444.725 451.158 769.472 +-446.273 443.003 755.564 +-1512.92 1469.98 2507.13 +-450.927 428.948 731.593 +-453.205 422.185 720.058 +-455.042 415.214 708.169 +-457.855 409.316 698.11 +-462.3 405.002 690.751 +-475.614 408.394 696.536 +-481.561 405.368 691.376 +-486.342 401.416 684.635 +-486.466 393.764 671.584 +-488.728 388.019 661.785 +-490.556 382.071 651.642 +-477.922 365.214 622.89 +-480.403 360.239 614.405 +-483.768 356.021 607.211 +-485.532 350.723 598.175 +-488.894 346.672 591.267 +-491.565 342.21 583.656 +-494.774 338.197 576.813 +-496.437 333.213 568.312 +-500.767 330.087 562.979 +-502.38 325.233 554.702 +-505.855 321.657 548.603 +-508.428 317.565 541.623 +-511.725 313.982 535.512 +-514.166 309.929 528.6 +-517.74 306.61 522.938 +-519.402 302.213 515.44 +-523.602 299.341 510.541 +-525.937 295.44 503.887 +-529.933 292.51 498.891 +-532.3 288.718 492.422 +-535.953 285.66 487.207 +-538.082 281.828 480.672 +-141.794 72.9814 124.473 +-142.623 72.1377 123.034 +-143.007 71.0801 121.231 +-142.501 69.6032 118.712 +-141.956 68.1359 116.209 +-142.248 67.0929 114.43 +-147.603 68.41 116.677 +-151.824 69.1434 117.928 +-156.607 70.0796 119.524 +-157.206 69.1201 117.888 +-159.077 68.7196 117.205 +-160.486 68.1121 116.169 +-161.501 67.3367 114.846 +-582.859 238.729 407.165 +-587.426 236.336 403.083 +-134.513 53.1553 90.659 +-134.473 52.1902 89.013 +-596.421 227.321 387.707 +-2633.84 985.76 1681.26 +-2650.74 974.096 1661.37 +-386.542 139.456 237.849 +-597.244 211.52 360.758 +-597.821 207.816 354.44 +-596.824 203.614 347.273 +-601.732 201.446 343.576 +-382.518 125.644 214.292 +-381.129 122.81 209.458 +-383.572 121.229 206.763 +-383.859 118.977 202.921 +-381.697 116.002 197.846 +-380.582 113.389 193.39 +-376.721 110.01 187.627 +-377.299 107.97 184.147 +-653.428 183.199 312.454 +-637.318 175.023 298.51 +-647.289 174.079 296.9 +-381.237 100.38 171.202 +-380.905 98.1648 167.425 +-381.868 96.2994 164.243 +-381.358 94.078 160.455 +-380.44 91.7812 156.537 +-672.027 158.501 270.331 +-676.829 156.011 266.085 +-680.683 153.285 261.435 +-114.266 25.1299 42.8602 +-114.143 24.506 41.7962 +-110.773 23.2076 39.5818 +-110.798 22.6421 38.6172 +-109.51 21.8185 37.2125 +-109.696 21.298 36.3248 +-108.841 20.5828 35.105 +-108.722 20.0151 34.1367 +-108.781 19.4838 33.2306 +-109.113 19.0029 32.4105 +-109.247 18.4885 31.5331 +-108.801 17.8805 30.4961 +-109.677 17.4909 29.8316 +-110.166 17.0357 29.0553 +-110.552 16.5632 28.2494 +-110.737 16.0606 27.3922 +-111.588 15.6524 26.6959 +-112.627 15.264 26.0335 +-112.886 14.7663 25.1846 +-114.01 14.3776 24.5217 +-115.031 13.9683 23.8236 +-117.314 13.6989 23.3642 +-121.646 13.6404 23.2644 +-159.242 17.1201 29.1991 +-161.982 16.6687 28.4292 +-161.478 15.8759 27.0771 +-162.729 15.2547 26.0177 +-167.417 14.9311 25.4657 +-859.745 72.7694 124.112 +-867.487 69.4939 118.525 +-379.485 28.6858 48.925 +-381.253 27.1012 46.2224 +-380.715 25.3514 43.2381 +-406.051 25.2172 43.0091 +-405.179 23.3496 39.8239 +-404.074 21.481 36.6369 +-403.036 19.6288 33.4778 +-404.057 17.88 30.4952 +-403.752 16.072 27.4116 +-403.714 14.2787 24.3531 +-402.747 12.4592 21.2499 +-404.645 10.7261 18.2939 +-403.316 8.90656 15.1906 +-404.054 7.13669 12.172 +-146.45 1.93968 3.30821 +-144.478 1.27554 2.1755 +-145.194 0.640885 1.09306 +119.7 3.55271e-15 -1.13687e-13 +119.795 0.536891 0.897047 +120.482 1.08001 1.8045 +120.359 1.61857 2.70434 +119.727 2.14715 3.5875 +121.085 2.71499 4.53626 +120.335 3.23872 5.41132 +120.175 3.77475 6.30692 +120.107 4.31318 7.20654 +120.029 4.85128 8.10562 +120.739 5.42483 9.06391 +120.343 5.95097 9.94299 +119.939 6.47392 10.8168 +120.719 7.06353 11.8019 +120.594 7.60426 12.7053 +120.262 8.13101 13.5854 +120.912 8.72684 14.581 +120.759 9.26838 15.4858 +120.3 9.78512 16.3492 +120.524 10.3578 17.306 +120.245 10.8886 18.1929 +120.842 11.5019 19.2176 +120.642 12.0431 20.1218 +120.335 12.5731 21.0073 +120.117 13.1119 21.9076 +120.67 13.7386 22.9547 +121.309 14.3828 24.0311 +120.185 14.818 24.7582 +120.608 15.4431 25.8025 +121.115 16.0858 26.8765 +121.224 16.6812 27.8712 +120.936 17.2238 28.7779 +121.503 17.8926 29.8952 +121.003 18.4072 30.7551 +121.642 19.0989 31.9109 +121.313 19.6434 32.8205 +121.069 20.2022 33.7542 +121.101 20.8091 34.7683 +121.31 21.4514 35.8414 +121.695 22.1314 36.9775 +121.126 22.6408 37.8286 +121.486 23.3266 38.9746 +120.992 23.8518 39.852 +121.14 24.5061 40.9452 +120.719 25.048 41.8507 +120.843 25.706 42.95 +121.599 26.5074 44.2891 +121.602 27.1537 45.369 +117.847 26.9457 45.0214 +115.383 27.0043 45.1193 +111.566 26.7173 44.6398 +109.754 26.8846 44.9194 +106.956 26.7902 44.7616 +104.26 26.6956 44.6035 +101.486 26.5557 44.3697 +99.0791 26.4878 44.2563 +96.2413 26.2798 43.9088 +95.7032 26.6856 44.5869 +95.8583 27.2878 45.5929 +96.6965 28.0957 46.9428 +96.5618 28.6307 47.8367 +96.5886 29.2187 48.8192 +96.0027 29.624 49.4964 +96.6041 30.402 50.7962 +96.6775 31.0243 51.8359 +96.0623 31.4287 52.5117 +96.2794 32.1098 53.6497 +95.7301 32.5401 54.3685 +96.5829 33.456 55.899 +96.0107 33.8876 56.62 +96.1684 34.5817 57.7797 +96.147 35.2201 58.8464 +96.1921 35.8912 59.9676 +96.3021 36.5958 61.145 +95.6765 37.026 61.8637 +95.6784 37.7034 62.9956 +95.6645 38.3837 64.1323 +95.6347 39.0668 65.2735 +95.7444 39.8171 66.5271 +95.6814 40.506 67.6781 +95.679 41.2303 68.8884 +95.6591 41.9577 70.1038 +95.5462 42.6544 71.2677 +95.4919 43.3872 72.4922 +96.0886 44.432 74.2379 +95.9198 45.1385 75.4183 +95.8073 45.8819 76.6603 +95.6043 46.5923 77.8473 +95.5283 47.3757 79.1563 +96.0035 48.45 80.9511 +95.1059 48.8421 81.6063 +95.604 49.9624 83.4781 +95.3766 50.7214 84.7463 +95.6813 51.7802 86.5153 +95.4798 52.5829 87.8564 +95.1231 53.3116 89.074 +94.8158 54.0794 90.3568 +95.0197 55.1558 92.1553 +95.1286 56.1998 93.8997 +94.6895 56.9363 95.1302 +94.9397 58.1061 97.0848 +94.9029 59.1235 98.7847 +94.9644 60.2251 100.625 +94.4977 61.0103 101.937 +94.935 62.4025 104.263 +94.4189 63.1924 105.583 +94.3646 64.3104 107.451 +94.3389 65.4741 109.395 +94.6334 66.8915 111.764 +94.7127 68.1908 113.935 +94.468 69.2857 115.764 +94.3633 70.5106 117.81 +94.0562 71.6121 119.651 +94.2708 73.1446 122.211 +94.3859 74.6411 124.712 +94.1349 75.8839 126.788 +94.0077 77.2612 129.09 +94.0497 78.8178 131.69 +93.7884 80.1608 133.934 +93.8946 81.8611 136.775 +93.55 83.2128 139.034 +93.5605 84.9255 141.895 +93.8107 86.9135 145.217 +93.714 88.6395 148.101 +93.4718 90.2804 150.842 +93.1809 91.9258 153.591 +91.0705 91.7907 153.366 +88.6149 91.2761 152.506 +87.9373 92.5929 154.706 +87.8243 94.5593 157.991 +92.004 101.326 169.297 +91.0252 102.575 171.385 +88.5872 102.182 170.728 +87.5653 103.423 172.801 +87.5628 105.939 177.004 +87.4432 108.414 181.141 +87.3208 110.993 185.449 +87.4472 114.008 190.487 +92.5306 123.792 206.835 +92.6999 127.329 212.744 +92.2086 130.104 217.381 +92.2642 133.805 223.563 +92.0056 137.224 229.276 +92.0818 141.332 236.141 +91.778 145.061 242.37 +91.5649 149.14 249.186 +91.6001 153.866 257.082 +91.2541 158.21 264.341 +91.1808 163.303 272.849 +90.4335 167.467 279.806 +89.189 170.941 285.611 +87.4577 173.671 290.173 +90.503 186.414 311.464 +88.5692 189.459 316.552 +85.5714 190.349 318.039 +81.6194 189.071 315.903 +78.653 190.032 317.509 +74.9025 189.069 315.9 +71.8777 189.902 317.291 +68.1743 188.904 315.624 +65.257 190.062 317.559 +61.5793 188.979 315.75 +58.4908 189.654 316.878 +55.059 189.198 316.115 +51.9672 189.895 317.28 +48.3991 188.797 315.446 +45.2866 189.414 316.477 +41.8739 188.743 315.355 +38.8428 189.791 317.107 +35.3671 188.629 315.165 +32.2999 189.599 316.786 +28.8965 188.559 315.048 +25.7959 189.45 316.536 +22.4781 188.738 315.347 +19.312 189.242 316.189 +15.9996 188.193 314.436 +12.8709 189.283 316.258 +9.61479 188.564 315.056 +6.42947 189.165 316.06 +3.20002 188.313 314.637 +1.9873e-14 189.399 316.451 +-3.19478 188.005 314.123 +-6.42074 188.908 315.631 +-9.586 188 314.113 +-12.843 188.873 315.573 +-15.9778 187.936 314.007 +-19.2544 188.678 315.247 +-22.3987 188.072 314.234 +-25.6774 188.579 315.081 +-28.7945 187.894 313.936 +-32.1605 188.781 315.418 +-35.1754 187.607 313.457 +-38.571 188.464 314.889 +-41.6701 187.824 313.821 +-44.9698 188.089 314.263 +-48.0597 187.473 313.234 +-51.494 188.166 314.391 +-54.5712 187.522 313.315 +-58.0372 188.183 314.419 +-60.9356 187.004 312.45 +-64.3887 187.533 313.334 +-67.5729 187.237 312.84 +-71.0573 187.734 313.67 +-73.9456 186.654 311.864 +-77.6342 187.571 313.397 +-80.5805 186.664 311.882 +-84.1542 187.197 312.772 +-87.0985 186.313 311.295 +-91.1562 187.759 313.712 +-94.0928 186.847 312.187 +-97.9371 187.707 313.625 +-100.776 186.618 311.805 +-104.715 187.541 313.348 +-107.528 186.425 311.482 +-111.452 187.213 312.799 +-114.419 186.363 311.379 +-118.384 187.114 312.633 +-121.337 186.235 311.165 +-125.507 187.189 312.759 +-128.449 186.281 311.241 +-133.388 188.208 314.461 +-137.596 188.998 315.781 +-142.2 190.244 317.863 +-143.412 186.971 312.394 +-143.25 182.083 304.228 +-143.047 177.354 296.326 +-144.063 174.295 291.216 +-149.013 175.998 294.06 +-159.075 183.487 306.573 +-165.877 186.926 312.32 +-169.893 187.106 312.621 +-1410.57 1518.75 2537.55 +-443.237 466.704 779.777 +-445.529 458.908 766.753 +-447.135 450.671 752.989 +-449.42 443.366 740.784 +-451.538 436.12 728.678 +-454.064 429.477 717.577 +-456.157 422.62 706.121 +-458.89 416.536 695.956 +-466.45 414.909 693.237 +-478.101 416.829 696.446 +-484.96 414.495 692.545 +-489.163 409.941 684.937 +-486.307 399.676 667.786 +-488.996 394.19 658.62 +-482.877 381.861 638.021 +-478.695 371.418 620.572 +-481.745 366.789 612.838 +-484.787 362.246 605.248 +-486.565 356.863 596.253 +-489.533 352.452 588.884 +-492.094 347.835 581.17 +-495.012 343.553 574.014 +-497.821 339.27 566.859 +-500.767 335.152 559.978 +-503.55 330.993 553.03 +-506.789 327.197 546.686 +-509.372 323.037 539.737 +-512.933 319.553 533.916 +-515.13 315.275 526.768 +-518.909 312.017 521.324 +-521.239 307.936 514.505 +-524 304.165 508.205 +-526.94 300.546 502.158 +-530.406 297.264 496.674 +-533.323 293.712 490.739 +-536.366 290.267 484.984 +-534.609 284.306 475.024 +-142.144 74.2842 124.115 +-142.553 73.2088 122.319 +-143.435 72.3871 120.946 +-142.07 70.4571 117.721 +-142.609 69.4999 116.122 +-143.418 68.6828 114.757 +-148.783 70.015 116.982 +-156.135 72.1976 120.629 +-156.457 71.0868 118.773 +-157.432 70.282 117.429 +-159.001 69.7407 116.524 +-160.486 69.1573 115.549 +-161.733 68.4681 114.398 +-584.725 243.169 406.291 +-587.974 240.187 401.309 +-135.538 54.3824 90.8631 +-134.632 53.0538 88.6433 +-597.22 231.119 386.157 +-2633.84 1000.89 1672.3 +-2650.74 989.045 1652.51 +-2667.45 977.125 1632.6 +-386.148 138.857 232.005 +-613.892 216.677 362.028 +-597.404 206.939 345.757 +-601.565 204.481 341.65 +-606.527 202.28 337.974 +-381.888 124.942 208.756 +-383.827 123.171 205.797 +-383.006 120.534 201.391 +-381.525 117.729 196.704 +-382.219 115.624 193.186 +-381.224 113.033 188.858 +-376.777 109.474 182.912 +-378.535 107.757 180.043 +-637.406 177.733 296.959 +-647.377 176.774 295.358 +-379.641 101.493 169.576 +-379.391 99.2748 165.87 +-382.405 97.9143 163.597 +-382.886 95.9043 160.239 +-2957.32 724.405 1210.35 +-673.568 161.302 269.507 +-677.921 158.661 265.093 +-682.327 156.014 260.671 +-114.357 25.536 42.666 +-112.578 24.5409 41.0034 +-111.327 23.6818 39.5679 +-110.335 22.8933 38.2506 +-109.603 22.1721 37.0456 +-109.136 21.5145 35.9467 +-108.186 20.7728 34.7075 +-109.474 20.4627 34.1895 +-109.064 19.8343 33.1394 +-108.924 19.2611 32.1819 +-109.152 18.7559 31.3378 +-108.801 18.1549 30.3336 +-109.868 17.7902 29.7242 +-109.497 17.1921 28.7248 +-110.264 16.7736 28.0257 +-111.218 16.3779 27.3645 +-112.359 16.0024 26.7371 +-112.434 15.4716 25.8502 +-113.273 15.0443 25.1363 +-114.301 14.6355 24.4532 +-115.809 14.2785 23.8568 +-118.386 14.0363 23.4521 +-121.744 13.8608 23.159 +-158.362 17.2867 28.883 +-160.512 16.7709 28.0211 +-160.791 16.0509 26.8181 +-163.712 15.5824 26.0353 +-3226.72 292.191 488.198 +-861.126 74.0048 123.649 +-868.968 70.6811 118.095 +-379.485 29.126 48.6643 +-381.649 27.5457 46.0239 +-380.517 25.727 42.9852 +-404.86 25.5291 42.6544 +-404.582 23.673 39.5532 +-404.572 21.8375 36.4865 +-403.434 19.9497 33.3323 +-404.057 18.1544 30.3327 +-404.748 16.359 27.3329 +-404.313 14.5194 24.2592 +-146.227 4.59303 7.67413 +-403.746 10.8665 18.156 +-405.314 9.08807 15.1845 +-403.854 7.24261 12.1011 +-146.65 1.97213 3.29508 +-145.778 1.30677 2.18338 +-145.494 0.652066 1.08948 +119.8 1.77636e-15 -1.13687e-13 +119.995 0.545869 0.893652 +119.982 1.0917 1.78724 +120.459 1.64427 2.69186 +120.726 2.19762 3.59777 +120.285 2.73762 4.4818 +120.634 3.29559 5.39528 +120.375 3.83786 6.28303 +120.406 4.38893 7.1852 +120.129 4.9283 8.06821 +120.739 5.50638 9.0146 +120.642 6.05539 9.91339 +121.033 6.63119 10.856 +120.719 7.16972 11.7377 +120.793 7.73129 12.657 +120.461 8.26684 13.5338 +120.219 8.80725 14.4185 +120.858 9.41542 15.4142 +120.498 9.94853 16.2869 +120.721 10.5307 17.24 +120.344 11.0613 18.1087 +120.94 11.6844 19.1287 +120.74 12.2341 20.0286 +120.433 12.7724 20.91 +120.214 13.3198 21.806 +120.768 13.9564 22.8483 +120.627 14.5169 23.7659 +121.157 15.1625 24.8228 +120.608 15.6752 25.6622 +120.534 16.2493 26.6021 +120.837 16.878 27.6313 +121.032 17.4966 28.6441 +120.734 18.0466 29.5444 +121.099 18.6987 30.612 +120.781 19.2489 31.5127 +121.313 19.9387 32.642 +121.165 20.522 33.5969 +121.101 21.122 34.5791 +121.405 21.7909 35.6742 +121.129 22.3597 36.6054 +121.878 23.1237 37.8563 +121.58 23.6955 38.7924 +121.832 24.3785 39.9104 +121.419 24.9317 40.8162 +120.997 25.4831 41.7189 +121.675 26.2719 43.0103 +121.507 26.8855 44.0148 +121.877 27.6243 45.2243 +118.395 27.478 44.9848 +115.565 27.4535 44.9446 +112.382 27.3172 44.7216 +109.845 27.3113 44.7118 +106.956 27.1929 44.5181 +104.26 27.0969 44.3609 +102.377 27.1915 44.5158 +99.0791 26.8859 44.0155 +97.1242 26.9196 44.0706 +96.4941 27.3106 44.7108 +96.6455 27.9255 45.7173 +96.9576 28.595 46.8135 +97.1681 29.2435 47.8751 +97.1918 29.8431 48.8568 +96.0885 30.0962 49.2711 +96.5189 30.8317 50.4752 +95.999 31.2697 51.1922 +96.231 31.9572 52.3178 +96.3632 32.6209 53.4042 +96.564 33.3169 54.5438 +96.5 33.9298 55.5472 +95.9283 34.3675 56.2637 +96.0865 35.0716 57.4164 +96.2285 35.7798 58.5758 +95.6258 36.2162 59.2902 +96.3021 37.1459 60.8123 +95.6765 37.5826 61.5271 +95.7577 38.302 62.7049 +95.8221 39.0249 63.8884 +95.8695 39.7514 65.0777 +95.7444 40.4156 66.1652 +95.7586 41.148 67.3642 +95.7556 41.8836 68.5685 +95.6591 42.5885 69.7224 +95.6217 43.3298 70.936 +95.5667 44.0739 72.1543 +96.1629 45.1348 73.8911 +95.9935 45.8523 75.0656 +95.8805 46.6072 76.3015 +95.7494 47.3645 77.5413 +95.6003 48.1241 78.7849 +95.4329 48.886 80.0323 +95.813 49.9449 81.7657 +95.6741 50.7506 83.0848 +95.4461 51.5214 84.3467 +95.7501 52.5966 86.1069 +95.4798 53.3733 87.3785 +95.1907 54.1511 88.6517 +95.5519 55.3182 90.5625 +95.6823 56.3753 92.2932 +95.3254 57.1625 93.5818 +94.8844 57.911 94.8072 +95.1326 59.0995 96.753 +94.9665 60.0529 98.3138 +95.0274 61.1711 100.144 +94.56 61.9681 101.449 +94.4425 63.0122 103.159 +94.4189 64.1423 105.009 +94.3044 65.2355 106.798 +94.8742 66.8352 109.417 +94.6922 67.9393 111.225 +94.8869 69.3431 113.523 +94.5828 70.4128 115.274 +94.5332 71.6998 117.381 +93.9444 72.6021 118.858 +93.9397 73.983 121.119 +93.9502 75.4133 123.461 +94.2424 77.1127 126.243 +94.0077 78.4227 128.387 +94.102 80.047 131.046 +93.8399 81.4106 133.279 +93.9961 83.1819 136.179 +93.55 84.4637 138.277 +93.6097 86.2475 141.197 +93.8591 88.2654 144.501 +93.8094 90.0633 147.444 +93.5657 91.7292 150.172 +93.4117 93.5386 153.134 +90.4803 92.5669 151.543 +88.7487 92.788 151.905 +88.2003 94.2658 154.324 +87.566 95.6988 156.67 +91.3278 102.093 167.139 +90.7349 103.786 169.91 +88.872 104.052 170.345 +87.2463 104.595 171.235 +87.5628 107.531 176.041 +87.4432 110.044 180.156 +87.3957 112.758 184.598 +87.5205 115.819 189.609 +91.3838 124.096 203.16 +92.6999 129.243 211.587 +92.448 132.403 216.76 +92.1975 135.718 222.187 +92.0381 139.336 228.109 +92.0818 143.457 234.856 +91.6853 147.092 240.808 +91.5649 151.382 247.83 +91.3662 155.78 255.031 +91.2825 160.639 262.985 +91.2635 165.908 271.611 +90.193 169.532 277.543 +88.8267 172.806 282.904 +87.8583 177.089 289.916 +90.6239 189.469 310.184 +88.5692 192.307 314.83 +85.0315 191.992 314.313 +81.6843 192.066 314.435 +78.154 191.665 313.779 +74.763 191.554 313.597 +71.4198 191.528 313.555 +68.0467 191.384 313.319 +64.8402 191.687 313.814 +61.4802 191.512 313.527 +58.1467 191.372 313.3 +54.8373 191.269 313.13 +51.6332 191.511 313.526 +48.2686 191.118 312.883 +45.0917 191.434 313.4 +41.7833 191.166 312.961 +38.5815 191.349 313.26 +35.3096 191.154 312.941 +32.082 191.151 312.937 +28.8337 190.978 312.654 +25.6216 190.998 312.686 +22.4353 191.211 313.036 +19.2125 191.098 312.85 +16.0127 191.178 312.981 +12.7837 190.827 312.406 +9.59647 191.034 312.745 +6.38758 190.757 312.293 +3.19391 190.779 312.328 +1.88738e-14 190.891 312.511 +-3.19653 190.936 312.584 +-6.37711 190.445 311.781 +-9.56506 190.409 311.722 +-12.7872 190.879 312.491 +-15.9429 190.345 311.617 +-19.1131 190.109 311.231 +-22.3621 190.587 312.013 +-25.5588 190.53 311.92 +-28.7396 190.354 311.633 +-31.9426 190.32 311.577 +-35.1179 190.116 311.242 +-38.3933 190.415 311.733 +-41.5003 189.871 310.841 +-44.8601 190.451 311.791 +-47.9423 189.826 310.768 +-51.2575 190.117 311.245 +-54.453 189.928 310.935 +-57.5992 189.57 310.349 +-60.9521 189.867 310.834 +-64.1109 189.531 310.285 +-67.4089 189.591 310.383 +-70.6184 189.379 310.036 +-73.9854 189.562 310.335 +-77.1352 189.167 309.689 +-80.4506 189.165 309.685 +-83.7943 189.198 309.74 +-87.1452 189.215 309.768 +-90.4788 189.166 309.687 +-93.6922 188.848 309.167 +-97.2642 189.22 309.776 +-100.562 189.022 309.451 +-104.026 189.108 309.592 +-107.585 189.328 309.952 +-110.809 188.931 309.302 +-114.449 189.215 309.767 +-117.674 188.786 309.065 +-121.337 189.035 309.472 +-124.79 188.919 309.283 +-128.282 188.835 309.146 +-131.815 188.784 309.062 +-137.386 191.546 313.583 +-140.874 191.303 313.185 +-143.449 189.83 310.774 +-143.287 184.869 302.653 +-143.085 180.069 294.794 +-144.414 177.348 290.339 +-148.893 178.5 292.226 +-158.465 185.531 303.736 +-165.255 189.025 309.456 +-168.582 188.454 308.522 +-1410.57 1541.58 2523.74 +-1436.32 1535.1 2513.14 +-445.216 465.481 762.047 +-447.498 457.817 749.502 +-449.374 449.985 736.679 +-451.913 443.044 725.317 +-454.303 436.162 714.049 +-456.4 429.2 702.652 +-458.988 422.889 692.319 +-467.45 422.049 690.944 +-478.507 423.454 693.245 +-486.196 421.798 690.533 +-488.693 415.703 680.555 +-486.731 406.038 664.732 +-489.211 400.291 655.324 +-478.574 384.148 628.896 +-479.302 377.479 617.978 +-482.192 372.648 610.07 +-484.391 367.391 601.463 +-487.196 362.697 593.778 +-489.823 357.963 586.027 +-492.564 353.401 578.56 +-495.428 349.01 571.371 +-498.303 344.703 564.32 +-501.437 340.645 557.677 +-504.288 336.462 550.828 +-507.1 332.319 544.047 +-510.127 328.38 537.597 +-513.061 324.437 531.142 +-516.094 320.614 524.883 +-519.039 316.787 518.618 +-521.961 312.998 512.415 +-524.132 308.816 505.568 +-527.676 305.49 500.123 +-530.946 302.04 494.476 +-534.073 298.546 488.755 +-536.504 294.706 482.469 +-142.266 76.7947 125.722 +-142.355 75.5124 123.623 +-142.482 74.2723 121.593 +-143.649 73.5847 120.467 +-142.501 71.7337 117.437 +-142.101 70.2934 115.079 +-144.735 70.3549 115.179 +-149.151 71.2437 116.634 +-156.283 73.3527 120.087 +-156.607 72.2247 118.24 +-157.357 71.3041 116.733 +-159.001 70.7891 115.89 +-161.789 70.7667 115.854 +-161.655 69.464 113.721 +-585.502 247.152 404.617 +-588.052 243.83 399.179 +-590.85 240.632 393.944 +-135.425 54.1688 88.6808 +-598.178 234.969 384.673 +-601.928 232.177 380.102 +-2650.74 1003.91 1643.52 +-2667.45 991.814 1623.72 +-2683.95 979.642 1603.79 +-614.139 220.023 360.204 +-604.285 212.47 347.838 +-601.732 207.612 339.886 +-605.436 204.952 335.531 +-381.803 126.793 207.575 +-382.046 124.443 203.729 +-382.665 122.237 200.117 +-382.639 119.848 196.205 +-381.271 117.071 191.659 +-380.705 114.576 187.575 +-377.038 111.197 182.043 +-376.786 108.871 178.235 +-637.67 180.479 295.465 +-2892.98 801.835 1312.7 +-381.858 103.621 169.639 +-381.529 101.335 165.898 +-383.121 99.5723 163.012 +-2944.9 748.717 1225.74 +-2957.32 735.295 1203.76 +-674.565 163.97 268.438 +-677.557 160.96 263.51 +-682.144 158.316 259.183 +-114.724 26.003 42.57 +-112.67 24.9302 40.8138 +-112.251 24.2372 39.6792 +-110.52 23.2765 38.1065 +-109.789 22.5436 36.9066 +-109.042 21.8192 35.7206 +-109.122 21.2676 34.8176 +-109.192 20.7169 33.916 +-109.346 20.1846 33.0446 +-109.302 19.6185 32.1179 +-109.247 19.0544 31.1944 +-109.752 18.589 30.4324 +-109.964 18.0733 29.5882 +-109.593 17.4657 28.5935 +-111.127 17.159 28.0913 +-111.218 16.6241 27.2156 +-111.588 16.1315 26.4091 +-112.434 15.7042 25.7096 +-113.37 15.2835 25.0209 +-114.301 14.8555 24.3202 +-115.712 14.481 23.7071 +-117.606 14.1534 23.1709 +-123.013 14.2159 23.2731 +-159.732 17.6983 28.9743 +-160.61 17.0334 27.8857 +-162.557 16.4712 26.9654 +-164.597 15.9021 26.0337 +-851.957 78.3075 128.199 +-861.027 75.1089 122.962 +-869.758 71.8087 117.559 +-380.376 29.6332 48.513 +-381.352 27.938 45.7379 +-382.698 26.2634 42.9964 +-403.867 25.8493 42.3184 +-404.086 23.9993 39.2898 +-404.77 22.1766 36.3058 +-405.126 20.3345 33.29 +-403.26 18.3909 30.1081 +-402.655 16.519 27.0436 +-403.814 14.7194 24.0975 +-146.027 4.65571 7.62196 +-403.946 11.0353 18.0662 +-403.815 9.1906 15.0461 +-402.655 7.32964 11.9995 +-146.05 1.99359 3.26374 +-144.978 1.31914 2.15959 +-146.194 0.665053 1.08877 +119.8 1.77636e-15 -1.13687e-13 +119.795 0.552988 0.887214 +119.882 1.10685 1.77584 +120.559 1.66987 2.67914 +120.726 2.22999 3.5778 +120.385 2.78025 4.46063 +120.535 3.34137 5.36089 +120.375 3.89439 6.24815 +120.306 4.44988 7.13939 +120.129 5.00089 8.02342 +120.838 5.59208 8.97194 +120.443 6.13442 9.84207 +121.133 6.73441 10.8047 +120.918 7.28727 11.6917 +120.793 7.84516 12.5868 +120.461 8.3886 13.4587 +121.11 9.00325 14.4448 +120.858 9.5541 15.3286 +120.597 10.1033 16.2098 +120.721 10.6858 17.1443 +120.442 11.2335 18.023 +120.94 11.8565 19.0225 +120.74 12.4142 19.9174 +120.433 12.9606 20.7939 +120.117 13.505 21.6674 +120.768 14.162 22.7215 +120.53 14.7188 23.6149 +121.157 15.3858 24.685 +120.802 15.9317 25.5608 +120.534 16.4887 26.4544 +121.127 17.1676 27.5437 +121.032 17.7543 28.4851 +121.6 18.4436 29.5909 +121.099 18.9741 30.4421 +120.781 19.5324 31.3377 +121.217 20.2164 32.4352 +121.165 20.8242 33.4104 +121.291 21.4666 34.4411 +121.499 22.129 35.5038 +121.129 22.689 36.4022 +120.938 23.2834 37.3559 +121.674 24.063 38.6068 +121.085 24.5859 39.4456 +121.14 25.2408 40.4964 +121.09 25.8783 41.5191 +120.936 26.497 42.5118 +121.599 27.3022 43.8037 +121.786 28.0101 44.9394 +118.304 27.8612 44.7005 +114.837 27.6824 44.4136 +112.382 27.7196 44.4733 +109.845 27.7135 44.4636 +106.867 27.5702 44.2337 +104.349 27.5196 44.1525 +101.664 27.3999 43.9604 +99.1678 27.3064 43.8104 +97.0359 27.2912 43.7861 +95.7911 27.511 44.1386 +96.8204 28.388 45.5458 +96.9576 29.0162 46.5536 +96.3886 29.4362 47.2275 +96.9333 30.2022 48.4564 +96.0885 30.5395 48.9976 +96.6041 31.3135 50.2394 +96.8471 32.0105 51.3577 +96.231 32.4279 52.0273 +96.3632 33.1013 53.1078 +96.564 33.8076 54.241 +96.0026 34.252 54.954 +96.0931 34.9336 56.0475 +96.0865 35.5882 57.0977 +96.2285 36.3068 58.2507 +95.7876 36.8118 59.0609 +95.7394 37.4728 60.1214 +95.7564 38.1679 61.2367 +95.7577 38.8661 62.3568 +95.8221 39.5997 63.5338 +95.8695 40.3369 64.7165 +95.7444 41.0109 65.7979 +95.7586 41.7541 66.9903 +95.7556 42.5005 68.1879 +95.6591 43.2157 69.3353 +95.6217 43.968 70.5422 +95.5667 44.7231 71.7537 +95.4198 45.4457 72.9131 +95.9935 46.5276 74.6489 +95.8073 47.2576 75.8201 +95.6769 48.0257 77.0525 +96.2477 49.1636 78.8782 +95.4329 49.6061 79.588 +95.8837 50.7179 81.3718 +95.6741 51.4981 82.6236 +96.1407 52.6607 84.4889 +95.819 53.4094 85.69 +95.4798 54.1594 86.8934 +95.7987 55.2999 88.7231 +95.5519 56.133 90.0597 +95.1522 56.8888 91.2725 +95.3254 58.0044 93.0623 +95.5338 59.1665 94.9268 +94.9397 59.8483 96.0207 +94.9029 60.8962 97.7019 +94.3981 61.661 98.929 +94.6222 62.9221 100.952 +94.4425 63.9403 102.586 +94.4798 65.1289 104.493 +94.3646 66.2386 106.273 +94.8742 67.8196 108.81 +94.5159 68.8114 110.401 +94.4223 70.0201 112.34 +94.5828 71.4498 114.634 +94.4766 72.7119 116.659 +94.1122 73.8031 118.41 +93.8293 74.9848 120.306 +93.9502 76.5241 122.775 +94.1886 78.204 125.471 +93.9547 79.5328 127.602 +94.102 81.2259 130.319 +93.7884 82.5642 132.466 +93.9961 84.4071 135.423 +94.1 86.2118 138.318 +93.5605 87.4718 140.34 +93.9076 89.6119 143.773 +93.3323 90.9253 145.881 +93.5657 93.0803 149.338 +93.5964 95.1041 152.585 +90.4803 93.9303 150.702 +88.5703 93.9652 150.758 +87.7619 95.1792 152.706 +87.9534 97.5378 156.49 +91.201 103.453 165.98 +90.7349 105.314 168.967 +88.872 105.584 169.399 +87.2463 106.136 170.284 +87.6801 109.261 175.298 +87.4432 111.665 179.155 +87.3957 114.419 183.574 +87.4838 117.476 188.478 +91.3838 125.924 202.033 +92.7349 131.197 210.492 +92.6533 134.652 216.035 +92.3644 137.966 221.353 +92.3311 141.838 227.565 +92.1135 145.62 233.632 +91.6235 149.158 239.31 +91.5649 153.611 246.454 +91.6001 158.479 254.264 +91.3393 163.106 261.687 +91.236 168.301 270.022 +90.4602 172.538 276.821 +88.9043 175.504 281.579 +87.5328 179.031 287.238 +90.5756 192.157 308.297 +88.7793 195.602 313.825 +85.189 195.18 313.147 +81.706 194.946 312.772 +78.154 194.488 312.037 +74.9623 194.894 312.687 +71.5534 194.713 312.397 +68.1743 194.568 312.165 +64.8229 194.458 311.989 +61.6123 194.75 312.457 +58.2875 194.661 312.315 +54.9555 194.504 312.063 +51.6332 194.331 311.785 +48.4122 194.51 312.072 +45.0917 194.254 311.66 +41.8852 194.455 311.983 +38.5919 194.219 311.605 +35.3767 194.338 311.795 +32.1605 194.441 311.961 +28.9043 194.265 311.679 +25.6843 194.286 311.712 +22.4903 194.503 312.06 +19.2649 194.441 311.961 +16.0127 193.994 311.244 +12.8151 194.113 311.435 +9.59385 193.794 310.924 +6.3998 193.937 311.153 +3.19391 193.589 310.595 +2.12053e-14 193.702 310.776 +-3.1974 193.801 310.934 +-6.39282 193.726 310.814 +-9.58862 193.689 310.754 +-12.7872 193.69 310.757 +-15.9909 193.729 310.819 +-19.1654 193.437 310.35 +-22.3621 193.394 310.281 +-25.5657 193.389 310.273 +-28.7317 193.105 309.818 +-31.9426 193.123 309.847 +-35.1946 193.337 310.19 +-38.3933 193.22 310.002 +-41.5909 193.088 309.79 +-44.8723 193.308 310.144 +-48.0597 193.094 309.8 +-51.2575 192.917 309.517 +-54.453 192.725 309.209 +-57.7556 192.885 309.465 +-60.9356 192.611 309.025 +-64.2498 192.739 309.231 +-67.3907 192.331 308.576 +-70.5993 192.117 308.232 +-73.9854 192.354 308.612 +-77.3016 192.367 308.633 +-80.6454 192.416 308.712 +-83.9517 192.346 308.599 +-87.1685 192.054 308.131 +-90.503 192.003 308.05 +-93.9426 192.141 308.272 +-97.523 192.518 308.876 +-100.856 192.366 308.632 +-104.301 192.402 308.689 +-107.841 192.573 308.963 +-111.043 192.118 308.234 +-114.449 192.002 308.048 +-117.952 192.019 308.076 +-121.337 191.819 307.754 +-125.083 192.151 308.288 +-128.482 191.916 307.91 +-132.088 191.962 307.983 +-137.316 194.268 311.683 +-141.197 194.565 312.16 +-143.449 192.626 309.049 +-143.287 187.592 300.973 +-143.085 182.721 293.157 +-144.219 179.716 288.336 +-148.694 180.887 290.215 +-158.831 188.698 302.748 +-164.177 190.557 305.73 +-1384.71 1570.73 2520.09 +-1410.57 1564.28 2509.73 +-443.281 480.744 771.306 +-445.35 472.478 758.044 +-447.498 464.56 745.341 +-449.374 456.612 732.589 +-451.96 449.617 721.366 +-454.16 442.446 709.861 +-456.254 435.383 698.529 +-459.086 429.209 688.624 +-467.5 428.311 687.182 +-478.203 429.418 688.958 +-486.35 428.146 686.918 +-488.85 421.961 676.995 +-487.049 412.287 661.474 +-488.943 405.964 651.328 +-479.5 390.56 626.615 +-478.64 382.51 613.699 +-481.689 377.742 606.05 +-484.9 373.194 598.752 +-487.196 368.039 590.482 +-489.649 363.106 582.567 +-492.74 358.735 575.555 +-495.19 353.981 567.927 +-498.483 349.907 561.391 +-501.437 345.662 554.581 +-503.673 341.001 547.102 +-506.914 337.09 540.827 +-509.687 332.928 534.151 +-512.806 329.053 527.933 +-516.416 325.538 522.294 +-518.779 321.292 515.481 +-521.567 317.368 509.186 +-524.331 313.483 502.952 +-527.476 309.871 497.158 +-530.136 306.021 490.981 +-533.664 302.711 485.67 +-536.091 298.817 479.422 +-141.849 77.6973 124.658 +-142.355 76.6246 122.937 +-142.482 75.3662 120.918 +-142.935 74.2977 119.203 +-142.357 72.7167 116.667 +-142.101 71.3287 114.44 +-143.345 70.7061 113.441 +-148.414 71.9354 115.413 +-156.283 74.4331 119.421 +-156.831 73.3937 117.753 +-157.81 72.5627 116.42 +-159.381 72.0031 115.522 +-161.099 71.5027 114.719 +-161.81 70.5548 113.198 +-583.947 250.126 401.303 +-587.817 247.323 396.805 +-590.929 244.209 391.81 +-134.711 54.6768 87.7234 +-597.379 238.112 382.027 +-601.205 235.314 377.538 +-604.578 232.343 372.772 +-2667.45 1006.42 1614.7 +-385.657 142.838 229.17 +-614.551 223.413 358.444 +-601.301 214.534 344.199 +-601.482 210.582 337.858 +-605.52 207.999 333.714 +-381.888 128.688 206.468 +-383.403 126.724 203.317 +-382.153 123.872 198.741 +-382.639 121.613 195.116 +-381.874 118.983 190.897 +-381.571 116.528 186.958 +-376.429 112.653 180.74 +-377.923 110.808 177.781 +-638.285 183.314 294.109 +-2892.98 813.645 1305.41 +-379.818 104.585 167.796 +-379.48 102.276 164.091 +-380.795 100.425 161.122 +-2944.9 759.745 1218.94 +-381.342 96.2117 154.362 +-673.749 166.183 266.624 +-678.103 163.462 262.258 +-682.967 160.842 258.055 +-114.724 26.386 42.3337 +-112.67 25.2974 40.5872 +-111.42 24.412 39.1666 +-110.52 23.6194 37.8949 +-109.789 22.8757 36.7017 +-109.042 22.1406 35.5223 +-109.122 21.5808 34.6243 +-108.347 20.8592 33.4665 +-109.346 20.4819 32.8611 +-109.302 19.9075 31.9396 +-109.531 19.3854 31.102 +-109.657 18.8464 30.2372 +-109.964 18.3395 29.4239 +-110.358 17.8467 28.6332 +-110.36 17.2916 27.7426 +-111.218 16.8689 27.0645 +-111.492 16.3549 26.2399 +-112.53 15.9492 25.5889 +-113.176 15.4821 24.8395 +-113.428 14.9591 24.0005 +-115.809 14.7066 23.5953 +-118.094 14.4214 23.1377 +-123.306 14.4596 23.199 +-160.025 17.992 28.8664 +-160.022 17.221 27.6294 +-160.594 16.512 26.4918 +-161.745 15.8568 25.4406 +-3226.72 300.952 482.847 +-860.337 76.1538 122.181 +-870.055 72.8912 116.947 +-381.266 30.14 48.3566 +-380.857 28.3127 45.4249 +-381.111 26.5398 42.5805 +-404.264 26.2558 42.1249 +-404.98 24.4067 39.1581 +-405.367 22.5364 36.1575 +-404.429 20.5985 33.0483 +-404.754 18.7309 30.0519 +-404.748 16.8495 27.0333 +-405.41 14.9953 24.0584 +-3270.39 105.804 169.752 +-402.747 11.1647 17.9126 +-405.014 9.35362 15.007 +-403.554 7.45421 11.9595 +-147.25 2.03957 3.27228 +-145.578 1.34411 2.15648 +-146.394 0.675768 1.0842 +119.8 1.77636e-15 -1.13687e-13 +119.895 0.561436 0.882923 +119.882 1.12283 1.76578 +120.559 1.69397 2.66397 +119.927 2.24719 3.53397 +120.385 2.82038 4.43537 +120.535 3.38959 5.33053 +120.375 3.95059 6.21277 +120.306 4.51411 7.09896 +120.129 5.07306 7.97798 +120.838 5.6728 8.92113 +120.443 6.22296 9.78632 +120.238 6.78112 10.6641 +120.918 7.39245 11.6255 +120.892 7.96494 12.5258 +120.659 8.52368 13.4045 +121.11 9.13319 14.363 +120.858 9.69199 15.2418 +120.597 10.2491 16.1179 +120.721 10.84 17.0472 +121.131 11.4608 18.0234 +120.252 11.9591 18.8071 +120.74 12.5934 19.8046 +120.433 13.1476 20.6761 +120.997 13.8003 21.7026 +120.768 14.3664 22.5928 +120.53 14.9313 23.4812 +121.157 15.6079 24.5452 +120.802 16.1616 25.416 +121.309 16.8341 26.4736 +121.031 17.4015 27.3659 +121.032 18.0106 28.3237 +120.734 18.5767 29.214 +121.099 19.248 30.2696 +120.877 19.83 31.185 +121.408 20.5404 32.3022 +121.069 21.1082 33.1951 +121.101 21.7424 34.1924 +121.405 22.4309 35.2753 +121.129 23.0165 36.1961 +120.938 23.6195 37.1444 +120.737 24.2224 38.0926 +120.805 24.883 39.1315 +120.396 25.4478 40.0196 +120.997 26.2317 41.2524 +120.936 26.8794 42.271 +121.599 27.6963 43.5556 +121.052 28.2432 44.4157 +118.395 28.2852 44.4817 +115.565 28.2599 44.4419 +112.292 28.097 44.1858 +109.754 28.0904 44.1754 +107.586 28.1563 44.2791 +104.26 27.8929 43.8648 +102.377 27.9903 44.0179 +99.7887 27.8739 43.835 +97.1242 27.7104 43.5778 +95.5274 27.8313 43.7679 +96.7329 28.7717 45.2469 +96.9576 29.435 46.29 +97.1681 30.1025 47.3397 +97.6226 30.856 48.5245 +96.6885 31.1737 49.0243 +96.6041 31.7655 49.9549 +95.999 32.1882 50.6196 +96.231 32.8959 51.7327 +96.3632 33.5791 52.807 +96.6474 34.3252 53.9803 +96.5 34.9265 54.926 +96.0931 35.4378 55.7301 +96.0865 36.1018 56.7743 +96.3913 36.8931 58.0187 +96.3539 37.5639 59.0735 +95.7394 38.0136 59.7809 +95.7564 38.7188 60.8898 +95.7577 39.4271 62.0036 +95.8221 40.1713 63.174 +95.7912 40.8857 64.2974 +95.7444 41.6028 65.4252 +96.4531 42.6639 67.0939 +95.7556 43.114 67.8017 +95.6591 43.8395 68.9426 +95.6217 44.6026 70.1427 +96.1659 45.653 71.7947 +96.1629 46.4607 73.0647 +95.9935 47.1992 74.2261 +95.8805 47.9762 75.4482 +95.7494 48.7558 76.6741 +95.5283 49.5005 77.8452 +95.3616 50.2844 79.0781 +95.8837 51.4499 80.911 +95.604 52.2032 82.0955 +95.3766 52.9962 83.3427 +95.7501 54.1416 85.144 +95.4798 54.9411 86.4013 +95.7987 56.098 88.2206 +95.5519 56.9431 89.5497 +95.086 57.6697 90.6922 +95.3254 58.8416 92.5352 +94.8844 59.6121 93.747 +94.9397 60.7121 95.4768 +94.9029 61.7751 97.1485 +94.3981 62.551 98.3687 +94.9957 64.0824 100.777 +94.4425 64.8632 102.005 +94.4798 66.0689 103.901 +94.2442 67.1088 105.536 +94.3389 68.4105 107.583 +94.6922 69.935 109.981 +94.7707 71.2931 112.117 +94.5828 72.4811 113.985 +94.5332 73.8059 116.068 +94.1122 74.8684 117.739 +93.9397 76.1562 119.764 +93.9502 77.6286 122.08 +94.2424 79.3778 124.831 +94.0077 80.7263 126.951 +94.102 82.3983 129.581 +93.8399 83.802 131.788 +94.0469 85.6715 134.728 +94.05 87.4095 137.462 +93.6097 88.781 139.618 +93.8591 90.8581 142.885 +93.7617 92.6621 145.722 +93.5657 94.4237 148.492 +92.9962 95.858 150.748 +90.4803 95.286 149.848 +88.1687 94.8895 149.225 +88.2003 97.0348 152.598 +87.6951 98.6553 155.147 +91.0742 104.8 164.811 +91.0252 107.176 168.546 +88.872 107.108 168.44 +87.2463 107.668 169.32 +87.6019 110.739 174.15 +87.4432 113.277 178.141 +87.3583 116.02 182.455 +87.4838 119.171 187.41 +91.4913 127.892 201.125 +92.7699 133.14 209.378 +92.3796 136.192 214.177 +92.2976 139.856 219.94 +92.0381 143.429 225.558 +91.9866 147.518 231.989 +91.5926 151.26 237.874 +91.595 155.88 245.139 +91.6001 160.767 252.824 +91.2825 165.357 260.044 +91.236 170.73 268.493 +90.1395 174.408 274.277 +88.9043 178.037 279.984 +87.9335 182.447 286.918 +90.5756 194.931 306.551 +88.3357 197.434 310.489 +85.2115 198.049 311.456 +81.4895 197.236 310.176 +78.3411 197.768 311.013 +74.6234 196.813 309.511 +71.4198 197.154 310.048 +68.0467 197.006 309.815 +64.8402 197.318 310.305 +61.4637 197.085 309.938 +58.2875 197.471 310.546 +54.8521 196.94 309.711 +51.6332 197.136 310.019 +48.2686 196.732 309.384 +45.0917 197.057 309.895 +41.7833 196.781 309.461 +38.5815 196.969 309.757 +35.3 196.715 309.357 +32.0907 196.82 309.522 +28.7631 196.106 308.4 +25.6216 196.608 309.189 +22.4414 196.881 309.619 +19.1864 196.443 308.93 +15.9734 196.311 308.722 +12.7837 196.432 308.912 +9.57553 196.216 308.573 +6.38409 196.253 308.631 +3.18519 195.847 307.992 +2.06501e-14 196.498 309.016 +-3.1878 196.008 308.245 +-6.39282 196.522 309.053 +-9.56506 196.002 308.235 +-12.7872 196.486 308.997 +-15.9385 195.882 308.047 +-19.1654 196.229 308.592 +-22.2949 195.596 307.598 +-25.5657 196.18 308.516 +-28.669 195.465 307.391 +-31.9426 195.911 308.092 +-35.022 195.166 306.922 +-38.3724 195.902 308.079 +-41.4777 195.342 307.198 +-44.7504 195.566 307.55 +-47.9553 195.456 307.376 +-51.1461 195.277 307.095 +-54.32 195.03 306.706 +-57.5992 195.139 306.879 +-60.8035 194.968 306.609 +-64.0935 195.046 306.732 +-67.2267 194.632 306.082 +-70.5993 194.889 306.486 +-73.7861 194.604 306.037 +-77.1352 194.724 306.225 +-80.429 194.669 306.14 +-83.9967 195.226 307.016 +-86.9584 194.356 305.647 +-90.4788 194.723 306.224 +-93.9175 194.863 306.444 +-97.2901 194.83 306.393 +-100.535 194.522 305.909 +-104.246 195.076 306.779 +-107.386 194.529 305.919 +-111.043 194.891 306.489 +-114.178 194.312 305.578 +-117.921 194.74 306.251 +-121.337 194.587 306.011 +-125.083 194.925 306.542 +-128.015 193.978 305.053 +-131.849 194.38 305.685 +-137.141 196.821 309.523 +-141.233 197.423 310.471 +-143.155 195.007 306.671 +-143.287 190.299 299.268 +-143.085 185.358 291.497 +-144.102 182.162 286.47 +-149.052 183.94 289.268 +-158.831 191.422 301.033 +-164.882 194.138 305.304 +-1384.71 1593.41 2505.81 +-1410.57 1586.86 2495.52 +-443.325 487.731 767.013 +-445.618 479.586 754.204 +-447.362 471.122 740.894 +-449.605 463.44 728.814 +-451.913 456.059 717.205 +-454.16 448.832 705.841 +-456.109 441.526 694.351 +-458.988 435.311 684.577 +-467.65 434.632 683.509 +-478.71 436.078 685.784 +-485.938 433.958 682.449 +-487.073 426.496 670.714 +-487.049 418.238 657.727 +-489.372 412.185 648.209 +-478.901 395.702 622.288 +-479.136 388.433 610.856 +-481.689 383.194 602.618 +-484.73 378.448 595.153 +-486.852 373.087 586.722 +-490.171 368.74 579.886 +-492.74 363.913 572.295 +-495.725 359.478 565.32 +-497.942 354.572 557.605 +-501.437 350.652 551.44 +-504.288 346.345 544.668 +-506.914 341.955 537.764 +-510.316 338.151 531.781 +-513.379 334.175 525.528 +-515.837 329.867 518.755 +-518.779 325.929 512.562 +-521.567 321.949 506.302 +-524.729 318.249 500.483 +-527.877 314.583 494.718 +-530.744 310.794 488.759 +-534.278 307.433 483.474 +-536.504 303.363 477.074 +-142.474 79.1664 124.498 +-142.985 78.075 122.782 +-142.411 76.4159 120.173 +-142.935 75.3701 118.528 +-142.501 73.8408 116.123 +-142.028 72.3212 113.733 +-143.857 71.9826 113.201 +-148.93 73.2275 115.159 +-156.506 75.6153 118.914 +-157.206 74.6307 117.365 +-158.036 73.7158 115.927 +-159.077 72.9034 114.649 +-161.329 72.6383 114.232 +-162.813 72.0169 113.255 +-584.647 254.041 399.508 +-588.287 251.093 394.872 +-591.56 247.998 390.006 +-134.949 55.5636 87.3802 +-597.459 241.581 379.914 +-602.169 239.093 376.002 +-2650.74 1033.4 1625.14 +-2667.45 1020.95 1605.56 +-2683.95 1008.42 1585.85 +-615.128 226.851 356.749 +-604.037 218.621 343.806 +-601.649 213.681 336.038 +-606.191 211.236 332.192 +-384.165 131.324 206.523 +-382.809 128.355 201.853 +-383.944 126.249 198.541 +-382.382 123.285 193.88 +-382.046 120.755 189.901 +-382.61 118.532 186.405 +-376.69 114.358 179.841 +-378.011 112.434 176.815 +-638.373 185.985 292.483 +-2892.98 825.389 1298.02 +-381.415 106.54 167.547 +-380.103 103.922 163.429 +-383.569 102.617 161.377 +-665.737 174.231 273.998 +-381.072 97.5311 153.379 +-673.477 168.514 265.008 +-678.649 165.955 260.983 +-682.967 163.163 256.593 +-113.715 26.5315 41.7238 +-112.67 25.6625 40.3573 +-110.773 24.6206 38.7187 +-110.428 23.9401 37.6487 +-109.789 23.2058 36.4939 +-109.229 22.4986 35.3817 +-109.31 21.9299 34.4873 +-109.192 21.3254 33.5367 +-109.346 20.7775 32.675 +-109.302 20.1948 31.7587 +-109.342 19.6311 30.8722 +-109.752 19.135 30.092 +-109.964 18.6042 29.2573 +-109.593 17.9788 28.2737 +-111.031 17.6478 27.7532 +-111.218 17.1124 26.9112 +-112.456 16.7344 26.3167 +-112.53 16.1794 25.444 +-113.37 15.7325 24.7411 +-114.495 15.3178 24.0891 +-115.809 14.9189 23.4617 +-117.217 14.5209 22.8358 +-123.013 14.6335 23.0128 +-158.46 18.0732 28.4221 +-160.218 17.491 27.5066 +-161.281 16.8219 26.4545 +-161.844 16.0955 25.312 +-3226.72 305.295 480.112 +-860.534 77.2707 121.517 +-869.758 73.9181 116.245 +-381.562 30.5988 48.1202 +-380.857 28.7214 45.1676 +-381.111 26.9229 42.3393 +-403.371 26.5759 41.7937 +-405.278 24.7772 38.9651 +-405.367 22.8617 35.9527 +-403.633 20.8547 32.7965 +-403.957 18.9639 29.8229 +-404.449 17.08 26.8603 +-403.814 15.1518 23.828 +-146.327 4.8023 7.55218 +-404.844 11.3848 17.9039 +-404.415 9.47457 14.8999 +-403.954 7.56931 11.9036 +-145.15 2.03951 3.20736 +-145.078 1.35882 2.1369 +-146.194 0.684588 1.07659 +120.7 5.32907e-15 2.84217e-14 +119.895 0.569377 0.877824 +119.882 1.13871 1.75558 +120.559 1.71793 2.64858 +120.726 2.29417 3.53698 +120.285 2.85789 4.40608 +120.535 3.43754 5.29974 +120.475 4.0098 6.18201 +120.406 4.58175 7.06381 +120.129 5.14482 7.9319 +120.838 5.75303 8.8696 +120.443 6.31098 9.7298 +121.133 6.92824 10.6814 +120.918 7.49701 11.5583 +120.793 8.07095 12.4432 +120.461 8.63004 13.3052 +121.011 9.25481 14.2684 +120.858 9.82908 15.1537 +120.498 10.3856 16.0118 +120.721 10.9933 16.9487 +120.344 11.5473 17.8028 +121.039 12.2076 18.8208 +120.838 12.7819 19.7063 +120.433 13.3336 20.5567 +121.095 14.0068 21.5947 +120.768 14.5696 22.4623 +120.627 15.1547 23.3644 +121.157 15.8286 24.4034 +120.608 16.3639 25.2286 +121.309 17.0722 26.3207 +121.031 17.6476 27.2078 +120.936 18.2508 28.1377 +121.503 18.9594 29.2302 +121.099 19.5202 30.0948 +120.781 20.0945 30.9803 +120.454 20.6673 31.8634 +120.974 21.3899 32.9774 +121.006 22.0327 33.9683 +121.499 22.7659 35.0988 +121.224 23.3602 36.015 +120.938 23.9536 36.9298 +120.737 24.565 37.8726 +120.805 25.235 38.9054 +121.14 25.9673 40.0344 +121.09 26.6231 41.0455 +121.583 27.4053 42.2515 +121.507 28.0667 43.2712 +122.244 28.9248 44.5941 +118.395 28.6852 44.2248 +115.656 28.6822 44.2201 +113.198 28.7244 44.2851 +110.386 28.6517 44.1731 +106.956 28.3876 43.7659 +104.976 28.4816 43.9109 +102.288 28.3614 43.7256 +99.7887 28.2682 43.5818 +97.1242 28.1023 43.326 +95.7911 28.3028 43.6351 +96.7329 29.1787 44.9855 +97.0447 29.8781 46.0639 +96.3886 30.2834 46.6887 +97.2779 31.1819 48.074 +96.9456 31.6987 48.8707 +96.5189 32.1863 49.6224 +96.0838 32.6723 50.3717 +96.1466 33.332 51.3888 +96.3632 34.054 52.502 +96.564 34.7807 53.6222 +96.0026 35.2379 54.3271 +96.0931 35.939 55.4082 +96.0865 36.6125 56.4464 +96.3913 37.415 57.6836 +95.6258 37.8073 58.2885 +95.7394 38.5513 59.4355 +95.7564 39.2665 60.5381 +96.4718 40.2829 62.1052 +95.9009 40.773 62.8607 +95.8695 41.4978 63.9782 +95.8221 42.2255 65.1001 +95.7586 42.9558 66.2261 +95.7556 43.7238 67.41 +95.6591 44.4595 68.5444 +95.6217 45.2334 69.7375 +95.6416 46.0464 70.9909 +95.4198 46.7537 72.0814 +95.9935 47.8667 73.7974 +95.8805 48.6548 75.0124 +95.7494 49.4454 76.2312 +95.6722 50.2762 77.5122 +95.4329 51.0338 78.6801 +95.813 52.1392 80.3843 +95.6741 52.9803 81.6811 +95.3766 53.7458 82.8613 +95.819 54.9466 84.7126 +95.4798 55.7182 85.9022 +95.3258 56.6107 87.2781 +95.4849 57.7083 88.9703 +95.086 58.4854 90.1684 +95.2598 59.633 91.9378 +94.9493 60.4966 93.2692 +94.9397 61.5708 94.9254 +94.9665 62.6913 96.6528 +94.3981 63.4357 97.8005 +94.4977 64.6482 99.6697 +94.504 65.8236 101.482 +94.358 66.9174 103.168 +94.3646 68.145 105.061 +94.6958 69.6404 107.366 +94.1044 70.4839 108.667 +94.7127 72.2568 111.4 +94.0665 73.1052 112.708 +94.5332 74.8498 115.398 +94.224 76.0176 117.198 +93.9949 77.279 119.143 +94.4404 79.1369 122.007 +94.1349 80.4086 123.968 +93.9547 81.8218 126.147 +93.6317 83.1463 128.189 +93.8399 84.9873 131.027 +93.9961 86.8364 133.878 +93.55 88.1745 135.941 +93.5112 89.942 138.666 +93.5198 91.8102 141.546 +93.7617 93.9727 144.88 +93.284 95.4714 147.191 +91.7033 95.8621 147.793 +89.9355 96.0515 148.085 +88.0348 96.0858 148.138 +88.0249 98.2119 151.416 +87.7812 100.149 154.402 +90.4826 105.592 162.794 +91.3155 109.038 168.107 +88.9533 108.722 167.62 +87.4058 109.39 168.65 +87.5628 112.255 173.067 +87.4814 114.93 177.19 +87.2459 117.51 181.168 +87.4838 120.857 186.328 +90.2012 127.872 197.143 +92.805 135.074 208.248 +92.3454 138.067 212.861 +92.4979 142.142 219.144 +92.0381 145.457 224.255 +91.7962 149.295 230.172 +91.7162 153.607 236.82 +91.5649 158.033 243.643 +91.3954 162.677 250.803 +91.3109 167.748 258.622 +91.236 173.145 266.942 +89.5249 175.669 270.833 +88.3867 179.504 276.746 +89.9866 189.347 291.922 +90.5272 197.582 304.618 +87.7054 198.798 306.492 +84.5816 199.366 307.368 +80.7536 198.22 305.6 +77.8006 199.181 307.083 +74.0851 198.156 305.503 +71.0954 199.035 306.857 +67.4271 197.974 305.221 +64.4235 198.822 306.53 +60.9191 198.101 305.417 +57.8808 198.867 306.598 +54.32 197.788 304.935 +51.3688 198.901 306.651 +47.8509 197.789 304.936 +44.7748 198.44 305.94 +41.3871 197.672 304.756 +38.3201 198.402 305.882 +34.9454 197.493 304.48 +31.9164 198.519 306.062 +28.567 197.524 304.528 +25.5099 198.52 306.064 +22.1728 197.276 304.146 +19.0869 198.189 305.553 +15.8208 197.185 304.005 +12.7209 198.231 305.619 +9.50485 197.523 304.526 +6.35442 198.105 305.423 +3.16337 197.256 304.115 +1.93179e-14 198.352 305.805 +-3.15813 196.93 303.612 +-6.34569 197.833 305.004 +-9.49438 197.305 304.191 +-12.6895 197.742 304.864 +-15.8164 197.131 303.921 +-19.0294 197.592 304.632 +-22.1484 197.059 303.811 +-25.3565 197.327 304.223 +-28.4493 196.71 303.273 +-31.7683 197.598 304.641 +-34.7537 196.41 302.811 +-38.1111 197.32 304.213 +-41.1607 196.591 303.089 +-44.5311 197.36 304.275 +-47.4854 196.278 302.607 +-51.0069 197.5 304.49 +-53.8026 195.905 302.031 +-57.3489 197.039 303.78 +-60.3084 196.115 302.356 +-63.7983 196.893 303.555 +-66.5889 195.512 301.426 +-70.275 196.738 303.316 +-73.188 195.757 301.803 +-76.7818 196.573 303.061 +-79.6931 195.616 301.587 +-83.4119 196.609 303.117 +-86.3048 195.623 301.597 +-89.8982 196.209 302.501 +-92.9911 195.67 301.669 +-96.6171 196.219 302.516 +-99.573 195.386 301.232 +-103.557 196.527 302.991 +-106.335 195.35 301.175 +-110.312 196.346 302.712 +-113.186 195.348 301.173 +-117.087 196.097 302.327 +-120.005 195.172 300.902 +-124.237 196.344 302.709 +-127.147 195.388 301.234 +-131.096 196.004 302.184 +-135.951 197.871 305.063 +-140.337 198.945 306.719 +-143.302 197.968 305.212 +-143.324 193.042 297.617 +-142.626 187.376 288.883 +-144.571 185.339 285.743 +-150.009 187.74 289.443 +-158.261 193.433 298.221 +-163.845 195.646 301.632 +-168.878 197.079 303.843 +-442.35 504.672 778.067 +-443.851 495.216 763.488 +-446.421 487.246 751.199 +-447.816 478.271 737.362 +-450.205 470.623 725.572 +-452.336 462.942 713.729 +-454.446 455.467 702.206 +-457.079 448.723 691.808 +-460.121 442.557 682.301 +-469.2 442.24 681.813 +-480.588 443.981 684.497 +-484.187 438.51 676.062 +-488.275 433.595 668.485 +-487.367 424.43 654.355 +-490.178 418.703 645.526 +-477.104 399.793 616.371 +-479.854 394.517 608.237 +-482.528 389.291 600.18 +-485.354 384.294 592.476 +-487.54 378.899 584.158 +-490.52 374.221 576.946 +-493.269 369.456 569.6 +-495.963 364.737 562.325 +-498.844 360.239 555.389 +-501.802 355.87 548.654 +-504.288 351.244 541.522 +-507.536 347.217 535.314 +-510.316 342.933 528.709 +-514.269 339.489 523.399 +-516.994 335.283 516.915 +-519.948 331.284 510.75 +-522.551 327.119 504.327 +-525.524 323.239 498.346 +-528.078 319.154 492.048 +-531.554 315.671 486.679 +-534.278 311.782 480.682 +-537.811 308.404 475.474 +-141.71 79.8552 123.115 +-143.196 79.2958 122.252 +-142.694 77.6507 119.716 +-143.363 76.6652 118.197 +-141.782 74.507 114.869 +-142.754 73.7185 113.654 +-145.247 73.706 113.634 +-151.142 75.3663 116.194 +-156.729 76.7942 118.396 +-157.056 75.6139 116.576 +-158.263 74.8656 115.422 +-159.761 74.2523 114.477 +-161.635 73.8056 113.788 +-582.885 261.473 403.12 +-585.502 258.01 397.781 +-588.678 254.814 392.853 +-592.19 251.774 388.167 +-133.283 55.654 85.8032 +-133.532 54.7567 84.4198 +-602.089 242.443 373.78 +-2650.74 1048.02 1615.76 +-383.855 148.996 229.711 +-384.756 146.606 226.026 +-386.762 144.65 223.01 +-617.301 226.581 349.326 +-608.07 219.016 337.662 +-606.023 214.164 330.182 +-384.924 133.445 205.736 +-383.572 130.429 201.086 +-382.494 127.551 196.649 +-380.154 124.3 191.637 +-381.788 122.38 188.676 +-382.956 120.317 185.496 +-379.475 116.833 180.125 +-375.299 113.206 174.533 +-2879.27 850.722 1311.58 +-2892.98 837.063 1290.52 +-378.665 107.268 165.378 +-380.46 105.491 162.638 +-381.242 103.437 159.472 +-665.737 176.695 272.416 +-670.711 174.089 268.398 +-674.565 171.173 263.902 +-679.468 168.505 259.788 +-682.327 165.316 254.873 +-114.357 27.0586 41.717 +-112.302 25.9405 39.9931 +-110.866 24.9897 38.5272 +-110.613 24.3196 37.4941 +-109.882 23.554 36.3138 +-109.229 22.8168 35.1773 +-109.216 22.221 34.2587 +-109.192 21.627 33.343 +-109.252 21.0532 32.4583 +-109.302 20.4805 31.5753 +-109.057 19.857 30.614 +-109.752 19.4057 29.9182 +-109.296 18.7528 28.9117 +-110.453 18.3762 28.3311 +-111.223 17.9283 27.6406 +-111.314 17.3695 26.7789 +-111.877 16.8838 26.0302 +-112.434 16.3941 25.2753 +-113.757 16.0095 24.6823 +-114.398 15.5213 23.9296 +-116.198 15.1807 23.4045 +-117.801 14.7997 22.8172 +-123.99 14.9582 23.0615 +-160.221 18.5324 28.5719 +-161.394 17.8685 27.5484 +-162.067 17.143 26.4298 +-164.499 16.5908 25.5785 +-853.139 81.861 126.207 +-861.915 78.4893 121.009 +-870.647 75.0403 115.692 +-380.87 30.9753 47.7554 +-382.045 29.2185 45.0469 +-384.383 27.538 42.4561 +-405.257 27.0778 41.7466 +-404.98 25.1092 38.7115 +-405.168 23.1737 35.7275 +-404.828 21.2123 32.7035 +-404.156 19.2416 29.6653 +-404.15 17.3088 26.6854 +-404.811 15.4041 23.7489 +-145.827 4.85361 7.48294 +-403.946 11.5202 17.7609 +-404.115 9.60145 14.8028 +-403.554 7.66875 11.8231 +-147.449 2.10112 3.23935 +-145.478 1.38184 2.13042 +-146.394 0.695218 1.07184 +119.8 1.77636e-15 -1.13687e-13 +119.895 0.577273 0.872651 +119.882 1.1545 1.74524 +120.559 1.74176 2.63297 +120.726 2.32599 3.51614 +120.385 2.89993 4.38376 +120.535 3.48521 5.26851 +120.375 4.06203 6.14049 +120.406 4.64529 7.02219 +120.129 5.21617 7.88516 +120.838 5.83282 8.81734 +120.443 6.3985 9.67247 +120.238 6.9724 10.54 +120.918 7.60098 11.4902 +120.793 8.18288 12.3699 +120.659 8.76412 13.2485 +121.011 9.38315 14.1843 +120.858 9.96539 15.0645 +120.597 10.5382 15.9304 +120.82 11.1549 16.8626 +120.344 11.7075 17.6979 +121.039 12.3769 18.7099 +120.74 12.9487 19.5742 +120.531 13.5295 20.4523 +121.192 14.2125 21.4848 +120.865 14.7835 22.3479 +120.53 15.3525 23.208 +121.157 16.0481 24.2596 +120.608 16.5908 25.08 +121.018 17.2676 26.103 +121.127 17.9067 27.0691 +121.032 18.5186 27.9942 +121.503 19.2224 29.058 +121.291 19.8222 29.9649 +121.738 20.5345 31.0416 +121.217 21.0867 31.8763 +121.355 21.7548 32.8862 +121.291 22.3907 33.8476 +121.688 23.1175 34.9462 +121.224 23.6841 35.8028 +121.032 24.3046 36.7407 +121.674 25.0989 37.9415 +120.712 25.5652 38.6463 +121.14 26.3274 39.7985 +120.812 26.9303 40.7099 +121.675 27.8065 42.0345 +121.23 28.3913 42.9185 +121.51 29.1499 44.0653 +119.126 29.2626 44.2356 +116.839 29.3774 44.4091 +113.288 29.146 44.0594 +110.296 29.0253 43.8769 +107.765 28.9989 43.8371 +105.781 29.0982 43.9871 +103.089 28.9802 43.8087 +100.587 28.8895 43.6716 +97.8306 28.6992 43.3839 +96.0547 28.7743 43.4974 +96.7329 29.5833 44.7205 +96.9576 30.2653 45.7514 +97.2547 30.9792 46.8306 +97.1918 31.5863 47.7483 +97.1171 32.1951 48.6687 +96.4336 32.6038 49.2865 +96.1687 33.1546 50.119 +96.231 33.8239 51.1308 +96.4471 34.5563 52.2381 +96.564 35.263 53.3063 +96.0026 35.7265 54.007 +96.0931 36.4374 55.0817 +96.0865 37.1202 56.1138 +95.4958 37.5814 56.811 +96.3539 38.6235 58.3863 +96.3824 39.3485 59.4823 +95.5967 39.7446 60.0811 +95.8371 40.5728 61.333 +95.8221 41.3044 62.439 +95.8695 42.0733 63.6013 +95.7444 42.7764 64.6641 +95.8358 43.5866 65.8889 +95.7556 44.3301 67.0129 +95.6591 45.0761 68.1405 +95.6217 45.8607 69.3266 +95.5667 46.6483 70.5173 +96.1629 47.7712 72.2147 +95.9935 48.5305 73.3626 +95.8805 49.3296 74.5704 +95.7494 50.1311 75.7821 +95.5283 50.8968 76.9395 +96.0748 52.0895 78.7426 +95.8837 52.9012 79.9696 +95.0433 53.3609 80.6645 +95.4461 54.5308 82.433 +95.819 55.7086 84.2134 +95.548 56.5312 85.457 +95.7987 57.6804 87.1942 +95.4849 58.5086 88.4461 +95.086 59.2964 89.6371 +95.2598 60.46 91.3961 +95.4039 61.6297 93.1642 +95.1326 62.5516 94.5579 +94.9665 63.5607 96.0833 +94.5239 64.401 97.3535 +95.1825 66.0197 99.8006 +94.504 66.7364 100.884 +95.0277 68.3265 103.288 +94.485 69.1783 104.575 +94.1604 70.2073 106.131 +94.4571 71.729 108.431 +94.1319 72.8098 110.065 +94.5828 74.5256 112.659 +94.5898 75.9331 114.786 +94.1681 77.026 116.439 +93.8845 78.2586 118.302 +94.3859 80.1885 121.219 +94.2424 81.6169 123.379 +93.8487 82.8627 125.262 +94.102 84.7226 128.073 +93.8399 86.1659 130.255 +93.9454 87.9932 133.017 +94.05 89.8751 135.862 +93.5112 91.1893 137.849 +93.5198 93.0834 140.712 +94.0003 95.5181 144.393 +93.3309 96.8439 146.397 +90.0872 95.479 144.333 +89.0729 96.4495 145.801 +88.2133 97.6158 147.564 +88.0688 99.6235 150.599 +87.4368 101.139 152.89 +88.8766 105.157 158.963 +92.1034 111.504 168.559 +89.2787 110.633 167.242 +87.8045 111.413 168.421 +87.5238 113.761 171.971 +87.1753 116.116 175.529 +87.5456 119.549 180.72 +87.5571 122.635 185.385 +91.133 130.985 198.006 +92.84 136.999 207.099 +92.3454 139.982 211.607 +92.1641 143.593 217.066 +92.1358 147.631 223.171 +92.2405 152.098 229.923 +91.9017 156.052 235.9 +91.4747 160.066 241.969 +91.5123 165.143 249.644 +91.4245 170.286 257.418 +91.3462 175.758 265.689 +89.418 177.893 268.916 +87.3773 179.915 271.974 +90.7878 193.682 292.785 +90.2853 199.787 302.013 +86.3281 198.39 299.901 +83.6368 199.873 302.144 +79.5632 198.006 299.321 +77.0937 200.108 302.499 +73.0085 197.985 299.289 +70.2559 199.412 301.447 +66.4977 197.953 299.241 +63.781 199.569 301.684 +59.9618 197.692 298.847 +57.3176 199.662 301.825 +53.5661 197.748 298.931 +50.7425 199.201 301.127 +47.2113 197.851 299.087 +44.3483 199.276 301.241 +40.7192 197.179 298.071 +38.017 199.563 301.674 +34.4182 197.212 298.121 +31.5852 199.184 301.101 +28.1668 197.458 298.493 +25.2309 199.072 300.933 +21.8981 197.534 298.608 +18.8985 198.954 300.754 +15.607 197.218 298.131 +12.6057 199.161 301.067 +9.34779 196.953 297.729 +6.28461 198.645 300.287 +3.1145 196.902 297.653 +1.94289e-14 198.841 300.583 +-3.11537 196.957 297.736 +-6.2881 198.755 300.454 +-9.34779 196.953 297.729 +-12.5743 198.665 300.317 +-15.5765 196.833 297.548 +-18.8828 198.789 300.505 +-21.7943 196.598 297.192 +-25.1542 198.467 300.018 +-28.0256 196.468 296.996 +-31.4458 198.304 299.772 +-34.2361 196.168 296.543 +-37.7661 198.246 299.684 +-40.5494 196.357 296.828 +-44.0436 197.906 299.171 +-46.872 196.429 296.937 +-50.3528 197.671 298.815 +-53.0931 196.002 296.292 +-56.7544 197.701 298.86 +-59.4171 195.896 296.132 +-63.1037 197.45 298.481 +-65.7688 195.783 295.96 +-69.4736 197.191 298.09 +-72.0715 195.444 295.448 +-75.8878 196.978 297.768 +-78.6325 195.69 295.82 +-82.4671 197.078 297.918 +-85.0908 195.547 295.604 +-88.9305 196.789 297.482 +-91.6892 195.606 295.693 +-95.8148 197.288 298.237 +-98.2101 195.384 295.357 +-102.427 197.078 297.919 +-104.915 195.414 295.403 +-108.938 196.589 297.18 +-111.562 195.216 295.103 +-115.974 196.928 297.691 +-118.228 194.949 294.699 +-122.804 196.772 297.456 +-125.044 194.821 294.507 +-129.797 196.752 297.425 +-132.483 195.499 295.532 +-138.76 199.438 301.486 +-141.323 197.941 299.223 +-143.399 195.821 296.018 +-142.856 190.28 287.643 +-145.118 188.621 285.134 +-149.292 189.432 286.361 +-157.936 195.713 295.855 +-160.777 194.643 294.238 +-167.61 198.312 299.784 +-169.406 195.954 296.219 +-444.114 502.381 759.439 +-446.822 494.447 747.445 +-448.77 485.936 734.578 +-450.62 477.59 721.962 +-452.618 469.654 709.966 +-455.019 462.366 698.948 +-457.515 455.381 688.389 +-463.026 451.527 682.564 +-472 451.049 681.841 +-483.38 452.753 684.416 +-485.629 445.915 674.08 +-485.924 437.492 661.346 +-488.162 431.018 651.561 +-490.823 425.068 642.566 +-477.431 405.615 613.159 +-480.848 400.816 605.905 +-482.863 394.964 597.059 +-486.203 390.305 590.016 +-488.515 384.922 581.878 +-491.681 380.309 574.905 +-494.092 375.205 567.189 +-497.331 370.816 560.554 +-499.567 365.763 552.916 +-503.141 361.769 546.878 +-505.951 357.289 540.105 +-509.466 353.371 534.184 +-511.512 348.504 526.825 +-514.842 344.58 520.894 +-517.83 340.482 514.699 +-521.442 336.843 509.199 +-523.141 332.03 501.922 +-526.319 328.218 496.16 +-529.282 324.318 490.265 +-532.77 320.781 484.918 +-535.164 316.63 478.642 +-539.119 313.441 473.822 +-141.155 80.6454 121.91 +-142.775 80.1593 121.175 +-143.118 78.9615 119.364 +-142.365 77.1866 116.681 +-141.998 75.6556 114.367 +-143.261 75.0067 113.386 +-147.002 75.6313 114.33 +-155.492 78.6106 118.834 +-156.581 77.7852 117.586 +-157.88 77.0647 116.497 +-158.64 76.0848 115.016 +-160.218 75.4972 114.127 +-162.018 75.0067 113.386 +-583.965 265.591 401.487 +-586.201 261.901 395.909 +-590.321 259.069 391.628 +-593.057 255.639 386.444 +-597.395 252.908 382.316 +-134.89 56.081 84.7764 +-134.485 54.9041 82.9973 +-606.925 243.286 367.769 +-2667.45 1049.75 1586.88 +-385.984 149.114 225.412 +-382.147 144.906 219.051 +-620.535 230.927 349.087 +-625.331 228.357 345.202 +-607.701 217.735 329.145 +-611.29 214.86 324.799 +-383.657 132.267 199.946 +-382.835 129.435 195.665 +-382.039 126.649 191.453 +-381.271 123.909 187.311 +-382.35 121.793 184.112 +-381.129 118.969 179.843 +-376.174 115.044 173.909 +-377.1 112.965 170.766 +-2892.98 848.671 1282.92 +-379.907 109.113 164.943 +-380.103 106.853 161.528 +-383.569 105.512 159.499 +-667.085 179.508 271.358 +-671.794 176.788 267.247 +-676.196 173.967 262.981 +-680.742 171.162 258.742 +-114.285 28.0732 42.4377 +-112.798 27.0599 40.9058 +-111.657 26.1493 39.5293 +-111.235 25.4207 38.4279 +-109.871 24.4915 37.0232 +-109.231 23.7391 35.8859 +-109.416 23.1728 35.0297 +-109.122 22.5099 34.0277 +-109.38 21.9647 33.2035 +-109.723 21.4373 32.4062 +-109.113 20.7286 31.3349 +-109.342 20.1849 30.5131 +-109.847 19.6918 29.7677 +-109.487 19.046 28.7915 +-110.549 18.6472 28.1886 +-110.456 18.0516 27.2882 +-111.314 17.6103 26.6212 +-112.552 17.2212 26.0328 +-112.724 16.6644 25.1911 +-113.37 16.1762 24.4533 +-114.107 15.6965 23.7281 +-116.004 15.3655 23.2277 +-118.678 15.1167 22.8515 +-131.8 16.121 24.3697 +-160.221 18.7894 28.4036 +-162.374 18.2263 27.5523 +-161.38 17.307 26.1626 +-164.4 16.8109 25.4126 +-854.025 83.0829 125.595 +-863.099 79.687 120.461 +-871.931 76.1929 115.179 +-381.562 31.4619 47.5603 +-380.857 29.5315 44.6422 +-3248.47 235.955 356.688 +-405.058 27.4399 41.4803 +-405.278 25.4761 38.5117 +-404.472 23.4547 35.4559 +-403.633 21.443 32.4149 +-405.152 19.5565 29.5631 +-404.051 17.5445 26.5217 +-402.916 15.5446 23.4984 +-142.733 4.81651 7.28101 +-403.346 11.6626 17.6301 +-403.815 9.72743 14.7047 +-404.553 7.79436 11.7826 +-146.85 2.12159 3.20716 +-144.878 1.39522 2.10913 +-147.094 0.70823 1.07062 +119.9 5.32907e-15 2.84217e-14 +119.995 0.585609 0.868129 +119.882 1.1702 1.73475 +119.759 1.75373 2.59979 +119.827 2.34005 3.46898 +120.485 2.9418 4.36104 +120.535 3.53259 5.23685 +120.375 4.11726 6.10359 +120.605 4.71626 6.99156 +121.026 5.32658 7.89632 +120.938 5.91699 8.77157 +120.742 6.5016 9.63822 +121.232 7.12564 10.5633 +121.017 7.7107 11.4306 +120.793 8.29414 12.2956 +121.551 8.94899 13.2663 +121.011 9.51074 14.0991 +120.759 10.0926 14.9617 +120.597 10.6815 15.8347 +121.116 11.3343 16.8023 +120.54 11.886 17.6203 +120.35 12.4738 18.4917 +120.838 13.1354 19.4724 +120.531 13.7135 20.3294 +120.312 14.3011 21.2005 +120.865 14.9845 22.2137 +120.627 15.5738 23.0872 +121.157 16.2663 24.1138 +120.608 16.8164 24.9293 +121.115 17.5163 25.9669 +121.031 18.1357 26.885 +120.936 18.7555 27.8039 +121.6 19.4991 28.9062 +121.099 20.06 29.7377 +120.877 20.6666 30.637 +121.408 21.407 31.7346 +121.735 22.1197 32.7911 +121.48 22.7306 33.6968 +121.972 23.4865 34.8173 +121.129 23.9875 35.56 +121.314 24.6925 36.605 +121.767 25.4598 37.7426 +120.712 25.9128 38.4141 +121.233 26.7058 39.5897 +120.997 27.3384 40.5274 +121.398 28.1204 41.6867 +121.507 28.8429 42.7577 +122.061 29.68 43.9988 +120.405 29.9789 44.4418 +118.477 30.1943 44.7611 +114.195 29.7787 44.145 +112.733 30.07 44.5769 +109.293 29.81 44.1914 +106.676 29.7434 44.0927 +103.802 29.5773 43.8466 +101.918 29.6696 43.9834 +99.4199 29.562 43.8239 +97.3729 29.5658 43.8294 +95.2461 29.5247 43.7686 +97.0447 30.7043 45.5173 +97.1681 31.3725 46.5078 +96.4163 31.7603 47.0827 +96.9456 32.5753 48.2909 +96.7747 33.164 49.1636 +96.0838 33.5758 49.774 +96.231 34.2838 50.8236 +96.3632 34.9957 51.879 +96.564 35.7425 52.986 +96.0026 36.2123 53.6825 +96.0931 36.9329 54.7507 +96.2504 37.6891 55.8717 +96.3913 38.4496 56.9992 +95.7876 38.9186 57.6944 +96.3824 39.8835 59.1248 +95.6765 40.3187 59.7699 +95.8371 41.1245 60.9645 +95.8221 41.866 62.0638 +95.8695 42.6454 63.2191 +95.8221 43.3932 64.3277 +95.8358 44.1793 65.493 +95.8322 44.9688 66.6634 +95.6591 45.689 67.7311 +95.6217 46.4843 68.9101 +95.5667 47.2826 70.0936 +96.2373 48.4582 71.8362 +96.0672 49.2282 72.9778 +95.8073 49.9621 74.0658 +95.7494 50.8127 75.3267 +95.6003 51.6277 76.5348 +96.0748 52.7978 78.2695 +95.8837 53.6205 79.4891 +95.6741 54.4454 80.7119 +95.3766 55.2321 81.8781 +95.819 56.466 83.7074 +95.548 57.2998 84.9435 +95.2582 58.1348 86.1812 +95.6188 59.3869 88.0374 +95.2185 60.1866 89.2229 +95.3254 61.324 90.9091 +94.9493 62.1696 92.1625 +95.1326 63.4021 93.9897 +94.9029 64.3813 95.4413 +95.0903 65.6681 97.3489 +94.6845 66.5673 98.6819 +94.6887 67.7758 100.473 +94.4189 68.812 102.01 +94.4248 70.0742 103.881 +94.3389 71.2967 105.693 +94.1632 72.4783 107.445 +94.6546 74.2097 110.011 +94.5828 75.539 111.982 +94.4766 76.8733 113.96 +94.224 78.1198 115.808 +93.7189 79.1829 117.384 +93.8413 80.8097 119.795 +94.1349 82.6322 122.497 +93.9017 84.0369 124.58 +94.2065 85.9702 127.445 +93.7884 87.2894 129.401 +94.0469 89.2858 132.361 +93.55 90.6129 134.328 +93.5112 92.4292 137.021 +93.5198 94.349 139.867 +92.7119 95.4899 141.558 +91.0775 95.7907 142.004 +87.9631 94.4956 140.084 +88.0288 96.615 143.226 +87.9456 98.6428 146.232 +87.8496 100.726 149.321 +87.7382 102.868 152.495 +87.7356 105.218 155.979 +91.191 111.901 165.886 +90.0922 113.159 167.751 +88.5223 113.851 168.777 +87.094 114.742 170.098 +87.1753 117.694 174.475 +87.5456 121.174 179.634 +92.3217 131.067 194.298 +93.1398 135.689 201.151 +92.805 138.81 205.777 +92.448 142.043 210.569 +92.2642 145.704 215.997 +92.1358 149.638 221.83 +92.2722 154.219 228.62 +91.9635 158.28 234.64 +91.4446 162.189 240.435 +91.5708 167.496 248.303 +91.5949 172.923 256.348 +90.4366 176.374 261.463 +88.1352 177.724 263.465 +87.4808 182.577 270.66 +90.5374 195.775 290.224 +88.8821 199.356 295.533 +84.5773 197.009 292.054 +82.1071 198.885 294.835 +78.1347 197.095 292.181 +75.5551 198.781 294.681 +71.6927 197.06 292.13 +69.1683 198.995 294.997 +65.2585 196.905 291.9 +62.6523 198.703 294.565 +58.8065 196.519 291.328 +56.2851 198.732 294.607 +52.5167 196.51 291.314 +49.8518 198.365 294.064 +46.2976 196.66 291.536 +43.5439 198.322 294 +39.9381 196.026 290.597 +37.2749 198.327 294.008 +33.8144 196.386 291.131 +31.0536 198.493 294.254 +27.6333 196.352 291.079 +24.7915 198.264 293.914 +21.4891 196.48 291.269 +18.5636 198.085 293.649 +15.3017 195.989 290.542 +12.3684 198.068 293.624 +9.16717 195.773 290.222 +6.16768 197.6 292.93 +3.05167 195.554 289.896 +1.9762e-14 197.63 292.974 +-3.05167 195.554 289.896 +-6.16768 197.6 292.93 +-9.15408 195.494 289.807 +-12.3405 197.622 292.962 +-15.2275 195.04 289.134 +-18.506 197.471 292.738 +-21.3548 195.252 289.449 +-24.6589 197.204 292.343 +-27.5156 195.516 289.84 +-30.8967 197.491 292.768 +-33.6131 195.217 289.397 +-37.0762 197.27 292.441 +-39.723 194.97 289.031 +-43.2149 196.823 291.778 +-45.8016 194.553 288.413 +-49.49 196.925 291.929 +-52.0141 194.63 288.527 +-55.6125 196.357 291.087 +-58.1958 194.478 288.302 +-61.8882 196.279 290.972 +-64.4567 194.486 288.313 +-68.1951 196.195 290.847 +-70.7158 194.375 288.149 +-74.4948 195.991 290.545 +-76.9443 194.092 287.729 +-81.0049 196.216 290.878 +-83.1999 193.801 287.298 +-87.3822 195.992 290.546 +-89.6861 193.934 287.494 +-94.1325 196.46 291.239 +-96.1791 193.945 287.512 +-100.663 196.318 291.029 +-102.785 194.049 287.666 +-107.183 196.054 290.637 +-109.186 193.657 287.084 +-113.811 195.882 290.383 +-116.007 193.887 287.426 +-120.525 195.746 290.181 +-122.674 193.727 287.189 +-127.437 195.801 290.263 +-129.577 193.81 287.311 +-136.323 198.6 294.412 +-138.171 196.158 290.791 +-143.399 198.483 294.239 +-143.2 193.333 286.604 +-143.203 188.663 279.681 +-144.547 185.905 275.593 +-153.746 193.111 286.276 +-157.127 192.812 285.831 +-162.581 194.978 289.042 +-165.575 194.126 287.78 +-444.859 510.067 756.142 +-447.626 502.071 744.289 +-449.224 493.041 730.903 +-452.329 485.919 720.345 +-454.026 477.521 707.896 +-456.784 470.471 697.445 +-458.775 462.844 686.138 +-468.541 463.118 686.544 +-476.75 461.783 684.564 +-484.141 459.631 681.375 +-487.896 454.088 673.157 +-487.543 444.919 659.564 +-488.692 437.353 648.349 +-477.444 419.104 621.296 +-478.683 412.209 611.074 +-482.393 407.572 604.2 +-484.597 401.772 595.602 +-488.242 397.272 588.931 +-490.006 391.347 580.147 +-493.249 386.71 573.273 +-495.621 381.482 565.524 +-499.651 377.611 559.785 +-501.252 371.987 551.448 +-504.602 367.752 545.17 +-507.12 362.984 538.101 +-511.209 359.401 532.79 +-512.644 354.024 524.819 +-516.623 350.473 519.555 +-519.694 346.354 513.449 +-522.351 342.019 507.022 +-524.913 337.684 500.596 +-528.705 334.188 495.413 +-530.687 329.6 488.612 +-534.392 326.132 483.471 +-537.006 322.04 477.404 +-141.044 83.117 123.216 +-142.197 82.3453 122.072 +-142.985 81.3689 120.624 +-143.048 79.996 118.589 +-142.008 78.0404 115.69 +-142.285 76.8392 113.909 +-146.018 77.4895 114.873 +-148.904 77.6512 115.113 +-156.598 80.246 118.96 +-156.878 78.9922 117.101 +-158.704 78.5202 116.401 +-158.64 77.1193 114.325 +-161.662 77.2138 114.465 +-161.789 75.9187 112.545 +-585.972 270.127 400.446 +-588.377 266.447 394.991 +-592.904 263.74 390.978 +-594.791 259.872 385.245 +-599.061 257.062 381.079 +-601.293 253.389 375.633 +-134.164 55.5175 82.3013 +-607.814 246.955 366.096 +-612.215 244.207 362.022 +-383.527 150.179 222.631 +-383.301 147.32 218.393 +-383.844 144.787 214.637 +-381.419 141.18 209.29 +-628.919 228.401 338.591 +-634.23 225.954 334.963 +-614.665 214.79 318.413 +-381.812 130.845 193.969 +-382.982 128.688 190.772 +-381.874 125.793 186.48 +-382.35 123.449 183.005 +-382.173 120.917 179.252 +-380.285 117.882 174.752 +-376.749 114.394 169.582 +-380.639 113.181 167.784 +-381.237 110.984 164.527 +-382.42 108.967 161.536 +-666.368 185.796 275.431 +-668.703 182.39 270.382 +-674.231 179.842 266.605 +-677.737 176.734 261.997 +-682.653 173.976 257.909 +-115.015 28.6368 42.4523 +-112.523 27.3609 40.5609 +-111.105 26.3737 39.0974 +-110.588 25.6165 37.9749 +-109.964 24.8454 36.8318 +-109.324 24.0824 35.7007 +-109.416 23.4878 34.8193 +-108.654 22.718 33.678 +-109.004 22.1869 32.8906 +-109.535 21.6914 32.1562 +-108.829 20.9558 31.0656 +-109.057 20.4061 30.2508 +-109.562 19.9077 29.512 +-109.677 19.3387 28.6684 +-110.453 18.8844 27.995 +-110.84 18.3606 27.2184 +-111.314 17.8498 26.4612 +-112.359 17.4254 25.8321 +-112.82 16.9054 25.0612 +-113.854 16.4662 24.4101 +-114.398 15.9505 23.6457 +-117.56 15.7833 23.3977 +-118.776 15.3348 22.7329 +-159.82 19.814 29.373 +-161.101 19.1496 28.3881 +-162.178 18.4518 27.3537 +-160.889 17.489 25.9263 +-164.794 17.0802 25.3204 +-855.601 84.368 125.07 +-865.466 80.992 120.066 +-386.581 34.2404 50.7593 +-381.562 31.8897 47.2746 +-380.857 29.9331 44.3739 +-902.512 66.446 98.502 +-404.165 27.7516 41.1401 +-404.384 25.7656 38.1958 +-403.577 23.721 35.165 +-404.529 21.7828 32.2916 +-403.957 19.764 29.2988 +-403.552 17.7611 26.3297 +-404.313 15.8106 23.4382 +-144.829 4.95369 7.34354 +-404.545 11.8563 17.5762 +-404.115 9.86696 14.6272 +-403.554 7.88082 11.6828 +-146.85 2.15044 3.18789 +-144.278 1.40834 2.08778 +-145.294 0.70908 1.05117 +119.9 5.32907e-15 2.84217e-14 +119.995 0.593417 0.862811 +119.982 1.18679 1.72556 +120.759 1.79195 2.60544 +120.826 2.39103 3.47648 +120.585 2.9835 4.33791 +121.234 3.60046 5.23496 +120.475 4.17562 6.07123 +120.605 4.77914 6.94872 +121.026 5.3976 7.84795 +120.938 5.99588 8.71783 +120.742 6.58829 9.57918 +121.232 7.22065 10.4986 +121.116 7.81991 11.3699 +120.793 8.40473 12.2202 +121.353 9.05352 13.1636 +121.011 9.63754 14.0127 +121.55 10.2942 14.9675 +120.597 10.8239 15.7377 +121.116 11.4854 16.6994 +120.639 12.0544 17.5267 +121.137 12.7228 18.4985 +120.838 13.3105 19.3531 +121.413 13.998 20.3527 +120.312 14.4918 21.0706 +120.865 15.1843 22.0776 +120.627 15.7814 22.9457 +121.352 16.5097 24.0046 +120.802 17.068 24.8164 +120.341 17.6364 25.6427 +121.127 18.3921 26.7416 +120.936 19.0056 27.6335 +121.503 19.7435 28.7065 +121.195 20.3436 29.5789 +120.973 20.9587 30.4733 +121.408 21.6924 31.5402 +121.64 22.3971 32.5647 +121.291 22.9978 33.4381 +121.594 23.7259 34.4967 +121.601 24.4019 35.4796 +121.596 25.0798 36.4653 +121.955 25.839 37.5691 +121.272 26.3801 38.3559 +121.419 27.1034 39.4076 +121.09 27.7241 40.31 +121.49 28.517 41.4629 +121.23 29.161 42.3992 +121.602 29.9627 43.5649 +121.593 30.6782 44.6052 +119.478 30.8553 44.8627 +116.007 30.6547 44.571 +113.455 30.6661 44.5875 +110.552 30.5553 44.4265 +108.108 30.5445 44.4108 +105.495 30.4605 44.2887 +103.425 30.51 44.3607 +100.215 30.1956 43.9035 +98.779 30.3926 44.1899 +96.3831 30.2755 44.0197 +95.7391 30.6952 44.6299 +97.1681 31.7908 46.2229 +96.6748 32.2701 46.9198 +97.5456 33.2139 48.292 +97.1157 33.7247 49.0347 +96.8471 34.2937 49.8621 +96.3996 34.8017 50.6007 +96.4471 35.4932 51.6061 +96.6474 36.2503 52.7069 +96.0855 36.7269 53.3998 +96.0931 37.4253 54.4153 +96.3323 38.2241 55.5767 +96.3913 38.9623 56.65 +96.5157 39.7373 57.7768 +95.9001 40.213 58.4686 +95.7564 40.8903 59.4533 +95.8371 41.6728 60.591 +95.9009 42.4591 61.7343 +96.4956 43.4962 63.2422 +95.8221 43.9717 63.9336 +95.8358 44.7683 65.0918 +95.8322 45.5683 66.255 +95.7351 46.335 67.3696 +95.6972 47.1412 68.5419 +95.5667 47.913 69.6641 +96.1629 49.0664 71.341 +96.0672 49.8846 72.5307 +95.8805 50.6669 73.6682 +95.822 51.5292 74.9219 +95.6003 52.316 76.066 +95.4329 53.1443 77.2702 +95.8837 54.3355 79.0022 +95.7442 55.2117 80.2762 +95.4461 56.0092 81.4357 +95.8878 57.2603 83.2547 +95.6162 58.1052 84.4832 +95.8663 59.2862 86.2003 +95.0165 59.8001 86.9476 +95.1522 60.9465 88.6145 +95.4566 62.2272 90.4766 +95.0142 63.0416 91.6606 +95.1326 64.2475 93.4139 +94.9665 65.2839 94.9209 +94.6498 66.2354 96.3043 +94.6845 67.4549 98.0774 +94.6887 68.6795 99.8579 +94.4189 69.7295 101.385 +94.3044 70.9179 103.112 +94.4579 72.338 105.177 +94.2808 73.5359 106.919 +94.7707 75.2915 109.472 +94.6975 76.6391 111.431 +94.4199 77.8518 113.194 +94.224 79.1614 115.098 +93.8845 80.3803 116.871 +94.3315 82.3149 119.683 +94.1349 83.7339 121.747 +93.9017 85.1574 123.816 +94.0497 86.9714 126.454 +93.9429 88.5989 128.82 +94.0469 90.4763 131.55 +93.5 91.7723 133.434 +93.5605 93.7109 136.253 +93.5198 95.607 139.01 +89.9444 93.8747 136.491 +88.824 94.6663 137.642 +88.194 96.0065 139.591 +87.938 97.8023 142.202 +88.1687 100.211 145.704 +88.7702 103.139 149.962 +87.9534 104.495 151.932 +87.5242 106.364 154.65 +87.4588 108.752 158.123 +91.0683 115.911 168.531 +89.6787 116.876 169.935 +87.4847 116.794 169.814 +87.5962 119.839 174.243 +87.3957 122.58 178.228 +93.018 133.816 194.565 +92.889 137.128 199.38 +92.6649 140.448 204.207 +92.2428 143.617 208.815 +92.331 147.754 214.829 +92.266 151.848 220.782 +91.8914 155.63 226.282 +91.9326 160.336 233.124 +91.5649 164.568 239.277 +91.3954 169.404 246.309 +90.4305 173.001 251.538 +89.2789 176.438 256.535 +87.4938 178.784 259.946 +90.8714 192.182 279.428 +88.935 194.874 283.341 +86.6564 196.956 286.368 +82.6397 195.062 283.615 +80.375 197.285 286.847 +76.295 195.02 283.553 +73.871 196.942 286.348 +69.8984 194.69 283.074 +67.4319 196.586 285.83 +63.746 194.906 283.387 +61.2283 196.776 286.106 +57.4201 194.445 282.717 +55.018 196.848 286.211 +51.3194 194.59 282.929 +48.808 196.801 286.143 +45.2012 194.563 282.888 +42.5446 196.354 285.493 +39.0098 194.023 282.104 +36.4073 196.294 285.405 +32.9518 193.928 281.965 +30.2692 196.059 285.064 +26.9193 193.829 281.821 +24.2334 196.386 285.539 +20.9824 194.405 282.659 +18.1815 196.595 285.844 +14.9484 194.017 282.095 +12.0822 196.065 285.073 +8.95513 193.795 281.773 +6.03853 196.042 285.039 +2.98186 193.628 281.529 +2.0095e-14 196.185 285.247 +-2.98011 193.514 281.364 +-6.04202 196.155 285.203 +-8.9499 193.682 281.608 +-12.0508 195.556 284.333 +-14.9091 193.507 281.354 +-18.1239 195.972 284.938 +-20.8603 193.274 281.015 +-24.1567 195.763 284.634 +-26.8095 193.038 280.672 +-30.1733 195.439 284.162 +-32.8559 193.364 281.146 +-36.2923 195.674 284.504 +-38.7834 192.897 280.467 +-42.313 195.285 283.939 +-44.8619 193.102 280.765 +-48.4322 195.286 283.94 +-50.7873 192.573 279.995 +-54.4548 194.833 283.281 +-56.8424 192.488 279.873 +-60.5685 194.655 283.023 +-62.9442 192.454 279.822 +-66.7831 194.695 283.08 +-69.0611 192.358 279.682 +-72.9562 194.503 282.802 +-75.1695 192.143 279.371 +-79.1378 194.249 282.432 +-81.4958 192.362 279.689 +-85.5436 194.427 282.69 +-87.5829 191.911 279.033 +-92.0102 194.591 282.929 +-93.961 191.998 279.16 +-98.4577 194.577 282.91 +-100.343 191.964 279.11 +-104.815 194.278 282.475 +-106.991 192.293 279.588 +-111.524 194.505 282.805 +-113.468 192.173 279.414 +-118.149 194.445 282.717 +-120.104 192.197 279.448 +-124.803 194.311 282.523 +-126.46 191.67 278.682 +-131.27 193.788 281.763 +-134.726 193.817 281.804 +-140.44 196.979 286.401 +-142.626 195.125 283.706 +-143.008 190.918 277.589 +-142.832 186.15 270.656 +-147.279 187.455 272.554 +-149.58 185.998 270.435 +-159.581 193.931 281.969 +-160.796 191.037 277.762 +-167.326 194.411 282.668 +-449.321 510.692 742.531 +-450.903 501.483 729.142 +-453.576 493.755 717.906 +-455.857 485.839 706.396 +-458.55 478.586 695.851 +-461.151 471.443 685.465 +-475.336 476.099 692.234 +-481.35 472.455 686.935 +-487.744 469.227 682.242 +-486.35 458.685 666.914 +-489.581 452.735 658.263 +-490.917 445.203 647.312 +-478.412 425.552 618.741 +-480.372 419.178 609.472 +-484.325 414.66 602.904 +-486.666 408.867 594.48 +-489.828 403.876 587.223 +-492.186 398.328 579.157 +-495.282 393.48 572.108 +-497.384 387.944 564.059 +-501.257 383.875 558.143 +-503.178 378.395 550.175 +-506.977 374.409 544.38 +-509.583 369.61 537.402 +-513.326 365.701 531.719 +-515.036 360.418 524.037 +-518.785 356.633 518.534 +-521.494 352.188 512.07 +-524.819 348.216 506.296 +-526.75 343.384 499.27 +-531.421 340.384 494.908 +-532.963 335.427 487.701 +-537.094 332.152 482.939 +-538.779 327.411 476.045 +-142.421 85.0475 123.657 +-143.03 83.9322 122.035 +-143.756 82.8986 120.532 +-142.694 80.862 117.571 +-142.507 79.3591 115.386 +-142.933 78.2184 113.727 +-149.5 80.395 116.892 +-154.316 81.5465 118.566 +-157.261 81.6604 118.732 +-157.547 80.3871 116.88 +-158.779 79.6045 115.743 +-160.904 79.2628 115.246 +-162.195 78.5006 114.138 +-583.879 277.636 403.674 +-587.978 274.666 399.356 +-590.398 270.927 393.92 +-595.174 268.279 390.07 +-596.603 264.14 384.051 +-601.997 261.766 380.6 +-603.928 257.893 374.968 +-608.359 255.098 370.905 +-134.459 55.359 80.4904 +-135.713 54.8565 79.7598 +-617.067 244.849 356.003 +-385.279 150.054 218.174 +-382.435 146.179 212.54 +-384.421 144.188 209.645 +-382.685 140.831 204.764 +-385.261 139.085 202.226 +-639.174 226.332 329.081 +-644.681 223.874 325.506 +-382.297 130.171 189.264 +-381.616 127.384 185.212 +-383.996 125.633 182.667 +-382.695 122.697 178.398 +-382.121 120.03 174.521 +-382.198 117.595 170.98 +-380.462 114.637 166.678 +-381.681 112.594 163.708 +-383.133 110.625 160.846 +-668.247 188.804 274.516 +-670.86 185.418 269.592 +-676.578 182.874 265.894 +-2969.52 784.689 1140.91 +-115.019 29.7038 43.1885 +-114.193 28.8112 41.8907 +-111.239 27.4094 39.8524 +-111.197 26.7475 38.8901 +-110.404 25.9147 37.6792 +-109.315 25.0281 36.3901 +-109.603 24.4658 35.5725 +-109.416 23.801 34.6059 +-108.841 23.0606 33.5294 +-109.38 22.5602 32.8019 +-109.158 21.9049 31.8491 +-109.586 21.3827 31.0899 +-109.342 20.7321 30.1439 +-109.752 20.2082 29.3821 +-109.964 19.6476 28.5671 +-110.836 19.2025 27.9199 +-110.935 18.6215 27.0751 +-111.795 18.1659 26.4126 +-112.07 17.6123 25.6078 +-112.82 17.1308 24.9077 +-113.951 16.6999 24.2812 +-114.883 16.2318 23.6005 +-118.629 16.1392 23.466 +-121.017 15.8324 23.0199 +-159.917 20.0904 29.2109 +-161.59 19.4638 28.2998 +-162.276 18.7091 27.2025 +-162.557 17.906 26.0348 +-166.858 17.5248 25.4806 +-857.275 85.6601 124.547 +-867.34 82.2498 119.589 +-380.655 34.1651 49.675 +-380.079 32.1893 46.8023 +-380.362 30.2927 44.0447 +-904.892 67.5093 98.1565 +-404.363 28.1355 40.9082 +-403.788 26.0706 37.9059 +-406.063 24.1854 35.1648 +-404.529 22.0732 32.0938 +-404.854 20.0719 29.1839 +-403.552 17.9979 26.1684 +-403.415 15.9858 23.2429 +-144.33 5.00244 7.27341 +-402.647 11.958 17.3866 +-404.714 10.0134 14.5591 +-404.254 7.99972 11.6314 +-145.85 2.16428 3.1468 +-146.078 1.44492 2.10088 +-145.694 0.720512 1.0476 +120 6.21725e-15 5.68434e-14 +119.895 0.600677 0.85671 +120.182 1.20432 1.71764 +120.559 1.81237 2.58488 +120.826 2.42229 3.45477 +120.585 3.02251 4.31082 +121.034 3.64153 5.19369 +120.375 4.22672 6.02831 +120.506 4.83762 6.89961 +120.228 5.43215 7.74754 +120.938 6.07428 8.66339 +120.443 6.65791 9.49577 +120.536 7.27304 10.3731 +120.719 7.89616 11.2618 +120.991 8.52864 12.1639 +120.461 9.10445 12.9851 +121.11 9.77155 13.9366 +121.451 10.4203 14.8619 +121.486 11.0463 15.7547 +120.919 11.6166 16.5681 +120.639 12.212 17.4173 +120.94 12.8682 18.3532 +120.838 13.4846 19.2323 +121.315 14.1696 20.2092 +121.095 14.7768 21.0753 +120.865 15.3829 21.9397 +120.53 15.9749 22.784 +121.06 16.6853 23.7973 +120.802 17.2912 24.6614 +121.018 17.9676 25.6261 +121.707 18.7218 26.7018 +121.803 19.3922 27.6579 +121.503 20.0017 28.5272 +121.291 20.6259 29.4175 +121.738 21.367 30.4745 +121.217 21.9416 31.294 +120.974 22.5658 32.1842 +121.385 23.3167 33.2552 +121.121 23.9426 34.1479 +121.224 24.6443 35.1488 +121.69 25.4274 36.2656 +121.955 26.1768 37.3344 +121.179 26.7045 38.0871 +121.14 27.3948 39.0715 +120.812 28.0221 39.9662 +120.289 28.6043 40.7966 +121.967 29.7218 42.3904 +121.052 30.2172 43.097 +121.045 30.9393 44.1268 +121.116 31.6874 45.1938 +117.639 31.4923 44.9155 +115.17 31.5367 44.9788 +112.259 31.433 44.831 +109.54 31.3538 44.718 +106.386 31.1195 44.3838 +104.046 31.0945 44.3483 +101.539 30.9947 44.2059 +99.7457 31.0913 44.3437 +97.6076 31.0611 44.3006 +95.7391 31.0966 44.3512 +96.5618 32.0056 45.6476 +96.4163 32.6046 46.502 +96.4313 33.2639 47.4423 +97.6273 34.3456 48.9851 +95.999 34.4379 49.1168 +96.9057 35.4419 50.5487 +96.531 35.9886 51.3284 +96.564 36.6926 52.3325 +96.6658 37.4318 53.3868 +95.9283 37.8496 53.9827 +96.2504 38.691 55.1826 +96.2285 39.4051 56.2011 +96.5157 40.2569 57.416 +95.7394 40.6706 58.006 +96.4752 41.736 59.5256 +95.7577 42.1828 60.1628 +95.8221 42.979 61.2983 +95.8695 43.779 62.4394 +95.8221 44.5467 63.5343 +95.8358 45.3537 64.6853 +95.8322 46.1642 65.8412 +95.6591 46.9036 66.8958 +95.6217 47.72 68.0602 +95.6416 48.5776 69.2834 +96.1629 49.708 70.8955 +96.0672 50.5369 72.0777 +95.9536 51.3686 73.264 +95.7494 52.1635 74.3977 +95.6003 53.0001 75.5909 +95.4329 53.8392 76.7877 +95.9544 55.0866 78.5666 +95.6741 55.8928 79.7165 +95.3766 56.7003 80.8683 +95.819 57.9671 82.675 +95.6162 58.865 83.9556 +95.7987 60.0189 85.6014 +94.9496 60.539 86.3432 +95.2185 61.7865 88.1224 +95.4566 63.0409 89.9115 +94.9493 63.8223 91.0259 +95.1326 65.0876 92.8305 +95.0937 66.226 94.4541 +94.6498 67.1015 95.7028 +94.6222 68.2916 97.4002 +94.4425 69.3967 98.9763 +94.358 70.596 100.687 +94.3044 71.8452 102.468 +94.2199 73.0996 104.258 +94.1632 74.4051 106.119 +94.7707 76.276 108.788 +94.1813 77.2181 110.132 +94.25 78.728 112.285 +94.1122 80.1012 114.244 +93.9949 81.5272 116.277 +94.277 83.3431 118.867 +94.1349 84.8288 120.986 +93.9017 86.271 123.043 +93.5795 87.6683 125.036 +93.8399 89.6592 127.876 +93.9961 91.61 130.658 +93.6 93.0716 132.742 +93.9052 95.2859 135.901 +93.2289 96.5558 137.712 +90.6124 95.8083 136.646 +88.6362 95.7015 136.493 +88.0555 97.1092 138.501 +88.1196 99.2856 141.605 +88.2133 101.573 144.868 +87.8057 103.352 147.405 +87.566 105.395 150.319 +87.9469 108.275 154.427 +87.7906 110.592 157.731 +92.2479 118.947 169.647 +90.4363 119.405 170.3 +88.0317 119.061 169.809 +87.711 121.565 173.382 +93.0523 132.22 188.578 +92.6882 135.085 192.664 +92.9248 138.974 198.211 +92.5948 142.177 202.779 +92.3454 145.657 207.741 +92.1641 149.415 213.101 +91.9079 153.236 218.552 +91.7962 157.502 224.635 +91.7471 162.106 231.201 +91.5348 166.665 237.704 +91.6293 172.059 245.397 +89.2376 172.951 246.67 +88.2315 176.648 251.942 +90.9412 188.258 268.501 +90.7678 194.473 277.366 +87.7832 194.865 277.925 +84.963 195.632 279.018 +81.2156 194.208 276.987 +78.4854 195.167 278.355 +75.0829 194.431 277.306 +72.3325 195.362 278.633 +68.8417 194.254 277.053 +66.2489 195.662 279.061 +62.6344 194.011 276.706 +59.9607 195.222 278.433 +56.5618 194.043 276.752 +53.8917 195.34 278.601 +50.403 193.614 276.141 +47.7085 194.883 277.95 +44.5094 194.09 276.819 +41.6671 194.819 277.859 +38.5231 194.108 276.844 +35.6442 194.693 277.678 +32.5109 193.835 276.455 +29.6242 194.391 277.249 +26.5741 193.845 276.47 +23.7242 194.773 277.793 +20.6649 193.968 276.644 +17.7524 194.465 277.353 +14.7172 193.514 275.997 +11.8379 194.613 277.565 +8.84257 193.861 276.493 +5.89891 194.013 276.71 +2.93561 193.117 275.431 +1.90958e-14 194.215 276.997 +-2.93735 193.232 275.595 +-5.9024 194.128 276.873 +-8.80854 193.116 275.429 +-11.8065 194.097 276.828 +-14.643 192.539 274.606 +-17.7 193.892 276.536 +-20.5428 192.821 275.009 +-23.5986 193.742 276.322 +-26.4015 192.586 274.674 +-29.5632 193.991 276.677 +-32.2713 192.407 274.418 +-35.4665 193.722 276.294 +-38.1948 192.453 274.484 +-41.3625 193.394 275.826 +-44.0917 192.269 274.221 +-47.3606 193.462 275.923 +-49.9152 191.741 273.469 +-53.2346 192.958 275.204 +-56.0172 192.174 274.086 +-59.3703 193.3 275.692 +-61.9783 191.979 273.808 +-65.4093 193.183 275.525 +-68.0044 191.891 273.683 +-71.4592 193.003 275.269 +-74.0223 191.685 273.389 +-77.5181 192.761 274.924 +-80.2352 191.864 273.643 +-83.7776 192.902 275.125 +-86.2559 191.475 273.089 +-89.862 192.532 274.597 +-92.5714 191.633 273.314 +-96.225 192.651 274.767 +-98.8657 191.611 273.284 +-102.798 193.031 275.308 +-105.397 191.906 273.704 +-109.114 192.79 274.965 +-111.755 191.746 273.476 +-115.577 192.699 274.835 +-118.168 191.571 273.227 +-121.999 192.428 274.449 +-124.674 191.434 273.03 +-128.833 192.678 274.804 +-131.317 191.384 272.96 +-137.443 195.297 278.54 +-140.024 194.07 276.791 +-143.125 193.573 276.081 +-143.111 188.952 269.491 +-143.497 185.029 263.896 +-146.428 184.459 263.083 +-154.805 190.587 271.823 +-159.203 191.618 273.293 +-164.389 193.496 275.972 +-1461.97 1683.38 2400.9 +-451.948 509.217 726.266 +-454.453 501.179 714.802 +-456.984 493.409 703.719 +-459.886 486.257 693.52 +-467.017 483.684 689.849 +-479.325 486.372 693.683 +-486.45 483.704 689.878 +-487.034 474.669 676.992 +-487.947 466.208 664.924 +-490.469 459.487 655.339 +-479.577 440.606 628.409 +-480.561 433.053 617.638 +-482.332 426.393 608.139 +-485.815 421.375 600.981 +-488.064 415.403 592.464 +-491.527 410.577 585.581 +-493.39 404.525 576.949 +-497.14 400.121 570.668 +-499.794 394.921 563.252 +-502.625 389.956 556.171 +-504.802 384.581 548.504 +-508.62 380.534 542.733 +-511.061 375.529 535.594 +-514.508 371.337 529.616 +-516.798 366.38 522.546 +-520.821 362.714 517.317 +-523.293 358.024 510.629 +-526.248 353.73 504.504 +-529.177 349.477 498.439 +-532.614 345.609 492.921 +-535.371 341.349 486.845 +-538.445 337.342 481.13 +-141.105 86.8697 123.897 +-142.834 86.4093 123.24 +-143.1 85.0711 121.332 +-143.126 83.6141 119.254 +-142.765 81.9601 116.895 +-142.65 80.4772 114.78 +-145.594 80.7166 115.121 +-152.184 82.9085 118.247 +-156.802 83.9436 119.724 +-157.63 82.9223 118.267 +-158.513 81.9377 116.863 +-160.426 81.4825 116.214 +-162.263 80.9773 115.493 +-583.764 286.231 408.234 +-586.177 282.373 402.732 +-589.29 278.878 397.747 +-592.418 275.409 392.8 +-596.582 272.431 388.552 +-599.282 268.796 383.367 +-603.345 265.783 379.07 +-606.005 262.163 373.907 +-609.967 259.117 369.563 +-612.588 255.511 364.42 +-2667.45 1092.31 1557.89 +-134.832 54.2003 77.3027 +-623.369 245.958 350.795 +-382.932 148.283 211.486 +-383.671 145.788 207.929 +-382.434 142.578 203.351 +-384.924 140.781 200.787 +-641.294 230.053 328.11 +-646.216 227.341 324.243 +-648.961 223.858 319.275 +-382.305 129.282 184.388 +-382.177 126.673 180.666 +-382.434 124.217 177.163 +-382.034 121.572 173.391 +-381.407 118.887 169.561 +-380.021 116.001 165.446 +-2906.29 868.554 1238.77 +-665.582 194.692 277.678 +-670.037 191.785 273.532 +-673.466 188.573 268.95 +-678.654 185.834 265.044 +-682.54 182.718 260.6 +-114.746 30.0208 42.8169 +-113.736 29.0712 41.4625 +-111.698 27.8822 39.7667 +-110.829 27.0075 38.5192 +-109.572 26.0559 37.1619 +-109.5 25.3984 36.2242 +-109.51 24.7647 35.3204 +-108.762 23.9682 34.1845 +-109.591 23.523 33.5494 +-109.474 22.8748 32.625 +-109.064 22.1723 31.623 +-109.396 21.625 30.8424 +-109.626 21.0579 30.0336 +-110.037 20.5256 29.2745 +-109.677 19.8528 28.3148 +-110.74 19.4368 27.7215 +-110.744 18.8324 26.8595 +-112.468 18.5142 26.4057 +-112.263 17.8733 25.4917 +-113.689 17.4885 24.9428 +-114.532 17.0046 24.2526 +-115.853 16.5829 23.6512 +-119.018 16.4039 23.3959 +-124.232 16.4657 23.484 +-160.405 20.4153 29.117 +-160.612 19.599 27.9528 +-161.394 18.8508 26.8858 +-162.852 18.173 25.919 +-852.679 90.7265 129.398 +-860.033 87.0592 124.167 +-869.115 83.4958 119.085 +-380.161 34.5669 49.3007 +-380.474 32.6441 46.5584 +-381.154 30.7527 43.8608 +-405.005 30.6105 43.6579 +-405.257 28.5664 40.7425 +-404.086 26.431 37.6969 +-405.467 24.4656 34.8939 +-404.529 22.3618 31.8933 +-405.152 20.3493 29.023 +-404.549 18.2783 26.0693 +-404.113 16.2228 23.1377 +-403.646 14.1732 20.2143 +-405.144 12.1895 17.3852 +-405.014 10.1518 14.4789 +-403.954 8.09836 11.5502 +-146.65 2.2046 3.14429 +-145.778 1.46081 2.08346 +-146.094 0.731937 1.04392 +120 6.21725e-15 5.68434e-14 +119.995 0.608887 0.851964 +119.982 1.21773 1.70387 +120.759 1.83866 2.57268 +120.726 2.45133 3.42994 +120.685 3.06381 4.28693 +120.934 3.68519 5.15637 +120.475 4.28448 5.99491 +121.204 4.92806 6.89542 +121.026 5.53831 7.74928 +120.838 6.14714 8.60116 +120.542 6.74888 9.44313 +120.337 7.35418 10.2901 +121.017 8.01721 11.2178 +120.892 8.63093 12.0765 +120.758 9.24402 12.9344 +121.209 9.90496 13.8592 +120.66 10.4852 14.671 +121.387 11.1789 15.6417 +121.116 11.7848 16.4895 +120.639 12.3686 17.3064 +121.039 13.0439 18.2512 +120.838 13.6575 19.1098 +121.413 14.3629 20.0968 +121.095 14.9663 20.9411 +120.084 15.4795 21.6592 +120.53 16.1798 22.639 +121.157 16.9129 23.6648 +120.802 17.513 24.5044 +121.115 18.2126 25.4833 +120.741 18.8114 26.3212 +121.707 19.6254 27.4601 +121.503 20.2582 28.3456 +121.291 20.8904 29.2302 +120.877 21.4881 30.0665 +121.313 22.2405 31.1192 +120.974 22.8552 31.9794 +121.48 23.6342 33.0693 +121.972 24.4201 34.1689 +121.224 24.9604 34.925 +121.502 25.7138 35.9791 +121.205 26.3497 36.8688 +121.085 27.0262 37.8154 +121.419 27.81 38.9122 +120.719 28.3597 39.6813 +120.474 29.0157 40.5991 +121.046 29.8758 41.8026 +120.869 30.5584 42.7577 +121.776 31.5253 44.1106 +121.48 32.1902 45.041 +118.183 32.0436 44.8359 +115.441 32.0163 44.7976 +112.169 31.8106 44.5099 +109.54 31.7559 44.4333 +107.099 31.7298 44.3968 +105.022 31.7887 44.4792 +102.245 31.6106 44.2301 +100.537 31.7398 44.4108 +98.3947 31.7132 44.3735 +96.0873 31.61 44.2291 +96.9948 32.5614 45.5604 +96.6748 33.1114 46.3299 +96.6885 33.7803 47.2659 +97.7126 34.8165 48.7157 +96.5927 35.0953 49.1058 +96.484 35.7403 50.0083 +96.531 36.4502 51.0016 +96.6474 37.1953 52.0442 +96.0855 37.6843 52.7285 +96.1755 38.4339 53.7772 +96.2504 39.1872 54.8313 +96.3913 39.978 55.9378 +96.5157 40.7732 57.0504 +95.9001 41.2614 57.7335 +95.8363 41.9914 58.7549 +95.9164 42.7946 59.8788 +95.8221 43.5302 60.9081 +95.8695 44.3405 62.0419 +95.9775 45.1913 63.2323 +95.8358 45.9354 64.2735 +95.9854 46.8311 65.5267 +95.7351 47.5429 66.5227 +95.8481 48.4465 67.787 +95.6416 49.2007 68.8423 +95.5684 50.0343 70.0086 +96.0672 51.1851 71.6189 +95.2954 51.6706 72.2982 +95.822 52.8726 73.98 +95.6722 53.7203 75.1662 +95.5042 54.5705 76.3559 +95.8837 55.752 78.009 +95.7442 56.6511 79.267 +95.4461 57.4694 80.412 +95.9566 58.7949 82.2667 +95.6162 59.62 83.4211 +95.3258 60.4887 84.6366 +95.6857 61.7912 86.459 +95.2848 62.6226 87.6225 +95.5222 63.8937 89.4009 +95.1441 64.7734 90.6319 +95.1326 65.9224 92.2395 +95.1573 67.1202 93.9155 +94.7757 68.0523 95.2197 +94.6845 69.2134 96.8444 +95.1197 70.7909 99.0516 +94.5406 71.6398 100.239 +94.4248 72.8597 101.946 +94.2794 74.0837 103.659 +94.2808 75.453 105.575 +94.2481 76.8281 107.499 +94.6975 78.637 110.03 +94.5332 79.9773 111.905 +94.224 81.2251 113.651 +94.1053 82.67 115.673 +94.3859 84.5097 118.247 +94.1349 85.9169 120.216 +94.0607 87.5257 122.467 +93.684 88.8916 124.378 +93.8914 90.8592 127.131 +94.1484 92.935 130.036 +93.65 94.316 131.968 +93.6097 96.2045 134.611 +93.6652 98.2524 137.476 +91.1373 97.5994 136.562 +89.1526 97.4936 136.414 +88.3325 98.6641 138.052 +88.2104 100.663 140.849 +88.2579 102.928 144.018 +87.9811 104.887 146.76 +87.9104 107.167 149.949 +87.6933 109.348 153.001 +87.7906 112.011 156.727 +90.9463 118.773 166.189 +90.516 121.043 169.365 +88.3052 120.962 169.252 +88.2851 123.931 173.405 +92.8275 133.593 186.925 +92.6882 136.818 191.438 +92.9248 140.757 196.949 +92.6649 144.109 201.64 +92.3796 147.58 206.495 +92.1307 151.276 211.668 +92.0381 155.422 217.468 +91.7962 159.522 223.205 +91.8399 164.35 229.961 +91.2943 168.359 235.57 +91.5123 174.043 243.523 +89.3512 175.393 245.412 +87.3219 177.069 247.758 +90.7274 190.225 266.165 +90.509 196.406 274.814 +87.2825 196.239 274.58 +84.3582 196.73 275.268 +81.2156 196.698 275.223 +78.1255 196.764 275.314 +74.9314 196.528 274.985 +71.8335 196.502 274.949 +68.5427 195.891 274.093 +65.562 196.117 274.41 +62.4703 195.985 274.225 +59.5092 196.237 274.578 +56.4133 196.015 274.267 +53.5006 196.409 274.818 +50.4178 196.155 274.463 +47.3467 195.886 274.086 +44.2875 195.599 273.686 +41.3503 195.817 273.99 +38.3306 195.615 273.707 +35.3724 195.686 273.807 +32.3671 195.453 273.481 +29.4935 196.015 274.267 +26.4329 195.288 273.249 +23.494 195.357 273.346 +20.5611 195.469 273.502 +17.6268 195.565 273.638 +14.6866 195.59 273.672 +11.7507 195.656 273.765 +8.79545 195.302 273.269 +5.85528 195.048 272.914 +2.9295 195.187 273.108 +1.90958e-14 195.252 273.2 +-2.92252 194.722 272.457 +-5.84132 194.583 272.263 +-8.76404 194.604 272.293 +-11.7193 195.133 273.033 +-14.6081 194.544 272.208 +-17.5692 194.927 272.744 +-20.5001 194.888 272.691 +-23.4242 194.777 272.534 +-26.3387 194.592 272.276 +-29.2582 194.452 272.08 +-32.1946 194.412 272.023 +-35.2052 194.761 272.512 +-38.1042 194.459 272.09 +-41.0456 194.374 271.971 +-43.9612 194.159 271.669 +-46.9988 194.446 272.072 +-49.8118 193.798 271.164 +-52.8279 193.939 271.363 +-55.8851 194.18 271.7 +-58.7973 193.889 271.293 +-61.8325 193.984 271.425 +-64.7415 193.663 270.976 +-67.6854 193.441 270.665 +-70.9603 194.114 271.607 +-73.8492 193.689 271.013 +-76.9333 193.761 271.113 +-80.0484 193.872 271.268 +-82.955 193.458 270.689 +-86.331 194.099 271.587 +-89.189 193.542 270.806 +-92.3843 193.698 271.025 +-95.7564 194.172 271.688 +-98.6101 193.567 270.842 +-102.067 194.116 271.61 +-105.127 193.868 271.263 +-108.31 193.825 271.203 +-111.501 193.764 271.118 +-114.763 193.796 271.162 +-117.934 193.645 270.95 +-121.178 193.585 270.867 +-124.394 193.453 270.683 +-127.83 193.629 270.928 +-131.134 193.568 270.843 +-136.432 196.346 274.729 +-140.1 196.666 275.178 +-143.32 196.323 274.698 +-143.071 191.322 267.701 +-143.049 186.818 261.398 +-146.013 186.296 260.668 +-150.748 187.973 263.014 +-158.729 193.498 270.745 +-162.899 194.201 271.729 +-450.66 525.567 735.381 +-452.719 516.629 722.875 +-454.776 507.968 710.756 +-457.5 500.302 700.029 +-460.554 493.209 690.105 +-469.587 492.583 689.229 +-480.458 493.775 690.896 +-485.45 488.901 684.077 +-487.897 481.609 673.874 +-488.102 472.337 660.9 +-490.156 465.083 650.751 +-477.881 444.679 622.201 +-480.185 438.265 613.226 +-483.531 432.935 605.768 +-486.036 426.974 597.427 +-489.35 421.84 590.244 +-491.811 416.082 582.188 +-494.71 410.809 574.809 +-497.43 405.489 567.366 +-500.382 400.457 560.325 +-503.22 395.426 553.285 +-505.464 390.024 545.728 +-509.29 385.922 539.988 +-511.553 380.712 532.697 +-514.571 376.145 526.308 +-517.49 371.577 519.915 +-520.694 367.277 513.899 +-523.743 362.928 507.814 +-526.767 358.621 501.787 +-529.899 354.442 495.941 +-532.747 350.129 489.905 +-535.505 345.814 483.867 +-539.189 342.14 478.727 +-141.174 88.0264 123.168 +-142.834 87.5176 122.456 +-143.725 86.5384 121.086 +-142.775 84.4789 118.204 +-142.482 82.8468 115.92 +-142.793 81.5908 114.163 +-147.033 82.5595 115.518 +-152.764 84.2917 117.942 +-156.729 84.9807 118.906 +-157.704 84.0254 117.569 +-158.216 82.8328 115.901 +-159.827 82.2194 115.043 +-161.885 81.8252 114.491 +-583.764 289.902 405.635 +-587.326 286.555 400.952 +-590.524 283.047 396.043 +-593.351 279.381 390.913 +-596.895 276.07 386.281 +-599.991 272.565 381.377 +-603.663 269.334 376.856 +-606.723 265.84 371.968 +-2633.84 1133.22 1585.62 +-613.639 259.233 362.722 +-617.588 256.143 358.399 +-135.57 55.1957 77.2305 +-624.523 249.574 349.207 +-383.264 150.315 210.322 +-382.754 147.305 206.111 +-382.937 144.597 202.322 +-383.237 141.961 198.635 +-2778.63 1009.57 1412.6 +-646.131 230.226 322.136 +-649.99 227.089 317.746 +-380.409 130.291 182.305 +-382.35 128.356 179.598 +-383.044 126.01 176.316 +-383.171 123.498 172.8 +-381.231 120.356 168.404 +-382.405 118.226 165.423 +-2906.29 879.694 1230.88 +-665.76 197.242 275.984 +-669.948 194.22 271.755 +-674.365 191.246 267.594 +-678.834 188.267 263.426 +-682.903 185.16 259.079 +-114.2 30.2612 42.3419 +-113.736 29.4441 41.1986 +-111.148 28.1008 39.319 +-110.369 27.2404 38.1151 +-109.665 26.4123 36.9564 +-109.686 25.7677 36.0546 +-109.603 25.1036 35.1253 +-109.509 24.4424 34.2001 +-108.935 23.6821 33.1363 +-109.38 23.1483 32.3895 +-109.252 22.4954 31.4759 +-109.586 21.9402 30.699 +-110.006 21.4018 29.9456 +-109.847 20.753 29.0379 +-109.773 20.1248 28.1589 +-110.836 19.7031 27.5689 +-111.702 19.239 26.9195 +-112.564 18.7677 26.26 +-112.359 18.1181 25.3511 +-113.013 17.6075 24.6366 +-115.5 17.3682 24.3018 +-115.853 16.7956 23.5006 +-119.115 16.6279 23.266 +-125.304 16.8207 23.5358 +-160.308 20.6645 28.9141 +-160.612 19.8503 27.7749 +-162.765 19.2549 26.9417 +-164.128 18.5503 25.9559 +-3221.63 347.183 485.784 +-861.116 88.2869 123.532 +-868.72 84.5283 118.273 +-381.84 35.165 49.2033 +-381.958 33.1917 46.4423 +-380.659 31.1067 43.5249 +-406.592 31.1246 43.5499 +-405.058 28.9186 40.4633 +-403.291 26.7174 37.3833 +-405.268 24.7672 34.6546 +-403.733 22.604 31.6279 +-404.057 20.5546 28.7603 +-404.549 18.5128 25.9033 +-404.013 16.4269 22.9847 +-403.945 14.3656 20.1005 +-405.244 12.3489 17.2787 +-404.215 10.2617 14.3584 +-404.354 8.21031 11.488 +-149.149 2.27093 3.17751 +-143.678 1.45824 2.04038 +-145.794 0.739802 1.03514 +120 6.21725e-15 5.68434e-14 +119.995 0.616549 0.846436 +120.882 1.24231 1.70551 +120.659 1.86026 2.55387 +120.726 2.48217 3.40768 +120.685 3.10236 4.25911 +120.934 3.73156 5.12291 +120.475 4.33839 5.95601 +120.406 4.95722 6.80557 +121.026 5.608 7.699 +120.838 6.22448 8.54535 +120.542 6.8338 9.38186 +121.232 7.50211 10.2994 +120.918 8.11137 11.1358 +120.892 8.73953 11.9982 +120.659 9.35262 12.8399 +121.209 10.0296 13.7692 +120.66 10.6171 14.5758 +121.387 11.3196 15.5402 +121.116 11.9331 16.3825 +120.54 12.514 17.18 +121.039 13.208 18.1328 +120.838 13.8294 18.9858 +120.531 14.438 19.8214 +121.095 15.1547 20.8052 +120.865 15.7762 21.6586 +120.53 16.3834 22.4921 +121.06 17.112 23.4924 +121.578 17.8473 24.5018 +121.018 18.427 25.2978 +120.741 19.0481 26.1505 +121.707 19.8723 27.2819 +121.503 20.5131 28.1617 +121.291 21.1533 29.0405 +121.738 21.9134 30.084 +121.217 22.5026 30.893 +121.83 23.3065 31.9966 +121.48 23.9316 32.8547 +121.877 24.7082 33.9209 +121.129 25.2548 34.6714 +121.596 26.0574 35.7733 +121.861 26.8256 36.8278 +121.085 27.3662 37.57 +121.326 28.1384 38.6301 +120.905 28.7607 39.4844 +121.305 29.5835 40.6141 +121.046 30.2517 41.5314 +121.694 31.1542 42.7704 +121.684 31.898 43.7915 +121.662 32.6441 44.8158 +118.364 32.4965 44.6132 +115.441 32.4191 44.507 +113.068 32.469 44.5754 +109.54 32.1555 44.145 +107.723 32.3161 44.3656 +105.022 32.1887 44.1906 +102.157 31.9808 43.9052 +100.537 32.1392 44.1227 +97.695 31.8838 43.772 +95.9132 31.9497 43.8625 +97.1681 33.03 45.3456 +96.6748 33.528 46.0293 +96.517 34.1447 46.876 +96.9452 34.9777 48.0196 +96.3383 35.4433 48.6587 +96.3996 36.1583 49.6404 +95.7762 36.6202 50.2745 +96.7308 37.6958 51.7512 +96.0855 38.1585 52.3863 +96.1755 38.9175 53.4283 +96.2504 39.6803 54.4756 +96.3913 40.481 55.5748 +95.7876 40.9748 56.2527 +95.9001 41.7806 57.3589 +95.8363 42.5197 58.3737 +95.9164 43.3331 59.4903 +96.5313 44.4042 60.9608 +95.8695 44.8985 61.6394 +95.9775 45.7599 62.822 +95.8358 46.5134 63.8565 +95.9854 47.4203 65.1016 +95.7351 48.1411 66.0911 +95.8481 49.0561 67.3472 +95.6416 49.8198 68.3956 +96.2373 51.0184 70.0412 +95.4774 51.5109 70.7173 +95.9536 52.6821 72.3253 +95.822 53.5378 73.5 +95.6722 54.3963 74.6785 +96.1462 55.6286 76.3703 +95.318 56.1204 77.0456 +95.7442 57.3639 78.7527 +95.4461 58.1925 79.8902 +95.2683 59.1078 81.1469 +95.6162 60.3702 82.8799 +95.3258 61.2498 84.0875 +95.6857 62.5686 85.8981 +95.2848 63.4106 87.0539 +95.5222 64.6976 88.8209 +95.0792 65.5437 89.9824 +95.1326 66.7518 91.641 +95.0301 67.874 93.1817 +94.5239 68.7254 94.3505 +94.6845 70.0843 96.216 +94.6887 71.3566 97.9628 +94.5406 72.5412 99.5891 +94.485 73.8236 101.35 +94.2794 75.0158 102.986 +94.3395 76.4501 104.955 +94.7707 78.2264 107.394 +94.2386 79.2408 108.787 +94.5332 80.9836 111.179 +94.224 82.2471 112.914 +94.0501 83.6607 114.855 +94.277 85.4742 117.344 +94.1349 86.9979 119.436 +94.0077 88.577 121.604 +94.0497 90.3615 124.054 +93.8399 91.9518 126.237 +94.0976 94.0537 129.123 +93.65 95.5027 131.112 +93.5605 97.3638 133.667 +93.7137 99.5399 136.654 +91.2328 98.9311 135.819 +89.1526 98.7203 135.529 +88.4249 100.01 137.3 +88.2104 101.93 139.935 +87.8563 103.749 142.433 +87.9811 106.207 145.808 +87.6521 108.196 148.538 +87.6933 110.724 152.008 +87.7491 113.367 155.637 +90.5396 119.729 164.372 +90.4762 122.512 168.192 +88.6569 122.972 168.824 +88.4381 125.708 172.579 +93.0897 135.656 186.236 +93.018 139.032 190.872 +92.9248 142.528 195.671 +92.6649 145.923 200.332 +92.3796 149.436 205.156 +92.1641 153.235 210.371 +92.0381 157.377 216.057 +91.701 161.362 221.528 +91.7162 166.195 228.162 +91.6551 171.151 234.967 +91.3077 175.839 241.402 +89.408 177.712 243.974 +87.129 178.901 245.606 +90.9947 193.185 265.216 +90.4314 198.706 272.797 +87.2825 198.708 272.798 +84.1162 198.635 272.698 +80.8188 198.2 272.101 +77.923 198.723 272.819 +74.7366 198.483 272.49 +71.6672 198.514 272.532 +68.5228 198.298 272.236 +65.562 198.585 272.629 +62.4703 198.451 272.446 +59.3703 198.243 272.16 +56.2647 197.959 271.771 +53.3442 198.299 272.237 +50.4178 198.623 272.683 +47.2214 197.826 271.587 +44.2875 198.061 271.91 +41.3503 198.281 272.212 +38.2287 197.55 271.208 +35.3933 198.265 272.191 +32.2808 197.385 270.982 +29.3976 197.836 271.602 +26.4407 197.804 271.557 +23.501 197.873 271.653 +20.5611 197.928 271.728 +17.6215 197.968 271.782 +14.6518 197.58 271.249 +11.7158 197.53 271.182 +8.77451 197.288 270.849 +5.85528 197.502 271.144 +2.92164 197.113 270.608 +1.75415e-14 197.65 271.346 +-2.92339 197.23 270.77 +-5.84307 197.09 270.578 +-8.76666 197.112 270.607 +-11.6913 197.118 270.616 +-14.6081 196.991 270.442 +-17.5221 196.85 270.248 +-20.4513 196.87 270.275 +-23.3614 196.699 270.04 +-26.3466 197.1 270.591 +-29.1972 196.487 269.75 +-32.1946 196.858 270.258 +-35.1111 196.685 270.021 +-38.1155 196.965 270.406 +-41.0456 196.82 270.207 +-43.9743 196.66 269.987 +-46.8874 196.426 269.666 +-49.797 196.178 269.325 +-52.8279 196.38 269.602 +-55.7531 196.159 269.299 +-58.7799 196.271 269.453 +-61.6685 195.903 268.948 +-64.7415 196.099 269.217 +-67.6854 195.874 268.909 +-70.7731 196.038 269.132 +-73.676 195.667 268.623 +-76.9558 196.256 269.432 +-80.0484 196.311 269.508 +-82.955 195.892 268.933 +-86.0806 195.972 269.042 +-89.2149 196.034 269.128 +-92.1438 195.625 268.566 +-95.4808 196.049 269.149 +-98.6385 196.059 269.162 +-101.775 195.996 269.075 +-104.916 195.915 268.964 +-108.31 196.264 269.443 +-111.215 195.7 268.669 +-114.763 196.234 269.402 +-117.967 196.137 269.269 +-121.178 196.021 269.11 +-124.078 195.391 268.245 +-127.436 195.461 268.34 +-130.804 195.511 268.409 +-136.095 198.325 272.273 +-139.756 198.652 272.721 +-143.281 198.739 272.841 +-143.071 193.73 265.964 +-142.887 188.953 259.407 +-146.096 188.747 259.124 +-150.537 190.071 260.941 +-158.686 195.88 268.916 +-163.775 197.703 271.418 +-450.437 531.916 730.248 +-1487.5 1718.84 2359.74 +-454.961 514.569 706.432 +-457.641 506.753 695.702 +-459.981 498.795 684.776 +-469.732 498.935 684.969 +-480.901 500.448 687.046 +-486.15 495.766 680.619 +-488.049 487.822 669.712 +-488.308 478.482 656.89 +-490.783 471.537 647.356 +-477.881 450.274 618.164 +-480.453 444.028 609.589 +-483.531 438.382 601.838 +-486.201 432.493 593.753 +-489.182 427.001 586.213 +-491.811 421.318 578.411 +-494.71 415.977 571.08 +-497.546 410.687 563.817 +-500.146 405.305 556.428 +-503.042 400.259 549.5 +-505.765 395.167 542.509 +-509.29 390.778 536.484 +-511.738 385.642 529.433 +-514.757 381.016 523.083 +-517.931 376.572 516.982 +-520.948 372.08 510.814 +-523.743 367.495 504.519 +-526.572 362.999 498.347 +-529.636 358.724 492.479 +-532.747 354.534 486.726 +-536.107 350.559 481.268 +-539.189 346.445 475.621 +-141.446 89.3065 122.605 +-143.247 88.8749 122.013 +-143.794 87.6697 120.358 +-142.705 85.5001 117.38 +-141.775 83.4729 114.597 +-142.65 82.535 113.309 +-147.321 83.762 114.994 +-152.836 85.3929 117.233 +-156.729 86.05 118.135 +-157.482 84.9631 116.643 +-159.107 84.3478 115.798 +-160.501 83.6048 114.778 +-162.112 82.9701 113.906 +-583.764 293.55 403.003 +-587.096 290.047 398.195 +-589.984 286.346 393.113 +-593.351 282.896 388.377 +-596.895 279.543 383.775 +-599.991 275.995 378.903 +-603.663 272.723 374.41 +-607.043 269.327 369.749 +-610.288 265.882 365.02 +-2650.74 1133.9 1556.69 +-617.588 259.366 356.073 +-136.061 56.0927 77.0076 +-624.276 252.614 346.804 +-382.518 151.91 208.551 +-383.504 149.451 205.176 +-383.44 146.609 201.274 +-383.49 143.842 197.476 +-384.929 141.617 194.42 +-646.557 233.277 320.257 +-650.247 230.037 315.809 +-383.942 133.156 182.804 +-382.783 130.118 178.634 +-381.477 127.074 174.455 +-382.384 124.795 171.327 +-382.549 122.292 167.89 +-381.963 119.575 164.16 +-2906.29 890.763 1222.89 +-666.206 199.858 274.377 +-670.753 196.9 270.316 +-675.444 193.962 266.283 +-678.834 190.636 261.717 +-682.903 187.49 257.398 +-114.746 30.7885 42.2683 +-112.914 29.599 40.6354 +-111.239 28.4778 39.0961 +-110.369 27.5831 37.8678 +-110.496 26.9474 36.995 +-109.686 26.0919 35.8206 +-109.51 25.3979 34.8678 +-109.509 24.7499 33.9782 +-109.029 24.0007 32.9496 +-109.286 23.4195 32.1517 +-110.006 22.9357 31.4876 +-109.491 22.1971 30.4736 +-109.911 21.6524 29.7257 +-109.752 20.9959 28.8245 +-109.964 20.4135 28.0249 +-110.836 19.951 27.39 +-111.702 19.4811 26.7449 +-111.795 18.874 25.9114 +-113.13 18.472 25.3595 +-113.786 17.951 24.6442 +-114.532 17.4394 23.9419 +-116.727 17.1351 23.5241 +-118.824 16.7959 23.0584 +-125.889 17.1118 23.4922 +-160.015 20.8863 28.674 +-161.786 20.247 27.7963 +-161.884 19.3915 26.6219 +-163.343 18.6938 25.664 +-3221.63 351.552 482.632 +-860.82 89.3671 122.689 +-869.016 85.6208 117.545 +-381.445 35.5706 48.8335 +-383.244 33.7225 46.2963 +-379.867 31.4326 43.1526 +-406.691 31.5238 43.2779 +-404.76 29.2609 40.1712 +-405.874 27.2268 37.3786 +-404.273 25.0173 34.3453 +-403.335 22.8659 31.3917 +-403.957 20.8081 28.5667 +-404.649 18.7503 25.7415 +-405.211 16.6829 22.9033 +-405.043 14.5859 20.0244 +-404.645 12.4858 17.1412 +-403.316 10.3677 14.2334 +-404.354 8.31361 11.4134 +-148.049 2.28255 3.13363 +-144.978 1.48994 2.04548 +-147.494 0.757842 1.04041 +120 6.21725e-15 5.68434e-14 +119.895 0.623641 0.840141 +120.082 1.24931 1.68302 +120.659 1.88322 2.53699 +120.626 2.51073 3.38235 +120.785 3.14326 4.23445 +120.934 3.77762 5.08904 +120.475 4.39195 5.91663 +120.406 5.01841 6.76058 +120.328 5.64449 7.604 +120.838 6.30132 8.48885 +120.542 6.91816 9.31983 +120.337 7.53864 10.1557 +120.918 8.2115 11.0622 +120.892 8.84742 11.9188 +120.758 9.47588 12.7655 +121.209 10.1534 13.6782 +120.759 10.757 14.4913 +121.387 11.4593 15.4375 +120.228 11.9919 16.1549 +121.328 12.7513 17.178 +121.039 13.3711 18.0129 +120.74 13.9887 18.845 +121.511 14.735 19.8504 +121.192 15.3541 20.6844 +120.865 15.971 21.5154 +120.53 16.5856 22.3434 +120.866 17.2954 23.2996 +121.384 18.0387 24.301 +121.115 18.6694 25.1506 +120.837 19.2987 25.9983 +120.839 19.9743 26.9084 +121.6 20.7827 27.9975 +121.195 21.3975 28.8257 +120.877 22.0271 29.6739 +121.313 22.7984 30.7129 +120.974 23.4285 31.5618 +121.48 24.227 32.6375 +121.688 24.9744 33.6443 +121.129 25.5666 34.4421 +121.596 26.3791 35.5367 +121.018 26.9688 36.3312 +121.085 27.704 37.3216 +121.419 28.5076 38.4041 +120.719 29.0711 39.1632 +121.305 29.9487 40.3456 +120.862 30.5786 41.194 +120.869 31.3249 42.1994 +121.684 32.2918 43.502 +121.025 32.874 44.2864 +118.364 32.8977 44.3183 +115.531 32.8449 44.2472 +113.068 32.8698 44.2807 +110.166 32.7386 44.104 +107.634 32.688 44.0358 +104.933 32.5585 43.8614 +102.952 32.6274 43.9541 +101.064 32.7066 44.0608 +98.3947 32.5086 43.7941 +95.5651 32.2267 43.4143 +97.1681 33.4378 45.0458 +96.5025 33.8814 45.6435 +96.6028 34.5969 46.6074 +97.542 35.6275 47.9957 +96.5079 35.944 48.4221 +96.5683 36.6688 49.3985 +96.4471 37.332 50.2919 +96.6474 38.1283 51.3647 +96.0855 38.6296 52.04 +96.1755 39.3979 53.0751 +96.3323 40.2043 54.1615 +96.3913 40.9807 55.2074 +95.7876 41.4806 55.8807 +95.9001 42.2963 56.9797 +96.555 43.3674 58.4226 +95.9164 43.868 59.097 +95.9797 44.6955 60.2117 +95.8695 45.4527 61.2318 +95.8221 46.2497 62.3055 +95.8358 47.0876 63.4342 +95.8322 47.9291 64.5678 +95.7351 48.7354 65.6541 +95.6972 49.5834 66.7965 +96.3157 50.7902 68.4222 +96.2373 51.6482 69.5781 +96.2147 52.5494 70.7922 +95.9536 53.3325 71.847 +95.822 54.1987 73.0141 +95.6003 55.0263 74.129 +96.1462 56.3153 75.8654 +95.9544 57.1925 77.0471 +95.7442 58.072 78.232 +95.5155 58.9537 79.4197 +95.8878 60.2267 81.1347 +95.6162 61.1154 82.3319 +95.3258 62.0059 83.5315 +94.9496 62.8535 84.6733 +95.2848 64.1933 86.4783 +95.5222 65.4963 88.2336 +95.1441 66.3981 89.4485 +95.1326 67.5759 91.0351 +95.1573 68.8037 92.6892 +94.7127 69.7127 93.9137 +94.6222 70.9024 95.5164 +94.6272 72.1904 97.2516 +94.4798 73.389 98.8663 +94.485 74.7349 100.679 +94.2199 75.8942 102.241 +94.2808 77.3455 104.196 +94.3062 78.8034 106.16 +94.1813 80.1702 108.002 +94.4766 81.9338 110.378 +94.1681 83.2129 112.101 +93.9949 84.644 114.029 +93.8958 86.1794 116.097 +94.1886 88.1225 118.715 +94.0077 89.6704 120.8 +93.5795 91.0198 122.618 +93.8399 93.0869 125.402 +93.9961 95.1122 128.131 +93.65 96.6816 130.245 +93.5605 98.5657 132.783 +93.7622 100.821 135.821 +91.5191 100.466 135.344 +89.5752 100.412 135.271 +87.9631 100.716 135.68 +88.5281 103.559 139.51 +88.2579 105.51 142.138 +87.6742 107.143 144.339 +87.6521 109.532 147.556 +87.7356 112.144 151.075 +87.6247 114.603 154.388 +90.2955 120.881 162.845 +90.8749 124.571 167.816 +88.3834 124.106 167.19 +89.8541 129.297 174.183 +92.7526 136.833 184.335 +92.7248 140.305 189.013 +92.9248 144.287 194.377 +92.6649 147.724 199.007 +92.4138 151.337 203.875 +92.1307 155.071 208.904 +92.0056 159.264 214.553 +91.828 163.58 220.367 +91.7162 168.246 226.654 +91.5048 172.98 233.031 +91.1907 177.781 239.498 +89.6068 180.306 242.901 +86.9636 180.765 243.519 +90.9412 195.455 263.308 +90.3278 200.929 270.683 +87.0071 200.526 270.139 +84.1404 201.145 270.973 +80.6554 200.242 269.756 +77.7206 200.653 270.311 +74.5634 200.468 270.061 +71.4385 200.324 269.867 +68.3234 200.162 269.649 +65.3902 200.51 270.118 +62.1241 199.787 269.144 +59.1967 200.103 269.569 +56.0007 199.462 268.707 +53.2034 200.217 269.723 +50.0335 199.543 268.815 +47.2214 200.268 269.792 +44.0656 199.501 268.759 +41.2406 200.196 269.695 +38.1268 199.455 268.697 +35.2993 200.18 269.673 +32.1946 199.288 268.472 +29.3192 199.744 269.087 +26.2446 198.76 267.761 +23.4382 199.781 269.136 +20.4513 199.3 268.488 +17.5796 199.935 269.344 +14.6125 199.483 268.734 +11.7193 200.028 269.468 +8.75357 199.247 268.416 +5.83958 199.404 268.628 +2.91379 199.01 268.097 +1.94289e-14 199.077 268.187 +-2.90768 198.592 267.534 +-5.82736 198.987 268.066 +-8.74572 199.069 268.176 +-11.6634 199.074 268.184 +-14.5776 199.007 268.093 +-17.4802 198.804 267.82 +-20.3841 198.646 267.607 +-23.3545 199.067 268.174 +-26.2289 198.641 267.6 +-29.1972 198.913 267.966 +-32.0221 198.22 267.033 +-35.0275 198.638 267.596 +-37.9231 198.39 267.261 +-40.9359 198.717 267.702 +-43.7524 198.083 266.848 +-46.79 198.438 267.326 +-49.5605 197.657 266.274 +-52.6871 198.274 267.106 +-55.4395 197.463 266.014 +-58.641 198.225 267.039 +-61.3587 197.326 265.828 +-64.5698 197.994 266.728 +-67.3266 197.242 265.715 +-70.5444 197.816 266.489 +-73.4812 197.558 266.141 +-76.7758 198.214 267.025 +-79.6749 197.807 266.477 +-82.9792 198.368 267.233 +-85.8553 197.872 266.564 +-88.982 197.935 266.65 +-91.8766 197.465 266.016 +-95.2878 198.068 266.829 +-98.1557 197.508 266.074 +-101.745 198.358 267.219 +-104.676 197.878 266.573 +-108.032 198.176 266.974 +-110.612 197.042 265.446 +-114.405 198.037 266.786 +-117.366 197.547 266.126 +-120.87 197.937 266.651 +-123.798 197.357 265.87 +-127.507 197.985 266.716 +-130.181 196.981 265.364 +-135.87 200.442 270.026 +-139.105 200.168 269.657 +-143.203 201.083 270.889 +-143.071 196.121 264.205 +-142.927 191.34 257.765 +-144.894 189.504 255.292 +-150.072 191.823 258.415 +-157.007 196.2 264.311 +-161.452 197.304 265.799 +-166.075 198.537 267.461 +-452.856 529.747 713.65 +-455.376 521.397 702.402 +-457.5 512.851 690.889 +-460.554 505.58 681.094 +-470.168 505.563 681.072 +-481.787 507.56 683.762 +-487.6 503.383 678.135 +-487.592 493.381 664.66 +-487.844 483.929 651.927 +-491.358 477.917 643.828 +-477.881 455.832 614.077 +-481.152 450.162 606.438 +-483.531 443.794 597.858 +-486.532 438.13 590.229 +-489.35 432.421 582.537 +-492.547 427.157 575.446 +-494.71 421.113 567.304 +-497.895 416.049 560.482 +-500.734 410.791 553.399 +-503.28 405.391 546.125 +-506.307 400.474 539.5 +-509.655 395.886 533.319 +-512.292 390.825 526.501 +-515.193 386.046 520.064 +-517.931 381.221 513.563 +-521.139 376.811 507.622 +-523.743 372.031 501.183 +-527.352 368.024 495.785 +-529.636 363.153 489.223 +-533.343 359.312 484.049 +-536.107 354.886 478.086 +-540.067 351.293 473.246 +-141.446 90.4089 121.795 +-142.902 89.7562 120.916 +-143.864 88.7948 119.62 +-142.565 86.4703 116.489 +-141.846 84.5457 113.896 +-142.864 83.679 112.729 +-147.537 84.92 114.4 +-155.303 87.8424 118.337 +-156.437 86.9495 117.134 +-157.925 86.2533 116.197 +-158.884 85.2693 114.871 +-160.876 84.8348 114.286 +-162.036 83.9556 113.101 +-584.752 297.677 401.017 +-587.096 293.628 395.562 +-591.605 290.677 391.586 +-593.74 286.576 386.062 +-597.521 283.291 381.637 +-600.307 279.549 376.595 +-604.059 276.27 372.179 +-607.682 272.939 367.69 +-2633.84 1161.64 1564.91 +-2650.74 1147.9 1546.4 +-618.077 262.775 353.999 +-135.815 56.6827 76.3603 +-137.629 56.3792 75.9514 +-386 155.185 209.058 +-383.254 151.197 203.686 +-384.363 148.776 200.424 +-382.225 145.138 195.523 +-381.876 142.228 191.604 +-646.557 236.157 318.14 +-650.419 232.938 313.804 +-649.496 228.034 307.196 +-382.004 131.456 177.092 +-383.914 129.464 174.408 +-382.121 126.249 170.076 +-381.758 123.546 166.435 +-380.197 120.492 162.321 +-381.858 118.482 159.614 +-666.206 202.325 272.563 +-670.753 199.33 268.529 +-674.635 196.121 264.205 +-679.286 193.118 260.16 +-682.903 189.804 255.696 +-114.291 31.045 41.8224 +-113.097 30.0129 40.432 +-111.423 28.8769 38.9016 +-110.369 27.9236 37.6174 +-109.665 27.0748 36.4739 +-109.686 26.414 35.5838 +-109.696 25.7551 34.6961 +-109.509 25.0554 33.7535 +-108.935 24.2761 32.7037 +-109.192 23.6882 31.9116 +-109.346 23.0796 31.0917 +-109.491 22.4711 30.2721 +-109.911 21.9197 29.5292 +-109.847 21.2735 28.6587 +-110.536 20.773 27.9845 +-110.74 20.1798 27.1854 +-111.511 19.6877 26.5224 +-112.66 19.2548 25.9392 +-113.13 18.7 25.1918 +-113.786 18.1726 24.4812 +-114.435 17.6397 23.7634 +-116.727 17.3466 23.3686 +-118.824 17.0032 22.9059 +-127.058 17.484 23.5536 +-160.796 21.2473 28.6234 +-159.732 20.2367 27.262 +-162.08 19.6547 26.4779 +-162.656 18.845 25.3871 +-3221.63 355.892 479.441 +-861.707 90.5633 122.003 +-869.312 86.7075 116.808 +-380.556 35.9257 48.3975 +-381.958 34.0243 45.8359 +-380.164 31.8455 42.9008 +-406.988 31.9363 43.0232 +-404.363 29.5931 39.8664 +-405.874 27.5629 37.1315 +-405.765 25.4196 34.2441 +-404.728 23.2282 31.2919 +-404.854 21.1117 28.4408 +-403.951 18.949 25.5273 +-404.313 16.8514 22.7014 +-404.245 14.7369 19.8528 +-404.245 12.6274 17.0111 +-403.915 10.5113 14.1604 +-405.153 8.43293 11.3605 +-146.95 2.29356 3.08978 +-145.678 1.51562 2.04177 +-146.094 0.759919 1.02373 +120 6.21725e-15 5.68434e-14 +119.995 0.63172 0.835174 +119.982 1.2634 1.67029 +120.659 1.90603 2.51989 +119.827 2.5243 3.33729 +120.685 3.1787 4.20245 +120.934 3.82338 5.05475 +120.575 4.44882 5.88163 +121.104 5.10865 6.75397 +121.026 5.74599 7.59657 +120.838 6.37764 8.43166 +120.542 7.00196 9.25704 +120.337 7.62995 10.0873 +120.918 8.31097 10.9876 +120.892 8.95458 11.8385 +120.659 9.58275 12.669 +121.209 10.2764 13.586 +120.759 10.8873 14.3937 +120.498 11.5132 15.2212 +121.116 12.2267 16.1645 +120.54 12.8219 16.9514 +121.039 13.533 17.8915 +120.838 14.1697 18.7332 +121.315 14.8895 19.6849 +120.214 15.4146 20.3791 +120.768 16.1514 21.3532 +120.53 16.7865 22.1928 +121.06 17.533 23.1798 +121.384 18.2572 24.1373 +121.115 18.8956 24.9811 +121.127 19.5793 25.8851 +121.707 20.3613 26.9189 +121.503 21.0179 27.787 +121.099 21.6395 28.6089 +120.877 22.2939 29.474 +121.313 23.0745 30.506 +121.165 23.7495 31.3984 +121.101 24.4439 32.3164 +121.688 25.2769 33.4177 +121.506 25.9568 34.3166 +121.596 26.6986 35.2973 +120.924 27.2744 36.0585 +121.179 28.0613 37.0988 +121.326 28.8308 38.1162 +120.534 29.378 38.8396 +121.028 30.2422 39.9822 +120.954 30.9725 40.9477 +121.51 31.8727 42.1378 +121.502 32.6338 43.1441 +121.389 33.3723 44.1203 +118.998 33.4747 44.2557 +116.524 33.5285 44.3268 +113.068 33.2679 43.9824 +110.972 33.3774 44.127 +107.544 33.0566 43.7029 +105.643 33.1758 43.8605 +103.57 33.2208 43.9201 +101.064 33.1028 43.764 +98.3073 32.8731 43.4604 +96.1743 32.825 43.3967 +96.5618 33.6316 44.4632 +96.5025 34.2918 45.3359 +96.6028 35.016 46.2934 +96.6894 35.7438 47.2556 +96.5927 36.4113 48.1381 +96.1466 36.9509 48.8514 +96.531 37.817 49.9966 +96.6474 38.5901 51.0186 +96.6658 39.3336 52.0015 +96.0931 39.841 52.6723 +96.2504 40.6567 53.7508 +96.3913 41.4771 54.8354 +96.4348 42.2667 55.8793 +96.4628 43.0598 56.9278 +95.8363 43.566 57.597 +95.9164 44.3994 58.6988 +95.8221 45.1626 59.7078 +95.8695 46.0033 60.8193 +95.8221 46.8099 61.8857 +96.5302 48.0033 63.4634 +95.9854 48.5872 64.2354 +95.7351 49.3257 65.2118 +95.6972 50.184 66.3465 +95.6416 51.0456 67.4856 +95.7171 51.9912 68.7357 +95.6249 52.8599 69.8842 +95.2954 53.6082 70.8734 +95.822 54.8552 72.5221 +95.6722 55.7348 73.685 +96.0748 56.9551 75.2983 +95.9544 57.8853 76.5281 +95.604 58.6894 77.5912 +95.4461 59.6244 78.8273 +95.2683 60.5623 80.0672 +95.6162 61.8557 81.7772 +95.2582 62.7123 82.9097 +94.9496 63.6148 84.1028 +94.6221 64.5191 85.2983 +94.9317 65.8794 87.0968 +95.0142 67.1107 88.7246 +95.1326 68.3944 90.4218 +95.2209 69.6835 92.1261 +94.5239 70.4165 93.0952 +94.6845 71.8088 94.9359 +94.5656 73.0172 96.5334 +94.6015 74.3739 98.3271 +94.3646 75.5436 99.8735 +94.3984 76.9588 101.745 +94.3395 78.3313 103.559 +94.8869 80.249 106.094 +94.2386 81.1907 107.339 +94.5898 83.0258 109.765 +94.1122 84.1708 111.279 +94.5468 86.1724 113.925 +94.4404 87.7288 115.983 +94.1886 89.1899 117.915 +94.0077 90.7566 119.986 +93.684 92.2249 121.927 +93.8399 94.2144 124.558 +93.9454 96.2124 127.199 +93.6 97.8002 129.298 +93.5605 99.7596 131.889 +93.8591 102.147 135.045 +92.3779 102.638 135.694 +89.4813 101.522 134.219 +88.5634 102.632 135.686 +88.1196 104.33 137.931 +88.3918 106.949 141.394 +87.7181 108.495 143.438 +87.5229 110.695 146.347 +87.8201 113.612 150.203 +87.9564 116.431 153.929 +89.116 120.747 159.635 +91.473 126.91 167.783 +88.735 126.109 166.725 +92.9921 135.433 179.051 +92.8275 138.602 183.241 +92.7248 142.005 187.739 +92.889 145.979 192.993 +92.6999 149.57 197.741 +92.2428 152.887 202.126 +92.1641 157.006 207.572 +91.9404 161.078 212.956 +91.701 165.333 218.58 +91.7471 170.341 225.202 +91.5048 175.075 231.461 +90.6645 178.896 236.512 +89.2092 181.68 240.193 +86.8809 182.781 241.648 +90.9145 197.764 261.457 +89.8879 202.373 267.55 +86.3561 201.436 266.312 +83.4872 202 267.057 +80.0017 201.024 265.767 +77.2932 201.967 267.014 +73.9791 201.306 266.14 +71.2513 202.219 267.346 +67.6455 200.576 265.174 +65.0849 201.991 267.045 +61.6685 200.724 265.37 +58.9188 201.576 266.496 +55.588 200.391 264.93 +52.8279 201.212 266.015 +49.6492 200.408 264.953 +46.8735 201.2 265.999 +43.7132 200.303 264.813 +40.9359 201.124 265.899 +37.8325 200.313 264.827 +35.017 200.984 265.714 +31.9454 200.141 264.599 +29.0926 200.601 265.208 +26.1033 200.085 264.525 +23.2708 200.756 265.413 +20.2986 200.209 264.69 +17.4854 201.272 266.095 +14.4947 200.272 264.773 +11.6285 200.883 265.58 +8.66457 199.61 263.898 +5.81165 200.854 265.542 +2.89023 199.791 264.137 +1.90958e-14 200.342 264.865 +-2.88412 199.369 263.579 +-5.79594 200.311 264.824 +-8.6541 199.369 263.579 +-11.6041 200.461 265.022 +-14.4249 199.307 263.497 +-17.3912 200.188 264.662 +-20.1826 199.065 263.177 +-23.2429 200.516 265.095 +-26.017 199.424 263.651 +-29.049 200.301 264.811 +-31.7825 199.119 263.248 +-34.9543 200.624 265.238 +-37.6401 199.294 263.48 +-40.7287 200.106 264.553 +-43.413 198.927 262.995 +-46.5395 199.767 264.104 +-49.1762 198.5 262.429 +-52.296 199.186 263.337 +-55.0269 198.368 262.255 +-58.2242 199.199 263.354 +-60.8849 198.173 261.998 +-64.2645 199.444 263.678 +-66.7883 198.035 261.814 +-70.1702 199.151 263.29 +-72.7454 197.949 261.701 +-76.1909 199.087 263.205 +-78.8812 198.209 262.045 +-82.3018 199.132 263.266 +-85.004 198.282 262.142 +-88.542 199.342 263.544 +-90.9679 197.881 261.611 +-94.7641 199.366 263.575 +-97.3889 198.339 262.216 +-101.102 199.491 263.74 +-103.653 198.319 262.19 +-107.229 199.085 263.204 +-110.01 198.342 262.22 +-113.819 199.409 263.631 +-116.165 197.892 261.626 +-120.22 199.257 263.431 +-122.818 198.165 261.987 +-126.576 198.919 262.984 +-129.192 197.852 261.573 +-134.596 200.968 265.692 +-137.957 200.921 265.63 +-142.304 202.241 267.376 +-143.151 198.608 262.572 +-143.049 193.823 256.247 +-144.147 190.812 252.266 +-148.931 192.67 254.723 +-154.898 195.908 259.003 +-160.532 198.555 262.503 +-1461.97 1768.9 2338.6 +-453.31 536.701 709.553 +-455.838 528.247 698.377 +-458.251 519.915 687.361 +-462.558 513.931 679.449 +-472.35 514.062 679.622 +-483.757 515.808 681.931 +-485.55 507.338 670.734 +-487.034 498.785 659.426 +-489.338 491.29 649.518 +-489.947 482.318 637.655 +-478.888 462.326 611.224 +-481.958 456.378 603.361 +-484.511 450.079 595.034 +-487.526 444.342 587.449 +-489.909 438.158 579.274 +-493.227 432.928 572.358 +-495.57 426.954 564.461 +-498.417 421.53 557.289 +-501.381 416.303 550.379 +-504.588 411.369 543.856 +-507.21 406.047 536.82 +-510.203 401.112 530.296 +-512.846 395.986 523.52 +-516.314 391.572 517.683 +-518.686 386.401 510.847 +-522.284 382.213 505.31 +-524.386 377 498.418 +-527.936 372.894 492.99 +-530.489 368.143 486.709 +-533.939 364.072 481.326 +-536.777 359.633 475.458 +-141.942 93.4459 123.541 +-142.265 92.0331 121.674 +-142.558 90.6244 119.811 +-143.725 89.7835 118.7 +-142.635 87.5605 115.761 +-142.482 85.9534 113.636 +-143.292 84.9466 112.305 +-147.824 86.1163 113.851 +-156.173 89.4047 118.199 +-157.387 88.5378 117.053 +-157.63 87.1352 115.198 +-158.884 86.3021 114.097 +-161.7 86.3021 114.097 +-163.168 85.5661 113.124 +-585.437 301.635 398.781 +-588.399 297.844 393.768 +-592.222 294.505 389.354 +-595.138 290.731 384.365 +-598.226 287.06 379.512 +-601.646 283.566 374.893 +-605.091 280.094 370.302 +-607.362 276.099 365.021 +-612.378 273.358 361.397 +-614.934 269.521 356.324 +-2667.45 1147.8 1517.47 +-134.832 56.954 75.2969 +-135.404 56.1395 74.22 +-629.157 256.005 338.455 +-382.337 152.662 201.829 +-382.685 149.921 198.205 +-384.755 147.868 195.491 +-383.572 144.59 191.157 +-648.092 239.585 316.746 +-651.533 236.163 312.223 +-656.217 233.184 308.284 +-381.917 133.018 175.859 +-382.086 130.409 172.409 +-381.859 127.69 168.815 +-381.758 125.042 165.314 +-382.405 122.659 162.163 +-382.656 120.168 158.87 +-667.275 205.104 271.16 +-671.738 202.041 267.111 +-675.174 198.655 262.635 +-680.188 195.717 258.75 +-115.554 32.5058 42.9748 +-114.291 31.421 41.5406 +-112.366 30.1802 39.9001 +-110.873 29.0823 38.4487 +-110.645 28.3326 37.4575 +-109.942 27.472 36.3197 +-109.779 26.7565 35.3739 +-109.789 26.0892 34.4916 +-109.696 25.4021 33.5832 +-109.122 24.6124 32.5392 +-108.91 23.9132 31.6148 +-109.346 23.3591 30.8823 +-109.586 22.7629 30.094 +-110.1 22.2235 29.3809 +-110.418 21.643 28.6135 +-110.154 20.9521 27.7 +-110.836 20.4419 27.0256 +-111.702 19.9605 26.389 +-111.795 19.3384 25.5666 +-113.13 18.9265 25.022 +-113.786 18.3927 24.3163 +-115.113 17.9591 23.7431 +-116.727 17.5567 23.2111 +-119.504 17.3077 22.8819 +-131.637 18.3336 24.2381 +-159.429 21.3219 28.1889 +-158.558 20.3313 26.8793 +-161.884 19.8687 26.2677 +-163.048 19.1193 25.2769 +-854.94 95.5887 126.374 +-861.707 91.6602 121.181 +-870.496 87.8772 116.179 +-379.964 36.3043 47.9966 +-380.474 34.3026 45.3503 +-380.857 32.29 42.6894 +-405.798 32.2287 42.6084 +-405.058 30.003 39.6659 +-405.477 27.8694 36.8452 +-403.676 25.5951 33.8384 +-405.226 23.5384 31.1193 +-404.555 21.3517 28.2283 +-404.549 19.207 25.3928 +-403.315 17.0134 22.4928 +-405.043 14.9448 19.758 +-404.445 12.7867 16.9049 +-404.515 10.6544 14.0859 +-404.653 8.52452 11.27 +-146.15 2.30871 3.05226 +-145.478 1.53187 2.02523 +-145.594 0.766488 1.01335 +119.9 5.32907e-15 2.84217e-14 +119.895 0.638696 0.828753 +120.082 1.27947 1.66021 +120.659 1.92868 2.5026 +120.726 2.57348 3.33927 +120.785 3.21914 4.17706 +120.934 3.86881 5.02006 +120.575 4.50169 5.84126 +121.104 5.16937 6.70762 +121.026 5.81428 7.54443 +120.838 6.45344 8.37379 +120.443 7.07931 9.1859 +120.238 7.71427 10.0098 +121.017 8.41669 10.9213 +120.793 9.05355 11.7476 +120.659 9.69664 12.5821 +121.209 10.3985 13.4928 +120.759 11.0167 14.2949 +120.498 11.65 15.1167 +121.017 12.3619 16.0405 +120.442 12.9638 16.8214 +120.94 13.6827 17.7543 +120.74 14.3264 18.5895 +120.531 14.9691 19.4234 +120.214 15.5978 20.2393 +120.475 16.3037 21.1551 +121.407 17.1096 22.2009 +121.157 17.7557 23.0392 +120.608 18.3561 23.8183 +121.115 19.1201 24.8097 +120.258 19.6698 25.5229 +121.417 20.5543 26.6707 +121.6 21.2844 27.6181 +121.291 21.9314 28.4575 +120.973 22.5767 29.2948 +121.313 23.3487 30.2966 +121.925 24.1827 31.3787 +121.48 24.8119 32.1951 +121.877 25.617 33.2399 +121.601 26.2857 34.1075 +121.878 27.0786 35.1363 +121.58 27.7481 36.0052 +121.085 28.3728 36.8158 +121.326 29.1734 37.8546 +120.627 29.75 38.6027 +121.121 30.625 39.7381 +121.875 31.5791 40.9761 +121.51 32.2515 41.8486 +122.05 33.1706 43.0412 +121.48 33.7942 43.8503 +119.633 34.053 44.1862 +117.065 34.0846 44.2272 +113.877 33.9041 43.993 +111.777 34.0192 44.1423 +108.97 33.8928 43.9782 +106.175 33.7391 43.7789 +103.393 33.5583 43.5443 +102.47 33.9622 44.0683 +99.2693 33.5893 43.5845 +97.828 33.7862 43.8399 +95.9556 33.8177 43.8808 +96.6748 34.7613 45.1052 +95.7456 35.1178 45.5678 +95.922 35.8816 46.5589 +96.0838 36.65 47.5559 +96.484 37.5212 48.6864 +96.6148 38.2997 49.6965 +96.6474 39.0487 50.6685 +96.0855 39.5621 51.3346 +96.1755 40.349 52.3557 +96.2504 41.1399 53.3819 +96.3913 41.97 54.4591 +96.5157 42.8049 55.5423 +96.4628 43.5715 56.5371 +95.8363 44.0837 57.2017 +95.9164 44.927 58.296 +96.5313 46.0375 59.7369 +96.026 46.626 60.5005 +95.8221 47.3662 61.461 +95.8358 48.2243 62.5744 +95.9854 49.1646 63.7945 +95.7351 49.9119 64.7642 +95.8481 50.8605 65.9951 +96.3157 52.0163 67.4948 +96.2373 52.895 68.635 +96.0672 53.7355 69.7257 +95.9536 54.6199 70.8732 +95.822 55.5071 72.0244 +95.6722 56.3971 73.1792 +96.0748 57.632 74.7815 +95.318 58.1847 75.4988 +95.7442 59.4739 77.1716 +95.5155 60.3769 78.3432 +95.3371 61.326 79.5748 +95.548 62.5462 81.1581 +95.3258 63.5027 82.3993 +95.0165 64.4166 83.585 +95.2848 65.743 85.3062 +94.9317 66.6623 86.4991 +95.1441 68.001 88.2361 +95.1968 69.2536 89.8614 +95.1573 70.4647 91.4329 +95.0274 71.633 92.9489 +94.809 72.7574 94.4079 +94.6887 73.9813 95.996 +94.5406 75.2095 97.5897 +94.3044 76.3925 99.1247 +94.2794 77.7751 100.919 +94.2808 79.2127 102.784 +94.6546 81.0043 105.109 +94.5828 82.4553 106.992 +94.5898 84.0125 109.012 +94.1681 85.2217 110.581 +94.0501 86.738 112.549 +93.7868 88.1573 114.39 +93.7588 89.8378 116.571 +94.0607 91.887 119.23 +93.6317 93.269 121.023 +93.5824 95.0722 123.363 +93.9454 97.3558 126.326 +94 99.3855 128.96 +93.462 100.839 130.846 +93.7137 103.201 133.911 +93.2368 104.823 136.015 +90.3733 103.752 134.626 +88.4249 103.689 134.544 +88.3012 105.788 137.267 +88.1241 107.893 139.999 +87.9811 110.114 142.88 +87.566 112.066 145.413 +87.5665 114.63 148.741 +87.9979 117.87 152.944 +87.6924 120.23 156.007 +92.6693 130.097 168.81 +92.8377 133.508 173.236 +93.0686 137.156 177.969 +92.8275 140.249 181.983 +93.018 144.146 187.04 +92.6023 147.258 191.077 +92.3847 150.833 195.716 +92.4138 154.991 201.111 +92.2976 159.102 206.446 +92.0381 163.166 211.719 +91.7962 167.471 217.305 +91.6544 172.191 223.43 +91.6551 177.447 230.25 +89.9628 179.621 233.071 +87.7323 180.796 234.595 +88.5347 188.474 244.558 +90.8878 200.056 259.587 +89.0079 202.773 263.112 +85.029 200.698 260.42 +82.6889 202.446 262.688 +78.7878 200.327 259.938 +76.3034 201.75 261.785 +72.8103 200.48 260.137 +70.3573 202.054 262.18 +66.7883 200.388 260.018 +64.2263 201.695 261.713 +60.6844 199.869 259.343 +58.12 201.206 261.079 +54.8618 200.123 259.674 +52.2648 201.433 261.374 +48.9988 200.134 259.688 +46.3864 201.475 261.428 +43.0736 199.718 259.148 +40.5216 201.454 261.401 +37.2552 199.6 258.995 +34.6512 201.248 261.134 +31.4662 199.481 258.841 +28.8137 201.039 260.863 +25.766 199.847 259.315 +23.0894 201.559 261.538 +20.03 199.908 259.394 +17.297 201.47 261.421 +14.2679 199.481 258.841 +11.5099 201.196 261.066 +8.57033 199.786 259.236 +5.74882 201.044 260.869 +2.8466 199.114 258.364 +1.5099e-14 200.77 260.513 +-2.84921 199.297 258.602 +-5.73661 200.617 260.315 +-8.53107 198.87 258.048 +-11.4784 200.647 260.354 +-14.2505 199.237 258.524 +-17.2185 200.555 260.235 +-19.9323 198.933 258.129 +-22.9359 200.22 259.799 +-25.6169 198.69 257.815 +-28.7352 200.492 260.152 +-31.3895 198.994 258.209 +-34.463 200.155 259.716 +-37.0627 198.569 257.657 +-40.1925 199.818 259.279 +-42.7604 198.265 257.263 +-46.0663 200.085 259.625 +-48.5258 198.202 257.181 +-51.7955 199.624 259.027 +-54.3337 198.197 257.174 +-57.4428 198.861 258.037 +-60.1195 198.008 256.929 +-63.4058 199.118 258.37 +-65.9509 197.875 256.757 +-69.5257 199.666 259.081 +-71.9878 198.215 257.199 +-75.1786 198.776 257.926 +-77.784 197.775 256.627 +-81.2858 199.011 258.231 +-83.677 197.507 256.279 +-87.4032 199.117 258.368 +-89.7921 197.644 256.457 +-93.5513 199.153 258.415 +-95.8836 197.594 256.392 +-99.7572 199.177 258.446 +-102.15 197.765 256.614 +-106.209 199.535 258.911 +-108.455 197.862 256.74 +-112.386 199.239 258.527 +-114.663 197.654 256.471 +-118.681 199.044 258.273 +-120.997 197.546 256.33 +-125.357 199.345 258.664 +-127.542 197.647 256.461 +-131.824 199.168 258.434 +-136.12 200.601 260.294 +-140.272 201.722 261.749 +-142.872 200.576 260.262 +-143.334 196.517 254.994 +-142.779 191.247 248.156 +-146.775 192.139 249.313 +-149.603 191.459 248.432 +-158.12 197.897 256.786 +-161.211 197.376 256.109 +-454.444 544.439 706.448 +-456.946 535.824 695.27 +-459.378 527.387 684.322 +-467.234 525.296 681.608 +-476.374 524.602 680.708 +-486.318 524.701 680.836 +-487.45 515.376 668.737 +-487.947 505.66 656.129 +-490.316 498.123 646.349 +-477.982 476.13 617.812 +-479.524 468.441 607.836 +-483.032 462.831 600.556 +-485.491 456.35 592.146 +-489.182 451.15 585.399 +-491.251 444.58 576.874 +-494.473 439.179 569.866 +-496.832 433.129 562.015 +-500.508 428.328 555.786 +-502.439 422.14 547.756 +-505.659 417.141 541.27 +-507.872 411.409 533.832 +-511.786 407.138 528.29 +-513.954 401.558 521.05 +-517.808 397.372 515.618 +-519.63 391.704 508.264 +-523.492 387.65 503.003 +-526.186 382.789 496.696 +-529.82 378.672 491.353 +-531.473 373.209 484.265 +-535.53 369.495 479.446 +-538.583 365.131 473.784 +-141.063 93.9716 121.935 +-143.22 93.7519 121.65 +-143.591 92.3656 119.851 +-143.794 90.8944 117.942 +-142.425 88.4704 114.797 +-142.836 87.191 113.136 +-147.215 88.3093 114.588 +-151.205 89.1327 115.656 +-156.971 90.9292 117.987 +-157.68 89.7566 116.466 +-158.515 88.6658 115.05 +-159.553 87.6952 113.791 +-161.924 87.4486 113.471 +-583.089 309.408 401.479 +-587.033 306.052 397.124 +-589.318 301.854 391.677 +-317.369 159.699 207.221 +-595.838 294.531 382.175 +-600.339 291.498 378.239 +-602.355 287.274 372.759 +-606.836 284.241 368.822 +-609.758 280.483 363.946 +-613.986 277.333 359.859 +-616.309 273.334 354.67 +-2667.45 1161.44 1507.05 +-623.784 266.621 345.96 +-133.838 56.1498 72.8583 +-629.654 259.253 336.399 +-635.004 256.563 332.908 +-382.602 151.669 196.801 +-383.996 149.331 193.767 +-384.59 146.697 190.349 +-383.006 143.271 185.904 +-652.647 239.379 310.611 +-657.509 236.42 306.772 +-381.657 134.508 174.533 +-381.39 131.718 170.913 +-382.121 129.296 167.771 +-382.725 126.849 164.595 +-380.904 123.63 160.418 +-382.923 121.681 157.889 +-669.057 208.095 270.018 +-674.691 205.341 266.444 +-677.331 201.658 261.666 +-682.354 198.673 257.793 +-114.92 32.7116 42.4456 +-112.471 31.2881 40.5985 +-111.818 30.3899 39.433 +-110.964 29.4523 38.2164 +-109.908 28.4784 36.9528 +-109.942 27.7984 36.0704 +-109.13 26.9145 34.9234 +-108.952 26.1979 33.9936 +-109.042 25.5509 33.1541 +-109.31 24.9477 32.3714 +-109.38 24.3018 31.5333 +-109.441 23.6571 30.6968 +-109.775 23.0732 29.9391 +-110.1 22.4876 29.1792 +-109.752 21.7682 28.2458 +-110.345 21.2378 27.5575 +-110.644 20.6492 26.7937 +-111.511 20.163 26.1629 +-111.891 19.5851 25.413 +-113.419 19.2004 24.9138 +-114.366 18.7061 24.2724 +-115.694 18.2642 23.6991 +-117.697 17.913 23.2434 +-120.185 17.6131 22.8543 +-157.068 22.1354 28.7222 +-158.55 21.4564 27.8412 +-161.199 20.9156 27.1394 +-161.002 19.9953 25.9453 +-162.656 19.2999 25.043 +-856.71 96.9249 125.767 +-863.184 92.9089 120.556 +-872.666 89.1431 115.669 +-380.655 36.8025 47.7539 +-382.255 34.8727 45.2497 +-382.045 32.7757 42.5287 +-404.906 32.54 42.2229 +-404.066 30.2851 39.2971 +-403.291 28.0486 36.3951 +-404.87 25.9758 33.7055 +-404.33 23.7655 30.8374 +-405.551 21.6586 28.1036 +-404.549 19.4352 25.2186 +-404.612 17.2709 22.4103 +-403.945 15.0814 19.5692 +-404.445 12.9387 16.7888 +-404.814 10.7891 13.9996 +-403.454 8.60025 11.1594 +-145.95 2.33295 3.02717 +-142.778 1.52131 1.974 +-145.594 0.775597 1.00639 +119.9 5.32907e-15 2.84217e-14 +119.895 0.646147 0.822958 +119.982 1.29332 1.64723 +120.659 1.95118 2.4851 +120.626 2.60134 3.31317 +119.886 3.23245 4.11697 +120.834 3.91072 4.98084 +120.475 4.55044 5.79562 +120.306 5.1952 6.61681 +120.926 5.87726 7.48551 +120.639 6.51797 8.30154 +121.239 7.20926 9.18199 +121.133 7.86237 10.0138 +120.023 8.44491 10.7558 +120.793 9.15916 11.6655 +120.659 9.80975 12.4941 +121.11 10.5112 13.3875 +120.66 11.1361 14.1833 +121.288 11.8632 15.1095 +120.82 12.4858 15.9024 +120.54 13.1257 16.7174 +121.825 13.9436 17.7591 +120.838 14.5053 18.4746 +120.433 15.1313 19.2719 +121.095 15.8954 20.245 +120.768 16.534 21.0583 +121.114 17.2675 21.9926 +121.06 17.9484 22.8597 +120.899 18.6151 23.7089 +121.115 19.3431 24.6362 +120.837 19.9952 25.4666 +120.55 20.6456 26.295 +121.407 21.4987 27.3816 +121.195 22.1697 28.2361 +121.642 22.9664 29.2509 +121.313 23.6211 30.0847 +120.974 24.274 30.9163 +121.48 25.1013 31.97 +121.215 25.7751 32.8282 +121.224 26.5099 33.764 +121.408 27.2888 34.7561 +120.831 27.8988 35.5331 +121.272 28.7481 36.6147 +121.14 29.4685 37.5322 +120.348 30.0276 38.2443 +120.843 30.9114 39.3699 +120.954 31.7062 40.3823 +121.602 32.6523 41.5872 +121.502 33.4069 42.5483 +121.844 34.2908 43.6741 +121.627 35.0245 44.6085 +118.419 34.881 44.4258 +115.585 34.814 44.3404 +113.209 34.8569 44.3951 +109.683 34.5124 43.9564 +107.683 34.6175 44.0901 +104.982 34.4717 43.9044 +103.085 34.5646 44.0228 +99.8816 34.1907 43.5466 +97.828 34.1803 43.5334 +96.0422 34.243 43.6133 +95.8993 34.8847 44.4305 +96.6885 35.8773 45.6947 +95.922 36.3002 46.2333 +96.8471 37.372 47.5985 +96.6527 38.0252 48.4304 +96.1955 38.5783 49.1348 +96.6474 39.5042 50.3141 +96.0855 40.0236 50.9756 +96.1755 40.8197 51.9895 +96.3323 41.6552 53.0537 +96.3913 42.4596 54.0782 +96.5157 43.3042 55.1539 +96.4628 44.0798 56.1417 +95.8363 44.598 56.8017 +95.7577 45.3759 57.7925 +96.5313 46.5745 59.3192 +95.8695 47.093 59.9794 +95.8221 47.9188 61.0312 +95.8358 48.7868 62.1368 +96.445 49.9763 63.6518 +95.7351 50.4941 64.3113 +95.6972 51.3728 65.4304 +95.8663 52.3776 66.7101 +96.2373 53.512 68.155 +96.0672 54.3624 69.238 +95.9536 55.2571 70.3776 +95.7494 56.1121 71.4666 +95.8161 57.1408 72.7767 +95.5042 57.958 73.8176 +95.318 58.8634 74.9708 +95.7442 60.1677 76.6319 +95.4461 61.0368 77.7388 +95.3371 62.0413 79.0183 +95.6162 63.3209 80.648 +95.3258 64.2435 81.823 +95.6188 65.5805 83.5259 +95.2185 66.4636 84.6506 +94.9317 67.4399 85.8941 +95.0792 68.7473 87.5592 +95.004 69.9194 89.0521 +95.0301 71.1916 90.6723 +94.5869 72.1327 91.871 +94.6222 73.461 93.5628 +94.6887 74.8444 95.3247 +94.6015 76.1356 96.9693 +94.3646 77.3331 98.4944 +94.4579 78.8312 100.403 +94.3395 80.1868 102.129 +94.19 81.5472 103.862 +94.1239 83.0127 105.728 +94.0234 84.4837 107.602 +94.224 86.2671 109.873 +93.9949 87.6986 111.696 +94.4949 89.8588 114.448 +93.6513 90.7814 115.623 +94.0607 92.9589 118.396 +93.8407 94.5676 120.445 +93.7369 96.34 122.702 +93.9454 98.4915 125.443 +93.95 100.491 127.989 +93.462 102.015 129.931 +94.0046 104.729 133.387 +93.6185 106.48 135.617 +91.4061 106.163 135.213 +89.4869 106.158 135.207 +88.2104 106.912 136.167 +88.1241 109.152 139.02 +88.0688 111.509 142.023 +87.9104 113.819 144.964 +87.6933 116.135 147.915 +87.832 119.02 151.589 +88.2212 122.366 155.85 +88.8413 126.178 160.705 +93.2284 135.633 172.748 +92.9921 138.641 176.579 +92.8275 141.885 180.711 +92.7248 145.368 185.147 +92.5664 148.918 189.668 +92.3847 152.592 194.348 +92.3796 156.74 199.631 +91.9638 160.376 204.261 +92.0056 165.011 210.165 +91.5741 169.014 215.263 +91.6235 174.141 221.793 +90.3621 176.984 225.414 +89.6996 181.185 230.764 +87.1075 181.602 231.296 +91.0155 196.015 249.653 +89.6585 199.652 254.285 +87.2479 201.082 256.106 +83.5518 199.512 254.106 +81.2132 201.153 256.196 +77.4105 199.121 253.608 +75.1112 200.914 255.892 +71.5333 199.262 253.788 +69.297 201.331 256.423 +65.612 199.155 253.651 +63.3104 201.138 256.177 +59.6457 198.739 253.121 +57.3907 200.999 256 +53.9045 198.925 253.359 +51.4669 200.672 255.583 +48.1563 198.987 253.438 +45.6905 200.768 255.706 +42.421 198.986 253.437 +39.9 200.678 255.592 +30.2366 163.887 208.733 +30.4178 178.722 227.627 +25.3512 162.589 207.08 +28.2995 199.755 254.415 +25.0285 196.391 250.131 +22.6639 200.153 254.922 +19.6698 198.603 252.948 +17.004 200.367 255.195 +14.0411 198.6 252.944 +11.3319 200.396 255.232 +8.39233 197.918 252.076 +5.64585 199.747 254.405 +2.80035 198.164 252.389 +1.85407e-14 200.024 254.758 +-2.79511 197.793 251.917 +-5.65283 199.994 254.72 +-8.38186 197.671 251.761 +-11.3039 199.902 254.603 +-14.0018 198.044 252.236 +-16.9464 199.688 254.33 +-19.6088 197.987 252.163 +-22.5802 199.413 253.98 +-25.2011 197.745 251.856 +-28.2472 199.386 253.946 +-30.7952 197.505 251.55 +-33.9613 199.542 254.145 +-36.4628 197.633 251.713 +-39.5953 199.146 253.64 +-42.0555 197.272 251.253 +-45.3565 199.3 253.836 +-47.6538 196.911 250.793 +-50.9663 198.72 253.098 +-53.3434 196.855 250.722 +-56.7135 198.627 252.979 +-59.0261 196.674 250.492 +-62.4709 198.471 252.78 +-64.7946 196.674 250.492 +-68.2574 198.311 252.576 +-70.516 196.428 250.178 +-74.0089 197.966 252.137 +-76.4534 196.659 250.472 +-80.0036 198.157 252.38 +-82.1246 196.104 249.765 +-86.0056 198.219 252.459 +-88.1619 196.32 250.04 +-92.0904 198.33 252.601 +-94.1795 196.346 250.074 +-98.2077 198.371 252.653 +-100.346 196.538 250.318 +-104.324 198.28 252.538 +-106.551 196.656 250.469 +-110.693 198.527 252.852 +-112.727 196.584 250.377 +-116.697 198 252.181 +-118.86 196.323 250.044 +-123.171 198.154 252.376 +-125.343 196.506 250.277 +-129.988 198.686 253.054 +-131.605 196.209 249.899 +-138.475 201.461 256.588 +-140.32 199.291 253.824 +-143.456 198.978 253.426 +-143.235 194.096 247.208 +-143.606 190.182 242.223 +-145.771 188.732 240.376 +-155.315 196.654 250.466 +-159.426 197.467 251.502 +-1487.5 1802.86 2296.19 +-1512.92 1794.77 2285.89 +-1538.22 1786.55 2275.42 +-474.057 539.184 686.726 +-481.561 536.501 683.309 +-487.696 532.326 677.992 +-488.4 522.405 665.355 +-489.622 513.315 653.777 +-491.089 504.728 642.841 +-479.079 482.79 614.901 +-481.22 475.581 605.719 +-485.02 470.157 598.811 +-487.016 463.123 589.852 +-490.838 457.958 583.273 +-492.593 450.995 574.404 +-496.568 446.185 568.279 +-498.208 439.395 559.63 +-502.134 434.733 553.693 +-504.496 428.812 546.152 +-507.919 423.893 539.887 +-509.497 417.54 531.795 +-513.734 413.455 526.593 +-515.986 407.848 519.452 +-520.049 403.747 514.228 +-521.958 398.05 506.972 +-525.782 393.888 501.671 +-527.986 388.579 494.909 +-531.638 384.404 489.592 +-534.229 379.52 483.372 +-537.451 375.147 477.802 +-539.988 370.355 471.698 +-142.82 96.251 122.589 +-142.469 94.349 120.167 +-143.66 93.4881 119.07 +-142.683 91.244 116.212 +-142.214 89.3709 113.826 +-143.118 88.3822 112.567 +-150.282 91.2007 116.157 +-156.241 93.1756 118.672 +-157.769 92.4574 117.757 +-157.899 90.9296 115.812 +-159.768 90.409 115.148 +-161.114 89.5865 114.101 +-583.137 318.603 405.785 +-584.9 313.99 399.91 +-589.619 310.986 396.084 +-591.923 306.725 390.657 +-595.694 303.248 386.229 +-597.858 298.977 380.789 +-602.373 295.898 376.867 +-604.798 291.804 371.653 +-609.613 288.872 367.918 +-611.595 284.609 362.49 +-615.594 281.302 358.278 +-618.089 277.321 353.207 +-384.425 169.337 215.674 +-2683.95 1160.57 1478.15 +-630.457 267.584 340.806 +-135.382 56.3921 71.8232 +-134.506 54.9787 70.023 +-381.595 153.035 194.912 +-384.249 151.172 192.539 +-382.47 147.59 187.977 +-382.068 144.588 184.153 +-383.154 142.173 181.077 +-659.836 240.024 305.704 +-662.423 236.181 300.81 +-667.65 233.271 297.103 +-382.034 130.775 166.56 +-382.285 128.181 163.256 +-382.846 125.71 160.109 +-383.277 123.214 156.931 +-382.064 120.219 153.115 +-675.765 208.067 265.002 +-678.859 204.471 260.423 +-115.35 33.9771 43.2745 +-114.557 32.9887 42.0157 +-112.016 31.525 40.1515 +-111.635 30.6941 39.0932 +-111.056 29.8205 37.9805 +-110.184 28.883 36.7865 +-109.295 27.9573 35.6075 +-109.315 27.2747 34.7381 +-109.324 26.594 33.8712 +-109.322 25.9153 33.0068 +-109.497 25.2819 32.2 +-109.662 24.6487 31.3935 +-109.818 24.0155 30.5871 +-109.964 23.3826 29.781 +-110.385 22.8087 29.0501 +-109.942 22.0603 28.0969 +-110.631 21.5412 27.4358 +-110.644 20.89 26.6064 +-111.607 20.4158 26.0023 +-112.564 19.9327 25.387 +-113.612 19.4573 24.7816 +-114.366 18.9243 24.1027 +-115.887 18.5082 23.5728 +-118.182 18.1967 23.1761 +-122.324 18.1358 23.0984 +-160.868 22.9354 29.2114 +-160.405 21.9606 27.9699 +-162.47 21.3265 27.1622 +-163.745 20.5732 26.2029 +-167.662 20.126 25.6333 +-858.578 98.2692 125.159 +-865.252 94.2174 119.999 +-383.468 39.6284 50.4722 +-380.062 37.1739 47.3462 +-380.474 35.1152 44.7241 +-383.432 33.2783 42.3845 +-406.691 33.0646 42.1124 +-405.058 30.7137 39.1181 +-403.986 28.4247 36.2029 +-404.572 26.2595 33.4451 +-404.23 24.0368 30.6142 +-405.85 21.9274 27.9276 +-404.948 19.6813 25.0669 +-404.213 17.4552 22.2316 +-405.143 15.3026 19.49 +-404.445 13.0896 16.6714 +-405.114 10.923 13.912 +-404.254 8.7178 11.1033 +-146.95 2.37633 3.02659 +-147.877 1.59402 2.03021 +-146.194 0.78788 1.00347 +120 6.21725e-15 5.68434e-14 +119.895 0.653545 0.817095 +120.082 1.30922 1.63685 +120.659 1.97352 2.46739 +120.527 2.62894 3.28684 +120.885 3.29671 4.12171 +120.934 3.95876 4.94944 +120.375 4.59872 5.74956 +120.406 5.25905 6.57513 +121.026 5.94945 7.4383 +120.838 6.60347 8.25599 +120.443 7.24389 9.05668 +120.238 7.89362 9.869 +120.918 8.60525 10.7587 +120.793 9.26403 11.5824 +121.155 9.96285 12.4561 +121.11 10.6316 13.2921 +120.759 11.2728 14.0938 +121.189 11.9892 14.9896 +121.017 12.6493 15.8148 +120.639 13.2868 16.6119 +120.94 14.0008 17.5045 +120.74 14.6595 18.328 +121.217 15.4042 19.2591 +121.095 16.0774 20.1007 +120.67 16.7097 20.8914 +121.407 17.5074 21.8886 +121.06 18.1539 22.6969 +120.996 18.8433 23.5589 +120.534 19.4708 24.3434 +120.644 20.1917 25.2447 +121.225 20.9988 26.2538 +121.407 21.7448 27.1865 +121.962 22.5655 28.2125 +121.738 23.2476 29.0654 +121.408 23.9103 29.8938 +121.069 24.5712 30.7201 +121.385 25.3689 31.7175 +120.837 25.9889 32.4926 +121.318 26.8342 33.5495 +121.69 27.6654 34.5886 +120.737 28.1963 35.2525 +120.992 29.0101 36.2699 +121.047 29.7829 37.2361 +120.627 30.4416 38.0596 +120.843 31.2653 39.0894 +120.862 32.0448 40.064 +120.777 32.802 41.0108 +121.319 33.7385 42.1816 +121.48 34.5798 43.2335 +121.083 35.2671 44.0927 +121.307 36.1409 45.1852 +117.293 35.7328 44.675 +114.999 35.8134 44.7757 +111.019 35.3329 44.175 +109.812 35.706 44.6415 +106.66 35.4235 44.2883 +104.667 35.4968 44.3799 +101.981 35.3089 44.145 +100.091 35.3713 44.223 +98.1207 35.3846 44.2397 +95.9855 35.3158 44.1536 +96.6885 36.288 45.3691 +96.6894 37.0095 46.2711 +96.5927 37.7006 47.1352 +96.9057 38.5613 48.2113 +96.2794 39.054 48.8273 +96.147 39.7497 49.6971 +96.0855 40.4818 50.6125 +96.1755 41.287 51.6192 +96.2504 42.0963 52.6309 +96.3913 42.9458 53.693 +95.7876 43.4696 54.3479 +95.9001 44.3244 55.4167 +96.3953 45.3717 56.726 +95.7577 45.8954 57.3808 +95.8221 46.7617 58.4639 +95.8695 47.6322 59.5522 +95.8221 48.4674 60.5964 +95.8358 49.3454 61.6942 +95.9854 50.3076 62.8971 +95.7351 51.0723 63.8531 +95.6972 51.961 64.9642 +95.6416 52.8531 66.0796 +96.2373 54.1247 67.6695 +96.0672 54.9848 68.7448 +96.0999 55.9749 69.9827 +95.822 56.7976 71.0112 +95.6722 57.7083 72.1498 +96.1462 59.0156 73.7843 +95.2473 59.4932 74.3815 +95.7442 60.8566 76.086 +95.4461 61.7356 77.185 +95.3371 62.7517 78.4553 +95.6844 64.0915 80.1304 +95.3258 64.9791 81.2401 +95.5519 66.2852 82.8731 +95.8149 67.6456 84.5739 +95.4566 68.5894 85.7539 +95.0142 69.4869 86.8761 +95.004 70.7199 88.4177 +94.5212 71.6206 89.5438 +94.7127 73.0554 91.3376 +94.6222 74.3021 92.8963 +94.6887 75.7013 94.6456 +94.6015 77.0074 96.2785 +94.4248 78.2685 97.8552 +94.2199 79.5333 99.4366 +94.5159 81.2566 101.591 +94.0739 82.3791 102.995 +94.0665 83.9119 104.911 +94.4766 85.8626 107.35 +94.224 87.2549 109.09 +94.1053 88.807 111.031 +93.9502 90.3642 112.978 +94.1349 92.2949 115.392 +94.0077 93.9701 117.486 +93.684 95.4904 119.387 +93.8914 97.6042 122.03 +93.8946 99.5648 124.481 +93.95 101.642 127.078 +93.462 103.183 129.005 +93.9076 105.819 132.3 +93.38 107.425 134.308 +92.5798 108.757 135.973 +91.2877 109.534 136.945 +88.5735 108.581 135.753 +88.1241 110.401 138.029 +87.9811 112.674 140.87 +87.9965 115.235 144.072 +87.8623 117.691 147.144 +87.7906 120.326 150.438 +87.4891 122.74 153.456 +93.3472 134.096 167.653 +93.2675 137.244 171.59 +92.9538 140.171 175.248 +92.7526 143.394 179.279 +92.6515 146.917 183.683 +92.4948 150.506 188.171 +92.6299 154.749 193.475 +92.448 158.653 198.355 +91.9972 162.271 202.879 +92.0056 166.901 208.668 +91.6059 171.009 213.804 +91.6235 176.135 220.213 +89.6103 177.522 221.947 +88.1501 180.094 225.162 +91.1689 192.246 240.355 +91.0155 198.26 247.874 +87.7344 197.604 247.055 +85.6691 199.704 249.68 +81.674 197.261 246.625 +79.7616 199.82 249.825 +75.9631 197.635 247.093 +73.5815 199.076 248.895 +70.0399 197.335 246.718 +67.8208 199.298 249.173 +64.336 197.518 246.947 +61.9748 199.149 248.986 +58.5158 197.206 246.558 +56.262 199.302 249.178 +52.8482 197.26 246.625 +50.5283 199.268 249.135 +47.0921 196.817 246.071 +44.7163 198.737 248.471 +41.5465 197.115 246.444 +32.99 167.824 209.822 +30.0781 164.894 206.159 +27.7732 165.052 206.356 +25.1978 163.456 204.362 +23.2183 165.765 207.248 +24.6048 195.276 244.144 +22.2244 198.519 248.198 +19.2791 196.887 246.158 +16.669 198.669 248.386 +13.7314 196.443 245.602 +11.0771 198.133 247.716 +8.22218 196.125 245.206 +5.54987 198.599 248.298 +2.73751 195.935 244.968 +1.73195e-14 197.692 247.164 +-2.73751 195.935 244.968 +-5.52369 197.662 247.127 +-8.21694 196 245.05 +-11.0562 197.759 247.248 +-13.7008 196.006 245.057 +-16.5853 197.671 247.138 +-19.1692 195.764 244.754 +-22.1477 197.834 247.342 +-24.7068 196.086 245.157 +-27.6894 197.686 247.157 +-30.1914 195.849 244.861 +-33.2819 197.789 247.286 +-35.659 195.49 244.412 +-38.8398 197.582 247.027 +-41.2463 195.691 244.663 +-44.3545 197.128 246.46 +-46.7226 195.273 244.141 +-49.9808 197.108 246.435 +-52.3201 195.289 244.16 +-55.6369 197.087 246.408 +-57.8598 194.995 243.793 +-61.326 197.064 246.379 +-63.5186 195.008 243.809 +-67.0307 196.977 246.27 +-69.1525 194.835 243.593 +-72.8616 197.128 246.46 +-74.7726 194.537 243.221 +-78.3827 196.365 245.506 +-80.4721 194.358 242.997 +-84.2974 196.506 245.682 +-86.3447 194.474 243.142 +-90.2437 196.578 245.772 +-92.2766 194.582 243.276 +-96.1903 196.52 245.699 +-98.1804 194.499 243.173 +-102.223 196.511 245.688 +-104.362 194.821 243.575 +-108.284 196.429 245.586 +-110.39 194.714 243.441 +-114.337 196.217 245.321 +-116.689 194.943 243.727 +-120.734 196.457 245.62 +-122.741 194.629 243.335 +-127.179 196.617 245.82 +-129.117 194.704 243.429 +-135.584 199.513 249.441 +-137.409 197.391 246.789 +-142.154 199.431 249.338 +-143.152 196.205 245.305 +-143.014 191.567 239.507 +-142.93 187.172 234.012 +-148.432 190.091 237.662 +-150.681 188.772 236.012 +-160.803 197.127 246.458 +-163.828 196.574 245.767 +-1538.22 1807.01 2259.21 +-481.549 553.976 692.608 +-486.119 547.779 684.861 +-489.223 540.106 675.269 +-488.15 528.116 660.277 +-491.703 521.398 651.878 +-479.552 498.513 623.266 +-481.221 490.502 613.25 +-483.18 482.986 603.854 +-487.062 477.542 597.047 +-489.249 470.574 588.335 +-492.714 464.972 581.332 +-495.109 458.489 573.226 +-499.117 453.611 567.127 +-500.904 446.83 558.65 +-504.747 441.998 552.609 +-506.436 435.39 544.346 +-510.893 431.257 539.18 +-512.626 424.914 531.249 +-516.412 420.37 525.567 +-518.51 414.536 518.274 +-522.477 410.276 512.948 +-523.657 403.918 504.998 +-527.945 400.036 500.145 +-530.043 394.559 493.298 +-534.496 390.895 488.717 +-535.803 384.997 481.343 +-140.807 99.4099 124.287 +-141.387 98.082 122.627 +-142.279 96.9852 121.256 +-143.629 96.2056 120.281 +-142.489 93.7877 117.258 +-142.544 92.1993 115.272 +-143.616 91.2849 114.129 +-147.644 92.2212 115.3 +-156.844 96.2725 120.365 +-156.96 94.6759 118.369 +-157.987 93.6453 117.08 +-158.484 92.3118 115.413 +-161.243 92.2887 115.384 +-162.154 91.1968 114.019 +-586.283 323.989 405.068 +-587.315 318.896 398.7 +-592.66 316.169 395.291 +-594.221 311.441 389.379 +-599.012 308.429 385.614 +-600.501 303.737 379.747 +-604.956 300.569 375.787 +-606.926 296.183 370.303 +-612.231 293.434 366.866 +-613.991 288.995 361.317 +-619.131 286.158 357.77 +-620.678 281.671 352.16 +-626.055 278.93 348.733 +-2683.95 1173.86 1467.62 +-384.702 165.148 206.476 +-634.711 267.41 334.33 +-135.673 56.0908 70.1276 +-642.17 260.485 325.671 +-647.472 257.646 322.122 +-383.742 149.776 187.258 +-383.262 146.7 183.412 +-383.325 143.865 179.868 +-383.511 141.104 176.416 +-665.454 239.978 300.033 +-671.479 237.296 296.679 +-384.22 133.029 166.32 +-381.758 129.47 161.87 +-380.462 126.357 157.978 +-382.302 124.308 155.416 +-381.974 121.567 151.989 +-382.047 118.979 148.753 +-681.376 207.579 259.526 +-114.628 34.151 42.6973 +-113.742 33.1289 41.4194 +-111.197 31.6529 39.574 +-111.453 30.9948 38.7512 +-110.506 30.0125 37.5231 +-109.54 29.0429 36.3109 +-109.665 28.373 35.4734 +-109.686 27.6806 34.6077 +-109.51 26.9443 33.6871 +-109.136 26.1673 32.7157 +-109.216 25.5058 31.8886 +-109.474 24.8881 31.1164 +-109.629 24.2488 30.317 +-109.964 23.6503 29.5688 +-110.29 23.05 28.8183 +-110.037 22.3322 27.9208 +-110.822 21.8254 27.2873 +-110.74 21.1475 26.4396 +-112.853 20.8801 26.1054 +-112.66 20.1781 25.2277 +-114.19 19.7802 24.7303 +-114.752 19.2056 24.0118 +-116.565 18.8296 23.5418 +-118.861 18.5108 23.1432 +-133.798 20.0641 25.0851 +-160.186 23.0996 28.8804 +-162.065 22.4419 28.058 +-160.416 21.2979 26.6278 +-163.745 20.8088 26.0162 +-3216.3 390.503 488.226 +-860.938 99.6673 124.609 +-866.828 95.4698 119.361 +-380.016 39.7212 49.6615 +-381.742 37.7656 47.2165 +-381.167 35.5818 44.4862 +-902.629 79.2366 99.0656 +-405.005 33.3046 41.6391 +-405.058 31.0653 38.8395 +-405.179 28.8351 36.0511 +-404.87 26.5797 33.2313 +-404.529 24.33 30.4185 +-404.555 22.1077 27.6402 +-404.948 19.9067 24.8883 +-404.612 17.6725 22.095 +-403.546 15.4168 19.2748 +-404.245 13.2329 16.5445 +-404.215 11.0235 13.7822 +-403.754 8.80675 11.0106 +-145.95 2.38719 2.98458 +-145.478 1.58611 1.98304 +-145.794 0.794721 0.993601 +120 6.21725e-15 5.68434e-14 +119.895 0.66089 0.811166 +120.082 1.32393 1.62497 +120.659 1.9957 2.44949 +120.527 2.65849 3.26299 +120.685 3.32824 4.08503 +120.335 3.98341 4.88918 +120.275 4.64655 5.70311 +120.406 5.31815 6.52741 +120.926 6.01136 7.37825 +120.838 6.67768 8.19608 +120.542 7.33136 8.9984 +121.232 8.04834 9.8784 +120.918 8.70196 10.6806 +121.488 9.42202 11.5644 +121.254 10.0831 12.3758 +121.011 10.7423 13.1849 +121.649 11.4836 14.0947 +120.992 12.1042 14.8565 +120.82 12.7707 15.6745 +120.54 13.4252 16.4778 +120.842 14.1466 17.3633 +120.642 14.8122 18.1802 +121.119 15.5648 19.104 +121.095 16.2581 19.9549 +120.768 16.9112 20.7566 +121.309 17.6899 21.7123 +121.157 18.3727 22.5503 +120.608 18.9939 23.3129 +121.018 19.7687 24.2638 +120.837 20.4514 25.1017 +120.454 21.0998 25.8975 +121.119 21.937 26.9251 +121.099 22.6576 27.8095 +121.642 23.4904 28.8318 +121.408 24.179 29.6769 +120.974 24.8278 30.4733 +121.385 25.654 31.4873 +121.877 26.5071 32.5345 +121.318 27.1358 33.306 +121.314 27.8899 34.2316 +120.924 28.5575 35.051 +120.619 29.2456 35.8955 +121.14 30.1408 36.9944 +120.441 30.7364 37.7254 +120.843 31.6167 38.8058 +120.494 32.3062 39.6522 +120.685 33.1455 40.6822 +121.136 34.0663 41.8125 +120.843 34.7851 42.6948 +121.355 35.7435 43.8711 +121.127 36.4927 44.7905 +118.641 36.5498 44.8606 +116.341 36.6386 44.9697 +113.425 36.5043 44.8048 +110.433 36.3114 44.5681 +107.72 36.1774 44.4036 +106.073 36.378 44.6498 +103.118 36.1039 44.3133 +101.396 36.2354 44.4748 +98.9001 36.0665 44.2675 +97.5364 36.2897 44.5414 +95.917 36.4031 44.6806 +96.6041 37.3924 45.8949 +95.8294 37.8231 46.4235 +95.7249 38.5195 47.2783 +96.1955 39.4585 48.4308 +95.7301 40.0221 49.1225 +96.0855 40.9368 50.2452 +96.1755 41.751 51.2446 +96.2504 42.5694 52.249 +96.3913 43.4284 53.3034 +95.7876 43.9581 53.9535 +95.9001 44.8226 55.0145 +95.9161 45.6536 56.0345 +95.7577 46.4112 56.9644 +95.9797 47.365 58.1351 +95.8695 48.1675 59.12 +95.9775 49.0916 60.2543 +95.9901 49.9803 61.3451 +95.9854 50.873 62.4407 +95.7351 51.6462 63.3898 +95.8481 52.6278 64.5945 +95.6416 53.4471 65.6001 +95.5684 54.3526 66.7116 +96.0672 55.6027 68.246 +95.9536 56.5179 69.3692 +95.7494 57.3924 70.4426 +95.6003 58.3129 71.5724 +95.5042 59.2804 72.7598 +95.318 60.2065 73.8965 +95.7442 61.5405 75.5339 +95.5155 62.4748 76.6807 +95.2683 63.4114 77.8302 +95.0024 64.3501 78.9823 +95.2582 65.6626 80.5933 +94.9496 66.6075 81.7531 +95.2848 68.0275 83.4958 +95.391 69.3128 85.0735 +94.9493 70.2199 86.1868 +95.004 71.5147 87.7761 +95.1573 72.9132 89.4925 +94.5869 73.7785 90.5546 +94.6845 75.1871 92.2835 +94.6887 76.552 93.9588 +94.6624 77.9227 95.6411 +94.7257 79.4001 97.4545 +94.3389 80.5288 98.8399 +94.2808 81.9652 100.603 +94.3062 83.5102 102.499 +94.2386 85.0103 104.34 +94.0234 86.4113 106.06 +94.1681 88.183 108.234 +94.0501 89.752 110.16 +94.0047 91.4328 112.223 +94.1349 93.3321 114.554 +94.0077 95.0262 116.634 +93.7885 96.6716 118.653 +93.8914 98.7011 121.144 +93.8946 100.684 123.578 +93.95 102.784 126.155 +93.5112 104.398 128.136 +93.4713 106.511 130.73 +93.8094 109.131 133.946 +93.3779 110.927 136.15 +92.2574 111.942 137.396 +89.7085 111.208 136.495 +88.2133 111.755 137.167 +87.5866 113.429 139.221 +88.0395 116.587 143.097 +87.6933 118.785 145.795 +87.8735 121.793 149.487 +91.0683 129.197 158.575 +92.9883 135.081 165.796 +93.2675 138.787 170.345 +92.9538 141.746 173.977 +92.7151 144.947 177.906 +92.6515 148.568 182.35 +92.4948 152.198 186.805 +92.4547 156.192 191.708 +92.4138 160.376 196.843 +92.0639 164.214 201.554 +91.7777 168.358 206.64 +91.8597 173.41 212.841 +90.6038 176.132 216.182 +89.3698 179.035 219.744 +87.1268 180.004 220.934 +91.1121 194.285 238.462 +90.161 198.605 243.765 +87.0128 198.182 243.245 +84.168 198.41 243.525 +81.048 197.949 242.959 +78.3343 198.449 243.574 +75.1227 197.645 242.587 +72.4117 198.113 243.161 +69.2823 197.395 242.279 +66.7397 198.325 243.421 +63.4588 197.014 241.812 +60.9062 197.914 242.917 +57.8598 197.187 242.024 +55.2896 198.058 243.094 +52.2541 197.234 242.082 +49.5272 197.515 242.426 +46.5747 196.843 241.602 +43.9369 197.468 242.369 +40.5414 194.509 238.737 +32.8682 169.083 207.53 +30.0102 166.371 204.201 +27.4596 165.022 202.546 +25.4662 167.054 205.039 +25.6412 185.121 227.214 +24.4635 196.338 240.982 +21.8408 197.284 242.143 +19.0655 196.892 241.663 +16.3812 197.432 242.325 +13.5744 196.379 241.032 +10.8886 196.951 241.735 +8.15412 196.688 241.412 +5.44166 196.915 241.691 +2.71395 196.432 241.098 +1.74305e-14 196.566 241.262 +-2.70959 196.116 240.71 +-5.43293 196.599 241.303 +-8.13056 196.12 240.715 +-10.8677 196.572 241.27 +-13.5482 196 240.567 +-16.3498 197.053 241.86 +-18.9678 195.884 240.425 +-21.778 196.717 241.447 +-24.4479 196.212 240.827 +-27.21 196.447 241.116 +-29.8464 195.786 240.305 +-32.7279 196.683 241.405 +-35.2741 195.553 240.019 +-38.1817 196.417 241.08 +-40.7503 195.51 239.966 +-43.589 195.904 240.449 +-46.2052 195.281 239.685 +-49.1517 196.018 240.589 +-51.6929 195.116 239.483 +-54.5776 195.508 239.963 +-57.2037 194.951 239.28 +-60.1812 195.558 240.025 +-62.8208 195.033 239.381 +-65.8664 195.73 240.236 +-68.4382 194.99 239.328 +-71.4669 195.528 239.988 +-74.0956 194.943 239.269 +-77.0763 195.262 239.662 +-79.7711 194.83 239.131 +-82.9256 195.481 239.931 +-85.6499 195.078 239.435 +-88.5623 195.083 239.442 +-91.2257 194.528 238.76 +-94.6992 195.648 240.135 +-97.0979 194.516 238.746 +-100.554 195.476 239.924 +-103.378 195.154 239.528 +-106.526 195.412 239.846 +-109.188 194.758 239.043 +-112.49 195.217 239.607 +-115.218 194.649 238.909 +-118.799 195.481 239.93 +-121.459 194.759 239.045 +-125.119 195.605 240.083 +-127.472 194.383 238.583 +-131.09 195.068 239.424 +-135.934 197.467 242.367 +-139.958 198.556 243.705 +-143.028 198.237 243.313 +-143.014 193.72 237.769 +-142.714 188.991 231.964 +-144.531 187.175 229.735 +-149.387 189.254 232.287 +-156.672 194.22 238.383 +-160.781 195.086 239.445 +-1538.22 1827.32 2242.82 +-479.258 557.537 684.312 +-486.167 553.99 679.959 +-489.124 546.067 670.234 +-494.15 540.615 663.542 +-488.1 523.394 642.406 +-479.037 503.574 618.079 +-482.423 497.253 610.321 +-484.664 489.914 601.314 +-488.083 483.922 593.958 +-491.319 477.875 586.537 +-494.536 471.936 579.247 +-497.122 465.526 571.38 +-499.967 459.489 563.97 +-502.854 453.612 556.756 +-505.676 447.789 549.609 +-508.493 442.072 542.592 +-511.607 436.713 536.015 +-513.89 430.749 528.695 +-517.691 426.146 523.045 +-519.803 420.24 515.796 +-523.908 416.024 510.622 +-526.489 410.666 504.045 +-529.281 405.555 497.772 +-531.971 400.445 491.5 +-535.665 396.153 486.232 +-538.1 390.992 479.898 +-141.337 100.905 123.85 +-142.792 100.17 122.947 +-142.955 98.5406 120.947 +-143.492 97.1946 119.295 +-142.283 94.7047 116.239 +-143.169 93.6442 114.937 +-146.77 94.3383 115.789 +-151.179 95.4905 117.204 +-156.986 97.4428 119.6 +-157.104 95.8277 117.618 +-158.277 94.8714 116.444 +-159.728 94.0813 115.474 +-162.275 93.9227 115.279 +-583.517 331.863 407.324 +-587.331 328.216 402.848 +-589.806 323.847 397.485 +-593.117 319.968 392.724 +-596.136 315.956 387.8 +-600.478 312.658 383.752 +-603.298 308.581 378.748 +-606.834 304.891 374.218 +-609.842 300.95 369.382 +-613.024 297.116 364.676 +-616.307 293.346 360.049 +-620.577 290.05 356.003 +-623.428 286.099 351.153 +-627.764 282.835 347.147 +-630.911 279.038 342.487 +-385.938 167.541 205.637 +-383.596 163.429 200.591 +-642.259 268.511 329.566 +-135.361 55.524 68.1493 +-648.737 261.05 320.409 +-384.335 151.694 186.186 +-382.835 148.184 181.878 +-382.982 145.352 178.403 +-382.563 142.338 174.703 +-385.121 140.445 172.38 +-672.785 240.429 295.099 +-675.819 236.619 290.423 +-382.285 131.105 160.917 +-381.433 128.104 157.233 +-381.858 125.559 154.109 +-382.42 123.077 151.062 +-382.495 120.457 147.847 +-2944.9 907.235 1113.53 +-114.087 34.3716 42.1872 +-113.017 33.2877 40.8568 +-111.652 32.1396 39.4476 +-110.448 31.0605 38.1232 +-109.68 30.1231 36.9726 +-109.632 29.394 36.0777 +-109.11 28.5468 35.0379 +-108.759 27.7551 34.0661 +-108.859 27.085 33.2438 +-108.949 26.4161 32.4227 +-108.841 25.704 31.5486 +-109.286 25.1246 30.8376 +-109.346 24.458 30.0194 +-110.058 23.9366 29.3795 +-110.29 23.309 28.6091 +-110.323 22.6417 27.7901 +-110.822 22.0707 27.0892 +-112.175 21.6622 26.5878 +-112.182 20.9892 25.7618 +-113.333 20.5267 25.1942 +-114.383 20.0363 24.5923 +-115.138 19.4868 23.9178 +-116.759 19.0728 23.4097 +-120.123 18.9175 23.2191 +-159.469 24.1823 29.681 +-161.258 23.5155 28.8626 +-161.186 22.5711 27.7034 +-161.688 21.708 26.6441 +-163.941 21.0679 25.8584 +-853.917 104.842 128.682 +-861.823 100.891 123.832 +-870.964 97.0032 119.06 +-380.903 40.2615 49.4164 +-382.334 38.2494 46.9467 +-380.474 35.9164 44.0832 +-904.61 80.3033 98.5631 +-405.501 33.7201 41.3876 +-403.47 31.2913 38.4065 +-403.291 29.0233 35.6227 +-403.875 26.8124 32.9091 +-404.23 24.5853 30.1756 +-405.252 22.3947 27.487 +-403.951 20.0808 24.6469 +-403.315 17.8138 21.8644 +-403.546 15.59 19.135 +-404.145 13.3784 16.4204 +-404.115 11.1446 13.6787 +-404.653 8.92556 10.9551 +-146.95 2.43055 2.98322 +-144.578 1.59402 1.95647 +-146.194 0.805857 0.989096 +120.1 6.21725e-15 5.68434e-14 +119.895 0.668181 0.80517 +120.082 1.33854 1.61296 +120.659 2.01772 2.43139 +120.527 2.68782 3.23887 +120.685 3.36496 4.05484 +120.435 4.03071 4.85708 +120.874 4.72121 5.68914 +120.406 5.37682 6.47917 +121.026 6.08268 7.32975 +120.838 6.75135 8.13551 +120.542 7.41224 8.9319 +121.232 8.13713 9.80539 +120.918 8.79796 10.6017 +121.488 9.52597 11.479 +121.254 10.1943 12.2844 +121.11 10.8697 13.0981 +120.759 11.5253 13.8882 +120.992 12.2377 14.7467 +120.82 12.9115 15.5587 +121.328 13.662 16.463 +120.94 14.3144 17.2491 +120.642 14.9756 18.0459 +120.335 15.6346 18.84 +120.214 16.3179 19.6633 +120.768 17.0978 20.6032 +120.432 17.7558 21.3961 +121.157 18.5753 22.3836 +120.608 19.2035 23.1406 +121.115 20.0028 24.1037 +120.837 20.677 24.9162 +120.55 21.3496 25.7267 +121.119 22.179 26.7261 +121.099 22.9075 27.604 +121.642 23.7496 28.6187 +121.408 24.4457 29.4576 +120.974 25.1017 30.248 +121.385 25.937 31.2546 +121.026 26.6125 32.0685 +121.318 27.4351 33.0598 +121.314 28.1975 33.9786 +120.831 28.8502 34.7651 +120.899 29.6368 35.713 +120.954 30.4265 36.6646 +120.534 31.0994 37.4754 +120.936 31.9899 38.5485 +121.415 32.9121 39.6597 +121.419 33.7149 40.6271 +121.227 34.4682 41.5348 +121.025 35.2218 42.443 +121.264 36.1108 43.5143 +121.939 37.1426 44.7576 +120.259 37.4569 45.1363 +116.341 37.0428 44.6373 +113.425 36.907 44.4736 +110.522 36.7415 44.2743 +108.426 36.8164 44.3644 +106.161 36.8098 44.3565 +103.905 36.7808 44.3216 +101.571 36.698 44.2218 +98.8135 36.4325 43.9019 +97.3641 36.6252 44.1341 +95.317 36.5744 44.0729 +96.6894 37.8383 45.5958 +95.9142 38.2742 46.1211 +95.6406 38.9102 46.8875 +96.0278 39.8243 47.989 +95.6467 40.4284 48.717 +96.7487 41.6741 50.2181 +96.1755 42.2116 50.8658 +96.2504 43.039 51.8629 +96.3099 43.8705 52.8648 +96.4348 44.7433 53.9166 +95.9001 45.3171 54.6079 +95.8363 46.1188 55.574 +96.6304 47.3508 57.0587 +95.9797 47.8876 57.7055 +95.8695 48.6989 58.6831 +95.8221 49.5528 59.7121 +95.9901 50.5317 60.8917 +95.8322 51.3521 61.8803 +95.7351 52.216 62.9213 +95.6972 53.1246 64.0162 +95.6416 54.0367 65.1153 +96.2373 55.3368 66.6819 +95.9935 56.173 67.6895 +95.9536 57.1414 68.8565 +95.7494 58.0256 69.922 +95.6003 58.9562 71.0434 +95.6469 60.0239 72.3299 +95.8837 61.232 73.7857 +95.7442 62.2194 74.9756 +95.5155 63.1641 76.1139 +95.8878 64.528 77.7575 +95.6162 65.4802 78.9049 +95.2582 66.387 79.9976 +94.9496 67.3423 81.1488 +95.2848 68.7779 82.8787 +95.3254 70.029 84.3863 +94.9493 70.9945 85.5498 +95.1326 72.402 87.2458 +95.2209 73.7667 88.8903 +94.7127 74.6914 90.0046 +94.6845 76.0165 91.6014 +94.6887 77.3966 93.2644 +94.6624 78.7823 94.9342 +94.485 80.0723 96.4887 +94.3389 81.4172 98.1093 +94.3395 82.9212 99.9216 +93.7835 83.964 101.178 +94.1239 85.8434 103.443 +94.5898 87.8908 105.91 +94.1122 89.1029 107.371 +93.9949 90.6892 109.282 +93.7868 92.2269 111.135 +93.6513 93.8771 113.124 +94.0077 96.0745 115.772 +94.0497 98.0102 118.104 +93.8914 99.79 120.249 +93.7931 101.685 122.532 +93.4 103.31 124.49 +93.4127 105.438 127.055 +93.4228 107.63 129.696 +93.8094 110.335 132.956 +93.3309 112.095 135.076 +91.888 112.724 135.834 +89.8447 112.606 135.692 +88.1687 112.931 136.084 +87.7181 114.853 138.4 +87.566 117.239 141.276 +87.9891 120.501 145.206 +87.9564 123.253 148.522 +92.1258 132.139 159.23 +93.068 136.689 164.712 +93.1894 140.2 168.943 +92.9155 143.251 172.62 +92.6777 146.487 176.519 +92.6515 150.207 181.002 +92.5306 153.936 185.496 +92.2796 157.616 189.931 +92.1402 161.665 194.81 +92.0973 166.086 200.136 +91.7777 170.215 205.113 +91.7645 175.141 211.048 +90.4802 177.832 214.291 +89.3698 181.01 218.12 +87.2145 182.173 219.522 +91.3961 197.041 237.438 +89.8027 199.998 241.002 +86.8257 199.938 240.929 +83.7797 199.673 240.61 +81.048 200.132 241.163 +78.0682 199.957 240.952 +75.1461 199.888 240.869 +72.2318 199.801 240.764 +69.4338 200.009 241.015 +66.5525 199.951 240.945 +63.6582 199.814 240.779 +60.7536 199.597 240.518 +57.9873 199.802 240.765 +55.1159 199.614 240.539 +52.2376 199.347 240.217 +49.402 199.189 240.027 +46.693 199.52 240.425 +43.8395 199.203 240.044 +40.8808 198.301 238.956 +33.0388 171.836 207.065 +29.9989 168.143 202.616 +27.4596 166.843 201.049 +25.3224 167.943 202.375 +26.4256 192.889 232.434 +24.5106 198.886 239.661 +21.7919 199.015 239.817 +19.0655 199.065 239.877 +16.3027 198.653 239.381 +13.618 199.183 240.02 +10.8886 199.124 239.948 +8.15674 198.922 239.704 +5.4277 198.577 239.289 +2.71483 198.663 239.393 +1.79856e-14 198.798 239.556 +-2.71657 198.791 239.546 +-5.41897 198.257 238.904 +-8.15412 198.858 239.627 +-10.8398 198.231 238.872 +-13.5831 198.673 239.405 +-16.2608 198.143 238.766 +-19.0166 198.555 239.263 +-21.7222 198.377 239.049 +-24.44 198.313 238.971 +-27.1403 198.105 238.721 +-29.923 198.455 239.142 +-32.5502 197.773 238.32 +-35.3534 198.155 238.78 +-38.072 198.013 238.61 +-40.8678 198.237 238.879 +-43.4916 197.623 238.139 +-46.3383 198.004 238.598 +-49.0109 197.612 238.127 +-51.7094 197.331 237.788 +-54.5603 197.602 238.114 +-57.2402 197.227 237.663 +-60.1048 197.465 237.95 +-62.9604 197.623 238.14 +-65.7001 197.39 237.859 +-68.5897 197.577 238.084 +-71.2195 197.001 237.39 +-74.1189 197.155 237.576 +-76.8828 196.921 237.293 +-79.9714 197.474 237.96 +-82.6668 197.021 237.414 +-85.6499 197.23 237.666 +-88.5623 197.236 237.673 +-91.4813 197.225 237.66 +-94.4068 197.196 237.625 +-97.3685 197.211 237.643 +-100.245 197.025 237.419 +-103.632 197.791 238.342 +-106.331 197.206 237.637 +-109.489 197.448 237.929 +-112.217 196.891 237.257 +-115.533 197.335 237.792 +-118.512 197.16 237.582 +-121.752 197.384 237.851 +-124.482 196.757 237.096 +-127.816 197.059 237.46 +-130.778 196.75 237.088 +-136.332 200.231 241.282 +-139.511 200.105 241.13 +-143.318 200.831 242.005 +-143.056 195.915 236.081 +-142.801 191.191 230.389 +-144.399 189.068 227.83 +-149.566 191.571 230.846 +-156.672 196.363 236.621 +-162.166 198.937 239.723 +-1538.22 1847.48 2226.24 +-480.165 564.754 680.54 +-486.749 560.772 675.741 +-489.371 552.369 665.615 +-492.9 545.196 656.972 +-490.333 531.589 640.575 +-479.5 509.623 614.105 +-481.953 502.248 605.219 +-485.406 496.077 597.783 +-488.083 489.26 589.568 +-491.646 483.469 582.589 +-493.763 476.397 574.067 +-497.122 470.662 567.157 +-500.137 464.716 559.992 +-502.854 458.616 552.641 +-506.025 453.04 545.922 +-508.787 447.207 538.893 +-511.607 441.531 532.053 +-514.732 436.215 525.647 +-517.691 430.847 519.18 +-520.665 425.581 512.833 +-523.535 420.314 506.486 +-526.301 415.048 500.14 +-529.281 410.03 494.093 +-532.55 405.303 488.398 +-535.665 400.523 482.638 +-538.69 395.739 476.874 +-141.403 102.067 122.992 +-142.926 101.37 122.153 +-142.82 99.5332 119.939 +-143.083 97.9865 118.076 +-142.283 95.7495 115.38 +-142.822 94.4474 113.811 +-146.77 95.3791 114.934 +-151.887 96.996 116.882 +-156.558 98.2496 118.393 +-157.751 97.2847 117.23 +-158.277 95.9181 115.583 +-160.825 95.7725 115.408 +-161.759 94.6568 114.063 +-583.294 335.397 404.16 +-586.657 331.456 399.411 +-590.107 327.588 394.75 +-592.812 323.333 389.622 +-597.055 319.935 385.528 +-599.707 315.702 380.426 +-603.298 311.986 375.949 +-606.365 308.015 371.164 +-609.842 304.271 366.652 +-613.262 300.511 362.122 +-616.866 296.851 357.711 +-620.176 293.06 353.143 +-623.833 289.443 348.784 +-627.032 285.621 344.179 +-630.911 282.117 339.956 +-386.268 169.534 204.292 +-382.518 164.768 198.549 +-641.091 270.979 326.535 +-135.529 56.2061 67.7295 +-648.821 263.965 318.083 +-384.59 153.469 184.933 +-382.835 149.818 180.534 +-385.125 147.778 178.075 +-382.563 143.908 173.412 +-384.429 141.739 170.798 +-671.915 242.767 292.539 +-676.606 239.509 288.613 +-382.11 132.491 159.654 +-380.197 129.097 155.564 +-381.858 126.944 152.97 +-381.974 124.289 149.771 +-382.495 121.785 146.754 +-114.776 35.7492 43.0785 +-113.997 34.7233 41.8423 +-113.017 33.6549 40.5548 +-111.652 32.4942 39.1561 +-110.539 31.4291 37.8727 +-109.68 30.4554 36.6994 +-108.804 29.4937 35.5404 +-109.11 28.8618 34.779 +-109.593 28.2765 34.0738 +-108.766 27.3605 32.9699 +-109.696 26.8906 32.4037 +-109.684 26.1888 31.558 +-109.286 25.4018 30.6097 +-109.535 24.7705 29.849 +-110.058 24.2007 29.1623 +-110.195 23.5459 28.3733 +-110.227 22.8718 27.5609 +-110.822 22.3142 26.889 +-111.314 21.7331 26.1888 +-112.182 21.2208 25.5714 +-113.333 20.7532 25.008 +-113.419 20.0867 24.2049 +-115.235 19.7183 23.761 +-117.436 19.3952 23.3716 +-120.22 19.1417 23.0661 +-156.649 24.0167 28.9406 +-159.894 23.5738 28.4069 +-161.186 22.8201 27.4987 +-161.297 21.8944 26.3831 +-165.215 21.4657 25.8666 +-854.408 106.06 127.804 +-861.233 101.934 122.833 +-869.191 97.8741 117.94 +-380.903 40.7057 49.0511 +-381.84 38.6214 46.5395 +-381.167 36.3787 43.837 +-905.402 81.2601 97.92 +-405.798 34.1172 41.1119 +-405.356 31.7843 38.3008 +-403.986 29.394 35.4204 +-405.268 27.2016 32.7785 +-404.529 24.8748 29.9746 +-404.555 22.6028 27.2368 +-404.848 20.3474 24.519 +-404.512 18.0638 21.7673 +-403.546 15.762 18.9935 +-404.046 13.5226 16.2949 +-404.515 11.2788 13.5911 +-404.354 9.01732 10.866 +-143.551 2.40053 2.89268 +-145.178 1.61829 1.95007 +-145.294 0.809734 0.975745 +120 6.21725e-15 5.68434e-14 +119.895 0.675417 0.79911 +119.982 1.35191 1.59949 +120.659 2.03957 2.41309 +120.626 2.71918 3.21716 +120.685 3.4014 4.02432 +121.234 4.10139 4.8525 +121.074 4.78022 5.65565 +120.406 5.43505 6.4304 +120.228 6.10805 7.22665 +120.838 6.82447 8.07427 +120.542 7.49252 8.86466 +121.232 8.22525 9.73159 +120.719 8.87865 10.5046 +121.488 9.62914 11.3926 +121.254 10.3047 12.1919 +121.011 10.9784 12.9889 +120.759 11.6501 13.7836 +120.992 12.3703 14.6357 +120.82 13.0514 15.4415 +120.54 13.7203 16.2329 +120.94 14.4694 17.1193 +120.642 15.1378 17.91 +121.119 15.9069 18.82 +120.997 16.602 19.6424 +120.67 17.269 20.4315 +120.53 17.9626 21.2522 +121.157 18.7765 22.2152 +120.608 19.4115 22.9664 +121.309 20.2517 23.9605 +120.741 20.8842 24.7088 +120.454 21.5636 25.5126 +121.023 22.4014 26.5039 +121.003 23.1373 27.3745 +120.877 23.8558 28.2247 +121.408 24.7105 29.2358 +121.83 25.5531 30.2328 +121.48 26.2384 31.0435 +121.688 27.0478 32.0012 +121.318 27.7322 32.811 +121.126 28.4588 33.6706 +120.831 29.1627 34.5034 +120.712 29.9116 35.3895 +120.954 30.7561 36.3886 +121.368 31.6539 37.4508 +120.843 32.3117 38.229 +120.494 33.0164 39.0628 +121.419 34.08 40.3212 +121.136 34.8152 41.1911 +120.934 35.5765 42.0918 +121.355 36.5292 43.219 +121.127 37.2948 44.1248 +118.731 37.3815 44.2273 +116.252 37.4152 44.2673 +113.425 37.3067 44.1389 +110.433 37.1096 43.9057 +108.514 37.2455 44.0664 +106.161 37.2085 44.0226 +103.118 36.8975 43.6547 +101.483 37.0637 43.8514 +98.8135 36.8271 43.5714 +96.6748 36.7598 43.4918 +95.4884 37.037 43.8198 +96.6041 38.2144 45.2128 +95.7446 38.6203 45.693 +96.3153 39.609 46.8628 +96.4471 40.4314 47.8358 +96.4806 41.2225 48.7718 +96.7487 42.1254 49.84 +96.1755 42.6688 50.483 +96.2504 43.5052 51.4725 +96.3913 44.3831 52.5112 +95.7876 44.9244 53.1516 +95.9001 45.8079 54.1969 +96.555 46.9679 55.5693 +95.9164 47.51 56.2108 +95.8221 48.3267 57.177 +96.026 49.3067 58.3364 +95.8221 50.0895 59.2626 +95.9901 51.079 60.4334 +95.9854 51.9913 61.5127 +95.7351 52.7815 62.4477 +95.8481 53.7847 63.6345 +95.6416 54.622 64.6252 +95.5684 55.5474 65.7201 +95.9935 56.7814 67.18 +95.9536 57.7602 68.3382 +95.7494 58.654 69.3956 +95.6003 59.5947 70.5086 +95.5042 60.5835 71.6785 +95.2473 61.4843 72.7443 +95.6741 62.8473 74.3568 +95.4461 63.8017 75.4861 +95.3371 64.8518 76.7285 +95.6162 66.1893 78.3109 +95.3258 67.1538 79.452 +95.0165 68.1201 80.5953 +95.2848 69.5228 82.2549 +95.391 70.8365 83.8091 +94.9493 71.7634 84.9058 +95.004 73.0868 86.4715 +95.1573 74.5159 88.1624 +94.5869 75.4003 89.2087 +94.6222 76.7888 90.8516 +94.6272 78.1838 92.502 +94.6015 79.5846 94.1593 +94.485 80.9395 95.7624 +94.3984 82.3507 97.4319 +94.3395 83.8192 99.1695 +94.3642 85.3988 101.038 +94.0092 86.6673 102.539 +94.0234 88.3108 104.484 +94.1122 90.0679 106.562 +94.1053 91.7792 108.587 +93.8958 93.3342 110.427 +93.7051 94.948 112.336 +93.9017 97.0053 114.77 +93.5795 98.5765 116.629 +93.8914 100.871 119.344 +93.7931 102.786 121.61 +93.9 104.988 124.215 +93.4127 106.58 126.098 +93.9076 109.361 129.388 +93.38 111.02 131.352 +93.7535 113.822 134.667 +92.3035 114.46 135.421 +89.7085 113.653 134.467 +88.1687 114.154 135.059 +88.0688 116.561 137.907 +88.0395 119.15 140.971 +88.0314 121.864 144.182 +87.832 124.412 147.196 +91.6378 132.863 157.195 +92.9883 138.05 163.332 +92.8768 141.243 167.11 +92.9155 144.802 171.321 +93.0148 148.612 175.828 +92.6515 151.833 179.639 +92.4948 155.543 184.029 +92.2796 159.323 188.501 +92.1402 163.416 193.343 +92.0306 167.762 198.486 +91.973 172.425 204.002 +91.7645 177.038 209.46 +90.6656 180.127 213.114 +89.3698 182.97 216.479 +87.1268 183.96 217.65 +91.1121 198.556 234.918 +90.1059 202.847 239.995 +87.0663 202.663 239.777 +84.1938 202.834 239.98 +81.048 202.3 239.348 +78.0682 202.122 239.138 +75.0994 201.927 238.907 +72.2093 201.902 238.878 +69.4122 202.112 239.126 +66.5733 202.18 239.206 +63.6582 201.978 238.967 +60.9253 202.329 239.382 +58.0056 202.029 239.028 +55.1159 201.776 238.729 +52.2376 201.506 238.409 +49.5428 201.92 238.899 +46.693 201.681 238.616 +43.9648 201.936 238.918 +40.9852 200.96 237.763 +32.8925 172.928 204.597 +29.9989 169.964 201.091 +27.4596 168.65 199.536 +25.3129 169.698 200.775 +25.9898 191.762 226.881 +24.4714 200.718 237.477 +21.778 201.041 237.859 +19.0655 201.22 238.071 +16.3864 201.836 238.8 +13.6092 201.211 238.06 +10.8886 201.281 238.142 +8.15412 201.011 237.824 +5.4277 200.727 237.488 +2.71395 200.75 237.514 +1.79856e-14 200.887 237.676 +-2.71657 200.944 237.743 +-5.43293 200.921 237.717 +-8.15412 201.011 237.824 +-10.8677 200.893 237.684 +-13.5831 200.825 237.603 +-16.2974 200.74 237.503 +-19.0227 200.77 237.538 +-21.7919 201.17 238.011 +-24.4322 200.396 237.096 +-27.21 200.765 237.533 +-29.923 200.605 237.342 +-32.6338 200.428 237.134 +-35.3534 200.301 236.983 +-38.072 200.158 236.814 +-40.8808 200.448 237.158 +-43.589 200.21 236.876 +-46.3383 200.148 236.802 +-49.0266 199.816 236.41 +-51.8745 200.106 236.752 +-54.5603 199.742 236.322 +-57.4042 199.935 236.55 +-60.2002 199.92 236.533 +-62.9803 199.827 236.422 +-65.6793 199.465 235.994 +-68.5897 199.717 236.292 +-71.422 199.7 236.272 +-74.0956 199.228 235.713 +-77.1005 199.617 236.174 +-79.9964 199.675 236.243 +-82.9515 199.84 236.438 +-85.6499 199.366 235.877 +-88.5347 199.31 235.81 +-91.4813 199.361 235.871 +-94.67 199.887 236.493 +-97.3685 199.347 235.854 +-100.554 199.773 236.358 +-103.346 199.382 235.896 +-106.558 199.769 236.353 +-109.489 199.587 236.138 +-112.525 199.569 236.117 +-115.183 198.867 235.286 +-118.476 199.236 235.722 +-121.788 199.582 236.132 +-124.781 199.367 235.878 +-127.816 199.193 235.672 +-131.09 199.356 235.865 +-136.372 202.459 239.536 +-139.592 202.39 239.455 +-143.277 202.947 240.114 +-143.014 197.979 234.235 +-142.801 193.262 228.655 +-144.575 191.347 226.39 +-149.164 193.126 228.494 +-156.491 198.259 234.568 +-161.012 199.661 236.226 +-1538.22 1867.49 2209.49 +-480.594 571.381 676.021 +-486.167 566.168 669.853 +-489.666 558.689 661.004 +-493.9 552.219 653.35 +-490.485 537.513 635.95 +-479.037 514.644 608.893 +-482.423 508.183 601.25 +-484.929 500.957 592.7 +-488.567 495.049 585.71 +-490.611 487.676 576.986 +-493.763 481.556 569.746 +-496.955 475.599 562.698 +-499.457 469.111 555.021 +-502.854 463.583 548.481 +-505.502 457.474 541.254 +-508.611 451.893 534.651 +-511.607 446.313 528.048 +-513.89 440.218 520.837 +-517.508 435.36 515.09 +-520.296 429.885 508.612 +-523.348 424.715 502.495 +-526.301 419.543 496.376 +-529.281 414.47 490.374 +-531.971 409.247 484.195 +-535.275 404.567 478.657 +-538.887 400.171 473.457 +-141.403 103.172 122.066 +-142.792 102.372 121.119 +-142.82 100.611 119.037 +-143.356 99.2369 117.411 +-142.283 96.7865 114.511 +-142.474 95.2385 112.68 +-147.051 96.5961 114.286 +-151.533 97.818 115.732 +-156.986 99.5848 117.822 +-157.967 98.4726 116.506 +-158.277 96.9569 114.713 +-160.093 96.3695 114.018 +-162.717 96.2494 113.876 +-583.517 339.158 401.27 +-586.657 335.046 396.404 +-589.806 330.966 391.578 +-593.345 327.128 387.036 +-595.829 322.736 381.84 +-599.398 318.957 377.369 +-602.832 315.121 372.831 +-606.365 311.351 368.371 +-609.842 307.566 363.892 +-613.024 303.648 359.256 +-616.547 299.911 354.835 +-619.613 295.965 350.167 +-623.105 292.236 345.755 +-627.032 288.715 341.588 +-630.174 284.838 337.002 +-2700.25 1197.98 1417.37 +-384.01 167.202 197.823 +-641.592 274.128 324.33 +-135.361 56.7445 67.1364 +-648.399 266.65 315.483 +-382.724 154.379 182.651 +-382.068 151.138 178.816 +-382.382 148.314 175.476 +-382.736 145.533 172.185 +-383.822 143.048 169.245 +-671.915 245.396 290.337 +-676.081 241.915 286.218 +-381.846 133.833 158.343 +-383.111 131.496 155.577 +-382.302 128.468 151.995 +-382.242 125.723 148.748 +-382.853 123.219 145.785 +-2944.9 927.178 1096.98 +-114.628 35.2939 41.7575 +-112.835 33.9648 40.185 +-111.561 32.8193 38.8297 +-110.539 31.7695 37.5876 +-109.68 30.7852 36.4231 +-109.632 30.0401 35.5415 +-109.018 29.1496 34.4879 +-108.759 28.3652 33.5598 +-109.603 27.8697 32.9736 +-109.042 27.0199 31.9682 +-108.935 26.2916 31.1065 +-109.286 25.6769 30.3792 +-109.441 25.0172 29.5988 +-110.058 24.4628 28.9428 +-110.195 23.8009 28.1597 +-110.418 23.1594 27.4007 +-111.68 22.7305 26.8933 +-111.314 21.9685 25.9917 +-112.182 21.4506 25.379 +-113.333 20.9779 24.8197 +-114.094 20.425 24.1655 +-115.235 19.9319 23.5821 +-117.146 19.5568 23.1383 +-120.123 19.3333 22.874 +-156.649 24.2768 28.7228 +-161.94 24.1341 28.5539 +-161.968 23.179 27.4239 +-161.297 22.1315 26.1845 +-165.019 21.6725 25.6415 +-854.408 107.208 126.842 +-862.118 103.144 122.034 +-868.699 98.878 116.986 +-380.509 41.1039 48.6315 +-381.742 39.0295 46.1772 +-379.683 36.6296 43.3377 +-904.511 82.0595 97.0875 +-405.005 34.4192 40.7226 +-404.463 32.0578 37.9287 +-404.881 29.7782 35.2316 +-403.378 27.368 32.3801 +-403.733 25.0947 29.6904 +-405.551 22.9039 27.0984 +-404.948 20.5729 24.3405 +-403.315 18.2054 21.5394 +-404.843 15.984 18.9112 +-404.245 13.6758 16.1803 +-404.215 11.3924 13.4788 +-404.653 9.12176 10.7923 +-146.45 2.47553 2.92889 +-146.678 1.65271 1.95538 +-146.194 0.823571 0.974396 +120 6.21725e-15 5.68434e-14 +120.695 0.687153 0.798274 +119.982 1.36629 1.58723 +120.659 2.06126 2.39459 +120.626 2.74809 3.1925 +120.685 3.43757 3.99347 +121.234 4.145 4.8153 +120.874 4.82308 5.60304 +121.204 5.52925 6.4234 +121.026 6.21394 7.21881 +120.639 6.88568 7.99919 +121.438 7.62849 8.86211 +121.133 8.30593 9.6491 +120.918 8.9878 10.4412 +121.488 9.73152 11.3052 +121.254 10.4143 12.0984 +121.011 11.0951 12.8894 +120.759 11.774 13.678 +120.992 12.5018 14.5235 +120.721 13.1794 15.3107 +120.54 13.8662 16.1085 +120.842 14.6113 16.9741 +120.642 15.2987 17.7727 +121.217 16.089 18.6908 +120.312 16.6836 19.3815 +120.67 17.4526 20.2749 +120.432 18.139 21.0723 +121.06 18.9609 22.0271 +120.608 19.6179 22.7903 +121.115 20.4344 23.7389 +120.837 21.1232 24.5391 +120.55 21.8103 25.3373 +121.023 22.6396 26.3007 +121.962 23.5686 27.38 +121.642 24.2621 28.1856 +121.313 24.9537 28.989 +121.735 25.8046 29.9776 +121.385 26.4967 30.7815 +121.026 27.1867 31.5832 +121.129 27.9836 32.5089 +121.126 28.7614 33.4125 +121.58 29.6555 34.4512 +120.712 30.2296 35.1182 +121.047 31.107 36.1374 +120.534 31.7705 36.9082 +120.843 32.6552 37.936 +120.494 33.3674 38.7634 +120.593 34.2082 39.7401 +121.227 35.2119 40.9061 +120.843 35.9278 41.7378 +121.264 36.8901 42.8557 +121.939 37.9441 44.0802 +119.27 37.9506 44.0877 +116.52 37.9004 44.0294 +114.227 37.97 44.1102 +111.32 37.8055 43.9191 +107.808 37.3964 43.4439 +105.37 37.3239 43.3597 +103.118 37.2898 43.3201 +101.483 37.4578 43.5152 +99.5063 37.4796 43.5406 +97.4503 37.4487 43.5046 +95.4884 37.4308 43.4839 +96.5189 38.5866 44.8265 +96.5079 39.3421 45.7042 +95.9779 39.89 46.3407 +96.7826 41.0034 47.6341 +95.9803 41.4448 48.1469 +96.0855 42.2815 49.119 +96.1755 43.1225 50.096 +96.2504 43.9677 51.0779 +95.6586 44.5141 51.7125 +96.5157 45.7472 53.1451 +95.9001 46.2949 53.7814 +95.8363 47.1139 54.7329 +95.9164 48.0152 55.7799 +96.6889 49.2824 57.252 +95.8695 49.7497 57.7949 +96.5215 50.9916 59.2376 +95.8358 51.5391 59.8737 +95.8322 52.4602 60.9437 +95.7351 53.3427 61.9689 +95.6972 54.271 63.0473 +95.6416 55.2028 64.1297 +95.5684 56.138 65.2163 +96.0672 57.4292 66.7163 +95.9536 58.3744 67.8143 +95.822 59.3226 68.9158 +95.6003 60.2284 69.9681 +95.4329 61.1819 71.0759 +95.2473 62.1381 72.1866 +95.1134 63.1433 73.3544 +95.5155 64.5271 74.9619 +95.2683 65.4944 76.0857 +95.0024 66.4639 77.2119 +95.2582 67.8195 78.7868 +94.9496 68.7955 79.9206 +95.2848 70.2621 81.6243 +95.3254 71.5401 83.109 +95.0142 72.5761 84.3126 +94.5541 73.5142 85.4024 +95.0301 75.2078 87.3699 +94.7127 76.3032 88.6424 +94.6222 77.6053 90.1551 +94.6887 79.0667 91.8528 +94.6624 80.4824 93.4974 +94.4248 81.748 94.9677 +94.3389 83.1741 96.6244 +94.3983 84.7633 98.4706 +94.3062 86.2534 100.202 +94.0665 87.6423 101.815 +94.5332 89.7339 104.245 +94.1122 91.0256 105.746 +93.9949 92.6461 107.628 +93.7868 94.2171 109.453 +93.7588 96.0131 111.54 +94.0077 98.1477 114.019 +93.5795 99.6247 115.735 +93.8914 101.943 118.429 +93.8946 103.991 120.808 +93.9 106.104 123.263 +93.462 107.77 125.198 +93.9561 110.58 128.462 +93.38 112.201 130.345 +93.7535 115.032 133.634 +92.165 115.503 134.181 +89.7993 114.977 133.571 +87.8563 114.959 133.549 +87.7181 117.331 136.305 +87.9965 120.358 139.821 +87.9891 123.101 143.008 +87.6247 125.438 145.723 +92.0445 134.871 156.682 +92.9883 139.518 162.08 +92.8377 142.685 165.759 +92.9155 146.342 170.008 +92.6402 149.588 173.778 +92.6882 153.509 178.333 +92.7815 157.685 183.184 +92.5948 161.568 187.695 +92.1402 165.154 191.861 +92.0306 169.546 196.964 +92.0707 174.444 202.653 +91.8914 179.168 208.142 +90.4184 181.546 210.904 +89.039 184.231 214.024 +87.1852 186.041 216.126 +90.8849 200.167 232.536 +89.8027 204.314 237.354 +86.5318 203.56 236.479 +83.7797 203.982 236.968 +80.8227 203.883 236.853 +78.0682 204.271 237.305 +74.9126 203.567 236.486 +72.1868 203.985 236.972 +69.0659 203.242 236.109 +66.3446 203.628 236.557 +63.4588 203.486 236.392 +60.7536 203.904 236.877 +57.6958 203.087 235.929 +55.1333 203.986 236.973 +52.1055 203.134 235.983 +49.4176 203.552 236.469 +46.5747 203.309 236.187 +43.8395 203.502 236.41 +36.8736 182.722 212.271 +33.051 175.609 204.007 +29.8856 171.123 198.796 +27.5642 171.092 198.759 +25.5525 173.126 201.123 +26.26 195.816 227.482 +24.4557 202.722 235.505 +21.778 203.179 236.035 +18.9678 202.318 235.036 +16.2922 202.809 235.606 +13.5787 202.895 235.706 +10.8572 202.834 235.634 +8.13318 202.627 235.395 +5.4277 202.862 235.667 +2.70697 202.363 235.087 +1.77636e-14 203.088 235.93 +-2.70959 202.558 235.315 +-5.43468 203.123 235.97 +-8.10962 202.04 234.713 +-10.8363 202.443 235.18 +-13.5482 202.438 235.175 +-16.2555 202.353 235.077 +-18.9556 202.188 234.885 +-21.7222 202.658 235.431 +-24.3694 202.007 234.674 +-27.1403 202.38 235.108 +-29.7601 201.634 234.241 +-32.6338 202.56 235.316 +-35.2741 201.977 234.639 +-38.0598 202.222 234.923 +-40.6589 201.48 234.062 +-43.4777 201.822 234.46 +-46.0426 200.986 233.488 +-49.0109 201.877 234.523 +-51.6929 201.526 234.115 +-54.5603 201.866 234.51 +-57.0579 200.842 233.321 +-59.914 201.086 233.604 +-62.6215 200.801 233.273 +-65.7001 201.65 234.259 +-68.4166 201.331 233.889 +-71.2195 201.252 233.797 +-73.8621 200.712 233.17 +-77.0763 201.676 234.29 +-79.7711 201.23 233.771 +-82.6668 201.272 233.821 +-85.3292 200.731 233.192 +-88.5898 201.555 234.149 +-91.2541 200.98 233.481 +-94.4068 201.451 234.028 +-97.0678 200.844 233.323 +-100.245 201.276 233.825 +-103.124 201.069 233.584 +-106.298 201.4 233.969 +-108.955 200.725 233.185 +-112.217 201.139 233.666 +-114.903 200.493 232.915 +-118.476 201.354 233.915 +-121.202 200.732 233.193 +-124.519 201.063 233.577 +-127.51 200.829 233.305 +-130.778 200.996 233.499 +-135.615 203.474 236.379 +-139.185 203.946 236.927 +-142.862 204.512 237.584 +-143.056 200.142 232.508 +-142.671 195.14 226.697 +-144.356 193.089 224.314 +-148.628 194.478 225.928 +-155.673 199.321 231.554 +-160.781 201.494 234.078 +-165.301 202.818 235.616 +-477.636 573.902 666.709 +-486.894 573.044 665.713 +-490.897 566.049 657.586 +-493.1 557.187 647.291 +-485.663 537.888 624.872 +-479.243 520.34 604.485 +-482.423 513.587 596.641 +-485.141 506.505 588.414 +-488.567 500.313 581.22 +-491.319 493.573 573.39 +-494.26 487.167 565.948 +-496.675 480.386 558.07 +-499.967 474.583 551.329 +-502.854 468.512 544.277 +-506.025 462.816 537.66 +-509.14 457.174 531.105 +-511.607 451.058 524 +-514.793 445.68 517.752 +-517.508 439.989 511.141 +-520.665 434.764 505.071 +-524.282 429.997 499.533 +-526.489 424.156 492.747 +-529.853 419.33 487.141 +-532.55 414.049 481.006 +-535.665 409.166 475.333 +-538.887 404.426 469.827 +-141.271 104.171 121.017 +-142.926 103.557 120.304 +-143.09 101.873 118.348 +-142.947 100.006 116.178 +-142.558 98.0048 113.853 +-143.308 96.8142 112.47 +-147.611 97.9957 113.843 +-152.594 99.5503 115.649 +-156.986 100.644 116.919 +-157.463 99.2026 115.245 +-158.93 98.3917 114.303 +-159.801 97.2167 112.938 +-162.348 97.0523 112.747 +-583.666 342.852 398.296 +-587.631 339.171 394.019 +-590.787 335.042 389.222 +-593.801 330.861 384.365 +-596.825 326.713 379.546 +-599.707 322.514 374.669 +-603.298 318.718 370.258 +-606.834 314.906 365.83 +-609.842 310.836 361.102 +-613.976 307.352 357.055 +-616.547 303.1 352.115 +-620.015 299.307 347.708 +-623.833 295.688 343.505 +-627.764 292.126 339.366 +-630.911 288.204 334.811 +-2700.25 1210.72 1406.51 +-384.756 169.308 196.687 +-642.009 277.223 322.053 +-135.278 57.3124 66.5805 +-136.123 56.5751 65.724 +-382.215 155.813 181.01 +-382.75 153.017 177.762 +-382.382 149.891 174.13 +-381.788 146.715 170.441 +-383.476 144.438 167.796 +-672.785 248.326 288.484 +-676.606 244.677 284.244 +-382.901 135.63 157.563 +-380.904 132.128 153.495 +-381.503 129.563 150.515 +-381.974 126.971 147.504 +-381.242 124.006 144.059 +-115.046 36.6064 42.5261 +-114.448 35.613 41.3721 +-113.017 34.3811 39.941 +-110.924 32.9789 38.312 +-110.63 32.1338 37.3303 +-109.68 31.1126 36.1439 +-109.632 30.3595 35.2691 +-109.018 29.4596 34.2236 +-109.686 28.9112 33.5865 +-108.952 27.9987 32.5264 +-108.949 27.2838 31.6959 +-109.403 26.6854 31.0007 +-109.286 25.9499 30.1464 +-109.346 25.2615 29.3466 +-109.964 24.7017 28.6963 +-110.195 24.054 27.9439 +-111.179 23.5669 27.378 +-110.727 22.7761 26.4592 +-111.314 22.2021 25.7925 +-112.182 21.6787 25.1844 +-113.333 21.201 24.6295 +-114.19 20.6596 24.0005 +-116.008 20.2789 23.5583 +-117.63 19.8464 23.0558 +-119.637 19.46 22.607 +-159.371 24.9614 28.998 +-159.407 24.0091 27.8917 +-161.968 23.4254 27.2136 +-161.688 22.4211 26.0469 +-163.843 21.7469 25.2636 +-853.917 108.286 125.798 +-861.331 104.146 120.987 +-868.699 99.9294 116.089 +-380.903 41.5841 48.3087 +-380.951 39.3629 45.7284 +-378.892 36.9419 42.9159 +-905.402 83.0136 96.438 +-405.005 34.7852 40.4104 +-403.966 32.3589 37.5918 +-404.881 30.0948 34.9615 +-405.268 27.7886 32.2824 +-405.624 25.4803 29.6008 +-404.555 23.0905 26.8245 +-403.752 20.7302 24.0825 +-404.213 18.4399 21.4219 +-404.843 16.1539 18.7662 +-405.244 13.8553 16.0959 +-405.114 11.5392 13.4053 +-403.754 9.19826 10.6857 +-145.95 2.49331 2.89651 +-144.578 1.64638 1.91262 +-146.794 0.835747 0.970898 +120 6.21725e-15 5.68434e-14 +119.895 0.689725 0.786794 +120.082 1.3817 1.57615 +120.659 2.08277 2.37589 +120.626 2.77678 3.16758 +119.786 3.44758 3.93277 +120.435 4.16067 4.74622 +120.275 4.84929 5.53175 +120.406 5.55019 6.33129 +120.228 6.23744 7.11527 +120.838 6.96904 7.94982 +120.542 7.65124 8.72804 +121.332 8.40642 9.5895 +121.017 9.08915 10.3683 +120.495 9.75276 11.1253 +121.353 10.5316 12.0138 +121.011 11.211 12.7888 +120.759 11.8969 13.5712 +120.992 12.6323 14.4101 +120.721 13.317 15.1911 +120.54 14.0109 15.9827 +120.94 14.7759 16.8554 +120.642 15.4584 17.634 +120.335 16.1387 18.41 +120.997 16.9537 19.3397 +120.768 17.6491 20.1329 +121.309 18.4617 21.06 +121.06 19.1589 21.8552 +120.511 19.8067 22.5942 +120.922 20.6148 23.516 +120.741 21.3266 24.328 +120.454 22.0204 25.1194 +121.119 22.8941 26.1161 +121.099 23.6461 26.974 +120.877 24.3612 27.7896 +121.408 25.2339 28.7853 +120.879 25.8907 29.5344 +121.385 26.7733 30.5413 +120.837 27.4276 31.2877 +121.318 28.3197 32.3053 +121.314 29.1067 33.2031 +121.674 29.9881 34.2085 +121.552 30.7578 35.0865 +121.047 31.4317 35.8553 +120.534 32.1022 36.6201 +121.028 33.0466 37.6974 +121.507 33.9991 38.784 +121.235 34.7493 39.6398 +121.136 35.5527 40.5562 +121.48 36.4942 41.6302 +121.898 37.4702 42.7436 +121.217 38.1132 43.4771 +119.54 38.4335 43.8424 +117.594 38.649 44.0883 +113.514 38.1269 43.4927 +111.852 38.3828 43.7846 +108.514 38.0344 43.3872 +106.864 38.2483 43.6312 +103.905 37.9667 43.31 +101.919 38.0112 43.3607 +99.5063 37.8709 43.2007 +97.5364 37.8731 43.2031 +95.4027 37.7876 43.1057 +96.4336 38.955 44.4374 +95.8294 39.4733 45.0286 +96.231 40.4127 46.1002 +97.0342 41.5391 47.3852 +96.6474 42.1685 48.1031 +96.2513 42.7966 48.8196 +96.0931 43.5354 49.6623 +96.3323 44.4646 50.7223 +95.6586 44.9788 51.3089 +96.5157 46.2248 52.7302 +95.9001 46.7782 53.3616 +95.8363 47.6058 54.3056 +96.6304 48.8776 55.7564 +95.9797 49.4316 56.3884 +96.026 50.3512 57.4373 +96.4438 51.4825 58.7279 +95.8358 52.0772 59.4063 +95.9854 53.0926 60.5646 +95.7351 53.8996 61.4852 +95.6972 54.8375 62.5551 +95.6416 55.7791 63.6291 +95.5684 56.7241 64.7072 +96.0672 58.0288 66.1955 +95.9536 58.9838 67.2849 +95.822 59.9419 68.3778 +95.6722 60.903 69.4742 +95.5042 61.8669 70.5737 +95.2473 62.7868 71.6231 +95.7442 64.2256 73.2644 +95.4461 65.1533 74.3227 +95.2683 66.1782 75.4918 +95.6162 67.5915 77.104 +95.2582 68.5275 78.1718 +95.0165 69.5631 79.3531 +95.2185 70.9461 80.9308 +95.391 72.337 82.5174 +95.0142 73.3337 83.6544 +95.1326 74.7365 85.2546 +95.2845 76.196 86.9194 +94.7127 77.0997 87.9504 +94.6222 78.4155 89.4513 +94.5656 79.788 91.0169 +94.0536 80.7998 92.1712 +94.485 82.6541 94.2865 +94.5173 84.2013 96.0514 +94.3983 85.6482 97.7019 +94.3062 87.1538 99.4194 +94.0665 88.5573 101.02 +94.4199 90.5619 103.307 +93.7207 91.5935 104.484 +94.0501 93.668 106.85 +93.7324 95.1453 108.536 +93.5976 96.8486 110.479 +94.0077 99.1723 113.129 +93.684 100.777 114.96 +93.8399 102.951 117.44 +93.9454 105.134 119.93 +93.9 107.212 122.3 +93.462 108.895 124.221 +93.4713 111.159 126.802 +93.714 113.777 129.79 +93.6126 116.058 132.392 +93.2732 118.112 134.735 +90.4349 117 133.466 +88.481 116.984 133.448 +87.9811 118.911 135.646 +87.9534 121.555 138.662 +87.9469 124.327 141.824 +88.1223 127.467 145.406 +93.0613 137.785 157.176 +93.1079 141.157 161.022 +92.8768 144.235 164.534 +92.9921 147.992 168.819 +93.0148 151.76 173.118 +92.6149 154.989 176.801 +92.8173 159.392 181.824 +92.5948 163.254 186.23 +92.1402 166.878 190.363 +92.0639 171.379 195.498 +91.8428 175.828 200.574 +91.5741 180.413 205.804 +89.9239 182.438 208.113 +88.4376 184.897 210.919 +87.8869 189.496 216.165 +91.0269 202.573 231.082 +89.3065 205.306 234.2 +85.9439 204.288 233.038 +83.3915 205.156 234.029 +80.1466 204.288 233.038 +77.6569 205.317 234.212 +74.2823 203.961 232.665 +71.7819 204.958 233.803 +68.5464 203.819 232.504 +65.9912 204.657 233.46 +62.9405 203.931 232.631 +60.2384 204.285 233.035 +57.386 204.105 232.83 +54.8207 204.947 233.79 +51.6764 203.564 232.213 +49.1517 204.57 233.36 +46.1609 203.606 232.261 +43.6168 204.582 233.374 +35.96 180.055 205.395 +32.8682 176.461 201.295 +29.9536 173.302 197.692 +27.5851 173.009 197.357 +29.5397 202.229 230.69 +27.0008 203.442 232.074 +24.1889 202.604 231.118 +21.6664 204.248 232.993 +18.8518 203.181 231.775 +16.2608 204.532 233.317 +13.4653 203.3 231.912 +10.8014 203.897 232.593 +8.06512 203.029 231.602 +5.39628 203.793 232.474 +2.68515 202.827 231.372 +1.82077e-14 203.956 232.659 +-2.68603 202.893 231.447 +-5.38756 203.463 232.098 +-8.03894 202.37 230.851 +-10.8049 203.963 232.668 +-13.3999 202.313 230.786 +-16.1718 203.413 232.041 +-18.803 202.654 231.175 +-21.6106 203.722 232.393 +-24.2282 202.933 231.492 +-27.0008 203.442 232.074 +-29.6068 202.689 231.214 +-32.3934 203.166 231.759 +-34.9798 202.383 230.865 +-37.8526 203.221 231.821 +-40.3065 201.819 230.222 +-43.2272 202.754 231.289 +-45.7914 201.976 230.401 +-48.6042 202.291 230.761 +-51.2638 201.939 230.358 +-54.074 202.155 230.606 +-56.6206 201.383 229.725 +-59.5706 202.02 230.452 +-62.123 201.283 229.61 +-65.1179 201.949 230.37 +-67.5941 200.987 229.273 +-70.8596 202.326 230.8 +-73.2552 201.141 229.449 +-76.4473 202.119 230.564 +-78.8947 201.097 229.398 +-82.2009 202.227 230.688 +-84.6611 201.239 229.56 +-88.0661 202.455 230.947 +-90.2885 200.929 229.207 +-93.9683 202.608 231.122 +-96.3762 201.494 229.852 +-99.7507 202.374 230.855 +-102.267 201.48 229.836 +-105.452 201.881 230.293 +-108.087 201.205 229.521 +-111.67 202.248 230.712 +-114.098 201.166 229.477 +-117.545 201.856 230.264 +-120.212 201.172 229.484 +-123.845 202.062 230.499 +-126.477 201.281 229.608 +-130.153 202.123 230.569 +-133.342 202.153 230.603 +-138.535 205.112 233.978 +-141.327 204.427 233.197 +-143.479 202.829 231.374 +-143.059 197.712 225.538 +-143.873 194.453 221.819 +-146.71 193.972 221.27 +-154.221 199.523 227.602 +-159.626 202.136 230.584 +-164.221 203.596 232.25 +-1563.41 1898.12 2165.25 +-487.379 579.603 661.173 +-490.749 571.785 652.256 +-494.95 565.116 644.648 +-481.4 538.732 614.551 +-480.428 527.072 601.25 +-483.677 520.297 593.522 +-486.625 513.359 585.606 +-489.587 506.592 577.887 +-492.354 499.776 570.112 +-495.639 493.626 563.097 +-498.185 486.877 555.397 +-501.043 480.57 548.203 +-503.887 474.375 541.136 +-507.128 468.668 534.626 +-509.845 462.586 527.688 +-513.213 457.198 521.542 +-515.515 450.964 514.431 +-518.786 445.681 508.404 +-521.712 440.186 502.135 +-525.029 435.105 496.339 +-527.622 429.506 489.953 +-530.998 424.623 484.383 +-533.707 419.281 478.288 +-536.834 414.34 472.652 +-539.805 409.345 466.954 +-142.331 106.049 120.974 +-143.194 104.834 119.588 +-143.293 103.083 117.591 +-142.401 100.664 114.831 +-142.421 98.9324 112.856 +-143.308 97.8249 111.592 +-148.453 99.5823 113.597 +-154.291 101.708 116.022 +-157.486 102.018 116.376 +-157.751 100.421 114.554 +-159.002 99.4643 113.462 +-160.825 98.8605 112.774 +-161.832 97.7537 111.511 +-585.301 347.402 396.293 +-588.829 343.41 391.74 +-591.466 338.928 386.628 +-595.246 335.128 382.292 +-597.515 330.505 377.018 +-601.867 327.055 373.083 +-604.231 322.543 367.937 +-608.243 318.932 363.817 +-611.26 314.812 359.117 +-615.404 311.284 355.092 +-617.505 306.74 349.909 +-622.105 303.45 346.157 +-624.561 299.124 341.221 +-629.311 295.903 337.546 +-631.648 291.553 332.585 +-636.225 288.245 328.811 +-382.352 170.007 193.933 +-2732.23 1192.11 1359.88 +-135.697 58.0902 66.2655 +-135.955 57.0949 65.1301 +-653.93 269.362 307.271 +-382.835 154.649 176.414 +-382.382 151.456 172.771 +-381.702 148.213 169.072 +-382.87 145.716 166.223 +-384.349 143.345 163.519 +-676.868 247.327 282.135 +-682.226 244.179 278.543 +-383.111 134.281 153.179 +-382.302 131.19 149.653 +-381.44 128.117 146.148 +-381.242 125.3 142.934 +-115.046 36.9886 42.1942 +-113.274 35.6158 40.6283 +-112.382 34.545 39.4068 +-111.197 33.4052 38.1064 +-110.63 32.4693 37.0389 +-109.956 31.5162 35.9517 +-109.54 30.6507 34.9643 +-109.018 29.7671 33.9564 +-108.944 29.0154 33.0989 +-109.324 28.3876 32.3828 +-108.949 27.5686 31.4485 +-109.216 26.9178 30.7061 +-109.662 26.3111 30.014 +-109.346 25.5252 29.1175 +-110.153 25.0025 28.5212 +-109.816 24.2215 27.6303 +-111.179 23.8129 27.1642 +-111.394 23.1526 26.411 +-111.314 22.4339 25.5911 +-112.949 22.0548 25.1587 +-113.333 21.4223 24.4372 +-114.961 21.0162 23.9739 +-115.815 20.4565 23.3354 +-118.308 20.1691 23.0076 +-120.705 19.8386 22.6306 +-160.636 25.4221 28.9999 +-157.653 23.9929 27.3695 +-162.553 23.7556 27.0989 +-162.568 22.7785 25.9842 +-162.668 21.8162 24.8865 +-855.292 109.593 125.016 +-863.101 105.449 120.29 +-871.259 101.271 115.523 +-381.002 42.0291 47.944 +-382.334 39.9182 45.5361 +-381.068 37.542 42.8254 +-906.293 83.9626 95.7791 +-405.204 35.1656 40.1147 +-405.058 32.7851 37.3991 +-404.881 30.409 34.6886 +-404.87 28.0512 31.9989 +-403.335 25.6011 29.204 +-404.057 23.3029 26.5824 +-404.35 20.9776 23.9299 +-404.213 18.6324 21.2547 +-403.246 16.2582 18.5463 +-404.245 13.9655 15.9309 +-404.215 11.6338 13.2711 +-403.654 9.29198 10.5997 +-145.75 2.51589 2.86997 +-146.678 1.68772 1.92525 +-146.794 0.844472 0.963318 +120 6.21725e-15 5.68434e-14 +119.895 0.696795 0.780539 +119.982 1.3947 1.56232 +120.759 2.10587 2.35896 +120.626 2.80525 3.1424 +120.485 3.50325 3.92429 +120.535 4.2068 4.7124 +121.074 4.93152 5.52421 +120.306 5.60243 6.27576 +120.328 6.3066 7.06455 +120.639 7.02888 7.87365 +120.742 7.74245 8.67298 +121.133 8.47867 9.49768 +121.017 9.18231 10.2859 +121.388 9.92579 11.1187 +121.353 10.6396 11.9183 +121.11 11.3351 12.6975 +120.858 12.0287 13.4743 +120.992 12.7618 14.2956 +120.721 13.4535 15.0704 +120.442 14.143 15.8428 +120.842 14.9152 16.7078 +120.642 15.6169 17.4938 +121.217 16.4236 18.3975 +120.997 17.1275 19.186 +120.865 17.8444 19.989 +121.309 18.651 20.8926 +120.866 19.3242 21.6467 +120.802 20.0581 22.4688 +121.115 20.8594 23.3663 +120.644 21.528 24.1153 +121.321 22.4062 25.0991 +121.023 23.1104 25.8879 +121.003 23.8696 26.7384 +120.877 24.6109 27.5687 +121.408 25.4926 28.5564 +120.974 26.1767 29.3227 +121.385 27.0477 30.2985 +121.688 27.9039 31.2575 +121.224 28.5878 32.0237 +120.751 29.2684 32.7861 +121.486 30.2489 33.8844 +120.712 30.8583 34.567 +121.047 31.7539 35.5703 +120.348 32.3813 36.2731 +120.104 33.1304 37.1122 +120.494 34.0614 38.155 +120.96 35.0259 39.2355 +120.771 35.8088 40.1125 +121.298 36.813 41.2374 +121.173 37.6292 42.1516 +121.668 38.6473 43.2921 +120.618 39.1777 43.8863 +118.758 39.4314 44.1705 +115.385 39.1527 43.8582 +112.828 39.1144 43.8154 +109.221 38.6744 43.3225 +108.095 39.0852 43.7827 +104.692 38.6465 43.2912 +103.398 38.9583 43.6405 +100.286 38.5588 43.193 +99.0012 38.8359 43.5034 +96.0027 38.4151 43.032 +95.6662 39.0411 43.7333 +95.9142 39.9133 44.7102 +96.1466 40.7912 45.6937 +96.3632 41.6748 46.6835 +96.3972 42.4905 47.5972 +96.2513 43.2353 48.4315 +96.0931 43.9816 49.2676 +96.3323 44.9204 50.3191 +96.3913 45.7878 51.2908 +95.8685 46.3855 51.9603 +95.9001 47.2577 52.9374 +95.8363 48.0938 53.8739 +95.9164 49.0138 54.9045 +95.9797 49.9383 55.9402 +95.8695 50.7844 56.8879 +95.8221 51.6749 57.8854 +95.8358 52.611 58.9341 +95.8322 53.5512 59.9873 +95.7351 54.4521 60.9964 +95.6972 55.3996 62.0578 +95.6416 56.3508 63.1233 +96.2373 57.7066 64.642 +95.9935 58.5786 65.6188 +95.9536 59.5884 66.75 +95.822 60.5563 67.8343 +95.6722 61.5273 68.9219 +95.5042 62.501 70.0127 +95.9544 63.9013 71.5812 +95.7442 64.884 72.682 +95.4461 65.8212 73.7319 +95.3371 66.9045 74.9454 +95.6162 68.2843 76.4911 +95.2582 69.23 77.5504 +95.6188 70.721 79.2207 +95.2848 71.7233 80.3434 +95.3254 73.0279 81.8048 +95.0142 74.0854 82.9894 +95.1326 75.5026 84.5769 +94.6484 76.4636 85.6533 +94.7127 77.89 87.2513 +94.6222 79.2193 88.7403 +94.6887 80.711 90.4113 +94.6015 82.1035 91.9712 +94.4248 83.4481 93.4773 +93.982 84.5822 94.7477 +94.5159 86.634 97.0461 +94.2481 87.9932 98.5687 +94.1239 89.5196 100.279 +93.9102 90.996 101.932 +93.7207 92.5324 103.653 +94.0501 94.6282 106.001 +93.8958 96.2884 107.861 +93.5976 97.8414 109.6 +94.0607 100.245 112.293 +93.6317 101.753 113.982 +93.8399 104.006 116.506 +93.7931 106.039 118.784 +93.4 107.734 120.682 +93.3635 109.895 123.103 +93.4228 112.239 125.729 +93.714 114.944 128.758 +93.5657 117.189 131.273 +93.5503 119.677 134.061 +91.2521 119.267 133.601 +89.6858 119.793 134.191 +87.5866 119.591 133.965 +88.0395 122.921 137.695 +88.0736 125.782 140.899 +92.8083 135.621 151.921 +93.0613 139.197 155.927 +93.068 142.542 159.674 +92.9159 145.775 163.295 +92.9538 149.447 167.408 +92.9774 153.254 171.673 +92.9081 157.073 175.95 +92.5664 160.591 179.892 +92.6299 164.99 184.82 +92.3112 168.901 189.201 +92.0973 173.198 194.014 +91.8753 177.693 199.049 +90.9395 181 202.753 +89.7694 183.991 206.104 +86.9942 183.744 205.827 +90.7814 197.744 221.51 +83.3869 187.472 210.004 +88.4245 205.362 230.044 +84.768 203.558 228.023 +82.5115 205.072 229.719 +79.2202 203.997 228.514 +76.7376 204.966 229.6 +73.2318 203.137 227.552 +71.017 204.854 229.474 +67.724 203.438 227.888 +65.2635 204.475 229.05 +62.0832 203.215 227.639 +59.7423 204.679 229.278 +56.1285 201.68 225.919 +54.0567 204.162 228.7 +46.4939 185.027 207.264 +46.6957 196.34 219.937 +41.5788 185.275 207.543 +38.7597 183.664 205.737 +35.9991 182.099 203.984 +37.5601 203.718 228.201 +34.6855 202.737 227.102 +32.038 202.997 227.394 +29.3 202.645 227 +26.7655 203.736 228.222 +23.8986 202.224 226.529 +21.4362 204.149 228.685 +18.6076 202.604 226.954 +16.0724 204.234 228.78 +13.269 202.39 226.715 +10.6792 203.658 228.135 +7.95779 202.381 226.704 +5.33695 203.618 228.089 +2.6485 202.109 226.4 +1.73195e-14 203.649 228.124 +-2.64763 202.043 226.325 +-5.32822 203.285 227.717 +-7.95256 202.248 226.555 +-10.6653 203.392 227.836 +-13.2559 202.191 226.491 +-15.9939 203.237 227.663 +-18.5343 201.807 226.061 +-21.3246 203.086 227.494 +-23.8437 201.76 226.008 +-26.6871 203.139 227.554 +-29.2234 202.115 226.406 +-32.0066 202.798 227.172 +-34.5043 201.678 225.917 +-37.4261 202.99 227.387 +-39.7974 201.313 225.508 +-42.754 202.59 226.938 +-45.1558 201.214 225.397 +-48.1818 202.589 226.937 +-50.4385 200.725 224.849 +-53.6226 202.523 226.863 +-55.8005 200.501 224.598 +-59.1317 202.587 226.935 +-61.4053 200.996 225.153 +-64.5566 202.26 226.569 +-66.7283 200.447 224.538 +-70.0947 202.193 226.494 +-72.3214 200.612 224.723 +-75.5522 201.8 226.053 +-77.8431 200.45 224.541 +-81.2433 201.92 226.188 +-83.4585 200.414 224.5 +-87.0738 202.226 226.53 +-89.2376 200.626 224.738 +-92.8865 202.329 226.646 +-95.023 200.702 224.823 +-98.7309 202.359 226.679 +-100.966 200.956 225.108 +-104.279 201.684 225.924 +-106.651 200.568 224.673 +-110.507 202.194 226.494 +-112.522 200.421 224.509 +-116.434 201.997 226.274 +-118.38 200.136 224.189 +-122.571 202.034 226.315 +-124.563 200.268 224.337 +-128.511 201.62 225.852 +-130.71 200.194 224.254 +-137.03 204.963 229.596 +-139.42 203.735 228.221 +-143.099 204.365 228.927 +-143.102 199.799 223.812 +-142.777 194.95 218.38 +-144.434 192.92 216.107 +-149.59 195.516 219.014 +-155.517 198.951 222.861 +-1538.22 1926.59 2158.14 +-1563.41 1917.58 2148.04 +-479.913 576.574 645.87 +-487.499 573.821 642.786 +-495.2 571.197 639.847 +-479.218 541.787 606.902 +-481.973 534.187 598.388 +-485.662 527.788 591.221 +-487.579 519.637 582.09 +-491.414 513.695 575.433 +-493.225 505.793 566.581 +-497.185 500.241 560.363 +-498.968 492.64 551.848 +-502.855 487.252 545.812 +-504.919 480.22 537.935 +-508.928 475.153 532.259 +-511.138 468.513 524.821 +-515.235 463.705 519.435 +-516.899 456.81 511.712 +-521.465 452.573 506.966 +-522.82 445.643 499.202 +-527.208 441.389 494.437 +-529.07 435.099 487.392 +-533.288 430.826 482.605 +-534.864 424.497 475.515 +-539.042 420.309 470.823 +-141.709 108.562 121.609 +-143.192 107.784 120.738 +-142.659 105.513 118.194 +-143.022 103.944 116.436 +-142.401 101.696 113.918 +-142.489 99.9944 112.012 +-144.836 99.8812 111.885 +-151.537 102.694 115.036 +-156.766 104.399 116.946 +-157.771 103.25 115.659 +-158.471 101.913 114.161 +-160.163 101.218 113.383 +-161.263 100.147 112.183 +-584.587 356.735 399.609 +-586.936 351.943 394.241 +-590.851 348.122 389.961 +-592.673 343.102 384.337 +-597.147 339.645 380.465 +-599.66 335.091 375.364 +-604.259 331.721 371.588 +-605.474 326.52 365.763 +-610.434 323.362 362.225 +-613.466 319.187 357.548 +-617.388 315.488 353.405 +-619.262 310.766 348.115 +-624.034 307.512 344.47 +-626.584 303.169 339.606 +-631.265 299.864 335.903 +-633.205 295.268 330.754 +-638.533 292.255 327.38 +-382.352 171.75 192.391 +-384.004 169.264 189.607 +-648.208 280.335 314.027 +-133.425 56.6067 63.4099 +-655.88 272.935 305.737 +-382.409 156.06 174.817 +-381.611 152.7 171.052 +-381.788 149.767 167.766 +-381.917 146.843 164.491 +-381.912 143.896 161.19 +-679.58 250.863 281.013 +-684.686 247.571 277.326 +-382.846 135.564 151.856 +-379.552 131.581 147.395 +-382.42 129.763 145.359 +-120.19 39.9069 44.7031 +-114.866 37.3093 41.7933 +-112.552 35.7516 40.0484 +-111.295 34.5614 38.7151 +-110.924 33.6647 37.7107 +-110.082 32.6396 36.5624 +-109.314 31.6534 35.4577 +-108.896 30.7828 34.4824 +-109.665 30.2507 33.8863 +-109.13 29.3627 32.8917 +-109.324 28.6786 32.1253 +-109.509 27.9945 31.359 +-109.684 27.3103 30.5926 +-109.38 26.5124 29.6988 +-109.723 25.8757 28.9856 +-109.964 25.2154 28.246 +-110.575 24.6388 27.6 +-110.513 23.913 26.7869 +-111.49 23.41 26.2235 +-112.366 22.878 25.6276 +-112.661 22.2241 24.8951 +-113.813 21.7338 24.3458 +-115.347 21.3028 23.8631 +-116.297 20.7523 23.2465 +-119.179 20.5259 22.9928 +-122.548 20.348 22.7936 +-161.511 25.8226 28.9261 +-160.381 24.6582 27.6218 +-161.284 23.8117 26.6736 +-163.448 23.1366 25.9173 +-165.901 22.478 25.1795 +-856.862 110.919 124.25 +-864.871 106.749 119.578 +-872.244 102.424 114.734 +-381.002 42.4599 47.5629 +-381.84 40.2753 45.1158 +-381.661 37.9858 42.5512 +-407.99 38.1854 42.7747 +-405.501 35.5521 39.8249 +-405.356 33.1455 37.1291 +-405.477 30.7659 34.4635 +-405.268 28.3665 31.7758 +-404.728 25.9528 29.072 +-405.252 23.6114 26.4492 +-403.752 21.1613 23.7046 +-404.313 18.8281 21.0909 +-404.444 16.4737 18.4535 +-403.746 14.0912 15.7847 +-403.615 11.7356 13.146 +-404.653 9.41047 10.5415 +-145.45 2.53645 2.8413 +-146.078 1.69805 1.90213 +-146.494 0.851383 0.953706 +120.1 6.21725e-15 5.68434e-14 +119.895 0.703807 0.774223 +120.082 1.40991 1.55097 +120.659 2.1253 2.33793 +120.626 2.83348 3.11697 +120.585 3.54144 3.89576 +120.535 4.24914 4.67426 +121.074 4.98115 5.47951 +121.005 5.69165 6.2611 +121.026 6.407 7.04802 +120.639 7.09962 7.80993 +120.542 7.80745 8.58859 +120.238 8.50069 9.35118 +121.017 9.27472 10.2027 +120.594 9.96009 10.9566 +121.254 10.7379 11.8122 +121.11 11.4492 12.5947 +120.858 12.1497 13.3653 +120.3 12.8166 14.0989 +120.623 13.5778 14.9362 +120.442 14.2853 15.7146 +120.744 15.053 16.5591 +120.642 15.7741 17.3522 +120.531 16.4951 18.1454 +120.117 17.174 18.8922 +120.865 18.024 19.8272 +121.407 18.8538 20.7401 +121.06 19.55 21.506 +120.802 20.2599 22.2869 +121.115 21.0693 23.1772 +120.741 21.762 23.9393 +121.225 22.6138 24.8763 +120.927 23.3245 25.6581 +120.811 24.0716 26.48 +120.877 24.8585 27.3456 +121.408 25.7491 28.3253 +121.83 26.6272 29.2912 +121.385 27.3199 30.0533 +121.877 28.2285 31.0527 +121.224 28.8755 31.7645 +121.126 29.655 32.622 +120.737 30.3648 33.4028 +120.992 31.2412 34.3668 +120.768 31.9995 35.2011 +120.348 32.7072 35.9795 +120.751 33.644 37.0101 +120.218 34.3253 37.7595 +120.869 35.3515 38.8884 +121.045 36.2512 39.8781 +121.298 37.1835 40.9037 +120.811 37.8941 41.6854 +121.127 38.8624 42.7506 +121.427 39.8373 43.823 +120.1 40.2784 44.3083 +116.722 40.0047 44.0072 +114.602 40.1293 44.1442 +110.81 39.632 43.5972 +108.798 39.7353 43.7109 +105.829 39.4594 43.4073 +104.965 39.9466 43.9432 +102.191 39.6867 43.6574 +100.38 39.7729 43.7522 +97.6314 39.4599 43.4078 +95.1546 39.2231 43.1474 +96.3383 40.4931 44.5444 +96.0623 41.1655 45.2841 +95.86 41.8743 46.0638 +95.9803 42.7324 47.0078 +96.6658 43.8585 48.2465 +96.1755 44.4623 48.9107 +96.2504 45.3338 49.8694 +95.6586 45.8971 50.4891 +95.7876 46.8127 51.4963 +95.8197 47.6933 52.465 +95.9161 48.6182 53.4825 +95.9958 49.5479 54.5052 +95.9797 50.4409 55.4875 +95.8695 51.2954 56.4275 +95.8221 52.1949 57.417 +95.8358 53.1404 58.4571 +95.8322 54.0901 59.5018 +96.4195 55.3932 60.9353 +95.6972 55.9571 61.5556 +95.6416 56.9179 62.6125 +96.2373 58.2873 64.1189 +95.4774 58.8499 64.7379 +95.9536 60.1881 66.2099 +95.822 61.1657 67.2853 +95.6722 62.1464 68.3642 +95.3616 63.0357 69.3424 +95.4594 64.2114 70.6357 +95.6741 65.4889 72.0411 +95.4461 66.4835 73.1352 +95.2683 67.5293 74.2856 +95.6162 68.9715 75.872 +95.3258 69.9764 76.9775 +95.0165 70.9834 78.0853 +95.1522 72.3442 79.5822 +95.2598 73.7124 81.0873 +95.0142 74.831 82.3178 +94.6183 75.8501 83.4388 +95.1573 77.6481 85.4167 +94.7127 78.6739 86.5452 +94.6222 80.0165 88.0221 +94.6887 81.5232 89.6796 +94.6015 82.9298 91.2269 +94.5451 84.3955 92.8392 +94.5768 85.9742 94.5759 +94.3983 87.3969 96.1409 +94.0739 88.7146 97.5905 +94.1813 90.4756 99.5277 +94.3066 92.2999 101.534 +94.0562 93.7979 103.182 +93.9397 95.4681 105.02 +93.7868 97.1443 106.864 +93.7051 98.939 108.838 +93.9017 101.083 111.196 +93.5795 102.72 112.997 +93.8399 105.053 115.563 +93.9454 107.281 118.014 +93.5 108.935 119.834 +93.4127 111.06 122.171 +93.7622 113.78 125.164 +93.6663 116.041 127.651 +93.5187 118.309 130.146 +93.6888 121.061 133.173 +93.295 123.165 135.487 +91.2475 123.105 135.422 +88.3318 121.823 134.011 +88.2117 124.401 136.847 +88.0736 127.048 139.759 +93.0986 137.414 151.162 +93.102 140.66 154.733 +93.068 143.977 158.381 +92.994 147.366 162.109 +92.9921 151.013 166.122 +92.6402 154.235 169.667 +92.5416 158.027 173.838 +92.5664 162.207 178.436 +92.4197 166.273 182.908 +92.106 170.222 187.252 +92.0973 174.941 192.444 +91.973 179.673 197.649 +89.4799 179.886 197.884 +89.1205 184.499 202.959 +87.0844 185.785 204.373 +84.8755 186.739 205.423 +83.4153 189.423 208.375 +86.936 203.937 224.341 +83.4585 202.43 222.684 +81.1915 203.822 224.215 +77.743 202.207 222.438 +75.7216 204.288 224.727 +68.4695 191.839 211.032 +69.8698 203.572 223.939 +62.1831 188.673 207.55 +62.5606 197.98 217.787 +59.9499 198.207 218.037 +54.1516 187.393 206.141 +55.673 202.055 222.271 +49.5766 189.126 208.048 +50.1745 201.683 221.862 +47.8377 203.166 223.492 +44.8602 201.909 222.109 +42.5452 203.63 224.003 +39.4711 201.671 221.848 +37.0727 203.097 223.417 +34.1308 201.502 221.662 +31.7976 203.501 223.862 +28.8592 201.604 221.775 +26.3995 202.972 223.279 +23.4436 200.37 220.417 +21.0804 202.782 223.07 +18.284 201.085 221.203 +15.7531 202.192 222.421 +13.016 200.53 220.592 +10.5082 202.414 222.665 +7.82953 201.123 221.245 +5.25143 202.371 222.618 +2.60662 200.915 221.016 +1.82077e-14 202.604 222.875 +-2.60051 200.444 220.499 +-5.25666 202.573 222.84 +-7.80335 200.45 220.505 +-10.5222 202.682 222.96 +-13.0073 200.395 220.444 +-15.7741 202.461 222.717 +-18.2413 200.615 220.686 +-21.0246 202.245 222.479 +-23.4514 200.437 220.491 +-26.2687 201.967 222.174 +-28.6579 200.198 220.228 +-31.5153 201.695 221.874 +-33.961 200.5 220.56 +-36.8411 201.828 222.021 +-39.1056 199.804 219.794 +-42.072 201.365 221.512 +-44.4759 200.179 220.207 +-47.4153 201.372 221.519 +-49.6298 199.494 219.453 +-52.7543 201.249 221.383 +-54.944 199.41 219.36 +-58.1395 201.193 221.322 +-60.4284 199.789 219.778 +-63.5378 201.072 221.189 +-65.6245 199.115 219.036 +-68.9025 200.754 220.84 +-71.1775 199.426 219.379 +-74.5603 201.154 221.28 +-76.5161 199.016 218.928 +-80.1821 201.288 221.427 +-82.1224 199.19 219.118 +-85.6405 200.898 220.998 +-87.7607 199.291 219.23 +-91.3369 200.956 221.062 +-93.4894 199.45 219.405 +-97.0931 201.004 221.115 +-99.0942 199.215 219.146 +-102.88 200.979 221.087 +-104.849 199.163 219.089 +-108.899 201.257 221.393 +-110.911 199.539 219.503 +-114.785 201.142 221.266 +-116.694 199.271 219.208 +-120.586 200.761 220.847 +-122.535 198.989 218.898 +-126.48 200.429 220.482 +-128.716 199.124 219.047 +-133.694 201.987 222.195 +-136.973 202.174 222.401 +-141.45 204.044 224.459 +-143.274 202.052 222.268 +-143.128 197.395 217.144 +-142.739 192.575 211.842 +-146.821 193.827 213.22 +-148.96 192.481 211.738 +-1538.22 1945.98 2140.68 +-1563.41 1936.87 2130.66 +-473.611 574.728 632.23 +-478.98 569.467 626.442 +-482.45 562.09 618.327 +-481.755 550.137 605.178 +-483.312 541.062 595.195 +-487.961 535.623 589.212 +-489.592 527.034 579.764 +-493.402 520.963 573.085 +-495.24 512.97 564.292 +-499.282 507.407 558.173 +-501.596 500.219 550.265 +-505.121 494.373 543.835 +-506.984 487.035 535.763 +-511.193 482.07 530.301 +-513.313 475.242 522.789 +-517.436 470.372 517.432 +-519.788 463.985 510.407 +-523.596 458.996 504.918 +-525.467 452.406 497.669 +-529.2 447.515 492.288 +-530.769 440.889 485 +-535.323 436.822 480.526 +-537.178 430.623 473.707 +-142.099 111.915 123.112 +-142.365 110.162 121.184 +-142.861 108.617 119.484 +-143.529 107.225 117.953 +-142.347 104.493 114.948 +-142.265 102.62 112.888 +-146.551 103.88 114.273 +-148.587 103.5 113.855 +-157.494 107.805 118.59 +-157.402 105.877 116.47 +-158.484 104.761 115.242 +-159.622 103.687 114.06 +-162.266 103.579 113.942 +-162.434 101.889 112.082 +-587.684 362.234 398.475 +-588.645 356.52 392.19 +-593.248 353.051 388.374 +-595.089 347.967 382.781 +-599.884 344.635 379.116 +-602.264 339.934 373.944 +-606.343 336.214 369.852 +-608.35 331.372 364.526 +-613.33 328.165 360.998 +-615.358 323.393 355.748 +-619.768 319.891 351.896 +-622.217 315.391 346.946 +-627.008 312.087 343.311 +-629.011 307.406 338.162 +-633.952 304.17 334.603 +-635.908 299.512 329.478 +-641.005 296.339 325.988 +-643.084 291.775 320.967 +-383.754 170.855 187.949 +-384.279 167.864 184.659 +-655.737 281.002 309.116 +-135.264 56.8543 62.5426 +-135.655 55.9176 61.5121 +-382.211 154.479 169.934 +-381.443 151.137 166.258 +-383.649 148.993 163.9 +-381.738 145.278 159.813 +-384.745 143.456 157.809 +-687.147 250.961 276.07 +-689.494 246.602 271.275 +-381.947 133.744 147.125 +-380.638 130.458 143.511 +-114.373 38.3576 42.1953 +-114.237 37.4784 41.2281 +-111.65 35.8218 39.4057 +-111.204 34.8808 38.3706 +-109.65 33.613 36.9759 +-110.356 33.0502 36.3568 +-109.405 31.9988 35.2003 +-109.816 31.3553 34.4924 +-109.387 30.4778 33.5271 +-109.315 29.7086 32.6809 +-109.324 28.9672 31.8654 +-109.136 28.1797 30.9991 +-109.216 27.4674 30.2155 +-110.414 27.0323 29.7369 +-109.912 26.1811 28.8005 +-109.964 25.4692 28.0174 +-110.48 24.8654 27.3532 +-111.369 24.3407 26.7759 +-111.108 23.5646 25.9223 +-112.175 23.0689 25.3769 +-113.428 22.6006 24.8618 +-114.294 22.0452 24.2508 +-115.828 21.6071 23.7689 +-116.78 21.0482 23.1541 +-120.147 20.9009 22.992 +-127.788 21.4316 23.5758 +-159.663 25.7841 28.3637 +-160.966 24.9972 27.4981 +-161.87 24.1387 26.5538 +-163.351 23.3555 25.6922 +-3210.72 439.399 483.36 +-859.807 112.421 123.669 +-867.821 108.191 119.015 +-382.302 45.3439 49.8805 +-381.298 42.9204 47.2146 +-380.655 40.5543 44.6118 +-385.815 38.7857 42.6662 +-404.425 38.2326 42.0578 +-404.609 35.8308 39.4157 +-403.47 33.3233 36.6573 +-404.881 31.0298 34.1344 +-404.87 28.6239 31.4877 +-405.226 26.2462 28.8722 +-403.459 23.7435 26.119 +-404.848 21.4323 23.5766 +-404.512 19.027 20.9306 +-403.845 16.6147 18.277 +-403.746 14.233 15.657 +-404.115 11.8683 13.0558 +-403.454 9.47699 10.4252 +-146.05 2.57254 2.82992 +-143.678 1.68696 1.85574 +-146.494 0.859951 0.945988 +120.1 6.21725e-15 5.68434e-14 +119.895 0.710763 0.767842 +119.982 1.42266 1.53691 +120.759 2.14808 2.32059 +120.726 2.86385 3.09384 +120.485 3.57348 3.86045 +120.435 4.28758 4.6319 +121.074 5.03038 5.43435 +121.005 5.74791 6.2095 +121.026 6.47033 6.98993 +120.639 7.16978 7.74556 +120.443 7.8781 8.51076 +121.232 8.65569 9.3508 +120.918 9.35864 10.1102 +120.495 10.0502 10.8573 +121.155 10.8351 11.7052 +121.011 11.5529 12.4807 +120.759 12.2597 13.2443 +121.189 13.0389 14.086 +120.623 13.712 14.8131 +121.131 14.5091 15.6742 +120.645 15.1894 16.4093 +120.544 15.917 17.1952 +121.217 16.7529 18.0982 +121.192 17.4991 18.9044 +120.768 18.1874 19.648 +121.309 19.0249 20.5527 +121.06 19.7432 21.3287 +120.608 20.4273 22.0677 +121.115 21.2775 22.9862 +120.837 21.9947 23.761 +121.321 22.8554 24.6908 +120.927 23.555 25.4466 +120.524 24.2516 26.1992 +120.973 25.1241 27.1417 +121.313 25.9833 28.0699 +121.069 26.7224 28.8684 +121.385 27.5899 29.8056 +121.026 28.3084 30.5818 +121.224 29.1609 31.5027 +121.032 29.9248 32.328 +121.393 30.8315 33.3075 +120.712 31.4769 34.0047 +120.675 32.2909 34.884 +120.348 33.0304 35.683 +120.659 33.9506 36.6771 +120.494 34.7442 37.5344 +120.869 35.7009 38.5679 +120.588 36.4713 39.4002 +121.116 37.4947 40.5057 +120.63 38.2112 41.2798 +121.037 39.2173 42.3667 +121.157 40.1417 43.3654 +120.906 40.9493 44.2378 +118.771 41.1094 44.4107 +116.908 41.3414 44.6614 +112.929 40.7891 44.0647 +111.786 41.2301 44.5411 +107.578 40.508 43.7611 +105.574 40.5755 43.834 +103.49 40.5884 43.8479 +101.5 40.6142 43.8758 +99.1743 40.4797 43.7305 +97.1157 40.4272 43.6737 +95.4902 40.5333 43.7884 +95.8093 41.4628 44.7926 +95.9439 42.3252 45.7242 +95.3131 42.8549 46.2964 +96.4171 44.1779 47.7257 +96.2579 44.9402 48.5492 +96.1684 45.7429 49.4164 +96.3099 46.6663 50.4139 +95.7067 47.2354 51.0287 +95.9001 48.2051 52.0762 +95.9161 49.0988 53.0417 +95.9164 49.9963 54.0113 +95.9797 50.9394 55.0302 +96.026 51.887 56.0538 +95.8221 52.7107 56.9438 +95.8358 53.6656 57.9753 +95.9854 54.712 59.1058 +95.7351 55.5437 60.0042 +95.6972 56.5102 61.0483 +95.6416 57.4804 62.0965 +96.1629 58.8179 63.5414 +96.0672 59.7987 64.601 +95.9536 60.7829 65.6642 +96.0396 61.9105 66.8823 +95.4564 62.6191 67.6478 +94.2917 62.9445 67.9993 +93.7624 63.6932 68.8082 +94.9732 65.6516 70.9239 +94.8903 66.7497 72.1101 +95.2683 68.1967 73.6733 +95.6162 69.6531 75.2467 +95.3258 70.668 76.3431 +95.5519 72.0884 77.8776 +95.2185 73.1101 78.9813 +95.391 74.5435 80.5298 +95.0142 75.5706 81.6394 +95.1326 77.0161 83.201 +95.1573 78.4155 84.7128 +94.7127 79.4514 85.8319 +94.6845 80.861 87.3546 +94.6887 82.329 88.9405 +94.6015 83.7494 90.475 +94.6053 85.2839 92.1328 +94.0415 86.3328 93.2659 +93.693 87.601 94.636 +94.1319 89.6464 96.8456 +94.1813 91.3698 98.7074 +93.7969 92.708 100.153 +93.553 94.2181 101.784 +93.8293 96.2989 104.032 +93.6779 97.9903 105.86 +94.0812 100.318 108.374 +94.0077 102.197 110.404 +93.5795 103.735 112.066 +93.8399 106.091 114.611 +93.3871 107.697 116.346 +93.95 110.54 119.418 +93.462 112.217 121.229 +93.3259 114.37 123.555 +93.7617 117.308 126.728 +93.5657 119.538 129.138 +93.6888 122.257 132.075 +93.6582 124.866 134.894 +92.8538 126.511 136.671 +89.7346 124.98 135.017 +89.6755 127.715 137.972 +92.9338 135.383 146.255 +93.0572 138.711 149.85 +92.98 141.863 153.256 +93.068 145.4 157.076 +92.9159 148.697 160.638 +92.6094 151.878 164.075 +92.7151 155.885 168.404 +92.5782 159.652 172.473 +92.5306 163.746 176.896 +92.4197 167.916 181.401 +92.1402 171.968 185.778 +92.0306 176.542 190.719 +91.3219 180.164 194.632 +89.6068 181.922 196.532 +87.3282 182.576 197.238 +88.9788 191.703 207.098 +85.3725 189.69 204.923 +83.9265 192.468 207.924 +85.5027 202.557 218.824 +78.7819 192.975 208.473 +76.1963 193.173 208.686 +76.5662 201.115 217.266 +70.2783 191.476 206.853 +70.944 200.736 216.857 +68.7001 202.143 218.376 +65.4081 200.42 216.515 +63.1844 201.929 218.146 +60.0895 200.632 216.744 +57.8533 202.181 218.417 +54.6342 200.245 216.326 +52.3549 201.699 217.897 +49.3657 200.393 216.486 +47.0868 201.953 218.171 +44.1359 200.612 216.723 +41.7798 201.942 218.159 +38.8185 200.297 216.382 +36.4633 201.733 217.933 +33.5648 200.119 216.19 +31.2017 201.662 217.856 +28.3512 200.013 216.075 +25.9027 201.121 217.272 +23.1376 199.709 215.747 +20.7316 201.397 217.571 +18.0276 200.224 216.304 +15.5071 201.002 217.144 +12.8415 199.797 215.842 +10.3337 201.02 217.163 +7.69341 199.579 215.606 +5.16242 200.908 217.042 +2.56735 199.844 215.893 +1.63203e-14 201.21 217.368 +-2.56909 199.98 216.039 +-5.17115 201.247 217.409 +-7.69079 199.511 215.533 +-10.3163 200.68 216.796 +-12.8241 199.525 215.548 +-15.4705 200.527 216.631 +-17.9422 199.275 215.278 +-20.6688 200.787 216.912 +-23.0591 199.032 215.016 +-25.8242 200.512 216.614 +-28.2362 199.202 215.199 +-31.0659 200.783 216.908 +-33.361 198.904 214.878 +-36.2196 200.385 216.477 +-38.5705 199.017 214.999 +-41.4736 200.463 216.561 +-43.7664 198.933 214.908 +-46.6488 200.075 216.142 +-48.9201 198.584 214.532 +-51.7993 199.558 215.584 +-54.1968 198.642 214.594 +-57.1855 199.847 215.896 +-59.2522 197.836 213.724 +-62.519 199.803 215.849 +-64.6938 198.231 214.15 +-67.8227 199.561 215.587 +-69.9636 197.962 213.86 +-73.3265 199.781 215.825 +-75.4395 198.155 214.068 +-78.6551 199.406 215.42 +-81.0534 198.54 214.484 +-84.3175 199.749 215.791 +-86.5679 198.525 214.468 +-89.9043 199.759 215.801 +-91.9558 198.117 214.027 +-95.5481 199.761 215.803 +-97.5395 198.027 213.93 +-101.121 199.497 215.518 +-103.48 198.506 214.447 +-106.813 199.353 215.362 +-109.02 198.076 213.982 +-112.492 199.071 215.057 +-114.715 197.828 213.714 +-118.675 199.533 215.557 +-120.851 198.194 214.111 +-124.8 199.722 215.76 +-126.962 198.351 214.28 +-130.847 199.639 215.672 +-133.697 199.289 215.293 +-138.915 202.367 218.618 +-141.208 201.107 217.257 +-143.216 199.468 215.487 +-143.274 195.207 210.883 +-144.142 192.172 207.604 +-146.559 191.249 206.608 +-153.376 195.951 211.688 +-156.938 196.348 212.116 +-474.532 581.537 628.239 +-477.651 573.499 619.555 +-479.65 564.351 609.672 +-483.278 557.33 602.088 +-485.99 549.437 593.56 +-489.372 542.481 586.046 +-491.606 534.432 577.35 +-495.928 528.804 571.271 +-497.909 520.831 562.658 +-501.38 514.574 555.898 +-503.385 506.965 547.677 +-507.5 501.61 541.892 +-509.737 494.52 534.233 +-513.632 489.157 528.439 +-516.017 482.466 521.211 +-519.637 477.041 515.35 +-522.014 470.579 508.369 +-525.239 464.987 502.329 +-527.683 458.805 495.65 +-532.063 454.383 490.873 +-533.286 447.358 483.284 +-537.931 443.289 478.888 +-540.263 437.377 472.501 +-142.749 113.537 122.655 +-143.086 111.815 120.794 +-143.524 110.199 119.049 +-142.525 107.527 116.162 +-142.55 105.677 114.163 +-143.015 104.181 112.548 +-150.061 107.42 116.046 +-155.048 109.067 117.826 +-157.074 108.579 117.299 +-157.685 107.116 115.718 +-159.839 106.701 115.27 +-160.772 105.466 113.936 +-161.904 104.369 112.75 +-585.449 370.859 400.642 +-589.38 366.87 396.332 +-591.692 361.907 390.971 +-596.693 358.611 387.41 +-597.805 353.01 381.359 +-603.002 349.85 377.945 +-604.715 344.691 372.371 +-608.966 341.006 368.391 +-610.992 336.101 363.092 +-615.991 332.846 359.576 +-617.958 327.969 354.308 +-622.465 324.459 350.515 +-625.172 320.021 345.721 +-629.983 316.667 342.097 +-631.761 311.802 336.842 +-637.29 308.794 333.592 +-2683.95 1276.63 1379.15 +-2700.25 1260.67 1361.91 +-645.903 295.95 319.717 +-651.181 292.786 316.298 +-383.44 169.153 182.737 +-383.659 166.034 179.368 +-661.138 280.638 303.175 +-134.973 56.1863 60.6984 +-668.933 273.037 294.963 +-382.219 152.941 165.223 +-382.437 149.99 162.036 +-383.827 147.517 159.364 +-382.121 143.885 155.44 +-382.725 141.161 152.498 +-692.761 250.22 270.314 +-697.989 246.825 266.647 +-384.024 132.919 143.594 +-113.746 38.5245 41.6183 +-112.709 37.3425 40.3414 +-110.747 35.8834 38.765 +-111.023 35.1681 37.9923 +-109.832 34.0016 36.7321 +-109.625 33.1558 35.8184 +-109.497 32.3421 34.9394 +-109.54 31.5856 34.1221 +-109.572 30.8311 33.307 +-109.593 30.0786 32.4941 +-109.231 29.2286 31.5758 +-109.509 28.5556 30.8488 +-109.872 27.9053 30.1463 +-109.662 27.1136 29.291 +-109.818 26.4171 28.5386 +-110.247 25.7872 27.8581 +-111.238 25.2836 27.314 +-111.083 24.5183 26.4872 +-112.539 24.104 26.0397 +-112.748 23.416 25.2965 +-113.332 22.8047 24.636 +-114.871 22.3754 24.1723 +-116.021 21.857 23.6122 +-117.94 21.4672 23.1912 +-121.89 21.4136 23.1332 +-159.614 27.0337 29.2047 +-158.788 25.8962 27.9758 +-160.674 25.1984 27.222 +-163.53 24.6272 26.6049 +-163.351 23.5863 25.4805 +-855.768 118.272 127.77 +-861.574 113.765 122.901 +-870.869 109.644 118.449 +-381.416 45.6859 49.3547 +-382.186 43.4455 46.9345 +-380.951 40.987 44.2786 +-903.367 91.7122 99.0773 +-405.02 38.6672 41.7724 +-404.014 36.1318 39.0334 +-405.058 33.7851 36.4983 +-404.185 31.2827 33.7949 +-405.268 28.9352 31.2588 +-404.629 26.4666 28.592 +-404.555 24.0432 25.9741 +-403.951 21.5962 23.3305 +-404.911 19.234 20.7786 +-405.742 16.8578 18.2115 +-403.746 14.3737 15.528 +-404.415 11.9945 12.9578 +-404.653 9.59911 10.37 +-146.05 2.59797 2.8066 +-146.578 1.73801 1.87759 +-145.994 0.865481 0.934985 +120.1 6.21725e-15 5.68434e-14 +119.895 0.717661 0.761398 +119.982 1.43647 1.52401 +120.759 2.16893 2.30111 +119.927 2.8725 3.04756 +120.585 3.61115 3.83123 +120.435 4.32919 4.59303 +120.275 5.0457 5.35321 +121.005 5.80369 6.15739 +120.926 6.52774 6.92557 +120.938 7.25727 7.69956 +120.443 7.95455 8.43934 +121.232 8.7397 9.27234 +120.918 9.44947 10.0254 +120.594 10.1561 10.7751 +120.361 10.8687 11.531 +120.912 11.6554 12.3658 +120.66 12.3686 13.1224 +121.189 13.1655 13.9678 +120.623 13.845 14.6888 +121.033 14.638 15.5301 +120.35 15.2993 16.2318 +120.642 16.0846 17.0648 +120.335 16.7924 17.8158 +120.214 17.5262 18.5944 +120.67 18.3491 19.4673 +120.432 19.0707 20.2329 +120.866 19.9029 21.1158 +120.511 20.6089 21.8649 +121.018 21.4669 22.7751 +120.741 22.1904 23.5428 +121.128 23.0406 24.4448 +120.734 23.7458 25.193 +121.387 24.6623 26.1653 +121.355 25.4482 26.9991 +121.313 26.2354 27.8343 +121.069 26.9818 28.6261 +121.48 27.8795 29.5785 +121.121 28.6055 30.3489 +121.318 29.4668 31.2626 +121.314 30.2856 32.1314 +120.55 30.9145 32.7986 +120.619 31.7578 33.6932 +120.954 32.6797 34.6713 +120.348 33.351 35.3835 +120.751 34.3063 36.3971 +121.138 35.269 37.4184 +121.052 36.1021 38.3023 +120.405 36.7695 39.0104 +120.843 37.7732 40.0753 +120.448 38.5241 40.8719 +120.946 39.5684 41.9798 +121.157 40.5313 43.0015 +121.622 41.5916 44.1264 +120.019 41.9443 44.5006 +117.884 42.091 44.6562 +114.871 41.8934 44.4466 +112.489 41.8921 44.4451 +109.677 41.6992 44.2405 +107.663 41.7799 44.3262 +104.962 41.5654 44.0985 +103.137 41.6698 44.2094 +99.7743 41.1198 43.6258 +98.3947 41.3571 43.8775 +95.3206 40.854 43.3438 +95.1346 41.5704 44.1039 +95.9439 42.736 45.3405 +95.9803 43.5736 46.2292 +96.0855 44.4533 47.1625 +96.2579 45.3763 48.1418 +96.0046 46.1082 48.9182 +96.3913 47.159 50.0331 +95.7876 47.7342 50.6433 +96.5432 48.9993 51.9855 +95.8363 49.534 52.5528 +95.9164 50.4815 53.5581 +95.8221 51.3493 54.4787 +96.026 52.3905 55.5834 +95.3558 52.9633 56.1911 +95.8358 54.1865 57.4888 +95.8322 55.1548 58.5162 +95.8872 56.1718 59.5952 +95.8481 57.1486 60.6315 +95.7914 58.1292 61.6718 +95.5684 59.0216 62.6186 +95.6249 60.101 63.7639 +95.9536 61.3728 65.1132 +95.967 62.4642 66.271 +95.0248 62.9409 66.7768 +93.7924 63.2189 67.0717 +93.3381 64.0203 67.922 +93.7817 65.4571 69.4464 +95.5155 67.8415 71.9761 +95.2683 68.8586 73.0551 +95.6162 70.3291 74.6153 +95.8663 71.7586 76.1318 +94.9496 72.3292 76.7373 +95.2185 73.8197 78.3186 +95.3254 75.2148 79.7987 +95.0792 76.3561 81.0096 +95.1968 77.8157 82.5581 +94.5848 78.7005 83.4969 +94.7127 80.2225 85.1116 +94.6845 81.6458 86.6216 +94.6887 83.128 88.1942 +94.1754 84.1815 89.3119 +94.0637 85.6185 90.8364 +94.4579 87.5561 92.8922 +94.4571 89.1728 94.6074 +94.19 90.5727 96.0926 +94.1813 92.2566 97.8791 +94.4199 94.2299 99.9727 +93.7207 95.3033 101.112 +93.5533 96.9474 102.856 +93.8958 99.1718 105.216 +93.5976 100.771 106.913 +93.9017 103.072 109.354 +93.6317 104.8 111.187 +93.8399 107.121 113.649 +93.8946 109.333 115.996 +93.45 111.019 117.785 +93.5112 113.366 120.275 +93.8591 116.14 123.218 +93.714 118.386 125.601 +93.5657 120.698 128.054 +93.6426 123.383 130.903 +93.3858 125.711 133.373 +93.1661 128.168 135.979 +92.8032 130.509 138.463 +93.1626 133.969 142.133 +92.9338 136.697 145.028 +93.0572 140.057 148.592 +92.98 143.24 151.97 +92.9883 146.685 155.624 +92.8768 150.077 159.223 +92.9538 153.922 163.303 +92.6777 157.335 166.923 +92.5782 161.202 171.026 +92.4948 165.272 175.344 +92.3847 169.481 179.81 +92.3454 174.024 184.629 +91.8636 177.932 188.776 +90.4103 180.097 191.073 +88.6549 181.737 192.812 +87.0501 183.761 194.96 +91.0838 198.143 210.218 +86.4543 193.957 205.778 +86.9371 201.307 213.576 +83.1598 198.919 211.042 +81.2939 201.061 213.315 +78.9398 202.07 214.385 +75.5396 200.344 212.553 +73.2539 201.521 213.802 +70.1503 200.417 212.631 +67.7778 201.364 213.636 +64.8886 200.758 212.993 +62.5606 201.877 214.18 +59.4316 200.362 212.572 +57.071 201.383 213.656 +54.1604 200.435 212.65 +51.7993 201.495 213.775 +48.7881 199.971 212.158 +46.4141 201 213.25 +43.589 200.049 212.241 +41.2927 201.525 213.807 +38.4139 200.132 212.329 +36.049 201.376 213.649 +33.1799 199.744 211.917 +30.8568 201.368 213.64 +28.0541 199.837 212.016 +25.6151 200.818 213.057 +22.9257 199.801 211.978 +20.4386 200.478 212.696 +17.8262 199.908 212.091 +15.3711 201.172 213.432 +12.7325 200.023 212.213 +10.2151 200.64 212.868 +7.63058 199.87 212.051 +5.10657 200.663 212.892 +2.53855 199.52 211.68 +1.70974e-14 200.831 213.07 +-2.54029 199.657 211.825 +-5.11356 200.937 213.183 +-7.62535 199.733 211.906 +-10.2011 200.366 212.577 +-12.6758 199.132 211.268 +-15.2926 200.145 212.342 +-17.7834 199.429 211.583 +-20.4456 200.547 212.769 +-22.8551 199.186 211.325 +-25.5453 200.272 212.477 +-27.987 199.36 211.51 +-30.6268 199.867 212.048 +-33.0667 199.062 211.194 +-35.7199 199.538 211.698 +-38.1398 198.704 210.814 +-40.8891 199.556 211.717 +-43.2786 198.625 210.73 +-46.0543 199.442 211.597 +-48.3094 198.009 210.076 +-51.2609 199.401 211.553 +-53.559 198.21 210.29 +-56.4031 199.026 211.156 +-58.7737 198.143 210.219 +-61.625 198.857 210.977 +-63.9579 197.878 209.937 +-66.8555 198.624 210.729 +-69.2166 197.75 209.801 +-72.2863 198.858 210.977 +-74.5882 197.82 209.876 +-77.801 199.155 211.292 +-80.0646 198.021 210.089 +-83.1047 198.787 210.902 +-85.375 197.69 209.738 +-88.6471 198.877 210.998 +-90.9334 197.815 209.871 +-94.2811 199.025 211.154 +-96.4923 197.802 209.857 +-99.7866 198.774 210.888 +-102.245 198.04 210.109 +-105.65 199.096 211.23 +-107.829 197.813 209.869 +-111.273 198.826 210.943 +-113.469 197.577 209.619 +-116.915 198.481 210.577 +-119.435 197.774 209.827 +-123.041 198.819 210.936 +-125.167 197.446 209.479 +-129.139 198.945 211.07 +-131.209 197.478 209.513 +-137.14 201.72 214.014 +-140.002 201.325 213.595 +-143.26 201.466 213.744 +-142.962 196.672 208.658 +-142.644 192.02 203.722 +-144.066 189.82 201.388 +-149.292 192.584 204.321 +-155.22 196.084 208.034 +-476.277 589.341 625.258 +-479.374 581.154 616.572 +-481.45 571.967 606.825 +-485.613 565.458 599.92 +-487.226 556.18 590.076 +-491.671 550.319 583.857 +-493.832 542.062 575.097 +-497.539 535.672 568.318 +-499.271 527.324 559.461 +-502.925 521.17 552.932 +-504.951 513.477 544.77 +-509.256 508.231 539.204 +-511.286 500.837 531.36 +-515.722 495.915 526.138 +-517.956 488.98 518.781 +-521.481 483.38 512.839 +-523.519 476.515 505.556 +-527.857 471.84 500.596 +-529.838 465.149 493.498 +-533.557 460.081 488.121 +-535.678 453.726 481.378 +-540.158 449.444 476.835 +-141.542 115.699 122.75 +-143.398 115.161 122.179 +-143.218 113.004 119.891 +-143.192 111.012 117.777 +-142.726 108.724 115.35 +-142.887 106.955 113.473 +-147.448 108.453 115.063 +-154.329 111.547 118.345 +-156.993 111.507 118.303 +-158.265 110.465 117.197 +-158.533 108.737 115.364 +-160.481 108.169 114.762 +-162.067 107.348 113.89 +-585.16 380.876 404.088 +-587.35 375.675 398.57 +-592.107 372.144 394.824 +-594.367 367.072 389.443 +-598.041 362.91 385.027 +-600.598 358.101 379.926 +-604.143 353.913 375.482 +-606.401 349.006 370.276 +-611.204 345.581 366.642 +-613.479 340.744 361.51 +-617.791 337.059 357.601 +-620.952 332.757 353.036 +-624.528 328.694 348.726 +-626.849 323.994 343.739 +-631.269 320.392 339.918 +-385.577 192.146 203.856 +-2667.45 1305.04 1384.57 +-385.329 185.062 196.34 +-385.197 181.583 192.649 +-2716.34 1256.7 1333.29 +-653.183 296.535 314.607 +-381.847 170.085 180.45 +-383.912 167.756 177.98 +-381.452 163.489 173.453 +-668.299 280.898 298.017 +-134.232 55.321 58.6925 +-2823.13 1140.61 1210.13 +-382.437 151.446 160.676 +-383.305 148.746 157.811 +-382.121 145.282 154.136 +-381.495 142.073 150.732 +-694.615 253.324 268.763 +-700.65 250.171 265.417 +-114.673 40.076 42.5184 +-113.209 38.7148 41.0742 +-111.72 37.3742 39.6519 +-111.199 36.3793 38.5964 +-110.57 35.3644 37.5197 +-109.923 34.3599 36.454 +-109.717 33.5055 35.5474 +-108.947 32.4919 34.4721 +-108.896 31.7046 33.6368 +-109.203 31.0253 32.9161 +-109.5 30.3448 32.1941 +-109.696 29.638 31.4442 +-109.696 28.8819 30.6421 +-109.872 28.1762 29.8933 +-110.32 27.541 29.2194 +-110.383 26.8109 28.4449 +-110.72 26.1491 27.7428 +-111.333 25.5508 27.1079 +-111.369 24.8198 26.3324 +-112.252 24.276 25.7555 +-112.366 23.5631 24.9991 +-113.908 23.1429 24.5533 +-115.255 22.6681 24.0496 +-116.696 22.1974 23.5502 +-118.616 21.7999 23.1284 +-124.988 22.171 23.5222 +-161.263 27.5781 29.2589 +-161.024 26.5158 28.1318 +-162.33 25.7052 27.2718 +-164.604 25.0296 26.555 +-164.72 24.0148 25.4784 +-856.258 119.489 126.771 +-863.047 115.065 122.078 +-872.245 110.883 117.64 +-380.628 46.034 48.8395 +-382.383 43.8899 46.5647 +-380.853 41.3741 43.8956 +-905.147 92.7847 98.4394 +-405.317 39.0712 41.4523 +-404.609 36.5362 38.7628 +-404.76 34.0879 36.1654 +-405.775 31.7105 33.6431 +-404.87 29.1873 30.9661 +-403.733 26.6642 28.2893 +-404.654 24.2826 25.7625 +-405.347 21.8811 23.2147 +-404.313 19.3919 20.5737 +-405.742 17.0214 18.0587 +-404.645 14.5455 15.4319 +-404.415 12.111 12.849 +-404.354 9.68507 10.2753 +-147.849 2.6555 2.81734 +-143.078 1.71299 1.81738 +-146.294 0.875678 0.929045 +120.1 6.21725e-15 5.68434e-14 +119.895 0.724501 0.754893 +119.982 1.45016 1.51099 +119.759 2.17147 2.26256 +120.826 2.92162 3.04418 +120.585 3.64557 3.7985 +120.335 4.36682 4.55001 +120.275 5.09379 5.30747 +120.206 5.82037 6.06452 +120.727 6.57909 6.85508 +120.838 7.32041 7.6275 +120.542 8.03701 8.37416 +121.133 8.81579 9.18561 +121.017 9.54742 9.94793 +121.388 10.3205 10.7534 +120.361 10.9722 11.4325 +120.12 11.6895 12.1798 +120.66 12.4865 13.0103 +120.399 13.2043 13.7582 +120.721 13.9884 14.5752 +121.131 14.7895 15.4099 +120.449 15.4578 16.1063 +120.642 16.2379 16.919 +121.217 17.0767 17.793 +120.997 17.8085 18.5556 +120.768 18.539 19.3166 +121.309 19.3926 20.2061 +120.866 20.0926 20.9354 +121.287 20.9393 21.8177 +120.244 21.5328 22.436 +120.548 22.366 23.3043 +121.032 23.2416 24.2166 +120.927 24.0103 25.0175 +121.291 24.8777 25.9213 +121.164 25.6502 26.7262 +121.313 26.4855 27.5965 +120.974 27.2175 28.3593 +121.385 28.1232 29.303 +121.877 29.0585 30.2775 +121.789 29.8632 31.1159 +121.314 30.5743 31.8569 +121.018 31.3304 32.6447 +120.619 32.0605 33.4054 +120.768 32.9404 34.3222 +120.441 33.6948 35.1083 +120.659 34.6068 36.0585 +120.218 35.3346 36.8168 +119.86 36.0872 37.6011 +120.223 37.0636 38.6184 +120.752 38.1045 39.703 +120.267 38.8327 40.4617 +120.766 39.8859 41.559 +121.517 41.039 42.7606 +121.174 41.8335 43.5884 +121.533 42.8785 44.6772 +119.569 43.0997 44.9077 +116.108 42.7478 44.541 +113.543 42.6878 44.4785 +110.115 42.2644 44.0374 +109.143 42.7577 44.5514 +105.742 42.2731 44.0464 +104.429 42.5941 44.3809 +100.889 41.9754 43.7362 +99.8442 42.3663 44.1435 +97.1863 42.0506 43.8146 +95.4719 42.1154 43.8821 +95.6923 43.0301 44.8352 +95.2298 43.645 45.4758 +95.9196 44.7995 46.6788 +96.5052 45.9265 47.8531 +96.4961 46.7859 48.7485 +95.9028 47.3672 49.3542 +95.7876 48.1891 50.2106 +96.4628 49.425 51.4984 +96.3953 50.2978 52.4077 +95.9164 50.9627 53.1005 +95.9797 51.924 54.1021 +95.8695 52.8036 55.0187 +95.8221 53.7296 55.9835 +95.8358 54.7029 56.9977 +95.9854 55.7695 58.109 +95.7351 56.6172 58.9923 +95.6217 57.557 59.9715 +95.6416 58.5914 61.0493 +95.7171 59.6767 62.1801 +95.6249 60.6738 63.2191 +95.5148 61.6744 64.2616 +94.6614 62.2016 64.8109 +94.3054 63.0598 65.7051 +93.0079 63.2875 65.9424 +92.9845 64.3856 67.0866 +92.8705 65.439 68.1841 +95.1682 68.2391 71.1017 +95.2683 69.5148 72.4309 +95.6162 70.9994 73.9778 +95.2582 71.9827 75.0023 +94.9496 73.0186 76.0816 +95.1522 74.4713 77.5953 +95.391 75.9843 79.1717 +95.0142 77.0312 80.2626 +95.1326 78.5047 81.7979 +94.5212 79.3966 82.7272 +94.5239 80.8258 84.2163 +94.6845 82.4239 85.8815 +94.5656 83.8108 87.3266 +94.6624 85.4228 89.0062 +94.3646 86.7108 90.3482 +93.982 87.9454 91.6346 +94.3983 89.9666 93.7406 +94.3642 91.6049 95.4476 +94.1239 93.0791 96.9837 +94.0234 94.7285 98.7022 +93.7766 96.2691 100.308 +93.9397 98.2751 102.398 +93.8413 100.059 104.256 +93.5976 101.732 105.999 +93.4248 103.527 107.869 +93.684 105.858 110.299 +93.7369 108.022 112.554 +93.9454 110.435 115.068 +93.4 112.018 116.717 +93.5112 114.446 119.247 +93.3743 116.642 121.535 +93.2845 118.966 123.957 +93.5187 121.787 126.896 +93.5964 124.498 129.72 +93.3858 126.909 132.233 +93.3446 129.638 135.076 +92.9785 132.001 137.539 +93.2057 135.309 140.985 +93.0183 138.125 143.92 +92.9328 141.203 147.126 +92.98 144.605 150.671 +92.9883 148.083 154.295 +92.9159 151.571 157.929 +92.9538 155.389 161.908 +92.7526 158.963 165.631 +92.6149 162.803 169.632 +92.4948 166.847 173.846 +92.3147 170.967 178.139 +92.1402 175.292 182.645 +91.4965 178.91 186.415 +89.6615 180.307 187.871 +87.6713 181.433 189.044 +89.4604 190.649 198.646 +90.8432 199.503 207.872 +89.0564 201.699 210.16 +86.0566 201.167 209.606 +83.6284 201.946 210.418 +80.3586 200.642 209.059 +78.1892 202.056 210.533 +74.9888 200.778 209.201 +72.4798 201.291 209.735 +69.5901 200.711 209.131 +67.2379 201.664 210.123 +64.1743 200.44 208.849 +61.729 201.091 209.527 +58.9531 200.642 209.059 +56.5749 201.534 209.989 +53.7413 200.78 209.202 +51.3651 201.71 210.172 +48.5405 200.852 209.278 +46.023 201.206 209.647 +43.2343 200.312 208.715 +40.8195 201.115 209.551 +38.0745 200.255 208.655 +35.6468 201.027 209.46 +32.9082 199.996 208.386 +30.5641 201.358 209.805 +27.8911 200.57 208.984 +25.3972 201.007 209.439 +22.6825 199.566 207.937 +20.2643 200.662 209.079 +17.6613 199.947 208.335 +15.1984 200.807 209.231 +12.6147 200.062 208.454 +10.1278 200.822 209.246 +7.54158 199.422 207.787 +5.0612 200.775 209.198 +2.51586 199.621 207.995 +1.69864e-14 200.252 208.652 +-2.50888 199.067 207.418 +-5.05247 200.429 208.837 +-7.55467 199.768 208.148 +-10.1034 200.338 208.742 +-12.5624 199.231 207.589 +-15.1565 200.254 208.654 +-17.6247 199.533 207.903 +-20.1945 199.972 208.36 +-22.659 199.359 207.722 +-25.3187 200.387 208.793 +-27.6803 199.054 207.404 +-30.3446 199.913 208.299 +-32.7837 199.24 207.598 +-35.5005 200.203 208.601 +-37.8004 198.813 207.153 +-40.5411 199.743 208.122 +-42.9239 198.874 207.217 +-45.6789 199.701 208.079 +-47.9793 198.53 206.858 +-50.74 199.256 207.614 +-53.1034 198.396 206.719 +-55.907 199.156 207.51 +-58.2952 198.403 206.726 +-61.126 199.127 207.48 +-63.5034 198.344 206.665 +-66.3156 198.898 207.241 +-68.6329 197.951 206.255 +-71.6815 199.074 207.425 +-74.0123 198.164 206.476 +-76.921 198.779 207.118 +-79.2362 197.84 206.139 +-82.1675 198.418 206.742 +-84.665 197.914 206.217 +-87.6823 198.587 206.918 +-90.2117 198.116 206.427 +-93.4467 199.143 207.497 +-95.6674 197.981 206.286 +-98.6797 198.443 206.767 +-101.21 197.904 206.206 +-104.521 198.846 207.188 +-106.673 197.558 205.846 +-110.306 198.975 207.322 +-112.516 197.785 206.082 +-115.941 198.703 207.038 +-118.517 198.123 206.434 +-121.635 198.419 206.743 +-124.051 197.549 205.836 +-127.634 198.501 206.828 +-130.131 197.722 206.016 +-135.703 201.509 209.962 +-138.409 200.931 209.36 +-142.427 202.203 210.685 +-143.096 198.732 207.069 +-143.007 194.343 202.496 +-143.465 190.831 198.836 +-147.085 191.546 199.581 +-150.305 191.684 199.725 +-1588.48 1984.3 2067.54 +-480.753 588.381 613.063 +-483.15 579.457 603.764 +-487.034 572.518 596.534 +-488.565 563.024 586.643 +-492.821 556.862 580.222 +-495.369 548.931 571.958 +-498.936 542.296 565.045 +-501.122 534.324 556.739 +-504.636 527.927 550.073 +-506.573 520.035 541.85 +-510.672 514.501 536.084 +-513.121 507.425 528.711 +-516.768 501.655 522.699 +-519.191 494.817 515.574 +-522.73 489.156 509.675 +-525.565 482.937 503.196 +-528.953 477.326 497.349 +-531.562 471.11 490.873 +-535.425 466.092 485.644 +-537.691 459.772 479.059 +-142.736 119.897 124.927 +-142.699 117.757 122.697 +-142.879 115.837 120.696 +-143.808 114.551 119.356 +-142.596 111.603 116.285 +-142.324 109.451 114.042 +-145.319 109.812 114.418 +-148.812 110.499 115.135 +-157.151 114.669 119.479 +-157.34 112.818 117.551 +-158.265 111.518 116.196 +-159.382 110.362 114.991 +-161.266 109.734 114.337 +-162.93 108.948 113.518 +-586.973 385.698 401.877 +-589.325 380.53 396.493 +-593.14 376.346 392.134 +-595.408 371.219 386.791 +-600.063 367.607 383.028 +-602.636 362.741 377.957 +-606.5 358.681 373.727 +-608.622 353.623 368.457 +-612.593 349.667 364.335 +-615.577 345.168 359.648 +-619.904 341.435 355.758 +-622.056 336.525 350.642 +-627.304 333.302 347.283 +-629.325 328.373 342.148 +-633.118 324.393 338.001 +-636.777 320.352 333.79 +-2667.45 1317.47 1372.74 +-387.295 187.779 195.656 +-382.23 181.902 189.532 +-2716.34 1268.68 1321.9 +-380.502 174.389 181.704 +-381.344 171.479 178.673 +-383.49 169.169 176.265 +-383.063 165.744 172.697 +-387.184 164.292 171.184 +-135.175 56.2405 58.5998 +-137.602 56.1245 58.4789 +-382.956 153.097 159.519 +-381.999 149.652 155.93 +-381.859 146.566 152.714 +-381.495 143.427 149.444 +-383.288 141.117 147.036 +-115.578 41.6609 43.4085 +-113.871 40.175 41.8603 +-112.493 38.8366 40.4658 +-111.54 37.6697 39.2499 +-110.928 36.6366 38.1734 +-110.207 35.5845 37.0772 +-109.286 34.4865 35.9331 +-109.9 33.8811 35.3024 +-108.855 32.7739 34.1488 +-109.816 32.2773 33.6313 +-109.018 31.268 32.5796 +-109.408 30.6081 31.8921 +-109.696 29.9204 31.1756 +-109.322 29.0579 30.2769 +-109.965 28.4689 29.6632 +-110.32 27.8034 28.9698 +-110.195 27.0202 28.1536 +-110.72 26.3984 27.5057 +-111.902 25.926 27.0136 +-111.654 25.1205 26.1743 +-113.206 24.7156 25.7524 +-113.322 23.9901 24.9964 +-115.154 23.6191 24.6099 +-115.64 22.9606 23.9237 +-117.081 22.483 23.4261 +-119.485 22.1689 23.0989 +-147.836 26.4738 27.5844 +-160.972 27.7907 28.9565 +-161.413 26.8331 27.9588 +-162.233 25.9347 27.0226 +-163.725 25.1332 26.1875 +-164.72 24.2437 25.2607 +-859.198 121.042 126.119 +-864.814 116.4 121.283 +-382.879 49.1369 51.1981 +-381.022 46.5208 48.4723 +-382.679 44.3424 46.2026 +-379.667 41.6384 43.3851 +-406.584 42.0753 43.8404 +-405.02 39.4146 41.068 +-406.393 37.0471 38.6012 +-404.76 34.4128 35.8564 +-404.881 31.9422 33.2821 +-404.572 29.4438 30.679 +-404.23 26.9516 28.0822 +-404.654 24.514 25.5424 +-403.752 22.0027 22.9257 +-404.612 19.5912 20.413 +-404.444 17.1287 17.8472 +-404.345 14.6732 15.2888 +-404.415 12.2264 12.7393 +-403.754 9.76291 10.1725 +-147.749 2.67899 2.79137 +-145.778 1.76194 1.83585 +-146.794 0.88705 0.924261 +120.1 6.21725e-15 5.68434e-14 +119.995 0.73189 0.748948 +119.982 1.46373 1.49785 +120.759 2.21009 2.26161 +120.726 2.94653 3.0152 +119.686 3.65225 3.73738 +120.335 4.40769 4.51043 +120.275 5.14146 5.2613 +120.306 5.87971 6.01675 +120.926 6.65163 6.80667 +120.639 7.37677 7.5487 +120.542 8.11223 8.30131 +121.133 8.8983 9.1057 +121.017 9.63678 9.86139 +121.488 10.4256 10.6686 +121.254 11.1571 11.4171 +121.11 11.8962 12.1734 +120.66 12.6033 12.8971 +121.288 13.4263 13.7392 +120.623 14.1078 14.4366 +121.033 14.9158 15.2635 +120.449 15.6025 15.9662 +120.544 16.3765 16.7582 +120.433 17.125 17.5242 +120.997 17.9752 18.3941 +120.67 18.6973 19.1331 +120.432 19.4326 19.8856 +120.866 20.2806 20.7533 +120.608 21.017 21.5069 +120.922 21.8568 22.3662 +120.451 22.5573 23.083 +121.225 23.4965 24.0442 +120.734 24.1965 24.7605 +120.715 24.9914 25.5739 +121.259 25.9107 26.5146 +121.313 26.7333 27.3564 +121.735 27.645 28.2894 +121.196 28.342 29.0026 +121.594 29.2622 29.9443 +121.224 30.0027 30.702 +120.375 30.6214 31.3351 +121.299 31.6971 32.4359 +120.712 32.3856 33.1405 +120.675 33.2231 33.9974 +121.09 34.1934 34.9904 +120.659 34.9307 35.7449 +120.218 35.6653 36.4966 +120.593 36.6479 37.5021 +120.223 37.4105 38.2824 +120.57 38.4032 39.2983 +120.267 39.1961 40.1097 +120.676 40.229 41.1667 +120.259 40.9942 41.9497 +121.174 42.2251 43.2093 +121.088 43.1212 44.1262 +119.569 43.503 44.517 +117.52 43.6729 44.6908 +115.125 43.6876 44.7059 +111.864 43.3377 44.3479 +109.665 43.3644 44.3752 +107.127 43.2279 44.2354 +105.205 43.312 44.3215 +102.517 43.0522 44.0556 +100.526 43.055 44.0585 +97.8648 42.7405 43.7367 +96.231 42.8476 43.8463 +95.3568 43.2806 44.2894 +95.3131 44.092 45.1197 +95.2564 44.9062 45.9528 +95.1042 45.6834 46.7482 +96.4142 47.1837 48.2834 +95.4143 47.567 48.6757 +96.4348 48.9688 50.1101 +96.4628 49.8876 51.0504 +95.8363 50.4741 51.6505 +95.7577 51.3545 52.5515 +95.9797 52.4099 53.6315 +95.8695 53.2978 54.5401 +95.8221 54.2324 55.4965 +95.8358 55.2149 56.5018 +95.8322 56.2016 57.5116 +95.7351 57.1471 58.4791 +95.6972 58.1415 59.4967 +95.6416 59.1398 60.5182 +95.5684 60.1418 61.5435 +96.2147 61.6195 63.0557 +95.5879 62.2993 63.7514 +94.0085 62.3507 63.804 +93.3703 63.0188 64.4877 +92.3659 63.4389 64.9175 +93.2674 65.186 66.7053 +93.5013 66.5001 68.05 +94.0567 68.0733 69.66 +95.3371 70.2158 71.8524 +95.0024 71.204 72.8637 +95.3258 72.7081 74.4028 +95.6188 74.2213 75.9512 +95.2185 75.2207 76.9739 +95.2598 76.5899 78.375 +95.0792 77.8053 79.6188 +95.1326 79.2395 81.0864 +95.1573 80.6792 82.5597 +94.5869 81.6367 83.5395 +94.6845 83.1953 85.1344 +94.6887 84.7057 86.68 +94.1754 85.7792 87.7785 +94.6053 87.746 89.7911 +94.6958 89.4429 91.5276 +93.9281 90.3564 92.4624 +94.3642 92.4622 94.6173 +94.0665 93.8929 96.0814 +94.0801 95.6723 97.9023 +93.8326 97.2281 99.4943 +93.9397 99.1949 101.507 +93.7868 100.937 103.289 +93.5439 102.624 105.016 +93.3718 104.436 106.87 +93.6317 106.789 109.278 +93.7369 109.033 111.575 +93.4378 110.866 113.45 +93.45 113.126 115.763 +93.4127 115.395 118.085 +93.3743 117.734 120.478 +93.2368 120.018 122.816 +93.5187 122.927 125.792 +93.6426 125.725 128.655 +93.3404 128.035 131.019 +93.4338 130.976 134.029 +92.9785 133.237 136.342 +92.7751 135.944 139.112 +92.976 139.355 142.603 +93.0157 142.651 145.976 +92.98 145.959 149.361 +92.9484 149.405 152.887 +92.8768 152.925 156.49 +92.8773 156.715 160.368 +92.5278 160.061 163.792 +92.6882 164.457 168.29 +92.4948 168.408 172.334 +92.1746 172.305 176.321 +92.1402 176.932 181.056 +90.8622 179.332 183.512 +90.0522 182.787 187.048 +87.0367 181.805 186.043 +91.4072 196.621 201.204 +90.5726 200.77 205.45 +88.4132 202.117 206.828 +85.4034 201.509 206.206 +82.8566 201.955 206.662 +79.6905 200.837 205.518 +77.3092 201.652 206.352 +74.2877 200.763 205.442 +71.875 201.48 206.176 +68.9364 200.687 205.365 +66.6755 201.849 206.553 +63.7631 201.02 205.705 +61.2716 201.469 206.165 +58.4547 200.808 205.488 +56.0978 201.705 206.407 +53.2492 200.803 205.483 +50.931 201.877 206.583 +47.9463 200.25 204.918 +45.7258 201.777 206.48 +42.8204 200.252 204.919 +40.4437 201.128 205.816 +37.7351 200.328 204.997 +35.3421 201.174 205.863 +32.7044 200.619 205.295 +30.2192 200.949 205.633 +27.6323 200.57 205.245 +25.1706 201.078 205.765 +22.5491 200.249 204.916 +20.0759 200.658 205.335 +17.5148 200.145 204.81 +15.0518 200.733 205.411 +12.5188 200.398 205.069 +10.0441 201.025 205.711 +7.49708 200.101 204.765 +5.01582 200.837 205.518 +2.49317 199.672 204.326 +1.56541e-14 200.309 204.978 +-2.49492 199.812 204.469 +-5.00186 200.278 204.946 +-7.48922 199.891 204.55 +-10.0162 200.466 205.139 +-12.4795 199.769 204.426 +-15.0204 200.314 204.983 +-17.4721 199.656 204.31 +-20.0271 200.17 204.835 +-22.455 199.413 204.061 +-25.0834 200.382 205.053 +-27.5077 199.665 204.319 +-30.1042 200.185 204.85 +-32.4893 199.299 203.944 +-35.2081 200.412 205.083 +-37.5785 199.496 204.146 +-40.2071 199.951 204.612 +-42.5248 198.869 203.504 +-45.2565 199.707 204.361 +-47.5832 198.734 203.366 +-50.4274 199.881 204.54 +-52.6114 198.398 203.022 +-55.4109 199.236 203.88 +-57.9363 199.027 203.666 +-60.5855 199.213 203.856 +-62.8974 198.291 202.912 +-65.7532 199.057 203.696 +-68.2594 198.716 203.348 +-71.125 199.377 204.024 +-73.3864 198.327 202.949 +-76.3257 199.087 203.728 +-78.8086 198.614 203.243 +-81.7265 199.2 203.843 +-83.9549 198.091 202.708 +-86.9513 198.775 203.408 +-89.5502 198.504 203.13 +-92.4888 198.947 203.584 +-94.9376 198.309 202.931 +-97.9635 198.846 203.481 +-100.643 198.636 203.266 +-103.632 199 203.638 +-105.763 197.706 202.314 +-109.338 199.075 203.715 +-111.6 198.011 202.626 +-114.967 198.878 203.514 +-117.446 198.17 202.789 +-120.619 198.604 203.233 +-123.453 198.437 203.062 +-126.576 198.698 203.329 +-129.094 197.982 202.597 +-133.167 199.595 204.247 +-137.419 201.361 206.054 +-141.156 202.274 206.989 +-143.453 201.092 205.779 +-142.962 196.1 200.671 +-142.542 191.377 195.837 +-145.067 190.686 195.13 +-149.398 192.312 196.794 +-157.757 198.912 203.548 +-1613.43 1993.11 2039.56 +-484.4 586.393 600.061 +-487.947 578.96 592.454 +-490.11 570.091 583.378 +-493.761 563.147 576.273 +-496.322 555.135 568.074 +-500.118 548.668 561.457 +-502.266 540.556 553.155 +-505.629 533.917 546.362 +-508.642 527.047 539.331 +-512.314 520.986 533.13 +-514.498 513.548 525.518 +-518.161 507.716 519.55 +-520.425 500.635 512.304 +-524.158 495.083 506.622 +-527.009 488.797 500.189 +-530.657 483.346 494.611 +-533.471 477.227 488.35 +-537.106 471.931 482.931 +-539.391 465.542 476.392 +-142.1 120.48 123.288 +-143.342 119.394 122.177 +-143.593 117.506 120.245 +-143.546 115.412 118.102 +-142.331 112.439 115.059 +-143.261 111.202 113.794 +-148.157 113.004 115.638 +-152.154 114.038 116.696 +-156.945 115.59 118.284 +-157.618 114.075 116.734 +-159.036 113.11 115.747 +-160.16 111.938 114.547 +-162.621 111.691 114.295 +-584.032 394.183 403.371 +-588.351 390.221 399.316 +-590.714 384.997 393.971 +-594.835 380.955 389.834 +-597.191 375.816 384.575 +-601.486 371.927 380.596 +-603.994 366.961 375.514 +-608.249 363.081 371.544 +-610.997 358.325 366.676 +-614.753 354.185 362.44 +-616.976 349.19 357.329 +-621.313 345.413 353.464 +-623.789 340.622 348.561 +-628.019 336.804 344.654 +-631.162 332.414 340.161 +-634.967 328.386 336.04 +-637.505 323.72 331.265 +-2667.45 1329.8 1360.8 +-384.592 188.214 192.6 +-385.032 184.95 189.261 +-381.855 180.015 184.211 +-381.336 176.407 180.518 +-382.182 173.465 177.508 +-382.731 170.414 174.386 +-383.487 167.48 171.384 +-383.432 164.223 168.05 +-134.147 56.335 57.648 +-135.362 55.7275 57.0264 +-384.429 155.124 158.74 +-383.044 151.466 154.996 +-379.672 147.091 150.519 +-382.549 145.169 148.553 +-383.023 142.339 145.656 +-114.602 41.6958 42.6676 +-113.782 40.5193 41.4637 +-112.135 39.0753 39.9861 +-111.45 37.9916 38.8771 +-110.296 36.7689 37.6259 +-110.388 35.9766 36.8151 +-109.286 34.8092 35.6206 +-109.077 33.9424 34.7335 +-108.947 33.1086 33.8803 +-109.448 32.4701 33.2269 +-109.018 31.5606 32.2962 +-109.315 30.8683 31.5878 +-109.51 30.1492 30.8519 +-109.416 29.3549 30.0391 +-110.059 28.7599 29.4303 +-110.226 28.0398 28.6933 +-110.855 27.4364 28.0759 +-111.666 26.873 27.4993 +-111.238 26.0135 26.6198 +-112.32 25.5068 26.1013 +-113.015 24.9048 25.4853 +-114.278 24.419 24.9881 +-114.771 23.7607 24.3145 +-116.12 23.2718 23.8142 +-117.659 22.8054 23.337 +-120.644 22.5935 23.1201 +-159.938 28.9091 29.5829 +-160.584 27.9832 28.6354 +-162.094 27.1985 27.8324 +-164.084 26.4761 27.0933 +-164.701 25.5198 26.1146 +-164.916 24.4997 25.0707 +-860.668 122.383 125.236 +-866.973 117.783 120.528 +-383.863 49.7241 50.883 +-381.613 47.0291 48.1252 +-380.903 44.5498 45.5882 +-379.766 42.0391 43.0189 +-404.409 42.2419 43.2265 +-404.525 39.7348 40.661 +-405.501 37.3117 38.1814 +-404.463 34.7094 35.5184 +-404.881 32.2411 32.9926 +-405.268 29.7705 30.4644 +-405.624 27.2976 27.9338 +-405.949 24.8227 25.4012 +-404.25 22.2361 22.7544 +-404.911 19.7892 20.2505 +-403.546 17.2505 17.6526 +-404.046 14.7996 15.1445 +-404.215 12.3347 12.6222 +-403.754 9.85428 10.084 +-147.849 2.7059 2.76897 +-143.678 1.75282 1.79367 +-146.294 0.892297 0.913095 +120.1 6.21725e-15 5.68434e-14 +119.995 0.738616 0.742315 +120.882 1.48826 1.49572 +120.759 2.23041 2.24158 +119.827 2.95145 2.96623 +120.585 3.71351 3.7321 +120.335 4.4482 4.47048 +120.076 5.1801 5.20605 +120.406 5.93868 5.96841 +120.926 6.71277 6.74639 +120.639 7.44457 7.48185 +120.443 8.18002 8.22099 +121.232 8.98742 9.03243 +120.918 9.71731 9.76597 +120.594 10.444 10.4963 +121.155 11.2504 11.3067 +121.011 11.9957 12.0558 +121.55 12.813 12.8772 +121.189 13.5386 13.6064 +120.721 14.2491 14.3205 +120.344 14.9671 15.0421 +120.744 15.7844 15.8635 +121.427 16.6482 16.7315 +120.335 17.2684 17.3549 +120.997 18.1404 18.2312 +120.768 18.8845 18.979 +120.432 19.6112 19.7094 +120.866 20.467 20.5695 +121.287 21.3296 21.4364 +121.018 22.0753 22.1859 +120.548 22.7829 22.8969 +121.225 23.7125 23.8312 +120.831 24.4383 24.5607 +120.524 25.1811 25.3072 +121.164 26.1282 26.259 +121.027 26.9154 27.0502 +120.879 27.7029 27.8417 +121.385 28.6473 28.7908 +121.688 29.5541 29.7021 +120.941 30.2078 30.3591 +121.126 31.0958 31.2516 +120.737 31.8402 31.9996 +120.432 32.6074 32.7707 +120.768 33.5543 33.7223 +120.256 34.2699 34.4415 +120.104 35.0897 35.2655 +120.402 36.0482 36.2287 +120.685 37.0129 37.1983 +120.405 37.8117 38.0011 +120.843 38.8439 39.0384 +120.267 39.5564 39.7545 +120.676 40.5988 40.8021 +121.068 41.6493 41.8578 +120.816 42.4873 42.7 +121.711 43.7416 43.9607 +121.254 44.5217 44.7446 +118.138 44.3061 44.5279 +116.355 44.5603 44.7835 +112.738 44.078 44.2987 +110.448 44.0755 44.2963 +107.647 43.8368 44.0563 +106.325 44.1755 44.3967 +103.289 43.7748 43.994 +101.89 44.0403 44.2609 +99.1368 43.694 43.9128 +97.1587 43.6583 43.8769 +95.1891 43.6016 43.8199 +95.063 44.3805 44.6027 +95.4222 45.3978 45.6251 +95.4338 46.263 46.4947 +96.1684 47.496 47.7339 +96.147 48.3728 48.6151 +96.6775 49.5432 49.7913 +96.5432 50.3881 50.6404 +95.8363 50.938 51.1931 +95.9164 51.9124 52.1724 +95.8221 52.8047 53.0692 +95.8695 53.7877 54.0571 +95.8221 54.7309 55.005 +95.8358 55.7224 56.0014 +95.8322 56.7182 57.0022 +95.7351 57.6724 57.9612 +95.6972 58.6759 58.9697 +95.6416 59.6833 59.9822 +95.5684 60.6945 60.9985 +96.2147 62.1858 62.4972 +95.6611 62.92 63.2351 +93.8634 62.8267 63.1413 +93.0826 63.402 63.7195 +93.1505 64.5658 64.8891 +93.0553 65.6355 65.9642 +93.6415 67.2119 67.5485 +93.2926 68.1409 68.4821 +94.7864 70.4521 70.8049 +95.548 72.2711 72.633 +95.1907 73.272 73.6389 +94.9496 74.3794 74.7518 +95.2185 75.9121 76.2922 +95.4566 77.4532 77.8411 +95.0142 78.4668 78.8597 +95.1968 80.0214 80.4221 +95.2209 81.4751 81.8831 +94.7127 82.4964 82.9095 +94.56 83.8492 84.2691 +94.8734 85.6507 86.0796 +94.1145 86.5112 86.9444 +94.5451 88.496 88.9392 +94.5768 90.1514 90.6029 +94.3983 91.6432 92.1021 +94.3062 93.2542 93.7212 +94.1239 94.8137 95.2885 +93.9668 96.436 96.9189 +93.7766 98.0632 98.5543 +93.5533 99.6954 100.195 +93.7324 101.805 102.315 +93.4901 103.508 104.027 +93.4778 105.516 106.044 +93.684 107.831 108.371 +93.7369 110.036 110.587 +93.9454 112.493 113.056 +93.3 113.983 114.553 +93.4127 116.456 117.039 +93.4228 118.877 119.472 +93.2845 121.184 121.79 +93.5187 124.057 124.678 +93.227 126.317 126.95 +93.3858 129.274 129.922 +93.4338 132.18 132.842 +92.9347 134.398 135.071 +93.1626 137.766 138.456 +92.8492 140.444 141.147 +92.9328 143.834 144.554 +92.98 147.3 148.038 +92.9883 150.842 151.598 +92.9159 154.396 155.169 +92.839 158.09 158.881 +92.7526 161.925 162.736 +92.6515 165.903 166.733 +92.4589 169.891 170.741 +92.1746 173.889 174.759 +92.1744 178.625 179.519 +90.0945 179.452 180.35 +89.2382 182.8 183.716 +87.7347 184.948 185.874 +91.2527 198.092 199.084 +90.0012 201.337 202.345 +87.653 202.221 203.233 +84.4946 201.197 202.205 +82.1951 202.184 203.196 +79.2896 201.663 202.672 +76.8175 202.211 203.224 +73.8621 201.448 202.456 +71.4153 202.031 203.043 +68.5862 201.503 202.512 +66.0906 201.917 202.928 +63.222 201.146 202.153 +60.9181 202.148 203.16 +58.036 201.202 202.21 +55.6017 201.759 202.77 +52.9212 201.4 202.409 +50.4448 201.788 202.799 +47.6823 200.978 201.984 +45.3191 201.821 202.831 +42.5839 200.976 201.982 +40.2071 201.789 202.799 +37.4871 200.84 201.846 +35.0009 201.063 202.07 +32.3988 200.57 201.574 +30.1042 202.024 203.036 +27.4406 201.009 202.015 +24.9963 201.522 202.531 +22.3373 200.191 201.193 +19.9434 201.165 202.173 +17.3927 200.576 201.581 +14.9576 201.309 202.317 +12.3923 200.196 201.199 +9.94636 200.899 201.905 +7.44734 200.6 201.605 +4.97219 200.921 201.927 +2.47834 200.308 201.311 +1.64313e-14 200.951 201.957 +-2.48008 200.449 201.453 +-4.96172 200.497 201.501 +-7.44211 200.459 201.463 +-9.92542 200.476 201.48 +-12.4141 200.548 201.552 +-14.9419 201.098 202.105 +-17.3622 200.224 201.227 +-19.9015 200.743 201.748 +-22.3138 199.98 200.981 +-24.8655 200.467 201.471 +-27.3448 200.307 201.31 +-29.8847 200.552 201.556 +-32.2856 199.87 200.871 +-34.8668 200.293 201.296 +-37.2261 199.442 200.44 +-39.9566 200.532 201.536 +-42.2883 199.58 200.58 +-44.8498 199.731 200.731 +-47.1541 198.752 199.747 +-50.0628 200.26 201.263 +-52.2651 198.904 199.9 +-54.9148 199.267 200.264 +-57.418 199.059 200.056 +-60.0657 199.319 200.318 +-62.5294 198.942 199.938 +-65.3708 199.718 200.718 +-67.8626 199.377 200.375 +-70.5202 199.499 200.498 +-72.9858 199.057 200.054 +-75.8599 199.691 200.69 +-78.1405 198.74 199.736 +-81.0374 199.336 200.335 +-83.5005 198.83 199.826 +-86.4836 199.523 200.522 +-88.9488 198.982 199.979 +-91.9326 199.568 200.567 +-94.1126 198.393 199.386 +-97.3774 199.473 200.472 +-99.7415 198.666 199.661 +-102.914 199.437 200.436 +-105.167 198.4 199.393 +-108.478 199.325 200.323 +-110.94 198.649 199.644 +-114.068 199.136 200.133 +-116.527 198.427 199.42 +-119.954 199.325 200.323 +-122.456 198.644 199.639 +-125.56 198.913 199.909 +-128.389 198.711 199.706 +-131.35 198.68 199.675 +-136.386 201.684 202.694 +-140.279 202.865 203.881 +-143.096 202.436 203.449 +-143.007 197.965 198.957 +-142.68 193.323 194.292 +-144.409 191.566 192.526 +-147.967 192.22 193.182 +-155.333 197.656 198.645 +-483.018 602.17 605.186 +-485.25 592.822 595.79 +-489.368 585.983 588.918 +-491.346 576.782 579.67 +-495.329 570.127 572.982 +-497.7 561.793 564.606 +-500.71 554.365 557.141 +-503.846 547.24 549.98 +-507.009 540.295 543.001 +-510.152 533.469 536.141 +-513.107 526.589 529.226 +-516.104 519.886 522.489 +-519.787 513.991 516.565 +-521.483 506.264 508.799 +-525.407 500.824 503.331 +-528.333 494.528 497.005 +-531.814 488.851 491.299 +-534.579 482.614 485.031 +-537.666 476.766 479.153 +-540.523 470.807 473.165 +-142.863 122.24 122.852 +-143.406 120.546 121.15 +-143.463 118.479 119.072 +-142.562 115.674 116.253 +-142.728 113.789 114.359 +-143.261 112.224 112.786 +-149.035 114.718 115.293 +-156.382 118.285 118.877 +-157.151 116.806 117.391 +-157.896 115.327 115.905 +-159.387 114.401 114.974 +-161.079 113.615 114.184 +-162.478 112.619 113.183 +-585.902 399.08 401.078 +-589.294 394.439 396.414 +-592.47 389.69 391.642 +-596.9 385.791 387.722 +-598.529 380.12 382.023 +-603.509 376.608 378.494 +-605.428 371.213 373.072 +-609.694 367.289 369.128 +-612.07 362.253 364.067 +-616.142 358.247 360.041 +-618.453 353.243 355.012 +-622.487 349.247 350.996 +-625.602 344.751 346.478 +-629.843 340.887 342.594 +-631.88 335.851 337.533 +-636.735 332.327 333.991 +-639.366 327.649 329.29 +-643.395 323.701 325.322 +-385.329 190.307 191.26 +-383.548 185.931 186.862 +-384.259 182.814 183.729 +-378.584 176.743 177.628 +-660.537 302.561 304.076 +-381.888 171.601 172.46 +-385.099 169.73 170.58 +-383.603 165.805 166.636 +-2808.51 1190.27 1196.23 +-134.759 55.9891 56.2694 +-2837.53 1155.52 1161.31 +-381.738 152.337 153.1 +-379.672 148.443 149.186 +-380.967 145.898 146.628 +-383.288 143.747 144.466 +-114.868 42.1767 42.3879 +-113.514 40.7957 40.9999 +-111.509 39.2141 39.4105 +-110.821 38.1244 38.3153 +-111.108 37.38 37.5672 +-109.663 36.0688 36.2494 +-109.468 35.1876 35.3639 +-109.169 34.283 34.4547 +-109.13 33.4691 33.6367 +-109.448 32.7685 32.9326 +-110.034 32.1476 32.3086 +-109.408 31.1785 31.3346 +-109.51 30.4263 30.5787 +-109.509 29.65 29.7985 +-110.059 29.0243 29.1696 +-110.038 28.2492 28.3907 +-110.76 27.665 27.8035 +-110.909 26.9362 27.0711 +-111.333 26.275 26.4066 +-111.559 25.5669 25.6949 +-113.111 25.155 25.2809 +-113.513 24.4784 24.601 +-114.867 23.9991 24.1193 +-115.928 23.4468 23.5642 +-118.334 23.147 23.2629 +-121.127 22.8924 23.007 +-161.003 29.369 29.5161 +-159.905 28.1209 28.2618 +-162.386 27.4979 27.6356 +-162.525 26.4656 26.5981 +-162.456 25.4032 25.5304 +-854.216 128.068 128.709 +-861.55 123.635 124.254 +-868.151 119.027 119.623 +-380.913 49.7955 50.0448 +-381.318 47.4246 47.6621 +-380.41 44.9011 45.1259 +-383.322 42.8227 43.0371 +-404.507 42.6405 42.8541 +-405.02 40.1491 40.3502 +-405.005 37.6086 37.7969 +-404.463 35.0284 35.2038 +-404.483 32.5055 32.6683 +-404.373 29.9778 30.1279 +-404.728 27.4877 27.6253 +-405.551 25.0262 25.1515 +-404.848 22.4736 22.5862 +-404.213 19.9366 20.0364 +-405.043 17.4737 17.5612 +-404.645 14.9578 15.0327 +-404.814 12.4666 12.529 +-404.254 9.95712 10.007 +-147.25 2.71969 2.73331 +-145.978 1.79724 1.80624 +-146.794 0.903581 0.908106 +120.3 5.77316e-15 5.68434e-14 +119.995 0.745283 0.735622 +119.982 1.49052 1.47119 +119.859 2.23377 2.20481 +120.726 3.00045 2.96155 +120.585 3.74703 3.69845 +120.335 4.48835 4.43017 +120.076 5.22686 5.1591 +121.104 6.02703 5.9489 +120.926 6.77336 6.68555 +120.639 7.51176 7.41438 +120.542 8.26069 8.1536 +121.232 9.06854 8.95098 +120.918 9.80502 9.67791 +120.594 10.5383 10.4017 +121.155 11.3519 11.2047 +121.011 12.104 11.9471 +121.55 12.9287 12.7611 +121.189 13.6608 13.4837 +120.721 14.3777 14.1913 +121.23 15.2135 15.0163 +120.645 15.9139 15.7076 +121.329 16.7848 16.5673 +120.335 17.4242 17.1984 +120.997 18.3041 18.0668 +120.67 19.0395 18.7926 +120.432 19.7882 19.5317 +120.866 20.6518 20.384 +120.414 21.3672 21.0902 +120.922 22.2568 21.9683 +120.451 22.9701 22.6723 +121.128 23.9075 23.5976 +120.831 24.6589 24.3392 +120.62 25.4286 25.0989 +121.068 26.3433 26.0018 +120.931 27.137 26.7852 +120.879 27.953 27.5906 +121.385 28.9059 28.5312 +121.026 29.6587 29.2742 +121.789 30.6943 30.2964 +121.408 31.4495 31.0418 +121.393 32.3021 31.8833 +120.619 32.9527 32.5255 +120.675 33.831 33.3925 +120.256 34.5792 34.131 +120.659 35.5699 35.1088 +121.046 36.5682 36.0941 +120.777 37.3754 36.8909 +120.405 38.153 37.6584 +120.661 39.1354 38.6281 +120.267 39.9134 39.396 +120.585 40.9346 40.404 +120.888 41.9628 41.4188 +120.727 42.839 42.2837 +121.444 44.0395 43.4686 +121.166 44.8907 44.3088 +119.286 45.1403 44.5551 +116.619 45.0644 44.4802 +113.788 44.8899 44.3079 +111.318 44.8239 44.2428 +108.513 44.5883 44.0103 +106.497 44.6465 44.0677 +103.974 44.4631 43.8867 +101.976 44.475 43.8984 +99.9001 44.4278 43.8519 +97.8334 44.3583 43.7832 +94.9375 43.8788 43.31 +95.4799 44.9775 44.3944 +95.3393 45.7677 45.1744 +95.3514 46.6403 46.0357 +95.9227 47.8022 47.1825 +96.3913 48.9334 48.2991 +94.9786 49.1119 48.4752 +95.9001 50.5043 49.8496 +95.8363 51.3978 50.7315 +95.9958 52.4243 51.7446 +95.9797 53.369 52.6772 +96.026 54.3618 53.6571 +95.8221 55.2249 54.509 +95.8358 56.2253 55.4964 +95.9854 57.3216 56.5785 +95.7351 58.1929 57.4385 +95.6972 59.2055 58.438 +95.5667 60.1749 59.3948 +95.5684 61.2423 60.4484 +95.6986 62.4105 61.6015 +95.6611 63.4879 62.6649 +94.2261 63.6387 62.8137 +93.2264 64.0732 63.2425 +93.1505 65.1485 64.304 +93.126 66.2782 65.419 +92.9406 67.3109 66.4383 +93.0842 68.6023 67.713 +94.9929 71.2431 70.3195 +95.6162 72.9754 72.0293 +95.2582 73.986 73.0269 +95.5519 75.5268 74.5477 +95.2185 76.5972 75.6043 +95.3254 78.0448 77.0331 +95.0792 79.2291 78.202 +94.6183 80.2533 79.2129 +95.1573 82.1557 81.0906 +94.7757 83.2965 82.2167 +94.56 84.6061 83.5093 +94.7503 86.312 85.1931 +94.1145 87.292 86.1604 +93.9433 88.7261 87.5759 +94.3984 90.7936 89.6166 +93.8693 91.9523 90.7602 +94.3642 94.1543 92.9337 +94.0665 95.6111 94.3717 +93.8535 97.189 95.9291 +93.7207 98.8893 97.6073 +94.0501 101.129 99.818 +93.7868 102.784 101.451 +93.5976 104.563 103.207 +93.9017 106.951 105.564 +93.6317 108.744 107.334 +93.8399 111.151 109.71 +93.3871 112.834 111.371 +93.45 115.197 113.703 +93.5112 117.631 116.106 +93.4228 119.95 118.395 +93.3323 122.34 120.754 +93.0493 124.548 122.934 +93.5964 127.962 126.304 +93.3404 130.378 128.688 +93.3446 133.245 131.518 +93.3292 136.187 134.421 +93.0765 138.881 137.081 +93.2296 142.292 140.447 +93.306 145.715 143.826 +92.98 148.63 146.703 +92.9883 152.204 150.231 +92.9159 155.789 153.77 +92.5711 159.056 156.994 +92.7526 163.387 161.269 +92.3583 166.87 164.707 +92.4589 171.424 169.202 +92.2446 175.591 173.315 +92.0034 179.903 177.57 +89.7273 180.333 177.995 +88.9452 183.845 181.461 +88.3376 187.899 185.463 +91.2218 199.813 197.222 +89.881 202.883 200.253 +87.3607 203.365 200.729 +84.381 202.74 200.112 +81.754 202.914 200.284 +78.8888 202.454 199.83 +76.2481 202.524 199.899 +73.4865 202.232 199.61 +71.0041 202.681 200.053 +68.166 202.076 199.456 +65.7082 202.56 199.935 +63.0489 202.405 199.781 +60.5855 202.859 200.229 +57.717 201.902 199.285 +55.2201 202.183 199.562 +52.6114 202.029 199.41 +50.1322 202.348 199.724 +47.5337 202.16 199.539 +45.0375 202.377 199.753 +42.4509 202.156 199.536 +39.9427 202.272 199.649 +37.3827 202.089 199.469 +34.9156 202.383 199.76 +32.3195 201.886 199.269 +29.8638 202.22 199.599 +27.2873 201.689 199.075 +24.8655 202.276 199.654 +22.251 201.217 198.609 +19.8318 201.844 199.228 +17.35 201.889 199.272 +14.8372 201.491 198.879 +12.3574 201.434 198.823 +9.88703 201.503 198.891 +7.40284 201.201 198.593 +4.93903 201.382 198.771 +2.47048 201.476 198.864 +1.60982e-14 201.412 198.801 +-2.46961 201.405 198.794 +-4.94427 201.595 198.982 +-7.40022 201.13 198.523 +-9.89052 201.574 198.961 +-12.3399 201.15 198.542 +-14.8425 201.563 198.95 +-17.2462 200.682 198.08 +-19.776 201.277 198.667 +-22.251 201.217 198.609 +-24.7784 201.568 198.955 +-27.1627 200.768 198.166 +-29.6965 201.088 198.481 +-32.0818 200.4 197.803 +-34.6596 200.9 198.296 +-37.1216 200.677 198.076 +-39.72 201.144 198.537 +-42.1552 200.748 198.146 +-44.5838 200.339 197.741 +-47.0221 199.984 197.392 +-49.6113 200.245 197.649 +-52.1376 200.209 197.614 +-54.7431 200.437 197.838 +-57.099 199.74 197.151 +-59.8994 200.561 197.961 +-62.1615 199.556 196.969 +-64.8309 199.856 197.265 +-67.4891 200.069 197.475 +-70.0848 200.057 197.463 +-72.7855 200.303 197.706 +-75.4716 200.462 197.863 +-77.9534 200.054 197.46 +-80.8169 200.588 197.988 +-83.2449 200.01 197.418 +-86.045 200.302 197.706 +-88.5278 199.828 197.238 +-91.469 200.354 197.757 +-93.827 199.576 196.988 +-96.8565 200.197 197.602 +-99.3743 199.721 197.132 +-102.161 199.766 197.176 +-104.922 199.724 197.134 +-107.94 200.127 197.533 +-110.317 199.317 196.733 +-113.393 199.746 197.157 +-116.221 199.692 197.103 +-119.251 199.945 197.353 +-121.658 199.131 196.55 +-125.194 200.124 197.529 +-127.643 199.339 196.754 +-130.843 199.699 197.111 +-135.611 202.348 199.724 +-139.051 202.905 200.275 +-142.292 203.117 200.484 +-143.143 199.942 197.35 +-143.142 195.7 193.163 +-143.799 192.478 189.983 +-147.013 192.704 190.206 +-150.873 193.713 191.202 +-483.905 608.72 600.829 +-486.35 599.528 591.756 +-489.825 591.824 584.152 +-492.788 583.696 576.129 +-495.799 575.819 568.354 +-498.177 567.407 560.051 +-501.784 560.569 553.302 +-504.336 552.716 545.551 +-508.003 546.24 539.159 +-510.711 538.874 531.889 +-513.9 532.163 525.264 +-516.62 525.103 518.296 +-519.961 518.804 512.078 +-523.07 512.388 505.745 +-526.299 506.202 499.64 +-529.236 499.845 493.365 +-532.91 494.28 487.873 +-535.749 488.035 481.709 +-539.222 482.461 476.207 +-142.101 124.89 123.271 +-142.927 123.398 121.799 +-142.827 121.143 119.572 +-144.048 120.035 118.479 +-142.758 116.88 115.365 +-143.06 115.083 113.591 +-144.666 114.348 112.866 +-150.521 116.908 115.393 +-156.996 119.821 118.268 +-157.564 118.17 116.638 +-158.243 116.624 115.112 +-159.387 115.434 113.937 +-161.786 115.144 113.651 +-583.867 408.351 403.057 +-586.837 403.325 398.096 +-590.382 398.734 393.565 +-592.982 393.547 388.445 +-596.9 389.273 384.226 +-599.941 384.455 379.471 +-603.209 379.818 374.895 +-607.164 375.637 370.767 +-610.378 371.02 366.211 +-613.755 366.529 361.777 +-617.531 362.296 357.599 +-619.852 357.237 352.606 +-624.208 353.374 348.793 +-627.099 348.695 344.174 +-630.637 344.397 339.932 +-633.637 339.825 335.419 +-637.458 335.707 331.355 +-640.822 331.359 327.063 +-644.128 326.994 322.755 +-383.855 191.291 188.811 +-382.724 187.206 184.779 +-382.518 183.628 181.248 +-380.752 179.36 177.034 +-662.382 306.144 302.175 +-381.972 173.188 170.943 +-383.742 170.658 168.446 +-384.029 167.488 165.316 +-387.697 165.793 163.644 +-135.103 56.6389 55.9047 +-685.113 281.515 277.865 +-381.999 153.817 151.823 +-379.935 149.886 147.943 +-382.022 147.623 145.709 +-119.728 45.3073 44.72 +-114.868 42.5574 42.0057 +-113.425 41.1316 40.5983 +-111.24 39.4729 38.9611 +-111.001 38.5308 38.0313 +-110.386 37.4723 36.9866 +-109.663 36.3943 35.9225 +-109.468 35.5052 35.045 +-109.351 34.6503 34.2012 +-108.763 33.6577 33.2213 +-109.54 33.0921 32.6631 +-109.203 32.1927 31.7754 +-109.408 31.4599 31.0521 +-109.696 30.7531 30.3545 +-109.602 29.9431 29.555 +-109.965 29.2612 28.8819 +-110.038 28.5042 28.1347 +-110.478 27.8435 27.4825 +-110.909 27.1794 26.827 +-111.997 26.6702 26.3245 +-112.32 25.9736 25.6369 +-112.825 25.3178 24.9896 +-113.8 24.7618 24.4408 +-114.771 24.1955 23.8819 +-116.697 23.8154 23.5066 +-118.334 23.3559 23.0532 +-122.769 23.4122 23.1087 +-160.713 29.5807 29.1972 +-161.263 28.6158 28.2448 +-161.705 27.6298 27.2716 +-162.817 26.7525 26.4057 +-162.456 25.6325 25.3002 +-854.216 129.224 127.548 +-861.55 124.75 123.133 +-868.544 120.156 118.598 +-379.34 50.0375 49.3888 +-382.499 48.0009 47.3787 +-381.002 45.3768 44.7886 +-384.902 43.3873 42.8249 +-405.793 43.1622 42.6027 +-404.029 40.4125 39.8886 +-404.609 37.9109 37.4194 +-404.76 35.3705 34.912 +-405.179 32.8554 32.4294 +-404.87 30.2855 29.8929 +-403.733 27.6675 27.3089 +-404.654 25.1963 24.8696 +-404.35 22.6486 22.355 +-406.108 20.2109 19.9489 +-405.143 17.6358 17.4071 +-404.046 15.0704 14.8751 +-403.915 12.5511 12.3884 +-403.454 10.0271 9.89715 +-145.35 2.70884 2.67372 +-145.878 1.81222 1.78873 +-146.294 0.908626 0.896847 +120.4 4.44089e-15 5.68434e-14 +120.195 0.753146 0.730086 +119.982 1.50373 1.45769 +119.959 2.25545 2.18639 +120.127 3.01201 2.91979 +120.685 3.78337 3.66753 +121.234 4.56196 4.42229 +120.974 5.31264 5.14998 +120.406 6.04539 5.8603 +121.026 6.83903 6.62963 +120.739 7.58459 7.35237 +120.642 8.3408 8.08542 +120.437 9.0889 8.81062 +121.017 9.90011 9.59699 +120.892 10.658 10.3317 +121.353 11.4713 11.12 +121.11 12.2212 11.847 +121.649 13.0539 12.6542 +121.288 13.7932 13.3709 +120.82 14.517 14.0725 +120.54 15.261 14.7938 +120.94 16.0943 15.6015 +120.642 16.8377 16.3222 +120.629 17.6216 17.0821 +121.095 18.4813 17.9154 +120.865 19.2393 18.6502 +120.627 19.9959 19.3837 +121.06 20.8683 20.2293 +120.802 21.6261 20.9639 +121.115 22.49 21.8014 +120.741 23.2295 22.5182 +121.514 24.1962 23.4554 +121.023 24.917 24.1541 +120.715 25.6744 24.8883 +121.164 26.5977 25.7834 +121.122 27.4206 26.5811 +121.83 28.4226 27.5524 +121.48 29.1849 28.2913 +121.877 30.1319 29.2094 +121.789 30.9663 30.0182 +121.596 31.7774 30.8044 +121.393 32.5884 31.5906 +120.899 33.322 32.3017 +120.954 34.2099 33.1625 +120.534 34.9665 33.8959 +120.751 35.9127 34.8131 +120.31 36.6679 35.5452 +120.869 37.7353 36.5799 +120.405 38.4912 37.3127 +120.752 39.5121 38.3024 +120.267 40.2672 39.0343 +120.676 41.3283 40.063 +120.169 42.0829 40.7944 +120.548 43.1546 41.8333 +121.355 44.3973 43.0379 +121.343 45.3549 43.9662 +119.286 45.5404 44.1461 +116.795 45.5324 44.1383 +114.663 45.6359 44.2386 +111.406 45.2565 43.8709 +108.513 44.9835 43.6062 +106.584 45.0787 43.6985 +104.66 45.1531 43.7706 +102.828 45.2444 43.8591 +99.9849 44.8597 43.4862 +98.0021 44.8286 43.456 +95.273 44.4242 43.064 +95.2298 45.2572 43.8716 +95.4222 46.2136 44.7986 +95.4338 47.0944 45.6524 +95.8408 48.1847 46.7094 +96.5541 49.4506 47.9365 +95.6258 49.8848 48.3575 +95.9001 50.952 49.3919 +95.9161 51.8966 50.3076 +95.9164 52.8453 51.2273 +96.0585 53.8863 52.2364 +96.1043 54.8884 53.2078 +96.0552 55.85 54.1399 +95.9901 56.815 55.0755 +95.9854 57.8297 56.0591 +95.9632 58.8486 57.0468 +95.8481 59.8245 57.9928 +95.7914 60.851 58.9879 +95.7171 61.8813 59.9866 +95.7723 63.0123 61.083 +95.4417 63.9038 61.9472 +93.936 64.0051 62.0454 +93.2264 64.6411 62.6619 +93.0792 65.6757 63.6649 +93.126 66.8657 64.8184 +93.0808 68.01 65.9277 +93.2232 69.3137 67.1915 +95.1994 72.0304 69.825 +95.0706 73.2022 70.9609 +95.3258 74.6949 72.4079 +95.0165 75.7698 73.4499 +95.8811 77.814 75.4315 +95.5222 78.8996 76.4839 +95.1441 79.986 77.537 +95.2611 81.5146 79.0188 +95.1573 82.8839 80.3461 +94.7757 84.0348 81.4619 +94.6222 85.412 82.7969 +94.2578 86.624 83.9718 +94.1145 88.0658 85.3694 +94.0035 89.57 86.8276 +94.5173 91.714 88.9059 +94.4571 93.3482 90.4901 +94.3062 94.93 92.0234 +94.1813 96.5764 93.6194 +94.0801 98.2867 95.2774 +93.8885 99.9439 96.8838 +93.5533 101.487 98.3796 +93.8413 103.755 100.578 +93.7588 105.671 102.436 +93.4778 107.412 104.123 +93.7885 109.891 106.527 +93.8914 112.198 108.763 +93.5393 114.019 110.528 +93.65 116.467 112.901 +93.5605 118.736 115.101 +93.5683 121.202 117.491 +93.38 123.488 119.707 +93.5187 126.286 122.42 +93.3194 128.715 124.774 +93.3404 131.534 127.506 +93.4784 134.62 130.498 +93.0224 136.942 132.749 +93.1626 140.242 135.948 +92.9338 143.098 138.717 +93.0157 146.549 142.062 +93.0613 150.078 145.483 +92.7092 153.092 148.405 +92.9159 157.17 152.358 +92.6477 160.599 155.682 +92.4529 164.302 159.272 +92.4316 168.483 163.324 +92.4948 173.01 167.713 +92.3147 177.283 171.855 +92.0034 181.497 175.94 +89.794 182.067 176.493 +88.6197 184.795 179.137 +88.7818 190.518 184.685 +91.2218 201.584 195.412 +89.6404 204.133 197.883 +87.156 204.687 198.42 +84.1821 204.055 197.807 +81.5611 204.23 197.976 +78.7819 203.972 197.727 +76.0669 203.834 197.593 +73.5116 204.094 197.845 +70.8347 203.99 197.744 +68.2127 204.006 197.76 +65.7307 204.426 198.167 +62.8757 203.639 197.404 +60.3776 203.955 197.71 +57.7768 203.903 197.66 +55.2774 204.186 197.935 +52.6478 203.96 197.715 +49.9933 203.575 197.342 +47.5337 203.952 197.707 +44.8967 203.533 197.301 +42.3326 203.38 197.153 +39.8453 203.567 197.334 +37.3044 203.453 197.223 +34.8181 203.607 197.373 +32.229 203.104 196.886 +29.7802 203.441 197.212 +27.201 202.834 196.623 +24.7871 203.426 197.198 +22.2824 203.288 197.063 +19.7829 203.132 196.913 +17.3073 203.177 196.956 +14.7954 202.705 196.498 +12.3617 203.291 197.067 +9.89052 203.361 197.134 +7.40546 203.056 196.839 +4.9303 202.808 196.598 +2.47135 203.333 197.108 +1.58762e-14 202.695 196.489 +-2.46437 202.759 196.551 +-4.9338 202.951 196.738 +-7.40022 202.913 196.7 +-9.88005 203.146 196.926 +-12.3443 203.005 196.789 +-14.8058 202.847 196.637 +-17.2706 202.747 196.539 +-19.7969 203.276 197.052 +-22.1882 202.428 196.23 +-24.6215 202.067 195.88 +-27.1819 202.691 196.485 +-29.6338 202.442 196.243 +-32.1158 202.391 196.194 +-34.55 202.04 195.854 +-37.0172 201.887 195.705 +-39.4834 201.718 195.542 +-42.0518 202.031 195.845 +-44.6151 202.256 196.064 +-47.0551 201.898 195.716 +-49.5245 201.666 195.492 +-52.1194 201.913 195.731 +-54.6668 201.931 195.749 +-57.1588 201.722 195.545 +-59.6083 201.356 195.191 +-62.2264 201.536 195.365 +-64.8759 201.767 195.59 +-67.349 201.424 195.256 +-69.9638 201.482 195.313 +-72.6352 201.661 195.487 +-75.2646 201.683 195.508 +-77.7396 201.274 195.111 +-80.6239 201.883 195.702 +-83.0745 201.37 195.205 +-85.8403 201.597 195.425 +-88.5579 201.668 195.494 +-91.2218 201.584 195.412 +-93.8587 201.413 195.246 +-96.5635 201.36 195.195 +-99.174 201.086 194.929 +-102.025 201.266 195.104 +-104.677 201.023 194.868 +-107.69 201.432 195.265 +-110.427 201.284 195.121 +-113.169 201.117 194.959 +-115.915 200.931 194.779 +-119.017 201.321 195.157 +-121.818 201.16 195.001 +-124.543 200.848 194.699 +-127.352 200.648 194.505 +-130.547 201.014 194.859 +-135.611 204.141 197.891 +-138.788 204.316 198.061 +-142.069 204.596 198.331 +-143.234 201.843 195.663 +-143.234 197.562 191.513 +-143.799 194.185 188.239 +-146.869 194.223 188.276 +-150.679 195.179 189.203 +-484.102 614.366 595.555 +-486.7 605.277 586.745 +-490.079 597.379 579.089 +-493.2 589.362 571.317 +-496.165 581.352 563.552 +-499.025 573.41 555.854 +-502.214 566.023 548.692 +-505.153 558.519 541.418 +-507.948 551.021 534.15 +-511.438 544.425 527.756 +-514.297 537.294 520.844 +-517.251 530.404 514.165 +-520.6 524.046 508 +-523.717 517.568 501.722 +-526.418 510.804 495.164 +-529.838 504.849 489.391 +-533.032 498.775 483.504 +-535.995 492.587 477.505 +-539.658 487.131 472.216 +-143.296 127.057 123.167 +-143.245 124.769 120.949 +-143.213 122.547 118.795 +-144.177 121.208 117.497 +-142.43 117.644 114.042 +-143.325 116.317 112.756 +-146.54 116.856 113.278 +-150.792 118.156 114.539 +-157.269 121.093 117.385 +-157.289 119.009 115.365 +-158.452 117.812 114.205 +-159.947 116.867 113.289 +-161.857 116.215 112.657 +-584.152 412.172 399.552 +-587.413 407.299 394.828 +-590.89 402.614 390.287 +-594.005 397.721 385.544 +-597.416 393.063 381.028 +-600.758 388.391 376.5 +-603.733 383.518 371.776 +-607.315 379.062 367.455 +-610.53 374.402 362.939 +-613.602 369.686 358.367 +-617.377 365.416 354.227 +-621.095 361.127 350.07 +-624.443 356.64 345.721 +-626.941 351.697 340.929 +-631.192 347.756 337.109 +-634.596 343.355 332.843 +-637.7 338.811 328.437 +-641.065 334.423 324.183 +-645.105 330.393 320.277 +-385.984 194.057 188.115 +-384.29 189.638 183.832 +-383.181 185.577 179.895 +-381.336 181.227 175.678 +-382.35 178.283 172.825 +-382.815 175.109 169.748 +-383.318 171.981 166.716 +-382.921 168.485 163.326 +-385.04 166.116 161.03 +-135.103 57.1409 55.3914 +-134.84 55.8973 54.1859 +-381.651 155.039 150.292 +-380.547 151.458 146.821 +-379.297 147.869 143.342 +-115.225 43.9898 42.6429 +-113.981 42.6031 41.2987 +-112.712 41.2354 39.9728 +-111.419 39.8868 38.6655 +-110.462 38.6835 37.4991 +-109.754 37.5881 36.4372 +-109.754 36.7473 35.6222 +-109.559 35.8498 34.7521 +-109.625 35.0451 33.9721 +-109.68 34.2423 33.1939 +-109.632 33.4135 32.3905 +-109.295 32.5055 31.5103 +-109.5 31.7656 30.793 +-109.882 31.0783 30.1268 +-110.443 30.4401 29.5081 +-110.715 29.7218 28.8118 +-110.884 28.9779 28.0906 +-110.666 28.1382 27.2766 +-110.815 27.3969 26.5581 +-112.187 26.9521 26.1269 +-112.51 26.2482 25.4445 +-113.683 25.7365 24.9485 +-113.8 24.9813 24.2164 +-115.538 24.5731 23.8208 +-116.697 24.0264 23.2908 +-119.683 23.8316 23.1019 +-123.832 23.8241 23.0947 +-159.648 29.6451 28.7375 +-160.778 28.7826 27.9014 +-162.677 28.0423 27.1837 +-163.304 27.0704 26.2416 +-165.58 26.357 25.55 +-855.488 130.564 126.566 +-862.334 125.971 122.114 +-870.114 121.44 117.722 +-379.143 50.4548 48.91 +-382.204 48.389 46.9074 +-380.706 45.7435 44.3429 +-389.149 44.2549 42.8999 +-403.815 43.3325 42.0058 +-405.119 40.8806 39.6289 +-405.204 38.3032 37.1305 +-404.76 35.684 34.5915 +-403.788 33.0328 32.0214 +-405.566 30.6065 29.6694 +-406.321 28.0917 27.2316 +-404.854 25.4321 24.6534 +-404.051 22.8325 22.1334 +-403.714 20.2698 19.6492 +-404.344 17.757 17.2134 +-404.245 15.2115 14.7458 +-405.014 12.6968 12.3081 +-403.554 10.1185 9.80872 +-147.349 2.77044 2.68562 +-146.678 1.83831 1.78202 +-146.794 0.919818 0.891655 +119.5 2.66454e-15 -1.13687e-13 +120.195 0.759702 0.723262 +120.182 1.51935 1.44647 +119.959 2.27508 2.16595 +119.927 3.03317 2.88768 +120.785 3.81946 3.63626 +120.435 4.57135 4.35208 +120.974 5.35888 5.10184 +120.406 6.09801 5.80552 +120.328 6.85878 6.52979 +120.639 7.64431 7.27764 +120.642 8.41341 8.00985 +121.332 9.23617 8.79315 +121.017 9.98629 9.50729 +120.793 10.7419 10.2267 +121.353 11.5711 11.0161 +121.11 12.3276 11.7363 +120.66 13.0604 12.434 +121.189 13.9019 13.2351 +120.82 14.6434 13.941 +120.54 15.3939 14.6555 +120.94 16.2344 15.4557 +120.74 16.9981 16.1828 +121.315 17.8761 17.0187 +121.095 18.6422 17.748 +120.768 19.3911 18.461 +121.407 20.3003 19.3266 +121.06 21.0499 20.0402 +120.511 21.7617 20.7179 +121.115 22.6857 21.5976 +120.741 23.4317 22.3077 +121.321 24.3681 23.1992 +120.831 25.094 23.8903 +120.715 25.8978 24.6556 +121.164 26.8292 25.5424 +121.122 27.6593 26.3326 +120.974 28.4686 27.1031 +120.627 29.2321 27.83 +120.932 30.1585 28.7119 +121.412 31.1392 29.6456 +121.408 32.0045 30.4694 +121.58 32.9228 31.3436 +120.712 33.5602 31.9504 +120.768 34.4546 32.8019 +120.348 35.2165 33.5273 +120.936 36.2807 34.5405 +120.31 36.9871 35.213 +120.96 38.0926 36.2655 +120.497 38.8557 36.992 +120.752 39.8561 37.9443 +120.086 40.5565 38.6112 +120.766 41.7193 39.7182 +120.259 42.481 40.4434 +120.548 43.5303 41.4423 +121.177 44.718 42.573 +121.432 45.7831 43.5871 +119.728 46.1068 43.8953 +117.058 46.0324 43.8244 +114.575 45.998 43.7917 +111.406 45.6505 43.4608 +109.206 45.6648 43.4745 +107.187 45.7284 43.535 +104.574 45.5088 43.3259 +102.573 45.5247 43.3411 +99.9849 45.2502 43.0797 +98.6768 45.5302 43.3463 +95.7762 45.0476 42.8868 +95.3131 45.6912 43.4996 +95.4222 46.6158 44.3799 +95.4338 47.5043 45.2257 +96.2504 48.8119 46.4706 +96.2285 49.7128 47.3283 +95.3831 50.1914 47.7839 +96.5432 51.7401 49.2583 +96.6349 52.7406 50.2108 +95.9958 53.3493 50.7904 +95.9797 54.3108 51.7057 +96.026 55.321 52.6675 +96.0552 56.3361 53.6339 +95.9901 57.3096 54.5607 +95.9854 58.3331 55.5351 +95.9632 59.3608 56.5136 +95.8481 60.3453 57.4508 +95.7914 61.3807 58.4365 +95.7171 62.4199 59.4259 +95.6986 63.5118 60.4654 +95.8073 64.707 61.6033 +93.936 64.5622 61.4654 +93.0826 65.1032 61.9804 +92.8652 66.0951 62.9248 +93.1967 67.499 64.2613 +92.9406 68.4987 65.2131 +93.2232 69.9171 66.5634 +95.7501 73.0782 69.5729 +95.0024 73.7865 70.2473 +95.3933 75.3987 71.7822 +95.6188 76.9131 73.2239 +95.2848 78.0032 74.2617 +94.8661 79.0396 75.2484 +95.2091 80.738 76.8653 +95.2611 82.2242 78.2802 +94.5212 83.0462 79.0628 +94.7127 84.7098 80.6467 +94.8712 86.3822 82.2388 +94.8119 87.8923 83.6764 +94.2363 88.9475 84.6811 +94.0035 90.3497 86.016 +94.5173 92.5123 88.0749 +93.9281 93.6335 89.1423 +94.19 95.639 91.0516 +94.1239 97.3577 92.6878 +93.9668 99.0235 94.2737 +93.7207 100.634 95.8072 +93.9949 102.853 97.9199 +93.7868 104.597 99.5803 +93.7588 106.591 101.479 +94.0077 108.961 103.735 +93.893 110.971 105.648 +93.8914 113.175 107.746 +93.9961 115.574 110.03 +93.65 117.481 111.846 +93.5112 119.707 113.965 +93.5198 122.193 116.332 +93.38 124.562 118.588 +93.5657 127.449 121.336 +93.735 130.413 124.158 +93.3858 132.743 126.376 +93.4338 135.726 129.216 +92.6717 137.614 131.013 +93.2057 141.528 134.74 +92.976 144.409 137.483 +93.0572 147.891 140.797 +93.0613 151.385 144.124 +93.068 155.023 147.587 +92.9159 158.538 150.934 +92.7242 162.131 154.354 +92.5653 165.934 157.975 +92.7248 170.489 162.311 +92.4589 174.449 166.081 +92.2446 178.69 170.119 +92.0034 183.077 174.296 +90.1279 184.334 175.493 +88.5871 186.336 177.398 +89.0357 192.726 183.482 +91.2836 203.476 193.716 +89.3096 205.15 195.31 +86.8636 205.776 195.906 +83.9549 205.276 195.43 +81.3681 205.52 195.662 +78.5414 205.119 195.281 +76.0669 205.608 195.746 +73.3113 205.31 195.462 +70.8589 205.836 195.963 +68.026 205.219 195.376 +65.5507 205.641 195.777 +62.7242 204.917 195.088 +60.2112 205.164 195.323 +57.5575 204.897 195.069 +55.1056 205.324 195.476 +52.4474 204.953 195.122 +49.9759 205.277 195.43 +47.3852 205.085 195.248 +44.928 205.447 195.593 +42.0813 203.933 194.151 +39.72 204.693 194.875 +37.1869 204.578 194.765 +34.7084 204.733 194.912 +32.1497 204.368 194.566 +29.6861 204.564 194.752 +27.2202 204.744 194.923 +24.7087 204.547 194.736 +22.1412 203.757 193.984 +19.8108 205.19 195.348 +17.2523 204.295 194.496 +14.7954 204.469 194.661 +12.2919 203.903 194.123 +9.8626 204.552 194.741 +7.38452 204.244 194.448 +4.92856 204.501 194.692 +2.45739 203.945 194.162 +1.52101e-14 204.46 194.652 +-2.45914 204.089 194.3 +-4.91809 204.066 194.278 +-7.3819 204.172 194.379 +-9.84864 204.263 194.465 +-12.2701 203.541 193.778 +-14.8058 204.613 194.799 +-17.2157 203.861 194.083 +-19.7271 204.323 194.522 +-22.1098 203.468 193.709 +-24.6476 204.042 194.255 +-27.0285 203.302 193.551 +-29.6443 204.276 194.477 +-32.0139 203.505 193.744 +-34.5621 203.87 194.091 +-36.9128 203.07 193.329 +-39.4695 203.402 193.646 +-41.9187 203.145 193.401 +-44.49 203.445 193.686 +-46.7745 202.441 192.731 +-49.3682 202.78 193.053 +-51.7731 202.318 192.614 +-54.495 203.049 193.31 +-56.9395 202.697 192.974 +-59.5875 203.038 193.299 +-61.9667 202.442 192.731 +-64.6734 202.889 193.157 +-67.1155 202.472 192.76 +-69.7461 202.603 192.885 +-72.3598 202.645 192.925 +-75.0834 202.949 193.215 +-77.5259 202.467 192.756 +-80.431 203.153 193.409 +-82.8189 202.498 192.785 +-85.8111 203.283 193.532 +-88.2872 202.802 193.074 +-90.9437 202.718 192.995 +-93.3828 202.136 192.44 +-96.2379 202.428 192.718 +-98.9404 202.358 192.652 +-101.888 202.746 193.021 +-104.362 202.162 192.465 +-107.403 202.645 192.925 +-109.804 201.891 192.207 +-113.131 202.801 193.073 +-115.532 202.011 192.321 +-118.704 202.54 192.825 +-121.379 202.18 192.483 +-124.543 202.597 192.879 +-126.979 201.801 192.122 +-130.251 202.304 192.6 +-134.535 204.284 194.486 +-138.832 206.16 196.271 +-141.802 205.988 196.107 +-143.279 203.664 193.895 +-143.234 199.282 189.723 +-143.424 195.363 185.992 +-145.963 194.704 185.365 +-150.243 196.308 186.892 +-1613.43 2065.4 1966.33 +-487.2 611.173 581.858 +-490.536 603.141 574.211 +-493.355 594.679 566.155 +-496.635 586.968 558.813 +-499.184 578.586 550.833 +-502.859 571.683 544.262 +-504.935 563.137 536.126 +-508.61 556.543 529.848 +-511.662 549.404 523.051 +-514.863 542.568 516.543 +-517.251 535.021 509.359 +-521.181 529.197 503.813 +-524.246 522.601 497.534 +-527.489 516.298 491.534 +-530.62 509.995 485.533 +-533.397 503.462 479.313 +-535.687 496.59 472.77 +-539.907 491.598 468.018 +-141.534 126.587 120.515 +-143.118 125.744 119.712 +-143.984 124.279 118.318 +-143.528 121.712 115.874 +-142.562 118.778 113.08 +-143.258 117.276 111.65 +-147.744 118.841 113.141 +-153.494 121.321 115.501 +-157.678 122.465 116.591 +-157.84 120.465 114.687 +-158.66 118.994 113.287 +-160.368 118.194 112.525 +-161.715 117.124 111.506 +-585.151 416.47 396.494 +-588.06 411.297 391.569 +-591.543 406.567 387.066 +-594.005 401.183 381.94 +-598.522 397.218 378.165 +-601.13 392.015 373.211 +-604.782 387.529 368.941 +-607.994 382.788 364.428 +-611.214 378.084 359.949 +-614.674 373.555 355.638 +-618.457 369.242 351.531 +-621.484 364.499 347.015 +-625.46 360.331 343.048 +-628.045 355.383 338.337 +-631.589 351.003 334.167 +-635.075 346.606 329.98 +-638.504 342.191 325.778 +-641.065 337.334 321.153 +-645.838 333.648 317.644 +-387.787 196.66 187.227 +-384.62 191.453 182.27 +-383.596 187.395 178.407 +-382.837 183.524 174.721 +-382.014 179.677 171.059 +-380.791 175.7 167.272 +-383.827 173.708 165.376 +-383.859 170.368 162.196 +-384.868 167.487 159.454 +-133.897 57.1237 54.3838 +-134.58 56.2753 53.576 +-382.957 156.923 149.396 +-382.559 153.584 146.218 +-382.637 150.469 143.252 +-114.871 44.2368 42.1149 +-114.158 43.0408 40.9763 +-112.089 41.3641 39.3801 +-110.882 40.0401 38.1195 +-110.642 39.0838 37.2091 +-110.476 38.1648 36.3342 +-109.754 37.0671 35.2892 +-109.65 36.1918 34.4558 +-109.534 35.3207 33.6265 +-109.772 34.5693 32.9112 +-109.54 33.6761 32.0608 +-110.034 33.0102 31.4268 +-110.242 32.2592 30.7119 +-109.882 31.3489 29.8452 +-109.696 30.4974 29.0346 +-110.621 29.9552 28.5183 +-110.132 29.032 27.6394 +-110.572 28.3589 26.9986 +-110.815 27.6354 26.3099 +-111.997 27.1408 25.839 +-112.415 26.4543 25.1854 +-113.588 25.9388 24.6947 +-114.47 25.347 24.1312 +-115.346 24.7459 23.5589 +-116.601 24.2156 23.0541 +-119.105 23.9229 22.7754 +-123.928 24.0503 22.8967 +-161.39 30.2295 28.7795 +-161.554 29.1733 27.774 +-162.191 28.2019 26.8491 +-164.961 27.583 26.2599 +-164.408 26.3982 25.132 +-855.879 131.76 125.44 +-863.51 127.241 121.138 +-870.409 122.538 116.66 +-380.028 51.0128 48.5659 +-382.499 48.8479 46.5049 +-381.397 46.2253 44.0081 +-902.451 103.522 98.5563 +-405.595 43.9024 41.7966 +-405.713 41.2969 39.3161 +-405.204 38.6366 36.7834 +-405.554 36.0653 34.3354 +-404.98 33.4187 31.8157 +-405.069 30.8351 29.356 +-405.027 28.246 26.8911 +-404.854 25.6535 24.423 +-404.15 23.0369 21.9319 +-406.009 20.5625 19.5762 +-404.943 17.9381 17.0777 +-404.745 15.3629 14.626 +-405.514 12.8232 12.2081 +-404.354 10.2268 9.73628 +-145.55 2.76043 2.62802 +-146.378 1.85051 1.76175 +-146.994 0.929085 0.884521 +120.4 4.44089e-15 5.68434e-14 +120.895 0.770657 0.720553 +120.182 1.53233 1.43271 +120.859 2.31173 2.16143 +120.826 3.08204 2.88166 +120.685 3.84892 3.59868 +121.234 4.641 4.33927 +120.974 5.40468 5.0533 +120.306 6.14503 5.74551 +121.125 6.96325 6.51053 +120.739 7.716 7.21434 +120.542 8.4783 7.92708 +121.332 9.3151 8.70948 +120.918 10.0633 9.40904 +120.892 10.8426 10.1377 +121.353 11.67 10.9113 +121.011 12.4228 11.6151 +121.55 13.2693 12.4066 +121.288 14.0322 13.1199 +120.82 14.7685 13.8083 +121.427 15.6396 14.6228 +120.94 16.3731 15.3086 +120.642 17.1294 16.0157 +120.531 17.9124 16.7478 +121.192 18.8167 17.5933 +120.768 19.5569 18.2854 +120.53 20.3259 19.0044 +120.768 21.1787 19.8018 +120.705 21.9831 20.5538 +121.018 22.8614 21.375 +120.837 23.6508 22.1132 +120.743 24.4592 22.869 +121.023 25.3487 23.7007 +120.715 26.1192 24.421 +120.973 27.0158 25.2594 +120.931 27.8518 26.041 +121.069 28.7345 26.8663 +121.385 29.6674 27.7385 +121.877 30.654 28.661 +121.224 31.3566 29.318 +121.408 32.278 30.1794 +121.393 33.153 30.9976 +120.619 33.8208 31.6219 +120.768 34.749 32.4898 +120.348 35.5175 33.2083 +120.751 36.5349 34.1595 +121.323 37.6172 35.1715 +120.96 38.4182 35.9204 +120.862 39.3066 36.7511 +120.752 40.1967 37.5833 +120.086 40.9031 38.2438 +120.405 41.9501 39.2227 +120.888 43.0682 40.2681 +120.19 43.772 40.9261 +120.82 44.9675 42.0439 +121.343 46.1407 43.1408 +119.993 46.6038 43.5738 +117.674 46.6698 43.6356 +114.663 46.4265 43.4081 +113.146 46.76 43.7199 +109.899 46.3473 43.334 +107.876 46.4158 43.398 +105.174 46.1611 43.16 +103.255 46.2191 43.2142 +100.748 45.9852 42.9955 +99.4359 46.2725 43.2641 +96.2794 45.6713 42.702 +95.6467 46.2429 43.2365 +95.2564 46.9326 43.8812 +95.5986 47.993 44.8728 +95.3493 48.7682 45.5975 +96.7169 50.3921 47.1159 +96.6775 51.3073 47.9715 +95.9001 51.8347 48.4647 +95.996 52.8397 49.4043 +95.9958 53.8053 50.3071 +96.0585 54.8199 51.2557 +96.1043 55.8393 52.209 +96.0552 56.8176 53.1236 +95.45 57.4742 53.7375 +95.9854 58.8316 55.0067 +96.0393 59.9156 56.0202 +95.8481 60.861 56.9041 +95.7914 61.9053 57.8805 +95.7914 63.0022 58.9062 +95.6986 64.0546 59.8901 +95.6611 65.1604 60.924 +94.5888 65.5665 61.3037 +93.5861 66.0148 61.7228 +92.9365 66.7112 62.374 +93.126 68.0242 63.6016 +92.8705 69.032 64.5439 +93.0842 70.4095 65.8318 +95.4748 73.4902 68.7122 +95.6162 74.8977 70.0283 +96.0014 76.5274 71.552 +95.6857 77.6253 72.5785 +95.2848 78.6698 73.5551 +94.8661 79.7151 74.5324 +95.1441 81.3718 76.0814 +95.1968 82.8706 77.4828 +95.2209 84.3761 78.8904 +94.7127 85.4338 79.8793 +94.8712 87.1204 81.4563 +94.6887 88.528 82.7724 +94.1145 89.5915 83.7667 +94.5451 91.647 85.6886 +94.4579 93.2438 87.1816 +94.2808 94.788 88.6253 +94.3062 96.5747 90.2959 +94.1813 98.2496 91.8619 +93.9668 99.8698 93.3767 +93.6648 101.434 94.8389 +93.5533 103.245 96.5327 +93.8413 105.553 98.6902 +93.8125 107.564 100.57 +94.0077 109.892 102.748 +93.6317 111.608 104.352 +93.8914 114.142 106.721 +93.5393 115.995 108.453 +93.5 118.295 110.604 +93.5112 120.73 112.881 +93.4713 123.174 115.166 +93.38 125.627 117.459 +93.5657 128.539 120.182 +93.6888 131.463 122.916 +93.4766 134.007 125.295 +93.4784 136.952 128.048 +93.0224 139.315 130.257 +93.2057 142.738 133.458 +92.9338 145.577 136.112 +93.0157 149.088 139.395 +93.0613 152.679 142.752 +92.9883 156.213 146.057 +92.994 160.028 149.623 +92.7242 163.516 152.885 +92.7526 167.691 156.788 +92.6149 171.742 160.576 +92.4231 175.871 164.437 +92.2796 180.285 168.564 +91.6614 183.956 171.996 +90.1946 186.048 173.952 +88.0011 186.685 174.548 +91.3837 199.499 186.529 +91.3454 205.354 192.003 +88.8285 205.789 192.41 +86.4543 206.557 193.128 +83.3585 205.56 192.195 +81.2028 206.856 193.407 +78.1405 205.817 192.436 +75.601 206.095 192.696 +72.7104 205.367 192.015 +70.4235 206.319 192.905 +67.6291 205.766 192.388 +65.1683 206.189 192.783 +62.313 205.313 191.964 +59.8578 205.702 192.328 +57.079 204.93 191.607 +54.8003 205.932 192.543 +51.9736 204.837 191.519 +49.6807 205.807 192.427 +46.9395 204.892 191.571 +44.6308 205.832 192.45 +41.9335 204.953 191.628 +39.5947 205.791 192.412 +36.9389 204.95 191.625 +34.6109 205.902 192.516 +31.9459 204.809 191.493 +29.6025 205.731 192.356 +26.9614 204.531 191.233 +24.6302 205.641 192.271 +22.0078 204.26 190.98 +19.6574 205.341 191.99 +17.1546 204.875 191.555 +14.743 205.487 192.127 +12.2091 204.26 190.98 +9.7928 204.84 191.523 +7.31122 203.945 190.686 +4.8954 204.861 191.542 +2.43994 204.227 190.949 +1.70974e-14 204.965 191.639 +-2.44081 204.3 191.017 +-4.90238 205.153 191.815 +-7.32955 204.457 191.164 +-9.81723 205.352 192.001 +-12.1742 203.675 190.433 +-14.7064 204.976 191.65 +-17.0631 203.781 190.532 +-19.5806 204.539 191.241 +-21.9842 204.042 190.776 +-24.4908 204.476 191.182 +-26.9422 204.385 191.097 +-29.4561 204.714 191.404 +-31.7988 203.865 190.611 +-34.3793 204.525 191.228 +-36.6518 203.357 190.135 +-39.219 203.839 190.586 +-41.6527 203.581 190.345 +-44.224 203.956 190.696 +-46.4774 202.875 189.685 +-49.2293 203.937 190.678 +-51.5544 203.185 189.975 +-54.1707 203.566 190.331 +-56.6205 203.284 190.068 +-59.3172 203.845 190.592 +-61.4689 202.531 189.364 +-64.4935 204.054 190.787 +-66.7187 202.995 189.797 +-69.5284 203.696 190.453 +-71.7339 202.609 189.436 +-74.8505 204.049 190.783 +-77.0181 202.86 189.671 +-79.9348 203.626 190.387 +-82.0804 202.408 189.248 +-85.3141 203.833 190.581 +-87.4152 202.515 189.349 +-90.4493 203.339 190.119 +-92.8751 202.755 189.573 +-96.0752 203.813 190.562 +-98.2394 202.642 189.467 +-101.375 203.449 190.222 +-103.731 202.658 189.483 +-106.794 203.217 190.005 +-109.181 202.46 189.297 +-112.607 203.585 190.349 +-114.652 202.185 189.04 +-118.04 203.128 189.922 +-120.462 202.368 189.211 +-123.567 202.726 189.546 +-126.316 202.463 189.3 +-129.406 202.709 189.53 +-132.339 202.668 189.491 +-138.043 206.74 193.299 +-140.508 205.853 192.469 +-143.506 205.73 192.354 +-143.188 200.92 187.857 +-143.048 196.517 183.74 +-144.436 194.314 181.68 +-149.273 196.707 183.918 +-155.409 200.644 187.599 +-488.1 617.535 577.386 +-491.805 609.869 570.219 +-493.819 600.324 561.294 +-498.046 593.666 555.069 +-500.403 584.956 546.925 +-503.611 577.431 539.89 +-506.569 569.788 532.743 +-510.1 562.943 526.344 +-512.444 554.947 518.867 +-516.449 548.89 513.204 +-518.915 541.329 506.135 +-522.807 535.384 500.576 +-524.775 527.599 493.297 +-528.56 521.768 487.845 +-531.463 515.17 481.677 +-535.101 509.387 476.27 +-537.411 502.446 469.779 +-542.086 497.8 465.436 +-142.163 128.236 119.899 +-142.99 126.705 118.467 +-143.856 125.23 117.088 +-142.489 121.864 113.941 +-142.627 119.848 112.056 +-144.054 118.935 111.202 +-148.413 120.401 112.573 +-157.48 125.535 117.373 +-157.473 123.352 115.332 +-158.666 122.131 114.191 +-159.91 120.957 113.093 +-161.279 119.881 112.087 +-162.917 119.003 111.266 +-586.435 420.951 393.583 +-588.995 415.472 388.46 +-592.994 411.048 384.324 +-595.395 405.559 379.191 +-599.48 401.254 375.166 +-601.947 395.903 370.163 +-606.205 391.76 366.29 +-608.749 386.539 361.408 +-613.343 382.644 357.767 +-615.44 377.218 352.693 +-620.232 373.466 349.185 +-622.183 368.027 344.1 +-626.869 364.229 340.548 +-629.463 359.23 335.874 +-633.017 354.804 331.736 +-635.794 349.964 327.211 +-640.674 346.289 323.775 +-643.33 341.419 319.222 +-647.385 337.305 315.375 +-387.787 198.341 185.446 +-384.29 192.924 180.381 +-382.85 188.629 176.365 +-382.837 185.092 173.059 +-379.582 180.06 168.353 +-384.418 178.889 167.258 +-382.724 174.69 163.333 +-383.262 171.556 160.403 +-383.925 168.505 157.55 +-135.448 58.2792 54.4902 +-135.879 57.3041 53.5784 +-2851.72 1178.54 1101.91 +-380.11 153.905 143.899 +-382.637 151.755 141.889 +-115.048 44.6834 41.7783 +-113.892 43.3075 40.4918 +-111.554 41.5187 38.8193 +-111.151 40.4801 37.8483 +-110.731 39.4498 36.885 +-109.935 38.3023 35.812 +-109.754 37.3839 34.9534 +-109.832 36.5617 34.1847 +-109.717 35.682 33.3621 +-109.956 34.923 32.6524 +-109.54 33.9639 31.7557 +-109.11 33.0128 30.8664 +-110.335 32.5623 30.4453 +-109.789 31.59 29.5362 +-109.976 30.8366 28.8318 +-109.965 30.0321 28.0795 +-110.696 29.43 27.5166 +-110.76 28.6501 26.7874 +-111.288 27.9905 26.1707 +-111.807 27.3264 25.5498 +-112.986 26.8158 25.0724 +-113.302 26.0946 24.398 +-114.278 25.5209 23.8616 +-115.825 25.0612 23.4318 +-117.178 24.5434 22.9477 +-119.972 24.3031 22.723 +-127.599 24.9742 23.3505 +-159.648 30.1587 28.198 +-161.457 29.405 27.4932 +-163.358 28.6475 26.785 +-162.915 27.4737 25.6875 +-165.385 26.782 25.0408 +-856.368 132.962 124.318 +-864.392 128.459 120.107 +-871.587 123.753 115.707 +-381.503 51.6484 48.2905 +-382.204 49.2274 46.0268 +-382.186 46.7168 43.6795 +-903.439 104.521 97.7258 +-406.09 44.3316 41.4494 +-405.515 41.6296 38.923 +-405.699 39.0145 36.4779 +-405.157 36.3379 33.9754 +-406.272 33.8118 31.6135 +-404.373 31.0452 29.0268 +-404.429 28.4454 26.596 +-403.957 25.8155 24.1371 +-404.15 23.2337 21.7232 +-405.31 20.7026 19.3566 +-403.945 18.0468 16.8735 +-405.144 15.5095 14.5011 +-404.914 12.9136 12.074 +-404.054 10.3066 9.63654 +-148.249 2.83565 2.65129 +-143.578 1.83064 1.71162 +-145.494 0.927464 0.867165 +120.4 4.44089e-15 5.68434e-14 +120.195 0.772626 0.709439 +120.182 1.54519 1.41882 +119.959 2.31378 2.12456 +120.826 3.10791 2.85374 +120.685 3.88123 3.56381 +121.234 4.67996 4.29722 +120.974 5.45005 5.00433 +120.306 6.19662 5.68984 +121.125 7.0217 6.44745 +120.938 7.79358 7.15621 +120.542 8.54947 7.85027 +121.332 9.3933 8.62509 +120.918 10.1478 9.31787 +121.686 11.0055 10.1054 +120.461 11.6814 10.7261 +120.12 12.4348 11.4179 +121.55 13.3807 12.2864 +121.189 14.1384 12.9821 +120.82 14.8925 13.6746 +121.427 15.7709 14.4811 +121.039 16.524 15.1726 +121.427 17.3857 15.9638 +120.531 18.0628 16.5855 +121.095 18.9593 17.4088 +120.768 19.721 18.1082 +121.407 20.6457 18.9572 +121.06 21.408 19.6572 +120.802 22.1854 20.371 +120.244 22.9057 21.0324 +121.031 23.8874 21.9339 +121.128 24.7433 22.7197 +121.023 25.5615 23.471 +120.62 26.3175 24.1652 +121.068 27.2642 25.0344 +120.931 28.0856 25.7887 +120.594 28.8619 26.5015 +121.48 29.9397 27.4912 +121.877 30.9113 28.3833 +121.412 31.6689 29.079 +121.22 32.4986 29.8408 +121.486 33.4571 30.7209 +120.619 34.1047 31.3155 +120.954 35.0947 32.2246 +120.256 35.7881 32.8612 +120.751 36.8415 33.8286 +120.31 37.6164 34.54 +120.685 38.6526 35.4915 +120.771 39.6066 36.3675 +120.843 40.5647 37.2472 +120.267 41.3087 37.9304 +120.405 42.3022 38.8426 +120.708 43.3651 39.8186 +121.085 44.4681 40.8314 +121.177 45.4787 41.7594 +121.432 46.562 42.7541 +121.317 47.5137 43.6279 +119.255 47.6942 43.7936 +115.887 47.3162 43.4466 +114.017 47.5152 43.6293 +110.851 47.1414 43.2861 +109.513 47.5157 43.6297 +105.86 46.8521 43.0204 +104.789 47.2999 43.4316 +102.02 46.9568 43.1165 +100.701 47.2546 43.39 +97.4535 46.6163 42.8039 +96.3972 46.997 43.1535 +95.0077 47.2029 43.3426 +95.5986 48.3959 44.438 +95.7589 49.3888 45.3497 +95.4143 50.1308 46.031 +96.6775 51.7379 47.5067 +96.2217 52.4451 48.156 +95.996 53.2832 48.9256 +96.0751 54.3018 49.8608 +95.9797 55.2347 50.7175 +96.026 56.2622 51.6609 +96.0552 57.2945 52.6088 +95.9901 58.2846 53.5179 +95.9854 59.3255 54.4737 +95.9632 60.3707 55.4335 +95.9236 61.4202 56.3971 +95.7914 62.4249 57.3196 +96.3859 63.9254 58.6974 +96.2147 64.9406 59.6296 +96.2461 66.1092 60.7027 +95.967 67.0803 61.5943 +93.658 66.62 61.1717 +93.5785 67.7358 62.1962 +93.126 68.5952 62.9853 +93.3611 69.9792 64.2562 +94.4041 72.0073 66.1184 +95.4748 74.1071 68.0464 +95.6162 75.5265 69.3497 +95.3258 76.6269 70.3602 +95.0835 77.7841 71.4227 +95.2185 79.2749 72.7917 +94.9317 80.4395 73.861 +95.1441 82.0548 75.3442 +95.2611 83.623 76.7841 +95.2209 85.0844 78.126 +94.6498 86.0942 79.0533 +94.8712 87.8517 80.667 +94.8734 89.445 82.13 +93.9928 90.2272 82.8482 +94.5451 92.4163 84.8583 +94.5173 94.0862 86.3916 +94.0456 95.3457 87.5482 +94.3062 97.3853 89.421 +94.1813 99.0743 90.9718 +94.1367 100.89 92.639 +93.8326 102.469 94.0884 +93.9397 104.541 95.9916 +93.8413 106.439 97.7339 +93.7588 108.405 99.5391 +93.4778 110.19 101.179 +93.7885 112.734 103.514 +93.8914 115.1 105.687 +93.5393 116.968 107.402 +93.6 119.415 109.649 +93.5112 121.743 111.787 +93.5198 124.272 114.109 +93.38 126.682 116.321 +93.6126 129.683 119.077 +93.6888 132.566 121.725 +93.3858 135.001 123.961 +93.4338 138.035 126.746 +93.0662 140.551 129.056 +92.9043 143.471 131.737 +93.0183 146.932 134.916 +93.0572 150.407 138.106 +93.0613 153.96 141.369 +92.9883 157.525 144.642 +92.9159 161.235 148.049 +92.6094 164.685 151.217 +92.5278 168.688 154.893 +92.6882 173.321 159.146 +92.4589 177.417 162.907 +92.2446 181.729 166.867 +91.0116 184.185 169.121 +89.1598 185.457 170.29 +87.4476 187.067 171.769 +91.5741 201.593 185.106 +90.7583 205.747 188.92 +87.9564 205.479 188.675 +85.6649 206.389 189.51 +82.6485 205.52 188.712 +80.238 206.113 189.257 +77.2853 205.273 188.485 +75.0058 206.188 189.326 +72.1345 205.45 188.648 +69.8912 206.478 189.592 +66.7887 204.914 188.156 +64.6059 206.125 189.268 +61.7719 205.238 188.453 +59.5043 206.204 189.34 +56.5607 204.774 188.027 +54.2852 205.708 188.885 +51.5544 204.891 188.134 +49.2293 205.649 188.831 +46.5104 204.723 187.98 +44.2553 205.814 188.982 +41.5788 204.925 188.166 +39.2746 205.842 189.007 +36.469 204.041 187.354 +34.2818 205.657 188.838 +31.6403 204.552 187.823 +29.3202 205.48 188.675 +26.7122 204.341 187.63 +24.4123 205.532 188.723 +21.7881 203.919 187.242 +19.483 205.227 188.443 +16.9349 203.948 187.268 +14.5965 205.152 188.374 +12.1 204.134 187.44 +9.70904 204.793 188.045 +7.2641 204.332 187.622 +4.84653 204.519 187.793 +2.41551 203.879 187.205 +1.63203e-14 205.213 188.43 +-2.41987 204.247 187.543 +-4.85351 204.813 188.063 +-7.23007 203.375 186.742 +-9.71253 204.866 188.112 +-12.0738 203.693 187.034 +-14.5599 204.637 187.902 +-16.8921 203.433 186.796 +-19.4063 204.418 187.701 +-21.7802 203.845 187.174 +-24.3339 204.872 188.117 +-26.6068 203.535 186.889 +-29.2053 204.674 187.935 +-31.5158 203.747 187.084 +-34.0259 204.122 187.428 +-36.3254 203.238 186.616 +-38.9824 204.309 187.601 +-41.1797 202.959 186.36 +-43.8017 203.705 187.045 +-46.0648 202.761 186.179 +-48.7778 203.763 187.099 +-50.8802 202.211 185.674 +-53.77 203.756 187.093 +-55.8828 202.32 185.774 +-58.7351 203.538 186.892 +-60.9061 202.362 185.812 +-63.8636 203.757 187.093 +-65.9016 202.193 185.657 +-68.8994 203.548 186.901 +-71.0578 202.384 185.833 +-73.9187 203.2 186.582 +-76.1362 202.221 185.682 +-79.1906 203.423 186.786 +-81.3988 202.412 185.858 +-84.5831 203.783 187.117 +-86.483 202.037 185.514 +-89.7076 203.365 186.734 +-92.1453 202.85 186.261 +-95.0008 203.225 186.605 +-97.4382 202.676 186.101 +-100.588 203.566 186.917 +-102.576 202.083 185.556 +-105.826 203.066 186.459 +-108.008 201.967 185.45 +-111.558 203.382 186.749 +-113.58 201.977 185.459 +-117.063 203.138 186.525 +-119.186 201.905 185.392 +-122.916 203.351 186.721 +-125.03 202.084 185.557 +-128.391 202.808 186.222 +-130.832 202.042 185.519 +-136.64 206.357 189.481 +-139.035 205.406 188.607 +-143.007 206.735 189.828 +-143.373 202.868 186.277 +-143.33 198.557 182.318 +-143.625 194.844 178.91 +-147.867 196.491 180.421 +-150.189 195.532 179.541 +-490.2 625.398 574.252 +-493.632 617.274 566.791 +-495.724 607.7 558.001 +-499.561 600.471 551.363 +-502.099 591.865 543.461 +-506.136 585.198 537.339 +-508.039 576.239 529.113 +-512.529 570.371 523.725 +-514.29 561.621 515.69 +-518.318 555.501 510.071 +-520.291 547.322 502.56 +-524.433 541.558 497.268 +-526.773 534.054 490.378 +-531.058 528.634 485.401 +-532.787 520.789 478.198 +-537.293 515.767 473.586 +-539.75 508.869 467.252 +-142.058 131.547 120.789 +-143.233 130.286 119.631 +-144.008 128.678 118.155 +-143.856 126.281 115.953 +-142.359 122.775 112.734 +-143.677 121.743 111.787 +-148.162 123.353 113.265 +-151.023 123.546 113.442 +-157.75 126.806 116.436 +-158.019 124.818 114.61 +-159.561 123.851 113.722 +-160.813 122.661 112.63 +-163.102 122.253 112.255 +-584.07 430.217 395.033 +-589.288 426.55 391.665 +-590.794 420.239 385.87 +-595.968 416.577 382.508 +-596.565 409.767 376.255 +-602.061 406.364 373.131 +-604.028 400.606 367.843 +-608.751 396.708 364.265 +-610.862 391.137 359.149 +-615.092 386.957 355.311 +-617.891 381.899 350.666 +-622.392 377.913 347.006 +-624.437 372.461 342 +-629.06 368.57 338.428 +-631.591 363.47 333.745 +-635.476 359.172 329.798 +-637.95 354.098 325.139 +-643.568 350.773 322.086 +-645.515 345.454 317.202 +-650.315 341.677 313.734 +-652.455 336.512 308.991 +-382.807 193.793 177.944 +-384.176 190.871 175.261 +-382.92 186.687 171.419 +-382.182 182.814 167.863 +-382.056 179.283 164.62 +-383.063 176.313 161.893 +-383.262 172.997 158.848 +-382.382 169.236 155.396 +-382.994 166.174 152.584 +-135.187 57.4904 52.7887 +-135.079 56.2928 51.6891 +-382.296 156.09 143.324 +-114.949 45.972 42.2123 +-114.607 44.8856 41.2147 +-112.562 43.1608 39.6311 +-111.376 41.8003 38.3818 +-111.419 40.9185 37.5721 +-109.923 39.4904 36.2608 +-110.025 38.6555 35.4941 +-109.663 37.6666 34.5861 +-109.377 36.7159 33.7132 +-109.9 36.0414 33.0938 +-109.13 34.9518 32.0933 +-109.724 34.3066 31.5009 +-109.942 33.5436 30.8003 +-109.593 32.6149 29.9476 +-109.882 31.8822 29.2748 +-110.349 31.2011 28.6494 +-110.527 30.439 27.9496 +-111.354 29.8533 27.4119 +-110.478 28.8168 26.4601 +-112.044 28.4173 26.0933 +-112.661 27.7662 25.4954 +-113.081 27.0637 24.8503 +-114.16 26.513 24.3447 +-114.757 25.8428 23.7293 +-116.592 25.4389 23.3585 +-118.139 24.9524 22.9117 +-120.839 24.6842 22.6655 +-158.991 31.3797 28.8134 +-160.228 30.5225 28.0263 +-161.457 29.6518 27.2268 +-162.872 28.802 26.4465 +-164.669 28.0025 25.7124 +-3198.83 522.359 479.64 +-859.009 134.492 123.493 +-866.253 129.816 119.2 +-874.335 125.186 114.948 +-380.225 51.9075 47.6624 +-381.81 49.5894 45.5339 +-381.988 47.0846 43.2339 +-903.834 105.444 96.8208 +-405.595 44.6493 40.9977 +-405.218 41.9482 38.5176 +-405.204 39.2939 36.0804 +-404.86 36.616 33.6215 +-404.682 33.9622 31.1847 +-404.77 31.3366 28.7738 +-405.027 28.7265 26.3772 +-404.455 26.0642 23.9326 +-404.051 23.423 21.5074 +-404.313 20.8249 19.1218 +-403.945 18.1983 16.71 +-406.043 15.6744 14.3925 +-404.615 13.0124 11.9482 +-405.053 10.4188 9.56677 +-3275.38 63.176 58.0093 +-144.578 1.85886 1.70684 +-146.494 0.941679 0.864667 +120.4 4.44089e-15 5.68434e-14 +120.195 0.778995 0.70244 +120.182 1.55793 1.40483 +120.859 2.35035 2.11937 +120.726 3.13094 2.82325 +120.685 3.91322 3.52865 +120.535 4.69132 4.23029 +120.974 5.49497 4.95496 +120.905 6.27877 5.66173 +121.026 7.07375 6.37858 +120.739 7.8449 7.07395 +121.438 8.68403 7.83062 +120.337 9.39304 8.46995 +121.116 10.2483 9.24115 +120.594 10.9966 9.91591 +121.353 11.865 10.699 +121.11 12.6407 11.3984 +120.759 13.4031 12.0859 +121.189 14.2549 12.854 +120.82 15.0153 13.5396 +121.427 15.9009 14.3382 +121.039 16.6602 15.0229 +120.642 17.4156 15.7041 +121.217 18.3152 16.5153 +121.095 19.1156 17.237 +120.768 19.8836 17.9295 +120.432 20.6488 18.6196 +121.06 21.5845 19.4633 +120.705 22.3503 20.1539 +120.922 23.2247 20.9423 +120.741 24.0267 21.6655 +121.032 24.9273 22.4776 +120.831 25.7313 23.2025 +120.715 26.5555 23.9458 +121.164 27.5106 24.807 +120.645 28.2501 25.4739 +121.355 29.2834 26.4056 +121.48 30.1865 27.22 +121.972 31.1903 28.1251 +121.224 31.8805 28.7474 +120.751 32.6395 29.4318 +120.737 33.5248 30.2302 +120.899 34.4656 31.0786 +120.303 35.1934 31.7348 +120.627 36.1943 32.6374 +120.751 37.1452 33.4948 +120.586 38.0135 34.2777 +120.869 39.0304 35.1947 +120.405 39.8123 35.8997 +120.934 40.9298 36.9075 +120.086 41.5865 37.4996 +120.315 42.6189 38.4306 +120.708 43.7226 39.4258 +120.19 44.5032 40.1297 +120.553 45.6176 41.1346 +120.19 46.4657 41.8993 +121.494 47.9751 43.2604 +121.628 49.0441 44.2244 +117.899 48.5343 43.7646 +116.28 48.8577 44.0563 +113.276 48.5697 43.7966 +111.753 48.8874 44.083 +107.489 47.9651 43.2513 +106.068 48.2718 43.5279 +103.377 47.9735 43.259 +101.882 48.2027 43.4656 +99.5502 48.0118 43.2935 +97.5646 47.9582 43.2452 +95.5051 47.8412 43.1396 +94.9393 48.4583 43.6961 +95.595 49.7107 44.8255 +95.5772 50.6302 45.6546 +96.6775 52.1644 47.038 +95.5786 52.5239 47.3622 +96.3154 53.9012 48.6041 +95.9958 54.7041 49.3282 +96.0585 55.7357 50.2583 +96.026 56.726 51.1513 +96.0552 57.7668 52.0898 +95.9901 58.765 52.9899 +95.9854 59.8145 53.9363 +95.9632 60.8683 54.8866 +95.9236 61.9265 55.8407 +95.7914 62.9395 56.7542 +96.3859 64.4523 58.1183 +95.6249 65.0745 58.6794 +96.3193 66.7048 60.1495 +95.6769 67.4287 60.8023 +94.5212 67.7883 61.1264 +93.4358 68.19 61.4887 +92.9845 69.0555 62.2692 +95.6741 72.3041 65.1985 +95.7239 73.6158 66.3813 +95.3371 74.6102 67.278 +95.6844 76.2032 68.7144 +95.3933 77.3135 69.7156 +95.0835 78.4253 70.7181 +95.2848 79.9841 72.1237 +95.5222 81.6075 73.5876 +95.0792 82.6747 74.55 +95.1968 84.2551 75.975 +94.6484 85.2703 76.8905 +94.7757 86.919 78.3771 +94.809 88.518 79.8189 +94.3809 89.7144 80.8978 +94.2971 91.2651 82.2961 +94.1239 92.763 83.6468 +93.982 94.3241 85.0544 +94.3395 96.4317 86.955 +94.3062 98.1881 88.5388 +94.2386 99.9519 90.1292 +94.4199 102.028 92.001 +93.8885 103.374 93.2151 +94.0501 105.527 95.1565 +93.8958 107.378 96.826 +93.7051 109.235 98.5001 +93.9547 111.665 100.691 +93.684 113.536 102.378 +93.8399 115.985 104.587 +93.5901 117.996 106.4 +93.6 120.399 108.567 +93.5112 122.747 110.684 +93.5198 125.297 112.983 +93.38 127.726 115.174 +93.5187 130.621 117.784 +93.8273 133.857 120.702 +93.3858 136.114 122.738 +93.4338 139.173 125.496 +93.3731 142.176 128.204 +92.9043 144.653 130.437 +92.976 148.077 133.525 +92.6425 150.971 136.134 +92.6953 154.619 139.424 +92.9883 158.823 143.215 +92.8768 162.496 146.527 +92.6094 166.042 149.725 +92.5278 170.079 153.364 +92.6882 174.749 157.576 +92.4948 178.948 161.362 +91.6143 181.975 164.092 +90.1565 183.958 165.88 +88.4254 185.446 167.221 +88.1964 190.225 171.531 +91.2885 202.621 182.709 +90.0167 205.748 185.528 +86.8438 204.552 184.45 +84.7001 205.746 185.527 +81.5692 204.508 184.41 +79.4938 205.885 185.652 +76.2164 204.102 184.044 +74.1775 205.593 185.388 +71.0078 203.909 183.87 +68.9961 205.514 185.317 +66.0417 204.292 184.216 +63.7736 205.147 184.986 +60.7979 203.668 183.652 +58.7766 205.361 185.179 +55.843 203.842 183.81 +53.7891 205.509 185.312 +50.8619 203.804 183.776 +48.6215 204.785 184.66 +45.8337 203.408 183.418 +43.7391 205.091 184.935 +41.0023 203.75 183.727 +38.7736 204.891 184.755 +36.0122 203.146 183.182 +33.9528 205.362 185.18 +31.2101 203.434 183.442 +29.0276 205.106 184.95 +26.3576 203.29 183.312 +24.0986 204.563 184.46 +21.4978 202.86 182.924 +19.2946 204.918 184.78 +16.77 203.627 183.616 +14.4395 204.618 184.51 +11.9212 202.775 182.847 +9.62877 204.774 184.65 +7.16463 203.195 183.226 +4.80465 204.422 184.333 +2.38322 202.812 182.881 +1.67644e-14 204.825 184.696 +-2.38147 202.664 182.747 +-4.79243 203.902 183.864 +-7.16201 203.121 183.159 +-9.59038 203.958 183.914 +-11.9386 203.071 183.115 +-14.3924 203.951 183.908 +-16.6968 202.738 182.814 +-19.2319 204.251 184.179 +-21.4978 202.86 182.924 +-24.0114 203.824 183.793 +-26.2713 202.625 182.712 +-28.9439 204.515 184.416 +-31.029 202.254 182.377 +-33.7456 204.109 184.05 +-35.8425 202.189 182.319 +-38.4953 203.42 183.429 +-40.6476 201.987 182.137 +-43.4106 203.55 183.547 +-45.5366 202.089 182.229 +-48.1874 202.956 183.011 +-50.3699 201.833 181.998 +-53.1212 202.957 183.011 +-55.2847 201.804 181.972 +-58.0074 202.673 182.756 +-60.1269 201.42 181.625 +-63.0538 202.831 182.898 +-65.0145 201.115 181.351 +-68.0526 202.704 182.783 +-70.2066 201.608 181.795 +-73.2199 202.938 182.995 +-75.2276 201.454 181.657 +-78.3361 202.887 182.949 +-80.4615 201.731 181.906 +-83.5891 203.048 183.094 +-85.4004 201.153 181.385 +-88.657 202.64 182.726 +-90.7491 201.424 181.629 +-93.8613 202.443 182.548 +-95.9361 201.197 181.424 +-99.3569 202.731 182.808 +-101.315 201.244 181.467 +-104.679 202.522 182.619 +-106.725 201.214 181.44 +-109.984 202.167 182.299 +-111.973 200.76 181.031 +-115.656 202.351 182.465 +-117.711 201.049 181.291 +-121.167 202.11 182.248 +-123.205 200.776 181.045 +-126.955 202.192 182.322 +-128.895 200.691 180.968 +-134.054 204.12 184.06 +-137.295 204.506 184.408 +-141.327 205.991 185.747 +-143.465 204.672 184.558 +-143.33 200.193 180.52 +-142.766 195.276 176.085 +-144.764 193.953 174.892 +-147.924 194.171 175.089 +-157.2 202.209 182.337 +-496.373 625.817 564.315 +-497.939 615.446 554.964 +-502.226 608.65 548.836 +-504.165 599.2 540.314 +-508.823 593.154 534.862 +-509.946 583.169 525.858 +-515.344 578.232 521.406 +-516.806 569.021 513.101 +-521.15 563.141 507.799 +-523.388 555.118 500.564 +-527.685 549.408 495.415 +-529.183 540.92 487.761 +-533.853 535.798 483.143 +-535.134 527.395 475.566 +-539.667 522.316 470.986 +-542.89 516.048 465.334 +-143.303 133.794 120.646 +-142.982 131.129 118.243 +-142.8 128.65 116.007 +-142.57 126.184 113.783 +-142.684 124.069 111.876 +-144.727 123.644 111.493 +-154.39 129.599 116.863 +-157.513 129.917 117.15 +-157.953 128.015 115.435 +-158.701 126.39 113.969 +-160.8 125.841 113.474 +-161.508 124.207 112.001 +-585.54 442.511 399.024 +-587.04 435.969 393.125 +-592.354 432.304 389.82 +-593.671 425.766 383.925 +-598.434 421.749 380.302 +-600.661 415.98 375.1 +-605.747 412.223 371.712 +-606.406 405.499 365.649 +-611.822 401.995 362.49 +-613.428 396.018 357.1 +-618.666 392.413 353.849 +-621.109 387.052 349.015 +-625.247 382.776 345.159 +-627.235 377.213 340.143 +-631.721 373.18 336.506 +-633.876 367.792 331.647 +-639.125 364.212 328.42 +-640.825 358.626 323.382 +-645.899 354.945 320.063 +-648.427 349.873 315.489 +-653.246 346.045 312.038 +-655.076 340.648 307.171 +-660.537 337.147 304.015 +-384.176 192.445 173.532 +-384.672 189.087 170.505 +-384.782 185.575 167.338 +-383.153 181.279 163.464 +-381.791 177.176 159.764 +-382.324 173.995 156.896 +-383.154 170.976 154.173 +-383.08 167.582 151.113 +-134.407 57.6301 51.9666 +-134.644 56.574 51.0143 +-2865.69 1179.69 1063.76 +-114.51 46.1738 41.6361 +-113.547 44.8371 40.4308 +-111.586 43.1394 38.8999 +-111.198 42.0774 37.9423 +-110.256 40.825 36.813 +-110.102 39.881 35.9618 +-109.393 38.7503 34.9421 +-108.938 37.726 34.0185 +-109.286 36.9878 33.3528 +-110.082 36.3989 32.8219 +-109.13 35.2399 31.7767 +-109.632 34.5603 31.164 +-109.942 33.8201 30.4964 +-109.593 32.8837 29.6521 +-109.882 32.145 28.986 +-109.976 31.3518 28.2707 +-110.246 30.6119 27.6035 +-111.354 30.0994 27.1414 +-111.326 29.2774 26.4002 +-112.139 28.6757 25.8577 +-112.661 27.995 25.2438 +-113.556 27.4015 24.7086 +-114.637 26.8432 24.2052 +-115.33 26.1861 23.6127 +-117.168 25.7752 23.2421 +-118.908 25.3218 22.8334 +-129.608 26.6937 24.0704 +-159.185 31.6768 28.5638 +-161.584 31.0344 27.9845 +-161.457 29.8962 26.9582 +-162.289 28.9354 26.0918 +-164.961 28.2835 25.5039 +-855.626 140.873 127.029 +-861.65 136.017 122.65 +-870.369 131.509 118.585 +-381.166 55.0242 49.6168 +-380.815 52.4165 47.2654 +-382.204 50.0498 45.1312 +-381.693 47.436 42.7743 +-406.039 47.7604 43.0668 +-406.288 45.0942 40.6626 +-405.713 42.3457 38.1842 +-405.204 39.6178 35.7244 +-404.562 36.8906 33.2653 +-406.073 34.3599 30.9832 +-405.069 31.6182 28.5109 +-405.027 28.9633 26.117 +-405.75 26.3632 23.7724 +-404.051 23.6161 21.2953 +-404.911 21.0277 18.9612 +-404.344 18.3665 16.5615 +-404.245 15.7336 14.1874 +-404.615 13.1197 11.8304 +-404.354 10.4865 9.45598 +-150.248 2.92191 2.63476 +-144.878 1.87807 1.6935 +-147.394 0.955272 0.861393 +120.5 5.77316e-15 2.84217e-14 +120.295 0.785951 0.69596 +120.282 1.57184 1.39187 +121.059 2.3733 2.10156 +120.826 3.15889 2.7972 +120.685 3.94489 3.49321 +120.634 4.73321 4.19126 +121.273 5.55317 4.91733 +121.104 6.34005 5.61411 +121.026 7.13101 6.31451 +120.739 7.9084 7.00289 +120.642 8.6969 7.70111 +121.332 9.54738 8.45421 +121.116 10.3312 9.14832 +121.686 11.186 9.9052 +121.353 11.961 10.5915 +121.11 12.743 11.2839 +121.649 13.6112 12.0527 +121.189 14.3703 12.7249 +121.017 15.1615 13.4255 +120.639 15.9256 14.1021 +121.137 16.8086 14.8841 +120.74 17.5709 15.559 +121.315 18.4785 16.3627 +121.095 19.2703 17.0639 +120.768 20.0445 17.7494 +120.432 20.816 18.4325 +121.06 21.7592 19.2678 +120.317 22.4588 19.8872 +121.309 23.4877 20.7983 +120.741 24.2212 21.4479 +121.225 25.1692 22.2873 +120.734 25.919 22.9512 +121.387 26.9193 23.8371 +121.068 27.7114 24.5385 +120.931 28.5463 25.2778 +121.355 29.5204 26.1403 +121.101 30.3359 26.8624 +121.972 31.4428 27.8426 +121.506 32.2134 28.525 +121.408 33.0829 29.2949 +120.737 33.7961 29.9265 +121.085 34.7983 30.8139 +120.303 35.4783 31.4161 +120.627 36.4873 32.3095 +120.936 37.5032 33.2091 +120.586 38.3212 33.9334 +121.052 39.406 34.8941 +120.405 40.1345 35.5391 +120.934 41.2611 36.5367 +120.448 42.0497 37.235 +120.405 42.9961 38.0731 +120.618 44.0437 39.0007 +120.19 44.8635 39.7266 +120.464 45.9528 40.6913 +120.013 46.7727 41.4173 +121.14 48.2228 42.7013 +121.453 49.3696 43.7168 +120.26 49.9072 44.1928 +118.542 50.2117 44.4625 +115.181 49.7864 44.0859 +113.477 50.043 44.3131 +110.317 49.6257 43.9436 +109.65 50.3055 44.5455 +105.243 49.2346 43.5973 +104.496 49.8399 44.1332 +100.808 49.012 43.4001 +100.15 49.6274 43.9451 +96.9145 48.9402 43.3365 +95.8459 49.317 43.6702 +95.595 50.1131 44.3752 +95.0073 50.7357 44.9265 +95.7067 52.0586 46.0979 +95.5786 52.9491 46.8864 +96.8745 54.6529 48.3952 +95.6784 54.9646 48.6712 +96.1373 56.233 49.7943 +96.1043 57.2318 50.6787 +96.0552 58.2344 51.5665 +95.9901 59.2407 52.4576 +95.9854 60.2987 53.3945 +96.0393 61.4097 54.3783 +95.9236 62.4277 55.2798 +96.5404 63.945 56.6233 +95.7914 64.5733 57.1796 +96.2884 66.0565 58.4931 +95.5148 66.6831 59.0479 +96.0396 68.2322 60.4196 +96.1757 69.5331 61.5716 +95.2189 70.0539 62.0327 +93.4088 69.9322 61.9249 +95.2536 72.5689 64.2598 +95.7239 74.2117 65.7145 +95.3371 75.2142 66.6022 +95.0706 76.3274 67.588 +95.3933 77.9393 69.0153 +95.0835 79.0601 70.0077 +95.351 80.6877 71.4489 +94.8661 81.7029 72.3479 +95.1441 83.4008 73.8515 +94.6183 84.4213 74.7551 +94.6484 85.9605 76.1181 +94.7127 87.5642 77.5381 +94.8712 89.2928 79.0688 +94.3809 90.4406 80.0851 +94.0536 91.7664 81.2592 +94.0637 93.4539 82.7535 +94.5173 95.6296 84.68 +94.3983 97.2729 86.1352 +94.2481 98.9222 87.5956 +94.0665 100.577 89.0608 +93.9668 102.36 90.6399 +93.7766 104.087 92.1693 +93.7741 106.069 93.9241 +93.8413 108.185 95.7976 +93.7588 110.183 97.567 +93.4248 111.934 99.1176 +93.8407 114.646 101.519 +93.2734 116.218 102.911 +93.5393 118.887 105.274 +93.6 121.374 107.477 +93.5605 123.806 109.63 +93.5198 126.311 111.848 +93.3323 128.694 113.958 +93.6126 131.81 116.718 +93.4117 134.342 118.96 +93.522 137.416 121.682 +93.4338 140.3 124.235 +93.0224 142.789 126.44 +93.1626 146.229 129.486 +92.976 149.275 132.183 +93.0572 152.874 135.37 +92.6953 155.87 138.023 +92.7092 159.628 141.351 +92.8768 163.811 145.055 +92.7242 167.594 148.404 +92.5278 171.455 151.824 +92.6882 176.164 155.993 +92.7098 180.816 160.113 +90.1784 180.573 159.898 +89.7803 184.673 163.528 +87.4574 184.9 163.729 +91.3544 198.631 175.888 +90.6857 202.912 179.679 +88.9042 204.85 181.394 +85.5207 203.066 179.815 +83.3844 204.19 180.81 +80.2911 202.932 179.697 +78.1432 204.025 180.665 +75.2543 203.157 179.896 +73.1164 204.292 180.901 +69.856 202.225 179.07 +68.1736 204.707 181.269 +65.0379 202.816 179.593 +63.0088 204.327 180.932 +59.9321 202.392 179.218 +57.9034 203.948 180.596 +54.9857 202.337 179.17 +52.9686 204.012 180.653 +50.0783 202.289 179.127 +48.0485 204.009 180.65 +45.2561 202.47 179.287 +43.1603 204.014 180.655 +40.3963 202.363 179.193 +38.2726 203.88 180.536 +35.5553 202.193 179.042 +33.4044 203.68 180.359 +30.8366 202.626 179.426 +28.5781 203.564 180.256 +26.0605 202.625 179.425 +23.7935 203.608 180.295 +21.2232 201.89 178.774 +18.9947 203.366 180.081 +16.5075 202.062 178.926 +14.2511 203.583 180.273 +11.786 202.098 178.957 +9.49964 203.663 180.344 +7.05992 201.847 178.735 +4.74705 203.607 180.294 +2.35006 201.609 178.525 +1.52101e-14 203.188 179.923 +-2.35267 201.833 178.723 +-4.73135 202.933 179.697 +-7.06254 201.922 178.802 +-9.46823 202.99 179.748 +-11.7511 201.499 178.428 +-14.2249 203.209 179.942 +-16.4648 201.539 178.463 +-18.9668 203.067 179.816 +-21.129 200.995 177.981 +-23.7325 203.087 179.833 +-25.8784 201.21 178.171 +-28.4526 202.671 179.465 +-30.6441 201.362 178.306 +-33.1972 202.417 179.241 +-35.3726 201.154 178.122 +-38.036 202.619 179.42 +-40.012 200.439 177.488 +-42.8318 202.461 179.28 +-44.926 200.993 177.979 +-47.5275 201.797 178.692 +-49.5681 200.227 177.301 +-52.3007 201.44 178.375 +-54.4873 200.503 177.545 +-57.1757 201.385 178.326 +-59.3694 200.492 177.535 +-62.064 201.264 178.219 +-64.2208 200.268 177.337 +-67.2543 201.947 178.824 +-69.0798 199.978 177.081 +-72.1329 201.544 178.468 +-74.2388 200.416 177.469 +-77.3163 201.866 178.753 +-79.1835 200.133 177.218 +-82.5658 202.185 179.035 +-84.348 200.282 177.35 +-87.5445 201.717 178.62 +-89.6386 200.569 177.604 +-92.559 201.25 178.207 +-94.5675 199.932 177.04 +-97.9888 201.558 178.48 +-99.8441 199.928 177.036 +-103.246 201.365 178.309 +-105.149 199.847 176.965 +-108.673 201.374 178.316 +-110.634 199.965 177.069 +-114.054 201.163 178.13 +-116.156 199.999 177.099 +-119.825 201.489 178.419 +-121.422 199.473 176.633 +-125.18 200.978 177.966 +-126.872 199.14 176.338 +-130.854 200.86 177.862 +-133.859 201.002 177.988 +-139.647 205.19 181.696 +-141.895 204.07 180.704 +-143.424 201.946 178.823 +-143.291 197.58 174.957 +-143.988 194.475 172.208 +-144.083 190.66 168.83 +-150.1 194.639 172.353 +-156.119 198.425 175.705 +-500.617 623.765 552.344 +-505.152 617.151 546.488 +-506.921 607.351 537.81 +-511.832 601.491 532.62 +-513.268 591.719 523.968 +-518.379 586.346 519.21 +-520.105 577.289 511.189 +-524.719 571.586 506.14 +-525.625 562.003 497.654 +-530.763 557.085 493.299 +-532.063 548.266 485.49 +-537.72 544.047 481.754 +-538.624 535.132 473.859 +-141.902 138.452 122.599 +-143.203 137.224 121.512 +-143.739 135.287 119.797 +-143.548 132.714 117.518 +-142.8 129.692 114.842 +-143.085 127.664 113.046 +-148.399 130.083 115.189 +-150.894 129.956 115.076 +-158.3 133.956 118.618 +-157.848 131.247 116.22 +-160.25 130.929 115.937 +-160.542 128.891 114.133 +-161.97 127.783 113.152 +-163.175 126.505 112.02 +-589.605 449.19 397.758 +-590.434 442.039 391.426 +-595.564 438.165 387.995 +-597.412 431.917 382.463 +-602.423 427.997 378.991 +-603.367 421.237 373.006 +-608.917 417.734 369.904 +-610.568 411.586 364.46 +-615.791 407.879 361.177 +-616.975 401.531 355.556 +-622.392 397.972 352.404 +-623.637 391.773 346.915 +-629.646 388.588 344.095 +-630.887 382.481 338.687 +-635.634 378.531 335.189 +-637.816 373.073 330.356 +-643.251 369.53 327.219 +-644.579 363.647 322.009 +-649.597 359.867 318.662 +-651.42 354.333 313.762 +-657.805 351.281 311.059 +-658.434 345.167 305.645 +-664.328 341.827 302.688 +-384.922 194.379 172.123 +-383.921 190.245 168.462 +-383.44 186.425 165.079 +-383.068 182.706 161.786 +-381.791 178.61 158.159 +-383.603 175.991 155.84 +-383.154 172.36 152.625 +-384.373 169.508 150.099 +-381.831 165.044 146.146 +-118.804 50.3223 44.5604 +-118.948 49.3627 43.7107 +-112.928 45.9045 40.6484 +-112.223 44.6729 39.5578 +-110.61 43.1084 38.1725 +-110.841 42.2821 37.4408 +-109.808 40.9884 36.2953 +-109.563 40.0069 35.4261 +-109.303 39.0317 34.5626 +-109.391 38.1895 33.8168 +-109.832 37.4734 33.1827 +-109.717 36.5717 32.3843 +-109.956 35.7938 31.6954 +-109.356 34.7523 30.7732 +-109.295 33.8933 30.0125 +-110.428 33.4023 29.5777 +-110.534 32.5972 28.8648 +-110.723 31.8202 28.1768 +-110.808 31.0169 27.4655 +-111.26 30.3174 26.8461 +-111.703 29.6144 26.2235 +-112.611 29.0297 25.7058 +-113.42 28.4116 25.1585 +-114.127 27.7621 24.5833 +-115.304 27.218 24.1016 +-115.617 26.4637 23.4336 +-119.181 26.4303 23.404 +-120.35 25.8364 22.8781 +-161.215 33.4722 29.6396 +-161.02 32.3013 28.6028 +-162.455 31.4544 27.8529 +-160.875 30.0296 26.5912 +-165.206 29.694 26.294 +-3192.52 551.807 488.625 +-859.433 142.645 126.312 +-864.291 137.538 121.79 +-874.975 133.275 118.015 +-381.853 55.5696 49.2069 +-383.076 53.1547 47.0685 +-381.121 50.3118 44.5511 +-903.931 113.248 100.281 +-404.755 47.9947 42.4993 +-404.705 45.2821 40.0973 +-404.921 42.6051 37.7268 +-405.699 39.9873 35.4088 +-404.165 37.1528 32.8988 +-405.278 34.5702 30.6119 +-405.069 31.8741 28.2245 +-405.027 29.1977 25.8546 +-405.352 26.5505 23.5105 +-405.247 23.8777 21.1437 +-403.714 21.1352 18.7152 +-404.644 18.5289 16.4073 +-403.946 15.8492 14.0345 +-404.914 13.2356 11.7201 +-404.354 10.5714 9.36099 +-3275.38 64.2123 56.86 +-146.078 1.90895 1.69038 +-146.994 0.960391 0.850426 +120.5 5.77316e-15 2.84217e-14 +120.195 0.791541 0.688271 +120.282 1.58434 1.37763 +119.959 2.37043 2.06116 +120.826 3.184 2.76859 +120.585 3.97296 3.45461 +120.535 4.76688 4.14496 +120.475 5.56045 4.83499 +120.905 6.3799 5.54753 +120.826 7.17584 6.23962 +120.639 7.96469 6.92555 +120.542 8.75878 7.61603 +121.332 9.62327 8.36774 +121.116 10.4134 9.05474 +120.793 11.1921 9.7319 +120.461 11.9674 10.406 +121.11 12.8443 11.1685 +120.66 13.6078 11.8324 +121.189 14.4845 12.5947 +120.82 15.2571 13.2665 +121.328 16.1439 14.0377 +121.039 16.9285 14.7199 +120.74 17.7105 15.3999 +120.531 18.505 16.0907 +121.192 19.4392 16.903 +120.768 20.2038 17.5679 +121.212 21.1172 18.362 +120.963 21.9146 19.0554 +120.414 22.6555 19.6997 +121.018 23.6177 20.5363 +121.031 24.4723 21.2794 +121.225 25.3692 22.0593 +120.734 26.1249 22.7165 +121.195 27.0904 23.556 +121.259 27.9757 24.3258 +120.836 28.7505 24.9995 +121.355 29.755 25.873 +120.816 30.5051 26.5252 +120.932 31.4224 27.3228 +121.412 32.4443 28.2113 +121.502 33.3716 29.0177 +120.643 34.0383 29.5974 +120.992 35.0479 30.4752 +121.047 35.9815 31.2871 +120.534 36.7491 31.9545 +120.936 37.8013 32.8694 +120.494 38.5962 33.5606 +121.235 39.7794 34.5894 +120.771 40.5763 35.2824 +120.934 41.589 36.163 +120.448 42.3839 36.8541 +120.585 43.4028 37.7401 +119.899 44.1291 38.3716 +120.816 45.4557 39.5252 +120.375 46.2838 40.2453 +120.545 47.3535 41.1754 +120.169 48.2164 41.9257 +120.486 49.366 42.9253 +121.31 50.7429 44.1225 +120.892 51.6141 44.8801 +117.346 51.1254 44.4551 +116.665 51.8579 45.0921 +112.718 51.1084 44.4404 +111.184 51.415 44.707 +107.363 50.6257 44.0206 +106.773 51.3307 44.6337 +103.24 50.5934 43.9926 +102.068 50.9798 44.3286 +99.4845 50.6372 44.0307 +98.1534 50.9058 44.2642 +94.9397 50.1651 43.6202 +95.4958 51.4019 44.6956 +95.7067 52.4724 45.6264 +95.7394 53.4597 46.4849 +95.996 54.5877 47.4658 +96.1544 55.6771 48.4131 +95.9797 56.587 49.2042 +96.4173 57.8745 50.3237 +96.133 58.7447 51.0804 +95.9901 59.7115 51.921 +95.9854 60.7779 52.8483 +96.0393 61.8978 53.8221 +95.9236 62.9239 54.7143 +95.8663 64.0032 55.6528 +95.7914 65.0865 56.5948 +95.6249 66.1226 57.4957 +96.0999 67.6248 58.8019 +95.967 68.7225 59.7564 +95.888 69.8761 60.7595 +95.6469 70.928 61.6741 +95.318 71.9287 62.5443 +95.2536 73.1456 63.6025 +95.585 74.693 64.9479 +95.3371 75.8119 65.9209 +95.6844 77.4306 67.3284 +95.3258 78.5029 68.2608 +95.6857 80.1933 69.7306 +95.351 81.329 70.7181 +95.5222 82.922 72.1033 +95.1441 84.0637 73.0961 +95.2611 85.6703 74.493 +94.6484 86.6437 75.3395 +94.9644 88.4948 76.9491 +94.809 89.9437 78.2089 +94.6272 91.3971 79.4727 +94.1145 92.5554 80.4799 +94.0035 94.1363 81.8545 +94.4579 96.3285 83.7607 +93.8693 97.4966 84.7764 +94.19 99.6473 86.6465 +94.1239 101.438 88.2036 +93.9102 103.111 89.6583 +93.8326 104.977 91.281 +93.6085 106.723 92.7994 +93.9502 109.171 94.928 +93.7588 111.059 96.569 +93.9017 113.399 98.6044 +93.684 115.364 100.313 +93.7884 117.788 102.421 +93.4886 119.767 104.141 +93.6 122.339 106.377 +93.5112 124.724 108.452 +93.4713 127.249 110.647 +93.4277 129.849 112.908 +93.1901 132.258 115.003 +93.2732 135.209 117.569 +93.3858 138.306 120.262 +93.4338 141.415 122.965 +93.2415 144.263 125.441 +93.1626 147.391 128.161 +92.9338 150.393 130.772 +93.0572 154.089 133.985 +93.102 157.799 137.211 +93.068 161.52 140.447 +92.8768 165.113 143.571 +92.7242 168.926 146.886 +92.7526 173.238 150.636 +92.395 177.002 153.909 +91.8497 180.563 157.005 +90.4586 182.574 158.754 +88.6858 183.872 159.882 +91.0959 194.123 168.796 +91.5172 200.566 174.399 +89.353 201.519 175.227 +87.2973 202.745 176.294 +84.0473 201.154 174.91 +82.2734 203.071 176.576 +78.9563 201.145 174.902 +77.0958 202.89 176.42 +73.8647 200.99 174.767 +71.9517 202.635 176.198 +69.0047 201.348 175.078 +66.9398 202.601 176.168 +64.1041 201.493 175.204 +62.064 202.863 176.396 +59.1097 201.201 174.95 +56.9886 202.321 175.924 +54.2879 201.357 175.086 +52.0909 202.226 175.842 +49.4769 201.448 175.166 +47.3191 202.509 176.088 +44.5298 200.804 174.605 +42.4876 202.431 176.02 +39.8642 201.285 175.024 +37.6881 202.362 175.96 +35.0854 201.106 174.868 +32.9413 202.453 176.039 +30.3385 200.937 174.721 +28.1809 202.33 175.933 +25.6196 200.78 174.585 +23.41 201.919 175.575 +20.8701 200.11 174.002 +18.7157 201.97 175.62 +16.2755 200.806 174.607 +14.0208 201.885 175.546 +11.5897 200.311 174.177 +9.3426 201.888 175.548 +6.96569 200.735 174.546 +4.66677 201.754 175.431 +2.31428 200.117 174.008 +1.46549e-14 201.634 175.327 +-2.31951 200.57 174.402 +-4.67026 201.905 175.563 +-6.93166 199.754 173.693 +-9.33911 201.813 175.483 +-11.5984 200.462 174.308 +-14.0156 201.81 175.48 +-16.2328 200.279 174.149 +-18.6808 201.595 175.293 +-20.8544 199.959 173.871 +-23.3926 201.769 175.445 +-25.495 199.804 173.736 +-28.0973 201.73 175.41 +-30.1913 199.963 173.874 +-32.7341 201.18 174.932 +-34.8374 199.685 173.632 +-37.4097 200.867 174.66 +-39.4503 199.195 173.206 +-42.1434 200.791 174.594 +-44.1997 199.315 173.311 +-46.885 200.651 174.473 +-48.9485 199.296 173.294 +-51.5757 200.226 174.103 +-53.61 198.843 172.901 +-56.4896 200.55 174.384 +-58.3521 198.622 172.708 +-61.3217 200.436 174.286 +-63.1937 198.631 172.716 +-66.1656 200.258 174.13 +-68.0282 198.499 172.601 +-71.0458 200.085 173.98 +-73.0362 198.736 172.807 +-76.0759 200.206 174.086 +-78.1894 199.191 173.203 +-81.2793 200.617 174.443 +-83.0549 198.779 172.845 +-86.1848 200.162 174.048 +-88.2742 199.086 173.112 +-91.387 200.281 174.151 +-93.1655 198.533 172.631 +-96.7917 200.678 174.496 +-98.5133 198.831 172.89 +-101.597 199.725 173.667 +-103.61 198.486 172.59 +-107.025 199.895 173.815 +-108.835 198.277 172.408 +-112.335 199.706 173.651 +-114.401 198.544 172.64 +-117.994 199.989 173.897 +-119.639 198.105 172.259 +-123.447 199.772 173.708 +-125.365 198.339 172.462 +-129.144 199.812 173.742 +-130.914 198.143 172.292 +-137.014 202.921 176.447 +-139.402 202.078 175.714 +-143.283 203.351 176.821 +-143.386 199.283 173.283 +-142.97 194.635 169.241 +-143.541 191.453 166.475 +-147.65 192.984 167.806 +-150.028 192.2 167.124 +-504.171 633.186 550.575 +-508.6 626.303 544.59 +-510.312 616.274 535.87 +-515.109 610.153 530.548 +-516.862 600.599 522.24 +-521.58 594.656 517.072 +-523.237 585.38 509.006 +-528.23 579.984 504.315 +-529.296 570.426 496.004 +-534.537 565.505 491.725 +-536.354 557.08 484.399 +-540.932 551.646 479.674 +-144.917 145.121 126.188 +-143.242 140.869 122.49 +-143.388 138.494 120.425 +-143.116 135.772 118.058 +-142.541 132.831 115.501 +-144.199 132.003 114.781 +-145.977 131.28 114.152 +-158.725 140.24 121.944 +-158.897 137.937 119.941 +-160.288 136.716 118.879 +-160.123 134.197 116.689 +-162.885 134.139 116.638 +-162.861 131.792 114.597 +-586.891 466.697 405.807 +-587.82 459.34 399.411 +-593.53 455.774 396.31 +-594.182 448.38 389.881 +-599.772 444.768 386.74 +-601.296 438.18 381.012 +-606.123 434.048 377.419 +-607.389 427.416 371.652 +-612.972 423.858 368.558 +-614.209 417.331 362.883 +-619.237 413.42 359.482 +-621.277 407.545 354.373 +-626.651 403.879 351.186 +-627.773 397.506 345.644 +-633.041 393.789 342.412 +-634.151 387.515 336.957 +-640.017 384.17 334.048 +-641.914 378.454 329.078 +-646.583 374.397 325.55 +-647.933 368.444 320.374 +-653.616 364.971 317.354 +-655.546 359.411 312.519 +-661.225 355.913 309.478 +-663.431 350.55 304.815 +-668.202 346.552 301.338 +-669.862 340.958 296.473 +-384.338 191.966 166.92 +-384.866 188.605 163.998 +-383.827 184.523 160.449 +-382.554 180.389 156.854 +-378.999 175.261 152.395 +-381.097 172.797 150.252 +-383.08 170.281 148.065 +-383.563 167.11 145.308 +-114.539 48.9014 42.5214 +-113.613 47.5234 41.3231 +-111.258 45.5852 39.6378 +-110.898 44.4965 38.6911 +-110.61 43.451 37.782 +-110.574 42.5153 36.9684 +-109.719 41.2805 35.8948 +-109.743 40.391 35.1213 +-109.754 39.5043 34.3503 +-109.663 38.5887 33.5541 +-109.559 37.6774 32.7617 +-110.265 37.0465 32.2131 +-109.956 36.0783 31.3712 +-110.369 35.3529 30.7404 +-109.849 34.3359 29.8562 +-110.335 33.6395 29.2506 +-110.999 32.9946 28.6899 +-110.443 31.992 27.818 +-111.464 31.4485 27.3455 +-111.542 30.6358 26.6388 +-112.269 30.0009 26.0867 +-112.328 29.1867 25.3788 +-114.368 28.8769 25.1094 +-114.412 28.0527 24.3927 +-115.59 27.5024 23.9142 +-117.625 27.1373 23.5968 +-121.099 27.069 23.5373 +-127.079 27.4978 23.9102 +-160.926 33.6777 29.2838 +-161.213 32.5972 28.3443 +-161.197 31.4587 27.3544 +-163.107 30.6881 26.6843 +-162.483 29.4367 25.5961 +-854.328 148.839 129.42 +-862.655 144.318 125.489 +-868.204 139.259 121.09 +-381.779 58.614 50.9667 +-381.362 55.9393 48.641 +-382.093 53.4396 46.4674 +-381.416 50.751 44.1296 +-3231.56 408.081 354.839 +-404.063 48.2935 41.9927 +-404.112 45.5751 39.629 +-405.515 43.0067 37.3957 +-405.402 40.2756 35.0209 +-402.974 37.3377 32.4664 +-405.179 34.8364 30.2914 +-404.671 32.0959 27.9084 +-405.027 29.4298 25.5901 +-404.455 26.7023 23.2185 +-403.851 23.9846 20.8554 +-404.612 21.3506 18.565 +-403.446 18.6208 16.1914 +-404.545 15.9989 13.9115 +-404.615 13.331 11.5917 +-403.454 10.6317 9.24463 +-146.85 2.9018 2.52321 +-144.878 1.90832 1.65934 +-146.794 0.966711 0.840586 +120.5 5.77316e-15 2.84217e-14 +120.295 0.79838 0.681667 +120.182 1.59538 1.36215 +120.859 2.40684 2.05499 +119.927 3.18496 2.71935 +120.485 4.00065 3.4158 +120.435 4.80011 4.09839 +120.375 5.59919 4.78066 +120.905 6.42969 5.48975 +120.826 7.23184 6.17463 +120.739 8.03346 6.85907 +120.642 8.83443 7.54294 +121.232 9.69038 8.27376 +121.017 10.486 8.95309 +121.488 11.3443 9.68592 +121.353 12.1502 10.374 +121.011 12.9339 11.0432 +121.451 13.804 11.786 +121.189 14.5975 12.4636 +120.82 15.3762 13.1283 +120.344 16.1378 13.7787 +121.039 17.0606 14.5665 +120.74 17.8487 15.2394 +121.217 18.7555 16.0136 +120.997 19.5592 16.6999 +120.67 20.345 17.3708 +121.309 21.2991 18.1854 +120.963 22.0856 18.8569 +120.511 22.8507 19.5102 +120.825 23.7639 20.2899 +121.513 24.7616 21.1418 +121.128 25.5469 21.8122 +120.927 26.3707 22.5156 +121.291 27.3234 23.3291 +121.068 28.1496 24.0345 +120.645 28.9291 24.7001 +121.26 29.9637 25.5834 +120.722 30.7191 26.2283 +121.405 31.7915 27.1439 +121.035 32.5959 27.8308 +121.22 33.554 28.6488 +120.831 34.3573 29.3346 +120.992 35.3214 30.1578 +120.954 36.2345 30.9375 +121.368 37.2922 31.8405 +120.474 37.9507 32.4028 +120.678 38.9569 33.2619 +121.052 40.0292 34.1774 +120.588 40.831 34.862 +120.843 41.8821 35.7594 +120.358 42.6825 36.4428 +120.405 43.6761 37.2911 +120.618 44.7402 38.1997 +119.742 45.4032 38.7658 +120.286 46.6105 39.7966 +120.545 47.723 40.7465 +119.993 48.5212 41.428 +120.222 49.6423 42.3852 +120.698 50.8807 43.4426 +121.066 52.0918 44.4766 +119.858 52.6271 44.9336 +118.819 53.2275 45.4463 +114.775 52.4473 44.7801 +113.742 53.0083 45.2591 +109.737 52.1492 44.5256 +109.051 52.8345 45.1108 +105.505 52.1066 44.4892 +104.152 52.427 44.7628 +101.972 52.3082 44.6614 +100.131 52.3369 44.6858 +97.561 51.9525 44.3577 +95.74 51.9355 44.3432 +95.6258 52.8371 45.113 +95.659 53.8316 45.9621 +95.6765 54.8306 46.815 +94.9644 55.4171 47.3158 +95.9797 57.0286 48.6917 +96.1043 58.1368 49.6379 +96.0552 59.1553 50.5075 +95.9901 60.1775 51.3802 +95.9854 61.2522 52.2979 +95.9632 62.3314 53.2193 +95.9236 63.4149 54.1444 +95.8663 64.5027 55.0732 +95.7914 65.5944 56.0053 +95.6249 66.6387 56.8969 +96.0999 68.1525 58.1894 +95.3142 68.7877 58.7318 +95.8161 70.3686 60.0815 +96.1462 71.8547 61.3504 +95.318 72.49 61.8928 +95.8844 74.2047 63.3569 +95.7239 75.3852 64.3648 +94.7176 75.9073 64.8106 +95.6162 77.9793 66.5797 +95.3258 79.1155 67.5498 +95.0835 80.3103 68.5699 +95.2185 81.8495 69.8841 +94.8661 82.9949 70.862 +95.1441 84.7197 72.3347 +95.2611 86.3388 73.7171 +94.5848 87.2613 74.5048 +94.8386 89.0675 76.0469 +94.6222 90.4669 77.2417 +94.5656 92.0502 78.5936 +94.0536 93.2176 79.5903 +94.0637 94.9318 81.0539 +94.2794 96.8969 82.7318 +94.3983 98.8111 84.3661 +94.3062 100.548 85.8492 +94.0092 102.105 87.1784 +94.0234 104.041 88.8316 +93.8885 105.859 90.3835 +93.5533 107.493 91.7789 +93.9502 110.023 93.9392 +93.7051 111.861 95.508 +93.4248 113.704 97.082 +93.7885 116.395 99.3793 +93.8399 118.773 101.41 +93.9961 121.357 103.616 +93.6 123.293 105.269 +93.5605 125.763 107.378 +93.5198 128.308 109.551 +93.4277 130.862 111.731 +93.1432 133.223 113.748 +93.3194 136.332 116.402 +93.3858 139.386 119.009 +93.4338 142.518 121.684 +93.0224 145.047 123.843 +93.2057 148.611 126.886 +92.976 151.636 129.469 +93.0157 155.222 132.531 +92.6953 158.335 135.189 +92.7092 162.152 138.448 +92.6424 165.982 141.718 +92.7242 170.244 145.356 +92.6777 174.449 148.947 +92.285 178.171 152.124 +91.0971 180.48 154.096 +89.3379 181.719 155.154 +87.7624 183.377 156.57 +91.7635 197.072 168.262 +91.3544 201.772 172.276 +88.4963 201.144 171.739 +86.3393 202.086 172.543 +83.2955 200.911 171.54 +81.0162 201.528 172.067 +78.2462 200.892 171.524 +75.9932 201.55 172.085 +73.1431 200.581 171.258 +71.1235 201.866 172.356 +68.1534 200.416 171.118 +66.2624 202.115 172.569 +63.3104 200.551 171.233 +61.2542 201.778 172.281 +58.4387 200.47 171.163 +56.4064 201.816 172.313 +53.6698 200.619 171.291 +51.4421 201.266 171.843 +48.8756 200.552 171.234 +46.7287 201.543 172.08 +44.1172 200.495 171.185 +41.9244 201.306 171.878 +39.3321 200.148 170.889 +37.1731 201.155 171.748 +34.72 200.564 171.244 +32.4294 200.863 171.499 +29.9989 200.239 170.967 +27.815 201.262 171.84 +25.3416 200.152 170.893 +23.1311 201.07 171.676 +20.6818 199.851 170.635 +18.4645 200.816 171.459 +16.1168 200.4 171.104 +13.8167 200.499 171.188 +11.4719 199.823 170.611 +9.21347 200.651 171.319 +6.88977 200.097 170.845 +4.60744 200.743 171.397 +2.29072 199.625 170.443 +1.60982e-14 200.546 171.228 +-2.29333 199.854 170.637 +-4.60569 200.667 171.332 +-6.88716 200.021 170.78 +-9.21347 200.651 171.319 +-11.4763 199.899 170.676 +-13.8167 200.499 171.188 +-16.0619 199.716 170.52 +-18.4087 200.209 170.941 +-20.6426 199.473 170.312 +-23.0963 200.768 171.418 +-25.217 199.168 170.052 +-27.7209 200.581 171.259 +-29.9083 199.635 170.45 +-32.3076 200.108 170.854 +-34.4589 199.056 169.956 +-37.0061 200.251 170.976 +-39.0217 198.568 169.54 +-41.5646 199.579 170.403 +-43.6716 198.47 169.456 +-46.2946 199.671 170.482 +-48.4564 198.832 169.765 +-50.8888 199.101 169.995 +-53.0518 198.308 169.318 +-55.7619 199.511 170.345 +-57.8543 198.465 169.452 +-60.5118 199.333 170.193 +-62.5867 198.258 169.275 +-65.3189 199.238 170.111 +-67.3773 198.134 169.169 +-70.3211 199.589 170.411 +-72.3414 198.382 169.381 +-75.1663 199.356 170.213 +-77.2238 198.266 169.282 +-79.9929 198.983 169.894 +-82.3032 198.517 169.496 +-85.1651 199.337 170.197 +-87.1636 198.116 169.154 +-90.28 199.399 170.249 +-92.2976 198.219 169.241 +-95.4578 199.457 170.298 +-97.2876 197.89 168.961 +-100.486 199.082 169.979 +-102.437 197.771 168.86 +-105.602 198.776 169.717 +-107.496 197.365 168.513 +-111.046 198.954 169.869 +-112.886 197.443 168.579 +-116.327 198.701 169.653 +-118.602 197.921 168.987 +-121.587 198.298 169.31 +-123.944 197.621 168.731 +-127.259 198.431 169.423 +-129.576 197.647 168.754 +-134.063 200.1 170.848 +-137.832 201.362 171.925 +-141.358 202.185 172.628 +-143.434 200.905 171.535 +-142.97 196.154 167.478 +-143.246 192.55 164.401 +-144.35 190.143 162.347 +-148.1 191.209 163.256 +-156.211 197.716 168.812 +-511.787 635.146 542.295 +-513.333 624.759 533.427 +-518.064 618.443 528.034 +-519.64 608.539 519.578 +-524.285 602.404 514.339 +-526.48 593.605 506.827 +-530.496 587.018 501.203 +-532.853 578.74 494.135 +-537.208 572.767 489.035 +-539.175 564.38 481.875 +-142.044 145.988 124.646 +-143.112 144.432 123.318 +-143.85 142.571 121.729 +-144.249 140.413 119.886 +-143.054 136.772 116.777 +-142.919 134.222 114.6 +-148.651 137.141 117.093 +-153.241 138.888 118.584 +-159.764 142.26 121.464 +-159.882 139.875 119.427 +-161.746 139.036 118.71 +-161.729 136.601 116.631 +-163.223 135.466 115.663 +-585.632 477.608 407.788 +-589.92 472.766 403.653 +-592.266 466.426 398.24 +-596.193 461.393 393.943 +-597.717 454.568 388.116 +-602.483 450.264 384.441 +-604.893 444.241 379.298 +-609.967 440.209 375.856 +-611.339 433.551 370.171 +-616.29 429.478 366.693 +-617.851 423.081 361.232 +-622.457 418.814 357.589 +-624.749 413.021 352.642 +-630.148 409.303 349.468 +-631.297 402.856 343.964 +-636.359 398.942 340.622 +-638.503 393.22 335.736 +-642.991 388.967 332.105 +-645.223 383.375 327.33 +-650.391 379.541 324.057 +-651.687 373.47 318.874 +-656.43 369.403 315.4 +-658.378 363.781 310.6 +-663.504 359.927 307.31 +-665.807 354.551 302.72 +-672.981 351.755 300.333 +-684.619 351.188 299.848 +-700.047 352.382 300.868 +-384.195 189.746 162.007 +-384.84 186.453 159.196 +-382.809 181.918 155.324 +-381.556 177.82 151.825 +-382.125 174.615 149.089 +-122.524 54.8873 46.8634 +-115.441 50.6878 43.2778 +-113.059 48.6464 41.5349 +-112.476 47.4149 40.4834 +-111.082 45.8684 39.163 +-110.633 44.7367 38.1967 +-110.255 43.6496 37.2686 +-109.861 42.5709 36.3475 +-109.898 41.6705 35.5788 +-109.833 40.7396 34.784 +-109.213 39.6162 33.8248 +-109.754 38.9221 33.2321 +-109.559 37.9714 32.4205 +-109.443 37.0572 31.6399 +-110.047 36.3902 31.0704 +-110.276 35.599 30.3949 +-110.219 34.7203 29.6446 +-110.613 33.9875 29.0189 +-110.72 33.1684 28.3196 +-111.096 32.4324 27.6912 +-111.745 31.7737 27.1288 +-111.917 30.9789 26.4502 +-112.834 30.3873 25.9451 +-113.746 29.7859 25.4315 +-114.937 29.247 24.9715 +-115.744 28.6007 24.4196 +-117.403 28.1516 24.0362 +-118.582 27.5715 23.5409 +-123.784 27.885 23.8086 +-160.627 35.0282 29.9075 +-160.926 33.9405 28.9788 +-161.503 32.9106 28.0994 +-163.907 32.2374 27.5246 +-163.98 31.0932 26.5477 +-3185.97 581.7 496.662 +-857.446 150.548 128.539 +-866.56 146.102 124.744 +-872.41 141.025 120.409 +-382.367 59.1624 50.5136 +-382.442 56.5355 48.2707 +-381.601 53.7873 45.9242 +-383.287 51.398 43.8842 +-407.139 51.8146 44.24 +-404.755 48.7537 41.6265 +-406.189 46.1668 39.4178 +-404.227 43.2048 36.8888 +-403.915 40.441 34.529 +-403.371 37.6662 32.1598 +-403.788 34.9877 29.8729 +-405.069 32.3781 27.6448 +-405.923 29.7251 25.3796 +-404.355 26.9041 22.971 +-405.745 24.2852 20.735 +-405.31 21.5544 18.4034 +-405.143 18.8451 16.0901 +-403.846 16.0959 13.7429 +-405.813 13.4748 11.505 +-404.054 10.7307 9.16198 +-148.749 2.96227 2.52922 +-144.878 1.92321 1.64206 +-146.294 0.970931 0.828993 +119.6 2.66454e-15 -1.13687e-13 +120.395 0.805164 0.674995 +120.182 1.6076 1.3477 +119.959 2.40723 2.01806 +121.026 3.23878 2.71517 +120.485 4.0313 3.37957 +120.435 4.83688 4.05492 +120.375 5.64209 4.72995 +120.905 6.47895 5.43152 +120.826 7.28725 6.10914 +120.739 8.09501 6.78631 +120.642 8.90212 7.46293 +121.232 9.76463 8.186 +121.017 10.5664 8.85813 +121.686 11.4499 9.59886 +121.353 12.2433 10.2639 +121.011 13.033 10.926 +120.66 13.8191 11.585 +121.189 14.7094 12.3314 +120.82 15.494 12.9891 +120.442 16.2748 13.6437 +121.137 17.2053 14.4237 +120.74 17.9855 15.0778 +120.433 18.7769 15.7413 +120.606 19.6454 16.4693 +121.451 20.6336 17.2978 +120.53 21.3243 17.8769 +121.06 22.2726 18.6719 +121.384 23.1926 19.4431 +120.922 23.9652 20.0908 +120.548 24.753 20.7513 +120.261 25.5582 21.4263 +120.927 26.5728 22.2768 +120.524 27.3587 22.9357 +121.164 28.3877 23.7983 +120.836 29.1969 24.4767 +121.26 30.1933 25.312 +120.722 30.9544 25.9501 +121.405 32.0351 26.856 +120.847 32.7945 27.4927 +121.22 33.8111 28.345 +120.737 34.5936 29.001 +120.712 35.5096 29.7689 +120.954 36.5121 30.6093 +120.627 37.3483 31.3103 +120.289 38.1829 32.01 +120.586 39.2254 32.8839 +120.135 40.0303 33.5587 +120.771 41.2062 34.5445 +120.752 42.1712 35.3535 +121.083 43.2686 36.2735 +120.315 43.9777 36.8679 +119.899 44.8142 37.5692 +120.816 46.1614 38.6986 +120.108 46.898 39.3161 +120.545 48.0887 40.3143 +119.904 48.857 40.9584 +120.222 50.0227 41.9356 +120.523 51.1963 42.9195 +121.066 52.4909 44.0048 +121.33 53.6817 45.0031 +119.422 53.9076 45.1925 +116.403 53.5991 44.9338 +114.595 53.8149 45.1148 +112.112 53.6857 45.0065 +109.641 53.5276 44.8739 +107.014 53.2571 44.6471 +104.903 53.2094 44.6072 +102.801 53.1375 44.5469 +100.873 53.1285 44.5393 +98.6259 52.9219 44.3662 +96.9612 53.0009 44.4324 +94.8977 52.8366 44.2946 +95.659 54.2441 45.4746 +95.0376 54.8818 46.0092 +94.9644 55.8417 46.814 +95.9797 57.4655 48.1752 +96.6521 58.9162 49.3914 +95.589 59.3191 49.7292 +96.0673 60.6873 50.8761 +95.9854 61.7215 51.7432 +95.9632 62.8089 52.6548 +95.9236 63.9008 53.5701 +95.8663 64.9969 54.489 +95.7171 66.0457 55.3683 +95.6249 67.1492 56.2934 +96.0999 68.6747 57.5722 +95.967 69.7895 58.5068 +95.8161 70.9077 59.4443 +95.6469 72.0292 60.3844 +95.8837 73.4789 61.5998 +95.6741 74.6093 62.5474 +95.585 75.8526 63.5897 +95.4748 77.1001 64.6355 +95.6162 78.5768 65.8735 +95.3258 79.7217 66.8333 +95.0165 80.8689 67.795 +95.1522 82.4192 69.0947 +94.8661 83.6308 70.1104 +95.0792 85.3106 71.5186 +95.1968 86.9413 72.8858 +94.5848 87.9299 73.7145 +94.7757 89.6902 75.1902 +94.6222 91.16 76.4224 +94.8119 92.9977 77.963 +94.0536 93.9318 78.7461 +94.6053 96.2101 80.6561 +93.982 97.3313 81.596 +93.8105 98.9483 82.9515 +94.19 101.194 84.8345 +94.1239 103.013 86.3591 +93.9102 104.712 87.7834 +93.7207 106.48 89.2655 +93.6085 108.38 90.8587 +93.5145 110.352 92.5117 +93.8125 112.847 94.6035 +94.0077 115.29 96.6516 +93.684 117.156 98.2153 +93.8914 119.749 100.389 +93.5393 121.692 102.019 +93.6 124.238 104.153 +93.5605 126.727 106.239 +93.5683 129.359 108.446 +93.4277 131.865 110.546 +93.1901 134.311 112.598 +93.2732 137.309 115.11 +93.4766 140.59 117.861 +93.4784 143.679 120.451 +93.0224 146.158 122.529 +92.8612 149.196 125.076 +92.6379 152.242 127.63 +93.0572 156.482 131.184 +92.6953 159.548 133.755 +92.749 163.465 137.038 +92.6424 167.254 140.214 +92.6094 171.336 143.637 +92.6777 175.785 147.367 +91.9552 178.894 149.973 +89.9862 179.646 150.603 +88.9177 182.25 152.786 +87.8308 184.926 155.03 +91.7301 198.51 166.417 +90.4428 201.289 168.747 +87.8934 201.305 168.761 +85.3814 201.375 168.819 +83.085 201.938 169.291 +80.4899 201.753 169.137 +77.7918 201.255 168.719 +75.4419 201.62 169.025 +72.9828 201.674 169.07 +70.5023 201.636 169.038 +67.9031 201.21 168.681 +65.6334 201.73 169.117 +63.1236 201.491 168.917 +60.5568 201.009 168.513 +58.3088 201.557 168.971 +55.9698 201.789 169.166 +53.4705 201.405 168.844 +51.175 201.754 169.137 +48.7298 201.486 168.912 +46.4162 201.729 169.116 +43.8201 200.671 168.229 +41.6429 201.487 168.913 +39.2434 201.227 168.695 +36.9087 201.254 168.718 +34.4981 200.809 168.345 +32.2101 201.032 168.532 +29.9196 201.24 168.706 +27.5537 200.899 168.42 +25.2554 200.999 168.504 +22.9481 201.008 168.511 +20.6426 201.001 168.506 +18.346 201.055 168.551 +16.0436 201.017 168.519 +13.7225 200.658 168.218 +11.4326 200.665 168.224 +9.14018 200.58 168.153 +6.84265 200.251 167.877 +4.56031 200.212 167.845 +2.28112 200.312 167.928 +1.58762e-14 200.626 168.191 +-2.28635 200.772 168.314 +-4.56904 200.596 168.166 +-6.83742 200.097 167.748 +-9.15763 200.963 168.474 +-11.4021 200.129 167.775 +-13.733 200.81 168.346 +-15.952 199.87 167.557 +-18.2832 200.367 167.974 +-20.5877 200.466 168.057 +-22.8522 200.168 167.807 +-25.1499 200.16 167.801 +-27.5119 200.594 168.164 +-29.7158 199.87 167.557 +-32.0882 200.271 167.894 +-34.3414 199.897 167.581 +-36.5886 199.508 167.254 +-38.9182 199.559 167.297 +-41.2987 199.822 167.517 +-43.5065 199.235 167.025 +-45.8084 199.087 166.901 +-48.1284 199 166.828 +-50.5262 199.197 166.993 +-52.8524 199.077 166.892 +-55.3669 199.615 167.344 +-57.6595 199.312 167.09 +-59.927 198.919 166.76 +-62.4233 199.256 167.043 +-64.8593 199.351 167.122 +-67.1018 198.836 166.691 +-69.6482 199.194 166.991 +-72.1009 199.237 167.027 +-74.615 199.411 167.173 +-76.9398 199.051 166.871 +-79.4082 199.041 166.863 +-82.0626 199.453 167.208 +-84.5161 199.334 167.108 +-86.7828 198.762 166.628 +-89.3685 198.898 166.743 +-91.9304 198.943 166.78 +-94.5344 199.041 166.862 +-97.0074 198.831 166.687 +-99.6263 198.89 166.736 +-102.254 198.93 166.77 +-104.89 198.949 166.785 +-107.19 198.311 166.251 +-110.108 198.785 166.648 +-112.647 198.533 166.437 +-115.269 198.403 166.328 +-117.939 198.322 166.26 +-120.573 198.151 166.116 +-123.212 197.959 165.956 +-126.251 198.368 166.298 +-128.862 198.064 166.044 +-131.93 198.424 166.345 +-137.093 201.817 169.19 +-140.466 202.449 169.719 +-143.243 202.175 169.49 +-143.455 198.327 166.264 +-143.246 194.025 162.657 +-144.4 191.666 160.68 +-147.44 191.816 160.805 +-150.803 192.334 161.24 +-512.728 641.188 537.529 +-515.241 631.886 529.731 +-519.085 624.409 523.462 +-522.145 616.158 516.545 +-525.996 609 510.545 +-528.605 600.567 503.475 +-531.799 592.968 497.104 +-534.688 585.183 490.578 +-538.254 578.279 484.79 +-541.115 570.751 478.479 +-142.757 147.846 123.944 +-142.991 145.416 121.907 +-143.546 143.36 120.184 +-142.649 139.919 117.298 +-142.992 137.76 115.489 +-144.429 136.679 114.583 +-151.641 140.971 118.181 +-159.54 145.705 122.149 +-160.868 144.341 121.006 +-160.538 141.524 118.644 +-162.143 140.445 117.74 +-163.469 139.128 116.635 +-162.479 135.882 113.915 +-587.678 482.949 404.872 +-591.297 477.5 400.304 +-593.863 471.268 395.079 +-597.385 465.857 390.543 +-600.616 460.272 385.861 +-604.194 455.003 381.444 +-607.051 449.242 376.614 +-610.62 444.057 372.268 +-613.971 438.755 367.823 +-618.281 434.166 363.976 +-620.526 428.169 358.948 +-624.03 423.089 354.689 +-627.239 417.844 350.292 +-630.833 412.887 346.137 +-634.132 407.766 341.844 +-637.285 402.583 337.499 +-640.446 397.438 333.186 +-644.243 392.711 329.222 +-647.43 387.632 324.965 +-651.819 383.288 321.323 +-653.923 377.623 316.574 +-657.957 373.099 312.781 +-661.614 368.37 308.816 +-665.051 363.53 304.759 +-668.182 358.542 300.577 +-677.844 357.011 299.294 +-696.226 359.878 301.697 +-700.881 355.505 298.031 +-384.027 191.116 160.219 +-383.237 187.1 156.852 +-382.809 183.312 153.676 +-382.75 179.744 150.685 +-379.382 174.69 146.449 +-115.889 52.3129 43.8556 +-114.229 50.5397 42.3691 +-113.407 49.1701 41.2209 +-111.601 47.4067 39.7426 +-110.643 46.037 38.5943 +-110.28 44.9355 37.6709 +-110.078 43.9132 36.8139 +-109.95 42.9319 35.9912 +-109.719 41.9214 35.1441 +-109.923 41.0853 34.4431 +-109.123 39.8868 33.4384 +-109.935 39.285 32.9339 +-109.65 38.2941 32.1032 +-110.265 37.6217 31.5395 +-110.139 36.6996 30.7664 +-110.092 35.8119 30.0222 +-110.219 34.9863 29.3301 +-110.52 34.2192 28.6871 +-110.72 33.4226 28.0192 +-111.376 32.7633 27.4665 +-112.401 32.2051 26.9986 +-112.763 31.4522 26.3674 +-112.834 30.6202 25.6699 +-114.219 30.1388 25.2664 +-114.557 29.3739 24.6251 +-115.363 28.7251 24.0812 +-118.166 28.5516 23.9357 +-119.634 28.0292 23.4978 +-126.085 28.621 23.9939 +-160.435 35.2543 29.5549 +-161.504 34.3235 28.7745 +-162.855 33.4404 28.0342 +-163.907 32.4844 27.2327 +-163.398 31.2201 26.1729 +-853.449 157.018 131.633 +-860.174 152.184 127.581 +-866.56 147.222 123.421 +-874.268 142.409 119.386 +-381.681 59.5087 49.8881 +-382.736 57.0125 47.7954 +-381.011 54.1157 45.3669 +-3226.72 436.012 365.523 +-405.758 52.0345 43.6222 +-405.347 49.1992 41.2453 +-405.497 46.4413 38.9332 +-405.218 43.6424 36.5868 +-405.204 40.8809 34.2718 +-404.165 38.0295 31.8813 +-404.98 35.3599 29.6433 +-405.069 32.6262 27.3516 +-404.429 29.8426 25.0181 +-404.854 27.1436 22.7554 +-405.745 24.4713 20.5151 +-405.31 21.7195 18.2082 +-405.542 19.0081 15.9351 +-149.195 5.99196 5.02325 +-405.913 13.5814 11.3858 +-403.454 10.7968 9.05131 +-148.249 2.97494 2.49399 +-145.778 1.94998 1.63473 +-145.994 0.976363 0.818517 +120.5 5.77316e-15 2.84217e-14 +120.295 0.810549 0.667151 +120.282 1.62104 1.33425 +120.859 2.44353 2.01123 +120.127 3.23889 2.66588 +120.485 4.06162 3.34306 +120.435 4.87327 4.01112 +120.375 5.68454 4.67886 +120.905 6.52769 5.37285 +120.727 7.33602 6.03817 +120.739 8.15591 6.71301 +120.642 8.96908 7.38232 +121.332 9.84619 8.10425 +121.017 10.6458 8.76244 +121.686 11.5361 9.49518 +121.353 12.3354 10.153 +121.011 13.1311 10.808 +120.66 13.923 11.4598 +121.189 14.82 12.1982 +120.82 15.6105 12.8488 +120.442 16.3972 13.4963 +121.039 17.3206 14.2564 +120.642 18.106 14.9028 +120.433 18.9182 15.5713 +120.606 19.7931 16.2914 +120.67 20.6551 17.0009 +121.407 21.6411 17.8124 +120.963 22.4222 18.4554 +120.414 23.1803 19.0794 +120.922 24.1454 19.8738 +120.644 24.9592 20.5436 +121.225 25.9569 21.3647 +120.734 26.7301 22.0012 +120.524 27.5645 22.6879 +121.164 28.6012 23.5413 +120.836 29.4165 24.2123 +121.165 30.3966 25.019 +120.722 31.1873 25.6698 +121.31 32.2509 26.5452 +120.941 33.067 27.2169 +121.408 34.1183 28.0822 +120.831 34.8809 28.71 +120.712 35.7767 29.4473 +121.047 36.815 30.3019 +120.719 37.6582 30.9959 +120.474 38.5292 31.7128 +120.586 39.5205 32.5287 +120.96 40.6085 33.4243 +120.771 41.5162 34.1714 +120.752 42.4884 34.9716 +120.901 43.5288 35.8279 +120.405 44.3418 36.4971 +120.888 45.5236 37.4698 +119.921 46.1642 37.997 +120.197 47.2859 38.9203 +120.545 48.4504 39.8788 +120.611 49.5145 40.7547 +120.222 50.399 41.4826 +120.523 51.5814 42.4559 +121.066 52.8857 43.5295 +121.417 54.1241 44.5488 +119.249 54.2347 44.6398 +117.346 54.4397 44.8085 +114.68 54.2601 44.6607 +112.112 54.0896 44.5204 +109.641 53.9302 44.3892 +107.685 53.9942 44.4418 +104.903 53.6097 44.1253 +102.801 53.5372 44.0657 +100.873 53.5281 44.0582 +99.2812 53.6744 44.1786 +96.9612 53.3996 43.9525 +95.3831 53.5063 44.0403 +94.9355 54.2388 44.6432 +94.9578 55.2481 45.4739 +94.9644 56.2618 46.3083 +95.9009 57.8502 47.6157 +96.8086 59.4555 48.937 +95.2004 59.5224 48.992 +96.0673 61.1438 50.3266 +95.9854 62.1858 51.1842 +95.9632 63.2814 52.086 +95.8481 64.3309 52.9498 +95.7914 65.4346 53.8583 +96.4602 67.0592 55.1955 +95.6249 67.6544 55.6853 +95.9536 69.086 56.8637 +95.967 70.3145 57.8748 +95.6722 71.3339 58.7139 +95.5042 72.4628 59.6431 +95.318 73.5949 60.5749 +95.6741 75.1705 61.8717 +95.585 76.4232 62.9028 +95.9566 78.0723 64.2602 +95.6844 79.2242 65.2083 +95.3258 80.3214 66.1114 +95.0165 81.4772 67.0627 +95.1522 83.0392 68.3483 +94.9317 84.3178 69.4007 +95.0792 85.9523 70.7461 +95.2611 87.6548 72.1474 +94.6484 88.6508 72.9672 +94.7757 90.3649 74.378 +94.6222 91.8457 75.5969 +94.8119 93.6972 77.1208 +94.2363 94.8222 78.0468 +94.3646 96.6868 79.5815 +94.4579 98.5599 81.1232 +93.8105 99.6926 82.0555 +93.7255 101.452 83.5038 +94.2386 103.914 85.5304 +94.0234 105.627 86.94 +93.7207 107.281 88.3012 +93.6085 109.196 89.8773 +93.9502 111.7 91.9388 +93.8125 113.696 93.5816 +93.4778 115.503 95.0687 +93.684 118.037 97.1544 +93.3249 119.922 98.7057 +93.9961 123.207 101.41 +93.55 125.105 102.972 +93.5605 127.68 105.092 +93.6167 130.399 107.329 +93.5231 132.992 109.464 +93.284 135.458 111.494 +93.735 139.026 114.431 +93.3858 141.51 116.475 +93.4784 144.76 119.15 +93.0224 147.258 121.206 +92.8612 150.318 123.725 +92.976 153.947 126.712 +93.0157 157.588 129.709 +92.6953 160.749 132.31 +92.749 164.695 135.558 +92.6424 168.512 138.7 +92.6094 172.625 142.085 +92.7151 177.18 145.834 +91.9918 180.312 148.412 +90.2012 181.429 149.332 +88.9177 183.621 151.136 +87.9334 186.535 153.534 +91.3629 199.202 163.96 +90.3452 202.584 166.744 +87.8934 202.819 166.938 +85.4741 203.11 167.177 +83.085 203.457 167.463 +80.4899 203.271 167.31 +78.019 203.361 167.384 +75.4419 203.137 167.199 +72.9561 203.117 167.182 +70.4505 203.004 167.09 +67.9281 202.798 166.92 +65.6334 203.248 167.29 +62.9369 202.406 166.598 +60.6918 202.973 167.064 +58.2872 202.998 167.085 +55.7619 202.552 166.717 +53.4705 202.92 167.02 +51.0032 202.59 166.749 +48.7298 203.002 167.088 +46.3467 202.942 167.039 +43.9522 202.79 166.914 +41.5334 202.468 166.649 +39.2286 202.664 166.81 +36.7974 202.156 166.392 +34.5111 202.396 166.589 +32.2101 202.545 166.711 +29.9083 202.677 166.821 +27.5642 202.487 166.664 +25.2554 202.511 166.684 +22.9394 202.443 166.628 +20.6269 202.359 166.559 +18.2971 202.028 166.286 +16.0497 202.606 166.762 +13.7173 202.09 166.337 +11.4283 202.098 166.344 +9.14716 202.243 166.464 +6.84265 201.757 166.063 +4.56555 201.95 166.222 +2.28112 201.819 166.114 +1.52101e-14 202.135 166.375 +-2.28548 202.205 166.432 +-4.56904 202.104 166.349 +-6.86098 202.298 166.508 +-9.15065 202.321 166.527 +-11.437 202.251 166.47 +-13.6806 201.55 165.893 +-16.0069 202.067 166.318 +-18.2762 201.797 166.096 +-20.5877 201.974 166.242 +-22.8522 201.674 165.995 +-25.1308 201.512 165.862 +-27.4283 201.489 165.843 +-29.7498 201.603 165.937 +-32.0882 201.778 166.08 +-34.3414 201.401 165.77 +-36.6164 201.163 165.574 +-38.8887 200.908 165.364 +-41.1579 200.638 165.142 +-43.49 200.658 165.158 +-45.8258 200.661 165.162 +-48.2924 201.18 165.589 +-50.5262 200.695 165.189 +-52.8724 200.65 165.152 +-55.3461 201.041 165.474 +-57.6812 200.887 165.347 +-59.927 200.415 164.959 +-62.3999 200.679 165.176 +-64.6173 200.102 164.701 +-67.1519 200.481 165.013 +-69.6741 200.766 165.248 +-72.1009 200.736 165.223 +-74.367 200.242 164.816 +-76.9398 200.548 165.068 +-79.4082 200.539 165.06 +-82.0025 200.807 165.281 +-84.2689 200.246 164.82 +-86.8146 200.329 164.888 +-89.4661 200.614 165.122 +-91.9638 200.512 165.039 +-94.5686 200.61 165.12 +-97.0425 200.4 164.946 +-99.5546 200.243 164.817 +-102.254 200.427 164.968 +-104.553 199.801 164.454 +-107.496 200.373 164.924 +-110.069 200.21 164.79 +-112.607 199.957 164.581 +-115.31 199.966 164.589 +-117.939 199.814 164.464 +-120.573 199.641 164.322 +-123.212 199.448 164.163 +-126.295 199.929 164.559 +-128.907 199.624 164.307 +-131.975 199.986 164.605 +-137.463 203.883 167.813 +-140.137 203.494 167.493 +-143.577 204.171 168.05 +-143.067 199.279 164.023 +-143.197 195.417 160.845 +-144.45 193.175 159 +-147.237 192.993 158.85 +-150.443 193.317 159.117 +-512.571 645.814 531.56 +-515.717 637.228 524.493 +-518.655 628.585 517.379 +-522.309 620.987 511.126 +-525.002 612.422 504.076 +-528.605 605.085 498.037 +-531.289 596.855 491.263 +-535.204 590.154 485.747 +-538.254 582.629 479.553 +-541.468 575.419 473.619 +-142.52 148.709 122.4 +-143.413 146.942 120.946 +-143.546 144.439 118.885 +-143.203 141.519 116.482 +-142.992 138.796 114.241 +-144.744 138.008 113.592 +-151.196 141.614 116.561 +-159.09 146.387 120.489 +-159.699 144.37 118.829 +-160.341 142.414 117.219 +-162.342 141.675 116.611 +-163.87 140.519 115.659 +-162.885 137.247 112.966 +-588.292 487.091 400.917 +-591.09 480.924 395.841 +-594.28 475.146 391.085 +-597.385 469.361 386.324 +-600.829 463.899 381.829 +-603.767 458.101 377.057 +-607.411 452.89 372.767 +-609.967 446.919 367.853 +-614.337 442.319 364.066 +-616.954 436.493 359.271 +-620.526 431.39 355.071 +-624.03 426.272 350.858 +-627.466 421.139 346.633 +-630.833 415.993 342.398 +-634.132 410.834 338.151 +-636.59 405.17 333.49 +-640.679 400.574 329.707 +-644.243 395.665 325.666 +-648.139 390.977 321.807 +-651.502 385.984 317.697 +-654.482 380.789 313.422 +-657.957 375.905 309.402 +-661.938 371.322 305.63 +-664.562 365.996 301.246 +-669.165 361.771 297.768 +-677.514 359.522 295.918 +-696.723 362.845 298.652 +-701.048 358.264 294.882 +-382.937 192.007 158.038 +-383.827 188.797 155.396 +-382.724 184.65 151.982 +-381.556 180.531 148.592 +-380.497 176.521 145.292 +-115.717 52.6281 43.3174 +-114.229 50.9199 41.9114 +-112.537 49.1598 40.4627 +-111.601 47.7633 39.3133 +-110.643 46.3833 38.1774 +-110.28 45.2735 37.264 +-110.078 44.2436 36.4162 +-109.861 43.2198 35.5735 +-109.719 42.2368 34.7645 +-109.923 41.3944 34.0711 +-109.845 40.4527 33.296 +-109.845 39.5479 32.5513 +-109.559 38.5502 31.7301 +-109.534 37.6535 30.992 +-110.139 36.9756 30.4341 +-110.092 36.0812 29.6979 +-110.219 35.2495 29.0133 +-110.52 34.4766 28.3772 +-110.72 33.674 27.7166 +-112.216 33.2588 27.3748 +-111.745 32.258 26.5511 +-112.763 31.6888 26.0826 +-112.834 30.8505 25.3926 +-114.124 30.3405 24.9728 +-114.842 29.6683 24.4196 +-116.124 29.132 23.9782 +-117.307 28.5575 23.5052 +-120.208 28.3755 23.3554 +-125.51 28.7048 23.6265 +-161.396 35.7323 29.4108 +-160.444 34.3547 28.2768 +-163.241 33.7719 27.7972 +-164.779 32.9027 27.0818 +-162.816 31.3429 25.7979 +-166.761 30.9117 25.4429 +-860.369 153.363 126.231 +-867.048 148.413 122.156 +-874.268 143.48 118.096 +-381.681 59.9564 49.3492 +-382.344 57.3824 47.2306 +-382.781 54.776 45.0853 +-3226.72 439.292 361.574 +-404.377 52.2475 43.0042 +-404.36 49.4485 40.7003 +-405.497 46.7906 38.5127 +-405.515 44.003 36.2182 +-405.204 41.1884 33.9016 +-404.76 38.372 31.5834 +-404.284 35.5647 29.2728 +-405.069 32.8716 27.0562 +-405.126 30.1189 24.7905 +-404.754 27.3411 22.504 +-404.051 24.5523 20.2087 +-404.412 21.8344 17.9716 +-405.542 19.1511 15.763 +-148.197 5.99663 4.93574 +-404.115 13.6229 11.2128 +-404.054 10.8942 8.96688 +-148.749 3.00742 2.47537 +-144.878 1.95252 1.60709 +-145.494 0.980341 0.806904 +119.6 2.66454e-15 -1.13687e-13 +120.295 0.816535 0.659812 +120.182 1.63165 1.31848 +119.959 2.44325 1.9743 +121.026 3.28724 2.6563 +120.485 4.09162 3.30629 +121.234 4.94182 3.99331 +120.375 5.72651 4.62739 +120.905 6.5759 5.31374 +120.826 7.39629 5.97667 +120.739 8.21614 6.63916 +120.642 9.03532 7.30111 +121.232 9.91073 8.0085 +121.017 10.7245 8.66604 +121.686 11.6213 9.39072 +121.353 12.4264 10.0414 +120.912 13.2172 10.6803 +120.66 14.0258 11.3338 +121.189 14.9295 12.064 +120.721 15.713 12.6971 +121.23 16.6263 13.4351 +120.94 17.4344 14.0881 +120.642 18.2397 14.7388 +120.433 19.0579 15.4 +120.801 19.9717 16.1384 +120.67 20.8076 16.8139 +121.407 21.8009 17.6165 +121.06 22.6059 18.267 +120.414 23.3515 18.8695 +121.115 24.3626 19.6866 +121.32 25.2845 20.4315 +121.128 26.1278 21.1129 +120.831 26.9489 21.7764 +120.428 27.7459 22.4205 +121.068 28.7897 23.2639 +120.741 29.6104 23.9271 +121.165 30.6211 24.7437 +121.575 31.6397 25.5669 +121.31 32.489 26.2532 +120.941 33.3112 26.9175 +121.408 34.3702 27.7733 +120.737 35.1112 28.3721 +120.899 36.0966 29.1683 +120.768 37.0014 29.8995 +120.627 37.9071 30.6313 +121.028 38.9923 31.5082 +120.586 39.8123 32.1709 +121.052 40.9394 33.0816 +120.771 41.8228 33.7954 +120.024 42.5441 34.3783 +120.086 43.5544 35.1947 +120.405 44.6692 36.0955 +120.888 45.8598 37.0576 +119.832 46.4704 37.551 +120.108 47.5997 38.4636 +119.746 48.485 39.179 +119.816 49.5515 40.0408 +120.222 50.7711 41.0263 +119.735 51.6229 41.7146 +120.979 53.238 43.0197 +121.33 54.4849 44.0272 +119.422 54.7142 44.2125 +117.346 54.8417 44.3155 +113.913 54.295 43.8738 +112.112 54.489 44.0306 +109.641 54.3285 43.9008 +107.014 54.0539 43.679 +104.819 53.9626 43.6052 +102.801 53.9326 43.5809 +101.532 54.2758 43.8583 +98.6259 53.7138 43.4041 +96.9612 53.794 43.4689 +95.3831 53.9015 43.5558 +95.659 55.0557 44.4885 +95.6765 56.0774 45.3141 +94.9644 56.6773 45.7988 +95.9009 58.2775 47.0919 +96.7304 59.8461 48.3594 +95.2004 59.9619 48.453 +95.9901 61.5459 49.7329 +95.9854 62.645 50.6211 +95.9632 63.7487 51.513 +95.8481 64.8059 52.3673 +95.7914 65.9179 53.2658 +95.7914 67.086 54.2097 +95.6986 68.2065 55.1152 +96.0999 69.7023 56.3238 +95.967 70.8337 57.2381 +95.8161 71.9687 58.1552 +95.5042 72.9979 58.9869 +95.318 74.1384 59.9085 +95.6741 75.7256 61.1911 +95.585 76.9876 62.2108 +95.4748 78.2537 63.2339 +95.6844 79.8093 64.491 +95.3258 80.9146 65.3841 +95.6188 82.5985 66.7448 +95.1522 83.6524 67.5964 +94.8005 84.8238 68.543 +95.1441 86.6462 70.0156 +94.6826 87.7654 70.92 +94.6484 89.3055 72.1644 +94.7127 90.9715 73.5107 +94.6222 92.524 74.7652 +94.8119 94.3892 76.2724 +93.9928 95.2759 76.9889 +94.3044 97.3386 78.6557 +93.9225 98.7254 79.7764 +93.8105 100.429 81.1528 +94.2481 102.772 83.0459 +94.2386 104.682 84.5895 +93.9668 106.343 85.932 +93.7207 108.073 87.3298 +93.6637 110.067 88.9407 +93.5145 112.003 90.5057 +93.7588 114.47 92.4993 +93.4248 116.29 93.9694 +93.684 118.909 96.0856 +93.8399 121.474 98.1584 +93.4886 123.446 99.7523 +93.6 126.097 101.894 +93.5605 128.623 103.936 +93.0834 130.614 105.544 +93.5231 133.975 108.26 +93.1901 136.321 110.156 +93.6888 139.984 113.116 +93.3858 142.555 115.194 +93.1215 145.272 117.389 +93.0224 148.345 119.872 +93.2057 151.99 122.817 +92.976 155.084 125.318 +93.0572 158.823 128.339 +92.6953 161.936 130.854 +92.749 165.911 134.067 +92.6424 169.756 137.174 +92.6477 173.971 140.58 +92.6777 178.416 144.171 +91.9552 181.571 146.721 +90.2012 182.769 147.689 +88.9177 184.977 149.473 +87.9676 187.986 151.904 +91.7301 201.48 162.808 +90.3452 204.08 164.91 +87.8299 204.169 164.982 +85.4432 204.536 165.278 +82.7843 204.218 165.021 +80.2853 204.251 165.048 +77.735 204.117 164.94 +75.4419 204.637 165.36 +72.9828 204.691 165.404 +70.4505 204.503 165.251 +67.9281 204.295 165.084 +65.3915 203.994 164.84 +63.147 204.582 165.315 +60.5118 203.866 164.737 +58.2655 204.421 165.185 +55.9282 204.656 165.375 +53.4705 204.418 165.183 +51.0032 204.086 164.915 +48.7298 204.501 165.25 +46.3641 204.518 165.263 +43.9192 204.134 164.954 +41.6585 204.578 165.312 +39.0956 203.469 164.416 +36.7974 203.649 164.561 +34.485 203.737 164.632 +32.2223 204.117 164.94 +29.9309 204.328 165.11 +27.5642 203.982 164.83 +25.2554 204.007 164.85 +22.8871 203.473 164.419 +20.5406 203 164.037 +18.2971 203.52 164.457 +16.0558 204.18 164.99 +13.7225 203.66 164.57 +11.4283 203.59 164.514 +9.14018 203.581 164.507 +6.84527 203.325 164.299 +4.56555 203.441 164.394 +2.28199 203.387 164.35 +1.60982e-14 203.628 164.544 +-2.27675 202.92 163.972 +-4.57079 203.675 164.582 +-6.83742 203.091 164.111 +-9.11924 203.116 164.13 +-11.4021 203.123 164.136 +-13.6806 203.039 164.068 +-15.9459 202.783 163.861 +-18.2762 203.287 164.269 +-20.5877 203.466 164.413 +-22.8522 203.163 164.168 +-25.2362 203.852 164.725 +-27.4283 202.977 164.018 +-29.7272 202.937 163.986 +-32.0882 203.268 164.253 +-34.3414 202.888 163.947 +-36.6164 202.648 163.752 +-38.8887 202.391 163.545 +-41.2831 202.734 163.822 +-43.49 202.139 163.341 +-45.8084 202.066 163.282 +-48.1284 201.978 163.211 +-50.5262 202.177 163.372 +-52.673 201.369 162.719 +-55.159 201.841 163.101 +-57.4647 201.611 162.915 +-59.927 201.895 163.144 +-62.3999 202.161 163.359 +-64.6657 201.73 163.011 +-67.1519 201.961 163.197 +-69.6482 202.174 163.37 +-72.1276 202.293 163.466 +-74.367 201.721 163.003 +-76.9398 202.029 163.252 +-79.4666 202.169 163.365 +-81.9724 202.215 163.402 +-84.547 202.391 163.544 +-86.7828 201.736 163.015 +-89.401 201.947 163.186 +-92.0306 202.139 163.341 +-94.5344 202.019 163.244 +-96.9724 201.734 163.014 +-99.5546 201.722 163.004 +-101.924 201.255 162.627 +-104.553 201.277 162.644 +-107.151 201.206 162.587 +-110.108 201.76 163.035 +-112.607 201.433 162.771 +-115.269 201.372 162.721 +-117.939 201.289 162.654 +-120.615 201.186 162.571 +-123.212 200.921 162.357 +-126.295 201.406 162.749 +-128.817 200.959 162.387 +-131.93 201.393 162.738 +-137.001 204.698 165.409 +-140.513 205.546 166.094 +-143.195 205.132 165.759 +-143.455 201.295 162.659 +-143.246 196.928 159.13 +-144.45 194.602 157.25 +-147.237 194.418 157.102 +-150.752 195.145 157.689 +-513.041 651.18 526.194 +-515.717 641.934 518.723 +-518.924 633.555 511.952 +-521.982 625.182 505.186 +-525.499 617.529 499.002 +-528.437 609.361 492.402 +-532.309 602.417 486.791 +-535.204 594.512 480.404 +-538.486 587.184 474.482 +-541.644 579.857 468.561 +-142.46 149.745 121.004 +-142.871 147.468 119.163 +-143.607 145.567 117.627 +-142.587 141.951 114.705 +-142.929 139.761 112.935 +-144.807 139.087 112.391 +-151.45 142.901 115.473 +-159.283 147.647 119.308 +-160.089 145.791 117.808 +-161.128 144.171 116.499 +-162.143 142.547 115.187 +-163.268 141.036 113.966 +-161.736 137.285 110.935 +-587.678 490.175 396.092 +-591.09 484.475 391.487 +-593.863 478.319 386.512 +-598.016 473.326 382.478 +-600.192 466.829 377.228 +-604.194 461.811 373.173 +-607.051 455.964 368.447 +-610.62 450.702 364.195 +-613.752 445.161 359.718 +-617.617 440.19 355.701 +-620.526 434.576 351.165 +-624.03 429.42 346.998 +-627.466 424.249 342.82 +-630.833 419.065 338.631 +-634.361 414.017 334.552 +-637.979 409.052 330.54 +-640.679 403.532 326.079 +-644.243 398.587 322.083 +-647.193 393.289 317.803 +-651.105 388.598 314.011 +-654.482 383.601 309.974 +-657.957 378.681 305.998 +-661.371 373.744 302.009 +-665.051 368.97 298.151 +-668.182 363.906 294.059 +-678.668 362.794 293.16 +-696.474 365.393 295.261 +-701.882 361.339 291.985 +-382.937 193.425 156.3 +-383.49 190.024 153.552 +-383.148 186.219 150.477 +-382.75 182.433 147.417 +-380.239 177.705 143.597 +-116.061 53.1746 42.9684 +-114.489 51.4126 41.5446 +-112.537 49.5228 40.0176 +-111.601 48.116 38.8808 +-110.643 46.7258 37.7574 +-110.987 45.9 37.0901 +-110.167 44.6062 36.0446 +-109.95 43.5742 35.2107 +-109.719 42.5487 34.382 +-109.833 41.666 33.6687 +-109.845 40.7514 32.9297 +-109.845 39.8399 32.1932 +-109.559 38.8349 31.381 +-109.534 37.9315 30.6511 +-110.047 37.2177 30.0742 +-110.092 36.3477 29.3712 +-110.219 35.5098 28.6941 +-110.52 34.7312 28.065 +-110.627 33.8942 27.3887 +-111.376 33.2535 26.8709 +-111.745 32.4963 26.259 +-111.917 31.6834 25.6022 +-112.834 31.0783 25.1133 +-114.219 30.5898 24.7185 +-114.747 29.8628 24.131 +-116.124 29.3472 23.7144 +-117.307 28.7683 23.2466 +-119.634 28.4486 22.9883 +-125.51 28.9167 23.3666 +-160.242 35.7389 28.8793 +-160.541 34.6291 27.9825 +-161.889 33.7395 27.2636 +-162.746 32.7368 26.4534 +-167.958 32.5717 26.32 +-3185.97 594.927 480.738 +-860.076 154.443 124.8 +-867.146 149.526 120.826 +-874.268 144.539 116.797 +-381.681 60.3991 48.8063 +-381.46 57.6726 46.6031 +-382.683 55.1663 44.5779 +-903.266 123.88 100.103 +-405.067 52.7233 42.6037 +-405.644 49.9718 40.3804 +-405.497 47.1362 38.089 +-404.326 44.198 35.7148 +-405.6 41.5332 33.5615 +-403.272 38.5132 31.1211 +-404.384 35.8361 28.9579 +-405.069 33.1144 26.7585 +-405.126 30.3414 24.5177 +-404.854 27.5498 22.2619 +-403.452 24.697 19.9568 +-405.011 22.0282 17.8001 +-405.842 19.3068 15.6011 +-146.998 5.99206 4.84196 +-404.115 13.7235 11.0895 +-404.154 10.9774 8.87044 +-149.349 3.04185 2.45801 +-144.878 1.96694 1.58941 +-146.694 0.995724 0.804608 +119.6 2.66454e-15 -1.13687e-13 +120.295 0.822453 0.65242 +120.282 1.64484 1.30479 +119.959 2.46096 1.95218 +120.127 3.28646 2.60702 +120.485 4.12127 3.26925 +120.435 4.94484 3.92255 +120.375 5.76802 4.57555 +120.905 6.62356 5.25421 +119.929 7.39458 5.86583 +120.739 8.27569 6.56478 +120.542 9.09328 7.21335 +121.232 9.98256 7.91878 +121.017 10.8022 8.56896 +121.686 11.7055 9.28552 +121.353 12.5165 9.92886 +121.011 13.3239 10.5693 +121.451 14.2202 11.2803 +121.189 15.0377 11.9288 +120.623 15.8139 12.5446 +120.442 16.638 13.1983 +120.94 17.5608 13.9303 +120.642 18.3719 14.5737 +120.237 19.1648 15.2027 +120.606 20.0838 15.9317 +120.67 20.9584 16.6255 +120.432 21.7827 17.2794 +120.963 22.7515 18.0479 +120.414 23.5208 18.6581 +121.018 24.5196 19.4505 +120.451 25.2852 20.0578 +121.128 26.3172 20.8764 +120.734 27.1227 21.5154 +120.524 27.9693 22.1869 +120.973 28.9754 22.9851 +120.836 29.8485 23.6777 +121.165 30.843 24.4665 +120.722 31.6453 25.103 +120.365 32.4694 25.7567 +120.941 33.5526 26.616 +121.314 34.5925 27.4409 +121.58 35.6126 28.2501 +120.712 36.3021 28.7971 +120.954 37.327 29.6101 +120.627 38.1818 30.2882 +120.566 39.125 31.0364 +120.862 40.1927 31.8833 +120.96 41.2049 32.6862 +120.588 42.0621 33.3663 +120.843 43.1449 34.2252 +120.086 43.8701 34.8004 +120.405 44.993 35.6912 +120.708 46.1235 36.588 +120.816 47.1917 37.4353 +120.108 47.9447 38.0327 +120.545 49.162 38.9983 +119.816 49.9107 39.5922 +120.222 51.1391 40.5667 +120.435 52.301 41.4883 +120.718 53.5081 42.4459 +121.417 54.919 43.5651 +120.111 55.4288 43.9695 +117.432 55.2795 43.8511 +114.936 55.1797 43.7719 +112.112 54.884 43.5373 +110.4 55.1011 43.7096 +107.685 54.7871 43.4605 +105.653 54.7861 43.4597 +103.464 54.674 43.3707 +101.45 54.6249 43.3318 +99.4451 54.5525 43.2744 +97.4496 54.4568 43.1985 +95.0595 54.108 42.9217 +95.3374 55.2684 43.8423 +94.9578 56.0595 44.4698 +94.9644 57.0881 45.2857 +95.9797 58.7481 46.6026 +96.026 59.8409 47.4695 +95.6667 60.6924 48.1449 +95.9901 61.9919 49.1758 +95.9854 63.0991 50.054 +96.0393 64.2617 50.9763 +95.8481 65.2756 51.7806 +95.8663 66.4476 52.7103 +95.7171 67.5198 53.5608 +95.6986 68.7009 54.4977 +95.4417 69.7266 55.3114 +95.967 71.3471 56.5969 +95.6722 72.3815 57.4174 +95.5042 73.527 58.3261 +95.318 74.6757 59.2373 +95.7442 76.3303 60.5499 +94.8903 76.982 61.0668 +95.9566 79.2189 62.8412 +95.0706 79.8722 63.3595 +95.3258 81.501 64.6516 +95.0165 82.6738 65.5819 +95.1522 84.2587 66.8392 +94.8661 85.4973 67.8217 +95.1441 87.2742 69.2312 +94.6826 88.4015 70.1255 +94.712 90.0131 71.4039 +94.7757 91.692 72.7357 +94.6222 93.1946 73.9276 +94.3193 94.5789 75.0258 +94.0536 96.0283 76.1755 +94.1239 97.8568 77.626 +94.5768 100.134 79.432 +94.3395 101.727 80.6961 +94.2481 103.516 82.1155 +94.1813 105.376 83.5909 +94.0234 107.178 85.0203 +93.7207 108.856 86.3515 +93.5533 110.734 87.8411 +93.3511 112.618 89.3351 +93.7051 115.233 91.4102 +93.4778 117.199 92.9695 +93.266 119.236 94.5853 +93.7884 122.287 97.0053 +93.5393 124.408 98.6883 +93.6 127.011 100.753 +93.6097 129.624 102.825 +93.6167 132.314 104.96 +93.4277 134.808 106.938 +93.284 137.448 109.032 +93.4117 140.582 111.518 +93.3858 143.588 113.903 +93.1215 146.325 116.074 +93.0662 149.491 118.585 +92.8612 152.526 120.993 +92.976 156.208 123.914 +93.0157 159.903 126.845 +93.0613 163.753 129.899 +92.7889 167.186 132.622 +92.6424 170.987 135.637 +92.6094 175.16 138.948 +92.6777 179.709 142.556 +91.662 182.304 144.614 +90.3087 184.313 146.208 +88.4974 185.437 147.1 +88.4122 190.306 150.962 +91.3296 202.054 160.282 +90.3126 205.485 163.004 +87.5761 205.055 162.662 +85.3505 205.795 163.249 +82.4836 204.951 162.58 +80.3437 205.882 163.318 +77.5362 205.071 162.675 +75.4419 206.12 163.507 +72.5285 204.892 162.533 +70.2694 205.456 162.98 +67.6777 205.018 162.633 +65.198 204.865 162.511 +62.7735 204.845 162.496 +60.5568 205.496 163.012 +58.0707 205.214 162.788 +55.7619 205.526 163.036 +53.291 205.209 162.784 +51.0223 205.642 163.128 +48.5111 205.059 162.665 +46.1383 204.997 162.616 +43.7871 204.996 162.615 +41.5177 205.364 162.907 +39.0808 204.866 162.512 +36.7695 204.97 162.595 +34.485 205.214 162.788 +32.1126 204.897 162.537 +29.7272 204.408 162.149 +27.5537 205.383 162.922 +25.1883 204.939 162.57 +22.8871 204.948 162.577 +20.5641 204.706 162.385 +18.2901 204.917 162.552 +16.0008 204.956 162.584 +13.7173 205.058 162.664 +11.3977 204.517 162.236 +9.11226 204.431 162.167 +6.8191 204.016 161.838 +4.54984 204.211 161.993 +2.27239 203.999 161.825 +1.42109e-14 204.947 162.577 +-2.26977 203.764 161.638 +-4.55333 204.368 162.117 +-6.83218 204.407 162.148 +-9.11575 204.509 162.229 +-11.3629 203.891 161.739 +-13.6806 204.51 162.23 +-15.952 204.331 162.088 +-18.2971 204.995 162.615 +-20.5092 204.159 161.951 +-22.7738 203.933 161.773 +-25.0445 203.77 161.643 +-27.4178 204.37 162.119 +-29.614 203.63 161.531 +-31.9663 203.964 161.797 +-34.224 203.66 161.556 +-36.6164 204.117 161.918 +-38.7408 203.083 161.098 +-41.1423 203.507 161.434 +-43.3415 202.91 160.96 +-45.8431 203.685 161.575 +-47.9644 202.748 160.832 +-50.5644 203.796 161.664 +-52.6331 202.675 160.774 +-55.1174 203.151 161.152 +-57.4214 202.919 160.968 +-59.9045 203.282 161.256 +-62.1898 202.941 160.985 +-64.6415 203.116 161.124 +-66.9015 202.667 160.768 +-69.6482 203.64 161.539 +-71.8871 203.08 161.096 +-74.367 203.183 161.177 +-76.6557 202.742 160.827 +-79.4374 203.559 161.475 +-81.7018 203.008 161.039 +-84.2998 203.261 161.239 +-86.5607 202.678 160.776 +-89.108 202.744 160.829 +-91.6967 202.866 160.926 +-94.2265 202.82 160.889 +-96.6923 202.609 160.722 +-99.2321 202.525 160.655 +-101.777 202.422 160.574 +-104.216 202.082 160.304 +-106.807 202.013 160.249 +-109.717 202.501 160.636 +-112.288 202.318 160.491 +-114.944 202.259 160.444 +-117.607 202.178 160.38 +-120.235 202.005 160.243 +-122.825 201.741 160.034 +-125.856 202.161 160.367 +-128.505 201.924 160.178 +-131.612 202.364 160.528 +-136.955 206.112 163.501 +-140.09 206.414 163.74 +-142.766 205.999 163.411 +-143.019 202.137 160.347 +-143.295 198.424 157.402 +-144.25 195.74 155.273 +-146.628 195.017 154.7 +-150.494 196.223 155.656 +-1711.97 2188.67 1736.19 +-516.406 647.451 513.598 +-520.213 639.733 507.475 +-522.527 630.37 500.048 +-526.272 622.919 494.137 +-529.164 614.621 487.555 +-532.818 607.365 481.799 +-535.204 598.821 475.022 +-539.473 592.524 470.026 +-542.114 584.567 463.714 +-142.817 151.208 119.948 +-142.871 148.537 117.828 +-143.789 146.808 116.457 +-142.649 143.042 113.469 +-143.241 141.08 111.913 +-145.121 140.4 111.374 +-153.74 146.113 115.905 +-159.54 148.957 118.161 +-160.284 147.026 116.63 +-161.128 145.216 115.194 +-162.342 143.756 114.036 +-164.272 142.932 113.382 +-585.669 500.731 397.21 +-588.906 494.76 392.474 +-592.536 489.18 388.047 +-594.489 482.293 382.584 +-598.997 477.54 378.814 +-601.465 471.21 373.793 +-604.765 465.598 369.341 +-607.411 459.541 364.536 +-612.506 455.371 361.228 +-614.995 449.295 356.408 +-618.723 444.174 352.346 +-620.972 438.04 347.48 +-624.479 432.844 343.358 +-627.466 427.324 338.979 +-632.202 423.018 335.564 +-634.132 416.867 330.684 +-637.979 412.017 326.837 +-641.379 406.9 322.778 +-645.182 402.061 318.939 +-648.139 396.719 314.701 +-652.533 392.272 311.174 +-655.44 386.948 306.951 +-659.002 382.032 303.051 +-662.18 376.913 298.991 +-666.109 372.235 295.28 +-669.165 367.084 291.193 +-683.695 368.13 292.023 +-696.723 368.173 292.058 +-702.632 364.347 289.022 +-384.195 195.467 155.056 +-384.333 191.822 152.165 +-383.148 187.569 148.791 +-382.75 183.755 145.766 +-379.811 178.791 141.828 +-115.2 53.1624 42.1717 +-113.882 51.511 40.8617 +-112.624 49.9203 39.5999 +-111.689 48.5028 38.4754 +-110.907 47.1766 37.4233 +-110.368 45.9752 36.4703 +-110.167 44.9295 35.6408 +-109.861 43.8545 34.7881 +-109.719 42.8571 33.9969 +-109.923 42.0023 33.3188 +-110.025 41.1143 32.6143 +-109.935 40.1618 31.8588 +-109.559 39.1163 31.0295 +-109.534 38.2064 30.3077 +-110.047 37.4874 29.7373 +-110 36.5806 29.018 +-110.219 35.7671 28.3727 +-110.428 34.9535 27.7273 +-111.278 34.3408 27.2412 +-111.563 33.5507 26.6145 +-112.588 32.9787 26.1607 +-112.763 32.1542 25.5066 +-112.74 31.2774 24.8112 +-114.03 30.7605 24.4011 +-115.221 30.2035 23.9592 +-115.839 29.4873 23.3911 +-117.593 29.0475 23.0423 +-119.921 28.7235 22.7852 +-135.098 31.3514 24.8699 +-160.531 36.0627 28.6072 +-161.504 35.0895 27.8352 +-161.406 33.8827 26.8778 +-163.907 33.2094 26.3437 +-163.98 32.0307 25.4087 +-3185.97 599.239 475.353 +-860.466 155.633 123.458 +-868.025 150.762 119.593 +-875.149 145.734 115.605 +-381.681 60.8369 48.2595 +-381.853 58.1504 46.1285 +-381.503 55.3948 43.9426 +-903.955 124.874 99.0574 +-405.067 53.1054 42.1264 +-405.94 50.3708 39.9572 +-407.573 47.721 37.8552 +-403.93 44.4747 35.2801 +-404.708 41.7422 33.1124 +-404.562 38.9164 30.8709 +-405.576 36.2023 28.7179 +-404.074 33.2725 26.3938 +-404.031 30.4787 24.1776 +-405.352 27.7836 22.0396 +-405.048 24.9743 19.8112 +-405.011 22.1878 17.6007 +-403.945 19.3558 15.3542 +-147.697 6.06419 4.81049 +-404.115 13.823 10.9652 +-403.454 11.0378 8.75584 +-145.95 2.99417 2.37515 +-145.078 1.98393 1.57377 +-146.794 1.00363 0.796141 +119.6 2.66454e-15 -1.13687e-13 +120.395 0.828991 0.645508 +120.182 1.65517 1.28883 +120.859 2.49706 1.94438 +119.927 3.30434 2.57298 +120.585 4.15404 3.23461 +120.435 4.98002 3.87778 +120.375 5.80906 4.52332 +120.107 6.62666 5.15996 +120.727 7.49672 5.83745 +120.739 8.33457 6.48985 +120.542 9.15799 7.13102 +121.332 10.0619 7.83485 +121.017 10.8791 8.47116 +121.686 11.7888 9.17954 +121.353 12.6056 9.81554 +120.912 13.4077 10.4401 +120.66 14.228 11.0789 +121.189 15.1447 11.7927 +120.82 15.9525 12.4217 +121.23 16.866 13.133 +121.039 17.7001 13.7825 +120.74 18.5177 14.4191 +120.237 19.3011 15.0291 +120.606 20.2267 15.7499 +120.768 21.1247 16.4491 +120.432 21.9377 17.0822 +120.768 22.8765 17.8132 +121.384 23.879 18.5938 +121.018 24.6941 19.2285 +121.32 25.649 19.972 +121.128 26.5044 20.6381 +120.638 27.2939 21.2529 +120.62 28.1907 21.9512 +121.068 29.2047 22.7408 +120.931 30.0846 23.4259 +121.069 31.0381 24.1683 +121.575 32.0958 24.992 +121.121 32.906 25.6228 +120.941 33.7913 26.3122 +120.751 34.6768 27.0016 +120.737 35.6174 27.734 +120.619 36.5321 28.4464 +121.047 37.6215 29.2946 +119.792 38.1876 29.7354 +121.028 39.5544 30.7997 +120.678 40.4171 31.4714 +120.227 41.2464 32.1172 +120.588 42.3614 32.9854 +120.934 43.4846 33.86 +120.901 44.4824 34.6369 +120.315 45.2791 35.2573 +120.708 46.4517 36.1704 +120.011 47.2106 36.7613 +120.108 48.2859 37.5986 +119.835 49.2203 38.3262 +120.787 50.6733 39.4576 +120.925 51.8042 40.3382 +120.523 52.7114 41.0446 +120.109 53.6169 41.7497 +121.33 55.2703 43.0371 +120.887 56.1837 43.7483 +118.118 55.9979 43.6037 +116.13 56.1495 43.7217 +113.045 55.7344 43.3985 +111.412 56.002 43.6069 +108.356 55.5207 43.2321 +106.404 55.5679 43.2689 +104.293 55.5042 43.2193 +102.933 55.818 43.4636 +100.264 55.3932 43.1329 +98.7522 55.5775 43.2763 +95.0595 54.493 42.4319 +95.257 55.6147 43.3053 +95.0376 56.5059 43.9993 +94.9644 57.4943 44.7689 +95.4281 58.8261 45.8059 +95.8695 60.1685 46.8512 +95.8221 61.2236 47.6727 +95.6814 62.2323 48.4582 +95.9854 63.5481 49.4828 +95.9632 64.6677 50.3546 +95.8481 65.7401 51.1896 +95.8663 66.9204 52.1087 +95.7914 68.053 52.9906 +95.6986 69.1897 53.8757 +96.0999 70.707 55.0572 +95.967 71.8548 55.9509 +95.8161 73.0061 56.8474 +95.5042 74.0502 57.6604 +95.4594 75.3186 58.6481 +95.8844 76.9861 59.9465 +95.585 78.0974 60.8118 +95.3371 79.2673 61.7228 +95.6162 80.9022 62.9958 +95.3258 82.0809 63.9137 +95.0165 83.2621 64.8334 +95.2185 84.9174 66.1224 +94.8661 86.1057 67.0476 +95.1441 87.8952 68.441 +94.6183 88.9706 69.2784 +94.5212 90.4705 70.4464 +94.7757 92.3444 71.9055 +94.809 94.0432 73.2283 +94.2578 95.1896 74.121 +94.0536 96.7116 75.3061 +94.0035 98.4269 76.6417 +94.3984 100.656 78.3774 +94.3395 102.451 79.7751 +94.4223 104.445 81.3282 +94.1813 106.126 82.6368 +93.6836 107.55 83.7458 +93.6089 109.5 85.2639 +93.7741 111.785 87.0432 +93.5145 113.618 88.4704 +93.7051 116.053 90.3669 +93.4248 117.966 91.8562 +93.8407 120.825 94.0821 +93.8914 123.293 96.0039 +93.5393 125.294 97.5619 +93.6 127.915 99.6029 +93.5112 130.409 101.545 +93.5683 133.187 103.708 +93.4277 135.767 105.717 +93.284 138.426 107.788 +93.3194 141.442 110.136 +93.3858 144.61 112.603 +93.4338 147.86 115.134 +93.0662 150.555 117.232 +93.1626 154.109 120 +92.9338 157.248 122.444 +93.0157 161.041 125.397 +92.6953 164.27 127.912 +92.749 168.303 131.052 +92.6424 172.204 134.089 +92.6477 176.479 137.418 +92.7901 181.207 141.1 +91.6253 183.527 142.907 +90.7746 186.582 145.286 +87.9371 185.574 144.5 +89.4383 193.884 150.971 +91.7301 204.384 159.147 +90.1498 206.574 160.853 +87.2588 205.766 160.223 +84.9488 206.283 160.626 +82.243 205.808 160.255 +80.0514 206.592 160.866 +77.3658 206.076 160.464 +75.0009 206.373 160.696 +72.2078 205.437 159.967 +69.9588 206.003 160.408 +67.3021 205.331 159.884 +65.2221 206.399 160.716 +62.5634 205.613 160.104 +60.3319 206.189 160.553 +57.8543 205.904 160.33 +55.5956 206.372 160.695 +52.9322 205.277 159.843 +50.6598 205.634 160.12 +48.1831 205.122 159.722 +46.0168 205.912 160.337 +43.5065 205.131 159.729 +41.3613 206.047 160.442 +38.8148 204.919 159.564 +36.6721 205.882 160.313 +34.3023 205.579 160.077 +32.1126 206.355 160.682 +29.614 205.078 159.688 +27.376 205.51 160.024 +24.9966 204.827 159.492 +22.8087 205.699 160.171 +20.4151 204.668 159.368 +18.2204 205.588 160.085 +15.8848 204.918 159.563 +13.6283 205.177 159.765 +11.3192 204.554 159.279 +9.11226 205.886 160.316 +6.80077 204.915 159.561 +4.55159 205.743 160.205 +2.26541 204.82 159.486 +1.46549e-14 204.985 159.615 +-2.26192 204.504 159.24 +-4.52366 204.481 159.223 +-6.77983 204.284 159.069 +-9.05293 204.545 159.272 +-11.3149 204.475 159.218 +-13.6283 205.177 159.765 +-15.8482 204.446 159.195 +-18.1716 205.037 159.655 +-20.368 204.196 159.001 +-22.7041 204.756 159.436 +-24.872 203.806 158.697 +-27.3237 205.118 159.718 +-29.4894 204.216 159.016 +-31.8323 204.554 159.279 +-33.989 203.701 158.615 +-36.4912 204.865 159.522 +-38.46 203.046 158.105 +-41.0015 204.254 159.046 +-43.0774 203.108 158.154 +-45.5306 203.736 158.643 +-47.8186 203.57 158.513 +-50.24 203.93 158.793 +-52.3341 202.958 158.036 +-54.9511 203.979 158.831 +-57.0318 202.977 158.051 +-59.4771 203.268 158.278 +-61.793 203.081 158.132 +-64.4238 203.873 158.749 +-66.6762 203.422 158.398 +-69.1306 203.564 158.509 +-71.4328 203.232 158.25 +-73.8984 203.34 158.334 +-76.1729 202.898 157.99 +-78.9111 203.65 158.575 +-81.1906 203.174 158.205 +-83.8981 203.732 158.64 +-86.2751 203.446 158.417 +-88.815 203.515 158.471 +-90.9957 202.748 157.873 +-93.8845 203.523 158.476 +-96.1669 202.942 158.024 +-99.1246 203.745 158.649 +-101.118 202.541 157.712 +-104.253 203.593 158.531 +-106.195 202.285 157.512 +-109.366 203.288 158.294 +-111.65 202.6 157.758 +-114.618 203.121 158.163 +-116.861 202.324 157.543 +-119.855 202.799 157.913 +-122.093 201.966 157.264 +-125.067 202.323 157.542 +-127.746 202.161 157.416 +-130.976 202.82 157.929 +-135.523 205.41 159.946 +-139.668 207.255 161.383 +-142.146 206.563 160.844 +-143.213 203.852 158.732 +-143.64 200.317 155.98 +-143.4 195.972 152.597 +-144.496 193.549 150.71 +-149.619 196.47 152.984 +-157.847 203.236 158.253 +-517.625 653.596 508.934 +-521.396 645.749 502.823 +-524.161 636.841 495.887 +-527.983 629.391 490.086 +-530.562 620.63 483.264 +-534.291 613.377 477.616 +-536.695 604.763 470.909 +-541.331 598.796 466.262 +-142.362 154.602 120.384 +-143.769 153.299 119.369 +-144.135 150.917 117.514 +-142.755 146.789 114.299 +-142.71 144.122 112.223 +-143.988 142.825 111.213 +-148.268 144.465 112.49 +-159.21 152.388 118.66 +-159.733 150.198 116.954 +-160.738 148.492 115.626 +-161.325 146.427 114.018 +-163.866 146.138 113.793 +-164.74 144.359 112.408 +-587.696 506.039 394.036 +-589.315 498.627 388.264 +-593.981 493.863 384.555 +-596.086 487.03 379.234 +-600.259 481.951 375.279 +-602.879 475.679 370.395 +-606.691 470.404 366.288 +-609.353 464.29 361.527 +-613.812 459.589 357.866 +-616.312 453.461 353.095 +-619.755 448.081 348.906 +-622.532 442.266 344.378 +-627.176 437.806 340.905 +-629.277 431.607 336.078 +-633.342 426.796 332.332 +-635.51 420.746 327.621 +-639.908 416.204 324.084 +-643.321 411.037 320.061 +-647.06 406.101 316.217 +-650.109 400.756 312.055 +-654.517 396.264 308.558 +-657.277 390.793 304.297 +-660.931 385.877 300.469 +-663.96 380.616 296.373 +-668.145 376.03 292.802 +-671.295 370.872 288.786 +-696.057 377.453 293.91 +-699.376 372.205 289.823 +-703.216 367.244 285.961 +-383.943 196.729 153.186 +-383.827 192.933 150.231 +-384.42 189.53 147.581 +-382.75 185.063 144.102 +-379.982 180.144 140.272 +-114.252 53.1002 41.3474 +-114.315 52.0748 40.5489 +-112.189 50.0813 38.9966 +-111.864 48.9244 38.0958 +-110.379 47.2864 36.8203 +-110.457 46.3394 36.0829 +-110.344 45.322 35.2908 +-109.416 43.9874 34.2515 +-109.987 43.2676 33.691 +-110.012 42.3357 32.9654 +-110.025 41.4068 32.2421 +-110.116 40.5143 31.5471 +-110.196 39.6237 30.8537 +-110.082 38.6709 30.1117 +-109.956 37.7227 29.3734 +-110.553 37.0258 28.8308 +-110.773 36.2028 28.1899 +-110.613 35.2614 27.4569 +-110.999 34.4985 26.8628 +-111.376 33.7329 26.2667 +-111.745 32.9647 25.6685 +-112.857 32.4099 25.2365 +-113.4 31.6844 24.6716 +-114.691 31.1592 24.2626 +-115.885 30.5936 23.8222 +-116.504 29.8677 23.257 +-118.929 29.5864 23.0379 +-120.781 29.1355 22.6868 +-159.548 37.2889 29.0356 +-160.819 36.3846 28.3315 +-161.119 35.2549 27.4518 +-161.116 34.0624 26.5233 +-165.069 33.6828 26.2277 +-163.398 32.144 25.0295 +-3185.97 603.503 469.927 +-862.123 157.043 122.284 +-869.587 152.108 118.442 +-382.358 64.1252 49.9321 +-380.701 61.1125 47.5862 +-380.97 58.4287 45.4965 +-381.208 55.7458 43.4074 +-903.463 125.694 97.8734 +-406.35 53.6525 41.7774 +-405.051 50.6181 39.4146 +-404.013 47.6406 37.0962 +-406.109 45.0328 35.0655 +-404.708 42.0392 32.7345 +-405.554 39.2895 30.5934 +-403.788 36.2991 28.2649 +-404.174 33.5176 26.099 +-405.425 30.8015 23.9841 +-404.355 27.9125 21.7345 +-405.048 25.1521 19.5851 +-405.809 22.3897 17.4341 +-405.143 19.5514 15.224 +-147.597 6.10321 4.75236 +-404.115 13.9213 10.8401 +-405.053 11.1604 8.69025 +-146.55 3.02787 2.3577 +-145.478 2.00356 1.56011 +-146.694 1.01008 0.786514 +120.5 5.77316e-15 2.84217e-14 +120.395 0.834781 0.638003 +120.182 1.66673 1.27384 +119.959 2.49578 1.90746 +120.826 3.35237 2.56213 +120.685 4.18652 3.19965 +120.235 5.00649 3.82634 +120.375 5.84963 4.47073 +120.805 6.71174 5.12962 +120.826 7.55531 5.77434 +120.639 8.38587 6.40912 +120.542 9.22195 7.04811 +121.332 10.1322 7.74376 +121.017 10.955 8.37267 +121.488 11.8517 9.05799 +120.461 12.6003 9.63007 +121.011 13.5124 10.3272 +121.451 14.4214 11.0219 +121.189 15.2505 11.6556 +120.721 16.0508 12.2672 +121.23 16.9838 12.9803 +121.039 17.8237 13.6222 +120.74 18.6471 14.2515 +120.433 19.4676 14.8786 +120.801 20.401 15.592 +120.865 21.2894 16.271 +120.53 22.1087 16.8971 +120.768 23.0363 17.6061 +120.414 23.8536 18.2307 +121.018 24.8666 19.0049 +120.644 25.6841 19.6298 +121.225 26.7107 20.4144 +120.927 27.5502 21.056 +120.715 28.4101 21.7132 +121.164 29.4319 22.4941 +120.741 30.247 23.1171 +121.069 31.2549 23.8873 +121.385 32.2695 24.6628 +121.026 33.1099 25.3051 +121.318 34.1334 26.0873 +121.408 35.1092 26.8331 +121.299 36.0331 27.5392 +120.712 36.8158 28.1374 +120.303 37.6513 28.776 +120.627 38.7221 29.5944 +120.104 39.5266 30.2092 +120.678 40.6993 31.1055 +120.96 41.7879 31.9375 +120.771 42.722 32.6514 +120.752 43.7224 33.416 +120.086 44.4908 34.0032 +120.405 45.6296 34.8736 +120.528 46.7065 35.6966 +119.832 47.4695 36.2798 +120.108 48.6231 37.1615 +120.367 49.7842 38.0489 +119.993 50.6915 38.7423 +119.959 51.749 39.5505 +120.435 53.041 40.5379 +119.848 53.874 41.1746 +121.07 55.5371 42.4457 +120.714 56.4954 43.1781 +118.889 56.7574 43.3783 +118.176 57.538 43.9749 +114.826 57.0079 43.5697 +113.014 57.2041 43.7197 +109.782 56.6441 43.2917 +108.405 57.0084 43.5702 +105.785 56.6916 43.328 +104.252 56.9279 43.5086 +101.493 56.4636 43.1538 +100.136 56.75 43.3726 +97.5674 56.3213 43.045 +95.659 56.2394 42.9824 +94.9578 56.8527 43.4511 +95.6784 58.3312 44.5811 +95.0341 58.9924 45.0864 +95.4782 60.3415 46.1175 +96.5215 62.1012 47.4624 +95.9129 62.8185 48.0107 +95.9854 63.9919 48.9074 +96.0393 65.171 49.8086 +95.8481 66.1992 50.5945 +95.7914 67.3351 51.4626 +95.7171 68.4751 52.3339 +95.6986 69.673 53.2494 +95.4417 70.7132 54.0443 +95.967 72.3566 55.3004 +95.6722 73.4056 56.1021 +95.4329 74.5117 56.9475 +95.318 75.7323 57.8804 +95.7442 77.4103 59.1628 +95.585 78.6428 60.1048 +95.2683 79.7637 60.9615 +95.6162 81.4672 62.2634 +95.3258 82.6542 63.1706 +95.0835 83.9024 64.1246 +95.2848 85.5701 65.3991 +94.8661 86.7071 66.2681 +95.1441 88.509 67.6453 +94.6183 89.592 68.473 +95.2845 91.8381 70.1896 +94.6498 92.8662 70.9754 +94.6222 94.5132 72.2342 +94.6272 96.2302 73.5464 +94.0536 97.387 74.4305 +94.1239 99.2414 75.8478 +94.5173 101.487 77.5639 +94.3395 103.166 78.8476 +94.19 104.917 80.1853 +94.1813 106.867 81.6761 +94.1367 108.826 83.1729 +94.1681 110.923 84.776 +93.6637 112.433 85.9297 +93.2967 114.144 87.2377 +93.6513 116.797 89.2653 +93.4778 118.857 90.8398 +93.8407 121.668 92.9882 +93.4279 123.54 94.4189 +93.4886 126.1 96.3754 +93.6 128.808 98.4448 +93.5112 131.32 100.364 +93.5198 134.047 102.449 +93.4277 136.715 104.488 +93.1432 139.182 106.374 +93.3194 142.43 108.856 +93.3858 145.62 111.294 +93.4338 148.893 113.795 +93.0224 151.535 115.814 +93.2057 155.258 118.66 +93.2296 158.85 121.405 +93.0157 162.165 123.939 +92.736 165.49 126.48 +93.1079 170.134 130.03 +92.994 174.064 133.033 +92.6094 177.639 135.765 +92.7526 182.399 139.403 +90.929 183.405 140.172 +90.1654 186.625 142.633 +87.797 186.573 142.593 +91.7298 200.24 153.039 +91.6634 205.661 157.182 +89.3685 206.214 157.605 +86.4338 205.243 156.863 +84.4852 206.591 157.892 +81.6116 205.653 157.176 +79.4959 206.591 157.892 +76.5137 205.23 156.852 +74.2567 205.753 157.252 +71.4863 204.805 156.527 +69.4929 206.06 157.487 +66.576 204.534 156.32 +64.8351 206.607 157.905 +61.9097 204.886 156.589 +59.8595 206.004 157.444 +57.2266 205.093 156.747 +55.2006 206.336 157.698 +52.3939 204.609 156.377 +50.3163 205.666 157.186 +47.9462 205.538 157.088 +45.6868 205.863 157.336 +43.1765 204.996 156.674 +41.0953 206.152 157.557 +38.5487 204.935 156.627 +36.4494 206.06 157.487 +33.9238 204.73 156.47 +31.8201 205.904 157.367 +29.3083 204.38 156.203 +27.1879 205.523 157.076 +24.8432 204.992 156.671 +22.6605 205.79 157.28 +20.266 204.593 156.365 +18.0948 205.597 157.133 +15.7261 204.288 156.132 +13.5236 205.023 156.694 +11.232 204.395 156.214 +9.02501 205.338 156.935 +6.72748 204.122 156.006 +4.50447 205.035 156.704 +2.24359 204.264 156.114 +1.54321e-14 205.066 156.727 +-2.23748 203.708 155.689 +-4.50621 205.115 156.764 +-6.74056 204.52 156.309 +-9.01803 205.18 156.814 +-11.232 204.395 156.214 +-13.5236 205.023 156.694 +-15.6773 203.653 155.647 +-18.039 204.963 156.648 +-20.2346 204.276 156.123 +-22.5472 204.761 156.494 +-24.7186 203.964 155.885 +-27.146 205.207 156.835 +-29.2744 204.143 156.022 +-31.6373 204.721 156.463 +-33.6758 203.233 155.326 +-36.185 204.566 156.345 +-38.2235 203.207 155.306 +-40.7199 204.268 156.117 +-42.8133 203.272 155.356 +-45.3395 204.298 156.14 +-47.3266 202.882 155.058 +-49.8775 203.872 155.815 +-51.9353 202.818 155.009 +-54.5768 204.005 155.916 +-56.6206 202.92 155.087 +-59.2296 203.836 155.787 +-61.3261 202.954 155.113 +-63.819 203.369 155.43 +-66.0002 202.765 154.969 +-68.7165 203.758 155.727 +-70.6578 202.432 154.714 +-73.4298 203.461 155.501 +-75.6333 202.869 155.048 +-78.1802 203.172 155.28 +-80.4087 202.622 154.859 +-83.2183 203.493 155.525 +-85.4184 202.833 155.02 +-88.1639 203.434 155.48 +-90.3949 202.815 155.007 +-93.3031 203.674 155.663 +-95.1864 202.276 154.595 +-98.3362 203.536 155.558 +-100.238 202.181 154.522 +-103.354 203.247 155.337 +-105.506 202.376 154.671 +-108.428 202.953 155.112 +-110.653 202.193 154.531 +-113.561 202.653 154.882 +-115.824 201.93 154.33 +-119.178 203.063 155.196 +-121.447 202.301 154.613 +-124.322 202.522 154.783 +-126.542 201.652 154.118 +-129.932 202.608 154.848 +-132.476 202.193 154.531 +-138.353 206.739 158.005 +-140.762 205.981 157.426 +-143.552 205.762 157.259 +-143.344 201.301 153.85 +-142.9 196.652 150.297 +-144.75 195.244 149.22 +-148.794 196.752 150.373 +-150.793 195.51 149.423 +-519.851 660.991 505.18 +-523.706 653.141 499.179 +-526.012 643.554 491.853 +-530.687 637.033 486.869 +-532.687 627.467 479.558 +-537.236 621.066 474.665 +-538.703 611.264 467.175 +-142.388 158.603 121.217 +-142.832 156.196 119.377 +-144.066 154.689 118.225 +-144.195 152.034 116.196 +-142.633 147.688 112.875 +-142.957 145.379 111.109 +-149.155 148.983 113.864 +-152.799 149.919 114.58 +-160.164 154.372 117.983 +-160.054 151.551 115.827 +-161.907 150.617 115.113 +-162.375 148.41 113.426 +-165.324 148.468 113.47 +-585.155 516.344 394.63 +-590.263 511.799 391.156 +-591.838 504.259 385.393 +-596.941 499.791 381.978 +-598.587 492.489 376.397 +-603.343 487.81 372.821 +-605.142 480.799 367.463 +-609.758 476.084 363.859 +-611.655 469.299 358.674 +-616.133 464.548 355.043 +-618.433 458.2 350.191 +-623.221 453.733 346.777 +-625.133 447.215 341.796 +-629.797 442.706 338.349 +-631.767 436.342 333.485 +-636.308 431.79 330.006 +-638.038 425.37 325.1 +-642.686 420.93 321.707 +-645.653 415.407 317.486 +-649.956 410.767 313.939 +-651.527 404.435 309.1 +-656.738 400.386 306.005 +-658.874 394.478 301.49 +-663.905 390.32 298.312 +-665.983 384.442 293.819 +-671.645 380.64 290.914 +-680.306 378.475 289.259 +-699.353 381.889 291.868 +-701.78 376.093 287.439 +-707.469 372.046 284.345 +-384.027 198.146 151.438 +-382.562 193.64 147.995 +-382.809 190.055 145.254 +-385.734 187.808 143.537 +-115.803 55.2842 42.2523 +-113.821 53.2694 40.7125 +-112.67 51.6837 39.5006 +-111.231 50.0007 38.2143 +-110.989 48.8809 37.3585 +-110.116 47.5029 36.3053 +-110.015 46.4766 35.5209 +-109.901 45.4552 34.7403 +-110.128 44.5832 34.0739 +-109.719 43.4635 33.2181 +-109.653 42.4921 32.4757 +-109.393 41.4565 31.6842 +-109.935 40.7301 31.129 +-109.286 39.571 30.2431 +-109.9 38.8763 29.7122 +-110.047 38.0178 29.0561 +-110.553 37.2844 28.4956 +-110.958 36.5165 27.9087 +-110.984 35.6267 27.2286 +-112.022 35.0597 26.7953 +-112.03 34.1678 26.1136 +-112.869 33.5289 25.6253 +-113.421 32.7993 25.0677 +-113.683 31.9852 24.4455 +-115.07 31.4803 24.0596 +-115.885 30.8073 23.5453 +-116.409 30.0518 22.9679 +-119.31 29.8886 22.8431 +-122.694 29.8036 22.7782 +-159.643 37.5719 28.7153 +-160.819 36.6387 28.0021 +-161.119 35.5011 27.1326 +-163.531 34.8145 26.6079 +-162.746 33.4406 25.5578 +-3179.17 629.784 481.329 +-859.478 163.943 125.298 +-863.974 158.479 121.121 +-872.32 153.652 117.432 +-381.967 64.5069 49.3011 +-382.073 61.7611 47.2025 +-381.755 58.958 45.0602 +-382.191 56.2799 43.0134 +-903.463 126.571 96.7355 +-406.547 54.0534 41.3117 +-402.285 50.6237 38.6904 +-405.299 48.1261 36.7816 +-405.218 45.2478 34.5818 +-402.229 42.0736 32.1558 +-405.257 39.5349 30.2156 +-406.57 36.8045 28.1288 +-405.964 33.9011 25.9098 +-405.923 31.0546 23.7343 +-405.352 28.1767 21.5348 +-403.652 25.2405 19.2907 +-404.113 22.4519 17.1594 +-404.943 19.6783 15.0396 +-147.098 6.12505 4.68122 +-404.115 14.0186 10.714 +-404.054 11.2106 8.56802 +-147.449 3.06773 2.34459 +-145.878 2.0231 1.54621 +-146.294 1.01436 0.77525 +120.5 5.77316e-15 2.84217e-14 +120.295 0.839807 0.629924 +119.982 1.67537 1.25666 +120.859 2.53173 1.89901 +120.726 3.37256 2.52969 +120.685 4.21521 3.16175 +120.235 5.0408 3.78101 +120.974 5.91903 4.43976 +120.805 6.75774 5.06886 +120.826 7.60709 5.70594 +120.739 8.45031 6.33842 +120.542 9.28516 6.96463 +121.232 10.1932 7.64573 +121.017 11.0301 8.2735 +121.488 11.933 8.9507 +121.254 12.7702 9.57871 +120.912 13.5939 10.1965 +121.451 14.5202 10.8914 +121.189 15.355 11.5175 +120.721 16.1608 12.1219 +120.54 17.0029 12.7536 +121.039 17.9459 13.4609 +120.642 18.7596 14.0712 +120.531 19.6171 14.7144 +120.899 20.5575 15.4198 +120.865 21.4353 16.0782 +121.407 22.4222 16.8185 +120.963 23.2316 17.4256 +120.705 24.0751 18.0583 +120.922 25.017 18.7648 +120.548 25.8395 19.3817 +120.454 26.7228 20.0443 +120.831 27.717 20.79 +120.62 28.5822 21.439 +120.973 29.5868 22.1925 +120.645 30.4302 22.8252 +121.165 31.4938 23.6229 +120.911 32.3638 24.2755 +121.215 33.3889 25.0444 +120.658 34.1805 25.6382 +120.938 35.213 26.4126 +121.393 36.3081 27.234 +120.712 37.0681 27.8041 +120.21 37.8801 28.4132 +120.627 38.9875 29.2438 +120.936 40.0731 30.0581 +120.586 40.947 30.7136 +120.502 41.9148 31.4396 +120.588 42.9497 32.2158 +120.752 44.0221 33.0202 +120.086 44.7958 33.6005 +120.315 45.9079 34.4347 +120.618 47.0617 35.3001 +119.921 47.8305 35.8768 +120.108 48.9564 36.7213 +120.279 50.0885 37.5705 +119.816 50.9638 38.227 +119.871 52.0656 39.0534 +120.173 53.2881 39.9705 +120.544 54.5584 40.9233 +120.204 55.5178 41.6429 +121.059 57.045 42.7884 +120.775 58.0528 43.5444 +119.796 58.7265 44.0497 +117.37 58.6703 44.0076 +115.123 58.6708 44.0079 +111.543 57.9473 43.4652 +110.907 58.7238 44.0476 +107.029 57.7512 43.3181 +106.395 58.4961 43.8769 +102.804 57.5848 43.1933 +102.09 58.2539 43.6952 +98.781 57.4126 43.0642 +97.9902 58.0048 43.5084 +95.1974 57.3869 43.0448 +94.7264 58.1466 43.6147 +95.0341 59.3967 44.5524 +95.0869 60.506 45.3845 +95.9775 62.1744 46.6359 +96.0673 63.3509 47.5183 +95.8322 64.3276 48.251 +95.7351 65.4098 49.0627 +95.6972 66.548 49.9165 +96.4655 68.2737 51.2109 +95.7171 68.9445 51.714 +96.2147 70.5288 52.9024 +96.0999 71.6889 53.7725 +95.967 72.8526 54.6454 +95.6722 73.9088 55.4376 +95.6469 75.1906 56.3991 +95.318 76.2514 57.1948 +95.2536 77.5415 58.1625 +95.7239 79.2969 59.4792 +95.3371 80.368 60.2826 +95.0706 81.5576 61.1749 +95.2582 83.1615 62.378 +95.0835 84.4775 63.365 +95.351 86.2166 64.6695 +94.8661 87.3014 65.4832 +95.0142 88.9941 66.7529 +94.6826 90.2669 67.7075 +94.5212 91.7268 68.8026 +94.6498 93.5027 70.1347 +94.8712 95.4115 71.5664 +94.2578 96.5114 72.3915 +94.1145 98.1177 73.5963 +94.0035 99.7937 74.8534 +93.982 101.603 76.2107 +94.3395 103.874 77.9136 +94.3062 105.765 79.3327 +94.2386 107.665 80.7578 +94.1367 109.572 82.1877 +93.6648 111.087 83.3242 +93.6085 113.137 84.8621 +93.9502 115.732 86.8087 +93.8125 117.8 88.3598 +93.4778 119.672 89.7639 +93.7885 122.434 91.8358 +93.3764 124.318 93.2489 +93.5901 127.102 95.3371 +93.6 129.691 97.2788 +93.5605 132.289 99.2277 +93.5198 134.966 101.235 +93.3323 137.512 103.145 +93.1901 140.206 105.166 +93.3194 143.406 107.567 +93.3858 146.618 109.976 +93.1215 149.413 112.072 +92.9785 152.501 114.388 +92.8612 155.744 116.821 +92.9338 159.431 119.587 +93.0157 163.277 122.471 +92.736 166.624 124.982 +92.749 170.64 127.994 +92.6814 174.668 131.016 +92.6094 178.856 134.157 +92.0783 182.314 136.751 +90.3059 183.397 137.563 +89.1619 185.813 139.375 +88.4624 189.275 141.972 +91.7298 201.613 151.226 +90.4283 204.282 153.228 +88.4894 205.586 154.206 +85.5771 204.602 153.469 +83.5891 205.801 154.367 +80.7395 204.85 153.655 +78.6772 205.866 154.416 +75.6901 204.412 153.326 +73.7606 205.779 154.351 +70.8983 204.513 153.401 +68.9753 205.927 154.462 +66.0753 204.387 153.307 +64.1335 205.772 154.346 +61.5362 205.046 153.801 +59.4546 206.013 154.526 +56.6206 204.311 153.25 +54.6392 205.638 154.245 +52.0151 204.522 153.408 +49.9729 205.662 154.264 +47.2537 203.958 152.985 +45.3222 205.62 154.232 +42.7143 204.193 153.161 +40.6886 205.51 154.15 +38.12 204.046 153.051 +36.0319 205.096 153.839 +33.5974 204.15 153.129 +31.5398 205.489 154.133 +29.1272 204.509 153.398 +26.9579 205.182 153.903 +24.5461 203.929 152.963 +22.3816 204.65 153.505 +20.0306 203.602 152.718 +17.9204 205.011 153.775 +15.6284 204.41 153.325 +13.4346 205.07 153.82 +11.1186 203.718 152.805 +8.92729 204.507 153.397 +6.6568 203.362 152.538 +4.4748 205.081 153.827 +2.2209 203.584 152.705 +1.38778e-14 204.312 153.251 +-2.22265 203.744 152.825 +-4.45734 204.281 153.227 +-6.64894 203.122 152.358 +-8.9238 204.427 153.337 +-11.088 203.158 152.385 +-13.4032 204.591 153.46 +-15.5735 203.691 152.785 +-17.8646 204.373 153.296 +-20.0228 203.522 152.658 +-22.399 204.81 153.624 +-24.4598 203.212 152.426 +-26.7697 203.75 152.829 +-28.9008 202.919 152.206 +-31.3204 204.059 153.061 +-33.4408 203.198 152.415 +-35.7675 203.591 152.71 +-37.8392 202.542 151.923 +-40.2819 203.456 152.609 +-42.4172 202.772 152.096 +-44.8707 203.571 152.695 +-46.8345 202.15 151.629 +-49.3814 203.228 152.438 +-51.4369 202.249 151.703 +-53.9947 203.212 152.426 +-56.0362 202.202 151.668 +-58.4648 202.583 151.954 +-60.7191 202.322 151.758 +-63.2868 203.055 152.308 +-65.3742 202.218 151.68 +-68.2247 203.686 152.781 +-70.0432 202.046 151.551 +-72.9336 203.472 152.621 +-74.9516 202.418 151.83 +-77.7124 203.341 152.522 +-79.6269 202.027 151.537 +-82.3221 202.681 152.027 +-84.53 202.098 151.59 +-87.2848 202.787 152.107 +-89.2933 201.718 151.305 +-92.3454 202.966 152.241 +-94.3459 201.863 151.414 +-97.4761 203.139 152.371 +-99.2119 201.483 151.129 +-102.605 203.157 152.384 +-104.511 201.842 151.398 +-107.451 202.503 151.894 +-109.536 201.525 151.16 +-112.869 202.799 152.116 +-114.704 201.348 151.028 +-117.995 202.425 151.835 +-119.897 201.088 150.833 +-123.182 202.041 151.547 +-125.337 201.102 150.843 +-128.752 202.143 151.624 +-130.86 201.095 150.838 +-137.133 206.319 154.756 +-139.235 205.143 153.874 +-142.922 206.262 154.714 +-143.443 202.82 152.132 +-143.3 198.555 148.932 +-142.974 194.169 145.643 +-146.58 195.152 146.38 +-149.487 195.144 146.374 +-1736.28 2222.82 1667.29 +-526.93 661.665 496.303 +-528.845 651.454 488.644 +-533.557 644.868 483.704 +-535.483 635.084 476.365 +-540.068 628.619 471.515 +-542.317 619.582 464.737 +-143.376 160.798 120.611 +-143.655 158.173 118.643 +-143.233 154.849 116.15 +-142.751 151.543 113.67 +-143.363 149.462 112.109 +-144.804 148.266 111.212 +-156.251 157.142 117.869 +-159.344 157.412 118.072 +-160.355 155.615 116.724 +-160.825 153.325 115.006 +-163.726 153.352 115.027 +-164.671 151.54 113.667 +-587.015 530.779 398.128 +-588.5 522.856 392.185 +-593.236 517.902 388.469 +-595.316 510.699 383.066 +-600.108 505.885 379.455 +-601.574 498.339 373.795 +-607.198 494.292 370.759 +-608.678 486.923 365.232 +-613.324 482.151 361.652 +-614.748 474.905 356.218 +-619.905 470.596 352.985 +-622.089 464.068 348.089 +-626.465 459.221 344.453 +-627.734 452.154 339.153 +-633.092 448.073 336.091 +-635.088 441.642 331.268 +-640.11 437.347 328.046 +-642.405 431.217 323.448 +-646.853 426.562 319.957 +-647.984 419.765 314.858 +-654.182 416.272 312.238 +-655.152 409.473 307.138 +-660.546 405.468 304.134 +-661.829 398.964 299.255 +-668.085 395.47 296.635 +-668.895 388.77 291.609 +-698.918 398.811 299.141 +-697.59 390.751 293.095 +-702.98 386.501 289.907 +-705.511 380.683 285.544 +-711.555 376.76 282.601 +-713.793 370.819 278.145 +-383.237 195.312 146.5 +-384.844 192.374 144.296 +-115.192 56.4695 42.3567 +-113.918 54.7567 41.072 +-112.356 52.9443 39.7126 +-111.631 51.558 38.6727 +-110.535 50.0283 37.5253 +-110.115 48.8281 36.6251 +-110.379 47.943 35.9612 +-110.104 46.8326 35.1283 +-109.102 45.4343 34.0794 +-109.861 44.7798 33.5885 +-109.898 43.8328 32.8782 +-109.563 42.7482 32.0647 +-109.484 41.7752 31.3348 +-109.935 41.0093 30.7603 +-110.014 40.1075 30.0839 +-109.717 39.0777 29.3115 +-110.781 38.5336 28.9034 +-110.461 37.5087 28.1346 +-111.143 36.828 27.624 +-111.355 35.9908 26.9961 +-111.371 35.0948 26.324 +-112.59 34.574 25.9333 +-112.869 33.7587 25.3218 +-113.985 33.1883 24.8939 +-114.531 32.4447 24.3362 +-115.921 31.9305 23.9505 +-116.833 31.2723 23.4568 +-118.502 30.8016 23.1037 +-122.362 30.8633 23.15 +-149.184 36.4866 27.3679 +-160.027 37.9203 28.4433 +-160.723 36.8678 27.6539 +-163.528 36.2789 27.2121 +-162.179 34.7632 26.0752 +-167.877 34.7314 26.0514 +-853.957 170.325 127.758 +-862.2 165.59 124.206 +-867.287 160.177 120.146 +-384.856 68.2537 51.1959 +-380.304 64.6663 48.505 +-381.975 62.1684 46.6314 +-382.442 59.469 44.6066 +-903.808 134.004 100.514 +-405.051 57.135 42.8559 +-404.772 54.1863 40.6441 +-405.94 51.4337 38.5795 +-405.101 48.4323 36.3282 +-406.604 45.7138 34.2891 +-404.807 42.6334 31.9785 +-402.974 39.5816 29.6895 +-405.576 36.9662 27.7277 +-404.671 34.0247 25.5213 +-404.529 31.1601 23.3727 +-403.359 28.2304 21.1751 +-405.745 25.5453 19.1611 +-405.31 22.6728 17.0064 +-405.542 19.8424 14.8834 +-145.101 6.08329 4.56296 +-403.915 14.1077 10.5819 +-403.454 11.2707 8.45393 +-146.45 3.06782 2.30111 +-146.278 2.04255 1.53208 +-146.294 1.02131 0.766067 +119.6 2.66454e-15 -1.13687e-13 +120.395 0.846156 0.622838 +119.982 1.68663 1.2415 +121.059 2.55298 1.8792 +120.726 3.39524 2.49916 +120.685 4.24356 3.1236 +121.234 5.11686 3.76641 +120.375 5.92934 4.36446 +120.007 6.75825 4.9746 +120.826 7.65826 5.63708 +120.938 8.52116 6.27225 +120.642 9.35534 6.88627 +121.133 10.2534 7.5473 +120.918 11.0951 8.1669 +121.488 12.0132 8.84269 +121.254 12.8561 9.46311 +121.803 13.7862 10.1477 +121.451 14.6179 10.7599 +121.189 15.4583 11.3785 +120.721 16.2695 11.9756 +120.442 17.1034 12.5894 +121.039 18.0666 13.2984 +120.74 18.9011 13.9127 +121.315 19.8775 14.6314 +120.997 20.7125 15.2461 +120.768 21.5621 15.8714 +121.309 22.5549 16.6022 +121.157 23.4254 17.243 +120.511 24.1981 17.8117 +120.922 25.1853 18.5384 +120.644 26.0341 19.1632 +121.032 27.0316 19.8974 +120.734 27.8813 20.5228 +120.524 28.7515 21.1634 +121.164 29.833 21.9594 +120.645 30.6349 22.5497 +121.26 31.7305 23.3562 +121.575 32.7604 24.1142 +121.121 33.5873 24.7229 +121.412 34.6254 25.487 +120.844 35.4223 26.0736 +121.393 36.5523 26.9054 +120.712 37.3175 27.4686 +120.954 38.371 28.2441 +120.627 39.2497 28.8909 +120.197 40.096 29.5138 +120.586 41.2224 30.343 +120.41 42.1647 31.0365 +120.497 43.2059 31.8029 +120.843 44.3516 32.6463 +120.086 45.0971 33.195 +120.315 46.2167 34.0191 +120.528 47.3429 34.8481 +119.921 48.1522 35.4438 +120.108 49.2857 36.2782 +120.19 50.3882 37.0897 +120.522 51.6091 37.9884 +119.959 52.4542 38.6104 +120.26 53.6856 39.5169 +120.718 55.0046 40.4877 +120.291 55.9315 41.17 +119.249 56.5704 41.6403 +120.946 58.5263 43.0799 +120.99 59.7106 43.9517 +119.151 59.9612 44.1362 +117.653 60.3636 44.4324 +114.227 59.7406 43.9738 +112.575 60.0078 44.1705 +109.35 59.4005 43.7235 +108.62 60.1212 44.2539 +105.671 59.5889 43.8621 +104.37 59.9551 44.1317 +100.884 59.0295 43.4504 +100.321 59.7842 44.0059 +97.5134 59.1784 43.5599 +96.0751 59.3712 43.7019 +94.7977 59.6475 43.9052 +94.9304 60.8127 44.763 +95.045 61.9844 45.6254 +94.9098 63.0086 46.3793 +95.7556 64.7086 47.6306 +96.0393 66.059 48.6246 +95.8481 67.1013 49.3918 +95.7914 68.2526 50.2393 +95.7914 69.4621 51.1296 +95.6249 70.5679 51.9436 +96.0999 72.1711 53.1236 +95.967 73.3426 53.9859 +95.8161 74.5178 54.8509 +95.5042 75.5835 55.6354 +95.4594 76.8782 56.5884 +95.2536 78.0631 57.4606 +95.585 79.7144 58.6761 +95.3371 80.9086 59.5551 +95.0024 82.0474 60.3933 +95.2582 83.7209 61.6252 +95.6188 85.5241 62.9525 +95.2848 86.7361 63.8446 +94.8661 87.8886 64.6929 +95.0792 89.6539 65.9923 +94.5541 90.7508 66.7997 +94.6484 92.4686 68.0642 +94.6498 94.1316 69.2883 +94.6222 95.8011 70.5172 +94.3809 97.2878 71.6115 +94.2363 98.9058 72.8024 +93.8831 100.336 73.8552 +94.3389 102.676 75.5773 +93.8693 104.051 76.5898 +94.4223 106.608 78.472 +94.1813 108.324 79.7346 +94.0234 110.176 81.0981 +93.6648 111.834 82.3187 +93.4429 113.697 83.6898 +93.7324 116.24 85.5619 +93.6513 118.389 87.1435 +93.4248 120.409 88.6302 +93.7885 123.258 90.7275 +93.9429 125.914 92.6826 +93.5393 127.888 94.1355 +93.6 130.563 96.1048 +93.5605 133.179 98.0302 +93.5683 135.945 100.066 +93.38 138.508 101.953 +92.7206 140.438 103.374 +93.3194 144.371 106.268 +93.0227 147.03 108.226 +93.0769 150.345 110.666 +92.6278 152.948 112.582 +92.8182 156.719 115.357 +92.8492 160.358 118.036 +93.0157 164.375 120.993 +92.98 168.186 123.798 +92.6294 171.566 126.286 +92.7205 175.917 129.489 +92.6094 180.059 132.538 +91.6288 182.644 134.441 +89.9394 183.881 135.351 +88.5169 185.709 136.696 +91.9294 198.016 145.755 +91.8666 203.271 149.623 +89.8608 204.365 150.428 +87.7406 205.217 151.056 +84.8155 204.146 150.267 +82.4766 204.427 150.475 +79.8675 204.001 150.161 +77.6539 204.555 150.568 +74.8948 203.625 149.884 +72.9888 204.995 150.893 +70.3104 204.181 150.293 +68.0435 204.512 150.537 +65.3492 203.501 149.793 +63.2384 204.265 150.355 +60.6491 203.449 149.754 +58.5997 204.416 150.466 +56.231 204.27 150.359 +53.9947 204.579 150.586 +51.4369 203.609 149.872 +49.4768 204.99 150.889 +46.8528 203.588 149.857 +44.8533 204.862 150.794 +42.3182 203.66 149.91 +40.2193 204.506 150.533 +37.7357 203.347 149.68 +35.6422 204.243 150.339 +33.245 203.368 149.695 +31.1132 204.073 150.214 +28.7083 202.924 149.368 +26.6652 204.32 150.395 +24.3065 203.296 149.642 +22.1376 203.78 149.998 +19.8266 202.884 149.339 +17.7251 204.141 150.264 +15.4453 203.373 149.699 +13.2986 204.359 150.424 +11.0008 202.916 149.362 +8.83655 203.79 150.006 +6.60968 203.281 149.631 +4.41371 203.641 149.896 +2.19996 203.021 149.439 +1.75415e-14 203.673 149.919 +-2.19385 202.457 149.024 +-4.41371 203.641 149.896 +-6.60183 203.04 149.453 +-8.84004 203.871 150.065 +-10.9746 202.433 149.007 +-13.2619 203.796 150.01 +-15.3598 202.248 148.871 +-17.6833 203.658 149.909 +-19.7638 202.242 148.866 +-22.1724 204.101 150.235 +-24.2011 202.415 148.993 +-26.6025 203.839 150.041 +-28.6857 202.764 149.25 +-31.0279 203.513 149.802 +-33.0623 202.25 148.872 +-35.517 203.525 149.81 +-37.4401 201.754 148.507 +-39.9064 202.915 149.361 +-41.9221 201.754 148.507 +-44.4366 202.958 149.393 +-46.3425 201.371 148.225 +-48.8853 202.54 149.085 +-50.8986 201.478 148.304 +-53.4541 202.531 149.079 +-55.5384 201.754 148.507 +-58.1274 202.768 149.254 +-60.1122 201.647 148.428 +-62.6336 202.312 148.917 +-64.7483 201.63 148.415 +-67.3706 202.489 149.048 +-69.2682 201.155 148.066 +-71.9689 202.131 148.784 +-74.1564 201.618 148.406 +-76.923 202.629 149.151 +-78.7849 201.236 148.125 +-81.5805 202.206 148.84 +-83.6732 201.396 148.243 +-86.5035 202.323 148.926 +-88.3921 201.024 147.97 +-91.5246 202.515 149.067 +-93.2952 200.958 147.921 +-96.5802 202.626 149.149 +-98.2956 200.965 147.926 +-101.294 201.91 148.622 +-103.516 201.264 148.146 +-106.24 201.567 148.369 +-108.5 200.96 147.923 +-111.364 201.441 148.277 +-113.543 200.65 147.694 +-116.558 201.305 148.176 +-118.692 200.406 147.514 +-122.043 201.518 148.333 +-123.82 200.004 147.218 +-127.208 201.064 147.999 +-129.382 200.162 147.335 +-133.987 202.942 149.382 +-137.66 204.187 150.298 +-141.904 206.17 151.758 +-143.492 204.254 150.347 +-143.25 199.82 147.083 +-143.278 195.892 144.192 +-144.365 193.496 142.429 +-147.345 193.642 142.536 +-153.253 197.517 145.388 +-530.53 670.667 493.664 +-532.439 660.293 486.028 +-537.421 653.907 481.327 +-539.174 643.762 473.86 +-142.338 166.79 122.771 +-143.279 164.794 121.301 +-144.247 162.863 119.88 +-143.713 159.302 117.259 +-142.936 155.567 114.51 +-143.112 152.949 112.582 +-149.816 157.24 115.741 +-152.068 156.752 115.382 +-159.551 161.539 118.905 +-159.847 158.972 117.016 +-161.373 157.656 116.047 +-162.69 156.146 114.936 +-167.363 157.814 116.163 +-585.795 542.709 399.476 +-591.123 538.088 396.076 +-592.114 529.605 389.831 +-596.884 524.592 386.141 +-598.59 516.961 380.524 +-603.48 512.151 376.983 +-605.186 504.704 371.502 +-610.842 500.604 368.484 +-611.647 492.589 362.585 +-616.962 488.273 359.407 +-618.992 481.401 354.349 +-624.62 477.364 351.378 +-625.454 469.716 345.748 +-630.52 465.303 342.499 +-631.673 458.051 337.162 +-637.212 454.021 334.195 +-638.409 446.937 328.981 +-643.912 442.904 326.012 +-644.856 435.774 320.764 +-650.711 431.993 317.981 +-652.181 425.326 313.073 +-658.095 421.579 310.315 +-658.698 414.458 305.074 +-664.592 410.695 302.304 +-666.142 404.264 297.57 +-671.703 400.286 294.642 +-679.089 397.349 292.48 +-700.384 402.336 296.151 +-702.013 395.873 291.394 +-710.644 393.342 289.531 +-710.236 385.811 283.988 +-716.641 382.005 281.186 +-717.65 375.331 276.274 +-722.786 370.836 272.965 +-115.335 58.0407 42.7225 +-112.975 55.7552 41.0402 +-113.232 54.7931 40.3321 +-110.978 52.6464 38.7519 +-111.284 51.7437 38.0874 +-110.535 50.3648 37.0724 +-109.765 49.0003 36.0681 +-109.676 47.9581 35.3009 +-109.486 46.883 34.5096 +-109.28 45.8142 33.7229 +-109.327 44.8617 33.0217 +-109.898 44.1276 32.4814 +-109.833 43.1418 31.7557 +-109.393 42.0214 30.9311 +-109.663 41.183 30.3139 +-110.014 40.3773 29.7209 +-110.174 39.5043 29.0783 +-111.056 38.8891 28.6255 +-111.013 37.9498 27.9341 +-111.143 37.0757 27.2906 +-111.726 36.3535 26.7591 +-112.115 35.567 26.1801 +-113.15 34.9797 25.7478 +-113.712 34.2396 25.203 +-114.642 33.6044 24.7355 +-115.379 32.905 24.2206 +-116.393 32.2763 23.7579 +-118.635 31.9682 23.5311 +-119.738 31.3323 23.063 +-153.644 39.0141 28.7175 +-159.894 39.3691 28.9788 +-162.232 38.7014 28.4873 +-162.165 37.4487 27.5652 +-163.721 36.5659 26.9154 +-163.048 35.1847 25.8987 +-166.909 34.7633 25.5885 +-858.227 172.329 126.847 +-865.506 167.344 123.178 +-870.6 161.87 119.149 +-381.732 68.155 50.1675 +-381.478 65.3022 48.0676 +-382.073 62.6027 46.0805 +-379.301 59.3773 43.7064 +-904.693 135.037 99.3978 +-405.445 57.5752 42.3799 +-405.363 54.6305 40.2124 +-405.644 51.7418 38.086 +-405.892 48.8533 35.9599 +-403.93 45.7186 33.6525 +-405.104 42.9517 31.6158 +-404.264 39.9754 29.4251 +-404.284 37.0963 27.3058 +-404.671 34.2536 25.2134 +-404.23 31.3466 23.0736 +-405.352 28.5607 21.0229 +-403.452 25.5718 18.8228 +-404.911 22.8028 16.7847 +-404.544 19.9268 14.6677 +-145.001 6.11999 4.5048 +-404.914 14.2377 10.4801 +-404.054 11.3634 8.36436 +-145.15 3.06104 2.25317 +-145.378 2.04364 1.50428 +-145.394 1.02186 0.752169 +119.6 2.66454e-15 -1.13687e-13 +120.495 0.852454 0.615694 +119.982 1.69777 1.22623 +120.159 2.55073 1.84229 +119.927 3.39501 2.45209 +120.585 4.26803 3.08263 +120.435 5.11669 3.69558 +120.475 5.97343 4.31437 +120.905 6.85375 4.95019 +120.727 7.70245 5.56317 +120.739 8.56329 6.18493 +120.642 9.41708 6.80159 +121.232 10.3295 7.46058 +121.017 11.1776 8.07314 +121.388 12.0826 8.72681 +120.461 12.8562 9.28556 +121.011 13.787 9.95779 +121.55 14.7264 10.6363 +120.992 15.5349 11.2203 +120.721 16.3769 11.8284 +121.23 17.3288 12.5159 +121.039 18.1858 13.1349 +120.74 19.0259 13.7417 +120.433 19.8631 14.3464 +121.095 20.8661 15.0708 +120.768 21.7044 15.6762 +120.432 22.5397 16.2795 +120.963 23.5422 17.0036 +120.511 24.3578 17.5927 +120.825 25.3312 18.2957 +121.32 26.3528 19.0336 +121.032 27.21 19.6527 +120.734 28.0653 20.2705 +120.524 28.9413 20.9032 +121.068 30.0062 21.6723 +120.836 30.8858 22.3076 +121.165 31.9149 23.0509 +121.575 32.9766 23.8177 +121.215 33.8354 24.4379 +121.412 34.854 25.1736 +120.844 35.6561 25.753 +120.924 36.6516 26.472 +120.619 37.5347 27.1098 +121.047 38.6539 27.9182 +120.719 39.5392 28.5576 +121.028 40.6398 29.3525 +120.862 41.5895 30.0385 +120.96 42.6369 30.795 +120.588 43.5239 31.4356 +120.934 44.6779 32.2691 +120.086 45.3947 32.7868 +120.224 46.4868 33.5756 +120.438 47.6198 34.3939 +119.921 48.47 35.008 +120.108 49.611 35.832 +120.19 50.7208 36.6336 +119.639 51.5691 37.2463 +119.871 52.7617 38.1077 +120.173 54.0006 39.0025 +120.022 55.0483 39.7592 +118.559 55.49 40.0782 +119.939 57.2729 41.3659 +119.403 58.161 42.0074 +119.711 59.4694 42.9524 +120.847 61.2161 44.214 +119.762 61.8509 44.6724 +116.995 61.5919 44.4854 +115.41 61.9251 44.7261 +111.754 61.1072 44.1354 +110.927 61.8037 44.6384 +107.145 60.8191 43.9273 +106.568 61.6218 44.507 +102.988 60.658 43.8109 +102.411 61.4325 44.3703 +99.2704 60.6422 43.7995 +98.3758 61.1941 44.1981 +95.3493 60.3904 43.6176 +94.9304 61.2141 44.2125 +94.8118 62.2405 44.9538 +95.6814 63.9401 46.1814 +95.7556 65.1357 47.0449 +95.8872 66.3897 47.9507 +95.6217 67.3846 48.6693 +95.5667 68.5419 49.5051 +95.7171 69.8663 50.4617 +95.6986 71.0885 51.3444 +96.0999 72.6474 52.4703 +95.967 73.8266 53.3221 +95.8161 75.0096 54.1765 +95.005 75.6845 54.664 +95.4594 77.3855 55.8925 +95.2536 78.5783 56.754 +95.585 80.2405 57.9546 +95.8878 81.9136 59.163 +95.6844 83.1815 60.0787 +96.0014 84.9309 61.3422 +95.0165 85.547 61.7872 +95.351 87.3694 63.1035 +94.8661 88.4686 63.8974 +95.1441 90.3072 65.2253 +95.1968 91.9707 66.4268 +94.6484 93.0789 67.2272 +94.7127 94.8153 68.4814 +94.1865 95.99 69.3298 +94.6272 98.1852 70.9153 +94.1145 99.4296 71.8141 +94.0035 101.128 73.0407 +93.9225 102.897 74.3183 +93.8693 104.738 75.648 +94.3642 107.246 77.4596 +94.0092 108.839 78.6101 +94.0234 110.903 80.1008 +93.7766 112.707 81.4036 +93.6085 114.65 82.8071 +93.8413 117.143 84.6081 +93.7588 119.307 86.1708 +93.4778 121.272 87.5901 +93.4227 123.587 89.2623 +93.3249 125.912 90.941 +93.4378 128.592 92.8773 +93.6 131.425 94.923 +93.5605 134.058 96.8248 +93.5683 136.842 98.8354 +93.38 139.422 100.699 +93.0962 141.938 102.517 +93.2732 145.252 104.91 +93.3404 148.506 107.26 +93.0769 151.337 109.305 +92.9785 154.54 111.618 +93.1626 158.338 114.361 +92.976 161.637 116.744 +93.0157 165.46 119.505 +92.6139 168.63 121.794 +92.9484 173.293 125.163 +92.5251 176.705 127.627 +92.1502 180.349 130.259 +90.8046 182.196 131.593 +89.5729 184.34 133.142 +87.5851 184.967 133.594 +91.9294 199.323 143.963 +91.764 204.385 147.619 +88.9261 203.574 147.034 +86.9267 204.655 147.814 +83.8319 203.11 146.698 +81.8277 204.158 147.455 +79.2059 203.646 147.086 +77.1861 204.664 147.82 +74.3552 203.492 146.974 +72.217 204.167 147.462 +69.6156 203.498 146.978 +67.4482 204.06 147.385 +64.7983 203.118 146.704 +62.8271 204.276 147.541 +60.2056 203.294 146.831 +58.1498 204.186 147.476 +55.6899 203.64 147.081 +53.4749 203.947 147.303 +51.0382 203.364 146.882 +48.8662 203.797 147.195 +46.543 203.576 147.035 +44.3324 203.818 147.21 +41.9881 203.405 146.911 +39.8282 203.854 147.236 +37.514 203.487 146.97 +35.3221 203.744 147.156 +33.0231 203.344 146.867 +30.9183 204.133 147.437 +28.5159 202.894 146.542 +26.4562 204.055 147.381 +24.1531 203.347 146.87 +21.9284 203.187 146.754 +19.6932 202.849 146.51 +17.5507 203.466 146.956 +15.2927 202.693 146.397 +13.1468 203.36 146.879 +10.9267 202.879 146.531 +8.73534 202.786 146.464 +6.54424 202.596 146.327 +4.3823 203.527 147 +2.17727 202.253 146.079 +1.4766e-14 203.558 147.022 +-2.17814 202.334 146.138 +-4.37008 202.96 146.59 +-6.54424 202.596 146.327 +-8.75279 203.191 146.757 +-10.9048 202.473 146.238 +-13.1311 203.117 146.703 +-15.2682 202.369 146.163 +-17.4879 202.738 146.43 +-19.6618 202.526 146.276 +-21.9371 203.268 146.812 +-23.9519 201.653 145.646 +-26.3203 203.007 146.624 +-28.414 202.169 146.019 +-30.6623 202.443 146.217 +-32.8534 202.299 146.113 +-35.0299 202.058 145.939 +-37.1888 201.722 145.696 +-39.4841 202.093 145.964 +-41.658 201.805 145.756 +-43.9851 202.222 146.057 +-46.0145 201.265 145.366 +-48.351 201.648 145.642 +-50.5398 201.378 145.447 +-52.9551 201.964 145.871 +-55.1055 201.503 145.538 +-57.475 201.817 145.764 +-59.5052 200.929 145.123 +-62.0046 201.602 145.609 +-64.2225 201.312 145.4 +-66.6459 201.633 145.632 +-68.8139 201.154 145.286 +-71.4452 201.984 145.885 +-73.3612 200.772 145.009 +-76.1044 201.795 145.749 +-78.0933 200.785 145.019 +-80.9006 201.845 145.785 +-83.1338 201.418 145.477 +-85.5593 201.436 145.489 +-87.7912 200.976 145.157 +-90.5669 201.718 145.693 +-92.7699 201.145 145.279 +-95.5767 201.844 145.784 +-97.6359 200.934 145.127 +-100.245 201.137 145.273 +-102.597 200.795 145.026 +-105.302 201.106 145.251 +-107.423 200.28 144.654 +-110.307 200.845 145.063 +-112.797 200.647 144.919 +-115.375 200.576 144.868 +-117.874 200.338 144.696 +-120.815 200.808 145.036 +-123.017 200.018 144.465 +-125.982 200.44 144.77 +-128.505 200.117 144.536 +-131.828 200.99 145.167 +-136.086 203.184 146.752 +-139.819 204.482 147.689 +-142.803 204.614 147.785 +-143.35 201.279 145.376 +-143.227 197.115 142.368 +-143.953 194.217 140.276 +-144.889 191.671 138.436 +-149.702 194.214 140.273 +-157.429 200.327 144.688 +-535.925 669.002 483.194 +-540.402 661.873 478.045 +-539.006 647.809 467.887 +-143.584 169.361 122.323 +-143.05 165.616 119.618 +-143.492 163.08 117.786 +-142.949 159.501 115.201 +-143.888 157.636 113.854 +-145.699 156.742 113.209 +-155.539 164.323 118.684 +-158.779 164.75 118.992 +-160.235 163.303 117.947 +-160.414 160.589 115.987 +-163.027 160.323 115.795 +-164.746 159.163 114.957 +-587.101 557.256 402.484 +-589.207 549.472 396.862 +-593.641 543.947 392.871 +-595.392 536.052 387.169 +-600.532 531.282 383.724 +-602.273 523.574 378.157 +-606.096 517.765 373.961 +-608.66 510.95 369.039 +-614.067 506.567 365.874 +-615.607 499.051 360.445 +-620.243 494.109 356.875 +-622.445 487.281 351.944 +-627.666 482.858 348.75 +-628.891 475.414 343.373 +-633.985 470.947 340.147 +-635.092 463.57 334.818 +-639.833 458.898 331.444 +-642.333 452.652 326.933 +-647.182 448.091 323.638 +-648.686 441.255 318.701 +-653.643 436.804 315.486 +-655.989 430.632 311.029 +-660.834 426.127 307.774 +-663.347 420.138 303.449 +-667.845 415.429 300.048 +-669.736 409.128 295.497 +-695.336 417.105 301.258 +-698.343 411.312 297.074 +-702.989 406.497 293.597 +-706.191 400.857 289.523 +-718.308 400.209 289.055 +-720.019 393.706 284.359 +-719.56 386.092 278.859 +-720.67 379.397 274.024 +-114.027 58.889 42.5332 +-114.062 57.7794 41.7318 +-112.207 55.7419 40.2602 +-111.946 54.5285 39.3838 +-111.15 53.0761 38.3348 +-110.505 51.7204 37.3556 +-110.013 50.4576 36.4436 +-109.94 49.4024 35.6814 +-109.852 48.3519 34.9227 +-109.839 47.3447 34.1952 +-109.812 46.3412 33.4704 +-110.039 45.4522 32.8283 +-109.987 44.455 32.1081 +-110.552 43.7108 31.5706 +-110.206 42.6129 30.7776 +-109.935 41.5576 30.0154 +-110.287 40.7446 29.4283 +-109.991 39.6991 28.6731 +-111.056 39.1458 28.2734 +-111.473 38.3586 27.7049 +-112.344 37.7237 27.2463 +-112.653 36.8971 26.6494 +-112.953 36.0691 26.0513 +-113.337 35.2687 25.4732 +-113.993 34.5507 24.9546 +-114.079 33.6598 24.3111 +-116.228 33.3657 24.0987 +-117.15 32.7005 23.6183 +-119.299 32.3592 23.3718 +-122.401 32.2405 23.2861 +-160.701 41.0755 29.6672 +-160.85 39.866 28.7936 +-162.136 38.9338 28.1203 +-160.627 37.3384 26.9681 +-163.432 36.7422 26.5375 +-165.077 35.8575 25.8984 +-856.714 179.612 129.726 +-860.943 174.015 125.684 +-868.813 169.091 122.128 +-874.205 163.613 118.171 +-382.122 68.675 49.6013 +-382.749 65.9523 47.6347 +-382.073 63.0159 45.5139 +-383.325 60.4033 43.627 +-406.478 61.0724 44.1102 +-406.036 58.0396 41.9197 +-405.955 55.0714 39.7759 +-405.15 52.0199 37.5719 +-405.595 49.1397 35.4917 +-404.921 46.1332 33.3202 +-403.915 43.1082 31.1354 +-404.86 40.2985 29.106 +-405.179 37.4238 27.0297 +-403.776 34.4035 24.8483 +-405.425 31.6467 22.8572 +-405.352 28.7492 20.7644 +-405.048 25.8423 18.6649 +-404.911 22.9533 16.5783 +-405.542 20.1077 14.523 +-3272.01 139.012 100.403 +-404.714 14.3246 10.3461 +-404.154 11.4412 8.26355 +-146.65 3.11308 2.24846 +-145.878 2.0642 1.49089 +-145.894 1.03214 0.745473 +119.7 3.55271e-15 -1.13687e-13 +120.495 0.857974 0.607979 +120.882 1.72158 1.21995 +120.159 2.56725 1.81921 +120.826 3.44263 2.43952 +120.685 4.29923 3.04653 +121.234 5.18398 3.67348 +120.475 6.01211 4.26031 +120.905 6.89813 4.88816 +120.826 7.75872 5.49799 +120.739 8.61874 6.10742 +120.642 9.47806 6.71636 +121.332 10.4049 7.37316 +121.017 11.25 7.97198 +120.594 12.0813 8.56108 +120.461 12.9395 9.1692 +121.011 13.8762 9.833 +121.55 14.8217 10.503 +121.189 15.6611 11.0978 +120.721 16.4829 11.6802 +121.328 17.4552 12.3692 +121.039 18.3036 12.9703 +120.74 19.1491 13.5695 +120.433 19.9918 14.1666 +120.997 20.9842 14.8699 +120.768 21.8449 15.4798 +120.432 22.6857 16.0755 +120.963 23.6946 16.7905 +120.317 24.476 17.3442 +121.018 25.5361 18.0954 +121.32 26.5235 18.7951 +121.032 27.3862 19.4065 +120.927 28.292 20.0483 +120.332 29.0823 20.6084 +121.164 30.2243 21.4176 +120.931 31.1104 22.0455 +121.165 32.1215 22.762 +120.816 32.983 23.3724 +121.215 34.0544 24.1317 +121.506 35.1069 24.8775 +120.657 35.8312 25.3907 +120.924 36.8889 26.1403 +120.899 37.8654 26.8322 +121.14 38.9342 27.5896 +120.627 39.7646 28.1781 +121.305 40.9966 29.0511 +120.678 41.7951 29.6169 +120.96 42.913 30.4091 +120.497 43.7726 31.0182 +121.116 45.0349 31.9127 +120.267 45.7576 32.4248 +120.315 46.8229 33.1797 +120.438 47.9282 33.9629 +120.816 49.1479 34.8273 +120.108 49.9322 35.383 +120.19 51.0492 36.1745 +120.434 52.2478 37.0239 +119.695 53.0254 37.5749 +120.173 54.3503 38.5138 +118.542 54.7218 38.777 +119.771 56.4204 39.9807 +121.145 58.2235 41.2584 +120.089 58.8737 41.7192 +119.966 59.9823 42.5047 +120.762 61.5692 43.6293 +121.027 62.909 44.5786 +118.001 62.524 44.3059 +117.161 63.2717 44.8357 +113.495 62.461 44.2612 +111.834 62.7122 44.4392 +109.357 62.4765 44.2722 +108.033 62.8737 44.5537 +105.091 62.2977 44.1455 +103.698 62.6068 44.3645 +101.107 62.1643 44.0509 +99.0105 61.9877 43.9258 +96.9253 61.7862 43.783 +95.1652 61.7629 43.7665 +94.7341 62.5922 44.3541 +94.987 63.887 45.2717 +94.9895 65.033 46.0837 +95.507 66.5546 47.162 +95.7726 67.928 48.1352 +95.6416 69.0398 48.9231 +95.7171 70.3187 49.8293 +95.6986 71.5488 50.701 +96.0999 73.1178 51.8128 +95.967 74.3047 52.6539 +95.1687 74.9852 53.1361 +95.6469 76.6893 54.3437 +95.4594 77.8866 55.1921 +95.7442 79.4945 56.3315 +95.7239 80.8774 57.3115 +95.3371 81.9699 58.0857 +95.0706 83.1832 58.9454 +95.3258 84.8795 60.1474 +95.0835 86.1613 61.0557 +95.2185 87.8127 62.226 +94.8005 88.9803 63.0533 +95.0792 90.83 64.364 +95.1968 92.5662 65.5944 +94.5848 93.6187 66.3402 +94.7127 95.4293 67.6232 +94.809 97.2496 68.9131 +94.3193 98.4995 69.7989 +93.9928 99.9445 70.8228 +94.0637 101.848 72.1717 +94.3984 104.088 73.7588 +93.8693 105.416 74.7001 +93.7255 107.209 75.9709 +94.1813 109.744 77.7673 +93.9102 111.486 79.0017 +93.7207 113.369 80.3355 +93.7189 115.528 81.8659 +93.8413 117.902 83.5479 +93.6513 119.942 84.9933 +93.5837 122.195 86.5902 +93.8407 124.944 88.5381 +93.3249 126.727 89.8014 +93.4886 129.495 91.7631 +93.6 132.276 93.7335 +93.5605 134.926 95.6114 +93.035 136.943 97.0407 +93.3323 140.253 99.3863 +93.1432 142.929 101.283 +93.3194 146.265 103.646 +93.3858 149.541 105.968 +92.9876 152.171 107.832 +92.9785 155.541 110.22 +92.8182 158.774 112.511 +92.9338 162.609 115.228 +93.0157 166.531 118.008 +92.6953 169.871 120.374 +92.5098 173.592 123.011 +92.5642 177.925 126.081 +91.691 180.612 127.986 +90.2053 182.166 129.087 +88.9132 184.167 130.505 +88.0152 187.078 132.568 +92.1396 201.072 142.484 +91.2168 204.481 144.9 +88.4254 203.739 144.373 +86.243 204.36 144.814 +83.6415 203.96 144.531 +81.5805 204.859 145.167 +78.8451 204.031 144.581 +76.3675 203.805 144.42 +73.9008 203.558 144.246 +71.8311 204.39 144.835 +69.2682 203.793 144.412 +66.9306 203.805 144.421 +64.5229 203.564 144.25 +62.3917 204.173 144.682 +59.9721 203.817 144.429 +57.7674 204.156 144.669 +55.4302 204.002 144.56 +53.267 204.469 144.891 +50.6993 203.322 144.078 +48.7708 204.716 145.066 +46.2696 203.691 144.34 +44.0545 203.853 144.454 +41.7405 203.515 144.215 +39.7031 204.529 144.934 +37.2923 203.594 144.271 +35.0995 203.771 144.397 +32.8012 203.285 144.052 +30.7233 204.159 144.671 +28.3348 202.91 143.787 +26.2471 203.753 144.384 +24.0094 203.446 144.166 +21.7977 203.283 144.051 +19.5599 202.78 143.694 +17.474 203.889 144.48 +15.2011 202.784 143.697 +13.0683 203.455 144.172 +10.8525 202.806 143.713 +8.71091 203.528 144.224 +6.52068 203.175 143.974 +4.35438 203.539 144.232 +2.16942 202.829 143.729 +1.29896e-14 202.999 143.85 +-2.17203 203.074 143.902 +-4.33867 202.805 143.712 +-6.49188 202.277 143.338 +-8.69695 203.202 143.993 +-10.8307 202.399 143.424 +-13.0264 202.803 143.71 +-15.1584 202.214 143.293 +-17.3484 202.423 143.441 +-19.5285 202.455 143.464 +-21.7802 203.121 143.936 +-23.8848 202.39 143.418 +-26.1321 202.861 143.751 +-28.2216 202.099 143.212 +-30.443 202.296 143.351 +-32.6315 202.233 143.307 +-34.8768 202.478 143.48 +-36.9228 201.576 142.841 +-39.2181 202.031 143.163 +-41.3114 201.422 142.732 +-43.551 201.523 142.803 +-45.7047 201.204 142.578 +-48.0266 201.593 142.853 +-50.161 201.163 142.548 +-52.5601 201.756 142.969 +-54.7809 201.613 142.867 +-57.1376 201.93 143.092 +-59.2951 201.516 142.799 +-61.6417 201.719 142.942 +-63.8219 201.352 142.682 +-66.3871 202.151 143.248 +-68.3596 201.12 142.518 +-70.9766 201.959 143.112 +-73.1908 201.602 142.86 +-75.6073 201.775 142.982 +-77.7625 201.23 142.596 +-80.4371 201.988 143.133 +-82.5944 201.407 142.722 +-85.0384 201.505 142.791 +-87.4574 201.508 142.793 +-89.9513 201.644 142.889 +-92.1396 201.072 142.484 +-94.8958 201.704 142.932 +-96.9762 200.868 142.339 +-99.7952 201.532 142.81 +-101.947 200.814 142.301 +-104.599 201.057 142.473 +-107.104 200.977 142.417 +-109.575 200.804 142.294 +-112.092 200.685 142.209 +-114.952 201.136 142.529 +-117.056 200.236 141.891 +-119.982 200.715 142.231 +-122.571 200.583 142.137 +-125.211 200.503 142.08 +-127.673 200.109 141.802 +-130.513 200.273 141.918 +-134.272 201.775 142.982 +-138.946 204.522 144.929 +-142.113 204.945 145.229 +-143.2 202.371 143.404 +-143.227 198.391 140.584 +-142.769 193.867 137.378 +-144.471 192.356 136.307 +-148.96 194.502 137.829 +-153.775 196.944 139.559 +-538.321 676.345 479.273 +-542.775 669.084 474.127 +-142.818 172.758 122.42 +-143.301 170.121 120.552 +-143.738 167.491 118.688 +-142.795 163.339 115.745 +-143.243 160.863 113.991 +-145.791 160.755 113.915 +-150.093 162.514 115.161 +-158.765 168.818 119.628 +-159.764 166.845 118.23 +-160.671 164.807 116.786 +-161.924 163.15 115.612 +-164.999 163.312 115.727 +-168.089 163.445 115.82 +-589.374 563.036 398.979 +-591.634 555.308 393.503 +-596.027 549.67 389.508 +-598.404 542.251 384.251 +-603.302 537.189 380.663 +-604.728 529.113 374.941 +-608.781 523.426 370.911 +-611.577 516.724 366.162 +-615.819 511.302 362.32 +-618.223 504.417 357.44 +-622.24 498.909 353.538 +-625.106 492.533 349.019 +-629.697 487.558 345.494 +-631.597 480.552 340.529 +-635.975 475.485 336.939 +-638.361 468.973 332.324 +-642.454 463.761 328.631 +-644.748 457.296 324.05 +-649.843 452.847 320.897 +-651.368 445.947 316.008 +-655.881 441.137 312.599 +-657.854 434.654 308.005 +-662.947 430.257 304.89 +-665.396 424.165 300.572 +-670.384 419.708 297.414 +-674.128 414.478 293.708 +-697.346 421.019 298.343 +-700.609 415.318 294.303 +-706.652 411.261 291.429 +-708.321 404.67 286.758 +-713.693 400.212 283.599 +-716.62 394.385 279.47 +-727.399 392.826 278.365 +-121.607 64.4349 45.6599 +-114.195 59.358 42.0624 +-113.554 57.8941 41.025 +-112.207 56.1029 39.7557 +-111.26 54.5454 38.652 +-110.719 53.2128 37.7077 +-110.158 51.8921 36.7719 +-110.013 50.7843 35.9869 +-109.94 49.7223 35.2343 +-109.94 48.704 34.5127 +-109.839 47.6512 33.7667 +-109.635 46.5659 32.9976 +-109.683 45.5983 32.3119 +-109.361 44.488 31.5252 +-109.563 43.6003 30.8961 +-110.296 42.924 30.4169 +-110.026 41.8612 29.6637 +-110.196 40.9747 29.0355 +-110.813 40.2549 28.5255 +-111.148 39.4318 27.9422 +-112.117 38.8302 27.5159 +-111.605 37.7182 26.7279 +-112.653 37.1361 26.3154 +-112.86 36.2727 25.7036 +-113.99 35.7017 25.299 +-114.368 34.8887 24.7229 +-114.83 34.101 24.1647 +-116.51 33.6634 23.8546 +-117.906 33.1247 23.4729 +-120.911 33.0088 23.3908 +-127.822 33.8864 24.0127 +-158.031 40.6545 28.8087 +-161.137 40.1957 28.4835 +-161.657 39.07 27.6859 +-163.607 38.2774 27.1242 +-163.528 37.002 26.2204 +-166.332 36.3641 25.7684 +-857.876 181.02 128.275 +-863.66 175.695 124.501 +-871.535 170.719 120.975 +-385.266 72.5719 51.426 +-381.048 68.9254 48.842 +-382.847 66.3963 47.0498 +-380.603 63.1799 44.7706 +-3216.3 510.098 361.466 +-405.691 61.3489 43.4731 +-405.15 58.288 41.3041 +-406.448 55.4953 39.3251 +-405.347 52.3822 37.1192 +-404.409 49.3132 34.9444 +-403.039 46.2162 32.7498 +-404.113 43.4086 30.7603 +-403.966 40.47 28.6779 +-405.179 37.6661 26.691 +-405.665 34.7883 24.6517 +-406.321 31.922 22.6206 +-404.555 28.8784 20.4638 +-404.748 25.9904 18.4174 +-405.31 23.1247 16.3867 +-404.245 20.1732 14.2952 +-404.844 17.3112 12.2671 +-404.415 14.4067 10.2089 +-403.154 11.4868 8.13982 +-149.349 3.19091 2.26115 +-145.878 2.07757 1.47221 +-145.494 1.03597 0.734113 +120.5 5.77316e-15 2.84217e-14 +120.595 0.864138 0.60071 +120.782 1.73108 1.20337 +120.259 2.58571 1.79747 +120.826 3.46449 2.40836 +120.685 4.32654 3.00762 +121.234 5.21691 3.62656 +121.273 6.0904 4.23377 +120.905 6.94194 4.82573 +121.026 7.82089 5.43673 +120.639 8.66634 6.02446 +120.642 9.53827 6.63058 +121.332 10.471 7.27899 +121.116 11.3307 7.87661 +120.793 12.1781 8.46567 +121.353 13.1182 9.11916 +121.011 13.9644 9.70742 +121.55 14.9159 10.3688 +121.189 15.7605 10.956 +120.721 16.5876 11.531 +121.328 17.5661 12.2112 +121.039 18.4198 12.8046 +120.838 19.2864 13.407 +120.433 20.1188 13.9857 +121.095 21.1346 14.6918 +120.67 21.9659 15.2697 +121.309 22.996 15.9858 +120.963 23.8451 16.5761 +120.511 24.6712 17.1503 +120.922 25.6777 17.85 +121.513 26.7344 18.5846 +121.128 27.5822 19.1739 +120.734 28.4264 19.7608 +121.291 29.5003 20.5073 +121.164 30.4163 21.144 +120.741 31.2586 21.7296 +120.404 32.1226 22.3302 +120.816 33.1925 23.0739 +121.215 34.2708 23.8235 +120.752 35.1107 24.4074 +120.938 36.143 25.125 +120.924 37.1232 25.8064 +120.525 37.9883 26.4077 +121.047 39.1514 27.2163 +120.534 39.9865 27.7968 +120.474 40.9743 28.4835 +120.862 42.1247 29.2832 +121.052 43.2183 30.0435 +120.588 44.084 30.6452 +120.934 45.2528 31.4578 +120.267 46.0482 32.0107 +120.405 47.1557 32.7806 +120.438 48.2326 33.5291 +119.832 49.0571 34.1023 +120.197 50.2867 34.957 +120.367 51.4493 35.7653 +119.728 52.2712 36.3366 +120.398 53.6757 37.313 +120.348 54.7752 38.0773 +119.5 55.5142 38.591 +119.858 56.8199 39.4986 +120.111 58.0932 40.3838 +120.089 59.2477 41.1863 +119.455 60.1059 41.7829 +120.423 61.7863 42.9511 +121.111 63.3527 44.04 +118.84 63.3684 44.0509 +118.162 64.2175 44.6412 +115.319 63.8679 44.3981 +113.4 63.9942 44.4859 +110.176 63.3443 44.0341 +108.766 63.7022 44.2829 +105.9 63.1761 43.9172 +104.501 63.4929 44.1374 +101.746 62.9544 43.7631 +100.359 63.2312 43.9555 +98.2649 63.038 43.8212 +96.9652 63.3308 44.0248 +95.1227 63.2481 43.9672 +94.9098 64.2406 44.6572 +94.9895 65.4461 45.4952 +95.507 66.9774 46.5597 +96.3764 68.7904 47.82 +96.3906 70.0224 48.6765 +95.94 70.9302 49.3075 +95.6986 72.0033 50.0534 +96.0999 73.5822 51.1511 +95.967 74.7767 51.9814 +95.8161 75.9748 52.8143 +95.7182 77.234 53.6896 +95.4594 78.3814 54.4872 +95.7442 79.9994 55.612 +95.7239 81.3912 56.5795 +95.3371 82.4906 57.3438 +95.0706 83.7116 58.1926 +95.3258 85.4187 59.3792 +95.0165 86.6478 60.2337 +95.2848 88.4321 61.474 +95.4566 90.1646 62.6784 +95.0792 91.4069 63.542 +94.6183 92.5885 64.3634 +94.5848 94.2134 65.493 +94.6498 95.9722 66.7156 +94.809 97.8673 68.033 +94.0731 98.8666 68.7276 +93.9928 100.579 69.9183 +93.9433 102.364 71.1586 +94.0415 104.353 72.5416 +94.3395 106.617 74.1153 +94.2481 108.492 75.419 +94.1239 110.374 76.7272 +93.8535 112.127 77.9459 +93.7207 114.089 79.3095 +93.6637 116.193 80.7724 +93.8413 118.651 82.4808 +93.7051 120.773 83.9557 +93.6367 123.041 85.5328 +93.4227 125.178 87.018 +93.3764 127.602 88.703 +93.4886 130.318 90.5912 +93.6 133.116 92.5364 +93.6097 135.855 94.44 +92.9865 137.741 95.7511 +93.3323 141.144 98.117 +93.1432 143.837 99.9892 +93.2732 147.121 102.272 +93.3858 150.491 104.614 +93.0769 153.285 106.557 +92.8908 156.381 108.709 +92.8182 159.783 111.074 +92.976 163.717 113.809 +92.9328 167.44 116.397 +92.6139 170.8 118.732 +92.5098 174.695 121.44 +92.5642 179.055 124.471 +91.6527 181.683 126.298 +90.7672 184.465 128.232 +88.6933 184.879 128.52 +89.0186 190.413 132.367 +91.9294 201.888 140.343 +90.7037 204.622 142.244 +87.9581 203.949 141.776 +85.8523 204.726 142.317 +83.4829 204.867 142.414 +81.1479 205.066 142.553 +78.1534 203.526 141.482 +76.1628 204.549 142.193 +73.7304 204.379 142.075 +71.5555 204.9 142.437 +68.7872 203.663 141.577 +66.7235 204.466 142.136 +64.3477 204.3 142.02 +62.1739 204.754 142.336 +59.5519 203.675 141.585 +57.5875 204.813 142.377 +54.9973 203.695 141.6 +52.8719 204.242 141.98 +50.5398 203.969 141.79 +48.4082 204.485 142.149 +46.0509 204.017 141.824 +43.8635 204.258 141.991 +41.592 204.079 141.866 +39.4215 204.368 142.068 +37.1297 203.994 141.808 +34.9464 204.171 141.93 +32.6577 203.681 141.59 +30.4917 203.907 141.747 +28.2442 203.547 141.496 +26.0589 203.578 141.518 +23.8177 203.103 141.188 +21.7192 203.839 141.7 +19.4186 202.595 140.835 +17.3694 203.955 141.78 +15.1522 203.416 141.406 +12.9793 203.353 141.362 +10.8176 203.438 141.421 +8.65508 203.508 141.47 +6.47879 203.152 141.222 +4.32296 203.354 141.363 +2.15545 202.803 140.98 +1.29896e-14 203.55 141.499 +-2.15545 202.803 140.98 +-4.32645 203.519 141.477 +-6.47356 202.987 141.108 +-8.62367 202.769 140.956 +-10.7914 202.946 141.079 +-12.9898 203.517 141.476 +-15.1095 202.842 141.007 +-17.2996 203.136 141.211 +-19.4029 202.431 140.721 +-21.6233 202.939 141.074 +-23.7027 202.122 140.506 +-25.9544 202.762 140.951 +-28.1197 202.649 140.873 +-30.3698 203.092 141.181 +-32.4097 202.134 140.515 +-34.6541 202.463 140.744 +-36.7898 202.126 140.509 +-39.0773 202.585 140.828 +-41.1629 201.973 140.403 +-43.4468 202.317 140.642 +-45.5771 201.917 140.364 +-47.8167 201.986 140.412 +-50.0613 202.038 140.448 +-52.373 202.314 140.64 +-54.5211 201.931 140.374 +-56.9126 202.413 140.709 +-59.085 202.078 140.475 +-61.3998 202.204 140.563 +-63.6216 201.995 140.418 +-65.973 202.165 140.536 +-68.1458 201.765 140.258 +-70.4805 201.821 140.297 +-72.6511 201.387 139.995 +-75.315 202.272 140.611 +-77.552 201.96 140.394 +-79.9427 202.021 140.436 +-82.3406 202.064 140.466 +-84.4198 201.311 139.942 +-87.157 202.092 140.485 +-89.3015 201.459 140.045 +-91.7543 201.504 140.076 +-94.1791 201.452 140.04 +-96.6097 201.38 139.991 +-99.5704 202.355 140.668 +-101.411 201.027 139.745 +-104.247 201.654 140.181 +-106.386 200.899 139.656 +-109.249 201.479 140.059 +-111.345 200.614 139.458 +-114.149 200.999 139.726 +-116.669 200.841 139.616 +-119.631 201.399 140.004 +-121.857 200.682 139.505 +-124.757 201.045 139.757 +-127.166 200.58 139.434 +-130.138 200.966 139.702 +-132.698 200.675 139.5 +-138.51 205.175 142.628 +-141.129 204.818 142.38 +-143.45 204.012 141.82 +-143.329 199.792 138.887 +-142.975 195.38 135.819 +-144.419 193.508 134.518 +-147.953 194.415 135.149 +-150.175 193.555 134.551 +-539.846 682.569 474.492 +-142.786 177.132 123.134 +-143.601 174.809 121.519 +-144.604 172.758 120.094 +-144.025 168.89 117.405 +-143.085 164.71 114.499 +-143.184 161.819 112.489 +-149.36 165.737 115.213 +-154.727 168.595 117.2 +-158.765 169.891 118.1 +-159.764 167.905 116.72 +-161.045 166.24 115.563 +-162.491 164.76 114.534 +-167.861 167.202 116.231 +-586.672 574.085 399.078 +-590.998 568.173 394.969 +-593.209 560.323 389.511 +-597.551 554.575 385.516 +-600.277 547.404 380.531 +-604.18 541.387 376.348 +-606.842 534.336 371.446 +-610.639 528.359 367.292 +-613.105 521.305 362.388 +-617.992 516.365 358.954 +-620.274 509.305 354.046 +-624.451 503.863 350.263 +-627.336 497.43 345.791 +-631.511 492.067 342.063 +-633.352 484.949 337.115 +-637.745 479.837 333.561 +-640.145 473.271 328.997 +-644.102 467.904 325.266 +-647.239 461.978 321.147 +-651.212 456.683 317.466 +-653.972 450.575 313.22 +-658.35 445.611 309.769 +-659.875 438.758 305.005 +-665.217 434.472 302.026 +-667.524 428.224 297.682 +-671.812 423.274 294.241 +-687.545 425.413 295.728 +-700.722 425.744 295.958 +-703.683 419.79 291.82 +-708.036 414.684 288.27 +-710.123 408.276 283.815 +-715.918 404.01 280.85 +-725.408 401.758 279.284 +-724.146 393.553 273.581 +-114.982 61.3113 42.6209 +-113.267 59.2497 41.1878 +-112.79 57.8703 40.2288 +-110.928 55.8158 38.8006 +-110.317 54.4267 37.835 +-110.202 53.3008 37.0523 +-110.245 52.2628 36.3308 +-109.491 50.8644 35.3586 +-109.94 50.0381 34.7843 +-110.204 49.1309 34.1536 +-109.927 47.9924 33.3622 +-109.723 46.8996 32.6025 +-109.594 45.8507 31.8733 +-110.166 45.1004 31.3518 +-109.833 43.9853 30.5766 +-110.206 43.1613 30.0038 +-110.116 42.1617 29.309 +-110.833 41.4733 28.8304 +-110.265 40.3102 28.0218 +-110.964 39.6168 27.5398 +-111.565 38.8843 27.0307 +-112.159 38.1463 26.5176 +-112.838 37.4335 26.0221 +-113.976 36.8643 25.6264 +-113.617 35.8108 24.8941 +-115.023 35.3117 24.5471 +-115.864 34.6265 24.0708 +-117.642 34.2061 23.7786 +-118.473 33.4956 23.2846 +-123.092 33.8178 23.5086 +-159.777 42.6271 29.6325 +-159.557 41.3078 28.7153 +-161.233 40.475 28.1364 +-161.465 39.2716 27.2998 +-163.126 38.4074 26.6991 +-165.166 37.6101 26.1448 +-3164.86 696.307 484.042 +-859.909 182.602 126.937 +-865.116 177.109 123.118 +-873.383 172.168 119.684 +-381.758 72.368 50.307 +-381.927 69.5232 48.3294 +-384.021 67.0229 46.5913 +-381.191 63.6794 44.2671 +-904.275 144.327 100.329 +-404.216 61.5141 42.7618 +-402.885 58.3303 40.5486 +-932.632 128.148 89.0826 +-404.755 52.6379 36.5915 +-404.409 49.6265 34.4981 +-404.822 46.7155 32.4745 +-405.997 43.888 30.509 +-405.257 40.8572 28.4021 +-404.98 37.8867 26.3371 +-403.478 34.8204 24.2056 +-405.923 32.0933 22.3098 +-404.754 29.0762 20.2125 +-405.048 26.1748 18.1956 +-403.814 23.1856 16.1176 +-403.945 20.2863 14.1021 +-405.144 17.4341 12.1194 +-403.915 14.4803 10.066 +-403.154 11.5598 8.03586 +-147.649 3.17464 2.20687 +-145.078 2.0793 1.44543 +-145.694 1.04399 0.725736 +120.7 5.32907e-15 2.84217e-14 +120.695 0.870241 0.59338 +121.082 1.74619 1.19065 +120.359 2.60397 1.77554 +121.026 3.49185 2.38094 +120.785 4.3571 2.97092 +121.234 5.24941 3.57935 +120.475 6.088 4.15114 +121.104 6.99673 4.77077 +120.826 7.85665 5.35711 +120.639 8.72034 5.94603 +120.642 9.5977 6.54426 +121.332 10.5363 7.18423 +121.216 11.4107 7.78044 +121.785 12.3547 8.42413 +121.254 13.1892 8.99312 +121.11 14.0629 9.58887 +121.55 15.0088 10.2339 +121.189 15.8587 10.8134 +120.82 16.7046 11.3902 +120.54 17.5607 11.9739 +121.137 18.5496 12.6482 +120.936 19.4224 13.2433 +121.315 20.3924 13.9047 +120.997 21.2491 14.4889 +120.865 22.1385 15.0953 +121.309 23.1392 15.7777 +121.06 24.013 16.3734 +121.578 25.0448 17.077 +120.922 25.8377 17.6176 +120.644 26.7086 18.2114 +121.225 27.7761 18.9393 +120.734 28.6036 19.5035 +121.482 29.731 20.2723 +121.164 30.6058 20.8688 +120.931 31.5031 21.4806 +120.499 32.3483 22.0569 +121.006 33.4518 22.8093 +121.31 34.5112 23.5317 +120.847 35.3569 24.1084 +120.938 36.3682 24.7979 +120.924 37.3545 25.4705 +121.365 38.4914 26.2456 +120.954 39.3651 26.8413 +120.719 40.2975 27.4771 +121.121 41.4509 28.2636 +120.954 42.4195 28.924 +120.96 43.4546 29.6299 +120.497 44.3251 30.2234 +121.207 45.6376 31.1183 +120.267 46.3351 31.5939 +120.585 47.5207 32.4023 +120.708 48.6418 33.1667 +120.1 49.4733 33.7338 +120.286 50.6375 34.5275 +120.367 51.7699 35.2997 +120.522 52.9461 36.1017 +119.783 53.7341 36.639 +120.435 55.1565 37.6089 +119.239 55.7379 38.0053 +119.252 56.8847 38.7873 +119.853 58.3294 39.7723 +120.775 59.9573 40.8823 +119.455 60.4804 41.239 +120.084 61.9962 42.2725 +120.436 63.3923 43.2245 +120.098 64.4382 43.9376 +118.829 64.9824 44.3087 +116.065 64.6817 44.1037 +114.306 64.9077 44.2577 +111.814 64.6868 44.1072 +110.313 65.0108 44.3281 +107.437 64.4924 43.9746 +105.948 64.7731 44.166 +103.104 64.192 43.7698 +100.994 64.0276 43.6577 +98.8953 63.8377 43.5282 +97.6695 64.1883 43.7672 +94.8895 63.4862 43.2885 +94.524 64.3781 43.8967 +95.5257 66.2255 45.1564 +94.9747 67.0191 45.6975 +95.6972 68.7312 46.8649 +96.3157 70.404 48.0054 +95.6427 71.151 48.5148 +95.6249 72.396 49.3637 +95.5148 73.5899 50.1778 +96.0396 75.2994 51.3434 +95.2406 75.9891 51.8137 +95.6469 77.6573 52.9512 +95.4594 78.8697 53.7779 +95.8844 80.6158 54.9684 +95.585 81.7795 55.7619 +95.9566 83.5441 56.9651 +95.6162 84.7165 57.7646 +95.3258 85.9509 58.6062 +95.0165 87.1877 59.4496 +95.2848 88.9831 60.6737 +95.4566 90.7264 61.8624 +95.0142 91.9136 62.672 +94.6826 93.2282 63.5683 +94.6484 94.8641 64.6837 +94.7127 96.6338 65.8904 +94.809 98.4771 67.1473 +94.8119 100.264 68.3658 +94.2971 101.533 69.2312 +94.485 103.595 70.6373 +94.101 105.069 71.6423 +94.5159 107.482 73.2873 +94.3062 109.235 74.4828 +94.1239 111.062 75.7284 +93.9102 112.894 76.9773 +93.6648 114.731 78.2303 +93.7189 116.987 79.7682 +93.8413 119.39 81.407 +93.8125 121.665 82.958 +93.5837 123.738 84.3714 +93.8407 126.521 86.2694 +93.4794 128.539 87.6451 +93.5393 131.201 89.4602 +93.6 133.946 91.3317 +93.1665 136.053 92.7689 +93.5198 139.394 95.0465 +93.38 142.096 96.8893 +93.1432 144.733 98.6875 +93.2732 148.037 100.94 +93.4766 151.575 103.353 +93.3446 154.683 105.472 +92.8908 157.355 107.294 +92.8612 160.854 109.679 +92.976 164.737 112.327 +93.0986 168.784 115.086 +92.6953 172.015 117.29 +92.6294 176.011 120.014 +92.6814 180.399 123.006 +91.3083 182.129 124.186 +90.5424 185.154 126.249 +88.2901 185.186 126.27 +90.9896 195.842 133.536 +91.8944 203.069 138.464 +90.4985 205.432 140.075 +87.6911 204.597 139.506 +85.4942 205.143 139.878 +82.9117 204.733 139.599 +80.7461 205.323 140.001 +78.0031 204.4 139.372 +75.7827 204.797 139.642 +73.4748 204.94 139.739 +71.0593 204.746 139.608 +68.6268 204.455 139.409 +66.5165 205.101 139.85 +64.1223 204.854 139.681 +61.7143 204.506 139.444 +59.3885 204.381 139.359 +57.295 205.043 139.81 +54.7809 204.158 139.207 +52.6432 204.626 139.525 +50.3404 204.431 139.392 +48.2174 204.948 139.745 +45.9051 204.638 139.534 +43.7246 204.88 139.699 +41.3279 204.046 139.13 +39.2963 204.989 139.773 +36.8784 203.875 139.014 +34.8768 205.034 139.804 +32.5663 204.376 139.355 +30.4064 204.603 139.51 +28.1423 204.076 139.151 +25.9858 204.271 139.284 +23.7506 203.793 138.958 +21.6408 204.368 139.35 +19.4186 203.857 139.001 +17.2368 203.66 138.867 +15.079 203.694 138.89 +12.9374 203.96 139.071 +10.7696 203.798 138.961 +8.62367 204.032 139.121 +6.45524 203.674 138.876 +4.30725 203.878 139.016 +2.14847 203.406 138.694 +1.59872e-14 204.24 139.262 +-2.15022 203.571 138.807 +-4.31598 204.291 139.297 +-6.45 203.509 138.764 +-8.60622 203.62 138.84 +-10.7522 203.467 138.736 +-12.906 203.465 138.734 +-15.0485 203.281 138.609 +-17.2368 203.66 138.867 +-19.3402 203.033 138.44 +-21.5449 203.462 138.732 +-23.7027 203.381 138.677 +-25.8499 203.203 138.555 +-28.0065 203.091 138.479 +-30.2602 203.619 138.839 +-32.2791 202.574 138.127 +-34.5149 202.906 138.353 +-36.642 202.568 138.123 +-38.7957 202.378 137.993 +-41.0308 202.58 138.13 +-43.221 202.52 138.09 +-45.3584 202.201 137.872 +-47.6641 202.596 138.141 +-49.842 202.406 138.012 +-52.165 202.767 138.258 +-54.1748 201.899 137.666 +-56.6877 202.869 138.328 +-58.6648 201.891 137.661 +-60.9885 202.101 137.804 +-63.3461 202.373 137.99 +-65.74 202.707 138.217 +-67.8785 202.225 137.889 +-70.2875 202.523 138.092 +-72.4523 202.087 137.795 +-75.1103 202.98 138.403 +-77.3115 202.588 138.136 +-79.6955 202.651 138.179 +-81.8011 201.991 137.729 +-84.4524 202.643 138.174 +-86.5227 201.871 137.647 +-89.0962 202.249 137.905 +-91.194 201.521 137.408 +-93.9282 202.167 137.849 +-96.0233 201.405 137.329 +-98.7838 202.007 137.74 +-101.143 201.745 137.562 +-103.934 202.301 137.941 +-106.107 201.621 137.476 +-108.924 202.13 137.824 +-111.055 201.338 137.284 +-113.853 201.727 137.549 +-115.98 200.898 136.984 +-119.193 201.911 137.675 +-121.41 201.193 137.185 +-124.348 201.635 137.486 +-126.796 201.243 137.219 +-129.433 201.124 137.138 +-131.982 200.837 136.942 +-137.686 205.225 139.934 +-140.735 205.519 140.134 +-143.15 204.854 139.681 +-143.38 201.108 137.127 +-143.129 196.81 134.196 +-144.419 194.713 132.767 +-147.212 194.646 132.721 +-150.122 194.692 132.752 +-1784.51 2270.35 1548.05 +-142.676 178.098 121.437 +-143.768 176.104 120.078 +-143.98 173.086 118.02 +-143.05 168.793 115.093 +-143.724 166.477 113.513 +-144.478 164.297 112.027 +-151.561 169.227 115.389 +-158.277 173.538 118.328 +-159.069 171.276 116.786 +-160.318 169.537 115.6 +-162.476 168.763 115.072 +-163.938 167.264 114.05 +-585.701 587.034 400.273 +-588.536 579.497 395.134 +-592.816 573.473 391.027 +-595.374 565.872 385.844 +-599.406 559.763 381.678 +-602.485 552.842 376.959 +-606.072 546.466 372.612 +-609.297 539.84 368.094 +-612.842 533.569 363.818 +-615.328 526.455 358.967 +-619.253 520.644 355.004 +-621.547 513.53 350.154 +-626.02 508.276 346.572 +-628.919 501.792 342.15 +-633.542 496.726 338.696 +-635.985 489.998 334.109 +-639.809 484.389 330.284 +-642.82 478.21 326.071 +-646.124 472.298 322.04 +-648.748 465.941 317.705 +-653.189 460.924 314.284 +-655.811 454.656 310.011 +-660.125 449.596 306.56 +-662.128 442.999 302.062 +-667.017 438.363 298.901 +-669.336 432.062 294.605 +-678.793 430.338 293.429 +-697.608 434.327 296.149 +-701.687 428.987 292.508 +-704.33 422.794 288.285 +-709.176 417.94 284.975 +-712.662 412.289 281.122 +-716.907 407.089 277.576 +-722.423 402.598 274.514 +-114.993 62.8848 42.8784 +-114.562 61.4683 41.9126 +-113.942 59.9741 40.8938 +-112.875 58.2747 39.735 +-111.355 56.3793 38.4426 +-110.832 55.0211 37.5165 +-110.547 53.8006 36.6843 +-109.639 52.2992 35.6606 +-109.578 51.2219 34.926 +-109.94 50.3499 34.3314 +-109.94 49.3188 33.6283 +-110.104 48.369 32.9808 +-109.989 47.3063 32.2561 +-110.396 46.474 31.6886 +-110.166 45.3814 30.9436 +-109.743 44.2231 30.1538 +-109.845 43.2879 29.5162 +-110.751 42.6689 29.0941 +-110.924 41.7659 28.4784 +-111.635 41.0654 28.0007 +-111.698 40.1272 27.361 +-111.657 39.1589 26.7008 +-112.436 38.4789 26.2371 +-113.58 37.9143 25.8521 +-113.79 37.0334 25.2515 +-114.364 36.2708 24.7315 +-115.492 35.6763 24.3262 +-116.24 34.9553 23.8345 +-117.924 34.502 23.5254 +-119.703 34.0539 23.2199 +-126.222 34.8936 23.7924 +-159.682 42.8672 29.2293 +-159.175 41.4658 28.2737 +-161.998 40.9205 27.9019 +-162.52 39.7744 27.1204 +-163.703 38.7832 26.4446 +-163.721 37.5132 25.5786 +-167.492 37.0798 25.2831 +-861.748 184.132 125.552 +-867.25 178.652 121.815 +-875.23 173.607 118.375 +-380.686 72.6145 49.5127 +-381.536 69.8848 47.6515 +-381.38 66.9767 45.6686 +-382.563 64.3068 43.848 +-904.373 145.242 99.034 +-406.478 62.2437 42.4413 +-405.544 59.081 40.2848 +-933.519 129.069 88.0068 +-404.458 52.9271 36.0887 +-403.42 49.8136 33.9657 +-405.317 47.064 32.0909 +-405.402 44.0968 30.0677 +-405.257 41.1117 28.0323 +-405.179 38.1415 26.0071 +-404.969 35.1669 23.9788 +-404.429 32.1744 21.9384 +-404.754 29.2573 19.9493 +-405.945 26.3962 17.9985 +-404.113 23.3474 15.9196 +-405.542 20.4934 13.9736 +-403.746 17.4822 11.9203 +-405.014 14.6102 9.96204 +-404.354 11.6664 7.95479 +-147.25 3.18576 2.17223 +-145.078 2.09225 1.42662 +-146.594 1.05698 0.720711 +120.7 5.32907e-15 2.84217e-14 +120.695 0.875558 0.585507 +121.082 1.75686 1.17485 +120.359 2.61988 1.75198 +121.026 3.51318 2.34935 +120.785 4.38372 2.9315 +121.333 5.28583 3.53476 +121.174 6.16071 4.11981 +121.104 7.03948 4.70747 +120.826 7.90465 5.28603 +120.739 8.78085 5.87197 +121.538 9.72807 6.50539 +121.332 10.6006 7.08891 +121.216 11.4804 7.6772 +121.785 12.4302 8.31235 +121.353 13.2805 8.88102 +121.11 14.1488 9.46164 +121.649 15.1128 10.1063 +121.189 15.9556 10.6699 +121.609 16.9165 11.3125 +121.328 17.7836 11.8923 +121.137 18.663 12.4804 +120.838 19.5251 13.0569 +120.531 20.3844 13.6315 +121.095 21.3962 14.3082 +120.865 22.2738 14.895 +121.407 23.2993 15.5808 +120.963 24.1403 16.1432 +120.705 25.0169 16.7294 +121.018 26.0164 17.3978 +120.741 26.8933 17.9842 +121.128 27.9236 18.6732 +120.831 28.8012 19.26 +121.387 29.889 19.9875 +121.164 30.7928 20.5919 +121.79 31.9205 21.346 +121.26 32.7514 21.9016 +121.006 33.6561 22.5067 +121.405 34.7492 23.2376 +121.601 35.795 23.937 +121.032 36.6188 24.4879 +121.299 37.6992 25.2104 +120.525 38.4585 25.7181 +121.047 39.636 26.5055 +120.905 40.606 27.1542 +120.474 41.4815 27.7396 +120.954 42.6786 28.5402 +121.235 43.8195 29.3032 +120.771 44.6974 29.8902 +120.388 45.6062 30.4979 +120.358 46.6534 31.1982 +120.585 47.811 31.9724 +120.618 48.9025 32.7023 +119.921 49.7015 33.2366 +120.108 50.8714 34.0189 +120.367 52.0862 34.8313 +120.522 53.2696 35.6226 +120.574 54.4194 36.3916 +120.523 55.5338 37.1368 +119.5 56.2013 37.5832 +120.118 57.6479 38.5505 +118.991 58.2639 38.9624 +120.518 60.1952 40.254 +119.966 61.1105 40.8661 +119.914 62.2868 41.6527 +120.521 63.8242 42.6808 +121.356 65.511 43.8088 +119.412 65.7006 43.9356 +117.392 65.8206 44.0158 +115.13 65.7751 43.9854 +112.797 65.6542 43.9045 +111.127 65.8907 44.0627 +108.166 65.3262 43.6852 +106.591 65.5644 43.8445 +104.382 65.3846 43.7243 +102.343 65.279 43.6537 +100.314 65.1489 43.5667 +98.9217 65.4085 43.7402 +95.4335 64.2402 42.959 +94.987 65.0887 43.5264 +94.9129 66.2027 44.2714 +94.8987 67.3745 45.055 +95.4708 68.9875 46.1336 +95.8663 70.5037 47.1475 +95.7914 71.6969 47.9455 +95.6986 72.8945 48.7463 +95.5148 74.0395 49.512 +96.0396 75.7595 50.6622 +95.8161 76.9153 51.4351 +95.7182 78.19 52.2875 +95.4594 79.3516 53.0643 +95.8844 81.1083 54.2391 +95.7239 82.3987 55.102 +95.4748 83.6322 55.9269 +95.6844 85.2948 57.0387 +95.3933 86.5375 57.8697 +95.0835 87.7819 58.7019 +95.2185 89.4644 59.827 +95.5878 91.4062 61.1255 +95.0792 92.5384 61.8826 +94.7469 93.8617 62.7676 +94.5848 95.3796 63.7826 +94.2093 96.708 64.6709 +94.7467 99.0139 66.213 +94.8734 100.942 67.5021 +94.1145 101.956 68.1802 +94.6655 104.427 69.8329 +94.6363 106.313 71.0942 +94.0456 107.601 71.9552 +94.3062 109.903 73.4945 +94.0092 111.604 74.6324 +94.0801 113.789 76.0932 +94.224 116.121 77.6531 +93.6637 117.632 78.6631 +93.5145 119.701 80.0472 +93.7588 122.338 81.8105 +93.5837 124.494 83.2519 +93.893 127.365 85.1719 +93.4279 129.253 86.4343 +93.5393 132.002 88.2732 +93.6 134.764 90.1199 +93.5605 137.464 91.9254 +93.5198 140.245 93.7854 +93.38 142.964 95.6036 +93.1432 145.618 97.378 +93.2732 148.942 99.601 +93.3858 152.353 101.882 +93.4338 155.777 104.172 +93.2415 158.914 106.27 +92.8182 161.761 108.173 +92.976 165.743 110.837 +92.7669 169.21 113.155 +92.736 173.142 115.784 +92.7092 177.238 118.523 +92.447 181.041 121.066 +90.9256 182.473 122.024 +90.3926 185.977 124.367 +87.9236 185.543 124.077 +92.1722 199.6 133.477 +91.9645 204.465 136.731 +90.1223 205.827 137.642 +87.3239 204.985 137.078 +85.2989 205.925 137.707 +82.7531 205.59 137.483 +80.4062 205.708 137.562 +78.0332 205.729 137.576 +75.5488 205.412 137.364 +73.1624 205.315 137.299 +71.0869 206.077 137.809 +68.3596 204.903 137.024 +66.2836 205.632 137.511 +63.6716 204.656 136.859 +61.5207 205.11 137.162 +59.1551 204.822 136.969 +57.0476 205.404 137.359 +54.7809 205.405 137.359 +52.6432 205.876 137.674 +50.2008 205.109 137.162 +48.0457 205.466 137.4 +45.7958 205.398 137.354 +43.5857 205.477 137.407 +41.3279 205.293 137.284 +39.1086 205.256 137.26 +36.8637 205.039 137.115 +34.7376 205.463 137.398 +32.3574 204.306 136.625 +30.3211 205.276 137.273 +28.0631 204.744 136.917 +25.8917 204.775 136.938 +23.6643 204.293 136.616 +21.5623 204.872 137.003 +19.2774 203.611 136.16 +17.188 204.324 136.636 +15.024 204.192 136.548 +12.8851 204.376 136.671 +10.7391 204.462 136.728 +8.59226 204.532 136.775 +6.43168 204.171 136.534 +4.29155 204.376 136.671 +2.13975 203.818 136.298 +1.4766e-14 204.157 136.525 +-2.14149 203.984 136.409 +-4.30027 204.791 136.949 +-6.41859 203.755 136.256 +-8.57132 204.033 136.442 +-10.7129 203.963 136.395 +-12.8537 203.877 136.338 +-14.9996 203.86 136.326 +-17.181 204.241 136.581 +-19.2696 203.528 136.104 +-21.4577 203.877 136.338 +-23.6164 203.88 136.339 +-25.7767 203.866 136.33 +-27.882 203.423 136.034 +-30.1505 204.121 136.501 +-32.2922 203.894 136.349 +-34.4314 203.652 136.187 +-36.5237 203.148 135.85 +-38.8114 203.696 136.217 +-40.7668 202.506 135.42 +-43.0647 203.02 135.765 +-45.1944 202.7 135.551 +-47.4351 202.855 135.654 +-49.6626 202.91 135.691 +-51.7908 202.542 135.445 +-54.1315 202.97 135.731 +-56.3277 202.813 135.626 +-58.6181 202.962 135.726 +-61.0127 203.417 136.03 +-63.1458 202.966 135.728 +-65.5071 203.223 135.9 +-67.638 202.74 135.577 +-70.0395 203.041 135.778 +-72.4807 203.402 136.02 +-74.8179 203.424 136.035 +-76.9506 202.874 135.667 +-79.4174 203.178 135.87 +-81.4521 202.358 135.322 +-84.1919 203.252 135.92 +-86.2557 202.478 135.402 +-88.9936 203.25 135.918 +-91.124 202.596 135.481 +-93.6774 202.859 135.657 +-95.9134 202.404 135.352 +-98.5215 202.702 135.552 +-100.761 202.21 135.223 +-103.309 202.313 135.292 +-105.708 202.09 135.143 +-108.233 202.074 135.132 +-110.64 201.812 134.956 +-113.473 202.282 135.271 +-115.592 201.451 134.715 +-118.404 201.8 134.949 +-120.964 201.678 134.867 +-123.939 202.2 135.216 +-126.334 201.735 134.905 +-128.964 201.619 134.827 +-131.696 201.625 134.832 +-137.298 205.896 137.688 +-140.242 206.05 137.791 +-143.05 205.961 137.731 +-143.38 202.337 135.308 +-143.181 198.083 132.463 +-143.844 195.123 130.484 +-146.682 195.13 130.488 +-149.477 195.04 130.428 +-154.242 197.434 132.029 +-143.393 180.088 120.429 +-143.545 176.904 118.3 +-144.094 174.28 116.545 +-143.107 169.891 113.61 +-143.724 167.494 112.007 +-147.71 169 113.014 +-156.26 175.54 117.388 +-158.458 174.798 116.892 +-159.252 172.521 115.369 +-160.318 170.573 114.066 +-162.725 170.054 113.719 +-165.511 169.9 113.616 +-587.418 592.352 396.12 +-589.501 583.993 390.53 +-593.79 577.924 386.472 +-596.554 570.458 381.479 +-600.4 564.117 377.239 +-603.757 557.393 372.742 +-607.693 551.276 368.651 +-610.389 544.111 363.86 +-614.15 537.974 359.756 +-616.857 530.987 355.084 +-620.515 524.892 351.008 +-623.173 518.019 346.412 +-627.518 512.605 342.791 +-630.429 506.07 338.421 +-635.283 501.134 335.121 +-637.375 494.069 330.396 +-641.136 488.36 326.578 +-643.786 481.855 322.228 +-647.397 476.12 318.393 +-650.107 469.769 314.146 +-654.329 464.55 310.656 +-657.343 458.503 306.612 +-661.514 453.294 303.129 +-664.149 447.066 298.964 +-668.817 442.231 295.731 +-671.149 435.879 291.483 +-695.454 443.594 296.642 +-698.646 437.632 292.655 +-703.937 432.992 289.552 +-707.081 427.038 285.571 +-711.456 421.845 282.098 +-713.891 415.524 277.871 +-719.38 410.988 274.838 +-723.252 405.522 271.182 +-115.076 63.3148 42.3402 +-114.982 62.0702 41.5078 +-112.846 59.7599 39.9629 +-111.942 58.1461 38.8837 +-111.27 56.6804 37.9035 +-110.232 55.0576 36.8183 +-109.858 53.7918 35.9718 +-110.418 52.9928 35.4376 +-109.578 51.5349 34.4626 +-109.94 50.6575 33.8759 +-109.94 49.6201 33.1821 +-109.839 48.5475 32.4649 +-109.812 47.5186 31.7768 +-109.95 46.5692 31.1419 +-110.166 45.6586 30.533 +-110.552 44.8213 29.9731 +-110.206 43.6955 29.2202 +-110.479 42.8242 28.6376 +-111.015 42.0556 28.1236 +-111.453 41.2487 27.584 +-111.515 40.3061 26.9536 +-112.302 39.6255 26.4985 +-113.175 38.9684 26.0591 +-113.673 38.1771 25.53 +-113.976 37.3206 24.9572 +-114.177 36.4328 24.3635 +-115.211 35.8069 23.945 +-116.898 35.3679 23.6513 +-118.113 34.7683 23.2504 +-119.797 34.2891 22.9299 +-133.808 37.2169 24.8879 +-157.59 42.5639 28.4635 +-161.846 42.419 28.3666 +-161.137 40.9517 27.3854 +-162.52 40.0174 26.7606 +-164.183 39.1348 26.1704 +-3157.34 727.857 486.736 +-856.197 190.705 127.529 +-863.2 185.57 124.095 +-869.967 180.306 120.575 +-3185.97 635.818 425.186 +-381.076 73.1329 48.9058 +-382.122 70.4198 47.0914 +-381.869 67.4723 45.1204 +-383.053 64.7825 43.3216 +-905.944 146.383 97.89 +-405.986 62.5482 41.8275 +-405.051 59.3698 39.702 +-935.788 130.173 87.0497 +-405.347 53.3675 35.6881 +-403.123 50.081 33.4904 +-404.624 47.2705 31.6109 +-403.915 44.2034 29.5599 +-405.654 41.4034 27.6875 +-403.39 38.2051 25.5487 +-405.069 35.3904 23.6664 +-403.832 32.3232 21.6153 +-405.352 29.4796 19.7137 +-405.048 26.4988 17.7204 +-404.712 23.5248 15.7316 +-404.943 20.5882 13.7678 +-404.844 17.6368 11.7942 +-404.415 14.6776 9.81529 +-404.054 11.729 7.84346 +-148.149 3.22481 2.15651 +-145.878 2.11665 1.41545 +-146.594 1.06344 0.711147 +120.5 5.77316e-15 2.84217e-14 +120.495 0.879349 0.57663 +120.882 1.76447 1.15704 +120.159 2.63121 1.7254 +120.726 3.52548 2.31182 +120.685 4.40634 2.88944 +121.234 5.31313 3.48407 +120.974 6.18742 4.05737 +120.905 7.06998 4.63611 +120.727 7.94546 5.21021 +120.54 8.81883 5.78291 +121.339 9.77031 6.40684 +121.232 10.6554 6.98723 +121.116 11.5397 7.56712 +121.686 12.4944 8.19318 +121.254 13.3493 8.75372 +121.209 14.2452 9.34123 +120.66 15.0797 9.88844 +121.189 16.0512 10.5255 +120.721 16.8936 11.0779 +120.344 17.7449 11.6361 +121.039 18.7596 12.3015 +120.74 19.6262 12.8698 +120.531 20.5066 13.4471 +120.899 21.4896 14.0917 +120.67 22.371 14.6697 +121.407 23.4389 15.37 +120.963 24.2849 15.9248 +121.578 25.3488 16.6224 +121.018 26.1723 17.1624 +120.741 27.0544 17.7408 +121.032 28.0685 18.4058 +120.927 28.9968 19.0146 +121.387 30.0681 19.7171 +121.068 30.9529 20.2972 +121.599 32.0615 21.0242 +120.974 32.8701 21.5545 +121.006 33.8578 22.2021 +121.215 34.9029 22.8874 +121.506 35.9815 23.5947 +121.032 36.8383 24.1565 +120.924 37.808 24.7924 +120.339 38.629 25.3308 +120.954 39.8429 26.1268 +120.627 40.7553 26.7251 +121.305 42.018 27.5532 +120.678 42.8364 28.0898 +120.96 43.9821 28.8411 +120.497 44.8632 29.4188 +120.752 46.0182 30.1762 +120.358 46.9329 30.7761 +120.585 48.0975 31.5397 +120.618 49.1956 32.2598 +119.921 49.9993 32.7868 +120.197 51.2142 33.5835 +120.456 52.4369 34.3853 +119.816 53.2747 34.9347 +120.486 54.7056 35.873 +120.523 55.8666 36.6343 +120.022 56.7851 37.2366 +119.945 57.9097 37.9741 +118.216 58.2311 38.1848 +119.575 60.0821 39.3986 +119.455 61.2145 40.1412 +119.66 62.5271 41.0019 +120.015 63.9371 41.9265 +121.188 65.8124 43.1562 +120.08 66.4635 43.5832 +118.304 66.7294 43.7575 +117.108 67.306 44.1356 +114.026 66.767 43.7822 +111.859 66.7225 43.753 +109.541 66.5532 43.642 +107.476 66.5044 43.61 +105.18 66.2796 43.4626 +103.691 66.5356 43.6305 +100.314 65.5393 42.9771 +99.626 66.2689 43.4555 +96.8324 65.5724 42.9989 +95.45 65.7979 43.1467 +94.6831 66.4381 43.5665 +94.8226 67.724 44.4097 +95.3953 69.3461 45.4734 +95.1174 70.372 46.1461 +95.7171 72.0706 47.26 +96.0672 73.6138 48.272 +95.5148 74.4832 48.842 +95.822 76.0407 49.8634 +95.8161 77.3761 50.7391 +95.6469 78.5999 51.5416 +95.4594 79.8271 52.3463 +95.1134 80.9382 53.0749 +95.585 82.7722 54.2775 +95.3371 84.0121 55.0906 +95.0706 85.2556 55.906 +95.3258 86.9942 57.0461 +95.0165 88.246 57.867 +95.2185 90.0005 59.0174 +95.3254 91.7014 60.1328 +95.0142 93.0293 61.0036 +95.2611 94.9368 62.2544 +95.1573 96.5315 63.3001 +94.7127 97.8068 64.1364 +94.8712 99.7376 65.4026 +94.3193 100.954 66.1999 +93.9928 102.435 67.171 +94.0035 104.319 68.4065 +94.4579 106.748 69.9995 +94.3983 108.651 71.2476 +94.2481 110.493 72.4556 +93.9518 112.204 73.5775 +94.0801 114.471 75.0636 +93.7207 116.193 76.1932 +93.5533 118.198 77.5077 +93.2422 120.068 78.7338 +93.7588 123.071 80.7035 +93.4248 125.027 81.9861 +93.4227 127.487 83.5989 +93.4279 130.027 85.2648 +93.5901 132.865 87.1259 +93.6 135.571 88.9004 +93.5112 138.215 90.6338 +93.4713 141.013 92.4686 +93.3323 143.747 94.2618 +93.1432 146.49 96.0604 +93.3194 149.909 98.3021 +93.3404 153.192 100.455 +92.9876 155.962 102.272 +92.8908 159.265 104.438 +92.8612 162.806 106.759 +92.9338 166.66 109.287 +92.6839 170.071 111.524 +92.0852 172.957 113.416 +92.5895 178.07 116.769 +92.6033 182.434 119.631 +90.6194 182.949 119.968 +89.6059 185.463 121.617 +87.6671 186.11 122.041 +92.1722 200.796 131.671 +91.5442 204.75 134.264 +89.5409 205.725 134.904 +87.0568 205.582 134.81 +84.9733 206.368 135.325 +82.0233 204.998 134.427 +80.159 206.304 135.283 +77.552 205.685 134.877 +75.4319 206.323 135.296 +72.7079 205.262 134.6 +70.5632 205.785 134.943 +68.1725 205.566 134.799 +66.0506 206.137 135.173 +63.4213 205.073 134.476 +61.303 205.609 134.827 +59.085 205.805 134.956 +56.8451 205.902 135.019 +54.4562 205.411 134.697 +52.3106 205.801 134.953 +49.8819 205.027 134.446 +47.8931 206.04 135.11 +45.4313 204.984 134.417 +43.4641 206.131 135.17 +41.0308 205.039 134.453 +38.9991 205.909 135.024 +36.6124 204.862 134.337 +34.5706 205.701 134.888 +32.2269 204.702 134.232 +30.1017 205.012 134.436 +27.9159 204.892 134.357 +25.8917 206.002 135.085 +23.5781 204.768 134.276 +21.4142 204.683 134.22 +19.2068 204.08 133.825 +17.1113 204.63 134.185 +14.9264 204.08 133.824 +12.8432 204.933 134.384 +10.6606 204.182 133.892 +8.56085 205.005 134.431 +6.40288 204.474 134.083 +4.26188 204.179 133.89 +2.13277 204.37 134.015 +1.36557e-14 204.377 134.02 +-2.13538 204.621 134.179 +-4.26537 204.346 133.999 +-6.40288 204.474 134.083 +-8.53642 204.42 134.048 +-10.6693 204.35 134.002 +-12.7909 204.097 133.836 +-14.9386 204.247 133.934 +-17.0694 204.13 133.857 +-19.1754 203.748 133.607 +-21.388 204.433 134.056 +-23.4439 203.603 133.512 +-25.6722 204.256 133.94 +-27.7121 203.396 133.376 +-30.0408 204.597 134.164 +-32.0572 203.624 133.526 +-34.2783 203.962 133.747 +-36.2576 202.877 133.036 +-38.655 204.091 133.832 +-40.6347 203.059 133.155 +-42.9432 203.661 133.55 +-44.9757 202.928 133.069 +-47.3206 203.578 133.495 +-49.4831 203.388 133.371 +-51.6245 203.101 133.183 +-53.8285 203.044 133.145 +-56.0578 203.05 133.149 +-58.408 203.447 133.409 +-60.7466 203.743 133.603 +-62.6952 202.725 132.936 +-65.2742 203.713 133.584 +-67.3441 203.069 133.161 +-69.8189 203.615 133.52 +-71.8843 202.937 133.075 +-74.584 204.004 133.775 +-76.71 203.452 133.413 +-79.1084 203.6 133.51 +-81.23 203.015 133.126 +-83.964 203.917 133.717 +-85.9553 202.981 133.104 +-88.6516 203.682 133.563 +-90.7738 203.027 133.134 +-93.2473 203.138 133.207 +-95.6935 203.15 133.215 +-98.0345 202.909 133.057 +-100.416 202.727 132.937 +-102.997 202.91 133.057 +-105.35 202.61 132.861 +-107.826 202.522 132.803 +-110.267 202.336 132.681 +-113.093 202.812 132.993 +-115.205 201.979 132.447 +-118.053 202.408 132.728 +-120.161 201.539 132.158 +-123.531 202.741 132.946 +-125.549 201.683 132.253 +-128.635 202.31 132.664 +-130.885 201.584 132.188 +-137.153 206.911 135.681 +-139.356 205.975 135.068 +-142.85 206.905 135.677 +-143.633 203.91 133.713 +-143.181 199.27 130.671 +-143.008 195.152 127.97 +-144.827 193.817 127.095 +-148.563 195.01 127.877 +-142.532 183.538 120.354 +-143.228 180.957 118.662 +-144.16 178.726 117.199 +-143.301 174.36 114.336 +-142.935 170.704 111.939 +-145.815 170.948 112.098 +-149.826 172.448 113.082 +-158.282 178.877 117.298 +-158.638 176.045 115.441 +-159.983 174.35 114.33 +-160.934 172.254 112.955 +-164.406 172.84 113.339 +-169.665 175.208 114.892 +-589.708 598.224 392.283 +-591.686 589.67 386.674 +-595.804 583.359 382.535 +-598.195 575.454 377.352 +-602.52 569.501 373.448 +-605.095 561.976 368.513 +-609.45 556.182 364.714 +-611.616 548.472 359.658 +-616.284 543.078 356.122 +-618.732 535.793 351.344 +-623.038 530.184 347.666 +-625.082 522.719 342.771 +-629.871 517.611 339.421 +-632.3 510.613 334.832 +-636.879 505.403 331.416 +-638.984 498.284 326.748 +-643.201 492.868 323.196 +-645.57 486.085 318.748 +-650.243 481.079 315.465 +-652.145 474.066 310.867 +-657.295 469.452 307.841 +-659.411 462.702 303.415 +-663.52 457.394 299.934 +-666.247 451.165 295.85 +-670.93 446.287 292.651 +-675.325 441.219 289.328 +-698.468 448.187 293.897 +-701.521 442.066 289.883 +-706.188 436.98 286.548 +-708.537 430.482 282.287 +-714.061 425.927 279.3 +-715.775 419.117 274.834 +-724.325 416.293 272.982 +-728.558 410.945 269.475 +-113.909 63.0481 41.3435 +-113.556 61.6679 40.4384 +-112.424 59.8933 39.2748 +-111.434 58.2286 38.1832 +-111.014 56.8889 37.3047 +-110.66 55.6028 36.4613 +-109.858 54.1141 35.4851 +-109.899 53.0595 34.7936 +-109.665 51.8849 34.0233 +-109.765 50.8799 33.3643 +-109.764 49.8375 32.6808 +-109.927 48.8776 32.0513 +-109.901 47.8419 31.3722 +-109.683 46.7343 30.6459 +-110.077 45.8948 30.0954 +-110.282 44.9798 29.4953 +-111.108 44.3174 29.0609 +-110.57 43.1161 28.2732 +-111.47 42.481 27.8567 +-111.361 41.4618 27.1884 +-111.973 40.7143 26.6983 +-112.762 40.0263 26.2471 +-113.268 39.2339 25.7275 +-113.58 38.3745 25.1639 +-114.534 37.7281 24.7401 +-114.457 36.741 24.0928 +-115.773 36.1972 23.7362 +-117.462 35.7514 23.4438 +-119.244 35.3116 23.1555 +-121.688 35.039 22.9767 +-160.931 45.0287 29.5274 +-160.348 43.5684 28.5698 +-161.178 42.4972 27.8674 +-163.146 41.7105 27.3515 +-161.849 40.0909 26.2895 +-163.895 39.3002 25.7709 +-3157.34 732.219 480.149 +-858.515 192.367 126.144 +-865.33 187.142 122.718 +-870.064 181.407 118.957 +-382.433 76.7787 50.3473 +-381.174 73.59 48.2563 +-381.732 70.7693 46.4067 +-381.869 67.8766 44.5098 +-387.364 65.9043 43.2165 +-404.136 65.6918 43.0772 +-406.478 62.9992 41.3115 +-404.658 59.6675 39.1267 +-938.845 131.381 86.1526 +-403.866 53.4911 35.0766 +-404.804 50.5913 33.175 +-405.515 47.6586 31.2519 +-404.708 44.5556 29.2172 +-405.554 41.6413 27.3061 +-405.179 38.6045 25.3147 +-404.671 35.5675 23.3233 +-405.425 32.6452 21.4069 +-404.754 29.6125 19.4183 +-404.649 26.6314 17.4634 +-404.412 23.6483 15.5073 +-405.143 20.7217 13.5882 +-404.844 17.7425 11.6346 +-403.915 14.7474 9.67053 +-405.053 11.8285 7.75647 +-148.149 3.24413 2.12733 +-145.678 2.12641 1.39439 +-146.394 1.06835 0.700565 +120.5 5.77316e-15 2.84217e-14 +120.495 0.884516 0.568673 +120.882 1.77484 1.14108 +121.059 2.66648 1.71434 +120.726 3.54619 2.27992 +120.685 4.43223 2.84957 +121.234 5.34435 3.43599 +120.974 6.22377 4.00139 +120.905 7.11152 4.57214 +121.524 8.04493 5.17225 +120.54 8.87064 5.70312 +121.438 9.83578 6.32363 +121.232 10.718 6.89081 +121.116 11.6075 7.46271 +120.793 12.4756 8.02081 +121.155 13.4167 8.62585 +121.11 14.3172 9.20482 +121.55 15.2802 9.82398 +121.189 16.1455 10.3803 +120.721 16.9928 10.925 +121.131 17.966 11.5507 +121.039 18.8698 12.1318 +120.838 19.7575 12.7025 +121.119 20.7276 13.3262 +120.899 21.6159 13.8973 +120.67 22.5025 14.4673 +121.407 23.5766 15.1579 +121.06 24.4472 15.7176 +120.705 25.3146 16.2753 +121.309 26.3892 16.9662 +120.548 27.1698 17.468 +121.128 28.256 18.1663 +120.734 29.1208 18.7224 +121.291 30.2209 19.4296 +120.973 31.1101 20.0013 +120.741 32.0222 20.5878 +121.165 33.1152 21.2905 +120.911 34.03 21.8786 +121.215 35.1079 22.5716 +120.658 35.9402 23.1067 +121.032 37.0547 23.8232 +121.018 38.0595 24.4693 +120.525 38.9163 25.0201 +120.768 40.0153 25.7267 +120.534 40.9633 26.3361 +121.121 42.2005 27.1316 +120.678 43.088 27.7022 +121.235 44.3411 28.5078 +120.497 45.1267 29.0129 +120.752 46.2885 29.7599 +120.358 47.2087 30.3514 +120.405 48.3077 31.058 +120.618 49.4846 31.8147 +120.816 50.6684 32.5757 +120.197 51.5151 33.1201 +120.279 52.6673 33.8609 +119.816 53.5877 34.4526 +120.046 54.8263 35.249 +119.735 55.8277 35.8928 +119.413 56.8288 36.5364 +120.204 58.3761 37.5312 +119.939 59.427 38.2068 +120.003 60.6517 38.9942 +119.54 61.6182 39.6156 +119.744 62.939 40.4648 +120.268 64.4483 41.4351 +119.93 65.5119 42.119 +120.33 66.9933 43.0714 +119.216 67.6388 43.4864 +118.345 68.416 43.9861 +115.091 67.7865 43.5813 +113.895 68.3356 43.9344 +111.159 67.933 43.6756 +109.566 68.196 43.8446 +106.618 67.5803 43.4487 +105.199 67.8995 43.654 +102.363 67.2708 43.2498 +101.583 67.9673 43.6976 +98.1535 66.8576 42.9841 +97.4562 67.5756 43.4457 +94.6831 66.8284 42.9654 +95.2789 68.4496 44.0077 +94.9425 69.4223 44.633 +95.3421 70.9526 45.6169 +95.7914 72.5503 46.6441 +96.0672 74.0463 47.6059 +95.3685 74.806 48.0943 +95.7494 76.4296 49.1382 +95.888 77.8892 50.0766 +95.7182 79.1206 50.8683 +95.4594 80.2961 51.624 +95.8844 82.0737 52.7669 +95.5155 83.1979 53.4896 +95.3371 84.5057 54.3305 +95.6844 86.31 55.4905 +95.3933 87.5675 56.299 +94.9496 88.7014 57.028 +95.2185 90.5292 58.2031 +94.8005 91.7329 58.977 +95.0792 93.6398 60.203 +94.5541 94.7855 60.9395 +94.9665 96.9043 62.3018 +94.7127 98.3814 63.2514 +94.809 100.258 64.4579 +94.8734 102.143 65.6699 +94.1145 103.169 66.3296 +94.0035 104.931 67.4626 +94.0415 106.902 68.7297 +93.7517 108.541 69.7832 +94.1319 111.005 71.3677 +94.0092 112.933 72.6066 +93.9668 115.005 73.9392 +93.7207 116.876 75.1419 +93.5533 118.892 76.4382 +93.3511 120.914 77.7383 +93.6513 123.652 79.4985 +93.6897 126.118 81.0842 +93.893 128.881 82.8601 +93.4279 130.791 84.0883 +93.5901 133.646 85.9237 +93.1 135.639 87.2054 +93.3635 138.806 89.2415 +93.4228 141.767 91.1451 +93.38 144.666 93.0087 +93.1432 147.351 94.7349 +93.3194 150.79 96.9457 +93.3404 154.092 99.0688 +93.0769 157.029 100.957 +92.8908 160.201 102.997 +92.8612 163.763 105.286 +92.9338 167.64 107.779 +92.0619 169.922 109.247 +90.8243 171.591 110.32 +89.6787 173.486 111.537 +91.939 182.19 117.134 +90.6577 184.101 118.362 +89.2313 185.773 119.437 +87.8137 187.517 120.558 +92.1006 201.818 129.753 +91.229 205.244 131.956 +89.2673 206.301 132.635 +86.3225 205.046 131.828 +84.3873 206.148 132.537 +81.8329 205.724 132.264 +79.6337 206.156 132.542 +77.0709 205.61 132.191 +74.9056 206.087 132.498 +72.2535 205.178 131.913 +70.1221 205.7 132.249 +67.6915 205.316 132.002 +65.5589 205.804 132.316 +63.221 205.626 132.201 +61.0853 206.083 132.495 +58.5014 204.969 131.779 +56.5752 206.128 132.524 +54.0666 205.14 131.889 +51.9363 205.528 132.138 +49.5429 204.83 131.69 +47.5496 205.764 132.29 +45.1397 204.865 131.712 +43.1342 205.768 132.293 +40.6842 204.501 131.478 +38.7175 205.623 132.199 +36.3168 204.401 131.414 +34.3479 205.576 132.169 +32.005 204.486 131.468 +29.9677 205.298 131.99 +27.7008 204.507 131.482 +25.6826 205.539 132.146 +23.3959 204.38 131.4 +21.3357 205.131 131.883 +19.0891 204.022 131.17 +17.0415 204.993 131.795 +14.847 204.187 131.276 +12.7961 205.38 132.043 +10.5777 203.786 131.018 +8.52246 205.285 131.982 +6.35838 204.247 131.314 +4.24617 204.622 131.556 +2.11706 204.056 131.192 +1.38778e-14 204.989 131.792 +-2.11968 204.309 131.354 +-4.24966 204.79 131.664 +-6.34529 203.826 131.044 +-8.50152 204.781 131.658 +-10.5908 204.038 131.18 +-12.749 204.624 131.557 +-14.8226 203.851 131.06 +-16.9787 204.238 131.309 +-19.0891 204.022 131.17 +-21.2573 204.377 131.398 +-23.348 203.962 131.132 +-25.5677 204.619 131.554 +-27.6103 203.839 131.052 +-29.8336 204.379 131.4 +-31.7962 203.152 130.611 +-34.0417 203.744 130.991 +-36.1098 203.237 130.665 +-38.389 203.878 131.077 +-40.3376 202.759 130.358 +-42.7348 203.863 131.068 +-44.757 203.128 130.595 +-47.0535 203.617 130.91 +-49.0046 202.605 130.259 +-51.4581 203.637 130.922 +-53.374 202.512 130.199 +-55.8778 203.588 130.891 +-57.9878 203.17 130.622 +-60.3111 203.471 130.816 +-62.4448 203.102 130.578 +-64.8083 203.448 130.801 +-66.8898 202.884 130.438 +-69.5433 204.002 131.157 +-71.4299 202.838 130.409 +-74.0285 203.674 130.946 +-76.1387 203.123 130.592 +-78.8302 204.077 131.205 +-80.881 203.331 130.725 +-83.2152 203.286 130.697 +-85.3544 202.746 130.35 +-88.0702 203.535 130.857 +-90.1784 202.88 130.436 +-92.889 203.546 130.864 +-95.0338 202.934 130.471 +-97.8098 203.633 130.92 +-99.8038 202.674 130.304 +-102.332 202.785 130.375 +-104.592 202.335 130.086 +-107.419 202.943 130.476 +-109.52 202.147 129.964 +-112.332 202.632 130.276 +-114.387 201.723 129.692 +-117.308 202.312 130.07 +-119.715 201.97 129.851 +-122.714 202.583 130.245 +-124.764 201.599 129.612 +-128.119 202.681 130.308 +-130.169 201.659 129.651 +-135.31 205.331 132.011 +-138.519 205.941 132.403 +-142.05 206.956 133.056 +-143.329 204.673 131.588 +-143.232 200.513 128.914 +-143.165 196.513 126.342 +-145.039 195.241 125.525 +-143.137 188.99 121.505 +-143.403 185.745 119.42 +-144.056 183.072 117.701 +-144.272 179.916 115.672 +-143.584 175.731 112.981 +-143.853 172.809 111.103 +-150.634 177.637 114.206 +-155.234 179.722 115.547 +-158.818 180.537 116.071 +-159.722 178.289 114.626 +-161.017 176.509 113.482 +-162.288 174.725 112.334 +-176.794 186.956 120.198 +-587.471 610.229 392.329 +-592.316 604.4 388.581 +-594.193 595.647 382.954 +-598.791 589.728 379.148 +-600.491 581.058 373.574 +-605.436 575.619 370.078 +-607.035 567.09 364.594 +-612.017 561.807 361.197 +-614.412 554.217 356.318 +-619.45 549.075 353.012 +-621.233 541.12 347.897 +-625.562 535.459 344.257 +-627.699 527.992 339.457 +-632.083 522.48 335.913 +-634.242 515.19 331.226 +-639.49 510.457 328.183 +-641.178 502.933 323.346 +-646.371 498.207 320.308 +-647.651 490.517 315.363 +-653.014 485.967 312.438 +-655.163 479.058 307.996 +-659.5 473.794 304.612 +-661.939 467.205 300.376 +-666.761 462.328 297.24 +-668.035 455.034 292.551 +-678.678 454.093 291.946 +-694.159 456.188 293.293 +-701.721 452.919 291.191 +-703.678 446.03 286.762 +-709.484 441.598 283.913 +-710.802 434.396 279.282 +-716.584 429.943 276.419 +-718.642 423.268 272.128 +-115.46 66.7485 42.914 +-114.573 65.0048 41.7929 +-113.158 63.0006 40.5044 +-113.472 61.9844 39.851 +-111.581 59.7932 38.4423 +-110.585 58.125 37.3698 +-110.758 57.0913 36.7052 +-109.975 55.583 35.7354 +-109.858 54.432 34.9955 +-109.899 53.3712 34.3135 +-109.839 52.2726 33.6071 +-110.115 51.3419 33.0088 +-110.028 50.2508 32.3073 +-109.927 49.1648 31.6091 +-109.812 48.0842 30.9143 +-110.307 47.2762 30.3949 +-110.166 46.2021 29.7043 +-110.731 45.4285 29.2069 +-110.747 44.4329 28.5668 +-111.295 43.6538 28.0659 +-111.561 42.7655 27.4948 +-111.635 41.8081 26.8793 +-112.89 41.2889 26.5455 +-112.486 40.1628 25.8215 +-113.175 39.4322 25.3518 +-113.765 38.663 24.8572 +-115 38.1039 24.4978 +-115.671 37.3488 24.0123 +-116.99 36.7928 23.6549 +-117.556 35.9902 23.1388 +-120.847 35.9964 23.1428 +-124.998 36.2034 23.2759 +-159.508 44.8929 28.8626 +-160.729 43.9284 28.2424 +-161.369 42.7974 27.5153 +-162.381 41.7588 26.8476 +-162.041 40.3742 25.9574 +-163.607 39.4615 25.3706 +-856.475 199.792 128.45 +-860.64 193.977 124.712 +-868.622 188.958 121.485 +-872.393 182.961 117.629 +-381.752 77.0923 49.5642 +-381.174 74.0223 47.5905 +-382.903 71.4036 45.9068 +-381.184 68.153 43.817 +-904.177 154.736 99.4831 +-405.608 66.3185 42.6376 +-405.593 63.2314 40.6528 +-404.165 59.945 38.5399 +-404.969 57.0038 36.6489 +-405.051 53.9632 34.6941 +-405.595 50.9879 32.7812 +-405.119 47.8917 30.7906 +-403.915 44.7296 28.7576 +-403.669 41.6912 26.8041 +-405.576 38.8694 24.9899 +-405.069 35.8116 23.024 +-405.126 32.8128 21.096 +-404.854 29.7938 19.155 +-405.347 26.8341 17.2522 +-405.31 23.8401 15.3273 +-405.542 20.864 13.4139 +-404.445 17.8292 11.4628 +-404.415 14.8523 9.54888 +-404.054 11.8686 7.63057 +-147.649 3.25219 2.0909 +-146.378 2.14917 1.38175 +-146.594 1.0761 0.691845 +120.5 5.77316e-15 2.84217e-14 +120.495 0.88961 0.560671 +121.082 1.78801 1.12688 +120.859 2.67741 1.68742 +120.726 3.56661 2.24783 +120.685 4.45775 2.80947 +120.435 5.33971 3.36531 +120.874 6.25445 3.94183 +120.905 7.15248 4.5078 +120.727 8.03817 5.066 +120.639 8.92918 5.62755 +120.443 9.8113 6.18351 +120.437 10.709 6.74927 +121.116 11.6744 7.35769 +120.892 12.5578 7.91444 +121.254 13.505 8.51144 +120.912 14.3761 9.06041 +121.55 15.3682 9.68573 +120.992 16.212 10.2175 +120.623 17.0767 10.7625 +121.131 18.0694 11.3881 +120.94 18.9631 11.9513 +120.74 19.8552 12.5136 +121.217 20.8639 13.1493 +121.095 21.7756 13.7239 +120.768 22.6504 14.2753 +121.407 23.7124 14.9446 +121.06 24.588 15.4964 +120.705 25.4604 16.0463 +120.922 26.4565 16.674 +120.644 27.3482 17.236 +121.321 28.4639 17.9392 +120.542 29.2419 18.4295 +120.524 30.2027 19.0351 +121.164 31.3388 19.751 +120.741 32.2067 20.298 +121.165 33.306 20.9909 +120.911 34.226 21.5707 +121.215 35.3101 22.254 +120.847 36.2037 22.8171 +120.938 37.2392 23.4697 +121.112 38.3083 24.1436 +120.525 39.1404 24.668 +120.675 40.2147 25.3451 +120.348 41.1358 25.9255 +120.936 42.3789 26.709 +120.678 43.3362 27.3123 +120.227 44.2254 27.8728 +120.497 45.3866 28.6046 +120.752 46.5551 29.3411 +120.267 47.4448 29.9018 +120.405 48.5859 30.6209 +120.708 49.8067 31.3903 +119.921 50.5827 31.8794 +120.286 51.8502 32.6782 +119.569 52.6581 33.1874 +120.611 54.2537 34.193 +119.871 55.0614 34.7021 +120.26 56.3954 35.5428 +120.196 57.531 36.2585 +119.252 58.247 36.7098 +119.853 59.7263 37.6421 +120.089 61.0446 38.4729 +120.137 62.2824 39.2531 +119.575 63.2118 39.8388 +118.328 63.774 40.1931 +119.091 65.4284 41.2358 +118.662 66.4452 41.8767 +121.205 69.1638 43.59 +119.581 69.5288 43.8201 +117.303 69.487 43.7937 +116.337 70.2031 44.245 +113.101 69.5177 43.8131 +111.495 69.7965 43.9888 +108.854 69.3951 43.7358 +107.42 69.7325 43.9485 +103.781 68.5958 43.232 +103.069 69.3594 43.7133 +100.174 68.6269 43.2516 +99.5396 69.4177 43.75 +96.2918 68.3553 43.0805 +95.0507 68.679 43.2845 +94.7161 69.6556 43.9 +95.3421 71.3613 44.9749 +94.528 72.0058 45.3812 +94.9613 73.6154 46.3956 +96.0999 75.8138 47.7812 +95.6043 76.7533 48.3733 +95.8161 78.279 49.3348 +95.7182 79.5763 50.1524 +95.4594 80.7585 50.8975 +95.8844 82.5464 52.0243 +95.585 83.738 52.7753 +95.3371 84.9924 53.5659 +95.8208 86.9306 54.7874 +95.3933 88.0719 55.5067 +95.0165 89.2757 56.2654 +95.1522 90.9872 57.344 +94.8005 92.2612 58.147 +95.0792 94.1791 59.3557 +94.9397 95.7205 60.3272 +95.2209 97.723 61.5893 +94.5239 98.7509 62.2371 +94.8712 100.901 63.5924 +94.2578 102.065 64.3256 +94.6015 104.301 65.7348 +94.485 106.076 66.8539 +93.8036 107.246 67.5908 +94.2808 109.782 69.1893 +94.19 111.714 70.4071 +93.9518 113.514 71.5412 +94.0234 115.737 72.9424 +93.8326 117.689 74.173 +93.3877 119.364 75.2287 +93.8958 122.32 77.0916 +93.7051 124.435 78.4246 +93.4248 126.486 79.717 +93.1615 128.614 81.058 +93.4279 131.544 82.9049 +93.4886 134.27 84.6228 +93.6 137.153 86.4399 +93.4127 139.679 88.032 +93.4228 142.584 89.8625 +93.38 145.499 91.6998 +93.1432 148.2 93.4017 +93.2732 151.583 95.5339 +93.4766 155.205 97.817 +93.0769 157.934 99.5366 +92.9785 161.276 101.643 +92.8612 164.706 103.805 +92.976 168.682 106.311 +91.6887 170.208 107.273 +90.7429 172.425 108.669 +89.5989 174.329 109.87 +91.7046 182.771 115.19 +90.696 185.239 116.746 +88.7068 185.745 117.064 +90.3426 194.028 122.285 +92.1364 203.06 127.977 +90.4936 204.762 129.05 +88.5832 205.899 129.767 +85.6882 204.711 129.018 +83.8338 205.976 129.815 +81.1665 205.223 129.341 +79.0774 205.895 129.764 +76.4695 205.18 129.313 +74.3501 205.737 129.664 +71.9411 205.467 129.494 +69.8465 206.072 129.875 +67.2105 205.03 129.219 +65.1189 205.601 129.578 +62.595 204.763 129.05 +60.674 205.874 129.751 +58.0812 204.669 128.991 +56.1928 205.914 129.776 +53.677 204.834 129.095 +51.5621 205.223 129.341 +49.1243 204.269 128.739 +47.2252 205.538 129.539 +44.9211 205.046 129.229 +42.8216 205.454 129.486 +40.4037 204.26 128.734 +38.4672 205.47 129.496 +36.1837 204.826 129.09 +34.0974 205.253 129.359 +31.8614 204.742 129.037 +29.7239 204.801 129.074 +27.5197 204.34 128.784 +25.4109 204.535 128.907 +23.1947 203.789 128.437 +21.1527 204.542 128.911 +18.9165 203.342 128.155 +16.902 204.486 128.876 +14.7493 204.012 128.577 +12.6915 204.874 129.12 +10.4992 203.438 128.216 +8.46313 205.029 129.218 +6.31126 203.9 128.507 +4.21476 204.277 128.744 +2.10135 203.709 128.386 +1.4988e-14 204.478 128.871 +-2.10222 203.793 128.439 +-4.22174 204.616 128.958 +-6.30864 203.815 128.453 +-8.44219 204.523 128.899 +-10.5123 203.692 128.375 +-12.6653 204.451 128.854 +-14.731 203.759 128.418 +-16.8671 204.064 128.61 +-18.9557 203.763 128.42 +-21.1353 204.374 128.805 +-23.1947 203.789 128.437 +-25.3795 204.283 128.748 +-27.3952 203.415 128.201 +-29.6021 203.961 128.545 +-31.5612 202.812 127.821 +-33.9165 204.163 128.672 +-35.8881 203.152 128.035 +-38.0761 203.381 128.179 +-40.0405 202.425 127.577 +-42.2833 202.871 127.858 +-44.4108 202.717 127.761 +-46.71 203.295 128.125 +-48.6657 202.363 127.538 +-51.1255 203.485 128.245 +-52.9844 202.191 127.43 +-55.4729 203.277 128.114 +-57.4509 202.447 127.591 +-59.8757 203.165 128.043 +-61.7938 202.142 127.399 +-64.3424 203.149 128.033 +-66.4355 202.667 127.729 +-68.8542 203.144 128.03 +-70.9186 202.546 127.654 +-73.473 203.31 128.134 +-75.6275 202.921 127.89 +-78.3049 203.884 128.497 +-80.1194 202.576 127.672 +-82.6943 203.177 128.051 +-84.8203 202.638 127.711 +-87.4546 203.276 128.113 +-89.583 202.702 127.752 +-92.3514 203.534 128.276 +-94.1542 202.214 127.444 +-97.098 203.315 128.138 +-99.0385 202.278 127.485 +-102.02 203.331 128.148 +-103.914 202.182 127.424 +-106.606 202.566 127.666 +-108.774 201.926 127.262 +-111.867 202.955 127.911 +-113.569 201.434 126.952 +-116.914 202.793 127.809 +-118.956 201.847 127.213 +-121.896 202.393 127.556 +-124.026 201.56 127.032 +-126.804 201.757 127.156 +-129.262 201.409 126.936 +-132.886 202.814 127.822 +-137.288 205.286 129.38 +-141.05 206.683 130.26 +-142.872 205.196 129.323 +-143.129 201.523 127.008 +-143.269 197.789 124.655 +-144.509 195.648 123.306 +-143.513 190.578 120.111 +-143.295 186.673 117.649 +-143.448 183.351 115.556 +-143.433 179.9 113.381 +-144.773 178.207 112.314 +-148.327 179.21 112.946 +-158.183 187.613 118.242 +-158.232 184.248 116.121 +-159.472 182.325 114.909 +-160.324 179.991 113.438 +-163.148 179.875 113.365 +-164.566 178.197 112.307 +-588.712 626.135 394.617 +-590.24 616.636 388.63 +-595.687 611.341 385.293 +-597.085 601.995 379.403 +-602.103 596.405 375.88 +-603.706 587.533 370.288 +-608.882 582.229 366.946 +-610.582 573.689 361.563 +-615.8 568.535 358.315 +-617.209 559.945 352.902 +-622.686 555.122 349.862 +-624.498 547.096 344.803 +-629.276 541.74 341.428 +-631.093 533.904 336.489 +-635.934 528.691 333.204 +-637.839 521.096 328.417 +-643.189 516.367 325.437 +-644.176 508.195 320.286 +-649.763 503.706 317.457 +-651.143 496.002 312.602 +-656.609 491.457 309.737 +-658.031 483.926 304.991 +-662.998 479.05 301.918 +-664.773 471.907 297.416 +-669.924 467.197 294.448 +-672.231 460.53 290.246 +-697.617 469.453 295.87 +-699.675 462.462 291.463 +-706.243 458.463 288.943 +-707.272 450.889 284.17 +-713.101 446.406 281.344 +-714.2 438.986 276.668 +-722.69 436.104 274.852 +-725.769 429.927 270.959 +-114.554 66.6059 41.9779 +-114.656 65.4265 41.2346 +-112.575 63.0366 39.7284 +-111.963 61.512 38.7675 +-110.99 59.8194 37.7008 +-110.585 58.4598 36.8439 +-109.905 56.9781 35.9101 +-109.289 55.5545 35.0129 +-109.427 54.5309 34.3677 +-109.899 53.6786 33.8306 +-110.1 52.6986 33.2129 +-109.677 51.4326 32.415 +-110.204 50.6209 31.9035 +-110.192 49.5671 31.2394 +-110.344 48.5954 30.6269 +-110.128 47.4717 29.9187 +-110.614 46.6568 29.4051 +-111.001 45.8014 28.866 +-110.657 44.6524 28.1419 +-111.295 43.9052 27.671 +-111.743 43.0819 27.1521 +-112.549 42.393 26.7179 +-112.615 41.4255 26.1081 +-113.406 40.7248 25.6665 +-113.545 39.7888 25.0766 +-114.229 39.0441 24.6073 +-115.372 38.4474 24.2312 +-116.137 37.7155 23.7699 +-118.114 37.3603 23.5461 +-118.871 36.6026 23.0685 +-124.052 37.1639 23.4223 +-158.847 46.2722 29.1628 +-162.448 45.9837 28.9809 +-161.585 44.4166 27.9933 +-162.037 43.222 27.2404 +-162.763 42.0983 26.5322 +-162.999 40.847 25.7436 +-168.798 40.9479 25.8072 +-859.462 201.644 127.085 +-864.89 196.058 123.564 +-872.301 190.851 120.282 +-384.431 81.0886 51.1055 +-381.752 77.5363 48.8667 +-382.148 74.6389 47.0407 +-381.146 71.4852 45.0531 +-381.771 68.651 43.2668 +-3210.53 552.597 348.271 +-405.019 66.6036 41.9765 +-404.216 63.3797 39.9446 +-402.885 60.0993 37.8772 +-404.969 57.3321 36.1331 +-404.755 54.2343 34.1808 +-404.409 51.1316 32.2253 +-403.93 48.0262 30.2682 +-405.699 45.1859 28.4781 +-404.264 41.9932 26.4659 +-403.092 38.8538 24.4873 +-405.566 36.0621 22.7279 +-406.321 33.099 20.8604 +-405.451 30.0096 18.9133 +-404.748 26.9488 16.9843 +-405.31 23.9774 15.1116 +-404.943 20.9532 13.2056 +-404.445 17.9319 11.3014 +-404.914 14.9563 9.42612 +-3274.5 96.7383 60.9686 +-148.149 3.28198 2.06845 +-146.878 2.16894 1.36696 +-147.094 1.08598 0.684434 +120.4 4.44089e-15 5.68434e-14 +119.495 0.887205 0.548034 +119.982 1.78177 1.10061 +120.159 2.67694 1.65357 +120.626 3.58378 2.21373 +120.685 4.48292 2.76914 +120.535 5.3743 3.31975 +120.974 6.29495 3.88845 +120.905 7.19286 4.44309 +120.727 8.08355 4.99328 +121.436 9.03888 5.5834 +121.339 9.94011 6.14009 +121.232 10.8406 6.69632 +121.116 11.7403 7.25207 +121.785 12.722 7.85848 +121.254 13.5813 8.38926 +121.011 14.4691 8.93771 +121.55 15.455 9.54669 +121.189 16.3302 10.0873 +120.721 17.1872 10.6167 +121.23 18.1862 11.2338 +120.94 19.0701 11.7798 +120.74 19.9673 12.334 +121.021 20.9477 12.9396 +121.095 21.8985 13.5269 +120.768 22.7783 14.0704 +120.335 23.6358 14.6 +121.06 24.7268 15.274 +120.802 25.6247 15.8286 +121.018 26.6271 16.4478 +120.644 27.5026 16.9886 +121.032 28.5563 17.6395 +120.734 29.4539 18.1939 +121.482 30.6149 18.9111 +121.068 31.4908 19.4522 +120.836 32.414 20.0224 +121.165 33.494 20.6895 +120.816 34.3922 21.2444 +121.215 35.5095 21.9345 +121.035 36.4649 22.5247 +120.844 37.4203 23.1149 +120.924 38.465 23.7602 +120.525 39.3613 24.3139 +120.768 40.473 25.0005 +120.256 41.3362 25.5337 +120.751 42.5529 26.2853 +120.494 43.5143 26.8792 +120.96 44.7465 27.6403 +120.588 45.6774 28.2153 +120.934 46.8885 28.9634 +120.267 47.7126 29.4725 +120.585 48.9334 30.2266 +119.899 49.7522 30.7324 +119.921 50.8682 31.4218 +120.197 52.1042 32.1853 +120.367 53.3089 32.9294 +120.434 54.4801 33.6529 +119.871 55.3722 34.2039 +120.26 56.7137 35.0326 +119.761 57.6463 35.6087 +119.252 58.5758 36.1828 +119.68 59.9771 37.0484 +119.489 61.0825 37.7312 +119.455 62.2784 38.4699 +119.66 63.6138 39.2948 +118.75 64.3626 39.7574 +120.181 66.4002 41.016 +119.746 67.4309 41.6526 +119.796 68.7455 42.4647 +120.405 70.4033 43.4887 +118.777 70.7577 43.7077 +117.965 71.5875 44.2202 +114.961 71.0603 43.8946 +113.987 71.7593 44.3264 +110.771 71.0156 43.867 +109.562 71.5246 44.1814 +105.909 70.3972 43.485 +105.183 71.1809 43.9691 +103.05 70.9953 43.8545 +101.623 71.2707 44.0245 +98.8197 70.5459 43.5768 +98.0924 71.2769 44.0284 +95.0934 70.3279 43.4422 +94.5931 71.2004 43.9811 +95.1969 72.9246 45.0462 +95.1088 74.1459 45.8006 +95.5148 75.7776 46.8085 +95.6043 77.1866 47.6789 +95.0967 78.1298 48.2615 +95.1476 79.5485 49.1378 +95.4594 81.2144 50.1669 +95.7442 82.891 51.2025 +95.585 84.2107 52.0177 +95.3371 85.4722 52.7969 +95.207 86.8615 53.6551 +96.0014 89.1331 55.0583 +95.0165 89.7797 55.4577 +95.1522 91.5008 56.5209 +95.391 93.3597 57.6691 +95.1441 94.7754 58.5436 +95.0683 96.391 59.5416 +95.1573 98.2091 60.6647 +94.6498 99.4411 61.4256 +94.9957 101.605 62.7621 +94.8734 103.311 63.8163 +93.9928 104.215 64.3744 +93.9433 106.063 65.5164 +93.863 107.92 66.6631 +94.222 110.333 68.1535 +94.1319 112.275 69.3533 +94.0092 114.224 70.5573 +93.9668 116.32 71.8522 +93.6089 118.071 72.9337 +93.4981 120.18 74.2365 +93.8413 122.939 75.9408 +93.7051 125.138 77.2988 +93.3718 127.128 78.528 +93.684 130.065 80.3421 +93.3249 132.141 81.625 +93.5901 135.174 83.4985 +93.6 137.928 85.1991 +93.5112 140.617 86.8603 +93.4228 143.389 88.5725 +93.3323 146.246 90.3372 +93.1432 149.036 92.0609 +93.2732 152.438 94.1625 +93.3858 155.93 96.3193 +93.1215 158.902 98.155 +92.6278 161.575 99.8062 +92.8182 165.558 102.267 +92.9338 169.557 104.737 +92.7669 173.182 106.976 +90.7023 173.321 107.062 +91.4332 178.903 110.51 +91.0794 182.551 112.763 +89.8923 184.634 114.05 +88.4821 186.32 115.092 +92.0285 198.765 122.779 +92.4589 204.921 126.582 +90.1434 205.121 126.705 +88.0018 205.703 127.064 +85.1875 204.664 126.423 +83.1501 205.449 126.908 +80.5954 204.929 126.587 +78.583 205.763 127.102 +75.9282 204.878 126.555 +73.7946 205.352 126.848 +71.1742 204.424 126.275 +69.3228 205.681 127.051 +66.7561 204.794 126.503 +64.653 205.282 126.804 +62.1193 204.353 126.231 +60.2386 205.551 126.97 +57.661 204.335 126.219 +55.5854 204.838 126.531 +53.1359 203.914 125.96 +51.1879 204.883 126.558 +48.7853 204.006 126.016 +46.8818 205.195 126.751 +44.4108 203.862 125.927 +42.4917 205.021 126.644 +40.0736 203.735 125.849 +38.1544 204.949 126.599 +35.7994 203.795 125.886 +33.8191 204.726 126.461 +31.6004 204.211 126.143 +29.6021 205.112 126.7 +27.3046 203.888 125.944 +25.2018 203.998 126.011 +23.0413 203.584 125.756 +20.9958 204.171 126.119 +18.7674 202.878 125.32 +16.7904 204.283 126.187 +14.6089 203.211 125.525 +12.5973 204.501 126.322 +10.4207 203.057 125.43 +8.3689 203.891 125.946 +6.27461 203.861 125.927 +4.18509 203.984 126.003 +2.08651 203.413 125.65 +1.37668e-14 204.271 126.18 +-2.07953 202.732 125.229 +-4.19207 204.325 126.213 +-6.23535 202.585 125.138 +-8.38635 204.317 126.208 +-10.4338 203.311 125.587 +-12.5711 204.076 126.06 +-14.6333 203.55 125.735 +-16.7555 203.858 125.925 +-18.7674 202.878 125.32 +-20.9261 203.493 125.7 +-22.9551 202.822 125.285 +-25.1182 203.321 125.594 +-27.2141 203.212 125.526 +-29.4071 203.761 125.865 +-31.3785 202.776 125.257 +-33.6799 203.884 125.941 +-35.5038 202.112 124.846 +-37.8415 203.269 125.561 +-39.793 202.308 124.968 +-41.9881 202.592 125.143 +-43.9734 201.854 124.687 +-46.3475 202.856 125.306 +-48.3069 202.004 124.78 +-50.7305 203.053 125.427 +-52.6381 202.004 124.779 +-55.1355 203.18 125.506 +-57.0074 202.019 124.789 +-59.4886 202.991 125.39 +-61.3681 201.883 124.705 +-63.8765 202.816 125.281 +-66.0079 202.499 125.085 +-68.3305 202.737 125.232 +-70.3506 202.059 124.814 +-72.9467 202.993 125.391 +-74.8156 201.876 124.701 +-77.4397 202.769 125.252 +-79.4848 202.106 124.843 +-82.1408 202.956 125.368 +-83.8857 201.537 124.491 +-86.9415 203.224 125.534 +-88.9527 202.412 125.032 +-91.5988 203.014 125.404 +-93.4578 201.851 124.685 +-96.4987 203.202 125.519 +-98.2348 201.77 124.635 +-101.278 202.991 125.389 +-103.037 201.606 124.534 +-105.955 202.466 125.065 +-107.945 201.517 124.479 +-110.726 202.019 124.789 +-112.837 201.266 124.324 +-115.73 201.873 124.699 +-118.198 201.691 124.587 +-120.671 201.489 124.462 +-123.102 201.189 124.276 +-125.959 201.544 124.496 +-128.308 201.05 124.19 +-131.577 201.95 124.746 +-136.352 205.037 126.654 +-139.65 205.786 127.116 +-142.365 205.621 127.014 +-143.387 203.025 125.41 +-143.321 198.978 122.911 +-143.184 194.949 120.422 +-143.566 191.725 118.431 +-144.111 188.797 116.622 +-143.283 184.173 113.765 +-143.88 181.48 112.102 +-150.721 186.575 115.249 +-155.095 188.446 116.405 +-158.532 189.088 116.801 +-158.996 186.183 115.007 +-161.494 185.679 114.696 +-162.55 183.521 113.363 +-586.116 649.856 401.422 +-587.464 639.714 395.157 +-593.132 634.396 391.872 +-594.078 624.15 385.543 +-599.313 618.534 382.074 +-601.392 609.759 376.654 +-606.13 603.784 372.963 +-607.642 594.702 367.352 +-613.122 589.594 364.198 +-614.262 580.404 358.521 +-619.584 575.257 355.341 +-621.028 566.591 349.988 +-626.403 561.589 346.898 +-628.18 553.428 341.857 +-633.201 548.197 338.626 +-634.345 539.685 333.368 +-639.643 534.776 330.336 +-641.363 526.933 325.491 +-646.744 522.152 322.538 +-647.833 513.965 317.481 +-654.039 509.883 314.959 +-655.231 501.933 310.049 +-660.354 497.05 307.032 +-662.409 489.895 302.613 +-666.8 484.517 299.29 +-668.68 477.36 294.87 +-681.653 478.06 295.302 +-696.556 479.888 296.431 +-703.017 475.757 293.88 +-703.851 467.849 288.994 +-709.417 463.122 286.075 +-711.345 456.047 281.704 +-717.603 451.76 279.056 +-719.216 444.565 274.612 +-115.279 69.9571 43.2131 +-114.845 68.4154 42.2608 +-113.153 66.1627 40.8693 +-112.583 64.6064 39.908 +-111.157 62.5942 38.665 +-111.375 61.5349 38.0107 +-110.147 59.6999 36.8772 +-110.161 58.5643 36.1757 +-110.161 57.4331 35.4769 +-110.146 56.3063 34.7809 +-109.772 55.0114 33.981 +-109.985 54.0242 33.3712 +-109.926 52.9123 32.6844 +-109.852 51.8054 32.0007 +-110.116 50.8661 31.4204 +-109.927 49.7271 30.7169 +-110.433 48.9091 30.2116 +-110.307 47.8169 29.5369 +-110.524 46.8823 28.9596 +-111.091 46.0973 28.4747 +-111.018 45.051 27.8284 +-111.204 44.1172 27.2516 +-111.925 43.3957 26.8059 +-113.28 42.9091 26.5053 +-113.349 41.9308 25.901 +-113.959 41.1541 25.4212 +-114.284 40.2739 24.8775 +-114.971 39.5195 24.4115 +-116.395 39.0074 24.0952 +-117.351 38.3248 23.6735 +-119.332 37.9585 23.4473 +-121.22 37.5367 23.1867 +-160.438 48.3358 29.8575 +-160.171 46.9212 28.9837 +-162.069 46.1353 28.4982 +-161.585 44.6674 27.5914 +-161.655 43.3636 26.7861 +-162.476 42.2614 26.1052 +-165.013 41.585 25.6874 +-3149.57 768.357 474.621 +-863.22 203.669 125.808 +-867.595 197.78 122.171 +-875.205 192.568 118.951 +-381.714 80.97 50.0159 +-382.725 78.1726 48.2879 +-381.271 74.888 46.259 +-381.146 71.8887 44.4063 +-386.662 69.923 43.1921 +-405.591 70.2045 43.366 +-406.59 67.2393 41.5343 +-403.823 63.6754 39.3329 +-404.461 60.6749 37.4795 +-404.673 57.6136 35.5884 +-404.458 54.5005 33.6655 +-404.409 51.4202 31.7627 +-404.624 48.3802 29.8849 +-404.41 45.2966 27.9801 +-405.654 42.3754 26.1756 +-404.682 39.2273 24.231 +-405.665 36.2746 22.4072 +-404.131 33.1065 20.4502 +-404.754 30.1271 18.6098 +-405.546 27.1543 16.7735 +-405.31 24.1127 14.8947 +-404.843 21.0663 13.0128 +-405.344 18.0732 11.164 +-403.915 15.0037 9.2679 +-148.21 4.40327 2.71994 +-147.25 3.28047 2.02637 +-146.578 2.17672 1.34458 +-145.894 1.08321 0.669106 +119.5 2.66454e-15 -1.13687e-13 +119.495 0.892113 0.540008 +120.182 1.79461 1.0863 +119.959 2.68726 1.62664 +120.626 3.6036 2.18131 +120.585 4.50399 2.72633 +120.535 5.40403 3.27113 +120.974 6.32977 3.8315 +121.104 7.24459 4.38525 +120.727 8.12827 4.92015 +120.54 9.02173 5.46098 +120.443 9.92127 6.00548 +121.232 10.9005 6.59825 +121.116 11.8052 7.14586 +120.892 12.6985 7.68658 +121.254 13.6564 8.2664 +121.011 14.5492 8.80681 +120.759 15.4393 9.34562 +121.189 16.4205 9.93957 +120.721 17.2823 10.4612 +121.23 18.2868 11.0693 +120.842 19.1599 11.5978 +120.642 20.0614 12.1434 +121.119 21.0807 12.7604 +120.997 22.0019 13.318 +120.768 22.9043 13.8643 +121.212 23.9397 14.491 +120.671 24.7838 15.002 +120.705 25.7458 15.5843 +120.922 26.753 16.194 +120.548 27.6325 16.7264 +121.032 28.7143 17.3812 +120.734 29.6168 17.9275 +121.578 30.8085 18.6488 +121.068 31.665 19.1673 +120.836 32.5933 19.7292 +121.355 33.7321 20.4185 +121.48 34.7725 21.0483 +121.215 35.7059 21.6133 +120.658 36.5524 22.1257 +120.844 37.6273 22.7763 +121.018 38.7078 23.4303 +120.525 39.5791 23.9578 +119.931 40.4146 24.4635 +121.183 41.8853 25.3537 +120.751 42.7883 25.9004 +120.494 43.755 26.4855 +120.96 44.994 27.2355 +120.497 45.8954 27.7811 +120.934 47.1479 28.5393 +120.448 48.0489 29.0847 +120.585 49.2041 29.7839 +120.708 50.3649 30.4866 +119.921 51.1496 30.9616 +120.286 52.4313 31.7374 +120.367 53.6038 32.4471 +119.728 54.4602 32.9655 +119.871 55.6785 33.703 +120.085 56.9446 34.4693 +119.413 57.7967 34.9852 +119.598 59.071 35.7565 +119.68 60.3089 36.5058 +120.003 61.6847 37.3386 +120.222 63.0252 38.1501 +118.388 63.2857 38.3077 +118.75 64.7187 39.1751 +117.078 65.0436 39.3718 +116.577 66.0096 39.9565 +117.723 67.9298 41.1188 +119.993 70.5504 42.7051 +120.17 71.9833 43.5725 +119.105 72.6789 43.9936 +117.55 73.0625 44.2258 +116.72 73.8864 44.7245 +113.007 72.85 44.0971 +111.545 73.2222 44.3224 +108.824 72.7354 44.0277 +107.374 73.0658 44.2277 +105.148 72.8416 44.092 +104.401 73.6239 44.5656 +100.888 72.4208 43.8373 +99.3851 72.6157 43.9553 +97.2821 72.3446 43.7912 +95.7165 72.4445 43.8517 +95.0482 73.2136 44.3172 +95.035 74.4984 45.0949 +94.9297 75.7301 45.8405 +94.6614 76.8481 46.5172 +95.7441 79.0969 47.8785 +95.6469 80.4083 48.6722 +95.9544 82.0872 49.6885 +95.8844 83.4716 50.5265 +94.8903 84.0611 50.8833 +95.3371 85.945 52.0237 +95.0024 87.1547 52.7559 +95.2582 88.9324 53.832 +95.0165 90.2763 54.6455 +95.2185 92.0711 55.7319 +94.8005 93.2953 56.4729 +95.5338 95.6907 57.9229 +94.5541 96.3999 58.3522 +95.1573 98.7524 59.7762 +94.5239 99.8577 60.4453 +94.7467 101.899 61.6808 +94.6272 103.613 62.7185 +93.9928 104.791 63.4316 +93.9433 106.65 64.5569 +94.3389 109.067 66.0197 +94.3983 111.151 67.2812 +94.19 112.966 68.38 +94.1813 115.066 69.6513 +94.0234 117.034 70.8423 +93.7766 118.938 71.9945 +93.6085 120.988 73.2358 +93.8413 123.62 74.8286 +93.7588 125.903 76.2107 +93.3188 127.758 77.3339 +93.7885 130.93 79.254 +93.3249 132.872 80.4295 +93.5901 135.922 82.2756 +93.6 138.691 83.9513 +93.5112 141.395 85.5882 +93.4228 144.182 87.2753 +93.2845 146.979 88.9686 +93.1432 149.861 90.7127 +93.2732 153.282 92.7835 +93.0227 156.183 94.5395 +93.1215 159.781 96.7175 +92.6278 162.469 98.3445 +92.8182 166.474 100.769 +92.976 170.573 103.25 +92.6425 173.906 105.268 +92.1258 177.014 107.149 +91.8319 180.677 109.366 +90.7278 182.851 110.682 +89.1652 184.154 111.471 +87.6954 185.686 112.398 +92.3217 200.501 121.366 +91.9214 204.856 124.002 +89.513 204.813 123.976 +87.3177 205.233 124.231 +84.7536 204.748 123.937 +82.5641 205.131 124.168 +80.1512 204.928 124.046 +77.9959 205.356 124.305 +75.3869 204.543 123.813 +73.2099 204.853 124 +70.7766 204.407 123.73 +68.6061 204.681 123.896 +66.3018 204.526 123.802 +64.1871 204.93 124.047 +61.7437 204.242 123.63 +59.7789 205.11 124.156 +57.2641 204.051 123.515 +55.1805 204.471 123.769 +52.9628 204.374 123.711 +50.876 204.762 123.945 +48.5262 204.044 123.511 +46.5002 204.651 123.878 +44.2468 204.232 123.625 +42.1444 204.471 123.769 +39.826 203.597 123.24 +37.8884 204.646 123.875 +35.5334 203.398 123.12 +33.5825 204.419 123.738 +31.3915 203.983 123.473 +29.2852 204.04 123.508 +27.0895 203.401 123.121 +25.1286 204.531 123.805 +22.9646 204.03 123.502 +20.8564 203.937 123.446 +18.7125 203.403 123.123 +16.6927 204.218 123.616 +14.5479 203.481 123.17 +12.5135 204.265 123.644 +10.3901 203.581 123.231 +8.31306 203.651 123.273 +6.22226 203.279 123.047 +4.15367 203.574 123.226 +2.07342 203.255 123.033 +1.58762e-14 203.861 123.4 +-2.07517 203.426 123.136 +-4.15716 203.745 123.33 +-6.21964 203.193 122.996 +-8.31655 203.737 123.325 +-10.3683 203.154 122.972 +-12.4717 203.581 123.231 +-14.5051 202.883 122.808 +-16.616 203.279 123.048 +-18.6419 202.636 122.658 +-20.7866 203.255 123.033 +-22.8592 203.093 122.935 +-25.0241 203.681 123.291 +-27.0216 202.891 122.813 +-29.1633 203.19 122.994 +-31.1435 202.372 122.498 +-33.3041 202.724 122.712 +-35.3856 202.552 122.608 +-37.5599 202.872 122.801 +-39.4959 201.909 122.218 +-41.6929 202.28 122.443 +-43.7547 201.962 122.25 +-46.0422 202.635 122.658 +-48.0676 202.116 122.344 +-50.3562 202.669 122.679 +-52.4 202.202 122.396 +-54.6631 202.554 122.609 +-56.5638 201.556 122.004 +-59.1015 202.786 122.749 +-61.1178 202.172 122.377 +-63.4365 202.533 122.596 +-65.5001 202.053 122.305 +-67.8344 202.379 122.503 +-69.8962 201.864 122.191 +-72.4789 202.807 122.762 +-74.3044 201.605 122.034 +-76.9143 202.508 122.581 +-78.9454 201.845 122.179 +-81.6199 202.785 122.749 +-83.652 202.087 122.326 +-86.3259 202.901 122.819 +-88.4274 202.33 122.473 +-91.0613 202.94 122.842 +-93.018 202.013 122.281 +-95.7494 202.739 122.721 +-97.7756 201.937 122.235 +-100.418 202.381 122.504 +-102.518 201.702 122.093 +-105.223 202.179 122.382 +-107.281 201.386 121.902 +-110.388 202.516 122.586 +-112.062 200.989 121.662 +-114.897 201.529 121.988 +-117.35 201.353 121.882 +-119.808 201.155 121.762 +-122.317 201.011 121.675 +-125.114 201.3 121.85 +-127.64 201.11 121.735 +-130.414 201.272 121.832 +-133.595 202.003 122.275 +-138.85 205.739 124.537 +-141.502 205.505 124.395 +-143.799 204.735 123.929 +-143.269 200.006 121.067 +-143.502 196.462 118.921 +-143.459 192.642 116.609 +-143.131 188.551 114.132 +-144.773 187.118 113.265 +-148.633 188.512 114.109 +-157.687 196.279 118.81 +-158.479 193.623 117.202 +-159.693 191.527 115.934 +-160.289 188.735 114.244 +-163.219 188.7 114.223 +-163.694 185.835 112.489 +-589.464 657.184 397.802 +-591.22 647.365 391.859 +-596.307 641.32 388.2 +-597.917 631.658 382.351 +-602.621 625.388 378.556 +-603.963 615.754 372.724 +-608.987 609.986 369.233 +-611.709 601.994 364.395 +-616.038 595.675 360.57 +-618.076 587.239 355.464 +-623.097 581.719 352.123 +-624.438 572.853 346.756 +-630.051 567.984 343.808 +-631.444 559.382 338.602 +-636.496 554.098 335.403 +-638.305 546.058 330.536 +-642.995 540.553 327.204 +-645.32 533.117 322.703 +-650.733 528.279 319.775 +-652.514 520.542 315.091 +-656.693 514.784 311.606 +-659.021 507.63 307.275 +-663.725 502.35 304.08 +-665.427 494.85 299.54 +-670.222 489.698 296.421 +-672.664 482.861 292.282 +-699.246 493.111 298.487 +-700.986 485.611 293.947 +-705.913 480.359 290.768 +-708.973 473.86 286.834 +-714.097 468.757 283.745 +-715.657 461.349 279.261 +-721.863 456.956 276.602 +-727.549 452.203 273.725 +-114.139 69.6486 42.1593 +-113.698 68.1069 41.226 +-112.74 66.2864 40.1241 +-111.506 64.3419 38.9471 +-110.573 62.6099 37.8986 +-110.705 61.5026 37.2284 +-110.4 60.1681 36.4206 +-110.246 58.9336 35.6734 +-109.65 57.4826 34.795 +-109.803 56.4415 34.1648 +-110.116 55.4894 33.5885 +-110.245 54.4514 32.9602 +-110.187 53.3314 32.2822 +-109.94 52.1335 31.5571 +-110.116 51.1475 30.9603 +-110.015 50.0424 30.2913 +-110.61 49.2587 29.817 +-110.574 48.198 29.1749 +-110.614 47.1798 28.5586 +-111.72 46.6147 28.2165 +-111.289 45.4106 27.4877 +-111.929 44.6505 27.0275 +-112.835 43.9905 26.6281 +-113.462 43.2161 26.1593 +-113.165 42.0944 25.4804 +-113.406 41.1812 24.9276 +-114.838 40.6932 24.6321 +-115.527 39.9304 24.1704 +-117.884 39.7249 24.046 +-118.191 38.8127 23.4938 +-120.831 38.6479 23.3941 +-125.073 38.944 23.5733 +-160.061 48.489 29.3511 +-160.738 47.348 28.6604 +-161.12 46.1191 27.9165 +-162.44 45.1524 27.3314 +-162.132 43.7322 26.4717 +-164.771 43.0954 26.0862 +-167.793 42.5197 25.7378 +-856.869 210.194 127.233 +-866.4 205.55 124.422 +-871.265 199.716 120.891 +-382.031 84.5214 51.162 +-381.811 81.4386 49.2959 +-382.628 78.5852 47.5687 +-382.148 75.4755 45.6864 +-380.463 72.1568 43.6775 +-904.493 164.471 99.5568 +-406.767 70.7975 42.8547 +-405.019 67.3501 40.768 +-404.511 64.1369 38.8229 +-404.461 61.0106 36.9306 +-405.265 58.0171 35.1185 +-406.335 55.0563 33.3263 +-403.42 51.5782 31.221 +-404.921 48.6836 29.4689 +-405.402 45.6589 27.638 +-404.562 42.4951 25.7229 +-405.576 39.5314 23.9289 +-405.069 36.4216 22.0465 +-405.425 33.3963 20.2152 +-405.352 30.3385 18.3643 +-404.35 27.224 16.479 +-405.809 24.2759 14.6945 +-404.344 21.1567 12.8065 +-404.245 18.1239 10.9706 +-404.914 15.124 9.15474 +-148.509 4.43658 2.68553 +-146.25 3.27623 1.98315 +-145.578 2.17384 1.31585 +-145.794 1.08845 0.658856 +119.6 2.66454e-15 -1.13687e-13 +120.395 0.9037 0.535942 +120.182 1.80434 1.07007 +119.959 2.70183 1.60233 +120.626 3.62313 2.14871 +120.585 4.5284 2.68558 +120.535 5.43332 3.22225 +120.974 6.36408 3.77424 +120.107 7.22385 4.28413 +120.727 8.17232 4.84662 +121.436 9.13815 5.41941 +120.443 9.97504 5.91573 +121.232 10.9596 6.49964 +121.017 11.8595 7.0333 +120.892 12.7673 7.57171 +121.254 13.7304 8.14286 +121.011 14.628 8.6752 +121.649 15.6375 9.27384 +121.189 16.5095 9.79103 +120.82 17.3901 10.3133 +121.328 18.4009 10.9127 +120.94 19.2795 11.4338 +120.74 20.1865 11.9717 +121.217 21.2121 12.5799 +121.095 22.139 13.1296 +120.768 23.0284 13.6571 +121.212 24.0694 14.2745 +120.768 24.9382 14.7897 +120.705 25.8853 15.3514 +121.115 26.941 15.9775 +121.417 27.9827 16.5952 +120.936 28.847 17.1078 +120.831 29.801 17.6736 +120.62 30.7312 18.2253 +121.259 31.8869 18.9106 +120.836 32.77 19.4343 +121.069 33.8352 20.0661 +121.575 34.9883 20.7499 +120.175 35.5914 21.1076 +120.564 36.7218 21.778 +120.844 37.8312 22.4359 +120.269 38.6766 22.9373 +120.525 39.7936 23.5997 +120.768 40.9174 24.2662 +120.348 41.8223 24.8028 +119.92 42.724 25.3376 +121.138 44.2274 26.2292 +119.86 44.8263 26.5844 +120.588 46.179 27.3866 +120.843 47.3678 28.0916 +120.358 48.273 28.6285 +120.405 49.3967 29.2949 +120.708 50.6379 30.031 +120.011 51.4652 30.5216 +120.286 52.7155 31.2631 +120.367 53.8944 31.9622 +119.639 54.715 32.4489 +119.871 55.9803 33.1993 +120.085 57.2532 33.9542 +119.5 58.1524 34.4875 +119.598 59.3911 35.2221 +119.594 60.5921 35.9344 +119.832 61.9305 36.7281 +120.819 63.6814 37.7665 +118.727 63.811 37.8433 +117.906 64.6073 38.3156 +117.33 65.5367 38.8667 +115.577 65.7977 39.0216 +115.817 67.1917 39.8483 +119.746 70.7867 41.9803 +119.678 72.0774 42.7458 +120.001 73.6223 43.6619 +119.168 74.4697 44.1645 +117.604 74.8497 44.3898 +114.844 74.4354 44.1442 +113.688 75.0328 44.4984 +110.794 74.4535 44.1549 +108.548 74.265 44.0431 +106.547 74.2108 44.0109 +105.095 74.5153 44.1916 +102.19 73.7533 43.7396 +100.83 74.0706 43.9278 +98.6405 73.7524 43.7391 +97.1396 73.9201 43.8385 +94.9739 73.5529 43.6208 +94.5927 74.5535 44.2142 +94.8566 76.0819 45.1206 +94.8064 77.383 45.8922 +95.6003 79.4062 47.0921 +95.8609 81.025 48.0521 +95.318 81.9847 48.6213 +95.7442 83.8013 49.6986 +95.7239 85.2592 50.5632 +95.3371 86.4109 51.2462 +95.6162 88.193 52.3032 +95.3258 89.478 53.0652 +95.5519 91.2765 54.1319 +95.1522 92.5057 54.8608 +94.8005 93.801 55.629 +94.9493 95.6201 56.7078 +94.6826 97.054 57.5582 +94.6484 98.757 58.5682 +94.461 100.333 59.5027 +94.1865 101.846 60.3999 +94.5656 104.107 61.741 +93.9928 105.359 62.4837 +93.9433 107.228 63.5921 +93.9225 109.174 64.7459 +94.222 111.544 66.1518 +94.19 113.579 67.3581 +94.1813 115.69 68.6104 +94.0234 117.668 69.7836 +93.7207 119.511 70.8763 +93.4429 121.429 72.0138 +93.6779 124.073 73.5818 +93.7051 126.512 75.0284 +93.4778 128.67 76.3083 +93.684 131.493 77.9824 +93.3764 133.666 79.2709 +93.5393 136.585 81.0022 +93.15 138.772 82.2993 +93.462 142.086 84.2647 +93.4228 144.963 85.971 +93.2845 147.776 87.639 +93.1432 150.673 89.357 +92.9962 153.655 91.1255 +93.0227 157.029 93.1266 +93.0769 160.569 95.2262 +93.0224 164.045 97.2875 +92.8182 167.376 99.2631 +92.8492 171.263 101.568 +92.6425 174.849 103.695 +92.6953 179.074 106.2 +91.792 181.577 107.685 +90.5324 183.447 108.794 +88.706 184.199 109.24 +87.7329 186.771 110.765 +92.3583 201.667 119.6 +91.4913 205.003 121.578 +89.1978 205.198 121.694 +86.7705 205.052 121.607 +84.2529 204.642 121.363 +82.4013 205.836 122.071 +79.8339 205.222 121.708 +77.5015 205.16 121.671 +75.1764 205.077 121.622 +73.0052 205.387 121.805 +70.5494 204.855 121.49 +68.2202 204.632 121.358 +65.901 204.391 121.215 +63.8248 204.877 121.503 +61.5184 204.6 121.338 +59.3918 204.887 121.509 +57.0774 204.488 121.272 +54.8206 204.238 121.124 +52.7247 204.558 121.314 +50.481 204.273 121.145 +48.3866 204.56 121.315 +46.1567 204.24 121.125 +43.937 203.902 120.925 +41.7971 203.885 120.915 +39.6774 203.936 120.945 +37.6225 204.311 121.168 +35.5186 204.416 121.23 +33.485 204.93 121.534 +31.261 204.236 121.123 +29.1877 204.463 121.257 +26.9763 203.648 120.774 +24.9509 204.185 121.093 +22.8592 204.194 121.098 +20.7169 203.672 120.788 +18.6419 203.734 120.825 +16.5462 203.523 120.7 +14.499 203.897 120.922 +12.4141 203.74 120.829 +10.3509 203.912 120.93 +8.27816 203.896 120.921 +6.18823 203.262 120.545 +4.14495 204.247 121.129 +2.06644 203.668 120.786 +1.4877e-14 203.504 120.689 +-2.06644 203.668 120.786 +-4.13098 203.559 120.721 +-6.19347 203.434 120.647 +-8.26071 203.466 120.666 +-10.3247 203.396 120.625 +-12.3879 203.311 120.574 +-14.4563 203.296 120.565 +-16.5323 203.352 120.598 +-18.6262 203.562 120.723 +-20.7082 203.586 120.738 +-22.7921 203.594 120.742 +-24.8673 203.501 120.687 +-26.8631 202.794 120.268 +-28.9927 203.097 120.447 +-31.0522 202.872 120.314 +-33.151 202.886 120.322 +-35.223 202.714 120.22 +-37.294 202.528 120.11 +-39.3308 202.155 119.889 +-41.554 202.699 120.211 +-43.5907 202.295 119.972 +-45.8323 202.805 120.274 +-47.7486 201.863 119.715 +-49.9404 202.086 119.847 +-52.0321 201.871 119.72 +-54.3257 202.394 120.031 +-56.3304 201.812 119.685 +-58.6419 202.3 119.974 +-60.7172 201.935 119.758 +-62.9966 202.219 119.927 +-65.2596 202.402 120.035 +-67.5863 202.731 120.23 +-69.669 202.298 119.973 +-72.0112 202.59 120.147 +-74.0638 202.042 119.821 +-76.6053 202.787 120.264 +-78.6598 202.204 119.918 +-80.9688 202.257 119.949 +-83.3516 202.453 120.065 +-85.6418 202.385 120.025 +-87.7269 201.815 119.687 +-90.3804 202.514 120.102 +-92.7615 202.548 120.122 +-95.0752 202.402 120.035 +-97.5077 202.476 120.079 +-99.7537 202.132 119.875 +-102.399 202.559 120.128 +-104.857 202.568 120.134 +-106.908 201.773 119.662 +-109.712 202.367 120.014 +-112.019 202.001 119.797 +-114.503 201.926 119.753 +-116.948 201.751 119.649 +-119.4 201.556 119.533 +-121.809 201.262 119.359 +-124.739 201.783 119.668 +-126.781 200.839 119.108 +-129.638 201.158 119.298 +-132.413 201.301 119.382 +-138 205.588 121.925 +-140.943 205.804 122.053 +-143.593 205.549 121.902 +-143.374 201.237 119.344 +-143.767 197.892 117.36 +-142.975 193.033 114.479 +-143.403 189.933 112.64 +-148.526 193.01 114.465 +-151.485 193.17 114.56 +-158.537 198.406 117.665 +-158.479 194.672 115.451 +-160.274 193.265 114.616 +-161.406 191.08 113.321 +-164.052 190.692 113.09 +-587.071 670.091 397.4 +-590.925 662.384 392.829 +-594.236 654.195 387.973 +-597.988 646.613 383.476 +-599.931 637.221 377.906 +-604.91 631.167 374.316 +-607.049 622.254 369.03 +-611.65 615.973 365.305 +-613.809 607.334 360.182 +-618.225 601.03 356.443 +-620.953 593.17 351.781 +-625.326 586.965 348.102 +-627.37 578.663 343.178 +-631.29 572.186 339.337 +-634.084 564.764 334.935 +-638.458 558.818 331.409 +-640.78 551.146 326.859 +-644.992 545.17 323.315 +-648.269 538.456 319.333 +-651.676 531.912 315.452 +-654.781 525.182 311.461 +-659.347 519.666 308.19 +-661.696 512.453 303.912 +-666.196 506.954 300.651 +-668.597 499.903 296.469 +-672.731 494.195 293.084 +-686.529 495.485 293.849 +-700.635 496.769 294.61 +-703.861 490.246 290.742 +-707.947 484.355 287.249 +-711.889 478.388 283.71 +-715.684 472.346 280.126 +-718.932 465.972 276.346 +-724.034 460.814 273.287 +-115.689 72.2957 42.8752 +-113.976 69.9262 41.47 +-113.453 68.328 40.5222 +-111.752 66.0611 39.1777 +-111.34 64.5945 38.308 +-111.657 63.5665 37.6983 +-110.285 61.6016 36.533 +-109.641 60.0783 35.6296 +-109.907 59.0707 35.0321 +-109.65 57.7941 34.275 +-109.46 56.5703 33.5492 +-110.116 55.7902 33.0865 +-109.466 54.3594 32.238 +-110.1 53.5781 31.7747 +-109.765 52.3327 31.0361 +-109.94 51.3427 30.4489 +-109.927 50.2732 29.8147 +-109.989 49.2476 29.2064 +-110.396 48.3811 28.6926 +-111.24 47.7042 28.2911 +-111.091 46.6035 27.6384 +-111.921 45.916 27.2306 +-112.382 45.0742 26.7314 +-112.562 44.122 26.1667 +-113.097 43.3104 25.6854 +-113.624 42.4941 25.2013 +-114.143 41.6733 24.7145 +-115.485 41.1441 24.4006 +-116.176 40.3724 23.943 +-118.163 40.0348 23.7428 +-119.218 39.3621 23.3438 +-122.236 39.3092 23.3124 +-159.278 49.8631 29.5715 +-157.327 47.9192 28.4187 +-160.738 47.6046 28.2321 +-162.827 46.8602 27.7906 +-164.343 45.9287 27.2381 +-162.895 44.1762 26.1988 +-163.146 42.9015 25.4429 +-3141.57 800.405 474.683 +-857.926 211.594 125.487 +-868.231 207.101 122.822 +-873.197 201.243 119.348 +-380.385 84.6135 50.1803 +-380.744 81.6511 48.4235 +-382.239 78.9308 46.8102 +-381.076 75.6718 44.8774 +-385.246 73.4602 43.5658 +-3204.7 585.896 347.467 +-407.845 71.3699 42.3262 +-405.707 67.8301 40.2269 +-405.691 64.6726 38.3543 +-404.461 61.3413 36.3786 +-405.659 58.3883 34.6274 +-405.347 55.2202 32.7485 +-405.497 52.1248 30.9128 +-404.723 48.9235 29.0142 +-405.699 45.94 27.2449 +-404.562 42.7254 25.3384 +-406.073 39.7944 23.6002 +-405.069 36.619 21.717 +-404.529 33.503 19.8691 +-404.355 30.428 18.0454 +-404.35 27.3715 16.2328 +-403.714 24.2815 14.4002 +-404.544 21.2819 12.6213 +-404.445 18.2311 10.812 +-405.314 15.221 9.02686 +-148.41 4.45763 2.64361 +-147.15 3.31425 1.96553 +-146.378 2.19763 1.30331 +-146.094 1.09661 0.650346 +120.4 4.44089e-15 5.68434e-14 +120.395 0.908498 0.527768 +119.982 1.8109 1.05199 +119.959 2.71617 1.57789 +120.626 3.64237 2.11594 +120.585 4.55244 2.64462 +120.535 5.46217 3.1731 +120.974 6.39787 3.71667 +120.905 7.31046 4.24682 +120.627 8.20893 4.76876 +121.337 9.17914 5.33238 +121.239 10.0943 5.86403 +121.232 11.0178 6.4005 +121.017 11.9224 6.92602 +120.892 12.8351 7.45622 +121.353 13.8145 8.02519 +120.912 14.6936 8.53584 +121.55 15.7077 9.12496 +121.288 16.6108 9.64958 +120.721 17.4682 10.1477 +121.328 18.4986 10.7463 +121.039 19.3976 11.2685 +120.642 20.2772 11.7795 +121.217 21.3247 12.388 +120.997 22.2386 12.9189 +120.768 23.1507 13.4488 +121.212 24.1972 14.0567 +120.671 25.0504 14.5524 +120.705 26.0228 15.1172 +121.115 27.0841 15.7338 +120.741 27.9746 16.2511 +121.032 29.0232 16.8603 +120.734 29.9355 17.3902 +121.482 31.1154 18.0757 +121.068 32.0057 18.5929 +121.694 33.178 19.2739 +121.165 34.0416 19.7756 +120.627 34.8997 20.2741 +121.121 36.0619 20.9492 +120.658 36.9456 21.4626 +120.938 38.0617 22.1109 +121.112 39.1545 22.7457 +120.339 39.9429 23.2038 +120.768 41.1347 23.8961 +120.348 42.0443 24.4245 +120.659 43.2156 25.105 +120.126 44.0906 25.6133 +120.685 45.3747 26.3592 +120.405 46.3539 26.9281 +120.843 47.6193 27.6632 +120.267 48.4927 28.1705 +120.585 49.7335 28.8913 +120.618 50.8689 29.5509 +119.921 51.6999 30.0337 +120.286 52.9954 30.7863 +120.367 54.1805 31.4747 +119.728 55.0461 31.9775 +119.871 56.2776 32.6929 +119.998 57.5153 33.412 +120.196 58.8017 34.1593 +120.378 60.0956 34.9109 +119.68 60.9577 35.4118 +119.832 62.2593 36.1679 +120.649 63.9292 37.1379 +118.727 64.1498 37.2661 +117.99 64.9968 37.7581 +116.491 65.4137 38.0004 +115.493 66.0993 38.3986 +114.656 66.8716 38.8473 +118.509 70.4279 40.9132 +119.35 72.2618 41.9785 +119.838 73.9128 42.9377 +119.249 74.9158 43.5204 +118.489 75.8129 44.0415 +116.201 75.7153 43.9848 +113.767 75.4838 43.8503 +111.582 75.3812 43.7907 +109.409 75.2513 43.7152 +107.324 75.149 43.6558 +105.172 74.966 43.5495 +103.646 75.2009 43.686 +101.514 74.9693 43.5514 +99.3953 74.7113 43.4016 +97.8885 74.8855 43.5027 +94.751 73.7699 42.8546 +94.9613 75.2414 43.7095 +94.9297 76.5448 44.4667 +94.8064 77.7938 45.1923 +94.3774 78.8067 45.7806 +96.1462 81.6976 47.4601 +95.4594 82.5423 47.9507 +94.9732 83.5678 48.5465 +95.7239 85.7119 49.792 +95.4748 86.995 50.5374 +95.6844 88.7244 51.5421 +95.3258 89.9531 52.2559 +94.9496 91.1827 52.9702 +95.2185 93.0617 54.0617 +94.8661 94.3639 54.8182 +95.0792 96.2593 55.9193 +95.2611 98.1659 57.0269 +94.5212 99.1473 57.597 +94.461 100.865 58.5951 +94.56 102.792 59.7142 +94.5656 104.66 60.7992 +94.0536 105.987 61.5703 +94.5451 108.489 63.0235 +94.3984 110.31 64.0814 +93.8105 111.647 64.8585 +94.2481 114.252 66.3714 +93.493 115.454 67.0702 +94.0234 118.293 68.7193 +93.553 119.93 69.6701 +93.4981 122.145 70.9571 +93.8413 124.95 72.5861 +93.7588 127.257 73.9268 +93.3718 129.206 75.059 +93.8407 132.413 76.9216 +93.3764 134.375 78.0618 +93.5393 137.31 79.7667 +93.05 139.359 80.9567 +93.5112 142.916 83.0232 +93.4713 145.809 84.7039 +93.3323 148.637 86.3465 +93.1432 151.473 87.9941 +93.2732 154.931 90.0029 +93.0227 157.863 91.7062 +93.0769 161.422 93.7737 +93.0224 164.916 95.8036 +92.7321 168.109 97.6586 +92.8492 172.173 100.019 +92.6425 175.777 102.113 +92.736 180.103 104.626 +91.8319 182.621 106.089 +89.8291 182.988 106.302 +88.6295 185.017 107.48 +88.3322 189.046 109.821 +92.285 202.577 117.682 +91.0613 205.123 119.161 +88.8126 205.397 119.32 +86.4285 205.328 119.28 +84.2862 205.81 119.56 +82.1734 206.356 119.877 +79.58 205.657 119.471 +77.2852 205.673 119.48 +74.8757 205.342 119.288 +72.8298 205.982 119.66 +70.2654 205.114 119.155 +68.2202 205.719 119.507 +65.901 205.476 119.366 +63.8507 206.049 119.699 +61.293 204.933 119.05 +59.1257 205.051 119.119 +57.1007 205.658 119.472 +54.8206 205.323 119.277 +52.5515 204.969 119.071 +50.5017 205.442 119.346 +48.247 205.053 119.12 +46.1567 205.325 119.278 +43.937 204.985 119.08 +41.8492 205.223 119.219 +39.6774 205.019 119.1 +37.4973 204.713 118.923 +35.4151 204.903 119.033 +33.332 205.076 119.134 +31.1435 204.549 118.827 +29.0537 204.604 118.859 +26.9537 204.558 118.832 +24.8987 204.839 118.996 +22.8017 204.762 118.951 +20.7082 204.667 118.896 +18.6105 204.471 118.782 +16.5462 204.603 118.859 +14.4502 204.289 118.677 +12.3827 204.304 118.685 +10.3203 204.39 118.735 +8.2642 204.633 118.876 +6.18561 204.255 118.656 +4.12749 204.467 118.779 +2.05859 203.971 118.492 +1.4877e-14 204.671 118.898 +-2.05772 203.885 118.441 +-4.13098 204.64 118.88 +-6.1987 204.687 118.908 +-8.25722 204.46 118.775 +-10.3203 204.39 118.735 +-12.3879 204.391 118.735 +-14.4502 204.289 118.677 +-16.5393 204.517 118.809 +-18.5477 203.781 118.381 +-20.6385 203.978 118.496 +-22.7059 203.9 118.45 +-24.7628 203.721 118.347 +-26.8518 203.785 118.383 +-29.0049 204.261 118.66 +-30.9217 203.091 117.98 +-33.0814 203.535 118.239 +-35.1491 203.363 118.139 +-37.1845 203.005 117.931 +-39.2318 202.717 117.763 +-41.3804 202.924 117.883 +-43.5725 203.284 118.092 +-45.6606 203.117 117.995 +-47.7885 203.104 117.988 +-49.8156 202.651 117.725 +-52.0754 203.112 117.992 +-54.1232 202.711 117.759 +-56.3771 203.051 117.957 +-58.6177 203.29 118.096 +-60.7172 203.007 117.932 +-62.9707 203.21 118.049 +-65.0191 202.726 117.768 +-67.3658 203.142 118.01 +-69.6406 203.29 118.096 +-71.7188 202.839 117.834 +-74.0638 203.114 117.994 +-76.3272 203.124 117.999 +-78.6916 203.36 118.137 +-80.7083 202.677 117.74 +-82.9844 202.631 117.713 +-85.4024 202.89 117.864 +-87.7269 202.886 117.861 +-90.4162 203.67 118.316 +-92.4316 202.899 117.869 +-95.1126 203.557 118.251 +-97.2016 202.911 117.876 +-99.7537 203.205 118.047 +-102.08 202.999 117.927 +-104.491 202.933 117.888 +-106.908 202.845 117.837 +-109.289 202.657 117.728 +-111.632 202.371 117.562 +-114.108 202.298 117.52 +-116.547 202.126 117.42 +-118.991 201.932 117.307 +-121.394 201.64 117.137 +-124.269 202.091 117.399 +-126.781 201.906 117.292 +-129.687 202.302 117.522 +-132.117 201.918 117.299 +-137.5 205.931 119.63 +-140.436 206.152 119.759 +-143.181 206.048 119.698 +-143.792 202.896 117.867 +-143.661 198.796 115.485 +-143.352 194.569 113.029 +-144.003 191.739 111.385 +-149.189 194.899 113.221 +-155.567 199.429 115.853 +-158.537 199.459 115.871 +-158.995 196.343 114.06 +-160.797 194.925 113.236 +-161.935 192.724 111.958 +-165.48 193.372 112.334 +-588.334 675.099 392.181 +-592.812 668.027 388.072 +-595.406 658.963 382.807 +-599.668 651.874 378.689 +-601.441 642.217 373.079 +-605.483 635.119 368.955 +-608.72 627.28 364.402 +-612.494 620.099 360.23 +-614.99 611.734 355.371 +-619.02 604.997 351.457 +-622.091 597.412 347.051 +-626.34 591.038 343.348 +-628.598 582.874 338.605 +-631.91 575.788 334.489 +-635.335 568.883 330.477 +-640.211 563.327 327.25 +-642.548 555.601 322.762 +-646.847 549.641 319.299 +-649.348 542.216 314.986 +-653.055 535.867 311.298 +-656.609 529.445 307.567 +-659.863 522.834 303.726 +-663.257 516.389 299.982 +-667.544 510.677 296.664 +-669.956 503.578 292.54 +-677.065 500.02 290.473 +-696.947 505.674 293.758 +-702.41 500.671 290.852 +-706.037 494.373 287.193 +-709.2 487.788 283.368 +-712.835 481.566 279.753 +-717.271 475.906 276.465 +-719.97 469.122 272.524 +-729.018 466.45 270.972 +-114.8 72.1205 41.8965 +-113.569 70.0464 40.6916 +-112.797 68.2941 39.6736 +-111.257 66.1179 38.4094 +-111.008 64.744 37.6113 +-110.907 63.4744 36.8738 +-110.369 61.9758 36.0032 +-109.725 60.4438 35.1132 +-109.822 59.3385 34.4711 +-109.735 58.1462 33.7785 +-109.975 57.1378 33.1927 +-110.116 56.0864 32.5819 +-109.639 54.7345 31.7966 +-110.1 53.8626 31.29 +-110.377 52.904 30.7332 +-109.852 51.5739 29.9605 +-109.927 50.5401 29.3599 +-110.965 49.9483 29.0161 +-110.841 48.8343 28.369 +-110.614 47.6874 27.7027 +-111.091 46.8509 27.2168 +-111.83 46.1225 26.7937 +-112.473 45.35 26.3449 +-113.199 44.6072 25.9133 +-113.097 43.5403 25.2936 +-114.174 42.9267 24.9371 +-114.787 42.1311 24.4749 +-115.3 41.2964 23.99 +-116.083 40.5543 23.5589 +-119 40.5325 23.5463 +-119.965 39.819 23.1318 +-124.296 40.1841 23.3439 +-160.03 50.3644 29.2579 +-160.438 49.1261 28.5385 +-161.116 47.9699 27.8668 +-162.448 46.9993 27.303 +-161.204 45.2908 26.3105 +-162.323 44.2546 25.7086 +-163.624 43.2557 25.1282 +-3141.57 804.655 467.443 +-857.253 212.551 123.476 +-869.484 208.501 121.123 +-874.356 202.581 117.684 +-381.934 85.4091 49.6161 +-381.52 82.252 47.7821 +-382.336 79.37 46.1079 +-382.148 76.2875 44.3172 +-3198.83 613.203 356.224 +-407.496 74.8955 43.5085 +-405.885 71.4041 41.4803 +-404.725 68.0252 39.5174 +-404.806 64.8742 37.6869 +-404.165 61.6219 35.7976 +-402.306 58.2131 33.8173 +-403.965 55.324 32.139 +-405.299 52.3759 30.4264 +-403.93 49.087 28.5158 +-404.708 46.0711 26.7638 +-403.966 42.889 24.9152 +-406.073 40.0057 23.2402 +-403.776 36.696 21.3176 +-404.429 33.6726 19.5612 +-405.75 30.695 17.8314 +-404.449 27.5237 15.9891 +-405.31 24.507 14.2367 +-404.544 21.3949 12.4288 +-405.044 18.3551 10.6629 +-403.416 15.2301 8.84753 +-147.31 4.4481 2.58401 +-146.55 3.31826 1.92766 +-145.978 2.20326 1.27992 +-146.994 1.10922 0.64437 +120.3 5.77316e-15 5.68434e-14 +120.295 0.912466 0.51912 +120.182 1.82335 1.03734 +120.859 2.75078 1.56497 +120.626 3.66131 2.08299 +120.485 4.57233 2.60129 +120.535 5.49057 3.12369 +120.175 6.38869 3.63465 +120.905 7.34847 4.18069 +120.727 8.25844 4.69839 +120.54 9.16621 5.21484 +121.239 10.1468 5.77272 +121.232 11.0751 6.30084 +121.017 11.9844 6.81818 +120.793 12.8913 7.33409 +121.254 13.8751 7.89381 +120.912 14.77 8.40294 +121.55 15.7894 8.98288 +121.288 16.6971 9.49933 +120.82 17.5734 9.99783 +121.328 18.5948 10.579 +120.94 19.4827 11.0841 +120.642 20.3826 11.5961 +121.119 21.4183 12.1853 +120.997 22.3542 12.7177 +120.768 23.2711 13.2394 +121.309 24.3426 13.849 +120.768 25.2009 14.3373 +120.511 26.116 14.8579 +121.018 27.2032 15.4764 +120.741 28.1201 15.9981 +121.128 29.1974 16.611 +120.831 30.115 17.133 +120.62 31.0551 17.6678 +121.068 32.1721 18.3034 +120.836 33.1153 18.8399 +120.404 34.0038 19.3454 +120.627 35.0812 19.9584 +121.215 36.2777 20.6391 +121.318 37.3408 21.2439 +120.844 38.2299 21.7497 +120.175 39.0537 22.2184 +120.525 40.2129 22.8779 +120.768 41.3486 23.524 +120.534 42.3282 24.0813 +120.751 43.4736 24.733 +120.218 44.3539 25.2338 +120.869 45.6799 25.9882 +120.588 46.6656 26.549 +120.934 47.9029 27.2529 +120.086 48.6714 27.6901 +120.585 49.9921 28.4415 +120.708 51.1715 29.1125 +120.906 52.3954 29.8087 +120.286 53.271 30.3069 +120.367 54.4623 30.9847 +119.816 55.3732 31.5029 +119.959 56.6117 32.2075 +119.298 57.4772 32.6999 +119.326 58.6795 33.3839 +119.512 59.9735 34.1201 +119.594 61.2306 34.8353 +119.746 62.5383 35.5792 +120.052 63.9437 36.3788 +119.066 64.6677 36.7907 +118.581 65.6617 37.3562 +117.749 66.4639 37.8126 +115.994 66.7308 37.9645 +114.407 67.0735 38.1594 +119.333 71.2864 40.5562 +119.269 72.5876 41.2965 +120.163 74.4991 42.384 +120.382 76.0207 43.2496 +119.292 76.7241 43.6498 +117 76.6321 43.5975 +114.878 76.6172 43.589 +112.213 76.2013 43.3524 +110.739 76.5625 43.5579 +107.712 75.8133 43.1317 +106.561 76.3509 43.4376 +104.335 76.0948 43.2918 +102.959 76.4317 43.4835 +100.074 75.613 43.0177 +98.6375 75.8509 43.1531 +96.0886 75.2003 42.7829 +94.6664 75.3978 42.8953 +94.9297 76.9429 43.7743 +94.6614 78.0788 44.4206 +94.5212 79.3372 45.1365 +95.2903 81.3914 46.3052 +95.9544 83.4017 47.4489 +95.0433 84.0644 47.8259 +95.7239 86.1576 49.0167 +95.3371 87.3214 49.6789 +95.6844 89.1858 50.7395 +95.3258 90.4209 51.4422 +95.0165 91.7221 52.1825 +95.2185 93.5456 53.2199 +94.8661 94.8546 53.9646 +95.0792 96.7598 55.0486 +95.0683 98.4765 56.0252 +94.5212 99.6629 56.7002 +94.5239 101.457 57.7208 +94.56 103.326 58.7845 +94.0115 104.588 59.502 +94.0536 106.538 60.6116 +94.0035 108.428 61.6867 +94.4579 110.953 63.1232 +93.8693 112.298 63.8886 +94.19 114.775 65.298 +93.9518 116.624 66.3497 +93.9668 118.837 67.6087 +93.6648 120.698 68.6674 +93.4981 122.781 69.8522 +93.7324 125.453 71.3728 +93.5976 127.699 72.6506 +93.4778 130.026 73.9743 +93.7885 133.027 75.6818 +93.3249 135 76.8043 +93.5393 138.024 78.5247 +93.6 140.912 80.1674 +93.0188 142.902 81.2998 +92.9865 145.807 82.9524 +93.3323 149.41 85.0021 +93.1432 152.261 86.624 +93.3194 155.814 88.6455 +93.0227 158.684 90.2783 +93.0769 162.261 92.3136 +92.9785 165.695 94.2674 +92.8182 169.14 96.2271 +92.5534 172.516 98.1477 +92.6425 176.691 100.523 +92.8173 181.199 103.088 +91.5528 183.012 104.119 +89.2039 182.659 103.918 +88.7826 186.3 105.99 +88.8941 191.238 108.799 +92.285 203.631 115.85 +91.2405 206.596 117.536 +88.4974 205.733 117.045 +86.3943 206.314 117.376 +84.0192 206.224 117.325 +81.8804 206.689 117.59 +79.3579 206.149 117.282 +77.2233 206.577 117.526 +74.6352 205.746 117.053 +72.6251 206.47 117.465 +70.095 205.68 117.016 +67.9997 206.12 117.266 +65.6872 205.874 117.126 +63.6695 206.533 117.501 +61.3431 206.166 117.292 +59.1015 206.033 117.216 +56.6338 205.037 116.65 +54.8206 206.39 117.42 +52.2918 205.016 116.638 +50.2938 205.66 117.004 +48.0875 205.438 116.878 +46.0422 205.88 117.129 +43.7547 205.196 116.74 +41.7103 205.606 116.973 +39.5124 205.228 116.758 +37.4661 205.606 116.973 +35.2525 205.022 116.641 +33.2206 205.454 116.887 +31.0783 205.181 116.732 +28.9927 205.237 116.763 +26.8518 204.844 116.54 +24.8882 205.819 117.094 +22.6963 204.875 116.557 +20.6559 205.212 116.749 +18.5556 204.928 116.587 +16.5183 205.321 116.811 +14.4441 205.265 116.779 +12.3461 204.759 116.491 +10.2811 204.671 116.442 +8.25722 205.523 116.926 +6.16205 204.535 116.364 +4.12924 205.617 116.98 +2.05859 205.032 116.647 +1.26565e-14 205.127 116.701 +-2.05161 204.337 116.251 +-4.11528 204.922 116.584 +-6.17252 204.882 116.562 +-8.2293 204.828 116.531 +-10.2811 204.671 116.442 +-12.3356 204.585 116.393 +-14.3891 204.484 116.335 +-16.4695 204.714 116.466 +-18.5085 204.408 116.292 +-20.6298 204.952 116.601 +-22.6196 204.183 116.164 +-24.7732 204.868 116.553 +-26.7499 204.067 116.098 +-28.8587 204.288 116.223 +-30.9478 204.32 116.242 +-32.9562 203.819 115.956 +-35.0013 203.561 115.81 +-37.1845 204.061 116.094 +-39.0668 202.914 115.442 +-41.3804 203.979 116.048 +-43.4085 203.572 115.816 +-45.5079 203.491 115.77 +-47.5493 203.138 115.569 +-49.8156 203.705 115.892 +-51.9022 203.489 115.769 +-54.1457 203.85 115.974 +-56.1436 203.262 115.64 +-58.3758 203.503 115.777 +-60.4167 203.053 115.521 +-62.7895 203.679 115.877 +-64.832 203.195 115.601 +-67.3658 204.198 116.172 +-69.3849 203.597 115.83 +-71.7188 203.894 115.999 +-73.7932 203.425 115.732 +-76.0491 203.436 115.739 +-78.1521 203.016 115.5 +-80.7409 203.813 115.953 +-82.7841 203.193 115.6 +-85.1972 203.455 115.75 +-87.4468 203.29 115.656 +-90.1295 204.079 116.105 +-92.1018 203.227 115.62 +-94.8129 203.971 116.043 +-96.8189 203.164 115.584 +-99.3629 203.461 115.753 +-101.96 203.816 115.955 +-104.125 203.274 115.646 +-106.535 203.188 115.597 +-108.909 203.002 115.492 +-111.201 202.639 115.285 +-114.108 203.35 115.69 +-116.145 202.477 115.193 +-118.946 202.905 115.437 +-121.024 202.072 114.963 +-123.894 202.528 115.222 +-126.399 202.344 115.118 +-129.25 202.67 115.303 +-131.428 201.909 114.87 +-137.4 206.851 117.682 +-140.081 206.7 117.596 +-143.593 207.715 118.173 +-143.739 203.876 115.989 +-142.866 198.724 113.058 +-143.083 195.214 111.061 +-144.711 193.684 110.191 +-148.913 195.55 111.252 +-157.413 202.844 115.402 +-158.99 201.069 114.392 +-159.34 197.791 112.527 +-161.784 197.142 112.158 +-162.993 194.992 110.935 +-587.328 689.893 392.494 +-589.959 680.484 387.14 +-594.212 673.087 382.932 +-596.145 663.212 377.314 +-600.851 656.556 373.528 +-603.644 647.921 368.615 +-607.518 640.568 364.432 +-610.134 632.007 359.561 +-614.508 625.372 355.787 +-616.761 616.686 350.845 +-621.339 610.422 347.281 +-623.697 602.069 342.529 +-628.096 595.777 338.95 +-630.439 587.621 334.309 +-634.456 581.115 330.608 +-637.28 573.592 326.328 +-641.753 567.62 322.93 +-643.891 559.658 318.4 +-649.058 554.387 315.402 +-650.499 546.002 310.631 +-655.086 540.329 307.404 +-657.926 533.265 303.385 +-662.149 527.374 300.033 +-664.371 519.947 295.808 +-668.892 514.369 292.635 +-671.314 507.224 288.569 +-689.308 511.709 291.121 +-699.475 510.148 290.233 +-704.185 504.547 287.046 +-706.737 497.436 283.001 +-711.704 492.056 279.941 +-714.017 484.873 275.854 +-719.175 479.651 272.883 +-723.723 474.021 269.68 +-115.193 74.0873 42.1497 +-113.667 71.7803 40.8372 +-112.999 70.0574 39.857 +-112.797 68.6492 39.0559 +-111.669 66.7079 37.9514 +-110.759 64.9349 36.9428 +-110.406 63.5167 36.1359 +-110.453 62.3455 35.4696 +-109.894 60.8514 34.6196 +-109.907 59.6932 33.9606 +-109.735 58.4486 33.2526 +-109.803 57.3454 32.6249 +-110.375 56.5104 32.1499 +-109.899 55.1495 31.3757 +-110.013 54.0998 30.7785 +-110.29 53.1369 30.2307 +-109.94 51.8837 29.5176 +-109.75 50.7213 28.8564 +-110.876 50.1679 28.5415 +-110.752 49.0488 27.9048 +-110.703 47.9742 27.2935 +-111.091 47.0946 26.793 +-112.282 46.5495 26.4829 +-112.473 45.5858 25.9347 +-113.199 44.8391 25.5099 +-113.919 44.0849 25.0808 +-114.174 43.1499 24.5488 +-115.339 42.5539 24.2097 +-115.947 41.744 23.749 +-117.474 41.2537 23.47 +-119.093 40.7752 23.1978 +-120.992 40.3687 22.9665 +-143.405 46.6027 26.5132 +-159.466 50.448 28.7008 +-161.757 49.7878 28.3253 +-161.022 48.1911 27.4169 +-161.594 46.9955 26.7367 +-163.677 46.2246 26.2981 +-162.704 44.5893 25.3677 +-167.545 44.5225 25.3297 +-845.2 217.608 123.802 +-855.907 213.321 121.363 +-871.893 210.165 119.567 +-3164.86 737.084 419.341 +-380.966 85.6356 48.7198 +-382.685 82.932 47.1817 +-383.114 79.9451 45.4823 +-381.661 76.5864 43.5715 +-905.319 174.448 99.247 +-406.127 75.032 42.6872 +-406.179 71.8274 40.864 +-404.725 68.3789 38.9021 +-402.938 64.9105 36.9289 +-404.461 61.9876 35.266 +-401.221 58.358 33.201 +-405.644 55.8428 31.7701 +-405.2 52.6354 29.9453 +-404.624 49.4269 28.12 +-403.221 46.1405 26.2502 +-403.371 43.0485 24.4912 +-405.278 40.135 22.8336 +-403.776 36.8868 20.9856 +-405.027 33.8977 19.2851 +-405.451 30.8319 17.5409 +-404.449 27.6668 15.7402 +-405.31 24.6344 14.015 +-404.245 21.4902 12.2262 +-404.245 18.4141 10.4762 +-405.314 15.3814 8.75077 +-146.311 4.4409 2.52651 +-147.15 3.34917 1.90541 +-145.978 2.21472 1.26 +-146.294 1.10967 0.631316 +120.4 4.44089e-15 5.68434e-14 +120.295 0.917111 0.510869 +120.182 1.83263 1.02085 +121.059 2.76936 1.54265 +119.827 3.65556 2.0363 +120.585 4.59941 2.56206 +120.535 5.51852 3.07404 +120.974 6.46388 3.60065 +120.905 7.38588 4.11424 +120.627 8.29362 4.61989 +121.337 9.27385 5.16591 +121.239 10.1985 5.68097 +121.232 11.1315 6.20069 +121.017 12.0455 6.70981 +120.892 12.9675 7.22345 +120.361 13.8431 7.71116 +120.912 14.8452 8.26938 +121.55 15.8697 8.8401 +121.288 16.7821 9.34834 +120.82 17.6628 9.83892 +120.442 18.5529 10.3347 +120.94 19.5819 10.9079 +120.642 20.4864 11.4118 +121.217 21.5447 12.0013 +120.997 22.468 12.5156 +120.768 23.3896 13.029 +121.407 24.4862 13.6398 +120.963 25.37 14.1322 +120.414 26.2278 14.61 +120.922 27.3198 15.2183 +121.031 28.331 15.7815 +121.032 29.3227 16.3339 +120.734 30.2443 16.8473 +120.428 31.1635 17.3594 +121.068 32.3359 18.0124 +120.741 33.2576 18.5259 +121.069 34.3658 19.1432 +121.575 35.537 19.7956 +121.215 36.4624 20.311 +120.281 37.2102 20.7276 +120.657 38.3647 21.3707 +120.924 39.4973 22.0016 +120.339 40.355 22.4794 +120.768 41.5591 23.1501 +120.348 42.4781 23.6621 +120.659 43.6615 24.3212 +120.31 44.6138 24.8517 +120.685 45.8428 25.5363 +120.223 46.7611 26.0478 +120.934 48.1468 26.8197 +120.267 48.993 27.2911 +120.585 50.2466 27.9894 +119.899 51.0873 28.4577 +120.011 52.2723 29.1178 +120.286 53.5422 29.8252 +119.658 54.4168 30.3124 +119.816 55.6551 31.0022 +119.871 56.8582 31.6723 +119.91 58.0663 32.3453 +120.196 59.4084 33.0929 +119.512 60.2788 33.5778 +119.594 61.5423 34.2816 +119.746 62.8566 35.0137 +119.455 63.9497 35.6226 +119.32 65.1357 36.2833 +118.496 65.949 36.7363 +118.672 67.3257 37.5031 +115.326 66.6849 37.1462 +113.661 66.9753 37.308 +119.086 71.5009 39.8289 +119.432 73.0574 40.696 +119.838 74.6754 41.5973 +119.654 75.9455 42.3048 +119.694 77.3745 43.1008 +117.719 77.4954 43.1681 +116.861 78.3368 43.6368 +113.631 77.5573 43.2026 +112.148 77.9311 43.4108 +109.189 77.2438 43.028 +107.796 77.6287 43.2424 +105.101 77.0437 42.9165 +103.643 77.3314 43.0768 +101.357 76.9723 42.8767 +100.06 77.3368 43.0798 +98.0208 77.103 42.9495 +96.3621 77.139 42.9696 +94.2715 76.7983 42.7798 +94.6614 78.4763 43.7145 +94.5932 79.8018 44.4529 +95.005 81.5608 45.4327 +95.6008 83.5174 46.5226 +95.6741 85.0531 47.3781 +95.7934 86.6591 48.2727 +95.2683 87.703 48.8542 +95.207 89.1925 49.6839 +95.3258 90.8812 50.6246 +94.9496 92.1235 51.3166 +95.2185 94.0218 52.374 +94.8005 95.272 53.0704 +95.0792 97.2524 54.1736 +94.4898 98.3759 54.7994 +94.5212 100.17 55.7989 +94.7127 102.177 56.9167 +94.56 103.853 57.8501 +94.6272 105.809 58.9397 +93.9928 107.011 59.6098 +94.485 109.538 61.0171 +94.5173 111.588 62.1593 +93.8693 112.87 62.8731 +94.2481 115.43 64.2995 +93.8945 117.146 65.2552 +93.9668 119.442 66.5341 +93.6089 121.24 67.5356 +93.4981 123.406 68.742 +93.2967 125.506 69.9118 +93.7588 128.57 71.6189 +93.5837 130.836 72.8808 +93.7885 133.704 74.4789 +93.4279 135.837 75.6668 +93.5901 138.802 77.3184 +93 140.721 78.3875 +93.462 144.314 80.3891 +92.938 146.473 81.5915 +93.38 150.247 83.6938 +93.1901 153.113 85.2899 +92.9038 155.91 86.8482 +93.0227 159.492 88.8434 +93.0769 163.087 90.8463 +93.3292 167.167 93.1189 +92.8612 170.081 94.7418 +92.8492 173.949 96.8967 +92.6425 177.591 98.9254 +92.4512 181.403 101.049 +91.2338 183.303 102.107 +88.8913 182.946 101.909 +88.3616 186.361 103.811 +90.3176 195.289 108.784 +92.285 204.667 114.008 +90.7746 206.587 115.077 +88.0772 205.798 114.638 +86.1207 206.708 115.145 +83.4517 205.874 114.68 +81.3269 206.338 114.939 +78.755 205.624 114.541 +76.9452 206.881 115.241 +74.3645 206.043 114.775 +72.3328 206.686 115.133 +69.7826 205.806 114.642 +67.7517 206.414 114.981 +65.1794 205.323 114.373 +63.333 206.487 115.022 +60.8674 205.609 114.533 +58.7628 205.896 114.692 +56.4938 205.572 114.512 +54.4382 205.995 114.747 +52.1619 205.548 114.499 +50.1275 206.023 114.763 +47.8882 205.628 114.543 +45.8323 205.985 114.742 +43.609 205.553 114.502 +41.554 205.877 114.682 +39.4959 206.187 114.854 +37.3096 205.79 114.634 +35.1786 205.635 114.547 +33.1649 206.154 114.836 +30.9608 205.447 114.442 +28.8952 205.588 114.521 +26.7726 205.28 114.349 +24.7942 206.084 114.798 +22.6484 205.483 114.462 +20.5775 205.474 114.457 +18.4222 204.49 113.909 +16.4276 205.233 114.323 +14.3525 205.001 114.194 +12.3408 205.714 114.591 +10.2462 205.014 114.201 +8.1944 204.998 114.192 +6.14111 204.878 114.125 +4.09957 205.179 114.293 +2.04725 204.94 114.16 +1.4988e-14 205.297 114.359 +-2.04201 204.416 113.868 +-4.10132 205.266 114.342 +-6.12279 204.267 113.785 +-8.1944 204.998 114.192 +-10.2462 205.014 114.201 +-12.2937 204.929 114.154 +-14.3403 204.827 114.097 +-16.3997 204.884 114.129 +-18.43 204.578 113.958 +-20.5426 205.125 114.263 +-22.5429 204.526 113.929 +-24.6792 205.129 114.265 +-26.6367 204.238 113.769 +-28.7855 204.807 114.086 +-30.6998 203.714 113.477 +-32.8588 204.251 113.776 +-34.9717 204.425 113.873 +-37.075 204.495 113.912 +-38.9677 203.43 113.319 +-41.1373 203.813 113.532 +-43.1534 203.406 113.305 +-45.3553 203.841 113.548 +-47.4496 203.744 113.494 +-49.5869 203.802 113.526 +-51.6208 203.416 113.311 +-53.9208 204.037 113.657 +-55.9802 203.702 113.47 +-58.1822 203.861 113.559 +-60.2915 203.664 113.449 +-62.5307 203.872 113.565 +-64.5381 203.303 113.248 +-66.8421 203.643 113.437 +-69.0441 203.628 113.429 +-71.4264 204.096 113.69 +-73.4624 203.544 113.382 +-75.8328 203.89 113.575 +-77.93 203.47 113.341 +-80.4804 204.19 113.742 +-82.4503 203.403 113.304 +-84.8552 203.671 113.453 +-87.0616 203.425 113.316 +-89.4128 203.487 113.351 +-91.7719 203.53 113.375 +-94.4758 204.28 113.793 +-96.5128 203.552 113.387 +-99.1676 204.095 113.689 +-101.242 203.412 113.309 +-103.799 203.67 113.452 +-105.747 202.711 112.919 +-108.655 203.561 113.392 +-110.9 203.119 113.145 +-113.713 203.679 113.457 +-115.699 202.725 112.926 +-118.537 203.237 113.212 +-120.655 202.481 112.79 +-123.471 202.864 113.004 +-125.874 202.53 112.817 +-128.911 203.167 113.172 +-131.182 202.557 112.832 +-136.5 206.542 115.052 +-139.066 206.246 114.888 +-142.82 207.649 115.669 +-143.687 204.84 114.104 +-143.449 200.551 111.715 +-142.868 195.913 109.132 +-144.983 195.036 108.643 +-147.864 195.162 108.713 +-157.86 204.456 113.89 +-159.557 202.813 112.975 +-160.544 200.301 111.576 +-163.236 199.923 111.365 +-164.227 197.469 109.998 +-590.243 696.847 388.172 +-591.765 686.041 382.153 +-597.195 679.91 378.738 +-599.1 669.892 373.157 +-603.341 662.634 369.114 +-605.406 653.12 363.815 +-610.126 646.592 360.178 +-612.191 637.366 355.039 +-617.625 631.745 351.908 +-619.32 622.397 346.701 +-623.791 615.951 343.11 +-626.239 607.601 338.458 +-630.934 601.515 335.069 +-632.894 592.913 330.277 +-637.554 586.925 326.941 +-639.641 578.649 322.331 +-644.276 572.753 319.047 +-646.508 564.793 314.613 +-650.841 558.741 311.242 +-653.232 551.087 306.978 +-658.06 545.545 303.891 +-659.754 537.469 299.392 +-664.877 532.242 296.48 +-667.047 524.698 292.278 +-671.663 519.13 289.177 +-675.314 512.843 285.675 +-699.193 521.689 290.602 +-701.62 514.317 286.496 +-707.657 509.615 283.877 +-709.69 502.057 279.666 +-715.226 497.008 276.854 +-716.932 489.332 272.578 +-721.872 483.901 269.553 +-725.321 477.485 265.979 +-113.826 73.5811 40.9877 +-113.343 71.9403 40.0737 +-112.104 69.856 38.9126 +-111.814 68.3974 38.1002 +-110.763 66.5032 37.045 +-111.008 65.412 36.4372 +-110.49 63.8883 35.5884 +-109.866 62.3298 34.7202 +-109.725 61.0674 34.017 +-110.161 60.136 33.4982 +-109.735 58.7461 32.724 +-110.317 57.9073 32.2567 +-109.685 56.4433 31.4412 +-109.206 55.0808 30.6823 +-110.709 54.7194 30.481 +-110.202 53.3651 29.7265 +-110.731 52.5229 29.2574 +-110.28 51.2256 28.5348 +-110.522 50.2619 27.998 +-110.841 49.3381 27.4833 +-111.688 48.6472 27.0985 +-111.54 47.5258 26.4738 +-112.011 46.6736 25.9991 +-112.292 45.7441 25.4813 +-114.109 45.4297 25.3062 +-113.919 44.3094 24.6821 +-114.724 43.5785 24.275 +-114.879 42.5998 23.7298 +-116.316 42.0902 23.4459 +-118.123 41.6928 23.2246 +-120.396 41.431 23.0788 +-122.299 41.0125 22.8456 +-160.452 52.408 29.1934 +-160.312 50.9737 28.3944 +-162.134 50.1579 27.94 +-161.967 48.7208 27.1395 +-162.069 47.3734 26.3889 +-164.533 46.7029 26.0154 +-165.375 45.5519 25.3743 +-167.545 44.7491 24.9271 +-851.432 220.329 122.732 +-856.1 214.455 119.46 +-871.893 211.235 117.667 +-381.058 89.1986 49.6873 +-380.772 86.0279 47.9211 +-382.685 83.3542 46.4317 +-382.725 80.2705 44.7139 +-382.148 77.0746 42.9337 +-3198.64 619.492 345.083 +-405.638 75.3232 41.9581 +-406.179 72.193 40.2145 +-403.841 68.577 38.2002 +-403.528 65.3365 36.3951 +-406.036 62.5459 34.8406 +-403.292 58.9579 32.842 +-404.063 55.9084 31.1433 +-405.002 52.8776 29.455 +-404.921 49.7151 27.6933 +-403.716 46.4324 25.8648 +-403.669 43.2997 24.1197 +-405.278 40.3393 22.4706 +-404.472 37.1385 20.6876 +-404.529 34.0284 18.9552 +-405.352 30.9813 17.2579 +-405.247 27.8624 15.5205 +-403.415 24.644 13.7277 +-404.045 21.5889 12.0259 +-404.245 18.5079 10.3096 +-404.415 15.4253 8.59255 +-148.509 4.53058 2.52372 +-147.549 3.37537 1.88022 +-145.878 2.22447 1.23912 +-146.794 1.11914 0.623408 +120.3 5.77316e-15 5.68434e-14 +120.295 0.921683 0.502574 +120.182 1.84177 1.00428 +120.159 2.76248 1.50632 +120.726 3.70136 2.01827 +120.585 4.62234 2.52046 +120.535 5.54603 3.02413 +120.974 6.4961 3.54219 +120.905 7.4227 4.04744 +120.627 8.33496 4.54488 +121.337 9.32008 5.08204 +121.14 10.2409 5.58414 +121.232 11.187 6.10002 +120.918 12.0955 6.59541 +120.594 13 7.08865 +121.254 14.0152 7.64221 +120.912 14.9192 8.13511 +121.55 15.9489 8.69657 +121.288 16.8658 9.19656 +120.82 17.7509 9.67917 +121.427 18.7978 10.2501 +120.94 19.6795 10.7308 +120.74 20.6053 11.2356 +121.217 21.6521 11.8064 +121.095 22.5983 12.3224 +120.865 23.5251 12.8278 +120.53 24.4305 13.3214 +121.06 25.517 13.9139 +121.19 26.5285 14.4654 +120.728 27.412 14.9472 +121.417 28.5632 15.5749 +121.128 29.4924 16.0816 +120.831 30.4192 16.587 +120.62 31.3687 17.1047 +121.164 32.5227 17.734 +120.645 33.397 18.2107 +121.26 34.5914 18.8619 +120.911 35.519 19.3678 +121.31 36.6728 19.9969 +120.187 37.3663 20.3751 +120.563 38.526 21.0074 +121.018 39.7249 21.6611 +120.339 40.5562 22.1144 +120.768 41.7662 22.7742 +120.256 42.657 23.26 +120.751 43.9127 23.9447 +120.31 44.8362 24.4482 +120.685 46.0713 25.1217 +120.405 47.0656 25.6639 +120.752 48.314 26.3446 +120.267 49.2372 26.848 +120.405 50.4214 27.4937 +120.708 51.6883 28.1846 +119.921 52.4937 28.6237 +120.286 53.8091 29.3409 +120.545 55.0934 30.0413 +119.904 55.9737 30.5213 +119.871 57.1416 31.1581 +119.298 58.0578 31.6577 +120.196 59.7046 32.5556 +120.204 60.9305 33.2241 +119.68 61.8937 33.7493 +119.746 63.17 34.4452 +120.052 64.5896 35.2193 +119.066 65.3209 35.6181 +118.918 66.5136 36.2684 +119.427 68.0916 37.1289 +113.992 66.2419 36.1203 +112.749 66.7691 36.4078 +119.416 72.0562 39.2907 +119.514 73.4719 40.0627 +119.512 74.8437 40.8107 +119.249 76.0661 41.4772 +119.775 77.8124 42.4295 +118.757 78.5686 42.8418 +118.686 79.9565 43.5986 +114.971 78.8628 43.0022 +114.417 79.9046 43.5703 +111.365 79.1759 43.1729 +109.802 79.4676 43.332 +106.25 78.2742 42.6813 +106.229 79.6555 43.4345 +102.867 78.5079 42.8087 +101.409 78.7696 42.9514 +99.2841 78.486 42.7967 +98.4265 79.1844 43.1776 +94.7834 77.6003 42.3138 +94.8064 78.9883 43.0706 +94.5212 80.1386 43.6979 +95.0763 82.0289 44.7286 +94.6109 83.0646 45.2934 +95.7442 85.5397 46.643 +95.3766 86.7121 47.2823 +95.1306 88.0129 47.9916 +95.6844 90.0866 49.1223 +95.3258 91.3342 49.8026 +95.0165 92.6485 50.5193 +95.2185 94.4905 51.5237 +95.391 96.343 52.5338 +95.1441 97.8039 53.3304 +95.1326 99.5388 54.2764 +94.4576 100.602 54.8561 +94.7757 102.755 56.03 +94.062 103.821 56.6112 +94.5656 106.267 57.9449 +94.2363 107.823 58.7937 +94.0637 109.593 59.7588 +93.9225 111.439 60.7651 +93.8105 113.361 61.8136 +94.1319 115.863 63.1775 +94.0665 117.946 64.3135 +93.8535 119.893 65.3749 +93.6089 121.844 66.4391 +93.3877 123.874 67.5459 +93.7868 126.794 69.1382 +93.6513 129.063 70.3752 +93.6367 131.562 71.7382 +93.3182 133.698 72.9025 +93.3764 136.439 74.3971 +93.5393 139.418 76.0219 +93.15 141.651 77.2393 +93.1173 144.498 78.7918 +93.4713 148.048 80.7273 +93.3323 150.919 82.2928 +93.1432 153.798 83.863 +92.9038 156.687 85.4381 +93.0227 160.287 87.4009 +92.9876 163.743 89.2857 +92.9785 167.369 91.2628 +92.8182 170.848 93.16 +92.9338 174.975 95.4101 +92.9328 179.035 97.6242 +92.5733 182.548 99.5396 +90.6357 183.009 99.791 +89.6337 185.394 101.091 +86.0272 182.342 99.4271 +92.0783 200.089 109.104 +92.3583 205.851 112.246 +90.4162 206.797 112.762 +87.6919 205.919 112.284 +85.5392 206.336 112.51 +83.1847 206.238 112.457 +81.1641 206.951 112.846 +78.5329 206.066 112.363 +76.389 206.409 112.551 +74.0638 206.233 112.454 +71.8357 206.289 112.485 +69.5838 206.243 112.46 +67.5312 206.768 112.746 +65.126 206.178 112.424 +62.893 206.075 112.368 +60.642 205.869 112.256 +58.5451 206.156 112.412 +56.2603 205.742 112.187 +54.2132 206.165 112.418 +51.9672 205.802 112.219 +49.7741 205.591 112.104 +47.5293 205.104 111.839 +45.6988 206.408 112.55 +43.3903 205.542 112.078 +41.3109 205.694 112.16 +39.1493 205.396 111.998 +37.2158 206.295 112.488 +34.9274 205.183 111.882 +33.0258 206.313 112.498 +30.8564 205.775 112.205 +28.7977 205.916 112.282 +26.648 205.344 111.969 +24.606 205.539 112.076 +22.4662 204.847 111.699 +20.4903 205.623 112.122 +18.3045 204.197 111.344 +16.4067 205.993 112.324 +14.3037 205.322 111.958 +12.2571 205.337 111.966 +10.1764 204.633 111.582 +8.16997 205.405 112.003 +6.11494 205.021 111.794 +4.08212 205.323 111.958 +2.03328 204.557 111.541 +1.40998e-14 205.355 111.976 +-2.03416 204.645 111.588 +-4.0699 204.709 111.623 +-6.10446 204.67 111.602 +-8.16648 205.317 111.955 +-10.1677 204.458 111.486 +-12.2466 205.161 111.87 +-14.2304 204.271 111.384 +-16.3509 205.293 111.942 +-18.3045 204.197 111.344 +-20.3857 204.574 111.55 +-22.4567 204.759 111.651 +-24.5955 205.452 112.029 +-26.5348 204.471 111.494 +-28.5905 204.434 111.474 +-30.5953 204.034 111.255 +-32.7335 204.487 111.502 +-34.7352 204.055 111.267 +-36.9185 204.647 111.59 +-38.8192 203.664 111.054 +-40.9983 204.137 111.312 +-43.0076 203.729 111.089 +-45.0691 203.564 110.999 +-47.1106 203.297 110.854 +-49.2959 203.616 111.027 +-51.3611 203.401 110.911 +-53.5384 203.599 111.018 +-55.63 203.437 110.93 +-57.7951 203.515 110.972 +-59.7907 202.979 110.68 +-62.2719 204.04 111.259 +-64.351 203.724 111.086 +-66.5113 203.645 111.043 +-68.6465 203.465 110.945 +-70.9001 203.603 111.02 +-73.1617 203.721 111.085 +-75.4929 203.988 111.23 +-77.581 203.568 111.001 +-79.8944 203.713 111.08 +-81.8494 202.928 110.652 +-84.479 203.778 111.116 +-86.5012 203.123 110.759 +-89.0903 203.764 111.108 +-91.1122 203.074 110.732 +-93.9888 204.24 111.368 +-95.8239 203.106 110.75 +-98.8159 204.386 111.447 +-100.565 203.057 110.723 +-103.23 203.562 110.998 +-105.332 202.923 110.65 +-108.317 203.939 111.204 +-110.168 202.784 110.574 +-112.881 203.194 110.798 +-114.851 202.243 110.279 +-117.72 202.842 110.606 +-120.239 202.79 110.577 +-123.002 203.1 110.746 +-125.063 202.228 110.27 +-127.941 202.644 110.497 +-130.246 202.114 110.209 +-135.45 205.975 112.314 +-138.659 206.669 112.692 +-141.687 207.029 112.889 +-143.426 205.487 112.048 +-143.396 201.476 109.861 +-143.083 197.186 107.521 +-144.983 196.008 106.879 +-147.478 195.622 106.668 +-154.114 200.599 109.382 +-160.236 204.692 111.614 +-161.347 202.306 110.313 +-166.197 204.565 111.545 +-588.314 710.924 387.652 +-593.038 703.637 383.678 +-594.894 693.107 377.936 +-600.3 686.851 374.525 +-601.44 675.861 368.533 +-606.205 669.097 364.845 +-608.301 659.514 359.619 +-613.625 653.541 356.362 +-615.148 643.637 350.962 +-620.288 637.631 347.687 +-622.469 628.679 342.806 +-626.64 621.848 339.081 +-628.715 613.044 334.28 +-633.298 606.78 330.864 +-635.691 598.501 326.35 +-640.583 592.652 323.161 +-642.559 584.185 318.544 +-647.71 578.677 315.54 +-648.912 569.719 310.656 +-654.122 564.356 307.732 +-656.398 556.518 303.457 +-661.179 550.863 300.374 +-662.533 542.423 295.772 +-667.9 537.327 292.993 +-669.722 529.429 288.686 +-680.726 528.756 288.319 +-697.276 532.161 290.176 +-703.528 527.539 287.656 +-704.991 519.364 283.198 +-709.972 513.832 280.181 +-712.798 506.77 276.331 +-718.2 501.563 273.492 +-719.533 493.554 269.125 +-115.195 77.6049 42.3163 +-114.764 75.9267 41.4012 +-113.746 73.8956 40.2937 +-113.262 72.2473 39.3949 +-111.371 69.7454 38.0307 +-110.913 68.1843 37.1795 +-110.598 66.7353 36.3893 +-110.511 65.4435 35.685 +-109.99 63.916 34.852 +-109.95 62.6883 34.1826 +-109.472 61.2303 33.3876 +-109.907 60.2961 32.8782 +-109.479 58.9013 32.1176 +-110.146 58.1055 31.6837 +-110.116 56.9475 31.0523 +-109.639 55.5749 30.3038 +-109.752 54.5166 29.7267 +-110.202 53.6311 29.2439 +-110.731 52.7847 28.7824 +-110.545 51.6046 28.1389 +-110.965 50.7152 27.6539 +-111.554 49.9029 27.211 +-111.688 48.8897 26.6585 +-111.99 47.9551 26.1489 +-113.365 47.4733 25.8862 +-113.742 46.5658 25.3913 +-114.382 45.7654 24.9549 +-113.919 44.5302 24.2814 +-114.541 43.7258 23.8427 +-115.431 43.018 23.4568 +-116.963 42.5352 23.1935 +-118.958 42.1965 23.0089 +-122.908 42.5063 23.1778 +-130.608 44.0172 24.0016 +-161.201 52.9153 28.8536 +-162.379 51.8884 28.2937 +-161.757 50.2907 27.4225 +-162.818 49.2209 26.8391 +-165.008 48.4731 26.4313 +-163.867 46.7458 25.4895 +-164.23 45.4621 24.7895 +-3133.33 841.047 458.605 +-874.156 227.336 123.962 +-856.196 215.548 117.534 +-384.585 93.6389 51.0593 +-380.382 89.4844 48.7939 +-382.225 86.7864 47.3228 +-382.102 83.6422 45.6083 +-381.363 80.3837 43.8315 +-383.122 77.6563 42.3443 +-409.556 79.7156 43.4673 +-406.029 75.7716 41.3166 +-405.885 72.5004 39.5329 +-404.725 69.0696 37.6622 +-405.003 65.9022 35.9351 +-405.15 62.7205 34.2002 +-404.377 59.4111 32.3956 +-401.001 55.7614 30.4055 +-404.804 53.1152 28.9626 +-403.93 49.8407 27.1771 +-405.699 46.893 25.5698 +-406.745 43.8472 23.9089 +-403.092 40.3216 21.9865 +-403.279 37.2135 20.2917 +-405.027 34.2401 18.6704 +-405.352 31.1357 16.9777 +-405.247 28.0013 15.2685 +-404.612 24.8403 13.5449 +-404.045 21.6965 11.8306 +-405.044 18.6369 10.1623 +-406.713 15.5904 8.50111 +-148.21 4.54397 2.47773 +-145.95 3.35542 1.82964 +-145.878 2.23556 1.219 +-146.794 1.12472 0.613286 +120.3 5.77316e-15 5.68434e-14 +120.295 0.926179 0.494239 +120.182 1.85075 0.987621 +119.959 2.77133 1.47887 +119.827 3.6917 1.97001 +120.585 4.64489 2.47866 +120.535 5.57309 2.97398 +121.174 6.53856 3.48919 +120.805 7.45276 3.97703 +120.627 8.37562 4.4695 +121.337 9.36554 4.99775 +121.14 10.2908 5.49152 +121.133 11.2324 5.99395 +121.613 12.2245 6.52336 +120.793 13.085 6.98257 +121.254 14.0836 7.51546 +121.011 15.0043 8.00678 +120.66 15.9092 8.48967 +121.288 16.9481 9.04403 +120.82 17.8375 9.51864 +120.442 18.7364 9.99833 +121.039 19.7915 10.5614 +120.74 20.7058 11.0493 +120.433 21.617 11.5355 +120.997 22.6902 12.1082 +120.768 23.6208 12.6048 +120.53 24.5497 13.1005 +121.06 25.6414 13.6831 +120.414 26.4872 14.1344 +120.825 27.5678 14.7111 +120.741 28.5427 15.2313 +121.321 29.6833 15.84 +121.023 30.6162 16.3378 +121.482 31.7473 16.9414 +121.068 32.6556 17.4261 +120.836 33.613 17.9369 +121.26 34.7601 18.5491 +121.67 35.9163 19.1661 +121.215 36.8229 19.6499 +121.224 37.8726 20.21 +120.657 38.7441 20.6751 +120.081 39.6097 21.137 +120.339 40.754 21.7476 +120.768 41.97 22.3965 +120.256 42.8651 22.8742 +120.566 44.0594 23.5115 +120.31 45.0549 24.0428 +120.869 46.3664 24.7426 +120.223 47.2234 25.1999 +120.57 48.4765 25.8686 +120.086 49.4029 26.363 +120.405 50.6674 27.0378 +119.899 51.5925 27.5314 +120.1 52.8285 28.191 +120.197 54.0315 28.8329 +119.569 54.9141 29.3039 +119.816 56.2054 29.993 +120.046 57.5045 30.6863 +120.085 58.726 31.3381 +119.413 59.6048 31.807 +119.512 60.8748 32.4847 +119.766 62.2403 33.2134 +119.746 63.4781 33.874 +119.114 64.3976 34.3646 +119.829 66.0603 35.2519 +119.424 67.1225 35.8187 +118.923 68.1355 36.3593 +113.242 66.1268 35.2874 +116.148 69.1175 36.8833 +119.251 72.3078 38.5857 +119.187 73.628 39.2902 +119.268 75.0551 40.0518 +118.845 76.1779 40.651 +118.89 77.6148 41.4177 +119.795 79.6422 42.4996 +119.796 81.0985 43.2767 +117.414 80.9314 43.1876 +116.843 81.997 43.7562 +112.764 80.5615 42.9902 +111.963 81.4266 43.4518 +109.085 80.7544 43.0931 +108.206 81.5339 43.5091 +104.603 80.2222 42.8091 +103.805 81.0245 43.2372 +100.622 79.9315 42.654 +100.491 81.2395 43.352 +97.6357 80.3255 42.8642 +96.1846 80.5275 42.972 +94.7371 80.7134 43.0712 +94.2204 81.687 43.5908 +94.823 83.657 44.642 +94.6928 85.0131 45.3657 +95.5155 87.262 46.5658 +95.819 89.0819 47.5369 +95.548 90.3973 48.2389 +95.3258 91.7798 48.9766 +94.9496 93.0343 49.6461 +95.1522 94.8853 50.6338 +94.9317 96.3463 51.4134 +95.0142 98.147 52.3743 +95.1968 100.091 53.412 +94.5212 101.161 53.9826 +94.7757 103.256 55.1007 +94.56 104.879 55.967 +94.5656 106.785 56.9839 +94.2363 108.349 57.8186 +94.2442 110.339 58.8802 +93.9225 111.982 59.7573 +93.8105 113.914 60.7884 +94.0739 116.356 62.0915 +94.0665 118.521 63.2468 +93.9668 120.623 64.3683 +93.6648 122.512 65.3762 +93.5533 124.7 66.5438 +93.2422 126.673 67.5965 +93.7588 129.842 69.2876 +93.4778 131.98 70.4288 +93.7885 135.026 72.0544 +93.3764 137.104 73.1632 +93.5901 140.174 74.8015 +93.15 142.342 75.9583 +93.5112 145.818 77.8132 +93.4713 148.77 79.3885 +93.3323 151.655 80.9279 +93.1432 154.549 82.4721 +93.3194 158.155 84.3968 +93.0227 161.069 85.9513 +92.9876 164.542 87.8048 +92.584 167.472 89.3683 +92.8612 171.762 91.6578 +92.9338 175.828 93.8277 +92.6425 179.347 95.7052 +92.3292 182.955 97.6307 +90.6357 183.902 98.1359 +89.6337 186.298 99.4146 +85.1471 181.357 96.7777 +92.378 201.72 107.644 +91.8452 205.707 109.772 +90.022 206.899 110.408 +87.2717 205.932 109.892 +85.1288 206.347 110.113 +82.5838 205.748 109.794 +80.6432 206.626 110.262 +78.1839 206.151 110.009 +76.1418 206.745 110.326 +73.4925 205.64 109.736 +71.5726 206.536 110.214 +69.0441 205.641 109.737 +67.228 206.844 110.378 +64.7251 205.908 109.879 +62.6083 206.142 110.004 +60.1663 205.25 109.528 +58.3274 206.39 110.136 +55.8401 205.202 109.502 +53.8083 205.624 109.727 +51.5559 205.169 109.485 +49.5869 205.817 109.83 +47.4296 205.672 109.753 +45.4125 206.116 109.99 +43.1898 205.59 109.709 +41.0331 205.307 109.558 +39.0338 205.789 109.816 +36.9655 205.908 109.879 +34.8239 205.573 109.7 +32.7613 205.659 109.746 +30.6214 205.204 109.503 +28.5784 205.344 109.578 +26.5348 205.468 109.644 +24.5015 205.665 109.749 +22.38 205.055 109.424 +20.4119 205.835 109.84 +18.2182 204.225 108.981 +16.2533 205.062 109.427 +14.2426 205.444 109.631 +12.21 205.545 109.685 +10.1328 204.75 109.261 +8.13507 205.526 109.675 +6.07567 204.698 109.233 +4.06816 205.619 109.725 +2.01932 204.143 108.937 +1.4766e-14 205.21 109.507 +-2.02107 204.32 109.031 +-4.05594 205.003 109.396 +-6.08352 204.963 109.375 +-8.10715 204.82 109.298 +-10.1371 204.838 109.308 +-12.1681 204.84 109.309 +-14.1999 204.827 109.302 +-16.2881 205.502 109.662 +-18.2417 204.489 109.122 +-20.3334 205.044 109.418 +-22.2746 204.089 108.909 +-24.4074 204.875 109.328 +-26.3537 204.066 108.896 +-28.4565 204.469 109.111 +-30.3865 203.629 108.663 +-32.6361 204.873 109.327 +-34.4987 203.654 108.676 +-36.637 204.078 108.902 +-38.6707 203.875 108.794 +-40.8594 204.438 109.095 +-42.6796 203.161 108.413 +-44.9164 203.864 108.789 +-46.9511 203.597 108.646 +-49.1503 204.005 108.863 +-50.9499 202.757 108.198 +-53.4034 204.076 108.902 +-55.4666 203.829 108.77 +-57.65 203.993 108.857 +-59.6405 203.457 108.571 +-61.8578 203.671 108.685 +-63.9501 203.443 108.564 +-66.3183 204.045 108.885 +-68.1921 203.104 108.383 +-70.6955 204.005 108.863 +-72.7407 203.537 108.614 +-74.9366 203.473 108.58 +-77.0416 203.139 108.402 +-79.7316 204.29 109.015 +-81.6158 203.336 108.507 +-84.1712 204.026 108.875 +-86.186 203.37 108.525 +-88.481 203.358 108.518 +-90.8557 203.49 108.589 +-93.5393 204.255 108.997 +-95.2116 202.793 108.217 +-97.8391 203.352 108.515 +-100.126 203.158 108.411 +-102.864 203.83 108.77 +-105.083 203.431 108.557 +-107.472 203.334 108.506 +-109.737 202.977 108.315 +-112.135 202.838 108.241 +-114.539 202.678 108.155 +-117.357 203.203 108.435 +-119.408 202.37 107.991 +-122.25 202.845 108.245 +-124.682 202.594 108.111 +-127.408 202.784 108.212 +-129.409 201.795 107.684 +-133.5 204 108.861 +-137.746 206.309 110.093 +-141.12 207.207 110.572 +-143.53 206.639 110.269 +-143.502 202.608 108.118 +-143.513 198.743 106.056 +-144.003 195.632 104.396 +-146.043 194.664 103.879 +-150.479 196.823 105.031 +-161.822 207.727 110.85 +-167.255 210.737 112.456 +-177.056 218.994 116.862 +-591.9 718.746 383.546 +-596.786 711.538 379.699 +-598.866 701.138 374.15 +-603.526 693.912 370.293 +-605.38 683.607 364.795 +-610.438 677.057 361.299 +-611.888 666.64 355.74 +-617.314 660.679 352.559 +-618.94 650.764 347.268 +-623.535 644.096 343.71 +-625.093 634.41 338.541 +-630.483 628.714 335.502 +-631.927 619.181 330.415 +-637.419 613.707 327.494 +-638.691 604.26 322.452 +-644.851 599.512 319.919 +-646.241 590.399 315.056 +-651.425 584.835 312.086 +-652.801 575.929 307.334 +-658.045 570.511 304.443 +-659.922 562.236 300.027 +-665.241 556.952 297.207 +-666.629 548.44 292.665 +-672.028 543.286 289.914 +-673.438 534.963 285.473 +-700.274 546.594 291.68 +-701.276 537.825 287 +-707.102 532.806 284.322 +-709.357 525.13 280.226 +-714.37 519.536 277.241 +-716.373 511.797 273.111 +-724.069 508.129 271.154 +-723.079 498.407 265.966 +-114.798 77.7149 41.4711 +-114.045 75.8193 40.4596 +-112.058 73.1541 39.0374 +-111.806 71.6663 38.2434 +-110.883 69.7781 37.2358 +-110.258 68.1122 36.3468 +-110.021 66.711 35.5991 +-109.93 65.4175 34.9088 +-110.156 64.3252 34.326 +-110.034 63.0421 33.6413 +-109.978 61.8134 32.9856 +-110.331 60.8241 32.4577 +-109.991 59.4652 31.7325 +-109.889 58.2527 31.0855 +-109.858 57.091 30.4655 +-110.158 56.1107 29.9425 +-110.709 55.2605 29.4887 +-110.027 53.8072 28.7133 +-110.731 53.0422 28.305 +-111.075 52.1049 27.8048 +-110.699 50.8403 27.13 +-111.465 50.1063 26.7383 +-111.509 49.0494 26.1743 +-112.619 48.4598 25.8597 +-113.274 47.6668 25.4365 +-113.56 46.7184 24.9304 +-114.2 45.9155 24.502 +-114.467 44.9627 23.9936 +-116.467 44.6778 23.8415 +-116.996 43.8139 23.3805 +-119.458 43.6543 23.2953 +-119.792 42.6999 22.786 +-147.936 51.4116 27.4349 +-161.696 54.7602 29.2218 +-161.67 53.3279 28.4575 +-161.063 51.7191 27.599 +-160.815 50.2416 26.8105 +-161.967 49.2025 26.256 +-163.586 48.2897 25.7689 +-163.106 46.7557 24.9503 +-883.905 245.876 131.207 +-887.929 239.5 127.805 +-894.771 233.832 124.78 +-858.311 217.135 115.87 +-382.369 93.5531 49.9229 +-380.768 90.0118 48.0332 +-383.677 87.5411 46.7147 +-381.423 83.9009 44.7722 +-383.114 81.1466 43.3024 +-909.964 185.343 98.9052 +-405.553 79.3216 42.3285 +-404.855 75.9211 40.5139 +-405.493 72.7838 38.8397 +-405.608 69.5581 37.1184 +-405.396 66.288 35.3734 +-404.165 62.8733 33.5512 +-403.292 59.5409 31.7729 +-401.199 56.061 29.9159 +-405.299 53.4395 28.517 +-405.119 50.2312 26.8049 +-404.41 46.9721 25.0658 +-403.371 43.6955 23.3173 +-404.98 40.7081 21.7232 +-405.964 37.644 20.088 +-405.425 34.441 18.3788 +-404.754 31.2415 16.6714 +-404.649 28.0964 14.9931 +-405.31 25.0046 13.3433 +-403.746 21.7862 11.6258 +-405.144 18.7324 9.99621 +-404.415 15.5779 8.31284 +-150.109 4.62463 2.46785 +-148.149 3.42259 1.8264 +-146.278 2.25262 1.20207 +-146.694 1.12943 0.6027 +120.4 4.44089e-15 5.68434e-14 +120.295 0.9306 0.485863 +120.182 1.85959 0.970884 +120.159 2.7892 1.45623 +120.726 3.73717 1.95116 +120.685 4.67093 2.43867 +120.535 5.59969 2.92358 +120.375 6.52648 3.40745 +120.805 7.48834 3.90963 +120.727 8.42256 4.39739 +120.54 9.34838 4.88075 +120.343 10.2721 5.36301 +121.133 11.286 5.89237 +121.613 12.2828 6.41281 +120.793 13.1475 6.86424 +121.254 14.1508 7.3881 +121.011 15.0759 7.87109 +120.66 15.9852 8.3458 +121.189 17.0151 8.8835 +120.82 17.9226 9.35733 +120.442 18.8258 9.82889 +120.94 19.8699 10.374 +120.74 20.8047 10.862 +120.433 21.7202 11.34 +120.997 22.7985 11.903 +120.865 23.7527 12.4012 +120.432 24.647 12.8681 +120.963 25.7432 13.4404 +121.384 26.828 14.0068 +120.922 27.7217 14.4734 +120.548 28.633 14.9492 +121.128 29.7777 15.5468 +120.927 30.738 16.0482 +120.524 31.6471 16.5228 +121.259 32.8633 17.1578 +120.741 33.7468 17.6191 +121.165 34.8987 18.2205 +120.816 35.8346 18.7091 +121.026 36.941 19.2867 +121.224 38.0534 19.8675 +120.469 38.8684 20.293 +120.737 40.0161 20.8923 +120.152 40.8851 21.346 +120.675 42.1378 22 +120.348 43.1029 22.5039 +120.751 44.3375 23.1485 +120.494 45.3392 23.6715 +120.96 46.6231 24.3418 +120.223 47.4488 24.7729 +120.479 48.6712 25.411 +120.901 49.9759 26.0923 +120.405 50.9093 26.5796 +119.809 51.7999 27.0445 +120.011 53.0411 27.6926 +120.286 54.3297 28.3653 +119.569 55.1762 28.8073 +119.816 56.4736 29.4847 +119.871 57.6945 30.1221 +120.173 59.0492 30.8294 +120.196 60.2822 31.4731 +119.598 61.2097 31.9574 +119.68 62.4925 32.6271 +119.746 63.7811 33.2999 +119.029 64.6587 33.7581 +119.999 66.4696 34.7035 +119.256 67.3477 35.162 +118.42 68.171 35.5919 +113.575 66.6382 34.7916 +117.64 70.3398 36.7241 +119.251 72.653 37.9319 +118.777 73.7252 38.4917 +119.349 75.4649 39.3999 +118.602 76.3852 39.8804 +118.649 77.827 40.6332 +118.997 79.4888 41.5008 +119.241 81.1078 42.3461 +118.832 82.3001 42.9686 +118.722 83.7128 43.7062 +115.872 83.1776 43.4267 +114.509 83.676 43.687 +111.076 82.6213 43.1363 +110.943 83.9956 43.8538 +107.395 82.7569 43.2071 +106.576 83.5845 43.6392 +103 82.2112 42.9222 +102.998 83.6636 43.6805 +99.6104 82.3412 42.99 +98.8685 83.1696 43.4225 +95.6722 81.8992 42.7593 +94.577 82.3877 43.0143 +94.6816 83.931 43.8201 +94.5527 85.2925 44.5309 +94.1957 86.467 45.1441 +94.6488 88.4141 46.1607 +95.2752 90.5691 47.2858 +94.8529 91.7605 47.9078 +95.0165 93.5449 48.8395 +95.1522 95.3382 49.7757 +94.8661 96.7397 50.5075 +95.0142 98.6155 51.4868 +95.1968 100.569 52.5068 +94.6484 101.781 53.1395 +94.7757 103.749 54.1669 +93.9997 104.756 54.6927 +94.504 107.226 55.9821 +94.0536 108.655 56.7286 +93.9433 110.512 57.6978 +94.0415 112.66 58.8192 +93.9281 114.602 59.8332 +94.1319 116.984 61.0768 +94.1239 119.16 62.213 +93.9102 121.125 63.239 +93.6089 123.023 64.2299 +93.4981 125.221 65.3772 +93.4056 127.501 66.5676 +93.8125 130.536 68.1523 +93.4778 132.61 69.2353 +93.4227 135.142 70.5571 +93.3764 137.759 71.9233 +93.4886 140.691 73.4543 +93.05 142.867 74.5905 +93.1173 145.896 76.1719 +93.4713 149.48 78.0431 +93.3323 152.379 79.5565 +93.0962 155.209 81.0338 +93.2732 158.831 82.9253 +93.4766 162.627 84.9071 +92.9876 165.327 86.3168 +92.9785 168.988 88.2283 +92.8612 172.582 90.1045 +92.5534 175.944 91.86 +92.6839 180.284 94.1255 +91.9225 183.018 95.5532 +90.7154 184.942 96.5575 +89.1648 186.208 97.2184 +85.3001 182.55 95.3089 +92.378 202.683 105.82 +91.1489 205.121 107.093 +89.2695 206.15 107.63 +86.9565 206.168 107.64 +84.7184 206.333 107.726 +82.3168 206.061 107.584 +80.2526 206.606 107.868 +77.6127 205.622 107.355 +75.6165 206.299 107.708 +73.2219 205.861 107.48 +71.0463 205.996 107.55 +68.8169 205.943 107.522 +66.7318 206.297 107.707 +64.2441 205.353 107.214 +62.1942 205.757 107.425 +59.9159 205.372 107.224 +57.8677 205.742 107.417 +55.5133 204.975 107.017 +53.6283 205.915 107.507 +51.2529 204.937 106.997 +49.4414 206.192 107.652 +47.0708 205.09 107.077 +45.0882 205.621 107.354 +42.8618 205.003 107.032 +40.9115 205.676 107.383 +38.7202 205.111 107.088 +36.7152 205.489 107.285 +34.5578 204.977 107.018 +32.6639 206.026 107.566 +30.4126 204.777 106.913 +28.4809 205.62 107.354 +26.3311 204.864 106.959 +24.3342 205.236 107.153 +22.217 204.534 106.787 +20.2724 205.405 107.241 +18.077 203.61 106.304 +16.1975 205.333 107.204 +14.1327 204.831 106.942 +12.1524 205.553 107.318 +10.0455 203.956 106.485 +8.07574 205.001 107.03 +6.04688 204.701 106.874 +4.035 204.917 106.987 +2.01147 204.32 106.675 +1.38778e-14 205.392 107.234 +-2.01234 204.409 106.721 +-4.04023 205.183 107.125 +-6.04164 204.524 106.781 +-8.08272 205.178 107.123 +-10.0761 204.576 106.808 +-12.1262 205.11 107.087 +-14.0961 204.3 106.664 +-16.1556 204.803 106.927 +-18.0927 203.786 106.396 +-20.1678 204.345 106.688 +-22.2266 204.622 106.833 +-24.2192 204.267 106.647 +-26.2405 204.159 106.591 +-28.2493 203.948 106.481 +-30.256 203.722 106.363 +-32.2742 203.568 106.282 +-34.3509 203.749 106.377 +-36.4962 204.264 106.646 +-38.3736 203.274 106.129 +-40.5121 203.668 106.335 +-42.388 202.737 105.848 +-44.7256 203.967 106.49 +-46.5923 203.005 105.988 +-48.7761 203.417 106.204 +-50.7334 202.86 105.912 +-53.1559 204.101 106.56 +-54.953 202.906 105.936 +-57.2145 203.419 106.204 +-59.2149 202.969 105.969 +-61.4954 203.445 106.218 +-63.4424 202.791 105.876 +-65.9049 203.741 106.372 +-67.7377 202.714 105.836 +-70.1692 203.453 106.222 +-72.1393 202.818 105.891 +-74.6894 203.769 106.387 +-76.4704 202.596 105.775 +-79.1131 203.673 106.337 +-81.1151 203.053 106.013 +-83.6239 203.667 106.334 +-85.6607 203.096 106.036 +-87.9077 203.004 105.988 +-90.196 202.977 105.974 +-92.865 203.751 106.378 +-94.9055 203.106 106.041 +-97.3702 203.344 106.165 +-99.6474 203.152 106.065 +-102.213 203.507 106.25 +-104.047 202.386 105.665 +-107.176 203.743 106.373 +-109.048 202.666 105.811 +-111.697 203.01 105.991 +-113.691 202.137 105.535 +-116.539 202.751 105.855 +-118.993 202.629 105.792 +-121.405 202.404 105.675 +-123.727 202.003 105.465 +-126.535 202.356 105.65 +-129.064 202.218 105.577 +-131.45 201.826 105.373 +-136.782 205.843 107.47 +-140.245 206.905 108.024 +-142.851 206.643 107.888 +-143.661 203.801 106.404 +-143.62 199.842 104.337 +-143.295 195.6 102.122 +-144.883 194.041 101.308 +-149.36 196.293 102.484 +-167.486 216.024 112.785 +-172.474 218.351 114 +-176.185 218.957 114.317 +-595.368 726.408 379.255 +-601.128 720.136 375.981 +-601.875 708.025 369.657 +-607.666 702.006 366.515 +-608.766 690.712 360.618 +-614.671 685.005 357.639 +-615.916 674.231 352.014 +-621.13 667.936 348.727 +-622.604 657.742 343.405 +-628.081 651.889 340.349 +-629.292 641.72 335.04 +-635.254 636.496 332.312 +-636.009 626.155 326.914 +-641.54 620.624 324.026 +-642.579 610.839 318.917 +-648.568 605.846 316.31 +-649.645 596.342 311.348 +-655.771 591.546 308.844 +-657.397 582.753 304.253 +-662.324 576.962 301.23 +-663.663 568.122 296.614 +-669.013 562.783 293.827 +-670.724 554.443 289.473 +-691.566 561.75 293.288 +-699.894 558.632 291.66 +-709.261 556.251 290.417 +-705.653 543.765 283.898 +-711.588 538.746 281.277 +-713.111 530.429 276.935 +-718.46 525.005 274.103 +-719.793 516.694 269.764 +-115.278 81.2847 42.4385 +-115.05 79.6804 41.6009 +-112.974 76.8446 40.1203 +-112.528 75.1676 39.2447 +-111.415 73.0815 38.1556 +-111.321 71.6959 37.4321 +-110.801 70.0598 36.578 +-110.176 68.3865 35.7043 +-110.186 67.1299 35.0483 +-110.096 65.8289 34.369 +-110.073 64.5833 33.7187 +-109.363 62.9568 32.8695 +-109.978 62.1085 32.4266 +-109.907 60.8795 31.785 +-110.076 59.7955 31.219 +-109.889 58.5308 30.5587 +-110.719 57.8134 30.1842 +-110.591 56.6001 29.5507 +-110.622 55.4806 28.9662 +-110.639 54.3649 28.3837 +-110.907 53.38 27.8695 +-111.781 52.6865 27.5075 +-112.118 51.7379 27.0122 +-112 50.587 26.4113 +-112.672 49.7978 25.9992 +-112.978 48.8466 25.5026 +-113.635 48.047 25.0852 +-114.104 47.1661 24.6253 +-115.292 46.5758 24.317 +-115.472 45.574 23.794 +-117.842 45.4213 23.7143 +-118.101 44.4387 23.2013 +-122.137 44.8464 23.4141 +-122.203 43.767 22.8506 +-159.008 55.5232 28.9885 +-159.922 54.418 28.4115 +-161.576 53.5515 27.959 +-161.909 52.2389 27.2737 +-163.831 51.4282 26.8505 +-162.629 49.6394 25.9166 +-3107.18 921.603 481.166 +-3116.14 897.527 468.596 +-888.101 248.222 129.596 +-891.372 241.577 126.126 +-899.661 236.233 123.336 +-3149.57 800.58 417.98 +-381.309 93.7391 48.9408 +-382.12 90.7632 47.3872 +-382.709 87.7371 45.8072 +-380.938 84.1942 43.9575 +-911.305 193.943 101.257 +-912.887 186.827 97.5415 +-405.553 79.7003 41.6112 +-405.442 76.3942 39.8851 +-404.905 73.0251 38.1261 +-405.608 69.8901 36.4894 +-404.806 66.5075 34.7233 +-405.445 63.3735 33.0871 +-404.476 60.0006 31.3261 +-401.397 56.3564 29.4235 +-405.595 53.7339 28.0543 +-403.93 50.3229 26.2734 +-405.303 47.3004 24.6954 +-404.562 44.0337 22.9898 +-403.092 40.7118 21.2555 +-404.77 37.7125 19.6896 +-405.923 34.6479 18.0895 +-404.754 31.3906 16.3889 +-404.748 28.2375 14.7427 +-403.116 24.9879 13.0461 +-404.644 21.939 11.4543 +-404.445 18.7894 9.80987 +-404.615 15.66 8.17604 +-148.509 4.59722 2.40019 +-150.348 3.48998 1.82211 +-145.978 2.25873 1.17928 +-146.594 1.13405 0.592084 +119.5 2.66454e-15 -1.13687e-13 +120.295 0.934946 0.477448 +120.182 1.86827 0.954068 +119.959 2.79756 1.42863 +121.026 3.76394 1.92213 +120.685 4.69274 2.39644 +120.535 5.62584 2.87294 +120.375 6.55695 3.34843 +120.805 7.5233 3.84192 +120.627 8.4549 4.31766 +120.54 9.39203 4.79622 +121.239 10.3968 5.30932 +121.033 11.3293 5.78554 +120.719 12.2494 6.2554 +120.793 13.2088 6.74535 +121.254 14.2169 7.26014 +121.011 15.1463 7.73477 +120.66 16.0598 8.20125 +121.189 17.0945 8.72964 +120.82 18.0063 9.19526 +121.23 19.0374 9.72183 +120.94 19.9627 10.1943 +120.74 20.9018 10.6739 +121.413 21.9992 11.2343 +121.095 22.9234 11.7063 +120.865 23.8636 12.1864 +120.53 24.782 12.6554 +121.157 25.905 13.2289 +120.414 26.7379 13.6542 +121.309 27.9403 14.2682 +121.513 28.9972 14.808 +121.032 29.8929 15.2654 +120.734 30.8325 15.7452 +121.387 32.0225 16.3529 +121.164 32.9907 16.8473 +120.836 33.9311 17.3276 +121.165 35.0616 17.9049 +120.722 35.9737 18.3706 +121.121 37.1425 18.9675 +121.224 38.2311 19.5234 +120.563 39.0803 19.9571 +120.55 40.1406 20.4986 +120.245 41.1079 20.9925 +120.675 42.3346 21.619 +120.163 43.2375 22.08 +120.751 44.5446 22.7475 +120.494 45.551 23.2615 +119.86 46.4146 23.7025 +120.405 47.7429 24.3808 +119.751 48.6029 24.82 +119.995 49.8329 25.4481 +120.224 51.0703 26.08 +119.899 52.0808 26.5961 +119.921 53.2491 27.1927 +120.286 54.5834 27.874 +120.367 55.804 28.4974 +120.611 57.1136 29.1662 +119.959 58.0064 29.6221 +120.173 59.325 30.2954 +119.5 60.2129 30.7489 +119.512 61.451 31.3811 +119.766 62.8295 32.0851 +119.918 64.1707 32.77 +119.881 65.426 33.411 +120.084 66.8272 34.1266 +119.171 67.6143 34.5285 +116.156 67.1797 34.3066 +114.743 67.6375 34.5404 +118.718 71.3156 36.4187 +119.251 72.9922 37.2749 +119.105 74.2738 37.9293 +119.105 75.662 38.6383 +119.168 77.1084 39.3769 +119.212 78.5613 40.1188 +119.236 80.0208 40.8641 +119.241 81.4865 41.6126 +119.62 83.2326 42.5043 +119.269 84.4917 43.1473 +118.204 85.2473 43.5332 +117.441 86.2194 44.0296 +114.064 85.2397 43.5293 +113.833 86.5857 44.2166 +110.112 85.2468 43.5329 +109.273 86.0993 43.9683 +105.824 84.8596 43.3352 +105.578 86.1601 43.9993 +102.097 84.7908 43.3 +101.262 85.581 43.7036 +97.9741 84.2613 43.0297 +97.7866 85.5814 43.7038 +94.6816 84.3229 43.0611 +94.4125 85.5637 43.6947 +94.3346 86.9988 44.4276 +94.7176 88.8915 45.3942 +95.4116 91.122 46.5332 +94.988 92.3199 47.1449 +94.5482 93.5177 47.7566 +94.6884 95.3167 48.6753 +94.8661 97.1914 49.6327 +95.0142 99.0759 50.595 +94.6826 100.493 51.3186 +94.7757 102.393 52.2891 +94.7757 104.233 53.2288 +94.6222 105.942 54.1011 +94.6272 107.866 55.0839 +93.9928 109.092 55.7101 +94.2442 111.383 56.8799 +94.0415 113.186 57.8004 +93.9869 115.209 58.8337 +93.7835 117.095 59.797 +94.1813 119.789 61.1727 +93.9668 121.765 62.1815 +93.6089 123.598 63.1175 +93.6085 125.954 64.3208 +93.4056 128.096 65.4146 +93.5976 130.845 66.8186 +93.4248 133.154 67.9974 +93.3705 135.697 69.2963 +93.3764 138.402 70.6776 +93.5901 141.501 72.2603 +93.55 144.306 73.6924 +93.0681 146.5 74.8131 +93.4713 150.178 76.6914 +93.3323 153.09 78.1786 +93.1432 156.012 79.6703 +92.9038 158.942 81.1666 +93.0227 162.593 83.0313 +92.9876 166.099 84.8218 +92.9785 169.778 86.7001 +92.8182 173.307 88.5025 +92.5957 176.847 90.3103 +92.5181 180.801 92.3296 +91.5971 183.222 93.5658 +90.3964 185.153 94.5518 +88.5787 185.847 94.9065 +88.8208 190.972 97.5234 +92.0408 202.885 103.607 +90.7457 205.167 104.772 +88.5527 205.449 104.917 +86.2911 205.546 104.966 +84.4106 206.543 105.475 +81.6492 205.344 104.863 +79.7316 206.223 105.312 +77.0733 205.147 104.762 +75.0293 205.653 105.021 +72.8009 205.634 105.011 +70.8124 206.277 105.339 +68.2489 205.196 104.787 +66.2908 205.89 105.142 +63.9769 205.454 104.919 +61.9354 205.857 105.125 +59.4653 204.779 104.574 +57.5048 205.406 104.894 +55.2799 205.066 104.721 +53.2684 205.488 104.936 +51.0365 205.025 104.7 +49.0464 205.5 104.943 +46.6521 204.215 104.286 +44.9546 205.969 105.182 +42.6796 205.084 104.73 +40.5468 204.795 104.582 +38.4396 204.575 104.47 +36.4649 205.041 104.708 +34.3952 204.965 104.669 +32.4273 205.489 104.937 +30.256 204.674 104.521 +28.2493 204.901 104.637 +26.2405 205.113 104.745 +24.2297 205.309 104.845 +22.1308 204.691 104.53 +20.0981 204.589 104.477 +18.0377 204.116 104.236 +16.0858 204.87 104.621 +14.0167 204.099 104.227 +12.053 204.822 104.596 +10.015 204.285 104.322 +8.04433 205.157 104.767 +5.99714 203.965 104.159 +4.01754 204.984 104.679 +2.00449 204.561 104.463 +1.54321e-14 204.48 104.422 +-1.99663 203.76 104.054 +-4.01056 204.627 104.497 +-5.9919 203.788 104.068 +-8.0548 205.424 104.903 +-10.0281 204.553 104.459 +-12.0216 204.289 104.324 +-14.0351 204.366 104.363 +-16.051 204.426 104.394 +-18.0299 204.028 104.191 +-20.1155 204.767 104.568 +-22.0445 203.894 104.122 +-24.1565 204.689 104.528 +-26.0594 203.697 104.022 +-28.1396 204.105 104.23 +-30.0471 203.261 103.799 +-32.1212 203.549 103.946 +-34.1292 203.38 103.86 +-36.2146 203.634 103.99 +-38.0435 202.467 103.394 +-40.2169 203.128 103.731 +-42.1693 202.632 103.478 +-44.3631 203.259 103.798 +-46.2135 202.296 103.306 +-48.5682 203.496 103.919 +-50.3871 202.416 103.368 +-52.7735 203.578 103.961 +-54.5795 202.468 103.394 +-56.7791 202.813 103.57 +-58.7642 202.364 103.341 +-61.2366 203.535 103.939 +-62.9881 202.279 103.298 +-65.3261 202.894 103.612 +-67.482 202.892 103.61 +-69.9061 203.636 103.991 +-71.7484 202.661 103.493 +-74.1332 203.196 103.766 +-76.1848 202.782 103.555 +-78.4619 202.94 103.635 +-80.5142 202.49 103.405 +-83.0425 203.195 103.766 +-85.3455 203.293 103.816 +-87.621 203.287 103.812 +-89.8661 203.178 103.757 +-92.1907 203.216 103.776 +-94.1784 202.492 103.406 +-96.706 202.9 103.615 +-99.0493 202.876 103.602 +-101.562 203.155 103.745 +-103.715 202.682 103.504 +-106.331 203.08 103.706 +-108.274 202.165 103.239 +-111.039 202.757 103.542 +-112.977 201.806 103.056 +-116.131 202.983 103.657 +-118.115 202.073 103.193 +-120.936 202.563 103.443 +-122.916 201.615 102.959 +-126.147 202.678 103.501 +-128.03 201.534 102.917 +-130.8 201.766 103.036 +-135.411 204.732 104.551 +-139.266 206.42 105.412 +-141.963 206.317 105.36 +-143.502 204.526 104.445 +-143.029 199.948 102.107 +-142.968 196.065 100.124 +-144.939 195.021 99.591 +-147.907 195.289 99.7283 +-152.59 197.73 100.974 +-171.729 218.422 111.541 +-174.734 218.166 111.411 +-599.776 735.204 375.446 +-605.47 728.725 372.137 +-606.75 717.092 366.197 +-611.866 710.159 362.656 +-613.691 699.552 357.24 +-618.904 692.944 353.865 +-620.573 682.501 348.532 +-625.265 675.522 344.968 +-626.718 665.179 339.686 +-632.627 659.673 336.875 +-633.884 649.421 331.639 +-638.965 643.203 328.464 +-640.358 633.382 323.448 +-646.134 627.986 320.693 +-647.08 617.99 315.589 +-652.835 612.68 312.877 +-653.951 603.098 307.983 +-659.836 597.993 305.377 +-661.569 589.189 300.881 +-666.747 583.526 297.989 +-668.554 574.981 293.625 +-673.873 569.518 290.835 +-680.744 565.353 288.708 +-704.911 575.263 293.769 +-706.211 566.307 289.195 +-713.231 561.976 286.984 +-714.484 553.14 282.472 +-716.911 545.311 278.473 +-717.554 536.226 273.834 +-725.25 532.442 271.902 +-116.883 84.2946 43.0466 +-114.026 80.7772 41.2504 +-113.868 79.23 40.4603 +-111.704 76.336 38.9825 +-111.969 75.1434 38.3734 +-111.013 73.1579 37.3595 +-110.35 71.4024 36.463 +-110.801 70.387 35.9444 +-109.439 68.2461 34.8512 +-110.103 67.393 34.4155 +-110.096 66.1362 33.7737 +-110.073 64.8849 33.1347 +-109.614 63.3963 32.3745 +-110.147 62.4941 31.9138 +-109.907 61.1638 31.2345 +-109.82 59.935 30.607 +-110.317 59.0334 30.1465 +-110.116 57.767 29.4998 +-110.678 56.909 29.0617 +-110.361 55.6081 28.3973 +-110.814 54.7051 27.9362 +-111.786 54.0543 27.6038 +-111.428 52.7653 26.9456 +-112.562 52.1852 26.6494 +-112.801 51.1871 26.1397 +-113.388 50.3482 25.7113 +-114.057 49.5431 25.3001 +-114.719 48.7315 24.8857 +-114.467 47.537 24.2757 +-116.384 47.2365 24.1222 +-116.842 46.3301 23.6594 +-118.576 45.9175 23.4487 +-120.034 45.3769 23.1726 +-129.805 47.8846 24.4532 +-840.863 302.562 154.509 +-3048.51 1069.46 546.141 +-160.949 55.0232 28.0987 +-162.7 54.1757 27.6659 +-163.507 53.0006 27.0658 +-164.585 51.9062 26.5069 +-163.197 50.0452 25.5566 +-3107.18 925.906 472.832 +-884.768 256.027 130.745 +-892.011 250.48 127.912 +-896.344 244.058 124.633 +-384.678 101.481 51.823 +-381.525 97.431 49.755 +-381.309 94.1768 48.0932 +-382.796 91.3482 46.6487 +-382.128 88.013 44.9455 +-381.423 84.6951 43.2512 +-941.838 201.377 102.837 +-405.046 83.2814 42.5292 +-405.749 80.111 40.9102 +-404.464 76.5657 39.0997 +-406.375 73.6325 37.6018 +-405.608 70.2165 35.8574 +-406.773 67.1426 34.2877 +-404.461 63.5148 32.435 +-403.785 60.1779 30.731 +-400.903 56.5498 28.8782 +-405.299 53.9453 27.5482 +-405.515 50.7562 25.9196 +-404.708 47.4516 24.2321 +-404.562 44.2393 22.5916 +-405.278 41.1237 21.0006 +-404.671 37.8793 19.3438 +-405.923 34.8097 17.7762 +-405.949 31.6303 16.1526 +-403.153 28.2576 14.4303 +-405.31 25.2413 12.89 +-404.544 22.036 11.2531 +-404.445 18.8771 9.63996 +-404.415 15.7253 8.03043 +-149.009 4.63422 2.36655 +-148.549 3.46431 1.76912 +-144.578 2.24752 1.14774 +-146.594 1.13935 0.581829 +120.4 4.44089e-15 5.68434e-14 +120.295 0.939215 0.468994 +120.182 1.8768 0.937175 +120.159 2.81502 1.40567 +120.127 3.75303 1.87406 +120.685 4.71416 2.354 +120.535 5.65153 2.82207 +120.375 6.5869 3.28914 +120.805 7.55766 3.77389 +120.627 8.49351 4.24121 +120.54 9.43491 4.71129 +121.239 10.4443 5.21531 +120.834 11.3624 5.67376 +120.719 12.3053 6.14463 +121.488 13.3455 6.66402 +121.254 14.2818 7.13158 +121.011 15.2155 7.59781 +120.759 16.1464 8.06265 +121.288 17.1866 8.58208 +120.82 18.0885 9.03244 +121.23 19.1244 9.54969 +120.055 19.9071 9.94054 +120.936 21.0314 10.502 +120.531 21.9391 10.9552 +120.997 23.0095 11.4897 +120.084 23.8178 11.8933 +120.53 24.8952 12.4313 +121.06 26.0023 12.9842 +120.511 26.8816 13.4232 +121.018 28.0006 13.982 +121.031 29.0139 14.488 +120.839 29.9816 14.9712 +120.831 30.9979 15.4787 +121.482 32.1941 16.076 +121.068 33.1152 16.536 +121.408 34.2474 17.1013 +120.879 35.1388 17.5464 +120.722 36.1379 18.0454 +121.215 37.3412 18.6462 +121.035 38.3459 19.1479 +120.281 39.167 19.5579 +120.737 40.3865 20.1669 +120.152 41.2635 20.6048 +120.675 42.5279 21.2362 +120.256 43.4684 21.7058 +120.751 44.748 22.3448 +120.31 45.6891 22.8147 +120.685 46.9477 23.4432 +120.223 47.8881 23.9127 +119.933 48.8991 24.4176 +120.086 50.0982 25.0164 +120.315 51.342 25.6375 +120.528 52.5932 26.2622 +120.011 53.5321 26.7311 +120.197 54.792 27.3602 +120.367 56.0588 27.9928 +119.728 56.9544 28.44 +119.871 58.2286 29.0762 +120.26 59.6393 29.7807 +120.37 60.9284 30.4244 +119.771 61.8658 30.8925 +119.939 63.2072 31.5623 +119.746 64.3716 32.1437 +119.881 65.7247 32.8194 +119.151 66.6108 33.2619 +118.834 67.7307 33.8211 +113.975 66.2196 33.0665 +117.578 69.6253 34.7672 +118.718 71.6412 35.7738 +119.416 73.4269 36.6655 +119.023 74.5617 37.2321 +118.942 75.9037 37.9022 +119.087 77.4078 38.6534 +119.051 78.8136 39.3553 +119.077 80.2785 40.0868 +119.162 81.8042 40.8487 +119.226 83.3373 41.6142 +119.348 84.9333 42.4112 +119.292 86.4249 43.156 +118.599 87.4667 43.6762 +116.592 87.5267 43.7062 +115.734 88.4336 44.1591 +112.905 87.8077 43.8465 +111.969 88.6266 44.2554 +108.425 87.3423 43.6141 +107.569 88.1855 44.0351 +104.73 87.3745 43.6302 +103.874 88.1889 44.0368 +100.42 86.7591 43.3229 +99.6411 87.6025 43.744 +96.9443 86.7323 43.3095 +95.604 87.0392 43.4628 +94.3346 87.3961 43.641 +94.1669 88.7783 44.3311 +94.3886 90.5567 45.2192 +94.0422 91.8181 45.8491 +95.1504 94.5433 47.2099 +95.4835 96.5563 48.2151 +95.063 97.8374 48.8548 +95.2091 99.7332 49.8015 +94.7469 101.021 50.4443 +94.7757 102.861 51.3633 +94.3981 104.292 52.0781 +94.4355 106.216 53.0386 +94.5656 108.288 54.0732 +93.871 109.448 54.6527 +94.1239 111.749 55.8017 +94.0415 113.702 56.7769 +94.3395 116.169 58.0086 +93.8416 117.702 58.7743 +94.1239 120.263 60.0529 +93.9668 122.321 61.0804 +93.7766 124.385 62.1111 +93.6637 126.603 63.219 +93.2967 128.531 64.1813 +93.7051 131.593 65.7105 +93.3718 133.686 66.7555 +93.7885 136.927 68.374 +93.3764 139.034 69.4261 +93.5393 142.07 70.9424 +93.05 144.19 72.0007 +93.0681 147.169 73.4884 +93.5198 150.942 75.3723 +93.3323 153.79 76.7943 +93.1432 156.724 78.2596 +93.2732 160.302 80.0462 +93.0227 163.336 81.5611 +92.9876 166.858 83.3199 +92.584 169.829 84.8036 +92.8612 174.18 86.9761 +92.5534 177.573 88.6706 +92.3107 181.22 90.4915 +90.7836 182.424 91.0928 +90.0774 185.342 92.5497 +88.1489 185.791 92.7739 +90.1602 194.737 97.2414 +91.9659 203.646 101.69 +90.2326 204.939 102.336 +88.3019 205.802 102.767 +85.8008 205.311 102.521 +83.5555 205.385 102.558 +81.1818 205.101 102.417 +79.0805 205.473 102.602 +76.7877 205.319 102.526 +74.504 205.146 102.439 +71.989 204.269 102.001 +70.2862 205.679 102.705 +68.0217 205.447 102.589 +65.7119 205.025 102.379 +63.576 205.099 102.416 +61.4954 205.328 102.53 +59.0646 204.328 102.031 +57.2629 205.476 102.604 +54.9063 204.61 102.171 +53.0435 205.554 102.643 +50.6252 204.301 102.017 +48.6513 204.776 102.254 +46.5325 204.621 102.177 +44.5539 205.065 102.399 +42.388 204.613 102.173 +40.3906 204.936 102.334 +38.159 204.009 101.871 +36.2928 205.006 102.369 +34.1144 204.22 101.976 +32.2882 205.541 102.636 +30.0471 204.189 101.961 +28.1396 205.037 102.385 +26.1273 205.16 102.446 +24.052 204.733 102.233 +22.0637 205.003 102.367 +20.0545 205.078 102.405 +17.9593 204.156 101.945 +15.9533 204.111 101.922 +13.9435 203.959 101.846 +11.9588 204.15 101.942 +9.9365 203.61 101.672 +7.985 204.574 102.153 +5.97358 204.092 101.913 +3.98787 204.399 102.066 +1.9879 203.796 101.765 +1.45439e-14 204.788 102.26 +-1.9879 203.796 101.765 +-3.9774 203.862 101.798 +-5.96573 203.823 101.779 +-7.99198 204.752 102.242 +-9.94086 203.699 101.716 +-11.9849 204.596 102.165 +-13.9191 203.602 101.668 +-15.9812 204.468 102.1 +-17.8808 203.264 101.499 +-19.9499 204.009 101.871 +-21.9583 204.023 101.878 +-23.9684 204.022 101.878 +-25.9575 203.827 101.78 +-27.9446 203.617 101.675 +-29.9427 203.479 101.607 +-32.0516 204.035 101.884 +-33.9814 203.424 101.579 +-36.0894 203.857 101.796 +-37.9279 202.773 101.254 +-40.0085 202.999 101.367 +-42.0053 202.766 101.251 +-44.1532 203.221 101.478 +-46.0341 202.43 101.083 +-48.1939 202.851 101.293 +-50.1707 202.466 101.101 +-52.3686 202.939 101.337 +-54.4395 202.871 101.303 +-56.5855 203.045 101.39 +-58.5388 202.509 101.122 +-60.7448 202.822 101.279 +-62.7208 202.34 101.038 +-65.1882 203.39 101.562 +-66.9708 202.274 101.005 +-69.4968 203.369 101.552 +-71.4176 202.648 101.192 +-73.8551 203.359 101.547 +-75.6772 202.35 101.043 +-78.1038 202.936 101.335 +-80.2138 202.656 101.196 +-82.7347 203.367 101.551 +-84.6451 202.546 101.141 +-87.3343 203.548 101.641 +-89.243 202.692 101.213 +-91.5913 202.816 101.276 +-93.834 202.672 101.204 +-96.4324 203.25 101.492 +-98.4113 202.489 101.112 +-101.237 203.429 101.582 +-102.927 202.061 100.898 +-105.612 202.628 101.182 +-107.585 201.796 100.766 +-110.207 202.155 100.945 +-112.531 201.927 100.831 +-115.268 202.396 101.066 +-117.33 201.647 100.692 +-120.091 202.066 100.901 +-122.439 201.75 100.743 +-125.372 202.352 101.044 +-127.242 201.209 100.473 +-130.55 202.3 101.018 +-133.33 202.506 101.121 +-138.391 206.059 102.895 +-140.866 205.657 102.694 +-143.873 205.991 102.861 +-143.513 201.54 100.638 +-143.512 197.711 98.7264 +-144.332 195.091 97.4179 +-146.564 194.402 97.0739 +-149.758 194.946 97.3455 +-171.098 218.613 109.164 +-173.514 217.633 108.675 +-603.362 742.976 371.003 +-608.861 736.152 367.595 +-610.963 725.369 362.21 +-616.006 718.228 358.645 +-617.693 707.329 353.202 +-623.013 700.729 349.907 +-624.663 690.137 344.618 +-630.163 683.922 341.514 +-631.924 673.767 336.443 +-636.524 666.767 332.948 +-638.214 656.843 327.992 +-643.205 650.428 324.789 +-644.64 640.529 319.846 +-650.256 634.877 317.024 +-651.649 625.196 312.19 +-656.828 619.241 309.216 +-658.814 610.357 304.78 +-663.481 604.042 301.626 +-665.387 595.296 297.259 +-670.812 589.765 294.497 +-672.439 580.963 290.102 +-678.08 575.691 287.469 +-690.398 575.988 287.618 +-700.635 574.384 286.817 +-709.406 571.466 285.36 +-717.799 568.159 283.708 +-717.653 558.131 278.701 +-726.416 555.064 277.169 +-724.984 544.253 271.771 +-114.278 84.2799 42.0849 +-114.784 83.1593 41.5253 +-112.539 80.0879 39.9916 +-112.134 78.38 39.1388 +-110.831 76.0855 37.9931 +-110.771 74.6789 37.2906 +-110.048 72.8533 36.3791 +-110.026 71.5181 35.7123 +-110.068 70.2407 35.0745 +-110.34 69.1221 34.5159 +-110.268 67.8021 33.8567 +-110.096 66.4382 33.1757 +-110.156 65.2305 32.5727 +-109.53 63.6371 31.777 +-109.894 62.6353 31.2767 +-110.501 61.775 30.8471 +-110.076 60.349 30.1351 +-110.146 59.2108 29.5667 +-110.892 58.4394 29.1815 +-110.505 57.0794 28.5024 +-110.622 55.9941 27.9605 +-111.339 55.2152 27.5715 +-111.698 54.2584 27.0938 +-112.046 53.3002 26.6153 +-112.916 52.5887 26.26 +-112.891 51.4614 25.6971 +-114.283 50.9773 25.4554 +-114.147 49.8085 24.8717 +-115.17 49.1466 24.5412 +-116.732 48.6993 24.3178 +-118.022 48.12 24.0285 +-118.121 47.0511 23.4948 +-120.593 46.912 23.4253 +-124.452 47.2621 23.6002 +-161.309 59.7781 29.85 +-163.184 58.9857 29.4543 +-3048.51 1074.34 536.47 +-161.043 55.3066 27.6172 +-163.449 54.6738 27.3012 +-162.567 52.9366 26.4337 +-3088.56 978.508 488.615 +-166.789 51.3806 25.6567 +-884.501 264.775 132.214 +-888.953 258.412 129.037 +-896.208 252.807 126.238 +-900.839 246.402 123.04 +-382.569 101.385 50.6261 +-381.525 97.8759 48.874 +-383.621 95.1812 47.5284 +-382.893 91.7886 45.8343 +-382.902 88.5941 44.2392 +-3179.17 709.159 354.116 +-405.187 87.0297 43.458 +-405.533 83.7623 41.8264 +-406.725 80.6704 40.2825 +-407.496 77.4919 38.6953 +-405.395 73.7903 36.8469 +-406.688 70.7249 35.3163 +-406.183 67.3514 33.6317 +-406.824 64.1777 32.0469 +-405.265 60.6742 30.2975 +-401.397 56.8781 28.4019 +-406.387 54.3371 27.1331 +-404.425 50.851 25.3923 +-404.51 47.6449 23.7913 +-405.257 44.5177 22.2298 +-405.675 41.352 20.649 +-404.87 38.071 19.0106 +-404.529 34.8486 17.4015 +-404.156 31.6344 15.7965 +-404.449 28.4779 14.2203 +-404.512 25.3066 12.6368 +-404.744 22.1475 11.0593 +-404.645 18.9726 9.47392 +-405.314 15.8323 7.9058 +-148.21 4.63041 2.31218 +-148.449 3.4778 1.73663 +-146.478 2.28745 1.14223 +-146.894 1.14689 0.572697 +120.3 5.77316e-15 5.68434e-14 +120.195 0.942626 0.46012 +120.182 1.88518 0.920205 +120.859 2.84405 1.38826 +121.026 3.79801 1.85391 +119.886 4.70386 2.29607 +120.435 5.67206 2.76868 +120.974 6.64922 3.24566 +120.805 7.5914 3.70556 +120.627 8.53142 4.16441 +121.337 9.53976 4.6566 +121.339 10.4995 5.12509 +121.033 11.4319 5.58019 +120.918 12.3806 6.04328 +120.594 13.3065 6.49523 +121.254 14.3456 7.00245 +121.011 15.2834 7.46023 +120.759 16.2185 7.91666 +121.288 17.2633 8.42668 +120.82 18.1693 8.86889 +120.344 19.0693 9.30821 +120.252 20.0287 9.77652 +120.74 21.091 10.2951 +120.531 22.0371 10.7569 +121.095 23.1309 11.2908 +120.768 24.0602 11.7444 +121.212 25.1479 12.2753 +121.06 26.1184 12.7491 +120.705 27.0451 13.2014 +121.018 28.1256 13.7289 +121.031 29.1434 14.2256 +121.032 30.1634 14.7236 +120.734 31.1115 15.1863 +120.428 32.0571 15.6479 +120.973 33.2367 16.2237 +120.836 34.2382 16.7126 +121.069 35.3512 17.2558 +120.722 36.2993 17.7186 +121.31 37.5372 18.3229 +120.47 38.3371 18.7133 +120.469 39.4033 19.2338 +120.737 40.5668 19.8017 +120.992 41.7376 20.3732 +120.582 42.6848 20.8356 +120.07 43.5952 21.2799 +119.92 44.6382 21.7891 +120.31 45.893 22.4016 +120.043 46.9065 22.8963 +120.223 48.1018 23.4798 +120.388 49.3037 24.0664 +119.995 50.284 24.5449 +120.315 51.5712 25.1732 +120.528 52.828 25.7867 +119.921 53.731 26.2275 +120.286 55.0774 26.8847 +119.658 55.9771 27.3239 +119.904 57.293 27.9662 +119.871 58.4885 28.5497 +120.173 59.8619 29.2201 +120.283 61.1561 29.8519 +119.685 62.097 30.3112 +119.853 63.4438 30.9685 +119.146 64.335 31.4036 +119.711 65.9242 32.1793 +119.151 66.9082 32.6596 +117.484 67.2605 32.8316 +112.13 65.4384 31.9422 +118.912 70.7297 34.525 +119.216 72.2625 35.2732 +119.333 73.7037 35.9767 +119.023 74.8945 36.558 +118.942 76.2425 37.2159 +119.006 77.7006 37.9277 +118.971 79.112 38.6166 +118.997 80.5827 39.3345 +119.003 82.0599 40.0556 +119.068 83.5986 40.8066 +119.113 85.1446 41.5613 +118.903 86.5279 42.2365 +119.216 88.3145 43.1086 +118.354 89.246 43.5633 +117.787 90.4047 44.1289 +115.395 90.145 44.0021 +114.216 90.8091 44.3263 +111.1 89.8969 43.881 +109.633 90.2789 44.0674 +106.046 88.8678 43.3787 +105.832 90.2528 44.0547 +103.009 89.3938 43.6354 +101.496 89.6313 43.7513 +99.3485 89.28 43.5799 +97.8469 89.4789 43.677 +94.6819 88.1095 43.0085 +94.5111 89.5005 43.6875 +94.3204 90.8953 44.3684 +94.6502 92.8247 45.3102 +94.0798 93.8968 45.8335 +94.9535 96.4481 47.0788 +94.9317 98.1385 47.9039 +94.6895 99.6312 48.6325 +94.6826 101.402 49.4971 +95.2209 103.805 50.6701 +94.6498 105.037 51.2715 +95.1202 107.464 52.4559 +94.504 108.701 53.0599 +93.9928 110.08 53.7328 +93.9433 112.033 54.686 +93.863 113.993 55.6432 +93.693 115.888 56.5678 +94.19 118.667 57.9246 +94.0665 120.726 58.9296 +93.7969 122.644 59.8657 +93.7766 124.94 60.9864 +93.4981 126.944 61.9646 +93.8413 129.858 63.3872 +93.8125 132.332 64.5948 +93.3718 134.282 65.5467 +93.266 136.772 66.7618 +93.4279 139.732 68.2067 +93.4886 142.627 69.6201 +93.1 144.912 70.7351 +93.1173 147.904 72.1959 +93.5198 151.616 74.0075 +93.2845 154.397 75.3652 +93.1432 157.424 76.8426 +93.227 160.937 78.5577 +93.3404 164.625 80.3579 +92.9876 167.603 81.8112 +92.6278 170.668 83.3075 +92.9043 175.038 85.4407 +92.9338 179.099 87.4229 +91.9375 181.293 88.4937 +90.9056 183.485 89.5636 +89.3597 184.685 90.1496 +88.0317 186.372 90.973 +89.3948 193.946 94.67 +92.0034 204.638 99.8891 +89.9028 205.101 100.115 +87.5851 205.043 100.087 +85.4156 205.301 100.213 +83.4187 205.964 100.536 +80.7479 204.916 100.025 +78.7549 205.541 100.33 +76.28 204.873 100.004 +74.2877 205.463 100.292 +72.0792 205.438 100.28 +69.9938 205.737 100.426 +67.5104 204.813 99.9747 +65.4914 205.249 100.187 +63.0683 204.369 99.758 +61.2883 205.55 100.334 +58.8393 204.457 99.801 +57.021 205.521 100.32 +54.6262 204.475 99.8097 +52.6385 204.896 100.015 +50.4954 204.687 99.9128 +48.5058 205.075 100.102 +46.353 204.742 99.94 +44.4013 205.275 100.2 +42.2422 204.82 99.9777 +40.2169 204.966 100.049 +38.0105 204.122 99.6373 +36.0894 204.767 99.9523 +33.9223 203.976 99.5658 +32.1212 205.391 100.257 +30.021 204.922 100.028 +28.0178 205.06 100.095 +25.9462 204.648 99.894 +23.9684 204.933 100.033 +21.8816 204.218 99.6843 +19.9499 204.919 100.026 +17.873 204.083 99.618 +15.8905 204.215 99.6825 +13.9191 204.511 99.8273 +11.9326 204.613 99.8768 +9.89724 203.711 99.4364 +7.9536 204.679 99.9089 +5.95264 204.284 99.7163 +3.97217 204.502 99.8229 +1.97831 203.717 99.4395 +1.33227e-14 203.995 99.5751 +-1.98005 203.897 99.5272 +-3.9617 203.963 99.5597 +-5.93693 203.745 99.4531 +-7.94313 204.409 99.7773 +-9.88415 203.441 99.3048 +-11.8907 203.895 99.5264 +-13.8519 203.525 99.3456 +-15.9045 204.395 99.7703 +-17.7945 203.187 99.1807 +-19.8889 204.293 99.7207 +-21.8624 204.04 99.597 +-23.8534 203.95 99.5531 +-25.8217 203.666 99.4145 +-27.9203 204.347 99.747 +-29.8905 204.031 99.593 +-31.7593 203.077 99.1272 +-33.804 203.265 99.2189 +-35.7766 202.992 99.0855 +-37.7794 202.881 99.0316 +-39.9044 203.374 99.2719 +-41.8231 202.788 98.9859 +-44.0196 203.51 99.3386 +-45.9942 203.158 99.1667 +-47.9652 202.79 98.9868 +-49.9759 202.581 98.885 +-52.0987 202.794 98.989 +-54.1126 202.552 98.871 +-56.3436 203.08 99.1285 +-58.2885 202.543 98.8666 +-60.486 202.86 99.021 +-62.4002 202.205 98.7012 +-64.9402 203.521 99.3439 +-66.6868 202.315 98.7552 +-69.2044 203.417 99.293 +-70.8162 201.838 98.5223 +-73.3606 202.899 99.0403 +-75.4233 202.572 98.8807 +-77.6806 202.737 98.9614 +-79.5796 201.951 98.5775 +-82.3585 203.346 99.2583 +-84.0848 202.103 98.6517 +-86.6892 202.946 99.0631 +-88.8399 202.676 98.9315 +-91.1418 202.722 98.9539 +-93.4896 202.83 99.0066 +-95.8073 202.834 99.0083 +-97.8131 202.157 98.678 +-100.22 202.285 98.7407 +-102.554 202.227 98.7122 +-105.274 202.881 99.0316 +-106.853 201.318 98.2687 +-109.9 202.492 98.8416 +-112.263 202.346 98.7701 +-114.95 202.739 98.9623 +-116.915 201.83 98.5183 +-119.621 202.175 98.6868 +-121.532 201.15 98.1867 +-124.79 202.311 98.7535 +-126.75 201.326 98.2722 +-130 202.347 98.771 +-132.011 201.398 98.3073 +-137.927 206.285 100.693 +-140.343 205.809 100.461 +-143.979 207.064 101.073 +-143.19 201.985 98.5942 +-143.621 198.744 97.012 +-143.062 194.238 94.8126 +-145.111 193.332 94.3704 +-148.852 194.631 95.0043 +-170.295 218.558 106.684 +-170.262 214.508 104.707 +-607.123 750.946 366.556 +-612.251 743.556 362.949 +-614.393 732.697 357.649 +-619.658 725.712 354.239 +-621.264 714.594 348.812 +-627.059 708.428 345.802 +-627.999 696.919 340.184 +-633.598 690.72 337.158 +-634.817 679.873 331.863 +-640.421 673.844 328.921 +-642.085 663.777 324.007 +-647.247 657.438 320.912 +-648.521 647.261 315.945 +-653.769 641.157 312.965 +-655.128 631.339 308.173 +-660.889 625.852 305.495 +-662.218 616.25 300.807 +-667.546 610.456 297.979 +-669.064 601.258 293.489 +-674.236 595.422 290.641 +-675.892 586.553 286.312 +-681.562 581.23 283.713 +-686.522 575.312 280.824 +-696.727 573.731 280.053 +-712.825 576.784 281.543 +-720.421 572.779 279.588 +-720.521 562.863 274.748 +-729.001 559.526 273.119 +-115.06 86.7622 42.3508 +-113.583 84.1417 41.0717 +-113.23 82.3995 40.2213 +-111.13 79.4385 38.776 +-111.425 78.2319 38.187 +-110.673 76.3157 37.2517 +-110.611 74.9041 36.5626 +-110.048 73.1785 35.7203 +-110.026 71.8374 35.0657 +-109.417 70.1369 34.2356 +-109.521 68.9153 33.6393 +-109.774 67.7993 33.0946 +-110.262 66.8354 32.6241 +-110.323 65.6209 32.0313 +-110.201 64.3128 31.3927 +-110.4 63.2046 30.8518 +-110.501 62.0508 30.2886 +-110.587 60.9001 29.7269 +-110.317 59.5677 29.0765 +-110.892 58.7003 28.6531 +-111.024 57.6038 28.1179 +-111.144 56.5097 27.5838 +-111.951 55.7666 27.2211 +-112.401 54.8436 26.7706 +-112.752 53.8757 26.2981 +-113.36 53.031 25.8858 +-113.782 52.0991 25.4309 +-114.552 51.3251 25.0531 +-114.956 50.3855 24.5945 +-116.163 49.7916 24.3046 +-117.276 49.1446 23.9887 +-118.75 48.6329 23.739 +-118.761 47.5171 23.1943 +-127.013 49.6297 24.2256 +-148.938 56.8132 27.732 +-160.847 59.8731 29.2256 +-162.072 58.845 28.7238 +-847.052 299.848 146.363 +-162.35 56.0043 27.3372 +-164.667 55.327 27.0066 +-166.044 54.3102 26.5102 +-3088.56 982.877 479.768 +-3097.99 958.613 467.924 +-889.433 267.44 130.544 +-892.376 260.566 127.189 +-900.309 255.098 124.52 +-385.2 105.832 51.6593 +-381.802 101.633 49.6099 +-382.582 98.586 48.1224 +-383.91 95.678 46.7029 +-382.313 92.0591 44.9364 +-3172.14 737.229 359.861 +-928.961 208.143 101.6 +-405.964 87.5859 42.753 +-404.948 84.015 41.0099 +-406.042 80.8944 39.4866 +-406.127 77.5763 37.867 +-405.983 74.2272 36.2322 +-406.099 70.9377 34.6265 +-405.593 67.5539 32.9748 +-405.642 64.2769 31.3752 +-404.673 60.856 29.7054 +-402.384 57.2725 27.9562 +-404.606 54.3406 26.525 +-404.723 51.1155 24.9508 +-403.32 47.7169 23.2918 +-404.76 44.6616 21.8005 +-403.291 41.2925 20.1559 +-403.975 38.1564 18.6251 +-406.42 35.1678 17.1663 +-405.152 31.8539 15.5487 +-403.951 28.5697 13.9456 +-405.011 25.4509 12.4232 +-404.444 22.2299 10.851 +-403.946 19.0244 9.28632 +-405.314 15.903 7.76264 +-148.609 4.66362 2.27643 +-147.25 3.46509 1.6914 +-145.478 2.28198 1.11389 +-145.494 1.14103 0.556967 +119.4 4.88498e-15 0 +120.295 0.947524 0.451972 +120.182 1.8934 0.90316 +120.859 2.85646 1.36254 +120.127 3.78623 1.80605 +120.685 4.75587 2.26857 +120.435 5.6968 2.71739 +120.974 6.67823 3.18554 +120.805 7.62452 3.63692 +120.527 8.56156 4.08389 +121.337 9.58138 4.57035 +121.239 10.5367 5.02603 +121.033 11.4818 5.47683 +121.613 12.5062 5.96549 +121.388 13.4525 6.4169 +121.254 14.4082 6.87275 +121.011 15.3501 7.32205 +120.759 16.2892 7.77002 +121.288 17.3387 8.2706 +120.82 18.2485 8.70462 +120.442 19.1682 9.14328 +121.039 20.2477 9.6582 +120.74 21.183 10.1044 +120.433 22.1152 10.549 +121.095 23.2318 11.0817 +120.67 24.1456 11.5175 +120.53 25.1154 11.9801 +121.06 26.2324 12.5129 +120.511 27.1194 12.9361 +121.018 28.2484 13.4746 +120.837 29.2239 13.9399 +120.454 30.1504 14.3818 +120.831 31.2721 14.9169 +120.332 32.1713 15.3458 +121.068 33.4082 15.9358 +120.741 34.3605 16.3901 +121.165 35.5333 16.9495 +120.722 36.4576 17.3904 +121.121 37.6422 17.9554 +121.035 38.6851 18.4529 +120.281 39.5135 18.8481 +120.737 40.7438 19.4349 +120.152 41.6286 19.857 +120.489 42.8379 20.4338 +120.07 43.7854 20.8858 +120.566 45.0748 21.5008 +120.31 46.0933 21.9866 +119.86 47.0391 22.4378 +120.223 48.3117 23.0448 +120.57 49.5937 23.6564 +120.086 50.5414 24.1084 +120.134 51.7185 24.6699 +119.719 52.7023 25.1392 +119.832 53.9252 25.7225 +120.197 55.2767 26.3672 +119.658 56.2213 26.8178 +119.904 57.543 27.4482 +119.871 58.7437 28.0209 +120.173 60.1231 28.6789 +119.5 61.023 29.1082 +119.858 62.4582 29.7928 +119.853 63.7206 30.3949 +119.146 64.6157 30.8219 +119.966 66.3533 31.6507 +119.405 67.3435 32.1231 +115.713 66.5356 31.7377 +112.55 65.9698 31.4678 +118.912 71.0383 33.8855 +119.299 72.6284 34.644 +118.592 73.5652 35.0909 +118.613 74.9624 35.7573 +119.105 76.6799 36.5766 +119.006 78.0396 37.2251 +118.81 79.3497 37.8501 +118.757 80.7714 38.5282 +118.924 82.363 39.2874 +119.62 84.3524 40.2364 +118.252 84.8981 40.4967 +118.282 86.451 41.2374 +119.062 88.585 42.2553 +119.656 90.6213 43.2267 +119.308 91.9706 43.8703 +117.206 91.9598 43.8651 +116.538 93.0591 44.3895 +113.33 92.1006 43.9323 +112.287 92.8678 44.2983 +108.752 91.5329 43.6615 +108.443 92.8831 44.3056 +105.455 91.9156 43.844 +104.634 92.8055 44.2685 +101.258 91.393 43.5948 +100.3 92.1223 43.9426 +97.5995 91.2206 43.5125 +96.7138 91.986 43.8776 +94.0476 91.0284 43.4208 +94.2448 92.8299 44.2802 +94.2805 94.5078 45.0805 +93.9595 95.8553 45.7233 +94.9973 98.6353 47.0493 +94.7545 100.134 47.7645 +94.5541 101.707 48.5144 +94.4576 103.423 49.3329 +94.7757 105.636 50.3885 +94.6222 107.367 51.2143 +94.0115 108.606 51.8054 +93.9928 110.56 52.7375 +93.9433 112.521 53.6731 +93.9225 114.563 54.6469 +94.4571 117.343 55.973 +93.7255 118.597 56.571 +94.1239 121.327 57.8733 +94.0234 123.477 58.8989 +93.3852 124.961 59.6067 +93.5533 127.574 60.853 +93.4056 129.819 61.9242 +93.7051 132.757 63.3256 +93.3718 134.868 64.3326 +93.7885 138.138 65.8924 +93.3764 140.264 66.9063 +93.5393 143.327 68.3675 +93.1 145.544 69.4249 +93.1173 148.549 70.8586 +93.035 151.488 72.2604 +93.3323 155.15 74.0071 +93.1432 158.11 75.4192 +93.227 161.64 77.1026 +93.0227 164.781 78.6008 +92.9876 168.334 80.2959 +92.584 171.331 81.7256 +92.8182 175.638 83.7801 +92.9338 179.881 85.8036 +91.896 182.002 86.8154 +90.7836 184.038 87.7867 +89.0008 184.746 88.1246 +88.0317 187.185 89.2879 +86.7543 189.038 90.1718 +92.0034 205.531 98.0389 +89.2797 204.569 97.58 +87.2626 205.18 97.8714 +84.7852 204.675 97.6308 +82.9741 205.759 98.1478 +80.4141 204.959 97.766 +78.4945 205.756 98.1461 +75.8675 204.654 97.6204 +73.9478 205.415 97.9838 +71.6582 205.129 97.8473 +69.526 205.254 97.9067 +67.2264 204.842 97.7104 +65.2434 205.364 97.9593 +63.0148 205.087 97.8271 +60.8484 204.965 97.769 +58.5639 204.388 97.4939 +56.6581 205.104 97.8353 +54.3461 204.314 97.4586 +52.4361 204.998 97.7849 +50.3222 204.875 97.7259 +48.3603 205.351 97.9532 +46.2135 205.017 97.7939 +44.2104 205.284 97.9214 +42.0782 204.915 97.7453 +39.9738 204.617 97.6028 +37.7299 203.499 97.0698 +35.933 204.769 97.6755 +33.9075 204.776 97.679 +31.8846 204.767 97.6747 +29.773 204.117 97.3643 +27.8228 204.522 97.5576 +25.7198 203.747 97.1882 +23.8743 205.019 97.7948 +21.757 203.941 97.2808 +19.8715 205.004 97.7875 +17.7396 203.443 97.0431 +15.8487 204.566 97.5787 +13.7909 203.512 97.0758 +11.8803 204.604 97.5968 +9.84053 203.427 97.0353 +7.90474 204.309 97.456 +5.92123 204.092 97.3527 +3.9425 203.861 97.2424 +1.96783 203.523 97.081 +1.38778e-14 203.802 97.214 +-1.97045 203.793 97.2101 +-3.95821 204.673 97.6295 +-5.90814 203.642 97.1378 +-7.88729 203.858 97.2407 +-9.85362 203.698 97.1645 +-11.8698 204.423 97.5107 +-13.797 203.601 97.1184 +-15.8347 204.386 97.4926 +-17.7396 203.443 97.0431 +-19.8018 204.284 97.4444 +-21.6803 203.223 96.938 +-23.7489 203.941 97.2808 +-25.6971 203.568 97.1025 +-27.6643 203.357 97.0022 +-29.6033 202.953 96.8093 +-31.7315 203.784 97.2058 +-33.6414 203.17 96.9126 +-35.6201 202.987 96.8252 +-37.5978 202.787 96.7301 +-39.7654 203.55 97.0939 +-41.5315 202.253 96.4752 +-43.638 202.626 96.6535 +-45.6154 202.364 96.5282 +-47.7781 202.879 96.774 +-49.6512 202.143 96.4227 +-51.9412 203.063 96.8618 +-53.8558 202.471 96.5794 +-56.0775 203.003 96.833 +-57.988 202.378 96.5351 +-60.279 203.047 96.8541 +-62.1596 202.303 96.4993 +-64.4991 203.021 96.8416 +-66.4596 202.505 96.5958 +-68.912 203.441 97.0422 +-70.9966 203.236 96.9441 +-73.0516 202.926 96.7964 +-75.2329 202.942 96.8042 +-77.3224 202.683 96.6806 +-79.446 202.492 96.5893 +-81.777 202.792 96.7323 +-83.7696 202.224 96.4614 +-86.2233 202.736 96.7056 +-88.2535 202.218 96.4584 +-90.8421 202.937 96.8016 +-92.9155 202.464 96.576 +-95.4947 203.053 96.8571 +-97.534 202.459 96.5738 +-100.098 202.921 96.7938 +-101.932 201.877 96.2961 +-104.513 202.294 96.495 +-106.853 202.197 96.4485 +-109.111 201.915 96.3142 +-111.46 201.775 96.2475 +-114.179 202.256 96.4769 +-116.592 202.15 96.4261 +-118.917 201.862 96.2888 +-121.055 201.235 95.9896 +-123.966 201.852 96.2841 +-126.307 201.496 96.1144 +-129.1 201.823 96.2703 +-131.351 201.265 96.0042 +-137.464 206.489 98.4961 +-139.455 205.399 97.9761 +-142.972 206.512 98.5069 +-143.459 203.247 96.9497 +-143.186 199.005 94.9262 +-143.448 195.612 93.3078 +-145.334 194.475 92.7653 +-147.662 193.918 92.4997 +-167.828 216.333 103.192 +-609.215 770.88 367.712 +-611.591 759.772 362.414 +-616.712 752.242 358.822 +-617.944 740.147 353.053 +-623.615 733.533 349.898 +-625.266 722.335 344.556 +-630.919 715.899 341.486 +-632.719 705.221 336.393 +-637.414 697.912 332.906 +-639.059 687.402 327.893 +-644.577 681.176 324.923 +-645.956 670.692 319.922 +-651.554 664.7 317.064 +-652.737 654.311 312.109 +-657.957 648.08 309.136 +-659.356 638.187 304.417 +-664.262 631.79 301.366 +-666.942 623.353 297.341 +-671.892 617.111 294.364 +-673.236 607.646 289.849 +-677.873 601.245 286.796 +-680.567 593.187 282.952 +-685.189 586.873 279.94 +-687.18 578.376 275.887 +-694.884 574.71 274.138 +-705.913 573.683 273.649 +-719.447 574.501 274.039 +-726.408 569.938 271.862 +-114.441 88.2194 42.081 +-114.677 86.8506 41.428 +-112.349 83.5902 39.8728 +-112.064 81.9069 39.0699 +-110.583 79.3917 37.8701 +-110.794 78.1287 37.2677 +-110.276 76.374 36.4306 +-110.212 74.9593 35.7559 +-109.566 73.1757 34.905 +-110.026 72.1508 34.4162 +-109.499 70.4952 33.6264 +-109.521 69.216 33.0163 +-109.691 68.044 32.4572 +-109.516 66.6727 31.8031 +-110.24 65.8574 31.4142 +-110.034 64.495 30.7643 +-111.159 63.9169 30.4886 +-110.161 62.1301 29.6363 +-111.27 61.5431 29.3563 +-110.66 60.0135 28.6266 +-111.322 59.1855 28.2317 +-111.631 58.171 27.7478 +-111.841 57.1117 27.2425 +-111.864 55.9662 26.6961 +-112.928 55.3413 26.398 +-113.282 54.365 25.9323 +-113.892 53.5123 25.5256 +-113.782 52.3265 24.9599 +-115.089 51.7907 24.7043 +-115.405 50.8032 24.2333 +-117.065 50.3974 24.0397 +-118.454 49.8548 23.7809 +-119.933 49.3317 23.5314 +-121.227 48.7156 23.2375 +-161.953 63.5586 30.3176 +-160.812 61.6104 29.3884 +-161.032 60.2033 28.7172 +-161.33 58.8312 28.0627 +-852.728 303.173 144.615 +-163.563 56.6692 27.0314 +-165.697 55.9161 26.6722 +-166.044 54.5472 26.0192 +-3088.56 987.165 470.881 +-885.194 275.102 131.225 +-893.036 269.695 128.645 +-896.941 263.041 125.472 +-383.776 109.215 52.096 +-383.861 105.924 50.5263 +-382.377 102.23 48.7642 +-383.543 99.2644 47.3494 +-382.369 95.7091 45.6536 +-381.734 92.3199 44.0369 +-902.217 210.597 100.455 +-408.009 91.8172 43.7971 +-406.159 88.0102 41.9812 +-407.092 84.8282 40.4633 +-405.163 81.0715 38.6714 +-406.127 77.9147 37.1656 +-405.689 74.4971 35.5353 +-404.332 70.9372 33.8373 +-407.068 68.0953 32.4817 +-404.658 64.4006 30.7193 +-405.955 61.3152 29.2476 +-3236.16 462.622 220.672 +-405.991 54.7645 26.1228 +-404.425 51.3009 24.4707 +-404.311 48.0428 22.9166 +-403.768 44.7464 21.3442 +-405.179 41.6668 19.8752 +-405.168 38.4361 18.3341 +-403.832 35.0963 16.741 +-403.957 31.8986 15.2157 +-404.449 28.7298 13.7042 +-405.709 25.6061 12.2142 +-405.343 22.3765 10.6737 +-405.244 19.1688 9.14359 +-405.314 15.9723 7.61886 +-146.411 4.61467 2.20121 +-148.149 3.50147 1.67021 +-145.578 2.29351 1.09401 +-146.994 1.15782 0.552286 +120.3 5.77316e-15 5.68434e-14 +120.295 0.951563 0.443406 +120.182 1.90148 0.886042 +120.859 2.86864 1.33672 +120.227 3.80553 1.77329 +120.685 4.77614 2.22557 +121.034 5.74955 2.67915 +120.974 6.7067 3.12516 +120.805 7.65702 3.56799 +120.627 8.60517 4.0098 +120.54 9.55895 4.45424 +121.239 10.5816 4.93076 +121.033 11.5307 5.37303 +120.719 12.4671 5.80938 +120.495 13.4104 6.24894 +121.254 14.4696 6.74248 +121.011 15.4155 7.18327 +120.759 16.3587 7.62275 +121.189 17.3983 8.10721 +120.82 18.3263 8.53963 +121.328 19.3916 9.036 +120.252 20.2018 9.41356 +120.74 21.2733 9.91285 +120.531 22.2276 10.3575 +121.095 23.3309 10.8716 +120.67 24.2485 11.2992 +120.53 25.2225 11.7531 +121.06 26.3442 12.2758 +120.705 27.2789 12.7113 +120.631 28.2779 13.1768 +120.837 29.3484 13.6757 +121.225 30.4727 14.1995 +120.734 31.3804 14.6225 +121.291 32.5659 15.1749 +120.781 33.471 15.5967 +120.645 34.4797 16.0667 +121.069 35.6568 16.6152 +120.627 36.5843 17.0474 +121.121 37.8026 17.6151 +120.941 38.8197 18.0891 +120.469 39.7439 18.5197 +120.737 40.9175 19.0666 +120.152 41.806 19.4806 +120.489 43.0205 20.0466 +120.163 44.0059 20.5057 +120.474 45.2322 21.0771 +120.218 46.2543 21.5534 +120.685 47.5649 22.1641 +120.131 48.4808 22.5909 +120.57 49.8051 23.208 +119.905 50.6803 23.6158 +120.315 52.017 24.2387 +120.528 53.2846 24.8294 +119.832 54.155 25.235 +120.108 55.4712 25.8482 +119.569 56.4191 26.29 +119.993 57.8309 26.9478 +120.046 59.0805 27.5301 +120.085 60.3355 28.1149 +120.283 61.6847 28.7436 +119.685 62.6338 29.1859 +119.766 63.9461 29.7974 +119.918 65.3112 30.4335 +119.284 66.2572 30.8743 +119.32 67.5825 31.4918 +113.942 65.7965 30.6596 +113.472 66.794 31.1244 +119.246 71.5412 33.3365 +119.381 72.9886 34.011 +119.251 74.2895 34.6171 +119.105 75.5939 35.2249 +119.187 77.0594 35.9079 +119.087 78.4255 36.5444 +118.81 79.688 37.1327 +118.917 81.2248 37.8488 +119.003 82.7693 38.5685 +118.911 84.2097 39.2397 +118.8 85.6549 39.9131 +118.204 86.7624 40.4292 +118.907 88.8473 41.4007 +119.12 90.6001 42.2175 +119.156 92.2457 42.9843 +118.414 93.3035 43.4772 +118.185 94.7765 44.1636 +115.41 94.1918 43.8912 +114.352 94.9786 44.2578 +111.97 94.6432 44.1015 +110.475 95.0257 44.2797 +107.469 94.0704 43.8346 +105.989 94.4085 43.9921 +103.733 94.026 43.8139 +102.263 94.3251 43.9532 +99.9613 93.8265 43.7209 +98.0217 93.6271 43.628 +95.0706 92.4107 43.0612 +93.8395 92.8249 43.2542 +94.0798 94.7085 44.1319 +94.5559 96.8748 45.1414 +94.0789 98.0976 45.7112 +94.3648 100.148 46.6666 +94.7469 102.349 47.6921 +94.2668 103.654 48.3003 +94.8386 106.157 49.4665 +94.809 108.037 50.3429 +94.8119 109.998 51.2565 +94.4798 111.606 52.0058 +93.9433 113.001 52.6558 +93.8036 114.905 53.5432 +94.222 117.549 54.7752 +94.1319 119.619 55.7395 +94.0092 121.695 56.7072 +94.0234 124.003 57.7825 +93.7207 125.945 58.6872 +93.6085 128.193 59.7347 +93.7868 130.905 60.9985 +93.7051 133.323 62.1253 +93.4248 135.52 63.1492 +93.684 138.572 64.5713 +92.9644 140.241 65.3489 +93.0825 143.236 66.7444 +93.05 146.085 68.0723 +93.0681 149.104 69.4788 +92.938 151.975 70.8169 +92.9505 155.174 72.3075 +93.1432 158.784 73.9898 +93.2732 162.409 75.6788 +92.9319 165.322 77.0359 +92.9876 169.051 78.774 +92.6278 172.143 80.2147 +92.8182 176.387 82.1922 +92.5957 179.99 83.8711 +91.5643 182.118 84.8624 +90.7836 184.822 86.1228 +88.8014 185.118 86.2605 +88.6569 189.318 88.2178 +85.3001 186.662 86.9802 +91.4415 205.147 95.5936 +88.9498 204.681 95.3765 +86.8684 205.123 95.5827 +84.7502 205.463 95.741 +82.5295 205.53 95.7719 +80.2805 205.491 95.7537 +77.7782 204.746 95.407 +75.582 204.753 95.4099 +73.6078 205.343 95.6849 +71.2673 204.88 95.469 +69.2044 205.175 95.6067 +67.056 205.193 95.6152 +65.078 205.716 95.8589 +62.614 204.651 95.3626 +60.7966 205.664 95.8344 +58.4137 204.733 95.4006 +56.4162 205.099 95.5713 +54.2294 204.745 95.4061 +52.2111 204.988 95.5197 +50.0408 204.598 95.3377 +48.1523 205.34 95.6836 +46.0141 205.003 95.5265 +43.9433 204.914 95.4851 +41.8413 204.629 95.3525 +39.9738 205.489 95.7529 +37.7299 204.367 95.23 +35.8391 205.104 95.5738 +33.7745 204.842 95.4517 +31.8289 205.281 95.6562 +29.7469 204.806 95.4348 +27.7253 204.674 95.3732 +25.6632 204.165 95.1362 +23.7175 204.541 95.3111 +21.6516 203.818 94.9744 +19.6972 204.072 95.0927 +17.7082 203.949 95.0353 +15.7859 204.624 95.3499 +13.8336 205.012 95.5307 +11.7965 204.028 95.072 +9.80564 203.57 94.8587 +7.86984 204.274 95.1869 +5.8872 203.785 94.9588 +3.93726 204.458 95.2726 +1.96434 204.028 95.072 +1.46549e-14 204.308 95.2025 +-1.96347 203.937 95.0298 +-3.9233 203.733 94.9347 +-5.86887 203.15 94.6632 +-7.85239 203.821 94.9757 +-9.79691 203.389 94.7742 +-11.7913 203.937 95.0298 +-13.742 203.655 94.8984 +-15.744 204.081 95.0969 +-17.6611 203.407 94.7827 +-19.7059 204.163 95.1349 +-21.6707 203.999 95.0585 +-23.6757 204.18 95.143 +-25.6066 203.715 94.9263 +-27.579 203.594 94.8701 +-29.5642 203.548 94.8486 +-31.4392 202.769 94.4853 +-33.4936 203.139 94.6581 +-35.4793 203.046 94.6146 +-37.4493 202.847 94.5217 +-39.5571 203.346 94.7544 +-41.4404 202.669 94.4389 +-43.5235 202.956 94.5728 +-45.3761 202.16 94.2019 +-47.5286 202.681 94.4444 +-49.5214 202.474 94.3481 +-51.6488 202.78 94.4908 +-53.6224 202.452 94.3379 +-55.7388 202.636 94.4237 +-57.8127 202.626 94.419 +-59.8648 202.512 94.3658 +-61.9191 202.38 94.3041 +-64.3613 203.451 94.8034 +-66.3176 202.934 94.5622 +-68.3857 202.749 94.476 +-70.6057 202.978 94.5829 +-72.7735 203.015 94.6002 +-74.9156 202.947 94.5685 +-76.9969 202.69 94.4486 +-79.2124 202.757 94.4798 +-81.264 202.378 94.3033 +-83.5945 202.662 94.4355 +-85.865 202.754 94.4786 +-87.8137 202.067 94.1584 +-90.3926 202.793 94.4967 +-92.5711 202.573 94.3941 +-94.8304 202.501 94.3607 +-96.9359 202.075 94.1622 +-99.6505 202.875 94.5348 +-101.724 202.325 94.2788 +-104.133 202.417 94.3215 +-106.465 202.322 94.2771 +-108.716 202.043 94.147 +-111.103 201.986 94.1208 +-113.725 202.311 94.272 +-116.084 202.128 94.1867 +-118.87 202.642 94.4262 +-120.817 201.694 93.9844 +-123.433 201.84 94.0528 +-126.011 201.882 94.0723 +-128.6 201.898 94.0799 +-130.945 201.498 93.8932 +-136.743 206.282 96.1225 +-139.455 206.275 96.1191 +-142.071 206.086 96.0312 +-143.781 204.572 95.3259 +-143.621 200.462 93.4104 +-143.448 196.446 91.5393 +-145.278 195.229 90.9721 +-146.982 193.848 90.3288 +-151.195 195.722 91.2018 +-611.887 777.56 362.325 +-614.471 766.603 357.219 +-618.794 757.998 353.209 +-621.494 747.573 348.351 +-626.537 740.111 344.874 +-628.467 729.127 339.756 +-633.533 721.93 336.402 +-635.488 711.326 331.461 +-640.404 704.175 328.129 +-642.98 694.568 323.652 +-647.045 686.699 319.985 +-648.842 676.561 315.261 +-654.139 670.181 312.288 +-656.083 660.469 307.763 +-660.592 653.449 304.492 +-662.766 644.222 300.192 +-667.016 637.114 296.88 +-669.512 628.423 292.83 +-673.854 621.551 289.628 +-677.196 613.826 286.028 +-681.083 606.667 282.692 +-683.661 598.423 278.851 +-687.873 591.683 275.71 +-690.252 583.437 271.868 +-694.884 577.159 268.942 +-704.13 574.673 267.784 +-715.627 573.886 267.417 +-115.169 90.7465 42.2857 +-114.061 88.3012 41.1462 +-112.762 85.7642 39.9641 +-111.268 83.1394 38.741 +-111.287 81.6856 38.0636 +-110.739 79.843 37.2049 +-110.716 78.4059 36.5353 +-110.276 76.6995 35.7401 +-110.371 75.3879 35.129 +-109.566 73.4876 34.2435 +-110.269 72.6182 33.8383 +-109.987 71.1116 33.1363 +-109.521 69.511 32.3905 +-109.774 68.3853 31.8659 +-110.345 67.4638 31.4365 +-110.156 66.0881 30.7955 +-110.117 64.8193 30.2042 +-110.569 63.8484 29.7518 +-110.331 62.4911 29.1193 +-110.502 61.3791 28.6012 +-111.346 60.6428 28.2581 +-111.667 59.6218 27.7823 +-111.371 58.283 27.1585 +-111.928 57.3999 26.747 +-112.389 56.4683 26.3129 +-113.367 55.7935 25.9984 +-113.635 54.767 25.5201 +-114.424 53.9916 25.1588 +-115.385 53.2902 24.832 +-115.983 52.4159 24.4246 +-115.855 51.2183 23.8665 +-117.878 50.9634 23.7477 +-118.817 50.2206 23.4016 +-124.665 51.4966 23.9962 +-127.44 51.4303 23.9653 +-160.394 63.215 29.4567 +-162.101 62.369 29.0625 +-161.864 60.7721 28.3184 +-161.237 59.0481 27.515 +-865.94 309.184 144.072 +-163.19 56.7808 26.4585 +-165.51 56.0909 26.137 +-3078.9 1015.76 473.322 +-3088.56 991.373 461.956 +-888.598 277.337 129.233 +-895.502 271.592 126.556 +-899.795 265.003 123.485 +-381.487 109.026 50.8037 +-381.948 105.846 49.3216 +-383.24 102.898 47.948 +-383.543 99.6875 46.452 +-381.887 95.9965 44.7321 +-382.796 92.9718 43.3226 +-903.475 211.79 98.6892 +-406.457 91.8578 42.8035 +-406.84 88.5335 41.2545 +-406.41 85.047 39.6299 +-406.725 81.731 38.0847 +-406.518 78.3223 36.4963 +-406.669 74.9953 34.946 +-403.94 71.1704 33.1637 +-405.494 68.1212 31.7429 +-406.726 65.0057 30.2911 +-405.265 61.4719 28.6444 +-407.323 58.4766 27.2487 +-406.09 55.0113 25.6339 +-404.128 51.4816 23.9892 +-403.32 48.1293 22.4271 +-406.15 45.2023 21.0632 +-404.185 41.7418 19.4507 +-404.572 38.5431 17.9602 +-406.42 35.4718 16.529 +-404.854 32.1056 14.9604 +-405.147 28.902 13.4677 +-404.412 25.633 11.9444 +-404.744 22.4387 10.4559 +-405.543 19.2647 8.97691 +-405.314 16.0404 7.47445 +-148.41 4.69761 2.18897 +-146.05 3.46657 1.61534 +-145.978 2.30961 1.07622 +-146.394 1.15801 0.539605 +120.3 5.77316e-15 5.68434e-14 +120.295 0.955523 0.434805 +120.282 1.91097 0.869576 +120.859 2.88058 1.31079 +120.127 3.8182 1.73745 +120.685 4.79602 2.1824 +121.034 5.77348 2.62718 +120.974 6.73461 3.06454 +120.805 7.68889 3.49878 +120.527 8.63384 3.92877 +121.337 9.66227 4.39675 +121.14 10.6169 4.83114 +121.033 11.5787 5.26881 +120.719 12.519 5.69669 +120.495 13.4663 6.12773 +121.254 14.5298 6.6117 +120.219 15.3783 6.9978 +120.858 16.4402 7.48102 +121.288 17.485 7.95645 +121.017 18.4326 8.38765 +121.328 19.4723 8.86073 +121.137 20.4352 9.29889 +120.838 21.3792 9.72847 +120.531 22.3201 10.1566 +120.312 23.2765 10.5918 +120.768 24.3692 11.0891 +120.53 25.3275 11.5251 +121.06 26.4538 12.0376 +120.511 27.3484 12.4447 +121.309 28.5552 12.9939 +120.837 29.4706 13.4104 +121.321 30.6238 13.9352 +120.734 31.5111 14.3389 +121.099 32.6497 14.857 +121.068 33.6903 15.3305 +121.504 34.8695 15.8671 +121.069 35.8052 16.2929 +121.385 36.9676 16.8219 +120.837 37.8711 17.233 +121.224 39.0725 17.7797 +120.469 39.9093 18.1605 +120.643 41.0559 18.6822 +120.899 42.2409 19.2214 +120.582 43.233 19.6729 +120.348 44.2573 20.139 +119.735 45.1419 20.5415 +120.218 46.4468 21.1353 +120.685 47.7629 21.7342 +120.131 48.6826 22.1527 +120.479 49.9747 22.7406 +119.905 50.8912 23.1577 +120.224 52.1944 23.7507 +119.719 53.1472 24.1843 +119.832 54.3805 24.7455 +120.286 55.7847 25.3845 +119.569 56.6539 25.78 +119.816 57.9861 26.3862 +120.046 59.3265 26.9961 +120.173 60.6307 27.5896 +119.5 61.5381 28.0025 +119.685 62.8945 28.6197 +119.853 64.2585 29.2404 +119.318 65.2549 29.6938 +119.199 66.4855 30.2538 +119.066 67.7192 30.8152 +113.436 65.7769 29.9314 +115.569 68.3114 31.0846 +119.246 71.839 32.6899 +119.464 73.3433 33.3744 +119.333 74.6502 33.9691 +119.023 75.8563 34.5179 +118.372 76.8516 34.9708 +118.44 78.324 35.6408 +118.89 80.0738 36.4371 +118.757 81.4533 37.0648 +118.844 83.003 37.77 +118.832 84.5042 38.4531 +118.8 86.0114 39.1389 +118.826 87.5818 39.8535 +118.83 89.1591 40.5713 +118.737 90.6847 41.2655 +119.08 92.5705 42.1236 +119.395 94.4683 42.9872 +118.035 95.0508 43.2523 +117.194 96.0457 43.705 +115.531 96.3579 43.847 +112.775 95.7198 43.5567 +110.547 95.4841 43.4494 +108.908 95.7262 43.5596 +107.344 96.0138 43.6905 +105.076 95.6397 43.5202 +103.524 95.8864 43.6325 +101.351 95.5269 43.4689 +99.2607 95.2056 43.3227 +97.0484 94.7259 43.1044 +94.7177 94.0833 42.812 +94.3474 95.373 43.3989 +93.827 96.5281 43.9245 +94.0789 98.5059 44.8245 +93.5855 99.7338 45.3832 +94.6826 102.705 46.7351 +94.7757 104.647 47.6189 +94.3351 106.032 48.2493 +94.7467 108.416 49.3341 +94.504 110.097 50.099 +93.9928 111.494 50.7344 +94.4248 114.053 51.8991 +93.863 115.457 52.5381 +94.222 118.039 53.7127 +94.0739 120.043 54.6248 +94.1239 122.351 55.6751 +93.9668 124.445 56.6277 +93.9444 126.77 57.686 +93.6085 128.726 58.576 +93.4056 130.915 59.5721 +93.7051 133.878 60.9203 +93.4778 136.162 61.9595 +93.3705 138.684 63.1071 +93.3764 141.448 64.365 +93.5901 144.616 65.8063 +93.05 146.694 66.7519 +93.0681 149.724 68.1311 +92.9865 152.687 69.4793 +93.38 156.54 71.2325 +93.1432 159.445 72.5546 +93.2732 163.085 74.2109 +93.0227 166.172 75.6153 +92.943 169.674 77.2091 +92.584 172.778 78.6214 +92.8182 177.121 80.5979 +92.6379 180.822 82.282 +91.6057 182.958 83.254 +90.6209 185.259 84.3011 +88.7615 185.806 84.5496 +89.2039 191.279 87.04 +84.1521 184.916 84.1449 +91.5164 206.169 93.816 +88.8765 205.364 93.4495 +86.9042 206.062 93.7671 +84.2949 205.21 93.3795 +82.29 205.786 93.6416 +80.1804 206.088 93.7791 +77.8433 205.771 93.6346 +75.6137 205.691 93.5986 +73.3915 205.591 93.553 +71.147 205.385 93.459 +69.1751 205.943 93.7129 +66.8572 205.437 93.4826 +64.7472 205.522 93.5215 +62.5872 205.415 93.4726 +60.486 205.465 93.4954 +58.4137 205.585 93.5501 +56.3436 205.688 93.5969 +54.2294 205.597 93.5555 +52.0762 205.31 93.425 +49.9543 205.093 93.3264 +47.9029 205.126 93.3414 +45.9144 205.41 93.4706 +43.9433 205.767 93.6329 +41.7684 205.124 93.3401 +39.8696 205.806 93.6507 +37.6639 204.858 93.2192 +35.714 205.239 93.3927 +33.7005 205.245 93.3956 +31.6897 205.235 93.3906 +29.5772 204.485 93.0498 +27.7131 205.436 93.4822 +25.5386 204.02 92.8381 +23.5921 204.306 92.9682 +21.7091 205.21 93.3795 +19.6885 204.83 93.2067 +17.7004 204.708 93.1508 +15.7022 204.386 93.0046 +13.7787 205.048 93.3057 +11.7494 204.059 92.8555 +9.79691 204.235 92.9359 +7.83145 204.123 92.8849 +5.86887 203.996 92.8269 +3.91457 204.126 92.8862 +1.95823 204.24 92.9379 +1.45439e-14 203.884 92.776 +-1.95911 204.331 92.9794 +-3.91283 204.035 92.8448 +-5.87934 204.36 92.9926 +-7.83843 204.305 92.9678 +-9.76638 203.599 92.6464 +-11.7494 204.059 92.8555 +-13.681 203.594 92.6443 +-15.7092 204.476 93.0456 +-17.7004 204.708 93.1508 +-19.6013 203.924 92.7942 +-21.6132 204.304 92.9674 +-23.6339 204.668 93.1326 +-25.5726 204.292 92.9616 +-27.5303 204.08 92.8655 +-29.4467 203.583 92.6393 +-31.481 203.883 92.7756 +-33.4641 203.805 92.74 +-35.495 203.98 92.8199 +-37.3998 203.421 92.5656 +-39.366 203.207 92.4679 +-41.2217 202.438 92.1183 +-43.4472 203.444 92.576 +-45.416 203.18 92.4558 +-47.4662 203.257 92.4906 +-49.4348 202.961 92.356 +-51.5138 203.093 92.4161 +-53.6457 203.384 92.5486 +-55.5453 202.773 92.2707 +-57.7627 203.294 92.5076 +-59.7613 203.003 92.3751 +-61.8657 203.046 92.395 +-64.1132 203.51 92.6058 +-66.062 202.993 92.3705 +-68.298 203.331 92.5246 +-70.5757 203.735 92.7085 +-72.6808 203.6 92.6468 +-74.5666 202.843 92.3022 +-76.9318 203.361 92.5383 +-79.0455 203.172 92.4521 +-81.4008 203.563 92.6298 +-83.5945 203.505 92.6037 +-85.7575 203.343 92.53 +-87.7037 202.654 92.2164 +-90.1678 203.131 92.4335 +-92.6094 203.501 92.6016 +-94.6351 202.924 92.3395 +-96.6966 202.416 92.1079 +-99.081 202.555 92.1713 +-101.6 202.92 92.3374 +-103.753 202.518 92.1543 +-106.422 203.082 92.4111 +-108.716 202.884 92.3208 +-111.059 202.745 92.2579 +-113.452 202.667 92.2222 +-116.084 202.969 92.3598 +-118.448 202.762 92.2657 +-120.769 202.454 92.1253 +-123.433 202.681 92.2285 +-126.011 202.722 92.2475 +-128.25 202.187 92.004 +-130.945 202.336 92.0719 +-135.919 205.892 93.6897 +-139.037 206.512 93.9721 +-142.018 206.867 94.1333 +-143.781 205.424 93.4768 +-143.621 201.296 91.5985 +-143.448 197.264 89.7637 +-144.831 195.438 88.9328 +-146.982 194.655 88.5766 +-150.392 195.494 88.9581 +-614.035 783.538 356.544 +-616.939 772.887 351.697 +-620.757 763.568 347.456 +-623.42 753.011 342.653 +-628.12 745.07 339.039 +-630.991 735.103 334.504 +-634.654 726.217 330.46 +-637.627 716.692 326.126 +-642.312 709.213 322.723 +-644.587 699.202 318.167 +-648.864 691.496 314.661 +-651.729 682.399 310.521 +-655.132 673.994 306.696 +-658.692 665.855 302.993 +-662.619 658.182 299.502 +-664.607 648.7 295.187 +-668.736 641.416 291.872 +-671.457 632.872 287.984 +-675.747 625.891 284.808 +-678.469 617.54 281.007 +-683.08 610.979 278.022 +-685.603 602.621 274.219 +-689.613 595.649 271.046 +-692.446 587.728 267.442 +-696.432 580.853 264.313 +-702.643 575.847 262.035 +-115.04 92.6379 42.1543 +-114.565 90.6462 41.248 +-113.072 87.9002 39.9984 +-112.762 86.1212 39.1889 +-111.654 83.7749 38.1212 +-110.976 81.7966 37.221 +-110.739 80.1753 36.4833 +-110.164 78.3401 35.6481 +-109.641 76.5755 34.8452 +-110.371 75.7017 34.4476 +-109.566 73.7935 33.5792 +-110.269 72.9204 33.182 +-110.068 71.4604 32.5176 +-110.258 70.2702 31.976 +-109.691 68.6185 31.2244 +-110.262 67.6937 30.8036 +-110.073 66.3129 30.1753 +-110.034 65.0395 29.5958 +-110.484 64.0652 29.1525 +-110.585 62.8959 28.6204 +-111.27 62.0627 28.2412 +-111.775 61.1296 27.8166 +-111.409 59.7313 27.1803 +-111.371 58.5256 26.6317 +-112.537 57.9525 26.3709 +-113.088 57.0564 25.9632 +-113.28 55.9823 25.4744 +-114.077 55.2086 25.1223 +-114.158 54.0902 24.6134 +-115.296 53.4707 24.3315 +-116.341 52.7965 24.0247 +-117.383 52.1099 23.7123 +-118.148 51.2931 23.3406 +-119.542 50.7373 23.0877 +-129.033 53.5227 24.3551 +-154.206 62.4914 28.4363 +-161.586 63.95 29.1 +-161.365 62.344 28.3692 +-163.157 61.5128 27.991 +-162.906 59.9076 27.2606 +-879.338 315.274 143.463 +-3058.88 1068.74 486.324 +-166.353 56.6113 25.7606 +-3078.9 1019.99 464.141 +-885.612 285.448 129.891 +-890.395 279.055 126.982 +-896.64 273.07 124.259 +-902.267 266.837 121.422 +-381.964 109.618 49.8808 +-382.522 106.446 48.4378 +-382.857 103.223 46.9707 +-383.351 100.052 45.5282 +-381.405 96.2741 43.8089 +-3164.86 771.865 351.232 +-3172.14 746.697 339.78 +-405.972 92.13 41.9232 +-406.451 88.8171 40.4156 +-406.41 85.401 38.8612 +-407.799 82.2879 37.4446 +-407.105 78.7618 35.84 +-405.395 75.0716 34.1608 +-405.707 71.7793 32.6627 +-405.003 68.3218 31.0894 +-406.233 65.1972 29.6676 +-404.377 61.5925 28.0273 +-406.137 58.5492 26.6424 +-405.497 55.1596 25.1 +-405.713 51.8986 23.6161 +-405.204 48.5554 22.0948 +-405.654 45.335 20.6294 +-403.887 41.8846 19.0593 +-406.461 38.8843 17.694 +-405.524 35.541 16.1727 +-404.555 32.2154 14.6594 +-404.449 28.9723 13.1837 +-404.512 25.7461 11.7156 +-405.343 22.5654 10.2682 +-405.743 19.3545 8.80713 +-404.315 16.0675 7.31141 +-148.709 4.72669 2.15085 +-3275.38 78.0664 35.5236 +-145.878 2.31764 1.05463 +-145.894 1.15886 0.527332 +120.3 5.77316e-15 5.68434e-14 +120.295 0.959407 0.426167 +120.282 1.91874 0.852301 +119.959 2.87075 1.27518 +120.127 3.83372 1.70293 +120.685 4.81551 2.13904 +120.435 5.76825 2.56225 +120.175 6.71735 2.98383 +120.805 7.72014 3.42927 +120.627 8.67611 3.85391 +121.337 9.70154 4.30941 +121.14 10.66 4.73517 +121.033 11.6258 5.16414 +121.613 12.663 5.62489 +121.388 13.6212 6.05053 +121.254 14.5889 6.48035 +121.011 15.5426 6.904 +120.759 16.4935 7.32639 +120.498 17.4417 7.74756 +121.017 18.5076 8.22102 +121.328 19.5514 8.6847 +120.154 20.3517 9.04019 +120.936 21.4836 9.54296 +120.629 22.429 9.96292 +120.41 23.3901 10.3899 +120.768 24.4683 10.8688 +120.432 25.4099 11.287 +120.963 26.5401 11.789 +120.705 27.5038 12.2171 +120.438 28.4654 12.6443 +120.741 29.5667 13.1335 +121.225 30.7239 13.6475 +120.831 31.6643 14.0652 +120.332 32.5748 14.4697 +120.208 33.5867 14.9191 +120.55 34.7364 15.4299 +121.165 35.979 15.9818 +120.532 36.8568 16.3717 +120.932 38.0548 16.9039 +120.187 38.8957 17.2774 +120.469 40.0716 17.7997 +120.924 41.3188 18.3537 +120.152 42.1507 18.7232 +120.582 43.4087 19.2821 +120.256 44.403 19.7237 +120.566 45.6401 20.2732 +120.218 46.6356 20.7154 +120.685 47.957 21.3024 +120.131 48.8805 21.7126 +120.479 50.1778 22.2889 +119.995 51.1367 22.7148 +120.315 52.4458 23.2963 +120.528 53.7239 23.864 +119.832 54.6015 24.2539 +120.108 55.9285 24.8433 +120.367 57.264 25.4366 +120.522 58.565 26.0145 +120.046 59.5676 26.4598 +120.173 60.8771 27.0415 +119.413 61.7432 27.4262 +119.685 63.1502 28.0512 +119.939 64.566 28.6801 +119.318 65.5202 29.1039 +119.284 66.8034 29.674 +118.896 67.8976 30.16 +112.171 65.3077 29.0095 +116.407 69.0867 30.6882 +119.246 72.131 32.0404 +119.299 73.5392 32.666 +118.592 74.4878 33.0874 +119.023 76.1647 33.8322 +119.187 77.6947 34.5118 +118.602 78.7497 34.9805 +119.132 80.5623 35.7856 +118.997 81.9493 36.4017 +118.686 83.2291 36.9702 +118.832 84.8477 37.6892 +118.722 86.3041 38.3361 +118.67 87.8228 39.0107 +118.676 89.4053 39.7136 +118.737 91.0533 40.4457 +118.699 92.6498 41.1548 +119.923 95.2717 42.3195 +118.784 96.0431 42.6621 +117.788 96.925 43.0539 +116.195 97.3052 43.2228 +113.433 96.67 42.9406 +112.433 97.508 43.3129 +109.555 96.6864 42.9479 +107.986 96.9807 43.0786 +105.783 96.6746 42.9427 +103.594 96.341 42.7945 +101.351 95.9151 42.6053 +99.8802 96.1893 42.7271 +98.276 96.3136 42.7823 +96.204 95.948 42.6199 +93.8121 95.2178 42.2956 +94.4234 97.5364 43.3255 +94.0789 98.9063 43.934 +93.9751 100.557 44.6671 +94.8112 103.263 45.8691 +94.8393 105.143 46.7042 +94.3981 106.535 47.3225 +94.7467 108.857 48.354 +94.5656 110.616 49.1354 +93.9928 111.947 49.7265 +93.8831 113.859 50.5761 +93.7441 115.78 51.429 +94.2808 118.593 52.6786 +94.1319 120.605 53.5725 +93.9518 122.624 54.4692 +93.9102 124.875 55.4691 +93.8885 127.21 56.5063 +93.5533 129.174 57.3787 +93.2422 131.217 58.2864 +93.5976 134.269 59.6418 +93.4778 136.715 60.7286 +93.7885 139.871 62.1303 +93.3249 141.945 63.0518 +93.4886 145.046 64.4292 +93.1 147.369 65.4611 +93.1173 150.413 66.8129 +92.9865 153.308 68.099 +93.38 157.176 69.8174 +93.0962 160.013 71.0775 +92.8576 163.019 72.4126 +93.0227 166.847 74.1131 +92.943 170.364 75.6752 +92.9785 174.219 77.388 +92.8612 177.924 79.0337 +92.6802 181.639 80.6839 +91.2325 182.954 81.2676 +90.3769 185.512 82.4039 +88.2432 185.47 82.3856 +90.0245 193.823 86.0956 +83.9607 185.246 82.2857 +91.5539 207.092 91.99 +88.9132 206.283 91.6307 +86.51 205.961 91.4874 +84.435 206.387 91.6766 +82.0506 206.021 91.5142 +79.88 206.151 91.5719 +77.6154 206.003 91.5061 +75.455 206.093 91.5463 +73.1134 205.645 91.347 +71.2973 206.655 91.7959 +68.8535 205.818 91.4241 +66.8572 206.272 91.6254 +64.6921 206.182 91.5857 +62.6407 206.426 91.6941 +60.486 206.3 91.638 +58.1883 205.625 91.338 +56.2468 206.169 91.58 +53.9492 205.366 91.2231 +52.0762 206.145 91.569 +50.0192 206.195 91.5913 +47.8821 205.87 91.4472 +45.8945 206.156 91.5739 +43.8479 206.155 91.5735 +41.8048 206.137 91.5658 +39.7133 205.833 91.4306 +37.6474 205.601 91.3275 +35.6514 205.712 91.377 +33.5971 205.446 91.2589 +31.6201 205.616 91.3344 +29.5772 205.317 91.2012 +27.6765 205.998 91.5041 +25.5613 205.031 91.0746 +23.6443 205.591 91.323 +21.6324 205.317 91.2012 +19.61 204.844 90.9914 +17.6533 204.992 91.0571 +15.7022 205.217 91.157 +13.7603 205.608 91.3307 +11.7494 204.888 91.0108 +9.78819 204.882 91.0084 +7.85239 205.501 91.2832 +5.86364 204.642 90.9016 +3.91108 204.773 90.9597 +1.95911 205.161 91.1322 +1.44329e-14 204.895 91.0141 +-1.95387 204.613 90.8886 +-3.91108 204.773 90.9597 +-5.86625 204.734 90.9422 +-7.84192 205.227 91.1614 +-9.77947 204.701 90.9276 +-11.7442 204.797 90.9702 +-13.6932 204.605 90.885 +-15.6534 204.578 90.8732 +-17.6219 204.628 90.8955 +-19.6275 205.026 91.0721 +-21.6228 205.225 91.1606 +-23.5398 204.681 90.9191 +-25.5613 205.031 91.0746 +-27.5303 204.91 91.0206 +-29.512 204.864 91.0003 +-31.467 204.621 90.8923 +-33.4493 204.543 90.8574 +-35.3385 203.907 90.5753 +-37.3338 203.888 90.5667 +-39.4181 204.302 90.7506 +-41.3675 203.98 90.6077 +-43.2373 203.284 90.2984 +-45.4559 204.185 90.6987 +-47.2791 203.279 90.296 +-49.5863 204.41 90.7985 +-51.4688 203.74 90.501 +-53.4123 203.322 90.315 +-55.642 203.952 90.5951 +-57.8628 204.474 90.8269 +-59.7872 203.917 90.5793 +-61.7588 203.52 90.4031 +-63.8652 203.546 90.4149 +-65.8348 203.117 90.2241 +-68.0934 203.545 90.4145 +-70.3351 203.866 90.557 +-72.4954 203.906 90.5748 +-74.4397 203.321 90.3146 +-76.7039 203.583 90.4311 +-79.0455 203.998 90.6154 +-81.0246 203.445 90.3698 +-83.5245 204.161 90.6877 +-85.5424 203.658 90.4644 +-87.887 203.903 90.5732 +-89.9805 203.534 90.4092 +-92.1502 203.314 90.3118 +-94.6351 203.749 90.505 +-97.0156 203.909 90.5761 +-99.2437 203.712 90.4884 +-101.31 203.163 90.2444 +-103.837 203.506 90.397 +-106.121 203.33 90.3187 +-108.322 202.969 90.1583 +-111.059 203.569 90.425 +-113.407 203.408 90.3536 +-115.76 203.227 90.2728 +-118.025 202.86 90.11 +-120.817 203.356 90.3305 +-123.045 202.865 90.1121 +-125.519 202.751 90.0617 +-127.9 202.454 89.9298 +-130.539 202.529 89.9631 +-135.352 205.868 91.446 +-138.932 207.196 92.0359 +-141.541 207.01 91.9535 +-143.996 206.567 91.7566 +-143.621 202.114 89.7788 +-143.448 198.066 87.9804 +-144.775 196.157 87.1324 +-146.982 195.447 86.817 +-150.162 195.988 87.0577 +-615.197 788.211 350.122 +-618.291 777.729 345.466 +-622.898 769.316 341.729 +-625.406 758.48 336.915 +-629.764 750.056 333.173 +-632.838 740.251 328.818 +-636.832 731.672 325.007 +-639.641 721.878 320.657 +-643.33 713.223 316.812 +-646.13 703.725 312.593 +-650.097 695.626 308.996 +-653.172 686.691 305.027 +-657.054 678.717 301.485 +-659.763 669.648 297.457 +-664.24 662.474 294.27 +-666.176 652.874 290.005 +-669.494 644.752 286.398 +-672.916 636.824 282.876 +-677.709 630.26 279.96 +-679.812 621.277 275.97 +-684.364 614.615 273.011 +-686.898 606.213 269.279 +-691.354 599.58 266.332 +-693.762 591.239 262.627 +-697.833 584.387 259.583 +-702.346 577.943 256.721 +-115.264 93.1963 41.3976 +-114.263 90.7747 40.322 +-112.464 87.7827 38.9929 +-112.455 86.2362 38.306 +-110.96 83.5922 37.1315 +-110.432 81.7263 36.3027 +-109.956 79.9323 35.5058 +-109.691 78.3209 34.79 +-109.324 76.6642 34.0541 +-110.292 75.9545 33.7388 +-109.244 73.876 32.8156 +-110.269 73.2168 32.5228 +-109.743 71.5386 31.7773 +-110.176 70.5034 31.3175 +-109.362 68.6903 30.5121 +-110.096 67.8666 30.1462 +-109.489 66.2293 29.4189 +-110.117 65.3536 29.03 +-110.231 64.1784 28.5079 +-110.501 63.1031 28.0303 +-110.928 62.1239 27.5953 +-111.175 61.0486 27.1177 +-111.839 60.206 26.7434 +-111.804 58.9919 26.2041 +-112.276 58.053 25.787 +-112.564 57.0225 25.3293 +-113.104 56.1226 24.9295 +-113.812 55.3043 24.566 +-114.957 54.6899 24.2931 +-115.831 53.937 23.9587 +-116.968 53.2966 23.6743 +-116.933 52.1214 23.1522 +-118.87 51.8163 23.0167 +-120.176 51.214 22.7491 +-131.216 54.6498 24.2753 +-158.043 64.3066 28.5649 +-161.953 64.3557 28.5867 +-161.733 62.7403 27.8691 +-162.326 61.448 27.2951 +-163.555 60.3907 26.8254 +-899.249 323.723 143.797 +-3058.88 1073.09 476.663 +-165.791 56.6493 25.1635 +-3078.9 1024.14 454.92 +-886.837 287.004 127.487 +-891.151 280.427 124.565 +-898.347 274.701 122.022 +-3116.14 925.31 411.021 +-382.917 110.337 49.0116 +-381.948 106.718 47.404 +-384.295 104.031 46.2106 +-382.967 100.358 44.579 +-381.983 96.8116 43.0035 +-893.868 218.888 97.2296 +-407.59 96.3337 42.7912 +-407.718 92.9029 41.2673 +-405.964 89.0713 39.5653 +-406.41 85.7481 38.0892 +-406.725 82.4047 36.604 +-406.127 78.8919 35.0436 +-405.395 75.3767 33.4822 +-405.707 72.071 32.0138 +-406.773 68.8993 30.6049 +-404.953 65.2559 28.9865 +-404.673 61.8881 27.4906 +-406.039 58.7728 26.1068 +-405.398 55.3703 24.5954 +-405.317 52.0588 23.1244 +-404.906 48.7169 21.64 +-405.654 45.5193 20.2196 +-406.073 42.2825 18.7818 +-404.273 38.8321 17.2492 +-405.226 35.6591 15.8397 +-404.754 32.3623 14.3753 +-403.951 29.0542 12.9058 +-404.213 25.8315 11.4743 +-404.943 22.6348 10.0543 +-404.645 19.3805 8.60879 +-403.815 16.1129 7.15731 +-3274.5 104.502 46.4196 +-3275.38 78.3837 34.8179 +-145.878 2.32706 1.03368 +-146.894 1.17155 0.5204 +120.4 4.44089e-15 5.68434e-14 +120.295 0.963213 0.417494 +120.282 1.92635 0.834956 +120.859 2.90376 1.2586 +121.026 3.87774 1.68077 +120.685 4.83462 2.09551 +121.234 5.82955 2.52675 +120.974 6.78881 2.94253 +120.905 7.75716 3.36226 +120.527 8.70332 3.77236 +120.44 9.668 4.19049 +121.14 10.7023 4.63881 +120.138 11.5855 5.02162 +120.719 12.6198 5.4699 +121.388 13.6753 5.9274 +121.155 14.6347 6.34326 +121.902 15.7191 6.81329 +120.759 16.5589 7.1773 +121.288 17.6257 7.63969 +121.017 18.581 8.05372 +121.427 19.6448 8.51484 +121.039 20.5829 8.92144 +120.838 21.5513 9.34116 +120.629 22.518 9.76017 +120.41 23.4829 10.1784 +120.768 24.5653 10.6476 +120.627 25.5519 11.0752 +120.963 26.6453 11.5491 +120.511 27.5685 11.9492 +120.438 28.5783 12.3869 +120.741 29.684 12.8662 +120.454 30.6496 13.2847 +120.734 31.7646 13.768 +121.291 32.9646 14.2881 +120.112 33.6931 14.6039 +120.55 34.8742 15.1158 +121.069 36.0933 15.6443 +121.291 37.236 16.1395 +120.837 38.1758 16.5469 +120.47 39.1419 16.9656 +120.469 40.2305 17.4375 +120.924 41.4827 17.9802 +120.899 42.5808 18.4562 +120.675 43.6145 18.9042 +120.256 44.5791 19.3223 +119.735 45.5051 19.7237 +120.954 47.1074 20.4182 +120.043 47.8912 20.7579 +120.131 49.0744 21.2708 +120.57 50.4149 21.8518 +119.995 51.3396 22.2526 +120.405 52.6934 22.8394 +120.438 53.8967 23.3609 +119.921 54.859 23.778 +120.108 56.1503 24.3377 +119.569 57.1099 24.7536 +119.816 58.4527 25.3357 +119.959 59.7601 25.9024 +120.085 61.0742 26.4719 +120.283 62.4399 27.0639 +119.598 63.3548 27.4604 +119.939 64.8222 28.0965 +120.089 66.2053 28.696 +119.284 67.0684 29.0701 +119.066 68.2641 29.5884 +112.424 65.7146 28.4833 +117.246 69.8604 30.2803 +119.412 72.5184 31.4323 +119.464 73.9335 32.0457 +118.592 74.7833 32.414 +119.023 76.4668 33.1437 +119.187 78.0029 33.8095 +119.249 79.4935 34.4556 +119.051 80.8274 35.0338 +118.917 82.2193 35.6371 +118.844 83.671 36.2663 +118.832 85.1842 36.9222 +118.643 86.5893 37.5312 +118.748 88.2289 38.2419 +118.676 89.7599 38.9055 +118.584 91.2965 39.5715 +118.547 92.898 40.2656 +119.169 95.0478 41.1974 +119.833 97.2746 42.1626 +118.755 98.1077 42.5237 +116.932 98.3114 42.612 +115.042 98.4297 42.6633 +113.811 99.0949 42.9516 +110.85 98.2178 42.5714 +109.27 98.5224 42.7035 +106.42 97.6425 42.3221 +104.786 97.8361 42.406 +102.601 97.4828 42.2529 +101.05 97.7021 42.3479 +98.8898 97.2993 42.1734 +97.4201 97.5462 42.2803 +94.0129 95.8001 41.5235 +93.4957 96.9617 42.027 +94.0133 99.2298 43.0101 +93.6504 100.607 43.607 +94.1041 102.899 44.6004 +94.6484 105.348 45.6619 +94.5869 107.171 46.4521 +93.813 108.211 46.9031 +94.4425 110.911 48.0731 +94.0536 112.463 48.746 +93.823 114.238 49.5151 +94.2794 116.902 50.67 +93.693 118.321 51.2848 +93.7255 120.56 52.2556 +94.0665 123.261 53.426 +93.7969 125.219 54.2746 +93.7207 127.487 55.2577 +93.5533 129.686 56.211 +93.8958 132.661 57.5007 +93.7051 134.955 58.4949 +93.6367 137.49 59.5937 +93.3705 139.8 60.5947 +93.3764 142.586 61.8025 +93.4886 145.621 63.1181 +93.1 147.954 64.129 +93.1173 151.009 65.4533 +92.9865 153.916 66.7132 +93.2845 157.638 68.3266 +93.0962 160.648 69.631 +93.2732 164.398 71.2564 +93.0227 167.509 72.6049 +92.943 171.04 74.1352 +92.9785 174.911 75.8131 +92.8612 178.63 77.4253 +92.7224 182.443 79.0781 +91.191 183.596 79.5776 +90.0922 185.66 80.4724 +88.7615 187.301 81.1835 +90.8841 196.449 85.1488 +84.1904 186.489 80.8315 +91.2916 207.318 89.8599 +88.5467 206.248 89.3962 +86.5817 206.949 89.7 +84.2249 206.69 89.5875 +82.0164 206.752 89.6145 +79.7465 206.623 89.5584 +77.4852 206.472 89.4932 +75.2647 206.389 89.457 +73.3297 207.071 89.7529 +71.147 207.038 89.7382 +68.9412 206.898 89.6777 +66.7436 206.738 89.6085 +64.4716 206.294 89.416 +62.5605 206.98 89.7131 +60.3307 206.586 89.5425 +58.1132 206.173 89.3636 +56.2226 206.898 89.6777 +53.9025 206.002 89.2892 +52.0312 206.783 89.628 +49.911 206.565 89.5334 +47.9029 206.777 89.6252 +45.7749 206.434 89.4765 +43.8097 206.793 89.632 +41.7137 206.504 89.5067 +39.7133 206.649 89.57 +37.6309 206.326 89.4296 +35.6358 206.437 89.4781 +33.5675 206.081 89.3234 +31.6062 206.341 89.4363 +29.512 205.677 89.1484 +27.5303 205.723 89.1683 +25.5047 205.389 89.0235 +23.6339 206.315 89.4248 +21.6036 205.857 89.2263 +19.5839 205.382 89.0207 +17.567 204.8 88.7682 +15.6464 205.299 88.9846 +13.7359 206.057 89.313 +11.7756 206.159 89.3576 +9.76638 205.237 88.9579 +7.84192 206.041 89.3063 +5.87411 205.821 89.2108 +3.90585 205.31 88.9893 +1.953 205.333 88.9993 +1.44329e-14 205.433 89.0426 +-1.95649 205.7 89.1583 +-3.91108 205.585 89.1086 +-5.85317 205.087 88.8927 +-7.80353 205.033 88.8692 +-9.80128 205.97 89.2757 +-11.7494 205.701 89.1587 +-13.7054 205.599 89.1146 +-15.6603 205.481 89.0637 +-17.6219 205.44 89.0458 +-19.5839 205.382 89.0207 +-21.5365 205.218 88.9496 +-23.4771 204.946 88.8318 +-25.4481 204.933 88.8259 +-27.4572 205.177 88.9317 +-29.4467 205.222 88.9511 +-31.3696 204.796 88.7666 +-33.4493 205.354 89.0084 +-35.2603 204.263 88.5356 +-37.2017 203.973 88.4099 +-39.1403 203.667 88.2775 +-41.2399 204.158 88.4902 +-43.2564 204.18 88.4998 +-45.2565 204.096 88.4632 +-47.4247 204.713 88.7304 +-49.1751 203.519 88.213 +-51.5363 204.816 88.7754 +-53.529 204.574 88.6704 +-55.5211 204.316 88.5586 +-57.6375 204.486 88.6322 +-59.606 204.105 88.4672 +-61.839 204.592 88.6783 +-63.6998 203.825 88.3459 +-65.9484 204.275 88.5407 +-68.1811 204.616 88.6887 +-70.0645 203.888 88.3729 +-72.2173 203.93 88.3912 +-74.4714 204.214 88.5145 +-76.769 204.564 88.666 +-78.7784 204.114 88.4711 +-81.0246 204.252 88.5308 +-83.2093 204.197 88.5069 +-85.3991 204.123 88.4747 +-87.6304 204.114 88.4711 +-89.8681 204.085 88.4584 +-92.1502 204.121 88.4739 +-94.5179 204.304 88.5535 +-96.896 204.466 88.6235 +-98.9997 204.017 88.429 +-101.227 203.801 88.3355 +-103.499 203.648 88.2691 +-105.777 203.474 88.1935 +-108.453 204.022 88.431 +-110.345 203.063 88.0154 +-112.998 203.48 88.1963 +-115.345 203.3 88.118 +-118.072 203.745 88.3113 +-120.339 203.357 88.143 +-123.045 203.669 88.2783 +-125.47 203.476 88.1943 +-127.95 203.337 88.1343 +-130.133 202.7 87.8583 +-134.682 205.661 89.1416 +-138.462 207.314 89.8579 +-141.541 207.831 90.0822 +-143.996 207.386 89.8893 +-143.621 202.916 87.9518 +-143.448 198.851 86.19 +-144.216 196.174 85.0295 +-146.02 194.936 84.4931 +-150.22 196.841 85.3187 +-617.229 793.951 344.13 +-619.878 782.818 339.304 +-624.564 774.433 335.67 +-627.151 763.614 330.98 +-631.346 754.924 327.214 +-634.439 745.068 322.942 +-638.264 736.226 319.109 +-641.026 726.31 314.811 +-645.238 718.176 311.286 +-647.351 707.851 306.81 +-651.656 700.06 303.433 +-654.222 690.522 299.299 +-658.247 682.647 295.886 +-661.302 673.873 292.083 +-665.051 665.914 288.633 +-668.086 657.343 284.918 +-672.041 649.772 281.637 +-674.235 640.604 277.663 +-679.391 634.331 274.944 +-681.51 625.299 271.029 +-686.361 618.854 268.235 +-688.912 610.402 264.572 +-692.66 603.095 261.405 +-695.737 595.273 258.015 +-699.75 588.317 255 +-114.667 94.7312 41.0602 +-114.141 92.6539 40.1599 +-113.659 90.6533 39.2927 +-111.932 87.7138 38.0186 +-111.306 85.6936 37.143 +-110.651 83.6903 36.2747 +-110.355 81.9928 35.5389 +-110.113 80.3636 34.8327 +-109.849 78.7445 34.131 +-109.324 76.9683 33.3611 +-109.892 75.9796 32.9325 +-109.968 74.6603 32.3607 +-109.784 73.1837 31.7207 +-109.173 71.4494 30.969 +-109.766 70.5199 30.5661 +-109.197 68.8588 29.8461 +-109.599 67.828 29.3993 +-109.489 66.492 28.8203 +-109.698 65.363 28.3309 +-110.484 64.5808 27.9918 +-110.585 63.402 27.4809 +-111.525 62.7059 27.1792 +-111.775 61.6216 26.7092 +-111.839 60.4449 26.1992 +-111.717 59.1801 25.651 +-112.276 58.2833 25.2623 +-113.088 57.5156 24.9295 +-113.895 56.7393 24.593 +-114.695 55.9544 24.2528 +-114.868 54.8644 23.7804 +-115.653 54.0676 23.435 +-116.699 53.3852 23.1392 +-117.562 52.6096 22.8031 +-119.773 52.4168 22.7195 +-120.901 51.7273 22.4206 +-134.856 56.3885 24.441 +-153.293 62.6211 27.1424 +-161.494 64.428 27.9256 +-160.904 62.6664 27.1621 +-163.157 62.0078 26.8766 +-162.628 60.2866 26.1306 +-3048.51 1101.79 477.561 +-3058.88 1077.34 466.963 +-3069.01 1052.81 456.328 +-3078.9 1028.2 445.662 +-889.288 288.939 125.238 +-893.61 282.315 122.367 +-899.675 276.198 119.715 +-383.656 114.375 49.5747 +-382.059 110.527 47.9068 +-381.948 107.142 46.4394 +-382.857 104.053 45.1007 +-383.543 100.908 43.7375 +-383.814 97.6618 42.3304 +-897.828 220.73 95.6729 +-405.17 96.1414 41.6715 +-407.136 93.1375 40.3694 +-404.7 89.1463 38.6395 +-406.41 86.0883 37.314 +-407.799 82.9501 35.9538 +-407.105 79.3956 34.4132 +-407.257 76.0232 32.9515 +-405.216 72.2694 31.3244 +-404.314 68.7546 29.8009 +-404.362 65.4191 28.3552 +-406.152 62.3607 27.0296 +-404.952 58.848 25.507 +-404.507 55.4678 24.0419 +-404.425 52.1503 22.604 +-403.815 48.7784 21.1425 +-406.249 45.7669 19.8372 +-405.377 42.3774 18.368 +-404.572 39.015 16.9106 +-403.832 35.6774 15.464 +-404.854 32.4987 14.0862 +-404.748 29.2271 12.6682 +-405.111 25.9916 11.2658 +-405.542 22.7582 9.86428 +-405.244 19.4862 8.44608 +-405.314 16.2368 7.03767 +-147.21 4.7167 2.0444 +-3275.38 78.6946 34.1093 +-145.078 2.32347 1.00708 +-145.894 1.16819 0.506338 +120.4 4.44089e-15 5.68434e-14 +120.295 0.96694 0.408788 +120.282 1.93381 0.817544 +120.859 2.91499 1.23236 +120.127 3.86382 1.63348 +120.685 4.85332 2.05181 +121.034 5.84246 2.46998 +120.874 6.80946 2.87879 +120.905 7.78717 3.29214 +121.425 8.80205 3.72119 +121.337 9.77772 4.13367 +121.14 10.7437 4.54207 +121.033 11.717 4.95354 +120.719 12.6686 5.35583 +121.289 13.717 5.79904 +121.155 14.6914 6.21098 +121.011 15.6646 6.62245 +120.759 16.623 7.02762 +121.288 17.694 7.48037 +120.82 18.6225 7.87292 +120.54 19.5769 8.27641 +121.039 20.6626 8.73539 +120.936 21.6523 9.1538 +120.727 22.6234 9.56438 +120.41 23.5738 9.96615 +121.646 24.8398 10.5014 +120.53 25.6301 10.8355 +120.963 26.7484 11.3083 +120.705 27.7197 11.7189 +121.406 28.9195 12.2261 +120.837 29.8227 12.608 +120.55 30.7928 13.0181 +120.831 31.9129 13.4916 +121.387 33.1183 14.0012 +120.781 34.0119 14.379 +120.645 35.0369 14.8123 +121.26 36.2899 15.3421 +120.627 37.1755 15.7165 +120.932 38.3536 16.2145 +120.187 39.2011 16.5728 +120.469 40.3862 17.0738 +120.924 41.6433 17.6053 +120.152 42.4816 17.9597 +120.768 43.8171 18.5243 +120.348 44.786 18.9339 +119.827 45.7164 19.3273 +120.218 47.0018 19.8707 +120.685 48.3335 20.4337 +120.223 49.3017 20.843 +120.57 50.61 21.3961 +119.995 51.5382 21.7885 +120.315 52.8576 22.3463 +120.438 54.1053 22.8738 +119.832 55.0302 23.2648 +120.108 56.3676 23.8302 +119.569 57.3308 24.2374 +119.816 58.6789 24.8073 +119.959 59.9914 25.3622 +120.085 61.3105 25.9199 +119.5 62.2734 26.327 +119.771 63.692 26.9267 +120.025 65.1198 27.5303 +119.489 66.1295 27.9572 +119.37 67.3761 28.4842 +118.303 68.0889 28.7856 +111.665 65.5236 27.701 +117.665 70.3817 29.7549 +119.579 72.9007 30.8198 +119.299 74.1166 31.3339 +119.663 75.7509 32.0248 +119.105 76.8154 32.4748 +119.431 78.4652 33.1723 +119.087 79.6929 33.6913 +119.373 81.3593 34.3958 +118.997 82.5928 34.9173 +119.003 84.1068 35.5574 +118.596 85.3437 36.0803 +119.035 87.2111 36.8697 +118.748 88.5703 37.4444 +119.139 90.4588 38.2427 +118.584 91.6497 38.7462 +118.547 93.2575 39.4259 +118.716 95.0526 40.1849 +119.234 97.1628 41.077 +118.977 98.6724 41.7152 +118.702 100.185 42.3546 +115.773 99.4388 42.0392 +114.682 100.239 42.3775 +112.073 99.6856 42.1435 +110.482 100.002 42.2771 +107.692 99.1919 41.9348 +106.678 99.9887 42.2716 +104.477 99.6497 42.1283 +102.909 99.8837 42.2272 +99.5718 98.3501 41.5789 +98.5686 99.0786 41.8869 +95.8864 98.0876 41.4679 +94.1583 98.0268 41.4422 +94.2101 99.8219 42.2011 +93.7154 101.066 42.7272 +93.7184 102.873 43.4912 +94.5212 105.613 44.6493 +95.0274 108.087 45.6952 +94.7467 109.711 46.3821 +94.6272 111.557 47.1624 +94.0536 112.898 47.7294 +94.0637 114.974 48.6071 +93.863 116.837 49.3944 +94.4571 119.747 50.6249 +93.7255 121.027 51.1658 +94.0665 123.738 52.3118 +93.9102 125.855 53.207 +93.6648 127.904 54.073 +93.3877 129.957 54.941 +93.2967 132.325 55.9421 +93.6513 135.4 57.2423 +93.6367 138.022 58.3509 +93.3705 140.341 59.331 +93.3249 143.06 60.4805 +93.4886 146.185 61.8018 +93.55 149.244 63.0949 +93.1665 151.674 64.1222 +92.9865 154.511 65.3219 +93.2845 158.248 66.9017 +93.0962 161.269 68.1789 +93.2732 165.034 69.7704 +93.0227 168.157 71.0908 +92.9876 171.783 72.6238 +92.8908 175.422 74.162 +92.8612 179.321 75.8107 +92.4266 182.565 77.1821 +91.0666 184.055 77.8118 +90.0922 186.379 78.7942 +88.0837 186.59 78.8834 +91.7046 198.99 84.1258 +83.9225 186.615 78.8943 +91.0669 207.607 87.769 +88.4734 206.875 87.4594 +86.3667 207.234 87.6113 +84.0498 207.058 87.5365 +81.9138 207.292 87.6358 +79.6129 207.075 87.5439 +77.4852 207.271 87.6269 +75.2329 207.101 87.5548 +73.0516 207.084 87.5478 +70.7861 206.785 87.4213 +68.7658 207.17 87.584 +66.5732 207.008 87.5155 +64.5267 207.269 87.6261 +62.3734 207.159 87.5794 +60.3307 207.385 87.6752 +57.963 206.436 87.2737 +56.1259 207.341 87.6565 +54.0193 207.246 87.6164 +51.8287 206.776 87.4174 +49.8028 206.915 87.4762 +47.7989 207.127 87.5657 +45.8546 207.594 87.7632 +43.638 206.779 87.4185 +41.5861 206.669 87.3722 +39.5744 206.723 87.3952 +37.4823 206.306 87.2188 +35.5419 206.691 87.3816 +33.4493 206.148 87.1522 +31.4949 206.41 87.2628 +29.5381 206.655 87.3664 +27.579 206.884 87.4633 +25.516 206.275 87.2055 +23.5398 206.288 87.2114 +21.527 205.92 87.0556 +19.5316 205.626 86.9314 +17.5905 205.868 87.0334 +15.6673 206.369 87.2453 +13.7176 206.579 87.334 +11.7442 206.405 87.2605 +9.76202 205.939 87.0638 +7.82098 206.286 87.2102 +5.86364 206.249 87.1946 +3.90934 206.288 87.2114 +1.95649 206.496 87.299 +1.56541e-14 205.583 86.9131 +-1.95125 205.943 87.0654 +-3.90236 205.92 87.0556 +-5.85578 205.973 87.0778 +-7.80702 205.918 87.0549 +-9.73149 205.296 86.7916 +-11.7076 205.761 86.9883 +-13.6505 205.567 86.9065 +-15.6743 206.461 87.2842 +-17.6062 206.051 87.1109 +-19.5665 205.994 87.0868 +-21.5174 205.828 87.0167 +-23.4771 205.74 86.9793 +-25.4481 205.726 86.9735 +-27.3962 205.513 86.8835 +-29.3423 205.285 86.7873 +-31.2722 204.95 86.6456 +-33.3015 205.238 86.7671 +-35.229 204.871 86.6121 +-37.2347 204.944 86.6429 +-39.3139 205.362 86.8197 +-41.1306 204.405 86.4151 +-43.0847 204.156 86.3099 +-45.117 204.254 86.3512 +-47.2375 204.694 86.5373 +-49.2184 204.487 86.4497 +-51.3788 204.981 86.6584 +-53.3423 204.65 86.5187 +-55.4727 204.928 86.6363 +-57.4372 204.563 86.482 +-59.6319 204.983 86.6596 +-61.5717 204.496 86.4536 +-63.7549 204.791 86.5782 +-65.7212 204.359 86.3956 +-67.9179 204.616 86.5042 +-69.8239 203.974 86.2328 +-72.31 204.981 86.6588 +-74.281 204.48 86.447 +-76.5411 204.746 86.5591 +-78.5114 204.21 86.3325 +-81.093 205.215 86.7577 +-82.9641 204.384 86.4061 +-85.4708 205.085 86.7024 +-87.4472 204.476 86.4451 +-89.5684 204.192 86.3251 +-91.9206 204.4 86.4131 +-94.4397 204.925 86.6351 +-96.6169 204.666 86.5253 +-98.9997 204.806 86.5849 +-100.729 203.584 86.0681 +-103.668 204.77 86.5693 +-105.82 204.344 86.3894 +-108.19 204.314 86.3765 +-110.434 204.013 86.2496 +-112.998 204.268 86.3571 +-115.068 203.596 86.0732 +-117.743 203.965 86.2289 +-120.244 203.982 86.2363 +-122.414 203.41 85.9945 +-124.928 203.381 85.9821 +-127.9 204.044 86.2624 +-130.285 203.722 86.1265 +-133.498 204.642 86.5151 +-138.096 207.566 87.7515 +-140.906 207.698 87.8072 +-143.674 207.723 87.8177 +-143.676 203.779 86.1503 +-143.504 199.697 84.4249 +-144.048 196.704 83.1593 +-145.113 194.476 82.2174 +-149.703 196.924 83.2524 +-1902.67 2456.91 1038.69 +-621.877 788.381 333.299 +-627.479 781.058 330.203 +-628.776 768.554 324.917 +-634.025 761.06 321.749 +-636.348 750.201 317.158 +-640.941 742.174 313.765 +-642.662 730.981 309.033 +-647.082 723.016 305.665 +-649.473 712.919 301.397 +-654.319 705.64 298.32 +-656.715 695.836 294.174 +-661.096 688.254 290.969 +-663.711 678.944 287.033 +-667.551 671.004 283.676 +-669.927 661.705 279.745 +-672.385 652.621 275.905 +-676.945 645.668 272.965 +-681.494 638.756 270.043 +-683.914 629.933 266.313 +-688.073 622.798 263.296 +-690.854 614.492 259.785 +-695.779 608.155 257.106 +-698.15 599.65 253.511 +-115.974 97.8822 41.3811 +-114.965 95.3446 40.3083 +-114.216 93.0742 39.3484 +-112.754 90.2789 38.1667 +-111.171 87.455 36.9728 +-110.847 85.6701 36.2182 +-110.265 83.7213 35.3944 +-110.666 82.5419 34.8958 +-109.643 80.3305 33.9609 +-109.928 79.106 33.4432 +-109.324 77.2661 32.6654 +-109.892 76.2736 32.2457 +-109.405 74.5656 31.5237 +-109.784 73.4669 31.0592 +-109.173 71.7259 30.3231 +-109.684 70.74 29.9063 +-109.856 69.5427 29.4002 +-109.765 68.1934 28.8297 +-110.406 67.3086 28.4557 +-109.866 65.7163 27.7825 +-110.906 65.0782 27.5127 +-110.755 63.745 26.9491 +-111.525 62.9485 26.6124 +-111.603 61.7652 26.1121 +-111.839 60.6787 25.6528 +-111.89 59.5012 25.155 +-112.276 58.5088 24.7354 +-113.176 57.7828 24.4285 +-113.631 56.8269 24.0244 +-114.607 56.1276 23.7288 +-115.311 55.2894 23.3744 +-116.365 54.6114 23.0877 +-117.594 54.0027 22.8304 +-118.191 53.0959 22.447 +-120.315 52.8576 22.3463 +-122.986 52.8228 22.3316 +-135.402 56.8359 24.0282 +-145.254 59.5666 25.1826 +-162.595 65.118 27.5296 +-162.101 63.3768 26.7935 +-162.048 61.8247 26.1373 +-164.39 61.1754 25.8628 +-3048.51 1106.06 467.602 +-867.856 306.845 129.723 +-3069.01 1056.88 446.812 +-3078.9 1032.18 436.368 +-891.268 290.703 122.899 +-896.541 284.338 120.208 +-3107.18 957.591 404.835 +-382.135 114.363 48.3485 +-382.059 110.955 46.9078 +-384.53 108.284 45.7785 +-381.994 104.221 44.0609 +-381.236 100.69 42.568 +-3157.34 806.496 340.958 +-905.555 223.491 94.4841 +-406.041 96.7207 40.89 +-406.263 93.298 39.4431 +-407.423 90.0932 38.0882 +-404.948 86.1106 36.4045 +-405.749 82.8524 35.027 +-406.518 79.588 33.6469 +-406.375 76.1522 32.1944 +-406.099 72.7072 30.738 +-405.494 69.222 29.2646 +-404.658 65.7202 27.7842 +-405.265 62.4653 26.4081 +-405.841 59.2054 25.0299 +-403.914 55.6008 23.506 +-405.416 52.4803 22.1868 +-405.798 49.2076 20.8032 +-405.654 45.8767 19.395 +-406.073 42.6144 18.0159 +-405.168 39.2237 16.5824 +-405.524 35.9656 15.205 +-405.152 32.6485 13.8026 +-403.552 29.2534 12.3673 +-405.011 26.0857 11.0281 +-403.845 22.7506 9.61815 +-404.944 19.5471 8.26383 +-403.815 16.2394 6.86543 +-3274.5 105.323 44.5266 +-3275.38 78.9991 33.398 +-144.278 2.31961 0.980646 +-146.194 1.17512 0.496799 +119.4 4.88498e-15 0 +120.295 0.970588 0.400048 +120.282 1.9411 0.800065 +120.159 2.90906 1.19903 +120.127 3.8784 1.59856 +120.685 4.87164 2.00794 +121.034 5.86451 2.41718 +120.774 6.8295 2.81492 +120.805 7.81011 3.2191 +120.527 8.76997 3.61472 +120.54 9.75008 4.01869 +121.14 10.7843 4.44496 +121.033 11.7612 4.84763 +120.719 12.7164 5.24132 +121.388 13.78 5.6797 +121.155 14.7468 6.07819 +121.011 15.7238 6.48086 +120.759 16.6857 6.87737 +121.288 17.7607 7.32044 +120.82 18.6927 7.7046 +120.442 19.6348 8.09287 +121.137 20.7574 8.55556 +120.936 21.734 8.95809 +120.629 22.6904 9.35231 +121.192 23.8166 9.81649 +120.865 24.7734 10.2109 +120.53 25.7268 10.6038 +121.06 26.8709 11.0754 +121.772 28.0703 11.5698 +120.534 28.8202 11.8788 +121.031 29.983 12.3581 +121.225 31.0819 12.8111 +120.927 32.0588 13.2137 +120.907 33.112 13.6478 +120.877 34.1673 14.0828 +121.122 35.308 14.5529 +121.165 36.3983 15.0023 +121.101 37.4624 15.4409 +120.837 38.4681 15.8554 +121.601 39.812 16.4093 +120.563 40.5702 16.7218 +121.486 41.9946 17.3089 +120.899 42.9069 17.6849 +121.326 44.1857 18.212 +121.09 45.2321 18.6433 +120.474 46.1366 19.0161 +120.218 47.1791 19.4458 +120.502 48.4421 19.9664 +120.223 49.4877 20.3974 +121.298 51.1076 21.065 +119.995 51.7327 21.3227 +120.946 53.3357 21.9834 +121.068 54.5931 22.5017 +120.548 55.5678 22.9034 +120.731 56.8741 23.4418 +120.101 57.8034 23.8248 +120.434 59.2041 24.4022 +120.574 60.5265 24.9472 +119.998 61.497 25.3472 +119.935 62.736 25.8579 +120.118 64.1173 26.4272 +120.887 65.8347 27.1351 +120.261 66.8075 27.5361 +119.881 67.9202 27.9947 +116.861 67.513 27.8269 +112.761 66.4166 27.375 +118.588 71.2011 29.347 +119.746 73.2779 30.203 +119.713 74.6548 30.7705 +119.581 75.9843 31.3185 +119.35 77.2644 31.8461 +119.431 78.7612 32.463 +119.411 80.2109 33.0606 +119.212 81.5562 33.6151 +119.077 82.9601 34.1937 +119.162 84.5368 34.8436 +118.911 85.8934 35.4027 +118.8 87.3675 36.0103 +118.903 89.0208 36.6917 +118.83 90.5648 37.3281 +118.813 92.1739 37.9913 +118.623 93.6695 38.6078 +119.32 95.8967 39.5258 +119.309 97.5905 40.2239 +119.498 99.4775 41.0017 +119.513 101.25 41.7322 +117.09 100.949 41.6083 +115.987 101.763 41.9437 +113.512 101.346 41.7718 +112.551 102.258 42.1475 +109.46 101.201 41.712 +109.132 102.674 42.319 +105.727 101.223 41.7211 +104.768 102.072 42.0709 +101.413 100.546 41.4422 +100.393 101.292 41.7497 +97.6931 100.312 41.3458 +96.7425 101.097 41.6693 +93.7508 99.7104 41.0977 +93.3906 101.095 41.6685 +94.2327 103.828 42.795 +93.8215 105.227 43.3715 +94.7127 108.135 44.57 +94.311 109.619 45.1816 +93.9499 111.177 45.8237 +93.9319 113.177 46.6484 +94.1239 115.482 47.5984 +94.2199 117.723 48.5221 +93.8693 119.451 49.2343 +93.8997 121.709 50.1649 +94.2386 124.432 51.2871 +94.25 126.788 52.2581 +93.7207 128.463 52.9486 +93.7741 130.987 53.9889 +93.2967 132.824 54.7461 +93.92 136.301 56.1793 +93.5837 138.465 57.071 +93.8407 141.579 58.3548 +93.3249 143.6 59.1875 +93.5393 146.816 60.5132 +93.05 149.006 61.416 +93.1173 152.165 62.7181 +92.9865 155.094 63.9253 +93.38 159.008 65.5384 +93.1901 162.041 66.7883 +93.2732 165.656 68.2787 +93.0227 168.792 69.5709 +92.9876 172.432 71.0712 +92.9785 176.25 72.645 +92.7321 179.747 74.0866 +92.5534 183.505 75.6352 +90.8593 184.33 75.9751 +89.7261 186.322 76.7964 +88.4824 188.141 77.5463 +92.2125 200.847 82.7834 +83.8459 187.148 77.137 +90.8421 207.877 85.6806 +88.1802 206.967 85.3057 +86.295 207.843 85.6669 +83.9447 207.579 85.5579 +81.8112 207.814 85.6547 +79.446 207.421 85.4928 +77.1922 207.267 85.4291 +74.9474 207.093 85.3575 +72.9898 207.69 85.6037 +70.4854 206.683 85.1887 +68.4442 206.979 85.3106 +66.3176 206.991 85.3156 +64.3613 207.519 85.5332 +62.2398 207.496 85.5236 +60.0719 207.275 85.4326 +57.9379 207.125 85.3708 +55.9807 207.585 85.5602 +53.6457 206.591 85.1506 +51.7162 207.106 85.3628 +49.7811 207.605 85.5686 +47.6742 207.366 85.4699 +45.5556 207.018 85.3266 +43.638 207.559 85.5495 +41.495 206.994 85.3167 +39.5223 207.23 85.4139 +37.4328 206.812 85.2416 +35.5263 207.379 85.4756 +33.4197 206.743 85.2134 +31.467 207.006 85.3217 +29.3684 206.243 85.0073 +27.4937 207.022 85.3285 +25.516 207.053 85.3411 +23.5294 206.975 85.3091 +21.4886 206.329 85.0427 +19.5316 206.402 85.0728 +17.4885 205.446 84.6788 +15.6394 206.778 85.2279 +13.6505 206.343 85.0484 +11.6919 206.261 85.0145 +9.7184 205.793 84.8217 +7.80353 206.603 85.1555 +5.82437 205.641 84.7592 +3.90236 206.697 85.1944 +1.9434 205.889 84.8613 +1.44329e-14 206.913 85.2836 +-1.94165 205.704 84.7851 +-3.89887 206.512 85.1182 +-5.82437 205.641 84.7592 +-7.79655 206.418 85.0793 +-9.75766 206.624 85.1643 +-11.6762 205.983 84.9002 +-13.6443 206.251 85.0103 +-15.5836 206.041 84.9238 +-17.5278 205.907 84.8686 +-19.5316 206.402 85.0728 +-21.4119 205.593 84.7394 +-23.4248 206.055 84.9299 +-25.4028 206.135 84.9627 +-27.3597 206.014 84.9128 +-29.3162 205.877 84.8564 +-31.3975 206.547 85.1327 +-33.2719 205.829 84.8366 +-35.1665 205.279 84.6098 +-37.1687 205.353 84.6403 +-39.2619 205.864 84.851 +-41.2399 205.722 84.7924 +-43.1038 205.018 84.5024 +-45.117 205.025 84.505 +-47.1752 205.196 84.5755 +-49.0669 204.626 84.3408 +-51.3788 205.754 84.8057 +-53.3189 205.332 84.6315 +-55.4727 205.701 84.784 +-57.4121 205.246 84.5961 +-59.5543 205.49 84.6967 +-61.4114 204.733 84.385 +-63.6722 205.296 84.6171 +-65.6927 205.041 84.5119 +-67.8595 205.21 84.5816 +-69.7938 204.656 84.353 +-72.2482 205.579 84.7337 +-74.2176 205.076 84.5264 +-76.5736 205.606 84.7447 +-78.5114 204.98 84.4867 +-80.8536 205.381 84.6521 +-82.6139 204.289 84.2017 +-85.1841 205.168 84.5641 +-87.2273 204.731 84.3838 +-89.6434 205.134 84.55 +-91.8823 205.086 84.5302 +-94.4006 205.613 84.7478 +-96.3776 204.928 84.4654 +-98.837 205.242 84.5946 +-100.605 204.1 84.124 +-102.992 204.202 84.1659 +-104.916 203.363 83.8202 +-108.015 204.753 84.393 +-109.899 203.79 83.9963 +-112.453 204.049 84.103 +-114.698 203.708 83.9624 +-117.65 204.572 84.3183 +-119.671 203.776 83.9906 +-122.221 203.855 84.023 +-124.731 203.826 84.0112 +-127.3 203.853 84.0222 +-129.422 203.137 83.7269 +-132.519 203.908 84.0447 +-137.574 207.561 85.5503 +-140.535 207.932 85.7035 +-143.352 208.039 85.7473 +-144.003 205.013 84.5001 +-144 201.145 82.9061 +-143.713 196.987 81.192 +-145.227 195.362 80.5225 +-148.614 196.227 80.8791 +-157.312 203.903 84.0428 +-625.345 795.769 327.992 +-630.929 788.315 324.92 +-631.906 775.294 319.553 +-638.286 769.066 316.986 +-639.241 756.456 311.789 +-644.863 749.533 308.935 +-645.494 736.973 303.758 +-651.28 730.452 301.071 +-652.622 719.08 296.383 +-658.475 712.803 293.796 +-659.733 701.671 289.208 +-664.873 694.798 286.375 +-666.387 684.255 282.029 +-672.01 678.034 279.466 +-673.269 667.515 275.13 +-676.377 658.973 271.609 +-679.445 650.498 268.116 +-685.559 644.991 265.846 +-687.379 635.514 261.94 +-692.495 629.166 259.323 +-693.947 619.572 255.369 +-699.769 613.95 253.052 +-701.149 604.498 249.156 +-114.352 96.8776 39.9301 +-114.742 95.5185 39.3699 +-112.493 92.0159 37.9262 +-112.15 90.1344 37.1507 +-110.715 87.4247 36.0339 +-110.617 85.815 35.3704 +-110.342 84.096 34.6619 +-110.044 82.388 33.9579 +-109.8 80.7487 33.2822 +-109.849 79.3475 32.7047 +-109.324 77.5577 31.967 +-109.892 76.5614 31.5563 +-109.405 74.847 30.8497 +-109.945 73.8527 30.4399 +-109.173 71.9965 29.6748 +-109.684 71.0069 29.2669 +-109.609 69.6479 28.7068 +-110.345 68.8127 28.3625 +-110.49 67.6136 27.8683 +-110.537 66.3671 27.3545 +-110.653 65.1747 26.8631 +-111.264 64.2794 26.4941 +-111.952 63.4276 26.143 +-112.46 62.4743 25.7501 +-112.443 61.2362 25.2397 +-112.583 60.0955 24.7696 +-112.972 59.0938 24.3567 +-113.176 58.0008 23.9062 +-114.774 57.6148 23.7471 +-115.048 56.5564 23.3109 +-116.819 56.2238 23.1738 +-116.811 55.0273 22.6806 +-118.758 54.7427 22.5633 +-119.09 53.7015 22.1342 +-127.716 56.3208 23.2138 +-159.51 68.7685 28.3443 +-135.22 56.9737 23.4829 +-136.484 56.1814 23.1563 +-162.32 65.2532 26.8954 +-161.549 63.3992 26.1313 +-163.342 62.5533 25.7826 +-164.019 61.2677 25.2527 +-3048.51 1110.23 457.605 +-886.061 314.463 129.612 +-874.29 302.219 124.566 +-887.728 298.726 123.126 +-894.755 292.941 120.742 +-898.715 286.104 117.923 +-381.226 117.931 48.6078 +-381.849 114.708 47.2794 +-383.776 111.874 46.111 +-383.574 108.422 44.6881 +-382.377 104.719 43.1619 +-381.621 101.171 41.6998 +-941.274 241.342 99.4739 +-409.07 101.339 41.7691 +-406.041 97.0857 40.0158 +-406.942 93.8063 38.6642 +-406.451 90.2174 37.1849 +-406.117 86.6851 35.729 +-406.725 83.3651 34.3606 +-406.127 79.8113 32.8959 +-405.689 76.3105 31.4529 +-405.412 72.858 30.0299 +-404.609 69.3316 28.5764 +-406.43 66.2572 27.3093 +-405.462 62.7315 25.856 +-404.656 59.2553 24.4233 +-403.914 55.8106 23.0035 +-405.317 52.6655 21.7071 +-405.898 49.4053 20.3634 +-405.356 46.0159 18.9664 +-403.887 42.5449 17.5358 +-404.87 39.3427 16.2159 +-405.823 36.1278 14.8908 +-405.85 32.828 13.5307 +-405.446 29.5016 12.1597 +-405.31 26.2036 10.8003 +-404.444 22.8704 9.4265 +-406.143 19.679 8.11108 +-404.515 16.3289 6.73027 +-3274.5 105.72 43.5746 +-146.65 3.5504 1.46337 +-145.878 2.35418 0.970323 +-145.894 1.17713 0.485179 diff --git a/.svn/pristine/2a/2acaf4114e46a2a1840714bd5dddde610027fbd6.svn-base b/.svn/pristine/2a/2acaf4114e46a2a1840714bd5dddde610027fbd6.svn-base new file mode 100644 index 0000000..f85c07a --- /dev/null +++ b/.svn/pristine/2a/2acaf4114e46a2a1840714bd5dddde610027fbd6.svn-base @@ -0,0 +1,62 @@ +/** + * @file + * @brief generating convergence data + * @author Peter Schneider. Institute of Computer Science, University of Koblenz, Germany. + */ + +#ifndef __CONVERGENCE_H__ +#define __CONVERGENCE_H__ + +#ifdef _MSC_VER + #define _USE_MATH_DEFINES + #include + #include "XGetopt.h" +#else + #include +#endif + +#include +#ifdef _MSC_VER +#define strcasecmp _stricmp +#define strncasecmp _strnicmp +#else +#include +#endif +#include + +#include +using std::cout; +using std::cerr; +using std::endl; +using std::ofstream; +using std::ios; +using std::ifstream; + +#include +using std::string; + +/** float value "nearly" zero? */ +#define DIV_EPSILON 0.001 +/** comparing two floats/doubles */ +#define COMPARE_EPSILON 0.000001 + +#define CONV_LOCAL 1 +#define CONV_GLOBAL 0 +#define CONV_ALL 2 + +#define BUFSIZE 1048576 ///< defining the buffer size + +#include "slam6d/globals.icc" + + +int parseArgs(int argc, char **argv, string &dir, int& frame); +void usage(char * prog); + +void getGlobalConvergence(ifstream *inputFile, ofstream *outputFile); +void getLocalConvergence(ifstream *inputFile, ofstream *outputFile); +void getAllConvergence(ifstream *inputFile, ofstream *outputFile, int FrameNr); + + + +#endif + diff --git a/.svn/pristine/2a/2ad68387fa9992153d604806ba275895ade0ace8.svn-base b/.svn/pristine/2a/2ad68387fa9992153d604806ba275895ade0ace8.svn-base new file mode 100644 index 0000000..2c8008e --- /dev/null +++ b/.svn/pristine/2a/2ad68387fa9992153d604806ba275895ade0ace8.svn-base @@ -0,0 +1,176 @@ +/* + * pmdaccess implementation + * + * Copyright (C) Stanislav Serebryakov + * + * Released under the GPL version 3. + * + */ + +#include "pmddatadescription.h" +#include "pmdsdk2.h" +#include "pmdheader.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include + + + +int sockfd; + +ImageHeaderInformation header; + +// retrive latest header +ImageHeaderInformation *retriveHeader() { + return &header; +} + + +int pmdOpen(PMDHandle *hnd, const char *rplugin, const char *rparam, const char *pplugin, const char *pparam) { + + printf("Starting XMLRPC...\n"); //DEBUG + + char url[128]; + strcpy(url, rparam); + strcat(url, ":8080"); + xmlrpc_c::clientSimple myClient; + xmlrpc_c::value result; + xmlrpc_c::paramList ipAndHeart; + ipAndHeart.add(xmlrpc_c::value_string("192.168.0.1")); + ipAndHeart.add(xmlrpc_c::value_int(1)); + myClient.call( url + , "MDAXMLConnectCP" + , ipAndHeart + , &result); + + // start data server + xmlrpc_c::paramList dataServ; + xmlrpc_c::value result2; + dataServ.add(xmlrpc_c::value_int(1)); + myClient.call( url + , "MDAXMLSetWorkingMode" + , dataServ + , &result2); + + printf("Done XMPRC init, creating socket...\n"); //DEBUG + + + struct sockaddr_in serv_addr; + struct hostent *server; + + sockfd = socket(AF_INET, SOCK_STREAM, 0); + server = gethostbyname(rparam); + serv_addr.sin_family = AF_INET; + + bcopy((char *)server->h_addr, + (char *)&serv_addr.sin_addr.s_addr, + server->h_length); + serv_addr.sin_port = htons(50002); + if (connect( sockfd + , (struct sockaddr *)&serv_addr + , sizeof(serv_addr)) + == -1) { + perror("Error connecting!\n"); + return 1; + } + printf("Connceted!\n"); //DEBUG + + return 0; +} + + +int pmdClose (PMDHandle hnd) { + + xmlrpc_c::clientSimple myClient; + xmlrpc_c::value result; + xmlrpc_c::paramList ip; + ip.add(xmlrpc_c::value_string("192.168.0.1")); + myClient.call( "192.168.0.69:8080" //FIXME: hardcoded ip + , "MDAXMLDisconnectCP" + , ip, &result); + + return 0; +} + +int pmdGetLastperror (PMDHandle hnd, char *perror, size_t maxLen) { + return 0; +} + +int pmdUpdate(PMDHandle hnd) { + xmlrpc_c::clientSimple myClient; + xmlrpc_c::value result; + xmlrpc_c::paramList noArgs; + //FIXME: There is no HearBeat XML function!!! + //myClient.call( "192.168.0.69:8080", "MDAXMLHeartBeat" //FIXME: hardcoded ip + // , noArgs, &result); + + return 0; +} + +// Currently will work for one image only (i.e. "d" or "i" but not for "id") +int pmdGetData(const char *code, PMDHandle hnd, float *data, size_t maxLen) { + int n = write(sockfd, code, strlen(code)); + if (n < 0) + perror("Error writing to socket\n"); + + // reading image header + uint32_t headerBuf[412/4]; // 412 bytes `div` sizeof(uint32_t) + int bytesRead = 0; + while(bytesRead < 412) { + n = read(sockfd, &((char*)headerBuf)[bytesRead], 412 - bytesRead); + if (n < 0) + perror("Error reading from socket\n"); + bytesRead += n; + + } + for(int i = 0; i < 412/4; i++) + ((uint32_t*)&header)[i] = ntohl(headerBuf[i]); + + // reading image + uint32_t imgBuf[maxLen/4]; // maxLen is also in bytes + bytesRead = 0; + while(bytesRead < maxLen) { + n = read(sockfd, &((char*)imgBuf)[bytesRead], maxLen - bytesRead); + if (n < 0) + perror("Error reading from socket\n"); + bytesRead += n; + } + + for(int i = 0; i < maxLen/4; i++) + ((uint32_t*)data)[i] = ntohl(imgBuf[i]); + + return 0; +} + +int pmdGetDistances(PMDHandle hnd, float *data, size_t maxLen) { + return pmdGetData("D", hnd, data, maxLen); +} + + +int pmdGetAmplitudes (PMDHandle hnd, float * data, size_t maxLen) { + return pmdGetData("I", hnd, data, maxLen); +} + +int pmdGetIntensities (PMDHandle hnd, float * data, size_t maxLen) { + return pmdGetData("S", hnd, data, maxLen); +} + +int pmdGetDistancesAsync(PMDHandle hnd, float *data, size_t maxLen) { + return pmdGetData("d", hnd, data, maxLen); +} + +int pmdGetAmplitudesAsync(PMDHandle hnd, float * data, size_t maxLen) { + return pmdGetData("i", hnd, data, maxLen); +} + +int pmdGetIntensitiesAsync(PMDHandle hnd, float * data, size_t maxLen) { + return pmdGetData("s", hnd, data, maxLen); +} + diff --git a/.svn/pristine/2b/2b4f5e7625682151022afebadb315939cccf33b4.svn-base b/.svn/pristine/2b/2b4f5e7625682151022afebadb315939cccf33b4.svn-base new file mode 100644 index 0000000..08276c9 --- /dev/null +++ b/.svn/pristine/2b/2b4f5e7625682151022afebadb315939cccf33b4.svn-base @@ -0,0 +1,36 @@ +/** + * @file + * @brief IO of a 3D scan in WRL format + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SCAN_IO_WRL_H__ +#define __SCAN_IO_WRL_H__ + +#include +using std::string; +#include +using std::vector; + +#include "scan_io.h" + +/** + * @brief 3D scan loader for PLY scans + * + * The compiled class is available as shared object file + */ +class ScanIO_wrl : public ScanIO { +public: + virtual int readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss); +}; + +// Since this shared object file is loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/.svn/pristine/2b/2bc5997e5236da41f77586ceb5eb3cd8662f848f.svn-base b/.svn/pristine/2b/2bc5997e5236da41f77586ceb5eb3cd8662f848f.svn-base new file mode 100644 index 0000000..bf25b9c --- /dev/null +++ b/.svn/pristine/2b/2bc5997e5236da41f77586ceb5eb3cd8662f848f.svn-base @@ -0,0 +1,231 @@ +/* + * kdManaged implementation + * + * Copyright (C) Andreas Nuechter, Kai Lingemann, Thomas Escher + * + * Released under the GPL version 3. + * + */ + +/** @file + * @brief An optimized k-d tree implementation + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Thomas Escher. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifdef _MSC_VER +#define _USE_MATH_DEFINES +#endif + +#include "slam6d/kdManaged.h" +#include "slam6d/scan.h" +#include "slam6d/globals.icc" + +#include +using std::cout; +using std::cerr; +using std::endl; +#include +using std::swap; +#include +#include + +// KDtree class static variables +KDParams KDtreeManagedBase::params[MAX_OPENMP_NUM_THREADS]; + +/** + * Constructor + * + * Create a KD tree from the points pointed to by the array pts + * + * @param pts 3D array of points + * @param n number of points + */ +KDtreeManagedBase::KDtreeManagedBase(const DataXYZ& pts, unsigned int* indices, unsigned int n) +{ + // Find bbox + double xmin = pts[indices[0]][0], xmax = pts[indices[0]][0]; + double ymin = pts[indices[0]][1], ymax = pts[indices[0]][1]; + double zmin = pts[indices[0]][2], zmax = pts[indices[0]][2]; + for(unsigned int i = 1; i < n; i++) { + xmin = min(xmin, pts[indices[i]][0]); + xmax = max(xmax, pts[indices[i]][0]); + ymin = min(ymin, pts[indices[i]][1]); + ymax = max(ymax, pts[indices[i]][1]); + zmin = min(zmin, pts[indices[i]][2]); + zmax = max(zmax, pts[indices[i]][2]); + } + + // Leaf nodes + if ((n > 0) && (n <= 10)) { + npts = n; + leaf.p = new unsigned int[n]; + // fill leaf index array with indices + for(unsigned int i = 0; i < n; ++i) { + leaf.p[i] = indices[i]; + } + return; + } + + // Else, interior nodes + npts = 0; + + node.center[0] = 0.5 * (xmin+xmax); + node.center[1] = 0.5 * (ymin+ymax); + node.center[2] = 0.5 * (zmin+zmax); + node.dx = 0.5 * (xmax-xmin); + node.dy = 0.5 * (ymax-ymin); + node.dz = 0.5 * (zmax-zmin); + node.r2 = sqr(node.dx) + sqr(node.dy) + sqr(node.dz); + + // Find longest axis + if (node.dx > node.dy) { + if (node.dx > node.dz) { + node.splitaxis = 0; + } else { + node.splitaxis = 2; + } + } else { + if (node.dy > node.dz) { + node.splitaxis = 1; + } else { + node.splitaxis = 2; + } + } + + // Partition + double splitval = node.center[node.splitaxis]; + + if ( fabs(max(max(node.dx,node.dy),node.dz)) < 0.01 ) { + npts = n; + leaf.p = new unsigned int[n]; + // fill leaf index array with indices + for(unsigned int i = 0; i < n; ++i) { + leaf.p[i] = indices[i]; + } + return; + } + + unsigned int* left = indices, * right = indices + n - 1; + while(true) { + while(pts[*left][node.splitaxis] < splitval) + left++; + while(pts[*right][node.splitaxis] >= splitval) + right--; + if(right < left) + break; + swap(*left, *right); + } + + // Build subtrees + int i; +#ifdef WITH_OPENMP_KD // does anybody know the reason why this is slower ?? --Andreas + omp_set_num_threads(OPENMP_NUM_THREADS); +#pragma omp parallel for schedule(dynamic) +#endif + for (i = 0; i < 2; i++) { + if (i == 0) node.child1 = new KDtreeManagedBase(pts, indices, left - indices); + if (i == 1) node.child2 = new KDtreeManagedBase(pts, left, n - (left - indices)); + } +} + +KDtreeManagedBase::~KDtreeManagedBase() +{ + if (!npts) { +#ifdef WITH_OPENMP_KD + omp_set_num_threads(OPENMP_NUM_THREADS); +#pragma omp parallel for schedule(dynamic) +#endif + for (int i = 0; i < 2; i++) { + if (i == 0 && node.child1) delete node.child1; + if (i == 1 && node.child2) delete node.child2; + } + } else { + if (leaf.p) delete [] leaf.p; + } +} + +/** + * Wrapped function + */ +void KDtreeManagedBase::_FindClosest(const DataXYZ& pts, int threadNum) const +{ + // Leaf nodes + if (npts) { + for (int i = 0; i < npts; i++) { + double myd2 = Dist2(params[threadNum].p, pts[leaf.p[i]]); + if (myd2 < params[threadNum].closest_d2) { + params[threadNum].closest_d2 = myd2; + params[threadNum].closest = pts[leaf.p[i]]; + } + } + return; + } + + // Quick check of whether to abort + double approx_dist_bbox = max(max(fabs(params[threadNum].p[0]-node.center[0])-node.dx, + fabs(params[threadNum].p[1]-node.center[1])-node.dy), + fabs(params[threadNum].p[2]-node.center[2])-node.dz); + if (approx_dist_bbox >= 0 && sqr(approx_dist_bbox) >= params[threadNum].closest_d2) + return; + + // Recursive case + double myd = node.center[node.splitaxis] - params[threadNum].p[node.splitaxis]; + if (myd >= 0.0) { + node.child1->_FindClosest(pts, threadNum); + if (sqr(myd) < params[threadNum].closest_d2) { + node.child2->_FindClosest(pts, threadNum); + } + } else { + node.child2->_FindClosest(pts, threadNum); + if (sqr(myd) < params[threadNum].closest_d2) { + node.child1->_FindClosest(pts, threadNum); + } + } +} + +KDtreeManaged::KDtreeManaged(Scan* scan) : + KDtreeManagedBase(scan->get("xyz reduced original"), prepareTempIndices(scan->size("xyz reduced original")), scan->size("xyz reduced original")), + m_scan(scan), m_data(0), m_count_locking(0) +{ + // allocate in prepareTempIndices, deleted here + delete[] m_temp_indices; +} + +unsigned int* KDtreeManaged::prepareTempIndices(unsigned int n) +{ + m_temp_indices = new unsigned int[n]; + for(unsigned int i = 0; i < n; ++i) + m_temp_indices[i] = i; + return m_temp_indices; +} + +double* KDtreeManaged::FindClosest(double *_p, double maxdist2, int threadNum) const +{ + params[threadNum].closest = 0; + params[threadNum].closest_d2 = maxdist2; + params[threadNum].p = _p; + _FindClosest(*m_data, threadNum); + return params[threadNum].closest; +} + +void KDtreeManaged::lock() +{ + boost::lock_guard lock(m_mutex_locking); + ++m_count_locking; + if(m_data == 0) { + // aquire an array lock from the scan and hold it while the tree is in use + m_data = new DataXYZ(m_scan->get("xyz reduced original")); + } +} + +void KDtreeManaged::unlock() +{ + boost::lock_guard lock(m_mutex_locking); + --m_count_locking; + if(m_count_locking == 0 && m_data != 0) { + delete m_data; + m_data = 0; + } +} diff --git a/.svn/pristine/2b/2bd58ce018c9676f5779d04dfe57689a368b109c.svn-base b/.svn/pristine/2b/2bd58ce018c9676f5779d04dfe57689a368b109c.svn-base new file mode 100644 index 0000000..cd03444 --- /dev/null +++ b/.svn/pristine/2b/2bd58ce018c9676f5779d04dfe57689a368b109c.svn-base @@ -0,0 +1,507 @@ +/* + * 2DGridder implementation + * + * Copyright (C) Uwe Hebbelmann, Sebastian Stock, Andre Schemschat + * + * Released under the GPL version 3. + * + */ + +#include "grid/scanGrid.h" +#include "grid/scanToGrid.h" +#include "slam6d/scan.h" +#include "grid/scanmanager.h" +#include "grid/parcelmanager.h" +#include "grid/gridWriter.h" +#include "grid/viewpointinfo.h" +#include "grid/gridlines.h" +#include "slam6d/globals.icc" + +#include "grid/Debug.h" + +#include +#include +#include +#include +#include +#include + +using std::cerr; +using std::flush; + +#ifdef _MSC_VER + #define _USE_MATH_DEFINES + #include + #include "GL/glut.h" /* Header File For The glu toolkit */ + #include "XGetopt.h" +#else + #include + #include +#endif + +/** + * 2DGridder + * + * Main class to convert a 3D scan to a 2D grid + * + * @author Andre Schemschadt, Uwe Hebbelmann, Sebastian Stock + * @date 20.02.2008 + */ + +/** + * Explains the usage of this program's command line parameters + * + * @param prog name of the program + */ +void usage(char* prog) +{ +#ifndef _MSC_VER + const string bold("\033[1m"); + const string normal("\033[m"); +#else + const string bold(""); + const string normal(""); +#endif + + cout << endl + << "Usage: " << prog << endl + << " [-s NR] [-e NR] [-m NR] [-M NR] [-f F] [-o DIR] [-t] " << endl + << " [-h NR] [-H NR] [-r NR] [-w] [-p NR] [-P Nr] [-y] [-n] " < cannot be smaller than .\n"; + exit(1); + } + break; + case 'c': + count = atoi(optarg); + if( count < 1){ + cerr << "Error: must be greater than 1.\n"; + exit(1); + } + break; + case 'R': + resume = true; + break; + case 'm': + maxDist = atoi(optarg); + break; + case 'M': + minDist = atoi(optarg); + break; + case 't': + readInitial = true; + break; + case 'f': + try { + type = formatname_to_io_type(optarg); + } catch (...) { // runtime_error + cerr << "Format " << optarg << " unknown." << endl; + abort(); + } + break; + case 'H': + maxHeight = atoi(optarg); + break; + case 'h': + minHeight = atoi(optarg); + break; + case 'g': + writeGrids = true; + break; + case 'r': + resolution = atol(optarg); + if (resolution < 1) { + cerr << "Error: cannot be smaller than 1.\n"; + exit(1); + } + break; + case 'w': + waypoints = false; + break; + case 'n': + neighbours = false; + break; + case 'p': + parcelWidth = atol(optarg); + if (parcelWidth < 1) { + cerr << "Error: cannot be smaller than 1.\n"; + exit(1); + } + break; + case 'P': + parcelHeight = atol(optarg); + if (parcelHeight < 1) { + cerr << "Error: cannot be smaller than 1.\n"; + exit(1); + } + break; + case 'y': + correctY = true; + break; + case 'a': + spotradius = atoi(optarg); + if (spotradius < 0) { + cerr << "Error: cannot be smaller than 0.\n"; + exit(1); + } + break; + case 'd': + writeWorld = false; + break; + case 'l': + writeLines = true; + break; + case 'i': + writeWorldppm = true; + break; + case '?': + usage(argv[0]); + return 1; + default: + abort(); + }} + + if (optind != argc-1) { + cerr << "\n*** Input directory missing ***" << endl; + usage(argv[0]); + } + inputdir = argv[optind]; + + //If no output directory is set, set it to the input directory + if (outputdir == "") outputdir = inputdir; + +#ifndef _MSC_VER + if (inputdir[inputdir.length()-1] != '/') inputdir = inputdir + "/"; + if (outputdir[outputdir.length()-1] != '/') outputdir = outputdir + "/"; +#else + if (inputdir[inputdir.length()-1] != '\\') inputdir = inputdir + "\\"; + if (outputdir[outputdir.length()-1] != '\\') outputdir = outputdir + "\\"; +#endif + + return 0; +} + +/** + * Main function. + * Reads the scan (scan000.3d, ...) and frames files (scan000.frames, ...) from the data directory. + * The frames are used for animation of the matching process. Converts the 3D scan data to a 2D grid map + * and stores it + * + * @param argc count of the command-line arguments + * @param argv command-line arguments + */ +int main(int argc, char **argv){ + // Start message + cout << "(c) University of Osnabrueck, 2006 - 2008" << endl << endl + << "Restricted Usage" << endl + << "Don't use without permission" << endl; + + + // Usage + if(argc <= 1){ + usage(argv[0]); + } + + /////////////////////////////////////// + // Defaultvalues + string scandir = ""; + string outputdir = "./parcels/"; + + int start = 0; + int end = -1; + int maxDistance = 2500; + int minDistance = -1; + bool readInitial = false; + IOType scantype = UOS; + bool correctY = false; + + double maxRelevantHeight = 50; + double minRelevantHeight = 2; + long resolution = 10; + bool createWaypoints = true; + bool createNeighbours = true; + + int parcelWidth = 1000; + int parcelHeight = 1000; + + int spotradius = 15; + + bool writeWorld = true; + bool writeLines = false; + bool writeGrids = false; + bool writeWorldppm = false; + + double isSolidPoint = 0.2; + int count = 50; + bool resume = false; + /////////////////////////////////////// + + + // parses the command-line arguments and sets the respective flags + parseArgs(argc, argv, + scandir, outputdir, start, end, maxDistance, minDistance, + readInitial, scantype, correctY, + minRelevantHeight, maxRelevantHeight, resolution, + createWaypoints, createNeighbours, + parcelWidth, parcelHeight, + writeWorld, writeLines, writeGrids, spotradius, writeWorldppm, + count, resume); + + // calculate parcel width and height + parcelWidth /= resolution; + parcelHeight /= resolution; + + // create parcelmanager + cout << "Create parcelmanager ..." << endl; + parcelmanager parcelman(parcelWidth, parcelHeight, + outputdir, resolution, resume); + + cout << "Create viewpointlist ... " << endl; + viewpointinfo viewpoint(outputdir); + + for (int i = start; i <= end; i+=count) + { + int endloop = i + count - 1 < end ? i + count - 1 : end; + + // get Scans + cout << "Reading scans " << i << " to " << endloop << " ... "; + scanmanager scanman; + scanman.startscan(scandir, outputdir, scantype, i, endloop, + readInitial, maxDistance, minDistance, + correctY); + + cout << "Done."<< endl; + + // create grid from scans + cout << "Creating grids " << i << " to " << endloop << " ... "; + scanToGrid stg(resolution, + minRelevantHeight, + maxRelevantHeight, + maxDistance, + spotradius, + createWaypoints, + createNeighbours); + + cout << "Done."<< endl; + + // convert scans + cout << "Converting " << scanman.getScanCount() <<" scans ... "; + + vector grids; + for(size_t j = 0; j < scanman.getScanCount(); j++) + { + cout << "." << flush; + double* p = scanman.getMatrix(j).back(); + scanman.getScan(j).transformAll(p); + grids.push_back(stg.convert(scanman.getScan(j), p)); + } + cout << "Done." << endl; + + // start writing + cout << "Processing from " << i << " to " << endloop << endl; + for(size_t j = 0; j < grids.size(); ++j) + { + cout << "Adding scan " << i << " ... " << flush; + parcelman.addGrid(grids[j], + grids[j]->getViewpointX(), + grids[j]->getViewpointZ()); + + viewpoint.addGrid(grids[j]); + cout << "Done."<< endl; + } + + // print grids for each scan if wished + if(writeGrids) + { + cout << "Writing grids " << i + << " to " << endloop << " ... " << endl; + + string str; + stringstream stream; + for(size_t j = 0; j < grids.size(); ++j) + { + cout << "Writing grid " << i << " ... " << flush; + stream.clear(); + stream << outputdir << "grid" << j+i << ".ppm "; + stream >> str; + + ppmWriter writer(str); + writer.write(*grids[j]); + cout << "Done."< + +namespace fbr{ + string scanFormatToString(IOType format){ + return io_type_to_libname(format); + } + + IOType stringToScanFormat(string format){ + return formatname_to_io_type(format.c_str()); + } + + string projectionMethodToString(projection_method method){ + string sMethod; + switch(method){ + case EQUIRECTANGULAR: + sMethod = "EQUIRECTANGULAR"; + break; + case CYLINDRICAL: + sMethod = "CYLINDRICAL"; + break; + case MERCATOR: + sMethod = "MERCATOR"; + break; + case RECTILINEAR: + sMethod = "RECTILINEAR"; + break; + case PANNINI: + sMethod = "PANNINI"; + break; + case STEREOGRAPHIC: + sMethod = "STEREOGRAPHIC"; + break; + case ZAXIS: + sMethod = "ZAXIS"; + break; + default: + throw std::runtime_error(std::string("projection method ") + to_string(method) + std::string(" could not be matched to a projection method")); + } + return sMethod; + } + + projection_method stringToProjectionMethod(string method){ + if(strcasecmp(method.c_str(), "EQUIRECTANGULAR") == 0) return EQUIRECTANGULAR; + else if(strcasecmp(method.c_str(), "CYLINDRICAL") == 0) return CYLINDRICAL; + else if(strcasecmp(method.c_str(), "MERCATOR") == 0) return MERCATOR; + else if(strcasecmp(method.c_str(), "RECTILINEAR") == 0) return RECTILINEAR; + else if(strcasecmp(method.c_str(), "PANNINI") == 0) return PANNINI; + else if(strcasecmp(method.c_str(), "STEREOGRAPHIC") == 0) return STEREOGRAPHIC; + else if(strcasecmp(method.c_str(), "ZAXIS") == 0) return ZAXIS; + else throw std::runtime_error(std::string("projection method ") + method + std::string(" is unknown")); + } + + string panoramaMapMethodToString(panorama_map_method method){ + string sMethod; + switch(method){ + case FARTHEST: + sMethod = "FARTHEST"; + break; + case EXTENDED: + sMethod = "EXTENDED"; + break; + default: + throw std::runtime_error(std::string("panorama map method ") + to_string(method) + std::string(" could not be matched to a panorama map method")); + } + return sMethod; + } + + panorama_map_method stringToPanoramaMapMethod(string method){ + if(strcasecmp(method.c_str(), "FARTHEST") == 0) return FARTHEST; + else if(strcasecmp(method.c_str(), "EXTENDED") == 0) return EXTENDED; + else throw std::runtime_error(std::string("panorama map method ") + method + std::string(" is unknown")); + } + + string featureDetectorMethodToString(feature_detector_method method){ + string sMethod; + switch(method){ + case SIFT_DET: + sMethod = "SIFT_DET"; + break; + case SURF_DET: + sMethod = "SURF_DET"; + break; + case ORB_DET: + sMethod = "ORB_DET"; + break; + case FAST_DET: + sMethod = "FAST_DET"; + break; + case STAR_DET: + sMethod = "STAR_DET"; + break; + default: + throw std::runtime_error(std::string("feature detector method ") + to_string(method) + std::string(" could not be matched to a feature detector method")); + } + return sMethod; + } + + feature_detector_method stringToFeatureDetectorMethod(string method){ + if(strcasecmp(method.c_str(), "SIFT") == 0) return SIFT_DET; + else if(strcasecmp(method.c_str(), "SURF") == 0) return SURF_DET; + else if(strcasecmp(method.c_str(), "ORB") == 0) return ORB_DET; + else if(strcasecmp(method.c_str(), "FAST") == 0) return FAST_DET; + else if(strcasecmp(method.c_str(), "STAR") == 0) return STAR_DET; + else throw std::runtime_error(std::string("feature detector method ") + method + std::string(" is unknown")); + } + + string featureDescriptorMethodToString(feature_descriptor_method method){ + string sMethod; + switch(method){ + case SIFT_DES: + sMethod = "SIFT_DES"; + break; + case SURF_DES: + sMethod = "SURF_DES"; + break; + case ORB_DES: + sMethod = "ORB_DES"; + break; + default: + throw std::runtime_error(std::string("feature descriptor method ") + to_string(method) + std::string(" could not be matched to a feature descriptor method")); + } + return sMethod; + } + + feature_descriptor_method stringToFeatureDescriptorMethod(string method){ + if(strcasecmp(method.c_str(), "SIFT") == 0) return SIFT_DES; + else if(strcasecmp(method.c_str(), "SURF") == 0) return SURF_DES; + else if(strcasecmp(method.c_str(), "ORB") == 0) return ORB_DES; + else throw std::runtime_error(std::string("feature descriptor method ") + method + std::string(" is unknown")); + } + + string matcherMethodToString(matcher_method method){ + string sMethod; + switch(method){ + case BRUTEFORCE: + sMethod = "BRUTEFORCE"; + break; + case FLANN: + sMethod = "FLANN"; + break; + case KNN: + sMethod = "KNN"; + break; + case RADIUS: + sMethod = "RADIUS"; + break; + case RATIO: + sMethod = "RATIO"; + break; + default: + throw std::runtime_error(std::string("matcher method ") + to_string(method) + std::string(" could not be matched to a matcher method")); + } + return sMethod; + } + + matcher_method stringToMatcherMethod(string method){ + if(strcasecmp(method.c_str(), "BRUTEFORCE") == 0) return BRUTEFORCE; + else if(strcasecmp(method.c_str(), "FLANN") == 0) return FLANN; + else if(strcasecmp(method.c_str(), "KNN") == 0) return KNN; + else if(strcasecmp(method.c_str(), "RADIUS") == 0) return RADIUS; + else if(strcasecmp(method.c_str(), "RATIO") == 0) return RATIO; + else throw std::runtime_error(std::string("matcher method ") + method + std::string(" is unknown")); + } + + string registrationMethodToString(registration_method method){ + string sMethod; + switch(method){ + case ALL: + sMethod = "ALL"; + break; + case RANSAC: + sMethod = "RANSAC"; + break; + case DISABLE: + sMethod = "DISABLE"; + break; + default: + throw std::runtime_error(std::string("registration method ") + to_string(method) + std::string(" could not be matched to a registration method")); + } + return sMethod; + } + + registration_method stringToRegistrationMethod(string method){ + if(strcasecmp(method.c_str(), "ALL") == 0) return ALL; + else if(strcasecmp(method.c_str(), "RANSAC") == 0) return RANSAC; + else if(strcasecmp(method.c_str(), "DISABLE") == 0) return DISABLE; + else throw std::runtime_error(std::string("registration method ") + method + std::string(" is unknown")); + } +} diff --git a/.svn/pristine/2c/2c7952dce24d04b1ea11948861661d7f20ede668.svn-base b/.svn/pristine/2c/2c7952dce24d04b1ea11948861661d7f20ede668.svn-base new file mode 100644 index 0000000..3d8dd30 --- /dev/null +++ b/.svn/pristine/2c/2c7952dce24d04b1ea11948861661d7f20ede668.svn-base @@ -0,0 +1,268 @@ + +//#define WANT_STREAM + +#include "include.h" + +#include "newmatap.h" + +#include "tmt.h" + +#ifdef use_namespace +using namespace NEWMAT; +#endif + + + +// **************************** test program ****************************** + + +void Transposer(const GenericMatrix& GM1, GenericMatrix&GM2) + { GM2 = GM1.t(); } + +// this is a routine in "Numerical Recipes in C" format +// if R is a row vector, C a column vector and D diagonal +// make matrix DCR + +static void DCR(Real d[], Real c[], int m, Real r[], int n, Real **dcr) +{ + int i, j; + for (i = 1; i <= m; i++) for (j = 1; j <= n; j++) + dcr[i][j] = d[i] * c[i] * r[j]; +} + +ReturnMatrix TestReturn(const GeneralMatrix& gm) { return gm; } + +void trymat8() +{ +// cout << "\nEighth test of Matrix package\n"; + Tracer et("Eighth test of Matrix package"); + Tracer::PrintTrace(); + + int i; + + + DiagonalMatrix D(6); + for (i=1;i<=6;i++) D(i,i)=i*i+i-10; + DiagonalMatrix D2=D; + Matrix MD=D; + + DiagonalMatrix D1(6); for (i=1;i<=6;i++) D1(i,i)=-100+i*i*i; + Matrix MD1=D1; + Print(Matrix(D*D1-MD*MD1)); + Print(Matrix((-D)*D1+MD*MD1)); + Print(Matrix(D*(-D1)+MD*MD1)); + DiagonalMatrix DX=D; + { + Tracer et1("Stage 1"); + DX=(DX+D1)*DX; Print(Matrix(DX-(MD+MD1)*MD)); + DX=D; + DX=-DX*DX+(DX-(-D1))*((-D1)+DX); + // Matrix MX = Matrix(MD1); + // MD1=DX+(MX.t())*(MX.t()); Print(MD1); + MD1=DX+(Matrix(MD1).t())*(Matrix(MD1).t()); Print(MD1); + DX=D; DX=DX; DX=D2-DX; Print(DiagonalMatrix(DX)); + DX=D; + } + { + Tracer et1("Stage 2"); + D.Release(2); + D1=D; D2=D; + Print(DiagonalMatrix(D1-DX)); + Print(DiagonalMatrix(D2-DX)); + MD1=1.0; + Print(Matrix(MD1-1.0)); + } + { + Tracer et1("Stage 3"); + //GenericMatrix + LowerTriangularMatrix LT(4); + LT << 1 << 2 << 3 << 4 << 5 << 6 << 7 << 8 << 9 << 10; + UpperTriangularMatrix UT = LT.t() * 2.0; + GenericMatrix GM1 = LT; + LowerTriangularMatrix LT1 = GM1-LT; Print(LT1); + GenericMatrix GM2 = GM1; LT1 = GM2; LT1 = LT1-LT; Print(LT1); + GM2 = GM1; LT1 = GM2; LT1 = LT1-LT; Print(LT1); + GM2 = GM1*2; LT1 = GM2; LT1 = LT1-LT*2; Print(LT1); + GM1.Release(); + GM1=GM1; LT1=GM1-LT; Print(LT1); LT1=GM1-LT; Print(LT1); + GM1.Release(); + GM1=GM1*4; LT1=GM1-LT*4; Print(LT1); + LT1=GM1-LT*4; Print(LT1); GM1.CleanUp(); + GM1=LT; GM2=UT; GM1=GM1*GM2; Matrix M=GM1; M=M-LT*UT; Print(M); + Transposer(LT,GM2); LT1 = LT - GM2.t(); Print(LT1); + GM1=LT; Transposer(GM1,GM2); LT1 = LT - GM2.t(); Print(LT1); + GM1 = LT; GM1 = GM1 + GM1; LT1 = LT*2-GM1; Print(LT1); + DiagonalMatrix D; D << LT; GM1 = D; LT1 = GM1; LT1 -= D; Print(LT1); + UpperTriangularMatrix UT1 = GM1; UT1 -= D; Print(UT1); + } + { + Tracer et1("Stage 4"); + // Another test of SVD + Matrix M(12,12); M = 0; + M(1,1) = M(2,2) = M(4,4) = M(6,6) = + M(7,7) = M(8,8) = M(10,10) = M(12,12) = -1; + M(1,6) = M(1,12) = -5.601594; + M(3,6) = M(3,12) = -0.000165; + M(7,6) = M(7,12) = -0.008294; + DiagonalMatrix D; + SVD(M,D); + SortDescending(D); + // answer given by matlab + DiagonalMatrix DX(12); + DX(1) = 8.0461; + DX(2) = DX(3) = DX(4) = DX(5) = DX(6) = DX(7) = 1; + DX(8) = 0.1243; + DX(9) = DX(10) = DX(11) = DX(12) = 0; + D -= DX; Clean(D,0.0001); Print(D); + } +#ifndef DONT_DO_NRIC + { + Tracer et1("Stage 5"); + // test numerical recipes in C interface + DiagonalMatrix D(10); + D << 1 << 4 << 6 << 2 << 1 << 6 << 4 << 7 << 3 << 1; + ColumnVector C(10); + C << 3 << 7 << 5 << 1 << 4 << 2 << 3 << 9 << 1 << 3; + RowVector R(6); + R << 2 << 3 << 5 << 7 << 11 << 13; + nricMatrix M(10, 6); + DCR( D.nric(), C.nric(), 10, R.nric(), 6, M.nric() ); + M -= D * C * R; Print(M); + + D.ReSize(5); + D << 1.25 << 4.75 << 9.5 << 1.25 << 3.75; + C.ReSize(5); + C << 1.5 << 7.5 << 4.25 << 0.0 << 7.25; + R.ReSize(9); + R << 2.5 << 3.25 << 5.5 << 7 << 11.25 << 13.5 << 0.0 << 1.5 << 3.5; + Matrix MX = D * C * R; + M.ReSize(MX); + DCR( D.nric(), C.nric(), 5, R.nric(), 9, M.nric() ); + M -= MX; Print(M); + } +#endif + { + Tracer et1("Stage 6"); + // test dotproduct + DiagonalMatrix test(5); test = 1; + ColumnVector C(10); + C << 3 << 7 << 5 << 1 << 4 << 2 << 3 << 9 << 1 << 3; + RowVector R(10); + R << 2 << 3 << 5 << 7 << 11 << 13 << -3 << -4 << 2 << 4; + test(1) = (R * C).AsScalar() - DotProduct(C, R); + test(2) = C.SumSquare() - DotProduct(C, C); + test(3) = 6.0 * (C.t() * R.t()).AsScalar() - DotProduct(2.0 * C, 3.0 * R); + Matrix MC = C.AsMatrix(2,5), MR = R.AsMatrix(5,2); + test(4) = DotProduct(MC, MR) - (R * C).AsScalar(); + UpperTriangularMatrix UT(5); + UT << 3 << 5 << 2 << 1 << 7 + << 1 << 1 << 8 << 2 + << 7 << 0 << 1 + << 3 << 5 + << 6; + LowerTriangularMatrix LT(5); + LT << 5 + << 2 << 3 + << 1 << 0 << 7 + << 9 << 8 << 1 << 2 + << 0 << 2 << 1 << 9 << 2; + test(5) = DotProduct(UT, LT) - Sum(SP(UT, LT)); + Print(test); + // check row-wise load; + LowerTriangularMatrix LT1(5); + LT1.Row(1) << 5; + LT1.Row(2) << 2 << 3; + LT1.Row(3) << 1 << 0 << 7; + LT1.Row(4) << 9 << 8 << 1 << 2; + LT1.Row(5) << 0 << 2 << 1 << 9 << 2; + Matrix M = LT1 - LT; Print(M); + // check solution with identity matrix + IdentityMatrix IM(5); IM *= 2; + LinearEquationSolver LES1(IM); + LowerTriangularMatrix LTX = LES1.i() * LT; + M = LTX * 2 - LT; Print(M); + DiagonalMatrix D = IM; + LinearEquationSolver LES2(IM); + LTX = LES2.i() * LT; + M = LTX * 2 - LT; Print(M); + UpperTriangularMatrix UTX = LES1.i() * UT; + M = UTX * 2 - UT; Print(M); + UTX = LES2.i() * UT; + M = UTX * 2 - UT; Print(M); + } + + { + Tracer et1("Stage 7"); + // Some more GenericMatrix stuff with *= |= &= + // but don't any additional checks + BandMatrix BM1(6,2,3); + BM1.Row(1) << 3 << 8 << 4 << 1; + BM1.Row(2) << 5 << 1 << 9 << 7 << 2; + BM1.Row(3) << 1 << 0 << 6 << 3 << 1 << 3; + BM1.Row(4) << 4 << 2 << 5 << 2 << 4; + BM1.Row(5) << 3 << 3 << 9 << 1; + BM1.Row(6) << 4 << 2 << 9; + BandMatrix BM2(6,1,1); + BM2.Row(1) << 2.5 << 7.5; + BM2.Row(2) << 1.5 << 3.0 << 8.5; + BM2.Row(3) << 6.0 << 6.5 << 7.0; + BM2.Row(4) << 2.5 << 2.0 << 8.0; + BM2.Row(5) << 0.5 << 4.5 << 3.5; + BM2.Row(6) << 9.5 << 7.5; + Matrix RM1 = BM1, RM2 = BM2; + Matrix X; + GenericMatrix GRM1 = RM1, GBM1 = BM1, GRM2 = RM2, GBM2 = BM2; + Matrix Z(6,0); Z = 5; Print(Z); + GRM1 |= Z; GBM1 |= Z; GRM2 &= Z.t(); GBM2 &= Z.t(); + X = GRM1 - BM1; Print(X); X = GBM1 - BM1; Print(X); + X = GRM2 - BM2; Print(X); X = GBM2 - BM2; Print(X); + + GRM1 = RM1; GBM1 = BM1; GRM2 = RM2; GBM2 = BM2; + GRM1 *= GRM2; GBM1 *= GBM2; + X = GRM1 - BM1 * BM2; Print(X); + X = RM1 * RM2 - GBM1; Print(X); + + GRM1 = RM1; GBM1 = BM1; GRM2 = RM2; GBM2 = BM2; + GRM1 *= GBM2; GBM1 *= GRM2; // Bs and Rs swapped on LHS + X = GRM1 - BM1 * BM2; Print(X); + X = RM1 * RM2 - GBM1; Print(X); + + X = BM1.t(); BandMatrix BM1X = BM1.t(); + GRM1 = RM1; X -= GRM1.t(); Print(X); X = BM1X - BM1.t(); Print(X); + + // check that linear equation solver works with Identity Matrix + IdentityMatrix IM(6); IM *= 2; + GBM1 = BM1; GBM1 *= 4; GRM1 = RM1; GRM1 *= 4; + DiagonalMatrix D = IM; + LinearEquationSolver LES1(D); + BandMatrix BX; + BX = LES1.i() * GBM1; BX -= BM1 * 2; X = BX; Print(X); + LinearEquationSolver LES2(IM); + BX = LES2.i() * GBM1; BX -= BM1 * 2; X = BX; Print(X); + BX = D.i() * GBM1; BX -= BM1 * 2; X = BX; Print(X); + BX = IM.i() * GBM1; BX -= BM1 * 2; X = BX; Print(X); + BX = IM.i(); BX *= GBM1; BX -= BM1 * 2; X = BX; Print(X); + + // try symmetric band matrices + SymmetricBandMatrix SBM; SBM << SP(BM1, BM1.t()); + SBM << IM.i() * SBM; + X = 2 * SBM - SP(RM1, RM1.t()); Print(X); + + // Do this again with more general D + D << 2.5 << 7.5 << 2 << 5 << 4.5 << 7.5; + BX = D.i() * BM1; X = BX - D.i() * RM1; + Clean(X,0.00000001); Print(X); + BX = D.i(); BX *= BM1; X = BX - D.i() * RM1; + Clean(X,0.00000001); Print(X); + SBM << SP(BM1, BM1.t()); + BX = D.i() * SBM; X = BX - D.i() * SP(RM1, RM1.t()); + Clean(X,0.00000001); Print(X); + + // test return + BX = TestReturn(BM1); X = BX - BM1; + if (BX.BandWidth() != BM1.BandWidth()) X = 5; + Print(X); + } + +// cout << "\nEnd of eighth test\n"; +} diff --git a/.svn/pristine/2c/2c9b363dcfc7f2f5c47e206f9dadc9bad75f5384.svn-base b/.svn/pristine/2c/2c9b363dcfc7f2f5c47e206f9dadc9bad75f5384.svn-base new file mode 100644 index 0000000..5cb05af --- /dev/null +++ b/.svn/pristine/2c/2c9b363dcfc7f2f5c47e206f9dadc9bad75f5384.svn-base @@ -0,0 +1,36 @@ +/** + * @file + * @brief IO of a 3D scan in uos file format + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SCAN_IO_PCL_H__ +#define __SCAN_IO_PCL_H__ + +#include +using std::string; +#include +using std::vector; + +#include "scan_io.h" + +/** + * @brief 3D scan loader for UOS scans + * + * The compiled class is available as shared object file + */ +class ScanIO_pcl : public ScanIO { +public: + virtual int readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss); +}; + +// Since this shared object file is loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/.svn/pristine/2c/2cdb0ac301704eda60e2586537bc861b2fc374c6.svn-base b/.svn/pristine/2c/2cdb0ac301704eda60e2586537bc861b2fc374c6.svn-base new file mode 100644 index 0000000..493e65b --- /dev/null +++ b/.svn/pristine/2c/2cdb0ac301704eda60e2586537bc861b2fc374c6.svn-base @@ -0,0 +1,101 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 2.8 + +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvaux.cpp.o: 3rdparty/cvblob/cvaux.cpp +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvaux.cpp.o: 3rdparty/cvblob/cvblob.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvaux.cpp.o: /usr/include/opencv/cv.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvaux.cpp.o: /usr/include/opencv/cv.hpp +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvaux.cpp.o: /usr/include/opencv/cvcompat.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvaux.cpp.o: /usr/include/opencv/cvtypes.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvaux.cpp.o: /usr/include/opencv/cvver.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvaux.cpp.o: /usr/include/opencv/cxcore.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvaux.cpp.o: /usr/include/opencv/cxcore.hpp +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvaux.cpp.o: /usr/include/opencv/cxerror.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvaux.cpp.o: /usr/include/opencv/cxflann.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvaux.cpp.o: /usr/include/opencv/cxmat.hpp +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvaux.cpp.o: /usr/include/opencv/cxmisc.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvaux.cpp.o: /usr/include/opencv/cxoperations.hpp +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvaux.cpp.o: /usr/include/opencv/cxtypes.h + +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvblob.cpp.o: 3rdparty/cvblob/cvblob.cpp +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvblob.cpp.o: 3rdparty/cvblob/cvblob.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvblob.cpp.o: /usr/include/opencv/cv.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvblob.cpp.o: /usr/include/opencv/cv.hpp +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvblob.cpp.o: /usr/include/opencv/cvcompat.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvblob.cpp.o: /usr/include/opencv/cvtypes.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvblob.cpp.o: /usr/include/opencv/cvver.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvblob.cpp.o: /usr/include/opencv/cxcore.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvblob.cpp.o: /usr/include/opencv/cxcore.hpp +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvblob.cpp.o: /usr/include/opencv/cxerror.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvblob.cpp.o: /usr/include/opencv/cxflann.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvblob.cpp.o: /usr/include/opencv/cxmat.hpp +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvblob.cpp.o: /usr/include/opencv/cxmisc.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvblob.cpp.o: /usr/include/opencv/cxoperations.hpp +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvblob.cpp.o: /usr/include/opencv/cxtypes.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvblob.cpp.o: /usr/include/opencv/highgui.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvblob.cpp.o: /usr/include/opencv/highgui.hpp + +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcolor.cpp.o: 3rdparty/cvblob/cvblob.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcolor.cpp.o: 3rdparty/cvblob/cvcolor.cpp +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcolor.cpp.o: /usr/include/opencv/cv.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcolor.cpp.o: /usr/include/opencv/cv.hpp +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcolor.cpp.o: /usr/include/opencv/cvcompat.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcolor.cpp.o: /usr/include/opencv/cvtypes.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcolor.cpp.o: /usr/include/opencv/cvver.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcolor.cpp.o: /usr/include/opencv/cxcore.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcolor.cpp.o: /usr/include/opencv/cxcore.hpp +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcolor.cpp.o: /usr/include/opencv/cxerror.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcolor.cpp.o: /usr/include/opencv/cxflann.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcolor.cpp.o: /usr/include/opencv/cxmat.hpp +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcolor.cpp.o: /usr/include/opencv/cxmisc.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcolor.cpp.o: /usr/include/opencv/cxoperations.hpp +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcolor.cpp.o: /usr/include/opencv/cxtypes.h + +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcontour.cpp.o: 3rdparty/cvblob/cvblob.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcontour.cpp.o: 3rdparty/cvblob/cvcontour.cpp +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcontour.cpp.o: /usr/include/opencv/cv.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcontour.cpp.o: /usr/include/opencv/cv.hpp +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcontour.cpp.o: /usr/include/opencv/cvcompat.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcontour.cpp.o: /usr/include/opencv/cvtypes.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcontour.cpp.o: /usr/include/opencv/cvver.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcontour.cpp.o: /usr/include/opencv/cxcore.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcontour.cpp.o: /usr/include/opencv/cxcore.hpp +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcontour.cpp.o: /usr/include/opencv/cxerror.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcontour.cpp.o: /usr/include/opencv/cxflann.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcontour.cpp.o: /usr/include/opencv/cxmat.hpp +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcontour.cpp.o: /usr/include/opencv/cxmisc.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcontour.cpp.o: /usr/include/opencv/cxoperations.hpp +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcontour.cpp.o: /usr/include/opencv/cxtypes.h + +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvlabel.cpp.o: 3rdparty/cvblob/cvblob.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvlabel.cpp.o: 3rdparty/cvblob/cvlabel.cpp +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvlabel.cpp.o: /usr/include/opencv/cv.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvlabel.cpp.o: /usr/include/opencv/cv.hpp +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvlabel.cpp.o: /usr/include/opencv/cvcompat.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvlabel.cpp.o: /usr/include/opencv/cvtypes.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvlabel.cpp.o: /usr/include/opencv/cvver.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvlabel.cpp.o: /usr/include/opencv/cxcore.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvlabel.cpp.o: /usr/include/opencv/cxcore.hpp +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvlabel.cpp.o: /usr/include/opencv/cxerror.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvlabel.cpp.o: /usr/include/opencv/cxflann.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvlabel.cpp.o: /usr/include/opencv/cxmat.hpp +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvlabel.cpp.o: /usr/include/opencv/cxmisc.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvlabel.cpp.o: /usr/include/opencv/cxoperations.hpp +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvlabel.cpp.o: /usr/include/opencv/cxtypes.h + +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvtrack.cpp.o: 3rdparty/cvblob/cvblob.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvtrack.cpp.o: 3rdparty/cvblob/cvtrack.cpp +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvtrack.cpp.o: /usr/include/opencv/cv.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvtrack.cpp.o: /usr/include/opencv/cv.hpp +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvtrack.cpp.o: /usr/include/opencv/cvcompat.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvtrack.cpp.o: /usr/include/opencv/cvtypes.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvtrack.cpp.o: /usr/include/opencv/cvver.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvtrack.cpp.o: /usr/include/opencv/cxcore.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvtrack.cpp.o: /usr/include/opencv/cxcore.hpp +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvtrack.cpp.o: /usr/include/opencv/cxerror.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvtrack.cpp.o: /usr/include/opencv/cxflann.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvtrack.cpp.o: /usr/include/opencv/cxmat.hpp +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvtrack.cpp.o: /usr/include/opencv/cxmisc.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvtrack.cpp.o: /usr/include/opencv/cxoperations.hpp +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvtrack.cpp.o: /usr/include/opencv/cxtypes.h + diff --git a/.svn/pristine/2c/2ce0727ff133f9885eb9ca366c2a315a26cdd466.svn-base b/.svn/pristine/2c/2ce0727ff133f9885eb9ca366c2a315a26cdd466.svn-base new file mode 100644 index 0000000..c4e37f8 --- /dev/null +++ b/.svn/pristine/2c/2ce0727ff133f9885eb9ca366c2a315a26cdd466.svn-base @@ -0,0 +1,490 @@ +/* + * graphSlam6D implementation + * + * Copyright (C) Dorit Borrmann, Jan Elseberg, Kai Lingemann, Andreas Nuechter + * + * Released under the GPL version 3. + * + */ + + +/** + * @file + * @brief The implementation of globally consistent scan matching algorithm + * @author Dorit Borrman. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Jan Elseberg. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifdef _MSC_VER +#if !defined _OPENMP && defined OPENMP +#define _OPENMP +#endif +#endif + +#include "slam6d/graphSlam6D.h" +#include "sparse/csparse.h" + +#include +#include +using std::ofstream; +using std::flush; +#include "slam6d/globals.icc" + +using namespace NEWMAT; +/** + * Constructor + * + * @param my_icp6Dminimizer Pointer to ICP minimization functor + * @param mdm Maximum PtoP distance to which point pairs are collected for ICP + * @param max_dist_match Maximum PtoP distance to which point pairs are collected for LUM + * @param max_num_iterations Maximal number of iterations for ICP + * @param quiet Suspesses all output to std out + * @param meta Indicates if metascan matching has to be used + * @param rnd Indicates if randomization has to be used + * @param eP Extrapolate odometry? + * @param anim Animate which frames? + * @param epsilonICP Termination criterion for ICP + * @param nns_method Specifies which NNS method to use + * @param epsilonLUM Termination criterion for LUM + */ +graphSlam6D::graphSlam6D(icp6Dminimizer *my_icp6Dminimizer, + double mdm, double max_dist_match, + int max_num_iterations, bool quiet, bool meta, int rnd, + bool eP, int anim, double epsilonICP, int nns_method, double epsilonLUM) +{ + this->nns_method = nns_method; + this->quiet = quiet; + this->epsilonLUM = epsilonLUM; + this->max_dist_match2_LUM = sqr(max_dist_match); + + ctime = 0; + + this->my_icp = new icp6D(my_icp6Dminimizer, mdm, max_num_iterations, + quiet, meta, rnd, eP, anim, epsilonICP, nns_method); +} + +graphSlam6D::~graphSlam6D() + { + cout << "Time spent in the SLAM backend:" << ctime << endl; + } +/** + * This function is used to match a set of laser scans with any minimally + * connected Graph, using the globally consistent LUM-algorithm in 3D. + * + * @param allScans Contains all laser scans + * @param nrIt The number of iterations the LUM-algorithm will run + * @param clpairs minimal number of points aximal distance for closing loops + * @param loopsize minimal loop size + */ +void graphSlam6D::matchGraph6Dautomatic(vector allScans, int nrIt, int clpairs, int loopsize) +{ + // the IdentityMatrix to transform some Scans with + double id[16]; + M4identity(id); + + Graph *gr = 0; + int i = 0; + + do { + cout << "Generate graph ... " << flush; + i++; + if (gr) delete gr; + gr = new Graph(0, false); + int j, maxj = (int)allScans.size(); +#ifdef _OPENMP + omp_set_num_threads(OPENMP_NUM_THREADS); +#pragma omp parallel for schedule(dynamic) +#endif + for (j = 0; j < maxj; j++) { +#ifdef _OPENMP + int thread_num = omp_get_thread_num(); +#else + int thread_num = 0; +#endif + for (int k = 0; k < (int)allScans.size(); k++) { + if (j == k) continue; + Scan * FirstScan = allScans[j]; + Scan * SecondScan = allScans[k]; + double centroid_d[3] = {0.0, 0.0, 0.0}; + double centroid_m[3] = {0.0, 0.0, 0.0}; + vPtPair temp; + double sum_dummy; + Scan::getPtPairs(&temp, FirstScan, SecondScan, thread_num, + my_icp->get_rnd(), (int)max_dist_match2_LUM, sum_dummy, + centroid_m, centroid_d); + if ((int)temp.size() > clpairs) { +#ifdef _OPENMP +#pragma omp critical +#endif + gr->addLink(j, k); + } + } + } + cout << "done" << endl; + } while ((doGraphSlam6D(*gr, allScans, 1) > 0.001) && (i < nrIt)); + + return; +} + + +Graph *graphSlam6D::computeGraph6Dautomatic(vector allScans, int clpairs) +{ + // the IdentityMatrix to transform some Scans with + double id[16]; + M4identity(id); + + int i = 0; + + cout << "Generate graph ... " << flush; + i++; + Graph *gr = new Graph(0, false); + int j, maxj = (int)allScans.size(); +#ifdef _OPENMP + omp_set_num_threads(OPENMP_NUM_THREADS); +#pragma omp parallel for schedule(dynamic) +#endif + for (j = 0; j < maxj; j++) { +#ifdef _OPENMP + int thread_num = omp_get_thread_num(); +#else + int thread_num = 0; +#endif + for (int k = 0; k < (int)allScans.size(); k++) { + if (j == k) continue; + Scan * FirstScan = allScans[j]; + Scan * SecondScan = allScans[k]; + double centroid_d[3] = {0.0, 0.0, 0.0}; + double centroid_m[3] = {0.0, 0.0, 0.0}; + vPtPair temp; + double sum_dummy; + Scan::getPtPairs(&temp, FirstScan, SecondScan, thread_num, + my_icp->get_rnd(), (int)max_dist_match2_LUM, sum_dummy, + centroid_m, centroid_d); + if ((int)temp.size() > clpairs) { +#ifdef _OPENMP +#pragma omp critical +#endif + gr->addLink(j, k); + } + } + } + cout << "done" << endl; + + return gr; +} + +/** + * This function is used to solve the system of linear eq. + * + * @param G symmetric, positive definite Matrix, thus invertable + * @param B column vector + */ +void graphSlam6D::writeMatrixPGM(const Matrix &G) +{ + int n = G.Ncols(); + static int matrixnum = 0; + string mf = "matrix" + to_string(matrixnum,4) + ".pgm"; + ofstream matrixout(mf.c_str()); + matrixout << "P2" << endl + << "# CREATOR slam6D (c) Andreas Nuechter, 05/2007" << endl + << n << " " << n << endl + << 255 << endl; + for (int i = 0; i < n; i++) { + for (int j = 0; j < n; j++) { + if (G.element(i, j) > 0.001) { + matrixout << 0 << " "; + } else { + matrixout << 255 << " "; + } + } + matrixout << endl; + } + // matrixout << G << endl; + matrixout.close(); + matrixout.clear(); + matrixnum++; + +} + + + +/** + * This function is used to solve the system of linear eq. + * + * @param G Matrix, invertable + * @param B column vector + */ +ColumnVector graphSlam6D::solve(const Matrix &G, const ColumnVector &B) +{ + +#ifdef WRITE_MATRIX_PGM + writeMatrixPGM(G); +#endif + + // ---------------------------------- + // solve eqn via inverting the matrix + // ---------------------------------- + return (ColumnVector)(G.i() * B); +} + + +/** + * This function is used to solve the system of linear eq. + * The implementation from the numerical recepies are used + * + * @param G symmetric, positive definite Matrix, thus invertable + * @param B column vector + */ +ColumnVector graphSlam6D::solveCholesky(const Matrix &G, const ColumnVector &B) +{ + +#ifdef WRITE_MATRIX_PGM + writeMatrixPGM(G); +#endif + + // We copy the newmat matrices and use our own + // Cholesky decomposition code here. The Cholesky + // decomosition is based on the Numerical Recipes in C. + // This speed ups computation time + + // copy values + int n = G.Ncols(); + double **A = new double*[n]; + double *C = new double[n]; + double *diag = new double[n]; + double *x = new double[n]; + ColumnVector X(n); + for (int i = 0; i < n; i++) { + A[i] = new double[n]; + for (int j = 0; j < n; j++) { + A[i][j] = G.element(i, j); + } + C[i] = B.element(i); + } + // -------------------------------------------------- + // make cholesky dekomposition with numerical recipes + // -------------------------------------------------- + if (!choldc(n, A, diag)) { + cout << "cannot perfom cholesky decomposition" << endl; + } + // solve A x = C + cholsl(n, A, diag, C, x); + // copy values back + for (int i = 0; i < n; i++) { + X.element(i) = x[i]; + } + // clean up + for (int i = 0; i < n; i++) { + delete [] A[i]; + } + delete [] x; + delete [] diag; + delete [] C; + delete [] A; + + return X; +} + + +/** + * This function is used to solve the system of linear eq. + * + * @param G symmetric, positive definite Matrix, thus invertable + * @param B column vector + */ +ColumnVector graphSlam6D::solveSparseCholesky(const Matrix &G, const ColumnVector &B) +{ + + long starttime = GetCurrentTimeInMilliSec(); + +#ifdef WRITE_MATRIX_PGM + writeMatrixPGM(G); +#endif + + int n = G.Ncols(); + + // ------------------------------ + // Sparse Cholsekey decomposition + // ------------------------------ + ColumnVector X(n); + cs *A, *T = cs_spalloc (0, 0, 1, 1, 1) ; + double *x = new double[n]; + for (int i = 0; i < n; i++) { + for (int j = 0; j < n; j++) { + if (fabs(G.element(i, j)) > 0.00001) { + cs_entry (T, i, j, G.element(i, j)); + } + } + x[i] = B.element(i); + } + A = cs_triplet (T); + cs_dropzeros (A) ; // drop zero entries + cs_cholsol (A, x, 1) ; + // copy values back + for (int i = 0; i < n; i++) { + X.element(i) = x[i]; + } + + cs_spfree(A); + cs_spfree(T); + delete [] x; + + ctime += GetCurrentTimeInMilliSec() - starttime; + + return X; +} + +ColumnVector graphSlam6D::solveSparseCholesky(GraphMatrix *G, const ColumnVector &B) +{ + + long starttime = GetCurrentTimeInMilliSec(); + + int n = B.Nrows(); + ColumnVector X(n); + + // ------------------------------ + // Sparse Cholsekey decomposition + // ------------------------------ + cs *A, *T = cs_spalloc (0, 0, 1, 1, 1) ; + double *x = new double[n]; + for (int i = 0; i < n; i++) { + x[i] = B.element(i); + } + G->convertToCS(T); + A = cs_triplet (T); + cs_dropzeros (A) ; // drop zero entries +// cs_print(T, 0); + cs_cholsol (A, x, 1) ; + // copy values back + for (int i = 0; i < n; i++) { + X.element(i) = x[i]; + } + + cs_spfree(A); + cs_spfree(T); + delete [] x; + + ctime += GetCurrentTimeInMilliSec() - starttime; + + return X; +} + + +/** + * This function is used to solve the system of linear eq. + * + * @param G invertable Matrix + * @param B column vector + */ +ColumnVector graphSlam6D::solveSparseQR(const Matrix &G, const ColumnVector &B) +{ + +#ifdef WRITE_MATRIX_PGM + writeMatrixPGM(G); +#endif + + int n = B.Ncols(); + + ColumnVector X(n); + cs *A, *T = cs_spalloc (0, 0, 1, 1, 1) ; + double *x = new double[n]; + for (int i = 0; i < n; i++) { + for (int j = 0; j < n; j++) { + if (fabs(G.element(i, j)) > 0.00001) { + cs_entry (T, i, j, G.element(i, j)); + } + } + x[i] = B.element(i); + } + A = cs_triplet (T); + cs_dropzeros (A) ; // drop zero entries + int order = 3; // for qr-ordering + cs_qrsol ( A, x, order) ; + // copy values back + for (int i = 0; i < n; i++) { + X.element(i) = x[i]; + } + + cs_spfree(A); + cs_spfree(T); + delete [] x; + + return X; +} + +void graphSlam6D::set_mdmll(double mdmll) { + max_dist_match2_LUM = sqr(mdmll); +} + + +void GraphMatrix::add(const unsigned int i, const unsigned int j, Matrix &Cij) { + uipair ui(i,j); + it = matrix.find( ui ); + if (it != matrix.end()) { + (*(it->second)) += Cij; + } else { + Matrix *C = new Matrix(6,6); + *C = Cij; + matrix.insert( uimpair( ui, C)); + } +} + +void GraphMatrix::subtract(const unsigned int i, const unsigned int j,Matrix &Cij) { + uipair ui(i,j); + it = matrix.find( ui ); + if (it != matrix.end()) { + (*it->second) -= Cij; + } else { + Matrix *C = new Matrix(6,6); + *C = Cij; + *C *= -1.0; + matrix.insert( uimpair( ui, C)); + } +} + +void GraphMatrix::print() { + for ( it = matrix.begin() ; it != matrix.end(); it++ ) { + uimpair uim = *it; + uipair ui = uim.first; + cout << ui.first << " " << ui.second << " :" << endl << *uim.second << endl; + } +} + +GraphMatrix::~GraphMatrix() { + for ( it = matrix.begin() ; it != matrix.end(); it++ ) { + uimpair uim = *it; + delete uim.second; + } + +} + +void GraphMatrix::convertToCS(cs *T) { + unsigned int a,b; + int imin,imax,jmin,jmax; + + for ( it = matrix.begin() ; it != matrix.end(); it++ ) { + Matrix *C = it->second; + a = it->first.first; + b = it->first.second; +// cout << a << " " << b << " " << C << endl; + imin = a*6; + jmin = b*6; + + imax = a*6 + 6; + jmax = b*6 + 6; + a = b = 0; + + for (int i = imin; i < imax; i++, a++) { + b = 0; + for (int j = jmin; j < jmax; j++, b++) { + if (fabs(C->element(a, b)) > 0.00001) { + cs_entry (T, i, j, C->element(a, b)); + } + } + } + } +// print(); +// cs_print(T, 0); +} diff --git a/.svn/pristine/2c/2ce7b870e535af9d29b8722847264faf29930fbb.svn-base b/.svn/pristine/2c/2ce7b870e535af9d29b8722847264faf29930fbb.svn-base new file mode 100644 index 0000000..13aff68 --- /dev/null +++ b/.svn/pristine/2c/2ce7b870e535af9d29b8722847264faf29930fbb.svn-base @@ -0,0 +1,145 @@ +/* + * icp6Ddual implementation + * + * Copyright (C) Andreas Nuechter, Alexandru-Eugen Ichim + * + * Released under the GPL version 3. + * + */ + +/** @file + * @brief Implementation of the ICP error function minimization + * via dual quaternions + * + * @author Andreas Nuechter. Jacobs University Bremen gGmbH, Germany + * @author Alexandru-Eugen Ichim. Jacobs University Bremen gGmbH, Germany + * + */ + +#include "slam6d/icp6Ddual.h" +#include "slam6d/globals.icc" + +#include +using std::ios; +using std::resetiosflags; +using std::setiosflags; + +#include "newmat/newmat.h" +#include "newmat/newmatap.h" + +using namespace NEWMAT; + +/** + * computes the rotation matrix consisting + * of a rotation and translation that + * minimizes the root-mean-square error of the + * point pairs using dual quaternions + * @param pairs Vector of point pairs (pairs of corresponding points) + * @param *alignfx The resulting transformation matrix + * @return Error estimation of the matching (rms) + */ +double icp6D_DUAL::Point_Point_Align(const vector& pairs, double *alignfx, + const double centroid_m[3], const double centroid_d[3]) +{ + double error = 0; + double sum = 0.0; + + for(unsigned int i = 0; i < pairs.size(); i++){ + sum += sqr(pairs[i].p1.x - pairs[i].p2.x) + + sqr(pairs[i].p1.y - pairs[i].p2.y) + + sqr(pairs[i].p1.z - pairs[i].p2.z) ; + } + + error = sqrt(sum / (double)pairs.size()); + + if (!quiet) { + cout.setf(ios::basefield); + cout << "DUALQUAT RMS point-to-point error = " + << resetiosflags(ios::adjustfield) << setiosflags(ios::internal) + << resetiosflags(ios::floatfield) << setiosflags(ios::fixed) + << std::setw(10) << std::setprecision(7) + << error + << " using " << std::setw(6) << (int)pairs.size() << " points" << endl; + } + + + +///////////////////////////////////////////////////////// +///////////////////////////////////////////////////////// + + Matrix C1(4, 4); C1 = 0.0; + Matrix C2(4, 4); C2 = 0.0; + + /// build up matrices C1 and C2 + for(unsigned int i = 0; i < pairs.size(); ++i) { + ColumnVector m(3), d(3); + m << pairs[i].p1.x << pairs[i].p1.y << pairs[i].p1.z; + d << pairs[i].p2.x << pairs[i].p2.y << pairs[i].p2.z; + Matrix Cm(3, 3); Cm << 0 << -m(3) << m(2) << m(3) << 0 << -m(1) << -m(2) << m(1) << 0; + Matrix Cd(3, 3); Cd << 0 << -d(3) << d(2) << d(3) << 0 << -d(1) << -d(2) << d(1) << 0; + + C1.SubMatrix(1, 1, 1, 1) += m.t()*d; + C1.SubMatrix(1, 1, 2, 4) += -m.t()*Cd; + C1.SubMatrix(2, 4, 1, 1) += -Cm*d; + C1.SubMatrix(2, 4, 2, 4) += m*d.t() + Cm*Cd; + + C2.SubMatrix(1, 1, 2, 4) += -d.t() + m.t(); + C2.SubMatrix(2, 4, 1, 1) += d - m; + C2.SubMatrix(2, 4, 2, 4) += -Cd - Cm; + } + + /// the sums need to be multiplied by a scalar + C1 = C1 * (-2); + C2 = C2 * 2; + + /// matrix A from C1 and C2 + Matrix A = (C2.t()*C2 * 1.0/(2*pairs.size()) - C1 - C1.t()) * 0.5; + + /// the quaternion qdot is the eigenvector of matrix A corresponding to the largest eigenvalue, + /// which is always found in the first column of matrix U + Matrix U(4, 4); DiagonalMatrix D(4); + SVD(A, D, U); + ColumnVector qdot = U.Column(1); + ColumnVector q(3); q << qdot(2) << qdot(3) << qdot(4); + Matrix Cq(3, 3); Cq << 0 << -q(3) << q(2) << q(3) << 0 << -q(1) << -q(2) << q(1) << 0; + + ColumnVector s = C2*qdot * (-1.0)/(2*pairs.size()); + + Matrix Q(4, 4); + Q(1, 1) = qdot(1); + Q.SubMatrix(1, 1, 2, 4) = q.t(); + Q.SubMatrix(2, 4, 1, 1) = -q; + Q.SubMatrix(2, 4, 2, 4) = IdentityMatrix(3)*qdot(1) + Cq; + + /// get the translation from the double quaternion + ColumnVector p = Q*s; + ColumnVector translation(3); translation << p(2) << p(3) << p(4); + + /// compute the rotation matrix from the quaternion + ColumnVector qtqx = q.t()*q; + Matrix R = IdentityMatrix(3) * (qdot(1)*qdot(1) - qtqx(1)) + q*q.t()*2 + Cq*qdot(1)*2; + + /// create the final transformation matrix (OpenGL column-wise ordering) + alignfx[0] = R(1, 1); + alignfx[1] = R(2, 1); + alignfx[2] = R(3, 1); + alignfx[3] = 0.0; + alignfx[4] = R(1, 2); + alignfx[5] = R(2, 2); + alignfx[6] = R(3, 2); + alignfx[7] = 0.0; + alignfx[8] = R(1, 3); + alignfx[9] = R(2, 3); + alignfx[10]= R(3, 3); + alignfx[11]= 0.0; + alignfx[12]= translation(1); + alignfx[13]= translation(2); + alignfx[14]= translation(3); + alignfx[15]= 1.0; + +///////////////////////////////////////////////////////// +///////////////////////////////////////////////////////// + + return error; +} + diff --git a/.svn/pristine/2c/2cfd4b38a1a13070ff999030622aa89bc0119e40.svn-base b/.svn/pristine/2c/2cfd4b38a1a13070ff999030622aa89bc0119e40.svn-base new file mode 100644 index 0000000..917a390 --- /dev/null +++ b/.svn/pristine/2c/2cfd4b38a1a13070ff999030622aa89bc0119e40.svn-base @@ -0,0 +1,122 @@ +//$$newmatrm.h rectangular matrix operations + +// Copyright (C) 1991,2,3,4: R B Davies + +#ifndef NEWMATRM_LIB +#define NEWMATRM_LIB 0 + +#ifdef use_namespace +namespace NEWMAT { +#endif + +// operations on rectangular matrices + +class RectMatrixCol; + +class RectMatrixRowCol +// a class for accessing rows and columns of rectangular matrices +{ +protected: +#ifdef use_namespace // to make namespace work +public: +#endif + Real* store; // pointer to storage + int n; // number of elements + int spacing; // space between elements + int shift; // space between cols or rows + RectMatrixRowCol(Real* st, int nx, int sp, int sh) + : store(st), n(nx), spacing(sp), shift(sh) {} + void Reset(Real* st, int nx, int sp, int sh) + { store=st; n=nx; spacing=sp; shift=sh; } +public: + Real operator*(const RectMatrixRowCol&) const; // dot product + void AddScaled(const RectMatrixRowCol&, Real); // add scaled + void Divide(const RectMatrixRowCol&, Real); // scaling + void Divide(Real); // scaling + void Negate(); // change sign + void Zero(); // zero row col + Real& operator[](int i) { return *(store+i*spacing); } // element + Real SumSquare() const; // sum of squares + Real& First() { return *store; } // get first element + void DownDiag() { store += (shift+spacing); n--; } + void UpDiag() { store -= (shift+spacing); n++; } + friend void ComplexScale(RectMatrixCol&, RectMatrixCol&, Real, Real); + friend void Rotate(RectMatrixCol&, RectMatrixCol&, Real, Real); + FREE_CHECK(RectMatrixRowCol) +}; + +class RectMatrixRow : public RectMatrixRowCol +{ +public: + RectMatrixRow(const Matrix&, int, int, int); + RectMatrixRow(const Matrix&, int); + void Reset(const Matrix&, int, int, int); + void Reset(const Matrix&, int); + Real& operator[](int i) { return *(store+i); } + void Down() { store += shift; } + void Right() { store++; n--; } + void Up() { store -= shift; } + void Left() { store--; n++; } + FREE_CHECK(RectMatrixRow) +}; + +class RectMatrixCol : public RectMatrixRowCol +{ +public: + RectMatrixCol(const Matrix&, int, int, int); + RectMatrixCol(const Matrix&, int); + void Reset(const Matrix&, int, int, int); + void Reset(const Matrix&, int); + void Down() { store += spacing; n--; } + void Right() { store++; } + void Up() { store -= spacing; n++; } + void Left() { store--; } + friend void ComplexScale(RectMatrixCol&, RectMatrixCol&, Real, Real); + friend void Rotate(RectMatrixCol&, RectMatrixCol&, Real, Real); + FREE_CHECK(RectMatrixCol) +}; + +class RectMatrixDiag : public RectMatrixRowCol +{ +public: + RectMatrixDiag(const DiagonalMatrix& D) + : RectMatrixRowCol(D.Store(), D.Nrows(), 1, 1) {} + Real& operator[](int i) { return *(store+i); } + void DownDiag() { store++; n--; } + void UpDiag() { store--; n++; } + FREE_CHECK(RectMatrixDiag) +}; + + +inline RectMatrixRow::RectMatrixRow + (const Matrix& M, int row, int skip, int length) + : RectMatrixRowCol( M.Store()+row*M.Ncols()+skip, length, 1, M.Ncols() ) {} + +inline RectMatrixRow::RectMatrixRow (const Matrix& M, int row) + : RectMatrixRowCol( M.Store()+row*M.Ncols(), M.Ncols(), 1, M.Ncols() ) {} + +inline RectMatrixCol::RectMatrixCol + (const Matrix& M, int skip, int col, int length) + : RectMatrixRowCol( M.Store()+col+skip*M.Ncols(), length, M.Ncols(), 1 ) {} + +inline RectMatrixCol::RectMatrixCol (const Matrix& M, int col) + : RectMatrixRowCol( M.Store()+col, M.Nrows(), M.Ncols(), 1 ) {} + +inline Real square(Real x) { return x*x; } +inline Real sign(Real x, Real y) + { return (y>=0) ? x : -x; } // assume x >=0 + + + + + + +#ifdef use_namespace +} +#endif + +#endif + +// body file: newmatrm.cpp + + diff --git a/.svn/pristine/2d/2d0c01d8e301a8193b37b034c7828e0e60e65992.svn-base b/.svn/pristine/2d/2d0c01d8e301a8193b37b034c7828e0e60e65992.svn-base new file mode 100644 index 0000000..312bf8c --- /dev/null +++ b/.svn/pristine/2d/2d0c01d8e301a8193b37b034c7828e0e60e65992.svn-base @@ -0,0 +1,36 @@ +/** + * @file + * @brief IO of 3D scans in XYZ file format (i.e., pure 3D data points only) + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SCAN_IO_XYZ_H__ +#define __SCAN_IO_XYZ_H__ + +#include +using std::string; +#include +using std::vector; + +#include "scan_io.h" + +/** + * @brief 3D scan loader for XYZ scans (i.e., pure 3D data points only) + * + * The compiled class is available as shared object file + */ +class ScanIO_xyz : public ScanIO { +public: + virtual int readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss); +}; + +// Since this shared object file is loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/.svn/pristine/2d/2da2651b3d0b9622bd9f7d2e787aba6af9557dd1.svn-base b/.svn/pristine/2d/2da2651b3d0b9622bd9f7d2e787aba6af9557dd1.svn-base new file mode 100644 index 0000000..41455a0 --- /dev/null +++ b/.svn/pristine/2d/2da2651b3d0b9622bd9f7d2e787aba6af9557dd1.svn-base @@ -0,0 +1,3 @@ +-7.99848 -15.3529 337.973 +1.11333 -0.470508 -0.479231 + diff --git a/.svn/pristine/2d/2dc8b84221904fd897bbb671eeaf1e3465b3e770.svn-base b/.svn/pristine/2d/2dc8b84221904fd897bbb671eeaf1e3465b3e770.svn-base new file mode 100644 index 0000000..6fa4b7b --- /dev/null +++ b/.svn/pristine/2d/2dc8b84221904fd897bbb671eeaf1e3465b3e770.svn-base @@ -0,0 +1,633 @@ +//$$ newmat2.cpp Matrix row and column operations + +// Copyright (C) 1991,2,3,4: R B Davies + +#define WANT_MATH + +#include "include.h" + +#include "newmat.h" +#include "newmatrc.h" + +#ifdef use_namespace +namespace NEWMAT { +#endif + + +#ifdef DO_REPORT +#define REPORT { static ExeCounter ExeCount(__LINE__,2); ++ExeCount; } +#else +#define REPORT {} +#endif + +//#define MONITOR(what,storage,store) { cout << what << " " << storage << " at " << (long)store << "\n"; } + +#define MONITOR(what,store,storage) {} + +/************************** Matrix Row/Col functions ************************/ + +void MatrixRowCol::Add(const MatrixRowCol& mrc) +{ + // THIS += mrc + REPORT + int f = mrc.skip; int l = f + mrc.storage; int lx = skip + storage; + if (f < skip) f = skip; if (l > lx) l = lx; l -= f; + if (l<=0) return; + Real* elx=data+(f-skip); Real* el=mrc.data+(f-mrc.skip); + while (l--) *elx++ += *el++; +} + +void MatrixRowCol::AddScaled(const MatrixRowCol& mrc, Real x) +{ + REPORT + // THIS += (mrc * x) + int f = mrc.skip; int l = f + mrc.storage; int lx = skip + storage; + if (f < skip) f = skip; if (l > lx) l = lx; l -= f; + if (l<=0) return; + Real* elx=data+(f-skip); Real* el=mrc.data+(f-mrc.skip); + while (l--) *elx++ += *el++ * x; +} + +void MatrixRowCol::Sub(const MatrixRowCol& mrc) +{ + REPORT + // THIS -= mrc + int f = mrc.skip; int l = f + mrc.storage; int lx = skip + storage; + if (f < skip) f = skip; if (l > lx) l = lx; l -= f; + if (l<=0) return; + Real* elx=data+(f-skip); Real* el=mrc.data+(f-mrc.skip); + while (l--) *elx++ -= *el++; +} + +void MatrixRowCol::Inject(const MatrixRowCol& mrc) +// copy stored elements only +{ + REPORT + int f = mrc.skip; int l = f + mrc.storage; int lx = skip + storage; + if (f < skip) f = skip; if (l > lx) l = lx; l -= f; + if (l<=0) return; + Real* elx=data+(f-skip); Real* ely=mrc.data+(f-mrc.skip); + while (l--) *elx++ = *ely++; +} + +Real DotProd(const MatrixRowCol& mrc1, const MatrixRowCol& mrc2) +{ + REPORT // not accessed + int f = mrc1.skip; int f2 = mrc2.skip; + int l = f + mrc1.storage; int l2 = f2 + mrc2.storage; + if (f < f2) f = f2; if (l > l2) l = l2; l -= f; + if (l<=0) return 0.0; + + Real* el1=mrc1.data+(f-mrc1.skip); Real* el2=mrc2.data+(f-mrc2.skip); + Real sum = 0.0; + while (l--) sum += *el1++ * *el2++; + return sum; +} + +void MatrixRowCol::Add(const MatrixRowCol& mrc1, const MatrixRowCol& mrc2) +{ + // THIS = mrc1 + mrc2 + int f = skip; int l = skip + storage; + int f1 = mrc1.skip; int l1 = f1 + mrc1.storage; + if (f1l) l1=l; + int f2 = mrc2.skip; int l2 = f2 + mrc2.storage; + if (f2l) l2=l; + Real* el = data + (f-skip); + Real* el1 = mrc1.data+(f1-mrc1.skip); Real* el2 = mrc2.data+(f2-mrc2.skip); + if (f1l) l1=l; + int f2 = mrc2.skip; int l2 = f2 + mrc2.storage; + if (f2l) l2=l; + Real* el = data + (f-skip); + Real* el1 = mrc1.data+(f1-mrc1.skip); Real* el2 = mrc2.data+(f2-mrc2.skip); + if (f1 lx) { l = lx; if (f > lx) f = lx; } + + Real* elx = data; Real* ely = mrc1.data+(f-mrc1.skip); + + int l1 = f-skip; while (l1--) *elx++ = x; + l1 = l-f; while (l1--) *elx++ = *ely++ + x; + lx -= l; while (lx--) *elx++ = x; +} + +void MatrixRowCol::NegAdd(const MatrixRowCol& mrc1, Real x) +{ + // THIS = x - mrc1 + REPORT + if (!storage) return; + int f = mrc1.skip; int l = f + mrc1.storage; int lx = skip + storage; + if (f < skip) { f = skip; if (l < f) l = f; } + if (l > lx) { l = lx; if (f > lx) f = lx; } + + Real* elx = data; Real* ely = mrc1.data+(f-mrc1.skip); + + int l1 = f-skip; while (l1--) *elx++ = x; + l1 = l-f; while (l1--) *elx++ = x - *ely++; + lx -= l; while (lx--) *elx++ = x; +} + +void MatrixRowCol::RevSub(const MatrixRowCol& mrc1) +{ + // THIS = mrc - THIS + REPORT + if (!storage) return; + int f = mrc1.skip; int l = f + mrc1.storage; int lx = skip + storage; + if (f < skip) { f = skip; if (l < f) l = f; } + if (l > lx) { l = lx; if (f > lx) f = lx; } + + Real* elx = data; Real* ely = mrc1.data+(f-mrc1.skip); + + int l1 = f-skip; while (l1--) { *elx = - *elx; elx++; } + l1 = l-f; while (l1--) { *elx = *ely++ - *elx; elx++; } + lx -= l; while (lx--) { *elx = - *elx; elx++; } +} + +void MatrixRowCol::ConCat(const MatrixRowCol& mrc1, const MatrixRowCol& mrc2) +{ + // THIS = mrc1 | mrc2 + REPORT + int f1 = mrc1.skip; int l1 = f1 + mrc1.storage; int lx = skip + storage; + if (f1 < skip) { f1 = skip; if (l1 < f1) l1 = f1; } + if (l1 > lx) { l1 = lx; if (f1 > lx) f1 = lx; } + + Real* elx = data; + + int i = f1-skip; while (i--) *elx++ =0.0; + i = l1-f1; + if (i) // in case f1 would take ely out of range + { Real* ely = mrc1.data+(f1-mrc1.skip); while (i--) *elx++ = *ely++; } + + int f2 = mrc2.skip; int l2 = f2 + mrc2.storage; i = mrc1.length; + int skipx = l1 - i; lx -= i; // addresses rel to second seg, maybe -ve + if (f2 < skipx) { f2 = skipx; if (l2 < f2) l2 = f2; } + if (l2 > lx) { l2 = lx; if (f2 > lx) f2 = lx; } + + i = f2-skipx; while (i--) *elx++ = 0.0; + i = l2-f2; + if (i) // in case f2 would take ely out of range + { Real* ely = mrc2.data+(f2-mrc2.skip); while (i--) *elx++ = *ely++; } + lx -= l2; while (lx--) *elx++ = 0.0; +} + +void MatrixRowCol::Multiply(const MatrixRowCol& mrc1) +// element by element multiply into +{ + REPORT + if (!storage) return; + int f = mrc1.skip; int l = f + mrc1.storage; int lx = skip + storage; + if (f < skip) { f = skip; if (l < f) l = f; } + if (l > lx) { l = lx; if (f > lx) f = lx; } + + Real* elx = data; Real* ely = mrc1.data+(f-mrc1.skip); + + int l1 = f-skip; while (l1--) *elx++ = 0; + l1 = l-f; while (l1--) *elx++ *= *ely++; + lx -= l; while (lx--) *elx++ = 0; +} + +void MatrixRowCol::Multiply(const MatrixRowCol& mrc1, const MatrixRowCol& mrc2) +// element by element multiply +{ + int f = skip; int l = skip + storage; + int f1 = mrc1.skip; int l1 = f1 + mrc1.storage; + if (f1l) l1=l; + int f2 = mrc2.skip; int l2 = f2 + mrc2.storage; + if (f2l) l2=l; + Real* el = data + (f-skip); int i; + if (f1l2) l1 = l2; + if (l1<=f1) { REPORT i = l-f; while (i--) *el++ = 0.0; } // disjoint + else + { + REPORT + Real* el1 = mrc1.data+(f1-mrc1.skip); + Real* el2 = mrc2.data+(f1-mrc2.skip); + i = f1-f ; while (i--) *el++ = 0.0; + i = l1-f1; while (i--) *el++ = *el1++ * *el2++; + i = l-l1; while (i--) *el++ = 0.0; + } +} + +void MatrixRowCol::KP(const MatrixRowCol& mrc1, const MatrixRowCol& mrc2) +// row for Kronecker product +{ + int f = skip; int s = storage; Real* el = data; int i; + + i = mrc1.skip * mrc2.length; + if (i > f) + { + i -= f; f = 0; if (i > s) { i = s; s = 0; } else s -= i; + while (i--) *el++ = 0.0; + if (s == 0) return; + } + else f -= i; + + i = mrc1.storage; Real* el1 = mrc1.data; + int mrc2_skip = mrc2.skip; int mrc2_storage = mrc2.storage; + int mrc2_length = mrc2.length; + int mrc2_remain = mrc2_length - mrc2_skip - mrc2_storage; + while (i--) + { + int j; Real* el2 = mrc2.data; Real vel1 = *el1; + if (f == 0 && mrc2_length <= s) + { + j = mrc2_skip; s -= j; while (j--) *el++ = 0.0; + j = mrc2_storage; s -= j; while (j--) *el++ = vel1 * *el2++; + j = mrc2_remain; s -= j; while (j--) *el++ = 0.0; + } + else if (f >= mrc2_length) f -= mrc2_length; + else + { + j = mrc2_skip; + if (j > f) + { + j -= f; f = 0; if (j > s) { j = s; s = 0; } else s -= j; + while (j--) *el++ = 0.0; + } + else f -= j; + + j = mrc2_storage; + if (j > f) + { + j -= f; el2 += f; f = 0; if (j > s) { j = s; s = 0; } else s -= j; + while (j--) *el++ = vel1 * *el2++; + } + else f -= j; + + j = mrc2_remain; + if (j > f) + { + j -= f; f = 0; if (j > s) { j = s; s = 0; } else s -= j; + while (j--) *el++ = 0.0; + } + else f -= j; + } + if (s == 0) return; + ++el1; + } + + i = (mrc1.length - mrc1.skip - mrc1.storage) * mrc2.length; + if (i > f) + { + i -= f; if (i > s) i = s; + while (i--) *el++ = 0.0; + } +} + + +void MatrixRowCol::Copy(const MatrixRowCol& mrc1) +{ + // THIS = mrc1 + REPORT + if (!storage) return; + int f = mrc1.skip; int l = f + mrc1.storage; int lx = skip + storage; + if (f < skip) { f = skip; if (l < f) l = f; } + if (l > lx) { l = lx; if (f > lx) f = lx; } + + Real* elx = data; Real* ely = 0; + + if (l-f) ely = mrc1.data+(f-mrc1.skip); + + int l1 = f-skip; while (l1--) *elx++ = 0.0; + l1 = l-f; while (l1--) *elx++ = *ely++; + lx -= l; while (lx--) *elx++ = 0.0; +} + +void MatrixRowCol::CopyCheck(const MatrixRowCol& mrc1) +// Throw an exception if this would lead to a loss of data +{ + REPORT + if (!storage) return; + int f = mrc1.skip; int l = f + mrc1.storage; int lx = skip + storage; + if (f < skip || l > lx) Throw(ProgramException("Illegal Conversion")); + + Real* elx = data; Real* ely = mrc1.data+(f-mrc1.skip); + + int l1 = f-skip; while (l1--) *elx++ = 0.0; + l1 = l-f; while (l1--) *elx++ = *ely++; + lx -= l; while (lx--) *elx++ = 0.0; +} + +void MatrixRowCol::Check(const MatrixRowCol& mrc1) +// Throw an exception if +=, -=, copy etc would lead to a loss of data +{ + REPORT + int f = mrc1.skip; int l = f + mrc1.storage; int lx = skip + storage; + if (f < skip || l > lx) Throw(ProgramException("Illegal Conversion")); +} + +void MatrixRowCol::Check() +// Throw an exception if +=, -= of constant would lead to a loss of data +// that is: check full row is present +// may not be appropriate for symmetric matrices +{ + REPORT + if (skip!=0 || storage!=length) + Throw(ProgramException("Illegal Conversion")); +} + +void MatrixRowCol::Negate(const MatrixRowCol& mrc1) +{ + // THIS = -mrc1 + REPORT + if (!storage) return; + int f = mrc1.skip; int l = f + mrc1.storage; int lx = skip + storage; + if (f < skip) { f = skip; if (l < f) l = f; } + if (l > lx) { l = lx; if (f > lx) f = lx; } + + Real* elx = data; Real* ely = mrc1.data+(f-mrc1.skip); + + int l1 = f-skip; while (l1--) *elx++ = 0.0; + l1 = l-f; while (l1--) *elx++ = - *ely++; + lx -= l; while (lx--) *elx++ = 0.0; +} + +void MatrixRowCol::Multiply(const MatrixRowCol& mrc1, Real s) +{ + // THIS = mrc1 * s + REPORT + if (!storage) return; + int f = mrc1.skip; int l = f + mrc1.storage; int lx = skip + storage; + if (f < skip) { f = skip; if (l < f) l = f; } + if (l > lx) { l = lx; if (f > lx) f = lx; } + + Real* elx = data; Real* ely = mrc1.data+(f-mrc1.skip); + + int l1 = f-skip; while (l1--) *elx++ = 0.0; + l1 = l-f; while (l1--) *elx++ = *ely++ * s; + lx -= l; while (lx--) *elx++ = 0.0; +} + +void DiagonalMatrix::Solver(MatrixColX& mrc, const MatrixColX& mrc1) +{ + // mrc = mrc / mrc1 (elementwise) + REPORT + int f = mrc1.skip; int f0 = mrc.skip; + int l = f + mrc1.storage; int lx = f0 + mrc.storage; + if (f < f0) { f = f0; if (l < f) l = f; } + if (l > lx) { l = lx; if (f > lx) f = lx; } + + Real* elx = mrc.data; Real* eld = store+f; + + int l1 = f-f0; while (l1--) *elx++ = 0.0; + l1 = l-f; while (l1--) *elx++ /= *eld++; + lx -= l; while (lx--) *elx++ = 0.0; + // Solver makes sure input and output point to same memory +} + +void IdentityMatrix::Solver(MatrixColX& mrc, const MatrixColX& mrc1) +{ + // mrc = mrc / mrc1 (elementwise) + REPORT + int f = mrc1.skip; int f0 = mrc.skip; + int l = f + mrc1.storage; int lx = f0 + mrc.storage; + if (f < f0) { f = f0; if (l < f) l = f; } + if (l > lx) { l = lx; if (f > lx) f = lx; } + + Real* elx = mrc.data; Real eldv = *store; + + int l1 = f-f0; while (l1--) *elx++ = 0.0; + l1 = l-f; while (l1--) *elx++ /= eldv; + lx -= l; while (lx--) *elx++ = 0.0; + // Solver makes sure input and output point to same memory +} + +void MatrixRowCol::Copy(const Real*& r) +{ + // THIS = *r + REPORT + Real* elx = data; const Real* ely = r+skip; r += length; + int l = storage; while (l--) *elx++ = *ely++; +} + +void MatrixRowCol::Copy(Real r) +{ + // THIS = r + REPORT Real* elx = data; int l = storage; while (l--) *elx++ = r; +} + +void MatrixRowCol::Zero() +{ + // THIS = 0 + REPORT Real* elx = data; int l = storage; while (l--) *elx++ = 0; +} + +void MatrixRowCol::Multiply(Real r) +{ + // THIS *= r + REPORT Real* elx = data; int l = storage; while (l--) *elx++ *= r; +} + +void MatrixRowCol::Add(Real r) +{ + // THIS += r + REPORT + Real* elx = data; int l = storage; while (l--) *elx++ += r; +} + +Real MatrixRowCol::SumAbsoluteValue() +{ + REPORT + Real sum = 0.0; Real* elx = data; int l = storage; + while (l--) sum += fabs(*elx++); + return sum; +} + +// max absolute value of r and elements of row/col +// we use <= or >= in all of these so we are sure of getting +// r reset at least once. +Real MatrixRowCol::MaximumAbsoluteValue1(Real r, int& i) +{ + REPORT + Real* elx = data; int l = storage; int li = -1; + while (l--) { Real f = fabs(*elx++); if (r <= f) { r = f; li = l; } } + i = (li >= 0) ? storage - li + skip : 0; + return r; +} + +// min absolute value of r and elements of row/col +Real MatrixRowCol::MinimumAbsoluteValue1(Real r, int& i) +{ + REPORT + Real* elx = data; int l = storage; int li = -1; + while (l--) { Real f = fabs(*elx++); if (r >= f) { r = f; li = l; } } + i = (li >= 0) ? storage - li + skip : 0; + return r; +} + +// max value of r and elements of row/col +Real MatrixRowCol::Maximum1(Real r, int& i) +{ + REPORT + Real* elx = data; int l = storage; int li = -1; + while (l--) { Real f = *elx++; if (r <= f) { r = f; li = l; } } + i = (li >= 0) ? storage - li + skip : 0; + return r; +} + +// min value of r and elements of row/col +Real MatrixRowCol::Minimum1(Real r, int& i) +{ + REPORT + Real* elx = data; int l = storage; int li = -1; + while (l--) { Real f = *elx++; if (r >= f) { r = f; li = l; } } + i = (li >= 0) ? storage - li + skip : 0; + return r; +} + +Real MatrixRowCol::Sum() +{ + REPORT + Real sum = 0.0; Real* elx = data; int l = storage; + while (l--) sum += *elx++; + return sum; +} + +void MatrixRowCol::SubRowCol(MatrixRowCol& mrc, int skip1, int l1) const +{ + mrc.length = l1; int d = skip - skip1; + if (d<0) { mrc.skip = 0; mrc.data = data - d; } + else { mrc.skip = d; mrc.data = data; } + d = skip + storage - skip1; + d = ((l1 < d) ? l1 : d) - mrc.skip; mrc.storage = (d < 0) ? 0 : d; + mrc.cw = 0; +} + +#ifdef use_namespace +} +#endif + diff --git a/.svn/pristine/2e/2e1762223ed226d142512a9173b2f0f09d4ac842.svn-base b/.svn/pristine/2e/2e1762223ed226d142512a9173b2f0f09d4ac842.svn-base new file mode 100644 index 0000000..0a9eb9d --- /dev/null +++ b/.svn/pristine/2e/2e1762223ed226d142512a9173b2f0f09d4ac842.svn-base @@ -0,0 +1,212 @@ +/* + * scan_io_riegl_txt implementation + * + * Copyright (C) Thomas Escher, Kai Lingemann, Andreas Nuechter + * + * Released under the GPL version 3. + * + */ + +/** + * @file + * @brief Implementation of reading 3D scans + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Thomas Escher + */ + +#include "scanio/scan_io_riegl_txt.h" + +#include +using std::cout; +using std::cerr; +using std::endl; +#include + +#ifdef _MSC_VER +#include +#endif + +#include +#include +using namespace boost::filesystem; + +#include "slam6d/globals.icc" + + + +#define DATA_PATH_PREFIX "scan" +#define DATA_PATH_SUFFIX ".txt" +#define POSE_PATH_PREFIX "scan" +#define POSE_PATH_SUFFIX ".dat" + + + +std::list ScanIO_riegl_txt::readDirectory(const char* dir_path, unsigned int start, unsigned int end) +{ + std::list identifiers; + for(unsigned int i = start; i <= end; ++i) { + // identifier is /d/d/d (000-999) + std::string identifier(to_string(i,3)); + // scan consists of data (.3d) and pose (.pose) files + path data(dir_path); + data /= path(std::string(DATA_PATH_PREFIX) + identifier + DATA_PATH_SUFFIX); + path pose(dir_path); + pose /= path(std::string(POSE_PATH_PREFIX) + identifier + POSE_PATH_SUFFIX); + // stop if part of a scan is missing or end by absence is detected + if(!exists(data) || !exists(pose)) + break; + identifiers.push_back(identifier); + } + return identifiers; +} + +void ScanIO_riegl_txt::readPose(const char* dir_path, const char* identifier, double* pose) +{ + unsigned int i; + + path pose_path(dir_path); + pose_path /= path(std::string(POSE_PATH_PREFIX) + identifier + POSE_PATH_SUFFIX); + if(!exists(pose_path)) + throw std::runtime_error(std::string("There is no pose file for [") + identifier + "] in [" + dir_path + "]"); + + // open pose file + ifstream pose_file(pose_path); + + // if the file is open, read contents + if(pose_file.good()) { + double rPos[3], rPosTheta[16]; + double inMatrix[16], tMatrix[16]; + + for (i = 0; i < 16; ++i) + pose_file >> inMatrix[i]; + pose_file.close(); + + // transform input pose + tMatrix[0] = inMatrix[5]; + tMatrix[1] = -inMatrix[9]; + tMatrix[2] = -inMatrix[1]; + tMatrix[3] = -inMatrix[13]; + tMatrix[4] = -inMatrix[6]; + tMatrix[5] = inMatrix[10]; + tMatrix[6] = inMatrix[2]; + tMatrix[7] = inMatrix[14]; + tMatrix[8] = -inMatrix[4]; + tMatrix[9] = inMatrix[8]; + tMatrix[10] = inMatrix[0]; + tMatrix[11] = inMatrix[12]; + tMatrix[12] = -inMatrix[7]; + tMatrix[13] = inMatrix[11]; + tMatrix[14] = inMatrix[3]; + tMatrix[15] = inMatrix[15]; + + Matrix4ToEuler(tMatrix, rPosTheta, rPos); + + pose[0] = 100*rPos[0]; + pose[1] = 100*rPos[1]; + pose[2] = 100*rPos[2]; + pose[3] = rPosTheta[0]; + pose[4] = rPosTheta[1]; + pose[5] = rPosTheta[2]; + } else { + throw std::runtime_error(std::string("Pose file could not be opened for [") + identifier + "] in [" + dir_path + "]"); + } +} + +bool ScanIO_riegl_txt::supports(IODataType type) +{ + return !!(type & (DATA_XYZ | DATA_REFLECTANCE)); +} + +void ScanIO_riegl_txt::readScan(const char* dir_path, const char* identifier, PointFilter& filter, std::vector* xyz, std::vector* rgb, std::vector* reflectance, std::vector* amplitude, std::vector* type, std::vector* deviation) +{ + unsigned int i; + + // error handling + path data_path(dir_path); + data_path /= path(std::string(DATA_PATH_PREFIX) + identifier + DATA_PATH_SUFFIX); + if(!exists(data_path)) + throw std::runtime_error(std::string("There is no scan file for [") + identifier + "] in [" + dir_path + "]"); + + if(xyz != 0 || reflectance != 0) { + // open data file + ifstream data_file(data_path); + data_file.exceptions(ifstream::eofbit|ifstream::failbit|ifstream::badbit); + + // read the point count + unsigned int count; + data_file >> count; + + // reserve enough space for faster reading + xyz->reserve(3*count); + + // read points + // z x y range theta phi reflectance + double point[7]; + double tmp; + while(data_file.good()) { + try { + for(i = 0; i < 7; ++i) data_file >> point[i]; + } catch(std::ios_base::failure& e) { + break; + } + + // the enemy's x/y/z is mapped to slam's z/x/y, shuffle time! + // invert x axis + // convert coordinate to cm + tmp = point[2]; + point[2] = 100.0 * point[0]; + point[0] = -100.0 * point[1]; + point[1] = 100.0 * tmp; + + // apply filter and insert point + if(filter.check(point)) { + if(xyz != 0) { + for(i = 0; i < 3; ++i) xyz->push_back(point[i]); + } + if(reflectance != 0) { + reflectance->push_back(point[6]); + } + } + } + data_file.close(); + } +} + + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_riegl_txt; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/.svn/pristine/2e/2e298ea56a22a7f5d50b6890cbfa967acd0ec7a2.svn-base b/.svn/pristine/2e/2e298ea56a22a7f5d50b6890cbfa967acd0ec7a2.svn-base new file mode 100644 index 0000000..ce0a47e --- /dev/null +++ b/.svn/pristine/2e/2e298ea56a22a7f5d50b6890cbfa967acd0ec7a2.svn-base @@ -0,0 +1,429 @@ +//$$ submat.cpp submatrices + +// Copyright (C) 1991,2,3,4: R B Davies + +#include "include.h" + +#include "newmat.h" +#include "newmatrc.h" + +#ifdef use_namespace +namespace NEWMAT { +#endif + +#ifdef DO_REPORT +#define REPORT { static ExeCounter ExeCount(__LINE__,11); ++ExeCount; } +#else +#define REPORT {} +#endif + + +/****************************** submatrices *********************************/ + +#ifdef TEMPS_DESTROYED_QUICKLY +GetSubMatrix& BaseMatrix::SubMatrix(int first_row, int last_row, int first_col, + int last_col) const +#else +GetSubMatrix BaseMatrix::SubMatrix(int first_row, int last_row, int first_col, + int last_col) const +#endif +{ + REPORT + Tracer tr("SubMatrix"); + int a = first_row - 1; int b = last_row - first_row + 1; + int c = first_col - 1; int d = last_col - first_col + 1; + if (a<0 || b<0 || c<0 || d<0) Throw(SubMatrixDimensionException()); + // allow zero rows or columns +#ifdef TEMPS_DESTROYED_QUICKLY + GetSubMatrix* x = new GetSubMatrix(this, a, b, c, d, false); + MatrixErrorNoSpace(x); + return *x; +#else + return GetSubMatrix(this, a, b, c, d, false); +#endif +} + +#ifdef TEMPS_DESTROYED_QUICKLY +GetSubMatrix& BaseMatrix::SymSubMatrix(int first_row, int last_row) const +#else +GetSubMatrix BaseMatrix::SymSubMatrix(int first_row, int last_row) const +#endif +{ + REPORT + Tracer tr("SubMatrix(symmetric)"); + int a = first_row - 1; int b = last_row - first_row + 1; + if (a<0 || b<0) Throw(SubMatrixDimensionException()); + // allow zero rows or columns +#ifdef TEMPS_DESTROYED_QUICKLY + GetSubMatrix* x = new GetSubMatrix(this, a, b, a, b, true); + MatrixErrorNoSpace(x); + return *x; +#else + return GetSubMatrix( this, a, b, a, b, true); +#endif +} + +#ifdef TEMPS_DESTROYED_QUICKLY +GetSubMatrix& BaseMatrix::Row(int first_row) const +#else +GetSubMatrix BaseMatrix::Row(int first_row) const +#endif +{ + REPORT + Tracer tr("SubMatrix(row)"); + int a = first_row - 1; + if (a<0) Throw(SubMatrixDimensionException()); +#ifdef TEMPS_DESTROYED_QUICKLY + GetSubMatrix* x = new GetSubMatrix(this, a, 1, 0, -1, false); + MatrixErrorNoSpace(x); + return *x; +#else + return GetSubMatrix(this, a, 1, 0, -1, false); +#endif +} + +#ifdef TEMPS_DESTROYED_QUICKLY +GetSubMatrix& BaseMatrix::Rows(int first_row, int last_row) const +#else +GetSubMatrix BaseMatrix::Rows(int first_row, int last_row) const +#endif +{ + REPORT + Tracer tr("SubMatrix(rows)"); + int a = first_row - 1; int b = last_row - first_row + 1; + if (a<0 || b<0) Throw(SubMatrixDimensionException()); + // allow zero rows or columns +#ifdef TEMPS_DESTROYED_QUICKLY + GetSubMatrix* x = new GetSubMatrix(this, a, b, 0, -1, false); + MatrixErrorNoSpace(x); + return *x; +#else + return GetSubMatrix(this, a, b, 0, -1, false); +#endif +} + +#ifdef TEMPS_DESTROYED_QUICKLY +GetSubMatrix& BaseMatrix::Column(int first_col) const +#else +GetSubMatrix BaseMatrix::Column(int first_col) const +#endif +{ + REPORT + Tracer tr("SubMatrix(column)"); + int c = first_col - 1; + if (c<0) Throw(SubMatrixDimensionException()); +#ifdef TEMPS_DESTROYED_QUICKLY + GetSubMatrix* x = new GetSubMatrix(this, 0, -1, c, 1, false); + MatrixErrorNoSpace(x); + return *x; +#else + return GetSubMatrix(this, 0, -1, c, 1, false); +#endif +} + +#ifdef TEMPS_DESTROYED_QUICKLY +GetSubMatrix& BaseMatrix::Columns(int first_col, int last_col) const +#else +GetSubMatrix BaseMatrix::Columns(int first_col, int last_col) const +#endif +{ + REPORT + Tracer tr("SubMatrix(columns)"); + int c = first_col - 1; int d = last_col - first_col + 1; + if (c<0 || d<0) Throw(SubMatrixDimensionException()); + // allow zero rows or columns +#ifdef TEMPS_DESTROYED_QUICKLY + GetSubMatrix* x = new GetSubMatrix(this, 0, -1, c, d, false); + MatrixErrorNoSpace(x); + return *x; +#else + return GetSubMatrix(this, 0, -1, c, d, false); +#endif +} + +void GetSubMatrix::SetUpLHS() +{ + REPORT + Tracer tr("SubMatrix(LHS)"); + const BaseMatrix* bm1 = bm; + GeneralMatrix* gm1 = ((BaseMatrix*&)bm)->Evaluate(); + if ((BaseMatrix*)gm1!=bm1) + Throw(ProgramException("Invalid LHS")); + if (row_number < 0) row_number = gm1->Nrows(); + if (col_number < 0) col_number = gm1->Ncols(); + if (row_skip+row_number > gm1->Nrows() + || col_skip+col_number > gm1->Ncols()) + Throw(SubMatrixDimensionException()); +} + +void GetSubMatrix::operator<<(const BaseMatrix& bmx) +{ + REPORT + Tracer tr("SubMatrix(<<)"); GeneralMatrix* gmx = 0; + Try + { + SetUpLHS(); gmx = ((BaseMatrix&)bmx).Evaluate(); + if (row_number != gmx->Nrows() || col_number != gmx->Ncols()) + Throw(IncompatibleDimensionsException()); + MatrixRow mrx(gmx, LoadOnEntry); + MatrixRow mr(gm, LoadOnEntry+StoreOnExit+DirectPart, row_skip); + // do need LoadOnEntry + MatrixRowCol sub; int i = row_number; + while (i--) + { + mr.SubRowCol(sub, col_skip, col_number); // put values in sub + sub.Copy(mrx); mr.Next(); mrx.Next(); + } + gmx->tDelete(); +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + } + + CatchAll + { + if (gmx) gmx->tDelete(); +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + ReThrow; + } +} + +void GetSubMatrix::operator=(const BaseMatrix& bmx) +{ + REPORT + Tracer tr("SubMatrix(=)"); GeneralMatrix* gmx = 0; + // MatrixConversionCheck mcc; // Check for loss of info + Try + { + SetUpLHS(); gmx = ((BaseMatrix&)bmx).Evaluate(); + if (row_number != gmx->Nrows() || col_number != gmx->Ncols()) + Throw(IncompatibleDimensionsException()); + LoadAndStoreFlag lasf = + ( row_skip == col_skip + && gm->Type().IsSymmetric() + && gmx->Type().IsSymmetric() ) + ? LoadOnEntry+DirectPart + : LoadOnEntry; + MatrixRow mrx(gmx, lasf); + MatrixRow mr(gm, LoadOnEntry+StoreOnExit+DirectPart, row_skip); + // do need LoadOnEntry + MatrixRowCol sub; int i = row_number; + while (i--) + { + mr.SubRowCol(sub, col_skip, col_number); // put values in sub + sub.CopyCheck(mrx); mr.Next(); mrx.Next(); + } + gmx->tDelete(); +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + } + + CatchAll + { + if (gmx) gmx->tDelete(); +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + ReThrow; + } +} + +void GetSubMatrix::operator<<(const Real* r) +{ + REPORT + Tracer tr("SubMatrix(< gm->Nrows() || col_skip+col_number > gm->Ncols()) + Throw(SubMatrixDimensionException()); + MatrixRow mr(gm, LoadOnEntry+StoreOnExit+DirectPart, row_skip); + // do need LoadOnEntry + MatrixRowCol sub; int i = row_number; + while (i--) + { + mr.SubRowCol(sub, col_skip, col_number); // put values in sub + sub.Copy(r); mr.Next(); + } +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif +} + +void GetSubMatrix::operator=(Real r) +{ + REPORT + Tracer tr("SubMatrix(=Real)"); + SetUpLHS(); + MatrixRow mr(gm, LoadOnEntry+StoreOnExit+DirectPart, row_skip); + // do need LoadOnEntry + MatrixRowCol sub; int i = row_number; + while (i--) + { + mr.SubRowCol(sub, col_skip, col_number); // put values in sub + sub.Copy(r); mr.Next(); + } +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif +} + +void GetSubMatrix::Inject(const GeneralMatrix& gmx) +{ + REPORT + Tracer tr("SubMatrix(inject)"); + SetUpLHS(); + if (row_number != gmx.Nrows() || col_number != gmx.Ncols()) + Throw(IncompatibleDimensionsException()); + MatrixRow mrx((GeneralMatrix*)(&gmx), LoadOnEntry); + MatrixRow mr(gm, LoadOnEntry+StoreOnExit+DirectPart, row_skip); + // do need LoadOnEntry + MatrixRowCol sub; int i = row_number; + while (i--) + { + mr.SubRowCol(sub, col_skip, col_number); // put values in sub + sub.Inject(mrx); mr.Next(); mrx.Next(); + } +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif +} + +void GetSubMatrix::operator+=(const BaseMatrix& bmx) +{ + REPORT + Tracer tr("SubMatrix(+=)"); GeneralMatrix* gmx = 0; + // MatrixConversionCheck mcc; // Check for loss of info + Try + { + SetUpLHS(); gmx = ((BaseMatrix&)bmx).Evaluate(); + if (row_number != gmx->Nrows() || col_number != gmx->Ncols()) + Throw(IncompatibleDimensionsException()); + MatrixRow mrx(gmx, LoadOnEntry); + MatrixRow mr(gm, LoadOnEntry+StoreOnExit+DirectPart, row_skip); + // do need LoadOnEntry + MatrixRowCol sub; int i = row_number; + while (i--) + { + mr.SubRowCol(sub, col_skip, col_number); // put values in sub + sub.Check(mrx); // check for loss of info + sub.Add(mrx); mr.Next(); mrx.Next(); + } + gmx->tDelete(); +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + } + + CatchAll + { + if (gmx) gmx->tDelete(); +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + ReThrow; + } +} + +void GetSubMatrix::operator-=(const BaseMatrix& bmx) +{ + REPORT + Tracer tr("SubMatrix(-=)"); GeneralMatrix* gmx = 0; + // MatrixConversionCheck mcc; // Check for loss of info + Try + { + SetUpLHS(); gmx = ((BaseMatrix&)bmx).Evaluate(); + if (row_number != gmx->Nrows() || col_number != gmx->Ncols()) + Throw(IncompatibleDimensionsException()); + MatrixRow mrx(gmx, LoadOnEntry); + MatrixRow mr(gm, LoadOnEntry+StoreOnExit+DirectPart, row_skip); + // do need LoadOnEntry + MatrixRowCol sub; int i = row_number; + while (i--) + { + mr.SubRowCol(sub, col_skip, col_number); // put values in sub + sub.Check(mrx); // check for loss of info + sub.Sub(mrx); mr.Next(); mrx.Next(); + } + gmx->tDelete(); +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + } + + CatchAll + { + if (gmx) gmx->tDelete(); +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + ReThrow; + } +} + +void GetSubMatrix::operator+=(Real r) +{ + REPORT + Tracer tr("SubMatrix(+= or -= Real)"); + // MatrixConversionCheck mcc; // Check for loss of info + Try + { + SetUpLHS(); + MatrixRow mr(gm, LoadOnEntry+StoreOnExit+DirectPart, row_skip); + // do need LoadOnEntry + MatrixRowCol sub; int i = row_number; + while (i--) + { + mr.SubRowCol(sub, col_skip, col_number); // put values in sub + sub.Check(); // check for loss of info + sub.Add(r); mr.Next(); + } +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + } + + CatchAll + { +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + ReThrow; + } +} + +void GetSubMatrix::operator*=(Real r) +{ + REPORT + Tracer tr("SubMatrix(*= or /= Real)"); + // MatrixConversionCheck mcc; // Check for loss of info + Try + { + SetUpLHS(); + MatrixRow mr(gm, LoadOnEntry+StoreOnExit+DirectPart, row_skip); + // do need LoadOnEntry + MatrixRowCol sub; int i = row_number; + while (i--) + { + mr.SubRowCol(sub, col_skip, col_number); // put values in sub + sub.Multiply(r); mr.Next(); + } +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + } + + CatchAll + { +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + ReThrow; + } +} + +#ifdef use_namespace +} +#endif + diff --git a/.svn/pristine/2e/2eb7977a88095446a24256d56fb33b7cc15cd9dd.svn-base b/.svn/pristine/2e/2eb7977a88095446a24256d56fb33b7cc15cd9dd.svn-base new file mode 100644 index 0000000..0b28435 --- /dev/null +++ b/.svn/pristine/2e/2eb7977a88095446a24256d56fb33b7cc15cd9dd.svn-base @@ -0,0 +1,82 @@ +/** + * @file + * @brief calculate rectangle bounding box and minimal unregular bounding box for cluster + the rectangle bounding box can be inclined therefore it can better represent cluster + and vehicle direction,the result is stored as a clusterfeature in clusterFeatureArray + * + * @author Quanwen Zhu, Wuhan University, China + */ +#include +#include "veloslam/gridcluster.h" + + +using namespace std; + + struct PointID +{ + int cellIndex; + int pointIndexInCell; +}; + + struct BesiegePoint +{ + double x; + double y; + double angle; + PointID pointID; +}; + + struct OrientedBoundingBox +{ + + double angle; + double length; + double width; + double circumference; + double area; + double newMaxXPointX; + double newMaxXPointY; + + double newMaxYPointX; + double newMaxYPointY; + + double newMinXPointX; + double newMinXPointY; + + double newMinYPointX; + double newMinYPointY; + PointID boundingPointID[4]; +}; + + +class BoundingBox +{ +public: + BoundingBox(void); + ~BoundingBox(void); + void Initial(void); + double CalDirectionTwoPoints(double XPos1,double YPos1,double XPos2,double YPos2); + + void CalCoordsAftRotation(double x,double y,double *newX,double *newY,double theta); + + void CalAllBoundingBox( cluster &gluClusterData); + + void CalBestRectangleBox(cluster &gluClusterData,clusterFeature &glu); + + void CalMinBoundingBox(cluster &gluClusterData,clusterFeature &glu); + +private : + bool calCandidateBox; + + + /** + * all rectangle bounding box candidates + */ + vector allCandBox; + + /** + * unregular minBounding box points + */ + vector minBoundingBox; + +}; diff --git a/.svn/pristine/2e/2ed449ccbf7fa33992f53488365eebb1fb24647d.svn-base b/.svn/pristine/2e/2ed449ccbf7fa33992f53488365eebb1fb24647d.svn-base new file mode 100644 index 0000000..2a6144b --- /dev/null +++ b/.svn/pristine/2e/2ed449ccbf7fa33992f53488365eebb1fb24647d.svn-base @@ -0,0 +1,27 @@ +/** + * @file + * @brief IO of a 3D scan in uos file format + * @author Thomas Escher + */ + +#ifndef __SCAN_IO_UOS_RGB_H__ +#define __SCAN_IO_UOS_RGB_H__ + +#include "scan_io.h" + + + +/** + * @brief 3D scan loader for UOS scans with color information + * + * The compiled class is available as shared object file + */ +class ScanIO_uos_rgb : public ScanIO { +public: + virtual std::list readDirectory(const char* dir_path, unsigned int start, unsigned int end); + virtual void readPose(const char* dir_path, const char* identifier, double* pose); + virtual void readScan(const char* dir_path, const char* identifier, PointFilter&& filter, std::vector* xyz, std::vector* rgb, std::vector* reflectance, std::vector* amplitude, std::vector* type, std::vector* deviation); + virtual bool supports(IODataType type); +}; + +#endif diff --git a/.svn/pristine/2f/2f11445c97e03f9b9f59443c5d19c10a70520e19.svn-base b/.svn/pristine/2f/2f11445c97e03f9b9f59443c5d19c10a70520e19.svn-base new file mode 100644 index 0000000..c2f01c3 --- /dev/null +++ b/.svn/pristine/2f/2f11445c97e03f9b9f59443c5d19c10a70520e19.svn-base @@ -0,0 +1,118 @@ +//---------------------------------------------------------------------- +// File: pr_queue_k.h +// Programmer: Sunil Arya and David Mount +// Description: Include file for priority queue with k items. +// Last modified: 01/04/05 (Version 1.0) +//---------------------------------------------------------------------- +// Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +// David Mount. All Rights Reserved. +// +// This software and related documentation is part of the Approximate +// Nearest Neighbor Library (ANN). This software is provided under +// the provisions of the Lesser GNU Public License (LGPL). See the +// file ../ReadMe.txt for further information. +// +// The University of Maryland (U.M.) and the authors make no +// representations about the suitability or fitness of this software for +// any purpose. It is provided "as is" without express or implied +// warranty. +//---------------------------------------------------------------------- +// History: +// Revision 0.1 03/04/98 +// Initial release +//---------------------------------------------------------------------- + +#ifndef PR_QUEUE_K_H +#define PR_QUEUE_K_H + +#include // all ANN includes +#include // performance evaluation + +//---------------------------------------------------------------------- +// Basic types +//---------------------------------------------------------------------- +typedef ANNdist PQKkey; // key field is distance +typedef int PQKinfo; // info field is int + +//---------------------------------------------------------------------- +// Constants +// The NULL key value is used to initialize the priority queue, and +// so it should be larger than any valid distance, so that it will +// be replaced as legal distance values are inserted. The NULL +// info value must be a nonvalid array index, we use ANN_NULL_IDX, +// which is guaranteed to be negative. +//---------------------------------------------------------------------- + +const PQKkey PQ_NULL_KEY = ANN_DIST_INF; // nonexistent key value +const PQKinfo PQ_NULL_INFO = ANN_NULL_IDX; // nonexistent info value + +//---------------------------------------------------------------------- +// ANNmin_k +// An ANNmin_k structure is one which maintains the smallest +// k values (of type PQKkey) and associated information (of type +// PQKinfo). The special info and key values PQ_NULL_INFO and +// PQ_NULL_KEY means that thise entry is empty. +// +// It is currently implemented using an array with k items. +// Items are stored in increasing sorted order, and insertions +// are made through standard insertion sort. (This is quite +// inefficient, but current applications call for small values +// of k and relatively few insertions.) +// +// Note that the list contains k+1 entries, but the last entry +// is used as a simple placeholder and is otherwise ignored. +//---------------------------------------------------------------------- + +class ANNmin_k { + struct mk_node { // node in min_k structure + PQKkey key; // key value + PQKinfo info; // info field (user defined) + }; + + int k; // max number of keys to store + int n; // number of keys currently active + mk_node *mk; // the list itself + +public: + ANNmin_k(int max) // constructor (given max size) + { + n = 0; // initially no items + k = max; // maximum number of items + mk = new mk_node[max+1]; // sorted array of keys + } + + ~ANNmin_k() // destructor + { delete [] mk; } + + PQKkey ANNmin_key() // return minimum key + { return (n > 0 ? mk[0].key : PQ_NULL_KEY); } + + PQKkey max_key() // return maximum key + { return (n == k ? mk[k-1].key : PQ_NULL_KEY); } + + PQKkey ith_smallest_key(int i) // ith smallest key (i in [0..n-1]) + { return (i < n ? mk[i].key : PQ_NULL_KEY); } + + PQKinfo ith_smallest_info(int i) // info for ith smallest (i in [0..n-1]) + { return (i < n ? mk[i].info : PQ_NULL_INFO); } + + inline void insert( // insert item (inlined for speed) + PQKkey kv, // key value + PQKinfo inf) // item info + { + register int i; + // slide larger values up + for (i = n; i > 0; i--) { + if (mk[i-1].key > kv) + mk[i] = mk[i-1]; + else + break; + } + mk[i].key = kv; // store element here + mk[i].info = inf; + if (n < k) n++; // increment number of items + ANN_FLOP(k-i+1) // increment floating ops + } +}; + +#endif diff --git a/.svn/pristine/2f/2f5d81bc7c1cfb683fa1da40d7b005be63cd8b78.svn-base b/.svn/pristine/2f/2f5d81bc7c1cfb683fa1da40d7b005be63cd8b78.svn-base new file mode 100644 index 0000000..67a2146 --- /dev/null +++ b/.svn/pristine/2f/2f5d81bc7c1cfb683fa1da40d7b005be63cd8b78.svn-base @@ -0,0 +1,42 @@ + + +int glui_img_listbox_up_dis[] = { 11, 17, /* width, height */ + 127,127,127, 127,127,127, 127,127,127, 127,127,127, 127,127,127, + 127,127,127, 127,127,127, 127,127,127, 127,127,127, 127,127,127, + 127,127,127, 191,191,191, 127,127,127, 127,127,127, 127,127,127, + 127,127,127, 127,127,127, 127,127,127, 127,127,127, 127,127,127, + 127,127,127, 127,127,127, 191,191,191, 255,255,255, 191,191,191, + 191,191,191, 191,191,191, 191,191,191, 191,191,191, 191,191,191, + 191,191,191, 127,127,127, 127,127,127, 191,191,191, 255,255,255, + 191,191,191, 191,191,191, 191,191,191, 191,191,191, 191,191,191, + 191,191,191, 191,191,191, 127,127,127, 127,127,127, 191,191,191, + 255,255,255, 191,191,191, 191,191,191, 191,191,191, 191,191,191, + 191,191,191, 191,191,191, 191,191,191, 127,127,127, 127,127,127, + 191,191,191, 255,255,255, 191,191,191, 191,191,191, 191,191,191, + 191,191,191, 191,191,191, 191,191,191, 191,191,191, 127,127,127, + 127,127,127, 191,191,191, 255,255,255, 191,191,191, 191,191,191, + 191,191,191, 191,191,191, 191,191,191, 191,191,191, 191,191,191, + 127,127,127, 127,127,127, 191,191,191, 255,255,255, 191,191,191, + 191,191,191, 191,191,191, 254,254,254, 191,191,191, 191,191,191, + 191,191,191, 127,127,127, 127,127,127, 191,191,191, 255,255,255, + 191,191,191, 191,191,191, 127,127,127, 127,127,127, 254,254,254, + 191,191,191, 191,191,191, 127,127,127, 127,127,127, 191,191,191, + 255,255,255, 191,191,191, 127,127,127, 127,127,127, 127,127,127, + 127,127,127, 254,254,254, 191,191,191, 127,127,127, 127,127,127, + 191,191,191, 255,255,255, 191,191,191, 191,191,191, 191,191,191, + 191,191,191, 191,191,191, 191,191,191, 191,191,191, 127,127,127, + 127,127,127, 191,191,191, 255,255,255, 191,191,191, 191,191,191, + 191,191,191, 191,191,191, 191,191,191, 191,191,191, 191,191,191, + 127,127,127, 127,127,127, 191,191,191, 255,255,255, 191,191,191, + 191,191,191, 191,191,191, 191,191,191, 191,191,191, 191,191,191, + 191,191,191, 127,127,127, 127,127,127, 191,191,191, 255,255,255, + 191,191,191, 191,191,191, 191,191,191, 191,191,191, 191,191,191, + 191,191,191, 191,191,191, 127,127,127, 127,127,127, 191,191,191, + 255,255,255, 191,191,191, 191,191,191, 191,191,191, 191,191,191, + 191,191,191, 191,191,191, 191,191,191, 127,127,127, 127,127,127, + 191,191,191, 255,255,255, 255,255,255, 255,255,255, 255,255,255, + 255,255,255, 255,255,255, 255,255,252, 255,255,255, 127,127,127, + 127,127,127, 191,191,191, 191,191,191, 191,191,191, 191,191,191, + 191,191,191, 191,191,191, 191,191,191, 191,191,191, 191,191,191, + 191,191,191, 127,127,127, +}; diff --git a/.svn/pristine/2f/2f77d6e0485a1decf3938796c70543a7dc43d101.svn-base b/.svn/pristine/2f/2f77d6e0485a1decf3938796c70543a7dc43d101.svn-base new file mode 100644 index 0000000..c3ec621 --- /dev/null +++ b/.svn/pristine/2f/2f77d6e0485a1decf3938796c70543a7dc43d101.svn-base @@ -0,0 +1,116 @@ +#ifndef QUADTREE_H +#define QUADTREE_H + +#include +#include +using std::cout; +using std::cerr; +using std::endl; +using std::ios; +using std::ofstream; +#include +using std::vector; +#include +using std::set; + +#include "slam6d/globals.icc" // globals constant definitions +//#include "defs.h" +//#include "plane.h" + +const int MIN_PTS_IN_BUCKET = -1; + + +/* +++++++++-------------++++++++++++ + * CLASS NAME + * QuadTree + * DESCRIPTION + * A quadtree is used to convert an + * unbounded 3D plane to a 3D surface, + * such that it can be drawn to the + * screen. + * The code is similar to the octree + * class. + * PARAMETERS + * -- + * +++++++++-------------++++++++++++ */ + +class QuadTree { + public: + + //QuadTree(double **pts, int n, double, Plane *); + QuadTree(double **pts, int n, double, double min_angle); + ~QuadTree(); + + vector >& getClusters(); + +// int outputQuad(char *); +// void getQuadTreePoints(vector &quad_x, vector &quad_y, vector &quad_z); +// void getQuadTreeColor(double &colorR, double &colorG, double &colorB); + + private: + + QuadTree(vector &splitPoints, double center[2], + double x_size, double y_size,set &n, + set &e, set &s, set &w); + + int countPoints(double **pts, int n, double center[2], + double x_size, double y_size); + + int countPointsAndQueue(const vector &i_points, + vector &points, + double center[2], + double x_size, double y_size, + set &n, + set &e, + set &s, + set &w); + + int countPointsAndQueue(double **pts, int , + vector &points, + double center[2], + double x_size, double y_size, + set &no, + set &e, + set &s, + set &w); + + // int _OutputQuad(ofstream& quadout); + vector > clusters; + set north; + set south; + set east; + set west; + + QuadTree *child[4]; + + vector points; + double center[2]; + double x_size, y_size; + double size2; + + int leaf; + + static int anz; + static double qSize; + static double dist; + + static bool close(double *p, set &cluster); + static bool close(double *p1, double *p2); + static int where(double *p1, vector >& clusters); + static vector >& clusterCells(vector > &clusters1, + set border1, + vector > &clusters2, + set border2, vector >&cl); +// static Plane *basePlane; +}; + +#endif + + + + + + + + + diff --git a/.svn/pristine/2f/2fefa5fbd180b972cfb8cdb93148ce50763f582b.svn-base b/.svn/pristine/2f/2fefa5fbd180b972cfb8cdb93148ce50763f582b.svn-base new file mode 100644 index 0000000..5e76972 --- /dev/null +++ b/.svn/pristine/2f/2fefa5fbd180b972cfb8cdb93148ce50763f582b.svn-base @@ -0,0 +1,33 @@ +/** @file + * @brief Definition of the ICP error function minimization + * @author Andreas Nuechter. Jacobs University Bremen gGmbH, Germany + * @author ???, Jacobs University Bremen gGmbH, Germany + */ + +#ifndef __ICP6DDUALQUAT_H__ +#define __ICP6DDUALQUAT_H__ + +#include "icp6Dminimizer.h" + +/** + * @brief Implementation of the ICP error function minimization via singular value decomposition + */ +class icp6D_DUAL : public icp6Dminimizer +{ +public: + /** + * Constructor + */ + icp6D_DUAL(bool quiet = false) : icp6Dminimizer(quiet) {}; + /** + * Destructor + */ + virtual ~icp6D_DUAL() {}; + + double Point_Point_Align(const vector& Pairs, double *alignxf, + const double centroid_m[3], const double centroid_d[3]); + + inline int getAlgorithmID() { return 4; }; +}; + +#endif diff --git a/.svn/pristine/30/306410b8f38b27f016a128d70b0f94461c6ad30a.svn-base b/.svn/pristine/30/306410b8f38b27f016a128d70b0f94461c6ad30a.svn-base new file mode 100644 index 0000000..9e05b03 --- /dev/null +++ b/.svn/pristine/30/306410b8f38b27f016a128d70b0f94461c6ad30a.svn-base @@ -0,0 +1,192 @@ +/** + * @file + * @brief Clientside command structure for client-server interaction. + * + * @author Thomas Escher + */ + +#ifndef SCANSERVER_CLIENTINTERFACE_H +#define SCANSERVER_CLIENTINTERFACE_H + +// segment manager, allocators, containers, pointers, mutexes ... +#include +#include +#include +#include +#include +#include +#include + +// hide the boost namespace and shorten others +namespace +{ + namespace ip = boost::interprocess; + // the segment manager providing the allocations + typedef ip::managed_shared_memory::segment_manager SegmentManager; +} + +// allocator and type for a shared string +typedef ip::allocator CharAllocator; +typedef ip::basic_string, CharAllocator> SharedString; + +#include "scanserver/sharedScan.h" +#include "scanserver/cache/cacheObject.h" + + + +//! TEST: Pod message type +enum message_t { + MESSAGE_NONE = 0, + MESSAGE_STOP, + MESSAGE_READ_DIRECTORY, + MESSAGE_LOAD_CACHE_OBJECT, + MESSAGE_ALLOCATE_CACHE_OBJECT, + MESSAGE_INVALIDATE_CACHE_OBJECT, + MESSAGE_GET_POSE, + MESSAGE_ADD_FRAME, + MESSAGE_LOAD_FRAMES_FILE, + MESSAGE_SAVE_FRAMES_FILE, + MESSAGE_CLEAR_FRAMES, + MESSAGE_GET_CACHE_SIZE, + MESSAGE_PRINT_METRICS +}; + + + +/** + * @brief Clientside communication for the scanserver management. + * + * This is the main class visible in clients, relaying all calls to the server via shared memory. Access can be obtained via create and subsequent calls to getInstance. + * All calls to the server are put into a message type and its arguments written to interprocess containers for transfer to the server. + * The ServerInterface derives this class to share the mutexes and arguments and hides the server functionality from the client. This also splits up compilation between the client and server parts. + */ +class ClientInterface { +protected: + //! The segment manager used for creating new objects with construct<> + ip::offset_ptr segment_manager; + + //! Void allocator to use for ip-STL-containers + ip::allocator allocator; + + //! Mutex for concurrent access to the client interface, protecting the server communication and argument manipulation + ip::interprocess_mutex m_mutex_client; + + //! Mutex for client-server communication, handling the process switch and work on the server + ip::interprocess_mutex m_mutex_server; + + //! Condition the server waits on and the client notifies to + ip::interprocess_condition m_condition_server; + + //! Condition the clients will wait on while the server processes + ip::interprocess_condition m_condition_client; + + //! TEST: Pod message type + message_t m_message; + + //! String arguments for message passing + SharedString m_arg_string_1, m_arg_string_2; + + //! Integer arguments for message passing + unsigned int m_arg_uint_1, m_arg_uint_2; + + //! size_t argument for >4GB sizes + std::size_t m_arg_size_t; + + //! Float arguments for message passing + float m_arg_float_1, m_arg_float_2; + + //! IO type argument for message passing + IOType m_arg_io_type; + + //! An error message containing detais + SharedString m_error_message; + + //! Pointer for a scanvector + ip::offset_ptr m_scanvector_ptr; + + //! Pointer for a scan + ip::offset_ptr m_sharedscan_ptr; + + //! Pointer for a cache object + ip::offset_ptr m_cacheobject_ptr; + +// TODO: remove this later on, this is for close for the testclient +public: +// private: + //! internal message sending + void sendMessage(message_t message); + +public: + //! Add and read a directory into the scan vector, ownership: client + SharedScanVector* readDirectory(const char* dir_path, IOType type = UOS, unsigned int start = 0, unsigned int end = -1); + + //! "Close" a directory by releasing all contained scans, deleting the vector and resetting the pointer + void closeDirectory(SharedScanVector*& scans); + + //! Called from SharedScan on a cache miss, this requests the serverside cache handler to load, returns false if no cached file was found + bool loadCacheObject(CacheObject* obj); + + //! Called from SharedScan, request enough memory to hold reduced points + void allocateCacheObject(CacheObject* obj, unsigned int size); + + //! Called from SharedScan, let the CacheManager invalide a CacheObject + void invalidateCacheObject(CacheObject* obj); + + //! Called from SharedScan, requests the pose + void getPose(SharedScan* scan); + + //! Called from SharedScan, requests a frame and writes into it + void addFrame(SharedScan* scan, double* transformation, unsigned int type); + + //! Called from SharedScan, requests loading frames saved in the file + void loadFramesFile(SharedScan* scan); + + //! Called from SharedScan, requests saving frames into a file + void saveFramesFile(SharedScan* scan); + + //! Called from SharedScan, this removes all previous contained frames + void clearFrames(SharedScan* scan); + + //! Returns the CacheObject shared memory size for allocation and planning purposes + std::size_t getCacheSize(); + + //! Let the server print out its metric + void printMetrics(); + +protected: + //! Trivial constructor: initialize all shared memory containers, only allowed to be called by the ServerInterface + ClientInterface(SegmentManager* sm) : + segment_manager(sm), + allocator(sm), + m_message(MESSAGE_NONE), + m_arg_string_1(allocator), + m_arg_string_2(allocator), + m_error_message(allocator) + { + } + + // only the instance in the server will deconstruct + virtual ~ClientInterface() + { + } + +protected: + //! The one shared memory opened in the application, a single one in each of the clients and in the server + static ip::managed_shared_memory* m_msm; + +private: + //! Client singleton for easy global access in the whole application + static ClientInterface* m_singleton; + +public: + //! Opens the shared memory and sets the singleton in a client process + static ClientInterface* create(); + + //! Closes the shared memory + static void destroy(); + + //! Returns the singleton instance + static ClientInterface* getInstance(); +}; + +#endif //SCANSERVER_CLIENTINTERFACE_H diff --git a/.svn/pristine/30/30b8aef4df214b525f18571ecabd4bb5164c30d5.svn-base b/.svn/pristine/30/30b8aef4df214b525f18571ecabd4bb5164c30d5.svn-base new file mode 100644 index 0000000..6452083 --- /dev/null +++ b/.svn/pristine/30/30b8aef4df214b525f18571ecabd4bb5164c30d5.svn-base @@ -0,0 +1,36 @@ +/* include/config.h.in. Generated automatically from configure.in by autoheader. */ + +/* Define to empty if the keyword does not work. */ +#undef const + +/* Define if the setvbuf function takes the buffering type as its second + argument and the buffer pointer as the third, as on System V + before release 3. */ +#undef SETVBUF_REVERSED + +/* Define if you have the ANSI C header files. */ +#undef STDC_HEADERS + +/* Define if you have the gettimeofday function. */ +#undef HAVE_GETTIMEOFDAY + +/* Define if you have the popen function. */ +#undef HAVE_POPEN + +/* Define if you have the wcschr function. */ +#undef HAVE_WCSCHR + +/* Define if you have the wcsdup function. */ +#undef HAVE_WCSDUP + +/* Define if you have the header file. */ +#undef HAVE_PAM_H + +/* Define if you have the header file. */ +#undef HAVE_PNM_H + +/* Define if you have the header file. */ +#undef HAVE_UNISTD_H + +/* Define if you have the header file. */ +#undef HAVE_WCHAR_H diff --git a/.svn/pristine/31/314227037c96d4129f0ae3b99b3054194de85e17.svn-base b/.svn/pristine/31/314227037c96d4129f0ae3b99b3054194de85e17.svn-base new file mode 100644 index 0000000..7060ccf --- /dev/null +++ b/.svn/pristine/31/314227037c96d4129f0ae3b99b3054194de85e17.svn-base @@ -0,0 +1,22 @@ +/** + * @file ELCH implementation using SLERP + * @author Jochen Sprickerhof. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __ELCH6D_SLERP_H__ +#define __ELCH6D_SLERP_H__ + +#include "elch6D.h" + +class elch6Dslerp : public elch6D { + + public: + elch6Dslerp(bool _quiet, icp6Dminimizer *my_icp6Dminimizer, double mdm, int max_num_iterations, + int rnd, bool eP, int anim, double epsilonICP, int nns_method) + : elch6D(_quiet, my_icp6Dminimizer, mdm, max_num_iterations, rnd, eP, anim, epsilonICP, nns_method) {} + + virtual void close_loop(const vector &allScans, int first, int last, graph_t &g); + +}; + +#endif diff --git a/.svn/pristine/32/32250353bae1cc0945b11ff22f9065c0f50af294.svn-base b/.svn/pristine/32/32250353bae1cc0945b11ff22f9065c0f50af294.svn-base new file mode 100644 index 0000000..0f84079 --- /dev/null +++ b/.svn/pristine/32/32250353bae1cc0945b11ff22f9065c0f50af294.svn-base @@ -0,0 +1,287 @@ +/* + * scan_io_rxp implementation + * + * Copyright (C) Thomas Escher, Kai Lingemann, Andreas Nuechter + * + * Released under the GPL version 3. + * + */ + +/** + * @file + * @brief Implementation of reading 3D scans + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Thomas Escher + */ + +#include "scanio/scan_io_rxp.h" +#include "riegl/scanlib.hpp" + +#include +using std::cout; +using std::cerr; +using std::endl; +#include + +#ifdef _MSC_VER +#include +#endif + +#include +#include +using namespace boost::filesystem; + +#include "slam6d/globals.icc" + +using namespace scanlib; +using namespace std; +using namespace std::tr1; + + + +#define DATA_PATH_PREFIX "scan" +#define DATA_PATH_SUFFIX ".rxp" +#define POSE_PATH_PREFIX "scan" +#define POSE_PATH_SUFFIX ".pose" + +/* +TODO: this file is still work in progress for change to the new scanserver workflow +this ScanIO has to distinguish a multi scan file and a directory of single scan files and is currently very messy handling these with the importer class +*/ + + + +std::list ScanIO_rxp::readDirectory(const char* dir_path, unsigned int start, unsigned int end) +{ + std::list identifiers; + + path pose(dir_path); + if(is_regular_file(pose)) { + // TODO: create identifiers for this case + // a) from start to end, requires sanity checks and goodwill of user + // b) iterate through the file and get last index + // c) check last index by other means through the riegl api? + // TEMP: implementing a) without sanity checks :) + for(unsigned int i = start; i < end; ++i) { + identifiers.push_back(to_string(i,3)); + } + } else { + for(unsigned int i = start; i <= end; ++i) { + // identifier is /d/d/d (000-999) + std::string identifier(to_string(i,3)); + // scan consists of data (.3d) and pose (.pose) files + path data(dir_path); + data /= path(std::string(DATA_PATH_PREFIX) + identifier + DATA_PATH_SUFFIX); + path pose(dir_path); + pose /= path(std::string(POSE_PATH_PREFIX) + identifier + POSE_PATH_SUFFIX); + // stop if part of a scan is missing or end by absence is detected + if(!exists(data) || !exists(pose)) + break; + identifiers.push_back(identifier); + } + } + return identifiers; +} + +void ScanIO_rxp::readPose(const char* dir_path, const char* identifier, double* pose) +{ + unsigned int i; + + path pose_path(dir_path); + + // if the directory actually marks a (multi scan) file, return zero pose + // TODO: test if pose_path gets constructed correctly, see removal of trailing / in the old code + if(is_regular_file(pose_path.string())) { + for(i = 0; i < 6; ++i) pose[i] = 0.0; + return; + } + + pose_path /= path(std::string(POSE_PATH_PREFIX) + identifier + POSE_PATH_SUFFIX); + if(!exists(pose_path)) + throw std::runtime_error(std::string("There is no pose file for [") + identifier + "] in [" + dir_path + "]"); + + // open pose file + boost::filesystem::ifstream pose_file(pose_path); + + // if the file is open, read contents + if(pose_file.good()) { + // read 6 plain doubles + for(i = 0; i < 6; ++i) pose_file >> pose[i]; + pose_file.close(); + + // convert angles from deg to rad + for(i = 3; i < 6; ++i) pose[i] = rad(pose[i]); + } else { + throw std::runtime_error(std::string("Pose file could not be opened for [") + identifier + "] in [" + dir_path + "]"); + } +} + +bool ScanIO_rxp::supports(IODataType type) +{ + return !!(type & (DATA_XYZ | DATA_REFLECTANCE | DATA_AMPLITUDE | DATA_DEVIATION | DATA_TYPE)); +} + +void ScanIO_rxp::readScan(const char* dir_path, const char* identifier, PointFilter& filter, std::vector* xyz, std::vector* rgb, std::vector* reflectance, std::vector* amplitude, std::vector* type, std::vector* deviation) +{ + + path data_path(dir_path); + + // distinguish file and directory + if(is_regular_file(data_path)) { + stringstream str(identifier); + int scan_index; + str >> scan_index; + // first clean up if they "directory" has changed + // second case of resetting: rewinding index in case of non-sequential index access + if(old_path != dir_path || (imp != 0 && imp->getCurrentScan() > scan_index)) { + // TODO: I'm assuming here that I can simply do this + if(rc != 0) { rc->close(); } + if(dec != 0) { delete dec; dec = 0; } + if(imp != 0) { delete imp; imp = 0; } + // TODO ^ + } + // create directory-persistent decoder + if (!dec) { + // remember path + old_path = dir_path; + + // create new connection + rc = basic_rconnection::create(data_path.string()); + rc->open(); + + // decoder splits the binary file into readable chunks + dec = new decoder_rxpmarker(rc); + // importer interprets the chunks + // TODO: this won't really work because filter is gone and xyz too and everything breaks + // probably set new filter and xyz in the importer + imp = new importer(filter, scan_index, xyz, reflectance, amplitude, type, deviation); + } + + // set new filter and vectors + imp->set(filter, xyz, reflectance, amplitude, type, deviation); + + buffer buf; + + // skip the first scans + if(imp->getCurrentScan() < scan_index) { + for(dec->get(buf); !dec->eoi(); dec->get(buf)) { + imp->dispatch(buf.begin(), buf.end()); + if(imp->getCurrentScan() >= scan_index) break; + } + } + if(dec->eoi()) return; + int cscan = imp->getCurrentScan(); + // iterate over chunks, until the next scan is reached + for(dec->get(buf); !dec->eoi(); dec->get(buf)) { + imp->dispatch(buf.begin(), buf.end()); + if(imp->getCurrentScan() != cscan) break; + } + + return; + } + + // error handling + data_path /= path(std::string(DATA_PATH_PREFIX) + identifier + DATA_PATH_SUFFIX); + if(!exists(data_path)) + throw std::runtime_error(std::string("There is no scan file for [") + identifier + "] in [" + dir_path + "]"); + + if(xyz != 0) { + string data_path_str; + data_path_str = "file://" + data_path.string(); + rc = basic_rconnection::create(data_path_str); + rc->open(); + + // decoder splits the binary file into readable chunks + dec = new decoder_rxpmarker(rc); + // importer interprets the chunks + imp = new importer(filter, 0, xyz, reflectance, amplitude, type, deviation); + + // iterate over chunks + buffer buf; + for(dec->get(buf); !dec->eoi(); dec->get(buf)) { + imp->dispatch(buf.begin(), buf.end()); + } + + //done + rc->close(); + // TODO: clean up all these pointers, aren't they dangling? + } +} + +void importer::on_echo_transformed(echo_type echo) +{ + // for multi scan files, ignore those before start + if (currentscan < start) return; + + // targets is a member std::vector that contains all + // echoes seen so far, i.e. the current echo is always + // indexed by target_count-1. + target& t(targets[target_count - 1]); + + double point[3]; + point[0] = t.vertex[1]*-100.0; + point[1] = t.vertex[2]*100.0; + point[2] = t.vertex[0]*100.0; + + if(filter->check(point)) { + if(xyz) { + for(unsigned int i = 0; i < 3; ++i) xyz->push_back(point[i]); + } + if(reflectance) reflectance->push_back(t.reflectance); + if(amplitude) amplitude->push_back(t.amplitude); + if(deviation) deviation->push_back(t.deviation); + if(type) { + if(pointcloud::first == echo) type->push_back(0); + else if(pointcloud::interior == echo) type->push_back(1); + else if(pointcloud::last == echo) type->push_back(10); + else if(pointcloud::single == echo) type->push_back(9); + } + } + + /* + // target.reflectance + // target.amplitude + // target.deviation + // target.time + // target.vertex point coordinates + */ +} + + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_rxp; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/.svn/pristine/32/325e477fa262d358d99bade889afebec00301298.svn-base b/.svn/pristine/32/325e477fa262d358d99bade889afebec00301298.svn-base new file mode 100644 index 0000000..99e5bb9 --- /dev/null +++ b/.svn/pristine/32/325e477fa262d358d99bade889afebec00301298.svn-base @@ -0,0 +1,260 @@ +/* + * scanHandler implementation + * + * Copyright (C) Thomas Escher, Kai Lingemann + * + * Released under the GPL version 3. + * + */ + +#include "scanserver/scanHandler.h" + +#include +#include +#include +using namespace std; + +#include +using boost::scoped_ptr; + +#include "scanserver/cache/cacheManager.h" +#include "scanio/scan_io.h" + +#ifdef WITH_METRICS +#include "slam6d/metrics.h" +#endif //WITH_METRICS + + + +bool ScanHandler::binary_caching = false; +std::map* > ScanHandler::m_prefetch_xyz; +std::map* > ScanHandler::m_prefetch_rgb; +std::map* > ScanHandler::m_prefetch_reflectance; +std::map* > ScanHandler::m_prefetch_amplitude; +std::map* > ScanHandler::m_prefetch_type; +std::map* > ScanHandler::m_prefetch_deviation; + + + +//! Abstract class for merging calls to the main vector +class PrefetchVectorBase { +public: + virtual bool prefetch() = 0; + virtual void create() = 0; + virtual unsigned int size() const = 0; + virtual void write(void* data_ptr) = 0; +}; + +/** Class for handling a vector and its special case for prefetching. + * + * Outline: prefetch() main vector, otherwise create() on main+prefetched + * vectors and use of ScanIO, cache allocation with size(), write() for main, + * save() for prefetched vectors. + */ +template +class PrefetchVector : public PrefetchVectorBase { +public: + PrefetchVector(SharedScan* scan, map*>& prefetches) : + m_scan(scan), m_prefetches(&prefetches), m_vector(0) + { + } + + ~PrefetchVector() + { + // remove vectors that are still here (RAII/exceptions) + if(m_vector) + delete m_vector; + } + + inline vector* get() const { return m_vector; } + + //! If a prefetch is found, take ownership and signal true for a successful prefetch + virtual bool prefetch() + { + // check if a prefetch is available + typename map*>::iterator it = m_prefetches->find(m_scan); + if(it != m_prefetches->end()) { + // take ownership of the vector and remove it from the map + m_vector = it->second; + m_prefetches->erase(it); + return true; + } + return false; + } + + //! Create an empty vector + virtual void create() { + if(m_vector == 0) { + m_vector = new vector; + } + } + + //! Size of vector contents in bytes + virtual unsigned int size() const { + return m_vector->size()*sizeof(T); + } + + //! Write vector contents into the cache object via \a data_ptr and clean up the vector + virtual void write(void* data_ptr) { + // write vector contents + for(unsigned int i = 0; i < m_vector->size(); ++i) { + reinterpret_cast(data_ptr)[i] = (*m_vector)[i]; + } + // remove so it won't get saved for prefetches + delete m_vector; + m_vector = 0; + } + + //! Save vector for prefetching + void save() { + if(m_vector != 0 && m_vector->size() != 0) { + // create map entry and assign the vector + (*m_prefetches)[m_scan] = m_vector; + // ownership transferred + m_vector = 0; + } + } +private: + SharedScan* m_scan; + map*>* m_prefetches; + + vector* m_vector; +}; + + + +ScanHandler::ScanHandler(CacheObject* obj, CacheManager* cm, SharedScan* scan, IODataType data) : + TemporaryHandler(obj, cm, scan, true), + m_data(data) +{ +} + +bool ScanHandler::load() +{ + ScanIO* sio = ScanIO::getScanIO(m_scan->getIOType()); + + // avoid loading of a non-supported type + if(!sio->supports(m_data)) return false; + +#ifdef WITH_METRICS + Timer t = ServerMetric::scan_loading.start(); +#endif //WITH_METRICS + + // INFO + //cout << "[" << m_scan->getIdentifier() << "][" << m_data << "] ScanHandler::load" << endl; + + // if binary scan caching is enabled try to read it via TemporaryHandler first, if written-flag wasn't set or file didn't exist, parse scan + if(binary_caching) { + if(TemporaryHandler::load()) { + // INFO + //cout << "[" << m_scan->getIdentifier() << "][" << m_data << "] ScanHandler::load successful via TemporaryHandler" << endl << endl; +#ifdef WITH_METRICS + ServerMetric::scan_loading.end(t); +#endif //WITH_METRICS + return true; + } + } + + PrefetchVector xyz(m_scan, m_prefetch_xyz); + PrefetchVector rgb(m_scan, m_prefetch_rgb); + PrefetchVector reflectance(m_scan, m_prefetch_reflectance); + PrefetchVector amplitude(m_scan, m_prefetch_amplitude); + PrefetchVector type(m_scan, m_prefetch_type); + PrefetchVector deviation(m_scan, m_prefetch_deviation); + + // assign vector for this particular ScanHandler + PrefetchVectorBase* vec = 0; + if(m_data == DATA_XYZ) vec = &xyz; + else if(m_data == DATA_RGB) vec = &rgb; + else if(m_data == DATA_REFLECTANCE) vec = &reflectance; + else if(m_data == DATA_AMPLITUDE) vec = &litude; + else if(m_data == DATA_TYPE) vec = &type; + else if(m_data == DATA_DEVIATION) vec = &deviation; + + unsigned int prefetch = m_scan->getPrefetch(); + // try to prefetch only the requested type from its handler + if(vec->prefetch()) + { + // nothing to do if prefetch was successful, vector is initialized + // reset prefetch flags, nothing needs to be saved + prefetch = 0; + } else { + // create vector and exclude it from prefetch handling + vec->create(); + prefetch &= ~m_data; + + // create vectors which are to be prefetched + if(prefetch & DATA_XYZ) xyz.create(); + if(prefetch & DATA_RGB) rgb.create(); + if(prefetch & DATA_REFLECTANCE) reflectance.create(); + if(prefetch & DATA_AMPLITUDE) amplitude.create(); + if(prefetch & DATA_TYPE) type.create(); + if(prefetch & DATA_DEVIATION) deviation.create(); + + // request data from the ScanIO + try { + PointFilter filter(m_scan->getPointFilter()); + sio->readScan(m_scan->getDirPath(), m_scan->getIdentifier(), + filter, + xyz.get(), rgb.get(), reflectance.get(), amplitude.get(), type.get(), deviation.get()); + } catch(std::runtime_error& e) { + // INFO + // cerr << "[" << m_scan->getIdentifier() << "][" << m_data << "] ScanIO runtime_error: " << e.what() << endl; + // rethrow + throw e; + } catch(std::bad_alloc& e) { + // INFO + // cerr << "[" << m_scan->getIdentifier() << "][" << m_data << "] ScanIO bad_alloc: " << e.what() << endl; + // rethrow + throw e; + } + } + + // after successful loading, allocate enough cache space + unsigned int size = vec->size(); + void* data_ptr; + try { + data_ptr = m_manager->allocateCacheObject(m_object, size); + } catch(runtime_error& e) { + // INFO + // cerr << "[" << m_scan->getIdentifier() << "][" << m_data << "] CacheManager error: " << e.what() << endl; + // rethrow + throw e; + } + + // write data into the cache object and clean up the vector + vec->write(data_ptr); + + // save all vectors that still hold their data for prefetching + xyz.save(); + rgb.save(); + reflectance.save(); + amplitude.save(); + type.save(); + deviation.save(); + + // INFO + //cout << "[" << m_scan->getIdentifier() << "][" << m_data << "] ScanHandler::load successful" << endl << endl; + +#ifdef WITH_METRICS + ServerMetric::scan_loading.end(t); +#endif //WITH_METRICS + return true; +} + +void ScanHandler::save(unsigned char* data, unsigned int size) +{ + // INFO + //cout << "[" << m_scan->getIdentifier() << "][" << m_data << "] ScanHandler::save" << endl; + + // if global binary scan caching is enabled, save to file for later faster reloading + if(binary_caching) { + // duplicate writes of static data are handled in TemporaryHandler already + TemporaryHandler::save(data, size); + } +} + +void ScanHandler::setBinaryCaching() +{ + binary_caching = true; +} diff --git a/.svn/pristine/32/32a238798735f4d06751794591ac341c7022c67b.svn-base b/.svn/pristine/32/32a238798735f4d06751794591ac341c7022c67b.svn-base new file mode 100644 index 0000000..360579e --- /dev/null +++ b/.svn/pristine/32/32a238798735f4d06751794591ac341c7022c67b.svn-base @@ -0,0 +1,90 @@ +#----------------------------------------------------------------------------- +# Makefile for the sample program +# +# ANN: Approximate Nearest Neighbors +# Version: 1.1.1 08/04/06 +#----------------------------------------------------------------------------- +# Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +# David Mount. All Rights Reserved. +# +# This software and related documentation is part of the Approximate +# Nearest Neighbor Library (ANN). This software is provided under +# the provisions of the Lesser GNU Public License (LGPL). See the +# file ../ReadMe.txt for further information. +# +# The University of Maryland (U.M.) and the authors make no +# representations about the suitability or fitness of this software for +# any purpose. It is provided "as is" without express or implied +# warranty. +#----------------------------------------------------------------------------- +# Revision 0.1 03/04/98 +# Initial release +# Revision 1.1.1 08/04/06 +# Added copyright/license +#----------------------------------------------------------------------------- +# Note: For full performance measurements, it is assumed that the library +# and this program have both been compiled with the -DPERF flag. See the +# Makefile in the ANN base directory for this flag. +#----------------------------------------------------------------------------- + +#----------------------------------------------------------------------------- +# Basic definitions +# BASEDIR where include, src, lib, ... are +# INCDIR include directory +# LIBDIR library directory +# BINDIR bin directory +# LDFLAGS loader flags +# ANNLIBS libraries +#----------------------------------------------------------------------------- + +BASEDIR = .. +INCDIR = $(BASEDIR)/include +LIBDIR = $(BASEDIR)/lib +BINDIR = $(BASEDIR)/bin +LDFLAGS = -L$(LIBDIR) +ANNLIBS = -lANN -lm + +#----------------------------------------------------------------------------- +# Some more definitions +# ANNSAMP name of sample program +#----------------------------------------------------------------------------- + +ANNSAMP = ann_sample + +SAMPSOURCES = ann_sample.cpp +SAMPOBJECTS = $(SAMPSOURCES:.cpp=.o) + +#----------------------------------------------------------------------------- +# Make the program +#----------------------------------------------------------------------------- + +default: + @echo "Specify a target configuration" + +targets: $(BINDIR)/$(ANNSAMP) + +$(BINDIR)/$(ANNSAMP): $(SAMPOBJECTS) $(LIBDIR)/$(ANNLIB) + $(C++) $(SAMPOBJECTS) -o $(ANNSAMP) $(LDFLAGS) $(ANNLIBS) + mv $(ANNSAMP) $(BINDIR) + +#----------------------------------------------------------------------------- +# configuration definitions +#----------------------------------------------------------------------------- + +include ../Make-config + +#----------------------------------------------------------------------------- +# Objects +#----------------------------------------------------------------------------- + +ann_sample.o: ann_sample.cpp + $(C++) -c -I$(INCDIR) $(CFLAGS) ann_sample.cpp + +#----------------------------------------------------------------------------- +# Cleaning +#----------------------------------------------------------------------------- + +clean: + -rm -f *.o *.out core + +realclean: clean diff --git a/.svn/pristine/33/33079e2c14fb00785e564f3b9050bcf9f77946e2.svn-base b/.svn/pristine/33/33079e2c14fb00785e564f3b9050bcf9f77946e2.svn-base new file mode 100644 index 0000000..d8173a2 --- /dev/null +++ b/.svn/pristine/33/33079e2c14fb00785e564f3b9050bcf9f77946e2.svn-base @@ -0,0 +1,51 @@ +Data Points: +(-0.297462, 0.176102) +(0.565538, -0.361496) +(0.909313, -0.182785) +(0.920712, 0.478408) +(0.167682, 0.0499836) +(0.305223, -0.0805835) +(0.114973, 0.882453) +(0.742916, 0.16376) +(0.0724605, -0.826775) +(0.69096, -0.559284) +(0.188485, -0.643934) +(0.749427, -0.942415) +(-0.970662, -0.223466) +(0.91611, 0.879597) +(0.927417, -0.382593) +(-0.711327, 0.278713) +(-0.519172, 0.986146) +(0.135338, 0.924588) +(-0.0837537, 0.61687) +(0.0520465, 0.896306) +Query point: (0.0902484, -0.207129) + NN: Index Distance + 0 5 0.249455 +Query point: (-0.419567, 0.485743) + NN: Index Distance + 0 0 0.332847 +Query point: (0.826225, -0.30962) + NN: Index Distance + 0 14 0.124759 +Query point: (0.694758, 0.987088) + NN: Index Distance + 0 13 0.246071 +Query point: (-0.410807, -0.465182) + NN: Index Distance + 0 8 0.60357 +Query point: (-0.836501, 0.490184) + NN: Index Distance + 0 15 0.245741 +Query point: (0.588289, 0.656408) + NN: Index Distance + 0 3 0.37708 +Query point: (0.325807, 0.38721) + NN: Index Distance + 0 4 0.372458 +Query point: (-0.532226, -0.727036) + NN: Index Distance + 0 8 0.612857 +Query point: (-0.52506, -0.853508) + NN: Index Distance + 0 8 0.598118 diff --git a/.svn/pristine/33/3345e9c13212bbb7afbf96c9b8a32c6f84618e9d.svn-base b/.svn/pristine/33/3345e9c13212bbb7afbf96c9b8a32c6f84618e9d.svn-base new file mode 100644 index 0000000..3ac970f --- /dev/null +++ b/.svn/pristine/33/3345e9c13212bbb7afbf96c9b8a32c6f84618e9d.svn-base @@ -0,0 +1,653 @@ +/* + * intersection_detection implementation + * + * Copyright (C) Chen Long, Li Wei, Li Ming, Andreas Nuechter, + * + * Released under the GPL version 3. + * + */ + +#include "veloslam/intersection_detection.h" +#include "veloslam/veloscan.h" +#include +#include +#define DefaultColumnSize 360 + +svm_model *m = svm_load_model("SegIter.model"); +svm_node *nod=new svm_node[361]; + +IntersectionDetection::IntersectionDetection() +{ + slashWide=200; + slashMaxLength=3500; + slashAngleDefinition=1; + + columnNum= 360; + cellSize= 50; + MaxRad=6000; + if(MaxRad%cellSize!=0) + MaxRad=(MaxRad/cellSize+1)*cellSize; + cellNum=MaxRad/cellSize; + MinRad=0; + +// CalcRadAndTheta(); +} + +IntersectionDetection::~IntersectionDetection() +{ + + +} + +int IntersectionDetection::GetPointData() +{ + for(unsigned int i = 0; i < Scan::allScans.size(); i++) + for (int j = 0; j < Scan::allScans[i]->get_points_red_size(); j++) + { + Point p; + p.x=Scan::allScans[i]->get_points_red()[j][0]; + p.y=Scan::allScans[i]->get_points_red()[j][1]; + p.z=Scan::allScans[i]->get_points_red()[j][2]; + allPoints_AfterRegstn.push_back(p); + } + + return 0; +} + +int IntersectionDetection::CalcRadAndTheta() +{ + + GetPointData(); + int i,j; + int size= allPoints_AfterRegstn.size(); + + for(i=0; i< size; ++i) + { + allPoints_AfterRegstn[i].rad = sqrt( allPoints_AfterRegstn[i].x*allPoints_AfterRegstn[i].x + + allPoints_AfterRegstn[i].z*allPoints_AfterRegstn[i].z ); + allPoints_AfterRegstn[i].tan_theta = allPoints_AfterRegstn[i].z/allPoints_AfterRegstn[i].x; + } + return 0; + +} + + +int IntersectionDetection::CalPointCellPos(double x,double y,double z ,int * column,int * row) +{ + int i,j,count=0; + float flag; + int offset; + int sectionSize=columnNum/8; + float inc=(M_PI*2)/columnNum; + + vector tanv; + vector::iterator result; + + for(i=0; i0 && z>0 ) + { + if(x >z) + { + flag=tan_theta; + result=upper_bound(tanv.begin(),tanv.end(),flag); + if(result==tanv.end()) + { + offset=sectionSize-1; + } + else + { + offset=result-tanv.begin(); + } + } + else + { + flag=1/tan_theta; + result=upper_bound(tanv.begin(),tanv.end(),flag); + if(result==tanv.end()) + { + offset=sectionSize; + } + else + { + diff=result-tanv.begin(); + offset=sectionSize*2-1-(diff); + } + + } + } + + else if(x<0 && z>0) + { + if(-x>z) + { + flag=-tan_theta; + result=upper_bound(tanv.begin(),tanv.end(),flag); + if(result==tanv.end()) + { + offset=sectionSize*3; + } + else + { + offset=sectionSize*4-1-(result-tanv.begin()); + } + + } + else + { + flag=1/-tan_theta; + result=upper_bound(tanv.begin(),tanv.end(),flag); + if(result==tanv.end()) + { + offset=sectionSize*3-1; + } + else + { + offset=sectionSize*2+(result-tanv.begin()); + } + } + } + + else if(x<0&&z<0) + { + if(-x>-z) + { + flag=tan_theta; + result=upper_bound(tanv.begin(),tanv.end(),flag); + if(result==tanv.end()) + { + offset=sectionSize*5-1; + } + else + { + offset=sectionSize*4+(result-tanv.begin()); + } + } + else + { + flag=1/tan_theta; + result=upper_bound(tanv.begin(),tanv.end(),flag); + if(result==tanv.end()) + { + offset=sectionSize*5; + } + else + { + offset=sectionSize*6-1-(result-tanv.begin()); + } + + } + } + + else if(x>0&&z<0) + { + if(x>-z) + { + flag=-tan_theta; + result=upper_bound(tanv.begin(),tanv.end(),flag); + if(result==tanv.end()) + { + offset=sectionSize*7; + } + else + { + offset=sectionSize*8-1-(result-tanv.begin()); + } + } + else + { + flag=1/-tan_theta; + result=upper_bound(tanv.begin(),tanv.end(),flag); + if(result==tanv.end()) + { + offset=sectionSize*7-1; + } + else + { + offset=sectionSize*6+(result-tanv.begin()); + } + } + } + + int k= (int)((rad-MinRad)/(cellSize*1.0)); + * column=offset; + * row=k; + return 0; +} + + +int IntersectionDetection::CalCellMinDis() +{ + for(int i=0;icellSize) + minCellDis=cellSize; + minCellDisList.push_back(minCellDis); + } + minCellDisList[0]=minCellDisList[1]; + + return 0; +} + + +int IntersectionDetection::TransferToCellArray() +{ + + int i,j,count=0; + float flag; + int offset; + int sectionSize=columnNum/8; + + + cellArray_AfterRegstn.resize(columnNum); + for(i=0; i tanv; + vector::iterator result; + + for(i=0; i=MaxRad) + continue; + + if(pt.x >0 && pt.z>0 ) + { + if(pt.x > pt.z) + { + flag=pt.tan_theta; + result=upper_bound(tanv.begin(),tanv.end(),flag); + if(result==tanv.end()) + { + offset=sectionSize-1; + } + else + { + offset=result-tanv.begin(); + } + } + else + { + flag=1/pt.tan_theta; + result=upper_bound(tanv.begin(),tanv.end(),flag); + if(result==tanv.end()) + { + offset=sectionSize; + } + else + { + diff=result-tanv.begin(); + offset=sectionSize*2-1-(diff); + } + + } + } + + else if(pt.x<0 && pt.z>0) + { + if(-pt.x>pt.z) + { + flag=-pt.tan_theta; + result=upper_bound(tanv.begin(),tanv.end(),flag); + if(result==tanv.end()) + { + offset=sectionSize*3; + } + else + { + offset=sectionSize*4-1-(result-tanv.begin()); + } + + } + else + { + flag=1/-pt.tan_theta; + result=upper_bound(tanv.begin(),tanv.end(),flag); + if(result==tanv.end()) + { + offset=sectionSize*3-1; + } + else + { + offset=sectionSize*2+(result-tanv.begin()); + } + } + } + + else if(pt.x<0&&pt.z<0) + { + if(-pt.x>-pt.z) + { + flag=pt.tan_theta; + result=upper_bound(tanv.begin(),tanv.end(),flag); + if(result==tanv.end()) + { + offset=sectionSize*5-1; + } + else + { + offset=sectionSize*4+(result-tanv.begin()); + } + } + else + { + flag=1/pt.tan_theta; + result=upper_bound(tanv.begin(),tanv.end(),flag); + if(result==tanv.end()) + { + offset=sectionSize*5; + } + else + { + offset=sectionSize*6-1-(result-tanv.begin()); + } + + } + } + + else if(pt.x>0&&pt.z<0) + { + if(pt.x>-pt.z) + { + flag=-pt.tan_theta; + result=upper_bound(tanv.begin(),tanv.end(),flag); + if(result==tanv.end()) + { + offset=sectionSize*7; + } + else + { + offset=sectionSize*8-1-(result-tanv.begin()); + } + } + else + { + flag=1/-pt.tan_theta; + result=upper_bound(tanv.begin(),tanv.end(),flag); + if(result==tanv.end()) + { + offset=sectionSize*7-1; + } + else + { + offset=sectionSize*6+(result-tanv.begin()); + } + } + } + + else + { + continue; + } + + int k= (int)((pt.rad-MinRad)/(cellSize*1.0)); + cellArray_AfterRegstn[offset][k].push_back(&pt); + } + return 0; +} + + +int IntersectionDetection:: CalcCellFeature(cell& cellobj, cellFeature& f) +{ + int outlier; + float lastMaxY; + f.size=cellobj.size(); + f.cellType=0; + + if(f.size==0) + { + f.cellType|=CELL_TYPE_INVALID; + return 0; + } + + f.ave_x= f.ave_y = f.ave_z=0.0; + f.delta_y=0; + + int i=0; + for(i=0; ix; + f.ave_z+=cellobj[i]->z; + f.ave_y+=cellobj[i]->y; + + if(i==0) + { + outlier=0; + f.min_x=f.max_x=cellobj[i]->x; + f.min_z=f.max_z=cellobj[i]->z; + lastMaxY=f.min_y=f.max_y=cellobj[i]->y; + } + else + { + if(f.max_xx) f.max_x=cellobj[i]->x; + + if(f.min_x>cellobj[i]->x) f.min_x=cellobj[i]->x; + + if(f.max_zz) f.max_z=cellobj[i]->z; + + if(f.min_z>cellobj[i]->z) f.min_z=cellobj[i]->z; + + if(f.max_yy) + { + lastMaxY=f.max_y; + f.max_y=cellobj[i]->y; + outlier=i; + } + + if(f.min_y>cellobj[i]->y) + f.min_y=cellobj[i]->y; + } + } + + if(f.size>1) + { + int y=f.ave_y-cellobj[outlier]->y; + y/=(f.size-1)*1.0; + + if(cellobj[outlier]->y-y<50) + { + outlier=-1; + f.ave_y/=f.size*1.0; + } + else + { + f.max_y=lastMaxY; + f.ave_y=y; + } + } + else + { + outlier=-1; + f.ave_y/=f.size*1.0; + } + + f.ave_x/=f.size*1.0; + f.ave_z/=f.size*1.0; + + for(i=0; iy - f.ave_y); + } + + float threshold; + threshold=f.delta_y; + + float GridThresholdGroundDetect =120; + if(threshold > GridThresholdGroundDetect) + f.cellType|=CELL_TYPE_ABOVE_DELTA_Y; + else + f.cellType|=CELL_TYPE_BELOW_DELTA_Y; + return 0; +} + + +int IntersectionDetection::CalcAllCellFeature() +{ + int i,j; + + if( cellArray_AfterRegstn.size()==0) + return -1; + + if( cellFeatureArray_AfterRegstn.size()==0) + { + cellFeatureArray_AfterRegstn.resize(columnNum); + for(i=0; i 120) + // cellFeatureArray_AfterRegstn[j][i].cellType |= CELL_TYPE_ABOVE_DELTA_Y; + } + } + return 0; + +} + +int IntersectionDetection::CalWideSlashEdge_For_RoadShape(float Angle,int startColumID,int startCellID,float maxLength,float wide) +{ + float LengthX; + float LengthZ; + double sinAngle=sin(Angle*M_PI/180); + double cosAngle=cos(Angle*M_PI/180); + float columnAngle=360.0/columnNum; + + float XPos=cellSize*(startCellID+0.5)*cos( columnAngle*(startColumID+0.5)*M_PI/180); + float ZPos=cellSize*(startCellID+0.5)*sin( columnAngle*(startColumID+0.5)*M_PI/180); + + float halfWide=wide/2; + float vexPointXPos1,vexPointZPos1,vexPointXPos2,vexPointZPos2,closePointX,closePointZ; + float moveInterval=0; + float midPointX,midPointZ; + int pointColumn,pointRow; + + IntersectionFeature temp; + temp.slashLength=maxLength; + temp.angle=Angle; + + for(float k=0;k + vexPointXPos2*vexPointXPos2+vexPointZPos2*vexPointZPos2) + { + closePointX=vexPointXPos2; + closePointZ=vexPointZPos2; + } + else + { + closePointX=vexPointXPos1; + closePointZ=vexPointZPos1; + } + CalPointCellPos(closePointX,0,closePointZ,&pointColumn,&pointRow); + moveInterval=minCellDisList[pointRow]; + + for(float i=0;i<=wide;i+=moveInterval) + { + midPointX=vexPointXPos1-i*cosAngle*moveInterval; + midPointZ=vexPointZPos1+i*sinAngle*moveInterval; + CalPointCellPos(midPointX,0,midPointZ,&pointColumn,&pointRow); + + if(pointRow>cellNum-1) + { + temp.slashEndColumn=pointColumn; + temp.slashEndRow=cellNum-1; + goto labelCalSlashEdge_For_RoadShape; + } + cellFeature& cellobj=cellFeatureArray_AfterRegstn[pointColumn][pointRow]; + if(cellobj.cellType & CELL_TYPE_ABOVE_DELTA_Y ) + { + temp.slashEndColumn=pointColumn; + temp.slashEndRow=pointRow; + temp.slashLength=k; + goto labelCalSlashEdge_For_RoadShape; + + } + } + + } + +labelCalSlashEdge_For_RoadShape: + temp.slashLength=temp.slashLength/100;//单位化为m + intersectionFeature.push_back(temp); + + return 0; +} + + +int IntersectionDetection::DetectIntersection() +{ + int startColumn=0; + int startRow=30; + + for(float i=0;i<360;i+=slashAngleDefinition) + { + CalWideSlashEdge_For_RoadShape(i,startColumn,startRow,slashMaxLength,slashWide); + } + + double labelSVM; + for(int i=0;i<360;i++) + { + nod[i].index=i+1; + nod[i].value=intersectionFeature[i].slashLength/slashMaxLength; + } + nod[360].index=-1; + labelSVM= svm_predict(m,nod); + + ofstream output; + output.open("intersection.txt"); + output<<"labelSVM:"<0.5) + cout<<"intersection"< +#endif + +#include "show/show.h" +#include "show/show_Boctree.h" +#include "show/compacttree.h" +#include "show/NurbsPath.h" +#include "show/vertexarray.h" +#include "slam6d/scan.h" +#include "veloslam/veloscan.h" +#include "glui/glui.h" /* Header File For The glui functions */ +#include +using std::ifstream; +#include +using std::exception; + +#ifdef _MSC_VER +#include "XGetopt.h" +#else +#include +#endif + +#ifdef _MSC_VER +#define strcasecmp _stricmp +#define strncasecmp _strnicmp +#else +#include +#endif + + +#ifdef _MSC_VER +#ifdef OPENMP +#define _OPENMP +#endif +#endif + +#ifdef _OPENMP +#include +#endif + +#include "slam6d/point_type.h" +#include "show/display.h" + +/** + * This vector contains the pointer to a vertex array for + * all colors (inner vector) and all scans (outer vector) + */ +vector< vector > vvertexArrayList; + +vector< ::SDisplay*> displays; +/** + * the octrees that store the points for each scan + */ +//Show_BOctTree **octpts; +vector octpts; +/** + * Storing the base directory + */ +string scandirectory; + +/** + * Storing the ID of the main windows + */ +int window_id; + +/** + * Size of points + */ +GLfloat pointsize = 1.0; +int anim_delay = 5; + +/** + * Select Color Buffer + */ +GLenum buffermode = GL_BACK; + +/** + * Indicator whether and how the drawing window + * has to be updated. + * + * haveToUpdate == 1 redisplay + * haveToUpdate == 2 reshape + * haveToUpdate == 3 animation scan matching + * haveToUpdate == 4 stop animation scan matching + * haveToUpdate == 6 path animation + * haveToUpdate == 7 force redisplay with all points + */ +int haveToUpdate = 0; + +/** + * Flag for invert the scene + */ +bool invert = false; + +/** + * Flag for indicating brid eyes view + */ +bool showTopView = false; + +/** + * Flag for idicating camera add mode + */ +bool addCameraView = false; //Is the view in add box mode? + +/** + * Storing the apex angle of the camera + */ +GLfloat cangle = 60.0; // Current camera opening mode +GLfloat cangle_old = cangle; + +/** + * Current rotation axis of the scene as quaternion + */ +GLdouble quat[4] ={0.0, 0.0, 0.0, 1.0}; +GLdouble Rquat[4] ={0.0, 0.0, 0.0, 1.0}; + +/** + * Current translation of the scene + */ +GLdouble X = 0.0, Y = 0.0, Z = 0.0; +GLdouble RVX = 0.0, RVY = 0.0, RVZ = 0.0; + +/** + * parallel zoom (similar to apex angle) for parallel projection + */ +GLfloat pzoom = 2000.0; +GLfloat pzoom_old = pzoom; + + +/** + * Mode of the fog (exp, exp2, linear) + */ +GLint fogMode = GL_EXP; + +/** + * Indicates if fog should be shown + */ +int show_fog = 1; + +/** + * Indicates if the points should be shown + */ +int show_points = 1; // Show data points in the viewer? + +/** + * Indicates if camera boxes should be shown + */ +int show_cameras = 1; // Show the camera boxes in the viewer? + +/** + * Indicates if camera path or robot path should be shown + */ +int show_path = 1; // Show the camera movement path ? + +/** + * Camera navigation by mouse or by panel + */ +int cameraNavMouseMode = 1; + +int mouseNavX, mouseNavY; +int mouseNavButton = -1; + +double mouseRotX = 0.0; +double mouseRotY = 0.0; +double mouseRotZ = 0.0; + +bool keymap[256]; + +//@@@ +//int animate_both = 0; // Animate both scan matchin and path? + +int frameNr = 0; + +/** + * Storing of all transformation (frames for animation) of all scans + */ +vector < vector > MetaMatrix; + +/** + * Storing of AlgoType for all frames + */ +vector < vector > MetaAlgoType; + +/** + * Window position + */ +int START_X = 0; +int START_Y = 0; +int START_WIDTH = 720; +int START_HEIGHT = 576; +GLdouble aspect = (double)START_WIDTH/(double)START_HEIGHT; // Current aspect ratio +bool advanced_controls = false; + +bool fullscreen = false; +int current_width = START_WIDTH; +int current_height = START_HEIGHT; + + +// the following values are scale dependant, i.e. all values are in m +float neardistance = 0.10; +double oldneardistance = 0.10; +float maxfardistance = 400.0;; +double fardistance = 400.0; +double oldfardistance = 40000.0; +double movementSpeed = 0.1; +double defaultZoom = 20.0; +GLfloat fogDensity = 0.1; +double voxelSize = 0.20; + + +float adaption_rate = 1.0; +float LevelOfDetail = 0.0001; + + +// Defines for Point Semantic +#define TYPE_UNKNOWN 0x0000 +#define TYPE_OBJECT 0x0001 +#define TYPE_GROUND 0x0002 +#define TYPE_CEILING 0x0003 + +unsigned int cam_choice = 0; + +static unsigned int path_iterator = 0; +static int oldcamNavMode = 0; + +/** + * Animation sould be saved to file + */ +int save_animation = 0; +/** + * If true, interpolation for camera path is based on distance, else always + * the same number of images between two cameras. + */ +int inter_by_dist = 1; + +/**some variables for the camera path**/ +vector path_vectorX, path_vectorZ, lookat_vectorX, lookat_vectorZ, ups_vectorX, ups_vectorZ; +vector cams; +vector lookats; +vector ups; + +NurbsPath cam_nurbs_path; +char *path_file_name; +char *pose_file_name; + +/** Factor for saved image size */ +int factor = 1; + +/** + * program tries to have this framerate + */ +float idealfps = 20.0; +/** + * value of the listBox fo Color Value and Colormap + */ +int listboxColorVal = 0; +int listboxColorMapVal = 0; +int colorScanVal = 0; +ScanColorManager *cm; +float mincolor_value = 0.0; +float maxcolor_value = 0.0; +//unsigned int types = Point::USE_HEIGHT; +PointType pointtype; + +/** + * Contains the selected points for each scan + */ +set *selected_points; +/** + * Select single points? + */ +int select_voxels = 0; +/** + * Select or unselect points ? + */ +int selectOrunselect = 1; +/** octree depth for selecting groups of points */ +int selection_depth = 1; +int brush_size = 0; +char *selection_file_name; + +int current_frame = 0; + +#include "../show/show_menu.cc" +#include "../show/show_animate.cc" +#include "../show/show_gl.cc" + +/** + * Explains the usage of this program's command line parameters + * @param prog name of the program + */ +void usage(char* prog) +{ +#ifndef _MSC_VER + const string bold("\033[1m"); + const string normal("\033[m"); +#else + const string bold(""); + const string normal(""); +#endif + + cout << endl + << bold << "USAGE " << normal << endl + << " " << prog << " [options] directory" << endl << endl; + cout << bold << "OPTIONS" << normal << endl + + << bold << " -e" << normal << " NR, " << bold << "--end=" << normal << "NR" << endl + << " end after scan NR" << endl + << endl + << bold << " -f" << normal << " F, " << bold << "--format=" << normal << "F" << endl + << " using shared library F for input" << endl + << " (chose F from {uos, uos_map, uos_rgb, uos_frames, uos_map_frames, old, rts, rts_map, ifp, riegl_txt, riegl_rgb, riegl_bin, zahn, ply, wrl, xyz, zuf, iais, front, x3d, rxp, ais })" << endl + << endl + << bold << " -F" << normal << " NR, " << bold << "--fps=" << normal << "NR [default: 20]" << endl + << " will attempt to display points with a framerate of NR" << endl + << endl + << bold << " -l" << normal << " FILE, " << bold << "--loadObj=" << normal << + "FILE" << endl + << " load objects specified in " << endl + << endl + << endl + << bold << " -m" << normal << " NR, " << bold << "--max=" << normal << "NR" << endl + << " neglegt all data points with a distance larger than NR 'units'" << endl + << endl + << bold << " -M" << normal << " NR, " << bold << "--min=" << normal << "NR" << endl + << " neglegt all data points with a distance smaller than NR 'units'" << endl + << endl + << bold << " -O" << normal << "NR (optional), " << bold << "--octree=" << normal << "NR (optional)" << endl + << " use randomized octree based point reduction (pts per voxel=)" << endl + << " requires " << bold << "-r" << normal <<" or " << bold << "--reduce" << endl + << endl + << bold << " -o" << normal << " NR, " << bold << "--origin=" << normal << "NR (optional)" << endl + << " sets the starting and reset position to: " << endl + << " 0 = the origin of the coordinate system (default)" << endl + << " 1 = the position of the first scan (default if --origin is in argument list)" << endl + << " 2 = the center of the first scan" << endl + << endl + << bold << " -r" << normal << " NR, " << bold << "--reduce=" << normal << "NR" << endl + << " turns on octree based point reduction (voxel size=)" << endl + << endl + << bold << " -s" << normal << " NR, " << bold << "--start=" << normal << "NR" << endl + << " start at scan NR (i.e., neglects the first NR scans)" << endl + << " [ATTENTION: counting naturally starts with 0]" << endl + << endl + << bold << " -S" << normal << " NR, " << bold << "--scale=" << normal << "NR" << endl + << " scale factor to use (default: 0.01), modifies movement speed etc. " << endl + << " use 1 when point coordinates are in m, 0.01 when in cm and so forth. " << endl + << " " << endl + << endl + + << bold << " -R, --reflectance, --reflectivity" << normal << endl + << " use reflectivity values for coloring point clouds" << endl + << " only works when using octree display" << endl + << endl + << bold << " -a, --amplitude" << endl << normal + << " use amplitude values for coloring point clouds" << endl + << " only works when using octree display" << endl + << endl + << bold << " -d, --deviation" << endl << normal + << " use amplitude values for coloring point clouds" << endl + << " only works when using octree display" << endl + << endl + << bold << " -h, --height" << endl << normal + << " use y-values for coloring point clouds" << endl + << " only works when using octree display" << endl + << endl + << bold << " -T, --type" << endl << normal + << " use type values for coloring point clouds" << endl + << " only works when using octree display" << endl + << bold << " -c, --color" << endl << normal + << " use color RGB values for coloring point clouds" << endl + << bold << " --saveOct" << endl << normal + << " stores all used scans as octrees in the given directory" << endl + << " All reflectivity/amplitude/deviation/type settings are stored as well." << endl + << " only works when using octree display" << endl + << bold << " --loadOct" << endl << normal + << " only reads octrees from the given directory" << endl + << " All reflectivity/amplitude/deviation/type settings are read from file." << endl + << " --reflectance/--amplitude and similar parameters are therefore ignored." << endl + << " only works when using octree display" << endl + << endl << endl; + + exit(1); +} + + +/** + * A function that parses the command-line arguments and sets the respective flags. + * + * @param argc the number of arguments + * @param argv the arguments + * @param dir parsing result - the directory + * @param start parsing result - starting at scan number 'start' + * @param end parsing result - stopping at scan number 'end' + * @param maxDist parsing result - maximal distance + * @param minDist parsing result - minimal distance + * @param readInitial parsing result - read a file containing a initial transformation matrix + * @param type parsing result - file format to be read + * @return 0, if the parsing was successful, 1 otherwise + */ +int parseArgs(int argc,char **argv, string &dir, int& start, int& end, int& maxDist, int& minDist, + double &red, bool &readInitial, int &octree, PointType &ptype, float &fps, string &loadObj, bool &loadOct, bool &saveOct, int &origin, double &scale, reader_type &type) +{ + unsigned int types = PointType::USE_NONE; + start = 0; + end = -1; // -1 indicates no limitation + maxDist = -1; // -1 indicates no limitation + int c; + // from unistd.h + extern char *optarg; + extern int optind; + + cout << endl; + static struct option longopts[] = { + { "origin", optional_argument, 0, 'o' }, + { "format", required_argument, 0, 'f' }, + { "fps", required_argument, 0, 'F' }, + { "scale", required_argument, 0, 'S' }, + { "start", required_argument, 0, 's' }, + { "end", required_argument, 0, 'e' }, + { "reduce", required_argument, 0, 'r' }, + { "max", required_argument, 0, 'm' }, + { "min", required_argument, 0, 'M' }, + { "octree", optional_argument, 0, 'O' }, + { "reflectance", no_argument, 0, 'R' }, + { "reflectivity", no_argument, 0, 'R' }, + { "amplitude", no_argument, 0, 'a' }, + { "deviation", no_argument, 0, 'd' }, + { "height", no_argument, 0, 'h' }, + { "type", no_argument, 0, 'T' }, + { "color", no_argument, 0, 'c' }, + { "loadObj", required_argument, 0, 'l' }, + { "saveOct", no_argument, 0, '0' }, + { "loadOct", no_argument, 0, '1' }, + { "advanced", no_argument, 0, '2' }, + { 0, 0, 0, 0} // needed, cf. getopt.h + }; + + //while ((c = getopt_long(argc, argv,"F:f:s:e:r:m:M:O:o:l:wtRadhTcC", longopts, NULL)) != -1) + while ((c = getopt_long(argc, argv, "O:f:A:G:L:a:b:t:r:R:d:D:i:l:I:c:C:n:s:e:m:M:uqQp", longopts, NULL)) != -1) + switch (c) + { + case 's': + start = atoi(optarg); + if (start < 0) { cerr << "Error: Cannot start at a negative scan number.\n"; exit(1); } + break; + case 'e': + end = atoi(optarg); + if (end < 0) { cerr << "Error: Cannot end at a negative scan number.\n"; exit(1); } + if (end < start) { cerr << "Error: cannot be smaller than .\n"; exit(1); } + break; + case 'm': + maxDist = atoi(optarg); + break; + case 'M': + minDist = atoi(optarg); + break; + case 'r': + red = atof(optarg); + break; + case 't': + readInitial = true; + break; + case 'O': + if (optarg) { + octree = atoi(optarg); + } else { + octree = 1; + } + break; + case 'f': + if (!Scan::toType(optarg, type)) + abort (); + break; + case '?': + usage(argv[0]); + return 1; + case 'R': + types |= PointType::USE_REFLECTANCE; + break; + case 'a': + types |= PointType::USE_AMPLITUDE; + break; + case 'd': + types |= PointType::USE_DEVIATION; + break; + case 'h': + types |= PointType::USE_HEIGHT; + break; + case 'T': + types |= PointType::USE_TYPE; + break; + case 'c': + types |= PointType::USE_COLOR; + break; + case 'F': + fps = atof(optarg); + break; + case 'S': + scale = atof(optarg); + break; + case 'o': + if (optarg) { + origin = atoi(optarg); + } else { + origin = 1; + } + break; + case '0': + saveOct = true; + break; + case '1': + loadOct = true; + break; + case 'l': + loadObj = optarg; + break; + case '2': + advanced_controls = true; + break; + default: + abort (); + } + + if (optind != argc-1) { + cerr << "\n*** Directory missing ***" << endl; + usage(argv[0]); + } + dir = argv[optind]; + +#ifndef _MSC_VER + if (dir[dir.length()-1] != '/') dir = dir + "/"; +#else + if (dir[dir.length()-1] != '\\') dir = dir + "\\"; +#endif + + ptype = PointType(types); + return 0; +} + +void setResetView(int origin) { + if (origin == 1) { + double *transmat = MetaMatrix[0].back(); + cout << transmat << endl; + + RVX = -transmat[12]; + RVY = -transmat[13]; + RVZ = -transmat[14]; + Matrix4ToQuat(transmat, Rquat); + X = RVX; + Y = RVY; + Z = RVZ; + quat[0] = Rquat[0]; + quat[1] = Rquat[1]; + quat[2] = Rquat[2]; + quat[3] = Rquat[3]; + } else if (origin == 2) { + double center[3]; +#ifdef USE_COMPACT_TREE + ((compactTree*)octpts[0])->getCenter(center); +#else + ((Show_BOctTree*)octpts[0])->getCenter(center); +#endif + RVX = -center[0]; + RVY = -center[1]; + RVZ = -center[2]; + X = RVX; + Y = RVY; + Z = RVZ; + } +} + +/* + * A function that read the .frame files created by slam6D + * + * @param dir the directory + * @param start starting at scan number 'start' + * @param end stopping at scan number 'end' + * @param read a file containing a initial transformation matrix and apply it + */ +int readFrames(string dir, int start, int end, bool readInitial, reader_type &type) +{ + + double initialTransform[16]; + if (readInitial) { + cout << "Initial Transform:" << endl; + string initialTransformFileName = dir + "initital.frame"; + ifstream initial_in(initialTransformFileName.c_str()); + if (!initial_in.good()) { + cout << "Error opening " << initialTransformFileName << endl; + exit(-1); + } + initial_in >> initialTransform; + cout << initialTransform << endl; + } + + ifstream frame_in; + int fileCounter = start; + string frameFileName; + for (;;) { + if (end > -1 && fileCounter > end) break; // 'nuf read + frameFileName = dir + "scan" + to_string(fileCounter++,3) + ".frames"; + + frame_in.open(frameFileName.c_str()); + + // read 3D scan + if (!frame_in.good()) break; // no more files in the directory + + cout << "Reading Frames for 3D Scan " << frameFileName << "..."; + vector Matrices; + vector algoTypes; + int frameCounter = 0; + + while (frame_in.good()) { + frameCounter++; + double *transMatOpenGL = new double[16]; + int algoTypeInt; + Scan::AlgoType algoType; + try { + double transMat[16]; + frame_in >> transMat >> algoTypeInt; + algoType = (Scan::AlgoType)algoTypeInt; + + // convert to OpenGL coordinate system + double mirror[16]; + M4identity(mirror); + mirror[10] = -1.0; + if (readInitial) { + double tempxf[16]; + MMult(mirror, initialTransform, tempxf); + memcpy(mirror, tempxf, sizeof(tempxf)); + } + //@@@ + // memcpy(transMatOpenGL, transMat, 16*sizeof(double)); + MMult(mirror, transMat, transMatOpenGL); + } + catch (const exception &e) { + break; + } + Matrices.push_back(transMatOpenGL); + algoTypes.push_back(algoType); + } + + MetaAlgoType.push_back(algoTypes); + MetaMatrix.push_back(Matrices); + + if((type == UOS_MAP || type == UOS_MAP_FRAMES || type == RTS_MAP) && fileCounter == start+1) { + MetaAlgoType.push_back(algoTypes); + MetaMatrix.push_back(Matrices); + } + + frame_in.close(); + frame_in.clear(); + cout << MetaMatrix.back().size() << " done." << endl; + current_frame = MetaMatrix.back().size() - 1; + } + if (MetaMatrix.size() == 0) { + cerr << "*****************************************" << endl; + cerr << "** ERROR: No .frames could be found! **" << endl; + cerr << "*****************************************" << endl; + cerr << " ERROR: Missing or empty directory: " << dir << endl << endl; + return -1; + } + return 0; +} + +void generateFrames(int start, int end, bool identity) { + if (identity) { + cout << "using Identity for frames " << endl; + } else { + cout << "using pose information for frames " << endl; + } + int fileCounter = start; + int index = 0; + for (;;) { + if (fileCounter > end) break; // 'nuf read + fileCounter++; + + vector Matrices; + vector algoTypes; + + for (int i = 0; i < 3; i++) { + double *transMat = new double[16]; + + if (identity) { + M4identity(transMat); + transMat[10] = -1.0; + } else { + EulerToMatrix4(Scan::allScans[index]->get_rPos(), Scan::allScans[index]->get_rPosTheta(), transMat ); + } + + Matrices.push_back(transMat); + algoTypes.push_back(Scan::ICP); + + } + index++; + MetaAlgoType.push_back(algoTypes); + MetaMatrix.push_back(Matrices); + } +} + + + +/* + * create display lists + * @to do general framework for color & type definitions + */ +void createDisplayLists(bool reduced) +{ + for(unsigned int i = 0; i < Scan::allScans.size() ; i++) { + + // count points + int color1 = 0, color2 = 0; + if (!reduced) { + for (unsigned int jterator = 0; jterator < Scan::allScans[i]->get_points()->size(); jterator++) { + if (Scan::allScans[i]->get_points()->at(jterator).type & TYPE_GROUND) { + color1++; + } else { + color2++; + } + } + } else { + color2 = 3* Scan::allScans[i]->get_points_red_size(); + } + + // allocate memory + vertexArray* myvertexArray1 = new vertexArray(color1); + vertexArray* myvertexArray2 = new vertexArray(color2); + + // fill points + color1 = 0, color2 = 0; + if (reduced) { + for (int jterator = 0; jterator < Scan::allScans[i]->get_points_red_size(); jterator++) { + myvertexArray2->array[color2] = Scan::allScans[i]->get_points_red()[jterator][0]; + myvertexArray2->array[color2+1] = Scan::allScans[i]->get_points_red()[jterator][1]; + myvertexArray2->array[color2+2] = Scan::allScans[i]->get_points_red()[jterator][2]; + color2 += 3; + } + } else { + for (unsigned int jterator = 0; jterator < Scan::allScans[i]->get_points()->size(); jterator++) { + if (Scan::allScans[i]->get_points()->at(jterator).type & TYPE_GROUND) { + myvertexArray1->array[color1] = Scan::allScans[i]->get_points()->at(jterator).x; + myvertexArray1->array[color1+1] = Scan::allScans[i]->get_points()->at(jterator).y; + myvertexArray1->array[color1+2] = Scan::allScans[i]->get_points()->at(jterator).z; + color1 += 3; + } else { + myvertexArray2->array[color2] = Scan::allScans[i]->get_points()->at(jterator).x; + myvertexArray2->array[color2+1] = Scan::allScans[i]->get_points()->at(jterator).y; + myvertexArray2->array[color2+2] = Scan::allScans[i]->get_points()->at(jterator).z; + color2 += 3; + } + } + } + + glNewList(myvertexArray1->name, GL_COMPILE); + //@ + //glColor4d(0.44, 0.44, 0.44, 1.0); + //glColor4d(0.66, 0.66, 0.66, 1.0); + glVertexPointer(3, GL_FLOAT, 0, myvertexArray1->array); + glEnableClientState(GL_VERTEX_ARRAY); + glDrawArrays(GL_POINTS, 0, myvertexArray1->numPointsToRender); + glDisableClientState(GL_VERTEX_ARRAY); + glEndList(); + + glNewList(myvertexArray2->name, GL_COMPILE); + //glColor4d(1.0, 1.0, 1.0, 1.0); + //glColor4d(0.0, 0.0, 0.0, 1.0); + glVertexPointer(3, GL_FLOAT, 0, myvertexArray2->array); + glEnableClientState(GL_VERTEX_ARRAY); + glDrawArrays(GL_POINTS, 0, myvertexArray2->numPointsToRender); + glDisableClientState(GL_VERTEX_ARRAY); + glEndList(); + + // append to vector + vector vvertexArray; + vvertexArray.push_back(myvertexArray1); + vvertexArray.push_back(myvertexArray2); + vvertexArrayList.push_back(vvertexArray); + } + +} + +void cycleLOD() { + LevelOfDetail = 0.00001; + for (unsigned int i = 0; i < octpts.size(); i++) + octpts[i]->cycleLOD(); +} + + +void initShow(int argc, char **argv){ + + /***************/ + /* init OpenGL */ + /***************/ + glutInit(&argc,argv); + + cout << "(wx)show - A highly efficient 3D point cloud viewer" << endl + << "(c) Jacobs University Bremen gGmbH, Germany, since 2009" << endl + << " University of Osnabrueck, Germany, 2006 - 2009" << endl << endl; + + if(argc <= 1){ + usage(argv[0]); + } + + + + double red = -1.0; + int start = 0, end = -1, maxDist = -1, minDist = -1; + string dir; + bool readInitial = false; + reader_type type = UOS; + int octree = 0; + bool loadOct = false; + bool saveOct = false; + string loadObj; + int origin = 0; + double scale = 0.01; // in m + + pose_file_name = new char[1024]; + path_file_name = new char[1024]; + selection_file_name = new char[1024]; + + strncpy(pose_file_name, "pose.dat", 1024); + strncpy(path_file_name, "path.dat", 1024); + strncpy(selection_file_name, "selected.3d", 1024); + + parseArgs(argc, argv, dir, start, end, maxDist, minDist, red, readInitial, + octree, pointtype, idealfps, loadObj, loadOct, saveOct, origin, scale, type); + + // modify all scale dependant variables + scale = 1.0 / scale; + movementSpeed *= scale; + neardistance *= scale; + oldneardistance *= scale; + maxfardistance *= scale; + fardistance *= scale; + fogDensity /= scale; + defaultZoom *= scale; + voxelSize *= scale; +// oldfardistance *= scale; + + //////////////////////// + SDisplay::readDisplays(loadObj, displays); + //////////////////// + + if (type == OCT) { + loadOct = true; + } + + // if we want to load display file get pointtypes from the files first + if (loadOct) { + string scanFileName = dir + "scan" + to_string(start,3) + ".oct"; + cout << "Getting point information from " << scanFileName << endl; + cout << "Attention! All subsequent oct-files must be of the same type!" << endl; + + pointtype = BOctTree::readType(scanFileName); + } + scandirectory = dir; + + // init and create display + M4identity(view_rotate_button); + obj_pos_button[0] = obj_pos_button[1] = obj_pos_button[2] = 0.0; + + // read frames first, to get notifyied of missing frames before all scans are read in + int r = readFrames(dir, start, end, readInitial, type); + + + // Get Scans + if (!loadOct) { +#ifndef DYNAMIC_OBJECT_REMOVAL + Scan::readScans(type, start, end, dir, maxDist, minDist, 0); +#else + VeloScan::readScans(type, start, end, dir, maxDist, minDist, 0); +#endif + } else { + cout << "Skipping files.." << endl; + } + + if (!loadOct) { + if (r) generateFrames(start, start + Scan::allScans.size() - 1, false); + } else { + if (r) generateFrames(start, start + octpts.size() - 1, true); + } + + int end_reduction = (int)Scan::allScans.size(); + #ifdef _OPENMP + #pragma omp parallel for schedule(dynamic) + #endif + for (int iterator = 0; iterator < end_reduction; iterator++) { + // reduction filter for current scan! + if (red > 0) { + cout << "Reducing Scan No. " << iterator << endl; + // TODO do another reduction so reflectance values etc are carried over + Scan::allScans[iterator]->calcReducedPoints(red, octree); + } // no copying necessary for show! + } + + cm = new ScanColorManager(4096, pointtype); + + if (loadOct) { + for (int i = start; i <= end; i++) { + string scanFileName = dir + "scan" + to_string(i,3) + ".oct"; + cout << "Reading octree " << scanFileName << endl; +#ifdef USE_COMPACT_TREE + octpts.push_back(new compactTree(scanFileName, cm)); +#else + octpts.push_back(new Show_BOctTree(scanFileName, cm)); +#endif + } + } else { +#ifndef USE_GL_POINTS + createDisplayLists(red > 0); +#elif USE_COMPACT_TREE + cout << "Creating compact display octrees.." << endl; + for(int i = 0; i < (int)Scan::allScans.size() ; i++) { + compactTree *tree; + if (red > 0) { + tree = new compactTree(Scan::allScans[i]->get_points_red(), Scan::allScans[i]->get_points_red_size(), voxelSize, pointtype, cm); // TODO remove magic number + } else { + unsigned int nrpts = Scan::allScans[i]->get_points()->size(); + sfloat **pts = new sfloat*[nrpts]; + for (unsigned int jterator = 0; jterator < nrpts; jterator++) { + pts[jterator] = pointtype.createPoint(Scan::allScans[i]->get_points()->at(jterator)); + } + Scan::allScans[i]->clearPoints(); + tree = new compactTree(pts, nrpts , voxelSize, pointtype, cm); //TODO remove magic number + for (unsigned int jterator = 0; jterator < nrpts; jterator++) { + delete[] pts[jterator]; + } + delete[] pts; + } + if (saveOct) { + string scanFileName = dir + "scan" + to_string(i+start,3) + ".oct"; + cout << "Saving octree " << scanFileName << endl; + tree->serialize(scanFileName); + } + octpts.push_back(tree); + cout << "Scan " << i << " octree finished. Deleting original points.." << endl; + } +#else + cout << "Creating display octrees.." << endl; + for(int i = 0; i < (int)Scan::allScans.size() ; i++) { + Show_BOctTree *tree; + if (red > 0) { + tree = new Show_BOctTree(Scan::allScans[i]->get_points_red(), Scan::allScans[i]->get_points_red_size(), voxelSize, pointtype, cm); // TODO remove magic number + } else { + unsigned int nrpts = Scan::allScans[i]->get_points()->size(); + sfloat **pts = new sfloat*[nrpts]; + for (unsigned int jterator = 0; jterator < nrpts; jterator++) { + pts[jterator] = pointtype.createPoint(Scan::allScans[i]->get_points()->at(jterator)); + } + Scan::allScans[i]->clearPoints(); + tree = new Show_BOctTree(pts, nrpts , voxelSize, pointtype, cm); //TODO remove magic number + for (unsigned int jterator = 0; jterator < nrpts; jterator++) { + delete[] pts[jterator]; + } + delete[] pts; + } + octpts.push_back(tree); + if (saveOct) { + string scanFileName = dir + "scan" + to_string(i+start,3) + ".oct"; + cout << "Saving octree " << scanFileName << endl; + tree->serialize(scanFileName); + } + cout << "Scan " << i << " octree finished. Deleting original points.." << endl; + } +#endif + } + + cm->setCurrentType(PointType::USE_HEIGHT); + //ColorMap cmap; + //cm->setColorMap(cmap); + resetMinMax(0); + + selected_points = new set[octpts.size()]; + + // sets (and computes if necessary) the pose that is used for the reset button + setResetView(origin); + + for (unsigned int i = 0; i < 256; i++) { + keymap[i] = false; + } +} + +/** + * Main function. + * Reads the scan (scan000.3d, ...) and frames files (scan000.frames, ...) from the data directory. + * The frames are used for animation of the matching process. + */ + +int main(int argc, char **argv){ + + initShow(argc, argv); + initScreenWindow(); + + newMenu(); + glutMainLoop(); +} + + +void updateCamControls() { + cam_spinner->set_int_limits( 1, cams.size()); + cam_spinner->set_int_val(cam_choice); +} + +void resetRotationButton() { + rotButton->reset(); +} + +void updateTopViewControls() { + if(showTopView) { + pzoom_spinner->enable(); + cangle_spinner->disable(); + } else { + pzoom_spinner->disable(); + cangle_spinner->enable(); + } +} + + +void updateControls() { + glui1->sync_live(); + glui1->show(); + glui2->sync_live(); + glui2->show(); +} + +static bool interrupted = false; +void interruptDrawing() { + interrupted = true; +} +void checkForInterrupt() { + interrupted = false; +} +bool isInterrupted() { +#ifdef WITH_FREEGLUT +#ifndef __APPLE__ + glutMainLoopEvent(); +#endif +#endif + glutSetWindow(window_id); + return interrupted; +} + +void updatePointModeControls() { + switch(pointmode) { + case -1: + always_box->set_int_val(0); + never_box->set_int_val(1); + break; + case 0: + always_box->set_int_val(0); + never_box->set_int_val(0); + break; + case 1: + always_box->set_int_val(1); + never_box->set_int_val(0); + break; + } +} + diff --git a/.svn/pristine/33/33b708874eea61a5fe5d9db60fe431052248bdef.svn-base b/.svn/pristine/33/33b708874eea61a5fe5d9db60fe431052248bdef.svn-base new file mode 100644 index 0000000..f12d7df --- /dev/null +++ b/.svn/pristine/33/33b708874eea61a5fe5d9db60fe431052248bdef.svn-base @@ -0,0 +1,159 @@ +/* + * grid implementation + * + * Copyright (C) Uwe Hebbelmann, Sebastian Stock, Andre Schemschat + * + * Released under the GPL version 3. + * + */ + +#include + +#include "grid/grid.h" +#include + +/** + * CTor. + * Allocates an array of gridPoints + * and sets the offsets and sizes + * + * @param offsetX the x-offest of the array + * @param offsetZ the z-offset of the array + * @param sizeX the x-size of the array + * @param sizeZ the y-size of the array + */ +grid::grid(long offsetX, long offsetZ, long sizeX, long sizeZ) +{ + if(sizeX < 1 || sizeZ < 1) + { + std::cerr << "ERROR: Invalid array size in grid::grid! "<< std::endl; + exit(1); + } + + points = NULL; + + // Allocate array + this->points = new gridPoint**[sizeX]; + + for(int i=0; i < sizeX; ++i) + { + this->points[i] = new gridPoint*[sizeZ]; + for(int j=0; j < sizeZ; ++j) + { + this->points[i][j] = new gridPoint(offsetX + i, offsetZ + j); + } + } + + this->offsetX = offsetX; + this->offsetZ = offsetZ; + this->sizeX = sizeX; + this->sizeZ = sizeZ; +} + +/** + * DTor. Deletes the array + */ +grid::~grid() +{ + clear(); +} + +/** + * Frees the memory if array is set + */ +void grid::clear() +{ + if(this->points == NULL) + return; + + // delete all points + for(int i=0; i < getSizeX(); ++i) + { + for(int j=0; j < getSizeZ(); ++j) + { + delete this->points[i][j]; + } + + delete[] this->points[i]; + } + + delete[] this->points; + + this->points = NULL; +} + +/** + * Adds point to given point in the grid (updates the point) + * + * @param x the absolute x coordinate + * @param z the absolute z coordinate + * @param occupied is the point occupied or free? + * @param weight weighting of the information + */ +void grid::addPoint(long x, long z, unsigned int count, unsigned int occupied) +{ + if(this->points == NULL) + { + std::cerr << "ERROR: In grid::addPoint, allocate never called!" << std::endl; + exit(1); + } + + // get the absolute gridPoint + gridPoint *p = getAbsolutePoint(x, z); + + // increase counters + p->addCount(count, occupied); +} + +/** + * Adds new point into the grid or updates the point with new + * point information + * @param point a reference to the point (new information) + */ +void grid::addPoint(const gridPoint& point) +{ + gridPoint *p = getAbsolutePoint(point.getX(), point.getZ()); + p->addCount(point.getCount(), point.getOccupied()); +} + +/** + * Sets values for the point + * + * @param x absolute x coordinate + * @param z absolute z coordinate + * @param count new counter value (number of counts) + * @param occupied new occupied value (number of occupieds) + */ +void grid::setPoint(long x, long z, unsigned int count, unsigned int occupied) +{ + gridPoint* p = getAbsolutePoint(x, z); + p->setFixed(count, occupied); +} + +/** + * Returns point of the absolute coordinates + * The absolute coordinates get transformed to relative coordinates + + * @param x the absolute x coordinate + * @param z the absolute z coordinate + * + * @return gridPoint* pointer to the found gridPoint + */ +gridPoint* grid::getAbsolutePoint(long x, long z) const +{ + // Transform to relative coordinates + x -= getOffsetX(); + z -= getOffsetZ(); + + if( x < 0 || x >= getSizeX() || z < 0 || z >= getSizeZ()) + { + std::cerr << "ERROR: In grid::getAbsolutePoint (" + << x << "|" << z <<") not in the grid!" << std::endl; + exit(1); + } + + return this->points[x][z]; +} + + + diff --git a/.svn/pristine/33/33ff861c3ed7108c918452d4817e68dbcd9830d8.svn-base b/.svn/pristine/33/33ff861c3ed7108c918452d4817e68dbcd9830d8.svn-base new file mode 100644 index 0000000..edbd62a --- /dev/null +++ b/.svn/pristine/33/33ff861c3ed7108c918452d4817e68dbcd9830d8.svn-base @@ -0,0 +1,188 @@ + +This tests the exception system, so you will get +a long list of error messages + + +Print a real number (may help lost memory test): 3.14159 +----------------------------------------- + +Incompatible dimensions + + +An exception has been thrown +Logic error:- detected by Newmat: incompatible dimensions + +MatrixType = Rect # Rows = 2; # Cols = 3 +MatrixType = Rect # Rows = 4; # Cols = 5 +Trace: AddedMatrix::Evaluate; Block A; Test. + +----------------------------------------- + +Bad index + + +An exception has been thrown +Logic error:- detected by Newmat: index error: requested indices = 3, 3 + +MatrixType = Rect # Rows = 2; # Cols = 3 +Trace: Block B; Test. + +----------------------------------------- + +Illegal conversion + + +An exception has been thrown +Logic error:- detected by Newmat: Illegal Conversion +MatrixTypes = Rect ; UT + +Trace: Block C; Test. + +----------------------------------------- + +Invert non-square matrix - 1 + + +An exception has been thrown +Logic error:- detected by Newmat: matrix is not square + +MatrixType = Rect # Rows = 2; # Cols = 3 +Trace: CroutMatrix; Block D; Test. + +----------------------------------------- + +Invert non-square matrix - 2 + + +An exception has been thrown +Logic error:- detected by Newmat: matrix is not square + +MatrixType = Rect # Rows = 2; # Cols = 3 +Trace: GeneralSolvI; InvertedMatrix::Evaluate; Block E; Test. + +----------------------------------------- + +Non 1x1 matrix to scalar + + +An exception has been thrown +Logic error:- detected by Newmat: Cannot convert to scalar + +MatrixType = Rect # Rows = 2; # Cols = 3 +Trace: AsScalar; Block F; Test. + +----------------------------------------- + +Matrix to vector + + +An exception has been thrown +Logic error:- detected by Newmat: cannot convert matrix to vector + +MatrixType = Rect # Rows = 2; # Cols = 3 +Trace: ColumnVector; Block G; Test. + +----------------------------------------- + +Invert singular matrix + + +An exception has been thrown +Runtime error:- detected by Newmat: matrix is singular + +MatrixType = Crout # Rows = 2; # Cols = 2 +Trace: Crout(lubksb); GeneralSolvI; InvertedMatrix::Evaluate; Block H; Test. + +----------------------------------------- + +SubMatrix error + + +An exception has been thrown +Logic error:- detected by Newmat: incompatible submatrix dimension + +Trace: SubMatrix(evaluate); Block I; Test. + +----------------------------------------- + +SubMatrix error + + +An exception has been thrown +Logic error:- detected by Newmat: incompatible submatrix dimension + +Trace: SubMatrix(row); Block J; Test. + +----------------------------------------- + +Cholesky error + + +An exception has been thrown +Runtime error:- detected by Newmat: matrix not positive definite + +MatrixType = Sym # Rows = 50; # Cols = 50 +Trace: Cholesky; Block K; Test. + +----------------------------------------- + +Inequality error + + +An exception has been thrown +Logic error:- detected by Newmat: inequalities not defined for matrices + +Trace: Block L; Test. + +----------------------------------------- + +Maximum of empty matrix + + +An exception has been thrown +Logic error:- detected by Newmat: Maximum or minimum of null matrix + +Trace: Block M; Test. + +----------------------------------------- + +Incorrectly ReSizing band matrix + + +An exception has been thrown +Logic error:- detected by Newmat: UpperBandMatrix with non-zero lower band + +Trace: UpperBandMatrix::ReSize; Block N; Test. + +----------------------------------------- + +Incorrectly ReSizing symmetric band matrix + + +An exception has been thrown +Logic error:- detected by Newmat: Upper and lower band-widths not equal + +Trace: SymmetricBandMatrix::ReSize(GM); Block M; Test. + +----------------------------------------- + +ReSize CroutMatrix + + +An exception has been thrown +Logic error:- detected by Newmat: ReSize not defined for this type of matrix + +Trace: GeneralMatrix::ReSize(GM); Block O; Test. + +----------------------------------------- + + +End test + +(The following memory checks are probably not valid with all +compilers - see documentation) + +Checking for lost memory: 8142064 8142064 - ok + +Checking for lost memory: 8142064 8142064 - ok + diff --git a/.svn/pristine/34/3430202af2377cda06e1fc60e368d6ac6bf6e5c1.svn-base b/.svn/pristine/34/3430202af2377cda06e1fc60e368d6ac6bf6e5c1.svn-base new file mode 100644 index 0000000..563a30d --- /dev/null +++ b/.svn/pristine/34/3430202af2377cda06e1fc60e368d6ac6bf6e5c1.svn-base @@ -0,0 +1,1257 @@ +/* +This is a Optical-Character-Recognition program +Copyright (C) 2000-2007 Joerg Schulenburg + + The character codes in this file are Copyright (c) 1991-1999 Unicode, Inc. + All Rights reserved. + + This file is provided as-is by Unicode, Inc. (The Unicode Consortium). + No claims are made as to fitness for any particular purpose. No + warranties of any kind are expressed or implied. The recipient + agrees to determine applicability of information provided. If this + file has been provided on optical media by Unicode, Inc., the sole + remedy for any claim will be exchange of defective media within 90 + days of receipt. + + Unicode, Inc. hereby grants the right to freely use the information + supplied in this file in the creation of products supporting the + Unicode Standard, and to make copies of this file in any form for + internal or external distribution as long as this notice remains + attached. + +For the rest of the file, the following applies: + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + see README for EMAIL-address + */ + +/* + Only the codes judged necessary by the developers are present in this + file. It conforms with MES-1. You'll find also Greek characters, + mathematical symbols and some extra symbols. + + Use the following regular expression to help add new codes from the + Unicode data files: ([\w\s]*);([\w\s]*);[^\n]* +*/ + +#ifndef G_UNICODE_H +#define G_UNICODE_H + +#include + +enum format { + ISO8859_1, TeX, HTML, XML, SGML, UTF8, ASCII +}; +typedef enum format FORMAT; + +/* + * Prototypes + */ +wchar_t compose(wchar_t main, wchar_t modifier); +const char *decode(wchar_t c, FORMAT type); + +/* + * Unicode codes + */ + +/* E000-F8FF are for private use. We'll reserve E000-E0FF by now. */ +/* the next line isnt proper, but was the easiest way to fix a problem */ +#ifndef UNKNOWN +#define UNKNOWN 0xE000 +#endif +#define PICTURE 0xE001 +#define HEADER_FILE 0xE010 + +/* most codes 0x00-0x1F are not needed, but we provide them anyway. U0000 had + the name changed from NULL to UNICODE_NULL to avoid conflicts. */ +#define UNICODE_NULL 0x0000 +#define START_OF_HEADING 0x0001 +#define START_OF_TEXT 0x0002 +#define END_OF_TEXT 0x0003 +#define END_OF_TRANSMISSION 0x0004 +#define ENQUIRY 0x0005 +#define ACKNOWLEDGE 0x0006 +#define BELL 0x0007 +#define BACKSPACE 0x0008 +#define HORIZONTAL_TABULATION 0x0009 +#define LINE_FEED 0x000A +#define VERTICAL_TABULATION 0x000B +#define FORM_FEED 0x000C +#define CARRIAGE_RETURN 0x000D +#define SHIFT_OUT 0x000E +#define SHIFT_IN 0x000F +#define DATA_LINK_ESCAPE 0x0010 +#define DEVICE_CONTROL_ONE 0x0011 +#define DEVICE_CONTROL_TWO 0x0012 +#define DEVICE_CONTROL_THREE 0x0013 +#define DEVICE_CONTROL_FOUR 0x0014 +#define NEGATIVE_ACKNOWLEDGE 0x0015 +#define SYNCHRONOUS_IDLE 0x0016 +#define END_OF_TRANSMISSION_BLOCK 0x0017 +#define CANCEL 0x0018 +#define END_OF_MEDIUM 0x0019 +#define SUBSTITUTE 0x001A +#define ESCAPE 0x001B +#define FILE_SEPARATOR 0x001C +#define GROUP_SEPARATOR 0x001D +#define RECORD_SEPARATOR 0x001E +#define UNIT_SEPARATOR 0x001F + +/* ASCII */ +#define SPACE 0x0020 +#define EXCLAMATION_MARK 0x0021 +#define QUOTATION_MARK 0x0022 +#define NUMBER_SIGN 0x0023 +#define DOLLAR_SIGN 0x0024 +#define PERCENT_SIGN 0x0025 +#define AMPERSAND 0x0026 +#define APOSTROPHE 0x0027 +#define LEFT_PARENTHESIS 0x0028 +#define RIGHT_PARENTHESIS 0x0029 +#define ASTERISK 0x002A +#define PLUS_SIGN 0x002B +#define COMMA 0x002C +#define HYPHEN_MINUS 0x002D +#define FULL_STOP 0x002E +#define SOLIDUS 0x002F +#define DIGIT_ZERO 0x0030 +#define DIGIT_ONE 0x0031 +#define DIGIT_TWO 0x0032 +#define DIGIT_THREE 0x0033 +#define DIGIT_FOUR 0x0034 +#define DIGIT_FIVE 0x0035 +#define DIGIT_SIX 0x0036 +#define DIGIT_SEVEN 0x0037 +#define DIGIT_EIGHT 0x0038 +#define DIGIT_NINE 0x0039 +#define COLON 0x003A +#define SEMICOLON 0x003B +#define LESS_THAN_SIGN 0x003C +#define EQUALS_SIGN 0x003D +#define GREATER_THAN_SIGN 0x003E +#define QUESTION_MARK 0x003F +#define COMMERCIAL_AT 0x0040 +#define LATIN_CAPITAL_LETTER_A 0x0041 +#define LATIN_CAPITAL_LETTER_B 0x0042 +#define LATIN_CAPITAL_LETTER_C 0x0043 +#define LATIN_CAPITAL_LETTER_D 0x0044 +#define LATIN_CAPITAL_LETTER_E 0x0045 +#define LATIN_CAPITAL_LETTER_F 0x0046 +#define LATIN_CAPITAL_LETTER_G 0x0047 +#define LATIN_CAPITAL_LETTER_H 0x0048 +#define LATIN_CAPITAL_LETTER_I 0x0049 +#define LATIN_CAPITAL_LETTER_J 0x004A +#define LATIN_CAPITAL_LETTER_K 0x004B +#define LATIN_CAPITAL_LETTER_L 0x004C +#define LATIN_CAPITAL_LETTER_M 0x004D +#define LATIN_CAPITAL_LETTER_N 0x004E +#define LATIN_CAPITAL_LETTER_O 0x004F +#define LATIN_CAPITAL_LETTER_P 0x0050 +#define LATIN_CAPITAL_LETTER_Q 0x0051 +#define LATIN_CAPITAL_LETTER_R 0x0052 +#define LATIN_CAPITAL_LETTER_S 0x0053 +#define LATIN_CAPITAL_LETTER_T 0x0054 +#define LATIN_CAPITAL_LETTER_U 0x0055 +#define LATIN_CAPITAL_LETTER_V 0x0056 +#define LATIN_CAPITAL_LETTER_W 0x0057 +#define LATIN_CAPITAL_LETTER_X 0x0058 +#define LATIN_CAPITAL_LETTER_Y 0x0059 +#define LATIN_CAPITAL_LETTER_Z 0x005A +#define LEFT_SQUARE_BRACKET 0x005B +#define REVERSE_SOLIDUS 0x005C +#define RIGHT_SQUARE_BRACKET 0x005D +#define CIRCUMFLEX_ACCENT 0x005E +#define LOW_LINE 0x005F +#define GRAVE_ACCENT 0x0060 +#define LATIN_SMALL_LETTER_A 0x0061 +#define LATIN_SMALL_LETTER_B 0x0062 +#define LATIN_SMALL_LETTER_C 0x0063 +#define LATIN_SMALL_LETTER_D 0x0064 +#define LATIN_SMALL_LETTER_E 0x0065 +#define LATIN_SMALL_LETTER_F 0x0066 +#define LATIN_SMALL_LETTER_G 0x0067 +#define LATIN_SMALL_LETTER_H 0x0068 +#define LATIN_SMALL_LETTER_I 0x0069 +#define LATIN_SMALL_LETTER_J 0x006A +#define LATIN_SMALL_LETTER_K 0x006B +#define LATIN_SMALL_LETTER_L 0x006C +#define LATIN_SMALL_LETTER_M 0x006D +#define LATIN_SMALL_LETTER_N 0x006E +#define LATIN_SMALL_LETTER_O 0x006F +#define LATIN_SMALL_LETTER_P 0x0070 +#define LATIN_SMALL_LETTER_Q 0x0071 +#define LATIN_SMALL_LETTER_R 0x0072 +#define LATIN_SMALL_LETTER_S 0x0073 +#define LATIN_SMALL_LETTER_T 0x0074 +#define LATIN_SMALL_LETTER_U 0x0075 +#define LATIN_SMALL_LETTER_V 0x0076 +#define LATIN_SMALL_LETTER_W 0x0077 +#define LATIN_SMALL_LETTER_X 0x0078 +#define LATIN_SMALL_LETTER_Y 0x0079 +#define LATIN_SMALL_LETTER_Z 0x007A +#define LEFT_CURLY_BRACKET 0x007B +#define VERTICAL_LINE 0x007C +#define RIGHT_CURLY_BRACKET 0x007D +#define TILDE 0x007E + +/* codes 0x7F-0xBF are not needed */ +#define NO_BREAK_SPACE 0x00A0 +#define INVERTED_EXCLAMATION_MARK 0x00A1 +#define CENT_SIGN 0x00A2 +#define POUND_SIGN 0x00A3 +#define CURRENCY_SIGN 0x00A4 +#define YEN_SIGN 0x00A5 +#define BROKEN_BAR 0x00A6 +#define SECTION_SIGN 0x00A7 +#define DIAERESIS 0x00A8 +#define COPYRIGHT_SIGN 0x00A9 +#define FEMININE_ORDINAL_INDICATOR 0x00AA +#define LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00AB +#define NOT_SIGN 0x00AC +#define SOFT_HYPHEN 0x00AD +#define REGISTERED_SIGN 0x00AE +#define MACRON 0x00AF +#define DEGREE_SIGN 0x00B0 +#define PLUS_MINUS_SIGN 0x00B1 +#define SUPERSCRIPT_TWO 0x00B2 +#define SUPERSCRIPT_THREE 0x00B3 +#define ACUTE_ACCENT 0x00B4 +#define MICRO_SIGN 0x00B5 +#define PILCROW_SIGN 0x00B6 +#define MIDDLE_DOT 0x00B7 +#define CEDILLA 0x00B8 +#define SUPERSCRIPT_ONE 0x00B9 +#define MASCULINE_ORDINAL_INDICATOR 0x00BA +#define RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00BB +#define VULGAR_FRACTION_ONE_QUARTER 0x00BC +#define VULGAR_FRACTION_ONE_HALF 0x00BD +#define VULGAR_FRACTION_THREE_QUARTERS 0x00BE +#define INVERTED_QUESTION_MARK 0x00BF +#define LATIN_CAPITAL_LETTER_A_WITH_GRAVE 0x00C0 +#define LATIN_CAPITAL_LETTER_A_WITH_ACUTE 0x00C1 +#define LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX 0x00C2 +#define LATIN_CAPITAL_LETTER_A_WITH_TILDE 0x00C3 +#define LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS 0x00C4 +#define LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE 0x00C5 +#define LATIN_CAPITAL_LETTER_AE 0x00C6 +#define LATIN_CAPITAL_LETTER_C_WITH_CEDILLA 0x00C7 +#define LATIN_CAPITAL_LETTER_E_WITH_GRAVE 0x00C8 +#define LATIN_CAPITAL_LETTER_E_WITH_ACUTE 0x00C9 +#define LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX 0x00CA +#define LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS 0x00CB +#define LATIN_CAPITAL_LETTER_I_WITH_GRAVE 0x00CC +#define LATIN_CAPITAL_LETTER_I_WITH_ACUTE 0x00CD +#define LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX 0x00CE +#define LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS 0x00CF +#define LATIN_CAPITAL_LETTER_ETH 0x00D0 +#define LATIN_CAPITAL_LETTER_N_WITH_TILDE 0x00D1 +#define LATIN_CAPITAL_LETTER_O_WITH_GRAVE 0x00D2 +#define LATIN_CAPITAL_LETTER_O_WITH_ACUTE 0x00D3 +#define LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX 0x00D4 +#define LATIN_CAPITAL_LETTER_O_WITH_TILDE 0x00D5 +#define LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS 0x00D6 +#define MULTIPLICATION_SIGN 0x00D7 +#define LATIN_CAPITAL_LETTER_O_WITH_STROKE 0x00D8 +#define LATIN_CAPITAL_LETTER_U_WITH_GRAVE 0x00D9 +#define LATIN_CAPITAL_LETTER_U_WITH_ACUTE 0x00DA +#define LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX 0x00DB +#define LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS 0x00DC +#define LATIN_CAPITAL_LETTER_Y_WITH_ACUTE 0x00DD +#define LATIN_CAPITAL_LETTER_THORN 0x00DE +#define LATIN_SMALL_LETTER_SHARP_S 0x00DF +#define LATIN_SMALL_LETTER_A_WITH_GRAVE 0x00E0 +#define LATIN_SMALL_LETTER_A_WITH_ACUTE 0x00E1 +#define LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX 0x00E2 +#define LATIN_SMALL_LETTER_A_WITH_TILDE 0x00E3 +#define LATIN_SMALL_LETTER_A_WITH_DIAERESIS 0x00E4 +#define LATIN_SMALL_LETTER_A_WITH_RING_ABOVE 0x00E5 +#define LATIN_SMALL_LETTER_AE 0x00E6 +#define LATIN_SMALL_LETTER_C_WITH_CEDILLA 0x00E7 +#define LATIN_SMALL_LETTER_E_WITH_GRAVE 0x00E8 +#define LATIN_SMALL_LETTER_E_WITH_ACUTE 0x00E9 +#define LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX 0x00EA +#define LATIN_SMALL_LETTER_E_WITH_DIAERESIS 0x00EB +#define LATIN_SMALL_LETTER_I_WITH_GRAVE 0x00EC +#define LATIN_SMALL_LETTER_I_WITH_ACUTE 0x00ED +#define LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX 0x00EE +#define LATIN_SMALL_LETTER_I_WITH_DIAERESIS 0x00EF +#define LATIN_SMALL_LETTER_ETH 0x00F0 +#define LATIN_SMALL_LETTER_N_WITH_TILDE 0x00F1 +#define LATIN_SMALL_LETTER_O_WITH_GRAVE 0x00F2 +#define LATIN_SMALL_LETTER_O_WITH_ACUTE 0x00F3 +#define LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX 0x00F4 +#define LATIN_SMALL_LETTER_O_WITH_TILDE 0x00F5 +#define LATIN_SMALL_LETTER_O_WITH_DIAERESIS 0x00F6 +#define DIVISION_SIGN 0x00F7 +#define LATIN_SMALL_LETTER_O_WITH_STROKE 0x00F8 +#define LATIN_SMALL_LETTER_U_WITH_GRAVE 0x00F9 +#define LATIN_SMALL_LETTER_U_WITH_ACUTE 0x00FA +#define LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX 0x00FB +#define LATIN_SMALL_LETTER_U_WITH_DIAERESIS 0x00FC +#define LATIN_SMALL_LETTER_Y_WITH_ACUTE 0x00FD +#define LATIN_SMALL_LETTER_THORN 0x00FE +#define LATIN_SMALL_LETTER_Y_WITH_DIAERESIS 0x00FF + +/* latin extended-A */ +#define LATIN_CAPITAL_LETTER_A_WITH_MACRON 0x0100 +#define LATIN_SMALL_LETTER_A_WITH_MACRON 0x0101 +#define LATIN_CAPITAL_LETTER_A_WITH_BREVE 0x0102 +#define LATIN_SMALL_LETTER_A_WITH_BREVE 0x0103 +#define LATIN_CAPITAL_LETTER_A_WITH_OGONEK 0x0104 +#define LATIN_SMALL_LETTER_A_WITH_OGONEK 0x0105 +#define LATIN_CAPITAL_LETTER_C_WITH_ACUTE 0x0106 +#define LATIN_SMALL_LETTER_C_WITH_ACUTE 0x0107 +#define LATIN_CAPITAL_LETTER_C_WITH_CIRCUMFLEX 0x0108 +#define LATIN_SMALL_LETTER_C_WITH_CIRCUMFLEX 0x0109 +#define LATIN_CAPITAL_LETTER_C_WITH_DOT_ABOVE 0x010A +#define LATIN_SMALL_LETTER_C_WITH_DOT_ABOVE 0x010B +#define LATIN_CAPITAL_LETTER_C_WITH_CARON 0x010C +#define LATIN_SMALL_LETTER_C_WITH_CARON 0x010D +#define LATIN_CAPITAL_LETTER_D_WITH_CARON 0x010E +#define LATIN_SMALL_LETTER_D_WITH_CARON 0x010F +#define LATIN_CAPITAL_LETTER_D_WITH_STROKE 0x0110 +#define LATIN_SMALL_LETTER_D_WITH_STROKE 0x0111 +#define LATIN_CAPITAL_LETTER_E_WITH_MACRON 0x0112 +#define LATIN_SMALL_LETTER_E_WITH_MACRON 0x0113 +#define LATIN_CAPITAL_LETTER_E_WITH_BREVE 0x0114 +#define LATIN_SMALL_LETTER_E_WITH_BREVE 0x0115 +#define LATIN_CAPITAL_LETTER_E_WITH_DOT_ABOVE 0x0116 +#define LATIN_SMALL_LETTER_E_WITH_DOT_ABOVE 0x0117 +#define LATIN_CAPITAL_LETTER_E_WITH_OGONEK 0x0118 +#define LATIN_SMALL_LETTER_E_WITH_OGONEK 0x0119 +#define LATIN_CAPITAL_LETTER_E_WITH_CARON 0x011A +#define LATIN_SMALL_LETTER_E_WITH_CARON 0x011B +#define LATIN_CAPITAL_LETTER_G_WITH_CIRCUMFLEX 0x011C +#define LATIN_SMALL_LETTER_G_WITH_CIRCUMFLEX 0x011D +#define LATIN_CAPITAL_LETTER_G_WITH_BREVE 0x011E +#define LATIN_SMALL_LETTER_G_WITH_BREVE 0x011F +#define LATIN_CAPITAL_LETTER_G_WITH_DOT_ABOVE 0x0120 +#define LATIN_SMALL_LETTER_G_WITH_DOT_ABOVE 0x0121 +#define LATIN_CAPITAL_LETTER_G_WITH_CEDILLA 0x0122 +#define LATIN_SMALL_LETTER_G_WITH_CEDILLA 0x0123 +#define LATIN_CAPITAL_LETTER_H_WITH_CIRCUMFLEX 0x0124 +#define LATIN_SMALL_LETTER_H_WITH_CIRCUMFLEX 0x0125 +#define LATIN_CAPITAL_LETTER_H_WITH_STROKE 0x0126 +#define LATIN_SMALL_LETTER_H_WITH_STROKE 0x0127 +#define LATIN_CAPITAL_LETTER_I_WITH_TILDE 0x0128 +#define LATIN_SMALL_LETTER_I_WITH_TILDE 0x0129 +#define LATIN_CAPITAL_LETTER_I_WITH_MACRON 0x012A +#define LATIN_SMALL_LETTER_I_WITH_MACRON 0x012B +#define LATIN_CAPITAL_LETTER_I_WITH_BREVE 0x012C +#define LATIN_SMALL_LETTER_I_WITH_BREVE 0x012D +#define LATIN_CAPITAL_LETTER_I_WITH_OGONEK 0x012E +#define LATIN_SMALL_LETTER_I_WITH_OGONEK 0x012F +#define LATIN_CAPITAL_LETTER_I_WITH_DOT_ABOVE 0x0130 +#define LATIN_SMALL_LETTER_DOTLESS_I 0x0131 +#define LATIN_CAPITAL_LIGATURE_IJ 0x0132 +#define LATIN_SMALL_LIGATURE_IJ 0x0133 +#define LATIN_CAPITAL_LETTER_J_WITH_CIRCUMFLEX 0x0134 +#define LATIN_SMALL_LETTER_J_WITH_CIRCUMFLEX 0x0135 +#define LATIN_CAPITAL_LETTER_K_WITH_CEDILLA 0x0136 +#define LATIN_SMALL_LETTER_K_WITH_CEDILLA 0x0137 +#define LATIN_SMALL_LETTER_KRA 0x0138 +#define LATIN_CAPITAL_LETTER_L_WITH_ACUTE 0x0139 +#define LATIN_SMALL_LETTER_L_WITH_ACUTE 0x013A +#define LATIN_CAPITAL_LETTER_L_WITH_CEDILLA 0x013B +#define LATIN_SMALL_LETTER_L_WITH_CEDILLA 0x013C +#define LATIN_CAPITAL_LETTER_L_WITH_CARON 0x013D +#define LATIN_SMALL_LETTER_L_WITH_CARON 0x013E +#define LATIN_CAPITAL_LETTER_L_WITH_MIDDLE_DOT 0x013F +#define LATIN_SMALL_LETTER_L_WITH_MIDDLE_DOT 0x0140 +#define LATIN_CAPITAL_LETTER_L_WITH_STROKE 0x0141 +#define LATIN_SMALL_LETTER_L_WITH_STROKE 0x0142 +#define LATIN_CAPITAL_LETTER_N_WITH_ACUTE 0x0143 +#define LATIN_SMALL_LETTER_N_WITH_ACUTE 0x0144 +#define LATIN_CAPITAL_LETTER_N_WITH_CEDILLA 0x0145 +#define LATIN_SMALL_LETTER_N_WITH_CEDILLA 0x0146 +#define LATIN_CAPITAL_LETTER_N_WITH_CARON 0x0147 +#define LATIN_SMALL_LETTER_N_WITH_CARON 0x0148 +#define LATIN_SMALL_LETTER_N_PRECEDED_BY_APOSTROPHE 0x0149 +#define LATIN_CAPITAL_LETTER_ENG 0x014A +#define LATIN_SMALL_LETTER_ENG 0x014B +#define LATIN_CAPITAL_LETTER_O_WITH_MACRON 0x014C +#define LATIN_SMALL_LETTER_O_WITH_MACRON 0x014D +#define LATIN_CAPITAL_LETTER_O_WITH_BREVE 0x014E +#define LATIN_SMALL_LETTER_O_WITH_BREVE 0x014F +#define LATIN_CAPITAL_LETTER_O_WITH_DOUBLE_ACUTE 0x0150 +#define LATIN_SMALL_LETTER_O_WITH_DOUBLE_ACUTE 0x0151 +#define LATIN_CAPITAL_LIGATURE_OE 0x0152 +#define LATIN_SMALL_LIGATURE_OE 0x0153 +#define LATIN_CAPITAL_LETTER_R_WITH_ACUTE 0x0154 +#define LATIN_SMALL_LETTER_R_WITH_ACUTE 0x0155 +#define LATIN_CAPITAL_LETTER_R_WITH_CEDILLA 0x0156 +#define LATIN_SMALL_LETTER_R_WITH_CEDILLA 0x0157 +#define LATIN_CAPITAL_LETTER_R_WITH_CARON 0x0158 +#define LATIN_SMALL_LETTER_R_WITH_CARON 0x0159 +#define LATIN_CAPITAL_LETTER_S_WITH_ACUTE 0x015A +#define LATIN_SMALL_LETTER_S_WITH_ACUTE 0x015B +#define LATIN_CAPITAL_LETTER_S_WITH_CIRCUMFLEX 0x015C +#define LATIN_SMALL_LETTER_S_WITH_CIRCUMFLEX 0x015D +#define LATIN_CAPITAL_LETTER_S_WITH_CEDILLA 0x015E +#define LATIN_SMALL_LETTER_S_WITH_CEDILLA 0x015F +#define LATIN_CAPITAL_LETTER_S_WITH_CARON 0x0160 +#define LATIN_SMALL_LETTER_S_WITH_CARON 0x0161 +#define LATIN_CAPITAL_LETTER_T_WITH_CEDILLA 0x0162 +#define LATIN_SMALL_LETTER_T_WITH_CEDILLA 0x0163 +#define LATIN_CAPITAL_LETTER_T_WITH_CARON 0x0164 +#define LATIN_SMALL_LETTER_T_WITH_CARON 0x0165 +#define LATIN_CAPITAL_LETTER_T_WITH_STROKE 0x0166 +#define LATIN_SMALL_LETTER_T_WITH_STROKE 0x0167 +#define LATIN_CAPITAL_LETTER_U_WITH_TILDE 0x0168 +#define LATIN_SMALL_LETTER_U_WITH_TILDE 0x0169 +#define LATIN_CAPITAL_LETTER_U_WITH_MACRON 0x016A +#define LATIN_SMALL_LETTER_U_WITH_MACRON 0x016B +#define LATIN_CAPITAL_LETTER_U_WITH_BREVE 0x016C +#define LATIN_SMALL_LETTER_U_WITH_BREVE 0x016D +#define LATIN_CAPITAL_LETTER_U_WITH_RING_ABOVE 0x016E +#define LATIN_SMALL_LETTER_U_WITH_RING_ABOVE 0x016F +#define LATIN_CAPITAL_LETTER_U_WITH_DOUBLE_ACUTE 0x0170 +#define LATIN_SMALL_LETTER_U_WITH_DOUBLE_ACUTE 0x0171 +#define LATIN_CAPITAL_LETTER_U_WITH_OGONEK 0x0172 +#define LATIN_SMALL_LETTER_U_WITH_OGONEK 0x0173 +#define LATIN_CAPITAL_LETTER_W_WITH_CIRCUMFLEX 0x0174 +#define LATIN_SMALL_LETTER_W_WITH_CIRCUMFLEX 0x0175 +#define LATIN_CAPITAL_LETTER_Y_WITH_CIRCUMFLEX 0x0176 +#define LATIN_SMALL_LETTER_Y_WITH_CIRCUMFLEX 0x0177 +#define LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS 0x0178 +#define LATIN_CAPITAL_LETTER_Z_WITH_ACUTE 0x0179 +#define LATIN_SMALL_LETTER_Z_WITH_ACUTE 0x017A +#define LATIN_CAPITAL_LETTER_Z_WITH_DOT_ABOVE 0x017B +#define LATIN_SMALL_LETTER_Z_WITH_DOT_ABOVE 0x017C +#define LATIN_CAPITAL_LETTER_Z_WITH_CARON 0x017D +#define LATIN_SMALL_LETTER_Z_WITH_CARON 0x017E +#define LATIN_SMALL_LETTER_LONG_S 0x017F + +/* latin extended B */ +#define LATIN_SMALL_LETTER_B_WITH_STROKE 0x0180 +#define LATIN_CAPITAL_LETTER_B_WITH_HOOK 0x0181 +#define LATIN_CAPITAL_LETTER_B_WITH_TOPBAR 0x0182 +#define LATIN_SMALL_LETTER_B_WITH_TOPBAR 0x0183 +#define LATIN_CAPITAL_LETTER_TONE_SIX 0x0184 +#define LATIN_SMALL_LETTER_TONE_SIX 0x0185 +#define LATIN_CAPITAL_LETTER_OPEN_O 0x0186 +#define LATIN_CAPITAL_LETTER_C_WITH_HOOK 0x0187 +#define LATIN_SMALL_LETTER_C_WITH_HOOK 0x0188 +#define LATIN_CAPITAL_LETTER_AFRICAN_D 0x0189 +#define LATIN_CAPITAL_LETTER_D_WITH_HOOK 0x018A +#define LATIN_CAPITAL_LETTER_D_WITH_TOPBAR 0x018B +#define LATIN_SMALL_LETTER_D_WITH_TOPBAR 0x018C +#define LATIN_SMALL_LETTER_TURNED_DELTA 0x018D +#define LATIN_CAPITAL_LETTER_REVERSED_E 0x018E +#define LATIN_CAPITAL_LETTER_SCHWA 0x018F +#define LATIN_CAPITAL_LETTER_OPEN_E 0x0190 +#define LATIN_CAPITAL_LETTER_F_WITH_HOOK 0x0191 +#define LATIN_SMALL_LETTER_F_WITH_HOOK 0x0192 +#define LATIN_CAPITAL_LETTER_G_WITH_HOOK 0x0193 +#define LATIN_CAPITAL_LETTER_GAMMA 0x0194 +#define LATIN_SMALL_LETTER_HV 0x0195 +#define LATIN_CAPITAL_LETTER_IOTA 0x0196 +#define LATIN_CAPITAL_LETTER_I_WITH_STROKE 0x0197 +#define LATIN_CAPITAL_LETTER_K_WITH_HOOK 0x0198 +#define LATIN_SMALL_LETTER_K_WITH_HOOK 0x0199 +#define LATIN_SMALL_LETTER_L_WITH_BAR 0x019A +#define LATIN_SMALL_LETTER_LAMBDA_WITH_STROKE 0x019B +#define LATIN_CAPITAL_LETTER_TURNED_M 0x019C +#define LATIN_CAPITAL_LETTER_N_WITH_LEFT_HOOK 0x019D +#define LATIN_SMALL_LETTER_N_WITH_LONG_RIGHT_LEG 0x019E +#define LATIN_CAPITAL_LETTER_O_WITH_MIDDLE_TILDE 0x019F +#define LATIN_CAPITAL_LETTER_O_WITH_HORN 0x01A0 +#define LATIN_SMALL_LETTER_O_WITH_HORN 0x01A1 +#define LATIN_CAPITAL_LETTER_OI 0x01A2 +#define LATIN_SMALL_LETTER_OI 0x01A3 +#define LATIN_CAPITAL_LETTER_P_WITH_HOOK 0x01A4 +#define LATIN_SMALL_LETTER_P_WITH_HOOK 0x01A5 +#define LATIN_LETTER_YR 0x01A6 +#define LATIN_CAPITAL_LETTER_TONE_TWO 0x01A7 +#define LATIN_SMALL_LETTER_TONE_TWO 0x01A8 +#define LATIN_CAPITAL_LETTER_ESH 0x01A9 +#define LATIN_LETTER_REVERSED_ESH_LOOP 0x01AA +#define LATIN_SMALL_LETTER_T_WITH_PALATAL_HOOK 0x01AB +#define LATIN_CAPITAL_LETTER_T_WITH_HOOK 0x01AC +#define LATIN_SMALL_LETTER_T_WITH_HOOK 0x01AD +#define LATIN_CAPITAL_LETTER_T_WITH_RETROFLEX_HOOK 0x01AE +#define LATIN_CAPITAL_LETTER_U_WITH_HORN 0x01AF +#define LATIN_SMALL_LETTER_U_WITH_HORN 0x01B0 +#define LATIN_CAPITAL_LETTER_UPSILON 0x01B1 +#define LATIN_CAPITAL_LETTER_V_WITH_HOOK 0x01B2 +#define LATIN_CAPITAL_LETTER_Y_WITH_HOOK 0x01B3 +#define LATIN_SMALL_LETTER_Y_WITH_HOOK 0x01B4 +#define LATIN_CAPITAL_LETTER_Z_WITH_STROKE 0x01B5 +#define LATIN_SMALL_LETTER_Z_WITH_STROKE 0x01B6 +#define LATIN_CAPITAL_LETTER_EZH 0x01B7 +#define LATIN_CAPITAL_LETTER_EZH_REVERSED 0x01B8 +#define LATIN_SMALL_LETTER_EZH_REVERSED 0x01B9 +#define LATIN_SMALL_LETTER_EZH_WITH_TAIL 0x01BA +#define LATIN_LETTER_TWO_WITH_STROKE 0x01BB +#define LATIN_CAPITAL_LETTER_TONE_FIVE 0x01BC +#define LATIN_SMALL_LETTER_TONE_FIVE 0x01BD +#define LATIN_LETTER_INVERTED_GLOTTAL_STOP_WITH_STROKE 0x01BE +#define LATIN_LETTER_WYNN 0x01BF +#define LATIN_LETTER_DENTAL_CLICK 0x01C0 +#define LATIN_LETTER_LATERAL_CLICK 0x01C1 +#define LATIN_LETTER_ALVEOLAR_CLICK 0x01C2 +#define LATIN_LETTER_RETROFLEX_CLICK 0x01C3 +#define LATIN_CAPITAL_LETTER_DZ_WITH_CARON 0x01C4 +#define LATIN_CAPITAL_LETTER_D_WITH_SMALL_LETTER_Z_WITH_CARON 0x01C5 +#define LATIN_SMALL_LETTER_DZ_WITH_CARON 0x01C6 +#define LATIN_CAPITAL_LETTER_LJ 0x01C7 +#define LATIN_CAPITAL_LETTER_L_WITH_SMALL_LETTER_J 0x01C8 +#define LATIN_SMALL_LETTER_LJ 0x01C9 +#define LATIN_CAPITAL_LETTER_NJ 0x01CA +#define LATIN_CAPITAL_LETTER_N_WITH_SMALL_LETTER_J 0x01CB +#define LATIN_SMALL_LETTER_NJ 0x01CC +#define LATIN_CAPITAL_LETTER_A_WITH_CARON 0x01CD +#define LATIN_SMALL_LETTER_A_WITH_CARON 0x01CE +#define LATIN_CAPITAL_LETTER_I_WITH_CARON 0x01CF +#define LATIN_SMALL_LETTER_I_WITH_CARON 0x01D0 +#define LATIN_CAPITAL_LETTER_O_WITH_CARON 0x01D1 +#define LATIN_SMALL_LETTER_O_WITH_CARON 0x01D2 +#define LATIN_CAPITAL_LETTER_U_WITH_CARON 0x01D3 +#define LATIN_SMALL_LETTER_U_WITH_CARON 0x01D4 +#define LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS_AND_MACRON 0x01D5 +#define LATIN_SMALL_LETTER_U_WITH_DIAERESIS_AND_MACRON 0x01D6 +#define LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS_AND_ACUTE 0x01D7 +#define LATIN_SMALL_LETTER_U_WITH_DIAERESIS_AND_ACUTE 0x01D8 +#define LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS_AND_CARON 0x01D9 +#define LATIN_SMALL_LETTER_U_WITH_DIAERESIS_AND_CARON 0x01DA +#define LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS_AND_GRAVE 0x01DB +#define LATIN_SMALL_LETTER_U_WITH_DIAERESIS_AND_GRAVE 0x01DC +#define LATIN_SMALL_LETTER_TURNED_E 0x01DD +#define LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS_AND_MACRON 0x01DE +#define LATIN_SMALL_LETTER_A_WITH_DIAERESIS_AND_MACRON 0x01DF +#define LATIN_CAPITAL_LETTER_A_WITH_DOT_ABOVE_AND_MACRON 0x01E0 +#define LATIN_SMALL_LETTER_A_WITH_DOT_ABOVE_AND_MACRON 0x01E1 +#define LATIN_CAPITAL_LETTER_AE_WITH_MACRON 0x01E2 +#define LATIN_SMALL_LETTER_AE_WITH_MACRON 0x01E3 +#define LATIN_CAPITAL_LETTER_G_WITH_STROKE 0x01E4 +#define LATIN_SMALL_LETTER_G_WITH_STROKE 0x01E5 +#define LATIN_CAPITAL_LETTER_G_WITH_CARON 0x01E6 +#define LATIN_SMALL_LETTER_G_WITH_CARON 0x01E7 +#define LATIN_CAPITAL_LETTER_K_WITH_CARON 0x01E8 +#define LATIN_SMALL_LETTER_K_WITH_CARON 0x01E9 +#define LATIN_CAPITAL_LETTER_O_WITH_OGONEK 0x01EA +#define LATIN_SMALL_LETTER_O_WITH_OGONEK 0x01EB +#define LATIN_CAPITAL_LETTER_O_WITH_OGONEK_AND_MACRON 0x01EC +#define LATIN_SMALL_LETTER_O_WITH_OGONEK_AND_MACRON 0x01ED +#define LATIN_CAPITAL_LETTER_EZH_WITH_CARON 0x01EE +#define LATIN_SMALL_LETTER_EZH_WITH_CARON 0x01EF +#define LATIN_SMALL_LETTER_J_WITH_CARON 0x01F0 +#define LATIN_CAPITAL_LETTER_DZ 0x01F1 +#define LATIN_CAPITAL_LETTER_D_WITH_SMALL_LETTER_Z 0x01F2 +#define LATIN_SMALL_LETTER_DZ 0x01F3 +#define LATIN_CAPITAL_LETTER_G_WITH_ACUTE 0x01F4 +#define LATIN_SMALL_LETTER_G_WITH_ACUTE 0x01F5 +#define LATIN_CAPITAL_LETTER_HWAIR 0x01F6 +#define LATIN_CAPITAL_LETTER_WYNN 0x01F7 +#define LATIN_CAPITAL_LETTER_N_WITH_GRAVE 0x01F8 +#define LATIN_SMALL_LETTER_N_WITH_GRAVE 0x01F9 +#define LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE_AND_ACUTE 0x01FA +#define LATIN_SMALL_LETTER_A_WITH_RING_ABOVE_AND_ACUTE 0x01FB +#define LATIN_CAPITAL_LETTER_AE_WITH_ACUTE 0x01FC +#define LATIN_SMALL_LETTER_AE_WITH_ACUTE 0x01FD +#define LATIN_CAPITAL_LETTER_O_WITH_STROKE_AND_ACUTE 0x01FE +#define LATIN_SMALL_LETTER_O_WITH_STROKE_AND_ACUTE 0x01FF +#define LATIN_CAPITAL_LETTER_A_WITH_DOUBLE_GRAVE 0x0200 +#define LATIN_SMALL_LETTER_A_WITH_DOUBLE_GRAVE 0x0201 +#define LATIN_CAPITAL_LETTER_A_WITH_INVERTED_BREVE 0x0202 +#define LATIN_SMALL_LETTER_A_WITH_INVERTED_BREVE 0x0203 +#define LATIN_CAPITAL_LETTER_E_WITH_DOUBLE_GRAVE 0x0204 +#define LATIN_SMALL_LETTER_E_WITH_DOUBLE_GRAVE 0x0205 +#define LATIN_CAPITAL_LETTER_E_WITH_INVERTED_BREVE 0x0206 +#define LATIN_SMALL_LETTER_E_WITH_INVERTED_BREVE 0x0207 +#define LATIN_CAPITAL_LETTER_I_WITH_DOUBLE_GRAVE 0x0208 +#define LATIN_SMALL_LETTER_I_WITH_DOUBLE_GRAVE 0x0209 +#define LATIN_CAPITAL_LETTER_I_WITH_INVERTED_BREVE 0x020A +#define LATIN_SMALL_LETTER_I_WITH_INVERTED_BREVE 0x020B +#define LATIN_CAPITAL_LETTER_O_WITH_DOUBLE_GRAVE 0x020C +#define LATIN_SMALL_LETTER_O_WITH_DOUBLE_GRAVE 0x020D +#define LATIN_CAPITAL_LETTER_O_WITH_INVERTED_BREVE 0x020E +#define LATIN_SMALL_LETTER_O_WITH_INVERTED_BREVE 0x020F +#define LATIN_CAPITAL_LETTER_R_WITH_DOUBLE_GRAVE 0x0210 +#define LATIN_SMALL_LETTER_R_WITH_DOUBLE_GRAVE 0x0211 +#define LATIN_CAPITAL_LETTER_R_WITH_INVERTED_BREVE 0x0212 +#define LATIN_SMALL_LETTER_R_WITH_INVERTED_BREVE 0x0213 +#define LATIN_CAPITAL_LETTER_U_WITH_DOUBLE_GRAVE 0x0214 +#define LATIN_SMALL_LETTER_U_WITH_DOUBLE_GRAVE 0x0215 +#define LATIN_CAPITAL_LETTER_U_WITH_INVERTED_BREVE 0x0216 +#define LATIN_SMALL_LETTER_U_WITH_INVERTED_BREVE 0x0217 +#define LATIN_CAPITAL_LETTER_S_WITH_COMMA_BELOW 0x0218 +#define LATIN_SMALL_LETTER_S_WITH_COMMA_BELOW 0x0219 +#define LATIN_CAPITAL_LETTER_T_WITH_COMMA_BELOW 0x021A +#define LATIN_SMALL_LETTER_T_WITH_COMMA_BELOW 0x021B +#define LATIN_CAPITAL_LETTER_YOGH 0x021C +#define LATIN_SMALL_LETTER_YOGH 0x021D +#define LATIN_CAPITAL_LETTER_H_WITH_CARON 0x021E +#define LATIN_SMALL_LETTER_H_WITH_CARON 0x021F +#define LATIN_CAPITAL_LETTER_OU 0x0222 +#define LATIN_SMALL_LETTER_OU 0x0223 +#define LATIN_CAPITAL_LETTER_Z_WITH_HOOK 0x0224 +#define LATIN_SMALL_LETTER_Z_WITH_HOOK 0x0225 +#define LATIN_CAPITAL_LETTER_A_WITH_DOT_ABOVE 0x0226 +#define LATIN_SMALL_LETTER_A_WITH_DOT_ABOVE 0x0227 +#define LATIN_CAPITAL_LETTER_E_WITH_CEDILLA 0x0228 +#define LATIN_SMALL_LETTER_E_WITH_CEDILLA 0x0229 +#define LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS_AND_MACRON 0x022A +#define LATIN_SMALL_LETTER_O_WITH_DIAERESIS_AND_MACRON 0x022B +#define LATIN_CAPITAL_LETTER_O_WITH_TILDE_AND_MACRON 0x022C +#define LATIN_SMALL_LETTER_O_WITH_TILDE_AND_MACRON 0x022D +#define LATIN_CAPITAL_LETTER_O_WITH_DOT_ABOVE 0x022E +#define LATIN_SMALL_LETTER_O_WITH_DOT_ABOVE 0x022F +#define LATIN_CAPITAL_LETTER_O_WITH_DOT_ABOVE_AND_MACRON 0x0230 +#define LATIN_SMALL_LETTER_O_WITH_DOT_ABOVE_AND_MACRON 0x0231 +#define LATIN_CAPITAL_LETTER_Y_WITH_MACRON 0x0232 +#define LATIN_SMALL_LETTER_Y_WITH_MACRON 0x0233 + +/* IPA extensions */ +#define LATIN_SMALL_LETTER_TURNED_A 0x0250 +#define LATIN_SMALL_LETTER_ALPHA 0x0251 +#define LATIN_SMALL_LETTER_TURNED_ALPHA 0x0252 +#define LATIN_SMALL_LETTER_B_WITH_HOOK 0x0253 +#define LATIN_SMALL_LETTER_OPEN_O 0x0254 +#define LATIN_SMALL_LETTER_C_WITH_CURL 0x0255 +#define LATIN_SMALL_LETTER_D_WITH_TAIL 0x0256 +#define LATIN_SMALL_LETTER_D_WITH_HOOK 0x0257 +#define LATIN_SMALL_LETTER_REVERSED_E 0x0258 +#define LATIN_SMALL_LETTER_SCHWA 0x0259 +#define LATIN_SMALL_LETTER_SCHWA_WITH_HOOK 0x025A +#define LATIN_SMALL_LETTER_OPEN_E 0x025B +#define LATIN_SMALL_LETTER_REVERSED_OPEN_E 0x025C +#define LATIN_SMALL_LETTER_REVERSED_OPEN_E_WITH_HOOK 0x025D +#define LATIN_SMALL_LETTER_CLOSED_REVERSED_OPEN_E 0x025E +#define LATIN_SMALL_LETTER_DOTLESS_J_WITH_STROKE 0x025F +#define LATIN_SMALL_LETTER_G_WITH_HOOK 0x0260 +#define LATIN_SMALL_LETTER_SCRIPT_G 0x0261 +#define LATIN_LETTER_SMALL_CAPITAL_G 0x0262 +#define LATIN_SMALL_LETTER_GAMMA 0x0263 +#define LATIN_SMALL_LETTER_RAMS_HORN 0x0264 +#define LATIN_SMALL_LETTER_TURNED_H 0x0265 +#define LATIN_SMALL_LETTER_H_WITH_HOOK 0x0266 +#define LATIN_SMALL_LETTER_HENG_WITH_HOOK 0x0267 +#define LATIN_SMALL_LETTER_I_WITH_STROKE 0x0268 +#define LATIN_SMALL_LETTER_IOTA 0x0269 +#define LATIN_LETTER_SMALL_CAPITAL_I 0x026A +#define LATIN_SMALL_LETTER_L_WITH_MIDDLE_TILDE 0x026B +#define LATIN_SMALL_LETTER_L_WITH_BELT 0x026C +#define LATIN_SMALL_LETTER_L_WITH_RETROFLEX_HOOK 0x026D +#define LATIN_SMALL_LETTER_LEZH 0x026E +#define LATIN_SMALL_LETTER_TURNED_M 0x026F +#define LATIN_SMALL_LETTER_TURNED_M_WITH_LONG_LEG 0x0270 +#define LATIN_SMALL_LETTER_M_WITH_HOOK 0x0271 +#define LATIN_SMALL_LETTER_N_WITH_LEFT_HOOK 0x0272 +#define LATIN_SMALL_LETTER_N_WITH_RETROFLEX_HOOK 0x0273 +#define LATIN_LETTER_SMALL_CAPITAL_N 0x0274 +#define LATIN_SMALL_LETTER_BARRED_O 0x0275 +#define LATIN_LETTER_SMALL_CAPITAL_OE 0x0276 +#define LATIN_SMALL_LETTER_CLOSED_OMEGA 0x0277 +#define LATIN_SMALL_LETTER_PHI 0x0278 +#define LATIN_SMALL_LETTER_TURNED_R 0x0279 +#define LATIN_SMALL_LETTER_TURNED_R_WITH_LONG_LEG 0x027A +#define LATIN_SMALL_LETTER_TURNED_R_WITH_HOOK 0x027B +#define LATIN_SMALL_LETTER_R_WITH_LONG_LEG 0x027C +#define LATIN_SMALL_LETTER_R_WITH_TAIL 0x027D +#define LATIN_SMALL_LETTER_R_WITH_FISHHOOK 0x027E +#define LATIN_SMALL_LETTER_REVERSED_R_WITH_FISHHOOK 0x027F +#define LATIN_LETTER_SMALL_CAPITAL_R 0x0280 +#define LATIN_LETTER_SMALL_CAPITAL_INVERTED_R 0x0281 +#define LATIN_SMALL_LETTER_S_WITH_HOOK 0x0282 +#define LATIN_SMALL_LETTER_ESH 0x0283 +#define LATIN_SMALL_LETTER_DOTLESS_J_WITH_STROKE_AND_HOOK 0x0284 +#define LATIN_SMALL_LETTER_SQUAT_REVERSED_ESH 0x0285 +#define LATIN_SMALL_LETTER_ESH_WITH_CURL 0x0286 +#define LATIN_SMALL_LETTER_TURNED_T 0x0287 +#define LATIN_SMALL_LETTER_T_WITH_RETROFLEX_HOOK 0x0288 +#define LATIN_SMALL_LETTER_U_BAR 0x0289 +#define LATIN_SMALL_LETTER_UPSILON 0x028A +#define LATIN_SMALL_LETTER_V_WITH_HOOK 0x028B +#define LATIN_SMALL_LETTER_TURNED_V 0x028C +#define LATIN_SMALL_LETTER_TURNED_W 0x028D +#define LATIN_SMALL_LETTER_TURNED_Y 0x028E +#define LATIN_LETTER_SMALL_CAPITAL_Y 0x028F +#define LATIN_SMALL_LETTER_Z_WITH_RETROFLEX_HOOK 0x0290 +#define LATIN_SMALL_LETTER_Z_WITH_CURL 0x0291 +#define LATIN_SMALL_LETTER_EZH 0x0292 +#define LATIN_SMALL_LETTER_EZH_WITH_CURL 0x0293 +#define LATIN_LETTER_GLOTTAL_STOP 0x0294 +#define LATIN_LETTER_PHARYNGEAL_VOICED_FRICATIVE 0x0295 +#define LATIN_LETTER_INVERTED_GLOTTAL_STOP 0x0296 +#define LATIN_LETTER_STRETCHED_C 0x0297 +#define LATIN_LETTER_BILABIAL_CLICK 0x0298 +#define LATIN_LETTER_SMALL_CAPITAL_B 0x0299 +#define LATIN_SMALL_LETTER_CLOSED_OPEN_E 0x029A +#define LATIN_LETTER_SMALL_CAPITAL_G_WITH_HOOK 0x029B +#define LATIN_LETTER_SMALL_CAPITAL_H 0x029C +#define LATIN_SMALL_LETTER_J_WITH_CROSSED_TAIL 0x029D +#define LATIN_SMALL_LETTER_TURNED_K 0x029E +#define LATIN_LETTER_SMALL_CAPITAL_L 0x029F +#define LATIN_SMALL_LETTER_Q_WITH_HOOK 0x02A0 +#define LATIN_LETTER_GLOTTAL_STOP_WITH_STROKE 0x02A1 +#define LATIN_LETTER_REVERSED_GLOTTAL_STOP_WITH_STROKE 0x02A2 +#define LATIN_SMALL_LETTER_DZ_DIGRAPH 0x02A3 +#define LATIN_SMALL_LETTER_DEZH_DIGRAPH 0x02A4 +#define LATIN_SMALL_LETTER_DZ_DIGRAPH_WITH_CURL 0x02A5 +#define LATIN_SMALL_LETTER_TS_DIGRAPH 0x02A6 +#define LATIN_SMALL_LETTER_TESH_DIGRAPH 0x02A7 +#define LATIN_SMALL_LETTER_TC_DIGRAPH_WITH_CURL 0x02A8 +#define LATIN_SMALL_LETTER_FENG_DIGRAPH 0x02A9 +#define LATIN_SMALL_LETTER_LS_DIGRAPH 0x02AA +#define LATIN_SMALL_LETTER_LZ_DIGRAPH 0x02AB +#define LATIN_LETTER_BILABIAL_PERCUSSIVE 0x02AC +#define LATIN_LETTER_BIDENTAL_PERCUSSIVE 0x02AD + +/* spacing modifier letters */ +#define MODIFIER_LETTER_SMALL_H 0x02B0 +#define MODIFIER_LETTER_SMALL_H_WITH_HOOK 0x02B1 +#define MODIFIER_LETTER_SMALL_J 0x02B2 +#define MODIFIER_LETTER_SMALL_R 0x02B3 +#define MODIFIER_LETTER_SMALL_TURNED_R 0x02B4 +#define MODIFIER_LETTER_SMALL_TURNED_R_WITH_HOOK 0x02B5 +#define MODIFIER_LETTER_SMALL_CAPITAL_INVERTED_R 0x02B6 +#define MODIFIER_LETTER_SMALL_W 0x02B7 +#define MODIFIER_LETTER_SMALL_Y 0x02B8 +#define MODIFIER_LETTER_PRIME 0x02B9 +#define MODIFIER_LETTER_DOUBLE_PRIME 0x02BA +#define MODIFIER_LETTER_TURNED_COMMA 0x02BB +#define MODIFIER_LETTER_APOSTROPHE 0x02BC +#define MODIFIER_LETTER_REVERSED_COMMA 0x02BD +#define MODIFIER_LETTER_RIGHT_HALF_RING 0x02BE +#define MODIFIER_LETTER_LEFT_HALF_RING 0x02BF +#define MODIFIER_LETTER_GLOTTAL_STOP 0x02C0 +#define MODIFIER_LETTER_REVERSED_GLOTTAL_STOP 0x02C1 +#define MODIFIER_LETTER_LEFT_ARROWHEAD 0x02C2 +#define MODIFIER_LETTER_RIGHT_ARROWHEAD 0x02C3 +#define MODIFIER_LETTER_UP_ARROWHEAD 0x02C4 +#define MODIFIER_LETTER_DOWN_ARROWHEAD 0x02C5 +#define MODIFIER_LETTER_CIRCUMFLEX_ACCENT 0x02C6 +#define CARON 0x02C7 +#define MODIFIER_LETTER_VERTICAL_LINE 0x02C8 +#define MODIFIER_LETTER_MACRON 0x02C9 +#define MODIFIER_LETTER_ACUTE_ACCENT 0x02CA +#define MODIFIER_LETTER_GRAVE_ACCENT 0x02CB +#define MODIFIER_LETTER_LOW_VERTICAL_LINE 0x02CC +#define MODIFIER_LETTER_LOW_MACRON 0x02CD +#define MODIFIER_LETTER_LOW_GRAVE_ACCENT 0x02CE +#define MODIFIER_LETTER_LOW_ACUTE_ACCENT 0x02CF +#define MODIFIER_LETTER_TRIANGULAR_COLON 0x02D0 +#define MODIFIER_LETTER_HALF_TRIANGULAR_COLON 0x02D1 +#define MODIFIER_LETTER_CENTRED_RIGHT_HALF_RING 0x02D2 +#define MODIFIER_LETTER_CENTRED_LEFT_HALF_RING 0x02D3 +#define MODIFIER_LETTER_UP_TACK 0x02D4 +#define MODIFIER_LETTER_DOWN_TACK 0x02D5 +#define MODIFIER_LETTER_PLUS_SIGN 0x02D6 +#define MODIFIER_LETTER_MINUS_SIGN 0x02D7 +#define BREVE 0x02D8 +#define DOT_ABOVE 0x02D9 +#define RING_ABOVE 0x02DA +#define OGONEK 0x02DB +#define SMALL_TILDE 0x02DC +#define DOUBLE_ACUTE_ACCENT 0x02DD +#define MODIFIER_LETTER_RHOTIC_HOOK 0x02DE +#define MODIFIER_LETTER_CROSS_ACCENT 0x02DF +#define MODIFIER_LETTER_SMALL_GAMMA 0x02E0 +#define MODIFIER_LETTER_SMALL_L 0x02E1 +#define MODIFIER_LETTER_SMALL_S 0x02E2 +#define MODIFIER_LETTER_SMALL_X 0x02E3 +#define MODIFIER_LETTER_SMALL_REVERSED_GLOTTAL_STOP 0x02E4 +#define MODIFIER_LETTER_EXTRA_HIGH_TONE_BAR 0x02E5 +#define MODIFIER_LETTER_HIGH_TONE_BAR 0x02E6 +#define MODIFIER_LETTER_MID_TONE_BAR 0x02E7 +#define MODIFIER_LETTER_LOW_TONE_BAR 0x02E8 +#define MODIFIER_LETTER_EXTRA_LOW_TONE_BAR 0x02E9 +#define MODIFIER_LETTER_YIN_DEPARTING_TONE_MARK 0x02EA +#define MODIFIER_LETTER_YANG_DEPARTING_TONE_MARK 0x02EB +#define MODIFIER_LETTER_VOICING 0x02EC +#define MODIFIER_LETTER_UNASPIRATED 0x02ED +#define MODIFIER_LETTER_DOUBLE_APOSTROPHE 0x02EE + +/* combining diacritical marks */ +#define COMBINING_GRAVE_ACCENT 0x0300 +#define COMBINING_ACUTE_ACCENT 0x0301 +#define COMBINING_CIRCUMFLEX_ACCENT 0x0302 +#define COMBINING_TILDE 0x0303 +#define COMBINING_MACRON 0x0304 +#define COMBINING_OVERLINE 0x0305 +#define COMBINING_BREVE 0x0306 +#define COMBINING_DOT_ABOVE 0x0307 +#define COMBINING_DIAERESIS 0x0308 +#define COMBINING_HOOK_ABOVE 0x0309 +#define COMBINING_RING_ABOVE 0x030A +#define COMBINING_DOUBLE_ACUTE_ACCENT 0x030B +#define COMBINING_CARON 0x030C +#define COMBINING_VERTICAL_LINE_ABOVE 0x030D +#define COMBINING_DOUBLE_VERTICAL_LINE_ABOVE 0x030E +#define COMBINING_DOUBLE_GRAVE_ACCENT 0x030F +#define COMBINING_CANDRABINDU 0x0310 +#define COMBINING_INVERTED_BREVE 0x0311 +#define COMBINING_TURNED_COMMA_ABOVE 0x0312 +#define COMBINING_COMMA_ABOVE 0x0313 +#define COMBINING_REVERSED_COMMA_ABOVE 0x0314 +#define COMBINING_COMMA_ABOVE_RIGHT 0x0315 +#define COMBINING_GRAVE_ACCENT_BELOW 0x0316 +#define COMBINING_ACUTE_ACCENT_BELOW 0x0317 +#define COMBINING_LEFT_TACK_BELOW 0x0318 +#define COMBINING_RIGHT_TACK_BELOW 0x0319 +#define COMBINING_LEFT_ANGLE_ABOVE 0x031A +#define COMBINING_HORN 0x031B +#define COMBINING_LEFT_HALF_RING_BELOW 0x031C +#define COMBINING_UP_TACK_BELOW 0x031D +#define COMBINING_DOWN_TACK_BELOW 0x031E +#define COMBINING_PLUS_SIGN_BELOW 0x031F +#define COMBINING_MINUS_SIGN_BELOW 0x0320 +#define COMBINING_PALATALIZED_HOOK_BELOW 0x0321 +#define COMBINING_RETROFLEX_HOOK_BELOW 0x0322 +#define COMBINING_DOT_BELOW 0x0323 +#define COMBINING_DIAERESIS_BELOW 0x0324 +#define COMBINING_RING_BELOW 0x0325 +#define COMBINING_COMMA_BELOW 0x0326 +#define COMBINING_CEDILLA 0x0327 +#define COMBINING_OGONEK 0x0328 +#define COMBINING_VERTICAL_LINE_BELOW 0x0329 +#define COMBINING_BRIDGE_BELOW 0x032A +#define COMBINING_INVERTED_DOUBLE_ARCH_BELOW 0x032B +#define COMBINING_CARON_BELOW 0x032C +#define COMBINING_CIRCUMFLEX_ACCENT_BELOW 0x032D +#define COMBINING_BREVE_BELOW 0x032E +#define COMBINING_INVERTED_BREVE_BELOW 0x032F +#define COMBINING_TILDE_BELOW 0x0330 +#define COMBINING_MACRON_BELOW 0x0331 +#define COMBINING_LOW_LINE 0x0332 +#define COMBINING_DOUBLE_LOW_LINE 0x0333 +#define COMBINING_TILDE_OVERLAY 0x0334 +#define COMBINING_SHORT_STROKE_OVERLAY 0x0335 +#define COMBINING_LONG_STROKE_OVERLAY 0x0336 +#define COMBINING_SHORT_SOLIDUS_OVERLAY 0x0337 +#define COMBINING_LONG_SOLIDUS_OVERLAY 0x0338 +#define COMBINING_RIGHT_HALF_RING_BELOW 0x0339 +#define COMBINING_INVERTED_BRIDGE_BELOW 0x033A +#define COMBINING_SQUARE_BELOW 0x033B +#define COMBINING_SEAGULL_BELOW 0x033C +#define COMBINING_X_ABOVE 0x033D +#define COMBINING_VERTICAL_TILDE 0x033E +#define COMBINING_DOUBLE_OVERLINE 0x033F +#define COMBINING_GRAVE_TONE_MARK 0x0340 +#define COMBINING_ACUTE_TONE_MARK 0x0341 +#define COMBINING_GREEK_PERISPOMENI 0x0342 +#define COMBINING_GREEK_KORONIS 0x0343 +#define COMBINING_GREEK_DIALYTIKA_TONOS 0x0344 +#define COMBINING_GREEK_YPOGEGRAMMENI 0x0345 +#define COMBINING_BRIDGE_ABOVE 0x0346 +#define COMBINING_EQUALS_SIGN_BELOW 0x0347 +#define COMBINING_DOUBLE_VERTICAL_LINE_BELOW 0x0348 +#define COMBINING_LEFT_ANGLE_BELOW 0x0349 +#define COMBINING_NOT_TILDE_ABOVE 0x034A +#define COMBINING_HOMOTHETIC_ABOVE 0x034B +#define COMBINING_ALMOST_EQUAL_TO_ABOVE 0x034C +#define COMBINING_LEFT_RIGHT_ARROW_BELOW 0x034D +#define COMBINING_UPWARDS_ARROW_BELOW 0x034E +#define COMBINING_DOUBLE_TILDE 0x0360 +#define COMBINING_DOUBLE_INVERTED_BREVE 0x0361 +#define COMBINING_DOUBLE_RIGHTWARDS_ARROW_BELOW 0x0362 + +/* greek letters */ +#define GREEK_NUMERAL_SIGN 0x0374 +#define GREEK_LOWER_NUMERAL_SIGN 0x0375 +#define GREEK_YPOGEGRAMMENI 0x037A +#define GREEK_QUESTION_MARK 0x037E +#define GREEK_TONOS 0x0384 +#define GREEK_DIALYTIKA_TONOS 0x0385 +#define GREEK_CAPITAL_LETTER_ALPHA_WITH_TONOS 0x0386 +#define GREEK_ANO_TELEIA 0x0387 +#define GREEK_CAPITAL_LETTER_EPSILON_WITH_TONOS 0x0388 +#define GREEK_CAPITAL_LETTER_ETA_WITH_TONOS 0x0389 +#define GREEK_CAPITAL_LETTER_IOTA_WITH_TONOS 0x038A +#define GREEK_CAPITAL_LETTER_OMICRON_WITH_TONOS 0x038C +#define GREEK_CAPITAL_LETTER_UPSILON_WITH_TONOS 0x038E +#define GREEK_CAPITAL_LETTER_OMEGA_WITH_TONOS 0x038F +#define GREEK_SMALL_LETTER_IOTA_WITH_DIALYTIKA_AND_TONOS 0x0390 +#define GREEK_CAPITAL_LETTER_ALPHA 0x0391 +#define GREEK_CAPITAL_LETTER_BETA 0x0392 +#define GREEK_CAPITAL_LETTER_GAMMA 0x0393 +#define GREEK_CAPITAL_LETTER_DELTA 0x0394 +#define GREEK_CAPITAL_LETTER_EPSILON 0x0395 +#define GREEK_CAPITAL_LETTER_ZETA 0x0396 +#define GREEK_CAPITAL_LETTER_ETA 0x0397 +#define GREEK_CAPITAL_LETTER_THETA 0x0398 +#define GREEK_CAPITAL_LETTER_IOTA 0x0399 +#define GREEK_CAPITAL_LETTER_KAPPA 0x039A +#define GREEK_CAPITAL_LETTER_LAMDA 0x039B +#define GREEK_CAPITAL_LETTER_MU 0x039C +#define GREEK_CAPITAL_LETTER_NU 0x039D +#define GREEK_CAPITAL_LETTER_XI 0x039E +#define GREEK_CAPITAL_LETTER_OMICRON 0x039F +#define GREEK_CAPITAL_LETTER_PI 0x03A0 +#define GREEK_CAPITAL_LETTER_RHO 0x03A1 +#define GREEK_CAPITAL_LETTER_SIGMA 0x03A3 +#define GREEK_CAPITAL_LETTER_TAU 0x03A4 +#define GREEK_CAPITAL_LETTER_UPSILON 0x03A5 +#define GREEK_CAPITAL_LETTER_PHI 0x03A6 +#define GREEK_CAPITAL_LETTER_CHI 0x03A7 +#define GREEK_CAPITAL_LETTER_PSI 0x03A8 +#define GREEK_CAPITAL_LETTER_OMEGA 0x03A9 +#define GREEK_CAPITAL_LETTER_IOTA_WITH_DIALYTIKA 0x03AA +#define GREEK_CAPITAL_LETTER_UPSILON_WITH_DIALYTIKA 0x03AB +#define GREEK_SMALL_LETTER_ALPHA_WITH_TONOS 0x03AC +#define GREEK_SMALL_LETTER_EPSILON_WITH_TONOS 0x03AD +#define GREEK_SMALL_LETTER_ETA_WITH_TONOS 0x03AE +#define GREEK_SMALL_LETTER_IOTA_WITH_TONOS 0x03AF +#define GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA_AND_TONOS 0x03B0 +#define GREEK_SMALL_LETTER_ALPHA 0x03B1 +#define GREEK_SMALL_LETTER_BETA 0x03B2 +#define GREEK_SMALL_LETTER_GAMMA 0x03B3 +#define GREEK_SMALL_LETTER_DELTA 0x03B4 +#define GREEK_SMALL_LETTER_EPSILON 0x03B5 +#define GREEK_SMALL_LETTER_ZETA 0x03B6 +#define GREEK_SMALL_LETTER_ETA 0x03B7 +#define GREEK_SMALL_LETTER_THETA 0x03B8 +#define GREEK_SMALL_LETTER_IOTA 0x03B9 +#define GREEK_SMALL_LETTER_KAPPA 0x03BA +#define GREEK_SMALL_LETTER_LAMDA 0x03BB +#define GREEK_SMALL_LETTER_MU 0x03BC +#define GREEK_SMALL_LETTER_NU 0x03BD +#define GREEK_SMALL_LETTER_XI 0x03BE +#define GREEK_SMALL_LETTER_OMICRON 0x03BF +#define GREEK_SMALL_LETTER_PI 0x03C0 +#define GREEK_SMALL_LETTER_RHO 0x03C1 +#define GREEK_SMALL_LETTER_FINAL_SIGMA 0x03C2 +#define GREEK_SMALL_LETTER_SIGMA 0x03C3 +#define GREEK_SMALL_LETTER_TAU 0x03C4 +#define GREEK_SMALL_LETTER_UPSILON 0x03C5 +#define GREEK_SMALL_LETTER_PHI 0x03C6 +#define GREEK_SMALL_LETTER_CHI 0x03C7 +#define GREEK_SMALL_LETTER_PSI 0x03C8 +#define GREEK_SMALL_LETTER_OMEGA 0x03C9 +#define GREEK_SMALL_LETTER_IOTA_WITH_DIALYTIKA 0x03CA +#define GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA 0x03CB +#define GREEK_SMALL_LETTER_OMICRON_WITH_TONOS 0x03CC +#define GREEK_SMALL_LETTER_UPSILON_WITH_TONOS 0x03CD +#define GREEK_SMALL_LETTER_OMEGA_WITH_TONOS 0x03CE +#define GREEK_BETA_SYMBOL 0x03D0 +#define GREEK_THETA_SYMBOL 0x03D1 +#define GREEK_UPSILON_WITH_HOOK_SYMBOL 0x03D2 +#define GREEK_UPSILON_WITH_ACUTE_AND_HOOK_SYMBOL 0x03D3 +#define GREEK_UPSILON_WITH_DIAERESIS_AND_HOOK_SYMBOL 0x03D4 +#define GREEK_PHI_SYMBOL 0x03D5 +#define GREEK_PI_SYMBOL 0x03D6 +#define GREEK_KAI_SYMBOL 0x03D7 +#define GREEK_LETTER_STIGMA 0x03DA +#define GREEK_SMALL_LETTER_STIGMA 0x03DB +#define GREEK_LETTER_DIGAMMA 0x03DC +#define GREEK_SMALL_LETTER_DIGAMMA 0x03DD +#define GREEK_LETTER_KOPPA 0x03DE +#define GREEK_SMALL_LETTER_KOPPA 0x03DF +#define GREEK_LETTER_SAMPI 0x03E0 +#define GREEK_SMALL_LETTER_SAMPI 0x03E1 + +/* general punctuation (partial) */ +#define HYPHEN 0x2010 +#define NON_BREAKING_HYPHEN 0x2011 +#define FIGURE_DASH 0x2012 +#define EN_DASH 0x2013 +#define EM_DASH 0x2014 +#define HORIZONTAL_BAR 0x2015 +#define LEFT_SINGLE_QUOTATION_MARK 0x2018 +#define RIGHT_SINGLE_QUOTATION_MARK 0x2019 +#define SINGLE_LOW_9_QUOTATION_MARK 0x201A +#define SINGLE_HIGH_REVERSED_9_QUOTATION_MARK 0x201B +#define LEFT_DOUBLE_QUOTATION_MARK 0x201C +#define RIGHT_DOUBLE_QUOTATION_MARK 0x201D +#define DOUBLE_LOW_9_QUOTATION_MARK 0x201E +#define DOUBLE_HIGH_REVERSED_9_QUOTATION_MARK 0x201F +#define DAGGER 0x2020 +#define DOUBLE_DAGGER 0x2021 +#define BULLET 0x2022 +#define TRIANGULAR_BULLET 0x2023 +#define HYPHENATION_POINT 0x2027 +#define HORIZONTAL_ELLIPSIS 0x2026 +#define PER_MILLE_SIGN 0x2030 +#define SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK 0x2039 +#define SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK 0x203A +#define EURO_CURRENCY_SIGN 0x20AC + +/* mathematical operators */ +#define FOR_ALL 0x2200 +#define COMPLEMENT 0x2201 +#define PARTIAL_DIFFERENTIAL 0x2202 +#define THERE_EXISTS 0x2203 +#define THERE_DOES_NOT_EXIST 0x2204 +#define EMPTY_SET 0x2205 +#define INCREMENT 0x2206 +#define NABLA 0x2207 +#define ELEMENT_OF 0x2208 +#define NOT_AN_ELEMENT_OF 0x2209 +#define SMALL_ELEMENT_OF 0x220A +#define CONTAINS_AS_MEMBER 0x220B +#define DOES_NOT_CONTAIN_AS_MEMBER 0x220C +#define SMALL_CONTAINS_AS_MEMBER 0x220D +#define END_OF_PROOF 0x220E +#define N_ARY_PRODUCT 0x220F +#define N_ARY_COPRODUCT 0x2210 +#define N_ARY_SUMMATION 0x2211 +#define MINUS_SIGN 0x2212 +#define MINUS_OR_PLUS_SIGN 0x2213 +#define DOT_PLUS 0x2214 +#define DIVISION_SLASH 0x2215 +#define SET_MINUS 0x2216 +#define ASTERISK_OPERATOR 0x2217 +#define RING_OPERATOR 0x2218 +#define BULLET_OPERATOR 0x2219 +#define SQUARE_ROOT 0x221A +#define CUBE_ROOT 0x221B +#define FOURTH_ROOT 0x221C +#define PROPORTIONAL_TO 0x221D +/* INFINITY conflicts with math.h */ +#define INFINITY 0x221E +#define RIGHT_ANGLE 0x221F +#define ANGLE 0x2220 +#define MEASURED_ANGLE 0x2221 +#define SPHERICAL_ANGLE 0x2222 +#define DIVIDES 0x2223 +#define DOES_NOT_DIVIDE 0x2224 +#define PARALLEL_TO 0x2225 +#define NOT_PARALLEL_TO 0x2226 +#define LOGICAL_AND 0x2227 +#define LOGICAL_OR 0x2228 +#define INTERSECTION 0x2229 +#define UNION 0x222A +#define INTEGRAL 0x222B +#define DOUBLE_INTEGRAL 0x222C +#define TRIPLE_INTEGRAL 0x222D +#define CONTOUR_INTEGRAL 0x222E +#define SURFACE_INTEGRAL 0x222F +#define VOLUME_INTEGRAL 0x2230 +#define CLOCKWISE_INTEGRAL 0x2231 +#define CLOCKWISE_CONTOUR_INTEGRAL 0x2232 +#define ANTICLOCKWISE_CONTOUR_INTEGRAL 0x2233 +#define THEREFORE 0x2234 +#define BECAUSE 0x2235 +#define RATIO 0x2236 +#define PROPORTION 0x2237 +#define DOT_MINUS 0x2238 +#define EXCESS 0x2239 +#define GEOMETRIC_PROPORTION 0x223A +#define HOMOTHETIC 0x223B +#define TILDE_OPERATOR 0x223C +#define REVERSED_TILDE 0x223D +#define INVERTED_LAZY_S 0x223E +#define SINE_WAVE 0x223F +#define WREATH_PRODUCT 0x2240 +#define NOT_TILDE 0x2241 +#define MINUS_TILDE 0x2242 +#define ASYMPTOTICALLY_EQUAL_TO 0x2243 +#define NOT_ASYMPTOTICALLY_EQUAL_TO 0x2244 +#define APPROXIMATELY_EQUAL_TO 0x2245 +#define APPROXIMATELY_BUT_NOT_ACTUALLY_EQUAL_TO 0x2246 +#define NEITHER_APPROXIMATELY_NOR_ACTUALLY_EQUAL_TO 0x2247 +#define ALMOST_EQUAL_TO 0x2248 +#define NOT_ALMOST_EQUAL_TO 0x2249 +#define ALMOST_EQUAL_OR_EQUAL_TO 0x224A +#define TRIPLE_TILDE 0x224B +#define ALL_EQUAL_TO 0x224C +#define EQUIVALENT_TO 0x224D +#define GEOMETRICALLY_EQUIVALENT_TO 0x224E +#define DIFFERENCE_BETWEEN 0x224F +#define APPROACHES_THE_LIMIT 0x2250 +#define GEOMETRICALLY_EQUAL_TO 0x2251 +#define APPROXIMATELY_EQUAL_TO_OR_THE_IMAGE_OF 0x2252 +#define IMAGE_OF_OR_APPROXIMATELY_EQUAL_TO 0x2253 +#define COLON_EQUALS 0x2254 +#define EQUALS_COLON 0x2255 +#define RING_IN_EQUAL_TO 0x2256 +#define RING_EQUAL_TO 0x2257 +#define CORRESPONDS_TO 0x2258 +#define ESTIMATES 0x2259 +#define EQUIANGULAR_TO 0x225A +#define STAR_EQUALS 0x225B +#define DELTA_EQUAL_TO 0x225C +#define EQUAL_TO_BY_DEFINITION 0x225D +#define MEASURED_BY 0x225E +#define QUESTIONED_EQUAL_TO 0x225F +#define NOT_EQUAL_TO 0x2260 +#define IDENTICAL_TO 0x2261 +#define NOT_IDENTICAL_TO 0x2262 +#define STRICTLY_EQUIVALENT_TO 0x2263 +#define LESS_THAN_OR_EQUAL_TO 0x2264 +#define GREATER_THAN_OR_EQUAL_TO 0x2265 +#define LESS_THAN_OVER_EQUAL_TO 0x2266 +#define GREATER_THAN_OVER_EQUAL_TO 0x2267 +#define LESS_THAN_BUT_NOT_EQUAL_TO 0x2268 +#define GREATER_THAN_BUT_NOT_EQUAL_TO 0x2269 +#define MUCH_LESS_THAN 0x226A +#define MUCH_GREATER_THAN 0x226B +#define BETWEEN 0x226C +#define NOT_EQUIVALENT_TO 0x226D +#define NOT_LESS_THAN 0x226E +#define NOT_GREATER_THAN 0x226F +#define NEITHER_LESS_THAN_NOR_EQUAL_TO 0x2270 +#define NEITHER_GREATER_THAN_NOR_EQUAL_TO 0x2271 +#define LESS_THAN_OR_EQUIVALENT_TO 0x2272 +#define GREATER_THAN_OR_EQUIVALENT_TO 0x2273 +#define NEITHER_LESS_THAN_NOR_EQUIVALENT_TO 0x2274 +#define NEITHER_GREATER_THAN_NOR_EQUIVALENT_TO 0x2275 +#define LESS_THAN_OR_GREATER_THAN 0x2276 +#define GREATER_THAN_OR_LESS_THAN 0x2277 +#define NEITHER_LESS_THAN_NOR_GREATER_THAN 0x2278 +#define NEITHER_GREATER_THAN_NOR_LESS_THAN 0x2279 +#define PRECEDES 0x227A +#define SUCCEEDS 0x227B +#define PRECEDES_OR_EQUAL_TO 0x227C +#define SUCCEEDS_OR_EQUAL_TO 0x227D +#define PRECEDES_OR_EQUIVALENT_TO 0x227E +#define SUCCEEDS_OR_EQUIVALENT_TO 0x227F +#define DOES_NOT_PRECEDE 0x2280 +#define DOES_NOT_SUCCEED 0x2281 +#define SUBSET_OF 0x2282 +#define SUPERSET_OF 0x2283 +#define NOT_A_SUBSET_OF 0x2284 +#define NOT_A_SUPERSET_OF 0x2285 +#define SUBSET_OF_OR_EQUAL_TO 0x2286 +#define SUPERSET_OF_OR_EQUAL_TO 0x2287 +#define NEITHER_A_SUBSET_OF_NOR_EQUAL_TO 0x2288 +#define NEITHER_A_SUPERSET_OF_NOR_EQUAL_TO 0x2289 +#define SUBSET_OF_WITH_NOT_EQUAL_TO 0x228A +#define SUPERSET_OF_WITH_NOT_EQUAL_TO 0x228B +#define MULTISET 0x228C +#define MULTISET_MULTIPLICATION 0x228D +#define MULTISET_UNION 0x228E +#define SQUARE_IMAGE_OF 0x228F +#define SQUARE_ORIGINAL_OF 0x2290 +#define SQUARE_IMAGE_OF_OR_EQUAL_TO 0x2291 +#define SQUARE_ORIGINAL_OF_OR_EQUAL_TO 0x2292 +#define SQUARE_CAP 0x2293 +#define SQUARE_CUP 0x2294 +#define CIRCLED_PLUS 0x2295 +#define CIRCLED_MINUS 0x2296 +#define CIRCLED_TIMES 0x2297 +#define CIRCLED_DIVISION_SLASH 0x2298 +#define CIRCLED_DOT_OPERATOR 0x2299 +#define CIRCLED_RING_OPERATOR 0x229A +#define CIRCLED_ASTERISK_OPERATOR 0x229B +#define CIRCLED_EQUALS 0x229C +#define CIRCLED_DASH 0x229D +#define SQUARED_PLUS 0x229E +#define SQUARED_MINUS 0x229F +#define SQUARED_TIMES 0x22A0 +#define SQUARED_DOT_OPERATOR 0x22A1 +#define RIGHT_TACK 0x22A2 +#define LEFT_TACK 0x22A3 +#define DOWN_TACK 0x22A4 +#define UP_TACK 0x22A5 +#define ASSERTION 0x22A6 +#define MODELS 0x22A7 +#define TRUE 0x22A8 +#define FORCES 0x22A9 +#define TRIPLE_VERTICAL_BAR_RIGHT_TURNSTILE 0x22AA +#define DOUBLE_VERTICAL_BAR_DOUBLE_RIGHT_TURNSTILE 0x22AB +#define DOES_NOT_PROVE 0x22AC +#define NOT_TRUE 0x22AD +#define DOES_NOT_FORCE 0x22AE +#define NEGATED_DOUBLE_VERTICAL_BAR_DOUBLE_RIGHT_TURNSTILE 0x22AF +#define PRECEDES_UNDER_RELATION 0x22B0 +#define SUCCEEDS_UNDER_RELATION 0x22B1 +#define NORMAL_SUBGROUP_OF 0x22B2 +#define CONTAINS_AS_NORMAL_SUBGROUP 0x22B3 +#define NORMAL_SUBGROUP_OF_OR_EQUAL_TO 0x22B4 +#define CONTAINS_AS_NORMAL_SUBGROUP_OR_EQUAL_TO 0x22B5 +#define ORIGINAL_OF 0x22B6 +#define IMAGE_OF 0x22B7 +#define MULTIMAP 0x22B8 +#define HERMITIAN_CONJUGATE_MATRIX 0x22B9 +#define INTERCALATE 0x22BA +#define XOR 0x22BB +#define NAND 0x22BC +#define NOR 0x22BD +#define RIGHT_ANGLE_WITH_ARC 0x22BE +#define RIGHT_TRIANGLE 0x22BF +#define N_ARY_LOGICAL_AND 0x22C0 +#define N_ARY_LOGICAL_OR 0x22C1 +#define N_ARY_INTERSECTION 0x22C2 +#define N_ARY_UNION 0x22C3 +#define DIAMOND_OPERATOR 0x22C4 +#define DOT_OPERATOR 0x22C5 +#define STAR_OPERATOR 0x22C6 +#define DIVISION_TIMES 0x22C7 +#define BOWTIE 0x22C8 +#define LEFT_NORMAL_FACTOR_SEMIDIRECT_PRODUCT 0x22C9 +#define RIGHT_NORMAL_FACTOR_SEMIDIRECT_PRODUCT 0x22CA +#define LEFT_SEMIDIRECT_PRODUCT 0x22CB +#define RIGHT_SEMIDIRECT_PRODUCT 0x22CC +#define REVERSED_TILDE_EQUALS 0x22CD +#define CURLY_LOGICAL_OR 0x22CE +#define CURLY_LOGICAL_AND 0x22CF +#define DOUBLE_SUBSET 0x22D0 +#define DOUBLE_SUPERSET 0x22D1 +#define DOUBLE_INTERSECTION 0x22D2 +#define DOUBLE_UNION 0x22D3 +#define PITCHFORK 0x22D4 +#define EQUAL_AND_PARALLEL_TO 0x22D5 +#define LESS_THAN_WITH_DOT 0x22D6 +#define GREATER_THAN_WITH_DOT 0x22D7 +#define VERY_MUCH_LESS_THAN 0x22D8 +#define VERY_MUCH_GREATER_THAN 0x22D9 +#define LESS_THAN_EQUAL_TO_OR_GREATER_THAN 0x22DA +#define GREATER_THAN_EQUAL_TO_OR_LESS_THAN 0x22DB +#define EQUAL_TO_OR_LESS_THAN 0x22DC +#define EQUAL_TO_OR_GREATER_THAN 0x22DD +#define EQUAL_TO_OR_PRECEDES 0x22DE +#define EQUAL_TO_OR_SUCCEEDS 0x22DF +#define DOES_NOT_PRECEDE_OR_EQUAL 0x22E0 +#define DOES_NOT_SUCCEED_OR_EQUAL 0x22E1 +#define NOT_SQUARE_IMAGE_OF_OR_EQUAL_TO 0x22E2 +#define NOT_SQUARE_ORIGINAL_OF_OR_EQUAL_TO 0x22E3 +#define SQUARE_IMAGE_OF_OR_NOT_EQUAL_TO 0x22E4 +#define SQUARE_ORIGINAL_OF_OR_NOT_EQUAL_TO 0x22E5 +#define LESS_THAN_BUT_NOT_EQUIVALENT_TO 0x22E6 +#define GREATER_THAN_BUT_NOT_EQUIVALENT_TO 0x22E7 +#define PRECEDES_BUT_NOT_EQUIVALENT_TO 0x22E8 +#define SUCCEEDS_BUT_NOT_EQUIVALENT_TO 0x22E9 +#define NOT_NORMAL_SUBGROUP_OF 0x22EA +#define DOES_NOT_CONTAIN_AS_NORMAL_SUBGROUP 0x22EB +#define NOT_NORMAL_SUBGROUP_OF_OR_EQUAL_TO 0x22EC +#define DOES_NOT_CONTAIN_AS_NORMAL_SUBGROUP_OR_EQUAL 0x22ED +#define VERTICAL_ELLIPSIS 0x22EE +#define MIDLINE_HORIZONTAL_ELLIPSIS 0x22EF +#define UP_RIGHT_DIAGONAL_ELLIPSIS 0x22F0 +#define DOWN_RIGHT_DIAGONAL_ELLIPSIS 0x22F1 + +/* Optical Character Recognition in Unicode (see wikipedia/OCR) + * range: 0x2440-0x245F + */ +#define OCR_Hook 0x2440 +#define OCR_Chair 0x2441 +#define OCR_Fork 0x2442 +#define OCR_Inverted_Fork 0x2443 +#define OCR_Belt_Buckle 0x2444 +#define OCR_Bow_Tie 0x2445 + +/* the following 4 MICR chars (magnetic ink character recognition) + * They look like: |: ,|' ||' ||| (known also as MICR-A,B,C,D) + */ +#define OCR_Branch_Bank_Identification 0x2446 +#define OCR_Amount_Of_Check 0x2447 +#define OCR_Customer_Account_Number 0x2448 +#define OCR_Dash 0x2449 + +#define OCR_Double_Backslash 0x244A + +/* latin ligatures */ +#define LATIN_SMALL_LIGATURE_FF 0xFB00 +#define LATIN_SMALL_LIGATURE_FI 0xFB01 +#define LATIN_SMALL_LIGATURE_FL 0xFB02 +#define LATIN_SMALL_LIGATURE_FFI 0xFB03 +#define LATIN_SMALL_LIGATURE_FFL 0xFB04 +#define LATIN_SMALL_LIGATURE_LONG_S_T 0xFB05 +#define LATIN_SMALL_LIGATURE_ST 0xFB06 + +#endif diff --git a/.svn/pristine/34/3431568853430b6992578f2b69801be965108c0c.svn-base b/.svn/pristine/34/3431568853430b6992578f2b69801be965108c0c.svn-base new file mode 100644 index 0000000..8d5b3d8 --- /dev/null +++ b/.svn/pristine/34/3431568853430b6992578f2b69801be965108c0c.svn-base @@ -0,0 +1,428 @@ +//---------------------------------------------------------------------- +// File: kd_split.cpp +// Programmer: Sunil Arya and David Mount +// Description: Methods for splitting kd-trees +// Last modified: 01/04/05 (Version 1.0) +//---------------------------------------------------------------------- +// Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +// David Mount. All Rights Reserved. +// +// This software and related documentation is part of the Approximate +// Nearest Neighbor Library (ANN). This software is provided under +// the provisions of the Lesser GNU Public License (LGPL). See the +// file ../ReadMe.txt for further information. +// +// The University of Maryland (U.M.) and the authors make no +// representations about the suitability or fitness of this software for +// any purpose. It is provided "as is" without express or implied +// warranty. +//---------------------------------------------------------------------- +// History: +// Revision 0.1 03/04/98 +// Initial release +// Revision 1.0 04/01/05 +//---------------------------------------------------------------------- + +#include "kd_tree.h" // kd-tree definitions +#include "kd_util.h" // kd-tree utilities +#include "kd_split.h" // splitting functions + +//---------------------------------------------------------------------- +// Constants +//---------------------------------------------------------------------- + +const double ERR = 0.001; // a small value +const double FS_ASPECT_RATIO = 3.0; // maximum allowed aspect ratio + // in fair split. Must be >= 2. + +//---------------------------------------------------------------------- +// kd_split - Bentley's standard splitting routine for kd-trees +// Find the dimension of the greatest spread, and split +// just before the median point along this dimension. +//---------------------------------------------------------------------- + +void kd_split( + ANNpointArray pa, // point array (permuted on return) + ANNidxArray pidx, // point indices + const ANNorthRect &bnds, // bounding rectangle for cell + int n, // number of points + int dim, // dimension of space + int &cut_dim, // cutting dimension (returned) + ANNcoord &cut_val, // cutting value (returned) + int &n_lo) // num of points on low side (returned) +{ + // find dimension of maximum spread + cut_dim = annMaxSpread(pa, pidx, n, dim); + n_lo = n/2; // median rank + // split about median + annMedianSplit(pa, pidx, n, cut_dim, cut_val, n_lo); +} + +//---------------------------------------------------------------------- +// midpt_split - midpoint splitting rule for box-decomposition trees +// +// This is the simplest splitting rule that guarantees boxes +// of bounded aspect ratio. It simply cuts the box with the +// longest side through its midpoint. If there are ties, it +// selects the dimension with the maximum point spread. +// +// WARNING: This routine (while simple) doesn't seem to work +// well in practice in high dimensions, because it tends to +// generate a large number of trivial and/or unbalanced splits. +// Either kd_split(), sl_midpt_split(), or fair_split() are +// recommended, instead. +//---------------------------------------------------------------------- + +void midpt_split( + ANNpointArray pa, // point array + ANNidxArray pidx, // point indices (permuted on return) + const ANNorthRect &bnds, // bounding rectangle for cell + int n, // number of points + int dim, // dimension of space + int &cut_dim, // cutting dimension (returned) + ANNcoord &cut_val, // cutting value (returned) + int &n_lo) // num of points on low side (returned) +{ + int d; + + ANNcoord max_length = bnds.hi[0] - bnds.lo[0]; + for (d = 1; d < dim; d++) { // find length of longest box side + ANNcoord length = bnds.hi[d] - bnds.lo[d]; + if (length > max_length) { + max_length = length; + } + } + ANNcoord max_spread = -1; // find long side with most spread + for (d = 0; d < dim; d++) { + // is it among longest? + if (double(bnds.hi[d] - bnds.lo[d]) >= (1-ERR)*max_length) { + // compute its spread + ANNcoord spr = annSpread(pa, pidx, n, d); + if (spr > max_spread) { // is it max so far? + max_spread = spr; + cut_dim = d; + } + } + } + // split along cut_dim at midpoint + cut_val = (bnds.lo[cut_dim] + bnds.hi[cut_dim]) / 2; + // permute points accordingly + int br1, br2; + annPlaneSplit(pa, pidx, n, cut_dim, cut_val, br1, br2); + //------------------------------------------------------------------ + // On return: pa[0..br1-1] < cut_val + // pa[br1..br2-1] == cut_val + // pa[br2..n-1] > cut_val + // + // We can set n_lo to any value in the range [br1..br2]. + // We choose split so that points are most evenly divided. + //------------------------------------------------------------------ + if (br1 > n/2) n_lo = br1; + else if (br2 < n/2) n_lo = br2; + else n_lo = n/2; +} + +//---------------------------------------------------------------------- +// sl_midpt_split - sliding midpoint splitting rule +// +// This is a modification of midpt_split, which has the nonsensical +// name "sliding midpoint". The idea is that we try to use the +// midpoint rule, by bisecting the longest side. If there are +// ties, the dimension with the maximum spread is selected. If, +// however, the midpoint split produces a trivial split (no points +// on one side of the splitting plane) then we slide the splitting +// (maintaining its orientation) until it produces a nontrivial +// split. For example, if the splitting plane is along the x-axis, +// and all the data points have x-coordinate less than the x-bisector, +// then the split is taken along the maximum x-coordinate of the +// data points. +// +// Intuitively, this rule cannot generate trivial splits, and +// hence avoids midpt_split's tendency to produce trees with +// a very large number of nodes. +// +//---------------------------------------------------------------------- + +void sl_midpt_split( + ANNpointArray pa, // point array + ANNidxArray pidx, // point indices (permuted on return) + const ANNorthRect &bnds, // bounding rectangle for cell + int n, // number of points + int dim, // dimension of space + int &cut_dim, // cutting dimension (returned) + ANNcoord &cut_val, // cutting value (returned) + int &n_lo) // num of points on low side (returned) +{ + int d; + + ANNcoord max_length = bnds.hi[0] - bnds.lo[0]; + for (d = 1; d < dim; d++) { // find length of longest box side + ANNcoord length = bnds.hi[d] - bnds.lo[d]; + if (length > max_length) { + max_length = length; + } + } + ANNcoord max_spread = -1; // find long side with most spread + for (d = 0; d < dim; d++) { + // is it among longest? + if ((bnds.hi[d] - bnds.lo[d]) >= (1-ERR)*max_length) { + // compute its spread + ANNcoord spr = annSpread(pa, pidx, n, d); + if (spr > max_spread) { // is it max so far? + max_spread = spr; + cut_dim = d; + } + } + } + // ideal split at midpoint + ANNcoord ideal_cut_val = (bnds.lo[cut_dim] + bnds.hi[cut_dim])/2; + + ANNcoord min, max; + annMinMax(pa, pidx, n, cut_dim, min, max); // find min/max coordinates + + if (ideal_cut_val < min) // slide to min or max as needed + cut_val = min; + else if (ideal_cut_val > max) + cut_val = max; + else + cut_val = ideal_cut_val; + + // permute points accordingly + int br1, br2; + annPlaneSplit(pa, pidx, n, cut_dim, cut_val, br1, br2); + //------------------------------------------------------------------ + // On return: pa[0..br1-1] < cut_val + // pa[br1..br2-1] == cut_val + // pa[br2..n-1] > cut_val + // + // We can set n_lo to any value in the range [br1..br2] to satisfy + // the exit conditions of the procedure. + // + // if ideal_cut_val < min (implying br2 >= 1), + // then we select n_lo = 1 (so there is one point on left) and + // if ideal_cut_val > max (implying br1 <= n-1), + // then we select n_lo = n-1 (so there is one point on right). + // Otherwise, we select n_lo as close to n/2 as possible within + // [br1..br2]. + //------------------------------------------------------------------ + if (ideal_cut_val < min) n_lo = 1; + else if (ideal_cut_val > max) n_lo = n-1; + else if (br1 > n/2) n_lo = br1; + else if (br2 < n/2) n_lo = br2; + else n_lo = n/2; +} + +//---------------------------------------------------------------------- +// fair_split - fair-split splitting rule +// +// This is a compromise between the kd-tree splitting rule (which +// always splits data points at their median) and the midpoint +// splitting rule (which always splits a box through its center. +// The goal of this procedure is to achieve both nicely balanced +// splits, and boxes of bounded aspect ratio. +// +// A constant FS_ASPECT_RATIO is defined. Given a box, those sides +// which can be split so that the ratio of the longest to shortest +// side does not exceed ASPECT_RATIO are identified. Among these +// sides, we select the one in which the points have the largest +// spread. We then split the points in a manner which most evenly +// distributes the points on either side of the splitting plane, +// subject to maintaining the bound on the ratio of long to short +// sides. To determine that the aspect ratio will be preserved, +// we determine the longest side (other than this side), and +// determine how narrowly we can cut this side, without causing the +// aspect ratio bound to be exceeded (small_piece). +// +// This procedure is more robust than either kd_split or midpt_split, +// but is more complicated as well. When point distribution is +// extremely skewed, this degenerates to midpt_split (actually +// 1/3 point split), and when the points are most evenly distributed, +// this degenerates to kd-split. +//---------------------------------------------------------------------- + +void fair_split( + ANNpointArray pa, // point array + ANNidxArray pidx, // point indices (permuted on return) + const ANNorthRect &bnds, // bounding rectangle for cell + int n, // number of points + int dim, // dimension of space + int &cut_dim, // cutting dimension (returned) + ANNcoord &cut_val, // cutting value (returned) + int &n_lo) // num of points on low side (returned) +{ + int d; + ANNcoord max_length = bnds.hi[0] - bnds.lo[0]; + cut_dim = 0; + for (d = 1; d < dim; d++) { // find length of longest box side + ANNcoord length = bnds.hi[d] - bnds.lo[d]; + if (length > max_length) { + max_length = length; + cut_dim = d; + } + } + + ANNcoord max_spread = 0; // find legal cut with max spread + cut_dim = 0; + for (d = 0; d < dim; d++) { + ANNcoord length = bnds.hi[d] - bnds.lo[d]; + // is this side midpoint splitable + // without violating aspect ratio? + if (((double) max_length)*2.0/((double) length) <= FS_ASPECT_RATIO) { + // compute spread along this dim + ANNcoord spr = annSpread(pa, pidx, n, d); + if (spr > max_spread) { // best spread so far + max_spread = spr; + cut_dim = d; // this is dimension to cut + } + } + } + + max_length = 0; // find longest side other than cut_dim + for (d = 0; d < dim; d++) { + ANNcoord length = bnds.hi[d] - bnds.lo[d]; + if (d != cut_dim && length > max_length) + max_length = length; + } + // consider most extreme splits + ANNcoord small_piece = max_length / FS_ASPECT_RATIO; + ANNcoord lo_cut = bnds.lo[cut_dim] + small_piece;// lowest legal cut + ANNcoord hi_cut = bnds.hi[cut_dim] - small_piece;// highest legal cut + + int br1, br2; + // is median below lo_cut ? + if (annSplitBalance(pa, pidx, n, cut_dim, lo_cut) >= 0) { + cut_val = lo_cut; // cut at lo_cut + annPlaneSplit(pa, pidx, n, cut_dim, cut_val, br1, br2); + n_lo = br1; + } + // is median above hi_cut? + else if (annSplitBalance(pa, pidx, n, cut_dim, hi_cut) <= 0) { + cut_val = hi_cut; // cut at hi_cut + annPlaneSplit(pa, pidx, n, cut_dim, cut_val, br1, br2); + n_lo = br2; + } + else { // median cut preserves asp ratio + n_lo = n/2; // split about median + annMedianSplit(pa, pidx, n, cut_dim, cut_val, n_lo); + } +} + +//---------------------------------------------------------------------- +// sl_fair_split - sliding fair split splitting rule +// +// Sliding fair split is a splitting rule that combines the +// strengths of both fair split with sliding midpoint split. +// Fair split tends to produce balanced splits when the points +// are roughly uniformly distributed, but it can produce many +// trivial splits when points are highly clustered. Sliding +// midpoint never produces trivial splits, and shrinks boxes +// nicely if points are highly clustered, but it may produce +// rather unbalanced splits when points are unclustered but not +// quite uniform. +// +// Sliding fair split is based on the theory that there are two +// types of splits that are "good": balanced splits that produce +// fat boxes, and unbalanced splits provided the cell with fewer +// points is fat. +// +// This splitting rule operates by first computing the longest +// side of the current bounding box. Then it asks which sides +// could be split (at the midpoint) and still satisfy the aspect +// ratio bound with respect to this side. Among these, it selects +// the side with the largest spread (as fair split would). It +// then considers the most extreme cuts that would be allowed by +// the aspect ratio bound. This is done by dividing the longest +// side of the box by the aspect ratio bound. If the median cut +// lies between these extreme cuts, then we use the median cut. +// If not, then consider the extreme cut that is closer to the +// median. If all the points lie to one side of this cut, then +// we slide the cut until it hits the first point. This may +// violate the aspect ratio bound, but will never generate empty +// cells. However the sibling of every such skinny cell is fat, +// and hence packing arguments still apply. +// +//---------------------------------------------------------------------- + +void sl_fair_split( + ANNpointArray pa, // point array + ANNidxArray pidx, // point indices (permuted on return) + const ANNorthRect &bnds, // bounding rectangle for cell + int n, // number of points + int dim, // dimension of space + int &cut_dim, // cutting dimension (returned) + ANNcoord &cut_val, // cutting value (returned) + int &n_lo) // num of points on low side (returned) +{ + int d; + ANNcoord min, max; // min/max coordinates + int br1, br2; // split break points + + ANNcoord max_length = bnds.hi[0] - bnds.lo[0]; + cut_dim = 0; + for (d = 1; d < dim; d++) { // find length of longest box side + ANNcoord length = bnds.hi[d] - bnds.lo[d]; + if (length > max_length) { + max_length = length; + cut_dim = d; + } + } + + ANNcoord max_spread = 0; // find legal cut with max spread + cut_dim = 0; + for (d = 0; d < dim; d++) { + ANNcoord length = bnds.hi[d] - bnds.lo[d]; + // is this side midpoint splitable + // without violating aspect ratio? + if (((double) max_length)*2.0/((double) length) <= FS_ASPECT_RATIO) { + // compute spread along this dim + ANNcoord spr = annSpread(pa, pidx, n, d); + if (spr > max_spread) { // best spread so far + max_spread = spr; + cut_dim = d; // this is dimension to cut + } + } + } + + max_length = 0; // find longest side other than cut_dim + for (d = 0; d < dim; d++) { + ANNcoord length = bnds.hi[d] - bnds.lo[d]; + if (d != cut_dim && length > max_length) + max_length = length; + } + // consider most extreme splits + ANNcoord small_piece = max_length / FS_ASPECT_RATIO; + ANNcoord lo_cut = bnds.lo[cut_dim] + small_piece;// lowest legal cut + ANNcoord hi_cut = bnds.hi[cut_dim] - small_piece;// highest legal cut + // find min and max along cut_dim + annMinMax(pa, pidx, n, cut_dim, min, max); + // is median below lo_cut? + if (annSplitBalance(pa, pidx, n, cut_dim, lo_cut) >= 0) { + if (max > lo_cut) { // are any points above lo_cut? + cut_val = lo_cut; // cut at lo_cut + annPlaneSplit(pa, pidx, n, cut_dim, cut_val, br1, br2); + n_lo = br1; // balance if there are ties + } + else { // all points below lo_cut + cut_val = max; // cut at max value + annPlaneSplit(pa, pidx, n, cut_dim, cut_val, br1, br2); + n_lo = n-1; + } + } + // is median above hi_cut? + else if (annSplitBalance(pa, pidx, n, cut_dim, hi_cut) <= 0) { + if (min < hi_cut) { // are any points below hi_cut? + cut_val = hi_cut; // cut at hi_cut + annPlaneSplit(pa, pidx, n, cut_dim, cut_val, br1, br2); + n_lo = br2; // balance if there are ties + } + else { // all points above hi_cut + cut_val = min; // cut at min value + annPlaneSplit(pa, pidx, n, cut_dim, cut_val, br1, br2); + n_lo = 1; + } + } + else { // median cut is good enough + n_lo = n/2; // split about median + annMedianSplit(pa, pidx, n, cut_dim, cut_val, n_lo); + } +} diff --git a/.svn/pristine/34/34e282be71f19e3361239fecc911f3de470b43f1.svn-base b/.svn/pristine/34/34e282be71f19e3361239fecc911f3de470b43f1.svn-base new file mode 100644 index 0000000..367b05b --- /dev/null +++ b/.svn/pristine/34/34e282be71f19e3361239fecc911f3de470b43f1.svn-base @@ -0,0 +1,186 @@ +#define WANT_STREAM + +#include "newmatap.h" +#include "newmatio.h" // to help namespace with VC++ 5 + +#ifdef use_namespace +using namespace RBD_LIBRARIES; +#endif + +//#include // if you want to use set_terminate + +/**************************** test exceptions ******************************/ + + +int main() +{ + // activate the next expression if you want to use compiler supported + // exceptions and you want Terminate to catch uncaught exceptions + // set_terminate(Terminate); + Real* s1; Real* s2; Real* s3; Real* s4; + // Forces cout to allocate memory at beginning + cout << "\nThis tests the exception system, so you will get\n" << + "a long list of error messages\n\n"; + cout << "\nPrint a real number (may help lost memory test): " << 3.14159265 << "\n"; + // Throw exception to set up exception buffer + Try { Throw(BaseException("Just a dummy\n")); } + CatchAll {}; + { Matrix A1(40,200); s1 = A1.Store(); } + { Matrix A1(1,1); s3 = A1.Store(); } + { + Tracer et("Test"); + + Try + { + Tracer et("Try block"); + + + + cout << "-----------------------------------------\n\n"; + Matrix A(2,3), B(4,5); A = 1; B = 2; + cout << "Incompatible dimensions\n"; + et.ReName("Block A"); + Try { Matrix C = A + B; } + CatchAll { cout << BaseException::what() << endl; } + cout << "-----------------------------------------\n\n"; + + cout << "Bad index\n"; + et.ReName("Block B"); + Try { Real f = A(3,3); cout << f << endl; } + CatchAll { cout << BaseException::what() << endl; } + cout << "-----------------------------------------\n\n"; + + cout << "Illegal conversion\n"; + et.ReName("Block C"); + Try { UpperTriangularMatrix U = A; } + CatchAll { cout << BaseException::what() << endl; } + cout << "-----------------------------------------\n\n"; + + cout << "Invert non-square matrix - 1\n"; + et.ReName("Block D"); + Try { CroutMatrix X = A; } + CatchAll { cout << BaseException::what() << endl; } + cout << "-----------------------------------------\n\n"; + + cout << "Invert non-square matrix - 2\n"; + et.ReName("Block E"); + Try { Matrix X = A.i(); } + CatchAll { cout << BaseException::what() << endl; } + cout << "-----------------------------------------\n\n"; + + cout << "Non 1x1 matrix to scalar\n"; + et.ReName("Block F"); + Try { Real f = A.AsScalar(); cout << f << endl; } + CatchAll { cout << BaseException::what() << endl; } + cout << "-----------------------------------------\n\n"; + + cout << "Matrix to vector\n"; + et.ReName("Block G"); + Try { ColumnVector CV = A;} + CatchAll { cout << BaseException::what() << endl; } + cout << "-----------------------------------------\n\n"; + + cout << "Invert singular matrix\n"; + et.ReName("Block H"); + Try { Matrix X(2,2); X<<1<<2<<2<<4; X = X.i(); } + CatchAll { cout << BaseException::what() << endl; } + cout << "-----------------------------------------\n\n"; + + cout << "SubMatrix error\n"; + et.ReName("Block I"); + Try { Matrix X = A.Row(3); } + CatchAll { cout << BaseException::what() << endl; } + cout << "-----------------------------------------\n\n"; + + cout << "SubMatrix error\n"; + et.ReName("Block J"); + Try { Matrix X = A.Row(0); } + CatchAll { cout << BaseException::what() << endl; } + cout << "-----------------------------------------\n\n"; + + cout << "Cholesky error\n"; + et.ReName("Block K"); + Try + { + SymmetricMatrix SM(50); SM = 10; + LowerTriangularMatrix L = Cholesky(SM); + } + CatchAll { cout << BaseException::what() << endl; } + cout << "-----------------------------------------\n\n"; + + cout << "Inequality error\n"; + et.ReName("Block L"); + Try + { + Matrix A(10,10), B(10,10); A = 10; B = 20; + if ( A < B) A = B; + } + CatchAll { cout << BaseException::what() << endl; } + cout << "-----------------------------------------\n\n"; + + cout << "Maximum of empty matrix\n"; + et.ReName("Block M"); + Try + { + Matrix A(10,20); A = 5; Matrix B=A.Rows(6,5); + MaximumAbsoluteValue(B); + } + CatchAll { cout << BaseException::what() << endl; } + cout << "-----------------------------------------\n\n"; + + cout << "Incorrectly ReSizing band matrix\n"; + et.ReName("Block N"); + Try + { + BandMatrix A(20,5,3); A = 5; UpperBandMatrix B; + B.ReSize(A); + } + CatchAll { cout << BaseException::what() << endl; } + cout << "-----------------------------------------\n\n"; + + cout << "Incorrectly ReSizing symmetric band matrix\n"; + et.ReName("Block M"); + Try + { + BandMatrix A(20,5,3); A = 5; SymmetricBandMatrix B; + B.ReSize(A); + } + CatchAll { cout << BaseException::what() << endl; } + cout << "-----------------------------------------\n\n"; + + cout << "ReSize CroutMatrix\n"; + et.ReName("Block O"); + Try + { + Matrix A(3,3); A = 0; A(1,1) = A(2,2) = A(3,3) = 1; + CroutMatrix B = A;; + B.ReSize(A); + } + CatchAll { cout << BaseException::what() << endl; } + cout << "-----------------------------------------\n\n"; + + } + CatchAll { cout << "\nException generated in test program\n\n"; } + } + + cout << "\nEnd test\n"; + { Matrix A1(40,200); s2 = A1.Store(); } + cout << "\n(The following memory checks are probably not valid with all\n"; + cout << "compilers - see documentation)\n"; + cout << "\nChecking for lost memory: " + << (unsigned long)s1 << " " << (unsigned long)s2 << " "; + if (s1 != s2) cout << " - error\n"; else cout << " - ok\n"; + { Matrix A1(1,1); s4 = A1.Store(); } + cout << "\nChecking for lost memory: " + << (unsigned long)s3 << " " << (unsigned long)s4 << " "; + if (s3 != s4) cout << " - error\n\n"; else cout << " - ok\n\n"; + + +#ifdef DO_FREE_CHECK + FreeCheck::Status(); +#endif + +// Throw(Runtime_error("Exception outside try block")); + + return 0; +} diff --git a/.svn/pristine/35/35308cc3cdb801e83a4d492f5c93141c5f7f2fa5.svn-base b/.svn/pristine/35/35308cc3cdb801e83a4d492f5c93141c5f7f2fa5.svn-base new file mode 100644 index 0000000..fab836e --- /dev/null +++ b/.svn/pristine/35/35308cc3cdb801e83a4d492f5c93141c5f7f2fa5.svn-base @@ -0,0 +1,929 @@ +/* + * trackermanager implementation + * + * Copyright (C) ZhangLiang, YuanJun, Li Wei, Li Ming, Andreas Nuechter + * + * Released under the GPL version 3. + * + */ + +/** + * @file + * @brief Main programm for dynamic Velodyne SLAM + * + * @author Andreas Nuechter. Jacobs University Bremen, Germany + * @author YuanJun, Wuhan University, China + * @author ZhangLiang, Wuhan University, China + * @author Li Wei, Wuhan University, China + * @author Li Ming, Wuhan University, China + */ +#include +#include +#include +#include + +#ifdef _MSC_VER +#include +#else +#include +#endif + +#include "slam6d/scan.h" +#include "slam6d/globals.icc" + +#include "veloslam/color_util.h" +#include "veloslam/veloscan.h" +#include "veloslam/trackermanager.h" +#include "veloslam/debugview.h" +#include "veloslam/kalmanfilter.h" +#include "veloslam/lap.h" + + + +#define KG 35 +#define BIGNUM 100000 + +int sliding_window_size = 6; +int current_sliding_window_pos =0; +Trajectory VelodyneTrajectory; +VeloScan * g_pfirstScan; +float constant_static_or_moving = 20.0; + +int GetScanID_in_SlidingWindow(int absNO, int current_pos, int window_size) +{ + int firstNO=-1; + // relative scanID absolute scanID + // absNO (6,7,8,9) current_pos(6,7,8,9) window_size =6 +#ifdef NO_SLIDING_WINDOW + firstNO = absNO; +#else + if( (absNO >=(current_pos - window_size) ) + && (absNO <= current_pos) ) + { + firstNO =absNO - (current_pos - window_size ); + } + else + { + //in first scans + firstNO = -1; + } + if(current_pos < window_size) + { + //in first scans + firstNO = absNO; + } +#endif +// cout << " absNO " << absNO << " firstNO "<0) + { + radiusDiff=fabs(tracker.statusList.back().radius-glu.radius); + thetaDiff=fabs(tracker.statusList.back().theta-glu.theta); + sizeDiff =abs(tracker.statusList.back().size-glu.size); + shapeDiff =fabs( fabs(tracker.statusList.back().size_x-glu.size_x) + + fabs(tracker.statusList.back().size_y-glu.size_y) + + fabs(tracker.statusList.back().size_z-glu.size_z) ); + positionDiff = sqrt( (tracker.statusList.back().avg_x -glu.avg_x)*(tracker.statusList.back().avg_x -glu.avg_x) + + (tracker.statusList.back().avg_z -glu.avg_z)*(tracker.statusList.back().avg_z -glu.avg_z) + ) ; + } + value= radiusDiff*1.0 + thetaDiff*1.0 + sizeDiff*0.8 + shapeDiff*0.8 + positionDiff * 0.3 ; + if(value < minValue) + { + minValue=value; + minID=i; + temp=glu; + flag=true; + } + + } + + } + + // find matched tracker. + if (flag) + { + tracker.kalmanFilter.stateUpdate(temp,rollAngle,delta_Pos); + tracker.kalmanFilter.timeUpdate(); + // movestate=tracker.kalmanFilter.GetCurrentState(); + + // cout<<"The tracker with trackerID:"<::iterator it; + int trackNO =0; + for(it=tracks.begin() ; it!=tracks.end();it++ ) + { + Tracker &tracker=*it; + trackNO ++; + + if (!(tracker.missMatch)) + { + matchID=MatchTrackers(scanRef,tracker,KG); + } + else + { + matchID=MatchTrackers(scanRef,tracker,1.5*KG); + } + + if(matchID==-1) + { + // log miss times of tracker + tracker.missMatch=true; + tracker.missedTime++; + // cout << "missing tracker" << tracker.trackerID + // <<" times " <=0 ) + { + scanRef.scanClusterFeatureArray[matchID].trackNO = trackNO; + + clusterFeature &glu=scanRef.scanClusterFeatureArray[matchID]; + cluster &gluData=scanRef.scanClusterArray[matchID]; + glu.frameNO= scanRef.scanid; + glu.selfID = matchID; + + // save feature + tracker.statusList.push_back(glu); + tracker.dataList.push_back(gluData); + tracker.matchClusterID=matchID; + tracker.missMatch=false; + + clusterStatus[matchID].Matched=true; + // cout << "Match tracker" << tracker.trackerID + // <<" size of " <::iterator it; + cout<<" tracker list : "<::iterator it; + int trackNO =0; + for(it=tracks.begin() ; it!=tracks.end();) + { + + Tracker &tracker=*it; + +#ifndef NO_SLIDING_WINDOW + if (!tracker.statusList.empty()) + { + deque::iterator Iter1; + deque::iterator Iter2; + vector::iterator Iter3; + Iter1=tracker.statusList.begin(); + Iter2=tracker.dataList.begin(); + Iter3=tracker.moveStateList.begin(); + + do + { + clusterFeature &tempClu=*Iter1; + if(tempClu.frameNO current_sliding_window_pos) + { + //cout<<"trackerID: "<::iterator Iter; + for (Iter=tracks.begin();Iter!=tracks.end();Iter++) + { + Tracker temp=*Iter; + temp.TrackerReset(); + } + tracks.clear(); + return; +} + + +int TrackerManager::CalculateTrackersFeature(vector allScans, int currentNO ,int windowsize) +{ + int i,j,k,colorIdx; + float movement; + list::iterator it; + + int n; + + for(it=tracks.begin(); it!=tracks.end(); it++) + { + Tracker &tracker=*it; + tracker.moving_distance = 0.0; + + int size=tracker.statusList.size(); + if ( size <2 ) + { + continue; + } + movement =0; + n=0; + + for ( i=0;i=current_sliding_window_pos - sliding_window_size&&glu2.frameNO <=current_sliding_window_pos) + { + movement += sqrt( (p1.x -p2.x)*(p1.x -p2.x)+(p1.z -p2.z)*(p1.z -p2.z) ); + n++; + } +#else + movement += sqrt( (p1.x -p2.x)*(p1.x -p2.x)+(p1.z -p2.z)*(p1.z -p2.z) ); +#endif + // cout << " tracker no" << tracker.matchClusterID <<" " + // << p1.x <<" " << p2.x <<" " + //<< p1.y <<" " << p2.y <<" " + //<< p1.z <<" " << p2.z <<" " << movement <<" " << endl; + + } + +#ifdef NO_SLIDING_WINDOW + if (n!=0) + { + tracker.moving_distance=movement/n; + } + else + { + tracker.moving_distance=0; + } + +#else + tracker.moving_distance = movement/(size-1); +#endif + + } + return 0; +} + +int TrackerManager::MarkClassifiyTrackersResult(vector allScans, int currentNO ,int windowsize) +{ + int i,j,k,colorIdx; + float movement; + list::iterator it; + + // mark all objets type such as moving or static + for(it=tracks.begin(); it!=tracks.end(); it++) + { + int currentScanNo =0; + Tracker &tracker=*it; + int size=tracker.statusList.size(); + // no tracking all for slam + // for tracking classifiation //not transfrom to scan + if (size < 3) + { + for(i=0;iscanClusterFeatureArray[glu1.selfID]; + cluster &realgclu = CurrentScan->scanClusterArray[glu1.selfID]; + + realglu1.clusterType = CLUSTER_TYPE_STATIC_OBJECT; + for(j =0; j< realgclu.size() ; ++j) + { + cellFeature &gcF = *(realgclu[j]); + gcF.cellType = CELL_TYPE_STATIC; + } + } + continue; + } + + for(i=0;iscanClusterFeatureArray[glu1.selfID]; + cluster &realgclu = CurrentScan->scanClusterArray[glu1.selfID]; + + if(tracker.moving_distance < constant_static_or_moving) + { + realglu1.clusterType = CLUSTER_TYPE_STATIC_OBJECT; + for(j =0; j< realgclu.size() ; ++j) + { + cellFeature &gcF = *(realgclu[j]); + gcF.cellType = CELL_TYPE_STATIC; + } + } + else + { + realglu1.clusterType = CLUSTER_TYPE_MOVING_OBJECT; + for(j =0; j< realgclu.size() ; ++j) + { + cellFeature &gcF = *(realgclu[j]); + gcF.cellType = CELL_TYPE_MOVING; + } + + } + + } + } + return 0; +} + + +int TrackerManager::ClassifiyTrackersObjects(vector allScans, int currentNO ,int windowsize) +{ + CalculateTrackersFeature(allScans, currentNO, windowsize); + MarkClassifiyTrackersResult(allScans, currentNO , windowsize); + return 0; +} + +int TrackerManager::UpdateClustersPoistioninTrackers() +{ + int i,j; + + list::iterator it; + for(it=tracks.begin() ; it!=tracks.end();it++ ) + { + Tracker &tracker=*it; +/* + firstNO = GetScanID_in_SlidingWindow(glu1.frameNO, + current_sliding_window_pos, + sliding_window_size); + secondNO = GetScanID_in_SlidingWindow(glu2.frameNO, + current_sliding_window_pos, + sliding_window_size); + if(firstNO <0 || secondNO< 0 ) + continue; + + Scan *firstScan = (Scan *)g_pfirstScan; + Scan *CurrentScan = allScans[firstNO]; + Scan *CurrentScanNext = allScans[secondNO]; + + double deltaMat[16]; + double deltaMatNext[16]; + + GetCurrecntdelteMat(*CurrentScan , *firstScan, deltaMat); + GetCurrecntdelteMat(*CurrentScanNext , *firstScan, deltaMatNext); + + p1.x = glu1.avg_x; p1.y= glu1.avg_y;p1.z=glu1.avg_z; + p1text.x= glu1.avg_x+150; p1text.y= glu1.avg_y+80; p1text.z=glu1.avg_z+50; + p2.x = glu2.avg_x; p2.y= glu2.avg_y; p2.z=glu2.avg_z; + p2text.x= glu2.avg_x+150; p2text.y= glu2.avg_y+80; p2text.z=glu2.avg_z+50; +*/ + } + return 0; +} + +void TrackerManager::GetTwoScanRoll(Scan *CurrentScan,Scan *preScan)//??? +{ + double tempMat[16],deltaMat[16]; + M4inv(preScan->get_transMat(), tempMat); + MMult(CurrentScan->get_transMat(), tempMat,deltaMat); + Matrix4ToEuler(deltaMat,delta_Theta,delta_Pos); + //cout<<"delta_Theta: "<trackSize?clusterSize:trackSize; + } + else + { + maxSize=clusterSize; + } + + CMatrix costMatrix(maxSize,maxSize); + + int i=0,j,k; + double costValue; + float radiusDiff; + float thetaDiff; + float sizeDiff; + float positionDiff; + CMatrix standardDeviation(2,2),measurementErro(2,1); + Measurement predictMeasurement; + bool IsSmaller1,IsSmaller2; + float kg; + + list::iterator it; + for(it=tracks.begin(); it!=tracks.end(); it++) + { + Tracker &tracker=*it; + + predictMeasurement=tracker.kalmanFilter.GetPredictMeasurement(rollAngle,delta_Pos); + standardDeviation=tracker.kalmanFilter.CalMeasureDeviation(); + + if (tracker.missMatch) + { + kg=1.5*KG; + } + else + { + kg=KG; + } + + k=0; + for(j=0;j::iterator it; + for(it=tracks.begin() ; it!=tracks.end();it++) + { + Tracker &tracker=*it; + trackNO ++; + trackerIndex++; + if (missFlag[trackerIndex]) + { + tracker.missMatch=true; + tracker.missedTime++; + + } + else + { + int clusterID=rowsol[trackerIndex]; + int matchID=clusterIndex[clusterID]; + //cout<<"TrackerID: "< +using std::ifstream; +#include +using std::cerr; +using std::endl; + + +#include +using std::swap; + +#ifdef _MSC_VER +#include +#endif + +/** + * Reads specified scans from given directory in + * the XYZ file format (i.e., pure 3D data points only in a right handed * coordinate system) + * It will be compiled as shared lib. + * + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param dir The directory from which to read + * @param maxDist Reads only Points up to this Distance + * @param minDist Reads only Points from this Distance + * @param euler Initital pose estimates (will not be applied to the points + * @param ptss Vector containing the read points + */ +int ScanIO_xyz::readScans(int start, int end, string &dir, int maxDist, int minDist, + double *euler, vector &ptss) +{ + static int fileCounter = start; + string scanFileName; + + ifstream scan_in, pose_in; + double maxDist2 = sqr(maxDist); + double minDist2 = sqr(minDist); + + if (end > -1 && fileCounter > end) return -1; // 'nuf read + + scanFileName = dir + to_string(fileCounter,3) + ".xyz"; + scan_in.open(scanFileName.c_str()); + // read 3D scan + if (!scan_in.good()) { cerr << "ERROR: Missing file " << scanFileName << endl; exit(1); } + cout << "Processing Scan " << scanFileName; + + char firstline[255]; + scan_in.getline(firstline, 255); + + euler[0] = 0.0; + euler[1] = 0.0; + euler[2] = 0.0; + euler[3] = 0.0; + euler[4] = 0.0; + euler[5] = 0.0; + + while (scan_in.good()) { + Point p; + scan_in >> p.x >> p.z >> p.y; + p.x *= 100; + p.y *= 100; + p.z *= 100; + + if (maxDist == -1 || sqr(p.x) + sqr(p.y) + sqr(p.z) < maxDist2) + if (minDist == -1 || sqr(p.x) + sqr(p.y) + sqr(p.z) > minDist2) + ptss.push_back(p); + } + + cout << " done" << endl; + + scan_in.close(); + scan_in.clear(); + pose_in.close(); + pose_in.clear(); + fileCounter++; + + return 1; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_xyz; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/.svn/pristine/36/360ab5406af1460215ea20d581e78e4f328c78fd.svn-base b/.svn/pristine/36/360ab5406af1460215ea20d581e78e4f328c78fd.svn-base new file mode 100644 index 0000000..3c3458e --- /dev/null +++ b/.svn/pristine/36/360ab5406af1460215ea20d581e78e4f328c78fd.svn-base @@ -0,0 +1,140 @@ +/** + * @file + * @brief Implementation of reading 3D scans + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "slam6d/scan_io_uos.h" +#include "slam6d/globals.icc" +#include +using std::ifstream; +#include +using std::cout; +using std::cerr; +using std::endl; + +#ifdef _MSC_VER +#include +#endif + +/** + * Reads specified scans from given directory. + * + * Scan poses will NOT be initialized after a call + * to this function. + * + * This function actually implements loading of 3D scans + * in UOS file format and will be compiled as shared lib. + * + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param dir The directory from which to read + * @param maxDist Reads only Points up to this Distance + * @param mindist Reads only Points from this Distance + * @param euler Initital pose estimates (will not be applied to the points + * @param ptss Vector containing the read points + */ +int ScanIO_uos::readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss) +{ + static int fileCounter = start; + string scanFileName; + string poseFileName; + + ifstream scan_in, pose_in; + + double maxDist2 = sqr(maxDist); + double minDist2 = sqr(mindist); + + int my_fileNr = fileCounter; + + if (end > -1 && fileCounter > end) return -1; // 'nuf read + scanFileName = dir + "scan" + to_string(fileCounter,3) + ".3d"; + poseFileName = dir + "scan" + to_string(fileCounter,3) + ".pose"; + + scan_in.open(scanFileName.c_str()); + pose_in.open(poseFileName.c_str()); + + // read 3D scan + if (!pose_in.good() && !scan_in.good()) return -1; // no more files in the directory + if (!pose_in.good()) { + cerr << "ERROR: Missing file " << poseFileName << endl; //exit(1); + cerr << "using default pose 0,0,0 !!!" << endl; + for (unsigned int i = 0; i < 6; euler[i++] = 0.0); + } else { + for (unsigned int i = 0; i < 6; pose_in >> euler[i++]); + } + + if (!scan_in.good()) { cerr << "ERROR: Missing file " << scanFileName << endl; exit(1); } + cout << "Processing Scan " << scanFileName; + + + cout << " @ pose (" << euler[0] << "," << euler[1] << "," << euler[2] + << "," << euler[3] << "," << euler[4] << "," << euler[5] << ")" << endl; + + // convert angles from deg to rad + for (unsigned int i = 3; i <= 5; i++) euler[i] = rad(euler[i]); + + // overread the first line + char dummy[255]; + scan_in.getline(dummy, 255); + + while (scan_in.good()) { + Point p; + try { + scan_in >> p; + } catch (...) { + break; + } + // load points up to a certain distance only + // maxDist2 = -1 indicates no limitation + if (maxDist == -1 || sqr(p.x) + sqr(p.y) + sqr(p.z) < maxDist2) + if (mindist == -1 || sqr(p.x) + sqr(p.y) + sqr(p.z) > minDist2) + ptss.push_back(p); + } + scan_in.close(); + scan_in.clear(); + pose_in.close(); + pose_in.clear(); + fileCounter++; + + return my_fileNr; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_uos; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/.svn/pristine/36/3668813563e67cd151ed11942afe7b3c8a39f042.svn-base b/.svn/pristine/36/3668813563e67cd151ed11942afe7b3c8a39f042.svn-base new file mode 100644 index 0000000..5027fed --- /dev/null +++ b/.svn/pristine/36/3668813563e67cd151ed11942afe7b3c8a39f042.svn-base @@ -0,0 +1,67 @@ +Note: this info is related to example files, used to test gOCR. As of this +writing, these files are not available to non-developers. So, if you aren't +a developer, forget about this file. + + EXAMPLE FILES + +1. Scanning +The examples can be scanned from anything; when looking for something, try to +have in mind the kind of tests you are expecting to do: if you're testing +accents recognition, look for texts in portuguese, french, etc. (pretty obvious, +but keeping this in mind will help to have a large gamma of files covering +different kinds of tests). + +If you're not interested in testing DPIs, scan at 150 or 300dpi. + +If you're not interested in testing the dust removal, cleaning, etc, functions, +do the best scan you can. Usually increasing brightness and contrast will +provide a sharper, cleaner image. + +Save the image in a supported format: for example, pgm or jpg. If a compression +will result in a significant reduction of size, compress the image. BZIP2 +usually is the best compressor around, but gzip is more popular in the unix +world. In the wintel world, people use ZIP, and usually will have to search for +an application capable of opening .gz or .bz2 (though WinZIP opens at least the +former). + +2. Sorting +To help others to find the files they are looking for, the examples/ directory +is divided in several other directories, which may be subdivided. When +uploading a new example, look for the most suitable location. Depending of the +directory, you probably will name your file with interesting info: for example, +when uploading a image with all the characters of the foo font, the best thing +to do is to place it at examples/fonts/foo.jpg. + +3. "Translation" +Along with the image file, upload a text file with the expected output. Be +careful with this file: it must resemble the original text as much as possible. +Don't add extra new lines (\n), keep hyphenized words, etc. Name this file with +the same name of the image file. + +In the beginning of the text file, you should provide comments, to help +searches. Use the following sample: + +# Comments +# DPI: +# Colors: +# Image size (colsXrows): +# Fonts: +# Font sizes: +# Layout form: +# Number of pictures: +# Language: +# Quality of scan: +# Non-ASCII characters: +# Extra: + +Check existing examples to see what people have been doing. + +Any lines that begin with # will be considered comments, so you may use several +lines for comments or add new fields. Though gOCR itself doesn't depend on, and +won't use, this file, it will be used by scripts. + +4. Other sources (WEB) + + - http://www.clerkweb.house.gov/elections/elections.htm (Nov2002) + PDF-files with lot of tables + diff --git a/.svn/pristine/36/3684cf9b68711b137863b5d56a7ade70d7226d16.svn-base b/.svn/pristine/36/3684cf9b68711b137863b5d56a7ade70d7226d16.svn-base new file mode 100644 index 0000000..a90112d --- /dev/null +++ b/.svn/pristine/36/3684cf9b68711b137863b5d56a7ade70d7226d16.svn-base @@ -0,0 +1,92 @@ +#ifndef __GRIDPOINT_H_ +#define __GRIDPOINT_H_ + +/** + * The class represents a point in the grid. It contains its + * absolute coordinates (x, z), a counter how often the point + * has been found within a scan and a counter how often it has + * been found occupied. + * + * @author Sebastian Stock, Uwe Hebbelmann, Andre Schemschat + * @date 11.02.2008 + */ +class gridPoint +{ + private: + /** The absolute x coordinate */ + long x; + + /** The absolute z coordinate */ + long z; + + /** Counter how often point was visited */ + unsigned int count; + + /** Counter how often point was occupied */ + unsigned int occupied; + + public: + /** @brief CTor */ + gridPoint(long x, long z); + + /** @brief Adds amount to the internal counter */ + void addCount(unsigned int count, unsigned int occupied); + + /** @brief Adds fixed values to both counters */ + void addFixed(unsigned int count, unsigned int occupied); + + /** @brief Overwrites the internal counters directly */ + void setFixed(unsigned int count, unsigned int occupied); + + /** @brief Returns the occupied value as Percent */ + float getPercent() const; + + /** + * Getter for the visited counter + * @return Count + */ + inline unsigned int getCount() const{ + return this->count; + } + + /** + * Getter for the occupied counter + * @return Count of Occupieds + */ + inline unsigned int getOccupied() const{ + return this->occupied; + } + + /** + * Getter for the absolute x coordinate + * @return the absolute x coordinate + */ + inline long getX() const { + return this->x; + } + + /** + * Getter for the absolute z coordinate + * @return the absolute z coordinate + */ + inline long getZ() const { + return this->z; + } + + /** + * Checks if the point is smaller than the given point + * @param p the point to campare to + * @return true if smaller else false + */ + inline bool isSmallerThan(const gridPoint& p) const + { + if (getX() < p.getX()) return true; + if (getX() > p.getX()) return false; + if (getZ() < p.getZ()) return true; + if (getZ() > p.getZ()) return false; + + return true; + } +}; + +#endif diff --git a/.svn/pristine/37/3724fccc6a57bb76f59869a77fec12bdccdd8927.svn-base b/.svn/pristine/37/3724fccc6a57bb76f59869a77fec12bdccdd8927.svn-base new file mode 100644 index 0000000..950e6af --- /dev/null +++ b/.svn/pristine/37/3724fccc6a57bb76f59869a77fec12bdccdd8927.svn-base @@ -0,0 +1,26 @@ +if(NOT DEFINED PROCESSOR_COUNT) + # Unknown: + set(PROCESSOR_COUNT 0) + + # Linux: + set(cpuinfo_file "/proc/cpuinfo") + if(EXISTS "${cpuinfo_file}") + file(STRINGS "${cpuinfo_file}" procs REGEX "^processor.: [0-9]+$") + list(LENGTH procs PROCESSOR_COUNT) + endif() + + # Mac: + if(APPLE) + find_program(cmd_sys_pro "system_profiler") + if(cmd_sys_pro) + execute_process(COMMAND ${cmd_sys_pro} OUTPUT_VARIABLE info) + string(REGEX REPLACE "^.*Total Number Of Cores: ([0-9]+).*$" "\\1" + PROCESSOR_COUNT "${info}") + endif() + endif() + + # Windows: + if(WIN32) + set(PROCESSOR_COUNT "$ENV{NUMBER_OF_PROCESSORS}") + endif() +endif() diff --git a/.svn/pristine/37/376b11a8434a3f878d06412b1444e93af88b7841.svn-base b/.svn/pristine/37/376b11a8434a3f878d06412b1444e93af88b7841.svn-base new file mode 100644 index 0000000..f057018 --- /dev/null +++ b/.svn/pristine/37/376b11a8434a3f878d06412b1444e93af88b7841.svn-base @@ -0,0 +1,61 @@ +//---------------------------------------------------------------------- +// File: bd_search.cpp +// Programmer: David Mount +// Description: Standard bd-tree search +// Last modified: 01/04/05 (Version 1.0) +//---------------------------------------------------------------------- +// Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +// David Mount. All Rights Reserved. +// +// This software and related documentation is part of the Approximate +// Nearest Neighbor Library (ANN). This software is provided under +// the provisions of the Lesser GNU Public License (LGPL). See the +// file ../ReadMe.txt for further information. +// +// The University of Maryland (U.M.) and the authors make no +// representations about the suitability or fitness of this software for +// any purpose. It is provided "as is" without express or implied +// warranty. +//---------------------------------------------------------------------- +// History: +// Revision 0.1 03/04/98 +// Initial release +//---------------------------------------------------------------------- + +#include "bd_tree.h" // bd-tree declarations +#include "kd_search.h" // kd-tree search declarations + +//---------------------------------------------------------------------- +// Approximate searching for bd-trees. +// See the file kd_search.cpp for general information on the +// approximate nearest neighbor search algorithm. Here we +// include the extensions for shrinking nodes. +//---------------------------------------------------------------------- + +//---------------------------------------------------------------------- +// bd_shrink::ann_search - search a shrinking node +//---------------------------------------------------------------------- + +void ANNbd_shrink::ann_search(ANNdist box_dist) +{ + // check dist calc term cond. + if (ANNmaxPtsVisited != 0 && ANNptsVisited > ANNmaxPtsVisited) return; + + ANNdist inner_dist = 0; // distance to inner box + for (int i = 0; i < n_bnds; i++) { // is query point in the box? + if (bnds[i].out(ANNkdQ)) { // outside this bounding side? + // add to inner distance + inner_dist = (ANNdist) ANN_SUM(inner_dist, bnds[i].dist(ANNkdQ)); + } + } + if (inner_dist <= box_dist) { // if inner box is closer + child[ANN_IN]->ann_search(inner_dist); // search inner child first + child[ANN_OUT]->ann_search(box_dist); // ...then outer child + } + else { // if outer box is closer + child[ANN_OUT]->ann_search(box_dist); // search outer child first + child[ANN_IN]->ann_search(inner_dist); // ...then outer child + } + ANN_FLOP(3*n_bnds) // increment floating ops + ANN_SHR(1) // one more shrinking node +} diff --git a/.svn/pristine/37/37bc7b6725bc7ff69fdf5f5d05212bda9b2d9001.svn-base b/.svn/pristine/37/37bc7b6725bc7ff69fdf5f5d05212bda9b2d9001.svn-base new file mode 100644 index 0000000..02ea640 --- /dev/null +++ b/.svn/pristine/37/37bc7b6725bc7ff69fdf5f5d05212bda9b2d9001.svn-base @@ -0,0 +1,602 @@ +///////////////////////////////////////////////////////////////////////////// +// Name : optvalue.cpp +// Author : John Labenski +// Created : 07/01/02 +// Copyright: John Labenski, 2002 +// License : wxWidgets v2 +///////////////////////////////////////////////////////////////////////////// + +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) + #pragma implementation "optvalue.h" +#endif + +// For compilers that support precompilation, includes "wx/wx.h" +#include "wx/wxprec.h" + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#ifndef WX_PRECOMP + #include "wx/object.h" + #include "wx/string.h" + #include "wx/gdicmn.h" +#endif // WX_PRECOMP + +#include "wx/tokenzr.h" +#include "wx/things/optvalue.h" + +#include "wx/arrimpl.cpp" +WX_DEFINE_OBJARRAY(wxArrayOptionValue); + +//---------------------------------------------------------------------------- +// Global wxString utilities +//---------------------------------------------------------------------------- +/* +wxArrayString wxStringToWords( const wxString &string ) +{ + +// wxArrayString arr; +// wxString word, s = string.Strip(wxString::both); +// wxMemoryInputStream memstream( s.c_str(), string.Length() ); +// wxTextInputStream textstream(memstream); +// while (!memstream.Eof()) +// { +// word = textstream.ReadWord(); +// if (!word.IsEmpty()) arr.Add(word.Strip(wxString::both)); +// } +// return arr; + + wxArrayString arr; + wxString s = string.Strip(wxString::both); + while (!s.IsEmpty()) + { + arr.Add(s.BeforeFirst(wxT(' '))); + s = s.AfterFirst(wxT(' ')).Strip(wxString::both); + } + return arr; +} +*/ + +//---------------------------------------------------------------------------- +// wxOptionValueRefData +//---------------------------------------------------------------------------- + +class wxOptionValueRefData: public wxObjectRefData +{ +public: + wxOptionValueRefData() : wxObjectRefData() {} + + wxOptionValueRefData(const wxOptionValueRefData& data) : wxObjectRefData() + { + m_type = data.m_type; + m_optionNames = data.m_optionNames; + m_optionValues = data.m_optionValues; + m_children = data.m_children;; + } + + ~wxOptionValueRefData() {} + + wxString m_type; + wxArrayString m_optionNames; + wxArrayString m_optionValues; + wxArrayOptionValue m_children; +}; + +#define M_OPTVALUDATA ((wxOptionValueRefData *)m_refData) + +//---------------------------------------------------------------------------- +// wxOptionValue - a ref counted wxString key, wxString value container +//---------------------------------------------------------------------------- + +IMPLEMENT_DYNAMIC_CLASS(wxOptionValue, wxObject); + +wxObjectRefData *wxOptionValue::CreateRefData() const +{ + return new wxOptionValueRefData; +} +wxObjectRefData *wxOptionValue::CloneRefData(const wxObjectRefData *data) const +{ + return new wxOptionValueRefData(*(const wxOptionValueRefData *)data); +} + +bool wxOptionValue::Create() +{ + UnRef(); + m_refData = new wxOptionValueRefData(); + return Ok(); +} + +bool wxOptionValue::Create( const wxOptionValue &optValue ) +{ + wxCHECK_MSG( optValue.Ok(), false, wxT("Invalid wxOptionValue") ); + + UnRef(); + Ref( optValue ); + return Ok(); +} + +bool wxOptionValue::Create( const wxString &string ) +{ + UnRef(); + m_refData = new wxOptionValueRefData(); + + int i, start = 0, length = string.Length(); + + wxString buff; + + const wxChar *s = string.GetData(); + +// const wxChar comma = 44; // comma + const wxChar tab = 9; // tab +// const wxChar space = 32; // space + const wxChar cr = 13; // carrage return + const wxChar lf = 10; // line feed + const wxChar openbracket = wxT('['); + const wxChar closebracket = wxT(']'); + const wxChar equals = wxT('='); + const wxChar ccr = wxT('\n'); + + bool has_type = false; + + for (i=0; im_type = buff; + s++; + start = i+1; + break; + } + else if ((*s != tab) && (*s != cr) && (*s != lf) && (*s != ccr)) + { + buff.Append(*s); + } + else + return false; + } + } + + buff.Clear(); + for (i=start; i=0; j--) + { + const wxChar c = t[j]; + if ((c == cr) || (c == lf) || (c == ccr) || (c == tab)) + { + j++; + break; + } + } + if (j<0) j = 0; + M_OPTVALUDATA->m_optionNames.Add(buff.Mid(j)); + buff.Remove(j).Trim(true); + } + if (!buff.IsEmpty()) + M_OPTVALUDATA->m_optionValues.Add(buff); + + buff.Clear(); + } + s++; + } + + buff.Trim(false).Trim(true); + if (!buff.IsEmpty()) + M_OPTVALUDATA->m_optionValues.Add(buff); + + if ((M_OPTVALUDATA->m_optionValues.GetCount() != M_OPTVALUDATA->m_optionNames.GetCount())) + { + int i; + wxPrintf(wxT("wxOptionValue::wxOptionValue( const wxString &string BUSTED\n")); + + wxPrintf(wxT("[%s]\n"), M_OPTVALUDATA->m_type.c_str()); + for (i=0; i<(int)M_OPTVALUDATA->m_optionNames.GetCount(); i++) + wxPrintf(wxT("{%s}\n"), M_OPTVALUDATA->m_optionNames[i].c_str()); + for (i=0; i<(int)M_OPTVALUDATA->m_optionValues.GetCount(); i++) + wxPrintf(wxT("{%s}\n"), M_OPTVALUDATA->m_optionValues[i].c_str()); + fflush(stdout); + } + + return ((M_OPTVALUDATA->m_optionValues.GetCount() > 0) && + (M_OPTVALUDATA->m_optionValues.GetCount() != + M_OPTVALUDATA->m_optionNames.GetCount())); +} + +bool wxOptionValue::Copy( const wxOptionValue &optValue ) +{ + wxCHECK_MSG( optValue.Ok(), false, wxT("Invalid wxOptionValue") ); + + if (!Ok()) Create(); + + M_OPTVALUDATA->m_type = optValue.GetType(); + M_OPTVALUDATA->m_optionNames = optValue.GetOptionNames(); + M_OPTVALUDATA->m_optionValues = optValue.GetOptionValues(); + if (optValue.GetChildrenCount()) + M_OPTVALUDATA->m_children = *optValue.GetChildren(); + else + M_OPTVALUDATA->m_children.Clear(); + + return true; +} + +bool wxOptionValue::Ok() const +{ + return M_OPTVALUDATA != NULL; +} + +void wxOptionValue::Destroy() +{ + UnRef(); +} + +//----------------------------------------------------------------------------- + +wxString wxOptionValue::GetType() const +{ + wxCHECK_MSG( Ok(), wxEmptyString, wxT("Invalid wxOptionValue") ); + return M_OPTVALUDATA->m_type; +} + +void wxOptionValue::SetType( const wxString &type ) +{ + wxCHECK_RET( Ok(), wxT("Invalid wxOptionValue") ); + M_OPTVALUDATA->m_type = type; +} + +//----------------------------------------------------------------------------- + +size_t wxOptionValue::GetChildrenCount() const +{ + wxCHECK_MSG( Ok(), 0, wxT("Invalid wxOptionValue") ); + return M_OPTVALUDATA->m_children.GetCount(); +} +wxArrayOptionValue *wxOptionValue::GetChildren() const +{ + wxCHECK_MSG( Ok(), NULL, wxT("Invalid wxOptionValue") ); + return &M_OPTVALUDATA->m_children; +} +bool wxOptionValue::AddChild( const wxOptionValue& child ) +{ + wxCHECK_MSG( Ok() && child.Ok(), 0, wxT("Invalid wxOptionValue") ); + M_OPTVALUDATA->m_children.Add(child); + return true; +} +void wxOptionValue::DeleteChildren() +{ + wxCHECK_RET( Ok(), wxT("Invalid wxOptionValue") ); + M_OPTVALUDATA->m_children.Clear(); +} + +//----------------------------------------------------------------------------- + +size_t wxOptionValue::GetOptionCount() const +{ + wxCHECK_MSG( Ok(), 0, wxT("Invalid wxOptionValue") ); + return M_OPTVALUDATA->m_optionNames.GetCount(); +} + +wxArrayString wxOptionValue::GetOptionNames() const +{ + wxCHECK_MSG( Ok(), wxArrayString(), wxT("Invalid wxOptionValue") ); + return M_OPTVALUDATA->m_optionNames; +} +wxArrayString wxOptionValue::GetOptionValues() const +{ + wxCHECK_MSG( Ok(), wxArrayString(), wxT("Invalid wxOptionValue") ); + return M_OPTVALUDATA->m_optionValues; +} + +wxString wxOptionValue::GetOptionName( size_t n ) const +{ + wxCHECK_MSG( Ok() && (nm_optionNames.GetCount()), + wxEmptyString, wxT("Invalid wxOptionValue") ); + return M_OPTVALUDATA->m_optionNames[n]; +} + +wxString wxOptionValue::GetOptionValue( size_t n ) const +{ + wxCHECK_MSG( Ok() && (nm_optionValues.GetCount()), + wxEmptyString, wxT("Invalid wxOptionValue") ); + return M_OPTVALUDATA->m_optionValues[n]; +} + +int wxOptionValue::HasOption(const wxString& name) const +{ + wxCHECK_MSG( Ok(), wxNOT_FOUND, wxT("Invalid wxOptionValue") ); + int index = M_OPTVALUDATA->m_optionNames.Index(name, false); + return index; +} + +int wxOptionValue::FindOption(const wxString &part_of_option_name) const +{ + wxCHECK_MSG( Ok(), wxNOT_FOUND, wxT("Invalid wxOptionValue") ); + int i, count = M_OPTVALUDATA->m_optionNames.GetCount(); + + for (i=0; im_optionNames[i].Contains(part_of_option_name)) + return i; + } + return wxNOT_FOUND; +} + +bool wxOptionValue::DeleteOption(const wxString &name) +{ + wxCHECK_MSG( Ok(), false, wxT("Invalid wxOptionValue")); + int index = M_OPTVALUDATA->m_optionNames.Index(name, false); + if (index == wxNOT_FOUND) return false; + M_OPTVALUDATA->m_optionNames.RemoveAt(index); + M_OPTVALUDATA->m_optionValues.RemoveAt(index); + return true; +} + +bool wxOptionValue::DeleteOption( size_t n ) +{ + wxCHECK_MSG( Ok(), false, wxT("Invalid wxOptionValue") ); + wxCHECK_MSG( n < M_OPTVALUDATA->m_optionValues.GetCount(), false, wxT("invalid index")); + M_OPTVALUDATA->m_optionNames.RemoveAt(n); + M_OPTVALUDATA->m_optionValues.RemoveAt(n); + return true; +} + +//----------------------------------------------------------------------------- +// Set Options + +// Option functions (arbitrary name/value mapping) +void wxOptionValue::SetOption(const wxString& name, const wxString& value, bool force) +{ + wxCHECK_RET( Ok() && (name.Length() > 0), wxT("Invalid wxOptionValue or option") ); + + int idx = M_OPTVALUDATA->m_optionNames.Index(name, false); + if (idx == wxNOT_FOUND) + { + M_OPTVALUDATA->m_optionNames.Add(name); + M_OPTVALUDATA->m_optionValues.Add(value); + } + else if (force) + { + M_OPTVALUDATA->m_optionNames[idx] = name; + M_OPTVALUDATA->m_optionValues[idx] = value; + } +} + +void wxOptionValue::SetOption(const wxString &name, bool update, const wxChar *format, ...) +{ + va_list argptr; + va_start(argptr, format); + wxString s; + s.PrintfV(format, argptr); + va_end(argptr); + SetOption(name, s, update); +} + +//----------------------------------------------------------------------------- +// Get Options + +wxString wxOptionValue::GetOption(const wxString& name) const +{ + wxCHECK_MSG( Ok(), wxEmptyString, wxT("Invalid wxOptionValue") ); + + int idx = M_OPTVALUDATA->m_optionNames.Index(name, false); + if (idx != wxNOT_FOUND) + return M_OPTVALUDATA->m_optionValues[idx]; + + return wxEmptyString; +} + +int wxOptionValue::GetOptionInt(const wxString& name) const +{ + return wxAtoi(GetOption(name)); +} + +bool wxOptionValue::GetOption(const wxString& name, wxString &value ) const +{ + wxString s = GetOption(name); + if (!s.IsEmpty()) { value = s; return true; } + return false; +} +bool wxOptionValue::GetOption(const wxString& name, int *value ) const +{ + long n; + if (GetOption(name).ToLong(&n)) + { + *value = (int)n; + return true; + } + return false; +} +bool wxOptionValue::GetOption(const wxString& name, float *value ) const +{ + double n; + if (GetOption(name, &n)) + { + *value = (float)n; + return true; + } + return false; +} +bool wxOptionValue::GetOption(const wxString& name, double *value ) const +{ + double n; + if (GetOption(name).ToDouble(&n)) + { + *value = n; + return true; + } + return false; +} + +int wxOptionValue::GetOption(const wxString& name, const wxChar *format, ...) const +{ + wxString n = GetOption(name); + if (n.IsEmpty()) return 0; + va_list argptr; + va_start(argptr, format); +// int i = wxVsscanf(n.c_str(), format, argptr); // VisualStudio doesn't have this + int i = wxSscanf(n.c_str(), format, argptr); + va_end(argptr); + return i; +} + +int wxOptionValue::GetOption(const wxString& name, wxArrayInt &values, + int count, const wxString& delims) const +{ + wxString value = GetOption(name); + wxStringTokenizer tokens(value, delims, wxTOKEN_STRTOK); + int read_count = 0; + + while (((count < 0) || (read_count <= count)) && tokens.HasMoreTokens()) + { + long num; + if (!tokens.GetNextToken().ToLong(&num)) return read_count; + values.Add(num); + read_count++; + } + return read_count; +} + +bool wxOptionValue::GetOption(const wxString& name, unsigned char *value, int count, + const wxString& delims) const +{ + wxArrayInt intArr; intArr.Alloc(count); + if (GetOption(name, intArr, count, delims) != count) + return false; + + for (int i = 0; i < count; i++) value[i] = (unsigned char)intArr[i]; + return true; +} +bool wxOptionValue::GetOption(const wxString& name, int *value, int count, + const wxString& delims) const +{ + wxArrayInt intArr; intArr.Alloc(count); + if (GetOption(name, intArr, count, delims) != count) + return false; + + for (int i = 0; i < count; i++) value[i] = intArr[i]; + return true; +} +bool wxOptionValue::GetOption(const wxString& name, long *value, int count, + const wxString& delims) const +{ + wxArrayInt intArr; intArr.Alloc(count); + if (GetOption(name, intArr, count, delims) != count) + return false; + + for (int i = 0; i < count; i++) value[i] = intArr[i]; + return true; +} +bool wxOptionValue::GetOption(const wxString& name, float *value, int count, + const wxString& delims) const +{ + double *nums = (double*)malloc(sizeof(double)*count); + if (GetOption(name, nums, count, delims)) + { + for (int i=0; i < count; i++) value[i] = (float)nums[i]; + free(nums); + return true; + } + free(nums); + return false; +} +bool wxOptionValue::GetOption(const wxString& name, double *value, int count, + const wxString& delims) const +{ + wxString optValue = GetOption(name); + wxStringTokenizer tokens(optValue, delims, wxTOKEN_STRTOK); + int read_count = 0; + double *nums = (double*)malloc(sizeof(double)*count); + double num; + + while ((read_count <= count) && tokens.HasMoreTokens()) + { + if (!tokens.GetNextToken().ToDouble(&num)) + { + free(nums); + return false; + } + if (read_count >= count) break; + read_count++; + } + + if (read_count == count) + { + for (int i = 0; i < count; i++) value[i] = nums[i]; + free(nums); + return true; + } + + free(nums); + return false; +} + + +bool wxOptionValue::GetOption(const wxString& name, int *v1, int *v2, + const wxString& delims) const +{ + wxArrayInt intArr; + if (GetOption(name, intArr, 2, delims) != 2) + return false; + + if (v1) *v1 = intArr[0]; + if (v2) *v2 = intArr[1]; + return true; +} +bool wxOptionValue::GetOption(const wxString& name, int *v1, int *v2, int *v3, + const wxString& delims) const +{ + wxArrayInt intArr; + if (GetOption(name, intArr, 3, delims) != 3) + return false; + + if (v1) *v1 = intArr[0]; + if (v2) *v2 = intArr[1]; + if (v3) *v3 = intArr[2]; + return true; +} +bool wxOptionValue::GetOption(const wxString& name, float *v1, float *v2, float *v3, + const wxString& delims) const +{ + double nums[3]; + if (GetOption(name, nums, 3, delims)) + return false; + + if (v1) *v1 = (float)nums[0]; + if (v2) *v2 = (float)nums[1]; + if (v3) *v3 = (float)nums[2]; + return true; +} + +bool wxOptionValue::GetOption(const wxString& name, wxRect &value, + const wxString& delims) const +{ + wxArrayInt intArr; + if (GetOption(name, intArr, 4, delims) != 4) + return false; + + value = wxRect(intArr[0], intArr[1], intArr[2], intArr[3]); + return true; +} diff --git a/.svn/pristine/37/37cc9106c27a8cfda8e1ad902242e9f14314cb6b.svn-base b/.svn/pristine/37/37cc9106c27a8cfda8e1ad902242e9f14314cb6b.svn-base new file mode 100644 index 0000000..87eb757 --- /dev/null +++ b/.svn/pristine/37/37cc9106c27a8cfda8e1ad902242e9f14314cb6b.svn-base @@ -0,0 +1,183 @@ +//---------------------------------------------------------------------- +// File: kd_fix_rad_search.cpp +// Programmer: Sunil Arya and David Mount +// Description: Standard kd-tree fixed-radius kNN search +// Last modified: 05/03/05 (Version 1.1) +//---------------------------------------------------------------------- +// Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +// David Mount. All Rights Reserved. +// +// This software and related documentation is part of the Approximate +// Nearest Neighbor Library (ANN). This software is provided under +// the provisions of the Lesser GNU Public License (LGPL). See the +// file ../ReadMe.txt for further information. +// +// The University of Maryland (U.M.) and the authors make no +// representations about the suitability or fitness of this software for +// any purpose. It is provided "as is" without express or implied +// warranty. +//---------------------------------------------------------------------- +// History: +// Revision 1.1 05/03/05 +// Initial release +//---------------------------------------------------------------------- + +#include "kd_fix_rad_search.h" // kd fixed-radius search decls + +//---------------------------------------------------------------------- +// Approximate fixed-radius k nearest neighbor search +// The squared radius is provided, and this procedure finds the +// k nearest neighbors within the radius, and returns the total +// number of points lying within the radius. +// +// The method used for searching the kd-tree is a variation of the +// nearest neighbor search used in kd_search.cpp, except that the +// radius of the search ball is known. We refer the reader to that +// file for the explanation of the recursive search procedure. +//---------------------------------------------------------------------- + +//---------------------------------------------------------------------- +// To keep argument lists short, a number of global variables +// are maintained which are common to all the recursive calls. +// These are given below. +//---------------------------------------------------------------------- + +int ANNkdFRDim; // dimension of space +ANNpoint ANNkdFRQ; // query point +ANNdist ANNkdFRSqRad; // squared radius search bound +double ANNkdFRMaxErr; // max tolerable squared error +ANNpointArray ANNkdFRPts; // the points +ANNmin_k* ANNkdFRPointMK; // set of k closest points +int ANNkdFRPtsVisited; // total points visited +int ANNkdFRPtsInRange; // number of points in the range + +//---------------------------------------------------------------------- +// annkFRSearch - fixed radius search for k nearest neighbors +//---------------------------------------------------------------------- + +int ANNkd_tree::annkFRSearch( + ANNpoint q, // the query point + ANNdist sqRad, // squared radius search bound + int k, // number of near neighbors to return + ANNidxArray nn_idx, // nearest neighbor indices (returned) + ANNdistArray dd, // the approximate nearest neighbor + double eps) // the error bound +{ + ANNkdFRDim = dim; // copy arguments to static equivs + ANNkdFRQ = q; + ANNkdFRSqRad = sqRad; + ANNkdFRPts = pts; + ANNkdFRPtsVisited = 0; // initialize count of points visited + ANNkdFRPtsInRange = 0; // ...and points in the range + + ANNkdFRMaxErr = ANN_POW(1.0 + eps); + ANN_FLOP(2) // increment floating op count + + ANNkdFRPointMK = new ANNmin_k(k); // create set for closest k points + // search starting at the root + root->ann_FR_search(annBoxDistance(q, bnd_box_lo, bnd_box_hi, dim)); + + for (int i = 0; i < k; i++) { // extract the k-th closest points + if (dd != NULL) + dd[i] = ANNkdFRPointMK->ith_smallest_key(i); + if (nn_idx != NULL) + nn_idx[i] = ANNkdFRPointMK->ith_smallest_info(i); + } + + delete ANNkdFRPointMK; // deallocate closest point set + return ANNkdFRPtsInRange; // return final point count +} + +//---------------------------------------------------------------------- +// kd_split::ann_FR_search - search a splitting node +// Note: This routine is similar in structure to the standard kNN +// search. It visits the subtree that is closer to the query point +// first. For fixed-radius search, there is no benefit in visiting +// one subtree before the other, but we maintain the same basic +// code structure for the sake of uniformity. +//---------------------------------------------------------------------- + +void ANNkd_split::ann_FR_search(ANNdist box_dist) +{ + // check dist calc term condition + if (ANNmaxPtsVisited != 0 && ANNkdFRPtsVisited > ANNmaxPtsVisited) return; + + // distance to cutting plane + ANNcoord cut_diff = ANNkdFRQ[cut_dim] - cut_val; + + if (cut_diff < 0) { // left of cutting plane + child[ANN_LO]->ann_FR_search(box_dist);// visit closer child first + + ANNcoord box_diff = cd_bnds[ANN_LO] - ANNkdFRQ[cut_dim]; + if (box_diff < 0) // within bounds - ignore + box_diff = 0; + // distance to further box + box_dist = (ANNdist) ANN_SUM(box_dist, + ANN_DIFF(ANN_POW(box_diff), ANN_POW(cut_diff))); + + // visit further child if in range + if (box_dist * ANNkdFRMaxErr <= ANNkdFRSqRad) + child[ANN_HI]->ann_FR_search(box_dist); + + } + else { // right of cutting plane + child[ANN_HI]->ann_FR_search(box_dist);// visit closer child first + + ANNcoord box_diff = ANNkdFRQ[cut_dim] - cd_bnds[ANN_HI]; + if (box_diff < 0) // within bounds - ignore + box_diff = 0; + // distance to further box + box_dist = (ANNdist) ANN_SUM(box_dist, + ANN_DIFF(ANN_POW(box_diff), ANN_POW(cut_diff))); + + // visit further child if close enough + if (box_dist * ANNkdFRMaxErr <= ANNkdFRSqRad) + child[ANN_LO]->ann_FR_search(box_dist); + + } + ANN_FLOP(13) // increment floating ops + ANN_SPL(1) // one more splitting node visited +} + +//---------------------------------------------------------------------- +// kd_leaf::ann_FR_search - search points in a leaf node +// Note: The unreadability of this code is the result of +// some fine tuning to replace indexing by pointer operations. +//---------------------------------------------------------------------- + +void ANNkd_leaf::ann_FR_search(ANNdist box_dist) +{ + register ANNdist dist; // distance to data point + register ANNcoord* pp; // data coordinate pointer + register ANNcoord* qq; // query coordinate pointer + register ANNcoord t; + register int d; + + for (int i = 0; i < n_pts; i++) { // check points in bucket + + pp = ANNkdFRPts[bkt[i]]; // first coord of next data point + qq = ANNkdFRQ; // first coord of query point + dist = 0; + + for(d = 0; d < ANNkdFRDim; d++) { + ANN_COORD(1) // one more coordinate hit + ANN_FLOP(5) // increment floating ops + + t = *(qq++) - *(pp++); // compute length and adv coordinate + // exceeds dist to k-th smallest? + if( (dist = ANN_SUM(dist, ANN_POW(t))) > ANNkdFRSqRad) { + break; + } + } + + if (d >= ANNkdFRDim && // among the k best? + (ANN_ALLOW_SELF_MATCH || dist!=0)) { // and no self-match problem + // add it to the list + ANNkdFRPointMK->insert(dist, bkt[i]); + ANNkdFRPtsInRange++; // increment point count + } + } + ANN_LEAF(1) // one more leaf node visited + ANN_PTS(n_pts) // increment points visited + ANNkdFRPtsVisited += n_pts; // increment number of points visited +} diff --git a/.svn/pristine/38/380137d010dad88dd3be4a79b2d099a6c5ca166e.svn-base b/.svn/pristine/38/380137d010dad88dd3be4a79b2d099a6c5ca166e.svn-base new file mode 100644 index 0000000..36d59e9 --- /dev/null +++ b/.svn/pristine/38/380137d010dad88dd3be4a79b2d099a6c5ca166e.svn-base @@ -0,0 +1,80 @@ + +This is the short german version for README. +Dies ist die deutsche Kurzinformation fuer README. + + --- GOCR v0.38 --- + +Worum gehts? +- OCR = optical character recognition = Schrifterkennung +- liest pnm, pbm, pgm, ppm, einige pcx und tga Bilddateien + (auf un*x-systemen mit libpnm fast alle Formate) +- gibt text aus +- Dieses Programm ist herausgegeben unter GPL (General Public License). + Das bedeutet unter anderem: FREI FUER ALLE BENUTZER. + +Wie kompilieren? + + gzip -cd gocr-0.38.tgz | tar xfv - # auspacken + cd gocr-0.38 # Ordner wechseln + ./configure # Makefile anpassen + make # gcc/g++ sollte installiert sein + + +Wie starten? + gocr -h # Kurz(!)-Hilfe + gocr file.pbm # minimale Argumente + gocr -v 1 -v 32 -m 4 file.pbm # zusaetzlich debug-Modus und Layout-Analyse + Optionen (bitte auch das aktuelle Manual zu gocr (man gocr) ansehen!): + [-i] name - Bilddatei (pnm,pgm,pbm,ppm,pcx), - fuer stdin + -o name - Ausgabefile (Umlenkung der Standardausgabe) + -e name - Ausgabefile (Umlenkung der Fehlerausgabe) + -x name - Fortschrittsanzeige (file, fifo oder fd=1..255) + -p name - Verzeichnis der optionalen Datenbasis (z.B.: ./db/) + -l num - Schwellenwert 0<160<=255 + -d num - Schmutzgroesse (Entfernen von Schmutz, -1=autodetect) + -s num - Wortabstand in Punkten (0 = autodetect) + -v num - Mehr Infos [summiert] + 1 mehr Informationen + 2 Groesse der Boxen anzeigen (siehe -c) + 4 Boxen anzeigen (siehe -c) + 8 Ausgabe der Muster nach Erkennung + 16 Zeilenerkennung ausgeben + 32 debug-Ausgaben outXX.pgm + -c string - Liste der auszugebenen Zeichen (_ = nicht erkanntes Zeichen) + -C string - Zeichenfilter (z.B.: hexdigits: 0-9A-Fx, nur ASCII) + -m num - Arbeitsarten, ~ = abschalten + 2 Datenbank nutzen (in Entwicklung) + 4 Layout-Analyse (zum Testen) + 8 ~ vergleiche nichterkannte Zeichen + 16 ~ Teile verklebte Zeichen + 32 ~ Kontextkorrektur + 64 Zeichen komprimieren + 130 Datenbank erweitern (unbekannte Zeichen, Interaktiv) + 256 OCR Engine abschalten, macht nur Sinn mit -m 2 + Beispiel: gocr -v 6 -v 32 -c _YV text1.pbm + - Programm ist noch sehr langsam, bitte Geduld! + +Was geht nicht? +- vieles ... siehe README + +Wie koennen Sie helfen? +- Schicken Sie Bemerkungen und KLEINE Beispieldaten als .pbm.gz. +- Geld oder einen neuen Notebook koennte ich auch brauchen (paypal). + Ok, paypal ist nicht mehr was es war, also vergesst es und mangelnde + Zeit zum programmieren ist jetzt das groessere Problem. +- Wie finden Sie das Programm, wie viele Fehler erzeugt es im Vergleich + zu anderen OCR-Programmen? + (bitte Anzahl Fehler, Zeichen und Programmversion angeben) +- Gute Ideen nehme ich gern entgegen + (d.h. kleine Aenderungen mit grosser Wirkung). +- Lob und Tadel nehm ich ebenfalls gerne entgegen. + +Bugs: +- Das Programm hat sicher viele Fehler, nur welche? (siehe README) + +Letzte Neuerungen: + http://jOCR.sourceforge.net + +Authoren: (siehe README und AUTHORS) + + --- HAVE FUN --- diff --git a/.svn/pristine/38/3841d0db1b60637b81a63a7d789aef92caad9865.svn-base b/.svn/pristine/38/3841d0db1b60637b81a63a7d789aef92caad9865.svn-base new file mode 100644 index 0000000..b532b60 --- /dev/null +++ b/.svn/pristine/38/3841d0db1b60637b81a63a7d789aef92caad9865.svn-base @@ -0,0 +1,538 @@ +This is a list of reviews, so that developers don't get confused with the new +changes. Please document what you do here. + +() done +[] done, but should be reviewed +|| to be done, do if you can +?? question: if you know, solve it +Writer: put your initials inside. + +5/8 +(bbg) changed box1 to head_data. +(bbg) changed boxd to head_db. +|bbg| box2 static variables do not exist anymore. They were confusing, + since these names were used as arguments to functions too. From what I've + seen, this will not affect the program. + (js) agree +(bbg) added new file: box.c, with all the functions that deal with boxes. +(bbg) added new file: database.c, with all the functions that deal with db. +[bbg] ocr_db() +|bbg| split pgm2asc(): the function would still exist, but call other + subfunctions which are part of it now. I suggest: + - find_letters() + - remove_dust() + - remove_pictures() + - remove_melted_serifs() + - find_longest_line() + - detect_lines() + etc: they are practically already defined between {}. +?bbg? pgm2asc: it has 2 frame letter codes, 2 find pictures, 2 remove + dust + |js| It is result of last (not finished) big rewriting of code + will be changed later +|bbg| vvv (or equivalent) should be global. + +6/8 +(bbg) general linked lists done (list.*). +|bbg| Functions in box.c should be changed by the new general ones. + linearr should too. +(bbg) strc() and in_str() changed by strchr. +?bbg? shouldn't test_umlaut() belong to another file, like ocr0.cc? + js: good idea + (bbg) moved to ocr0.cc +?bbg? there are several functions with 2 or 3 versions (detect_lines, + detect_lines2, for example). Do they do the same thing (and one + is older) or different things? + js: different, they are different childs from same mother + they are going more different in future +?bbg? What do ini_list(), excude() and getresult() do? They don't seem + to be used. If they are useless, please delete them. + js: read the new comments in the file (should be in seperate file?) +|bbg| document pixel(). + :done. +|bbg| Many, many commented lines all over the file; should be cleaned. + :done. +|bbg| Change new->malloc, delete->free. + :done + +7/8 +(js) some comments added in pgm2asc.cc +|bbg| instead of p.p[x+y*p.x], use the new macro pixel_at(p, x, y). + Not all substitutions done yet. + :done. +(bbg) excude() renamed to exclude(). +?bbg? what are the pixel bits meaning? A table would be useful. + (js) not stable: lowest (3-4?) bits are for temporary use + highest (4?) bits are for intensity +|bbg| must change all "type &p" arguments. + :done +|bbg| should make argument order standard: at the present, sometimes the + order is x0,x1,y0,y1, sometimes x0,y0,x1,y1, pix is not always the + first, etc. +(bbg) turmite(): changed for+if -> while. Is is correct? I think so, but + a test wouldn't hurt. Also optimized the function. + (js) I test it after complete review. + +8/8 +(js) pgm2asc.cc: generally pix *p used, pgm2asc() partly rewritten +|js| ocr0.cc: pix *p must be used everywhere + :done +(bbg) pixel(): first part (c33 filling) optimized. +(bbg) minor optimizations, cut superflous counters. +?bbg? copybox: shouldn't b->p be free()d, or realloc()ed? There's also a new + faster version (using memcpy), but there's no unmarking of pixels; I'm + also not sure if they are equivalent, since I'm not calling pixel. It's + between #ifs. + +9/8 +(bbg) Started to change linearr to linked lists; linearr is obsolete now, + and textlines too. +(bbg) free_textlines() and getTextLine() use linked lists (instead of linearr) + now. The first may be deleted in the future. +[bbg] store_boxtree_textlines use linked lists (instead of linearr) now, but + should be tested and reviewed; specially if (box2->c == ' ') since it + doesn't check for an \n anymore (why should it?). Also the extra list_app + should be checked. Check too if "if (!(mo & 8))" shouldn't come before + "if (box2->c != '_')". + :done +(bbg) Moved copybox() to box.c +?bbg? put(): What are ia and io? + js: ia int_and, io int_or new_pixel=(old_pixel & ia) | io + for more praktical use +|bbg| What about putting remove_dust, remove_picture, remove_etc in another + file, such as clean.c or remove.c? + js: should be made + bbg: done +|bbg| several #ifdef's pending approval or review. Get rid of them. + :done +[bbg] Added code to open pgm files using libpgm. Not tested, but should be OK. +[bbg] started to write writepbm, writeppm. + +10/8 +[js] pgm2asc() new functions created +(bbg) moved remove_* functions to remove.c +(bbg) added doc/ directory; moved ocr.tex to doc/; created examples.txt. +(bbg) added UNICODE support: unicode.h contains all symbols we will ever need, + unicode.c contains two conversion functions. +(bbg) most of Unicode->TeX convert() (0x7F-0xFF) codes are done. +[bbg] several compose() codes done. + +11/8 +(bbg) new pnm IO functions, much better now. +[bbg] fixed part of ocr0.cc: since arguments changed from pix &p to pix *p, it + wasn't compiling. Must fix the pix b; should it be changed to pix *b? + :done +|bbg| Use new Unicode code; change all old code using unsigned char to wchar_t. + Work started. Take care: old libc functions won't work anymore. Use those + defined in . Perhaps we should wait until the review is done and + gocr is working again. + :do it in 0.3.1 only. +?bbg? should we move wert code to a new file? + (js) we should +?bbg? should we move all code a /src sudirectory? + (js) we should, same step should rename .cc to .c +|bbg| fix Makefile (or better, configure.in) to reflect new files. + :done +[bbg] started to change all the for(box=head_data) to for_each_data. CAREFUL: + you cannot use for_each_data recursively. On the next layer, you must use + something like for(box=list_get_header; box; box=list_next(box)); + :done + +13/8 +(bbg) finished changing for(box=head_data). Old box_* functions still used, + must fix. +(bbg) cleaned 99% of the warning/errors when compiling pgm2asc.cc +[bbg] fix: warning: control reaches end of non-void function + `compare_unknown_with_known_chars(pix *, int)' + :done +[bbg] check if pgm2asc.cc:474:i = ((pixel(p, x, y) < cs) ? 0 : 1); is useless + or not. + (js) useless, relict from older review-changes +(bbg) vvv is now part of struct environment. +(bbg) removed Uchar, may conflict with other libs. Use unsigned char. + +15/8 +(bbg) Tim Waugh sent man page; added him in the thanks of README.txt +[bbg] should break README.txt in: INSTALL, CREDITS, TODO, HISTORY. + :done +(bbg) more changes from box_* to list_* + +16/8 +(bbg) added greek letters to the unicode.c functions. Not complete. +(bbg) added punctuation symbols to the unicode.c functions. Not complete. +(bbg) added ISO8859-1 support to the unicode.c functions. 0x20-0xFF supported, + ligatures supported. + +18/8 +[bbg] fix try_to_divide_boxes to the new general linked list. +[bbg] most for_each_data have a line like box2 = list_get_current, which is + unnecessary. Change box2 by list_get_current. To avoid clumsiness, it + maybe a good idea to create a new #define lgc(a) list_get_current(a). + +25/8 +(js) ./src created, .cc,.h,.c moved to src, .cc renamed to .c +[js] try to get make working (make jconv) see config.h: USE_LIBPNM => HAVE_PNM_H +|js| list.c L66 data_before ??? what does that mean? + (bbg) mistyped, fixed. + list_del should be tested + :done +?js? unicode.c there are undefined DEFS L89++ (i have put it in /* */) + L150++,L185++,L633++ + (bbg) fixed +[js] make works again (now you can make compilation tests on changes) + ... but SEGFAULT + +26/8 +(bbg) fixed casting warnings in unicode.c; fixed undefined DEFS. +|bbg| fix the missing LaTeX codes in unicode.c. + +28/8 +?js? configure does not find /usr/X11R6/include/pnm.h, why? +[js] fixed some bugs to get gocr working, but there are still big bugs + +30/8 +(bbg) fixed all gcc warnings. Some bugs killed in the process. +(bbg) fixed pnm.c compilation problem +|bbg| have to fix database.c:102 +|bbg| MANDATORY: change all old linked list code to the new one. This means: + get rid of box_* functions, the header->data stuff, etc. The new linked + list code is probably working 100%. +(bbg) changed $(CXX) to $(CC). C conversion completed! +(bbg) added jconv and gocr sections to src/Makefile. +(bbg) new ISO8859-1 codes in unicode.c:convert. +(bbg) fixed several bugs in list.c, and patched list_del() to return 2 if + deleted data was list->current. + +1/9 +(bbg) added new list_init(). Use it. +(bbg) wrote a fix to the list_del()+for_each_data bug. It's not very good, but + works. Fixes the nested loops too. Now you can use for_each_data + recursively. + +8/9 +(bbg) more fixes from the old LL system to the new one. +(js) added list_higher_level(), fix list_lower_level() + bug fixed free_textlines(),store_boxtree_lines(),store_boxtree_lines() +(js) review of pgm2asc() finished + +9/9 +(bbg) more fixes from the old LL system to the new one. +(bbg) fixed the realloc fixes of 8/9 in fix list_lower_level(), + free_textlines(),store_boxtree_lines(), and fixed list_higher_level(), + to avoid a blow if realloc fails. Now things continue working. +(js) compilation bug removed +(bbg) reviewed context_correction(). +(bbg) moved output_list() and write_img() to output.c. Added output.h. +?bbg? Since output.c functions are only for debugging, what do you think about + adding some #ifdef DEBUGs to make a smaller, faster code? It doesn't have + to be done now, but it's an idea. + (js) its general good idea, but I would use a DEBUG level + DEBUG > 2 (or similar) + during development (until version 1.0) DEBUG should be activated + by default, + people could experiment with it and experts could deactivate DEBUG +(bbg) cleaned old textline functions. + +11/9 +(js) have fixed two major bugs, gocr now works again (but only -m 56 works) + +18/9 +(js) pedantic compiler warnings removed + bbg: compiling using pam (netpbm, see 22/9) functions generate some warnings, + which are caused by pam.h and do not affect gocr. +(js) list_del() does not work proper in context_correction(), fixed + bbg: list_del return value should be checked always. I'm not sure what + behaviour you want, so I didn't add the checks. +(js) malloc_box() bug fixed (memcpy src-dest mismatch) + +21/9 +(js) pgm2asc.c L1954, 2nd scan removed, now much faster, but + handling of umlaut etc. is missing (similar to gluing function) + bbg: umlaut is detected. Are you sure it's missing? +(js) I am away until Sept 30th 2000 + +22/9 +|bbg| pnm_readpnmrow() SIGSEGV's. Don't know why. + ?js? (when does it happens? example file?) + bbg: any file, here. Does it work for you? Are you sure isn't the pam + functions? +(bbg) added new code to read pnm's using netpbm package (pam* functions). It + works, but the drawback is that only recent (August 2000) libraries have + these functions. Added test for pam.h in configure. +[bbg] moved example files to ~/tests/. Updated Makefile.in to reflect changes + and moved the pertinent stuff to tests/Makefile. I don't have experience + with autoconf, but I think I did it right. :) +(bbg) fixed tests for unistd.h, which were missing. +|bbg| How to change gocr.tcl splitted windows proportion? It'd be nice to be + able to have a larger output area. +|bbg| gotta fix make.bat. There's a make for DOS, however; should we delete + make.bat? +(bbg) wrote INSTALL. Moved (no changes) history from README.txt to HISTORY. +|bbg| review README.txt. Create a TODO file, BUGS, etc. + :done + +23/9 +?bbg? database.c::ocr_db(), is any use for box3? +(bbg) added "Elapsed time". +(bbg) minor fixes. + +24/9 +|bbg| remove_dust() broken? It's not being used currently, since it's the last + piece of code using old list functions, and if it's updated, ocr1.c returns + a bunch of "#hmm, something was going wrong". So, the problem may be in + ocr1.c. I wrote the patch for remove_dust(), it's in #ifdefs. + :done +(bbg) patched rest of remove.c to with new list functions. +[bbg] remove_pictures() loop is weird. I followed what was there, but it should + be checked. + +1/10 +(bbg) for_each_data now checks the return value of list_higher_level(). +(bbg) moved some functions to pixel.c +(bbg) some cleanup + +3/10 +(js) minor changes in Makefiles, add_line_infos() improved + +6/10 +(bbg) fixed bug when inserting a node before header, in list_ins(). +(bbg) fixed bug that made for_each_data use list->header twice: l->fix wasn't + properly initialized. +(bbg) added list_sort(). Runned some tests, seems to be OK. + +7/10 +(bbg) updated list_sort() to a faster version. Runned tests. +(bbg) some minor cosmetic fixes +|bbg| amiga.h: is it really needed, can someone test it? +|bbg| As soon as remove_dust is fixed, the old list code can be deleted, which + would be nice. So, Joerg, can you please fix it? Thanks. + [js] Have I fixed it? + :done + +9/10 +(mg) moved gocr.tcl and create_db to new bin folder +(mg) cleaned up Makefile.in (some subdirs not included yet) +(mg) created new sub-folder lib +(mg) created new sub-folder include +[mg] installation for src is done very rudimentary + +13/10 +(bbg) split README.txt in BUGS, TODO and CREDITS. Joerg: Please write an AUTHORS + file. +(bbg) renamed README.txt to README. +(bbg) added list_empty(). Fixed list_higher_level to avoid empty lists. BTW: I + think that passing an empty list (l->header==NULL) may blow some of the + list functions. + +16/10 +(bbg) added AUTHORS. + +22/10 +(js) minor changes, glue_broken_chars() improved, ocr0 updated +?js? list_del() seems not to work in nested for_each_element()-loops +[js] remove_dust fixed? + :done + +23/10 +(bbg) rewrote list_del, using a new kind of fix. It will work as long as the + data is not freed by the user. A solution to fix this is to pass a pointer + to a function that will free the data. + +25/10 +(js) glue_broken_chars() recognition of "=" fixed, some other bugs fixed +(js) some improvements for recognition (ocr0n.c,ocr0.c) + +27/10 +(js) further improvements for better recognition results, polish.tex added + +28/10 +(bbg) changed free_boxtree() to new code +|bbg| have to fix the reast of the old box code + :done + +4/11 +[bbg] one of the frees of the new free_boxtree code sigsevs. I dunno why. + (js) boxlist->element->p is a pointer to existing whole pixmap, do not free this! +[bbg] I commented the following lines of pgmasc.c: 1430,43,55,67,81,95, since + they seem to be unnecessary. + (js) hmm: they are not needed for list_ins, but could be usefull for + a engine which looks for surrounding boxes. Do you know what I mean? + It was the last step of the conversion to the + new list routines. *uf*. +(bbg) ALL OLD CODE ROUTINES ARE DEPRECATED NOW. Mission successful, waiting for + permission to delete. :) + (js) permission granted +(bbg) Just to reassure, I tested gocr today and it's 100% +[bbg] change sort_boxes to a call to list_sort. sort_box_func should be + reviewed + (js) looks ok to me. + or tini_list(){ + (js) ??? +?bbg? ini_list(), exclude() & getresult(): should they be deleted? + (js) not found :( + I'm working + on a probability based engine, using neural networks. + +6/11 +(js) get Segmentation fault, => fixed + +14/11 +(bbg) deleted old list code. +(bbg) moved all detect* functions to detect.c +(bbg) movde lines functions to lines.c + +22/11 +(bbg) reviewed frame_nn(), mark_nn(), num_hole(), num_obj(). Some other minor + revisions. +(bbg) added outbounds() macro in gocr.h. It should be used from now on. + +24/11 +(js) some patches by J.R.V. Zandt added +?js? have still problems detecting pnm-libs via autoconf/configure + +25/11 +(bbg) added HTML support for all ISO8859-1 characters in unicode. + +27/11 +(bbg) some fixes in unicode.* +|bbg| whatletter needs a serious revision. + +30/11 +[js] split ocr0.c (compiles faster now), gcc 2.95.1 "bug" removed? + +10/12 +[bbg] Unicode is now supported. Some tests should be made, specially testing + UNKNOWN/PICTURE and >0xFF characters. + +17/12 +[js] pamlib,netlib,pnmlib detection (configure.in) changed + +21/12 +[jrv] pgm2asc changes: + context_correction() BUGFIX: test whether +previous(previous(current)) exists, before trying to dereferencing the pointer. + follow_path() introduced: follow a path, recording transitions +between dark and light. + xrealloc() introduced: safe memory allocation + loop() optimization: move direction test outside loop, simplify loop test + measure_pitch() introduced: detect monospaced font and measure the pitch + pgm2asc(): if font is monospaced, set spc per measured character spacing. + A few wording fixes. + +05/01 +(js) some fixes in glue_broken_chars results in good ";" and "!" detection + engine updated (examples/font1.pbm should work perfect) + +19/02 +(js) "make dist" now automaticly makes packaging (gocr-x.y.z.tgz) + does the Makefile in api working (especially make clean/proper)? + "make install" should work too + bbg: API makefiles work, but there's no make proper (use distclean instead) + I'd appreciate if someone could test the configure and libpnm. install is + not tested yet. + +19/04 +[js] USE_UNICODE defined as default in gocr.h (test it), some fixes to get + -f TeX, -f HTML running, fixed bug in lines.c (unterminated string) + measure_pitch extended to 12level+2)..) correct? (S.Niemz bug) + +30/07 +?js? readpnm if USE_libpnm does not the job of old readpgm (for pbm-files) + +22/08 +(js) gcc -Wall -pedantic warnings fixed, ocr0.c wchar_t used by default + we should switch to wchar_t, its more flexible and ANSI (?) + and the huge number of "#ifdef USE_UNICODE" statements are looking bad +?js? can someone compile test on a machine without wchar.h? (FREEBSD?) + +25/08 +?js? I got following warning by gcc 2.95.3 20010315 (-Wall -pedantic): + lines.c: In function 'store_boxtree_lines': + lines.c:136: warning: implicit declaration of function 'wcsdup' + but I included . Does anybody understand this??? + hmmm ... Is it because of not ANSI (but GNU) extension? + What should we do with non-standart C-functions? + May be therefore I got the complains from FREEBSD users? + +30/08 +(js) pgm2asc.c, output.c simplified, improvement of char-devision + +08/02/2002 +?js? all possible SIGSEGVs in list.c fixed + +15/02/2002 +[js] ocr0.c will use setac() in future manipulating struct box - tac,wac + and c, if chars are very similar this will make context correction more + easyly, filtering will be more easily too (not fully implemented) + +25/02/2002 +[js] box->obj added for storing more than one char + +02/06/2002 +(jb) added special encodings for '&', '<', '>' to HTML decoder + +05/06/2002 +[jb] job_t introduced (same patch as sent to the mailing list) + Only local variables (configuration and pixmap) of main() are + moved inside job_t yet. +[jb] boxlist and linelist converted to job_t +[jb] Temorary introduction of global variable JOB (of type job_t) + This variable will be removed, while all functions are converted to + receive either an job_t pointer or the needed values. +[jb] n_run, env, db_path and ppo converted to job_t +[jb] converted dblist +[jb] renamed init_job and free_job to job_free and job_init +[jb] converted nearly all global variables (except warn and debug) to + job_t. Used JOB as new temporaryr global variable. + Overview of the renaming (some old variables are combined to a new one): + + OLD VAR NAMES NEW VAR NAME + * main():inam JOB->src.fname + * main():p JOB->src.p + env.p + * main():init JOB->tmp.init_time + * ppo JOB->tmp.ppo + * n_run JOB->tmp.n_run + * dblist JOB->tmp.dblist + * boxlist JOB->res.boxlist + * linelist JOB->res.linelist + * lines JOB->res.lines + * env.avX JOB->res.avX + * env.avY JOB->res.avY + * env.sumX JOB->res.sumX + * env.sumY JOB->res.sumY + * env.numC JOB->res.numC + * main():cs JOB->cfg.cs + env.cs + * main():spc JOB->cfg.spc + * main():mo JOB->cfg.mode + env.mode + * main():dust_size JOB->cfg.dust_size + * main():numo JOB->cfg.only_numbers + only_numbers + * main():verbose JOB->cfg.verbose + env.vvv + * main():out_format JOB->cfg.out_format + * main():lc JOB->cfg.lc + * env.db_path JOB->cfg.db_path + +[jb] introduced list_and_data_free + +|jb| get rid of JOB. +|jb| decide on last global variables "warn" and "debug" + js: its thought for debugging, we should use MACROS WARN or DEBUG +|jb| eliminate static buffers inside fucntions. + +30/06/2002 +(js) gocr.h: struct box: modifier now wchar_t + mark things, which need changes with "ToDo:" directly in the sources, + so that we can grep for it and see that there are planed changes + +05/01/2003 +(js) ocr0.c: engine splitted in groups of characters (mostly pairs) + num_hole called once for every char, result is stored in a table +?js? cvs ci jocr does not work since 2003? (it tries to update jocr/CVS) + have cvs-1.11.1p1 diff --git a/.svn/pristine/38/384883d8e6893b45ba720a1bb39d47e8f59b6c94.svn-base b/.svn/pristine/38/384883d8e6893b45ba720a1bb39d47e8f59b6c94.svn-base new file mode 100644 index 0000000..9ce328d --- /dev/null +++ b/.svn/pristine/38/384883d8e6893b45ba720a1bb39d47e8f59b6c94.svn-base @@ -0,0 +1,28 @@ +SET(SHOW_LIBS ${OPENGL_LIBRARIES} glui scan ANN) +IF(WIN32) + IF( CMAKE_SIZEOF_VOID_P EQUAL 8 ) + SET(SHOW_LIBS ${SHOW_LIBS} ${CMAKE_SOURCE_DIR}/3rdparty/windows/x64/freeglut.lib XGetopt) + ELSE( CMAKE_SIZEOF_VOID_P EQUAL 8 ) + SET(SHOW_LIBS ${SHOW_LIBS} ${CMAKE_SOURCE_DIR}/3rdparty/windows/freeglut.lib XGetopt) + ENDIF(CMAKE_SIZEOF_VOID_P EQUAL 8 ) +ENDIF(WIN32) +IF (UNIX) + SET(SHOW_LIBS newmat dl ${GLUT_LIBRARIES} ${SHOW_LIBS}) +ENDIF(UNIX) + +IF(WITH_GLEE) + SET(SHOW_LIBS ${SHOW_LIBS} glee) +ENDIF(WITH_GLEE) + +SET(SHOW_SRCS NurbsPath.cc PathGraph.cc vertexarray.cc viewcull.cc colormanager.cc compacttree.cc scancolormanager.cc display.cc) + +IF (WITH_SHOW) + add_executable(show show.cc ${SHOW_SRCS}) + target_link_libraries(show ${SHOW_LIBS}) +ENDIF(WITH_SHOW) + +IF(WITH_WXSHOW) + add_executable(wxshow wxshow.cc selectionframe.cc ${SHOW_SRCS}) + target_link_libraries(wxshow ${wxWidgets_LIBRARIES} wxthings ${SHOW_LIBS}) +ENDIF(WITH_WXSHOW) + diff --git a/.svn/pristine/38/38699d3ab09323504d678c5ebca1f48d599ddec2.svn-base b/.svn/pristine/38/38699d3ab09323504d678c5ebca1f48d599ddec2.svn-base new file mode 100644 index 0000000..dbc5e08 --- /dev/null +++ b/.svn/pristine/38/38699d3ab09323504d678c5ebca1f48d599ddec2.svn-base @@ -0,0 +1,101 @@ +#ifndef _LIBSVM_H +#define _LIBSVM_H + +#define LIBSVM_VERSION 311 + +#ifdef __cplusplus +extern "C" { +#endif + +extern int libsvm_version; + +struct svm_node +{ + int index; + double value; +}; + +struct svm_problem +{ + int l; + double *y; + struct svm_node **x; +}; + +enum { C_SVC, NU_SVC, ONE_CLASS, EPSILON_SVR, NU_SVR }; /* svm_type */ +enum { LINEAR, POLY, RBF, SIGMOID, PRECOMPUTED }; /* kernel_type */ + +struct svm_parameter +{ + int svm_type; + int kernel_type; + int degree; /* for poly */ + double gamma; /* for poly/rbf/sigmoid */ + double coef0; /* for poly/sigmoid */ + + /* these are for training only */ + double cache_size; /* in MB */ + double eps; /* stopping criteria */ + double C; /* for C_SVC, EPSILON_SVR and NU_SVR */ + int nr_weight; /* for C_SVC */ + int *weight_label; /* for C_SVC */ + double* weight; /* for C_SVC */ + double nu; /* for NU_SVC, ONE_CLASS, and NU_SVR */ + double p; /* for EPSILON_SVR */ + int shrinking; /* use the shrinking heuristics */ + int probability; /* do probability estimates */ +}; + +// +// svm_model +// +struct svm_model +{ + struct svm_parameter param; /* parameter */ + int nr_class; /* number of classes, = 2 in regression/one class svm */ + int l; /* total #SV */ + struct svm_node **SV; /* SVs (SV[l]) */ + double **sv_coef; /* coefficients for SVs in decision functions (sv_coef[k-1][l]) */ + double *rho; /* constants in decision functions (rho[k*(k-1)/2]) */ + double *probA; /* pariwise probability information */ + double *probB; + + /* for classification only */ + + int *label; /* label of each class (label[k]) */ + int *nSV; /* number of SVs for each class (nSV[k]) */ + /* nSV[0] + nSV[1] + ... + nSV[k-1] = l */ + /* XXX */ + int free_sv; /* 1 if svm_model is created by svm_load_model*/ + /* 0 if svm_model is created by svm_train */ +}; + +struct svm_model *svm_train(const struct svm_problem *prob, const struct svm_parameter *param); +void svm_cross_validation(const struct svm_problem *prob, const struct svm_parameter *param, int nr_fold, double *target); + +int svm_save_model(const char *model_file_name, const struct svm_model *model); +struct svm_model *svm_load_model(const char *model_file_name); + +int svm_get_svm_type(const struct svm_model *model); +int svm_get_nr_class(const struct svm_model *model); +void svm_get_labels(const struct svm_model *model, int *label); +double svm_get_svr_probability(const struct svm_model *model); + +double svm_predict_values(const struct svm_model *model, const struct svm_node *x, double* dec_values); +double svm_predict(const struct svm_model *model, const struct svm_node *x); +double svm_predict_probability(const struct svm_model *model, const struct svm_node *x, double* prob_estimates); + +void svm_free_model_content(struct svm_model *model_ptr); +void svm_free_and_destroy_model(struct svm_model **model_ptr_ptr); +void svm_destroy_param(struct svm_parameter *param); + +const char *svm_check_parameter(const struct svm_problem *prob, const struct svm_parameter *param); +int svm_check_probability_model(const struct svm_model *model); + +void svm_set_print_string_function(void (*print_func)(const char *)); + +#ifdef __cplusplus +} +#endif + +#endif /* _LIBSVM_H */ diff --git a/.svn/pristine/38/386c9db8503f66905ebc09a4469768e871cbf5a6.svn-base b/.svn/pristine/38/386c9db8503f66905ebc09a4469768e871cbf5a6.svn-base new file mode 100644 index 0000000..6e8f600 --- /dev/null +++ b/.svn/pristine/38/386c9db8503f66905ebc09a4469768e871cbf5a6.svn-base @@ -0,0 +1,12 @@ +#! /bin/bash +if [ $1 = "" ]; then + echo "no new name given!" + exit +fi +mv s001.avi $1.avi +#mv s001.arv $1.arv +#mv s001.farv $1.farv +mv s001.irv $1.irv +mv s001.firv $1.firv +mv s001.3dp $1.3dp +mv s001.head $1.head diff --git a/.svn/pristine/38/38707e2b45f4a97c3cc87f8ca4b11c16236c1fb4.svn-base b/.svn/pristine/38/38707e2b45f4a97c3cc87f8ca4b11c16236c1fb4.svn-base new file mode 100644 index 0000000..b26b2e3 --- /dev/null +++ b/.svn/pristine/38/38707e2b45f4a97c3cc87f8ca4b11c16236c1fb4.svn-base @@ -0,0 +1,16 @@ +#ifndef __SCAN_VELODEFS_H__ +#define __SCAN_VELODEFS_H__ + +#define POINT_TYPE_INVALID 0x00000001 +#define POINT_TYPE_ABOVE_DELTA_R 0x00000002 +#define POINT_TYPE_BELOW_DELTA_R 0x00000004 +#define POINT_TYPE_ABOVE_DELTA_Y 0x00000008 +#define POINT_TYPE_BELOW_DELTA_Y 0x00000010 +#define POINT_TYPE_ABOVE_R 0x00000020 +#define POINT_TYPE_BELOW_R 0x00000040 +#define POINT_TYPE_STATIC_OBJECT 0x00000080 +#define POINT_TYPE_MOVING_OBJECT 0x00000100 +#define POINT_TYPE_GROUND 0x00000200 + + +#endif diff --git a/.svn/pristine/39/39764f7fa762025397d71fb367bd71af8328fb11.svn-base b/.svn/pristine/39/39764f7fa762025397d71fb367bd71af8328fb11.svn-base new file mode 100644 index 0000000..524a171 --- /dev/null +++ b/.svn/pristine/39/39764f7fa762025397d71fb367bd71af8328fb11.svn-base @@ -0,0 +1,135 @@ +/** @file + * @brief Representation of 3D scan matching with ICP + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __ICP6D_H__ +#define __ICP6D_H__ + +#include +using std::vector; + +#include "newmat/newmat.h" +//using namespace NEWMAT; + +#include "slam6d/scan.h" +#include "slam6d/icp6Dminimizer.h" + +/** + * @brief Representation of 3D scan matching with ICP. + * + * Manages the matching of 3D scans. + * Important values, such as maximal matching distance, + * maximal number of iterations, etc. + * are specified in the constructor. + */ +class icp6D { + +public: + icp6D(icp6Dminimizer *my_icp6Dminimizer, + double max_dist_match = 25.0, + int max_num_iterations = 50, + bool quiet = false, + bool meta = false, + int rnd = 1, + bool eP = true, + int anim = -1, + double epsilonICP = 0.0000001, + int nns_method = simpleKD, + bool cuda_enabled = false, + bool cad_matching = false); + + /** + * Destructor (empty, but needed, because virtual) + */ + virtual ~icp6D() {}; + + void doICP(vector allScans); + virtual int match(Scan* PreviousScan, Scan* CurrentScan); + void covarianceEuler(Scan *scan1, Scan *scan2, NEWMAT::Matrix *C); + void covarianceQuat(Scan *scan1, Scan *scan2, NEWMAT::Matrix *C); + double Point_Point_Error(Scan* PreviousScan, Scan* CurrentScan, double max_dist_match, unsigned int *nrp=0); + + inline int get_rnd(); + inline bool get_meta(); + inline int get_anim(); + inline int get_nns_method(); + inline void set_anim(int anim); + inline double get_max_dist_match2(); + inline void set_max_dist_match2(double max_dist_match2); + inline void set_max_num_iterations(int max_num_iterations); + inline void set_cad_matching (bool cad_matching); + inline bool get_cad_matching (void); + +protected: + + /** + * suppress output to cout + */ + bool quiet; + + /** + * take every rnd point for matching + */ + int rnd; + + /** + * extrapolate odometry + */ + bool eP; + + /** + * match against all scans (= meta scan), or against the last scan only + */ + bool meta; + + /** + * specifies which NNS method should be used + */ + int nns_method; + + /** + * specifies if the ANN trees have to be built + */ + bool cuda_enabled; + + /** + * the maximal distance (^2 !!!) for matching + */ + double max_dist_match2; + + /** + * the maximal number of iterations + */ + int max_num_iterations; + + /** + * write anim'th animation frame + */ + int anim; + + /** + * epsilon for stopping ICP algorithm ( convergence criterium ) + */ + double epsilonICP; + + /** + * ptr to ICP error function minimizer functor + */ + icp6Dminimizer *my_icp6Dminimizer; + + /** + * Maximum number of points in all scans + */ + unsigned int max_scn_size; //FIXME -> update with metascan + + /** + * determines if CAD models are matched against one scan + */ + bool cad_matching; +}; + +#include "icp6D.icc" + +#endif diff --git a/.svn/pristine/3a/3a4111eecc9f99493ea3cadb922880e59d7bf765.svn-base b/.svn/pristine/3a/3a4111eecc9f99493ea3cadb922880e59d7bf765.svn-base new file mode 100644 index 0000000..9530e25 --- /dev/null +++ b/.svn/pristine/3a/3a4111eecc9f99493ea3cadb922880e59d7bf765.svn-base @@ -0,0 +1,1499 @@ +/** + * @file scene.cc + * + * @auhtor Remus Claudiu Dumitru + * @date 13 Feb 2012 + * + */ + +//============================================================================== +// Includes +//============================================================================== +#include "model/scene.h" + +#include "model/graphicsAlg.h" +#include "model/util.h" + +#include +#include +#include +#include + +#include + +#include +#include + +#include +#include +#include +#include +using namespace std; + +//============================================================================== +// Static fields initialization +//============================================================================== +const double model::Scene::PRECISION = 0.0; +const double model::Scene::RAY_DIST = 2.5; +const double model::Scene::PATCH_DIST = 1.0; +const double model::Scene::WALL_DIST = 10.0; // must be bigger than RAY_DIST +const double model::Scene::MIN_EDGE_COV = 0.60; + +//============================================================================== +// Implementation +//============================================================================== +model::Scene::Scene(const IOType& type, + const int& start, const int& end, + std::string dir, const bool& scanserver, + const int& maxDist, const int& minDist, + const PlaneAlgorithm& alg, const int& octree, const double& red, + const vector& poses) +{ + if (!quiet) cout << endl << "== Creating scene..." << endl; + if (!quiet) cout << endl << "== Reading scans..." << endl; + + // create an output directory for planes and for images + if (makeDir(dir + "img/")== false) { + throw runtime_error("failed to create directory " + dir + "img/"); + } + + // copy class fields here + this->poses = poses; + + // identity matrix + double id[16]; + M4identity(id); + + // begin the plane detection + // Scan::dir = dir; + // Scan::readScans(type, start, end, dir, maxDist, minDist, false); + Scan::openDirectory(scanserver, dir, type, start, end); + + if(Scan::allScans.size() == 0) { + cerr << "No scans found. Did you use the correct format?" << endl; + exit(-1); + } + + int nrPlanes = 0 , currScan = start; + // for(vector ::iterator scan = Scan::allScans.begin(); scan != Scan::allScans.end(); ++scan) { + for(ScanVector::iterator scan = Scan::allScans.begin(); scan != Scan::allScans.end(); ++scan) { + + // prepare for plane detection + (*scan)->setRangeFilter(maxDist, minDist); + (*scan)->setReductionParameter(red, octree); + // scan->setSearchTreeParameter(nns_method, cuda_enabled); + + (*scan)->toGlobal(); + (*scan)->transform(id, Scan::ICP, 0); + + // read the pose of the current scan + pair pose; + const double* pt = (*scan)->get_rPos(); + const double* rot = (*scan)->get_rPosTheta(); + + pose.first.x = pt[0]; + pose.first.y = pt[1]; + pose.first.z = pt[2]; + + pose.second.x = rot[0]; + pose.second.y = rot[1]; + pose.second.z = rot[2]; + + if (!quiet) cout << "\n== Starting plane detection for scan " << currScan << " @ pose (" + << pose.first.x << " " << pose.first.y << " " << pose.first.z << " " + << pose.second.x << " " << pose.second.y << " " << pose.second.z << ")..." << endl; + + // apply hough transform + Hough hough((*scan), true); + nrPlanes += hough.RHT(); // TODO call proper algorithm + + if (!quiet) cout << "** Detected " << nrPlanes << " planes so far" << endl; + + // loop over all planes and fill in the data + for (vector::iterator convexPlane = hough.planes.begin(); + convexPlane != hough.planes.end(); convexPlane++) + { + // get the nomrla and the point of application of the normal + double tempNormal[3], tempOrigin[3]; + (*convexPlane)->getNormal(tempNormal, tempOrigin); + + // the normal and application points using our datastructures + Vector3d normal(tempNormal[0], tempNormal[1], tempNormal[2]); + Point3d origin(tempOrigin[0], tempOrigin[1], tempOrigin[2]); + + // fill in the convex hulls + vector doubleHull = (*convexPlane)->getConvexHull(); + vector pointHull; + + for (vector::iterator point = doubleHull.begin(); point != doubleHull.end(); point += 3) { + pointHull.push_back(Point3d(*(point+0), *(point+1), *(point+2))); + } + + Plane3d planeToAdd(origin, normal, pointHull); + + // add the planes to the vector + if (planeToAdd.isHorizontal() || planeToAdd.isVertical()) { + this->planes.push_back(planeToAdd); + } + else if (!quiet) { + cout << "** Discarding oblique plane centered at " + << planeToAdd.pt.x << " " << planeToAdd.pt.y << " " << planeToAdd.pt.z + << endl; + } + } + + // keep the pointer to the points + DataXYZ points = (*scan)->get("xyz reduced"); + unsigned int points_size = points.size(); + // const vector* points = (*scan)->get_points(); + + for (unsigned int i = 0; i < points_size; ++i) { + // XXX get_points returns a pointer + Point3d toPush(points[i][0], points[i][1], points[i][2]); + toPush.translate(pose.first); + toPush.rotate(Point3d(0.0, 0.0, 0.0), pose.second); + this->points.push_back(toPush); + } + + // contains the current scan number + currScan++; + } + + // to be used when constructing the octree + this->octTreePoints = new double*[this->points.size()]; + + // go over all points from all the scans + for (unsigned int i = 0; i < this->points.size(); ++i) { + double x = this->points[i].x; + double y = this->points[i].y; + double z = this->points[i].z; + + // add the points to the array to be added to the octree + this->octTreePoints[i] = new double[3]; + this->octTreePoints[i][0] = x; + this->octTreePoints[i][1] = y; + this->octTreePoints[i][2] = z; + } + + // Create the octree and fill it in. + if (!quiet) cout << endl << "== Building OctTree with " << this->points.size() << " points ..." << endl; + this->octTree = new BOctTree(this->octTreePoints, this->points.size(), octree); + //this->_octTree->init(); + this->nrPoints = this->points.size(); + + Scan::allScans.clear(); +} + +model::Scene::Scene(const Scene& other) { + this->points = other.points; + this->planes = other.planes; + this->walls = other.walls; + this->ceiling = other.ceiling; + this->floor = other.floor; +} + +model::Scene::~Scene() { + // delete the octree + if (this->octTree != NULL) { + delete this->octTree; + } + + if (this->octTreePoints != NULL) { + for (unsigned int i = 0; i < this->nrPoints; ++i) { + if (this->octTreePoints[i] != NULL) { + delete[] this->octTreePoints[i]; + } + } + delete[] this->octTreePoints; + } +} + +vector model::Scene::getConvexHull(vector planes) { + if (planes.size() <= 3) { + return planes; + } + + vector hull; + vector::iterator leftmostIt = planes.begin(); + + // compute the lefmost point + for (vector::iterator it = planes.begin() + 1; + it != planes.end(); ++it) + { + // add only vertical planes + if (it->isVertical() && it->pt.x < leftmostIt->pt.x) { + leftmostIt = it; + } + } + + Plane3d planeOnHull = *leftmostIt; + Plane3d endPlane; + + do { + // add the candidate plane to the hull + hull.push_back(planeOnHull); + endPlane = planes[0]; + + for (unsigned int j = 1; j < planes.size(); ++j) { + // consider only vertical planes + if (planes[j].isVertical() == false) { + continue; + } + + // define dummy planes in the XOZ plane + Point3d fakeCurPt(planes[j].pt.x, 0.0, planes[j].pt.z); + Point3d fakePointOnHull(planeOnHull.pt.x, 0.0, planeOnHull.pt.z); + Point3d fakeEndPoint(endPlane.pt.x, 0.0, endPlane.pt.z); + + // define a point to the left of the line + Point3d farLeft = fakeEndPoint; + farLeft.rotate(planeOnHull.pt, Rotation3d(0.0, -M_PI/6, 0.0)); + + // if ... or planes[j] on the left side of line (planeOnHull, endPlane) + if (planeOnHull.pt != planes[j].pt && + (endPlane.pt == planeOnHull.pt || sameSide(fakeCurPt, farLeft, fakePointOnHull, fakeEndPoint))) + { + endPlane = planes[j]; + } + } + + planeOnHull = endPlane; + + } while (endPlane.pt != hull[0].pt); + + return hull; +} + +vector model::Scene::getSignificantPlanes(vector planes) { + vector result; + + while (!planes.empty()) { + // add the first plane as viable + result.push_back(planes.front()); + planes.erase(planes.begin());; + + for (vector::iterator it = planes.begin(); it < planes.end(); ++it) { + if (result.back().isSamePlane(*it)) { + result.back().normal += it->normal; + planes.erase(it); + } + } + + // normalize this normal after we have normalized + result.back().normal.normalize(); + } + + return result; +} + +bool model::Scene::getCeiling(vector planes, Plane3d& result) { + vector horizontalPlanes; + + for (vector::iterator it = planes.begin(); it != planes.end(); ++it) { + if (it->isHorizontal()) { + horizontalPlanes.push_back(*it); + } + } + + if (horizontalPlanes.size() <= 0) { + return false; + } + + // start with the first horizontal plane + result = planes.front(); + + for (vector::iterator it = planes.begin()+1; + it != planes.end(); ++it) + { + if (it->pt.y > result.pt.y) { + result = *it; + } + } + + return true; +} + +bool model::Scene::getFloor(vector planes, Plane3d& result) { + vector horizontalPlanes; + + for (vector::iterator it = planes.begin(); + it != planes.end(); ++it) + { + if (it->isHorizontal()) { + horizontalPlanes.push_back(*it); + } + } + + if (horizontalPlanes.size() <= 0) { + return false; + } + + // start with the first horizontal plane + result = planes.front(); + + for (vector::iterator it = planes.begin()+1; + it != planes.end(); ++it) + { + if (it->pt.y < result.pt.y) { + result = *it; + } + } + + return true; +} + +void model::Scene::detectWalls() { + if (!quiet) cout << endl << "== Building model..." << endl; + + // temporary wall storage + vector tempWalls = this->planes; + + // extract the convex hull of the room + tempWalls = GraphicsAlg::getConcaveHull(tempWalls); + + // throw away redundant tempWalls + tempWalls = this->getSignificantPlanes(tempWalls); + + // get other bounds, ceiling and floor + Plane3d tempCeiling, tempFloor; + + if (!this->getCeiling(this->planes, tempCeiling) || !this->getFloor(this->planes, tempFloor)) { + throw runtime_error("error while determining ceiling or floor"); + } + + if (tempWalls.size() < 4) { + throw runtime_error("room has less than 4 walls"); + } + + if (!quiet) cout << "** " << tempWalls.size() << " walls have been detected" << endl; + + // XXX planes in the _walls vector should be in order + vector< pair > corners; + Point3d upperCorner, lowerCorner; + + if(!quiet) cout << endl << "== Computing corners..." << endl; + for (vector::iterator it = tempWalls.begin(); it != tempWalls.end(); ++it) { + // be careful at the last element + if (it < tempWalls.end()-1) { + upperCorner = it->intersect(*(it+1), tempCeiling); + lowerCorner = it->intersect(*(it+1), tempFloor); + } + else if (it == tempWalls.end()-1) { + upperCorner = it->intersect(tempWalls.front(), tempCeiling); + lowerCorner = it->intersect(tempWalls.front(), tempFloor); + } + + if (!quiet) cout << showpos << "** Computed upper corner " << upperCorner << endl; + if (!quiet) cout << showpos << "** Computed lower corner " << lowerCorner << endl; + + corners.push_back(make_pair(upperCorner, lowerCorner)); + } + + if (!quiet) cout << endl << "== Building walls, ceiling and floor..." << endl; + + // used to create the walls + Point3d upperLeft, upperRight; + Point3d lowerLeft, lowerRight; + + // used to create the floor and the ceiling + vector ceilingHull; + vector floorHull; + + Point3d ceilingCenter(0.0, 0.0, 0.0); + Point3d floorCenter(0.0, 0.0, 0.0); + + Vector3d ceilingNormal; + Vector3d floorNormal; + + for (vector< pair >::iterator it = corners.begin(); + it != corners.end(); ++it) + { + upperLeft = it->first; + lowerLeft = it->second; + + if (it < corners.end()-1) { + upperRight = (it+1)->first; + lowerRight = (it+1)->second; + } + else if (it == corners.end()-1) { + upperRight = corners.front().first; + lowerRight = corners.front().second; + } + + Point3d center((upperLeft.x + lowerLeft.x + upperRight.x + lowerRight.x) / 4.0, + (upperLeft.y + lowerLeft.y + upperRight.y + lowerRight.y) / 4.0, + (upperLeft.z + lowerLeft.z + upperRight.z + lowerRight.z) / 4.0); + + vector hull; + hull.push_back(upperLeft); + hull.push_back(lowerLeft); + hull.push_back(lowerRight); + hull.push_back(upperRight); + + if (!quiet) cout << "** Adding wall centered at " << center << endl; + this->walls.push_back(LabeledPlane3d(center, Vector3d(), hull)); + this->walls.back().normal = this->walls.back().computeAverageNormal(); + + // compute the floor and the ceiling + ceilingHull.push_back(it->first); + floorHull.push_back(it->second); + + ceilingCenter.x += it->first.x; + ceilingCenter.y += it->first.y; + ceilingCenter.z += it->first.z; + + floorCenter.x += it->second.x; + floorCenter.y += it->second.y; + floorCenter.z += it->second.z; + } + ceilingCenter /= ceilingHull.size(); + floorCenter /= floorHull.size(); + + // dummy normal + Vector3d dummy; + + if (!quiet) cout << "** Adding ceiling centered at " << ceilingCenter << endl; + this->ceiling = LabeledPlane3d(ceilingCenter, dummy, ceilingHull); + this->ceiling.normal = this->ceiling.computeAverageNormal(); + + if (!quiet) cout << "** Adding floor centered at " << floorCenter << endl; + this->floor = LabeledPlane3d(floorCenter, dummy, floorHull); + this->floor.normal = this->floor.computeAverageNormal(); +} + +bool model::Scene::castRay(const Point3d& src, const Point3d& dest, const double& extraDist, + Point3d& ptHit) +{ + // put the Bresenham line in here, we need some extra distance in case the points are close + // but after the detected wall, therefore we need to go a bit further than the wall to check + vector line; + GraphicsAlg::getDiscreteLine(src, dest, PRECISION, extraDist, line); + + // loop through all the points in the Bresenham line and decide if it hits something + for (vector::iterator it = line.begin(); it != line.end(); ++it) { + if (this->isOccupied(*it, RAY_DIST)) { + ptHit = *it; + return true; + } + } + + // no occlusion took place + return false; +} + +void model::Scene::applyLabels(LabeledPlane3d& surf) { + if (this->poses.empty()) { + throw runtime_error("no poses have been provided to the scene"); + } + + // the maximum distance from which we subtract to create a depth image + double maxDist = 2.0 * WALL_DIST + RAY_DIST; + + // determine the points on the plane for which to apply labels + vector > discretePoints = surf.getDiscretePoints(PATCH_DIST); + + surf.patches.resize(discretePoints.size()); + surf.depthMap.resize(discretePoints.size()); + + // we need these values for later + surf.depthMapDistances.first = WALL_DIST; + surf.depthMapDistances.second = maxDist; + + for (unsigned int i = 0; i < discretePoints.size(); ++i) { + for (unsigned int j = 0; j < discretePoints.front().size(); ++j) { + // consider everything is occluded initially + surf.patches[i].push_back(make_pair(discretePoints[i][j], OCCLUDED)); + surf.depthMap[i].push_back(WALL_DIST); + } + } + + if (!quiet) cout << endl << "== Performing ray casting for surface centered at " << surf.pt << endl; + + for (vector::iterator srcPose = this->poses.begin(); srcPose != this->poses.end(); ++srcPose) { + for (unsigned int i = 0; i < surf.patches.size(); ++i) { + for (unsigned int j = 0; j < surf.patches[i].size(); ++j) { + // prepare two points for ray casting through wall + Point3d ptOnWall = surf.patches[i][j].first; + Point3d src(surf.normal.x + ptOnWall.x, + surf.normal.y + ptOnWall.y, + surf.normal.z + ptOnWall.z); + + double len = ptOnWall.distance(src); + double temp = (len + WALL_DIST) / len; + src.x = ptOnWall.x + (src.x - ptOnWall.x) * temp; + src.y = ptOnWall.y + (src.y - ptOnWall.y) * temp; + src.z = ptOnWall.z + (src.z - ptOnWall.z) * temp; + + // remember the point we hit when ray casting + Point3d ptHit; + + if (insideHull(surf.patches[i][j].first, surf.hull) && castRay(src, ptOnWall, WALL_DIST, ptHit)) { + surf.patches[i][j].second = OCCUPIED; + surf.depthMap[i][j] = maxDist - src.distance(ptHit); + } else if (!castRay(srcPose->first, surf.patches[i][j].first, 0, ptHit)) { + surf.patches[i][j].second = EMPTY; + surf.depthMap[i][j] = 0.0; + } + } + } + } + + // create the OpenCV depth image + int imgHeight = static_cast(surf.depthMap.size()); + int imgWidth = static_cast(surf.depthMap.front().size()); + + // crate an OpenCV image and allocate memory for it + cv::Mat img(imgHeight, imgWidth, CV_8UC1); + + // compute the maximum from the image + double max = numeric_limits::min(); + for (int i = 0; i < imgHeight; ++i) { + for (int j = 0; j < imgWidth; ++j) { + if (max < surf.depthMap[i][j]) { + max = surf.depthMap[i][j]; + } + } + } + + // write the current image to a file + cv::Mat labels(imgHeight, imgWidth, CV_8UC3); + + // adjust the image + for (int i = 0; i < imgHeight; ++i) { + for (int j = 0; j < imgWidth; ++j) { + img.data[(i * img.cols) + j] = static_cast(MAX_IMG_VAL * surf.depthMap[i][j] / max); + + // put the color into the image according to the label + int curr = (i * 3 * img.cols) + 3 * j; + switch (surf.patches[i][j].second) { + case EMPTY: + labels.data[curr + 0] = 0; + labels.data[curr + 1] = 200; + labels.data[curr + 2] = 0; + break; + case OCCLUDED: + labels.data[curr + 0] = 200; + labels.data[curr + 1] = 0; + labels.data[curr + 2] = 0; + break; + case OCCUPIED: + labels.data[curr + 0] = 0; + labels.data[curr + 1] = 0; + labels.data[curr + 2] = 200; + break; + default: + throw runtime_error("invalid default branch taken"); + break; + } + } + } + cv::imwrite("./img/labels.png", labels); + + // copy the image + surf.depthImg = img.clone(); +} + +void model::Scene::applyAllLabels() { + if (!quiet) cout << endl << "== Performing ray casting for all surfaces..." << endl; + + applyLabels(this->ceiling); + applyLabels(this->floor); + + for (vector::iterator it = this->walls.begin(); it != this->walls.end(); ++it) { + applyLabels(*it); + } +} + +void model::Scene::detectPotentialOpenings(const LabeledPlane3d& surf, + std::vector& openings) +{ + if (!quiet) cout << endl << "== Determining openings for surface centered at " << surf.pt << endl; + + // get the candidate openings for current plane + vector candidates; + surf.computeOpeningCandidates(candidates); + + // TODO train the SVM using some outside variables, not hard coded in here, play around a lot with these numbers + // prepare to train the SVM + + const unsigned int nrSamples = 68; + const unsigned int nrMainClass = 14; + const unsigned int nrFeatures = model::CandidateOpening::NR_FEATURES; + + // make a set of excluded features + int excludedFeaturesInit[] = {6, 7, 8, 12, 13}; + set excludedFeatures(excludedFeaturesInit, excludedFeaturesInit + 5); + + // set up the training data using some real life examples, needs to be flaot + float trainingData[nrSamples][14] = { + // TODO fix the RMS fit residual + // 1 area | 2 w/h | 3 w/W | 4 h/H | 5-8 dist to edges | 9 RMS | 10-12 E Occup Occl | 13 int rect | 14 int U-shapes + { 3120, 0.42, 0.05, 0.36, 23, 138, 550, 126, 0, 0.93, 0.01, 0.06, 15, 0}, + { 3090, 0.42, 0.05, 0.36, 23, 138, 126, 550, 0, 0.93, 0.01, 0.06, 15, 0}, + { 6810, 0.94, 0.11, 0.34, 23, 140, 453, 176, 0, 0.91, 0.02, 0.07, 15, 0}, + { 6815, 0.94, 0.11, 0.34, 23, 140, 176, 453, 0, 0.91, 0.02, 0.07, 15, 0}, + {11780, 1.52, 0.19, 0.35, 23, 139, 450, 128, 0, 0.89, 0.01, 0.10, 15, 0}, + {11190, 1.52, 0.18, 0.35, 23, 139, 128, 450, 0, 0.88, 0.02, 0.10, 15, 0}, + {10374, 1.70, 0.18, 0.31, 31, 141, 453, 124, 0, 0.87, 0.02, 0.11, 15, 0}, + {10374, 1.70, 0.18, 0.31, 31, 141, 124, 453, 0, 0.87, 0.02, 0.11, 15, 0}, + {27600, 0.82, 0.22, 0.62, 18, 97, 403, 148, 0, 0.95, 0.03, 0.02, 12, 0}, + {27600, 0.82, 0.22, 0.62, 18, 97, 148, 403, 0, 0.94, 0.03, 0.03, 12, 0}, + {25516, 0.87, 0.22, 0.59, 28, 100, 49, 396, 0, 0.84, 0.11, 0.05, 20, 0}, + {26316, 0.87, 0.22, 0.59, 28, 100, 396, 49, 0, 0.84, 0.13, 0.03, 22, 0}, + {25516, 0.87, 0.22, 0.59, 28, 100, 70, 396, 0, 0.84, 0.11, 0.05, 20, 0}, + {26316, 0.87, 0.22, 0.59, 28, 100, 396, 70, 0, 0.84, 0.13, 0.03, 22, 0}, + //======================================================================== + {+143289, +2.10345, +0.786533, +0.887755, +31, +1, +1, +147, +0, +0.371222, +0.524681, +0.104097, +34300, +0}, + {+180612, +2.65134, +0.991404, +0.887755, +31, +1, +1, +4, +0, +0.294571, +0.620845, +0.0845846, +44100, +0}, + {+180873, +2.65517, +0.992837, +0.887755, +31, +1, +1, +3, +0, +0.294146, +0.621392, +0.0844626, +55125, +0}, + {+181395, +2.66284, +0.995702, +0.887755, +31, +1, +1, +1, +0, +0.293299, +0.622481, +0.0842195, +67375, +0}, + {+181656, +2.66667, +0.997135, +0.887755, +31, +1, +1, +0, +0, +0.292878, +0.621846, +0.0852766, +80850, +0}, + {+181828, +2.64885, +0.994269, +0.891156, +31, +0, +0, +3, +0, +0.292634, +0.621114, +0.0862518, +70125, +2750}, + {+143838, +2.09542, +0.786533, +0.891156, +31, +0, +1, +147, +0, +0.369805, +0.525466, +0.104729, +35700, +1400}, + {+181304, +2.64122, +0.991404, +0.891156, +31, +0, +1, +4, +0, +0.293446, +0.621465, +0.0850891, +45900, +1800}, + {+181566, +2.64504, +0.992837, +0.891156, +31, +0, +1, +3, +0, +0.293023, +0.622011, +0.0849663, +57375, +2250}, + {+182090, +2.65267, +0.995702, +0.891156, +31, +0, +1, +1, +0, +0.29218, +0.623093, +0.0847273, +70125, +2750}, + {+182352, +2.65649, +0.997135, +0.891156, +31, +0, +1, +0, +0, +0.29176, +0.622455, +0.0857846, +84150, +3300}, + {+120270, +2.70142, +0.792768, +0.717687, +31, +51, +1, +147, +0, +0.427181, +0.486813, +0.0860065, +8400, +0}, + {+150654, +3.38389, +0.993046, +0.717687, +31, +51, +1, +3, +0, +0.341299, +0.588308, +0.0703931, +10800, +0}, + {+150865, +3.38863, +0.994437, +0.717687, +31, +51, +1, +2, +0, +0.340821, +0.588884, +0.0702946, +13500, +0}, + {+39680, +0.605469, +0.222063, +0.870748, +32, +5, +396, +146, +0, +0.654738, +0.294254, +0.0510081, +3243, +0}, + {+38656, +0.589844, +0.216332, +0.870748, +32, +5, +400, +146, +0, +0.672082, +0.27931, +0.0486082, +1081, +0}, + {+39835, +0.603113, +0.222063, +0.87415, +32, +4, +396, +146, +0, +0.655153, +0.293787, +0.0510606, +3384, +0}, + {+38807, +0.587549, +0.216332, +0.87415, +32, +4, +400, +146, +0, +0.672508, +0.278893, +0.0485995, +1128, +0}, + {+39990, +0.600775, +0.222063, +0.877551, +32, +3, +396, +146, +0, +0.655539, +0.293373, +0.0510878, +3528, +0}, + {+38958, +0.585271, +0.216332, +0.877551, +32, +3, +400, +146, +0, +0.672904, +0.278505, +0.0485908, +1176, +0}, + {+40145, +0.598456, +0.222063, +0.880952, +32, +2, +396, +146, +0, +0.655374, +0.293586, +0.05104, +3675, +0}, + {+39109, +0.583012, +0.216332, +0.880952, +32, +2, +400, +146, +0, +0.672735, +0.278759, +0.0485055, +1225, +0}, + {+40300, +0.596154, +0.222063, +0.884354, +32, +1, +396, +146, +0, +0.652854, +0.296154, +0.0509926, +3825, +0}, + {+39260, +0.580769, +0.216332, +0.884354, +32, +1, +400, +146, +0, +0.670148, +0.281457, +0.0483953, +1275, +0}, + {+40455, +0.59387, +0.222063, +0.887755, +32, +0, +396, +146, +0, +0.650352, +0.298702, +0.0509455, +3978, +153}, + {+39411, +0.578544, +0.216332, +0.887755, +32, +0, +400, +146, +0, +0.66758, +0.284134, +0.048286, +1326, +51}, + {+115564, +4.14371, +0.991404, +0.568027, +33, +93, +1, +4, +0, +0.429745, +0.554031, +0.0162248, +990, +0}, + {+115731, +4.1497, +0.992837, +0.568027, +33, +93, +1, +3, +0, +0.429124, +0.554674, +0.0162014, +1170, +0}, + {+116065, +4.16168, +0.995702, +0.568027, +33, +93, +1, +1, +0, +0.42789, +0.555956, +0.0161547, +1365, +0}, + {+116232, +4.16766, +0.997135, +0.568027, +33, +93, +1, +0, +0, +0.427275, +0.555544, +0.0171812, +1575, +0}, + {+118674, +4.05848, +0.994269, +0.581633, +33, +89, +0, +3, +0, +0.419292, +0.556575, +0.0241333, +1911, +0}, + {+119016, +4.07018, +0.997135, +0.581633, +33, +89, +0, +1, +0, +0.418087, +0.557849, +0.024064, +2205, +0}, + {+118332, +4.04678, +0.991404, +0.581633, +33, +89, +1, +4, +0, +0.420453, +0.556739, +0.0228087, +1386, +0}, + {+33790, +0.711009, +0.222063, +0.741497, +33, +42, +396, +146, +0, +0.736372, +0.215715, +0.0479136, +828, +0}, + {+33136, +0.697248, +0.217765, +0.741497, +33, +42, +399, +146, +0, +0.750905, +0.201231, +0.0478634, +276, +0}, + {+65880, +4.575, +0.786533, +0.408163, +33, +140, +1, +147, +0, +0.541166, +0.455055, +0.0037796, +45, +0}, + {+66360, +4.60833, +0.792264, +0.408163, +33, +140, +1, +143, +0, +0.537251, +0.458996, +0.00375226, +55, +0}, + {+135218, +3.59278, +0.998567, +0.659864, +33, +66, +0, +0, +0, +0.375216, +0.557995, +0.0667884, +11550, +0}, + {+135135, +3.55385, +0.992837, +0.663265, +33, +65, +0, +4, +0, +0.375484, +0.557457, +0.0670589, +6468, +0}, + {+135330, +3.55897, +0.994269, +0.663265, +33, +65, +0, +3, +0, +0.374943, +0.558095, +0.0669622, +8316, +0}, + {+135720, +3.56923, +0.997135, +0.663265, +33, +65, +0, +1, +0, +0.373865, +0.559365, +0.0667698, +10395, +0}, + {+135915, +3.57436, +0.998567, +0.663265, +33, +65, +0, +0, +0, +0.373329, +0.558893, +0.0677777, +12705, +0}, + {+142065, +3.38049, +0.992837, +0.697279, +33, +55, +0, +4, +0, +0.357998, +0.572006, +0.0699961, +7728, +0}, + {+117117, +4.10059, +0.992837, +0.57483, +30, +94, +0, +4, +0, +0.428213, +0.555837, +0.0159499, +280, +0}, + {+117286, +4.10651, +0.994269, +0.57483, +30, +94, +0, +3, +0, +0.427596, +0.556477, +0.0159269, +360, +0}, + {+117624, +4.11834, +0.997135, +0.57483, +30, +94, +0, +1, +0, +0.426367, +0.557752, +0.0158811, +450, +0}, + {+117793, +4.12426, +0.998567, +0.57483, +30, +94, +0, +0, +0, +0.425755, +0.557359, +0.0168856, +550, +0}, + {+43176, +1.52976, +0.368195, +0.571429, +30, +95, +396, +44, +0, +0.571822, +0.428178, +0, +36, +0}, + {+43344, +1.53571, +0.369628, +0.571429, +30, +95, +396, +43, +0, +0.569606, +0.430394, +0, +60, +0}, + {+42672, +1.5119, +0.363897, +0.571429, +30, +95, +399, +44, +0, +0.578576, +0.421424, +0, +18, +0}, + {+42840, +1.51786, +0.36533, +0.571429, +30, +95, +399, +43, +0, +0.576307, +0.423693, +0, +36, +0}, + {+42504, +1.50595, +0.362464, +0.571429, +30, +95, +400, +44, +0, +0.580863, +0.419137, +0, +6, +0}, + {+42672, +1.5119, +0.363897, +0.571429, +30, +95, +400, +43, +0, +0.578576, +0.421424, +0, +18, +0}, + {+33338, +0.748815, +0.226361, +0.717687, +29, +53, +396, +143, +0, +0.760244, +0.195453, +0.0443038, +1134, +0}, + }; + + // match the labels to the training data + float mainLabel = 1.0; + float labels[nrSamples]; + // create the labels + for (unsigned int i = 0; i < nrSamples; ++i) { + if (i < nrMainClass) { + labels[i] = mainLabel; + } else { + labels[i] = -mainLabel; + } + } + + // normalize the values above + float maxFeatures[nrFeatures]; + + for (unsigned int i = 0; i < nrFeatures; ++i) { + maxFeatures[i] = numeric_limits::min(); + } + + for (unsigned int i = 0; i < nrSamples; ++i) { + for (unsigned int j = 0; j < nrFeatures; ++j) { + if (maxFeatures[j] < trainingData[i][j]) { + maxFeatures[j] = trainingData[i][j]; + } + } + } + + for (unsigned int i = 0; i < nrSamples; ++i) { + for (unsigned int j = 0; j < nrFeatures; ++j) { + if (excludedFeatures.find(j) != excludedFeatures.end()) { + trainingData[i][j] = 0.0; + } else { + trainingData[i][j] /= maxFeatures[j]; + } + } + } + + // compute the max of the values of the candidates, but normalize later + for (unsigned int i = 0; i < nrFeatures; ++i) { + maxFeatures[i] = numeric_limits::min(); + } + + for (vector::iterator it = candidates.begin(); it != candidates.end(); ++it) { + for (unsigned int feat = 0; feat < nrFeatures; ++feat) { + if (maxFeatures[feat] < it->features[feat]) { + maxFeatures[feat] = it->features[feat]; + } + } + } + + // create two OpenCV matrices + cv::Mat trainingMat(nrSamples, nrFeatures, CV_32FC1, trainingData); + cv::Mat labelsMat(nrSamples, 1, CV_32FC1, labels); + + // set up the SVM parameters + cv::SVMParams params; + params.svm_type = cv::SVM::NU_SVC; + params.kernel_type = cv::SVM::RBF; + params.term_crit = cv::TermCriteria(CV_TERMCRIT_ITER | CV_TERMCRIT_EPS, 1000, 1e-6); + + params.nu = 0.8; + params.C = 8.0; + params.gamma = 20; + + // create SVM and train it + cv::SVM svm; + svm.train_auto(trainingMat, labelsMat, cv::Mat(), cv::Mat(), params); // XXX with or without auto + + // store these openings, and filter some more later on + std::vector tempOpenings; + + for (vector::iterator it = candidates.begin(); it != candidates.end(); ++it) { + if (it->features.size() != nrFeatures) { + throw runtime_error("number of features in candidate in does not equal the expected one"); + } + + float candidateData[nrFeatures]; + for (size_t jt = 0; jt < it->features.size(); ++jt) { + if (excludedFeatures.find(jt) != excludedFeatures.end()) { + candidateData[jt] = 0.0; + } else { + // also normalize the data here, and not in the candidateOpening object + candidateData[jt] = static_cast(it->features[jt]) / maxFeatures[jt]; + } + } + cv::Mat candidateMat(1, nrFeatures, CV_32FC1, candidateData); + + // decide of which type the current opening is + float response = svm.predict(candidateMat); + if (response == mainLabel) { + tempOpenings.push_back(*it); + } + } + + // filter openings with respect to how much they overlap with the Canny edge + cv::Mat canny, hSobel, vSobel, combined; + surf.detectEdges(canny, hSobel, vSobel, combined); + + double maxEdgeCoverage = numeric_limits::min(); + double averageArea = 0.0; + for (vector::iterator it = tempOpenings.begin(); it != tempOpenings.end(); ++it) { + int y1 = it->edges[0]; + int y2 = it->edges[1]; + int x1 = it->edges[2]; + int x2 = it->edges[3]; + + // how many pixels overlap? + int total = 2 * (y2 - y1 + x2 - x1) + 1; + int count = total; + + if (y2 < y1 || x2 < x1) { + throw runtime_error("candidate edges must be in proper order"); + } + + for (int i = y1; i <= y2; ++i) { + if (combined.data[i * combined.cols + x1] == 0) { + count--; + } + if (combined.data[i * combined.cols + x2] == 0) { + count--; + } + } + + for (int i = x1; i <= x2; ++i) { + if (combined.data[y1 * combined.cols + i] == 0) { + count--; + } + if (combined.data[y2 * combined.cols + i] == 0) { + count--; + } + } + + // remember the edge coverage inside the object + it->edgeCoverage = static_cast(count) / total; + if (maxEdgeCoverage < it->edgeCoverage) { + maxEdgeCoverage = it->edgeCoverage; + } + + // increment the average area + averageArea += it->features[0]; + } + averageArea /= tempOpenings.size(); + + unsigned int discarded = 0; + for (vector::iterator it = tempOpenings.begin(); it != tempOpenings.end(); ++it) { + // TODO put coef in class + if ((it->features[0] > 0.3 * averageArea) && + (it->edgeCoverage > MIN_EDGE_COV * maxEdgeCoverage)) + { + openings.push_back(*it); + } else { + discarded++; + } + } + + if (!quiet) cout << "** Discarded openings due to relative size to average candidate: " << discarded << endl; + + // draw the chosen rectangles, and also the occupancy map + cv::Mat imgWithOpenings = surf.depthImg; + cv::cvtColor(imgWithOpenings, imgWithOpenings, CV_GRAY2BGR, 3); + + for (size_t i = 0; i < openings.size(); ++i) { + int y1 = openings[i].edges[0]; + int y2 = openings[i].edges[1]; + int x1 = openings[i].edges[2]; + int x2 = openings[i].edges[3]; + + cv::rectangle(imgWithOpenings, cv::Point(x1, y1), cv::Point(x2, y2), cv::Scalar(0, 0, MAX_IMG_VAL), 1); + } + + cv::imwrite("./img/depthCandidates.png", imgWithOpenings); + + if (!quiet) cout << "** Detected " << openings.size() << " potential openings" << endl; +} + +void model::Scene::clusterOpenings(const LabeledPlane3d& surf, const vector& openings, + std::vector& result) const +{ + // clear the result just in case + result.clear(); + + if (openings.size() == 1) { + if (!quiet) cerr << "WARNING: only one candidate received for clustering!" << endl; + result.push_back(openings.front()); + return; + } else if (openings.size() < 1) { + if (!quiet) cerr << "WARNING: no candidates received for clustering!" << endl; + return; + } + + if (!quiet) cout << endl << "== Clustering openings for surface centered at " << surf.pt << endl; + + size_t nrSamples = openings.size(); + unsigned int dim = 7; + + // a few matrix initializations + CvMat* points = cvCreateMat(nrSamples, dim, CV_32FC1); + CvMat* clusters = cvCreateMat(nrSamples, 1, CV_32SC1); + + // fill in the matrices with data + for (size_t i = 0; i < nrSamples; ++i) { + if (openings[i].features.size() != model::CandidateOpening::NR_FEATURES) { + throw runtime_error("invalid feature vector size"); + } + + // compute the center of each opening + float x = static_cast(openings[i].edges[2] + openings[i].edges[3]) / 2.0; + float y = static_cast(openings[i].edges[0] + openings[i].edges[1]) / 2.0; + + points->data.fl[i * dim + 0] = x; // window center + points->data.fl[i * dim + 1] = y; // window center + points->data.fl[i * dim + 2] = openings[i].edges[0]; // upper edge + points->data.fl[i * dim + 3] = openings[i].edges[1]; // lower edge + points->data.fl[i * dim + 4] = openings[i].edges[2]; // left edge + points->data.fl[i * dim + 5] = openings[i].edges[3]; // right edge + points->data.fl[i * dim + 6] = openings[i].features[1];// edge ratio + } + + // termination criteria for the kMeans algorithm + CvTermCriteria term; + term.type = CV_TERMCRIT_ITER | CV_TERMCRIT_EPS; + term.max_iter = 10; + term.epsilon = 1.0; + int maxNrClusters = 256; + + int nrClusters = 2; // from how many clusters to start + double prev, compactness; // previous compactness, and current compactness + CvMat *centers = cvCreateMat(nrClusters - 1, dim, CV_32FC1); // place where we compute the centers of each cluster + cvKMeans2(points, nrClusters - 1, clusters, term, 1, 0, 0, centers, &prev); + + while (1) { + cvReleaseMat(¢ers); + centers = cvCreateMat(nrClusters, dim, CV_32FC1); + cvKMeans2(points, nrClusters, clusters, term, 1, 0, 0, centers, &compactness); + + // TODO put somewhere everything in class + double deltaCompactness = compactness - prev; + if (!quiet) cout << "** Delta compactness: " << deltaCompactness << endl; + if (fabs(deltaCompactness) < 1.0 || nrClusters >= maxNrClusters) { + break; + } + + prev = compactness; + nrClusters++; + } + + if (!quiet) cout << "** Detected " << static_cast(nrClusters) << " clusters of potential openings" << endl; + + // generate colors for each cluster + int r, g, b; + cv::Scalar colors[nrClusters]; + for (int i = 0; i < nrClusters; ++i) { + randomColor(MAX_IMG_VAL, r, g, b); + colors[i] = (cv::Scalar(b, g, r)); + } + + // create an image with the clusters in separate colors + cv::Mat clusterImg = surf.depthImg; + cv::Mat finalImg = surf.depthImg; + cv::cvtColor(clusterImg, clusterImg, CV_GRAY2BGR, 3); + cv::cvtColor(finalImg, finalImg, CV_GRAY2BGR, 3); + + // count how many elements we have in each cluster + vector clusterCount; + clusterCount.resize(nrClusters); + fill(clusterCount.begin(), clusterCount.end(), 0); + + // compute the candidate for each cluster with the best coverage of empty area + vector bestCandidates; + bestCandidates.resize(nrClusters); + + vector bestEmptyAreas; + bestEmptyAreas.resize(nrClusters); + fill(bestEmptyAreas.begin(), bestEmptyAreas.end(), numeric_limits::min()); + + // fill in the result separating each cluster + for (size_t i = 0; i < nrSamples; ++i) { + // the cluster of the current opening + int currCluster = clusters->data.i[i]; + + // draw each cluster + int y1 = openings[i].edges[0]; + int y2 = openings[i].edges[1]; + int x1 = openings[i].edges[2]; + int x2 = openings[i].edges[3]; + cv::rectangle(clusterImg, cv::Point(x1, y1), cv::Point(x2, y2), colors[currCluster], 1); + + // TODO avoid hard coding + // find which is the best choice from the cluster + double currEmptyArea = openings[i].features[0] * + (openings[i].features[9] - openings[i].features[10] - openings[i].features[11]); + if (bestEmptyAreas[currCluster] < currEmptyArea) { + bestEmptyAreas[currCluster] = currEmptyArea; + bestCandidates[currCluster] = openings[i]; + } + + clusterCount[currCluster]++; + } + + // divide by the cluster count to get the average of the cluster + for (size_t i = 0; i < bestEmptyAreas.size(); ++i) { + if (clusterCount[i] <= 0) { + continue; + } + + int y1 = bestCandidates[i].edges[0]; + int y2 = bestCandidates[i].edges[1]; + int x1 = bestCandidates[i].edges[2]; + int x2 = bestCandidates[i].edges[3]; + + cv::rectangle(finalImg, cv::Point(x1, y1), cv::Point(x2, y2), colors[i], 2); + result.push_back(bestCandidates[i]); + } + + if (!quiet) { + cout << "** The count for each cluster is ["; + for (unsigned int i = 0; i < clusterCount.size() - 1; ++i) { + cout << clusterCount[i] << ", "; + } + cout << clusterCount.back() << "]" << endl; + } + + // display the center of the cluster only for the clusters that have candidates + for (int i = 0; i < nrClusters; ++i) { + if (clusterCount[i] > 0) { + int x = static_cast(centers->data.fl[i * dim + 0]); + int y = static_cast(centers->data.fl[i * dim + 1]); + cv::circle(clusterImg, cv::Point(x, y), 2, colors[i], CV_FILLED); + cv::circle(finalImg, cv::Point(x, y), 2, colors[i], CV_FILLED); + } + } + + cv::imwrite("./img/depthClusters.png", clusterImg); + cv::imwrite("./img/depthOpenings.png", finalImg); + + cvReleaseMat(&points); + cvReleaseMat(¢ers); + cvReleaseMat(&clusters); +} + +void model::Scene::addFinalOpenings(const LabeledPlane3d& surf, + std::vector& result) +{ + int imgHeight = static_cast(surf.depthMap.size()); + int imgWidth = static_cast(surf.depthMap.front().size()); + + vector openings, candidates; + this->detectPotentialOpenings(surf, openings); + this->clusterOpenings(surf, openings, candidates); + + // sweep across the wall and see which candidates overlap + for (int i = 0; i < imgHeight; ++i) { + for (int j = 0; j < imgWidth; ++j) { + // put currently overlapping candidates here + vector::iterator, double> > temp; + + // the maximum opening area in the current overlapping windows + double bestEmptyArea = numeric_limits::min(); + + for (vector::iterator it = candidates.begin(); it < candidates.end(); ++it) { + int y1 = it->edges[0]; + int y2 = it->edges[1]; + int x1 = it->edges[2]; + int x2 = it->edges[3]; + + if (i >= y1 && i < y2 && j >= x1 && j <= x2) { + // TODO avoid hard coding + double freeArea = it->features[0] * + (it->features[9] - it->features[10] - it->features[11]); + temp.push_back(make_pair(it, freeArea)); + + if (bestEmptyArea < freeArea) { + bestEmptyArea = freeArea; + } + } + } + + for (vector::iterator, double> >::iterator it = temp.begin(); it < temp.end(); ++it) { + // if the area is smaller than the maximum discard this plane + if (it->second < bestEmptyArea) { + candidates.erase(it->first); + } + } + } + } + + // display an image with the final openings + int r, g, b; + cv::Mat finalOpeningsImg = surf.depthImg.clone(); + cv::cvtColor(finalOpeningsImg, finalOpeningsImg, CV_GRAY2BGR, 3); + + for (vector::iterator it = candidates.begin(); it < candidates.end(); ++it) { + int y1 = it->edges[0]; + int y2 = it->edges[1]; + int x1 = it->edges[2]; + int x2 = it->edges[3]; + + randomColor(MAX_IMG_VAL, r, g, b); + cv::rectangle(finalOpeningsImg, cv::Point(x1, y1), cv::Point(x2, y2), cv::Scalar(b, g, r), 3); + + // add the new openings as windows + Point3d pt(0.0, 0.0, 0.0); + pt += surf.patches[y1].front().first; + pt += surf.patches[y2].front().first; + pt += surf.patches.front()[x1].first; + pt += surf.patches.front()[x2].first; + pt /= 4.0; + + vector hull; + hull.push_back(surf.patches[y1][x1].first); + hull.push_back(surf.patches[y1][x2].first); + hull.push_back(surf.patches[y2][x2].first); + hull.push_back(surf.patches[y2][x1].first); + + Plane3d toPush(pt, surf.normal, hull); + this->finalOpenings.push_back(toPush); + } + + cv::imwrite("./img/depthOpeningsFinal.png", finalOpeningsImg); + if (!quiet) cout << "** Final openings found on current surface: " << candidates.size() << endl; + if (!quiet) cout << "** Final openings found so far: " << this->finalOpenings.size() << endl; + + // copy the result + result = candidates; +} + +void model::Scene::correct(LabeledPlane3d& surf, const vector& openings) { + if (!quiet) cout << endl << "== Correcting surface centered at " << surf.pt << endl; + + int imgHeight = static_cast(surf.depthMap.size()); + int imgWidth = static_cast(surf.depthMap.front().size()); + + // some images we are interested in + cv::Mat depthImg = surf.depthImg.clone(); + cv::Mat depthImgMask(imgHeight, imgWidth, CV_8UC1); + cv::Mat labelsImg(imgHeight, imgWidth, CV_8UC3); + + // compute the maximum from the image + double max = numeric_limits::min(); + double mean = 0.0, stdDev = 0.0; + int count = 0; + + for (int i = 0; i < imgHeight; ++i) { + for (int j = 0; j < imgWidth; ++j) { + // set all empty and occluded to unknown + if (surf.patches[i][j].second == EMPTY || surf.patches[i][j].second == OCCLUDED) { + surf.patches[i][j].second = UNKOWN; + // compute the mean of the occupied patches + } else if (surf.patches[i][j].second == OCCUPIED) { + mean += surf.depthImg.data[i * surf.depthImg.cols + j]; + count++; + } + + // compute the maximum from the image + if (max < surf.depthMap[i][j]) { + max = surf.depthMap[i][j]; + } + } + } + + // adjust the mean + mean /= count; + count = 0; + + // compute the standard deviation + for (int i = 0; i < imgHeight; ++i) { + for (int j = 0; j < imgWidth; ++j) { + if (surf.patches[i][j].second == OCCUPIED) { + stdDev += pow(surf.depthImg.data[i * surf.depthImg.cols + j] - mean, 2.0); + count++; + } + + } + } + + // adjust the standard deviation + stdDev = sqrt(stdDev / count); + + // mark all patches contained in openings + for (vector::const_iterator it = openings.begin(); it != openings.end(); ++it) { + int y1 = it->edges[0]; + int y2 = it->edges[1]; + int x1 = it->edges[2]; + int x2 = it->edges[3]; + + for (int i = 0; i < imgHeight; ++i) { + for (int j = 0; j < imgWidth; ++j) { + if (i >= y1 && i <= y2 && j >= x1 && j <= x2) { + surf.patches[i][j].second = OPENING; + } + } + } + } + + // adjust the image + for (int i = 0; i < imgHeight; ++i) { + for (int j = 0; j < imgWidth; ++j) { + // initially mark as not part of the mask + depthImgMask.data[i * depthImgMask.cols + j] = 0; + + // put the color into the image according to the label + int curr = (i * 3 * labelsImg.cols) + 3 * j; + switch (surf.patches[i][j].second) { + case OPENING: + labelsImg.data[curr + 0] = 200; + labelsImg.data[curr + 1] = 200; + labelsImg.data[curr + 2] = 200; + break; + case UNKOWN: + labelsImg.data[curr + 0] = 50; + labelsImg.data[curr + 1] = 50; + labelsImg.data[curr + 2] = 50; + + // add pixel to mask for inpainting + depthImgMask.data[i * depthImgMask.cols + j] = 200; + break; + case OCCUPIED: + labelsImg.data[curr + 0] = 0; + labelsImg.data[curr + 1] = 0; + labelsImg.data[curr + 2] = 200; + break; + default: + throw runtime_error("invalid default branch taken, possibly EMPTY or OCCLUDED patches"); + break; + } + } + } + + cv::imwrite("./img/labelsWithOpenings.png", labelsImg); + cv::imwrite("./img/depthMask.png", depthImgMask); + cv::imwrite("./img/depthSimple.png", depthImg); + + // TODO add values as part of class + if (!quiet) cout << "** Filling in missing data using inpaint algorithm" << endl; + cv::inpaint(depthImg, depthImgMask, depthImg, 0.05 * (imgWidth + imgHeight), cv::INPAINT_NS); + cv::imwrite("./img/depthInpaint.png", depthImg); + + // add some gaussian noise to make the image look more real + if (!quiet) cout << "** Adding gaussian noise: mean = " << mean << ", stdDev = " << stdDev << endl; + cv::Mat noise(imgHeight, imgWidth, CV_8UC1); + cv::randn(noise, mean, stdDev); + cv::addWeighted(depthImg, 0.9, noise, 0.1, 0.0, depthImg); + cv::GaussianBlur(depthImg, depthImg, cv::Size(3, 3), 0.5, 0.5); + cv::imwrite("./img/depthInpaintNoise.png", depthImg); + surf.correctedDepthImg = depthImg.clone(); + + // TODO apply the inverse transform from 2D to 3D and create a new point cloud using UOS RGB +} + +void model::Scene::writeModel(string dir) { + if (!fileIsDir(dir)) { + throw runtime_error(dir + " is not a directory"); + } + + string outputDir; + + if (dir[dir.length()-1] == '/') { + outputDir = dir + "model"; + } + else { + outputDir = dir + "/model"; + } + + int ret = mkdir(outputDir.c_str(), S_IRWXU | S_IRWXG | S_IRWXO); + + if (ret != 0 && errno != EEXIST) { + throw runtime_error("unable to create directory " + outputDir); + } + + if (!quiet) cout << endl << "== Writing planes to " << outputDir << " directory..." << endl; + + string planesListFile = outputDir + "/planes.list"; + ofstream list(planesListFile.c_str(), ios::out); + + for (unsigned int counter = 0; counter < this->walls.size() + this->finalOpenings.size() + 2; ++counter) { + Plane3d currPlane; // the plane to be printed + string type; // the objet's type, floor, ceiling, wall or opening + + if (counter < this->walls.size()) { + currPlane = this->walls[counter]; + type = "Wall"; + } + else if (counter == this->walls.size()) { + currPlane = this->ceiling; + type = "Ceiling"; + } + else if (counter == this->walls.size() + 1) { + currPlane = this->floor; + type = "Floor"; + } else { + // TODO find a better solution + currPlane = this->finalOpenings[counter - (this->walls.size() + 2)]; + currPlane.normal.normalize(); + for (vector::iterator it = currPlane.hull.begin(); it != currPlane.hull.end(); ++it) { + it->x += currPlane.normal.x; + it->y += currPlane.normal.y; + it->z += currPlane.normal.z; + } + type = "Opening"; + } + + stringstream ss; + ss << outputDir << "/scan" << setfill('0') << setw(3) << counter << ".3d"; + ofstream file(ss.str().c_str(), ios::out); + + + // add the plane to the list of planes + list << type << " " << ss.str() << endl; + boost::algorithm::to_lower(type); + if (!quiet) cout << "** Writing " << type << ss.str() << endl; + + // add the points to the scan file + for (vector::iterator it = currPlane.hull.begin(); + it != currPlane.hull.end(); ++it) + { + file << *it << endl; + } + + file.close(); + } + + list.close(); +} + +void model::Scene::writeCorrectedWalls(std::string dir) { + if (!fileIsDir(dir)) { + throw runtime_error(dir + " is not a directory"); + } + + string outputDir; + + if (dir[dir.length()-1] == '/') { + outputDir = dir + "cloud"; + } + else { + outputDir = dir + "/cloud"; + } + + int ret = mkdir(outputDir.c_str(), S_IRWXU | S_IRWXG | S_IRWXO); + + if (ret != 0 && errno != EEXIST) { + throw runtime_error("unable to create directory " + outputDir); + } + + if (!quiet) cout << endl << "== Writing corrected points to " << outputDir << " directory..." << endl; + + // write the pose file + string poseFileName = outputDir + "/scan000.pose"; + ofstream out(poseFileName.c_str(), ios::out); + out << "0 0 0" << endl; + out << "0 0 0" << endl; + out.close(); + + string pointsFileName = outputDir + "/scan000.3d"; + out.open(pointsFileName.c_str(), ios::out); + + // fetch each points and its color + vector > points; + + getCorrectedWall(this->ceiling, points); + for (vector >::iterator it = points.begin(); it != points.end(); ++it) { + out << it->first << " " << static_cast(it->second[0]) << " " << static_cast(it->second[1]) << " " << static_cast(it->second[2]) << endl; + } + + getCorrectedWall(this->floor, points); + for (vector >::iterator it = points.begin(); it != points.end(); ++it) { + out << it->first << " " << static_cast(it->second[0]) << " " << static_cast(it->second[1]) << " " << static_cast(it->second[2]) << endl; + } + + for (vector::iterator wall = this->walls.begin(); wall != this->walls.end(); ++wall) { + getCorrectedWall(*wall, points); + for (vector >::iterator it = points.begin(); it != points.end(); ++it) { + out << it->first << " " << static_cast(it->second[0]) << " " << static_cast(it->second[1]) << " " << static_cast(it->second[2]) << endl; + } + } + + out.close(); +} + +void model::Scene::getCorrectedWall(const LabeledPlane3d& surf, vector >& points) { + if (!quiet) cout << "** Computing point cloud for surface centered at " << surf.pt << endl; + + // clear the output + points.clear(); + + if (surf.correctedDepthImg.empty()) { + if (!quiet) cout << "WARNING: the surface centered at " << surf.pt << " has not been corrected yet" << endl; + return; + } + + if ((size_t) surf.correctedDepthImg.rows != surf.patches.size() || + (size_t) surf.correctedDepthImg.cols != surf.patches.front().size()) + { + throw runtime_error("corrected image must be the same size as depth map"); + } + + // compute the maximum of the depth image + int depthImgMax = 0; + for (size_t i = 0; i < surf.depthMap.size(); ++i) { + for (size_t j = 0; j < surf.depthMap.front().size(); ++j) { + if (depthImgMax < surf.depthMap[i][j]) { + depthImgMax = surf.depthMap[i][j]; + } + } + } + + // make the original points darker than the corrected ones + int r = 255, g = 50, b = 50; + int wr = 255, wg = 150, wb = 150; + + for (int i = 0; i < surf.correctedDepthImg.rows; ++i) { + for (int j = 0; j < surf.correctedDepthImg.cols; ++j) { + cv::Vec3i color; + + // only consider occupied and unknown pixels + if (surf.patches[i][j].second == OCCUPIED) { + color = cv::Vec3i(r, g, b); + } else if (surf.patches[i][j].second == UNKOWN) { + color = cv::Vec3i(wr, wg, wb); + } else { + continue; + } + + // the value from the depth map + double depth = static_cast(depthImgMax * surf.correctedDepthImg.data[i * surf.correctedDepthImg.cols + j]) / MAX_IMG_VAL; + + // the distance from where the raytracing took place to the point it hit + double dist = depth + surf.depthMapDistances.first - surf.depthMapDistances.second; + + Vector3d normal = surf.normal; + normal.normalize(); + + Point3d pt = surf.patches[i][j].first; + pt.x = pt.x + normal.x * dist; + pt.y = pt.y + normal.y * dist; + pt.z = pt.z + normal.z * dist; + + points.push_back(make_pair(pt, color)); + } + } +} + +void model::Scene::flood(LabeledPlane3d& surf, + const int& i, const int& j, + const Label& target, const Label& replacement) +{ + // no point of carrying on + if (target == replacement) { + return; + } + + pair north = make_pair(i-1, j); + pair south = make_pair(i+1, j); + pair east = make_pair(i, j+1); + pair west = make_pair(i, j-1); + + vector > neigh; + neigh.push_back(north); + neigh.push_back(south); + neigh.push_back(east); + neigh.push_back(west); + + if (surf.patches[i][j].second == target) { + surf.patches[i][j].second = replacement; + } + + for (vector >::iterator it = neigh.begin(); it != neigh.end(); ++it) { + if ((it->first > 0 && it->second > 0) && + surf.patches[it->first][it->second].second == target) + { + flood(surf, it->first, it->second, target, replacement); + } + } +} + +bool model::Scene::isOccupied(const Point3d& center, const double& width) { + // look for a close point + double pt[] = {center.x, center.y, center.z}; + double* closest = this->octTree->FindClosest(pt, pow(sqrt(3) * (width / 2.0), 2.0), 0); + + // bounding box limits + double xUppLim = center.x + width / 2.0; + double xLowLim = center.x - width / 2.0; + double yUppLim = center.y + width / 2.0; + double yLowLim = center.y - width / 2.0; + double zUppLim = center.z + width / 2.0; + double zLowLim = center.z - width / 2.0; + + if (closest != NULL && + (closest[0] > xLowLim && closest[0] < xUppLim) && + (closest[1] > yLowLim && closest[1] < yUppLim) && + (closest[2] > zLowLim && closest[2] < zUppLim)) + { + return true; + } + + return false; +} diff --git a/.svn/pristine/3a/3a891fd2157bab4fcb5af20daf944d46cf3594dd.svn-base b/.svn/pristine/3a/3a891fd2157bab4fcb5af20daf944d46cf3594dd.svn-base new file mode 100644 index 0000000..2d0b442 --- /dev/null +++ b/.svn/pristine/3a/3a891fd2157bab4fcb5af20daf944d46cf3594dd.svn-base @@ -0,0 +1,5 @@ +#!/bin/sh +for e in *.pose; do + sed 's/,/\./g' "$e" > "$e.tmp" + mv "$e.tmp" "$e" +done; diff --git a/.svn/pristine/3a/3a910960b0ea2087ae83fa1f2c5ac3ac6509f8dc.svn-base b/.svn/pristine/3a/3a910960b0ea2087ae83fa1f2c5ac3ac6509f8dc.svn-base new file mode 100644 index 0000000..6450cb8 --- /dev/null +++ b/.svn/pristine/3a/3a910960b0ea2087ae83fa1f2c5ac3ac6509f8dc.svn-base @@ -0,0 +1,405 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: DropDownBase +// Purpose: base class for a control like a combobox +// Author: John Labenski +// Modified by: +// Created: 11/05/2002 +// RCS-ID: +// Copyright: (c) John Labenki +// Licence: wxWidgets licence +///////////////////////////////////////////////////////////////////////////// + +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) + #pragma implementation "dropdown.h" +#endif + +// For compilers that support precompilation, includes "wx/wx.h". +#include "wx/wxprec.h" + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#ifndef WX_PRECOMP + #include "wx/control.h" + #include "wx/bitmap.h" +#endif // WX_PRECOMP + +#include "wx/timer.h" +#include "wx/things/dropdown.h" +#include "wx/things/toggle.h" +#include "wx/renderer.h" + +/* XPM */ +static const char *down_arrow_xpm_data[] = { +/* columns rows colors chars-per-pixel */ +"7 4 2 1", +" c None", +"a c Black", +/* pixels */ +"aaaaaaa", +" aaaaa ", +" aaa ", +" a "}; + +#define IDD_DROPDOWN_BUTTON 100 + +static wxBitmap s_dropdownBitmap; // all buttons share the same bitmap + +// ========================================================================== +// DropDownPopup +// ========================================================================== +#define USE_POPUP_TIMER 0 // FIXME after 2.5.4 we don't need either +#define USE_POPUP_IDLE 0 + +IMPLEMENT_DYNAMIC_CLASS( DropDownPopup, wxPopupTransientWindow ) + +BEGIN_EVENT_TABLE(DropDownPopup, wxPopupTransientWindow) + EVT_KEY_DOWN(DropDownPopup::OnKeyDown) + EVT_MOUSE_EVENTS(DropDownPopup::OnMouse) +#if USE_POPUP_TIMER + EVT_TIMER( wxID_ANY, DropDownPopup::OnTimer ) +#endif // USE_POPUP_TIMER +#if USE_POPUP_IDLE + EVT_IDLE( DropDownPopup::OnIdle ) // use Connect/Disconnect instead +#endif // USE_POPUP_IDLE +END_EVENT_TABLE() + +bool DropDownPopup::Create(DropDownBase *parent, int style) +{ + m_owner = parent; + return wxPopupTransientWindow::Create(parent, style); +} + +void DropDownPopup::Init() +{ + m_owner = NULL; + m_childWin = NULL; + m_timer = NULL; + m_popped_handler = false; +} + +DropDownPopup::~DropDownPopup() +{ + StopTimer(); +} + +void DropDownPopup::StartTimer() +{ +#if USE_POPUP_TIMER + if (!m_timer) + m_timer = new wxTimer(this, wxID_ANY); + + m_timer->Start(200, false); +#endif // USE_POPUP_TIMER +} + +void DropDownPopup::StopTimer() +{ + if (m_timer) + { + if (m_timer->IsRunning()) + m_timer->Stop(); + delete m_timer; + m_timer = NULL; + } +} + +void DropDownPopup::PushPopupHandler(wxWindow* child) +{ + if (child && m_handlerPopup && m_popped_handler) + { + m_popped_handler = false; + + if (child->GetEventHandler() != (wxEvtHandler*)m_handlerPopup) + child->PushEventHandler((wxEvtHandler*)m_handlerPopup); + if (!child->HasCapture()) + child->CaptureMouse(); + + child->SetFocus(); + } +} +void DropDownPopup::PopPopupHandler(wxWindow* child) +{ + if (child && m_handlerPopup && !m_popped_handler) + { + m_popped_handler = true; + + if (child->GetEventHandler() == (wxEvtHandler*)m_handlerPopup) + child->PopEventHandler(false); + if (child->HasCapture()) + child->ReleaseMouse(); + + child->SetFocus(); + } +} + +void DropDownPopup::OnTimer( wxTimerEvent &WXUNUSED(event) ) +{ + if (!IsShown()) return; + + m_mouse = ScreenToClient(wxGetMousePosition()); + + wxWindow *child = GetChild(); + if (!child) return; // nothing to do + + wxRect clientRect(GetClientRect()); + //wxPrintf(wxT("**DropDownPopup::OnTimer mouse %d %d -- %d %d %d\n"), m_mouse.x, m_mouse.y, m_popped_handler, m_child, m_handlerPopup); fflush(stdout); + // pop the event handler if inside the child window or + // restore the event handler if not in the child window + if (clientRect.Inside(m_mouse)) + PopPopupHandler(child); + else + PushPopupHandler(child); +} + +void DropDownPopup::OnIdle( wxIdleEvent& event ) +{ + if (IsShown()) + { + m_mouse = ScreenToClient(wxGetMousePosition()); + wxPrintf(wxT("OnIdle mouse %d %d\n"), m_mouse.x, m_mouse.y); + + wxWindow *child = GetChild(); + if (!child) return; // nothing to do + + wxRect clientRect(GetClientRect()); + //wxPrintf(wxT("**DropDownPopup::OnIdle mouse %d %d -- %d %d %d\n"), m_mouse.x, m_mouse.y, m_popped_handler, m_child, m_handlerPopup); fflush(stdout); + // pop the event handler if inside the child window or + // restore the event handler if not in the child window + if (clientRect.Inside(m_mouse)) + PopPopupHandler(child); + else + PushPopupHandler(child); + } + event.Skip(); +} + +void DropDownPopup::OnMouse( wxMouseEvent& event ) +{ + m_mouse = event.GetPosition(); + event.Skip(); +} + +void DropDownPopup::OnKeyDown( wxKeyEvent &event ) +{ + if (GetChild() && GetChild()->ProcessEvent(event)) + event.Skip(false); + else + event.Skip(true); +} + +void DropDownPopup::SetChild(wxWindow *win) +{ + m_childWin = win; +} + +void DropDownPopup::Popup(wxWindow *focus) +{ + wxPopupTransientWindow::Popup(focus); + +#if USE_POPUP_IDLE + Connect(wxID_ANY, wxEVT_IDLE, + (wxObjectEventFunction)(wxEventFunction)(wxIdleEventFunction) + &DropDownPopup::OnIdle, 0, this); +#endif //USE_POPUP_IDLE + +#if USE_POPUP_TIMER + // start the timer to track the mouse position + StartTimer(); +#endif //USE_POPUP_TIMER +} + +void DropDownPopup::Dismiss() +{ +#if USE_POPUP_IDLE + Disconnect(wxID_ANY, wxEVT_IDLE, + (wxObjectEventFunction)(wxEventFunction)(wxIdleEventFunction) + &DropDownPopup::OnIdle, 0, this); +#endif //USE_POPUP_IDLE + +#if USE_POPUP_TIMER + StopTimer(); +#endif //USE_POPUP_TIMER + + // restore the event handler if necessary for the base class Dismiss + wxWindow *child = GetChild(); + if (child) PushPopupHandler(child); + + m_popped_handler = false; + + wxPopupTransientWindow::Dismiss(); +} + +bool DropDownPopup::ProcessLeftDown( wxMouseEvent &event ) +{ + m_mouse = event.GetPosition(); + //wxPrintf(wxT("DropDownPopup::ProcessLeftDown %d %d\n"), m_mouse.x, m_mouse.y); fflush(stdout); + + if (m_popped_handler) return true; // shouldn't ever get here, but just in case + + StopTimer(); + + // don't let the click on the dropdown button actually press it + wxCustomButton *dropBut = m_owner->GetDropDownButton(); + if (dropBut) + { + wxPoint dropMousePt = dropBut->ScreenToClient(ClientToScreen(m_mouse)); + if (dropBut->HitTest(dropMousePt) == wxHT_WINDOW_INSIDE) + { + m_ignore_popup = true; + Dismiss(); + return true; + } + } + + if (GetClientRect().Inside(m_mouse)) + return false; + + Dismiss(); + return true; +} + +// ============================================================================ +// DropDownBase +// ============================================================================ + +IMPLEMENT_DYNAMIC_CLASS( DropDownBase, wxControl ) + +BEGIN_EVENT_TABLE(DropDownBase, wxControl) + EVT_BUTTON(IDD_DROPDOWN_BUTTON, DropDownBase::OnDropButton) + EVT_SIZE( DropDownBase::OnSize ) +END_EVENT_TABLE() + +DropDownBase::~DropDownBase() +{ +} + +void DropDownBase::Init() +{ + m_popupWin = NULL; + m_dropdownButton = NULL; +} + +bool DropDownBase::Create( wxWindow* parent, wxWindowID id, + const wxPoint& pos, const wxSize& size, + long style, const wxValidator& val, + const wxString& name) +{ + if (!wxControl::Create(parent,id,pos,size,wxNO_BORDER|wxCLIP_CHILDREN|style,val,name)) + return false; + + if (!s_dropdownBitmap.Ok()) + s_dropdownBitmap = wxBitmap(down_arrow_xpm_data); + + m_dropdownButton = new wxCustomButton(this, IDD_DROPDOWN_BUTTON, + s_dropdownBitmap, + wxDefaultPosition, + wxSize(DROPDOWN_DROP_WIDTH, wxDefaultCoord), + wxCUSTBUT_BUTTON); + + return true; +} + +void DropDownBase::OnSize( wxSizeEvent& event ) +{ + event.Skip(); +/* + if (!m_dropdownButton) return; + + wxSize size = GetClientSize(); + wxPrintf(wxT("DropDownBase %d %d\n"), size.x, size.y); + + wxSize dropSize = m_dropdownButton->GetSize(); + m_dropdownButton->SetSize(size.x-dropSize.x, 0, dropSize.x, size.y); +*/ +} + +void DropDownBase::DoSetSize(int x, int y, int width, int height, int sizeFlags) +{ + wxSize curSize( GetSize() ); + + if (width == -1) + width = curSize.GetWidth(); + if (height == -1) + height = curSize.GetHeight(); + + wxControl::DoSetSize(x, y, width, height, sizeFlags); + + wxSize dropSize = m_dropdownButton->GetSize(); + m_dropdownButton->SetSize(width-dropSize.x, 0, dropSize.x, height); +} + +wxSize DropDownBase::DoGetBestSize() const +{ + return wxSize(95, DROPDOWN_DROP_HEIGHT); +} + +bool DropDownBase::ShowPopup() +{ + int x = 0, y = GetSize().y; + ClientToScreen( &x, &y ); + + // control too low, can't show scrollbar, don't bother displaying + wxRect displayRect = wxGetClientDisplayRect(); + if (displayRect.GetBottom() - y < DROPDOWN_DROP_HEIGHT) return false; + + int width = GetSize().x; + int height = DoGetBestDropHeight(displayRect.GetBottom() - y); + if (height < 1) return false; + + m_popupWin = new DropDownPopup(this); + + m_popupWin->SetSize(x, y, width, height); + if (m_popupWin->GetChild()) + m_popupWin->GetChild()->SetSize(width, height); + + //wxPrintf(wxT("ShowPopup %d %d, %d %d -- %d\n"), width, height, m_popupWin->GetSize().x, m_popupWin->GetSize().y, m_popupWin->GetMinHeight()); + + return DoShowPopup(); +} + +bool DropDownBase::DoShowPopup() +{ + if (m_popupWin) + { + if (m_popupWin->GetChild()) + m_popupWin->GetChild()->SetSize(m_popupWin->GetClientSize()); + + m_popupWin->Popup(this); + return true; + } + + return false; +} + +void DropDownBase::HidePopup() +{ + if (m_popupWin) + { + m_popupWin->Dismiss(); + m_popupWin->Destroy(); + m_popupWin = NULL; + } + + m_dropdownButton->Refresh(true); // MSW help in toolbar +} + +bool DropDownBase::IsPopupShown() +{ + return m_popupWin && m_popupWin->IsShown(); +} + +void DropDownBase::OnDropButton( wxCommandEvent &WXUNUSED(event)) +{ + if (m_popupWin && m_popupWin->m_ignore_popup) + { + m_popupWin->m_ignore_popup = false; + return; + } + + if (IsPopupShown()) + HidePopup(); + else + ShowPopup(); +} diff --git a/.svn/pristine/3a/3aa9116b232cba5c2b00266a32dbfa86f3dc7a99.svn-base b/.svn/pristine/3a/3aa9116b232cba5c2b00266a32dbfa86f3dc7a99.svn-base new file mode 100644 index 0000000..b20f023 Binary files /dev/null and b/.svn/pristine/3a/3aa9116b232cba5c2b00266a32dbfa86f3dc7a99.svn-base differ diff --git a/.svn/pristine/3a/3aebe3063370637c79be880b9229b7a0506eec33.svn-base b/.svn/pristine/3a/3aebe3063370637c79be880b9229b7a0506eec33.svn-base new file mode 100644 index 0000000..d5a48c3 --- /dev/null +++ b/.svn/pristine/3a/3aebe3063370637c79be880b9229b7a0506eec33.svn-base @@ -0,0 +1,1101 @@ +/* + * show_common implementation + * + * Copyright (C) Kai Lingemann, Andreas Nuechter, Jan Elseberg, Dorit Borrmann + * + * Released under the GPL version 3. + * + */ + +#ifdef WITH_GLEE +#include +#endif + +#include "show/show.h" +#include "show/show_Boctree.h" +#include "show/compacttree.h" +#include "show/NurbsPath.h" +#include "show/vertexarray.h" +#ifndef DYNAMIC_OBJECT_REMOVAL +#include "slam6d/scan.h" +#include "slam6d/managedScan.h" +#else +#include "veloslam/veloscan.h" +#endif +#include "glui/glui.h" /* Header File For The glui functions */ +#include +using std::ifstream; +#include +using std::exception; +#include + +#ifdef WITH_METRICS +#include "slam6d/metrics.h" +#endif + +#ifdef _MSC_VER +#include "XGetopt.h" +#else +#include +#endif + +#ifdef _MSC_VER +#define strcasecmp _stricmp +#define strncasecmp _strnicmp +#else +#include +#endif + + +#ifdef _MSC_VER +#if !defined _OPENMP && defined OPENMP +#define _OPENMP +#endif +#endif + +#ifdef _OPENMP +#include +#endif + +#include "slam6d/point_type.h" +#include "slam6d/io_utils.h" +#include "show/display.h" + +/** + * This vector contains the pointer to a vertex array for + * all colors (inner vector) and all scans (outer vector) + */ +vector< vector > vvertexArrayList; + +vector< ::SDisplay*> displays; +/** + * the octrees that store the points for each scan + */ +//Show_BOctTree **octpts; +vector octpts; +/** + * Storing the base directory + */ +string scan_dir; + +/** + * Storing the ID of the main windows + */ +int window_id; + +/** + * Size of points + */ +GLfloat pointsize = 1.0; +int anim_delay = 5; + +/** + * Select Color Buffer + */ +GLenum buffermode = GL_BACK; + +/** + * Indicator whether and how the drawing window + * has to be updated. + * + * haveToUpdate == 1 redisplay + * haveToUpdate == 2 reshape + * haveToUpdate == 3 animation scan matching + * haveToUpdate == 4 stop animation scan matching + * haveToUpdate == 6 path animation + * haveToUpdate == 7 force redisplay with all points + */ +int haveToUpdate = 0; + +/** + * Flag for invert the scene + */ +bool invert = true; + +/** + * Flag for indicating brid eyes view + */ +bool showTopView = false; + +/** + * Flag for idicating camera add mode + */ +bool addCameraView = false; //Is the view in add box mode? + +/** + * Storing the apex angle of the camera + */ +GLfloat cangle = 60.0; // Current camera opening mode +GLfloat cangle_old = cangle; + +/** + * Current rotation axis of the scene as quaternion + */ +GLdouble quat[4] ={0.0, 0.0, 0.0, 1.0}; +GLdouble Rquat[4] ={0.0, 0.0, 0.0, 1.0}; + +/** + * Current translation of the scene + */ +GLdouble X = 0.0, Y = 0.0, Z = 0.0; +GLdouble RVX = 0.0, RVY = 0.0, RVZ = 0.0; + +/** + * parallel zoom (similar to apex angle) for parallel projection + */ +GLfloat pzoom = 2000.0; +GLfloat pzoom_old = pzoom; + + +/** + * Mode of the fog (exp, exp2, linear) + */ +GLint fogMode = GL_EXP; + +/** + * Indicates if fog should be shown + */ +int show_fog = 1; + +/** + * Indicates if the points should be shown + */ +int show_points = 1; // Show data points in the viewer? + +/** + * Indicates if camera boxes should be shown + */ +int show_cameras = 1; // Show the camera boxes in the viewer? + +/** + * Indicates if camera path or robot path should be shown + */ +int show_path = 1; // Show the camera movement path ? + +/** + * Camera navigation by mouse or by panel + */ +int cameraNavMouseMode = 1; + +int mouseNavX, mouseNavY; +int mouseNavButton = -1; + +double mouseRotX = 0.0; +double mouseRotY = 0.0; +double mouseRotZ = 0.0; + +bool keymap[256]; + +//@@@ +//int animate_both = 0; // Animate both scan matchin and path? + +int frameNr = 0; + +/** + * Storing of all transformation (frames for animation) of all scans + */ +vector < vector > MetaMatrix; + +/** + * Storing of AlgoType for all frames + */ +vector < vector > MetaAlgoType; + +/** + * Window position + */ +int START_X = 0; +int START_Y = 0; +int START_WIDTH = 720; +int START_HEIGHT = 576; +GLdouble aspect = (double)START_WIDTH/(double)START_HEIGHT; // Current aspect ratio +bool advanced_controls = false; + +bool fullscreen = false; +int current_width = START_WIDTH; +int current_height = START_HEIGHT; + + +// the following values are scale dependant, i.e. all values are in m +float neardistance = 0.10; +double oldneardistance = 0.10; +float maxfardistance = 400.0; +double fardistance = 400.0; +double oldfardistance = 40000.0; +double movementSpeed = 0.1; +double defaultZoom = 20.0; +GLfloat fogDensity = 0.1; +double voxelSize = 0.20; + + +float adaption_rate = 1.0; +float LevelOfDetail = 0.0001; + + +// Defines for Point Semantic +#define TYPE_UNKNOWN 0x0000 +#define TYPE_OBJECT 0x0001 +#define TYPE_GROUND 0x0002 +#define TYPE_CEILING 0x0003 + +unsigned int cam_choice = 0; + +static unsigned int path_iterator = 0; +static int oldcamNavMode = 0; + +/** + * Animation sould be saved to file + */ +int save_animation = 0; +/** + * If true, interpolation for camera path is based on distance, else always + * the same number of images between two cameras. + */ +int inter_by_dist = 1; + +/**some variables for the camera path**/ +vector path_vectorX, path_vectorZ, lookat_vectorX, lookat_vectorZ, ups_vectorX, ups_vectorZ; +vector cams; +vector lookats; +vector ups; + +NurbsPath cam_nurbs_path; +char *path_file_name; +char *pose_file_name; + +/** Factor for saved image size */ +int factor = 1; + +/** + * program tries to have this framerate + */ +float idealfps = 20.0; +/** + * value of the listBox fo Color Value and Colormap + */ +int listboxColorVal = 0; +int listboxColorMapVal = 0; +int colorScanVal = 0; +ScanColorManager *cm; +float mincolor_value = 0.0; +float maxcolor_value = 0.0; +//unsigned int types = Point::USE_HEIGHT; +PointType pointtype; + +/** + * Contains the selected points for each scan + */ +set *selected_points; +/** + * Select single points? + */ +int select_voxels = 0; +/** + * Select or unselect points ? + */ +int selectOrunselect = 1; +/** octree depth for selecting groups of points */ +int selection_depth = 1; +int brush_size = 0; +char *selection_file_name; + +int current_frame = 0; +#include "show_menu.cc" +#include "show_animate.cc" +#include "show_gl.cc" + +/** + * Explains the usage of this program's command line parameters + * @param prog name of the program + */ +void usage(char* prog) +{ +#ifndef _MSC_VER + const string bold("\033[1m"); + const string normal("\033[m"); +#else + const string bold(""); + const string normal(""); +#endif + + cout << endl + << bold << "USAGE " << normal << endl + << " " << prog << " [options] directory" << endl << endl; + cout << bold << "OPTIONS" << normal << endl + + << bold << " -e" << normal << " NR, " << bold << "--end=" << normal << "NR" << endl + << " end after scan NR" << endl + << endl + << bold << " -f" << normal << " F, " << bold << "--format=" << normal << "F" << endl + << " using shared library F for input" << endl + << " (chose F from {uos, uos_map, uos_rgb, uos_frames, uos_map_frames, old, rts, rts_map, ifp, riegl_txt, riegl_rgb, riegl_bin, zahn, ply, wrl, xyz, zuf, iais, front, x3d, rxp, ais })" << endl + << endl + << bold << " -F" << normal << " NR, " << bold << "--fps=" << normal << "NR [default: 20]" << endl + << " will attempt to display points with a framerate of NR" << endl + << endl + << bold << " -l" << normal << " FILE, " << bold << "--loadObj=" << normal << + "FILE" << endl + << " load objects specified in " << endl + << endl + << endl + << bold << " -m" << normal << " NR, " << bold << "--max=" << normal << "NR" << endl + << " neglegt all data points with a distance larger than NR 'units'" << endl + << endl + << bold << " -M" << normal << " NR, " << bold << "--min=" << normal << "NR" << endl + << " neglegt all data points with a distance smaller than NR 'units'" << endl + << endl + << bold << " -O" << normal << "NR (optional), " << bold << "--octree=" << normal << "NR (optional)" << endl + << " use randomized octree based point reduction (pts per voxel=)" << endl + << " requires " << bold << "-r" << normal <<" or " << bold << "--reduce" << endl + << endl + << bold << " -o" << normal << " NR, " << bold << "--origin=" << normal << "NR (optional)" << endl + << " sets the starting and reset position to: " << endl + << " 0 = the origin of the coordinate system (default)" << endl + << " 1 = the position of the first scan (default if --origin is in argument list)" << endl + << " 2 = the center of the first scan" << endl + << endl + << bold << " -S, --scanserver" << normal << endl + << " Use the scanserver as an input method and handling of scan data" << endl + << endl + << bold << " -r" << normal << " NR, " << bold << "--reduce=" << normal << "NR" << endl + << " turns on octree based point reduction (voxel size=)" << endl + << endl + << bold << " -s" << normal << " NR, " << bold << "--start=" << normal << "NR" << endl + << " start at scan NR (i.e., neglects the first NR scans)" << endl + << " [ATTENTION: counting naturally starts with 0]" << endl + << endl + << bold << " -C" << normal << " NR, " << bold << "--scale=" << normal << "NR" << endl + << " scale factor to use (default: 0.01), modifies movement speed etc. " << endl + << " use 1 when point coordinates are in m, 0.01 when in cm and so forth. " << endl + << " " << endl + << endl + + << bold << " -R, --reflectance, --reflectivity" << normal << endl + << " use reflectivity values for coloring point clouds" << endl + << " only works when using octree display" << endl + << endl + << bold << " -a, --amplitude" << endl << normal + << " use amplitude values for coloring point clouds" << endl + << " only works when using octree display" << endl + << endl + << bold << " -d, --deviation" << endl << normal + << " use amplitude values for coloring point clouds" << endl + << " only works when using octree display" << endl + << endl + << bold << " -h, --height" << endl << normal + << " use y-values for coloring point clouds" << endl + << " only works when using octree display" << endl + << endl + << bold << " -T, --type" << endl << normal + << " use type values for coloring point clouds" << endl + << " only works when using octree display" << endl + << bold << " -c, --color" << endl << normal + << " use color RGB values for coloring point clouds" << endl + << bold << " --saveOct" << endl << normal + << " stores all used scans as octrees in the given directory" << endl + << " All reflectivity/amplitude/deviation/type settings are stored as well." << endl + << " only works when using octree display" << endl + << bold << " --loadOct" << endl << normal + << " only reads octrees from the given directory" << endl + << " All reflectivity/amplitude/deviation/type settings are read from file." << endl + << " --reflectance/--amplitude and similar parameters are therefore ignored." << endl + << " only works when using octree display" << endl + << endl << endl; + + exit(1); +} + +/** + * A function that parses the command-line arguments and sets the respective flags. + * + * @param argc the number of arguments + * @param argv the arguments + * @param dir parsing result - the directory + * @param start parsing result - starting at scan number 'start' + * @param end parsing result - stopping at scan number 'end' + * @param maxDist parsing result - maximal distance + * @param minDist parsing result - minimal distance + * @param readInitial parsing result - read a file containing a initial transformation matrix + * @param type parsing result - file format to be read + * @return 0, if the parsing was successful, 1 otherwise + */ +int parseArgs(int argc,char **argv, string &dir, int& start, int& end, int& maxDist, int& minDist, + double &red, bool &readInitial, int &octree, PointType &ptype, float &fps, string &loadObj, + bool &loadOct, bool &saveOct, int &origin, double &scale, IOType &type, bool& scanserver) +{ + unsigned int types = PointType::USE_NONE; + start = 0; + end = -1; // -1 indicates no limitation + maxDist = -1; // -1 indicates no limitation + int c; + // from unistd.h + extern char *optarg; + extern int optind; + + WriteOnce w_type(type); + WriteOnce w_start(start), w_end(end); + + cout << endl; + static struct option longopts[] = { + { "origin", optional_argument, 0, 'o' }, + { "format", required_argument, 0, 'f' }, + { "fps", required_argument, 0, 'F' }, + { "scale", required_argument, 0, 'S' }, + { "start", required_argument, 0, 's' }, + { "end", required_argument, 0, 'e' }, + { "reduce", required_argument, 0, 'r' }, + { "max", required_argument, 0, 'm' }, + { "min", required_argument, 0, 'M' }, + { "octree", optional_argument, 0, 'O' }, + { "reflectance", no_argument, 0, 'R' }, + { "reflectivity", no_argument, 0, 'R' }, + { "amplitude", no_argument, 0, 'a' }, + { "deviation", no_argument, 0, 'd' }, + { "height", no_argument, 0, 'h' }, + { "type", no_argument, 0, 'T' }, + { "color", no_argument, 0, 'c' }, + { "loadObj", required_argument, 0, 'l' }, + { "saveOct", no_argument, 0, '0' }, + { "loadOct", no_argument, 0, '1' }, + { "advanced", no_argument, 0, '2' }, + { "scanserver", no_argument, 0, 'S' }, + { 0, 0, 0, 0} // needed, cf. getopt.h + }; + + while ((c = getopt_long(argc, argv,"F:f:s:e:r:m:M:O:o:l:C:SwtRadhTc", longopts, NULL)) != -1) { + switch (c) { + case 's': + w_start = atoi(optarg); + if (start < 0) { cerr << "Error: Cannot start at a negative scan number.\n"; exit(1); } + break; + case 'e': + w_end = atoi(optarg); + if (end < 0) { cerr << "Error: Cannot end at a negative scan number.\n"; exit(1); } + if (end < start) { cerr << "Error: cannot be smaller than .\n"; exit(1); } + break; + case 'm': + maxDist = atoi(optarg); + break; + case 'M': + minDist = atoi(optarg); + break; + case 'r': + red = atof(optarg); + break; + case 't': + readInitial = true; + break; + case 'O': + if (optarg) { + octree = atoi(optarg); + } else { + octree = 1; + } + break; + case 'f': + try { + w_type = formatname_to_io_type(optarg); + } catch (...) { // runtime_error + cerr << "Format " << optarg << " unknown." << endl; + abort(); + } + break; + case '?': + usage(argv[0]); + return 1; + case 'R': + types |= PointType::USE_REFLECTANCE; + break; + case 'a': + types |= PointType::USE_AMPLITUDE; + break; + case 'd': + types |= PointType::USE_DEVIATION; + break; + case 'h': + types |= PointType::USE_HEIGHT; + break; + case 'T': + types |= PointType::USE_TYPE; + break; + case 'c': + types |= PointType::USE_COLOR; + break; + case 'F': + fps = atof(optarg); + break; + case 'C': + scale = atof(optarg); + break; + case 'S': + scanserver = true; + break; + case 'o': + if (optarg) { + origin = atoi(optarg); + } else { + origin = 1; + } + break; + case '0': + saveOct = true; + break; + case '1': + loadOct = true; + break; + case 'l': + loadObj = optarg; + break; + case '2': + advanced_controls = true; + break; + default: + abort (); + } + } + + if (optind != argc-1) { + cerr << "\n*** Directory missing ***" << endl; + usage(argv[0]); + } + dir = argv[optind]; + +#ifndef _MSC_VER + if (dir[dir.length()-1] != '/') dir = dir + "/"; +#else + if (dir[dir.length()-1] != '\\') dir = dir + "\\"; +#endif + + parseFormatFile(dir, w_type, w_start, w_end); + + ptype = PointType(types); + return 0; +} + +void setResetView(int origin) { + if (origin == 1) { + double *transmat = MetaMatrix[0].back(); + cout << transmat << endl; + + RVX = -transmat[12]; + RVY = -transmat[13]; + RVZ = -transmat[14]; + Matrix4ToQuat(transmat, Rquat); + X = RVX; + Y = RVY; + Z = RVZ; + quat[0] = Rquat[0]; + quat[1] = Rquat[1]; + quat[2] = Rquat[2]; + quat[3] = Rquat[3]; + } else if (origin == 2) { + double center[3]; +#ifdef USE_COMPACT_TREE + ((compactTree*)octpts[0])->getCenter(center); +#else + ((Show_BOctTree*)octpts[0])->getCenter(center); +#endif + RVX = -center[0]; + RVY = -center[1]; + RVZ = -center[2]; + X = RVX; + Y = RVY; + Z = RVZ; + } +} + +/* + * A function that read the .frame files created by slam6D + * + * @param dir the directory + * @param start starting at scan number 'start' + * @param end stopping at scan number 'end' + * @param read a file containing a initial transformation matrix and apply it + */ +int readFrames(string dir, int start, int end, bool readInitial, IOType &type) +{ + + // convert to OpenGL coordinate system + double mirror[16]; + M4identity(mirror); + mirror[10] = -1.0; + + double initialTransform[16]; + if (readInitial) { + cout << "Initial Transform:" << endl; + string initialTransformFileName = dir + "initital.frame"; + ifstream initial_in(initialTransformFileName.c_str()); + if (!initial_in.good()) { + cout << "Error opening " << initialTransformFileName << endl; + exit(-1); + } + initial_in >> initialTransform; + cout << initialTransform << endl; + + // update the mirror to apply the initial frame for all frames + double tempxf[16]; + MMult(mirror, initialTransform, tempxf); + memcpy(mirror, tempxf, sizeof(tempxf)); + } + + for(std::vector::iterator it = Scan::allScans.begin(); it != Scan::allScans.end(); ++it) { + const double* transformation; + Scan::AlgoType algoType; + vector Matrices; + vector algoTypes; + + // iterate over frames (stop if none were created) and pull/convert the frames into local containers + unsigned int frame_count; + try { + frame_count = (*it)->readFrames(); + } catch(std::ios_base::failure& e) { + break; + } + for(unsigned int i = 0; i < frame_count; ++i) { + (*it)->getFrame(i, transformation, algoType); + double* transMatOpenGL = new double[16]; + + // apply mirror to convert (and initial frame if requested) the frame and save in opengl + MMult(mirror, transformation, transMatOpenGL); + + Matrices.push_back(transMatOpenGL); + algoTypes.push_back(algoType); + } + + MetaAlgoType.push_back(algoTypes); + MetaMatrix.push_back(Matrices); + + if((type == UOS_MAP || type == UOS_MAP_FRAMES || type == RTS_MAP) && it == Scan::allScans.begin()) { + MetaAlgoType.push_back(algoTypes); + MetaMatrix.push_back(Matrices); + } + current_frame = MetaMatrix.back().size() - 1; + } + + if (MetaMatrix.size() == 0) { + cerr << "*****************************************" << endl; + cerr << "** ERROR: No .frames could be found! **" << endl; + cerr << "*****************************************" << endl; + cerr << " ERROR: Missing or empty directory: " << dir << endl << endl; + return -1; + } + return 0; +} + +void generateFrames(int start, int end, bool identity) { + if (identity) { + cout << "using Identity for frames " << endl; + } else { + cout << "using pose information for frames " << endl; + } + int fileCounter = start; + int index = 0; + for (;;) { + if (fileCounter > end) break; // 'nuf read + fileCounter++; + + vector Matrices; + vector algoTypes; + + for (int i = 0; i < 3; i++) { + double *transMat = new double[16]; + + if (identity) { + M4identity(transMat); + transMat[10] = -1.0; + } else { + EulerToMatrix4(Scan::allScans[index]->get_rPos(), Scan::allScans[index]->get_rPosTheta(), transMat ); + } + + Matrices.push_back(transMat); + algoTypes.push_back(Scan::ICP); + + } + index++; + MetaAlgoType.push_back(algoTypes); + MetaMatrix.push_back(Matrices); + current_frame = MetaMatrix.back().size() - 1; + } +} + + + +/* + * create display lists + * @to do general framework for color & type definitions + */ +void createDisplayLists(bool reduced) +{ + for(unsigned int s = 0; s < Scan::allScans.size() ; s++) { + Scan* scan = Scan::allScans[s]; + + vertexArray* myvertexArray1; + vertexArray* myvertexArray2; + + // count points + unsigned int color1 = 0, color2 = 0; + if(!reduced) { + scan->get(DATA_XYZ | DATA_TYPE); + DataType type(scan->get("type")); + + if(type.valid()) { + for(unsigned int i = 0; i < type.size(); ++i) { + if(type[i] & TYPE_GROUND) { + color1 += 3; + } else { + color2 += 3; + } + } + } else { + color2 = 3 * scan->size("xyz"); + } + + myvertexArray1 = new vertexArray(color1); + myvertexArray2 = new vertexArray(color2); + + color1 = 0; color2 = 0; + + DataXYZ xyz(scan->get("xyz")); + for(unsigned int i = 0; i < xyz.size(); ++i) { + if(type[i] & TYPE_GROUND) { + for(unsigned int j = 0; j < 3; ++j) { + myvertexArray1->array[color1++] = xyz[i][j]; + } + } else { + for(unsigned int j = 0; j < 3; ++j) { + myvertexArray2->array[color2++] = xyz[i][j]; + } + } + } + } else { + color2 = 3 * scan->size("xyz reduced"); + + myvertexArray1 = new vertexArray(0); + myvertexArray2 = new vertexArray(color2); + + color2 = 0; + + DataXYZ xyz_r(scan->get("xyz reduced")); + for(unsigned int i = 0; i < xyz_r.size(); ++i) { + for(unsigned int j = 0; j < 3; ++j) { + myvertexArray2->array[color2++] = xyz_r[i][j]; + } + } + } + + + + glNewList(myvertexArray1->name, GL_COMPILE); + //@ + //glColor4d(0.44, 0.44, 0.44, 1.0); + //glColor4d(0.66, 0.66, 0.66, 1.0); + glVertexPointer(3, GL_FLOAT, 0, myvertexArray1->array); + glEnableClientState(GL_VERTEX_ARRAY); + glDrawArrays(GL_POINTS, 0, myvertexArray1->numPointsToRender); + glDisableClientState(GL_VERTEX_ARRAY); + glEndList(); + + glNewList(myvertexArray2->name, GL_COMPILE); + //glColor4d(1.0, 1.0, 1.0, 1.0); + //glColor4d(0.0, 0.0, 0.0, 1.0); + glVertexPointer(3, GL_FLOAT, 0, myvertexArray2->array); + glEnableClientState(GL_VERTEX_ARRAY); + glDrawArrays(GL_POINTS, 0, myvertexArray2->numPointsToRender); + glDisableClientState(GL_VERTEX_ARRAY); + glEndList(); + + // append to vector + vector vvertexArray; + vvertexArray.push_back(myvertexArray1); + vvertexArray.push_back(myvertexArray2); + vvertexArrayList.push_back(vvertexArray); + } +} + +void cycleLOD() { + LevelOfDetail = 0.00001; + for (unsigned int i = 0; i < octpts.size(); i++) + octpts[i]->cycleLOD(); +} + + +void initShow(int argc, char **argv){ + + /***************/ + /* init OpenGL */ + /***************/ + glutInit(&argc,argv); + + cout << "(wx)show - A highly efficient 3D point cloud viewer" << endl + << "(c) Jacobs University Bremen gGmbH, Germany, since 2009" << endl + << " University of Osnabrueck, Germany, 2006 - 2009" << endl << endl; + + if(argc <= 1){ + usage(argv[0]); + } + + double red = -1.0; + int start = 0, end = -1, maxDist = -1, minDist = -1; + string dir; + bool readInitial = false; + IOType type = UOS; + int octree = 0; + bool loadOct = false; + bool saveOct = false; + string loadObj; + int origin = 0; + double scale = 0.01; // in m + bool scanserver = false; + + pose_file_name = new char[1024]; + path_file_name = new char[1024]; + selection_file_name = new char[1024]; + + strncpy(pose_file_name, "pose.dat", 1024); + strncpy(path_file_name, "path.dat", 1024); + strncpy(selection_file_name, "selected.3d", 1024); + + parseArgs(argc, argv, dir, start, end, maxDist, minDist, red, readInitial, + octree, pointtype, idealfps, loadObj, loadOct, saveOct, origin, scale, type, scanserver); + + // modify all scale dependant variables + scale = 1.0 / scale; + movementSpeed *= scale; + neardistance *= scale; + oldneardistance *= scale; + maxfardistance *= scale; + fardistance *= scale; + fogDensity /= scale; + defaultZoom *= scale; + voxelSize *= scale; +// oldfardistance *= scale; + + //////////////////////// + SDisplay::readDisplays(loadObj, displays); + //////////////////// + + if (type == OCT) { + loadOct = true; + } + + // if we want to load display file get pointtypes from the files first + if(loadOct) { + string scanFileName = dir + "scan" + to_string(start,3) + ".oct"; + cout << "Getting point information from " << scanFileName << endl; + cout << "Attention! All subsequent oct-files must be of the same type!" << endl; + + pointtype = BOctTree::readType(scanFileName); + } + scan_dir = dir; + + // init and create display + M4identity(view_rotate_button); + obj_pos_button[0] = obj_pos_button[1] = obj_pos_button[2] = 0.0; + + // Loading scans, reducing, loading frames and generation if neccessary + + // load all available scans + Scan::openDirectory(scanserver, dir, type, start, end); + + if(Scan::allScans.size() == 0) { + cerr << "No scans found. Did you use the correct format?" << endl; + exit(-1); + } + + for(ScanVector::iterator it = Scan::allScans.begin(); it != Scan::allScans.end(); ++it) { + Scan* scan = *it; + scan->setRangeFilter(maxDist, minDist); + if(red > 0) { + // scanserver differentiates between reduced for slam and reduced for show, can handle both at the same time + if(scanserver) { + dynamic_cast(scan)->setShowReductionParameter(red, octree); + } else { + scan->setReductionParameter(red, octree); + } + } + } + cm = new ScanColorManager(4096, pointtype); + +#ifdef USE_GL_POINTS // use octtrees +#ifdef USE_COMPACT_TREE + cout << "Creating compact display octrees.." << endl; +#else + cout << "Creating display octrees.." << endl; +#endif + + if(loadOct) cout << "Loading octtrees from file where possible instead of creating them from scans." << endl; + + // for managed scans the input phase needs to know how much it can handle + std::size_t free_mem = 0; + if(scanserver) + free_mem = ManagedScan::getMemorySize(); + + for(unsigned int i = 0; i < Scan::allScans.size(); ++i) { + Scan* scan = Scan::allScans[i]; + + // create data structures +#ifdef USE_COMPACT_TREE // FIXME: change compact tree, then this case can be removed + compactTree* tree; + try { + if (red > 0) { // with reduction, only xyz points + DataXYZ xyz_r(scan->get("xyz reduced show")); + tree = new compactTree(PointerArray(xyz_r).get(), xyz_r.size(), voxelSize, pointtype, cm); + } else { // without reduction, xyz + attribute points + sfloat** pts = pointtype.createPointArray(scan); + unsigned int nrpts = scan->size("xyz"); + tree = new compactTree(pts, nrpts, voxelSize, pointtype, cm); + for(unsigned int i = 0; i < nrpts; ++i) delete[] pts[i]; delete[] pts; + } + } catch(...) { + cout << "Scan " << i << " could not be loaded into memory, stopping here." << endl; + break; + } +#else // FIXME: remove the case above + scan->setOcttreeParameter(red, voxelSize, pointtype, loadOct, saveOct); + + DataOcttree* data_oct; + try { + data_oct = new DataOcttree(scan->get("octtree")); + } catch(runtime_error& e) { + cout << "Scan " << i << " could not be loaded into memory, stopping here." << endl; + break; + } + BOctTree* btree = &(data_oct->get()); + unsigned int tree_size = btree->getMemorySize(); + + if(scanserver) { + // check if the octtree would actually fit with all the others + if(tree_size > free_mem) { + delete data_oct; + cout << "Stopping at scan " << i << ", no more octtrees could fit in memory." << endl; + break; + } else { + // subtract available memory + free_mem -= tree_size; + } + } +#endif //FIXME: COMPACT_TREE + +#if !defined USE_COMPACT_TREE + // show structures + // associate show octtree with the scan and hand over octtree pointer ownership + Show_BOctTree* tree = new Show_BOctTree(scan, data_oct, cm); + + // unlock cached octtree to enable creation of more octtres without blocking the space for full scan points + tree->unlockCachedTree(); +#endif + + // octtrees have been created successfully + octpts.push_back(tree); + + // print something +#ifdef USE_COMPACT_TREE // TODO: change compact tree for memory footprint output, remove this case + cout << "Scan " << i << " octree finished." << endl; +#else + cout << "Scan " << i << " octree finished ("; + bool space = false; + if(tree_size/1024/1024 > 0) { + cout << tree_size/1024/1024 << "M"; + space = true; + } + if((tree_size/1024)%1024 > 0) { + if(space) cout << " "; + cout << (tree_size/1024)%1024 << "K"; + space = true; + } + if(tree_size%1024 > 0) { + if(space) cout << " "; + cout << tree_size%1024 << "B"; + } + cout << ")." << endl; +#endif + } + +/* +TODO: to maximize space for octtrees, implement a heuristic to remove all +CacheObjects sequentially from the start and pack octtrees one after another +until it reaches the maximum size allowed, resetting the index, but causing the +first to be locked again and stopping by catching the exception +set heuristic, do locking, catch exception, reset heuristic to default or old +*/ +#if !defined USE_COMPACT_TREE + if(scanserver) { + // activate all octtrees until they don't fit anymore + cout << "Locking managed octtrees in memory " << flush; + bool stop = false; + unsigned int loaded = 0; + unsigned int dots = (octpts.size() / 20); + if(dots == 0) dots = 1; + vector::iterator it_remove_first = octpts.end(); + for(vector::iterator it = octpts.begin(); it != octpts.end(); ++it) { + if(!stop) { + // try to lock the octtree in cache + try { + Show_BOctTree* stree = dynamic_cast*>(*it); + stree->lockCachedTree(); + loaded++; + if(loaded % dots == 0) cout << '.' << flush; + } catch(runtime_error& e) { + stop = true; + it_remove_first = it; + } + } + if(stop) { + // delete the octtree, resize after iteration + delete *it; + } + } + // now remove iterators for deleted octtrees + if(stop) octpts.erase(it_remove_first, octpts.end()); + cout << ' ' << loaded << " octtrees loaded." << endl; + } + +#endif // !COMPACT_TREE + +#else // not using octtrees + createDisplayLists(red > 0); +#endif // USE_GL_POINTS + + // load frames now that we know how many scans we actually loaded + unsigned int real_end = min((unsigned int)(end), + (unsigned int)(start + octpts.size() - 1)); + if(readFrames(dir, start, real_end, readInitial, type)) + generateFrames(start, real_end, true); + + cm->setCurrentType(PointType::USE_HEIGHT); + //ColorMap cmap; + //cm->setColorMap(cmap); + resetMinMax(0); + + selected_points = new set[octpts.size()]; + + // sets (and computes if necessary) the pose that is used for the reset button + setResetView(origin); + + for (unsigned int i = 0; i < 256; i++) { + keymap[i] = false; + } +} + +void deinitShow() +{ + static volatile bool done = false; + if(done) return; + done = true; + + cout << "Cleaning up octtrees and scans." << endl; + if(octpts.size()) { + // delete octtrees to release the cache locks within + for(vector::iterator it = octpts.begin(); it!= octpts.end(); ++it) { + delete *it; + } + } + + Scan::closeDirectory(); +} + +/** + * Global program scope destructor workaround to clean up data regardless of + * the way of program exit. + */ +struct Deinit { ~Deinit() { deinitShow(); } } deinit; diff --git a/.svn/pristine/3b/3b852e8951c4a2896edcec1896c7b3ec64cfe9ed.svn-base b/.svn/pristine/3b/3b852e8951c4a2896edcec1896c7b3ec64cfe9ed.svn-base new file mode 100644 index 0000000..2e11c18 --- /dev/null +++ b/.svn/pristine/3b/3b852e8951c4a2896edcec1896c7b3ec64cfe9ed.svn-base @@ -0,0 +1,324 @@ +/* + * elch6D implementation + * + * Copyright (C) Jochen Sprickerhof + * + * Released under the GPL version 3. + * + */ + +/** @file graph balancer implementation and utility functions + * @author Jochen Sprickerhof. Institute of Computer Science, University of Osnabrueck, Germany. + * + * This file implements the paper (ecmr2009.pdf): + * Jochen Sprickerhof, Andreas Nuechter, Kai Lingemann, Joachim Hertzberg. An Explicit + * Loop Closing Technique for 6D SLAM, In Proceedings of the 4th European Conference on + * Mobile Robots (ECMR '09), Mlini/Dubrovnic, Croatia, September 2009. + */ + +#include +using std::ofstream; + +#include +using std::string; + +#include +using std::list; + +#include +using std::swap; + +#include //for old boost and new gcc +using std::numeric_limits; +#include +#include +#include +using boost::graph_traits; + +#include "slam6d/globals.icc" +#include "slam6d/elch6D.h" + +#ifdef _MSC_VER +#define tie tr1::tie +#endif + + +/*void printout(graph_t &g, vector &p, vector &d, double *weights) +{ + cout << "distances and parents:" << endl; + graph_traits ::vertex_iterator vi, vend; + for(tie(vi, vend) = vertices(g); vi != vend; vi++) { + cout << "distance(" << *vi << ") = " << d[*vi] << + ", parent(" << *vi << ") = " << p[*vi] << + *vi << " " << weights[*vi] << endl; + } +}*/ + +/** + * sets a filename for graph_weight_out and calls it + * @param g the graph to save + * @param first the first node + * @param last the last node + * @param weights the computed weights + */ +void elch6D::graph_weight_out(graph_t &g, int first, int last, double *weights) +{ + string name("graph_weight_" + to_string(num_vertices(g), 3) + ".dot"); + graph_weight_out(g, first, last, weights, name); +} + +/** + * writes a graphviz file with the graph labled with the computed weights + * @param g the graph to save + * @param first the first node + * @param last the last node + * @param weights the computed weights + * @param out_file the file to write to + */ +void elch6D::graph_weight_out(graph_t &g, int first, int last, double *weights, string &out_file) +{ + ofstream dot_file(out_file.c_str()); + dot_file << "graph D {" << endl; + graph_traits ::vertex_iterator vi, vend; + for(tie(vi, vend) = vertices(g); vi != vend; vi++) { + dot_file << *vi << "[label=\"" << *vi << " (" << + weights[*vi] << ")\"];" << endl; + } + boost::property_map::type weightmap = get(boost::edge_weight, g); + graph_traits ::edge_iterator ei, ei_end; + for(tie(ei, ei_end) = edges(g); ei != ei_end; ei++) { + dot_file << source(*ei, g) << " -- " << target(*ei, g) << + "[label=\"" << get(weightmap, *ei) << "\"];" << endl; + } + dot_file << first << " -- " << last << "[color=\"green\"] }"; + dot_file.close(); +} + +/** + * sets a filename and calls graph_pos_out + * @param g the graph to save + * @param allScans all laser scans + */ +void elch6D::graph_pos_out(graph_t &g, const vector &allScans) +{ + string name("graph_pos_" + to_string(num_vertices(g), 3) + ".dot"); + graph_pos_out(g, allScans, name); +} + +/** + * writes the graph using the computed scan poses + * @param g the graph to save + * @param allScans all laser scans + * @param out_file the file to write to + */ +void elch6D::graph_pos_out(graph_t &g, const vector &allScans, string &out_file) +{ + ofstream graph_file(out_file.c_str()); + ofstream graph2_file(("2" + out_file).c_str()); + graph_traits ::edge_iterator ei, ei_end; + for(tie(ei, ei_end) = edges(g); ei != ei_end; ei++) { + if(source(*ei, g) + 1 != target(*ei, g)) { + graph2_file << allScans[source(*ei, g)]->get_rPos()[0] << " " << allScans[source(*ei, g)]->get_rPos()[1] << " " << allScans[source(*ei, g)]->get_rPos()[2] << endl; + graph2_file << allScans[target(*ei, g)]->get_rPos()[0] << " " << allScans[target(*ei, g)]->get_rPos()[1] << " " << allScans[target(*ei, g)]->get_rPos()[2] << endl << endl; + } else { + graph_file << allScans[source(*ei, g)]->get_rPos()[0] << " " << allScans[source(*ei, g)]->get_rPos()[1] << " " << allScans[source(*ei, g)]->get_rPos()[2] << endl; + graph_file << allScans[target(*ei, g)]->get_rPos()[0] << " " << allScans[target(*ei, g)]->get_rPos()[1] << " " << allScans[target(*ei, g)]->get_rPos()[2] << endl << endl; + } + } + graph_file.close(); + graph2_file.close(); +} + +/** + * write graphviz file with real poses + * @param g the graph + * @param allScans all laser scans + * @param out_file the file to write to + */ +void elch6D::dot_pos_out(graph_t &g, const vector &allScans, string &out_file) +{ + ofstream dot_file(out_file.c_str()); + + dot_file << "graph D {" << endl << "size=\"20,20\"" << endl; + + int n = num_vertices(g); + for(int i = 0; i < n; i++) { + dot_file << i << "[pos=\"" << + allScans[i]->get_rPos()[0] << "," << + allScans[i]->get_rPos()[2] << "\", label=\"\", height=0.1, width=0.1, fixedsize=true];" << endl; + } + graph_traits ::edge_iterator ei, ei_end; + for(tie(ei, ei_end) = edges(g); ei != ei_end; ei++) { + if(source(*ei, g) + 1 != target(*ei, g)) { + dot_file << source(*ei, g) << " -- " << target(*ei, g) << "[color=\"green\"];" << endl; + } else { + dot_file << source(*ei, g) << " -- " << target(*ei, g) << ";" << endl; + } + } + dot_file << "}"; + dot_file.close(); +} + +/** + * sets filename and calls graph_out + * @param g the graph + */ +void elch6D::graph_out(graph_t &g) +{ + string name("graph_" + to_string(num_vertices(g), 3) + ".dot"); + graph_out(g, name); +} + +/** + * uses boost write_graphviz to write the graph + * @param g the graph + * @param out_file the file to write to + */ +void elch6D::graph_out(graph_t &g, string &out_file) +{ + ofstream dot_file(out_file.c_str()); + write_graphviz(dot_file, g); + dot_file.close(); +} + +/** + * sets filename and calls slim_graph_out + */ +void elch6D::slim_graph_out(graph_t g) +{ + string name("slim_graph_" + to_string(num_vertices(g), 3) + ".dot"); + slim_graph_out(g, name); +} + +/** + * writes slim graph (supressing unimportant nodes) + * @param g the graph + * @param out_file the file to write to + */ +void elch6D::slim_graph_out(graph_t g, string &out_file) +{ + bool todo; + graph_traits < graph_t >::vertex_iterator vi, vend; + graph_traits < graph_t >::adjacency_iterator ai; + do { + todo = false; + for(tie(vi, vend) = vertices(g); vi != vend; vi++) { + int me = *vi; + if(degree(me, g) == 2) { + ai = adjacent_vertices(me, g).first; + int one = *ai; + ai++; + int two = *ai; + if(degree(one, g) == 2 && degree(two, g) == 2 && one != me && two != me && one != two) { + clear_vertex(me, g); + add_edge(one, two, g); + remove_vertex(me, g); + todo = true; + break; + } + } + } + } while(todo); + + ofstream dot_file(out_file.c_str()); + write_graphviz(dot_file, g); + dot_file.close(); +} + +/** + * graph balancer algorithm computes the weights + * @param g the graph + * @param f index of the first node + * @param l index of the last node + * @param weights array for the weights + */ +void elch6D::graph_balancer(graph_t &g, int f, int l, double *weights) +{ + list crossings, branches; + crossings.push_back(f); + crossings.push_back(l); + weights[f] = 0; + weights[l] = 1; + + int *p = new int[num_vertices(g)]; + int *p_min = new int[num_vertices(g)]; + double *d = new double[num_vertices(g)]; + double *d_min = new double[num_vertices(g)]; + double dist; + bool do_swap = false; + list::iterator si, ei, s_min, e_min; + + // process all junctions + while(!crossings.empty()) { + dist = -1; + // find shortest crossing for all vertices on the loop + for(si = crossings.begin(); si != crossings.end(); ) { + dijkstra_shortest_paths(g, *si, boost::predecessor_map(p).distance_map(d)); + ei = si; + ei++; + // find shortest crossing for one vertex + for(; ei != crossings.end(); ei++) { + if(*ei != p[*ei] && (dist < 0 || d[*ei] < dist)) { + dist = d[*ei]; + s_min = si; + e_min = ei; + do_swap = true; + } + } + if(do_swap) { + swap(p, p_min); + swap(d, d_min); + do_swap = false; + } + // vertex starts a branch + if(dist < 0) { + branches.push_back(*si); + si = crossings.erase(si); + } else { + si++; + } + } + + if(dist > -1) { + remove_edge(*e_min, p_min[*e_min], g); + for(int i = p_min[*e_min]; i != *s_min; i = p_min[i]) { + //even right with weights[*s_min] > weights[*e_min]! (math works) + weights[i] = weights[*s_min] + (weights[*e_min] - weights[*s_min]) * d_min[i] / d_min[*e_min]; + remove_edge(i, p_min[i], g); + if(degree(i, g) > 0) { + crossings.push_back(i); + } + } + + if(degree(*s_min, g) == 0) { + crossings.erase(s_min); + } + + if(degree(*e_min, g) == 0) { + crossings.erase(e_min); + } + } + } + + delete[] p; + delete[] p_min; + delete[] d; + delete[] d_min; + + graph_traits ::adjacency_iterator ai, ai_end; + int s; + + // error propagation + while(!branches.empty()) { + s = branches.front(); + branches.pop_front(); + + for(tie(ai, ai_end) = adjacent_vertices(s, g); ai != ai_end; ++ai) { + weights[*ai] = weights[s]; + if(degree(*ai, g) > 1) { + branches.push_back(*ai); + } + } + clear_vertex(s, g); + } +} diff --git a/.svn/pristine/3b/3b8e14843760b80552edc29a01c692374b7d1f59.svn-base b/.svn/pristine/3b/3b8e14843760b80552edc29a01c692374b7d1f59.svn-base new file mode 100644 index 0000000..c158cde --- /dev/null +++ b/.svn/pristine/3b/3b8e14843760b80552edc29a01c692374b7d1f59.svn-base @@ -0,0 +1,14 @@ +#pragma once +#include "veloslam/veloscan.h" +#include "veloslam/svm.h" + +class Random_field +{ +public: + Random_field(void); + ~Random_field(void); + +public: + +}; + diff --git a/.svn/pristine/3b/3bb81c39d95cf3db137ed4f5ae563f9bf4b9a2ad.svn-base b/.svn/pristine/3b/3bb81c39d95cf3db137ed4f5ae563f9bf4b9a2ad.svn-base new file mode 100644 index 0000000..0362b0c --- /dev/null +++ b/.svn/pristine/3b/3bb81c39d95cf3db137ed4f5ae563f9bf4b9a2ad.svn-base @@ -0,0 +1,87 @@ +/* + * extrinsic implementation + * + * Copyright (C) Stanislav Serebryakov + * + * Released under the GPL version 3. + * + */ + +#include +#include +#include +#include + + +int main(int argc, char **argv) { + + if(argc < 3) { + printf("extrinic: x y img1 img2\n"); + exit(1); + } + // extrinic params: rotation and translation + CvMat *rotCam = cvCreateMat(1, 3, CV_32FC1); + CvMat *transCam = cvCreateMat(1, 3, CV_32FC1); + CvMat *rotPMD = cvCreateMat(1, 3, CV_32FC1); + CvMat *transPMD = cvCreateMat(1, 3, CV_32FC1); + + CvSize boardSz = cvSize(atoi(argv[1]), atoi(argv[2])); + int totalPoints = boardSz.width*boardSz.height; + double boardSide = 0.04; + CvMat *objPts = cvCreateMat(totalPoints, 3, CV_32FC1); + CvPoint2D32f *cornersCam = (CvPoint2D32f*)cvAlloc(totalPoints * sizeof(CvPoint2D32f)); + CvMat imgPtsCam = cvMat(totalPoints, 1, CV_32FC2, cornersCam); + CvPoint2D32f *cornersPMD = (CvPoint2D32f*)cvAlloc(totalPoints * sizeof(CvPoint2D32f)); + CvMat imgPtsPMD = cvMat(totalPoints, 1, CV_32FC2, cornersPMD); + + for(int i = 0; i < totalPoints; i++) { + CV_MAT_ELEM(*objPts, float, i, 0) = boardSide * (i / boardSz.width); + CV_MAT_ELEM(*objPts, float, i, 1) = boardSide * (i % boardSz.width); + CV_MAT_ELEM(*objPts, float, i, 2) = 0.0f; + } + + IplImage *imgPMD = cvLoadImage(argv[3], CV_LOAD_IMAGE_GRAYSCALE); + IplImage *imgPMDU = cvCreateImage(cvGetSize(imgPMD), 8, 1); + IplImage *imgCam = cvLoadImage(argv[4], CV_LOAD_IMAGE_GRAYSCALE); + IplImage *imgCamU = cvCreateImage(cvGetSize(imgCam), 8, 1); + + CvMat *intrinsicsCam = (CvMat*)cvLoad("../intrinsic-cam-6x4.xml"); + CvMat *intrinsicsPMD = (CvMat*)cvLoad("../intrinsic-pmd-6x4.xml"); + CvMat *distortionCam = (CvMat*)cvLoad("../distortion-cam-6x4.xml"); + CvMat *distortionPMD = (CvMat*)cvLoad("../distortion-pmd-6x4.xml"); + + cvUndistort2(imgPMD, imgPMDU, intrinsicsPMD, distortionPMD); + cvUndistort2(imgCam, imgCamU, intrinsicsCam, distortionCam); + + int cornersCountCam, cornersCountPMD; + int foundPMD = cvFindChessboardCorners(imgPMDU, boardSz, cornersPMD, + &cornersCountPMD, CV_CALIB_CB_ADAPTIVE_THRESH | CV_CALIB_CB_FILTER_QUADS); + if(foundPMD) { + cvFindCornerSubPix(imgPMDU, cornersPMD, cornersCountPMD, cvSize(2, 2), cvSize(-1,-1), + cvTermCriteria(CV_TERMCRIT_EPS | CV_TERMCRIT_ITER, 30, 0.1)); + printf("foundPMD\n"); + } + int foundCam = cvFindChessboardCorners(imgCamU, boardSz, cornersCam, + &cornersCountCam, CV_CALIB_CB_ADAPTIVE_THRESH | CV_CALIB_CB_FILTER_QUADS); + if(foundPMD) { + cvFindCornerSubPix(imgCamU, cornersCam, cornersCountCam, cvSize(11, 11), cvSize(-1,-1), + cvTermCriteria(CV_TERMCRIT_EPS | CV_TERMCRIT_ITER, 30, 0.1)); + printf("foundCam\n"); + } + + cvNamedWindow("c", 0); + cvNamedWindow("p", 0); + + cvShowImage("c", imgCamU); + cvShowImage("p", imgPMDU); + cvWaitKey(0); + + + if(foundCam) cvFindExtrinsicCameraParams2(objPts, &imgPtsCam, intrinsicsCam, distortionCam, rotCam, transCam); + if(foundPMD) cvFindExtrinsicCameraParams2(objPts, &imgPtsPMD, intrinsicsPMD, distortionPMD, rotPMD, transPMD); + + cvSave("./rotcam.xml", rotCam); + cvSave("./rotpmd.xml", rotPMD); + cvSave("./transcam.xml", transCam); + cvSave("./transpmd.xml", transPMD); +} diff --git a/.svn/pristine/3c/3c184d764af1c79da97275aa4346a561fc6f65b3.svn-base b/.svn/pristine/3c/3c184d764af1c79da97275aa4346a561fc6f65b3.svn-base new file mode 100644 index 0000000..19a6e23 --- /dev/null +++ b/.svn/pristine/3c/3c184d764af1c79da97275aa4346a561fc6f65b3.svn-base @@ -0,0 +1,106 @@ +#bash completion for show and slam6d + +#have show && +_show() +{ + local cur prev opts filetype + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + ## split the long options + _split_longopt + + # options list + opts="-e -s -f --format -F --fps -m --max -M --min -O --octree -r --reduce -R --reflectance --reflectivity -a --amplitude -d --deviation -h --height -T --type --saveOct --loadOct --advanced" + filetype="uos uos_map uos_rgb uos_frames uos_map_frames old rts rts_map ifp riegl_txt riegl_rgb riegl_bin zahn ply wrl xyz zuf iais front x3d rxp ais" + + case $prev in + -f|--format) + COMPREPLY=( $( compgen -W "${filetype}" -- ${cur} ) ) + return 0 + ;; + esac + + + # reflectivity/reflectance are synonymous + if [[ ${cur} == --ref* ]] ; then + COMPREPLY=( "--reflectance" ) + return 0 + fi + + + # relevant options to complete + if [[ ${cur} == -* ]] ; then + COMPREPLY=( $( compgen -W "${opts}" -- "$cur" ) ) + fi + + + # stolen from _cd function in bash_completion + _cd +} && +complete -o dirnames -F _show show + + +_slam6D() +{ + local cur prev opts filetype + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + ## split the long options + _split_longopt + +# -n FILE, --net=FILE +# specifies the file that includes the net structure for SLAM +# + + opts="-e -s -f --format -m --max -M --min -O --octree -r --reduce -R --random -q --quiet -Q --veryquiet -u --cuda -p --trustpose -n --net --metascan -L --loop6DAlgo -l --loopsize -I --iterSLAM -i --iter -G --epsICP --epsICP --exportAllPoints --DlastSLAM -D --distSLAM -d --dist --cache -C --clpairs -c --cldist -A --anim -a --algo " + filetype="uos uos_map uos_rgb uos_frames uos_map_frames old rts rts_map ifp riegl_txt riegl_rgb riegl_bin zahn ply wrl xyz zuf iais front x3d rxp ais" + + case $prev in + -f|--format) + COMPREPLY=( $( compgen -W "${filetype}" -- ${cur} ) ) + return 0 + ;; + -L|--loop6DAlgo) + COMPREPLY=( $( compgen -W "0 1 2 3 4 5 6" -- ${cur} ) ) + return 0 + ;; + -G|--graphSlam6DAlgo) + COMPREPLY=( $( compgen -W "0 1 2 3 4 5 6" -- ${cur} ) ) + return 0 + ;; + -a|--algo) + COMPREPLY=( $( compgen -W "0 1 2 3 4 5 6 7 8 9" -- ${cur} ) ) + return 0 + ;; + -n|--net) + _filedir + return 0 + ;; + esac + + + + # relevant options to complete + if [[ ${cur} == -* ]] ; then + COMPREPLY=( $( compgen -W "${opts}" -- "$cur" ) ) + fi + + + # stolen from _cd function in bash_completion + _cd +} && +complete -o dirnames -F _slam6D slam6D + +# Local variables: +# mode: shell-script +# sh-basic-offset: 4 +# sh-indent-comment: t +# indent-tabs-mode: nil +# End: +# ex: ts=4 sw=4 et filetype=sh diff --git a/.svn/pristine/3c/3ca14d44d07b9637bd4738ef64c185c01c0a7085.svn-base b/.svn/pristine/3c/3ca14d44d07b9637bd4738ef64c185c01c0a7085.svn-base new file mode 100644 index 0000000..baca49d --- /dev/null +++ b/.svn/pristine/3c/3ca14d44d07b9637bd4738ef64c185c01c0a7085.svn-base @@ -0,0 +1,776 @@ +/* + * image implementation + * + * Copyright (C) Dorit Borrmann + * + * Released under the GPL version 3. + * + */ + +#include "shapes/image.h" +#include "slam6d/globals.icc" +#include +#include +#include +#include +using std::string; +using std::ofstream; +#include +using std::set; +#include +using std::insert_iterator; + +Image::Image(float _minw, float _maxw, float _minh, float _maxh, float +_resolution, const vector *points) { + minh = _minh; + minw = _minw; + maxh = _maxh; + maxw = _maxw; + width = (maxw - minw)/_resolution + 1; + height = (maxh - minh)/_resolution + 1; + int size = points->size(); + + data = new float*[width]; + for(int i = 0; i < width; i++) { + data[i] = new float[height]; + for(int j = 0; j < height; j++) { + data[i][j] = 0.0; + } + } + if(points != 0) { + double *tmpp = new double[3]; + double reflectance; + double * polar = new double[3]; + for(int i = 0; i < size; i++) { + Point p = (*points)[i]; + tmpp[0] = p.x; + tmpp[1] = p.z; + tmpp[2] = p.y; + reflectance = p.reflectance; + //tmpp = points[i]; + // phi theta rho + // theta = width, phi = height, rho = distance value + toPolar(tmpp, polar); + int w_i = (int)((double)((deg(polar[1]) + 90.0) - minw)/(double)(maxw - minw) * (double)width) % width; + //int w_i = ((double)((int)(deg(polar[1]) + 90)%360 - minw)/(double)(maxw - minw)) * (double)width; + if(w_i < 0) { + w_i = 0; + } else if(w_i >= width) { + w_i = width - 1; + } + int h_i = (int)((double)(deg(polar[0]) - minh)/(double)(maxh - minh) * (double)height); + if(h_i < 0) { + h_i = 0; + } else if(h_i >= height) { + h_i = height - 1; + } + + if((fabs(data[w_i][h_i]) < 0.000001) || (data[w_i][h_i] < p.reflectance)) { + data[w_i][h_i] = (float)reflectance; + //cout << data[w_i][h_i] << " " << endl; + } + /* + if((fabs(data[w_i][h_i]) < 0.000001) || (data[w_i][h_i] > polar[2])) { + data[w_i][h_i] = (float)reflectance; + //cout << data[w_i][h_i] << " " << endl; + } + */ + } + delete[] tmpp; + delete[] polar; + } + +} + +Image::Image(float _minw, float _maxw, float _minh, float _maxh, float _resolution, double * const* points, int size) { + minh = _minh; + minw = _minw; + maxh = _maxh; + maxw = _maxw; + width = (maxw - minw)/_resolution + 1; + height = (maxh - minh)/_resolution + 1; + + data = new float*[width]; + for(int i = 0; i < width; i++) { + data[i] = new float[height]; + for(int j = 0; j < height; j++) { + data[i][j] = 0.0; + } + } + if(points != 0) { + double *tmpp = new double[3]; + double * polar = new double[3]; + for(int i = 0; i < size; i++) { + tmpp[0] = points[i][0]; + tmpp[1] = points[i][2]; + tmpp[2] = points[i][1]; + //tmpp = points[i]; + // phi theta rho + // theta = width, phi = height, rho = distance value + toPolar(tmpp, polar); + int w_i = (int)((double)((deg(polar[1]) + 90.0) - minw)/(double)(maxw - minw) * (double)width) % width; + //int w_i = ((double)((int)(deg(polar[1]) + 90)%360 - minw)/(double)(maxw - minw)) * (double)width; + if(w_i < 0) { + w_i = 0; + } else if(w_i >= width) { + w_i = width - 1; + } + int h_i = (int)((double)(deg(polar[0]) - minh)/(double)(maxh - minh) * (double)height); + if(h_i < 0) { + h_i = 0; + } else if(h_i >= height) { + h_i = height - 1; + } + + if((fabs(data[w_i][h_i]) < 0.000001) || (data[w_i][h_i] > polar[2])) { + data[w_i][h_i] = (float)polar[2]; + //cout << data[w_i][h_i] << " " << endl; + } + } + delete[] tmpp; + delete[] polar; + } + +} + +Image::Image(float _minw, float _maxw, float _minh, float _maxh, float _resolution, const vector *points) { + //TODO correct this!!! + minh = _minh; + minw = _minw; + maxh = _maxh; + maxw = _maxw; + width = (maxw - minw)/_resolution + 1; + height = (maxh - minh)/_resolution + 1; + + data = new float*[width]; + for(int i = 0; i < width; i++) { + data[i] = new float[height]; + for(int j = 0; j < height; j++) { + data[i][j] = 0.0; + } + } + if(points != 0) { + double *tmpp; + double * polar = new double[3]; + for(int i = 0; i < points->size(); i++) { + tmpp = new double[3]; + //tmpp = (*points)[i]; + tmpp[0] = (*points)[i][0]; + tmpp[1] = (*points)[i][2]; + tmpp[2] = (*points)[i][1]; + // phi theta rho + // theta = width, phi = height, rho = distance value + toPolar(tmpp, polar); + int w_i = (((int)(deg(polar[1]) + 180)%360 - minw)/(maxw - minw)) * width; + w_i = (((int)(deg(polar[1]) ) - minw)/(maxw - minw)) * width; + if(w_i < 0) { + w_i = 0; + } else if(w_i >= width) { + w_i = width - 1; + } + int h_i = (((int)(deg(polar[0]) + 90)%180 - minh)/(maxh - minh)) * height; + h_i = (((int)(deg(polar[0]) ) - minh)/(maxh - minh)) * height; + if(h_i < 0) { + h_i = 0; + } else if(h_i >= height) { + h_i = height - 1; + } + + if((fabs(data[w_i][h_i] - 0.0) < 0.000100) || (data[w_i][h_i] > polar[2])) { + data[w_i][h_i] = (float)polar[2]; + } + } + } + for(int j = 0; j < height; j++) { + for(int i = 0; i < width; i++) { + cout << data[i][j] << " " ; + } + cout << endl; + } + +} + +Image::~Image() { + for(int i = 0; i < width; i++) { + delete[] data[i]; + } + delete[] data; +} + +int Image::getWidth() { + return width; +} + +int Image::getHeight() { + return height; +} + +float Image::getValueAt(int width, int height) { + return data[width][height]; +} + +float Image::getMin() { + float min = std::numeric_limits::max(); + + for(int i = 0; i < width; i++) { + for(int j = 0; j < height; j++) { + min = std::min(min, data[i][j]); + } + } + return min; +} + +float Image::getMax() { + float max = std::numeric_limits::min(); + for(int i = 0; i < width; i++) { + for(int j = 0; j < height; j++) { + max = std::max(max, data[i][j]); + } + } + return max; +} + +void Image::mergeregion(int x, int y, int delreg, int targetreg, int** img, int it) { + cout << x << " " << y << " " << delreg << " " << targetreg << " " << it << endl; + // traversed more than necessary + if(it > 0) return; +// cout << (j % width) << ", " << j / width << " " << width << " " << old<< " ->> " << targetreg << endl; + img[x][y] = targetreg; + cout << "A" << endl; + // left + if ( x > 0 && (img[x - 1][y] == delreg)){ + cout << "1" << endl; + mergeregion(x-1, y ,delreg, targetreg, img); + cout << "2" << endl; + } + cout << "B" << endl; + // right + if ( x < width - 1 && (img[x + 1][y] == delreg)){ + mergeregion(x+1, y, delreg, targetreg, img); + } + cout << "C" << endl; + // up + if ( y > 0 && (img[x][y-1] == delreg )) { + mergeregion(x, y - 1, delreg, targetreg, img); + } + cout << "D" << endl; + // down + if ( y + 1 < height && (img[x][y+1] == delreg )) { + mergeregion(x, y + 1, delreg, targetreg, img); + } + cout << "E" << endl; +} + +int Image::calcMarker(float _threshold, int ** regdat) { + // segment picture + threshold = _threshold; + cout << threshold << " "; + int counter = 0; + for(int y = 0; y < height; y++) { + for(int x = 0; x < width; x++) { + if(data[x][y] > threshold) { + counter++; + regdat[x][y] = 100; + //data[x][y] = 100; + } else { + regdat[x][y] = 0; + //data[x][y] = 0; + } + } + } + + //printScans(regdat, height, width) + //printImage("marker.ppm", false, regdat, height, width, 0, 1); + printImage("marker.ppm", false, regdat, height, width, 0, 100); + cout << counter << endl; + return counter; +} + +int Image::cluster(float dist, int ** dat, int ** regdat) { + vector > linked; + int up, left; + int region = 0; + for(int y = 0; y < height; y++) { + for(int x = 0; x < width; x++) { + float value = dat[x][y]; + + if(value != 0) { + // left border + if(x==0) { + left = value + dist*2.0; + } else { + left = dat[x-1][y]; + } + // upper border + if(y==0) { + up = value + dist*2.0; + } else { + up = dat[x][y-1]; + } + + if (fabs(left - value) > dist) { + if (fabs(up - value) > dist) { + regdat[x][y] = ++region; // new region + set *joined = new set; + joined->insert(region); + linked.push_back(*joined); + } else { + regdat[x][y] = regdat[x][y - 1]; // use upper region + } + } else if (fabs(up - value) > dist) { + regdat[x][y] = regdat[x-1][y]; // use left region + } else { + // merge left and upper region, default to lower regioning number + if (regdat[x][y - 1] == regdat[ x - 1][y]) { + regdat[x][y] = regdat[x-1][y]; + continue; // already same region, nothing to do + } + + /* + int minreg, maxreg; + falschrum?? + minreg = regdat[x][y - 1]; + maxreg = regdat[x - 1][y]; + */ + int up = regdat[x][y - 1]; + int left = regdat[x - 1][y]; + regdat[x][y] = up; + set current; + set *joined = new set; + joined->insert(up); + joined->insert(left); + + for(vector >::iterator itr = linked.begin(); itr != linked.end(); ) { + current = (*itr); + if(current.find(up) != current.end() || current.find(left) != current.end()) { + set *newjoined = new set(); + insert_iterator > res_ins(*newjoined, newjoined->begin()); + + set_union(joined->begin(), joined->end(), current.begin(), current.end(), res_ins); + joined->clear(); + delete joined; + joined = newjoined; + itr=linked.erase(itr); + } else { + itr++; + } + } + + linked.push_back(*joined); + } + } + } + } + + cout << region << " " << linked.size(); + int linkedindex[region+1]; + linkedindex[0] = 0; + set current; + int link = 0; + for(vector >::iterator itr = linked.begin(); itr != linked.end(); itr++) { + current = (*itr); + for(set::iterator sitr = current.begin(); + sitr != current.end(); + sitr++) { + linkedindex[*sitr] = link; + } + link++; + } + + + cout << "Regions " << linked.size() << endl; + /* + for(int i = 0; i <= region; i++) { + cout << i << " " << linkedindex[i] << endl; + } + */ + for(int y = 0; y < height; y++) { + for(int x = 0; x < width; x++) { + regdat[x][y] = linkedindex[regdat[x][y]]; + } + } + + printImage("cluster.ppm", false, regdat, height, width, 0, linked.size()); + + return linked.size(); + +} + +void Image::writeCenters(int regions, int** cluster, const vector *points) { + int size = points->size(); + + vector clusters[regions]; + /* + vector > clusters; + + + for(int i = 0; i < regions; i++) { + vector tmp = new vector(); + clusters.push_back(tmp); + } + + + cout << "Regions: " << regions << " " << clusters.size() << endl;; + for(int i = 0; i < regions; i++) { + cout << i << " " << clusters[i]->size() << endl; + Point p = *clusters[i][0]; + cout << p.x << " " << p.y << " " << p.z << endl; + } + cout << "done" << endl; + */ + /* + for(int i = 0; i < regions; i++) { + vector *tmp = new vector(); + clusters[i].push_back(tmp); + } + */ + + if(points != 0) { + double *tmpp = new double[3]; + double reflectance; + double * polar = new double[3]; + for(int i = 0; i < size; i++) { + Point p = (*points)[i]; + tmpp[0] = p.x; + tmpp[1] = p.z; + tmpp[2] = p.y; + reflectance = p.reflectance; + //tmpp = points[i]; + // phi theta rho + // theta = width, phi = height, rho = distance value + if(reflectance > threshold) { + toPolar(tmpp, polar); + int w_i = (int)((double)((deg(polar[1]) + 90.0) - minw)/(double)(maxw - minw) * (double)width) % width; + //int w_i = ((double)((int)(deg(polar[1]) + 90)%360 - minw)/(double)(maxw - minw)) * (double)width; + if(w_i < 0) { + w_i = 0; + } else if(w_i >= width) { + w_i = width - 1; + } + int h_i = (int)((double)(deg(polar[0]) - minh)/(double)(maxh - minh) * (double)height); + if(h_i < 0) { + h_i = 0; + } else if(h_i >= height) { + h_i = height - 1; + } + int tmp = cluster[w_i][h_i] - 1; + if(cluster[w_i][h_i] != 0) { + clusters[tmp].push_back(p); + } + } + } + delete[] tmpp; + delete[] polar; + } + + cout << "Regions: " << regions << " " << clusters->size() << endl; + int markercounter = 0; + for(int i = 0; i < regions; i++) { + //cout << i << " " << clusters[i].size() << endl; + double point[3]; + point[0] = point[1] = point[2] = 0; + for(int j = 0; j < clusters[i].size(); j++) { + point[0] += clusters[i][j].x; + point[1] += clusters[i][j].y; + point[2] += clusters[i][j].z; + } + for(int j = 0; j < 3; j++) { + point[j] /= clusters[i].size(); + } + //cout << p.x << " " << p.y << " " << p.z << endl; + cout << point[0] << " " << point[1] << " " << point[2] << " TP" << to_string(markercounter, 4) << endl; + markercounter++; + } + +} + +int Image::blobColor(float dist, int ** regdat) { + // segment picture + int region = 0; // start at 12 to incresae visibility + float up, left; + + for(int y = 0; y < height; y++) { + for(int x = 0; x < width; x++) { + + float value = data[x][y]; + // left border + if (x == 0 ) { + left = value + dist*2.0; + } else { + left = data[x - 1][y]; + } + // or upper border + if ( y == 0) { + up = value + dist*2; + } else { + up = data[x][y - 1]; + } + + if (fabs(left - value) > dist) { + if (fabs(up - value) > dist) { + regdat[x][y] = ++region; // new region + } else { + regdat[x][y] = regdat[x][y - 1]; // use upper region + } + } else if (fabs(up - value) > dist) { + regdat[x][y] = regdat[x-1][y]; // use left region + } else { + // merge left and upper region, default to lower regioning number + if (regdat[x][y - 1] == regdat[ x - 1][y]) { + regdat[x][y] = regdat[x-1][y]; + continue; // already same region, nothing to do + } + + int minreg, maxreg; + /* + falschrum?? + minreg = regdat[x][y - 1]; + maxreg = regdat[x - 1][y]; + */ + maxreg = regdat[x][y - 1]; + minreg = regdat[x - 1][y]; + regdat[x][y] = maxreg; + cout << "mergeRegion" << endl; + mergeregion(x, y, maxreg, minreg, regdat); + cout << "mergeRegion done" << endl; + } + } + } + + cout << "color done" << endl; + //printScans(regdat, height, width) + printImage("bla.ppm", false, regdat, height, width, 1.0, region); + return region; +} + +void kMeans(float dist, int ** regdat) { + +} + +void EM(float dist, int ** regdat) { + +} + +void normalizedCuts(float dist, int ** regdat) { + +} + +void lineMerge() { + +} + +void Image::printScans(int ** regdat, double * const* points, int size) { + int max_i = 0; + for(int i = 0; i < width; i++) { + for(int j = 0; j < height; j++) { + max_i = max_i > regdat[i][j] ? max_i : regdat[i][j]; + } + } + cout << "size " << size << endl; + cout << "max_i is " << max_i << endl; + vector clusters[max_i + 1]; + + if(points != 0) { + cout << "points" << endl; + double *tmpp = new double[3]; + double * polar = new double[3]; + for(int i = 0; i < size; i++) { + tmpp[0] = points[i][0]; + tmpp[1] = points[i][2]; + tmpp[2] = points[i][1]; + //tmpp = points[i]; + // phi theta rho + // theta = width, phi = height, rho = distance value + toPolar(tmpp, polar); + int w_i = (int)((double)((deg(polar[1]) + 90.0) - minw)/(double)(maxw - minw) * (double)width) % width; + //int w_i = ((double)((int)(deg(polar[1]) + 90)%360 - minw)/(double)(maxw - minw)) * (double)width; + if(w_i < 0) { + w_i = 0; + } else if(w_i >= width) { + w_i = width - 1; + } + int h_i = (int)((double)(deg(polar[0]) - minh)/(double)(maxh - minh) * (double)height); + if(h_i < 0) { + h_i = 0; + } else if(h_i >= height) { + h_i = height - 1; + } + //cout << i << " " << regdat[w_i][h_i] << endl; + clusters[regdat[w_i][h_i]].push_back(points[i]); + } + delete[] tmpp; + delete[] polar; + + cout << "clustering done " << endl; + + string clusteroutname = ""; + int index = 0; + for(int i = 0; i < max_i; i++) { + if(clusters[i].size() > 0) { + clusteroutname = "clusters/scan" + to_string(index, 3) + ".3d"; + index++; + ofstream clusterout(clusteroutname.c_str()); + clusterout << i << endl; + for(int j = 0; j < clusters[i].size(); j++) { + clusterout << clusters[i][j][0] << " " + << clusters[i][j][1] << " " << clusters[i][j][2] << endl; + } + clusterout.close(); + clusterout.clear(); + } + } + } +} + + +void Image::printImage(const char* filename, bool color, int** img, int height, int width, int min, int max) { + double Fact = 255.0 /(max - min); + std::ofstream outfile(filename); + if(outfile.good()) { + if(!color) { + outfile << "P2\n" << width << " " << height << std::endl << "255" << endl; + } else { + outfile << "P3\n" << width << " " << height << std::endl << "255" << endl; + } + + for(int j = 0; j < height; j++) { + for(int i = 0; i < width; i++) { + short gray = std::min(std::max((int)(Fact * (img[i][j] - min)), 0), 255); + if(!color) { + outfile << gray << " "; + } else { + double h = 255.0-gray; + double v = 1.0; + double s = 1.0; + double r = 0, g = 0, b = 0; + double h1 = h/60.0; + int i = (int)h1; + double f = h1 - i; + double pv = v * (1-s); + double qv = v * (1-s*f); + double tv = v * (1-s*(1-f)); + switch(i) { + case 0: + r = v; + g = tv; + b = pv; + break; + case 1: + r = qv; + g = v; + b = pv; + break; + case 2: + r = pv; + g = v; + b = tv; + break; + case 3: + r = pv; + g = qv; + b = v; + break; + case 4: + r = tv; + g = pv; + b = v; + break; + case 5: + r = v; + g = pv; + b = qv; + break; + case 6: + r = v; + g = tv; + b = pv; + break; + default: + break; + } + outfile << (int)(r*255.0) << " " << (int)(g*255.0) << " " << (int)(b*255.0) << " "; + } + } + outfile << std::endl; + } + } + outfile.close(); + +} + +void Image::printImage(const char *filename, bool color) { + float min = getMin(); + float max = getMax(); + + double Fact = 255.0 /(max - min); + std::ofstream outfile(filename); + if(outfile.good()) { + if(!color) { + outfile << "P2\n" << width << " " << height << std::endl << "255" << endl; + } else { + outfile << "P3\n" << width << " " << height << std::endl << "255" << endl; + } + + for(int j = 0; j < height; j++) { + for(int i = 0; i < width; i++) { + short gray = std::min(std::max((int)(Fact * (data[i][j] - min)), 0), 255); + if(!color) { + outfile << gray << " "; + } else { + double h = 255.0-gray; + double v = 1.0; + double s = 1.0; + double r = 0, g = 0, b = 0; + double h1 = h/60.0; + int i = (int)h1; + double f = h1 - i; + double pv = v * (1-s); + double qv = v * (1-s*f); + double tv = v * (1-s*(1-f)); + switch(i) { + case 0: + r = v; + g = tv; + b = pv; + break; + case 1: + r = qv; + g = v; + b = pv; + break; + case 2: + r = pv; + g = v; + b = tv; + break; + case 3: + r = pv; + g = qv; + b = v; + break; + case 4: + r = tv; + g = pv; + b = v; + break; + case 5: + r = v; + g = pv; + b = qv; + break; + case 6: + r = v; + g = tv; + b = pv; + break; + default: + break; + } + outfile << (int)(r*255.0) << " " << (int)(g*255.0) << " " << (int)(b*255.0) << " "; + } + } + outfile << std::endl; + } + } + outfile.close(); +} diff --git a/.svn/pristine/3d/3d845b3ab4b95d5b624145d85ded571d5f3796b8.svn-base b/.svn/pristine/3d/3d845b3ab4b95d5b624145d85ded571d5f3796b8.svn-base new file mode 100644 index 0000000..9da05b2 --- /dev/null +++ b/.svn/pristine/3d/3d845b3ab4b95d5b624145d85ded571d5f3796b8.svn-base @@ -0,0 +1,229 @@ +/* + * gridWriter implementation + * + * Copyright (C) Uwe Hebbelmann, Sebastian Stock, Andre Schemschat + * + * Released under the GPL version 3. + * + */ + +#include "grid/gridWriter.h" +#include +#include +#include +using std::cerr; +using std::endl; +#include +using std::ofstream; + +/** + * CTor of gridWriter. Tries to the file + * specified by file and saves the stream if + * successfull + * + * @param file The filename of the file + */ +gridWriter::gridWriter(string file) +{ + this->stream.open(file.c_str()); + if(!this->stream.good()) + { + cerr << "ERROR: In gridWriter::gridWriter, unable to open the stream for gridWriter! " << endl; + cerr << "(Filename: " << file << ")" << endl; + exit(1); + } +} + +/** + * CTor for passing in an already opened stream. + * The stream is validated, so it must already be open + * + * @param stream A reference to the stream to be used + */ +gridWriter::gridWriter(ofstream &stream) +{ +} + +/** + * DTor. Closes the stream if open + */ +gridWriter::~gridWriter() +{ + if(this->stream.is_open()) + this->stream.close(); +} + +/** + * CTor. Just calls gridWriter ctor. + * See gridWriter::gridWriter(string) for more infos. + * @param file The filename to be opend. + */ +ppmWriter::ppmWriter(string file) + : gridWriter(file) +{} + +/** + * CTor. Just calls gridWriter ctor + * See gridWriter::gridWriter(stream) for more infos. + * @param stream the Stream + */ +ppmWriter::ppmWriter(ofstream &stream) + : gridWriter(stream) +{} + +/** + * Method writes the grid to the ppm file format + * @param grid the grid to write + */ +void ppmWriter::write(const grid& grid) +{ + stream << "P2" << endl; + stream << "#Breite Hoehe" << endl; + stream << grid.getSizeX() << " " << grid.getSizeZ() << endl; + stream << "100" << endl; + + for(long i=grid.getSizeZ()-1; i >=0 ; --i) + { + for(long j=0; j < grid.getSizeX(); ++j) + { + if(grid.points[j][i]->getPercent() < 0) + stream << "50 "; + else + stream << 100 - (int)(grid.points[j][i]->getPercent() * 100) << " "; + } + stream << endl; + } +} + +/** + * CTor. Just calls gridWriter ctor. + * See gridWriter::gridWriter(string) for more infos. + * @param file The filename to be opend. + */ +parcelWriter::parcelWriter(string file) + : gridWriter(file) +{ +} + +/** + * CTor. Just calls gridWriter ctor + * See gridWriter::gridWriter(stream) for more infos. + * @param stream the Stream + */ +parcelWriter::parcelWriter(ofstream &stream) + : gridWriter(stream) +{ +} + +/** + * Method writes the grid to the parcel file format + * @param grid the grid to write + */ +void parcelWriter::write(const grid& grid) +{ + stream << grid.getSizeX() << " " << grid.getSizeZ() << endl; + stream << grid.getOffsetX() << " " << grid.getOffsetZ() << endl; + + for(long i = 0; i < grid.getSizeX(); ++i) + for(long j = 0; j < grid.getSizeZ(); j++) + stream << grid.points[i][j]->getX() << " " + << grid.points[i][j]->getZ() << " " + << grid.points[i][j]->getCount() << " " + << grid.points[i][j]->getOccupied() << endl; +} + +/** + * CTor. Just calls gridWriter ctor + * See gridWriter::gridWriter(stream) for more infos. + * @param stream the Stream + */ +gnuplotWriter::gnuplotWriter(ofstream &stream) + : gridWriter(stream) +{ +} + +/** + * CTor. Just calls gridWriter ctor + * See gridWriter::gridWriter(string) for more infos + * @param file The filename + */ +gnuplotWriter::gnuplotWriter(string file) + : gridWriter(file) +{ +} + +/** + * Method writes the grid to the gnuplot file format + * @param grid the grid to write + */ +void gnuplotWriter::write(const grid& grid) +{ + for(long i=0; i < grid.getSizeX(); ++i) + for(long j=0; j < grid.getSizeZ(); ++j) + stream << grid.points[i][j]->getX() << " " + << grid.points[i][j]->getZ() << " " + << grid.points[i][j]->getPercent() << endl; +} + +/** + * CTor of worldwriter. Tries to open the stream and + * writes some initial data about the world. (write is called + * several times, so do it here) + * + * @param file The filename + * @param minX The minimal found X value of all parcels + * @param maxX The maximal found x value of all parcels + * @param minZ The minimal found z value of all parcels + * @param maxZ The maximal found z value of all parcels + * @param resolution the resolution of the world + * @param vpX the x coordinate of the viewpoint + * @param vpZ the z coordinate of the viewpoint + */ +worldWriter::worldWriter(string file, long minX, long maxX, long minZ, long maxZ, int resolution, long vpX, long vpZ) + : gridWriter(file) +{ + stream << "1" << endl; + stream << resolution << endl; + stream << minX << " " << maxX << " " << minZ << " " << maxZ << endl; + stream << vpX << " " << vpZ << endl; +} + + /** + * CTor of worldwriter. Checks if the stream is valid and + * writes some initial data about the world. (write is called + * several times, so do it here) + * + * @param stream The stream to write to + * @param minX The minimal found X value of all parcels + * @param maxX The maximal found x value of all parcels + * @param minZ The minimal found z value of all parcels + * @param maxZ The maximal found z value of all parcels + * @param resolution the resolution of the world + * @param vpX the x coordinate of the viewpoint + * @param vpZ the z coordinate of the viewpoint + */ +worldWriter::worldWriter(ofstream& stream, long minX, long maxX, long minZ, long maxZ, int resolution, long vpX, long vpZ) + : gridWriter(stream) +{ + stream << "1" << endl; + stream << resolution << endl; + stream << minX << " " << maxX << " " << minZ << " " << maxZ << endl; + stream << vpX << " " << vpZ << endl; +} + +/** + * Method writes the grid to the world file format + * @param grid the grid to write + */ +void worldWriter::write(const grid& grid) +{ + for(int i=0; i < grid.getSizeX(); ++i) + { + for(int j=0; j < grid.getSizeZ(); ++j) + { + stream << grid.points[i][j]->getX() << " " + << grid.points[i][j]->getZ() << " " + << grid.points[i][j]->getPercent() << endl; + } + } +} diff --git a/.svn/pristine/3d/3dfc7b842918aca3ba1e3404c6079202bf195fcb.svn-base b/.svn/pristine/3d/3dfc7b842918aca3ba1e3404c6079202bf195fcb.svn-base new file mode 100644 index 0000000..6fbf30f --- /dev/null +++ b/.svn/pristine/3d/3dfc7b842918aca3ba1e3404c6079202bf195fcb.svn-base @@ -0,0 +1,183 @@ +/** + * @file + * @brief Implementation of reading 3D scans + * @author Andreas Nuechter. Jacobs University Bremen gGmbH + * @author Dorit Borrmann. Smart Systems Group, Jacobs University Bremen gGmbH, Germany. + */ + +#include "slam6d/scan_io_riegl_rgb.h" +#include "slam6d/globals.icc" +#include +using std::ifstream; +#include +using std::cerr; +using std::endl; + +#include +using std::swap; + +#ifdef _MSC_VER +#include +#endif + +/** + * Reads specified scans from given directory in + * the file format Riegl Laser Measurement GmbH + * uses including color information . It will be compiled as shared lib. + * + * Scan poses will NOT be initialized after a call + * to this function. Initial pose estimation works + * only with the -p switch, i.e., trusting the initial + * estimations by Riegl. + * + * The scans have to be exported from the Riegl software + * as follows: + * 1. Export point cloud data to ASCII + * Use Scanners own Coordinate System (SOCS) + * X Y Z Range Theta Phi RGB Reflectance + * Name the files scanXXX.rgb where XXX determines the number of the scan + * 2. Export acqusition location (after you have registered + * with the Riegl software) + * Export SOP + * Write out as .dat file + * + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param dir The directory from which to read + * @param maxDist Reads only Points up to this Distance + * @param minDist Reads only Points from this Distance + * @param euler Initital pose estimates (will not be applied to the points + * @param ptss Vector containing the read points + */ +int ScanIO_riegl_rgb::readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss) +{ + static int fileCounter = start; + string scanFileName; + string poseFileName; + + ifstream scan_in, pose_in; + + if (end > -1 && fileCounter > end) return -1; // 'nuf read + + + poseFileName = dir + "scan" + to_string(fileCounter,3) + ".dat"; + scanFileName = dir + "scan" + to_string(fileCounter,3) + ".rgb"; + + scan_in.open(scanFileName.c_str()); + pose_in.open(poseFileName.c_str()); + // read 3D scan + + if (!pose_in.good() && !scan_in.good()) return -1; // no more files in the directory + if (!pose_in.good()) { cerr << "ERROR: Missing file " << poseFileName << endl; exit(1); } + if (!scan_in.good()) { cerr << "ERROR: Missing file " << scanFileName << endl; exit(1); } + cout << "Processing Scan " << scanFileName; + cout.flush(); + + double rPos[3], rPosTheta[16]; + double inMatrix[16], tMatrix[16]; + for (unsigned int i = 0; i < 16; pose_in >> inMatrix[i++]); + + // transform input pose + tMatrix[0] = inMatrix[5]; + tMatrix[1] = -inMatrix[9]; + tMatrix[2] = -inMatrix[1]; + tMatrix[3] = -inMatrix[13]; + tMatrix[4] = -inMatrix[6]; + tMatrix[5] = inMatrix[10]; + tMatrix[6] = inMatrix[2]; + tMatrix[7] = inMatrix[14]; + tMatrix[8] = -inMatrix[4]; + tMatrix[9] = inMatrix[8]; + tMatrix[10] = inMatrix[0]; + tMatrix[11] = inMatrix[12]; + tMatrix[12] = -inMatrix[7]; + tMatrix[13] = inMatrix[11]; + tMatrix[14] = inMatrix[3]; + tMatrix[15] = inMatrix[15]; + + Matrix4ToEuler(tMatrix, rPosTheta, rPos); + + euler[0] = 100*rPos[0]; + euler[1] = 100*rPos[1]; + euler[2] = 100*rPos[2]; + euler[3] = rPosTheta[0]; + euler[4] = rPosTheta[1]; + euler[5] = rPosTheta[2]; + + long num_pts = 0; + + if (scan_in.good()) { + scan_in >> num_pts; + cout << " with " << num_pts << " Points"; + cout.flush(); + ptss.reserve(num_pts); + } + + // read point data and transform into slam6D coordinate system + while (scan_in.good()) { + Point p; + double range, theta, phi, reflectance; + int r, g, b; + scan_in >> p.z >> p.x >> p.y >> range >> theta >> phi >> r >> g >> b >> reflectance; + + p.x *= -100; + p.y *= 100; + p.z *= 100; + + p.rgb[0] = (char)r; + p.rgb[1] = (char)g; + p.rgb[2] = (char)b; + + p.reflectance = reflectance; + + ptss.push_back(p); + } + + cout << " done" << endl; + + scan_in.close(); + scan_in.clear(); + pose_in.close(); + pose_in.clear(); + fileCounter++; + + return fileCounter-1; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_riegl_rgb; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/.svn/pristine/3f/3febf05b1fb33b70feb950db724d9edc7b2c0924.svn-base b/.svn/pristine/3f/3febf05b1fb33b70feb950db724d9edc7b2c0924.svn-base new file mode 100644 index 0000000..2e6c53c --- /dev/null +++ b/.svn/pristine/3f/3febf05b1fb33b70feb950db724d9edc7b2c0924.svn-base @@ -0,0 +1,2040 @@ +/* + * show_gl implementation + * + * Copyright (C) Kai Lingemann, Andreas Nuechter, Jan Elseberg, Dorit Borrmann + * + * Released under the GPL version 3. + * + */ + +#include +#include +#include "show/viewcull.h" +#include "show/scancolormanager.h" + +bool fullydisplayed = true; // true if all points have been drawn to the screen +bool mousemoving = false; // true iff a mouse button has been pressed inside a window, + // but hs not been released +bool keypressed = false; // true iff a key button has been pressed inside a window, + // but hs not been released +double ptstodisplay = 100000; +double lastfps = idealfps; // last frame rate +int pointmode = -1; + +bool smallfont = true; +bool label = true; + +/** + * Displays all data (i.e., points) that are to be displayed + * @param mode spezification for drawing to screen or in selection mode + */ +void DrawPoints(GLenum mode, bool interruptable) +{ + long time = GetCurrentTimeInMilliSec(); + double min = 0.000000001; + double max = 1.0; + LevelOfDetail *= 1.0 + adaption_rate*(lastfps - idealfps)/idealfps; + if (LevelOfDetail > max) LevelOfDetail = max; + else if (LevelOfDetail < min) LevelOfDetail = min; + + // In case of animation + if(frameNr != 0) { + cm->setMode(ScanColorManager::MODE_ANIMATION); + +#ifdef USE_GL_POINTS + for(int iterator = (int)octpts.size()-1; iterator >= 0; iterator--) { +#else + for(int iterator = (int)Scan::allScans.size()-1; iterator >= 0; iterator--) { +#endif + // ignore scans that don't have any frames associated with them + if((unsigned int)iterator >= MetaMatrix.size()) continue; + // set usable frame + double* frame; + Scan::AlgoType type; + if((unsigned int)frameNr >= MetaMatrix[iterator].size()) { + // use last possible frame + frame = MetaMatrix[iterator].back(); + type = MetaAlgoType[iterator].back(); + } else { + frame = MetaMatrix[iterator][frameNr]; + type = MetaAlgoType[iterator][frameNr]; + } + if(type == Scan::INVALID) continue; + cm->selectColors(type); + glPushMatrix(); + glMultMatrixd(frame); + + + glPointSize(pointsize); +#ifdef USE_GL_POINTS + ExtractFrustum(pointsize); + cm->selectColors(type); + if (pointmode == 1 ) { + octpts[iterator]->display(); + } else { + octpts[iterator]->displayLOD(LevelOfDetail); + } +#else + for (unsigned int jterator = 0; jterator < vvertexArrayList[iterator].size(); jterator++) { + + if ((jterator == 0) && vvertexArrayList[iterator][jterator]->numPointsToRender > 0) { + cm->selectColors(type); + } + + if (vvertexArrayList[iterator][jterator]->numPointsToRender > 0) { + glCallList(vvertexArrayList[iterator][jterator]->name); + } + } +#endif + glPopMatrix(); + } + + setScansColored(0); + } else { + + if(mode == GL_SELECT){ + // select points mode + // ------------------ + GLuint name = 0; + for(int iterator = (int)octpts.size()-1; iterator >= 0; iterator--) { + glPushMatrix(); + glMultMatrixd(MetaMatrix[iterator].back()); + + glColor4f(1.0, 0.0, 0.0,1.0); + glPointSize(pointsize + 2.0); + for ( set::iterator it = selected_points[iterator].begin(); + it != selected_points[iterator].end(); it++) { + glLoadName(name++); + glBegin(GL_POINTS); + glVertex3d((*it)[0], (*it)[1], (*it)[2]); + glEnd(); + } + glPointSize(pointsize); + + glFlush(); + glPopMatrix(); + } + + } else { + + // draw point is normal mode + // ------------------------- + + if (interruptable) { + glDrawBuffer (GL_FRONT); + } + glPointSize(pointsize); + + vector sequence; + calcPointSequence(sequence, current_frame); +#ifdef USE_GL_POINTS + //for(int iterator = (int)octpts.size()-1; iterator >= 0; iterator--) { + for(unsigned int i = 0; i < sequence.size(); i++) { + int iterator = sequence[i]; +#else + for(int iterator = (int)Scan::allScans.size()-1; iterator >= 0; iterator--) { +#endif + // ignore scans that don't have any frames associated with them + if((unsigned int)iterator >= MetaMatrix.size()) continue; + // set usable frame + double* frame; + Scan::AlgoType type; + if((unsigned int)current_frame >= MetaMatrix[iterator].size()) { + // use last possible frame + frame = MetaMatrix[iterator].back(); + type = MetaAlgoType[iterator].back(); + } else { + frame = MetaMatrix[iterator][current_frame]; + type = MetaAlgoType[iterator][current_frame]; + } + if (type == Scan::INVALID) continue; + glPushMatrix(); + if (invert) // default: white points on black background + glColor4d(1.0, 1.0, 1.0, 0.0); + else // black points on white background + glColor4d(0.0, 0.0, 0.0, 0.0); + + // glMultMatrixd(MetaMatrix[iterator].back()); + if (current_frame != (int)MetaMatrix.back().size() - 1) { + cm->setMode(ScanColorManager::MODE_ANIMATION); + cm->selectColors(type); + } + glMultMatrixd(frame); + +#ifdef USE_GL_POINTS + //cout << endl << endl; calcRay(570, 266, 1.0, 40000.0); + /* // for height mapped color in the vertex shader + GLfloat v[16]; + for (unsigned int l = 0; l < 16; l++) + v[l] = MetaMatrix[iterator].back()[l]; + glUniformMatrix4fvARB(glGetUniformLocationARB(p, "MYMAT"), 1, 0, v); + */ + ExtractFrustum(pointsize); + if (pointmode == 1 ) { + octpts[iterator]->display(); + } else if (interruptable) { + checkForInterrupt(); + glFlush(); + glFinish(); + if (isInterrupted()) { + glPopMatrix(); + return; + } + octpts[iterator]->display(); + } else { + octpts[iterator]->displayLOD(LevelOfDetail); + } + if (!selected_points[iterator].empty()) { + glColor4f(1.0, 0.0, 0.0, 1.0); + glPointSize(pointsize + 2.0); + glBegin(GL_POINTS); + for ( set::iterator it = selected_points[iterator].begin(); + it != selected_points[iterator].end(); it++) { + glVertex3d((*it)[0], (*it)[1], (*it)[2]); + } + glEnd(); + glPointSize(pointsize); + } + +#else + for (unsigned int jterator = 0; jterator < vvertexArrayList[iterator].size(); jterator++) { + if (vvertexArrayList[iterator][jterator]->numPointsToRender > 0) { + glCallList(vvertexArrayList[iterator][jterator]->name); + } + } +#endif + glPopMatrix(); + } + } + } + + + if (pointmode == 1 ) { + fullydisplayed = true; + } else { + unsigned long td = (GetCurrentTimeInMilliSec() - time); + if (td > 0) + lastfps = 1000.0/td; + else + lastfps = 1000.0; + fullydisplayed = false; + } + if (interruptable) + fullydisplayed = true; +} + + +void DrawObjects(GLenum mode) { + for (unsigned int i = 0; i < displays.size(); i++) + displays[i]->displayAll(); + +} + +/** + * Draw a smooth path passing from all the camera points. + * + */ +void DrawPath() +{ + + glLineWidth(10.0); + // draw path + glBegin(GL_LINE_STRIP); + for(unsigned int j = 0; j < path_vectorX.size(); j++){ + // set the color + glColor4f(0.0, 1.0, 0.0, 1.0); + // set the points + glVertex3f(path_vectorX.at(j).x,path_vectorX.at(j).y,path_vectorZ.at(j).y); + } + glEnd(); + + // draw lookat path + glBegin(GL_LINE_STRIP); + for(unsigned int j = 0; j < lookat_vectorX.size(); j++){ + //set the color + glColor4d(1.0, 1.0, 0.0, 1.0); + //set the points + glVertex3f(lookat_vectorX.at(j).x,lookat_vectorX.at(j).y,lookat_vectorZ.at(j).y); + } + glEnd(); + + // draw up path + /* + glBegin(GL_LINE_STRIP); + for(unsigned int j = 0; j < ups_vectorX.size(); j++){ + //set the color + glColor4d(0.0, 1.0, 0.0, 0.7); + //set the points + glVertex3f(ups_vectorX.at(j).x,ups_vectorX.at(j).y,ups_vectorZ.at(j).y); + } + glEnd(); + */ +} + +/** + * Draw the camera boxes in the viewer + * + */ +void DrawCameras(void) +{ + for (unsigned int i = 0; i < cams.size(); i++) { + glPushMatrix(); + + // TODO improve upon this primitive camera + Point p = cams[i]; + Point l = Point::norm( lookats[i] - p ); // forward vector + Point u = Point::norm( ups[i] - p ); // up vector + Point r = Point::cross(l,u); // right vector + l = 5 * l; + r = 5 * r; + u = 5 * u; + + Point cube[8]; + cube[0] = p + l - r - u; + cube[1] = p + l + r - u; + cube[2] = p - l + r - u; + cube[3] = p - l - r - u; + cube[4] = p + l - r + u; + cube[5] = p + l + r + u; + cube[6] = p - l + r + u; + cube[7] = p - l - r + u; + + int sides[6][4] = {{0,1,2,3}, {4,5,6,7}, {0,1,5,4}, + {3,2,6,7}, {1,2,6,5}, {0,3,7,4}}; + + if (i+1 == cam_choice) { + glColor4f(1, 0, 1, 1); + } else { + glColor4f(0, 1, 0, 1); + } + // camera cube + glPolygonMode (GL_FRONT_AND_BACK, GL_FILL); + glBegin(GL_QUADS); + for (int j = 0; j < 6; j++) { + if (j == 2) continue; + for (int k = 0; k < 4; k++) { + int index = sides[j][k]; + glVertex3d(cube[index].x, cube[index].y, cube[index].z); + } + } + glEnd(); + + r = 5 * r; + u = 5 * u; + + glColor4f(1, 1, 0, 1); + if (i+1 == cam_choice) { + glPointSize(10); + } else { + glPointSize(5); + } + glBegin(GL_POINTS); + glVertex3d( lookats[i].x, lookats[i].y, lookats[i].z); + glEnd(); + + Point fcube[8]; + fcube[0] = cube[4]; + fcube[1] = cube[5]; + fcube[2] = cube[1]; + fcube[3] = cube[0]; + fcube[4] = lookats[i] - r + u; + fcube[5] = lookats[i] + r + u; + fcube[6] = lookats[i] + r - u; + fcube[7] = lookats[i] - r - u; + + glLineWidth(2.0); + glLineStipple(1, 0x0C0F); + glEnable(GL_LINE_STIPPLE); + glPolygonMode (GL_FRONT_AND_BACK, GL_LINE); + // camera FOV + glBegin(GL_QUADS); + for (int j = 0; j < 6; j++) { + for (int k = 0; k < 4; k++) { + int index = sides[j][k]; + glVertex3d(fcube[index].x, fcube[index].y, fcube[index].z); + } + } + glEnd(); + glDisable(GL_LINE_STIPPLE); + + + /* + if (i+1 == cam_choice) { + glColor3f(1, 1, 0); + glPointSize(20); + } else { + glColor3f(0, 0, 1); + glPointSize(10); + } + glBegin(GL_POINTS); + glVertex3d(p.x, p.y, p.z); + glEnd(); + + if (i+1 == cam_choice) { + glColor3f(0, 1, 1); + glPointSize(20); + } else { + glColor3f(1, 0, 0); + glPointSize(10); + } + glBegin(GL_POINTS); + glVertex3d( l.x, l.y, l.z); + glEnd(); + + if (i+1 == cam_choice) { + glColor3f(1, 0, 1); + glPointSize(20); + } else { + glColor3f(0, 1, 0); + glPointSize(10); + } + glBegin(GL_POINTS); + glVertex3d( u.x, u.y, u.z); + glEnd(); +*/ + + glPopMatrix(); + } +} + +//----------------------------------------------------------------------------------- + + +/** + * Display function + */ +void DisplayItFunc(GLenum mode, bool interruptable) +{ + /** + * Color of the fog + */ + + GLfloat fogColor[4]; + + if(!invert) { + glEnable(GL_COLOR_LOGIC_OP); + glLogicOp(GL_COPY_INVERTED); + } + + // set the clear color buffer in case of + // both invert and non invert mode + if (invert) + glClearColor(0.0, 0.0, 0.0, 0.0); + else + glClearColor(1.0, 1.0, 1.0, 1.0); + + // clear the color and depth buffer bit + if (!interruptable) { // single buffer mode, we need the depth buffer + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + } + + glPushMatrix(); + + // set the matrix mode + glMatrixMode(GL_MODELVIEW); + + // init modelview matrix + glLoadIdentity(); + + // set the polygon mode + glPolygonMode(GL_FRONT/*_AND_BACK*/, GL_LINE); + + // do the model-transformation + if (haveToUpdate == 6 && path_iterator < path_vectorX.size() ) { + gluLookAt(path_vectorX.at(path_iterator).x, + path_vectorX.at(path_iterator).y, + path_vectorZ.at(path_iterator).y, + lookat_vectorX.at(path_iterator).x, + lookat_vectorX.at(path_iterator).y, + lookat_vectorZ.at(path_iterator).y, + ups_vectorX.at(path_iterator).x - path_vectorX.at(path_iterator).x, + ups_vectorX.at(path_iterator).y - path_vectorX.at(path_iterator).y, + ups_vectorZ.at(path_iterator).y - path_vectorZ.at(path_iterator).y); + } else { + if (cameraNavMouseMode == 1) { + glRotated( mouseRotX, 1, 0, 0); + glRotated( mouseRotY, 0, 1, 0); + glRotated( mouseRotZ, 0, 0, 1); + glGetFloatv(GL_MODELVIEW_MATRIX, view_rotate_button); + update_view_rotate(0); + } else { + double t[3] = {0,0,0}; + double mat[16]; + QuatToMatrix4(quat, t, mat); + glMultMatrixd(mat); + + glGetFloatv(GL_MODELVIEW_MATRIX, view_rotate_button); + //glRotated(angle, axis[0], axis[1], axis[2]); // rotate the camera + double rPT[3]; + Matrix4ToEuler(mat, rPT); + mouseRotX = deg(rPT[0]); + mouseRotY = deg(rPT[1]); + mouseRotZ = deg(rPT[2]); + + } + updateControls(); + + glTranslated(X, Y, Z); // move camera + } + +// cout << "Position :" << X << " " << Y << " " << Z << endl; +// cout << "Quaternion:" << quat[0] << " " << quat[1] << " " << quat[2] << " " << quat[3] << endl; +// cout << "Axis/Angle:" << axis[0] << " " << axis[1] << " " << axis[2] << " " << angle << endl; +// cout << "Apex angle:" << cangle << endl; +// cout << endl; + + // process fog + if (show_fog > 0) { + if (show_fog > 3) + fogColor[0] = fogColor[1] = fogColor[2] = fogColor[3] = 1.0; + else + fogColor[0] = fogColor[1] = fogColor[2] = fogColor[3] = 0.0; + glEnable(GL_FOG); + { + // ln(1/2^8) = -5.54517744 -> threshold at which the last color bit is gone due to fog + if (show_fog==1) {fogMode = GL_EXP; fardistance = min(5.54517744 / fogDensity, (double)maxfardistance);} + else if (show_fog==2) {fogMode = GL_EXP2; fardistance = min(sqrt(5.54517744) / fogDensity, (double)maxfardistance);} + else if (show_fog==3) {fogMode = GL_LINEAR; fardistance = 32000.0;} + else if (show_fog==4) {fogMode = GL_EXP; fardistance = (double)maxfardistance; } + else if (show_fog==5) {fogMode = GL_EXP2; fardistance = (double)maxfardistance; } + else if (show_fog==6) {fogMode = GL_LINEAR; fardistance = (double)maxfardistance;} + glFogi(GL_FOG_MODE, fogMode); + glFogfv(GL_FOG_COLOR, fogColor); + glFogf(GL_FOG_DENSITY, fogDensity); + glHint(GL_FOG_HINT, GL_FASTEST); + glFogf(GL_FOG_START, neardistance); + glFogf(GL_FOG_END, maxfardistance); + } + } else { + glDisable(GL_FOG); + fardistance = maxfardistance; + } + if (fardistance > maxfardistance) fardistance = maxfardistance; + if ( fabs(oldfardistance - fardistance) > 0.00001 || fabs(oldneardistance - neardistance) > 0.00001 ) { + oldfardistance = fardistance; + oldneardistance = neardistance; + int viewport[4]; + glGetIntegerv(GL_VIEWPORT, viewport); + CallBackReshapeFunc(viewport[2],viewport[3]); + } + + // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + // + // show the objects __after__ the model-transformation + // for all status variables we show the appropiated thing + // using the drawing functions + // + // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + if (show_path == 1) { + double *pose; + glColor4d(1.0, 0.0, 0.0, 1.0); + glLineWidth(5); + glBegin(GL_LINE_STRIP); + for(unsigned int i = 0; i < MetaMatrix.size(); i++){ + // set usable type + Scan::AlgoType type; + if((unsigned int)frameNr >= MetaMatrix[i].size()) { + type = MetaAlgoType[i].back(); + } else { + type = MetaAlgoType[i][frameNr]; + } + if(frameNr >= 1 && frameNr < (int)MetaMatrix[i].size()) { + if(type == Scan::INVALID) continue; + // avoid incomplete frames in a scan + if((unsigned int)frameNr >= MetaMatrix[i].size()) + pose = MetaMatrix[i].back(); + else + pose = MetaMatrix[i][frameNr]; + } else { + //pose = MetaMatrix[i].back(); + // avoid incomplete frames in a scan + if((unsigned int)current_frame >= MetaMatrix[i].size()) + pose = MetaMatrix[i].back(); + else + pose = MetaMatrix[i][current_frame]; + } + if(showTopView) { + glVertex3f(pose[12], 2000, pose[14]); + } else { + glVertex3f(pose[12], pose[13], pose[14]); + } + } + glEnd(); + } + + // if show camera is true then draw cameras. + if (show_cameras == 1) { + DrawCameras(); + } + + // if show path is true the draw path. + if (show_path == 1) { + DrawPath(); + } + DrawObjects(mode); + + if (label) DrawUrl(); + + // if show points is true the draw points + if (show_points == 1) DrawPoints(mode, interruptable); + + + glPopMatrix(); + + if (!invert) { + glDisable(GL_COLOR_LOGIC_OP); + } + + // force draw the scene + glFlush(); + glFinish(); +} + +void DrawUrl() { + glMatrixMode(GL_MODELVIEW); + glPushMatrix(); + glLoadIdentity(); + glMatrixMode(GL_PROJECTION); + + // Save the current projection matrix + glPushMatrix(); + // Make the current matrix the identity matrix + glLoadIdentity(); + + // Set the projection (to 2D orthographic) + glOrtho(0.0,100.0,0.0,100.0,-1.5,1.5); + + glPolygonMode (GL_FRONT_AND_BACK, GL_FILL); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); // TODO + + glColor4d(0.0,0.0,0.0,0.7); + + glBegin(GL_QUADS); + glVertex3f(0,0,1.49); + glVertex3f(0,6,1.49); + if(smallfont) { + glVertex3f(22,6,1.49); + glVertex3f(22,0,1.49); + } else { + glVertex3f(25,6,1.49); + glVertex3f(25,0,1.49); + } + glEnd(); + + glBlendFunc(GL_ONE, GL_ZERO); + glColor3f(1,1,1); + if(smallfont) { + glRasterPos3f(1,3.5,1.5); + _glutBitmapString(GLUT_BITMAP_8_BY_13, "created by 3DTK"); + glRasterPos3f(1,1,1.5); + _glutBitmapString(GLUT_BITMAP_8_BY_13, "http://threedtk.de"); + } else { + glRasterPos3f(1,3.5,1.5); + _glutBitmapString(GLUT_BITMAP_9_BY_15, "created by 3DTK"); + glRasterPos3f(1,1,1.5); + _glutBitmapString(GLUT_BITMAP_9_BY_15, "http://threedtk.de"); + } + + // Restore the original projection matrix + glPopMatrix(); + glMatrixMode(GL_MODELVIEW); + glPopMatrix(); + +} +/** + * Function topview. Set the screen for top view. + */ +void topView() +{ + static GLdouble save_qx, save_qy, save_qz, save_qangle, save_X, save_Y, save_Z; + static GLdouble saveMouseRotX, saveMouseRotY, saveMouseRotZ; + + if (!showTopView) // set to top view + { + showTopView = true; + // save current pose + save_X = X; + save_Y = Y; + save_Z = Z; + save_qx = quat[0]; + save_qy = quat[1]; + save_qz = quat[2]; + save_qangle = quat[3]; + saveMouseRotX = mouseRotX; + saveMouseRotY = mouseRotY; + saveMouseRotZ = mouseRotZ; + + Y = Y - 350.0; + Z = Z + 500.0; + quat[0] = quat[1] = sqrt(0.5); + quat[2] = quat[3] = 0.0; + mouseRotX = 90; + mouseRotY = 0; + mouseRotZ = 0; + + haveToUpdate = 2; + } else { + showTopView = false; + + // restore old settings + X = save_X; + Y = save_Y; + Z = save_Z; + quat[0] = save_qx; + quat[1] = save_qy; + quat[2] = save_qz; + quat[3] = save_qangle; + mouseRotX = saveMouseRotX; + mouseRotY = saveMouseRotY; + mouseRotZ = saveMouseRotZ; + + haveToUpdate = 2; + } +} + +//--------------------------------------------------------------------------- +/** + * This function is called when the user wants to + * delete a camera. + */ + +void callDeleteCamera(int dummy){ + + //iterator for the position of camera + //in the camera list + vector::iterator position; + vector::iterator positionL; + vector::iterator positionU; + + //calculate the position of the camera. we are referring + //to the selected camera + position = cams.begin()+ (cam_choice-1); + positionL = lookats.begin()+ (cam_choice-1); + positionU = ups.begin()+ (cam_choice-1); + + //if no camera present then return + if(cam_choice == 0) + return; + + //if the list is not empty then + if(!cams.empty()){ + //delete the camera from the position + cams.erase(position); + lookats.erase(positionL); + ups.erase(positionU); + //reset the cam_choice spinner values + } + + updateCamera(); +} + + +//--------------------------------------------------------------------------- +/** + * Function to reset the viewer window. + */ + +void resetView(int dummy) +{ + cangle = 60.0; + pzoom = defaultZoom; + X = RVX; + Y = RVY; + Z = RVZ; + quat[0] = Rquat[0]; + quat[1] = Rquat[1]; + quat[2] = Rquat[2]; + quat[3] = Rquat[3]; + haveToUpdate = 2; + mouseRotX = 0; + mouseRotY = 0; + mouseRotZ = 0; + + resetRotationButton(); +} + +/** + * Function to set the viewer window back to a previously saved state. + */ + +void setView(double pos[3], double new_quat[4], + double newMouseRotX, double newMouseRotY, double newMouseRotZ, + double newCangle, + bool sTV, bool cNMM, double pzoom_new, + bool s_points, bool s_path, bool s_cameras, double ps, int + sf, double fD, bool inv) +{ + X = pos[0]; + Y = pos[1]; + Z = pos[2]; + for(int i = 0; i < 4; i++) { + quat[i] = new_quat[i]; + } + cangle = newCangle; + mouseRotX = newMouseRotX; + mouseRotY = newMouseRotY; + mouseRotZ = newMouseRotZ; + showTopView = sTV, + cameraNavMouseMode = cNMM; + pzoom = pzoom_new; + updateTopViewControls(); + + show_points = s_points; + show_path = s_path; + show_cameras = s_cameras; + pointsize = ps; + show_fog = sf; + fogDensity = fD; + invert = inv; + + haveToUpdate = 2; +} + + +/** + * This function is called when the viewer is created. This + * acts as the display function. + */ +void CallBackDisplayFunc() +{ + if ((cangle_spinner != 0 && (fabs(cangle_old - cangle) > 0.5)) || + (pzoom_spinner != 0 && (fabs(pzoom_old - pzoom) > 0.5))) { + + cangle_old = cangle; + pzoom_old = pzoom; + int viewport[4]; + glGetIntegerv(GL_VIEWPORT, viewport); + CallBackReshapeFunc(viewport[2],viewport[3]); +#ifdef _MSC_VER + Sleep(25); +#else + usleep(250000); +#endif + } + + glDrawBuffer(buffermode); + // delete framebuffer and z-buffer + + //Call the display function + DisplayItFunc(GL_RENDER ); + + // show the rednered scene + glutSwapBuffers(); + +} + +/** + * This function is called when there is nothing to be done + * in the screen. + */ +void CallBackIdleFunc(void) +{ + +#ifdef _MSC_VER + Sleep(1); +#else + usleep(1000); +#endif + + if(glutGetWindow() != window_id) + glutSetWindow(window_id); + + // return as nothing has to be updated + if (haveToUpdate == 0) { + if (!fullydisplayed && !mousemoving && !keypressed && pointmode == 0 + ) { + glDrawBuffer(buffermode); + //Call the display function + DisplayItFunc(GL_RENDER, true); + } + return; + } + + // case: display is invalid - update it + if (haveToUpdate == 1) { + glutPostRedisplay(); + haveToUpdate = 0; + return; + } + // case: display is invalid - update it with all points +/* if (haveToUpdate == 7) { + showall = true; + glutPostRedisplay(); + haveToUpdate = 0; + return; + }*/ + + // case: camera angle is changed - instead of repeating code call Reshape, + // since these OpenGL commands are the same + if (haveToUpdate == 2) { + int viewport[4]; + glGetIntegerv(GL_VIEWPORT, viewport); + CallBackReshapeFunc(viewport[2],viewport[3]); + glutPostRedisplay(); + haveToUpdate = 0; + return; + } + + // case: animation + if(haveToUpdate == 3 ){ + frameNr += 1; + if(!(MetaMatrix.size() > 1 && frameNr < (int) MetaMatrix[1].size())){ + frameNr = 0; + haveToUpdate = 4; + return; + } + glutPostRedisplay(); + + if(save_animation){ + string filename = scan_dir + "animframe" + to_string(frameNr,5) + ".ppm"; + cout << "write " << filename << endl; + int tmpUpdate = haveToUpdate; + glWriteImagePPM(filename.c_str(), factor, 0); + haveToUpdate = tmpUpdate; + + string jpgname = scan_dir + "animframe" + to_string(frameNr,5) + ".jpg"; + string systemcall = "convert -quality 100 -type TrueColor " + filename + " " + jpgname; + // cout << systemcall << endl; + system(systemcall.c_str()); + systemcall = "rm " + filename; + system(systemcall.c_str()); + // cout << systemcall << endl; + // for f in *ppm ; do convert -quality 100 -type TrueColor $f `basename $f ppm`jpg; done + } + + } +#ifdef _MSC_VER + Sleep(300); + Sleep(anim_delay); +#else + usleep(anim_delay * 10000); +#endif + + if (haveToUpdate == 4) { // stop animation + frameNr = 0; // delete these lines if you want a 'continue' functionality. + haveToUpdate = 1; + } + + // case: path animation + if(haveToUpdate == 6){ + + if (path_iterator == 0) { + oldcamNavMode = cameraNavMouseMode; // remember state of old mousenav + cameraNavMouseMode = 0; + } + + // check if the user wants to animate both + // scan matching and the path at the same + //time + + // cout << "path_iterator: " << path_iterator << endl; + if(path_iterator < path_vectorX.size()){ // standard animation case + + // call the path animation function + // hide both the cameras and the path + show_cameras = 0; + show_path = 0; + // increase the iteration count + + path_iterator += 1; + // repaint the screen + glutPostRedisplay(); + + // save the animation + if(save_animation){ + string filename = scan_dir + "animframe" + to_string(path_iterator,5) + ".ppm"; + string jpgname = scan_dir + "animframe" + to_string(path_iterator,5) + ".jpg"; + cout << "written " << filename << " of " << path_vectorX.size() << " files" << endl; + glWriteImagePPM(filename.c_str(), factor, 0); + string systemcall = "convert -quality 100 " + filename + " " + jpgname; + system(systemcall.c_str()); + systemcall = "rm " + filename; + system(systemcall.c_str()); + haveToUpdate = 6; + + } + }else{ // animation has just ended + cameraNavMouseMode = oldcamNavMode; + show_cameras = 1; + show_path = 1; + haveToUpdate = 0; + } + } + +} + + +/** + * This function handles the rotation of the view + */ + +void update_view_rotate(int t) +{ + double view_rotate_button_quat[4]; + + // convert the rotate button matrix to quaternion + //Matrix4ToQuaternion(view_rotate_button, view_rotate_button_quat); + double mat[16]; + for (int i = 0; i < 16; i++) + mat[i] = view_rotate_button[i]; + Matrix4ToQuat(mat, view_rotate_button_quat); + + // normalize the quartenion + QuatNormalize(view_rotate_button_quat); + + // copy it to the global quartenion quat + memcpy(quat, view_rotate_button_quat, sizeof(quat)); +} + +/** + * This function handles the translation of view. + */ +void update_view_translation(int t) +{ + double obj_pos_button1[3]; + + for (int i = 0; i < 3; i++) { + if (fabs(obj_pos_button_old[i] - obj_pos_button[i]) > COMPARE_EPSILON) { + obj_pos_button1[i] = obj_pos_button[i] - obj_pos_button_old[i]; + obj_pos_button_old[i] = obj_pos_button[i]; + } else obj_pos_button1[i] = 0.0; + } + + X = X + obj_pos_button1[0] * view_rotate_button[0] + obj_pos_button1[1] * view_rotate_button[1] + obj_pos_button1[2] * view_rotate_button[2]; + Y = Y + obj_pos_button1[0] * view_rotate_button[4] + obj_pos_button1[1] * view_rotate_button[5] + obj_pos_button1[2] * view_rotate_button[6]; + Z = Z + obj_pos_button1[0] * view_rotate_button[8] + obj_pos_button1[1] * view_rotate_button[9] + obj_pos_button1[2] * view_rotate_button[10]; + +} + + +/** + * handles the animation button + * @param dummy not needed necessary for glui + */ +void startAnimation(int dummy) +{ + if (MetaMatrix.size() > 0) { + if (haveToUpdate != 3) { + haveToUpdate = 3; + } + else // stop animation + haveToUpdate = 4; + } +} + +/** + * calls the resetView function + * @param dummy not needed necessary for glui + */ +void callResetView(int dummy) +{ + if (showTopView) callTopView(dummy); + resetView(0); +} + +/** + * calls the resetView function + * @param dummy not needed necessary for glui + */ +void invertView(int dummy) +{ + invert = !invert; +} + +/** + * calls the topView function + * @param dummy not needed necessary for glui + */ +void callTopView(int dummy) +{ + topView(); + if (showTopView) { + rotButton->disable(); + cangle_spinner->disable(); + pzoom_spinner->enable(); + } else { + rotButton->enable(); + cangle_spinner->enable(); + pzoom_spinner->disable(); + } +} + +/** + * calls the cameraView function + * @param dummy not needed necessary for glui + */ +void callAddCamera(int dummy) +{ + Point campos(-X, -Y, -Z); + + // calculate lookat point + Point lookat; + Point up(0, 0, 0); + double tmat[16]; + for (int i =0;i<16;i++) tmat[i] = view_rotate_button[i]; + + lookat.x = -50*tmat[2] -X; + lookat.y = -50*tmat[6] -Y; + lookat.z = -50*tmat[10] -Z; + + up.x = 50*tmat[1] -X; + up.y = 50*tmat[5] -Y; + up.z = 50*tmat[9] -Z; + + cams.push_back(campos); + lookats.push_back(lookat); + ups.push_back(up); + + updateCamera(); + + // signal to repaint screen + haveToUpdate = 1; +} + +void selectPoints(int x, int y) { + + GLuint selectBuf[BUFSIZE]; + GLint hits; + GLint viewport[4]; + if (selectOrunselect) { + // set the matrix mode + glMatrixMode(GL_MODELVIEW); + // init modelview matrix + glLoadIdentity(); + + // do the model-transformation + if (cameraNavMouseMode == 1) { + glRotated( mouseRotX, 1, 0, 0); + glRotated( mouseRotY, 0, 1, 0); + glRotated( mouseRotZ, 0, 0, 1); + } else { + double t[3] = {0,0,0}; + double mat[16]; + QuatToMatrix4(quat, t, mat); + glMultMatrixd(mat); + + glGetFloatv(GL_MODELVIEW_MATRIX, view_rotate_button); + double rPT[3]; + Matrix4ToEuler(mat, rPT); + mouseRotX = deg(rPT[0]); + mouseRotY = deg(rPT[1]); + mouseRotZ = deg(rPT[2]); + } + updateControls(); + glTranslated(X, Y, Z); // move camera + + static sfloat *sp2 = 0; +/* for(int iterator = (int)octpts.size()-1; iterator >= 0; iterator--) { + if (!selected_points[iterator].empty()) sp2 = *selected_points[iterator].begin(); + + // selected_points[iterator].clear(); + }*/ + for(int iterator = (int)octpts.size()-1; iterator >= 0; iterator--) { + glPushMatrix(); + glMultMatrixd(MetaMatrix[iterator].back()); + calcRay(x, y, 1.0, 40000.0); + if (select_voxels) { + octpts[iterator]->selectRay(selected_points[iterator], selection_depth); + } else if (brush_size == 0) { + sfloat *sp = 0; + octpts[iterator]->selectRay(sp); + if (sp != 0) { + cout << "Selected point: " << sp[0] << " " << sp[1] << " " << sp[2] << endl; + + if (sp2 != 0) { + cout << "Distance to last point: " + << sqrt( sqr(sp2[0] - sp[0]) + sqr(sp2[1] - sp[1]) + sqr(sp2[2] - sp[2]) ) << endl; + } + sp2 = sp; + + selected_points[iterator].insert(sp); + } + } else { // select multiple points with a given brushsize + octpts[iterator]->selectRayBrushSize(selected_points[iterator], brush_size); + } + + glPopMatrix(); + } + + } else { + // unselect points + glGetIntegerv(GL_VIEWPORT, viewport); + + glSelectBuffer(BUFSIZE, selectBuf); + (void) glRenderMode(GL_SELECT); + + glInitNames(); + glPushName(0); + + glMatrixMode(GL_PROJECTION); + glPushMatrix(); + glLoadIdentity(); + +// gluPickMatrix((GLdouble)x, (GLdouble)(viewport[3]-y), 10.0, 10.0, viewport); + gluPickMatrix((GLdouble)x, (GLdouble)(viewport[3]-y), brush_size*2, brush_size*2, viewport); + gluPerspective(cangle, aspect, neardistance, fardistance); + glMatrixMode(GL_MODELVIEW); + DisplayItFunc(GL_SELECT); + + glMatrixMode(GL_PROJECTION); + glPopMatrix(); + glMatrixMode(GL_MODELVIEW); + + hits = glRenderMode(GL_RENDER); // get hits + ProcessHitsFunc(hits, selectBuf); + } + glPopMatrix(); + glutPostRedisplay(); +} + +void CallBackMouseFuncMoving(int button, int state, int x, int y) +{ + + if( state == GLUT_DOWN) { + mousemoving = true; + } else { + mousemoving = false; + } +} + + +/** + * This function is called after a mousebutton has been pressed. + */ +void CallBackMouseFunc(int button, int state, int x, int y) +{ + // Are we selecting points or moving the camera? + if(cameraNavMouseMode != 1) { // selecting points + if (state == GLUT_DOWN && (button == GLUT_LEFT_BUTTON || button == GLUT_RIGHT_BUTTON)) { + selectPoints(x,y); + } + } else { + if( state == GLUT_DOWN) { + + mouseNavX = x; + mouseNavY = y; + mouseNavButton = button; + + mousemoving = true; + } else { + mouseNavButton = -1; + mousemoving = false; + } + } +} + + +void moveCamera(double x, double y, double z, double rotx, double roty, double rotz) { + interruptDrawing(); + double mat[9]; + + double xr = M_PI * mouseRotX / 180; + double yr = M_PI * mouseRotY / 180; + double zr = M_PI * mouseRotZ / 180; + double c1,c2,c3,s1,s2,s3; + s1 = sin(xr); c1 = cos(xr); + s2 = sin(yr); c2 = cos(yr); + s3 = sin(zr); c3 = cos(zr); + mat[0] = c2*c3; + mat[1] = -c2*s3; + mat[2] = s2; + mat[3] = c1*s3+c3*s1*s2; + mat[4] = c1*c3-s1*s2*s3; + mat[5] = -c2*s1; + mat[6] = s1*s3-c1*c3*s2; + mat[7] = c1*s2*s3+c3*s1; + mat[8] = c1*c2; + + double transX, transY, transZ; + transX = transY = transZ = 0.0; + + mouseRotX += rotx; + mouseRotY -= roty; + mouseRotZ -= rotz; + + if (mouseRotX < -90) mouseRotX=-90; + else if (mouseRotX > 90) mouseRotX=90; + if (mouseRotY > 360) mouseRotY-=360; + else if (mouseRotY < 0) mouseRotY+=360; + if (mouseRotZ > 360) mouseRotZ-=360; + else if (mouseRotZ < 0) mouseRotZ+=360; + + transX += x * mat[0] + y * mat[3] + z * mat[6]; + transY += x * mat[1] + y * mat[4] + z * mat[7]; + transZ += x * mat[2] + y * mat[5] + z * mat[8]; + + + X += transX; + Y += transY; + Z += transZ; + haveToUpdate = 1; + +} + +void KeyboardFunc(int key, bool control, bool alt, bool shift) { + double stepsize = movementSpeed; + if (shift) stepsize *= 10.0; + if (control) stepsize *= 0.1; + + double rotsize = 0.2 * stepsize; + + switch (key) { + case 'w': + case 'W': + moveCamera(0,0,stepsize,0,0,0); + break; + case 'a': + case 'A': + moveCamera(stepsize,0,0,0,0,0); + break; + case 's': + case 'S': + moveCamera(0,0,-stepsize,0,0,0); + break; + case 'd': + case 'D': + moveCamera(-stepsize,0,0,0,0,0); + break; + case 'c': + case 'C': + moveCamera(0,stepsize,0,0,0,0); + break; + case 32: // WXK_SPACE + moveCamera(0,-stepsize,0,0,0,0); + break; + case 314: // WXK_LEFT + moveCamera(0,0,0,0,rotsize,0); + break; + case 315: // WXK_UP + moveCamera(0,0,0,rotsize,0,0); + break; + case 316: // WXK_RIGHT + moveCamera(0,0,0,0,-rotsize,0); + break; + case 317: // WXK_DOWN + moveCamera(0,0,0,-rotsize,0,0); + break; + case 'q': + case 'Q': + case 366: // WXK_PAGEUP + moveCamera(0,0,0,0,0,rotsize); + break; + case 'e': + case 'E': + case 367: // WXK_PAGEDOWN + moveCamera(0,0,0,0,0,-rotsize); + break; + case 'f': + if (!fullscreen) { + fullscreen = true; + glutFullScreen(); + } else { + fullscreen = false; + glutReshapeWindow(current_width, current_height); + } + break; + default: + break; + } +} + +void CallBackMouseMotionFunc(int x, int y) { + double deltaMouseX = x - mouseNavX; + double deltaMouseY = mouseNavY - y; + mouseNavX = x; + mouseNavY = y; + + if(cameraNavMouseMode == 1) { + if( mouseNavButton == GLUT_RIGHT_BUTTON){ + if ( showTopView ) { + deltaMouseX *= 5; + deltaMouseY *= 5; + } + deltaMouseX *= movementSpeed/10.0; // moving 10 pixels is equivalent to one key stroke + deltaMouseY *= movementSpeed/10.0; + moveCamera(deltaMouseX, deltaMouseY, 0, 0,0,0); + } else if( mouseNavButton == GLUT_MIDDLE_BUTTON ){ + if ( !showTopView ) { + deltaMouseY *= -5; + } + deltaMouseX *= movementSpeed/10.0; // moving 10 pixels is equivalent to one key stroke + deltaMouseY *= movementSpeed/10.0; + moveCamera(deltaMouseX, 0, deltaMouseY, 0,0,0); + } else if ( mouseNavButton == GLUT_LEFT_BUTTON ){ + moveCamera(0, 0, 0, deltaMouseY,deltaMouseX,0); + } else { + return; + } + } else { + selectPoints(x,y); + } +} + + + +void initScreenWindow() +{ + // init display + glutInitDisplayMode(GLUT_DEPTH | GLUT_RGBA | GLUT_DOUBLE); + + // define the window position and size + glutInitWindowPosition(START_X, START_Y); + glutInitWindowSize( START_WIDTH, START_HEIGHT ); + + // create window and append callback functions + window_id = glutCreateWindow("3D_Viewer"); + + glutDisplayFunc( CallBackDisplayFunc ); + glutReshapeFunc( CallBackReshapeFunc ); + + glutMouseFunc ( CallBackMouseFunc ); + glutKeyboardFunc ( CallBackKeyboardFunc); + glutKeyboardUpFunc ( CallBackKeyboardUpFunc); + glutMotionFunc ( CallBackMouseMotionFunc); + glutSpecialFunc ( CallBackSpecialFunc); + // glutEntryFunc ( CallBackEntryFunc); + GLUI_Master.set_glutReshapeFunc( CallBackReshapeFunc ); + GLUI_Master.set_glutIdleFunc( CallBackIdleFunc ); + + update_view_rotate(0); + glClearColor(0.0, 0.0, 0.0, 0.0); + // glClearColor(1.0, 1.0, 1.0, 1.0); +} + + +/* +++++++++-------------++++++++++++ + * NAME + * glDumpWindowPPM + * DESCRIPTION + * writes an ppm file of the window + * content + * PARAMETERS + * filename + * RESULT + * writes the framebuffer content + * to a ppm file ++++++++++-------------++++++++++++ */ +void glDumpWindowPPM(const char *filename, GLenum mode) +{ + int win_height, win_width; + int i,j,k,l; // Counter variables + GLubyte *buffer; // The GL Frame Buffer + unsigned char *ibuffer; // The PPM Output Buffer + ofstream fp; // The PPM File + + GLint viewport[4]; + glGetIntegerv(GL_VIEWPORT, viewport); + win_height = viewport[3]; + win_width = viewport[2]; + + // Allocate memory for the the frame buffer and output buffer + buffer = new GLubyte[win_width * win_height * RGBA]; + ibuffer = new unsigned char[win_width * win_height * RGB]; + + // Read window contents from GL frame buffer with glReadPixels + glFinish(); + glReadBuffer(buffermode); + glReadPixels(0, 0, win_width, win_height, + GL_RGBA, GL_UNSIGNED_BYTE, buffer); + + // Open the output file + fp.open(filename, ios::out); + + // Write a proper P6 PPM header + fp << "P6" << endl << "# CREATOR: 3D_Viewer by Andreas Nuechter, University of Osnabrueck" + << endl << win_width << " " << win_height << " " << UCHAR_MAX << endl; + + // Loop through the frame buffer data, writing to the PPM file. Be careful + // to account for the frame buffer having 4 bytes per pixel while the + // output file has 3 bytes per pixel + l = 0; + for (i = 0; i < win_height; i++) { // For each row + for (j = 0; j < win_width; j++) { // For each column + for (k = 0; k < RGB; k++) { // For each RGB component + //cout << (RGBA*((win_height-1-i)*win_width+j)+k) << endl; + ibuffer[l++] = (unsigned char) + *(buffer + (RGBA*((win_height-1-i)*win_width+j)+k)); + } // end RGB + } // end column + } // end row + + // to make a video do: + // for f in *ppm ; do convert -quality 100 $f `basename $f ppm`jpg; done + // mencoder "mf://*.jpg" -mf fps=10 -o test.avi -ovc lavc -lavcopts vcodec=msmpeg4v2:vbitrate=800 + // Write output buffer to the file */ + fp.write((const char*)ibuffer, sizeof(unsigned char) * (RGB * win_width * win_height)); + fp.close(); + fp.clear(); + delete [] buffer; + delete [] ibuffer; +} + +/* +++++++++-------------++++++++++++ + * NAME + * glDumpWindowPPM + * DESCRIPTION + * writes an ppm file of the window + * content + * size is scale times the window size + * PARAMETERS + * filename + * RESULT + * writes the framebuffer content + * to a ppm file ++++++++++-------------++++++++++++ */ +void glWriteImagePPM(const char *filename, int scale, GLenum mode) +{ + //if(!showTopView) { + int m,o,k; // Counter variables + // Get viewport parameters + double left, right, top, bottom; + double tmp = 1.0/tan(rad(cangle)/2.0); + + // Save camera parameters + GLdouble savedMatrix[16]; + glGetDoublev(GL_PROJECTION_MATRIX,savedMatrix); + GLdouble savedModel[16]; + glGetDoublev(GL_MODELVIEW_MATRIX,savedModel); + //glMatrixMode(GL_PROJECTION); + //glPushMatrix(); + //glMatrixMode(GL_MODELVIEW); + //glPushMatrix(); + top = 1.0/tmp; + bottom = -top; + right = (aspect)/tmp; + left = -right; + + double part_height, part_width; + if(!showTopView) { + part_width = (right - left)/(double)scale; + part_height = (top - bottom)/(double)scale; + } else { + part_height = (2*pzoom)/scale; + part_width = (2*pzoom*aspect)/scale; + cout << part_width << " " << part_height << endl; + } + // Calculate part parameters + GLint viewport[4]; + glGetIntegerv(GL_VIEWPORT, viewport); + int win_width = viewport[2]; + int win_height = viewport[3]; + int image_width = scale * win_width; + int image_height = scale * win_height; + + // Allocate memory for the the frame buffer and output buffer + GLubyte *buffer; // The GL Frame Buffer + unsigned char *ibuffer; // The PPM Output Buffer + buffer = new GLubyte[win_width * win_height * RGBA]; + ibuffer = new unsigned char[image_width * image_height * RGB]; + + smallfont = (scale==1); + double height; + if(!showTopView) { + height = bottom; + } else { + height = -pzoom; + } + for(int i = 0; i < scale; i++) { + double width; + if(!showTopView) { + width = left; + } else { + width = -pzoom*aspect; + } + for(int j = 0; j < scale; j++) { + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + label = false; + if(!showTopView) { + glFrustum(neardistance*width, neardistance*(width + part_width), + neardistance*(height), + neardistance*(height + part_height), + neardistance, fardistance); + glMatrixMode(GL_MODELVIEW); + if(i==0 && j==0) { + label = true; + } + DisplayItFunc(mode); + } else { + glOrtho( width, width + part_width, + height, height + part_height, + 1.0, 32000.0 ); + glMatrixMode(GL_MODELVIEW); + if(i==0 && j==0) { + label = true; + } + DisplayItFunc(mode); + } + + // Read window contents from GL frame buffer with glReadPixels + glFinish(); + glReadBuffer(buffermode); + glReadPixels(0, 0, win_width, win_height, GL_RGBA, GL_UNSIGNED_BYTE, buffer); + + // Loop through the frame buffer data, writing to the PPM file. Be careful + // to account for the frame buffer having 4 bytes per pixel while the + // output file has 3 bytes per pixel + // end row + for (m = 0; m < win_height; m++) { // For each row + for (o = 0; o < win_width; o++) { // For each column + for (k = 0; k < RGB; k++) { // For each RGB component + int l = (k+RGB*(image_width*((scale - 1 - i)*win_height + m) + j*win_width + o)); + ibuffer[l] = (unsigned char) *(buffer + (RGBA*((win_height-1-m)*win_width+o)+k)); + } // end RGB + } // end column + } + width += part_width; + } + height += part_height; + } + + // show the starting scene + + // Restore the original projection matrix + glMatrixMode(GL_PROJECTION); + glLoadMatrixd(savedMatrix); + glMatrixMode(GL_MODELVIEW); + glLoadMatrixd(savedModel); + // show the rednered scene + label = true; + smallfont = true; + haveToUpdate=2; + DisplayItFunc(mode); + + ofstream fp; // The PPM File + + // Open the output file + fp.open(filename, ios::out); + + // Write a proper P6 PPM header + fp << "P6" << endl << "# CREATOR: 3D_Viewer by Dorit Borrmann, Jacobs University Bremen gGmbH" + << endl << image_width << " " << image_height << " " << UCHAR_MAX << endl; + + // Write output buffer to the file + fp.write((const char*)ibuffer, sizeof(unsigned char) * (RGB * image_width * image_height)); + fp.close(); + fp.clear(); + delete [] buffer; + delete [] ibuffer; +} + +/** Reshape Function + * TODO: have to describe it. + * + */ +void CallBackReshapeFunc(int width, int height) +{ + if (!fullscreen) { + current_height = height; + current_width = width; + } + aspect = (double)width/(double)height; + if (!showTopView) { + // usage of the vsize of a structiewport + glViewport(0, 0, (GLint)width, (GLint)height); + + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + + // angle, aspect, near clip, far clip + // get matrix + gluPerspective(cangle, aspect, neardistance, fardistance); + + // now use modelview-matrix as current matrix + glMatrixMode(GL_MODELVIEW); + + haveToUpdate = 1; + + } else { + + // usage of the viewport + glViewport ( 0, 0, width, height); + + glMatrixMode ( GL_PROJECTION ); + glLoadIdentity (); + + // get matrix + glOrtho ( -aspect * pzoom, aspect * pzoom, + -1 * pzoom, pzoom, + 1.0, 32000.0 ); + + // now use modelview-matrix as current matrix + glMatrixMode(GL_MODELVIEW); + + haveToUpdate = 1; + + } + // glDepthMask(false); + glEnable(GL_BLEND); // TODO + glBlendFunc(GL_ONE, GL_ZERO); // TODO + // glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); // TODO + // glBlendFunc(GL_ONE, GL_ONE); // TODO + // glBlendFunc(GL_SRC_COLOR, GL_DST_COLOR); + glHint(GL_POINT_SMOOTH_HINT, GL_NICEST); + // TODO glDepthFunc(GL_LEQUAL); + glDepthFunc(GL_LESS); //TODO + glEnable(GL_DEPTH_TEST); + glEnable (GL_POINT_SMOOTH); +} + +/** + * Prints out which points were clicked on + */ +void ProcessHitsFunc(GLint hits, GLuint buffer[]) +{ + //cout << "SIZE " << selected_points[0].size() << endl; + //cout << "processing " << endl; + set names; + set unsel_points; + + GLuint *ptr, nr_names; + + ptr = (GLuint *)buffer; + + for(int i = 0 ; i < hits ; i++) { + nr_names = *ptr; + ptr+=3; // skip 2 z values + for(unsigned int j = 0;j < nr_names ; j++){ // iterate over all names + names.insert(*ptr); + + ptr++; + } + } + //cout << "number of names " << names.size() << endl; + if (names.empty()) return; + + int index = 0; + set::iterator nit = names.begin(); + // find the respective name + + for(int iterator = (int)octpts.size()-1; iterator >= 0; iterator--) { + // iterate over the selected points as in DrawPoints + for ( set::iterator it = selected_points[iterator].begin(); + it != selected_points[iterator].end(); it++) { + if (index == *nit) { // if the current index is the current name + unsel_points.insert(*it); + nit++; + } + if (nit == names.end()) goto Done; // break out of the loop + index++; + } + } + + Done: + + cout << "Erasing " << endl; + for (set::iterator it = unsel_points.begin(); + it != unsel_points.end(); it++) { // iterate to the index as indicated by the name *ptr + for(int iterator = (int)octpts.size()-1; iterator >= 0; iterator--) { // erase for all scans + selected_points[iterator].erase(*it); + } + } + + + cout << "processing done" << endl; + +} + + +//------------------------------------------------------------------ +/** + * This function deals with all our keyboard activities + */ + +void InterfaceFunc(unsigned char key){ + + strncpy(path_file_name, path_filename_edit->get_text(), 1024); + strncpy(pose_file_name, pose_filename_edit->get_text(), 1024); + return; +} + + +void CallBackSpecialFunc(int key , int x, int y) { + //KeyboardFunc(key + 214, false, false, false); + // return; +} + +/** + * Function drawRobotPath + * \brief This functions draws the path where the + * robot has travelled along while taking the scans + */ +void drawRobotPath(int dummy){ + // clear the camera list as we are going to add the cameras + // in the path where the robot travelled. + + // lets loop through the entire frame files to extract the + // total number of places where the robot has taken the scans from + for(unsigned int i = 0; i < MetaMatrix.size(); i++){ + //temp variable + double *temp; + // Now, lets go to the last of each frame file to + // extract the transformation matrix obtained + // after scan matching has been done. + glMultMatrixd(MetaMatrix[i].back()); + + // temp is final transformation matrix + temp = MetaMatrix[i].back(); + + Point campos(temp[12], temp[13] + 100, temp[14]); + + // calculate lookat point + Point lookat(0, 0, 50); + Point up(0, 50, 0); + double tmat[16]; + for (int i =0;i<16;i++) tmat[i] = temp[i]; + lookat.transform(tmat); + lookat.x = lookat.x ; + lookat.y = lookat.y + 100; + lookat.z = lookat.z ; + + up.transform(tmat); + up.x = up.x ; + up.y = up.y + 100; + up.z = up.z ; + + cams.push_back(campos); + lookats.push_back(lookat); + ups.push_back(up); + } + updateCamera(); + + // signal for the update of scene + haveToUpdate = 1; +} + +/** + * Calculates the positions of the interpolated camera path positions on the + * Nurbs path. There will be an equal number of intermediate positions between + * neighboring cameras. + */ +void calcInterpolatedCameras(vector vec1, vector vec2) { + NurbsPath::camRatio.clear(); + double distance = 0.0; + double dx, dy, dz; + for(unsigned int i=0;i vec1, vector vec2) +{ + double distance = 0.0; + double dx, dy, dz; + for(unsigned int i=0;i= 'A' && key <= 'Z') { + keymap[key+ ('a'-'A')] = false; + } + if (key >= 'a' && key <= 'z') { + keymap[key+ ('A'-'a')] = false; + } + + for (unsigned int i = 0; i < 256; i++) { + if (keymap[i]) { + keypressed = true; + return; + } + } + keypressed = false; +} + +void CallBackKeyboardFunc(unsigned char key, int x, int y) { + keymap[key] = true; + keypressed = true; + bool cmd,alt,shift; + cmd = glutGetModifiers() & GLUT_ACTIVE_CTRL; + alt = glutGetModifiers() & GLUT_ACTIVE_ALT; + shift = glutGetModifiers() & GLUT_ACTIVE_SHIFT; + if (cmd) { + key += 96; + } + KeyboardFunc(key, cmd, alt, shift); +} + +void mapColorToValue(int dummy) { + switch (listboxColorVal) { + case 0: + cm->setCurrentType(PointType::USE_HEIGHT); + break; + case 1: + cm->setCurrentType(PointType::USE_REFLECTANCE); + break; + case 2: + cm->setCurrentType(PointType::USE_AMPLITUDE); + break; + case 3: + cm->setCurrentType(PointType::USE_DEVIATION); + break; + case 4: + cm->setCurrentType(PointType::USE_TYPE); + break; + case 5: + cm->setCurrentType(PointType::USE_COLOR); + break; + default: + break; + }; + resetMinMax(0); +} + +void changeColorMap(int dummy) { + ColorMap c; + GreyMap gm; + HSVMap hsv; + SHSVMap shsv; + JetMap jm; + HotMap hot; + DiffMap diff; + + switch (listboxColorMapVal) { + case 0: + // TODO implement no color map + cm->setColorMap(c); + break; + case 1: + cm->setColorMap(gm); + break; + case 2: + cm->setColorMap(hsv); + break; + case 3: + cm->setColorMap(jm); + break; + case 4: + cm->setColorMap(hot); + break; + case 5: + cm->setColorMap(diff); + break; + case 6: + cm->setColorMap(shsv); + break; + default: + break; + } +} + +void minmaxChanged(int dummy) { + cm->setMinMax(mincolor_value, maxcolor_value); +} + +void resetMinMax(int dummy) { + mincolor_value = cm->getMin(); + maxcolor_value = cm->getMax(); + minmaxChanged(0); +} + +void setScansColored(int dummy) { + switch(colorScanVal) { + case 0: + cm->setMode(ScanColorManager::MODE_STATIC); + break; + case 1: + cm->setMode(ScanColorManager::MODE_COLOR_SCAN); + break; + case 2: + cm->setMode(ScanColorManager::MODE_POINT_COLOR); + break; + default: + break; + } +} + + +void changePointMode(int dummy) { + if (dummy == 0) { // always display + if (pointmode != 1) { // standard mode + pointmode = 1; + //never_box->set_int_val(0); + } else { + pointmode = 0; + } + } else if (dummy == 1) { // never display + if (pointmode != -1) { // standard mode + pointmode = -1; + //always_box->set_int_val(0); + } else { + pointmode = 0; + } + } + updatePointModeControls(); +} + + +void callCameraUpdate(int dummy) { + updateCamera(); +} + +void calcPointSequence(vector &sequence, int frameNr) { + sequence.clear(); + vector > dists; + double x,y,z; + + for (unsigned int i = 0; i < octpts.size(); i++) { + // stop at scans that don't have any frames associated with them + if(i >= MetaMatrix.size()) break; + // set usable frame + double* frame; + if((unsigned int)frameNr >= MetaMatrix[i].size()) { + // use last possible frame + frame = MetaMatrix[i].back(); + } else { + frame = MetaMatrix[i][frameNr]; + } + x = frame[12]; + y = frame[13]; + z = frame[14]; + dists.push_back( pair(sqr(X + x) + sqr(Y + y) + sqr(Z + z), i) ); + } + + sort( dists.begin(), dists.end()); + + for (unsigned int i = 0; i < dists.size(); i++) { + sequence.push_back( dists[i].second); + } +} diff --git a/.svn/pristine/3f/3ffdb910f1ebe94298e028b1190110ed5a29ac93.svn-base b/.svn/pristine/3f/3ffdb910f1ebe94298e028b1190110ed5a29ac93.svn-base new file mode 100644 index 0000000..1ad0f7a Binary files /dev/null and b/.svn/pristine/3f/3ffdb910f1ebe94298e028b1190110ed5a29ac93.svn-base differ diff --git a/.svn/pristine/40/40687bdabcd3547aa8dfa23a69594872d4d2c4aa.svn-base b/.svn/pristine/40/40687bdabcd3547aa8dfa23a69594872d4d2c4aa.svn-base new file mode 100644 index 0000000..775430c --- /dev/null +++ b/.svn/pristine/40/40687bdabcd3547aa8dfa23a69594872d4d2c4aa.svn-base @@ -0,0 +1,131 @@ +#ifndef _STDINC_H_ +#define _STDINC_H_ + +#include +#include + +#ifndef AND +#define AND && +#define OR || +#define NOT ! +#endif + +#ifndef true +#define true 1 +#define false 0 +#endif + +#ifndef Bool +typedef char Bool; +#endif + +#ifndef MAX +#define MAX(a,b) ((a)>(b) ? (a) : (b)) +#define MIN(a,b) ((a)<(b) ? (a) : (b)) +#endif + +#ifndef ABS +#define ABS(a) ((a)>=0 ? (a) : (-(a))) +#endif + +/********* TOGGLE_BOOL(boolean) : toggles values of 'boolean' ******/ +#ifndef TOGGLE_BOOL +#define TOGGLE_BOOL(a) ((a)=1-(a)) +#endif + + +/******************** bit comparisons and operations ***************/ +#ifndef TEST_BIT +#define TEST_BIT( x, b ) (((x) & (1<<(b))) != 0 ) +#define SET_BIT( x, b ) ((x) |= (1 << (b))) +#define CLEAR_BIT( x, b ) ((x) &= ~(1 << (b))) +#define TOGGLE_BIT( x, b ) ((TEST_BIT(x,b)) ?(CLEAR_BIT(x,b)):(SET_BIT(x,b))) +#endif + +#ifndef TEST_AND +#define TEST_AND( a, b ) ((a&b)==b) +#endif + + +#ifndef M_PI +#define M_PI 3.141592654 +#endif + +typedef char String[81]; + + +/*********** flush the stdout and stderr output streams *************/ +#ifndef flushout +#define flushout fflush(stdout) +#define flusherr fflush(stderr) +#endif + + +/********** Debugging functions *************************************/ +#ifndef error_return +#define error_return( c ); {fprintf(stderr,c);return;} +#endif + + +/************************* floating-point random ********************/ +#ifndef randf +#define randf() ((float) rand() / (float)RAND_MAX ) +#endif + +#ifndef SIGN +#define SIGN(x) ((x)>=0 ? 1 : -1) +#endif + + +/****************** conversion between degrees and radians **********/ +#ifndef DEG2RAD +#define DEG2RAD(x) ((x)/180.0*M_PI) +#define RAD2DEG(x) ((x)/M_PI*180.0) +#endif + + +/***************** clamp a value to some fixed interval *************/ +#ifndef CLAMP +#define CLAMP(x,lo,hi) {if ((x) < (lo)) {(x)=(lo);} else if((x) > (hi)) {(x)=(hi);}} +#endif + + + +/************ check if a value lies within a closed interval *********/ +#ifndef IN_BOUNDS +#define IN_BOUNDS( x, lo, hi ) ( (x) >= (lo) AND (x) <= (hi) ) +#endif + + +/************ check if a 2D point lies within a 2D box ***************/ +#ifndef PT_IN_BOX +#define PT_IN_BOX( x, y, lo_x, hi_x, lo_y, hi_y ) \ +( IN_BOUNDS(x,lo_x,hi_x) AND IN_BOUNDS(y,lo_y,hi_y) ) +#endif + + /****** check if value lies on proper side of another value *****/ + /*** if side is positive => proper side is positive, else negative **/ +#ifndef CHECK_PROPER_SIDE +#define CHECK_PROPER_SIDE(x,val,side) ((side) > 0 ? (x) > (val) : (x) < (val)) +#endif + + + /***** Small value when we want to do a comparison to 'close to zero' *****/ +#ifndef FUDGE +#define FUDGE .00001 +#endif + + + /******************* swap two values, using a temp variable *********/ +#ifndef SWAP2 +#define SWAP2(a,b,t) {t=a;a=b;b=t;} +#endif + +#define VEC3_TO_ARRAY(v,a) a[0]=v[0], a[1]=v[1], a[2]=v[2] + +#endif /* _STDINC_H_ */ + + + + + diff --git a/.svn/pristine/40/40986fa5eb03ba3679675bb0c5c956a8bd67fd57.svn-base b/.svn/pristine/40/40986fa5eb03ba3679675bb0c5c956a8bd67fd57.svn-base new file mode 100644 index 0000000..f24dc7c --- /dev/null +++ b/.svn/pristine/40/40986fa5eb03ba3679675bb0c5c956a8bd67fd57.svn-base @@ -0,0 +1,113 @@ +/** + * @file + * @brief IO filtering class for ScanIO to discard unwanted points. + * + * @author Thomas Escher + */ + +#ifndef POINT_FILTER_H +#define POINT_FILTER_H + +#include +#include + +class Checker; + + +/** + * Flexible filtering class for parsing a set of points. + * + * This class is configurable with parameters for range and height and can be transferred via the use of a parameter string. + * Use on a point set via repeated use of the check function, which creates the internal Checker structures once for each change to the parameters. The amount of tests is held as minimal as possible. + */ +class PointFilter +{ +public: + // Default empty constructor + PointFilter(); + //! Deserialization constructor, forms parameters back from a string given by getParams + PointFilter(const std::string& params); + ~PointFilter(); + + PointFilter& setRange(float maxDist, float minDist); + PointFilter& setHeight(double top, double bottom); + + //! Serialization function to convert it into a string, usable in the constructor + std::string getParams(); + + //! Check a point, returning success if all contained Checker functions accept that point (implemented in .icc) + inline bool check(double* point); +private: + //! Storage for parameter keys and values + std::map m_params; + + //! If either not created yet or parameters get changed, this flag will cause check to create a new Checker chain + bool m_changed; + + //! created in the first check call with the changed flag set + Checker* m_checker; + + //! Allocation of the checkers + void createCheckers(); + + // factory magic + template friend struct CheckerFactory; + static std::map factory; +}; + +class Checker { +public: + Checker(); + ~Checker(); + + //! Testing function + virtual bool test(double* point) = 0; + + //! Next test in chain + Checker* m_next; +}; + +//! Factory integrating the create-function and adding it to the lookup map in an easy template +template +struct CheckerFactory { + //! Instanciate in the source code with the to be created class as template argument and associated key string as constructor argument + CheckerFactory(const std::string& key) { PointFilter::factory[key] = CheckerFactory::create; } + //! Automated create function, safely returning a nullpointer if the constructor throws for unwanted values + static Checker* create(const std::string& value) { try { return new T(value); } catch(...) { return 0; } } +}; + +class CheckerRangeMax : public Checker { +public: + CheckerRangeMax(const std::string& value); + virtual bool test(double* point); +private: + double m_max; +}; + +class CheckerRangeMin : public Checker { +public: + CheckerRangeMin(const std::string& value); + virtual bool test(double* point); +private: + double m_min; +}; + +class CheckerHeightTop : public Checker { +public: + CheckerHeightTop(const std::string& value); + virtual bool test(double* point); +private: + double m_top; +}; + +class CheckerHeightBottom : public Checker { +public: + CheckerHeightBottom(const std::string& value); + virtual bool test(double* point); +private: + double m_bottom; +}; + +#include "scanserver/pointfilter.icc" + +#endif //POINT_FILTER_H diff --git a/.svn/pristine/40/40aee02ab167e7280662d92e35075af3bb8d6552.svn-base b/.svn/pristine/40/40aee02ab167e7280662d92e35075af3bb8d6552.svn-base new file mode 100644 index 0000000..0b1bd58 --- /dev/null +++ b/.svn/pristine/40/40aee02ab167e7280662d92e35075af3bb8d6552.svn-base @@ -0,0 +1,134 @@ +#ifndef _CS_H +#define _CS_H + +#ifdef MATLAB_MEX_FILE +#include "mex.h" +#endif +#define CS_VER 1 /* CSparse Version 1.2.0 */ +#define CS_SUBVER 2 +#define CS_SUBSUB 0 +#define CS_DATE "Mar 6, 2006" /* CSparse release date */ +#define CS_COPYRIGHT "Copyright (c) Timothy A. Davis, 2006" + +/* --- primary CSparse routines and data structures ------------------------- */ +typedef struct cs_sparse /* matrix in compressed-column or triplet form */ +{ + int nzmax ; /* maximum number of entries */ + int m ; /* number of rows */ + int n ; /* number of columns */ + int *p ; /* column pointers (size n+1) or col indices (size nzmax) */ + int *i ; /* row indices, size nzmax */ + double *x ; /* numerical values, size nzmax */ + int nz ; /* # of entries in triplet matrix, -1 for compressed-col */ +} cs ; + +cs *cs_add (const cs *A, const cs *B, double alpha, double beta) ; +int cs_cholsol (const cs *A, double *b, int order) ; +int cs_dupl (cs *A) ; +int cs_entry (cs *T, int i, int j, double x) ; +int cs_lusol (const cs *A, double *b, int order, double tol) ; +int cs_gaxpy (const cs *A, const double *x, double *y) ; +cs *cs_multiply (const cs *A, const cs *B) ; +int cs_qrsol (const cs *A, double *b, int order) ; +cs *cs_transpose (const cs *A, int values) ; +cs *cs_triplet (const cs *T) ; +double cs_norm (const cs *A) ; +int cs_print (const cs *A, int brief) ; +cs *cs_load (FILE *f) ; +/* utilities */ +void *cs_calloc (int n, size_t size) ; +void *cs_free (void *p) ; +void *cs_realloc (void *p, int n, size_t size, int *ok) ; +cs *cs_spalloc (int m, int n, int nzmax, int values, int triplet) ; +cs *cs_spfree (cs *A) ; +int cs_sprealloc (cs *A, int nzmax) ; +void *cs_malloc (int n, size_t size) ; + +/* --- secondary CSparse routines and data structures ----------------------- */ +typedef struct cs_symbolic /* symbolic Cholesky, LU, or QR analysis */ +{ + int *Pinv ; /* inverse row perm. for QR, fill red. perm for Chol */ + int *Q ; /* fill-reducing column permutation for LU and QR */ + int *parent ; /* elimination tree for Cholesky and QR */ + int *cp ; /* column pointers for Cholesky, row counts for QR */ + int m2 ; /* # of rows for QR, after adding fictitious rows */ + int lnz ; /* # entries in L for LU or Cholesky; in V for QR */ + int unz ; /* # entries in U for LU; in R for QR */ +} css ; + +typedef struct cs_numeric /* numeric Cholesky, LU, or QR factorization */ +{ + cs *L ; /* L for LU and Cholesky, V for QR */ + cs *U ; /* U for LU, R for QR, not used for Cholesky */ + int *Pinv ; /* partial pivoting for LU */ + double *B ; /* beta [0..n-1] for QR */ +} csn ; + +typedef struct cs_dmperm_results /* cs_dmperm or cs_scc output */ +{ + int *P ; /* size m, row permutation */ + int *Q ; /* size n, column permutation */ + int *R ; /* size nb+1, block k is rows R[k] to R[k+1]-1 in A(P,Q) */ + int *S ; /* size nb+1, block k is cols S[k] to S[k+1]-1 in A(P,Q) */ + int nb ; /* # of blocks in fine dmperm decomposition */ + int rr [5] ; /* coarse row decomposition */ + int cc [5] ; /* coarse column decomposition */ +} csd ; + +int *cs_amd (const cs *A, int order) ; +csn *cs_chol (const cs *A, const css *S) ; +csd *cs_dmperm (const cs *A) ; +int cs_droptol (cs *A, double tol) ; +int cs_dropzeros (cs *A) ; +int cs_happly (const cs *V, int i, double beta, double *x) ; +int cs_ipvec (int n, const int *P, const double *b, double *x) ; +int cs_lsolve (const cs *L, double *x) ; +int cs_ltsolve (const cs *L, double *x) ; +csn *cs_lu (const cs *A, const css *S, double tol) ; +cs *cs_permute (const cs *A, const int *P, const int *Q, int values) ; +int *cs_pinv (const int *P, int n) ; +int cs_pvec (int n, const int *P, const double *b, double *x) ; +csn *cs_qr (const cs *A, const css *S) ; +css *cs_schol (const cs *A, int order) ; +css *cs_sqr (const cs *A, int order, int qr) ; +cs *cs_symperm (const cs *A, const int *Pinv, int values) ; +int cs_usolve (const cs *U, double *x) ; +int cs_utsolve (const cs *U, double *x) ; +int cs_updown (cs *L, int sigma, const cs *C, const int *parent) ; +/* utilities */ +css *cs_sfree (css *S) ; +csn *cs_nfree (csn *N) ; +csd *cs_dfree (csd *D) ; + +/* --- tertiary CSparse routines -------------------------------------------- */ +int *cs_counts (const cs *A, const int *parent, const int *post, int ata) ; +int cs_cumsum (int *p, int *c, int n) ; +int cs_dfs (int j, cs *L, int top, int *xi, int *pstack, const int *Pinv) ; +int *cs_etree (const cs *A, int ata) ; +int cs_fkeep (cs *A, int (*fkeep) (int, int, double, void *), void *other) ; +double cs_house (double *x, double *beta, int n) ; +int *cs_maxtrans (const cs *A) ; +int *cs_post (int n, const int *parent) ; +int cs_reach (cs *L, const cs *B, int k, int *xi, const int *Pinv) ; +csd *cs_scc (cs *A) ; +int cs_scatter (const cs *A, int j, double beta, int *w, double *x, int mark, + cs *C, int nz) ; +int cs_splsolve (cs *L, const cs *B, int k, int *xi, double *x, + const int *Pinv) ; +int cs_tdfs (int j, int k, int *head, const int *next, int *post, + int *stack) ; +/* utilities */ +csd *cs_dalloc (int m, int n) ; +cs *cs_done (cs *C, void *w, void *x, int ok) ; +int *cs_idone (int *p, cs *C, void *w, int ok) ; +csn *cs_ndone (csn *N, cs *C, void *w, void *x, int ok) ; +csd *cs_ddone (csd *D, cs *C, void *w, int ok) ; + +#define CS_MAX(a,b) (((a) > (b)) ? (a) : (b)) +#define CS_MIN(a,b) (((a) < (b)) ? (a) : (b)) +#define CS_FLIP(i) (-(i)-2) +#define CS_UNFLIP(i) (((i) < 0) ? CS_FLIP(i) : (i)) +#define CS_MARKED(Ap,j) (Ap [j] < 0) +#define CS_MARK(Ap,j) { Ap [j] = CS_FLIP (Ap [j]) ; } +#define CS_OVERFLOW(n,size) (n > INT_MAX / (int) size) +#endif diff --git a/.svn/pristine/41/41122d51ede4342839e8b4413ca5955411e82a2c.svn-base b/.svn/pristine/41/41122d51ede4342839e8b4413ca5955411e82a2c.svn-base new file mode 100644 index 0000000..5ffabf1 --- /dev/null +++ b/.svn/pristine/41/41122d51ede4342839e8b4413ca5955411e82a2c.svn-base @@ -0,0 +1,230 @@ +/* + * metrics implementation + * + * Copyright (C) Thomas Escher, Kai Lingemann + * + * Released under the GPL version 3. + * + */ + +#include "scanserver/metrics.h" + +#ifdef _MSC_VER +LARGE_INTEGER TimeMetric::frequency; +bool TimeMetric::init = false; +#endif + +TimeMetric::TimeMetric(unsigned int reserve) : + Metric(reserve) +{ +#ifdef _MSC_VER + if(!TimeMetric::init) { + QueryPerformanceFrequency(&TimeMetric::frequency); + TimeMetric::init = true; + } +#endif +} + +Timer TimeMetric::start() +{ + Timer start; +#ifdef _MSC_VER + QueryPerformanceCounter(&start); +#else + gettimeofday(&start, 0); +#endif + return start; +} + +void TimeMetric::end(Timer& start) +{ + double delta; +#ifdef _MSC_VER + LARGE_INTEGER end; + QueryPerformanceCounter(&end); + delta = (double)(end.QuadPart - start.QuadPart) / frequency.QuadPart; +#else + timeval end; + gettimeofday(&end, 0); + delta = (double)(end.tv_sec - start.tv_sec) + + (double)(end.tv_usec - start.tv_usec) / 1000000.0; +#endif + commit(delta); +} + +CounterMetric::CounterMetric(unsigned int reserve) : + Metric(reserve) +{ +} + +void CounterMetric::add(unsigned long long value) +{ + commit(value); +} + + + +#include +using std::cout; +using std::endl; + +TimeMetric ServerMetric::scan_loading, ServerMetric::cacheio_write_time, ServerMetric::cacheio_read_time; +CounterMetric ServerMetric::cacheio_write_size, ServerMetric::cacheio_read_size; + +TimeMetric + ClientMetric::read_scan_time, + ClientMetric::scan_load_time, + ClientMetric::calc_reduced_points_time, + ClientMetric::transform_time(100000), // avoid resizing in multithreaded transform calls by graph-slam + ClientMetric::copy_original_time, + ClientMetric::create_tree_time, + ClientMetric::on_demand_reduction_time, + ClientMetric::create_metatree_time, + ClientMetric::add_frames_time, + ClientMetric::matching_time, + ClientMetric::clientinterface_time, + ClientMetric::cache_miss_time, + ClientMetric::allocate_time, + ClientMetric::frames_time; + +void printTime(const TimeMetric& m, unsigned int indentation = 1) +{ + for(unsigned int i = 1; i <= indentation; ++i) { + cout << " "; + } + cout << m.sum() << "s"; + if(m.size() != 1) { + cout << " (" << m.average() << "s average of " << m.size() << " calls)"; + } + cout << endl; +} + +void ServerMetric::print() +{ + cout << "= Metric server information =" << endl + << "Time spent for loading scans (in ScanHandler::load):" << endl + << " Amount: " << scan_loading.size() << endl + << " Time: " << scan_loading.sum() << "s (" << scan_loading.average() << "s avg.)" << endl + << endl + << "CacheIO reads:" << endl + << " Amount: " << cacheio_read_size.size() << endl + << " Size: " << cacheio_read_size.sum()/1024/1024 << "MB (" << cacheio_read_size.average()/1024 << "KB avg.)" << endl + << " Time: " << cacheio_read_time.sum() << "s (" << cacheio_read_time.average() << "s avg.)" << endl + << endl + << "CacheIO writes:" << endl + << " Amount: " << cacheio_write_size.size() << endl + << " Size: " << cacheio_write_size.sum()/1024/1024 << "MB (" << cacheio_write_size.average()/1024 << "KB avg.)" << endl + << " Time: " << cacheio_write_time.sum() << "s (" << cacheio_write_time.average() << "s avg.)" << endl + << "= Resetting metric information =" << endl + << endl; + scan_loading.reset(); + cacheio_write_time.reset(); + cacheio_read_time.reset(); + cacheio_write_size.reset(); + cacheio_read_size.reset(); +} + +void ClientMetric::print() +{ + cout << "= Metric client information =" << endl; + + // ClientInterface specific ones +#ifdef WITH_SCANSERVER + cout << "Time for all ClientInterface messages:" << endl; + printTime(clientinterface_time); + + cout << " [" << endl; + + cout << " Time for cache misses:" << endl; + printTime(cache_miss_time, 3); + + cout << " Time for cache allocations:" << endl; + printTime(allocate_time, 3); + + // TODO: invalidations too? + + cout << " Time for frame calls:" << endl; + printTime(frames_time, 3); + + cout << " ]" << endl; + + cout << endl; +#endif //WITH_SCANSERVER + + // Scan: Loading, reducing and SearchTree related ones +#ifdef WITH_SCANSERVER + // barebone preparation and parameter setting + if(read_scan_time.size()) { + cout << "Time for loading directory:" << endl; + printTime(read_scan_time); + } + + // getXYZ in calcReducedPoints + if(scan_load_time.size()) { + cout << "Time for loading scans:" << endl; + printTime(scan_load_time); + } + +#else //WITH_SCANSERVER + // load all scans + if(read_scan_time.size()) { + cout << "Time for loading directory and scans:" << endl; + printTime(read_scan_time); + } +#endif //WITH_SCANSERVER + + if(calc_reduced_points_time.size()) { + cout << "Time for reducing scans:" << endl; + printTime(calc_reduced_points_time); + } + + // old: red_lum for SearchTree, duplicating all contained reduced points and copying them into red_lum again for MetaScans + // new: caching reduced points for saving time + if(copy_original_time.size()) { + cout << "Time for copying reduced points:" << endl; + printTime(copy_original_time); + } + + if(create_tree_time.size()) { + cout << "Time for creating SearchTree:" << endl; + printTime(create_tree_time); + } + +#ifdef WITH_SCANSERVER + // only for new, replaces copying reduced points from old + if(create_metatree_time.size()) { + cout << "Time for creating meta-SearchTree:" << endl; + printTime(create_metatree_time); + } + + if(on_demand_reduction_time.size()) { + cout << "Time in on-demand reduction [reduction+transform+copy / copy]:" << endl; + printTime(on_demand_reduction_time); + } +#endif //WITH_SCANSERVER + + if(transform_time.size()) { + cout << "Time for transform:" << endl; + printTime(transform_time); + } + + // SLAM + if(matching_time.size()) { + cout << endl; + cout << "Matching time:" << endl; + printTime(matching_time); +#ifdef WITH_SCANSERVER + cout << "Corrected matching time without on-demand loading, reduction and tree creation:" << endl; + // match - scan loading in calcReducedPoints - calcReducedPoints - transform (irrelevant) - copy to original - createTree + cout << " " << + matching_time.sum() + - scan_load_time.sum() + - calc_reduced_points_time.sum() + - copy_original_time.sum() + - create_tree_time.sum() + << "s" << endl; +#endif //WITH_SCANSERVER + } + + cout << endl; +} diff --git a/.svn/pristine/41/4169f33554b2bb5680b159248104bcb92c6dcb8b.svn-base b/.svn/pristine/41/4169f33554b2bb5680b159248104bcb92c6dcb8b.svn-base new file mode 100644 index 0000000..68ce618 --- /dev/null +++ b/.svn/pristine/41/4169f33554b2bb5680b159248104bcb92c6dcb8b.svn-base @@ -0,0 +1,189 @@ +//$$newmatrm.cpp rectangular matrix operations + +// Copyright (C) 1991,2,3,4: R B Davies + + + +#include "newmat.h" +#include "newmatrm.h" + +#ifdef use_namespace +namespace NEWMAT { +#endif + +#ifdef DO_REPORT +#define REPORT { static ExeCounter ExeCount(__LINE__,12); ++ExeCount; } +#else +#define REPORT {} +#endif + + +// operations on rectangular matrices + + +void RectMatrixRow::Reset (const Matrix& M, int row, int skip, int length) +{ + REPORT + RectMatrixRowCol::Reset + ( M.Store()+row*M.Ncols()+skip, length, 1, M.Ncols() ); +} + +void RectMatrixRow::Reset (const Matrix& M, int row) +{ + REPORT + RectMatrixRowCol::Reset( M.Store()+row*M.Ncols(), M.Ncols(), 1, M.Ncols() ); +} + +void RectMatrixCol::Reset (const Matrix& M, int skip, int col, int length) +{ + REPORT + RectMatrixRowCol::Reset + ( M.Store()+col+skip*M.Ncols(), length, M.Ncols(), 1 ); +} + +void RectMatrixCol::Reset (const Matrix& M, int col) +{ + REPORT + RectMatrixRowCol::Reset( M.Store()+col, M.Nrows(), M.Ncols(), 1 ); +} + + +Real RectMatrixRowCol::SumSquare() const +{ + REPORT + long_Real sum = 0.0; int i = n; Real* s = store; int d = spacing; + // while (i--) { sum += (long_Real)*s * *s; s += d; } + if (i) for(;;) + { sum += (long_Real)*s * *s; if (!(--i)) break; s += d; } + return (Real)sum; +} + +Real RectMatrixRowCol::operator*(const RectMatrixRowCol& rmrc) const +{ + REPORT + long_Real sum = 0.0; int i = n; + Real* s = store; int d = spacing; + Real* s1 = rmrc.store; int d1 = rmrc.spacing; + if (i!=rmrc.n) + { + Tracer tr("newmatrm"); + Throw(InternalException("Dimensions differ in *")); + } + // while (i--) { sum += (long_Real)*s * *s1; s += d; s1 += d1; } + if (i) for(;;) + { sum += (long_Real)*s * *s1; if (!(--i)) break; s += d; s1 += d1; } + return (Real)sum; +} + +void RectMatrixRowCol::AddScaled(const RectMatrixRowCol& rmrc, Real r) +{ + REPORT + int i = n; Real* s = store; int d = spacing; + Real* s1 = rmrc.store; int d1 = rmrc.spacing; + if (i!=rmrc.n) + { + Tracer tr("newmatrm"); + Throw(InternalException("Dimensions differ in AddScaled")); + } + // while (i--) { *s += *s1 * r; s += d; s1 += d1; } + if (i) for (;;) + { *s += *s1 * r; if (!(--i)) break; s += d; s1 += d1; } +} + +void RectMatrixRowCol::Divide(const RectMatrixRowCol& rmrc, Real r) +{ + REPORT + int i = n; Real* s = store; int d = spacing; + Real* s1 = rmrc.store; int d1 = rmrc.spacing; + if (i!=rmrc.n) + { + Tracer tr("newmatrm"); + Throw(InternalException("Dimensions differ in Divide")); + } + // while (i--) { *s = *s1 / r; s += d; s1 += d1; } + if (i) for (;;) { *s = *s1 / r; if (!(--i)) break; s += d; s1 += d1; } +} + +void RectMatrixRowCol::Divide(Real r) +{ + REPORT + int i = n; Real* s = store; int d = spacing; + // while (i--) { *s /= r; s += d; } + if (i) for (;;) { *s /= r; if (!(--i)) break; s += d; } +} + +void RectMatrixRowCol::Negate() +{ + REPORT + int i = n; Real* s = store; int d = spacing; + // while (i--) { *s = - *s; s += d; } + if (i) for (;;) { *s = - *s; if (!(--i)) break; s += d; } +} + +void RectMatrixRowCol::Zero() +{ + REPORT + int i = n; Real* s = store; int d = spacing; + // while (i--) { *s = 0.0; s += d; } + if (i) for (;;) { *s = 0.0; if (!(--i)) break; s += d; } +} + +void ComplexScale(RectMatrixCol& U, RectMatrixCol& V, Real x, Real y) +{ + REPORT + int n = U.n; + if (n != V.n) + { + Tracer tr("newmatrm"); + Throw(InternalException("Dimensions differ in ComplexScale")); + } + Real* u = U.store; Real* v = V.store; + int su = U.spacing; int sv = V.spacing; + //while (n--) + //{ + // Real z = *u * x - *v * y; *v = *u * y + *v * x; *u = z; + // u += su; v += sv; + //} + if (n) for (;;) + { + Real z = *u * x - *v * y; *v = *u * y + *v * x; *u = z; + if (!(--n)) break; + u += su; v += sv; + } +} + +void Rotate(RectMatrixCol& U, RectMatrixCol& V, Real tau, Real s) +{ + REPORT + // (U, V) = (U, V) * (c, s) where tau = s/(1+c), c^2 + s^2 = 1 + int n = U.n; + if (n != V.n) + { + Tracer tr("newmatrm"); + Throw(InternalException("Dimensions differ in Rotate")); + } + Real* u = U.store; Real* v = V.store; + int su = U.spacing; int sv = V.spacing; + //while (n--) + //{ + // Real zu = *u; Real zv = *v; + // *u -= s * (zv + zu * tau); *v += s * (zu - zv * tau); + // u += su; v += sv; + //} + if (n) for(;;) + { + Real zu = *u; Real zv = *v; + *u -= s * (zv + zu * tau); *v += s * (zu - zv * tau); + if (!(--n)) break; + u += su; v += sv; + } +} + + + + +#ifdef use_namespace +} +#endif + + diff --git a/.svn/pristine/41/417f60bd08cbdf9dd3e55ddbfb2d155f195e384b.svn-base b/.svn/pristine/41/417f60bd08cbdf9dd3e55ddbfb2d155f195e384b.svn-base new file mode 100644 index 0000000..9be0ba0 --- /dev/null +++ b/.svn/pristine/41/417f60bd08cbdf9dd3e55ddbfb2d155f195e384b.svn-base @@ -0,0 +1,799 @@ +/* + * toImage implementation + * + * Copyright (C) Dorit Borrmann + * + * Released under the GPL version 3. + * + */ + +/** + * @file + * @author Dorit Borrmann. Institute of Computer Science, University of Osnabrueck, Germany. +*/ +#include +#include +#ifndef _MSC_VER +#include +#else +#include "XGetopt.h" +#endif + +#include +using std::ofstream; +using std::flush; +using std::cout; +using std::string; +using std::cerr; +using std::endl; +#include + +#ifdef _MSC_VER +#define strcasecmp _stricmp +#define strncasecmp _strnicmp +#include +#include +#else +#include +#include +#include +#include +#endif + +#include "shapes/image.h" +#include "shapes/hough.h" +#include "shapes/ppair.h" +#include "shapes/quadtree.h" +#include +#include "newmat/newmatap.h" +using namespace NEWMAT; +//#include "shapes/convexplane.h" + +#define MAX_PARALLEL_ANGLE 10.0 +#define MAX_EQUAL_DIST 10.0 +#define MIN_PARALLEL_DIST 50.0 +#define MIN_RIGHT_ANGLE 80.0 + +#define NUM_ITERS 1 + +void usage(char* prog) { +#ifndef _MSC_VER + const string bold("\033[1m"); + const string normal("\033[m"); +#else + const string bold(""); + const string normal(""); +#endif + cout << endl + << bold << "USAGE " << normal << endl + << " " << prog << " [options] directory" << endl << endl; + cout << bold << "OPTIONS" << normal << endl + + << bold << " -f" << normal << " F, " << bold << "--format=" << normal << "F" << endl + << " using shared library F for input" << endl + << " (chose F from {uos, uos_map, uos_rgb, uos_frames, uos_map_frames, old, rts, rts_map, ifp, riegl_txt, riegl_rgb, riegl_bin, zahn, ply})" << endl + << endl + << bold << " -m" << normal << " NR, " << bold << "--max=" << normal << "NR" << endl + << " neglegt all data points with a distance larger than NR 'units'" << endl + << endl + << bold << " -M" << normal << " NR, " << bold << "--min=" << normal << "NR" << endl + << " neglegt all data points with a distance smaller than NR 'units'" << endl + << endl + << bold << " -p" << normal << " P, " << bold << "--plane=" << normal << "P" << endl + << " using algorithm P for plane detection" << endl + << " (chose P from {rht, sht, pht, ppht, apht})" << endl + << endl + << bold << " -r" << normal << " NR, " << bold << "--reduce=" << normal << "NR" << endl + << " turns on octree based point reduction (voxel size=)" << endl + << endl + << bold << " -s" << normal << " NR, " << bold << "--start=" << normal << "NR" << endl + << " start at scan NR (i.e., neglects the first NR scans)" << endl + << " [ATTENTION: counting naturally starts with 0]" << endl + << endl + << endl << endl; + + cout << bold << "EXAMPLES " << normal << endl + << " " << prog << " -m 500 -r 5 dat" << endl + << " " << prog << " --max=5000 -r 10.2 dat" << endl + << " " << prog << " -s 2 -e 10 -r dat" << endl << endl; + exit(1); + +} + +int parseArgs(int argc, char **argv, string &dir, double &red, int &start, int + &maxDist, int&minDist, int &octree, IOType &type, bool &quiet) { + + bool reduced = false; + int c; + // from unistd.h: + extern char *optarg; + extern int optind; + + /* options descriptor */ + // 0: no arguments, 1: required argument, 2: optional argument + static struct option longopts[] = { + { "format", required_argument, 0, 'f' }, + { "max", required_argument, 0, 'm' }, + { "min", required_argument, 0, 'M' }, + { "start", required_argument, 0, 's' }, + { "reduce", required_argument, 0, 'r' }, + { "quit", no_argument, 0, 'q' }, + { "octree", optional_argument, 0, 'O' }, + { 0, 0, 0, 0} // needed, cf. getopt.h + }; + + cout << endl; + while ((c = getopt_long(argc, argv, "f:r:s:e:m:M:p:Oq", longopts, NULL)) != -1) + switch (c) + { + case 'r': + red = atof(optarg); + reduced = true; + break; + case 's': + start = atoi(optarg); + if (start < 0) { cerr << "Error: Cannot start at a negative scan number.\n"; exit(1); } + break; + case 'f': + try { + type = formatname_to_io_type(optarg); + } catch (...) { // runtime_error + cerr << "Format " << optarg << " unknown." << endl; + abort(); + } + break; + case 'q': + quiet = true; + break; + case 'm': + maxDist = atoi(optarg); + break; + case 'O': + if (optarg) { + octree = atoi(optarg); + } else { + octree = 1; + } + break; + case 'M': + minDist = atoi(optarg); + break; + case '?': + usage(argv[0]); + return 1; + default: + abort (); + } + + if (optind != argc-1) { + cerr << "\n*** Directory missing ***" << endl; + usage(argv[0]); + } + dir = argv[optind]; + +#ifndef _MSC_VER + if (dir[dir.length()-1] != '/') dir = dir + "/"; +#else + if (dir[dir.length()-1] != '\\') dir = dir + "\\"; +#endif + + return 0; +} + +void getPPairs(vector &allPlanes, PPair **ppairs) { + for (unsigned int i = 0; i < allPlanes.size(); i++) { + for (unsigned int j = i+1; j < allPlanes.size(); j++) { + PPair pair(allPlanes[i], allPlanes[j]); + // parallel or equal planes + if (deg(pair.angle) < MAX_PARALLEL_ANGLE) { + // planes are equal + if (pair.plane_distance < MAX_EQUAL_DIST) { + pair.type = PPair::EQUAL; + // planes are parallel + } else {//if (pair.plane_distance > MIN_PARALLEL_DIST) { + pair.type = PPair::PARALLEL; + // planes are nothing + } + // plane is perpendicular + } else if (deg(pair.angle) > MIN_RIGHT_ANGLE) { + pair.type = PPair::PERPENDICULAR; + // planes are nothing in particular + } + ppairs[i][j] = pair; + ppairs[j][i] = pair; + + } + } + +} +void getZHK(unsigned int length, bool **graph, vector > &zhks ) { + set unused; + + for (unsigned int i = 0; i < length; i++) unused.insert(i); + + // as long as we have nodes cluster + while(!unused.empty()) { + // start new cluster + int index = *unused.begin(); + unused.erase(index); + set zhk; + zhk.insert(index); + + // now look for all connected nodes + vector unvisited; + unvisited.push_back(index); + + while (!unvisited.empty()) { + int index = *unvisited.begin(); + unvisited.erase(unvisited.begin()); + + for (unsigned int i = 0; i < length; i++) { + if (i != index && graph[index][i] && zhk.count(i) == 0 ) { + zhk.insert(i); + unvisited.push_back(i); + unused.erase(i); + } + } + } + zhks.push_back(zhk); + } +} + +void flip( const double *normal , double *n ) { + // project to the other side + double k[3]; + n[0] = normal[0]; + n[1] = normal[1]; + n[2] = 1; + toKartesian(n, k); + k[0] *= -1; + k[1] *= -1; + k[2] *= -1; + toPolar(k, n); +} +bool parallel(set &p1, set &p2, double min_angle) { + for (set::iterator it = p1.begin(); + it != p1.end(); it++) { + for (set::iterator jt = p2.begin(); + jt != p2.end(); jt++) { + double *a = *it; + double *b = *jt; + //if ( polardist(a,b) > ( rad(180) - min_angle ) ) + double flipped[3]; + flip(a, flipped); + if (polardist(a,b) < min_angle || polardist(flipped, b) < min_angle) + { + return true; + } + } + } + return false; +} +// TODO no idea what this does +/* +ColumnVector calcRotRhos(vector &planes) { + unsigned int n = planes.size(); + double xbar[3]; + double *normal; + double nx; + + ColumnVector A(n+3); + Matrix B(n+3,n+3); + B = 0; + A = 0; + // fill B and A + + // for all planes + for (unsigned int i = 0; i < n; i++) { + vector points = planes[i]->points; + normal = planes[i]->n; + // for all x_j in plane i + for (unsigned int j = 0; j < points.size(); j++) { + Point p = points[j]; + xbar[0] = normal[1] * p.z - normal[2]*p.y; + xbar[1] = normal[2] * p.x - normal[0]*p.z; + xbar[2] = normal[0] * p.y - normal[1]*p.x; + nx = normal[0]*p.x + normal[1]*p.y + normal[2]*p.z; + + A(1) += nx * xbar[0]; + A(2) += nx * xbar[1]; + A(3) += nx * xbar[2]; + A(i+1 + 3) -= nx; + + // upper left 3x3 matrix of B + B(1, 1) += xbar[0]*xbar[0]; + B(2, 2) += xbar[1]*xbar[1]; + B(3, 3) += xbar[2]*xbar[2]; + + B(1,2) += xbar[0]*xbar[1]; + B(2,1) += xbar[0]*xbar[1]; + + B(1,3) += xbar[0]*xbar[2]; + B(3,1) += xbar[0]*xbar[2]; + + B(2,3) += xbar[1]*xbar[2]; + B(3,2) += xbar[1]*xbar[2]; + + B(1, i+1 +3) -= xbar[0]; + B(i+1 +3, 1) -= xbar[0]; + + B(2, i+1 +3) -= xbar[1]; + B(i+1 +3, 2) -= xbar[1]; + + B(3, i+1 +3) -= xbar[2]; + B(i+1 +3, 3) -= xbar[2]; + } + + B(i+1 +3, i+1 +3) = points.size(); + } + + // calc result + +// cout << "A: " << endl << A << endl; +// cout << "B: " << endl << B << endl; + + ColumnVector X = B.i() * A; + +// cout << "X: " << endl << X << endl; + + + return X; +}*/ +void join(vector > &cps, double min_angle, vector > &n_cps) { + bool **par = new bool*[cps.size()]; + for (unsigned int i = 0; i< cps.size(); i++) { + par[i] = new bool[cps.size()]; + } + + for (unsigned int i = 0; i < cps.size(); i++) { + par[i][i] = false; + for (unsigned int j = i+1; j < cps.size(); j++) { + if (parallel(cps[i], cps[j], min_angle) ) { + par[i][j] = true; + par[j][i] = true; + } + else { + par[i][j] = false; + par[j][i] = false; + } + } + } + vector > zhks; + getZHK(cps.size(), par, zhks); + + for (unsigned int i = 0; i < zhks.size(); i++) { + set zhk; + n_cps.push_back(zhk); + for (set::iterator it = zhks[i].begin(); it != zhks[i].end(); it++) { + n_cps[i].insert( cps[*it].begin(), cps[*it].end() ); + } + } + + for (unsigned int i = 0; i< cps.size(); i++) { + delete[] par[i]; + } + delete[] par; +} + +void getModel(vector &model, vector &allPlanes) { + int planes = allPlanes.size();//588; + double min_angle = rad(MAX_PARALLEL_ANGLE); + double perp_angle = rad(MIN_RIGHT_ANGLE); + int min_size = 0; + + // polar coordinates of plane + vector norms; + for (unsigned int i = 0; i < allPlanes.size(); i ++) {; + double *norm = new double[5]; + toPolar(allPlanes[i]->n, norm); // 0: phi, 1:theta + norm[2] = allPlanes[i]->pointsize; // number of points + norm[3] = i; // index + norm[4] = allPlanes[i]->rho; // rho + norms.push_back(norm); + } + + // copy of polar coordinate representation + double **normals = new double*[planes];//[planes][4]; + for (int j = 0; j < planes; j++) { + normals[j] = norms[j]; + } + + // all normals in Quadtree and cluster + QuadTree tree(normals, planes , 0.40, min_angle); + vector > cpsold; + cpsold = tree.getClusters(); + + //join similar normals + vector > cps; + join(cpsold, min_angle, cps); + + // Filtering + for (unsigned int i = 0; i < cps.size(); i++) { +cout << "Cluster " << i << ": " << cps[i].size(); + set::iterator it = cps[i].begin(); + double *rep = *it; + // for each normal in this cluster + while ( it != cps[i].end()) { + double *normal = (*it); + double flipped[3]; + flip(normal, flipped); + // check wether the flipped one is closer + if (polardist(rep, flipped) < polardist(rep, normal) ) { + normal[0] = flipped[0]; + normal[1] = flipped[1]; + } +cout << " " << normal[3] << " normal: " << normal[0] << " " << normal[1] << endl; + it++; + } + } + + double **cnorms = new double*[cps.size()]; + bool **cnrels = new bool*[cps.size()]; + int *normpts = new int[cps.size()]; + +cout << "Center normals.." << endl; + // Calculate the centerd normals + for (unsigned int i = 0; i < cps.size(); i++) { +cout << "Cluster " << i << ":" << endl; + cnorms[i] = new double[3]; + cnrels[i] = new bool[cps.size()]; + cnorms[i][0] = 0; + cnorms[i][1] = 0; + cnorms[i][2] = 0; + + int sumpoints = 0; + for (set::iterator it = cps[i].begin(); + it != cps[i].end(); it++) { + double *normal = (*it); + double k[3], n[3]; + n[0] = normal[0]; + n[1] = normal[1]; + n[2] = 1; + toKartesian(n, k); + cnorms[i][0] += k[0] * normal[2]; + cnorms[i][1] += k[1] * normal[2]; + cnorms[i][2] += k[2] * normal[2]; + sumpoints += normal[2]; + } + normpts[i] = sumpoints; + cnorms[i][0] /= sumpoints; + cnorms[i][1] /= sumpoints; + cnorms[i][2] /= sumpoints; + Normalize3(cnorms[i]); + double p[3]; + toPolar(cnorms[i], p); + cnorms[i][0] = p[0]; + cnorms[i][1] = p[1]; + + cout << " cnormal: " << cnorms[i][0] << " " << cnorms[i][1] << endl; + } + + // Calculate relations between clusters + for (unsigned int i = 0; i < cps.size(); i++) { + cnrels[i][i] = false; + for (unsigned int j = i+1; j < cps.size(); j++) { + double angle = polardist(cnorms[i], cnorms[j]); + cnrels[i][j] = angle > perp_angle && angle < (rad(180.0) - perp_angle); + cnrels[j][i] = cnrels[i][j]; + } + } + + // calculate clusters that are big enough + vector big_clusters; + for (unsigned int i = 0; i < cps.size(); i++) { + if (normpts[i] > min_size) { + big_clusters.push_back(i); + } + } + cout << "look for biggest cliques..." << endl; + // Calculate biggest 3-cliques + int ci, cj, ck, cpoints; + ci = cj = ck = -1; + cpoints = 0; + for (vector::iterator it = big_clusters.begin(); + it != big_clusters.end(); it++) { + unsigned int i = *it; + for (vector::iterator jt = it+1; + jt != big_clusters.end(); jt++) { + unsigned int j = *jt; + if (!cnrels[i][j]) continue; + for (vector::iterator kt = jt+1; + kt != big_clusters.end(); kt++) { + unsigned int k = *kt; + if (cnrels[i][k] && cnrels[j][k]) { + // candidate clique + int sum = normpts[i] + normpts[j] + normpts[k]; + if (sum > cpoints) { + cpoints = sum; + ci = i; + cj = j; + ck = k; + cout << i << " " << j << " " << k << " " << sum << endl; + } + } + } + } + } + if (ci == -1 || cj == -1 || ck == -1) { + cout << "No clique could be found!" << endl; + return; + } + + // Estimate new normals + double n[3]; + ConvexPlane p1(cnorms[ci]); + p1.project(cnorms[cj], n); + ConvexPlane p2(n); + Cross(p1.n, p2.n, n); + ConvexPlane p3(n); + + // map from allPlane index to ci, cj or ck + map idxTotype; + int idx = 0; +cout << "hmm " << endl; + vector numerical_planes; + for (set::iterator it = cps[ci].begin(); it != cps[ci].end(); it++) { + double *normal = (*it); + int index = (int)normal[3]; + ConvexPlane *plane = allPlanes[index]; + /* + plane->n[0] = p1.n[0]; + plane->n[1] = p1.n[1]; + plane->n[2] = p1.n[2]; + */ + model.push_back(plane); + + cout << "for ci = " << ci << " plane index " << idx << " ap index " << index << endl; + idxTotype[idx++] = ci; + } + for (set::iterator it = cps[cj].begin(); it != cps[cj].end(); it++) { + double *normal = (*it); + int index = (int)normal[3]; + ConvexPlane *plane = allPlanes[index]; + /* + plane->n[0] = p2.n[0]; + plane->n[1] = p2.n[1]; + plane->n[2] = p2.n[2]; + */ + model.push_back(plane); + + cout << "for cj = " << cj << " plane index " << idx << " ap index " << index << endl; + idxTotype[idx++] = cj; + } + for (set::iterator it = cps[ck].begin(); it != cps[ck].end(); it++) { + double *normal = (*it); + int index = (int)normal[3]; + ConvexPlane *plane = allPlanes[index]; + /* + plane->n[0] = p3.n[0]; + plane->n[1] = p3.n[1]; + plane->n[2] = p3.n[2]; + */ + model.push_back(plane); + + cout << "for ck = " << ck << " plane index " << idx << " ap index " << index << endl; + idxTotype[idx++] = ck; + } + + /* + int MAX_IT = 100; +// int MAX_IT = 10000; + int it_nr = 0; + ColumnVector X; + double MIN_ERR = 0.0005; +// double MIN_ERR = 0.0000000000000000000001; + double error = 0.0; + do { + //cout << it_nr << endl; + it_nr++; + // calc rotation and rho's + X = calcRotRhos(numerical_planes); + // apply rotation to normals + double rPos[3] = {0.0, 0.0, 0.0}; + double rPosTheta[3]; + rPosTheta[0] = -X(1); + rPosTheta[1] = -X(2); + rPosTheta[2] = -X(3); + error = fabs (X(1)) + fabs(X(2)) + fabs(X(3)) ; +// cout << rPosTheta[0] << " " << rPosTheta[1] << " " <n[0]; + normal.y = numerical_planes[j]->n[1]; + normal.z = numerical_planes[j]->n[2]; +// cout << "NP " << j << " " << normal.x << " " << normal.y << " " << normal.z << endl; + normal.transform(alignxf); +// cout <<"to" << endl; +// cout << normal.x << " " << normal.y << " " << normal.z << endl; + numerical_planes[j]->n[0] = normal.x; + numerical_planes[j]->n[1] = normal.y; + numerical_planes[j]->n[2] = normal.z; +// cout << "NP " << j << " " << normal.x << " " << normal.y << " " << normal.z << endl; + } + // repeat + } while (error > MIN_ERR || it_nr > MAX_IT); +// cout << "ERRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR" << endl; + // apply rho's to planes + for(unsigned int j = 0; j < numerical_planes.size(); j++) { +// cout << j << " s rho is " << numerical_planes[j]->rho << endl; + numerical_planes[j]->rho = -X(j+1 +3); +// cout << j << " s rho is " << numerical_planes[j]->rho << endl; + } + + bool **graph = new bool*[numerical_planes.size()]; + for (unsigned int i = 0; i < numerical_planes.size(); i++) { + graph[i] = new bool[numerical_planes.size()]; + } + + + for (unsigned int i = 0; i < numerical_planes.size(); i++) { + graph[i][i] = false; + for (unsigned int j = i+1; j < numerical_planes.size(); j++) { + if( fabs(numerical_planes[i]->rho - numerical_planes[j]->rho) < MAX_EQUAL_DIST + && idxTotype[i] == idxTotype[j] ) { // check wether planes belong to the same type + graph[i][j] = true; + graph[j][i] = true; + } else { + graph[i][j] = false; + graph[j][i] = false; + } + } + } + + vector > zhks; + getZHK(numerical_planes.size(), graph, zhks); + + for (unsigned int i = 0; i < zhks.size(); i++) { + vector pplane; + for (set::iterator it = zhks[i].begin(); it != zhks[i].end(); it++) { + pplane.push_back(numerical_planes[*it]); + cout << "zhk " << i << " p " << (*it) << endl; + } + ConvexPlane *plane = new ConvexPlane(pplane); + model.push_back(plane); + } + */ + //exit(0); +} + + + +/** + * Main function. The Hough Transform is called for the scan indicated as + * argument. + * + */ +int main(int argc, char **argv) +{ + + cout << "(c) Jacobs University Bremen, gGmbH, 2011" << endl << endl; + + if (argc <= 1) { + usage(argv[0]); + } + // parsing the command line parameters + // init, default values if not specified + string dir; + double red = -1.0; + int start = 0; + int maxDist = -1; + int minDist = -1; + int octree = 0; + bool quiet = false; + IOType type = UOS; + + cout << "Parse args" << endl; + parseArgs(argc, argv, dir, red, start, maxDist, minDist, octree, type, quiet); + Scan::dir = dir; + int fileNr = start; + string planedir = dir + "planes"; + +#ifdef _MSC_VER + int success = mkdir(planedir.c_str()); +#else + int success = mkdir(planedir.c_str(), S_IRWXU|S_IRWXG|S_IRWXO); +#endif + if(success == 0) { + if(!quiet) { + cout << "Writing planes to " << planedir << endl; + } + } else if(errno == EEXIST) { + cout << "Directory " << planedir << " exists already. CONTINUE" << endl; + } else { + cerr << "Creating directory " << planedir << " failed" << endl; + exit(1); + } + Scan::readScans(type, fileNr, fileNr, dir, maxDist, minDist, 0); + // reduction filter for current scan! + //Scan::allScans[0]->calcReducedPoints(red, octree); + Scan::allScans[0]->toGlobal(red, octree); + + double id[16]; + M4identity(id); + for(int i = 0; i < 10; i++) { + Scan::allScans[0]->transform(id, Scan::ICP, 0); // write end pose + } + //Hough hough(Scan::allScans[0], quiet); + //hough.RHT(); + cout << "Hough done" << endl; + + // calculate relations between planes + //vector * allPlanes = &hough.planes; + /* + PPair **p_graph; + + p_graph = new PPair*[allPlanes->size()]; + for (unsigned int i = 0; i < allPlanes->size(); i++) { + p_graph[i] = new PPair[allPlanes->size()]; + } + getPPairs(*allPlanes, p_graph); + */ + // optimize relations + //vector model; + //getModel(model, *allPlanes); + //cout << "GetModel done" << endl; + + //Hough houghdelete(Scan::allScans[0], quiet); + cout << "start range image calculation" << endl; + long starttime = GetCurrentTimeInMilliSec(); + int size; + //double * const* points_red = houghdelete.deletePoints(*allPlanes, size); + //double * const* points_red = hough.getPoints(size); + cout << "Size " << size << endl; + + + double * const* points_red = Scan::allScans[0]->get_points_reduced(); + // Image myImage(0.0, 360.0, 0.0, 180.0, 0.04, points_red, Scan::allScans[0]->get_points_red_size()); + + Image myImage(0.0, 360.0, 0.0, 180.0, 0.08, Scan::allScans[0]->get_points()); + + //Image myImage(90.0, 270.0, 40.0, 90.0, 1.0, points_red, size); + + starttime = (GetCurrentTimeInMilliSec() - starttime); + cout << "Time for Constructor call: " << starttime << endl; + + starttime = GetCurrentTimeInMilliSec(); + + int** regdat; + int width = myImage.getWidth(); + regdat = new int*[width]; + for(int i = 0; i < width; i++) { + regdat[i] = new int[myImage.getHeight()]; + } + + int** regdat2; + regdat2 = new int*[width]; + for(int i = 0; i < width; i++) { + regdat2[i] = new int[myImage.getHeight()]; + } + + //myImage.blobColor(05.0, regdat); + //cout << "blobColor done" << endl; + //myImage.printImage("blub.ppm", true); + myImage.printImage("blub.ppm", false); + float min = myImage.getMin(); + float max = myImage.getMax(); + float tenPercent = (max - min)*0.45; + cout << "MinMax " << min << " " << max << " " << tenPercent << " " << (max - min) << " "<< (max - tenPercent) << endl; + myImage.calcMarker(min + tenPercent, regdat); + cout << "Marker done" << endl; + int regions = myImage.cluster(5, regdat, regdat2); + cout << "Nu kommen die Punkte" << endl; + myImage.writeCenters(regions, regdat2, Scan::allScans[0]->get_points()); + cout << "dat woarn se" << endl; + + //myImage.blobColor(5, regdat2); + //cout << "blobColor done" << endl; + //myImage.printScans(regdat, points_red, Scan::allScans[0]->get_points_red_size()); + cout << "print Scans done" << endl; + starttime = (GetCurrentTimeInMilliSec() - starttime); + + cout << "Time for whatever " << starttime << endl; + delete Scan::allScans[0]; + Scan::allScans.clear(); +} + diff --git a/.svn/pristine/41/4192a373c0e07a65ddbb415353e19dbe0a4d5f6c.svn-base b/.svn/pristine/41/4192a373c0e07a65ddbb415353e19dbe0a4d5f6c.svn-base new file mode 100644 index 0000000..2400c37 --- /dev/null +++ b/.svn/pristine/41/4192a373c0e07a65ddbb415353e19dbe0a4d5f6c.svn-base @@ -0,0 +1,97 @@ +#ifndef __SCANCOLORMANAGER_H__ +#define __SCANCOLORMANAGER_H__ + +#ifdef _MSC_VER +#define _USE_MATH_DEFINES +#include +#endif +#ifdef __APPLE__ +#include +#else +#include +#endif + +#include "slam6d/point.h" +#include "slam6d/scan.h" +#include "show/colordisplay.h" +//#include "show/show_Boctree.h" +#include "show/colormanager.h" +#include +#include +#include "slam6d/point_type.h" +using std::vector; + +//template class Show_BOctTree; + +/** + * This class is a special ColorManager that handles a set of Colormanagers. + * This manager is capable of mapping managers to scans in dependence of the state of the + * show program. + */ +class ScanColorManager { + public: + + static const unsigned int MODE_STATIC; + static const unsigned int MODE_COLOR_SCAN; + static const unsigned int MODE_ANIMATION; + static const unsigned int MODE_POINT_COLOR; + + ScanColorManager(unsigned int _buckets, PointType type); + + void registerTree(colordisplay *b); + + void setColorMap(ColorMap &cm); + void setColorMap(ColorMap::CM &cm); + void setCurrentType(unsigned int type); + void setMinMax(float min, float max); + void setMode(const unsigned int &mode); + void setInvert(bool invert); + + float getMin(); + float getMax(); + float getMin(unsigned int dim); + float getMax(unsigned int dim); + unsigned int getPointDim(); + void makeValid(); + + void selectColors(Scan::AlgoType type); + + template + void updateRanges(P *point); + + protected: + + unsigned int currentdim; + + vector allScans; + vector allManager; + + vector staticManager; + vector scanManager; + vector colorsManager; + + unsigned int currenttype; + + unsigned int buckets; + + /** stores minima and maxima for each point dimension */ + float *mins; + float *maxs; + /** maps valuetypes to point dimension for easier access */ + PointType pointtype; + + bool valid; + bool colorScans; + bool inverted; +}; + + template + void ScanColorManager::updateRanges(P *point) { + for (unsigned int i = 0; i < pointtype.getPointDim(); i++) { + if (point[i] < mins[i]) mins[i] = point[i]; + if (point[i] > maxs[i]) maxs[i] = point[i]; + } + } + + +#endif diff --git a/.svn/pristine/41/41dcaedfa9cba4723be9e32133908c62961d3f5e.svn-base b/.svn/pristine/41/41dcaedfa9cba4723be9e32133908c62961d3f5e.svn-base new file mode 100644 index 0000000..8f3255f --- /dev/null +++ b/.svn/pristine/41/41dcaedfa9cba4723be9e32133908c62961d3f5e.svn-base @@ -0,0 +1,15 @@ + validate on + stats query_stats + dim 2 + data_size 20 + query_size 10 +read_data_pts test1-data.pts +read_query_pts test1-query.pts + bucket_size 1 + near_neigh 3 + split_rule suggest + shrink_rule none +build_ann + epsilon 0.0 +run_queries standard +run_queries priority diff --git a/.svn/pristine/41/41f9b1a9c4580ccd5e9bad6141e35e0cf47c60d0.svn-base b/.svn/pristine/41/41f9b1a9c4580ccd5e9bad6141e35e0cf47c60d0.svn-base new file mode 100644 index 0000000..90ff99c --- /dev/null +++ b/.svn/pristine/41/41f9b1a9c4580ccd5e9bad6141e35e0cf47c60d0.svn-base @@ -0,0 +1,193 @@ +BORLANDPATH = "C:\program files\Borland\cbuilder5" + +TASM = TASM32 +TLIB = tlib +TLINK = ilink32 +LIBPATH = $(BORLANDPATH)\LIB +INCLUDEPATH = $(BORLANDPATH)\INCLUDE + +DIFF = sdiff +PRE = + +CC = bcc32 -W- -v- -H- -3 -N -Og -Oi -Ov -f -I$(INCLUDEPATH) + +.cpp.obj: + $(CC) -c {$< } + +everything: tmt.exe example.exe test_exc.exe nl_ex.exe sl_ex.exe garch.exe + +newmat_lobj = newmat1.obj newmat2.obj newmat3.obj newmat4.obj newmat5.obj newmat6.obj newmat7.obj newmat8.obj newmatex.obj bandmat.obj submat.obj myexcept.obj cholesky.obj evalue.obj fft.obj hholder.obj jacobi.obj newfft.obj sort.obj svd.obj newmatrm.obj newmat9.obj + +newmat.lib: $(newmat_lobj) + $(TLIB) $@ /P32 /u $(newmat_lobj) + +tmt_obj = tmt.obj tmt1.obj tmt2.obj tmt3.obj tmt4.obj tmt5.obj tmt6.obj tmt7.obj tmt8.obj tmt9.obj tmta.obj tmtb.obj tmtc.obj tmtd.obj tmte.obj tmtf.obj tmtg.obj tmth.obj tmti.obj tmtj.obj tmtk.obj tmtl.obj tmtm.obj + +tmt.exe: $(tmt_obj) newmat.lib + $(TLINK) /x/L$(LIBPATH)/Gn -Tpe -ap -c @&&| +c0x32.obj $(tmt_obj),$@,, newmat.lib import32.lib cw32.lib +| + +example_obj = example.obj + +example.exe: $(example_obj) newmat.lib + $(TLINK) /x/L$(LIBPATH)/Gn -Tpe -ap -c @&&| +c0x32.obj $(example_obj),$@,, newmat.lib import32.lib cw32.lib +| + +test_exc_obj = test_exc.obj + +test_exc.exe: $(test_exc_obj) newmat.lib + $(TLINK) /x/L$(LIBPATH)/Gn -Tpe -ap -c @&&| +c0x32.obj $(test_exc_obj),$@,, newmat.lib import32.lib cw32.lib +| + +nl_ex_obj = nl_ex.obj newmatnl.obj + +nl_ex.exe: $(nl_ex_obj) newmat.lib + $(TLINK) /x/L$(LIBPATH)/Gn -Tpe -ap -c @&&| +c0x32.obj $(nl_ex_obj),$@,, newmat.lib import32.lib cw32.lib +| + +sl_ex_obj = sl_ex.obj solution.obj myexcept.obj + +sl_ex.exe: $(sl_ex_obj) + $(TLINK) /x/L$(LIBPATH)/Gn -Tpe -ap -c @&&| +c0x32.obj $(sl_ex_obj),$@,,import32.lib cw32.lib +| + +garch_obj = garch.obj newmatnl.obj + +garch.exe: $(garch_obj) newmat.lib + $(TLINK) /x/L$(LIBPATH)/Gn -Tpe -ap -c @&&| +c0x32.obj $(garch_obj),$@,, newmat.lib import32.lib cw32.lib +| + +newmat1.obj: newmat1.cpp newmat.h include.h boolean.h myexcept.h + +newmat2.obj: newmat2.cpp include.h newmat.h newmatrc.h boolean.h myexcept.h controlw.h + +newmat3.obj: newmat3.cpp include.h newmat.h newmatrc.h boolean.h myexcept.h controlw.h + +newmat4.obj: newmat4.cpp include.h newmat.h newmatrc.h boolean.h myexcept.h controlw.h + +newmat5.obj: newmat5.cpp include.h newmat.h newmatrc.h boolean.h myexcept.h controlw.h + +newmat6.obj: newmat6.cpp include.h newmat.h newmatrc.h boolean.h myexcept.h controlw.h + +newmat7.obj: newmat7.cpp include.h newmat.h newmatrc.h boolean.h myexcept.h controlw.h + +newmat8.obj: newmat8.cpp include.h newmat.h newmatrc.h precisio.h boolean.h myexcept.h controlw.h + +newmatex.obj: newmatex.cpp include.h newmat.h boolean.h myexcept.h + +bandmat.obj: bandmat.cpp include.h newmat.h newmatrc.h boolean.h myexcept.h controlw.h + +submat.obj: submat.cpp include.h newmat.h newmatrc.h boolean.h myexcept.h controlw.h + +myexcept.obj: myexcept.cpp include.h myexcept.h + +cholesky.obj: cholesky.cpp include.h newmat.h boolean.h myexcept.h + +evalue.obj: evalue.cpp include.h newmatap.h newmatrm.h precisio.h newmat.h boolean.h myexcept.h + +fft.obj: fft.cpp include.h newmatap.h newmat.h boolean.h myexcept.h + +hholder.obj: hholder.cpp include.h newmatap.h newmat.h boolean.h myexcept.h + +jacobi.obj: jacobi.cpp include.h newmatap.h precisio.h newmatrm.h newmat.h boolean.h myexcept.h + +newfft.obj: newfft.cpp newmatap.h newmat.h include.h boolean.h myexcept.h + +sort.obj: sort.cpp include.h newmatap.h newmat.h boolean.h myexcept.h + +svd.obj: svd.cpp include.h newmatap.h newmatrm.h precisio.h newmat.h boolean.h myexcept.h + +newmatrm.obj: newmatrm.cpp newmat.h newmatrm.h include.h boolean.h myexcept.h + +newmat9.obj: newmat9.cpp include.h newmat.h newmatio.h newmatrc.h boolean.h myexcept.h controlw.h + +tmt.obj: tmt.cpp include.h newmat.h tmt.h boolean.h myexcept.h + +tmt1.obj: tmt1.cpp include.h newmat.h tmt.h boolean.h myexcept.h + +tmt2.obj: tmt2.cpp include.h newmat.h tmt.h boolean.h myexcept.h + +tmt3.obj: tmt3.cpp include.h newmat.h tmt.h boolean.h myexcept.h + +tmt4.obj: tmt4.cpp include.h newmat.h tmt.h boolean.h myexcept.h + +tmt5.obj: tmt5.cpp include.h newmat.h tmt.h boolean.h myexcept.h + +tmt6.obj: tmt6.cpp include.h newmatap.h tmt.h newmat.h boolean.h myexcept.h + +tmt7.obj: tmt7.cpp include.h newmat.h tmt.h boolean.h myexcept.h + +tmt8.obj: tmt8.cpp include.h newmatap.h tmt.h newmat.h boolean.h myexcept.h + +tmt9.obj: tmt9.cpp include.h newmatap.h tmt.h newmat.h boolean.h myexcept.h + +tmta.obj: tmta.cpp include.h newmatap.h tmt.h newmat.h boolean.h myexcept.h + +tmtb.obj: tmtb.cpp include.h newmat.h tmt.h boolean.h myexcept.h + +tmtc.obj: tmtc.cpp include.h newmat.h tmt.h boolean.h myexcept.h + +tmtd.obj: tmtd.cpp include.h newmatap.h tmt.h newmat.h boolean.h myexcept.h + +tmte.obj: tmte.cpp include.h newmatap.h tmt.h newmat.h boolean.h myexcept.h + +tmtf.obj: tmtf.cpp include.h newmatap.h tmt.h newmat.h boolean.h myexcept.h + +tmtg.obj: tmtg.cpp include.h newmatap.h tmt.h newmat.h boolean.h myexcept.h + +tmth.obj: tmth.cpp include.h newmatap.h tmt.h newmat.h boolean.h myexcept.h + +tmti.obj: tmti.cpp include.h newmatap.h tmt.h newmat.h boolean.h myexcept.h + +tmtj.obj: tmtj.cpp include.h newmatap.h tmt.h newmat.h boolean.h myexcept.h + +tmtk.obj: tmtk.cpp include.h newmatap.h newmatio.h tmt.h newmat.h boolean.h myexcept.h + +tmtl.obj: tmtl.cpp newmat.h tmt.h include.h boolean.h myexcept.h + +tmtm.obj: tmtm.cpp newmat.h tmt.h include.h boolean.h myexcept.h + +example.obj: example.cpp newmatap.h newmatio.h newmat.h include.h boolean.h myexcept.h + +test_exc.obj: test_exc.cpp newmatap.h newmatio.h newmat.h include.h boolean.h myexcept.h + +nl_ex.obj: nl_ex.cpp newmatnl.h newmatio.h newmat.h include.h boolean.h myexcept.h + +newmatnl.obj: newmatnl.cpp newmatap.h newmatnl.h newmat.h include.h boolean.h myexcept.h + +sl_ex.obj: sl_ex.cpp include.h solution.h boolean.h myexcept.h + +solution.obj: solution.cpp include.h boolean.h myexcept.h solution.h + +garch.obj: garch.cpp newmatap.h newmatio.h newmatnl.h newmat.h include.h boolean.h myexcept.h + +tmt.txx: tmt.exe + $(PRE)tmt > tmt.txx + $(DIFF) tmt.txt tmt.txx + +example.txx: example.exe + $(PRE)example > example.txx + $(DIFF) example.txt example.txx + +test_exc.txx: test_exc.exe + $(PRE)test_exc > test_exc.txx + $(DIFF) test_exc.txt test_exc.txx + +nl_ex.txx: nl_ex.exe + $(PRE)nl_ex > nl_ex.txx + $(DIFF) nl_ex.txt nl_ex.txx + +sl_ex.txx: sl_ex.exe + $(PRE)sl_ex > sl_ex.txx + $(DIFF) sl_ex.txt sl_ex.txx + +garch.txx: garch.exe + $(PRE)garch > garch.txx + $(DIFF) garch.txt garch.txx + diff --git a/.svn/pristine/42/42237cb0458e6e1506a7c835fc7072e99cf3b892.svn-base b/.svn/pristine/42/42237cb0458e6e1506a7c835fc7072e99cf3b892.svn-base new file mode 100644 index 0000000..36cb355 --- /dev/null +++ b/.svn/pristine/42/42237cb0458e6e1506a7c835fc7072e99cf3b892.svn-base @@ -0,0 +1,22 @@ +/** + * @file ELCH implementation using Quaternions + * @author Jochen Sprickerhof. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __ELCH6D_QUAT_H__ +#define __ELCH6D_QUAT_H__ + +#include "elch6D.h" + +class elch6Dquat : public elch6D { + + public: + elch6Dquat(bool _quiet, icp6Dminimizer *my_icp6Dminimizer, double mdm, int max_num_iterations, + int rnd, bool eP, int anim, double epsilonICP, int nns_method) + : elch6D(_quiet, my_icp6Dminimizer, mdm, max_num_iterations, rnd, eP, anim, epsilonICP, nns_method) {} + + virtual void close_loop(const vector &allScans, int first, int last, graph_t &g); + +}; + +#endif diff --git a/.svn/pristine/42/42b31a2ebf7d29923cda83ed3b3ed98a628ebb9c.svn-base b/.svn/pristine/42/42b31a2ebf7d29923cda83ed3b3ed98a628ebb9c.svn-base new file mode 100644 index 0000000..4c67d77 --- /dev/null +++ b/.svn/pristine/42/42b31a2ebf7d29923cda83ed3b3ed98a628ebb9c.svn-base @@ -0,0 +1,63 @@ +#ifndef _OCR0_H +#define _OCR0_H +#include "pgm2asc.h" + +/* ---------------------------------------------------------------- + - functions with thousand of lines make the compilation very slow + therefore the ocr0-function is splitted in subfunctions + - shared data used often in ocr0-subroutines are stored + in ocr0_shared structure. + * ------------------------------------------------------------ */ + +typedef struct ocr0_shared { /* shared variables and properties */ + + struct box *box1; /* box in whole image */ + pix *bp; /* extracted temporarly box, cleaned */ + int cs; /* global threshold value (gray level) */ + + /* ToDo: or MACROS: X0 = box1->x0 */ + int x0, x1, y0, y1; /* box coordinates related to box1 */ + int dx, dy; /* size of box */ + int hchar, gchar; /* relation to m1..m4 */ + int aa[4][4]; /* corner points, see xX (x,y,dist^2,vector_idx) v0.41 */ + holes_t holes; /* list of holes (max MAX_HOLES) */ + +} ocr0_shared_t; + +/* tests for umlaut */ +int testumlaut(struct box *box1, int cs, int m, wchar_t *modifier); +/* detect chars */ +wchar_t ocr0(struct box *box1, pix *b, int cs); +/* detect numbers */ +wchar_t ocr0n(ocr0_shared_t *sdata); + +static inline int sq(int x) { return x*x; } /* square */ + +/* + * go from vector j1 to vector j2 and measure maximum deviation of + * the steps from the line connecting j1 and j2 + * return the squared maximum distance + * in units of the box size times 1024 + */ +int line_deviation( struct box *box1, int j1, int j2 ); + +/* + * search vectors between j1 and j2 for nearest point a to point r + * example: + * + * r-> $$...$$ $ - mark vectors + * @@$..@@ @ - black pixels + * @@$..@@ . - white pixels + * @@@@.$@ + * a-> @@$@$@@ + * @$.@@@@ + * @@..$@@ + * @@..$@@ + * j1 --> $$...$$ <-- j2 + * + * ToDo: vector aa[5] = {rx,ry,x,y,d^2,idx} statt rx,ry? + * j1 and j2 must be in the same frame + * return aa? + */ +int nearest_frame_vector( struct box *box1, int j1, int j2, int rx, int ry); +#endif diff --git a/.svn/pristine/42/42bac048a870ae1be3532211aa99ccf24bb0c7a7.svn-base b/.svn/pristine/42/42bac048a870ae1be3532211aa99ccf24bb0c7a7.svn-base new file mode 100644 index 0000000..209a75c --- /dev/null +++ b/.svn/pristine/42/42bac048a870ae1be3532211aa99ccf24bb0c7a7.svn-base @@ -0,0 +1,65 @@ +TODO LIST + +Please send any ideas. + +Next release (0.4x) +- quality test script for groups of samples (to ensure improvement in recognition) + single chars or single chars in words, clean and difficult sets, + formatted texts + false negative + false positive + start with numbers? option numbers only? + output: find fname.{jpg,png} + fname.txt + compare output gocr against txt + options: [testpath] [testchars] + bin/gocr_chk.sh testbase/free/{clean,glued,dusty}/{numbers,text}/ + bin/gocr_chk.sh jocr/examples tmp09 +- fix problem with cutting melted chars (using vector frames) +- better detection of agglutinated serifs (Gutenberg scans 086.png+171.png) +- vectorize recognition (big step!, relation to other OSS?) + (find min distance to ideal vector patterns, start with <>()) +- frame_nn is marking only the borders like frame_vector and removed later +- handle broken and glueed chars by the database algorithm (-m 256 -m 130) +- improve get_line2(), implement distance_to_point and distance_to_line +- dot-matrix printouts (examples/matrix.jpg) (german: Nadeldrucker) +- examples/inverse.pcx + examples/rotate45.pcx by nearest-box-to-line alg. + or mean nearest box (or its 4 edges) directions, + rotate only boxes (by creating new greater boxes and tread as new image) +- proof replacement of getTextLine by getXMLline via pipe(?) or stdout + is pipe available on all platforms? +- docu about ispell using via XML (what needed, test in gocr.tcl) +- replace rest of UNDEFINED in unicode.c by its correct strings +- add probability for box->m1..m4 (to reduce errors caused by bad line-scan) + call line detection function second time to improve unsure line data + +Next release (0.5x) +- reduce pixel data by vectorization (big change, faster) +- writing images through pipes (like reading) +- using dictionary (optional) for replacing not recognized chars +- Karsten.Hilbert@gmx.net: use ORChie WordBox-format + see http://http.cs.berkeley.edu/~fateman/kathey/ocrchie.html + aspell instead of ispell + +Near future: (planned version) +- rewrite install-routine +- perspective distortion (for cameras) +- genetic algorithms engine (already in development, 0.8?). It includes + feature extraction and classification +- support for other languages (may affect context_correction(), etc) (0.6?) +- support for diagramation. Can be done using the Unicode+new stuff. I (bbg) + have some ideas. + +Far future: +- gimp plugin +- color support +- Braille detection (usefull for blinds?) + see: American Journal of Physics Vol. 70, No. 7, p 684-688 (2002) + or use special foils +- read image in smaller parts, to reduce memory usage. +- frames should be recognized +- better distance function (comparision of characters) +- detection of orientation (i.a. 90,180,270deg rotation) +- picture extraction +- math formula detection, font type detection +- handwritten texts (blockletters) + --- uff, really a lot of work --- +- Feel free and add your suggestions and wishes, + or tell me, what is the most important point for you. diff --git a/.svn/pristine/43/4343d839dea3e4f855a812b45576ee46399e9981.svn-base b/.svn/pristine/43/4343d839dea3e4f855a812b45576ee46399e9981.svn-base new file mode 100644 index 0000000..3f74e05 --- /dev/null +++ b/.svn/pristine/43/4343d839dea3e4f855a812b45576ee46399e9981.svn-base @@ -0,0 +1,712 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: genergdi.cpp +// Purpose: Generic gdi pen and colour +// Author: John Labenski +// Modified by: +// Created: 12/01/2000 +// Copyright: (c) John Labenski +// Licence: wxWidgets license +///////////////////////////////////////////////////////////////////////////// + +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) + #pragma implementation "genergdi.h" +#endif + +// For compilers that support precompilation, includes "wx.h". +#include "wx/wxprec.h" + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#include "wx/things/genergdi.h" +#include "wx/tokenzr.h" + +const wxGenericColour wxNullGenericColour; +const wxGenericPen wxNullGenericPen; +const wxGenericBrush wxNullGenericBrush; +#include "wx/arrimpl.cpp" +WX_DEFINE_OBJARRAY(wxArrayGenericColour) +WX_DEFINE_OBJARRAY(wxArrayGenericPen) +WX_DEFINE_OBJARRAY(wxArrayGenericBrush) + +//---------------------------------------------------------------------------- +// wxGenericColour +//---------------------------------------------------------------------------- +IMPLEMENT_DYNAMIC_CLASS(wxGenericColour, wxObject) + +class wxGenericColourRefData : public wxObjectRefData +{ +public: + wxGenericColourRefData(unsigned char r = 0, unsigned char g = 0, + unsigned char b = 0, unsigned char a = 255) + : wxObjectRefData(), m_r(r), m_g(g), m_b(b), m_a(a) {} + + wxGenericColourRefData( const wxGenericColourRefData& data ) + : wxObjectRefData(), m_r(data.m_r), m_g(data.m_g), m_b(data.m_b), m_a(data.m_a) {} + + unsigned char m_r, m_g, m_b, m_a; +}; + +#define M_GCOLOURDATA ((wxGenericColourRefData*)m_refData) + +//---------------------------------------------------------------------------- +wxObjectRefData *wxGenericColour::CreateRefData() const +{ + return new wxGenericColourRefData; +} +wxObjectRefData *wxGenericColour::CloneRefData(const wxObjectRefData *data) const +{ + return new wxGenericColourRefData(*(const wxGenericColourRefData *)data); +} + +void wxGenericColour::Create( const wxGenericColour& c ) +{ + Ref(c); +} +void wxGenericColour::Create( const wxColour& c) +{ + UnRef(); + m_refData = new wxGenericColourRefData; + Set(c); +} +void wxGenericColour::Create( unsigned char red, unsigned char green, + unsigned char blue, unsigned char alpha ) +{ + UnRef(); + m_refData = new wxGenericColourRefData(red, green, blue, alpha); +} +void wxGenericColour::CreateABGR( unsigned long colABGR ) +{ + UnRef(); + m_refData = new wxGenericColourRefData; + SetABGR(colABGR); +} +void wxGenericColour::CreateARGB( unsigned long colARGB ) +{ + UnRef(); + m_refData = new wxGenericColourRefData; + SetARGB(colARGB); +} +void wxGenericColour::Create( const wxString& colourName ) +{ + UnRef(); + m_refData = new wxGenericColourRefData; + Set(colourName); +} + +void wxGenericColour::Set( const wxGenericColour &c ) +{ + wxCHECK_RET(Ok() && c.Ok(), wxT("Invalid generic colour")); + M_GCOLOURDATA->m_r = c.GetRed(); + M_GCOLOURDATA->m_g = c.GetGreen(); + M_GCOLOURDATA->m_b = c.GetBlue(); + M_GCOLOURDATA->m_a = c.GetAlpha(); +} +void wxGenericColour::Set( const wxColour& c ) +{ + wxCHECK_RET(Ok() && c.Ok(), wxT("Invalid colour")); + M_GCOLOURDATA->m_r = c.Red(); + M_GCOLOURDATA->m_g = c.Green(); + M_GCOLOURDATA->m_b = c.Blue(); +} +void wxGenericColour::Set( unsigned char red, unsigned char green, + unsigned char blue, unsigned char alpha ) +{ + wxCHECK_RET(Ok(), wxT("Invalid generic colour")); + M_GCOLOURDATA->m_r = red; + M_GCOLOURDATA->m_g = green; + M_GCOLOURDATA->m_b = blue; + M_GCOLOURDATA->m_a = alpha; +} +void wxGenericColour::SetABGR( unsigned long colABGR ) +{ + wxCHECK_RET(Ok(), wxT("Invalid generic colour")); + M_GCOLOURDATA->m_r = (unsigned char)(0xFF& colABGR); + M_GCOLOURDATA->m_g = (unsigned char)(0xFF&(colABGR >> 8)); + M_GCOLOURDATA->m_b = (unsigned char)(0xFF&(colABGR >> 16)); + M_GCOLOURDATA->m_a = (unsigned char)(0xFF&(colABGR >> 24)); +} +void wxGenericColour::SetARGB( unsigned long colARGB ) +{ + wxCHECK_RET(Ok(), wxT("Invalid generic colour")); + M_GCOLOURDATA->m_b = (unsigned char)(0xFF& colARGB); + M_GCOLOURDATA->m_g = (unsigned char)(0xFF&(colARGB >> 8)); + M_GCOLOURDATA->m_r = (unsigned char)(0xFF&(colARGB >> 16)); + M_GCOLOURDATA->m_a = (unsigned char)(0xFF&(colARGB >> 24)); +} +void wxGenericColour::Set( const wxString& colourName ) +{ + wxCHECK_RET(Ok(), wxT("Invalid generic colour")); + Set(wxColour(colourName)); +} +void wxGenericColour::SetRed( unsigned char r ) +{ + wxCHECK_RET(Ok(), wxT("Invalid generic colour")); + M_GCOLOURDATA->m_r = r; +} +void wxGenericColour::SetGreen( unsigned char g ) +{ + wxCHECK_RET(Ok(), wxT("Invalid generic colour")); + M_GCOLOURDATA->m_g = g; +} +void wxGenericColour::SetBlue( unsigned char b ) +{ + wxCHECK_RET(Ok(), wxT("Invalid generic colour")); + M_GCOLOURDATA->m_b = b; +} +void wxGenericColour::SetAlpha( unsigned char a ) +{ + wxCHECK_RET(Ok(), wxT("Invalid generic colour")); + M_GCOLOURDATA->m_a = a; +} + +unsigned char wxGenericColour::GetRed() const +{ + wxCHECK_MSG(Ok(), 0, wxT("Invalid generic colour")); + return M_GCOLOURDATA->m_r; +} +unsigned char wxGenericColour::GetGreen() const +{ + wxCHECK_MSG(Ok(), 0, wxT("Invalid generic colour")); + return M_GCOLOURDATA->m_g; +} +unsigned char wxGenericColour::GetBlue() const +{ + wxCHECK_MSG(Ok(), 0, wxT("Invalid generic colour")); + return M_GCOLOURDATA->m_b; +} +unsigned char wxGenericColour::GetAlpha() const +{ + wxCHECK_MSG(Ok(), 0, wxT("Invalid generic colour")); + return M_GCOLOURDATA->m_a; +} + +bool wxGenericColour::IsSameAs( const wxGenericColour& c ) const +{ + wxCHECK_MSG(Ok() && c.Ok(), false, wxT("Invalid generic colour")); + wxGenericColourRefData *cData = (wxGenericColourRefData*)c.GetRefData(); + return (M_GCOLOURDATA->m_r == cData->m_r) && (M_GCOLOURDATA->m_g == cData->m_g) && + (M_GCOLOURDATA->m_b == cData->m_b) && (M_GCOLOURDATA->m_a == cData->m_a); +} + +bool wxGenericColour::IsSameAs( const wxColour& c ) const +{ + wxCHECK_MSG(Ok() && c.Ok(), false, wxT("Invalid colour")); + return (M_GCOLOURDATA->m_r == c.Red()) && + (M_GCOLOURDATA->m_g == c.Green()) && + (M_GCOLOURDATA->m_b == c.Blue()); +} + +// This code is assumed to be public domain, originally from Paul Bourke, July 1996 +// http://astronomy.swin.edu.au/~pbourke/colour/colourramp/source1.c + +wxGenericColour wxGenericColour::GetHotColdColour(double v) const +{ + wxGenericColour c(255, 255, 255); + const double vmin = 0.0, vmax = 255.0, dv = vmax - vmin; + + if (v < vmin) v = vmin; + if (v > vmax) v = vmax; + + if (v < (vmin + 0.25 * dv)) + { + c.SetRed(0); + c.SetGreen(int(vmax*(4.0 * (v - vmin) / dv) + 0.5)); + } + else if (v < (vmin + 0.5 * dv)) + { + c.SetRed(0); + c.SetBlue(int(vmax*(1.0 + 4.0 * (vmin + 0.25 * dv - v) / dv) + 0.5)); + } + else if (v < (vmin + 0.75 * dv)) + { + c.SetRed(int(vmax*(4.0 * (v - vmin - 0.5 * dv) / dv) + 0.5)); + c.SetBlue(0); + } + else + { + c.SetGreen(int(vmax*(1.0 + 4.0 * (vmin + 0.75 * dv - v) / dv) + 0.5)); + c.SetBlue(0); + } + + return c; +} +/* +wxString wxGenericColour::WriteString(const wxString& format) const +{ + return wxString::Format(format.c_str(), m_r, m_g, m_b, m_a); +} +bool wxGenericColour::ReadString(const wxString& str, const wxString& format) +{ + int r,g,b,a; + if (4 == wxSscanf(str, format.c_str(), &r, &g, &b, &a)) + { + m_r = r; + m_g = g; + m_b = b; + m_a = a; + return true; + } + + return false; +} +*/ + +//---------------------------------------------------------------------------- +// wxGenericPen +//---------------------------------------------------------------------------- +IMPLEMENT_DYNAMIC_CLASS(wxGenericPen, wxObject) + +class wxGenericPenRefData : public wxObjectRefData +{ +public: + wxGenericPenRefData(int width = 1, int style = wxSOLID, + int cap = wxCAP_ROUND, int join = wxJOIN_ROUND) + : wxObjectRefData(), m_width(width), m_style(style), + m_cap(cap), m_join(join), + m_dash_count(0), m_dash(NULL) {} + + wxGenericPenRefData(const wxGenericPenRefData& data) : wxObjectRefData(), + m_colour(data.m_colour), m_width(data.m_width), m_style(data.m_style), + m_cap(data.m_cap), m_join(data.m_join), + m_dash_count(data.m_dash_count), m_dash(NULL) + { + if (data.m_dash) + { + m_dash = (wxDash*)malloc(m_dash_count*sizeof(wxDash)); + memcpy(m_dash, data.m_dash, m_dash_count*sizeof(wxDash)); + } + } + + ~wxGenericPenRefData() { if (m_dash) free(m_dash); } + + wxGenericColour m_colour; + int m_width; + int m_style; + int m_cap; + int m_join; + + int m_dash_count; // don't arbitrarily adjust these! + wxDash *m_dash; +}; + +#define M_GPENDATA ((wxGenericPenRefData*)m_refData) + +//---------------------------------------------------------------------------- +wxObjectRefData *wxGenericPen::CreateRefData() const +{ + return new wxGenericPenRefData; +} +wxObjectRefData *wxGenericPen::CloneRefData(const wxObjectRefData *data) const +{ + return new wxGenericPenRefData(*(const wxGenericPenRefData *)data); +} + +void wxGenericPen::Create( const wxGenericPen &pen ) +{ + Ref(pen); +} +void wxGenericPen::Create( const wxPen &pen ) +{ + UnRef(); + m_refData = new wxGenericPenRefData; + Set(pen); +} +void wxGenericPen::Create(const wxGenericColour &colour, int width, int style, + int cap, int join ) +{ + UnRef(); + m_refData = new wxGenericPenRefData(width, style, cap, join); + M_GPENDATA->m_colour = colour; +} +void wxGenericPen::Create(const wxColour &colour, int width, int style, + int cap, int join ) +{ + Create(wxGenericColour(colour), width, style, cap, join); +} + +void wxGenericPen::Set( const wxGenericPen& pen ) +{ + wxCHECK_RET(Ok() && pen.Ok(), wxT("Invalid generic pen")); + SetColour(pen.GetColour()); + M_GPENDATA->m_width = pen.GetWidth(); + M_GPENDATA->m_style = pen.GetStyle(); + M_GPENDATA->m_cap = pen.GetCap(); + M_GPENDATA->m_join = pen.GetJoin(); + + wxDash* dash; + int n_dashes = pen.GetDashes(&dash); + SetDashes(n_dashes, dash); +} +void wxGenericPen::Set( const wxPen &pen ) +{ + wxCHECK_RET(Ok() && pen.Ok(), wxT("Invalid generic pen")); + SetColour(pen.GetColour()); + M_GPENDATA->m_width = pen.GetWidth(); + M_GPENDATA->m_style = pen.GetStyle(); + M_GPENDATA->m_cap = pen.GetCap(); + M_GPENDATA->m_join = pen.GetJoin(); + + wxDash* dash; + int n_dashes = pen.GetDashes(&dash); + SetDashes(n_dashes, dash); + + // or SetDashes(pen.GetDashCount(), pen.GetDash()); not in msw 2.4 +} +void wxGenericPen::SetColour( const wxGenericColour &colour ) +{ + wxCHECK_RET(Ok() && colour.Ok(), wxT("Invalid generic pen or colour")); + M_GPENDATA->m_colour = colour; +} +void wxGenericPen::SetColour( const wxColour &colour ) +{ + SetColour(wxGenericColour(colour)); +} +void wxGenericPen::SetColour( int red, int green, int blue, int alpha ) +{ + SetColour(wxGenericColour(red, green, blue, alpha)); +} +void wxGenericPen::SetCap( int capStyle ) +{ + wxCHECK_RET(Ok(), wxT("Invalid generic pen")); + M_GPENDATA->m_cap = capStyle; +} +void wxGenericPen::SetJoin( int joinStyle ) +{ + wxCHECK_RET(Ok(), wxT("Invalid generic pen")); + M_GPENDATA->m_join = joinStyle; +} +void wxGenericPen::SetStyle( int style ) +{ + wxCHECK_RET(Ok(), wxT("Invalid generic pen")); + M_GPENDATA->m_style = style; +} +void wxGenericPen::SetWidth( int width ) +{ + wxCHECK_RET(Ok(), wxT("Invalid generic pen")); + M_GPENDATA->m_width = width; +} +void wxGenericPen::SetDashes( int number_of_dashes, const wxDash *dash ) +{ + wxCHECK_RET(Ok(), wxT("Invalid generic pen")); + wxCHECK_RET(((number_of_dashes == 0) && !dash) || + ((number_of_dashes > 0) && dash), wxT("Invalid dashes for pen")); + + // internal double check to see if somebody's messed with this + //wxCHECK_RET(((M_GPENDATA->m_dash_count == 0) && !M_GPENDATA->m_dash) || + // ((M_GPENDATA->m_dash_count != 0) && M_GPENDATA->m_dash), wxT("Invalid internal dashes for pen")); + + if (M_GPENDATA->m_dash) + { + free(M_GPENDATA->m_dash); + M_GPENDATA->m_dash = NULL; + M_GPENDATA->m_dash_count = 0; + } + + if (!dash) + return; + + M_GPENDATA->m_dash_count = number_of_dashes; + M_GPENDATA->m_dash = (wxDash*)malloc(number_of_dashes*sizeof(wxDash)); + memcpy(M_GPENDATA->m_dash, dash, number_of_dashes*sizeof(wxDash)); +} + +wxPen wxGenericPen::GetPen() const +{ + wxCHECK_MSG(Ok(), wxNullPen, wxT("Invalid generic pen")); + wxPen pen(M_GPENDATA->m_colour.GetColour(), M_GPENDATA->m_width, M_GPENDATA->m_style); + pen.SetCap(M_GPENDATA->m_cap); + pen.SetJoin(M_GPENDATA->m_join); + if (M_GPENDATA->m_dash_count > 0) + pen.SetDashes(M_GPENDATA->m_dash_count, M_GPENDATA->m_dash); + + return pen; +} + +wxGenericColour wxGenericPen::GetGenericColour() const +{ + wxCHECK_MSG(Ok(), wxNullGenericColour, wxT("Invalid generic pen")); + return M_GPENDATA->m_colour; +} +wxColour wxGenericPen::GetColour() const +{ + wxCHECK_MSG(Ok(), wxNullColour, wxT("Invalid generic pen")); + return M_GPENDATA->m_colour.GetColour(); +} +int wxGenericPen::GetWidth() const +{ + wxCHECK_MSG(Ok(), 1, wxT("Invalid generic pen")); + return M_GPENDATA->m_width; +} +int wxGenericPen::GetStyle() const +{ + wxCHECK_MSG(Ok(), wxSOLID, wxT("Invalid generic pen")); + return M_GPENDATA->m_style; +} +int wxGenericPen::GetCap() const +{ + wxCHECK_MSG(Ok(), wxCAP_ROUND, wxT("Invalid generic pen")); + return M_GPENDATA->m_cap; +} +int wxGenericPen::GetJoin() const +{ + wxCHECK_MSG(Ok(), wxJOIN_ROUND, wxT("Invalid generic pen")); + return M_GPENDATA->m_join; +} +int wxGenericPen::GetDashes(wxDash **ptr) const +{ + wxCHECK_MSG(Ok(), 0, wxT("Invalid generic pen")); + *ptr = (wxDash*)M_GPENDATA->m_dash; + return M_GPENDATA->m_dash_count; +} +int wxGenericPen::GetDashCount() const +{ + wxCHECK_MSG(Ok(), 0, wxT("Invalid generic pen")); + return M_GPENDATA->m_dash_count; +} +wxDash* wxGenericPen::GetDash() const +{ + wxCHECK_MSG(Ok(), NULL, wxT("Invalid generic pen")); + return M_GPENDATA->m_dash; +} + +bool wxGenericPen::IsSameAs(const wxGenericPen &pen) const +{ + wxCHECK_MSG(Ok() && pen.Ok(), false, wxT("Invalid generic pen")); + wxGenericPenRefData *pData = (wxGenericPenRefData*)pen.GetRefData(); + + if ((M_GPENDATA->m_colour != pData->m_colour) || (M_GPENDATA->m_width != pData->m_width) || + (M_GPENDATA->m_style != pData->m_style) || (M_GPENDATA->m_cap != pData->m_cap) || + (M_GPENDATA->m_join != pData->m_join) || (M_GPENDATA->m_dash_count != pen.GetDashCount())) + return false; + + if (M_GPENDATA->m_dash_count > 0) + return memcmp(M_GPENDATA->m_dash, pen.GetDash(), M_GPENDATA->m_dash_count*sizeof(wxDash)) == 0; + + return true; +} +bool wxGenericPen::IsSameAs(const wxPen &pen) const +{ + wxCHECK_MSG(Ok() && pen.Ok(), false, wxT("Invalid generic pen")); + wxGenericPen gp(pen); + gp.GetGenericColour().SetAlpha(M_GPENDATA->m_colour.GetAlpha()); + return IsSameAs(gp); +} + + + + +/* +wxString wxGenericPen::WriteString() const +{ + wxString str; + str.Printf(wxT("%s,%d,%d,%d,%d,%d"), m_colour.WriteString().c_str(), + m_width, m_style, m_cap, m_join, + m_dash_count); + + for (int i = 0; i < m_dash_count; i++) + str += wxString::Format(wxT(",%d"), m_dash[i]); + + return str; +} + +bool wxGenericPen::ReadString(const wxString& str) +{ + wxArrayString tokens = wxStringTokenize(str, wxT(", "), wxTOKEN_DEFAULT); + size_t n, count = tokens.GetCount(); + + if (count < 9u) + return false; + + long val; + + for (n = 0; n < count; n++) + { + if (!tokens[n].ToLong(&val)) + return false; + + values.Add(int(val)); + } + + m_colour.Set(values[0], values[1], values[2], values[3]); + + size_t num_dashes = values[8]; + + if (num_dashes != count - 9) + return false; + + if (num_dashes > 0) + { + wxDash *dash = new wxDash[num_dashes]; + for (n = 0; n < num_dashes; n++) + dash[n] = (wxDash)values[n]; + + SetDashes(num_dashes, dash); + delete dash; + } + + + m_width = values[4]; + m_style = values[5]; + m_cap = values[6]; + m_join = values[7]; + //m_dash_count = values[8]; + + return true; +} +*/ + + +//---------------------------------------------------------------------------- +// wxGenericBrush +//---------------------------------------------------------------------------- +IMPLEMENT_DYNAMIC_CLASS(wxGenericBrush, wxObject) + +class wxGenericBrushRefData : public wxObjectRefData +{ +public: + wxGenericBrushRefData(const wxGenericColour& c = wxNullGenericColour, + int style = wxSOLID) : wxObjectRefData(), + m_colour(c), m_style(style) {} + + wxGenericBrushRefData(const wxGenericBrushRefData& data) : wxObjectRefData(), + m_colour(data.m_colour), m_style(data.m_style), m_stipple(data.m_stipple) {} + + ~wxGenericBrushRefData() { } + + wxGenericColour m_colour; + int m_style; + wxBitmap m_stipple; +}; + +#define M_GBRUSHDATA ((wxGenericBrushRefData*)m_refData) + +//---------------------------------------------------------------------------- +wxObjectRefData *wxGenericBrush::CreateRefData() const +{ + return new wxGenericBrushRefData; +} +wxObjectRefData *wxGenericBrush::CloneRefData(const wxObjectRefData *data) const +{ + return new wxGenericBrushRefData(*(const wxGenericBrushRefData *)data); +} + +void wxGenericBrush::Create( const wxGenericBrush &brush ) +{ + Ref(brush); +} +void wxGenericBrush::Create( const wxBrush &brush ) +{ + UnRef(); + m_refData = new wxGenericBrushRefData; + Set(brush); +} +void wxGenericBrush::Create(const wxGenericColour &colour, int style) +{ + UnRef(); + m_refData = new wxGenericBrushRefData(colour, style); +} +void wxGenericBrush::Create(const wxColour &colour, int style) +{ + Create(wxGenericColour(colour), style); +} +void wxGenericBrush::Create( const wxBitmap &stipple ) +{ + UnRef(); + wxCHECK_RET(stipple.Ok(), wxT("Invalid bitmap in wxGenericBrush::Create")); + + int style = stipple.GetMask() ? wxSTIPPLE_MASK_OPAQUE : wxSTIPPLE; + m_refData = new wxGenericBrushRefData(wxNullGenericColour, style); + M_GBRUSHDATA->m_stipple = stipple; +} + +void wxGenericBrush::Set( const wxGenericBrush& brush ) +{ + wxCHECK_RET(Ok() && brush.Ok(), wxT("Invalid generic brush")); + SetColour(brush.GetColour()); + M_GBRUSHDATA->m_style = brush.GetStyle(); + wxBitmap* stipple = brush.GetStipple(); + if (stipple && stipple->Ok()) + M_GBRUSHDATA->m_stipple = *stipple; +} +void wxGenericBrush::Set( const wxBrush &brush ) +{ + wxCHECK_RET(Ok() && brush.Ok(), wxT("Invalid generic brush")); + SetColour(brush.GetColour()); + M_GBRUSHDATA->m_style = brush.GetStyle(); + wxBitmap* stipple = brush.GetStipple(); + if (stipple && stipple->Ok()) + M_GBRUSHDATA->m_stipple = *stipple; +} +void wxGenericBrush::SetColour( const wxGenericColour &colour ) +{ + wxCHECK_RET(Ok() && colour.Ok(), wxT("Invalid generic brush or colour")); + M_GBRUSHDATA->m_colour = colour; +} +void wxGenericBrush::SetColour( const wxColour &colour ) +{ + SetColour(wxGenericColour(colour)); +} +void wxGenericBrush::SetColour( int red, int green, int blue, int alpha ) +{ + SetColour(wxGenericColour(red, green, blue, alpha)); +} +void wxGenericBrush::SetStyle( int style ) +{ + wxCHECK_RET(Ok(), wxT("Invalid generic brush")); + M_GBRUSHDATA->m_style = style; +} +void wxGenericBrush::SetStipple(const wxBitmap& stipple) +{ + wxCHECK_RET(Ok(), wxT("Invalid generic brush")); + M_GBRUSHDATA->m_stipple = stipple; + M_GBRUSHDATA->m_style = stipple.GetMask() ? wxSTIPPLE_MASK_OPAQUE : wxSTIPPLE; + +} + +wxBrush wxGenericBrush::GetBrush() const +{ + wxCHECK_MSG(Ok(), wxNullBrush, wxT("Invalid generic brush")); + if (M_GBRUSHDATA->m_stipple.Ok()) + return wxBrush(M_GBRUSHDATA->m_stipple); + + return wxBrush(M_GBRUSHDATA->m_colour.GetColour(), M_GBRUSHDATA->m_style); +} + +wxGenericColour wxGenericBrush::GetGenericColour() const +{ + wxCHECK_MSG(Ok(), wxNullGenericColour, wxT("Invalid generic brush")); + return M_GBRUSHDATA->m_colour; +} +wxColour wxGenericBrush::GetColour() const +{ + wxCHECK_MSG(Ok(), wxNullColour, wxT("Invalid generic brush")); + return M_GBRUSHDATA->m_colour.GetColour(); +} +int wxGenericBrush::GetStyle() const +{ + wxCHECK_MSG(Ok(), wxSOLID, wxT("Invalid generic brush")); + return M_GBRUSHDATA->m_style; +} +wxBitmap* wxGenericBrush::GetStipple() const +{ + wxCHECK_MSG(Ok(), NULL, wxT("Invalid generic brush")); + return &M_GBRUSHDATA->m_stipple; +} + +bool wxGenericBrush::IsSameAs(const wxGenericBrush& brush) const +{ + wxCHECK_MSG(Ok() && brush.Ok(), 1, wxT("Invalid generic brush")); + wxGenericBrushRefData *bData = (wxGenericBrushRefData*)brush.GetRefData(); + return (M_GBRUSHDATA->m_colour == bData->m_colour) && + (M_GBRUSHDATA->m_style == bData->m_style) && + (M_GBRUSHDATA->m_stipple == bData->m_stipple); +} +bool wxGenericBrush::IsSameAs(const wxBrush& brush) const +{ + wxCHECK_MSG(Ok() && brush.Ok(), 1, wxT("Invalid generic brush")); + wxGenericBrush gB(brush); + gB.GetGenericColour().SetAlpha(M_GBRUSHDATA->m_colour.GetAlpha()); + return IsSameAs(gB); +} diff --git a/.svn/pristine/43/43b895cd17cba00a534d3c6775127c7af3dfd11c.svn-base b/.svn/pristine/43/43b895cd17cba00a534d3c6775127c7af3dfd11c.svn-base new file mode 100644 index 0000000..3d982e3 --- /dev/null +++ b/.svn/pristine/43/43b895cd17cba00a534d3c6775127c7af3dfd11c.svn-base @@ -0,0 +1,153 @@ +/** + * @file + * @brief Implementation of reading 3D scans + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "slam6d/scan_io_zuf.h" +#include "slam6d/globals.icc" +#include +using std::ifstream; +#include +using std::cerr; +using std::endl; + +#include +using std::swap; + +#ifdef _MSC_VER +#include +#endif + +/** + * Reads specified scans from given directory in + * the file format ZuF from Zoller+Froehlich AG + * uses. It will be compiled as shared lib. + * + * Scan poses will NOT be initialized after a call + * to this function. Initial pose estimation works + * only with the -p switch, i.e., trusting the initial + * estimations by Riegl. Actually, the Riegl poses + * are high precise and this function puts noise + * on it. + * + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param dir The directory from which to read + * @param maxDist Reads only Points up to this Distance + * @param minDist Reads only Points from this Distance + * @param euler Initital pose estimates (will not be applied to the points + * @param ptss Vector containing the read points + */ +int ScanIO_zuf::readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss) +{ + static int fileCounter = start; + string scanFileName; + string poseFileName; + + ifstream scan_in, pose_in; + int my_fileNr = fileCounter; + + if (end > -1 && fileCounter > end) return -1; // 'nuf read + + + poseFileName = dir + "2811CSODRE" + to_string(fileCounter,2) + "_sub2.rgp.txtMATRIX.txt"; + scanFileName = dir + "2811CSODRE" + to_string(fileCounter,2) + "_sub2.rgp.txt"; + + scan_in.open(scanFileName.c_str()); + pose_in.open(poseFileName.c_str()); + // read 3D scan + + if (!pose_in.good() && !scan_in.good()) return -1; // no more files in the directory + if (!pose_in.good()) { cerr << "ERROR: Missing file " << poseFileName << endl; exit(1); } + if (!scan_in.good()) { cerr << "ERROR: Missing file " << scanFileName << endl; exit(1); } + cout << "Processing Scan " << scanFileName; + cout.flush(); + + char firstline[255]; + scan_in.getline(firstline, 255); + + double rPos[3] = { 0.0, 0.0, 0.0 }; + double rPosTheta[16] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }; + double inMatrix[16]; + char dummy[255]; + pose_in.getline(dummy, 255); + pose_in.getline(dummy, 255); + scan_in.getline(dummy, 255); + + for (unsigned int i = 0; i < 16; pose_in >> inMatrix[i++]); + + + Matrix4ToEuler(inMatrix, rPosTheta, rPos); + + euler[0] = 100 * inMatrix[3]; + euler[1] = 100 * inMatrix[11]; + euler[2] = 100 * inMatrix[7]; + + euler[3] = rPosTheta[0]; + euler[4] = rPosTheta[2]; + euler[5] = rPosTheta[1]; + + cout << " @ pose (" << euler[0] << "," << euler[1] << "," << euler[2] + << "," << euler[3] << "," << euler[4] << "," << euler[5] << ")" << endl; + + while (scan_in.good()) { + Point p; + int dummy; + scan_in >> dummy >> dummy >> p.x >> p.z >> p.y >> dummy >> dummy >> dummy; + + p.x *= 100; + p.y *= 100; + p.z *= 100; + + ptss.push_back(p); + } + + cout << " done" << endl; + + scan_in.close(); + scan_in.clear(); + pose_in.close(); + pose_in.clear(); + fileCounter++; + + return my_fileNr; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_zuf; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/.svn/pristine/43/43cd0b5ddb37ebdd4d8fdc0894e83e2ea184ff79.svn-base b/.svn/pristine/43/43cd0b5ddb37ebdd4d8fdc0894e83e2ea184ff79.svn-base new file mode 100644 index 0000000..96fe916 --- /dev/null +++ b/.svn/pristine/43/43cd0b5ddb37ebdd4d8fdc0894e83e2ea184ff79.svn-base @@ -0,0 +1,143 @@ +/** + * @file + * @brief Metrics for measuring various aspects of an application + * @author Thomas Escher + */ + +#ifndef METRICS_H +#define METRICS_H + +#include + +#include +#include + +#ifdef _MSC_VER +#include +#else +#include +#endif + +template +class Metric { +public: + //! Reserve a minimum of 1k values to reduced allocation overhead in between + Metric(unsigned int reserve = 1000) { + m_values.reserve(reserve); + m_use_lock = 0; + } + + //! Print the sum of this metric + T sum() const { + T value = 0; + for(typename std::vector::const_iterator it = m_values.begin(); it != m_values.end(); ++it) + value += *it; + return value; + } + + //! Print the average of this metric + T average() const { + if(m_values.size() != 0) + return sum() / (T)(m_values.size()); + else + return (T)0; + } + + std::size_t size() const { + return m_values.size(); + } + + void reset() { + m_values.clear(); + } + + //! If functions will be called in a multithread context, these will enable safety + void set_threadsafety(bool multithreaded) { + boost::lock_guard lock(m_mutex_commit); + if(multithreaded) { + ++m_use_lock; + } else { + --m_use_lock; + } + } + +protected: + inline void commit(const T& value) { + if(m_use_lock > 0) { + boost::lock_guard lock(m_mutex_commit); + m_values.push_back(value); + } else { + m_values.push_back(value); + } + } + +private: + std::vector m_values; + volatile unsigned int m_use_lock; + boost::mutex m_mutex_commit; +}; + +#ifdef _MSC_VER + typedef LARGE_INTEGER Timer; +#else + typedef timeval Timer; +#endif + +/** + * @brief Measures time differences in seconds. + */ +class TimeMetric : public Metric { +public: + TimeMetric(unsigned int reserve = 1000); + + //! Start the timer + Timer start(); + + //! End the timer and commit value + void end(Timer&); + +private: +#ifdef _MSC_VER + static LARGE_INTEGER frequency; + static bool init; +#endif +}; + +/** + * @brief Measures access count or size. + */ +class CounterMetric : public Metric { +public: + CounterMetric(unsigned int reserve = 1000); + void add(unsigned long long value = 1); + +private: +}; + + + +struct ServerMetric { + static TimeMetric scan_loading, cacheio_write_time, cacheio_read_time; + static CounterMetric cacheio_write_size, cacheio_read_size; + static void print(); +}; + +struct ClientMetric { + static TimeMetric + // Scan + // directory loading + read_scan_time, scan_load_time, + // reduce, transform, copy, create tree as part of the reduction and tree preparation + calc_reduced_points_time, transform_time, copy_original_time, create_tree_time, + // new scanserver only times + on_demand_reduction_time, create_metatree_time, + // part of transform dealing with frames + add_frames_time, + // slam6D + matching_time, + // ClientInterface + clientinterface_time, cache_miss_time, allocate_time, frames_time; + static void print(bool scanserver = false); +}; + +#endif //METRICS_H diff --git a/.svn/pristine/44/44a30a4bb3adee051057b79d556c73c668b3d847.svn-base b/.svn/pristine/44/44a30a4bb3adee051057b79d556c73c668b3d847.svn-base new file mode 100644 index 0000000..f984875 --- /dev/null +++ b/.svn/pristine/44/44a30a4bb3adee051057b79d556c73c668b3d847.svn-base @@ -0,0 +1,2626 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: filebrws.cpp +// Author: John Labenski +// Created: 07/01/02 +// Copyright: John Labenski, 2002 +// License: wxWidgets +///////////////////////////////////////////////////////////////////////////// + +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) + #pragma implementation "filebrws.h" +#endif + +// For compilers that support precompilation, includes "wx/wx.h". +#include "wx/wxprec.h" + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#ifndef WX_PRECOMP + #include "wx/wx.h" +#endif // WX_PRECOMP + +#include "wx/mimetype.h" +#include "wx/tglbtn.h" // for EVT_TOGGLE_BUTTON +#include "wx/splitter.h" +#include "wx/imaglist.h" +#include "wx/confbase.h" +#include "wx/filename.h" +#include "wx/dir.h" +#include "wx/artprov.h" +#include "wx/image.h" // wxInitAllImageHandlers +#include "wx/renderer.h" +#include "wx/file.h" +#include "wx/txtstrm.h" +#include "wx/wfstream.h" + +#include "wx/filefn.h" // wxStat + +#include "wx/things/filebrws.h" + +#include "wx/arrimpl.cpp" +WX_DEFINE_OBJARRAY(wxArrayFileData); + +// #include "wx/stedit/stedit.h" + +// defined in src/generic/dirctrlg.cpp +extern size_t wxGetAvailableDrives(wxArrayString &paths, wxArrayString &names, wxArrayInt &icon_ids); + +#define BORDER 5 +#define MIN_SPLIT 8 + +//------------------------------------------------------------------------------ +// constants +//------------------------------------------------------------------------------ + +enum +{ + ID_wxFILEBROWSER_PATH_COMBO = 100, + ID_wxFILEBROWSER_PATH_BUTTON, + ID_wxFILEBROWSER_DIRCTRL, + ID_wxFILEBROWSER_LISTCTRL, + ID_wxFLEBROWSER_VIEW_TOOLBAR, + ID_wxFLEBROWSER_PATH_TOOLBAR, + + ID_wxFILEBROWSER_FILTER_COMBO, + + ID_wxFILEBROWSER_VIEW_BUTTON, + + ID_wxFILEBROWSER_VIEW_TREE, + ID_wxFILEBROWSER_VIEW_LIST, + ID_wxFILEBROWSER_VIEW_DETAILS, + ID_wxFILEBROWSER_VIEW_SMALL_ICON, + ID_wxFILEBROWSER_VIEW_LARGE_ICON, + ID_wxFILEBROWSER_VIEW_PREVIEW, + + ID_wxFILEBROWSER_GO_BACK, + ID_wxFILEBROWSER_GO_FORWARD, + ID_wxFILEBROWSER_GO_UP, + ID_wxFILEBROWSER_GO_HOME, + ID_wxFILEBROWSER_REFRESH, + + ID_wxFILEBROWSER_TREE_MENU_PROPERITES, + + ID_wxFILEBROWSER_LIST_MENU_VIEW_FILE, + ID_wxFILEBROWSER_LIST_MENU_OPEN_WITH, + ID_wxFILEBROWSER_LIST_MENU_NEW_FOLDER, + ID_wxFILEBROWSER_LIST_MENU_DELETE, + ID_wxFILEBROWSER_LIST_MENU_RENAME, + ID_wxFILEBROWSER_LIST_MENU_PROPERITES, + + ID_wxFILEBROWSER_LIST_MENU_OPTIONS, + ID_wxFILEBROWSER_SHOW_HIDDEN, + ID_wxFILEBROWSER_SHOW_FOLDERS, + ID_wxFILEBROWSER_SPLIT_VERTICAL, + + ID_wxFILEBROWSER_COMBOSETPATH, // for delayed setting path to get out of combo event for Gtk + ID_wxFILEBROWSER_COMBOSETFILTER +}; + +int wxFileBrowser::FBStyleToLCStyle(int s) const // wxFileBrowserStyles_Type to wxLC_XXX +{ + return + (s)&wxFILEBROWSER_TREE ? wxLC_REPORT : + (s)&wxFILEBROWSER_LIST ? wxLC_LIST : + (s)&wxFILEBROWSER_DETAILS ? wxLC_REPORT : + (s)&wxFILEBROWSER_SMALL_ICON ? wxLC_SMALL_ICON : + (s)&wxFILEBROWSER_LARGE_ICON ? wxLC_ICON : + (s)&wxFILEBROWSER_PREVIEW ? wxLC_ICON : wxLC_REPORT; +} +int wxFileBrowser::FBStyleToMenuID(int s) const // wxFileBrowserStyles_Type menu id +{ + return + (s)&wxFILEBROWSER_TREE ? ID_wxFILEBROWSER_VIEW_TREE : + (s)&wxFILEBROWSER_LIST ? ID_wxFILEBROWSER_VIEW_LIST : + (s)&wxFILEBROWSER_DETAILS ? ID_wxFILEBROWSER_VIEW_DETAILS : + (s)&wxFILEBROWSER_SMALL_ICON ? ID_wxFILEBROWSER_VIEW_SMALL_ICON : + (s)&wxFILEBROWSER_LARGE_ICON ? ID_wxFILEBROWSER_VIEW_LARGE_ICON : + (s)&wxFILEBROWSER_PREVIEW ? ID_wxFILEBROWSER_VIEW_PREVIEW : ID_wxFILEBROWSER_VIEW_DETAILS; +} +int wxFileBrowser::MenuIDToFBStyle(int id) const // menu id to wxFileBrowserStyles_Type +{ + return + (id)==ID_wxFILEBROWSER_VIEW_TREE ? wxFILEBROWSER_TREE : + (id)==ID_wxFILEBROWSER_VIEW_LIST ? wxFILEBROWSER_LIST : + (id)==ID_wxFILEBROWSER_VIEW_DETAILS ? wxFILEBROWSER_DETAILS : + (id)==ID_wxFILEBROWSER_VIEW_SMALL_ICON ? wxFILEBROWSER_SMALL_ICON : + (id)==ID_wxFILEBROWSER_VIEW_LARGE_ICON ? wxFILEBROWSER_LARGE_ICON : + (id)==ID_wxFILEBROWSER_VIEW_PREVIEW ? wxFILEBROWSER_PREVIEW : wxFILEBROWSER_DETAILS; +} + +//============================================================================ +// Button Icons +//============================================================================ +/* XPM */ +/* +static const char *view_xpm_data[] = { +// columns rows colors chars-per-pixel +"16 16 4 1", +"a c Black", +"b c #0000FF", +"c c #FFFFFF", +"d c #808080", +// pixels +"aaaaaaaaaaaaaaaa", +"abbbbbbbbbbbbbba", +"abbbbbbbbbbbbbba", +"aaaaaaaaaaaaaaaa", +"adddddddddddddda", +"acccccccccccccca", +"acbbccccbbccccca", +"acbbaaacbbaaacca", +"acccccccccccccca", +"acbbccccbbccccca", +"acbbaaacbbaaacca", +"acccccccccccccca", +"acbbccccbbccccca", +"acbbaaacbbaaacca", +"acccccccccccccca", +"aaaaaaaaaaaaaaaa"}; + +static const char *details_xpm_data[]={ +"16 15 4 1", +"# c None", +"a c #000000", +"b c #000080", +". c #c0c0c0", +"################", +"###aaaa#aaa#aaa#", +"################", +"bbbbbbbbbbbbbbbb", +"################", +"b##aaaa#aaa#aaa#", +"################", +"b##aaaa#aaa#aaa#", +"################", +"b##aaaa#aaa#aaa#", +"################", +"b##aaaa#aaa#aaa#", +"################", +"b##aaaa#aaa#aaa#", +"################"}; + +static const char *list_xpm_data[]={ +"16 15 4 1", +". c None", +"b c #000000", +"# c #000080", +"a c #ffffff", +"................", +"##......##......", +"#a#.bbb.#a#.bbb.", +"###.....###.....", +"................", +"................", +"##......##......", +"#a#.bbb.#a#.bbb.", +"###.....###.....", +"................", +"................", +"##......##......", +"#a#.bbb.#a#.bbb.", +"###.....###.....", +"................"}; + +static const char *large_icons_xpm_data[]={ +"16 15 4 1", +". c None", +"b c #000000", +"# c #000080", +"a c #ffffff", +"................", +"..###...........", +"..#a##..........", +"..#aa#..........", +"..#aa#..........", +"..####..........", +"................", +".bbbbbb...###...", +"..........#a##..", +"..........#aa#..", +"..........#aa#..", +"..........####..", +"................", +".........bbbbbb.", +"................"}; + +static const char *small_icons_xpm_data[]={ +"16 15 4 1", +". c None", +"b c #000000", +"# c #000080", +"a c #ffffff", +"................", +".##.............", +".#a#.bbb........", +".###............", +"................", +"................", +"........##......", +"........#a#.bbb.", +"........###.....", +"................", +"................", +"...##...........", +"...#a#.bbb......", +"...###..........", +"................"}; + +static const char *tree_xpm_data[]={ +"16 15 4 1", +". c None", +"# c #000000", +"a c #ffff00", +"b c #ffffff", +".#aa#...........", +".#a##...........", +"..#.............", +"..####aa#.......", +".....#a##.......", +"......#.........", +"......####b#b#..", +"......#..#b#b#..", +"......#.........", +"......####b#b#..", +"......#..#b#b#..", +"......#.........", +".......###b#b#..", +".........#b#b#..", +"................"}; + +static const char *preview_xpm_data[]={ +"16 15 14 1", +". c None", +"k c #000080", +"l c #0058c0", +"g c #0080ff", +"e c #585858", +"c c #808080", +"b c #89562f", +"f c #a0a0a0", +"h c #a86a3a", +"j c #bd7741", +"i c #d48549", +"# c #ff0000", +"a c #ffff00", +"d c #ffffff", +".......###......", +".a..a..bc.#.....", +"..aa...bdc......", +"..aa..cbddc.....", +".a..acdbdddc....", +"....cddbddddc...", +"....eddbddddf...", +"....eddbdddddf..", +".....edbddddff..", +"..g.hiijiiih.g..", +".gggghiiiihgggg.", +".kllllhhhhggllk.", +".llllllllllllll.", +".kklkllklklklkk.", +"................"}; + +static const char *hidden_xpm_data[] = { +"16 15 7 1", +" c None", +"a c Black", +"b c #EFBE1B", +"d c #F6F0B4", +"e c #FFEF7D", +"f c #FBD915", +"g c #8E8220", +" ", +" aaa ", +" addfa ", +" adffffa ", +" adfdadba ", +" affaaabga ", +" aedadbga ", +" adfbbbgga ", +" adfbaggga ", +" adfba aaa ", +" adfba ", +" adfbgga ", +" abbaga ", +" aa a ", +" "}; +*/ + +wxBitmap GetBitmapFromIconId(int imageId) +{ + return wxTheFileIconsTable->GetSmallImageList()->GetBitmap(imageId); +} + +// ---------------------------------------------------------------------------- +// CopyDir - copy a full directory recursively, returns # files copied +// code taken and modified from wxWidgets forum, by "Tyler" - public domain +// ---------------------------------------------------------------------------- + +int CopyDir(const wxString& fromDir, const wxString& toDir) +{ + wxString from(fromDir), to(toDir); + + if (!from.length() || !to.length()) return false; + + // append a slash if there is not one (for easier parsing) + // because who knows what people will pass to the function. + if (to[to.length()-1] != wxFILE_SEP_PATH) + to += wxFILE_SEP_PATH; + if (from[from.length()-1] != wxFILE_SEP_PATH) + from += wxFILE_SEP_PATH; + + // first make sure that the source dir exists + if(!wxDir::Exists(from)) + { + wxLogError(from + wxT(" does not exist. Can not copy directory.")); + return 0; + } + + if (!wxDir::Exists(to)) + wxMkdir(to); + + wxDir dir(from); + wxString filename; + int count = 0; + + if (dir.GetFirst(&filename)) + { + do { + if (wxDirExists(from + filename)) + { + wxMkdir(to + filename); + count += CopyDir(from + filename, to + filename); + } + else + { + wxCopyFile(from + filename, to + filename); + count++; + } + } + while (dir.GetNext(&filename)); + } + return count; +} + +//------------------------------------------------------------------------------ +// MultilineTextDialog - makes the wxTextEntryDialog multiline +//------------------------------------------------------------------------------ + +MultilineTextDialog::MultilineTextDialog(wxWindow *parent, + const wxString& message, + const wxString& caption, + const wxString& value, + long style, + const wxPoint& pos) + :wxTextEntryDialog(parent, message, caption, value, + style|wxTextEntryDialogStyle|wxTE_MULTILINE, pos) +{ + int height = m_textctrl->GetSize().y; + m_textctrl->SetSize(300, 100); + height = (100-height > 0) ? 100 - height : 0; + wxSize size(GetSize()); + SetSize(size.x, size.y+height); + Layout(); + //m_textctrl->SetEditable(false); +} + +//------------------------------------------------------------------------------ +// MultilineTextDialog +//------------------------------------------------------------------------------ +#define ID_OPENWITH_BROWSE 5 +#define ID_OPENWITH_TEXTCTRL 6 + +class OpenWithDialog : public wxDialog +{ +public: + OpenWithDialog(wxWindow* parent, wxWindowID winId, + const wxFileData& fileData, + const wxString& caption = wxT("Open With"), + const wxString& openCommand = wxEmptyString, + long style = wxDEFAULT_DIALOG_STYLE, + const wxPoint& pos = wxDefaultPosition) : wxDialog(), m_fileData(fileData) + { + m_textCtrl = NULL; + Create(parent, winId, fileData, caption, openCommand, style, pos); + } + bool Create(wxWindow* parent, wxWindowID winId, + const wxFileData& fileData, + const wxString& caption = wxT("Open With"), + const wxString& openCommand = wxEmptyString, + long style = wxDEFAULT_DIALOG_STYLE, + const wxPoint& pos = wxDefaultPosition); + + wxString GetOpenCommand() const { return m_command; } + +protected: + void OnButton(wxCommandEvent& event); + + wxString m_command; + wxFileData m_fileData; + wxTextCtrl *m_textCtrl; + DECLARE_EVENT_TABLE(); +}; + +BEGIN_EVENT_TABLE(OpenWithDialog, wxDialog) + EVT_BUTTON(-1, OpenWithDialog::OnButton) +END_EVENT_TABLE() + +bool OpenWithDialog::Create(wxWindow *parent, wxWindowID winId, + const wxFileData& fileData, + const wxString& caption, + const wxString& openCommand, + long style, const wxPoint& pos) +{ + if (!wxDialog::Create(parent, winId, caption, pos, wxDefaultSize, style)) + return false; + + m_fileData = fileData; + wxFileName fileName(fileData.GetFilePath()); + wxString openCmd = openCommand; + wxString description(wxT("Unknown file type")); + if (openCmd.IsEmpty()) + { + wxFileType *fileType = wxTheMimeTypesManager->GetFileTypeFromExtension(fileName.GetExt()); + if (fileType) + { + fileType->GetDescription(&description); + openCmd = fileType->GetOpenCommand(fileName.GetFullPath()); + } + } + + wxBoxSizer *rootSizer = new wxBoxSizer( wxVERTICAL ); + + wxStaticText *labelText = new wxStaticText( this, wxID_ANY, wxT("Choose the program to open the file"), wxDefaultPosition, wxDefaultSize, 0 ); + rootSizer->Add( labelText, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 ); + + wxFlexGridSizer *iconSizer = new wxFlexGridSizer( 2, 0, 0 ); + iconSizer->AddGrowableCol( 1 ); + + wxBitmap iconBitmap = GetBitmapFromIconId(m_fileData.GetImageId()); + wxStaticBitmap *staticBitmap = new wxStaticBitmap( this, wxID_ANY, iconBitmap, wxDefaultPosition, wxDefaultSize ); + iconSizer->Add( staticBitmap, 0, wxALIGN_CENTER|wxALL, 5 ); + + wxStaticText *nameText = new wxStaticText( this, wxID_ANY, fileName.GetFullPath(), wxDefaultPosition, wxDefaultSize, 0 ); + iconSizer->Add( nameText, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 ); + + iconSizer->AddSpacer(5); + + wxStaticText *descripText = new wxStaticText( this, wxID_ANY, description, wxDefaultPosition, wxDefaultSize, 0 ); + iconSizer->Add( descripText, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 ); + + rootSizer->Add( iconSizer, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 ); + + wxStaticBox *staticBox = new wxStaticBox( this, wxID_ANY, wxT("Program") ); + wxStaticBoxSizer *staticBoxSizer = new wxStaticBoxSizer( staticBox, wxVERTICAL ); + + m_textCtrl = new wxTextCtrl( this, ID_OPENWITH_TEXTCTRL, openCmd, wxDefaultPosition, wxSize(400,-1), 0 ); + staticBoxSizer->Add( m_textCtrl, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 ); + + wxFlexGridSizer *browseSizer = new wxFlexGridSizer( 2, 0, 0 ); + browseSizer->AddGrowableCol( 1 ); + + wxButton *browseButton = new wxButton( this, ID_OPENWITH_BROWSE, wxT("Browse..."), wxDefaultPosition, wxDefaultSize, 0 ); + browseSizer->Add( browseButton, 0, wxALIGN_CENTER|wxALL, 5 ); + + //wxCheckBox *item10 = new wxCheckBox( this, wxID_ANY, wxT("Always use selected program to open this kind of file"), wxDefaultPosition, wxDefaultSize, 0 ); + //browseSizer->Add( item10, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 ); + browseSizer->AddSpacer(5); + staticBoxSizer->Add( browseSizer, 0, wxGROW|wxALIGN_CENTER|wxALL, 0 ); + + rootSizer->Add( staticBoxSizer, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 ); + + wxBoxSizer *buttonSizer = new wxBoxSizer( wxHORIZONTAL ); + + wxButton *okButton = new wxButton( this, wxID_OK, wxT("OK"), wxDefaultPosition, wxDefaultSize, 0 ); + okButton->SetDefault(); + buttonSizer->Add( okButton, 0, wxALIGN_CENTER|wxALL, 5 ); + + wxButton *cancelButton = new wxButton( this, wxID_CANCEL, wxT("Cancel"), wxDefaultPosition, wxDefaultSize, 0 ); + buttonSizer->Add( cancelButton, 0, wxALIGN_CENTER|wxALL, 5 ); + + rootSizer->Add( buttonSizer, 0, wxALIGN_CENTER|wxALL, 5 ); + + SetMinSize(wxSize(400, 300)); + SetSizer( rootSizer ); + rootSizer->SetSizeHints( this ); + return true; +} + +void OpenWithDialog::OnButton(wxCommandEvent& event) +{ + switch (event.GetId()) + { + case wxID_CANCEL : m_command.Clear(); break; + case wxID_OK : m_command = m_textCtrl->GetValue(); break; + case ID_OPENWITH_BROWSE : + { + wxString filters(wxT("All files (*)|*")); +#ifdef __WXMSW__ + filters = wxT("Executable files (*.exe)|*.exe|Batch files (*.bat)|*.bat|All files (*)|*"); +#endif //__WXMSW__ + wxString startPath = m_fileData.GetFilePath(); + wxString fileName = wxFileSelector( wxT("Open With"), + wxPathOnly(startPath), + wxFileNameFromPath(startPath), + wxEmptyString, + filters, + wxOPEN|wxFILE_MUST_EXIST ); + if (!fileName.IsEmpty()) + { + fileName += wxT(" \"") + m_fileData.GetFilePath() + wxT("\""); + m_textCtrl->SetValue(fileName); + } + + break; + } + }; + + event.Skip(); // let wxDialog exit if OK or CANCEL +} + +//------------------------------------------------------------------------------ +// wxFilePropertiesDialog - a properties dialog for a file +//------------------------------------------------------------------------------ + +class wxFilePropertiesDialog : public wxDialog +{ +public: + wxFilePropertiesDialog(wxWindow* parent, wxWindowID winId, + const wxFileData& fileData, + const wxString& caption = wxT("Properties"), + long style = wxDEFAULT_DIALOG_STYLE, + const wxPoint& pos = wxDefaultPosition) : wxDialog(), m_fileData(fileData) + { + Create(parent, winId, fileData, caption, style, pos); + } + bool Create(wxWindow* parent, wxWindowID winId, + const wxFileData& fileData, + const wxString& caption = wxT("Properties"), + long style = wxDEFAULT_DIALOG_STYLE, + const wxPoint& pos = wxDefaultPosition); + +protected: + wxFileData m_fileData; + DECLARE_EVENT_TABLE(); +}; + +BEGIN_EVENT_TABLE(wxFilePropertiesDialog, wxDialog) +END_EVENT_TABLE() + +bool wxFilePropertiesDialog::Create(wxWindow *parent, wxWindowID winId, + const wxFileData& fileData, + const wxString& caption, + long style, const wxPoint& pos) +{ + m_fileData = fileData; + + if (!wxDialog::Create(parent, winId, caption, pos, wxDefaultSize, style)) + return false; + + wxString typeStr; + wxString locationStr = fileData.GetFilePath().BeforeLast(wxFILE_SEP_PATH); + wxString sizeStr; + wxString modifiedStr = fileData.GetModificationTime(); + wxString attrStr = fileData.GetEntry(wxFileData::FileList_Perm); + + if (fileData.IsDir()) + { + typeStr = sizeStr = _("Directory"); + } + else if (fileData.IsLink()) + { + typeStr = sizeStr = _("Link"); + } + else if (fileData.IsDrive()) + { + typeStr = sizeStr = _("Drive"); + } + else if (fileData.IsFile()) + { + wxString ext = wxFileName(fileData.GetFileName()).GetExt(); + wxString description; + wxFileType *ft = wxTheMimeTypesManager->GetFileTypeFromExtension(ext); + if (ft && ft->GetDescription(&description)) + typeStr = description; + + if (description.IsEmpty()) // gtk does this... + { + if (!ext.IsEmpty()) + typeStr = ext + wxT(" file"); + else + typeStr = wxT("Unknown file type"); + } + + sizeStr = fileData.GetEntry(wxFileData::FileList_Size) + wxT(" bytes"); + attrStr = fileData.GetEntry(wxFileData::FileList_Perm); + } + + wxPanel *panel = new wxPanel(this, wxID_ANY); + wxBoxSizer *rootSizer = new wxBoxSizer( wxVERTICAL ); + wxFlexGridSizer *fileNameSizer = new wxFlexGridSizer( 2, 0, 0 ); + + wxBitmap iconBitmap = GetBitmapFromIconId(fileData.GetImageId()); + wxStaticBitmap *iconStaticBitmap = new wxStaticBitmap( panel, wxID_ANY, iconBitmap, + wxDefaultPosition, wxDefaultSize ); + fileNameSizer->Add( iconStaticBitmap, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); + + wxStaticText *fileNameText = new wxStaticText( panel, wxID_ANY, fileData.GetFileName(), wxDefaultPosition, wxDefaultSize, 0 ); + fileNameSizer->Add( fileNameText, 0, wxALIGN_CENTRE|wxALL, 5 ); + rootSizer->Add( fileNameSizer, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 ); + + wxStaticBox *generalBox = new wxStaticBox( panel, wxID_ANY, wxT("General") ); + wxStaticBoxSizer *generalBoxSizer = new wxStaticBoxSizer( generalBox, wxVERTICAL ); + wxFlexGridSizer *generalSizer = new wxFlexGridSizer( 2, 0, 0 ); + + wxStaticText *typeNameText = new wxStaticText( panel, wxID_ANY, wxT("Type:"), wxDefaultPosition, wxDefaultSize, 0 ); + generalSizer->Add( typeNameText, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); + + wxStaticText *typeText = new wxStaticText( panel, wxID_ANY, typeStr, wxDefaultPosition, wxDefaultSize, 0 ); + generalSizer->Add( typeText, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); + + wxStaticText *locationNameText = new wxStaticText( panel, wxID_ANY, wxT("Location:"), wxDefaultPosition, wxDefaultSize, 0 ); + generalSizer->Add( locationNameText, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); + + wxStaticText *locationText = new wxStaticText( panel, wxID_ANY, locationStr, wxDefaultPosition, wxDefaultSize, 0 ); + generalSizer->Add( locationText, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); + + wxStaticText *sizeNameText = new wxStaticText( panel, wxID_ANY, wxT("Size:"), wxDefaultPosition, wxDefaultSize, 0 ); + generalSizer->Add( sizeNameText, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); + + wxStaticText *sizeText = new wxStaticText( panel, wxID_ANY, sizeStr, wxDefaultPosition, wxDefaultSize, 0 ); + generalSizer->Add( sizeText, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); + + wxStaticText *modifiedNameText = new wxStaticText( panel, wxID_ANY, wxT("Modified:"), wxDefaultPosition, wxDefaultSize, 0 ); + generalSizer->Add( modifiedNameText, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); + + wxStaticText *modifiedText = new wxStaticText( panel, wxID_ANY, modifiedStr, wxDefaultPosition, wxDefaultSize, 0 ); + generalSizer->Add( modifiedText, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); + + wxStaticText *attributesNameText = new wxStaticText( panel, wxID_ANY, wxT("Attributes:"), wxDefaultPosition, wxDefaultSize, 0 ); + generalSizer->Add( attributesNameText, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); + + wxStaticText *attributesText = new wxStaticText( panel, wxID_ANY, attrStr, wxDefaultPosition, wxDefaultSize, 0 ); + generalSizer->Add( attributesText, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); + + generalBoxSizer->Add( generalSizer, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5 ); + rootSizer->Add( generalBoxSizer, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 ); + + wxFlexGridSizer *buttonSizer = new wxFlexGridSizer( 2, 0, 0 ); + wxButton *okButton = new wxButton( panel, wxID_OK, wxT("OK"), wxDefaultPosition, wxDefaultSize, 0 ); + okButton->SetDefault(); + buttonSizer->Add( okButton, 0, wxALIGN_CENTRE|wxALL, 5 ); + rootSizer->Add( buttonSizer, 0, wxALIGN_CENTRE|wxALL, 5 ); + + panel->SetAutoLayout( true ); + panel->SetSizer( rootSizer ); + rootSizer->Fit( panel ); + rootSizer->SetSizeHints( this ); + + // have a min size so it really only varies for really long paths + wxSize size = GetSize(); + if (size.x < 400) + SetSize(wxSize(400, size.y)); + + return true; +} + +//------------------------------------------------------------------------------ +// wxFileBrowserEvent, events for the wxFileBrowser +//------------------------------------------------------------------------------ +DEFINE_EVENT_TYPE(wxEVT_FILEBROWSER_FILE_SELECTED) +DEFINE_EVENT_TYPE(wxEVT_FILEBROWSER_FILE_ACTIVATED) +DEFINE_EVENT_TYPE(wxEVT_FILEBROWSER_DIR_SELECTED) +DEFINE_EVENT_TYPE(wxEVT_FILEBROWSER_DIR_ACTIVATED) + +IMPLEMENT_ABSTRACT_CLASS(wxFileBrowserEvent, wxCommandEvent) + +wxFileBrowserEvent::wxFileBrowserEvent(wxEventType commandType, + wxFileBrowser *fileBrowser, wxWindowID win_id) + :wxCommandEvent(commandType, win_id) +{ + SetEventObject( fileBrowser ); +} + +//---------------------------------------------------------------------------- +// wxFileBrowser +//---------------------------------------------------------------------------- +IMPLEMENT_DYNAMIC_CLASS(wxFileBrowser, wxControl); + +BEGIN_EVENT_TABLE(wxFileBrowser, wxControl) + // View toolbar items + EVT_MENU(ID_wxFILEBROWSER_VIEW_TREE, wxFileBrowser::OnViewButtons) + EVT_MENU(ID_wxFILEBROWSER_VIEW_LIST, wxFileBrowser::OnViewButtons) + EVT_MENU(ID_wxFILEBROWSER_VIEW_DETAILS, wxFileBrowser::OnViewButtons) + EVT_MENU(ID_wxFILEBROWSER_VIEW_SMALL_ICON, wxFileBrowser::OnViewButtons) + EVT_MENU(ID_wxFILEBROWSER_VIEW_LARGE_ICON, wxFileBrowser::OnViewButtons) + EVT_MENU(ID_wxFILEBROWSER_VIEW_PREVIEW, wxFileBrowser::OnViewButtons) + + EVT_BUTTON(ID_wxFILEBROWSER_VIEW_BUTTON, wxFileBrowser::OnViewButtons) + //EVT_MENU(ID_wxFILEBROWSER_VIEW_BUTTON, wxFileBrowser::OnViewButtons) + + // menu items for the right click treectrl menu + EVT_MENU(ID_wxFILEBROWSER_TREE_MENU_PROPERITES, wxFileBrowser::OnTreeMenu) + + // menu items for the right click listctrl menu + EVT_MENU(ID_wxFILEBROWSER_GO_BACK, wxFileBrowser::OnListMenu) + EVT_MENU(ID_wxFILEBROWSER_GO_FORWARD, wxFileBrowser::OnListMenu) + EVT_MENU(ID_wxFILEBROWSER_GO_UP, wxFileBrowser::OnListMenu) + EVT_MENU(ID_wxFILEBROWSER_GO_HOME, wxFileBrowser::OnListMenu) + EVT_MENU(ID_wxFILEBROWSER_REFRESH, wxFileBrowser::OnListMenu) + + EVT_MENU(wxID_OPEN, wxFileBrowser::OnListMenu) + EVT_MENU(ID_wxFILEBROWSER_LIST_MENU_VIEW_FILE, wxFileBrowser::OnListMenu) + EVT_MENU(ID_wxFILEBROWSER_LIST_MENU_OPEN_WITH, wxFileBrowser::OnListMenu) + EVT_MENU(ID_wxFILEBROWSER_LIST_MENU_NEW_FOLDER, wxFileBrowser::OnListMenu) + EVT_MENU(wxID_CUT, wxFileBrowser::OnListMenu) + EVT_MENU(wxID_COPY, wxFileBrowser::OnListMenu) + EVT_MENU(wxID_PASTE, wxFileBrowser::OnListMenu) + EVT_MENU(ID_wxFILEBROWSER_LIST_MENU_DELETE, wxFileBrowser::OnListMenu) + EVT_MENU(ID_wxFILEBROWSER_LIST_MENU_RENAME, wxFileBrowser::OnListMenu) + EVT_MENU(ID_wxFILEBROWSER_LIST_MENU_PROPERITES, wxFileBrowser::OnListMenu) + EVT_MENU(ID_wxFILEBROWSER_SHOW_HIDDEN, wxFileBrowser::OnListMenu) + EVT_MENU(ID_wxFILEBROWSER_SHOW_FOLDERS, wxFileBrowser::OnListMenu) + EVT_MENU(ID_wxFILEBROWSER_SPLIT_VERTICAL, wxFileBrowser::OnListMenu) + + // combobox events + EVT_COMBOBOX (ID_wxFILEBROWSER_FILTER_COMBO, wxFileBrowser::OnFilterCombo) + EVT_TEXT_ENTER(ID_wxFILEBROWSER_FILTER_COMBO, wxFileBrowser::OnFilterComboEnter) + EVT_COMBOBOX (ID_wxFILEBROWSER_PATH_COMBO, wxFileBrowser::OnPathCombo) + EVT_TEXT_ENTER(ID_wxFILEBROWSER_PATH_COMBO, wxFileBrowser::OnPathComboEnter) + EVT_BUTTON (ID_wxFILEBROWSER_PATH_BUTTON, wxFileBrowser::OnPathComboEnter) + // fake internal events to get around GTK combo event loops + EVT_MENU (ID_wxFILEBROWSER_COMBOSETPATH, wxFileBrowser::OnSetPath) + EVT_MENU (ID_wxFILEBROWSER_COMBOSETFILTER, wxFileBrowser::OnSetFilter) + + // TreeCtrl + EVT_TREE_SEL_CHANGED (wxID_ANY, wxFileBrowser::OnTreeItemSelection) + EVT_TREE_ITEM_ACTIVATED (wxID_ANY, wxFileBrowser::OnTreeItemActivation) + EVT_TREE_ITEM_RIGHT_CLICK(wxID_ANY, wxFileBrowser::OnTreeRightClick) + + // ListCtrl + EVT_LIST_ITEM_ACTIVATED (wxID_ANY, wxFileBrowser::OnListItemActivated) + EVT_LIST_ITEM_SELECTED (wxID_ANY, wxFileBrowser::OnListItemSelected) + EVT_LIST_ITEM_RIGHT_CLICK (wxID_ANY, wxFileBrowser::OnListRightClick) + + EVT_SIZE (wxFileBrowser::OnSize) + //EVT_IDLE (wxFileBrowser::OnIdle) +END_EVENT_TABLE() + +void wxFileBrowser::Init() +{ + m_ignore_tree_event = true; // turned off after Create + m_init_filters = 0; + m_browser_style = wxFILEBROWSER_LIST; + + m_path_history_index = 0; + + m_viewToolBar = NULL; + m_pathToolBar = NULL; + + m_viewButton = NULL; + m_filterCombo = NULL; + m_pathCombo = NULL; + m_splitterWin = NULL; + m_dirCtrl = NULL; + m_fileCtrl = NULL; + m_listMenu = NULL; + m_treeMenu = NULL; + m_viewMenu = NULL; + + m_filterComboSelection = 0; + m_pathComboSelection = 0; + + m_show_hidden = false; +} + +bool wxFileBrowser::Create( wxWindow *parent, const wxWindowID id, + const wxString& dir, + const wxPoint& pos, const wxSize& size, long style, + const wxString& filter, int defaultFilter, + const wxString& name) +{ + m_ignore_tree_event = true; + + if (!wxControl::Create(parent, id, pos, size, style, wxDefaultValidator, name)) + return false; + + // disable the log in case image handlers have already been initialized + { + wxLogNull logNull; + wxInitAllImageHandlers(); // need this for the icons + } + + // Find what directory to start with + if (!GetPathFromFilePath(dir, m_path)) + m_path = wxGetCwd(); + + // ------------------------------------------------------------------------ + // Create the popup menu for the wxFileCtrl + m_listMenu = new wxMenu; + m_listMenu->Append(wxID_OPEN, wxT("&Open")); + m_listMenu->Append(ID_wxFILEBROWSER_LIST_MENU_VIEW_FILE, wxT("&View file...")); + m_listMenu->Append(ID_wxFILEBROWSER_LIST_MENU_OPEN_WITH, wxT("Open &with...")); + m_listMenu->AppendSeparator(); + m_listMenu->Append(ID_wxFILEBROWSER_LIST_MENU_NEW_FOLDER, wxT("&New folder")); + m_listMenu->AppendSeparator(); + m_listMenu->Append(wxID_CUT, wxT("Cu&t")); + m_listMenu->Append(wxID_COPY, wxT("&Copy")); + m_listMenu->Append(wxID_PASTE, wxT("&Paste")); + m_listMenu->AppendSeparator(); + m_listMenu->Append(ID_wxFILEBROWSER_LIST_MENU_DELETE, wxT("&Delete...")); + m_listMenu->Append(ID_wxFILEBROWSER_LIST_MENU_RENAME, wxT("Rena&me")); + m_listMenu->AppendSeparator(); + m_listMenu->Append(ID_wxFILEBROWSER_LIST_MENU_PROPERITES, wxT("P&roperties")); + m_listMenu->AppendSeparator(); + + m_treeMenu = new wxMenu; + m_treeMenu->Append(ID_wxFILEBROWSER_TREE_MENU_PROPERITES, wxT("P&roperties")); + + wxMenu *optionsMenu = new wxMenu(wxEmptyString); + optionsMenu->AppendCheckItem(ID_wxFILEBROWSER_SHOW_HIDDEN, wxT("Show Hidden Files")); + optionsMenu->AppendCheckItem(ID_wxFILEBROWSER_SHOW_FOLDERS, wxT("Show Folders")); + optionsMenu->AppendCheckItem(ID_wxFILEBROWSER_SPLIT_VERTICAL, wxT("Split Vertically")); + m_listMenu->Append(ID_wxFILEBROWSER_LIST_MENU_OPTIONS, wxT("Optio&ns"), optionsMenu); + + // ------------------------------------------------------------------------ + // Create the menu for the view button menu + m_viewMenu = new wxMenu; + m_viewMenu->AppendRadioItem(ID_wxFILEBROWSER_VIEW_TREE, wxT("Tree view")); + m_viewMenu->AppendRadioItem(ID_wxFILEBROWSER_VIEW_LIST, wxT("List view")); + m_viewMenu->AppendRadioItem(ID_wxFILEBROWSER_VIEW_DETAILS, wxT("Details view")); + m_viewMenu->AppendRadioItem(ID_wxFILEBROWSER_VIEW_SMALL_ICON, wxT("Small icon view")); + //m_viewMenu->AppendRadioItem(ID_wxFILEBROWSER_VIEW_LARGE_ICON, wxT("Large icon view")); + //m_viewMenu->AppendRadioItem(ID_wxFILEBROWSER_VIEW_PREVIEW, wxT("Image preview view")); + + // ------------------------------------------------------------------------ + // Create the first Toolbar + m_viewToolBar = new wxToolBar(this, ID_wxFLEBROWSER_VIEW_TOOLBAR); + + m_viewToolBar->AddTool(ID_wxFILEBROWSER_GO_BACK, wxT("Back"), + wxArtProvider::GetBitmap(wxART_GO_BACK), wxArtProvider::GetBitmap(wxART_GO_BACK, wxART_TOOLBAR), + wxITEM_NORMAL, wxT("Go back one directory"), wxT("Go back one directory")); + m_viewToolBar->AddTool(ID_wxFILEBROWSER_GO_FORWARD, wxT("Forward"), + wxArtProvider::GetBitmap(wxART_GO_FORWARD), wxArtProvider::GetBitmap(wxART_GO_FORWARD, wxART_TOOLBAR), + wxITEM_NORMAL, wxT("Go forward one directory"), wxT("Go forward one directory")); + m_viewToolBar->AddTool(ID_wxFILEBROWSER_GO_UP, wxT("Up"), + wxArtProvider::GetBitmap(wxART_GO_DIR_UP), wxArtProvider::GetBitmap(wxART_GO_DIR_UP, wxART_TOOLBAR), + wxITEM_NORMAL, wxT("Go up one directory"), wxT("Go up one directory")); + m_viewToolBar->AddTool(ID_wxFILEBROWSER_GO_HOME, wxT("Home"), + wxArtProvider::GetBitmap(wxART_GO_HOME), wxArtProvider::GetBitmap(wxART_GO_HOME, wxART_TOOLBAR), + wxITEM_NORMAL, wxT("Go to your home directory"), wxT("Go to your home directory")); + m_viewToolBar->AddSeparator(); + + m_viewToolBar->AddCheckTool(ID_wxFILEBROWSER_SHOW_FOLDERS, wxT("Folders"), + wxArtProvider::GetBitmap(wxART_HELP_SIDE_PANEL), wxArtProvider::GetBitmap(wxART_HELP_SIDE_PANEL, wxART_TOOLBAR), + wxT("Show folder view"), wxT("Show folder view")); + m_viewToolBar->AddSeparator(); + + // MenuButton METHOD ---------------- +// m_viewButton = new wxMenuButton(m_viewToolBar, wxID_ANY, +// //wxBitmap(view_xpm_data), +// wxArtProvider::GetBitmap(wxART_LIST_VIEW), +// wxDefaultPosition, wxSize(32,22)); +// m_viewButton->AssignMenu(viewMenu, false); +// m_viewButton->SetToolTip(wxT("Change view mode")); +// m_viewToolBar->AddControl(m_viewButton); + + // CREATE BITMAP METHOD ---------------- + wxBitmap viewBmp(wxArtProvider::GetBitmap(wxART_LIST_VIEW)); //, wxART_TOOLBAR)); + wxSize toolBmpSize = m_viewToolBar->GetToolSize(); + wxSize toolSize = m_viewToolBar->GetToolSize(); + { + wxImage viewImg(viewBmp.ConvertToImage()); + int w = viewImg.GetWidth(), h = viewImg.GetHeight(); + int s = 10; + unsigned char r = 103, g = 200, b = 101; + viewImg.GetOrFindMaskColour(&r, &g, &b); + viewImg.Resize(wxSize(w + s, h), wxPoint(0,0), r, g, b); + viewImg.SetMask(false); + viewBmp = wxBitmap(viewImg); + wxMemoryDC memDC; + memDC.SelectObject(viewBmp); + wxRendererNative& renderer = wxRendererNative::Get(); + renderer.DrawComboBoxDropButton(this, memDC, wxRect(w, 0, s, toolBmpSize.y), wxCONTROL_PRESSED); + //renderer.DrawDropArrow(this, memDC, wxRect(w, 0, s, toolBmpSize.y)); + + memDC.SelectObject(wxNullBitmap); + viewImg = viewBmp.ConvertToImage(); + viewImg.SetMaskColour(r, g, b); + viewBmp = wxBitmap(viewImg); + } + + m_viewButton = new wxBitmapButton(m_viewToolBar, ID_wxFILEBROWSER_VIEW_BUTTON, + //wxBitmap(view_xpm_data), + viewBmp, + wxDefaultPosition, + wxSize(toolSize.GetWidth()+10, toolSize.GetHeight())); + m_viewButton->SetToolTip(wxT("Change view mode")); + m_viewToolBar->AddControl(m_viewButton); + + //m_viewToolBar->AddTool(ID_wxFILEBROWSER_VIEW_BUTTON, wxT("Views"), + // viewBmp, viewBmp, + // wxITEM_NORMAL, wxT("Change view mode"), wxT("Change view mode")); + + m_filterCombo = new wxComboBox(m_viewToolBar, ID_wxFILEBROWSER_FILTER_COMBO, + wxT("Any file (*.*)"), // sets init size + wxDefaultPosition, wxSize(40, wxDefaultCoord), + 0, NULL, + wxCB_DROPDOWN|wxTE_PROCESS_ENTER); + m_filterCombo->SetToolTip(wxT("Filter files using wildcards (file1?2.a*)")); + SetFilters(filter, defaultFilter); + m_viewToolBar->AddSeparator(); + m_viewToolBar->AddControl(m_filterCombo); + + m_viewToolBar->Realize(); + + // ------------------------------------------------------------------------ + // Create second Toolbar + m_pathToolBar = new wxToolBar(this, ID_wxFLEBROWSER_PATH_TOOLBAR); + + m_pathCombo = new wxComboBox(m_pathToolBar, ID_wxFILEBROWSER_PATH_COMBO, + wxT("C: I'm a pretty long dir name so I'm sized big"), + wxDefaultPosition, wxSize(40, wxDefaultCoord), + 0, NULL, + wxCB_DROPDOWN|wxTE_PROCESS_ENTER); + m_pathCombo->SetToolTip(wxT("Enter path")); + m_pathCombo->Append(GetPath(true), (void*)NULL); + m_pathCombo->SetSelection(0); + m_pathComboSelection = 0; + m_pathToolBar->AddControl(m_pathCombo); + + m_pathToolBar->AddTool(ID_wxFILEBROWSER_PATH_BUTTON, wxT("Open"), + wxArtProvider::GetBitmap(wxART_FILE_OPEN), wxArtProvider::GetBitmap(wxART_FILE_OPEN, wxART_TOOLBAR), + wxITEM_NORMAL, wxT("Go to path or open file"), wxT("Go to path or open file")); + + m_pathToolBar->Realize(); + + // ------------------------------------------------------------------------ + // Create the splitter window and children + int dirCtrlStyle = style & wxFILEBROWSER_TREE ? wxDIRCTRL_DIR_ONLY : 0; + m_splitterWin = new wxSplitterWindow(this, wxID_ANY, + wxDefaultPosition, wxDefaultSize, + wxSP_BORDER|wxSP_3D|wxCLIP_CHILDREN); + m_splitterWin->SetMinimumPaneSize(MIN_SPLIT); // don't let it unsplit + m_splitterWin->SetSashGravity(0.3); // bottom grows more than top + + m_dirCtrl = new wxGenericDirCtrl(m_splitterWin, ID_wxFILEBROWSER_DIRCTRL, + m_path, wxDefaultPosition, wxSize(50,50), + dirCtrlStyle|wxNO_BORDER, wxEmptyString, 0); + + m_dirCtrl->Show(true); + + m_fileCtrl = new wxFileCtrl(m_splitterWin, wxID_ANY, GetWild(), false, + wxDefaultPosition, wxSize(50,50), + wxNO_BORDER|wxLC_SINGLE_SEL|FBStyleToLCStyle(style)); + m_fileCtrl->Show(true); + m_fileCtrl->GoToDir(m_path); + + // ------------------------------------------------------------------------ + + SetBrowserStyle( style ); + m_splitterWin->Show(true); + + AddPathHistory(GetPath(true)); + + UpdateItems(); + m_ignore_tree_event = false; + return true; +} + +wxFileBrowser::~wxFileBrowser() +{ + // delete all the attached data + int n, count = m_filterCombo->GetCount(); + for ( n = 0; n < count; n++ ) + { + wxString *data = (wxString*)m_filterCombo->GetClientData(n); + delete data; + } + + delete m_listMenu; + delete m_treeMenu; + delete m_viewMenu; +} + +void wxFileBrowser::OnSize( wxSizeEvent &event ) +{ + //wxPrintf(wxT("OnSize GetSize(%d %d) Event(%d %d)\n"), GetSize().x, GetSize().y, event.GetSize().x, event.GetSize().y); fflush(stdout); + event.Skip(); + DoSize(); +} + +// The code in src/gtk/window.cpp wxWindow::DoSetSize fails since +// m_parent->m_wxwindow == NULL so nothing is done +#ifdef __WXGTK__ + #include + void GtkToolbarResizeWindow(wxWindow* win, const wxSize& size) + { + // don't take the x,y values, they're wrong because toolbar sets them + GtkWidget *widget = GTK_WIDGET(win->m_widget); + //gtk_widget_set_usize(widget, size.x, size.y); this is deprecated use below + gtk_widget_set_size_request(widget, size.x, size.y); + if (GTK_WIDGET_VISIBLE(widget)) + gtk_widget_queue_resize(widget); + } +#endif //__WXGTK__ + +void wxFileBrowser::DoSize() +{ + if (!m_splitterWin) + return; + + wxSize clientSize(GetClientSize()); + int h = 0; + + if (m_viewToolBar && m_filterCombo) + { + wxSize tbSize(m_viewToolBar->GetSize()); + m_viewToolBar->SetSize(0, h, clientSize.x, tbSize.y); + wxSize toolSize(m_viewToolBar->GetToolSize()); + wxSize marginSize(m_viewToolBar->GetMargins()); + wxRect comboRect(m_filterCombo->GetRect()); + wxSize comboSize(clientSize.x - comboRect.x - marginSize.x, comboRect.height); + +#ifdef __WXGTK__ + int sep = m_viewToolBar->GetToolSeparation(); + comboSize.x = clientSize.x - 6*toolSize.x - 6*sep; + GtkToolbarResizeWindow(m_filterCombo, comboSize); +#else + m_filterCombo->SetSize(comboSize); + m_viewToolBar->Realize(); +#endif + + //wxPrintf(wxT("FilterCombo %d %d - %d\n"), comboSize.x, comboSize.y, m_filterCombo->GetSize().y); + h += tbSize.y; + } + + if (m_pathToolBar && m_pathCombo) + { + wxSize tbSize(m_pathToolBar->GetSize()); + m_pathToolBar->SetSize(0, h, clientSize.x, tbSize.y); + wxSize toolSize(m_pathToolBar->GetToolSize()); + wxSize marginSize(m_pathToolBar->GetMargins()); + wxRect comboRect(m_pathCombo->GetRect()); + wxSize comboSize(clientSize.x - comboRect.x - toolSize.x - marginSize.x, comboRect.height); + +#ifdef __WXGTK__ + //int sep = m_viewToolBar->GetToolSeparation(); + comboSize.x = clientSize.x - toolSize.x - 2; + GtkToolbarResizeWindow(m_pathCombo, comboSize); +#else + //wxPrintf(wxT("Do Size %d %d - %d %d %d\n"), clientSize.x, clientSize.y, clientSize.x, comboRect.width, clientSize.x - comboRect.x - toolSize.x - marginSize.x); + m_pathCombo->SetSize(comboSize); + m_pathToolBar->Realize(); +#endif + + //wxPrintf(wxT("PathCombo %d %d - %d\n"), clientSize.x - comboRect.x - toolSize.x - marginSize.x, comboRect.height, m_pathCombo->GetSize().y); + h += tbSize.y; + } + + m_splitterWin->SetSize(wxRect(0, h, clientSize.x, clientSize.y - h)); + + // Make sure the splitter window doesn't unsplit when the window size changes, + // even though we already told it not to. + // FIXME : This should be fixed in the splitter window + if (m_splitterWin && m_splitterWin->IsSplit()) + { + int splitter_pos = m_splitterWin->GetSashPosition(); + int splitter_size = (m_splitterWin->GetSplitMode() == wxSPLIT_VERTICAL) ? + m_splitterWin->GetSize().GetWidth() : m_splitterWin->GetSize().GetHeight(); + int min_size = m_splitterWin->GetMinimumPaneSize(); + + if (splitter_pos < min_size) + m_splitterWin->SetSashPosition(wxMin(splitter_size, min_size)); + else if (splitter_pos > splitter_size - min_size) + m_splitterWin->SetSashPosition(wxMax(0, splitter_size - min_size)); + } +} + +wxSize wxFileBrowser::DoGetBestSize() const +{ + return wxSize(200,400); + //return wxControl::DoGetBestSize(); +} + +void wxFileBrowser::OnIdle(wxIdleEvent &event) +{ + event.Skip(); + + // Ancient code to display a preview of images + +/* + if ((m_browser_style & wxFILEBROWSER_PREVIEW) && + (int(m_previewFiles.GetCount()) > 0)) + { + int i, count = m_previewFiles.GetCount(); + int flags = 0; + int prev_index = 0; + int min_index = m_fileCtrl->HitTest(wxPoint(20,150), flags); + if (min_index < 0) min_index = 0; + int max_index = min_index + (m_fileCtrl->GetClientSize().x*m_fileCtrl->GetClientSize().y)/3000; + + for (i=0; im_list_index >= min_index) || + (m_previewFiles[i]->m_list_index <= max_index)) + { + prev_index = i; + break; + } + } + + wxFileBrowserFile *browserFile = m_previewFiles[prev_index]; + + int icon_index = browserFile->m_icon_index; + + wxString path = GetPath(true); + + wxImage img(path + browserFile->m_name); + if (img.Ok()) + { + int w = img.GetWidth(), h = img.GetHeight(); + browserFile->m_image_size.Printf(wxT("(%dx%d)"), w, h); + + int icon_w, icon_h; + m_normalImageList->GetSize(0, icon_w, icon_h); + + if (w > icon_w || h > icon_h) + { + if (w > h) + { + h = (h*icon_w)/w; + if (h == 0) h = 1; + w = icon_w; + } + else + { + w = (w*icon_h)/h; + if (w == 0) w = 1; + h = icon_h; + } + + img.Rescale(w, h); + } + + wxImage img2(icon_w, icon_h); + unsigned char r=5, g=5, b=5; + if (img.HasMask()) + { + r = img.GetMaskRed(); + g = img.GetMaskGreen(); + b = img.GetMaskBlue(); + } + else + { + img.FindFirstUnusedColour(&r, &g, &b); + img.SetMask(true); + img.SetMaskColour(r, g, b); + } + unsigned char *data = img2.GetData(); + long icon_size = icon_w*icon_h; + for (i=0; iReplace(icon_index, icon); + + if (browserFile->m_list_index >= 0) // maybe still filling the listCtrl + { + m_fileCtrl->SetItemImage(browserFile->m_list_index, + icon_index, icon_index); + } + } + m_previewFiles.RemoveAt(prev_index); + + if (count > 1) event.RequestMore(); + } + */ +} + +#define FILEBRWS_LIST_VIEW_MASK (wxFILEBROWSER_DETAILS|wxFILEBROWSER_LIST|wxFILEBROWSER_SMALL_ICON|wxFILEBROWSER_LARGE_ICON|wxFILEBROWSER_PREVIEW) +#define FILEBRWS_VIEW_MASK (FILEBRWS_LIST_VIEW_MASK|wxFILEBROWSER_TREE) + +void wxFileBrowser::SetBrowserStyle( long style ) +{ + style &= wxFILEBROWSER_STYLE_MASK; + + int n_styles = 0; + if (style & wxFILEBROWSER_LIST ) n_styles++; + if (style & wxFILEBROWSER_DETAILS ) n_styles++; + if (style & wxFILEBROWSER_LARGE_ICON) n_styles++; + if (style & wxFILEBROWSER_SMALL_ICON) n_styles++; + if (style & wxFILEBROWSER_PREVIEW ) n_styles++; + if (style & wxFILEBROWSER_TREE ) n_styles++; + wxCHECK_RET(n_styles == 1, wxT("Only one wxFileBrowser list style allowed")); + + long last_style = m_browser_style; + m_browser_style = style; // swap to new style immediately + + // Only the tree view will be shown + if (!HasBrowserStyle(FILEBRWS_LIST_VIEW_MASK)) + { + m_fileCtrl->Show(false); + + if (m_splitterWin->IsSplit()) + m_splitterWin->Unsplit(m_fileCtrl); + else // if (m_splitterWin->GetWindow1() != m_dirCtrl) + m_splitterWin->Initialize(m_dirCtrl); + + // show and reload the files for the dirctrl using the filter + if ((m_dirCtrl->GetWindowStyleFlag() & wxDIRCTRL_DIR_ONLY) != 0) + { + m_ignore_tree_event = true; + wxString currentPath = GetPath(false); + m_dirCtrl->SetWindowStyleFlag(m_dirCtrl->GetWindowStyleFlag() & (~wxDIRCTRL_DIR_ONLY)); + m_dirCtrl->SetFilter(GetFilter()); + m_dirCtrl->ReCreateTree(); + m_dirCtrl->ExpandPath(currentPath); + m_ignore_tree_event = false; + } + + m_splitterWin->SizeWindows(); + UpdateItems(); + return; + } + + // Else - show a combination of tree and list views + + // Try to avoid flicker by changing mode only if necessary + switch (m_browser_style & FILEBRWS_VIEW_MASK) + { + case wxFILEBROWSER_DETAILS : + { + if ((last_style & wxFILEBROWSER_DETAILS) == 0) + m_fileCtrl->ChangeToReportMode(); + break; + } + case wxFILEBROWSER_LIST : + { + if ((last_style & wxFILEBROWSER_LIST) == 0) + m_fileCtrl->ChangeToListMode(); + break; + } + case wxFILEBROWSER_SMALL_ICON : + { + if ((last_style & wxFILEBROWSER_SMALL_ICON) == 0) + m_fileCtrl->ChangeToSmallIconMode(); + break; + } + default : break; + } + + // are both tree and list view shown + if (GetShowFolders()) + { + if (GetSplitVertical()) + { + if (m_splitterWin->GetSplitMode() != wxSPLIT_VERTICAL) + { + if (m_splitterWin->IsSplit()) // FIXME need to unsplit to resplit + m_splitterWin->Unsplit(m_splitterWin->GetWindow2()); + } + + int sash_pos = m_splitterWin->GetSashPosition(); + m_splitterWin->SplitVertically(m_dirCtrl, m_fileCtrl, sash_pos); + } + else + { + if (m_splitterWin->GetSplitMode() != wxSPLIT_HORIZONTAL) + { + if (m_splitterWin->IsSplit()) // FIXME need to unsplit to resplit + m_splitterWin->Unsplit(m_splitterWin->GetWindow2()); + } + + int sash_pos = m_splitterWin->GetSashPosition(); + m_splitterWin->SplitHorizontally(m_dirCtrl, m_fileCtrl, sash_pos); + } + + m_dirCtrl->Show(true); + } + else // just list view + { + if (m_splitterWin->IsSplit()) + m_splitterWin->Unsplit(m_dirCtrl); + else // if (m_splitterWin->GetWindow1() != m_fileCtrl) + m_splitterWin->Initialize(m_fileCtrl); + + m_dirCtrl->Show(false); + } + + m_fileCtrl->Show(true); + + // In dir mode always show all dirs + m_dirCtrl->SetFilter(wxEmptyString); + + // if it used to have wxFILEBROWSER_TREE style, make tree show only dirs + if ((m_dirCtrl->GetWindowStyleFlag() & wxDIRCTRL_DIR_ONLY) == 0) + { + m_ignore_tree_event = true; + m_dirCtrl->SetFilter(wxT("*|*")); + m_dirCtrl->SetWindowStyleFlag(m_dirCtrl->GetWindowStyleFlag() | wxDIRCTRL_DIR_ONLY); + wxString currentPath = GetPath(false); + m_dirCtrl->ReCreateTree(); + m_dirCtrl->ExpandPath(currentPath); + m_ignore_tree_event = false; + } + + m_splitterWin->SizeWindows(); + UpdateItems(); +} + +bool wxFileBrowser::CanRead(const wxString& filePath) const +{ + return wxFile::Access(filePath, wxFile::read); +} + +bool wxFileBrowser::CanWrite(const wxString& filePath) const +{ + return wxFile::Access(filePath, wxFile::write); +} + +void wxFileBrowser::UpdateItems() +{ + UpdateMenu(m_listMenu); + UpdateMenu(m_viewMenu); + + UpdateToolBar(m_viewToolBar); + UpdateToolBar(m_pathToolBar); +} + +void EnableMenuItem(wxMenu *menu, wxWindowID menu_id, bool value) +{ + if (menu) + { + wxMenuItem *menuItem = menu->FindItem(menu_id); + if (menuItem) + menuItem->Enable(value); + } +} +void CheckMenuItem(wxMenu *menu, wxWindowID menu_id, bool value) +{ + if (menu) + { + wxMenuItem *menuItem = menu->FindItem(menu_id); + if (menuItem) + menuItem->Check(value); + } +} + +void wxFileBrowser::UpdateMenu( wxMenu* menu ) +{ + if (!menu) return; + + CheckMenuItem(menu, FBStyleToMenuID(m_browser_style), true); + + // Update options menu --------------------------- + + CheckMenuItem(menu, ID_wxFILEBROWSER_SHOW_HIDDEN, GetShowHidden()); + EnableMenuItem(menu, ID_wxFILEBROWSER_SHOW_FOLDERS, !HasBrowserStyle(wxFILEBROWSER_TREE)); + CheckMenuItem(menu, ID_wxFILEBROWSER_SHOW_FOLDERS, GetShowFolders()); + CheckMenuItem(menu, ID_wxFILEBROWSER_SPLIT_VERTICAL, GetSplitVertical()); + + // Update go items --------------------------- + + CheckMenuItem(menu, ID_wxFILEBROWSER_GO_BACK, CanGoPathHistoryBackward()); + CheckMenuItem(menu, ID_wxFILEBROWSER_GO_FORWARD, CanGoPathHistoryForward()); + CheckMenuItem(menu, ID_wxFILEBROWSER_GO_UP, CanGoUpDir()); + + // Update cut, copy, paste --------------------------- + + // wxLIST_STATE_FOCUSED ? nah probably selected + long item = m_fileCtrl->GetNextItem(-1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED); + + wxFileData *fd = NULL; + if (item >= 0) + fd = (wxFileData*)m_fileCtrl->GetItemData(item); + + bool is_file = fd && !fd->IsDir() && !fd->IsDrive() && !fd->IsLink(); + bool is_dir = fd && fd->IsDir(); + + // There's nothing you can do with this + if (fd && (fd->GetFileName() == wxT(".."))) + { + is_file = is_dir = false; + } + + bool can_read = (is_file || is_dir) && fd && CanRead(fd->GetFilePath()); + bool can_write = (is_file || is_dir) && fd && CanWrite(fd->GetFilePath()); + bool can_write_dir = CanWrite(GetPath()); + + // can't do anything with drive listing in MSW + bool is_top = false; +#ifndef __UNIX__ + if (GetPath(false).IsEmpty()) is_top = true; +#endif //__UNIX__ + + EnableMenuItem(menu, wxID_OPEN, (is_file || is_dir) && can_read); + EnableMenuItem(menu, ID_wxFILEBROWSER_LIST_MENU_VIEW_FILE, is_file && can_read); + EnableMenuItem(menu, ID_wxFILEBROWSER_LIST_MENU_OPEN_WITH, is_file && can_read); + + EnableMenuItem(menu, ID_wxFILEBROWSER_LIST_MENU_NEW_FOLDER, !is_top && can_write_dir); + + EnableMenuItem(menu, wxID_CUT, is_file && can_write); + EnableMenuItem(menu, wxID_COPY, is_file && can_read); + EnableMenuItem(menu, wxID_PASTE, !is_top && (m_copycutFiles.GetCount() > 0u) && can_write_dir); + + EnableMenuItem(menu, ID_wxFILEBROWSER_LIST_MENU_DELETE, (is_file || is_dir) && can_write); + EnableMenuItem(menu, ID_wxFILEBROWSER_LIST_MENU_RENAME, (is_file || is_dir) && can_write); + + EnableMenuItem(menu, ID_wxFILEBROWSER_LIST_MENU_PROPERITES, is_file || is_dir); +} +void wxFileBrowser::UpdateToolBar( wxToolBar* toolBar ) +{ + if (!toolBar) return; + + toolBar->EnableTool(ID_wxFILEBROWSER_GO_BACK, CanGoPathHistoryBackward()); + toolBar->EnableTool(ID_wxFILEBROWSER_GO_FORWARD, CanGoPathHistoryForward()); + toolBar->EnableTool(ID_wxFILEBROWSER_GO_UP, CanGoUpDir()); + toolBar->EnableTool(ID_wxFILEBROWSER_SHOW_FOLDERS, !HasBrowserStyle(wxFILEBROWSER_TREE)); + toolBar->ToggleTool(ID_wxFILEBROWSER_SHOW_FOLDERS, GetShowFolders()); +} + +void wxFileBrowser::ShowHidden(bool show_hidden) +{ + m_show_hidden = show_hidden; + + m_ignore_tree_event = true; + m_dirCtrl->ShowHidden(m_show_hidden); + m_fileCtrl->ShowHidden(m_show_hidden); + m_ignore_tree_event = false; + + UpdateItems(); +} + +void wxFileBrowser::ShowFolders(bool show_folders) +{ + m_browser_style &= (~wxFILEBROWSER_SHOW_FOLDERS); + if (show_folders) + m_browser_style |= wxFILEBROWSER_SHOW_FOLDERS; + + SetBrowserStyle(m_browser_style); +} + +void wxFileBrowser::SplitVertical(bool split_vertically) +{ + m_browser_style &= (~wxFILEBROWSER_SPLIT_VERTICAL); + if (split_vertically) + m_browser_style |= wxFILEBROWSER_SPLIT_VERTICAL; + + SetBrowserStyle(m_browser_style); +} + +bool wxFileBrowser::GetPathFromFilePath(const wxString &filepath, wxString &path) const +{ + path = filepath; + + wxFileName filename(filepath); + if (filename.FileExists()) + path = filename.GetPath(); + + if (!wxDirExists(path)) return false; + + if (path.Last() != wxFILE_SEP_PATH) + path += wxFILE_SEP_PATH; + + return true; +} + +wxString AddDelete_wxFILE_SEP_PATH(const wxString &path_, bool add_sep) +{ + wxString path(path_); + +#if __UNIX__ + if (path.IsEmpty()) return wxFILE_SEP_PATH; +#endif + + if (add_sep) + { + if (path.IsEmpty() || (path.Last() != wxFILE_SEP_PATH)) + path += wxFILE_SEP_PATH; + } + else if (!path.IsEmpty() && (path.Last() == wxFILE_SEP_PATH)) + path = path.RemoveLast(); + + return path; +} + +wxString wxFileBrowser::GetPath(bool add_wxFILE_SEP_PATH) const +{ + return AddDelete_wxFILE_SEP_PATH(m_path, add_wxFILE_SEP_PATH); +} + +bool wxFileBrowser::SetPath(const wxString &dirname) +{ + wxString path = dirname; + + if (dirname.IsEmpty()) + { +#ifdef __UNIX__ + path = wxFILE_SEP_PATH; +#endif + } + else + { + if (!GetPathFromFilePath(dirname, path)) + return false; + } + + m_path = AddDelete_wxFILE_SEP_PATH(path, true); + + m_ignore_tree_event = true; + m_dirCtrl->SetPath(GetPath(false)); // doesn't like trailing wxFILE_SEP_PATH - segfault + m_ignore_tree_event = false; + + if (!HasBrowserStyle(wxFILEBROWSER_TREE)) // don't care otherwise + m_fileCtrl->GoToDir(m_path); + + InsertComboItem(m_pathCombo, GetPath(true), 0); + + AddPathHistory(GetPath(true)); + UpdateItems(); + return true; +} + +bool wxFileBrowser::CanGoUpDir() const +{ + wxString path = GetPath(false).BeforeLast(wxFILE_SEP_PATH); + return !path.IsEmpty() && wxDirExists(path); +} +bool wxFileBrowser::GoUpDir() +{ + wxString path = GetPath(false).BeforeLast(wxFILE_SEP_PATH); + if (!path.IsEmpty() && wxDirExists(path)) + return SetPath(path); + + return false; +} + +bool wxFileBrowser::GoToHomeDir() +{ + + return SetPath(wxFileName::GetHomeDir()); +} + +bool wxFileBrowser::CanGoPathHistoryForward() +{ + if (m_path_history_index < int(m_pathHistory.GetCount()) - 1) + { + // maybe they deleted it? + if (!wxDirExists(m_pathHistory[m_path_history_index+1])) + { + m_path_history_index++; + m_pathHistory.RemoveAt(m_path_history_index); + return CanGoPathHistoryForward(); + } + + return true; + } + if (m_pathHistory.GetCount() == 0u) + m_pathHistory.Add(GetPath(true)); + + return false; +} +bool wxFileBrowser::CanGoPathHistoryBackward() +{ + if (m_path_history_index != 0) + { + // maybe they deleted it? + if (!wxDirExists(m_pathHistory[m_path_history_index-1])) + { + m_path_history_index--; + m_pathHistory.RemoveAt(m_path_history_index); + return CanGoPathHistoryBackward(); + } + + return true; + } + if (m_pathHistory.GetCount() == 0u) + m_pathHistory.Add(GetPath(true)); + + return false; +} + +bool wxFileBrowser::GoPathHistoryForward() +{ + if (!CanGoPathHistoryForward()) + return false; + + m_path_history_index++; + return SetPath(m_pathHistory[m_path_history_index]); +} +bool wxFileBrowser::GoPathHistoryBackward() +{ + if (!CanGoPathHistoryBackward()) + return false; + + m_path_history_index--; + return SetPath(m_pathHistory[m_path_history_index]); +} + +void wxFileBrowser::AddPathHistory(const wxString& path) +{ + if (!wxDirExists(path) || (path == m_pathHistory[m_path_history_index])) + return; + + int count = m_pathHistory.GetCount(); + if (count == 0) + { + m_path_history_index = 0; + m_pathHistory.Add(path); + } + else if (m_path_history_index == count-1) + { + m_path_history_index++; + m_pathHistory.Add(path); + } + else + { + m_path_history_index++; + m_pathHistory[m_path_history_index] = path; + } +} + +void wxFileBrowser::OnTreeItemSelection(wxTreeEvent &event) +{ + if (m_ignore_tree_event) + { + event.Skip(); + return; + } + + wxFileBrowserEvent fbEvent(wxEVT_FILEBROWSER_FILE_SELECTED, this, GetId()); + + if (m_dirCtrl->GetFilePath().IsEmpty()) + fbEvent.SetEventType(wxEVT_FILEBROWSER_DIR_SELECTED); + + fbEvent.SetFilePath(m_dirCtrl->GetPath()); + DoSendEvent(fbEvent); +} + +void wxFileBrowser::OnTreeItemActivation(wxTreeEvent &event) +{ + if (m_ignore_tree_event) + { + event.Skip(); + return; + } + + wxString path; + if (!GetPathFromFilePath(m_dirCtrl->GetPath(), path)) + return; + + wxFileBrowserEvent fbEvent(wxEVT_FILEBROWSER_FILE_ACTIVATED, this, GetId()); + + m_path = path; + if (m_dirCtrl->GetFilePath().IsEmpty()) + { + fbEvent.SetEventType(wxEVT_FILEBROWSER_DIR_ACTIVATED); + + if (!HasBrowserStyle(wxFILEBROWSER_TREE)) + m_fileCtrl->GoToDir(m_path); + } + + fbEvent.SetFilePath(m_dirCtrl->GetPath()); + DoSendEvent(fbEvent); +} + +void wxFileBrowser::OnTreeRightClick(wxTreeEvent &event) +{ + UpdateMenu(m_treeMenu); + m_dirCtrl->PopupMenu(m_treeMenu, event.GetPoint()); +} + +void wxFileBrowser::OnListItemActivated(wxListEvent &event) +{ + wxString filename = event.GetLabel(); + if (filename.IsEmpty()) return; + + wxFileData *fd = (wxFileData*)event.GetData(); + wxCHECK_RET(fd, wxT("Invalid filedata")); + wxString filePath = fd->GetFilePath(); + + wxEventType evtType = fd->IsDir() ? wxEVT_FILEBROWSER_DIR_ACTIVATED : + wxEVT_FILEBROWSER_FILE_ACTIVATED; + wxFileBrowserEvent fbEvent(evtType, this, GetId()); + + if (fd->IsDir()) + { + if (filename == wxT("..")) + filePath = filePath.RemoveLast().BeforeLast(wxFILE_SEP_PATH); + + SetPath(filePath); + } + + fbEvent.SetFilePath(filePath); + DoSendEvent(fbEvent); +} + +void wxFileBrowser::OnListItemSelected(wxListEvent &event) +{ + wxFileData *fd = (wxFileData*)event.GetData(); + wxCHECK_RET(fd, wxT("Invalid filedata")); + + wxEventType evtType = fd->IsDir() ? wxEVT_FILEBROWSER_DIR_SELECTED : + wxEVT_FILEBROWSER_FILE_SELECTED; + wxFileBrowserEvent fbEvent(evtType, this, GetId()); + fbEvent.SetFilePath(fd->GetFilePath()); + DoSendEvent(fbEvent); +} + +void wxFileBrowser::OnListRightClick(wxListEvent &event) +{ + UpdateMenu(m_listMenu); + m_fileCtrl->PopupMenu(m_listMenu, event.GetPoint()); +} + +wxFileData* wxFileBrowser::GetFocusedListItem() const +{ + long item = m_fileCtrl->GetNextItem(-1, wxLIST_NEXT_ALL, wxLIST_STATE_FOCUSED); + + if (item >= 0) + return (wxFileData*)m_fileCtrl->GetItemData(item); + + return NULL; +} + +wxArrayInt wxFileBrowser::GetSelectedListItems() const +{ + wxArrayInt selItems; + long item = m_fileCtrl->GetNextItem(-1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED); + + while (item >= 0) + { + selItems.Add((int)item); + item = m_fileCtrl->GetNextItem(item, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED); + } + + return selItems; +} + +wxArrayFileData wxFileBrowser::GetSelectedListFileData() const +{ + wxArrayFileData fileDatas; + wxArrayInt selItems = GetSelectedListItems(); + if ((int)selItems.GetCount() < 1) + return fileDatas; + + for (size_t n=0; nGetItemData(selItems[n]); + wxCHECK_MSG(fd, fileDatas, wxT("Invalid filedata item")); + + wxFileData newFd(*fd); + fileDatas.Add(newFd); + } + + return fileDatas; +} + + +wxFileData wxFileBrowser::CreateFileData(const wxFileName& fileName) const +{ + if (fileName.DirExists()) + { + return wxFileData(fileName.GetPath(), fileName.GetName(), wxFileData::is_dir, wxFileIconsTable::folder); + } + else if (fileName.FileExists()) + { + return wxFileData(fileName.GetPath(), fileName.GetName(), wxFileData::is_file, wxFileIconsTable::file); + } +#if defined(__WINDOWS__) || defined(__DOS__) || defined(__WXMAC__) || defined(__OS2__) + else + { + // FIXME this is ugly, but should work + wxArrayString names, paths; + wxArrayInt icons; + size_t n, count = wxGetAvailableDrives(paths, names, icons); + for (n = 0; n < count; n++) + { + if (fileName.GetFullPath() == paths[n]) + return wxFileData(fileName.GetPath(), fileName.GetName(), wxFileData::is_drive, icons[n]); + } + } +#endif + return wxFileData(); +} + +bool wxFileBrowser::DeleteSelectedListItems(bool WXUNUSED(ask_ok)) +{ + wxArrayInt selItems = GetSelectedListItems(); + if ((int)selItems.GetCount() < 1) + return false; + + size_t n = 0; + wxArrayString filePaths; + wxArrayInt isDirs; + wxString fileNameString; + int line_length = 0; + for (n=0; nGetItemData(selItems[n]); + wxCHECK_MSG(fd, false, wxT("Invalid filedata item")); + + if (fd->IsDrive()) + { + wxString msg = wxT("Unable to delete drive: \"")+fd->GetFilePath()+wxT("\"\n"); + msg += wxT("Please deselect drive and try again."); + wxMessageBox(msg, + wxT("Error deleting"), wxOK|wxCENTRE|wxICON_INFORMATION, this); + return false; + } + if (fd->GetFileName() == wxT("..")) + { + wxString msg = wxT("Unable to delete parent directory: \"")+fd->GetFilePath()+wxT("\"\n"); + msg += wxT("Please deselect dir and try again."); + wxMessageBox(msg, + wxT("Error deleting"), wxOK|wxCENTRE|wxICON_INFORMATION, this); + return false; + } + + isDirs.Add(fd->IsDir() ? 1 : 0); + filePaths.Add(fd->GetFilePath()); + if (line_length > 100) + { + fileNameString += wxT("\n"); + line_length = 0; + } + fileNameString += fd->GetFileName(); + if (n < selItems.GetCount() - 1) + fileNameString += wxT(", "); + + line_length += fd->GetFileName().Length() + 2; + } + + MultilineTextDialog tDialog( this, + wxT("Delete files(s)/dir(s)?"), + wxT("Confirm deleting?"), + fileNameString, + wxTE_READONLY); + + if (tDialog.ShowModal() != wxID_OK) + return false; + + for (n=0; nDeleteItem(selItems[n]); + else + { + wxString msg = wxT("Sorry, unable to delete dir: \"")+filePaths[n]+wxT("\"\n"); + msg += wxT("Perhaps it is not empty?"); + int ret = wxMessageBox(msg, wxT("Error deleting dir"), + wxOK|wxCANCEL|wxCENTRE|wxICON_INFORMATION, this); + + if (ret == wxCANCEL) break; + } + } + else + { + if (CanWrite(filePaths[n]) && wxRemoveFile(filePaths[n])) + m_fileCtrl->DeleteItem(selItems[n]); + else + { + int ret = wxMessageBox(wxT("Sorry, unable to delete file : \"")+filePaths[n]+wxT("\""), + wxT("Error deleting file"), + wxOK|wxCANCEL|wxCENTRE|wxICON_INFORMATION, this); + if (ret == wxCANCEL) break; + } + } + } + + SetPath(GetPath()); // refresh views + return true; +} + +bool wxFileBrowser::CopyCutSelectedListItems(bool copy_them) +{ + m_last_copy = copy_them; + m_copycutFiles.Clear(); + + wxArrayInt selItems = GetSelectedListItems(); + if ((int)selItems.GetCount() < 1) + return false; + + for (size_t n=0; nGetItemData(selItems[n]); + wxCHECK_MSG(fd, false, wxT("Invalid filedata item")); + + if (fd->GetFileName() != wxT("..")) + { + if (!m_last_copy) + m_fileCtrl->SetItemState(selItems[n], wxLIST_MASK_STATE, wxLIST_STATE_CUT); + + m_copycutFiles.Add(wxFileData(*fd)); + } + } + + return m_copycutFiles.GetCount() > 0U; +} + +bool wxFileBrowser::PasteCopyCutSelectedListItems() +{ + wxString path = GetPath(true); + + for (size_t n=0; nFindItem(-1, srcFileName); + + if (!dst_file_exists || (item_id < 0)) + { + wxListItem item; + item.m_itemId = m_fileCtrl->GetItemCount(); + item.m_col = 0; + wxFileData *fd = new wxFileData(dstFilePath, srcFileName, wxFileData::is_file, wxFileIconsTable::file); + m_fileCtrl->Add(fd, item); + } + else + { + wxListItem item; + item.m_itemId = item_id; + m_fileCtrl->UpdateItem(item); + } + } + + SetPath(GetPath()); // refresh views + return true; +} + +void wxFileBrowser::OnTreeMenu(wxCommandEvent &event) +{ + switch(event.GetId()) + { + case ID_wxFILEBROWSER_TREE_MENU_PROPERITES : + { + wxFileName fileName(m_dirCtrl->GetPath()); + wxFileData fd(CreateFileData(fileName)); + //if (!fd) return; + + ShowPropertiesDialog(fd); + break; + } + default : break; + } +} + +void wxFileBrowser::OnListMenu(wxCommandEvent &event) +{ + switch(event.GetId()) + { + case ID_wxFILEBROWSER_GO_BACK : + { + if (CanGoPathHistoryBackward()) + GoPathHistoryBackward(); + + break; + } + case ID_wxFILEBROWSER_GO_FORWARD : + { + if (CanGoPathHistoryForward()) + GoPathHistoryForward(); + + break; + } + case ID_wxFILEBROWSER_GO_UP : + { + if (CanGoUpDir()) + GoUpDir(); + + break; + } + case ID_wxFILEBROWSER_GO_HOME : + { + GoToHomeDir(); + break; + } + case ID_wxFILEBROWSER_REFRESH : + { + SetPath(GetPath(true)); + break; + } + case wxID_OPEN : + { + wxFileData *fd = GetFocusedListItem(); + if (!fd) return; + + OpenFilePath(fd->GetFilePath()); + break; + } + case ID_wxFILEBROWSER_LIST_MENU_NEW_FOLDER : + { + m_fileCtrl->MakeDir(); + SetPath(GetPath(true)); + break; + } + case wxID_CUT : + case wxID_COPY : + { + m_last_copy = event.GetId() == wxID_COPY; + CopyCutSelectedListItems(m_last_copy); + break; + } + case wxID_PASTE : + { + PasteCopyCutSelectedListItems(); + break; + } + case ID_wxFILEBROWSER_LIST_MENU_DELETE : + { + DeleteSelectedListItems(true); + break; + } + case ID_wxFILEBROWSER_LIST_MENU_RENAME : + { + long item = m_fileCtrl->GetNextItem(-1, wxLIST_NEXT_ALL, wxLIST_STATE_FOCUSED); + if (item >= 0) + m_fileCtrl->EditLabel( item ); + break; + } + case ID_wxFILEBROWSER_LIST_MENU_OPEN_WITH : + { + wxFileData *fd = GetFocusedListItem(); + if (!fd) return; + + wxString cmd = GetOpenWithFileCmd(fd); + + if (!cmd.IsEmpty()) + { + long ret = wxExecute(cmd, wxEXEC_ASYNC, NULL); + if (ret == 0) + { + wxMessageBox(wxT("Error running program"), wxT("Error running program"), + wxOK, this); + } + } + break; + } + case ID_wxFILEBROWSER_LIST_MENU_VIEW_FILE : + { + wxFileData *fd = GetFocusedListItem(); + if (!fd) return; + + wxLogNull logNull; + wxImage image(fd->GetFilePath()); + if (image.Ok()) + { + wxDialog dialog(this, -1, wxT("Preview : ") + fd->GetFilePath(), + wxDefaultPosition, wxDefaultSize, + wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); + + wxScrolledWindow *scrWin = new wxScrolledWindow(&dialog, -1); + wxStaticBitmap *statBitmap = new wxStaticBitmap(scrWin, -1, wxBitmap(image)); + + // not necessary in MSW + int ext = 0; //dialog.GetSize().GetWidth() - dialog.GetClientSize().GetWidth(); + + wxRect clientRect = wxGetClientDisplayRect(); + wxRect imageRect(0, 0, image.GetWidth()+ext, image.GetHeight()+ext); + clientRect.Intersect(imageRect); + dialog.SetClientSize(clientRect.width, clientRect.height); + + scrWin->SetScrollbars(1, 1, image.GetWidth(), image.GetHeight()); + + dialog.ShowModal(); + break; + } + else // view as text + { + + wxFrame* frame = new wxFrame(this, wxID_ANY, wxT("Text Viewer")); + wxTextCtrl* textCtrl = new wxTextCtrl(frame, wxID_ANY, wxT(""), + wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxTE_RICH|wxTE_READONLY); + + wxString s; + wxFileInputStream inputStream(fd->GetFilePath()); + wxTextInputStream textStream(inputStream); + while (!inputStream.Eof()) + { + s += textStream.ReadLine() + wxT("\n"); + if (s.Length() > 1000000) + { + wxMessageBox(wxT("This file is too large for the text viewer."), + wxT("File truncated"), wxOK, this); + break; + } + } + + textCtrl->AppendText(s); + frame->Show(true); + +/* + wxSTEditorOptions steOptions(STE_DEFAULT_OPTIONS); + steOptions.GetMenuManager()->CreateForNotebook(); +#if wxUSE_CONFIG + wxConfigBase *config = wxConfigBase::Get(false); // don't create + if (config) + steOptions.LoadConfig(*config); +#endif //wxUSE_CONFIG + + wxSTEditorFrame *editor = new wxSTEditorFrame(this, wxID_ANY, wxT("Editor")); + editor->CreateOptions(steOptions); + editor->GetEditor()->LoadFile(fd->GetFilePath()); + editor->Centre(); + editor->Show(true); +*/ + } + break; + } + case ID_wxFILEBROWSER_LIST_MENU_PROPERITES : + { + wxFileData *fd = GetFocusedListItem(); + if (!fd) return; + + ShowPropertiesDialog(*fd); + break; + } + case ID_wxFILEBROWSER_SHOW_HIDDEN : ShowHidden(event.IsChecked()); break; + case ID_wxFILEBROWSER_SHOW_FOLDERS : ShowFolders(event.IsChecked()); break; + case ID_wxFILEBROWSER_SPLIT_VERTICAL : SplitVertical(event.IsChecked()); break; + + default : break; + } +} + +void wxFileBrowser::OnViewButtons(wxCommandEvent &event) +{ + switch (event.GetId()) + { + case ID_wxFILEBROWSER_VIEW_BUTTON : + { + wxWindow *win = (wxWindow*)event.GetEventObject(); + if (win) + win->PopupMenu(m_viewMenu, wxPoint(0, win->GetSize().y)); +/* + wxToolBar *win = (wxToolBar*)event.GetEventObject(); + { + wxSize toolSize(win->GetToolSize()); + wxSize marginSize(win->GetMargins()); + int pack = win->GetToolPacking(); + int sep = win->GetToolSeparation(); + wxPrintf(wxT(" %d %d, %d %d, %d %d\n"), toolSize.x, toolSize.y, marginSize.x, marginSize.y, pack, sep); + win->PopupMenu(m_viewMenu, + wxPoint(toolSize.x*5 + 2*marginSize.x, + win->GetSize().y-marginSize.y)); + } +*/ + break; + } + case ID_wxFILEBROWSER_VIEW_TREE : + case ID_wxFILEBROWSER_VIEW_LIST : + case ID_wxFILEBROWSER_VIEW_DETAILS : + case ID_wxFILEBROWSER_VIEW_SMALL_ICON : + case ID_wxFILEBROWSER_VIEW_LARGE_ICON : + case ID_wxFILEBROWSER_VIEW_PREVIEW : + { + long style = MenuIDToFBStyle(event.GetId()); + style |= (m_browser_style & (~wxFILEBROWSER_VIEW_MASK)); + SetBrowserStyle(style); + break; + } + default : event.Skip(); break; + } +} + +void wxFileBrowser::OnPathCombo(wxCommandEvent &event) +{ + // gtk sends events for just dropping the box + if (m_pathComboSelection == event.GetSelection()) + return; + + m_pathComboSelection = event.GetSelection(); + + // be overly cautious, GTK combo sends events and in some cases leads to a loop + // it also doesn't like to have selection changed inside this handler + wxCommandEvent setevent( wxEVT_COMMAND_MENU_SELECTED, ID_wxFILEBROWSER_COMBOSETPATH ); + setevent.SetString(event.GetString()); + GetEventHandler()->AddPendingEvent(setevent); +} +void wxFileBrowser::OnPathComboEnter(wxCommandEvent &WXUNUSED(event)) +{ + OpenFilePath(m_pathCombo->GetValue()); +} +void wxFileBrowser::OnSetPath( wxCommandEvent &event ) +{ + SetPath(event.GetString()); + m_pathComboSelection = m_pathCombo->GetSelection(); +} + +bool wxFileBrowser::OpenFilePath(const wxString &filePath) +{ + wxString path = filePath; + + if (path.IsEmpty() || (path.Find(wxT('|')) != wxNOT_FOUND)) + return false; + + bool want_dir = (path.Last() == wxFILE_SEP_PATH); + if (want_dir) + path = path.RemoveLast(); + + // Get home dir of user for ~ +#ifdef __UNIX__ + if (path == wxT("~")) + { + path = wxGetUserHome(); + } + else if (path.BeforeFirst(wxT('/')) == wxT("~")) + { + path = wxGetUserHome() + path.Remove(0, 1); + } +#endif // __UNIX__ + + // deal with ../ and what not + if (path.Contains(wxT(".."))) + { + // path is just ".." or "../" + if (path == wxT("..")) + path = GetPath(false).BeforeLast(wxFILE_SEP_PATH); + // path is "../some/dir" - note: no need to check for at least 3 chars + else if ((path.Mid(0, 3) == wxString(wxT("..")) + wxFILE_SEP_PATH)) + path = GetPath(false).BeforeLast(wxFILE_SEP_PATH) + wxFILE_SEP_PATH + path.AfterFirst(wxFILE_SEP_PATH); + // path is "/some/where/.." + else if (path.Mid(path.Len()-3) == wxFILE_SEP_PATH + wxString(wxT(".."))) + path = path.BeforeLast(wxFILE_SEP_PATH).BeforeLast(wxFILE_SEP_PATH); + else + return false; + } + + wxFileName filename(path); + + if (filename.DirExists()) + { + SetPath(path); + return true; + } + + // They really wanted a dir, but it doesn't exist + if (want_dir) + return false; + + // if it's a file then just "load" it + if (filename.FileExists()) + { + //SetPath(filename.GetPath()); + + long item = m_fileCtrl->FindItem(-1, filename.GetName(), false); + if (item >= 0) + { + m_fileCtrl->SetItemState(item, wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED); + m_fileCtrl->EnsureVisible( item ); + } + + wxFileBrowserEvent fbEvent(wxEVT_FILEBROWSER_FILE_ACTIVATED, this, GetId()); + fbEvent.SetFilePath(path); + DoSendEvent(fbEvent); + } + + return true; +} + +bool wxFileBrowser::InsertComboItem(wxComboBox *combo, const wxString &item, int pos) const +{ + int combo_index = combo->FindString(item); + + if (combo_index == wxNOT_FOUND) + combo->Insert(item, pos, (void*)NULL); + else if ((combo_index == pos) || (combo_index < pos)) + return true; + else if (combo_index > pos) + { + wxString *data = (wxString*) combo->GetClientData(combo_index); + combo->Delete(combo_index); + combo->Insert(item, pos, (void*)data); + } + + if (combo->GetSelection() != pos) + combo->SetSelection(pos); + + return true; +} + +bool wxFileBrowser::SetFilter( int n ) +{ + wxCHECK_MSG((n>=0) && (nGetCount())), false, wxT("Invalid filter item")); + + wxString filter = m_filterCombo->GetString(n); + wxString *data = (wxString*)m_filterCombo->GetClientData(n); + if (data && !data->IsEmpty()) + filter += wxT("|") + (*data); + else + filter += wxT("|") + filter; + + AddFilter(filter); + return true; +} + +bool wxFileBrowser::AddFilter(const wxString &filter_) +{ + wxString filter(filter_); + if (filter.IsEmpty()) + filter = wxFileSelectorDefaultWildcardStr; + if (filter.Find(wxT('|')) == wxNOT_FOUND) + filter += wxT("|") + filter; + + m_filter = filter; + InsertComboItem(m_filterCombo, filter.BeforeFirst(wxT('|')), m_init_filters); + m_filterComboSelection = m_filterCombo->GetSelection(); + + if ((m_dirCtrl->GetWindowStyleFlag() & wxDIRCTRL_DIR_ONLY) == 0) + { + m_ignore_tree_event = true; + wxString currentPath = GetPath(false); + m_dirCtrl->SetFilter(GetFilter()); + m_dirCtrl->ReCreateTree(); + m_dirCtrl->ExpandPath(currentPath); + m_ignore_tree_event = false; + } + + m_fileCtrl->SetWild(GetWild()); + + return true; +} + +bool wxFileBrowser::SetFilters(const wxString &filter, int select) +{ + wxArrayString filterNames; + wxArrayString filterArray; + if (filter.IsEmpty() || + (::wxParseCommonDialogsFilter(filter, filterNames, filterArray) == 0)) + { + filterNames.Add(wxT("All files (")+wxString(wxFileSelectorDefaultWildcardStr)+wxT(")")); + filterArray.Add(wxFileSelectorDefaultWildcardStr); + } + + wxCHECK_MSG(select < int(filterNames.GetCount()), false, wxT("Invalid filter selection")); + + m_filter = filterNames[select] + wxT("|") + filterArray[select]; + m_init_filters = filterArray.GetCount(); + + // delete old filters if any + int n, count = m_filterCombo->GetCount(); + for ( n = 0; n < count; n++ ) + { + wxString *data = (wxString*)m_filterCombo->GetClientData(n); + delete data; + } + + for ( n = 0; n < m_init_filters; n++ ) + m_filterCombo->Append(filterNames[n], (void*)new wxString(filterArray[n])); + + m_filterCombo->SetSelection(select); + m_filterComboSelection = select; + + if (!m_dirCtrl) return true; // This is during creation + + return SetFilter(select); +} + +void wxFileBrowser::OnFilterComboEnter(wxCommandEvent &event) +{ + if (event.GetString().Find(wxT('|')) == wxNOT_FOUND) + AddFilter(event.GetString() + wxT("|") + event.GetString()); +} +void wxFileBrowser::OnFilterCombo(wxCommandEvent &event) +{ + int sel = event.GetSelection(); + // gtk combo sends events when the combo is opened... ignore them + if ((sel < 0) || (sel == m_filterComboSelection)) + return; + + m_filterComboSelection = sel; + + wxString filter = event.GetString(); + wxString *data = (wxString*)m_filterCombo->GetClientData(sel); + if (data && !data->IsEmpty()) + filter += wxT("|") + (*data); + else + filter += wxT("|") + filter; + + // see OnPathCombo for why it's done this way + wxCommandEvent setevent( wxEVT_COMMAND_MENU_SELECTED, ID_wxFILEBROWSER_COMBOSETFILTER ); + setevent.SetString(filter); + setevent.SetInt(data && !data->IsEmpty() ? sel : -1); + GetEventHandler()->AddPendingEvent(setevent); +} +void wxFileBrowser::OnSetFilter( wxCommandEvent &event ) +{ + if ( event.GetInt() != -1) + SetFilter(event.GetInt()); + else + AddFilter(event.GetString()); +} + +bool wxFileBrowser::DoSendEvent(wxFileBrowserEvent &event) const +{ + return !GetEventHandler()->ProcessEvent(event); // || event.IsAllowed(); +} + +#if wxUSE_CONFIG +void wxFileBrowser::LoadConfig(wxConfigBase& config, bool paths, bool filters, + const wxString &configPath ) +{ + wxString value, key; + key = configPath + wxT("/style"); + if (config.Read(key, &value) && (!value.IsEmpty())) + { + long lvalue = 0; + if (value.ToLong(&lvalue)) + { + SetBrowserStyle(lvalue); + } + } + + if (paths) + { + int n = 0; + key = configPath + wxString::Format(wxT("/dir%d"), 1+n); + while ((n < 21) && config.Read(key, &value) && (!value.IsEmpty())) + { + value.Trim(false).Trim(true); + if (!value.IsEmpty()) + { + if (value.Last() != wxFILE_SEP_PATH) + value += wxFILE_SEP_PATH; + //if (wxDirExists(value)) + { + if (m_pathCombo->FindString(value) == wxNOT_FOUND) + m_pathCombo->Append(value, (void*)NULL); + } + } + n++; + key = configPath + wxString::Format(wxT("/dir%d"), 1+n); + value = wxEmptyString; + } + } + if (filters) + { + int n = 0; + key = configPath + wxString::Format(wxT("/filter%d"), 1+n); + while ((n < 21) && config.Read(key, &value) && (!value.IsEmpty())) + { + value.Trim(false).Trim(true); + if (!value.IsEmpty()) + { + if (m_filterCombo->FindString(value) == wxNOT_FOUND) + m_filterCombo->Append(value, (void*)NULL); + } + n++; + key = configPath + wxString::Format(wxT("/filter%d"), 1+n); + value = wxEmptyString; + } + } +} +void wxFileBrowser::SaveConfig(wxConfigBase& config, int n_paths, int n_filters, + const wxString &configPath) +{ + wxString value, key; + key = configPath + wxT("/style"); + config.Write(key, GetBrowserStyle()); + + if (n_paths > 0) + { + int n, item = 1, count = m_pathCombo->GetCount(); + for (n = 0; (n < count) && (item < n_paths); n++) + { + value = m_pathCombo->GetString(n); + if (!value.IsEmpty()) + { + config.Write(configPath + wxString::Format(wxT("/dir%d"), item), value); + item++; + } + } + } + if (n_filters > 0) + { + int n, item = 1, count = m_filterCombo->GetCount(); + for (n = 0; (n < count) && (item < n_filters); n++) + { + // don't save the initial filters since they are programmed in + wxString *data = (wxString*)m_filterCombo->GetClientData(n); + if (data) continue; + + value = m_filterCombo->GetString(n); + if (!value.IsEmpty()) + { + config.Write(configPath + wxString::Format(wxT("/filter%d"), item), value); + item++; + } + } + } +} +#endif // wxUSE_CONFIG + +void wxFileBrowser::ShowPropertiesDialog(const wxFileData &fileData) const +{ + wxFilePropertiesDialog propDialog((wxWindow*)this, wxID_ANY, + fileData, + fileData.GetFileName() + wxT(" Properties"), + wxDEFAULT_DIALOG_STYLE, wxDefaultPosition); + + propDialog.Centre(); + propDialog.ShowModal(); +} + +wxString wxFileBrowser::GetOpenWithFileCmd(wxFileData* fd) const +{ + wxCHECK_MSG(fd, wxEmptyString, wxT("Invalid wxFileData for GetOpenWithFileCmd")); + OpenWithDialog dialog((wxWindow*)this, wxID_ANY, *fd); + dialog.ShowModal(); + return dialog.GetOpenCommand(); +} diff --git a/.svn/pristine/44/44cbd8a7338e349091b3445157427ff8da2f8e6f.svn-base b/.svn/pristine/44/44cbd8a7338e349091b3445157427ff8da2f8e6f.svn-base new file mode 100644 index 0000000..5730f19 --- /dev/null +++ b/.svn/pristine/44/44cbd8a7338e349091b3445157427ff8da2f8e6f.svn-base @@ -0,0 +1,81361 @@ +360 x 225 +10.1 0 0 +10.0996 -0.0662149 0.0581712 +10.0985 -0.132425 0.116338 +10.6963 -0.210424 0.184862 +10.9933 -0.288406 0.253371 +11.8887 -0.389959 0.342588 +11.8837 -0.467886 0.411048 +11.2789 -0.518258 0.455301 +12.9683 -0.681272 0.598512 +12.1624 -0.719111 0.631754 +12.5521 -0.825008 0.724787 +13.836 -1.00088 0.879294 +14.52 -1.14652 1.00724 +13.8106 -1.18213 1.03853 +18.8584 -1.73957 1.52825 +28.5536 -2.82411 2.48105 +31.3915 -3.31442 2.91179 +37.187 -4.17525 3.66805 +37.9272 -4.5129 3.96468 +42.1144 -5.29456 4.65138 +48.2556 -6.39233 5.6158 +61.5518 -8.57035 7.52923 +86.4814 -12.629 11.0948 +86.1354 -13.1655 11.5661 +91.4568 -14.6043 12.8302 +93.041 -15.4961 13.6137 +93.8318 -16.2745 14.2975 +94.6116 -17.0644 14.9914 +94.4098 -17.684 15.5358 +94.4912 -18.3587 16.1285 +95.0471 -19.133 16.8088 +95.4958 -19.896 17.479 +95.261 -20.5213 18.0284 +95.019 -21.145 18.5763 +94.7698 -21.7671 19.1229 +95.3717 -22.591 19.8466 +95.0105 -23.1921 20.3748 +95.6859 -24.0525 21.1306 +95.4028 -24.6789 21.6809 +95.8666 -25.5041 22.4059 +95.2848 -26.0544 22.8894 +96.0089 -26.9676 23.6916 +95.5053 -27.5421 24.1963 +96.1121 -28.4426 24.9874 +95.7781 -29.0716 25.54 +95.0672 -29.5834 25.9896 +93.9835 -29.9706 26.3298 +93.8152 -30.6456 26.9228 +94.552 -31.6261 27.7842 +94.454 -32.3383 28.4099 +94.6185 -33.1468 29.1201 +94.0494 -33.7012 29.6072 +94.3734 -34.5799 30.3792 +94.7735 -35.499 31.1866 +93.9121 -35.9484 31.5815 +94.9989 -37.1525 32.6393 +94.2988 -37.6681 33.0922 +93.5061 -38.1415 33.5081 +94.284 -39.2629 34.4933 +92.0836 -39.1397 34.385 +90.6729 -39.3287 34.5511 +88.2308 -39.0446 34.3015 +87.5168 -39.5055 34.7065 +85.3493 -39.2927 34.5195 +83.7023 -39.2934 34.5201 +82.821 -39.6388 34.8235 +80.9317 -39.4847 34.6882 +79.3025 -39.4333 34.643 +78.427 -39.7416 34.9138 +77.4679 -39.999 35.1399 +75.1162 -39.5142 34.7141 +74.6544 -40.0052 35.1454 +72.8115 -39.7424 34.9145 +70.9002 -39.4139 34.6259 +69.9605 -39.6059 34.7946 +68.2284 -39.3313 34.5534 +67.3749 -39.5459 34.7419 +66.5217 -39.7522 34.9231 +65.2803 -39.714 34.8896 +63.4275 -39.2803 34.5086 +62.9689 -39.6946 34.8726 +61.2127 -39.2765 34.5053 +60.0749 -39.2327 34.4668 +59.6169 -39.6251 34.8115 +58.4112 -39.5118 34.7119 +57.2864 -39.4364 34.6457 +55.9486 -39.1956 34.4342 +54.9108 -39.1472 34.3916 +53.8066 -39.036 34.294 +52.7092 -38.9134 34.1862 +52.2552 -39.2575 34.4885 +51.1664 -39.1163 34.3645 +50.0849 -38.9639 34.2306 +49.0797 -38.8548 34.1348 +48.4901 -39.0651 34.3196 +47.3589 -38.8277 34.1109 +47.0399 -39.2484 34.4805 +46.1846 -39.2176 34.4535 +45.1369 -39.0086 34.2699 +44.1625 -38.8461 34.1271 +43.3239 -38.7888 34.0768 +42.9353 -39.1294 34.376 +41.8498 -38.8255 34.109 +40.9615 -38.6868 33.9872 +40.0796 -38.5395 33.8578 +39.6912 -38.8603 34.1396 +39.118 -38.9991 34.2615 +38.3066 -38.8917 34.1672 +37.5595 -38.8375 34.1196 +36.5262 -38.4707 33.7973 +36.078 -38.7087 34.0064 +35.5137 -38.8198 34.1041 +34.5581 -38.4906 33.8149 +34.1097 -38.7157 34.0126 +33.6042 -38.8749 34.1524 +33.0977 -39.0304 34.289 +32.537 -39.1185 34.3664 +31.6112 -38.7537 34.046 +31.2113 -39.0239 34.2833 +30.8076 -39.2918 34.5187 +29.9 -38.9067 34.1804 +29.4469 -39.1013 34.3513 +28.5553 -38.7014 34.0001 +28.0569 -38.8211 34.1052 +27.6519 -39.0699 34.3238 +26.8276 -38.7166 34.0134 +26.4222 -38.958 34.2254 +25.5225 -38.4574 33.7856 +25.1187 -38.6908 33.9907 +24.6252 -38.7862 34.0745 +24.1738 -38.9461 34.215 +23.8034 -39.2399 34.4731 +22.9399 -38.7081 34.0059 +22.5293 -38.9259 34.1973 +22.0763 -39.0721 34.3257 +21.2772 -38.5907 33.9028 +20.8656 -38.7984 34.0852 +20.3775 -38.8638 34.1427 +19.9611 -39.066 34.3204 +19.2264 -38.6325 33.9395 +18.8111 -38.8277 34.1109 +18.3594 -38.9495 34.218 +17.8737 -38.9974 34.26 +17.3566 -38.9706 34.2365 +17.2122 -39.7973 34.9628 +16.4787 -39.2638 34.4941 +15.7881 -38.7957 34.0828 +15.3652 -38.9696 34.2357 +14.6915 -38.4912 33.8153 +14.4309 -39.0928 34.3438 +13.7951 -38.6779 33.9794 +13.3703 -38.8397 34.1215 +12.8944 -38.853 34.1332 +12.4426 -38.936 34.2061 +11.9674 -38.9429 34.2122 +11.4713 -38.8732 34.1509 +10.8946 -38.506 33.8283 +10.6064 -39.1649 34.4072 +10.0175 -38.7167 34.0134 +9.56737 -38.7809 34.0699 +9.13389 -38.9162 34.1887 +8.6815 -38.9745 34.24 +8.22845 -39.03 34.2887 +7.65653 -38.488 33.8125 +7.22308 -38.6111 33.9207 +6.7482 -38.5081 33.8302 +6.32502 -38.6999 33.9987 +5.96581 -39.3371 34.5585 +5.40412 -38.6276 33.9352 +4.96481 -38.7363 34.0307 +4.50595 -38.6926 33.9923 +4.05634 -38.7206 34.0169 +3.59943 -38.6708 33.9731 +3.15621 -38.7679 34.0585 +2.70577 -38.7871 34.0753 +2.25512 -38.8034 34.0896 +1.8043 -38.8167 34.1013 +1.35597 -38.9021 34.1763 +0.888327 -38.2335 33.5889 +0.451162 -38.8389 34.1208 +3.1105e-15 -38.1642 33.5281 +-0.451162 -38.8389 34.1208 +-0.900544 -38.7593 34.0509 +-1.35073 -38.7519 34.0444 +-1.80081 -38.7416 34.0354 +-2.25512 -38.8034 34.0896 +-2.70054 -38.7121 34.0094 +-3.1501 -38.693 33.9926 +-3.66221 -39.3453 34.5657 +-4.11126 -39.2449 34.4775 +-4.56696 -39.2164 34.4525 +-5.01273 -39.1102 34.3592 +-5.46684 -39.0759 34.329 +-5.93185 -39.1132 34.3618 +-6.38595 -39.0728 34.3263 +-6.82652 -38.955 34.2228 +-7.29267 -38.9831 34.2475 +-7.74521 -38.9338 34.2042 +-8.18152 -38.8074 34.0931 +-8.61549 -38.6782 33.9796 +-9.06443 -38.6202 33.9287 +-9.65848 -39.1503 34.3943 +-10.0175 -38.7167 34.0134 +-10.2874 -37.987 33.3724 +-10.9362 -38.653 33.9575 +-11.3847 -38.5798 33.8932 +-11.8099 -38.4305 33.762 +-12.2559 -38.3516 33.6927 +-12.7251 -38.3427 33.6849 +-13.3703 -38.8397 34.1215 +-13.7951 -38.6779 33.9794 +-14.2705 -38.6585 33.9623 +-14.9671 -39.2134 34.4498 +-15.422 -39.1137 34.3623 +-15.8758 -39.0111 34.2721 +-16.3584 -38.9772 34.2423 +-16.8414 -38.94 34.2096 +-17.2931 -38.828 34.1113 +-18.069 -39.4236 34.6344 +-18.5597 -39.3744 34.5913 +-19.0505 -39.3218 34.5451 +-19.5066 -39.1954 34.434 +-19.9253 -38.9959 34.2588 +-20.7073 -39.4929 34.6954 +-21.0904 -39.2164 34.4524 +-21.5451 -39.0766 34.3296 +-22.0372 -39.003 34.265 +-22.8483 -39.4771 34.6814 +-23.3874 -39.4631 34.6692 +-23.8863 -39.3766 34.5932 +-24.3428 -39.2185 34.4543 +-25.1849 -39.6676 34.8489 +-25.6447 -39.5011 34.7026 +-26.1026 -39.3315 34.5535 +-26.6038 -39.2258 34.4607 +-27.4279 -39.5829 34.7744 +-27.8397 -39.3353 34.5569 +-28.2955 -39.1513 34.3953 +-29.1371 -39.4899 34.6927 +-29.6931 -39.4281 34.6385 +-29.95 -38.9718 34.2375 +-30.9598 -39.486 34.6893 +-31.3658 -39.2171 34.4531 +-32.2904 -39.5865 34.7776 +-32.855 -39.5007 34.7022 +-33.2051 -39.1571 34.4003 +-33.9855 -39.3159 34.5399 +-34.8272 -39.5302 34.7281 +-35.6206 -39.674 34.8545 +-36.0234 -39.3771 34.5936 +-37.053 -39.7548 34.9254 +-37.5134 -39.5104 34.7107 +-38.4999 -39.8099 34.9739 +-38.9014 -39.4956 34.6977 +-39.9003 -39.7791 34.9468 +-40.4218 -39.5756 34.768 +-40.8799 -39.3091 34.5339 +-41.833 -39.51 34.7103 +-42.9826 -39.8764 35.0323 +-43.5078 -39.651 34.8343 +-44.4166 -39.7672 34.9363 +-44.9418 -39.5316 34.7294 +-45.9241 -39.6891 34.8677 +-46.9798 -39.8929 35.0467 +-47.4414 -39.5834 34.7748 +-48.5074 -39.7693 34.9382 +-49.6495 -39.9992 35.1401 +-50.6629 -40.1082 35.2359 +-51.1269 -39.7745 34.9427 +-52.2177 -39.9201 35.0706 +-53.3866 -40.1074 35.2352 +-54.5637 -40.2825 35.389 +-55.8208 -40.4973 35.5777 +-56.9419 -40.5952 35.6637 +-57.3381 -40.1691 35.2894 +-58.5398 -40.2992 35.4037 +-59.4516 -40.2155 35.3302 +-60.3658 -40.1229 35.2488 +-61.3579 -40.0706 35.2029 +-62.5814 -40.1548 35.2768 +-63.8115 -40.2258 35.3393 +-64.585 -39.9971 35.1383 +-65.7465 -39.9977 35.1388 +-67.3043 -40.2199 35.334 +-68.4781 -40.1934 35.3107 +-70.0531 -40.3832 35.4775 +-71.2383 -40.3293 35.4301 +-73.3117 -40.7544 35.8036 +-74.5914 -40.7139 35.768 +-75.5499 -40.485 35.567 +-77.246 -40.6346 35.6984 +-78.7041 -40.6372 35.7007 +-80.3337 -40.7078 35.7627 +-81.971 -40.7601 35.8087 +-83.4477 -40.7122 35.7665 +-85.0982 -40.7287 35.781 +-86.3313 -40.5275 35.6043 +-89.0156 -40.9806 36.0024 +-90.9455 -41.0532 36.0661 +-92.1082 -40.7605 35.809 +-95.1762 -41.282 36.2671 +-96.8706 -41.1743 36.1725 +-99.007 -41.2297 36.2212 +-101.328 -41.3318 36.3109 +-103.128 -41.195 36.1907 +-106.53 -41.6621 36.6011 +-108.703 -41.6101 36.5554 +-111.598 -41.801 36.7231 +-113.608 -41.6276 36.5708 +-116.343 -41.6898 36.6254 +-121.083 -42.4177 37.2649 +-125.302 -42.8997 37.6883 +-128.993 -43.146 37.9047 +-132.057 -43.1375 37.8972 +-135.13 -43.092 37.8572 +-136.549 -42.492 37.3301 +-14.6495 -4.44657 3.9064 +-52.8477 -15.6393 13.7395 +-48.6395 -14.0269 12.3229 +-42.1502 -11.8394 10.4012 +-39.4671 -10.7918 9.48079 +-15.7421 -4.18797 3.67923 +-15.412 -3.98678 3.50247 +-15.1732 -3.81407 3.35074 +-14.7414 -3.59837 3.16125 +-15.3548 -3.63714 3.19531 +-14.9184 -3.42652 3.01027 +-14.9576 -3.32858 2.92423 +-12.7848 -2.75412 2.41955 +-14.2617 -2.97135 2.61039 +-3164.66 -637.049 559.661 +-3171.94 -616.277 541.413 +-11.2554 -2.10827 1.85216 +-13.127 -2.36762 2.08 +-13.2514 -2.29836 2.01916 +-12.6918 -2.11384 1.85705 +-13.3028 -2.12427 1.86622 +-13.229 -2.022 1.77637 +-12.7612 -1.86353 1.63715 +-13.3723 -1.86193 1.63575 +-13.5903 -1.80028 1.58159 +-13.6107 -1.71112 1.50326 +-12.9387 -1.53956 1.35253 +-12.8572 -1.44357 1.26821 +-13.7647 -1.45333 1.27678 +-13.7811 -1.36303 1.19745 +-13.2009 -1.21769 1.06977 +-13.1151 -1.1226 0.986227 +-12.1332 -0.95805 0.841667 +-12.4425 -0.900067 0.790728 +-11.4562 -0.752985 0.661513 +-11.5642 -0.683745 0.600685 +-10.4744 -0.550258 0.483414 +-10.9795 -0.504499 0.443214 +-10.7852 -0.424636 0.373051 +-10.3901 -0.340805 0.299404 +-10.9933 -0.288406 0.253371 +-10.9962 -0.216324 0.190045 +-9.89849 -0.129803 0.114034 +-9.89962 -0.0649037 0.0570193 +9.9 0 0 +10.0996 -0.0656873 0.0587663 +10.9983 -0.143076 0.128001 +10.6963 -0.208747 0.186753 +10.9933 -0.286108 0.255963 +10.9895 -0.357594 0.319917 +12.1833 -0.475859 0.425722 +12.0774 -0.550527 0.492522 +12.1703 -0.634253 0.567427 +12.4615 -0.730923 0.653911 +13.4486 -0.876894 0.784502 +14.2342 -1.02147 0.913846 +14.8184 -1.16075 1.03845 +14.1087 -1.19803 1.0718 +16.8733 -1.54405 1.38137 +29.5451 -2.89889 2.59346 +33.8672 -3.54732 3.17356 +37.0881 -4.13097 3.69572 +39.5075 -4.66349 4.17213 +42.0158 -5.24007 4.68796 +45.2027 -5.9402 5.31433 +59.7819 -8.25761 7.38756 +85.4016 -12.3719 11.0684 +89.5651 -13.5806 12.1497 +91.359 -14.4726 12.9477 +92.26 -15.2435 13.6374 +93.9293 -16.1616 14.4588 +94.6116 -16.9284 15.1448 +95.283 -17.7054 15.8399 +95.2657 -18.3617 16.4271 +95.0471 -18.9806 16.9807 +95.4958 -19.7374 17.6578 +95.261 -20.3578 18.2128 +95.019 -20.9765 18.7664 +94.7698 -21.5937 19.3185 +95.2763 -22.3885 20.0296 +95.0105 -23.0073 20.5832 +95.591 -23.8372 21.3256 +95.3083 -24.458 21.8811 +95.8666 -25.3009 22.6351 +95.4728 -25.8978 23.1692 +96.0089 -26.7527 23.934 +95.5053 -27.3226 24.4439 +96.1121 -28.2159 25.243 +96.6126 -29.0912 26.0261 +96.1759 -29.6899 26.5617 +93.8915 -29.7028 26.5732 +94.4572 -30.6095 27.3844 +94.4606 -31.3439 28.0414 +93.271 -31.6789 28.3411 +94.6185 -32.8826 29.418 +93.5078 -33.2401 29.7378 +93.7442 -34.0757 30.4854 +93.8786 -34.8836 31.2082 +93.9121 -35.662 31.9046 +94.2006 -36.5467 32.6961 +93.6807 -37.123 33.2116 +93.3304 -37.7665 33.7873 +94.0216 -38.8417 34.7492 +92.0836 -38.8278 34.7368 +90.6729 -39.0153 34.9046 +88.4893 -38.847 34.754 +86.5739 -38.7685 34.6837 +85.3493 -38.9796 34.8726 +83.7023 -38.9803 34.8732 +82.062 -38.9626 34.8574 +80.5124 -38.9671 34.8614 +79.3025 -39.1191 34.9974 +77.6808 -39.0499 34.9355 +76.7261 -39.3003 35.1595 +75.8535 -39.5841 35.4134 +73.9217 -39.2969 35.1565 +72.0834 -39.0315 34.919 +70.9002 -39.0998 34.9802 +69.9605 -39.2903 35.1506 +68.1491 -38.9725 34.8663 +66.9021 -38.9555 34.851 +66.5217 -39.4354 35.2804 +64.5031 -38.9286 34.8269 +63.4275 -38.9673 34.8616 +62.2794 -38.9472 34.8436 +61.897 -39.3992 35.248 +60.0749 -38.9201 34.8194 +59.6169 -39.3094 35.1677 +57.7424 -38.7481 34.6655 +57.2864 -39.1222 35.0002 +56.0217 -38.9342 34.8319 +54.9108 -38.8353 34.7435 +53.7347 -38.6732 34.5985 +53.3511 -39.0734 34.9566 +51.6895 -38.5231 34.4642 +51.2365 -38.8578 34.7636 +50.1543 -38.707 34.6287 +49.0108 -38.4912 34.4356 +48.0127 -38.3724 34.3293 +47.4264 -38.5733 34.5091 +46.4377 -38.4372 34.3874 +46.0521 -38.7935 34.7061 +45.0056 -38.5854 34.5199 +44.1625 -38.5365 34.4762 +43.1953 -38.3656 34.3233 +42.8717 -38.7601 34.6762 +41.8498 -38.5161 34.458 +41.5217 -38.9035 34.8045 +40.7568 -38.8784 34.7821 +39.6912 -38.5507 34.4889 +38.456 -38.0336 34.0263 +38.3066 -38.5819 34.5168 +37.7358 -38.7089 34.6305 +37.1069 -38.7709 34.6859 +36.078 -38.4002 34.3543 +35.457 -38.4491 34.398 +35.0055 -38.6783 34.603 +34.0545 -38.3452 34.305 +33.5498 -38.5026 34.4459 +33.0439 -38.6565 34.5836 +32.59 -38.87 34.7745 +32.1337 -39.0805 34.9628 +31.2113 -38.713 34.6341 +30.3508 -38.4008 34.3547 +29.9 -38.5967 34.53 +29.4469 -38.7897 34.7027 +28.5068 -38.3279 34.2895 +28.5341 -39.1668 35.0401 +27.2763 -38.2322 34.204 +27.197 -38.937 34.8345 +26.0137 -38.05 34.0409 +25.5225 -38.1509 34.1313 +25.0748 -38.3155 34.2785 +24.6252 -38.4771 34.4231 +24.1738 -38.6358 34.565 +23.8034 -38.9272 34.8257 +22.8993 -38.3316 34.2929 +22.4894 -38.5474 34.486 +22.0372 -38.6922 34.6155 +21.6216 -38.9029 34.804 +20.8281 -38.4201 34.3721 +20.4141 -38.6235 34.554 +19.9611 -38.7548 34.6715 +19.2264 -38.3247 34.2867 +18.7769 -38.4482 34.3972 +18.326 -38.5689 34.5052 +17.8411 -38.6161 34.5474 +17.3883 -38.7307 34.6499 +16.9959 -38.9841 34.8766 +16.5087 -39.0221 34.9106 +15.7881 -38.4865 34.4315 +15.3652 -38.6591 34.5859 +14.6639 -38.1129 34.0972 +14.4309 -38.7813 34.6952 +13.7951 -38.3698 34.327 +13.3453 -38.4581 34.406 +12.9186 -38.6157 34.547 +12.2325 -37.9736 33.9726 +11.7649 -37.9791 33.9775 +11.4713 -38.5635 34.5003 +10.8946 -38.1992 34.1744 +10.6064 -38.8528 34.7592 +10.151 -38.9204 34.8196 +9.56737 -38.4719 34.4184 +8.97761 -37.9455 33.9475 +8.665 -38.5905 34.5245 +8.08766 -38.0565 34.0468 +7.67131 -38.2551 34.2244 +7.237 -38.3773 34.3337 +6.86568 -38.8663 34.7712 +6.31283 -38.3177 34.2804 +5.86393 -38.3572 34.3158 +5.40412 -38.3198 34.2823 +4.96481 -38.4277 34.3788 +4.50595 -38.3843 34.34 +4.05634 -38.4121 34.3649 +3.59943 -38.3627 34.3207 +3.15621 -38.459 34.4069 +2.70577 -38.478 34.4239 +2.2115 -37.7496 33.7722 +1.7694 -37.7626 33.7838 +1.35597 -38.5921 34.526 +0.886582 -37.8544 33.866 +0.450289 -38.4549 34.4032 +3.1105e-15 -37.8601 33.8711 +-0.458143 -39.1256 35.0032 +-0.884837 -37.7799 33.7993 +-1.35073 -38.4432 34.3927 +-1.8043 -38.5074 34.4502 +-2.25076 -38.4198 34.3718 +-2.70054 -38.4037 34.3573 +-3.1501 -38.3847 34.3403 +-3.59943 -38.3627 34.3207 +-4.11126 -38.9322 34.8302 +-4.56696 -38.904 34.8049 +-5.01273 -38.7986 34.7107 +-5.45639 -38.6904 34.6138 +-6.02241 -39.3939 35.2433 +-6.38595 -38.7615 34.6775 +-6.83957 -38.7185 34.639 +-7.29267 -38.6725 34.5978 +-7.73043 -38.5499 34.4882 +-8.18152 -38.4982 34.4419 +-8.61549 -38.37 34.3272 +-8.99498 -38.0189 34.0131 +-9.51269 -38.2521 34.2217 +-9.84574 -37.7498 33.7724 +-10.2874 -37.6843 33.7138 +-10.749 -37.6889 33.7179 +-11.3847 -38.2724 34.2399 +-11.8324 -38.1969 34.1724 +-12.2559 -38.046 34.0374 +-12.9186 -38.6157 34.547 +-13.3453 -38.4581 34.406 +-13.7951 -38.3698 34.327 +-14.2705 -38.3505 34.3097 +-14.9395 -38.8293 34.7381 +-15.422 -38.8021 34.7138 +-15.8758 -38.7003 34.6227 +-16.3283 -38.5956 34.529 +-16.8414 -38.6297 34.5596 +-17.3248 -38.5894 34.5235 +-17.776 -38.4752 34.4214 +-18.5597 -39.0607 34.9452 +-18.7085 -38.3082 34.2719 +-19.4715 -38.8133 34.7239 +-19.8536 -38.5461 34.4848 +-20.634 -39.0395 34.9262 +-21.0904 -38.9039 34.8049 +-21.5451 -38.7652 34.6808 +-22.3498 -39.2411 35.1065 +-22.8483 -39.1625 35.0362 +-23.3874 -39.1486 35.0238 +-23.8863 -39.0629 34.9471 +-24.3428 -38.906 34.8067 +-24.7974 -38.7462 34.6638 +-25.6447 -39.1864 35.0576 +-25.7456 -38.4845 34.4296 +-26.6038 -38.9132 34.8132 +-27.4279 -39.2675 35.1302 +-27.9336 -39.1535 35.0282 +-28.2478 -38.7738 34.6885 +-29.1371 -39.1752 35.0476 +-29.6439 -39.0491 34.9348 +-30 -38.7258 34.6455 +-30.8583 -39.043 34.9293 +-31.3658 -38.9046 34.8055 +-31.8202 -38.6992 34.6217 +-32.3781 -38.6171 34.5483 +-33.2051 -38.8451 34.7523 +-33.6042 -38.5652 34.5018 +-34.8272 -39.2152 35.0834 +-35.4528 -39.1726 35.0452 +-36.0234 -39.0633 34.9475 +-36.4795 -38.8276 34.7366 +-37.5134 -39.1956 35.0658 +-37.9121 -38.8898 34.7923 +-38.9014 -39.1809 35.0527 +-39.9003 -39.4621 35.3043 +-40.4218 -39.2603 35.1237 +-40.8184 -38.9371 34.8346 +-41.833 -39.1951 35.0654 +-42.2903 -38.9216 34.8207 +-43.4441 -39.2777 35.1393 +-44.4809 -39.5074 35.3448 +-45.5263 -39.7267 35.541 +-45.4649 -38.9791 34.8721 +-46.9798 -39.575 35.4053 +-47.4414 -39.268 35.1306 +-48.5074 -39.4524 35.2956 +-48.9675 -39.1355 35.012 +-50.1122 -39.3561 35.2095 +-51.1963 -39.5111 35.3481 +-52.2878 -39.6551 35.477 +-53.3866 -39.7879 35.5957 +-54.5637 -39.9615 35.7511 +-55.8927 -40.2264 35.988 +-56.2891 -39.81 35.6155 +-56.753 -39.4424 35.2867 +-58.5398 -39.9781 35.7659 +-59.4516 -39.895 35.6916 +-61.0399 -40.2476 36.007 +-61.3579 -39.7513 35.563 +-62.6575 -39.8832 35.681 +-63.1221 -39.4742 35.3151 +-64.585 -39.6784 35.4978 +-65.9797 -39.8197 35.6242 +-66.6 -39.4819 35.3219 +-67.7689 -39.4602 35.3025 +-69.6564 -39.8346 35.6375 +-71.5577 -40.1873 35.9531 +-73.3117 -40.4297 36.1699 +-73.4587 -39.7762 35.5852 +-75.7942 -40.2923 36.047 +-77.0003 -40.1826 35.9488 +-78.7041 -40.3134 36.0659 +-79.5876 -40.0084 35.793 +-82.2211 -40.5588 36.2854 +-83.1961 -40.266 36.0235 +-84.8452 -40.284 36.0396 +-86.5857 -40.3231 36.0746 +-89.0156 -40.6541 36.3707 +-90.174 -40.3807 36.126 +-92.8836 -40.7761 36.4798 +-94.137 -40.5059 36.2381 +-96.4354 -40.6628 36.3784 +-98.4822 -40.6844 36.3978 +-100.8 -40.7891 36.4915 +-102.863 -40.7618 36.467 +-105.377 -40.8828 36.5752 +-107.455 -40.8049 36.5056 +-110.793 -41.1686 36.831 +-113.338 -41.1979 36.8572 +-116.343 -41.3576 37.0001 +-121.355 -42.1742 37.7307 +-125.302 -42.5578 38.0738 +-127.44 -42.2869 37.8315 +-132.882 -43.0612 38.5242 +-134.21 -42.4575 37.984 +-135.995 -41.9823 37.5589 +-14.3713 -4.32738 3.87144 +-50.7078 -14.8864 13.3179 +-46.9591 -13.4343 12.0188 +-42.0566 -11.719 10.4842 +-38.5274 -10.4509 9.34975 +-15.7421 -4.15461 3.71686 +-15.1283 -3.88222 3.47318 +-15.7422 -3.92557 3.51196 +-15.0267 -3.6388 3.2554 +-15.5456 -3.65298 3.26809 +-15.1096 -3.44279 3.08005 +-14.2864 -3.15389 2.82159 +-14.5151 -3.10194 2.77511 +-13.3945 -2.76842 2.47673 +-3164.66 -631.973 565.386 +-12.005 -2.31387 2.07008 +-11.8376 -2.19965 1.96789 +-13.127 -2.34875 2.10128 +-12.0822 -2.07887 1.85984 +-12.399 -2.04861 1.83276 +-12.4225 -1.96789 1.76055 +-12.641 -1.91674 1.71479 +-13.1538 -1.90556 1.70478 +-13.3723 -1.8471 1.65248 +-13.7873 -1.81182 1.62092 +-12.6245 -1.57448 1.40859 +-13.4326 -1.58559 1.41853 +-13.4506 -1.49817 1.34031 +-14.0618 -1.47286 1.31768 +-13.1862 -1.2938 1.15748 +-13.6971 -1.25341 1.12135 +-13.1151 -1.11365 0.996317 +-12.4315 -0.973788 0.871187 +-11.7457 -0.842895 0.754085 +-11.9543 -0.779464 0.697338 +-11.1655 -0.654907 0.585904 +-11.5717 -0.60306 0.53952 +-10.9795 -0.50048 0.447748 +-11.5841 -0.452456 0.404784 +-11.589 -0.3771 0.337367 +-10.0938 -0.262699 0.235021 +-10.3964 -0.202895 0.181517 +-10.7984 -0.140475 0.125674 +-10.7996 -0.0702399 0.0628393 +10.4 0 0 +9.49964 -0.0612839 0.0558305 +10.3984 -0.134174 0.122235 +10.9962 -0.212859 0.193918 +10.0938 -0.260568 0.237381 +11.2892 -0.364367 0.331943 +11.2845 -0.437179 0.398276 +11.8778 -0.537035 0.489248 +11.5717 -0.598168 0.54494 +12.4615 -0.724993 0.66048 +13.0502 -0.84401 0.768906 +12.9402 -0.921075 0.839114 +14.2217 -1.10497 1.00665 +14.0094 -1.17994 1.07494 +16.1785 -1.46846 1.33779 +32.916 -3.20344 2.91838 +37.2341 -3.86833 3.52411 +37.8793 -4.18486 3.81248 +38.2235 -4.47532 4.07708 +40.9309 -5.06335 4.61279 +38.8999 -5.07046 4.61927 +52.8008 -7.23416 6.59043 +71.4625 -10.2686 9.35484 +78.002 -11.7314 10.6875 +78.2518 -12.2956 11.2014 +89.9169 -14.7359 13.4246 +92.2728 -15.7478 14.3465 +94.6116 -16.7911 15.2969 +95.283 -17.5617 15.999 +95.2657 -18.2127 16.5921 +95.0471 -18.8266 17.1513 +94.8212 -19.4391 17.7093 +95.261 -20.1926 18.3958 +95.019 -20.8063 18.9549 +94.7698 -21.4185 19.5126 +94.5133 -22.029 20.0688 +95.0105 -22.8207 20.79 +95.591 -23.6438 21.5399 +95.3083 -24.2596 22.1009 +95.8666 -25.0956 22.8625 +95.4728 -25.6877 23.4019 +95.8216 -26.4839 24.1272 +95.4119 -27.0745 24.6653 +96.2052 -28.0141 25.5212 +96.3344 -28.7721 26.2118 +95.4368 -29.2227 26.6223 +93.8915 -29.4618 26.8401 +93.8152 -30.1547 27.4714 +94.3692 -31.0595 28.2957 +94.09 -31.6977 28.8771 +94.6185 -32.6159 29.7135 +94.2299 -33.2251 30.2685 +94.3734 -34.0261 30.9983 +94.0576 -34.6666 31.5818 +94.2685 -35.5069 32.3473 +94.1118 -36.2161 32.9934 +93.5924 -36.7871 33.5136 +94.2092 -37.8127 34.448 +93.4094 -38.2757 34.8698 +92.0836 -38.5128 35.0857 +88.9408 -37.9595 34.5817 +87.7138 -38.1942 34.7955 +86.0596 -38.2255 34.824 +84.1556 -38.1226 34.7303 +82.5151 -38.1156 34.7239 +81.3873 -38.3287 34.918 +79.7576 -38.2886 34.8815 +78.552 -38.4345 35.0144 +77.1834 -38.4851 35.0605 +76.3141 -38.7721 35.322 +74.379 -38.4997 35.0738 +73.2704 -38.6347 35.1968 +71.3553 -38.3238 34.9135 +70.4982 -38.5628 35.1313 +68.6827 -38.2597 34.8552 +68.0697 -38.6113 35.1755 +66.9021 -38.6394 35.2011 +65.6608 -38.6093 35.1737 +63.8037 -38.194 34.7953 +63.4275 -38.6512 35.2118 +61.5134 -38.156 34.7607 +60.4523 -38.1673 34.771 +59.3956 -38.1679 34.7715 +58.8679 -38.5006 35.0746 +57.7424 -38.4337 35.0137 +56.4017 -38.2055 34.8058 +55.3635 -38.1645 34.7685 +54.9108 -38.5202 35.0925 +53.7347 -38.3595 34.9461 +52.7092 -38.2901 34.8829 +51.6188 -38.1582 34.7627 +50.4655 -37.9625 34.5844 +49.4597 -37.8612 34.4922 +49.0108 -38.1789 34.7815 +47.3989 -37.5745 34.2309 +46.886 -37.8243 34.4585 +46.5715 -38.2352 34.8329 +45.522 -38.0359 34.6513 +44.4808 -37.826 34.46 +44.0975 -38.1677 34.7714 +43.581 -38.3941 34.9776 +42.8717 -38.4456 35.0245 +41.4722 -37.8589 34.4901 +41.086 -38.1829 34.7852 +40.1411 -37.9805 34.6008 +39.2042 -37.7688 34.408 +38.7569 -38.0202 34.637 +37.5333 -37.4963 34.1597 +37.0892 -37.737 34.379 +36.4681 -37.7943 34.4312 +35.5617 -37.5437 34.2028 +35.5137 -38.1981 34.799 +34.5022 -37.8129 34.4481 +34.0545 -38.0341 34.6496 +33.0596 -37.6323 34.2836 +33.0439 -38.3429 34.931 +32.1131 -37.9904 34.6098 +31.6634 -38.1961 34.7972 +30.7478 -37.8286 34.4625 +30.3508 -38.0892 34.6998 +29.85 -38.2195 34.8186 +28.9053 -37.7673 34.4066 +28.5068 -38.0169 34.634 +27.6752 -37.6797 34.3268 +27.2294 -37.8568 34.4881 +26.8276 -38.0965 34.7065 +25.9683 -37.6754 34.3228 +25.6118 -37.9737 34.5947 +25.0748 -38.0046 34.6228 +24.6683 -38.2317 34.8296 +24.1738 -38.3224 34.9123 +23.4302 -38.006 34.624 +22.9399 -38.0882 34.6989 +22.5293 -38.3025 34.8941 +21.7247 -37.8339 34.4673 +21.3155 -38.0409 34.6559 +20.8281 -38.1084 34.7174 +20.1209 -37.7599 34.3998 +19.6744 -37.8883 34.5168 +19.2264 -38.0137 34.6311 +18.4691 -37.5111 34.1732 +18.326 -38.256 34.8518 +17.5807 -37.7437 34.3851 +17.2296 -38.066 34.6787 +16.6869 -37.9648 34.5865 +16.3283 -38.2824 34.8759 +15.5249 -37.538 34.1977 +15.3368 -38.2747 34.8688 +14.6639 -37.8036 34.4397 +14.2171 -37.8968 34.5245 +13.7692 -37.9871 34.6068 +13.1199 -37.5019 34.1648 +12.6767 -37.5851 34.2406 +12.2325 -37.6655 34.3138 +11.7874 -37.7429 34.3844 +11.2765 -37.601 34.2551 +10.749 -37.3831 34.0566 +10.4469 -37.9581 34.5804 +9.99839 -38.0241 34.6405 +9.54914 -38.0871 34.698 +8.97761 -37.6377 34.2885 +8.6815 -38.3503 34.9377 +8.08766 -37.7478 34.3888 +7.68609 -38.0178 34.6348 +7.20917 -37.9195 34.5453 +6.76126 -37.9646 34.5863 +6.31283 -38.0068 34.6248 +5.86393 -38.046 34.6605 +5.40412 -38.0089 34.6267 +4.95523 -38.0423 34.6572 +4.4188 -37.3364 34.0141 +4.05634 -38.1004 34.7101 +3.53665 -37.3877 34.0608 +3.15621 -38.147 34.7525 +2.65343 -37.4277 34.0972 +2.2115 -37.4433 34.1115 +1.7694 -37.4562 34.1232 +1.32979 -37.5401 34.1996 +0.886582 -37.5473 34.2061 +0.452035 -38.2907 34.8834 +3.10438e-15 -37.479 34.144 +-0.442435 -37.4776 34.1427 +-0.883092 -37.3994 34.0715 +-1.35073 -38.1313 34.7382 +-1.76591 -37.3824 34.0559 +-2.25948 -38.2558 34.8516 +-2.70054 -38.0921 34.7025 +-3.1501 -38.0732 34.6853 +-3.59943 -38.0514 34.6654 +-4.0328 -37.8794 34.5087 +-4.47981 -37.8519 34.4837 +-4.91689 -37.748 34.389 +-5.45639 -38.3765 34.9616 +-5.92053 -38.4133 34.9951 +-6.27627 -37.7866 34.4242 +-6.73515 -37.8181 34.4528 +-7.16741 -37.6999 34.3452 +-7.73043 -38.2371 34.8346 +-8.04073 -37.5287 34.1892 +-8.36791 -36.9651 33.6757 +-8.82133 -36.9824 33.6916 +-9.64026 -38.4505 35.029 +-9.86483 -37.5161 34.1777 +-10.4868 -38.103 34.7124 +-10.749 -37.3831 34.0566 +-11.3631 -37.8897 34.5181 +-11.6525 -37.3108 33.9907 +-12.2559 -37.7373 34.3793 +-12.6525 -37.5134 34.1753 +-13.145 -37.5735 34.23 +-13.5621 -37.4158 34.0864 +-14.2438 -37.968 34.5895 +-14.6915 -37.8747 34.5044 +-15.1664 -37.8494 34.4814 +-15.6126 -37.7501 34.3909 +-16.3584 -38.353 34.9401 +-16.8105 -38.246 34.8427 +-17.2931 -38.2062 34.8064 +-17.5156 -37.6039 34.2577 +-18.2592 -38.1166 34.7248 +-18.7085 -37.9974 34.6162 +-19.5066 -38.5676 35.1357 +-19.8894 -38.3023 34.894 +-20.3042 -38.1038 34.7131 +-20.7907 -38.0399 34.6549 +-21.5833 -38.519 35.0914 +-21.9982 -38.3102 34.9012 +-22.5293 -38.3025 34.8941 +-22.9806 -38.1557 34.7604 +-23.8449 -38.6787 35.2369 +-23.9625 -37.9874 34.6071 +-24.7974 -38.4318 35.012 +-25.294 -38.3368 34.9255 +-26.1026 -38.7015 35.2577 +-26.1499 -37.9388 34.5629 +-27.0123 -38.3588 34.9455 +-27.4641 -38.1831 34.7854 +-28.2955 -38.5242 35.0962 +-28.7007 -38.2756 34.8696 +-29.1022 -38.0246 34.641 +-30.05 -38.4756 35.0519 +-30.4523 -38.2166 34.8159 +-31.0053 -38.1455 34.7511 +-31.8202 -38.3852 34.9695 +-32.3251 -38.2411 34.8382 +-32.6678 -37.9065 34.5334 +-33.7676 -38.4383 35.0179 +-34.3305 -38.3422 34.9304 +-35.7324 -39.1612 35.6764 +-35.6836 -38.3808 34.9655 +-36.4795 -38.5126 35.0855 +-36.8166 -38.1554 34.7601 +-37.9709 -38.6341 35.1962 +-38.9609 -38.9225 35.459 +-39.4189 -38.6696 35.2286 +-40.4826 -39.0004 35.5299 +-40.8799 -38.6795 35.2376 +-41.833 -38.8772 35.4177 +-42.4162 -38.7207 35.2751 +-43.3805 -38.9019 35.4402 +-43.3882 -38.2242 34.8228 +-44.9418 -38.8984 35.4371 +-45.4649 -38.6628 35.2224 +-46.3834 -38.7556 35.307 +-46.8391 -38.4549 35.033 +-47.8318 -38.5873 35.1536 +-48.9675 -38.8179 35.3637 +-50.1122 -39.0368 35.5631 +-50.5017 -38.6589 35.2188 +-52.2177 -39.2807 35.7853 +-52.6795 -38.9424 35.4771 +-53.8504 -39.1191 35.6381 +-54.3102 -38.7703 35.3203 +-55.4186 -38.8764 35.417 +-56.753 -39.1224 35.6411 +-57.8763 -39.2043 35.7157 +-59.0057 -39.2746 35.7798 +-59.6918 -39.0394 35.5655 +-60.7541 -39.0409 35.5668 +-61.897 -39.0796 35.6021 +-62.9689 -39.0589 35.5832 +-64.0448 -39.0274 35.5545 +-65.0471 -38.9384 35.4734 +-66.6782 -39.2075 35.7186 +-67.3749 -38.9125 35.4499 +-69.6564 -39.5114 35.9955 +-69.8007 -38.8825 35.4226 +-72.5883 -39.706 36.1728 +-73.216 -39.3231 35.824 +-75.3057 -39.7078 36.1744 +-75.5258 -39.0933 35.6146 +-77.4679 -39.3583 35.856 +-78.9244 -39.3531 35.8513 +-80.8035 -39.5361 36.018 +-82.6929 -39.6978 36.1653 +-84.4235 -39.7586 36.2207 +-85.5681 -39.5259 36.0087 +-88.2483 -39.9766 36.4193 +-88.8025 -39.4438 35.9339 +-92.1082 -40.1077 36.5387 +-92.9245 -39.6598 36.1307 +-96.0873 -40.1873 36.6112 +-97.4326 -39.9243 36.3716 +-100.449 -40.3171 36.7295 +-101.274 -39.8064 36.2643 +-104.135 -40.0732 36.5073 +-107.01 -40.3061 36.7195 +-109.629 -40.4058 36.8103 +-111.54 -40.2156 36.637 +-115.531 -40.7357 37.1108 +-118.545 -40.8636 37.2274 +-124.21 -41.8446 38.1211 +-126.617 -41.6732 37.9649 +-130.406 -41.916 38.1861 +-133.105 -41.7664 38.0498 +-135.441 -41.4719 37.7816 +-14.4641 -4.31997 3.93556 +-47.3583 -13.7903 12.5632 +-43.3181 -12.2922 11.1984 +-41.1199 -11.365 10.3537 +-35.2385 -9.48124 8.63755 +-15.6478 -4.09622 3.73172 +-15.2228 -3.87479 3.53 +-14.7938 -3.65916 3.33355 +-14.4561 -3.47222 3.16324 +-15.5456 -3.62334 3.30092 +-14.2489 -3.22034 2.93378 +-14.3823 -3.1493 2.86906 +-13.3615 -2.83226 2.58023 +-12.2381 -2.5089 2.28565 +-3164.66 -626.845 571.066 +-12.5859 -2.40615 2.19204 +-11.8376 -2.18181 1.98766 +-13.127 -2.3297 2.12239 +-12.6668 -2.16178 1.96941 +-12.2037 -1.99999 1.82202 +-12.4225 -1.95193 1.77823 +-13.523 -2.03383 1.85285 +-12.5648 -1.80547 1.64481 +-13.9622 -1.91294 1.74272 +-13.5903 -1.77145 1.61382 +-13.4135 -1.65932 1.51166 +-13.6301 -1.59585 1.45385 +-13.7473 -1.51879 1.38364 +-13.0715 -1.35803 1.23718 +-12.7896 -1.24471 1.13395 +-12.5061 -1.13513 1.03412 +-13.0158 -1.09625 0.998701 +-11.7354 -0.911798 0.830662 +-11.4471 -0.814803 0.742298 +-11.1574 -0.721596 0.657385 +-10.9661 -0.637994 0.581222 +-10.9732 -0.567228 0.516753 +-10.9795 -0.496419 0.452245 +-11.5841 -0.448785 0.40885 +-10.9895 -0.354693 0.323131 +-10.9933 -0.283787 0.258534 +-10.3964 -0.201248 0.18334 +-10.3984 -0.134174 0.122235 +-9.89962 -0.0638642 0.0581813 +10.4 0 0 +10.3996 -0.0665355 0.0617226 +10.0985 -0.129227 0.11988 +10.0965 -0.193829 0.179808 +10.9933 -0.281442 0.261084 +10.9895 -0.351763 0.326318 +10.9849 -0.422057 0.391527 +11.5784 -0.519172 0.481618 +12.3698 -0.634138 0.588268 +12.1624 -0.701748 0.650987 +12.1536 -0.779532 0.723144 +13.1392 -0.92752 0.860428 +13.426 -1.03453 0.959701 +14.5061 -1.21169 1.12404 +13.9949 -1.25977 1.16865 +36.1877 -3.49276 3.24011 +39.7097 -4.09145 3.7955 +37.7804 -4.13946 3.84003 +38.8162 -4.50716 4.18113 +37.3802 -4.58592 4.25419 +34.4683 -4.45571 4.1334 +41.69 -5.6647 5.25494 +61.6462 -8.78489 8.14943 +70.2606 -10.4798 9.72174 +79.9147 -12.4532 11.5524 +79.9586 -12.9957 12.0556 +87.0112 -14.7271 13.6618 +93.6392 -16.4812 15.2891 +94.4098 -17.257 16.0087 +94.3944 -17.8971 16.6025 +94.8539 -18.6331 17.2853 +95.6885 -19.4548 18.0475 +94.3959 -19.8439 18.4085 +95.019 -20.6345 19.1419 +94.7698 -21.2416 19.705 +95.3717 -22.0455 20.4508 +95.1057 -22.6548 21.0161 +95.6859 -23.4717 21.7739 +95.3083 -24.0592 22.3189 +95.8666 -24.8883 23.088 +95.4728 -25.4755 23.6327 +95.1659 -26.0854 24.1985 +95.4119 -26.8508 24.9086 +96.1121 -27.7558 25.7481 +95.9635 -28.4246 26.3685 +94.6977 -28.7569 26.6768 +93.8915 -29.2184 27.1049 +93.7235 -29.8764 27.7153 +94.4606 -30.8327 28.6024 +94.272 -31.4967 29.2183 +93.8029 -32.0676 29.748 +93.9591 -32.8559 30.4792 +94.3734 -33.745 31.3041 +93.9681 -34.3475 31.863 +94.5358 -35.3134 32.759 +94.2893 -35.9846 33.3817 +93.769 -36.5521 33.9081 +94.385 -37.5704 34.8527 +91.3103 -37.1065 34.4224 +90.604 -37.5809 34.8625 +88.4212 -37.426 34.7188 +86.5076 -37.3578 34.6555 +84.5167 -37.2301 34.5371 +83.7293 -37.6162 34.8952 +81.4126 -37.2957 34.5979 +80.9656 -37.8152 35.0798 +78.5834 -37.4133 34.707 +78.1351 -37.9146 35.1721 +76.5202 -37.8391 35.102 +75.5724 -38.0781 35.3238 +73.4779 -37.7191 34.9907 +72.2935 -37.8046 35.07 +69.3328 -36.9298 34.2585 +69.6944 -37.8081 35.0732 +68.0437 -37.5907 34.8716 +67.8317 -38.1585 35.3983 +65.4049 -37.4626 34.7527 +65.0347 -37.9253 35.182 +63.8814 -37.9246 35.1813 +62.0386 -37.4925 34.7805 +60.9771 -37.511 34.7976 +60.5283 -37.8997 35.1582 +58.6409 -37.3716 34.6683 +58.1939 -37.7454 35.0151 +56.9249 -37.5766 34.8585 +55.8119 -37.4936 34.7815 +54.6321 -37.3493 34.6476 +53.5326 -37.2432 34.5492 +53.0873 -37.5842 34.8656 +52.0673 -37.5114 34.798 +50.9824 -37.3765 34.6728 +49.7646 -37.126 34.4405 +48.8345 -37.0738 34.3921 +48.3913 -37.3848 34.6806 +47.1261 -37.0496 34.3696 +46.8184 -37.4578 34.7483 +45.3671 -36.9386 34.2667 +44.9256 -37.2275 34.5346 +43.956 -37.0708 34.3893 +43.7079 -37.5179 34.804 +43.131 -37.6838 34.9579 +42.2992 -37.6188 34.8977 +41.0317 -37.1474 34.4603 +40.6502 -37.4658 34.7557 +39.6486 -37.2045 34.5134 +39.2042 -37.4568 34.7474 +38.0949 -37.0621 34.3812 +37.5333 -37.1866 34.4967 +36.5602 -36.8915 34.223 +36.0617 -37.0643 34.3832 +35.447 -37.1134 34.4288 +35.0605 -37.3992 34.6939 +34.0548 -37.0143 34.3369 +33.613 -37.2307 34.5376 +33.0596 -37.3214 34.6218 +32.6141 -37.5315 34.8167 +31.6362 -37.117 34.4321 +31.1932 -37.318 34.6186 +30.7478 -37.5161 34.8024 +29.7925 -37.0797 34.3975 +29.35 -37.2689 34.5731 +28.9053 -37.4553 34.7459 +28.0705 -37.1258 34.4403 +27.6752 -37.3684 34.6654 +26.9477 -37.1556 34.468 +26.412 -37.1966 34.5059 +25.6051 -36.8416 34.1766 +25.5225 -37.5288 34.8142 +24.6803 -37.0977 34.4142 +24.3239 -37.3865 34.6821 +23.7934 -37.4078 34.7019 +23.3887 -37.6253 34.9037 +22.6552 -37.3047 34.6063 +22.0907 -37.2465 34.5523 +21.7247 -37.5214 34.8073 +20.9711 -37.1171 34.4322 +20.5659 -37.3178 34.6184 +20.1209 -37.4479 34.7391 +19.3877 -37.0277 34.3493 +18.9112 -37.0817 34.3994 +18.4691 -37.2012 34.5103 +18.0256 -37.318 34.6186 +17.6132 -37.5012 34.7886 +17.1662 -37.6125 34.8918 +16.4397 -37.0933 34.4102 +15.9073 -36.9873 34.3118 +15.5542 -37.298 34.6001 +15.0812 -37.3258 34.6258 +14.4158 -36.8571 34.1911 +13.9498 -36.8773 34.2098 +13.3292 -36.4694 33.8314 +13.1199 -37.1921 34.5018 +12.6767 -37.2746 34.5784 +12.0224 -36.7128 34.0571 +11.585 -36.7883 34.1272 +11.2549 -37.2188 34.5266 +10.749 -37.0743 34.3925 +10.4469 -37.6446 34.9215 +9.82666 -37.0622 34.3813 +9.40335 -37.1958 34.5053 +8.94288 -37.1823 34.4927 +8.49995 -37.2381 34.5445 +7.94687 -36.7842 34.1235 +7.50872 -36.8337 34.1693 +7.06999 -36.8803 34.2125 +6.63073 -36.9241 34.2532 +6.19096 -36.9651 34.2912 +5.7394 -36.9305 34.2591 +5.31005 -37.0387 34.3595 +4.86896 -37.0713 34.3897 +4.4188 -37.028 34.3496 +3.97003 -36.9817 34.3067 +3.52968 -37.0057 34.3289 +3.09516 -37.1001 34.4164 +2.60633 -36.4596 33.8223 +2.2115 -37.134 34.4479 +1.73799 -36.4874 33.8481 +1.30623 -36.5704 33.9251 +0.870875 -36.5774 33.9315 +0.436327 -36.6548 34.0034 +3.04927e-15 -36.5096 33.8687 +-0.435454 -36.5815 33.9354 +-0.883092 -37.0905 34.4075 +-1.32455 -37.0834 34.401 +-1.76591 -37.0735 34.3918 +-2.2115 -37.134 34.4479 +-2.60633 -36.4596 33.8223 +-3.15621 -37.8319 35.0953 +-3.52968 -37.0057 34.3289 +-4.04064 -37.6395 34.9169 +-4.47981 -37.5392 34.8238 +-4.92647 -37.5092 34.7959 +-5.36231 -37.4033 34.6977 +-5.82997 -37.5133 34.7997 +-6.16659 -36.8196 34.1562 +-6.7221 -37.4329 34.7252 +-7.02824 -36.6625 34.0105 +-7.61218 -37.3412 34.6401 +-7.8843 -36.4946 33.8547 +-8.41743 -36.8766 34.2091 +-8.85606 -36.8213 34.1579 +-9.42158 -37.2679 34.5721 +-9.65494 -36.4145 33.7805 +-10.108 -36.4233 33.7886 +-10.5411 -36.3572 33.7273 +-11.1683 -36.9326 34.261 +-11.6075 -36.8597 34.1934 +-12.0224 -36.7128 34.0571 +-12.459 -36.6344 33.9844 +-13.0949 -37.1211 34.436 +-13.5362 -37.0359 34.3569 +-14.0033 -37.0185 34.3408 +-14.4434 -36.9276 34.2564 +-14.9108 -36.904 34.2346 +-15.5834 -37.3681 34.6651 +-16.0878 -37.4069 34.7011 +-16.5633 -37.3722 34.6689 +-17.0075 -37.2648 34.5693 +-17.5156 -37.2933 34.5956 +-18.2259 -37.7326 35.0032 +-18.4691 -37.2012 34.5103 +-19.1213 -37.4937 34.7816 +-19.6027 -37.4383 34.7302 +-20.0476 -37.3115 34.6126 +-20.7532 -37.6577 34.9337 +-21.5451 -38.133 35.3747 +-21.6465 -37.3864 34.6821 +-22.4496 -37.8516 35.1136 +-22.9806 -37.8405 35.1033 +-23.4716 -37.7587 35.0274 +-24.0047 -37.74 35.0101 +-24.7974 -38.1144 35.3573 +-24.8995 -37.4271 34.7198 +-25.701 -37.7913 35.0576 +-26.1953 -37.6908 34.9644 +-26.6429 -37.5217 34.8076 +-27.0416 -37.2851 34.5881 +-27.8184 -37.5616 34.8446 +-28.3614 -37.5105 34.7972 +-29.1515 -37.7743 35.0419 +-29.6 -37.5864 34.8675 +-30.4523 -37.9009 35.1593 +-30.9023 -37.7046 34.9772 +-31.4022 -37.568 34.8505 +-31.9011 -37.4279 34.7205 +-32.3454 -37.2224 34.5299 +-33.1685 -37.4443 34.7358 +-34.0545 -37.7199 34.9914 +-34.7818 -37.8044 35.0698 +-35.5137 -37.8825 35.1423 +-36.078 -37.774 35.0416 +-36.8746 -37.8998 35.1584 +-37.3244 -37.6625 34.9382 +-38.4256 -38.0706 35.3167 +-38.8773 -37.8233 35.0874 +-39.9347 -38.1547 35.3948 +-40.3874 -37.8978 35.1564 +-41.335 -38.097 35.3412 +-41.8498 -37.888 35.1474 +-42.8081 -38.0714 35.3175 +-43.2596 -37.7961 35.0621 +-44.2924 -38.0196 35.2695 +-44.8088 -37.7902 35.0566 +-45.9196 -38.0511 35.2987 +-46.9061 -38.1918 35.4292 +-47.3589 -37.8902 35.1494 +-48.2855 -37.9611 35.2151 +-48.8043 -37.7039 34.9766 +-49.807 -37.8122 35.077 +-51.0262 -38.0672 35.3136 +-52.1138 -38.2059 35.4423 +-53.1372 -38.2821 35.513 +-54.3821 -38.5009 35.716 +-54.7658 -38.1011 35.345 +-55.9486 -38.2492 35.4825 +-57.2864 -38.4842 35.7005 +-58.2626 -38.4596 35.6776 +-59.4671 -38.5712 35.7811 +-60.6032 -38.6221 35.8284 +-61.2127 -38.3282 35.5557 +-61.8198 -38.0294 35.2785 +-63.5819 -38.4251 35.6456 +-64.7363 -38.4322 35.6522 +-65.7391 -38.336 35.5629 +-66.9021 -38.3202 35.5483 +-68.2284 -38.3816 35.6053 +-69.4014 -38.3407 35.5674 +-70.5786 -38.2877 35.5182 +-71.8407 -38.2657 35.4977 +-73.9217 -38.6561 35.8599 +-75.5258 -38.7704 35.9659 +-77.2206 -38.9086 36.0942 +-78.427 -38.782 35.9767 +-79.6361 -38.643 35.8478 +-81.2672 -38.691 35.8923 +-82.9054 -38.7212 35.9203 +-84.8896 -38.8885 36.0755 +-86.7988 -38.9952 36.1745 +-88.0311 -38.7782 35.9732 +-90.9019 -39.2554 36.4158 +-92.5781 -39.1855 36.351 +-94.1725 -39.061 36.2356 +-96.9079 -39.3812 36.5326 +-98.6912 -39.2844 36.4428 +-100.921 -39.3399 36.4943 +-102.538 -39.1328 36.3021 +-105.406 -39.374 36.5259 +-108.287 -39.5813 36.7182 +-110.102 -39.3692 36.5214 +-114.448 -40.0204 37.1255 +-115.736 -39.5656 36.7036 +-122.117 -40.7997 37.8485 +-124.973 -40.7922 37.8415 +-128.755 -41.0436 38.0747 +-132 -41.0776 38.1062 +-13.9506 -4.23638 3.92994 +-15.1131 -4.47653 4.15272 +-44.2879 -12.7897 11.8646 +-40.8908 -11.5075 10.6751 +-38.2162 -10.4753 9.71753 +-16.2567 -4.33786 4.02408 +-15.4593 -4.01344 3.72313 +-14.6555 -3.69957 3.43197 +-14.5094 -3.55914 3.30169 +-14.4561 -3.44353 3.19444 +-15.8317 -3.65955 3.39484 +-14.5358 -3.25804 3.02237 +-14.4782 -3.1441 2.91667 +-13.2654 -2.78866 2.58694 +-13.1054 -2.6645 2.47176 +-11.9775 -2.35286 2.18267 +-13.4573 -2.55148 2.36692 +-13.4871 -2.46529 2.28696 +-12.5436 -2.20777 2.04807 +-12.8617 -2.1769 2.01944 +-13.2776 -2.15801 2.00191 +-13.4984 -2.10347 1.95131 +-12.739 -1.9001 1.76265 +-13.5465 -1.93043 1.7908 +-12.8806 -1.75018 1.62358 +-13.6888 -1.76955 1.64155 +-12.8217 -1.57301 1.45922 +-13.0375 -1.51385 1.40435 +-12.1649 -1.33286 1.23645 +-13.0715 -1.34681 1.24939 +-13.0871 -1.26314 1.17177 +-12.4068 -1.11682 1.03604 +-11.4261 -0.954411 0.885374 +-11.437 -0.881275 0.817528 +-11.3475 -0.801041 0.743098 +-11.5559 -0.741196 0.687582 +-10.7667 -0.621219 0.576283 +-10.9732 -0.562542 0.521851 +-11.5784 -0.519172 0.481618 +-10.9849 -0.422057 0.391527 +-11.2892 -0.361356 0.335218 +-10.7934 -0.276326 0.256338 +-10.3964 -0.199586 0.185149 +-10.0985 -0.129227 0.11988 +-10.7996 -0.0690945 0.0640966 +10.1 0 0 +10.0996 -0.0640727 0.0605227 +10.0985 -0.12814 0.121041 +10.3964 -0.197907 0.186942 +10.3937 -0.263853 0.249235 +10.0904 -0.320266 0.302522 +10.9849 -0.418507 0.39532 +11.2789 -0.501491 0.473706 +11.2725 -0.573023 0.541275 +11.5642 -0.661624 0.624967 +13.0502 -0.829997 0.784012 +13.1392 -0.919719 0.868762 +13.1277 -1.00304 0.94747 +13.91 -1.15211 1.08828 +13.3994 -1.19602 1.12976 +33.9074 -3.24514 3.06535 +39.6107 -4.04692 3.8227 +39.2639 -4.26581 4.02947 +37.9272 -4.3669 4.12495 +35.8022 -4.35537 4.11407 +33.385 -4.27936 4.04227 +38.5436 -5.19312 4.9054 +58.505 -8.26712 7.80908 +64.871 -9.59454 9.06296 +68.0791 -10.5196 9.93676 +75.6629 -12.1941 11.5185 +85.5497 -14.3579 13.5624 +92.6669 -16.1729 15.2768 +94.4098 -17.1119 16.1638 +95.0721 -17.8739 16.8836 +94.8539 -18.4764 17.4527 +94.8212 -19.1163 18.0572 +94.5882 -19.7171 18.6247 +94.9232 -20.4402 19.3078 +94.7698 -21.0629 19.8959 +95.2763 -21.8382 20.6283 +95.1057 -22.4642 21.2196 +95.591 -23.2513 21.963 +95.3083 -23.8568 22.535 +95.8666 -24.6789 23.3116 +95.4728 -25.2612 23.8616 +95.8216 -26.0442 24.6012 +95.4119 -26.625 25.1499 +95.833 -27.4424 25.922 +95.2218 -27.9676 26.4181 +94.4205 -28.4315 26.8563 +94.0756 -29.0294 27.4211 +93.8152 -29.6541 28.0111 +94.3692 -30.5438 28.8515 +94.181 -31.2016 29.4729 +94.5279 -32.0437 30.2683 +94.2299 -32.6734 30.8632 +94.643 -33.5568 31.6976 +93.9681 -34.0586 32.1716 +93.9121 -34.7854 32.8581 +93.8457 -35.5141 33.5465 +93.2393 -36.0398 34.0431 +93.6819 -36.9768 34.9281 +91.3103 -36.7943 34.7558 +88.8633 -36.5488 34.5239 +87.6418 -36.7841 34.7461 +85.7321 -36.7115 34.6775 +84.8596 -37.0667 35.0131 +83.644 -37.2618 35.1973 +81.4126 -36.982 34.933 +80.5439 -37.3018 35.2351 +78.835 -37.2174 35.1554 +77.2178 -37.1544 35.0959 +76.0227 -37.277 35.2117 +74.8307 -37.3872 35.3158 +72.2492 -36.7764 34.7388 +71.805 -37.2334 35.1705 +69.8991 -36.9183 34.8729 +68.9709 -37.1009 35.0453 +67.8042 -37.1433 35.0854 +66.721 -37.2179 35.1559 +65.5625 -37.237 35.1739 +64.4087 -37.2443 35.1808 +63.182 -37.1939 35.1332 +62.1158 -37.2234 35.1611 +60.9771 -37.1955 35.1347 +59.7679 -37.1087 35.0528 +58.7164 -37.105 35.0492 +57.37 -36.898 34.8537 +56.9249 -37.2605 35.1961 +55.8119 -37.1782 35.1184 +54.6321 -37.0351 34.9832 +53.6052 -36.9799 34.9311 +52.4399 -36.8136 34.774 +52.0673 -37.1958 35.135 +50.2753 -36.548 34.5231 +49.8346 -36.8656 34.8231 +48.8345 -36.762 34.7252 +47.8406 -36.6485 34.618 +47.1261 -36.7379 34.7025 +46.3455 -36.7675 34.7304 +45.3671 -36.6279 34.5986 +44.8594 -36.8599 34.8177 +44.0216 -36.8139 34.7742 +43.513 -37.0365 34.9845 +42.6811 -36.977 34.9283 +41.8539 -36.9098 34.8648 +40.5282 -36.383 34.3672 +40.0899 -36.6387 34.6088 +38.9098 -36.2042 34.1983 +38.4737 -36.4496 34.4301 +38.0347 -36.6923 34.6594 +36.879 -36.2309 34.2236 +36.5602 -36.5812 34.5544 +36.0036 -36.6934 34.6604 +35.0455 -36.3844 34.3686 +34.5508 -36.5454 34.5207 +34.0548 -36.703 34.6695 +33.5578 -36.857 34.815 +32.5694 -36.4588 34.4388 +32.1305 -36.664 34.6326 +32.0601 -37.298 35.2315 +31.1932 -37.0041 34.9539 +30.2842 -36.6397 34.6097 +29.8433 -36.8305 34.7899 +29.35 -36.9554 34.9079 +28.5606 -36.6973 34.6641 +28.022 -36.7499 34.7138 +27.2458 -36.4791 34.458 +26.4312 -36.137 34.1349 +26.4582 -36.9482 34.9011 +25.5597 -36.4669 34.4465 +25.1656 -36.6927 34.6598 +24.6365 -36.7203 34.6858 +24.2378 -36.9408 34.8941 +23.4976 -36.6319 34.6024 +22.974 -36.6473 34.6169 +22.5739 -36.8581 34.816 +21.8116 -36.4666 34.4461 +21.4121 -36.6705 34.6388 +20.9328 -36.7377 34.7023 +20.5284 -36.9365 34.8901 +20.0476 -36.9977 34.9478 +19.3519 -36.6484 34.6179 +18.9112 -36.7698 34.7326 +18.4349 -36.82 34.78 +17.6918 -36.3188 34.3066 +17.3202 -36.5672 34.5412 +17.071 -37.0893 35.0344 +16.6251 -37.1961 35.1353 +15.9073 -36.6762 34.6442 +15.5249 -36.9148 34.8696 +14.7972 -36.3148 34.3028 +14.4158 -36.5471 34.5222 +13.9766 -36.6372 34.6073 +13.5362 -36.7244 34.6897 +12.8946 -36.2459 34.2377 +12.459 -36.3263 34.3136 +12.0458 -36.4746 34.4538 +11.5625 -36.408 34.3908 +11.2549 -36.9058 34.861 +10.7698 -36.8335 34.7928 +10.2475 -36.6155 34.5868 +9.80758 -36.6791 34.6469 +9.36691 -36.74 34.7044 +8.94288 -36.8696 34.8268 +8.51646 -36.9966 34.9468 +7.93123 -36.403 34.3861 +7.37569 -35.8768 33.889 +6.95866 -35.9942 33.9999 +6.63073 -36.6135 34.585 +6.20315 -36.7264 34.6916 +5.7394 -36.6199 34.591 +5.21597 -36.0765 34.0777 +4.85938 -36.6871 34.6545 +4.34036 -36.0648 34.0666 +3.89942 -36.0185 34.0229 +3.5227 -36.622 34.593 +3.03411 -36.0624 34.0644 +2.65343 -36.8063 34.767 +2.17661 -36.2407 34.2328 +1.76591 -36.7617 34.7249 +1.28267 -35.6087 33.6359 +0.86913 -36.197 34.1915 +0.429346 -35.765 33.7834 +3.05539e-15 -36.2752 34.2654 +-0.435454 -36.2738 34.2641 +-0.86913 -36.197 34.1915 +-1.32455 -36.7715 34.7342 +-1.76591 -36.7617 34.7249 +-2.20714 -36.7491 34.713 +-2.6482 -36.7337 34.6985 +-3.08906 -36.7155 34.6813 +-3.52968 -36.6945 34.6614 +-3.96218 -36.5982 34.5705 +-4.47981 -37.2235 35.1611 +-4.91689 -37.1213 35.0646 +-5.36231 -37.0887 35.0338 +-5.81865 -37.1255 35.0686 +-6.1544 -36.4378 34.419 +-6.60463 -36.4694 34.4488 +-7.02824 -36.3541 34.3399 +-7.5974 -36.9552 34.9077 +-7.89994 -36.2594 34.2505 +-8.3184 -36.1362 34.1341 +-8.85606 -36.5116 34.4887 +-9.16645 -35.9537 33.9617 +-9.65494 -36.1082 34.1077 +-10.0681 -35.9744 33.9813 +-10.5411 -36.0514 34.054 +-10.9518 -35.9122 33.9225 +-11.405 -35.9122 33.9225 +-12.0458 -36.4746 34.4538 +-12.459 -36.3263 34.3136 +-12.8946 -36.2459 34.2377 +-13.5362 -36.7244 34.6897 +-14.0033 -36.7072 34.6734 +-14.4434 -36.617 34.5882 +-14.9108 -36.5936 34.5662 +-15.5834 -37.0538 35.0008 +-15.8171 -36.4682 34.4477 +-16.5633 -37.0579 35.0047 +-16.7854 -36.4688 34.4483 +-17.5156 -36.9796 34.9307 +-17.9588 -36.867 34.8244 +-18.4691 -36.8883 34.8446 +-18.9112 -36.7698 34.7326 +-19.5669 -37.0556 35.0026 +-19.9743 -36.8625 34.8201 +-20.7907 -37.4083 35.3357 +-21.2007 -37.2078 35.1464 +-21.6856 -37.1388 35.0812 +-22.4496 -37.5332 35.4537 +-22.6959 -37.0573 35.0041 +-23.4716 -37.4411 35.3667 +-24.0047 -37.4226 35.3492 +-24.41 -37.2033 35.142 +-24.9433 -37.1777 35.1179 +-25.701 -37.4734 35.3972 +-26.1045 -37.2442 35.1807 +-26.5967 -37.1416 35.0838 +-26.9946 -36.9073 34.8625 +-27.8184 -37.2457 35.1821 +-28.2644 -37.0678 35.0141 +-29.2007 -37.5198 35.4411 +-29.55 -37.2073 35.1458 +-29.9448 -36.9557 34.9082 +-30.4388 -36.8267 34.7863 +-31.4022 -37.252 35.1881 +-31.9541 -37.1747 35.115 +-32.3454 -36.9093 34.8643 +-33.2774 -37.2514 35.1875 +-33.613 -36.9176 34.8722 +-34.7818 -37.4864 35.4095 +-35.3437 -37.3842 35.3129 +-35.9059 -37.2776 35.2123 +-36.352 -37.0484 34.9958 +-37.3831 -37.4045 35.3322 +-37.7712 -37.1075 35.0516 +-38.8171 -37.4471 35.3723 +-39.8739 -37.7761 35.6831 +-40.3874 -37.579 35.497 +-41.335 -37.7765 35.6835 +-41.2834 -37.0609 35.0076 +-42.2992 -37.3024 35.2357 +-43.3239 -37.5339 35.4543 +-43.7728 -37.2576 35.1934 +-44.94 -37.582 35.4998 +-45.8533 -37.6766 35.5891 +-46.8391 -37.8164 35.7212 +-47.2913 -37.5179 35.4392 +-48.2855 -37.6418 35.5562 +-48.7355 -37.334 35.2656 +-49.807 -37.4941 35.4168 +-50.3253 -37.2286 35.1659 +-52.0431 -37.8332 35.737 +-52.5666 -37.5525 35.4719 +-53.5908 -37.6215 35.5371 +-54.8383 -37.8306 35.7346 +-55.8754 -37.8779 35.7793 +-57.2127 -38.1114 35.9998 +-57.668 -37.7469 35.6556 +-59.4671 -38.2467 36.1277 +-59.9239 -37.8681 35.77 +-61.2127 -38.0058 35.9001 +-61.7432 -37.6628 35.5761 +-63.1189 -37.8245 35.7289 +-64.0368 -37.6971 35.6086 +-65.7391 -38.0135 35.9074 +-66.6657 -37.8636 35.7658 +-67.5144 -37.6605 35.574 +-69.082 -37.8433 35.7466 +-70.9806 -38.182 36.0665 +-72.1643 -38.1147 36.003 +-73.6775 -38.2043 36.0876 +-74.7886 -38.069 35.9598 +-76.7261 -38.3343 36.2104 +-78.427 -38.4558 36.3252 +-79.6361 -38.318 36.195 +-81.0156 -38.2468 36.1278 +-83.1584 -38.5126 36.3788 +-83.3631 -37.8681 35.77 +-86.543 -38.5532 36.4172 +-87.7739 -38.3397 36.2155 +-90.1264 -38.5931 36.4549 +-91.8853 -38.5651 36.4285 +-94.6077 -38.9115 36.7556 +-96.9079 -39.0499 36.8864 +-98.6912 -38.954 36.7958 +-100.391 -38.8042 36.6543 +-102.805 -38.9044 36.7489 +-104.871 -38.8448 36.6926 +-107.482 -38.9565 36.7982 +-110.462 -39.1655 36.9955 +-113.274 -39.2769 37.1008 +-115.736 -39.2328 37.0591 +-121.025 -40.0948 37.8734 +-124.699 -40.3604 38.1243 +-128.48 -40.6113 38.3613 +-131.172 -40.4765 38.2339 +-14.4125 -4.33984 4.09939 +-15.3913 -4.52057 4.27011 +-43.1714 -12.3624 11.6775 +-39.6772 -11.072 10.4586 +-36.6239 -9.95431 9.4028 +-15.411 -4.0776 3.85169 +-15.1765 -3.90688 3.69043 +-15.5065 -3.88146 3.66641 +-14.5094 -3.52921 3.33367 +-14.4561 -3.41457 3.22538 +-13.5428 -3.10413 2.93214 +-14.5358 -3.23064 3.05165 +-14.0947 -3.03507 2.86692 +-13.8422 -2.88543 2.72556 +-12.7199 -2.56438 2.4223 +-3164.66 -616.438 582.285 +-12.6827 -2.38441 2.2523 +-11.9346 -2.16317 2.04332 +-13.2242 -2.30799 2.18012 +-13.4463 -2.25671 2.13168 +-12.1061 -1.95105 1.84295 +-12.6181 -1.94975 1.84172 +-13.327 -1.97107 1.86187 +-12.663 -1.78936 1.69023 +-12.8806 -1.73546 1.63931 +-13.6888 -1.75467 1.65745 +-13.6107 -1.65576 1.56403 +-14.2227 -1.63759 1.54686 +-12.9561 -1.40761 1.32962 +-13.9628 -1.42654 1.3475 +-12.9879 -1.24302 1.17415 +-12.8038 -1.14286 1.07954 +-12.7177 -1.05336 0.995002 +-12.0337 -0.91945 0.868508 +-10.7503 -0.752496 0.710805 +-10.9581 -0.696944 0.658331 +-11.2652 -0.644513 0.608804 +-10.9732 -0.55781 0.526905 +-11.5784 -0.514805 0.486283 +-10.3857 -0.395679 0.373757 +-10.9895 -0.348804 0.329479 +-10.7934 -0.274001 0.258821 +-9.49674 -0.180781 0.170765 +-9.89849 -0.125603 0.118644 +-9.89962 -0.0628039 0.0593243 +10.5 0 0 +10.7996 -0.0679266 0.065333 +10.1984 -0.128301 0.123402 +10.0965 -0.190552 0.183277 +10.1938 -0.256563 0.246767 +10.9895 -0.345817 0.332613 +11.3844 -0.430011 0.413592 +11.8778 -0.523596 0.503604 +11.3722 -0.573144 0.55126 +12.1624 -0.689886 0.663544 +12.2532 -0.77264 0.743138 +12.4425 -0.863488 0.830518 +14.2217 -1.07732 1.03619 +13.91 -1.14225 1.09863 +14.5904 -1.29118 1.24188 +34.998 -3.32083 3.19403 +39.8088 -4.03233 3.87836 +39.2639 -4.22928 4.0678 +38.9149 -4.44225 4.27263 +35.0131 -4.22291 4.06167 +34.4683 -4.38039 4.21313 +40.3135 -5.38507 5.17945 +59.6829 -8.36136 8.0421 +61.9312 -9.0813 8.73455 +73.2633 -11.2237 10.7951 +74.589 -11.918 11.463 +89.0574 -14.8186 14.2528 +93.6392 -16.2026 15.584 +93.8276 -16.8607 16.2169 +95.0721 -17.7209 17.0442 +94.9505 -18.3368 17.6367 +94.8212 -18.9526 18.2289 +95.3572 -19.7071 18.9547 +94.9232 -20.2652 19.4914 +94.8654 -20.9036 20.1055 +95.3717 -21.6729 20.8453 +95.2008 -22.2941 21.4429 +95.6859 -23.075 22.1939 +95.4028 -23.6759 22.7719 +95.8666 -24.4676 23.5333 +96.4125 -25.2914 24.3258 +95.8216 -25.8211 24.8352 +96.5322 -26.7069 25.6872 +96.1121 -27.2866 26.2448 +95.9635 -27.9441 26.8771 +94.6977 -28.2708 27.1914 +93.9835 -28.7526 27.6548 +93.8152 -29.4001 28.2776 +94.6433 -30.3702 29.2105 +94.272 -30.9643 29.782 +94.5279 -31.7692 30.5562 +93.9591 -32.3005 31.0672 +94.5531 -33.2377 31.9686 +93.9681 -33.7669 32.4776 +94.5358 -34.7165 33.391 +93.757 -35.1767 33.8335 +93.8573 -35.968 34.5947 +93.6819 -36.6601 35.2604 +92.1849 -36.8286 35.4224 +89.5596 -36.5198 35.1254 +87.4686 -36.397 35.0073 +86.4214 -36.6897 35.2888 +84.9453 -36.7864 35.3818 +83.3029 -36.792 35.3872 +81.8366 -36.8562 35.449 +80.7969 -37.0985 35.682 +78.9189 -36.9379 35.5275 +77.3846 -36.9158 35.5062 +76.3544 -37.119 35.7017 +73.9241 -36.618 35.2198 +73.3141 -36.9989 35.5862 +71.5608 -36.7889 35.3842 +69.8182 -36.5598 35.1639 +69.0513 -36.8261 35.4199 +68.1236 -36.9987 35.586 +66.6417 -36.8554 35.4481 +65.4837 -36.8738 35.4658 +64.4087 -36.9253 35.5154 +63.9591 -37.329 35.9037 +62.0386 -36.8588 35.4514 +61.7432 -37.3402 35.9145 +59.7679 -36.791 35.3862 +58.7164 -36.7872 35.3826 +58.2688 -37.1551 35.7364 +56.9992 -36.9897 35.5773 +55.7382 -36.8111 35.4056 +54.7053 -36.7671 35.3632 +53.6052 -36.6632 35.2633 +52.5118 -36.5484 35.1529 +52.1386 -36.9278 35.5178 +50.9824 -36.7447 35.3417 +49.8346 -36.5499 35.1543 +49.5986 -37.0175 35.6041 +48.3913 -36.7529 35.3496 +47.2625 -36.5287 35.134 +46.8184 -36.8246 35.4185 +46.0362 -36.8499 35.4429 +44.9919 -36.6522 35.2527 +44.6776 -37.0426 35.6282 +43.578 -36.7741 35.37 +43.2596 -37.1572 35.7385 +41.8539 -36.5937 35.1964 +41.0946 -36.5755 35.1789 +40.1522 -36.3813 34.9922 +39.7717 -36.6893 35.2884 +38.4737 -36.1375 34.7576 +38.2153 -36.5508 35.1552 +36.998 -36.0366 34.6606 +36.619 -36.3262 34.9392 +36.0036 -36.3791 34.9901 +35.5044 -36.5451 35.1497 +35.0039 -36.7076 35.306 +34.1108 -36.4484 35.0567 +33.5578 -36.5414 35.1461 +33.1141 -36.751 35.3478 +32.1305 -36.35 34.9621 +31.7422 -36.6118 35.2139 +31.1409 -36.6258 35.2273 +30.3357 -36.3878 34.9984 +29.7925 -36.4529 35.0611 +29.4 -36.7014 35.3 +28.5113 -36.3203 34.9335 +28.119 -36.5613 35.1652 +27.6752 -36.7368 35.334 +26.9946 -36.5912 35.1941 +26.5044 -36.6957 35.2945 +26.0591 -36.861 35.4536 +25.6118 -37.0235 35.6098 +25.0748 -37.0536 35.6388 +24.2808 -36.6895 35.2886 +23.8357 -36.8408 35.4341 +23.3472 -36.9237 35.5139 +22.6959 -36.7399 35.3371 +21.6919 -35.956 34.5831 +21.7637 -36.9535 35.5425 +20.9328 -36.4231 35.0324 +20.5659 -36.687 35.2862 +19.7911 -36.2114 34.8288 +19.4235 -36.4691 35.0767 +18.9112 -36.4549 35.0629 +18.5033 -36.6402 35.2412 +17.9922 -36.6193 35.2211 +17.6132 -36.8673 35.4597 +17.1345 -36.9084 35.4991 +16.4706 -36.5349 35.1399 +15.9073 -36.3621 34.9737 +15.5542 -36.6676 35.2675 +14.8256 -36.073 34.6956 +14.471 -36.3726 34.9838 +13.9498 -36.2539 34.8697 +13.588 -36.5491 35.1536 +13.1199 -36.5634 35.1673 +12.4832 -36.0851 34.7073 +12.0458 -36.1623 34.7815 +11.6075 -36.2366 34.853 +11.0168 -35.8157 34.4482 +10.7698 -36.5181 35.1237 +10.2475 -36.3019 34.9158 +9.84574 -36.5065 35.1126 +9.40335 -36.5671 35.1709 +8.97761 -36.6958 35.2947 +8.35141 -35.969 34.5956 +7.94687 -36.1625 34.7817 +7.50872 -36.211 34.8284 +7.09783 -36.3997 35.0098 +6.64378 -36.3714 34.9827 +6.20315 -36.4118 35.0215 +5.7394 -36.3063 34.92 +5.31005 -36.4126 35.0223 +4.85938 -36.3729 34.9841 +4.43623 -36.5457 35.1503 +3.97788 -36.4285 35.0376 +3.53665 -36.4521 35.0603 +3.08906 -36.401 35.0111 +2.65867 -36.5631 35.167 +2.17225 -35.8583 34.4892 +1.7694 -36.5189 35.1245 +1.30361 -35.8802 34.5102 +0.874366 -36.1032 34.7247 +0.428473 -35.3866 34.0354 +3.07376e-15 -36.1808 34.7993 +-0.435454 -35.9632 34.59 +-0.886582 -36.6077 35.2099 +-1.32717 -36.5286 35.1338 +-1.77289 -36.5909 35.1938 +-2.20714 -36.4343 35.0432 +-2.65867 -36.5631 35.167 +-3.09516 -36.473 35.0803 +-3.53665 -36.4521 35.0603 +-3.96218 -36.2848 34.8993 +-4.48852 -36.9765 35.5646 +-4.91689 -36.8033 35.3981 +-5.37276 -36.8427 35.4359 +-5.81865 -36.8075 35.4021 +-6.28846 -36.9126 35.5032 +-6.59157 -36.0856 34.7078 +-7.18133 -36.8279 35.4217 +-7.61218 -36.71 35.3083 +-8.07202 -36.7319 35.3294 +-8.41743 -36.2533 34.869 +-8.94288 -36.5538 35.1581 +-9.09355 -35.3623 34.0121 +-9.6931 -35.9406 34.5683 +-10.088 -35.737 34.3724 +-10.7698 -36.5181 35.1237 +-11.1683 -36.3083 34.9219 +-11.6525 -36.3771 34.9881 +-12.0224 -36.0922 34.7141 +-12.4832 -36.0851 34.7073 +-13.1199 -36.5634 35.1673 +-13.588 -36.5491 35.1536 +-14.0033 -36.3928 35.0032 +-14.719 -36.9962 35.5836 +-14.9108 -36.2802 34.895 +-15.3788 -36.254 34.8697 +-15.7871 -36.0872 34.7093 +-16.5942 -36.809 35.4036 +-17.071 -36.7716 35.3676 +-17.5807 -36.7992 35.3941 +-17.9588 -36.5513 35.1557 +-18.5033 -36.6402 35.2412 +-19.1563 -36.9275 35.5175 +-19.5669 -36.7383 35.3355 +-20.3042 -37.1502 35.7317 +-20.491 -36.5534 35.1577 +-21.2007 -36.8892 35.4807 +-22.0372 -37.4179 35.9892 +-22.4496 -37.2118 35.7909 +-23.0213 -37.2667 35.8438 +-23.4716 -37.1205 35.7031 +-24.047 -37.1674 35.7482 +-24.41 -36.8846 35.4763 +-25.294 -37.3775 35.9503 +-25.2994 -36.572 35.1756 +-26.1499 -36.9894 35.5771 +-26.6429 -36.8875 35.479 +-27.0885 -36.7185 35.3165 +-27.8661 -36.9901 35.5777 +-28.3129 -36.8134 35.4078 +-29.1515 -37.1358 35.7179 +-29.6 -36.951 35.5401 +-29.9448 -36.6392 35.2403 +-31.0053 -37.1909 35.7708 +-31.4022 -36.933 35.5228 +-32.3781 -37.3453 35.9193 +-32.7753 -37.0795 35.6637 +-33.3319 -36.9928 35.5803 +-34.0545 -37.0823 35.6664 +-34.8936 -37.2849 35.8612 +-35.3437 -37.064 35.6488 +-36.1353 -37.1946 35.7744 +-36.2939 -36.6725 35.2722 +-37.3244 -37.0259 35.6122 +-38.3661 -37.3691 35.9423 +-38.9374 -37.2415 35.8195 +-39.326 -36.938 35.5276 +-40.3874 -37.2572 35.8346 +-41.3972 -37.5094 36.0772 +-42.4162 -37.7517 36.3102 +-42.8081 -37.4279 35.9988 +-43.4524 -37.3229 35.8978 +-43.7079 -36.8837 35.4754 +-44.94 -37.2601 35.8375 +-45.787 -37.2999 35.8757 +-46.973 -37.5998 36.1641 +-47.3589 -37.2497 35.8274 +-48.4219 -37.4248 35.9959 +-49.4239 -37.5371 36.1039 +-49.8765 -37.2248 35.8035 +-51.0262 -37.4238 35.9948 +-52.1845 -37.6111 36.175 +-52.5666 -37.2309 35.8093 +-53.7347 -37.3995 35.9715 +-54.8383 -37.5066 36.0745 +-56.8262 -38.1926 36.7343 +-57.2127 -37.785 36.3423 +-58.3369 -37.8578 36.4123 +-59.4671 -37.9192 36.4713 +-60.2258 -37.7329 36.2921 +-61.2127 -37.6803 36.2416 +-62.0496 -37.5255 36.0927 +-62.8874 -37.3631 35.9364 +-64.814 -37.8279 36.3835 +-65.9739 -37.8226 36.3784 +-66.9809 -37.7168 36.2767 +-67.5144 -37.338 35.9123 +-69.4813 -37.736 36.2952 +-70.9806 -37.855 36.4096 +-72.6497 -38.0425 36.5899 +-73.5146 -37.7934 36.3504 +-75.6077 -38.1564 36.6995 +-76.4789 -37.8835 36.437 +-78.5099 -38.1668 36.7095 +-79.6361 -37.9898 36.5393 +-81.6026 -38.1941 36.7357 +-82.9054 -38.0666 36.6132 +-85.2288 -38.384 36.9184 +-85.9461 -37.9595 36.5101 +-88.8025 -38.4568 36.9884 +-90.1264 -38.2626 36.8016 +-92.6647 -38.5592 37.0869 +-94.1725 -38.4008 36.9345 +-97.0828 -38.7854 37.3045 +-98.9548 -38.7236 37.245 +-101.362 -38.8441 37.3609 +-103.337 -38.7709 37.2905 +-105.139 -38.6103 37.1361 +-108.287 -38.9123 37.4265 +-110.731 -38.9248 37.4386 +-113.274 -38.9405 37.4537 +-117.186 -39.3841 37.8803 +-122.117 -40.1101 38.5786 +-125.978 -40.4252 38.8816 +-128.755 -40.3498 38.8091 +-132.369 -40.4959 38.9496 +-14.7821 -4.413 4.2445 +-14.0932 -4.10387 3.94717 +-44.0088 -12.4943 12.0172 +-41.1709 -11.3905 10.9555 +-36.6239 -9.86906 9.49224 +-15.7868 -4.14129 3.98316 +-14.6109 -3.72908 3.58669 +-14.7501 -3.6605 3.52073 +-14.2249 -3.43038 3.2994 +-14.5512 -3.4076 3.27748 +-15.5456 -3.53267 3.39778 +-14.1533 -3.11868 2.9996 +-13.6152 -2.90673 2.79574 +-14.2267 -2.94018 2.82791 +-11.3708 -2.27277 2.18599 +-3164.66 -611.159 587.823 +-11.4241 -2.12939 2.04808 +-12.2257 -2.19695 2.11307 +-12.8353 -2.22092 2.13612 +-12.7642 -2.1239 2.0428 +-12.5942 -2.01234 1.9355 +-12.4225 -1.90308 1.83042 +-13.9149 -2.04041 1.9625 +-13.7428 -1.92531 1.8518 +-14.1589 -1.89134 1.81912 +-13.1964 -1.67707 1.61303 +-12.8217 -1.54642 1.48737 +-13.1363 -1.49954 1.44229 +-13.8462 -1.49143 1.43449 +-13.6657 -1.38423 1.33138 +-12.9879 -1.23237 1.18532 +-13.1016 -1.15943 1.11516 +-12.8171 -1.0525 1.01231 +-12.6304 -0.95678 0.920247 +-11.6461 -0.80823 0.777369 +-11.6555 -0.734945 0.706883 +-11.2652 -0.638993 0.614594 +-10.7737 -0.542978 0.522246 +-11.2789 -0.497196 0.478212 +-10.7852 -0.407378 0.391823 +-10.3901 -0.326955 0.314471 +-10.4936 -0.264109 0.254024 +-10.3964 -0.196212 0.18872 +-10.9983 -0.138363 0.13308 +-10.3996 -0.0654108 0.0629133 +9.9 0 0 +10.1996 -0.0635935 0.0622797 +10.1984 -0.127183 0.124555 +9.89661 -0.185151 0.181326 +10.1938 -0.254326 0.249072 +11.0894 -0.345918 0.338772 +11.3844 -0.426261 0.417455 +12.2771 -0.536477 0.525394 +11.871 -0.593065 0.580813 +11.7636 -0.661448 0.647783 +13.1498 -0.821944 0.804963 +13.4378 -0.924439 0.905341 +13.9233 -1.04552 1.02392 +13.4132 -1.09185 1.06929 +15.98 -1.40182 1.37286 +36.1877 -3.40378 3.33346 +39.1156 -3.92756 3.84642 +39.5606 -4.22409 4.13682 +38.3223 -4.33646 4.24687 +36.4926 -4.36296 4.27283 +37.9151 -4.77641 4.67773 +42.6733 -5.65059 5.53385 +70.4808 -9.78801 9.5858 +68.0068 -9.88518 9.68096 +77.4693 -11.7645 11.5215 +80.8373 -12.8038 12.5393 +90.6164 -14.9465 14.6378 +93.7365 -16.078 15.7459 +94.7009 -16.8693 16.5208 +95.3625 -17.62 17.256 +94.9505 -18.1769 17.8014 +94.7249 -18.7682 18.3805 +94.492 -19.3581 18.9582 +95.019 -20.1088 19.6934 +95.6305 -20.8885 20.4569 +95.4671 -21.5054 21.0611 +95.2008 -22.0997 21.6432 +95.7807 -22.8965 22.4235 +96.2538 -23.6788 23.1896 +95.9609 -24.278 23.7765 +95.5667 -24.8509 24.3375 +95.9152 -25.621 25.0917 +95.5986 -26.218 25.6764 +96.2052 -27.0749 26.5155 +96.798 -27.9413 27.364 +94.6977 -28.0243 27.4453 +94.0756 -28.5298 27.9404 +93.907 -29.1723 28.5696 +94.6433 -30.1053 29.4834 +94.363 -30.7239 30.0892 +93.8935 -31.2809 30.6347 +94.0494 -32.0496 31.3875 +94.5531 -32.9479 32.2672 +94.1471 -33.5362 32.8434 +94.5358 -34.4138 33.7029 +94.2893 -35.0679 34.3434 +93.5042 -35.5202 34.7864 +93.5061 -36.2723 35.523 +92.4473 -36.6115 35.8551 +90.3429 -36.518 35.7636 +89.4604 -36.9013 36.1389 +86.5937 -36.4423 35.6894 +85.1167 -36.5392 35.7844 +83.8998 -36.7326 35.9737 +81.5822 -36.4213 35.6688 +81.0499 -36.8902 36.1281 +79.8414 -37.0439 36.2786 +78.4687 -37.1065 36.3399 +76.686 -36.9551 36.1916 +75.4075 -37.0271 36.2622 +74.4609 -37.25 36.4804 +72.3749 -36.883 36.1211 +71.1935 -36.9549 36.1914 +69.7748 -36.8874 36.1253 +68.1236 -36.6761 35.9184 +67.435 -36.9689 36.2052 +66.9809 -37.3879 36.6155 +65.113 -37.0036 36.2391 +63.9591 -37.0035 36.239 +62.8102 -36.9918 36.2276 +61.6666 -36.9687 36.205 +60.6044 -36.9806 36.2166 +59.3956 -36.8882 36.1262 +58.2688 -36.8311 36.0702 +56.9249 -36.6193 35.8628 +55.8856 -36.5867 35.8308 +55.3635 -36.885 36.123 +54.258 -36.7862 36.0262 +53.1592 -36.6764 35.9187 +52.0673 -36.5557 35.8005 +50.9824 -36.4243 35.6718 +50.6757 -36.8427 36.0815 +49.5986 -36.6947 35.9366 +48.4602 -36.4843 35.7306 +48.0127 -36.785 36.0251 +46.886 -36.5562 35.801 +45.9693 -36.4754 35.7219 +45.5883 -36.8142 36.0537 +44.612 -36.6657 35.9082 +43.7728 -36.6165 35.86 +43.0025 -36.6143 35.8579 +42.3628 -36.7156 35.9571 +41.5351 -36.6452 35.8881 +40.2144 -36.12 35.3738 +39.6486 -36.2567 35.5077 +38.6564 -35.9924 35.2488 +38.1551 -36.175 35.4277 +37.1169 -35.8372 35.0969 +36.5602 -35.9517 35.2089 +36.0617 -36.1201 35.3739 +35.6191 -36.3435 35.5927 +35.0605 -36.4464 35.6935 +34.5581 -36.6044 35.8482 +34.1097 -36.8184 36.0578 +33.6042 -36.9698 36.2061 +32.1842 -36.0933 35.3476 +32.2191 -36.8379 36.0768 +31.1932 -36.3673 35.616 +30.7993 -36.6216 35.865 +29.894 -36.2582 35.5092 +29.45 -36.4432 35.6903 +29.0037 -36.6255 35.8688 +28.5553 -36.8049 36.0445 +27.7229 -36.4792 35.7256 +27.3232 -36.7137 35.9552 +26.5044 -36.3757 35.6242 +26.1045 -36.6033 35.8471 +25.5671 -36.6367 35.8798 +24.8118 -36.3452 35.5943 +24.3239 -36.4341 35.6814 +23.8779 -36.5843 35.8285 +23.4302 -36.7318 35.9729 +22.9806 -36.8765 36.1146 +22.1704 -36.4286 35.6761 +21.7637 -36.6313 35.8745 +20.9711 -36.1715 35.4242 +20.6034 -36.4334 35.6807 +20.1576 -36.5605 35.8051 +19.4235 -36.1512 35.4043 +18.9812 -36.2708 35.5215 +18.5375 -36.3878 35.636 +18.059 -36.4346 35.6819 +17.6458 -36.6134 35.857 +17.1979 -36.722 35.9633 +16.9341 -37.2355 36.4663 +16.208 -36.7264 35.9677 +15.5542 -36.3478 35.5969 +15.1096 -36.4434 35.6905 +14.471 -36.0555 35.3106 +14.0033 -36.0755 35.3302 +13.588 -36.2305 35.482 +13.145 -36.3138 35.5636 +12.7009 -36.3944 35.6425 +12.0458 -35.8469 35.1064 +11.7874 -36.4776 35.724 +11.0384 -35.5732 34.8382 +10.7698 -36.1997 35.4518 +10.4868 -36.8255 36.0647 +9.99839 -36.7493 35.9901 +9.38513 -36.1779 35.4305 +9.01234 -36.5165 35.7621 +8.51646 -36.3599 35.6087 +8.11895 -36.6233 35.8667 +7.67131 -36.6726 35.9149 +7.22308 -36.719 35.9604 +6.65684 -36.1251 35.3788 +6.31283 -36.7326 35.9737 +5.75072 -36.0607 35.3157 +5.31005 -36.0951 35.3494 +4.87855 -36.198 35.4502 +4.43623 -36.227 35.4786 +3.97788 -36.1109 35.3648 +3.54363 -36.2056 35.4576 +3.10127 -36.2262 35.4778 +2.61156 -35.6021 34.8666 +2.18097 -35.6884 34.9511 +1.77289 -36.2719 35.5225 +1.30885 -35.7102 34.9724 +0.87262 -35.717 34.9791 +0.436327 -35.7211 34.9831 +3.11662e-15 -36.3654 35.6141 +-0.444181 -36.3641 35.6128 +-0.884837 -36.217 35.4688 +-1.32979 -36.2815 35.532 +-1.8043 -36.9145 36.1518 +-2.21586 -36.2594 35.5103 +-2.70577 -36.8863 36.1243 +-3.09516 -36.1549 35.408 +-3.53665 -36.1343 35.3878 +-4.04064 -36.6806 35.9228 +-4.48852 -36.6541 35.8968 +-4.92647 -36.5536 35.7984 +-5.38322 -36.5925 35.8366 +-5.71676 -35.8477 35.1071 +-6.28846 -36.5908 35.8348 +-6.7482 -36.621 35.8644 +-7.18133 -36.5067 35.7525 +-7.61218 -36.3899 35.6381 +-8.05637 -36.3411 35.5903 +-8.45044 -36.0781 35.3327 +-8.94288 -36.2351 35.4865 +-9.49447 -36.5995 35.8434 +-9.86483 -36.2583 35.5093 +-10.1279 -35.5654 34.8306 +-10.7698 -36.1997 35.4518 +-10.9951 -35.4336 34.7016 +-11.6525 -36.0599 35.3149 +-12.0458 -35.8469 35.1064 +-12.6767 -36.325 35.5746 +-13.1199 -36.2446 35.4958 +-13.588 -36.2305 35.482 +-14.0567 -36.2132 35.4651 +-14.9671 -37.2917 36.5213 +-14.9392 -36.0324 35.288 +-15.905 -37.1677 36.3999 +-16.1178 -36.522 35.7675 +-16.5633 -36.4201 35.6677 +-17.1027 -36.5187 35.7643 +-17.8086 -36.9512 36.1878 +-18.2926 -36.9061 36.1437 +-18.7769 -36.8577 36.0963 +-19.1914 -36.6723 35.9147 +-19.9253 -37.0849 36.3188 +-20.0843 -36.4275 35.6749 +-20.7907 -36.7646 36.005 +-21.2389 -36.6335 35.8767 +-22.0372 -37.0917 36.3254 +-22.4894 -36.9528 36.1894 +-23.0213 -36.9418 36.1786 +-23.4716 -36.7968 36.0366 +-23.9625 -36.7139 35.9554 +-24.453 -36.6275 35.8708 +-25.3817 -37.18 36.4119 +-25.7902 -36.9564 36.1929 +-26.1953 -36.7306 35.9717 +-26.6891 -36.6292 35.8725 +-27.511 -36.9661 36.2024 +-27.9615 -36.7932 36.033 +-28.3129 -36.4924 35.7385 +-29.25 -36.9363 36.1733 +-30.15 -37.3094 36.5386 +-30.5031 -36.9969 36.2326 +-31.0568 -36.9278 36.1649 +-31.4022 -36.611 35.8546 +-31.9541 -36.535 35.7802 +-32.8827 -36.8767 36.1148 +-33.8221 -37.2095 36.4407 +-33.9993 -36.6993 35.9412 +-35.9002 -38.0259 37.2403 +-35.627 -37.0352 36.2701 +-35.9632 -36.6946 35.9366 +-36.9908 -37.0507 36.2853 +-38.0297 -37.3967 36.6241 +-38.4256 -37.1007 36.3343 +-39.4791 -37.4303 36.657 +-39.9347 -37.1827 36.4146 +-40.8799 -37.3827 36.6104 +-41.335 -37.1264 36.3594 +-42.4162 -37.4225 36.6494 +-42.9353 -37.2118 36.4431 +-43.3882 -36.9427 36.1795 +-44.4872 -37.214 36.4452 +-45.4649 -37.3666 36.5947 +-46.5159 -37.5633 36.7873 +-46.9061 -37.2188 36.4499 +-48.0345 -37.4517 36.6779 +-49.0357 -37.5688 36.7926 +-49.4927 -37.2616 36.4918 +-50.5711 -37.4142 36.6412 +-51.7271 -37.6071 36.8301 +-52.8209 -37.7378 36.9582 +-53.2798 -37.407 36.6342 +-54.3821 -37.5201 36.745 +-55.4911 -37.6222 36.845 +-56.753 -37.8108 37.0297 +-57.2864 -37.5038 36.729 +-58.4112 -37.5755 36.7992 +-59.7667 -37.778 36.9975 +-60.3013 -37.4507 36.677 +-61.897 -37.7694 36.9891 +-62.9689 -37.7494 36.9695 +-63.1961 -37.219 36.4501 +-65.358 -37.8127 37.0316 +-65.9739 -37.4928 36.7182 +-67.1385 -37.476 36.7017 +-68.3077 -37.4474 36.6737 +-70.2001 -37.794 37.0132 +-70.7394 -37.3974 36.6248 +-73.5396 -38.1728 37.3841 +-74.0031 -37.7128 36.9337 +-76.345 -38.1925 37.4034 +-77.303 -37.9578 37.1737 +-79.256 -38.1935 37.4045 +-80.1364 -37.8951 37.1122 +-81.8542 -37.9778 37.1932 +-83.7488 -38.1186 37.3311 +-85.6529 -38.2386 37.4486 +-87.3956 -38.2631 37.4726 +-89.0597 -38.2319 37.4421 +-90.7296 -38.1828 37.394 +-93.0977 -38.4016 37.6082 +-95.1299 -38.453 37.6586 +-97.2577 -38.5165 37.7208 +-98.779 -38.3177 37.5261 +-101.627 -38.6061 37.8085 +-103.425 -38.4658 37.6711 +-106.743 -38.8575 38.0547 +-109.271 -38.9237 38.1196 +-112.169 -39.0865 38.279 +-114.538 -39.0317 38.2253 +-119.179 -39.705 38.8847 +-122.663 -39.9381 39.113 +-127.622 -40.5957 39.7571 +-128.939 -40.0549 39.2274 +-133.197 -40.394 39.5595 +-14.5973 -4.31984 4.2306 +-13.7223 -3.96103 3.8792 +-44.474 -12.5163 12.2577 +-43.5048 -11.9312 11.6847 +-37.3732 -9.9832 9.77695 +-35.2385 -9.16337 8.97406 +-15.8364 -4.0066 3.92382 +-15.8847 -3.9077 3.82697 +-14.5094 -3.46847 3.39682 +-16.2631 -3.77528 3.69729 +-15.0687 -3.39445 3.32432 +-15.8747 -3.46748 3.39585 +-14.4782 -3.064 3.0007 +-14.8034 -3.0327 2.97005 +-12.3345 -2.44388 2.39339 +-3164.66 -605.83 593.314 +-12.6827 -2.34338 2.29496 +-12.2257 -2.1778 2.1328 +-11.7657 -2.01809 1.9764 +-13.3489 -2.20181 2.15632 +-12.4966 -1.97933 1.93844 +-13.0094 -1.97561 1.9348 +-11.9551 -1.73775 1.70184 +-14.0373 -1.94942 1.90915 +-12.684 -1.67955 1.64486 +-13.3934 -1.68726 1.6524 +-14.3011 -1.70981 1.67449 +-12.8399 -1.45294 1.42292 +-14.5385 -1.55235 1.52028 +-14.3589 -1.44176 1.41198 +-13.1862 -1.24028 1.21466 +-12.8038 -1.12319 1.09999 +-12.519 -1.01906 0.998007 +-12.2326 -0.918566 0.899589 +-12.3429 -0.849115 0.831573 +-12.2532 -0.765903 0.75008 +-11.0658 -0.62221 0.609356 +-11.073 -0.553195 0.541767 +-11.0793 -0.484138 0.474136 +-10.4856 -0.392609 0.384498 +-11.0894 -0.345918 0.338772 +-11.3931 -0.284246 0.278374 +-10.4964 -0.196372 0.192315 +-10.9983 -0.137157 0.134323 +-10.9996 -0.0685812 0.0671644 +10.5 0 0 +9.89962 -0.0611752 0.0610024 +10.1984 -0.126053 0.125698 +10.7963 -0.200189 0.199624 +11.0932 -0.274309 0.273534 +10.49 -0.324315 0.3234 +11.3844 -0.422477 0.421284 +11.6782 -0.505777 0.504349 +11.3722 -0.563103 0.561513 +12.0627 -0.672244 0.670346 +13.1498 -0.814647 0.812347 +13.1392 -0.895867 0.893338 +13.6249 -1.01404 1.01117 +15.2016 -1.22645 1.22298 +16.6748 -1.44978 1.44568 +35.692 -3.32735 3.31795 +34.8574 -3.46893 3.45914 +38.7694 -4.10286 4.09127 +39.31 -4.40873 4.39628 +39.0569 -4.6281 4.61503 +44.0209 -5.49637 5.48085 +50.0477 -6.56824 6.54969 +82.5548 -11.363 11.3309 +76.9241 -11.0821 11.0508 +88.3267 -13.2943 13.2567 +89.9169 -14.1155 14.0756 +93.9293 -15.3555 15.3121 +93.8337 -15.9519 15.9068 +94.5068 -16.6852 16.6381 +94.588 -17.3218 17.2728 +95.2403 -18.0706 18.0196 +94.7249 -18.6016 18.5491 +95.3572 -19.3619 19.3072 +95.1149 -19.9504 19.8941 +94.8654 -20.5374 20.4794 +95.3717 -21.2932 21.233 +95.2008 -21.9036 21.8417 +94.9272 -22.491 22.4275 +95.4028 -23.2611 23.1955 +95.8666 -24.0389 23.971 +95.5667 -24.6303 24.5608 +95.9152 -25.3935 25.3218 +95.5986 -25.9853 25.9119 +96.2052 -26.8345 26.7587 +96.6126 -27.6402 27.5622 +94.8824 -27.8297 27.7511 +94.4438 -28.3873 28.3071 +93.7235 -28.8569 28.7754 +94.552 -29.8093 29.7251 +94.181 -30.3925 30.3067 +94.1654 -31.0929 31.0051 +94.2299 -31.8261 31.7362 +93.7442 -32.3761 32.2847 +94.1471 -33.2385 33.1446 +94.0903 -33.9476 33.8517 +93.9344 -34.6258 34.528 +94.3871 -35.5373 35.437 +94.0334 -36.153 36.051 +94.0216 -36.9043 36.8001 +91.4744 -36.6471 36.5436 +89.98 -36.7861 36.6822 +87.8 -36.622 36.5186 +85.8882 -36.5431 36.4399 +84.6672 -36.7394 36.6357 +82.7695 -36.6233 36.5199 +81.556 -36.791 36.6871 +80.3446 -36.9464 36.8421 +78.969 -37.0116 36.9071 +78.0124 -37.2606 37.1554 +76.1493 -37.0594 36.9547 +75.1982 -37.2848 37.1795 +72.8633 -36.8023 36.6984 +72.407 -37.2512 37.146 +70.4982 -36.939 36.8347 +69.3216 -36.9897 36.8852 +67.673 -36.77 36.6662 +66.9809 -37.056 36.9514 +65.7391 -37.0277 36.9232 +64.5808 -37.0315 36.9269 +63.4275 -37.0237 36.9192 +62.356 -37.0501 36.9455 +61.2127 -37.0202 36.9157 +60.1504 -37.0254 36.9208 +58.9428 -36.9264 36.8222 +57.8167 -36.8629 36.7588 +56.4754 -36.6446 36.5411 +56.0948 -37.0405 36.9359 +54.258 -36.4596 36.3566 +53.8066 -36.7935 36.6896 +52.7092 -36.6779 36.5743 +51.6895 -36.6016 36.4983 +50.6056 -36.4651 36.3621 +50.1543 -36.7764 36.6726 +49.0797 -36.6227 36.5193 +48.0127 -36.4585 36.3555 +47.494 -36.7015 36.5979 +46.5046 -36.5727 36.4694 +45.5883 -36.4874 36.3844 +45.2025 -36.8211 36.7172 +43.6429 -36.1837 36.0815 +43.131 -36.3978 36.295 +42.4264 -36.4444 36.3415 +41.9127 -36.6501 36.5466 +40.7125 -36.2427 36.1404 +40.2643 -36.4929 36.3898 +39.2651 -36.2347 36.1324 +38.6967 -36.3629 36.2602 +38.3066 -36.6575 36.554 +37.148 -36.2054 36.1032 +36.6424 -36.3759 36.2732 +36.1927 -36.6009 36.4976 +35.0605 -36.1229 36.0209 +34.5581 -36.2794 36.177 +34.1097 -36.4916 36.3886 +33.6587 -36.701 36.5974 +32.6678 -36.3104 36.2079 +32.1661 -36.4508 36.3479 +31.7157 -36.6482 36.5447 +31.2628 -36.8428 36.7388 +30.3508 -36.4854 36.3824 +29.95 -36.7329 36.6292 +29.0037 -36.3003 36.1978 +28.5553 -36.4781 36.3751 +28.1524 -36.7154 36.6118 +27.2763 -36.3253 36.2228 +26.4582 -35.99 35.8884 +26.0137 -36.1521 36.0501 +25.5671 -36.3114 36.2089 +25.1187 -36.4681 36.3651 +24.7113 -36.6858 36.5822 +24.216 -36.7729 36.6691 +23.4302 -36.4057 36.3029 +22.9806 -36.5491 36.4459 +22.4894 -36.6248 36.5214 +21.8419 -36.4364 36.3336 +21.3155 -36.4392 36.3363 +20.903 -36.6352 36.5318 +20.1576 -36.2359 36.1336 +19.7102 -36.359 36.2564 +19.2264 -36.4131 36.3103 +18.8453 -36.6637 36.5601 +18.326 -36.6452 36.5417 +17.9062 -36.824 36.72 +17.2296 -36.4632 36.3602 +17.0268 -37.107 37.0022 +16.3584 -36.7381 36.6344 +15.8173 -36.6346 36.5312 +15.1096 -36.1199 36.0179 +14.471 -35.7354 35.6345 +14.2171 -36.3011 36.1986 +13.7951 -36.456 36.353 +13.145 -35.9915 35.8898 +12.7009 -36.0713 35.9694 +12.466 -36.7681 36.6643 +11.8099 -36.2227 36.1204 +11.3198 -36.1561 36.054 +10.9362 -36.4325 36.3296 +10.4668 -36.4292 36.3264 +10.0175 -36.4925 36.3895 +9.42158 -35.9961 35.8944 +9.15126 -36.7503 36.6465 +8.54947 -36.1768 36.0747 +8.11895 -36.2982 36.1957 +7.67131 -36.347 36.2444 +7.25092 -36.5333 36.4301 +6.77431 -36.4363 36.3334 +6.32502 -36.4767 36.3737 +5.86393 -36.4441 36.3412 +5.41457 -36.4789 36.3759 +4.97439 -36.5815 36.4782 +4.51467 -36.5403 36.4371 +3.97788 -35.7903 35.6892 +3.59943 -36.4492 36.3463 +3.10127 -35.9046 35.8033 +2.65867 -35.9225 35.8211 +2.21586 -35.9375 35.836 +1.80779 -36.6575 36.554 +1.33241 -36.0303 35.9285 +0.90578 -36.7451 36.6413 +0.444181 -36.0412 35.9395 +3.11662e-15 -36.0426 35.9408 +-0.444181 -36.0412 35.9395 +-0.902289 -36.6035 36.5001 +-1.35597 -36.6673 36.5637 +-1.80779 -36.6575 36.554 +-2.21586 -35.9375 35.836 +-2.70577 -36.5589 36.4556 +-3.15621 -36.5408 36.4376 +-3.61339 -36.5905 36.4872 +-4.04064 -36.355 36.2524 +-4.57568 -37.0341 36.9295 +-5.01273 -36.8634 36.7593 +-5.46684 -36.8311 36.7271 +-5.93185 -36.8663 36.7622 +-6.38595 -36.8282 36.7242 +-6.73515 -36.2257 36.1234 +-7.29267 -36.7436 36.6399 +-7.61218 -36.0669 35.965 +-8.05637 -36.0184 35.9167 +-8.54947 -36.1768 36.0747 +-9.02971 -36.2621 36.1597 +-9.4398 -36.0657 35.9638 +-10.0366 -36.562 36.4588 +-10.3073 -35.8741 35.7728 +-10.7698 -35.8783 35.777 +-11.2116 -35.8104 35.7093 +-11.6525 -35.7398 35.6389 +-12.0925 -35.6664 35.5657 +-12.7009 -36.0713 35.9694 +-13.1199 -35.9228 35.8214 +-13.7951 -36.456 36.353 +-14.2705 -36.4376 36.3348 +-14.9947 -37.0287 36.9241 +-15.1948 -36.3236 36.2211 +-15.6419 -36.2283 36.126 +-16.1178 -36.1978 36.0956 +-17.1504 -37.3764 37.2708 +-17.3248 -36.6647 36.5611 +-18.1016 -37.2257 37.1206 +-18.2592 -36.5117 36.4086 +-18.7427 -36.464 36.3611 +-19.5066 -36.9437 36.8394 +-19.9611 -36.8218 36.7178 +-20.6707 -37.1583 37.0534 +-21.0904 -36.9635 36.8591 +-21.5833 -36.8971 36.7929 +-22.0372 -36.7624 36.6586 +-22.5692 -36.7547 36.6509 +-23.3874 -37.196 37.091 +-23.9278 -37.179 37.074 +-24.3851 -37.0297 36.9251 +-24.7974 -36.8136 36.7097 +-25.294 -36.7226 36.619 +-25.7902 -36.6283 36.5249 +-26.6946 -37.0985 36.9938 +-27.0585 -36.8065 36.7026 +-27.9336 -37.2006 37.0956 +-27.9615 -36.4665 36.3636 +-28.7492 -36.7258 36.6221 +-29.6931 -37.1631 37.0582 +-30 -36.7942 36.6903 +-30.5031 -36.6685 36.5649 +-31.4173 -37.0249 36.9203 +-31.8724 -36.8294 36.7254 +-32.908 -37.2915 37.1862 +-33.2588 -36.9673 36.8629 +-34.2578 -37.3543 37.2488 +-34.8824 -37.3183 37.2129 +-35.5087 -37.2774 37.1722 +-35.9102 -36.9982 36.8938 +-37.1678 -37.587 37.4809 +-37.5715 -37.2983 37.193 +-38.5587 -37.5802 37.4741 +-38.9609 -37.2836 37.1783 +-39.9605 -37.5504 37.4444 +-40.4218 -37.3021 37.1968 +-40.9415 -37.1067 37.0019 +-41.9575 -37.351 37.2456 +-42.4162 -37.0903 36.9856 +-43.5078 -37.3732 37.2677 +-44.031 -37.1571 37.0522 +-45.0067 -37.3144 37.2091 +-46.0553 -37.5159 37.4099 +-45.9196 -36.7525 36.6488 +-47.5752 -37.4146 37.309 +-48.5749 -37.5368 37.4308 +-49.0357 -37.2352 37.1301 +-50.181 -37.4445 37.3388 +-51.1963 -37.5404 37.4344 +-51.7271 -37.2732 37.168 +-53.4573 -37.8534 37.7465 +-53.2085 -37.0253 36.9208 +-55.8927 -38.22 38.1121 +-55.4911 -37.2882 37.1829 +-57.4844 -37.9581 37.8509 +-57.8763 -37.5535 37.4475 +-59.08 -37.6683 37.562 +-59.9914 -37.5833 37.4772 +-61.4334 -37.8151 37.7083 +-61.9731 -37.48 37.3742 +-63.6583 -37.824 37.7172 +-64.122 -37.4291 37.3234 +-65.8243 -37.7444 37.6379 +-66.9913 -37.733 37.6265 +-68.3205 -37.7971 37.6904 +-69.4978 -37.7615 37.6549 +-70.6792 -37.7141 37.6077 +-71.8648 -37.6551 37.5488 +-73.9442 -38.042 37.9346 +-75.3871 -38.077 37.9695 +-76.8365 -38.0972 37.9896 +-78.0448 -37.9819 37.8746 +-80.4166 -38.4089 38.3004 +-80.8869 -37.9105 37.8035 +-83.5316 -38.4119 38.3034 +-84.5078 -38.1226 38.0149 +-87.0945 -38.537 38.4282 +-88.3335 -38.3304 38.2222 +-90.5169 -38.5125 38.4037 +-91.8497 -38.3111 38.2029 +-94.6566 -38.698 38.5887 +-95.5651 -38.2859 38.1778 +-98.3073 -38.5865 38.4776 +-100.097 -38.4844 38.3758 +-103.217 -38.8617 38.752 +-105.022 -38.7128 38.6035 +-108.792 -39.2519 39.141 +-109.719 -38.7361 38.6268 +-113.158 -39.081 38.9706 +-115.35 -38.9595 38.8495 +-121.173 -40.0109 39.8979 +-124.301 -40.1121 39.9989 +-128.444 -40.4946 40.3802 +-130.589 -40.2076 40.0941 +-134.118 -40.3121 40.1983 +-134.979 -39.5902 39.4784 +-14.3713 -4.11155 4.09994 +-16.0962 -4.48972 4.47705 +-47.1458 -12.815 12.7788 +-41.2136 -10.9113 10.8805 +-38.7153 -9.97806 9.94989 +-15.7421 -3.94739 3.93624 +-15.2228 -3.71164 3.70116 +-15.9318 -3.77471 3.76406 +-15.4071 -3.54483 3.53483 +-14.115 -3.15139 3.14249 +-15.2052 -3.29178 3.28248 +-14.7658 -3.09714 3.0884 +-13.746 -2.79108 2.7832 +-12.3345 -2.42218 2.41534 +-3164.66 -600.452 598.756 +-12.6827 -2.32257 2.31601 +-13.6812 -2.41542 2.4086 +-13.5159 -2.29773 2.29124 +-13.6412 -2.23004 2.22375 +-13.6681 -2.14567 2.13961 +-13.3028 -2.00224 1.99659 +-12.739 -1.83525 1.83007 +-14.2336 -1.95914 1.95361 +-13.3723 -1.75497 1.75001 +-13.9843 -1.74605 1.74112 +-13.2162 -1.56607 1.56165 +-13.5313 -1.51758 1.51329 +-12.9561 -1.37111 1.36723 +-13.4676 -1.34027 1.33648 +-14.0785 -1.31245 1.30875 +-13.0024 -1.13048 1.12729 +-13.7113 -1.1062 1.10308 +-12.531 -0.932618 0.929985 +-11.248 -0.766921 0.764756 +-11.1574 -0.691213 0.689262 +-11.4645 -0.63891 0.637106 +-11.472 -0.568042 0.566438 +-11.3787 -0.492808 0.491417 +-11.3844 -0.422477 0.421284 +-10.7897 -0.333581 0.332639 +-10.7934 -0.266896 0.266142 +-10.4964 -0.194629 0.194079 +-10.4984 -0.12976 0.129394 +-10.9996 -0.0679724 0.0677805 +9.7 0 0 +10.1996 -0.0624593 0.0634172 +9.89849 -0.12124 0.123099 +10.7963 -0.19838 0.201422 +11.3931 -0.279176 0.283458 +11.3891 -0.348931 0.354282 +11.9836 -0.440693 0.447451 +12.4767 -0.535476 0.543689 +12.0705 -0.592277 0.60136 +11.8633 -0.655156 0.665204 +14.0463 -0.862326 0.875551 +14.3337 -0.96848 0.983333 +14.3211 -1.05621 1.07241 +14.7049 -1.17564 1.19367 +17.171 -1.47943 1.50212 +29.5451 -2.72941 2.77127 +32.3818 -3.19343 3.24241 +37.187 -3.89982 3.95963 +40.1001 -4.4567 4.52505 +40.3391 -4.73683 4.80947 +53.5735 -6.62863 6.73029 +63.6166 -8.27353 8.40041 +91.7821 -12.5188 12.7108 +89.6631 -12.8007 12.997 +93.0218 -13.8744 14.0872 +92.26 -14.3523 14.5724 +94.8062 -15.3587 15.5943 +93.7365 -15.7913 16.0334 +94.5068 -16.5344 16.788 +94.4912 -17.1476 17.4106 +94.9505 -17.8527 18.1265 +94.9176 -18.471 18.7543 +95.3572 -19.1869 19.4811 +95.1149 -19.7701 20.0733 +95.6305 -20.5159 20.8305 +95.3717 -21.1007 21.4243 +95.2008 -21.7056 22.0385 +95.6859 -22.4658 22.8103 +95.4974 -23.0738 23.4276 +95.9609 -23.845 24.2107 +95.6607 -24.4318 24.8065 +95.9152 -25.164 25.5499 +96.6256 -26.027 26.4262 +96.2982 -26.6177 27.0259 +95.9635 -27.2064 27.6236 +95.8063 -27.8467 28.2738 +94.812 -28.2403 28.6735 +93.907 -28.652 29.0914 +94.6433 -29.5684 30.0219 +94.363 -30.1759 30.6387 +93.9841 -30.7526 31.2242 +94.3202 -31.5686 32.0528 +93.7442 -32.0835 32.5755 +93.9681 -32.8755 33.3797 +93.3775 -33.3859 33.8979 +94.2893 -34.4424 34.9707 +94.3871 -35.2161 35.7562 +93.594 -35.6589 36.2057 +93.4968 -36.3667 36.9244 +92.954 -36.9033 37.4692 +90.7595 -36.7694 37.3333 +89.0063 -36.7895 37.3537 +87.3453 -36.8272 37.392 +85.4345 -36.7374 37.3008 +84.4656 -37.036 37.604 +81.809 -36.5716 37.1324 +81.7704 -37.2622 37.8336 +80.1364 -37.2192 37.79 +78.9244 -37.3554 37.9283 +76.8086 -37.0424 37.6105 +76.5907 -37.632 38.2092 +74.4916 -37.2846 37.8564 +73.5396 -37.4919 38.0669 +70.9806 -36.8556 37.4208 +70.3598 -37.2044 37.7749 +67.911 -36.5659 37.1267 +68.3993 -37.4987 38.0738 +66.6 -37.1736 37.7437 +66.0574 -37.5358 38.1114 +64.1992 -37.1354 37.705 +63.0455 -37.1212 37.6905 +61.9731 -37.1413 37.7109 +60.8296 -37.1051 37.6741 +59.6918 -37.0576 37.626 +58.4855 -36.9522 37.5189 +57.3602 -36.8823 37.4479 +56.8993 -37.2321 37.8031 +55.5637 -36.9995 37.567 +54.526 -36.9484 37.515 +53.3511 -36.789 37.3532 +52.3259 -36.7174 37.2805 +51.3066 -36.636 37.1978 +50.849 -36.9488 37.5155 +49.6304 -36.6988 37.2617 +49.3085 -37.104 37.6731 +47.5616 -36.4215 36.9801 +47.1068 -36.7114 37.2744 +46.1184 -36.578 37.139 +45.2025 -36.4883 37.0479 +44.747 -36.7638 37.3276 +43.7096 -36.5525 37.1131 +43.0625 -36.6564 37.2186 +42.605 -36.9187 37.4849 +41.584 -36.6839 37.2465 +41.3109 -37.103 37.6721 +39.7521 -36.3526 36.9101 +39.78 -37.0429 37.611 +38.6635 -36.6646 37.2269 +37.7358 -36.4458 37.0048 +37.2811 -36.6755 37.2379 +36.5942 -36.6725 37.2349 +35.627 -36.3747 36.9325 +35.1732 -36.5915 37.1527 +34.0545 -36.1033 36.657 +34.0944 -36.8401 37.4051 +33.0977 -36.4556 37.0147 +32.696 -36.7165 37.2796 +31.7157 -36.317 36.8739 +31.2628 -36.5098 37.0697 +30.7568 -36.6393 37.2013 +30.35 -36.887 37.4528 +29.4469 -36.5219 37.082 +29.0401 -36.7621 37.3259 +28.1047 -36.3219 36.8789 +27.6988 -36.5546 37.1152 +27.2432 -36.7228 37.286 +26.8762 -37.0133 37.5809 +26.058 -36.6741 37.2365 +25.5132 -36.7061 37.269 +24.6252 -36.2276 36.7832 +24.216 -36.4406 36.9994 +23.8449 -36.7152 37.2783 +23.3874 -36.8598 37.4251 +22.5692 -36.4224 36.981 +22.467 -37.1406 37.7102 +21.3155 -36.1098 36.6636 +21.2777 -36.9546 37.5214 +20.4508 -36.4307 36.9894 +20.0328 -36.62 37.1816 +19.6116 -36.807 37.3715 +19.1189 -36.8597 37.425 +18.326 -36.314 36.8709 +17.9062 -36.4911 37.0508 +17.4518 -36.5994 37.1607 +17.0577 -36.8383 37.4033 +16.5087 -36.7407 37.3041 +16.022 -36.7732 37.3372 +15.3368 -36.3317 36.8889 +14.9671 -36.6266 37.1883 +14.2438 -36.0406 36.5934 +14.0539 -36.8043 37.3688 +13.3703 -36.2775 36.8339 +12.9428 -36.4261 36.9847 +12.2792 -35.8899 36.4403 +12.0124 -36.5107 37.0707 +11.4929 -36.3773 36.9352 +11.1233 -36.7209 37.284 +10.6263 -36.6501 37.2122 +10.2083 -36.8515 37.4167 +9.60381 -36.3606 36.9183 +9.13389 -36.349 36.9064 +8.54947 -35.8499 36.3997 +8.2441 -36.5246 37.0848 +7.67131 -36.0185 36.5709 +7.36226 -36.759 37.3227 +6.87873 -36.6635 37.2258 +6.4347 -36.7739 37.3378 +5.96581 -36.7421 37.3056 +5.50865 -36.7773 37.3413 +4.96481 -36.181 36.7359 +4.58439 -36.7692 37.3331 +4.05634 -36.1663 36.721 +3.61339 -36.2598 36.8159 +3.15621 -36.2105 36.7659 +2.71624 -36.3686 36.9264 +2.25512 -36.2437 36.7995 +1.80779 -36.3262 36.8833 +1.35858 -36.406 36.9644 +0.907525 -36.4831 37.0427 +0.445053 -35.7856 36.3345 +3.17785e-15 -36.4185 36.977 +-0.452035 -36.3469 36.9044 +-0.904035 -36.3428 36.9002 +-1.35335 -36.2658 36.8219 +-1.8392 -36.9574 37.5241 +-2.25512 -36.2437 36.7995 +-2.7581 -36.9292 37.4956 +-3.15621 -36.2105 36.7659 +-3.66919 -36.8198 37.3845 +-4.11126 -36.656 37.2182 +-4.57568 -36.6993 37.2622 +-5.02232 -36.6001 37.1614 +-5.57137 -37.196 37.7665 +-5.94317 -36.6027 37.1641 +-6.39814 -36.565 37.1257 +-6.83957 -36.4548 37.0139 +-7.29267 -36.4115 36.9699 +-7.74521 -36.3655 36.9232 +-8.19717 -36.3167 36.8737 +-8.63199 -36.1959 36.751 +-9.23808 -36.7636 37.3274 +-9.53092 -36.0846 36.6381 +-10.0175 -36.1627 36.7173 +-10.4868 -36.1687 36.7234 +-10.9362 -36.1032 36.6569 +-11.2332 -35.5553 36.1006 +-11.8549 -36.0321 36.5847 +-12.466 -36.4358 36.9946 +-12.9428 -36.4261 36.9847 +-13.3703 -36.2775 36.8339 +-14.0539 -36.8043 37.3688 +-14.2973 -36.1759 36.7307 +-15.2152 -37.2336 37.8046 +-15.4504 -36.6008 37.1621 +-16.1682 -37.1088 37.6779 +-16.3584 -36.406 36.9644 +-17.1504 -37.0385 37.6066 +-17.3883 -36.4663 37.0256 +-18.1341 -36.9556 37.5224 +-18.5597 -36.777 37.341 +-19.3583 -37.3213 37.8937 +-19.5066 -36.6098 37.1713 +-20.212 -36.9475 37.5142 +-20.744 -36.9529 37.5197 +-21.465 -37.2799 37.8517 +-21.9278 -37.1471 37.7168 +-22.3889 -37.0114 37.579 +-22.9281 -37.0016 37.5691 +-23.6721 -37.3085 37.8807 +-23.8863 -36.7791 37.3431 +-24.7232 -37.2037 37.7743 +-25.271 -37.1776 37.7478 +-25.9954 -37.3999 37.9734 +-26.1026 -36.7369 37.3003 +-27.0124 -37.2008 37.7714 +-27.4279 -36.9717 37.5388 +-28.403 -37.4839 38.0588 +-28.725 -37.1236 37.6929 +-29.5734 -37.4373 38.0114 +-29.6439 -36.7661 37.33 +-30.6 -37.191 37.7613 +-30.9091 -36.8207 37.3854 +-31.8809 -37.2316 37.8026 +-31.9247 -36.5563 37.1169 +-32.802 -36.8355 37.4004 +-33.7961 -37.225 37.7959 +-34.4757 -37.252 37.8233 +-35.4895 -37.6247 38.2017 +-35.9002 -37.3477 37.9205 +-36.1367 -36.8952 37.461 +-37.684 -37.7646 38.3438 +-37.5715 -36.9611 37.528 +-39.0289 -37.6947 38.2728 +-39.5557 -37.5107 38.086 +-40.5623 -37.7714 38.3507 +-41.0305 -37.5216 38.097 +-42.0497 -37.7666 38.3458 +-42.5177 -37.5076 38.0829 +-42.9826 -37.2459 37.8171 +-43.4441 -36.9813 37.5484 +-45.1237 -37.7351 38.3138 +-45.5913 -37.4574 38.0318 +-46.6458 -37.6534 38.2309 +-47.1123 -37.3664 37.9394 +-48.1774 -37.5457 38.1215 +-49.2505 -37.7149 38.2933 +-50.3315 -37.8738 38.4546 +-50.181 -37.106 37.6751 +-51.891 -37.7059 38.2842 +-52.3579 -37.3867 37.9601 +-54.0937 -37.9578 38.54 +-54.5637 -37.6252 38.2022 +-55.8927 -37.8746 38.4554 +-56.3616 -37.5309 38.1064 +-58.1426 -38.0457 38.6292 +-59.2771 -38.1149 38.6994 +-60.6406 -38.3139 38.9015 +-61.0399 -37.8946 38.4757 +-62.2635 -37.9797 38.5622 +-62.9616 -37.7337 38.3124 +-64.1945 -37.7978 38.3775 +-65.3566 -37.8049 38.3847 +-66.2128 -37.6241 38.2011 +-67.3826 -37.6104 38.1872 +-69.0297 -37.8443 38.4247 +-70.2118 -37.8047 38.3844 +-72.596 -38.3868 38.9755 +-73.0706 -37.9408 38.5227 +-75.4004 -38.4406 39.0301 +-76.364 -38.2218 38.808 +-78.3109 -38.4773 39.0673 +-79.1985 -38.195 38.7807 +-81.1628 -38.4149 39.004 +-82.3045 -38.2263 38.8125 +-84.7057 -38.5998 39.1917 +-85.4356 -38.1928 38.7785 +-88.1122 -38.6349 39.2274 +-88.5893 -38.0939 38.6781 +-92.4884 -38.9956 39.5936 +-93.4006 -38.6059 39.1979 +-95.5226 -38.6991 39.2926 +-97.828 -38.8383 39.4339 +-99.8816 -38.8501 39.446 +-101.503 -38.6723 39.2653 +-104.541 -39.0046 39.6028 +-106.086 -38.7518 39.3461 +-110.039 -39.3431 39.9465 +-111.688 -39.0748 39.6741 +-115.944 -39.6814 40.2899 +-117.517 -39.3323 39.9356 +-123.439 -40.3906 41.01 +-126.303 -40.3897 41.0092 +-130.454 -40.7565 41.3815 +-133.065 -40.5996 41.2223 +-136.235 -40.5784 41.2007 +-137.473 -39.9574 40.5702 +-11.0335 -3.12808 3.17605 +-54.2433 -14.9933 15.2233 +-48.7329 -13.1267 13.328 +-42.2439 -11.083 11.253 +-40.1249 -10.2479 10.4051 +-15.8364 -3.93514 3.99549 +-15.0337 -3.6324 3.68811 +-15.4577 -3.62927 3.68493 +-15.4071 -3.51279 3.56667 +-15.1641 -3.35501 3.40646 +-15.1096 -3.24151 3.29122 +-14.9576 -3.109 3.15669 +-14.5151 -2.92058 2.96537 +-13.1054 -2.55031 2.58942 +-13.9093 -2.61525 2.65536 +-12.8764 -2.33671 2.37255 +-12.4198 -2.1729 2.20623 +-12.2519 -2.064 2.09566 +-11.4976 -1.86262 1.89119 +-12.4966 -1.94403 1.97384 +-13.8897 -2.07168 2.10345 +-12.935 -1.84665 1.87497 +-13.0556 -1.78076 1.80807 +-14.0605 -1.82862 1.85667 +-13.4919 -1.66934 1.69494 +-13.6107 -1.59825 1.62276 +-12.7412 -1.41604 1.43776 +-13.2528 -1.38983 1.41115 +-13.2696 -1.30862 1.32869 +-12.6905 -1.17237 1.19035 +-13.3001 -1.14592 1.16349 +-12.6184 -1.00883 1.0243 +-12.6304 -0.931521 0.945807 +-11.6461 -0.786893 0.798961 +-12.8509 -0.788935 0.801034 +-11.7636 -0.649651 0.659614 +-11.073 -0.543328 0.551661 +-11.0793 -0.475503 0.482795 +-10.5855 -0.389279 0.395249 +-11.3891 -0.348931 0.354282 +-10.4936 -0.257136 0.26108 +-10.7963 -0.19838 0.201422 +-11.0983 -0.135936 0.138021 +-10.9996 -0.067358 0.0683911 +10.2 0 0 +10.7996 -0.065526 0.0677405 +10.7984 -0.131047 0.135476 +11.3961 -0.207478 0.214489 +11.6929 -0.283892 0.293486 +11.3891 -0.345726 0.35741 +12.4829 -0.454839 0.47021 +13.1754 -0.56027 0.579204 +13.4671 -0.654735 0.676863 +12.7605 -0.698236 0.721834 +14.5444 -0.884698 0.914597 +14.5328 -0.972913 1.00579 +15.8129 -1.15552 1.19458 +15.4997 -1.22781 1.2693 +18.0643 -1.5421 1.59422 +28.7519 -2.63174 2.72068 +31.8866 -3.11572 3.22102 +36.3958 -3.78179 3.9096 +42.1743 -4.64417 4.80112 +46.7499 -5.43921 5.62303 +53.4751 -6.55568 6.77724 +85.4449 -11.0104 11.3825 +93.8436 -12.6825 13.1111 +94.0728 -13.3068 13.7565 +94.6847 -13.9927 14.4656 +94.7007 -14.5967 15.09 +94.7088 -15.202 15.7158 +94.6116 -15.7923 16.326 +95.3801 -16.5339 17.0927 +95.3625 -17.1468 17.7263 +94.9505 -17.6888 18.2866 +94.9176 -18.3013 18.9199 +95.3572 -19.0107 19.6531 +95.1149 -19.5885 20.2505 +95.6305 -20.3275 21.0145 +95.4671 -20.9278 21.6351 +95.9616 -21.6781 22.4107 +94.8324 -22.061 22.8065 +95.4028 -22.8392 23.611 +95.9609 -23.626 24.4245 +95.6607 -24.2074 25.0255 +96.1026 -24.9816 25.8259 +95.5986 -25.5139 26.3762 +96.2982 -26.3733 27.2646 +95.9635 -26.9565 27.8675 +96.3606 -27.7506 28.6884 +95.9166 -28.307 29.2636 +94.0904 -28.4443 29.4056 +94.7347 -29.3251 30.3162 +94.181 -29.8411 30.8497 +94.6185 -30.6758 31.7125 +94.1396 -31.2188 32.2739 +93.8341 -31.8192 32.8946 +94.1471 -32.6355 33.7385 +94.4467 -33.458 34.5888 +93.757 -33.9335 35.0803 +94.0339 -34.7621 35.9369 +94.385 -35.63 36.8341 +93.9342 -36.2013 37.4247 +94.4336 -37.1464 38.4018 +93.6173 -37.5788 38.8488 +90.2987 -36.9809 38.2307 +89.8311 -37.5274 38.7957 +87.1398 -37.1265 38.3812 +86.4161 -37.5432 38.812 +84.0018 -37.2069 38.4643 +82.8607 -37.4122 38.6766 +80.8869 -37.2228 38.4808 +80.4166 -37.7121 38.9866 +79.0337 -37.7655 39.0418 +77.8194 -37.8846 39.165 +75.4685 -37.4267 38.6916 +75.2386 -38.0057 39.2902 +73.3117 -37.7164 38.991 +72.3564 -37.9087 39.1898 +69.6564 -37.1612 38.4171 +69.1873 -37.5824 38.8525 +67.4608 -37.3082 38.5691 +67.4563 -37.9786 39.2621 +64.8936 -37.1924 38.4494 +64.4243 -37.5847 38.8549 +62.5814 -37.1614 38.4173 +62.1126 -37.5397 38.8084 +60.2909 -37.0858 38.3392 +60.492 -37.8689 39.1487 +58.761 -37.436 38.7011 +58.2889 -37.7911 39.0683 +56.4341 -37.234 38.4923 +55.9646 -37.575 38.8448 +54.0644 -36.9384 38.1868 +53.6694 -37.3142 38.5753 +51.8673 -36.6962 37.9364 +52.0299 -37.4597 38.7257 +50.3187 -36.8661 38.112 +49.9223 -37.2209 38.4788 +48.3047 -36.6509 37.8895 +48.3781 -37.3559 38.6184 +46.6485 -36.6587 37.8976 +46.3178 -37.0452 38.2972 +45.2665 -36.849 38.0944 +44.738 -37.069 38.3218 +42.9989 -36.2661 37.4917 +42.8567 -36.7957 38.0392 +41.9575 -36.6735 37.9129 +41.5571 -36.9814 38.2312 +40.3 -36.5151 37.7491 +40.3818 -37.2579 38.5171 +39.3178 -36.9426 38.1911 +38.8526 -37.1798 38.4363 +37.6876 -36.7349 37.9763 +37.1678 -36.9052 38.1524 +36.6465 -37.072 38.3249 +36.1798 -37.2929 38.5532 +34.6064 -36.3514 37.58 +34.639 -37.0848 38.3381 +33.6887 -36.7658 38.0083 +33.1729 -36.9099 38.1573 +32.1337 -36.4577 37.6898 +32.2929 -37.3664 38.6292 +31.2644 -36.9019 38.1491 +30.8 -37.0902 38.3437 +29.9394 -36.7915 38.0349 +29.4764 -36.9718 38.2213 +28.5818 -36.5993 37.8362 +28.5439 -37.3238 38.5852 +27.6587 -36.9405 38.189 +27.2394 -37.1689 38.4251 +26.3257 -36.7105 37.9512 +25.8639 -36.8688 38.1149 +25.0557 -36.5224 37.7567 +24.9345 -37.1771 38.4335 +23.7619 -36.2515 37.4766 +23.7127 -37.0294 38.2808 +22.9281 -36.6618 37.9008 +22.467 -36.7995 38.0431 +22.0043 -36.9344 38.1826 +21.5399 -37.0665 38.3192 +20.744 -36.6135 37.8509 +20.6778 -37.452 38.7177 +19.9268 -37.055 38.3073 +19.4267 -37.1092 38.3633 +18.9268 -37.1602 38.416 +18.1993 -36.7477 37.9896 +17.7373 -36.8567 38.1023 +17.305 -37.029 38.2805 +16.7794 -37 38.2504 +16.3728 -37.2334 38.4917 +15.6208 -36.6646 37.9038 +15.1876 -36.8248 38.0694 +14.511 -36.3796 37.6091 +14.2609 -37.0035 38.2541 +13.6207 -36.6174 37.8549 +13.1606 -36.6987 37.939 +12.5127 -36.2363 37.4609 +12.2148 -36.7851 38.0282 +11.6877 -36.6541 37.8929 +11.3728 -37.1997 38.4569 +10.8057 -36.9266 38.1746 +10.3609 -37.0591 38.3115 +9.76782 -36.642 37.8803 +9.44646 -37.2476 38.5064 +8.84655 -36.7549 37.997 +8.40053 -36.8759 38.1221 +7.93737 -36.9254 38.1734 +7.58493 -37.5229 38.7911 +6.89178 -36.3957 37.6257 +6.54438 -37.0572 38.3096 +5.97713 -36.4738 37.7065 +5.61318 -37.131 38.3858 +5.07024 -36.61 37.8473 +4.67155 -37.1241 38.3788 +4.12695 -36.458 37.6901 +3.66919 -36.4817 37.7146 +3.21726 -36.5719 37.8079 +2.79997 -37.1455 38.4008 +2.25512 -35.9108 37.1244 +1.83571 -36.5485 37.7836 +1.35858 -36.0717 37.2907 +0.924978 -36.8432 38.0883 +0.454652 -36.2217 37.4458 +3.23908e-15 -36.7793 38.0223 +-0.460761 -36.7084 37.949 +-0.935449 -37.2603 38.5195 +-1.37691 -36.5582 37.7937 +-1.86712 -37.1738 38.4301 +-2.33364 -37.1611 38.4169 +-2.79474 -37.076 38.329 +-3.21726 -36.5719 37.8079 +-3.73197 -37.1059 38.3599 +-4.18972 -37.0125 38.2633 +-4.72384 -37.5398 38.8085 +-5.10858 -36.8868 38.1334 +-5.65499 -37.4075 38.6717 +-6.12429 -37.3718 38.6348 +-6.61751 -37.4713 38.7377 +-6.98315 -36.8782 38.1246 +-7.54318 -37.3164 38.5775 +-7.87824 -36.6503 37.8889 +-8.47875 -37.2192 38.477 +-8.92908 -37.0978 38.3515 +-9.51592 -37.5215 38.7896 +-9.76782 -36.642 37.8803 +-10.3609 -37.0591 38.3115 +-10.6662 -36.4497 37.6816 +-11.3104 -36.9957 38.246 +-11.5795 -36.3147 37.542 +-12.2373 -36.8528 38.0982 +-12.6761 -36.7096 37.9502 +-13.3541 -37.2384 38.4969 +-13.5956 -36.5501 37.7854 +-14.3127 -37.1378 38.3929 +-14.5378 -36.4466 37.6784 +-15.2427 -36.9585 38.2076 +-15.706 -36.8646 38.1105 +-16.4605 -37.4328 38.6979 +-16.6892 -36.8011 38.0448 +-17.4286 -37.2935 38.5539 +-17.6739 -36.7248 37.9659 +-18.6551 -37.668 38.941 +-18.9268 -37.1602 38.416 +-19.3241 -36.9132 38.1607 +-19.8217 -36.8597 38.1054 +-20.5703 -37.2573 38.5164 +-21.0738 -37.1958 38.4528 +-21.8021 -37.5177 38.7857 +-22.2722 -37.384 38.6475 +-22.7796 -37.3114 38.5724 +-23.2072 -37.1081 38.3622 +-24.1195 -37.6645 38.9374 +-24.5913 -37.5168 38.7847 +-25.4839 -37.9963 39.2804 +-25.6154 -37.3381 38.6 +-26.5215 -37.8062 39.0839 +-26.5488 -37.0217 38.2728 +-27.421 -37.4167 38.6812 +-27.8896 -37.2489 38.5078 +-28.7317 -37.5694 38.8391 +-29.059 -37.2104 38.4679 +-30.0097 -37.6407 38.9128 +-30.0378 -36.9126 38.1601 +-30.95 -37.2708 38.5304 +-31.4166 -37.0816 38.3348 +-32.3959 -37.4855 38.7524 +-32.8129 -37.2283 38.4865 +-33.7559 -37.5585 38.8278 +-34.1185 -37.235 38.4934 +-36.1096 -38.6592 39.9657 +-35.4344 -37.2211 38.479 +-36.2357 -37.3505 38.6128 +-37.2129 -37.645 38.9172 +-38.1428 -37.8734 39.1533 +-38.5587 -37.5839 38.8541 +-39.5579 -37.8547 39.1341 +-40.0911 -37.6692 38.9423 +-41.104 -37.9242 39.2059 +-41.5784 -37.6734 38.9466 +-42.6038 -37.9128 39.1941 +-43.078 -37.6529 38.9254 +-44.1783 -37.9304 39.2123 +-44.6527 -37.6609 38.9337 +-45.7022 -37.8679 39.1477 +-45.5913 -37.1134 38.3676 +-47.8923 -38.3046 39.5991 +-47.7086 -37.4918 38.7589 +-49.3818 -38.131 39.4196 +-49.8586 -37.8299 39.1084 +-50.8771 -37.9327 39.2147 +-51.3513 -37.6226 38.8941 +-53.0719 -38.2099 39.5012 +-53.6196 -37.936 39.2181 +-55.5786 -38.6416 39.9475 +-56.0615 -38.303 39.5974 +-57.9069 -38.879 40.1929 +-57.6673 -38.0476 39.3334 +-59.0202 -38.2653 39.5585 +-59.9406 -38.1875 39.4781 +-61.1608 -38.2876 39.5815 +-61.7888 -38.0073 39.2917 +-63.4711 -38.3607 39.6572 +-64.4064 -38.245 39.5376 +-65.9564 -38.4785 39.7789 +-66.4369 -38.0769 39.3637 +-68.078 -38.3287 39.624 +-68.5565 -37.9142 39.1955 +-71.315 -38.7381 40.0473 +-71.2431 -38.0077 39.2922 +-73.7141 -38.62 39.9252 +-74.196 -38.1713 39.4613 +-76.6139 -38.7005 40.0084 +-77.0967 -38.2342 39.5263 +-80.195 -39.041 40.3605 +-80.4347 -38.4348 39.7338 +-82.0747 -38.4897 39.7905 +-83.5554 -38.4508 39.7502 +-86.2153 -38.9269 40.2424 +-87.3754 -38.7011 40.0091 +-90.0627 -39.1275 40.4498 +-90.8914 -38.7248 40.0336 +-93.6884 -39.1388 40.4615 +-94.9515 -38.8864 40.2006 +-98.1207 -39.3865 40.7176 +-99.1335 -38.9951 40.313 +-102.243 -39.4033 40.735 +-103.525 -39.0801 40.4009 +-107.013 -39.5603 40.8973 +-107.949 -39.07 40.3904 +-112.712 -39.9287 41.2781 +-114.104 -39.5535 40.8903 +-119.629 -40.5665 41.9375 +-121.668 -40.348 41.7116 +-126.43 -40.9892 42.3745 +-129.396 -40.9991 42.3847 +-132.555 -41.0326 42.4193 +-133.982 -40.5039 41.8728 +-137.892 -40.6947 42.07 +-139.044 -40.0428 41.3961 +-137.316 -38.5725 39.8761 +-15.538 -4.25539 4.39921 +-51.4403 -13.7287 14.1927 +-43.8363 -11.3951 11.7802 +-40.5947 -10.2727 10.6199 +-38.554 -9.49219 9.81298 +-15.3174 -3.66694 3.79087 +-15.5525 -3.618 3.74027 +-15.5973 -3.5235 3.64258 +-15.4502 -3.38691 3.50138 +-15.3965 -3.27272 3.38332 +-15.2452 -3.13969 3.24579 +-14.5151 -2.89376 2.99156 +-12.9126 -2.48972 2.57386 +-13.7161 -2.55524 2.6416 +-13.1668 -2.36748 2.44749 +-13.002 -2.25386 2.33003 +-11.9602 -1.99636 2.06383 +-12.9591 -2.08012 2.15041 +-13.2776 -2.04656 2.11572 +-12.8137 -1.89364 1.95764 +-13.425 -1.89899 1.96317 +-13.0556 -1.7644 1.82403 +-13.2739 -1.71047 1.76827 +-13.3934 -1.64194 1.69743 +-13.4135 -1.56062 1.61336 +-13.4326 -1.47917 1.52916 +-14.3407 -1.49011 1.54047 +-12.7745 -1.24822 1.29041 +-13.2854 -1.21605 1.25714 +-13.3001 -1.1354 1.17377 +-13.6119 -1.07827 1.11471 +-13.3266 -0.973838 1.00675 +-12.8406 -0.859627 0.888679 +-12.8509 -0.781689 0.808106 +-11.8633 -0.649139 0.671077 +-12.0705 -0.586837 0.606669 +-11.8778 -0.505092 0.522162 +-10.6853 -0.389343 0.402501 +-10.5899 -0.321465 0.332329 +-11.3931 -0.276612 0.285961 +-10.7963 -0.196558 0.203201 +-10.7984 -0.131047 0.135476 +-10.4996 -0.0637058 0.0658588 +10.8 0 0 +10.4996 -0.0631089 0.0664309 +11.0983 -0.133425 0.140449 +10.4964 -0.189308 0.199273 +11.8928 -0.286039 0.301096 +12.4881 -0.375534 0.395301 +11.7838 -0.425345 0.447735 +12.8759 -0.542406 0.570958 +14.1654 -0.682233 0.718145 +14.0565 -0.76194 0.802048 +14.3452 -0.864405 0.909906 +15.4286 -1.02321 1.07707 +16.0118 -1.1591 1.22011 +16.1952 -1.27088 1.33778 +20.1487 -1.70393 1.79362 +24.1913 -2.19355 2.30901 +33.5701 -3.24949 3.42054 +37.2859 -3.83798 4.04001 +39.4088 -4.29898 4.52527 +48.6239 -5.60423 5.89923 +53.2781 -6.47034 6.81094 +65.8781 -8.40946 8.85213 +93.8436 -12.5636 13.225 +93.8768 -13.1547 13.8471 +94.6847 -13.8617 14.5913 +94.7007 -14.46 15.2211 +94.7088 -15.0596 15.8523 +94.6116 -15.6443 16.4678 +95.283 -16.3624 17.2237 +95.3625 -16.9862 17.8803 +94.9505 -17.523 18.4454 +95.5921 -18.2587 19.2198 +95.3572 -18.8325 19.8239 +95.1149 -19.405 20.4264 +95.7261 -20.1571 21.2182 +95.3717 -20.711 21.8012 +95.2008 -21.3047 22.4262 +95.6859 -22.0509 23.2117 +95.4028 -22.6252 23.8162 +95.9609 -23.4047 24.6367 +95.5667 -23.957 25.218 +95.2596 -24.5305 25.8217 +95.5986 -25.2749 26.6053 +96.2052 -26.1009 27.4748 +95.8708 -26.6781 28.0824 +96.2682 -27.4642 28.9099 +96.0087 -28.0687 29.5462 +95.6494 -28.6446 30.1525 +94.3692 -28.9383 30.4616 +94.454 -29.6472 31.2078 +93.8935 -30.1556 31.743 +94.1396 -30.9263 32.5543 +93.7442 -31.491 33.1486 +93.3417 -32.0532 33.7404 +94.3576 -33.1133 34.8563 +93.6683 -33.5838 35.3516 +93.769 -34.3395 36.1471 +94.5607 -35.3619 37.2233 +93.8467 -35.8287 37.7147 +93.1281 -36.2896 38.1998 +94.0504 -37.399 39.3676 +92.4528 -37.5084 39.4828 +91.8026 -37.9917 39.9915 +88.5893 -37.3904 39.3586 +88.1122 -37.9214 39.9176 +85.5199 -37.5244 39.4997 +84.7896 -37.9245 39.9208 +82.8049 -37.7484 39.7354 +81.5773 -37.898 39.8929 +79.5282 -37.6457 39.6273 +79.0482 -38.1222 40.1289 +77.5852 -38.1159 40.1223 +77.0993 -38.5808 40.6116 +74.5175 -37.9776 39.9767 +74.0335 -38.424 40.4466 +72.1158 -38.1128 40.119 +69.6602 -37.4847 39.4579 +68.4782 -37.516 39.4909 +68.1557 -38.0129 40.0139 +66.2826 -37.6325 39.6134 +66.4927 -38.4279 40.4508 +63.9501 -37.6184 39.5986 +63.3956 -37.9562 39.9541 +61.6391 -37.5598 39.537 +61.1608 -37.9289 39.9254 +60.0144 -37.8763 39.87 +58.874 -37.8128 39.8033 +57.8123 -37.786 39.775 +57.3314 -38.132 40.1392 +55.5622 -37.6061 39.5857 +55.0836 -37.9387 39.9357 +53.199 -37.2858 39.2485 +53.3498 -38.05 40.0529 +51.6954 -37.5199 39.4949 +51.2181 -37.8292 39.8205 +49.4532 -37.1708 39.1274 +49.1142 -37.5689 39.5465 +47.9737 -37.3469 39.3128 +47.4331 -37.5818 39.5601 +45.916 -37.0275 38.9766 +45.895 -37.6714 39.6544 +44.3983 -37.0955 39.0482 +43.9895 -37.4145 39.3839 +43.0158 -37.2462 39.2068 +42.85 -37.7747 39.7631 +41.7002 -37.4297 39.4 +40.8031 -37.2939 39.257 +39.7936 -37.0394 38.9891 +39.2053 -37.1657 39.1221 +38.791 -37.4561 39.4277 +38.2002 -37.5749 39.5528 +37.2695 -37.349 39.315 +36.6831 -37.4574 39.4292 +35.6551 -37.1021 39.0551 +35.1837 -37.315 39.2792 +34.6558 -37.4669 39.4392 +34.2328 -37.7322 39.7184 +33.1264 -37.2319 39.1917 +32.6534 -37.4295 39.3998 +31.7211 -37.0903 39.0427 +31.3 -37.3392 39.3047 +30.3333 -36.9264 38.8702 +29.8643 -37.1073 39.0606 +29.059 -36.8617 38.8021 +29.0133 -37.5823 39.5606 +28.0743 -37.1443 39.0996 +28.0566 -37.9253 39.9216 +26.7719 -36.983 38.9298 +26.653 -37.6377 39.619 +25.4432 -36.7397 38.6736 +25.3571 -37.453 39.4245 +24.4669 -36.9772 38.9237 +24.0381 -37.1858 39.1432 +23.5262 -37.2657 39.2273 +23.1704 -37.5959 39.5749 +22.0043 -36.5884 38.5143 +21.9145 -37.3578 39.3243 +21.4037 -37.424 39.394 +20.9287 -37.5512 39.5279 +20.207 -37.224 39.1835 +19.7346 -37.3441 39.3098 +18.9268 -36.812 38.7498 +18.7202 -37.4453 39.4164 +17.7691 -36.5767 38.502 +17.5831 -37.2716 39.2335 +17.0199 -37.1788 39.1359 +16.8406 -37.9384 39.9354 +16.0185 -37.2456 39.2062 +15.6011 -37.4729 39.4455 +14.9921 -37.2335 39.1934 +14.5197 -37.3221 39.2867 +13.821 -36.8078 38.7453 +13.5718 -37.491 39.4645 +12.8862 -36.9684 38.9143 +12.5523 -37.447 39.4182 +12.0124 -37.3193 39.2838 +11.4975 -37.2554 39.2165 +11.0051 -37.2556 39.2167 +10.5327 -37.3203 39.2848 +9.93184 -36.9082 38.851 +9.60274 -37.5091 39.4835 +8.99509 -37.0219 38.9707 +8.66647 -37.6868 39.6706 +8.07039 -37.1925 39.1503 +7.59885 -37.2396 39.1998 +7.10062 -37.1473 39.1027 +6.75156 -37.8722 39.8657 +6.1809 -37.3638 39.3306 +5.70725 -37.3996 39.3683 +5.22359 -37.3639 39.3307 +4.74999 -37.3939 39.3622 +4.19756 -36.7344 38.668 +3.79475 -37.3766 39.344 +3.31494 -37.3292 39.2942 +2.84708 -37.4165 39.386 +2.33364 -36.8129 38.7507 +1.89853 -37.445 39.4161 +1.40308 -36.9042 38.8468 +0.951156 -37.531 39.5066 +0.468615 -36.9843 38.9311 +3.28807e-15 -36.9857 38.9326 +-0.468615 -36.9843 38.9311 +-0.951156 -37.531 39.5066 +-1.40047 -36.8354 38.7743 +-1.90202 -37.5138 39.4885 +-2.37289 -37.4322 39.4025 +-2.85231 -37.4853 39.4584 +-3.32104 -37.3979 39.3665 +-3.84358 -37.8575 39.8503 +-4.25248 -37.215 39.174 +-4.80228 -37.8055 39.7956 +-5.18526 -37.0896 39.042 +-5.73861 -37.6051 39.5846 +-6.12429 -37.0217 38.9704 +-6.72719 -37.7354 39.7218 +-7.08757 -37.079 39.0308 +-7.66844 -37.5806 39.5589 +-8.1443 -37.5331 39.5088 +-8.61954 -37.4827 39.4558 +-8.99509 -37.0219 38.9707 +-9.62011 -37.5769 39.5549 +-9.89539 -36.7727 38.7084 +-10.5327 -37.3203 39.2848 +-10.8456 -36.7157 38.6483 +-11.4767 -37.188 39.1455 +-11.7743 -36.5797 38.5052 +-12.4173 -37.0444 38.9944 +-12.9095 -37.0354 38.9849 +-13.5718 -37.491 39.4645 +-13.821 -36.8078 38.7453 +-14.5456 -37.3886 39.3567 +-15.0188 -37.2998 39.2632 +-15.6838 -37.6716 39.6546 +-15.9617 -37.1136 39.0672 +-16.4605 -37.0821 39.0341 +-17.2004 -37.5729 39.5507 +-17.7067 -37.5336 39.5093 +-18.1816 -37.4257 39.3958 +-18.6876 -37.3802 39.3479 +-19.1271 -37.2016 39.1598 +-19.8714 -37.6029 39.5823 +-20.4521 -37.6756 39.6588 +-21.2154 -38.0657 40.0694 +-21.367 -37.3599 39.3265 +-22.1767 -37.8048 39.7948 +-22.6166 -37.6065 39.586 +-23.0922 -37.4691 39.4414 +-23.6059 -37.3921 39.3604 +-24.4449 -37.815 39.8056 +-24.9231 -37.6667 39.6494 +-25.4839 -37.6403 39.6216 +-26.0029 -37.5479 39.5243 +-26.916 -38.0092 40.01 +-27.3519 -37.7843 39.7732 +-28.1928 -38.1094 40.1154 +-28.3052 -37.4498 39.4211 +-29.0603 -37.6431 39.6246 +-29.5361 -37.467 39.4392 +-30.446 -37.8302 39.8215 +-30.9242 -37.6457 39.6274 +-31.8 -37.9356 39.9325 +-31.8734 -37.2683 39.2301 +-33.323 -38.197 40.2077 +-33.9102 -38.1127 40.1189 +-34.6567 -38.1995 40.2103 +-35.623 -38.5126 40.5399 +-36.3274 -38.528 40.5561 +-36.3726 -37.8488 39.8411 +-37.2422 -38.0284 40.0302 +-37.666 -37.7464 39.7333 +-39.1753 -38.5341 40.5625 +-39.0813 -37.7364 39.7229 +-40.6747 -38.5588 40.5885 +-40.6264 -37.8145 39.8051 +-42.1872 -38.559 40.5887 +-42.1263 -37.8123 39.8027 +-43.712 -38.5346 40.563 +-43.6383 -37.7852 39.7742 +-45.3111 -38.5385 40.5671 +-45.7976 -38.2647 40.2789 +-46.9235 -38.5156 40.543 +-46.8252 -37.7608 39.7484 +-48.4828 -38.4135 40.4355 +-48.9014 -38.069 40.073 +-49.9841 -38.2343 40.247 +-51.0746 -38.3895 40.4103 +-52.1729 -38.5344 40.5628 +-52.6591 -38.2193 40.2312 +-54.5307 -38.8923 40.9395 +-55.0214 -38.5631 40.593 +-56.0029 -38.5718 40.6022 +-57.1314 -38.6682 40.7036 +-58.2665 -38.7539 40.7939 +-58.7553 -38.4023 40.4237 +-60.1173 -38.6114 40.6438 +-60.6779 -38.2951 40.3109 +-62.6471 -38.8506 40.8957 +-62.9872 -38.3813 40.4017 +-64.6031 -38.6791 40.7152 +-65.0908 -38.2894 40.3049 +-67.3353 -38.9149 40.9633 +-67.8258 -38.5087 40.5358 +-69.4768 -38.7497 40.7895 +-70.826 -38.8023 40.8449 +-72.2606 -38.884 40.9308 +-72.7505 -38.4482 40.4721 +-75.1516 -39.0043 41.0574 +-76.1252 -38.7969 40.8391 +-78.4746 -39.269 41.3361 +-79.2134 -38.9159 40.9643 +-81.5875 -39.3469 41.4181 +-82.083 -38.855 40.9003 +-84.4789 -39.246 41.3119 +-85.4733 -38.9648 41.0159 +-88.1443 -39.425 41.5003 +-89.1465 -39.1157 41.1747 +-91.5892 -39.4179 41.4928 +-93.5346 -39.4777 41.5557 +-96.3456 -39.8718 41.9706 +-96.8471 -39.2912 41.3594 +-99.8527 -39.7063 41.7964 +-100.7 -39.2403 41.3058 +-104.779 -40.0026 42.1083 +-106.513 -39.8313 41.928 +-108.779 -39.8364 41.9333 +-110.699 -39.6899 41.7791 +-114.94 -40.3363 42.4596 +-116.52 -40.0128 42.119 +-122.775 -41.2432 43.4142 +-124.828 -41.0078 43.1664 +-128.877 -41.3911 43.5699 +-132.126 -41.4719 43.6549 +-135.479 -41.5445 43.7314 +-136.825 -40.9759 43.1328 +-138.076 -40.3673 42.4921 +-137.75 -39.2986 41.3672 +-136.945 -38.108 40.1139 +-14.6076 -3.9631 4.17171 +-49.4798 -13.0817 13.7703 +-44.4919 -11.4572 12.0603 +-42.3801 -10.624 11.1832 +-39.4967 -9.63316 10.1402 +-16.452 -3.90168 4.10706 +-15.5525 -3.5841 3.77276 +-15.8826 -3.55433 3.74143 +-15.1641 -3.29305 3.46639 +-15.6834 -3.30247 3.47631 +-15.3411 -3.12984 3.29459 +-14.4189 -2.84767 2.99756 +-14.8399 -2.83452 2.98372 +-14.0059 -2.58478 2.72084 +-13.07 -2.32805 2.4506 +-12.7109 -2.18276 2.29766 +-12.8353 -2.12236 2.23408 +-11.9848 -1.90569 2.00601 +-11.8132 -1.80377 1.89872 +-13.4006 -1.96182 2.06509 +-12.445 -1.74389 1.83568 +-11.8777 -1.59017 1.67388 +-13.4706 -1.71955 1.81006 +-13.6888 -1.66244 1.74994 +-13.3149 -1.53462 1.61541 +-13.5313 -1.47609 1.55379 +-13.1539 -1.35399 1.42526 +-13.4676 -1.30363 1.37225 +-13.7811 -1.2496 1.31538 +-14.2927 -1.2087 1.27232 +-13.8106 -1.08376 1.1408 +-13.8239 -1.00071 1.05339 +-13.3383 -0.884578 0.931142 +-13.0502 -0.78637 0.827764 +-13.1593 -0.713308 0.750855 +-11.5717 -0.557317 0.586653 +-11.3787 -0.479335 0.504567 +-10.8851 -0.392904 0.413586 +-10.6898 -0.321457 0.338378 +-11.7928 -0.283636 0.298566 +-10.5964 -0.191111 0.201171 +-10.1984 -0.122607 0.129061 +-10.4996 -0.0631089 0.0664309 +11.1 0 0 +10.4996 -0.0625069 0.0669976 +11.8982 -0.141677 0.151856 +11.3961 -0.203573 0.218199 +11.0932 -0.264264 0.28325 +12.0885 -0.36005 0.385917 +12.383 -0.44271 0.474516 +13.7743 -0.574714 0.616003 +14.3649 -0.68524 0.73447 +15.0535 -0.808196 0.866259 +16.5368 -0.986967 1.05787 +14.9309 -0.980759 1.05122 +16.1113 -1.15517 1.23816 +17.9837 -1.39777 1.49819 +21.2405 -1.77912 1.90694 +20.9195 -1.87878 2.01376 +32.1837 -3.08558 3.30725 +36.6925 -3.74087 4.00963 +43.7546 -4.72752 5.06716 +49.5115 -5.6521 6.05817 +56.2325 -6.764 7.24995 +65.7798 -8.31683 8.91434 +92.6656 -12.2876 13.1704 +94.5627 -13.1244 14.0673 +94.5869 -13.7152 14.7006 +94.6031 -14.3073 15.3352 +94.5139 -14.8853 15.9547 +94.6116 -15.4951 16.6083 +95.283 -16.2063 17.3706 +95.1689 -16.79 17.9963 +94.8539 -17.3382 18.5838 +94.9176 -17.9569 19.247 +95.5494 -18.6906 20.0334 +95.019 -19.2005 20.5799 +95.6305 -19.9449 21.3779 +95.3717 -20.5135 21.9872 +95.1057 -21.0804 22.5949 +95.6859 -21.8406 23.4097 +95.4028 -22.4094 24.0193 +95.1125 -22.9765 24.6272 +95.5667 -23.7284 25.4332 +96.1026 -24.5115 26.2725 +95.5986 -25.0338 26.8323 +96.2982 -25.877 27.736 +95.9635 -26.4492 28.3494 +96.3606 -27.2283 29.1845 +96.0087 -27.801 29.7983 +96.6581 -28.6707 30.7305 +95.1001 -28.8843 30.9594 +94.545 -29.3927 31.5044 +93.9841 -29.8967 32.0446 +94.3202 -30.6901 32.8949 +94.4633 -31.4298 33.6878 +93.5206 -31.8083 34.0936 +94.2685 -32.7665 35.1205 +93.757 -33.2949 35.6869 +93.8573 -34.0439 36.4897 +94.2092 -34.8943 37.4012 +93.9342 -35.52 38.0719 +93.4762 -36.0778 38.6698 +93.6173 -36.8717 39.5207 +94.1761 -37.843 40.5618 +92.2312 -37.805 40.521 +90.1241 -37.6753 40.3821 +89.3843 -38.102 40.8394 +86.7006 -37.6796 40.3867 +85.4605 -37.8599 40.5799 +83.8055 -37.8402 40.5587 +82.5721 -37.9943 40.7239 +81.094 -38.0207 40.7523 +80.8503 -38.6194 41.394 +78.0737 -37.99 40.7194 +77.8274 -38.5736 41.3449 +75.8841 -38.3051 41.0571 +74.6724 -38.3859 41.1437 +73.0678 -38.2476 40.9954 +71.8666 -38.3031 41.0549 +69.4173 -37.6678 40.374 +68.8551 -38.0367 40.7694 +67.903 -38.1848 40.9281 +66.9523 -38.3244 41.0778 +65.3189 -38.057 40.7912 +64.6031 -38.3102 41.0625 +63.6612 -38.4221 41.1824 +62.2012 -38.2061 40.951 +60.6779 -37.9298 40.6548 +60.1904 -38.2896 41.0404 +58.3926 -37.8011 40.5169 +57.9788 -38.1948 40.9388 +56.8461 -38.1081 40.8459 +55.6493 -37.9627 40.69 +54.6008 -37.9033 40.6264 +53.4192 -37.7361 40.4472 +52.2461 -37.5579 40.2562 +51.8319 -37.9174 40.6415 +50.1288 -37.3192 40.0003 +49.6495 -37.6161 40.3186 +48.6363 -37.5015 40.1958 +48.0891 -37.7382 40.4494 +47.085 -37.608 40.3099 +46.5378 -37.8346 40.5528 +45.4796 -37.6365 40.3405 +44.3671 -37.3757 40.0609 +43.2025 -37.0511 39.713 +43.2194 -37.7369 40.4481 +42.3089 -37.6139 40.3163 +41.6456 -37.7009 40.4095 +40.8643 -37.6732 40.3798 +39.8518 -37.4184 40.1066 +38.7329 -37.0432 39.7046 +38.7164 -37.7195 40.4294 +37.7227 -37.4425 40.1325 +37.1863 -37.6091 40.3111 +36.2623 -37.374 40.059 +36.2185 -38.0461 40.7795 +35.2469 -37.7425 40.454 +34.7097 -37.893 40.6154 +33.6489 -37.4583 40.1495 +33.22 -37.7157 40.4254 +32.2287 -37.3243 40.0058 +31.75 -37.5147 40.2099 +31.2197 -37.6429 40.3473 +30.7369 -37.8273 40.545 +29.9656 -37.6491 40.354 +29.4359 -37.7659 40.4791 +28.4899 -37.3346 40.0168 +28.4652 -38.1106 40.8486 +27.1734 -37.1797 39.8508 +27.0037 -37.7692 40.4827 +26.1751 -37.436 40.1255 +25.7797 -37.714 40.4235 +24.8816 -37.2453 39.9211 +24.4449 -37.4543 40.1452 +24.0047 -37.6609 40.3666 +23.522 -37.8024 40.5183 +22.6931 -37.3738 40.0589 +22.1767 -37.4442 40.1343 +21.4403 -37.1305 39.7981 +21.2154 -37.7026 40.4112 +20.4871 -37.3801 40.0656 +20.0082 -37.5006 40.1948 +19.2273 -37.0396 39.7006 +18.7853 -37.2171 39.8909 +18.3085 -37.3276 40.0093 +17.7994 -37.3703 40.0551 +17.3507 -37.5399 40.2369 +16.9576 -37.8374 40.5558 +16.2173 -37.3482 40.0315 +15.9318 -37.9024 40.6254 +15.2326 -37.4699 40.1618 +14.7527 -37.5592 40.2575 +14.0714 -37.1172 39.7838 +13.7895 -37.7291 40.4397 +13.213 -37.5444 40.2417 +12.7772 -37.7545 40.467 +12.099 -37.2297 39.9045 +11.6431 -37.3671 40.0517 +11.1646 -37.435 40.1245 +10.7235 -37.6339 40.3377 +10.1141 -37.2268 39.9013 +9.75903 -37.7559 40.4684 +9.27568 -37.8126 40.5292 +8.80726 -37.9338 40.659 +8.20342 -37.445 40.1351 +7.71019 -37.4248 40.1136 +7.2442 -37.5369 40.2337 +6.84906 -38.0526 40.7864 +6.28278 -37.6174 40.32 +5.79088 -37.5856 40.2858 +5.31944 -37.6865 40.3941 +4.82843 -37.6488 40.3536 +4.27602 -37.064 39.7269 +3.85753 -37.6325 40.3362 +3.32104 -37.0412 39.7024 +2.85231 -37.1277 39.7951 +2.40343 -37.5522 40.2501 +1.89853 -37.0879 39.7524 +1.44497 -37.6433 40.3477 +0.951156 -37.173 39.8436 +0.475596 -37.1772 39.8482 +3.34318e-15 -37.2469 39.9228 +-0.475596 -37.1772 39.8482 +-0.965118 -37.7187 40.4285 +-1.44759 -37.7115 40.4208 +-1.93343 -37.7696 40.4831 +-2.40343 -37.5522 40.2501 +-2.89941 -37.7408 40.4523 +-3.36988 -37.5859 40.2862 +-3.85753 -37.6325 40.3362 +-4.39371 -38.0842 40.8203 +-4.87201 -37.9886 40.7178 +-5.35778 -37.9581 40.6851 +-5.93722 -38.5354 41.3039 +-6.33938 -37.9563 40.6832 +-6.83687 -37.9848 40.7138 +-7.32252 -37.9428 40.6687 +-7.79369 -37.8301 40.548 +-8.27733 -37.7823 40.4967 +-8.66647 -37.3273 40.009 +-9.07762 -37.0052 39.6638 +-9.68957 -37.4872 40.1804 +-10.2052 -37.5622 40.2608 +-10.7044 -37.567 40.266 +-11.025 -36.967 39.6229 +-11.5391 -37.0335 39.6941 +-12.1639 -37.4296 40.1186 +-12.6647 -37.4222 40.1107 +-13.0963 -37.2128 39.8863 +-13.5718 -37.1334 39.8011 +-14.0213 -36.9851 39.6423 +-14.7786 -37.6251 40.3282 +-15.2326 -37.4699 40.1618 +-15.7389 -37.4433 40.1334 +-16.2173 -37.3482 40.0315 +-16.9576 -37.8374 40.5558 +-17.4409 -37.735 40.446 +-17.9848 -37.7595 40.4723 +-18.4989 -37.7157 40.4254 +-18.9481 -37.5397 40.2366 +-19.4609 -37.4897 40.1831 +-20.2818 -38.0135 40.7445 +-20.7673 -37.8913 40.6136 +-21.2512 -37.7662 40.4795 +-21.6602 -37.5113 40.2063 +-22.5139 -38.0134 40.7444 +-23.0758 -38.004 40.7344 +-23.522 -37.8024 40.5183 +-23.9648 -37.5984 40.2996 +-24.8516 -38.0775 40.8131 +-25.3378 -37.9281 40.653 +-25.8642 -37.8376 40.556 +-26.3042 -37.6207 40.3235 +-27.2228 -38.0758 40.8113 +-27.7535 -37.9733 40.7015 +-28.1928 -37.7459 40.4577 +-29.0902 -38.1212 40.86 +-29.5767 -37.9466 40.6728 +-30.0133 -37.7091 40.4183 +-30.8824 -38.0063 40.7368 +-31.3181 -37.7616 40.4746 +-32.4 -38.2827 41.033 +-32.8885 -38.0884 40.8248 +-33.838 -38.4174 41.1775 +-34.2759 -38.1563 40.8976 +-35.6106 -38.8765 41.6695 +-36.1603 -38.7205 41.5023 +-36.7631 -38.6182 41.3927 +-37.2557 -38.3979 41.1565 +-38.2488 -38.6837 41.4628 +-38.1758 -37.8923 40.6146 +-39.6341 -38.6135 41.3877 +-39.662 -37.9318 40.657 +-41.145 -38.6325 41.408 +-41.6971 -38.4409 41.2027 +-42.789 -38.7361 41.519 +-43.2221 -38.4257 41.1864 +-44.3276 -38.7045 41.4852 +-44.7588 -38.3858 41.1435 +-45.9404 -38.7011 41.4815 +-46.4973 -38.4787 41.2432 +-47.502 -38.6185 41.393 +-47.9942 -38.3343 41.0883 +-49.0732 -38.5105 41.2772 +-49.4977 -38.1658 40.9077 +-51.1885 -38.7822 41.5684 +-51.6827 -38.4759 41.2402 +-53.5369 -39.1647 41.9784 +-53.4163 -38.3991 41.1579 +-55.2253 -39.012 41.8148 +-55.7924 -38.7304 41.5129 +-57.0635 -38.9274 41.7241 +-57.9873 -38.8731 41.6659 +-58.6981 -38.6686 41.4467 +-59.4082 -38.4585 41.2215 +-61.2143 -38.9409 41.7386 +-61.9313 -38.7133 41.4946 +-62.9444 -38.6627 41.4403 +-64.3353 -38.8289 41.6185 +-65.6597 -38.9367 41.734 +-66.6116 -38.8101 41.5984 +-68.1014 -38.9822 41.7828 +-68.9832 -38.7923 41.5792 +-71.2643 -39.3676 42.1959 +-71.7652 -38.9418 41.7395 +-73.4426 -39.143 41.9552 +-74.6545 -39.0782 41.8857 +-76.3496 -39.248 42.0677 +-77.4918 -39.1166 41.9269 +-79.4455 -39.3756 42.2045 +-80.3532 -39.0993 41.9083 +-82.079 -39.2064 42.0231 +-83.484 -39.1413 41.9533 +-86.137 -39.6346 42.482 +-87.1411 -39.3462 42.173 +-89.0668 -39.4576 42.2924 +-90.6646 -39.4023 42.2331 +-93.1157 -39.6925 42.5442 +-95.0694 -39.7427 42.5979 +-97.1171 -39.8076 42.6675 +-98.915 -39.7473 42.6029 +-100.979 -39.7709 42.6282 +-103.05 -39.7729 42.6303 +-106.179 -40.1501 43.0347 +-107.743 -39.9072 42.7742 +-111.075 -40.289 43.1835 +-112.828 -40.0673 42.9458 +-116.811 -40.6019 43.5189 +-120.279 -40.9095 43.8486 +-124.573 -41.4478 44.4256 +-126.723 -41.2334 44.1957 +-130.508 -41.5152 44.4978 +-133.582 -41.5289 44.5125 +-136.301 -41.398 44.3722 +-137.284 -40.721 43.6465 +-137.8 -39.9022 42.7689 +-137.843 -38.9499 41.7481 +-136.667 -37.6678 40.374 +-15.8171 -4.25032 4.55568 +-14.7506 -3.86263 4.14013 +-45.2413 -11.539 12.368 +-42.2862 -10.4993 11.2536 +-40.2508 -9.72348 10.422 +-15.9793 -3.75341 4.02306 +-15.5525 -3.54991 3.80495 +-15.5973 -3.45719 3.70557 +-16.4993 -3.54883 3.80379 +-15.6834 -3.27097 3.50597 +-16.0123 -3.23561 3.46806 +-15.3802 -3.00854 3.22468 +-13.9726 -2.64341 2.83332 +-15.165 -2.772 2.97115 +-13.1668 -2.32293 2.48982 +-14.5544 -2.4755 2.65335 +-13.2242 -2.16582 2.32142 +-11.4976 -1.81078 1.94088 +-11.4227 -1.7275 1.85161 +-13.3028 -1.92892 2.0675 +-13.7189 -1.90406 2.04085 +-13.0556 -1.7312 1.85558 +-13.1756 -1.66585 1.78553 +-13.9843 -1.68211 1.80296 +-14.4984 -1.6551 1.77401 +-13.8276 -1.49402 1.60136 +-13.4506 -1.37132 1.46984 +-13.4676 -1.29119 1.38395 +-13.2854 -1.19316 1.27888 +-13.5979 -1.13897 1.2208 +-13.5126 -1.05025 1.12571 +-13.5255 -0.969776 1.03945 +-13.5374 -0.889218 0.953102 +-13.8471 -0.82643 0.885804 +-12.3618 -0.663685 0.711367 +-12.27 -0.585311 0.627362 +-12.1772 -0.50808 0.544582 +-11.7838 -0.421288 0.451555 +-11.6889 -0.348147 0.373159 +-10.2937 -0.245219 0.262836 +-11.0962 -0.198216 0.212457 +-10.5984 -0.1262 0.135267 +-10.4996 -0.0625069 0.0669976 +10.5 0 0 +11.0996 -0.065437 0.0714194 +11.0983 -0.130869 0.142834 +10.7963 -0.190986 0.208446 +11.493 -0.271129 0.295916 +11.9886 -0.353606 0.385934 +12.6826 -0.449017 0.490067 +14.5728 -0.602125 0.657173 +20.3503 -0.96133 1.04922 +14.6547 -0.779147 0.85038 +21.2189 -1.25411 1.36876 +16.7227 -1.08778 1.18723 +18.1003 -1.28518 1.40268 +19.474 -1.4989 1.63593 +22.3323 -1.8524 2.02176 +20.6221 -1.83408 2.00176 +34.2633 -3.25304 3.55045 +38.4727 -3.88428 4.23939 +43.9521 -4.70274 5.13268 +50.8923 -5.75331 6.27929 +56.7249 -6.75693 7.37468 +68.4345 -8.56843 9.35178 +92.6656 -12.1683 13.2808 +94.6607 -13.0104 14.1998 +94.4891 -13.568 14.8084 +94.5055 -14.1538 15.4477 +94.7088 -14.7711 16.1215 +94.6116 -15.3446 16.7475 +95.283 -16.0489 17.5161 +95.1689 -16.6269 18.147 +95.7232 -17.3272 18.9113 +95.5921 -17.9089 19.5462 +95.3572 -18.4717 20.1605 +95.1149 -19.0332 20.7733 +95.6305 -19.7512 21.557 +95.3717 -20.3142 22.1714 +95.9616 -21.0636 22.9893 +95.6859 -21.6285 23.6058 +95.4028 -22.1917 24.2206 +95.1125 -22.7533 24.8335 +95.5667 -23.498 25.6462 +95.9152 -24.2261 26.4409 +95.5986 -24.7907 27.0571 +96.2982 -25.6256 27.9684 +95.8708 -26.167 28.5593 +96.453 -26.9898 29.4573 +96.1007 -27.5573 30.0767 +95.7411 -28.1228 30.6939 +96.5618 -29.0434 31.6986 +93.726 -28.8551 31.4931 +94.1654 -29.6635 32.3754 +94.1396 -30.3338 33.107 +94.1037 -31.0061 33.8408 +93.4311 -31.4693 34.3463 +94.2685 -32.4482 35.4148 +93.757 -32.9715 35.9859 +93.8573 -33.7133 36.7954 +94.2092 -34.5554 37.7146 +93.5843 -35.044 38.2478 +94.2595 -36.0268 39.3205 +94.137 -36.7162 40.0729 +94.3484 -37.5441 40.9765 +94.3741 -38.3076 41.8098 +91.3178 -37.8036 41.2597 +90.0627 -38.0183 41.494 +88.1344 -37.9307 41.3985 +86.2153 -37.8234 41.2813 +85.2231 -38.1065 41.5903 +84.0644 -38.3053 41.8073 +81.4237 -37.8045 41.2607 +80.6046 -38.1281 41.6139 +79.2949 -38.2095 41.7028 +78.3128 -38.4373 41.9513 +77.0899 -38.5358 42.0589 +76.11 -38.7449 42.2871 +73.9405 -38.3285 41.8326 +72.8122 -38.4302 41.9436 +70.2 -37.7225 41.1712 +69.6323 -38.0924 41.5749 +67.903 -37.8139 41.271 +67.1821 -38.0825 41.5642 +65.547 -37.819 41.2765 +65.2824 -38.3369 41.8418 +63.8859 -38.1832 41.674 +63.1673 -38.4227 41.9355 +61.3415 -37.9721 41.4437 +60.7755 -38.2863 41.7865 +59.0455 -37.8526 41.3132 +58.5543 -38.1992 41.6915 +57.488 -38.1641 41.6532 +56.4271 -38.1194 41.6044 +55.2317 -37.9688 41.44 +54.1834 -37.9042 41.3695 +52.8656 -37.6342 41.0748 +52.4457 -37.9938 41.4673 +50.7368 -37.405 40.8246 +50.2517 -37.7027 41.1496 +49.1664 -37.5421 40.9743 +48.6796 -37.8306 41.2891 +47.6045 -37.6538 41.0962 +46.5378 -37.4672 40.8925 +45.9885 -37.688 41.1336 +44.9964 -37.5376 40.9694 +44.572 -37.8543 41.3151 +43.3426 -37.4769 40.9032 +42.4915 -37.4094 40.8295 +42.3076 -37.9282 41.3958 +40.8048 -37.253 40.6588 +40.3808 -37.5468 40.9795 +39.7782 -37.6734 41.1176 +39.3473 -37.9618 41.4324 +38.1758 -37.5243 40.9548 +37.6337 -37.6919 41.1378 +36.7038 -37.4616 40.8865 +36.6542 -38.1298 41.6158 +35.6767 -37.8317 41.2904 +35.1866 -38.0406 41.5184 +34.1714 -37.6706 41.1145 +33.6835 -37.8705 41.3328 +32.7362 -37.5438 40.9762 +32.25 -37.7354 41.1853 +31.8106 -37.9829 41.4554 +30.7369 -37.4599 40.8847 +29.9179 -37.2241 40.6273 +29.4828 -37.4587 40.8833 +28.5361 -37.0319 40.4175 +28.4652 -37.7404 41.1908 +27.5304 -37.3023 40.7126 +27.0475 -37.4631 40.8881 +26.5625 -37.6211 41.0606 +26.0755 -37.7763 41.2299 +25.2548 -37.4368 40.8594 +24.8109 -37.646 41.0877 +24.0446 -37.3571 40.7724 +23.4829 -37.3731 40.7898 +23.0758 -37.6349 41.0756 +22.5513 -37.7069 41.1542 +21.8068 -37.3984 40.8175 +21.2512 -37.3994 40.8186 +20.4521 -36.9538 40.3323 +20.2818 -37.6443 41.0859 +19.4609 -37.1256 40.5198 +19.3062 -37.8777 41.3406 +18.5623 -37.4775 40.9038 +18.0775 -37.5855 41.0217 +17.4109 -37.3041 40.7146 +16.9868 -37.5345 40.9661 +16.6149 -37.8924 41.3566 +16.0421 -37.794 41.2493 +15.4197 -37.5617 40.9957 +14.9597 -37.7164 41.1645 +14.2717 -37.2799 40.6882 +13.8137 -37.4282 40.85 +13.3064 -37.4425 40.8656 +12.7997 -37.4537 40.8779 +12.402 -37.7916 41.2466 +11.9757 -38.0615 41.5412 +11.344 -37.6672 41.1109 +10.8761 -37.7989 41.2546 +10.2416 -37.3302 40.7431 +9.89795 -37.9214 41.3883 +9.40771 -37.9784 41.4505 +8.8229 -37.632 41.0724 +8.20342 -37.0813 40.4714 +7.83545 -37.6634 41.1067 +7.33557 -37.6412 41.0825 +6.83687 -37.6159 41.0549 +6.37334 -37.7891 41.2439 +5.89541 -37.8924 41.3566 +5.31944 -37.3205 40.7325 +4.83714 -37.3504 40.7651 +4.34663 -37.3102 40.7212 +3.92031 -37.8735 41.336 +3.38209 -37.3558 40.771 +2.88894 -37.2394 40.6439 +2.40779 -37.255 40.661 +1.93343 -37.4028 40.8223 +1.4502 -37.4127 40.8331 +0.966863 -37.4199 40.8409 +0.48345 -37.4241 40.8456 +3.39216e-15 -37.4256 40.8471 +-0.484323 -37.4917 40.9193 +-0.980825 -37.9602 41.4306 +-1.44759 -37.3452 40.7595 +-1.93343 -37.4028 40.8223 +-2.42088 -37.4574 40.8819 +-2.94651 -37.9814 41.4538 +-3.42482 -37.8278 41.2861 +-3.91334 -37.8061 41.2625 +-4.40156 -37.7816 41.2358 +-4.95045 -38.2253 41.72 +-5.35778 -37.5894 41.026 +-5.93722 -38.1611 41.6499 +-6.32806 -37.5206 40.9509 +-6.83687 -37.6159 41.0549 +-7.32252 -37.5742 41.0094 +-7.80761 -37.5296 40.9607 +-8.27733 -37.4154 40.836 +-8.69776 -37.0983 40.4899 +-9.07762 -36.6458 39.996 +-9.86322 -37.7884 41.2431 +-10.2416 -37.3302 40.7431 +-10.7425 -37.3348 40.748 +-11.2244 -37.27 40.6774 +-11.7054 -37.2024 40.6036 +-12.3371 -37.5937 41.0306 +-12.6422 -36.9929 40.3749 +-13.1196 -36.917 40.2921 +-13.8137 -37.4282 40.85 +-14.2717 -37.2799 40.6882 +-14.9597 -37.7164 41.1645 +-15.4464 -37.6267 41.0667 +-15.987 -37.6642 41.1075 +-16.4729 -37.5684 41.0031 +-16.9868 -37.5345 40.9661 +-17.471 -37.433 40.8552 +-18.2629 -37.971 41.4424 +-18.5306 -37.4135 40.8339 +-19.2411 -37.7499 41.2011 +-19.8281 -37.8261 41.2843 +-20.2818 -37.6443 41.0859 +-20.6973 -37.3967 40.8156 +-21.5379 -37.904 41.3693 +-22.0267 -37.7756 41.2291 +-22.851 -38.208 41.7011 +-23.3054 -38.0094 41.4844 +-23.7955 -37.8705 41.3328 +-24.6826 -38.3484 41.8543 +-25.2583 -38.3249 41.8286 +-25.628 -37.9901 41.4632 +-26.1601 -37.8988 41.3636 +-26.7347 -37.865 41.3267 +-27.2228 -37.706 41.1532 +-27.7535 -37.6045 41.0424 +-28.6922 -38.0414 41.5193 +-29.0902 -37.751 41.2023 +-30.1401 -38.2938 41.7947 +-30.395 -37.8179 41.2753 +-31.4157 -38.2872 41.7875 +-31.909 -38.1004 41.5837 +-32.9 -38.496 42.0154 +-32.8885 -37.7185 41.1668 +-34.3015 -38.5654 42.0912 +-34.6939 -38.2466 41.7432 +-35.7696 -38.6707 42.2061 +-36.3752 -38.5724 42.0988 +-36.7087 -38.1865 41.6776 +-37.7525 -38.532 42.0547 +-38.6961 -38.756 42.2992 +-39.1387 -38.4707 41.9878 +-39.6341 -38.2385 41.7344 +-40.1846 -38.0584 41.5378 +-41.145 -38.2573 41.7549 +-41.6971 -38.0676 41.5479 +-43.2705 -38.7915 42.3379 +-43.2829 -38.1061 41.5899 +-44.3892 -38.3819 41.8909 +-45.3813 -38.5416 42.0652 +-46.4438 -38.7452 42.2874 +-46.4337 -38.0529 41.5318 +-48.0805 -38.7092 42.2481 +-48.5787 -38.4243 41.9372 +-49.6637 -38.5953 42.1238 +-50.7567 -38.7564 42.2996 +-51.9914 -39.008 42.5742 +-52.4934 -38.6999 42.238 +-53.3323 -38.6361 42.1683 +-54.5177 -38.8102 42.3584 +-55.6421 -38.9247 42.4833 +-56.3531 -38.7397 42.2814 +-57.6999 -38.9793 42.5429 +-58.4152 -38.7797 42.3251 +-59.1297 -38.5746 42.1012 +-60.2786 -38.6431 42.176 +-61.7263 -38.8852 42.4402 +-62.0788 -38.4286 41.9418 +-64.282 -39.1008 42.6755 +-65.1591 -38.9441 42.5045 +-66.339 -38.9574 42.5191 +-67.524 -38.9597 42.5216 +-69.327 -39.2984 42.8912 +-70.1407 -39.0601 42.6311 +-71.2643 -38.9852 42.5494 +-72.2347 -38.8159 42.3646 +-74.1518 -39.1372 42.7153 +-74.8926 -38.822 42.3712 +-76.9885 -39.1921 42.7752 +-78.6976 -39.3395 42.9361 +-79.85 -39.1917 42.7748 +-81.8186 -39.4256 43.03 +-83.4716 -39.4842 43.094 +-84.7202 -39.3351 42.9312 +-86.137 -39.2496 42.8379 +-88.3085 -39.4861 43.096 +-90.1571 -39.5527 43.1687 +-92.6044 -39.8545 43.4981 +-94.3029 -39.8082 43.4476 +-95.581 -39.5685 43.186 +-98.66 -40.0473 43.7086 +-100.724 -40.0813 43.7456 +-102.191 -39.8575 43.5014 +-104.269 -39.8523 43.4958 +-106.791 -39.9895 43.6454 +-109.325 -40.0997 43.7658 +-112.134 -40.2783 43.9607 +-114.424 -40.2396 43.9185 +-118.147 -40.6676 44.3856 +-121.89 -41.0547 44.808 +-126.191 -41.5784 45.3796 +-128.348 -41.3564 45.1373 +-132.14 -41.6259 45.4315 +-134.674 -41.4617 45.2523 +-137.58 -41.3806 45.1637 +-138.568 -40.7027 44.4238 +-137.984 -39.5675 43.1848 +-137.935 -38.5974 42.1261 +-136.76 -37.3273 40.7398 +-14.2354 -3.78814 4.13446 +-47.6126 -12.3469 13.4757 +-45.6159 -11.5216 12.5749 +-42.85 -10.536 11.4992 +-40.2508 -9.62904 10.5094 +-15.2228 -3.54101 3.86474 +-15.6473 -3.53687 3.86022 +-16.0729 -3.52799 3.85053 +-16.1178 -3.43311 3.74697 +-15.6834 -3.2392 3.53534 +-15.7246 -3.14662 3.43429 +-15.7647 -3.0538 3.33299 +-14.1654 -2.65384 2.89646 +-14.2957 -2.58771 2.82429 +-14.0381 -2.4526 2.67682 +-12.4198 -2.09191 2.28316 +-3185.78 -516.687 563.924 +-12.7642 -1.99076 2.17276 +-13.3753 -2.00316 2.18629 +-13.0094 -1.86806 2.03884 +-13.7189 -1.88557 2.05795 +-13.7428 -1.80462 1.96961 +-12.8806 -1.61274 1.76018 +-12.8025 -1.52501 1.66443 +-13.6107 -1.53868 1.67935 +-14.1239 -1.51122 1.64938 +-13.5495 -1.36799 1.49305 +-14.3589 -1.36327 1.4879 +-13.4837 -1.19921 1.30885 +-14.6897 -1.21847 1.32987 +-13.5126 -1.04005 1.13514 +-13.5255 -0.960357 1.04816 +-14.0351 -0.912961 0.996426 +-14.4448 -0.853735 0.931786 +-13.9568 -0.742046 0.809886 +-12.3698 -0.584339 0.637761 +-12.2771 -0.50727 0.553646 +-11.2845 -0.399519 0.436044 +-10.2902 -0.303512 0.33126 +-10.4936 -0.247553 0.270185 +-10.4964 -0.185681 0.202656 +-10.2984 -0.121437 0.132539 +-10.1996 -0.0601313 0.0656287 +10.2 0 0 +10.5996 -0.0618715 0.0687635 +11.8982 -0.138914 0.154388 +11.0962 -0.19435 0.215999 +11.493 -0.268447 0.29835 +12.8877 -0.376367 0.418292 +13.5814 -0.476082 0.529114 +17.3675 -0.710502 0.789646 +18.6544 -0.872509 0.9697 +23.0288 -1.21227 1.34731 +23.5102 -1.37579 1.52904 +19.8084 -1.27576 1.41787 +19.9899 -1.40531 1.56185 +20.5669 -1.56737 1.74197 +20.9427 -1.71996 1.91155 +21.9109 -1.92945 2.14437 +33.5701 -3.15571 3.50724 +39.0661 -3.90518 4.34019 +45.0386 -4.77133 5.30282 +51.2869 -5.74057 6.38003 +56.4295 -6.65529 7.39664 +71.9743 -8.92247 9.91637 +93.6472 -12.1756 13.5319 +94.6607 -12.8817 14.3166 +94.5869 -13.4477 14.9457 +94.6031 -14.0282 15.5909 +94.8062 -14.6401 16.2708 +94.7088 -15.2085 16.9026 +95.3801 -15.9064 17.6782 +95.3625 -16.496 18.3335 +94.8539 -17 18.8937 +94.7249 -17.5709 19.5282 +95.3572 -18.2891 20.3263 +95.1149 -18.845 20.9442 +94.7698 -19.3799 21.5386 +95.3717 -20.1134 22.3538 +95.1057 -20.6693 22.9717 +95.7807 -21.4358 23.8236 +95.4028 -21.9723 24.4198 +95.8666 -22.707 25.2364 +95.3788 -23.2199 25.8064 +95.2596 -23.8226 26.4762 +95.5986 -24.5455 27.2797 +96.2982 -25.3722 28.1985 +95.9635 -25.9333 28.8221 +95.6215 -26.4924 29.4435 +96.1007 -27.2848 30.3241 +95.7411 -27.8447 30.9464 +96.0136 -28.5929 31.7779 +94.909 -28.9303 32.153 +94.256 -29.3984 32.6732 +94.2299 -30.0627 33.4114 +94.1037 -30.6995 34.1192 +93.6996 -31.2476 34.7283 +94.1794 -32.097 35.6723 +93.6683 -32.6146 36.2476 +93.9456 -33.4113 37.1331 +94.1213 -34.1818 37.9894 +93.5843 -34.6974 38.5625 +93.9984 -35.5717 39.5341 +93.4441 -36.0856 40.1053 +93.1421 -36.6975 40.7854 +94.117 -37.8255 42.0389 +91.8293 -37.6395 41.8322 +90.3171 -37.7487 41.9536 +88.8935 -37.8791 42.0986 +86.8863 -37.7408 41.9448 +85.2231 -37.7297 41.9325 +84.0644 -37.9265 42.1512 +82.495 -37.9232 42.1475 +81.3418 -38.0963 42.3399 +79.6205 -37.987 42.2185 +78.3128 -38.0572 42.2964 +77.0899 -38.1548 42.4049 +75.8704 -38.241 42.5007 +74.8926 -38.4381 42.7198 +73.285 -38.2972 42.5632 +72.0782 -38.3488 42.6206 +69.6323 -37.7157 41.9169 +68.5203 -37.7803 41.9888 +67.1821 -37.7059 41.9061 +66.2314 -37.836 42.0506 +65.2824 -37.9578 42.1861 +64.1106 -37.9386 42.1646 +62.9444 -37.9085 42.1313 +61.9313 -37.9582 42.1864 +60.8486 -37.9533 42.181 +59.6983 -37.8926 42.1136 +58.5543 -37.8215 42.0345 +58.1299 -38.2087 42.4648 +56.4271 -37.7425 41.9467 +55.8625 -38.0227 42.2582 +54.1139 -37.4813 41.6564 +53.6917 -37.8442 42.0598 +52.3775 -37.5692 41.7541 +50.6693 -36.9858 41.1057 +50.3186 -37.3795 41.5433 +49.1664 -37.1708 41.3114 +48.614 -37.406 41.5727 +47.6695 -37.3322 41.4908 +47.1806 -37.6091 41.7985 +45.9885 -37.3153 41.472 +44.9964 -37.1664 41.3065 +44.5098 -37.4277 41.5969 +43.2194 -37.0009 41.1225 +42.6742 -37.1987 41.3423 +41.766 -37.0724 41.202 +41.2212 -37.261 41.4116 +40.3808 -37.1755 41.3166 +39.7782 -37.3009 41.4559 +39.29 -37.5316 41.7124 +38.1758 -37.1532 41.2918 +37.6896 -37.3746 41.5378 +37.1454 -37.5374 41.7188 +36.164 -37.2479 41.397 +35.6767 -37.4576 41.6301 +35.1866 -37.6644 41.8599 +34.2237 -37.355 41.5161 +33.735 -37.5534 41.7366 +33.193 -37.6912 41.8897 +32.25 -37.3622 41.5241 +31.7613 -37.549 41.7317 +30.7854 -37.148 41.286 +30.2996 -37.3263 41.4842 +29.4828 -37.0883 41.2197 +28.9516 -37.1997 41.3434 +28.4652 -37.3672 41.5296 +27.9766 -37.532 41.7127 +27.442 -37.6337 41.8258 +26.6056 -37.3095 41.4655 +26.0333 -37.3421 41.5018 +25.2548 -37.0666 41.1955 +24.7703 -37.2126 41.3578 +24.3237 -37.4171 41.5851 +23.4829 -37.0035 41.1254 +23.3437 -37.6954 41.8944 +22.5888 -37.3961 41.5617 +22.1 -37.5265 41.7066 +21.2871 -37.092 41.2238 +20.7673 -37.1522 41.2907 +20.2818 -37.272 41.4239 +19.8281 -37.452 41.6239 +19.0457 -36.9971 41.1183 +18.5306 -37.0435 41.1699 +18.0466 -37.1502 41.2885 +17.6214 -37.3817 41.5458 +16.9868 -37.1634 41.3031 +16.6149 -37.5177 41.6968 +16.0145 -37.356 41.5172 +15.4464 -37.2547 41.4045 +14.9597 -37.3434 41.5032 +14.472 -37.4293 41.5986 +13.7895 -36.9932 41.114 +13.283 -37.0072 41.1295 +12.7772 -37.0181 41.1417 +12.3587 -37.2872 41.4407 +11.9757 -37.6851 41.8829 +11.5035 -37.8191 42.0319 +10.8761 -37.4251 41.594 +10.4056 -37.553 41.7362 +9.91531 -37.6123 41.802 +9.27568 -37.0751 41.2049 +8.8229 -37.2599 41.4103 +8.33645 -37.31 41.466 +7.83545 -37.291 41.4449 +7.34862 -37.3353 41.4941 +6.84906 -37.3104 41.4665 +6.36202 -37.3489 41.5093 +5.88495 -37.4512 41.6229 +5.39612 -37.4841 41.6595 +4.91558 -37.5808 41.767 +4.4094 -37.4747 41.6491 +3.91334 -37.4322 41.6019 +3.43093 -37.5205 41.7 +2.88894 -36.8711 40.9783 +2.40779 -36.8866 40.9955 +1.92645 -36.8992 41.0095 +1.45282 -37.1096 41.2434 +0.952901 -36.5148 40.5823 +0.48345 -37.0541 41.1816 +3.38604e-15 -36.9886 41.1088 +-0.492177 -37.7229 41.925 +-0.965118 -36.983 41.1026 +-1.46853 -37.5108 41.6893 +-1.96484 -37.6345 41.8267 +-2.44705 -37.488 41.6638 +-2.94651 -37.6058 41.7948 +-3.41872 -37.3869 41.5515 +-3.92031 -37.499 41.6761 +-4.46432 -37.9414 42.1678 +-4.95045 -37.8473 42.0632 +-5.44404 -37.817 42.0295 +-5.93722 -37.7837 41.9926 +-6.44126 -37.8141 42.0263 +-6.84906 -37.3104 41.4665 +-7.32252 -37.2027 41.3468 +-7.80761 -37.1585 41.2976 +-8.29211 -37.1115 41.2455 +-8.83855 -37.326 41.4838 +-9.22616 -36.8771 40.985 +-9.7243 -36.8877 40.9967 +-10.2234 -36.8953 41.0052 +-10.7425 -36.9656 41.0833 +-11.3839 -37.4258 41.5948 +-11.7054 -36.8345 40.9376 +-12.1856 -36.7648 40.8602 +-12.6872 -36.7575 40.852 +-13.3297 -37.1373 41.2741 +-13.8137 -37.0581 41.1861 +-14.2967 -36.976 41.0948 +-14.9597 -37.3434 41.5032 +-15.4731 -37.3191 41.4762 +-15.987 -37.2917 41.4457 +-16.4729 -37.1969 41.3404 +-16.9576 -37.0994 41.232 +-17.7416 -37.6369 41.8294 +-18.2629 -37.5955 41.7834 +-18.8162 -37.6144 41.8043 +-19.2411 -37.3766 41.5401 +-19.728 -37.2629 41.4137 +-20.316 -37.3348 41.4937 +-21.1175 -37.7787 41.987 +-21.5738 -37.5916 41.779 +-22.0267 -37.402 41.5683 +-22.5513 -37.334 41.4928 +-23.6498 -38.1897 42.4438 +-23.8346 -37.5577 41.7413 +-24.6826 -37.9691 42.1986 +-24.8923 -37.3959 41.5615 +-25.6695 -37.6752 41.872 +-26.2446 -37.6452 41.8386 +-26.6917 -37.4302 41.5997 +-27.2667 -37.3932 41.5586 +-28.1551 -37.7714 41.9789 +-28.6468 -37.6056 41.7946 +-29.1363 -37.437 41.6072 +-30.1401 -37.9151 42.1386 +-30.9676 -38.1492 42.3987 +-31.4157 -37.9085 42.1313 +-32.4015 -38.3058 42.5728 +-32.4 -37.536 41.7172 +-33.3453 -37.8641 42.0819 +-34.3015 -38.184 42.4375 +-35.1119 -38.3246 42.5936 +-35.7696 -38.2883 42.5534 +-35.9453 -37.7397 41.9436 +-36.7087 -37.8089 42.0205 +-37.6973 -38.0952 42.3387 +-38.6961 -38.3727 42.6472 +-39.1953 -38.1454 42.3945 +-39.6915 -37.9152 42.1386 +-40.7073 -38.1721 42.4242 +-41.145 -37.879 42.0984 +-41.7566 -37.7449 41.9494 +-43.3307 -38.4613 42.7456 +-43.8308 -38.2069 42.4628 +-44.3276 -37.9496 42.1769 +-45.4436 -38.2129 42.4695 +-46.4438 -38.362 42.6353 +-46.9426 -38.0895 42.3323 +-48.1448 -38.3776 42.6526 +-49.2282 -38.5529 42.8474 +-49.6637 -38.2136 42.4703 +-50.6904 -38.323 42.5919 +-51.9914 -38.6222 42.9245 +-53.0338 -38.7118 43.024 +-53.5369 -38.4008 42.6783 +-54.3112 -38.2808 42.545 +-55.6421 -38.5398 42.8328 +-56.5634 -38.4998 42.7883 +-57.912 -38.7357 43.0505 +-58.8432 -38.6775 42.9859 +-59.7771 -38.6113 42.9123 +-60.7864 -38.5832 42.8811 +-61.7263 -38.5007 42.7894 +-62.8898 -38.5456 42.8393 +-64.282 -38.7141 43.0266 +-65.4587 -38.7363 43.0513 +-66.339 -38.5722 42.8688 +-67.524 -38.5745 42.8714 +-69.327 -38.9098 43.244 +-70.1407 -38.6738 42.9818 +-71.2643 -38.5997 42.8994 +-73.1739 -38.9317 43.2684 +-74.861 -39.1208 43.4786 +-75.3686 -38.6824 42.9913 +-76.9885 -38.8046 43.1271 +-78.6976 -38.9505 43.2893 +-80.5781 -39.158 43.5199 +-81.5744 -38.9192 43.2545 +-84.2088 -39.4391 43.8323 +-85.3795 -39.2492 43.6212 +-87.1318 -39.3104 43.6892 +-88.3085 -39.0956 43.4505 +-90.9119 -39.4894 43.8882 +-92.6044 -39.4604 43.856 +-94.3029 -39.4146 43.8051 +-95.8368 -39.282 43.6577 +-98.4028 -39.5479 43.9533 +-100.466 -39.5831 43.9924 +-101.758 -39.2962 43.6735 +-104.269 -39.4582 43.8536 +-106.791 -39.594 44.0045 +-109.325 -39.7032 44.1258 +-112.134 -39.88 44.3224 +-115.223 -40.1196 44.5887 +-118.593 -40.4173 44.9195 +-122.964 -41.0069 45.5747 +-126.191 -41.1672 45.7529 +-129.431 -41.293 45.8927 +-133.046 -41.497 46.1195 +-134.947 -41.1349 45.717 +-137.489 -40.9442 45.5051 +-137.467 -39.9801 44.4336 +-137.984 -39.1762 43.5401 +-137.75 -38.1645 42.4158 +-136.852 -36.9832 41.1028 +-13.6771 -3.60359 4.005 +-15.7775 -4.05096 4.50221 +-44.6793 -11.1734 12.4181 +-41.2525 -10.0429 11.1616 +-15.2708 -3.61703 4.01994 +-15.2228 -3.50599 3.89653 +-16.406 -3.67168 4.08068 +-16.3582 -3.55511 3.95112 +-16.1178 -3.39916 3.7778 +-15.9703 -3.26584 3.62963 +-15.1494 -3.00152 3.33587 +-15.1879 -2.91298 3.23746 +-15.3217 -2.84209 3.15868 +-14.4889 -2.59675 2.88601 +-14.4254 -2.49533 2.77329 +-12.4198 -2.07123 2.30195 +-11.8629 -1.90497 2.11716 +-3192.33 -492.963 547.875 +-11.6179 -1.72276 1.91467 +-13.205 -1.87739 2.08652 +-13.033 -1.77357 1.97113 +-12.8593 -1.67191 1.85815 +-13.7656 -1.70649 1.89658 +-13.4919 -1.59123 1.76848 +-13.6107 -1.52346 1.69316 +-14.1239 -1.49627 1.66294 +-13.4506 -1.34457 1.49435 +-13.1706 -1.23808 1.37599 +-14.376 -1.26593 1.40694 +-14.2927 -1.17382 1.30457 +-12.8171 -0.976766 1.08557 +-13.8239 -0.971836 1.08009 +-14.4332 -0.92957 1.03312 +-13.8471 -0.810311 0.900573 +-12.4615 -0.655988 0.72906 +-12.3698 -0.57856 0.643007 +-11.3787 -0.465503 0.517356 +-10.9849 -0.385066 0.42796 +-10.5899 -0.309263 0.343713 +-10.2937 -0.240436 0.267219 +-10.0965 -0.176841 0.19654 +-11.0983 -0.129575 0.144009 +-10.1996 -0.0595367 0.0661686 +11.4 0 0 +10.5996 -0.0612485 0.0693189 +10.5984 -0.122493 0.138633 +10.7963 -0.187193 0.211859 +11.8928 -0.274988 0.311222 +12.588 -0.363913 0.411864 +13.5814 -0.471288 0.533388 +20.0625 -0.812494 0.919553 +24.1411 -1.11776 1.26504 +20.6362 -1.07538 1.21707 +26.7976 -1.55237 1.75692 +18.1162 -1.15502 1.30722 +20.885 -1.45346 1.64497 +19.3747 -1.46164 1.65423 +21.6375 -1.75913 1.99092 +23.6955 -2.06559 2.33776 +33.5701 -3.12394 3.53557 +40.3518 -3.99309 4.51925 +45.73 -4.7958 5.42772 +51.78 -5.73741 6.49341 +57.3158 -6.69175 7.57349 +76.7922 -9.42392 10.6657 +93.8436 -12.0782 13.6697 +94.6607 -12.752 14.4323 +94.5869 -13.3123 15.0664 +94.6031 -13.887 15.7168 +94.7088 -14.4777 16.3854 +94.6116 -15.0399 17.0216 +95.3801 -15.7462 17.821 +95.1689 -16.2968 18.4441 +94.9505 -16.846 19.0657 +95.5921 -17.5532 19.8662 +95.5494 -18.1415 20.5319 +95.1149 -18.6552 21.1134 +95.6305 -19.359 21.9099 +95.3717 -19.9108 22.5344 +95.9616 -20.6453 23.3656 +95.7807 -21.22 24.0161 +95.4028 -21.751 24.6171 +95.8666 -22.4783 25.4402 +95.5667 -23.0314 26.0661 +96.1026 -23.7914 26.9263 +95.5986 -24.2983 27.5 +96.2052 -25.0924 28.3988 +95.9635 -25.6722 29.0549 +96.453 -26.4538 29.9395 +96.1007 -27.0101 30.5691 +95.9245 -27.6172 31.2562 +96.7445 -28.5205 32.2785 +94.727 -28.5842 32.3506 +94.256 -29.1024 32.9371 +94.1396 -29.7314 33.649 +94.1037 -30.3904 34.3948 +93.6996 -30.933 35.0089 +93.4666 -31.5333 35.6883 +93.6683 -32.2862 36.5405 +93.2393 -32.8262 37.1516 +94.1213 -33.8376 38.2963 +93.6718 -34.3802 38.9103 +93.9984 -35.2135 39.8535 +94.3102 -36.0533 40.8039 +93.8314 -36.5969 41.4191 +93.6884 -37.2741 42.1856 +91.5736 -37.1566 42.0526 +90.826 -37.5791 42.5308 +88.3874 -37.2842 42.197 +87.1379 -37.469 42.4061 +84.973 -37.2401 42.1471 +83.3183 -37.2113 42.1145 +82.083 -37.3538 42.2758 +81.3418 -37.7127 42.682 +79.9461 -37.7583 42.7336 +78.3128 -37.674 42.6381 +77.331 -37.8888 42.8812 +75.1516 -37.4973 42.4382 +74.4165 -37.8092 42.7911 +73.0486 -37.7893 42.7687 +71.3739 -37.5917 42.545 +69.6323 -37.3359 42.2556 +68.5974 -37.4421 42.3757 +67.1821 -37.3263 42.2446 +66.2314 -37.455 42.3903 +65.2824 -37.5756 42.5268 +64.3353 -37.6882 42.6542 +63.1673 -37.6597 42.622 +61.9313 -37.576 42.5272 +60.8486 -37.5711 42.5217 +59.6983 -37.5111 42.4538 +58.5543 -37.4406 42.374 +57.488 -37.4063 42.3351 +56.3564 -37.3156 42.2326 +55.2317 -37.2148 42.1184 +54.1834 -37.1515 42.0468 +53.6917 -37.4631 42.3995 +52.3775 -37.1909 42.0914 +51.4124 -37.1503 42.0455 +50.2517 -36.954 41.8232 +49.829 -37.2925 42.2064 +48.614 -37.0293 41.9085 +47.6695 -36.9563 41.8259 +46.5378 -36.7231 41.562 +46.0521 -36.9906 41.8648 +45.0593 -36.8437 41.6985 +44.572 -37.1026 41.9915 +43.281 -36.6805 41.5137 +42.6133 -36.7715 41.6168 +42.3076 -37.175 42.0735 +41.2212 -36.8858 41.7461 +40.2633 -36.6941 41.5291 +39.7782 -36.9253 41.7908 +39.2326 -37.0995 41.988 +38.1758 -36.7791 41.6253 +37.6896 -36.9983 41.8734 +37.2006 -37.2146 42.1183 +36.6542 -37.3726 42.2971 +35.623 -37.0246 41.9032 +35.1866 -37.2852 42.1981 +34.2759 -37.0354 41.9154 +33.6835 -37.1185 42.0095 +33.193 -37.3117 42.2281 +32.25 -36.986 41.8595 +31.2689 -36.5947 41.4166 +30.7854 -36.774 41.6196 +30.2996 -36.9504 41.8193 +29.4828 -36.7149 41.5526 +28.9516 -36.8251 41.6774 +28.5106 -37.05 41.9319 +27.575 -36.6207 41.4461 +27.3982 -37.1952 42.0963 +26.5625 -36.874 41.7328 +26.0333 -36.9661 41.837 +25.2548 -36.6933 41.5283 +24.7703 -36.8379 41.6919 +24.0047 -36.5546 41.3712 +23.8346 -37.1795 42.0785 +22.9993 -36.7652 41.6097 +22.5513 -36.9581 41.828 +22.1367 -37.2102 42.1133 +21.2512 -36.6567 41.4868 +20.8023 -36.8401 41.6944 +20.2818 -36.8967 41.7585 +19.7947 -37.0125 41.8895 +19.3062 -37.1255 42.0174 +18.4989 -36.6077 41.4314 +18.0775 -36.8391 41.6933 +17.6214 -37.0053 41.8814 +17.2499 -37.3591 42.2817 +16.5865 -37.0764 41.9618 +15.794 -36.4707 41.2763 +15.4464 -36.8795 41.739 +14.9597 -36.9674 41.8385 +14.2967 -36.6037 41.4268 +13.7895 -36.6207 41.4461 +13.3064 -36.699 41.5347 +12.9797 -37.2261 42.1312 +12.3803 -36.9764 41.8486 +11.8094 -36.7875 41.6348 +11.3042 -36.7894 41.637 +10.857 -36.9834 41.8565 +10.3874 -37.1098 41.9996 +9.75903 -36.6467 41.4755 +9.27568 -36.7018 41.5378 +8.8229 -36.8847 41.7449 +8.33645 -36.9343 41.801 +7.83545 -36.9155 41.7797 +7.36168 -37.025 41.9036 +6.84906 -36.9347 41.8014 +6.36202 -36.9728 41.8446 +5.79088 -36.4814 41.2884 +5.39612 -37.1066 41.996 +4.91558 -37.2024 42.1044 +4.4094 -37.0974 41.9856 +3.92031 -37.1214 42.0128 +3.42482 -37.0766 41.962 +2.89418 -36.5659 41.3841 +2.44705 -37.1105 42.0004 +1.95786 -37.1232 42.0148 +1.4502 -36.6698 41.5016 +0.966863 -36.6768 41.5095 +0.484323 -36.7472 41.5892 +3.39216e-15 -36.6823 41.5158 +-0.484323 -36.7472 41.5892 +-0.966863 -36.6768 41.5095 +-1.44759 -36.6036 41.4267 +-1.96833 -37.3217 42.2394 +-2.41215 -36.5813 41.4015 +-2.94651 -37.2272 42.1324 +-3.42482 -37.0766 41.962 +-3.92031 -37.1214 42.0128 +-4.40156 -37.0314 41.9108 +-4.95045 -37.4663 42.403 +-5.45362 -37.5021 42.4436 +-5.92676 -37.3375 42.2573 +-6.32806 -36.7755 41.6213 +-6.84906 -36.9347 41.8014 +-7.33557 -36.8937 41.755 +-7.80761 -36.7843 41.6312 +-8.41036 -37.2617 42.1716 +-8.88548 -37.1463 42.0409 +-9.22616 -36.5058 41.3161 +-9.86322 -37.038 41.9183 +-10.2416 -36.5889 41.4101 +-10.7425 -36.5934 41.4151 +-11.3839 -37.049 41.9308 +-11.7262 -36.5284 41.3416 +-12.1856 -36.3947 41.1902 +-12.6422 -36.2583 41.0359 +-13.3064 -36.699 41.5347 +-13.8137 -36.6849 41.5188 +-14.2967 -36.6037 41.4268 +-14.9339 -36.9034 41.7661 +-15.4731 -36.9434 41.8113 +-15.987 -36.9162 41.7805 +-16.4445 -36.759 41.6025 +-17.2207 -37.2958 42.2101 +-17.5011 -36.7527 41.5955 +-18.0157 -36.7132 41.5508 +-18.4671 -36.5449 41.3603 +-19.2411 -37.0002 41.8756 +-19.7947 -37.0125 41.8895 +-20.3502 -37.0212 41.8993 +-20.6973 -36.6541 41.4838 +-21.5738 -37.2131 42.1165 +-22.0267 -37.0254 41.9041 +-22.5139 -36.8967 41.7584 +-23.3054 -37.2546 42.1635 +-23.8346 -37.1795 42.0785 +-24.6427 -37.5261 42.4708 +-24.8923 -37.0194 41.8973 +-25.711 -37.3561 42.2784 +-26.1601 -37.1462 42.0408 +-27.1653 -37.7107 42.6797 +-27.2228 -36.9572 41.8269 +-28.2443 -37.5096 42.452 +-28.6468 -37.227 42.1322 +-29.5057 -37.5299 42.4751 +-29.9523 -37.2995 42.2143 +-30.8722 -37.6487 42.6096 +-31.4157 -37.5268 42.4716 +-31.9583 -37.4015 42.3297 +-32.9 -37.7315 42.7032 +-33.396 -37.5399 42.4864 +-34.3015 -37.7996 42.7803 +-35.1119 -37.9387 42.9377 +-35.2926 -37.3975 42.3252 +-35.9453 -37.3596 42.2824 +-37.2533 -37.9835 42.9885 +-37.6973 -37.7116 42.6807 +-38.1929 -37.4923 42.4326 +-39.1387 -37.7067 42.6752 +-39.6341 -37.4792 42.4177 +-40.6492 -37.7339 42.7059 +-41.2037 -37.5511 42.4991 +-42.2919 -37.8439 42.8304 +-42.7289 -37.5452 42.4924 +-43.8308 -37.8222 42.8058 +-44.3276 -37.5675 42.5176 +-45.3813 -37.7763 42.7539 +-46.4438 -37.9758 42.9797 +-47.0062 -37.7571 42.7322 +-48.0805 -37.9405 42.9397 +-48.5787 -37.6613 42.6237 +-49.6637 -37.8288 42.8134 +-50.6904 -37.9372 42.936 +-51.9914 -38.2333 43.2712 +-52.4934 -37.9314 42.9295 +-54.0143 -38.3531 43.4067 +-54.7242 -38.1836 43.2149 +-55.8505 -38.2946 43.3405 +-56.7737 -38.2538 43.2944 +-57.6999 -38.2052 43.2394 +-58.4152 -38.0096 43.018 +-59.7771 -38.2225 43.259 +-60.2786 -37.8757 42.8665 +-61.9457 -38.2485 43.2884 +-62.8898 -38.1575 43.1853 +-63.9848 -38.1471 43.1736 +-64.7847 -37.9514 42.9521 +-66.339 -38.1838 43.2151 +-67.9803 -38.4441 43.5097 +-69.327 -38.518 43.5934 +-70.5265 -38.4949 43.5673 +-71.9637 -38.5861 43.6704 +-72.4695 -38.1688 43.1981 +-74.1518 -38.36 43.4146 +-75.3686 -38.2929 43.3386 +-76.9885 -38.4138 43.4755 +-78.6976 -38.5583 43.639 +-80.0927 -38.5302 43.6071 +-81.8186 -38.6427 43.7345 +-83.4716 -38.7001 43.7995 +-85.6267 -38.9665 44.1009 +-86.8831 -38.8034 43.9164 +-88.5587 -38.8116 43.9256 +-90.1571 -38.7672 43.8754 +-91.8453 -38.7429 43.8478 +-94.3029 -39.0177 44.1589 +-95.581 -38.7827 43.893 +-98.66 -39.252 44.4241 +-100.121 -39.0501 44.1956 +-102.191 -39.066 44.2136 +-105.139 -39.387 44.5769 +-106.791 -39.1954 44.36 +-109.325 -39.3034 44.4823 +-111.869 -39.3852 44.5748 +-114.957 -39.624 44.8451 +-118.949 -40.1306 45.4184 +-122.248 -40.3576 45.6754 +-126.73 -40.9268 46.3196 +-129.16 -40.7916 46.1666 +-132.14 -40.7993 46.1753 +-134.947 -40.7207 46.0863 +-137.489 -40.5319 45.8727 +-137.284 -39.5247 44.7327 +-138.168 -38.8334 43.9504 +-137.843 -37.8056 42.7871 +-137.038 -36.6604 41.491 +-14.5145 -3.78571 4.28454 +-15.3107 -3.89153 4.4043 +-44.1173 -10.9218 12.3609 +-41.9103 -10.1003 11.4312 +-15.3651 -3.60272 4.07743 +-14.2773 -3.25511 3.68403 +-15.9318 -3.52966 3.99475 +-15.2169 -3.27378 3.70515 +-16.1178 -3.36493 3.80831 +-15.6834 -3.17488 3.59322 +-15.7246 -3.08413 3.49052 +-14.8996 -2.8289 3.20165 +-15.3217 -2.81348 3.1842 +-15.165 -2.69056 3.04509 +-13.5541 -2.321 2.62683 +-13.6812 -2.25861 2.55622 +-3185.78 -506.426 573.156 +-12.7642 -1.95122 2.20833 +-12.0084 -1.76275 1.99502 +-13.3028 -1.87226 2.11896 +-12.2491 -1.65011 1.86754 +-13.0556 -1.68034 1.90176 +-12.8806 -1.58071 1.789 +-13.0979 -1.52922 1.73072 +-12.5258 -1.3879 1.57078 +-13.8276 -1.45013 1.64121 +-13.4506 -1.33103 1.50642 +-13.6657 -1.27169 1.43926 +-13.4837 -1.1754 1.33028 +-13.1016 -1.06517 1.20552 +-13.5126 -1.0194 1.15372 +-13.5255 -0.941286 1.06532 +-14.0351 -0.894831 1.01274 +-13.5482 -0.784843 0.888259 +-12.7605 -0.66497 0.752591 +-12.3698 -0.572735 0.648202 +-12.2771 -0.497196 0.56271 +-11.2845 -0.391585 0.443182 +-11.1893 -0.323478 0.366102 +-10.7934 -0.249569 0.282454 +-11.4961 -0.199326 0.225591 +-11.3983 -0.131737 0.149095 +-11.3996 -0.065871 0.0745505 +11.4 0 0 +10.5996 -0.0606205 0.0698688 +11.0983 -0.126955 0.146324 +11.796 -0.202429 0.233312 +11.493 -0.26302 0.303146 +12.2883 -0.351606 0.405247 +12.9822 -0.445877 0.5139 +22.9571 -0.920186 1.06057 +25.7372 -1.17944 1.35938 +25.4214 -1.31116 1.51119 +29.4874 -1.69067 1.9486 +17.6185 -1.11178 1.28139 +21.8795 -1.50706 1.73697 +19.3747 -1.44665 1.66736 +20.9427 -1.68519 1.94228 +22.2084 -1.9161 2.20842 +34.3623 -3.16488 3.64771 +39.3628 -3.85528 4.44345 +45.73 -4.74663 5.47078 +52.6677 -5.77593 6.65711 +59.3839 -6.86214 7.90904 +74.8257 -9.08842 10.475 +92.6656 -11.8044 13.6053 +94.6607 -12.6213 14.5468 +95.3694 -13.2848 15.3115 +94.6031 -13.7446 15.8415 +94.7088 -14.3293 16.5154 +94.6116 -14.8857 17.1567 +94.5068 -15.4421 17.7979 +95.1689 -16.1297 18.5904 +94.9505 -16.6733 19.217 +95.5921 -17.3733 20.0237 +95.3572 -17.9193 20.6531 +95.1149 -18.464 21.2808 +94.8654 -19.0072 21.907 +95.3717 -19.7067 22.7132 +95.9616 -20.4336 23.551 +95.7807 -21.0024 24.2066 +96.2538 -21.72 25.0337 +95.8666 -22.2479 25.642 +95.5667 -22.7952 26.2729 +95.9152 -23.5015 27.087 +95.5986 -24.0492 27.7182 +96.2982 -24.8592 28.6518 +95.9635 -25.409 29.2854 +95.6215 -25.9568 29.9168 +96.1007 -26.7331 30.8115 +95.7411 -27.2817 31.4438 +96.2877 -28.0947 32.3809 +94.181 -28.128 32.4193 +94.256 -28.804 33.1984 +94.3202 -29.483 33.981 +93.7442 -29.9639 34.5352 +93.7891 -30.645 35.3203 +94.1794 -31.448 36.2458 +93.757 -31.9854 36.8651 +93.9456 -32.7358 37.73 +94.0334 -33.4594 38.564 +93.6718 -34.0277 39.2189 +93.8243 -34.788 40.0953 +94.4834 -35.7492 41.2031 +93.2283 -35.9889 41.4793 +93.7741 -36.9257 42.5591 +91.8293 -36.8784 42.5046 +90.0627 -36.8812 42.5079 +88.3874 -36.902 42.5317 +87.6411 -37.299 42.9893 +85.7235 -37.1838 42.8566 +83.8157 -37.0497 42.702 +83.2367 -37.4905 43.21 +81.3418 -37.326 43.0205 +79.6205 -37.2189 42.8971 +78.7983 -37.5188 43.2427 +77.331 -37.5003 43.2214 +76.5891 -37.8228 43.5931 +74.8926 -37.6609 43.4065 +73.679 -37.7246 43.4799 +71.8434 -37.451 43.1646 +69.7877 -37.0356 42.6858 +68.5203 -37.0164 42.6637 +67.3353 -37.0278 42.6768 +66.2314 -37.071 42.7265 +65.056 -37.0614 42.7155 +64.1106 -37.1715 42.8424 +62.9444 -37.1421 42.8085 +61.9313 -37.1907 42.8645 +60.7755 -37.1412 42.8075 +59.6983 -37.1265 42.7905 +58.5543 -37.0568 42.7101 +57.488 -37.0227 42.6709 +56.3564 -36.933 42.5675 +55.2317 -36.8332 42.4525 +54.7391 -37.1477 42.815 +53.6917 -37.079 42.7358 +52.3775 -36.8096 42.4252 +51.4124 -36.7694 42.379 +50.3186 -36.6238 42.2111 +49.829 -36.9102 42.5412 +48.6796 -36.6991 42.298 +48.1241 -36.9263 42.5598 +47.1163 -36.7985 42.4125 +46.1157 -36.662 42.2551 +45.4999 -36.8225 42.4401 +44.572 -36.7222 42.3246 +43.5888 -36.5626 42.1406 +42.6742 -36.4466 42.0069 +42.1271 -36.6369 42.2262 +41.2212 -36.5076 42.0773 +40.7923 -36.795 42.4085 +39.7782 -36.5467 42.1223 +39.2326 -36.7191 42.321 +38.7422 -36.9421 42.578 +38.1929 -37.1079 42.7691 +37.2557 -36.8877 42.5153 +36.5997 -36.9345 42.5693 +35.623 -36.645 42.2356 +35.1866 -36.9029 42.5328 +34.6417 -37.0468 42.6987 +33.735 -36.7942 42.4075 +33.2438 -36.9856 42.6282 +32.7 -37.1176 42.7803 +31.7613 -36.7898 42.4025 +31.2702 -36.9701 42.6103 +30.2519 -36.514 42.0846 +29.4828 -36.3384 41.8822 +28.9516 -36.4475 42.008 +28.8738 -37.1372 42.8029 +27.932 -36.7145 42.3156 +27.0037 -36.2838 41.8192 +26.5625 -36.496 42.0638 +26.0755 -36.6465 42.2373 +25.2133 -36.2575 41.789 +24.7703 -36.4602 42.0226 +23.9648 -36.1197 41.6301 +23.8346 -36.7983 42.4122 +22.9993 -36.3883 41.9397 +22.5888 -36.64 42.2298 +22.1 -36.7677 42.377 +21.2512 -36.2809 41.8159 +20.8023 -36.4624 42.0251 +20.316 -36.58 42.1606 +19.8281 -36.6948 42.293 +19.3062 -36.7449 42.3507 +18.5623 -36.3566 41.9032 +18.0775 -36.4614 42.024 +17.6214 -36.6259 42.2136 +17.3084 -37.1013 42.7615 +16.6433 -36.8219 42.4394 +15.987 -36.5377 42.1119 +15.4197 -36.4383 41.9973 +14.9597 -36.5884 42.1703 +14.2717 -36.165 41.6823 +13.7895 -36.2452 41.7748 +13.5165 -36.8962 42.5251 +12.9572 -36.7805 42.3918 +12.402 -36.6613 42.2544 +11.9965 -36.9872 42.63 +11.3241 -36.4764 42.0413 +10.8952 -36.7328 42.3368 +10.4056 -36.7938 42.407 +9.91531 -36.8518 42.474 +9.42422 -36.9071 42.5377 +8.96369 -37.0891 42.7474 +8.35123 -36.6204 42.2073 +7.9607 -37.121 42.7842 +7.34862 -36.5804 42.1611 +6.86124 -36.621 42.2079 +6.37334 -36.6589 42.2516 +5.89541 -36.7591 42.3671 +5.39612 -36.7262 42.3292 +4.89815 -36.6903 42.2878 +4.4094 -36.717 42.3186 +3.92031 -36.7408 42.346 +3.43093 -36.7618 42.3703 +2.94651 -36.8455 42.4666 +2.44269 -36.6645 42.2581 +1.92994 -36.2186 41.7442 +1.4502 -36.2938 41.8308 +0.968609 -36.3662 41.9143 +0.484323 -36.3704 41.9191 +3.45339e-15 -36.9616 42.6005 +-0.484323 -36.3704 41.9191 +-0.980825 -36.8249 42.4429 +-1.46853 -36.7524 42.3594 +-1.99276 -37.3975 43.1029 +-2.45577 -36.8609 42.4845 +-2.94651 -36.8455 42.4666 +-3.41872 -36.631 42.2194 +-3.92031 -36.7408 42.346 +-4.39371 -36.5863 42.168 +-4.95916 -37.1474 42.8146 +-5.44404 -37.0524 42.7051 +-5.93722 -37.0198 42.6675 +-6.33938 -36.4635 42.0264 +-6.94655 -37.0763 42.7327 +-7.32252 -36.4505 42.0114 +-7.93287 -36.9913 42.6347 +-8.27733 -36.2964 41.8337 +-8.83855 -36.5713 42.1506 +-9.22616 -36.1315 41.6438 +-9.88058 -36.7228 42.3252 +-10.2416 -36.2138 41.7386 +-10.7425 -36.2182 41.7436 +-11.2244 -36.1554 41.6713 +-11.8925 -36.6667 42.2606 +-12.1856 -36.0215 41.517 +-12.6422 -35.8866 41.3614 +-13.3531 -36.4502 42.011 +-13.7895 -36.2452 41.7748 +-14.497 -36.736 42.3404 +-14.9597 -36.5884 42.1703 +-15.4731 -36.5646 42.1429 +-16.1799 -36.9787 42.6202 +-16.4445 -36.3821 41.9325 +-17.2499 -36.976 42.6171 +-17.7416 -36.8759 42.5018 +-18.2629 -36.8354 42.455 +-18.8162 -36.8539 42.4763 +-19.2736 -36.6829 42.2792 +-19.7947 -36.633 42.2218 +-20.6238 -37.1343 42.7995 +-21.1175 -37.0149 42.6619 +-21.5738 -36.8315 42.4505 +-22.0267 -36.6458 42.2365 +-22.5513 -36.5792 42.1597 +-23.2672 -36.8121 42.4282 +-23.7955 -36.7379 42.3427 +-24.3237 -36.6606 42.2536 +-25.2177 -37.1187 42.7816 +-25.6695 -36.9135 42.545 +-26.1601 -36.7653 42.3743 +-26.6917 -36.6734 42.2684 +-27.6612 -37.1673 42.8376 +-27.7089 -36.4212 41.9776 +-28.9646 -37.254 42.9375 +-29.5057 -37.1451 42.812 +-29.9523 -36.9171 42.5492 +-30.395 -36.6868 42.2838 +-31.4641 -37.1994 42.8745 +-32.4015 -37.5314 43.2572 +-32.85 -37.2879 42.9766 +-33.3453 -37.0986 42.7583 +-34.1985 -37.2997 42.9901 +-35.1119 -37.5497 43.2783 +-35.8225 -37.5698 43.3015 +-36.3215 -37.3635 43.0637 +-37.2533 -37.5941 43.3294 +-37.6973 -37.3249 43.0192 +-38.6402 -37.5426 43.2701 +-39.1387 -37.3201 43.0137 +-40.2077 -37.6318 43.3729 +-40.6492 -37.347 43.0447 +-41.7328 -37.6433 43.3862 +-42.2919 -37.4559 43.1701 +-43.2705 -37.6313 43.3723 +-43.7699 -37.3824 43.0855 +-44.8817 -37.6471 43.3905 +-45.4436 -37.4403 43.1522 +-46.5068 -37.6373 43.3793 +-47.0062 -37.3699 43.0711 +-48.0805 -37.5515 43.2803 +-49.1632 -37.7236 43.4787 +-50.2541 -37.8862 43.6661 +-50.6904 -37.5482 43.2766 +-51.9914 -37.8413 43.6144 +-52.4258 -37.4942 43.2143 +-54.0143 -37.9598 43.751 +-54.5177 -37.6495 43.3933 +-55.6421 -37.7605 43.5213 +-56.7737 -37.8616 43.6378 +-57.912 -37.9525 43.7425 +-58.6292 -37.7576 43.518 +-59.5613 -37.6941 43.4447 +-60.7864 -37.8031 43.5704 +-62.1651 -37.9904 43.7863 +-62.8898 -37.7662 43.5279 +-64.282 -37.9314 43.7182 +-65.4587 -37.9531 43.7433 +-67.0182 -38.1792 44.0039 +-67.9803 -38.0499 43.8548 +-69.327 -38.1231 43.9391 +-70.1407 -37.8919 43.6727 +-71.886 -38.1492 43.9692 +-72.9391 -38.0222 43.8229 +-74.861 -38.3298 44.1774 +-76.0826 -38.2593 44.0962 +-77.7072 -38.3749 44.2294 +-78.6976 -38.163 43.9851 +-80.5781 -38.3663 44.2194 +-81.8186 -38.2465 44.0814 +-83.7173 -38.4161 44.2769 +-85.3795 -38.4556 44.3224 +-87.6293 -38.7354 44.6449 +-88.5587 -38.4136 44.2741 +-90.9119 -38.691 44.5937 +-92.9417 -38.8034 44.7232 +-94.3029 -38.6177 44.5092 +-96.3483 -38.6932 44.5963 +-99.1743 -39.0521 45.0099 +-100.466 -38.7828 44.6995 +-102.97 -38.9604 44.9042 +-104.269 -38.6605 44.5585 +-108.016 -39.2383 45.2245 +-110.204 -39.2132 45.1956 +-113.635 -39.5967 45.6376 +-115.223 -39.3085 45.3054 +-120.108 -40.1059 46.2245 +-122.606 -40.0608 46.1725 +-127 -40.5934 46.7863 +-129.702 -40.5427 46.7279 +-132.774 -40.5749 46.765 +-134.401 -40.1402 46.264 +-137.763 -40.1963 46.3287 +-137.467 -39.1718 45.1478 +-138.168 -38.4353 44.299 +-137.843 -37.418 43.1265 +-136.667 -36.1863 41.7069 +-14.0493 -3.6268 4.18011 +-15.7775 -3.96906 4.57458 +-44.5856 -10.9246 12.5912 +-41.7224 -9.95191 11.4702 +-15.2708 -3.5439 4.08456 +-15.9793 -3.60579 4.15589 +-15.5525 -3.4103 3.93057 +-16.0729 -3.42248 3.94462 +-16.1178 -3.33043 3.83852 +-15.6834 -3.14233 3.62172 +-15.1494 -2.94083 3.38949 +-14.8996 -2.79989 3.22705 +-14.7435 -2.67955 3.08835 +-14.8753 -2.61209 3.01059 +-14.4254 -2.44488 2.81787 +-12.6138 -2.06105 2.37549 +-3185.78 -501.234 577.702 +-12.7642 -1.93122 2.22584 +-13.3753 -1.94325 2.23971 +-11.8356 -1.64868 1.9002 +-12.837 -1.71158 1.9727 +-12.5648 -1.60059 1.84478 +-13.1756 -1.60033 1.84448 +-13.8858 -1.60458 1.84937 +-12.8217 -1.40613 1.62065 +-13.8276 -1.43526 1.65423 +-13.4506 -1.31739 1.51837 +-14.0618 -1.29514 1.49272 +-12.4922 -1.0778 1.24223 +-13.7964 -1.11015 1.27951 +-13.5126 -1.00895 1.16287 +-13.2271 -0.911084 1.05008 +-13.836 -0.873093 1.00629 +-12.5521 -0.719676 0.829471 +-12.4615 -0.642725 0.740779 +-11.7713 -0.539434 0.62173 +-11.9776 -0.480096 0.553339 +-11.684 -0.40129 0.46251 +-11.1893 -0.320161 0.369005 +-11.6929 -0.267594 0.308418 +-11.0962 -0.19042 0.219471 +-10.7984 -0.123524 0.142369 +-10.5996 -0.0606205 0.0698688 +11.1 0 0 +10.2996 -0.0582898 0.0684201 +10.4984 -0.118839 0.139492 +11.0962 -0.188432 0.22118 +11.6929 -0.2648 0.31082 +11.7888 -0.333792 0.391802 +23.8672 -0.81117 0.952145 +30.4431 -1.2075 1.41736 +31.8223 -1.44307 1.69387 +29.4091 -1.50099 1.76185 +33.1733 -1.88215 2.20925 +23.8895 -1.49176 1.75101 +23.5702 -1.60656 1.88576 +19.0766 -1.40953 1.65449 +18.8584 -1.50163 1.7626 +24.1913 -2.06539 2.42433 +33.5701 -3.05963 3.59137 +40.154 -3.89172 4.56807 +46.0263 -4.72751 5.54911 +52.569 -5.70493 6.6964 +60.0733 -6.86929 8.06312 +73.0558 -8.78083 10.3069 +93.6472 -11.8049 13.8565 +94.6607 -12.4895 14.6601 +94.5869 -13.0383 15.3042 +94.6031 -13.6011 15.9649 +94.7088 -14.1797 16.644 +95.4867 -14.8665 17.4502 +95.3801 -15.422 18.1023 +95.0721 -15.945 18.7161 +94.9505 -16.4992 19.3666 +95.5921 -17.1919 20.1797 +95.3572 -17.7322 20.8139 +95.1149 -18.2712 21.4466 +95.7261 -18.9794 22.2779 +95.4671 -19.5205 22.913 +95.9616 -20.2203 23.7344 +95.7807 -20.7832 24.3951 +95.3083 -21.2822 24.9809 +95.9609 -22.0372 25.8671 +96.4125 -22.7569 26.7119 +95.2596 -23.0972 27.1113 +95.5986 -23.7981 27.9341 +96.2982 -24.5997 28.8749 +95.9635 -25.1437 29.5135 +96.453 -25.9092 30.412 +96.1007 -26.454 31.0515 +95.7411 -26.9969 31.6887 +96.105 -27.7487 32.5712 +94.909 -28.0495 32.9242 +94.4373 -28.5581 33.5213 +94.4104 -29.2032 34.2784 +93.7442 -29.651 34.8041 +93.6996 -30.2962 35.5614 +93.6448 -30.943 36.3207 +93.8457 -31.6814 37.1874 +93.8573 -32.3635 37.988 +93.3304 -32.8626 38.5738 +93.5843 -33.641 39.4875 +93.5632 -34.329 40.295 +93.7906 -35.1166 41.2195 +93.9176 -35.8764 42.1114 +93.6884 -36.5068 42.8513 +92.5115 -36.7645 43.1538 +91.5044 -37.0804 43.5247 +89.5682 -37.0045 43.4356 +88.3959 -37.2274 43.6973 +86.6407 -37.1894 43.6526 +85.2251 -37.2793 43.7582 +83.2367 -37.099 43.5465 +81.5875 -37.0479 43.4866 +80.3532 -37.1693 43.6291 +79.4455 -37.432 43.9374 +77.8133 -37.3402 43.8296 +77.5475 -37.8962 44.4822 +74.6545 -37.1493 43.6055 +74.3882 -37.6901 44.2403 +72.0782 -37.1811 43.6429 +69.71 -36.6081 42.9703 +68.8289 -36.795 43.1897 +68.3312 -37.1832 43.6453 +66.9157 -37.063 43.5042 +65.7352 -37.0573 43.4976 +64.7847 -37.1701 43.63 +63.8361 -37.275 43.7531 +62.6686 -37.2405 43.7126 +61.4337 -37.1515 43.6081 +60.2786 -37.096 43.543 +59.2017 -37.0753 43.5187 +57.4167 -36.5907 42.9499 +56.9928 -36.9601 43.3835 +55.9326 -36.9112 43.3261 +56.0589 -37.6462 44.1888 +53.6917 -36.6919 43.0687 +53.1277 -36.947 43.368 +51.3449 -36.3378 42.653 +50.8539 -36.6269 42.9924 +49.7628 -36.4762 42.8155 +49.27 -36.7564 43.1444 +48.1241 -36.5407 42.8912 +47.6948 -36.8614 43.2676 +46.6245 -36.6795 43.0541 +45.4999 -36.438 42.7706 +44.5098 -36.2881 42.5947 +44.0814 -36.5897 42.9487 +42.7351 -36.1175 42.3944 +42.6687 -36.7205 43.1022 +41.6971 -36.5435 42.8945 +41.2625 -36.8306 43.2314 +40.3008 -36.6403 43.0081 +39.7488 -36.8138 43.2118 +38.7422 -36.5564 42.9096 +38.1929 -36.7205 43.1022 +37.2557 -36.5026 42.8465 +37.1988 -37.1472 43.603 +36.1065 -36.7546 43.1423 +35.6106 -36.9575 43.3805 +34.6939 -36.7153 43.0961 +34.1985 -36.9103 43.325 +33.2438 -36.5995 42.9602 +32.75 -36.7863 43.1794 +31.7613 -36.4057 42.7327 +31.3187 -36.6408 43.0087 +30.8245 -36.8167 43.2151 +29.8114 -36.3599 42.6789 +29.321 -36.5272 42.8753 +28.8738 -36.7495 43.1363 +27.9766 -36.3892 42.7133 +27.4859 -36.5461 42.8975 +26.95 -36.6417 43.0097 +26.4982 -36.8516 43.2561 +25.628 -36.4691 42.8071 +25.1363 -36.6127 42.9757 +24.3237 -36.2778 42.5826 +23.8346 -36.4141 42.7426 +23.4202 -36.6674 43.0399 +22.851 -36.6783 43.0527 +22.0267 -36.2632 42.5654 +21.5738 -36.447 42.7812 +21.1525 -36.6892 43.0655 +20.2818 -36.1372 42.4175 +19.7947 -36.2505 42.5506 +19.2736 -36.2999 42.6085 +18.5623 -35.9771 42.2296 +18.3865 -36.6976 43.0753 +17.8619 -36.7383 43.1232 +17.133 -36.3419 42.6578 +16.6717 -36.4996 42.843 +16.2075 -36.6549 43.0253 +15.6602 -36.6203 42.9845 +14.9597 -36.2064 42.4987 +14.497 -36.3524 42.6702 +14.0073 -36.4331 42.7649 +13.5165 -36.511 42.8563 +13.0022 -36.5229 42.8703 +12.5535 -36.7217 43.1037 +12.1628 -37.1085 43.5577 +11.5035 -36.6676 43.0401 +10.8952 -36.3493 42.6665 +10.4056 -36.4096 42.7373 +9.91531 -36.4671 42.8048 +9.42422 -36.5218 42.869 +8.96369 -36.7018 43.0803 +8.33645 -36.1739 42.4607 +7.97462 -36.7977 43.1929 +7.47915 -36.8415 43.2442 +6.97093 -36.818 43.2166 +6.37334 -36.2762 42.5806 +5.88495 -36.3108 42.6214 +5.39612 -36.3428 42.6588 +4.91558 -36.4365 42.7689 +4.41725 -36.3983 42.724 +3.97612 -36.8748 43.2833 +3.43093 -36.378 42.7002 +2.94128 -36.3961 42.7214 +2.45141 -36.4113 42.7393 +1.96135 -36.4238 42.754 +1.47114 -36.4335 42.7653 +0.980825 -36.4404 42.7735 +0.492177 -36.5743 42.9307 +3.44727e-15 -36.5108 42.8561 +-0.492177 -36.5743 42.9307 +-0.98257 -36.5053 42.8496 +-1.49209 -36.9522 43.3741 +-1.96135 -36.4238 42.754 +-2.45577 -36.4761 42.8153 +-2.94651 -36.4608 42.7974 +-3.47366 -36.8311 43.2321 +-3.97612 -36.8748 43.2833 +-4.46432 -36.7862 43.1793 +-4.95045 -36.695 43.0722 +-5.45362 -36.73 43.1134 +-6.03129 -37.2138 43.6812 +-6.44126 -36.6627 43.0344 +-7.03186 -37.1398 43.5944 +-7.45305 -36.7129 43.0932 +-7.93287 -36.6051 42.9667 +-8.39557 -36.4305 42.7618 +-8.91676 -36.5097 42.8548 +-9.44072 -36.5857 42.9441 +-9.91531 -36.4671 42.8048 +-10.4056 -36.4096 42.7373 +-10.8952 -36.3493 42.6665 +-11.4038 -36.3498 42.6671 +-11.8925 -36.2839 42.5897 +-12.402 -36.2786 42.5835 +-13.0472 -36.6493 43.0187 +-13.3531 -36.0696 42.3382 +-14.0315 -36.4961 42.8388 +-14.472 -36.2896 42.5965 +-14.9856 -36.269 42.5723 +-15.4731 -36.1828 42.4711 +-15.9594 -36.0939 42.3667 +-16.7001 -36.5618 42.916 +-17.2792 -36.652 43.0218 +-17.7416 -36.4909 42.8328 +-18.541 -37.0059 43.4372 +-18.7527 -36.3461 42.6627 +-19.5666 -36.8518 43.2563 +-20.0952 -36.8007 43.1964 +-20.5896 -36.6856 43.0613 +-21.0475 -36.507 42.8516 +-21.8604 -36.9313 43.3497 +-22.3199 -36.7459 43.132 +-22.851 -36.6783 43.0527 +-23.3054 -36.4877 42.829 +-24.1081 -36.8319 43.233 +-24.6427 -36.7536 43.1411 +-25.1363 -36.6127 42.9757 +-25.6695 -36.5281 42.8764 +-26.5827 -36.9692 43.3942 +-26.6917 -36.2905 42.5975 +-28.1434 -37.4204 43.9238 +-28.1551 -36.6214 42.9858 +-29.1462 -37.0962 43.5432 +-29.4596 -36.6998 43.0779 +-30.4218 -37.1042 43.5526 +-30.9199 -36.9306 43.3489 +-31.8035 -37.2081 43.6745 +-32.4015 -37.1395 43.594 +-33.3 -37.404 43.9045 +-33.7513 -37.1583 43.616 +-34.6106 -37.3549 43.8469 +-35.1642 -37.213 43.6803 +-35.8225 -37.1776 43.6387 +-36.2677 -36.9187 43.3349 +-37.689 -37.6367 44.1776 +-38.194 -37.4219 43.9256 +-39.1435 -37.6344 44.175 +-39.7051 -37.4649 43.976 +-40.2077 -37.2389 43.7107 +-41.2299 -37.485 43.9996 +-42.3205 -37.7749 44.3399 +-42.7678 -37.4819 43.9959 +-43.3307 -37.2902 43.771 +-44.3787 -37.5066 44.025 +-44.9433 -37.3051 43.7885 +-46.0038 -37.5061 44.0244 +-47.0102 -37.6475 44.1904 +-47.515 -37.3801 43.8765 +-48.7233 -37.6562 44.2006 +-49.1632 -37.3297 43.8173 +-50.1885 -37.4416 43.9487 +-51.4193 -37.6905 44.2408 +-52.5937 -37.88 44.4632 +-53.0338 -37.5331 44.056 +-54.8327 -38.1326 44.7598 +-54.9307 -37.5387 44.0626 +-56.0589 -37.6462 44.1888 +-56.9839 -37.6051 44.1405 +-58.1242 -37.6939 44.2447 +-58.6292 -37.3634 43.8569 +-59.9929 -37.5708 44.1003 +-61.4392 -37.8102 44.3813 +-62.9696 -38.0803 44.6983 +-63.1109 -37.5034 44.0212 +-64.6536 -37.7523 44.3134 +-65.1591 -37.385 43.8822 +-67.6974 -38.1636 44.7961 +-67.9803 -37.6527 44.1964 +-70.2463 -38.2252 44.8685 +-70.758 -37.8263 44.4002 +-72.6631 -38.159 44.7907 +-73.6434 -37.9885 44.5906 +-74.861 -37.9296 44.5215 +-76.2413 -37.9389 44.5323 +-78.426 -38.3255 44.9862 +-79.3407 -38.0731 44.6899 +-81.7107 -38.4994 45.1902 +-82.2257 -38.0355 44.6457 +-85.1099 -38.6474 45.364 +-85.6267 -38.1643 44.7969 +-87.7951 -38.4035 45.0777 +-88.8088 -38.12 44.7449 +-92.086 -38.7815 45.5214 +-93.2791 -38.5376 45.2351 +-95.8294 -38.8331 45.5819 +-97.1157 -38.5942 45.3016 +-99.9457 -38.9449 45.7133 +-101.241 -38.6741 45.3954 +-103.75 -38.8455 45.5965 +-105.922 -38.8636 45.6177 +-109.153 -39.2373 46.0564 +-110.995 -39.0823 45.8745 +-114.165 -39.366 46.2075 +-115.223 -38.8981 45.6582 +-121.979 -40.3054 47.3102 +-124.038 -40.1055 47.0755 +-127.539 -40.3402 47.351 +-131.055 -40.5382 47.5834 +-133.318 -40.3157 47.3222 +-136.221 -40.2589 47.2556 +-138.311 -39.9349 46.8752 +-137.284 -38.711 45.4387 +-138.996 -38.2621 44.9117 +-137.104 -36.8287 43.2293 +-137.316 -35.9786 42.2313 +-13.398 -3.42256 4.01738 +-14.3771 -3.57902 4.20102 +-44.3046 -10.7424 12.6093 +-41.7224 -9.84801 11.5595 +-15.2708 -3.5069 4.11637 +-15.0337 -3.35701 3.94043 +-15.5525 -3.37469 3.96119 +-16.3582 -3.44686 4.0459 +-15.5456 -3.17865 3.73107 +-15.6834 -3.10952 3.64993 +-16.0123 -3.0759 3.61047 +-16.0531 -2.98516 3.50396 +-15.6108 -2.80755 3.29548 +-14.4889 -2.51769 2.95524 +-13.5541 -2.27322 2.66829 +-14.0693 -2.27487 2.67023 +-11.8629 -1.84696 2.16795 +-13.2514 -1.98399 2.32879 +-13.3753 -1.92296 2.25716 +-11.4443 -1.57753 1.8517 +-13.7189 -1.81008 2.12465 +-12.1722 -1.53438 1.80105 +-13.7656 -1.65453 1.94208 +-14.2797 -1.63287 1.91665 +-13.3149 -1.44496 1.69608 +-13.8276 -1.42028 1.66711 +-13.4506 -1.30363 1.53019 +-13.6657 -1.24551 1.46197 +-12.7896 -1.09195 1.28172 +-13.2009 -1.05114 1.23382 +-13.8106 -1.02044 1.19778 +-14.0228 -0.9558 1.12191 +-12.1438 -0.75831 0.890098 +-13.2494 -0.751728 0.882372 +-12.5612 -0.641103 0.752521 +-12.1703 -0.551897 0.647812 +-10.8797 -0.431534 0.506531 +-11.1847 -0.38013 0.446193 +-10.3901 -0.294189 0.345317 +-10.8934 -0.246695 0.289568 +-11.0962 -0.188432 0.22118 +-11.4982 -0.130157 0.152777 +-10.4996 -0.0594216 0.0697486 +10.3 0 0 +10.7996 -0.0604696 0.07229 +11.0983 -0.124294 0.148591 +11.0962 -0.186429 0.222872 +12.3924 -0.277659 0.331936 +15.0856 -0.422599 0.505207 +34.7523 -1.16856 1.39699 +33.3377 -1.30826 1.56399 +34.815 -1.562 1.86734 +33.4964 -1.69143 2.02207 +34.4683 -1.93483 2.31305 +32.3504 -1.99861 2.38929 +28.3439 -1.9114 2.28503 +18.6792 -1.36549 1.63241 +19.7517 -1.55603 1.8602 +28.157 -2.37841 2.84334 +34.5604 -3.11639 3.72558 +40.4507 -3.87879 4.63701 +46.4214 -4.71739 5.63953 +53.9498 -5.79252 6.92483 +64.3079 -7.27535 8.69752 +89.8695 -10.6869 12.7759 +93.8436 -11.7038 13.9916 +94.7587 -12.3695 14.7875 +94.6847 -12.913 15.4372 +94.6031 -13.4565 16.0869 +94.7088 -14.0289 16.7713 +94.6116 -14.5737 17.4225 +94.5068 -15.1184 18.0737 +95.1689 -15.7916 18.8785 +94.9505 -16.3238 19.5147 +95.5921 -17.0091 20.334 +95.3572 -17.5437 20.9731 +95.1149 -18.0769 21.6106 +95.6305 -18.7589 22.4258 +95.3717 -19.2936 23.0651 +95.9616 -20.0053 23.9159 +95.6859 -20.5418 24.5573 +95.4974 -21.0977 25.2218 +95.6781 -21.7387 25.9881 +96.0366 -22.4272 26.8112 +95.0722 -22.8067 27.2649 +95.5986 -23.5451 28.1477 +96.2982 -24.3381 29.0957 +95.9635 -24.8764 29.7392 +95.6215 -25.4127 30.3803 +96.2848 -26.2229 31.3489 +95.9245 -26.7611 31.9922 +96.2877 -27.5058 32.8826 +95.5459 -27.9375 33.3987 +95.3436 -28.5256 34.1017 +94.1396 -28.8098 34.4414 +93.924 -29.392 35.1375 +93.7891 -30.0027 35.8675 +94.1794 -30.7888 36.8074 +93.9344 -31.3742 37.5072 +94.0339 -32.0797 38.3505 +93.2425 -32.4825 38.8321 +93.7592 -33.3455 39.8638 +93.9984 -34.1219 40.792 +93.7906 -34.7432 41.5347 +93.5729 -35.3647 42.2777 +93.2598 -35.9533 42.9814 +93.8757 -36.91 44.1251 +92.4372 -37.0602 44.3046 +90.3272 -36.9213 44.1386 +88.8152 -37.0063 44.2403 +87.1411 -37.0064 44.2403 +86.137 -37.2776 44.5646 +84.2257 -37.1407 44.4009 +83.062 -37.3165 44.611 +80.8417 -36.9977 44.2299 +80.3354 -37.4489 44.7694 +79.1799 -37.5919 44.9403 +78.0267 -37.725 45.0993 +75.8446 -37.3402 44.6394 +74.861 -37.5264 44.8619 +73.1739 -37.345 44.6451 +72.6631 -37.7533 45.1332 +69.9863 -37.016 44.2518 +69.1738 -37.2414 44.5213 +67.8282 -37.169 44.4347 +67.0937 -37.421 44.736 +65.234 -37.03 44.2686 +64.9509 -37.5227 44.8575 +63.1109 -37.1046 44.3578 +62.6039 -37.4566 44.7786 +60.4962 -36.8341 44.0343 +60.4245 -37.4388 44.7572 +58.7718 -37.0561 44.2998 +58.2656 -37.3838 44.6915 +56.4933 -36.8849 44.0951 +55.9895 -37.1998 44.4715 +54.9307 -37.1395 44.3995 +53.7415 -36.9764 44.2045 +52.6285 -36.8502 44.0536 +52.2591 -37.2388 44.5182 +50.3591 -36.5208 43.6599 +49.9261 -36.8499 44.0532 +48.7086 -36.5913 43.7441 +48.2091 -36.8626 44.0685 +46.5609 -36.24 43.3241 +46.6326 -36.9481 44.1706 +45.0078 -36.304 43.4006 +45.128 -37.0602 44.3046 +43.1003 -36.0389 43.0837 +43.3909 -36.9449 44.1669 +41.9945 -36.4129 43.5308 +41.8503 -36.958 44.1825 +40.2427 -36.1985 43.2745 +40.2651 -36.8955 44.1077 +39.1953 -36.5907 43.7434 +39.1435 -37.2343 44.5128 +37.6973 -36.5425 43.6858 +37.1444 -36.6984 43.8721 +36.1603 -36.4179 43.5368 +36.1405 -37.1087 44.3627 +35.0597 -36.7079 43.8835 +34.6106 -36.9578 44.1822 +33.6498 -36.6526 43.8174 +33.6 -37.3397 44.6388 +32.6969 -37.0797 44.3279 +31.8035 -36.8125 44.0085 +30.8245 -36.4252 43.5456 +30.7504 -37.1063 44.3598 +29.8751 -36.8218 44.0196 +29.3278 -36.9304 44.1495 +28.3336 -36.4616 43.5891 +27.8804 -36.6766 43.846 +27.3375 -36.7734 43.9618 +26.794 -36.8669 44.0735 +26.0013 -36.6068 43.7626 +25.5024 -36.751 43.935 +24.6826 -36.4216 43.5413 +24.2644 -36.6766 43.8461 +23.3054 -36.0998 43.1565 +23.2256 -36.8832 44.0931 +22.3566 -36.4149 43.5332 +21.8604 -36.5387 43.6812 +21.0825 -36.1789 43.2511 +20.8974 -36.8382 44.0392 +20.1286 -36.47 43.599 +19.6318 -36.5813 43.7321 +18.8162 -36.0813 43.1344 +18.6337 -36.7955 43.9882 +17.8319 -36.2865 43.3797 +17.3961 -36.5077 43.6441 +16.9841 -36.7883 43.9796 +16.6485 -37.252 44.534 +15.6334 -36.1691 43.2394 +15.2186 -36.4412 43.5646 +14.7474 -36.5871 43.7391 +14.225 -36.606 43.7617 +13.7032 -36.6219 43.7807 +13.1821 -36.6347 43.796 +12.7483 -36.895 44.1072 +12.1628 -36.714 43.8907 +11.5035 -36.2777 43.3692 +11.0478 -36.4667 43.5951 +10.4239 -36.0856 43.1395 +10.0716 -36.648 43.8119 +9.42422 -36.1335 43.1968 +9.08884 -36.8186 44.0158 +8.4547 -36.297 43.3922 +8.08596 -36.9148 44.1308 +7.4661 -36.3861 43.4988 +6.97093 -36.4265 43.5471 +6.47522 -36.4642 43.5921 +5.98948 -36.5629 43.7101 +5.47279 -36.4673 43.5958 +4.97659 -36.4965 43.6308 +4.48786 -36.587 43.7389 +3.97612 -36.4827 43.6143 +3.49198 -36.6316 43.7923 +2.98315 -36.5217 43.6609 +2.45141 -36.0242 43.0661 +1.98927 -36.5495 43.6941 +1.47114 -36.0461 43.0923 +0.996532 -36.6304 43.7908 +0.491304 -36.1213 43.1822 +3.49625e-15 -36.6359 43.7975 +-0.498285 -36.6345 43.7958 +-0.996532 -36.6304 43.7908 +-1.49209 -36.5593 43.7058 +-1.99276 -36.6136 43.7708 +-2.49067 -36.6011 43.7558 +-2.99362 -36.6498 43.814 +-3.47977 -36.5036 43.6392 +-3.98309 -36.5467 43.6908 +-4.46432 -36.3951 43.5095 +-5.0376 -36.944 44.1657 +-5.5303 -36.8505 44.054 +-6.03129 -36.8181 44.0152 +-6.44126 -36.2729 43.3635 +-7.04405 -36.8087 44.0039 +-7.45305 -36.3225 43.4228 +-7.94678 -36.2794 43.3712 +-8.41036 -36.1066 43.1647 +-9.04191 -36.6285 43.7886 +-9.53975 -36.5765 43.7264 +-9.91531 -36.0793 43.1321 +-10.4056 -36.0225 43.0641 +-11.0669 -36.5297 43.6704 +-11.3839 -35.9005 42.9182 +-12.0797 -36.463 43.5907 +-12.3803 -35.8301 42.8341 +-13.0472 -36.2596 43.3476 +-13.5398 -36.1852 43.2586 +-14.225 -36.606 43.7617 +-14.7223 -36.525 43.6648 +-15.2444 -36.5031 43.6387 +-15.7136 -36.3546 43.4611 +-16.5107 -36.9437 44.1653 +-16.7285 -36.2346 43.3177 +-17.5423 -36.8145 44.0109 +-18.0423 -36.7149 43.8918 +-18.5101 -36.5514 43.6964 +-19.07 -36.5681 43.7164 +-19.8271 -36.9453 44.1672 +-20.0952 -36.4095 43.5267 +-20.8632 -36.7779 43.9671 +-21.4327 -36.7799 43.9695 +-22.183 -37.0778 44.3256 +-22.6864 -36.9521 44.1755 +-23.1507 -36.7643 43.9509 +-23.6498 -36.6333 43.7942 +-24.4988 -37.031 44.2697 +-25.0414 -36.9512 44.1744 +-25.9498 -37.3957 44.7058 +-26.1257 -36.782 43.972 +-26.9208 -37.0413 44.2821 +-27.5097 -37.005 44.2387 +-28.4065 -37.3686 44.6733 +-29.0029 -37.3229 44.6187 +-29.464 -37.1019 44.3546 +-30.3369 -37.3909 44.6999 +-30.8912 -37.2763 44.563 +-31.397 -37.1019 44.3545 +-32.2883 -37.3736 44.6793 +-32.4015 -36.7446 43.9274 +-33.75 -37.5064 44.8381 +-34.2081 -37.2607 44.5444 +-35.5376 -37.9477 45.3657 +-35.6867 -37.3644 44.6683 +-36.7764 -37.7617 45.1432 +-36.7513 -37.0132 44.2485 +-38.1792 -37.7208 45.0944 +-38.194 -37.0241 44.2614 +-39.7586 -37.8195 45.2123 +-40.2715 -37.5954 44.9445 +-41.2401 -37.7889 45.1758 +-41.288 -37.1387 44.3985 +-42.8495 -37.8404 45.2374 +-43.4221 -37.6507 45.0106 +-43.9325 -37.4061 44.7182 +-44.9266 -37.566 44.9093 +-46.0515 -37.8186 45.2113 +-46.5018 -37.509 44.8412 +-47.6396 -37.7459 45.1243 +-48.1511 -37.4777 44.8038 +-49.2375 -37.649 45.0086 +-49.8127 -37.4207 44.7356 +-51.5662 -38.0604 45.5004 +-52.0819 -37.7702 45.1535 +-53.7981 -38.3354 45.8292 +-53.7094 -37.607 44.9584 +-55.0373 -37.868 45.2703 +-55.5502 -37.5584 44.9002 +-57.3093 -38.0767 45.5198 +-57.6147 -37.6171 44.9704 +-59.4677 -38.1551 45.6136 +-59.7704 -37.6857 45.0525 +-61.7913 -38.2857 45.7696 +-62.5273 -38.0707 45.5127 +-63.9203 -38.2443 45.7202 +-64.438 -37.8849 45.2906 +-66.4371 -38.3813 45.884 +-66.5073 -37.7528 45.1326 +-69.2069 -38.5997 46.145 +-69.5011 -38.0857 45.5306 +-71.6252 -38.5612 46.099 +-71.9154 -38.0363 45.4715 +-74.062 -38.4801 46.0021 +-74.3478 -37.9441 45.3614 +-76.6734 -38.435 45.9481 +-77.1933 -38.0042 45.4332 +-79.5441 -38.4586 45.9764 +-80.5465 -38.2407 45.716 +-82.4388 -38.4294 45.9415 +-82.9584 -37.9664 45.388 +-86.2567 -38.7517 46.3268 +-86.8629 -38.3036 45.7911 +-89.0386 -38.5334 46.0658 +-91.1437 -38.7062 46.2724 +-92.5054 -38.5439 46.0784 +-94.5442 -38.645 46.1993 +-97.3559 -39.0322 46.6621 +-98.6505 -38.7873 46.3694 +-101.746 -39.2248 46.8924 +-102.448 -38.7188 46.2875 +-105.395 -39.042 46.6738 +-107.228 -38.9243 46.5332 +-111.252 -39.5667 47.3011 +-112.137 -39.0648 46.7011 +-115.754 -39.4896 47.209 +-119.214 -39.8177 47.6012 +-123.672 -40.4304 48.3336 +-125.649 -40.1944 48.0516 +-130.505 -40.8395 48.8227 +-132.138 -40.4386 48.3435 +-135.402 -40.5108 48.4297 +-137.768 -40.2832 48.1577 +-137.397 -39.2494 46.9217 +-138.659 -38.6833 46.245 +-138.72 -37.7801 45.1652 +-138.12 -36.7073 43.8828 +-137.223 -35.572 42.5256 +-137.237 -34.6847 41.4648 +-13.3502 -3.28803 3.93077 +-46.9273 -11.2573 13.4579 +-43.1319 -10.0724 12.0414 +-15.2708 -3.46962 4.14785 +-16.452 -3.63465 4.34515 +-15.9318 -3.42024 4.08883 +-15.312 -3.19212 3.81611 +-15.3548 -3.10627 3.71347 +-15.5878 -3.0577 3.65541 +-15.7246 -2.98852 3.57271 +-15.7647 -2.90037 3.46732 +-15.2254 -2.70912 3.23869 +-15.0684 -2.59055 3.09695 +-14.135 -2.34544 2.80392 +-14.0693 -2.25069 2.69064 +-13.3215 -2.052 2.45312 +-12.2771 -1.81857 2.17406 +-12.8871 -1.83308 2.19141 +-13.3028 -1.81422 2.16886 +-13.7189 -1.79083 2.1409 +-13.7428 -1.71395 2.04899 +-13.0773 -1.55509 1.85908 +-13.0979 -1.48181 1.77147 +-13.7094 -1.47196 1.75969 +-13.5313 -1.37507 1.64386 +-13.8462 -1.3277 1.58724 +-14.5569 -1.31263 1.56922 +-13.9794 -1.18083 1.41166 +-13.9949 -1.10252 1.31804 +-13.5126 -0.987798 1.18089 +-13.5255 -0.912107 1.0904 +-12.8406 -0.793293 0.948365 +-14.146 -0.794063 0.949285 +-12.3618 -0.624218 0.746239 +-12.6691 -0.568407 0.679518 +-11.9776 -0.470032 0.561913 +-10.6853 -0.359299 0.429533 +-10.3901 -0.291061 0.347957 +-11.2931 -0.253028 0.302489 +-11.0962 -0.186429 0.222872 +-11.0983 -0.124294 0.148591 +-11.0996 -0.0621493 0.0742981 +11.4 0 0 +11.4996 -0.063693 0.0775521 +11.6982 -0.129597 0.157796 +11.3961 -0.189398 0.23061 +29.582 -0.65564 0.798303 +31.5699 -0.874819 1.06517 +38.4472 -1.27883 1.55709 +36.3321 -1.41036 1.71724 +37.3089 -1.6558 2.01609 +35.9887 -1.79764 2.18879 +27.9931 -1.55437 1.89259 +31.355 -1.91618 2.33312 +26.6532 -1.77796 2.16483 +20.5669 -1.48724 1.81086 +21.042 -1.63977 1.99657 +30.1399 -2.5184 3.06638 +36.4419 -3.25054 3.95784 +41.4398 -3.93069 4.78598 +48.3967 -4.86498 5.92357 +56.9087 -6.04418 7.35936 +65.4897 -7.32899 8.92373 +90.1645 -10.6061 12.9139 +94.0399 -11.6016 14.126 +94.9547 -12.2612 14.9291 +95.1738 -12.8394 15.6331 +94.896 -13.3523 16.2576 +95.196 -13.9487 16.9839 +94.9033 -14.4607 17.6072 +94.7979 -15.0011 18.2652 +95.3625 -15.6526 19.0586 +95.3369 -16.2131 19.7409 +95.5921 -16.8253 20.4863 +95.3572 -17.3541 21.1302 +95.1149 -17.8816 21.7725 +95.7261 -18.5747 22.6164 +95.4671 -19.1042 23.2612 +95.2008 -19.6322 23.904 +95.7807 -20.34 24.7658 +95.4974 -20.8697 25.4108 +95.8666 -21.5461 26.2344 +95.5667 -22.0762 26.8798 +96.1026 -22.8048 27.7669 +95.7854 -23.3362 28.414 +96.4843 -24.1216 29.3704 +96.149 -24.6551 30.0199 +96.6378 -25.4053 30.9333 +96.3769 -25.9643 31.614 +96.0162 -26.4971 32.2627 +96.379 -27.2344 33.1604 +95.9099 -27.7409 33.7771 +96.6124 -28.5929 34.8145 +94.2299 -28.5258 34.7328 +93.924 -29.0744 35.4008 +94.1471 -29.7917 36.2742 +94.1794 -30.4561 37.0831 +93.757 -30.9765 37.7168 +94.0339 -31.733 38.6379 +94.2092 -32.4646 39.5287 +93.6718 -32.9544 40.125 +93.9984 -33.7532 41.0976 +94.2236 -34.5264 42.0391 +93.8314 -35.0791 42.7121 +94.2027 -35.9244 43.7413 +93.4494 -36.3453 44.2537 +93.7941 -37.1978 45.2918 +91.0019 -36.7951 44.8015 +90.4926 -37.2978 45.4135 +88.5587 -37.202 45.2969 +88.0438 -37.6911 45.8924 +85.6267 -37.3505 45.4777 +84.2088 -37.4229 45.5658 +82.2257 -37.2244 45.3242 +81.7107 -37.6784 45.877 +79.823 -37.4877 45.6448 +78.8253 -37.6992 45.9023 +76.7966 -37.4003 45.5383 +76.5158 -37.9414 46.1972 +74.5826 -37.6526 45.8455 +74.062 -38.0642 46.3467 +71.7611 -37.5445 45.7139 +69.7866 -37.1654 45.2523 +68.2845 -37.0146 45.0687 +68.3767 -37.7245 45.9331 +66.1328 -37.1345 45.2148 +66.2885 -37.8816 46.1244 +64.438 -37.4755 45.6299 +63.2621 -37.4414 45.5884 +62.3097 -37.5282 45.6941 +61.7913 -37.8719 46.1126 +59.3424 -37.0116 45.0651 +58.8313 -37.3388 45.4635 +57.7549 -37.3011 45.4175 +56.6147 -37.2087 45.305 +55.4814 -37.1065 45.1806 +55.0373 -37.4587 45.6095 +53.2365 -36.8731 44.8965 +52.7944 -37.2137 45.3111 +51.2205 -36.7442 44.7394 +51.2382 -37.4096 45.5497 +49.3581 -36.6785 44.6595 +49.4304 -37.388 45.5234 +47.7059 -36.7299 44.722 +47.199 -36.9927 45.0421 +45.6303 -36.4083 44.3306 +45.6205 -37.0598 45.1237 +44.0135 -36.4047 44.3261 +44.1732 -37.2046 45.3001 +42.7083 -36.6316 44.6023 +42.4969 -37.1234 45.2012 +41.7525 -37.1507 45.2345 +40.7813 -36.9646 45.0079 +39.6484 -36.6137 44.5806 +39.7586 -37.4108 45.5511 +38.1388 -36.571 44.5286 +38.1247 -37.2599 45.3674 +37.1274 -36.9879 45.0362 +36.5644 -37.1383 45.2193 +35.6344 -36.9065 44.9371 +35.5891 -37.5921 45.7719 +34.1066 -36.7487 44.745 +34.05 -37.4309 45.5756 +33.0909 -37.1209 45.1982 +32.6277 -37.3583 45.4872 +31.6833 -37.0356 45.0943 +31.1729 -37.2096 45.3062 +29.7828 -36.3112 44.2123 +29.7364 -37.0403 45.1 +28.8244 -36.6924 44.6765 +28.7133 -37.364 45.4942 +27.811 -37.0061 45.0584 +27.3434 -37.2162 45.3142 +26.3745 -36.731 44.7234 +25.8685 -36.8757 44.8996 +25.0414 -36.5519 44.5054 +24.9286 -37.2734 45.3839 +24.0708 -36.8823 44.9077 +23.7875 -37.3673 45.4982 +22.6498 -36.4938 44.4346 +22.2188 -36.7363 44.7299 +21.4327 -36.3824 44.299 +20.9658 -36.5594 44.5145 +20.429 -36.6143 44.5813 +19.9248 -36.726 44.7173 +19.1335 -36.2933 44.1905 +18.8809 -36.8808 44.9058 +18.1927 -36.6208 44.5892 +17.6593 -36.6594 44.6363 +17.1545 -36.7558 44.7537 +16.7588 -37.0935 45.1648 +16.0878 -36.818 44.8293 +15.6586 -37.0895 45.16 +14.8976 -36.5604 44.5157 +14.4427 -36.7647 44.7645 +13.7266 -36.2879 44.1839 +13.3621 -36.7336 44.7265 +12.7266 -36.4344 44.3622 +12.5371 -37.4347 45.5802 +11.8624 -37.0051 45.0572 +11.4104 -37.2563 45.3631 +10.7519 -36.8189 44.8304 +10.2279 -36.8145 44.8251 +9.7213 -36.8698 44.8924 +9.24528 -37.0476 45.1089 +8.57295 -36.4069 44.3288 +8.1973 -37.0187 45.0737 +7.7141 -37.1885 45.2805 +7.19029 -37.1668 45.254 +6.57711 -36.6377 44.6098 +6.0731 -36.6727 44.6524 +5.50155 -36.2627 44.1532 +5.13347 -37.2402 45.3434 +4.54278 -36.6345 44.6059 +4.04588 -36.7216 44.7119 +3.53471 -36.6792 44.6604 +3.03025 -36.6974 44.6826 +2.52556 -36.7128 44.7013 +2.02068 -36.7254 44.7166 +1.51565 -36.7352 44.7285 +1.01398 -36.8691 44.8916 +0.499158 -36.3021 44.2012 +3.55748e-15 -36.8747 44.8984 +-0.506139 -36.8098 44.8194 +-1.01224 -36.8057 44.8143 +-1.51565 -36.7352 44.7285 +-2.05209 -37.2963 45.4117 +-2.52992 -36.7762 44.7785 +-3.04072 -36.8242 44.8369 +-3.53471 -36.6792 44.6604 +-4.05285 -36.7849 44.789 +-4.55063 -36.6978 44.6829 +-5.11604 -37.1137 45.1894 +-5.61656 -37.0208 45.0763 +-6.12537 -36.9883 45.0367 +-6.64503 -37.0161 45.0705 +-7.15373 -36.9778 45.024 +-7.66189 -36.9368 44.974 +-8.16946 -36.8929 44.9206 +-8.66163 -36.7835 44.7873 +-9.15142 -36.6715 44.651 +-9.82033 -37.2454 45.3497 +-10.2105 -36.752 44.749 +-10.5697 -36.1948 44.0706 +-11.2577 -36.7579 44.7562 +-11.7428 -36.632 44.6029 +-12.2668 -36.6276 44.5976 +-12.7483 -36.4963 44.4377 +-13.4971 -37.1046 45.1783 +-13.7499 -36.3496 44.259 +-14.6605 -37.3189 45.4393 +-14.9727 -36.7447 44.7401 +-15.5291 -36.783 44.7867 +-15.9809 -36.5733 44.5314 +-16.7588 -37.0935 45.1648 +-17.0125 -36.4516 44.3832 +-17.8054 -36.9629 45.0058 +-18.3431 -36.9234 44.9577 +-18.85 -36.8204 44.8322 +-19.3556 -36.7146 44.7034 +-20.1852 -37.2061 45.3019 +-20.696 -37.0929 45.1641 +-21.171 -36.9172 44.9502 +-21.6778 -36.7985 44.8057 +-22.5413 -37.2696 45.3792 +-23.0163 -37.0843 45.1536 +-23.8624 -37.485 45.6415 +-24.0325 -36.8237 44.8363 +-25.2803 -37.7992 46.0241 +-25.3604 -37.0175 45.0723 +-26.3565 -37.5714 45.7467 +-26.4989 -36.9042 44.9343 +-27.8505 -37.9065 46.1547 +-27.9402 -37.178 45.2676 +-28.8448 -37.5352 45.7025 +-29.3598 -37.374 45.5063 +-30.2812 -37.7189 45.9263 +-30.4754 -37.1557 45.2405 +-31.6893 -37.8261 46.0568 +-31.7788 -37.1471 45.2301 +-32.6762 -37.4138 45.5548 +-33.1893 -37.2314 45.3327 +-34.15 -37.5408 45.7094 +-34.6649 -37.3503 45.4774 +-35.7436 -37.7553 45.9705 +-36.4181 -37.7182 45.9254 +-37.1473 -37.7304 45.9403 +-37.7184 -37.5767 45.7532 +-38.1792 -37.3131 45.4322 +-39.2427 -37.6295 45.8175 +-40.2619 -37.8843 46.1277 +-40.7812 -37.6599 45.8544 +-41.8137 -37.9005 46.1474 +-42.3913 -37.7191 45.9265 +-43.3786 -37.8937 46.1391 +-43.4221 -37.2438 45.3478 +-45.5574 -38.3705 46.7196 +-45.4745 -37.6132 45.7975 +-46.6056 -37.86 46.0981 +-47.1866 -37.6501 45.8425 +-48.8982 -38.3244 46.6636 +-48.7236 -37.5134 45.6761 +-50.5874 -38.2632 46.589 +-51.0466 -37.9333 46.1873 +-52.8128 -38.5592 46.9494 +-52.6783 -37.7899 46.0127 +-53.9988 -38.0627 46.3449 +-54.5201 -37.7622 45.979 +-56.2649 -38.2943 46.6269 +-56.1697 -37.5668 45.7411 +-58.4208 -38.3957 46.7504 +-58.7362 -37.9349 46.1892 +-60.7405 -38.5506 46.9389 +-61.3395 -38.2572 46.5817 +-62.4387 -38.2686 46.5956 +-63.1801 -38.0525 46.3324 +-64.7248 -38.3071 46.6425 +-65.4702 -38.0758 46.3608 +-67.4776 -38.5611 46.9517 +-68.0052 -38.1859 46.4949 +-70.2635 -38.7655 47.2006 +-70.7938 -38.3748 46.7249 +-73.004 -38.8788 47.3386 +-73.5358 -38.473 46.8445 +-75.15 -38.6234 47.0276 +-76.1478 -38.4428 46.8077 +-78.0131 -38.6839 47.1012 +-79.256 -38.598 46.9967 +-80.6622 -38.5777 46.972 +-81.913 -38.4693 46.8399 +-84.785 -39.096 47.603 +-85.7264 -38.8092 47.2538 +-87.4854 -38.879 47.3388 +-89.1705 -38.8963 47.3598 +-91.6916 -39.2527 47.7938 +-92.2278 -38.7433 47.1736 +-95.1891 -39.2335 47.7704 +-96.8213 -39.1481 47.6665 +-98.5432 -39.0812 47.585 +-100.185 -38.9651 47.4436 +-103.546 -39.4874 48.0796 +-103.826 -38.8158 47.2619 +-107.734 -39.4769 48.0668 +-109.926 -39.4725 48.0615 +-113.088 -39.7853 48.4423 +-114.422 -39.43 48.0097 +-119.375 -40.2846 49.0502 +-121.875 -40.2666 49.0284 +-126.968 -41.0595 49.9938 +-128.871 -40.7796 49.6529 +-133.291 -41.2606 50.2386 +-133.131 -40.3022 49.0717 +-138.212 -40.9045 49.805 +-137.677 -39.8216 48.4865 +-138.402 -39.1092 47.619 +-139.393 -38.4677 46.838 +-138.26 -37.2478 45.3526 +-138.305 -36.3592 44.2707 +-138.336 -35.4729 43.1916 +-12.9328 -3.23328 3.93682 +-12.3233 -3.00231 3.65559 +-14.1438 -3.35625 4.08655 +-48.6761 -11.2443 13.691 +-40.3451 -9.06756 11.0406 +-37.6316 -8.22389 10.0133 +-15.6473 -3.32287 4.0459 +-14.7414 -3.03995 3.70142 +-16.1178 -3.22538 3.9272 +-16.1616 -3.13599 3.81836 +-15.437 -2.90215 3.53364 +-15.2841 -2.78155 3.3868 +-15.3217 -2.6968 3.2836 +-14.7787 -2.51327 3.06015 +-15.3935 -2.52667 3.07646 +-14.3604 -2.27242 2.76688 +-13.6132 -2.07428 2.52562 +-13.8361 -2.02735 2.46848 +-12.4966 -1.75833 2.14093 +-13.9875 -1.88698 2.29758 +-12.739 -1.64494 2.00287 +-13.3501 -1.64699 2.00536 +-13.4706 -1.58455 1.92934 +-13.5903 -1.5209 1.85184 +-12.3286 -1.3094 1.59432 +-13.7289 -1.38007 1.68036 +-14.044 -1.33212 1.62198 +-13.6657 -1.21895 1.48419 +-12.8888 -1.07694 1.31128 +-13.1016 -1.02099 1.24315 +-12.8171 -0.926831 1.1285 +-13.7244 -0.915515 1.11472 +-13.1392 -0.802967 0.977688 +-12.7513 -0.708039 0.862103 +-13.6578 -0.682207 0.830651 +-12.6691 -0.562264 0.684609 +-12.7761 -0.49595 0.603865 +-12.0834 -0.401918 0.489373 +-11.7888 -0.326674 0.397756 +-11.6929 -0.259154 0.315544 +-11.3961 -0.189398 0.23061 +-11.4982 -0.127381 0.155099 +-10.7996 -0.0598161 0.0728317 +11.4 0 0 +12.0995 -0.0662771 0.0821998 +13.198 -0.144599 0.179338 +20.493 -0.336829 0.41775 +32.9799 -0.722884 0.896552 +36.5652 -1.00207 1.24281 +42.1422 -1.38628 1.71932 +38.4282 -1.47528 1.8297 +38.7055 -1.69884 2.10698 +37.3844 -1.84677 2.29044 +19.3262 -1.06129 1.31626 +23.4914 -1.41978 1.76088 +21.5811 -1.42374 1.76579 +20.3682 -1.45663 1.80658 +19.8509 -1.5299 1.89744 +33.1143 -2.73641 3.39381 +39.1156 -3.45056 4.27953 +43.5167 -4.08217 5.06289 +49.0881 -4.88006 6.05247 +54.1471 -5.68746 7.05383 +63.2247 -6.99748 8.67858 +92.131 -10.7179 13.2928 +94.2362 -11.4976 14.2598 +95.0527 -12.1385 15.0547 +94.2934 -12.5804 15.6027 +94.4078 -13.1371 16.2932 +94.9036 -13.7525 17.0565 +94.9033 -14.3012 17.737 +94.7009 -14.8205 18.381 +95.3625 -15.48 19.199 +95.1437 -16.0018 19.8462 +95.5921 -16.6397 20.6373 +95.3572 -17.1627 21.2859 +95.882 -17.827 22.1098 +95.6305 -18.3515 22.7604 +95.3717 -18.8746 23.4092 +95.9616 -19.5709 24.2726 +95.6859 -20.0957 24.9236 +95.4028 -20.6191 25.5727 +95.1125 -21.1409 26.2198 +95.3788 -21.7898 27.0247 +95.9152 -22.5093 27.917 +95.5053 -23.0113 28.5396 +95.2748 -23.5566 29.2159 +95.9635 -24.3362 30.1828 +96.453 -25.0771 31.1017 +95.4564 -25.4328 31.5428 +96.0162 -26.2049 32.5005 +95.5569 -26.7044 33.1199 +95.9099 -27.435 34.0261 +96.1593 -28.1449 34.9066 +94.5007 -28.2923 35.0893 +93.7442 -28.6987 35.5934 +94.2366 -29.4912 36.5763 +94.2685 -30.1487 37.3918 +93.8457 -30.6639 38.0308 +94.0339 -31.3831 38.9226 +93.4183 -31.8371 39.4857 +93.5843 -32.5605 40.383 +94.1725 -33.4428 41.4772 +94.137 -34.1143 42.31 +93.6591 -34.6286 42.9479 +93.6027 -35.302 43.783 +93.9609 -36.1412 44.8239 +93.2005 -36.5548 45.3368 +93.7851 -37.5023 46.512 +91.7506 -37.3992 46.3842 +89.7261 -37.2768 46.2323 +88.7899 -37.5914 46.6225 +86.8629 -37.4719 46.4742 +85.6014 -37.6222 46.6607 +84.0981 -37.6523 46.698 +82.6815 -37.7057 46.7642 +80.7876 -37.5224 46.5369 +79.9434 -37.8124 46.8966 +78.304 -37.7139 46.7744 +77.3827 -37.9481 47.0649 +75.7565 -37.8235 46.9103 +75.2277 -38.237 47.4232 +72.8414 -37.6894 46.744 +72.5444 -38.208 47.3872 +70.0334 -37.544 46.5638 +69.2823 -37.8026 46.8845 +67.6307 -37.5568 46.5796 +66.5115 -37.5899 46.6206 +65.1016 -37.4439 46.4395 +64.3591 -37.6706 46.7208 +62.5273 -37.244 46.1916 +62.2229 -37.7158 46.7768 +61.0542 -37.6593 46.7067 +59.8919 -37.5928 46.6242 +58.3157 -37.2479 46.1965 +57.7956 -37.566 46.5909 +56.7204 -37.5168 46.53 +56.1967 -37.8261 46.9135 +54.4526 -37.2995 46.2605 +53.9319 -37.5963 46.6286 +52.2145 -37.0441 45.9437 +51.6975 -37.3287 46.2967 +50.2023 -36.8945 45.7582 +49.3661 -36.9277 45.7993 +48.8508 -37.1967 46.1329 +47.7654 -37.0238 45.9186 +46.6886 -36.8419 45.693 +46.113 -37.0468 45.947 +45.718 -37.3975 46.3821 +44.0529 -36.6941 45.5096 +43.4221 -36.8331 45.6821 +43.3786 -37.4758 46.4791 +42.3913 -37.3031 46.265 +41.8137 -37.4825 46.4875 +40.7812 -37.2446 46.1923 +40.1501 -37.3625 46.3385 +39.1875 -37.1622 46.0902 +38.6694 -37.3755 46.3547 +37.611 -37.0565 45.959 +37.0414 -37.2079 46.1468 +36.0524 -36.9277 45.7993 +36.0012 -37.6079 46.643 +35.0201 -37.317 46.2821 +34.55 -37.5617 46.5857 +33.0909 -36.7116 45.5313 +33.0155 -37.3855 46.3671 +32.0651 -37.0685 45.9739 +31.5485 -37.2427 46.19 +30.6601 -36.9687 45.8501 +30.145 -37.1352 46.0567 +29.6275 -37.2989 46.2597 +29.1078 -37.4597 46.4592 +27.811 -36.598 45.3904 +27.6815 -37.261 46.2127 +26.7892 -36.8971 45.7614 +26.7226 -37.6732 46.7239 +25.3604 -36.6093 45.4045 +25.3585 -37.498 46.5066 +24.4152 -36.9975 45.8859 +24.1996 -37.5955 46.6275 +23.0529 -36.7338 45.5588 +22.5413 -36.8586 45.7137 +22.0981 -37.0983 46.0109 +21.5131 -37.1 46.013 +20.696 -36.6839 45.4969 +20.1527 -36.7365 45.5622 +19.7046 -36.9645 45.845 +19.19 -37.071 45.9771 +18.4032 -36.636 45.4375 +17.8639 -36.6753 45.4863 +17.2397 -36.5311 45.3075 +16.8139 -36.8051 45.6473 +16.4084 -37.1377 46.0598 +15.8397 -37.105 46.0192 +15.148 -36.7649 45.5974 +14.6847 -36.9683 45.8497 +14.1234 -36.9253 45.7963 +13.6095 -37.0012 45.8905 +12.9214 -36.5841 45.3732 +12.6618 -37.3903 46.373 +11.9621 -36.9046 45.7707 +11.563 -37.3384 46.3087 +10.9341 -37.03 45.9263 +10.4015 -37.0267 45.9221 +9.90286 -37.1442 46.0678 +9.37042 -37.135 46.0564 +8.88335 -37.3091 46.2724 +8.22513 -36.7347 45.56 +7.7141 -36.7784 45.6142 +7.31216 -37.38 46.3603 +6.67899 -36.7949 45.6346 +6.16718 -36.8301 45.6783 +5.66448 -36.925 45.7959 +5.13347 -36.8296 45.6776 +4.54278 -36.2305 44.9346 +4.10168 -36.8176 45.6627 +3.58965 -36.8386 45.6888 +3.07212 -36.7942 45.6338 +2.56482 -36.8723 45.7306 +2.05209 -36.885 45.7464 +1.54182 -36.9575 45.8363 +1.02795 -36.9646 45.8451 +0.507012 -36.4667 45.2276 +3.61259e-15 -37.033 45.9299 +-0.51312 -36.9061 45.7725 +-1.02795 -36.9646 45.8451 +-1.5392 -36.8948 45.7586 +-2.05558 -36.9477 45.8241 +-2.56482 -36.8723 45.7306 +-3.08259 -36.9196 45.7893 +-3.59576 -36.9012 45.7665 +-4.17841 -37.5063 46.517 +-4.62124 -36.8562 45.7107 +-5.27292 -37.83 46.9184 +-5.72199 -37.2999 46.2609 +-6.32397 -37.7665 46.8396 +-6.74691 -37.1691 46.0988 +-7.28779 -37.2554 46.2057 +-7.81852 -37.2762 46.2316 +-8.30863 -37.1077 46.0226 +-8.82422 -37.0607 45.9643 +-9.33914 -37.011 45.9027 +-9.85334 -36.9585 45.8375 +-10.3668 -36.9031 45.7688 +-10.7154 -36.2894 45.0077 +-11.4104 -36.8455 45.6974 +-11.7627 -36.2896 45.0079 +-12.4331 -36.7149 45.5354 +-12.9214 -36.5841 45.3732 +-13.677 -37.1847 46.1181 +-13.96 -36.498 45.2664 +-14.6605 -36.9074 45.7741 +-15.173 -36.8257 45.6728 +-15.7103 -36.8018 45.6432 +-16.2214 -36.7144 45.5348 +-17.0068 -37.2274 46.1711 +-17.5237 -37.1329 46.0539 +-18.0393 -37.0355 45.933 +-18.6137 -37.055 45.9572 +-19.4372 -37.5486 46.5694 +-19.6094 -36.7859 45.6235 +-20.4131 -37.2113 46.151 +-20.9965 -37.2163 46.1573 +-21.7867 -37.5718 46.5982 +-22.028 -36.9807 45.8651 +-22.828 -37.3274 46.2951 +-23.3095 -37.1426 46.0658 +-23.8624 -37.0717 45.9779 +-24.7979 -37.5774 46.6052 +-25.671 -37.9602 47.0799 +-26.1978 -37.8181 46.9036 +-26.7226 -37.6732 46.7239 +-27.2868 -37.5825 46.6115 +-27.8083 -37.4316 46.4243 +-28.3707 -37.3345 46.3039 +-29.2394 -37.629 46.6692 +-29.7614 -37.4674 46.4687 +-30.6898 -37.8063 46.889 +-31.1219 -37.5254 46.5406 +-32.1588 -37.9631 47.0835 +-32.2082 -37.234 46.1792 +-33.161 -37.5502 46.5714 +-34.125 -37.8588 46.9541 +-35.05 -38.1053 47.2599 +-35.5784 -37.9119 47.0199 +-36.2072 -37.8232 46.9099 +-36.6794 -37.5698 46.5957 +-37.6773 -37.8466 46.939 +-38.202 -37.6388 46.6812 +-39.214 -37.9019 47.0076 +-39.6843 -37.6333 46.6745 +-40.8211 -37.9869 47.113 +-41.291 -37.7101 46.7697 +-42.3299 -37.9453 47.0614 +-42.8559 -37.7119 46.772 +-43.9076 -37.9328 47.0459 +-45.0281 -38.1954 47.3717 +-46.0388 -38.3484 47.5613 +-46.6311 -38.1445 47.3085 +-47.1597 -37.8876 46.9899 +-48.4316 -38.2174 47.3988 +-49.4646 -38.3409 47.552 +-49.9957 -38.0685 47.2142 +-51.1659 -38.274 47.469 +-51.6961 -37.9923 47.1197 +-53.1408 -38.3709 47.5892 +-53.6722 -38.0783 47.2264 +-55.2033 -38.4825 47.7277 +-55.7362 -38.1788 47.3509 +-57.1515 -38.4687 47.7106 +-57.8906 -38.2909 47.49 +-58.8376 -38.2432 47.4309 +-59.7175 -38.1433 47.307 +-61.589 -38.658 47.9454 +-62.3381 -38.4512 47.6889 +-63.0142 -38.1955 47.3717 +-63.7604 -37.9785 47.1026 +-65.6756 -38.4412 47.6764 +-67.3871 -38.7584 48.0699 +-69.1868 -39.1019 48.4958 +-69.7278 -38.7214 48.0239 +-71.8484 -39.2027 48.6209 +-71.7823 -38.4816 47.7266 +-74.0765 -39.0149 48.388 +-74.6161 -38.6077 47.883 +-76.5489 -38.9086 48.2561 +-77.2434 -38.5659 47.8311 +-79.1951 -38.8369 48.1673 +-80.3667 -38.7073 48.0065 +-82.0997 -38.8323 48.1615 +-83.5207 -38.7918 48.1113 +-85.9176 -39.1814 48.5945 +-87.436 -39.1467 48.5514 +-89.1237 -39.1703 48.5807 +-90.077 -38.8584 48.1939 +-92.9351 -39.3463 48.799 +-94.2291 -39.1476 48.5525 +-96.6987 -39.4162 48.8857 +-98.0021 -39.1886 48.6034 +-100.07 -39.249 48.6783 +-102.146 -39.2897 48.7288 +-105.089 -39.6339 49.1557 +-106.411 -39.3435 48.7955 +-109.379 -39.6379 49.1606 +-111.493 -39.5936 49.1057 +-115.012 -40.016 49.6296 +-116.355 -39.654 49.1807 +-122.553 -40.9012 50.7274 +-124.536 -40.692 50.468 +-129.107 -41.2907 51.2105 +-130.75 -40.918 50.7483 +-134.37 -41.1358 51.0184 +-136.29 -40.8036 50.6064 +-138.212 -40.4534 50.1721 +-138.496 -39.6167 49.1344 +-139.042 -38.8566 48.1916 +-138.201 -37.7181 46.7796 +-137.892 -36.7389 45.5652 +-138.767 -36.0784 44.7459 +-139.634 -35.4109 43.9182 +-139.47 -34.4837 42.7682 +-139.29 -33.561 41.6238 +-14.1438 -3.31924 4.11667 +-14.3773 -3.28458 4.07368 +-42.5131 -9.4495 11.7197 +-17.3975 -3.76007 4.66341 +-15.6473 -3.28623 4.07572 +-15.6924 -3.20039 3.96926 +-15.3548 -3.03881 3.76887 +-15.3009 -2.93625 3.64166 +-15.7246 -2.92363 3.62601 +-15.7647 -2.83739 3.51905 +-16.6708 -2.90189 3.59905 +-14.9719 -2.51806 3.123 +-15.3935 -2.49881 3.09913 +-14.9426 -2.33848 2.90028 +-14.1966 -2.13931 2.65327 +-13.7386 -1.99087 2.46917 +-13.0824 -1.82045 2.2578 +-14.1831 -1.89227 2.34688 +-12.543 -1.60178 1.98659 +-13.5465 -1.65278 2.04984 +-13.2739 -1.5442 1.91518 +-12.901 -1.42784 1.77086 +-13.5121 -1.41927 1.76024 +-13.8276 -1.37466 1.70492 +-13.1539 -1.23393 1.53038 +-13.1706 -1.16183 1.44095 +-13.6819 -1.13061 1.40223 +-13.7964 -1.06327 1.31872 +-14.0094 -1.00188 1.24258 +-12.8293 -0.846373 1.04971 +-13.2388 -0.800132 0.992359 +-13.0502 -0.716645 0.888814 +-13.4584 -0.664836 0.824559 +-12.9683 -0.5692 0.705946 +-12.5765 -0.482817 0.598811 +-11.2845 -0.371206 0.460386 +-11.6889 -0.320333 0.397291 +-12.0926 -0.265058 0.328737 +-11.1962 -0.184024 0.228234 +-10.8983 -0.119404 0.14809 +-10.4996 -0.0575132 0.0713304 +11.9 0 0 +11.4996 -0.0622831 0.0786889 +26.6959 -0.2892 0.365377 +29.8898 -0.48576 0.613712 +35.3784 -0.766748 0.968715 +38.0637 -1.03142 1.3031 +40.7441 -1.32523 1.67431 +39.626 -1.50417 1.90038 +38.8052 -1.68409 2.12769 +29.3094 -1.4316 1.8087 +19.625 -1.0656 1.34629 +17.8176 -1.06477 1.34524 +18.1003 -1.18069 1.4917 +18.8779 -1.33488 1.6865 +20.5457 -1.56566 1.97806 +36.0886 -2.9487 3.7254 +39.9078 -3.4809 4.3978 +44.4068 -4.11888 5.20382 +51.261 -5.03885 6.36611 +58.684 -6.09477 7.70017 +70.2168 -7.68406 9.70809 +92.426 -10.6314 13.4318 +94.6289 -11.4158 14.4228 +94.4647 -11.9279 15.0698 +94.3912 -12.452 15.7319 +95.2865 -13.1105 16.5638 +95.0985 -13.626 17.2152 +94.9033 -14.1406 17.8653 +95.3801 -14.7591 18.6467 +95.1689 -15.2751 19.2987 +95.1437 -15.8221 19.9897 +94.9176 -16.3368 20.64 +95.3572 -16.97 21.4399 +95.1149 -17.4858 22.0916 +95.6305 -18.1454 22.925 +95.4671 -18.6813 23.6021 +95.1057 -19.1785 24.2302 +95.6859 -19.87 25.1039 +95.4028 -20.3875 25.7577 +95.9609 -21.0899 26.6451 +95.5667 -21.5875 27.2738 +95.9152 -22.2565 28.119 +95.5053 -22.7528 28.7461 +96.2982 -23.5422 29.7434 +95.9635 -24.0629 30.4012 +96.453 -24.7954 31.3267 +96.1007 -25.3168 31.9855 +95.9245 -25.8859 32.7044 +95.6482 -26.4296 33.3914 +95.9099 -27.1268 34.2722 +96.3405 -27.8813 35.2254 +96.1253 -28.4554 35.9508 +95.0025 -28.7573 36.3321 +94.0576 -29.1046 36.7709 +94.2685 -29.8101 37.6623 +93.8457 -30.3195 38.3059 +94.0339 -31.0306 39.2042 +94.1213 -31.7164 40.0707 +93.7592 -32.255 40.7512 +94.6077 -33.22 41.9703 +94.2236 -33.7622 42.6553 +93.4868 -34.1767 43.179 +93.0027 -34.6817 43.8171 +93.5346 -35.5732 44.9434 +93.7941 -36.3744 45.9557 +93.9538 -37.1478 46.9328 +93.5118 -37.6891 47.6166 +90.7268 -37.2691 47.0861 +90.1993 -37.7591 47.7051 +88.2639 -37.6486 47.5655 +86.9939 -37.8048 47.7628 +85.0751 -37.6619 47.5823 +84.2996 -38.0117 48.0243 +82.5561 -37.9131 47.8997 +81.381 -38.06 48.0853 +79.6527 -37.9325 47.9242 +79.1163 -38.3625 48.4674 +76.8521 -37.9395 47.9331 +75.9272 -38.1591 48.2104 +73.9988 -37.8582 47.8303 +73.2338 -38.1379 48.1837 +71.098 -37.6866 47.6135 +69.8106 -37.6631 47.5838 +68.5294 -37.6285 47.5401 +68.1464 -38.0813 48.1121 +66.2075 -37.6523 47.5701 +65.4562 -37.8824 47.8609 +63.8329 -37.5947 47.4973 +62.8703 -37.6802 47.6055 +61.9101 -37.7583 47.7041 +61.1647 -37.9605 47.9596 +59.5773 -37.6264 47.5374 +58.4208 -37.5458 47.4356 +57.2711 -37.4556 47.3216 +56.1967 -37.4012 47.2529 +55.0606 -37.2923 47.1154 +54.6011 -37.6352 47.5486 +53.4734 -37.5112 47.3919 +52.944 -37.7994 47.756 +51.3064 -37.2824 47.1028 +50.7159 -37.5113 47.392 +49.6141 -37.3535 47.1927 +49.0241 -37.5726 47.4695 +47.7469 -37.2538 47.0667 +47.2828 -37.5599 47.4534 +45.6571 -36.9283 46.6554 +45.6176 -37.5707 47.4671 +44.1359 -37.0181 46.7689 +43.6724 -37.3059 47.1326 +42.7397 -37.1873 46.9827 +42.0432 -37.2649 47.0807 +41.2344 -37.2354 47.0435 +40.7652 -37.5088 47.3888 +40.181 -37.6764 47.6006 +39.6497 -37.8926 47.8737 +38.1483 -37.1637 46.9528 +37.5713 -37.3162 47.1456 +36.4704 -36.9362 46.6655 +36.4647 -37.6643 47.5853 +35.4769 -37.3791 47.225 +34.95 -37.5698 47.466 +34.0265 -37.3256 47.1573 +33.5003 -37.5084 47.3883 +32.5422 -37.1975 46.9956 +31.971 -37.3175 47.1472 +31.4451 -37.4893 47.3642 +30.5536 -37.2158 47.0186 +29.6275 -36.8799 46.5944 +29.4585 -37.4853 47.3592 +28.629 -37.2513 47.0635 +28.4422 -37.8549 47.8261 +27.1624 -36.991 46.7346 +26.6819 -37.1934 46.9903 +25.7991 -36.8242 46.5239 +25.3194 -37.0196 46.7709 +24.7979 -37.1554 46.9423 +24.237 -37.2307 47.0375 +23.3828 -36.8408 46.545 +22.8639 -36.9661 46.7032 +22.0981 -36.6816 46.3438 +21.7867 -37.1498 46.9353 +20.9965 -36.7983 46.4912 +20.5759 -37.0867 46.8556 +19.9902 -37.079 46.8459 +19.1591 -36.5956 46.2352 +18.6137 -36.6388 46.2897 +18.0978 -36.7383 46.4153 +17.609 -36.8943 46.6125 +17.1998 -37.2269 47.0328 +16.4619 -36.8402 46.5442 +16.228 -37.5874 47.4882 +15.1981 -36.4722 46.0792 +14.8298 -36.9144 46.6379 +14.1468 -36.5709 46.2039 +13.7895 -37.0694 46.8337 +13.1595 -36.8397 46.5435 +12.6826 -37.031 46.7852 +12.0219 -36.6726 46.3324 +11.7157 -37.4064 47.2595 +10.9341 -36.6141 46.2585 +10.5578 -37.1609 46.9493 +9.90286 -36.727 46.4011 +9.52686 -37.3309 47.1641 +8.88335 -36.8901 46.6071 +8.48956 -37.4899 47.365 +7.84462 -36.9806 46.7215 +7.40966 -37.4529 47.3182 +6.79219 -36.9983 46.7439 +6.27171 -37.0337 46.7886 +5.6549 -36.4485 46.0492 +5.22934 -37.096 46.8673 +4.6997 -37.061 46.8231 +4.17841 -37.0851 46.8535 +3.6446 -36.9823 46.7237 +3.12969 -37.0627 46.8252 +2.56918 -36.5202 46.1398 +2.0835 -37.0289 46.7825 +1.56538 -37.1008 46.8734 +1.0454 -37.17 46.9608 +0.513993 -36.5536 46.1821 +3.67382e-15 -37.2377 47.0463 +-0.522719 -37.1742 46.9661 +-1.04365 -37.1079 46.8824 +-1.54182 -36.5424 46.168 +-2.09048 -37.153 46.9393 +-2.60844 -37.0782 46.8449 +-3.13492 -37.1247 46.9035 +-3.65681 -37.1063 46.8803 +-4.23422 -37.5803 47.4792 +-4.69185 -36.9992 46.745 +-5.27292 -37.4051 47.2579 +-5.78908 -37.3133 47.1419 +-6.41805 -37.8978 47.8803 +-6.86011 -37.3683 47.2114 +-7.3731 -37.2681 47.0847 +-7.92294 -37.3498 47.188 +-8.44781 -37.3055 47.132 +-8.80944 -36.5831 46.2193 +-9.57379 -37.5148 47.3964 +-9.88635 -36.6658 46.3238 +-10.5578 -37.1609 46.9493 +-10.8977 -36.492 46.1043 +-11.5821 -36.98 46.7208 +-11.9222 -36.3685 45.9482 +-12.641 -36.9096 46.6318 +-13.1162 -36.7185 46.3904 +-13.6545 -36.7066 46.3754 +-14.1935 -36.6916 46.3564 +-14.9024 -37.0951 46.8661 +-15.4234 -37.0129 46.7624 +-15.9433 -36.928 46.655 +-16.4352 -36.7805 46.4687 +-17.2273 -37.2866 47.1082 +-17.751 -37.1919 46.9884 +-18.3025 -37.1537 46.9402 +-18.8543 -37.1124 46.888 +-19.6226 -37.481 47.3538 +-19.895 -36.9025 46.6228 +-20.7061 -37.3215 47.1522 +-20.9965 -36.7983 46.4912 +-22.1629 -37.7913 47.7458 +-22.3082 -37.0304 46.7844 +-23.1864 -37.4876 47.3621 +-23.676 -37.3028 47.1286 +-24.6117 -37.8062 47.7646 +-24.7596 -37.098 46.8699 +-25.632 -37.4767 47.3483 +-26.2377 -37.4503 47.3149 +-27.0887 -37.7603 47.7066 +-27.6186 -37.6122 47.5194 +-28.569 -38.0236 48.0393 +-29.1026 -37.8675 47.842 +-29.5901 -37.6526 47.5706 +-30.163 -37.5465 47.4365 +-31.0983 -37.8793 47.857 +-31.5836 -37.6544 47.5728 +-32.91 -38.4135 48.5319 +-33.0194 -37.7429 47.6847 +-33.9367 -37.9969 48.0056 +-34.4696 -37.8117 47.7715 +-35.5 -38.161 48.2129 +-36.086 -38.0208 48.0357 +-37.0312 -38.2495 48.3246 +-37.6199 -38.1004 48.1363 +-38.1542 -37.8952 47.8771 +-38.6318 -37.6348 47.548 +-40.1399 -38.361 48.4655 +-40.2914 -37.7799 47.7314 +-41.7717 -38.4349 48.5589 +-41.8008 -37.7469 47.6897 +-42.9035 -38.0275 48.0442 +-43.9592 -38.2484 48.3232 +-44.9656 -38.4105 48.5281 +-45.5039 -38.1655 48.2186 +-46.761 -38.5124 48.6569 +-47.3616 -38.307 48.3972 +-48.3294 -38.3913 48.5038 +-48.9297 -38.1767 48.2327 +-50.5974 -38.7784 48.9929 +-50.6318 -38.1198 48.1608 +-52.2586 -38.6523 48.8336 +-52.8001 -38.3678 48.4742 +-53.9281 -38.502 48.6436 +-54.0698 -37.9295 47.9204 +-55.6048 -38.3271 48.4227 +-56.1415 -38.0244 48.0403 +-57.7653 -38.4452 48.5719 +-58.0283 -37.9508 47.9473 +-59.8101 -38.4387 48.5637 +-60.3483 -38.1133 48.1526 +-62.2254 -38.6188 48.7913 +-62.98 -38.4108 48.5285 +-63.9493 -38.3269 48.4225 +-65.6464 -38.6627 48.8467 +-66.8457 -38.6867 48.877 +-67.977 -38.6585 48.8414 +-69.484 -38.8288 49.0565 +-70.7014 -38.8211 49.0468 +-72.3012 -39.0068 49.2814 +-73.5313 -38.9764 49.2431 +-74.7659 -38.9358 49.1917 +-76.005 -38.8846 49.1271 +-77.6369 -39.0183 49.296 +-78.8869 -38.9441 49.2022 +-80.2983 -38.9356 49.1915 +-81.5567 -38.8393 49.0699 +-84.0963 -39.3299 49.6896 +-84.6461 -38.8729 49.1123 +-87.2929 -39.3615 49.7295 +-88.0873 -38.9954 49.267 +-90.5982 -39.3711 49.7418 +-91.6428 -39.0899 49.3864 +-94.0958 -39.3903 49.7659 +-95.3965 -39.1874 49.5097 +-97.9567 -39.4805 49.8799 +-99.5202 -39.3487 49.7134 +-102.444 -39.729 50.1939 +-103.766 -39.4645 49.8598 +-106.632 -39.7641 50.2382 +-108.824 -39.7835 50.2628 +-111.198 -39.8443 50.3396 +-113.32 -39.7906 50.2717 +-116.324 -40.0179 50.5589 +-120.398 -40.5709 51.2576 +-124.142 -40.9662 51.757 +-126.31 -40.8081 51.5573 +-130.8 -41.3622 52.2573 +-132.987 -41.1507 51.9901 +-136.167 -41.2179 52.0749 +-136.832 -40.5056 51.175 +-137.849 -39.8941 50.4024 +-138.496 -39.1717 49.4898 +-138.585 -38.2939 48.3808 +-137.834 -37.1955 46.993 +-138.536 -36.496 46.1093 +-138.859 -35.6968 45.0996 +-140.097 -35.1295 44.3828 +-140.028 -34.2328 43.25 +-139.197 -33.1618 41.8969 +-138.346 -32.1023 40.5583 +-138.417 -31.267 39.5029 +-14.5167 -3.19042 4.03079 +-13.1427 -2.80859 3.54839 +-15.3628 -3.19024 4.03057 +-15.4071 -3.10691 3.92529 +-15.641 -3.06068 3.86688 +-15.3009 -2.90327 3.66801 +-14.8617 -2.73215 3.45182 +-15.4763 -2.7542 3.47967 +-15.0326 -2.58735 3.26887 +-15.9378 -2.6504 3.34853 +-14.5222 -2.33089 2.94486 +-14.8455 -2.2972 2.9023 +-14.0994 -2.1008 2.65416 +-14.2258 -2.03832 2.57523 +-13.7658 -1.89403 2.39293 +-13.6941 -1.8065 2.28234 +-13.7189 -1.73227 2.18856 +-13.4483 -1.62237 2.04971 +-13.4706 -1.54948 1.95762 +-13.6888 -1.49802 1.8926 +-13.4135 -1.39309 1.76004 +-13.7289 -1.34952 1.70499 +-13.7473 -1.27511 1.61098 +-12.7745 -1.11423 1.40773 +-13.1862 -1.07741 1.36121 +-12.8038 -0.975695 1.2327 +-13.7113 -0.969545 1.22493 +-13.0282 -0.849838 1.07369 +-13.3383 -0.797091 1.00705 +-13.5482 -0.735643 0.929416 +-13.6578 -0.667107 0.842827 +-13.5669 -0.588782 0.743871 +-13.2752 -0.503916 0.636651 +-12.0834 -0.393022 0.496546 +-11.7888 -0.319443 0.403586 +-10.9933 -0.238255 0.301013 +-11.596 -0.188456 0.238096 +-11.1983 -0.121312 0.153267 +-11.0996 -0.0601168 0.075952 +19.2 0 0 +18.3993 -0.0985129 0.126796 +29.9954 -0.321226 0.413451 +32.4889 -0.521959 0.671815 +35.5783 -0.762259 0.981106 +40.0618 -1.07315 1.38125 +40.1449 -1.29081 1.6614 +39.1269 -1.46823 1.88977 +40.7006 -1.74614 2.24746 +27.814 -1.34302 1.7286 +20.7208 -1.11223 1.43155 +15.3291 -0.905579 1.16557 +17.3047 -1.11588 1.43626 +17.9837 -1.25711 1.61802 +25.0122 -1.88421 2.42517 +34.6014 -2.79484 3.59725 +38.2243 -3.29592 4.24219 +42.6266 -3.90853 5.03069 +52.3475 -5.08677 6.54721 +60.5579 -6.21743 8.00247 +81.2466 -8.78939 11.3129 +94.3925 -10.7334 13.815 +94.9233 -11.3203 14.5704 +94.5627 -11.8037 15.1925 +94.3912 -12.3095 15.8436 +95.0912 -12.9339 16.6473 +94.9036 -13.4425 17.3019 +94.7088 -13.9501 17.9553 +94.7009 -14.4864 18.6455 +95.3625 -15.1311 19.4752 +94.9505 -15.6093 20.0908 +94.9176 -16.1499 20.7866 +95.3572 -16.7758 21.5922 +95.882 -17.4251 22.4279 +95.7261 -17.9557 23.1109 +95.3717 -18.4491 23.746 +95.9616 -19.1297 24.6219 +95.6859 -19.6427 25.2822 +95.4028 -20.1543 25.9406 +95.9609 -20.8486 26.8343 +95.5667 -21.3406 27.4675 +95.8216 -21.9804 28.291 +95.692 -22.5365 29.0068 +96.2982 -23.2729 29.9546 +96.0562 -23.8105 30.6466 +95.8063 -24.3474 31.3376 +96.2848 -25.0752 32.2743 +96.0162 -25.6142 32.9681 +95.6482 -26.1273 33.6285 +96.0009 -26.8419 34.5483 +95.6155 -27.3549 35.2085 +95.674 -27.9978 36.0361 +96.0811 -28.7511 37.0056 +93.5206 -28.6074 36.8207 +93.6448 -29.2741 37.6788 +94.4667 -30.1709 38.8331 +94.0339 -30.6756 39.4826 +93.594 -31.1779 40.1291 +93.6718 -31.8562 41.0023 +93.9984 -32.6284 41.9962 +93.5307 -33.1305 42.6424 +93.4868 -33.7857 43.4857 +93.7741 -34.5693 44.4943 +93.6199 -35.1983 45.3038 +93.7093 -35.9258 46.2402 +92.8574 -36.2943 46.7145 +93.9311 -37.4249 48.1698 +92.6447 -37.6216 48.4229 +91.6916 -37.9446 48.8387 +89.4177 -37.7044 48.5295 +88.1408 -37.865 48.7361 +86.4591 -37.8367 48.6997 +85.2704 -38.0096 48.9223 +82.6365 -37.5159 48.2868 +83.3775 -38.5476 49.6148 +79.732 -37.5359 48.3126 +79.5891 -38.1502 49.1033 +77.5565 -37.8492 48.7159 +77.7146 -38.6105 49.6957 +75.3877 -38.1275 49.0741 +74.6127 -38.4114 49.4395 +72.9229 -38.2118 49.1825 +71.6974 -38.2385 49.2169 +69.8027 -37.8891 48.7672 +69.3354 -38.3025 49.2992 +67.4609 -37.9261 48.8148 +66.9189 -38.2858 49.2778 +64.921 -37.798 48.65 +64.0212 -37.9311 48.8212 +62.1241 -37.4554 48.2089 +61.9426 -38.0035 48.9144 +60.2081 -37.5897 48.3819 +59.6017 -37.8665 48.7382 +58.5101 -37.8281 48.6887 +57.3561 -37.7361 48.5703 +56.2091 -37.6347 48.4397 +55.6717 -37.9342 48.8252 +54.0698 -37.4956 48.2607 +53.4688 -37.7373 48.5719 +52.3455 -37.6023 48.3981 +51.8087 -37.8811 48.757 +50.123 -37.3049 48.0153 +49.5904 -37.5719 48.3589 +48.4939 -37.4038 48.1426 +47.96 -37.662 48.4749 +46.7529 -37.3819 48.1144 +46.1592 -37.5818 48.3717 +44.4927 -36.8905 47.4819 +44.5541 -37.6237 48.4255 +42.7978 -36.8118 47.3806 +42.6741 -37.3914 48.1266 +42.2539 -37.7195 48.549 +41.604 -37.8426 48.7074 +40.6226 -37.6546 48.4654 +40.1399 -37.9221 48.8097 +39.1154 -37.6699 48.4851 +38.4721 -37.7738 48.6188 +37.3064 -37.3506 48.0741 +36.9282 -37.7067 48.5325 +35.9845 -37.4801 48.2408 +35.4 -37.6182 48.4185 +34.4204 -37.3257 48.0421 +34.373 -38.0451 48.968 +32.9717 -37.2573 47.9539 +32.863 -37.9199 48.8068 +31.8607 -37.5502 48.3309 +31.0076 -37.3366 48.0561 +30.0291 -36.9522 47.5613 +29.8969 -37.6079 48.4052 +28.9734 -37.2681 47.9679 +28.4422 -37.4218 48.1657 +27.5356 -37.0702 47.7132 +27.3734 -37.7207 48.5504 +26.1978 -36.9655 47.5785 +26.0618 -37.6692 48.4841 +25.1423 -37.2404 47.9323 +24.6491 -37.4305 48.1769 +23.7493 -36.9902 47.6103 +23.6164 -37.7461 48.5831 +22.6934 -37.2389 47.9303 +22.1971 -37.4166 48.1591 +21.2969 -36.8978 47.4914 +20.7387 -36.9525 47.5616 +19.9585 -36.5967 47.1037 +19.4681 -36.7605 47.3145 +18.9144 -36.8048 47.3716 +18.6826 -37.4914 48.2553 +17.8646 -37.0017 47.625 +17.4754 -37.3908 48.1259 +16.649 -36.8326 47.4074 +16.3832 -37.513 48.2831 +15.5987 -37.0053 47.6296 +15.0717 -37.0874 47.7353 +14.3802 -36.7491 47.2999 +14.1944 -37.7214 48.5513 +13.3543 -36.9574 47.568 +13.0153 -37.5675 48.3533 +12.3409 -37.2149 47.8995 +11.8874 -37.5205 48.2928 +11.2439 -37.2207 47.907 +10.7141 -37.2795 47.9826 +10.0349 -36.7909 47.3537 +9.65201 -37.3886 48.123 +9.01637 -37.0141 47.641 +8.6009 -37.547 48.3269 +7.94905 -37.0442 47.6797 +7.53153 -37.6334 48.4381 +6.89408 -37.1236 47.782 +6.36578 -37.1592 47.8277 +5.83701 -37.1918 47.8697 +5.37751 -37.7106 48.5374 +4.77031 -37.1875 47.8642 +4.22724 -37.0892 47.7377 +3.6507 -36.6205 47.1344 +3.17679 -37.1901 47.8675 +2.60408 -36.5927 47.0986 +2.11491 -37.1571 47.8251 +1.58894 -37.2284 47.9167 +1.06285 -37.3581 48.0838 +0.523592 -36.8102 47.3786 +3.7228e-15 -37.3025 48.0121 +-0.522719 -36.7489 47.2996 +-1.05762 -37.1741 47.8469 +-1.58894 -37.2284 47.9167 +-2.1184 -37.2184 47.904 +-2.6477 -37.2057 47.8875 +-3.18203 -37.2514 47.9464 +-3.70565 -37.1717 47.8438 +-4.28305 -37.5788 48.3678 +-4.75462 -37.0652 47.7067 +-5.35136 -37.5273 48.3015 +-5.87534 -37.4361 48.1841 +-6.40759 -37.4032 48.1418 +-6.95068 -37.4284 48.1743 +-7.49496 -37.4507 48.2029 +-7.90989 -36.8617 47.4448 +-8.54523 -37.304 48.0141 +-8.95725 -36.7714 47.3286 +-9.71458 -37.631 48.4349 +-10.0349 -36.7909 47.3537 +-10.6967 -37.2192 47.9049 +-11.0617 -36.6175 47.1306 +-11.7348 -37.0387 47.6727 +-12.301 -37.0947 47.7448 +-12.8074 -36.9674 47.5809 +-13.3327 -36.8974 47.4908 +-14.0594 -37.3627 48.0896 +-14.3569 -36.6894 47.2231 +-15.1443 -37.266 47.9652 +-15.4484 -36.6489 47.1709 +-16.4091 -37.5722 48.3594 +-16.7291 -37.01 47.6357 +-17.4754 -37.3908 48.1259 +-17.7794 -36.8252 47.3979 +-18.5656 -37.2567 47.9532 +-19.0948 -37.1558 47.8234 +-19.9625 -37.6941 48.5162 +-20.1806 -37.0039 47.6279 +-21.3898 -38.1127 49.055 +-21.5973 -37.4184 48.1613 +-22.4365 -37.8202 48.6785 +-23.0436 -37.8135 48.6699 +-23.5448 -37.6314 48.4356 +-24.3723 -37.9607 48.8593 +-24.8739 -37.7718 48.6162 +-25.4867 -37.7506 48.5889 +-26.2962 -38.008 48.9203 +-26.8757 -37.922 48.8096 +-27.4547 -37.8327 48.6947 +-28.0333 -37.7402 48.5755 +-28.9494 -38.0891 49.0246 +-29.49 -37.9326 48.8232 +-30.0723 -37.8284 48.6891 +-30.8769 -37.9954 48.9041 +-31.5069 -37.938 48.8302 +-32.0454 -37.7679 48.6112 +-32.91 -37.974 48.8765 +-33.4965 -37.8504 48.7173 +-34.4215 -38.0988 49.0371 +-35.0113 -37.9665 48.8668 +-36.1 -38.362 49.3759 +-36.5935 -38.1145 49.0573 +-37.5463 -38.3378 49.3447 +-37.6199 -37.6645 48.4781 +-39.108 -38.3982 49.4224 +-39.7064 -38.2391 49.2177 +-40.6301 -38.3852 49.4058 +-41.1745 -38.1663 49.1239 +-42.3309 -38.5038 49.5584 +-42.877 -38.2758 49.2649 +-43.936 -38.497 49.5496 +-44.4238 -38.2104 49.1807 +-45.6709 -38.5667 49.6393 +-46.1582 -38.2714 49.2593 +-47.2425 -38.4638 49.5069 +-47.8486 -38.2581 49.2421 +-49.4992 -38.8707 50.0306 +-49.5522 -38.2201 49.1932 +-51.1008 -38.7162 49.8318 +-51.7132 -38.4885 49.5387 +-52.7729 -38.5861 49.6643 +-52.995 -38.0688 48.9985 +-54.7809 -38.6634 49.7638 +-55.0637 -38.1848 49.1478 +-57.0099 -38.846 49.9989 +-57.2225 -38.3132 49.313 +-58.7201 -38.6336 49.7254 +-59.2673 -38.3177 49.3188 +-61.1994 -38.8816 50.0446 +-61.2595 -38.2461 49.2267 +-63.2153 -38.7843 49.9194 +-63.7646 -38.4444 49.482 +-65.5319 -38.8261 49.9732 +-66.2992 -38.6004 49.6828 +-68.3084 -39.0808 50.3011 +-68.9354 -38.7551 49.8819 +-70.7474 -39.0824 50.3031 +-71.3755 -38.7428 49.8661 +-74.037 -39.4863 50.8229 +-74.4437 -39.0087 50.2082 +-76.9109 -39.5945 50.9623 +-77.3168 -39.1032 50.3298 +-79.4243 -39.4599 50.789 +-79.7478 -38.9186 50.0923 +-82.5835 -39.5856 50.9508 +-82.4294 -38.8058 49.9471 +-85.1345 -39.3599 50.6603 +-86.4146 -39.231 50.4944 +-88.9919 -39.6685 51.0574 +-89.3085 -39.0836 50.3046 +-92.4004 -39.6949 51.0914 +-93.1263 -39.2682 50.5422 +-95.7538 -39.6258 51.0025 +-96.8975 -39.3486 50.6458 +-99.4663 -39.6303 51.0083 +-101.038 -39.4918 50.8301 +-104.48 -40.0548 51.5547 +-105.301 -39.5901 50.9565 +-109.546 -40.3835 51.9778 +-110.375 -39.8889 51.3412 +-113.882 -40.3394 51.921 +-114.626 -39.7886 51.2121 +-119.561 -40.6606 52.3344 +-122.771 -40.8972 52.6389 +-125.732 -41.016 52.7919 +-128.705 -41.1062 52.9079 +-132.136 -41.3068 53.1662 +-134.061 -41.0084 52.7821 +-137.695 -41.2036 53.0333 +-138.366 -40.4912 52.1164 +-138.574 -39.6451 51.0274 +-139.315 -38.9526 50.136 +-139.133 -38.0056 48.9171 +-138.384 -36.9167 47.5156 +-138.536 -36.0785 46.4367 +-139.136 -35.3589 45.5105 +-139.912 -34.6815 44.6387 +-138.911 -33.5714 43.2098 +-138.45 -32.6065 41.968 +-138.253 -31.7136 40.8187 +-141.236 -31.5387 40.5936 +-14.4224 -3.13343 4.03305 +-13.4264 -2.83638 3.65072 +-14.7938 -3.03693 3.90884 +-15.0267 -2.99553 3.85556 +-14.7826 -2.85961 3.68062 +-15.1096 -2.83417 3.64787 +-14.8617 -2.7009 3.47633 +-15.0918 -2.65505 3.41732 +-16.0926 -2.7381 3.52422 +-15.5514 -2.55656 3.29056 +-14.8127 -2.35031 3.02509 +-14.3604 -2.1967 2.82738 +-14.0994 -2.07677 2.67301 +-13.4463 -1.90459 2.4514 +-14.1563 -1.92548 2.47829 +-14.3788 -1.87512 2.41348 +-13.327 -1.66352 2.14112 +-13.6446 -1.62723 2.09441 +-13.6672 -1.55411 2.0003 +-13.9843 -1.51284 1.94718 +-13.9066 -1.42778 1.8377 +-13.4326 -1.30529 1.68004 +-13.4506 -1.23332 1.58741 +-13.1706 -1.13564 1.46169 +-13.6819 -1.10512 1.42241 +-14.3919 -1.08417 1.39544 +-13.5126 -0.944562 1.21575 +-13.426 -0.865767 1.11433 +-12.9402 -0.764449 0.983925 +-13.5482 -0.727226 0.936016 +-13.5581 -0.654658 0.842613 +-12.3698 -0.530689 0.683052 +-13.2752 -0.498151 0.641172 +-12.6826 -0.407791 0.52487 +-12.7878 -0.34255 0.440897 +-12.1926 -0.261224 0.336222 +-11.3961 -0.183087 0.235652 +-11.8982 -0.12742 0.164003 +-10.8996 -0.0583582 0.0751131 +26.7 0 0 +27.6989 -0.146576 0.192214 +31.0953 -0.329123 0.431598 +33.8884 -0.538098 0.705639 +36.5777 -0.774538 1.0157 +39.4624 -1.04477 1.37007 +37.6483 -1.19642 1.56894 +37.6297 -1.39559 1.83012 +36.6106 -1.55236 2.0357 +31.2035 -1.48912 1.95277 +22.3148 -1.18382 1.55242 +17.3199 -1.01127 1.32613 +16.0118 -1.02048 1.33821 +20.6663 -1.42779 1.87235 +31.7615 -2.36476 3.10105 +36.386 -2.90473 3.80915 +43.5718 -3.71322 4.86936 +45.6925 -4.14082 5.4301 +62.9157 -6.04247 7.92385 +69.1386 -7.01566 9.20004 +92.178 -9.85575 12.9244 +94.7858 -10.6525 13.9693 +94.9233 -11.1884 14.672 +94.7587 -11.6903 15.3301 +94.3912 -12.166 15.954 +95.2865 -12.8094 16.7977 +94.9036 -13.2858 17.4225 +94.9033 -13.8159 18.1176 +95.3801 -14.4202 18.91 +95.1689 -14.9244 19.5712 +95.8198 -15.5686 20.416 +94.9176 -15.9617 20.9315 +95.3572 -16.5803 21.7427 +95.1149 -17.0842 22.4036 +95.7261 -17.7465 23.272 +95.3717 -18.2341 23.9115 +95.1057 -18.7381 24.5723 +95.7807 -19.4331 25.4837 +95.4028 -19.9194 26.1214 +95.2068 -20.4437 26.809 +96.3185 -21.2578 27.8766 +96.0089 -21.7667 28.5439 +95.692 -22.2739 29.209 +95.3678 -22.7794 29.8719 +96.0562 -23.533 30.8602 +95.8063 -24.0636 31.5561 +96.2848 -24.7829 32.4993 +96.0162 -25.3156 33.1979 +95.6482 -25.8227 33.8629 +96.0009 -26.5291 34.7891 +95.7061 -27.0617 35.4876 +95.8546 -27.7237 36.3557 +95.5418 -28.2565 37.0544 +95.042 -28.7339 37.6804 +94.5358 -29.2082 38.3024 +93.8457 -29.6233 38.8468 +94.0339 -30.3181 39.7578 +93.4183 -30.7567 40.333 +93.7592 -31.5144 41.3266 +93.3021 -32.0093 41.9757 +93.5307 -32.7444 42.9396 +93.4868 -33.3919 43.7887 +93.7741 -34.1664 44.8044 +93.9609 -34.9148 45.7857 +93.4549 -35.4107 46.436 +93.6165 -36.1645 47.4246 +93.5956 -36.8566 48.3322 +93.4786 -37.5178 49.1993 +93.1838 -38.1128 49.9795 +90.1594 -37.574 49.273 +89.6152 -38.0497 49.8968 +87.8431 -37.9943 49.8241 +87.2929 -38.4576 50.4317 +84.405 -37.8721 49.6639 +83.8567 -38.3173 50.2477 +82.1121 -38.2059 50.1016 +80.6923 -38.2283 50.1309 +79.0434 -38.1254 49.996 +78.7249 -38.6567 50.6927 +76.468 -38.2232 50.1243 +75.915 -38.6264 50.653 +73.6073 -38.1209 49.9901 +73.5087 -38.7476 50.8119 +70.0274 -37.5681 49.2652 +69.9299 -38.1807 50.0685 +68.1244 -37.8528 49.6385 +67.6502 -38.2532 50.1636 +65.7189 -37.8166 49.5911 +65.1722 -38.1629 50.0453 +63.4793 -37.8263 49.6039 +62.9325 -38.1608 50.0425 +61.7501 -38.1032 49.9669 +60.5742 -38.0358 49.8786 +59.0608 -37.7391 49.4895 +58.5837 -38.0946 49.9557 +56.8171 -37.5984 49.305 +56.8761 -38.3032 50.2292 +55.13 -37.7852 49.55 +54.5841 -38.0755 49.9306 +53.4496 -37.9479 49.7633 +52.3872 -37.8577 49.645 +51.3315 -37.7592 49.5158 +50.7862 -38.0294 49.8701 +49.0542 -37.395 49.0382 +49.0682 -38.0832 49.9407 +47.3616 -37.4274 49.0806 +47.423 -38.1608 50.0425 +46.3367 -37.9716 49.7943 +45.7297 -38.1663 50.0496 +44.0173 -37.4195 49.0704 +43.1329 -37.3529 48.9831 +42.3672 -37.3799 49.0184 +42.275 -38.0048 49.8379 +41.1193 -37.6709 49.4 +40.5756 -37.887 49.6835 +39.5453 -37.64 49.3595 +39.0021 -37.8478 49.632 +38.1946 -37.7943 49.5618 +37.3918 -37.735 49.4841 +36.8473 -37.9315 49.7418 +35.9 -37.7049 49.4446 +34.9128 -37.4184 49.069 +34.8093 -38.0791 49.9353 +33.8306 -37.7822 49.546 +33.2855 -37.9598 49.7789 +32.2762 -37.5967 49.3027 +31.7793 -37.82 49.5956 +30.8323 -37.4984 49.1738 +30.2914 -37.6601 49.3858 +29.3609 -37.3263 48.9482 +28.8226 -37.4803 49.1501 +27.9503 -37.19 48.7693 +27.8208 -37.8904 49.6878 +26.5567 -37.0352 48.5664 +26.3353 -37.6208 49.3344 +25.4867 -37.3106 48.9276 +25.2859 -37.95 49.7661 +24.4456 -37.6311 49.3478 +23.8673 -37.7024 49.4413 +23.0787 -37.4297 49.0837 +22.8127 -38.0062 49.8397 +21.6307 -37.0395 48.572 +21.4224 -37.7258 49.472 +20.5931 -37.3202 48.9401 +20.0552 -37.4278 49.0812 +19.155 -36.8385 48.3084 +18.9749 -37.6343 49.352 +18.1486 -37.1519 48.7194 +17.944 -37.9459 49.7607 +16.9429 -37.0461 48.5807 +16.6421 -37.6615 49.3877 +15.6988 -36.8088 48.2696 +15.5556 -37.8319 49.6111 +14.7537 -37.2642 48.8667 +14.3294 -37.6362 49.3546 +13.5491 -37.0594 48.5981 +13.2856 -37.9007 49.7014 +12.5203 -37.316 48.9347 +12.2881 -38.3332 50.2686 +11.4079 -37.3236 48.9446 +10.8877 -37.4422 49.1001 +10.2164 -37.02 48.5464 +9.82408 -37.6116 49.3223 +9.11984 -37.0025 48.5235 +8.71224 -37.5898 49.2937 +8.05347 -37.0934 48.6427 +7.51934 -37.1346 48.6967 +6.98464 -37.173 48.7471 +6.55393 -37.8116 49.5845 +5.91368 -37.2412 48.8365 +5.37751 -37.2711 48.8757 +4.83308 -37.2377 48.8319 +4.29002 -37.2014 48.7843 +3.75449 -37.2226 48.8122 +3.21866 -37.2411 48.8364 +2.67823 -37.1961 48.7774 +2.14632 -37.2694 48.8736 +1.6125 -37.34 48.9661 +1.07507 -37.3471 48.9754 +0.537555 -37.3514 48.9811 +3.76566e-15 -37.2922 48.9034 +-0.529701 -36.8057 48.2654 +-1.09078 -37.8928 49.691 +-1.60726 -37.2188 48.8072 +-2.18471 -37.9361 49.7478 +-2.68695 -37.3173 48.9363 +-3.28146 -37.9678 49.7893 +-3.81553 -37.8279 49.6059 +-4.3528 -37.7458 49.4982 +-4.89585 -37.7213 49.4661 +-5.43852 -37.6939 49.4302 +-5.98077 -37.6637 49.3906 +-6.6062 -38.1131 49.9799 +-7.06388 -37.5947 49.3001 +-7.60465 -37.5559 49.2492 +-8.14483 -37.5142 49.1946 +-8.78182 -37.89 49.6874 +-9.25287 -37.5423 49.2313 +-9.88666 -37.8512 49.6365 +-10.1669 -36.8406 48.3112 +-10.853 -37.3228 48.9436 +-11.3715 -37.2043 48.7882 +-11.9256 -37.2023 48.7855 +-12.4605 -37.1377 48.7009 +-12.9945 -37.0704 48.6125 +-13.5275 -37.0002 48.5205 +-14.2394 -37.3999 49.0446 +-14.5903 -36.8514 48.3254 +-15.3137 -37.2435 48.8395 +-15.8491 -37.161 48.7314 +-16.6938 -37.7786 49.5413 +-16.9696 -37.1045 48.6573 +-17.751 -37.538 49.2257 +-18.319 -37.5007 49.1769 +-18.8872 -37.4603 49.1239 +-19.7263 -37.9373 49.7493 +-20.3024 -37.8891 49.6862 +-20.8469 -37.7803 49.5434 +-21.6828 -38.1845 50.0735 +-21.8977 -37.4967 49.1716 +-22.7443 -37.8923 49.6903 +-23.2888 -37.7704 49.5306 +-24.1182 -38.0987 49.961 +-24.6655 -37.9696 49.7917 +-25.5856 -38.3999 50.356 +-25.7929 -37.7588 49.5153 +-26.9995 -38.5698 50.5788 +-27.2744 -38.0362 49.879 +-28.1462 -38.3335 50.269 +-28.7382 -38.2383 50.1441 +-29.7101 -38.6343 50.6634 +-29.8775 -37.9831 49.8094 +-30.8175 -38.3141 50.2434 +-30.8769 -37.5526 49.2449 +-32.2787 -38.4144 50.375 +-32.7842 -38.1883 50.0785 +-33.3325 -38.0134 49.8491 +-34.3554 -38.3684 50.3147 +-35.3426 -38.6625 50.7003 +-35.4545 -37.999 49.8303 +-36.5 -38.3351 50.271 +-37.0503 -38.1404 50.0158 +-37.9583 -38.3068 50.2339 +-38.9784 -38.5698 50.5788 +-39.585 -38.4135 50.3738 +-40.0826 -38.1514 50.0302 +-41.6649 -38.9041 51.0172 +-41.7264 -38.2271 50.1294 +-42.7783 -38.4573 50.4313 +-43.3301 -38.2295 50.1325 +-44.5669 -38.5947 50.6115 +-45.5852 -38.7524 50.8183 +-46.7289 -39.0003 51.1433 +-47.2289 -38.7027 50.7531 +-48.3859 -38.9357 51.0586 +-48.8835 -38.63 50.6578 +-50.2995 -39.0389 51.1939 +-50.8594 -38.7712 50.8429 +-51.9819 -38.9247 51.0443 +-52.5401 -38.6482 50.6816 +-53.4157 -38.6009 50.6196 +-53.9691 -38.3168 50.247 +-55.5682 -38.762 50.8308 +-55.8589 -38.2848 50.2051 +-57.6121 -38.7989 50.8793 +-58.1683 -38.4926 50.4775 +-59.9477 -38.9816 51.1188 +-60.5064 -38.6628 50.7008 +-62.1719 -39.0391 51.1942 +-62.6613 -38.6654 50.7042 +-64.2053 -38.9326 51.0546 +-64.9771 -38.7189 50.7743 +-66.1793 -38.7527 50.8187 +-67.3873 -38.7767 50.8501 +-69.2592 -39.163 51.3567 +-70.1888 -38.9999 51.1428 +-72.0107 -39.3168 51.5583 +-72.8734 -39.0949 51.2674 +-75.32 -39.7024 52.064 +-76.5729 -39.6567 52.0041 +-78.443 -39.9126 52.3398 +-79.4773 -39.7275 52.0969 +-80.9786 -39.7633 52.1439 +-81.5478 -39.3333 51.58 +-83.6867 -39.6469 51.9912 +-84.2541 -39.2026 51.4086 +-87.1311 -39.8135 52.2097 +-87.4596 -39.2427 51.4612 +-89.8009 -39.5626 51.8807 +-91.0995 -39.4028 51.6712 +-93.9567 -39.8931 52.3141 +-95.1866 -39.6691 52.0204 +-97.5777 -39.9099 52.3362 +-98.8989 -39.6933 52.0521 +-101.563 -39.9941 52.4466 +-103.147 -39.8461 52.2524 +-105.836 -40.1021 52.5882 +-107.433 -39.9207 52.3503 +-110.489 -40.2564 52.7905 +-112.701 -40.2549 52.7886 +-115.614 -40.4757 53.0781 +-117.15 -40.1908 52.7045 +-122.447 -41.1568 53.9713 +-124.353 -40.9414 53.6888 +-128.469 -41.4205 54.317 +-130.213 -41.1031 53.9009 +-133.473 -41.2384 54.0783 +-135.941 -41.0987 53.895 +-137.695 -40.7234 53.4029 +-138.005 -39.9148 52.3426 +-139.753 -39.5162 51.8199 +-138.314 -38.222 50.1227 +-138.95 -37.5133 49.1933 +-138.293 -36.4623 47.8151 +-139.825 -35.9898 47.1954 +-140.06 -35.1788 46.132 +-139.727 -34.2319 44.8903 +-139.749 -33.3801 43.7733 +-139.01 -32.3569 42.4315 +-139.002 -31.5139 41.326 +-143.209 -31.6067 41.4477 +-14.2339 -3.05643 4.00808 +-14.8446 -3.09945 4.06448 +-14.5094 -2.94382 3.86039 +-15.4071 -3.03557 3.98072 +-15.8317 -3.02686 3.9693 +-15.4921 -2.87206 3.76629 +-15.0535 -2.70386 3.54573 +-15.2841 -2.65753 3.48497 +-14.2617 -2.3983 3.14503 +-15.2616 -2.47968 3.25175 +-15.3935 -2.41401 3.16563 +-14.5544 -2.20044 2.88556 +-13.8077 -2.01009 2.63595 +-14.1284 -1.97787 2.5937 +-14.1563 -1.90304 2.49556 +-13.4984 -1.7398 2.28151 +-14.4049 -1.77712 2.33043 +-13.0556 -1.53884 2.01797 +-14.4538 -1.6244 2.13017 +-13.5903 -1.45309 1.90552 +-13.019 -1.32107 1.7324 +-13.4326 -1.29007 1.69175 +-13.9451 -1.26376 1.65724 +-13.7647 -1.17304 1.53828 +-14.376 -1.14765 1.50498 +-13.6971 -1.0198 1.33733 +-13.2145 -0.912961 1.19722 +-13.2271 -0.843004 1.10548 +-13.2388 -0.772979 1.01365 +-12.054 -0.639473 0.838578 +-13.8572 -0.661303 0.867204 +-11.9708 -0.507585 0.665625 +-13.9739 -0.518258 0.679622 +-12.383 -0.393518 0.516043 +-13.0875 -0.346492 0.454375 +-12.0926 -0.256063 0.335791 +-11.4961 -0.182541 0.239376 +-11.2983 -0.119585 0.156818 +-11.4996 -0.060853 0.0798 +28.4 0 0 +29.6989 -0.155294 0.207502 +32.1951 -0.336718 0.44992 +34.888 -0.547393 0.731423 +36.9775 -0.773706 1.03382 +36.8649 -0.964412 1.28864 +35.8508 -1.12577 1.50425 +36.6315 -1.34244 1.79376 +33.2189 -1.39182 1.85974 +31.2035 -1.47144 1.96613 +23.1117 -1.21154 1.61885 +15.4286 -0.890144 1.1894 +17.1058 -1.07725 1.43942 +26.7271 -1.8246 2.43801 +34.7391 -2.55575 3.41497 +40.0544 -3.15962 4.22186 +48.4241 -4.07774 5.44864 +54.6926 -4.89759 6.54413 +65.9776 -6.26128 8.36628 +84.8206 -8.50478 11.364 +94.9355 -10.03 13.4021 +94.7858 -10.526 14.0648 +95.0215 -11.067 14.7876 +94.7587 -11.5515 15.435 +94.3912 -12.0216 16.0632 +95.2865 -12.6573 16.9126 +94.9036 -13.1281 17.5417 +94.9033 -13.6518 18.2415 +95.5741 -14.278 19.0781 +95.1689 -14.7472 19.7051 +95.8198 -15.3838 20.5557 +95.5921 -15.8842 21.2243 +95.3572 -16.3834 21.8914 +95.1149 -16.8814 22.5568 +95.6305 -17.5183 23.4078 +95.3717 -18.0176 24.075 +95.9616 -18.6822 24.9631 +95.6859 -19.1833 25.6325 +95.4028 -19.6829 26.3001 +95.1125 -20.181 26.9656 +95.3788 -20.8004 27.7934 +95.7279 -21.4453 28.655 +95.692 -22.0094 29.4088 +95.3678 -22.5089 30.0763 +96.0562 -23.2536 31.0713 +96.453 -23.9385 31.9864 +96.1928 -24.4652 32.6903 +95.9245 -24.9912 33.3931 +95.6482 -25.5161 34.0945 +95.3639 -26.0402 34.7947 +95.6155 -26.715 35.6964 +95.9448 -27.4203 36.6388 +95.4519 -27.8947 37.2727 +96.2949 -28.767 38.4383 +94.5358 -28.8614 38.5644 +93.8457 -29.2716 39.1125 +93.9456 -29.93 39.9922 +93.6819 -30.4772 40.7234 +93.7592 -31.1402 41.6093 +93.3021 -31.6293 42.2628 +93.5307 -32.3556 43.2333 +93.7453 -33.0867 44.2102 +93.6884 -33.7299 45.0697 +93.8757 -34.4689 46.0571 +93.3701 -34.9585 46.7112 +93.6165 -35.7351 47.749 +93.8472 -36.5169 48.7936 +94.2291 -37.37 49.9336 +94.2616 -38.0958 50.9033 +91.5604 -37.7049 50.3809 +90.3525 -37.9073 50.6514 +89.0642 -38.0651 50.8623 +87.7783 -38.2124 51.0591 +86.0931 -38.1709 51.0037 +84.1762 -38.0066 50.7841 +82.8261 -38.0805 50.8829 +82.0319 -38.4015 51.3118 +79.9043 -38.0829 50.8861 +78.958 -38.3108 51.1906 +77.2396 -38.1505 50.9764 +76.6044 -38.5144 51.4627 +74.6719 -38.213 51.0599 +74.1125 -38.602 51.5797 +72.2742 -38.3131 51.1937 +70.0042 -37.7674 50.4645 +69.3778 -38.0915 50.8976 +67.6502 -37.799 50.5067 +66.807 -37.9863 50.7571 +65.6038 -37.9596 50.7213 +64.6205 -38.0492 50.8411 +63.9932 -38.3433 51.234 +61.7501 -37.6507 50.3086 +61.4773 -38.1446 50.9685 +60.2999 -38.0734 50.8734 +59.4703 -38.2119 51.0585 +58.5737 -38.3006 51.1769 +56.8761 -37.8484 50.5728 +55.7263 -37.7405 50.4286 +55.109 -37.9852 50.7556 +54.099 -37.953 50.7125 +52.9657 -37.8213 50.5366 +51.8404 -37.6807 50.3487 +51.2896 -37.9503 50.709 +49.6767 -37.4199 50.0002 +49.6223 -38.056 50.8501 +47.9095 -37.4108 49.988 +47.3628 -37.6599 50.3208 +46.2772 -37.4726 50.0706 +45.7297 -37.7131 50.392 +44.5399 -37.4143 49.9926 +43.936 -37.5966 50.2363 +42.9902 -37.4793 50.0795 +42.8342 -38.0503 50.8426 +41.6712 -37.7232 50.4055 +41.1202 -37.9397 50.6947 +40.0288 -37.6479 50.3049 +39.7439 -38.1098 50.9221 +38.6649 -37.8053 50.5152 +37.9068 -37.8006 50.5089 +36.6443 -37.2746 49.806 +36.75 -38.1394 50.9616 +35.75 -37.8607 50.5892 +34.8093 -37.627 50.2769 +34.2123 -37.7549 50.4478 +33.6611 -37.9323 50.6849 +32.7842 -37.7349 50.4211 +32.2333 -37.9049 50.6482 +30.8323 -37.0531 49.5101 +30.686 -37.6976 50.3713 +30.1358 -37.8566 50.5837 +29.1607 -37.4697 50.0667 +28.365 -37.2936 49.8315 +27.7801 -37.3858 49.9546 +27.2346 -37.5296 50.1468 +26.7651 -37.7809 50.4825 +25.7929 -37.3105 49.854 +25.2859 -37.4995 50.1065 +24.7388 -37.6303 50.2813 +23.8673 -37.2547 49.7795 +23.3238 -37.3781 49.9444 +22.8127 -37.5549 50.1806 +21.9645 -37.1645 49.6589 +21.748 -37.8444 50.5674 +20.5931 -36.8771 49.2749 +20.3642 -37.5532 50.1783 +19.4857 -37.0297 49.4788 +18.9749 -37.1875 49.6896 +18.4042 -37.2278 49.7435 +17.8889 -37.3802 49.9472 +17.2636 -37.2991 49.8388 +16.8232 -37.6195 50.2669 +16.1996 -37.532 50.15 +15.5556 -37.3827 49.9505 +14.9872 -37.4043 49.9794 +14.3519 -37.2477 49.7702 +13.7656 -37.2044 49.7122 +13.3687 -37.6852 50.3547 +12.939 -38.1059 50.9169 +12.2499 -37.7605 50.4552 +11.572 -37.4107 49.9878 +11.044 -37.5288 50.1456 +10.497 -37.5851 50.2209 +9.80844 -37.1059 49.5806 +9.26765 -37.1558 49.6473 +8.85141 -37.7368 50.4236 +8.19704 -37.3064 49.8485 +7.65339 -37.3479 49.9039 +7.09784 -37.327 49.876 +6.56439 -37.4222 50.0033 +5.92327 -36.8587 49.2503 +5.45595 -37.3658 49.9279 +4.90369 -37.3331 49.8842 +4.35978 -37.3574 49.9167 +3.75449 -36.7807 49.1461 +3.26576 -37.3374 49.89 +2.68259 -36.8144 49.1911 +2.17773 -37.3659 49.928 +1.63606 -37.4358 50.0214 +1.09078 -37.4429 50.0309 +0.537555 -36.9079 49.3161 +3.82689e-15 -37.4486 50.0385 +-0.546281 -37.5071 50.1167 +-1.09078 -37.4429 50.0309 +-1.63606 -37.4358 50.0214 +-2.18471 -37.4857 50.0881 +-2.72621 -37.4129 49.9909 +-3.271 -37.3972 49.9699 +-3.82164 -37.4385 50.0251 +-4.3528 -37.2976 49.8368 +-4.90369 -37.3331 49.8842 +-5.50824 -37.7239 50.4064 +-6.05745 -37.6936 50.366 +-6.6062 -37.6606 50.3218 +-7.15444 -37.6246 50.2737 +-7.8362 -38.2399 51.0959 +-8.15789 -37.1282 49.6104 +-8.89316 -37.9148 50.6615 +-9.32677 -37.3928 49.964 +-9.88666 -37.4018 49.976 +-10.3155 -36.935 49.3523 +-10.8704 -36.9387 49.3572 +-11.3897 -36.8215 49.2006 +-11.9446 -36.8194 49.1978 +-12.4804 -36.7555 49.1124 +-13.2024 -37.2163 49.7282 +-13.7223 -37.0874 49.5559 +-14.4868 -37.598 50.2382 +-15.0339 -37.5208 50.1351 +-15.5798 -37.4408 50.0281 +-16.1245 -37.3579 49.9174 +-16.9268 -37.8509 50.5761 +-17.2369 -37.2414 49.7617 +-18.0542 -37.7258 50.4089 +-18.603 -37.63 50.2809 +-19.1796 -37.5886 50.2255 +-19.7263 -37.4868 50.0896 +-20.5496 -37.8951 50.6352 +-21.1008 -37.7862 50.4897 +-21.6503 -37.6745 50.3404 +-22.1648 -37.5033 50.1117 +-23.018 -37.8928 50.632 +-23.604 -37.8271 50.5443 +-24.5124 -38.2616 51.1249 +-25.032 -38.0762 50.8772 +-25.5856 -37.9439 50.7004 +-26.1755 -37.8641 50.5937 +-27.0386 -38.1669 50.9984 +-27.5934 -38.0242 50.8076 +-28.5529 -38.4258 51.3442 +-29.07 -38.2205 51.07 +-29.6678 -38.1213 50.9375 +-30.6954 -38.5596 51.5231 +-30.7737 -37.8053 50.5151 +-31.7247 -38.1255 50.9431 +-32.6419 -38.3853 51.2902 +-33.1997 -38.2132 51.0602 +-33.755 -38.0381 50.8262 +-34.7372 -38.3341 51.2218 +-35.7305 -38.6227 51.6073 +-35.9469 -38.0693 50.868 +-36.9 -38.295 51.1696 +-37.8624 -38.5136 51.4616 +-38.9369 -38.8278 51.8814 +-39.5009 -38.6227 51.6074 +-40.4858 -38.8212 51.8727 +-40.6736 -38.2543 51.1151 +-41.6649 -38.4422 51.3662 +-42.2232 -38.2229 51.0732 +-43.4493 -38.5967 51.5727 +-44.5195 -38.8125 51.861 +-45.0831 -38.5783 51.548 +-46.1078 -38.7313 51.7525 +-47.1992 -38.925 52.0113 +-47.8238 -38.7249 51.7439 +-48.8674 -38.8562 51.9193 +-49.7358 -38.8369 51.8935 +-50.0533 -38.3865 51.2917 +-51.4197 -38.7329 51.7546 +-52.2965 -38.6954 51.7044 +-53.1125 -38.6054 51.5843 +-54.4441 -38.877 51.9472 +-55.0082 -38.5909 51.5648 +-55.8962 -38.5279 51.4807 +-56.4552 -38.2341 51.0881 +-58.2144 -38.739 51.7627 +-58.5737 -38.3006 51.1769 +-60.3569 -38.7816 51.8197 +-61.1259 -38.5949 51.5703 +-62.8666 -39.0066 52.1204 +-63.4323 -38.6764 51.6791 +-64.4174 -38.5974 51.5736 +-65.9757 -38.8471 51.9072 +-67.4741 -39.0418 52.1674 +-68.4028 -38.8937 51.9694 +-69.698 -38.9432 52.0356 +-71.0735 -39.0226 52.1417 +-72.9768 -39.3711 52.6074 +-74.5211 -39.5042 52.7852 +-75.9993 -39.5847 52.8928 +-77.2572 -39.5361 52.8278 +-79.5154 -39.978 53.4182 +-80.3261 -39.6749 53.0134 +-81.678 -39.6305 52.954 +-82.6434 -39.3884 52.6305 +-84.3172 -39.4713 52.7412 +-85.6028 -39.3572 52.5888 +-88.0895 -39.7735 53.1451 +-89.1477 -39.5252 52.8133 +-91.0144 -39.6211 52.9414 +-92.5649 -39.5612 52.8614 +-94.6121 -39.6944 53.0393 +-96.2579 -39.6393 52.9657 +-98.3239 -39.7376 53.0971 +-100.483 -39.8503 53.2477 +-102.318 -39.8129 53.1978 +-103.906 -39.6627 52.997 +-106.6 -39.9117 53.3298 +-108.712 -39.9164 53.3359 +-112.117 -40.3648 53.9351 +-113.304 -39.9899 53.4342 +-116.74 -40.3846 53.9615 +-119.5 -40.5103 54.1295 +-122.972 -40.8424 54.5734 +-125.934 -40.9699 54.7437 +-129.352 -41.21 55.0645 +-131.544 -41.03 54.824 +-134.809 -41.1568 54.9934 +-137.193 -40.985 54.7638 +-137.426 -40.161 53.6628 +-138.366 -39.5441 52.8386 +-138.937 -38.8191 51.8699 +-138.951 -37.9421 50.698 +-138.585 -36.9704 49.3995 +-138.568 -36.101 48.2379 +-140.469 -35.7263 47.7372 +-139.875 -34.7153 46.3863 +-139.819 -33.8479 45.2274 +-138.632 -32.7203 43.7206 +-138.823 -31.9297 42.6643 +-139.658 -31.2866 41.8049 +-149.975 -32.7069 43.7028 +-13.197 -2.80014 3.74152 +-15.1283 -3.12117 4.17048 +-16.1215 -3.23207 4.31867 +-15.312 -2.98101 3.9832 +-15.3548 -2.90083 3.87607 +-15.2052 -2.7854 3.72183 +-15.6288 -2.77386 3.70641 +-14.6112 -2.51037 3.35433 +-14.8399 -2.4659 3.29491 +-15.2616 -2.45024 3.27399 +-14.5222 -2.25033 3.00687 +-14.6515 -2.18881 2.92467 +-14.78 -2.1261 2.84088 +-14.0309 -1.94092 2.59344 +-13.4729 -1.78966 2.39134 +-14.3788 -1.83127 2.44692 +-13.8169 -1.68434 2.2506 +-13.9391 -1.62346 2.16926 +-12.684 -1.40857 1.88212 +-12.2116 -1.29017 1.72392 +-13.9066 -1.39439 1.86317 +-13.1363 -1.24664 1.66575 +-12.5605 -1.12476 1.5029 +-13.5667 -1.14243 1.52651 +-13.8802 -1.09492 1.46302 +-13.2009 -0.971183 1.29769 +-13.2145 -0.902121 1.20541 +-13.3266 -0.839256 1.12141 +-12.542 -0.723602 0.966872 +-12.9505 -0.67888 0.907114 +-12.9599 -0.611143 0.816605 +-11.472 -0.480659 0.642254 +-12.9758 -0.475526 0.635394 +-11.5841 -0.363759 0.486052 +-13.5871 -0.355446 0.474945 +-12.3924 -0.259296 0.34647 +-12.3958 -0.194489 0.259875 +-11.3983 -0.119211 0.159288 +-11.7996 -0.0616991 0.0824419 +28.4 0 0 +30.3988 -0.157031 0.213819 +32.2951 -0.333678 0.454347 +35.8877 -0.556266 0.757431 +38.1767 -0.789136 1.07451 +36.8649 -0.952745 1.29729 +35.7509 -1.10906 1.51013 +35.7332 -1.29368 1.76152 +32.4208 -1.34196 1.82725 +32.998 -1.53724 2.09316 +24.0083 -1.24332 1.69294 +15.8268 -0.90207 1.22829 +18.0008 -1.11991 1.52491 +29.211 -1.97004 2.68247 +35.6324 -2.58975 3.5263 +41.5415 -3.23729 4.408 +49.8105 -4.14374 5.64226 +59.2421 -5.24081 7.13606 +69.3357 -6.50038 8.85114 +88.0753 -8.72432 11.8793 +93.0643 -9.71343 13.2261 +94.8841 -10.4095 14.1739 +94.727 -10.8992 14.8408 +94.5627 -11.3881 15.5064 +94.5869 -11.9008 16.2045 +95.2865 -12.5042 17.0261 +94.9036 -12.9693 17.6594 +94.9033 -13.4867 18.3639 +94.5068 -13.9477 18.9917 +95.3625 -14.5984 19.8777 +94.9505 -15.0598 20.5059 +95.5921 -15.692 21.3668 +95.3572 -16.1852 22.0384 +95.1149 -16.6772 22.7082 +94.7698 -17.1505 23.3528 +95.3717 -17.7997 24.2366 +95.2008 -18.3099 24.9314 +95.6859 -18.9512 25.8046 +95.4028 -19.4447 26.4766 +95.9609 -20.1146 27.3888 +96.3185 -20.7513 28.2557 +96.0089 -21.2481 28.9321 +95.692 -21.7431 29.6062 +95.3678 -22.2366 30.2782 +96.0562 -22.9723 31.2798 +95.7139 -23.4676 31.9543 +96.2848 -24.1924 32.9412 +95.9245 -24.6889 33.6172 +95.6482 -25.2075 34.3233 +96.0009 -25.8969 35.2622 +95.6155 -26.3919 35.936 +95.9448 -27.0886 36.8848 +96.3507 -27.8167 37.8762 +96.2949 -28.419 38.6963 +94.8031 -28.5929 38.933 +93.6683 -28.8629 39.3007 +93.769 -29.5123 40.185 +93.6819 -30.1085 40.9968 +93.8467 -30.7922 41.9277 +93.1281 -31.1883 42.4671 +94.2236 -32.2009 43.8459 +93.7453 -32.6864 44.5069 +93.6027 -33.2914 45.3307 +93.8757 -34.0519 46.3663 +94.1333 -34.8178 47.4092 +93.2791 -35.1755 47.8962 +94.015 -36.1396 49.2089 +93.145 -36.4932 49.6904 +93.5154 -37.3371 50.8394 +92.3021 -37.5505 51.13 +91.0897 -37.7542 51.4074 +89.0642 -37.6046 51.2037 +87.7783 -37.7501 51.4018 +86.495 -37.8852 51.5857 +84.8151 -37.8318 51.5131 +83.5401 -37.9442 51.6661 +82.0319 -37.937 51.6562 +80.6086 -37.9539 51.6793 +79.8129 -38.2571 52.0921 +78.1656 -38.1408 51.9337 +76.9109 -38.2007 52.0153 +75.5844 -38.212 52.0308 +74.1125 -38.135 51.9259 +72.4989 -37.9673 51.6975 +71.0446 -37.865 51.5583 +70.0413 -37.9906 51.7293 +68.3084 -37.705 51.3405 +67.0971 -37.6898 51.3197 +66.467 -37.9938 51.7336 +65.1911 -37.9208 51.6342 +64.0639 -37.9213 51.6349 +62.3809 -37.5752 51.1637 +61.8246 -37.896 51.6005 +60.644 -37.8275 51.5072 +59.8113 -37.9661 51.696 +58.6412 -37.8809 51.5799 +57.4783 -37.7864 51.4513 +56.3227 -37.6829 51.3103 +55.765 -37.9724 51.7045 +54.6186 -37.8539 51.5432 +52.9657 -37.3638 50.8758 +52.3492 -37.5903 51.1842 +51.2896 -37.4912 51.0493 +50.1747 -37.3378 50.8404 +49.6223 -37.5956 51.1914 +48.5183 -37.4278 50.963 +48.0248 -37.7243 51.3666 +46.8126 -37.4475 50.9898 +46.2587 -37.6879 51.3171 +45.1787 -37.4917 51.05 +43.936 -37.1418 50.5735 +43.2168 -37.221 50.6813 +42.8901 -37.6391 51.2507 +42.1128 -37.6618 51.2815 +41.556 -37.8779 51.5758 +40.5124 -37.6418 51.2543 +39.9559 -37.8496 51.5373 +38.6649 -37.348 50.8543 +38.3188 -37.7492 51.4006 +36.8473 -37.0277 50.4182 +36.75 -37.678 51.3036 +35.7992 -37.4542 50.999 +35.1972 -37.5859 51.1783 +34.6894 -37.8183 51.4947 +33.7081 -37.5257 51.0962 +32.738 -37.2259 50.688 +32.2333 -37.4463 50.9882 +31.6354 -37.5584 51.1407 +30.686 -37.2416 50.7094 +30.1358 -37.3987 50.9233 +29.2029 -37.0701 50.4759 +28.9871 -37.6504 51.2661 +28.1868 -37.4742 51.0262 +27.2744 -37.1299 50.5573 +26.726 -37.2693 50.7472 +25.7929 -36.8591 50.1886 +25.2859 -37.0458 50.4428 +24.7022 -37.1199 50.5437 +24.1898 -37.3014 50.7908 +23.3238 -36.9259 50.2796 +22.7785 -37.045 50.4417 +22.2649 -37.217 50.676 +21.3898 -36.771 50.0686 +21.1642 -37.4414 50.9815 +20.3333 -37.0426 50.4385 +19.7564 -37.0898 50.5027 +18.9749 -36.7376 50.0231 +18.7166 -37.4017 50.9275 +17.8889 -36.928 50.2824 +17.2369 -36.7909 50.0957 +16.6421 -36.7641 50.0593 +16.1495 -36.9633 50.3305 +15.7491 -37.3899 50.9114 +15.0105 -37.0094 50.3933 +14.3519 -36.7971 50.1042 +13.982 -37.3322 50.8328 +13.5558 -37.7504 51.4022 +12.939 -37.645 51.2586 +12.4407 -37.8847 51.5851 +11.572 -36.9581 50.3234 +11.044 -37.0747 50.4822 +10.464 -37.0136 50.399 +9.82408 -36.7154 49.993 +9.28243 -36.7648 50.0602 +8.83749 -37.2217 50.6823 +8.17094 -36.7377 50.0233 +7.7387 -37.3073 50.7989 +7.09784 -36.8754 50.2108 +6.54348 -36.8518 50.1786 +6.01911 -37.002 50.3832 +5.45595 -36.9137 50.263 +4.91154 -36.9405 50.2994 +4.35978 -36.9055 50.2517 +3.81553 -36.9265 50.2804 +3.271 -36.9448 50.3053 +2.72621 -36.9603 50.3264 +2.18122 -36.973 50.3437 +1.63606 -36.9829 50.3571 +1.09078 -36.9899 50.3667 +0.545408 -36.9941 50.3725 +3.83302e-15 -37.0547 50.455 +-0.545408 -36.9941 50.3725 +-1.09078 -36.9899 50.3667 +-1.657 -37.4562 51.0017 +-2.18122 -36.973 50.3437 +-2.72621 -36.9603 50.3264 +-3.28146 -37.0631 50.4664 +-3.81553 -36.9265 50.2804 +-4.41558 -37.3778 50.8949 +-4.97431 -37.4126 50.9423 +-5.50824 -37.2675 50.7447 +-6.16288 -37.8858 51.5866 +-6.6062 -37.205 50.6596 +-7.15444 -37.1694 50.6111 +-7.84839 -37.8361 51.5189 +-8.26231 -37.1486 50.5827 +-8.89316 -37.4561 51.0015 +-9.3859 -37.1746 50.6182 +-9.91795 -37.0662 50.4706 +-10.4805 -37.072 50.4784 +-11.0093 -36.9581 50.3235 +-11.5537 -36.8999 50.2441 +-12.0782 -36.7807 50.0818 +-12.6599 -36.8329 50.1529 +-13.1608 -36.6503 49.9043 +-13.9604 -37.2744 50.7541 +-14.5093 -37.2009 50.654 +-15.0572 -37.1245 50.55 +-15.604 -37.0453 50.4422 +-16.3749 -37.4791 51.0328 +-16.6938 -36.8785 50.215 +-17.5041 -37.3612 50.8723 +-18.2748 -37.7246 51.3671 +-18.603 -37.1747 50.6184 +-19.4135 -37.5866 51.1793 +-19.9669 -37.485 51.0408 +-20.5496 -37.4367 50.9751 +-21.069 -37.273 50.7522 +-21.9433 -37.7224 51.3641 +-22.532 -37.6634 51.2838 +-23.018 -37.4343 50.9719 +-23.9192 -37.8685 51.563 +-24.5124 -37.7987 51.468 +-25.032 -37.6156 51.2187 +-25.5482 -37.43 50.9659 +-26.4817 -37.8435 51.529 +-27.0386 -37.7052 51.3407 +-27.5934 -37.5642 51.1486 +-28.1462 -37.4201 50.9525 +-29.0285 -37.7043 51.3394 +-29.6255 -37.6065 51.2063 +-30.6524 -38.0398 51.7962 +-31.212 -37.8799 51.5786 +-31.7247 -37.6643 51.285 +-32.6873 -37.9737 51.7063 +-33.1997 -37.7509 51.4029 +-34.2714 -38.1529 51.9503 +-35.1666 -38.3385 52.203 +-35.7305 -38.1554 51.9537 +-36.3901 -38.0724 51.8407 +-37.3 -38.2419 52.0714 +-37.8624 -38.0477 51.807 +-38.4218 -37.8507 51.5388 +-39.5009 -38.1555 51.9538 +-40.4858 -38.3516 52.2208 +-41.1034 -38.1909 52.002 +-42.3185 -38.5729 52.5221 +-42.8855 -38.3528 52.2224 +-43.4493 -38.1298 51.9188 +-44.5195 -38.343 52.2091 +-45.542 -38.4995 52.4222 +-46.1078 -38.2627 52.0999 +-47.2579 -38.502 52.4256 +-48.0617 -38.4467 52.3504 +-49.1683 -38.6225 52.5897 +-49.7358 -38.367 52.2419 +-50.4227 -38.202 52.0171 +-51.4197 -38.2643 52.102 +-52.2965 -38.2272 52.0515 +-53.4942 -38.4124 52.3036 +-54.0584 -38.1346 51.9254 +-54.7485 -37.9439 51.6658 +-55.8962 -38.0618 51.8262 +-57.0516 -38.1706 51.9744 +-58.2144 -38.2703 52.1102 +-58.979 -38.0991 51.877 +-60.3569 -38.3125 52.1676 +-61.7454 -38.5145 52.4426 +-62.2414 -38.1515 51.9483 +-63.6426 -38.3351 52.1984 +-65.4074 -38.7165 52.7177 +-66.261 -38.5431 52.4817 +-67.4741 -38.5695 52.5175 +-69.0556 -38.7899 52.8177 +-69.698 -38.4721 52.3849 +-71.0735 -38.5505 52.4916 +-72.7539 -38.776 52.7987 +-75.1952 -39.3793 53.6202 +-75.7728 -38.9893 53.0892 +-77.6374 -39.25 53.4441 +-78.9026 -39.1899 53.3623 +-80.3261 -39.195 53.3692 +-81.9112 -39.2629 53.4617 +-83.3478 -39.2436 53.4354 +-84.3172 -38.9938 53.0953 +-85.9995 -39.0612 53.1871 +-87.3707 -38.9718 53.0653 +-90.032 -39.4344 53.6952 +-91.4998 -39.3505 53.581 +-93.2976 -39.392 53.6375 +-94.9397 -39.3499 53.5802 +-96.9997 -39.4615 53.7321 +-98.0751 -39.1576 53.3183 +-100.984 -39.5643 53.8721 +-102.318 -39.3313 53.5548 +-104.665 -39.4692 53.7425 +-106.854 -39.523 53.8158 +-109.905 -39.8665 54.2835 +-112.375 -39.9679 54.4217 +-114.597 -39.9567 54.4064 +-116.74 -39.896 54.3237 +-119.761 -40.1076 54.6119 +-123.321 -40.4632 55.096 +-125.934 -40.4743 55.1111 +-128.469 -40.4335 55.0557 +-131.189 -40.4244 55.0432 +-134.275 -40.4976 55.143 +-136.925 -40.41 55.0236 +-138.145 -39.8827 54.3057 +-139.269 -39.3206 53.5402 +-138.846 -38.3245 52.1839 +-138.86 -37.4586 51.0048 +-138.493 -36.4991 49.6984 +-139.668 -35.9475 48.9474 +-139.917 -35.1553 47.8686 +-139.783 -34.2727 46.6668 +-138.985 -33.2389 45.2592 +-139.19 -32.4546 44.1913 +-138.73 -31.5223 42.9218 +-140.969 -31.1983 42.4807 +-151.103 -32.5542 44.3269 +-15.9306 -3.33927 4.54687 +-14.8446 -3.0256 4.11975 +-15.0783 -2.98636 4.06633 +-15.312 -2.94495 4.00994 +-15.8317 -2.95474 4.02328 +-15.2052 -2.75171 3.74682 +-15.1494 -2.65624 3.61683 +-14.8996 -2.52894 3.4435 +-15.129 -2.48352 3.38165 +-15.5514 -2.46656 3.35855 +-14.5222 -2.22311 3.02706 +-14.5544 -2.14801 2.9248 +-13.8077 -1.9622 2.67179 +-13.6412 -1.86417 2.53831 +-14.3516 -1.88332 2.56439 +-13.8897 -1.74758 2.37957 +-13.9149 -1.67576 2.28177 +-13.0556 -1.50217 2.04541 +-13.8639 -1.52097 2.07101 +-13.9843 -1.45958 1.98741 +-13.6107 -1.34821 1.83577 +-14.0252 -1.31489 1.7904 +-12.6594 -1.11991 1.5249 +-13.4676 -1.12037 1.52554 +-13.6819 -1.06622 1.4518 +-13.1016 -0.952224 1.29658 +-12.9164 -0.871106 1.18613 +-13.0282 -0.81054 1.10366 +-13.4378 -0.765908 1.04289 +-12.6517 -0.655194 0.892135 +-12.3618 -0.575883 0.784142 +-12.3698 -0.512007 0.697165 +-12.9758 -0.469773 0.639659 +-12.9822 -0.402729 0.548369 +-12.6879 -0.327908 0.446491 +-12.6923 -0.262357 0.357234 +-12.4957 -0.193686 0.26373 +-12.2981 -0.127066 0.173018 +-11.7996 -0.0609527 0.0829952 +28.5 0 0 +31.2988 -0.159687 0.221599 +33.3949 -0.340788 0.472914 +34.1883 -0.523393 0.726317 +37.2773 -0.761045 1.05611 +36.8649 -0.941 1.30583 +35.0519 -1.07396 1.49035 +35.7332 -1.27774 1.77313 +32.5206 -1.32949 1.84494 +32.001 -1.47242 2.04329 +26.8973 -1.37576 1.90916 +15.3291 -0.862929 1.19749 +17.2052 -1.05721 1.4671 +30.2046 -2.01194 2.79199 +34.9376 -2.50795 3.48031 +40.6492 -3.1287 4.34172 +49.9095 -4.1008 5.69071 +57.9563 -5.06387 7.02717 +69.237 -6.41113 8.89678 +90.8369 -8.88693 12.3325 +94.1476 -9.70536 13.4682 +94.8841 -10.2812 14.2673 +94.8252 -10.776 14.9539 +94.5627 -11.2477 15.6086 +94.6847 -11.7662 16.3281 +94.4078 -12.2362 16.9802 +95.0011 -12.8226 17.794 +94.9033 -13.3204 18.4849 +95.6712 -13.9455 19.3523 +95.3625 -14.4184 20.0086 +95.0471 -14.8893 20.662 +95.5921 -15.4986 21.5075 +95.4533 -16.0018 22.2059 +95.019 -16.455 22.8347 +95.8217 -17.1271 23.7675 +95.3717 -17.5802 24.3962 +96.1518 -18.2648 25.3463 +95.6859 -18.7176 25.9745 +95.4974 -19.2241 26.6774 +95.8666 -19.8472 27.5421 +95.4728 -20.3155 28.192 +96.0089 -20.9861 29.1226 +95.7854 -21.4961 29.8303 +95.3678 -21.9625 30.4776 +95.1291 -22.4701 31.1819 +95.7139 -23.1783 32.1647 +96.3769 -23.917 33.1898 +95.9245 -24.3845 33.8386 +95.7396 -24.9205 34.5824 +96.0009 -25.5777 35.4944 +95.7967 -26.116 36.2414 +95.2227 -26.5533 36.8483 +95.6317 -27.2688 37.8412 +96.2949 -28.0687 38.9512 +94.8922 -28.267 39.2263 +93.6683 -28.5071 39.5595 +94.1222 -29.2583 40.602 +93.594 -29.7095 41.2281 +93.8467 -30.4126 42.2038 +93.2151 -30.8327 42.7868 +93.6173 -31.5994 43.8507 +93.7453 -32.2835 44.8001 +93.9455 -33.0014 45.7963 +93.8757 -33.6322 46.6717 +94.2181 -34.4196 47.7644 +93.9538 -34.9933 48.5604 +94.1827 -35.7579 49.6215 +93.145 -36.0434 50.0177 +93.4325 -36.8441 51.1288 +92.7966 -37.2863 51.7424 +90.4344 -37.0205 51.3737 +89.0642 -37.141 51.5409 +87.8592 -37.3191 51.788 +86.495 -37.4181 51.9255 +84.895 -37.4006 51.9011 +83.3021 -37.3697 51.8582 +82.1107 -37.5053 52.0463 +80.9999 -37.668 52.2722 +79.7352 -37.7487 52.3842 +77.9341 -37.559 52.121 +76.9875 -37.7673 52.41 +75.0521 -37.4752 52.0046 +74.188 -37.7033 52.3211 +72.2742 -37.383 51.8767 +70.9703 -37.3592 51.8436 +69.3778 -37.1668 51.5767 +68.4547 -37.32 51.7892 +67.0971 -37.2252 51.6577 +66.5389 -37.5661 52.1307 +65.2624 -37.4943 52.0312 +63.3568 -37.0404 51.4013 +62.3809 -37.112 51.5007 +61.8941 -37.4709 51.9987 +60.0245 -36.9795 51.3167 +59.5385 -37.3271 51.7991 +58.0332 -37.026 51.3812 +57.6121 -37.4076 51.9108 +56.9191 -37.6125 52.1951 +55.2402 -37.1513 51.5552 +54.0341 -36.9872 51.3275 +53.03 -36.948 51.273 +52.4128 -37.172 51.5839 +51.3525 -37.0745 51.4486 +50.2369 -36.9233 51.2388 +49.6839 -37.1782 51.5925 +48.5183 -36.9665 51.2987 +47.9647 -37.2126 51.6402 +46.8126 -36.9859 51.3256 +46.3175 -37.2706 51.7207 +45.1787 -37.0295 51.3862 +44.6816 -37.3065 51.7705 +43.1602 -36.714 50.9483 +42.4427 -36.7874 51.0502 +42.168 -37.2463 51.6869 +41.3926 -37.2639 51.7114 +40.5124 -37.1777 51.5919 +39.479 -36.9368 51.2575 +38.8739 -37.087 51.4659 +38.1643 -37.1335 51.5305 +37.3041 -37.0246 51.3793 +36.6 -37.0616 51.4307 +35.7992 -36.9925 51.3348 +35.2457 -37.1738 51.5863 +34.26 -36.8898 51.1922 +33.755 -37.1147 51.5044 +32.738 -36.767 51.0218 +32.2787 -37.0368 51.3963 +31.6354 -37.0954 51.4775 +30.7737 -36.8875 51.1891 +30.1788 -36.9904 51.3318 +29.2452 -36.6661 50.8818 +28.6968 -36.8139 51.0869 +27.8615 -36.585 50.7694 +27.2744 -36.6722 50.8902 +26.726 -36.8099 51.0814 +25.7929 -36.4047 50.5192 +25.3234 -36.6433 50.8502 +24.7388 -36.7168 50.9521 +24.2615 -36.9507 51.2768 +23.3238 -36.4708 50.6108 +22.8811 -36.7531 51.0026 +22.2315 -36.7031 50.9332 +21.748 -36.9257 51.2421 +21.1325 -36.9244 51.2403 +20.6423 -37.142 51.5423 +19.7564 -36.6326 50.8353 +19.2965 -36.8997 51.206 +18.4326 -36.3801 50.485 +18.1921 -37.091 51.4715 +17.5041 -36.9007 51.2074 +16.6679 -36.3674 50.4673 +16.3749 -37.0171 51.3689 +15.5314 -36.4185 50.5382 +15.0105 -36.5532 50.7251 +14.3744 -36.4005 50.5132 +13.7439 -36.2441 50.2963 +13.4727 -37.0563 51.4233 +12.6399 -36.3216 50.4037 +12.269 -36.9012 51.208 +11.572 -36.5025 50.6548 +11.044 -36.6177 50.8147 +10.4805 -36.615 50.8109 +9.82408 -36.2629 50.3223 +9.26765 -36.2538 50.3097 +8.75399 -36.4155 50.5341 +8.18399 -36.3428 50.4332 +7.64121 -36.3832 50.4892 +7.10916 -36.4789 50.622 +6.55393 -36.4556 50.5897 +6.00953 -36.4876 50.6342 +5.46467 -36.5169 50.6748 +4.90369 -36.4268 50.5498 +4.37373 -36.5672 50.7445 +3.82164 -36.5297 50.6925 +3.27623 -36.5478 50.7177 +2.72621 -36.5047 50.6579 +2.18122 -36.5172 50.6752 +1.63868 -36.5854 50.7698 +1.09252 -36.5924 50.7796 +0.545408 -36.5381 50.7042 +3.83914e-15 -36.6564 50.8684 +-0.545408 -36.5381 50.7042 +-1.09252 -36.5924 50.7796 +-1.63606 -36.527 50.6888 +-2.1882 -36.6341 50.8374 +-2.72621 -36.5047 50.6579 +-3.28146 -36.6062 50.7987 +-3.81553 -36.4713 50.6116 +-4.42954 -37.0337 51.392 +-4.97431 -36.9514 51.2778 +-5.61283 -37.507 52.0488 +-6.1533 -37.3606 51.8455 +-6.73163 -37.444 51.9614 +-7.27897 -37.3502 51.8312 +-7.86057 -37.4277 51.9387 +-8.27536 -36.7486 50.9963 +-8.94883 -37.226 51.6588 +-9.44502 -36.9476 51.2725 +-9.91795 -36.6093 50.803 +-10.464 -36.5573 50.7309 +-10.8877 -36.0995 50.0956 +-11.5537 -36.445 50.5751 +-12.1164 -36.442 50.5709 +-12.4605 -35.806 49.6882 +-13.4311 -36.9419 51.2646 +-13.7223 -36.1871 50.2171 +-14.7343 -37.3119 51.778 +-15.0572 -36.6669 50.8829 +-15.604 -36.5887 50.7744 +-16.1245 -36.451 50.5834 +-16.7197 -36.4803 50.6241 +-17.5041 -36.9007 51.2074 +-18.0542 -36.81 51.0815 +-18.887 -37.277 51.7296 +-19.4427 -37.1793 51.594 +-19.9669 -37.0229 51.3769 +-20.5805 -37.0308 51.388 +-21.3546 -37.3125 51.7789 +-21.9759 -37.3127 51.7791 +-22.4986 -37.144 51.545 +-23.0864 -37.0828 51.4601 +-23.604 -36.9088 51.2187 +-24.5124 -37.3328 51.807 +-25.032 -37.1519 51.556 +-25.6231 -37.077 51.4521 +-26.4434 -37.323 51.7934 +-27.0777 -37.2943 51.7535 +-27.5934 -37.1011 51.4855 +-28.5936 -37.5464 52.1034 +-29.07 -37.2927 51.7514 +-29.7101 -37.2489 51.6906 +-30.6524 -37.5709 52.1374 +-31.212 -37.413 51.9183 +-31.7247 -37.2 51.6228 +-32.3695 -37.141 51.5408 +-33.2459 -37.3374 51.8134 +-33.802 -37.1663 51.576 +-35.1666 -37.8659 52.5468 +-35.7789 -37.7362 52.3668 +-36.3901 -37.6031 52.1822 +-37.35 -37.8211 52.4846 +-37.8624 -37.5787 52.1482 +-38.9884 -37.9354 52.6432 +-39.5009 -37.6851 52.296 +-40.5388 -37.9284 52.6336 +-41.1034 -37.7201 52.3445 +-42.3729 -38.1464 52.9361 +-42.8855 -37.88 52.5664 +-43.5052 -37.7082 52.328 +-44.0098 -37.4367 51.9512 +-45.6567 -38.1206 52.9003 +-46.6885 -38.267 53.1035 +-47.2579 -38.0274 52.7709 +-48.0617 -37.9728 52.6951 +-48.6868 -37.7728 52.4177 +-49.7358 -37.8941 52.5859 +-50.7305 -37.9614 52.6793 +-51.4197 -37.7926 52.4451 +-52.6741 -38.0286 52.7726 +-53.4942 -37.9389 52.6481 +-54.2513 -37.7989 52.4539 +-55.5928 -38.0542 52.8081 +-56.5523 -38.0338 52.7798 +-57.0516 -37.7001 52.3167 +-58.0805 -37.7117 52.3328 +-59.1817 -37.7588 52.3981 +-60.6297 -38.0112 52.7484 +-61.5389 -37.9125 52.6115 +-63.0055 -38.1438 52.9324 +-64.2033 -38.1962 53.0051 +-65.4781 -38.2806 53.1223 +-66.6176 -38.2729 53.1116 +-67.546 -38.1346 52.9197 +-68.693 -38.1105 52.8863 +-69.9905 -38.1573 52.9512 +-71.0735 -38.0753 52.8374 +-73.0511 -38.4545 53.3636 +-74.1466 -38.3515 53.2207 +-75.8483 -38.5471 53.4921 +-77.2572 -38.5763 53.5326 +-79.4388 -38.9699 54.0788 +-80.5576 -38.8234 53.8756 +-81.7558 -38.7053 53.7116 +-82.6434 -38.4322 53.3327 +-84.7112 -38.6931 53.6947 +-86.3168 -38.7221 53.7349 +-88.1694 -38.8432 53.903 +-88.9066 -38.4614 53.3732 +-90.8526 -38.5906 53.5524 +-92.8906 -38.7367 53.7552 +-95.4312 -39.0661 54.2123 +-96.2579 -38.677 53.6724 +-98.4068 -38.8057 53.8509 +-100.483 -38.8829 53.9582 +-102.402 -38.8783 53.9517 +-105.255 -39.2025 54.4016 +-106.939 -39.0668 54.2132 +-109.479 -39.2223 54.429 +-112.203 -39.415 54.6965 +-114.597 -39.4642 54.7648 +-117.087 -39.5211 54.8438 +-119.761 -39.6132 54.9716 +-123.584 -40.0494 55.5769 +-125.934 -39.9753 55.4741 +-129.44 -40.237 55.8372 +-131.189 -39.926 55.4057 +-134.364 -40.025 55.543 +-137.193 -39.9901 55.4945 +-138.235 -39.4168 54.699 +-139.179 -38.8107 53.8579 +-138.937 -37.8768 52.5619 +-138.769 -36.9725 51.3071 +-138.493 -36.0492 50.0257 +-138.751 -35.2713 48.9462 +-140.009 -34.7448 48.2156 +-139.783 -33.8502 46.9742 +-140.097 -33.092 45.922 +-138.353 -31.8617 44.2147 +-138.917 -31.1756 43.2627 +-140.875 -30.7933 42.7321 +-151.948 -32.3329 44.8686 +-9.89774 -2.04912 2.84358 +-14.6555 -2.95023 4.09406 +-15.0783 -2.94955 4.09311 +-16.2631 -3.08931 4.28706 +-15.3548 -2.83041 3.92779 +-15.3965 -2.75197 3.81893 +-15.437 -2.67332 3.70978 +-15.1879 -2.54611 3.53326 +-15.6108 -2.53102 3.51232 +-14.7787 -2.3151 3.21269 +-15.3935 -2.32744 3.22981 +-14.8455 -2.16396 3.00295 +-14.0994 -1.97896 2.74621 +-13.7386 -1.85434 2.57328 +-13.4729 -1.74622 2.42324 +-13.6941 -1.70172 2.3615 +-13.327 -1.58517 2.19975 +-13.1538 -1.49481 2.07436 +-13.5689 -1.47026 2.04029 +-13.1964 -1.36037 1.8878 +-14.3011 -1.39914 1.94159 +-14.0252 -1.29868 1.80219 +-13.4506 -1.17523 1.63088 +-13.3686 -1.09843 1.5243 +-12.9879 -0.999656 1.38723 +-13.3001 -0.954733 1.32489 +-12.0222 -0.800806 1.11128 +-13.1277 -0.806664 1.11941 +-13.7365 -0.773275 1.07308 +-12.9505 -0.6624 0.919218 +-12.5612 -0.577958 0.802038 +-12.4696 -0.509773 0.707417 +-12.6763 -0.453275 0.629013 +-13.6812 -0.419183 0.581704 +-12.0885 -0.308566 0.428199 +-12.8921 -0.263204 0.36525 +-12.4957 -0.191299 0.265467 +-11.1983 -0.114276 0.158582 +-11.7996 -0.0602013 0.0835418 +28.5 0 0 +31.8988 -0.160703 0.227305 +33.3949 -0.336507 0.47597 +35.6878 -0.539485 0.763071 +37.2773 -0.751484 1.06293 +36.2655 -0.914066 1.29289 +35.0519 -1.06047 1.49998 +34.1362 -1.2053 1.70482 +32.5206 -1.31279 1.85686 +32.2004 -1.46298 2.0693 +26.8973 -1.35848 1.92149 +16.1254 -0.896355 1.26784 +17.2052 -1.04393 1.47658 +31.7943 -2.09122 2.95792 +34.9376 -2.47645 3.5028 +41.5415 -3.15722 4.4657 +49.9095 -4.04928 5.72748 +64.4838 -5.56342 7.86914 +69.237 -6.33059 8.95427 +93.4999 -9.03253 12.776 +94.1476 -9.58344 13.5552 +94.9824 -10.1626 14.3744 +94.8252 -10.6406 15.0506 +94.6607 -11.1179 15.7257 +94.6847 -11.6184 16.4336 +95.1889 -12.1824 17.2314 +95.0011 -12.6615 17.9089 +95.0005 -13.1665 18.6233 +95.6712 -13.7703 19.4774 +95.4594 -14.2518 20.1584 +95.0471 -14.7022 20.7955 +95.014 -15.2114 21.5156 +95.4533 -15.8008 22.3494 +95.1149 -16.2647 23.0055 +95.8217 -16.912 23.9211 +95.5624 -17.3941 24.6029 +96.1518 -18.0354 25.51 +95.7807 -18.5008 26.1683 +95.4974 -18.9826 26.8498 +96.0552 -19.6364 27.7746 +95.4728 -20.0603 28.3741 +96.1026 -20.7427 29.3394 +95.7854 -21.2261 30.0231 +96.4843 -21.9405 31.0336 +95.1291 -22.1878 31.3834 +95.8063 -22.9093 32.4039 +96.3769 -23.6166 33.4043 +96.0162 -24.1012 34.0898 +95.7396 -24.6075 34.8059 +96.2739 -25.3282 35.8253 +95.7967 -25.7879 36.4755 +96.2156 -26.4932 37.4731 +95.6317 -26.9263 38.0857 +96.0265 -27.6388 39.0935 +94.8922 -27.9119 39.4797 +94.0231 -28.2556 39.9659 +94.1222 -28.8908 40.8644 +93.6819 -29.3638 41.5334 +93.8467 -30.0306 42.4765 +93.4762 -30.5306 43.1838 +93.6173 -31.2024 44.134 +93.8314 -31.9072 45.1309 +93.9455 -32.5869 46.0923 +93.9609 -33.2398 47.0158 +94.2181 -33.9872 48.073 +93.8695 -34.5226 48.8303 +94.1827 -35.3086 49.9421 +93.8122 -35.8455 50.7014 +93.4325 -36.3812 51.4592 +94.0328 -37.3084 52.7706 +90.4344 -36.5555 51.7057 +89.8784 -37.0097 52.3481 +87.8592 -36.8503 52.1227 +87.0577 -37.1885 52.601 +84.895 -36.9308 52.2365 +84.3335 -37.357 52.8394 +82.1107 -37.0341 52.3826 +80.9217 -37.1589 52.5591 +79.7352 -37.2745 52.7227 +78.7057 -37.4544 52.9772 +76.9875 -37.2929 52.7487 +76.1166 -37.5293 53.0831 +74.188 -37.2296 52.6592 +73.6223 -37.602 53.1859 +70.9703 -36.8898 52.1786 +70.41 -37.246 52.6823 +68.4547 -36.8512 52.1239 +67.8225 -37.1549 52.5535 +66.5389 -37.0941 52.4676 +65.619 -37.2256 52.6536 +63.3568 -36.5751 51.7334 +62.8015 -36.8928 52.1828 +61.8941 -37.0002 52.3347 +60.7129 -36.9337 52.2406 +59.5385 -36.8582 52.1338 +59.2493 -37.327 52.7969 +57.6121 -36.9376 52.2462 +56.9191 -37.14 52.5324 +55.2402 -36.6846 51.8883 +55.333 -37.4005 52.9009 +53.03 -36.4838 51.6043 +53.0489 -37.1505 52.5473 +51.3525 -36.6088 51.781 +50.7972 -36.8661 52.145 +49.6839 -36.7112 51.9259 +49.127 -36.96 52.2779 +47.9647 -36.7451 51.9739 +47.4669 -37.0317 52.3793 +46.3175 -36.8024 52.0549 +45.7013 -36.9873 52.3165 +44.6816 -36.8378 52.105 +43.5 -36.5382 51.6812 +42.4427 -36.3253 51.38 +42.8855 -37.4041 52.906 +41.3926 -36.7957 52.0455 +41.0497 -37.1976 52.6139 +39.479 -36.4728 51.5887 +39.2396 -36.9656 52.2858 +38.1643 -36.6671 51.8635 +37.6086 -36.8579 52.1334 +36.6 -36.5961 51.7631 +36.3409 -37.0805 52.4483 +35.2457 -36.7068 51.9197 +34.7372 -36.9337 52.2406 +33.755 -36.6485 51.8372 +32.8303 -36.4075 51.4964 +32.2787 -36.5715 51.7284 +31.68 -36.681 51.8832 +30.7737 -36.4241 51.5199 +30.6093 -37.0467 52.4005 +29.2452 -36.2055 51.2106 +28.7382 -36.4039 51.4913 +27.8615 -36.1255 51.0974 +27.6333 -36.688 51.893 +26.726 -36.3475 51.4115 +26.2138 -36.5341 51.6754 +25.3234 -36.183 51.1788 +25.1053 -36.7926 52.0411 +24.2615 -36.4865 51.6082 +23.709 -36.6074 51.7791 +22.8811 -36.2914 51.3322 +22.5653 -36.7863 52.0321 +21.748 -36.4618 51.5732 +21.2277 -36.6248 51.8037 +20.6423 -36.6754 51.8753 +19.8165 -36.2825 51.3195 +19.2965 -36.4361 51.5369 +18.745 -36.532 51.6724 +18.1921 -36.625 51.804 +17.4774 -36.3815 51.4595 +16.6679 -35.9105 50.7934 +16.5 -36.8315 52.096 +15.5314 -35.961 50.8648 +15.2206 -36.5992 51.7675 +14.3744 -35.9432 50.8396 +14.0253 -36.5215 51.6576 +13.4727 -36.5908 51.7556 +12.9988 -36.8835 52.1697 +12.269 -36.4376 51.5389 +11.7906 -36.7251 51.9456 +11.044 -36.1577 51.1431 +10.6621 -36.7813 52.0251 +9.82408 -35.8073 50.6474 +9.41546 -36.3693 51.4423 +8.75399 -35.958 50.8606 +8.31452 -36.4586 51.5686 +7.64121 -35.9261 50.8155 +7.19972 -36.4795 51.5982 +6.55393 -35.9976 50.9166 +6.01911 -36.0868 51.0427 +5.46467 -36.0582 51.0023 +4.98215 -36.5448 51.6905 +4.37373 -36.1078 51.0724 +3.87048 -36.5317 51.6721 +3.27623 -36.0887 51.0454 +2.76983 -36.6229 51.801 +2.18122 -36.0585 51.0027 +1.63868 -36.1258 51.0979 +1.09252 -36.1327 51.1077 +0.554135 -36.6564 51.8484 +3.83914e-15 -36.1959 51.1971 +-0.554135 -36.6564 51.8484 +-1.09252 -36.1327 51.1077 +-1.66224 -36.6452 51.8325 +-2.1882 -36.1739 51.1659 +-2.76983 -36.6229 51.801 +-3.28146 -36.1463 51.127 +-3.87658 -36.5894 51.7537 +-4.42954 -36.5685 51.724 +-5.06061 -37.1203 52.5046 +-5.61283 -37.0358 52.3851 +-6.16288 -36.9487 52.2619 +-6.73163 -36.9737 52.2972 +-7.29029 -36.9383 52.2472 +-7.86057 -36.9575 52.2743 +-8.41894 -36.9165 52.2163 +-8.94883 -36.7583 51.9926 +-9.48936 -36.6548 51.8461 +-9.91795 -36.1494 51.1313 +-10.6456 -36.7244 51.9446 +-10.8877 -35.646 50.4193 +-11.572 -36.0439 50.9821 +-12.1164 -35.9842 50.8977 +-12.8792 -36.5441 51.6896 +-13.4311 -36.4778 51.5958 +-13.982 -36.4088 51.4982 +-14.7343 -36.8432 52.1126 +-15.0572 -36.2063 51.2117 +-15.604 -36.129 51.1025 +-16.4249 -36.6638 51.8589 +-16.7197 -36.0221 50.9512 +-17.7446 -36.9378 52.2464 +-18.0542 -36.3475 51.4115 +-18.8586 -36.7534 51.9856 +-19.4427 -36.7122 51.9273 +-20.2375 -37.0533 52.4098 +-20.5805 -36.5656 51.72 +-21.3863 -36.8985 52.1908 +-21.9759 -36.8439 52.1137 +-22.4986 -36.6774 51.8781 +-23.0864 -36.617 51.7926 +-23.9192 -36.9318 52.238 +-24.5124 -36.8638 52.1418 +-25.3985 -37.2223 52.6488 +-25.6231 -36.6112 51.7845 +-26.52 -36.9608 52.2789 +-27.0777 -36.8258 52.088 +-27.9922 -37.1644 52.5669 +-28.5936 -37.0747 52.44 +-29.4847 -37.3495 52.8287 +-29.7101 -36.781 52.0246 +-30.6954 -37.1509 52.5479 +-31.212 -36.943 52.2538 +-32.1709 -37.2494 52.6871 +-32.3695 -36.6744 51.8739 +-33.7538 -37.4316 52.9449 +-33.802 -36.6994 51.9093 +-35.2143 -37.441 52.9581 +-35.7789 -37.2621 52.7052 +-36.784 -37.5327 53.0879 +-37.35 -37.346 52.8237 +-38.4207 -37.6538 53.2591 +-38.9884 -37.4588 52.9834 +-40.0234 -37.7039 53.3301 +-40.5388 -37.4519 52.9737 +-41.8019 -37.8793 53.5781 +-42.3729 -37.6672 53.2781 +-43.4374 -37.8855 53.587 +-43.5052 -37.2345 52.6661 +-44.5762 -37.4421 52.9598 +-45.6567 -37.6418 53.2421 +-46.4562 -37.5983 53.1807 +-47.2579 -37.5497 53.1119 +-48.6565 -37.9598 53.6921 +-48.6868 -37.2983 52.7564 +-50.4054 -37.9219 53.6383 +-50.7305 -37.4845 53.0197 +-51.8555 -37.6341 53.2314 +-52.6741 -37.5509 53.1136 +-53.367 -37.3732 52.8623 +-54.2513 -37.3241 52.7928 +-55.3979 -37.4444 52.963 +-56.5523 -37.556 53.1209 +-57.7142 -37.6588 53.2662 +-58.0805 -37.2379 52.671 +-59.8573 -37.71 53.3387 +-60.6297 -37.5337 53.0893 +-62.4338 -37.9806 53.7214 +-63.0055 -37.6646 53.2745 +-64.9042 -38.1281 53.9301 +-65.4781 -37.7997 53.4655 +-66.9742 -37.9944 53.741 +-67.546 -37.6556 53.2617 +-69.781 -38.2278 54.0711 +-69.9905 -37.678 53.2933 +-72.2532 -38.2209 54.0614 +-73.0511 -37.9714 53.7084 +-75.27 -38.4435 54.3761 +-75.8483 -38.0628 53.8377 +-78.8541 -38.8791 54.9922 +-79.4388 -38.4803 54.4282 +-81.7922 -38.9232 55.0547 +-81.7558 -38.219 54.0587 +-84.1304 -38.6323 54.6432 +-84.7112 -38.207 54.0416 +-87.5862 -38.7979 54.8775 +-88.1694 -38.3552 54.2513 +-91.077 -38.9054 55.0295 +-90.8526 -38.1058 53.8985 +-93.7047 -38.5853 54.5767 +-95.4312 -38.5753 54.5626 +-98.2358 -38.9759 55.1292 +-98.4068 -38.3182 54.1989 +-101.567 -38.8087 54.8927 +-102.402 -38.3899 54.3003 +-105.34 -38.741 54.797 +-106.939 -38.576 54.5635 +-110.417 -39.0614 55.2501 +-112.203 -38.9199 55.05 +-115.458 -39.2614 55.533 +-117.087 -39.0246 55.1982 +-121.676 -39.7409 56.2113 +-123.584 -39.5463 55.936 +-126.462 -39.6384 56.0662 +-129.44 -39.7315 56.198 +-131.899 -39.6377 56.0653 +-134.364 -39.5222 55.9019 +-137.999 -39.7195 56.181 +-138.235 -38.9216 55.0524 +-140.081 -38.5717 54.5574 +-138.937 -37.401 52.9016 +-139.497 -36.6996 51.9095 +-138.493 -35.5963 50.349 +-139.943 -35.1274 49.6858 +-140.009 -34.3083 48.5272 +-140.245 -33.5354 47.4339 +-140.097 -32.6763 46.2187 +-138.632 -31.5249 44.5902 +-138.917 -30.784 43.5422 +-141.531 -30.5479 43.2083 +-151.948 -31.9267 45.1585 +-183.909 -37.5963 53.1778 +-14.6555 -2.91317 4.12052 +-15.4577 -2.98577 4.22321 +-16.2631 -3.0505 4.31476 +-15.3548 -2.79486 3.95317 +-15.3965 -2.7174 3.8436 +-15.3411 -2.62334 3.71057 +-15.1879 -2.51413 3.55609 +-15.5145 -2.4838 3.5132 +-14.7787 -2.28602 3.23344 +-15.4904 -2.31266 3.27113 +-14.8455 -2.13678 3.02235 +-14.8773 -2.0619 2.91645 +-13.7386 -1.83105 2.58991 +-13.0824 -1.6743 2.36821 +-13.6941 -1.68035 2.37675 +-13.523 -1.58828 2.24653 +-13.1538 -1.47603 2.08776 +-13.1756 -1.40971 1.99396 +-13.1964 -1.34328 1.9 +-13.5121 -1.30533 1.84632 +-14.0252 -1.28237 1.81384 +-13.6484 -1.17753 1.66556 +-13.3686 -1.08463 1.53415 +-13.1862 -1.00217 1.41751 +-13.3001 -0.94274 1.33345 +-13.8106 -0.908374 1.28484 +-13.1277 -0.79653 1.12665 +-13.1392 -0.730361 1.03305 +-12.9505 -0.654078 0.925157 +-13.1593 -0.597874 0.845659 +-12.4696 -0.503369 0.711988 +-11.8778 -0.419387 0.593199 +-13.6812 -0.413917 0.585462 +-13.687 -0.344979 0.487953 +-12.8921 -0.259897 0.36761 +-12.1958 -0.184362 0.26077 +-11.1983 -0.112841 0.159607 +-12.0995 -0.0609564 0.0862194 +55.3 0 0 +58.7978 -0.292433 0.421634 +54.9916 -0.547047 0.788741 +47.4837 -0.708633 1.02172 +43.1737 -0.859232 1.23885 +40.5614 -1.00928 1.4552 +37.9479 -1.13342 1.63419 +35.6334 -1.24208 1.79085 +26.7347 -1.06543 1.53616 +26.518 -1.18941 1.71491 +29.6866 -1.48019 2.13417 +36.0333 -1.97737 2.85101 +37.4935 -2.24586 3.23812 +38.2525 -2.48385 3.58126 +43.3743 -3.03517 4.37615 +46.7962 -3.51113 5.0624 +67.9324 -5.44109 7.84506 +93.6598 -7.97738 11.5019 +95.4107 -8.61226 12.4173 +95.4724 -9.10524 13.1281 +94.4431 -9.49067 13.6838 +95.1791 -10.0535 14.4952 +94.2362 -10.4395 15.0518 +94.9547 -11.01 15.8744 +94.7825 -11.4818 16.5546 +95.4817 -12.0638 17.3937 +95.196 -12.5253 18.0592 +95.0978 -13.0116 18.7604 +95.6712 -13.5944 19.6006 +95.5562 -14.0839 20.3064 +95.3369 -14.5586 20.9908 +95.9776 -15.1693 21.8713 +95.6455 -15.6303 22.536 +95.2108 -16.073 23.1743 +96.013 -16.7292 24.1205 +95.7532 -17.2061 24.8081 +95.2959 -17.6464 25.4429 +95.8755 -18.2825 26.3599 +95.5919 -18.7586 27.0464 +96.0552 -19.3855 27.9503 +95.7547 -19.8625 28.638 +96.1962 -20.4976 29.5537 +95.9721 -20.9956 30.2718 +96.5773 -21.681 31.26 +96.149 -22.1392 31.9206 +95.9911 -22.6601 32.6717 +96.4689 -23.337 33.6477 +96.0162 -23.7932 34.3054 +95.8309 -24.3162 35.0595 +95.6369 -24.8392 35.8135 +96.7937 -25.7233 37.0882 +96.4864 -26.2282 37.8163 +95.9912 -26.6821 38.4707 +96.2054 -27.3365 39.4142 +95.6941 -27.788 40.0653 +96.0633 -28.4998 41.0914 +96.4179 -29.2172 42.1259 +95.7911 -29.6412 42.7372 +96.0332 -30.3375 43.7412 +94.6947 -30.5334 44.0235 +93.8772 -30.8892 44.5365 +94.0037 -31.5573 45.4999 +94.0313 -32.1998 46.4262 +93.4494 -32.6364 47.0557 +92.8613 -33.0698 47.6805 +93.7008 -34.0202 49.051 +93.0924 -34.4539 49.6762 +93.8955 -35.4189 51.0675 +93.2667 -35.8526 51.6929 +93.3735 -36.5733 52.732 +93.4652 -37.2979 53.7767 +93.7861 -38.1253 54.9697 +93.4415 -38.6908 55.785 +93.3278 -39.3574 56.7462 +93.2008 -40.0259 57.7099 +93.1397 -40.7307 58.7262 +90.7 -40.3854 58.2283 +89.3739 -40.5156 58.4161 +87.8175 -40.5282 58.4342 +86.7306 -40.7459 58.7481 +85.4906 -40.8826 58.9452 +83.8728 -40.825 58.8622 +81.735 -40.4928 58.3832 +80.9621 -40.8222 58.8582 +79.6651 -40.8802 58.9417 +78.3726 -40.9283 59.011 +77.0847 -40.9667 59.0664 +75.2213 -40.6816 58.6554 +74.3797 -40.9354 59.0213 +72.6089 -40.6646 58.6309 +71.3471 -40.6615 58.6264 +70.3012 -40.7708 58.7841 +68.9101 -40.668 58.6358 +67.6653 -40.6371 58.5912 +66.7676 -40.8053 58.8338 +65.4647 -40.7157 58.7045 +64.8388 -41.0397 59.1717 +63.8766 -41.1472 59.3266 +62.3256 -40.8611 58.9142 +61.7625 -41.2129 59.4214 +60.0364 -40.7763 58.792 +59.4733 -41.1173 59.2836 +57.8975 -40.7471 58.7499 +57.5204 -41.212 59.4201 +55.8405 -40.733 58.7295 +55.2147 -41.0091 59.1276 +54.5244 -41.2367 59.4557 +53.2961 -41.0482 59.1839 +52.0778 -40.8506 58.899 +50.9276 -40.6904 58.6681 +50.0732 -40.7555 58.7619 +49.4473 -41.0029 59.1187 +47.9228 -40.4913 58.381 +47.4666 -40.8707 58.928 +46.1854 -40.5317 58.4392 +45.563 -40.7598 58.7681 +44.4602 -40.5498 58.4654 +43.4719 -40.4293 58.2916 +42.5421 -40.3508 58.1785 +41.7704 -40.4136 58.2689 +41.4 -40.8665 58.922 +40.4772 -40.7732 58.7875 +39.6574 -40.7736 58.7881 +38.793 -40.7189 58.7091 +38.215 -40.9606 59.0576 +37.2169 -40.7447 58.7464 +36.183 -40.4712 58.352 +35.6066 -40.7006 58.6828 +34.5436 -40.3639 58.1974 +33.8812 -40.4828 58.3687 +33.2601 -40.6497 58.6094 +32.3046 -40.3987 58.2475 +31.7255 -40.6098 58.5519 +30.6638 -40.1912 57.9483 +30.0082 -40.2897 58.0904 +29.5814 -40.7007 58.6829 +28.7698 -40.582 58.5118 +28.1473 -40.7236 58.716 +27.1643 -40.33 58.1484 +26.5457 -40.4635 58.341 +25.8909 -40.5404 58.4519 +25.3359 -40.7751 58.7902 +24.3525 -40.3068 58.115 +23.7661 -40.4804 58.3653 +22.8364 -40.0551 57.7521 +22.2522 -40.2215 57.992 +21.6063 -40.2761 58.0707 +21.2443 -40.8738 58.9326 +20.3696 -40.4849 58.3717 +19.7489 -40.5847 58.5156 +18.9197 -40.2409 58.02 +18.3529 -40.4438 58.3126 +17.4668 -39.9253 57.565 +17.1115 -40.6202 58.5669 +16.4664 -40.6483 58.6073 +15.6053 -40.1165 57.8407 +14.9904 -40.1926 57.9504 +14.4143 -40.3774 58.2168 +13.7573 -40.3356 58.1565 +13.0663 -40.1784 57.9298 +12.5374 -40.5224 58.4259 +11.8669 -40.4146 58.2704 +11.1694 -40.1906 57.9475 +10.4649 -39.9065 57.5378 +9.83954 -39.9006 57.5293 +9.33262 -40.4 58.2494 +8.61616 -39.9923 57.6616 +8.02611 -40.1469 57.8845 +7.3379 -39.7885 57.3678 +6.77629 -40.1072 57.8272 +6.09219 -39.6852 57.2187 +5.53137 -40.0549 57.7518 +4.91783 -40.0809 57.7892 +4.31003 -40.1606 57.9043 +3.69492 -40.1805 57.9329 +3.06644 -40.0266 57.711 +2.46041 -40.1543 57.8951 +1.84024 -40.051 57.7462 +1.21643 -39.7167 57.2642 +0.613475 -40.0632 57.7638 +4.26163e-15 -39.6658 57.1908 +-0.613475 -40.0632 57.7638 +-1.23039 -40.1726 57.9215 +-1.86118 -40.5067 58.4033 +-2.4639 -40.2112 57.9772 +-3.1057 -40.539 58.4498 +-3.68445 -40.0667 57.7689 +-4.34055 -40.4451 58.3144 +-4.91783 -40.0809 57.7892 +-5.5706 -40.3389 58.1613 +-6.19677 -40.3664 58.201 +-6.88173 -40.7312 58.7269 +-7.3379 -39.7885 57.3678 +-8.15063 -40.7698 58.7826 +-8.66491 -40.2186 57.9878 +-9.41094 -40.739 58.7382 +-9.89521 -40.1263 57.8548 +-10.6275 -40.5265 58.4317 +-11.1225 -40.0218 57.704 +-11.8504 -40.3584 58.1894 +-12.4853 -40.3541 58.1832 +-13.2485 -40.7387 58.7377 +-13.681 -40.1119 57.8339 +-14.2149 -39.8189 57.4115 +-15.032 -40.3041 58.1112 +-15.7352 -40.4504 58.322 +-16.264 -40.1485 57.8868 +-16.9715 -40.2877 58.0875 +-17.7087 -40.4783 58.3622 +-18.3278 -40.3887 58.233 +-18.9456 -40.296 58.0994 +-19.8024 -40.6945 58.674 +-20.3145 -40.3753 58.2138 +-21.1591 -40.7099 58.6962 +-21.8109 -40.6576 58.6208 +-22.7334 -41.0911 59.2459 +-23.2072 -40.7055 58.6898 +-24.02 -40.9128 58.9888 +-24.613 -40.7379 58.7366 +-25.5362 -41.0975 59.255 +-26.1987 -41.0225 59.1469 +-27.2111 -41.4778 59.8033 +-27.8452 -41.3409 59.6059 +-28.5138 -41.2538 59.4805 +-29.1444 -41.1105 59.2737 +-30.1172 -41.4378 59.7457 +-30.6724 -41.1815 59.3762 +-31.3417 -41.0797 59.2294 +-32.3762 -41.4429 59.753 +-33.0511 -41.3321 59.5934 +-33.6827 -41.1662 59.3541 +-34.7422 -41.5115 59.852 +-35.4642 -41.4396 59.7483 +-36.0974 -41.2616 59.4917 +-37.0002 -41.3852 59.6699 +-37.771 -41.3513 59.621 +-38.215 -40.9606 59.0576 +-39.3179 -41.2698 59.5035 +-39.8029 -40.9232 59.0037 +-41.659 -41.9637 60.504 +-41.85 -41.3107 59.5625 +-42.9377 -41.543 59.8973 +-43.4692 -41.2301 59.4463 +-44.3079 -41.2068 59.4126 +-45.4141 -41.4198 59.7197 +-46.3152 -41.4327 59.7383 +-46.9479 -41.2008 59.404 +-47.9081 -41.2509 59.4762 +-48.7057 -41.1528 59.3348 +-49.8437 -41.3317 59.5927 +-50.9909 -41.5024 59.8388 +-52.1471 -41.6648 60.073 +-52.4304 -41.1272 59.2979 +-54.2478 -41.7811 60.2407 +-54.8855 -41.5098 59.8495 +-56.0669 -41.6421 60.0403 +-57.195 -41.721 60.154 +-58.2051 -41.7026 60.1275 +-59.4078 -41.8101 60.2825 +-60.3002 -41.689 60.1078 +-61.5148 -41.7804 60.2397 +-62.7367 -41.8629 60.3586 +-63.3097 -41.5063 59.8445 +-64.738 -41.7021 60.1267 +-65.5748 -41.5056 59.8434 +-67.1537 -41.7661 60.2191 +-68.1998 -41.6806 60.0958 +-69.455 -41.7119 60.141 +-70.9246 -41.8569 60.3499 +-72.4039 -41.9903 60.5424 +-73.4684 -41.8704 60.3695 +-74.6773 -41.823 60.3011 +-75.9623 -41.8063 60.277 +-78.2679 -42.3293 61.031 +-78.9131 -41.9384 60.4674 +-80.8793 -42.2373 60.8985 +-82.5634 -42.3674 61.086 +-85.0065 -42.8615 61.7984 +-85.886 -42.5492 61.3482 +-88.2071 -42.9348 61.9041 +-89.9336 -43.0073 62.0087 +-92.6721 -43.5372 62.7726 +-94.3455 -43.5409 62.778 +-96.9652 -43.957 63.3779 +-97.8709 -43.5783 62.832 +-99.0105 -43.2981 62.4278 +-99.9892 -42.9412 61.9133 +-101.608 -42.8491 61.7805 +-103.311 -42.7776 61.6775 +-105.428 -42.8579 61.7932 +-107.555 -42.9203 61.8832 +-110.927 -43.449 62.6455 +-112.998 -43.4375 62.6288 +-114.909 -43.3456 62.4965 +-116.659 -43.176 62.2519 +-121.786 -44.2171 63.753 +-125.087 -44.546 64.2271 +-129.004 -45.0537 64.9592 +-131.061 -44.8801 64.7088 +-132.519 -44.4869 64.1419 +-135.013 -44.4245 64.052 +-137.69 -44.3968 64.0121 +-138.19 -43.6551 62.9426 +-138.589 -42.8846 61.8317 +-140.654 -42.6218 61.4528 +-139.704 -41.447 59.7589 +-139.443 -40.4919 58.3818 +-138.804 -39.4408 56.8665 +-140.212 -38.9739 56.1931 +-140.894 -38.2996 55.221 +-141.112 -37.5011 54.0697 +-140.589 -36.5142 52.6468 +-139.772 -35.4659 51.1354 +-139.852 -34.6558 49.9673 +-139.364 -33.714 48.6095 +-143.201 -33.8048 48.7403 +-159.754 -36.7847 53.0368 +-193.713 -43.4874 62.7008 +-224.9 -49.2008 70.9386 +-231.545 -49.3379 71.1362 +-236.709 -49.1006 70.7941 +-243.579 -49.158 70.8769 +-10.8735 -2.13376 3.07649 +-14.2249 -2.71253 3.91097 +-18.6407 -3.4518 4.97686 +-14.9734 -2.69059 3.87934 +-14.9184 -2.59936 3.7478 +-15.6288 -2.63837 3.80405 +-15.6686 -2.56055 3.69184 +-16.189 -2.55867 3.68913 +-15.648 -2.38956 3.44531 +-15.4904 -2.28311 3.29182 +-16.301 -2.31628 3.33965 +-16.1413 -2.20851 3.18427 +-16.3694 -2.1538 3.10538 +-16.1089 -2.03529 2.93452 +-15.3569 -1.86031 2.68222 +-15.3848 -1.78387 2.57201 +-14.3318 -1.58766 2.28912 +-12.684 -1.33977 1.9317 +-3226.53 -324.236 467.489 +-3231.37 -308.176 444.334 +-3235.96 -292.094 421.146 +-3240.31 -275.99 397.926 +-3244.42 -259.864 374.676 +-14.5742 -1.09351 1.57664 +-3251.88 -227.555 328.092 +-14.6055 -0.948383 1.36739 +-13.5255 -0.810179 1.16813 +-11.4471 -0.628173 0.90571 +-13.0502 -0.65069 0.938175 +-14.555 -0.652833 0.941265 +-13.6666 -0.544643 0.785275 +-14.5728 -0.507967 0.732395 +-14.1805 -0.423541 0.610669 +-13.7869 -0.343057 0.494625 +-14.2913 -0.284421 0.410083 +-13.6953 -0.204384 0.294684 +-13.098 -0.130297 0.187864 +-13.2995 -0.0661455 0.0953697 +56.3 0 0 +60.4977 -0.29696 0.436521 +56.6914 -0.556596 0.818176 +49.7829 -0.733246 1.07785 +42.2742 -0.830351 1.22059 +41.6603 -1.0231 1.50392 +39.1463 -1.15395 1.69627 +37.2304 -1.28081 1.88275 +26.0364 -1.02406 1.50533 +27.7143 -1.22684 1.80342 +30.0851 -1.48049 2.17626 +36.7301 -1.9893 2.92421 +39.6814 -2.3459 3.44839 +39.7429 -2.54695 3.74393 +43.4735 -3.00241 4.41344 +48.7791 -3.61214 5.30972 +70.4081 -5.56579 8.18151 +93.6598 -7.87327 11.5734 +95.6082 -8.51747 12.5204 +95.4724 -8.98641 13.2097 +95.3294 -9.45467 13.898 +95.2774 -9.93249 14.6004 +95.1197 -10.3998 15.2873 +94.9547 -10.8663 15.9731 +95.565 -11.4255 16.7951 +95.5794 -11.9185 17.5197 +95.2934 -12.3745 18.1901 +95.9729 -12.96 19.0507 +95.6712 -13.417 19.7224 +95.4594 -13.8861 20.412 +95.3369 -14.3686 21.1213 +95.9776 -14.9713 22.0073 +95.6455 -15.4263 22.6762 +95.4026 -15.8952 23.3654 +95.8217 -16.478 24.2221 +95.5624 -16.9477 24.9125 +95.4861 -17.4509 25.6522 +95.8755 -18.0439 26.5238 +95.5919 -18.5137 27.2146 +96.0552 -19.1325 28.124 +96.6004 -19.7764 29.0706 +96.2899 -20.2498 29.7664 +95.9721 -20.7216 30.4601 +96.5773 -21.3981 31.4544 +96.2417 -21.8713 32.1501 +95.9911 -22.3644 32.8748 +95.6405 -22.8347 33.5662 +96.0162 -23.4827 34.5187 +96.0136 -24.0446 35.3447 +95.7279 -24.5383 36.0704 +96.0686 -25.1974 37.0393 +95.7643 -25.6922 37.7666 +95.9912 -26.3339 38.7099 +95.579 -26.804 39.401 +95.7832 -27.4509 40.3519 +96.0633 -28.1278 41.3469 +96.3296 -28.8095 42.3489 +95.8789 -29.2812 43.0424 +95.3335 -29.7234 43.6924 +95.7391 -30.4673 44.7858 +94.8298 -30.7954 45.2682 +93.5729 -31.0028 45.573 +94.0313 -31.7796 46.7148 +93.6199 -32.2692 47.4347 +93.5397 -32.8766 48.3275 +93.7008 -33.5763 49.3559 +93.8472 -34.28 50.3904 +93.8955 -34.9566 51.385 +93.3496 -35.4162 52.0605 +93.4559 -36.1279 53.1068 +93.5472 -36.8433 54.1584 +93.7861 -37.6278 55.3115 +93.4415 -38.1858 56.1318 +93.7297 -39.0111 57.3449 +93.6001 -39.6727 58.3175 +93.457 -40.3361 59.2927 +91.5668 -40.2393 59.1503 +89.9999 -40.267 59.1911 +88.4392 -40.2825 59.2138 +86.9621 -40.3214 59.2711 +85.1841 -40.2045 59.0991 +84.5571 -40.621 59.7115 +82.5652 -40.3703 59.343 +81.9358 -40.774 59.9364 +79.3679 -40.1961 59.0868 +78.5938 -40.5081 59.5455 +77.3041 -40.5471 59.6028 +76.0192 -40.5766 59.6461 +74.3797 -40.4011 59.3883 +73.8927 -40.8435 60.0386 +72.1956 -40.6081 59.6924 +70.6517 -40.4393 59.4444 +69.1185 -40.2586 59.1787 +68.629 -40.6779 59.7951 +67.245 -40.5608 59.6229 +66.0727 -40.5575 59.6181 +64.8388 -40.5041 59.5396 +64.4729 -40.9893 60.2529 +62.6536 -40.5401 59.5926 +62.2821 -41.0172 60.2938 +61.0648 -40.9335 60.1708 +59.9822 -40.9279 60.1626 +58.7785 -40.8273 60.0147 +57.5826 -40.7182 59.8543 +55.9636 -40.2901 59.225 +55.2147 -40.4739 59.4953 +53.9828 -40.2942 59.2311 +52.8797 -40.196 59.0866 +52.1953 -40.4085 59.399 +51.1019 -40.2968 59.2349 +50.36 -40.4539 59.4658 +49.6738 -40.6532 59.7588 +48.5379 -40.4758 59.4981 +47.9081 -40.7125 59.846 +46.3488 -40.1442 59.0106 +45.2406 -39.9432 58.7152 +44.5662 -40.116 58.9691 +43.9944 -40.3812 59.359 +43.0057 -40.2582 59.1781 +42.2779 -40.3708 59.3436 +41.15 -40.0897 58.9304 +40.5757 -40.3391 59.297 +39.4635 -40.0447 58.8643 +38.9362 -40.3358 59.2922 +37.8864 -40.0784 58.9138 +37.3093 -40.3127 59.2583 +36.2284 -39.9931 58.7885 +35.2942 -39.8171 58.5297 +34.982 -40.3427 59.3024 +34.0534 -40.1575 59.0301 +33.3023 -40.1702 59.0488 +32.429 -40.025 58.8354 +31.7661 -40.1313 58.9916 +30.8632 -39.9246 58.6877 +30.2035 -40.0228 58.8321 +29.237 -39.7018 58.3603 +28.545 -39.7395 58.4157 +28.3305 -40.4538 59.4657 +27.2718 -39.9612 58.7415 +26.6508 -40.0935 58.9361 +25.9935 -40.1699 59.0484 +25.1357 -39.9248 58.6881 +24.4176 -39.8872 58.6327 +23.7661 -39.9521 58.7282 +23.2072 -40.1742 59.0547 +22.583 -40.2866 59.2199 +21.8986 -40.2884 59.2225 +21.0455 -39.9629 58.744 +20.2042 -39.6321 58.2578 +19.5886 -39.7298 58.4014 +18.9714 -39.8244 58.5405 +18.1526 -39.4804 58.0348 +17.6603 -39.8409 58.5647 +17.1115 -40.0901 58.931 +16.4664 -40.1178 58.9717 +15.8434 -40.1971 59.0883 +15.032 -39.7782 58.4725 +14.7134 -40.6772 59.794 +13.6238 -39.4227 57.95 +13.3214 -40.4283 59.4281 +12.5374 -39.9936 58.7892 +11.8834 -39.9427 58.7143 +11.1538 -39.6106 58.2262 +10.6275 -39.9976 58.795 +9.95088 -39.8255 58.542 +9.39789 -40.1516 59.0214 +8.68928 -39.8054 58.5125 +8.13931 -40.1818 59.0659 +7.45288 -39.8846 58.629 +6.89131 -40.2556 59.1744 +6.12705 -39.3914 57.904 +5.64121 -40.3172 59.2648 +4.95969 -39.8944 58.6434 +4.38329 -40.3103 59.2546 +3.76296 -40.3864 59.3666 +3.09261 -39.8414 58.5654 +2.47786 -39.9112 58.6681 +1.85856 -39.9219 58.6838 +1.22516 -39.4796 58.0336 +0.619584 -39.9341 58.7017 +4.35348e-15 -39.9918 58.7866 +-0.620457 -39.9903 58.7844 +-1.23912 -39.9295 58.695 +-1.88212 -40.428 59.4277 +-2.47786 -39.9112 58.6681 +-3.13623 -40.4033 59.3915 +-3.72109 -39.9371 58.7061 +-4.38329 -40.3103 59.2546 +-5.01549 -40.3433 59.3033 +-5.59413 -39.9807 58.7702 +-6.25778 -40.2319 59.1395 +-6.92965 -40.4796 59.5035 +-7.55741 -40.444 59.4513 +-8.18459 -40.4054 59.3945 +-8.75022 -40.0845 58.9228 +-9.37178 -40.04 58.8574 +-10.0205 -40.1039 58.9514 +-10.6275 -39.9976 58.795 +-11.232 -39.8883 58.6345 +-11.999 -40.331 59.2852 +-12.4506 -39.7166 58.382 +-13.2667 -40.2624 59.1843 +-13.8718 -40.1405 59.0051 +-14.4143 -39.8504 58.5787 +-15.032 -39.7782 58.4725 +-15.6919 -39.8127 58.5232 +-16.4664 -40.1178 58.9717 +-17.0882 -40.0354 58.8507 +-17.6119 -39.7317 58.4042 +-18.5532 -40.3517 59.3155 +-19.0491 -39.9874 58.7801 +-19.8024 -40.1634 59.0388 +-20.5625 -40.335 59.291 +-21.3296 -40.5022 59.5368 +-21.7817 -40.0732 58.9062 +-22.7033 -40.5012 59.5354 +-23.3308 -40.3883 59.3693 +-24.2421 -40.7522 59.9044 +-24.8734 -40.6317 59.7272 +-25.5696 -40.6141 59.7013 +-26.1645 -40.4342 59.4369 +-27.1761 -40.8838 60.0978 +-27.8094 -40.7488 59.8993 +-28.7703 -41.0818 60.3888 +-29.4441 -40.9912 60.2556 +-30.2703 -41.1049 60.4228 +-30.7505 -40.7476 59.8976 +-31.7006 -41.0078 60.2801 +-32.3762 -40.902 60.1245 +-33.3828 -41.2022 60.5658 +-34.0208 -41.0368 60.3226 +-35.0436 -41.3251 60.7465 +-35.6396 -41.101 60.4171 +-36.7667 -41.4782 60.9715 +-37.3634 -41.246 60.6302 +-38.0481 -41.111 60.4317 +-38.8722 -41.1213 60.4469 +-39.6042 -41.0278 60.3094 +-40.2392 -40.8318 60.0214 +-41.4621 -41.2202 60.5923 +-41.95 -40.869 60.076 +-43.0393 -41.0978 60.4123 +-43.6752 -40.8849 60.0994 +-44.9349 -41.2445 60.628 +-45.2021 -40.6885 59.8106 +-46.5301 -41.0817 60.3887 +-47.1657 -40.8518 60.0507 +-48.0737 -40.8533 60.0529 +-49.0412 -40.8955 60.115 +-50.3535 -41.2095 60.5765 +-50.9909 -40.9608 60.2109 +-51.9729 -40.9836 60.2445 +-53.077 -41.091 60.4024 +-54.2478 -41.2359 60.6153 +-55.0661 -41.1028 60.4196 +-56.3713 -41.3218 60.7416 +-57.195 -41.1765 60.528 +-58.7654 -41.5545 61.0836 +-59.0932 -41.0459 60.336 +-60.9999 -41.6223 61.1834 +-61.9647 -41.5368 61.0576 +-63.1913 -41.616 61.174 +-63.6377 -41.1769 60.5285 +-64.9368 -41.2842 60.6864 +-66.1101 -41.2983 60.707 +-67.9644 -41.7187 61.325 +-68.1998 -41.1367 60.4695 +-70.6252 -41.8612 61.5344 +-71.2719 -41.5129 61.0225 +-73.0347 -41.8034 61.4495 +-74.0341 -41.6422 61.2125 +-76.1751 -42.1051 61.893 +-76.6097 -41.6124 61.1687 +-78.2679 -41.7768 61.4105 +-80.0101 -41.9665 61.6892 +-81.248 -41.8761 61.5564 +-82.7863 -41.9274 61.6317 +-84.7818 -42.1903 62.0183 +-86.3388 -42.2154 62.0552 +-88.5873 -42.5571 62.5574 +-90.1634 -42.5545 62.5536 +-94.061 -43.613 64.1095 +-95.5112 -43.5036 63.9488 +-97.5912 -43.6634 64.1837 +-98.1073 -43.1135 63.3753 +-99.9625 -43.1439 63.42 +-100.468 -42.5839 62.5968 +-102.331 -42.591 62.6072 +-104.282 -42.6161 62.6441 +-107.138 -42.9845 63.1857 +-108.538 -42.7473 62.8371 +-111.669 -43.1687 63.4564 +-113.744 -43.1537 63.4344 +-115.91 -43.1525 63.4326 +-118.672 -43.3478 63.7197 +-122.882 -44.033 64.7269 +-125.85 -44.2329 65.0208 +-130.369 -44.936 66.0543 +-131.318 -44.3813 65.2389 +-133.811 -44.3345 65.1702 +-135.013 -43.8448 64.4503 +-137.951 -43.9005 64.5322 +-137.84 -42.9763 63.1737 +-138.941 -42.4323 62.374 +-140.654 -42.0656 61.8349 +-139.704 -40.9061 60.1305 +-139.353 -39.9379 58.7073 +-139.341 -39.0767 57.4414 +-140.302 -38.4899 56.5787 +-140.984 -37.824 55.5999 +-140.296 -36.7977 54.0914 +-140.68 -36.061 53.0085 +-139.133 -34.843 51.2179 +-139.21 -34.0466 50.0472 +-140.009 -33.4279 49.1378 +-148.745 -34.6551 50.9418 +-161.701 -36.7472 54.017 +-216.508 -47.9704 70.5148 +-226.393 -48.8813 71.8537 +-233.231 -49.0486 72.0996 +-237.084 -48.5368 71.3473 +-244.144 -48.6292 71.4832 +-10.4953 -2.03267 2.98795 +-13.8455 -2.60574 3.83035 +-267.818 -48.946 71.9488 +-14.0196 -2.48634 3.65484 +-16.7353 -2.87789 4.2304 +-15.2452 -2.54004 3.73377 +-16.1492 -2.60465 3.82874 +-15.3217 -2.39 3.51321 +-16.5173 -2.4894 3.65933 +-15.8776 -2.30964 3.3951 +-16.495 -2.31327 3.40042 +-15.2662 -2.06151 3.03035 +-16.6617 -2.16364 3.18048 +-16.1089 -2.00873 2.95277 +-15.3569 -1.83603 2.6989 +-15.1888 -1.73815 2.55503 +-14.0373 -1.53475 2.25602 +-15.3388 -1.59904 2.35053 +-3226.53 -320.004 470.395 +-3231.37 -304.155 447.096 +-3235.96 -288.282 423.764 +-3240.31 -272.388 400.4 +-3244.42 -256.473 377.006 +-3248.27 -240.538 353.582 +-3251.88 -224.585 330.132 +-12.7177 -0.815024 1.19806 +-14.3211 -0.84664 1.24453 +-12.9402 -0.700836 1.0302 +-13.9467 -0.686318 1.00886 +-13.3587 -0.591356 0.869273 +-14.3649 -0.564999 0.830528 +-14.1735 -0.487602 0.716757 +-13.881 -0.409182 0.601484 +-13.7869 -0.33858 0.4977 +-13.9915 -0.27482 0.403976 +-14.1951 -0.209079 0.307338 +-13.398 -0.131541 0.193361 +-14.1995 -0.0697 0.102457 +59.2 0 0 +69.0974 -0.334661 0.501613 +59.5909 -0.577278 0.865265 +52.1821 -0.75836 1.13668 +43.5734 -0.844483 1.26577 +42.0599 -1.01917 1.52761 +40.5444 -1.17926 1.76756 +38.528 -1.30782 1.96025 +26.1362 -1.01431 1.52032 +27.4152 -1.19746 1.79484 +30.882 -1.49949 2.24754 +37.5264 -2.00539 3.00582 +39.2836 -2.29148 3.43463 +42.5249 -2.68898 4.03043 +43.7713 -2.98276 4.47077 +51.456 -3.75967 5.63526 +68.9227 -5.37588 8.05774 +94.451 -7.83412 11.7423 +95.4107 -8.38678 12.5707 +95.2752 -8.84853 13.2628 +95.3294 -9.32888 13.9828 +94.9824 -9.77004 14.644 +95.0215 -10.2508 15.3647 +94.6607 -10.6885 16.0207 +95.6628 -11.285 16.9148 +95.3841 -11.7359 17.5906 +95.3908 -12.2224 18.3197 +95.0005 -12.658 18.9727 +95.7682 -13.2519 19.8628 +95.2657 -13.6735 20.4948 +95.3369 -14.1774 21.2501 +95.6885 -14.7276 22.0748 +95.7417 -15.2364 22.8374 +95.2108 -15.6522 23.4606 +96.013 -16.2912 24.4184 +95.5624 -16.7222 25.0644 +95.4861 -17.2187 25.8086 +95.7807 -17.7862 26.6592 +95.5919 -18.2674 27.3805 +96.0552 -18.8779 28.2955 +95.7547 -19.3424 28.9918 +96.1026 -19.9415 29.8897 +95.8787 -20.4261 30.616 +96.4843 -21.093 31.6157 +96.2417 -21.5803 32.3461 +95.8063 -22.0244 33.0117 +96.4689 -22.726 34.0634 +96.1079 -23.1924 34.7624 +96.0136 -23.7247 35.5602 +96.1829 -24.3269 36.4629 +95.3436 -24.6745 36.9839 +95.674 -25.3265 37.9611 +95.9912 -25.9835 38.9459 +96.116 -26.596 39.8639 +95.9614 -27.1361 40.6735 +95.9746 -27.7279 41.5606 +95.6232 -28.2178 42.2948 +95.7911 -28.8652 43.2651 +96.1207 -29.5702 44.3219 +95.9132 -30.1166 45.1408 +94.7432 -30.3579 45.5026 +93.6591 -30.6184 45.8931 +93.4312 -31.1567 46.6998 +93.2788 -31.7239 47.55 +93.7093 -32.498 48.7103 +93.7008 -33.1295 49.6569 +93.9311 -33.8541 50.743 +93.9789 -34.5222 51.7443 +94.0958 -35.2243 52.7967 +93.4559 -35.6473 53.4306 +93.5472 -36.3532 54.4886 +93.6233 -37.0627 55.5521 +94.2505 -38.004 56.9631 +93.3278 -38.327 57.4471 +93.9994 -39.3119 58.9234 +93.6157 -39.867 59.7555 +91.4092 -39.6355 59.4085 +90.7043 -40.0422 60.018 +89.1386 -40.0608 60.046 +87.8109 -40.1733 60.2146 +86.7162 -40.383 60.5289 +84.5571 -40.0806 60.0756 +83.2445 -40.1609 60.1959 +81.9358 -40.2315 60.3018 +80.2596 -40.1069 60.1151 +79.626 -40.4941 60.6954 +77.9623 -40.3483 60.4769 +76.8897 -40.4951 60.697 +74.8833 -40.1335 60.1548 +74.0354 -40.3779 60.5213 +72.4784 -40.2248 60.2917 +71.5628 -40.416 60.5783 +70.0216 -40.242 60.3176 +68.9043 -40.2978 60.4012 +67.3814 -40.1023 60.1081 +66.5456 -40.3043 60.411 +65.441 -40.3364 60.4591 +64.6055 -40.5271 60.7449 +63.5721 -40.5872 60.8349 +62.9315 -40.8935 61.294 +61.3862 -40.6015 60.8563 +60.491 -40.726 61.0429 +59.5337 -40.8017 61.1565 +58.1429 -40.5673 60.8051 +56.9487 -40.4537 60.6349 +56.0061 -40.5079 60.716 +54.5846 -40.2013 60.2566 +54.4263 -40.8211 61.1855 +52.6656 -40.23 60.2996 +51.7406 -40.2577 60.341 +50.8189 -40.2794 60.3736 +49.7305 -40.1581 60.1918 +49.0412 -40.3514 60.4815 +48.4601 -40.6337 60.9046 +47.0568 -40.2152 60.2773 +46.0466 -40.1139 60.1255 +45.0961 -40.053 60.0342 +44.0989 -39.9386 59.8628 +43.4692 -40.1507 60.1806 +42.3795 -39.9293 59.8488 +41.6 -39.9888 59.9381 +40.428 -39.6574 59.4414 +39.9483 -39.9974 59.9509 +39.3179 -40.1893 60.2385 +38.2619 -39.9372 59.8606 +37.771 -40.2687 60.3575 +36.5916 -39.8566 59.7399 +35.9189 -39.9827 59.9288 +35.3327 -40.205 60.2621 +34.6131 -40.2744 60.3661 +33.8095 -40.2393 60.3135 +32.8022 -39.947 59.8753 +32.0102 -39.9015 59.8072 +31.7803 -40.564 60.8002 +30.7505 -40.2055 60.2628 +30.0789 -40.3016 60.4069 +29.1819 -40.0856 60.0831 +28.5138 -40.1738 60.2152 +27.451 -39.6886 59.488 +26.8259 -39.82 59.685 +25.9251 -39.5312 59.2521 +25.5696 -40.0737 60.0653 +24.6781 -39.7763 59.6195 +24.02 -39.8416 59.7175 +23.4235 -40.0093 59.9687 +22.7634 -40.0683 60.0571 +21.8694 -39.6993 59.5041 +21.5 -40.2826 60.3784 +20.6177 -39.9051 59.8125 +19.9894 -40.0034 59.9599 +19.1267 -39.6162 59.3796 +18.7535 -40.2447 60.3215 +17.7329 -39.4724 59.1639 +17.275 -39.9345 59.8566 +16.6689 -40.0707 60.0608 +16.2113 -40.5834 60.8292 +15.136 -39.5203 59.2358 +14.5937 -39.8097 59.6695 +14.0817 -40.2057 60.2632 +13.285 -39.7813 59.6269 +12.659 -39.8441 59.7211 +12.0155 -39.8491 59.7287 +11.4041 -39.9606 59.8958 +10.7753 -40.0144 59.9763 +10.0065 -39.5154 59.2285 +9.51536 -40.1126 60.1236 +8.76241 -39.6063 59.3647 +8.25251 -40.1987 60.2526 +7.52605 -39.7404 59.5656 +6.97757 -40.2172 60.2804 +6.2665 -39.7519 59.5829 +5.70398 -40.2234 60.2896 +5.00851 -39.7512 59.5819 +4.38329 -39.7739 59.616 +3.71585 -39.3503 58.9809 +3.12751 -39.7549 59.5874 +2.50229 -39.7685 59.6078 +1.8795 -39.8346 59.7069 +1.23912 -39.3983 59.0529 +0.626565 -39.8468 59.7251 +4.34123e-15 -39.3488 58.9787 +-0.626565 -39.8468 59.7251 +-1.25134 -39.7867 59.6351 +-1.90306 -40.3339 60.4553 +-2.50578 -39.824 59.691 +-3.17549 -40.3648 60.5016 +-3.76296 -39.8491 59.7286 +-4.38329 -39.7739 59.616 +-5.01549 -39.8066 59.6649 +-5.64121 -39.7808 59.6262 +-6.33622 -40.1942 60.2459 +-6.92965 -39.941 59.8664 +-7.55741 -39.9059 59.8138 +-8.24119 -40.1435 60.1699 +-8.8599 -40.047 60.0252 +-9.58062 -40.3878 60.536 +-10.0622 -39.7353 59.558 +-10.7457 -39.9046 59.8118 +-11.3728 -39.851 59.7314 +-11.9329 -39.5754 59.3184 +-12.6242 -39.7348 59.5572 +-13.2485 -39.6721 59.4633 +-13.9672 -39.8788 59.7732 +-14.514 -39.5921 59.3435 +-15.2191 -39.7375 59.5613 +-15.9516 -39.9332 59.8546 +-16.5114 -39.6922 59.4934 +-17.2049 -39.7726 59.614 +-17.9264 -39.9031 59.8096 +-18.7034 -40.1372 60.1604 +-19.1785 -39.7234 59.5403 +-20.0696 -40.1638 60.2003 +-20.535 -39.745 59.5726 +-21.2159 -39.7505 59.5808 +-22.0741 -40.0708 60.0609 +-22.9739 -40.4388 60.6124 +-23.4853 -40.1148 60.1269 +-24.6228 -40.8416 61.2163 +-24.906 -40.1436 60.1701 +-25.9034 -40.5969 60.8495 +-26.575 -40.5221 60.7373 +-27.5263 -40.8597 61.2433 +-28.1677 -40.7248 61.0412 +-28.7703 -40.5352 60.757 +-29.4441 -40.4458 60.623 +-30.4233 -40.7631 61.0986 +-31.0631 -40.6142 60.8754 +-32.1392 -41.0221 61.4867 +-32.7423 -40.8142 61.1751 +-33.3828 -40.654 60.9351 +-34.0208 -40.4908 60.6905 +-35.0436 -40.7753 61.1169 +-36.0341 -41.0031 61.4584 +-36.7667 -40.9264 61.3433 +-37.1364 -40.45 60.6293 +-38.3251 -40.8594 61.2429 +-39.2948 -41.0152 61.4765 +-40.0336 -40.9209 61.3352 +-40.821 -40.8711 61.2605 +-41.3143 -40.5269 60.7445 +-42.4 -40.7579 61.0908 +-43.496 -40.9813 61.4257 +-43.9327 -40.5788 60.8224 +-45.2484 -40.9797 61.4232 +-45.679 -40.5707 60.8102 +-46.7988 -40.7692 61.1077 +-47.4381 -40.541 60.7657 +-49.0672 -41.1427 61.6676 +-49.7122 -40.9035 61.309 +-50.6934 -40.9356 61.3572 +-51.794 -41.0522 61.532 +-52.9601 -41.2065 61.7632 +-53.606 -40.9484 61.3763 +-54.6047 -40.955 61.3862 +-55.7281 -41.0435 61.5188 +-56.9192 -41.1683 61.7059 +-57.749 -41.0223 61.4871 +-59.3256 -41.3926 62.0421 +-59.6596 -40.888 61.2858 +-61.4452 -41.3683 62.0057 +-61.8362 -40.8991 61.3025 +-63.581 -41.3155 61.9265 +-64.2938 -41.0479 61.5254 +-65.6656 -41.1922 61.7417 +-66.5116 -40.9963 61.4481 +-68.3697 -41.4092 62.067 +-69.0182 -41.0764 61.5683 +-71.3824 -41.747 62.5734 +-72.0361 -41.3997 62.0528 +-73.8758 -41.7222 62.5362 +-74.6705 -41.4414 62.1152 +-76.1038 -41.506 62.2121 +-77.0413 -41.2901 61.8884 +-79.356 -41.794 62.6438 +-80.5952 -41.7109 62.5192 +-81.9115 -41.6565 62.4376 +-83.9011 -41.9266 62.8425 +-85.2312 -41.8497 62.7272 +-87.2444 -42.0906 63.0884 +-89.3477 -42.3513 63.4791 +-91.0827 -42.4164 63.5767 +-94.8327 -43.3858 65.0296 +-96.2107 -43.2392 64.8099 +-98.2956 -43.3934 65.0411 +-99.3682 -43.0866 64.5812 +-101.391 -43.178 64.7182 +-101.107 -42.2845 63.379 +-103.617 -42.5526 63.7807 +-104.525 -42.147 63.1728 +-107.87 -42.7026 64.0057 +-109.521 -42.5606 63.7928 +-112.658 -42.9716 64.4088 +-114.49 -42.8588 64.2398 +-117.161 -43.0378 64.5081 +-120.349 -43.3756 65.0144 +-124.653 -44.0733 66.0602 +-127.377 -44.1738 66.2108 +-130.88 -44.5121 66.7179 +-132.518 -44.191 66.2366 +-135.103 -44.1672 66.2009 +-136.659 -43.7887 65.6335 +-138.3 -43.4258 65.0896 +-137.403 -42.27 63.3572 +-140.083 -42.212 63.2703 +-139.594 -41.1933 61.7434 +-139.704 -40.3618 60.4972 +-138.997 -39.3058 58.9142 +-139.341 -38.5568 57.7916 +-140.212 -37.9535 56.8873 +-140.713 -37.2491 55.8315 +-140.387 -36.3316 54.4564 +-140.498 -35.5352 53.2627 +-139.955 -34.5826 51.8348 +-139.301 -33.6157 50.3856 +-140.653 -33.1349 49.665 +-157.337 -36.1692 54.213 +-166.893 -37.4225 56.0915 +-221.625 -48.4509 72.6216 +-227.514 -48.4696 72.6497 +-234.917 -48.7458 73.0637 +-239.622 -48.4035 72.5505 +-245.935 -48.3342 72.4466 +-254.25 -48.5867 72.8252 +-13.9404 -2.58868 3.8801 +-14.2658 -2.57252 3.85587 +-13.4474 -2.35313 3.52703 +-15.3965 -2.61244 3.9157 +-16.0123 -2.63235 3.94555 +-15.9569 -2.5394 3.80623 +-15.3217 -2.3582 3.53464 +-15.3582 -2.2839 3.42328 +-16.2649 -2.3345 3.49911 +-14.6515 -2.02739 3.03879 +-16.6275 -2.21547 3.32071 +-16.0771 -2.05995 3.0876 +-16.6947 -2.05408 3.0788 +-15.9438 -1.88084 2.81913 +-14.3069 -1.61545 2.42135 +-14.5281 -1.56727 2.34914 +-15.7321 -1.61822 2.4255 +-3226.53 -315.747 473.264 +-3231.37 -300.108 449.823 +-3235.96 -284.447 426.348 +-3240.31 -268.764 402.842 +-3244.42 -253.06 379.304 +-3248.27 -237.337 355.738 +-3251.88 -221.597 332.145 +-14.3074 -0.904705 1.35604 +-12.531 -0.730955 1.09561 +-12.3429 -0.6596 0.988654 +-13.1498 -0.638493 0.957019 +-12.9599 -0.566073 0.848469 +-13.3674 -0.518769 0.777568 +-13.9739 -0.474339 0.710972 +-14.1805 -0.412452 0.618212 +-14.5861 -0.353441 0.529762 +-14.2913 -0.276975 0.415149 +-14.1951 -0.206297 0.309212 +-13.8979 -0.134634 0.201799 +-14.1995 -0.0687726 0.103081 +63.7 0 0 +76.6971 -0.366429 0.560112 +66.5899 -0.63633 0.972674 +53.9815 -0.773869 1.18291 +44.7727 -0.855955 1.30839 +43.9581 -1.05071 1.60609 +41.6429 -1.19478 1.82631 +38.2286 -1.28005 1.95665 +27.3333 -1.04638 1.59946 +30.5057 -1.31437 2.00911 +33.4721 -1.6032 2.4506 +41.508 -2.18808 3.34462 +42.2672 -2.43207 3.71759 +43.5184 -2.71448 4.14926 +46.8482 -3.14912 4.81365 +54.232 -3.90875 5.97479 +80.4098 -6.1868 9.45695 +94.5499 -7.73595 11.8249 +95.3119 -8.26442 12.6327 +95.1766 -8.71947 13.3283 +95.1324 -9.18333 14.0373 +94.9824 -9.6375 14.7316 +94.8252 -10.0909 15.4246 +94.8567 -10.5653 16.1498 +95.3694 -11.0978 16.9637 +95.1889 -11.553 17.6596 +95.196 -12.0319 18.3916 +95.0005 -12.4863 19.0861 +95.6712 -13.0589 19.9614 +95.4594 -13.5154 20.6593 +95.0471 -13.9426 21.3122 +95.8812 -14.5571 22.2515 +95.4533 -14.9844 22.9047 +95.1149 -15.4243 23.5771 +94.9611 -15.8942 24.2953 +95.5624 -16.4954 25.2143 +95.2008 -16.9344 25.8854 +95.7807 -17.5449 26.8186 +95.4974 -18.0018 27.517 +95.9609 -18.6035 28.4368 +95.5667 -19.0426 29.1078 +96.1026 -19.671 30.0684 +95.7854 -20.1294 30.7691 +96.4843 -20.8069 31.8048 +96.2417 -21.2876 32.5395 +95.8063 -21.7256 33.2091 +95.5484 -22.2039 33.9401 +96.1079 -22.8778 34.9703 +95.7396 -23.3361 35.6708 +96.2739 -24.0196 36.7156 +95.8874 -24.4786 37.4172 +96.2156 -25.1244 38.4043 +95.7216 -25.559 39.0687 +96.116 -26.2352 40.1023 +95.6941 -26.6934 40.8027 +96.0633 -27.3771 41.8478 +95.6232 -27.835 42.5477 +95.7911 -28.4736 43.5238 +96.0332 -29.1425 44.5463 +96.0002 -29.735 45.4519 +94.8298 -29.9735 45.8165 +94.1761 -30.3698 46.4223 +93.3455 -30.7058 46.9359 +93.2788 -31.2936 47.8344 +93.6245 -32.0282 48.9572 +93.7008 -32.6801 49.9538 +93.8472 -33.3651 51.0008 +93.3118 -33.8121 51.6841 +93.3496 -34.4709 52.6912 +93.4559 -35.1637 53.7501 +93.3833 -35.7972 54.7185 +93.5419 -36.5281 55.8357 +93.1988 -37.0702 56.6643 +93.6493 -37.9374 57.9898 +93.6001 -38.6139 59.024 +93.8537 -39.4262 60.2657 +92.3549 -39.5023 60.382 +91.1739 -39.7035 60.6895 +89.1386 -39.5174 60.405 +88.5825 -39.9766 61.1069 +86.4864 -39.7296 60.7294 +85.9259 -40.1768 61.413 +83.9237 -39.9394 61.05 +82.9094 -40.1574 61.3832 +81.523 -40.1856 61.4264 +80.2895 -40.2777 61.5672 +78.9862 -40.3237 61.6375 +78.3404 -40.6995 62.212 +76.25 -40.3116 61.6191 +75.8898 -40.8278 62.4081 +74.0341 -40.5308 61.954 +73.3852 -40.8829 62.4923 +70.2994 -39.8536 60.919 +69.455 -40.0688 61.2479 +68.5408 -40.2389 61.5079 +67.4915 -40.3227 61.636 +66.1101 -40.1961 61.4424 +65.4669 -40.5104 61.9228 +64.6874 -40.739 62.2723 +63.3212 -40.5885 62.0423 +61.9647 -40.4282 61.7972 +61.8904 -41.1029 62.8285 +59.6596 -40.3333 61.6522 +59.4501 -40.9167 62.544 +57.749 -40.4658 61.8547 +57.1018 -40.7401 62.274 +55.367 -40.2244 61.4858 +54.7237 -40.4874 61.8877 +53.5472 -40.3486 61.6756 +52.902 -40.6029 62.0643 +51.3924 -40.1814 61.4201 +50.4668 -40.1998 61.4482 +49.6004 -40.2579 61.5369 +48.5705 -40.1738 61.4083 +47.4381 -39.991 61.129 +46.6376 -40.0776 61.2614 +45.2021 -39.6025 60.5351 +44.7259 -39.957 61.077 +43.9327 -40.0284 61.1861 +43.1408 -40.0952 61.2883 +41.75 -39.5886 60.5139 +41.1174 -39.7866 60.8165 +40.0453 -39.5506 60.4557 +39.6042 -39.9328 61.04 +38.6845 -39.8305 60.8836 +37.5863 -39.5282 60.4215 +36.9548 -39.7062 60.6936 +36.3205 -39.8813 60.9612 +35.6396 -40.0041 61.1489 +35.0006 -40.1728 61.4068 +33.8095 -39.6934 60.6741 +33.1755 -39.8535 60.9187 +32.7016 -40.2105 61.4645 +31.7404 -39.9636 61.087 +31.0631 -40.0633 61.2394 +30.4233 -40.2101 61.4639 +29.1444 -39.491 60.3647 +28.807 -40.0363 61.1981 +27.881 -39.7635 60.7812 +27.2461 -39.8952 60.9825 +26.6092 -40.0238 61.1791 +25.9368 -40.0978 61.2922 +24.9711 -39.7026 60.6881 +24.3055 -39.7684 60.7888 +23.6707 -39.883 60.9639 +23.0341 -39.9946 61.1345 +22.3664 -40.0508 61.2203 +21.7556 -40.2086 61.4616 +20.8657 -39.8374 60.8941 +20.2299 -39.9355 61.0442 +19.3597 -39.5548 60.4621 +18.7284 -39.6457 60.6011 +17.9022 -39.3087 60.0861 +17.4851 -39.8719 60.9468 +16.8038 -39.8472 60.9091 +16.1464 -39.8725 60.9478 +15.4063 -39.6804 60.6541 +14.7732 -39.7525 60.7643 +14.2153 -40.0365 61.1985 +13.449 -39.7261 60.724 +12.7979 -39.7349 60.7375 +12.164 -39.7945 60.8286 +11.5449 -39.9052 60.9978 +10.9083 -39.9588 61.0798 +10.1457 -39.5215 60.4113 +9.61978 -40.0027 61.1468 +8.88428 -39.6124 60.5503 +8.34308 -40.0885 61.278 +7.60967 -39.6368 60.5876 +7.07342 -40.2166 61.4738 +6.34494 -39.7035 60.6895 +5.71182 -39.7323 60.7335 +5.0713 -39.7035 60.6894 +4.43823 -39.7262 60.7242 +3.80482 -39.7459 60.7543 +3.19294 -40.036 61.1977 +2.53719 -39.7762 60.8006 +1.90306 -39.7868 60.8168 +1.25483 -39.3564 60.159 +0.635292 -39.8536 60.919 +4.46369e-15 -39.9099 61.005 +-0.635292 -39.8536 60.919 +-1.26879 -39.7943 60.8283 +-1.90306 -39.7868 60.8168 +-2.53719 -39.7762 60.8006 +-3.2322 -40.5283 61.9502 +-3.81006 -39.8005 60.8378 +-4.49317 -40.218 61.4759 +-5.0713 -39.7035 60.6894 +-5.71182 -39.7323 60.7335 +-6.3798 -39.9217 61.023 +-7.03508 -39.9987 61.1406 +-7.48424 -38.9835 59.5889 +-8.30912 -39.9253 61.0286 +-8.81115 -39.2864 60.0519 +-9.61978 -40.0027 61.1468 +-10.2431 -39.901 60.9914 +-10.8788 -39.8506 60.9143 +-11.3102 -39.0941 59.758 +-12.23 -40.0105 61.1588 +-12.5548 -38.9801 59.5837 +-13.4125 -39.6184 60.5595 +-13.8909 -39.1229 59.802 +-14.7732 -39.7525 60.7643 +-15.3231 -39.4662 60.3267 +-15.9516 -39.3915 60.2125 +-16.5789 -39.3138 60.0938 +-17.3683 -39.6057 60.54 +-17.999 -39.5212 60.4108 +-18.9287 -40.0698 61.2493 +-19.4373 -39.7134 60.7046 +-20.2032 -39.8828 60.9636 +-20.9484 -39.9953 61.1355 +-21.5852 -39.8936 60.9801 +-22.3372 -39.9984 61.1403 +-23.004 -39.9424 61.0546 +-23.7634 -40.0392 61.2027 +-24.6228 -40.2876 61.5823 +-25.2641 -40.1684 61.4001 +-26.2038 -40.5107 61.9233 +-26.7118 -40.1782 61.415 +-27.8415 -40.7669 62.315 +-28.1319 -40.1213 61.3281 +-28.9902 -40.2909 61.5874 +-29.7812 -40.354 61.6837 +-30.6147 -40.4631 61.8505 +-31.4148 -40.5168 61.9327 +-32.4183 -40.817 62.3916 +-33.0677 -40.6606 62.1525 +-33.7146 -40.5011 61.9087 +-34.3589 -40.3385 61.6601 +-35.0436 -40.2222 61.4823 +-36.2971 -40.7421 62.2771 +-37.1237 -40.7631 62.3092 +-37.999 -40.8281 62.4085 +-38.7407 -40.7422 62.2771 +-39.2009 -40.3622 61.6963 +-40.0336 -40.3658 61.7019 +-40.821 -40.3167 61.6268 +-42.3484 -40.9778 62.6373 +-42.65 -40.442 61.8184 +-43.7498 -40.6612 62.1535 +-44.3963 -40.4507 61.8316 +-45.5096 -40.6572 62.1473 +-45.997 -40.2989 61.5996 +-47.2824 -40.6317 62.1083 +-48.4184 -40.8175 62.3923 +-49.5639 -40.9955 62.6643 +-49.88 -40.4849 61.8838 +-51.3164 -40.8766 62.4827 +-51.794 -40.4954 61.8999 +-53.3085 -40.9149 62.5412 +-53.9587 -40.6587 62.1496 +-55.3185 -40.9275 62.5604 +-55.9688 -40.6616 62.154 +-57.1627 -40.7836 62.3405 +-58.1184 -40.7246 62.2504 +-59.5747 -41.0024 62.675 +-60.226 -40.7163 62.2376 +-61.7632 -41.0184 62.6993 +-62.6718 -40.8895 62.5023 +-63.9706 -41.0048 62.6787 +-64.6218 -40.6976 62.2091 +-66.4608 -41.1254 62.863 +-67.1138 -40.8063 62.3752 +-68.9778 -41.2107 62.9933 +-70.4504 -41.36 63.2216 +-71.7265 -41.3793 63.251 +-72.3834 -41.035 62.7248 +-74.016 -41.2343 63.0295 +-75.3069 -41.2276 63.0192 +-76.9597 -41.4034 63.288 +-78.6958 -41.6046 63.5955 +-80.2264 -41.6793 63.7096 +-81.2534 -41.4811 63.4067 +-83.5335 -41.9051 64.0547 +-84.5699 -41.6876 63.7223 +-85.9052 -41.6084 63.6013 +-87.9991 -41.8789 64.0147 +-90.2602 -42.2035 64.5109 +-92.9978 -42.7208 65.3016 +-96.4531 -43.5285 66.5363 +-97.8427 -43.3761 66.3033 +-99.7825 -43.4523 66.4198 +-100.55 -43.0077 65.7401 +-101.391 -42.5923 65.1052 +-102.465 -42.2711 64.6142 +-105.064 -42.5614 65.058 +-106.224 -42.251 64.5835 +-109.336 -42.6956 65.2631 +-110.995 -42.5485 65.0382 +-113.812 -42.8228 65.4575 +-114.988 -42.4611 64.9047 +-119.246 -43.2095 66.0486 +-122.614 -43.5922 66.6337 +-125.412 -43.7402 66.8599 +-128.14 -43.8356 67.0057 +-131.648 -44.1658 67.5104 +-133.89 -44.0426 67.3221 +-136.137 -43.9015 67.1064 +-137.611 -43.4958 66.4862 +-139.083 -43.0793 65.8497 +-139.065 -42.2009 64.5069 +-140.523 -41.77 63.8483 +-140.035 -40.763 62.3089 +-138.551 -39.4857 60.3565 +-139.175 -38.8223 59.3425 +-139.878 -38.1803 58.3612 +-140.482 -37.5106 57.3375 +-140.352 -36.6495 56.0212 +-140.025 -35.7462 54.6405 +-139.588 -34.8261 53.2341 +-139.59 -34.0244 52.0086 +-139.943 -33.3125 50.9204 +-142.586 -33.1347 50.6486 +-162.326 -36.8099 56.2664 +-178.297 -39.4373 60.2826 +-224.975 -48.516 74.16 +-229.848 -48.3026 73.8338 +-236.603 -48.4297 74.0281 +-241.689 -48.1588 73.614 +-248.292 -48.1353 73.5781 +-256.708 -48.3911 73.969 +-266.289 -48.7783 74.5609 +-12.6491 -2.25003 3.43932 +-15.1641 -2.61753 4.00107 +-14.4402 -2.41694 3.69445 +-15.2452 -2.47225 3.779 +-15.5724 -2.44459 3.73673 +-15.6108 -2.3701 3.62286 +-15.7446 -2.3096 3.53038 +-15.7808 -2.23429 3.41527 +-16.2039 -2.2118 3.38088 +-16.9192 -2.22376 3.39917 +-16.6617 -2.1059 3.21901 +-15.5231 -1.88403 2.87986 +-15.6504 -1.82118 2.78379 +-15.3848 -1.7136 2.61935 +-15.0189 -1.59825 2.44303 +-14.6505 -1.48653 2.27226 +-3226.53 -311.464 476.093 +-3231.37 -296.037 452.512 +-3235.96 -280.588 428.898 +-3240.31 -265.118 405.251 +-3244.42 -249.627 381.572 +-3248.27 -234.118 357.865 +-3251.88 -218.591 334.131 +-13.6119 -0.849046 1.29782 +-13.2271 -0.761097 1.16339 +-12.3429 -0.650652 0.994566 +-14.6441 -0.701402 1.07214 +-14.0565 -0.60564 0.925761 +-13.3674 -0.511732 0.782217 +-13.9739 -0.467904 0.715223 +-13.2818 -0.38107 0.582491 +-14.8858 -0.355811 0.543881 +-15.1907 -0.290413 0.443916 +-14.595 -0.20923 0.319823 +-13.298 -0.127075 0.194243 +-14.5994 -0.0697504 0.106618 +69.6 0 0 +86.5967 -0.408003 0.636116 +70.8892 -0.668046 1.04155 +54.4813 -0.770225 1.20086 +46.9714 -0.885567 1.38068 +44.3577 -1.0456 1.63019 +44.2393 -1.25172 1.95155 +39.9254 -1.31837 2.05547 +29.2286 -1.10346 1.72039 +30.9044 -1.31313 2.0473 +32.4759 -1.53397 2.39161 +42.2048 -2.19403 3.4207 +44.8529 -2.54516 3.96814 +45.903 -2.82361 4.40228 +49.131 -3.25689 5.0778 +56.6115 -4.02381 6.27351 +81.301 -6.16881 9.61777 +94.6488 -7.63693 11.9067 +95.5095 -8.16699 12.7331 +95.3738 -8.61666 13.4342 +95.2309 -9.06569 14.1343 +95.0807 -9.51401 14.8333 +95.1197 -9.9822 15.5632 +95.6407 -10.5053 16.3788 +94.7825 -10.8769 16.9581 +95.2865 -11.4049 17.7813 +95.2934 -11.8776 18.5184 +95.195 -12.3388 19.2373 +94.8949 -12.7737 19.9155 +95.5562 -13.342 20.8014 +95.3369 -13.7916 21.5025 +95.7849 -14.3413 22.3595 +95.5494 -14.7921 23.0622 +95.3067 -15.2416 23.7632 +95.9174 -15.8322 24.6839 +95.6578 -16.2834 25.3875 +96.1518 -16.867 26.2972 +95.8755 -17.3193 27.0025 +95.5919 -17.7704 27.7057 +96.0552 -18.3642 28.6316 +95.7547 -18.8161 29.3361 +96.1962 -19.4178 30.2742 +95.8787 -19.8702 30.9796 +96.5773 -20.5388 32.022 +96.2417 -20.9931 32.7303 +95.8987 -21.4457 33.4359 +96.4689 -22.1076 34.468 +96.1996 -22.5829 35.2088 +95.9223 -23.0571 35.9483 +95.7279 -23.553 36.7214 +96.1593 -24.2085 37.7433 +96.2156 -24.7768 38.6294 +95.8114 -25.2292 39.3347 +96.2054 -25.8964 40.375 +95.7832 -26.3487 41.0801 +95.265 -26.774 41.7433 +95.7115 -27.4753 42.8366 +95.8789 -28.1055 43.8191 +95.8583 -28.687 44.7258 +95.478 -29.1641 45.4697 +96.0422 -29.9368 46.6743 +95.1239 -30.2511 47.1644 +94.2884 -30.5869 47.6879 +93.6199 -30.9735 48.2907 +93.5397 -31.5565 49.1996 +93.7008 -32.2281 50.2466 +93.0924 -32.6389 50.8871 +93.4786 -33.404 52.08 +93.4325 -34.0243 53.0471 +93.6207 -34.7384 54.1605 +93.5472 -35.3639 55.1358 +93.6233 -36.0541 56.2119 +93.7651 -36.7795 57.3427 +94.1316 -37.6052 58.6301 +93.9994 -38.2422 59.6233 +93.5364 -38.7494 60.414 +94.0885 -39.6871 61.8761 +92.6608 -39.7928 62.0408 +90.5375 -39.5823 61.7126 +89.8943 -40.0074 62.3753 +88.2483 -39.9782 62.3299 +86.9144 -40.0769 62.4837 +85.5086 -40.1307 62.5676 +84.5571 -40.3889 62.9702 +82.2661 -39.991 62.3498 +81.8378 -40.4865 63.1223 +79.8638 -40.2077 62.6877 +79.4285 -40.6939 63.4458 +77.329 -40.3166 62.8574 +77.1737 -40.9442 63.836 +75.024 -40.5045 63.1505 +74.2964 -40.8179 63.6391 +72.175 -40.3509 62.9109 +71.107 -40.4544 63.0724 +68.95 -39.9192 62.238 +68.0319 -40.0833 62.4938 +67.1807 -40.2819 62.8034 +67.2559 -41.0417 63.988 +65.2123 -40.5014 63.1455 +64.5551 -40.8071 63.6222 +62.7361 -40.3652 62.9332 +62.3357 -40.8259 63.6515 +61.107 -40.7404 63.5182 +60.6329 -41.1535 64.1622 +58.8572 -40.6718 63.4112 +58.015 -40.8191 63.6409 +56.3299 -40.3579 62.9218 +55.8539 -40.7519 63.5362 +54.135 -40.2273 62.7182 +53.715 -40.6566 63.3876 +52.6543 -40.5986 63.2971 +51.8828 -40.7561 63.5427 +50.2155 -40.1933 62.6653 +49.5639 -40.4284 63.0317 +47.4925 -39.4831 61.558 +47.1749 -39.9786 62.3305 +45.5731 -39.3751 61.3896 +44.7781 -39.4503 61.5068 +43.8297 -39.3821 61.4004 +43.3438 -39.7266 61.9376 +42.55 -39.7891 62.035 +41.7575 -39.8471 62.1254 +40.5301 -39.4756 61.5463 +40.0813 -39.8548 62.1375 +39.2009 -39.8038 62.058 +38.3713 -39.7955 62.0449 +37.4996 -39.7342 61.9494 +36.6775 -39.7161 61.9212 +35.8149 -39.6448 61.81 +35.3019 -39.9582 62.2986 +34.3589 -39.7804 62.0215 +34.0048 -40.2847 62.8077 +32.5796 -39.5063 61.5941 +32.2987 -40.1039 62.5258 +31.1803 -39.6582 61.8309 +30.806 -40.1527 62.6019 +29.8187 -39.8458 62.1234 +29.2101 -40.035 62.4184 +28.2394 -39.7174 61.9233 +27.8765 -40.2535 62.7592 +26.6434 -39.5209 61.6169 +26.304 -40.1029 62.5243 +25.3943 -39.8169 62.0784 +24.718 -39.8839 62.1828 +24.1342 -40.1015 62.5221 +23.425 -40.1107 62.5365 +22.4249 -39.6 61.7402 +21.7556 -39.6524 61.8219 +21.0863 -39.7015 61.8984 +20.4705 -39.8513 62.1321 +19.8514 -39.9984 62.3613 +19.2041 -40.0904 62.5048 +18.1199 -39.2364 61.1733 +17.4851 -39.3203 61.3041 +17.2088 -40.2429 62.7425 +16.3195 -39.7426 61.9625 +15.4894 -39.3427 61.3391 +14.9925 -39.7845 62.0279 +14.2344 -39.5357 61.6399 +13.7952 -40.1851 62.6525 +12.8847 -39.4511 61.508 +12.4776 -40.2558 62.7626 +11.6857 -39.8331 62.1036 +11.0414 -39.8866 62.1871 +10.271 -39.456 61.5157 +9.68504 -39.717 61.9226 +9.09145 -39.9754 62.3255 +8.44496 -40.0168 62.39 +7.79782 -40.055 62.4496 +7.083 -39.714 61.918 +6.42338 -39.6383 61.7999 +5.78244 -39.6671 61.8448 +5.11315 -39.4773 61.549 +4.49928 -39.7155 61.9203 +3.85716 -39.7352 61.951 +3.22347 -39.8598 62.1452 +2.51625 -38.9022 60.6523 +1.91877 -39.5602 61.6782 +1.27228 -39.3518 61.3533 +0.639655 -39.5723 61.697 +4.45757e-15 -39.3038 61.2785 +-0.643146 -39.7882 62.0337 +-1.27926 -39.5677 61.6899 +-1.93448 -39.884 62.1831 +-2.55813 -39.5496 61.6617 +-3.25401 -40.2373 62.7338 +-3.85716 -39.7352 61.951 +-4.5298 -39.985 62.3404 +-5.14105 -39.6928 61.8849 +-5.82166 -39.9362 62.2644 +-6.44081 -39.7459 61.9677 +-7.00632 -39.2841 61.2477 +-7.75601 -39.8402 62.1147 +-8.36572 -39.6413 61.8045 +-8.9574 -39.3859 61.4065 +-9.75031 -39.9846 62.3398 +-10.3266 -39.6698 61.8491 +-10.9675 -39.6197 61.7709 +-11.5605 -39.4065 61.4386 +-12.2465 -39.5103 61.6003 +-12.8847 -39.4511 61.508 +-13.7041 -39.9197 62.2387 +-14.158 -39.3236 61.3093 +-14.8529 -39.4142 61.4505 +-15.4894 -39.3427 61.3391 +-16.1248 -39.2683 61.223 +-16.7589 -39.1908 61.1022 +-17.5084 -39.3728 61.3859 +-18.1199 -39.2364 61.1733 +-18.8787 -39.4109 61.4454 +-19.515 -39.3205 61.3044 +-20.5239 -39.9554 62.2943 +-21.1689 -39.8572 62.1412 +-22.1532 -40.3771 62.9517 +-22.7465 -40.1679 62.6257 +-23.5453 -40.3167 62.8576 +-24.1033 -40.0502 62.4421 +-24.845 -40.0887 62.5021 +-25.492 -39.9701 62.3172 +-26.4375 -40.3065 62.8417 +-27.2248 -40.3833 62.9615 +-28.0516 -40.5064 63.1533 +-28.7053 -40.3727 62.9449 +-29.5033 -40.4368 63.0449 +-30.1558 -40.2963 62.8258 +-30.8826 -40.2525 62.7575 +-31.8055 -40.4533 63.0706 +-32.8569 -40.7971 63.6065 +-33.5151 -40.6406 63.3627 +-34.0048 -40.2847 62.8077 +-34.9083 -40.4165 63.0133 +-36.0768 -40.8353 63.6661 +-36.5602 -40.4697 63.0961 +-37.6591 -40.7791 63.5785 +-38.0444 -40.3114 62.8494 +-39.0178 -40.4659 63.0902 +-39.6703 -40.2805 62.8012 +-40.9402 -40.7089 63.4691 +-41.5967 -40.5145 63.166 +-42.4962 -40.5519 63.2243 +-43.15 -40.3501 62.9097 +-44.2573 -40.564 63.2432 +-44.9113 -40.3539 62.9156 +-46.3456 -40.8313 63.6599 +-47.0038 -40.6114 63.3171 +-47.6585 -40.3884 62.9693 +-48.7997 -40.5698 63.2522 +-49.6191 -40.4734 63.1019 +-50.551 -40.4619 63.084 +-51.7129 -40.6226 63.3346 +-52.7117 -40.6428 63.366 +-53.8312 -40.7445 63.5246 +-54.4877 -40.4894 63.1268 +-56.3892 -41.1425 64.1451 +-56.8715 -40.7459 63.5268 +-58.4411 -41.1189 64.1083 +-59.1035 -40.842 63.6766 +-60.1349 -40.8155 63.6352 +-61.3587 -40.9082 63.7798 +-62.7809 -41.1175 64.1061 +-63.3146 -40.7374 63.5136 +-64.75 -40.9302 63.8142 +-65.6715 -40.7866 63.5902 +-67.1897 -41.0013 63.925 +-68.1844 -40.8838 63.7418 +-69.856 -41.1581 64.1694 +-70.5186 -40.8274 63.6538 +-72.9656 -41.5118 64.7209 +-73.4254 -41.0499 64.0008 +-75.0674 -41.2415 64.2995 +-76.3675 -41.2299 64.2814 +-78.1009 -41.4362 64.603 +-79.9906 -41.7042 65.0208 +-81.0969 -41.5487 64.7784 +-81.7653 -41.165 64.1803 +-84.6394 -41.8725 65.2833 +-85.7589 -41.6889 64.997 +-87.6278 -41.8556 65.2569 +-88.6784 -41.6183 64.8869 +-92.4654 -42.6365 66.4744 +-94.6831 -42.8933 66.8747 +-97.2247 -43.2698 67.4618 +-99.397 -43.4556 67.7515 +-100.8 -43.2881 67.4904 +-101.181 -42.6786 66.5401 +-102.977 -42.6604 66.5117 +-103.982 -42.3036 65.9554 +-106.591 -42.5828 66.3907 +-107.276 -42.079 65.6052 +-110.394 -42.5125 66.2812 +-112.551 -42.5482 66.3368 +-114.966 -42.6585 66.5088 +-116.065 -42.2662 65.8971 +-121.247 -43.3269 67.5507 +-124.459 -43.6361 68.0329 +-127.183 -43.7443 68.2016 +-129.243 -43.6012 67.9784 +-132.5 -43.8369 68.3459 +-135.004 -43.7949 68.2804 +-136.913 -43.5408 67.8842 +-138.131 -43.056 67.1285 +-138.3 -42.2441 65.8626 +-139.327 -41.6956 65.0075 +-139.644 -40.9346 63.8209 +-139.859 -40.1484 62.5952 +-138.817 -39.0143 60.827 +-139.443 -38.3588 59.805 +-140.505 -37.8208 58.9663 +-140.841 -37.0864 57.8213 +-140.442 -36.1657 56.3859 +-140.206 -35.2973 55.0319 +-140.498 -34.5683 53.8952 +-139.498 -33.5317 52.2792 +-140.86 -33.067 51.5546 +-148.477 -34.0264 53.0504 +-175.26 -39.1932 61.1059 +-210.1 -45.8289 71.4516 +-227.394 -48.3593 75.3968 +-231.621 -48.002 74.8398 +-238.664 -48.1757 75.1106 +-242.911 -47.7327 74.4198 +-251.78 -48.1363 75.0491 +-260.396 -48.4071 75.4714 +-268.376 -48.4804 75.5856 +-12.0784 -2.1188 3.30341 +-14.3058 -2.43521 3.79673 +-14.9184 -2.46243 3.83916 +-15.6288 -2.49938 3.89678 +-16.5337 -2.55959 3.99064 +-16.189 -2.42388 3.77906 +-16.0344 -2.31957 3.61644 +-15.4904 -2.16283 3.37207 +-15.7188 -2.11589 3.29888 +-15.8496 -2.05436 3.20294 +-16.272 -2.02819 3.16214 +-15.9136 -1.90471 2.96962 +-16.5307 -1.89701 2.95762 +-16.0708 -1.76523 2.75217 +-16.295 -1.71006 2.66614 +-13.9622 -1.39709 2.1782 +-14.0828 -1.34063 2.09018 +-3231.37 -291.942 455.165 +-3235.96 -276.707 431.412 +-3240.31 -261.45 407.626 +-3244.42 -246.174 383.809 +-3248.27 -230.879 359.963 +-3251.88 -215.567 336.09 +-14.1087 -0.867864 1.35308 +-13.3266 -0.75621 1.179 +-13.7365 -0.714093 1.11334 +-14.6441 -0.691699 1.07843 +-13.4584 -0.571849 0.891568 +-15.0632 -0.568675 0.886618 +-14.5728 -0.481207 0.750248 +-14.2804 -0.404054 0.629959 +-13.1874 -0.310854 0.484652 +-15.1907 -0.286395 0.446518 +-13.8952 -0.196444 0.306274 +-13.9979 -0.131913 0.205665 +-14.7994 -0.0697281 0.108713 +75.8 0 0 +89.2966 -0.414788 0.659718 +75.4885 -0.701352 1.1155 +57.8802 -0.806736 1.28311 +48.1706 -0.895364 1.42407 +45.9562 -1.068 1.69864 +48.0341 -1.33992 2.13113 +42.9198 -1.39726 2.22233 +30.1264 -1.12131 1.78344 +33.4964 -1.40319 2.23176 +30.2843 -1.41027 2.24302 +43.0011 -2.20389 3.50527 +48.3338 -2.70398 4.30066 +47.294 -2.86812 4.56174 +52.7042 -3.44446 5.4784 +58.3961 -4.09209 6.50845 +90.5105 -6.7707 10.7688 +95.5389 -7.59997 12.0877 +94.6205 -7.97682 12.6871 +95.3738 -8.49509 13.5114 +95.2309 -8.93778 14.2155 +95.0807 -9.37978 14.9185 +94.9233 -9.82103 15.6203 +95.6407 -10.3571 16.4729 +95.4672 -10.8009 17.1789 +95.2865 -11.244 17.8835 +95.0985 -11.6861 18.5867 +95.0978 -12.1523 19.3281 +95.7682 -12.7094 20.2142 +95.5562 -13.1537 20.921 +95.3369 -13.5971 21.6261 +95.7849 -14.139 22.488 +95.4533 -14.5687 23.1714 +95.2108 -15.0115 23.8757 +95.0567 -15.4687 24.6029 +95.5624 -16.0377 25.5079 +95.2959 -16.481 26.2129 +95.8755 -17.075 27.1577 +96.3483 -17.6583 28.0854 +95.3011 -17.963 28.5701 +95.7547 -18.5506 29.5047 +96.1962 -19.1438 30.4481 +95.8787 -19.5899 31.1577 +96.5773 -20.2491 32.2061 +96.2417 -20.6969 32.9184 +95.8987 -21.1431 33.628 +95.6405 -21.6086 34.3684 +96.0162 -22.2218 35.3436 +95.9223 -22.7318 36.1549 +96.3649 -23.3752 37.1782 +95.978 -23.8219 37.8887 +96.2156 -24.4272 38.8514 +95.8114 -24.8732 39.5608 +96.2054 -25.5311 40.607 +95.7832 -25.9769 41.3162 +95.9746 -26.5929 42.2959 +95.6232 -27.0627 43.0431 +95.8789 -27.7089 44.071 +95.3335 -28.1274 44.7365 +95.478 -28.7527 45.731 +95.6958 -29.408 46.7732 +95.8132 -30.0404 47.7792 +93.9455 -30.0457 47.7876 +94.0462 -30.6756 48.7894 +93.6245 -31.1395 49.5272 +93.7851 -31.8019 50.5809 +93.0924 -32.1784 51.1796 +93.3118 -32.8739 52.2859 +94.1787 -33.8121 53.778 +93.6207 -34.2483 54.4717 +93.711 -34.9261 55.5497 +93.6233 -35.5455 56.5349 +93.7651 -36.2606 57.6723 +93.0062 -36.6314 58.2621 +93.6799 -37.5745 59.7621 +93.0603 -38.0082 60.4519 +93.8521 -39.0289 62.0753 +93.913 -39.7616 63.2406 +92.2472 -39.7608 63.2394 +90.9745 -39.9169 63.4877 +88.9378 -39.7221 63.1778 +88.2831 -40.1337 63.8325 +85.886 -39.7391 63.2048 +85.2312 -40.1365 63.8369 +83.5295 -40.0322 63.6711 +82.2802 -40.131 63.8282 +80.9609 -40.1849 63.914 +79.4285 -40.1198 63.8104 +77.9764 -40.0805 63.7479 +77.5303 -40.5531 64.4995 +75.9433 -40.4224 64.2916 +74.9272 -40.5838 64.5483 +73.3559 -40.4325 64.3077 +72.1396 -40.4628 64.3559 +69.8366 -39.8621 63.4005 +68.9102 -40.028 63.6643 +67.7829 -40.0697 63.7306 +67.5872 -40.662 64.6728 +65.7371 -40.2513 64.0196 +65.5293 -40.8385 64.9534 +64.343 -40.815 64.9162 +63.099 -40.7428 64.8012 +61.2958 -40.2897 64.0806 +61.1932 -40.9478 65.1273 +59.4113 -40.4755 64.376 +58.989 -40.9188 65.0812 +57.7742 -40.8087 64.906 +56.6271 -40.7332 64.786 +55.4281 -40.6071 64.5854 +54.2957 -40.5163 64.4411 +53.572 -40.7234 64.7704 +52.9023 -40.9707 65.1637 +51.5017 -40.6412 64.6397 +49.9503 -40.1687 63.8882 +48.7997 -39.9974 63.6157 +47.6585 -39.8185 63.3312 +46.5269 -39.6321 63.0347 +45.7186 -39.7106 63.1595 +44.6023 -39.5108 62.8418 +43.6483 -39.4413 62.7312 +43 -39.6426 63.0513 +42.053 -39.5628 62.9245 +40.9664 -39.3377 62.5664 +40.1768 -39.3861 62.6434 +39.2478 -39.2892 62.4894 +38.8792 -39.7533 63.2275 +37.7266 -39.4107 62.6826 +37.2575 -39.775 63.262 +36.0341 -39.3246 62.5457 +35.6894 -39.8268 63.3443 +34.2321 -39.0745 62.1478 +33.9219 -39.6195 63.0146 +33.0677 -39.5324 62.8761 +32.5778 -39.8797 63.4286 +31.8446 -39.9315 63.5109 +30.9974 -39.832 63.3527 +30.1933 -39.7771 63.2653 +29.5033 -39.8663 63.4072 +28.5619 -39.6043 62.9905 +27.9115 -39.7355 63.1991 +27.2248 -39.8136 63.3233 +26.571 -39.9386 63.5221 +25.9152 -40.0604 63.716 +25.2575 -40.1793 63.905 +24.3505 -39.8901 63.4451 +23.6956 -40.0017 63.6225 +22.805 -39.703 63.1475 +22.1532 -39.8074 63.3135 +21.4722 -39.8576 63.3934 +20.8179 -39.9559 63.5496 +19.8773 -39.4855 62.8015 +19.1791 -39.4732 62.782 +18.5796 -39.6641 63.0856 +17.9286 -39.7489 63.2205 +17.2537 -39.7788 63.2681 +16.536 -39.7015 63.1451 +15.8013 -39.5686 62.9337 +15.1719 -39.6926 63.131 +14.4252 -39.5003 62.8251 +13.941 -40.0369 63.6785 +13.1278 -39.6283 63.0287 +12.6592 -40.2653 64.0417 +11.8421 -39.7968 63.2967 +11.204 -39.9029 63.4655 +10.3823 -39.321 62.5398 +9.86778 -39.8954 63.4535 +9.10364 -39.4642 62.7677 +8.45628 -39.505 62.8326 +7.80828 -39.5428 62.8927 +7.24594 -40.0544 63.7064 +6.50182 -39.5563 62.9141 +5.82166 -39.3727 62.6222 +5.17593 -39.3983 62.6628 +4.5298 -39.4208 62.6986 +3.83623 -38.9619 61.9688 +3.23656 -39.4569 62.756 +2.57907 -39.3108 62.5237 +1.93448 -39.3213 62.5404 +1.27926 -39.0095 62.0444 +0.647509 -39.493 62.8134 +4.54329e-15 -39.4945 62.8158 +-0.644891 -39.3333 62.5595 +-1.30195 -39.7013 63.1448 +-1.94233 -39.481 62.7943 +-2.58954 -39.4704 62.7775 +-3.28018 -39.9886 63.6018 +-3.90426 -39.653 63.0679 +-4.59085 -39.9521 63.5436 +-5.20383 -39.6107 63.0006 +-5.90012 -39.9034 63.4661 +-6.45824 -39.2912 62.4924 +-7.22677 -39.9485 63.5379 +-7.74556 -39.2252 62.3875 +-8.47892 -39.6108 63.0008 +-9.1402 -39.6228 63.0198 +-9.84167 -39.7898 63.2856 +-10.4658 -39.6372 63.0429 +-11.0709 -39.4292 62.7119 +-11.7639 -39.534 62.8786 +-12.3621 -39.3203 62.5388 +-13.0062 -39.2614 62.4451 +-13.7041 -39.3565 62.5964 +-14.2916 -39.1346 62.2434 +-15.1121 -39.5362 62.8821 +-15.7597 -39.4645 62.7681 +-16.233 -38.974 61.988 +-16.9613 -39.1046 62.1957 +-17.7418 -39.3349 62.5619 +-18.2409 -38.9411 61.9356 +-19.129 -39.3702 62.6181 +-19.7738 -39.2798 62.4744 +-20.6843 -39.6994 63.1417 +-21.4997 -39.9088 63.4748 +-22.0396 -39.6033 62.9889 +-22.805 -39.703 63.1475 +-23.7257 -40.0525 63.7033 +-24.2578 -39.7382 63.2035 +-25.1305 -39.9774 63.5838 +-25.9152 -40.0604 63.716 +-26.6378 -40.0389 63.6817 +-27.3958 -40.0637 63.7211 +-28.0516 -39.9349 63.5163 +-28.8486 -40.0018 63.6228 +-29.6866 -40.1139 63.8011 +-30.2308 -39.8265 63.3438 +-31.2652 -40.1763 63.9003 +-31.8055 -39.8826 63.433 +-33.0563 -40.4655 64.3602 +-33.5964 -40.1646 63.8816 +-34.5439 -40.346 64.1702 +-34.9083 -39.8463 63.3754 +-36.1629 -40.3553 64.1849 +-36.9109 -40.2814 64.0675 +-37.8822 -40.4419 64.3226 +-38.7254 -40.4541 64.3421 +-39.2025 -40.0838 63.7531 +-40.0929 -40.1352 63.8348 +-41.1788 -40.3684 64.2058 +-42.033 -40.3618 64.1953 +-42.9393 -40.3967 64.2508 +-43.6 -40.1957 63.9311 +-45.0187 -40.6796 64.7007 +-45.2203 -40.0583 63.7126 +-46.8159 -40.6637 64.6754 +-47.6397 -40.58 64.5424 +-48.7331 -40.7164 64.7592 +-49.3988 -40.4884 64.3967 +-50.723 -40.7901 64.8765 +-51.2221 -40.4205 64.2887 +-52.5059 -40.6636 64.6753 +-53.1705 -40.4182 64.285 +-54.528 -40.6896 64.7167 +-55.3694 -40.564 64.5169 +-56.5676 -40.6904 64.7179 +-57.4132 -40.5536 64.5003 +-58.989 -40.9188 65.0812 +-59.6576 -40.6432 64.6429 +-61.0687 -40.8645 64.9948 +-61.7363 -40.5792 64.5411 +-63.2262 -40.8249 64.9318 +-63.7645 -40.4481 64.3325 +-65.5293 -40.8385 64.9534 +-66.1964 -40.5325 64.4668 +-68.0511 -40.9411 65.1166 +-69.1212 -40.8608 64.9889 +-70.4641 -40.9305 65.0999 +-71.678 -40.9131 65.0722 +-73.3786 -41.1578 65.4613 +-74.6063 -41.1217 65.4039 +-76.329 -41.3431 65.756 +-77.4282 -41.2128 65.5487 +-79.3134 -41.4858 65.9829 +-79.9906 -41.1158 65.3945 +-81.9673 -41.4022 65.85 +-83.0818 -41.2377 65.5883 +-85.0818 -41.4975 66.0016 +-86.4277 -41.4212 65.8803 +-88.4517 -41.6531 66.249 +-89.9614 -41.6247 66.204 +-92.8456 -42.2078 67.1313 +-95.6023 -42.6987 67.9121 +-98.9223 -43.4041 69.0341 +-100.563 -43.345 68.94 +-101.974 -43.1744 68.6688 +-102.599 -42.6663 67.8606 +-104.405 -42.6418 67.8216 +-104.701 -41.995 66.7929 +-107.315 -42.267 67.2254 +-108.732 -42.0485 66.8779 +-111.859 -42.4691 67.547 +-113.698 -42.3753 67.3978 +-115.707 -42.328 67.3225 +-117.806 -42.2949 67.2699 +-123.415 -43.4794 69.1539 +-126.052 -43.5712 69.2999 +-129.039 -43.7563 69.5942 +-130.939 -43.5501 69.2663 +-134.035 -43.719 69.5349 +-135.861 -43.4511 69.1088 +-137.947 -43.2507 68.79 +-138.391 -42.5284 67.6413 +-139.605 -42.0412 66.8664 +-140.027 -41.3138 65.7094 +-139.117 -40.2046 63.9453 +-138.976 -39.332 62.5574 +-139.083 -38.5376 61.2938 +-139.977 -37.9626 60.3793 +-141.579 -37.5722 59.7584 +-140.751 -36.5398 58.1164 +-140.171 -35.5868 56.6006 +-139.753 -34.6869 55.1693 +-139.77 -33.904 53.9242 +-140.229 -33.2318 52.8551 +-143.978 -33.3221 52.9986 +-157.682 -35.626 56.6631 +-187.917 -41.4308 65.8955 +-221.968 -47.7345 75.9215 +-229.441 -48.1062 76.5127 +-234.235 -47.8588 76.1193 +-241.006 -47.9621 76.2835 +-244.602 -47.3869 75.3686 +-257.058 -48.4521 77.0629 +-262.381 -48.0881 76.4839 +-271.41 -48.3369 76.8796 +-277.994 -48.0777 76.4674 +-292.124 -49.0254 77.9747 +-13.7708 -2.24094 3.5642 +-15.7246 -2.47924 3.94322 +-15.9569 -2.43545 3.87357 +-16.189 -2.38968 3.80078 +-15.648 -2.23174 3.54958 +-16.8458 -2.3189 3.68819 +-15.5247 -2.06029 3.27688 +-16.3358 -2.0875 3.32016 +-16.4669 -2.02352 3.2184 +-16.2065 -1.9124 3.04166 +-16.8241 -1.90344 3.02742 +-15.9728 -1.72972 2.75111 +-14.7244 -1.52343 2.42301 +-14.2572 -1.40648 2.237 +-13.4919 -1.26626 2.01398 +-15.1888 -1.35289 2.15176 +-3235.96 -272.803 433.891 +-3240.31 -257.762 409.969 +-3244.42 -242.701 386.015 +-3248.27 -227.622 362.032 +-3251.88 -212.526 338.021 +-13.0158 -0.789336 1.25544 +-12.0337 -0.673211 1.07074 +-14.0351 -0.719326 1.14409 +-13.7475 -0.640188 1.01822 +-14.2559 -0.597192 0.949831 +-14.8637 -0.553226 0.879904 +-14.473 -0.471168 0.749391 +-14.1805 -0.395568 0.629149 +-14.5861 -0.338973 0.539135 +-13.6917 -0.254491 0.404767 +-14.8949 -0.207605 0.330195 +-14.2978 -0.132838 0.211279 +-13.8995 -0.0645639 0.102689 +83.4 0 0 +91.2965 -0.417974 0.678293 +78.2881 -0.71689 1.16338 +56.9805 -0.782766 1.27028 +50.2694 -0.920922 1.49448 +51.451 -1.17848 1.91246 +50.9301 -1.40025 2.27234 +49.8069 -1.59813 2.59346 +35.613 -1.30644 2.12011 +37.2847 -1.5394 2.49815 +31.2805 -1.4357 2.32986 +46.9827 -2.37329 3.85141 +51.4168 -2.83506 4.60076 +50.076 -2.99313 4.85728 +55.3841 -3.56751 5.78939 +64.5431 -4.45775 7.23408 +94.6696 -6.97989 11.327 +95.6378 -7.49836 12.1684 +94.8181 -7.87844 12.7852 +95.5711 -8.39014 13.6156 +95.2309 -8.80915 14.2956 +95.0807 -9.24478 15.0025 +94.9233 -9.67969 15.7083 +94.6607 -10.1034 16.3959 +95.4672 -10.6455 17.2756 +95.1889 -11.0708 17.9658 +95.0985 -11.5179 18.6914 +94.9033 -11.9529 19.3972 +95.7682 -12.5265 20.3281 +95.5562 -12.9644 21.0388 +95.1437 -13.3743 21.7039 +95.7849 -13.9355 22.6146 +95.5494 -14.3735 23.3254 +95.3067 -14.8103 24.0343 +95.8217 -15.3688 24.9406 +95.5624 -15.8069 25.6515 +96.1518 -16.3897 26.5973 +95.8755 -16.8292 27.3106 +95.5919 -17.2675 28.0219 +96.1494 -17.8621 28.9868 +95.7547 -18.2837 29.6709 +96.1962 -18.8683 30.6196 +95.7854 -19.2892 31.3027 +96.4843 -19.9384 32.3563 +96.2417 -20.399 33.1038 +95.8063 -20.8188 33.7849 +96.4689 -21.482 34.8613 +96.1996 -21.9438 35.6106 +95.8309 -22.3834 36.324 +95.5459 -22.843 37.0698 +95.978 -23.4791 38.1021 +95.5838 -23.9176 38.8136 +95.8114 -24.5152 39.7836 +95.4895 -24.9763 40.5318 +95.6941 -25.5793 41.5103 +96.152 -26.2586 42.6127 +95.7115 -26.6978 43.3254 +95.1759 -27.1099 43.9942 +95.421 -27.748 45.0298 +95.6521 -28.3905 46.0724 +95.7824 -29.0109 47.0792 +95.9855 -29.6614 48.1347 +94.0313 -29.6403 48.1006 +93.8757 -30.1793 48.9753 +93.7941 -30.7469 49.8964 +93.7851 -31.3442 50.8658 +93.9311 -32.001 51.9316 +93.4786 -32.4587 52.6744 +93.4325 -33.0615 53.6525 +93.5383 -33.7257 54.7303 +92.9738 -34.1526 55.4232 +93.7047 -35.0644 56.9028 +93.7651 -35.7387 57.9971 +94.0513 -36.5099 59.2486 +93.6001 -37.0022 60.0475 +93.7744 -37.7486 61.2589 +93.6157 -38.3703 62.2677 +93.4434 -38.9933 63.2788 +92.7135 -39.3866 63.917 +92.0548 -39.8096 64.6034 +90.3166 -39.7574 64.5187 +88.9675 -39.8627 64.6896 +87.2444 -39.7866 64.5662 +85.9052 -39.8717 64.7042 +84.5699 -39.9475 64.8273 +84.1971 -40.4749 65.6831 +81.8385 -40.0359 64.9707 +81.1694 -40.4091 65.5763 +78.9835 -40.0138 64.9349 +78.5289 -40.4842 65.6982 +77.1453 -40.4712 65.6771 +76.8197 -41.0099 66.5513 +74.259 -40.3412 65.466 +74.2046 -41.0221 66.5711 +70.5186 -39.6721 64.3802 +70.0587 -40.1094 65.09 +67.9837 -39.6099 64.2793 +68.5812 -40.6661 65.9934 +67.4429 -40.7014 66.0506 +67.1529 -41.248 66.9377 +65.1144 -40.7099 66.0644 +65.0708 -41.4113 67.2026 +62.7432 -40.6476 65.9633 +62.5627 -41.2617 66.9599 +60.2117 -40.4304 65.6108 +60.2065 -41.1623 66.7986 +58.3761 -40.6403 65.9515 +57.7573 -40.9482 66.4511 +55.9572 -40.4046 65.569 +55.8056 -41.0437 66.6061 +54.1456 -40.5671 65.8326 +53.9219 -41.1592 66.7936 +51.7813 -40.2737 65.3566 +50.9438 -40.378 65.5259 +48.963 -39.5538 64.1883 +48.7331 -40.1304 65.124 +47.0038 -39.4622 64.0396 +46.5024 -39.81 64.6041 +45.0658 -39.3469 63.8525 +45.0187 -40.0941 65.0651 +43.15 -39.2083 63.6276 +42.9393 -39.8153 64.6126 +41.8391 -39.5974 64.2591 +41.0357 -39.6491 64.343 +39.6703 -39.1407 63.5179 +39.2025 -39.5069 64.1122 +38.3622 -39.4979 64.0977 +37.8822 -39.8598 64.6849 +36.6478 -39.4188 63.9692 +36.1629 -39.7745 64.5464 +35.2886 -39.7008 64.4268 +34.461 -39.6699 64.3767 +33.2711 -39.2031 63.6191 +32.7772 -39.5463 64.1762 +32.04 -39.5983 64.2605 +31.38 -39.7435 64.4961 +30.493 -39.5938 64.2532 +30.1997 -40.22 65.2694 +29.0278 -39.671 64.3785 +28.5069 -39.999 64.9107 +27.3958 -39.4871 64.08 +27.0384 -40.0561 65.0034 +26.078 -39.7319 64.4773 +25.4161 -39.8498 64.6686 +24.6287 -39.765 64.5311 +24.2068 -40.2765 65.3611 +23.0389 -39.5329 64.1545 +22.6076 -40.0393 64.9763 +21.7202 -39.7379 64.487 +21.0584 -39.8358 64.6459 +20.1879 -39.5253 64.142 +19.755 -40.0733 65.0313 +18.8457 -39.6532 64.3496 +18.2321 -39.84 64.6527 +17.2762 -39.2574 63.7073 +16.6442 -39.3863 63.9164 +15.926 -39.307 63.7878 +15.5108 -39.9953 64.9047 +14.4633 -39.0348 63.3461 +14.1961 -40.1828 65.2091 +13.3015 -39.5746 64.2221 +12.6426 -39.634 64.3185 +11.9829 -39.6904 64.4099 +11.3222 -39.7437 64.4965 +10.6607 -39.794 64.5782 +9.99831 -39.8414 64.655 +9.323 -39.8335 64.6423 +8.61476 -39.6662 64.3707 +7.9128 -39.4954 64.0936 +7.34178 -40.0001 64.9126 +6.58897 -39.5096 64.1166 +5.97074 -39.7998 64.5874 +5.24569 -39.3546 63.865 +4.64579 -39.8484 64.6664 +3.91996 -39.2395 63.6782 +3.31944 -39.8848 64.7255 +2.57907 -38.7451 62.8759 +1.96065 -39.2798 63.7437 +1.31242 -39.4446 64.0112 +0.656235 -39.4492 64.0185 +4.60452e-15 -39.4507 64.021 +-0.659726 -39.659 64.359 +-1.28973 -38.7628 62.9046 +-1.98421 -39.7518 64.5096 +-2.62444 -39.4267 63.982 +-3.30635 -39.7276 64.4704 +-3.93566 -39.3966 63.9332 +-4.64579 -39.8484 64.6664 +-5.30847 -39.8256 64.6293 +-6.02566 -40.1659 65.1816 +-6.53668 -39.196 63.6077 +-7.22677 -39.3735 63.8957 +-7.92326 -39.5476 64.1783 +-8.53552 -39.3013 63.7786 +-9.15239 -39.1045 63.4592 +-9.91999 -39.5293 64.1485 +-10.5493 -39.3784 63.9037 +-11.2926 -39.64 64.3281 +-11.8577 -39.2759 63.7373 +-12.6096 -39.5305 64.1505 +-13.2146 -39.3163 63.8029 +-13.9957 -39.6154 64.2883 +-14.4633 -39.0348 63.3461 +-15.471 -39.8925 64.738 +-15.8845 -39.2044 63.6213 +-16.7957 -39.7448 64.4982 +-17.1863 -39.053 63.3756 +-17.9519 -39.2278 63.6593 +-18.4828 -38.8897 63.1105 +-19.6548 -39.8702 64.7017 +-19.9032 -38.9679 63.2375 +-20.8713 -39.4819 64.0716 +-21.6375 -39.5866 64.2415 +-22.6644 -40.1399 65.1395 +-22.8342 -39.1818 63.5846 +-24.267 -40.3766 65.5236 +-24.6596 -39.8149 64.6121 +-25.4796 -39.9493 64.8301 +-25.9803 -39.5831 64.2358 +-27.0384 -40.0561 65.0034 +-27.601 -39.7829 64.56 +-28.6119 -40.1464 65.1499 +-29.2787 -40.0138 64.9349 +-30.273 -40.3176 65.4278 +-30.9425 -40.1775 65.2004 +-32.1454 -40.7128 66.0692 +-32.2744 -39.888 64.7307 +-33.4949 -40.4123 65.5815 +-34.0845 -40.1616 65.1746 +-35.2075 -40.5291 65.7711 +-35.669 -40.1287 65.1212 +-36.8517 -40.5321 65.7758 +-37.3931 -40.2203 65.27 +-38.2838 -40.2824 65.3707 +-39.134 -40.2926 65.3872 +-40.126 -40.4376 65.6225 +-40.5154 -39.9745 64.8709 +-42.0377 -40.6173 65.9142 +-42.5663 -40.2857 65.376 +-43.5302 -40.3632 65.5018 +-44.5 -40.435 65.6183 +-45.4754 -40.501 65.7254 +-46.1474 -40.2912 65.385 +-47.3906 -40.5705 65.8382 +-48.2227 -40.4854 65.7002 +-49.7002 -40.9268 66.4164 +-49.8889 -40.3017 65.402 +-51.3301 -40.6842 66.0228 +-51.8372 -40.3172 65.4272 +-53.5254 -40.8566 66.3025 +-54.203 -40.61 65.9023 +-55.5733 -40.8728 66.3289 +-55.8984 -40.3622 65.5002 +-57.9952 -41.1168 66.7248 +-58.3159 -40.5984 65.8835 +-59.8412 -40.9126 66.3933 +-60.027 -40.3063 65.4095 +-61.7535 -40.7279 66.0937 +-62.6174 -40.566 65.8309 +-63.9259 -40.6826 66.0202 +-64.9215 -40.5893 65.8688 +-66.6983 -40.9687 66.4845 +-67.3773 -40.6618 65.9865 +-69.1113 -40.9805 66.5036 +-69.7903 -40.6625 65.9876 +-72.0179 -41.2311 66.9103 +-72.4964 -40.7847 66.1858 +-74.3423 -41.0982 66.6945 +-75.6483 -41.0959 66.6909 +-77.7308 -41.4964 67.3408 +-78.4181 -41.1389 66.7607 +-80.3833 -41.4403 67.2497 +-81.0696 -41.0707 66.6499 +-83.3455 -41.4924 67.3343 +-83.74 -40.9662 66.4803 +-86.8513 -41.7508 67.7537 +-87.914 -41.5272 67.3907 +-89.4253 -41.5055 67.3555 +-91.2444 -41.6108 67.5264 +-94.5185 -42.3499 68.7258 +-97.5175 -42.9272 69.6627 +-100.543 -43.4802 70.5601 +-101.728 -43.2163 70.1319 +-104.635 -43.6634 70.8574 +-104.175 -42.6982 69.2911 +-106.785 -42.9862 69.7584 +-107.257 -42.401 68.8087 +-109.726 -42.5948 69.1233 +-110.916 -42.2759 68.6058 +-113.976 -42.65 69.2128 +-115.746 -42.5178 68.9983 +-119.581 -43.1153 69.968 +-121.288 -42.9183 69.6483 +-126.5 -43.925 71.2819 +-127.813 -43.5442 70.664 +-131.569 -43.9721 71.3584 +-132.55 -43.4516 70.5136 +-136.252 -43.8025 71.0831 +-136.204 -42.9339 69.6735 +-138.895 -42.9211 69.6528 +-137.958 -41.7852 67.8094 +-140.214 -41.617 67.5365 +-139.852 -40.6684 65.997 +-139.117 -39.626 64.3055 +-139.329 -38.8645 63.0697 +-140.414 -38.3463 62.2287 +-140.423 -37.5353 60.9126 +-141.042 -36.891 59.8671 +-141.111 -36.1059 58.5931 +-139.901 -35.0068 56.8094 +-140.206 -34.2985 55.6599 +-140.225 -33.5248 54.4044 +-140.686 -32.8602 53.3259 +-154.525 -35.2481 57.201 +-167.44 -37.2861 60.5083 +-220.345 -47.8812 77.702 +-223.915 -47.4602 77.0188 +-233.535 -48.2598 78.3165 +-237.316 -47.7905 77.5548 +-247.094 -48.4659 78.651 +-249.77 -47.6918 77.3947 +-262.62 -48.788 79.1737 +-266.731 -48.1817 78.1897 +-277.669 -48.7398 79.0955 +-282.654 -48.1801 78.1872 +-296.797 -49.0928 79.6683 +-10.2325 -1.64118 2.66332 +-15.9164 -2.47335 4.01378 +-15.0918 -2.27026 3.68419 +-16.0926 -2.34127 3.79944 +-16.5173 -2.32182 3.76788 +-16.6521 -2.25925 3.66634 +-16.2039 -2.11948 3.43951 +-16.2386 -2.04521 3.31899 +-16.3694 -1.9826 3.21738 +-16.597 -1.93029 3.13249 +-16.2373 -1.8106 2.93826 +-16.0708 -1.71528 2.78358 +-16.5895 -1.69169 2.7453 +-14.4538 -1.40536 2.28063 +-15.363 -1.42112 2.30621 +-15.3861 -1.35073 2.19199 +-3235.96 -268.876 436.335 +-3240.31 -254.052 412.278 +-3244.42 -239.208 388.189 +-3248.27 -224.346 364.071 +-3251.88 -209.467 339.925 +-13.8106 -0.825485 1.3396 +-13.3266 -0.734811 1.19246 +-13.7365 -0.693886 1.12605 +-14.3452 -0.658407 1.06847 +-12.8602 -0.530968 0.861661 +-14.0657 -0.515989 0.837352 +-14.7724 -0.473995 0.769203 +-13.6812 -0.376147 0.610415 +-14.5861 -0.334094 0.542172 +-13.3918 -0.245335 0.398133 +-13.2954 -0.182645 0.296397 +-13.298 -0.121771 0.197611 +-14.7994 -0.067755 0.109953 +89.3 0 0 +91.5965 -0.41319 0.684278 +71.6891 -0.646826 1.0712 +60.1794 -0.814568 1.34899 +54.7666 -0.988579 1.63717 +57.8449 -1.30548 2.16198 +58.5197 -1.5853 2.62539 +53.5998 -1.69458 2.80637 +41.9974 -1.51803 2.51398 +41.073 -1.67091 2.76716 +36.8592 -1.6669 2.76053 +48.3763 -2.4078 3.98753 +47.6376 -2.58811 4.28612 +50.2747 -2.96088 4.90347 +60.1483 -3.8175 6.32211 +90.0232 -6.12628 10.1456 +95.6599 -6.94935 11.5087 +94.7477 -7.31945 12.1216 +94.8181 -7.76275 12.8558 +95.3738 -8.24989 13.6625 +95.2309 -8.6798 14.3745 +95.0807 -9.10904 15.0853 +95.8068 -9.62636 15.9421 +94.7587 -9.9654 16.5035 +94.4891 -10.3817 17.193 +95.2865 -10.9194 18.0835 +95.0985 -11.3488 18.7946 +95.0978 -11.8015 19.5443 +95.7682 -12.3425 20.4403 +95.3625 -12.7482 21.112 +95.3369 -13.2046 21.8679 +94.9176 -13.6065 22.5336 +95.5494 -14.1624 23.4542 +95.3067 -14.5929 24.167 +95.0567 -15.0222 24.878 +95.5624 -15.5748 25.7931 +96.2469 -16.165 26.7706 +95.9704 -16.5985 27.4885 +96.4429 -17.1654 28.4274 +96.1494 -17.5998 29.1468 +95.7547 -18.0152 29.8347 +96.1962 -18.5912 30.7886 +95.8787 -19.0244 31.5061 +95.5539 -19.4562 32.2211 +96.2417 -20.0995 33.2865 +95.9911 -20.5526 34.0369 +96.4689 -21.1666 35.0537 +96.1079 -21.601 35.773 +95.8309 -22.0547 36.5245 +96.2739 -22.679 37.5584 +95.8874 -23.1125 38.2762 +95.5838 -23.5664 39.0279 +95.8114 -24.1553 40.0032 +95.4 -24.5865 40.7174 +95.6941 -25.2037 41.7394 +96.0633 -25.8492 42.8084 +95.6232 -26.2815 43.5244 +95.9668 -26.9338 44.6046 +95.421 -27.3406 45.2784 +95.7391 -27.9991 46.3689 +95.9556 -28.6366 47.4247 +95.2962 -29.0159 48.0528 +95.7456 -29.7376 49.2479 +94.9841 -30.0872 49.827 +94.3029 -30.4598 50.444 +93.6165 -30.8285 51.0546 +93.9311 -31.5311 52.2182 +94.0623 -32.1818 53.2959 +94.0958 -32.8073 54.3316 +93.6207 -33.2597 55.0809 +93.5472 -33.8586 56.0728 +93.7047 -34.5495 57.2169 +93.037 -34.9405 57.8644 +94.0513 -35.9738 59.5756 +93.9994 -36.6144 60.6365 +94.0124 -37.2887 61.7533 +93.4581 -37.7432 62.506 +93.3652 -38.3886 63.5748 +93.8015 -39.2637 65.0241 +93.2894 -39.7511 65.8312 +91.6189 -39.7385 65.8103 +90.6404 -40.0159 66.2698 +88.301 -39.6772 65.7088 +87.9274 -40.211 66.5928 +85.9075 -39.9835 66.2161 +85.5242 -40.5092 67.0867 +83.0818 -40.0474 66.3218 +83.0554 -40.7408 67.4703 +80.4941 -40.1804 66.5421 +80.2407 -40.7593 67.5009 +78.701 -40.6811 67.3713 +78.0112 -41.0346 67.9567 +76.0651 -40.7156 67.4284 +76.2009 -41.5071 68.7392 +73.2466 -40.6017 67.2398 +72.8286 -41.083 68.0369 +69.7903 -40.0655 66.3518 +69.9064 -40.8433 67.64 +68.427 -40.6889 67.3843 +68.3219 -41.3498 68.4788 +66.6571 -41.0625 68.0029 +65.3252 -40.9627 67.8377 +64.0648 -40.8943 67.7244 +63.621 -41.3436 68.4684 +61.3814 -40.6106 67.2547 +61.2414 -41.255 68.3218 +59.4593 -40.7866 67.5461 +58.828 -41.0948 68.0565 +57.603 -40.9823 67.8701 +56.8508 -41.1985 68.2281 +55.6369 -41.0722 68.0191 +54.9414 -41.3216 68.4321 +53.1792 -40.7537 67.4916 +52.5996 -41.0782 68.029 +50.3791 -40.1001 66.4091 +49.8077 -40.413 66.9274 +48.3816 -40.0224 66.2806 +47.5474 -40.107 66.4205 +46.3019 -39.8325 65.966 +45.4754 -39.9062 66.0881 +44.2 -39.5726 65.5356 +43.5302 -39.7705 65.8633 +42.5663 -39.6941 65.7368 +41.8945 -39.8846 66.0523 +40.5154 -39.3875 65.229 +40.2645 -39.9814 66.2125 +38.7708 -39.3325 65.1379 +38.5069 -39.9222 66.1145 +37.4369 -39.6762 65.7072 +36.7656 -39.8436 65.9844 +35.8803 -39.7737 65.8686 +34.6684 -39.3226 65.1215 +34.1659 -39.6663 65.6908 +33.3354 -39.6293 65.6295 +32.1962 -39.2072 64.9304 +31.801 -39.6852 65.7221 +30.9425 -39.5875 65.5603 +30.273 -39.7256 65.7889 +29.7087 -40.0054 66.2523 +28.4719 -39.3632 65.1888 +28.0457 -39.8302 65.9621 +27.1385 -39.6141 65.6043 +26.5012 -39.7838 65.8854 +25.7017 -39.7058 65.7562 +24.9068 -39.6236 65.62 +24.3572 -39.9316 66.1302 +23.6821 -40.04 66.3096 +23.0052 -40.1453 66.484 +21.9407 -39.5519 65.5012 +21.5127 -40.0977 66.4051 +20.3949 -39.3444 65.1576 +19.9302 -39.8352 65.9705 +19.2812 -39.9738 66.1999 +18.5823 -40.0089 66.2581 +17.7036 -39.6379 65.6438 +17.2286 -40.1705 66.5257 +16.3627 -39.7916 65.8983 +15.7501 -40.0159 66.2697 +14.9403 -39.7302 65.7966 +14.3784 -40.101 66.4107 +13.5098 -39.6044 65.5882 +12.9232 -39.9188 66.1088 +12.108 -39.516 65.4419 +11.5735 -40.0292 66.2918 +10.772 -39.6192 65.6128 +10.2724 -40.3325 66.7941 +9.43269 -39.7104 65.7638 +8.86381 -40.2137 66.5972 +8.13231 -39.9951 66.2352 +7.41846 -39.8244 65.9526 +6.74585 -39.8564 66.0055 +6.02566 -39.5761 65.5414 +5.3573 -39.6017 65.5838 +4.73737 -40.0372 66.305 +4.0194 -39.644 65.6539 +3.34997 -39.6607 65.6814 +2.64538 -39.1577 64.8484 +2.0261 -39.9949 66.2349 +1.32289 -39.1756 64.8781 +0.670198 -39.697 65.7415 +4.64126e-15 -39.1815 64.888 +-0.675434 -40.0071 66.2551 +-1.34034 -39.6924 65.734 +-2.01039 -39.6849 65.7215 +-2.68028 -39.6743 65.7039 +-3.34997 -39.6607 65.6814 +-4.07174 -40.1603 66.5088 +-4.68853 -39.6244 65.6214 +-5.3573 -39.6017 65.5838 +-6.08843 -39.9883 66.2241 +-6.62384 -39.1354 64.8116 +-7.43763 -39.9273 66.123 +-8.03824 -39.5324 65.469 +-8.78457 -39.8541 66.0018 +-9.35957 -39.4025 65.2539 +-10.1941 -40.025 66.2848 +-10.6885 -39.3121 65.1042 +-11.47 -39.6714 65.6991 +-12.1393 -39.6181 65.611 +-12.8077 -39.5619 65.5178 +-13.3362 -39.0953 64.7452 +-14.3055 -39.8977 66.074 +-14.6732 -39.0198 64.6201 +-15.5706 -39.56 65.5147 +-16.2379 -39.4882 65.3958 +-17.0987 -39.8677 66.0243 +-17.5012 -39.1846 64.8931 +-18.4422 -39.7073 65.7587 +-19.1118 -39.6227 65.6185 +-19.78 -39.535 65.4732 +-20.5502 -39.6439 65.6537 +-21.3523 -39.7988 65.9102 +-22.0234 -39.7009 65.7481 +-22.6928 -39.6001 65.5811 +-23.4774 -39.694 65.7365 +-24.3271 -39.8823 66.0485 +-24.9377 -39.6728 65.7015 +-25.9555 -40.098 66.4056 +-26.4687 -39.735 65.8045 +-27.6058 -40.2963 66.734 +-28.1141 -39.9273 66.123 +-29.2423 -40.4284 66.9528 +-29.7804 -40.1019 66.4121 +-30.6395 -40.2065 66.5854 +-31.1298 -39.8272 65.9572 +-32.3368 -40.3538 66.8293 +-32.8214 -39.9685 66.1912 +-33.8538 -40.2455 66.65 +-34.3692 -39.9024 66.0818 +-35.788 -40.5925 67.2247 +-36.5565 -40.5232 67.1099 +-37.4975 -40.6367 67.2979 +-37.8314 -40.0943 66.3996 +-39.1762 -40.6161 67.2636 +-39.7696 -40.3457 66.8159 +-41.0956 -40.8067 67.5793 +-41.3604 -40.209 66.5895 +-42.7534 -40.7023 67.4064 +-43.4389 -40.5079 67.0845 +-44.6628 -40.8053 67.577 +-44.95 -40.2441 66.6477 +-46.795 -41.0642 68.0058 +-47.023 -40.4528 66.9933 +-48.7491 -41.1206 68.0992 +-49.2825 -40.7677 67.5147 +-50.2912 -40.8054 67.5771 +-50.9782 -40.577 67.1989 +-52.4892 -40.992 67.8862 +-53.347 -40.8823 67.7045 +-54.375 -40.8957 67.7267 +-54.8913 -40.5218 67.1076 +-56.7927 -41.1564 68.1585 +-56.7801 -40.3968 66.9005 +-58.4711 -40.8455 67.6436 +-59.339 -40.7041 67.4094 +-61.3023 -41.2961 68.3898 +-61.6893 -40.8143 67.5919 +-63.0607 -40.9794 67.8654 +-63.4984 -40.5327 67.1256 +-65.4524 -41.0425 67.9699 +-66.4642 -40.9437 67.8062 +-68.0622 -41.1926 68.2184 +-68.427 -40.6889 67.3843 +-70.6353 -41.2692 68.3453 +-71.5301 -41.0642 68.0058 +-73.5718 -41.5022 68.7312 +-73.8604 -40.9419 67.8033 +-76.545 -41.6945 69.0497 +-77.246 -41.3477 68.4753 +-79.2027 -41.6613 68.9946 +-79.9031 -41.3025 68.4004 +-81.9525 -41.6288 68.9409 +-83.0118 -41.4371 68.6234 +-84.6512 -41.5236 68.7667 +-85.7147 -41.3165 68.4236 +-88.9156 -42.1156 69.747 +-89.4003 -41.6091 68.9083 +-91.5973 -41.8893 69.3722 +-92.5274 -41.5763 68.8538 +-96.4195 -42.5673 70.495 +-99.356 -43.0943 71.3678 +-102.703 -43.7624 72.4742 +-102.972 -43.1023 71.381 +-106.043 -43.6015 72.2077 +-106.697 -43.0897 71.3601 +-108.927 -43.2046 71.5504 +-109.653 -42.7116 70.734 +-112.54 -43.0455 71.287 +-113.02 -42.4451 70.2927 +-115.442 -42.564 70.4896 +-116.893 -42.3085 70.0665 +-123.207 -43.7705 72.4876 +-124.356 -43.3576 71.8038 +-128.585 -43.9933 72.8566 +-129.826 -43.5805 72.173 +-133.172 -43.8542 72.6262 +-134.161 -43.334 71.7647 +-137.19 -43.4564 71.9674 +-137.575 -42.7294 70.7635 +-138.55 -42.1859 69.8634 +-139.17 -41.5335 68.7829 +-139.779 -40.8787 67.6985 +-139.239 -39.8958 66.0707 +-139.293 -39.0935 64.7422 +-139.153 -38.2453 63.3374 +-140.414 -37.7832 62.5722 +-141.225 -37.1953 61.5986 +-140.863 -36.3031 60.1211 +-140.751 -35.4851 58.7663 +-139.81 -34.4706 57.0862 +-139.934 -33.7294 55.8587 +-140.771 -33.1611 54.9176 +-145.254 -33.4289 55.3612 +-167.822 -37.7193 62.4663 +-183.365 -40.2327 66.6288 +-225.149 -48.2067 79.8344 +-229.2 -47.867 79.2718 +-237.256 -48.309 80.0038 +-240.397 -47.7 78.9953 +-251.871 -48.6775 80.6141 +-256.818 -48.3174 80.0177 +-266.862 -48.8481 80.8965 +-270.891 -48.2146 79.8475 +-282.126 -48.795 80.8087 +-287.219 -48.2394 79.8885 +-301.756 -49.1802 81.4466 +-309.173 -48.86 80.9163 +-13.9029 -2.12874 3.52537 +-15.8608 -2.3509 3.89329 +-14.4545 -2.07206 3.43151 +-16.3241 -2.26097 3.74436 +-16.8458 -2.25196 3.72944 +-17.1742 -2.21341 3.66559 +-15.7524 -1.95484 3.23739 +-15.7848 -1.88372 3.1196 +-16.1089 -1.846 3.05714 +-17.0198 -1.86999 3.09687 +-16.7567 -1.76223 2.91841 +-15.2152 -1.52877 2.53178 +-15.8304 -1.5166 2.51162 +-15.9539 -1.45411 2.40813 +-14.4984 -1.25412 2.07693 +-13.6301 -1.1159 1.84802 +-14.6374 -1.13078 1.87266 +-13.6657 -0.992766 1.6441 +-12.5913 -0.856866 1.41904 +-15.583 -0.989024 1.63791 +-14.2081 -0.836774 1.38577 +-14.0228 -0.761843 1.26168 +-14.6323 -0.728286 1.2061 +-14.2456 -0.644237 1.06691 +-13.7575 -0.559676 0.926871 +-13.9659 -0.504807 0.836003 +-14.473 -0.457568 0.757771 +-13.7811 -0.373329 0.618264 +-13.9867 -0.31566 0.52276 +-13.8915 -0.250753 0.415268 +-13.6953 -0.185375 0.306997 +-13.298 -0.119983 0.198702 +-13.8995 -0.0627003 0.103837 +91.3 0 0 +91.1965 -0.405221 0.684974 +70.6892 -0.628249 1.06197 +66.977 -0.892998 1.5095 +59.064 -1.05018 1.77519 +66.7364 -1.48358 2.50781 +66.7085 -1.78005 3.00894 +62.5831 -1.94894 3.29442 +48.7809 -1.7368 2.93583 +46.3567 -1.8576 3.14003 +41.6409 -1.85493 3.13552 +52.8555 -2.59133 4.38031 +49.4277 -2.64513 4.47124 +61.8002 -3.58513 6.06019 +66.2028 -4.13882 6.99613 +94.8813 -6.36014 10.751 +95.7589 -6.8523 11.5829 +95.8356 -7.29257 12.3271 +95.707 -7.71813 13.0465 +95.3738 -8.12627 13.7364 +95.4279 -8.56741 14.4821 +95.0807 -8.97255 15.1669 +94.9233 -9.39464 15.8804 +94.6607 -9.80589 16.5756 +95.4672 -10.332 17.4649 +95.2865 -10.7558 18.1812 +95.0985 -11.1787 18.8962 +95.0978 -11.6247 19.65 +95.7682 -12.1576 20.5508 +95.3625 -12.5571 21.2262 +96.013 -13.099 22.1421 +95.7849 -13.5251 22.8624 +95.5494 -13.9502 23.581 +95.3067 -14.3742 24.2977 +95.9174 -14.9311 25.2391 +95.5624 -15.3414 25.9326 +96.1518 -15.907 26.8887 +95.8755 -16.3336 27.6099 +95.5919 -16.759 28.3289 +95.3011 -17.1831 29.0458 +95.6607 -17.7278 29.9666 +96.1962 -18.3127 30.9551 +95.7854 -18.7212 31.6457 +96.5773 -19.3699 32.7423 +96.2417 -19.7983 33.4665 +95.8987 -20.2252 34.188 +95.5484 -20.6505 34.907 +96.1996 -21.2976 36.0008 +95.8309 -21.7242 36.722 +96.3649 -22.3603 37.7972 +95.978 -22.7877 38.5196 +95.5838 -23.2132 39.2389 +95.8114 -23.7933 40.2195 +95.3105 -24.1954 40.8992 +95.6941 -24.826 41.9651 +96.152 -25.4853 43.0796 +96.4179 -26.1028 44.1234 +95.9668 -26.5302 44.8459 +95.421 -26.9309 45.5232 +95.8262 -27.6046 46.662 +95.2628 -28.0039 47.3369 +96.0717 -28.8137 48.7058 +95.4027 -29.187 49.3368 +95.4957 -29.796 50.3663 +94.727 -30.1383 50.9448 +93.8695 -30.4486 51.4693 +93.344 -30.8645 52.1724 +93.3118 -31.4467 53.1565 +93.4325 -32.0879 54.2403 +93.5383 -32.7325 55.33 +93.6291 -33.3805 56.4254 +93.7047 -34.0318 57.5263 +93.7651 -34.6863 58.6326 +93.8905 -35.3742 59.7954 +93.2806 -35.79 60.4983 +93.7744 -36.637 61.9301 +93.6157 -37.2404 62.95 +93.2869 -37.7817 63.865 +93.7238 -38.6433 65.3215 +93.3666 -39.1879 66.242 +93.0744 -39.7649 67.2173 +92.1612 -40.0777 67.7461 +89.6595 -39.684 67.0805 +88.9759 -40.0808 67.7514 +87.2452 -39.9976 67.6108 +86.5564 -40.3838 68.2635 +84.837 -40.2807 68.0892 +83.7082 -40.4458 68.3683 +81.717 -40.1796 67.9183 +81.2392 -40.6482 68.7105 +79.7616 -40.6115 68.6485 +79.2728 -41.0734 69.4291 +76.9681 -40.5816 68.5979 +76.8892 -41.2545 69.7353 +74.406 -40.6264 68.6735 +73.9771 -41.1056 69.4836 +71.4631 -40.4111 68.3096 +70.4365 -40.5364 68.5215 +69.0174 -40.4251 68.3333 +68.7116 -40.9626 69.2418 +67.8141 -41.1493 69.5574 +67.1063 -41.449 70.0641 +65.5123 -41.1916 69.6291 +64.866 -41.521 70.1858 +63.0437 -41.0854 69.4495 +62.3372 -41.364 69.9204 +60.5426 -40.9074 69.1486 +59.8987 -41.2158 69.6699 +58.661 -41.1097 69.4905 +57.9542 -41.3687 69.9284 +56.1531 -40.8322 69.0215 +55.9609 -41.4578 70.079 +54.1858 -40.9028 69.1409 +53.5931 -41.227 69.6888 +51.4684 -40.3533 68.212 +50.4524 -40.3228 68.1604 +49.2825 -40.1568 67.8798 +48.4356 -40.244 68.0272 +47.332 -40.1085 67.7982 +46.4905 -40.1857 67.9286 +44.95 -39.6411 67.0081 +44.2689 -39.8393 67.3432 +43.1481 -39.6337 66.9957 +42.7534 -40.0924 67.771 +41.0788 -39.3368 66.4936 +40.5415 -39.6533 67.0287 +39.4518 -39.4236 66.6405 +38.6407 -39.4607 66.7031 +37.8314 -39.4936 66.7587 +37.1531 -39.6602 67.0403 +36.0916 -39.4084 66.6148 +35.788 -39.9843 67.5882 +34.5319 -39.4906 66.7536 +34.0532 -39.876 67.4051 +33.0168 -39.604 66.9453 +32.5664 -40.0314 67.6678 +31.3171 -39.4664 66.7128 +30.9694 -40.0304 67.6662 +29.7804 -39.501 66.7713 +29.4174 -40.0611 67.718 +28.4219 -39.7597 67.2085 +27.8729 -40.0764 67.7439 +26.8919 -39.7654 67.2182 +26.2094 -39.8834 67.4176 +25.463 -39.9015 67.4483 +24.8383 -40.1102 67.8011 +23.7991 -39.6348 66.9974 +23.2893 -40.0319 67.6687 +22.4369 -39.8402 67.3447 +21.7532 -39.9384 67.5106 +20.8349 -39.5909 66.9232 +20.2808 -39.9285 67.4938 +19.4747 -39.77 67.226 +18.9091 -40.1026 67.7882 +18.0186 -39.7385 67.1728 +17.3368 -39.8171 67.3056 +16.5498 -39.6436 67.0123 +16.0691 -40.2145 67.9774 +15.1121 -39.5847 66.9128 +14.5971 -40.1009 67.7853 +13.8224 -39.9135 67.4686 +13.0718 -39.7725 67.2303 +12.3896 -39.8291 67.3259 +11.6622 -39.7316 67.1611 +11.0225 -39.9331 67.5017 +10.3377 -39.9806 67.5819 +9.54237 -39.5702 66.8882 +8.96569 -40.0664 67.727 +8.27865 -40.1047 67.7917 +7.56223 -39.9879 67.5943 +6.79815 -39.5635 66.8769 +6.15904 -39.846 67.3544 +5.441 -39.6179 66.9688 +4.81673 -40.0979 67.7802 +3.99847 -38.8466 65.6651 +3.40231 -39.6768 67.0685 +2.7082 -39.4869 66.7474 +2.0418 -39.701 67.1094 +1.35431 -39.5049 66.7779 +0.685033 -39.9677 67.5601 +4.77596e-15 -39.7146 67.1323 +-0.68067 -39.7131 67.1298 +-1.35431 -39.5049 66.7779 +-2.05489 -39.9555 67.5395 +-2.72216 -39.6904 67.0915 +-3.44157 -40.1346 67.8423 +-4.09791 -39.8127 67.2982 +-4.81673 -40.0979 67.7802 +-5.47588 -39.8718 67.3981 +-6.15904 -39.846 67.3544 +-6.80686 -39.6142 66.9626 +-7.57181 -40.0386 67.68 +-8.20548 -39.7502 67.1926 +-8.88645 -39.7123 67.1284 +-9.62768 -39.9239 67.4862 +-10.3638 -40.0816 67.7526 +-10.9251 -39.5802 66.9051 +-11.6769 -39.782 67.2462 +-12.2175 -39.276 66.3909 +-12.9562 -39.421 66.6361 +-13.6314 -39.362 66.5362 +-14.3966 -39.5502 66.8544 +-15.0739 -39.4847 66.7437 +-15.6903 -39.2666 66.375 +-16.2379 -38.8965 65.7495 +-17.2286 -39.5686 66.8855 +-17.7711 -39.1928 66.2503 +-18.8157 -39.9045 67.4534 +-19.3296 -39.4736 66.7249 +-20.2557 -39.8791 67.4104 +-20.9385 -39.7876 67.2558 +-21.8601 -40.1347 67.8424 +-22.2991 -39.5955 66.931 +-23.2325 -39.9343 67.5037 +-23.916 -39.8295 67.3266 +-24.8684 -40.1588 67.8832 +-25.4012 -39.8046 67.2845 +-26.2411 -39.9317 67.4993 +-27.0547 -40.0061 67.6252 +-27.8061 -39.9804 67.5816 +-28.5929 -39.9989 67.6128 +-29.5925 -40.2995 68.1211 +-29.9596 -39.7387 67.173 +-31.1893 -40.3147 68.1466 +-31.6543 -39.8913 67.431 +-32.6812 -40.1725 67.9063 +-33.3684 -40.0258 67.6583 +-34.412 -40.2962 68.1155 +-34.9794 -40.0022 67.6185 +-36.493 -40.7719 68.9196 +-36.9368 -40.3314 68.1749 +-37.928 -40.4874 68.4387 +-38.6205 -40.3173 68.1512 +-39.7116 -40.5543 68.5518 +-40.269 -40.2402 68.0208 +-41.5112 -40.6017 68.6319 +-42.2055 -40.4157 68.3175 +-43.2783 -40.5846 68.603 +-44.1177 -40.5244 68.5011 +-45.4015 -40.8586 69.0661 +-46.1 -40.6553 68.7224 +-47.2011 -40.7999 68.9669 +-47.8985 -40.5886 68.6098 +-49.0626 -40.765 68.9078 +-49.6004 -40.4159 68.3177 +-51.2584 -40.9669 69.2492 +-51.9586 -40.7376 68.8616 +-52.986 -40.7599 68.8993 +-53.6825 -40.5229 68.4987 +-55.3945 -41.0382 69.3696 +-56.0958 -40.7905 68.951 +-57.3735 -40.9542 69.2277 +-57.7793 -40.4918 68.4461 +-59.7797 -41.1339 69.5315 +-60.001 -40.5415 68.5301 +-61.9719 -41.1216 69.5107 +-62.3665 -40.6441 68.7035 +-64.617 -41.3616 69.9163 +-65.0717 -40.9146 69.1608 +-66.8518 -41.2918 69.7984 +-67.2999 -40.8373 69.03 +-69.2312 -41.2723 69.7654 +-70.1327 -41.0784 69.4376 +-71.9605 -41.4135 70.004 +-73.0691 -41.3192 69.8447 +-74.5176 -41.4059 69.9912 +-75.2244 -41.0732 69.4289 +-77.7841 -41.7346 70.5469 +-78.288 -41.2775 69.7742 +-80.2541 -41.5818 70.2886 +-81.2466 -41.3676 69.9266 +-83.0224 -41.5404 70.2185 +-84.3066 -41.4529 70.0707 +-86.3921 -41.7426 70.5604 +-87.6162 -41.6002 70.3197 +-89.8004 -41.8973 70.8219 +-90.5894 -41.5308 70.2023 +-93.3199 -42.0377 71.0591 +-95.2443 -42.1558 71.2589 +-97.408 -42.3593 71.6029 +-99.6624 -42.5795 71.9751 +-103.861 -43.5924 73.6873 +-105.536 -43.5138 73.5544 +-108.156 -43.8039 74.0448 +-108.667 -43.2277 73.0707 +-110.673 -43.2391 73.0901 +-111.809 -42.899 72.5151 +-113.987 -42.9457 72.5941 +-115.366 -42.677 72.1399 +-118.128 -42.902 72.5201 +-121.235 -43.2224 73.0618 +-126.091 -44.124 74.5859 +-126.511 -43.4482 73.4435 +-130.837 -44.0928 74.5332 +-132.426 -43.7871 74.0164 +-135.027 -43.7989 74.0364 +-135.773 -43.1973 73.0194 +-137.872 -43.018 72.7164 +-137.404 -42.0367 71.0575 +-139.756 -41.9156 70.8528 +-139.95 -41.1403 69.5422 +-139.344 -40.1408 67.8527 +-139.152 -39.2733 66.3863 +-139.38 -38.532 65.1333 +-139.859 -37.8634 64.0032 +-141.212 -37.4287 63.2683 +-141.581 -36.7305 62.088 +-140.057 -35.5548 60.1007 +-139.942 -34.7525 58.7446 +-140.081 -34.0198 57.506 +-139.934 -33.224 56.1608 +-144.047 -33.4244 56.4995 +-155.851 -35.3304 59.7214 +-184.329 -40.8086 68.9816 +-221.197 -47.8066 80.8107 +-229.769 -48.4586 81.913 +-233.279 -47.989 81.1191 +-239.21 -47.977 81.0989 +-245.905 -48.0619 81.2423 +-256.274 -48.7862 82.4666 +-261.235 -48.4119 81.834 +-271.669 -48.9829 82.7992 +-276.848 -48.5365 82.0447 +-285.54 -48.6455 82.2288 +-293.972 -48.6337 82.2089 +-307.764 -49.4079 83.5176 +-315.102 -49.0508 82.914 +-15.3411 -2.31376 3.9111 +-14.1305 -2.06306 3.48733 +-16.189 -2.28593 3.86407 +-15.5514 -2.12167 3.58641 +-16.5553 -2.17998 3.68496 +-16.495 -2.09401 3.53966 +-16.6275 -2.03253 3.43573 +-16.3694 -1.92421 3.25263 +-16.4994 -1.86243 3.14819 +-15.2591 -1.65142 2.79152 +-16.4627 -1.70538 2.88271 +-15.9024 -1.57387 2.66043 +-17.6986 -1.67017 2.82321 +-16.0524 -1.44117 2.4361 +-13.9066 -1.18491 2.00293 +-14.2227 -1.14697 1.9388 +-14.4396 -1.09878 1.85735 +-12.9725 -0.928288 1.56915 +-15.1691 -1.01682 1.7188 +-14.1934 -0.887331 1.49992 +-14.3074 -0.83 1.40301 +-13.7244 -0.734461 1.24151 +-14.6323 -0.717373 1.21263 +-14.0463 -0.625709 1.05768 +-13.6578 -0.547293 0.925127 +-15.163 -0.539864 0.912569 +-13.6744 -0.425845 0.719835 +-13.6812 -0.36507 0.617104 +-14.2864 -0.317593 0.53685 +-14.5911 -0.259435 0.43854 +-14.0952 -0.187929 0.317669 +-13.6979 -0.12174 0.205785 +-13.9995 -0.0622048 0.105149 +92.5 0 0 +90.9965 -0.398161 0.687085 +77.2882 -0.67641 1.16724 +75.6741 -0.993549 1.71451 +66.4595 -1.16364 2.00802 +73.6299 -1.61184 2.78147 +72.6004 -1.9077 3.29201 +77.1558 -2.36608 4.08302 +56.8612 -1.99359 3.44022 +53.7338 -2.12035 3.65898 +48.5147 -2.12814 3.67242 +57.733 -2.78725 4.80981 +55.4943 -2.92445 5.04657 +83.46 -4.76775 8.22745 +91.7113 -5.646 9.743 +95.8727 -6.32849 10.9207 +95.7589 -6.74771 11.6442 +95.0444 -7.12199 12.29 +95.8058 -7.60814 13.129 +95.5711 -8.01878 13.8376 +95.2309 -8.41924 14.5286 +95.2774 -8.85384 15.2786 +94.9233 -9.25125 15.9644 +94.9547 -9.68625 16.715 +95.4672 -10.1743 17.5572 +95.4817 -10.6133 18.3148 +95.0985 -11.0081 18.9961 +94.9033 -11.4238 19.7135 +95.7682 -11.972 20.6595 +95.5562 -12.3906 21.3818 +95.1437 -12.7823 22.0577 +95.7849 -13.3187 22.9833 +95.5494 -13.7373 23.7057 +95.3067 -14.1548 24.4262 +95.0567 -14.5712 25.1448 +95.5624 -15.1072 26.0697 +96.1518 -15.6642 27.0309 +95.8755 -16.0843 27.7559 +95.5919 -16.5032 28.4787 +96.0552 -17.0547 29.4304 +95.7547 -17.4744 30.1546 +96.1962 -18.0331 31.1188 +95.8787 -18.4534 31.844 +95.5539 -18.8722 32.5667 +96.2417 -19.4961 33.6434 +95.8987 -19.9165 34.3688 +96.4689 -20.5312 35.4296 +96.1996 -20.9725 36.1912 +95.8309 -21.3927 36.9161 +96.2739 -21.9982 37.9612 +95.978 -22.4399 38.7232 +96.3058 -23.0316 39.7444 +95.9013 -23.4521 40.47 +96.116 -24.0274 41.4628 +95.7832 -24.4698 42.2263 +96.0633 -25.0732 43.2675 +95.5349 -25.469 43.9505 +96.0547 -26.1492 45.1243 +95.421 -26.5199 45.7639 +95.7391 -27.1586 46.8661 +96.0422 -27.8021 47.9765 +95.4685 -28.1958 48.656 +95.4884 -28.7673 49.6423 +95.7515 -29.4199 50.7683 +95.6598 -29.9705 51.7185 +95.0502 -30.361 52.3924 +93.5118 -30.4481 52.5426 +93.3952 -30.9944 53.4853 +93.4325 -31.5981 54.5271 +93.6207 -32.2613 55.6715 +93.711 -32.8998 56.7733 +93.7047 -33.5124 57.8304 +93.037 -33.8916 58.4849 +93.8101 -34.8044 60.06 +93.9994 -35.5153 61.2867 +93.7744 -36.0778 62.2575 +93.7733 -36.7337 63.3893 +93.4434 -37.2674 64.3104 +93.5684 -37.9904 65.558 +93.2122 -38.5259 66.4821 +93.534 -39.3513 67.9064 +94.1383 -40.3126 69.5653 +91.6972 -39.9664 68.9678 +90.6985 -40.2332 69.4282 +88.5829 -39.9911 69.0104 +87.8835 -40.3771 69.6766 +86.1535 -40.2814 69.5114 +85.4491 -40.6568 70.1592 +83.0118 -40.1932 69.3593 +82.3091 -40.5549 69.9834 +80.5395 -40.3817 69.6845 +80.6747 -41.1617 71.0304 +77.9407 -40.4671 69.8319 +78.4036 -41.4249 71.4847 +76.0428 -40.8863 70.5553 +75.9363 -41.5502 71.7009 +73.2698 -40.8003 70.4069 +72.2918 -40.9691 70.6982 +69.8703 -40.3 69.5436 +69.7507 -40.9473 70.6606 +69.0354 -41.251 71.1845 +68.7601 -41.8222 72.1704 +67.1485 -41.576 71.7455 +66.4846 -41.9075 72.3175 +64.2135 -41.209 71.1121 +63.92 -41.7668 72.0748 +61.5055 -40.9237 70.6198 +61.5047 -41.6749 71.9162 +59.6602 -41.1717 71.0478 +58.9414 -41.4312 71.4956 +57.1282 -40.9072 70.5913 +56.6973 -41.3622 71.3764 +54.9687 -40.8605 70.5107 +54.3658 -41.1831 71.0674 +52.2853 -40.3681 69.6611 +51.4196 -40.4685 69.8343 +50.0774 -40.1816 69.3393 +49.3761 -40.3992 69.7148 +47.5895 -39.7112 68.5275 +47.3533 -40.3067 69.5552 +45.95 -39.9045 68.861 +45.6477 -40.4531 69.8078 +44.1177 -39.9058 68.8633 +43.4214 -40.0974 69.1938 +42.0647 -39.666 68.4495 +41.3727 -39.8486 68.7645 +40.269 -39.626 68.3804 +39.7116 -39.9353 68.9142 +38.489 -39.5667 68.2782 +37.928 -39.8694 68.8005 +36.7255 -39.4885 68.1432 +36.5345 -40.1952 69.3627 +34.9794 -39.3916 67.976 +34.7709 -40.0949 69.1897 +33.5247 -39.5994 68.3346 +33.2552 -40.2541 69.4644 +31.9914 -39.7008 68.5095 +31.2992 -39.8393 68.7485 +29.9596 -39.1321 67.5282 +29.9077 -40.1071 69.2106 +28.9007 -39.8124 68.702 +28.2067 -39.9373 68.9177 +27.2175 -39.6326 68.3918 +26.6536 -39.9403 68.9228 +25.6793 -39.6262 68.3809 +25.139 -39.9762 68.9847 +24.1499 -39.6052 68.3445 +23.6017 -39.9497 68.939 +22.6023 -39.5213 68.1998 +22.1541 -40.0535 69.1182 +21.3267 -39.9068 68.865 +20.7565 -40.2413 69.4422 +19.765 -39.7468 68.5889 +19.1892 -40.0755 69.1561 +18.1985 -39.5228 68.2024 +17.7048 -40.0415 69.0974 +16.8201 -39.676 68.4668 +16.388 -40.3869 69.6934 +15.4364 -39.8172 68.7103 +14.8157 -40.0804 69.1646 +14.0134 -39.8475 68.7626 +13.4844 -40.4017 69.7191 +12.4835 -39.5183 68.1946 +11.9282 -40.0177 69.0564 +11.1478 -39.7705 68.6298 +10.5335 -40.116 69.226 +9.72517 -39.7127 68.53 +9.16946 -40.3515 69.6324 +8.29956 -39.5923 68.3222 +7.73475 -40.2759 69.5019 +6.95503 -39.8586 68.7819 +6.22965 -39.6876 68.4868 +5.53866 -39.7134 68.5312 +4.87778 -39.9863 69.0023 +4.15547 -39.7558 68.6044 +3.46338 -39.7725 68.6332 +2.75706 -39.5857 68.3109 +2.07845 -39.7967 68.675 +1.37699 -39.5536 68.2556 +0.700741 -40.2601 69.4746 +4.86169e-15 -39.8104 68.6986 +-0.692887 -39.8089 68.696 +-1.38572 -39.8043 68.6881 +-2.10201 -40.2478 69.4535 +-2.75706 -39.5857 68.3109 +-3.48519 -40.0229 69.0654 +-4.15547 -39.7558 68.6044 +-4.9022 -40.1865 69.3477 +-5.56657 -39.9134 68.8765 +-6.26888 -39.9376 68.9181 +-6.8853 -39.4591 68.0924 +-7.65808 -39.8766 68.813 +-8.35182 -39.8416 68.7525 +-9.12418 -40.1523 69.2886 +-9.82267 -40.1108 69.217 +-10.5596 -40.2154 69.3976 +-11.1199 -39.6712 68.4584 +-11.9578 -40.1169 69.2276 +-12.4991 -39.5678 68.2801 +-13.1873 -39.5116 68.1831 +-13.8745 -39.4524 68.0809 +-14.7429 -39.8832 68.8243 +-15.1884 -39.1774 67.6062 +-16.2485 -40.043 69.1 +-16.7577 -39.5289 68.2129 +-17.5749 -39.7478 68.5906 +-18.1311 -39.3763 67.9495 +-19.0258 -39.7342 68.5672 +-19.7166 -39.6495 68.4209 +-20.6313 -39.9986 69.0234 +-21.1714 -39.6162 68.3635 +-22.261 -40.2468 69.4517 +-22.7125 -39.7141 68.5325 +-23.7437 -40.1901 69.3538 +-24.3546 -39.9408 68.9237 +-25.4096 -40.4066 69.7274 +-25.8338 -39.8647 68.7923 +-26.8122 -40.178 69.333 +-27.6407 -40.2488 69.4552 +-28.5071 -40.3627 69.6517 +-29.2085 -40.2364 69.4338 +-30.1178 -40.3889 69.6969 +-30.8196 -40.2555 69.4668 +-31.9589 -40.679 70.1975 +-32.3285 -40.1192 69.2316 +-33.7144 -40.81 70.4237 +-33.7201 -39.8302 68.7328 +-35.369 -40.7847 70.3799 +-35.8335 -40.3536 69.636 +-36.9906 -40.6971 70.2287 +-37.2327 -40.0338 69.0842 +-38.5738 -40.5482 69.9718 +-39.015 -40.1075 69.2114 +-40.604 -40.8327 70.4628 +-40.8137 -40.1621 69.3055 +-42.7117 -41.1383 70.9901 +-43.0036 -40.5514 69.9774 +-44.6621 -41.243 71.1708 +-44.8449 -40.5636 69.9984 +-46.534 -41.2386 71.1633 +-46.95 -40.7729 70.3596 +-48.4192 -41.214 71.1207 +-48.6711 -40.6137 70.0849 +-50.1599 -41.0405 70.8214 +-50.5543 -40.5643 69.9997 +-52.7091 -41.4833 71.5856 +-52.7755 -40.7466 70.3141 +-54.421 -41.2248 71.1395 +-54.5213 -40.5279 69.9369 +-56.1875 -40.9903 70.7347 +-56.6694 -40.5786 70.0243 +-58.5929 -41.1863 71.073 +-59.0724 -40.7661 70.3479 +-60.8504 -41.2316 71.1511 +-61.6259 -41.0038 70.7581 +-63.0068 -41.1702 71.0451 +-63.0437 -40.4583 69.8167 +-65.4263 -41.2404 71.1663 +-65.9528 -40.8357 70.4679 +-68.3148 -41.5514 71.7031 +-68.714 -41.0589 70.8532 +-70.7249 -41.5192 71.6474 +-71.0512 -40.9811 70.7189 +-73.6833 -41.7577 72.059 +-74.0058 -41.2101 71.1141 +-76.3417 -41.7719 72.0836 +-77.0658 -41.4364 71.5045 +-78.4724 -41.4613 71.5475 +-80.1636 -41.6213 71.8236 +-81.7961 -41.7338 72.0178 +-82.5194 -41.3744 71.3976 +-85.6614 -42.2066 72.8336 +-85.7453 -41.5167 71.6432 +-88.5682 -42.1409 72.7202 +-88.8595 -41.5466 71.6947 +-92.1597 -42.3418 73.0669 +-92.5958 -41.8027 72.1367 +-95.1923 -42.2266 72.8681 +-96.2255 -41.94 72.3736 +-99.4611 -42.592 73.4987 +-101.501 -42.7031 73.6904 +-106.407 -43.9795 75.8931 +-107.635 -43.7016 75.4135 +-110.974 -44.259 76.3753 +-110.558 -43.3087 74.7355 +-113.45 -43.6474 75.32 +-113.486 -42.8778 73.9919 +-116.8 -43.334 74.7792 +-116.418 -42.4087 73.1824 +-122.117 -43.6738 75.3655 +-124.265 -43.6267 75.2842 +-127.575 -43.9617 75.8624 +-129.579 -43.8224 75.622 +-133.255 -44.2223 76.3121 +-134.02 -43.6376 75.3031 +-137.895 -44.0464 76.0084 +-137.469 -43.0693 74.3224 +-138.554 -42.571 73.4625 +-139.461 -42.0148 72.5027 +-139.498 -41.1995 71.0957 +-139.343 -40.3368 69.6071 +-138.822 -39.38 67.9559 +-139.065 -38.6495 66.6953 +-140.171 -38.1592 65.8492 +-141.272 -37.6622 64.9915 +-140.591 -36.6953 63.3231 +-140.512 -35.8967 61.9449 +-140.057 -35.0121 60.4184 +-140.032 -34.244 59.0931 +-139.81 -33.4358 57.6983 +-141.475 -33.077 57.0793 +-157.241 -35.9291 62.0009 +-162.611 -36.3002 62.6413 +-222.112 -48.4227 83.5605 +-224.695 -47.8213 82.5227 +-233.28 -48.4481 83.6043 +-236.432 -47.8951 82.65 +-246.095 -48.6045 83.8742 +-251.32 -48.3704 83.4702 +-261.051 -48.9371 84.448 +-265.933 -48.5304 83.7463 +-277.702 -49.3064 85.0854 +-281.765 -48.6445 83.9432 +-294.739 -49.4462 85.3267 +-300.629 -48.9759 84.5151 +-315.49 -49.875 86.0666 +-321.988 -49.3576 85.1738 +-333.957 -49.5987 85.5899 +-15.8608 -2.28033 3.93504 +-13.9726 -1.94287 3.3527 +-15.7446 -2.11524 3.65015 +-15.684 -2.03372 3.50948 +-16.495 -2.06205 3.55837 +-16.4331 -1.9781 3.4135 +-16.1745 -1.87229 3.2309 +-16.6947 -1.8557 3.20229 +-16.1394 -1.72004 2.96818 +-15.6788 -1.59938 2.75996 +-15.3134 -1.49245 2.57544 +-15.6338 -1.4528 2.50701 +-16.4463 -1.45399 2.50907 +-15.7806 -1.32405 2.28484 +-15.3092 -1.21574 2.09793 +-14.7363 -1.10424 1.90553 +-13.3686 -0.942031 1.62561 +-14.0785 -0.929311 1.60366 +-15.4837 -0.953222 1.64492 +-14.1087 -0.805979 1.39083 +-15.1167 -0.796623 1.37469 +-14.0351 -0.677593 1.16929 +-13.7475 -0.603047 1.04065 +-15.0535 -0.594012 1.02505 +-14.5644 -0.510636 0.881176 +-14.0737 -0.431588 0.744769 +-14.8796 -0.390987 0.674705 +-13.3872 -0.293062 0.505722 +-14.0914 -0.246725 0.425761 +-13.6953 -0.17981 0.310289 +-14.5978 -0.127757 0.220463 +-13.7995 -0.0603804 0.104195 +93.7 0 0 +92.5965 -0.398836 0.702793 +84.5871 -0.72873 1.2841 +83.6713 -1.0814 1.90554 +73.5552 -1.26776 2.23394 +86.2179 -1.85794 3.27389 +73.599 -1.90375 3.35461 +85.9394 -2.5943 4.57144 +74.2188 -2.56153 4.51369 +80.85 -3.14055 5.53399 +61.9633 -2.67565 4.71478 +89.8843 -4.27172 7.52723 +75.0864 -3.89515 6.86367 +95.8797 -5.39173 9.5008 +95.0859 -5.76239 10.154 +95.2779 -6.19105 10.9093 +95.0657 -6.59429 11.6199 +94.9455 -7.0035 12.3409 +94.9168 -7.41992 13.0747 +95.5711 -7.89359 13.9094 +95.4279 -8.30493 14.6342 +95.0807 -8.69766 15.3262 +94.9233 -9.10682 16.0472 +94.7587 -9.51534 16.7671 +94.5869 -9.92312 17.4856 +95.2865 -10.4263 18.3722 +95.0985 -10.8363 19.0947 +95.7784 -11.3492 19.9985 +95.5741 -11.7612 20.7246 +95.5562 -12.1972 21.4927 +95.1437 -12.5827 22.1721 +94.9176 -12.992 22.8934 +95.5494 -13.5228 23.8287 +95.3067 -13.9338 24.5529 +94.9611 -14.3294 25.2499 +95.5624 -14.8714 26.205 +96.1518 -15.4197 27.1711 +95.8755 -15.8332 27.8999 +94.741 -16.1009 28.3716 +96.1494 -16.805 29.6122 +94.909 -17.0496 30.0433 +96.1962 -17.7516 31.2803 +95.8787 -18.1653 32.0092 +96.5773 -18.7765 33.0862 +96.2417 -19.1918 33.818 +95.8987 -19.6055 34.5471 +96.4689 -20.2107 35.6134 +96.1996 -20.6451 36.3789 +95.8309 -21.0587 37.1077 +96.2739 -21.6548 38.1581 +95.978 -22.0895 38.9241 +96.2156 -22.6508 39.9132 +95.8114 -23.0644 40.6419 +96.2949 -23.6964 41.7556 +95.605 -24.043 42.3664 +96.0633 -24.6818 43.492 +95.5349 -25.0714 44.1785 +95.8789 -25.6939 45.2754 +95.421 -26.1059 46.0013 +95.7391 -26.7346 47.1093 +95.2628 -27.1459 47.8341 +95.4685 -27.7556 48.9084 +95.4884 -28.3182 49.8998 +95.7515 -28.9606 51.0316 +95.0662 -29.3195 51.6642 +95.0502 -29.887 52.6642 +94.4343 -30.2684 53.3362 +94.1457 -30.7557 54.1949 +93.4325 -31.1048 54.81 +93.6207 -31.7576 55.9604 +94.4482 -32.641 57.5169 +93.8675 -33.0465 58.2315 +93.6033 -33.5656 59.1462 +93.4082 -34.1142 60.113 +93.9195 -34.9311 61.5524 +93.2984 -35.3343 62.2628 +93.0641 -35.8867 63.2363 +93.8347 -36.8393 64.9147 +93.4907 -37.3662 65.8433 +93.8295 -38.1756 67.2696 +93.2276 -38.6101 68.0351 +93.606 -39.4589 69.5308 +93.433 -40.0872 70.638 +91.8969 -40.1284 70.7105 +90.3664 -40.1593 70.7651 +89.9478 -40.6804 71.6833 +87.1774 -40.1238 70.7024 +87.5527 -41.0073 72.2594 +85.0979 -40.56 71.4711 +84.0209 -40.752 71.8095 +82.4487 -40.6936 71.7065 +80.8849 -40.6247 71.5851 +79.5384 -40.652 71.6332 +79.4361 -41.3152 72.8019 +77.9524 -41.2587 72.7023 +77.4902 -41.7385 73.5477 +75.3441 -41.3004 72.7757 +74.611 -41.6233 73.3448 +71.8385 -40.7883 71.8735 +70.7249 -40.871 72.0191 +69.0354 -40.607 71.5539 +68.3784 -40.9408 72.1421 +67.3373 -41.042 72.3204 +67.2938 -41.7553 73.5774 +65.6911 -41.4991 73.1259 +65.2592 -41.9763 73.9667 +63.3109 -41.4674 73.07 +62.9917 -42.0162 74.0371 +60.777 -41.2877 72.7534 +60.5092 -41.8693 73.7782 +58.6195 -41.3197 72.8098 +57.8867 -41.5706 73.252 +55.9752 -40.9591 72.1744 +55.3041 -41.2398 72.669 +53.2657 -40.483 71.3354 +52.5479 -40.7109 71.7369 +50.8722 -40.1822 70.8054 +50.4734 -40.6523 71.6337 +48.5166 -39.8528 70.2249 +48.4192 -40.5705 71.4897 +47.25 -40.3929 71.1766 +46.8295 -40.8526 71.9866 +44.9419 -40.0167 70.5137 +44.6621 -40.5991 71.54 +43.0036 -39.9183 70.3404 +42.8041 -40.5836 71.5127 +41.3131 -40.0188 70.5175 +40.604 -40.1952 70.8283 +39.1465 -39.6145 69.805 +38.9182 -40.2716 70.9629 +37.4862 -39.6772 69.9156 +37.1565 -40.2414 70.9097 +35.7115 -39.5883 69.7589 +35.7279 -40.5553 71.4629 +34.0718 -39.6173 69.8099 +33.944 -40.4465 71.2711 +32.6657 -39.9047 70.3164 +32.1788 -40.3195 71.0472 +30.9272 -39.7653 70.0708 +30.433 -40.1744 70.7916 +29.2085 -39.6082 69.794 +28.8075 -40.1513 70.7509 +27.9337 -40.0405 70.5557 +27.3834 -40.3933 71.1774 +26.2355 -39.8526 70.2245 +25.6803 -40.1994 70.8356 +24.4423 -39.4589 69.5308 +24.2549 -40.4145 71.2147 +23.1535 -39.8532 70.2256 +22.6885 -40.3794 71.1529 +21.6114 -39.8082 70.1463 +21.1321 -40.3298 71.0655 +19.9827 -39.5573 69.7042 +19.6094 -40.3137 71.0372 +18.6035 -39.7715 70.0816 +17.9645 -39.9946 70.4749 +17.0072 -39.4912 69.5877 +16.6073 -40.2884 70.9925 +15.7227 -39.9223 70.3475 +14.9798 -39.8915 70.2931 +14.2044 -39.7601 70.0615 +13.5009 -39.8197 70.1667 +12.7181 -39.6326 69.837 +12.1499 -40.1252 70.7049 +11.3148 -39.7361 70.0193 +10.677 -40.028 70.5337 +9.90798 -39.8275 70.1804 +9.26002 -40.1139 70.685 +8.49816 -39.9068 70.3201 +7.8306 -40.1384 70.7282 +7.08576 -39.9739 70.4384 +6.41795 -40.2489 70.923 +5.6433 -39.8319 70.1881 +4.97546 -40.1503 70.7492 +4.23398 -39.8745 70.2631 +3.52881 -39.8912 70.2926 +2.82337 -39.9049 70.3167 +2.12819 -40.1129 70.6832 +1.41888 -40.1205 70.6967 +0.705977 -39.9277 70.3569 +4.91679e-15 -39.6331 69.8377 +-0.705977 -39.9277 70.3569 +-1.40143 -39.627 69.8271 +-2.14127 -40.3596 71.118 +-2.82337 -39.9049 70.3167 +-3.54626 -40.0884 70.6401 +-4.23398 -39.8745 70.2631 +-4.99377 -40.2981 71.0096 +-5.6433 -39.8319 70.1881 +-6.41795 -40.2489 70.923 +-7.02475 -39.6298 69.8319 +-7.89769 -40.4823 71.3342 +-8.51907 -40.005 70.4931 +-9.32794 -40.4081 71.2034 +-9.96891 -40.0725 70.612 +-10.7554 -40.3216 71.0511 +-11.3844 -39.9805 70.4499 +-12.1795 -40.2228 70.877 +-12.7494 -39.7301 70.0087 +-13.6494 -40.2578 70.9386 +-14.2044 -39.7601 70.0615 +-14.9615 -39.8429 70.2075 +-15.5509 -39.4863 69.5791 +-16.6073 -40.2884 70.9925 +-17.1319 -39.7808 70.0981 +-17.9645 -39.9946 70.4749 +-18.536 -39.6272 69.8274 +-19.5861 -40.2657 70.9525 +-20.0795 -39.7488 70.0417 +-20.9318 -39.9475 70.3918 +-21.482 -39.5698 69.7262 +-22.6618 -40.3319 71.0692 +-23.2087 -39.9481 70.3928 +-24.1697 -40.2725 70.9645 +-24.7931 -40.0252 70.5288 +-25.8607 -40.4818 71.3334 +-26.3901 -40.0872 70.638 +-27.2882 -40.2529 70.9299 +-27.9989 -40.1338 70.7202 +-29.0078 -40.4304 71.2428 +-29.7216 -40.304 71.0199 +-30.9583 -40.8679 72.0136 +-31.3572 -40.3183 71.0452 +-32.3987 -40.595 71.5327 +-33.0028 -40.3166 71.0422 +-34.2884 -40.8569 71.9943 +-34.8923 -40.5714 71.4911 +-36.2862 -41.189 72.5795 +-36.7283 -40.7155 71.7452 +-37.9859 -41.1397 72.4925 +-38.4583 -40.7061 71.7285 +-39.8223 -41.2071 72.6113 +-40.1548 -40.6347 71.6028 +-41.6303 -41.2112 72.6186 +-41.9941 -40.6785 71.6799 +-43.6352 -41.3716 72.9013 +-43.9425 -40.7899 71.8763 +-45.0915 -40.9895 72.2279 +-45.8145 -40.7937 71.883 +-47.1249 -41.1103 72.4408 +-47.7 -40.7775 71.8544 +-49.1805 -41.2085 72.6138 +-50.0617 -41.122 72.4614 +-51.1004 -41.1573 72.5236 +-51.6671 -40.8101 71.9117 +-53.4613 -41.4185 72.9838 +-54.0282 -41.0625 72.3565 +-55.0281 -41.034 72.3063 +-55.9752 -40.9591 72.1744 +-57.7168 -41.4486 73.037 +-57.9312 -40.8346 71.955 +-60.0447 -41.5478 73.2118 +-60.1304 -40.8484 71.9793 +-62.3969 -41.6195 73.338 +-62.7693 -41.1126 72.4449 +-64.894 -41.7413 73.5527 +-65.2601 -41.2268 72.6461 +-67.6051 -41.9485 73.9177 +-67.589 -41.1954 72.5908 +-70.1594 -42.0072 74.0212 +-70.5781 -41.5144 73.1528 +-72.2186 -41.7342 73.5402 +-73.1506 -41.5333 73.1862 +-75.2736 -41.993 73.9962 +-76.214 -41.7772 73.6159 +-78.2333 -42.1387 74.253 +-78.7026 -41.6558 73.402 +-81.0193 -42.1387 74.2529 +-81.0666 -41.4331 73.0096 +-83.5484 -41.9624 73.9423 +-84.2871 -41.6009 73.3054 +-86.8739 -42.1358 74.2478 +-87.8314 -41.8629 73.7669 +-89.8013 -42.0606 74.1152 +-91.4192 -42.0761 74.1426 +-93.4868 -42.2809 74.5036 +-94.4537 -41.9758 73.9658 +-97.8885 -42.7447 75.3207 +-98.6405 -42.3214 74.575 +-101.742 -42.8887 75.5744 +-103.569 -42.893 75.5821 +-108.953 -44.3289 78.1123 +-109.5 -43.7648 77.1183 +-112.852 -44.3054 78.0709 +-112.764 -43.4834 76.6225 +-115.116 -43.597 76.8226 +-115.323 -42.8916 75.5797 +-120.498 -44.008 77.5468 +-121.353 -43.5163 76.6804 +-125.699 -44.2531 77.9787 +-126.477 -43.71 77.0217 +-130.377 -44.2259 77.9308 +-131.734 -43.8559 77.2788 +-135.006 -44.104 77.7161 +-136.536 -43.7628 77.1148 +-138.148 -43.4383 76.5429 +-138.147 -42.6062 75.0767 +-139.066 -42.0611 74.1163 +-139.975 -41.5114 73.1476 +-139.756 -40.6314 71.5969 +-139.343 -39.7071 69.9682 +-139.344 -38.911 68.5654 +-140.289 -38.3811 67.6317 +-141.841 -38.0109 66.9794 +-141.272 -37.0742 65.3287 +-140.769 -36.168 63.7319 +-139.977 -35.2018 62.0294 +-140.057 -34.4655 60.7319 +-139.493 -33.5796 59.1709 +-142.879 -33.6362 59.2707 +-151.625 -34.8968 61.492 +-169.981 -38.2337 67.3719 +-212.308 -46.6543 82.2099 +-228.44 -49.0248 86.3869 +-231.875 -48.579 85.6014 +-237.345 -48.5228 85.5024 +-241.068 -48.0718 84.7078 +-252.608 -49.112 86.5406 +-257.388 -48.765 85.9291 +-267.233 -49.3139 86.8964 +-272.981 -49.0388 86.4117 +-282.604 -49.3933 87.0363 +-287.249 -48.8171 86.021 +-300.903 -49.6924 87.5633 +-306.906 -49.2179 86.7273 +-320.64 -49.8977 87.9251 +-327.343 -49.3952 87.0397 +-342.97 -50.142 88.3556 +-351.63 -49.7649 87.6912 +-15.7072 -2.14995 3.78845 +-14.9719 -1.98002 3.48902 +-16.2649 -2.07611 3.65833 +-16.8831 -2.07762 3.66099 +-15.6552 -1.85504 3.26878 +-16.272 -1.85416 3.26722 +-15.3278 -1.67717 2.95536 +-15.846 -1.6624 2.92933 +-15.7768 -1.58425 2.79161 +-15.4115 -1.47857 2.60539 +-16.0271 -1.4661 2.58342 +-14.8706 -1.29417 2.28046 +-14.6957 -1.21377 2.1388 +-14.7166 -1.15043 2.02718 +-14.9341 -1.10159 1.94112 +-14.854 -1.03036 1.81561 +-12.9879 -0.843937 1.48711 +-13.9949 -0.848118 1.49448 +-15.0029 -0.843681 1.48666 +-14.52 -0.753236 1.32728 +-14.5328 -0.690667 1.21703 +-15.441 -0.666758 1.1749 +-14.7544 -0.57312 1.0099 +-13.7664 -0.475122 0.837217 +-14.2733 -0.430877 0.759252 +-13.3816 -0.346136 0.60993 +-13.687 -0.294946 0.519727 +-14.4912 -0.249764 0.440111 +-14.595 -0.188631 0.332389 +-13.8979 -0.119732 0.210981 +-14.2995 -0.0615912 0.10853 +92.8 0 0 +92.6965 -0.392903 0.707126 +87.5867 -0.742545 1.33639 +88.8695 -1.13027 2.03421 +89.1457 -1.51199 2.7212 +89.8144 -1.90459 3.42779 +86.0819 -2.19114 3.94351 +89.6325 -2.66266 4.79211 +88.7832 -3.01535 5.42688 +94.8068 -3.62399 6.52227 +91.6499 -3.89446 7.00905 +94.9608 -4.44104 7.99275 +94.9768 -4.84843 8.72596 +94.9855 -5.25629 9.45999 +95.0859 -5.67053 10.2055 +95.2779 -6.09236 10.9647 +95.1648 -6.49592 11.691 +95.1433 -6.90624 12.4295 +95.707 -7.3624 13.2505 +94.6834 -7.69564 13.8502 +95.4279 -8.17254 14.7085 +95.0807 -8.55901 15.4041 +94.9233 -8.96165 16.1287 +94.7587 -9.36366 16.8522 +95.4672 -9.85582 17.738 +95.4817 -10.2811 18.5034 +95.0985 -10.6635 19.1917 +95.7784 -11.1683 20.1001 +95.5741 -11.5738 20.8299 +95.5562 -12.0027 21.6019 +95.1437 -12.3822 22.2848 +95.9776 -12.9277 23.2666 +95.5494 -13.3073 23.9497 +95.3067 -13.7117 24.6776 +95.8217 -14.2287 25.6081 +95.6578 -14.6489 26.3644 +95.2959 -15.0388 27.0661 +95.8755 -15.5808 28.0416 +95.5919 -15.9866 28.7719 +96.0552 -16.5209 29.7334 +95.7547 -16.9274 30.465 +96.1962 -17.4686 31.4392 +95.8787 -17.8757 32.1718 +95.6469 -18.2992 32.9339 +96.2417 -18.8859 33.9898 +95.9911 -19.3116 34.756 +95.5484 -19.6988 35.4528 +96.2913 -20.3354 36.5986 +95.8309 -20.723 37.2962 +95.5459 -21.1485 38.062 +95.8874 -21.7169 39.0849 +95.5838 -22.1434 39.8525 +95.9013 -22.718 40.8867 +96.2054 -23.297 41.9287 +95.7832 -23.7038 42.661 +96.152 -24.3107 43.7532 +95.7115 -24.7173 44.485 +96.0547 -25.3307 45.5889 +95.421 -25.6897 46.235 +95.6521 -26.2845 47.3055 +95.3494 -26.7375 48.1208 +95.5547 -27.3378 49.2012 +95.5742 -27.8918 50.1983 +95.2399 -28.3467 51.0168 +95.151 -28.8779 51.973 +95.3032 -29.4889 53.0726 +95.6084 -30.1562 54.2736 +94.3125 -30.3191 54.5667 +94.0129 -30.7991 55.4307 +93.7031 -31.2789 56.2942 +93.7929 -31.8978 57.408 +93.1348 -32.2659 58.0705 +93.1988 -32.8878 59.1898 +93.6493 -33.6571 60.5744 +93.9994 -34.4035 61.9177 +93.219 -34.7415 62.526 +93.2217 -35.3745 63.6652 +93.1304 -35.9799 64.7547 +93.2575 -36.6789 66.0128 +93.2894 -37.3508 67.2221 +93.534 -38.1195 68.6054 +93.3018 -38.7037 69.6569 +93.2066 -39.3526 70.8248 +93.6195 -40.2289 72.4019 +91.6298 -40.0717 72.1189 +90.6114 -40.3272 72.5789 +88.9326 -40.2792 72.4923 +88.2055 -40.6545 73.168 +85.7453 -40.2171 72.3807 +85.0195 -40.579 73.032 +83.5093 -40.56 72.9979 +82.7774 -40.9124 73.6321 +80.7888 -40.6328 73.1289 +79.8491 -40.868 73.5521 +78.7026 -40.9918 73.7749 +78.436 -41.5745 74.8236 +76.4816 -41.2556 74.2498 +75.7375 -41.5782 74.8303 +73.8722 -41.2745 74.2837 +72.8031 -41.4013 74.512 +69.9996 -40.5177 72.9217 +69.6506 -41.0378 73.8577 +68.7847 -41.2559 74.2503 +67.9163 -41.4698 74.6353 +67.0455 -41.6796 75.0128 +66.1115 -41.8466 75.3133 +64.7553 -41.7373 75.1167 +63.5271 -41.6978 75.0456 +62.2465 -41.6118 74.8909 +61.5545 -41.9136 75.434 +59.9961 -41.6159 74.8982 +59.2461 -41.8686 75.353 +57.2614 -41.2323 74.2077 +55.9112 -41.0279 73.8399 +53.8648 -40.2857 72.5042 +53.6225 -40.8812 73.5758 +51.9851 -40.4066 72.7218 +51.1004 -40.5012 72.892 +49.7527 -40.2167 72.3799 +49.0282 -40.426 72.7567 +47.85 -40.2537 72.4465 +46.928 -40.2859 72.5045 +46.1054 -40.3983 72.7068 +45.5209 -40.7203 73.2862 +43.9425 -40.1397 72.2414 +43.6352 -40.7121 73.2716 +41.9941 -40.03 72.044 +41.4964 -40.4238 72.7528 +40.0233 -39.8561 71.7309 +39.564 -40.2872 72.5069 +38.2047 -39.7931 71.6175 +37.8615 -40.3513 72.6222 +36.769 -40.1109 72.1895 +36.1665 -40.3988 72.7076 +35.0095 -40.0587 72.0957 +34.2884 -40.2056 72.36 +33.1152 -39.809 71.6463 +32.5087 -40.0834 72.1401 +31.4647 -39.8116 71.6509 +30.7482 -39.9434 71.8882 +29.9268 -39.9353 71.8736 +29.3082 -40.198 72.3463 +28.0965 -39.6319 71.3274 +27.8593 -40.4403 72.7824 +26.6682 -39.864 71.7451 +26.2215 -40.3924 72.6961 +25.144 -39.9446 71.8902 +24.5105 -40.1893 72.3307 +23.5394 -39.8715 71.7587 +23.0627 -40.391 72.6937 +21.9737 -39.8304 71.6847 +21.3574 -40.1101 72.1882 +20.4424 -39.8221 71.6698 +19.7261 -39.9073 71.823 +19.0084 -39.9893 71.9708 +18.3541 -40.2106 72.369 +17.3814 -39.7168 71.4802 +16.8466 -40.2173 72.381 +15.9516 -39.8581 71.7345 +15.3078 -40.1152 72.1972 +14.517 -39.9872 71.9669 +13.864 -40.2388 72.4198 +12.9371 -39.6724 71.4004 +12.3569 -40.1581 72.2744 +11.5096 -39.7761 71.5869 +10.912 -40.2567 72.452 +10.0786 -39.8676 71.7516 +9.40719 -40.1018 72.1731 +8.59224 -39.7054 71.4597 +7.92644 -39.9821 71.9576 +7.20778 -40.0141 72.0153 +6.46503 -39.8979 71.8062 +5.70608 -39.633 71.3295 +5.04871 -40.092 72.1555 +4.28108 -39.6754 71.4057 +3.60732 -40.1287 72.2216 +2.84431 -39.56 71.1981 +2.1753 -40.3474 72.6152 +1.42761 -39.7238 71.4928 +0.719067 -40.0197 72.0255 +5.00864e-15 -39.7298 71.5037 +-0.721684 -40.1655 72.2877 +-1.44331 -40.1608 72.2794 +-2.16483 -40.1532 72.2657 +-2.85478 -39.7056 71.4602 +-3.60732 -40.1287 72.2216 +-4.28108 -39.6754 71.4057 +-5.08534 -40.3829 72.6791 +-5.76886 -40.0691 72.1143 +-6.53564 -40.3336 72.5904 +-7.18163 -39.8689 71.7541 +-7.9552 -40.1271 72.2187 +-8.70722 -40.2368 72.416 +-9.50907 -40.5361 72.9548 +-10.1517 -40.1568 72.2722 +-10.8728 -40.1123 72.192 +-11.5931 -40.0646 72.1062 +-12.2682 -39.8699 71.7557 +-13.031 -39.9602 71.9184 +-13.699 -39.7598 71.5576 +-14.4128 -39.7002 71.4504 +-15.1255 -39.6376 71.3378 +-15.8944 -39.715 71.477 +-16.727 -39.9317 71.8671 +-17.4438 -39.8593 71.7368 +-18.3541 -40.2106 72.369 +-19.0758 -40.1313 72.2263 +-19.9362 -40.3323 72.588 +-20.4424 -39.8221 71.6698 +-21.2322 -39.875 71.765 +-22.1808 -40.2057 72.3602 +-23.0627 -40.391 72.6937 +-23.6221 -40.0116 72.0108 +-24.5957 -40.3291 72.5822 +-25.0563 -39.8053 71.6395 +-26.3118 -40.5313 72.9462 +-26.8536 -40.1411 72.2439 +-28.0497 -40.7167 73.2798 +-28.4872 -40.1829 72.3192 +-29.6087 -40.6101 73.0879 +-30.2346 -40.3461 72.6128 +-31.2735 -40.6258 73.1163 +-31.8947 -40.3557 72.6302 +-33.2417 -40.9872 73.7667 +-34.0892 -40.9799 73.7535 +-35.0538 -41.1031 73.9752 +-35.5565 -40.6847 73.2222 +-36.6052 -40.8887 73.5895 +-37.3791 -40.7764 73.3873 +-38.5665 -41.1026 73.9743 +-38.9654 -40.5854 73.0436 +-40.425 -41.164 74.0848 +-41.1631 -40.9911 73.7736 +-42.2996 -41.2062 74.1609 +-43.0383 -41.0254 73.8354 +-44.0508 -41.0999 73.9695 +-44.9284 -41.0403 73.8622 +-45.9504 -41.1044 73.9776 +-46.6872 -40.9081 73.6243 +-47.7158 -40.9623 73.7218 +-48.6 -40.8847 73.5821 +-50.0433 -41.263 74.263 +-50.7828 -41.0493 73.8785 +-51.8319 -41.081 73.9354 +-52.568 -40.8598 73.5373 +-54.2135 -41.3317 74.3868 +-54.9541 -41.1004 73.9704 +-56.4632 -41.4329 74.5688 +-56.7022 -40.8296 73.4831 +-58.5098 -41.3483 74.4165 +-58.9063 -40.86 73.5377 +-60.8577 -41.4391 74.58 +-61.6587 -41.2189 74.1837 +-63.4081 -41.6197 74.905 +-64.0331 -41.2718 74.2789 +-65.9289 -41.731 75.1053 +-66.8608 -41.5648 74.8062 +-68.1654 -41.6219 74.909 +-69.0994 -41.4446 74.5899 +-70.7319 -41.6749 75.0043 +-71.6708 -41.4851 74.6628 +-73.3876 -41.7338 75.1103 +-74.5283 -41.641 74.9434 +-76.0688 -41.7601 75.1577 +-77.2177 -41.6526 74.9643 +-79.1792 -41.9683 75.5325 +-80.2712 -41.8087 75.2452 +-82.0519 -41.9954 75.5812 +-82.8033 -41.646 74.9524 +-84.81 -41.9171 75.4402 +-86.1963 -41.8651 75.3466 +-88.3004 -42.145 75.8504 +-89.2701 -41.8703 75.3561 +-92.1951 -42.4934 76.4774 +-92.7356 -42.0016 75.5924 +-94.8139 -42.1976 75.9451 +-96.7575 -42.3141 76.1548 +-99.2366 -42.6426 76.746 +-99.999 -42.2204 75.9861 +-102.655 -42.5835 76.6397 +-105.178 -42.8648 77.1459 +-109.725 -43.9312 79.0652 +-111.831 -43.9841 79.1604 +-113.713 -43.9318 79.0661 +-114.577 -43.478 78.2495 +-116.544 -43.4343 78.1708 +-117.799 -43.114 77.5944 +-122.347 -43.9709 79.1366 +-124.184 -43.8218 78.8682 +-127.49 -44.1682 79.4916 +-128.771 -43.7932 78.8168 +-132.19 -44.1261 79.416 +-133.226 -43.6456 78.5512 +-136.09 -43.7495 78.7381 +-137.458 -43.3562 78.0302 +-138.063 -42.7197 76.8848 +-139.249 -42.2616 76.0603 +-140.174 -41.7206 75.0866 +-139.975 -40.8497 73.5192 +-139.153 -39.8111 71.65 +-139.603 -39.147 70.4548 +-140.475 -38.6017 69.4733 +-141.251 -38.0283 68.4415 +-141.226 -37.2428 67.0276 +-141.007 -36.4148 65.5374 +-140.059 -35.4121 63.7328 +-139.888 -34.6186 62.3048 +-139.789 -33.851 60.9233 +-140.392 -33.2573 59.8547 +-152.086 -35.2328 63.4102 +-161.867 -36.66 65.9789 +-217.026 -48.0373 86.4551 +-220.987 -47.7873 86.0052 +-232.108 -49.0178 88.2197 +-235.005 -48.4498 87.1976 +-240.209 -48.3255 86.9738 +-246.26 -48.3244 86.9719 +-256.795 -49.13 88.4216 +-261.496 -48.7536 87.7441 +-270.324 -49.0892 88.3482 +-277.303 -49.0212 88.2258 +-285.432 -49.0926 88.3543 +-292.165 -48.8614 87.9382 +-305.171 -49.5938 89.2564 +-314.609 -49.6492 89.356 +-324.741 -49.7303 89.502 +-332.89 -49.4316 88.9644 +-348.723 -50.1703 90.294 +-357.013 -49.7215 89.4863 +-373.792 -50.3481 90.6139 +-15.2616 -1.98617 3.57461 +-14.135 -1.77548 3.19542 +-16.8831 -2.0445 3.67959 +-16.9192 -1.97287 3.55067 +-16.1745 -1.81368 3.26416 +-14.9373 -1.60839 2.8947 +-15.3569 -1.58541 2.85334 +-16.5607 -1.63646 2.94522 +-15.6079 -1.47353 2.65198 +-14.7488 -1.32766 2.38946 +-15.2645 -1.30727 2.35276 +-16.471 -1.33872 2.40936 +-13.9264 -1.07131 1.92809 +-13.9451 -1.01224 1.82178 +-14.3589 -0.980137 1.764 +-14.9708 -0.95728 1.72286 +-14.4912 -0.864192 1.55533 +-14.4068 -0.797244 1.43484 +-14.0228 -0.715841 1.28833 +-14.5328 -0.679657 1.22321 +-15.0425 -0.639199 1.1504 +-14.7544 -0.563984 1.01503 +-13.3674 -0.453997 0.81708 +-14.972 -0.444764 0.800464 +-13.6812 -0.348245 0.626753 +-14.0866 -0.298718 0.537618 +-14.4912 -0.245782 0.442347 +-14.7949 -0.188167 0.338654 +-12.898 -0.109347 0.196798 +-13.1995 -0.0559472 0.100691 +93.3 0 0 +92.9965 -0.387757 0.712943 +87.9866 -0.733791 1.34917 +92.4683 -1.1569 2.12711 +91.844 -1.53239 2.8175 +91.8125 -1.91527 3.52147 +89.6769 -2.24549 4.12863 +92.3275 -2.69806 4.96074 +93.0727 -3.10957 5.71736 +94.8068 -3.56499 6.55471 +94.0408 -3.931 7.22766 +94.0649 -4.32752 7.95672 +94.9768 -4.7695 8.76935 +94.9855 -5.17071 9.50704 +95.2844 -5.58987 10.2777 +95.2779 -5.99318 11.0192 +95.1648 -6.39017 11.7492 +95.0444 -6.78673 12.4783 +95.8058 -7.25 13.3301 +95.5711 -7.6413 14.0495 +95.4279 -8.03949 14.7817 +95.0807 -8.41967 15.4807 +94.9233 -8.81575 16.2089 +95.6407 -9.29693 17.0936 +94.5869 -9.60597 17.6618 +95.2865 -10.093 18.5574 +95.0985 -10.4899 19.2871 +95.7784 -10.9864 20.2 +95.5741 -11.3853 20.9335 +95.5562 -11.8073 21.7093 +95.1437 -12.1806 22.3956 +94.9176 -12.5768 23.1241 +95.5494 -13.0906 24.0688 +95.3067 -13.4885 24.8003 +95.0567 -13.8853 25.53 +95.5624 -14.3961 26.4691 +95.2959 -14.794 27.2007 +95.8755 -15.3272 28.1811 +95.6865 -15.7419 28.9436 +96.0552 -16.2519 29.8813 +95.7547 -16.6518 30.6165 +95.3532 -17.0337 31.3186 +95.8787 -17.5847 32.3318 +95.6469 -18.0013 33.0977 +96.2417 -18.5784 34.1588 +96.6378 -19.1252 35.1642 +95.6405 -19.3967 35.6635 +96.1996 -19.9853 36.7456 +95.8309 -20.3856 37.4816 +96.2739 -20.9627 38.5427 +95.978 -21.3835 39.3164 +96.2156 -21.9269 40.3154 +95.9013 -22.3481 41.09 +95.4 -22.7258 41.7844 +95.7832 -23.3179 42.8731 +96.0633 -23.8929 43.9303 +95.7115 -24.3149 44.7062 +95.9668 -24.8955 45.7736 +95.421 -25.2715 46.4649 +95.7391 -25.8801 47.584 +95.3494 -26.3022 48.3601 +95.5547 -26.8927 49.4459 +95.6599 -27.4624 50.4932 +95.2399 -27.8852 51.2705 +95.151 -28.4078 52.2314 +95.3032 -29.0088 53.3365 +95.4407 -29.6132 54.4478 +95.5633 -30.221 55.5653 +93.7641 -30.2175 55.5589 +93.7031 -30.7697 56.5742 +93.0557 -31.1318 57.24 +93.2162 -31.7683 58.4103 +93.7651 -32.5489 59.8455 +93.6493 -33.1092 60.8756 +93.9195 -33.8146 62.1727 +93.1397 -34.1468 62.7834 +93.3005 -34.828 64.0359 +93.2086 -35.4239 65.1315 +93.2575 -36.0817 66.3411 +93.2894 -36.7428 67.5564 +93.6106 -37.5295 69.003 +93.2258 -38.0425 69.9462 +93.0557 -38.6492 71.0617 +93.3199 -39.4473 72.5291 +93.116 -40.0587 73.6532 +92.0122 -40.284 74.0675 +89.664 -39.9492 73.452 +89.221 -40.4531 74.3784 +87.112 -40.193 73.9001 +86.3746 -40.5547 74.5651 +84.57 -40.4065 74.2927 +83.1979 -40.4508 74.3742 +81.414 -40.2806 74.0613 +81.5012 -41.0344 75.4472 +79.7256 -40.8485 75.1054 +78.5711 -40.9681 75.3252 +77.5522 -41.1521 75.6635 +76.9964 -41.5812 76.4526 +75.0532 -41.2516 75.8465 +74.2969 -41.5629 76.4189 +71.8637 -40.9195 75.236 +70.223 -40.7015 74.835 +68.9106 -40.6585 74.7561 +68.5389 -41.1687 75.694 +67.4149 -41.2269 75.8012 +67.2073 -41.8476 76.9423 +65.5377 -41.5538 76.4022 +65.0141 -41.9792 77.1843 +63.2457 -41.5915 76.4715 +62.4836 -41.8536 76.9534 +60.7417 -41.4472 76.2062 +60.0391 -41.7383 76.7413 +57.5409 -40.7591 74.941 +56.8495 -41.0373 75.4524 +54.8452 -40.3511 74.1909 +54.3747 -40.7797 74.9789 +52.727 -40.3161 74.1265 +51.9886 -40.5344 74.5278 +50.6282 -40.2581 74.0199 +49.688 -40.303 74.1025 +48.75 -40.3432 74.1763 +48.0113 -40.5449 74.5472 +46.3963 -39.9913 73.5294 +45.8072 -40.3092 74.1138 +44.5059 -39.9924 73.5314 +43.9123 -40.3036 74.1035 +43.0383 -40.3575 74.2025 +42.0318 -40.2788 74.0579 +40.637 -39.8084 73.193 +40.2958 -40.3644 74.2154 +38.9654 -39.9247 73.4068 +38.5665 -40.4334 74.3422 +37.1351 -39.8507 73.2707 +36.645 -40.2669 74.036 +35.4393 -39.8904 73.3437 +34.939 -40.3015 74.0996 +33.9768 -40.1798 73.8759 +32.9485 -39.9643 73.4796 +32.1098 -39.9664 73.4834 +31.2735 -39.9644 73.4799 +30.3372 -39.8239 73.2215 +29.9091 -40.3543 74.1967 +28.7802 -39.9353 73.4263 +28.1449 -40.1897 73.8941 +27.1317 -39.8966 73.3552 +26.402 -40.0082 73.5603 +25.5533 -39.934 73.4239 +24.9365 -40.2223 73.9539 +23.8426 -39.7276 73.0444 +23.3566 -40.2399 73.9863 +22.2326 -39.6435 72.8897 +21.6579 -40.0122 73.5677 +20.7085 -39.6837 72.9638 +19.9829 -39.7686 73.1198 +19.0758 -39.478 72.5854 +18.6787 -40.2557 74.0153 +17.6933 -39.7712 73.1246 +17.0659 -40.0776 73.6879 +16.2378 -39.9127 73.3848 +15.6176 -40.2607 74.0246 +14.708 -39.8538 73.2764 +13.9795 -39.9136 73.3864 +13.25 -39.9704 73.4908 +12.5195 -40.0241 73.5895 +11.6627 -39.649 72.8998 +11.1078 -40.3119 74.1187 +10.2614 -39.9298 73.4163 +9.49775 -39.8287 73.2303 +8.75949 -39.8192 73.2129 +8.07021 -40.0445 73.6271 +7.30365 -39.8862 73.3361 +6.53564 -39.677 72.9514 +5.84559 -39.9411 73.4369 +5.14029 -40.1547 73.8297 +4.35959 -39.7451 73.0767 +3.63349 -39.7618 73.1073 +2.90713 -39.7755 73.1325 +2.19363 -40.0249 73.591 +1.45379 -39.7936 73.1658 +0.731284 -40.0371 73.6134 +5.1311e-15 -40.0386 73.6162 +-0.731284 -40.0371 73.6134 +-1.46251 -40.0325 73.605 +-2.18054 -39.7861 73.152 +-2.92458 -40.0142 73.5714 +-3.67275 -40.1914 73.8973 +-4.40669 -40.1746 73.8663 +-5.14029 -40.1547 73.8297 +-5.81071 -39.7028 72.9988 +-6.58272 -39.9628 73.4769 +-7.33851 -40.0766 73.6862 +-8.12772 -40.3299 74.1518 +-8.76994 -39.8668 73.3003 +-9.62227 -40.3509 74.1904 +-10.2614 -39.9298 73.4163 +-11.0686 -40.1697 73.8574 +-11.7184 -39.8382 73.2478 +-12.6229 -40.3549 74.1978 +-13.1249 -39.5929 72.7967 +-13.996 -39.9607 73.4731 +-14.7254 -39.9008 73.363 +-15.3989 -39.697 72.9881 +-16.1806 -39.772 73.1261 +-17.026 -39.9839 73.5157 +-17.5685 -39.4908 72.6091 +-18.6138 -40.1158 73.7581 +-19.1433 -39.6176 72.8422 +-19.9362 -39.6757 72.949 +-20.6601 -39.591 72.7934 +-21.6078 -39.9197 73.3976 +-22.1808 -39.5512 72.72 +-23.223 -40.0097 73.5631 +-23.8702 -39.7736 73.129 +-25.0218 -40.3597 74.2066 +-25.5825 -39.9797 73.5079 +-26.5824 -40.2816 74.063 +-27.3171 -40.1692 73.8564 +-28.2401 -40.3256 74.144 +-29.2686 -40.6129 74.6723 +-30.3764 -40.9848 75.356 +-30.9186 -40.5872 74.6249 +-31.8689 -40.7253 74.8788 +-32.6115 -40.5908 74.6316 +-33.6815 -40.8534 75.1144 +-34.5387 -40.8443 75.0977 +-35.5896 -41.0519 75.4793 +-36.1036 -40.638 74.7184 +-37.0837 -40.7489 74.9222 +-37.8265 -40.5927 74.635 +-38.9397 -40.8247 75.0617 +-39.5571 -40.5309 74.5214 +-40.8125 -40.8819 75.1668 +-41.4261 -40.5814 74.6142 +-42.5673 -40.7919 75.0013 +-43.1745 -40.4852 74.4374 +-44.7434 -41.0665 75.5061 +-45.2101 -40.6253 74.6949 +-46.6661 -41.065 75.5035 +-47.5598 -40.9943 75.3734 +-48.553 -41.0023 75.3882 +-49.3 -40.7983 75.0131 +-50.5001 -40.9617 75.3135 +-51.5553 -40.9953 75.3753 +-52.5111 -40.9418 75.2768 +-53.2569 -40.7213 74.8714 +-54.9657 -41.223 75.7939 +-55.4443 -40.7919 75.0013 +-57.5118 -41.5154 76.3315 +-57.7646 -40.9175 75.2323 +-59.3594 -41.2657 75.8725 +-59.824 -40.821 75.0548 +-61.9029 -41.4646 76.2382 +-62.2465 -40.9344 75.2633 +-64.0624 -41.3646 76.0544 +-65.1766 -41.3249 75.9813 +-66.842 -41.6202 76.5242 +-67.4149 -41.2269 75.8012 +-69.2236 -41.5799 76.4502 +-69.9804 -41.2897 75.9166 +-71.686 -41.5494 76.3941 +-72.635 -41.3587 76.0435 +-74.3618 -41.5993 76.4858 +-75.1188 -41.2876 75.9128 +-77.4603 -41.8317 76.9131 +-78.4221 -41.6137 76.5122 +-79.9223 -41.6726 76.6205 +-81.0214 -41.5125 76.3262 +-83.6351 -42.1088 77.4227 +-84.0537 -41.5867 76.4626 +-86.7726 -42.1888 77.5697 +-87.6812 -41.893 77.0258 +-89.299 -41.9277 77.0896 +-90.2771 -41.6533 76.5851 +-93.5008 -42.3936 77.9462 +-93.9058 -41.8392 76.9269 +-96.3621 -42.1884 77.569 +-97.7979 -42.0728 77.3564 +-100.36 -42.4233 78.0008 +-102.037 -42.3794 77.9201 +-104.48 -42.635 78.3901 +-106.787 -42.812 78.7154 +-110.805 -43.6415 80.2406 +-112.686 -43.5988 80.1622 +-113.791 -43.2463 79.514 +-114.813 -42.8584 78.8009 +-117.02 -42.9016 78.8803 +-120.913 -43.5335 80.0421 +-123.553 -43.6814 80.314 +-125.398 -43.5296 80.035 +-128.793 -43.893 80.7031 +-129.59 -43.3543 79.7127 +-132.932 -43.6513 80.2587 +-134.221 -43.2557 79.5313 +-138.091 -43.6702 80.2934 +-138.213 -42.8845 78.8489 +-139.328 -42.4093 77.9751 +-139.843 -41.7508 76.7644 +-140.174 -41.0414 75.46 +-139.804 -40.1354 73.7943 +-138.808 -39.066 71.828 +-138.997 -38.3424 70.4977 +-141.346 -38.2085 70.2513 +-141.339 -37.4324 68.8243 +-141.138 -36.6137 67.3191 +-140.212 -35.6201 65.4922 +-140.059 -34.8355 64.0497 +-139.71 -34.0116 62.5349 +-140.147 -33.3852 61.3831 +-142.818 -33.2813 61.1921 +-158.855 -36.202 66.5621 +-176.005 -39.2132 72.0987 +-220.666 -48.0477 88.3421 +-225.554 -47.9809 88.2191 +-233.85 -48.5819 89.3243 +-238.227 -48.3144 88.8323 +-243.904 -48.2699 88.7506 +-251.174 -48.4864 89.1486 +-260.517 -49.0306 90.1491 +-264.297 -48.4735 89.1248 +-274.07 -48.9594 90.0183 +-279.934 -48.6808 89.5061 +-289.485 -48.979 90.0543 +-296.798 -48.828 89.7767 +-309.912 -49.5442 91.0935 +-319.555 -49.6087 91.2121 +-329.509 -49.6393 91.2683 +-336.715 -49.1854 90.4338 +-354.188 -50.1271 92.1653 +-362.684 -49.6889 91.3597 +-378.514 -50.1538 92.2144 +-15.165 -1.94147 3.56965 +-16.749 -2.06957 3.80518 +-15.2336 -1.81472 3.3366 +-15.5579 -1.7846 3.28122 +-17.5387 -1.93462 3.55705 +-15.816 -1.67528 3.08022 +-15.0635 -1.5298 2.81274 +-16.2668 -1.58124 2.90732 +-15.2152 -1.41308 2.59813 +-15.0438 -1.33217 2.44937 +-16.2493 -1.36895 2.517 +-15.4847 -1.23807 2.27635 +-16.4944 -1.2482 2.29498 +-15.4286 -1.1017 2.02562 +-14.0618 -0.944232 1.7361 +-14.0785 -0.885565 1.62823 +-14.4912 -0.850123 1.56306 +-14.2081 -0.773447 1.42208 +-15.5145 -0.779099 1.43248 +-13.0397 -0.5999 1.103 +-14.8433 -0.620464 1.14081 +-14.1562 -0.532313 0.978727 +-14.1654 -0.473269 0.870167 +-14.1735 -0.414189 0.761541 +-14.0807 -0.352577 0.64826 +-14.1865 -0.295939 0.544123 +-14.0914 -0.235111 0.432283 +-14.8949 -0.186355 0.342638 +-12.6981 -0.1059 0.194711 +-11.7996 -0.0491992 0.0904593 +93.5 0 0 +94.0964 -0.385818 0.724886 +92.2859 -0.756849 1.42199 +92.6682 -1.14012 2.14208 +92.7435 -1.52166 2.85894 +93.6108 -1.92031 3.60793 +92.4731 -2.277 4.27808 +93.3256 -2.68187 5.03878 +94.17 -3.09391 5.81292 +94.109 -3.4799 6.53813 +94.9374 -3.90247 7.33208 +94.9608 -4.29608 8.07159 +94.9768 -4.69018 8.81203 +95.0848 -5.09003 9.56328 +95.2844 -5.49691 10.3277 +95.377 -5.89961 11.0843 +95.2638 -6.29047 11.8187 +95.0444 -6.67386 12.539 +95.8058 -7.12942 13.3949 +95.5711 -7.51422 14.1179 +95.2309 -7.88948 14.823 +95.0807 -8.27964 15.556 +94.8252 -8.66016 16.271 +94.6607 -9.04863 17.0008 +94.5869 -9.44621 17.7478 +95.2865 -9.92516 18.6477 +95.0985 -10.3155 19.381 +94.9033 -10.705 20.1129 +95.5741 -11.196 21.0353 +95.3625 -11.5874 21.7708 +95.3369 -12.0023 22.5502 +94.9176 -12.3676 23.2367 +95.5494 -12.8729 24.186 +95.3067 -13.2641 24.921 +95.9174 -13.7781 25.8866 +95.5624 -14.1566 26.5979 +95.2959 -14.5479 27.3331 +95.8755 -15.0723 28.3182 +95.4974 -15.4495 29.027 +96.0552 -15.9816 30.0267 +95.6607 -16.3588 30.7354 +96.1962 -16.8985 31.7493 +95.7854 -17.2754 32.4575 +96.5773 -17.8741 33.5823 +96.2417 -18.2694 34.3251 +95.8987 -18.6633 35.0651 +96.3769 -19.221 36.1129 +96.1996 -19.6529 36.9244 +95.8309 -20.0466 37.6641 +95.5459 -20.4582 38.4374 +95.978 -21.0279 39.5078 +95.5838 -21.4206 40.2456 +95.8114 -21.9559 41.2513 +96.2054 -22.5366 42.3423 +95.6941 -22.9088 43.0417 +96.152 -23.5172 44.1848 +95.6232 -23.8885 44.8824 +95.8789 -24.459 45.9542 +95.421 -24.8512 46.6911 +95.7391 -25.4497 47.8156 +95.3494 -25.8648 48.5954 +95.5547 -26.4455 49.6865 +95.6599 -27.0056 50.7389 +95.1546 -27.3968 51.4739 +95.3206 -27.9851 52.5792 +95.3876 -28.5516 53.6435 +95.5246 -29.1463 54.7609 +94.8962 -29.5109 55.4459 +94.2616 -29.8726 56.1255 +94.1976 -30.4176 57.1495 +92.8918 -30.5602 57.4173 +93.2976 -31.2673 58.7458 +93.5224 -31.9248 59.9812 +93.3278 -32.4467 60.9618 +93.2806 -33.0261 62.0503 +93.219 -33.6075 63.1427 +93.1429 -34.1909 64.2388 +93.1304 -34.8055 65.3935 +93.2575 -35.4817 66.6639 +93.2122 -36.1018 67.829 +93.3042 -36.7846 69.1119 +93.3779 -37.4709 70.4013 +93.433 -38.1606 71.6971 +93.6944 -38.9469 73.1746 +93.4876 -39.5496 74.307 +93.1919 -40.1219 75.3822 +90.8341 -39.7975 74.7727 +90.4542 -40.3301 75.7734 +88.1911 -40.0141 75.1796 +88.3004 -40.7694 76.5986 +85.9135 -40.3657 75.8402 +85.3007 -40.7835 76.6251 +83.2895 -40.5233 76.1362 +82.5337 -40.8632 76.775 +80.7486 -40.6846 76.4394 +79.9899 -41.0141 77.0585 +78.4221 -40.9216 76.8846 +77.6591 -41.2415 77.4858 +76.0372 -41.0974 77.2149 +75.271 -41.4076 77.7978 +73.3421 -41.0668 77.1575 +72.7673 -41.4747 77.9239 +69.7916 -40.4935 76.0803 +69.4104 -40.9987 77.0295 +68.831 -41.3928 77.77 +68.4248 -41.8971 78.7175 +66.9218 -41.7258 78.3956 +66.3227 -42.1119 79.121 +64.3037 -41.584 78.1292 +64.0515 -42.1903 79.2683 +62.233 -41.7586 78.4571 +61.0586 -41.7411 78.4243 +59.1067 -41.1719 77.3548 +58.2294 -41.3343 77.66 +55.771 -40.3499 75.8106 +55.3419 -40.8148 76.6839 +53.4689 -40.2034 75.5353 +52.9814 -40.6214 76.3206 +51.3493 -40.1525 75.4395 +50.4493 -40.24 75.604 +48.95 -39.835 74.8431 +48.9961 -40.6885 76.4466 +47.075 -39.9016 74.9681 +46.7138 -40.4234 75.9485 +45.351 -40.074 75.2922 +44.7434 -40.3835 75.8736 +43.1745 -39.8119 74.7996 +42.7011 -40.2397 75.6034 +41.4261 -39.9064 74.9773 +40.9416 -40.3293 75.7717 +39.5571 -39.8568 74.8841 +39.0641 -40.2741 75.668 +37.7045 -39.7888 74.7564 +37.3229 -40.3297 75.7725 +36.338 -40.2217 75.5697 +35.7044 -40.4994 76.0914 +34.2016 -39.773 74.7265 +33.9014 -40.4362 75.9727 +32.719 -40.0474 75.2421 +31.9739 -40.18 75.4913 +30.9186 -39.9122 74.9881 +30.4766 -40.4361 75.9724 +29.0732 -39.671 74.5349 +28.6843 -40.2788 75.6769 +27.6879 -40.0374 75.2233 +26.853 -40.0149 75.1812 +25.9334 -39.8539 74.8786 +25.1922 -39.9587 75.0756 +24.201 -39.654 74.5031 +23.704 -40.1592 75.4522 +22.7243 -39.8464 74.8646 +22.1086 -40.1655 75.4641 +21.144 -39.8443 74.8606 +20.4965 -40.1123 75.3641 +19.4808 -39.6454 74.4869 +19.0034 -40.2742 75.6683 +18.0052 -39.7991 74.7757 +17.3251 -40.0096 75.1711 +16.505 -39.8946 74.9551 +15.8909 -40.2841 75.6869 +14.9337 -39.7925 74.7633 +14.1941 -39.8522 74.8755 +13.3908 -39.7233 74.6331 +12.7116 -39.9625 75.0827 +11.9689 -40.0131 75.1778 +11.2905 -40.2936 75.7047 +10.432 -39.9187 75.0003 +9.73548 -40.1466 75.4286 +8.89537 -39.7645 74.7106 +8.24273 -40.2203 75.5671 +7.41695 -39.8314 74.8363 +6.72394 -40.1413 75.4185 +5.93628 -39.8861 74.9391 +5.23186 -40.1903 75.5107 +4.43286 -39.741 74.6665 +3.73818 -40.2271 75.5797 +2.93854 -39.5365 74.2823 +2.22766 -39.9698 75.0963 +1.46949 -39.5546 74.3163 +0.74001 -39.841 74.8544 +5.15559e-15 -39.5606 74.3276 +-0.747864 -40.2639 75.6488 +-1.46949 -39.5546 74.3163 +-2.24336 -40.2516 75.6258 +-2.93854 -39.5365 74.2823 +-3.73818 -40.2271 75.5797 +-4.45379 -39.9287 75.0192 +-5.25017 -40.331 75.775 +-5.91535 -39.7455 74.6749 +-6.70041 -40.0007 75.1545 +-7.4431 -39.9718 75.1 +-8.21398 -40.0801 75.3035 +-8.86401 -39.6243 74.4472 +-9.82604 -40.5201 76.1302 +-10.4076 -39.8254 74.825 +-11.2253 -40.0607 75.2671 +-11.8854 -39.734 74.6533 +-12.7116 -39.9625 75.0827 +-13.3595 -39.6305 74.4588 +-14.2436 -39.9912 75.1366 +-14.8296 -39.5149 74.2416 +-15.7269 -39.8683 74.9057 +-16.2951 -39.3873 74.0019 +-17.2653 -39.8714 74.9116 +-17.9428 -39.6612 74.5166 +-18.8735 -39.999 75.1512 +-19.5482 -39.7828 74.745 +-20.4965 -40.1123 75.3641 +-21.0956 -39.7532 74.6894 +-22.2838 -40.4839 76.0623 +-22.802 -39.9826 75.1204 +-23.7842 -40.2951 75.7075 +-24.449 -40.0605 75.2668 +-25.4478 -40.3642 75.8373 +-26.0211 -39.9887 75.1319 +-27.3642 -40.7767 76.6124 +-27.7806 -40.1714 75.4752 +-28.8747 -40.5461 76.1792 +-29.7244 -40.5594 76.2042 +-30.8438 -40.9232 76.8877 +-31.4317 -40.5745 76.2324 +-32.4642 -40.7961 76.6488 +-32.934 -40.3105 75.7365 +-34.1946 -40.786 76.6298 +-34.726 -40.3828 75.8723 +-36.2401 -41.1071 77.2331 +-36.7678 -40.6974 76.4634 +-37.6818 -40.7175 76.5011 +-38.4366 -40.5614 76.2079 +-39.6861 -40.9153 76.8729 +-40.3178 -40.6233 76.3242 +-41.8457 -41.2198 77.4449 +-42.2151 -40.6666 76.4055 +-43.6381 -41.1227 77.2624 +-43.9917 -40.5654 76.2154 +-45.6669 -41.217 77.4397 +-46.2899 -40.9037 76.8511 +-47.4773 -41.084 77.1898 +-47.8022 -40.5179 76.1262 +-49.4886 -41.0974 77.2148 +-50.05 -40.7301 76.5249 +-51.9212 -41.414 77.8098 +-52.2249 -40.8371 76.7259 +-53.9741 -41.3825 77.7507 +-54.2107 -40.7612 76.5833 +-55.8254 -41.1714 77.354 +-56.7514 -41.0592 77.1432 +-58.2845 -41.3734 77.7335 +-58.6034 -40.8213 76.6961 +-60.5488 -41.3926 77.7696 +-61.0859 -40.9888 77.0109 +-62.774 -41.3488 77.6873 +-63.3633 -40.9758 76.9865 +-65.3115 -41.4698 77.9147 +-66.0793 -41.2005 77.4086 +-68.2422 -41.7853 78.5074 +-68.4616 -41.1707 77.3526 +-70.9044 -41.8812 78.6876 +-71.4908 -41.4794 77.9326 +-73.5943 -41.946 78.8093 +-73.792 -41.3187 77.6308 +-76.1153 -41.8721 78.6704 +-76.6933 -41.452 77.8811 +-79.3156 -42.1213 79.1386 +-79.6935 -41.585 78.131 +-81.7464 -41.9148 78.7507 +-82.3172 -41.475 77.9243 +-85.2183 -42.1924 79.2722 +-85.3735 -41.5372 78.0413 +-87.7538 -41.9564 78.8288 +-89.1662 -41.894 78.7115 +-91.5814 -42.2842 79.4447 +-92.5071 -41.9724 78.8589 +-95.4593 -42.5618 79.9662 +-95.5879 -41.8803 78.6859 +-98.6477 -42.4708 79.7954 +-99.6557 -42.1591 79.2096 +-102.457 -42.5894 80.0182 +-103.697 -42.3527 79.5734 +-106.761 -42.8413 80.4914 +-108.472 -42.7644 80.3468 +-111.963 -43.364 81.4734 +-114.085 -43.4059 81.5522 +-115.591 -43.1998 81.1649 +-116.232 -42.6663 80.1627 +-120.431 -43.418 81.575 +-121.712 -43.0923 80.9629 +-125.402 -43.5977 81.9126 +-126.126 -43.0542 80.8915 +-130.258 -43.6541 82.0186 +-131.064 -43.1184 81.012 +-135.486 -43.7503 82.1993 +-136.708 -43.3245 81.3993 +-138.008 -42.9179 80.6354 +-138.213 -42.1713 79.2326 +-140.003 -41.906 78.7341 +-140.013 -41.1063 77.2316 +-139.833 -40.2606 75.6427 +-139.375 -39.347 73.9261 +-140.359 -38.8455 72.9841 +-140.643 -38.1511 71.6794 +-141.259 -37.5499 70.5497 +-141.513 -36.8554 69.2449 +-139.556 -35.6012 66.8885 +-140.3 -35.0497 65.8523 +-140.059 -34.2562 64.3615 +-139.621 -33.4247 62.7992 +-145.695 -34.1297 64.1239 +-151.627 -34.7463 65.2823 +-179.885 -40.3128 75.7408 +-215.339 -47.1787 88.6405 +-226.034 -48.3984 90.9322 +-230.67 -48.2532 90.6594 +-236.326 -48.28 90.7097 +-241.633 -48.1902 90.5411 +-252.496 -49.1393 92.3243 +-256.737 -48.7362 91.5669 +-263.029 -48.6803 91.4618 +-267.471 -48.2396 90.6338 +-279.035 -49.0171 92.0947 +-283.411 -48.4655 91.0584 +-295.707 -49.1994 92.4373 +-301.62 -48.7958 91.679 +-317.404 -49.8981 93.7499 +-323.169 -49.3352 92.6924 +-336.853 -49.9014 93.7561 +-340.923 -48.972 92.01 +-362.146 -50.4013 94.6953 +-370.47 -49.9117 93.7755 +-382.947 -49.8976 93.749 +-14.7787 -1.86054 3.49563 +-15.1031 -1.83517 3.44796 +-16.495 -1.9323 3.63046 +-15.0717 -1.70007 3.19415 +-16.272 -1.76504 3.31621 +-16.4018 -1.70843 3.20985 +-16.2373 -1.62158 3.04666 +-15.5808 -1.48937 2.79828 +-14.6262 -1.33578 2.5097 +-14.4538 -1.25864 2.36477 +-15.6584 -1.29724 2.43728 +-15.4847 -1.21748 2.28743 +-15.3092 -1.13924 2.14043 +-15.033 -1.05559 1.98328 +-15.1511 -1.00046 1.87969 +-14.6734 -0.907635 1.70529 +-14.0942 -0.813079 1.52764 +-14.0094 -0.749947 1.40902 +-14.7189 -0.726854 1.36563 +-14.5328 -0.657473 1.23528 +-14.146 -0.58148 1.0925 +-15.3525 -0.567695 1.0666 +-14.0657 -0.46212 0.868244 +-14.0737 -0.404432 0.759858 +-14.0807 -0.346713 0.651415 +-13.687 -0.280771 0.52752 +-13.8915 -0.227921 0.428225 +-14.1951 -0.174646 0.32813 +-12.7981 -0.104958 0.197199 +-11.8995 -0.0487911 0.0916701 +93.9 0 0 +93.2964 -0.376037 0.722146 +94.4856 -0.761718 1.46281 +93.7679 -1.13404 2.17783 +93.8428 -1.51353 2.9066 +93.6108 -1.88767 3.62511 +94.2706 -2.28181 4.38201 +94.9226 -2.68141 5.14941 +94.8683 -3.06389 5.88391 +94.8068 -3.44613 6.61797 +94.7381 -3.82811 7.35153 +95.0603 -4.2275 8.11853 +94.9768 -4.61047 8.854 +95.0848 -5.00353 9.60882 +95.2844 -5.4035 10.3769 +95.2779 -5.79335 11.1256 +95.1648 -6.17711 11.8626 +95.0444 -6.56045 12.5987 +95.707 -7.00106 13.4449 +95.3738 -7.37128 14.1559 +95.2309 -7.75541 14.8936 +94.9824 -8.13053 15.6139 +94.9233 -8.52182 16.3654 +94.6607 -8.89486 17.0818 +95.4672 -9.37209 17.9983 +95.2865 -9.7565 18.7365 +95.0985 -10.1402 19.4733 +94.9033 -10.5231 20.2086 +95.7682 -11.0281 21.1784 +95.3625 -11.3905 21.8744 +95.3369 -11.7983 22.6576 +95.9776 -12.2932 23.608 +95.5494 -12.6541 24.3011 +95.4984 -13.065 25.0901 +95.9174 -13.5439 26.0098 +95.5624 -13.9161 26.7246 +95.2959 -14.3007 27.4632 +95.9704 -14.8308 28.4812 +95.5919 -15.202 29.194 +96.1494 -15.7254 30.1993 +95.8486 -16.1124 30.9424 +96.1962 -16.6113 31.9005 +95.8787 -16.9984 32.6438 +95.5539 -17.3842 33.3847 +96.2417 -17.9589 34.4885 +95.8987 -18.3461 35.232 +96.3769 -18.8943 36.2849 +96.1996 -19.3189 37.1002 +95.8309 -19.7059 37.8434 +95.5459 -20.1105 38.6205 +95.978 -20.6705 39.6959 +95.5838 -21.0566 40.4372 +95.8114 -21.5828 41.4477 +96.2054 -22.1536 42.5439 +95.6941 -22.5195 43.2467 +96.152 -23.1176 44.3952 +95.6232 -23.4826 45.0961 +95.9668 -24.0654 46.2154 +95.421 -24.4289 46.9134 +95.7391 -25.0172 48.0433 +95.2628 -25.4021 48.7825 +95.5547 -25.9961 49.9231 +95.6599 -26.5467 50.9805 +95.2399 -26.9554 51.7654 +95.151 -27.4606 52.7356 +95.3876 -28.0664 53.899 +95.4407 -28.6258 54.9733 +95.5633 -29.2134 56.1016 +95.5051 -29.7524 57.1367 +95.5162 -30.3193 58.2255 +94.0387 -30.4117 58.4029 +93.2162 -30.7091 58.974 +94.2505 -31.6266 60.736 +92.4435 -31.5931 60.6718 +93.2008 -32.437 62.2924 +93.1397 -33.0083 63.3894 +93.2217 -33.6383 64.5994 +93.2086 -34.2428 65.7601 +93.2575 -34.8787 66.9814 +93.2894 -35.5177 68.2085 +93.2276 -36.1298 69.384 +93.2258 -36.7741 70.6214 +93.5085 -37.5424 72.0967 +93.0203 -38.0096 72.994 +93.7106 -38.9703 74.8389 +93.413 -39.5337 75.9209 +92.2968 -39.7512 76.3386 +91.9049 -40.2806 77.3553 +89.1262 -39.7512 76.3386 +89.6556 -40.6916 78.1445 +86.6913 -40.039 76.8912 +86.2118 -40.5186 77.8123 +84.1231 -40.2333 77.2644 +83.9793 -40.8724 78.4917 +81.567 -40.3986 77.5818 +81.2059 -40.9301 78.6025 +79.6265 -40.844 78.4371 +79.4481 -41.4747 79.6483 +77.2181 -41.0264 78.7875 +76.6998 -41.4766 79.652 +75.0776 -41.3242 79.3594 +74.5484 -41.7678 80.2112 +71.8055 -40.954 78.6484 +70.7177 -41.0611 78.8541 +68.831 -40.6894 78.1403 +68.79 -41.405 79.5145 +68.1856 -41.7913 80.2564 +67.9288 -42.3987 81.4229 +66.0671 -41.9983 80.6539 +65.5614 -42.4509 81.5232 +63.4949 -41.8812 80.4291 +62.1914 -41.793 80.2597 +60.3928 -41.3529 79.4144 +59.6644 -41.6332 79.9528 +57.1326 -40.6326 78.0311 +56.4702 -40.9392 78.62 +54.7407 -40.4602 77.7002 +53.9741 -40.6793 78.1209 +52.2249 -40.1431 77.0912 +51.7689 -40.5909 77.9511 +50.25 -40.198 77.1966 +49.9317 -40.7608 78.2774 +47.8992 -39.9102 76.6439 +47.5727 -40.467 77.7133 +46.1491 -40.0863 76.9821 +45.6208 -40.4756 77.7298 +44.2641 -40.1229 77.0525 +43.8612 -40.6305 78.0272 +42.2151 -39.9755 76.7694 +41.7165 -40.3942 77.5735 +40.191 -39.8074 76.4465 +39.935 -40.4722 77.7232 +38.6807 -40.1253 77.057 +38.2799 -40.6609 78.0855 +36.9241 -40.1759 77.1541 +36.3932 -40.5792 77.9286 +35.0632 -40.082 76.9738 +34.6344 -40.6085 77.985 +33.2207 -39.9704 76.7596 +32.6743 -40.3624 77.5123 +31.7053 -40.2321 77.2622 +30.8438 -40.2278 77.2538 +30.0174 -40.2632 77.3218 +29.4141 -40.6017 77.9718 +28.2133 -40.1037 77.0156 +27.6349 -40.4802 77.7385 +26.2842 -39.7067 76.2531 +26.1862 -40.8296 78.4096 +24.6971 -39.7793 76.3925 +24.1583 -40.2334 77.2646 +23.1902 -39.9723 76.7632 +22.7095 -40.5561 77.8844 +21.5794 -39.9739 76.7663 +21.1035 -40.5982 77.9652 +19.8857 -39.7817 76.3972 +19.4579 -40.5367 77.8471 +18.3794 -39.9359 76.6934 +17.7437 -40.2801 77.3542 +16.753 -39.806 76.4439 +16.219 -40.417 77.6171 +15.1942 -39.7985 76.4295 +14.5902 -40.2682 77.3314 +13.688 -39.9149 76.653 +13.0664 -40.3797 77.5455 +12.1776 -40.0192 76.8533 +11.5777 -40.6163 77.9998 +10.5539 -39.6987 76.2377 +9.9732 -40.4281 77.6384 +9.08352 -39.9155 76.6541 +8.3865 -40.2264 77.2512 +7.57383 -39.9826 76.783 +6.86517 -40.2879 77.3693 +6.04091 -39.8994 76.6231 +5.34175 -40.3371 77.4638 +4.50089 -39.6652 76.1735 +3.80361 -40.2356 77.2688 +2.99089 -39.557 75.9657 +2.29048 -40.3986 77.5819 +1.51138 -39.9907 76.7985 +0.763572 -40.411 77.6056 +5.30255e-15 -39.9968 76.8103 +-0.758336 -40.1338 77.0734 +-1.50614 -39.8522 76.5325 +-2.28263 -40.2601 77.3159 +-3.01183 -39.834 76.4975 +-3.8167 -40.374 77.5346 +-4.5637 -40.2187 77.2364 +-5.32343 -40.1988 77.1982 +-6.01998 -39.7612 76.3577 +-6.86517 -40.2879 77.3693 +-7.59998 -40.1207 77.0481 +-8.41526 -40.3644 77.5161 +-9.05216 -39.7777 76.3895 +-10.109 -40.9787 78.6959 +-10.6636 -40.1113 77.03 +-11.5777 -40.6163 77.9998 +-12.1359 -39.882 76.5898 +-12.9777 -40.1056 77.0192 +-13.6411 -39.7781 76.3902 +-14.5902 -40.2682 77.3314 +-15.2984 -40.0715 76.9536 +-16.1096 -40.1445 77.0938 +-16.753 -39.806 76.4439 +-17.8634 -40.5516 77.8758 +-18.2546 -39.6649 76.1729 +-19.5661 -40.7622 78.2801 +-19.9532 -39.9167 76.6565 +-21.1035 -40.5982 77.9652 +-21.6762 -40.1532 77.1105 +-22.6344 -40.422 77.6267 +-23.1902 -39.9723 76.7632 +-24.3989 -40.6339 78.0338 +-25.083 -40.4008 77.5862 +-26.0158 -40.5639 77.8993 +-26.5181 -40.06 76.9316 +-27.695 -40.5683 77.9077 +-28.3987 -40.3673 77.5217 +-29.5093 -40.7331 78.2241 +-30.3755 -40.7436 78.2444 +-31.4446 -41.0114 78.7587 +-31.9105 -40.4925 77.7622 +-33.3047 -41.1411 79.0077 +-33.8658 -40.7466 78.2501 +-35.1841 -41.2531 79.2229 +-35.6251 -40.7243 78.2074 +-36.8141 -41.0486 78.83 +-37.393 -40.686 78.1339 +-38.6388 -41.042 78.8175 +-39.5348 -41.0113 78.7585 +-40.6814 -41.2287 79.1759 +-41.4589 -41.0631 78.8581 +-42.4484 -41.1029 78.9344 +-42.8727 -40.5982 77.9652 +-44.3967 -41.1265 78.9797 +-44.7635 -40.5756 77.9218 +-46.5904 -41.3359 79.3819 +-46.9941 -40.8204 78.3918 +-48.3839 -41.157 79.0384 +-49.3536 -41.122 78.9711 +-50.8674 -41.5245 79.744 +-51.15 -40.9179 78.5792 +-52.7332 -41.347 79.4031 +-53.2034 -40.8953 78.5357 +-54.7578 -41.27 79.2553 +-55.9595 -41.3611 79.4302 +-57.4373 -41.6403 79.9665 +-57.7317 -41.0587 78.8494 +-59.4436 -41.4791 79.6569 +-60.2251 -41.238 79.1938 +-61.8516 -41.5646 79.8211 +-62.7493 -41.3894 79.4846 +-64.4 -41.6989 80.079 +-65.5381 -41.662 80.0081 +-66.5012 -41.5076 79.7117 +-67.644 -41.4593 79.6189 +-69.5206 -41.8447 80.359 +-70.1238 -41.4537 79.6081 +-72.0249 -41.8201 80.3118 +-72.6236 -41.4205 79.5444 +-74.9936 -42.0172 80.6902 +-75.9775 -41.8195 80.3106 +-77.7389 -42.0385 80.7311 +-78.7927 -41.863 80.3941 +-80.7071 -42.1319 80.9105 +-80.9648 -41.5304 79.7554 +-83.9759 -42.3262 81.2837 +-84.1586 -41.6821 80.0467 +-87.008 -42.3464 81.3225 +-87.8048 -41.9942 80.646 +-90.0668 -42.3304 81.2918 +-90.5804 -41.8352 80.3407 +-93.8638 -42.6015 81.8124 +-94.0896 -41.9649 80.5898 +-96.8375 -42.4425 81.5069 +-98.4402 -42.3971 81.4198 +-101.449 -42.9348 82.4523 +-101.588 -42.2462 81.1299 +-104.404 -42.6614 81.9273 +-105.433 -42.3298 81.2906 +-108.738 -42.8932 82.3724 +-110.004 -42.6314 81.8697 +-113.583 -43.244 83.0462 +-114.629 -42.8718 82.3314 +-119.269 -43.8169 84.1464 +-120.25 -43.3914 83.3293 +-123.922 -43.9173 84.3392 +-124.348 -43.2772 83.1099 +-129.662 -44.3128 85.0988 +-129.281 -43.3813 83.3099 +-134.655 -44.3606 85.1905 +-134.669 -43.5513 83.6363 +-137.794 -43.7393 83.9973 +-138.532 -43.1564 82.878 +-139.259 -42.571 81.7537 +-139.723 -41.9075 80.4795 +-140.256 -41.2683 79.2519 +-139.843 -40.3588 77.5054 +-139.066 -39.3592 75.5858 +-139.118 -38.6069 74.1411 +-140.532 -38.2323 73.4216 +-141.855 -37.8261 72.6416 +-140.911 -36.8208 70.711 +-140.551 -35.9828 69.1016 +-140.259 -35.1725 67.5456 +-139.771 -34.324 65.9161 +-140.236 -33.7167 64.7499 +-141.848 -33.3809 64.1049 +-158.851 -36.5791 70.2469 +-163.041 -36.7271 70.5311 +-218.606 -48.1578 92.4827 +-220.777 -47.5482 91.312 +-231.039 -48.6294 93.3883 +-233.685 -48.053 92.2814 +-243.479 -48.8959 93.9001 +-247.8 -48.5804 93.2943 +-258.686 -49.4884 95.0381 +-260.539 -48.6169 93.3644 +-267.402 -48.6483 93.4247 +-273.352 -48.4627 93.0681 +-285.217 -49.2515 94.583 +-290.459 -48.8266 93.767 +-302.305 -49.4427 94.9502 +-308.712 -49.0945 94.2815 +-323.568 -50.0025 96.0252 +-330.017 -49.5245 95.1072 +-342.861 -49.9286 95.8833 +-349.242 -49.3143 94.7037 +-368.474 -50.4103 96.8084 +-377.872 -50.0436 96.1042 +-386.994 -49.5679 95.1906 +-399.217 -49.4048 94.8775 +-15.5872 -1.8618 3.57542 +-15.1366 -1.74304 3.34735 +-16.3358 -1.81135 3.47853 +-15.8822 -1.69349 3.2522 +-15.816 -1.61942 3.10995 +-15.3569 -1.5076 2.89521 +-16.3647 -1.53773 2.95306 +-16.4913 -1.48052 2.84321 +-14.2572 -1.22042 2.34371 +-15.4615 -1.25915 2.41809 +-14.8929 -1.15105 2.21049 +-16.0993 -1.17768 2.26163 +-15.033 -1.03765 1.99272 +-14.4579 -0.938461 1.80223 +-14.376 -0.874124 1.67868 +-13.9949 -0.793637 1.52411 +-13.6119 -0.716285 1.37556 +-14.4206 -0.700018 1.34432 +-14.7319 -0.655153 1.25816 +-14.4448 -0.583676 1.1209 +-15.2528 -0.554422 1.06472 +-13.4671 -0.434936 0.835256 +-15.3713 -0.434214 0.833868 +-13.6812 -0.331153 0.635949 +-15.0856 -0.304203 0.584195 +-13.7916 -0.222436 0.427169 +-13.3954 -0.162006 0.311118 +-11.5982 -0.093502 0.179562 +-11.8995 -0.047962 0.0921067 +94.2 0 0 +93.5964 -0.370694 0.727842 +93.6857 -0.742152 1.45718 +93.8678 -1.11554 2.19031 +93.7429 -1.48566 2.91703 +94.51 -1.8727 3.67697 +94.2706 -2.24218 4.40242 +94.9226 -2.63484 5.17339 +95.0679 -3.017 5.92375 +95.0062 -3.39339 6.66278 +94.9374 -3.76953 7.4013 +94.9608 -4.14972 8.1478 +95.8719 -4.57307 8.97903 +95.0848 -4.91662 9.65358 +94.4904 -5.26539 10.3384 +95.377 -5.69862 11.189 +95.2638 -6.07617 11.9303 +95.0444 -6.4465 12.6574 +95.707 -6.87946 13.5075 +95.3738 -7.24325 14.2218 +95.2309 -7.62071 14.9629 +95.0807 -7.99757 15.7029 +94.9233 -8.3738 16.4416 +94.7587 -8.74944 17.1792 +94.5869 -9.1244 17.9154 +95.2865 -9.58704 18.8237 +95.0985 -9.96404 19.564 +95.0978 -10.3615 20.3444 +95.5741 -10.8146 21.2339 +95.3625 -11.1927 21.9763 +95.1437 -11.5699 22.7171 +95.1103 -11.9705 23.5036 +95.5494 -12.4344 24.4143 +95.3067 -12.8123 25.1563 +95.8217 -13.2954 26.1049 +95.5624 -13.6744 26.849 +95.391 -14.0663 27.6187 +95.9704 -14.5732 28.6138 +95.5919 -14.9379 29.33 +96.0552 -15.4372 30.3102 +95.7547 -15.817 31.056 +95.5406 -16.2115 31.8307 +95.8787 -16.7031 32.7959 +95.5539 -17.0822 33.5402 +96.2417 -17.647 34.6492 +95.9911 -18.0448 35.4303 +95.6405 -18.4243 36.1754 +96.1079 -18.9653 37.2375 +95.8309 -19.3636 38.0197 +95.5459 -19.7612 38.8004 +95.8874 -20.2923 39.8431 +96.3058 -20.8471 40.9325 +95.8114 -21.2079 41.6408 +96.2054 -21.7688 42.7421 +95.7832 -22.149 43.4885 +96.152 -22.716 44.602 +95.7115 -23.096 45.348 +95.8789 -23.6257 46.3881 +95.5085 -24.0266 47.1751 +95.7391 -24.5827 48.2671 +95.2628 -24.9609 49.0097 +95.4685 -25.5215 50.1105 +95.6599 -26.0856 51.218 +95.922 -26.6769 52.379 +95.151 -26.9836 52.9812 +95.5563 -27.6277 54.2457 +95.5246 -28.1534 55.278 +94.9796 -28.5306 56.0186 +95.0077 -29.0833 57.1039 +95.1866 -29.6898 58.2947 +94.5301 -30.0397 58.9816 +93.7861 -30.3602 59.611 +93.846 -30.9439 60.757 +93.167 -31.2874 61.4315 +93.2806 -31.901 62.6362 +93.7744 -32.656 64.1186 +93.2217 -33.0541 64.9003 +93.2086 -33.648 66.0664 +93.2575 -34.2729 67.2934 +93.2894 -34.9008 68.5262 +93.3042 -35.5314 69.7644 +93.2258 -36.1354 70.9503 +93.2821 -36.801 72.2572 +93.245 -37.4397 73.5112 +93.339 -38.1416 74.8893 +92.602 -38.5098 75.6123 +93.0282 -39.3703 77.3019 +92.993 -40.0496 78.6357 +91.572 -40.1326 78.7987 +90.9394 -40.5574 79.6327 +88.6712 -40.2421 79.0136 +87.9641 -40.6241 79.7637 +85.443 -40.1548 78.8422 +86.3197 -41.2817 81.0549 +83.613 -40.6927 79.8983 +83.03 -41.1226 80.7425 +80.6972 -40.6742 79.862 +80.2433 -41.1622 80.8201 +78.8583 -41.1701 80.8358 +78.2585 -41.5844 81.6492 +76.2989 -41.267 81.026 +75.6933 -41.6726 81.8224 +73.7563 -41.336 81.1614 +72.8965 -41.591 81.6621 +70.247 -40.8052 80.1193 +69.7032 -41.2259 80.9453 +68.7273 -41.3917 81.2708 +68.94 -42.2824 83.0198 +66.9487 -41.8195 82.1109 +66.7808 -42.4895 83.4264 +64.6994 -41.9345 82.3367 +63.834 -42.1517 82.7632 +61.3994 -41.3118 81.114 +60.4371 -41.4399 81.3655 +58.5487 -40.9164 80.3377 +57.8672 -41.2233 80.9403 +55.6945 -40.4503 79.4224 +55.3326 -40.9788 80.4602 +53.667 -40.5351 79.5889 +53.19 -40.9807 80.4639 +51.15 -40.2072 78.9452 +50.9166 -40.8428 80.1931 +49.4506 -40.4872 79.4948 +48.4316 -40.482 79.4848 +46.6655 -39.8308 78.2061 +46.6828 -40.6985 79.9097 +45.1267 -40.1943 78.9199 +44.8429 -40.8183 80.1451 +43.1357 -40.1378 78.8088 +42.7067 -40.6348 79.7847 +41.0362 -39.9386 78.4178 +40.8888 -40.7191 79.9502 +39.2908 -40.0503 78.637 +38.878 -40.5789 79.675 +37.393 -39.9794 78.4978 +37.082 -40.6291 79.7735 +35.7375 -40.1432 78.8195 +35.404 -40.7899 80.0893 +34.0808 -40.2931 79.1137 +33.5148 -40.6815 79.8765 +32.2183 -40.173 78.878 +31.4446 -40.2991 79.1256 +30.4732 -40.1646 78.8615 +29.8901 -40.542 79.6026 +28.924 -40.3999 79.3235 +28.1461 -40.5129 79.5454 +27.0151 -40.102 78.7387 +26.3282 -40.338 79.202 +25.3311 -40.0917 78.7184 +24.773 -40.5404 79.5994 +23.6302 -40.0233 78.584 +23.0099 -40.379 79.2824 +21.8697 -39.808 78.1613 +21.4536 -40.5551 79.6281 +20.4705 -40.2405 79.0105 +19.8259 -40.5859 79.6886 +18.8576 -40.2633 79.0553 +18.1425 -40.4699 79.4609 +17.0965 -39.9165 78.3744 +16.6381 -40.7413 79.9938 +15.611 -40.1799 78.8916 +14.8378 -40.2402 79.01 +14.0165 -40.163 78.8583 +13.362 -40.576 79.6693 +12.3864 -39.9982 78.5349 +11.7343 -40.4507 79.4233 +10.7732 -39.82 78.1848 +10.109 -40.267 79.0625 +9.27167 -40.0346 78.6063 +8.55903 -40.3409 79.2076 +7.73071 -40.102 78.7386 +6.98286 -40.2668 79.0621 +6.12462 -39.7496 78.0467 +5.45163 -40.4519 79.4255 +4.6108 -39.9281 78.3971 +3.84287 -39.9448 78.4299 +3.07465 -39.9585 78.4568 +2.3376 -40.5136 79.5467 +1.53756 -39.9768 78.4927 +0.776662 -40.3898 79.3036 +5.39439e-15 -39.9829 78.5047 +-0.776662 -40.3898 79.3036 +-1.53756 -39.9768 78.4927 +-2.32975 -40.3775 79.2795 +-3.08512 -40.0946 78.724 +-3.89521 -40.4889 79.4982 +-4.6108 -39.9281 78.3971 +-5.43332 -40.316 79.1587 +-6.20833 -40.2929 79.1134 +-6.98286 -40.2668 79.0621 +-7.67842 -39.8307 78.206 +-8.58778 -40.4764 79.4737 +-9.27167 -40.0346 78.6063 +-10.2675 -40.8982 80.302 +-10.8464 -40.0902 78.7155 +-11.7996 -40.6757 79.865 +-12.3447 -39.8634 78.2701 +-13.4063 -40.7107 79.9337 +-13.8288 -39.6251 77.8021 +-15.0688 -40.8669 80.2404 +-15.5068 -39.9117 78.365 +-16.6381 -40.7413 79.9938 +-17.0965 -39.9165 78.3744 +-18.282 -40.7812 80.0722 +-18.7952 -40.1301 78.7938 +-19.8475 -40.6302 79.7756 +-20.3356 -39.9752 78.4896 +-21.4069 -40.4668 79.4548 +-22.16 -40.3364 79.1989 +-23.2853 -40.8623 80.2313 +-23.8372 -40.374 79.2726 +-25.0937 -41.0652 80.6298 +-25.4689 -40.3099 79.1468 +-26.5554 -40.6861 79.8855 +-27.2783 -40.4926 79.5055 +-28.5069 -41.0323 80.5652 +-29.0167 -40.5294 79.5777 +-30.3661 -41.1876 80.8701 +-30.8639 -40.6796 79.8726 +-31.8118 -40.7697 80.0495 +-32.5945 -40.6421 79.7991 +-33.83 -41.0641 80.6277 +-34.2958 -40.5473 79.6128 +-35.7339 -41.17 80.8355 +-36.2619 -40.7323 79.9762 +-37.4264 -41.0064 80.5144 +-37.7446 -40.3554 79.2361 +-39.197 -40.9119 80.3287 +-39.9822 -40.7551 80.0208 +-41.262 -41.0907 80.6799 +-41.9237 -40.8024 80.1137 +-43.4386 -41.3312 81.152 +-43.881 -40.8312 80.1704 +-45.646 -41.5494 81.5805 +-45.8076 -40.8009 80.1109 +-47.2369 -41.1815 80.8582 +-48.0269 -40.9929 80.4878 +-49.5768 -41.4393 81.3642 +-50.0808 -41.0032 80.508 +-51.7537 -41.5143 81.5115 +-52.4 -41.1898 80.8745 +-54.0528 -41.6455 81.7691 +-54.388 -41.0797 80.6583 +-56.6911 -41.985 82.4357 +-56.9133 -41.3355 81.1604 +-58.3507 -41.5678 81.6166 +-58.9844 -41.2209 80.9355 +-61.2098 -41.9697 82.4057 +-61.2316 -41.199 80.8924 +-63.041 -41.6281 81.735 +-63.8391 -41.3769 81.2417 +-65.9098 -41.9353 82.3382 +-66.9487 -41.8195 82.1109 +-68.2857 -41.8812 82.2319 +-68.9078 -41.5004 81.4843 +-70.9816 -41.982 82.4299 +-71.7861 -41.6993 81.8748 +-73.7057 -42.0527 82.5687 +-74.3227 -41.6534 81.7847 +-76.3294 -42.0228 82.5101 +-77.1345 -41.7189 81.9133 +-79.4924 -42.2401 82.9366 +-79.7112 -41.6154 81.7101 +-81.7011 -41.9099 82.2884 +-83.1729 -41.9221 82.3122 +-84.9892 -42.093 82.6478 +-86 -41.8543 82.1792 +-88.2471 -42.2035 82.8647 +-89.3331 -41.983 82.4318 +-91.6088 -42.3073 83.0686 +-92.2067 -41.8466 82.1641 +-95.6469 -42.6568 83.7548 +-95.7441 -41.9611 82.3889 +-99.6664 -42.9237 84.2788 +-99.3178 -42.0321 82.5283 +-102.998 -42.8329 84.1007 +-103.594 -42.3323 83.1176 +-106.951 -42.9428 84.3164 +-108.603 -42.8452 84.1246 +-112.54 -43.6218 85.6496 +-113.068 -43.0578 84.5422 +-116.901 -43.7342 85.8703 +-117.971 -43.3552 85.1261 +-123.339 -44.525 87.4229 +-124.19 -44.0348 86.4604 +-128.444 -44.7293 87.8241 +-128.82 -44.055 86.5002 +-132.717 -44.569 87.5093 +-133.569 -44.0416 86.4739 +-136.69 -44.2489 86.8809 +-137.699 -43.758 85.9169 +-137.876 -43.0053 84.4391 +-138.615 -42.4323 83.3139 +-139.676 -41.9568 82.3803 +-139.89 -41.229 80.9514 +-139.834 -40.4296 79.3818 +-139.589 -39.5856 77.7247 +-139.833 -38.889 76.357 +-140.061 -38.1935 74.9913 +-141.48 -37.8216 74.2611 +-140.989 -36.9422 72.5344 +-140.649 -36.1142 70.9087 +-140.551 -35.3578 69.4235 +-139.82 -34.4533 67.6477 +-139.329 -33.6213 66.0139 +-143.252 -33.8436 66.4504 +-153.164 -35.4177 69.5412 +-183.104 -41.4315 81.3491 +-211.936 -46.912 92.1098 +-224.383 -48.5717 95.3685 +-228.027 -48.2567 94.75 +-234.497 -48.4995 95.2268 +-240.902 -48.6765 95.5743 +-248.707 -49.0782 96.3629 +-254.059 -48.9425 96.0965 +-260.996 -49.0632 96.3335 +-263.227 -48.2658 94.7679 +-274.008 -48.9847 96.1793 +-279.887 -48.7596 95.7374 +-292.148 -49.5724 97.3333 +-296.285 -48.9411 96.0938 +-308.244 -49.5384 97.2665 +-317.316 -49.5865 97.3609 +-327.361 -49.7104 97.6042 +-335.247 -49.4353 97.0642 +-344.864 -49.3477 96.8922 +-357.849 -49.6518 97.4892 +-376.145 -50.5658 99.2839 +-382.294 -49.7498 97.6817 +-394.414 -49.6409 97.4679 +-410.036 -49.8624 97.9027 +-428.212 -50.259 98.6815 +-14.9426 -1.69081 3.31983 +-15.5579 -1.69513 3.32832 +-16.6617 -1.74575 3.4277 +-15.1326 -1.52253 2.98942 +-16.7263 -1.61351 3.16807 +-16.6587 -1.53816 3.02011 +-16.295 -1.43749 2.82245 +-16.4204 -1.38117 2.71187 +-15.6584 -1.25304 2.4603 +-15.0902 -1.14604 2.2502 +-15.2104 -1.09333 2.14671 +-15.033 -1.01963 2.002 +-14.4579 -0.922161 1.81062 +-14.376 -0.858942 1.6865 +-14.4912 -0.807504 1.5855 +-14.1087 -0.729535 1.43241 +-14.0228 -0.668885 1.31333 +-14.0351 -0.613326 1.20424 +-15.2418 -0.60518 1.18825 +-15.5519 -0.555476 1.09065 +-14.7639 -0.468539 0.919957 +-14.8722 -0.412819 0.810552 +-13.9808 -0.332526 0.652901 +-13.8868 -0.275164 0.540273 +-14.1913 -0.224908 0.441598 +-13.2954 -0.158004 0.310234 +-12.7981 -0.101383 0.199061 +-3276.18 -12.9755 25.4768 +94.5 0 0 +93.7964 -0.36489 0.73272 +93.8857 -0.730529 1.46694 +94.7675 -1.10622 2.22136 +94.7423 -1.47484 2.96156 +95.4091 -1.85695 3.72886 +94.3705 -2.2047 4.42716 +95.0224 -2.59077 5.20242 +94.9681 -2.96032 5.94449 +95.1059 -3.33663 6.70016 +95.9335 -3.74144 7.51304 +95.0603 -4.08031 8.1935 +95.1757 -4.45928 8.95449 +95.2835 -4.83943 9.71787 +95.4829 -5.22619 10.4945 +95.377 -5.59743 11.24 +95.3628 -5.97447 11.9971 +95.1433 -6.33862 12.7283 +95.9045 -6.77125 13.5971 +95.6697 -7.1367 14.3309 +95.5264 -7.50861 15.0777 +95.1791 -7.86367 15.7907 +95.0215 -8.23362 16.5336 +94.8567 -8.60294 17.2752 +94.6847 -8.97164 18.0156 +95.3841 -9.42647 18.9289 +95.196 -9.79713 19.6732 +95.195 -10.1879 20.4579 +95.6712 -10.6333 21.3523 +95.4594 -11.0051 22.0989 +95.2403 -11.376 22.8437 +95.8812 -11.8533 23.8021 +95.6455 -12.2258 24.5501 +95.3067 -12.5847 25.2709 +95.0567 -12.955 26.0144 +95.6578 -13.445 26.9983 +95.391 -13.8166 27.7445 +95.9704 -14.3144 28.7442 +95.6865 -14.6872 29.4928 +96.0552 -15.163 30.4483 +95.8486 -15.5514 31.2281 +95.5406 -15.9237 31.9756 +95.9721 -16.4225 32.9773 +95.6469 -16.7952 33.7257 +96.3344 -17.3503 34.8405 +95.9911 -17.7244 35.5917 +95.7325 -18.1146 36.3751 +96.2913 -18.6641 37.4785 +95.9223 -19.0379 38.2292 +95.5459 -19.4103 38.9771 +96.0686 -19.9697 40.1002 +96.3058 -20.4769 41.1189 +95.9013 -20.8508 41.8697 +96.3844 -21.422 43.0166 +95.9614 -21.7961 43.7679 +96.2407 -22.3332 44.8465 +95.7115 -22.6859 45.5545 +96.0547 -23.2488 46.6849 +95.5085 -23.5999 47.39 +95.8262 -24.1681 48.531 +95.3494 -24.54 49.2777 +94.9515 -24.9326 50.0661 +95.7456 -25.6454 51.4975 +95.2399 -26.0169 52.2434 +95.4054 -26.5753 53.3648 +95.6406 -27.161 54.541 +94.9375 -27.4835 55.1884 +95.1464 -28.0732 56.3726 +95.1735 -28.6167 57.4641 +94.5273 -28.9606 58.1547 +95.1036 -29.6852 59.6096 +95.1701 -30.2611 60.7662 +94.2505 -30.5254 61.2968 +93.9709 -30.9969 62.2437 +93.2806 -31.3345 62.9215 +93.457 -31.9675 64.1927 +93.4581 -32.5495 65.3612 +93.3652 -33.106 66.4788 +93.3352 -33.6924 67.6563 +93.3666 -34.3094 68.8952 +93.3808 -34.9291 70.1398 +93.3779 -35.5516 71.3897 +93.2066 -36.1182 72.5276 +93.3199 -36.8044 73.9054 +93.4876 -37.5239 75.3502 +93.4868 -38.1873 76.6824 +93.6133 -38.9144 78.1424 +93.5008 -39.5532 79.4252 +93.5861 -40.2871 80.8988 +93.1505 -40.8058 81.9404 +90.6511 -40.4101 81.1458 +89.2958 -40.5068 81.3401 +87.8048 -40.532 81.3907 +87.2834 -41.0014 82.3332 +84.636 -40.4591 81.2442 +84.7866 -41.2469 82.8262 +82.3031 -40.747 81.8223 +81.8998 -41.2659 82.8643 +80.1048 -41.0783 82.4876 +79.2976 -41.3883 83.1102 +77.9701 -41.422 83.1779 +77.7288 -42.0333 84.4054 +75.3297 -41.468 83.2703 +74.7018 -41.8642 84.0657 +72.5865 -41.4155 83.1647 +71.773 -41.6963 83.7286 +69.5096 -41.1195 82.5703 +68.8805 -41.4958 83.326 +68.1831 -41.8343 84.0057 +68.2326 -42.6423 85.6283 +65.9039 -41.9567 84.2515 +65.7031 -42.6156 85.5746 +62.7974 -41.5021 83.3388 +62.1481 -41.8564 84.05 +59.8558 -41.0871 82.5054 +59.1567 -41.3936 83.1208 +57.3903 -40.9417 82.2133 +56.3253 -40.9733 82.2769 +55.1091 -40.8852 82.0999 +54.3066 -41.098 82.5272 +52.45 -40.497 81.3204 +52.2461 -41.1651 82.6619 +50.4687 -40.587 81.501 +50.054 -41.0952 82.5215 +48.0739 -40.3043 80.9334 +47.791 -40.9247 82.1793 +45.9438 -40.1956 80.7151 +45.6907 -40.8515 82.0322 +44.1001 -40.3065 80.9378 +43.8691 -40.9995 82.3295 +42.3463 -40.4818 81.2899 +41.6767 -40.7667 81.862 +40.1449 -40.1942 80.7124 +39.9547 -40.9621 82.2543 +38.5652 -40.5004 81.3273 +38.1153 -41.0196 82.3698 +36.5616 -40.3397 81.0044 +36.0637 -40.8122 81.9533 +34.7617 -40.3683 81.0619 +34.1802 -40.7525 81.8334 +33.0733 -40.5069 81.3403 +32.2791 -40.634 81.5955 +31.2871 -40.5051 81.3367 +30.493 -40.6253 81.578 +29.4184 -40.3608 81.0469 +28.8978 -40.8564 82.042 +27.5707 -40.1999 80.7237 +27.1235 -40.8185 81.966 +25.7721 -40.0655 80.4538 +25.2808 -40.6367 81.6008 +24.3549 -40.5182 81.3629 +23.6859 -40.8272 81.9834 +22.4504 -40.1392 80.6019 +22.0139 -40.8752 82.0798 +21.0329 -40.6118 81.5509 +20.3453 -40.9097 82.149 +19.1695 -40.2024 80.7288 +18.6409 -40.8433 82.0158 +17.5544 -40.2579 80.8402 +16.875 -40.5876 81.5024 +15.9409 -40.3006 80.9259 +15.2669 -40.6688 81.6653 +14.2512 -40.1102 80.5437 +13.5985 -40.5609 81.4488 +12.7622 -40.4799 81.2859 +12.0737 -40.8815 82.0925 +11.1023 -40.3075 80.9399 +10.4147 -40.7478 81.8239 +9.45983 -40.1217 80.5668 +8.81781 -40.8226 81.9742 +7.88759 -40.1892 80.7023 +7.1947 -40.7516 81.8317 +6.35481 -40.5113 81.349 +5.61647 -40.9349 82.1997 +4.7521 -40.421 81.1678 +3.98681 -40.7051 81.7383 +3.13048 -39.9618 80.2456 +2.37687 -40.4626 81.2513 +1.57072 -40.1137 80.5507 +0.800223 -40.8761 82.0816 +5.51073e-15 -40.1198 80.563 +-0.804587 -41.099 82.5292 +-1.57072 -40.1137 80.5507 +-2.41351 -41.0865 82.504 +-3.14095 -40.0954 80.514 +-4.03479 -41.1951 82.7221 +-4.7521 -40.421 81.1678 +-5.59815 -40.8014 81.9317 +-6.39667 -40.7781 81.8848 +-7.25747 -41.1072 82.5457 +-7.99218 -40.7221 81.7724 +-8.83698 -40.9113 82.1523 +-9.51209 -40.3434 81.0119 +-10.4373 -40.8363 82.0018 +-11.1389 -40.4402 81.2063 +-12.1128 -41.0141 82.3588 +-12.6648 -40.1708 80.6654 +-13.7758 -41.09 82.5111 +-14.2981 -40.2423 80.8089 +-15.2174 -40.5369 81.4004 +-16.0104 -40.4762 81.2785 +-17.039 -40.9821 82.2945 +-17.5926 -40.3454 81.016 +-18.7007 -40.9744 82.2789 +-19.0863 -40.028 80.3785 +-20.1722 -40.5615 81.4499 +-20.8755 -40.3077 80.9403 +-22.0139 -40.8752 82.0798 +-22.6439 -40.4852 81.2968 +-23.9113 -41.2156 82.7634 +-24.3808 -40.5613 81.4494 +-25.6014 -41.1522 82.636 +-26.0477 -40.4939 81.3142 +-27.4643 -41.3314 82.9959 +-28.1554 -41.0525 82.4357 +-29.0783 -41.1114 82.5542 +-29.8819 -40.9968 82.3239 +-31.0641 -41.3862 83.106 +-31.7755 -41.1374 82.6063 +-32.8466 -41.3484 83.0299 +-33.2444 -40.7163 81.7608 +-34.6355 -41.2953 82.9234 +-35.1917 -40.8677 82.0647 +-36.6135 -41.4343 83.2025 +-36.8613 -40.6703 81.6684 +-38.3449 -41.2667 82.8659 +-38.7996 -40.7466 81.8217 +-40.5129 -41.5344 83.4036 +-40.755 -40.8051 81.9391 +-42.5061 -41.578 83.491 +-42.6844 -40.805 81.9389 +-44.6871 -41.764 83.8647 +-44.8015 -40.9476 82.2251 +-46.7169 -41.769 83.8747 +-47.2604 -41.3474 83.0281 +-48.8992 -41.8737 84.0849 +-49.1537 -41.2096 82.7513 +-50.9128 -41.8003 83.9375 +-51.3413 -41.2888 82.9103 +-52.837 -41.6307 83.5968 +-54.1 -41.771 83.8785 +-55.3217 -41.8662 84.0698 +-55.7786 -41.3819 83.0973 +-57.8928 -42.1136 84.5665 +-57.8672 -41.2819 82.8966 +-60.285 -42.1831 84.7062 +-60.4549 -41.4984 83.3312 +-62.6448 -42.1909 84.7218 +-62.7414 -41.4652 83.2646 +-64.8535 -42.0645 84.468 +-65.3877 -41.628 83.5916 +-67.0712 -41.9165 84.1707 +-68.0655 -41.7622 83.8609 +-69.7727 -42.0333 84.4053 +-70.7734 -41.8671 84.0715 +-72.6252 -42.1914 84.7228 +-72.4018 -41.3101 82.9531 +-75.3865 -42.2479 84.8362 +-75.7702 -41.7105 83.7572 +-78.2376 -42.3085 84.958 +-78.5486 -41.7294 83.795 +-81.4408 -42.5069 85.3564 +-81.0233 -41.5493 83.4334 +-83.5564 -42.1006 84.5404 +-84.2435 -41.7077 83.7514 +-87.7592 -42.693 85.7301 +-88.1824 -42.1544 84.6484 +-90.7251 -42.6181 85.5797 +-90.8613 -41.9429 84.2238 +-93.9919 -42.6371 85.6178 +-94.1866 -41.9861 84.3106 +-98.2146 -43.0242 86.3951 +-98.4057 -42.3618 85.065 +-102.06 -43.1741 86.6961 +-102.463 -42.593 85.5293 +-106.02 -43.3071 86.9632 +-106.864 -42.893 86.1317 +-110.471 -43.5686 87.4883 +-110.867 -42.9617 86.2696 +-114.593 -43.6289 87.6094 +-115.443 -43.1815 86.7109 +-121.145 -44.5171 89.393 +-122.245 -44.1283 88.6122 +-126.078 -44.7055 89.7714 +-126.949 -44.2134 88.7832 +-131.3 -44.9119 90.1858 +-131.935 -44.319 88.9951 +-134.646 -44.4139 89.1858 +-135.996 -44.0457 88.4463 +-139.132 -44.2397 88.836 +-138.355 -43.1855 86.719 +-139.772 -42.8224 85.9898 +-139.527 -41.953 84.244 +-140.009 -41.3102 82.9532 +-140.058 -40.5454 81.4176 +-140.003 -39.7595 79.8395 +-139.589 -38.8827 78.0787 +-141.709 -38.7109 77.7337 +-141.947 -38.0204 76.3471 +-141.049 -37.0369 74.3722 +-140.902 -36.2639 72.82 +-139.953 -35.2973 70.8791 +-140.202 -34.6435 69.5662 +-140.523 -34.0117 68.2975 +-142.066 -33.673 67.6174 +-159.928 -37.1123 74.5237 +-163.945 -37.2376 74.7753 +-221.496 -49.2288 98.8544 +-223.53 -48.5998 97.5913 +-230.701 -49.0527 98.5008 +-233.193 -48.4737 97.338 +-243.142 -49.3947 99.1874 +-245.744 -48.7732 97.9396 +-254.576 -49.3443 99.0862 +-258.754 -48.9618 98.3182 +-265.893 -49.096 98.5876 +-268.512 -48.3605 97.1106 +-279.59 -49.0951 98.5858 +-286.796 -49.0759 98.5474 +-296.925 -49.4883 99.3754 +-301.641 -48.9409 98.2761 +-316.728 -49.9978 100.399 +-322.8 -49.5476 99.4944 +-333.525 -49.7468 99.8945 +-342.571 -49.6184 99.6367 +-355.641 -49.9862 100.375 +-366.169 -49.9042 100.211 +-382.281 -50.4783 101.363 +-387.677 -49.5547 99.5087 +-407.905 -50.4271 101.261 +-417.763 -49.8997 100.202 +-436.344 -50.304 101.013 +-445.075 -49.4678 99.3342 +-19.4474 -2.08129 4.17935 +-15.395 -1.58439 3.18155 +-16.4994 -1.63057 3.27429 +-17.3132 -1.64047 3.29417 +-17.0507 -1.5464 3.10526 +-16.0987 -1.39495 2.80115 +-15.7321 -1.29978 2.61004 +-16.4463 -1.29271 2.59585 +-16.1751 -1.20662 2.42296 +-14.1239 -0.997205 2.00245 +-15.9232 -1.06083 2.1302 +-13.6657 -0.856153 1.71921 +-15.5657 -0.913511 1.83438 +-13.6971 -0.749706 1.50545 +-14.9036 -0.75695 1.52 +-14.8184 -0.694283 1.39416 +-14.3337 -0.615251 1.23546 +-13.7475 -0.536157 1.07664 +-14.9538 -0.524629 1.05349 +-14.2652 -0.44467 0.892923 +-14.8722 -0.405488 0.814244 +-14.3803 -0.335954 0.674615 +-14.2864 -0.278056 0.558353 +-13.6917 -0.213136 0.427989 +-14.595 -0.170368 0.342109 +-3275.8 -25.4892 51.1837 +-3276.58 -12.7466 25.5959 +94.3 0 0 +94.6964 -0.361701 0.743044 +94.7856 -0.724138 1.4876 +94.6675 -1.08499 2.22891 +94.6423 -1.44653 2.97161 +95.3092 -1.82132 3.74154 +95.2693 -2.18527 4.48922 +95.0224 -2.54372 5.22558 +95.8659 -2.93404 6.02741 +94.9065 -3.26917 6.71588 +95.1366 -3.64298 7.4838 +95.1599 -4.0104 8.2386 +95.1757 -4.3783 8.99436 +95.2835 -4.75155 9.76114 +95.4829 -5.13128 10.5412 +95.4761 -5.50152 11.3018 +95.3628 -5.86597 12.0505 +95.9345 -6.27525 12.8913 +95.0156 -6.58666 13.531 +95.6697 -7.00709 14.3947 +95.5264 -7.37225 15.1449 +95.1791 -7.72086 15.861 +94.9233 -8.07574 16.59 +94.7587 -8.438 17.3342 +95.7607 -8.90882 18.3014 +95.5794 -9.27419 19.052 +95.196 -9.61922 19.7608 +95.195 -10.0029 20.549 +95.6712 -10.4402 21.4474 +95.4594 -10.8052 22.1973 +96.013 -11.26 23.1316 +95.8812 -11.638 23.9081 +95.6455 -12.0038 24.6595 +95.3067 -12.3562 25.3834 +95.9174 -12.8349 26.3669 +95.6578 -13.2008 27.1185 +95.4861 -13.5792 27.8958 +95.9704 -14.0545 28.8722 +95.6865 -14.4205 29.6241 +96.1494 -14.9023 30.6139 +95.7547 -15.254 31.3364 +96.2899 -15.7571 32.3699 +95.9721 -16.1242 33.1241 +96.6704 -16.6667 34.2384 +96.3344 -17.0352 34.9956 +95.9911 -17.4025 35.7501 +95.7325 -17.7856 36.5371 +96.2913 -18.3251 37.6454 +95.9223 -18.6922 38.3994 +95.6369 -19.076 39.188 +95.978 -19.5885 40.2409 +95.674 -19.9732 41.0311 +95.9013 -20.4722 42.0561 +95.4895 -20.8377 42.807 +95.9614 -21.4003 43.9628 +96.2407 -21.9277 45.0462 +95.7115 -22.2739 45.7574 +96.0547 -22.8266 46.8928 +95.5959 -23.1926 47.6447 +95.8262 -23.7292 48.7471 +95.3494 -24.0943 49.4971 +95.6408 -24.6575 50.6541 +95.8313 -25.2022 51.7731 +95.3252 -25.5673 52.523 +95.4054 -26.0927 53.6025 +94.8815 -26.4561 54.349 +94.9375 -26.9844 55.4342 +95.7301 -27.7325 56.9711 +95.1735 -28.097 57.7199 +95.269 -28.6578 58.872 +95.3493 -29.2215 60.0298 +95.4143 -29.7879 61.1934 +95.464 -30.357 62.3625 +94.4532 -30.5903 62.8418 +93.4404 -30.8182 63.3099 +93.7744 -31.4936 64.6975 +93.3005 -31.9044 65.5415 +93.2869 -32.4775 66.7188 +93.1798 -33.0254 67.8443 +93.4437 -33.7142 69.2592 +93.3808 -34.2948 70.4521 +93.3779 -34.906 71.7076 +93.3576 -35.5198 72.9685 +93.3199 -36.136 74.2345 +93.2647 -36.7546 75.5053 +93.3393 -37.4347 76.9024 +93.467 -38.148 78.3677 +93.5008 -38.8349 79.7789 +93.3703 -39.4642 81.0716 +93.1505 -40.0647 82.3052 +92.3481 -40.419 83.033 +92.0995 -41.0199 84.2675 +89.4025 -40.52 83.2406 +89.0042 -41.0505 84.3303 +86.8866 -40.7807 83.776 +86.9485 -41.5305 85.3163 +84.0428 -40.8527 83.9239 +83.4239 -41.2705 84.7822 +81.4169 -40.993 84.2121 +81.181 -41.6019 85.463 +79.6414 -41.5416 85.3391 +78.8101 -41.8442 85.9607 +77.4693 -41.8715 86.0168 +76.0713 -41.8575 85.9881 +74.495 -41.7326 85.7315 +72.6861 -41.4599 85.1714 +70.954 -41.2116 84.6613 +69.7727 -41.27 84.7812 +68.5945 -41.3224 84.889 +68.1165 -41.7967 85.8632 +67.2805 -42.0552 86.3943 +65.7598 -41.8778 86.0298 +63.9157 -41.4742 85.2007 +62.9208 -41.6072 85.474 +61.3808 -41.3688 84.9842 +60.4999 -41.5647 85.3867 +58.874 -41.2375 84.7144 +58.0496 -41.4608 85.1731 +56.2937 -41.0056 84.2381 +55.9307 -41.5584 85.3738 +54.05 -40.9745 84.1742 +53.428 -41.3318 84.9081 +51.8746 -40.96 84.1445 +50.9128 -41.0412 84.3113 +49.6701 -40.8863 83.9931 +49.0377 -41.2298 84.6986 +47.3966 -40.7135 83.6381 +46.9846 -41.2455 84.731 +45.5906 -40.912 84.0459 +44.9454 -41.2426 84.725 +43.4452 -40.778 83.7705 +42.8378 -41.1416 84.5174 +41.2838 -40.5839 83.3718 +40.9515 -41.2217 84.682 +39.5811 -40.8125 83.8413 +38.9954 -41.2047 84.6471 +37.1984 -40.297 82.7824 +36.8334 -40.9262 84.075 +35.5859 -40.575 83.3534 +35.0908 -41.0784 84.3875 +33.518 -40.306 82.8008 +33.3473 -41.2164 84.671 +32.1336 -40.8456 83.9093 +31.5084 -41.2157 84.6698 +30.1601 -40.6269 83.4601 +29.7699 -41.3249 84.8941 +28.5355 -40.8511 83.9206 +27.8903 -41.2103 84.6586 +26.5439 -40.5159 83.2321 +25.9221 -40.911 84.0437 +24.8725 -40.6279 83.4622 +24.2869 -41.1027 84.4376 +23.031 -40.4295 83.0547 +22.5742 -41.1543 84.5436 +21.4603 -40.6846 83.5786 +20.9297 -41.3205 84.8849 +19.9179 -41.0135 84.2544 +19.1593 -41.2167 84.6718 +18.0505 -40.6439 83.495 +17.2942 -40.8404 83.8987 +16.375 -40.6463 83.4999 +15.762 -41.2253 84.6894 +14.611 -40.3761 82.9449 +13.9828 -40.9498 84.1235 +13.0962 -40.7849 83.7847 +12.3478 -41.0504 84.3301 +11.3826 -40.5747 83.3528 +10.6751 -41.008 84.2429 +9.76296 -40.6554 83.5187 +9.09576 -41.3447 84.9346 +8.14035 -40.7238 83.6592 +7.42223 -41.277 84.7956 +6.4176 -40.1685 82.5185 +5.75688 -41.1963 84.6298 +4.85678 -40.5611 83.3249 +4.11331 -41.234 84.7073 +3.23867 -40.592 83.3885 +2.44754 -40.9091 84.0399 +1.61958 -40.6106 83.4266 +0.82553 -41.403 85.0545 +5.7434e-15 -41.0545 84.3384 +-0.818549 -41.0529 84.3352 +-1.61958 -40.6106 83.4266 +-2.47634 -41.3904 85.0286 +-3.23867 -40.592 83.3885 +-4.11331 -41.234 84.7073 +-4.84108 -40.43 83.0556 +-5.77519 -41.3274 84.8991 +-6.52223 -40.8234 83.8639 +-7.39869 -41.1461 84.5266 +-8.14906 -40.7674 83.7488 +-9.12452 -41.4754 85.2031 +-9.82568 -40.9166 84.0553 +-10.7769 -41.3993 85.0469 +-11.4923 -40.9657 84.156 +-12.4653 -41.4409 85.1324 +-13.2075 -41.1317 84.497 +-14.0271 -41.0797 84.3902 +-14.7518 -40.7652 83.7441 +-15.663 -40.9663 84.1573 +-16.4792 -40.9049 84.0312 +-17.2942 -40.8404 83.8987 +-17.936 -40.3861 82.9655 +-18.9798 -40.8307 83.8788 +-19.6477 -40.457 83.111 +-20.9297 -41.3205 84.8849 +-21.3479 -40.4713 83.1405 +-22.6442 -41.282 84.8059 +-23.2971 -40.8967 84.0143 +-24.4621 -41.3993 85.0469 +-24.9243 -40.7125 83.6359 +-26.1894 -41.3327 84.9101 +-26.792 -40.8945 84.0099 +-28.0891 -41.5041 85.2621 +-28.6232 -40.9766 84.1786 +-30.0104 -41.6589 85.5801 +-30.4073 -40.9599 84.1442 +-31.9208 -41.7554 85.7783 +-32.3289 -41.0938 84.4194 +-33.8814 -41.8765 86.0271 +-34.1336 -41.0463 84.3216 +-35.6861 -41.7753 85.8192 +-35.801 -40.8202 83.8571 +-37.2365 -41.3741 84.9952 +-37.9851 -41.1492 84.533 +-39.7225 -41.973 86.2254 +-39.6201 -40.8528 83.9241 +-41.5895 -41.8639 86.0013 +-41.8125 -41.1037 84.4396 +-43.8331 -42.0974 86.481 +-43.91 -41.2144 84.667 +-45.8925 -42.1117 86.5104 +-46.029 -41.3054 84.854 +-47.9663 -42.1073 86.5012 +-48.4408 -41.6105 85.4807 +-50.1921 -42.2003 86.6924 +-50.609 -41.6592 85.5809 +-52.726 -42.5029 87.3139 +-52.9412 -41.8022 85.8746 +-54.7083 -42.3222 86.9428 +-55.1 -41.7705 85.8094 +-57.2503 -42.539 87.3881 +-57.6328 -41.981 86.2419 +-59.7216 -42.655 87.6264 +-59.7749 -41.8685 86.0106 +-61.682 -42.3768 87.055 +-62.2522 -41.9561 86.1906 +-64.3559 -42.5562 87.4234 +-64.7545 -42.0185 86.3189 +-66.5527 -42.3827 87.0671 +-66.7643 -41.7326 85.7315 +-69.2779 -42.5093 87.3271 +-69.5938 -41.9244 86.1255 +-72.033 -42.607 87.5277 +-72.6391 -42.1904 86.6719 +-74.695 -42.6058 87.5254 +-75.4801 -42.2844 86.8651 +-77.5031 -42.6453 87.6065 +-78.2875 -42.3137 86.9252 +-80.4003 -42.6885 87.6952 +-80.6056 -42.0445 86.3723 +-83.6489 -42.8666 88.0611 +-83.9099 -42.2482 86.7907 +-86.6707 -42.8767 88.0819 +-86.7862 -42.1863 86.6635 +-89.9886 -42.9826 88.2994 +-90.2284 -42.3492 86.9982 +-92.9279 -42.8601 88.0478 +-93.7789 -42.5036 87.3154 +-97.146 -43.2676 88.8849 +-97.7929 -42.8021 87.9286 +-100.996 -43.4393 89.2376 +-101.211 -42.7782 87.8796 +-105.107 -43.6554 89.6816 +-105.827 -43.1926 88.7309 +-109.633 -43.9694 90.3266 +-110.506 -43.5491 89.4632 +-114.066 -44.1694 90.7375 +-114.414 -43.5311 89.4262 +-118.547 -44.3147 91.0361 +-119.58 -43.9165 90.2178 +-124.54 -44.9336 92.3074 +-125.431 -44.4561 91.3265 +-129.522 -45.0925 92.6338 +-130.967 -44.7848 92.0017 +-134.315 -45.1087 92.6671 +-134.49 -44.3572 91.1233 +-137.701 -44.5966 91.6151 +-138.585 -44.0692 90.5316 +-138.807 -43.3347 89.0228 +-139.174 -42.6523 87.6208 +-140.101 -42.1439 86.5765 +-139.942 -41.3135 84.8705 +-139.509 -40.415 83.0249 +-140.142 -39.833 81.8291 +-140.34 -39.1316 80.3883 +-141.2 -38.6173 79.3317 +-141.368 -37.9164 77.8919 +-141.433 -37.1947 76.4093 +-140.446 -36.2088 74.384 +-140.383 -35.474 72.8745 +-139.605 -34.5701 71.0175 +-139.414 -33.8234 69.4836 +-147.114 -34.9604 71.8193 +-154.692 -35.9999 73.9547 +-199.223 -45.3914 93.2479 +-219.009 -48.8412 100.335 +-227.671 -49.6825 102.063 +-228.653 -48.811 100.273 +-235.304 -49.1227 100.913 +-240.806 -49.1472 100.963 +-249.056 -49.6776 102.053 +-250.86 -48.8846 100.424 +-260.628 -49.5997 101.893 +-263.633 -48.9787 100.617 +-272.083 -49.3266 101.332 +-277.877 -49.1384 100.945 +-290.383 -50.0641 102.847 +-293.891 -49.3765 101.435 +-303.107 -49.6011 101.896 +-311.602 -49.6391 101.974 +-321.912 -49.8934 102.496 +-328.379 -49.4886 101.665 +-342.44 -50.149 103.021 +-348.277 -49.5288 101.747 +-364.701 -50.3289 103.391 +-374.393 -50.0987 102.918 +-388.418 -50.3574 103.449 +-397.193 -49.8488 102.405 +-419.372 -50.9032 104.571 +-425.684 -49.9227 102.557 +-438.668 -49.6536 102.004 +-455.166 -49.6706 102.039 +-503.493 -52.906 108.685 +-16.272 -1.64423 3.37775 +-12.9847 -1.25993 2.58828 +-15.9438 -1.48328 3.04712 +-16.2668 -1.44851 2.97568 +-16.1968 -1.37797 2.83078 +-16.617 -1.34796 2.76912 +-15.6584 -1.20844 2.48251 +-17.3586 -1.27139 2.61183 +-14.519 -1.00649 2.06763 +-16.2199 -1.06097 2.17956 +-14.4579 -0.889337 1.82697 +-12.8888 -0.742674 1.52568 +-14.2927 -0.768095 1.5779 +-14.3074 -0.713477 1.4657 +-14.2217 -0.654228 1.34398 +-15.2296 -0.641833 1.31852 +-13.5482 -0.518792 1.06576 +-15.0535 -0.518534 1.06523 +-13.6666 -0.418276 0.859267 +-11.2789 -0.301933 0.620263 +-13.5814 -0.311528 0.639973 +-12.0885 -0.231006 0.474557 +-10.5935 -0.161913 0.33262 +-3275.18 -37.537 77.1126 +-3275.8 -25.0263 51.4116 +-3276.58 -12.5151 25.7099 +94.3 0 0 +94.5964 -0.354619 0.745483 +94.6856 -0.70996 1.49248 +94.5676 -1.06375 2.23622 +95.4418 -1.4317 3.00973 +95.1094 -1.7838 3.74992 +95.9683 -2.1605 4.54181 +94.9226 -2.49394 5.24277 +94.9681 -2.85267 5.9969 +96.0031 -3.24563 6.82298 +95.1366 -3.57543 7.5163 +95.1599 -3.93605 8.27438 +95.2752 -4.30158 9.04282 +95.4823 -4.67316 9.82394 +96.3762 -5.08327 10.6861 +95.4761 -5.39951 11.3509 +95.3628 -5.75721 12.1028 +96.0334 -6.16526 12.9606 +95.9045 -6.52502 13.7169 +95.6697 -6.87717 14.4572 +95.5264 -7.23556 15.2106 +95.0807 -7.56989 15.9135 +95.8068 -7.9998 16.8172 +94.8567 -8.2901 17.4275 +95.565 -8.72577 18.3434 +94.7007 -9.01856 18.9589 +95.3908 -9.4602 19.8873 +94.9033 -9.78735 20.575 +95.6712 -10.2466 21.5406 +95.653 -10.6264 22.3388 +95.4335 -10.9846 23.0918 +95.8812 -11.4222 24.0119 +95.6455 -11.7812 24.7666 +95.3067 -12.1271 25.4937 +95.9174 -12.597 26.4814 +95.6578 -12.956 27.2363 +96.342 -13.4469 28.2681 +96.0652 -13.8075 29.0263 +95.6865 -14.1531 29.7528 +96.1494 -14.626 30.7468 +95.8486 -14.9859 31.5034 +95.5406 -15.3446 32.2575 +95.9721 -15.8253 33.268 +95.6469 -16.1844 34.023 +96.3344 -16.7194 35.1476 +95.9911 -17.0799 35.9054 +96.4689 -17.5901 36.978 +96.2913 -17.9854 37.8089 +96.7445 -18.5029 38.8968 +95.6369 -18.7223 39.3582 +95.978 -19.2253 40.4156 +95.5838 -19.5844 41.1704 +95.9013 -20.0926 42.2388 +95.4895 -20.4513 42.9929 +95.8723 -20.984 44.1127 +96.152 -21.5013 45.2001 +95.7115 -21.8609 45.9561 +96.0547 -22.4034 47.0965 +95.5959 -22.7626 47.8516 +95.8262 -23.2892 48.9588 +95.3494 -23.6476 49.7121 +95.5547 -24.1785 50.8283 +95.8313 -24.735 51.998 +95.2399 -25.0708 52.704 +95.4054 -25.6089 53.8353 +95.4719 -26.1272 54.9247 +94.9375 -26.4841 55.6749 +95.1464 -27.0523 56.8696 +95.2564 -27.6002 58.0212 +95.4338 -28.1751 59.2299 +95.4312 -28.7043 60.3424 +95.4143 -29.2356 61.4592 +95.3831 -29.7689 62.5803 +94.7747 -30.1253 63.3295 +94.3987 -30.5569 64.237 +93.5364 -30.8312 64.8136 +93.8521 -31.498 66.2154 +93.4434 -31.9288 67.121 +93.3352 -32.4672 68.2527 +93.4437 -33.0891 69.56 +93.3808 -33.659 70.7581 +93.4539 -34.2867 72.0778 +93.3576 -34.8612 73.2854 +93.4697 -35.5229 74.6765 +93.339 -36.1019 75.8936 +93.3393 -36.7406 77.2364 +93.1745 -37.3235 78.4617 +93.1381 -37.967 79.8145 +93.658 -38.8519 81.6746 +93.0079 -39.2617 82.5362 +93.3381 -40.0948 84.2876 +93.0107 -40.6577 85.4708 +91.2781 -40.6031 85.356 +89.8303 -40.6633 85.4826 +88.1142 -40.59 85.3286 +87.6916 -41.1088 86.4192 +85.2472 -40.6699 85.4964 +84.0202 -40.7948 85.7591 +82.7946 -40.9137 86.009 +81.5707 -41.0265 86.2462 +80.2842 -41.1004 86.4015 +79.4462 -41.3998 87.0309 +77.6581 -41.1953 86.6009 +76.8183 -41.4848 87.2096 +74.7413 -41.0942 86.3885 +74.5124 -41.7136 87.6905 +72.2178 -41.168 86.5436 +71.6761 -41.6098 87.4724 +69.7701 -41.2513 86.7188 +68.6391 -41.3365 86.8978 +67.2805 -41.2755 86.7695 +66.4395 -41.5261 87.2965 +65.0901 -41.4531 87.1429 +63.7487 -41.3731 86.9748 +62.579 -41.3943 87.0194 +61.4133 -41.41 87.0523 +60.0928 -41.3108 86.8438 +58.9901 -41.3513 86.929 +57.5298 -41.129 86.4617 +56.5398 -41.2321 86.6783 +55.1 -40.996 86.1821 +54.2651 -41.201 86.613 +52.6018 -40.7642 85.6946 +51.9149 -41.0731 86.344 +50.3743 -40.6972 85.5539 +49.6842 -40.9988 86.1879 +48.4408 -40.839 85.852 +47.5201 -40.9421 86.0688 +46.555 -41.0029 86.1965 +45.3328 -40.8269 85.8265 +44.3749 -40.8785 85.9349 +43.4184 -40.926 86.0348 +42.3413 -40.8517 85.8788 +41.6294 -41.1271 86.4576 +40.5579 -41.0443 86.2836 +39.3016 -40.7582 85.6822 +38.2848 -40.7049 85.57 +37.3465 -40.727 85.6164 +36.4102 -40.7451 85.6546 +35.6861 -41.0007 86.192 +34.4756 -40.6889 85.5364 +33.5476 -40.6951 85.5495 +32.5243 -40.5756 85.2983 +31.7939 -40.8182 85.8083 +30.7781 -40.6907 85.5402 +29.9503 -40.8045 85.7795 +28.9448 -40.6688 85.4942 +28.2027 -40.8993 85.9787 +27.2054 -40.7557 85.6769 +26.4566 -40.9803 86.1491 +25.6231 -41.0779 86.3543 +24.8627 -41.2972 86.8152 +23.6842 -40.8053 85.7812 +22.971 -41.1014 86.4035 +21.9552 -40.8511 85.8773 +21.2111 -41.0996 86.3997 +20.1674 -40.7573 85.6803 +19.4583 -41.084 86.367 +18.4512 -40.7758 85.7191 +17.6768 -40.9701 86.1277 +16.6876 -40.6541 85.4633 +16.0096 -41.0964 86.3931 +14.9708 -40.6033 85.3566 +14.1601 -40.7004 85.5605 +13.3189 -40.7094 85.5795 +12.5827 -41.0559 86.3079 +11.602 -40.5898 85.3282 +10.9128 -41.1439 86.493 +10.0034 -40.8842 85.947 +9.18202 -40.963 86.1126 +8.3408 -40.953 86.0916 +7.53992 -41.154 86.5142 +6.59896 -40.5379 85.2191 +5.84845 -41.0756 86.3494 +4.98238 -40.8386 85.8511 +4.17874 -41.1132 86.4285 +3.31196 -40.741 85.6459 +2.50775 -41.1383 86.4812 +1.64227 -40.416 84.9627 +0.829894 -40.8502 85.8754 +5.79239e-15 -40.6369 85.4272 +-0.836002 -41.1508 86.5076 +-1.66147 -40.8884 85.9559 +-2.5156 -41.2671 86.752 +-3.30149 -40.6122 85.3752 +-4.17874 -41.1132 86.4285 +-4.98238 -40.8386 85.8511 +-5.87897 -41.29 86.8001 +-6.61989 -40.6665 85.4893 +-7.55561 -41.2396 86.6942 +-8.29723 -40.739 85.6418 +-9.26828 -41.3478 86.9215 +-10.0452 -41.0551 86.3064 +-10.9468 -41.272 86.7622 +-11.6263 -40.6751 85.5074 +-12.6871 -41.3966 87.0241 +-13.4024 -40.9646 86.116 +-14.3671 -41.2951 86.8109 +-15.0177 -40.7306 85.6241 +-16.0426 -41.1812 86.5713 +-16.8786 -41.1194 86.4415 +-17.7133 -41.0546 86.3053 +-18.3177 -40.4806 85.0986 +-19.4782 -41.126 86.4554 +-20.1466 -40.7153 85.592 +-21.3409 -41.3512 86.9287 +-22.0452 -41.0185 86.2293 +-23.1111 -41.352 86.9304 +-23.6358 -40.7219 85.6059 +-24.6875 -41.0061 86.2032 +-25.5196 -40.912 86.0054 +-26.4566 -40.9803 86.1491 +-27.4259 -41.086 86.3713 +-28.7424 -41.6819 87.6239 +-29.1787 -40.9974 86.185 +-30.5216 -41.5829 87.4159 +-31.2725 -41.3444 86.9144 +-32.2382 -41.3885 87.0072 +-33.2405 -41.4692 87.1767 +-34.549 -41.9099 88.1032 +-35.0229 -41.3347 86.8942 +-36.1764 -41.564 87.3761 +-37.0194 -41.4268 87.0878 +-38.1161 -41.5662 87.3808 +-38.7718 -41.2226 86.6585 +-40.4496 -41.9489 88.1851 +-40.7923 -41.2816 86.7824 +-42.2674 -41.7574 87.7826 +-42.9921 -41.4796 87.1987 +-44.3722 -41.825 87.9249 +-45.2202 -41.6571 87.5718 +-46.4091 -41.7962 87.8642 +-47.2564 -41.6206 87.4951 +-49.171 -42.3645 89.059 +-49.6212 -41.8341 87.9439 +-51.3003 -42.3324 88.9914 +-52.0174 -42.0247 88.3445 +-53.6804 -42.4698 89.2803 +-54.3956 -42.1543 88.617 +-55.9886 -42.5096 89.3639 +-56.55 -42.0749 88.4501 +-58.0116 -42.3054 88.9347 +-59.0234 -42.1968 88.7065 +-60.6621 -42.5234 89.3929 +-61.5236 -42.2943 88.9114 +-62.6491 -42.2432 88.804 +-63.2326 -41.8267 87.9283 +-65.3493 -42.4119 89.1586 +-65.9848 -42.0229 88.3407 +-68.082 -42.5528 89.4547 +-68.7718 -42.1904 88.6928 +-70.3231 -42.3506 89.0297 +-71.1808 -42.0854 88.4722 +-72.9848 -42.3694 89.0693 +-74.0232 -42.1972 88.7072 +-75.7908 -42.4293 89.1951 +-76.8346 -42.2451 88.8079 +-78.6859 -42.4934 89.3298 +-79.5461 -42.1968 88.7063 +-81.3544 -42.3942 89.1213 +-82.791 -42.3837 89.0994 +-84.8179 -42.6597 89.6796 +-85.6813 -42.3402 89.0078 +-87.9297 -42.693 89.7495 +-88.7936 -42.3617 89.0531 +-91.8127 -43.0408 90.4806 +-92.8882 -42.7892 89.9517 +-95.4059 -43.1872 90.7885 +-96.488 -42.9206 90.228 +-99.2488 -43.3844 91.203 +-100.551 -43.1933 90.8011 +-102.922 -43.4467 91.3339 +-104.017 -43.149 90.7081 +-107.646 -43.881 92.2469 +-108.533 -43.4759 91.3953 +-112.435 -44.2573 93.038 +-112.809 -43.6327 91.7249 +-116.313 -44.2045 92.9269 +-117.433 -43.8514 92.1846 +-122.577 -44.9717 94.5397 +-123.869 -44.6486 93.8606 +-126.778 -44.8931 94.3744 +-128.851 -44.8213 94.2236 +-131.322 -44.8716 94.3293 +-132.465 -44.457 93.4579 +-136.298 -44.9261 94.444 +-137.605 -44.543 93.6385 +-138.505 -44.0253 92.5503 +-138.423 -43.2014 90.8183 +-139.132 -42.631 89.6192 +-140.239 -42.1818 88.6748 +-139.689 -41.2408 86.6967 +-139.693 -40.4754 85.0876 +-139.426 -39.642 83.3356 +-140.561 -39.2114 82.4304 +-141.268 -38.6599 81.2711 +-141.709 -38.0378 79.9634 +-141.368 -37.2134 78.2302 +-140.147 -36.1732 76.0435 +-140.187 -35.472 74.5695 +-139.69 -34.6445 72.8298 +-140.562 -34.1618 71.8152 +-142.65 -33.9668 71.4052 +-158.626 -36.9973 77.7759 +-166.524 -38.0347 79.9569 +-219.624 -49.1118 103.243 +-225.068 -49.2617 103.558 +-230.714 -49.4129 103.876 +-234.855 -49.205 103.439 +-242.525 -49.6913 104.461 +-246.153 -49.3068 103.653 +-253.424 -49.6114 104.293 +-256.798 -49.114 103.248 +-264.939 -49.4855 104.029 +-268.235 -48.9099 102.819 +-279.012 -49.6449 104.364 +-283.718 -49.2411 103.515 +-293.268 -49.6239 104.32 +-297.906 -49.123 103.267 +-310.413 -49.855 104.805 +-319.12 -49.8941 104.888 +-325.306 -49.4847 104.027 +-333.863 -49.382 103.811 +-348.699 -50.1187 105.36 +-354.364 -49.4602 103.976 +-369.47 -50.0414 105.197 +-381.948 -50.1617 105.45 +-395.705 -50.3507 105.848 +-409.978 -50.4993 106.16 +-423.226 -50.4186 105.99 +-430.9 -49.5972 104.264 +-442.443 -49.1526 103.329 +-479.714 -51.3786 108.008 +-514.286 -53.038 111.497 +-537.852 -53.3405 112.133 +-573.379 -54.6042 114.789 +-15.6504 -1.42899 3.00403 +-15.4828 -1.35314 2.84457 +-16.884 -1.4098 2.96368 +-15.8304 -1.26034 2.6495 +-17.9235 -1.3576 2.85395 +-3231.37 -232.285 488.312 +-16.0993 -1.09534 2.30263 +-17.3078 -1.11114 2.33585 +-3244.42 -195.87 411.76 +-12.7896 -0.723298 1.52052 +-13.6971 -0.722444 1.51873 +-14.7049 -0.719699 1.51295 +-14.8184 -0.669036 1.40645 +-14.7319 -0.609348 1.28097 +-13.8471 -0.520402 1.09399 +-11.6639 -0.394329 0.828961 +-14.4647 -0.434493 0.913393 +-14.473 -0.380253 0.799371 +-11.4842 -0.25854 0.543504 +-3273.18 -61.3892 129.053 +-3274.3 -49.117 103.254 +-3275.58 -36.8456 77.457 +-3276.2 -24.5653 51.6413 +-3276.58 -12.2831 25.8216 +94.5 0 0 +94.4964 -0.347511 0.747862 +94.6856 -0.696464 1.49883 +95.3673 -1.05235 2.26472 +95.142 -1.40007 3.01303 +95.1094 -1.74989 3.76586 +94.9697 -2.09737 4.51365 +94.9226 -2.44653 5.26506 +94.9681 -2.79844 6.02239 +96.0031 -3.18393 6.85199 +95.1366 -3.50747 7.54826 +95.1599 -3.86122 8.30956 +95.2752 -4.21981 9.08126 +95.2835 -4.5748 9.84522 +95.5822 -4.94555 10.6431 +95.4761 -5.29687 11.3991 +95.3628 -5.64777 12.1543 +95.1433 -5.99201 12.8951 +95.9045 -6.40098 13.7752 +95.6697 -6.74644 14.5187 +95.5264 -7.09802 15.2753 +95.1791 -7.43366 15.9976 +94.9233 -7.77533 16.7329 +95.0527 -8.14933 17.5378 +95.565 -8.5599 18.4214 +95.5794 -8.92921 19.2161 +95.3908 -9.28036 19.9718 +95.0005 -9.61112 20.6836 +94.992 -9.98052 21.4786 +95.653 -10.4244 22.4338 +95.4335 -10.7757 23.19 +95.8812 -11.2051 24.114 +95.6455 -11.5573 24.8719 +95.3067 -11.8966 25.6021 +96.013 -12.3698 26.6205 +95.6578 -12.7098 27.3521 +95.391 -13.061 28.108 +95.9704 -13.5317 29.1208 +95.781 -13.8978 29.9088 +96.2437 -14.362 30.9078 +95.8486 -14.701 31.6373 +95.4469 -15.0381 32.3628 +95.9721 -15.5245 33.4095 +95.6469 -15.8768 34.1677 +96.3344 -16.4016 35.297 +95.9911 -16.7552 36.0581 +96.4689 -17.2557 37.1353 +96.1996 -17.6267 37.9335 +95.9223 -17.9969 38.7302 +95.6369 -18.3664 39.5255 +96.0686 -18.8777 40.6257 +95.674 -19.2302 41.3845 +95.9912 -19.7291 42.4581 +95.4895 -20.0626 43.1757 +95.9614 -20.6043 44.3415 +96.2407 -21.112 45.4342 +95.7998 -21.4651 46.1941 +96.0547 -21.9775 47.2967 +95.5959 -22.3299 48.055 +95.0428 -22.6598 48.7651 +96.1288 -23.3877 50.3316 +95.6408 -23.7403 51.0904 +95.917 -24.2865 52.2657 +95.3252 -24.6162 52.9754 +95.4054 -25.1221 54.0642 +95.6406 -25.6758 55.2557 +95.6923 -26.1872 56.3562 +95.1464 -26.5381 57.1114 +95.1735 -27.0519 58.2171 +95.4338 -27.6395 59.4817 +94.694 -27.9411 60.1307 +95.4958 -28.7043 61.7731 +95.3831 -29.203 62.8463 +94.9355 -29.6028 63.7067 +95.2772 -30.255 65.1104 +94.2504 -30.476 65.586 +93.6945 -30.8474 66.3851 +93.2086 -31.2432 67.2371 +93.4129 -31.8765 68.5999 +93.3666 -32.4333 69.7981 +93.3808 -33.0191 71.0589 +93.3779 -33.6076 72.3253 +93.433 -34.2261 73.6565 +92.7207 -34.5684 74.3931 +93.2647 -35.3874 76.1556 +93.2656 -36.0138 77.5035 +93.1745 -36.614 78.7953 +93.0655 -37.2163 80.0915 +93.1545 -37.9084 81.5809 +93.3645 -38.663 83.2049 +93.3381 -39.3327 84.646 +92.7303 -39.7646 85.5754 +92.3896 -40.3163 86.7627 +91.207 -40.5016 87.1617 +88.5234 -40.0034 86.0894 +88.1645 -40.5449 87.2547 +86.0502 -40.2725 86.6686 +85.8093 -40.8715 87.9576 +83.7787 -40.613 87.4013 +83.1294 -41.0157 88.268 +81.1198 -40.7388 87.672 +80.2731 -41.0355 88.3106 +78.4133 -40.8052 87.8149 +78.1878 -41.4218 89.1418 +75.9111 -40.9439 88.1135 +76.0343 -41.7564 89.8621 +73.6622 -41.1931 88.6497 +73.4011 -41.8011 89.9583 +70.8281 -41.0808 88.4081 +70.0328 -41.374 89.0391 +67.7967 -40.8015 87.8071 +67.9687 -41.6744 89.6855 +65.7611 -41.0843 88.4156 +65.3493 -41.6057 89.5377 +63.2326 -41.0316 88.3021 +62.6491 -41.4402 89.1815 +60.5698 -40.8471 87.9051 +60.2963 -41.4635 89.2317 +58.4053 -40.9612 88.1508 +57.2503 -40.9566 88.1408 +56.1 -40.9466 88.1193 +54.9545 -40.9313 88.0863 +53.3775 -40.579 87.3281 +53.0123 -41.1441 88.5442 +51.2663 -40.6305 87.439 +50.8847 -41.1912 88.6458 +48.9402 -40.4757 87.1058 +48.5017 -40.9935 88.2202 +47.1249 -40.7158 87.6226 +46.6244 -41.1918 88.647 +45.0511 -40.7125 87.6154 +44.5795 -41.2217 88.7112 +42.9514 -40.6526 87.4866 +42.2275 -40.925 88.0727 +40.9095 -40.6132 87.4018 +40.2583 -40.9567 88.1411 +38.6969 -40.3609 86.8588 +38.1161 -40.7761 87.7523 +37.0552 -40.6787 87.5426 +36.0363 -40.616 87.4079 +34.8519 -40.351 86.8375 +34.5156 -41.0735 88.3923 +33.0452 -40.4418 87.0329 +32.492 -40.9214 88.0651 +31.0871 -40.318 86.7664 +30.5216 -40.7925 87.7876 +29.5295 -40.7017 87.5921 +28.8276 -41.0107 88.2572 +27.6189 -40.5886 87.3487 +26.8842 -40.851 87.9135 +25.7007 -40.4192 86.9842 +25.1882 -41.0425 88.3257 +23.9261 -40.4385 87.0257 +23.2978 -40.8937 88.0054 +22.2477 -40.6083 87.3912 +21.5357 -40.9354 88.0952 +20.5001 -40.6421 87.4639 +19.8371 -41.0875 88.4226 +18.7756 -40.7039 87.597 +17.932 -40.7714 87.7422 +16.9481 -40.5038 87.1663 +16.1582 -40.6893 87.5655 +15.1741 -40.3726 86.8839 +14.4705 -40.8019 87.8079 +13.5415 -40.6032 87.3802 +12.6871 -40.6096 87.3941 +11.7848 -40.4456 87.0411 +11.0486 -40.8642 87.942 +10.1393 -40.6519 87.485 +9.31621 -40.7715 87.7424 +8.42796 -40.5943 87.3611 +7.60269 -40.7078 87.6053 +6.74545 -40.6501 87.4811 +5.93392 -40.8837 87.9838 +5.07135 -40.7777 87.7557 +4.21799 -40.7106 87.6114 +3.35035 -40.4297 87.0069 +2.53131 -40.7354 87.6648 +1.68765 -40.7432 87.6815 +0.848219 -40.9585 88.1449 +5.86586e-15 -40.3701 86.8786 +-0.848219 -40.9585 88.1449 +-1.68067 -40.5746 87.3187 +-2.5444 -40.946 88.118 +-3.38525 -40.8509 87.9133 +-4.2747 -41.2579 88.7891 +-5.06089 -40.6935 87.5746 +-5.93392 -40.8837 87.9838 +-6.80823 -41.0285 88.2954 +-7.68899 -41.1699 88.5998 +-8.47154 -40.8042 87.8128 +-9.39288 -41.1071 88.4646 +-10.1602 -40.7357 87.6653 +-11.0939 -41.0317 88.3024 +-11.8091 -40.5293 87.2211 +-12.7524 -40.8186 87.8437 +-13.4859 -40.4363 87.021 +-14.441 -40.7185 87.6284 +-15.2836 -40.6639 87.5109 +-16.2737 -40.9802 88.1916 +-17.1217 -40.9188 88.0594 +-18.1324 -41.2272 88.7231 +-18.7184 -40.5798 87.3299 +-19.6776 -40.7572 87.7117 +-20.3961 -40.436 87.0204 +-21.5357 -40.9354 88.0952 +-22.3826 -40.8546 87.9213 +-23.2978 -40.8937 88.0054 +-23.9503 -40.4794 87.1138 +-25.1131 -40.9201 88.0623 +-25.9596 -40.8262 87.8602 +-27.1514 -41.2571 88.7875 +-27.7567 -40.7911 87.7847 +-28.8276 -41.0107 88.2572 +-29.705 -40.9435 88.1125 +-30.7021 -41.0336 88.3065 +-31.5506 -40.9192 88.0602 +-32.841 -41.361 89.0111 +-33.6963 -41.2387 88.7479 +-35.0163 -41.6693 89.6746 +-35.6727 -41.3014 88.8827 +-36.7718 -41.4449 89.1917 +-37.3061 -40.954 88.1353 +-38.7758 -41.4818 89.2711 +-39.521 -41.2205 88.7086 +-40.7941 -41.5018 89.3141 +-41.6519 -41.3502 88.9878 +-42.9851 -41.6592 89.6528 +-43.5208 -41.1916 88.6465 +-44.9527 -41.5668 89.454 +-45.9386 -41.5145 89.3414 +-47.184 -41.6863 89.7111 +-48.177 -41.6248 89.5788 +-49.5726 -41.8986 90.168 +-50.4383 -41.7147 89.7723 +-51.8082 -41.9388 90.2546 +-52.5339 -41.6351 89.6009 +-54.253 -42.1069 90.6163 +-54.9774 -41.7952 89.9456 +-56.7272 -42.2517 90.9278 +-57.3 -41.8225 90.0042 +-59.4835 -42.5542 91.579 +-60.1049 -42.1531 90.7156 +-61.4458 -42.2538 90.9323 +-62.0006 -41.812 89.9816 +-63.8312 -42.2222 90.8643 +-64.5942 -41.9151 90.2035 +-66.3428 -42.2382 90.8988 +-67.215 -41.9926 90.3704 +-68.5918 -42.0564 90.5077 +-69.4601 -41.8026 89.9614 +-71.2523 -42.0945 90.5895 +-72.2976 -41.9331 90.2423 +-74.5908 -42.4788 91.4166 +-74.926 -41.8998 90.1707 +-77.3127 -42.4586 91.3731 +-78.189 -42.1724 90.7573 +-79.6196 -42.1804 90.7746 +-81.0565 -42.1804 90.7746 +-83.199 -42.531 91.5291 +-83.7552 -42.0623 90.5203 +-86.1168 -42.4898 91.4402 +-87.059 -42.2032 90.8235 +-89.1224 -42.4497 91.354 +-90.5334 -42.3705 91.1836 +-93.0288 -42.7818 92.0687 +-94.525 -42.7156 91.9263 +-96.4385 -42.8248 92.1612 +-98.572 -43.014 92.5684 +-101.141 -43.3713 93.3374 +-102.036 -42.998 92.5339 +-104.919 -43.448 93.5024 +-106.103 -43.1775 92.9202 +-109.459 -43.7721 94.1998 +-111.019 -43.6263 93.886 +-114.499 -44.2129 95.1484 +-114.37 -43.3953 93.3891 +-117.811 -43.9225 94.5236 +-120.225 -44.0405 94.7775 +-124.631 -44.8559 96.5323 +-125.555 -44.3957 95.542 +-129.016 -44.8167 96.448 +-129.939 -44.3405 95.4232 +-132.496 -44.4122 95.5774 +-134.907 -44.416 95.5855 +-137.726 -44.534 95.8394 +-138.244 -43.8989 94.4728 +-138.585 -43.2133 92.9973 +-139.313 -42.6528 91.7912 +-139.946 -42.0653 90.5268 +-139.665 -41.2107 88.6877 +-139.607 -40.433 87.0139 +-139.278 -39.5882 85.1958 +-139.843 -39.0047 83.9402 +-140.813 -38.5349 82.9291 +-141.605 -38.0156 81.8115 +-141.878 -37.3594 80.3994 +-140.515 -36.2858 78.089 +-140.661 -35.6157 76.647 +-139.584 -34.648 74.5643 +-139.95 -34.0491 73.2755 +-142.825 -34.0519 73.2816 +-150.522 -35.1598 75.6657 +-167.678 -38.365 82.5636 +-215.174 -48.2124 103.756 +-223.704 -49.0733 105.608 +-226.939 -48.7269 104.863 +-233.667 -49.0939 105.653 +-239.798 -49.2857 106.065 +-247.579 -49.7627 107.092 +-249.688 -49.064 105.588 +-256.882 -49.3324 106.166 +-259.264 -48.643 104.682 +-267.415 -48.9983 105.447 +-272.93 -48.82 105.063 +-284.37 -49.6367 106.821 +-290.209 -49.41 106.333 +-296.989 -49.2983 106.093 +-302.853 -48.9898 105.429 +-315.752 -49.7484 107.061 +-322.127 -49.407 106.327 +-329.83 -49.2191 105.922 +-336.416 -48.8137 105.05 +-353.63 -49.8613 107.304 +-360.736 -49.3923 106.295 +-375.097 -49.8381 107.254 +-384.817 -49.5777 106.694 +-402.321 -50.2195 108.075 +-415.938 -50.2595 108.161 +-429.105 -50.147 107.919 +-434.763 -49.0906 105.645 +-468.874 -51.0985 109.967 +-493.686 -51.8701 111.627 +-384.378 -38.8872 83.6873 +-548.668 -53.3787 114.874 +-380.755 -35.571 76.5506 +-625.623 -56.0378 120.596 +-14.5029 -1.2434 2.67587 +-17.8656 -1.4634 3.14932 +-3221.44 -251.6 541.457 +-3226.53 -239.745 515.943 +-3231.37 -227.87 490.388 +-17.2845 -1.15362 2.48266 +-17.2089 -1.08379 2.33237 +-3244.81 -192.17 413.56 +-3248.67 -180.231 387.866 +-3251.88 -168.257 362.098 +-3255.64 -156.311 336.39 +-12.531 -0.555009 1.19441 +-3261.22 -132.328 284.776 +-14.7437 -0.543564 1.16978 +-11.0658 -0.366995 0.789794 +-13.8661 -0.408596 0.87932 +-3270.19 -84.2855 181.387 +-14.0807 -0.310967 0.669217 +-3273.18 -60.2223 129.601 +-3274.3 -48.1833 103.693 +-3275.58 -36.1452 77.7863 +-3276.2 -24.0983 51.8608 +-3276.58 -12.0496 25.9314 +94.5 0 0 +94.4964 -0.340749 0.750967 +94.4856 -0.68147 1.50187 +94.4676 -1.02214 2.25267 +95.142 -1.37283 3.02554 +95.1094 -1.71584 3.7815 +95.0695 -2.05872 4.53716 +95.8209 -2.42162 5.33695 +95.8659 -2.76993 6.10457 +95.2056 -3.09604 6.82328 +95.2362 -3.44282 7.58754 +95.2594 -3.79005 8.35279 +95.2752 -4.1377 9.11897 +95.4823 -4.49512 9.90667 +95.4829 -4.84427 10.6762 +95.6744 -5.20458 11.4702 +95.3628 -5.53787 12.2048 +95.1433 -5.87541 12.9487 +95.0156 -6.21824 13.7042 +94.782 -6.5538 14.4438 +95.5264 -6.9599 15.3387 +94.2941 -7.22124 15.9147 +95.8068 -7.69502 16.9589 +95.0527 -7.99075 17.6106 +94.6847 -8.31602 18.3275 +94.7007 -8.67496 19.1185 +95.196 -9.08118 20.0138 +95.0005 -9.4241 20.7695 +95.6712 -9.85626 21.722 +95.4594 -10.2009 22.4814 +95.4335 -10.5661 23.2863 +95.8812 -10.9871 24.2141 +95.8378 -11.3551 25.0253 +95.4026 -11.6768 25.7342 +95.1523 -12.0204 26.4914 +95.6578 -12.4624 27.4656 +95.4861 -12.8196 28.2529 +96.0652 -13.2815 29.2707 +95.6865 -13.6139 30.0033 +95.3011 -13.9446 30.7322 +95.8486 -14.4149 31.7687 +96.2899 -14.8757 32.7842 +95.9721 -15.2224 33.5482 +95.6469 -15.5678 34.3096 +96.3344 -16.0824 35.4436 +95.9911 -16.4292 36.2078 +96.561 -16.9361 37.3251 +96.2913 -17.3001 38.1273 +96.0136 -17.6635 38.9281 +95.6369 -18.009 39.6896 +95.978 -18.4929 40.756 +96.3961 -18.9983 41.87 +95.9912 -19.3452 42.6344 +96.3844 -19.8565 43.7613 +95.9614 -20.2033 44.5256 +96.152 -20.6821 45.5807 +95.7115 -21.028 46.3431 +96.1426 -21.5695 47.5365 +95.5085 -21.8753 48.2104 +95.8262 -22.402 49.3711 +96.0422 -22.9119 50.495 +95.6408 -23.2784 51.3026 +95.917 -23.8139 52.4828 +95.2399 -24.1156 53.1478 +95.4054 -24.6333 54.2886 +95.4719 -25.1318 55.3872 +95.6923 -25.6776 56.5902 +95.1464 -26.0217 57.3485 +95.1735 -26.5255 58.4588 +95.3514 -27.0783 59.6772 +95.5131 -27.6344 60.9027 +95.4958 -28.1457 62.0296 +95.5449 -28.6833 63.2143 +95.4982 -29.1987 64.3503 +95.5168 -29.7409 65.5453 +95.5197 -30.2854 66.7453 +93.6157 -30.2217 66.6048 +93.8347 -30.841 67.9697 +93.3352 -31.2302 68.8275 +93.3666 -31.8021 70.0879 +92.768 -32.1641 70.8857 +93.3779 -32.9536 72.6256 +93.3576 -33.533 73.9026 +93.3948 -34.1422 75.245 +93.339 -34.7265 76.5328 +93.2656 -35.313 77.8253 +93.1745 -35.9015 79.1224 +93.1381 -36.5205 80.4867 +92.9387 -37.0846 81.7299 +92.9365 -37.7369 83.1674 +93.3381 -38.5673 84.9974 +93.1508 -39.1676 86.3205 +92.7369 -39.6804 87.4505 +92.6525 -40.3429 88.9107 +90.433 -40.0711 88.3116 +90.1237 -40.6394 89.564 +87.4554 -40.1337 88.4496 +87.0683 -40.6641 89.6187 +85.2221 -40.5088 89.2763 +84.9478 -41.0973 90.5733 +83.1124 -40.9272 90.1985 +82.0541 -41.1297 90.6448 +80.1754 -40.9103 90.161 +79.4951 -41.2948 91.0086 +78.2506 -41.3844 91.2061 +77.9215 -41.96 92.4746 +75.588 -41.4477 91.3454 +75.602 -42.2166 93.0401 +73.4144 -41.7522 92.0166 +72.5298 -42.0154 92.5966 +69.7469 -41.1584 90.7079 +68.6484 -41.2721 90.9585 +67.2709 -41.2097 90.8211 +66.4532 -41.4853 91.4283 +65.1933 -41.4807 91.4183 +64.3148 -41.7142 91.9328 +62.1065 -41.0684 90.5096 +61.7071 -41.608 91.6988 +59.8989 -41.1913 90.7805 +58.6207 -41.1209 90.6253 +56.85 -40.6866 89.6681 +56.284 -41.1058 90.5921 +54.6865 -40.7651 89.8411 +53.9667 -41.0697 90.5124 +52.5339 -40.8249 89.9729 +51.8082 -41.1227 90.6293 +50.4383 -40.903 90.145 +49.7957 -41.2682 90.9499 +48.0455 -40.7034 89.7052 +47.5715 -41.2108 90.8234 +45.7696 -40.5568 89.3822 +45.2845 -41.0588 90.4883 +43.8462 -40.692 89.68 +43.2643 -41.1138 90.6096 +41.7692 -40.6597 89.6088 +40.9471 -40.8469 90.0214 +39.5959 -40.4949 89.2458 +39.069 -40.9822 90.3196 +37.4136 -40.2728 88.7563 +37.157 -41.0642 90.5003 +35.5701 -40.3812 88.9951 +35.1165 -40.9753 90.3045 +33.8591 -40.6315 89.5468 +32.841 -40.5562 89.3807 +31.7978 -40.4373 89.1186 +31.2734 -40.9839 90.3233 +29.8512 -40.3443 88.9137 +29.3672 -40.9655 90.2827 +27.9772 -40.3151 88.8495 +27.6324 -41.171 90.7357 +26.2701 -40.5107 89.2806 +25.6389 -40.9639 90.2793 +24.5551 -40.694 89.6844 +23.718 -40.8212 89.9647 +22.765 -40.7441 89.7949 +21.9253 -40.865 90.0612 +20.7496 -40.3362 88.8959 +20.176 -40.9764 90.3068 +18.9855 -40.358 88.944 +18.3329 -40.8718 90.0764 +17.3301 -40.6108 89.5012 +16.6698 -41.1608 90.7133 +15.5339 -40.5256 89.3133 +14.7514 -40.7844 89.8837 +13.6946 -40.2632 88.735 +13.0265 -40.8845 90.1044 +11.9919 -40.3558 88.9391 +11.2977 -40.9723 90.2977 +10.2856 -40.4361 89.1162 +9.47914 -40.6773 89.6477 +8.57613 -40.5042 89.2661 +7.83022 -41.1102 90.6017 +6.81521 -40.2713 88.7528 +6.07433 -41.0367 90.4397 +5.11322 -40.3143 88.8476 +4.34013 -41.0742 90.5225 +3.42015 -40.4689 89.1884 +2.60461 -41.0993 90.5777 +1.71034 -40.4874 89.2292 +0.863054 -40.8639 90.0589 +5.9822e-15 -40.3696 88.9696 +-0.870908 -41.2358 90.8785 +-1.71732 -40.6527 89.5934 +-2.60461 -41.0993 90.5777 +-3.44109 -40.7167 89.7344 +-4.35321 -41.1981 90.7954 +-5.16033 -40.6857 89.6661 +-6.09264 -41.1604 90.7124 +-6.84311 -40.4361 89.1162 +-7.83022 -41.1102 90.6017 +-8.59356 -40.5865 89.4475 +-9.53665 -40.9241 90.1916 +-10.3379 -40.6416 89.569 +-11.3656 -41.2186 90.8406 +-12.0651 -40.6019 89.4814 +-13.144 -41.2532 90.917 +-13.7364 -40.3859 89.0055 +-14.8844 -41.1522 90.6942 +-15.487 -40.4031 89.0434 +-16.6203 -41.0386 90.4439 +-17.278 -40.4888 89.2322 +-18.3511 -40.9125 90.166 +-18.9855 -40.358 88.944 +-20.2558 -41.1383 90.6636 +-20.6872 -40.215 88.6287 +-21.9253 -40.865 90.0612 +-22.5176 -40.3012 88.8188 +-23.8348 -41.0221 90.4075 +-24.5793 -40.7341 89.7728 +-25.714 -41.084 90.5439 +-26.5031 -40.8699 90.0722 +-27.8195 -41.4497 91.35 +-28.3631 -40.8712 90.0749 +-29.3956 -41.005 90.3699 +-30.1143 -40.6999 89.6975 +-31.6343 -41.4567 91.3655 +-32.2614 -41.0267 90.4178 +-33.5708 -41.4576 91.3673 +-34.2498 -41.1004 90.5801 +-35.684 -41.6373 91.7634 +-36.3909 -41.3131 91.0488 +-37.5773 -41.5286 91.5239 +-38.202 -41.1215 90.6267 +-39.7287 -41.6741 91.8445 +-40.2702 -41.1846 90.7656 +-41.9421 -41.8394 92.2087 +-42.3162 -41.1922 90.7824 +-44.301 -42.0989 92.7806 +-44.5783 -41.3716 91.1779 +-46.0724 -41.7733 92.063 +-46.8261 -41.4931 91.4456 +-48.4325 -41.9567 92.4673 +-49.1852 -41.6691 91.8335 +-50.8666 -42.1559 92.9063 +-51.0739 -41.4183 91.2808 +-53.0549 -42.1125 92.8106 +-53.8014 -41.81 92.1441 +-55.255 -42.0501 92.6731 +-55.8501 -41.6324 91.7525 +-57.909 -42.2927 93.2077 +-58.2 -41.6526 91.7971 +-60.3463 -42.3315 93.2933 +-60.5685 -41.6518 91.7953 +-62.6998 -42.2774 93.174 +-63.4313 -41.9443 92.44 +-65.4968 -42.4807 93.622 +-65.7379 -41.8274 92.1823 +-67.8882 -42.3811 93.4026 +-68.2775 -41.8261 92.1796 +-70.5176 -42.396 93.4353 +-71.4103 -42.1398 92.8708 +-72.8202 -42.1836 92.9673 +-73.7083 -41.9195 92.3854 +-76.0778 -42.4823 93.6257 +-76.4305 -41.9096 92.3635 +-78.9564 -42.5174 93.7031 +-79.2972 -41.9381 92.4264 +-81.8607 -42.5236 93.7167 +-82.0004 -41.8414 92.2133 +-84.7892 -42.5009 93.6666 +-85.4908 -42.0984 92.7797 +-87.7404 -42.4484 93.551 +-88.6336 -42.1303 92.8498 +-91.8391 -42.8922 94.529 +-92.1393 -42.2831 93.1867 +-95.2582 -42.9546 94.6665 +-96.1618 -42.6096 93.9061 +-99.1231 -43.1604 95.12 +-99.614 -42.6228 93.9353 +-103.735 -43.6178 96.1281 +-104.015 -42.979 94.7203 +-108.057 -43.8769 96.6991 +-108.333 -43.2273 95.2676 +-111.925 -43.8872 96.7218 +-112.994 -43.5384 95.9533 +-116.564 -44.1343 97.2664 +-116.822 -43.4632 95.7875 +-122.529 -44.7929 98.718 +-122.791 -44.1054 97.2027 +-127.064 -44.8417 98.8254 +-127.546 -44.2223 97.4604 +-131.639 -44.8384 98.8181 +-131.571 -44.024 97.0233 +-135.626 -44.5768 98.2417 +-136.799 -44.1624 97.3283 +-138.837 -44.0194 97.0133 +-138.164 -43.0199 94.8104 +-139.63 -42.6922 94.0883 +-139.636 -41.9199 92.3863 +-139.377 -41.0788 90.5325 +-139.502 -40.3614 88.9514 +-140.101 -39.7866 87.6847 +-140.273 -39.0951 86.1606 +-140.843 -38.5194 84.8919 +-141.651 -38.01 83.7694 +-141.437 -37.2314 82.0533 +-141.37 -36.501 80.4437 +-140.259 -35.5149 78.2705 +-139.975 -34.7525 76.59 +-139.756 -34.0157 74.9664 +-141.335 -33.7171 74.3083 +-158.318 -37.011 81.5677 +-160.493 -36.7593 81.0129 +-222.077 -49.8228 109.803 +-224.18 -49.253 108.547 +-229.204 -49.3013 108.654 +-229.701 -48.3605 106.58 +-240.379 -49.5216 109.139 +-245.371 -49.4497 108.981 +-251.912 -49.6484 109.419 +-254.582 -49.0522 108.105 +-258.793 -48.7324 107.4 +-263.192 -48.4192 106.71 +-273.742 -49.1819 108.391 +-277.992 -48.758 107.456 +-290.098 -49.6513 109.425 +-294.474 -49.1604 108.343 +-302.758 -49.2778 108.602 +-309.669 -49.1175 108.249 +-321.185 -49.6195 109.355 +-324.194 -48.7563 107.453 +-336.9 -49.296 108.642 +-343.318 -48.846 107.65 +-361.027 -49.9137 110.004 +-365.871 -49.1208 108.256 +-383.108 -49.9121 110 +-391.702 -49.4827 109.054 +-411.525 -50.3686 111.006 +-423.051 -50.1244 110.468 +-435.368 -49.8889 109.949 +-440.269 -48.7452 107.428 +-380.966 -40.7103 89.7204 +-503.292 -51.8504 114.272 +-536.456 -53.2168 117.283 +-563.381 -53.7437 118.444 +-380.755 -34.8788 76.8684 +-638.241 -56.0555 123.539 +-672.228 -56.5117 124.545 +-3216.11 -258.311 569.285 +-3221.44 -246.704 543.705 +-3226.53 -235.079 518.085 +-3231.37 -223.436 492.424 +-16.7907 -1.09886 2.42175 +-17.3078 -1.06881 2.35552 +-3244.81 -188.431 415.278 +-3248.67 -176.723 389.476 +-3252.28 -165.003 363.645 +-3255.64 -153.269 337.787 +-3258.75 -141.524 311.902 +-3261.61 -129.769 285.994 +-3263.83 -117.988 260.032 +-3266.2 -106.215 234.086 +-3268.32 -94.4339 208.12 +-3270.59 -82.6557 182.163 +-3271.81 -70.8505 156.146 +-3273.58 -59.0578 130.156 +-3274.7 -47.2515 104.136 +-3275.58 -35.4418 78.1093 +-3276.2 -23.6294 52.0762 +-3276.58 -11.8151 26.039 +94.6 0 0 +94.4964 -0.333958 0.754011 +95.1855 -0.672839 1.51913 +95.3673 -1.01131 2.28334 +95.142 -1.34547 3.0378 +95.1094 -1.68165 3.79683 +95.0695 -2.01769 4.55555 +95.0224 -2.35359 5.31393 +95.2674 -2.69778 6.09104 +95.405 -3.0407 6.8653 +95.2362 -3.37421 7.61829 +95.359 -3.71841 8.39541 +95.3746 -4.0595 9.16554 +95.681 -4.41474 9.96759 +95.7807 -4.76256 10.7529 +95.6744 -5.10087 11.5167 +95.5609 -5.43878 12.2797 +96.0334 -5.81219 13.1228 +95.9045 -6.15135 13.8885 +95.6697 -6.48334 14.6381 +95.3294 -6.80711 15.3691 +95.1791 -7.14376 16.1292 +94.9233 -7.47211 16.8705 +95.9346 -7.90417 17.846 +95.565 -8.22608 18.5728 +95.3841 -8.56349 19.3346 +95.0985 -8.89111 20.0743 +95.0005 -9.2363 20.8537 +94.7979 -9.5717 21.611 +95.653 -10.0178 22.6183 +95.4335 -10.3555 23.3807 +96.074 -10.7898 24.3612 +95.8378 -11.1289 25.1268 +95.4026 -11.4441 25.8386 +96.013 -11.8874 26.8394 +95.6578 -12.2141 27.577 +95.4861 -12.5642 28.3674 +95.9704 -13.0039 29.3603 +95.6865 -13.3426 30.1249 +96.2437 -13.8019 31.162 +95.8486 -14.1277 31.8975 +96.2899 -14.5793 32.9171 +95.8787 -14.9045 33.6514 +96.5773 -15.406 34.7837 +96.3344 -15.7619 35.5873 +95.9911 -16.1018 36.3546 +95.6405 -16.4404 37.1191 +96.1996 -16.9392 38.2454 +95.9223 -17.295 39.0486 +95.6369 -17.6502 39.8505 +96.0686 -18.1415 40.9598 +95.674 -18.4803 41.7248 +95.9912 -18.9597 42.8072 +95.4895 -19.2802 43.5307 +95.9614 -19.8007 44.7061 +96.152 -20.27 45.7655 +95.7115 -20.609 46.531 +96.0547 -21.1204 47.6856 +95.5085 -21.4394 48.4058 +95.7391 -21.9356 49.5262 +96.0422 -22.4554 50.6997 +95.6408 -22.8145 51.5105 +95.917 -23.3393 52.6955 +95.2399 -23.6351 53.3632 +95.4902 -24.1639 54.5572 +95.4719 -24.631 55.6118 +94.8536 -24.9454 56.3216 +95.063 -25.4808 57.5305 +95.2564 -26.0196 58.747 +95.3514 -26.5387 59.9191 +94.7759 -26.8747 60.6776 +94.9259 -27.4203 61.9094 +95.6258 -28.1355 63.5243 +95.0159 -28.4724 64.2849 +94.8779 -28.9533 65.3707 +94.8057 -29.4601 66.5149 +95.4281 -30.1929 68.1695 +95.0086 -30.6046 69.0991 +93.8015 -30.7608 69.4517 +93.6752 -31.2714 70.6046 +93.4574 -31.7575 71.702 +93.3779 -32.2969 72.92 +93.3576 -32.8648 74.2021 +93.3199 -33.435 75.4895 +93.2647 -34.0074 76.7818 +93.2656 -34.6093 78.1408 +93.1745 -35.1861 79.4432 +93.0655 -35.7649 80.75 +92.8668 -36.3175 81.9976 +92.7939 -36.9282 83.3764 +93.7624 -37.9706 85.7299 +93.2209 -38.416 86.7356 +92.8064 -38.9188 87.8708 +93.0655 -39.7153 89.6691 +92.6154 -40.2203 90.8094 +92.3532 -40.8149 92.1518 +89.262 -40.1465 90.6427 +89.2549 -40.8546 92.2414 +86.9934 -40.5266 91.5008 +86.7013 -41.1097 92.8175 +85.0408 -41.0425 92.6657 +83.7715 -41.1539 92.9171 +81.7487 -40.8817 92.3027 +81.0514 -41.2644 93.1667 +79.5435 -41.23 93.089 +79.3825 -41.895 94.5904 +77.7545 -41.786 94.3444 +77.6244 -42.4822 95.9161 +75.2365 -41.9359 94.6827 +75.0268 -42.5959 96.1731 +72.3853 -41.8642 94.5209 +70.5742 -41.5843 93.8891 +67.9979 -40.825 92.1747 +67.9434 -41.5702 93.8571 +66.5004 -41.4693 93.6294 +65.9267 -41.9075 94.6187 +64.2262 -41.6236 93.9778 +63.1701 -41.7455 94.253 +61.032 -41.134 92.8723 +60.1433 -41.3482 93.356 +58.65 -41.1385 92.8824 +57.7613 -41.3442 93.3469 +55.9955 -40.9093 92.3649 +55.5413 -41.4256 93.5306 +53.8014 -40.9769 92.5176 +53.0549 -41.2733 93.1869 +51.3463 -40.8096 92.14 +50.7327 -41.2069 93.0369 +49.1852 -40.8388 92.2058 +48.6478 -41.3033 93.2545 +47.291 -41.07 92.7279 +46.5286 -41.3462 93.3514 +45.1478 -41.0652 92.7169 +44.2611 -41.2231 93.0735 +42.5115 -40.5578 91.5712 +42.1717 -41.2304 93.0899 +40.5699 -40.6643 91.8117 +40.1685 -41.296 93.2381 +38.5246 -40.6424 91.7623 +37.9625 -41.1182 92.8367 +36.4935 -40.6039 91.6755 +35.9844 -41.1514 92.9116 +34.5428 -40.6262 91.7258 +33.8564 -40.9769 92.5176 +32.5086 -40.5173 91.4798 +32.1755 -41.326 93.3057 +30.7575 -40.7408 91.9845 +30.134 -41.1976 93.0159 +28.7765 -40.6408 91.7587 +28.1135 -41.053 92.6895 +26.9948 -40.7987 92.1153 +26.2649 -41.1279 92.8586 +24.7728 -40.2367 90.8464 +24.4884 -41.3073 93.2637 +23.1025 -40.5241 91.4953 +22.7045 -41.4738 93.6395 +21.2278 -40.4435 91.3133 +20.5349 -40.874 92.2853 +19.4816 -40.5873 91.638 +18.7703 -41.0129 92.5989 +17.7816 -40.8384 92.2049 +16.9834 -41.0996 92.7946 +15.972 -40.838 92.204 +15.1357 -41.0129 92.5989 +14.0843 -40.5837 91.6298 +13.2615 -40.7926 92.1015 +12.3697 -40.7975 92.1125 +11.558 -41.0814 92.7535 +10.5156 -40.5164 91.478 +9.73793 -40.955 92.4682 +8.74172 -40.4635 91.3585 +8.01067 -41.2195 93.0653 +7.02448 -40.6809 91.8492 +6.18422 -40.9465 92.449 +5.22313 -40.3602 91.1252 +4.40556 -40.8627 92.2597 +3.51438 -40.7554 92.0174 +2.65958 -41.1304 92.8641 +1.74175 -40.4095 91.2364 +0.886616 -41.1429 92.8924 +6.16589e-15 -40.7801 92.0732 +-0.886616 -41.1429 92.8924 +-1.75222 -40.6525 91.7852 +-2.65958 -41.1304 92.8641 +-3.51089 -40.7149 91.926 +-4.45354 -41.3078 93.2646 +-5.2493 -40.5626 91.5822 +-6.21474 -41.1486 92.9052 +-7.00355 -40.5594 91.5749 +-8.03421 -41.3406 93.3386 +-8.82016 -40.8267 92.1784 +-9.81461 -41.2778 93.1969 +-10.6515 -41.0401 92.6602 +-11.558 -41.0814 92.7535 +-12.3454 -40.7173 91.9315 +-13.5486 -41.6759 94.0957 +-14.2096 -40.9445 92.4444 +-15.1357 -41.0129 92.5989 +-15.8937 -40.6379 91.7523 +-16.9999 -41.1393 92.8842 +-17.7816 -40.8384 92.2049 +-18.7703 -41.0129 92.5989 +-19.4816 -40.5873 91.638 +-20.8539 -41.509 93.719 +-21.3525 -40.6813 91.8501 +-22.6396 -41.3555 93.3725 +-23.17 -40.6424 91.7623 +-24.6285 -41.5434 93.7967 +-25.1115 -40.787 92.0887 +-26.4902 -41.4807 93.655 +-27.2278 -41.1506 92.9098 +-28.4342 -41.5212 93.7464 +-28.997 -40.9522 92.4618 +-30.4464 -41.6244 93.9796 +-31.1961 -41.3219 93.2966 +-32.5063 -41.7508 94.2649 +-33.312 -41.5187 93.7409 +-34.3006 -41.5147 93.7318 +-35.0962 -41.277 93.1951 +-36.5852 -41.8387 94.4633 +-37.0066 -41.1749 92.9647 +-38.3827 -41.5734 93.8644 +-39.2771 -41.4361 93.5544 +-40.7916 -41.9363 94.6836 +-41.394 -41.4904 93.6769 +-43.0519 -42.0906 95.032 +-43.7228 -41.7131 94.1798 +-45.2181 -42.1144 95.0859 +-45.7579 -41.62 93.9695 +-47.5238 -42.2307 95.3483 +-47.9249 -41.6204 93.9704 +-49.4657 -41.9978 94.8226 +-50.5004 -41.9306 94.6708 +-52.0713 -42.2942 95.4919 +-52.2997 -41.5673 93.8507 +-54.3016 -42.2428 95.3758 +-54.9282 -41.835 94.455 +-56.591 -42.2088 95.299 +-57.0136 -41.6528 94.0436 +-59.4355 -42.5425 96.0524 +-59.9 -42.0152 94.8619 +-62.4272 -42.9183 96.9009 +-62.3196 -42.0019 94.8317 +-64.0061 -42.2979 95.5001 +-64.7561 -41.967 94.7531 +-67.3236 -42.7956 96.6238 +-67.4808 -42.0804 95.0091 +-69.3785 -42.4481 95.8393 +-69.955 -42.0002 94.8281 +-71.9336 -42.3854 95.6976 +-72.8442 -42.1294 95.1198 +-75.143 -42.662 96.3221 +-75.5304 -42.0999 95.053 +-77.8028 -42.5798 96.1365 +-78.4165 -42.1416 95.1472 +-80.9653 -42.7304 96.4766 +-81.5136 -42.2513 95.395 +-83.915 -42.7223 96.4583 +-84.266 -42.1408 95.1454 +-87.0791 -42.7786 96.5854 +-87.7405 -42.3453 95.6071 +-90.598 -42.9576 96.9896 +-91.5202 -42.6356 96.2627 +-94.6221 -43.3115 97.7887 +-94.7489 -42.6142 96.2142 +-98.5686 -43.5618 98.3537 +-98.8216 -42.9155 96.8945 +-101.67 -43.3873 97.9597 +-102.809 -43.1135 97.3416 +-106.398 -43.8461 98.9956 +-106.915 -43.2969 97.7558 +-110.197 -43.8538 99.013 +-110.994 -43.4067 98.0036 +-114.899 -44.1555 99.6942 +-115.188 -43.4994 98.2129 +-119.218 -44.2397 99.8843 +-121.207 -44.196 99.7856 +-125.375 -44.92 101.42 +-126.338 -44.475 100.416 +-130.41 -45.1051 101.838 +-130.687 -44.4086 100.266 +-133.954 -44.7176 100.963 +-134.913 -44.2425 99.8907 +-137.739 -44.3693 100.177 +-138.611 -43.8558 99.0176 +-139.154 -43.2411 97.6296 +-139.522 -42.5769 96.1301 +-139.067 -41.6726 94.0884 +-140.041 -41.2037 93.0296 +-139.702 -40.3543 91.1119 +-139.665 -39.6036 89.4169 +-140.761 -39.1773 88.4545 +-141.019 -38.5198 86.97 +-142.178 -38.1095 86.0435 +-140.813 -37.0321 83.611 +-140.846 -36.3372 82.0421 +-140.776 -35.6235 80.4307 +-140.089 -34.7649 78.4922 +-140.147 -34.1017 76.9947 +-145.012 -34.5917 78.101 +-152.507 -35.6573 80.5069 +-185.995 -42.615 96.216 +-217.518 -48.8276 110.243 +-228.405 -50.2215 113.39 +-229.301 -49.3743 111.477 +-236.122 -49.7772 112.387 +-238.522 -49.2167 111.121 +-244.944 -49.4561 111.662 +-250.494 -49.4763 111.708 +-256.605 -49.5654 111.909 +-257.935 -48.7081 109.973 +-265.618 -49.0207 110.679 +-268.765 -48.459 109.411 +-281.996 -49.6549 112.111 +-282.687 -48.5935 109.714 +-296.011 -49.6537 112.108 +-298.182 -48.7875 110.152 +-310.48 -49.5278 111.824 +-316.297 -49.169 111.014 +-327.273 -49.5525 111.879 +-331.242 -48.8235 110.234 +-346.044 -49.6245 112.042 +-356.65 -49.7315 112.284 +-367.57 -49.8056 112.451 +-372.814 -49.0556 110.758 +-392.645 -50.1352 113.195 +-400.596 -49.5982 111.983 +-420.538 -50.4462 113.897 +-429.492 -49.8736 112.605 +-440.283 -49.4468 111.641 +-436.985 -47.4175 107.059 +-379.32 -39.7267 89.6949 +-519.399 -52.4435 118.407 +-383.6 -37.295 84.2046 +-378.933 -35.4278 79.9889 +-378.9 -34.0172 76.804 +-382.651 -32.938 74.3673 +-381.583 -31.4391 70.9831 +-726.6 -57.1962 129.137 +-3221.44 -241.788 545.909 +-3226.53 -230.395 520.185 +-3231.76 -219.01 494.481 +-3235.96 -207.556 468.619 +-3240.71 -196.136 442.836 +-3244.81 -184.676 416.961 +-3248.67 -173.202 391.055 +-3252.28 -161.715 365.119 +-3255.64 -150.215 339.156 +-3258.75 -138.704 313.166 +-3261.61 -127.183 287.153 +-3264.23 -115.651 261.118 +-3266.6 -104.112 235.063 +-3268.72 -92.5635 208.99 +-3270.59 -81.0086 182.901 +-3272.21 -69.4472 156.798 +-3273.58 -57.881 130.684 +-3274.7 -46.3099 104.558 +-3275.58 -34.7356 78.4259 +-3276.2 -23.1585 52.2872 +-3276.58 -11.5797 26.1446 +94.6 0 0 +94.5964 -0.327487 0.757794 +95.3855 -0.660489 1.52835 +94.4676 -0.981323 2.27075 +95.142 -1.31801 3.04982 +95.3092 -1.65078 3.81985 +95.3691 -1.98274 4.58798 +95.4217 -2.31523 5.35737 +95.3671 -2.64548 6.12154 +95.5047 -2.98174 6.89965 +95.4355 -3.31225 7.66443 +95.6576 -3.65391 8.45502 +95.5736 -3.98492 9.22098 +95.681 -4.32462 10.007 +95.5822 -4.65566 10.773 +95.4761 -4.98639 11.5383 +95.3628 -5.31672 12.3027 +95.1433 -5.64079 13.0526 +95.0156 -5.96993 13.8142 +95.6697 -6.351 14.696 +95.3294 -6.66816 15.4299 +95.3757 -7.01237 16.2264 +95.0215 -7.32716 16.9548 +95.6407 -7.71909 17.8617 +95.4672 -8.0499 18.6272 +95.3841 -8.38868 19.4111 +95.196 -8.71854 20.1744 +95.0005 -9.04776 20.9362 +95.6712 -9.46267 21.8963 +95.4594 -9.79351 22.6619 +95.2403 -10.1236 23.4257 +95.8812 -10.5483 24.4084 +95.6455 -10.8798 25.1756 +95.4026 -11.2105 25.9408 +95.1523 -11.5404 26.704 +95.6578 -11.9648 27.6861 +95.4861 -12.3077 28.4796 +95.9704 -12.7385 29.4764 +95.6865 -13.0703 30.2441 +95.3953 -13.401 31.0095 +95.8486 -13.8393 32.0236 +95.4469 -14.1567 32.758 +95.9721 -14.6145 33.8174 +96.5773 -15.0916 34.9213 +96.3344 -15.4402 35.728 +95.9911 -15.7731 36.4984 +96.4689 -16.2443 37.5887 +96.2913 -16.6093 38.4333 +95.9223 -16.942 39.2031 +95.6369 -17.2899 40.0081 +95.978 -17.7544 41.0831 +95.674 -18.1031 41.8899 +95.9013 -18.5553 42.9363 +95.4895 -18.8866 43.7029 +95.9614 -19.3965 44.8829 +96.2407 -19.8745 45.9889 +95.7115 -20.1883 46.715 +96.0547 -20.6893 47.8742 +95.5959 -21.021 48.6418 +95.8262 -21.5074 49.7673 +96.1288 -22.0168 50.9461 +95.5547 -22.3286 51.6677 +95.0599 -22.6586 52.4311 +95.3252 -23.1733 53.6222 +95.4902 -23.6706 54.773 +95.4719 -24.1282 55.8317 +95.6923 -24.6522 57.0444 +95.1464 -24.9825 57.8087 +95.2564 -25.4884 58.9794 +95.3514 -25.997 60.1561 +95.4312 -26.5081 61.3389 +95.4958 -27.0218 62.5274 +94.8977 -27.3513 63.29 +95.0159 -27.8912 64.5392 +95.0376 -28.41 65.7398 +95.0437 -28.9311 66.9456 +95.1129 -29.4788 68.213 +94.9304 -29.9552 69.3152 +94.5009 -30.3576 70.2464 +93.9067 -30.7088 71.059 +93.917 -31.2622 72.3397 +93.2258 -31.5861 73.0892 +92.7538 -31.9857 74.0139 +93.3948 -32.7788 75.8489 +92.6702 -33.1008 76.5942 +92.6758 -33.6884 77.9538 +93.2476 -34.4949 79.82 +93.0655 -35.0349 81.0695 +92.9387 -35.6037 82.3858 +92.7939 -36.1743 83.7062 +93.4795 -37.0833 85.8094 +92.9406 -37.5186 86.8168 +93.0842 -38.2384 88.4824 +93.1344 -38.9333 90.0904 +93.161 -39.6314 91.7057 +92.6234 -40.0988 92.7872 +91.7378 -40.4177 93.5252 +91.2428 -40.912 94.669 +89.5521 -40.8672 94.5652 +88.4548 -41.085 95.0692 +86.1978 -40.7517 94.2981 +85.6797 -41.2321 95.4097 +83.6367 -40.9723 94.8085 +83.1057 -41.4464 95.9054 +81.0211 -41.1385 95.1931 +80.3565 -41.5435 96.1303 +79.0785 -41.63 96.3304 +78.4571 -42.0616 97.3292 +77.235 -42.1711 97.5825 +76.4786 -42.5337 98.4215 +74.6797 -42.3096 97.9029 +72.7832 -42.0105 97.2108 +70.0669 -41.2083 95.3547 +69.4337 -41.615 96.2956 +67.2629 -41.0885 95.0774 +67.0013 -41.7213 96.5416 +65.498 -41.5816 96.2185 +64.8421 -41.9759 97.1309 +62.3196 -41.1445 95.2069 +61.4121 -41.3587 95.7026 +60.2 -41.3634 95.7136 +58.9923 -41.3634 95.7136 +57.3045 -41.0108 94.8975 +56.591 -41.3472 95.6759 +54.9282 -40.981 94.8287 +54.3016 -41.3805 95.7531 +52.5721 -40.931 94.713 +52.2944 -41.6082 96.28 +50.588 -41.1461 95.2105 +50.0684 -41.6419 96.358 +48.0094 -40.843 94.5092 +47.98 -41.7657 96.6444 +46.2053 -41.1691 95.2638 +45.4574 -41.4729 95.9669 +43.84 -40.9715 94.8066 +43.3198 -41.488 96.0018 +41.9185 -41.1583 95.239 +40.8282 -41.1175 95.1445 +39.4921 -40.8128 94.4395 +38.803 -41.1706 95.2675 +37.2802 -40.6323 94.0218 +36.9858 -41.4333 95.8751 +35.2916 -40.6593 94.0842 +35.0622 -41.5701 96.1918 +33.5901 -41.0108 94.8975 +32.7769 -41.2389 95.4253 +31.5177 -40.8957 94.6313 +30.7873 -41.2313 95.4079 +29.4932 -40.8025 94.4156 +28.9686 -41.4384 95.8871 +27.6936 -41.0005 94.8737 +26.991 -41.4019 95.8026 +25.5953 -40.724 94.2338 +25.0253 -41.3511 95.6851 +23.7998 -40.8949 94.6295 +23.1374 -41.4019 95.8026 +21.9347 -40.9374 94.7277 +21.2127 -41.3615 95.709 +20.0159 -40.8493 94.5239 +19.2805 -41.2678 95.4924 +17.9726 -40.4348 93.5647 +17.363 -41.1603 95.2436 +16.3161 -40.8664 94.5634 +15.6235 -41.4706 95.9614 +14.4044 -40.6589 94.0833 +13.6922 -41.2579 95.4694 +12.5525 -40.5554 93.8437 +11.875 -41.3464 95.6741 +10.871 -41.0306 94.9434 +10.0542 -41.4222 95.8494 +9.02062 -40.9021 94.646 +8.2539 -41.6042 96.2708 +7.16399 -40.6418 94.0438 +6.33684 -41.1004 95.105 +5.3749 -40.6851 94.1439 +4.52769 -41.1381 95.1922 +3.59465 -40.835 94.4909 +2.71717 -41.1631 95.25 +1.78713 -40.6157 93.9832 +0.908432 -41.2948 95.5548 +6.28835e-15 -40.741 94.2733 +-0.912796 -41.4932 96.0138 +-1.7976 -40.8537 94.534 +-2.73811 -41.4805 95.9844 +-3.59465 -40.835 94.4909 +-4.54078 -41.2571 95.4676 +-5.3906 -40.8041 94.4193 +-6.38568 -41.4174 95.8384 +-7.18492 -40.7605 94.3183 +-8.23036 -41.4856 95.9963 +-8.97704 -40.7045 94.1889 +-10.083 -41.5408 96.1239 +-10.9023 -41.1492 95.2179 +-11.875 -41.3464 95.6741 +-12.6866 -40.9886 94.8461 +-13.7314 -41.3757 95.742 +-14.5158 -40.9731 94.8103 +-15.5496 -41.2742 95.507 +-16.2848 -40.7878 94.3816 +-17.4125 -41.2778 95.5153 +-18.1115 -40.747 94.2871 +-19.3899 -41.5019 96.0339 +-19.9014 -40.6157 93.9832 +-21.2526 -41.4392 95.8889 +-21.9347 -40.9374 94.7277 +-23.1374 -41.4019 95.8026 +-23.9348 -41.127 95.1665 +-25.1654 -41.5824 96.2203 +-25.7405 -40.9548 94.7681 +-26.991 -41.4019 95.8026 +-27.7454 -41.077 95.0508 +-29.129 -41.6677 96.4176 +-29.7964 -41.2218 95.3859 +-31.1281 -41.6879 96.4645 +-31.9562 -41.4646 95.9477 +-33.3783 -41.9958 97.1768 +-34.0537 -41.5765 96.2065 +-35.6016 -42.2096 97.6716 +-36.1381 -41.6348 96.3415 +-37.2862 -41.7697 96.6536 +-37.9984 -41.4154 95.8338 +-39.5034 -41.9141 96.9877 +-39.9939 -41.3313 95.6392 +-41.7811 -42.0771 97.365 +-42.4804 -41.7102 96.5159 +-43.9703 -42.1112 97.4439 +-44.6606 -41.7383 96.581 +-46.4144 -42.3461 97.9873 +-47.1001 -41.9664 97.1089 +-48.3947 -42.1263 97.4788 +-48.9392 -41.6336 96.3387 +-50.9295 -42.358 98.0149 +-51.5524 -41.9303 97.0253 +-53.1868 -42.3183 97.9231 +-53.7071 -41.8145 96.7573 +-55.456 -42.2604 97.7891 +-56.5244 -42.1719 97.5844 +-58.1657 -42.4976 98.338 +-58.8074 -42.0862 97.3861 +-60.8143 -42.6408 98.6694 +-61.25 -42.085 97.3833 +-63.3915 -42.6916 98.7869 +-63.8132 -42.1307 97.4889 +-66.2528 -42.8891 99.244 +-66.7168 -42.3552 98.0085 +-68.8281 -42.8586 99.1733 +-69.2781 -42.3195 97.9258 +-71.0895 -42.6071 98.5914 +-71.6326 -42.1295 97.4861 +-74.3125 -42.8931 99.2532 +-74.3929 -42.1469 97.5265 +-76.7109 -42.663 98.7208 +-77.2938 -42.2033 97.6569 +-79.6468 -42.6991 98.8043 +-80.583 -42.4218 98.1627 +-82.9133 -42.8653 99.1889 +-83.299 -42.2953 97.8698 +-85.907 -42.8435 99.1384 +-87.0979 -42.6678 98.7318 +-89.1782 -42.9157 99.3055 +-89.926 -42.5143 98.3766 +-93.7154 -43.5286 100.724 +-94.0789 -42.9328 99.345 +-97.0738 -43.5266 100.719 +-97.4254 -42.9237 99.3239 +-100.393 -43.462 100.57 +-101.345 -43.1129 99.7617 +-104.768 -43.7964 101.343 +-105.449 -43.318 100.236 +-108.571 -43.8281 101.417 +-109.743 -43.535 100.738 +-112.836 -43.9876 101.786 +-113.943 -43.6504 101.006 +-117.656 -44.2919 102.49 +-117.382 -43.4231 100.48 +-124.084 -45.1055 104.373 +-124.402 -44.4351 102.821 +-128.671 -45.1595 104.497 +-128.98 -44.4779 102.92 +-132.539 -44.906 103.911 +-133.522 -44.4454 102.845 +-136.963 -44.7889 103.64 +-137.943 -44.3129 102.539 +-138.443 -43.6857 101.087 +-138.611 -42.9606 99.4092 +-140.027 -42.6238 98.6299 +-140.161 -41.899 96.9528 +-139.871 -41.058 95.0068 +-139.879 -40.3158 93.2893 +-139.946 -39.5996 91.6322 +-140.485 -39.0227 90.2971 +-141.75 -38.6472 89.4283 +-141.683 -37.911 87.7248 +-140.593 -36.9155 85.4212 +-140.393 -36.1681 83.6918 +-140.003 -35.3823 81.8734 +-140.098 -34.7281 80.3597 +-141.538 -34.4076 79.6181 +-142.033 -33.855 78.3394 +-161.038 -37.6305 87.0756 +-166.71 -38.1823 88.3526 +-223.594 -50.1841 116.124 +-224.777 -49.4272 114.373 +-231.041 -49.7639 115.152 +-233.893 -49.3347 114.159 +-239.582 -49.4755 114.485 +-242.265 -48.9686 113.312 +-252.103 -49.8627 115.381 +-255.617 -49.4577 114.443 +-260.306 -49.2538 113.972 +-263.554 -48.7532 112.813 +-273.989 -49.5335 114.619 +-276.987 -48.9222 113.204 +-287.957 -49.6695 114.934 +-290.88 -48.9809 113.34 +-303.125 -49.8088 115.256 +-305.785 -49.0102 113.408 +-318.389 -49.7528 115.126 +-321.525 -48.9614 113.295 +-332.238 -49.2776 114.027 +-339.605 -49.0344 113.464 +-358.11 -50.3066 116.408 +-363.93 -49.7108 115.029 +-375.631 -49.8588 115.371 +-381.469 -49.1697 113.777 +-404.281 -50.5669 117.01 +-411.402 -49.896 115.458 +-427.825 -50.2729 116.33 +-432.664 -49.2161 113.884 +-430.839 -47.3984 109.678 +-382.7 -40.6791 94.1301 +-380.095 -38.9952 90.2336 +-379.774 -37.5627 86.9189 +-384.767 -36.6448 84.7949 +-381.271 -34.9188 80.8009 +-380.267 -33.443 77.386 +-380.01 -32.0429 74.1461 +-383.445 -30.9476 71.6116 +-744.564 -57.4139 132.854 +-3221.44 -236.853 548.069 +-3226.53 -225.692 522.243 +-3231.76 -214.539 496.437 +-3236.36 -203.344 470.53 +-3240.71 -192.132 444.587 +-3244.81 -180.906 418.61 +-3248.67 -169.666 392.602 +-3252.28 -158.414 366.563 +-3255.64 -147.149 340.497 +-3258.75 -135.873 314.405 +-3261.61 -124.587 288.289 +-3264.23 -113.291 262.151 +-3266.6 -101.986 235.993 +-3268.72 -90.674 209.816 +-3270.59 -79.3549 183.625 +-3272.21 -68.0296 157.418 +-3273.58 -56.6994 131.201 +-3274.7 -45.3646 104.972 +-3275.58 -34.0265 78.7361 +-3276.2 -22.6858 52.4941 +-3276.58 -11.3433 26.248 +94.8 0 0 +94.7964 -0.321314 0.762327 +94.5856 -0.641249 1.52138 +95.5672 -0.97198 2.30605 +95.4418 -1.2945 3.07124 +95.509 -1.61963 3.84263 +95.469 -1.94329 4.61051 +95.6213 -2.27154 5.38929 +95.5666 -2.59555 6.15802 +95.0062 -2.90413 6.89012 +95.7343 -3.25311 7.7181 +95.6576 -3.57747 8.48765 +95.673 -3.9056 9.26614 +95.681 -4.23415 10.0456 +95.5822 -4.55827 10.8146 +95.4761 -4.88208 11.5829 +95.3628 -5.2055 12.3502 +95.2422 -5.52849 13.1165 +95.0156 -5.84504 13.8675 +95.6697 -6.21813 14.7527 +95.5264 -6.54218 15.5215 +95.1791 -6.85154 16.2555 +95.0215 -7.17387 17.0202 +94.8567 -7.49566 17.7837 +95.4672 -7.8815 18.6991 +95.3841 -8.21319 19.486 +95.196 -8.53615 20.2522 +95.8757 -8.94008 21.2106 +95.6712 -9.26471 21.9808 +95.4594 -9.58863 22.7493 +95.4335 -9.9319 23.5637 +95.2067 -10.255 24.3303 +95.6455 -10.6522 25.2727 +95.4026 -10.976 26.0409 +95.0567 -11.2876 26.7801 +95.6578 -11.7145 27.7929 +95.391 -12.0382 28.5611 +96.0652 -12.4844 29.6195 +95.6865 -12.7968 30.3608 +96.1494 -13.2244 31.3752 +95.8486 -13.5498 32.1472 +95.5406 -13.8741 32.9168 +95.9721 -14.3087 33.9479 +95.5539 -14.6193 34.6846 +96.3344 -15.1172 35.8659 +96.0835 -15.458 36.6745 +95.7325 -15.783 37.4457 +96.1996 -16.2463 38.5449 +96.0136 -16.6033 39.3919 +95.5459 -16.912 40.1243 +96.0686 -17.3994 41.2805 +96.3961 -17.8581 42.3689 +95.9013 -18.1671 43.102 +95.4895 -18.4915 43.8715 +95.8723 -18.9731 45.0143 +96.2407 -19.4587 46.1664 +95.7115 -19.766 46.8953 +95.2638 -20.0896 47.6632 +95.5959 -20.5812 48.8295 +95.8262 -21.0574 49.9594 +95.436 -21.4009 50.7741 +95.6408 -21.8812 51.9138 +95.917 -22.3846 53.1081 +95.922 -22.8306 54.1662 +95.4054 -23.1548 54.9355 +95.4719 -23.6234 56.0472 +95.6923 -24.1365 57.2645 +95.1464 -24.4599 58.0318 +95.1735 -24.9335 59.1554 +95.3514 -25.4531 60.3882 +95.5131 -25.9758 61.6284 +95.6586 -26.5016 62.8757 +94.8977 -26.7791 63.5342 +95.0963 -27.3308 64.843 +95.0376 -27.8157 65.9935 +95.1231 -28.3495 67.2601 +95.1129 -28.8621 68.4763 +95.0086 -29.3527 69.6401 +94.8895 -29.8447 70.8073 +94.9098 -30.3875 72.0952 +93.917 -30.6082 72.6188 +93.8341 -31.1271 73.85 +93.433 -31.5459 74.8436 +93.3199 -32.0673 76.0806 +92.6702 -32.4084 76.8897 +93.3393 -33.2198 78.8148 +93.2476 -33.7733 80.128 +93.0655 -34.3019 81.3823 +93.0826 -34.9128 82.8317 +92.7939 -35.4176 84.0292 +93.5502 -36.3349 86.2056 +93.0107 -36.7614 87.2175 +92.8064 -37.3267 88.5588 +92.5149 -37.8653 89.8364 +92.9564 -38.7171 91.8574 +92.691 -39.2882 93.2125 +92.6746 -39.9765 94.8454 +92.8331 -40.7545 96.6911 +90.6674 -40.5105 96.1124 +90.7279 -41.2594 97.889 +88.319 -40.8811 96.9915 +88.1604 -41.5382 98.5507 +84.9583 -40.749 96.6782 +85.16 -41.5825 98.6557 +82.9296 -41.2268 97.8116 +82.3654 -41.6913 98.9137 +80.2821 -41.3794 98.1738 +80.1226 -42.056 99.779 +78.293 -41.8544 99.3008 +78.5691 -42.7823 101.502 +75.3679 -41.8062 99.1865 +75.2187 -42.5081 100.852 +71.9681 -41.4411 98.3203 +71.6966 -42.0723 99.8177 +68.8424 -41.1735 97.6854 +68.452 -41.7328 99.0123 +66.7168 -41.4691 98.3866 +66.5663 -42.1904 100.098 +64.3798 -41.6155 98.734 +63.8991 -42.1333 99.9624 +60.95 -41.0026 97.2799 +61.2575 -42.0529 99.7716 +58.9528 -41.3079 98.0042 +58.4519 -41.8132 99.2031 +56.2427 -41.0838 97.4725 +55.8716 -41.6862 98.9018 +53.7979 -41.0089 97.2947 +53.7222 -41.8501 99.2906 +51.5524 -41.0531 97.3997 +51.6613 -42.0676 99.8067 +49.3196 -41.0795 97.4624 +49.0997 -41.8459 99.2805 +47.3035 -41.2656 97.9038 +46.8929 -41.8874 99.3791 +45.0904 -41.2582 97.8863 +44.5061 -41.7324 99.0114 +42.8175 -41.1615 97.6568 +42.4042 -41.8109 99.1976 +40.6389 -41.1192 97.5564 +40.2388 -41.8012 99.1745 +38.3747 -40.9506 97.1565 +37.9538 -41.628 98.7635 +36.5287 -41.2042 97.7582 +36.1727 -41.9896 99.6214 +34.3936 -41.1133 97.5426 +33.7392 -41.5616 98.606 +32.3948 -41.1545 97.6402 +31.8665 -41.7841 99.134 +30.2925 -41.0318 97.349 +29.9841 -41.9935 99.6307 +28.3666 -41.118 97.5536 +27.7922 -41.7391 99.0271 +26.3695 -41.078 97.4587 +25.8424 -41.8078 99.1902 +24.5197 -41.2504 97.8678 +23.8516 -41.7872 99.1413 +22.4753 -41.0687 97.4366 +21.8507 -41.7142 98.9681 +20.512 -40.9859 97.2403 +19.973 -41.856 99.3044 +18.6672 -41.1188 97.5555 +17.9902 -41.755 99.0649 +16.8167 -41.2388 97.8402 +16.0521 -41.7169 98.9746 +14.7663 -40.8081 96.8183 +14.149 -41.7425 99.0354 +13.0035 -41.1335 97.5905 +12.3052 -41.9476 99.5219 +11.1218 -41.0994 97.5094 +10.3609 -41.7927 99.1542 +9.27337 -41.1685 97.6734 +8.5285 -42.089 99.8573 +7.40116 -41.1091 97.5324 +6.58103 -41.7915 99.1515 +5.50574 -40.8038 96.8081 +4.70217 -41.8295 99.2418 +3.70284 -41.184 97.7103 +2.82973 -41.9717 99.5791 +1.84123 -40.97 97.2025 +0.938103 -41.7515 99.0566 +6.47817e-15 -41.0928 97.4937 +-0.940721 -41.868 99.333 +-1.84646 -41.0865 97.479 +-2.82973 -41.9717 99.5791 +-3.72378 -41.4171 98.2632 +-4.70217 -41.8295 99.2418 +-5.56855 -41.2691 97.9121 +-6.56272 -41.675 98.875 +-7.42209 -41.2252 97.8079 +-8.55204 -42.2051 100.133 +-9.29952 -41.2846 97.9489 +-10.3801 -41.8699 99.3376 +-11.1845 -41.3312 98.0595 +-12.2712 -41.8319 99.2473 +-12.9913 -41.0947 97.4983 +-14.2274 -41.9733 99.5827 +-14.9611 -41.3468 98.0964 +-16.1556 -41.9857 99.6122 +-16.7228 -41.0089 97.2947 +-18.0892 -41.9849 99.6104 +-18.7193 -41.2334 97.8273 +-20.137 -42.1997 100.12 +-20.7409 -41.4435 98.3258 +-21.9703 -41.9426 99.5099 +-22.5376 -41.1825 97.7066 +-23.9599 -41.9768 99.591 +-24.3847 -41.0236 97.3297 +-25.9825 -42.0346 99.7283 +-26.5146 -41.304 97.995 +-28.0926 -42.1904 100.098 +-28.7289 -41.6435 98.8004 +-29.904 -41.8812 99.3643 +-30.7611 -41.6664 98.8548 +-32.3777 -42.4541 100.724 +-32.6287 -41.4516 98.3452 +-34.3707 -42.3395 100.452 +-34.8571 -41.6672 98.8566 +-36.4266 -42.2844 100.321 +-36.7566 -41.4613 98.3682 +-38.5547 -42.2871 100.327 +-38.8877 -41.4979 98.4548 +-40.6941 -42.2739 100.296 +-41.3915 -41.8808 99.3634 +-42.9906 -42.3892 100.57 +-43.2671 -41.5938 98.6824 +-45.6159 -42.773 101.48 +-45.4811 -41.6159 98.735 +-47.7701 -42.6712 101.239 +-48.239 -42.0816 99.8398 +-50.1779 -42.7648 101.461 +-50.3761 -41.9597 99.5505 +-52.4793 -42.7337 101.387 +-53.0429 -42.2401 100.216 +-54.9716 -42.8235 101.6 +-55.2052 -42.0816 99.8398 +-57.2107 -42.6856 101.273 +-58.1206 -42.4557 100.727 +-59.9311 -42.8712 101.713 +-60.6012 -42.4626 100.744 +-62.8332 -43.1346 102.338 +-62.75 -42.2137 100.153 +-65.6247 -43.2713 102.662 +-66.4399 -42.9474 101.894 +-69.1266 -43.8131 103.948 +-68.5186 -42.5893 101.044 +-71.5683 -43.6329 103.52 +-71.2932 -42.6394 101.163 +-73.9044 -43.3676 102.891 +-74.149 -42.6968 101.299 +-75.9551 -42.9241 101.839 +-76.8019 -42.6013 101.073 +-78.9175 -42.9718 101.952 +-78.8808 -42.1686 100.046 +-82.6209 -43.3672 102.89 +-82.2079 -42.3721 100.529 +-85.6527 -43.3552 102.861 +-85.5154 -42.5124 100.862 +-89.0818 -43.4973 103.199 +-89.4894 -42.9221 101.834 +-92.8038 -43.7261 103.741 +-92.3686 -42.7555 101.439 +-96.3131 -43.7991 103.915 +-96.8999 -43.2954 102.719 +-100.188 -43.9832 104.351 +-100.303 -43.2666 102.651 +-104.041 -44.0994 104.627 +-103.937 -43.2903 102.708 +-108.072 -44.2326 104.943 +-107.95 -43.4173 103.009 +-111.935 -44.2411 104.963 +-112.571 -43.7226 103.733 +-116.331 -44.4011 105.343 +-116.677 -43.7626 103.828 +-121.863 -44.9162 106.565 +-123.233 -44.6338 105.895 +-127.328 -45.3162 107.514 +-128.341 -44.8832 106.487 +-131.592 -45.2183 107.282 +-132.904 -44.8727 106.462 +-136.569 -45.3034 107.484 +-136.203 -44.3895 105.315 +-138.198 -44.2473 104.978 +-138.021 -43.4103 102.992 +-140.009 -43.2554 102.625 +-139.478 -42.3248 100.417 +-139.472 -41.5666 98.6179 +-139.841 -40.9288 97.1049 +-139.871 -40.199 95.3734 +-139.798 -39.4494 93.5949 +-141.656 -39.2447 93.1093 +-141.468 -38.4737 91.2798 +-141.173 -37.6847 89.408 +-141.351 -37.031 87.8571 +-140.009 -35.9931 85.3947 +-140.142 -35.348 83.8641 +-139.834 -34.6004 82.0904 +-140.352 -34.0633 80.8162 +-156.63 -37.2798 88.4474 +-157.376 -36.7275 87.1371 +-190.334 -43.5455 103.313 +-221.183 -49.5987 117.674 +-230.905 -50.7406 120.384 +-229.675 -49.4476 117.316 +-238.335 -50.2609 119.246 +-239.014 -49.3602 117.109 +-246.678 -49.8753 118.33 +-250.016 -49.4783 117.389 +-258.368 -50.0326 118.704 +-259.751 -49.206 116.743 +-268.068 -49.6616 117.824 +-270.805 -49.0464 116.364 +-283.908 -50.2528 119.226 +-285.666 -49.3995 117.202 +-294.651 -49.7611 118.06 +-296.587 -48.8973 116.01 +-312.733 -50.3126 119.368 +-318.209 -49.9347 118.471 +-327.693 -50.1355 118.948 +-328.154 -48.9252 116.077 +-347.131 -50.4093 119.598 +-354.546 -50.1207 118.913 +-366.499 -50.4081 119.595 +-368.941 -49.3412 117.063 +-389.192 -50.5783 119.998 +-391.55 -49.4131 117.234 +-416.965 -51.0626 121.147 +-420.678 -49.9537 118.517 +-430.318 -49.5078 117.459 +-431.799 -48.0902 114.095 +-377.069 -40.615 96.3603 +-380.671 -39.6172 93.993 +-380.676 -38.2378 90.7202 +-379.677 -36.7675 87.232 +-379.419 -35.3795 83.939 +-380.492 -34.1184 80.9469 +-379.779 -32.7014 77.5849 +-380.988 -31.4533 74.6238 +-385.208 -30.4395 72.2186 +-3216.11 -242.808 576.068 +-3221.44 -231.898 550.183 +-3226.53 -220.97 524.258 +-3231.37 -210.026 498.292 +-3235.96 -199.065 472.288 +-3240.71 -188.113 446.303 +-3244.81 -177.121 420.226 +-3248.67 -166.117 394.117 +-3252.28 -155.1 367.978 +-3255.64 -144.07 341.811 +-3258.75 -133.03 315.618 +-3261.61 -121.98 289.402 +-3264.23 -110.921 263.162 +-3266.6 -99.8527 236.903 +-3268.72 -88.7771 210.626 +-3270.59 -77.6948 184.333 +-3272.21 -66.6064 158.026 +-3273.58 -55.5133 131.707 +-3274.7 -44.4155 105.377 +-3275.58 -33.3146 79.0399 +-3276.2 -22.2112 52.6966 +-3276.58 -11.106 26.3493 +94.1 0 0 +94.8964 -0.314754 0.766002 +94.6856 -0.628156 1.52871 +94.6675 -0.942178 2.29293 +95.5418 -1.26806 3.08602 +94.8097 -1.57329 3.82884 +94.8698 -1.88968 4.59882 +95.1222 -2.21122 5.38134 +95.0679 -2.52662 6.14893 +95.9034 -2.86868 6.98137 +94.9374 -3.15684 7.68264 +95.8567 -3.50802 8.53731 +95.7725 -3.82582 9.31072 +95.681 -4.14333 10.0834 +95.5822 -4.4605 10.8553 +95.4761 -4.77736 11.6264 +95.3628 -5.09385 12.3967 +95.1433 -5.40432 13.1523 +95.0156 -5.71967 13.9197 +95.7683 -6.09103 14.8235 +95.3294 -6.38863 15.5477 +95.1791 -6.70458 16.3166 +95.0215 -7.02 17.0842 +95.6407 -7.39551 17.9981 +95.565 -7.72036 18.7887 +95.3841 -8.03703 19.5593 +95.196 -8.35306 20.3284 +95.0005 -8.66848 21.0961 +95.6712 -9.06599 22.0635 +95.4594 -9.38297 22.8349 +95.2403 -9.69923 23.6046 +95.014 -10.0147 24.3724 +95.6455 -10.4238 25.3678 +95.4026 -10.7406 26.1388 +95.1523 -11.0566 26.9079 +95.6578 -11.4632 27.8975 +95.391 -11.78 28.6685 +95.9704 -12.2045 29.7015 +95.6865 -12.5223 30.475 +96.0552 -12.928 31.4623 +95.8486 -13.2591 32.2682 +96.2899 -13.683 33.2997 +96.0654 -14.0155 34.1088 +95.6469 -14.3196 34.849 +96.3344 -14.7929 36.0008 +96.0835 -15.1264 36.8125 +95.7325 -15.4445 37.5866 +96.2913 -15.913 38.7268 +95.9223 -16.2318 39.5025 +95.5459 -16.5493 40.2753 +96.0686 -17.0262 41.4358 +96.3961 -17.4751 42.5283 +95.9013 -17.7775 43.2642 +96.3844 -18.2644 44.4493 +95.9614 -18.5834 45.2256 +95.5311 -18.901 45.9984 +95.7998 -19.3599 47.1152 +96.0547 -19.822 48.2398 +95.5085 -20.1213 48.9684 +95.8262 -20.6058 50.1473 +95.3494 -20.9228 50.9189 +95.5547 -21.3926 52.0622 +95.917 -21.9045 53.3079 +95.2399 -22.182 53.9834 +95.4054 -22.6582 55.1422 +95.6406 -23.1576 56.3575 +95.6923 -23.6188 57.4799 +95.1464 -23.9353 58.2501 +95.1735 -24.3987 59.3779 +95.3514 -24.9072 60.6154 +94.7759 -25.2225 61.3828 +94.8445 -25.7124 62.5752 +94.8977 -26.2047 63.7733 +95.0963 -26.7446 65.087 +95.0376 -27.2191 66.2418 +95.7577 -27.9266 67.9636 +95.1129 -28.2431 68.7339 +95.1652 -28.7704 70.0173 +94.9672 -29.2285 71.132 +95.1413 -29.8083 72.543 +94.9129 -30.2693 73.6649 +94.8987 -30.8051 74.9689 +94.3387 -31.1685 75.8534 +94.0688 -31.6313 76.9797 +93.2647 -31.9167 77.6742 +92.6758 -32.2762 78.549 +93.3207 -33.0748 80.4926 +93.0655 -33.5662 81.6885 +92.9387 -34.1112 83.0149 +92.5799 -34.578 84.1508 +93.0553 -35.3675 86.0722 +93.0107 -35.9729 87.5457 +92.7369 -36.4988 88.8255 +92.5149 -37.0531 90.1744 +92.9564 -37.8867 92.203 +92.4883 -38.3616 93.3588 +92.6746 -39.1191 95.2022 +92.8331 -39.8803 97.0549 +93.0292 -40.6743 98.9871 +92.4814 -41.1547 100.156 +91.1473 -41.2851 100.474 +90.2595 -41.6154 101.277 +88.1678 -41.3812 100.708 +87.7746 -41.9399 102.067 +85.3307 -41.5105 101.022 +85.2875 -42.2444 102.808 +82.6894 -41.7062 101.498 +82.264 -42.2535 102.83 +80.2327 -41.9715 102.144 +80.6016 -42.9475 104.519 +77.2034 -41.9057 101.984 +77.3145 -42.7552 104.051 +74.82 -42.1592 102.601 +74.7875 -42.9448 104.513 +71.5656 -41.8841 101.931 +71.0847 -42.4086 103.208 +68.9425 -41.9335 102.052 +68.0293 -42.1931 102.683 +66.4399 -42.0262 102.277 +65.6247 -42.3432 103.049 +63.4 -41.7362 101.571 +62.9317 -42.2755 102.884 +60.8921 -41.7514 101.608 +60.5037 -42.3527 103.072 +58.1206 -41.545 101.106 +57.8571 -42.2417 102.802 +55.75 -41.5857 101.205 +55.6409 -42.415 103.223 +53.4374 -41.6416 101.341 +53.4264 -42.572 103.605 +51.2636 -41.783 101.685 +50.6755 -42.2626 102.853 +48.9711 -41.8042 101.737 +48.5676 -42.453 103.316 +46.6924 -41.8077 101.745 +46.3047 -42.4876 103.4 +43.9414 -41.336 100.597 +43.7969 -42.258 102.841 +42.3591 -41.9403 102.068 +41.7447 -42.4352 103.272 +40.0164 -41.7864 101.694 +39.4894 -42.3831 103.146 +37.6031 -41.5063 101.012 +37.1246 -42.1703 102.628 +35.5061 -41.5325 101.076 +35.0022 -42.1927 102.682 +33.3304 -41.4348 100.838 +32.8038 -42.0904 102.434 +31.34 -41.5397 101.093 +30.866 -42.3014 102.947 +29.4277 -41.7415 101.584 +28.8438 -42.3896 103.161 +27.4339 -41.8198 101.775 +26.7762 -42.3896 103.161 +25.442 -41.8841 101.931 +24.6308 -42.2265 102.765 +23.2029 -41.4888 100.969 +22.6083 -42.2345 102.784 +21.237 -41.5245 101.056 +20.6108 -42.266 102.861 +19.327 -41.6591 101.384 +18.5183 -42.0589 102.357 +17.3799 -41.7058 101.497 +16.5842 -42.1756 102.641 +15.4621 -41.8149 101.763 +14.645 -42.279 102.892 +13.5031 -41.7978 101.721 +12.6674 -42.2565 102.838 +11.5504 -41.7678 101.648 +10.8114 -42.6746 103.855 +9.60456 -41.7244 101.543 +8.77957 -42.3987 103.184 +7.70809 -41.8955 101.959 +6.83133 -42.4504 103.309 +5.76742 -41.8263 101.791 +4.86792 -42.3755 103.127 +3.86337 -42.0482 102.331 +2.92135 -42.4013 103.19 +1.92326 -41.8772 101.915 +0.973881 -42.4143 103.222 +6.72921e-15 -41.7697 101.653 +-0.973881 -42.4143 103.222 +-1.91278 -41.6492 101.36 +-2.9292 -42.5154 103.468 +-3.84592 -41.8582 101.868 +-4.8941 -42.6032 103.681 +-5.75172 -41.7123 101.513 +-6.88628 -42.792 104.141 +-7.74297 -42.0851 102.421 +-8.77957 -42.3987 103.184 +-9.63071 -41.8381 101.819 +-10.7826 -42.561 103.579 +-11.6027 -41.9567 102.108 +-12.6788 -42.2942 102.929 +-13.4909 -41.7602 101.63 +-14.8017 -42.7312 103.993 +-15.4482 -41.7773 101.671 +-16.7616 -42.6263 103.738 +-17.3642 -41.6682 101.406 +-18.6339 -42.3215 102.996 +-19.4312 -41.8837 101.93 +-20.7384 -42.5275 103.497 +-21.2943 -41.6366 101.329 +-22.6881 -42.3835 103.147 +-23.2653 -41.6005 101.241 +-24.8256 -42.5606 103.578 +-25.442 -41.8841 101.931 +-26.8929 -42.5743 103.611 +-27.5307 -41.9673 102.134 +-28.8438 -42.3896 103.161 +-29.7383 -42.182 102.656 +-30.8928 -42.3382 103.037 +-31.588 -41.8689 101.894 +-33.2298 -42.637 103.764 +-33.8566 -42.0889 102.43 +-35.6036 -42.9175 104.446 +-35.9696 -42.0749 102.396 +-37.6006 -42.7107 103.943 +-38.0915 -42.0456 102.324 +-40.0234 -42.9566 104.542 +-40.1874 -41.965 102.128 +-42.4101 -43.1117 104.919 +-42.6099 -42.1889 102.673 +-44.7498 -43.1774 105.079 +-44.9153 -42.252 102.827 +-47.0701 -43.19 105.109 +-46.9659 -42.0528 102.342 +-49.405 -43.185 105.097 +-50.0286 -42.7069 103.934 +-51.7537 -43.1619 105.041 +-52.1934 -42.5408 103.53 +-54.3305 -43.2922 105.358 +-54.7087 -42.632 103.752 +-56.9348 -43.4017 105.625 +-57.2936 -42.7369 104.007 +-59.6117 -43.5229 105.92 +-59.9046 -42.8202 104.209 +-62.1261 -43.4883 105.836 +-62.6859 -42.9813 104.602 +-64.5567 -43.3675 105.541 +-65.55 -43.1516 105.016 +-68.3654 -44.1113 107.352 +-68.9121 -43.5898 106.082 +-71.6346 -44.429 108.125 +-71.5391 -43.5127 105.895 +-73.6638 -43.9471 106.952 +-73.7441 -43.1592 105.035 +-76.4985 -43.9273 106.904 +-76.3858 -43.0418 104.749 +-79.3535 -43.8828 106.796 +-79.1535 -42.9642 104.56 +-82.7502 -44.0923 107.305 +-82.7014 -43.263 105.287 +-86.1898 -44.2701 107.738 +-85.9994 -43.3755 105.561 +-89.0009 -44.0835 107.284 +-89.9481 -43.7567 106.489 +-92.1322 -44.022 107.134 +-92.3842 -43.3603 105.524 +-96.5567 -44.5187 108.343 +-96.3539 -43.6434 106.213 +-100.015 -44.5073 108.315 +-100.246 -43.8296 106.666 +-103.369 -44.4062 108.069 +-103.916 -43.8638 106.749 +-107.013 -44.3864 108.021 +-108.029 -44.0296 107.153 +-111.651 -44.7175 108.827 +-111.771 -43.99 107.056 +-115.79 -44.7832 108.987 +-115.966 -44.0752 107.264 +-120.753 -45.1006 109.759 +-121.568 -44.619 108.587 +-126.433 -45.6008 110.976 +-126.085 -44.6875 108.754 +-131.162 -45.6794 111.168 +-131.091 -44.8615 109.177 +-136.385 -45.8603 111.608 +-135.319 -44.708 108.804 +-138.47 -44.9486 109.389 +-138.194 -44.0725 107.257 +-140.05 -43.8783 106.785 +-139.575 -42.9578 104.544 +-139.774 -42.2565 102.838 +-139.872 -41.534 101.079 +-139.63 -40.7214 99.1018 +-140.001 -40.0966 97.5812 +-141.64 -39.8343 96.943 +-141.335 -39.0278 94.9802 +-141.086 -38.2487 93.0841 +-141.058 -37.5394 91.358 +-140.101 -36.5966 89.0634 +-140.19 -35.9392 87.4636 +-139.592 -35.1163 85.4608 +-139.974 -34.5484 84.0789 +-152.907 -37.0235 90.1024 +-156.126 -37.0789 90.2371 +-214.524 -49.9643 121.596 +-195.348 -44.6114 108.569 +-226.264 -50.6557 123.278 +-228.891 -50.2262 122.233 +-237.694 -51.1122 124.389 +-238.421 -50.2296 122.242 +-246.596 -50.8879 123.844 +-248.197 -50.157 122.065 +-256.346 -50.7184 123.431 +-255.095 -49.4003 120.223 +-266.601 -50.5196 122.947 +-267.481 -49.5835 120.669 +-279.35 -50.6416 123.244 +-283.402 -50.2273 122.236 +-294.372 -50.9875 124.086 +-296.446 -50.1639 122.081 +-306.115 -50.588 123.114 +-309.566 -49.9423 121.542 +-324.189 -51.0373 124.207 +-325.998 -50.0597 121.828 +-337.835 -50.5785 123.091 +-341.877 -49.8781 121.386 +-358.745 -50.9784 124.064 +-361.5 -50.0077 121.701 +-377.057 -50.748 123.503 +-383.975 -50.2502 122.291 +-405.598 -51.5796 125.527 +-409.049 -50.5143 122.934 +-426.502 -51.1103 124.385 +-430.337 -50.0046 121.694 +-429.647 -48.3703 117.717 +-427.569 -46.5977 113.403 +-378.514 -39.8963 97.0938 +-380.188 -38.7181 94.2264 +-375.157 -36.8752 89.7415 +-376.378 -35.6663 86.7994 +-378.933 -34.5763 84.1468 +-381.758 -33.4977 81.5219 +-376.46 -31.7203 77.1962 +-380.988 -30.7787 74.9046 +-3210.53 -248.257 604.172 +-3216.11 -237.6 578.236 +-3221.44 -226.924 552.253 +-3226.92 -216.257 526.295 +-3231.76 -205.546 500.227 +-3236.36 -194.82 474.123 +-3240.71 -184.078 447.982 +-3244.81 -173.322 421.807 +-3248.27 -162.534 395.552 +-3252.28 -151.773 369.362 +-3255.64 -140.98 343.097 +-3258.75 -130.177 316.805 +-3261.61 -119.364 290.49 +-3264.23 -108.541 264.152 +-3266.6 -97.711 237.795 +-3268.72 -86.8729 211.419 +-3270.59 -76.0284 185.027 +-3272.21 -65.1778 158.62 +-3273.58 -54.3226 132.202 +-3274.7 -43.4629 105.774 +-3275.58 -32.6001 79.3373 +-3276.2 -21.7348 52.8949 +-3276.58 -10.8678 26.4484 +95 0 0 +94.8964 -0.307829 0.768811 +94.7856 -0.614987 1.53595 +94.7675 -0.92242 2.30376 +95.6417 -1.24146 3.10058 +94.8097 -1.53868 3.84288 +95.0695 -1.85199 4.62539 +95.1222 -2.16257 5.40107 +95.1676 -2.47363 6.17795 +96.0031 -2.80848 7.01425 +95.8339 -3.11654 7.78364 +94.9608 -3.39878 8.48853 +95.7725 -3.74165 9.34486 +95.681 -4.05218 10.1204 +95.5822 -4.36237 10.8951 +95.4761 -4.67226 11.6691 +95.3628 -4.98178 12.4421 +95.2422 -5.29089 13.2141 +95.9045 -5.64617 14.1014 +95.6697 -5.9509 14.8625 +95.3294 -6.24808 15.6047 +95.1791 -6.55708 16.3765 +95.0215 -6.86556 17.1469 +94.8567 -7.17352 17.916 +94.6847 -7.48096 18.6839 +95.5794 -7.87627 19.6712 +95.196 -8.16929 20.403 +95.195 -8.49513 21.2168 +95.6712 -8.86654 22.1444 +95.653 -9.19513 22.965 +95.2403 -9.48584 23.6911 +95.014 -9.7944 24.4617 +95.6455 -10.1944 25.4608 +95.4026 -10.5043 26.2347 +95.0567 -10.8025 26.9794 +95.7532 -11.2222 28.0277 +95.391 -11.5209 28.7736 +95.9704 -11.936 29.8104 +95.6865 -12.2469 30.5868 +95.3011 -12.5444 31.3299 +95.8486 -12.9674 32.3865 +95.4469 -13.2648 33.1292 +95.9721 -13.6938 34.2006 +95.6469 -14.0046 34.9768 +96.3344 -14.4675 36.1329 +95.9911 -14.7794 36.9119 +96.4689 -15.2209 38.0146 +96.2913 -15.5629 38.8688 +95.9223 -15.8746 39.6473 +96.4559 -16.3394 40.8079 +95.978 -16.6359 41.5486 +96.3961 -17.0906 42.6842 +95.9013 -17.3863 43.4228 +96.2949 -17.846 44.5709 +95.9614 -18.1746 45.3915 +95.5311 -18.4852 46.1671 +95.7115 -18.9165 47.2444 +96.0547 -19.3859 48.4167 +95.5959 -19.6967 49.193 +95.8262 -20.1525 50.3312 +95.3494 -20.4625 51.1056 +95.6408 -20.9408 52.3002 +95.8313 -21.4034 53.4556 +95.2399 -21.694 54.1814 +95.4054 -22.1597 55.3444 +95.6406 -22.6481 56.5642 +94.9375 -22.917 57.2356 +95.1464 -23.4087 58.4637 +95.1735 -23.8619 59.5957 +94.6921 -24.1908 60.4171 +95.4312 -24.8382 62.0339 +94.9259 -25.1684 62.8586 +94.9786 -25.6501 64.0617 +95.0963 -26.1562 65.3256 +95.1175 -26.6426 66.5406 +94.4884 -26.9501 67.3086 +95.1129 -27.6217 68.9859 +95.7912 -28.3226 70.7363 +95.1227 -28.6322 71.5097 +95.1413 -29.1525 72.809 +94.9895 -29.6273 73.9948 +94.9747 -30.1515 75.3041 +94.867 -30.6535 76.5578 +94.668 -31.1325 77.7541 +93.2647 -31.2145 77.959 +92.9707 -31.6665 79.0879 +92.5894 -32.0936 80.1546 +93.0655 -32.8277 81.988 +92.9387 -33.3608 83.3193 +93.1505 -34.0257 84.9799 +92.5603 -34.4054 85.9283 +93.0107 -35.1815 87.8667 +92.8064 -35.7226 89.2179 +92.5837 -36.2649 90.5725 +92.9564 -37.0532 92.5411 +93.0963 -37.7644 94.3175 +92.8084 -38.3134 95.6887 +93.0981 -39.1141 97.6884 +92.9636 -39.7512 99.2796 +93.0659 -40.5035 101.159 +92.4971 -40.9749 102.336 +92.4858 -41.7034 104.155 +90.1816 -41.3953 103.386 +89.6421 -41.89 104.621 +87.9165 -41.8276 104.465 +86.9311 -42.1112 105.174 +84.8559 -41.8573 104.54 +84.2269 -42.31 105.67 +82.1724 -42.0406 104.997 +82.1695 -42.8197 106.943 +80.1286 -42.5368 106.237 +79.3535 -42.9174 107.187 +77.1127 -42.4952 106.133 +76.3329 -42.8676 107.063 +74.3432 -42.5528 106.277 +73.1802 -42.6981 106.64 +70.9032 -42.1773 105.339 +69.7013 -42.2788 105.592 +67.779 -41.9298 104.721 +67.1473 -42.3725 105.826 +65.1 -41.9127 104.678 +64.5567 -42.4134 105.928 +62.6859 -42.0357 104.985 +61.8398 -42.3357 105.734 +60.421 -42.2391 105.493 +59.5656 -42.5323 106.225 +57.8384 -42.1941 105.381 +56.8456 -42.3803 105.846 +55.5855 -42.3625 105.801 +54.5888 -42.5412 106.248 +52.8273 -42.1101 105.171 +52.1684 -42.5505 106.271 +50.476 -42.1409 105.248 +49.8436 -42.61 106.42 +48.2944 -42.2907 105.622 +47.3762 -42.5145 106.181 +45.6645 -42.0119 104.926 +44.7864 -42.2621 105.551 +43.4342 -42.0588 105.043 +42.5852 -42.3372 105.738 +41.1792 -42.0547 105.033 +40.2905 -42.2918 105.625 +38.8403 -41.9287 104.718 +38.14 -42.3706 105.822 +36.7421 -42.0331 104.979 +36.1148 -42.5758 106.334 +34.6168 -42.087 105.113 +34.025 -42.697 106.637 +32.5252 -42.1625 105.302 +31.7746 -42.5888 106.367 +30.2818 -42.0078 104.916 +29.7702 -42.7884 106.865 +28.1839 -42.0175 104.94 +27.5699 -42.6858 106.609 +26.2068 -42.1941 105.381 +25.3234 -42.4591 106.043 +23.9514 -41.8852 104.609 +23.326 -42.6167 106.436 +22.0384 -42.1435 105.254 +21.2122 -42.5424 106.251 +19.9001 -41.9506 104.773 +19.063 -42.3435 105.754 +17.8805 -41.9632 104.804 +17.1163 -42.571 106.322 +15.9492 -42.1833 105.354 +15.1149 -42.6754 106.583 +13.9297 -42.1695 105.319 +13.041 -42.5453 106.258 +11.8535 -41.9209 104.698 +10.9839 -42.4015 105.899 +9.83988 -41.806 104.411 +8.99926 -42.5033 106.153 +7.93829 -42.1974 105.389 +6.97785 -42.4071 105.913 +5.9349 -42.0941 105.131 +4.99006 -42.4829 106.102 +3.96109 -42.1632 105.304 +3.0182 -42.8431 107.002 +1.9791 -42.1454 105.259 +1.00093 -42.6334 106.478 +6.96801e-15 -42.3004 105.646 +-1.00093 -42.6334 106.478 +-1.9791 -42.1454 105.259 +-3.01558 -42.8063 106.91 +-3.97156 -42.2747 105.582 +-5.00314 -42.5944 106.381 +-5.982 -42.4279 105.965 +-7.00227 -42.5554 106.283 +-7.97316 -42.3829 105.852 +-9.03849 -42.6888 106.616 +-9.9619 -42.3245 105.707 +-11.0414 -42.6238 106.454 +-11.8953 -42.0688 105.068 +-13.0523 -42.5825 106.351 +-13.9053 -42.0959 105.136 +-15.0888 -42.6018 106.399 +-15.9214 -42.1097 105.17 +-17.2198 -42.8282 106.964 +-17.9274 -42.0733 105.079 +-19.0795 -42.3803 105.846 +-19.9174 -41.987 104.864 +-21.1211 -42.3595 105.794 +-22.0003 -42.0707 105.072 +-23.3061 -42.5803 106.345 +-24.0346 -42.0305 104.972 +-25.4966 -42.7494 106.768 +-26.1393 -42.0855 105.11 +-27.5699 -42.6858 106.609 +-28.3049 -42.1982 105.391 +-29.5699 -42.5004 106.146 +-30.4112 -42.1874 105.364 +-32.0419 -42.9468 107.261 +-32.7733 -42.484 106.105 +-34.2807 -43.0178 107.438 +-34.8799 -42.4071 105.913 +-36.4756 -43.0014 107.397 +-37.1129 -42.4572 106.038 +-38.4256 -42.6877 106.614 +-39.4263 -42.5613 106.298 +-41.0249 -43.0628 107.55 +-41.7607 -42.6483 106.515 +-43.2506 -42.9988 107.391 +-43.9717 -42.5792 106.342 +-45.8127 -43.2304 107.969 +-46.5261 -42.8044 106.905 +-48.4095 -43.4419 108.497 +-48.9977 -42.9066 107.16 +-51.0798 -43.6664 109.058 +-51.3302 -42.8539 107.029 +-53.2466 -43.43 108.467 +-54.2642 -43.2557 108.032 +-55.7942 -43.4806 108.594 +-56.4184 -42.9973 107.387 +-58.4965 -43.611 108.92 +-58.9734 -43.0222 107.449 +-60.5352 -43.2248 107.955 +-61.5477 -43.0267 107.46 +-63.7007 -43.6095 108.916 +-64.5766 -43.3036 108.152 +-66.4772 -43.675 109.079 +-67.5 -43.4575 108.536 +-69.888 -44.1017 110.145 +-71.0238 -43.937 109.734 +-72.7318 -44.1173 110.184 +-73.7648 -43.8794 109.59 +-75.5981 -44.1087 110.163 +-76.3039 -43.675 109.079 +-78.3199 -43.9835 109.85 +-79.014 -43.543 108.75 +-81.2227 -43.9285 109.712 +-82.0788 -43.572 108.822 +-84.3761 -43.9697 109.815 +-84.8762 -43.4237 108.452 +-87.7958 -44.1028 110.148 +-88.4668 -43.6382 108.987 +-91.2533 -44.205 110.403 +-92.103 -43.8192 109.439 +-95.2447 -44.508 111.16 +-95.5308 -43.8508 109.518 +-98.4649 -44.3994 110.889 +-99.1821 -43.9363 109.732 +-102.548 -44.6302 111.465 +-102.542 -43.8471 109.509 +-106.483 -44.7377 111.733 +-107.195 -44.2526 110.522 +-111.743 -45.3283 113.209 +-111.78 -44.5563 111.28 +-115.575 -45.2703 113.064 +-115.452 -44.4392 110.988 +-119.785 -45.3094 113.161 +-121.057 -44.9979 112.383 +-125.96 -46.0104 114.912 +-126.388 -45.3673 113.306 +-131.075 -46.2353 115.474 +-131.497 -45.58 113.837 +-134.995 -45.9807 114.838 +-134.955 -45.1677 112.807 +-138.482 -45.5409 113.74 +-137.659 -44.4805 111.091 +-139.23 -44.2013 110.394 +-140.263 -43.7478 109.261 +-140.204 -42.9602 107.294 +-140.197 -42.1996 105.395 +-139.852 -41.3499 103.272 +-139.636 -40.5515 101.278 +-140.82 -40.1649 100.313 +-141.119 -39.5278 98.7216 +-141.077 -38.803 96.9113 +-141.497 -38.2131 95.4381 +-140.354 -37.2128 92.9399 +-140.403 -36.543 91.267 +-139.772 -35.7072 89.1796 +-139.859 -35.0654 87.5766 +-144.679 -35.5952 88.8998 +-149.787 -36.157 90.3029 +-172.474 -40.8425 102.005 +-191.065 -44.3786 110.837 +-221.601 -50.4768 126.067 +-223.464 -49.9092 124.65 +-231.003 -50.5787 126.321 +-235.646 -50.5709 126.302 +-242.133 -50.921 127.176 +-245.156 -50.5122 126.155 +-251.957 -50.85 126.999 +-253.671 -50.1356 125.215 +-262.644 -50.8214 126.928 +-262.401 -49.6974 124.12 +-272.776 -50.5527 126.256 +-276.918 -50.2036 125.385 +-288.105 -51.0798 127.573 +-289.837 -50.2375 125.469 +-300.742 -50.9448 127.236 +-304.941 -50.4664 126.041 +-315.56 -51.0021 127.379 +-320.152 -50.5136 126.159 +-328.809 -50.6255 126.438 +-337.031 -50.6151 126.412 +-345.743 -50.6237 126.434 +-351.493 -50.1531 125.259 +-365.021 -50.7292 126.697 +-370.333 -50.1025 125.132 +-386.86 -50.9218 127.178 +-396.55 -50.7541 126.76 +-415.745 -51.7068 129.139 +-422.174 -50.9883 127.345 +-429.459 -50.3323 125.706 +-425.556 -48.3611 120.783 +-380.268 -41.8692 104.569 +-378.545 -40.3474 100.769 +-380.056 -39.1777 97.8471 +-377.387 -37.5875 93.8756 +-379.514 -36.4828 91.1166 +-379.483 -35.1694 87.8365 +-377.766 -33.7115 84.1953 +-378.543 -32.4849 81.1317 +-378.315 -31.1753 77.8611 +-381.771 -30.1633 75.3336 +-3210.53 -242.796 606.388 +-3216.11 -232.373 580.356 +-3221.44 -221.931 554.279 +-3226.53 -211.474 528.16 +-3231.37 -200.999 502 +-3236.36 -190.533 475.862 +-3240.31 -180.006 449.57 +-3244.42 -169.489 423.302 +-3248.67 -158.978 397.051 +-3252.28 -148.434 370.717 +-3255.24 -137.862 344.314 +-3258.75 -127.313 317.967 +-3261.61 -116.738 291.556 +-3264.23 -106.154 265.121 +-3266.6 -95.5613 238.667 +-3268.72 -84.9617 212.194 +-3270.59 -74.3557 185.705 +-3272.21 -63.7439 159.202 +-3273.58 -53.1275 132.687 +-3274.7 -42.5067 106.161 +-3275.58 -31.8829 79.6283 +-3276.2 -21.2566 53.0889 +-3276.58 -10.6287 26.5454 +95 0 0 +94.8964 -0.30088 0.771557 +94.7856 -0.601103 1.54143 +94.8675 -0.902547 2.31444 +94.8422 -1.20329 3.08564 +94.9096 -1.50552 3.86067 +95.1694 -1.81208 4.6468 +95.2221 -2.11596 5.42605 +95.0679 -2.41525 6.19352 +95.1059 -2.71942 6.97352 +95.8339 -3.04618 7.81144 +94.9608 -3.32205 8.51885 +95.7725 -3.65718 9.37824 +95.681 -3.96069 10.1566 +95.5822 -4.26388 10.934 +95.6744 -4.57626 11.7351 +95.3628 -4.86931 12.4866 +95.2422 -5.17144 13.2613 +95.9045 -5.5187 14.1518 +95.6697 -5.81655 14.9156 +95.3294 -6.10702 15.6605 +95.1791 -6.40904 16.435 +95.0215 -6.71056 17.2081 +95.7386 -7.07675 18.1472 +94.6847 -7.31207 18.7506 +94.5055 -7.61198 19.5197 +95.196 -7.98486 20.4759 +95.0005 -8.28637 21.2491 +94.7979 -8.58727 22.0207 +95.4594 -8.96937 23.0005 +95.2403 -9.27169 23.7757 +95.8812 -9.66065 24.7732 +95.6455 -9.96428 25.5518 +95.3067 -10.2568 26.302 +95.1523 -10.5692 27.1031 +95.6578 -10.9579 28.0998 +96.342 -11.373 29.1643 +95.9704 -11.6665 29.9169 +95.6865 -11.9704 30.6961 +96.2437 -12.3824 31.7528 +95.8486 -12.6747 32.5022 +96.3836 -13.0926 33.5738 +95.9721 -13.3846 34.3228 +95.6469 -13.6884 35.1017 +96.3344 -14.1409 36.2619 +95.9911 -14.4457 37.0438 +96.561 -14.8915 38.1868 +96.1996 -15.1971 38.9705 +96.0136 -15.531 39.8269 +95.5459 -15.8198 40.5673 +96.0686 -16.2757 41.7363 +95.5838 -16.564 42.4757 +95.9013 -16.9938 43.5779 +96.3844 -17.4593 44.7717 +95.9614 -17.7643 45.5536 +96.152 -18.1853 46.6331 +95.7115 -18.4894 47.4131 +95.3517 -18.8095 48.2339 +95.6834 -19.2696 49.4139 +95.1299 -19.5544 50.144 +95.3494 -20.0006 51.2882 +95.5547 -20.4496 52.4397 +95.8313 -20.9202 53.6465 +95.2399 -21.2043 54.3749 +95.4054 -21.6594 55.5421 +94.8815 -21.9611 56.3157 +95.1052 -22.4392 57.5416 +95.1464 -22.8802 58.6726 +95.2564 -23.3435 59.8607 +95.3514 -23.8093 61.055 +95.5131 -24.2982 62.3089 +95.5772 -24.7689 63.5159 +94.8977 -25.0496 64.2358 +95.0963 -25.5657 65.559 +95.1175 -26.0411 66.7783 +95.1231 -26.5186 68.0028 +95.1129 -26.9981 69.2324 +95.1652 -27.5022 70.5251 +95.1227 -27.9858 71.7651 +94.987 -28.4481 72.9506 +95.2193 -29.0284 74.4387 +95.1268 -29.518 75.6941 +94.9425 -29.9853 76.8924 +94.8178 -30.4778 78.1553 +94.751 -30.996 79.4843 +94.0029 -31.2953 80.2516 +93.5401 -31.6912 81.267 +93.2831 -32.1616 82.4733 +93.0826 -32.6581 83.7463 +93.6498 -33.4358 85.7407 +93.3381 -33.9113 86.9599 +93.0107 -34.3873 88.1806 +92.8064 -34.9161 89.5366 +92.5149 -35.4198 90.8284 +92.9564 -36.2166 92.8717 +92.4883 -36.6706 94.0358 +92.7415 -37.4216 95.9616 +92.4355 -37.9589 97.3395 +92.7667 -38.7717 99.4237 +93.0659 -39.5891 101.52 +93.0114 -40.2725 103.272 +92.9946 -40.9864 105.103 +92.3213 -41.4206 106.216 +91.8832 -41.9678 107.62 +89.5787 -41.6564 106.821 +88.5748 -41.9387 107.545 +86.8419 -41.8697 107.368 +85.8329 -42.1436 108.07 +83.9357 -41.9732 107.633 +83.9696 -42.77 109.677 +80.7022 -41.874 107.379 +80.0332 -42.3078 108.492 +78.3429 -42.1985 108.211 +77.6575 -42.6272 109.31 +75.1602 -42.0491 107.828 +74.4697 -42.4695 108.906 +72.016 -41.8722 107.374 +71.1643 -42.1919 108.194 +68.9121 -41.6684 106.852 +68.3654 -42.1669 108.13 +66.9 -42.0989 107.956 +65.7385 -42.2144 108.252 +64.4312 -42.2308 108.294 +63.1281 -42.2421 108.323 +61.1252 -41.7668 107.104 +60.5352 -42.249 108.341 +59.1096 -42.148 108.082 +58.2288 -42.4313 108.808 +56.4184 -42.0266 107.77 +55.7942 -42.4989 108.982 +53.588 -41.7523 107.067 +52.9149 -42.185 108.177 +51.5742 -42.0858 107.922 +50.8006 -42.4473 108.849 +48.8414 -41.8043 107.2 +48.4095 -42.4611 108.885 +46.3763 -41.7033 106.941 +45.8127 -42.2544 108.355 +44.2584 -41.8893 107.418 +43.4607 -42.2322 108.298 +41.9659 -41.8904 107.421 +41.2251 -42.2958 108.461 +39.7519 -41.9441 107.559 +39.0285 -42.3787 108.673 +37.6383 -42.0862 107.923 +36.7162 -42.3078 108.492 +35.1431 -41.7625 107.093 +34.3943 -42.1857 108.179 +33.2694 -42.1534 108.096 +32.3626 -42.3976 108.722 +31.11 -42.1825 108.17 +30.2209 -42.4553 108.87 +28.7887 -41.9503 107.575 +28.0601 -42.464 108.892 +26.4992 -41.7018 106.938 +26.016 -42.6355 109.332 +24.6167 -42.0767 107.899 +23.7048 -42.3311 108.551 +22.3247 -41.7269 107.002 +21.6678 -42.4749 108.92 +20.3689 -41.9696 107.624 +19.5746 -42.4982 108.98 +18.3028 -41.9848 107.663 +17.4859 -42.5084 109.006 +16.1997 -41.8784 107.39 +15.389 -42.4684 108.903 +14.2587 -42.1912 108.192 +13.3127 -42.4513 108.86 +12.1358 -41.95 107.574 +11.329 -42.7463 109.616 +10.1536 -42.1654 108.126 +9.22679 -42.5941 109.226 +8.12663 -42.2232 108.274 +7.14268 -42.4288 108.802 +6.09714 -42.2682 108.39 +5.10347 -42.4677 108.901 +4.05532 -42.1916 108.193 +3.0627 -42.4935 108.968 +2.02797 -42.2108 108.243 +1.02537 -42.6882 109.467 +7.09659e-15 -42.1084 107.98 +-1.02275 -42.5792 109.188 +-2.02797 -42.2108 108.243 +-3.0627 -42.4935 108.968 +-4.06579 -42.3006 108.473 +-5.14709 -42.8306 109.832 +-6.08144 -42.1596 108.111 +-7.22815 -42.9364 110.103 +-8.16151 -42.4045 108.739 +-9.25817 -42.7391 109.597 +-10.1275 -42.0568 107.848 +-11.2715 -42.5294 109.06 +-12.1462 -41.9859 107.666 +-13.4033 -42.7402 109.6 +-14.2831 -42.2631 108.377 +-15.5718 -42.9727 110.197 +-16.2137 -41.9143 107.483 +-17.6337 -42.8677 109.927 +-18.3967 -42.1999 108.215 +-19.5416 -42.4266 108.796 +-20.3689 -41.9696 107.624 +-21.5767 -42.2962 108.462 +-22.4391 -41.9409 107.551 +-23.7846 -42.4735 108.916 +-24.7831 -42.3609 108.628 +-26.016 -42.6355 109.332 +-26.7467 -42.0913 107.936 +-27.9901 -42.358 108.62 +-29.0548 -42.3383 108.57 +-30.4462 -42.7721 109.682 +-31.2395 -42.358 108.62 +-32.7634 -42.9225 110.068 +-33.4348 -42.363 108.633 +-34.8203 -42.7082 109.518 +-35.7278 -42.4571 108.874 +-37.0169 -42.6544 109.38 +-37.9164 -42.3972 108.721 +-39.4727 -42.8608 109.91 +-40.5007 -42.7344 109.585 +-41.826 -42.9124 110.042 +-42.7525 -42.6759 109.435 +-44.0911 -42.8448 109.869 +-45.226 -42.8052 109.767 +-46.5823 -42.9643 110.175 +-47.7623 -42.9498 110.138 +-49.1366 -43.0988 110.52 +-49.8182 -42.6403 109.344 +-51.5583 -43.0806 110.473 +-52.591 -42.9153 110.049 +-53.9931 -43.0446 110.381 +-54.8981 -42.7729 109.684 +-56.7844 -43.2532 110.916 +-57.3389 -42.7122 109.529 +-58.8535 -42.8866 109.976 +-60.1991 -42.9247 110.074 +-61.6434 -43.0225 110.324 +-62.6275 -42.7932 109.736 +-64.989 -43.4871 111.516 +-65.7402 -43.0886 110.494 +-68.3976 -43.922 112.631 +-68.95 -43.389 111.264 +-71.7152 -44.233 113.428 +-72.3113 -43.7237 112.122 +-75.8145 -44.9488 115.264 +-75.1955 -43.7208 112.115 +-78.1771 -44.5836 114.328 +-78.7548 -44.0601 112.985 +-81.0795 -44.5055 114.127 +-81.1948 -43.7346 112.15 +-82.9785 -43.8646 112.484 +-83.8569 -43.5108 111.576 +-86.699 -44.16 113.241 +-87.2273 -43.619 111.854 +-89.7588 -44.071 113.013 +-90.3324 -43.5525 111.683 +-93.3231 -44.1869 113.31 +-94.1962 -43.8036 112.327 +-96.9255 -44.2708 113.525 +-97.9852 -43.962 112.733 +-100.691 -44.3784 113.801 +-101.946 -44.1411 113.193 +-105.405 -44.8383 114.981 +-105.888 -44.2556 113.486 +-110.061 -45.1973 115.901 +-109.871 -44.3333 113.686 +-114.445 -45.3764 116.36 +-114.712 -44.693 114.608 +-117.158 -44.8547 115.023 +-118.509 -44.5858 114.333 +-123.57 -45.6856 117.153 +-124.875 -45.3691 116.342 +-128.242 -45.7862 117.411 +-129.769 -45.5293 116.753 +-133.686 -46.0918 118.195 +-134.569 -45.5918 116.913 +-137.281 -45.7034 117.199 +-137.928 -45.1206 115.705 +-138.557 -44.5371 114.208 +-139.395 -44.0245 112.894 +-140.067 -43.4628 111.453 +-139.956 -42.6668 109.412 +-139.973 -41.9212 107.5 +-139.886 -41.1557 105.537 +-140.322 -40.5523 103.99 +-139.951 -39.7254 101.869 +-141.217 -39.369 100.955 +-141.758 -38.8102 99.5224 +-140.836 -37.8623 97.0917 +-140.607 -37.1153 95.1762 +-140.109 -36.3095 93.1098 +-140.239 -35.6763 91.4861 +-140.843 -35.1686 90.1841 +-141.848 -34.7613 89.1398 +-156.02 -37.5186 96.2103 +-161.528 -38.1108 97.729 +-219.956 -50.9108 130.552 +-221.849 -50.3654 129.154 +-225.523 -50.2107 128.757 +-227.492 -49.6621 127.35 +-236.259 -50.5616 129.657 +-240.842 -50.5191 129.548 +-245.179 -50.3978 129.237 +-247.43 -49.8299 127.781 +-255.296 -50.3611 129.143 +-258.174 -49.8735 127.893 +-267.611 -50.6136 129.79 +-271.757 -50.3073 129.005 +-279.846 -50.6921 129.992 +-281.952 -49.9622 128.12 +-292.889 -50.7556 130.155 +-296.544 -50.2397 128.832 +-307.931 -50.9849 130.743 +-312.889 -50.6125 129.788 +-321.796 -50.8356 130.36 +-325.859 -50.2535 128.867 +-334.167 -50.2892 128.958 +-342.038 -50.2074 128.749 +-352.628 -50.4661 129.412 +-358.775 -50.0363 128.31 +-371.672 -50.4872 129.466 +-378.508 -50.0526 128.352 +-396.004 -50.9486 130.649 +-405.155 -50.6848 129.973 +-424.659 -51.6232 132.379 +-428.831 -50.623 129.815 +-430.985 -49.3707 126.603 +-426.034 -47.3227 121.351 +-378.35 -40.7176 104.414 +-379.41 -39.5266 101.36 +-379.767 -38.2641 98.1221 +-380.961 -37.0866 95.1026 +-381.257 -35.8228 91.8619 +-378.124 -34.2524 87.8347 +-378.933 -33.0522 84.7571 +-376.691 -31.5962 81.0233 +-378.315 -30.4715 78.1392 +-381.869 -29.4899 75.6221 +-3210.53 -237.314 608.554 +-3216.11 -227.126 582.429 +-3221.44 -216.921 556.259 +-3226.53 -206.699 530.047 +-3231.37 -196.461 503.794 +-3236.36 -186.232 477.562 +-3240.31 -175.942 451.176 +-3244.42 -165.662 424.814 +-3248.27 -155.37 398.42 +-3251.88 -145.065 371.996 +-3255.64 -134.766 345.586 +-3258.75 -124.439 319.103 +-3261.61 -114.102 292.597 +-3264.23 -103.757 266.068 +-3266.6 -93.4039 239.519 +-3268.72 -83.0436 212.952 +-3270.59 -72.6771 186.369 +-3272.21 -62.3047 159.77 +-3273.58 -51.9281 133.161 +-3274.7 -41.547 106.541 +-3275.58 -31.1631 79.9127 +-3276.2 -20.7767 53.2785 +-3276.58 -10.3887 26.6402 +95.2 0 0 +94.8964 -0.293919 0.774236 +94.8855 -0.587815 1.54841 +94.8675 -0.881667 2.32247 +94.8422 -1.17545 3.09635 +95.1094 -1.47379 3.88224 +95.1694 -1.77016 4.66293 +95.2221 -2.06701 5.44489 +95.1676 -2.36185 6.22154 +95.1059 -2.65651 6.99773 +95.9335 -2.9788 7.84671 +96.0557 -3.28262 8.647 +95.7725 -3.57257 9.4108 +95.681 -3.86906 10.1918 +95.5822 -4.16524 10.972 +95.6744 -4.47039 11.7758 +95.3628 -4.75666 12.5299 +95.1433 -5.04659 13.2936 +95.9045 -5.39103 14.2009 +95.4724 -5.67027 14.9365 +95.3294 -5.96574 15.7148 +95.1791 -6.26077 16.492 +95.0215 -6.55532 17.2679 +94.8567 -6.84936 18.0424 +95.565 -7.20931 18.9906 +95.3841 -7.50502 19.7696 +95.196 -7.80013 20.547 +95.8757 -8.16924 21.5192 +95.6712 -8.46587 22.3006 +95.653 -8.77961 23.1271 +95.2403 -9.05719 23.8583 +95.8812 -9.43716 24.8592 +95.6455 -9.73376 25.6405 +95.4026 -10.0296 26.4198 +95.9174 -10.4077 27.4158 +95.6578 -10.7044 28.1973 +95.391 -11.0003 28.9767 +95.9704 -11.3966 30.0208 +94.8355 -11.5894 30.5287 +96.1494 -12.0841 31.8318 +95.8486 -12.3815 32.615 +95.4469 -12.6654 33.3629 +95.9721 -13.075 34.4419 +95.6469 -13.3717 35.2236 +96.3344 -13.8137 36.3878 +95.9911 -14.1116 37.1724 +95.7325 -14.4222 37.9906 +96.1996 -14.8455 39.1057 +95.9223 -15.1573 39.9271 +96.3649 -15.5863 41.0571 +95.978 -15.8842 41.8417 +96.3058 -16.303 42.9451 +95.9013 -16.6007 43.7292 +96.3844 -17.0554 44.9271 +95.9614 -17.3533 45.7117 +96.2407 -17.7809 46.8382 +95.7115 -18.0617 47.5777 +95.9668 -18.4929 48.7136 +95.5959 -18.8066 49.5401 +95.8262 -19.2418 50.6864 +95.3494 -19.5379 51.4662 +95.6408 -19.9946 52.6693 +95.8313 -20.4362 53.8328 +95.3252 -20.7322 54.6125 +95.4054 -21.1583 55.7349 +95.4719 -21.5865 56.8628 +95.1052 -21.9201 57.7414 +95.1464 -22.3509 58.8763 +95.1735 -22.7836 60.0162 +95.3514 -23.2585 61.267 +94.8578 -23.5733 62.0962 +95.5772 -24.1959 63.7363 +94.9786 -24.491 64.5137 +95.0963 -24.9742 65.7866 +95.1175 -25.4387 67.0101 +95.2024 -25.9268 68.2958 +95.1129 -26.3736 69.4727 +94.5391 -26.6892 70.3043 +95.1227 -27.3384 72.0142 +95.1413 -27.8351 73.3227 +95.1427 -28.334 74.637 +94.9747 -28.789 75.8354 +95.0934 -29.3382 77.282 +94.8178 -29.7727 78.4266 +94.751 -30.279 79.7602 +95.1088 -30.9309 81.4776 +93.979 -31.1033 81.9316 +92.993 -31.3199 82.5022 +92.8668 -31.8286 83.8422 +93.5785 -32.6374 85.9728 +92.8431 -32.9511 86.799 +93.0107 -33.5917 88.4867 +92.8064 -34.1083 89.8474 +92.5837 -34.6262 91.2116 +92.9564 -35.3788 93.1941 +93.0963 -36.0579 94.983 +92.7415 -36.5559 96.2947 +93.0319 -37.32 98.3075 +92.6355 -37.8211 99.6276 +92.936 -38.6193 101.73 +92.8185 -39.2592 103.416 +92.8674 -39.9832 105.323 +92.7618 -40.6554 107.094 +93.3149 -41.6357 109.676 +90.6869 -41.196 108.518 +89.4879 -41.3908 109.031 +87.9252 -41.4114 109.085 +86.9036 -41.6818 109.797 +85.5228 -41.7773 110.049 +85.0149 -42.3008 111.428 +82.7671 -41.9519 110.509 +81.2227 -41.9434 110.486 +79.5172 -41.8401 110.214 +78.3199 -41.9959 110.625 +76.6307 -41.8799 110.319 +75.4369 -42.0257 110.703 +73.6058 -41.8064 110.126 +72.1048 -41.7603 110.004 +70.3027 -41.5257 109.386 +69.076 -41.6197 109.634 +67.8 -41.6783 109.788 +66.6249 -41.794 110.093 +65.3039 -41.8124 110.142 +63.8438 -41.7326 109.931 +62.8153 -41.9285 110.447 +61.3202 -41.8068 110.127 +59.6544 -41.5523 109.456 +59.032 -42.0215 110.692 +57.3389 -41.7241 109.909 +56.7844 -42.2525 111.301 +54.8981 -41.7833 110.065 +54.3248 -42.3072 111.445 +52.347 -41.728 109.919 +51.5184 -42.0513 110.771 +49.7791 -41.6211 109.638 +49.2514 -42.2 111.162 +47.7249 -41.9232 110.433 +46.6923 -42.0694 110.818 +45.011 -41.6162 109.625 +44.1962 -41.9533 110.513 +42.6157 -41.5551 109.464 +41.826 -41.9196 110.424 +40.696 -41.947 110.496 +39.5679 -41.9704 110.558 +38.2563 -41.7876 110.076 +37.498 -42.2092 111.187 +36.1956 -42.0183 110.684 +35.0759 -42.0265 110.705 +33.8483 -41.8948 110.358 +32.8169 -41.9981 110.63 +31.783 -42.0981 110.894 +30.5964 -41.9888 110.606 +29.5629 -42.0818 110.851 +28.6204 -42.31 111.452 +27.354 -42.0509 110.77 +26.1459 -41.8572 110.259 +25.0949 -41.9015 110.376 +24.303 -42.3952 111.677 +23.0306 -42.0506 110.769 +22.0505 -42.2252 111.229 +20.751 -41.7677 110.024 +19.8222 -42.0403 110.742 +18.647 -41.7844 110.068 +17.7519 -42.1567 111.048 +16.5894 -41.8937 110.356 +15.637 -42.1546 111.043 +14.405 -41.6378 109.682 +13.5617 -42.2451 111.281 +12.4284 -41.9679 110.551 +11.4823 -42.3224 111.485 +10.3367 -41.9324 110.458 +9.37586 -42.2813 111.377 +8.25219 -41.8838 110.329 +7.27699 -42.2266 111.233 +6.17564 -41.822 110.167 +5.18635 -42.1588 111.054 +4.14955 -42.1734 111.092 +3.11244 -42.1844 111.121 +2.06636 -42.0151 110.675 +1.04108 -42.3391 111.529 +7.30478e-15 -42.3409 111.534 +-1.04893 -42.6585 112.37 +-2.06636 -42.0151 110.675 +-3.14647 -42.6458 112.337 +-4.1321 -41.9959 110.625 +-5.22996 -42.5134 111.988 +-6.24368 -42.2831 111.381 +-7.36856 -42.7579 112.632 +-8.32195 -42.2376 111.262 +-9.40725 -42.4225 111.749 +-10.3715 -42.0737 110.83 +-11.5111 -42.4286 111.764 +-12.3762 -41.7911 110.085 +-13.6636 -42.5624 112.117 +-14.6487 -42.3423 111.537 +-15.6892 -42.2955 111.414 +-16.6869 -42.1397 111.003 +-17.7519 -42.1567 111.048 +-18.7408 -41.9949 110.622 +-19.8222 -42.0403 110.742 +-20.8204 -41.9072 110.391 +-21.9412 -42.0158 110.677 +-22.878 -41.772 110.035 +-24.0039 -41.8735 110.302 +-24.991 -41.728 109.919 +-26.1892 -41.9264 110.442 +-27.354 -42.0509 110.77 +-28.457 -42.0683 110.816 +-29.4177 -41.8753 110.307 +-30.9219 -42.4353 111.782 +-31.55 -41.7894 110.081 +-33.1108 -42.3743 111.621 +-33.9585 -42.0311 110.717 +-35.1895 -42.1627 111.064 +-36.3418 -42.1879 111.131 +-37.498 -42.2092 111.187 +-38.2563 -41.7876 110.076 +-39.8852 -42.3068 111.444 +-40.989 -42.249 111.291 +-42.3935 -42.4882 111.922 +-43.1629 -42.0886 110.869 +-44.7915 -42.5184 112.001 +-45.9069 -42.4445 111.807 +-47.0954 -42.4328 111.776 +-48.3617 -42.4825 111.907 +-49.7488 -42.6263 112.285 +-50.795 -42.4708 111.876 +-52.4355 -42.7998 112.742 +-53.4452 -42.6035 112.225 +-55.2371 -43.0177 113.316 +-55.9124 -42.5556 112.099 +-57.9037 -43.0855 113.495 +-58.391 -42.4896 111.925 +-60.3706 -42.9744 113.202 +-61.0617 -42.5326 112.038 +-63.0287 -42.9716 113.195 +-64.2237 -42.8687 112.924 +-66.1819 -43.2608 113.957 +-67.3885 -43.1473 113.658 +-69.4317 -43.5547 114.731 +-71.55 -43.9834 115.86 +-74.2529 -44.7387 117.85 +-75.3501 -44.5073 117.24 +-77.7478 -45.0286 118.614 +-78.693 -44.6957 117.737 +-79.6278 -44.3607 116.854 +-80.77 -44.1421 116.278 +-82.5146 -44.2454 116.55 +-82.2573 -43.2818 114.012 +-84.3945 -43.5813 114.801 +-85.4629 -43.3183 114.108 +-88.1507 -43.861 115.538 +-88.6968 -43.3279 114.134 +-90.8889 -43.5934 114.833 +-92.2582 -43.4521 114.461 +-94.6015 -43.7559 115.261 +-96.2279 -43.713 115.148 +-98.7308 -44.0523 116.042 +-99.999 -43.8273 115.449 +-102.472 -44.1187 116.216 +-103.746 -43.8812 115.591 +-106.574 -44.2869 116.66 +-108.053 -44.1158 116.209 +-111.32 -44.6567 117.634 +-113.217 -44.6265 117.554 +-115.661 -44.7976 118.005 +-116.758 -44.4377 117.057 +-119.774 -44.7951 117.998 +-121.843 -44.7799 117.958 +-126.023 -45.5145 119.893 +-127.562 -45.2732 119.258 +-131.024 -45.6973 120.375 +-132.143 -45.2899 119.302 +-134.702 -45.3672 119.505 +-136.617 -45.2146 119.103 +-138.24 -44.9577 118.427 +-139.191 -44.4803 117.169 +-139.68 -43.8596 115.534 +-140.074 -43.2158 113.838 +-139.534 -42.2962 111.416 +-139.65 -41.5885 109.552 +-139.587 -40.8386 107.576 +-140.042 -40.2483 106.021 +-140.635 -39.7025 104.584 +-141.448 -39.2216 103.317 +-141.058 -38.4149 101.192 +-142.716 -38.1686 100.543 +-140.755 -36.9651 97.3726 +-140.203 -36.1523 95.2317 +-139.865 -35.4076 93.2701 +-140.075 -34.8103 91.6965 +-143.316 -34.958 92.0858 +-149.227 -35.7236 94.1024 +-166.277 -39.0601 102.891 +-192.726 -44.42 117.01 +-223.33 -50.4957 133.015 +-225.326 -49.9715 131.634 +-229.104 -49.8278 131.255 +-232.292 -49.5367 130.489 +-239.447 -50.0584 131.863 +-243.959 -49.9892 131.681 +-248.661 -49.9307 131.526 +-251.278 -49.4342 130.218 +-259.075 -49.9239 131.509 +-262.765 -49.5864 130.62 +-272.135 -50.2781 132.442 +-276.479 -49.9974 131.702 +-284.231 -50.2952 132.487 +-289.052 -50.0354 131.802 +-297.221 -50.3147 132.538 +-304.248 -50.3523 132.637 +-312.845 -50.6004 133.291 +-317.731 -50.2068 132.254 +-325.831 -50.2824 132.453 +-331.014 -49.8675 131.36 +-342.02 -50.2799 132.446 +-347.138 -49.7774 131.123 +-358.118 -50.0659 131.883 +-365.403 -49.7816 131.134 +-376.449 -49.953 131.585 +-386.496 -49.9264 131.515 +-401.66 -50.4808 132.976 +-413.853 -50.5752 133.224 +-428.927 -50.9358 134.174 +-434.252 -50.0769 131.912 +-428.887 -47.9936 126.424 +-424.791 -46.093 121.417 +-378.83 -39.826 104.909 +-378.833 -38.5536 101.557 +-377.647 -37.1702 97.913 +-378.933 -36.0359 94.9251 +-378.836 -34.772 91.5956 +-378.609 -33.5029 88.2526 +-379.322 -32.3207 85.1385 +-377.179 -30.9052 81.4098 +-378.315 -29.7665 78.4104 +-3204.7 -241.759 636.836 +-3210.53 -231.824 610.666 +-3216.11 -221.872 584.451 +-3221.44 -211.903 558.19 +-3226.53 -201.917 531.887 +-3231.37 -191.916 505.543 +-3236.36 -181.924 479.219 +-3240.31 -171.872 452.742 +-3244.42 -161.83 426.289 +-3248.27 -151.775 399.803 +-3251.88 -141.709 373.288 +-3255.64 -131.648 346.785 +-3258.75 -121.56 320.211 +-3261.61 -111.463 293.613 +-3264.23 -101.357 266.992 +-3266.6 -91.243 240.351 +-3268.72 -81.1224 213.691 +-3270.59 -70.9957 187.016 +-3272.21 -60.8634 160.325 +-3273.58 -50.7267 133.623 +-3274.7 -40.5859 106.91 +-3275.58 -30.4422 80.1901 +-3276.2 -20.2961 53.4635 +-3276.58 -10.1484 26.7327 +94.4 0 0 +95.1964 -0.287828 0.779312 +94.9855 -0.574425 1.55529 +95.8671 -0.869745 2.35489 +95.142 -1.15109 3.11665 +95.3092 -1.44172 3.90356 +95.469 -1.73345 4.69344 +95.5215 -2.02415 5.4805 +95.3671 -2.31045 6.25569 +95.405 -2.60142 7.04349 +96.1328 -2.91392 7.88962 +95.2594 -3.17789 8.60434 +95.9714 -3.49475 9.46226 +95.979 -3.78869 10.2581 +95.88 -4.07875 11.0435 +95.8727 -4.37299 11.8402 +96.4521 -4.69645 12.7159 +95.44 -4.94178 13.3802 +96.0033 -5.26808 14.2636 +95.7683 -5.55242 15.0335 +95.6248 -5.84175 15.8169 +95.4741 -6.13066 16.5991 +95.316 -6.41909 17.3801 +95.0527 -6.7001 18.1409 +95.7607 -7.05207 19.0939 +95.677 -7.34882 19.8974 +95.3908 -7.63 20.6587 +95.2923 -7.92619 21.4607 +95.8652 -8.28107 22.4215 +95.7498 -8.57927 23.2289 +95.5301 -8.86843 24.0118 +95.2067 -9.14768 24.7679 +95.8378 -9.52109 25.7789 +95.4026 -9.79081 26.5092 +95.1523 -10.0789 27.2892 +95.7532 -10.46 28.321 +95.6763 -10.7705 29.1617 +96.0652 -11.1363 30.1522 +96.5374 -11.5165 31.1817 +95.3953 -11.7039 31.689 +95.8486 -12.0867 32.7254 +96.4772 -12.4973 33.8373 +96.0654 -12.7761 34.5922 +96.7634 -13.2057 35.7554 +96.4271 -13.4978 36.5461 +96.1759 -13.8021 37.37 +95.7325 -14.0788 38.1192 +96.2913 -14.5059 39.2755 +96.0136 -14.8105 40.1004 +95.6369 -15.1003 40.8849 +96.2499 -15.5499 42.1023 +96.3961 -15.9298 43.1309 +95.9912 -16.2206 43.9183 +95.579 -16.5102 44.7024 +96.0505 -16.9559 45.9091 +96.2407 -17.3576 46.9967 +95.7998 -17.6479 47.7828 +96.0547 -18.0691 48.9233 +95.6834 -18.3757 49.7532 +95.9132 -18.8007 50.9042 +95.436 -19.09 51.6873 +95.727 -19.5361 52.8951 +95.8313 -19.9497 54.015 +95.4104 -20.2567 54.8464 +95.4902 -20.6729 55.9733 +95.7249 -21.1284 57.2065 +95.1052 -21.3982 57.9368 +95.3131 -21.857 59.1791 +95.2564 -22.2606 60.2719 +95.4338 -22.7243 61.5275 +95.595 -23.1908 62.7907 +95.0073 -23.479 63.5707 +95.0595 -23.9283 64.7872 +95.0963 -24.3796 66.0092 +95.1974 -24.8539 67.2934 +95.2024 -25.3095 68.5269 +95.1917 -25.767 69.7656 +95.2434 -26.2479 71.0678 +95.2004 -26.7093 72.317 +95.2185 -27.1944 73.6306 +95.2193 -27.6817 74.9499 +95.2028 -28.171 76.2749 +95.0934 -28.6396 77.5436 +94.9676 -29.1097 78.8164 +94.751 -29.558 80.0302 +94.6664 -30.054 81.3731 +94.4909 -30.5281 82.6568 +93.7909 -30.8365 83.4917 +93.5142 -31.2874 84.7125 +93.4358 -31.8117 86.1322 +92.7017 -32.1175 86.9602 +93.0808 -32.8167 88.8532 +92.8758 -33.3211 90.219 +93.272 -34.053 92.2007 +92.9564 -34.5364 93.5095 +92.4883 -34.9693 94.6817 +92.7415 -35.6855 96.6206 +93.0319 -36.4314 98.6403 +92.6355 -36.9206 99.9648 +92.8711 -37.6735 102.003 +92.5614 -38.2181 103.478 +92.9946 -39.0849 105.825 +93.2023 -39.8759 107.967 +92.8169 -40.4275 109.46 +91.6104 -40.6246 109.994 +90.7055 -40.9551 110.889 +88.8279 -40.8405 110.578 +87.6174 -41.0237 111.074 +86.7571 -41.3712 112.015 +85.4795 -41.5192 112.416 +83.2833 -41.2084 111.574 +82.4121 -41.5441 112.483 +80.5238 -41.3608 111.987 +78.9822 -41.3428 111.938 +77.0664 -41.1152 111.322 +76.1891 -41.4343 112.186 +74.2417 -41.1637 111.453 +73.3588 -41.4752 112.297 +71.6418 -41.3092 111.847 +70.4971 -41.4644 112.268 +68.4 -41.0459 111.134 +67.8067 -41.5226 112.425 +66.0311 -41.2715 111.745 +64.9413 -41.4391 112.199 +63.097 -41.1138 111.318 +62.5669 -41.6411 112.746 +60.4715 -41.1187 111.331 +59.9244 -41.6411 112.746 +57.9965 -41.1977 111.545 +57.7315 -41.9346 113.541 +55.9124 -41.5424 112.479 +55.2371 -41.9935 113.7 +53.4452 -41.5892 112.605 +52.595 -41.9079 113.468 +50.8341 -41.4915 112.341 +49.7871 -41.6436 112.753 +48.2119 -41.3428 111.938 +47.2787 -41.5836 112.59 +45.9069 -41.434 112.185 +44.7565 -41.4738 112.293 +43.0603 -40.9887 110.98 +42.4269 -41.5095 112.389 +41.1518 -41.4069 112.112 +39.8535 -41.2666 111.732 +38.6271 -41.188 111.519 +37.6784 -41.4024 112.1 +36.2833 -41.1169 111.327 +35.4167 -41.4246 112.16 +34.2893 -41.4301 112.175 +33.2445 -41.5323 112.451 +32.1194 -41.5306 112.447 +31.0722 -41.6262 112.706 +29.6596 -41.2143 111.59 +28.6904 -41.4035 112.102 +27.4665 -41.2188 111.602 +26.6004 -41.5708 112.556 +25.49 -41.5479 112.494 +24.4226 -41.5895 112.606 +23.2596 -41.4575 112.249 +22.2692 -41.6287 112.712 +20.9072 -41.0802 111.227 +20.2183 -41.8594 113.337 +18.7878 -41.0975 111.274 +17.9293 -41.5642 112.538 +16.7564 -41.3078 111.844 +15.872 -41.7693 113.093 +14.6365 -41.2999 111.822 +13.6863 -41.6179 112.683 +12.6166 -41.5888 112.604 +11.5398 -41.522 112.423 +10.4413 -41.348 111.952 +9.42294 -41.4818 112.314 +8.31497 -41.1977 111.545 +7.33193 -41.5323 112.451 +6.23845 -41.2417 111.664 +5.25177 -41.674 112.835 +4.18096 -41.4807 112.312 +3.15956 -41.8036 113.186 +2.09603 -41.6037 112.645 +1.05417 -41.8507 113.313 +7.33539e-15 -41.506 112.38 +-1.05417 -41.8507 113.313 +-2.09778 -41.6384 112.738 +-3.17003 -41.9422 113.561 +-4.21586 -41.8268 113.249 +-5.28231 -41.9166 113.492 +-6.32218 -41.795 113.162 +-7.39298 -41.8781 113.388 +-8.3638 -41.4395 112.2 +-9.5014 -41.8272 113.25 +-10.5197 -41.6588 112.794 +-11.6069 -41.7631 113.076 +-12.6479 -41.6921 112.884 +-13.7882 -41.9277 113.522 +-14.7096 -41.506 112.38 +-15.8589 -41.735 113 +-16.8539 -41.5479 112.494 +-18.0032 -41.7354 113.001 +-18.9442 -41.4398 112.201 +-20.2513 -41.9277 113.522 +-20.9767 -41.2167 111.597 +-22.1963 -41.4922 112.343 +-23.2787 -41.4918 112.342 +-24.4026 -41.5556 112.514 +-25.4484 -41.48 112.31 +-26.6004 -41.5708 112.556 +-27.6465 -41.4887 112.333 +-28.9005 -41.7066 112.923 +-29.9015 -41.5507 112.501 +-31.0972 -41.6598 112.797 +-32.223 -41.6647 112.81 +-33.5117 -41.866 113.355 +-34.5649 -41.7631 113.076 +-35.8427 -41.9228 113.509 +-37.0435 -41.9786 113.66 +-38.2498 -42.0302 113.799 +-38.967 -41.5504 112.5 +-40.4881 -41.9238 113.511 +-41.4448 -41.7018 112.91 +-42.7607 -41.8358 113.273 +-43.9496 -41.8355 113.272 +-45.4219 -42.0901 113.962 +-46.4803 -41.9512 113.586 +-48.085 -42.2928 114.51 +-49.1484 -42.1459 114.113 +-50.6673 -42.3798 114.746 +-51.4984 -42.0337 113.809 +-53.1134 -42.3209 114.586 +-54.218 -42.1906 114.234 +-55.7762 -42.4033 114.81 +-56.4618 -41.9505 113.584 +-58.2912 -42.341 114.641 +-59.3555 -42.1633 114.16 +-61.2183 -42.5402 115.18 +-61.9697 -42.1373 114.089 +-63.8598 -42.5017 115.076 +-65.2096 -42.4903 115.045 +-67.184 -42.87 116.073 +-68.5036 -42.817 115.93 +-70.7613 -43.3319 117.324 +-72.45 -43.4763 117.715 +-74.9127 -44.0615 119.299 +-76.7922 -44.2791 119.888 +-78.6883 -44.4884 120.455 +-79.3289 -43.9843 119.09 +-81.2934 -44.2101 119.702 +-82.0771 -43.7885 118.56 +-83.3425 -43.6253 118.118 +-83.3197 -42.7973 115.876 +-85.4707 -43.0862 116.659 +-86.7248 -42.9113 116.185 +-89.4283 -43.4372 117.609 +-90.1075 -42.9688 116.341 +-92.257 -43.1961 116.956 +-93.3415 -42.9154 116.196 +-96.1234 -43.4012 117.511 +-97.6439 -43.3003 117.238 +-99.8513 -43.4912 117.755 +-100.943 -43.1877 116.933 +-103.999 -43.7099 118.347 +-105.096 -43.3935 117.491 +-108.198 -43.8911 118.838 +-109.759 -43.7452 118.443 +-113.043 -44.268 119.858 +-114.354 -44.0016 119.137 +-117.35 -44.3695 120.133 +-117.781 -43.7597 118.482 +-121.632 -44.4073 120.235 +-124.205 -44.5611 120.652 +-127.916 -45.0981 122.106 +-129.259 -44.7832 121.253 +-132.237 -45.0222 121.901 +-133.366 -44.6207 120.813 +-136.588 -44.9072 121.589 +-137.494 -44.4218 120.275 +-138.756 -44.0511 119.271 +-138.968 -43.3516 117.377 +-140.279 -42.9989 116.422 +-140.301 -42.2547 114.407 +-139.534 -41.2891 111.793 +-139.65 -40.5983 109.922 +-139.741 -39.9102 108.059 +-140.353 -39.377 106.616 +-141.339 -38.9512 105.463 +-141.369 -38.2666 103.609 +-141.693 -37.669 101.991 +-142.876 -37.3017 100.997 +-140.836 -36.1057 97.7585 +-140.122 -35.2711 95.4987 +-140.028 -34.6048 93.6947 +-140.648 -34.1205 92.3835 +-149.002 -35.4797 96.0634 +-154.533 -36.113 97.7782 +-188.875 -43.3125 117.271 +-220.906 -49.7026 134.573 +-225.354 -49.74 134.674 +-228.04 -49.3689 133.669 +-230.554 -48.9494 132.533 +-234.864 -48.8926 132.38 +-242.462 -49.4819 133.975 +-244.999 -49.0069 132.689 +-251.272 -49.2539 133.358 +-254.864 -48.9459 132.524 +-262.591 -49.3967 133.745 +-265.149 -48.8448 132.25 +-274.885 -49.5772 134.233 +-277.549 -48.9958 132.659 +-287.811 -49.7161 134.609 +-292.198 -49.3755 133.687 +-301.644 -49.8478 134.966 +-307.873 -49.739 134.671 +-316.212 -49.9271 135.181 +-322.025 -49.6738 134.495 +-328.949 -49.5546 134.172 +-334.511 -49.1947 133.198 +-344.792 -49.4805 133.972 +-350.29 -49.0332 132.761 +-361.746 -49.3693 133.67 +-369.885 -49.1923 133.191 +-381.881 -49.4677 133.937 +-390.16 -49.1999 133.212 +-408.352 -50.1 135.649 +-420.188 -50.1267 135.721 +-434.996 -50.4267 136.533 +-435.394 -49.0131 132.706 +-429.173 -46.8824 126.937 +-379.079 -40.1534 108.718 +-377.583 -38.7499 104.918 +-377.68 -37.521 101.591 +-377.165 -36.2388 98.1187 +-378.546 -35.1419 95.1488 +-379.417 -33.9961 92.0465 +-379.677 -32.7974 88.8009 +-379.419 -31.5593 85.4487 +-378.25 -30.255 81.9174 +-377.729 -29.0128 78.554 +-3204.7 -236.003 638.992 +-3210.53 -226.304 612.733 +-3216.11 -216.589 586.429 +-3221.44 -206.857 560.079 +-3226.53 -197.11 533.687 +-3231.37 -187.347 507.254 +-3235.96 -177.57 480.782 +-3240.31 -167.78 454.275 +-3244.42 -157.977 427.732 +-3248.27 -148.162 401.157 +-3251.88 -138.335 374.551 +-3255.24 -128.498 347.917 +-3258.35 -118.651 321.256 +-3261.22 -108.795 294.57 +-3264.23 -98.9433 267.895 +-3266.6 -89.0706 241.164 +-3268.72 -79.1909 214.414 +-3270.59 -69.3053 187.649 +-3272.21 -59.4142 160.868 +-3273.58 -49.519 134.076 +-3274.7 -39.6195 107.272 +-3275.58 -29.7173 80.4615 +-3276.2 -19.8128 53.6444 +-3276.58 -9.90677 26.8232 +95.2 0 0 +95.1964 -0.280784 0.781877 +94.9855 -0.560368 1.56041 +95.8671 -0.848461 2.36264 +94.9421 -1.12056 3.12034 +95.3092 -1.40644 3.91641 +95.1694 -1.68573 4.69411 +95.5215 -1.97461 5.49854 +95.3671 -2.25391 6.27628 +95.405 -2.53775 7.06668 +95.037 -2.81021 7.82536 +95.2594 -3.10012 8.63266 +95.7725 -3.40216 9.47373 +95.979 -3.69597 10.2919 +95.7807 -3.97481 11.0683 +95.8727 -4.26598 11.8791 +96.2541 -4.57209 12.7315 +95.44 -4.82085 13.4242 +95.0156 -5.0863 14.1634 +95.7683 -5.41654 15.083 +95.3294 -5.68118 15.8199 +95.4741 -5.98063 16.6538 +95.0215 -6.24264 17.3834 +95.0527 -6.53614 18.2007 +95.565 -6.86544 19.1176 +95.677 -7.16898 19.9629 +95.0985 -7.42047 20.6632 +95.2923 -7.73223 21.5313 +94.7979 -7.98848 22.2449 +95.7498 -8.36932 23.3054 +95.4335 -8.64265 24.0665 +95.2067 -8.92382 24.8494 +95.6455 -9.26947 25.812 +95.4026 -9.55121 26.5965 +96.013 -9.92117 27.6267 +95.7532 -10.204 28.4142 +95.4861 -10.486 29.1995 +96.0652 -10.8638 30.2515 +95.6865 -11.1357 31.0086 +95.3953 -11.4175 31.7934 +95.8486 -11.7909 32.8331 +96.4772 -12.1915 33.9487 +95.9721 -12.4513 34.6722 +96.7634 -12.8826 35.8731 +95.3145 -13.0156 36.2434 +96.1759 -13.4643 37.493 +96.561 -13.8531 38.5757 +96.2913 -14.1509 39.4048 +96.0136 -14.4481 40.2324 +95.6369 -14.7307 41.0195 +95.978 -15.1265 42.1216 +96.3961 -15.54 43.2729 +95.9912 -15.8237 44.0629 +95.579 -16.1062 44.8496 +95.9614 -16.5256 46.0175 +96.2407 -16.9328 47.1515 +95.7998 -17.216 47.9401 +96.0547 -17.627 49.0844 +95.5959 -17.9096 49.8714 +95.9132 -18.3406 51.0717 +95.3494 -18.6059 51.8104 +95.727 -19.058 53.0692 +95.917 -19.4789 54.2412 +95.4104 -19.761 55.0269 +95.4902 -20.167 56.1575 +95.7249 -20.6114 57.3948 +95.1052 -20.8745 58.1276 +95.3131 -21.3221 59.3739 +95.1735 -21.6969 60.4176 +95.4338 -22.1682 61.73 +94.7759 -22.4295 62.4575 +95.0073 -22.9044 63.78 +94.9786 -23.3228 64.9452 +95.0963 -23.783 66.2265 +95.1175 -24.2253 67.4582 +95.2024 -24.6901 68.7525 +94.4825 -24.9491 69.4738 +95.2434 -25.6055 71.3017 +95.1227 -26.0344 72.4958 +95.2185 -26.5289 73.873 +95.1427 -26.9826 75.1362 +95.2028 -27.4817 76.526 +95.0934 -27.9388 77.7989 +94.9676 -28.3974 79.0758 +94.8996 -28.8799 80.4196 +94.6664 -29.3186 81.641 +95.2223 -30.0116 83.5708 +93.7909 -30.0819 83.7665 +94.5932 -30.8739 85.972 +93.4358 -31.0332 86.4158 +92.631 -31.3076 87.1799 +93.0808 -32.0136 89.1457 +92.8064 -32.4814 90.4483 +93.272 -33.2197 92.5042 +92.9564 -33.6913 93.8174 +92.4883 -34.1136 94.9933 +92.8084 -34.8372 97.0083 +93.0319 -35.5399 98.965 +92.7011 -36.0424 100.364 +92.8711 -36.7515 102.339 +93.0756 -37.49 104.395 +92.9946 -38.1285 106.173 +92.8877 -38.7689 107.957 +92.8169 -39.4382 109.82 +92.9033 -40.1898 111.913 +90.7055 -39.9529 111.254 +92.0777 -41.2984 115 +87.6174 -40.0198 111.44 +89.0495 -41.4252 115.353 +85.4795 -40.5031 112.786 +86.5527 -41.778 116.336 +82.4121 -40.5275 112.854 +84.9414 -42.5625 118.52 +78.9822 -40.3311 112.307 +82.4039 -42.8869 119.424 +76.1891 -40.4203 112.555 +79.011 -42.7358 119.003 +73.3588 -40.4602 112.666 +76.0196 -42.7609 119.073 +70.4971 -40.4497 112.637 +72.75 -42.5882 118.592 +67.8067 -40.5065 112.795 +68.7945 -41.9467 116.805 +64.9413 -40.4251 112.568 +68.402 -43.4797 121.075 +62.5669 -40.6221 113.117 +65.647 -43.5457 121.258 +59.9244 -40.6221 113.117 +63.0378 -43.6832 121.641 +57.7315 -40.9084 113.914 +60.4344 -43.8032 121.975 +55.2371 -40.9658 114.074 +57.7973 -43.8752 122.176 +52.595 -40.8824 113.842 +54.4679 -43.3692 120.767 +49.7871 -40.6245 113.124 +51.2462 -42.8694 119.375 +47.2787 -40.566 112.961 +47.5554 -41.8713 116.596 +44.7565 -40.4589 112.663 +44.873 -41.6692 116.033 +42.4269 -40.4937 112.759 +42.2913 -41.512 115.595 +39.8535 -40.2567 112.1 +39.8941 -41.4978 115.556 +37.6784 -40.3892 112.469 +37.6575 -41.63 115.924 +35.4167 -40.4109 112.529 +35.3367 -41.6509 115.982 +33.2445 -40.516 112.822 +33.103 -41.755 116.272 +31.0722 -40.6076 113.077 +30.9418 -41.944 116.798 +28.6904 -40.3903 112.471 +28.4788 -41.6918 116.096 +26.6004 -40.5535 112.926 +26.3216 -41.8534 116.546 +24.4226 -40.5717 112.977 +23.9847 -41.704 116.13 +22.2692 -40.6099 113.083 +21.8276 -41.8388 116.505 +20.2183 -40.835 113.71 +19.6638 -41.9612 116.846 +17.9293 -40.5471 112.908 +17.4523 -41.9707 116.872 +15.872 -40.7472 113.465 +15.2702 -42.0335 117.047 +13.6863 -40.5995 113.054 +12.9511 -41.6465 115.97 +11.5398 -40.5058 112.793 +10.8247 -41.8176 116.446 +9.42294 -40.4666 112.684 +8.66375 -41.875 116.606 +7.33193 -40.516 112.822 +6.50013 -41.92 116.731 +5.25177 -40.6542 113.207 +4.33452 -41.9517 116.82 +3.15956 -40.7806 113.559 +2.17282 -42.0724 117.156 +1.05417 -40.8266 113.687 +7.61705e-15 -42.045 117.079 +-1.05417 -40.8266 113.687 +-2.17632 -42.14 117.344 +-3.17003 -40.9158 113.935 +-4.34499 -42.0531 117.102 +-5.28231 -40.8908 113.865 +-6.51583 -42.021 117.013 +-7.39298 -40.8533 113.761 +-8.68468 -41.9764 116.888 +-9.5014 -40.8036 113.623 +-10.9468 -42.289 117.759 +-11.6069 -40.7411 113.448 +-13.1079 -42.1508 117.374 +-13.7882 -40.9016 113.895 +-15.3921 -42.3691 117.982 +-15.8589 -40.7137 113.372 +-17.4941 -42.071 117.152 +-18.0032 -40.714 113.373 +-19.8046 -42.2617 117.683 +-20.2513 -40.9016 113.895 +-21.897 -41.972 116.876 +-22.1963 -40.4768 112.712 +-24.1564 -42.0024 116.961 +-24.4026 -40.5386 112.885 +-26.3216 -41.8534 116.546 +-26.6004 -40.5535 112.926 +-28.7487 -42.0869 117.196 +-28.9005 -40.686 113.295 +-30.9902 -42.0095 116.981 +-31.0972 -40.6404 113.168 +-33.3877 -42.114 117.271 +-33.5117 -40.8415 113.728 +-35.7502 -42.1383 117.339 +-35.8427 -40.8969 113.882 +-37.7452 -41.727 116.194 +-38.2498 -41.0017 114.174 +-40.6975 -42.3336 117.883 +-40.4881 -40.8979 113.885 +-43.0727 -42.2789 117.731 +-42.7607 -40.8121 113.646 +-45.7965 -42.5266 118.421 +-45.4219 -41.0601 114.337 +-48.1647 -42.4077 118.089 +-48.085 -41.2579 114.887 +-50.8341 -42.5246 118.415 +-50.6673 -41.3427 115.124 +-53.8427 -42.8717 119.381 +-53.1134 -41.2852 114.964 +-56.7398 -43.0725 119.94 +-55.7762 -41.3657 115.188 +-59.9695 -43.4662 121.037 +-58.2912 -41.3048 115.018 +-62.2049 -43.1059 120.034 +-61.2183 -41.4992 115.559 +-65.2384 -43.2746 120.503 +-63.8598 -41.4617 115.455 +-68.8715 -43.7782 121.906 +-67.184 -41.8209 116.455 +-72.3336 -44.1043 122.814 +-70.7613 -42.2715 117.71 +-76.35 -44.6955 124.46 +-74.9127 -42.9833 119.692 +-80.655 -45.3681 126.333 +-78.6883 -43.3996 120.852 +-84.1512 -45.5161 126.745 +-81.2934 -43.1282 120.096 +-86.4342 -44.9844 125.265 +-83.3425 -42.5577 118.507 +-87.1223 -43.6552 121.563 +-85.4707 -42.0318 117.043 +-89.9941 -43.4392 120.962 +-89.4283 -42.3742 117.996 +-93.9281 -43.6947 121.673 +-92.257 -42.139 117.341 +-97.6746 -43.8089 121.991 +-96.1234 -42.3391 117.898 +-101.646 -43.9719 122.445 +-99.8513 -42.4269 118.143 +-105.285 -43.9435 122.366 +-103.999 -42.6402 118.737 +-109.338 -44.0405 122.636 +-108.198 -42.817 119.229 +-114.548 -44.5366 124.018 +-113.043 -43.1847 120.253 +-118.235 -44.3818 123.586 +-117.35 -43.2837 120.529 +-124.465 -45.1112 125.617 +-121.632 -43.3206 120.631 +-129.623 -45.367 126.33 +-127.916 -43.9945 122.508 +-133.855 -45.2406 125.978 +-132.237 -43.9205 122.302 +-138.329 -45.1487 125.722 +-136.588 -43.8083 121.989 +-139.103 -43.8417 122.083 +-138.756 -42.9731 119.664 +-140.008 -42.6074 118.645 +-140.279 -41.9467 116.805 +-139.546 -40.999 114.166 +-139.534 -40.2787 112.161 +-140.11 -39.7352 110.648 +-139.741 -38.9335 108.415 +-141.751 -38.7963 108.033 +-141.339 -37.998 105.81 +-141.29 -37.3092 103.892 +-141.693 -36.7471 102.327 +-143.036 -36.4294 101.442 +-140.836 -35.2222 98.0803 +-140.203 -34.4279 95.8686 +-140.028 -33.758 94.0032 +-144.417 -34.1775 95.1712 +-149.002 -34.6114 96.3797 +-166.554 -37.9696 105.731 +-188.875 -42.2525 117.657 +-228.622 -50.1799 139.732 +-225.354 -48.5228 135.117 +-235.927 -49.8267 138.748 +-230.554 -47.7515 132.97 +-245.236 -49.8024 138.681 +-242.462 -48.271 134.416 +-254.611 -49.6834 138.349 +-251.272 -48.0486 133.797 +-264.922 -49.6324 138.207 +-262.591 -48.1878 134.185 +-275.568 -49.5219 137.9 +-274.885 -48.3639 134.675 +-288.864 -49.7456 138.523 +-287.811 -48.4995 135.053 +-302.534 -49.8713 138.873 +-301.644 -48.6279 135.41 +-320.017 -50.4361 140.445 +-316.212 -48.7053 135.626 +-333.718 -50.2178 139.837 +-328.949 -48.342 134.614 +-348.779 -50.0376 139.336 +-344.792 -48.2696 134.413 +-363.178 -49.5932 138.098 +-361.746 -48.1611 134.11 +-384.355 -49.8659 138.858 +-381.881 -48.2571 134.378 +-412.525 -50.747 141.311 +-408.352 -48.8739 136.095 +-435.979 -50.7376 141.285 +-434.996 -49.1927 136.983 +-441.29 -48.4613 134.946 +-429.173 -45.7351 127.355 +-378.697 -39.1313 108.966 +-377.583 -37.8016 105.263 +-378.545 -36.6866 102.158 +-377.165 -35.3519 98.4417 +-379.222 -34.3431 95.6324 +-379.417 -33.1642 92.3495 +-378.318 -31.8803 88.7745 +-379.419 -30.787 85.73 +-380.102 -29.6591 82.5893 +-377.729 -28.3028 78.8126 +-3204.7 -230.227 641.095 +-3210.53 -220.766 614.75 +-3216.11 -211.289 588.36 +-3221.44 -201.795 561.923 +-3226.53 -192.286 535.444 +-3231.37 -182.762 508.923 +-3235.96 -173.225 482.365 +-3240.31 -163.674 455.77 +-3244.42 -154.111 429.14 +-3248.27 -144.536 402.477 +-3251.88 -134.95 375.784 +-3255.24 -125.354 349.062 +-3258.35 -115.748 322.314 +-3261.22 -106.133 295.54 +-3263.83 -96.5102 268.744 +-3266.6 -86.8909 241.958 +-3268.72 -77.253 215.12 +-3270.59 -67.6093 188.266 +-3272.21 -57.9603 161.397 +-3273.58 -48.3072 134.517 +-3274.7 -38.65 107.625 +-3275.58 -28.9901 80.7264 +-3276.2 -19.328 53.821 +-3276.58 -9.66434 26.9115 +95.2 0 0 +95.2964 -0.274005 0.785203 +94.9855 -0.546265 1.5654 +95.2673 -0.821932 2.35537 +94.9421 -1.09236 3.13033 +95.4091 -1.37248 3.93306 +95.1694 -1.6433 4.70913 +95.3219 -1.92089 5.50461 +95.3671 -2.19719 6.29636 +95.2056 -2.46871 7.07447 +95.037 -2.73948 7.8504 +95.7571 -3.03789 8.70553 +95.7725 -3.31654 9.50405 +95.7803 -3.59551 10.3035 +95.7807 -3.87477 11.1037 +95.5753 -4.1457 11.8801 +96.2541 -4.45703 12.7723 +95.1433 -4.68492 13.4253 +95.0156 -4.95829 14.2087 +94.8807 -5.23129 14.9911 +95.3294 -5.5382 15.8705 +95.2774 -5.81809 16.6726 +95.0215 -6.08553 17.439 +94.9547 -6.36509 18.2401 +95.565 -6.69265 19.1788 +95.2865 -6.96002 19.945 +95.0985 -7.23372 20.7293 +95.0978 -7.52228 21.5562 +94.7979 -7.78744 22.3161 +95.653 -8.15042 23.3563 +95.4335 -8.42514 24.1435 +95.1103 -8.6904 24.9036 +95.6455 -9.03619 25.8945 +95.2108 -9.29212 26.628 +96.013 -9.67148 27.7151 +95.6578 -9.93727 28.4767 +95.4861 -10.2221 29.293 +95.1169 -10.4858 30.0487 +95.6865 -10.8554 31.1078 +95.3953 -11.1301 31.8951 +95.8486 -11.4941 32.9382 +95.4469 -11.7577 33.6935 +95.9721 -12.138 34.7832 +95.6469 -12.4135 35.5726 +95.3145 -12.688 36.3594 +95.9911 -13.1002 37.5407 +96.561 -13.5045 38.6991 +96.2913 -13.7947 39.5309 +96.0136 -14.0845 40.3611 +95.5459 -14.3463 41.1115 +95.978 -14.7458 42.2563 +95.7643 -15.0496 43.1268 +95.9912 -15.4254 44.2039 +95.4895 -15.6861 44.951 +95.9614 -16.1097 46.1647 +96.2407 -16.5067 47.3023 +95.7998 -16.7828 48.0935 +95.2638 -17.0418 48.8359 +95.5959 -17.4589 50.031 +95.9132 -17.8791 51.2351 +95.3494 -18.1377 51.9762 +94.8654 -18.4111 52.7599 +95.917 -18.9886 54.4148 +95.2399 -19.2293 55.1043 +95.4902 -19.6595 56.3372 +95.6406 -20.0749 57.5277 +95.1052 -20.3492 58.3135 +95.3131 -20.7855 59.5639 +95.1735 -21.1508 60.6109 +94.6097 -21.4237 61.3927 +94.7759 -21.865 62.6574 +94.9259 -22.3088 63.9293 +94.9786 -22.7358 65.153 +95.0159 -23.1649 66.3824 +95.1175 -23.6156 67.6741 +95.0437 -24.0286 68.8575 +94.4825 -24.3212 69.6961 +95.2434 -24.9611 71.5298 +95.1227 -25.3792 72.7278 +94.4468 -25.6517 73.5088 +95.1427 -26.3035 75.3766 +94.5185 -26.5974 76.2189 +95.0934 -27.2356 78.0478 +94.4433 -27.5299 78.8909 +94.8996 -28.1531 80.6769 +94.8139 -28.6252 82.0298 +95.2223 -29.2563 83.8382 +94.5888 -29.5743 84.7495 +94.5932 -30.0969 86.2471 +94.1491 -30.4832 87.354 +92.631 -30.5197 87.4588 +94.4826 -31.6779 90.7778 +92.8064 -31.6639 90.7377 +94.5111 -32.8138 94.033 +92.9564 -32.8434 94.1176 +94.5826 -34.0082 97.4556 +92.8084 -33.9605 97.3187 +94.2246 -35.0899 100.555 +92.7011 -35.1354 100.686 +92.8061 -35.8016 102.595 +93.0756 -36.5465 104.729 +92.613 -37.0163 106.076 +92.8877 -37.7933 108.302 +93.0659 -38.5487 110.467 +92.9033 -39.1784 112.271 +92.3491 -39.6531 113.632 +92.0777 -40.2591 115.368 +92.9113 -41.3697 118.551 +89.0495 -40.3826 115.722 +92.5641 -42.7562 122.524 +86.5527 -40.7266 116.708 +103.199 -49.4729 141.772 +84.9414 -41.4913 118.899 +98.6863 -49.1246 140.774 +82.4039 -41.8076 119.806 +93.4364 -48.323 138.477 +79.011 -41.6603 119.384 +90.0788 -48.4314 138.787 +76.0196 -41.6847 119.454 +86.586 -48.4311 138.786 +72.75 -41.5163 118.971 +83.8597 -48.8357 139.946 +68.7945 -40.891 117.179 +81.0216 -49.1655 140.891 +68.402 -42.3855 121.462 +77.7123 -49.1856 140.949 +65.647 -42.4497 121.646 +74.6489 -49.3302 141.363 +63.0378 -42.5838 122.03 +71.0343 -49.0679 140.611 +60.4344 -42.7008 122.366 +67.1388 -48.5395 139.097 +57.7973 -42.771 122.567 +65.3948 -49.5526 142 +54.4679 -42.2778 121.153 +62.5305 -49.7384 142.533 +51.2462 -41.7905 119.757 +59.8863 -50.0903 143.541 +47.5554 -40.8175 116.969 +57.469 -50.6432 145.126 +44.873 -40.6205 116.404 +53.576 -49.8478 142.846 +42.2913 -40.4673 115.965 +49.3091 -48.5546 139.14 +39.8941 -40.4534 115.925 +46.459 -48.548 139.122 +37.6575 -40.5823 116.295 +43.7384 -48.6498 139.413 +35.3367 -40.6027 116.353 +40.8607 -48.5447 139.112 +33.103 -40.7042 116.644 +38.1579 -48.6129 139.308 +30.9418 -40.8884 117.172 +35.367 -48.5365 139.089 +28.4788 -40.6426 116.467 +32.7906 -48.7325 139.65 +26.3216 -40.8001 116.919 +30.0846 -48.72 139.614 +23.9847 -40.6544 116.501 +27.3718 -48.6587 139.439 +21.8276 -40.7859 116.878 +24.5921 -48.4189 138.751 +19.6638 -40.9052 117.22 +22.0679 -48.6505 139.415 +17.4523 -40.9144 117.246 +19.4876 -48.7701 139.758 +15.2702 -40.9757 117.422 +16.7541 -48.4492 138.838 +12.9511 -40.5984 116.341 +14.3002 -48.9315 140.221 +10.8247 -40.7651 116.819 +11.6669 -48.8422 139.965 +8.66375 -40.8211 116.979 +9.07792 -48.9019 140.136 +6.50013 -40.865 117.105 +6.4862 -48.9464 140.263 +4.33452 -40.8959 117.193 +3.87157 -48.7128 139.594 +2.17282 -41.0136 117.53 +1.29327 -48.8264 139.919 +7.61705e-15 -40.9869 117.454 +-1.29764 -48.9912 140.391 +-2.17632 -41.0794 117.719 +-3.89251 -48.9763 140.349 +-4.34499 -40.9948 117.477 +-6.49929 -49.0452 140.546 +-6.51583 -40.9635 117.387 +-9.13286 -49.1977 140.983 +-8.68468 -40.92 117.262 +-11.7061 -49.0063 140.435 +-10.9468 -41.2247 118.136 +-14.2618 -48.8004 139.845 +-13.1079 -41.09 117.75 +-16.9578 -49.0383 140.527 +-15.3921 -41.3028 118.359 +-19.5528 -48.9332 140.225 +-17.4941 -41.0122 117.527 +-22.2601 -49.0742 140.629 +-19.8046 -41.1981 118.059 +-24.8562 -48.9388 140.241 +-21.897 -40.9157 117.25 +-27.5176 -48.9177 140.181 +-24.1564 -40.9454 117.335 +-30.1444 -48.8169 139.892 +-26.3216 -40.8001 116.919 +-33.0503 -49.1183 140.756 +-28.7487 -41.0277 117.571 +-35.7171 -49.0172 140.466 +-30.9902 -40.9523 117.355 +-38.4584 -48.9955 140.404 +-33.3877 -41.0541 117.647 +-41.3685 -49.148 140.841 +-35.7502 -41.0778 117.715 +-44.136 -49.0923 140.681 +-37.7452 -40.6768 116.566 +-47.3612 -49.4907 141.823 +-40.6975 -41.2682 118.26 +-49.8168 -49.0548 140.574 +-43.0727 -41.2149 118.107 +-53.0419 -49.351 141.423 +-45.7965 -41.4564 118.799 +-56.1733 -49.5012 141.853 +-48.1647 -41.3404 118.467 +-59.5198 -49.7839 142.663 +-50.8341 -41.4544 118.794 +-63.028 -50.1341 143.667 +-53.8427 -41.7928 119.763 +-67.269 -50.9726 146.07 +-56.7398 -41.9885 120.324 +-72.4884 -52.4068 150.18 +-59.9695 -42.3723 121.424 +-76.0713 -52.5472 150.582 +-62.2049 -42.0211 120.418 +-79.6909 -52.6619 150.91 +-65.2384 -42.1855 120.889 +-83.5303 -52.8678 151.501 +-68.8715 -42.6764 122.296 +-87.2723 -52.9587 151.761 +-72.3336 -42.9944 123.207 +-88.1931 -51.3591 147.177 +-76.35 -43.5706 124.858 +-91.7122 -51.2982 147.003 +-80.655 -44.2263 126.737 +-98.7 -53.0668 152.071 +-84.1512 -44.3706 127.151 +-102.141 -52.8246 151.377 +-86.4342 -43.8523 125.665 +-104.537 -52.0368 149.119 +-87.1223 -42.5565 121.952 +-106.768 -51.1835 146.674 +-89.9941 -42.346 121.349 +-112.308 -51.8761 148.659 +-93.9281 -42.595 122.062 +-115.693 -51.5136 147.62 +-97.6746 -42.7064 122.382 +-120.23 -51.6247 147.938 +-101.646 -42.8652 122.837 +-126.37 -52.3436 149.998 +-105.285 -42.8375 122.757 +-131.032 -52.3719 150.08 +-109.338 -42.9321 123.028 +-134.371 -51.8359 148.543 +-114.548 -43.4158 124.414 +-139.879 -52.0919 149.277 +-118.235 -43.2649 123.982 +-140.388 -50.4778 144.652 +-124.465 -43.9759 126.019 +-140.08 -48.6353 139.372 +-129.623 -44.2253 126.734 +-140.042 -46.9527 134.55 +-133.855 -44.1021 126.381 +-140.938 -45.6325 130.767 +-138.329 -44.0124 126.124 +-141.738 -44.3159 126.994 +-139.103 -42.7384 122.473 +-141.189 -42.6263 122.152 +-140.008 -41.5351 119.025 +-140.654 -41 117.492 +-139.546 -39.9671 114.532 +-142.348 -40.0568 114.789 +-140.11 -38.7352 111.002 +-159.572 -43.3397 124.196 +-141.751 -37.8199 108.379 +-220.852 -57.8804 165.865 +-141.29 -36.3702 104.224 +-141.852 -35.8625 102.769 +-143.036 -35.5126 101.767 +-143.006 -34.8649 99.9105 +-140.203 -33.5615 96.1754 +-141.086 -33.1572 95.0169 +-144.417 -33.3173 95.4757 +-147.024 -33.2926 95.4049 +-166.554 -37.014 106.069 +-262.34 -57.21 163.944 +-228.622 -48.917 140.179 +-273.428 -57.3925 164.467 +-235.927 -48.5727 139.192 +-287.425 -58.032 166.299 +-245.236 -48.549 139.124 +-296.659 -57.5744 164.988 +-254.611 -48.433 138.792 +-305.93 -57.0281 163.422 +-264.922 -48.3833 138.65 +-323.405 -57.8541 165.789 +-275.568 -48.2755 138.341 +-337.774 -57.9332 166.016 +-288.864 -48.4937 138.966 +-350.725 -57.6139 165.101 +-302.534 -48.6162 139.317 +-368.074 -57.8435 165.759 +-320.017 -49.1668 140.895 +-384.914 -57.7951 165.62 +-333.718 -48.9539 140.285 +-402.864 -57.7144 165.389 +-348.779 -48.7783 139.782 +-426.001 -58.1378 166.602 +-363.178 -48.3451 138.54 +-447.717 -58.1065 166.513 +-384.355 -48.611 139.302 +-453.724 -55.8924 160.168 +-412.525 -49.4699 141.763 +-402.696 -46.984 134.64 +-435.979 -49.4607 141.737 +-403.796 -44.5149 127.564 +-441.29 -47.2416 135.378 +-384.348 -39.9273 114.418 +-378.697 -38.1465 109.314 +-376.241 -36.7195 105.225 +-378.545 -35.7633 102.485 +-378.225 -34.5591 99.0343 +-379.222 -33.4788 95.9384 +-377.578 -32.1728 92.1959 +-378.318 -31.078 89.0585 +-3185.78 -251.996 722.131 +-380.102 -28.9127 82.8536 +-3198.64 -233.639 669.526 +-3204.7 -224.433 643.146 +-378.545 -25.3749 72.7155 +-3216.11 -205.972 590.242 +-377.472 -23.0502 66.0539 +-3226.53 -187.447 537.157 +-377.353 -20.8055 59.6213 +-3235.96 -168.865 483.908 +-383.441 -18.8809 54.106 +-3244.42 -150.232 430.513 +-379.228 -16.4495 47.1386 +-3251.88 -131.554 376.987 +-3255.24 -122.199 350.179 +-3258.35 -112.835 323.345 +-3261.22 -103.462 296.485 +-3263.83 -94.0813 269.604 +-3266.2 -84.6939 242.703 +-3268.72 -75.3088 215.808 +-3270.19 -65.8996 188.845 +-3272.21 -56.5016 161.914 +-3273.18 -47.0855 134.93 +-3274.7 -37.6773 107.97 +-3275.18 -28.2571 80.9748 +-3276.2 -18.8415 53.9932 +-3276.18 -9.41996 26.9943 +95.3 0 0 +95.2964 -0.266909 0.787644 +95.2855 -0.533797 1.57522 +95.2673 -0.800645 2.36269 +95.2419 -1.06743 3.14997 +95.4091 -1.33694 3.94528 +95.3691 -1.6041 4.73367 +95.1222 -1.86723 5.51015 +95.3671 -2.14028 6.31593 +96.1028 -2.42744 7.16334 +95.1366 -2.67133 7.88305 +95.7571 -2.95922 8.73259 +95.8719 -3.23399 9.54344 +95.8797 -3.50602 10.3462 +95.6814 -3.77051 11.1267 +95.5753 -4.03834 11.9171 +95.4618 -4.30588 12.7066 +95.1433 -4.56359 13.4671 +95.9045 -4.87507 14.3862 +95.6697 -5.13818 15.1627 +95.4279 -5.40036 15.9363 +95.2774 -5.66741 16.7244 +95.1197 -5.93405 17.5113 +94.7587 -6.18744 18.259 +95.6628 -6.526 19.2581 +95.4817 -6.79367 20.048 +96.1703 -7.12581 21.0281 +95.195 -7.33494 21.6453 +94.8949 -7.59353 22.4083 +95.653 -7.93934 23.4288 +95.3369 -8.19863 24.194 +95.1103 -8.46534 24.981 +95.7417 -8.81103 26.0012 +95.3067 -9.06059 26.7376 +95.248 -9.34594 27.5797 +95.6578 -9.67992 28.5652 +95.391 -9.94745 29.3547 +95.1169 -10.2143 30.1421 +95.6865 -10.5743 31.2045 +95.3953 -10.8419 31.9942 +95.8486 -11.1965 33.0406 +95.4469 -11.4532 33.7982 +95.9721 -11.8236 34.8913 +95.6469 -12.092 35.6832 +96.2417 -12.4796 36.8272 +95.9911 -12.761 37.6574 +96.561 -13.1547 38.8194 +96.2913 -13.4375 39.6538 +95.9223 -13.7066 40.448 +95.7279 -14.0014 41.3178 +96.1593 -14.391 42.4677 +95.5838 -14.6322 43.1793 +96.0811 -15.04 44.3828 +95.4895 -15.2799 45.0907 +95.9614 -15.6925 46.3082 +96.152 -16.0644 47.4056 +95.7115 -16.333 48.1985 +95.2638 -16.6005 48.9877 +95.5959 -17.0067 50.1865 +95.0428 -17.258 50.928 +95.3494 -17.6679 52.1378 +95.5547 -18.0646 53.3084 +95.8313 -18.4803 54.5352 +95.3252 -18.748 55.325 +95.4054 -19.1333 56.4621 +95.5563 -19.5378 57.6556 +95.1052 -19.8222 58.4948 +95.2298 -20.2295 59.6967 +95.3393 -20.639 60.9052 +94.7745 -20.9052 61.6909 +94.9397 -21.3355 62.9607 +94.9259 -21.7311 64.128 +94.9786 -22.147 65.3555 +95.0159 -22.5649 66.5887 +95.1175 -23.004 67.8844 +95.2024 -23.4454 69.1869 +95.1129 -23.8494 70.3792 +95.2434 -24.3147 71.7522 +95.1227 -24.7219 72.9538 +95.2185 -25.1915 74.3397 +95.2193 -25.6429 75.6717 +95.2028 -26.0962 77.0094 +94.4896 -26.3619 77.7933 +94.9676 -26.9657 79.5754 +94.9739 -27.4455 80.991 +94.224 -27.7104 81.7728 +94.8566 -28.3891 83.7758 +94.6614 -28.8305 85.0781 +94.4493 -29.2728 86.3835 +94.2917 -29.7387 87.7583 +94.6816 -30.3875 89.6728 +94.4125 -30.8346 90.9923 +94.1262 -31.2825 92.3141 +94.5111 -31.964 94.3252 +94.2522 -32.4387 95.7261 +94.5151 -33.1037 97.6885 +94.1467 -33.5579 99.0286 +93.6945 -33.9886 100.3 +93.8164 -34.6372 102.214 +93.3906 -35.0939 103.561 +92.3043 -35.3051 104.185 +92.3586 -35.9585 106.113 +92.2584 -36.5651 107.903 +92.9414 -37.5 110.662 +92.9649 -38.1891 112.695 +92.9579 -38.8807 114.736 +92.9202 -39.5752 116.786 +92.376 -40.0663 118.235 +92.9876 -41.0763 121.215 +92.5641 -41.6489 122.905 +103.932 -47.6377 140.578 +104.502 -48.7998 144.007 +101.326 -48.2128 142.275 +100.508 -48.7356 143.818 +97.1636 -48.0193 141.704 +95.0483 -47.8835 141.303 +91.835 -47.1681 139.192 +91.2282 -47.7792 140.995 +88.4835 -47.2625 139.471 +87.9564 -47.9233 141.421 +85.6 -47.5844 140.421 +85.337 -48.4089 142.854 +83.5327 -48.3652 142.725 +83.2642 -49.218 145.241 +80.4205 -48.5424 143.248 +80.6675 -49.7337 146.763 +77.5416 -48.8425 144.133 +77.1476 -49.6609 146.548 +74.0847 -48.75 143.86 +73.2299 -49.2745 145.408 +69.4784 -47.8196 141.115 +69.3782 -48.8595 144.183 +68.047 -49.0517 144.751 +67.4683 -49.7999 146.958 +65.5647 -49.5733 146.29 +64.2143 -49.7549 146.826 +62.5593 -49.6949 146.649 +61.9021 -50.4356 148.835 +59.955 -50.1275 147.925 +58.4846 -50.2033 148.149 +56.8437 -50.124 147.915 +55.679 -50.4629 148.915 +51.57 -48.0677 141.847 +50.3245 -48.2712 142.447 +48.2994 -47.7083 140.786 +47.0003 -47.8418 141.18 +45.1714 -47.4191 139.933 +44.136 -47.8209 141.119 +42.3379 -47.3873 139.839 +41.4219 -47.9371 141.461 +39.5993 -47.4313 139.969 +38.6336 -47.9442 141.482 +36.9173 -47.5212 140.234 +35.9739 -48.0908 141.915 +34.1026 -47.4082 139.901 +33.0936 -47.9092 141.379 +31.3947 -47.4034 139.886 +30.4435 -48.0244 141.719 +29.022 -47.9185 141.407 +27.8274 -48.1874 142.2 +26.3077 -47.8841 141.305 +25.0542 -48.051 141.798 +23.6529 -47.9291 141.438 +22.3931 -48.0889 141.909 +20.695 -47.2599 139.463 +19.6964 -48.0161 141.694 +18.1951 -47.5597 140.348 +17.0824 -48.1191 141.998 +15.6479 -47.7821 141.004 +14.511 -48.3672 142.731 +13.0385 -47.8305 141.147 +11.8473 -48.3132 142.571 +10.4495 -47.9602 141.53 +9.20001 -48.276 142.462 +7.82946 -47.9474 141.492 +6.54727 -48.1277 142.024 +5.20351 -47.8235 141.126 +3.92131 -48.061 141.827 +2.61088 -48.0058 141.664 +1.31771 -48.4606 143.006 +9.22129e-15 -48.3341 142.633 +-1.31422 -48.3322 142.627 +-2.61961 -48.1663 142.138 +-3.9501 -48.4137 142.868 +-5.20351 -47.8235 141.126 +-6.63451 -48.769 143.916 +-7.86086 -48.1396 142.059 +-9.24885 -48.5321 143.217 +-10.5193 -48.2805 142.475 +-11.8552 -48.345 142.665 +-13.0821 -47.9904 141.619 +-14.4727 -48.2394 142.354 +-15.6897 -47.9098 141.381 +-17.1616 -48.3421 142.657 +-18.3657 -48.0058 141.664 +-19.7878 -48.2388 142.352 +-20.9734 -47.8954 141.338 +-22.4522 -48.216 142.284 +-23.7155 -48.0562 141.813 +-25.0707 -48.0828 141.891 +-26.3772 -48.0106 141.678 +-27.9549 -48.4082 142.852 +-29.1365 -48.1075 141.964 +-30.5033 -48.1184 141.997 +-31.8105 -48.0315 141.74 +-33.3317 -48.2539 142.396 +-34.4175 -47.846 141.192 +-36.0673 -48.2157 142.284 +-37.3044 -48.0196 141.705 +-38.8339 -48.1929 142.216 +-40.1428 -48.0822 141.89 +-41.9564 -48.5556 143.287 +-43.0821 -48.2202 142.297 +-44.7324 -48.467 143.025 +-45.9901 -48.2786 142.469 +-47.6318 -48.4846 143.077 +-49.0101 -48.4105 142.858 +-50.6101 -48.5453 143.256 +-52.0258 -48.4927 143.101 +-53.7763 -48.7385 143.826 +-55.0994 -48.5857 143.376 +-56.9437 -48.8807 144.246 +-58.3781 -48.8091 144.035 +-60.3261 -49.1515 145.045 +-61.9225 -49.1888 145.155 +-63.9081 -49.5177 146.126 +-65.1349 -49.2482 145.33 +-68.9437 -50.8888 150.172 +-70.9349 -51.1334 150.894 +-73.6081 -51.8382 152.973 +-74.6344 -51.3683 151.587 +-77.5781 -52.2002 154.042 +-78.6438 -51.7502 152.714 +-81.2526 -52.3035 154.347 +-82.1723 -51.7592 152.74 +-85.285 -52.5805 155.164 +-85.8194 -51.8013 152.865 +-88.0835 -52.0667 153.648 +-89.205 -51.6495 152.417 +-88.9317 -50.4478 148.871 +-90.3 -50.1969 148.13 +-93.3871 -50.8824 150.153 +-95.9516 -51.2515 151.242 +-100.006 -52.3764 154.562 +-100.738 -51.7406 152.686 +-102.893 -51.8353 152.965 +-103.863 -51.3298 151.473 +-105.972 -51.385 151.636 +-106.414 -50.634 149.42 +-108.297 -50.572 149.237 +-110.413 -50.6086 149.345 +-113.469 -51.0551 150.663 +-114.324 -50.5018 149.03 +-117.478 -50.9536 150.363 +-118.196 -50.3406 148.554 +-123.213 -51.5355 152.08 +-124.979 -51.3401 151.504 +-128.798 -51.9678 153.356 +-129.64 -51.3805 151.623 +-132.559 -51.61 152.3 +-134.471 -51.4331 151.778 +-137.618 -51.7136 152.606 +-138.625 -51.1809 151.034 +-139.482 -50.5984 149.315 +-139.581 -49.7527 146.819 +-140.05 -49.0524 144.753 +-140.287 -48.2824 142.481 +-140.011 -47.3523 139.736 +-140.599 -46.7275 137.892 +-140.182 -45.7826 135.104 +-141.068 -45.2749 133.605 +-141.509 -44.6304 131.703 +-141.854 -43.9651 129.74 +-141.448 -43.0799 127.128 +-141.517 -42.354 124.986 +-140.82 -41.4139 122.212 +-140.9 -40.7172 120.156 +-140.729 -39.9594 117.919 +-140.451 -39.185 115.634 +-148.431 -40.6867 120.066 +-152.826 -41.1565 121.452 +-172.921 -45.7489 135.004 +-219.621 -57.0785 168.438 +-222.965 -56.9206 167.972 +-153.11 -38.3922 113.295 +-141.852 -34.9337 103.089 +-141.199 -34.1487 100.772 +-143.087 -33.9809 100.277 +-140.769 -32.8245 96.8645 +-141.005 -32.2799 95.2573 +-142.451 -32.0125 94.4682 +-146.282 -32.2667 95.2184 +-145.745 -31.5507 93.1055 +-266.176 -56.5432 166.858 +-271.897 -56.6697 167.231 +-276.464 -56.5268 166.81 +-280.958 -56.3455 166.274 +-289.557 -56.9486 168.054 +-293.323 -56.565 166.922 +-300.709 -56.8491 167.76 +-301.204 -55.8121 164.7 +-311.239 -56.5153 166.775 +-318.362 -56.6372 167.135 +-329.996 -57.5044 169.694 +-332.783 -56.789 167.583 +-342.031 -57.144 168.631 +-347.403 -56.8105 167.647 +-354.752 -56.7663 167.516 +-359.338 -56.2489 165.989 +-372.858 -57.0779 168.436 +-377.749 -56.5333 166.829 +-389.372 -56.9505 168.06 +-392.916 -56.1449 165.683 +-410.018 -57.2181 168.85 +-416.713 -56.7698 167.527 +-432.191 -57.455 169.549 +-437.538 -56.7354 167.425 +-452.09 -57.1546 168.662 +-453.16 -55.8288 164.75 +-452.6 -54.3101 160.268 +-403.316 -47.1129 139.029 +-401.565 -45.6388 134.679 +-404.398 -44.6898 131.879 +-403.417 -43.3213 127.84 +-403.723 -42.1007 124.238 +-383.203 -38.7777 114.432 +-379.079 -37.1961 109.765 +-376.72 -35.8141 105.687 +-377.872 -34.7752 102.621 +-376.78 -33.5354 98.9623 +-376.325 -32.3627 95.5016 +-3171.94 -263.276 776.924 +-379.774 -30.3896 89.679 +-3185.78 -245.47 724.376 +-3192.33 -236.538 698.018 +-3198.64 -227.588 671.607 +-379.423 -25.8837 76.3824 +-378.545 -24.7177 72.9415 +-379.693 -23.6872 69.9005 +-378.258 -22.5001 66.3973 +-378.068 -21.3952 63.1369 +-378.635 -20.3356 60.0099 +-380.458 -19.3396 57.0708 +-378.299 -18.1452 53.5462 +-376.995 -17.0046 50.1803 +-379.228 -16.0235 47.2851 +-380.145 -14.9804 44.2068 +-3255.24 -119.034 351.267 +-3258.35 -109.913 324.35 +-3261.22 -100.782 297.407 +-3263.83 -91.6448 270.442 +-3266.2 -82.5005 243.457 +-3268.32 -73.3494 216.453 +-3270.19 -64.1929 189.432 +-3271.81 -55.0316 162.397 +-3273.18 -45.866 135.35 +-3274.3 -36.697 108.292 +-3275.18 -27.5252 81.2265 +-3275.8 -18.3513 54.1544 +-3276.18 -9.176 27.0782 +95.3 0 0 +95.2964 -0.259791 0.79002 +95.2855 -0.519561 1.57998 +95.2673 -0.779293 2.36982 +95.4418 -1.04115 3.16611 +95.4091 -1.30129 3.95718 +95.3691 -1.56132 4.74795 +95.3219 -1.82125 5.53837 +95.2674 -2.08103 6.32836 +95.2056 -2.34065 7.11787 +96.0332 -2.6246 7.98135 +95.9562 -2.88629 8.77714 +95.8719 -3.14774 9.57223 +95.8797 -3.41252 10.3774 +95.6814 -3.66996 11.1603 +95.5753 -3.93064 11.953 +96.3531 -4.23016 12.8638 +96.0334 -4.48344 13.634 +96.1021 -4.75484 14.4594 +95.6697 -5.00115 15.2084 +95.4279 -5.25634 15.9844 +95.0807 -5.5049 16.7403 +95.1197 -5.7758 17.5641 +94.7587 -6.02243 18.3141 +94.7825 -6.29349 19.1384 +94.6031 -6.55164 19.9234 +95.2934 -6.87252 20.8992 +95.0978 -7.13205 21.6884 +94.992 -7.39858 22.4989 +95.5562 -7.71981 23.4758 +95.3369 -7.97999 24.267 +95.1103 -8.23958 25.0564 +95.7417 -8.57605 26.0796 +95.3067 -8.81896 26.8183 +96.1086 -9.17892 27.9129 +95.8486 -9.44055 28.7085 +95.391 -9.68217 29.4433 +95.1169 -9.94186 30.233 +95.6865 -10.2923 31.2987 +95.3953 -10.5528 32.0907 +95.8486 -10.8979 33.1402 +96.2899 -11.2463 34.1996 +95.9721 -11.5083 34.9966 +95.6469 -11.7695 35.7908 +96.3344 -12.1585 36.9738 +95.9911 -12.4207 37.771 +95.7325 -12.6941 38.6024 +95.466 -12.967 39.4325 +96.105 -13.3665 40.6474 +95.7279 -13.628 41.4425 +96.1593 -14.0073 42.5958 +95.5838 -14.242 43.3095 +95.9013 -14.6115 44.4334 +95.4895 -14.8724 45.2267 +95.9614 -15.274 46.4479 +96.152 -15.6359 47.5486 +95.6232 -15.8828 48.2994 +96.0547 -16.292 49.5435 +95.5085 -16.538 50.2918 +95.8262 -16.9362 51.5026 +95.3494 -17.1968 52.2951 +95.5547 -17.5829 53.4692 +95.7456 -17.9714 54.6508 +95.3252 -18.248 55.4919 +95.4054 -18.6231 56.6325 +95.6406 -19.0335 57.8806 +95.0214 -19.2765 58.6195 +95.2298 -19.69 59.8768 +95.3393 -20.0886 61.089 +95.3514 -20.4716 62.2536 +94.7759 -20.7307 63.0417 +95.0887 -21.1878 64.4318 +94.9786 -21.5564 65.5526 +95.0159 -21.9632 66.7896 +95.1175 -22.3905 68.0892 +95.1231 -22.8011 69.3377 +95.1129 -23.2134 70.5915 +95.2434 -23.6663 71.9686 +95.1227 -24.0626 73.1739 +95.1413 -24.4998 74.5035 +95.1427 -24.939 75.839 +95.1268 -25.38 77.1801 +95.0934 -25.8228 78.5266 +95.0425 -26.2673 79.8785 +94.8996 -26.6926 81.1718 +94.8876 -27.1614 82.5972 +94.1252 -27.419 83.3807 +94.6614 -28.0616 85.3348 +94.4493 -28.4922 86.6441 +94.2917 -28.9456 88.0231 +94.823 -29.6212 90.0776 +94.6228 -30.0791 91.4701 +94.1957 -30.4708 92.6611 +93.9604 -30.9303 94.0585 +94.3204 -31.5965 96.0842 +94.5151 -32.2209 97.9832 +94.1467 -32.6629 99.3274 +94.3571 -33.3161 101.314 +93.8164 -33.7135 102.522 +93.7803 -34.3008 104.308 +92.5614 -34.4592 104.79 +92.5494 -35.0717 106.652 +92.7618 -35.784 108.818 +92.8792 -36.4756 110.922 +92.3492 -36.9245 112.287 +92.897 -37.8192 115.007 +92.9202 -38.5198 117.138 +92.9113 -39.2236 119.278 +92.8701 -39.9306 121.428 +92.0995 -40.3348 122.657 +107.374 -47.9026 145.671 +107.221 -48.7342 148.2 +104.961 -48.6102 147.823 +103.433 -48.8163 148.45 +100.486 -48.3368 146.991 +99.6153 -48.846 148.54 +94.5906 -47.2879 143.801 +93.5795 -47.7036 145.066 +91.3163 -47.475 144.37 +91.0524 -48.2872 146.84 +88.35 -47.8033 145.369 +87.8484 -48.5043 147.501 +86.1992 -48.578 147.725 +85.1251 -48.976 148.935 +82.9087 -48.7098 148.126 +82.376 -49.4327 150.324 +79.7207 -48.876 148.631 +78.7985 -49.3708 150.136 +76.1889 -48.7976 148.393 +75.2103 -49.2574 149.791 +72.0142 -48.2431 146.706 +70.9125 -48.608 147.816 +68.4538 -48.0291 146.056 +67.588 -48.5577 147.663 +66.5806 -48.9988 149.004 +65.5919 -49.467 150.428 +63.6082 -49.1806 149.557 +62.8916 -49.8753 151.67 +60.8509 -49.5198 150.589 +59.7104 -49.8888 151.711 +57.8014 -49.6092 150.861 +56.9475 -50.2361 152.767 +53.0025 -48.0854 146.227 +51.6572 -48.2281 146.661 +49.1028 -47.2085 143.56 +48.2332 -47.7874 145.32 +46.1947 -47.2001 143.535 +45.2152 -47.6836 145.005 +43.1648 -47.0245 143.001 +41.9297 -47.2307 143.628 +40.5311 -47.2526 143.694 +39.3597 -47.5428 144.577 +37.5463 -47.042 143.054 +36.6976 -47.7502 145.207 +34.7324 -46.9961 142.914 +33.6564 -47.4244 144.217 +31.9768 -46.9948 142.91 +31.2011 -47.9067 145.683 +29.3273 -47.1313 143.326 +28.2647 -47.6396 144.871 +26.6376 -47.1919 143.51 +25.5989 -47.7864 145.318 +24.044 -47.4225 144.211 +22.8513 -47.7642 145.25 +21.2517 -47.2369 143.647 +20.1663 -47.8505 145.512 +18.5729 -47.2526 143.694 +17.4899 -47.9532 145.825 +15.8361 -47.067 143.13 +14.8273 -48.1035 146.282 +13.3261 -47.5818 144.695 +12.0435 -47.8033 145.369 +10.596 -47.3356 143.947 +9.38927 -47.9551 145.831 +7.9289 -47.2613 143.721 +6.69558 -47.9054 145.68 +5.30123 -47.4222 144.21 +4.02601 -48.0282 146.053 +2.65975 -47.6002 144.751 +1.34214 -48.0429 146.097 +9.3315e-15 -47.6074 144.773 +-1.34214 -48.0429 146.097 +-2.65975 -47.6002 144.751 +-4.04434 -48.2469 146.718 +-5.32915 -47.6721 144.97 +-6.7392 -48.2175 146.629 +-7.9446 -47.355 144.006 +-9.432 -48.1735 146.495 +-10.7076 -47.8342 145.463 +-12.1219 -48.1147 146.316 +-13.2825 -47.4262 144.222 +-14.8178 -48.0722 146.187 +-15.9824 -47.5018 144.452 +-17.5691 -48.1703 146.485 +-18.7069 -47.5937 144.731 +-20.2968 -48.1603 146.455 +-21.4048 -47.5771 144.681 +-23.0878 -48.2584 146.753 +-24.1378 -47.6074 144.773 +-25.7474 -48.0638 146.161 +-26.7071 -47.3147 143.883 +-28.4287 -47.9161 145.712 +-29.48 -47.3766 144.071 +-31.3406 -48.121 146.335 +-32.3719 -47.5756 144.676 +-34.046 -47.9732 145.886 +-34.9574 -47.3003 143.839 +-37.1178 -48.2969 146.87 +-37.7398 -47.2844 143.791 +-40.0107 -48.329 146.968 +-40.9193 -47.7052 145.071 +-43.0521 -48.4949 147.472 +-43.9642 -47.8951 145.648 +-46.0957 -48.612 147.828 +-46.721 -47.738 145.17 +-48.985 -48.5321 147.585 +-49.7517 -47.8323 145.457 +-52.0697 -48.6133 147.832 +-52.8397 -47.9379 145.778 +-55.1115 -48.6164 147.842 +-55.9203 -47.9948 145.951 +-58.3445 -48.7476 148.241 +-59.1665 -48.1491 146.42 +-61.8654 -49.0613 149.194 +-62.5968 -48.3984 147.179 +-65.5154 -49.4093 150.253 +-66.6587 -49.0563 149.179 +-71.2166 -51.1645 155.59 +-72.4805 -50.8543 154.647 +-75.4327 -51.7065 157.239 +-76.4939 -51.2442 155.833 +-79.1279 -51.8231 157.593 +-79.7835 -51.1002 155.395 +-83.2605 -52.1667 158.638 +-83.852 -51.4088 156.333 +-87.3167 -52.3975 159.34 +-87.5095 -51.4126 156.345 +-90.517 -52.0783 158.369 +-90.9018 -51.2283 155.784 +-91.2461 -50.3805 153.206 +-91.65 -49.5886 150.798 +-96.28 -51.0596 155.271 +-97.3422 -50.6079 153.898 +-101.939 -51.9652 158.025 +-102.645 -51.3145 156.046 +-104.988 -51.4807 156.552 +-105.279 -50.6422 154.002 +-108.345 -51.1349 155.5 +-108.428 -50.2158 152.705 +-110.732 -50.3305 153.054 +-112.134 -50.0265 152.13 +-115.502 -50.5838 153.824 +-116.44 -50.0646 152.246 +-120.154 -50.7247 154.253 +-121.567 -50.3951 153.251 +-126.318 -51.4251 156.383 +-127.38 -50.9309 154.88 +-130.79 -51.3642 156.197 +-131.717 -50.8115 154.517 +-135.548 -51.3663 156.204 +-136.785 -50.9231 154.856 +-140.346 -51.3323 156.101 +-140.462 -50.476 153.497 +-140.74 -49.6935 151.117 +-140.584 -48.7742 148.321 +-140.455 -47.8823 145.609 +-140.56 -47.0864 143.189 +-139.736 -45.999 139.882 +-139.835 -45.2342 137.556 +-140.602 -44.6954 135.918 +-140.926 -44.0231 133.873 +-141.723 -43.5061 132.301 +-141.782 -42.7708 130.065 +-141.593 -41.9742 127.643 +-140.859 -41.0327 124.78 +-140.82 -40.3095 122.58 +-140.975 -39.6522 120.582 +-142.376 -39.3492 119.66 +-143.244 -38.8981 118.288 +-162.423 -43.3346 131.78 +-163.167 -42.7698 130.062 +-221.225 -56.9677 173.238 +-222.808 -56.3623 171.397 +-228.678 -56.8225 172.796 +-157.996 -38.5608 117.263 +-141.852 -34.0021 103.4 +-141.358 -33.2755 101.19 +-143.087 -33.0747 100.579 +-141.578 -32.1325 97.7143 +-141.005 -31.419 95.5446 +-142.205 -31.105 94.5898 +-145.541 -31.2469 95.0212 +-148.149 -31.2159 94.927 +-272.764 -56.3976 171.504 +-275.671 -55.924 170.064 +-283.633 -56.446 171.651 +-285.623 -55.7535 169.545 +-296.037 -56.6703 172.333 +-296.58 -55.6679 169.285 +-306.568 -56.411 171.545 +-306.746 -55.3233 168.237 +-322.815 -57.0539 173.5 +-325.621 -56.3839 171.462 +-338.784 -57.4616 174.74 +-340.994 -56.6385 172.236 +-351.168 -57.1058 173.658 +-351.591 -55.9621 170.18 +-362.448 -56.451 171.666 +-365.18 -55.6388 169.197 +-380.44 -56.6853 172.379 +-383.459 -55.8575 169.862 +-399.746 -56.9087 173.058 +-402.508 -55.9818 170.24 +-419.28 -56.9502 173.185 +-424.905 -56.342 171.335 +-440.783 -57.0346 173.441 +-443.287 -55.9478 170.136 +-451.159 -55.5157 168.822 +-453.627 -54.3959 165.417 +-403.425 -47.1182 143.286 +-402.001 -45.7069 138.994 +-402.602 -44.5364 135.434 +-401.845 -43.2234 131.442 +-402.279 -42.0473 127.865 +-404.484 -41.0552 124.848 +-383.013 -37.7245 114.72 +-379.844 -36.2772 110.318 +-377.487 -34.9299 106.221 +-379.602 -34.0028 103.402 +-378.899 -32.8248 99.8194 +-377.967 -31.6371 96.2077 +-3171.94 -256.255 779.268 +-3178.98 -247.599 752.943 +-379.808 -28.4844 86.6206 +-3192.33 -230.23 700.124 +-3198.64 -221.519 673.634 +-378.641 -25.1415 76.4549 +-379.721 -24.1333 73.3889 +-378.81 -23.0019 69.9483 +-378.848 -21.9342 66.7014 +-379.545 -20.906 63.5748 +-378.536 -19.7881 60.1752 +-379.075 -18.7554 57.0349 +-377.903 -17.6429 53.6516 +-376.104 -16.512 50.2127 +-377.443 -15.5228 47.2045 +-379.748 -14.5656 44.2938 +-3255.24 -115.86 352.327 +-3258.35 -106.981 325.328 +-3261.22 -98.0947 298.304 +-3263.83 -89.2008 271.258 +-3266.2 -80.3003 244.192 +-3268.32 -71.3933 217.106 +-3270.19 -62.481 190.003 +-3271.81 -53.564 162.887 +-3273.18 -44.6429 135.758 +-3274.3 -35.7184 108.619 +-3275.18 -26.7912 81.4715 +-3275.8 -17.8619 54.3178 +-3276.18 -8.9313 27.1599 +95.3 0 0 +95.2964 -0.252652 0.792332 +95.2855 -0.505284 1.5846 +95.2673 -0.757878 2.37675 +95.4418 -1.01254 3.17537 +95.4091 -1.26553 3.96876 +95.3691 -1.51842 4.76185 +95.3219 -1.7712 5.55458 +95.2674 -2.02384 6.34688 +96.1028 -2.29778 7.20598 +95.2362 -2.53129 7.93828 +95.9562 -2.80697 8.80283 +95.8719 -3.06124 9.60024 +95.8797 -3.31874 10.4078 +95.7807 -3.57281 11.2046 +95.5753 -3.82263 11.988 +94.5706 -4.03781 12.6628 +95.3411 -4.32879 13.5753 +95.2132 -4.5814 14.3675 +95.6697 -4.86372 15.2529 +95.4279 -5.1119 16.0312 +95.2774 -5.36469 16.824 +95.1197 -5.61709 17.6155 +94.9547 -5.86906 18.4057 +94.5869 -6.10794 19.1548 +95.4817 -6.43078 20.1673 +95.2934 -6.68367 20.9604 +95.0978 -6.93606 21.7519 +94.992 -7.19527 22.5648 +95.5562 -7.50766 23.5445 +95.3369 -7.7607 24.338 +95.1103 -8.01316 25.1297 +95.5494 -8.32364 26.1034 +95.4984 -8.59387 26.9509 +95.9174 -8.90891 27.9389 +95.6578 -9.16286 28.7353 +95.391 -9.41611 29.5295 +95.9704 -9.75539 30.5935 +95.8756 -10.0292 31.4523 +96.1494 -10.3439 32.439 +95.7547 -10.588 33.2047 +96.2899 -10.9372 34.2997 +95.9721 -11.1921 35.099 +95.6469 -11.4461 35.8956 +96.3344 -11.8244 37.082 +95.9911 -12.0793 37.8815 +95.7325 -12.3452 38.7154 +95.466 -12.6107 39.5479 +95.9223 -12.9745 40.6888 +95.5459 -13.2283 41.4848 +95.3436 -13.5068 42.3581 +95.5838 -13.8506 43.4363 +95.9013 -14.21 44.5635 +96.3844 -14.5993 45.7842 +95.9614 -14.8543 46.5838 +96.152 -15.2063 47.6878 +95.7998 -15.4749 48.5302 +95.3517 -15.7283 49.3247 +95.5085 -16.0836 50.439 +95.9132 -16.4858 51.7003 +95.436 -16.7394 52.4957 +95.5547 -17.0997 53.6257 +95.8313 -17.4932 54.8598 +95.4104 -17.7625 55.7042 +95.4054 -18.1113 56.7982 +94.8815 -18.3636 57.5893 +95.0214 -18.7468 58.791 +95.063 -19.1154 59.9469 +95.3393 -19.5365 61.2678 +94.7745 -19.7885 62.0581 +94.7759 -20.161 63.2262 +94.9259 -20.5703 64.5097 +94.9786 -20.964 65.7445 +94.9355 -21.3415 66.9284 +95.1175 -21.7753 68.2885 +95.0437 -22.156 69.4826 +95.1917 -22.5942 70.8568 +95.2434 -23.0159 72.1793 +95.2004 -23.4205 73.448 +94.524 -23.672 74.2368 +94.4533 -24.0779 75.5097 +94.5185 -24.5247 76.9109 +95.1689 -25.1331 78.8189 +95.0425 -25.5455 80.1122 +94.9739 -25.9795 81.4731 +94.9613 -26.4355 82.9033 +94.7103 -26.8313 84.1445 +94.4437 -27.2277 85.3878 +94.5212 -27.7303 86.9639 +94.1491 -28.1076 88.1471 +93.9745 -28.5495 89.5329 +94.6228 -29.2526 91.7378 +94.1957 -29.6334 92.9322 +94.6488 -30.3007 95.0249 +94.3204 -30.7282 96.3654 +93.9746 -31.1562 97.7078 +94.2136 -31.7881 99.6895 +93.827 -32.2186 101.04 +94.0789 -32.8788 103.11 +93.9102 -33.4044 104.758 +93.397 -33.8148 106.045 +93.4399 -34.4364 107.995 +92.6989 -34.7772 109.063 +92.5679 -35.3545 110.874 +92.9649 -36.1492 113.366 +92.9579 -36.8039 115.419 +92.9202 -37.4613 117.481 +92.6139 -38.0239 119.245 +92.5762 -38.7102 121.398 +92.5641 -39.4242 123.637 +109.897 -47.6815 149.532 +110.506 -48.8471 153.188 +107.085 -48.2316 151.257 +106.689 -48.9696 153.571 +103.536 -48.4352 151.896 +103.215 -49.2202 154.357 +99.3069 -48.2812 151.413 +98.3865 -48.7757 152.964 +93.0674 -47.0556 147.569 +92.9303 -47.9287 150.307 +90.5 -47.621 149.342 +90.1628 -48.4142 151.83 +88.0414 -48.2529 151.324 +88.1312 -49.3123 154.646 +85.0213 -48.5783 152.344 +84.8694 -49.5295 155.327 +81.7637 -48.7508 152.886 +81.1634 -49.4553 155.095 +78.2492 -48.7402 152.852 +77.535 -49.3846 154.873 +74.5921 -48.5968 152.402 +74.0227 -49.3457 154.751 +69.674 -47.5417 149.094 +69.183 -48.3377 151.59 +67.5574 -48.3513 151.633 +68.0028 -49.8758 156.413 +65.3314 -49.1248 154.058 +64.5409 -49.7768 156.103 +62.1768 -49.2084 154.32 +61.7065 -50.1398 157.241 +59.3063 -49.5021 155.242 +58.6499 -50.316 157.794 +56.3233 -49.6941 155.844 +53.561 -48.6314 152.511 +50.617 -47.3269 148.42 +49.6465 -47.8361 150.017 +47.3642 -47.065 147.599 +46.7205 -47.9172 150.271 +44.3225 -46.9587 147.265 +43.5599 -47.7185 149.648 +41.411 -46.9517 147.243 +40.9872 -48.1481 150.995 +38.7801 -47.2525 148.187 +37.8415 -47.8853 150.171 +35.8347 -47.155 147.881 +34.8251 -47.7228 149.661 +32.9332 -47.0705 147.616 +32.1381 -47.9895 150.498 +30.0524 -46.9693 147.299 +29.3764 -48.1526 151.01 +27.3496 -47.1216 147.776 +26.4571 -48.0314 150.629 +24.5602 -47.1094 147.738 +23.546 -47.8637 150.104 +21.8502 -47.2324 148.124 +20.7928 -47.9813 150.472 +19.1335 -47.3412 148.465 +18.1465 -48.3863 151.742 +16.3378 -47.2239 148.097 +15.2395 -48.0819 150.788 +13.7357 -47.6966 149.58 +12.475 -48.1554 151.018 +10.9169 -47.429 148.74 +9.75556 -48.4568 151.963 +8.19058 -47.4797 148.899 +6.9791 -48.5619 152.293 +5.46177 -47.5159 149.013 +4.16737 -48.3483 151.623 +2.72083 -47.3552 148.509 +1.38752 -48.3024 151.479 +9.58254e-15 -47.5447 149.103 +-1.39014 -48.3936 151.765 +-2.72781 -47.4767 148.89 +-4.15952 -48.2575 151.338 +-5.45479 -47.4551 148.822 +-6.94421 -48.3188 151.531 +-8.23245 -47.7222 149.66 +-9.79219 -48.6387 152.534 +-11.0285 -47.9139 150.261 +-12.5142 -48.3067 151.493 +-13.6835 -47.5153 149.011 +-15.3449 -48.4145 151.831 +-16.4946 -47.6772 149.519 +-18.2031 -48.537 152.215 +-19.2675 -47.6729 149.505 +-21.0408 -48.5537 152.267 +-22.045 -47.6535 149.444 +-23.9008 -48.585 152.365 +-24.8574 -47.6796 149.526 +-26.6882 -48.4507 151.944 +-27.6448 -47.6301 149.371 +-29.5222 -48.3914 151.758 +-30.434 -47.566 149.17 +-32.3574 -48.317 151.525 +-33.1619 -47.3974 148.641 +-35.3879 -48.4938 152.079 +-36.2171 -47.6584 149.459 +-38.215 -48.358 151.654 +-39.0462 -47.5769 149.204 +-41.4129 -48.6481 152.563 +-42.084 -47.7149 149.637 +-44.4417 -48.6846 152.678 +-45.1494 -47.8349 150.013 +-47.4022 -48.6162 152.463 +-47.9782 -47.6754 149.513 +-50.3081 -48.4735 152.016 +-51.1114 -47.7893 149.87 +-53.6562 -48.718 152.783 +-54.2397 -47.8555 150.078 +-57.1811 -49.0558 153.842 +-57.6646 -48.1317 150.944 +-60.3407 -49.03 153.761 +-61.1376 -48.386 151.741 +-63.9545 -49.3244 154.684 +-64.5822 -48.5613 152.291 +-69.8015 -51.1952 160.551 +-70.6051 -50.5326 158.473 +-73.968 -51.681 162.075 +-74.6362 -50.9279 159.713 +-77.9623 -51.972 162.987 +-78.776 -51.3228 160.951 +-81.5819 -51.962 162.956 +-82.5014 -51.3887 161.158 +-85.4023 -52.038 163.194 +-86.6668 -51.6743 162.054 +-88.6557 -51.739 162.257 +-89.9038 -51.3678 161.092 +-91.8531 -51.3945 161.176 +-92.8895 -50.9099 159.657 +-93.9544 -50.4503 158.215 +-95.15 -50.0678 157.016 +-98.3609 -50.7298 159.092 +-100.226 -50.6754 158.921 +-103.925 -51.5215 161.574 +-104.288 -50.7031 159.008 +-107.352 -51.1934 160.545 +-107.512 -50.2954 157.729 +-111.16 -51.0217 160.007 +-110.552 -49.7932 156.154 +-114.414 -50.5745 158.605 +-114.715 -49.7716 156.087 +-119.451 -50.8756 159.549 +-119.791 -50.09 157.085 +-124.14 -50.9671 159.836 +-125.418 -50.5633 158.57 +-129.788 -51.3857 161.149 +-130.459 -50.7283 159.087 +-134.339 -51.3079 160.905 +-134.863 -50.5955 158.671 +-139.174 -51.2909 160.851 +-139.485 -50.5013 158.375 +-140.411 -49.9448 156.63 +-140.2 -48.9972 153.658 +-140.542 -48.2599 151.346 +-140.317 -47.3433 148.471 +-140.455 -46.5665 146.035 +-140.492 -45.7702 143.538 +-141.182 -45.1976 141.742 +-140.668 -44.2534 138.781 +-141.654 -43.7922 137.335 +-141.704 -43.0497 135.006 +-141.438 -42.2252 132.421 +-141.35 -41.4687 130.048 +-141.521 -40.7998 127.951 +-140.493 -39.8015 124.82 +-142.589 -39.6942 124.483 +-142.461 -38.9691 122.209 +-159.602 -42.8978 134.53 +-161.81 -42.7322 134.011 +-223.483 -57.9873 181.852 +-221.31 -56.416 176.924 +-230.021 -57.6051 180.653 +-231.745 -57.0121 178.793 +-239.713 -57.9274 181.664 +-238.216 -56.5415 177.317 +-141.376 -32.9566 103.354 +-141.358 -32.3611 101.486 +-143.167 -32.184 100.931 +-141.497 -31.2319 97.945 +-140.191 -30.3791 95.2707 +-141.468 -30.0935 94.3749 +-144.964 -30.2679 94.9219 +-147.403 -30.2052 94.7253 +-284.522 -57.212 179.42 +-283.555 -55.9424 175.439 +-293.585 -56.821 178.194 +-294.951 -55.9922 175.595 +-308.059 -57.3511 179.856 +-308.237 -56.2662 176.454 +-320.44 -57.3435 179.833 +-321.988 -56.4765 177.114 +-334.391 -57.4757 180.247 +-334.28 -56.2924 176.536 +-347.309 -57.2885 179.66 +-350.265 -56.5795 177.437 +-361.9 -57.2338 179.489 +-362.729 -56.1484 176.085 +-377.841 -57.2314 179.481 +-376.774 -55.8279 175.079 +-391 -56.6578 177.682 +-394.516 -55.8889 175.271 +-413.213 -57.2092 179.412 +-417.582 -56.4822 177.132 +-431.935 -57.057 178.934 +-438.344 -56.5269 177.272 +-450.761 -56.7229 177.886 +-451.817 -55.4575 173.918 +-455.067 -54.458 170.784 +-452.133 -52.727 165.355 +-402.394 -45.7064 143.338 +-403.88 -44.6586 140.052 +-405.242 -43.5966 136.721 +-401.278 -41.9764 131.64 +-402.563 -40.9207 128.33 +-402.963 -39.7769 124.743 +-383.49 -36.7337 115.199 +-380.036 -35.2983 110.697 +-377.679 -33.9874 106.586 +-379.025 -33.0182 103.547 +-379.285 -31.9552 100.214 +-3164.66 -257.613 807.89 +-3171.94 -249.213 781.548 +-3178.98 -240.795 755.147 +-379.516 -27.6804 86.8073 +-3192.33 -223.903 702.173 +-378.705 -25.5061 79.9887 +-378.152 -24.4191 76.5797 +-378.055 -23.3671 73.2807 +-380.577 -22.4741 70.4802 +-380.323 -21.4145 67.1571 +-379.939 -20.3526 63.8271 +-380.114 -19.3245 60.6029 +-379.964 -18.2828 57.3359 +-377.705 -17.149 53.7804 +-377.886 -16.1344 50.5984 +-378.236 -15.1279 47.4421 +-375.976 -14.0247 43.9822 +-3255.24 -112.676 353.358 +-3258.35 -104.042 326.281 +-3261.22 -95.3991 299.177 +-3263.83 -86.7496 272.052 +-3266.2 -78.0937 244.906 +-3268.32 -69.4314 217.741 +-3270.19 -60.764 190.56 +-3271.81 -52.092 163.364 +-3273.18 -43.4161 136.155 +-3274.3 -34.7368 108.937 +-3275.18 -26.055 81.71 +-3275.8 -17.3711 54.4768 +-3276.18 -8.68586 27.2394 +95.6 0 0 +95.3964 -0.24575 0.795413 +95.3855 -0.491481 1.59077 +95.3673 -0.737175 2.386 +95.5418 -0.984873 3.18771 +95.509 -1.23095 3.98419 +95.2693 -1.47385 4.77036 +96.32 -1.73902 5.62866 +96.2649 -1.98708 6.43153 +95.3053 -2.21414 7.16645 +96.1328 -2.48271 8.03574 +95.1599 -2.70479 8.75454 +96.0708 -2.98066 9.64744 +95.0848 -3.19795 10.3507 +95.88 -3.47517 11.248 +95.6744 -3.71817 12.0345 +96.4521 -4.00146 12.9514 +95.2422 -4.20175 13.5997 +95.1144 -4.44694 14.3933 +95.7683 -4.73076 15.3119 +95.6248 -4.97728 16.1098 +95.3757 -5.21804 16.8891 +95.2178 -5.46355 17.6837 +96.0326 -5.76747 18.6674 +94.8803 -5.95324 19.2687 +95.5794 -6.25492 20.2452 +95.4883 -6.50755 21.0628 +95.2923 -6.75327 21.8581 +95.8652 -7.05563 22.8368 +95.653 -7.30229 23.6352 +95.5301 -7.55607 24.4565 +95.2067 -7.79399 25.2266 +95.8378 -8.11215 26.2564 +95.5943 -8.35872 27.0545 +95.1523 -8.58741 27.7947 +95.9439 -8.92983 28.903 +95.4861 -9.15839 29.6428 +95.4014 -9.42274 30.4984 +95.781 -9.73543 31.5104 +95.4896 -9.98177 32.3078 +95.9426 -10.3082 33.3642 +96.3836 -10.6376 34.4305 +95.9721 -10.8749 35.1985 +95.74 -11.1325 36.0324 +96.4271 -11.5004 37.223 +96.0835 -11.7483 38.0256 +95.8246 -12.0069 38.8625 +96.383 -12.371 40.041 +96.1963 -12.6429 40.9208 +95.6369 -12.8657 41.6421 +96.2499 -13.2488 42.8821 +95.674 -13.4708 43.6007 +96.2608 -13.8591 44.8573 +95.579 -14.067 45.5304 +96.0505 -14.4467 46.7593 +96.4181 -14.8163 47.9555 +95.8881 -15.0502 48.7126 +96.2305 -15.4234 49.9206 +95.5959 -15.6421 50.6284 +95.9132 -16.0186 51.847 +96.2154 -16.3979 53.0746 +95.727 -16.6451 53.8748 +96.0027 -17.0279 55.1138 +95.4104 -17.2591 55.8622 +95.4902 -17.6137 57.0099 +94.9659 -17.859 57.8039 +95.1891 -18.2477 59.0618 +95.3131 -18.6225 60.2752 +95.5051 -19.0159 61.5484 +94.9393 -19.2612 62.3423 +94.8578 -19.6067 63.4604 +95.0073 -20.0045 64.7481 +95.0595 -20.3873 65.9871 +95.1767 -20.7894 67.2886 +95.1974 -21.176 68.5397 +95.3611 -21.6001 69.9124 +95.3493 -21.9903 71.1754 +95.3217 -22.3821 72.4435 +95.2004 -22.7568 73.6564 +95.2185 -23.1702 74.9944 +95.2959 -23.6043 76.3995 +94.5945 -23.8489 77.1911 +95.1689 -24.4209 79.0424 +95.1174 -24.8411 80.4027 +94.9739 -25.2432 81.7042 +94.9613 -25.6864 83.1384 +94.7834 -26.0911 84.4483 +94.7339 -26.5374 85.893 +94.5212 -26.9445 87.2106 +94.363 -27.3732 88.5981 +94.328 -27.8448 90.1246 +94.6928 -28.4446 92.0661 +94.3346 -28.8361 93.3332 +94.0981 -29.2708 94.74 +94.4568 -29.9005 96.7782 +94.2448 -30.3604 98.2668 +94.3474 -30.931 100.114 +94.092 -31.3942 101.613 +94.2757 -32.0141 103.619 +94.17 -32.5475 105.346 +93.4613 -32.8793 106.42 +93.7579 -33.5742 108.669 +93.8317 -34.2044 110.709 +93.5639 -34.7222 112.384 +92.4724 -34.9385 113.085 +92.5317 -35.5971 115.216 +92.5592 -36.2583 117.356 +92.7924 -37.0176 119.814 +92.9288 -37.7567 122.206 +92.4479 -38.2588 123.831 +112.995 -47.6359 154.182 +113.225 -48.6307 157.402 +110.161 -48.2106 156.042 +110.167 -49.1328 159.027 +106.477 -48.3995 156.654 +106.278 -49.2447 159.389 +102.857 -48.5902 157.271 +102.619 -49.4324 159.997 +96.8787 -47.5946 154.048 +96.5338 -48.3765 156.579 +92.35 -47.2173 152.827 +91.9355 -47.9671 155.254 +90.514 -48.2021 156.014 +90.6602 -49.2895 159.534 +87.5564 -48.6091 157.332 +87.3167 -49.5136 160.259 +83.8974 -48.6056 157.321 +83.9744 -49.7182 160.922 +80.5726 -48.765 157.836 +79.9029 -49.4504 160.055 +76.9165 -48.6912 157.598 +76.5938 -49.6128 160.581 +73.2533 -48.5678 157.198 +72.2932 -49.0794 158.854 +68.8078 -47.8508 154.877 +68.7682 -49.0079 158.623 +67.2419 -49.1287 159.014 +66.7765 -50.0414 161.968 +64.112 -49.3022 159.575 +63.5977 -50.212 162.52 +61.3584 -49.7636 161.069 +60.7195 -50.6152 163.825 +57.8535 -49.5977 160.532 +57.1783 -50.4446 163.273 +52.5638 -47.7546 154.566 +51.571 -48.2821 156.273 +49.06 -47.3687 153.317 +48.1122 -47.9461 155.186 +45.7282 -47.075 152.367 +45.1633 -48.0731 155.597 +42.9381 -47.3035 153.106 +42.0889 -48.0412 155.494 +40.2558 -47.6607 154.262 +39.2422 -48.2505 156.171 +37.0494 -47.372 153.328 +36.1454 -48.1283 155.776 +34.1807 -47.4688 153.641 +33.3543 -48.3939 156.635 +31.3118 -47.5509 153.907 +30.3604 -48.3553 156.51 +28.3394 -47.4434 153.559 +27.3319 -48.2133 156.051 +25.5301 -47.5822 154.008 +24.5807 -48.551 157.144 +22.6435 -47.5603 153.937 +21.6151 -48.4654 156.867 +19.7672 -47.5231 153.817 +18.6785 -48.3933 156.634 +16.9545 -47.6176 154.123 +15.8625 -48.6292 157.397 +14.1454 -47.7271 154.477 +12.9458 -48.5563 157.161 +11.2517 -47.4983 153.737 +10.1218 -48.8515 158.116 +8.47319 -47.7259 154.473 +7.20592 -48.7192 157.688 +5.6607 -47.8508 154.877 +4.33228 -48.8373 158.071 +2.83078 -47.8726 154.948 +1.44162 -48.7638 157.833 +9.91319e-15 -47.7914 154.685 +-1.44424 -48.8524 158.119 +-2.8238 -47.7546 154.566 +-4.32705 -48.7783 157.879 +-5.68862 -48.0869 155.642 +-7.21465 -48.7783 157.879 +-8.53076 -48.0503 155.523 +-10.1768 -49.1166 158.974 +-11.3982 -48.1167 155.738 +-13.1262 -49.2332 159.352 +-14.1802 -47.8449 154.858 +-16.0158 -49.0994 158.919 +-17.059 -47.9113 155.073 +-18.9389 -49.0682 158.818 +-19.9622 -47.9919 155.334 +-21.8892 -49.08 158.856 +-22.6435 -47.5603 153.937 +-24.7285 -48.8429 158.089 +-25.7022 -47.9027 155.046 +-27.6125 -48.7083 157.653 +-28.5825 -47.8502 154.876 +-30.4516 -48.5005 156.98 +-31.4644 -47.7826 154.657 +-33.3742 -48.4229 156.729 +-34.5965 -48.0465 155.511 +-36.6216 -48.7623 157.828 +-37.4768 -47.9184 155.096 +-39.8024 -48.9394 158.401 +-40.4493 -47.8897 155.004 +-42.8651 -48.927 158.361 +-43.6628 -48.102 155.691 +-46.2857 -49.2677 159.464 +-46.9135 -48.2953 156.316 +-49.1915 -49.0218 158.668 +-50.0248 -48.3004 156.333 +-52.7137 -49.3521 159.737 +-53.1509 -48.288 156.292 +-56.0043 -49.4088 159.92 +-56.5837 -48.5091 157.008 +-59.184 -49.3353 159.682 +-59.8535 -48.543 157.118 +-62.9323 -49.6866 160.819 +-63.5386 -48.8612 158.148 +-66.7765 -50.0414 161.968 +-67.8038 -49.539 160.342 +-70.7582 -50.426 163.213 +-72.7151 -50.568 163.672 +-74.4066 -50.514 163.497 +-76.9546 -51.0217 165.141 +-79.1649 -51.2782 165.971 +-80.4665 -50.9385 164.871 +-82.6151 -51.1289 165.488 +-84.6495 -51.2325 165.823 +-86.8747 -51.4353 166.479 +-88.0742 -51.0253 165.152 +-90.1795 -51.1369 165.513 +-90.9836 -50.5116 163.49 +-95.0977 -51.7021 167.343 +-94.6833 -50.4225 163.201 +-97.6968 -50.9733 164.984 +-96.9 -49.5437 160.357 +-102.167 -51.1997 165.717 +-101.463 -49.8466 161.337 +-107.478 -51.773 167.572 +-106.408 -50.2675 162.7 +-111.328 -51.585 166.964 +-110.725 -50.3307 162.904 +-115.079 -51.3234 166.117 +-114.97 -50.3153 162.854 +-119.285 -51.2337 165.827 +-119.247 -50.2716 162.713 +-124.212 -51.4043 166.379 +-124.846 -50.7242 164.178 +-129.909 -51.8244 167.739 +-129.872 -50.875 164.666 +-135.389 -52.0841 168.579 +-135.076 -51.0356 165.186 +-140.128 -52.0024 168.315 +-139.269 -50.7676 164.318 +-140.51 -50.3159 162.856 +-139.999 -49.2509 159.409 +-140.865 -48.6865 157.582 +-140.462 -47.6979 154.383 +-140.608 -46.9141 151.846 +-140.852 -46.1773 149.461 +-141.063 -45.4429 147.084 +-141.242 -44.7105 144.714 +-141.732 -44.0883 142.699 +-141.78 -43.3391 140.275 +-141.303 -42.4458 137.383 +-141.563 -41.7881 135.255 +-141.152 -40.946 132.529 +-141.134 -40.2322 130.219 +-142.101 -39.8062 128.84 +-141.883 -39.0562 126.412 +-159.915 -43.2561 140.006 +-159.628 -42.4275 137.324 +-225.211 -58.8168 190.371 +-223.998 -57.479 186.041 +-229.795 -57.9351 187.517 +-229.354 -56.8098 183.875 +-237.66 -57.8315 187.182 +-238.351 -56.9757 184.412 +-247.461 -58.1051 188.068 +-246.017 -56.7387 183.645 +-141.534 -32.0586 103.763 +-141.518 -31.4798 101.89 +-142.524 -31.1315 100.762 +-141.74 -30.3988 98.391 +-140.435 -29.5696 95.7072 +-140.894 -29.1221 94.2589 +-145.376 -29.4938 95.4617 +-148.066 -29.4813 95.4214 +-293.361 -57.3176 185.518 +-294.206 -56.3989 182.545 +-303.79 -57.1298 184.911 +-305.721 -56.3921 182.523 +-321.701 -58.1937 188.354 +-320.238 -56.8001 183.844 +-332.158 -57.7559 186.937 +-333.247 -56.7948 183.826 +-347.707 -58.0709 187.957 +-345.65 -56.5577 183.059 +-358.382 -57.4398 185.914 +-359.801 -56.473 182.785 +-375.915 -57.7657 186.969 +-374.846 -56.3797 182.483 +-390.46 -57.4666 186.001 +-391.694 -56.3939 182.529 +-405.441 -57.0858 184.768 +-410.104 -56.4509 182.713 +-430.867 -57.9629 187.607 +-431.011 -56.6466 183.347 +-447.434 -57.4294 185.881 +-449.943 -56.3783 182.478 +-453.163 -55.4092 179.341 +-455.155 -54.2839 175.699 +-403.801 -46.9537 151.974 +-403.213 -45.6894 147.882 +-402.394 -44.4112 143.745 +-404.068 -43.4135 140.515 +-403.922 -42.223 136.662 +-404.493 -41.1136 133.072 +-403.132 -39.8172 128.875 +-402.772 -38.6314 125.037 +-384.157 -35.7547 115.726 +-379.366 -34.2375 110.816 +-379.501 -33.1833 107.404 +-378.641 -32.0501 103.736 +-378.996 -31.0261 100.421 +-378.643 -29.9492 96.9359 +-379.223 -28.9505 93.7035 +-377.736 -27.8012 89.9834 +-3185.78 -225.773 730.754 +-380.004 -25.8974 83.8215 +-380.072 -24.8728 80.5051 +-379.13 -23.7885 76.9955 +-378.545 -22.7344 73.5838 +-377.436 -21.657 70.0968 +-379.438 -20.7592 67.1909 +-379.151 -19.7349 63.8753 +-380.312 -18.7867 60.8064 +-378.383 -17.6908 57.2594 +-379.683 -16.7503 54.2154 +-380.362 -15.7799 51.0743 +-376.154 -14.6183 47.3148 +-378.954 -13.7352 44.4563 +-3255.24 -109.483 354.361 +-3258.35 -101.093 327.206 +-3261.22 -92.6956 300.026 +-3263.83 -84.2912 272.823 +-3266.2 -75.8807 245.601 +-3268.32 -67.4639 218.359 +-3270.19 -59.0421 191.1 +-3271.81 -50.6158 163.827 +-3273.18 -42.1858 136.542 +-3274.3 -33.7525 109.246 +-3275.18 -25.3166 81.9417 +-3275.8 -16.8788 54.6313 +-3276.18 -8.43972 27.3166 +95.6 0 0 +95.5964 -0.239063 0.799271 +95.5854 -0.478108 1.59848 +95.3673 -0.715616 2.39255 +95.5418 -0.956069 3.19647 +95.509 -1.19495 3.99513 +95.2693 -1.43074 4.78346 +96.32 -1.68816 5.64412 +96.2649 -1.92897 6.4492 +96.2025 -2.16962 7.25378 +96.1328 -2.4101 8.05782 +96.0557 -2.65041 8.86124 +95.9714 -2.89051 9.66398 +95.979 -3.13363 10.4768 +95.88 -3.37353 11.2789 +96.6659 -3.64682 12.1926 +95.5609 -3.84853 12.867 +95.44 -4.08735 13.6654 +96.0033 -4.35723 14.5677 +94.8807 -4.54985 15.2117 +95.5264 -4.82675 16.1375 +95.4741 -5.07067 16.953 +95.316 -5.30923 17.7506 +95.1507 -5.54736 18.5468 +94.8803 -5.77913 19.3216 +95.5794 -6.07199 20.3008 +95.3908 -6.31078 21.0991 +95.195 -6.54908 21.8959 +94.992 -6.7869 22.691 +95.7498 -7.09592 23.7241 +95.4335 -7.32766 24.4989 +96.074 -7.63497 25.5263 +95.8378 -7.8749 26.3285 +95.5943 -8.11426 27.1288 +95.3436 -8.35302 27.9271 +95.9439 -8.66867 28.9824 +95.6763 -8.90826 29.7834 +96.0652 -9.21083 30.795 +95.781 -9.45071 31.597 +95.4896 -9.68984 32.3965 +95.9426 -10.0067 33.4558 +95.5406 -10.2362 34.2232 +96.0654 -10.5671 35.3296 +95.74 -10.807 36.1314 +96.4271 -11.164 37.3253 +96.0835 -11.4048 38.13 +96.653 -11.7566 39.3063 +95.5577 -11.9064 39.8072 +96.1963 -12.2731 41.0333 +95.8189 -12.5132 41.8359 +96.2499 -12.8613 42.9999 +96.4864 -13.1879 44.0916 +96.2608 -13.4538 44.9806 +95.6685 -13.6684 45.6982 +95.9614 -14.0112 46.8443 +95.6198 -14.2639 47.689 +95.7998 -14.5966 48.8015 +95.5274 -14.863 49.692 +95.6834 -15.1985 50.8139 +96.0002 -15.5642 52.0365 +95.5226 -15.8037 52.8372 +95.727 -16.1583 54.0228 +96.0027 -16.5299 55.2652 +95.4957 -16.7693 56.0656 +95.4902 -17.0986 57.1666 +95.8093 -17.4907 58.4775 +95.1891 -17.714 59.2241 +95.3965 -18.0937 60.4936 +95.588 -18.4758 61.771 +95.6811 -18.844 63.002 +94.8578 -19.0332 63.6347 +95.0073 -19.4195 64.926 +95.0595 -19.7911 66.1684 +95.1767 -20.1814 67.4735 +95.1175 -20.5394 68.6703 +95.2817 -20.9509 70.0461 +95.3493 -21.3471 71.3709 +95.3999 -21.7453 72.7021 +94.5787 -21.947 73.3764 +95.2956 -22.5108 75.2613 +94.6065 -22.7482 76.0552 +95.2789 -23.3189 77.9631 +95.2443 -23.7255 79.3224 +95.1174 -24.1146 80.6236 +95.0482 -24.5241 81.9927 +94.9613 -24.9351 83.3668 +94.7834 -25.328 84.6803 +94.6614 -25.7416 86.0631 +94.5212 -26.1565 87.4502 +94.363 -26.5726 88.8415 +94.2573 -27.0102 90.3044 +94.5527 -27.5719 92.1824 +94.2651 -27.9722 93.5207 +94.0292 -28.3939 94.9307 +94.4568 -29.026 97.0441 +94.2448 -29.4725 98.5368 +93.8121 -29.8562 99.8196 +94.092 -30.476 101.892 +94.3413 -31.0993 103.976 +93.7154 -31.4431 105.125 +93.847 -32.0492 107.152 +93.9488 -32.6587 109.189 +93.8317 -33.204 111.013 +93.6262 -33.729 112.768 +93.6421 -34.3457 114.83 +93.4449 -34.897 116.673 +92.5592 -35.1979 117.679 +93.0303 -36.0269 120.451 +92.6937 -36.5596 122.232 +93.0867 -37.3967 125.03 +115.289 -47.1818 157.745 +115.83 -48.2948 161.466 +113.237 -48.1074 160.84 +112.761 -48.8189 163.218 +109.69 -48.4019 161.824 +108.373 -48.747 162.978 +105.507 -48.3842 161.765 +105.179 -49.1837 164.438 +102.647 -48.9536 163.669 +101.457 -49.3568 165.017 +96 -47.648 159.304 +95.4317 -48.3352 161.601 +92.6471 -47.8953 160.131 +92.9028 -49.0318 163.93 +90.4672 -48.7561 163.009 +89.7639 -49.4126 165.204 +87.5748 -49.2522 164.667 +86.4285 -49.6745 166.079 +83.7727 -49.2192 164.557 +82.572 -49.6078 165.856 +79.9594 -49.137 164.282 +78.7917 -49.5439 165.642 +76.1818 -49.0321 163.931 +75.0047 -49.431 165.265 +72.0117 -48.6143 162.534 +71.447 -49.4278 165.254 +68.2533 -48.4091 161.848 +67.986 -49.4576 165.354 +65.868 -49.1711 164.396 +65.7339 -50.3806 168.44 +62.6923 -49.3585 165.023 +62.0547 -50.2156 167.888 +58.9929 -49.0954 164.143 +58.7648 -50.3282 168.265 +55.005 -48.5108 162.189 +53.8865 -48.9745 163.739 +51.165 -47.9563 160.335 +50.1003 -48.4673 162.043 +47.9058 -47.8744 160.061 +46.6064 -48.1581 161.009 +44.5945 -47.6916 159.449 +43.3658 -48.0509 160.651 +41.5864 -47.7962 159.799 +40.4327 -48.2604 161.351 +38.5566 -47.8572 160.003 +37.5523 -48.5392 162.283 +35.5737 -47.9586 160.342 +34.5305 -48.6355 162.605 +32.6474 -48.1291 160.912 +31.2898 -48.3782 161.745 +29.4507 -47.8618 160.019 +28.3387 -48.5272 162.243 +26.4687 -47.8887 160.109 +25.2902 -48.4916 162.124 +23.4924 -47.9002 160.147 +22.333 -48.6106 162.522 +20.5228 -47.8967 160.135 +19.2559 -48.4303 161.919 +17.6026 -47.9919 160.453 +16.2746 -48.4335 161.93 +14.6683 -48.0443 160.629 +13.3773 -48.7074 162.846 +11.7051 -47.9672 160.371 +10.4088 -48.767 163.045 +8.74534 -47.8182 159.873 +7.42402 -48.7257 162.907 +5.85614 -48.0552 160.665 +4.46317 -48.8415 163.294 +2.91455 -47.848 159.973 +1.48787 -48.8564 163.344 +1.03296e-14 -48.3423 161.625 +-1.48526 -48.7705 163.057 +-2.9163 -47.8767 160.068 +-4.4527 -48.7269 162.911 +-5.87708 -48.2269 161.239 +-7.41966 -48.6971 162.811 +-8.76104 -47.9042 160.16 +-10.4088 -48.767 163.045 +-11.74 -48.1102 160.849 +-13.4557 -48.9931 163.801 +-14.677 -48.0727 160.724 +-16.4951 -49.0897 164.124 +-17.6653 -48.1629 161.025 +-19.5162 -49.0851 164.109 +-20.6325 -48.1526 160.991 +-22.581 -49.1504 164.327 +-23.5481 -48.0137 160.526 +-25.6154 -49.1149 164.208 +-26.5469 -48.0303 160.582 +-28.6358 -49.0361 163.945 +-29.607 -48.116 160.868 +-31.7819 -49.139 164.289 +-32.8191 -48.3825 161.759 +-34.8296 -49.0567 164.014 +-35.5737 -47.9586 160.342 +-38.0934 -49.2387 164.622 +-38.7816 -48.1363 160.936 +-41.4366 -49.4588 165.358 +-41.9734 -48.2409 161.286 +-44.6428 -49.4659 165.382 +-45.371 -48.522 162.226 +-48.1296 -49.7321 166.272 +-48.65 -48.6183 162.548 +-51.4352 -49.7585 166.36 +-52.1299 -48.8607 163.358 +-54.8487 -49.8491 166.663 +-55.3758 -48.8378 163.282 +-58.1937 -49.839 166.629 +-58.9604 -49.0682 164.052 +-61.7876 -49.9995 167.166 +-62.5213 -49.2238 164.572 +-64.9284 -49.7634 166.376 +-65.9397 -49.2246 164.575 +-69.3787 -50.4709 168.742 +-70.2387 -49.8172 166.556 +-73.59 -50.9105 170.211 +-74.5906 -50.3551 168.355 +-77.5168 -51.0864 170.8 +-78.5815 -50.5766 169.095 +-82.3995 -51.8123 173.226 +-82.9177 -50.9552 170.361 +-86.6188 -52.0389 173.984 +-87.1482 -51.2022 171.187 +-90.6228 -52.0851 174.138 +-90.2079 -50.7331 169.618 +-93.7811 -51.624 172.597 +-94.6455 -51.0079 170.537 +-99.583 -52.5573 175.717 +-99.7738 -51.5796 172.448 +-101.488 -51.4028 171.857 +-102.25 -50.75 169.675 +-106.431 -51.7764 173.107 +-106.716 -50.8941 170.157 +-110.613 -51.7249 172.934 +-110.965 -50.8873 170.134 +-114.23 -51.3813 171.785 +-115.137 -50.8053 169.86 +-118.059 -51.1128 170.888 +-119.052 -50.5781 169.1 +-122.627 -51.1285 170.94 +-124.237 -50.8434 169.987 +-129.206 -51.9074 173.544 +-129.489 -51.0721 170.752 +-134.489 -52.0825 174.13 +-134.807 -51.2635 171.392 +-139.589 -52.1295 174.287 +-139.694 -51.2366 171.302 +-140.502 -50.6162 169.227 +-140.527 -49.7284 166.259 +-140.701 -48.9106 163.525 +-141.092 -48.1839 161.095 +-140.67 -47.1972 157.797 +-140.265 -46.2381 154.59 +-141.271 -45.7567 152.981 +-141.053 -44.8907 150.085 +-141.806 -44.3463 148.265 +-142.128 -43.6755 146.022 +-141.732 -42.7989 143.091 +-141.294 -41.9274 140.178 +-140.883 -41.0818 137.351 +-141.068 -40.4242 135.152 +-142.507 -40.1302 134.169 +-141.854 -39.2547 131.242 +-160.308 -43.5929 145.746 +-160.166 -42.7997 143.094 +-225.902 -59.3178 198.32 +-225.693 -58.2329 194.693 +-229.855 -58.2739 194.83 +-229.356 -57.1328 191.015 +-236.866 -57.9715 193.819 +-237.78 -57.1743 191.154 +-247.229 -58.4002 195.252 +-246.822 -57.2749 191.49 +-253.643 -57.8151 193.296 +-253.976 -56.8611 190.107 +-141.772 -31.1735 104.224 +-141.918 -30.6454 102.458 +-143.087 -30.3402 101.438 +-141.74 -29.5097 98.6613 +-141.086 -28.8381 96.4156 +-140.976 -28.2869 94.5728 +-144.387 -28.4364 95.0728 +-148.066 -28.6191 95.6836 +-303.951 -57.65 192.744 +-303.515 -56.482 188.839 +-318.465 -58.138 194.376 +-319.46 -57.203 191.249 +-333.809 -58.6177 195.979 +-332.067 -57.1758 191.158 +-345.858 -58.3793 195.182 +-347.623 -57.5122 192.283 +-357.977 -58.0377 194.04 +-357.632 -56.807 189.925 +-369.718 -57.5239 192.323 +-372.516 -56.7585 189.764 +-386.737 -57.6904 192.879 +-386.697 -56.4611 188.769 +-403.078 -57.5887 192.539 +-404.817 -56.5786 189.162 +-422.049 -57.6861 192.865 +-426.962 -57.0523 190.746 +-445.153 -58.1334 194.36 +-444.531 -56.715 189.618 +-455.412 -56.7439 189.715 +-452.98 -55.0991 184.215 +-402.257 -47.7463 159.632 +-400.543 -46.3737 155.043 +-402.592 -45.4438 151.934 +-404.614 -44.5073 148.803 +-403.706 -43.2528 144.609 +-403.786 -42.1143 140.803 +-403.639 -40.9595 136.942 +-402.507 -39.7152 132.782 +-403.512 -38.6891 129.351 +-403.153 -37.5368 125.499 +-383.49 -34.6489 115.843 +-378.027 -33.1189 110.728 +-378.83 -32.1558 107.508 +-378.833 -31.1285 104.073 +-378.899 -30.1109 100.671 +-379.609 -29.1475 97.4503 +-376.029 -27.8671 93.1693 +-381.714 -27.2723 91.1809 +-376.793 -25.9221 86.6665 +-379.712 -25.1206 83.9871 +-378.315 -24.0337 80.3531 +-378.934 -23.0808 77.1672 +-379.427 -22.1209 73.958 +-379.104 -21.1166 70.6 +-378.455 -20.0999 67.2009 +-379.742 -19.1876 64.1506 +-379.819 -18.2136 60.8943 +-378.68 -17.1869 57.4617 +-380.079 -16.2774 54.421 +-379.174 -15.2705 51.0546 +-378.732 -14.2881 47.77 +-379.649 -13.3579 44.6601 +-3255.24 -106.281 355.334 +-3258.35 -98.1367 328.105 +-3261.22 -89.9847 300.85 +-3263.83 -81.8261 273.573 +-3266.2 -73.6615 246.276 +-3268.32 -65.4908 218.959 +-3270.19 -57.3153 191.625 +-3271.81 -49.1355 164.277 +-3273.18 -40.952 136.917 +-3274.3 -32.7653 109.546 +-3275.18 -24.5762 82.1668 +-3275.8 -16.3852 54.7814 +-3276.18 -8.19289 27.3917 +95.6 0 0 +95.6964 -0.232098 0.802229 +95.5854 -0.463693 1.60272 +95.6672 -0.696221 2.40644 +95.6417 -0.928214 3.2083 +95.6089 -1.16014 4.00993 +95.5688 -1.39197 4.81124 +95.5215 -1.6237 5.61219 +95.4669 -1.8553 6.4127 +96.4019 -2.10856 7.2881 +96.332 -2.34228 8.09594 +96.1553 -2.57316 8.89395 +96.0708 -2.80625 9.69961 +96.0784 -3.04232 10.5155 +95.9792 -3.27521 11.3205 +95.7736 -3.50422 12.1121 +95.6599 -3.73636 12.9145 +95.5389 -3.96823 13.7159 +96.2008 -4.23456 14.6364 +95.867 -4.45853 15.4106 +95.6248 -4.68604 16.1969 +95.5724 -4.92285 17.0155 +95.2178 -5.14385 17.7794 +95.2487 -5.38567 18.6152 +94.9781 -5.61067 19.3929 +95.677 -5.89495 20.3755 +95.4883 -6.12676 21.1767 +95.3895 -6.36461 21.9988 +95.089 -6.58897 22.7743 +95.8466 -6.88893 23.8111 +95.5301 -7.11393 24.5888 +95.3994 -7.35277 25.4143 +95.8378 -7.63747 26.3984 +95.6902 -7.87751 27.2281 +95.3436 -8.10118 28.0011 +95.9439 -8.40731 29.0593 +95.7714 -8.64826 29.8921 +95.4014 -8.87137 30.6633 +95.9701 -9.18386 31.7434 +95.6781 -9.41626 32.5466 +96.0366 -9.71449 33.5775 +95.7279 -9.94703 34.3812 +96.1588 -10.2585 35.4577 +96.1121 -10.5219 36.3681 +96.5198 -10.8378 37.4602 +96.2682 -11.0822 38.3047 +95.9166 -11.3152 39.1103 +96.5664 -11.6693 40.3342 +96.1963 -11.9031 41.1421 +96.7289 -12.2512 42.3453 +96.3405 -12.4853 43.1545 +95.9448 -12.7185 43.9604 +96.0811 -13.0238 45.0158 +95.8475 -13.2811 45.9052 +96.0505 -13.6014 47.0122 +96.6842 -13.9878 48.3478 +95.9764 -14.1826 49.0212 +95.5274 -14.4148 49.8239 +95.6834 -14.7403 50.9487 +96.0873 -15.1086 52.2219 +95.5226 -15.3272 52.9774 +95.727 -15.6711 54.1661 +95.2313 -15.9027 54.9665 +95.4104 -16.2492 56.1643 +95.575 -16.5978 57.3691 +95.8093 -16.9634 58.6326 +95.1891 -17.1799 59.3812 +95.3965 -17.5482 60.6541 +95.588 -17.9188 61.9349 +95.0217 -18.1499 62.7338 +95.0216 -18.4913 63.9137 +95.1701 -18.8663 65.2099 +95.2213 -19.227 66.4568 +95.3374 -19.606 67.7668 +95.1974 -19.9369 68.9103 +95.2817 -20.3192 70.2319 +95.3493 -20.7035 71.5602 +94.7738 -20.9513 72.4166 +95.2781 -21.4427 74.1152 +95.2956 -21.8321 75.461 +95.2959 -22.2231 76.8126 +95.2789 -22.6158 78.17 +95.3198 -23.0284 79.596 +95.1923 -23.406 80.9012 +95.0482 -23.7847 82.2103 +95.1825 -24.2397 83.7827 +94.7834 -24.5644 84.905 +94.7339 -24.9846 86.3575 +95.1687 -25.5416 88.2827 +94.363 -25.7714 89.0772 +94.8937 -26.3727 91.1553 +94.6928 -26.7802 92.564 +94.4735 -27.1888 93.9762 +94.2357 -27.5983 95.3917 +93.7748 -27.9477 96.5994 +94.1773 -28.5633 98.7271 +93.879 -28.9766 100.156 +94.2246 -29.5989 102.306 +93.8164 -29.9938 103.671 +93.7154 -30.4951 105.404 +93.9755 -31.1257 107.584 +94.076 -31.7169 109.627 +93.5799 -32.1168 111.009 +93.6262 -32.7121 113.067 +93.6421 -33.3102 115.134 +93.5666 -33.8888 117.134 +93.7628 -34.5805 119.525 +93.3277 -35.0524 121.156 +92.5174 -35.3898 122.322 +94.5965 -36.8572 127.394 +115.461 -45.8273 158.399 +115.434 -46.6783 161.34 +115.753 -47.6938 164.85 +115.686 -48.5751 167.896 +112.087 -47.9681 165.798 +112.833 -49.2227 170.135 +108.739 -48.3631 167.163 +109.411 -49.6204 171.509 +105.171 -48.6451 168.138 +105.517 -49.7843 172.076 +101.1 -48.6663 168.211 +101.784 -49.9983 172.816 +96.4771 -48.3714 167.192 +97.3881 -49.8494 172.301 +92.2042 -48.1941 166.579 +92.9038 -49.5992 171.436 +89.5269 -48.8319 168.784 +90.3104 -50.3407 173.999 +85.7016 -48.8341 168.792 +86.4036 -50.3446 174.013 +82.2415 -49.0156 169.419 +82.8557 -50.5283 174.648 +78.4188 -48.9503 169.193 +78.4339 -50.1326 173.28 +73.77 -48.2997 166.944 +75.0442 -50.3513 174.036 +70.8006 -48.7018 168.334 +71.6143 -50.5267 174.642 +66.4773 -48.1296 166.357 +67.0647 -49.851 172.307 +64.2314 -49.0453 169.522 +64.5249 -50.6403 175.035 +61.0115 -49.2443 170.21 +61.5888 -51.1564 176.819 +57.7244 -49.3741 170.658 +57.7656 -50.9171 175.991 +52.7731 -47.9723 165.813 +52.0884 -48.8714 168.92 +49.3115 -47.7936 165.195 +48.6908 -48.7949 168.656 +46.1474 -47.8645 165.44 +45.494 -48.8892 168.982 +42.9895 -47.9192 165.629 +42.1836 -48.8322 168.785 +39.9738 -48.1204 166.325 +39.1106 -49.0295 169.467 +36.8212 -48.1438 166.406 +35.8065 -48.9119 169.061 +33.5633 -47.9876 165.866 +32.7295 -49.0784 169.636 +30.4926 -48.061 166.119 +29.527 -49.0376 169.495 +27.4699 -48.2016 166.605 +26.4874 -49.256 170.25 +24.4388 -48.3275 167.041 +23.2337 -49.0462 169.525 +21.2906 -48.1905 166.567 +20.1841 -49.2343 170.175 +18.2298 -48.2035 166.612 +17.0318 -49.1587 169.914 +15.1041 -47.9801 165.84 +13.9657 -49.3169 170.46 +12.1655 -48.3508 167.121 +10.8483 -49.2941 170.381 +9.09599 -48.2361 166.724 +7.74244 -49.2835 170.345 +6.08996 -48.4673 167.524 +4.64641 -49.3135 170.449 +3.02799 -48.2116 166.64 +1.55681 -49.5787 171.365 +1.06969e-14 -48.5523 167.818 +-1.54547 -49.2174 170.116 +-3.0437 -48.4614 167.504 +-4.6752 -49.6192 171.505 +-6.09694 -48.5229 167.716 +-7.79042 -49.589 171.401 +-9.12739 -48.4025 167.3 +-10.9033 -49.5437 171.244 +-12.1516 -48.2955 166.93 +-14.0599 -49.6495 171.61 +-15.3656 -48.8105 168.71 +-17.2139 -49.6843 171.73 +-18.4284 -48.7285 168.427 +-20.4219 -49.8141 172.179 +-21.4856 -48.6318 168.092 +-23.4817 -49.5698 171.334 +-24.6893 -48.823 168.753 +-26.7535 -49.7507 171.96 +-27.7045 -48.6135 168.029 +-29.9231 -49.6957 171.77 +-30.9094 -48.718 168.39 +-33.094 -49.6248 171.525 +-34.1357 -48.8061 168.695 +-36.4644 -49.8107 172.167 +-37.237 -48.6874 168.284 +-39.695 -49.7621 171.999 +-40.6712 -48.9597 169.226 +-43.3041 -50.1295 173.269 +-43.933 -48.9709 169.264 +-46.5957 -50.0731 173.074 +-47.4674 -49.2335 170.172 +-50.1606 -50.2679 173.747 +-50.5519 -48.9956 169.35 +-53.5653 -50.2568 173.709 +-54.2642 -49.3277 170.498 +-57.104 -50.3341 173.976 +-57.8789 -49.5064 171.115 +-60.51 -50.2601 173.721 +-61.1091 -49.3233 170.482 +-64.1577 -50.3521 174.039 +-64.9496 -49.594 171.418 +-68.4305 -50.8663 175.816 +-68.8783 -49.868 172.365 +-72.6405 -51.2506 177.144 +-72.7861 -50.0675 173.055 +-76.3453 -51.2242 177.053 +-76.8568 -50.3207 173.93 +-80.3878 -51.3813 177.596 +-81.3067 -50.7529 175.424 +-85.4683 -52.1216 180.155 +-86.0451 -51.2826 177.255 +-89.5894 -52.2008 180.428 +-90.0853 -51.3321 177.426 +-93.1215 -51.9076 179.415 +-93.4312 -50.9616 176.145 +-98.7219 -52.7053 182.172 +-99.1054 -51.8012 179.047 +-102.685 -52.5602 181.671 +-102.198 -51.2398 177.107 +-105.822 -51.9816 179.671 +-106.35 -51.1937 176.947 +-108.258 -51.0772 176.545 +-110.012 -50.8843 175.878 +-111.815 -50.7104 175.277 +-112.502 -50.0367 172.948 +-114.445 -49.9258 172.565 +-116.063 -49.6698 171.68 +-118.115 -49.5951 171.422 +-120.506 -49.6523 171.62 +-123.193 -49.816 172.186 +-127.506 -50.6081 174.923 +-133.968 -52.1975 180.417 +-133.956 -51.2412 177.111 +-139.605 -52.4335 181.232 +-139.802 -51.5602 178.214 +-140.685 -50.9546 176.121 +-140.863 -50.1078 173.194 +-141.124 -49.3074 170.428 +-140.779 -48.3155 166.999 +-141.019 -47.5432 164.33 +-140.963 -46.6886 161.376 +-141.385 -46.0066 159.019 +-141.578 -45.2634 156.45 +-141.602 -44.4814 153.747 +-141.856 -43.7852 151.34 +-141.942 -43.0501 148.8 +-141.583 -42.1961 145.848 +-140.837 -41.2464 142.565 +-141.224 -40.6433 140.481 +-143.126 -40.4777 139.908 +-142.977 -39.7359 137.344 +-161.908 -44.2185 152.838 +-160.629 -43.1098 149.006 +-222.255 -58.6163 202.603 +-224.306 -58.1319 200.929 +-228.998 -58.3178 201.571 +-230.152 -57.593 199.066 +-237.194 -58.3217 201.585 +-236.224 -57.0694 197.256 +-248.729 -59.0393 204.065 +-248.198 -57.8801 200.058 +-255.099 -58.4426 202.003 +-254.438 -57.262 197.922 +-265.617 -58.7188 202.958 +-263.668 -57.2512 197.885 +-142.566 -30.4026 105.084 +-142.237 -29.7881 102.96 +-142.765 -29.3596 101.479 +-141.74 -28.62 98.9231 +-140.923 -27.9363 96.56 +-141.14 -27.4659 94.9339 +-144.881 -27.6735 95.6514 +-147.32 -27.6163 95.4539 +-319.462 -58.765 203.117 +-315.843 -57.0041 197.031 +-330.525 -58.5207 202.273 +-332.35 -57.7167 199.494 +-343.785 -58.5493 202.372 +-345.181 -57.6419 199.235 +-358.869 -58.7491 203.062 +-358.361 -57.5013 198.749 +-371.555 -58.4229 201.934 +-371.451 -57.2231 197.788 +-386.064 -58.2561 201.358 +-385.76 -57.0044 197.032 +-404.211 -58.4793 202.129 +-402.913 -57.0552 197.207 +-418.471 -57.9854 200.422 +-418.568 -56.7367 196.106 +-438.386 -58.1124 200.861 +-444.816 -57.6461 199.25 +-454.89 -57.6138 199.138 +-452.844 -56.0336 193.676 +-453.853 -54.8447 189.567 +-456.386 -53.8394 186.092 +-404.013 -46.5088 160.754 +-402.212 -45.1628 156.102 +-404.359 -44.2671 153.006 +-403.307 -43.0259 148.716 +-402.113 -41.7833 144.421 +-403.41 -40.8065 141.045 +-403.639 -39.7245 137.305 +-403.642 -38.6265 133.51 +-403.607 -37.5315 129.725 +-404.389 -36.5168 126.218 +-384.443 -33.6879 116.44 +-378.984 -32.2016 111.302 +-379.213 -31.218 107.903 +-379.314 -30.2283 104.482 +-378.899 -29.2031 100.938 +-380.478 -28.3335 97.9327 +-379.514 -27.2774 94.2824 +-378.9 -26.2551 90.7488 +-379.613 -25.3287 87.5467 +-376.204 -24.1382 83.432 +-378.998 -23.3512 80.7118 +-379.423 -22.4138 77.4717 +-379.231 -21.4429 74.1158 +-378.221 -20.4322 70.6224 +-378.553 -19.4989 67.3967 +-378.659 -18.556 64.1374 +-378.438 -17.6002 60.8339 +-378.186 -16.647 57.5391 +-379.584 -15.7661 54.4944 +-380.263 -14.8526 51.3371 +-379.228 -13.8754 47.9594 +-378.756 -12.9247 44.6732 +-3255.24 -103.077 356.277 +-3258.35 -95.1778 328.975 +-3261.22 -87.2716 301.648 +-3263.83 -79.359 274.299 +-3266.2 -71.4406 246.929 +-3268.32 -63.5163 219.539 +-3270.19 -55.5873 192.133 +-3271.81 -47.6541 164.713 +-3273.18 -39.7173 137.28 +-3274.3 -31.7775 109.837 +-3275.18 -23.8352 82.3848 +-3275.8 -15.8912 54.9267 +-3276.18 -7.94588 27.4644 +95.7 0 0 +95.6964 -0.224849 0.80429 +95.6854 -0.449683 1.60853 +95.6672 -0.674479 2.41262 +95.6417 -0.899227 3.21655 +95.6089 -1.12391 4.02023 +96.4676 -1.36118 4.86896 +96.4198 -1.58778 5.67952 +96.4644 -1.81614 6.49636 +96.4019 -2.04272 7.30683 +96.2324 -2.26679 8.10835 +96.1553 -2.49281 8.91681 +96.1703 -2.72144 9.73465 +96.0784 -2.94731 10.5426 +95.9792 -3.17293 11.3496 +95.8727 -3.39831 12.1558 +95.6599 -3.61968 12.9477 +96.429 -3.88011 13.8792 +96.2996 -4.10654 14.6892 +95.867 -4.3193 15.4502 +95.7233 -4.54438 16.2553 +95.5724 -4.76911 17.0592 +96.1013 -5.02944 17.9904 +95.1507 -5.21209 18.6438 +95.8585 -5.48583 19.6229 +95.7746 -5.71668 20.4486 +95.5857 -5.94149 21.2528 +95.3895 -6.16585 22.0553 +96.0593 -6.44836 23.0659 +95.8466 -6.67379 23.8723 +95.6267 -6.89874 24.6769 +95.3994 -7.12315 25.4796 +95.9339 -7.40639 26.4928 +95.6902 -7.6315 27.298 +95.4392 -7.85605 28.1012 +96.0393 -8.15286 29.1629 +95.7714 -8.37819 29.9689 +96.2549 -8.67123 31.0171 +95.9701 -8.89706 31.825 +96.5265 -9.20308 32.9196 +96.0366 -9.41112 33.6637 +95.6342 -9.62697 34.4358 +95.3186 -9.8513 35.2383 +95.833 -10.1637 36.3556 +96.5198 -10.4994 37.5565 +96.1759 -10.7258 38.3662 +96.7451 -11.0565 39.5494 +96.5664 -11.3049 40.4378 +96.2877 -11.5423 41.287 +96.7289 -11.8686 42.4541 +96.2499 -12.084 43.2248 +95.9448 -12.3213 44.0734 +96.2608 -12.6406 45.2158 +95.8475 -12.8663 46.0232 +96.2287 -13.2011 47.2204 +96.5955 -13.5385 48.4276 +95.8881 -13.7271 49.1019 +96.2305 -14.0675 50.3195 +95.6834 -14.28 51.0797 +96.0873 -14.6368 52.3561 +95.5226 -14.8485 53.1135 +95.8132 -15.1954 54.3542 +95.2313 -15.4061 55.1077 +96.0925 -15.8543 56.7112 +95.6598 -16.0937 57.5676 +95.8093 -16.4336 58.7833 +95.273 -16.6581 59.5863 +95.3965 -17.0002 60.81 +95.588 -17.3592 62.0941 +95.5986 -17.6899 63.2769 +95.7589 -18.0528 64.5751 +95.1701 -18.2771 65.3775 +95.2213 -18.6266 66.6276 +95.3374 -18.9937 67.941 +95.2772 -19.3304 69.1453 +95.3611 -19.7011 70.4711 +95.5857 -20.1067 71.922 +95.3999 -20.4311 73.0823 +95.2781 -20.7731 74.3056 +95.2956 -21.1503 75.6549 +95.3725 -21.5464 77.072 +95.2789 -21.9096 78.3709 +95.2443 -22.2916 79.7373 +95.1174 -22.6572 81.0452 +94.4537 -22.8979 81.906 +94.9613 -23.4281 83.8028 +94.8566 -23.8156 85.1888 +94.7339 -24.2044 86.5794 +94.6651 -24.613 88.0413 +94.4344 -24.9855 89.3736 +94.8937 -25.5491 91.3896 +94.6928 -25.9439 92.8018 +95.1682 -26.5334 94.9105 +94.3046 -26.756 95.7067 +94.6614 -27.331 97.7635 +94.38 -27.7311 99.1946 +94.682 -28.3118 101.272 +94.1583 -28.6543 102.497 +94.2757 -29.1995 104.447 +93.7154 -29.5428 105.675 +93.9755 -30.1537 107.86 +93.5671 -30.5603 109.315 +94.0834 -31.281 111.893 +93.6262 -31.6905 113.358 +93.1496 -32.1003 114.823 +93.4449 -32.788 117.283 +93.3415 -33.3501 119.294 +93.6846 -34.0876 121.932 +92.9288 -34.4373 123.183 +95.9321 -36.2105 129.526 +115.805 -44.5287 159.28 +115.887 -45.398 162.39 +115.809 -46.2268 165.354 +115.686 -47.0582 168.328 +115.954 -48.0735 171.96 +115.627 -48.8664 174.796 +112.714 -48.5654 173.719 +112.442 -49.4022 176.712 +108.776 -48.7415 174.349 +109.07 -49.8534 178.327 +105.55 -49.2218 176.067 +105.28 -50.1006 179.211 +102.052 -49.5688 177.309 +101.921 -50.5402 180.783 +96.6172 -48.9237 175.001 +95.582 -49.4353 176.831 +92.9773 -49.1302 175.74 +93.0322 -50.2384 179.704 +89.8661 -49.6081 177.449 +89.4172 -50.4735 180.544 +86.5945 -49.9983 178.845 +85.3853 -50.4449 180.442 +82.2828 -49.7581 177.986 +80.7467 -49.9991 178.848 +77.6383 -49.2449 176.15 +77.0342 -50.0723 179.109 +74.7715 -49.827 178.232 +74.473 -50.9026 182.08 +70.3118 -49.316 176.404 +69.0259 -49.7064 177.801 +67.1044 -49.6391 177.56 +66.4943 -50.5561 180.84 +64.1695 -50.176 179.48 +63.1754 -50.8353 181.839 +60.7527 -50.3418 180.074 +59.8405 -51.0989 182.782 +55.7553 -49.1003 175.633 +54.1617 -49.2296 176.095 +51.2685 -48.1386 172.193 +50.1874 -48.7242 174.287 +47.9333 -48.1639 172.283 +46.7459 -48.6658 174.078 +44.5136 -48.0684 171.941 +43.3741 -48.6424 173.995 +41.0536 -47.8769 171.257 +40.1928 -48.8125 174.603 +38.027 -48.1677 172.297 +36.903 -48.8357 174.686 +34.899 -48.3392 172.91 +33.6407 -48.8693 174.806 +31.7603 -48.4956 173.47 +30.4843 -49.0465 175.44 +28.4085 -48.2918 172.741 +27.1082 -48.8362 174.688 +25.1486 -48.1779 172.333 +23.9907 -49.0629 175.499 +22.0584 -48.3691 173.017 +20.7275 -48.9808 175.205 +18.8569 -48.3047 172.787 +17.5781 -49.1512 175.815 +15.6967 -48.3056 172.79 +14.3659 -49.1458 175.796 +12.5841 -48.4526 173.316 +11.1475 -49.0713 175.529 +9.48851 -48.7463 174.366 +7.99107 -49.2778 176.267 +6.30983 -48.6488 174.018 +4.793 -49.2807 176.278 +3.13969 -48.4289 173.231 +1.59347 -49.1612 175.85 +1.10704e-14 -48.6784 174.124 +-1.60132 -49.4035 176.717 +-3.1554 -48.6709 174.097 +-4.80085 -49.3615 176.567 +-6.30634 -48.6219 173.921 +-8.03905 -49.5737 177.326 +-9.50421 -48.8268 174.654 +-11.2696 -49.6089 177.452 +-12.6887 -48.8553 174.756 +-14.5542 -49.7899 178.099 +-15.8798 -48.8688 174.805 +-17.7506 -49.6334 177.54 +-19.1392 -49.0277 175.373 +-21.0558 -49.7565 177.98 +-22.2412 -48.77 174.451 +-24.2779 -49.6501 177.599 +-25.6914 -49.2177 176.053 +-27.5369 -49.6084 177.45 +-28.8309 -49.0099 175.309 +-30.8474 -49.6307 177.53 +-32.0034 -48.8669 174.798 +-34.2238 -49.7164 177.836 +-35.3378 -48.9469 175.084 +-37.4612 -49.5745 177.329 +-38.7339 -49.0632 175.5 +-40.9504 -49.7325 177.894 +-42.3133 -49.3459 176.511 +-44.6581 -50.0823 179.145 +-45.5781 -49.218 176.054 +-48.098 -50.0734 179.113 +-49.1497 -49.3863 176.656 +-51.6839 -50.177 179.484 +-52.7019 -49.4843 177.006 +-55.1842 -50.159 179.42 +-56.0184 -49.3322 176.462 +-58.788 -50.2002 179.567 +-59.8566 -49.5992 177.417 +-62.3821 -50.197 179.555 +-63.5835 -49.7177 177.841 +-66.3274 -50.4293 180.387 +-67.4464 -49.8919 178.464 +-70.6718 -50.8916 182.04 +-71.9603 -50.4724 180.541 +-75.0961 -51.3286 183.603 +-75.8578 -50.551 180.822 +-79.4068 -51.6145 184.626 +-80.178 -50.8561 181.913 +-83.1392 -51.4804 184.146 +-84.5605 -51.1355 182.913 +-87.3344 -51.5965 184.561 +-88.8766 -51.3162 183.559 +-91.1392 -51.4454 184.021 +-92.0141 -50.7939 181.691 +-97.1819 -52.4793 187.719 +-97.7896 -51.6732 184.836 +-101.123 -52.3011 187.082 +-101.828 -51.5623 184.439 +-104.164 -51.6525 184.762 +-104.719 -50.8641 181.942 +-106.413 -50.6396 181.139 +-107.15 -49.9678 178.736 +-108.664 -49.6679 177.663 +-109.703 -49.1569 175.835 +-110.979 -48.7595 174.414 +-112.661 -48.5425 173.637 +-114.66 -48.4577 173.334 +-116.498 -48.2994 172.768 +-119.494 -48.6074 173.869 +-121.065 -48.3249 172.859 +-124.609 -48.8152 174.613 +-126.932 -48.8071 174.584 +-137.278 -51.817 185.35 +-139.54 -51.7104 184.969 +-140.795 -51.229 183.247 +-141.005 -50.38 180.21 +-141.354 -49.5984 177.414 +-141.048 -48.6066 173.867 +-140.937 -47.7043 170.639 +-140.653 -46.7647 167.278 +-141.464 -46.2039 165.272 +-141.799 -45.4985 162.749 +-142.164 -44.8157 160.306 +-141.906 -43.9517 157.216 +-141.602 -43.0923 154.142 +-141.856 -42.4178 151.729 +-141.131 -41.4674 148.33 +-141.037 -40.7208 145.659 +-142.489 -40.4268 144.607 +-143.169 -39.9163 142.781 +-159.737 -43.7648 156.548 +-161.786 -43.5591 155.812 +-222.249 -58.8027 210.338 +-221.916 -57.6985 206.389 +-226.679 -57.9163 207.168 +-228.329 -57.3264 205.058 +-235.634 -58.1339 207.946 +-238.401 -57.7941 206.73 +-246.107 -58.6233 209.697 +-246.186 -57.6188 206.103 +-254.432 -58.507 209.281 +-255.093 -57.6301 206.144 +-263.278 -58.433 209.016 +-264.23 -57.6088 206.068 +-274.148 -58.7122 210.015 +-274.701 -57.7841 206.695 +-144.787 -29.9122 106.996 +-142.477 -28.9066 103.399 +-142.765 -28.4427 101.74 +-141.821 -27.7421 99.2341 +-140.679 -27.0168 96.6396 +-140.976 -26.5773 95.0674 +-144.964 -26.8245 95.9519 +-147.486 -26.784 95.8069 +-330.052 -58.8172 210.39 +-330.604 -57.8049 206.769 +-341.489 -58.5738 209.519 +-342.272 -57.5835 205.977 +-355.125 -58.5921 209.585 +-357.01 -57.7553 206.592 +-369.725 -58.6363 209.743 +-370.659 -57.6172 206.098 +-384.958 -58.64 209.756 +-383.696 -57.2634 204.832 +-394.765 -57.7087 206.425 +-399.445 -57.1834 204.546 +-417.161 -58.468 209.141 +-419.575 -57.559 205.89 +-435.475 -58.4572 209.102 +-436.814 -57.3609 205.181 +-451.022 -57.9204 207.182 +-453.698 -56.9611 203.751 +-456.528 -56.0158 200.369 +-404.518 -48.4908 173.452 +-404.79 -47.3883 169.509 +-404.93 -46.2776 165.536 +-401.795 -44.8092 160.283 +-403.232 -43.8634 156.9 +-405.197 -42.9735 153.717 +-401.066 -41.4507 148.27 +-405.954 -40.8651 146.175 +-404.068 -39.5967 141.638 +-403.545 -38.4751 137.626 +-403.642 -37.4202 133.853 +-403.607 -36.3594 130.058 +-403.819 -35.3266 126.364 +-384.062 -32.6033 116.622 +-379.079 -31.2037 111.616 +-378.83 -30.2124 108.07 +-377.295 -29.1285 104.193 +-377.358 -28.1762 100.787 +-380.092 -27.4207 98.0842 +-380.385 -26.4862 94.7417 +-379.483 -25.4743 91.1219 +-379.808 -24.5503 87.8167 +-376.691 -23.4147 83.7547 +-377.924 -22.5579 80.6899 +-379.228 -21.7027 77.6308 +-379.721 -20.8001 74.4023 +-378.221 -19.7941 70.8039 +-378.848 -18.9047 67.6225 +-377.969 -17.9438 64.1852 +-378.931 -17.0728 61.0697 +-379.47 -16.1818 57.8827 +-379.485 -15.2698 54.6202 +-380.56 -14.4 51.5092 +-380.12 -13.4737 48.1958 +-381.038 -12.5965 45.058 +-3255.24 -99.8576 357.192 +-3258.35 -92.2055 329.821 +-3261.22 -84.5462 302.423 +-3263.83 -76.8807 275.004 +-3266.2 -69.2096 247.564 +-3268.32 -61.5327 220.104 +-3270.19 -53.8513 192.627 +-3271.81 -46.1659 165.136 +-3273.18 -38.477 137.633 +-3274.3 -30.7851 110.119 +-3275.18 -23.0909 82.5965 +-3275.8 -15.3949 55.0679 +-3276.18 -7.69774 27.5349 +95.7 0 0 +95.3964 -0.216901 0.803759 +95.7854 -0.435604 1.6142 +95.3673 -0.650637 2.41103 +95.7416 -0.871076 3.2279 +95.509 -1.08645 4.02599 +96.4676 -1.31719 4.88105 +95.4217 -1.52056 5.63468 +96.4644 -1.75745 6.51249 +96.2025 -1.97261 7.30981 +96.332 -2.19581 8.13689 +95.8567 -2.40475 8.91118 +96.1703 -2.63349 9.75881 +95.8797 -2.84615 10.5468 +95.9792 -3.07039 11.3778 +95.6744 -3.28169 12.1608 +95.7589 -3.50632 12.9932 +95.44 -3.71621 13.771 +95.4107 -3.93715 14.5897 +95.7683 -4.17541 15.4726 +95.7233 -4.39752 16.2957 +95.3757 -4.60548 17.0663 +95.4142 -4.8321 17.9061 +95.0527 -5.03847 18.6708 +95.7607 -5.30315 19.6516 +94.7983 -5.47555 20.2905 +95.5857 -5.74948 21.3056 +95.2923 -5.96049 22.0875 +96.0593 -6.23997 23.1231 +95.653 -6.44506 23.8832 +95.6267 -6.6758 24.7382 +96.1703 -6.94866 25.7493 +96.03 -7.17423 26.5852 +95.4026 -7.36268 27.2835 +96.2999 -7.67071 28.425 +95.9439 -7.88154 29.2062 +95.8665 -8.11548 30.0731 +96.2549 -8.391 31.0941 +95.9701 -8.60954 31.9039 +96.338 -8.88829 32.9369 +96.0366 -9.10698 33.7473 +95.5406 -9.30674 34.4875 +96.1588 -9.61696 35.6371 +95.74 -9.82568 36.4105 +96.6126 -10.1698 37.6859 +95.9911 -10.3592 38.3876 +95.9166 -10.6076 39.3081 +96.383 -10.9188 40.4611 +96.1963 -11.1587 41.3502 +95.8189 -11.377 42.1591 +96.3405 -11.7045 43.3728 +96.4864 -11.9904 44.4322 +96.2608 -12.2321 45.328 +95.6685 -12.4273 46.0512 +96.3178 -12.7863 47.3815 +96.3294 -13.0649 48.414 +96.153 -13.3201 49.3598 +95.5274 -13.5134 50.0759 +95.7709 -13.8311 51.2533 +95.2169 -14.0355 52.0106 +95.5226 -14.3687 53.2453 +95.6408 -14.6779 54.3911 +96.0027 -15.029 55.6921 +95.4104 -15.233 56.4483 +95.6598 -15.5736 57.7105 +94.9659 -15.7625 58.4104 +95.3568 -16.134 59.7868 +95.3965 -16.4508 60.9609 +95.588 -16.7982 62.2482 +95.5986 -17.1182 63.4339 +95.0216 -17.3349 64.237 +95.0887 -17.6713 65.4836 +95.2213 -18.0246 66.793 +95.0963 -18.3334 67.9373 +95.4369 -18.7371 69.4331 +95.4404 -19.0803 70.7048 +95.5069 -19.4409 72.0412 +95.2434 -19.7384 73.1435 +95.2781 -20.1017 74.49 +95.2956 -20.4668 75.8427 +94.7597 -20.7161 76.7667 +95.2789 -21.2015 78.5654 +94.7161 -21.4515 79.4918 +95.1174 -21.925 81.2464 +95.0482 -22.2973 82.6261 +94.8876 -22.6534 83.9456 +94.8566 -23.046 85.4003 +94.7339 -23.4222 86.7943 +94.5932 -23.7995 88.1928 +94.4344 -24.1781 89.5954 +94.8937 -24.7234 91.6164 +94.7629 -25.1241 93.1011 +94.543 -25.5072 94.5209 +94.1669 -25.8535 95.8041 +94.7296 -26.4668 98.0766 +94.3124 -26.8156 99.3694 +94.0798 -27.2226 100.877 +94.2908 -27.7671 102.895 +94.4069 -28.2952 104.852 +93.8452 -28.6277 106.084 +93.9113 -29.1592 108.054 +94.0124 -29.7133 110.107 +94.2722 -30.3308 112.395 +93.6262 -30.6664 113.639 +93.7037 -31.2477 115.793 +93.5058 -31.7489 117.65 +93.3415 -32.2723 119.59 +93.8036 -33.0279 122.39 +92.2823 -33.0925 122.629 +96.8613 -35.3795 131.104 +115.805 -43.0896 159.675 +115.717 -43.8666 162.554 +115.194 -44.4952 164.884 +115.41 -45.429 168.344 +115.681 -46.4107 171.982 +116.057 -47.463 175.881 +115.098 -47.9901 177.835 +114.741 -48.7832 180.773 +111.763 -48.4614 179.581 +110.643 -48.9382 181.348 +107.75 -48.6237 180.183 +107.004 -49.2751 182.596 +104.864 -49.2886 182.646 +104.211 -50.0061 185.305 +100.373 -49.1828 182.254 +99.4607 -49.779 184.463 +95.3834 -48.7728 180.735 +95.1294 -49.7107 184.21 +92.9347 -49.644 183.963 +92.4307 -50.4884 187.092 +88.8766 -49.6578 184.014 +88.2882 -50.4743 187.04 +84.8453 -49.6497 183.985 +83.4582 -50.008 185.312 +79.5919 -48.8527 181.031 +78.9859 -49.6818 184.103 +76.7194 -49.4728 183.329 +76.4155 -50.5423 187.292 +73.4296 -49.8386 184.684 +72.7731 -50.7112 187.918 +68.6092 -49.112 181.992 +67.8296 -49.9048 184.93 +65.5369 -49.589 183.76 +64.6984 -50.3785 186.685 +62.3905 -50.028 185.386 +61.2237 -50.5905 187.471 +58.7082 -50.0301 185.394 +56.7179 -49.8868 184.863 +52.9499 -48.1105 178.281 +51.6839 -48.5555 179.93 +49.2791 -47.9161 177.56 +48.2733 -48.6318 180.212 +45.7716 -47.8296 177.24 +44.7048 -48.5146 179.778 +42.1783 -47.5988 176.384 +41.1019 -48.3035 178.996 +39.1706 -48.0128 177.919 +37.9397 -48.5852 180.04 +35.6622 -47.7999 177.13 +34.6612 -48.7246 180.556 +32.5243 -48.0573 178.084 +31.2435 -48.6435 180.256 +29.2376 -48.0951 178.224 +27.936 -48.7008 180.468 +25.9001 -48.0143 177.924 +24.6956 -48.872 181.103 +22.6799 -48.1248 178.334 +21.3954 -48.9252 181.3 +19.3587 -47.9872 177.824 +18.0765 -48.9114 181.248 +16.1935 -48.2238 178.701 +14.7425 -48.8043 180.852 +12.9817 -48.3681 179.235 +11.5138 -49.0458 181.747 +9.75019 -48.4718 179.62 +8.26587 -49.3251 182.782 +6.47037 -48.2743 178.888 +4.971 -49.4593 183.279 +3.25138 -48.531 179.839 +1.66241 -49.6307 183.914 +1.14072e-14 -48.5383 179.866 +-1.66153 -49.6047 183.817 +-3.25138 -48.531 179.839 +-4.98409 -49.5895 183.762 +-6.48084 -48.3525 179.177 +-8.31822 -49.6372 183.938 +-9.76589 -48.5497 179.908 +-11.642 -49.5919 183.77 +-13.0375 -48.576 180.006 +-15.0641 -49.8691 184.797 +-16.3417 -48.6652 180.336 +-18.3065 -49.5338 183.555 +-19.6304 -48.661 180.321 +-21.7237 -49.6758 184.081 +-22.9236 -48.642 180.25 +-25.3221 -50.1119 185.697 +-26.2898 -48.7368 180.602 +-28.3942 -49.4997 183.428 +-29.5505 -48.6097 180.13 +-31.7221 -49.3887 183.017 +-32.8542 -48.545 179.891 +-35.2444 -49.5442 183.594 +-36.3873 -48.7717 180.731 +-38.6774 -49.5296 183.539 +-39.8983 -48.9048 181.224 +-42.1191 -49.4989 183.426 +-43.5055 -49.0966 181.935 +-45.8954 -49.8066 184.566 +-47.0054 -49.1187 182.017 +-49.5001 -49.8678 184.793 +-50.8062 -49.4009 183.063 +-52.9934 -49.7857 184.488 +-54.3281 -49.3629 182.922 +-56.4907 -49.687 184.123 +-58.1527 -49.5567 183.64 +-60.4118 -49.9196 184.985 +-61.4635 -49.2847 182.632 +-64.3177 -50.082 185.586 +-64.8857 -49.0963 181.934 +-69.1648 -50.887 188.57 +-69.9773 -50.0913 185.621 +-74.244 -51.7364 191.717 +-74.6839 -50.6898 187.839 +-78.248 -51.7544 191.784 +-78.5175 -50.6325 187.626 +-82.0473 -51.6074 191.239 +-83.0694 -50.9871 188.94 +-86.0102 -51.5371 190.978 +-86.5129 -50.6254 187.6 +-89.6981 -51.2804 190.027 +-90.3558 -50.4842 187.077 +-94.0236 -51.3586 190.317 +-95.0827 -50.7914 188.215 +-99.5021 -51.9956 192.678 +-100.014 -51.1408 189.51 +-105.048 -52.5753 194.826 +-103.847 -50.8852 188.563 +-107.313 -51.4943 190.82 +-106.125 -49.8811 184.842 +-106.807 -49.1844 182.26 +-107.5 -48.5109 179.764 +-109.222 -48.3098 179.019 +-109.858 -47.6352 176.52 +-111.971 -47.6058 176.41 +-113.509 -47.3273 175.378 +-115.842 -47.375 175.555 +-117.097 -46.9787 174.087 +-119.715 -47.1235 174.623 +-122.687 -47.3896 175.609 +-126.082 -47.7957 177.114 +-129.055 -48.0195 177.944 +-139.427 -50.9271 188.718 +-140.246 -50.292 186.364 +-141.27 -49.7409 184.322 +-140.704 -48.648 180.272 +-140.867 -47.8301 177.242 +-140.925 -46.9948 174.146 +-141.435 -46.326 171.668 +-141.786 -45.6179 169.044 +-142.8 -45.133 167.247 +-142.57 -44.2678 164.041 +-142.164 -43.3674 160.704 +-141.84 -42.5115 157.533 +-141.271 -41.602 154.162 +-141.053 -40.8146 151.245 +-141.604 -40.2618 149.196 +-141.583 -39.5573 146.585 +-156.67 -43.0136 159.393 +-158.313 -42.7121 158.276 +-220.716 -58.5177 216.846 +-221.183 -57.6266 213.544 +-226.671 -58.0346 215.056 +-225.657 -56.7749 210.388 +-233.135 -57.6407 213.596 +-234.253 -56.913 210.9 +-242.785 -57.9625 214.789 +-244.718 -57.4083 212.735 +-251.724 -58.0237 215.015 +-252.601 -57.2098 211.999 +-261.047 -58.0886 215.256 +-262.064 -57.2918 212.304 +-270.686 -58.1355 215.43 +-271.146 -57.2064 211.987 +-281.895 -58.4205 216.486 +-282.975 -57.6008 213.449 +-146.612 -29.3103 108.614 +-142.716 -28.0193 103.83 +-142.283 -27.4305 101.648 +-142.144 -26.9068 99.7073 +-140.842 -26.1742 96.9924 +-141.304 -25.7781 95.5248 +-144.881 -25.9429 96.1353 +-147.237 -25.8748 95.8828 +-338.808 -58.4262 216.507 +-338.404 -57.2564 212.172 +-352.622 -58.5286 216.887 +-352.025 -57.3103 212.372 +-364.759 -58.2368 215.805 +-366.61 -57.3919 212.674 +-377.049 -57.8653 214.428 +-380.012 -57.1621 211.823 +-396.099 -58.3871 216.362 +-394.891 -57.0297 211.332 +-406.804 -57.5469 213.249 +-409.688 -56.7543 210.312 +-429.225 -58.2147 215.723 +-430.623 -57.1657 211.836 +-453.016 -58.8465 218.064 +-448.139 -56.9464 211.023 +-457.791 -56.8898 210.814 +-456.145 -55.4175 205.358 +-405.479 -48.1441 178.405 +-404.153 -46.8812 173.726 +-402.681 -45.6179 169.044 +-403.457 -44.619 165.342 +-402.719 -43.4609 161.051 +-401.378 -42.2507 156.566 +-402.592 -41.3175 153.108 +-403.307 -40.3352 149.468 +-403.518 -39.3071 145.659 +-404.444 -38.3525 142.121 +-405.336 -37.3969 138.58 +-402.224 -36.0838 133.714 +-402.848 -35.1182 130.136 +-403.153 -34.1284 126.468 +-386.351 -31.7377 117.609 +-380.896 -30.3402 112.43 +-379.501 -29.2879 108.531 +-380.083 -28.3953 105.223 +-378.707 -27.363 101.398 +-377.484 -26.3524 97.6528 +-379.223 -25.552 94.6867 +-379.968 -24.6825 91.4647 +-379.03 -23.7082 87.8543 +-376.691 -22.658 83.9626 +-379.193 -21.9022 81.1618 +-379.032 -20.9905 77.7833 +-377.663 -20.0188 74.1827 +-380.184 -19.2539 71.348 +-379.34 -18.3175 67.8784 +-379.939 -17.4544 64.6798 +-379.621 -16.5512 61.3328 +-379.47 -15.6589 58.0264 +-379.09 -14.7609 54.6986 +-378.679 -13.8658 51.3818 +-379.723 -13.0247 48.265 +-380.939 -12.1863 45.1581 +-3255.24 -96.6305 358.079 +-3258.35 -89.2257 330.639 +-3261.22 -81.8139 303.174 +-3263.83 -74.3962 275.686 +-3266.2 -66.9729 248.178 +-3268.32 -59.5442 220.65 +-3270.19 -52.111 193.105 +-3271.81 -44.674 165.546 +-3273.18 -37.2335 137.974 +-3274.3 -29.7902 110.392 +-3275.18 -22.3447 82.8015 +-3275.8 -14.8974 55.2045 +-3276.18 -7.44897 27.6033 +95.6 0 0 +95.5964 -0.210079 0.807373 +95.3855 -0.419264 1.61131 +95.3673 -0.628855 2.41681 +95.5418 -0.840156 3.22888 +95.3092 -1.04788 4.02719 +95.469 -1.25992 4.84209 +95.4217 -1.46966 5.64817 +96.2649 -1.6951 6.51458 +96.2025 -1.90657 7.32732 +96.1328 -2.11791 8.1395 +96.0557 -2.32908 8.95107 +96.0708 -2.54269 9.77201 +95.8797 -2.75086 10.5721 +95.7807 -2.96146 11.3814 +95.6744 -3.17182 12.1899 +95.5609 -3.38194 12.9974 +96.3301 -3.62529 13.9327 +95.9045 -3.82503 14.7003 +95.7683 -4.03563 15.5097 +95.5264 -4.24156 16.3011 +95.3757 -4.4513 17.1072 +95.2178 -4.66074 17.9121 +95.9346 -4.91497 18.8891 +95.7607 -5.12561 19.6987 +94.7983 -5.29224 20.3391 +95.3908 -5.54567 21.313 +95.2923 -5.76095 22.1404 +95.9622 -6.02497 23.1551 +94.7817 -6.17256 23.7223 +95.5301 -6.44578 24.7723 +96.074 -6.70931 25.7851 +95.8378 -6.92016 26.5954 +95.5943 -7.1305 27.4038 +95.3436 -7.34031 28.2102 +95.9439 -7.61769 29.2762 +95.6763 -7.82823 30.0853 +95.2117 -8.0222 30.8308 +95.781 -8.30492 31.9173 +95.6781 -8.53188 32.7896 +95.9426 -8.79349 33.795 +96.3836 -9.07452 34.875 +96.0654 -9.28599 35.6878 +96.7634 -9.59824 36.8878 +96.4271 -9.81052 37.7036 +96.0835 -10.0221 38.5166 +95.8246 -10.2426 39.3644 +96.383 -10.5532 40.558 +96.0136 -10.7646 41.3705 +95.6369 -10.9752 42.1798 +96.2499 -11.302 43.4358 +96.6669 -11.6107 44.6219 +96.2608 -11.8226 45.4366 +95.6685 -12.0112 46.1614 +96.0505 -12.3239 47.3631 +96.3294 -12.6275 48.53 +96.153 -12.8742 49.478 +96.1426 -13.1451 50.519 +95.5959 -13.3437 51.2821 +96.0002 -13.6772 52.564 +95.436 -13.8751 53.3244 +96.5025 -14.3143 55.0125 +95.1456 -14.3961 55.3269 +96.0073 -14.8152 56.9374 +95.4902 -15.0256 57.7461 +95.7249 -15.3566 59.0183 +95.1891 -15.5664 59.8245 +95.3131 -15.8862 61.0534 +95.5051 -16.2217 62.3431 +94.8569 -16.4167 63.0926 +94.9397 -16.7401 64.3353 +95.74 -17.1967 66.09 +95.1404 -17.4064 66.896 +94.5336 -17.6148 67.697 +95.3571 -18.0947 69.5411 +95.2817 -18.4108 70.7562 +95.2705 -18.7435 72.0349 +95.3217 -19.0933 73.3789 +95.2004 -19.4129 74.6074 +95.2956 -19.7816 76.0243 +95.2959 -20.1359 77.386 +95.2789 -20.4917 78.7535 +95.2443 -20.849 80.1266 +95.1174 -21.191 81.4409 +94.9739 -21.534 82.7592 +94.9613 -21.912 84.2119 +94.8566 -22.2744 85.6047 +94.6614 -22.6207 86.9355 +94.5932 -23.0028 88.4039 +94.4344 -23.3686 89.8099 +94.8937 -23.8958 91.8358 +94.7629 -24.283 93.324 +94.4735 -24.6352 94.6776 +94.8553 -25.1707 96.7355 +94.5932 -25.544 98.1701 +94.3124 -25.9179 99.6073 +94.0129 -26.2926 101.047 +94.1583 -26.8 102.997 +93.9477 -27.2148 104.591 +93.8452 -27.6693 106.338 +93.397 -28.0286 107.719 +93.5035 -28.5632 109.774 +93.7058 -29.1394 111.988 +93.7507 -29.6793 114.063 +93.6421 -30.1817 115.994 +93.2014 -30.5861 117.548 +93.3415 -31.1919 119.876 +93.7441 -31.9021 122.605 +92.2235 -31.9643 122.845 +97.8484 -34.5436 132.757 +115.289 -41.4615 159.344 +115.66 -42.3774 162.864 +115.641 -43.1726 165.92 +115.3 -43.8661 168.585 +115.3 -44.7092 171.826 +115.412 -45.619 175.322 +116.158 -46.8106 179.902 +115.629 -47.5149 182.609 +114.493 -47.983 184.408 +114.298 -48.8621 187.786 +111.1 -48.4572 186.23 +110.5 -49.1817 189.014 +107.676 -48.916 187.993 +106.979 -49.6156 190.682 +103.143 -48.8483 187.733 +102.554 -49.609 190.657 +98.4705 -48.6657 187.031 +98.0297 -49.5113 190.281 +94.4251 -48.7516 187.361 +94.4111 -49.8437 191.559 +91.0742 -49.1819 189.015 +89.8226 -49.6324 190.747 +86.9603 -49.1837 189.022 +85.9304 -49.7654 191.258 +82.2489 -48.7934 187.522 +81.7412 -49.6936 190.982 +78.6674 -49.0308 188.435 +77.9548 -49.8344 191.523 +75.6156 -49.604 190.637 +75.2946 -50.712 194.895 +72.2689 -49.9998 192.159 +71.3679 -50.7502 195.042 +67.2624 -49.1907 189.049 +66.1263 -49.7666 191.262 +63.8429 -49.4788 190.156 +63.3888 -50.6261 194.565 +60.7841 -50.0651 192.409 +59.9556 -50.9693 195.884 +54.907 -48.2185 185.312 +53.7149 -48.7742 187.448 +50.8062 -47.7471 183.501 +49.8757 -48.564 186.64 +47.2715 -47.7433 183.486 +46.1521 -48.4086 186.043 +43.8205 -47.7964 183.69 +42.7901 -48.604 186.794 +40.2101 -47.637 183.078 +39.6543 -49.0807 188.626 +37.0169 -47.9548 184.299 +35.9186 -48.8019 187.555 +33.6009 -47.9861 184.419 +32.5309 -48.9523 188.133 +30.1762 -47.9772 184.385 +29.015 -48.8886 187.888 +26.9161 -48.2273 185.346 +25.6092 -48.9835 188.253 +23.4111 -48.0133 184.524 +22.1878 -49.0386 188.465 +20.1426 -48.259 185.468 +18.7474 -49.0283 188.425 +16.7165 -48.1145 184.913 +15.2838 -48.9024 187.941 +13.47 -48.5073 186.423 +11.9655 -49.2638 189.33 +10.0747 -48.4081 186.041 +8.48833 -48.9568 188.15 +6.70419 -48.3444 185.796 +5.08618 -48.911 187.974 +3.36308 -48.5176 186.462 +1.7008 -49.0772 188.613 +1.17991e-14 -48.5249 186.49 +-1.70342 -49.1527 188.903 +-3.35959 -48.4673 186.269 +-5.14639 -49.4902 190.2 +-6.72513 -48.4955 186.377 +-8.5843 -49.5103 190.277 +-10.0851 -48.4585 186.235 +-12.0449 -49.5906 190.586 +-13.4351 -48.3817 185.94 +-15.4878 -49.5551 190.449 +-16.8385 -48.4658 186.263 +-18.8624 -49.3292 189.581 +-20.2785 -48.5846 186.72 +-22.3463 -49.3889 189.811 +-23.7401 -48.6881 187.117 +-25.9225 -49.5828 190.556 +-27.1527 -48.6511 186.975 +-29.4141 -49.5609 190.472 +-30.5204 -48.5244 186.488 +-32.927 -49.5483 190.423 +-33.8788 -48.3829 185.944 +-36.6293 -49.7674 191.265 +-37.6085 -48.7211 187.244 +-39.9533 -49.4509 190.049 +-40.8131 -48.3512 185.823 +-43.7424 -49.6856 190.951 +-44.4953 -48.5325 186.519 +-47.3194 -49.6327 190.748 +-48.1425 -48.6229 186.867 +-51.1276 -49.783 191.325 +-51.7379 -48.6229 186.867 +-55.1313 -50.0603 192.391 +-55.348 -48.6058 186.801 +-58.706 -49.9069 191.801 +-59.2053 -48.7647 187.412 +-63.0279 -50.3378 193.457 +-63.0704 -48.8803 187.856 +-67.6176 -50.889 195.576 +-68.7274 -50.2622 193.167 +-73.3374 -52.1506 200.424 +-74.6972 -51.6799 198.616 +-78.2013 -52.6696 202.419 +-78.6976 -51.6258 198.407 +-82.0596 -52.4583 201.607 +-82.6382 -51.5057 197.946 +-86.0655 -52.3226 201.085 +-86.6642 -51.4128 197.589 +-89.3995 -51.7746 198.979 +-89.6041 -50.679 194.769 +-92.9328 -51.3508 197.351 +-93.779 -50.6427 194.629 +-98.5009 -52.003 199.857 +-98.8527 -51.0376 196.147 +-103.206 -52.1254 200.328 +-103.873 -51.3357 197.293 +-109.204 -52.8255 203.018 +-109.856 -52.0277 199.952 +-110.749 -51.3637 197.4 +-106.464 -48.3653 185.877 +-108.629 -48.3487 185.813 +-108.8 -47.454 182.374 +-110.542 -47.2565 181.616 +-111.248 -46.6232 179.182 +-112.651 -46.2911 177.905 +-114.357 -46.0846 177.112 +-115.627 -45.7041 175.649 +-117.261 -45.4694 174.747 +-120.101 -45.693 175.607 +-122.631 -45.7822 175.949 +-125.686 -46.0506 176.981 +-137.372 -49.403 189.865 +-141.053 -49.7964 191.377 +-141.186 -48.9344 188.064 +-141.151 -48.0352 184.608 +-141.366 -47.2404 181.554 +-142.207 -46.6683 179.355 +-141.541 -45.62 175.326 +-142.743 -45.1889 173.669 +-142.478 -44.306 170.276 +-141.591 -43.2529 166.229 +-142.506 -42.7664 164.359 +-141.515 -41.7239 160.353 +-141.053 -40.8604 157.034 +-142.331 -40.5112 155.692 +-141.99 -39.7101 152.613 +-156.534 -43.017 165.322 +-154.882 -41.8241 160.738 +-218.14 -57.8852 222.463 +-219.859 -57.3312 220.334 +-226.534 -58.0494 223.094 +-226.203 -56.9615 218.914 +-232.948 -57.645 221.54 +-233.714 -56.8336 218.422 +-242.855 -58.0338 223.034 +-241.786 -56.7767 218.203 +-249.126 -57.4851 220.926 +-251.109 -56.9353 218.813 +-260.711 -58.0834 223.225 +-261.431 -57.2275 219.936 +-269.564 -57.9753 222.81 +-269.724 -56.9925 219.033 +-280.331 -58.1914 223.64 +-281.405 -57.3831 220.534 +-291.287 -58.3458 224.233 +-292.825 -57.6105 221.408 +-140.265 -27.1027 104.161 +-142.157 -26.9753 103.671 +-141.961 -26.4523 101.661 +-142.549 -26.0801 100.231 +-140.923 -25.3125 97.2808 +-141.549 -24.9585 95.9201 +-144.222 -24.9603 95.9269 +-147.071 -24.9803 96.0041 +-350.899 -58.4855 224.771 +-351.571 -57.4929 220.956 +-365.273 -58.5986 225.205 +-364.237 -57.3133 220.266 +-376.014 -58.0239 222.997 +-378.868 -57.3252 220.311 +-393.506 -58.3692 224.324 +-392.829 -57.1119 219.491 +-409.502 -58.342 224.219 +-407.748 -56.9149 218.735 +-420.778 -57.5309 221.102 +-424.521 -56.8404 218.448 +-450.513 -59.0564 226.965 +-448.978 -57.6069 221.394 +-471.183 -59.1574 227.353 +-454.43 -55.8125 214.498 +-406.344 -48.806 187.57 +-404.938 -47.5494 182.741 +-403.75 -46.3339 178.07 +-402.508 -45.1274 173.433 +-402.223 -44.0404 169.255 +-403.365 -43.1154 165.701 +-404.752 -42.218 162.251 +-402.212 -40.9211 157.267 +-401.847 -39.8605 153.191 +-401.626 -38.8225 149.202 +-400.896 -37.7444 145.059 +-401.061 -36.7586 141.27 +-404.582 -36.0777 138.653 +-404.871 -35.1052 134.916 +-402.563 -33.9186 130.355 +-403.914 -33.0483 127.011 +-386.351 -30.6752 117.89 +-379.653 -29.2288 112.332 +-379.98 -28.3432 108.928 +-376.911 -27.2155 104.594 +-378.899 -26.4603 101.692 +-378.74 -25.555 98.2127 +-380.482 -24.7785 95.2284 +-379.095 -23.8014 91.473 +-379.71 -22.9556 88.2228 +-378.933 -22.0297 84.6644 +-378.315 -21.1199 81.1677 +-377.272 -20.1935 77.6073 +-377.663 -19.3486 74.3604 +-379.89 -18.5949 71.4635 +-380.52 -17.7593 68.2524 +-379.545 -16.8525 64.7674 +-379.227 -15.9804 61.4158 +-378.778 -15.1071 58.0593 +-379.485 -14.2816 54.8869 +-379.669 -13.4367 51.6395 +-379.525 -12.5821 48.3553 +-379.153 -11.7231 45.0539 +-3255.24 -93.3955 358.936 +-3258.35 -86.2387 331.431 +-3261.22 -79.075 303.9 +-3263.83 -71.9056 276.346 +-3266.2 -64.7308 248.772 +-3268.32 -57.5508 221.178 +-3270.19 -50.3665 193.568 +-3271.81 -43.1784 165.942 +-3273.18 -35.987 138.305 +-3274.3 -28.7929 110.656 +-3275.18 -21.5966 82.9998 +-3275.8 -14.3987 55.3367 +-142.295 -0.312703 1.20177 +95.4 0 0 +95.3964 -0.202361 0.807542 +95.5854 -0.405556 1.61841 +95.3673 -0.607022 2.42238 +95.3419 -0.809291 3.22955 +95.3092 -1.0115 4.03648 +95.469 -1.21617 4.85326 +96.1204 -1.42902 5.70265 +96.0654 -1.63286 6.51608 +96.3022 -1.84229 7.35184 +96.2324 -2.04649 8.16673 +95.8567 -2.24355 8.95312 +95.9714 -2.45188 9.78447 +95.8797 -2.65536 10.5965 +95.7807 -2.85864 11.4077 +95.6744 -3.0617 12.218 +95.5609 -3.26452 13.0274 +95.2422 -3.45991 13.8071 +95.1144 -3.6618 14.6128 +95.7683 -3.89552 15.5454 +95.6248 -4.09851 16.3555 +95.1791 -4.28791 17.1113 +95.0215 -4.48964 17.9163 +94.8567 -4.69102 18.72 +95.7607 -4.94766 19.7441 +95.677 -5.15585 20.5749 +95.4883 -5.3586 21.384 +95.2923 -5.56093 22.1915 +95.089 -5.76285 22.9972 +95.653 -6.01303 23.9956 +95.4335 -6.2157 24.8044 +95.2067 -6.41791 25.6113 +95.6455 -6.6665 26.6033 +95.5943 -6.88294 27.467 +95.3436 -7.08546 28.2752 +95.9439 -7.35321 29.3437 +95.6763 -7.55644 30.1547 +96.2549 -7.82852 31.2405 +95.781 -8.01658 31.991 +95.3953 -8.21133 32.7681 +95.9426 -8.48819 33.873 +96.3836 -8.75946 34.9555 +96.0654 -8.9636 35.7701 +95.74 -9.16702 36.5819 +96.4271 -9.46992 37.7906 +96.0835 -9.6741 38.6054 +96.653 -9.97252 39.7963 +96.383 -10.1868 40.6516 +96.0136 -10.3909 41.4659 +95.8189 -10.6143 42.3575 +96.2499 -10.9096 43.536 +96.4864 -11.1866 44.6413 +96.2608 -11.4122 45.5414 +96.4739 -11.6918 46.6575 +96.0505 -11.8961 47.4724 +96.3294 -12.1891 48.6419 +95.8881 -12.393 49.4555 +96.1426 -12.6887 50.6356 +95.5959 -12.8804 51.4004 +95.2169 -13.0946 52.2554 +95.436 -13.3933 53.4474 +95.6408 -13.694 54.6471 +96.0027 -14.0215 55.9542 +95.2399 -14.1865 56.6127 +95.4902 -14.5039 57.8793 +94.9659 -14.7059 58.6854 +95.1891 -15.0259 59.9625 +95.3131 -15.3346 61.1943 +95.5051 -15.6585 62.4869 +95.5986 -15.9707 63.7325 +95.677 -16.2844 64.9844 +95.74 -16.5996 66.2425 +95.1404 -16.8021 67.0503 +95.3374 -17.1478 68.4302 +95.3571 -17.4664 69.7016 +95.2024 -17.7568 70.8604 +95.3493 -18.1077 72.2607 +95.3217 -18.4304 73.5482 +94.6564 -18.6319 74.3523 +94.524 -18.9402 75.5826 +95.2193 -19.4212 77.5022 +94.5945 -19.6382 78.3682 +95.2443 -20.1252 80.3114 +95.1174 -20.4553 81.6288 +95.0482 -20.8026 83.015 +94.8876 -21.1349 84.3407 +94.8566 -21.5011 85.8022 +94.7339 -21.8521 87.2028 +94.5212 -22.1873 88.5405 +94.4344 -22.5573 90.0171 +94.9644 -23.0833 92.1162 +94.6928 -23.4226 93.4701 +95.0987 -23.9373 95.5241 +94.2357 -24.1381 96.3255 +94.5932 -24.6571 98.3966 +94.3124 -25.0181 99.8371 +94.5482 -25.5242 101.857 +94.1583 -25.8696 103.235 +94.4069 -26.3985 105.346 +93.8452 -26.7087 106.584 +93.397 -27.0555 107.968 +93.6307 -27.609 110.176 +93.6429 -28.1088 112.171 +93.7507 -28.6489 114.326 +93.8268 -29.1914 116.491 +93.2014 -29.5242 117.819 +93.4017 -30.1284 120.231 +93.3872 -30.6773 122.421 +92.2823 -30.8742 123.207 +100.055 -34.0964 136.065 +115.805 -40.2012 160.427 +115.66 -40.9061 163.24 +115.697 -41.6939 166.384 +115.796 -42.5254 169.702 +115.246 -43.1365 172.141 +115.788 -44.1788 176.3 +115.045 -44.7525 178.589 +115.159 -45.6788 182.286 +115.935 -46.9005 187.161 +115.973 -47.8568 190.977 +113.5 -47.7853 190.692 +114.242 -49.0821 195.867 +110.052 -48.2595 192.584 +111.035 -49.7087 198.368 +106.429 -48.6545 194.161 +106.572 -49.7625 198.582 +101.966 -48.6438 194.118 +101.822 -49.6414 198.099 +97.7568 -48.7194 194.42 +97.5538 -49.7148 198.392 +92.6379 -48.2897 192.705 +92.1034 -49.1256 196.041 +88.2212 -48.1645 192.205 +88.2033 -49.3084 196.77 +84.0853 -48.1511 192.152 +84.3817 -49.5177 197.605 +80.2782 -48.2977 192.737 +80.3004 -49.5515 197.74 +76.8699 -48.6762 194.247 +77.606 -50.454 201.342 +73.7737 -49.269 196.613 +74.5391 -51.165 204.179 +69.7041 -49.2068 196.365 +68.4426 -49.7214 198.418 +65.6043 -49.0787 195.853 +66.3958 -51.1866 204.265 +62.5675 -49.7447 198.511 +62.6538 -51.4139 205.172 +57.1121 -48.4136 193.199 +56.2804 -49.3295 196.854 +52.6956 -47.8033 190.764 +52.1542 -49.0194 195.617 +49.0376 -47.8074 190.78 +48.3932 -48.9968 195.526 +45.2602 -47.6528 190.163 +44.5649 -48.8624 194.99 +41.6655 -47.6475 190.142 +40.9502 -48.9251 195.24 +38.7915 -48.5089 193.58 +37.5041 -49.1869 196.285 +35.0943 -48.3789 193.061 +33.8678 -49.1946 196.316 +31.3495 -48.1122 191.997 +30.1827 -49.0904 195.9 +27.932 -48.3101 192.786 +26.6665 -49.235 196.477 +24.447 -48.3971 193.133 +23.1501 -49.3888 197.091 +20.9475 -48.445 193.325 +19.495 -49.2136 196.392 +17.4399 -48.454 193.36 +15.9978 -49.4098 197.174 +13.9164 -48.375 193.045 +12.4478 -49.4703 197.416 +10.4724 -48.5724 193.833 +8.87218 -49.394 197.111 +7.00433 -48.7552 194.562 +5.3558 -49.7158 198.396 +3.47652 -48.4129 193.196 +1.78545 -49.7309 198.456 +1.22889e-14 -48.7848 194.681 +-1.78021 -49.585 197.874 +-3.48525 -48.5344 193.681 +-5.34795 -49.6429 198.105 +-7.00433 -48.7552 194.562 +-8.89836 -49.5398 197.693 +-10.5143 -48.7666 194.608 +-12.4844 -49.6159 197.997 +-13.9722 -48.569 193.819 +-16.0527 -49.5794 197.852 +-17.5445 -48.7445 194.52 +-19.7059 -49.7457 198.515 +-21.0416 -48.6625 194.193 +-23.3425 -49.7996 198.73 +-24.6664 -48.8312 194.866 +-27.045 -49.9338 199.266 +-28.1826 -48.7432 194.515 +-30.5818 -49.7394 198.49 +-31.6623 -48.5923 193.912 +-34.2474 -49.7459 198.516 +-35.2679 -48.6181 194.015 +-37.9961 -49.8322 198.86 +-38.8487 -48.5804 193.865 +-41.648 -49.7586 198.566 +-42.6427 -48.7649 194.601 +-45.5389 -49.9304 199.252 +-46.4299 -48.8845 195.078 +-49.327 -49.9423 199.3 +-50.223 -48.963 195.392 +-53.1306 -49.9372 199.279 +-54.1449 -49.1183 196.011 +-57.2692 -50.1961 200.312 +-57.8838 -49.068 195.811 +-61.0633 -50.1086 199.963 +-61.8659 -49.1869 196.285 +-65.614 -50.5838 201.86 +-66.315 -49.6105 197.976 +-70.8859 -51.4965 205.502 +-72.3087 -51.0454 203.702 +-75.7742 -52.0128 207.562 +-77.2281 -51.576 205.819 +-80.5477 -52.3665 208.974 +-80.9195 -51.2403 204.48 +-84.7351 -52.2882 208.661 +-85.4852 -51.4302 205.237 +-88.2851 -51.8084 206.747 +-88.9695 -50.9479 203.313 +-91.5927 -51.2031 204.331 +-92.0852 -50.2741 200.624 +-97.1212 -51.8021 206.721 +-97.8361 -50.9992 203.517 +-101.988 -51.9744 207.409 +-102.535 -51.1008 203.923 +-106.552 -51.9472 207.3 +-107.369 -51.2211 204.403 +-112.436 -52.5007 209.509 +-112.767 -51.552 205.723 +-115.472 -51.6954 206.295 +-108.161 -47.4304 189.276 +-110.401 -47.4319 189.282 +-110.1 -46.3538 184.98 +-110.542 -45.6159 182.035 +-111.145 -44.963 179.429 +-112.285 -44.5388 177.736 +-114.039 -44.3609 177.026 +-115.788 -44.1788 176.3 +-117.206 -43.8704 175.069 +-119.55 -43.9039 175.203 +-122.799 -44.2532 176.597 +-125.516 -44.3915 177.149 +-141.329 -49.0617 195.785 +-141.285 -48.1465 192.133 +-141.539 -47.3534 188.968 +-141.925 -46.6215 186.048 +-142.028 -45.814 182.825 +-142.876 -45.2602 180.615 +-142.71 -44.4 177.183 +-142.618 -43.5821 173.919 +-142.478 -42.7678 170.669 +-141.909 -41.8448 166.986 +-141.735 -41.0582 163.847 +-142.099 -40.4418 161.387 +-142.365 -39.8086 158.86 +-157.704 -43.3281 172.905 +-157.915 -42.6307 170.122 +-206.325 -54.7314 218.411 +-212.17 -55.305 220.7 +-221.65 -56.7749 226.566 +-225.278 -56.7046 226.285 +-232.982 -57.6288 229.973 +-233.133 -56.6684 226.141 +-241.079 -57.5858 229.802 +-241.914 -56.7853 226.607 +-248.513 -57.324 228.757 +-248.807 -56.3969 225.057 +-259.595 -57.8211 230.741 +-261.215 -57.1706 228.145 +-270.298 -58.1285 231.968 +-270.714 -57.202 228.27 +-280.666 -58.2673 232.522 +-281.138 -57.3417 228.828 +-290.902 -58.2892 232.609 +-290.963 -57.2724 228.551 +-299.348 -57.8787 230.971 +-300.784 -57.1217 227.95 +-140.662 -26.2356 104.696 +-142.237 -26.0533 103.968 +-141.72 -25.4904 101.722 +-142.468 -25.1603 100.405 +-141.086 -24.4619 97.6177 +-141.058 -24.0083 95.8076 +-143.728 -24.0111 95.8185 +-147.237 -24.1403 96.3341 +-362.49 -58.3198 232.731 +-364.486 -57.5354 229.601 +-378.008 -58.5364 233.595 +-375.092 -56.9722 227.353 +-394.09 -58.702 234.256 +-392.668 -57.3505 228.863 +-407.378 -58.3288 232.767 +-409.284 -57.4382 229.213 +-423.776 -58.2795 232.57 +-420.342 -56.6361 226.012 +-424.644 -56.0437 223.648 +-437.765 -56.5787 225.783 +-471.446 -59.6548 238.058 +-470.095 -58.2221 232.341 +-492.035 -59.6307 237.962 +-453.891 -53.8108 214.737 +-405.08 -46.9649 187.418 +-405.029 -45.9088 183.203 +-404.478 -44.8059 178.803 +-405.249 -43.8572 175.017 +-404.057 -42.7053 170.42 +-402.537 -41.5332 165.742 +-400.687 -40.3429 160.992 +-403.047 -39.5823 157.957 +-402.313 -38.521 153.722 +-402.933 -37.5966 150.033 +-403.518 -36.6722 146.344 +-402.376 -35.5988 142.061 +-402.791 -34.671 138.358 +-404.587 -33.8628 135.133 +-404.081 -32.8645 131.149 +-403.533 -31.8708 127.184 +-388.163 -29.749 118.716 +-379.27 -28.1856 112.477 +-379.309 -27.3107 108.986 +-379.122 -26.4247 105.451 +-379.189 -25.5611 102.004 +-379.802 -24.7371 98.7158 +-379.32 -23.8452 95.1567 +-379.968 -23.0279 91.8953 +-379.419 -22.1416 88.3584 +-380.199 -21.336 85.1433 +-378.022 -20.3709 81.2919 +-379.032 -19.5834 78.1495 +-380.211 -18.8029 75.0348 +-378.025 -17.8611 71.2767 +-378.946 -17.0719 68.1271 +-378.56 -16.2252 64.7484 +-381.397 -15.5139 61.9097 +-379.075 -14.594 58.2388 +-377.211 -13.7031 54.6837 +-379.57 -12.9667 51.7451 +-379.129 -12.1326 48.4162 +-380.145 -11.3457 45.2761 +-3255.24 -90.153 359.764 +-3258.35 -83.2446 332.196 +-3261.22 -76.3296 304.601 +-3263.83 -69.4091 276.984 +-3266.2 -62.4834 249.346 +-3268.32 -55.5527 221.689 +-3270.19 -48.6178 194.014 +-3271.81 -41.6793 166.325 +-3273.18 -34.7376 138.624 +-3274.3 -27.7932 110.912 +-3275.18 -20.8468 83.1913 +-3275.8 -13.8988 55.4644 +-143.495 -0.304391 1.2147 +95.4 0 0 +95.3964 -0.195066 0.809335 +95.5854 -0.390936 1.622 +95.3673 -0.58514 2.42776 +95.3419 -0.780117 3.23673 +96.2083 -0.984234 4.08361 +95.469 -1.17233 4.86404 +96.1204 -1.37751 5.71531 +95.3671 -1.56255 6.48307 +95.405 -1.75933 7.29952 +96.1328 -1.97068 8.1764 +96.0557 -2.16717 8.99164 +96.8664 -2.38554 9.89768 +95.8797 -2.55963 10.62 +95.7807 -2.75559 11.433 +95.6744 -2.95133 12.2452 +95.5609 -3.14684 13.0563 +95.2422 -3.33518 13.8378 +96.0033 -3.56279 14.7821 +94.8807 -3.72029 15.4356 +95.5264 -3.94671 16.375 +95.1791 -4.13334 17.1493 +95.2178 -4.33674 17.9933 +95.1507 -4.53593 18.8197 +94.8803 -4.72544 19.606 +95.5794 -4.96491 20.5995 +95.4883 -5.16543 21.4315 +95.195 -5.35501 22.2181 +95.089 -5.55511 23.0483 +95.4594 -5.78455 24.0002 +95.4335 -5.99163 24.8594 +96.074 -6.24291 25.902 +95.8378 -6.43909 26.716 +95.5943 -6.63481 27.528 +96.2043 -6.89169 28.5938 +95.9439 -7.08814 29.4089 +95.4861 -7.26956 30.1616 +96.0652 -7.53145 31.2482 +95.781 -7.72759 32.062 +95.3953 -7.91532 32.8409 +95.9426 -8.1822 33.9482 +95.5406 -8.36986 34.7268 +96.1588 -8.64886 35.8843 +95.74 -8.83656 36.6631 +96.3344 -9.11975 37.8381 +96.0835 -9.32536 38.6912 +96.653 -9.61302 39.8847 +96.383 -9.81961 40.7418 +96.0136 -10.0163 41.558 +95.8189 -10.2317 42.4516 +95.4342 -10.4272 43.2629 +95.8546 -10.7128 44.4475 +96.0811 -10.9802 45.5573 +95.6685 -11.1763 46.3707 +96.0505 -11.4672 47.5778 +96.3294 -11.7497 48.7499 +95.8881 -11.9462 49.5653 +96.1426 -12.2313 50.748 +95.5959 -12.4161 51.5146 +95.2169 -12.6226 52.3714 +95.436 -12.9105 53.5661 +95.6408 -13.2003 54.7685 +95.1456 -13.3954 55.5777 +95.3252 -13.6873 56.7891 +95.575 -13.9935 58.0593 +95.7249 -14.2891 59.2858 +95.1052 -14.4715 60.0428 +95.3131 -14.7818 61.3302 +95.5051 -15.0941 62.6257 +95.5986 -15.3949 63.874 +95.0216 -15.5898 64.6827 +95.8214 -16.0148 66.446 +94.9786 -16.1689 67.085 +95.257 -16.5157 68.5243 +95.3571 -16.8368 69.8563 +95.2817 -17.131 71.0769 +95.5069 -17.4838 72.541 +95.2434 -17.7514 73.651 +94.5787 -17.9455 74.4562 +94.6012 -18.2723 75.8123 +94.6065 -18.6006 77.1744 +95.2789 -19.0672 79.1104 +95.1689 -19.3843 80.426 +95.0425 -19.7024 81.7457 +95.0482 -20.0527 83.1994 +94.8876 -20.373 84.528 +94.8566 -20.726 85.9928 +94.7339 -21.0643 87.3965 +94.5212 -21.3874 88.7371 +95.1476 -21.9084 90.8984 +94.2573 -22.0855 91.6333 +94.6928 -22.5782 93.6776 +94.4735 -22.9227 95.1068 +94.2357 -23.268 96.5394 +94.6614 -23.7854 98.6861 +94.3124 -24.1162 100.059 +94.0129 -24.4649 101.505 +94.2908 -24.9719 103.609 +93.9477 -25.3229 105.065 +93.8452 -25.7458 106.82 +93.9755 -26.2419 108.878 +93.4399 -26.5596 110.196 +93.7687 -27.132 112.571 +93.813 -27.6344 114.656 +93.7037 -28.1021 116.596 +93.2014 -28.4599 118.081 +93.3415 -29.0236 120.42 +93.4467 -29.5902 122.77 +92.2823 -29.7612 123.48 +101.739 -33.4205 138.662 +115.748 -38.7327 160.703 +115.66 -39.4315 163.602 +115.361 -40.0742 166.269 +115.686 -40.9533 169.916 +115.518 -41.6797 172.93 +115.627 -42.5269 176.445 +115.522 -43.318 179.727 +115.159 -44.0322 182.691 +115.369 -44.9888 186.66 +115.465 -45.9298 190.564 +115.5 -46.8743 194.483 +115.67 -47.9041 198.756 +113.688 -48.0567 199.388 +111.464 -48.1021 199.577 +108.824 -47.9557 198.969 +107.033 -48.1764 199.885 +104.191 -47.9133 198.793 +102.402 -48.1244 199.669 +99.8609 -47.974 199.045 +97.8982 -48.0918 199.534 +95.5117 -47.9929 199.124 +93.8036 -48.2289 200.103 +90.7836 -47.7767 198.227 +90.5958 -48.8201 202.556 +87.7582 -48.4426 200.99 +87.3666 -49.4213 205.05 +83.837 -48.6204 201.727 +83.4523 -49.6401 205.958 +80.3819 -49.0651 203.573 +79.7072 -49.952 207.252 +77.1939 -49.6947 206.185 +76.8757 -50.8665 211.047 +73.8063 -50.2243 208.382 +73.2656 -51.3066 212.872 +67.6747 -48.8025 202.483 +67.328 -50.034 207.593 +65.7252 -50.3714 208.992 +64.9543 -51.3801 213.178 +61.8806 -50.565 209.795 +60.7433 -51.3218 212.936 +55.3355 -48.3887 200.766 +54.2073 -49.1125 203.769 +51.36 -48.2666 200.259 +50.2841 -49.0759 203.617 +47.4197 -48.1267 199.679 +46.3397 -48.9768 203.206 +43.7446 -48.2216 200.073 +42.6847 -49.1589 203.961 +40.0126 -48.2322 200.117 +39.1077 -49.4412 205.133 +36.3446 -48.2961 200.382 +35.1551 -49.2238 204.231 +32.7417 -48.4374 200.968 +31.4391 -49.2906 204.508 +29.0315 -48.4016 200.819 +27.7238 -49.3419 204.721 +25.4707 -48.6059 201.667 +24.0444 -49.4478 205.16 +21.8151 -48.6328 201.779 +20.2714 -49.3285 204.665 +18.111 -48.5044 201.246 +16.5706 -49.3339 204.688 +14.4605 -48.4543 201.038 +13.0094 -49.8386 206.782 +10.844 -48.4827 201.156 +9.23859 -49.5797 205.707 +7.24863 -48.6366 201.795 +5.54166 -49.5865 205.736 +3.6301 -48.7291 202.179 +1.85352 -49.7657 206.479 +1.27788e-14 -48.9007 202.89 +-1.84566 -49.5549 205.604 +-3.64581 -48.94 203.053 +-5.55213 -49.6802 206.125 +-7.2905 -48.9178 202.961 +-9.30402 -49.9309 207.165 +-10.9487 -48.9506 203.097 +-13.0033 -49.8152 206.685 +-14.6 -48.9217 202.978 +-16.8059 -50.0347 207.595 +-18.2853 -48.9714 203.184 +-20.5589 -50.0282 207.568 +-21.8778 -48.7725 202.358 +-24.4066 -50.1927 208.251 +-25.5804 -48.8151 202.535 +-28.1414 -50.0853 207.805 +-29.3377 -48.9121 202.938 +-31.8677 -49.9626 207.296 +-33.039 -48.8772 202.793 +-35.6338 -49.8939 207.011 +-36.796 -48.8962 202.872 +-39.7091 -50.2013 208.287 +-40.6805 -49.0373 203.457 +-43.7015 -50.3297 208.819 +-44.4099 -48.955 203.116 +-47.5734 -50.2808 208.616 +-48.3645 -49.0858 203.658 +-51.5447 -50.3063 208.722 +-52.3761 -49.2214 204.221 +-55.5092 -50.292 208.663 +-56.3708 -49.2941 204.522 +-59.7278 -50.4637 209.375 +-60.1992 -49.1912 204.096 +-64.3011 -50.8635 211.034 +-65.0819 -49.8784 206.947 +-68.8015 -51.129 212.135 +-69.8069 -50.3403 208.863 +-73.6147 -51.551 213.886 +-74.6528 -50.8002 210.771 +-78.3779 -51.8605 215.171 +-79.3829 -51.1039 212.031 +-82.4388 -51.6639 214.355 +-83.0697 -50.7058 210.38 +-87.0074 -51.7548 214.732 +-87.583 -50.793 210.741 +-91.1935 -51.5859 214.031 +-91.6264 -50.5779 209.849 +-95.8194 -51.6351 214.235 +-96.4779 -50.7735 210.661 +-100.397 -51.6191 214.169 +-101.259 -50.8808 211.106 +-104.873 -51.5179 213.749 +-106.13 -50.9856 211.54 +-110.032 -51.7103 214.547 +-111.046 -51.0657 211.873 +-115.622 -52.0423 215.925 +-116.523 -51.3487 213.047 +-121.294 -52.3439 217.176 +-115.288 -48.7331 202.195 +-115.079 -47.6593 197.74 +-110.3 -44.7639 185.727 +-110.542 -43.9715 182.439 +-111.557 -43.5026 180.493 +-112.128 -42.8735 177.883 +-114.251 -42.8412 177.749 +-115.681 -42.5466 176.527 +-117.206 -42.2889 175.458 +-119.163 -42.1844 175.024 +-122.631 -42.5996 176.747 +-125.686 -42.8494 177.783 +-141.673 -47.4083 196.698 +-142.563 -46.8305 194.301 +-141.833 -45.7412 189.782 +-143.114 -45.3176 188.024 +-142.63 -44.3496 184.008 +-142.45 -43.4986 180.477 +-142.279 -42.6701 177.039 +-141.747 -41.7542 173.239 +-141.408 -40.9165 169.764 +-142.8 -40.5897 168.408 +-142.892 -39.9013 165.551 +-160.349 -43.9904 182.518 +-158.373 -42.6884 177.115 +-191.762 -50.7864 210.714 +-199.468 -51.9071 215.364 +-206.595 -52.8275 219.183 +-217.489 -54.6481 226.736 +-228.74 -56.4787 234.332 +-232.363 -56.3796 233.921 +-243.706 -58.1084 241.093 +-241.76 -56.647 235.03 +-251.635 -57.9406 240.397 +-248.172 -56.1542 232.985 +-258.669 -57.5156 238.634 +-259.119 -56.617 234.905 +-269.033 -57.763 239.66 +-268.424 -56.6306 234.962 +-280.858 -58.2222 241.566 +-281.658 -57.3689 238.025 +-292.832 -58.6016 243.14 +-290.407 -57.0971 236.897 +-301.474 -58.23 241.598 +-300.134 -56.9478 236.278 +-312.652 -58.2719 241.772 +-311.973 -57.1109 236.955 +-140.9 -25.3327 105.106 +-142.237 -25.1141 104.199 +-141.64 -24.5576 101.89 +-142.549 -24.2671 100.685 +-140.923 -23.5529 97.7217 +-141.058 -23.1429 96.0203 +-142.903 -23.0128 95.4807 +-147.237 -23.27 96.548 +-149.432 -23.175 96.1537 +-377.737 -57.4776 238.476 +-397.49 -59.3343 246.18 +-393.494 -57.613 239.038 +-411.91 -59.1445 245.392 +-407.326 -57.3466 237.933 +-425.731 -58.7593 243.794 +-424.179 -57.3827 238.082 +-425.43 -56.3979 233.996 +-428.564 -55.6622 230.944 +-427.984 -54.4482 225.907 +-462.753 -57.6522 239.2 +-491.581 -59.9604 248.777 +-490.321 -58.5381 242.876 +-517.004 -60.3978 250.592 +-402.66 -46.0163 190.923 +-406.344 -45.4132 188.421 +-405.391 -44.2934 183.775 +-405.479 -43.2976 179.643 +-405.614 -42.3144 175.564 +-403.14 -41.0723 170.41 +-402.537 -40.036 166.11 +-404.382 -39.2473 162.838 +-402.491 -38.1029 158.09 +-401.94 -37.0982 153.921 +-401.16 -36.0818 149.704 +-403.425 -35.342 146.635 +-404.068 -34.4599 142.975 +-403.639 -33.4914 138.957 +-402.885 -32.5048 134.863 +-403.701 -31.65 131.317 +-401.916 -30.5989 126.956 +-387.686 -28.6414 118.834 +-379.462 -27.1831 112.783 +-380.172 -26.3862 109.477 +-379.506 -25.4982 105.793 +-379.189 -24.6397 102.231 +-378.063 -23.7362 98.4819 +-376.029 -22.7862 94.5404 +-379.192 -22.1525 91.9112 +-379.03 -21.3216 88.4638 +-379.42 -20.5247 85.1574 +-380.17 -19.7481 81.9353 +-376 -18.7264 77.6964 +-379.329 -18.083 75.0269 +-379.89 -17.3022 71.7874 +-379.93 -16.4992 68.4555 +-379.249 -15.6688 65.0103 +-379.523 -14.8811 61.7423 +-380.655 -14.1266 58.6114 +-380.178 -13.313 55.2362 +-378.579 -12.4667 51.7247 +-379.525 -11.7074 48.5745 +-379.55 -10.9195 45.3055 +-377.955 -10.09 41.8637 +-380.902 -9.38049 38.9199 +-3261.22 -73.578 305.277 +-3263.83 -66.907 277.599 +-3266.2 -60.231 249.9 +-3268.32 -53.5501 222.181 +-3270.19 -46.8652 194.445 +-3271.81 -40.1768 166.695 +-3273.18 -33.4854 138.932 +-3274.3 -26.7913 111.158 +-3275.18 -20.0953 83.376 +-3275.8 -13.3977 55.5875 +-143.695 -0.293826 1.21909 +95.4 0 0 +95.3964 -0.187756 0.811063 +95.5854 -0.376284 1.62546 +95.3673 -0.56321 2.43294 +95.3419 -0.750879 3.24363 +95.509 -0.940459 4.06258 +95.469 -1.12839 4.87442 +96.1204 -1.32588 5.72751 +95.3671 -1.50399 6.49691 +95.405 -1.6934 7.31509 +96.1328 -1.89682 8.19384 +96.0557 -2.08595 9.01083 +95.9714 -2.27491 9.82712 +95.8797 -2.4637 10.6427 +95.88 -2.65507 11.4693 +95.6744 -2.84072 12.2713 +95.5609 -3.0289 13.0842 +96.1323 -3.2402 13.997 +96.0033 -3.42926 14.8137 +95.7683 -3.61435 15.6132 +95.5264 -3.79879 16.4099 +95.3757 -3.98663 17.2214 +95.2178 -4.17421 18.0317 +95.0527 -4.36144 18.8405 +94.8803 -4.54834 19.6478 +94.7007 -4.7349 20.4537 +95.3908 -4.96676 21.4553 +95.195 -5.15431 22.2655 +95.9622 -5.39603 23.3097 +95.7498 -5.58469 24.1246 +95.4335 -5.76708 24.9125 +96.074 -6.00893 25.9573 +95.8378 -6.19777 26.773 +95.4026 -6.37334 27.5314 +95.3436 -6.57406 28.3985 +95.7532 -6.80893 29.4131 +95.4861 -6.99711 30.226 +95.2117 -7.18477 31.0366 +95.781 -7.43798 32.1304 +95.4896 -7.62618 32.9434 +96.6944 -7.93725 34.2872 +95.5406 -8.05617 34.8009 +96.0654 -8.31664 35.926 +95.6469 -8.49711 36.7056 +96.2417 -8.76952 37.8824 +96.0835 -8.97586 38.7737 +96.653 -9.25274 39.9698 +96.2913 -9.44262 40.79 +96.1963 -9.65928 41.726 +95.6369 -9.82953 42.4614 +96.2499 -10.1222 43.7258 +95.674 -10.2918 44.4585 +95.9912 -10.5588 45.6118 +95.6685 -10.7574 46.4696 +96.0505 -11.0374 47.6793 +96.3294 -11.3094 48.854 +95.8881 -11.4985 49.6711 +96.2305 -11.7837 50.9028 +95.5959 -11.9507 51.6245 +95.9132 -12.2384 52.867 +95.5226 -12.4379 53.7291 +95.727 -12.717 54.9348 +95.2313 -12.9049 55.7465 +95.4104 -13.1862 56.9613 +95.575 -13.469 58.1832 +94.9659 -13.6445 58.9412 +95.1891 -13.9414 60.2239 +95.3131 -14.2278 61.4611 +95.5051 -14.5284 62.7593 +95.5162 -14.8052 63.9552 +94.9397 -14.9926 64.7648 +95.0887 -15.2968 66.0787 +95.1404 -15.5894 67.3426 +95.0963 -15.8699 68.5546 +95.1974 -16.1787 69.8882 +95.2817 -16.4889 71.2286 +95.5069 -16.8286 72.6958 +95.2434 -17.0861 73.8081 +95.2781 -17.4006 75.1669 +95.2956 -17.7166 76.5318 +94.6065 -17.9035 77.3391 +95.2028 -18.338 79.216 +95.2443 -18.6726 80.6615 +95.1174 -18.9789 81.9846 +95.0482 -19.3012 83.3769 +94.8876 -19.6094 84.7084 +94.7834 -19.9339 86.1098 +94.7339 -20.2749 87.583 +94.7371 -20.6329 89.1295 +94.363 -20.9134 90.3412 +94.8937 -21.4013 92.4489 +94.062 -21.5873 93.2522 +94.4041 -22.0474 95.2397 +94.7864 -22.5268 97.3107 +94.5932 -22.8775 98.8256 +94.3124 -23.2124 100.272 +93.9459 -23.5313 101.65 +94.2908 -24.036 103.83 +94.4069 -24.4932 105.805 +93.7803 -24.7638 106.974 +93.9755 -25.2584 109.111 +94.076 -25.7381 111.183 +93.7687 -26.1152 112.812 +93.6262 -26.5457 114.672 +93.2111 -26.9068 116.231 +93.2014 -27.3932 118.333 +93.3415 -27.9359 120.677 +92.9113 -28.3179 122.327 +92.2823 -28.6458 123.744 +108.766 -34.3896 148.555 +115.748 -37.2811 161.046 +115.66 -37.9536 163.951 +115.417 -38.591 166.705 +115.576 -39.381 170.117 +115.028 -39.9473 172.564 +115.681 -40.952 176.904 +115.522 -41.6945 180.111 +115.629 -42.5549 183.828 +115.369 -43.3027 187.058 +115.363 -44.1694 190.802 +115.4 -45.0786 194.729 +115.079 -45.8731 198.162 +114.27 -46.4924 200.837 +112.323 -46.6561 201.544 +110.467 -46.8555 202.405 +107.726 -46.671 201.608 +105.326 -46.62 201.388 +102.938 -46.563 201.142 +100.738 -46.5815 201.222 +98.587 -46.6151 201.367 +96.357 -46.6029 201.314 +93.8451 -46.4419 200.619 +91.6378 -46.4189 200.519 +90.8749 -47.1352 203.613 +90.3761 -48.0181 207.428 +90.4664 -49.2567 212.778 +87.0586 -48.5966 209.927 +87.3739 -50.0251 216.097 +83.4281 -49.0161 211.739 +83.4894 -50.3614 217.55 +79.6907 -49.3792 213.307 +79.4794 -50.6185 218.661 +76.6387 -50.1972 216.841 +76.407 -51.501 222.473 +72.001 -49.9764 215.887 +71.1771 -50.9121 219.929 +67.2163 -49.5835 214.19 +67.2832 -51.2276 221.292 +64.5267 -50.7511 219.233 +63.7364 -51.8325 223.905 +58.7002 -49.4071 213.428 +59.5904 -51.9662 224.483 +53.5615 -48.4489 209.288 +53.0154 -49.8025 215.136 +49.7367 -48.5864 209.883 +48.9586 -49.8054 215.148 +45.9069 -48.7087 210.411 +44.9176 -49.7917 215.089 +41.7681 -48.4613 209.342 +40.6567 -49.473 213.712 +38.1852 -48.8404 210.98 +36.9377 -49.7813 215.044 +34.353 -48.9164 211.308 +32.9467 -49.7184 214.772 +30.5485 -49.0219 211.764 +29.0551 -49.7734 215.01 +26.6406 -48.9333 211.381 +25.0972 -49.6784 214.6 +22.7872 -48.8961 211.22 +21.2682 -49.8144 215.187 +18.9128 -48.7536 210.605 +17.4179 -49.9132 215.614 +15.1651 -48.9105 211.283 +13.5711 -50.0416 216.168 +11.3778 -48.9628 211.509 +9.65733 -49.8846 215.49 +7.5697 -48.8875 211.183 +5.81128 -50.0503 216.206 +3.7959 -49.0452 211.864 +1.93293 -49.9529 215.786 +1.3336e-14 -49.1203 212.189 +-1.94514 -50.2687 217.15 +-3.78892 -48.955 211.475 +-5.8584 -50.4561 217.959 +-7.61158 -49.1579 212.351 +-9.72276 -50.2227 216.951 +-11.3935 -49.0305 211.801 +-13.6382 -50.2892 217.238 +-15.2488 -49.1807 212.45 +-17.6062 -50.4527 217.944 +-19.061 -49.1356 212.255 +-21.6228 -50.6451 218.776 +-22.9858 -49.3221 213.061 +-25.6745 -50.8212 219.536 +-26.7259 -49.0898 212.057 +-29.6817 -50.8467 219.646 +-30.6459 -49.1782 212.439 +-33.671 -50.8113 219.494 +-34.5877 -49.2506 212.752 +-37.8784 -51.0492 220.521 +-38.4457 -49.1735 212.419 +-41.6226 -50.6482 218.789 +-42.3596 -49.1476 212.307 +-45.8746 -50.8526 219.672 +-46.3435 -49.1719 212.412 +-50.214 -51.0826 220.666 +-50.4115 -49.2457 212.73 +-54.4395 -51.1403 220.915 +-54.6502 -49.4338 213.543 +-58.8393 -51.3113 221.653 +-58.8555 -49.5379 213.993 +-63.7364 -51.8325 223.905 +-63.3966 -49.8623 215.394 +-67.5388 -51.4222 222.133 +-67.801 -50.0149 216.053 +-73.6729 -52.6974 227.641 +-73.4224 -50.9631 220.149 +-79.9608 -53.8965 232.821 +-79.4061 -52.0097 224.671 +-84.1193 -53.5736 231.426 +-83.4187 -51.6893 223.286 +-87.6919 -52.8963 228.5 +-87.7285 -51.5424 222.652 +-91.7719 -52.5431 226.975 +-91.7037 -51.1895 221.127 +-96.1301 -52.3406 226.1 +-95.9636 -50.9867 220.251 +-101.242 -52.5127 226.843 +-101.155 -51.24 221.346 +-106.535 -52.7217 227.746 +-105.612 -51.0792 220.651 +-111.287 -52.62 227.307 +-110.908 -51.2842 221.536 +-117.038 -52.941 228.693 +-116.085 -51.3823 221.96 +-123.102 -53.3325 230.385 +-121.828 -51.6744 223.222 +-129.787 -53.9101 232.88 +-125.663 -51.1277 220.86 +-118.428 -47.208 203.928 +-110.15 -43.0276 185.87 +-109.984 -42.1097 181.905 +-111.094 -41.6983 180.128 +-112.912 -41.5551 179.509 +-114.092 -41.1783 177.881 +-116.325 -41.1803 177.89 +-117.37 -40.7608 176.078 +-119.55 -40.7351 175.967 +-121.457 -40.6104 175.428 +-124.666 -40.9087 176.717 +-142.075 -45.7608 197.676 +-142.911 -45.1857 195.192 +-142.891 -44.3553 191.605 +-142.341 -43.3835 187.407 +-142.57 -42.6695 184.323 +-141.781 -41.6715 180.012 +-142.095 -41.0177 177.187 +-149.03 -42.2543 182.529 +-144.366 -40.2067 173.684 +-163.854 -44.8284 193.649 +-160.633 -43.1742 186.503 +-176 -46.4748 200.761 +-210.464 -54.6031 235.873 +-163.601 -41.7042 180.153 +-197.862 -49.5596 214.087 +-233.214 -57.399 247.951 +-219.331 -53.0452 229.143 +-244.228 -58.0429 250.732 +-240.908 -56.2621 243.04 +-253.869 -58.263 251.683 +-254.558 -57.4103 248 +-268.04 -59.4048 256.616 +-265.005 -57.7156 249.319 +-275.642 -58.9928 254.836 +-270.016 -56.7869 245.307 +-284.737 -58.8435 254.191 +-280.389 -56.9378 245.959 +-295.688 -58.9989 254.862 +-293.884 -57.6157 248.887 +-304.543 -58.6611 253.403 +-302.664 -57.2765 247.422 +-318.064 -59.1317 255.436 +-315.988 -57.7089 249.29 +-333.078 -59.7522 258.116 +-329.861 -58.1225 251.076 +-140.503 -24.3148 105.034 +-142.237 -24.1729 104.422 +-141.559 -23.6237 102.049 +-142.63 -23.3709 100.957 +-140.923 -22.6702 97.9302 +-140.648 -22.2108 95.9458 +-142.656 -22.112 95.5189 +-145.994 -22.2087 95.9369 +-147.765 -22.0575 95.2834 +-396.691 -58.0995 250.977 +-415.961 -59.7643 258.169 +-411.897 -58.0472 250.751 +-430.413 -59.4849 256.962 +-427.212 -57.8922 250.082 +-429.091 -57.0034 246.242 +-426.344 -55.514 239.808 +-378.953 -48.3537 208.877 +-428.476 -53.565 231.389 +-378.946 -46.4029 200.45 +-379.491 -45.5071 196.58 +-379.197 -44.519 192.312 +-516.606 -59.3647 256.442 +-550.206 -61.8676 267.254 +-544.489 -59.8927 258.723 +-406.615 -43.7403 188.948 +-405.391 -42.6334 184.167 +-404.114 -41.5346 179.42 +-403.33 -40.4992 174.948 +-403.415 -39.5601 170.891 +-403.733 -38.6501 166.96 +-403.089 -37.6555 162.663 +-404.252 -36.8352 159.12 +-401.661 -35.683 154.143 +-403.96 -34.9719 151.071 +-403.612 -34.0333 147.016 +-403.316 -33.1066 143.013 +-404.487 -32.3041 139.547 +-404.115 -31.3819 135.563 +-402.848 -30.3993 131.318 +-404.675 -29.6542 128.099 +-389.784 -27.7171 119.732 +-381.087 -26.2764 113.508 +-376.912 -25.1794 108.77 +-376.911 -24.3745 105.293 +-379.092 -23.7103 102.423 +-380.285 -22.9808 99.2718 +-379.804 -22.1524 95.6935 +-379.095 -21.3168 92.0838 +-379.127 -20.5277 88.6753 +-379.322 -19.7504 85.3172 +-380.17 -19.008 82.1102 +-376.685 -18.0574 78.004 +-376.193 -17.2614 74.5655 +-377.337 -16.5419 71.4573 +-380.323 -15.8973 68.6727 +-381.416 -15.1677 65.5212 +-379.03 -14.3048 61.7937 +-378.68 -13.5266 58.4318 +-379.881 -12.8041 55.3109 +-378.48 -11.9964 51.8216 +-379.029 -11.254 48.6146 +-378.16 -10.4718 45.2359 +-380.439 -9.77568 42.2288 +-377.918 -8.9582 38.6974 +-3261.22 -70.8205 305.929 +-3263.83 -64.3994 278.191 +-3266.2 -57.9736 250.433 +-3268.32 -51.5431 222.655 +-3270.19 -45.1088 194.86 +-3271.81 -38.671 167.05 +-3273.18 -32.2304 139.228 +-3274.3 -25.7872 111.395 +-3275.18 -19.3422 83.5539 +-3275.8 -12.8956 55.7062 +-143.695 -0.282814 1.22169 +95.4 0 0 +95.3964 -0.18043 0.812724 +95.3855 -0.360846 1.62539 +95.3673 -0.541234 2.43792 +95.5418 -0.723093 3.25709 +95.509 -0.903763 4.0709 +95.469 -1.08437 4.8844 +95.2221 -1.26224 5.6856 +96.2649 -1.45891 6.5715 +95.3053 -1.62562 7.32241 +96.1328 -1.82281 8.21063 +95.8567 -2.0004 9.01057 +95.9714 -2.18615 9.84725 +95.8797 -2.36757 10.6645 +95.88 -2.55147 11.4928 +95.6744 -2.72988 12.2964 +94.7687 -2.8866 13.0023 +95.2422 -3.08492 13.8957 +96.0033 -3.29546 14.844 +95.6697 -3.46975 15.6291 +95.6248 -3.65432 16.4604 +95.4741 -3.83505 17.2745 +95.2178 -4.01133 18.0686 +95.0527 -4.19126 18.8791 +95.565 -4.40242 19.8302 +95.5794 -4.59236 20.6858 +95.4883 -4.77784 21.5212 +95.195 -4.9532 22.3111 +95.9622 -5.18549 23.3574 +95.653 -5.36134 24.1495 +95.5301 -5.54766 24.9888 +95.014 -5.71075 25.7234 +95.8378 -5.95594 26.8278 +95.5943 -6.13697 27.6433 +95.1523 -6.30487 28.3996 +95.7532 -6.54325 29.4733 +95.6763 -6.73748 30.3482 +95.4014 -6.91817 31.1621 +95.781 -7.14775 32.1962 +95.3953 -7.3214 32.9784 +95.9426 -7.56825 34.0903 +96.3836 -7.81012 35.1798 +96.0654 -7.99213 35.9996 +95.74 -8.17351 36.8166 +96.3344 -8.43545 37.9965 +96.0835 -8.62563 38.8531 +95.8246 -8.81549 39.7083 +96.2913 -9.07417 40.8736 +96.0136 -9.26474 41.732 +95.6369 -9.44599 42.5484 +95.4342 -9.64482 43.444 +95.674 -9.89027 44.5496 +96.0811 -10.1563 45.7481 +95.6685 -10.3377 46.5648 +95.4268 -10.5379 47.4667 +95.6198 -10.788 48.5934 +95.9764 -11.06 49.8187 +95.4395 -11.2308 50.5877 +95.5959 -11.4844 51.7302 +95.9132 -11.7608 52.9753 +95.436 -11.9418 53.7904 +95.727 -12.2208 55.0473 +96.0027 -12.5019 56.3132 +95.4104 -12.6716 57.0779 +95.4054 -12.9205 58.1989 +95.6406 -13.2053 59.4816 +95.1891 -13.3974 60.3472 +95.3131 -13.6727 61.5869 +95.4222 -13.9494 62.8333 +95.5162 -14.2275 64.0862 +95.677 -14.5195 65.4014 +95.1701 -14.7125 66.2707 +95.1404 -14.9811 67.4806 +95.0963 -15.2507 68.695 +95.3571 -15.5735 70.1488 +95.2817 -15.8456 71.3745 +95.3493 -16.1452 72.7244 +95.2434 -16.4194 73.9593 +95.2781 -16.7217 75.3209 +95.2956 -17.0253 76.6886 +94.6065 -17.2049 77.4975 +94.5185 -17.4958 78.8077 +95.1689 -17.9298 80.7627 +95.1174 -18.2384 82.1525 +94.9739 -18.5336 83.4824 +94.9613 -18.8589 84.9478 +94.7834 -19.1561 86.2862 +94.7339 -19.4838 87.7624 +94.5212 -19.7826 89.1086 +94.4344 -20.1126 90.5947 +94.328 -20.4436 92.086 +94.6228 -20.8686 94.0002 +94.4735 -21.2027 95.5049 +94.8553 -21.6635 97.5808 +94.5932 -21.9848 99.028 +94.3124 -22.3066 100.478 +93.9459 -22.6131 101.858 +94.2908 -23.0981 104.043 +93.8164 -23.3901 105.358 +93.8452 -23.814 107.267 +93.397 -24.1233 108.66 +93.5671 -24.6001 110.808 +93.7687 -25.0962 113.043 +93.6885 -25.527 114.984 +93.2727 -25.874 116.546 +93.4449 -26.3933 118.886 +93.2813 -26.8287 120.847 +93.4467 -27.3699 123.284 +92.2823 -27.5281 123.997 +114.631 -34.8297 156.886 +115.69 -35.8087 161.296 +115.83 -36.5263 164.528 +115.809 -37.2111 167.613 +115.465 -37.8082 170.303 +115.627 -38.5886 173.818 +115.788 -39.3908 177.431 +115.469 -40.0494 180.398 +115.211 -40.7466 183.538 +115.369 -41.6131 187.441 +115.566 -42.5208 191.53 +115.35 -43.3008 195.043 +115.67 -44.3097 199.588 +114.609 -44.8109 201.846 +112.323 -44.8357 201.957 +110.044 -44.8549 202.044 +107.449 -44.7344 201.501 +105.099 -44.7043 201.365 +102.982 -44.7656 201.642 +100.782 -44.7834 201.722 +98.2426 -44.6397 201.074 +96.0189 -44.6274 201.019 +93.928 -44.6692 201.207 +91.8818 -44.7264 201.465 +90.9547 -45.3356 204.209 +90.6105 -46.2641 208.391 +90.5046 -47.3549 213.305 +90.6173 -48.6093 218.955 +90.5258 -49.8072 224.351 +87.9077 -49.6325 223.564 +87.6569 -50.812 228.877 +84.1712 -50.1204 225.761 +83.7855 -51.2788 230.979 +80.7735 -50.841 229.007 +79.929 -51.7729 233.205 +77.347 -51.5922 232.391 +76.6499 -52.6873 237.324 +73.0637 -51.7942 233.301 +72.1967 -52.8239 237.939 +67.8895 -51.3126 231.132 +67.3441 -52.6295 237.063 +64.4459 -52.1269 234.799 +64.0973 -53.7155 241.955 +57.0694 -49.6078 223.453 +56.1436 -50.6832 228.297 +52.3236 -49.1191 221.251 +51.8156 -50.6551 228.17 +48.2979 -49.2461 221.823 +47.5493 -50.6522 228.157 +44.1341 -49.2084 221.653 +43.2809 -50.6113 227.973 +39.9044 -49.0478 220.93 +39.1658 -50.7246 228.483 +36.152 -49.4695 222.83 +34.9569 -50.6934 228.343 +31.9959 -49.3412 222.252 +30.8694 -50.818 228.904 +28.0421 -49.4977 222.957 +26.7726 -50.927 229.395 +23.9997 -49.4884 222.915 +22.6196 -50.9127 229.331 +19.9325 -49.3774 222.415 +18.4536 -50.8176 228.902 +15.9742 -49.5101 223.012 +14.383 -50.9663 229.572 +12.0425 -49.8011 224.323 +10.2811 -51.0345 229.879 +8.02339 -49.7957 224.299 +6.16991 -51.0655 230.019 +4.00009 -49.6668 223.718 +2.05684 -51.0811 230.089 +1.40524e-14 -49.7394 224.045 +-2.05597 -51.0595 229.991 +-4.00533 -49.7318 224.011 +-6.1987 -51.3039 231.093 +-8.02339 -49.7957 224.299 +-10.3073 -51.1644 230.464 +-12.0896 -49.9958 225.2 +-14.4685 -51.269 230.935 +-16.1277 -49.9858 225.155 +-18.6654 -51.401 231.53 +-20.2288 -50.1115 225.721 +-22.8976 -51.5382 232.148 +-24.2402 -49.9843 225.148 +-27.2027 -51.7452 233.08 +-28.4443 -50.2075 226.154 +-31.4568 -51.7849 233.259 +-32.65 -50.3499 226.795 +-35.696 -51.7651 233.17 +-36.8403 -50.4114 227.072 +-40.0075 -51.8148 233.394 +-40.9115 -50.2857 226.506 +-44.3744 -51.89 233.732 +-45.2599 -50.4637 227.308 +-48.9448 -52.139 234.854 +-49.5661 -50.5391 227.647 +-53.3307 -52.1362 234.841 +-54.0557 -50.7452 228.576 +-58.0812 -52.4324 236.176 +-58.3516 -50.7222 228.472 +-62.6952 -52.5404 236.662 +-63.2554 -51.1637 230.461 +-66.9165 -52.2953 235.558 +-67.7517 -51.2084 230.662 +-72.1399 -52.7822 237.751 +-73.3561 -52.0014 234.234 +-78.2737 -53.8037 242.352 +-79.3865 -52.9526 238.519 +-83.5463 -54.116 243.759 +-83.7687 -52.7263 237.5 +-87.5575 -53.5874 241.378 +-87.8992 -52.3403 235.761 +-91.6843 -53.1466 239.393 +-91.5988 -51.7166 232.951 +-97.0495 -53.3967 240.519 +-96.5361 -51.7842 233.256 +-102.406 -53.582 241.354 +-101.238 -51.6906 232.834 +-107.343 -53.5046 241.005 +-106.606 -51.8937 233.749 +-111.718 -53.1299 239.317 +-108.571 -50.4611 227.296 +-113.827 -51.7211 232.972 +-117.001 -51.9908 234.186 +-124.534 -54.1338 243.839 +-123.894 -52.699 237.377 +-131.737 -54.8464 247.049 +-130.654 -53.2556 239.884 +-137.183 -54.7588 246.655 +-136.038 -53.1893 239.585 +-120.25 -46.0639 207.489 +-110.15 -41.3487 186.25 +-110.085 -40.5039 182.445 +-111.197 -40.1084 180.663 +-112.703 -39.8595 179.543 +-114.675 -39.7737 179.156 +-116.11 -39.5004 177.925 +-117.424 -39.1883 176.519 +-119.218 -39.0371 175.838 +-121.457 -39.0258 175.787 +-124.27 -39.1875 176.515 +-142.878 -44.2238 199.201 +-142.156 -43.1931 194.558 +-142.068 -42.379 190.891 +-143.471 -42.0216 189.282 +-142.389 -40.9525 184.466 +-159.435 -45.0318 202.84 +-155.147 -43.0379 193.859 +-195.034 -53.1401 239.363 +-213.088 -57.0306 256.888 +-226.317 -59.5017 268.019 +-222.469 -57.461 258.826 +-234.386 -59.4772 267.908 +-230.146 -57.3795 258.459 +-164.794 -40.3691 181.838 +-162.197 -39.0412 175.856 +-249.833 -59.0902 266.165 +-247.429 -57.5059 259.028 +-260.68 -59.5353 268.17 +-256.676 -57.6058 259.478 +-270.13 -59.5761 268.353 +-267.145 -57.8981 260.795 +-279.594 -59.5477 268.226 +-280.543 -58.7156 264.478 +-293.051 -60.2713 271.485 +-289.397 -58.4881 263.453 +-303.906 -60.3543 271.859 +-300.082 -58.5592 263.773 +-314.861 -60.3732 271.944 +-309.431 -58.2967 262.591 +-325.758 -60.2993 271.611 +-323.271 -58.7891 264.809 +-338.126 -60.4087 272.104 +-334.561 -58.7167 264.483 +-348.261 -60.0381 270.435 +-344.834 -58.3897 263.01 +-140.82 -23.4187 105.487 +-142.077 -23.2037 104.518 +-141.72 -22.7277 102.374 +-142.791 -22.4844 101.278 +-141.005 -21.7982 98.1874 +-140.73 -21.3566 96.1983 +-141.667 -21.1019 95.051 +-146.574 -21.427 96.5154 +-147.014 -21.0892 94.9937 +-418.58 -58.9133 265.368 +-433.925 -59.9129 269.87 +-433.183 -58.6649 264.249 +-384.797 -51.1056 230.199 +-430.984 -56.1244 252.806 +-380.323 -48.5532 218.702 +-380.965 -47.6696 214.722 +-380.607 -46.6698 210.219 +-379.497 -45.591 205.359 +-379.297 -44.6337 201.047 +-381.257 -43.9349 197.9 +-379.729 -42.842 192.977 +-555.008 -61.2891 276.07 +-589.404 -63.6894 286.881 +-588.171 -62.1731 280.052 +-403.456 -41.7069 187.864 +-402.944 -40.7226 183.43 +-403.295 -39.8331 179.424 +-403.97 -38.9807 175.584 +-403.14 -37.9905 171.124 +-402.445 -37.0234 166.768 +-401.888 -36.0783 162.51 +-404.159 -35.3899 159.41 +-404.825 -34.5607 155.675 +-403.307 -33.5529 151.135 +-403.144 -32.6674 147.146 +-403.692 -31.8445 143.44 +-403.262 -30.9496 139.409 +-404.209 -30.1644 135.872 +-402.848 -29.2132 131.587 +-402.772 -28.3631 127.758 +-391.215 -26.7336 120.418 +-382.139 -25.3209 114.055 +-377.775 -24.2524 109.242 +-376.911 -23.4235 105.508 +-379.381 -22.8025 102.711 +-379.126 -22.0167 99.1715 +-378.739 -21.2284 95.6206 +-379.095 -20.485 92.2724 +-379.516 -19.747 88.9481 +-378.738 -18.9505 85.3602 +-379.779 -18.2475 82.1938 +-379.815 -17.497 78.8132 +-376.193 -16.5879 74.7182 +-379.006 -15.9667 71.9204 +-380.52 -15.2849 68.8488 +-378.659 -14.4705 65.1807 +-379.621 -13.7681 62.0169 +-379.569 -13.0293 58.6889 +-378.793 -12.2693 55.2655 +-378.084 -11.5162 51.8733 +-378.633 -10.8035 48.6632 +-378.359 -10.0685 45.3524 +-377.061 -9.31082 41.9395 +-380.007 -8.65623 38.991 +-3261.22 -68.0571 306.555 +-3263.83 -61.8866 278.761 +-3266.2 -55.7116 250.946 +-3268.32 -49.532 223.111 +-3270.19 -43.3487 195.259 +-3271.81 -37.1621 167.393 +-3273.18 -30.9728 139.513 +-3274.3 -24.781 111.623 +-3275.18 -18.5875 83.7251 +-3275.8 -12.3924 55.8202 +-143.095 -0.270645 1.21909 +95.4 0 0 +95.3964 -0.173089 0.814319 +95.3855 -0.346165 1.62858 +95.3673 -0.519214 2.44271 +96.4412 -0.700205 3.29421 +95.509 -0.866994 4.07889 +95.469 -1.04025 4.89399 +96.1204 -1.22231 5.7505 +96.2649 -1.39956 6.5844 +96.2025 -1.57416 7.40585 +96.1328 -1.74865 8.22674 +95.8567 -1.91901 9.02825 +96.0708 -2.09937 9.87675 +95.8797 -2.27125 10.6854 +95.7807 -2.44512 11.5034 +96.5667 -2.64324 12.4355 +95.5609 -2.7923 13.1367 +95.44 -2.96557 13.9519 +95.1144 -3.13211 14.7354 +95.6697 -3.32858 15.6598 +95.5264 -3.50204 16.4758 +95.3757 -3.67521 17.2905 +95.2178 -3.84813 18.104 +95.0527 -4.02074 18.9161 +95.565 -4.22331 19.8691 +95.5794 -4.40552 20.7264 +95.3908 -4.57878 21.5415 +95.195 -4.75168 22.3549 +95.089 -4.92923 23.1902 +95.7498 -5.14843 24.2215 +95.5301 -5.32196 25.0378 +95.2067 -5.48953 25.8262 +95.8378 -5.71362 26.8805 +95.5943 -5.88729 27.6975 +96.013 -6.10306 28.7126 +95.7532 -6.27704 29.5312 +95.4861 -6.45052 30.3473 +96.2549 -6.69609 31.5026 +95.781 -6.85695 32.2594 +95.4896 -7.03045 33.0757 +95.9426 -7.26034 34.1572 +95.5406 -7.42686 34.9406 +96.0654 -7.66697 36.0703 +96.6704 -7.91717 37.2474 +96.3344 -8.09226 38.0711 +96.0835 -8.2747 38.9294 +96.561 -8.52182 40.092 +95.5577 -8.63867 40.6417 +96.0136 -8.88781 41.8139 +95.6369 -9.06169 42.6319 +96.2499 -9.33151 43.9013 +95.674 -9.48788 44.637 +96.0811 -9.74314 45.8379 +95.6685 -9.91708 46.6562 +95.9614 -10.1658 47.8263 +96.3294 -10.4259 49.0501 +95.8881 -10.6003 49.8705 +96.1426 -10.8532 51.0605 +95.6834 -11.0273 51.8792 +95.1299 -11.1902 52.6458 +95.436 -11.4559 53.8959 +95.727 -11.7236 55.1553 +95.2313 -11.8969 55.9703 +95.3252 -12.1452 57.1388 +95.575 -12.4169 58.4168 +95.6406 -12.668 59.5983 +95.1052 -12.8411 60.4124 +95.2298 -13.1049 61.6538 +95.5051 -13.3935 63.0113 +94.8569 -13.5545 63.7688 +94.9397 -13.8214 65.0248 +95.0887 -14.1018 66.3439 +94.9786 -14.3472 67.4981 +95.0963 -14.6302 68.8298 +95.1974 -14.9148 70.1688 +95.4404 -15.2262 71.6337 +95.3493 -15.4884 72.8671 +95.2434 -15.7514 74.1045 +95.2781 -16.0414 75.4687 +95.2956 -16.3326 76.8391 +94.6065 -16.5049 77.6496 +95.2028 -16.9055 79.5341 +95.1689 -17.2003 80.9212 +95.0425 -17.4826 82.249 +94.9739 -17.7795 83.6462 +94.9613 -18.0916 85.1145 +94.8566 -18.3909 86.5222 +94.7339 -18.6911 87.9346 +94.5212 -18.9778 89.2835 +94.363 -19.2797 90.7039 +94.2573 -19.5972 92.1976 +94.6928 -20.0344 94.2544 +94.4735 -20.34 95.6924 +94.1669 -20.6313 97.0628 +94.5932 -21.0904 99.2223 +94.2448 -21.3837 100.602 +93.9459 -21.6931 102.058 +94.1583 -22.1274 104.101 +94.3413 -22.564 106.155 +93.8452 -22.8451 107.478 +94.0398 -23.3011 109.623 +93.5035 -23.5832 110.95 +93.7687 -24.0751 113.265 +93.813 -24.5209 115.362 +93.2727 -24.8213 116.775 +93.384 -25.3029 119.041 +93.2813 -25.7372 121.084 +92.7329 -26.0557 122.582 +92.3998 -26.4416 124.398 +115.153 -33.5651 157.911 +115.748 -34.3688 161.693 +115.83 -35.0402 164.851 +115.306 -35.5421 167.212 +115.576 -36.3047 170.8 +115.681 -37.0361 174.241 +115.466 -37.683 177.284 +115.575 -38.4551 180.917 +115.733 -39.2662 184.733 +115.369 -39.9201 187.809 +115.11 -40.6295 191.147 +115.45 -41.5751 195.595 +115.769 -42.5431 200.15 +114.657 -43.0061 202.328 +111.941 -42.8652 201.665 +109.669 -42.8832 201.75 +107.449 -42.9144 201.897 +105.19 -42.9225 201.935 +102.625 -42.7955 201.337 +100.431 -42.8119 201.414 +98.2857 -42.8423 201.557 +96.0611 -42.8306 201.502 +93.5548 -42.6816 200.801 +91.5564 -42.7548 201.145 +90.7952 -43.4151 204.252 +90.6887 -44.4201 208.98 +90.5429 -45.4474 213.813 +90.8421 -46.7473 219.929 +90.4892 -47.7615 224.7 +90.3446 -48.9333 230.213 +90.1434 -50.1273 235.83 +87.6256 -50.0545 235.488 +87.157 -51.1721 240.746 +83.3454 -50.3256 236.764 +82.7531 -51.4213 241.918 +79.2938 -50.739 238.708 +78.5444 -51.7931 243.667 +75.5488 -51.3769 241.709 +75.0369 -52.6682 247.784 +70.7837 -51.3234 241.458 +69.9363 -52.4316 246.671 +66.6718 -51.733 243.385 +65.3492 -52.5366 247.165 +63.0207 -52.5522 247.239 +61.116 -52.9272 249.003 +55.5854 -50.0583 235.506 +54.3696 -50.9895 239.887 +51.1879 -50.0693 235.558 +49.9417 -51.0363 240.107 +46.7864 -50.0433 235.435 +45.65 -51.2097 240.923 +42.4743 -50.0826 235.62 +41.2289 -51.224 240.99 +38.2639 -50.2292 236.31 +36.7454 -51.119 240.496 +33.8887 -50.1337 235.861 +32.4097 -51.1829 240.796 +29.6752 -50.2491 236.404 +28.0404 -51.1687 240.73 +25.4213 -50.2872 236.583 +23.7985 -51.3868 241.756 +21.1788 -50.3302 236.785 +19.3872 -51.2166 240.955 +16.9718 -50.4616 237.403 +15.1217 -51.4037 241.835 +12.6601 -50.2248 236.289 +10.7653 -51.2637 241.177 +8.43172 -50.2009 236.177 +6.47094 -51.3781 241.715 +4.20952 -50.1406 235.893 +2.15894 -51.4355 241.985 +1.48484e-14 -50.4186 237.201 +-2.15633 -51.3731 241.691 +-4.22697 -50.3485 236.871 +-6.46309 -51.3157 241.422 +-8.49105 -50.5541 237.839 +-10.7609 -51.243 241.079 +-12.7333 -50.5157 237.658 +-15.14 -51.4658 242.128 +-16.909 -50.2751 236.526 +-19.5834 -51.7349 243.393 +-21.1876 -50.351 236.883 +-24.0285 -51.8835 244.093 +-25.5363 -50.5146 237.653 +-28.4819 -51.9744 244.52 +-29.9189 -50.6618 238.345 +-32.9709 -52.0692 244.966 +-34.167 -50.5456 237.798 +-37.3071 -51.9006 244.173 +-38.7645 -50.8862 239.401 +-41.9551 -52.1264 245.235 +-43.412 -51.1883 240.822 +-46.4518 -52.1093 245.155 +-47.7022 -51.023 240.044 +-51.2774 -52.4014 246.529 +-52.1235 -50.9845 239.863 +-55.8631 -52.39 246.476 +-56.8901 -51.2332 241.033 +-60.7658 -52.6241 247.577 +-61.3756 -51.1804 240.785 +-65.3492 -52.5366 247.165 +-66.3353 -51.4721 242.157 +-70.9785 -53.2129 250.347 +-71.7484 -52.0228 244.748 +-77.1386 -54.1433 254.724 +-78.2094 -53.1863 250.222 +-83.7766 -55.2434 259.9 +-84.1144 -53.8238 253.221 +-88.9722 -55.2858 260.099 +-88.9452 -53.7069 252.671 +-92.5313 -54.3273 255.59 +-92.0718 -52.5944 247.437 +-97.953 -54.4702 256.262 +-97.3686 -52.7376 248.111 +-102.4 -54.0485 254.278 +-103.242 -53.1281 249.948 +-108.797 -54.6099 256.919 +-108.115 -52.9559 249.138 +-102.16 -48.8491 229.817 +-111.405 -52.0237 244.752 +-108.525 -49.5115 232.933 +-108.993 -48.5967 228.629 +-111.89 -48.7723 229.456 +-122.744 -52.3235 246.163 +-117.93 -49.1776 231.362 +-131.612 -53.7042 252.658 +-137.74 -55.0124 258.813 +-137.743 -53.861 253.396 +-141.239 -54.0841 254.446 +-131.917 -49.4797 232.783 +-120.693 -44.3526 208.662 +-110.4 -39.7565 187.039 +-110.542 -39.0173 183.562 +-111.3 -38.5123 181.186 +-112.651 -38.2202 179.812 +-114.516 -38.1025 179.258 +-116.272 -37.946 178.522 +-117.424 -37.594 176.866 +-119.494 -37.5355 176.591 +-121.401 -37.4208 176.051 +-124.326 -37.6104 176.943 +-141.96 -42.152 198.31 +-146.163 -42.6038 200.435 +-144.478 -41.3445 194.511 +-171.785 -48.2675 227.081 +-163.754 -45.1811 212.56 +-218.85 -59.2987 278.978 +-218.868 -58.244 274.016 +-192.544 -50.3273 236.771 +-225.989 -58.0225 272.975 +-237.702 -59.9526 282.055 +-236.032 -58.4839 275.145 +-247.115 -60.1559 283.011 +-244.513 -58.4814 275.133 +-165.522 -38.898 183.001 +-164.338 -37.9472 178.528 +-166.871 -37.8624 178.129 +-262.706 -58.5723 275.561 +-276.03 -60.4763 284.519 +-272.514 -58.6721 276.03 +-284.85 -60.2663 283.531 +-281.994 -58.6298 275.832 +-296.498 -60.5788 285.001 +-291.045 -58.4355 274.917 +-310.678 -61.2969 288.379 +-305.998 -59.3272 279.112 +-320.421 -61.0454 287.196 +-316.728 -59.2929 278.951 +-329.84 -60.6724 285.441 +-327.242 -59.144 278.251 +-340.434 -60.452 284.404 +-340.66 -59.4311 279.602 +-358.96 -61.5219 289.438 +-352.047 -59.2719 278.852 +-368.687 -60.9736 286.858 +-364.77 -59.2528 278.762 +-136.774 -21.8203 102.657 +-142.077 -22.2596 104.723 +-141.8 -21.8155 102.634 +-142.63 -21.5453 101.363 +-141.086 -20.9234 98.4369 +-141.222 -20.5593 96.7237 +-141.255 -20.1845 94.9605 +-144.999 -20.3343 95.6656 +-147.848 -20.3459 95.72 +-436.78 -58.9737 277.45 +-383.406 -50.7837 238.918 +-381.028 -49.5023 232.89 +-381.386 -48.5919 228.607 +-377.582 -47.1698 221.916 +-382.219 -46.8101 220.224 +-379.839 -45.595 214.508 +-379.823 -44.679 210.198 +-379.935 -43.7864 205.999 +-379.473 -42.8375 201.535 +-381.963 -42.2254 198.655 +-379.729 -41.0989 193.355 +-596.351 -63.1752 297.216 +-674.423 -69.9113 328.907 +-657.108 -66.6342 313.489 +-718.548 -71.2576 335.241 +-406.388 -39.3997 185.361 +-403.295 -38.2125 179.776 +-402.325 -37.2426 175.213 +-404.057 -36.5278 171.85 +-402.997 -35.5658 167.324 +-403.181 -34.7219 163.354 +-403.418 -33.8877 159.429 +-404.918 -33.1621 156.016 +-403.493 -32.2028 151.502 +-403.987 -31.4038 147.743 +-403.128 -30.5063 143.521 +-404.016 -29.7459 139.944 +-404.493 -28.9575 136.234 +-403.132 -28.0444 131.938 +-403.438 -27.2541 128.22 +-393.599 -25.802 121.389 +-380.896 -24.2117 113.907 +-379.501 -23.372 109.957 +-378.449 -22.5622 106.147 +-377.55 -21.7692 102.416 +-379.222 -21.1263 99.3915 +-379.223 -20.3907 95.9307 +-378.706 -19.6315 92.3588 +-379.03 -18.9193 89.0085 +-379.42 -18.2122 85.6817 +-378.315 -17.4376 82.0376 +-379.913 -16.7895 78.9883 +-380.015 -16.0747 75.6254 +-379.89 -15.3528 72.2295 +-378.75 -14.5948 68.6631 +-381.121 -13.972 65.7333 +-376.564 -13.1016 61.6382 +-378.383 -12.4601 58.6204 +-378.991 -11.7762 55.4029 +-378.48 -11.0592 52.0296 +-377.939 -10.345 48.6693 +-379.053 -9.67661 45.5248 +-378.054 -8.95555 42.1325 +-379.211 -8.28667 38.9857 +-3261.22 -65.2882 307.157 +-3263.83 -59.3688 279.308 +-3266.2 -53.4449 251.439 +-3268.32 -47.5168 223.549 +-3270.19 -41.585 195.642 +-3271.81 -35.6502 167.721 +-3273.18 -29.7127 139.787 +-3274.3 -23.7728 111.842 +-3275.18 -17.8312 83.8894 +-3275.8 -11.8882 55.9298 +-144.594 -0.262355 1.23429 +95.3 0 0 +96.2963 -0.167312 0.823541 +96.1853 -0.334263 1.64531 +96.267 -0.501885 2.47037 +96.2413 -0.66912 3.29354 +96.2083 -0.836305 4.11646 +95.2693 -0.994048 4.89289 +95.2221 -1.15953 5.70743 +95.3671 -1.3277 6.53521 +96.2025 -1.5074 7.41973 +95.9335 -1.67102 8.22507 +95.8567 -1.83763 9.04517 +96.0708 -2.01033 9.89525 +95.979 -2.17718 10.7165 +95.88 -2.34386 11.5369 +95.6744 -2.50775 12.3436 +95.6599 -2.67664 13.175 +95.44 -2.8398 13.978 +96.0033 -3.02731 14.901 +95.7683 -3.1907 15.7053 +95.6248 -3.35697 16.5236 +95.1791 -3.5121 17.2872 +95.2178 -3.68494 18.138 +94.8567 -3.84228 18.9124 +94.8803 -4.01521 19.7637 +95.5794 -4.21869 20.7652 +95.4883 -4.38907 21.6039 +95.195 -4.55016 22.3968 +95.089 -4.72019 23.2337 +95.7498 -4.93009 24.2669 +95.4335 -5.0911 25.0594 +95.2067 -5.25673 25.8746 +95.6455 -5.46034 26.8768 +95.5943 -5.63761 27.7494 +95.1523 -5.79185 28.5086 +95.7532 -6.01084 29.5865 +95.6763 -6.18926 30.4647 +95.4014 -6.35525 31.2818 +95.781 -6.56615 32.3198 +95.4896 -6.73229 33.1376 +95.9426 -6.95243 34.2212 +95.5406 -7.11189 35.0061 +95.9721 -7.33467 36.1027 +95.74 -7.50844 36.958 +95.4072 -7.67449 37.7753 +96.0835 -7.92377 39.0023 +95.8246 -8.09818 39.8608 +96.383 -8.34374 41.0695 +96.0136 -8.51088 41.8922 +95.6369 -8.67738 42.7118 +96.0686 -8.91893 43.9007 +95.674 -9.08551 44.7206 +96.0811 -9.32994 45.9237 +95.6685 -9.4965 46.7436 +95.9614 -9.73468 47.9159 +96.3294 -9.98376 49.142 +95.8881 -10.1507 49.9639 +96.0547 -10.3835 51.1094 +95.6834 -10.5596 51.9764 +95.9132 -10.8039 53.1787 +95.436 -10.9701 53.9969 +95.727 -11.2264 55.2586 +95.1456 -11.3821 56.0247 +95.4104 -11.6406 57.2971 +95.4902 -11.8797 58.4743 +95.6406 -12.1308 59.71 +95.1052 -12.2965 60.5256 +95.2298 -12.5492 61.7693 +95.4222 -12.8143 63.0746 +95.5162 -13.0698 64.3323 +95.677 -13.3381 65.6525 +94.9259 -13.4807 66.3545 +95.1404 -13.7621 67.7397 +95.257 -14.0335 69.0754 +95.1974 -14.2823 70.3003 +95.4404 -14.5805 71.7679 +95.2705 -14.8193 72.9434 +95.3217 -15.0958 74.3044 +95.2004 -15.3485 75.5484 +94.7555 -15.5513 76.5467 +95.2959 -15.9201 78.362 +95.2028 -16.1885 79.6831 +95.1689 -16.4709 81.0728 +95.1174 -16.7543 82.468 +94.9739 -17.0255 83.8029 +94.9613 -17.3244 85.274 +94.8566 -17.6109 86.6844 +94.6614 -17.8847 88.0319 +94.5932 -18.1868 89.5189 +95.0763 -18.6016 91.5607 +94.8937 -18.8928 92.994 +94.6228 -19.1705 94.3611 +94.4041 -19.4631 95.8012 +94.2357 -19.7708 97.3158 +94.5932 -20.1959 99.4082 +94.8529 -20.609 101.442 +94.4143 -20.8766 102.759 +94.1583 -21.189 104.296 +93.8164 -21.4869 105.762 +93.8452 -21.8763 107.679 +94.0398 -22.3129 109.828 +94.076 -22.7212 111.838 +93.5799 -23.0077 113.248 +93.7507 -23.4655 115.501 +93.2727 -23.7687 116.994 +93.871 -24.3562 119.886 +93.1008 -24.5979 121.076 +92.9708 -25.0148 123.128 +92.3998 -25.3202 124.631 +115.56 -32.2551 158.766 +115.69 -32.895 161.915 +115.83 -33.5542 165.16 +115.361 -34.0511 167.606 +115.52 -34.7483 171.038 +115.463 -35.3986 174.239 +115.896 -36.2192 178.278 +115.575 -36.8243 181.256 +115.681 -37.584 184.996 +115.42 -38.2442 188.245 +115.11 -38.9064 191.505 +115.2 -39.7257 195.537 +115.523 -40.6521 200.097 +114.221 -41.0254 201.935 +111.894 -41.0299 201.957 +109.669 -41.0646 202.128 +107.033 -40.9356 201.493 +104.781 -40.9425 201.527 +102.625 -40.9806 201.714 +100.431 -40.9963 201.792 +97.8982 -40.8637 201.139 +95.6808 -40.8518 201.08 +93.223 -40.7265 200.464 +91.8411 -41.069 202.149 +90.5958 -41.4825 204.185 +90.3761 -42.3898 208.651 +90.5429 -43.52 214.214 +90.5424 -44.617 219.614 +90.5625 -45.773 225.303 +90.4162 -46.8951 230.827 +90.3185 -48.0948 236.732 +89.9171 -49.1852 242.099 +89.794 -50.4845 248.495 +87.415 -50.5445 248.79 +87.8934 -52.2993 257.427 +83.1874 -50.9729 250.898 +83.506 -52.7295 259.545 +79.0865 -51.5017 253.501 +79.8083 -53.6416 264.034 +75.3317 -52.3047 257.454 +75.2276 -54.0067 265.831 +70.3729 -52.2891 257.377 +70.2066 -54.0479 266.034 +65.1012 -51.9849 255.88 +65.1313 -54.0125 265.86 +58.7122 -50.6319 249.22 +58.0924 -52.1703 256.792 +53.7036 -50.3024 247.598 +53.2512 -52.1105 256.498 +49.4195 -50.6179 249.151 +48.4746 -52.0723 256.31 +44.6102 -50.3703 247.932 +44.0512 -52.4096 257.97 +40.1411 -50.4587 248.367 +39.1399 -52.141 256.648 +35.6701 -50.5313 248.725 +34.7591 -52.5653 258.736 +31.1986 -50.5883 249.005 +30.2026 -52.7769 259.778 +26.7593 -50.689 249.501 +25.4566 -52.6359 259.084 +22.2857 -50.7147 249.627 +20.8152 -52.6569 259.187 +17.8367 -50.7844 249.97 +16.2511 -52.8999 260.384 +13.3404 -50.6796 249.455 +11.5461 -52.6501 259.154 +8.91333 -50.8176 250.134 +6.9238 -52.6423 259.116 +4.45211 -50.7812 249.955 +2.31253 -52.758 259.685 +1.56015e-14 -50.7292 249.699 +-2.32824 -53.1164 261.449 +-4.46258 -50.9006 250.543 +-6.95783 -52.9011 260.39 +-8.94474 -50.9968 251.016 +-11.5984 -52.8888 260.329 +-13.4085 -50.9381 250.727 +-16.2145 -52.7809 259.798 +-17.9204 -51.0227 251.143 +-20.9329 -52.9547 260.653 +-22.4688 -51.1312 251.678 +-25.6579 -53.0523 261.133 +-26.9997 -51.1443 251.742 +-30.3385 -53.0142 260.946 +-31.5642 -51.181 251.923 +-35.0463 -52.9995 260.874 +-36.2128 -51.3002 252.51 +-39.8199 -53.0469 261.107 +-40.9233 -51.4418 253.206 +-44.5629 -53.0182 260.966 +-45.6347 -51.527 253.626 +-49.4769 -53.149 261.61 +-50.3354 -51.5561 253.769 +-54.4274 -53.2615 262.163 +-55.0966 -51.607 254.02 +-59.4343 -53.3754 262.724 +-60.1294 -51.8539 255.235 +-64.8745 -53.7997 264.812 +-65.3673 -52.1973 256.925 +-69.8059 -53.7395 264.516 +-70.5541 -52.4237 258.04 +-76.8578 -55.177 271.592 +-77.2612 -53.6444 264.048 +-82.9041 -55.7223 274.276 +-83.2675 -54.2245 266.904 +-88.9788 -56.1854 276.555 +-88.6261 -54.3056 267.302 +-93.1924 -55.4523 272.947 +-92.6241 -53.5564 263.615 +-99.0739 -55.7018 274.175 +-98.5702 -53.9185 265.397 +-104.117 -55.4424 272.898 +-103.353 -53.6051 263.855 +-109.73 -55.4611 272.99 +-109.123 -53.7732 264.682 +-115.953 -55.7335 274.331 +-102.567 -48.1077 236.796 +-102.04 -46.7227 229.978 +-104.369 -46.6709 229.723 +-100.563 -43.9333 216.248 +-107.091 -45.7236 225.06 +-105.518 -44.0444 216.795 +-109.067 -44.5215 219.143 +-110.166 -43.9917 216.535 +-113.18 -44.2244 217.681 +-115.391 -44.132 217.226 +-120.279 -45.0373 221.682 +-116.761 -42.8146 210.742 +-123.045 -44.1946 217.534 +-120.545 -42.4196 208.798 +-110.4 -38.0704 187.39 +-110.187 -37.2426 183.315 +-111.042 -36.7936 181.105 +-112.337 -36.4976 179.648 +-114.198 -36.3853 179.095 +-116.218 -36.32 178.774 +-117.152 -35.9162 176.786 +-119.108 -35.8276 176.35 +-120.842 -35.6687 175.568 +-124.326 -36.0154 177.275 +-149.99 -42.6476 209.92 +-222.583 -62.1274 305.803 +-218.539 -59.8862 294.771 +-229.245 -61.6806 303.604 +-224.116 -59.213 291.458 +-164.853 -42.7734 210.539 +-168.383 -42.909 211.206 +-166.709 -41.7266 205.386 +-169.602 -41.6985 205.248 +-255.831 -61.7883 304.134 +-252.101 -59.8165 294.428 +-265.819 -61.9649 305.003 +-261.111 -59.8027 294.361 +-277.108 -62.3589 306.943 +-163.803 -36.2196 178.28 +-167.479 -36.3887 179.112 +-282.347 -60.2818 296.718 +-299.572 -62.8507 309.363 +-291.479 -60.0936 295.792 +-307.419 -62.2831 306.569 +-302.217 -60.1697 296.167 +-318.609 -62.3356 306.828 +-312.05 -59.9957 295.31 +-331.133 -62.5622 307.943 +-325.306 -60.3958 297.28 +-347.258 -63.3524 311.833 +-335.53 -60.1488 296.064 +-355.679 -62.6506 308.378 +-349.883 -60.5543 298.06 +-369.253 -62.7888 309.058 +-363.795 -60.7755 299.149 +-381.337 -62.5853 308.057 +-375.828 -60.5922 298.246 +-391.382 -61.982 305.087 +-386.756 -60.1597 296.118 +-405.483 -61.9458 304.909 +-141.918 -21.2917 104.802 +-141.881 -20.9021 102.884 +-142.791 -20.6548 101.667 +-141.086 -20.0361 98.6213 +-140.485 -19.5846 96.3991 +-140.843 -19.2721 94.8609 +-144.916 -19.4608 95.79 +-148.432 -19.56 96.278 +-383.943 -49.6414 244.344 +-380.791 -48.2985 237.734 +-378.569 -47.0969 231.82 +-378.316 -46.1566 227.192 +-379.897 -45.4463 223.695 +-381.357 -44.7237 220.139 +-380.965 -43.7908 215.547 +-380.258 -42.8331 210.833 +-379.148 -41.8427 205.958 +-378.243 -40.8878 201.258 +-380.021 -40.2292 198.016 +-380.882 -39.4754 194.306 +-678.145 -68.7934 338.615 +-723.912 -71.8589 353.703 +-730.001 -70.8865 348.917 +-752.395 -71.4498 351.689 +-402.129 -37.3334 183.762 +-404.933 -36.7405 180.844 +-406.619 -36.0436 177.414 +-403.506 -34.9311 171.938 +-403.365 -34.0885 167.79 +-404.844 -33.3865 164.335 +-404.716 -32.5551 160.242 +-403.243 -31.6245 155.662 +-402 -30.7228 151.224 +-404.08 -30.079 148.054 +-401.061 -29.0626 143.052 +-402.885 -28.4046 139.813 +-404.587 -27.736 136.522 +-403.227 -26.8614 132.217 +-404.009 -26.1351 128.642 +-394.553 -24.7677 121.912 +-381.566 -23.2255 114.321 +-377.487 -22.2621 109.578 +-379.122 -21.6437 106.535 +-379.574 -20.9577 103.158 +-380.285 -20.2871 99.8571 +-379.223 -19.5259 96.1104 +-376.96 -18.7122 92.1051 +-379.71 -18.1495 89.3354 +-378.738 -17.4085 85.688 +-379.486 -16.7498 82.4458 +-378.641 -16.0236 78.8714 +-379.525 -15.3731 75.6694 +-378.81 -14.6599 72.1591 +-378.848 -13.9795 68.8096 +-378.068 -13.2723 65.3289 +-379.621 -12.6478 62.255 +-380.161 -11.9878 59.0062 +-379.288 -11.2856 55.5501 +-378.877 -10.6013 52.1816 +-379.426 -9.94524 48.9524 +-378.557 -9.2541 45.5505 +-378.948 -8.59604 42.3113 +-378.018 -7.91027 38.9359 +-3261.22 -62.5194 307.732 +-3263.83 -56.851 279.831 +-3266.2 -51.1784 251.91 +-3268.32 -45.5016 223.968 +-3270.19 -39.8214 196.009 +-3271.81 -34.1383 168.035 +-3273.18 -28.4526 140.049 +-3274.3 -22.7646 112.052 +-3275.18 -17.075 84.0465 +-143.678 -0.499311 2.4577 +-144.295 -0.250707 1.23403 +95.5 0 0 +95.4964 -0.158546 0.818164 +95.4855 -0.317079 1.63626 +95.4673 -0.47559 2.45424 +95.6417 -0.635391 3.27888 +96.3082 -0.799957 4.12812 +96.2679 -0.959815 4.95305 +96.2202 -1.1196 5.7776 +95.4669 -1.27001 6.55377 +96.1028 -1.4389 7.42533 +96.0332 -1.59839 8.24837 +95.9562 -1.75776 9.07079 +96.1703 -1.92296 9.9233 +95.979 -2.08039 10.7357 +95.88 -2.23966 11.5576 +96.4676 -2.41613 12.4683 +95.6599 -2.55765 13.1986 +95.5389 -2.71637 14.0176 +95.2132 -2.86893 14.8049 +95.867 -3.052 15.7496 +94.837 -3.18131 16.4169 +95.4741 -3.36638 17.3719 +95.316 -3.52476 18.1892 +96.0326 -3.717 19.1813 +95.6628 -3.86838 19.9624 +94.7983 -3.99822 20.6325 +95.5857 -4.19824 21.6647 +95.2923 -4.35232 22.4598 +95.283 -4.51956 23.3228 +95.8466 -4.71568 24.3349 +95.6267 -4.87463 25.1551 +96.1703 -5.07387 26.1833 +95.7417 -5.22285 26.9521 +95.6902 -5.3924 27.827 +95.248 -5.53993 28.5884 +95.8486 -5.74933 29.669 +95.5812 -5.90824 30.489 +96.16 -6.12103 31.5871 +95.8756 -6.28044 32.4097 +95.5838 -6.43936 33.2298 +96.0366 -6.64987 34.3161 +95.6342 -6.80239 35.1032 +96.1588 -7.02225 36.2378 +96.7634 -7.25134 37.42 +96.5198 -7.41883 38.2843 +96.1759 -7.57879 39.1097 +95.9166 -7.74562 39.9706 +96.4747 -7.98041 41.1823 +96.105 -8.14028 42.0072 +95.9099 -8.3153 42.9104 +95.5248 -8.47421 43.7305 +95.7643 -8.68979 44.843 +96.171 -8.92351 46.0491 +95.758 -9.08284 46.8713 +96.1396 -9.3192 48.091 +96.4181 -9.54873 49.2754 +95.9764 -9.70843 50.0996 +95.5274 -9.8674 50.9199 +95.7709 -10.0994 52.1172 +95.2169 -10.2486 52.8872 +96.302 -10.5775 54.5846 +95.8132 -10.737 55.4076 +96.0027 -10.9741 56.6308 +95.4957 -11.133 57.451 +95.575 -11.3617 58.6312 +95.7249 -11.6017 59.8698 +95.273 -11.7706 60.741 +95.3965 -12.0123 61.9884 +95.5051 -12.2553 63.2425 +95.5986 -12.4996 64.5032 +95.7589 -12.756 65.8265 +95.1701 -12.9145 66.6444 +95.3022 -13.1727 67.9765 +95.4178 -13.4322 69.316 +95.4369 -13.6817 70.6035 +95.3611 -13.9207 71.8367 +95.4281 -14.1839 73.195 +94.7738 -14.3418 74.0097 +95.4335 -14.7021 75.8691 +94.6783 -14.8479 76.6214 +94.6831 -15.1146 77.9975 +95.2789 -15.4812 79.8896 +95.2443 -15.7511 81.2825 +95.2672 -16.0347 82.746 +95.1225 -16.2941 84.0845 +95.035 -16.5671 85.4932 +94.8566 -16.828 86.8397 +94.8064 -17.1158 88.3248 +94.6651 -17.3915 89.7474 +94.5057 -17.668 91.1744 +95.0352 -18.0798 93.2996 +94.7629 -18.3455 94.6704 +94.543 -18.6252 96.1141 +94.2357 -18.8919 97.4902 +94.6614 -19.312 99.6581 +94.38 -19.5947 101.117 +94.0129 -19.8637 102.505 +94.3571 -20.2897 104.703 +93.882 -20.5461 106.027 +94.4297 -21.0339 108.544 +93.5899 -21.219 109.499 +93.7579 -21.6377 111.66 +93.7687 -22.0293 113.68 +93.8752 -22.452 115.862 +93.3958 -22.7419 117.358 +93.384 -23.1526 119.477 +93.1008 -23.5044 121.293 +92.8518 -23.8721 123.19 +92.4586 -24.21 124.934 +115.676 -30.8522 159.21 +115.748 -31.4482 162.286 +115.887 -32.0781 165.537 +115.473 -32.5689 168.069 +115.52 -33.2036 171.345 +115.572 -33.8569 174.716 +115.358 -34.4485 177.769 +115.628 -35.2034 181.665 +115.263 -35.7833 184.657 +115.42 -36.5441 188.583 +115.059 -37.1605 191.764 +115.25 -37.9762 195.973 +115.621 -38.8782 200.628 +114.367 -39.2516 202.555 +111.989 -39.2393 202.491 +109.716 -39.2558 202.577 +107.126 -39.1497 202.029 +104.872 -39.1565 202.064 +102.313 -39.0395 201.46 +100.124 -39.0542 201.536 +97.9413 -39.0642 201.588 +95.7653 -39.0701 201.618 +93.2645 -38.9334 200.912 +91.3124 -39.0172 201.345 +91.154 -39.8827 205.811 +90.7278 -40.6629 209.837 +90.5812 -41.6028 214.688 +90.6173 -42.669 220.19 +90.6358 -43.7735 225.89 +90.5954 -44.8992 231.699 +90.4235 -46.0102 237.432 +90.1223 -47.106 243.087 +90.0611 -48.3837 249.68 +89.9219 -49.6825 256.383 +89.7655 -51.0387 263.381 +87.6063 -51.2944 264.701 +87.0243 -52.5084 270.965 +83.0336 -51.6684 266.631 +82.194 -52.7892 272.414 +79.163 -52.5213 271.032 +77.5526 -53.2009 274.539 +74.514 -52.9048 273.011 +73.161 -53.8186 277.727 +69.6977 -53.1811 274.437 +67.7458 -53.6833 277.028 +64.8759 -53.46 275.876 +64.8237 -55.6274 287.061 +57.446 -51.4156 265.326 +56.1819 -52.5344 271.1 +52.606 -51.4866 265.692 +51.5362 -52.8999 272.986 +47.5275 -51.2786 264.619 +46.4609 -52.819 272.568 +42.7692 -51.3722 265.102 +41.5788 -52.9277 273.129 +38.2169 -51.7326 266.962 +36.6256 -52.9256 273.118 +33.3556 -51.6816 266.699 +31.6743 -52.8879 272.924 +28.3899 -51.3871 265.179 +26.7889 -52.9282 273.132 +23.6715 -51.4734 265.625 +21.9293 -53.0091 273.549 +18.9668 -51.6013 266.284 +16.9959 -52.8651 272.806 +14.1778 -51.4664 265.588 +12.1262 -52.8373 272.663 +9.4438 -51.4485 265.496 +7.2641 -52.7745 272.339 +4.72611 -51.5102 265.814 +2.42161 -52.7905 272.421 +1.66118e-14 -51.6131 266.345 +-2.419 -52.7334 272.127 +-4.7296 -51.5482 266.01 +-7.27719 -52.8696 272.83 +-9.46125 -51.5436 265.987 +-12.1524 -52.9514 273.252 +-14.2301 -51.6563 266.568 +-17.0264 -52.96 273.296 +-19.0644 -51.8669 267.655 +-22.047 -53.2937 275.018 +-23.7761 -51.701 266.799 +-26.8176 -52.9851 273.426 +-28.599 -51.7655 267.132 +-31.912 -53.2849 274.973 +-33.4288 -51.7948 267.283 +-36.8998 -53.3217 275.162 +-38.37 -51.9397 268.031 +-41.9187 -53.3605 275.362 +-43.3167 -52.0299 268.496 +-47.0221 -53.4571 275.861 +-48.3957 -52.2154 269.453 +-52.3198 -53.7042 277.136 +-53.4838 -52.3455 270.125 +-57.4578 -53.7275 277.256 +-58.5271 -52.3834 270.32 +-62.8108 -53.9 278.147 +-64.1785 -52.8854 272.911 +-68.2361 -54.0718 279.033 +-69.5284 -53.0519 273.77 +-74.4881 -54.7947 282.764 +-76.041 -53.989 278.606 +-81.481 -55.8957 288.445 +-83.1322 -55.1549 284.622 +-86.9371 -55.8355 288.135 +-88.1793 -54.8704 283.155 +-92.2565 -55.6653 287.256 +-92.9523 -54.4245 280.853 +-98.1106 -55.7836 287.867 +-98.6797 -54.5213 281.353 +-103.814 -55.7722 287.808 +-104.111 -54.4177 280.818 +-109.3 -55.6149 286.996 +-110.162 -54.5967 281.742 +-115.411 -55.7391 287.637 +-116.39 -54.8046 282.815 +-121.349 -55.7341 287.612 +-121.752 -54.5674 281.591 +-100.604 -44.0174 227.148 +-100.301 -42.8581 221.166 +-100.397 -41.911 216.279 +-102.569 -41.8462 215.944 +-104.916 -41.846 215.943 +-107.226 -41.8241 215.83 +-109.542 -41.7977 215.693 +-111.772 -41.733 215.36 +-114.329 -41.7821 215.613 +-112.955 -40.4148 208.557 +-115.95 -40.6271 209.653 +-117.469 -40.3164 208.05 +-121.382 -40.8154 210.625 +-110.9 -36.5427 188.576 +-110.237 -35.6033 183.728 +-111.042 -35.158 181.43 +-112.703 -34.9885 180.555 +-114.198 -34.7678 179.416 +-115.949 -34.6251 178.68 +-117.206 -34.3355 177.186 +-118.722 -34.1238 176.093 +-120.953 -34.1147 176.046 +-123.477 -34.1792 176.379 +-131.865 -35.8272 184.884 +-166.081 -44.2957 228.585 +-166.755 -43.6643 225.326 +-166.253 -42.7435 220.575 +-166.582 -42.0556 217.025 +-166.983 -41.4002 213.643 +-168.876 -41.1213 212.203 +-169.884 -40.6311 209.673 +-259.595 -60.987 314.718 +-272.941 -62.9904 325.057 +-270.356 -61.2961 316.314 +-283.484 -63.1451 325.855 +-280.793 -61.4517 317.117 +-294.535 -63.3342 326.831 +-162.063 -34.2419 176.703 +-163.155 -33.8733 174.8 +-303.694 -61.957 319.724 +-316.781 -63.5065 327.72 +-315.167 -62.0887 320.404 +-330.198 -63.9241 329.875 +-324.562 -61.7458 318.634 +-340.934 -63.7383 328.916 +-336.651 -61.8482 319.163 +-354.563 -64.0109 330.323 +-351.269 -62.317 321.582 +-362.888 -63.2609 326.453 +-363.918 -62.3377 321.689 +-377.623 -63.5591 327.991 +-378.336 -62.5677 322.876 +-393.89 -64.0006 330.27 +-389.151 -62.1214 320.572 +-402.325 -63.0945 325.594 +-397.199 -61.1911 315.772 +-411.965 -62.3413 321.707 +-407.402 -60.554 312.484 +-424.365 -61.9483 319.679 +-141.678 -20.3108 104.812 +-142.122 -20.007 103.244 +-142.872 -19.7479 101.907 +-141.249 -19.1674 98.912 +-140.812 -18.7576 96.7971 +-141.338 -18.48 95.3646 +-144.501 -18.5425 95.6872 +-147.765 -18.6064 96.017 +-512.344 -63.2978 326.644 +-380.96 -46.1717 238.266 +-380.858 -45.2755 233.641 +-379.169 -44.204 228.111 +-381.182 -43.5728 224.854 +-381.443 -42.7453 220.584 +-381.051 -41.8536 215.982 +-380.345 -40.9383 211.259 +-379.235 -39.9917 206.374 +-379.825 -39.2336 202.462 +-380.904 -38.53 198.831 +-381.947 -37.8259 195.198 +-730.714 -70.8311 365.518 +-735.994 -69.8105 360.251 +-744.651 -69.0946 356.557 +-406.073 -36.8477 190.15 +-405.482 -35.9711 185.626 +-402.567 -34.9021 180.109 +-404.518 -34.2634 176.814 +-404.148 -33.4313 172.52 +-403.549 -32.5882 168.169 +-404.197 -31.8513 164.366 +-403.974 -31.0508 160.235 +-403.615 -30.2464 156.084 +-403.213 -29.4457 151.952 +-403.144 -28.6752 147.976 +-405.008 -28.044 144.719 +-404.205 -27.2307 140.522 +-404.587 -26.503 136.767 +-402.943 -25.6492 132.361 +-405.435 -25.0615 129.328 +-392.55 -23.5466 121.511 +-382.618 -22.2543 114.842 +-377.967 -21.2995 109.914 +-379.314 -20.6922 106.781 +-378.418 -19.9651 103.028 +-379.416 -19.3409 99.8073 +-379.708 -18.6817 96.4056 +-378.512 -17.954 92.6501 +-379.03 -17.3116 89.3351 +-379.517 -16.6688 86.0182 +-380.267 -16.0381 82.7636 +-377.076 -15.248 78.6862 +-378.643 -14.6556 75.6289 +-380.086 -14.0554 72.5319 +-379.045 -13.365 68.9688 +-379.053 -12.7153 65.6165 +-380.016 -12.0981 62.4314 +-378.778 -11.4132 58.897 +-377.211 -10.7249 55.3449 +-376.797 -10.0744 51.9883 +-378.137 -9.47084 48.8735 +-378.756 -8.84734 45.656 +-378.452 -8.20313 42.3316 +-378.515 -7.56856 39.0569 +-3261.22 -59.7401 308.284 +-3263.83 -54.3237 280.333 +-3266.2 -48.9033 252.361 +-3268.32 -43.4788 224.369 +-3270.19 -38.0512 196.36 +-3271.81 -32.6207 168.336 +-3273.18 -27.1877 140.3 +-3274.3 -21.7526 112.253 +-3275.18 -16.316 84.1972 +-3275.8 -10.878 56.135 +-142.895 -0.237238 1.22425 +95.4 0 0 +94.7964 -0.150049 0.813554 +95.4855 -0.302302 1.63906 +95.4673 -0.453425 2.45844 +95.4418 -0.604513 3.27762 +96.5081 -0.764257 4.14374 +95.3691 -0.906539 4.91518 +96.4198 -1.06964 5.79947 +95.4669 -1.21082 6.56496 +96.1028 -1.37184 7.43801 +96.0332 -1.5239 8.26245 +96.1553 -1.67932 9.10513 +96.1703 -1.83334 9.94025 +95.979 -1.98343 10.754 +95.88 -2.13528 11.5773 +95.7736 -2.28695 12.3997 +96.3531 -2.45612 13.3169 +96.429 -2.6139 14.1724 +96.1021 -2.76076 14.9686 +95.867 -2.90977 15.7765 +95.6248 -3.05824 16.5815 +95.4741 -3.20949 17.4016 +95.1197 -3.35356 18.1827 +95.1507 -3.51121 19.0375 +94.9781 -3.66168 19.8533 +95.7746 -3.85113 20.8805 +95.5857 -4.00258 21.7017 +95.3895 -4.15372 22.5212 +95.186 -4.30454 23.3389 +95.7498 -4.49138 24.3519 +95.5301 -4.64275 25.1726 +95.3031 -4.79379 25.9915 +95.7417 -4.97944 26.9981 +95.6902 -5.14109 27.8746 +96.1086 -5.32948 28.896 +94.9902 -5.43231 29.4535 +95.5812 -5.63289 30.5411 +96.16 -5.83576 31.641 +95.8756 -5.98774 32.465 +95.5838 -6.13926 33.2866 +96.0366 -6.33996 34.3747 +95.6342 -6.48537 35.1631 +96.1588 -6.69498 36.2997 +95.833 -6.84692 37.1235 +96.5198 -7.07308 38.3497 +96.1759 -7.22559 39.1765 +96.7451 -7.44841 40.3847 +95.6494 -7.5434 40.8997 +96.2877 -7.77565 42.1589 +95.9099 -7.92777 42.9837 +96.3405 -8.14825 44.1792 +95.7643 -8.28481 44.9196 +96.171 -8.50763 46.1277 +95.758 -8.65954 46.9513 +96.1396 -8.88488 48.1731 +95.6198 -9.02833 48.9509 +95.9764 -9.25598 50.1852 +95.5274 -9.40754 51.0069 +95.7709 -9.62873 52.2062 +96.0002 -9.85139 53.4134 +95.5226 -10.003 54.2353 +95.8132 -10.2366 55.5022 +95.2313 -10.3785 56.2716 +95.4104 -10.6047 57.4978 +95.575 -10.8322 58.7313 +95.0502 -10.9831 59.5493 +95.1891 -11.2121 60.7912 +95.3965 -11.4525 62.0943 +95.588 -11.6943 63.4055 +95.6811 -11.9273 64.6691 +95.1036 -12.0783 65.4877 +95.1701 -12.3127 66.7582 +95.3022 -12.5588 68.0926 +95.4178 -12.8062 69.4344 +95.2772 -13.0223 70.6057 +95.3611 -13.2719 71.9594 +95.4281 -13.5229 73.32 +94.7738 -13.6734 74.1361 +94.7341 -13.9142 75.4418 +95.3728 -14.2598 77.3153 +94.6831 -14.4102 78.1307 +95.2789 -14.7597 80.0261 +95.2443 -15.0171 81.4213 +95.1923 -15.2754 82.8221 +95.1969 -15.5469 84.2939 +95.035 -15.795 85.6392 +94.8566 -16.0438 86.988 +94.8064 -16.3181 88.4757 +94.6651 -16.581 89.9007 +94.5057 -16.8446 91.3301 +94.328 -17.109 92.7634 +94.833 -17.5034 94.9022 +94.4735 -17.7442 96.2075 +94.3046 -18.0246 97.728 +93.9794 -18.2794 99.1094 +94.3124 -18.6681 101.217 +94.0798 -18.9514 102.753 +94.3571 -19.3441 104.882 +93.882 -19.5886 106.208 +93.8452 -19.9296 108.056 +93.5256 -20.2161 109.61 +93.6943 -20.6154 111.775 +93.8317 -21.0166 113.95 +93.8752 -21.4056 116.06 +93.3958 -21.682 117.558 +93.384 -22.0736 119.681 +93.1008 -22.409 121.5 +92.8518 -22.7596 123.401 +92.5762 -23.1111 125.307 +115.153 -29.2814 158.761 +115.862 -30.0123 162.724 +115.887 -30.5831 165.819 +115.529 -31.0661 168.438 +115.41 -31.6261 171.474 +115.572 -32.279 175.014 +115.304 -32.8279 177.99 +115.628 -33.5628 181.975 +115.211 -34.1002 184.889 +115.317 -34.81 188.737 +115.516 -35.5694 192.854 +115.15 -36.175 196.138 +115.67 -37.0821 201.056 +114.367 -37.4223 202.901 +111.56 -37.2671 202.059 +109.34 -37.2981 202.227 +107.08 -37.309 202.286 +104.917 -37.3478 202.497 +102.313 -37.2201 201.804 +100.124 -37.2341 201.88 +97.9413 -37.2437 201.932 +95.7653 -37.2493 201.963 +93.2645 -37.1189 201.256 +91.231 -37.1657 201.509 +91.3933 -38.1237 206.704 +91.2357 -38.9849 211.373 +91.0787 -39.8818 216.236 +90.7297 -40.7308 220.839 +90.6358 -41.7335 226.276 +90.2729 -42.6543 231.268 +90.1434 -43.7299 237.1 +90.1907 -44.9448 243.687 +90.0945 -46.1459 250.199 +89.5964 -47.1957 255.891 +89.9241 -48.7461 264.297 +89.4913 -49.9561 270.858 +89.3698 -51.4105 278.744 +86.8052 -51.4979 279.218 +86.2839 -52.8332 286.458 +82.3329 -52.0787 282.367 +82.1491 -53.7276 291.307 +78.7328 -53.295 288.961 +76.6914 -53.7864 291.625 +73.6652 -53.5889 290.554 +72.4381 -54.7263 296.721 +67.0354 -52.6651 285.546 +66.1656 -54.1328 293.504 +60.5231 -51.6452 280.016 +59.0927 -52.6811 285.632 +54.8003 -51.1345 277.247 +53.9417 -52.7886 286.216 +49.9586 -51.3895 278.63 +48.7221 -52.8084 286.323 +44.9123 -51.4323 278.862 +43.4264 -52.7034 285.753 +39.7478 -51.2973 278.13 +38.2311 -52.6709 285.577 +34.7328 -51.3073 278.184 +33.2931 -53.0001 287.362 +29.7906 -51.4094 278.738 +28.0732 -52.8809 286.716 +24.7697 -51.3514 278.423 +22.863 -52.6905 285.684 +19.8806 -51.5667 279.59 +17.8323 -52.8815 286.719 +14.8268 -51.3138 278.219 +12.6583 -52.5857 285.115 +9.91495 -51.4979 279.218 +7.62796 -52.8352 286.468 +4.9495 -51.4308 278.854 +2.54029 -52.797 286.261 +1.73343e-14 -51.3479 278.404 +-2.54553 -52.9058 286.851 +-4.9495 -51.4308 278.854 +-7.62011 -52.7808 286.173 +-9.92542 -51.5524 279.513 +-12.7499 -52.9662 287.178 +-14.9157 -51.6216 279.888 +-17.8628 -52.972 287.21 +-19.8876 -51.5848 279.689 +-23.0434 -53.1064 287.939 +-25.0311 -51.8933 281.362 +-28.2074 -53.1336 288.086 +-30.1878 -52.0949 282.454 +-33.4063 -53.1804 288.34 +-35.3299 -52.1894 282.966 +-38.8315 -53.4982 290.063 +-40.2767 -51.9799 281.831 +-43.7516 -53.0981 287.893 +-45.5381 -52.1489 282.747 +-49.0521 -53.1661 288.262 +-50.9136 -52.372 283.957 +-54.5431 -53.3772 289.407 +-56.2696 -52.5055 284.681 +-59.8503 -53.3563 289.294 +-61.6042 -52.5677 285.018 +-65.5379 -53.6192 290.719 +-66.9229 -52.5768 285.067 +-70.944 -53.5976 290.602 +-72.7217 -52.9025 286.833 +-77.4425 -54.3131 294.481 +-79.2504 -53.6453 290.86 +-84.3939 -55.1957 299.267 +-85.7232 -54.2231 293.993 +-90.0045 -55.1115 298.81 +-90.4306 -53.6487 290.879 +-95.3839 -54.8701 297.501 +-96.0734 -53.6302 290.779 +-101.664 -55.1103 298.803 +-101.903 -53.6781 291.038 +-107.586 -55.1048 298.774 +-107.531 -53.586 290.539 +-110.455 -53.5836 290.526 +-113.244 -53.5083 290.118 +-119.993 -55.251 299.566 +-119.949 -53.848 291.96 +-100.187 -43.8701 237.86 +-100.066 -42.7581 231.831 +-99.8069 -41.6334 225.733 +-99.4878 -40.5293 219.747 +-100.314 -39.9248 216.469 +-102.569 -39.896 216.313 +-104.916 -39.8958 216.312 +-107.226 -39.8749 216.199 +-109.452 -39.8172 215.886 +-111.772 -39.788 215.727 +-114.19 -39.7866 215.72 +-114.175 -38.9477 211.171 +-119.003 -39.7538 215.542 +-120.136 -39.3101 213.136 +-124.14 -39.7973 215.778 +-110.8 -34.8083 188.728 +-110.237 -33.9441 184.042 +-111.145 -33.5506 181.909 +-112.337 -33.2497 180.277 +-113.986 -33.086 179.389 +-115.734 -32.9503 178.654 +-117.315 -32.7658 177.654 +-118.666 -32.5182 176.311 +-121.009 -32.5398 176.428 +-123.59 -32.616 176.841 +-133.529 -34.5885 187.536 +-164.223 -41.7589 226.413 +-165.638 -41.3506 224.2 +-166.788 -40.8826 221.662 +-165.258 -39.777 215.668 +-166.374 -39.3268 213.227 +-169.799 -39.4193 213.728 +-171.503 -39.1066 212.033 +-173.126 -38.7772 210.247 +-178.992 -39.3834 213.534 +-284.562 -61.5102 333.503 +-297.967 -63.2779 343.087 +-294.767 -61.5034 333.467 +-307.654 -63.0722 341.972 +-163.268 -32.8886 178.319 +-163.02 -32.2679 174.954 +-317.197 -61.6961 334.511 +-332.2 -63.4941 344.26 +-330.935 -62.1568 337.009 +-345.688 -63.804 345.94 +-343.583 -62.3182 337.884 +-361.903 -64.5052 349.742 +-356.936 -62.5188 338.972 +-371.609 -63.9617 346.795 +-368.163 -62.2701 337.624 +-383.827 -63.7926 345.878 +-379.152 -61.9204 335.728 +-398.594 -63.962 346.797 +-394.864 -62.2578 337.557 +-413.053 -63.9863 346.929 +-409.91 -62.3858 338.251 +-423.082 -63.2575 342.977 +-415.695 -61.0558 331.04 +-435.521 -62.8344 340.683 +-424.58 -60.1661 326.216 +-453.322 -63.0914 342.076 +-142.077 -19.4188 105.287 +-142.363 -19.1068 103.596 +-142.872 -18.8275 102.081 +-141.982 -18.369 99.5952 +-140.894 -17.8938 97.0188 +-141.667 -17.6598 95.7503 +-144.087 -17.6277 95.5757 +-148.432 -17.8194 96.6153 +-548.323 -64.5858 350.179 +-381.297 -44.0589 238.884 +-380.604 -43.1366 233.883 +-379.681 -42.2009 228.81 +-381.097 -41.5329 225.188 +-381.443 -40.7531 220.96 +-379.233 -39.7126 215.318 +-379.562 -38.9501 211.184 +-380.46 -38.251 207.394 +-378.77 -37.3012 202.244 +-379.844 -36.6322 198.617 +-381.947 -36.0631 195.531 +-733.744 -67.8099 367.66 +-739.842 -66.905 362.754 +-746.269 -66.0177 357.943 +-751.763 -65.037 352.626 +-403.851 -34.1568 185.195 +-405.206 -33.4937 181.6 +-403.787 -32.6077 176.796 +-404.148 -31.8733 172.814 +-405.114 -31.1898 169.109 +-400.871 -30.117 163.292 +-404.345 -29.6309 160.656 +-401.94 -28.7173 155.703 +-404.427 -28.1579 152.67 +-402.488 -27.2944 147.988 +-403.316 -26.6253 144.36 +-403.828 -25.9375 140.631 +-403.358 -25.191 136.583 +-402.184 -24.4078 132.337 +-403.248 -23.7646 128.85 +-395.22 -22.6018 122.545 +-383.096 -21.2436 115.181 +-379.884 -20.4099 110.661 +-380.179 -19.7729 107.207 +-378.899 -19.0588 103.335 +-377.967 -18.3692 99.5962 +-380.676 -17.8565 96.8165 +-379.483 -17.1611 93.0464 +-379.613 -16.5302 89.6255 +-380.004 -15.9124 86.2758 +-375.483 -15.0983 81.862 +-379.326 -14.6241 79.2909 +-379.427 -14.0015 75.9149 +-378.81 -13.3554 72.4119 +-378.553 -12.7256 68.997 +-379.446 -12.1353 65.7969 +-379.227 -11.5104 62.4082 +-376.704 -10.8217 58.6745 +-379.98 -10.3001 55.8465 +-379.669 -9.67812 52.474 +-379.228 -9.0555 49.0982 +-378.656 -8.43282 45.722 +-378.153 -7.81466 42.3705 +-380.206 -7.24806 39.2984 +-3261.22 -56.956 308.811 +-3263.83 -51.792 280.812 +-3266.2 -46.6241 252.792 +-3268.32 -41.4525 224.752 +-3270.19 -36.2778 196.695 +-3271.81 -31.1004 168.624 +-3273.18 -25.9206 140.54 +-3274.3 -20.7389 112.444 +-3275.18 -15.5556 84.341 +-3275.8 -10.371 56.2309 +-144.395 -0.228555 1.23921 +95.5 0 0 +95.6964 -0.144061 0.82261 +95.4855 -0.287508 1.64171 +95.4673 -0.431237 2.46242 +96.3413 -0.580349 3.31388 +95.4091 -0.718581 4.1032 +95.3691 -0.862177 4.92315 +96.2202 -1.01519 5.79686 +96.3647 -1.1624 6.63747 +96.3022 -1.30742 7.46553 +96.0332 -1.44933 8.27586 +95.2594 -1.58226 9.03494 +96.0708 -1.74182 9.94603 +96.0784 -1.88834 10.7827 +95.9792 -2.0329 11.6081 +95.7736 -2.17504 12.4198 +95.4618 -2.31433 13.2152 +96.2312 -2.4809 14.1663 +95.2132 -2.60138 14.8542 +95.867 -2.76737 15.8021 +95.7233 -2.91159 16.6256 +95.4741 -3.05243 17.4298 +95.316 -3.19604 18.2499 +95.1507 -3.33939 19.0684 +94.9781 -3.4825 19.8856 +95.677 -3.65895 20.8931 +95.4883 -3.80283 21.7147 +95.2923 -3.94642 22.5346 +95.9622 -4.12729 23.5674 +94.9753 -4.23704 24.1941 +95.5301 -4.41556 25.2135 +95.3031 -4.5592 26.0337 +95.9339 -4.74528 27.0962 +95.4984 -4.87971 27.8638 +95.248 -5.02328 28.6837 +95.8486 -5.21315 29.7679 +95.5812 -5.35724 30.5906 +96.16 -5.55019 31.6924 +95.8756 -5.69473 32.5177 +95.4896 -5.83307 33.3077 +96.0366 -6.02971 34.4305 +95.6342 -6.168 35.2202 +95.3186 -6.31173 36.0409 +95.833 -6.51187 37.1837 +96.5198 -6.72696 38.4119 +96.1759 -6.872 39.2401 +95.9166 -7.02327 40.1039 +96.4747 -7.23617 41.3196 +96.105 -7.38112 42.1473 +96.5469 -7.5899 43.3394 +96.1593 -7.73494 44.1676 +95.9448 -7.89424 45.0773 +96.171 -8.09131 46.2025 +95.758 -8.23578 47.0275 +96.0505 -8.44226 48.2065 +96.4181 -8.65822 49.4397 +96.0647 -8.81112 50.3128 +95.4395 -8.93893 51.0426 +95.7709 -9.15754 52.2909 +96.0002 -9.3693 53.5001 +95.436 -9.50484 54.274 +95.8132 -9.7357 55.5922 +95.2313 -9.87066 56.3629 +95.4104 -10.0858 57.5911 +95.4902 -10.293 58.7744 +95.8093 -10.529 60.1222 +95.1891 -10.6634 60.8898 +95.3131 -10.8825 62.1407 +95.588 -11.122 63.5084 +95.6811 -11.3437 64.774 +95.7589 -11.5664 66.046 +95.2515 -11.7201 66.9237 +95.3022 -11.9442 68.2031 +95.4178 -12.1796 69.5471 +95.2772 -12.385 70.7202 +95.3611 -12.6225 72.0762 +95.4281 -12.8611 73.4389 +95.3999 -13.0902 74.7469 +94.6564 -13.2225 75.5021 +95.45 -13.5729 77.5034 +94.6831 -13.705 78.2575 +95.2789 -14.0375 80.1559 +94.5651 -14.1804 80.9719 +95.1174 -14.5165 82.8912 +95.1225 -14.7745 84.3648 +95.035 -15.0221 85.7782 +94.8566 -15.2587 87.1292 +94.1536 -15.4127 88.009 +94.7371 -15.7816 90.115 +94.5057 -16.0203 91.4783 +95.0352 -16.3937 93.6105 +94.6928 -16.6223 94.9156 +94.543 -16.8883 96.4345 +94.3046 -17.1426 97.8866 +94.1158 -17.4101 99.414 +94.3124 -17.7546 101.381 +94.682 -18.1394 103.579 +94.2246 -18.3718 104.905 +94.4725 -18.7471 107.049 +93.9102 -18.9674 108.307 +94.1041 -19.3459 110.468 +93.6943 -19.6065 111.956 +93.7687 -19.9748 114.059 +93.813 -20.3447 116.171 +93.3958 -20.621 117.749 +93.2623 -20.9662 119.72 +93.5221 -21.4088 122.248 +92.6734 -21.6043 123.364 +92.6937 -22.0081 125.669 +115.211 -27.8626 159.1 +115.69 -28.5012 162.746 +115.32 -28.9444 165.277 +115.473 -29.5316 168.63 +115.41 -30.0784 171.752 +115.409 -30.656 175.05 +115.788 -31.3523 179.026 +115.522 -31.8911 182.103 +115.315 -32.461 185.357 +115.317 -33.1065 189.043 +115.516 -33.8288 193.167 +115.15 -34.4048 196.456 +115.621 -35.2524 201.296 +113.882 -35.4401 202.368 +111.56 -35.4434 202.387 +109.34 -35.4729 202.555 +107.08 -35.4832 202.614 +104.917 -35.5202 202.825 +102.269 -35.3834 202.044 +100.124 -35.412 202.208 +97.9843 -35.4367 202.348 +95.8076 -35.4422 202.38 +93.2645 -35.3025 201.582 +91.109 -35.2997 201.566 +91.3933 -36.2581 207.039 +91.4311 -37.1565 212.169 +91.1169 -37.9462 216.678 +90.8796 -38.8017 221.563 +90.7824 -39.7554 227.009 +90.8104 -40.8085 233.023 +90.3185 -41.6709 237.947 +89.8829 -42.5994 243.249 +90.1279 -43.9039 250.698 +89.6289 -44.9023 256.399 +89.6703 -46.2297 263.979 +89.5222 -47.5278 271.391 +89.3698 -48.8947 279.196 +89.2318 -50.347 287.489 +88.9252 -51.786 295.706 +85.5027 -51.437 293.713 +84.3137 -52.4448 299.467 +81.2433 -52.3032 298.659 +77.9934 -52.0227 297.057 +76.8344 -53.1591 303.546 +75.2161 -54.0444 308.601 +71.0395 -53.0798 303.093 +69.4338 -54.0268 308.501 +64.7645 -52.56 300.125 +61.9037 -52.4865 299.706 +57.6052 -51.1214 291.91 +55.7823 -51.9185 296.462 +52.216 -51.0832 291.693 +50.4881 -52.0446 297.182 +47.0711 -51.2666 292.74 +45.1558 -52.1203 297.615 +41.571 -51.0248 291.359 +39.7713 -52.1115 297.564 +36.4633 -51.2278 292.518 +34.3911 -52.0691 297.322 +31.1599 -51.141 292.023 +29.2234 -52.3535 298.946 +25.9637 -51.1926 292.317 +23.9457 -52.4852 299.698 +20.7874 -51.2802 292.818 +18.6564 -52.6182 300.457 +15.6013 -51.3522 293.228 +13.269 -52.425 299.354 +10.3686 -51.219 292.468 +7.98397 -52.5949 300.324 +5.17464 -51.139 292.011 +2.66072 -52.5937 300.317 +1.82283e-14 -51.3537 293.237 +-2.66857 -52.7489 301.204 +-5.20605 -51.4495 293.784 +-7.97873 -52.5606 300.128 +-10.421 -51.4776 293.944 +-13.4042 -52.9594 302.406 +-15.6013 -51.3522 293.228 +-18.8152 -53.0658 303.013 +-20.8781 -51.504 294.095 +-24.2046 -53.0527 302.939 +-26.1467 -51.5535 294.378 +-29.6547 -53.1264 303.359 +-31.4213 -51.5699 294.471 +-35.093 -53.1317 303.39 +-36.9873 -51.964 296.722 +-40.5806 -53.1719 303.619 +-42.2669 -51.8788 296.236 +-46.1609 -53.2806 304.24 +-47.6499 -51.8971 296.34 +-51.9405 -53.5417 305.731 +-53.1711 -52.0175 297.028 +-57.6229 -53.6316 306.244 +-58.6356 -52.0358 297.132 +-63.3193 -53.6866 306.559 +-64.8269 -52.6106 300.414 +-69.2607 -53.8921 307.732 +-70.1172 -52.3906 299.158 +-75.8231 -54.4805 311.092 +-76.7134 -53.0755 303.069 +-84.8538 -56.5986 323.186 +-85.7467 -55.2024 315.214 +-91.1283 -56.6837 323.672 +-90.9879 -54.7368 312.555 +-94.4635 -55.0113 314.122 +-94.6115 -53.3823 304.821 +-101.578 -55.5742 317.336 +-101.821 -54.0573 308.675 +-107.281 -55.3088 315.822 +-107.47 -53.8405 307.437 +-113.461 -55.2702 315.601 +-114.064 -54.0598 308.689 +-111.191 -51.3008 292.935 +-117.76 -52.9192 302.176 +-100.971 -44.2173 252.487 +-100.469 -42.8961 244.943 +-99.7273 -41.532 237.154 +-99.7146 -40.5229 231.391 +-99.7271 -39.5645 225.919 +-99.5691 -38.5776 220.284 +-100.273 -37.9554 216.731 +-102.569 -37.9436 216.664 +-104.916 -37.9435 216.663 +-107.226 -37.9236 216.549 +-109.542 -37.8996 216.412 +-111.772 -37.841 216.078 +-114.19 -37.8396 216.07 +-116.664 -37.8489 216.123 +-119.194 -37.8691 216.238 +-121.105 -37.6882 215.205 +-124.288 -37.8948 216.385 +-110.7 -33.0751 188.864 +-110.593 -32.387 184.934 +-110.785 -31.8053 181.613 +-112.651 -31.7108 181.073 +-114.198 -31.5254 180.014 +-116.11 -31.4396 179.525 +-117.043 -31.09 177.528 +-118.832 -30.9702 176.845 +-120.674 -30.8616 176.224 +-123.59 -31.0199 177.128 +-131.751 -32.4577 185.338 +-164.92 -39.8839 227.743 +-164.404 -39.034 222.89 +-164.409 -38.3274 218.855 +-166.342 -38.0785 217.434 +-166.618 -37.4572 213.886 +-168.507 -37.205 212.446 +-171.69 -37.2333 212.607 +-168.595 -35.9143 205.076 +-177.466 -37.1367 212.056 +-299.282 -61.5261 351.323 +-311.54 -62.9229 359.299 +-310.25 -61.5662 351.552 +-324.419 -63.2544 361.192 +-163.469 -31.3177 178.828 +-161.939 -30.4853 174.076 +-334.52 -61.8813 353.351 +-353.47 -64.2534 366.896 +-349.76 -62.478 356.759 +-368.748 -64.7297 369.616 +-365.079 -62.9767 359.606 +-382.588 -64.8551 370.332 +-379.883 -63.282 361.35 +-397.36 -65.0471 371.428 +-390.323 -62.7877 358.527 +-407.936 -64.4818 368.2 +-401.967 -62.434 356.507 +-424.658 -64.8099 370.074 +-422.335 -63.3307 361.627 +-436.929 -64.3729 367.579 +-430.9 -62.3711 356.148 +-448.082 -63.7171 363.834 +-442.274 -61.7808 352.777 +-465.182 -63.8296 364.476 +-455.628 -61.4063 350.639 +-475.377 -62.9234 359.302 +-141.518 -18.3959 105.043 +-142.524 -18.1924 103.881 +-142.711 -17.8858 102.131 +-141.249 -17.3799 99.2417 +-140.894 -17.0182 97.1762 +-141.502 -16.7761 95.7941 +-144.667 -16.8326 96.1164 +-147.765 -16.8712 96.3371 +-584.973 -65.5309 374.191 +-379.948 -41.7545 238.424 +-379.926 -40.9526 233.845 +-381.471 -40.325 230.262 +-380.411 -39.4294 225.148 +-381.099 -38.7239 221.119 +-382.264 -38.0711 217.392 +-379.997 -37.0865 211.769 +-379.235 -36.2621 207.062 +-381.143 -35.6982 203.842 +-381.257 -34.9692 199.679 +-380.705 -34.1869 195.212 +-734.011 -64.5151 368.39 +-739.395 -63.5925 363.123 +-746.089 -62.772 358.437 +-403.817 -33.2257 189.724 +-403.035 -32.4196 185.121 +-402.658 -31.6544 180.751 +-404.609 -31.0751 177.444 +-402.314 -30.1759 172.309 +-404.746 -29.6365 169.229 +-402.442 -28.7555 164.198 +-405.179 -28.239 161.249 +-403.708 -27.4321 156.641 +-405.547 -26.8542 153.341 +-402.394 -25.9527 148.194 +-400.685 -25.1571 143.651 +-403.451 -24.6451 140.727 +-404.209 -24.0088 137.094 +-405.029 -23.3776 133.489 +-403.438 -22.6124 129.12 +-398.654 -21.6826 123.811 +-382.809 -20.1889 115.282 +-380.651 -19.4502 111.064 +-380.179 -18.8053 107.381 +-380.249 -18.1906 103.871 +-378.45 -17.4925 99.8849 +-380.676 -16.9827 96.9736 +-378.803 -16.2921 93.0305 +-380.099 -15.7414 89.8858 +-379.322 -15.1066 86.2606 +-379.779 -14.5238 82.9329 +-380.108 -13.9372 79.5833 +-379.427 -13.3163 76.0381 +-378.81 -12.7018 72.5294 +-378.75 -12.1091 69.1448 +-378.659 -11.5175 65.7668 +-378.635 -10.93 62.412 +-378.976 -10.3542 59.1241 +-379.485 -9.78334 55.8643 +-379.372 -9.1973 52.5179 +-378.831 -8.60336 49.1264 +-379.947 -8.04748 45.9523 +-379.942 -7.46741 42.64 +-380.802 -6.90419 39.4239 +-3261.22 -54.1688 309.312 +-3263.83 -49.2575 281.267 +-3266.2 -44.3426 253.203 +-3268.32 -39.424 225.117 +-3270.19 -34.5026 197.015 +-3271.81 -29.5785 168.898 +-3273.18 -24.6522 140.768 +-3274.3 -19.724 112.627 +-3275.18 -14.7943 84.4778 +-3275.8 -9.86352 56.3221 +-142.495 -0.214511 1.22489 +95.5 0 0 +95.6964 -0.136634 0.823876 +95.3855 -0.272401 1.64253 +95.4673 -0.409005 2.46621 +95.4418 -0.54529 3.28799 +95.4091 -0.681535 4.10952 +96.2679 -0.825435 4.97721 +96.2202 -0.962848 5.80578 +96.3647 -1.10247 6.64768 +96.1028 -1.23745 7.46155 +96.0332 -1.37461 8.2886 +95.9562 -1.51166 9.11503 +96.0708 -1.65202 9.96134 +95.979 -1.78912 10.788 +95.88 -1.9261 11.614 +95.7736 -2.0629 12.4389 +95.6599 -2.19957 13.2629 +95.3411 -2.33122 14.0568 +95.2132 -2.46726 14.8771 +95.867 -2.6247 15.8264 +95.6248 -2.75863 16.634 +95.5724 -2.89804 17.4746 +95.1197 -3.02502 18.2403 +95.1507 -3.16723 19.0978 +95.8585 -3.33357 20.1008 +95.7746 -3.47385 20.9466 +95.5857 -3.61046 21.7703 +95.2923 -3.74297 22.5693 +95.186 -3.88284 23.4127 +95.8466 -4.05546 24.4536 +95.5301 -4.18792 25.2523 +95.3031 -4.32415 26.0738 +95.9339 -4.50064 27.1379 +95.4984 -4.62814 27.9067 +95.248 -4.76431 28.7278 +94.9902 -4.90012 29.5467 +95.5812 -5.08105 30.6377 +96.16 -5.26405 31.7412 +95.781 -5.39582 32.5357 +95.5838 -5.53782 33.3919 +96.0366 -5.71885 34.4835 +95.7279 -5.85574 35.3089 +96.1588 -6.03909 36.4145 +95.74 -6.17016 37.2048 +96.4271 -6.37403 38.4341 +96.1759 -6.51771 39.3005 +95.9166 -6.66118 40.1656 +96.383 -6.85658 41.3438 +96.105 -7.00059 42.2121 +95.7279 -7.13753 43.0379 +96.3405 -7.34999 44.319 +95.9448 -7.48726 45.1467 +96.171 -7.67416 46.2737 +95.937 -7.82578 47.1879 +96.1396 -8.01445 48.3255 +95.7085 -8.15141 49.1514 +95.8881 -8.34151 50.2976 +96.2305 -8.54836 51.5449 +95.6834 -8.67749 52.3235 +96.0002 -8.88627 53.5824 +95.436 -9.01482 54.3575 +95.8132 -9.23378 55.6778 +95.317 -9.37021 56.5005 +95.581 -9.58288 57.7829 +95.4902 -9.76233 58.8649 +95.0502 -9.90709 59.7378 +95.1891 -10.1137 60.9835 +94.5627 -10.2402 61.7463 +94.8419 -10.4663 63.1097 +95.5986 -10.7496 64.8178 +95.0216 -10.8857 65.6384 +95.1701 -11.1064 66.9695 +95.3022 -11.3284 68.3081 +95.4178 -11.5516 69.6541 +95.2772 -11.7465 70.8291 +95.3611 -11.9717 72.1871 +95.3493 -12.188 73.4912 +95.3999 -12.4153 74.862 +95.3558 -12.6334 76.1771 +95.3728 -12.8628 77.5599 +94.7597 -13.009 78.4414 +95.2789 -13.3138 80.2793 +95.2443 -13.5459 81.679 +95.1923 -13.7789 83.0842 +95.1225 -14.0128 84.4946 +94.3715 -14.1481 85.3103 +94.9297 -14.4832 87.3306 +94.7339 -14.7082 88.6877 +94.7371 -14.968 90.2538 +94.5057 -15.1944 91.6191 +94.328 -15.4328 93.057 +94.7629 -15.777 95.1321 +94.543 -16.0176 96.5829 +94.9929 -16.3775 98.7532 +94.6614 -16.6082 100.144 +94.3124 -16.8392 101.537 +94.682 -17.2042 103.738 +94.2246 -17.4246 105.067 +94.4725 -17.7806 107.214 +93.9102 -17.9896 108.473 +93.5256 -18.2356 109.957 +93.7579 -18.6083 112.204 +93.7687 -18.945 114.235 +93.8752 -19.3086 116.427 +93.2727 -19.5322 117.775 +93.871 -20.015 120.687 +93.5221 -20.3051 122.436 +92.4949 -20.451 123.316 +93.3991 -21.0323 126.821 +115.211 -26.4262 159.345 +115.69 -27.0319 162.997 +115.434 -27.4792 165.694 +115.473 -28.0091 168.889 +115.52 -28.5549 172.18 +115.355 -29.0618 175.237 +115.358 -29.6255 178.636 +115.469 -30.2332 182.3 +115.315 -30.7875 185.642 +115.523 -31.4558 189.672 +115.059 -31.9578 192.699 +115.15 -32.631 196.759 +115.67 -33.4492 201.692 +113.833 -33.5988 202.594 +111.56 -33.6161 202.698 +109.34 -33.6441 202.867 +107.126 -33.6685 203.014 +104.463 -33.5431 202.258 +102.313 -33.5737 202.443 +99.7294 -33.454 201.721 +97.5969 -33.4769 201.859 +95.4272 -33.4815 201.886 +93.2645 -33.4824 201.892 +91.4344 -33.5994 202.598 +91.3933 -34.3888 207.358 +91.5092 -35.271 212.677 +91.27 -36.0503 217.376 +90.9545 -36.8315 222.087 +90.8923 -37.7516 227.635 +90.5954 -38.613 232.829 +90.4586 -39.5837 238.682 +90.2591 -40.5724 244.643 +89.9609 -41.5634 250.619 +89.694 -42.6183 256.98 +89.6386 -43.8308 264.291 +89.5222 -45.0775 271.808 +89.3998 -46.3895 279.719 +89.495 -47.8923 288.781 +89.0104 -49.1633 296.445 +88.3142 -50.3894 303.838 +87.5206 -51.633 311.337 +83.8833 -51.2187 308.839 +82.6755 -52.3026 315.374 +80.052 -52.5299 316.745 +78.1575 -53.2625 321.162 +74.5263 -52.8142 318.459 +72.7237 -53.6693 323.615 +67.405 -51.8827 312.842 +65.0936 -52.3457 315.634 +60.0476 -50.5416 304.755 +58.5887 -51.7192 311.856 +54.2303 -50.3186 303.411 +52.7822 -51.6044 311.164 +48.8076 -50.4174 304.007 +47.1808 -51.6502 311.44 +43.3803 -50.5005 304.508 +41.5073 -51.5823 311.031 +37.9623 -50.5841 305.012 +36.0326 -51.7418 311.993 +32.5293 -50.636 305.325 +30.5652 -51.9345 313.155 +27.1752 -50.819 306.429 +24.9735 -51.916 313.043 +21.7082 -50.7909 306.259 +19.3463 -51.7508 312.047 +16.3236 -50.9596 307.276 +13.8579 -51.929 313.121 +10.9061 -51.0965 308.102 +8.33736 -52.0914 314.101 +5.45562 -51.1361 308.34 +2.7794 -52.1073 314.196 +1.91773e-14 -51.2421 308.98 +-2.77678 -52.0582 313.901 +-5.45562 -51.1361 308.34 +-8.3138 -51.9442 313.213 +-10.9201 -51.1618 308.495 +-13.8928 -52.0597 313.909 +-16.512 -51.5478 310.823 +-19.5416 -52.2734 315.198 +-22.05 -51.5906 311.081 +-25.1148 -52.2095 314.813 +-27.5586 -51.5361 310.753 +-30.7952 -52.3254 315.512 +-33.1982 -51.6773 311.604 +-36.508 -52.4245 316.109 +-38.8885 -51.8182 312.453 +-42.2774 -52.5394 316.802 +-44.3405 -51.6183 311.248 +-47.9198 -52.4592 316.319 +-49.9339 -51.5808 311.022 +-53.6735 -52.4757 316.418 +-55.8279 -51.801 312.35 +-59.5728 -52.588 317.095 +-61.6885 -51.9227 313.084 +-65.8313 -52.9389 319.211 +-67.1555 -51.6907 311.685 +-71.6848 -52.9026 318.992 +-73.9639 -52.4157 316.056 +-79.815 -54.3921 327.973 +-83.1486 -54.5619 328.997 +-88.5344 -56.0092 337.724 +-90.0431 -54.9799 331.518 +-93.48 -55.1488 332.536 +-94.4058 -53.8651 324.796 +-99.519 -54.9675 331.443 +-100.868 -53.9785 325.479 +-106.029 -55.0184 331.75 +-107.136 -53.9467 325.288 +-112.421 -54.9709 331.464 +-113.233 -53.8028 324.42 +-118.335 -54.6723 329.663 +-119.502 -53.7174 323.905 +-102.401 -44.8095 270.193 +-101.203 -43.1342 260.091 +-100.091 -41.5724 250.673 +-99.9825 -40.4873 244.131 +-99.689 -39.3758 237.428 +-99.7927 -38.4638 231.929 +-99.6474 -37.4946 226.085 +-99.5691 -36.5887 220.623 +-100.19 -35.9688 216.885 +-102.231 -35.8688 216.282 +-104.916 -35.9873 216.996 +-107.226 -35.9685 216.883 +-109.542 -35.9457 216.746 +-111.455 -35.788 215.795 +-114.098 -35.8597 216.227 +-116.945 -35.9843 216.978 +-118.765 -35.7874 215.791 +-121.542 -35.8739 216.312 +-123.845 -35.8129 215.944 +-110.65 -31.3557 189.069 +-110.085 -30.5763 184.369 +-110.939 -30.2077 182.146 +-112.337 -29.9924 180.848 +-113.774 -29.7892 179.623 +-115.842 -29.7497 179.385 +-116.934 -29.4598 177.637 +-118.887 -29.3872 177.199 +-120.786 -29.2977 176.659 +-123.08 -29.2995 176.67 +-129.456 -30.2484 182.392 +-165.791 -38.0275 229.298 +-165.638 -37.2996 224.909 +-167.086 -36.9433 222.76 +-168.267 -36.5334 220.289 +-166.009 -35.3962 213.432 +-169.122 -35.4158 213.55 +-171.876 -35.3522 213.166 +-174.699 -35.2962 212.829 +-176.575 -35.0454 211.317 +-313.23 -61.0739 368.263 +-326.932 -62.6273 377.63 +-325.93 -61.3433 369.888 +-340.785 -63.02 379.998 +-162.599 -29.545 178.151 +-163.696 -29.2273 176.235 +-354.707 -62.2329 375.252 +-368.958 -63.6111 383.562 +-371.017 -62.8582 379.022 +-384.519 -64.0181 386.017 +-385.232 -63.0272 380.041 +-399.42 -64.2177 387.22 +-400.241 -63.2359 381.3 +-418.468 -64.9708 391.761 +-414.458 -63.2327 381.28 +-432.487 -64.8382 390.961 +-430.207 -63.3753 382.14 +-452.07 -65.4363 394.568 +-446.788 -63.5434 383.154 +-462.327 -64.603 389.543 +-454.801 -62.4367 376.481 +-469.379 -63.3043 381.712 +-467.842 -61.9832 373.746 +-486.782 -63.3498 381.987 +-477.85 -61.081 368.306 +-385.728 -48.4248 291.992 +-140.959 -17.3785 104.789 +-142.604 -17.2643 104.1 +-142.711 -16.9637 102.288 +-141.982 -16.5694 99.9104 +-140.894 -16.1408 97.3258 +-141.667 -15.9298 96.0532 +-143.921 -15.8824 95.7678 +-147.514 -15.9743 96.3221 +-643.68 -68.3899 412.377 +-380.201 -39.6284 238.951 +-378.399 -38.6852 233.264 +-381.045 -38.2034 230.359 +-382.725 -37.6242 226.866 +-381.099 -36.7275 221.459 +-380.272 -35.9202 216.592 +-380.781 -35.247 212.532 +-379.585 -34.4243 207.572 +-380.352 -33.7874 203.731 +-380.904 -33.1356 199.801 +-380.262 -32.3866 195.285 +-733.12 -61.1148 368.51 +-739.126 -60.2921 363.549 +-745.01 -59.4497 358.47 +-406.795 -31.7451 191.417 +-407.295 -31.0733 187.366 +-402.658 -30.0225 181.029 +-404.153 -29.4397 177.515 +-404.423 -28.7702 173.479 +-404.01 -28.0575 169.181 +-404.936 -27.442 165.47 +-405.179 -26.7832 161.497 +-405.011 -26.1017 157.388 +-404.614 -25.4112 153.224 +-404.08 -24.7178 149.043 +-400.309 -23.8379 143.738 +-403.074 -23.3528 140.813 +-404.587 -22.7924 137.434 +-402.848 -22.0529 132.975 +-404.104 -21.4819 129.532 +-396.365 -20.4466 123.289 +-382.713 -19.1433 115.43 +-378.926 -18.3639 110.731 +-379.506 -17.8042 107.356 +-380.634 -17.2703 104.137 +-380.188 -16.6669 100.498 +-379.03 -16.0375 96.703 +-378.415 -15.4364 93.0782 +-379.03 -14.8879 89.7708 +-380.199 -14.3609 86.5932 +-380.463 -13.7998 83.21 +-379.717 -13.205 79.6237 +-379.231 -12.6233 76.1158 +-380.184 -12.0907 72.9045 +-377.963 -11.461 69.1074 +-377.477 -10.8897 65.6624 +-380.213 -10.4097 62.7686 +-378.877 -9.81786 59.1997 +-379.386 -9.27654 55.9357 +-375.906 -8.64345 52.1182 +-376.947 -8.11924 48.9574 +-379.252 -7.61864 45.9388 +-380.041 -7.08427 42.7167 +-379.311 -6.52261 39.33 +-3261.22 -51.3761 309.788 +-3263.83 -46.718 281.7 +-3266.2 -42.0565 253.592 +-3268.32 -37.3915 225.463 +-3270.19 -32.7238 197.318 +-3271.81 -28.0536 169.158 +-3273.18 -23.3813 140.984 +-3274.3 -18.7071 112.8 +-3275.18 -14.0316 84.6079 +-143.078 -0.408602 2.46379 +-142.595 -0.203594 1.22763 +95.6 0 0 +95.5964 -0.129061 0.824214 +95.3855 -0.257572 1.64492 +96.4669 -0.390789 2.49567 +95.5418 -0.516145 3.29622 +96.4082 -0.651181 4.1586 +95.469 -0.774022 4.94309 +96.32 -0.911376 5.82026 +96.3647 -1.04245 6.65736 +96.2025 -1.17129 7.48015 +96.1328 -1.30112 8.30928 +96.1553 -1.43234 9.14724 +96.0708 -1.56209 9.97584 +95.979 -1.69173 10.8038 +95.88 -1.82124 11.6309 +95.8727 -1.95263 12.4699 +95.6599 -2.07983 13.2822 +95.5389 -2.20889 14.1065 +95.3119 -2.33536 14.9142 +94.9793 -2.45885 15.7028 +95.7233 -2.61115 16.6754 +95.5724 -2.74028 17.5001 +95.316 -2.86625 18.3046 +95.1507 -2.99481 19.1255 +95.8585 -3.15209 20.13 +95.677 -3.28139 20.9557 +95.5857 -3.41391 21.802 +95.2923 -3.53921 22.6022 +95.089 -3.66772 23.4229 +95.8466 -3.83469 24.4892 +95.5301 -3.95993 25.289 +95.3031 -4.08875 26.1117 +95.9339 -4.25563 27.1774 +95.5943 -4.38058 27.9754 +95.3436 -4.50948 28.7986 +95.9439 -4.67988 29.8868 +95.6763 -4.80923 30.7128 +95.4014 -4.9382 31.5365 +95.9701 -5.11215 32.6474 +96.5265 -5.28798 33.7703 +96.1306 -5.41281 34.5675 +95.6342 -5.53155 35.3257 +96.1588 -5.71034 36.4675 +95.74 -5.83427 37.259 +96.4271 -6.02704 38.4901 +96.1759 -6.1629 39.3577 +96.0087 -6.30461 40.2627 +95.6494 -6.43397 41.0888 +96.1963 -6.62578 42.3138 +95.8189 -6.75539 43.1415 +96.2499 -6.94334 44.3418 +95.8546 -7.07301 45.1699 +96.2608 -7.26317 46.3843 +95.8475 -7.39286 47.2125 +95.4268 -7.52197 48.037 +95.7085 -7.70766 49.2229 +96.0647 -7.90193 50.4636 +95.4395 -8.01655 51.1956 +95.8583 -8.22009 52.4954 +96.0002 -8.40252 53.6604 +95.436 -8.52407 54.4367 +95.8132 -8.7311 55.7589 +95.2313 -8.85214 56.5318 +95.4957 -9.05312 57.8153 +95.4902 -9.23088 58.9506 +95.7249 -9.43425 60.2493 +95.1891 -9.56312 61.0723 +95.3965 -9.76812 62.3815 +94.8419 -9.89653 63.2016 +94.9393 -10.0943 64.4645 +95.0216 -10.2931 65.7339 +95.1701 -10.5018 67.067 +95.3022 -10.7117 68.4075 +95.3374 -10.9136 69.6967 +95.3571 -11.1164 70.9916 +95.5197 -11.3389 72.4125 +95.5069 -11.5436 73.7199 +95.3217 -11.7298 74.9095 +94.6564 -11.8581 75.7284 +95.3728 -12.1625 77.6728 +95.2193 -12.3604 78.9366 +95.2789 -12.589 80.3961 +95.2443 -12.8085 81.7979 +95.1923 -13.0288 83.2051 +95.1225 -13.25 84.6176 +95.1088 -13.4824 86.1019 +95.076 -13.7158 87.5924 +94.2261 -13.833 88.3408 +94.809 -14.1639 90.4538 +94.5057 -14.3672 91.7525 +94.328 -14.5927 93.1924 +94.7629 -14.9181 95.2706 +94.543 -15.1456 96.7235 +94.3046 -15.3737 98.1799 +94.6614 -15.7041 100.29 +94.3124 -15.9225 101.685 +94.0798 -16.1642 103.228 +94.3571 -16.4991 105.367 +94.6037 -16.836 107.519 +93.9751 -17.022 108.706 +94.1041 -17.3496 110.799 +93.8215 -17.6074 112.445 +93.7058 -17.9016 114.324 +93.813 -18.2454 116.519 +93.2727 -18.4689 117.947 +93.3231 -18.815 120.157 +93.4017 -19.175 122.456 +92.4355 -19.3252 123.415 +93.4579 -19.8999 127.085 +115.328 -25.0126 159.737 +115.346 -25.4842 162.748 +115.32 -25.9577 165.772 +115.473 -26.4843 169.135 +115.52 -27.0004 172.431 +115.409 -27.4927 175.575 +115.251 -27.9866 178.729 +115.151 -28.5086 182.062 +115.368 -29.1246 185.997 +115.06 -29.624 189.186 +115.059 -30.2181 192.979 +115.15 -30.8546 197.045 +115.72 -31.6418 202.072 +113.882 -31.7832 202.975 +111.56 -31.7861 202.993 +109.34 -31.8126 203.162 +106.71 -31.712 202.52 +104.463 -31.7171 202.553 +102.313 -31.746 202.738 +99.7294 -31.6328 202.014 +97.5969 -31.6545 202.153 +95.3849 -31.6449 202.091 +93.3474 -31.6879 202.366 +90.987 -31.6149 201.9 +91.6724 -32.6161 208.294 +91.2357 -33.2513 212.35 +91.3465 -34.1164 217.875 +91.0294 -34.8552 222.594 +91.0389 -35.7541 228.334 +91.0255 -36.6843 234.274 +90.6337 -37.5014 239.493 +90.0197 -38.2619 244.349 +90.0945 -39.3591 251.356 +89.7591 -40.3275 257.541 +89.4482 -41.3567 264.114 +89.5531 -42.6383 272.298 +89.1893 -43.7608 279.467 +89.2318 -45.1519 288.35 +89.266 -46.6205 297.729 +89.2238 -48.137 307.414 +89.1774 -49.7464 317.692 +85.902 -49.596 316.731 +84.5283 -50.5638 322.912 +80.9713 -50.2406 320.848 +79.1847 -51.025 325.857 +76.1684 -51.0395 325.95 +74.2171 -51.7898 330.742 +70.69 -51.4492 328.566 +68.3035 -51.9368 331.68 +62.6426 -49.8554 318.388 +60.3564 -50.3792 321.734 +56.4183 -49.499 316.112 +54.4657 -50.3514 321.556 +50.7317 -49.5521 316.451 +48.6145 -50.3225 321.371 +45.0086 -49.5437 316.398 +42.8779 -50.3848 321.769 +39.0957 -49.2584 314.576 +37.3344 -50.6927 323.735 +33.7313 -49.6487 317.068 +31.5141 -50.6317 323.346 +28.1339 -49.7478 317.701 +25.8287 -50.7708 324.234 +22.4825 -49.7389 317.644 +20.0728 -50.7711 324.236 +16.8522 -49.7457 317.688 +14.3421 -50.8175 324.532 +11.269 -49.9227 318.818 +8.57819 -50.6784 323.644 +5.60222 -49.6517 317.087 +2.86056 -50.7094 323.842 +1.97223e-14 -49.8294 318.222 +-2.86754 -50.833 324.631 +-5.60571 -49.6826 317.285 +-8.60175 -50.8175 324.532 +-11.2307 -49.7527 317.732 +-14.4293 -51.1266 326.506 +-16.9673 -50.0856 319.858 +-20.3353 -51.4351 328.476 +-22.629 -50.063 319.714 +-26.2603 -51.619 329.651 +-28.2908 -50.0251 319.472 +-32.2617 -51.8328 331.016 +-34.139 -50.2488 320.901 +-38.3646 -52.0915 332.668 +-40.0463 -50.4561 322.225 +-44.3136 -52.072 332.544 +-45.8575 -50.4781 322.365 +-50.6099 -52.3881 334.562 +-52.0457 -50.8356 324.648 +-56.8259 -52.5333 335.49 +-57.8248 -50.7331 323.993 +-63.1628 -52.7217 336.693 +-64.4934 -51.3285 327.796 +-69.1209 -52.5584 335.65 +-70.3365 -51.1919 326.923 +-75.5591 -52.7262 336.722 +-77.4731 -51.9137 331.533 +-85.0441 -54.8006 349.969 +-86.6806 -53.7832 343.472 +-91.6641 -54.8323 350.172 +-92.6831 -53.511 341.734 +-96.4463 -53.8013 343.587 +-98.4025 -53.089 339.039 +-103.382 -53.9925 344.808 +-104.289 -52.7709 337.007 +-110.269 -54.1035 345.518 +-111.184 -52.9374 338.07 +-117.212 -54.1937 346.094 +-106.461 -47.8315 305.463 +-105.55 -46.1109 294.475 +-105.821 -44.9781 287.241 +-100.474 -41.5732 265.496 +-100.164 -40.3673 257.795 +-100.055 -39.2949 250.946 +-100.02 -38.2977 244.578 +-99.7656 -37.2607 237.955 +-99.7927 -36.3699 232.267 +-99.3284 -35.3401 225.69 +-99.6098 -34.611 221.034 +-100.522 -34.1233 217.92 +-102.189 -33.9021 216.507 +-104.485 -33.8885 216.42 +-106.831 -33.8853 216.399 +-109.14 -33.8644 216.266 +-111.863 -33.9638 216.901 +-114.144 -33.9213 216.629 +-116.476 -33.8888 216.422 +-118.717 -33.8255 216.018 +-121.59 -33.9346 216.714 +-123.943 -33.8904 216.432 +-110.65 -29.6487 189.344 +-110.136 -28.9252 184.723 +-110.991 -28.5765 182.496 +-112.442 -28.3859 181.279 +-113.827 -28.1806 179.968 +-115.842 -28.1302 179.646 +-117.152 -27.9079 178.226 +-118.832 -27.7745 177.375 +-120.842 -27.7156 176.998 +-123.08 -27.7045 176.927 +-129.972 -28.7157 183.385 +-165.849 -35.9699 229.712 +-165.403 -35.2189 224.916 +-168.811 -35.2929 225.389 +-165.74 -34.0257 217.296 +-166.07 -33.4816 213.821 +-168.691 -33.4024 213.316 +-171.503 -33.3551 213.013 +-174.951 -33.4229 213.446 +-177.529 -33.3166 212.767 +-326.986 -60.2853 384.996 +-344.078 -62.3236 398.013 +-341.413 -60.7593 388.023 +-357.616 -62.5322 399.345 +-162.666 -27.9483 178.484 +-163.29 -27.5679 176.055 +-368.484 -61.1304 390.393 +-385.823 -62.8974 401.677 +-382.896 -61.3392 391.727 +-401.411 -63.1924 403.561 +-399.727 -61.8385 394.915 +-419.605 -63.7905 407.381 +-417.145 -62.3188 397.982 +-442.333 -64.9375 414.706 +-436.326 -62.9451 401.982 +-461.388 -65.4054 417.694 +-455.176 -63.4033 404.908 +-478.732 -65.5235 418.448 +-467.241 -62.8346 401.276 +-490.69 -64.8338 414.044 +-474.948 -61.653 393.73 +-499.241 -63.6664 406.589 +-497.607 -62.3377 398.103 +-385.669 -47.4586 303.082 +-384.943 -46.5267 297.13 +-384.856 -45.685 291.755 +-141.518 -16.4977 105.358 +-142.685 -16.3336 104.31 +-142.549 -16.0222 102.321 +-142.063 -15.6764 100.113 +-140.812 -15.2533 97.4108 +-141.338 -15.0275 95.9693 +-144.584 -15.087 96.3491 +-147.264 -15.0791 96.2987 +-668.085 -67.1188 428.636 +-380.201 -37.4711 239.299 +-378.314 -36.571 233.551 +-381.556 -36.1721 231.003 +-380.754 -35.3927 226.026 +-381.616 -34.7753 222.083 +-380.791 -34.0112 217.203 +-380.345 -33.2901 212.598 +-380.022 -32.5879 208.114 +-380.44 -31.9555 204.075 +-381.433 -31.3754 200.37 +-381.947 -30.7592 196.435 +-732.496 -57.7387 368.733 +-739.305 -57.0237 364.166 +-745.729 -56.2677 359.338 +-403.636 -29.784 190.207 +-403.579 -29.1136 185.926 +-405.115 -28.5612 182.398 +-403.422 -27.7868 177.453 +-404.974 -27.2411 173.968 +-401.524 -26.3669 168.385 +-404.105 -25.8949 165.371 +-404.252 -25.2671 161.362 +-405.848 -24.7319 157.943 +-404.894 -24.0444 153.553 +-404.174 -23.3776 149.295 +-404.256 -22.7624 145.366 +-405.053 -22.19 141.71 +-402.696 -21.4508 136.99 +-403.417 -20.8818 133.356 +-404.199 -20.3173 129.751 +-399.417 -19.4825 124.42 +-380.227 -17.9836 114.848 +-377.104 -17.2807 110.358 +-380.179 -16.8648 107.703 +-377.647 -16.2021 103.47 +-379.416 -15.7276 100.44 +-379.611 -15.1877 96.9921 +-380.162 -14.6634 93.6439 +-380.975 -14.1496 90.3628 +-379.712 -13.5617 86.608 +-379.389 -13.0117 83.0958 +-379.423 -12.4765 79.678 +-379.427 -11.9422 76.266 +-379.203 -11.403 72.8221 +-378.356 -10.8483 69.28 +-378.757 -10.3318 65.9811 +-379.72 -9.83026 62.7783 +-378.383 -9.27128 59.2085 +-378.694 -8.75553 55.9149 +-378.679 -8.2332 52.5791 +-378.831 -7.71561 49.2737 +-378.061 -7.18126 45.8612 +-377.657 -6.65658 42.5105 +-379.41 -6.16914 39.3975 +-3261.22 -48.5793 310.239 +-3263.83 -44.1748 282.11 +-3266.2 -39.767 253.961 +-3268.32 -35.356 225.792 +-3270.19 -30.9424 197.605 +-3271.81 -26.5264 169.404 +-3273.18 -22.1084 141.19 +-3274.3 -17.6888 112.964 +-3275.18 -13.2678 84.731 +-3275.8 -8.84574 56.4909 +-142.895 -0.192916 1.23201 +95.6 0 0 +95.6964 -0.121747 0.826207 +95.5854 -0.243231 1.65063 +95.3673 -0.36406 2.4706 +96.4412 -0.490967 3.33182 +95.509 -0.607915 4.12546 +95.469 -0.729397 4.94987 +96.32 -0.858831 5.82824 +96.3647 -0.982353 6.66649 +96.3022 -1.10491 7.49818 +96.2324 -1.22738 8.32929 +96.0557 -1.34836 9.15031 +96.0708 -1.47203 9.98953 +96.0784 -1.59585 10.8299 +95.88 -1.71624 11.6468 +95.8727 -1.84005 12.4871 +95.6599 -1.95992 13.3005 +96.3301 -2.09877 14.2428 +95.3119 -2.20072 14.9346 +95.867 -2.33873 15.8712 +95.7233 -2.46061 16.6983 +95.4741 -2.57964 17.5061 +96.1995 -2.72603 18.4995 +95.1507 -2.82215 19.1518 +94.9781 -2.94309 19.9725 +95.7746 -3.09536 21.0059 +95.4883 -3.21381 21.8097 +95.3895 -3.33857 22.6563 +95.089 -3.45626 23.455 +95.7498 -3.60996 24.4981 +95.5301 -3.73163 25.3237 +96.1703 -3.88808 26.3855 +95.9339 -4.01027 27.2147 +95.5943 -4.12802 28.0138 +95.3436 -4.24949 28.8381 +95.9439 -4.41007 29.9278 +95.6763 -4.53196 30.755 +96.2549 -4.69513 31.8623 +96.0647 -4.82215 32.7243 +95.6781 -4.93932 33.5194 +96.1306 -5.10074 34.6149 +95.6342 -5.21263 35.3742 +96.1588 -5.38111 36.5176 +96.8565 -5.56201 37.7452 +96.5198 -5.68501 38.5799 +96.1759 -5.80758 39.4117 +96.0087 -5.94112 40.3179 +95.7411 -6.06884 41.1847 +96.1963 -6.24378 42.3718 +95.9099 -6.37197 43.2417 +96.2499 -6.54303 44.4026 +95.8546 -6.66522 45.2319 +96.2608 -6.84442 46.4479 +95.8475 -6.96663 47.2773 +96.2287 -7.14787 48.5072 +96.5068 -7.32385 49.7015 +96.0647 -7.44636 50.5328 +95.4395 -7.55437 51.2658 +95.8583 -7.74617 52.5674 +95.391 -7.86783 53.393 +95.6958 -8.05449 54.6597 +95.8132 -8.22772 55.8353 +95.2313 -8.34178 56.6094 +95.4957 -8.53117 57.8946 +95.575 -8.70641 59.0839 +94.9659 -8.81983 59.8536 +95.1891 -9.01177 61.1561 +95.3965 -9.20495 62.467 +95.588 -9.39932 63.7861 +95.0217 -9.52057 64.6089 +95.1036 -9.70798 65.8808 +95.9028 -9.97252 67.676 +95.3022 -10.0941 68.5014 +95.4178 -10.2931 69.8512 +95.3571 -10.4755 71.089 +95.4404 -10.6762 72.4516 +95.3493 -10.8601 73.6991 +95.3217 -11.0536 75.0123 +95.5112 -11.2753 76.5172 +95.3728 -11.4613 77.7794 +94.6831 -11.5822 78.5997 +94.5945 -11.778 79.9282 +94.5651 -11.9839 81.326 +95.1923 -12.2777 83.3193 +95.2712 -12.5056 84.8661 +95.1088 -12.7051 86.22 +94.8566 -12.8952 87.5102 +94.879 -13.1258 89.0749 +94.809 -13.3473 90.5779 +94.4344 -13.5287 91.809 +94.328 -13.7514 93.3203 +94.1321 -13.9644 94.7661 +94.543 -14.2724 96.8562 +94.3046 -14.4873 98.3146 +94.1158 -14.7134 99.8488 +94.3124 -15.0045 101.824 +94.0129 -15.2215 103.297 +94.3571 -15.5479 105.512 +93.8164 -15.7333 106.77 +93.9751 -16.0406 108.856 +93.7184 -16.2823 110.496 +93.8215 -16.5922 112.599 +93.7687 -16.8809 114.558 +93.813 -17.1935 116.679 +93.8884 -17.519 118.888 +93.3231 -17.7302 120.322 +93.4017 -18.0695 122.624 +92.9113 -18.3048 124.221 +93.6342 -18.7879 127.499 +115.328 -23.5706 159.956 +115.346 -24.0149 162.971 +115.434 -24.4852 166.163 +115.417 -24.9453 169.285 +115.52 -25.4437 172.667 +115.355 -25.8954 175.732 +115.304 -26.3855 179.058 +115.151 -26.865 182.312 +115.368 -27.4455 186.252 +115.472 -28.0161 190.124 +115.008 -28.4633 193.159 +115.25 -29.101 197.486 +115.572 -29.7793 202.09 +113.833 -29.9381 203.167 +111.56 -29.9535 203.272 +109.293 -29.9656 203.354 +106.664 -29.8709 202.711 +104.463 -29.8885 202.831 +102.313 -29.9158 203.016 +99.7294 -29.809 202.292 +97.5969 -29.8295 202.43 +95.4272 -29.8335 202.458 +92.9328 -29.7283 201.743 +91.0277 -29.8054 202.267 +91.3135 -30.6154 207.763 +91.2357 -31.3342 212.642 +91.3465 -32.1494 218.174 +90.9919 -32.8321 222.807 +91.0389 -33.6927 228.647 +90.8821 -34.5149 234.227 +90.7738 -35.3938 240.191 +90.5327 -36.2615 246.08 +90.1612 -37.1173 251.887 +89.8243 -38.0302 258.082 +89.6386 -39.0553 265.039 +89.6458 -40.2216 272.953 +89.3096 -41.2935 280.228 +89.2318 -42.5487 288.746 +89.0104 -43.8068 297.284 +89.2514 -45.3759 307.932 +88.9904 -46.78 317.461 +88.2832 -48.032 325.957 +87.9585 -49.5821 336.476 +83.4872 -48.8152 331.272 +82.8731 -50.3228 341.503 +78.8228 -49.7729 337.772 +78.1347 -51.3801 348.678 +74.2037 -50.8928 345.371 +72.2709 -51.7853 351.428 +66.7641 -50.0721 339.802 +64.3474 -50.6138 343.478 +59.3703 -49.0859 333.109 +57.7502 -50.3097 341.414 +53.704 -49.4309 335.451 +51.615 -50.3481 341.674 +47.7781 -49.5601 336.327 +45.632 -50.5296 342.906 +41.8743 -49.7175 337.396 +39.44 -50.4641 342.462 +35.8533 -49.7295 337.477 +33.3735 -50.5278 342.894 +29.7985 -49.6534 336.96 +27.3116 -50.5905 343.32 +23.78 -49.5763 336.437 +21.1961 -50.5212 342.85 +17.7314 -49.3235 334.721 +15.1228 -50.4947 342.67 +11.7856 -49.2007 333.888 +9.10434 -50.6858 343.967 +5.90938 -49.3544 334.931 +3.03247 -50.6576 343.775 +2.07326e-14 -49.362 334.983 +-3.03509 -50.7013 344.071 +-5.91811 -49.4273 335.426 +-9.0834 -50.5692 343.175 +-11.8484 -49.463 335.668 +-15.3104 -51.121 346.92 +-17.9408 -49.9058 338.673 +-21.4647 -51.1615 347.195 +-23.9753 -49.9835 339.2 +-27.7274 -51.3608 348.547 +-30.1472 -50.2343 340.903 +-33.9006 -51.326 348.311 +-36.2191 -50.237 340.92 +-40.3569 -51.6374 350.424 +-42.2277 -50.1371 340.243 +-46.3629 -51.3389 348.399 +-48.5297 -50.3396 341.617 +-52.8419 -51.5448 349.796 +-54.7051 -50.3526 341.705 +-59.3016 -51.6613 350.586 +-61.0721 -50.4928 342.657 +-66.0786 -51.9756 352.719 +-67.4128 -50.5587 343.104 +-72.9687 -52.2852 354.82 +-74.2245 -50.9071 345.468 +-80.6021 -53.0026 359.689 +-82.0172 -51.79 351.46 +-89.503 -54.3488 368.824 +-89.9224 -52.5778 356.806 +-94.9691 -53.534 363.295 +-96.1254 -52.2988 354.912 +-102.566 -53.9164 365.89 +-103.336 -52.5367 356.527 +-108.778 -53.5354 363.305 +-109.522 -52.224 354.405 +-112.765 -52.1383 353.823 +-116.469 -52.2562 354.624 +-123.812 -53.9448 366.083 +-102.847 -43.5437 295.498 +-100.81 -41.5011 281.637 +-100.93 -40.4259 274.34 +-100.089 -39.0261 264.841 +-99.9847 -37.9718 257.686 +-100.055 -37.0294 251.29 +-99.945 -36.0627 244.73 +-100.11 -35.2338 239.105 +-99.7927 -34.273 232.585 +-99.7271 -33.4363 226.907 +-99.5285 -32.589 221.157 +-100.356 -32.1029 217.858 +-102.189 -31.9475 216.804 +-104.485 -31.9347 216.717 +-107.226 -32.0496 217.496 +-109.14 -31.912 216.562 +-111.409 -31.8758 216.317 +-114.144 -31.9656 216.926 +-116.476 -31.935 216.719 +-118.717 -31.8754 216.314 +-121.59 -31.9781 217.012 +-123.943 -31.9364 216.729 +-111.3 -28.1035 190.717 +-110.136 -27.2576 184.976 +-111.042 -26.9414 182.831 +-112.442 -26.7494 181.528 +-113.88 -26.5683 180.299 +-115.519 -26.4346 179.392 +-116.771 -26.2133 177.89 +-118.942 -26.1974 177.782 +-120.45 -26.0331 176.667 +-123.193 -26.1311 177.332 +-129.112 -26.881 182.421 +-166.313 -33.9911 230.672 +-167.225 -33.554 227.706 +-167.918 -33.0823 224.505 +-167.425 -32.39 219.806 +-166.618 -31.6554 214.821 +-169.368 -31.603 214.466 +-171.565 -31.4434 213.383 +-175.266 -31.5525 214.123 +-178.229 -31.5195 213.899 +-342.991 -59.5902 404.394 +-363.951 -62.1226 421.579 +-361.095 -60.5569 410.954 +-378.886 -62.4318 423.678 +-162.331 -26.2827 178.361 +-163.425 -25.9999 176.442 +-390.512 -61.0498 414.299 +-410.397 -63.0463 427.848 +-406.236 -61.3264 416.176 +-426.784 -63.3131 429.658 +-424.264 -61.8503 419.731 +-448.706 -64.2817 436.231 +-445.703 -62.7463 425.812 +-472.074 -65.3078 443.195 +-468.14 -63.641 431.883 +-492.206 -65.7514 446.206 +-488.543 -64.1277 435.187 +-510.713 -65.8706 447.014 +-509.127 -64.52 437.849 +-537.987 -66.9848 454.575 +-519.838 -63.5898 431.536 +-385.812 -46.3645 314.641 +-385.698 -45.5326 308.995 +-384.887 -44.6318 302.882 +-385.022 -43.8532 297.598 +-384.697 -43.0333 292.034 +-140.879 -15.4763 105.026 +-142.685 -15.3919 104.453 +-142.549 -15.0984 102.462 +-142.145 -14.781 100.308 +-141.549 -14.4491 98.0551 +-141.502 -14.1776 96.213 +-144.584 -14.2172 96.4813 +-147.931 -14.2741 96.8676 +-671.524 -63.5746 431.433 +-381.466 -35.4282 240.425 +-379.671 -34.5862 234.71 +-380.022 -33.9496 230.39 +-381.097 -33.3822 226.54 +-379.978 -32.6296 221.433 +-381.138 -32.0795 217.699 +-380.345 -31.3708 212.89 +-380.722 -30.7657 208.783 +-381.055 -30.1618 204.686 +-379.138 -29.3885 199.437 +-382.39 -29.0195 196.933 +-732.853 -54.4362 369.418 +-738.052 -53.6449 364.048 +-745.46 -53.0044 359.701 +-405.622 -28.2048 191.405 +-404.666 -27.509 186.683 +-404.296 -26.8602 182.28 +-402.965 -26.1551 177.495 +-403.69 -25.5891 173.654 +-403.549 -24.9721 169.467 +-404.936 -24.4521 165.938 +-404.438 -23.8213 161.657 +-405.011 -23.2579 157.834 +-404.894 -22.6581 153.764 +-403.799 -22.0094 149.361 +-403.88 -21.43 145.43 +-403.074 -20.8084 141.211 +-404.682 -20.3138 137.854 +-404.176 -19.7149 133.79 +-404.199 -19.1459 129.929 +-396.365 -18.2189 123.638 +-382.809 -17.0618 115.786 +-378.063 -16.3258 110.791 +-378.064 -15.804 107.25 +-379.767 -15.3537 104.194 +-379.319 -14.8171 100.552 +-378.836 -14.2829 96.927 +-379.289 -13.7863 93.557 +-379.613 -13.2862 90.1635 +-379.907 -12.7864 86.7714 +-379.389 -12.2615 83.2098 +-379.717 -11.7663 79.849 +-378.643 -11.2305 76.2128 +-378.81 -10.7344 72.8466 +-378.553 -10.2282 69.4111 +-380.53 -9.78168 66.3809 +-379.72 -9.26351 62.8644 +-379.47 -8.76184 59.46 +-379.584 -8.27014 56.1232 +-380.065 -7.78692 52.844 +-375.658 -7.20988 48.928 +-378.259 -6.77078 45.9482 +-378.153 -6.28106 42.6248 +-379.112 -5.8089 39.4206 +-3261.22 -45.7785 310.664 +-3263.83 -41.6279 282.497 +-3266.2 -37.4743 254.31 +-3268.32 -33.3176 226.101 +-3270.19 -29.1584 197.876 +-3271.81 -24.997 169.636 +-3273.18 -20.8338 141.383 +-3274.3 -16.6689 113.119 +-3275.18 -12.5028 84.8473 +-143.378 -0.364847 2.47594 +-144.694 -0.184084 1.24924 +95.7 0 0 +95.6964 -0.114289 0.827272 +96.4853 -0.23048 1.66831 +95.3673 -0.341757 2.47378 +95.6417 -0.457068 3.30846 +95.509 -0.570672 4.13078 +95.6687 -0.686144 4.96661 +96.32 -0.806217 5.83575 +96.3647 -0.922171 6.67508 +96.3022 -1.03722 7.50784 +96.2324 -1.15219 8.34003 +96.0557 -1.26576 9.1621 +96.1703 -1.38328 10.0128 +96.0784 -1.49809 10.8438 +95.9792 -1.61277 11.6739 +95.8727 -1.72733 12.5031 +95.7589 -1.84175 13.3314 +96.3301 -1.9702 14.2612 +95.4107 -2.06805 14.9694 +95.867 -2.19545 15.8917 +95.7233 -2.30986 16.7198 +95.4741 -2.4216 17.5286 +95.4142 -2.53813 18.3721 +95.1507 -2.64925 19.1765 +95.0759 -2.76563 20.0189 +95.7746 -2.90573 21.0329 +95.5857 -3.02 21.8601 +95.3895 -3.13404 22.6855 +95.186 -3.24783 23.5092 +95.7498 -3.3888 24.5296 +95.7232 -3.51011 25.4077 +96.1703 -3.64989 26.4195 +95.9339 -3.76459 27.2498 +95.5943 -3.87513 28.0499 +95.4392 -3.99315 28.9042 +95.9439 -4.1399 29.9664 +95.8665 -4.26278 30.8558 +96.2549 -4.4075 31.9034 +96.1592 -4.5312 32.7988 +95.6781 -4.63672 33.5626 +96.2245 -4.79294 34.6934 +95.6342 -4.89329 35.4198 +96.4389 -5.06616 36.6711 +96.8565 -5.22127 37.7938 +95.7781 -5.29573 38.3328 +96.1759 -5.4518 39.4625 +95.9166 -5.5718 40.3311 +95.7411 -5.69705 41.2377 +96.2877 -5.86683 42.4667 +95.9099 -5.9816 43.2975 +96.4311 -6.15375 44.5435 +95.8546 -6.25689 45.2901 +96.3507 -6.43112 46.5513 +95.8475 -6.53983 47.3382 +96.2287 -6.70997 48.5697 +96.5068 -6.87518 49.7655 +96.153 -6.9966 50.6445 +95.4395 -7.09157 51.3319 +95.7709 -7.265 52.5872 +95.391 -7.38582 53.4618 +95.6092 -7.55421 54.6807 +95.8132 -7.72367 55.9073 +95.317 -7.83779 56.7334 +95.4957 -8.00853 57.9692 +95.7446 -8.18754 59.265 +94.9659 -8.27951 59.9307 +95.273 -8.46714 61.2889 +95.3965 -8.64103 62.5475 +95.588 -8.82349 63.8683 +95.0217 -8.93731 64.6922 +95.1855 -9.1211 66.0225 +95.9028 -9.36158 67.7632 +95.464 -9.49185 68.7061 +95.4178 -9.66247 69.9412 +95.4369 -9.84194 71.2403 +95.4404 -10.0222 72.545 +95.5069 -10.2116 73.9162 +95.3217 -10.3764 75.1089 +95.5112 -10.5846 76.6158 +95.3728 -10.7592 77.8796 +94.9129 -10.899 78.8921 +94.5945 -11.0564 80.0312 +95.3953 -11.3485 82.1457 +95.1923 -11.5255 83.4266 +95.2712 -11.7395 84.9754 +95.1088 -11.9268 86.3311 +95.076 -12.1332 87.8257 +94.879 -12.3217 89.1897 +94.809 -12.5296 90.6946 +94.4344 -12.6999 91.9273 +94.4695 -12.9283 93.5807 +94.1321 -13.1089 94.8883 +94.6819 -13.4177 97.1235 +94.3046 -13.5998 98.4413 +94.7296 -13.9021 100.629 +94.3124 -14.0853 101.956 +94.8158 -14.411 104.313 +94.3571 -14.5954 105.648 +94.6693 -14.9038 107.88 +93.9751 -15.0579 108.996 +93.7184 -15.2848 110.638 +93.8215 -15.5758 112.744 +93.7687 -15.8467 114.706 +93.813 -16.1401 116.829 +93.6421 -16.4025 118.728 +93.3231 -16.644 120.477 +93.8831 -17.0499 123.415 +92.9113 -17.1834 124.381 +96.6319 -18.2015 131.751 +115.328 -22.1266 160.162 +115.633 -22.5998 163.587 +115.434 -22.9852 166.377 +115.697 -23.4739 169.914 +115.52 -23.885 172.89 +115.191 -24.2746 175.71 +115.304 -24.769 179.289 +115.204 -25.2308 182.631 +115.368 -25.7641 186.492 +115.111 -26.2176 189.775 +115.008 -26.7196 193.408 +115.45 -27.3655 198.084 +115.572 -27.9549 202.35 +113.445 -28.0082 202.735 +111.56 -28.1185 203.534 +108.589 -27.9486 202.305 +106.664 -28.0409 202.972 +104.145 -27.972 202.474 +102.313 -28.083 203.277 +99.4226 -27.8966 201.928 +97.5969 -28.002 202.691 +95.0891 -27.9066 202 +92.9328 -27.907 202.003 +91.231 -28.042 202.98 +91.3135 -28.7398 208.031 +91.2748 -29.4272 213.007 +91.3465 -30.1799 218.455 +91.1792 -30.8842 223.554 +91.0389 -31.6286 228.942 +90.9896 -32.4387 234.806 +90.7738 -33.2255 240.501 +90.6353 -34.0786 246.676 +90.1612 -34.8434 252.212 +90.1824 -35.8427 259.445 +89.6386 -36.6627 265.38 +89.584 -37.7315 273.117 +89.3096 -38.7637 280.589 +89.2318 -39.942 289.118 +89.0104 -41.1231 297.667 +88.7277 -42.346 306.519 +88.9904 -43.9142 317.87 +88.3349 -45.1159 326.568 +87.9585 -46.5446 336.91 +87.7935 -48.1882 348.807 +82.8731 -47.2399 341.943 +87.236 -51.7109 374.306 +78.1347 -48.2324 349.127 +86.5328 -55.713 403.275 +72.2709 -48.6128 351.881 +85.9213 -60.4921 437.868 +64.3474 -47.5131 343.921 +85.1744 -66.1059 478.503 +57.7502 -47.2276 341.854 +86.5083 -74.7472 541.053 +51.615 -47.2636 342.115 +85.0765 -82.8432 599.656 +45.632 -47.434 343.348 +81.7621 -91.1293 659.634 +39.44 -47.3725 342.903 +74.5811 -97.1086 702.915 +33.3735 -47.4323 343.336 +58.9086 -92.146 666.993 +27.3116 -47.4912 343.762 +228.543 -447.275 3237.57 +21.1961 -47.4262 343.291 +171.468 -447.752 3241.03 +15.1228 -47.4013 343.111 +23.8538 -93.4811 676.657 +9.10434 -47.5807 344.41 +11.8589 -92.9765 673.005 +3.03247 -47.5541 344.218 +4.22244e-14 -94.3728 683.112 +-3.03509 -47.5952 344.515 +-12.0265 -94.29 682.513 +-9.0834 -47.4712 343.617 +-24.29 -95.1907 689.032 +-15.3104 -47.9892 347.367 +-36.6352 -95.6648 692.464 +-21.4647 -48.0272 347.642 +-48.3203 -94.5662 684.512 +-27.7274 -48.2143 348.996 +-61.4535 -96.1269 695.808 +-33.9006 -48.1816 348.76 +-73.6717 -95.9246 694.344 +-40.3569 -48.4739 350.875 +-86.771 -96.712 700.044 +-46.3629 -48.1938 348.848 +-99.4113 -96.8017 700.693 +-52.8419 -48.387 350.246 +-114.557 -98.9825 716.479 +-59.3016 -48.4964 351.038 +-127.371 -98.8555 715.56 +-66.0786 -48.7914 353.174 +-144.099 -101.451 734.35 +-72.9687 -49.0821 355.278 +-104.787 -67.4659 488.348 +-80.6021 -49.7555 360.152 +-103.927 -61.605 445.924 +-89.503 -51.0192 369.299 +-103.397 -56.7529 410.802 +-94.9691 -50.2544 363.763 +-102.906 -52.5581 380.439 +-102.566 -50.6133 366.361 +-102.344 -48.8445 353.558 +-108.778 -50.2557 363.773 +-101.804 -45.5695 329.852 +-112.765 -48.9441 354.279 +-101.296 -42.6643 308.823 +-123.812 -50.64 366.555 +-100.991 -40.1386 290.541 +-100.81 -38.9586 282 +-100.657 -37.8466 273.95 +-100.089 -36.6353 265.182 +-100.415 -35.7989 259.128 +-100.055 -34.7608 251.614 +-100.02 -33.8787 245.229 +-100.11 -33.0752 239.413 +-99.8318 -32.186 232.976 +-99.7271 -31.3879 227.199 +-100.017 -30.7425 222.527 +-100.356 -30.1362 218.139 +-101.893 -29.9036 216.455 +-104.485 -29.9783 216.996 +-106.48 -29.877 216.263 +-109.14 -29.9569 216.841 +-111.091 -29.8376 215.978 +-114.144 -30.0073 217.206 +-115.584 -29.7491 215.337 +-118.717 -29.9226 216.593 +-120.766 -29.8156 215.818 +-123.943 -29.9799 217.008 +-115.4 -27.3538 197.998 +-110.136 -25.5877 185.215 +-110.939 -25.2674 182.897 +-112.442 -25.1106 181.762 +-113.827 -24.929 180.447 +-115.519 -24.8152 179.623 +-116.553 -24.5616 177.787 +-118.942 -24.5925 178.011 +-120.282 -24.4042 176.648 +-123.193 -24.5302 177.561 +-126.932 -24.8082 179.572 +-166.313 -31.9087 230.969 +-166.578 -31.3766 227.118 +-167.918 -31.0556 224.794 +-166.703 -30.2746 219.141 +-166.618 -29.7161 215.098 +-168.999 -29.6022 214.274 +-171.565 -29.5171 213.658 +-174.322 -29.4599 213.244 +-178.229 -29.5885 214.175 +-530.171 -86.4673 625.888 +-363.951 -58.3168 422.123 +-534.36 -84.1242 608.928 +-378.886 -58.6071 424.224 +-162.733 -24.7336 179.033 +-163.425 -24.4071 176.669 +-170.568 -25.0318 181.191 +-410.397 -59.1839 428.399 +-547.669 -77.6122 561.791 +-426.784 -59.4344 430.212 +-554.513 -75.886 549.296 +-448.706 -60.3436 436.793 +-561.876 -74.2554 537.493 +-472.074 -61.3069 443.766 +-573.674 -73.2101 529.927 +-492.206 -61.7233 446.781 +-385.544 -47.5073 343.879 +-510.713 -61.8351 447.59 +-383.996 -45.6815 330.662 +-537.987 -62.8811 455.161 +-385.474 -44.2648 320.408 +-385.812 -43.5241 315.047 +-384.998 -42.6655 308.832 +-384.887 -41.8975 303.273 +-384.786 -41.1413 297.799 +-384.697 -40.3969 292.411 +-141.039 -14.5447 105.281 +-142.685 -14.4489 104.588 +-142.306 -14.1492 102.418 +-142.145 -13.8755 100.437 +-141.304 -13.5404 98.011 +-141.502 -13.3091 96.337 +-144.501 -13.3386 96.5503 +-147.931 -13.3996 96.9924 +-653.492 -58.0775 420.39 +-381.466 -33.2578 240.735 +-378.569 -32.3731 234.33 +-380.022 -31.8697 230.687 +-380.925 -31.323 226.73 +-379.978 -30.6307 221.718 +-381.398 -30.1347 218.128 +-380.345 -29.4489 213.164 +-380.197 -28.8411 208.764 +-381.055 -28.314 204.949 +-380.374 -27.678 200.345 +-382.39 -27.2417 197.187 +-714.944 -49.8526 360.855 +-738.052 -50.3585 364.517 +-735.843 -49.1152 355.517 +-405.622 -26.4769 191.652 +-405.663 -25.8874 187.384 +-404.296 -25.2146 182.515 +-403.422 -24.5806 177.925 +-403.69 -24.0214 173.878 +-405.39 -23.5491 170.459 +-404.936 -22.9541 166.152 +-405.087 -22.3979 162.126 +-405.011 -21.833 158.037 +-405.081 -21.2799 154.033 +-403.799 -20.661 149.554 +-404.914 -20.1686 145.989 +-403.074 -19.5336 141.393 +-404.871 -19.0782 138.096 +-404.176 -18.5071 133.963 +-405.245 -18.0195 130.433 +-396.365 -17.1027 123.797 +-383 -16.0246 115.993 +-378.063 -15.3256 110.933 +-378.737 -14.8622 107.579 +-379.767 -14.4131 104.328 +-379.899 -13.9307 100.836 +-378.836 -13.4079 97.0519 +-380.356 -12.9781 93.9412 +-379.613 -12.4723 90.2796 +-378.835 -11.9692 86.6381 +-379.389 -11.5104 83.3171 +-378.934 -11.0227 79.7872 +-378.643 -10.5425 76.311 +-379.399 -10.0925 73.0538 +-378.553 -9.6016 69.5006 +-380.234 -9.17529 66.4148 +-379.72 -8.696 62.9455 +-378.778 -8.21008 59.4282 +-379.584 -7.76349 56.1956 +-377.985 -7.26988 52.6226 +-375.658 -6.76819 48.9911 +-379.153 -6.371 46.1161 +-378.153 -5.89626 42.6797 +-379.112 -5.45303 39.4714 +-3261.22 -42.974 311.065 +-378.255 -4.52883 32.7816 +-3266.2 -35.1785 254.638 +-3268.32 -31.2765 226.393 +-3270.19 -27.3721 198.131 +-3271.81 -23.4657 169.855 +-3273.18 -19.5575 141.565 +-3274.3 -15.6477 113.265 +-3275.18 -11.7369 84.9566 +-3275.8 -7.82508 56.6413 +-144.694 -0.172807 1.25085 +95.7 0 0 +95.6964 -0.106821 0.828269 +95.6854 -0.213634 1.65648 +95.7672 -0.320765 2.48715 +96.5412 -0.43122 3.3436 +96.608 -0.53952 4.18334 +96.4676 -0.646665 5.01412 +95.6213 -0.748072 5.80041 +96.3647 -0.861915 6.68313 +96.3022 -0.969444 7.51689 +96.332 -1.07802 8.35873 +96.2548 -1.1855 9.19215 +96.1703 -1.2929 10.0249 +95.979 -1.39874 10.8456 +95.9792 -1.50739 11.688 +95.8727 -1.61446 12.5182 +95.7589 -1.7214 13.3475 +96.429 -1.84335 14.293 +95.3119 -1.93091 14.9719 +96.0642 -2.05622 15.9436 +95.9203 -2.16337 16.7744 +95.5724 -2.2657 17.5678 +95.316 -2.36985 18.3754 +95.2487 -2.4787 19.2194 +95.0759 -2.58492 20.043 +95.7746 -2.71586 21.0583 +95.5857 -2.82267 21.8864 +95.584 -2.93523 22.7592 +95.186 -3.03561 23.5376 +94.9753 -3.14175 24.3605 +95.7232 -3.28075 25.4383 +95.3994 -3.38405 26.2393 +95.9339 -3.51861 27.2826 +95.6902 -3.62555 28.1119 +96.3955 -3.76963 29.229 +96.1347 -3.87707 30.0621 +95.8665 -3.98424 30.893 +95.591 -4.09109 31.7216 +96.1592 -4.23512 32.8383 +95.7724 -4.33802 33.6362 +96.0366 -4.47101 34.6674 +95.7279 -4.57803 35.4972 +96.4389 -4.73513 36.7153 +96.9495 -4.88478 37.8757 +95.7781 -4.9497 38.379 +96.2682 -5.10046 39.5481 +96.1007 -5.21772 40.4572 +95.8328 -5.32989 41.327 +96.2877 -5.48348 42.5179 +95.9099 -5.59075 43.3497 +96.4311 -5.75165 44.5972 +96.0351 -5.85907 45.4301 +96.3507 -6.0109 46.6074 +95.937 -6.11821 47.4395 +96.3178 -6.27733 48.6733 +95.8859 -6.3846 49.505 +96.153 -6.53943 50.7055 +95.7032 -6.6465 51.5358 +95.6834 -6.78408 52.6025 +95.3039 -6.89693 53.4775 +95.6958 -7.06699 54.7962 +95.8132 -7.21899 55.9747 +96.0885 -7.38495 57.2615 +95.4957 -7.48523 58.0391 +95.7446 -7.65255 59.3365 +95.8093 -7.80723 60.5358 +95.273 -7.91388 61.3628 +95.4799 -8.08346 62.6777 +95.588 -8.24694 63.9453 +95.7635 -8.41854 65.2758 +95.1855 -8.52511 66.1021 +95.3329 -8.69788 67.4417 +95.3831 -8.86411 68.7307 +95.4982 -9.0387 70.0844 +95.4369 -9.19885 71.3262 +95.4404 -9.36732 72.6324 +95.5857 -9.55223 74.0663 +94.9304 -9.65857 74.8907 +94.8118 -9.82051 76.1464 +95.5271 -10.0724 78.0997 +94.9129 -10.1869 78.9872 +95.4309 -10.4253 80.8362 +94.7161 -10.5315 81.6591 +95.417 -10.7978 83.7244 +95.3455 -10.981 85.1443 +94.5927 -11.087 85.9662 +95.1491 -11.3491 87.9992 +94.9515 -11.5254 89.3655 +94.809 -11.7109 90.8039 +94.6483 -11.8969 92.2467 +94.4695 -12.0835 93.6935 +94.9031 -12.3527 95.7808 +94.6819 -12.541 97.2406 +94.5111 -12.739 98.7758 +94.7296 -12.9937 100.751 +94.38 -13.1744 102.152 +94.1467 -13.3742 103.701 +94.4234 -13.6513 105.849 +94.1445 -13.8527 107.411 +94.105 -14.0934 109.278 +94.2969 -14.3743 111.456 +93.8215 -14.558 112.88 +93.9575 -14.8411 115.075 +94.062 -15.1255 117.281 +93.4574 -15.3005 118.637 +93.5666 -15.597 120.936 +93.7628 -15.9154 123.405 +92.6734 -16.0195 124.212 +96.5731 -17.0018 131.829 +115.56 -20.7225 160.678 +115.059 -21.0183 162.972 +115.15 -21.4306 166.169 +115.306 -21.8659 169.544 +115.244 -22.2709 172.685 +115.246 -22.6992 176.005 +115.412 -23.1721 179.672 +115.681 -23.6797 183.608 +115.368 -24.0806 186.717 +115.163 -24.5155 190.089 +115.11 -24.9957 193.812 +115.05 -25.4888 197.635 +115.424 -26.0949 202.335 +113.009 -26.0774 202.199 +111.226 -26.2025 203.169 +108.542 -26.111 202.46 +106.248 -26.1064 202.424 +104.1 -26.1329 202.63 +102.001 -26.168 202.902 +99.4226 -26.0738 202.172 +97.2525 -26.08 202.219 +94.7933 -26.0021 201.615 +92.6839 -26.0137 201.705 +90.9056 -26.1162 202.5 +91.3534 -26.8735 208.372 +91.2357 -27.4926 213.172 +91.4613 -28.2433 218.993 +91.1792 -28.8662 223.823 +91.1489 -29.5976 229.494 +90.9896 -30.3191 235.089 +90.8088 -31.0665 240.884 +90.6353 -31.8519 246.974 +90.2614 -32.6028 252.796 +90.0847 -33.4643 259.476 +89.7972 -34.3278 266.172 +89.6149 -35.2782 273.54 +89.0691 -36.1332 280.171 +89.1734 -37.3077 289.277 +88.9252 -38.3992 297.74 +88.645 -39.5422 306.603 +88.5628 -40.8475 316.724 +88.3608 -42.1803 327.058 +88.309 -43.6767 338.661 +87.7693 -45.027 349.131 +87.472 -46.6034 361.354 +87.2585 -48.3444 374.853 +86.9654 -50.1758 389.054 +86.5328 -52.0725 403.761 +86.3861 -54.3105 421.113 +85.845 -56.4891 438.006 +85.6871 -59.1358 458.528 +85.2092 -61.8116 479.276 +84.6034 -64.6671 501.417 +86.0702 -69.5093 538.962 +90.4889 -77.4461 600.503 +85.0765 -77.4301 600.379 +82.5709 -80.2232 622.036 +81.7621 -85.1747 660.429 +80.2498 -90.0921 698.557 +79.0131 -96.157 745.584 +72.2485 -95.9742 744.167 +67.4237 -98.5741 764.326 +56.8201 -92.3465 716.038 +53.859 -98.5182 763.892 +44.7608 -93.6082 725.821 +171.468 -418.495 3244.93 +31.2795 -91.6365 710.532 +27.4485 -100.539 779.565 +85.7635 -418.926 3248.28 +57.1793 -419.006 3248.89 +6.27089 -91.9122 712.671 +4.75576e-14 -99.3472 770.32 +-28.5907 -419.054 3249.27 +-57.1793 -419.006 3248.89 +-18.9652 -92.6386 718.303 +-27.5636 -100.961 782.835 +-32.0123 -93.7833 727.178 +-41.2355 -100.642 780.357 +-45.3835 -94.9104 735.918 +-55.1564 -100.892 782.295 +-58.3343 -94.8075 735.12 +-70.0296 -102.384 793.867 +-72.8428 -96.7636 750.287 +-85.4938 -104.044 806.737 +-85.5477 -96.0397 744.674 +-99.9572 -104.129 807.399 +-99.3043 -96.4809 748.095 +-116.432 -105.968 821.653 +-117.701 -100.735 781.084 +-130.889 -105.704 819.611 +-127.747 -97.6441 757.114 +-146.125 -106.001 821.909 +-143.784 -99.2306 769.416 +-151.521 -99.7066 773.107 +-153.513 -96.513 748.344 +-104.787 -63.0575 488.937 +-104.735 -60.4282 468.549 +-104.13 -57.6917 447.331 +-103.79 -55.2973 428.765 +-103.543 -53.1191 411.876 +-103.132 -51.0077 395.504 +-102.881 -49.1116 380.802 +-102.406 -47.2322 366.23 +-102.317 -45.6406 353.889 +-102.246 -44.1511 342.34 +-102.067 -42.702 331.104 +-101.759 -41.2812 320.087 +-101.574 -39.986 310.044 +-101.284 -38.7188 300.219 +-101.056 -37.54 291.078 +-100.743 -36.3888 282.152 +-100.691 -35.3856 274.374 +-100.755 -34.4691 267.267 +-100.379 -33.4478 259.348 +-100.128 -32.5133 252.102 +-100.469 -31.8074 246.628 +-100.187 -30.9377 239.885 +-100.183 -30.1888 234.078 +-99.8069 -29.3603 227.655 +-100.017 -28.7337 222.796 +-99.7752 -28.0041 217.139 +-101.893 -27.9496 216.716 +-104.184 -27.9387 216.632 +-106.48 -27.9248 216.524 +-108.738 -27.8965 216.305 +-111.137 -27.8993 216.326 +-113.452 -27.8764 216.149 +-115.819 -27.8616 216.034 +-118.192 -27.8437 215.895 +-120.766 -27.8674 216.078 +-123.106 -27.8317 215.802 +-117.3 -25.9873 201.501 +-110.491 -23.9929 186.036 +-110.991 -23.6274 183.203 +-112.442 -23.4698 181.981 +-113.668 -23.2675 180.412 +-115.358 -23.1613 179.589 +-116.553 -22.9567 178.002 +-118.335 -22.8683 177.316 +-120.226 -22.799 176.779 +-122.514 -22.8009 176.794 +-126.76 -23.1558 179.546 +-169.681 -30.4277 235.931 +-167.342 -29.461 228.435 +-168.275 -29.088 225.543 +-171.758 -29.1545 226.059 +-166.435 -27.7439 215.121 +-174.294 -28.5348 221.254 +-171.814 -27.6284 214.226 +-510.882 -80.6964 625.705 +-177.911 -27.6058 214.05 +-519.18 -79.1419 613.652 +-525.079 -78.6372 609.738 +-525.438 -77.3144 599.482 +-529.831 -76.6005 593.946 +-162.799 -23.1269 179.322 +-164.371 -22.9444 177.907 +-168.726 -23.1435 179.451 +-543.869 -73.3072 568.41 +-547.877 -72.5685 562.683 +-550.915 -71.7079 556.01 +-555.715 -71.0812 551.15 +-558.047 -70.1444 543.886 +-562.74 -69.5099 538.967 +-566.227 -68.7295 532.916 +-388.714 -46.3648 359.505 +-388.545 -45.5403 353.111 +-383.314 -44.1464 342.303 +-384.813 -43.5473 337.657 +-384.449 -42.7468 331.451 +-384.385 -41.9921 325.599 +-383.865 -41.1997 319.455 +-384.501 -40.5419 314.354 +-384.376 -39.8133 308.705 +-384.495 -39.1199 303.329 +-384.786 -38.453 298.158 +-384.697 -37.7573 292.763 +-141.758 -13.6635 105.945 +-142.765 -13.5125 104.773 +-142.306 -13.2247 102.542 +-142.796 -13.0282 101.018 +-141.304 -12.6556 98.1292 +-141.667 -12.4539 96.5654 +-145.33 -12.5385 97.2213 +-147.181 -12.4605 96.6167 +-149.787 -12.4421 96.4735 +-381.213 -31.0639 240.864 +-382.046 -30.5357 236.768 +-381.556 -29.9075 231.897 +-381.354 -29.3092 227.258 +-379.72 -28.6097 221.835 +-380.965 -28.1337 218.143 +-379.127 -27.4366 212.738 +-381.247 -27.031 209.593 +-381.758 -26.5128 205.575 +-381.433 -25.9416 201.146 +-381.769 -25.4203 197.105 +-714.587 -46.5718 361.109 +-740.469 -47.2221 366.151 +-734.045 -45.7939 355.077 +-400.748 -24.4495 189.577 +-403.669 -24.0769 186.688 +-405.297 -23.6254 183.187 +-404.883 -23.0577 178.785 +-404.607 -22.5028 174.483 +-405.022 -21.9904 170.51 +-404.844 -21.4494 166.315 +-404.623 -20.9104 162.135 +-406.034 -20.458 158.627 +-405.921 -19.9306 154.538 +-403.425 -19.2931 149.595 +-404.538 -18.8334 146.031 +-405.996 -18.3897 142.59 +-402.791 -17.74 137.553 +-405.598 -17.3587 134.596 +-404.294 -16.8026 130.284 +-405.044 -16.3353 126.661 +-383.478 -14.9962 116.278 +-378.254 -14.3315 111.124 +-379.41 -13.9158 107.9 +-378.803 -13.437 104.188 +-379.512 -13.0071 100.855 +-379.998 -12.5702 97.467 +-380.356 -12.1301 94.0544 +-379.808 -11.6633 90.4348 +-380.199 -11.2274 87.0549 +-380.072 -10.7776 83.5678 +-378.934 -10.3025 79.8834 +-379.231 -9.8689 76.5216 +-379.89 -9.44523 73.2365 +-378.258 -8.96722 69.5301 +-378.068 -8.52689 66.1159 +-379.03 -8.11301 62.9068 +-379.47 -7.68762 59.6084 +-378.397 -7.23352 56.0874 +-377.193 -6.7806 52.5756 +-378.831 -6.37937 49.4644 +-378.061 -5.93755 46.0387 +-378.75 -5.51969 42.7986 +-377.819 -5.07933 39.3842 +-378.35 -4.65987 36.1318 +-378.454 -4.23514 32.8385 +-378.23 -3.80753 29.5229 +-3268.32 -29.2328 226.666 +-3270.19 -25.5835 198.37 +-3271.81 -21.9324 170.06 +-3273.18 -18.2795 141.736 +-3274.3 -14.6253 113.402 +-3275.18 -10.97 85.059 +-3275.8 -7.31377 56.7096 +-143.595 -0.160287 1.24284 +95.7 0 0 +95.6964 -0.0993457 0.829199 +95.6854 -0.198685 1.65834 +96.5669 -0.300809 2.51073 +96.5412 -0.401044 3.34735 +96.5081 -0.501247 4.18371 +95.5688 -0.59581 4.97299 +96.5196 -0.702259 5.86147 +96.4644 -0.802429 6.69755 +96.3022 -0.901604 7.52533 +96.2324 -1.00154 8.35946 +96.2548 -1.10254 9.20247 +96.0708 -1.20117 10.0257 +96.0784 -1.30222 10.8691 +95.9792 -1.4019 11.7011 +95.9719 -1.50303 12.5452 +95.7589 -1.60094 13.3624 +96.429 -1.71436 14.3091 +96.2008 -1.81254 15.1285 +96.0642 -1.91233 15.9615 +95.7233 -2.00785 16.7587 +95.5724 -2.10715 17.5875 +95.316 -2.20402 18.396 +95.2487 -2.30525 19.241 +95.0759 -2.40403 20.0655 +94.896 -2.50264 20.8885 +95.7806 -2.63049 21.9557 +95.584 -2.72982 22.7848 +95.3801 -2.82894 23.612 +96.1371 -2.95763 24.6862 +95.7232 -3.05117 25.4669 +95.4958 -3.15041 26.2952 +96.03 -3.27567 27.3407 +95.7861 -3.37522 28.1716 +95.4392 -3.47106 28.9715 +96.1347 -3.60576 30.0959 +95.8665 -3.70543 30.9277 +95.591 -3.80481 31.7572 +96.1592 -3.93875 32.8752 +95.5838 -4.02651 33.6077 +96.2245 -4.16627 34.7742 +95.7279 -4.25767 35.5371 +96.4389 -4.40377 36.7565 +96.1121 -4.50372 37.5908 +96.6126 -4.64343 38.7568 +96.2682 -4.74354 39.5925 +95.9166 -4.8433 40.4251 +96.6581 -4.99961 41.7298 +96.2877 -5.09975 42.5656 +95.9099 -5.19952 43.3983 +95.6155 -5.30391 44.2696 +96.0351 -5.44906 45.4811 +96.3507 -5.59027 46.6597 +95.937 -5.69007 47.4928 +96.2287 -5.83266 48.6828 +95.8859 -5.93781 49.5606 +96.2413 -6.08739 50.809 +95.7032 -6.18139 51.5936 +95.7709 -6.31512 52.7097 +95.478 -6.42601 53.6353 +95.6958 -6.57246 54.8577 +95.8993 -6.71985 56.0879 +96.1742 -6.87429 57.377 +95.4957 -6.96143 58.1043 +95.8294 -7.12334 59.4557 +95.8936 -7.2673 60.6572 +95.273 -7.36008 61.4317 +95.4799 -7.5178 62.7481 +95.6709 -7.6765 64.0727 +95.0217 -7.76878 64.8429 +95.1036 -7.92171 66.1193 +95.2515 -8.0823 67.4598 +95.464 -8.25081 68.8662 +95.4982 -8.40619 70.1631 +94.8779 -8.50501 70.9879 +95.5991 -8.7263 72.8349 +94.8765 -8.81787 73.5993 +95.4782 -9.03452 75.4075 +94.8118 -9.13329 76.2319 +95.5271 -9.36757 78.1873 +95.4491 -9.52754 79.5226 +94.7466 -9.62627 80.3466 +95.3953 -9.86474 82.3371 +95.417 -10.0422 83.8184 +95.3455 -10.2125 85.2399 +94.6664 -10.3192 86.1298 +95.1491 -10.555 88.098 +94.9515 -10.7188 89.4658 +94.809 -10.8914 90.9059 +94.6483 -11.0644 92.3503 +94.4695 -11.238 93.7987 +94.7629 -11.4713 95.7468 +94.6819 -11.6634 97.3498 +94.5111 -11.8475 98.8867 +94.7296 -12.0844 100.864 +94.38 -12.2525 102.267 +94.1467 -12.4383 103.818 +94.4234 -12.696 105.968 +94.0133 -12.8654 107.382 +94.105 -13.1072 109.401 +94.2969 -13.3684 111.581 +93.6307 -13.5117 112.776 +94.0205 -13.8118 115.282 +93.8752 -14.0391 117.179 +93.4574 -14.2298 118.771 +93.4449 -14.4868 120.915 +93.823 -14.8112 123.623 +92.7329 -14.908 124.431 +97.1609 -15.9084 132.781 +115.618 -19.282 160.939 +115.633 -19.6449 163.968 +115.207 -19.9407 166.437 +115.753 -20.4146 170.392 +115.244 -20.7125 172.879 +115.3 -21.1207 176.286 +115.412 -21.5505 179.874 +115.204 -21.9319 183.057 +115.472 -22.4157 187.095 +114.699 -22.7081 189.536 +115.262 -23.2773 194.287 +114.95 -23.6845 197.685 +115.473 -24.2792 202.649 +113.058 -24.2629 202.513 +110.749 -24.2643 202.525 +108.964 -24.3784 203.477 +106.295 -24.2901 202.74 +104.145 -24.3148 202.946 +101.555 -24.2303 202.241 +99.4226 -24.2492 202.399 +97.2525 -24.2549 202.446 +95.1736 -24.2796 202.652 +92.6839 -24.1933 201.932 +91.231 -24.3756 203.453 +91.3534 -24.9929 208.606 +91.3139 -25.5906 213.594 +91.0787 -26.157 218.322 +91.1792 -26.8462 224.075 +91.1489 -27.5264 229.752 +90.9896 -28.1975 235.353 +90.8438 -28.9037 241.248 +90.2933 -29.5111 246.317 +90.4283 -30.3775 253.549 +90.0847 -31.1225 259.767 +89.7655 -31.9143 266.376 +89.6458 -32.8208 273.942 +89.0691 -33.6047 280.485 +89.0564 -34.6514 289.222 +88.8684 -35.6893 297.885 +88.645 -36.7751 306.947 +88.5628 -37.989 317.079 +88.2832 -39.1941 327.137 +88.1588 -40.5512 338.464 +87.7451 -41.8646 349.427 +87.4486 -43.3306 361.664 +87.146 -44.9034 374.791 +87.0304 -46.6994 389.781 +86.5121 -48.417 404.117 +86.2266 -50.4166 420.808 +85.845 -52.5361 438.498 +85.3591 -54.7872 457.287 +85.0529 -57.3807 478.934 +84.6529 -60.1771 502.274 +86.3518 -64.8567 541.333 +90.4889 -72.0265 601.177 +85.0765 -72.0117 601.053 +82.4926 -74.5386 622.144 +81.689 -79.1436 660.58 +80.9969 -84.5677 705.853 +79.6298 -90.1262 752.247 +78.1526 -96.5522 805.883 +76.7406 -104.344 870.921 +64.7915 -97.9331 817.408 +228.571 -388.842 3245.51 +200.013 -389.017 3246.97 +171.489 -389.257 3248.97 +142.91 -389.373 3249.94 +114.341 -389.506 3251.05 +85.7635 -389.611 3251.92 +57.1793 -389.684 3252.54 +28.5907 -389.73 3252.92 +5.51991e-14 -107.241 895.099 +-28.5907 -389.73 3252.92 +-57.1793 -389.684 3252.54 +-22.2452 -101.056 843.477 +-114.341 -389.506 3251.05 +-142.91 -389.373 3249.94 +-171.468 -389.21 3248.58 +-51.4822 -100.131 835.75 +-228.543 -388.795 3245.11 +-257.056 -388.542 3243.01 +-285.548 -388.26 3240.65 +-314.019 -387.95 3238.06 +-342.467 -387.609 3235.21 +-370.888 -387.239 3232.13 +-399.329 -386.886 3229.19 +-427.643 -386.409 3225.2 +-122.5 -103.688 865.445 +-127.589 -101.557 847.656 +-135.582 -101.832 849.951 +-145.456 -103.4 863.042 +-153.87 -103.808 866.442 +-152.859 -98.1115 818.898 +-152.819 -93.5234 780.602 +-155.328 -90.82 758.038 +-104.787 -58.6449 489.485 +-104.735 -56.1996 469.075 +-104.242 -53.7125 448.317 +-103.93 -51.497 429.825 +-103.615 -49.4365 412.627 +-103.006 -47.3807 395.468 +-102.906 -45.6863 381.325 +-102.406 -43.927 366.641 +-102.51 -42.5268 354.955 +-102.189 -41.0387 342.533 +-102.038 -39.7024 331.38 +-101.729 -38.381 320.351 +-101.574 -37.1879 310.392 +-101.315 -36.0206 300.65 +-101.024 -34.9017 291.311 +-100.776 -33.8536 282.562 +-100.725 -32.9205 274.774 +-100.474 -31.9678 266.823 +-100.379 -31.1072 259.639 +-100.128 -30.2381 252.385 +-100.357 -29.5485 246.629 +-100.148 -28.7617 240.062 +-100.183 -28.0762 234.341 +-100.166 -27.4039 228.729 +-100.586 -26.8751 224.316 +-99.9825 -26.0985 217.834 +-102.612 -26.1771 218.489 +-104.011 -25.9407 216.517 +-107.489 -26.2166 218.819 +-109.006 -26.0081 217.08 +-111.682 -26.0743 217.632 +-113.498 -25.9362 216.479 +-119.34 -26.6996 222.851 +-120.387 -26.3762 220.152 +-123.917 -26.5935 221.966 +-123.451 -25.9565 216.649 +-115.95 -23.8906 199.405 +-110.39 -22.2933 186.073 +-110.939 -21.9638 183.323 +-111.919 -21.7261 181.339 +-113.297 -21.5687 180.026 +-115.358 -21.5405 179.79 +-116.88 -21.41 178.701 +-118.28 -21.2581 177.433 +-120.226 -21.2035 176.977 +-122.061 -21.1269 176.338 +-126.244 -21.4476 179.015 +-487.384 -81.2828 678.435 +-491.095 -80.4081 671.134 +-494 -79.4171 662.863 +-498.002 -78.6162 656.178 +-501.254 -77.7093 648.608 +-505.212 -76.9236 642.05 +-508.034 -75.9773 634.152 +-511.952 -75.2065 627.719 +-517.004 -74.6079 622.723 +-531.842 -75.3989 629.324 +-521.961 -72.7001 606.798 +-526.75 -72.0836 601.653 +-530.03 -71.2669 594.836 +-162.13 -21.4201 178.785 +-164.776 -21.3914 178.545 +-166.612 -21.2543 177.401 +-544.695 -68.2809 569.913 +-548.641 -67.5845 564.101 +-552.106 -66.8341 557.838 +-555.574 -66.0903 551.629 +-559.117 -65.3609 545.542 +-562.955 -64.6706 539.78 +-566.662 -63.9691 533.925 +-580.183 -64.36 537.187 +-386.776 -42.1607 351.898 +-387.03 -41.455 346.009 +-387.734 -40.8073 340.602 +-384.675 -39.7789 332.019 +-385.146 -39.1308 326.609 +-383.712 -38.3013 319.686 +-385.581 -37.8107 315.591 +-385.076 -37.0946 309.614 +-383.948 -36.3306 303.237 +-384.786 -35.7621 298.492 +-383.586 -35.0138 292.246 +-140.879 -12.6286 105.406 +-142.042 -12.5031 104.359 +-141.982 -12.2713 102.424 +-143.691 -12.1925 101.766 +-141.304 -11.77 98.2393 +-142.162 -11.6229 97.0113 +-145.496 -11.6744 97.4415 +-146.681 -11.5492 96.3963 +-147.69 -11.4094 95.2299 +-379.273 -28.7432 239.908 +-378.229 -28.1151 234.666 +-382.324 -27.8706 232.624 +-380.754 -27.2153 227.155 +-383.339 -26.8613 224.201 +-382.09 -26.2423 219.034 +-380.868 -25.6338 213.955 +-379.497 -25.024 208.865 +-380.967 -24.6063 205.379 +-382.228 -24.1764 201.791 +-382.036 -23.6579 197.463 +-714.587 -43.3128 361.515 +-739.753 -43.8751 366.208 +-733.865 -42.5788 355.388 +-404.178 -22.9332 191.414 +-404.123 -22.4171 187.107 +-404.387 -21.9229 182.981 +-403.056 -21.3473 178.178 +-403.415 -20.8665 174.164 +-404.47 -20.4236 170.468 +-405.491 -19.9803 166.767 +-406.57 -19.5407 163.099 +-404.825 -18.9697 158.333 +-405.081 -18.4976 154.392 +-404.83 -18.0056 150.285 +-405.289 -17.5479 146.466 +-405.619 -17.0868 142.617 +-402.696 -16.4947 137.674 +-403.986 -16.0799 134.212 +-404.009 -15.6157 130.338 +-403.422 -15.1314 126.296 +-385.295 -14.013 116.961 +-377.391 -13.2981 110.994 +-380.371 -12.9748 108.296 +-380.538 -12.5539 104.783 +-380.382 -12.1246 101.199 +-379.514 -11.6757 97.4521 +-380.356 -11.2812 94.16 +-379.419 -10.836 90.4436 +-379.809 -10.431 87.0633 +-380.56 -10.0363 83.7691 +-379.423 -9.59387 80.0762 +-380.505 -9.20913 76.8649 +-379.399 -8.77292 73.224 +-379.635 -8.37005 69.8615 +-379.348 -7.95705 66.4143 +-379.917 -7.56294 63.1249 +-379.174 -7.14408 59.6288 +-379.288 -6.74315 56.2824 +-380.164 -6.35579 53.0492 +-380.219 -5.95468 49.7014 +-378.855 -5.53365 46.1872 +-379.246 -5.14016 42.9029 +-378.316 -4.7301 39.4803 +-378.649 -4.33719 36.2008 +-378.654 -3.94085 32.8927 +-379.327 -3.55135 29.6417 +-3268.32 -27.1871 226.92 +-3270.19 -23.7933 198.593 +-3271.81 -20.3976 170.25 +-3273.18 -17.0004 141.895 +-3274.3 -13.6018 113.529 +-3275.18 -10.2023 85.1545 +-3275.8 -6.80197 56.7733 +-143.595 -0.14907 1.24423 +95.7 0 0 +95.6964 -0.0918611 0.830061 +96.5853 -0.185443 1.67567 +95.6672 -0.275555 2.48993 +96.5412 -0.370829 3.35083 +95.6089 -0.459166 4.14905 +96.4676 -0.556103 5.02497 +95.6213 -0.643308 5.81296 +96.4644 -0.741974 6.70452 +96.4019 -0.834541 7.54095 +96.332 -0.927044 8.37682 +96.2548 -1.01948 9.21204 +96.0708 -1.11068 10.0361 +96.0784 -1.20411 10.8804 +95.9792 -1.29628 11.7133 +95.8727 -1.38836 12.5453 +95.7589 -1.48033 13.3763 +95.5389 -1.57057 14.1918 +95.3119 -1.66049 15.0043 +96.1628 -1.77007 15.9945 +95.7233 -1.85658 16.7762 +95.5724 -1.9484 17.6058 +95.4142 -2.04006 18.4341 +95.2487 -2.13157 19.261 +95.0759 -2.22291 20.0864 +95.9699 -2.34028 21.1469 +95.5857 -2.42736 21.9338 +95.584 -2.52416 22.8085 +95.186 -2.61049 23.5885 +94.9753 -2.70176 24.4133 +95.7232 -2.82129 25.4934 +95.4958 -2.91306 26.3226 +96.03 -3.02888 27.3691 +95.7861 -3.12093 28.2009 +96.3955 -3.24171 29.2923 +96.0393 -3.33081 30.0974 +95.8665 -3.42626 30.9599 +95.591 -3.51815 31.7902 +96.1592 -3.64201 32.9094 +95.8666 -3.73418 33.7422 +96.2245 -3.85239 34.8104 +95.7279 -3.9369 35.574 +96.4389 -4.072 36.7948 +96.1121 -4.16441 37.6299 +96.6126 -4.29359 38.7971 +96.2682 -4.38617 39.6336 +95.9166 -4.47841 40.4671 +95.7411 -4.57908 41.3768 +96.2877 -4.71554 42.6099 +95.9099 -4.80779 43.4435 +95.6155 -4.90432 44.3157 +95.9448 -5.03379 45.4856 +96.3507 -5.1691 46.7082 +95.937 -5.26139 47.5422 +96.3178 -5.39822 48.7786 +96.5955 -5.5311 49.9793 +95.9764 -5.61329 50.7219 +95.5274 -5.7052 51.5525 +95.9458 -5.85 52.8609 +95.3039 -5.93104 53.5932 +95.6958 -6.07729 54.9147 +95.8132 -6.208 56.0958 +96.0885 -6.35072 57.3855 +95.581 -6.44271 58.2167 +95.7446 -6.58085 59.4649 +95.1346 -6.66659 60.2396 +95.273 -6.80558 61.4956 +95.4799 -6.95141 62.8133 +95.588 -7.092 64.0837 +95.1042 -7.18972 64.9667 +95.1855 -7.33121 66.2452 +95.3329 -7.47978 67.5877 +95.3831 -7.62273 68.8794 +95.4178 -7.76634 70.1771 +94.8779 -7.86425 71.0618 +95.5197 -8.06217 72.8501 +95.5857 -8.21449 74.2265 +94.8521 -8.29909 74.991 +94.8118 -8.44519 76.3112 +94.8327 -8.59885 77.6996 +94.8363 -8.75318 79.0942 +95.4309 -8.96532 81.0111 +95.3953 -9.12154 82.4227 +94.668 -9.21276 83.247 +94.6767 -9.37687 84.7299 +95.2562 -9.60117 86.7566 +95.076 -9.75225 88.1218 +94.9515 -9.91128 89.5588 +94.809 -10.0708 91.0004 +94.6483 -10.2308 92.4463 +94.4695 -10.3913 93.8963 +94.7629 -10.6071 95.8464 +94.6819 -10.7847 97.4511 +94.3734 -10.939 98.8453 +94.7296 -11.174 100.969 +94.4475 -11.3374 102.446 +94.1467 -11.5012 103.926 +94.4234 -11.7395 106.078 +94.0133 -11.8961 107.494 +93.9751 -12.103 109.363 +94.2969 -12.3613 111.697 +94.1396 -12.5616 113.507 +94.0205 -12.7712 115.401 +93.9375 -12.9901 117.379 +93.6421 -13.1837 119.129 +93.6275 -13.4215 121.278 +93.7628 -13.6865 123.672 +92.6734 -13.776 124.481 +97.7487 -14.7989 133.724 +115.618 -17.8293 161.106 +115.576 -18.1559 164.057 +115.15 -18.4293 166.528 +115.25 -18.7945 169.828 +115.686 -19.2254 173.721 +115.736 -19.6032 177.136 +115.466 -19.9363 180.145 +115.31 -20.2982 183.415 +115.472 -20.7269 187.29 +115.111 -21.0728 190.415 +115.262 -21.5236 194.489 +115 -21.9097 197.977 +115.572 -22.4692 203.032 +113.009 -22.4254 202.637 +110.796 -22.4459 202.823 +108.589 -22.4641 202.987 +106.295 -22.4601 202.951 +103.737 -22.3947 202.36 +101.599 -22.4147 202.54 +99.4226 -22.4223 202.609 +97.3386 -22.4475 202.837 +94.7933 -22.3606 202.051 +92.6839 -22.3706 202.142 +90.9463 -22.4688 203.029 +91.3534 -23.11 208.823 +91.3139 -23.6626 213.817 +91.0787 -24.1863 218.549 +91.1792 -24.8236 224.308 +91.1489 -25.4526 229.991 +90.9896 -26.0731 235.598 +90.8438 -26.7261 241.499 +90.5669 -27.3705 247.321 +90.1612 -28.0058 253.062 +90.0847 -28.7778 260.037 +89.8607 -29.5411 266.935 +89.7385 -30.3795 274.511 +89.0991 -31.0834 280.871 +88.9395 -31.9988 289.143 +88.9252 -33.0215 298.384 +88.645 -34.0045 307.266 +88.5094 -35.1057 317.217 +88.3091 -36.2519 327.574 +88.1838 -37.5067 338.913 +87.7451 -38.7105 349.791 +87.4253 -40.0555 361.943 +87.2135 -41.5525 375.471 +87.052 -43.1918 390.283 +86.5744 -44.8016 404.829 +86.1868 -46.5967 421.05 +85.8068 -48.5565 438.759 +85.4867 -50.7352 458.446 +85.0876 -53.0794 479.628 +84.7189 -55.6867 503.188 +86.5552 -60.1116 543.172 +90.3855 -66.5239 601.113 +84.9652 -66.4992 600.891 +82.2446 -68.7157 620.918 +81.6403 -73.1373 660.872 +80.7139 -77.9232 704.118 +79.6507 -83.358 753.228 +78.6606 -89.8584 811.965 +77.5773 -97.5351 881.332 +77.596 -108.451 979.968 +228.543 -359.503 3248.49 +200.038 -359.753 3250.74 +171.489 -359.931 3252.35 +142.928 -360.082 3253.72 +114.355 -360.205 3254.83 +85.7635 -360.258 3255.31 +57.1863 -360.37 3256.32 +28.5942 -360.412 3256.7 +2.00633e-13 -360.425 3256.82 +-28.5942 -360.412 3256.7 +-57.1863 -360.37 3256.32 +-85.7635 -360.258 3255.31 +-114.355 -360.205 3254.83 +-142.928 -360.082 3253.72 +-171.489 -359.931 3252.35 +-200.038 -359.753 3250.74 +-228.571 -359.547 3248.89 +-257.056 -359.27 3246.38 +-285.583 -359.053 3244.42 +-314.019 -358.722 3241.43 +-342.508 -358.45 3238.98 +-370.933 -358.108 3235.88 +-399.329 -357.739 3232.55 +-427.643 -357.298 3228.56 +-121.192 -94.8525 857.092 +-128.121 -94.2975 852.077 +-135.582 -94.16 850.835 +-153.692 -101.024 912.856 +-154.807 -96.5719 872.629 +-153.661 -91.1958 824.05 +-152.533 -86.3155 779.951 +-155.507 -84.0747 759.703 +-104.85 -54.259 490.287 +-104.54 -51.8688 468.69 +-104.332 -49.7087 449.171 +-103.72 -47.521 429.402 +-103.76 -45.776 413.635 +-103.382 -43.9708 397.322 +-103.139 -42.3399 382.585 +-102.62 -40.7024 367.789 +-102.537 -39.3335 355.419 +-102.189 -37.9468 342.89 +-101.833 -36.6377 331.06 +-101.759 -35.5 320.78 +-101.605 -34.3966 310.809 +-101.315 -33.3069 300.963 +-101.056 -32.2827 291.708 +-100.743 -31.2927 282.763 +-100.725 -30.4403 275.06 +-100.755 -29.6419 267.846 +-100.379 -28.7636 259.909 +-100.458 -28.052 253.479 +-100.956 -27.4854 248.36 +-100.11 -26.5847 240.22 +-101.59 -26.3255 237.879 +-101.003 -25.5511 230.881 +-103.392 -25.5437 230.814 +-102.305 -24.6927 223.125 +-108.233 -25.5307 230.697 +-105.346 -24.2941 219.523 +-114.02 -25.7145 232.357 +-109.943 -24.2555 219.174 +-121.397 -26.2072 236.809 +-116.176 -24.5481 221.818 +-138.823 -28.7187 259.504 +-129.93 -26.3223 237.85 +-147.673 -29.304 264.792 +-137.189 -26.672 241.01 +-113.2 -21.5667 194.878 +-110.39 -20.6137 186.267 +-110.888 -20.2996 183.428 +-111.762 -20.0611 181.273 +-113.297 -19.9438 180.213 +-114.982 -19.8528 179.391 +-117.152 -19.8431 179.303 +-118.335 -19.6657 177.7 +-120.338 -19.6243 177.326 +-122.57 -19.6168 177.259 +-126.244 -19.8318 179.201 +-488.023 -75.2576 680.031 +-491.565 -74.4214 672.476 +-494.833 -73.5577 664.671 +-498.182 -72.7196 657.098 +-501.193 -71.846 649.205 +-505.212 -71.1282 642.718 +-507.847 -70.2273 634.578 +-511.763 -69.5149 628.14 +-517.704 -69.0804 624.214 +-532.999 -69.8701 631.35 +-522.676 -67.315 608.262 +-526.356 -66.6031 601.829 +-529.964 -65.8894 595.38 +-161.327 -19.7083 178.085 +-163.087 -19.577 176.899 +-165.726 -19.5484 176.641 +-544.901 -63.1605 570.722 +-548.641 -62.4927 564.688 +-552.317 -61.8224 558.631 +-555.291 -61.0799 551.921 +-559.474 -60.4752 546.457 +-563.243 -59.8289 540.618 +-566.662 -59.1497 534.48 +-581.792 -59.6763 539.238 +-573.159 -57.7705 522.017 +-387.104 -38.3392 346.435 +-385.712 -37.5361 339.178 +-386.034 -36.9119 333.538 +-384.157 -36.0899 326.11 +-384.861 -35.5218 320.976 +-386.198 -35.0181 316.425 +-385.775 -34.3623 310.499 +-384.026 -33.6003 303.614 +-384.076 -33.0069 298.252 +-384.3 -32.4361 293.095 +-141.598 -11.7368 106.055 +-142.122 -11.5678 104.527 +-141.982 -11.3468 102.53 +-143.04 -11.2229 101.411 +-141.304 -10.8832 98.3415 +-141.75 -10.716 96.8307 +-144.833 -10.7456 97.0982 +-145.18 -10.5698 95.5091 +-147.941 -10.5678 95.4913 +-382.984 -26.8378 242.507 +-378.399 -26.0086 235.015 +-379.851 -25.6042 231.361 +-381.439 -25.2103 227.801 +-379.806 -24.6087 222.365 +-380.099 -24.1387 218.118 +-381.39 -23.735 214.471 +-380.809 -23.2187 209.805 +-380.967 -22.7525 205.593 +-380.815 -22.2724 201.254 +-382.213 -21.8856 197.76 +-714.944 -40.0697 362.072 +-739.932 -40.5794 366.677 +-734.944 -39.4288 356.281 +-403.365 -21.1627 191.228 +-405.845 -20.8166 188.1 +-403.204 -20.2119 182.636 +-406.071 -19.8867 179.697 +-401.856 -19.2199 173.672 +-403.273 -18.8291 170.14 +-404.29 -18.4202 166.446 +-404.901 -17.9944 162.598 +-404.825 -17.5406 158.497 +-404.614 -17.0843 154.375 +-404.268 -16.6259 150.233 +-404.444 -16.192 146.312 +-405.619 -15.7995 142.765 +-405.249 -15.3488 138.692 +-404.839 -14.8998 134.635 +-404.294 -14.4494 130.566 +-403.422 -13.9914 126.427 +-384.626 -12.9347 116.878 +-379.884 -12.3775 111.844 +-380.371 -11.9973 108.408 +-379.478 -11.5758 104.599 +-379.126 -11.1741 100.97 +-379.998 -10.8098 97.6779 +-379.774 -10.4153 94.1136 +-379.905 -10.0324 90.6537 +-380.394 -9.65997 87.288 +-380.56 -9.28019 83.8563 +-379.423 -8.87108 80.1595 +-379.623 -8.49557 76.7664 +-378.515 -8.09307 73.1294 +-379.635 -7.73946 69.9341 +-379.446 -7.35948 66.5006 +-378.635 -6.96956 62.9773 +-378.778 -6.59896 59.6286 +-379.288 -6.23513 56.3409 +-378.381 -5.84938 52.8553 +-378.038 -5.47447 49.4676 +-378.359 -5.11005 46.1747 +-378.849 -4.74792 42.9025 +-378.813 -4.37949 39.5733 +-378.649 -4.01043 36.2385 +-378.454 -3.64203 32.9096 +-378.928 -3.28034 29.6413 +-3268.32 -25.1389 227.156 +-3270.19 -22.0007 198.799 +-3271.81 -18.8608 170.428 +-3273.18 -15.7196 142.043 +-3274.3 -12.5771 113.647 +-3275.18 -9.43366 85.2431 +-3275.8 -6.28951 56.8323 +-144.994 -0.139184 1.25767 +95.8 0 0 +95.6964 -0.0843689 0.830856 +96.5853 -0.170318 1.67727 +96.5669 -0.255461 2.51575 +96.4412 -0.340232 3.35057 +95.6089 -0.421717 4.15302 +96.4676 -0.510747 5.02978 +96.5196 -0.59639 5.87319 +96.3647 -0.680755 6.70401 +96.4019 -0.766476 7.54817 +95.4355 -0.843511 8.3068 +96.2548 -0.936328 9.22086 +96.1703 -1.02115 10.0562 +95.979 -1.10475 10.8795 +95.88 -1.18933 11.7124 +95.8727 -1.27513 12.5573 +96.6502 -1.37225 13.5138 +95.5389 -1.44248 14.2054 +96.2996 -1.54087 15.1744 +96.0642 -1.62404 15.9934 +95.7233 -1.70516 16.7922 +95.5724 -1.78949 17.6227 +95.4142 -1.87367 18.4517 +95.2487 -1.95772 19.2795 +95.0759 -2.04162 20.1056 +95.0912 -2.12973 20.9733 +94.7088 -2.20893 21.7533 +95.3895 -2.31357 22.7838 +95.3801 -2.40247 23.6592 +94.9753 -2.48141 24.4366 +95.7232 -2.59119 25.5178 +95.4958 -2.67548 26.3478 +96.03 -2.78185 27.3953 +95.6902 -2.86352 28.1997 +95.4392 -2.94778 29.0294 +96.1347 -3.06218 30.156 +95.8665 -3.14682 30.9895 +95.591 -3.23122 31.8207 +96.0647 -3.34168 32.9085 +95.8666 -3.42962 33.7745 +96.0366 -3.53128 34.7757 +95.7279 -3.61581 35.6081 +96.4389 -3.73989 36.83 +96.1121 -3.82477 37.6659 +96.6126 -3.94341 38.8343 +96.2682 -4.02843 39.6716 +95.9166 -4.11315 40.5059 +96.6581 -4.2459 41.8132 +96.2877 -4.33094 42.6507 +96.7289 -4.45338 43.8564 +96.3405 -4.53848 44.6945 +96.0351 -4.62759 45.572 +96.3507 -4.74751 46.753 +95.937 -4.83227 47.5877 +96.2287 -4.95336 48.7802 +95.8859 -5.04267 49.6596 +96.153 -5.16496 50.8639 +95.7032 -5.24952 51.6968 +95.9458 -5.37288 52.9115 +95.3039 -5.44731 53.6445 +95.6958 -5.58163 54.9673 +95.8993 -5.7068 56.2 +95.2313 -5.78072 56.928 +95.581 -5.91725 58.2724 +95.7446 -6.04412 59.5218 +95.2189 -6.12829 60.3508 +95.273 -6.25052 61.5545 +95.4799 -6.38446 62.8735 +94.9248 -6.46839 63.7 +95.1042 -6.60333 65.0289 +95.1036 -6.72748 66.2515 +95.2515 -6.86386 67.5946 +95.3831 -7.00103 68.9454 +95.4982 -7.13892 70.3034 +94.8779 -7.22285 71.1298 +95.5197 -7.40462 72.9199 +95.5069 -7.53831 74.2364 +95.5565 -7.67881 75.6201 +94.8118 -7.75641 76.3843 +95.5271 -7.95537 78.3436 +94.9129 -8.04578 79.2339 +95.4309 -8.23412 81.0887 +95.3953 -8.37759 82.5016 +95.417 -8.52831 83.9859 +95.3455 -8.67295 85.4103 +95.1825 -8.81127 86.7725 +95.076 -8.95686 88.2062 +94.9515 -9.10292 89.6446 +94.8809 -9.25646 91.1566 +94.6483 -9.39641 92.5348 +94.328 -9.52949 93.8454 +94.9031 -9.7564 96.08 +94.6819 -9.9051 97.5444 +94.3734 -10.0468 98.94 +94.866 -10.2774 101.211 +94.38 -10.4054 102.471 +93.9459 -10.5408 103.804 +94.4234 -10.782 106.18 +94.0133 -10.9259 107.597 +94.0401 -11.1236 109.544 +93.7184 -11.2834 111.118 +93.8215 -11.4982 113.233 +94.0205 -11.7296 115.512 +93.9375 -11.9307 117.492 +93.6421 -12.1085 119.243 +93.4449 -12.3028 121.157 +93.7628 -12.5702 123.79 +92.6734 -12.6525 124.6 +97.7487 -13.5919 133.852 +115.676 -16.3834 161.342 +115.518 -16.6668 164.133 +115.604 -16.9928 167.343 +115.306 -17.27 170.073 +115.244 -17.59 173.224 +115.79 -18.0129 177.389 +115.466 -18.3103 180.318 +115.151 -18.617 183.338 +115.472 -19.0365 187.469 +115.214 -19.3714 190.767 +115.363 -19.7856 194.846 +115.55 -20.219 199.114 +115.129 -20.5575 202.448 +113.009 -20.5964 202.831 +110.796 -20.6153 203.017 +108.589 -20.6319 203.181 +106.295 -20.6283 203.145 +103.737 -20.5682 202.553 +101.599 -20.5866 202.734 +99.4226 -20.5936 202.803 +97.2525 -20.5984 202.851 +94.7933 -20.5369 202.245 +92.6839 -20.5461 202.336 +90.9463 -20.6363 203.224 +91.3933 -21.2345 209.115 +91.3139 -21.7327 214.021 +91.4231 -22.2977 219.586 +91.1792 -22.799 224.522 +91.1489 -23.3767 230.211 +91.0255 -23.956 235.916 +90.8088 -24.5369 241.636 +90.2933 -25.0622 246.81 +90.1612 -25.7217 253.304 +90.0522 -26.4211 260.192 +89.7972 -27.1127 267.003 +89.6458 -27.8729 274.489 +89.3998 -28.6446 282.089 +89.1441 -29.4566 290.085 +88.8968 -30.3187 298.576 +88.7277 -31.2602 307.847 +88.5628 -32.262 317.713 +88.2832 -33.2854 327.791 +88.284 -34.4868 339.623 +87.7451 -35.5533 350.126 +87.5654 -36.8475 362.87 +87.2135 -38.1635 375.83 +87.0087 -39.6494 390.463 +86.5328 -41.1278 405.022 +86.1868 -42.7963 421.454 +86.0358 -44.7153 440.352 +85.432 -46.5675 458.592 +85.0008 -48.7004 479.597 +84.6034 -51.0752 502.983 +86.4144 -55.1192 542.808 +90.3855 -61.0982 601.689 +84.9513 -61.0656 601.368 +82.3751 -63.2115 622.5 +81.4331 -67.0017 659.826 +80.7818 -71.6281 705.386 +79.5357 -76.4489 752.86 +78.5935 -82.4592 812.049 +77.2026 -89.1474 877.914 +79.0789 -101.509 999.649 +73.4815 -106.16 1045.45 +200.038 -330.411 3253.86 +171.489 -330.575 3255.47 +142.928 -330.714 3256.83 +114.355 -330.827 3257.95 +85.774 -330.916 3258.82 +57.1863 -330.978 3259.44 +28.5942 -331.017 3259.82 +2.00633e-13 -331.029 3259.94 +-28.5942 -331.017 3259.82 +-57.1863 -330.978 3259.44 +-85.7635 -330.875 3258.42 +-114.355 -330.827 3257.95 +-142.928 -330.714 3256.83 +-171.489 -330.575 3255.47 +-200.038 -330.411 3253.86 +-228.571 -330.223 3252 +-257.087 -330.008 3249.89 +-285.583 -329.769 3247.53 +-314.058 -329.504 3244.92 +-342.467 -329.175 3241.68 +-135.21 -119.888 1180.65 +-145.878 -120.026 1182 +-156.279 -119.923 1180.99 +-159.311 -114.518 1127.76 +-128.077 -86.5766 852.598 +-135.504 -86.4306 851.159 +-155.442 -93.8405 924.132 +-157.864 -90.4466 890.709 +-154.208 -84.0559 827.773 +-152.094 -79.0476 778.452 +-155.587 -77.2572 760.821 +-104.725 -49.7743 490.172 +-104.735 -47.7273 470.013 +-104.332 -45.6545 449.601 +-103.86 -43.7041 430.394 +-103.76 -42.0426 414.031 +-103.182 -40.3064 396.933 +-103.165 -38.8965 383.048 +-102.62 -37.3827 368.141 +-102.565 -36.1351 355.855 +-102.246 -34.8713 343.409 +-102.067 -33.7268 332.138 +-101.759 -32.6046 321.087 +-101.296 -31.4952 310.161 +-100.998 -30.4945 300.307 +-101.056 -29.6497 291.987 +-100.776 -28.75 283.127 +-101.204 -28.0905 276.632 +-100.72 -27.2148 268.009 +-102.314 -26.9269 265.173 +-101.228 -25.9615 255.666 +-103.579 -25.8994 255.054 +-102.368 -24.9671 245.874 +-109.483 -26.0569 256.605 +-104.193 -24.2084 238.402 +-115.473 -26.2015 258.029 +-111.677 -24.7565 243.799 +-123.362 -26.7263 263.198 +-116.625 -24.7016 243.259 +-125.593 -26.0144 256.187 +-126.185 -25.5681 251.792 +-168.521 -33.4132 329.05 +-144.343 -28.0122 275.861 +-145.02 -27.5539 271.348 +-145.486 -27.0698 266.58 +-147.915 -26.9581 265.481 +-153.685 -27.4422 270.248 +-112.6 -19.7028 194.031 +-110.491 -18.95 186.617 +-110.888 -18.644 183.604 +-112.18 -18.4938 182.125 +-113.403 -18.3342 180.554 +-115.09 -18.2506 179.73 +-117.043 -18.2077 179.308 +-118.335 -18.0618 177.87 +-120.45 -18.0405 177.661 +-122.174 -17.9586 176.855 +-126.416 -18.2392 179.617 +-488.72 -69.2183 681.655 +-492.211 -68.4415 674.005 +-495.19 -67.6071 665.787 +-498.905 -66.8856 658.682 +-502.289 -66.1306 651.247 +-505.397 -65.3509 643.568 +-508.408 -64.5708 635.886 +-511.575 -63.8218 628.51 +-517.577 -63.4307 624.659 +-533.578 -64.2411 632.64 +-522.481 -61.8018 608.617 +-526.356 -61.171 602.405 +-530.361 -60.5609 596.397 +-162.398 -18.221 179.438 +-164.371 -18.1219 178.462 +-168.999 -18.3087 180.302 +-544.901 -58.0092 571.268 +-548.294 -57.3595 564.87 +-552.106 -56.7586 558.953 +-555.927 -56.1625 553.083 +-559.117 -55.5075 546.632 +-562.596 -54.8861 540.512 +-566.662 -54.3255 534.992 +-580.037 -54.6437 538.126 +-572.864 -53.0315 522.248 +-386.287 -35.1379 346.035 +-385.712 -34.4747 339.503 +-383.845 -33.7092 331.965 +-386.21 -33.3236 328.167 +-384.937 -32.6312 321.348 +-384.809 -32.0464 315.589 +-385.387 -31.5279 310.483 +-384.417 -30.8913 304.215 +-384.313 -30.3336 298.722 +-385.49 -29.8829 294.284 +-141.279 -10.7552 105.916 +-142.765 -10.6724 105.101 +-141.982 -10.4213 102.628 +-142.959 -10.3016 101.449 +-141.304 -9.99561 98.4357 +-141.915 -9.8535 97.0362 +-144.916 -9.87488 97.2468 +-146.18 -9.77464 96.2596 +-146.6 -9.61788 94.7158 +-383.321 -24.6706 242.954 +-380.858 -24.0426 236.769 +-381.215 -23.6004 232.414 +-381.011 -23.1281 227.763 +-381.012 -22.6734 223.285 +-380.099 -22.1699 218.327 +-380.52 -21.7495 214.187 +-380.984 -21.3348 210.103 +-379.825 -20.8342 205.173 +-380.021 -20.4132 201.027 +-382.213 -20.1006 197.949 +-714.587 -36.7832 362.237 +-739.932 -37.2698 367.029 +-731.888 -36.0625 355.14 +-404.268 -19.4803 191.839 +-405.754 -19.1145 188.238 +-404.023 -18.6011 183.182 +-404.792 -18.2072 179.303 +-402.956 -17.7006 174.314 +-403.273 -17.2934 170.303 +-403.92 -16.9024 166.453 +-403.789 -16.4813 162.306 +-404.453 -16.0951 158.503 +-404.987 -15.7054 154.665 +-403.987 -15.2592 150.271 +-404.914 -14.8887 146.622 +-404.016 -14.4537 142.338 +-404.871 -14.0837 138.695 +-403.132 -13.6269 134.196 +-404.009 -13.2616 130.598 +-403.899 -12.8654 126.697 +-383.287 -11.8384 116.583 +-379.884 -11.368 111.951 +-381.236 -11.0439 108.759 +-381.309 -10.683 105.205 +-380.382 -10.2968 101.402 +-379.998 -9.92816 97.7714 +-380.938 -9.59521 94.4926 +-380.002 -9.21656 90.7637 +-380.686 -8.87893 87.4388 +-380.072 -8.51236 83.8288 +-378.934 -8.13706 80.1329 +-379.231 -7.79463 76.7607 +-379.988 -7.46193 73.4843 +-379.143 -7.09903 69.9105 +-380.234 -6.77328 66.7026 +-379.917 -6.4228 63.251 +-377.89 -6.04653 59.5456 +-380.079 -5.73855 56.5126 +-379.273 -5.38497 53.0306 +-378.831 -5.03853 49.6189 +-378.458 -4.69451 46.2311 +-379.644 -4.36983 43.0336 +-377.421 -4.00752 39.4657 +-378.649 -3.68334 36.2732 +-377.657 -3.33794 32.8717 +-379.526 -3.01756 29.7166 +-3268.32 -23.0886 227.374 +-378.493 -2.33869 23.0312 +-3271.81 -17.3226 170.591 +-3273.18 -14.4375 142.179 +-3274.3 -11.5513 113.756 +-3275.18 -8.66426 85.3247 +-3275.8 -5.77654 56.8868 +-144.794 -0.127655 1.25714 +95.7 0 0 +95.6964 -0.07687 0.831584 +95.6854 -0.153735 1.66311 +95.6672 -0.230586 2.4945 +96.4412 -0.309991 3.3535 +96.5081 -0.387846 4.19574 +95.5688 -0.461015 4.98729 +96.4198 -0.54282 5.87225 +96.4644 -0.620889 6.71681 +96.3022 -0.697627 7.54697 +96.4316 -0.776559 8.40086 +96.2548 -0.853104 9.22893 +96.1703 -0.930388 10.065 +95.979 -1.00656 10.889 +95.9792 -1.08474 11.7348 +95.8727 -1.16179 12.5683 +95.7589 -1.23875 13.4009 +96.429 -1.32651 14.3502 +95.3119 -1.38951 15.0318 +96.0642 -1.47969 16.0074 +95.6248 -1.552 16.7896 +95.4741 -1.62876 17.62 +95.4142 -1.70713 18.4679 +95.2487 -1.78371 19.2963 +95.0759 -1.86015 20.1232 +94.896 -1.93645 20.9486 +95.5857 -2.03123 21.974 +95.584 -2.11223 22.8503 +96.1563 -2.20675 23.8727 +95.9434 -2.2839 24.7074 +95.7232 -2.36088 25.5401 +95.4958 -2.43767 26.3709 +95.9339 -2.53205 27.3918 +95.6902 -2.609 28.2244 +95.5348 -2.68846 29.0839 +96.1347 -2.79 30.1824 +95.8665 -2.86712 31.0167 +96.4445 -2.9703 32.1329 +96.1592 -3.04766 32.9697 +95.8666 -3.12478 33.8041 +96.2245 -3.2237 34.8742 +95.9152 -3.30087 35.709 +96.4389 -3.40747 36.8622 +96.1121 -3.48481 37.6989 +96.6126 -3.59291 38.8683 +96.2682 -3.67037 39.7063 +96.1007 -3.75475 40.6191 +95.7411 -3.8318 41.4527 +96.2877 -3.94599 42.688 +95.9099 -4.02319 43.5231 +96.4311 -4.13898 44.7757 +95.9448 -4.21231 45.569 +96.3507 -4.32554 46.7939 +96.0265 -4.40687 47.6738 +95.5159 -4.47966 48.4612 +95.8859 -4.59446 49.7031 +96.153 -4.70588 50.9085 +95.7032 -4.78293 51.742 +95.7709 -4.8864 52.8613 +95.3039 -4.96314 53.6915 +95.6958 -5.08552 55.0155 +95.8132 -5.1949 56.1987 +95.317 -5.27165 57.0291 +95.581 -5.3913 58.3234 +95.6598 -5.50202 59.5211 +95.2189 -5.58359 60.4036 +95.273 -5.69495 61.6083 +95.4799 -5.81699 62.9285 +94.8419 -5.88831 63.7001 +95.7635 -6.05811 65.537 +95.1036 -6.12952 66.3095 +95.9028 -6.29655 68.1164 +95.464 -6.38416 69.0643 +95.4178 -6.49893 70.3058 +94.8779 -6.58086 71.1921 +95.4404 -6.74087 72.9231 +95.5069 -6.86828 74.3014 +95.4782 -6.99057 75.6244 +95.589 -7.12492 77.0778 +95.5271 -7.24827 78.4122 +94.9129 -7.33064 79.3033 +94.7466 -7.44844 80.5777 +94.7161 -7.57861 81.9859 +94.668 -7.7093 83.3996 +94.6767 -7.84663 84.8853 +95.2562 -8.03432 86.9158 +95.1491 -8.16702 88.3513 +94.9515 -8.29382 89.7231 +94.809 -8.42733 91.1673 +94.6483 -8.56123 92.6159 +94.4695 -8.6955 94.0685 +94.9031 -8.88922 96.1641 +94.6819 -9.0247 97.6298 +95.1306 -9.2273 99.8214 +94.1158 -9.28989 100.499 +94.4475 -9.48723 102.633 +94.0798 -9.61748 104.042 +94.4896 -9.83056 106.348 +94.0133 -9.95473 107.691 +94.105 -10.1419 109.715 +93.6542 -10.2735 111.139 +94.2668 -10.5259 113.87 +93.9575 -10.6799 115.535 +93.9375 -10.8702 117.595 +93.5805 -11.025 119.27 +93.4449 -11.2093 121.263 +93.7628 -11.453 123.899 +92.7924 -11.5427 124.87 +97.8075 -12.3912 134.049 +115.618 -14.9197 161.402 +115.576 -15.193 164.358 +115.66 -15.4901 167.573 +115.25 -15.7274 170.14 +115.686 -16.0879 174.04 +115.246 -16.3347 176.71 +115.466 -16.6828 180.476 +115.204 -16.9701 183.583 +114.95 -17.266 186.785 +115.214 -17.6496 190.934 +115.262 -18.0111 194.845 +115.05 -18.3421 198.426 +115.621 -18.8104 203.492 +113.445 -18.8381 203.792 +110.796 -18.7829 203.195 +108.589 -18.7981 203.359 +106.295 -18.7948 203.323 +104.1 -18.8057 203.441 +101.599 -18.7568 202.912 +99.4226 -18.7631 202.981 +97.2525 -18.7675 203.028 +94.7088 -18.6948 202.242 +92.6839 -18.7199 202.513 +91.3124 -18.8777 204.22 +91.3933 -19.3471 209.298 +91.3139 -19.801 214.209 +91.0404 -20.2308 218.858 +91.1792 -20.7726 224.719 +91.1489 -21.2989 230.413 +90.9896 -21.8181 236.03 +90.7738 -22.3473 241.754 +90.6353 -22.9211 247.962 +90.1612 -23.4355 253.526 +90.0522 -24.0727 260.42 +89.7655 -24.6941 267.142 +89.6149 -25.3867 274.635 +89.0991 -26.0108 281.386 +88.9687 -26.7856 289.769 +89.0104 -27.6592 299.218 +88.645 -28.4552 307.83 +88.5094 -29.3767 317.799 +88.3349 -30.3447 328.27 +88.0837 -31.3502 339.148 +87.8176 -32.42 350.722 +87.3553 -33.4918 362.316 +87.146 -34.7445 375.869 +86.9654 -36.1073 390.611 +86.5121 -37.4632 405.279 +86.1469 -38.9744 421.627 +85.6732 -40.5692 438.88 +85.268 -42.347 458.112 +85.0008 -44.3718 480.017 +84.6034 -46.5355 503.424 +86.2893 -50.1473 542.496 +90.4002 -55.6767 602.314 +84.9791 -55.6561 602.091 +82.2968 -57.5383 622.452 +81.4575 -61.0647 660.602 +80.6686 -65.17 705.013 +79.4521 -69.5806 752.727 +78.5648 -75.1024 812.462 +77.2026 -81.2237 878.683 +79.0632 -92.4681 1000.33 +73.4466 -96.6792 1045.88 +71.262 -107.244 1160.17 +70.3971 -123.641 1337.56 +142.928 -301.319 3259.68 +114.355 -301.422 3260.8 +85.774 -301.503 3261.67 +57.1863 -301.56 3262.29 +28.5942 -301.595 3262.67 +2.00633e-13 -301.606 3262.79 +-28.5942 -301.595 3262.67 +-57.1863 -301.56 3262.29 +-85.774 -301.503 3261.67 +-114.355 -301.422 3260.8 +-142.928 -301.319 3259.68 +-171.489 -301.193 3258.32 +-200.038 -301.043 3256.71 +-228.571 -300.871 3254.84 +-257.087 -300.676 3252.73 +-285.548 -300.421 3249.97 +-314.058 -300.217 3247.76 +-342.508 -299.954 3244.92 +-135.81 -109.717 1186.93 +-146.645 -109.933 1189.26 +-160.143 -111.964 1211.24 +-161.149 -105.542 1141.76 +-128.239 -78.9816 854.427 +-135.504 -78.7483 851.904 +-157.455 -86.6072 936.922 +-568.924 -296.988 3212.83 +-597.131 -296.555 3208.15 +-151.998 -71.9763 778.644 +-155.447 -70.3272 760.803 +-104.975 -45.4583 491.77 +-104.735 -43.4851 470.424 +-104.332 -41.5966 449.995 +-103.86 -39.8196 430.77 +-103.833 -38.3325 414.683 +-103.257 -36.7505 397.569 +-103.165 -35.4392 383.384 +-102.807 -34.1221 369.135 +-102.813 -33.003 357.029 +-102.217 -31.763 343.614 +-102.535 -30.8699 333.952 +-102.029 -29.7856 322.222 +-102.841 -29.1335 315.168 +-101.855 -28.0198 303.12 +-104.182 -27.8499 301.282 +-102.212 -26.5678 287.412 +-109.994 -27.8166 300.922 +-103.276 -25.4253 275.052 +-116.828 -28.0138 303.055 +-108.521 -25.3583 274.327 +-123.583 -28.1547 304.579 +-115.57 -25.6818 277.828 +-1280.15 -277.596 3003.05 +-123.453 -26.1338 282.717 +-171.236 -35.401 382.97 +-127.103 -25.6718 277.719 +-173.273 -34.2029 370.009 +-169.88 -32.783 354.648 +-179.469 -33.8697 366.404 +-171.117 -31.5907 341.75 +-435.558 -78.6835 851.203 +-145.22 -25.6775 277.781 +-145.583 -25.2023 272.64 +-145.486 -24.6637 266.813 +-148.352 -24.6345 266.498 +-153.538 -24.9791 270.225 +-112.15 -17.8798 193.424 +-110.339 -17.2418 186.523 +-111.197 -17.0341 184.276 +-112.285 -16.8657 182.454 +-113.827 -16.7671 181.388 +-115.466 -16.6828 180.476 +-116.88 -16.5663 179.215 +-118.335 -16.4564 178.026 +-119.891 -16.3607 176.991 +-122.174 -16.3624 177.009 +-125.9 -16.5502 179.041 +-488.72 -63.066 682.251 +-491.565 -62.2763 673.709 +-495.012 -61.5757 666.13 +-498.724 -60.9184 659.019 +-501.924 -60.2089 651.343 +-504.842 -59.477 643.426 +-508.781 -58.8748 636.911 +-511.889 -58.1849 629.447 +-519.103 -57.9632 627.05 +-532.999 -58.4677 632.507 +-522.676 -56.3296 609.377 +-525.963 -55.6923 602.482 +-530.56 -55.1987 597.143 +-161.729 -16.533 178.855 +-164.641 -16.5382 178.911 +-166.339 -16.4188 177.62 +-544.901 -52.8531 571.768 +-548.919 -52.3207 566.009 +-552.597 -51.7597 559.94 +-555.574 -51.1381 553.215 +-559.331 -50.5931 547.32 +-562.811 -50.0269 541.194 +-566.3 -49.4651 535.117 +-577.769 -49.5922 536.492 +-572.496 -48.2868 522.369 +-386.51 -32.0333 346.538 +-385.712 -31.4105 339.8 +-385.355 -30.8338 333.562 +-384.385 -30.2182 326.902 +-382.716 -29.5592 319.774 +-385.889 -29.28 316.753 +-383.522 -28.5866 309.252 +-384.417 -28.1456 304.481 +-385.495 -27.7225 299.903 +-384.459 -27.154 293.754 +-141.678 -9.82697 106.309 +-142.765 -9.72379 105.193 +-142.063 -9.50049 102.777 +-143.04 -9.39141 101.597 +-141.222 -9.10189 98.4648 +-141.75 -8.96726 97.0083 +-145.496 -9.03321 97.7218 +-146.931 -8.95155 96.8384 +-148.025 -8.84823 95.7207 +-381.213 -22.3541 241.828 +-380.01 -21.8569 236.449 +-381.301 -21.5075 232.669 +-382.039 -21.1293 228.578 +-382.563 -20.7422 224.39 +-381.311 -20.2638 219.215 +-380.258 -19.8027 214.227 +-380.809 -19.4295 210.19 +-380.264 -19.0044 205.591 +-382.316 -18.7111 202.418 +-382.834 -18.3439 198.445 +-714.944 -33.5306 362.736 +-738.679 -33.8997 366.729 +-728.293 -32.6957 353.704 +-402.011 -17.6497 190.936 +-406.117 -17.4311 188.571 +-401.93 -16.86 182.392 +-403.422 -16.5328 178.852 +-405.982 -16.2484 175.777 +-405.298 -15.8354 171.309 +-401.61 -15.312 165.646 +-404.623 -15.0474 162.784 +-404.825 -14.6781 158.788 +-404.147 -14.2797 154.478 +-403.893 -13.8997 150.368 +-404.068 -13.5371 146.445 +-403.168 -13.1413 142.163 +-403.642 -12.793 138.395 +-404.46 -12.4565 134.755 +-404.009 -12.0828 130.713 +-402.659 -11.6859 126.419 +-382.809 -10.7726 116.539 +-380.46 -10.3733 112.219 +-381.236 -10.0622 108.854 +-380.827 -9.72121 105.165 +-379.512 -9.36012 101.258 +-379.514 -9.03418 97.7323 +-380.55 -8.73345 94.479 +-379.613 -8.38877 90.7502 +-379.322 -8.06075 87.2016 +-379.096 -7.73583 83.6867 +-378.543 -7.40615 80.1202 +-379.623 -7.10915 76.9072 +-379.006 -6.78113 73.3586 +-380.618 -6.49321 70.2439 +-378.856 -6.14888 66.5189 +-378.931 -5.83673 63.1421 +-379.569 -5.53358 59.8626 +-379.683 -5.22304 56.5031 +-378.679 -4.89865 52.9939 +-379.327 -4.59669 49.7273 +-379.748 -4.29183 46.4293 +-379.942 -3.98455 43.1051 +-378.813 -3.66479 39.6459 +-378.35 -3.35331 36.2763 +-379.451 -3.05569 33.0567 +-3266.2 -23.6609 255.965 +-378.875 -2.43861 26.381 +-3270.19 -18.4103 199.164 +-379.679 -1.83153 19.8136 +-3273.18 -13.1542 142.303 +-3274.3 -10.5246 113.856 +-3275.18 -7.89415 85.3994 +-3275.8 -5.2631 56.9366 +-144.095 -0.115746 1.25215 +95.8 0 0 +95.6964 -0.0693647 0.832243 +95.6854 -0.138725 1.66443 +95.6672 -0.208073 2.49647 +96.4412 -0.279725 3.35616 +95.6089 -0.346718 4.15996 +96.5675 -0.420351 5.0434 +96.4198 -0.489821 5.87691 +96.4644 -0.560268 6.72214 +96.4019 -0.630165 7.56077 +96.332 -0.700015 8.39884 +96.2548 -0.769811 9.23625 +96.1703 -0.839549 10.073 +96.0784 -0.909227 10.909 +95.9792 -0.97883 11.7441 +95.7736 -1.04727 12.5652 +95.6599 -1.11665 13.3976 +96.429 -1.19699 14.3616 +96.2008 -1.26554 15.1841 +96.0642 -1.33522 16.0201 +95.7233 -1.40191 16.8203 +95.5724 -1.47124 17.6521 +95.4142 -1.54046 18.4825 +95.4447 -1.61287 19.3513 +95.2716 -1.68199 20.1806 +95.7746 -1.76356 21.1593 +94.9036 -1.81983 21.8345 +95.584 -1.90601 22.8684 +95.186 -1.97119 23.6505 +95.8466 -2.05883 24.702 +95.7232 -2.13037 25.5604 +95.4958 -2.19967 26.3918 +96.2223 -2.2917 27.496 +95.7861 -2.35663 28.2751 +95.5348 -2.42597 29.107 +95.2763 -2.49512 29.9367 +95.9616 -2.58975 31.0721 +95.6859 -2.65921 31.9054 +96.1592 -2.7501 32.9959 +95.7724 -2.81692 33.7976 +96.2245 -2.90896 34.9019 +95.7279 -2.97277 35.6675 +96.1588 -3.06585 36.7844 +96.1121 -3.14457 37.7288 +96.6126 -3.24211 38.8991 +96.2682 -3.31201 39.7378 +96.1007 -3.38815 40.6513 +96.6581 -3.49081 41.883 +96.2877 -3.56073 42.7219 +95.9099 -3.63039 43.5577 +96.4311 -3.73487 44.8112 +95.9448 -3.80104 45.6052 +96.3507 -3.90321 46.831 +95.937 -3.9729 47.6671 +96.2287 -4.07245 48.8616 +95.8859 -4.14587 49.7425 +95.9764 -4.23862 50.8553 +96.4062 -4.34765 52.1634 +95.7709 -4.40931 52.9033 +96.1743 -4.51945 54.2248 +95.6958 -4.58899 55.0591 +95.8993 -4.6919 56.2938 +95.317 -4.75695 57.0743 +95.581 -4.86492 58.3697 +95.8294 -4.97363 59.674 +95.8936 -5.07414 60.8799 +95.273 -5.13892 61.6572 +95.5633 -5.25363 63.0334 +94.9248 -5.31805 63.8064 +95.6811 -5.46192 65.5326 +95.1036 -5.53106 66.3621 +95.2515 -5.64319 67.7074 +95.3831 -5.75596 69.0604 +95.4178 -5.8644 70.3615 +95.4369 -5.97332 71.6684 +94.8851 -6.04733 72.5563 +95.5857 -6.2028 74.4217 +95.4782 -6.30804 75.6844 +95.5112 -6.42405 77.0763 +94.9098 -6.49831 77.9673 +94.9129 -6.61491 79.3662 +95.4309 -6.76975 81.2241 +95.3953 -6.88771 82.6394 +95.3421 -7.00612 84.06 +95.3455 -7.13055 85.5529 +95.2562 -7.24988 86.9847 +95.1491 -7.36963 88.4214 +94.9515 -7.48405 89.7943 +94.809 -7.60452 91.2396 +94.7197 -7.73117 92.7592 +94.4695 -7.84651 94.1431 +94.9031 -8.02132 96.2404 +94.6819 -8.14357 97.7072 +94.5111 -8.27214 99.2498 +94.1158 -8.38286 100.578 +94.4475 -8.56094 102.715 +94.0798 -8.67847 104.125 +94.3571 -8.85829 106.282 +94.0789 -8.98902 107.851 +94.0401 -9.14534 109.727 +94.2969 -9.33405 111.991 +93.6943 -9.44045 113.267 +93.8317 -9.62417 115.472 +93.8752 -9.80233 117.609 +93.5805 -9.9486 119.364 +93.9928 -10.1742 122.071 +93.8831 -10.348 124.157 +92.6734 -10.4024 124.808 +98.1601 -11.2217 134.639 +115.618 -13.463 161.53 +115.518 -13.7028 164.407 +115.604 -13.9708 167.623 +115.194 -14.1849 170.192 +115.244 -14.4618 173.513 +115.137 -14.7259 176.682 +115.412 -15.0469 180.534 +115.257 -15.3202 183.813 +114.897 -15.5732 186.848 +115.266 -15.9335 191.171 +115.313 -16.2597 195.086 +115.45 -16.6088 199.274 +115.129 -16.9015 202.786 +113.445 -16.9989 203.954 +110.796 -16.949 203.356 +108.542 -16.9553 203.432 +106.295 -16.9597 203.484 +103.691 -16.9029 202.803 +101.599 -16.9254 203.073 +99.028 -16.8641 202.336 +96.9511 -16.8827 202.56 +94.7933 -16.8846 202.583 +92.6839 -16.8921 202.673 +91.3124 -17.0346 204.382 +91.3933 -17.4581 209.464 +91.3139 -17.8677 214.379 +91.0787 -18.2632 219.123 +91.2167 -18.7521 224.989 +91.1489 -19.2194 230.595 +91.0255 -19.6956 236.31 +90.6687 -20.1421 241.666 +90.6011 -20.6754 248.065 +90.495 -21.2256 254.667 +90.0847 -21.7302 260.721 +89.8289 -22.2988 267.542 +89.6458 -22.916 274.948 +89.1292 -23.4792 281.705 +89.1734 -24.226 290.665 +88.8968 -24.9268 299.074 +88.5898 -25.661 307.882 +88.5361 -26.5166 318.148 +88.5679 -27.4542 329.398 +88.309 -28.3617 340.286 +87.8418 -29.2627 351.097 +87.3319 -30.2138 362.507 +87.101 -31.336 375.972 +87.0087 -32.5981 391.115 +86.4705 -33.7893 405.406 +86.2864 -35.2261 422.646 +85.864 -36.6897 440.206 +85.596 -38.3594 460.239 +85.0355 -40.0559 480.594 +84.5374 -41.9592 503.429 +86.4144 -45.3167 543.714 +90.5185 -50.3064 603.58 +84.993 -50.2303 602.667 +82.4012 -51.9863 623.736 +81.36 -55.0367 660.334 +80.5894 -58.7494 704.88 +79.358 -62.7127 752.432 +78.4881 -67.7036 812.313 +77.22 -73.31 879.579 +79.0475 -83.4233 1000.92 +73.4745 -87.2722 1047.1 +72.4951 -98.4486 1181.19 +69.0992 -109.512 1313.93 +142.928 -271.899 3262.27 +62.8924 -149.589 1794.78 +85.774 -272.065 3264.26 +57.1863 -272.117 3264.88 +28.5942 -272.148 3265.26 +2.00633e-13 -272.158 3265.38 +-28.5942 -272.148 3265.26 +-57.1863 -272.117 3264.88 +-85.774 -272.065 3264.26 +-114.355 -271.992 3263.38 +-142.928 -271.899 3262.27 +-171.489 -271.785 3260.9 +-200.038 -271.651 3259.29 +-228.543 -271.462 3257.03 +-257.056 -271.286 3254.91 +-285.548 -271.089 3252.55 +-147.325 -127.081 1524.73 +-170.246 -134.537 1614.18 +-136.002 -99.1455 1189.56 +-147.035 -99.4636 1193.37 +-167.556 -105.71 1268.32 +-456.028 -269.51 3233.6 +-128.121 -71.2045 854.317 +-135.253 -70.9284 851.004 +-157.604 -78.225 938.55 +-568.924 -267.991 3215.38 +-597.131 -267.601 3210.7 +-151.998 -64.9489 779.262 +-155.288 -63.3956 760.626 +-104.684 -40.9061 490.795 +-104.67 -39.2151 470.506 +-104.647 -37.6486 451.711 +-103.86 -35.9318 431.112 +-105.623 -35.1862 422.167 +-103.482 -33.2347 398.752 +-106.168 -32.9098 394.854 +-103.528 -31.0066 372.02 +-110.09 -31.8885 382.601 +-104.177 -29.2113 350.48 +-118.761 -32.2642 387.109 +-105.608 -27.8201 333.788 +-124.688 -31.8738 382.425 +-114.801 -28.4977 341.917 +-150.022 -36.1882 434.19 +-121.439 -28.4836 341.748 +-174.088 -39.7273 476.651 +-126.04 -27.9997 335.943 +-428.644 -92.7483 1112.8 +-1200.77 -253.19 3037.8 +-421.582 -86.6676 1039.84 +-172.782 -34.6464 415.691 +-421.833 -82.5418 990.343 +-421.358 -80.4886 965.709 +-420.728 -78.488 941.706 +-424.895 -77.4394 929.124 +-426.084 -75.894 910.583 +-429.349 -74.7651 897.038 +-393.613 -67.0306 804.238 +-433.347 -72.1913 866.157 +-391.658 -63.8448 766.015 +-144.158 -23.001 275.968 +-145.114 -22.6683 271.976 +-145.486 -22.2557 267.025 +-148.012 -22.1784 266.098 +-151.42 -22.2293 266.709 +-112.2 -16.1413 193.665 +-110.339 -15.5584 186.671 +-110.836 -15.3212 183.825 +-112.233 -15.2119 182.514 +-113.668 -15.1089 181.277 +-115.09 -15.0049 180.03 +-116.444 -14.8931 178.688 +-118.501 -14.8704 178.416 +-120.282 -14.8115 177.71 +-122.174 -14.7648 177.15 +-126.474 -15.0023 179.999 +-487.674 -56.7867 681.332 +-491.388 -56.1757 674.001 +-495.725 -55.6438 667.619 +-499.085 -55.0104 660.02 +-501.924 -54.3303 651.86 +-505.581 -53.7484 644.878 +-508.408 -53.0874 636.947 +-512.267 -52.5427 630.411 +-518.149 -52.2078 626.393 +-532.999 -52.7592 633.009 +-523.13 -50.874 610.391 +-526.159 -50.2735 603.186 +-159.426 -14.9671 179.576 +-162.398 -14.9805 179.738 +-164.844 -14.9419 179.274 +-166.817 -14.8583 178.271 +-544.901 -47.6928 572.222 +-548.919 -47.2124 566.458 +-551.966 -46.6528 559.744 +-556.21 -46.1981 554.288 +-559.331 -45.6534 547.754 +-563.243 -45.1771 542.039 +-566.082 -44.6185 535.336 +-390.031 -30.2093 362.453 +-390.167 -29.6953 356.287 +-388.145 -29.0279 348.279 +-385.038 -28.2942 339.476 +-386.638 -27.9159 334.938 +-384.994 -27.311 327.68 +-385.167 -26.8441 322.077 +-384.809 -26.3472 316.116 +-385.775 -25.9471 311.316 +-384.417 -25.3976 304.722 +-384.943 -24.98 299.712 +-384.3 -24.4927 293.865 +-141.518 -8.85754 106.274 +-142.765 -8.7744 105.276 +-142.063 -8.5729 102.858 +-143.04 -8.47448 101.677 +-141.386 -8.22275 98.6572 +-141.915 -8.10114 97.1982 +-145.164 -8.13266 97.5764 +-147.181 -8.09132 97.0803 +-147.354 -7.94814 95.3624 +-382.647 -20.2475 242.931 +-379.247 -19.6832 236.161 +-379.51 -19.3165 231.76 +-382.039 -19.0663 228.759 +-382.908 -18.7339 224.771 +-381.311 -18.2854 219.389 +-381.042 -17.906 214.838 +-382.471 -17.609 211.274 +-380.176 -17.1449 205.706 +-378.961 -16.7361 200.801 +-381.149 -16.4799 197.727 +-714.587 -30.2417 362.842 +-733.667 -30.3823 364.529 +-722.271 -29.2595 351.058 +-403.365 -15.9801 191.73 +-404.213 -15.6556 187.837 +-405.661 -15.3551 184.231 +-402.417 -14.8814 178.548 +-403.782 -14.5825 174.962 +-404.01 -14.2439 170.899 +-405.491 -13.9505 167.38 +-402.676 -13.513 162.13 +-406.406 -13.2967 159.535 +-404.707 -12.9034 154.816 +-404.736 -12.5689 150.802 +-404.914 -12.2409 146.867 +-406.184 -11.9469 143.34 +-404.871 -11.579 138.926 +-404.365 -11.2378 134.831 +-403.533 -10.8903 130.663 +-403.422 -10.565 126.759 +-384.626 -9.76704 117.186 +-378.254 -9.30623 111.657 +-380.852 -9.07067 108.831 +-380.345 -8.76095 105.115 +-379.899 -8.45487 101.442 +-380.385 -8.17084 98.0344 +-379.968 -7.8687 94.4093 +-379.905 -7.57554 90.8919 +-381.368 -7.31297 87.7416 +-379.584 -6.98953 83.8609 +-379.815 -6.7055 80.4531 +-379.623 -6.41504 76.9682 +-378.515 -6.11112 73.3217 +-378.75 -5.83048 69.9545 +-380.234 -5.56872 66.8139 +-379.917 -5.28056 63.3566 +-378.778 -4.98291 59.7853 +-379.288 -4.70817 56.489 +-377.985 -4.41228 52.9388 +-379.723 -4.15223 49.8188 +-379.252 -3.86773 46.4054 +-378.849 -3.58518 43.0153 +-380.007 -3.31739 39.8023 +-379.146 -3.03227 36.3815 +-378.056 -2.74722 32.9613 +-379.128 -2.4783 29.7349 +-378.775 -2.19993 26.395 +-3270.19 -16.6128 199.322 +-3271.81 -14.2419 170.876 +-3273.18 -11.8699 142.416 +-3274.3 -9.49701 113.946 +-3275.18 -7.1234 85.4672 +-3275.8 -4.74924 56.9817 +-143.095 -0.103721 1.24446 +95.9 0 0 +95.6964 -0.0618538 0.832835 +95.7854 -0.123832 1.66735 +95.6672 -0.185542 2.49825 +96.6411 -0.249953 3.36551 +95.7088 -0.309498 4.16726 +95.7686 -0.371734 5.00523 +96.5196 -0.437234 5.88718 +95.6664 -0.495469 6.67128 +96.4019 -0.56193 7.56615 +96.4316 -0.624863 8.41351 +96.2548 -0.686455 9.24282 +96.4686 -0.750967 10.1115 +96.1778 -0.811611 10.928 +96.277 -0.875544 11.7888 +95.8727 -0.934841 12.5872 +96.7492 -1.00708 13.5599 +96.429 -1.06738 14.3718 +95.4107 -1.11924 15.0701 +96.0642 -1.19064 16.0314 +95.9203 -1.25268 16.8668 +95.5724 -1.31194 17.6646 +95.6105 -1.37648 18.5338 +95.2487 -1.43528 19.3254 +96.1519 -1.51372 20.3816 +95.677 -1.571 21.1528 +95.7806 -1.63778 22.052 +95.584 -1.69962 22.8847 +96.3504 -1.77925 23.9568 +95.9434 -1.83775 24.7445 +95.9164 -1.90352 25.6301 +95.4958 -1.96148 26.4106 +96.03 -2.03947 27.4606 +95.7861 -2.10145 28.2952 +95.5348 -2.16328 29.1277 +96.1347 -2.24499 30.2278 +96.1518 -2.31391 31.1558 +95.6859 -2.37126 31.9281 +96.2538 -2.45472 33.0518 +95.7724 -2.5119 33.8217 +96.2245 -2.59397 34.9267 +95.7279 -2.65087 35.6929 +97.2791 -2.76573 37.2393 +96.1121 -2.80407 37.7556 +96.6126 -2.89105 38.9268 +96.2682 -2.95339 39.7661 +96.1928 -3.02418 40.7193 +96.6581 -3.11282 41.9128 +95.4655 -3.14806 42.3873 +96.0009 -3.24035 43.6299 +95.7967 -3.30854 44.5481 +96.0351 -3.39265 45.6806 +96.4406 -3.48381 46.908 +96.0265 -3.54601 47.7455 +96.3178 -3.63484 48.9416 +96.5955 -3.72431 50.1463 +96.153 -3.78661 50.9851 +95.7032 -3.84861 51.8199 +96.0332 -3.94263 53.0859 +95.478 -4.00091 53.8705 +95.869 -4.0995 55.198 +95.8993 -4.18386 56.3338 +96.0885 -4.2762 57.5772 +95.4957 -4.33427 58.3591 +95.8294 -4.43508 59.7164 +95.2189 -4.49286 60.4945 +95.4407 -4.59054 61.8097 +95.4799 -4.68067 63.0232 +95.6709 -4.77948 64.3537 +95.1042 -4.84113 65.1838 +95.1855 -4.9364 66.4665 +95.2515 -5.03214 67.7556 +95.464 -5.13705 69.1682 +95.5786 -5.2382 70.5301 +95.4369 -5.32652 71.7194 +95.5991 -5.4331 73.1543 +95.5857 -5.53115 74.4746 +94.9304 -5.59272 75.3036 +95.589 -5.7331 77.1938 +94.9098 -5.79467 78.0227 +95.4491 -5.93196 79.8713 +94.8226 -5.99824 80.7638 +95.3953 -6.1419 82.6981 +95.3421 -6.24749 84.1198 +95.2712 -6.35348 85.5469 +95.1825 -6.45985 86.9791 +95.1491 -6.57164 88.4843 +94.9515 -6.67367 89.8581 +94.809 -6.78109 91.3045 +94.6483 -6.88884 92.7552 +94.5402 -7.00212 94.2805 +94.9031 -7.15276 96.3089 +94.7514 -7.2671 97.8484 +94.5111 -7.37642 99.3204 +94.866 -7.5347 101.452 +94.4475 -7.63395 102.788 +94.1467 -7.74423 104.273 +94.4896 -7.91021 106.508 +94.0789 -8.01568 107.928 +94.105 -8.1607 109.88 +94.2969 -8.32335 112.07 +93.6943 -8.41823 113.348 +93.9575 -8.59361 115.709 +93.9375 -8.74678 117.772 +93.5805 -8.87135 119.449 +93.9928 -9.07252 122.158 +93.823 -9.22161 124.165 +92.6734 -9.27597 124.897 +98.2189 -10.0126 134.816 +115.095 -11.951 160.915 +115.576 -12.2251 164.606 +115.66 -12.4642 167.825 +115.753 -12.7104 171.14 +115.244 -12.8958 173.637 +115.627 -13.1873 177.561 +114.982 -13.3677 179.99 +115.257 -13.6613 183.943 +115.42 -13.95 187.831 +115.214 -14.2018 191.221 +115.262 -14.4927 195.139 +115.45 -14.8104 199.416 +115.129 -15.0714 202.93 +113.009 -15.0999 203.314 +110.749 -15.1073 203.413 +108.589 -15.126 203.665 +106.341 -15.1299 203.718 +103.782 -15.0859 203.125 +101.599 -15.0927 203.217 +99.5103 -15.1112 203.466 +96.9511 -15.0546 202.704 +94.7933 -15.0563 202.727 +92.6839 -15.063 202.817 +91.3531 -15.1968 204.618 +91.3933 -15.5677 209.613 +91.3529 -15.9398 214.623 +91.0787 -16.2856 219.279 +91.1792 -16.7148 225.057 +91.1489 -17.1383 230.759 +91.0255 -17.563 236.478 +90.7738 -17.9819 242.118 +90.5669 -18.4297 248.148 +90.1279 -18.8505 253.814 +90.0522 -19.3702 260.812 +89.5751 -19.8281 266.977 +89.7076 -20.4487 275.334 +89.3096 -20.9792 282.476 +89.0857 -21.5815 290.586 +88.8968 -22.2277 299.287 +88.6725 -22.9037 308.389 +88.4559 -23.6239 318.086 +88.4126 -24.4385 329.054 +88.0336 -25.2118 339.466 +87.7693 -26.0726 351.056 +87.3086 -26.9349 362.667 +87.146 -27.9574 376.434 +86.9654 -29.0539 391.199 +86.4705 -30.1305 405.695 +86.3463 -31.4335 423.239 +85.7877 -32.6878 440.128 +85.4867 -34.1621 459.978 +85.0181 -35.7113 480.838 +84.6529 -37.467 504.477 +86.2736 -40.3439 543.214 +90.415 -44.8079 603.319 +84.9791 -44.784 602.997 +82.1793 -46.2324 622.5 +81.1894 -48.9743 659.418 +80.3743 -52.2481 703.498 +79.4312 -55.9736 753.661 +78.4881 -60.3726 812.891 +77.1415 -65.3055 879.31 +78.9769 -74.3242 1000.74 +73.342 -77.6823 1045.96 +71.8663 -87.0263 1171.77 +68.9265 -97.4103 1311.59 +65.4465 -111.021 1494.85 +60.938 -129.246 1740.25 +51.5215 -145.725 1962.13 +36.1684 -153.469 2066.39 +28.5942 -242.68 3267.58 +2.00584e-13 -242.629 3266.9 +-28.5942 -242.68 3267.58 +-57.1723 -242.592 3266.4 +-85.774 -242.606 3266.58 +-114.327 -242.481 3264.91 +-142.928 -242.458 3264.59 +-171.468 -242.327 3262.82 +-159.331 -192.941 2597.88 +-154.357 -163.492 2201.35 +-147.26 -138.584 1865.97 +-134.307 -113.7 1530.92 +-147.487 -113.447 1527.51 +-171.542 -120.882 1627.63 +-136.07 -88.4536 1190.99 +-146.816 -88.561 1192.44 +-169.097 -95.1305 1280.89 +-421.374 -222.064 2990 +-128.092 -63.4797 854.727 +-135.519 -63.3725 853.284 +-157.241 -69.594 937.053 +-166.546 -69.9565 941.935 +-597.131 -238.625 3212.98 +-152.132 -57.967 780.501 +-155.447 -56.5891 761.948 +-166.184 -57.9064 779.686 +-107.765 -36.0028 484.763 +-118.414 -37.9885 511.499 +-112.497 -34.7057 467.298 +-128.581 -38.1962 514.296 +-121.559 -34.8132 468.745 +-848.072 -234.419 3156.36 +-126.564 -33.8014 455.122 +-903.071 -233.259 3140.73 +-930.519 -232.666 3132.75 +-957.897 -232.056 3124.53 +-985.202 -231.428 3116.08 +-167.92 -38.2771 515.385 +-146.468 -32.4216 436.544 +-150.608 -32.3958 436.196 +-157.056 -32.8488 442.295 +-466.686 -94.9669 1278.69 +-436.534 -86.4753 1164.35 +-394.133 -76.0462 1023.93 +-395.748 -74.4101 1001.9 +-414.427 -75.9714 1022.92 +-419.651 -75.0374 1010.35 +-422.341 -73.6927 992.241 +-412.426 -70.2517 945.91 +-415.278 -69.0826 930.168 +-414.527 -67.3693 907.099 +-416.955 -66.2262 891.707 +-428.746 -66.5759 896.416 +-391.904 -59.5128 801.315 +-392.966 -58.3757 786.004 +-392.066 -56.991 767.36 +-144.019 -20.4907 275.899 +-145.348 -20.2465 272.61 +-145.533 -19.8523 267.303 +-148.74 -19.8741 267.596 +-151.568 -19.8416 267.159 +-112.3 -14.4063 193.975 +-110.288 -13.8673 186.718 +-111.094 -13.6939 184.383 +-112.337 -13.5774 182.815 +-113.403 -13.4415 180.984 +-115.251 -13.3989 180.41 +-116.771 -13.3177 179.317 +-118.832 -13.2973 179.043 +-119.723 -13.1463 177.009 +-122.174 -13.1661 177.276 +-125.957 -13.3233 179.392 +-488.371 -50.7101 682.79 +-491.917 -50.1469 675.206 +-495.012 -49.5472 667.133 +-499.085 -49.0538 660.489 +-502.106 -48.465 652.561 +-505.889 -47.9577 645.73 +-508.408 -47.3391 637.401 +-512.959 -46.9166 631.712 +-518.913 -46.6232 627.762 +-532.678 -47.018 633.077 +-522.936 -45.3484 610.597 +-527.012 -44.9025 604.593 +-530.361 -44.3993 597.818 +-162.197 -13.3419 179.643 +-164.506 -13.2967 179.034 +-167.09 -13.2711 178.69 +-545.177 -42.5501 572.919 +-548.919 -42.1002 566.861 +-551.966 -41.6012 560.142 +-556.21 -41.1957 554.682 +-559.117 -40.6945 547.934 +-562.811 -40.2544 542.008 +-566.88 -39.8432 536.471 +-570.748 -39.4198 530.77 +-572.348 -38.8442 523.021 +-387.476 -25.8402 347.927 +-384.739 -25.2108 339.453 +-386.638 -24.8932 335.176 +-383.625 -24.2672 326.747 +-384.095 -23.8707 321.409 +-384.501 -23.4755 316.087 +-385.387 -23.1142 311.223 +-384.104 -22.6291 304.691 +-384.076 -22.2249 299.249 +-384.776 -21.8676 294.438 +-141.438 -7.89392 106.288 +-142.765 -7.8243 105.351 +-142.144 -7.64899 102.99 +-143.04 -7.55685 101.75 +-141.468 -7.33663 98.7846 +-141.75 -7.21555 97.1543 +-144.418 -7.21477 97.1439 +-146.264 -7.17021 96.5438 +-147.438 -7.09154 95.4845 +-378.345 -17.8521 240.371 +-381.198 -17.6422 237.545 +-380.533 -17.2713 232.551 +-381.782 -16.9904 228.768 +-381.702 -16.6527 224.221 +-382.523 -16.3572 220.243 +-381.216 -15.9745 215.09 +-380.722 -15.6305 210.458 +-381.67 -15.3485 206.661 +-380.374 -14.9795 201.693 +-381.681 -14.716 198.144 +-714.944 -26.9805 363.281 +-729.55 -26.9404 362.741 +-723.17 -26.1237 351.744 +-406.705 -14.3677 193.455 +-409.56 -14.145 190.456 +-403.568 -13.6217 183.411 +-404.061 -13.3243 179.406 +-406.808 -13.101 176.399 +-404.562 -12.7189 171.254 +-405.121 -12.4286 167.346 +-403.696 -12.0803 162.656 +-404.825 -11.8108 159.027 +-404.054 -11.4876 154.676 +-403.987 -11.1871 150.629 +-404.35 -10.9002 146.767 +-404.77 -10.6163 142.943 +-406.1 -10.3567 139.448 +-404.365 -10.0209 134.927 +-402.582 -9.68822 130.448 +-403.422 -9.42099 126.85 +-385.008 -8.71811 117.386 +-380.172 -8.34061 112.303 +-379.891 -8.06805 108.633 +-380.345 -7.8123 105.189 +-379.995 -7.54122 101.539 +-379.804 -7.27497 97.9543 +-379.095 -7.00054 94.2593 +-380.294 -6.76217 91.0497 +-378.835 -6.4778 87.2208 +-380.072 -6.24071 84.0285 +-380.988 -5.9979 80.7592 +-379.623 -5.72042 77.023 +-379.399 -5.46212 73.5451 +-380.028 -5.21669 70.2405 +-379.348 -4.95415 66.7056 +-377.747 -4.68188 63.0396 +-379.964 -4.45725 60.015 +-378.397 -4.18852 56.3966 +-378.877 -3.94378 53.1014 +-378.335 -3.68909 49.672 +-377.763 -3.43539 46.2561 +-378.849 -3.19697 43.0458 +-378.217 -2.94425 39.643 +-379.943 -2.70962 36.4838 +-378.952 -2.45555 33.0629 +-379.726 -2.21344 29.803 +-378.576 -1.96069 26.3999 +-3270.19 -14.814 199.464 +-3271.81 -12.6998 170.997 +-3273.18 -10.5846 142.517 +-3274.3 -8.46866 114.027 +-3275.18 -6.35207 85.5279 +-3275.8 -4.23498 57.0223 +-143.595 -0.092813 1.24969 +95.9 0 0 +95.7964 -0.0543947 0.834231 +96.6853 -0.109807 1.68407 +96.6669 -0.1647 2.52595 +95.7416 -0.217537 3.33629 +96.7079 -0.274729 4.21341 +95.7686 -0.326564 5.00838 +96.6194 -0.384503 5.89698 +95.6664 -0.435264 6.67547 +96.5016 -0.49416 7.57875 +96.4316 -0.548935 8.4188 +96.5534 -0.604914 9.27734 +96.2697 -0.658356 10.097 +96.3765 -0.714462 10.9574 +96.1777 -0.768362 11.7841 +95.9719 -0.822093 12.6081 +95.7589 -0.875648 13.4295 +96.5279 -0.938644 14.3956 +96.4972 -0.994431 15.2512 +96.2615 -1.04811 16.0745 +95.1324 -1.09143 16.7389 +95.769 -1.15489 17.7121 +95.6105 -1.20922 18.5454 +95.5427 -1.26476 19.3972 +96.1519 -1.32978 20.3944 +95.9699 -1.38433 21.2309 +95.7806 -1.43877 22.0658 +95.6812 -1.49461 22.9223 +95.5741 -1.55046 23.7788 +96.1371 -1.6177 24.81 +96.013 -1.67391 25.6721 +96.4594 -1.74053 26.6939 +96.2223 -1.79524 27.5328 +95.9779 -1.8498 28.3697 +95.7261 -1.90423 29.2044 +96.4208 -1.97807 30.337 +96.0567 -2.03073 31.1446 +95.8755 -2.08726 32.0115 +96.2538 -2.15644 33.0726 +95.8666 -2.20885 33.8763 +96.4125 -2.28322 35.0169 +95.9152 -2.33332 35.7852 +96.5322 -2.41101 36.9767 +96.2982 -2.46811 37.8525 +96.798 -2.54463 39.026 +96.453 -2.5995 39.8675 +96.2848 -2.65925 40.7839 +95.8328 -2.71122 41.581 +96.4704 -2.79464 42.8604 +96.0009 -2.84661 43.6574 +95.7061 -2.90376 44.5339 +96.0351 -2.98041 45.7093 +96.4406 -3.06049 46.9375 +96.0265 -3.11513 47.7755 +96.4069 -3.19612 49.0177 +95.9746 -3.25074 49.8553 +96.2413 -3.32955 51.064 +96.2305 -3.39959 52.1382 +96.1207 -3.46672 53.1677 +95.478 -3.51475 53.9044 +95.7824 -3.59811 55.1828 +95.8993 -3.67547 56.3693 +95.4027 -3.72978 57.2022 +95.581 -3.81101 58.448 +95.8294 -3.89617 59.754 +95.3876 -3.95392 60.6398 +95.3568 -4.0292 61.7943 +95.4799 -4.11192 63.0629 +95.7538 -4.20236 64.4499 +95.7635 -4.28236 65.6769 +95.9227 -4.37016 67.0235 +95.3329 -4.42446 67.8562 +95.464 -4.51284 69.2117 +95.4982 -4.59783 70.5152 +95.5967 -4.68713 71.8847 +95.5991 -4.77291 73.2004 +95.0341 -4.83102 74.0915 +94.9304 -4.91314 75.351 +95.589 -5.03647 77.2424 +95.6043 -5.1278 78.6431 +94.9129 -5.18189 79.4726 +95.507 -5.30742 81.3979 +95.4708 -5.39986 82.8156 +94.7429 -5.45386 83.6438 +94.751 -5.55099 85.1334 +95.2562 -5.67931 87.1013 +95.1491 -5.77311 88.54 +95.024 -5.86722 89.9833 +94.8809 -5.96163 91.4312 +94.7197 -6.05633 92.8836 +94.5402 -6.15128 94.3399 +94.9732 -6.28826 96.4406 +94.8903 -6.39343 98.0536 +94.5111 -6.4801 99.3829 +94.7978 -6.6144 101.443 +94.4475 -6.70634 102.853 +94.2805 -6.81292 104.487 +93.827 -6.9003 105.827 +94.0789 -7.04169 107.996 +94.105 -7.16909 109.95 +94.4255 -7.32192 112.294 +93.8215 -7.4054 113.574 +94.0205 -7.55447 115.86 +94.062 -7.6941 118.001 +93.6421 -7.79846 119.602 +93.6275 -7.93913 121.759 +93.9433 -8.11149 124.403 +92.257 -8.11221 124.414 +98.3953 -8.81172 135.142 +115.618 -10.5464 161.747 +115.748 -10.7556 164.955 +115.207 -10.9067 167.272 +115.306 -11.1228 170.586 +115.244 -11.3288 173.746 +115.3 -11.5521 177.171 +115.412 -11.7872 180.776 +115.363 -12.0123 184.229 +115.002 -12.2105 187.268 +115.214 -12.4761 191.342 +115.262 -12.7317 195.261 +115.1 -12.9713 198.937 +115.227 -13.2514 203.231 +113.058 -13.2708 203.529 +110.749 -13.2716 203.541 +108.636 -13.2937 203.881 +106.295 -13.2857 203.757 +103.828 -13.2585 203.341 +101.287 -13.218 202.72 +99.4664 -13.2691 203.504 +97.3386 -13.2782 203.643 +94.751 -13.2209 202.763 +93.0572 -13.286 203.762 +91.4344 -13.3621 204.93 +91.3933 -13.6761 209.745 +91.4311 -14.0149 214.942 +91.1169 -14.3128 219.51 +90.9545 -14.6475 224.643 +90.8557 -15.0074 230.162 +91.0613 -15.435 236.72 +90.8438 -15.8091 242.458 +90.5669 -16.1903 248.304 +90.5618 -16.6397 255.197 +90.0522 -17.0165 260.976 +89.6703 -17.4372 267.428 +89.8621 -17.9949 275.981 +89.2495 -18.4176 282.463 +89.2026 -18.984 291.151 +89.0672 -19.5642 300.049 +88.645 -20.1144 308.487 +88.5628 -20.7784 318.67 +88.2314 -21.4249 328.586 +88.0336 -22.1483 339.68 +87.8176 -22.9171 351.471 +87.3553 -23.6747 363.09 +87.3935 -24.63 377.741 +86.9438 -25.5172 391.347 +86.4497 -26.463 405.852 +86.0472 -27.5184 422.04 +85.864 -28.7414 440.796 +85.3591 -29.9663 459.581 +85.0355 -31.3784 481.238 +84.5044 -32.8565 503.908 +86.1485 -35.3903 542.767 +90.415 -39.3632 603.699 +85.0069 -39.3551 603.574 +82.2184 -40.634 623.188 +81.2137 -43.0363 660.031 +80.3856 -45.9058 704.04 +79.358 -49.1269 753.441 +78.306 -52.9136 811.516 +77.159 -57.3831 880.062 +78.9848 -65.2995 1001.47 +73.2862 -68.191 1045.82 +71.6038 -76.1725 1168.23 +68.9055 -85.5478 1312.01 +65.3069 -97.3227 1492.6 +60.8926 -113.457 1740.05 +51.4796 -127.914 1961.76 +36.1736 -134.84 2067.99 +28.5873 -213.139 3268.84 +2.00584e-13 -213.147 3268.96 +-28.5873 -213.139 3268.84 +-57.1723 -213.115 3268.46 +-85.7531 -213.074 3267.84 +-114.327 -213.017 3266.96 +-142.893 -212.944 3265.85 +-169.061 -209.892 3219.03 +-156.98 -166.996 2561.16 +-154.301 -143.574 2201.93 +-147.197 -121.693 1866.36 +-134.612 -100.111 1535.36 +-147.44 -99.6292 1527.98 +-171.385 -106.097 1627.16 +-136.172 -77.764 1192.64 +-146.877 -77.8324 1193.69 +-169.123 -83.5841 1281.9 +-421.848 -195.3 2995.24 +-128.047 -55.7469 854.968 +-135.55 -55.6849 854.019 +-156.68 -60.9194 934.297 +-166.511 -61.4432 942.331 +-597.131 -209.629 3215 +-151.979 -50.8723 780.209 +-155.328 -49.6747 761.841 +-163.938 -50.1828 769.635 +-116.185 -34.0991 522.965 +-119.674 -33.7276 517.267 +-124.193 -33.6583 516.205 +-128.63 -33.5676 514.813 +-134.529 -33.846 519.084 +-848.072 -205.935 3158.34 +-875.553 -205.42 3150.45 +-903.071 -204.915 3142.71 +-413.583 -90.8461 1393.27 +-957.897 -203.859 3126.5 +-985.202 -203.307 3118.04 +-168.476 -33.7374 517.417 +-146.69 -28.5253 437.481 +-150.803 -28.4962 437.036 +-154.92 -28.4647 436.553 +-467.2 -83.5191 1280.9 +-393.668 -68.5079 1050.68 +-394.133 -66.8058 1024.57 +-409.675 -67.6692 1037.82 +-414.802 -66.8005 1024.49 +-419.574 -65.9072 1010.79 +-422.615 -64.7801 993.508 +-413.463 -61.8706 948.885 +-415.319 -60.6942 930.844 +-414.237 -59.1417 907.034 +-416.194 -58.0728 890.641 +-428.703 -58.4803 896.889 +-392.956 -52.4217 803.972 +-393.814 -51.393 788.195 +-394.654 -50.3964 772.911 +-144.25 -18.0297 276.515 +-145.442 -17.7978 272.957 +-145.533 -17.44 267.471 +-148.788 -17.4649 267.852 +-151.913 -17.4703 267.936 +-119.45 -13.4615 206.455 +-110.288 -12.1823 186.835 +-111.042 -12.0244 184.413 +-112.494 -11.9442 183.184 +-113.35 -11.8026 181.013 +-115.466 -11.7928 180.861 +-116.988 -11.7212 179.764 +-118.446 -11.6436 178.573 +-120.171 -11.592 177.782 +-122.23 -11.5716 177.469 +-126.187 -11.7256 179.831 +-488.72 -44.5801 683.708 +-492.682 -44.1219 676.681 +-495.666 -43.5842 668.435 +-499.567 -43.1348 661.542 +-502.106 -42.576 652.971 +-505.704 -42.1149 645.9 +-508.719 -41.6123 638.192 +-512.078 -41.1449 631.024 +-513.888 -40.5614 622.075 +-528.114 -40.9509 628.048 +-523.13 -39.8529 611.209 +-526.553 -39.412 604.446 +-530.427 -39.0092 598.269 +-163.736 -11.832 181.463 +-164.439 -11.6762 179.073 +-166.953 -11.649 178.656 +-545.383 -37.3939 573.496 +-548.85 -36.9798 567.146 +-552.807 -36.6019 561.349 +-556.352 -36.1992 555.173 +-560.187 -35.818 549.328 +-563.603 -35.4127 543.112 +-566.88 -35.0018 536.809 +-570.675 -34.6253 531.035 +-2415.69 -144.027 2208.88 +-587.753 -34.4335 528.094 +-387.21 -22.2897 341.849 +-384.826 -21.7659 333.815 +-385.298 -21.4113 328.378 +-383.865 -20.9576 321.418 +-385.504 -20.6768 317.112 +-385.309 -20.3015 311.356 +-384.026 -19.8754 304.821 +-384.628 -19.5524 299.867 +-384.38 -19.1907 294.32 +-142.077 -6.96608 106.836 +-142.685 -6.86966 105.357 +-142.225 -6.72339 103.114 +-143.122 -6.64238 101.872 +-141.386 -6.44142 98.7895 +-141.915 -6.34615 97.3285 +-143.755 -6.30899 96.7585 +-145.93 -6.28459 96.3843 +-147.941 -6.2511 95.8707 +-383.406 -15.8926 243.738 +-379.332 -15.4226 236.531 +-380.619 -15.176 232.749 +-381.868 -14.9292 228.963 +-381.357 -14.616 224.16 +-380.705 -14.3013 219.334 +-380.955 -14.0238 215.077 +-381.509 -13.7596 211.026 +-382.373 -13.5083 207.172 +-380.992 -13.1807 202.148 +-381.06 -12.9068 197.947 +-715.122 -23.708 363.601 +-735.815 -23.8701 366.087 +-722.451 -22.9266 351.616 +-404.178 -12.5435 192.374 +-404.666 -12.2777 188.299 +-406.116 -12.0421 184.686 +-405.431 -11.7449 180.128 +-404.79 -11.452 175.635 +-404.286 -11.1658 171.245 +-404.382 -10.8985 167.146 +-403.881 -10.6173 162.833 +-404.546 -10.3685 159.017 +-405.547 -10.129 155.345 +-405.111 -9.85511 151.144 +-405.008 -9.59133 147.099 +-404.393 -9.31754 142.9 +-404.304 -9.05793 138.918 +-405.314 -8.82389 135.329 +-404.484 -8.5512 131.147 +-403.422 -8.27624 126.929 +-383.861 -7.63593 117.109 +-380.46 -7.33266 112.458 +-380.948 -7.1074 109.004 +-379.092 -6.84044 104.909 +-380.188 -6.62826 101.655 +-380.095 -6.39586 98.0909 +-380.065 -6.16564 94.56 +-379.905 -5.93441 91.0138 +-380.784 -5.71995 87.7246 +-380.56 -5.48944 84.1894 +-380.01 -5.25556 80.6025 +-380.995 -5.04349 77.35 +-379.595 -4.80089 73.6294 +-379.143 -4.57214 70.1211 +-379.053 -4.34878 66.6956 +-378.931 -4.12587 63.2769 +-378.976 -3.90547 59.8967 +-378.397 -3.67956 56.4321 +-379.966 -3.47453 53.2875 +-378.038 -3.23827 49.6641 +-379.053 -3.02826 46.4433 +-379.246 -2.81145 43.1181 +-379.112 -2.59261 39.7619 +-379.146 -2.37538 36.4302 +-378.654 -2.15548 33.0577 +-380.523 -1.94856 29.8843 +-3268.32 -14.8702 228.059 +-378.992 -1.50822 23.131 +-379.08 -1.29263 19.8246 +-3273.18 -9.29848 142.607 +-3274.3 -7.43963 114.099 +-3275.18 -5.58022 85.5818 +-3275.8 -3.72039 57.0581 +-144.195 -0.0818762 1.2557 +95.8 0 0 +95.7964 -0.0468665 0.834687 +95.7854 -0.0937294 1.66931 +95.7672 -0.140585 2.50381 +96.5412 -0.188995 3.36599 +95.7088 -0.234261 4.17217 +96.5675 -0.283715 5.05293 +95.7211 -0.328207 5.84534 +95.5666 -0.374632 6.67216 +96.5016 -0.425769 7.5829 +96.4316 -0.472962 8.42341 +96.3544 -0.52012 9.26328 +96.2697 -0.56724 10.1025 +96.1778 -0.614314 10.9409 +96.0785 -0.661343 11.7784 +95.9719 -0.708316 12.615 +95.8579 -0.755244 13.4508 +95.6378 -0.80128 14.2707 +96.3984 -0.855928 15.244 +96.2615 -0.903052 16.0833 +96.1172 -0.950115 16.9214 +95.6707 -0.994032 17.7036 +95.6105 -1.04187 18.5556 +95.4447 -1.0886 19.3879 +95.2716 -1.13525 20.2188 +95.8723 -1.19153 21.221 +95.9755 -1.24217 22.1229 +95.7784 -1.28907 22.9582 +95.3801 -1.33316 23.7435 +96.0402 -1.39241 24.7986 +96.013 -1.44224 25.6861 +95.4958 -1.48466 26.4417 +96.2223 -1.54677 27.5479 +95.9779 -1.59379 28.3852 +95.7261 -1.64068 29.2204 +96.23 -1.70094 30.2935 +95.9616 -1.74795 31.1308 +95.6859 -1.79482 31.9657 +96.2538 -1.85799 33.0907 +95.8666 -1.90314 33.8948 +96.2245 -1.96339 34.9678 +95.9152 -2.01039 35.8048 +96.6256 -2.07934 37.0328 +96.2982 -2.12653 37.8732 +96.798 -2.19245 39.0474 +96.453 -2.23973 39.8894 +96.9292 -2.30654 41.0793 +96.7498 -2.35834 42.0018 +96.4704 -2.40787 42.8839 +96.0919 -2.45497 43.7227 +96.4311 -2.52084 44.8959 +96.0351 -2.56792 45.7344 +96.4406 -2.63692 46.9632 +96.0265 -2.684 47.8017 +95.605 -2.73087 48.6366 +95.8859 -2.79825 49.8365 +96.3296 -2.87137 51.1388 +95.7911 -2.91571 51.9285 +96.1207 -2.98692 53.1968 +95.478 -3.02831 53.9339 +95.003 -3.0749 54.7637 +95.8993 -3.16679 56.4002 +95.4027 -3.21358 57.2336 +95.4957 -3.28063 58.4278 +95.7446 -3.35397 59.7338 +95.2189 -3.40068 60.5657 +95.4407 -3.47461 61.8824 +95.5633 -3.54592 63.1525 +95.0077 -3.59254 63.9827 +95.1866 -3.66746 65.317 +95.1855 -3.73639 66.5448 +95.2515 -3.80886 67.8354 +95.464 -3.88827 69.2496 +95.4982 -3.96149 70.5538 +95.6765 -4.0418 71.984 +95.5197 -4.10893 73.1796 +95.6645 -4.19002 74.6238 +95.5565 -4.26108 75.8895 +95.4335 -4.33236 77.159 +95.6043 -4.41811 78.6862 +94.9129 -4.46472 79.5162 +95.583 -4.57651 81.5072 +95.4708 -4.65252 82.861 +95.417 -4.73248 84.285 +95.4198 -4.81649 85.7813 +95.2562 -4.89329 87.149 +95.1491 -4.97411 88.5885 +95.0966 -5.05906 90.1014 +94.8809 -5.13654 91.4813 +94.7197 -5.21813 92.9344 +94.5402 -5.29995 94.3915 +94.9732 -5.41796 96.4934 +94.8209 -5.50455 98.0355 +94.5799 -5.58732 99.5097 +94.184 -5.66208 100.841 +93.907 -5.74517 102.321 +94.2136 -5.86586 104.47 +94.4896 -5.98729 106.633 +94.1445 -6.07138 108.131 +94.17 -6.18115 110.086 +93.7827 -6.26563 111.59 +93.8851 -6.38481 113.713 +94.0205 -6.50893 115.923 +93.9997 -6.62486 117.988 +93.7037 -6.72359 119.746 +93.5058 -6.83144 121.667 +94.0035 -6.99335 124.551 +92.9113 -7.03904 125.365 +98.3365 -7.5877 135.136 +115.676 -9.0914 161.917 +115.633 -9.25784 164.881 +115.207 -9.39721 167.363 +115.25 -9.57873 170.596 +115.244 -9.76093 173.841 +115.3 -9.95333 177.268 +115.519 -10.1653 181.044 +115.31 -10.3451 184.245 +115.106 -10.5302 187.542 +115.214 -10.7494 191.446 +115.313 -10.9745 195.454 +115.2 -11.1858 199.218 +115.67 -11.4613 204.125 +113.058 -11.4341 203.64 +111.226 -11.4841 204.53 +108.589 -11.449 203.905 +105.971 -11.4121 203.249 +103.828 -11.4236 203.453 +101.599 -11.4238 203.457 +99.4664 -11.4327 203.615 +96.908 -11.3899 202.852 +94.751 -11.3911 202.874 +92.6839 -11.4013 203.056 +91.0277 -11.4616 204.129 +91.473 -11.7936 210.043 +91.392 -12.0701 214.967 +91.1935 -12.3422 219.814 +90.9545 -12.6203 224.766 +90.929 -12.9408 230.474 +91.0613 -13.2988 236.85 +90.5636 -13.5791 241.842 +90.4985 -13.939 248.252 +90.1946 -14.2787 254.301 +89.987 -14.6508 260.93 +89.9559 -15.0718 268.427 +89.6458 -15.4671 275.467 +89.2796 -15.874 282.714 +89.0857 -16.3352 290.928 +89.0388 -16.8511 300.117 +88.6174 -17.3252 308.56 +88.5628 -17.9027 318.845 +88.2314 -18.4597 328.766 +88.1087 -19.0992 340.155 +87.866 -19.7562 351.857 +87.4486 -20.4199 363.677 +87.101 -21.1502 376.683 +86.9221 -21.9801 391.463 +86.4913 -22.8114 406.269 +86.2266 -23.7593 423.151 +85.7877 -24.7416 440.646 +85.3773 -25.8244 459.931 +84.9313 -27.0025 480.912 +84.4714 -28.2981 503.987 +86.1172 -30.4812 542.867 +90.4446 -33.9265 604.227 +85.0348 -33.9195 604.102 +82.1923 -34.9991 623.331 +81.0797 -37.0189 659.303 +80.5101 -39.6137 705.517 +79.2744 -42.2832 753.059 +78.2293 -45.5457 811.164 +77.0021 -49.3407 878.754 +78.9926 -56.2677 1002.12 +73.2303 -58.7085 1045.59 +71.4573 -65.4963 1166.48 +68.8532 -73.6519 1311.73 +65.2415 -83.7697 1491.93 +60.9241 -97.8049 1741.9 +51.4979 -110.25 1963.54 +36.1736 -116.178 2069.12 +28.5873 -183.641 3270.63 +2.00584e-13 -183.648 3270.75 +-28.5873 -183.641 3270.63 +-57.1723 -183.62 3270.25 +-85.7531 -183.585 3269.63 +-114.327 -183.536 3268.75 +-142.893 -183.473 3267.63 +-169.061 -180.843 3220.8 +-155.747 -142.754 2542.44 +-154.329 -123.726 2203.54 +-147.15 -104.817 1866.78 +-134.664 -86.289 1536.8 +-147.507 -85.8792 1529.5 +-171.521 -91.4853 1629.34 +-136.059 -66.9455 1192.29 +-146.95 -67.0935 1194.93 +-169.123 -72.0161 1282.6 +-455.973 -181.883 3239.32 +-128.151 -48.0704 856.129 +-135.55 -47.9781 854.486 +-155.623 -52.1343 928.507 +-166.65 -52.9837 943.634 +-597.131 -180.617 3216.76 +-152.056 -43.8536 781.029 +-155.487 -42.8436 763.041 +-164.521 -43.3911 772.791 +-116.141 -29.3688 523.056 +-119.674 -29.0597 517.55 +-123.866 -28.9237 515.128 +-128.63 -28.9218 515.095 +-134.379 -29.1292 518.788 +-848.072 -177.433 3160.07 +-875.66 -177.012 3152.56 +-903.071 -176.555 3144.43 +-413.328 -78.2248 1393.18 +-957.897 -175.645 3128.21 +-985.202 -175.169 3119.75 +-168.322 -29.0414 517.225 +-146.722 -24.5827 437.815 +-150.087 -24.4358 435.199 +-154.619 -24.4777 435.945 +-394.418 -60.7497 1081.95 +-394.018 -59.0791 1052.19 +-394.097 -57.5548 1025.05 +-410.042 -58.3559 1039.31 +-414.465 -57.5088 1024.23 +-419.536 -56.7806 1011.26 +-422.732 -55.8301 994.328 +-413.303 -53.2871 949.038 +-414.627 -52.2071 929.803 +-415.274 -51.0841 909.802 +-416.321 -50.0508 891.4 +-394.348 -46.3488 825.468 +-416.014 -47.8169 851.615 +-391.985 -44.0746 784.964 +-390.659 -42.982 765.505 +-143.835 -15.4897 275.869 +-145.348 -15.3247 272.931 +-145.533 -15.0263 267.617 +-148.691 -15.0379 267.824 +-151.174 -14.9792 266.779 +-113.35 -11.0062 196.019 +-110.745 -10.5397 187.711 +-110.991 -10.3554 184.43 +-112.076 -10.2529 182.603 +-113.88 -10.2168 181.959 +-115.466 -10.1606 180.96 +-117.261 -10.1226 180.282 +-118.39 -10.0274 178.588 +-120.338 -10.0017 178.128 +-122.4 -9.98399 177.814 +-126.244 -10.1074 180.011 +-489.01 -38.4331 684.489 +-492.505 -38.0018 676.809 +-496.023 -37.5792 669.282 +-499.025 -37.1247 661.188 +-502.776 -36.7324 654.201 +-506.012 -36.3083 646.647 +-509.092 -35.8795 639.011 +-512.078 -35.4505 631.37 +-514.015 -34.9564 622.569 +-532.614 -35.5839 633.746 +-523.065 -34.333 611.468 +-527.143 -33.9954 605.455 +-530.891 -33.6397 599.119 +-162.532 -10.1194 180.226 +-164.641 -10.0726 179.391 +-165.998 -9.97934 177.731 +-545.521 -32.2267 573.955 +-549.266 -31.8861 567.888 +-552.947 -31.5441 561.798 +-556.352 -31.1892 555.477 +-559.474 -30.8215 548.928 +-563.603 -30.5116 543.409 +-566.445 -30.1344 536.691 +-570.236 -29.8103 530.918 +-572.201 -29.3938 523.501 +-587.753 -29.6679 528.383 +-387.659 -19.2271 342.433 +-388.675 -18.9411 337.339 +-386.286 -18.4954 329.401 +-386.086 -18.1616 323.456 +-386.815 -17.8757 318.365 +-385.076 -17.4812 311.338 +-385.356 -17.1839 306.044 +-384.943 -16.8602 300.278 +-384.3 -16.5313 294.42 +-140.959 -5.95472 106.053 +-142.845 -5.92557 105.534 +-142.306 -5.79612 103.228 +-143.203 -5.72633 101.985 +-141.468 -5.55314 98.9009 +-141.75 -5.4615 97.2687 +-143.424 -5.42329 96.5883 +-146.097 -5.42099 96.5473 +-147.271 -5.36152 95.4882 +-380.96 -13.6057 242.316 +-382.554 -13.401 238.671 +-382.921 -13.1548 234.285 +-383.411 -12.915 230.015 +-381.788 -12.6074 224.536 +-381.398 -12.3445 219.854 +-381.129 -12.0884 215.293 +-381.509 -11.8553 211.141 +-380.264 -11.5746 206.142 +-382.051 -11.3881 202.821 +-381.503 -11.1335 198.286 +-715.389 -20.4345 363.936 +-736.978 -20.599 366.866 +-723.349 -19.7781 352.246 +-405.983 -10.8557 193.339 +-403.76 -10.5548 187.98 +-403.841 -10.3174 183.752 +-403.422 -10.0693 179.333 +-404.332 -9.85584 175.532 +-405.114 -9.64018 171.691 +-406.507 -9.43948 168.116 +-404.716 -9.16675 163.259 +-406.499 -8.97659 159.872 +-406.014 -8.73721 155.609 +-404.83 -8.48528 151.122 +-405.665 -8.27729 147.418 +-404.676 -8.0336 143.078 +-405.911 -7.83532 139.546 +-404.555 -7.58843 135.149 +-403.628 -7.35213 130.941 +-404.853 -7.15609 127.449 +-385.2 -6.60205 117.582 +-380.364 -6.31625 112.492 +-379.794 -6.10518 108.733 +-379.285 -5.8967 105.02 +-377.87 -5.6761 101.091 +-380.482 -5.51629 98.2446 +-380.938 -5.32452 94.8291 +-379.516 -5.10786 90.9704 +-379.42 -4.91065 87.4581 +-378.9 -4.70907 83.8681 +-379.619 -4.52353 80.5636 +-379.819 -4.33206 77.1535 +-377.828 -4.1172 73.3269 +-379.831 -3.94651 70.2869 +-379.545 -3.75178 66.8188 +-379.621 -3.56133 63.4269 +-379.371 -3.36846 59.992 +-379.881 -3.18274 56.6843 +-378.183 -2.97961 53.0666 +-379.029 -2.79742 49.8217 +-379.947 -2.6153 46.5782 +-379.445 -2.42361 43.1643 +-378.416 -2.22969 39.7106 +-378.748 -2.04448 36.4119 +-379.052 -1.85911 33.1106 +-379.327 -1.67361 29.8068 +-378.276 -1.48289 26.4101 +-379.291 -1.30051 23.1619 +-3271.81 -9.61254 171.198 +-378.439 -0.926283 16.497 +-3274.3 -6.40998 114.161 +-3275.18 -4.80792 85.6286 +-3275.8 -3.20549 57.0894 +-144.395 -0.0706421 1.25813 +95.8 0 0 +95.7964 -0.0393344 0.835076 +95.7854 -0.0786659 1.67009 +96.5669 -0.118977 2.52589 +95.7416 -0.157308 3.33967 +96.608 -0.198459 4.21332 +96.5675 -0.238118 5.05529 +95.7211 -0.27546 5.84807 +96.5642 -0.317706 6.74495 +96.5016 -0.357342 7.58643 +96.4316 -0.396951 8.42734 +96.3544 -0.43653 9.26759 +96.2697 -0.476077 10.1072 +95.2835 -0.510791 10.8442 +96.0785 -0.555057 11.7839 +95.9719 -0.59448 12.6209 +95.8579 -0.633867 13.4571 +96.6268 -0.679459 14.425 +95.4107 -0.711011 15.0949 +96.2615 -0.75792 16.0908 +96.1172 -0.797419 16.9293 +95.769 -0.835135 17.73 +95.6105 -0.874427 18.5642 +95.4447 -0.913649 19.3969 +96.1519 -0.961607 20.4151 +95.9699 -1.00105 21.2524 +95.7806 -1.04042 22.0882 +95.584 -1.0797 22.9223 +95.3801 -1.11891 23.7546 +96.0402 -1.16863 24.8102 +95.8198 -1.20802 25.6464 +95.5921 -1.24731 26.4806 +96.1262 -1.29689 27.5332 +95.882 -1.33631 28.37 +95.7261 -1.377 29.234 +95.3717 -1.41484 30.0373 +95.9616 -1.46703 31.1453 +95.591 -1.50488 31.9489 +95.4028 -1.5456 32.8134 +95.8666 -1.59729 33.9106 +96.2245 -1.64785 34.9841 +95.9152 -1.68729 35.8215 +96.6256 -1.74516 37.05 +96.2052 -1.78304 37.8542 +95.9635 -1.82424 38.7289 +96.453 -1.87978 39.908 +96.2848 -1.92298 40.8252 +96.8415 -1.9812 42.0613 +96.4704 -2.02089 42.9038 +96.0919 -2.06042 43.7431 +95.7061 -2.0998 44.5791 +96.0351 -2.15522 45.7557 +96.4406 -2.21313 46.9851 +96.0265 -2.25264 47.824 +96.4069 -2.31121 49.0674 +95.8859 -2.34853 49.8597 +96.0647 -2.40328 51.0219 +95.6153 -2.44263 51.8574 +95.9458 -2.50232 53.1247 +95.478 -2.54163 53.9591 +95.7824 -2.6019 55.2388 +95.9855 -2.66024 56.4772 +96.1742 -2.71893 57.7233 +95.581 -2.75586 58.5072 +95.8294 -2.81744 59.8146 +95.2189 -2.85414 60.5939 +95.4407 -2.9162 61.9113 +95.5633 -2.97605 63.1819 +95.6709 -3.03622 64.4594 +95.1042 -3.07539 65.2909 +95.1855 -3.13591 66.5758 +95.3329 -3.19946 67.925 +95.464 -3.26337 69.2819 +94.8551 -3.30244 70.1114 +94.9578 -3.36675 71.4766 +95.5991 -3.45144 73.2746 +95.6645 -3.51663 74.6585 +95.5565 -3.57627 75.9248 +95.589 -3.64202 77.3207 +95.45 -3.70208 78.5958 +94.9129 -3.74718 79.5532 +95.583 -3.84101 81.5452 +94.867 -3.88011 82.3753 +95.417 -3.97191 84.3243 +94.751 -4.01409 85.2197 +95.33 -4.11005 87.2571 +94.564 -4.14904 88.0847 +95.024 -4.24277 90.0745 +94.8809 -4.31104 91.5239 +94.7197 -4.37951 92.9777 +95.1766 -4.47812 95.0712 +94.833 -4.54052 96.3959 +94.8209 -4.6199 98.0812 +94.5799 -4.68937 99.556 +94.184 -4.75212 100.888 +94.4475 -4.84956 102.957 +94.8158 -4.95462 105.187 +94.4234 -5.02153 106.608 +94.0789 -5.09206 108.105 +94.2999 -5.19491 110.289 +93.7184 -5.25504 111.565 +93.8851 -5.35869 113.766 +93.8946 -5.45552 115.822 +93.9997 -5.56016 118.043 +93.6421 -5.6393 119.723 +93.5058 -5.73355 121.724 +93.5822 -5.84313 124.05 +92.9113 -5.90778 125.423 +98.3953 -6.37202 135.279 +115.734 -7.63411 162.073 +115.576 -7.76614 164.876 +115.207 -7.88696 167.441 +115.306 -8.04322 170.759 +115.796 -8.23147 174.755 +115.3 -8.3537 177.35 +115.519 -8.53165 181.128 +115.257 -8.67849 184.246 +115.159 -8.84185 187.714 +115.266 -9.02592 191.622 +115.414 -9.21882 195.717 +115.15 -9.38407 199.225 +115.67 -9.61937 204.221 +113.058 -9.5965 203.735 +110.749 -9.59706 203.747 +108.589 -9.60897 204 +106.387 -9.6156 204.141 +103.828 -9.58765 203.547 +101.242 -9.55415 202.836 +99.4664 -9.59532 203.71 +96.908 -9.55938 202.947 +94.751 -9.56041 202.969 +92.7254 -9.57326 203.242 +90.987 -9.61527 204.134 +91.473 -9.89824 210.141 +91.392 -10.1303 215.068 +90.9256 -10.3283 219.271 +91.2167 -10.6226 225.519 +90.929 -10.861 230.581 +91.0613 -11.1615 236.96 +90.4936 -11.388 241.768 +90.1907 -11.659 247.523 +90.0945 -11.9706 254.137 +90.1173 -12.3141 261.43 +89.5751 -12.596 267.416 +89.5222 -12.9634 275.216 +89.3698 -13.3363 283.131 +88.9979 -13.6964 290.777 +88.9252 -14.1249 299.874 +88.6725 -14.5499 308.896 +88.5094 -15.0164 318.801 +88.1796 -15.4839 328.727 +88.1087 -16.0297 340.314 +87.6967 -16.5492 351.342 +87.472 -17.1428 363.943 +87.101 -17.7511 376.858 +86.9005 -18.4431 391.549 +86.4497 -19.1362 406.264 +86.2665 -19.9501 423.543 +85.5778 -20.7145 439.772 +85.3956 -21.6787 460.243 +84.7924 -22.6258 480.349 +84.4879 -23.7549 504.321 +86.1172 -25.5825 543.12 +90.4446 -28.4741 604.509 +85.0208 -28.4635 604.285 +82.0749 -29.3324 622.731 +81.1772 -31.1068 660.403 +80.4988 -33.2427 705.747 +79.2744 -35.4877 753.41 +78.2197 -38.2213 811.443 +77.0021 -41.4111 879.163 +78.9926 -47.2247 1002.59 +73.1606 -49.2268 1045.09 +71.4024 -54.9279 1166.13 +68.9055 -61.8622 1313.34 +65.1194 -70.1751 1489.83 +60.8577 -81.9971 1740.81 +51.5293 -92.5877 1965.65 +36.1806 -97.5257 2070.48 +28.5873 -154.128 3272.15 +2.00584e-13 -154.133 3272.27 +-28.5873 -154.128 3272.15 +-57.1723 -154.11 3271.77 +-85.7531 -154.081 3271.15 +-114.327 -154.039 3270.27 +-142.893 -153.986 3269.16 +-169.108 -151.822 3223.2 +-155.802 -119.854 2544.52 +-154.35 -103.855 2204.87 +-147.213 -88.0092 1868.45 +-134.725 -72.4543 1538.21 +-147.535 -72.0915 1530.51 +-171.594 -76.8154 1630.8 +-136.161 -56.2288 1193.75 +-146.816 -56.2594 1194.4 +-169.084 -60.4281 1282.9 +-427.707 -143.189 3039.92 +-128.106 -40.3309 856.231 +-135.55 -40.2675 854.884 +-153.362 -43.1199 915.442 +-166.268 -44.3666 941.909 +-597.131 -151.589 3218.26 +-152.208 -36.8427 782.177 +-155.627 -35.9904 764.082 +-165.56 -36.6477 778.036 +-116.271 -24.6765 523.885 +-119.674 -24.3894 517.791 +-124.216 -24.3439 516.825 +-128.581 -24.2646 515.141 +-134.129 -24.4022 518.063 +-848.072 -148.918 3161.54 +-875.553 -148.546 3153.64 +-903.071 -148.18 3145.89 +-413.64 -65.703 1394.88 +-957.897 -147.416 3129.67 +-985.323 -147.035 3121.58 +-168.322 -24.3741 517.466 +-146.658 -20.623 437.83 +-149.957 -20.4908 435.024 +-154.519 -20.5305 435.866 +-467.165 -60.3909 1282.11 +-395.104 -49.7208 1055.58 +-430.507 -52.7678 1120.27 +-409.712 -48.9379 1038.96 +-414.165 -48.2312 1023.95 +-419.995 -47.7075 1012.84 +-422.732 -46.8575 994.791 +-412.546 -44.6412 947.739 +-415.075 -43.8641 931.241 +-415.274 -42.8742 910.226 +-414.884 -41.862 888.737 +-394.477 -38.9127 826.123 +-415.707 -40.1025 851.382 +-433.124 -40.8735 867.751 +-394.291 -36.4096 772.982 +-143.327 -12.9544 275.023 +-145.348 -12.8618 273.058 +-145.533 -12.6114 267.742 +-148.4 -12.5965 267.425 +-151.716 -12.617 267.86 +-112.6 -9.17624 194.813 +-110.339 -8.81344 187.111 +-111.042 -8.6952 184.6 +-111.971 -8.59714 182.519 +-113.456 -8.54285 181.366 +-115.573 -8.5356 181.212 +-116.553 -8.44446 179.277 +-118.501 -8.42372 178.837 +-119.947 -8.36697 177.632 +-122.4 -8.37944 177.897 +-126.187 -8.47914 180.013 +-489.01 -32.2564 684.808 +-492.505 -31.8945 677.124 +-495.785 -31.5246 669.273 +-499.206 -31.1696 661.734 +-502.228 -30.7955 653.792 +-506.012 -30.4731 646.949 +-509.092 -30.1132 639.308 +-512.267 -29.7641 631.896 +-514.396 -29.3602 623.322 +-532.614 -29.8651 634.041 +-523.26 -28.826 611.98 +-527.143 -28.5319 605.737 +-530.56 -28.2158 599.025 +-162.599 -8.4966 180.384 +-164.912 -8.46766 179.77 +-166.953 -8.42372 178.837 +-546.003 -27.0714 574.73 +-549.266 -26.7616 568.152 +-552.947 -26.4746 562.06 +-556.139 -26.1667 555.523 +-559.474 -25.8681 549.184 +-563.171 -25.5884 543.246 +-566.662 -25.3012 537.147 +-570.529 -25.0322 531.438 +-571.906 -24.6571 523.475 +-587.53 -24.8905 528.429 +-388.708 -16.1807 343.519 +-386.487 -15.8075 335.596 +-384.841 -15.4649 328.322 +-382.869 -15.1157 320.909 +-386.121 -14.9759 317.941 +-385.62 -14.6925 311.923 +-385.748 -14.4369 306.497 +-385.337 -14.165 300.725 +-385.014 -13.9003 295.105 +-140.959 -4.99772 106.102 +-142.765 -4.97048 105.524 +-142.468 -4.87017 103.394 +-143.203 -4.80604 102.033 +-141.468 -4.66068 98.947 +-141.667 -4.5811 97.2574 +-143.506 -4.55433 96.6891 +-146.097 -4.54977 96.5923 +-146.935 -4.48961 95.3151 +-381.635 -11.4393 242.859 +-383.742 -11.2822 239.522 +-380.704 -10.9767 233.038 +-380.325 -10.7521 228.269 +-382.994 -10.6147 225.351 +-381.398 -10.3606 219.956 +-381.825 -10.1642 215.787 +-381.509 -9.94999 211.24 +-380.704 -9.72561 206.476 +-380.55 -9.52033 202.118 +-381.149 -9.33546 198.193 +-715.122 -17.144 363.969 +-737.784 -17.3074 367.438 +-722.63 -16.583 352.06 +-402.192 -9.02601 191.624 +-407.204 -8.93407 189.672 +-403.659 -8.65535 183.754 +-404.518 -8.47397 179.904 +-405.341 -8.29254 176.052 +-405.851 -8.10556 172.082 +-405.214 -7.89722 167.659 +-403.789 -7.67589 162.96 +-406.499 -7.53394 159.947 +-403.493 -7.28754 154.715 +-405.673 -7.13641 151.507 +-405.008 -6.93579 147.248 +-404.959 -6.74721 143.244 +-404.587 -6.55467 139.157 +-406.167 -6.39428 135.751 +-404.484 -6.18363 131.279 +-403.995 -5.99327 127.238 +-383.956 -5.52314 117.257 +-379.788 -5.29311 112.373 +-380.467 -5.13309 108.976 +-380.538 -4.96535 105.415 +-380.188 -4.7931 101.758 +-379.611 -4.61915 98.0653 +-380.453 -4.46311 94.7525 +-379.71 -4.28916 91.0594 +-379.03 -4.11722 87.4091 +-380.658 -3.9706 84.2963 +-380.499 -3.80534 80.788 +-380.701 -3.64428 77.3686 +-379.595 -3.47167 73.7041 +-379.831 -3.31225 70.3196 +-380.825 -3.15944 67.0754 +-379.227 -2.98587 63.3905 +-379.569 -2.82858 60.0512 +-378.991 -2.66498 56.5779 +-379.075 -2.50665 53.2165 +-378.633 -2.34538 49.7928 +-378.557 -2.18696 46.4295 +-378.948 -2.03145 43.1279 +-378.018 -1.86938 39.6873 +-378.35 -1.7141 36.3907 +-379.55 -1.56238 33.1695 +-378.43 -1.40131 29.7501 +-379.174 -1.24752 26.485 +-377.994 -1.08777 23.0935 +-378.381 -0.933019 19.8081 +-379.738 -0.780086 16.5613 +-3274.3 -5.37982 114.214 +-3275.18 -4.03523 85.6685 +-3275.8 -2.69032 57.116 +-145.094 -0.0595765 1.26482 +95.8 0 0 +95.7964 -0.0318007 0.835397 +95.7854 -0.0635989 1.67073 +96.5669 -0.0961888 2.52686 +96.5412 -0.12824 3.36885 +96.608 -0.160448 4.21494 +95.7686 -0.190918 5.01539 +96.5196 -0.224559 5.89912 +96.4644 -0.25659 6.74057 +96.5016 -0.2889 7.58934 +96.4316 -0.320923 8.43057 +96.3544 -0.352921 9.27116 +96.2697 -0.384894 10.1111 +96.1778 -0.416835 10.9502 +95.9792 -0.448282 11.7763 +95.9719 -0.480619 12.6258 +95.8579 -0.512461 13.4622 +96.6268 -0.549321 14.4305 +95.4107 -0.57483 15.1007 +96.0642 -0.6115 16.064 +96.1172 -0.644689 16.9358 +95.6707 -0.674489 17.7187 +95.5123 -0.706221 18.5523 +96.3266 -0.745485 19.5837 +95.2716 -0.770313 20.2359 +95.0912 -0.801908 21.0659 +95.7806 -0.841145 22.0967 +96.4591 -0.8809 23.141 +95.3801 -0.904602 23.7637 +96.0402 -0.944801 24.8197 +96.013 -0.978614 25.708 +95.5921 -1.00841 26.4908 +96.2223 -1.04955 27.5713 +95.882 -1.08036 28.3809 +95.6305 -1.11215 29.216 +95.4671 -1.145 30.0789 +95.9616 -1.18605 31.1572 +95.6859 -1.21786 31.9928 +96.2538 -1.26072 33.1188 +95.8666 -1.29136 33.9236 +96.4125 -1.33484 35.0659 +96.1026 -1.36679 35.9053 +96.6256 -1.41091 37.0643 +96.2982 -1.44293 37.9054 +95.9635 -1.47484 38.7437 +96.453 -1.51974 39.9233 +96.2848 -1.55467 40.8409 +95.9245 -1.58658 41.679 +96.4704 -1.63383 42.9203 +96.1829 -1.66737 43.8014 +96.4311 -1.71048 44.9341 +96.1253 -1.74407 45.8162 +96.4406 -1.78925 47.0032 +96.0265 -1.82119 47.8423 +96.4069 -1.86854 49.0862 +95.8859 -1.89872 49.8789 +96.2413 -1.94655 51.1354 +95.7911 -1.97842 51.9727 +96.1207 -2.02674 53.242 +95.478 -2.05482 53.9798 +95.7824 -2.10356 55.26 +95.8993 -2.14879 56.4481 +95.4027 -2.18054 57.2822 +95.581 -2.22802 58.5297 +95.7446 -2.27579 59.7846 +95.3032 -2.30953 60.671 +95.3568 -2.35558 61.8807 +95.4799 -2.40394 63.1511 +95.7538 -2.45682 64.5401 +95.7635 -2.50359 65.7688 +95.1855 -2.53528 66.6014 +94.6816 -2.56899 67.4869 +95.464 -2.63834 69.3085 +94.8551 -2.66992 70.1383 +95.6765 -2.74251 72.0452 +94.9644 -2.77185 72.816 +95.5857 -2.84074 74.6257 +94.9304 -2.87236 75.4563 +95.589 -2.94446 77.3504 +94.9098 -2.97608 78.181 +94.9129 -3.02948 79.5838 +94.8987 -3.0831 80.9924 +94.9425 -3.13944 82.4725 +95.417 -3.21117 84.3567 +94.6767 -3.24272 85.1855 +94.5927 -3.29715 86.6155 +95.2223 -3.37772 88.7319 +95.024 -3.43014 90.1091 +94.8809 -3.48534 91.5591 +94.7197 -3.5407 93.0134 +94.5402 -3.59621 94.4718 +94.9732 -3.67629 96.5755 +94.8209 -3.73505 98.1188 +94.5799 -3.79121 99.5943 +94.7978 -3.86697 101.584 +94.4475 -3.92072 102.996 +94.2805 -3.98303 104.633 +94.4896 -4.0626 106.724 +94.7349 -4.14549 108.901 +94.105 -4.19125 110.103 +93.7827 -4.25147 111.685 +93.9488 -4.33527 113.887 +94.0205 -4.41656 116.022 +93.8752 -4.48925 117.932 +93.7037 -4.56221 119.848 +93.5666 -4.6384 121.85 +94.0035 -4.74525 124.657 +92.257 -4.74263 124.588 +98.3365 -5.14854 135.251 +115.676 -6.16886 162.055 +115.633 -6.2818 165.021 +115.264 -6.37952 167.589 +115.25 -6.49953 170.741 +115.355 -6.62951 174.156 +115.3 -6.75371 177.419 +115.519 -6.89757 181.198 +115.363 -7.02276 184.486 +115.159 -7.14836 187.786 +115.266 -7.29717 191.695 +114.957 -7.42365 195.018 +115.15 -7.58673 199.302 +115.178 -7.74383 203.429 +113.058 -7.75847 203.813 +111.226 -7.79237 204.704 +108.589 -7.76855 204.078 +105.971 -7.74356 203.422 +103.828 -7.75132 203.626 +101.644 -7.75486 203.718 +99.0719 -7.72675 202.98 +96.908 -7.72846 203.025 +94.751 -7.7293 203.047 +92.7254 -7.73968 203.32 +91.0277 -7.77711 204.303 +91.5528 -8.00938 210.405 +91.392 -8.19002 215.15 +91.1552 -8.37117 219.909 +91.2167 -8.58803 225.606 +91.2222 -8.80911 231.413 +91.0613 -9.02373 237.051 +90.8088 -9.23887 242.703 +90.1907 -9.42595 247.618 +90.0945 -9.67784 254.235 +90.1173 -9.95557 261.531 +89.7972 -10.2088 268.182 +89.6149 -10.4914 275.606 +89.46 -10.7928 283.526 +89.0272 -11.0768 290.984 +88.84 -11.4086 299.702 +88.645 -11.7595 308.918 +88.5094 -12.1403 318.923 +88.4643 -12.5587 329.914 +88.0586 -12.9522 340.252 +87.6967 -13.3795 351.477 +87.4019 -13.8483 363.792 +87.1235 -14.3549 377.101 +86.9005 -14.9106 391.699 +86.4497 -15.471 406.42 +86.0871 -16.0955 422.825 +85.616 -16.7545 440.137 +85.2498 -17.4967 459.634 +84.9313 -18.3222 481.32 +84.4879 -19.2051 504.515 +85.8199 -20.6113 541.454 +90.548 -23.0467 605.433 +85.0348 -23.0156 604.616 +82.0879 -23.7181 623.069 +81.2869 -25.1829 661.549 +80.5894 -26.9059 706.812 +79.2639 -28.687 753.6 +78.143 -30.8704 810.96 +76.9237 -33.4454 878.605 +79.0789 -38.2212 1004.06 +73.1536 -39.7945 1045.39 +71.3535 -44.3771 1165.78 +68.8165 -49.949 1312.15 +65.1586 -56.7686 1491.3 +60.8263 -66.2579 1740.58 +51.5084 -74.8239 1965.61 +36.1806 -78.8465 2071.28 +28.5873 -124.607 3273.41 +2.00584e-13 -124.612 3273.53 +-28.5873 -124.607 3273.41 +-57.1723 -124.593 3273.03 +-85.7531 -124.569 3272.41 +-114.327 -124.536 3271.53 +-142.893 -124.493 3270.41 +-169.05 -122.701 3223.34 +-155.778 -96.883 2545.1 +-154.371 -83.9753 2206.01 +-147.228 -71.1603 1869.37 +-134.481 -58.4709 1536.02 +-147.583 -58.3028 1531.6 +-171.688 -62.1367 1632.32 +-136.07 -45.4288 1193.41 +-146.816 -45.484 1194.85 +-169.018 -48.8352 1282.89 +-429.391 -116.219 3053.06 +-128.151 -32.6176 856.856 +-135.597 -32.5663 855.508 +-153.379 -34.8648 915.892 +-568.924 -122.734 3224.19 +-597.131 -122.555 3219.5 +-152.075 -29.7601 781.791 +-155.467 -29.0673 763.592 +-166.433 -29.7848 782.44 +-116.38 -19.9687 524.574 +-119.674 -19.7181 517.99 +-124.193 -19.6776 516.927 +-128.606 -19.6209 515.436 +-134.204 -19.7395 518.551 +-848.072 -120.395 3162.76 +-875.553 -120.094 3154.86 +-903.071 -119.799 3147.1 +-413.782 -53.1367 1395.89 +-957.897 -119.182 3130.87 +-985.202 -118.859 3122.4 +-168.322 -19.7057 517.665 +-146.658 -16.6731 437.998 +-150.022 -16.5734 435.38 +-154.553 -16.6019 436.127 +-466.789 -48.7846 1281.56 +-1147.45 -116.742 3066.79 +-394.742 -39.117 1027.6 +-410.445 -39.6355 1041.22 +-414.128 -38.99 1024.26 +-419.88 -38.5594 1012.95 +-422.81 -37.8898 995.357 +-413.184 -36.1469 949.57 +-414.139 -35.3828 929.499 +-415.025 -34.6417 910.03 +-415.603 -33.9028 890.618 +-414.711 -33.0734 868.831 +-415.664 -32.4182 851.62 +-392.922 -29.9777 787.509 +-393.247 -29.3581 771.231 +-143.373 -10.4766 275.218 +-145.348 -10.3984 273.163 +-145.533 -10.1959 267.845 +-148.4 -10.1838 267.527 +-151.913 -10.2137 268.311 +-112.25 -7.39566 194.282 +-110.796 -7.15491 187.958 +-111.403 -7.05262 185.271 +-111.971 -6.95052 182.589 +-113.456 -6.90663 181.436 +-115.358 -6.88795 180.945 +-116.825 -6.84303 179.765 +-118.39 -6.804 178.74 +-120.338 -6.7865 178.28 +-122.457 -6.77764 178.047 +-126.129 -6.85204 180.002 +-488.836 -26.069 684.826 +-492.505 -25.7857 677.384 +-495.487 -25.4714 669.128 +-499.206 -25.1996 661.989 +-502.776 -24.9243 654.757 +-505.704 -24.6216 646.804 +-509.404 -24.3605 639.945 +-512.078 -24.0545 631.906 +-514.206 -23.728 623.33 +-533.192 -24.1713 634.974 +-523.26 -23.3049 612.216 +-527.143 -23.0672 605.97 +-531.355 -22.8458 600.153 +-162.866 -6.88053 180.75 +-165.52 -6.8711 180.502 +-168.454 -6.87152 180.513 +-545.521 -21.8671 574.443 +-549.475 -21.6441 568.586 +-552.947 -21.4039 562.276 +-556.564 -21.1711 556.161 +-559.474 -20.9136 549.395 +-562.955 -20.6795 543.247 +-566.808 -20.4604 537.491 +-570.748 -20.2456 531.847 +-571.316 -19.914 523.136 +-388.59 -13.3094 349.635 +-384.289 -12.9329 339.744 +-387.845 -12.8248 336.905 +-385.526 -12.5251 329.032 +-385.32 -12.2988 323.088 +-385.735 -12.0955 317.746 +-385.62 -11.8784 312.043 +-385.591 -11.6671 306.491 +-384.707 -11.4332 300.348 +-384.697 -11.2287 294.974 +-141.199 -4.04739 106.324 +-142.845 -4.02072 105.624 +-142.225 -3.93068 103.258 +-143.203 -3.88553 102.072 +-141.549 -3.7702 99.0423 +-141.667 -3.70367 97.2947 +-143.009 -3.66927 96.391 +-146.597 -3.69094 96.9603 +-147.019 -3.63178 95.4061 +-380.623 -9.22381 242.308 +-380.095 -9.03464 237.338 +-380.704 -8.87435 233.127 +-382.211 -8.73585 229.489 +-381.012 -8.53721 224.271 +-381.484 -8.37809 220.091 +-380.345 -8.18557 215.033 +-380.722 -8.02767 210.885 +-380.704 -7.86285 206.555 +-380.55 -7.69689 202.196 +-382.302 -7.57029 198.87 +-714.765 -13.8535 363.927 +-737.784 -13.9925 367.579 +-723.08 -13.4152 352.415 +-403.817 -7.32673 192.472 +-403.76 -7.16183 188.14 +-407.117 -7.05753 185.4 +-405.706 -6.87106 180.501 +-403.965 -6.68151 175.522 +-402.629 -6.50109 170.782 +-406.599 -6.40649 168.297 +-406.014 -6.23992 163.921 +-404.546 -6.0617 159.24 +-403.96 -5.89856 154.954 +-404.83 -5.75758 151.25 +-405.759 -5.61775 147.577 +-403.922 -5.44095 142.932 +-405.155 -5.30667 139.405 +-404.081 -5.14302 135.106 +-404.104 -4.99456 131.206 +-404.757 -4.85454 127.528 +-384.721 -4.47419 117.536 +-379.98 -4.28148 112.474 +-380.467 -4.14994 109.018 +-379.574 -4.00418 105.189 +-380.575 -3.87903 101.901 +-380.288 -3.74111 98.2781 +-380.065 -3.60461 94.6922 +-379.516 -3.46587 91.0478 +-380.297 -3.33976 87.7349 +-381.048 -3.2134 84.4153 +-378.543 -3.06069 80.4036 +-379.427 -2.93643 77.1394 +-380.086 -2.81037 73.8277 +-381.11 -2.68687 70.5834 +-379.939 -2.54837 66.945 +-379.621 -2.4165 63.4808 +-379.371 -2.28563 60.043 +-379.485 -2.15736 56.6735 +-377.985 -2.02072 53.084 +-377.245 -1.88921 49.6293 +-379.053 -1.77041 46.5082 +-379.843 -1.64624 43.2463 +-378.913 -1.51491 39.7965 +-378.748 -1.38726 36.4429 +-379.55 -1.26313 33.1823 +-378.928 -1.13441 29.8007 +-377.778 -1.00487 26.3977 +-3270.19 -7.60829 199.868 +-379.08 -0.755709 19.8523 +-378.739 -0.629017 16.5241 +-3274.3 -4.34942 114.258 +-146.25 -0.145678 3.82692 +-145.078 -0.0963277 2.53051 +-144.095 -0.0478337 1.25658 +95.8 0 0 +95.6964 -0.0242375 0.834777 +95.7854 -0.0485239 1.67124 +96.6669 -0.0734649 2.53024 +96.6411 -0.0979445 3.37336 +95.7088 -0.121277 4.17698 +96.5675 -0.14688 5.05876 +95.6213 -0.169737 5.84599 +96.4644 -0.19577 6.74261 +96.4019 -0.220193 7.58379 +96.4316 -0.244854 8.43313 +96.3544 -0.269267 9.27396 +96.2697 -0.293661 10.1141 +96.1778 -0.318031 10.9535 +96.0785 -0.342378 11.792 +96.8642 -0.370106 12.747 +95.8579 -0.390991 13.4663 +95.6378 -0.414824 14.2872 +96.4972 -0.443568 15.2772 +96.0642 -0.466554 16.0688 +96.0188 -0.491371 16.9236 +95.6707 -0.514612 17.724 +95.5123 -0.538823 18.5579 +95.3467 -0.562993 19.3903 +95.3694 -0.588327 20.2629 +95.9699 -0.617483 21.267 +95.9755 -0.643072 22.1484 +94.7088 -0.659902 22.728 +95.5741 -0.691586 23.8193 +96.0402 -0.720852 24.8272 +96.013 -0.74665 25.7158 +95.7849 -0.770939 26.5523 +96.3184 -0.801569 27.6073 +95.9779 -0.825107 28.4179 +95.8217 -0.850231 29.2833 +96.23 -0.880577 30.3284 +95.9616 -0.904916 31.1667 +95.7807 -0.930107 32.0343 +96.1592 -0.960944 33.0964 +95.8666 -0.985261 33.9339 +96.4125 -1.01844 35.0765 +95.9152 -1.04078 35.8461 +96.7189 -1.07752 37.1113 +96.2052 -1.09984 37.8802 +96.8907 -1.13613 39.1299 +96.453 -1.15951 39.9354 +96.2848 -1.18616 40.8533 +96.7498 -1.22092 42.0503 +96.4704 -1.24656 42.9333 +96.0919 -1.27094 43.7732 +95.8874 -1.29768 44.6942 +96.0351 -1.32942 45.7871 +96.4406 -1.36514 47.0174 +96.0265 -1.38951 47.8568 +96.4069 -1.42564 49.1011 +95.9746 -1.45 49.9402 +96.2413 -1.48515 51.1508 +95.7911 -1.50947 51.9884 +96.0332 -1.54493 53.2097 +96.2613 -1.58062 54.4391 +95.869 -1.6064 55.3267 +95.9855 -1.64093 56.516 +95.4027 -1.66368 57.2996 +95.581 -1.69991 58.5474 +94.9814 -1.72251 59.326 +95.2189 -1.76054 60.6355 +95.3568 -1.79723 61.8994 +95.5633 -1.83573 63.2254 +95.6709 -1.87285 64.5037 +95.1042 -1.89701 65.3358 +95.1855 -1.93434 66.6215 +95.3329 -1.97354 67.9717 +95.464 -2.01296 69.3295 +95.5786 -2.0526 70.6946 +95.6765 -2.09245 72.067 +95.5991 -2.12897 73.3249 +94.8765 -2.15131 74.0944 +95.5565 -2.20597 75.977 +95.589 -2.24653 77.3738 +94.9098 -2.27065 78.2046 +94.9129 -2.31139 79.6079 +95.6591 -2.37116 81.6662 +95.4708 -2.40862 82.9565 +95.417 -2.45002 84.3822 +94.751 -2.47603 85.2783 +94.5927 -2.51562 86.6417 +95.1491 -2.57511 88.6906 +95.024 -2.61709 90.1364 +94.8809 -2.6592 91.5868 +94.791 -2.70347 93.1116 +94.5402 -2.74379 94.5004 +94.9732 -2.80489 96.6047 +94.8209 -2.84972 98.1485 +94.4422 -2.88836 99.4795 +94.7978 -2.95037 101.615 +94.4475 -2.99138 103.028 +94.2805 -3.03892 104.665 +94.4896 -3.09963 106.756 +94.1445 -3.14317 108.255 +94.17 -3.19999 110.213 +93.7827 -3.24373 111.719 +93.8851 -3.30543 113.844 +93.9575 -3.36742 115.979 +93.9375 -3.42744 118.046 +93.3958 -3.46938 119.491 +93.4449 -3.53436 121.729 +93.4619 -3.5996 123.976 +92.9113 -3.64412 125.509 +98.5128 -3.93519 135.534 +115.676 -4.70664 162.104 +115.69 -4.79518 165.153 +115.717 -4.88649 168.298 +115.361 -4.96372 170.958 +115.355 -5.0581 174.209 +115.681 -5.16989 178.059 +115.519 -5.26262 181.253 +115.31 -5.35567 184.457 +115.159 -5.45397 187.843 +115.317 -5.57 191.839 +115.363 -5.684 195.766 +115.2 -5.79092 199.448 +115.129 -5.90576 203.403 +113.058 -5.91946 203.875 +110.796 -5.92236 203.975 +108.589 -5.92715 204.14 +105.971 -5.90808 203.483 +103.828 -5.914 203.687 +101.644 -5.9167 203.78 +99.5103 -5.92134 203.94 +96.9942 -5.90178 203.266 +94.7933 -5.89984 203.199 +92.6839 -5.90248 203.29 +91.0277 -5.93368 204.365 +91.5129 -6.10822 210.376 +91.392 -6.24872 215.215 +91.1552 -6.38692 219.975 +91.2167 -6.55238 225.674 +91.2222 -6.72106 231.483 +91.0613 -6.8848 237.123 +90.8438 -7.05168 242.871 +90.6011 -7.22442 248.82 +90.1612 -7.38933 254.5 +89.694 -7.56007 260.38 +89.7972 -7.78894 268.263 +89.5222 -7.99631 275.405 +89.1593 -8.20689 282.658 +89.0564 -8.45396 291.167 +88.84 -8.7044 299.793 +88.6725 -8.97486 309.108 +88.4025 -9.25147 318.635 +88.3091 -9.56506 329.435 +88.1588 -9.89333 340.741 +87.6725 -10.2053 351.487 +87.472 -10.5743 364.194 +87.1235 -10.9523 377.215 +86.9438 -11.382 392.013 +86.4497 -11.8039 406.543 +86.2266 -12.3002 423.638 +85.6351 -12.786 440.368 +85.2133 -13.3437 459.576 +84.8966 -13.9735 481.27 +84.3888 -14.6357 504.076 +85.5071 -15.6684 539.643 +90.415 -17.5581 604.726 +84.993 -17.5516 604.502 +82.2184 -18.1249 624.248 +81.1772 -19.1878 660.857 +80.3856 -20.4764 705.238 +79.0967 -21.841 752.238 +78.0568 -23.5271 810.31 +76.8539 -25.4946 878.074 +79.0711 -29.1586 1004.27 +73.0978 -30.3387 1044.91 +71.4085 -33.8843 1167.03 +68.7694 -38.0833 1311.65 +65.1892 -43.3329 1492.45 +60.7321 -50.4742 1738.41 +51.5084 -57.0881 1966.2 +36.1928 -60.1776 2072.61 +28.5873 -95.0713 3274.4 +2.00584e-13 -95.0748 3274.52 +-28.5873 -95.0713 3274.4 +-57.1723 -95.0603 3274.02 +-85.7531 -95.0423 3273.4 +-114.327 -95.0167 3272.52 +-142.893 -94.9842 3271.4 +-169.176 -93.6866 3226.71 +-155.802 -73.9302 2546.27 +-154.385 -64.0762 2206.88 +-147.189 -54.2785 1869.43 +-134.507 -44.6201 1536.78 +-147.478 -44.4514 1530.97 +-171.688 -47.4082 1632.81 +-136.172 -34.6868 1194.67 +-146.877 -34.7173 1195.72 +-169.175 -37.2942 1284.47 +-431.938 -89.1977 3072.11 +-128.151 -24.8861 857.116 +-135.55 -24.8384 855.471 +-152.223 -26.4003 909.268 +-568.924 -93.642 3225.17 +-597.131 -93.5055 3220.47 +-152.246 -22.7316 782.91 +-155.467 -22.1774 763.823 +-166.787 -22.7731 784.339 +-116.38 -15.2355 524.733 +-119.674 -15.0442 518.147 +-123.866 -14.9738 515.722 +-128.581 -14.9672 515.495 +-134.204 -15.0606 518.708 +-848.072 -91.8576 3163.72 +-875.553 -91.6281 3155.81 +-903.071 -91.4029 3148.05 +-413.725 -40.536 1396.12 +-957.897 -90.9315 3131.82 +-985.202 -90.6854 3123.34 +-168.322 -15.0348 517.822 +-146.944 -12.7458 438.984 +-150.282 -12.6669 436.267 +-154.686 -12.6776 436.636 +-467.2 -37.2539 1283.08 +-437.269 -33.9427 1169.04 +-395.997 -29.9399 1031.18 +-410.152 -30.2191 1040.79 +-414.577 -29.7803 1025.68 +-420.11 -29.4355 1013.8 +-423.162 -28.9327 996.487 +-412.386 -27.5256 948.024 +-414.343 -27.0092 930.237 +-414.361 -26.3882 908.85 +-415.983 -25.8904 891.703 +-392.583 -23.8875 822.721 +-392.868 -23.3776 805.16 +-393.68 -22.9162 789.268 +-393.337 -22.4044 771.643 +-144.204 -8.03961 276.896 +-145.301 -7.93104 273.157 +-145.486 -7.77661 267.838 +-148.206 -7.75977 267.258 +-151.617 -7.77754 267.87 +-111.9 -5.62502 193.734 +-110.694 -5.45394 187.842 +-111.403 -5.38092 185.327 +-112.546 -5.33024 183.582 +-113.562 -5.27446 181.66 +-115.412 -5.25772 181.084 +-117.097 -5.23316 180.238 +-118.28 -5.18638 178.627 +-120.338 -5.17787 178.334 +-122.457 -5.17111 178.101 +-125.671 -5.20884 179.4 +-488.836 -19.8898 685.033 +-492.329 -19.6666 677.348 +-495.844 -19.4478 669.813 +-499.326 -19.2311 662.349 +-502.228 -18.9957 654.241 +-505.827 -18.79 647.157 +-509.404 -18.5862 640.138 +-512.267 -18.3595 632.331 +-514.206 -18.1037 623.518 +-533.257 -18.4441 635.242 +-523.26 -17.7809 612.401 +-527.143 -17.5995 606.154 +-530.692 -17.4088 599.586 +-164.405 -5.29925 182.514 +-164.168 -5.19961 179.083 +-164.703 -5.12601 176.548 +-545.521 -16.6838 574.617 +-549.058 -16.5012 568.326 +-552.737 -16.3243 562.232 +-556.634 -16.1549 556.4 +-559.474 -15.9564 549.561 +-563.675 -15.7979 544.105 +-567.025 -15.6166 537.86 +-570.895 -15.4506 532.144 +-572.127 -15.2153 524.037 +-587.53 -15.3533 528.792 +-389.232 -9.9943 344.219 +-386.562 -9.75252 335.891 +-386.21 -9.57322 329.716 +-385.014 -9.37615 322.929 +-384.038 -9.18783 316.443 +-386.319 -9.07925 312.703 +-384.574 -8.8781 305.775 +-385.022 -8.73031 300.685 +-383.983 -8.55122 294.517 +-141.199 -3.08802 106.356 +-142.845 -3.06768 105.655 +-142.225 -2.99898 103.289 +-143.203 -2.96453 102.103 +-141.549 -2.87654 99.0722 +-141.585 -2.82414 97.2676 +-143.341 -2.80603 96.6438 +-146.514 -2.81447 96.9344 +-147.69 -2.78357 95.8705 +-382.141 -7.06553 243.347 +-381.961 -6.92697 238.575 +-380.022 -6.7587 232.78 +-381.011 -6.64424 228.838 +-382.994 -6.5475 225.506 +-382.264 -6.40526 220.607 +-383.74 -6.30107 217.019 +-380.022 -6.11359 210.561 +-380.704 -5.99909 206.618 +-380.992 -5.87929 202.492 +-381.858 -5.76918 198.699 +-715.122 -10.575 364.22 +-737.963 -10.6784 367.78 +-722.361 -10.2252 352.171 +-403.817 -5.59005 192.53 +-404.032 -5.46793 188.324 +-405.752 -5.36661 184.834 +-404.061 -5.22115 179.824 +-404.699 -5.10703 175.894 +-404.654 -4.98505 171.693 +-404.567 -4.8635 167.506 +-406.292 -4.76413 164.084 +-405.29 -4.63338 159.581 +-406.388 -4.52745 155.932 +-406.141 -4.40707 151.786 +-405.853 -4.28714 147.656 +-404.205 -4.15416 143.076 +-406.384 -4.06109 139.87 +-405.788 -3.94053 135.718 +-404.865 -3.81788 131.494 +-404.376 -3.70034 127.445 +-383 -3.39839 117.046 +-380.364 -3.26994 112.622 +-380.083 -3.16307 108.941 +-381.019 -3.06669 105.621 +-380.188 -2.95655 101.828 +-379.611 -2.84925 98.1326 +-379.774 -2.74809 94.6483 +-380.975 -2.65451 91.4254 +-379.03 -2.53964 87.4691 +-379.779 -2.44355 84.1595 +-378.739 -2.33641 80.4695 +-380.309 -2.24561 77.3421 +-378.123 -2.13314 73.4686 +-379.34 -2.04047 70.2769 +-378.265 -1.93575 66.6702 +-380.509 -1.84802 63.6486 +-378.976 -1.74204 59.9986 +-378.101 -1.63999 56.4837 +-379.471 -1.5478 53.3086 +-379.922 -1.45164 49.9965 +-379.649 -1.35288 46.5954 +-379.445 -1.25471 43.2141 +-379.311 -1.15705 39.8504 +-378.35 -1.05732 36.4157 +-377.857 -0.959431 33.0443 +-379.327 -0.866429 29.8411 +-378.875 -0.768907 26.4823 +-146.526 -0.260098 8.95815 +-379.579 -0.577342 19.8845 +-379.738 -0.481184 16.5727 +-3274.3 -3.31846 114.293 +-3275.18 -2.48907 85.7274 +-146.378 -0.0741533 2.55395 +-144.395 -0.0365715 1.25958 +95.8 0 0 +95.7964 -0.0167231 0.835835 +95.6854 -0.0334101 1.66987 +96.5669 -0.050583 2.52818 +96.6411 -0.0675078 3.3741 +96.608 -0.0843751 4.21715 +96.5675 -0.101236 5.05988 +96.5196 -0.118089 5.90221 +95.5666 -0.133678 6.68133 +95.6044 -0.150512 7.52272 +96.4316 -0.168764 8.43499 +96.3544 -0.185591 9.27601 +96.2697 -0.202405 10.1164 +96.2771 -0.219428 10.9672 +96.0785 -0.235983 11.7946 +96.9633 -0.255356 12.7629 +95.8579 -0.269489 13.4693 +96.6268 -0.288872 14.4381 +96.3984 -0.305415 15.2649 +96.2615 -0.32223 16.1054 +96.0188 -0.338675 16.9273 +95.6707 -0.354694 17.728 +95.7087 -0.372146 18.6002 +95.5427 -0.388839 19.4345 +95.3694 -0.405502 20.2673 +96.0675 -0.426031 21.2934 +95.9755 -0.443234 22.1533 +95.6812 -0.459503 22.9664 +95.5741 -0.476672 23.8245 +96.1371 -0.497344 24.8577 +95.9164 -0.514107 25.6956 +95.6885 -0.530832 26.5315 +96.3184 -0.552478 27.6134 +96.0737 -0.569269 28.4526 +95.6305 -0.58485 29.2313 +96.23 -0.606934 30.3351 +95.9616 -0.623709 31.1736 +95.6859 -0.640436 32.0096 +96.2538 -0.662976 33.1362 +95.8666 -0.679087 33.9414 +96.3185 -0.701269 35.0501 +97.0392 -0.725762 36.2742 +96.7189 -0.742673 37.1195 +96.3913 -0.759528 37.9619 +96.0562 -0.776325 38.8014 +95.7139 -0.793064 39.6381 +96.2848 -0.817558 40.8623 +96.0162 -0.835131 41.7406 +96.4704 -0.859184 42.9428 +96.0919 -0.875991 43.7828 +95.8874 -0.894422 44.7041 +96.0351 -0.916294 45.7972 +95.6317 -0.933023 46.6334 +96.0265 -0.957714 47.8674 +95.5159 -0.973533 48.6581 +95.8859 -0.998481 49.905 +96.3296 -1.02457 51.2091 +96.4941 -1.04803 52.3815 +96.1207 -1.06581 53.2699 +95.391 -1.07959 53.9588 +95.869 -1.1072 55.3389 +96.0717 -1.13202 56.5792 +95.4027 -1.14668 57.3122 +95.581 -1.17165 58.5604 +95.7446 -1.19678 59.8159 +95.2189 -1.21344 60.649 +95.3568 -1.23873 61.9131 +95.5633 -1.26527 63.2393 +95.7538 -1.29197 64.5739 +95.1866 -1.30864 65.4068 +95.2674 -1.33438 66.6936 +95.3329 -1.36025 67.9867 +95.464 -1.38743 69.3448 +95.5786 -1.41474 70.7102 +95.5967 -1.44101 72.0229 +94.9644 -1.45764 72.8541 +94.8765 -1.48278 74.1108 +95.0086 -1.51174 75.5582 +94.8895 -1.53708 76.8246 +94.9098 -1.56504 78.2219 +95.6023 -1.60469 80.2038 +95.4309 -1.63041 81.4894 +95.3198 -1.65751 82.8437 +94.7429 -1.67673 83.8046 +95.3455 -1.7173 85.8323 +94.5927 -1.73388 86.6609 +95.2223 -1.77625 88.7784 +95.0966 -1.80519 90.2252 +94.8809 -1.83284 91.6071 +94.7197 -1.86195 93.0622 +95.1766 -1.90388 95.1576 +94.9732 -1.93326 96.6261 +94.8209 -1.96415 98.1703 +94.4422 -1.99079 99.5015 +94.3204 -2.02329 101.126 +94.5151 -2.06327 103.124 +94.2136 -2.09308 104.614 +94.4896 -2.13641 106.78 +94.2101 -2.16791 108.354 +94.2349 -2.2071 110.313 +93.7184 -2.23419 111.667 +93.9488 -2.27979 113.946 +93.8317 -2.31786 115.849 +94.062 -2.36547 118.228 +93.6421 -2.39755 119.832 +93.6275 -2.4408 121.994 +94.0637 -2.49699 124.802 +92.9708 -2.51332 125.618 +98.5128 -2.71231 135.564 +115.734 -3.24565 162.221 +115.69 -3.30506 165.19 +115.32 -3.35645 167.758 +115.306 -3.41958 170.914 +115.355 -3.48627 174.247 +115.355 -3.55324 177.594 +115.627 -3.63062 181.462 +115.31 -3.69137 184.498 +115.159 -3.75912 187.884 +115.317 -3.8391 191.882 +115.465 -3.92113 195.982 +115.2 -3.99136 199.492 +115.129 -4.07052 203.448 +113.058 -4.07996 203.92 +111.178 -4.09602 204.723 +108.589 -4.08526 204.185 +106.387 -4.08808 204.326 +103.828 -4.0762 203.732 +101.688 -4.07986 203.915 +99.1596 -4.06688 203.266 +97.3816 -4.08404 204.124 +94.7933 -4.06644 203.244 +92.6839 -4.06826 203.335 +90.987 -4.08794 204.319 +91.5129 -4.21006 210.423 +91.3529 -4.30506 215.171 +91.4613 -4.41694 220.763 +91.1792 -4.51436 225.632 +91.1489 -4.62874 231.349 +90.9896 -4.74158 236.989 +90.5286 -4.84348 242.082 +90.2933 -4.96248 248.029 +90.0945 -5.0893 254.368 +89.9219 -5.22399 261.1 +89.5751 -5.35521 267.658 +89.4604 -5.50762 275.276 +89.3096 -5.66611 283.197 +89.1149 -5.8307 291.424 +88.6412 -5.98605 299.188 +88.7001 -6.1878 309.272 +88.2421 -6.36497 318.127 +88.4126 -6.6004 329.894 +88.2089 -6.8228 341.01 +87.6241 -7.0301 351.371 +87.4253 -7.28438 364.08 +87.101 -7.54689 377.201 +86.9005 -7.84108 391.905 +86.4289 -8.1338 406.535 +86.0273 -8.45829 422.753 +85.6542 -8.81464 440.564 +85.3409 -9.21083 460.366 +84.8619 -9.62727 481.18 +84.5539 -10.1073 505.173 +85.4914 -10.7974 539.664 +90.5333 -12.1176 605.651 +85.0069 -12.0993 604.735 +81.9704 -12.4548 622.502 +81.0797 -13.2092 660.209 +80.08 -14.0596 702.712 +79.1699 -15.0678 753.1 +78.0568 -16.216 810.489 +76.8539 -17.5721 878.268 +78.9848 -20.0756 1003.4 +73.0978 -20.9108 1045.14 +71.1948 -23.2846 1163.79 +68.7223 -26.2308 1311.04 +65.1543 -29.851 1491.98 +60.2959 -34.5393 1726.3 +51.5162 -39.3537 1966.94 +36.1998 -41.4851 2073.47 +28.5873 -65.5275 3275.12 +2.00584e-13 -65.5299 3275.24 +-28.5873 -65.5275 3275.12 +-57.1723 -65.5199 3274.74 +-85.7531 -65.5075 3274.12 +-114.327 -65.4899 3273.24 +-142.893 -65.4675 3272.13 +-169.145 -64.5611 3226.82 +-155.802 -50.956 2546.83 +-154.406 -44.1702 2207.67 +-147.33 -37.447 1871.64 +-164.175 -37.5374 1876.15 +-147.526 -30.6478 1531.8 +-171.782 -32.6939 1634.07 +-136.138 -23.9017 1194.63 +-146.877 -23.9287 1195.98 +-169.058 -25.6871 1283.86 +-433.858 -61.7524 3086.44 +-128.18 -17.1566 857.503 +-135.55 -17.1197 855.661 +-152.273 -18.2022 909.765 +-568.924 -64.5423 3225.88 +-597.131 -64.4483 3221.19 +-151.998 -15.6421 781.808 +-155.447 -15.2837 763.894 +-166.912 -15.708 785.1 +-116.315 -10.4951 524.556 +-119.876 -10.3867 519.138 +-123.959 -10.3284 516.225 +-128.581 -10.3161 515.609 +-134.179 -10.3785 518.726 +-848.072 -63.3125 3164.42 +-875.553 -63.1543 3156.51 +-903.071 -62.999 3148.75 +-413.952 -27.9547 1397.2 +-958.014 -62.6818 3132.89 +-985.323 -62.5121 3124.41 +-167.796 -10.3304 516.321 +-146.626 -8.76599 438.132 +-150.022 -8.71548 435.608 +-154.419 -8.7229 435.979 +-467.268 -25.6809 1283.55 +-437.444 -23.4042 1169.77 +-431.726 -22.4977 1124.45 +-410.152 -20.8284 1041.02 +-414.465 -20.5205 1025.63 +-420.454 -20.3051 1014.87 +-423.162 -19.9418 996.708 +-412.187 -18.9627 947.775 +-413.733 -18.5885 929.072 +-414.984 -18.2153 910.416 +-416.575 -17.8702 893.169 +-415.831 -17.4393 871.633 +-416.759 -17.0928 854.312 +-392.966 -15.7662 788.011 +-392.52 -15.4101 770.21 +-144.158 -5.5395 276.87 +-145.255 -5.46467 273.129 +-145.438 -5.35823 267.809 +-147.721 -5.33091 266.444 +-151.666 -5.36237 268.016 +-112.4 -3.89437 194.644 +-110.339 -3.74704 187.281 +-111.351 -3.70707 185.283 +-112.442 -3.67043 183.451 +-113.032 -3.61844 180.853 +-115.412 -3.62386 181.124 +-116.444 -3.58681 179.272 +-118.225 -3.57301 178.582 +-120.282 -3.56717 178.29 +-122.4 -3.56253 178.058 +-126.187 -3.60491 180.177 +-488.952 -13.7122 685.348 +-493.034 -13.5745 678.467 +-496.142 -13.4124 670.363 +-499.567 -13.2613 662.814 +-502.593 -13.1022 654.862 +-506.382 -12.9651 648.009 +-509.404 -12.8105 640.28 +-512.707 -12.6651 633.014 +-513.951 -12.4717 623.348 +-532.678 -12.6987 634.694 +-523.65 -12.2645 612.992 +-526.881 -12.1243 605.986 +-531.156 -12.0094 600.243 +-164.405 -3.65248 182.554 +-164.439 -3.58971 179.417 +-165.453 -3.54916 177.39 +-545.59 -11.5007 574.817 +-549.961 -11.3921 569.387 +-553.368 -11.2643 562.998 +-556.352 -11.1291 556.241 +-559.545 -10.9993 549.753 +-563.675 -10.8887 544.225 +-566.808 -10.7596 537.772 +-571.553 -10.6616 532.875 +-389.282 -7.13553 356.641 +-587.456 -10.5809 528.842 +-582.163 -10.303 514.952 +-388.902 -6.76257 337.999 +-386.59 -6.60478 330.113 +-385.014 -6.46247 323 +-384.655 -6.34285 317.022 +-387.174 -6.27168 313.464 +-385.043 -6.12665 306.216 +-385.495 -6.02473 301.122 +-384.459 -5.90119 294.947 +-141.438 -2.13201 106.56 +-142.845 -2.11438 105.679 +-142.225 -2.06703 103.312 +-143.122 -2.04213 102.068 +-141.549 -1.98264 99.0942 +-141.502 -1.94539 97.2325 +-142.512 -1.92285 96.1061 +-146.931 -1.94538 97.2318 +-148.78 -1.93273 96.5997 +-382.562 -4.87526 243.67 +-381.198 -4.76484 238.151 +-381.812 -4.68035 233.928 +-381.868 -4.58981 229.403 +-381.788 -4.49862 224.845 +-381.831 -4.4098 220.406 +-382.347 -4.32722 216.279 +-381.072 -4.22541 211.19 +-380.352 -4.13103 206.473 +-382.581 -4.06918 203.381 +-381.592 -3.9736 198.604 +-715.122 -7.28878 364.3 +-738.052 -7.36092 367.905 +-722.9 -7.05292 352.511 +-405.351 -3.86756 193.304 +-404.213 -3.77044 188.45 +-405.934 -3.70057 184.958 +-405.34 -3.61003 180.433 +-402.773 -3.50326 175.096 +-403.918 -3.42968 171.419 +-404.382 -3.35063 167.467 +-402.398 -3.25217 162.546 +-405.383 -3.19428 159.653 +-404.427 -3.10546 155.214 +-405.673 -3.03405 151.645 +-403.88 -2.94053 146.971 +-403.356 -2.85724 142.807 +-405.533 -2.79323 139.608 +-404.555 -2.70773 135.335 +-404.199 -2.62712 131.306 +-403.995 -2.54804 127.354 +-386.156 -2.36163 118.036 +-378.542 -2.24299 112.107 +-380.66 -2.18344 109.13 +-379.863 -2.10728 105.324 +-380.575 -2.03987 101.955 +-379.804 -1.96484 98.2044 +-380.938 -1.89991 94.9595 +-380.197 -1.82587 91.2588 +-379.907 -1.75449 87.6909 +-379.779 -1.68421 84.1782 +-378.25 -1.60828 80.3834 +-380.701 -1.54937 77.4389 +-380.675 -1.48018 73.9809 +-380.716 -1.41149 70.5475 +-379.249 -1.33768 66.8585 +-379.227 -1.26945 63.4481 +-378.482 -1.19913 59.9337 +-379.485 -1.1345 56.7032 +-378.579 -1.06431 53.1953 +-377.443 -0.994006 49.6814 +-378.557 -0.929789 46.4717 +-380.141 -0.866387 43.3028 +-378.913 -0.796651 39.8173 +-377.852 -0.727792 36.3757 +-378.454 -0.66233 33.1039 +-378.928 -0.596554 29.8163 +-379.274 -0.530524 26.5161 +-142.334 -0.174142 8.70378 +-380.178 -0.398558 19.9203 +-378.839 -0.33087 16.5372 +-378.269 -0.264238 13.2069 +-3275.18 -1.71558 85.7463 +-142.978 -0.0499229 2.49519 +-143.095 -0.0249799 1.24852 +95.8 0 0 +95.7964 -0.00918192 0.835952 +96.5853 -0.0185165 1.6858 +96.6669 -0.0278017 2.53116 +96.6411 -0.0370657 3.37458 +95.7088 -0.0458957 4.17849 +95.6687 -0.055067 5.01348 +96.5196 -0.0648377 5.90303 +96.4644 -0.0740862 6.74504 +95.5047 -0.0825534 7.51593 +96.332 -0.0925654 8.42745 +95.359 -0.100847 9.18147 +96.2697 -0.111132 10.1178 +96.1778 -0.120354 10.9574 +96.0785 -0.129568 11.7963 +95.9719 -0.138771 12.6341 +95.7589 -0.147811 13.4572 +95.6378 -0.156984 14.2923 +95.5095 -0.166144 15.1263 +96.2615 -0.176923 16.1076 +96.0188 -0.185952 16.9297 +95.8674 -0.195148 17.7669 +95.7087 -0.204329 18.6028 +95.6407 -0.213713 19.4571 +95.3694 -0.222644 20.2702 +96.0675 -0.233916 21.2964 +95.878 -0.243114 22.1339 +95.6812 -0.252294 22.9696 +95.5741 -0.26172 23.8279 +96.1371 -0.27307 24.8612 +96.013 -0.282559 25.725 +96.6521 -0.294392 26.8024 +96.1262 -0.302736 27.562 +96.0737 -0.312561 28.4566 +96.3955 -0.323685 29.4693 +95.5624 -0.33093 30.1289 +95.9616 -0.342452 31.1779 +96.5393 -0.354773 32.2997 +96.2538 -0.364012 33.1408 +95.8666 -0.372858 33.9462 +96.3185 -0.385037 35.055 +96.0089 -0.394254 35.8941 +96.7189 -0.40777 37.1247 +96.3913 -0.417024 37.9672 +96.8907 -0.42995 39.144 +96.5454 -0.43922 39.988 +96.1928 -0.448457 40.8289 +96.7498 -0.462039 42.0655 +95.6482 -0.46772 42.5827 +96.8199 -0.484613 44.1207 +96.4311 -0.493874 44.9639 +96.0351 -0.503098 45.8036 +96.3507 -0.516135 46.9906 +96.0265 -0.52584 47.8741 +96.4069 -0.539511 49.1188 +95.8859 -0.548223 49.912 +96.2413 -0.562033 51.1693 +96.4941 -0.575428 52.3888 +96.0332 -0.584655 53.2289 +95.5651 -0.593837 54.0648 +95.869 -0.607917 55.3467 +96.0717 -0.621541 56.5871 +96.1742 -0.634686 57.7838 +95.581 -0.643305 58.5686 +95.8294 -0.65768 59.8773 +95.3032 -0.66684 60.7112 +95.3568 -0.680136 61.9218 +95.6467 -0.695312 63.3034 +95.6709 -0.708752 64.527 +95.1866 -0.718516 65.416 +95.1855 -0.732022 66.6456 +95.3329 -0.746857 67.9962 +94.8168 -0.756611 68.8842 +95.5786 -0.776776 70.7201 +94.8779 -0.785246 71.4913 +95.5991 -0.805677 73.3514 +94.9553 -0.814808 74.1827 +95.0086 -0.830032 75.5687 +94.9672 -0.844636 76.8984 +94.9098 -0.859294 78.2329 +94.9129 -0.874712 79.6366 +95.583 -0.896615 81.6307 +94.867 -0.905742 82.4616 +95.2672 -0.925717 84.2802 +95.3455 -0.942897 85.8443 +94.5927 -0.951998 86.673 +95.1491 -0.974512 88.7226 +95.024 -0.990398 90.169 +94.8809 -1.00633 91.6199 +94.791 -1.02309 93.1452 +94.5402 -1.03835 94.5345 +94.833 -1.0599 96.497 +94.8209 -1.07843 98.184 +94.5799 -1.09465 99.6604 +94.184 -1.1093 100.994 +94.5151 -1.13286 103.139 +94.1467 -1.1484 104.554 +94.5559 -1.17383 106.87 +94.1445 -1.18948 108.294 +94.2349 -1.21182 110.328 +93.7827 -1.22754 111.759 +93.8851 -1.25089 113.885 +93.8317 -1.27264 115.865 +93.5017 -1.29105 117.541 +93.7037 -1.31726 119.928 +93.6275 -1.34014 122.011 +93.9433 -1.36923 124.659 +92.9113 -1.37906 125.554 +98.5128 -1.48921 135.583 +115.676 -1.78116 162.162 +115.633 -1.81377 165.131 +115.264 -1.84198 167.7 +115.361 -1.87845 171.02 +115.244 -1.91233 174.104 +115.246 -1.9491 177.452 +115.573 -1.99248 181.402 +115.363 -2.02771 184.609 +115.159 -2.06397 187.911 +115.317 -2.10788 191.908 +115.414 -2.15197 195.922 +115.15 -2.19054 199.434 +115.178 -2.2359 203.564 +113.058 -2.24013 203.949 +110.749 -2.24026 203.961 +108.589 -2.24304 204.214 +106.387 -2.24459 204.355 +103.828 -2.23807 203.761 +101.599 -2.23811 203.765 +99.1157 -2.23196 203.205 +96.9511 -2.23245 203.25 +94.7933 -2.23271 203.273 +92.7254 -2.23471 203.455 +91.0277 -2.24551 204.439 +91.4332 -2.30956 210.269 +91.3529 -2.36372 215.201 +91.4231 -2.42414 220.702 +91.1792 -2.47864 225.663 +90.8923 -2.53429 230.73 +91.0255 -2.60442 237.115 +90.8088 -2.66757 242.864 +90.2591 -2.72365 247.97 +90.1279 -2.79535 254.498 +89.987 -2.87034 261.325 +89.6068 -2.94136 267.791 +89.4295 -3.02295 275.219 +89.3096 -3.11102 283.237 +88.9687 -3.19614 290.986 +88.8684 -3.29511 299.997 +88.7552 -3.39957 309.507 +88.2956 -3.49685 318.365 +88.4643 -3.62612 330.133 +88.2089 -3.74611 341.057 +87.6725 -3.86206 351.614 +87.4486 -4.00061 364.228 +87.0561 -4.14153 377.058 +86.8789 -4.30413 391.861 +86.4081 -4.46484 406.493 +86.107 -4.64838 423.203 +85.5969 -4.83651 440.331 +85.3591 -5.05836 460.529 +84.7403 -5.27834 480.557 +84.4053 -5.53974 504.356 +85.3506 -5.91863 538.85 +90.415 -6.64459 604.945 +85.0069 -6.64322 604.82 +82.0749 -6.84712 623.383 +81.165 -7.26025 660.996 +80.3064 -7.74135 704.797 +79.1699 -8.27306 753.206 +78.0568 -8.90349 810.602 +76.7755 -9.63823 877.495 +79.0632 -11.0335 1004.53 +73.1466 -11.4889 1045.99 +71.0971 -12.7671 1162.36 +68.602 -14.3769 1308.92 +64.9972 -16.3504 1488.59 +60.8857 -19.1495 1743.43 +51.5267 -21.6118 1967.61 +36.1701 -22.759 2072.06 +28.5873 -35.9783 3275.58 +2.00584e-13 -35.9797 3275.7 +-28.5873 -35.9783 3275.58 +-57.1723 -35.9742 3275.2 +-85.7531 -35.9674 3274.58 +-114.327 -35.9577 3273.7 +-142.893 -35.9454 3272.58 +-169.234 -35.4664 3228.98 +-155.894 -27.9943 2548.69 +-154.448 -24.2586 2208.58 +-147.291 -20.555 1871.4 +-163.992 -20.5872 1874.33 +-147.526 -16.8274 1532.02 +-172.022 -17.9759 1636.58 +-136.24 -13.1332 1195.69 +-146.877 -13.1382 1196.15 +-169.201 -14.1156 1285.13 +-435.111 -34.0035 3095.78 +-128.18 -9.41996 857.623 +-135.55 -9.39972 855.78 +-151.811 -9.96374 907.13 +-568.924 -35.4374 3226.34 +-597.131 -35.3858 3221.64 +-152.056 -8.59166 782.212 +-155.487 -8.39378 764.197 +-167.078 -8.63317 785.992 +-116.228 -5.75814 524.239 +-119.696 -5.69434 518.431 +-123.959 -5.6709 516.297 +-128.557 -5.66307 515.584 +-134.254 -5.70158 519.09 +-848.072 -34.7622 3164.86 +-875.553 -34.6753 3156.95 +-903.071 -34.5901 3149.19 +-413.697 -15.3393 1396.54 +-958.014 -34.4159 3133.33 +-985.323 -34.3227 3124.85 +-167.92 -5.67613 516.773 +-146.595 -4.812 438.1 +-150.217 -4.79152 436.236 +-154.987 -4.80697 437.642 +-466.892 -14.0888 1282.69 +-1147.45 -33.7074 3068.82 +-431.583 -12.3484 1124.24 +-410.885 -11.4564 1043.03 +-414.24 -11.2608 1025.22 +-420.454 -11.1487 1015.01 +-423.162 -10.9492 996.847 +-413.423 -10.4429 950.751 +-415.075 -10.2393 932.217 +-415.191 -10.0062 910.998 +-417.124 -9.8247 894.472 +-416.649 -9.59401 873.469 +-415.664 -9.36023 852.186 +-393.77 -8.67426 789.732 +-393.701 -8.48646 772.634 +-143.881 -3.03566 276.376 +-145.208 -2.99945 273.08 +-145.438 -2.94198 267.847 +-147.915 -2.93081 266.83 +-152.159 -2.9538 268.924 +-112.55 -2.14107 194.93 +-110.339 -2.05734 187.307 +-111.145 -2.03163 184.966 +-112.233 -2.01153 183.136 +-113.88 -2.00163 182.235 +-115.358 -1.98878 181.065 +-116.553 -1.97121 179.465 +-118.17 -1.96087 178.524 +-120.115 -1.95584 178.066 +-122.514 -1.95783 178.247 +-126.129 -1.97841 180.121 +-488.952 -7.52878 685.444 +-492.858 -7.45053 678.32 +-495.844 -7.35974 670.055 +-499.567 -7.28124 662.907 +-502.593 -7.19388 654.953 +-505.827 -7.11081 647.391 +-509.404 -7.03369 640.369 +-512.519 -6.95131 632.87 +-513.951 -6.84769 623.435 +-532.935 -6.97569 635.089 +-523.325 -6.72975 612.698 +-527.471 -6.66442 606.75 +-531.156 -6.59387 600.327 +-162.532 -1.98257 180.499 +-163.966 -1.96529 178.926 +-167.362 -1.97119 179.463 +-546.003 -6.31933 575.332 +-549.961 -6.25491 569.467 +-552.457 -6.17454 562.15 +-556.352 -6.11049 556.318 +-559.83 -6.04231 550.111 +-563.675 -5.97849 544.301 +-567.098 -5.91064 538.124 +-571.407 -5.85231 532.813 +-572.422 -5.76096 524.496 +-586.861 -5.80362 528.38 +-388.259 -3.77273 343.481 +-388.223 -3.70656 337.457 +-384.841 -3.61 328.666 +-385.627 -3.55391 323.559 +-384.732 -3.48329 317.13 +-386.397 -3.4366 312.879 +-385.435 -3.3673 306.57 +-385.495 -3.30792 301.164 +-385.014 -3.24477 295.414 +-142.077 -1.17589 107.057 +-142.765 -1.16027 105.635 +-142.225 -1.13492 103.327 +-143.122 -1.12125 102.082 +-141.549 -1.08858 99.108 +-141.502 -1.06813 97.2461 +-143.258 -1.06128 96.6227 +-146.847 -1.06752 97.1902 +-146.348 -1.04383 95.0338 +-382.478 -2.67621 243.65 +-381.028 -2.61501 238.079 +-381.471 -2.56748 233.752 +-382.554 -2.52459 229.847 +-382.65 -2.47558 225.384 +-381.398 -2.41849 220.187 +-381.564 -2.37102 215.865 +-382.121 -2.32637 211.8 +-380.967 -2.27184 206.836 +-381.345 -2.227 202.753 +-382.036 -2.18427 198.863 +-715.122 -4.00196 364.351 +-738.589 -4.04451 368.225 +-722.361 -3.86957 352.298 +-401.38 -2.1027 191.436 +-403.398 -2.066 188.096 +-403.841 -2.02135 184.03 +-406.619 -1.98836 181.027 +-405.982 -1.93881 176.515 +-403.918 -1.88309 171.443 +-405.86 -1.84641 168.103 +-406.477 -1.80374 164.218 +-404.639 -1.75061 159.381 +-405.267 -1.70862 155.559 +-406.235 -1.66817 151.876 +-404.256 -1.61603 147.128 +-404.676 -1.57392 143.294 +-405.817 -1.53472 139.726 +-405.124 -1.4888 135.545 +-403.819 -1.44109 131.201 +-403.518 -1.39737 127.221 +-385.104 -1.29313 117.731 +-380.651 -1.23839 112.747 +-379.891 -1.19641 108.925 +-380.538 -1.15907 105.526 +-380.575 -1.12001 101.969 +-381.063 -1.08238 98.5437 +-380.938 -1.04316 94.9728 +-379.516 -1.00071 91.1082 +-380.492 -0.964796 87.8381 +-378.9 -0.922586 83.9951 +-379.619 -0.886235 80.6856 +-379.427 -0.847846 77.1906 +-379.792 -0.810819 73.8195 +-379.831 -0.773186 70.3934 +-381.022 -0.737897 67.1804 +-379.819 -0.698086 63.556 +-377.198 -0.656158 59.7387 +-378.595 -0.621441 56.578 +-379.075 -0.585132 53.2723 +-379.525 -0.548777 49.9624 +-379.45 -0.511711 46.5878 +-378.551 -0.473707 43.1278 +-379.311 -0.437867 39.8648 +-379.246 -0.401073 36.515 +-378.654 -0.363848 33.1259 +-378.43 -0.327112 29.7813 +-377.778 -0.290139 26.4152 +-142.633 -0.0958151 8.72331 +-378.68 -0.217969 19.8446 +-379.439 -0.181953 16.5656 +-379.569 -0.145579 13.254 +-148.649 -0.042752 3.89228 +-143.778 -0.0275639 2.50951 +-144.395 -0.01384 1.26003 +96.7 0 0 +95.6964 -0.00163831 0.835127 +95.7854 -0.00327993 1.67194 +96.6669 -0.00496579 2.53131 +96.6411 -0.00662047 3.37477 +96.608 -0.00827464 4.21798 +96.5675 -0.0099282 5.06088 +96.5196 -0.011581 5.90338 +96.4644 -0.0132329 6.74544 +96.4019 -0.0148838 7.58698 +96.332 -0.0165335 8.42794 +96.3544 -0.0182009 9.27785 +96.3692 -0.0198702 10.1288 +96.0784 -0.0214749 10.9468 +96.0785 -0.0231428 11.797 +95.9719 -0.0247865 12.6349 +95.7589 -0.0264012 13.458 +96.6268 -0.0283296 14.441 +95.5095 -0.0296758 15.1272 +96.2615 -0.031601 16.1086 +96.0188 -0.0332138 16.9307 +95.6707 -0.0347848 17.7315 +95.7087 -0.0364962 18.6039 +95.5427 -0.0381333 19.4384 +95.3694 -0.0397674 20.2714 +95.1889 -0.0413986 21.1029 +95.878 -0.0434237 22.1352 +95.7784 -0.0451092 22.9944 +95.4771 -0.0466996 23.8051 +95.3625 -0.0483814 24.6624 +95.9164 -0.0504183 25.7007 +94.8212 -0.0515867 26.2962 +96.1262 -0.0540731 27.5636 +96.0737 -0.055828 28.4582 +95.6305 -0.057356 29.2371 +96.4208 -0.0596399 30.4013 +95.9616 -0.0611669 31.1797 +95.6859 -0.0628074 32.0159 +96.2538 -0.0650179 33.1427 +96.8093 -0.0672527 34.2819 +96.4125 -0.0688403 35.0912 +96.0089 -0.0704195 35.8962 +96.7189 -0.0728337 37.1268 +96.2052 -0.0743428 37.8961 +96.0562 -0.0761339 38.8091 +96.5454 -0.0784511 39.9903 +96.2848 -0.0801777 40.8704 +95.9245 -0.081823 41.7091 +96.4704 -0.0842599 42.9513 +96.0919 -0.0859081 43.7915 +96.4311 -0.0882132 44.9665 +96.0351 -0.0898607 45.8063 +96.4406 -0.0922752 47.0371 +96.2054 -0.0940978 47.9662 +96.3178 -0.0962756 49.0763 +96.6842 -0.098736 50.3305 +96.2413 -0.100387 51.1723 +95.7911 -0.102031 52.0102 +96.1207 -0.104523 53.2805 +95.5651 -0.106068 54.068 +95.869 -0.108583 55.3499 +95.8993 -0.110817 56.4889 +95.4027 -0.112455 57.3236 +95.6662 -0.115006 58.6242 +95.7446 -0.117367 59.8278 +95.9779 -0.119951 61.1446 +95.3568 -0.121482 61.9254 +95.5633 -0.124085 63.2519 +95.0077 -0.125716 64.0834 +95.1866 -0.128337 65.4198 +95.9227 -0.131762 67.1657 +95.3329 -0.1334 68.0002 +95.3831 -0.135949 69.2998 +95.4982 -0.138627 70.6648 +94.8779 -0.140256 71.4955 +94.9644 -0.14295 72.8686 +94.9553 -0.145537 74.1871 +94.9304 -0.148134 75.5109 +95.6667 -0.151975 77.4692 +95.6043 -0.154606 78.8099 +94.9129 -0.156236 79.6412 +95.583 -0.160149 81.6354 +94.867 -0.161779 82.4664 +95.417 -0.165607 84.4176 +95.4198 -0.168546 85.9162 +94.6664 -0.170173 86.7456 +95.2223 -0.174196 88.796 +95.024 -0.1769 90.1742 +94.8809 -0.179746 91.6252 +94.791 -0.182738 93.1506 +94.5402 -0.185464 94.54 +94.9732 -0.189594 96.6452 +94.8209 -0.192624 98.1897 +94.5799 -0.19552 99.6662 +94.3204 -0.198423 101.146 +94.5151 -0.202345 103.145 +94.2805 -0.205413 104.709 +94.4234 -0.20937 106.726 +94.1445 -0.212459 108.301 +94.17 -0.2163 110.259 +93.847 -0.219406 111.842 +93.8851 -0.223428 113.892 +93.9575 -0.227618 116.028 +94.1242 -0.232134 118.33 +93.6421 -0.235127 119.856 +93.7493 -0.239679 122.176 +93.9433 -0.244565 124.667 +92.9708 -0.24648 125.643 +97.925 -0.264408 134.782 +115.734 -0.3183 162.253 +115.748 -0.324287 165.305 +115.32 -0.329166 167.792 +115.697 -0.336495 171.528 +115.189 -0.341407 174.032 +115.191 -0.347973 177.379 +115.573 -0.355887 181.413 +115.31 -0.362011 184.535 +115.159 -0.368656 187.922 +115.266 -0.37633 191.834 +115.363 -0.384205 195.848 +115.1 -0.391092 199.359 +115.178 -0.399365 203.576 +113.494 -0.401664 204.748 +110.796 -0.400316 204.061 +108.636 -0.400813 204.314 +106.433 -0.401091 204.456 +103.828 -0.399751 203.773 +101.688 -0.40011 203.956 +99.1157 -0.398661 203.217 +96.9511 -0.398749 203.262 +94.7933 -0.398794 203.285 +92.6839 -0.398973 203.376 +91.0683 -0.401262 204.543 +91.473 -0.412701 210.374 +91.3139 -0.422015 215.122 +91.1169 -0.431538 219.976 +90.8796 -0.441266 224.935 +91.2222 -0.454304 231.581 +90.9896 -0.465005 237.036 +90.8438 -0.476652 242.973 +90.1907 -0.486115 247.797 +90.1279 -0.499291 254.513 +89.8894 -0.51213 261.057 +89.6703 -0.525741 267.995 +89.4295 -0.539944 275.235 +89.2194 -0.555112 282.967 +89.2318 -0.572564 291.863 +88.8968 -0.588742 300.11 +88.5623 -0.605892 308.852 +88.349 -0.624966 318.575 +88.4126 -0.647299 329.959 +88.1838 -0.668921 340.981 +87.6483 -0.689629 351.537 +87.2152 -0.712658 363.276 +87.0336 -0.739548 376.983 +86.749 -0.76763 391.298 +86.2418 -0.795952 405.735 +85.9475 -0.828733 422.445 +85.5969 -0.863872 440.357 +85.2316 -0.902146 459.867 +84.7056 -0.942403 480.388 +84.4053 -0.989479 504.385 +85.1473 -1.05463 537.598 +90.5333 -1.18837 605.771 +85.0069 -1.18658 604.855 +82.0749 -1.223 623.42 +81.0797 -1.29542 660.34 +80.1932 -1.38077 703.845 +78.9922 -1.47437 751.559 +77.9609 -1.58834 809.653 +76.6796 -1.71938 876.45 +79.0632 -1.97075 1004.59 +73.035 -2.04895 1044.45 +71.091 -2.2802 1162.33 +68.5549 -2.56616 1308.1 +64.8359 -2.91318 1484.99 +61.0567 -3.42998 1748.43 +51.5503 -3.86196 1968.63 +36.2172 -4.07039 2074.88 +28.5873 -6.42626 3275.77 +2.00584e-13 -6.42649 3275.89 +-28.5873 -6.42626 3275.77 +-57.1723 -6.42551 3275.39 +-85.7531 -6.4243 3274.77 +-114.327 -6.42257 3273.89 +-142.893 -6.42037 3272.77 +-169.197 -6.33345 3228.46 +-155.79 -4.99685 2547.14 +-154.483 -4.33392 2209.21 +-147.354 -3.673 1872.31 +-164.236 -3.68265 1877.23 +-147.583 -3.00679 1532.71 +-171.97 -3.20979 1636.19 +-136.24 -2.34578 1195.76 +-146.95 -2.34784 1196.81 +-169.097 -2.51971 1284.42 +-435.556 -6.07973 3099.13 +-128.269 -1.68371 858.266 +-135.707 -1.68087 856.818 +-151.646 -1.77773 906.197 +-568.924 -6.32964 3226.52 +-597.131 -6.32042 3221.82 +-152.132 -1.53536 782.649 +-155.666 -1.50098 765.124 +-167.078 -1.54201 786.037 +-116.315 -1.02925 524.66 +-119.674 -1.0169 518.364 +-123.866 -1.01214 515.938 +-128.557 -1.01151 515.614 +-134.329 -1.01895 519.41 +-848.072 -6.20903 3165.04 +-875.553 -6.19352 3157.13 +-903.071 -6.17829 3149.37 +-413.754 -2.74019 1396.81 +-958.014 -6.14718 3133.51 +-985.323 -6.13054 3125.03 +-167.889 -1.01365 516.708 +-146.595 -0.859493 438.125 +-150.25 -0.856023 436.356 +-154.987 -0.858595 437.667 +-466.892 -2.51647 1282.77 +-395.034 -2.07273 1056.57 +-395.137 -2.01937 1029.37 +-410.665 -2.04518 1042.53 +-414.465 -2.01244 1025.84 +-420.76 -1.99276 1015.81 +-423.279 -1.95622 997.181 +-412.665 -1.86183 949.063 +-414.505 -1.82638 930.992 +-414.818 -1.78565 910.232 +-417.124 -1.75484 894.524 +-416.261 -1.71204 872.708 +-391.816 -1.57596 803.34 +-434.552 -1.70982 871.575 +-393.746 -1.51598 772.769 +-143.742 -0.54169 276.125 +-145.536 -0.536958 273.713 +-145.343 -0.525137 267.687 +-147.915 -0.523485 266.845 +-151.716 -0.526057 268.156 +-112.35 -0.381748 194.596 +-110.339 -0.367471 187.318 +-111.403 -0.363718 185.405 +-112.285 -0.359455 183.232 +-113.456 -0.356189 181.567 +-115.681 -0.356218 181.582 +-116.498 -0.351922 179.392 +-118.115 -0.350078 178.452 +-119.947 -0.348856 177.829 +-122.4 -0.349376 178.094 +-126.187 -0.353533 180.213 +-489.3 -1.34571 685.973 +-493.034 -1.33125 678.602 +-495.844 -1.31456 670.094 +-499.868 -1.30132 663.346 +-502.593 -1.28493 654.992 +-506.382 -1.27149 648.138 +-509.404 -1.25632 640.407 +-512.707 -1.24206 633.14 +-513.951 -1.2231 623.472 +-532.935 -1.24596 635.126 +-523.65 -1.20278 613.114 +-527.471 -1.19036 606.786 +-164.33 -0.364377 185.741 +-164.74 -0.358925 182.962 +-164.979 -0.353199 180.043 +-164.907 -0.346918 176.841 +-545.59 -1.12787 574.931 +-549.683 -1.11665 569.213 +-552.737 -1.10342 562.468 +-556.634 -1.09198 556.633 +-560.187 -1.07993 550.493 +-563.387 -1.0673 544.055 +-567.751 -1.05694 538.774 +-572.357 -1.04705 533.731 +-572.422 -1.02899 524.527 +-586.861 -1.03661 528.411 +-386.611 -0.671004 342.043 +-387.468 -0.660758 336.82 +-386.134 -0.646965 329.789 +-386.623 -0.636421 324.414 +-384.115 -0.621168 316.639 +-387.33 -0.615308 313.652 +-384.965 -0.600717 306.214 +-385.495 -0.590843 301.181 +-384.697 -0.579085 295.187 +-141.358 -0.208967 106.521 +-142.845 -0.207357 105.7 +-142.225 -0.202713 103.333 +-143.203 -0.200385 102.146 +-141.468 -0.194324 99.0565 +-141.42 -0.190673 97.1951 +-143.092 -0.189342 96.5165 +-146.764 -0.190566 97.1407 +-147.69 -0.188153 95.9107 +-382.478 -0.47801 243.665 +-382.215 -0.468534 238.835 +-381.812 -0.459 233.975 +-383.497 -0.452042 230.428 +-382.305 -0.441776 225.195 +-382.264 -0.432958 220.7 +-382.521 -0.424562 216.42 +-379.935 -0.413146 210.601 +-380.704 -0.405503 206.705 +-380.639 -0.397036 202.389 +-382.39 -0.390506 199.06 +-715.122 -0.714808 364.372 +-737.873 -0.721708 367.889 +-722.9 -0.691677 352.581 +-401.741 -0.37591 191.62 +-405.935 -0.371341 189.291 +-403.932 -0.361123 184.082 +-404.609 -0.353397 180.144 +-405.707 -0.346066 176.407 +-403.549 -0.336042 171.297 +-405.768 -0.329721 168.075 +-406.385 -0.3221 164.19 +-404.639 -0.312685 159.391 +-406.014 -0.305746 155.854 +-406.609 -0.298235 152.025 +-405.383 -0.28945 147.547 +-404.205 -0.280797 143.136 +-406.289 -0.274443 139.897 +-406.262 -0.266666 135.933 +-404.865 -0.258066 131.549 +-404.09 -0.249944 127.409 +-384.435 -0.23057 117.533 +-377.008 -0.219078 111.675 +-380.66 -0.214129 109.152 +-381.019 -0.20729 105.666 +-379.609 -0.199541 101.716 +-380.482 -0.193035 98.3991 +-380.938 -0.186324 94.9783 +-379.419 -0.178696 91.0902 +-376.789 -0.17065 86.9884 +-380.365 -0.165424 84.3247 +-380.206 -0.158539 80.8151 +-380.309 -0.15179 77.3746 +-379.792 -0.144824 73.8239 +-380.716 -0.138424 70.5615 +-378.659 -0.130981 66.7676 +-380.114 -0.124785 63.6092 +-379.766 -0.117997 60.149 +-378.397 -0.110941 56.5518 +-379.075 -0.104513 53.2754 +-377.74 -0.0975588 49.7304 +-379.053 -0.0913035 46.5418 +-377.657 -0.0844111 43.0284 +-378.515 -0.0780452 39.7834 +-378.35 -0.0714685 36.4309 +-378.454 -0.0649545 33.1104 +-378.928 -0.0585039 29.8222 +-377.378 -0.0517684 26.3888 +-145.328 -0.0174373 8.88865 +-379.579 -0.0390249 19.8929 +-378.539 -0.0324226 16.5274 +-379.669 -0.0260095 13.2583 +-3275.18 -0.168246 85.7633 +-144.278 -0.00494043 2.51838 +-144.994 -0.0024823 1.26535 +96.7 0 0 +96.6963 0.00595657 0.843835 +95.7854 0.0118018 1.6719 +96.5669 0.0178494 2.52863 +96.6411 0.0238217 3.3747 +95.7088 0.0294967 4.17864 +95.6687 0.035391 5.01366 +96.5196 0.0416706 5.90324 +96.5642 0.0476637 6.75226 +96.5016 0.0536101 7.59465 +96.4316 0.0595524 8.43647 +96.2548 0.0654225 9.26805 +95.3746 0.070759 10.0241 +96.1778 0.0773505 10.9578 +96.1777 0.0833575 11.8088 +96.071 0.0892791 12.6477 +95.7589 0.0949967 13.4577 +95.6378 0.100892 14.2928 +95.5095 0.106779 15.1268 +96.2615 0.113707 16.1082 +96.1172 0.119632 16.9477 +95.8674 0.12542 17.7676 +95.5123 0.131051 18.5652 +95.5427 0.137211 19.4379 +95.3694 0.143091 20.2709 +96.0675 0.150335 21.2972 +95.9755 0.156406 22.1571 +95.6812 0.162147 22.9704 +95.4771 0.168034 23.8045 +96.1371 0.1755 24.8621 +95.9164 0.181415 25.7001 +95.7849 0.187505 26.5628 +96.3184 0.194955 27.6182 +96.0737 0.20088 28.4576 +95.6305 0.206378 29.2365 +95.3717 0.212261 30.0699 +95.9616 0.22009 31.179 +96.4445 0.227785 32.2691 +95.4028 0.231879 32.849 +95.8666 0.239632 33.9474 +96.3185 0.247459 35.0562 +96.1026 0.25363 35.9304 +95.692 0.259287 36.7318 +96.3913 0.268017 37.9686 +96.8907 0.276325 39.1454 +96.5454 0.282282 39.9894 +96.2848 0.288495 40.8695 +96.7498 0.296948 42.067 +96.4704 0.303183 42.9503 +96.2739 0.309699 43.8734 +96.4311 0.317408 44.9655 +96.3058 0.324247 45.9344 +96.4406 0.332024 47.036 +95.937 0.337637 47.8312 +96.4069 0.346739 49.1206 +95.8859 0.352338 49.9138 +96.2413 0.361213 51.1711 +96.4941 0.369822 52.3907 +96.1207 0.376094 53.2793 +95.5651 0.381653 54.0668 +95.869 0.390702 55.3486 +95.8993 0.398742 56.4876 +95.4027 0.404634 57.3223 +95.581 0.413446 58.5706 +95.9142 0.423058 59.9324 +95.8936 0.431226 61.0895 +95.3568 0.437117 61.924 +95.5633 0.44648 63.2504 +94.9248 0.451955 64.026 +95.8459 0.464981 65.8714 +95.2674 0.470867 66.7052 +95.3329 0.479997 67.9986 +95.464 0.489586 69.357 +95.5786 0.499226 70.7226 +94.8779 0.50467 71.4938 +94.8851 0.513933 72.8061 +94.9553 0.523669 74.1854 +94.9304 0.533013 75.5091 +95.589 0.546392 77.4045 +94.7555 0.551362 78.1085 +95.4491 0.565345 80.0893 +94.9747 0.572578 81.1141 +95.4708 0.585816 82.9894 +94.7429 0.591674 83.8193 +95.4198 0.606462 85.9143 +94.6664 0.612317 86.7436 +95.2223 0.62679 88.794 +95.024 0.636519 90.1722 +94.8809 0.646761 91.6231 +94.791 0.657528 93.1485 +94.3988 0.666338 94.3964 +94.9732 0.682196 96.643 +94.6819 0.692082 98.0436 +94.5799 0.70352 99.6639 +94.3204 0.713964 101.143 +94.4475 0.727552 103.068 +94.2136 0.738592 104.632 +93.9595 0.749653 106.199 +94.0789 0.763933 108.222 +94.2349 0.778827 110.332 +94.3612 0.793792 112.452 +93.8215 0.803392 113.812 +93.7687 0.817368 115.792 +94.1865 0.83582 118.406 +93.5805 0.845483 119.775 +93.6884 0.861852 122.094 +93.4619 0.875483 124.025 +92.376 0.881207 124.836 +98.1014 0.953108 135.022 +115.734 1.1453 162.249 +115.748 1.16685 165.301 +115.264 1.18382 167.706 +115.306 1.20668 170.944 +115.686 1.23374 174.778 +115.681 1.2574 178.13 +115.573 1.28055 181.408 +115.363 1.30319 184.615 +115.159 1.32649 187.917 +115.317 1.35472 191.915 +115.414 1.38305 195.929 +115.2 1.40845 199.527 +115.03 1.43515 203.31 +113.009 1.4391 203.869 +110.796 1.44042 204.056 +108.542 1.44095 204.132 +106.387 1.44258 204.362 +103.782 1.43775 203.679 +101.599 1.43841 203.772 +99.1157 1.43446 203.212 +96.9511 1.43478 203.257 +94.7933 1.43494 203.28 +92.6839 1.43558 203.371 +90.987 1.44253 204.355 +91.4332 1.48433 210.277 +91.3529 1.51914 215.209 +91.1169 1.55276 219.971 +91.2167 1.59365 225.763 +90.819 1.62744 230.551 +90.7029 1.66791 236.283 +90.8438 1.71509 242.967 +90.5327 1.75577 248.731 +90.0945 1.79588 254.413 +90.0196 1.84541 261.429 +89.5434 1.88904 267.61 +89.3368 1.9408 274.943 +89.039 1.99336 282.389 +88.881 2.0521 290.71 +88.7548 2.11502 299.624 +88.5623 2.18012 308.845 +88.4559 2.25147 318.954 +88.3349 2.32706 329.662 +88.1338 2.40554 340.78 +87.7209 2.48347 351.82 +87.3553 2.5684 363.852 +87.0561 2.66172 377.072 +86.7923 2.76347 391.485 +86.2626 2.86467 405.823 +85.9675 2.98263 422.533 +85.616 3.10907 440.445 +85.1951 3.24471 459.661 +84.8619 3.39721 481.264 +84.3558 3.55825 504.078 +85.3037 3.80174 538.573 +90.5333 4.27599 605.757 +85.1183 4.27512 605.633 +81.9443 4.39357 622.413 +80.9822 4.65558 659.531 +80.1818 4.96757 703.729 +78.9922 5.30507 751.541 +77.9705 5.71586 809.735 +76.8365 6.19931 878.223 +79.0711 7.09186 1004.66 +73.0908 7.37816 1045.22 +70.9933 8.1933 1160.7 +68.424 9.21598 1305.58 +64.1685 10.3742 1469.66 +61.273 12.3855 1754.59 +51.5581 13.8982 1968.88 +36.2295 14.651 2075.53 +28.5873 23.1229 3275.7 +2.00584e-13 23.1238 3275.82 +-28.5873 23.1229 3275.7 +-57.1723 23.1202 3275.32 +-85.7531 23.1159 3274.7 +-114.327 23.1096 3273.82 +-142.893 23.1017 3272.7 +-169.349 22.8094 3231.29 +-155.955 17.9987 2549.78 +-154.511 15.597 2209.54 +-147.417 13.2218 1873.06 +-134.804 10.8762 1540.77 +-147.583 10.819 1532.67 +-171.981 11.5502 1636.25 +-136.285 8.4434 1196.13 +-146.974 8.4494 1196.98 +-169.279 9.07614 1285.77 +-455.973 22.9016 3244.34 +-128.151 6.05272 857.456 +-135.707 6.04808 856.799 +-151.514 6.39106 905.387 +-568.924 22.7753 3226.45 +-597.058 22.7393 3221.36 +-152.189 5.52662 782.926 +-155.846 5.40705 765.988 +-167.452 5.56088 787.78 +-116.531 3.71035 525.625 +-119.876 3.6652 519.229 +-123.819 3.64052 515.732 +-128.775 3.64576 516.475 +-134.179 3.66229 518.817 +-848.072 22.3413 3164.97 +-875.553 22.2855 3157.06 +-903.071 22.2307 3149.3 +-414.208 9.87053 1398.31 +-958.014 22.1187 3133.44 +-985.323 22.0589 3124.96 +-168.136 3.65269 517.457 +-146.849 3.09797 438.873 +-150.022 3.07546 435.684 +-154.452 3.07874 436.149 +-467.405 9.06471 1284.15 +-437.899 8.26728 1171.18 +-394.456 7.2535 1027.56 +-411.288 7.37011 1044.08 +-414.689 7.24503 1026.36 +-420.799 7.17098 1015.87 +-423.396 7.04081 997.434 +-413.383 6.71087 950.692 +-414.302 6.56843 930.514 +-414.569 6.42126 909.665 +-425.999 6.44858 913.535 +-417.036 6.17171 874.312 +-393.175 5.69026 806.108 +-393.502 5.57107 789.223 +-436.376 6.04536 856.414 +-144.112 1.95412 276.829 +-145.536 1.93208 273.707 +-145.867 1.89636 268.647 +-148.061 1.88546 267.102 +-152.307 1.90022 269.194 +-112.9 1.38033 195.544 +-110.339 1.32223 187.313 +-110.939 1.30329 184.629 +-112.389 1.2946 183.398 +-113.456 1.28164 181.562 +-115.466 1.27936 181.24 +-116.825 1.26983 179.891 +-118.501 1.26376 179.031 +-119.947 1.25525 177.825 +-122.4 1.25712 178.09 +-126.129 1.27151 180.128 +-489.591 4.84499 686.364 +-493.034 4.79009 678.586 +-496.618 4.73741 671.123 +-499.567 4.67958 662.93 +-503.141 4.62847 655.691 +-505.827 4.57005 647.414 +-509.964 4.52546 641.097 +-513.274 4.47412 633.824 +-513.824 4.39985 623.302 +-533.128 4.48483 635.341 +-524.17 4.33212 613.709 +-526.881 4.27836 606.092 +-162.872 1.29947 184.088 +-163.803 1.28414 181.917 +-163.56 1.25995 178.491 +-167.362 1.26686 179.47 +-546.003 4.06137 575.353 +-549.683 4.01794 569.2 +-553.368 3.97486 563.097 +-556.634 3.92914 556.62 +-560.187 3.8858 550.48 +-563.962 3.84428 544.598 +-566.808 3.79676 537.867 +-573.82 3.77711 535.083 +-572.127 3.70061 524.245 +-586.564 3.72804 528.132 +-386.162 2.4116 341.638 +-386.789 2.37336 336.222 +-388.796 2.34395 332.055 +-384.631 2.27817 322.736 +-386.121 2.24676 318.286 +-385.931 2.20601 312.513 +-385.121 2.16237 306.331 +-385.022 2.12336 300.805 +-384.697 2.08366 295.181 +-141.358 0.751905 106.518 +-142.765 0.745693 105.638 +-142.468 0.730644 103.506 +-143.122 0.720614 102.085 +-142.287 0.703265 99.6277 +-141.42 0.686077 97.1929 +-143.009 0.680893 96.4584 +-147.014 0.686862 97.3041 +-147.606 0.676627 95.8541 +-382.478 1.71997 243.659 +-381.028 1.68064 238.087 +-382.58 1.65489 234.439 +-381.097 1.61636 228.98 +-381.788 1.58744 224.884 +-383.043 1.56104 221.144 +-381.042 1.52175 215.578 +-380.722 1.48966 211.033 +-380.616 1.45874 206.652 +-380.55 1.42828 202.337 +-382.745 1.40642 199.24 +-715.567 2.57362 364.591 +-737.515 2.59559 367.703 +-722.541 2.48755 352.398 +-404.9 1.36324 193.122 +-403.398 1.3278 188.102 +-403.932 1.29939 184.077 +-405.249 1.2736 180.424 +-403.782 1.2393 175.565 +-404.286 1.21135 171.605 +-405.768 1.1864 168.071 +-405.457 1.15633 163.811 +-405.011 1.12614 159.534 +-404.894 1.0971 155.42 +-405.766 1.07088 151.706 +-407.075 1.04585 148.159 +-405.807 1.01437 143.7 +-404.209 0.982437 139.177 +-405.124 0.956835 135.55 +-405.055 0.929002 131.607 +-404.853 0.90105 127.647 +-385.2 0.831288 117.764 +-379.501 0.793495 112.41 +-379.794 0.768726 108.901 +-380.345 0.74455 105.476 +-381.058 0.720727 102.101 +-380.772 0.695107 98.472 +-380.938 0.67043 94.9761 +-380.391 0.644632 91.3215 +-380.784 0.620541 87.9087 +-379.291 0.593548 84.0847 +-379.619 0.569574 80.6885 +-380.309 0.546169 77.3728 +-379.203 0.520297 73.7077 +-379.34 0.496276 70.3047 +-379.545 0.4724 66.9223 +-379.227 0.447954 63.4592 +-379.569 0.424357 60.1163 +-380.672 0.401585 56.8904 +-379.966 0.376942 53.3994 +-378.137 0.351404 49.7815 +-378.557 0.328098 46.4798 +-378.948 0.304767 43.1746 +-379.311 0.281413 39.8662 +-378.748 0.257428 36.4684 +-379.052 0.234088 33.162 +-378.43 0.210231 29.7824 +-378.476 0.186814 26.4649 +-143.931 0.0621396 8.80298 +-377.782 0.139754 19.7982 +-379.439 0.11694 16.5662 +-379.569 0.0935623 13.2545 +-148.449 0.0274393 3.88718 +-144.678 0.0178259 2.5253 +-143.495 0.00883939 1.25223 +95.8 0 0 +95.7964 0.0134425 0.835894 +95.7854 0.026884 1.67172 +96.5669 0.0406602 2.52836 +95.7416 0.0537599 3.34294 +96.608 0.0678234 4.21744 +95.6687 0.0806193 5.01313 +96.5196 0.0949238 5.90263 +95.6664 0.107567 6.68879 +96.5016 0.122122 7.59386 +96.332 0.135518 8.42687 +96.2548 0.14903 9.26708 +96.2697 0.162699 10.1171 +96.1778 0.176201 10.9567 +96.0785 0.18969 11.7955 +95.9719 0.203163 12.6333 +95.7589 0.216399 13.4563 +96.5279 0.231967 14.4243 +96.2996 0.245252 15.2504 +96.2615 0.259019 16.1065 +96.0188 0.272238 16.9285 +95.6707 0.285115 17.7292 +95.7087 0.299142 18.6015 +95.3467 0.311919 19.396 +96.3475 0.329298 20.4767 +96.0675 0.342457 21.2949 +95.9755 0.356286 22.1548 +95.7784 0.36974 22.9914 +96.4474 0.386665 24.0439 +96.1371 0.399781 24.8595 +96.7858 0.417002 25.9303 +95.6885 0.4267 26.5334 +96.9913 0.447201 27.8082 +96.0737 0.457597 28.4546 +96.4911 0.474352 29.4965 +96.4208 0.488841 30.3975 +96.8176 0.505829 31.4538 +95.591 0.514293 31.9802 +96.9157 0.536586 33.3664 +95.9609 0.546407 33.9771 +96.3185 0.563702 35.0526 +96.0089 0.577196 35.8917 +96.7189 0.596984 37.1221 +96.3913 0.610532 37.9646 +96.8907 0.629456 39.1413 +96.5454 0.643028 39.9852 +97.2053 0.663461 41.2559 +96.7498 0.676434 42.0626 +97.3839 0.697179 43.3525 +96.0919 0.704149 43.7859 +97.1562 0.728479 45.2988 +96.0351 0.736546 45.8005 +97.1596 0.761976 47.3818 +96.0265 0.769841 47.8708 +97.1197 0.795696 49.4786 +95.8859 0.802611 49.9085 +96.9476 0.828869 51.5413 +95.7911 0.836302 52.0036 +96.8204 0.862964 53.6615 +96.3484 0.876517 54.5043 +97.0814 0.901259 56.0428 +95.3823 0.903421 56.1772 +96.8599 0.935818 58.1918 +95.6662 0.942652 58.6167 +96.3383 0.96797 60.191 +95.2189 0.975403 60.6533 +96.7826 1.01062 62.8432 +95.5633 1.01706 63.2438 +96.3342 1.04482 64.9698 +95.1866 1.05192 65.4114 +96.7419 1.08922 67.7306 +95.9842 1.10088 68.456 +96.8393 1.13132 70.3488 +95.4982 1.13626 70.6558 +96.2356 1.16607 72.5093 +94.9644 1.1717 72.8593 +96.9253 1.21765 75.7166 +95.5565 1.22219 75.9992 +96.2884 1.25377 77.9627 +95.6814 1.26825 78.8635 +96.9046 1.30747 81.3021 +94.9747 1.30431 81.1056 +96.8292 1.35345 84.1615 +95.417 1.3574 84.4069 +96.6831 1.39979 87.0426 +95.2562 1.40352 87.275 +96.5387 1.44754 90.0122 +95.024 1.44996 90.1627 +96.2477 1.49452 92.9333 +94.7197 1.4967 93.0688 +96.5201 1.552 96.5076 +94.4125 1.54484 96.0624 +95.9323 1.59736 99.328 +95.1994 1.61308 100.306 +96.0936 1.65697 103.035 +94.4475 1.65734 103.058 +96.0202 1.71474 106.627 +94.4896 1.71731 106.787 +95.719 1.77055 110.098 +94.17 1.77291 110.245 +95.9682 1.83902 114.355 +93.9488 1.83257 113.954 +95.7826 1.90192 118.267 +94.062 1.90144 118.237 +96.1663 1.97918 123.071 +93.6884 1.96326 122.081 +100.503 2.14456 133.355 +92.8518 2.01769 125.466 +118.556 2.62384 163.158 +115.676 2.60765 162.151 +118.157 2.71334 168.723 +115.773 2.70862 168.429 +118.437 2.82341 175.567 +115.796 2.8131 174.926 +118.568 2.93579 182.555 +115.681 2.91976 181.559 +118.596 3.05179 189.768 +115.211 3.02307 187.983 +118.613 3.1742 197.38 +115.465 3.15193 195.996 +117.05 3.25992 202.711 +115.03 3.26921 203.289 +112.136 3.25289 202.274 +110.796 3.28121 204.035 +107.368 3.24694 201.904 +106.387 3.28613 204.341 +103.056 3.25222 202.232 +101.688 3.27952 203.93 +98.3266 3.24164 201.574 +96.9942 3.26981 203.326 +94.5397 3.25998 202.715 +92.6839 3.27019 203.35 +95.095 3.43438 213.559 +91.4332 3.38124 210.255 +94.7914 3.59079 223.285 +91.1169 3.53711 219.948 +95.1126 3.78532 235.382 +90.8923 3.71026 230.714 +94.8242 3.97205 246.993 +90.5286 3.89334 242.099 +94.466 4.17333 259.509 +90.0945 4.09094 254.386 +94.1543 4.39686 273.409 +89.7338 4.31231 268.151 +94.1266 4.65812 289.655 +89.1292 4.5454 282.645 +93.939 4.94062 307.221 +88.8116 4.82102 299.784 +94.1577 5.27999 328.325 +88.3757 5.12412 318.632 +93.5631 5.61469 349.137 +88.1588 5.48128 340.841 +93.5028 6.03014 374.971 +87.4019 5.85384 364.008 +93.3097 6.49886 404.117 +86.5758 6.27935 390.468 +93.1444 7.04622 438.153 +85.9076 6.78959 422.195 +93.1911 7.70897 479.365 +85.3227 7.40238 460.3 +94.4472 8.6128 535.568 +84.5044 8.11982 504.913 +95.6753 9.71317 603.992 +90.5185 9.73895 605.595 +92.5919 10.5936 658.74 +81.9313 10.0068 622.25 +91.9748 12.0448 748.978 +79.9781 11.2872 701.868 +92.0687 14.0853 875.862 +78.0568 13.0349 810.546 +91.1736 16.7568 1041.99 +79.0711 16.155 1004.56 +91.1926 20.9697 1303.95 +70.9079 18.6415 1159.18 +92.2474 28.3029 1759.95 +64.4782 23.7461 1476.6 +72.4479 33.3593 2074.37 +51.6 31.6851 1970.27 +57.1723 52.667 3274.98 +28.5873 52.6731 3275.36 +2.00584e-13 52.675 3275.48 +-28.5873 52.6731 3275.36 +-57.1723 52.667 3274.98 +-85.7531 52.657 3274.36 +-113.012 52.0371 3235.81 +-142.893 52.6248 3272.36 +-115.95 35.5754 2212.17 +-156.046 41.0242 2551 +-131.393 30.2136 1878.77 +-147.44 30.1236 1873.17 +-142.883 26.2605 1632.95 +-147.67 24.6598 1533.41 +-126.093 19.2905 1199.53 +-136.285 19.2337 1196.01 +-137.566 18.0154 1120.25 +-169.214 20.6672 1285.14 +-120.733 13.8133 858.947 +-128.18 13.791 857.564 +-512.526 52.0328 3235.54 +-151.662 14.5729 906.181 +-138.641 12.6429 786.169 +-597.058 51.7993 3221.02 +-153.83 12.7252 791.286 +-155.826 12.3155 765.81 +-110.817 8.38312 521.286 +-116.488 8.44889 525.375 +-119.741 8.33977 518.59 +-123.889 8.29764 515.97 +-792.705 51.1228 3178.96 +-134.504 8.3628 520.022 +-847.969 50.8863 3164.25 +-875.553 50.7654 3156.73 +-903.181 50.6469 3149.36 +-414.35 22.4924 1398.64 +-159.255 8.37582 520.832 +-985.323 50.2492 3124.64 +-142.457 7.04987 438.38 +-146.595 7.04487 438.069 +-445.052 20.7831 1292.35 +-154.82 7.02993 437.14 +-412.442 18.221 1133.03 +-438.109 18.8417 1171.63 +-396.928 16.6267 1033.9 +-410.885 16.7724 1042.96 +-406.373 16.173 1005.68 +-420.914 16.3397 1016.05 +-398.976 15.1136 939.806 +-412.984 15.2723 949.676 +-411.902 14.8759 925.027 +-415.647 14.6654 911.936 +-417.462 14.3952 895.135 +-429.736 14.487 900.845 +-378.621 12.4824 776.188 +-434.82 14.0232 872.001 +-140.374 4.4299 275.463 +-144.112 4.4514 276.8 +-143.705 4.34582 270.235 +-145.867 4.31984 268.619 +-108.84 3.15725 196.327 +-151.913 4.31744 268.47 +-107.7 2.99951 186.518 +-110.39 3.01337 187.38 +-110.579 2.95918 184.01 +-112.285 2.94629 183.208 +-113.403 2.91815 181.459 +-115.519 2.91569 181.306 +-117.206 2.90207 180.459 +-118.225 2.8721 178.595 +-123.022 2.93272 182.364 +-122.4 2.86367 178.071 +-480.6 11.0365 686.278 +-489.126 11.0262 685.641 +-487.685 10.7933 671.154 +-496.32 10.7852 670.651 +-495.173 10.5661 657.032 +-503.141 10.5435 655.622 +-501.949 10.3305 642.382 +-508.906 10.2874 639.699 +-522.336 10.3718 644.948 +-514.015 10.0264 623.469 +-517.058 9.90831 616.126 +-523.585 9.85739 612.96 +-160.406 2.96709 184.502 +-164.595 2.99146 186.017 +-164.205 2.9324 182.344 +-164.506 2.88671 179.504 +-539.938 9.31027 578.938 +-546.003 9.25164 575.293 +-546.835 9.10527 566.191 +-553.368 9.05457 563.038 +-553.806 8.90495 553.734 +-560.187 8.8517 550.423 +-562.308 8.73142 542.944 +-567.388 8.65773 538.361 +-384.838 5.77044 358.822 +-573.159 8.44504 525.136 +-578.613 8.3772 520.918 +-389.232 5.53722 344.319 +-378.94 5.29672 329.364 +-385.45 5.29347 329.162 +-376.664 5.08209 316.018 +-383.575 5.08426 316.153 +-380.102 4.9493 307.761 +-386.53 4.94382 307.42 +-139.951 1.75815 109.327 +-383.904 4.73671 294.542 +-140.4 1.7012 105.785 +-142.685 1.69769 105.567 +-139.717 1.63225 101.498 +-143.203 1.64246 102.133 +-141.058 1.58818 98.7571 +-141.338 1.56195 97.1261 +-146.905 1.59331 99.0762 +-146.514 1.55932 96.9628 +-378.66 3.95404 245.873 +-380.96 3.90247 242.667 +-378.993 3.80797 236.79 +-381.045 3.75465 233.475 +-378.268 3.65466 227.257 +-382.219 3.62021 225.115 +-376.981 3.49971 217.622 +-381.129 3.46727 215.604 +-378.186 3.37079 209.605 +-381.055 3.32679 206.869 +-709.448 6.06553 377.171 +-381.149 3.19039 198.387 +-717.171 5.87574 365.37 +-737.694 5.91407 367.753 +-403.289 3.1628 196.672 +-403.456 3.09432 192.413 +-402.944 3.02128 187.872 +-401.475 2.94196 182.939 +-400.042 2.86393 178.087 +-403.598 2.82178 175.466 +-403.457 2.75374 171.235 +-405.86 2.70318 168.091 +-400.914 2.60457 161.959 +-405.662 2.56943 159.774 +-403.213 2.48878 154.759 +-405.673 2.43887 151.655 +-403.316 2.3604 146.776 +-405.147 2.30693 143.451 +-403.075 2.23168 138.772 +-405.883 2.1837 135.788 +-381.374 1.99251 123.9 +-403.995 2.0482 127.363 +-379.27 1.8645 115.94 +-380.747 1.81348 112.767 +-377.391 1.74005 108.201 +-380.441 1.69649 105.492 +-378.933 1.63264 101.522 +-381.45 1.58624 98.6369 +-378.318 1.51671 94.3131 +-379.516 1.46507 91.1019 +-377.666 1.40199 87.1797 +-379.974 1.35451 84.2274 +-378.25 1.29279 80.3891 +-380.015 1.24319 77.3049 +-377.828 1.18092 73.4329 +-381.601 1.13724 70.7165 +-376.787 1.06829 66.4292 +-379.227 1.02042 63.4526 +-378.976 0.965157 60.0161 +-379.288 0.911468 56.6776 +-377.688 0.853512 53.0737 +-377.74 0.799644 49.7241 +-378.557 0.747393 46.475 +-378.551 0.693517 43.1248 +-378.714 0.640037 39.7993 +-378.748 0.58641 36.4646 +-378.654 0.532682 33.1236 +-378.43 0.478899 29.7792 +-377.778 0.42477 26.4134 +-143.831 0.141453 8.79595 +-378.381 0.318859 19.8275 +-378.34 0.265613 16.5166 +-145.511 0.0817061 5.08071 +-148.749 0.0626319 3.89463 +-144.878 0.0406628 2.52852 +-144.095 0.0202199 1.25733 +95.8 0 0 +96.0963 0.0210486 0.838356 +95.7854 0.0419641 1.67141 +96.0671 0.0631391 2.51481 +95.7416 0.0839154 3.34232 +96.9077 0.106196 4.22975 +95.6687 0.125841 5.0122 +97.0187 0.148936 5.93205 +95.6664 0.167904 6.68754 +96.9004 0.191411 7.62382 +96.332 0.211534 8.4253 +95.8567 0.231663 9.22704 +96.2697 0.253962 10.1152 +96.5752 0.276175 10.9999 +96.0785 0.296093 11.7933 +96.3684 0.318434 12.6831 +95.7589 0.337783 13.4538 +95.9345 0.359857 14.333 +96.2996 0.382821 15.2476 +96.4587 0.405141 16.1366 +96.0188 0.424944 16.9254 +96.1623 0.44733 17.817 +95.7087 0.46694 18.598 +95.8366 0.489386 19.4921 +96.3475 0.514011 20.4728 +96.3604 0.536181 21.3559 +95.9755 0.556137 22.1507 +96.848 0.583583 23.2439 +96.4474 0.603557 24.0394 +96.4275 0.625915 24.9299 +96.7858 0.650911 25.9255 +95.8812 0.667388 26.5818 +96.9913 0.698049 27.803 +96.2655 0.715702 28.5061 +96.4911 0.740429 29.491 +96.3254 0.76229 30.3617 +96.8176 0.789563 31.448 +95.9704 0.80596 32.1011 +96.9157 0.837572 33.3602 +96.2437 0.855418 34.071 +96.3185 0.8799 35.0461 +96.2899 0.903598 35.99 +96.7189 0.93185 37.1152 +96.5773 0.954838 38.0308 +96.8907 0.982537 39.1341 +96.8226 1.0066 40.0926 +97.2053 1.03562 41.2482 +97.1167 1.05987 42.2142 +97.3839 1.08825 43.3444 +96.4559 1.10329 43.9437 +97.1562 1.1371 45.2904 +96.4864 1.1551 46.0071 +97.1596 1.18939 47.373 +96.2949 1.20503 47.9958 +97.1197 1.24203 49.4694 +96.2407 1.25745 50.0839 +96.9476 1.29381 51.5318 +95.9668 1.3078 52.0893 +96.8204 1.34703 53.6515 +96.5224 1.37065 54.5926 +97.0814 1.4068 56.0323 +96.1578 1.42164 56.6235 +96.8599 1.46075 58.181 +95.8368 1.47404 58.7103 +96.3383 1.51093 60.1798 +96.231 1.53872 61.2866 +96.7826 1.57751 62.8315 +95.6467 1.58895 63.2873 +96.3342 1.63089 64.9577 +95.3514 1.64482 65.5126 +96.7419 1.70019 67.7181 +95.5772 1.71111 68.153 +96.8393 1.76592 70.3357 +95.7394 1.7781 70.8211 +96.2356 1.82015 72.4959 +95.7577 1.84421 73.4544 +96.9253 1.90066 75.7025 +95.2434 1.9015 75.7361 +96.2884 1.95704 77.9482 +95.0641 1.96688 78.3401 +96.9046 2.04087 81.287 +95.6591 2.05061 81.6749 +96.8292 2.11265 84.1459 +95.5667 2.12213 84.5237 +96.6831 2.18497 87.0265 +95.4037 2.19419 87.3939 +96.5387 2.25951 89.9954 +95.1691 2.26675 90.2836 +96.2477 2.33284 92.916 +94.791 2.338 93.1215 +96.5201 2.42256 96.4897 +94.5527 2.41497 96.1872 +95.9323 2.49336 99.3095 +94.6488 2.50335 99.7076 +96.0936 2.58641 103.016 +94.6502 2.59256 103.26 +96.0202 2.67659 106.607 +94.5559 2.68248 106.842 +95.719 2.76371 110.077 +94.2999 2.77121 110.376 +95.9682 2.87058 114.334 +94.0124 2.86244 114.01 +95.7826 2.96876 118.245 +93.7507 2.9582 117.824 +96.1663 3.08937 123.048 +93.871 3.07049 122.296 +100.503 3.34751 133.33 +93.0303 3.15553 125.683 +118.556 4.09564 163.128 +115.792 4.07445 162.284 +118.157 4.23534 168.692 +115.377 4.2135 167.822 +118.437 4.40714 175.535 +115.631 4.38478 174.644 +118.568 4.58256 182.521 +115.519 4.55118 181.272 +118.596 4.76362 189.733 +115.263 4.72093 188.033 +118.613 4.9547 197.344 +115.11 4.90478 195.355 +117.05 5.0885 202.673 +115.67 5.13142 204.383 +112.136 5.07754 202.236 +111.273 5.1438 204.875 +107.368 5.06825 201.866 +106.525 5.13609 204.569 +103.056 5.07648 202.194 +102.135 5.14154 204.785 +98.3266 5.05997 201.536 +97.3816 5.12435 204.101 +94.5397 5.0886 202.677 +93.0986 5.12738 204.222 +95.095 5.36083 213.52 +91.2737 5.26866 209.849 +94.7914 5.60497 223.244 +91.1935 5.5258 220.091 +95.1126 5.90861 235.338 +91.1855 5.81013 231.415 +94.8242 6.20009 246.947 +90.6337 6.08428 242.335 +94.466 6.51428 259.461 +90.3949 6.40696 255.187 +94.1543 6.86318 273.358 +89.5751 6.71931 267.628 +94.1266 7.27099 289.601 +88.9187 7.07828 281.925 +93.939 7.71196 307.164 +88.7832 7.52286 299.633 +94.1577 8.2417 328.264 +88.3223 7.99354 318.38 +93.5631 8.76413 349.072 +87.9585 8.53643 340.003 +93.5028 9.41262 374.901 +87.2385 9.12036 363.261 +93.3097 10.1443 404.042 +86.7057 9.81633 390.981 +93.1444 10.9986 438.072 +85.808 10.5858 421.627 +93.1911 12.0332 479.276 +85.0493 11.5176 458.74 +94.4472 13.444 535.468 +84.2898 12.6423 503.537 +95.6753 15.1616 603.88 +90.888 15.2639 607.954 +92.5919 16.5359 658.617 +81.6833 15.5726 620.251 +91.9748 18.8011 748.839 +77.5442 17.0823 680.383 +92.0687 21.9861 875.699 +75.3827 19.6495 782.632 +91.1736 26.1562 1041.79 +77.7059 24.7815 987.036 +91.1926 32.7322 1303.71 +70.7064 29.0155 1155.68 +92.2474 44.1788 1759.63 +64.4738 37.0635 1476.22 +72.4479 52.0715 2073.99 +51.7518 49.6037 1975.7 +57.1723 82.2094 3274.37 +17.2375 49.5761 1974.6 +2.00584e-13 82.2219 3274.87 +-17.2384 49.5786 1974.7 +-57.1723 82.2094 3274.37 +-51.7309 49.5837 1974.9 +-113.012 81.2263 3235.21 +-86.2137 49.5611 1974 +-115.95 55.5306 2211.76 +-120.778 49.5633 1974.09 +-131.393 47.1613 1878.42 +-148.139 47.2434 1881.69 +-142.883 40.9907 1632.65 +-148.12 38.6096 1537.81 +-126.093 30.1111 1199.31 +-136.851 30.1472 1200.75 +-137.566 28.1207 1120.04 +-170.076 32.4242 1291.44 +-120.733 21.5615 858.787 +-128.712 21.6162 860.964 +-512.526 81.2195 3234.94 +-152.983 22.9452 913.9 +-138.641 19.7346 786.023 +-597.058 80.855 3220.43 +-153.83 19.8631 791.139 +-156.384 19.2925 768.411 +-110.817 13.0855 521.189 +-116.834 13.2273 526.839 +-119.741 13.0178 518.494 +-124.31 12.996 517.624 +-792.705 79.7991 3178.37 +-135.105 13.112 522.247 +-847.969 79.4299 3163.66 +-875.553 79.2412 3156.15 +-903.181 79.0562 3148.78 +-415.685 35.2222 1402.89 +-159.255 13.0741 520.735 +-985.323 78.4355 3124.06 +-142.457 11.0043 438.299 +-146.69 11.0037 438.272 +-445.052 32.441 1292.11 +-1093.65 77.5154 3087.41 +-412.442 28.4417 1132.82 +-439.755 29.521 1175.81 +-396.928 25.9532 1033.7 +-411.508 26.2202 1044.34 +-406.373 25.2449 1005.49 +-421.87 25.5629 1018.16 +-398.976 23.5913 939.632 +-413.303 23.8575 950.234 +-411.902 23.2203 924.856 +-416.062 22.9145 912.676 +-417.462 22.4699 894.969 +-432.534 22.7605 906.541 +-378.621 19.4841 776.043 +-436.872 21.9925 875.954 +-140.374 6.91476 275.412 +-144.296 6.95723 277.104 +-143.705 6.78352 270.185 +-146.201 6.75842 269.185 +-108.84 4.92825 196.29 +-152.06 6.74577 268.681 +-107.7 4.68202 186.483 +-110.542 4.71016 187.604 +-110.579 4.61908 183.976 +-112.337 4.60111 183.26 +-113.403 4.55502 181.425 +-115.251 4.54059 180.85 +-117.206 4.52992 180.425 +-118.722 4.50199 179.312 +-123.022 4.57776 182.331 +-122.854 4.48653 178.697 +-480.6 17.2272 686.151 +-491.1 17.2806 688.28 +-487.685 16.8475 671.03 +-497.093 16.8611 671.571 +-495.173 16.493 656.91 +-504.663 16.5074 657.483 +-501.949 16.1253 642.263 +-511.396 16.1365 642.71 +-522.336 16.1897 644.828 +-515.16 15.6854 624.742 +-517.058 15.4662 616.012 +-525.079 15.4306 614.594 +-160.406 4.63143 184.468 +-161.149 4.57169 182.089 +-164.205 4.57726 182.311 +-165.79 4.54112 180.871 +-539.938 14.5327 578.831 +-547.104 14.4703 576.346 +-546.835 14.2127 566.086 +-554.84 14.1711 564.431 +-553.806 13.9 553.632 +-561.685 13.8538 551.792 +-562.308 13.6291 542.843 +-568.839 13.5487 539.638 +-384.838 9.00724 358.755 +-577.657 13.2855 529.158 +-578.613 13.0762 520.821 +-584.635 12.9823 517.078 +-378.94 8.2678 329.303 +-388.567 8.32957 331.763 +-376.664 7.93278 315.959 +-383.42 7.93298 315.967 +-380.102 7.72551 307.704 +-384.026 7.66695 305.372 +-139.951 2.74435 109.307 +-385.728 7.42881 295.887 +-140.4 2.65545 105.766 +-143.569 2.6664 106.202 +-139.717 2.54783 101.479 +-143.203 2.56377 102.114 +-141.058 2.47903 98.7388 +-141.585 2.44235 97.2779 +-146.905 2.48704 99.0578 +-148.432 2.46585 98.2138 +-378.66 6.17198 245.828 +-381.129 6.0942 242.73 +-378.993 5.94398 236.746 +-381.727 5.87124 233.849 +-378.268 5.70466 227.214 +-382.477 5.65471 225.225 +-376.981 5.46281 217.581 +-382.434 5.4307 216.303 +-378.186 5.26156 209.566 +-382.725 5.21566 207.738 +-709.448 9.46786 377.101 +-383.543 5.01127 199.597 +-717.171 9.17162 365.302 +-730.893 9.14634 364.295 +-403.289 4.93691 196.635 +-403.726 4.83327 192.507 +-402.944 4.71601 187.837 +-406.753 4.65256 185.31 +-400.042 4.47039 178.054 +-404.24 4.41163 175.714 +-403.457 4.29839 171.203 +-405.214 4.21275 167.792 +-400.914 4.06554 161.929 +-405.197 4.00608 159.561 +-403.213 3.8848 154.73 +-405.86 3.80865 151.697 +-403.316 3.68441 146.749 +-405.996 3.60851 143.726 +-403.075 3.4835 138.746 +-407.684 3.42373 136.366 +-381.374 3.11017 123.877 +-400.37 3.1684 126.196 +-379.27 2.91036 115.918 +-379.213 2.81932 112.293 +-377.391 2.71609 108.181 +-382.079 2.65949 105.927 +-378.933 2.54843 101.503 +-381.741 2.4779 98.6937 +-378.318 2.36747 94.2956 +-380.586 2.29331 91.3417 +-377.666 2.18841 87.1635 +-378.998 2.10887 83.9954 +-378.25 2.01795 80.3742 +-379.917 1.94003 77.2705 +-377.828 1.84333 73.4193 +-380.323 1.7692 70.4665 +-376.787 1.66752 66.4169 +-379.917 1.5957 63.5563 +-378.976 1.50654 60.005 +-378.694 1.42051 56.5784 +-377.688 1.33227 53.0639 +-379.922 1.25539 50.0018 +-378.557 1.16663 46.4664 +-379.147 1.08424 43.1847 +-378.714 0.999052 39.7919 +-378.45 0.914624 36.4291 +-378.654 0.831478 33.1175 +-379.925 0.750481 29.8914 +-377.778 0.663036 26.4085 +-378.493 0.581033 23.1423 +-378.381 0.497716 19.8239 +-377.94 0.414164 16.496 +-145.511 0.127538 5.07977 +-144.75 0.0951359 3.78923 +-144.878 0.0634717 2.52805 +-144.794 0.0317151 1.2632 +95.9 0 0 +95.8963 0.0285512 0.836388 +95.9854 0.0571598 1.67445 +96.7668 0.0864488 2.53245 +96.841 0.115374 3.37979 +95.8087 0.142713 4.18066 +95.8684 0.17141 5.02133 +96.7193 0.201819 5.91216 +96.664 0.230607 6.75547 +96.6013 0.259377 7.59826 +96.6309 0.288425 8.44919 +96.4539 0.316855 9.28204 +96.4686 0.345917 10.1334 +96.2771 0.374237 10.963 +96.277 0.403301 11.8144 +96.1702 0.431949 12.6536 +95.957 0.460091 13.478 +95.8356 0.48864 14.3144 +96.5959 0.521958 15.2904 +96.3601 0.550135 16.1158 +96.1172 0.57821 16.9382 +95.9657 0.606803 17.7758 +95.8068 0.635351 18.6122 +95.6407 0.663849 19.447 +96.3475 0.698682 20.4674 +95.3841 0.721434 21.1339 +96.0729 0.75671 22.1673 +95.8757 0.785283 23.0043 +95.5741 0.812972 23.8154 +95.4594 0.842251 24.6731 +96.1096 0.878585 25.7375 +95.8812 0.907164 26.5747 +96.5107 0.94414 27.6579 +95.9779 0.969928 28.4133 +95.9174 1.00046 29.3078 +96.3254 1.03616 30.3536 +96.0567 1.0648 31.1925 +95.9704 1.09552 32.0925 +96.3483 1.13183 33.1561 +96.0552 1.16047 33.9951 +96.5064 1.19836 35.1051 +96.1962 1.22704 35.9454 +95.7854 1.25442 36.7472 +97.3217 1.30789 38.3137 +96.9834 1.33681 39.161 +96.6378 1.36564 40.0054 +96.3769 1.39569 40.8857 +96.1079 1.42569 41.7646 +96.5618 1.46674 42.9671 +96.3649 1.49826 43.8904 +95.7967 1.52401 44.6448 +96.3961 1.56863 45.9518 +96.5305 1.60624 47.0537 +96.2949 1.63796 47.983 +96.496 1.67741 49.1386 +96.0633 1.70608 49.9783 +96.3296 1.74742 51.1895 +95.9668 1.77766 52.0754 +96.2082 1.8194 53.2981 +95.7391 1.84797 54.1351 +95.9556 1.89005 55.3677 +96.1578 1.9324 56.6083 +96.3456 1.97501 57.8566 +95.6662 2.00006 58.5902 +95.3206 2.03208 59.5282 +95.5563 2.07688 60.8406 +95.4407 2.11454 61.9438 +95.6467 2.15982 63.2703 +95.8367 2.20538 64.6051 +96.0107 2.25122 65.9479 +95.3493 2.27776 66.7254 +95.5772 2.32587 68.1348 +95.6258 2.37028 69.4358 +95.5786 2.41287 70.6832 +95.7564 2.46176 72.1156 +95.6784 2.50472 73.3739 +95.6645 2.54991 74.6978 +95.713 2.59741 76.0892 +95.7444 2.64513 77.4872 +95.6814 2.69089 78.8278 +95.679 2.73901 80.2375 +94.9747 2.7674 81.0689 +94.9425 2.81571 82.4842 +95.4919 2.8823 84.4349 +95.4198 2.93117 85.8664 +95.33 2.9802 87.3029 +95.2954 3.03174 88.8127 +94.9515 3.07409 90.0531 +94.9529 3.12831 91.6415 +94.791 3.17798 93.0966 +94.6816 3.2302 94.6265 +95.1134 3.30207 96.7318 +94.8903 3.35235 98.2046 +94.6488 3.40274 99.6809 +94.866 3.4707 101.672 +94.5826 3.52147 103.159 +94.9496 3.59765 105.391 +94.5559 3.64623 106.814 +94.1445 3.69485 108.238 +94.105 3.75906 110.119 +93.847 3.81566 111.777 +94.0124 3.89085 113.98 +94.1463 3.96642 116.193 +93.6885 4.01834 117.714 +93.8884 4.09985 120.102 +93.871 4.17364 122.264 +94.1841 4.26408 124.913 +92.6734 4.27278 125.168 +95.4563 4.48236 131.308 +115.85 5.54106 162.321 +115.69 5.63683 165.127 +115.377 5.7273 167.777 +115.641 5.8491 171.345 +115.631 5.96012 174.597 +115.518 6.06871 177.778 +115.466 6.18344 181.139 +115.257 6.29279 184.343 +115.211 6.41414 187.898 +114.905 6.52423 191.123 +115.059 6.66401 195.217 +115.25 6.8103 199.503 +115.621 6.97204 204.241 +113.639 6.99425 204.892 +111.703 7.01882 205.611 +109.058 6.9976 204.99 +106.802 6.99954 205.047 +104.327 6.98545 204.634 +102.135 6.98876 204.731 +99.9925 6.99439 204.896 +97.726 6.99002 204.768 +95.2159 6.96628 204.072 +93.0572 6.96642 204.076 +90.987 6.97204 204.241 +91.5528 7.18346 210.434 +91.392 7.34548 215.181 +91.1935 7.51109 220.032 +91.2167 7.70244 225.638 +90.929 7.87535 230.703 +91.0613 8.09321 237.085 +90.5986 8.267 242.176 +90.2933 8.46358 247.935 +90.2614 8.69595 254.742 +89.9219 8.90959 261 +89.7972 9.15605 268.22 +89.4604 9.39333 275.171 +89.1893 9.6506 282.707 +89.0272 9.93455 291.025 +89.0104 10.2518 300.319 +88.5072 10.5304 308.481 +88.2688 10.8588 318.102 +88.1796 11.2274 328.899 +88.1838 11.6331 340.784 +87.2854 11.9436 349.879 +87.0751 12.3738 362.483 +86.8536 12.8348 375.985 +86.6624 13.3364 390.681 +86.2418 13.8423 405.5 +85.9675 14.4157 422.298 +85.4443 14.9967 439.317 +85.0858 15.6623 458.815 +84.584 16.3657 479.421 +84.1413 17.154 502.515 +84.3651 18.1725 532.35 +90.8584 20.741 607.594 +85.4384 20.7403 607.572 +81.5919 21.1438 619.391 +80.6531 22.41 656.485 +77.7593 23.284 682.088 +76.6403 24.8772 728.759 +75.3539 26.6989 782.124 +75.3984 29.4019 861.306 +76.121 32.9978 966.646 +72.8467 35.5412 1041.15 +70.9506 39.5761 1159.35 +67.7855 44.1269 1292.67 +64.2993 50.2433 1471.84 +59.9922 58.6104 1716.95 +85.7635 111.738 3273.27 +34.5139 67.4585 1976.15 +28.5907 111.772 3274.27 +9.6303e-14 53.6584 1571.88 +-28.5907 111.772 3274.27 +-34.5121 67.4551 1976.05 +-85.7635 111.738 3273.27 +-69.0103 67.421 1975.05 +-142.91 111.669 3271.27 +-103.5 67.3763 1973.74 +-200.013 111.567 3268.29 +-138.104 67.3794 1973.83 +-147.738 64.0435 1876.11 +-168.158 65.5739 1920.94 +-148.273 52.5353 1538.98 +-171.698 55.7327 1632.65 +-137.044 41.036 1202.12 +-147.852 41.0817 1203.46 +-170.219 44.1106 1292.19 +-277.01 67.2446 1969.88 +-128.89 29.4228 861.92 +-136.114 29.3193 858.888 +-153.115 31.2158 914.444 +-568.924 110.078 3224.65 +-597.131 109.918 3219.95 +-152.933 26.842 786.316 +-156.225 26.197 767.422 +-169.323 27.1773 796.139 +-116.964 17.9995 527.283 +-120.349 17.7845 520.985 +-124.52 17.6949 518.36 +-129.283 17.6903 518.224 +-134.98 17.8063 521.624 +-848.072 107.98 3163.21 +-875.553 107.711 3155.3 +-903.181 107.459 3147.94 +-930.633 107.186 3139.93 +-958.014 106.905 3131.7 +-985.202 106.602 3122.84 +-168.476 17.6899 518.214 +-147.071 14.9958 439.292 +-150.966 14.9579 438.182 +-1093.65 105.365 3086.58 +-469.799 44.0362 1290.01 +-439.44 40.0985 1174.66 +-433.339 38.5138 1128.23 +-412.387 35.7169 1046.3 +-416.488 35.1686 1030.24 +-422.75 34.8196 1020.02 +-424.998 34.1584 1000.65 +-414.38 32.5133 952.454 +-416.132 31.8869 934.104 +-417.928 31.2868 916.525 +-430.225 31.4766 922.084 +-432.793 30.9562 906.841 +-434.207 30.3724 889.738 +-437.185 29.9153 876.347 +-392.429 26.276 769.738 +-144.527 9.4719 277.472 +-145.818 9.35624 274.084 +-146.583 9.21053 269.816 +-149.418 9.19637 269.401 +-152.208 9.17826 268.87 +-112.8 6.66551 195.261 +-110.643 6.40827 187.726 +-111.403 6.32537 185.297 +-112.337 6.25417 183.211 +-113.88 6.21759 182.14 +-115.412 6.18054 181.055 +-117.424 6.16884 180.712 +-118.777 6.12227 179.348 +-120.171 6.07819 178.056 +-122.797 6.09563 178.567 +-127.105 6.19296 181.418 +-491.1 23.4891 688.096 +-494.798 23.2344 680.635 +-497.986 22.96 672.597 +-501.011 22.6828 664.477 +-504.846 22.4462 657.545 +-507.613 22.166 649.337 +-511.209 21.9259 642.304 +-514.218 21.6642 634.636 +-515.605 21.3391 625.115 +-531.264 21.6004 632.767 +-525.663 20.9978 615.115 +-528.849 20.7555 608.017 +-162.143 6.25249 183.162 +-163.87 6.20906 181.89 +-164.912 6.13991 179.864 +-543.894 19.8986 582.915 +-547.724 19.6914 576.844 +-551.489 19.4834 570.752 +-555.05 19.2698 564.494 +-558.473 19.0531 558.148 +-562.041 18.8431 551.995 +-565.113 18.6182 545.406 +-569.056 18.4234 539.7 +-2396.13 76.2309 2233.13 +-579.647 18.1209 530.84 +-581.659 17.8678 523.424 +-584.335 17.6374 516.675 +-387.468 11.4911 336.625 +-389.404 11.3465 332.388 +-386.393 11.0613 324.033 +-387.124 10.8873 318.934 +-384.92 10.6342 311.521 +-383.635 10.4109 304.979 +-385.652 10.2795 301.13 +-386.125 10.1082 296.112 +-141.518 3.63825 106.58 +-142.926 3.60813 105.697 +-142.549 3.53338 103.508 +-143.122 3.48288 102.029 +-141.877 3.38925 99.2856 +-142.409 3.33915 97.818 +-143.506 3.30235 96.74 +-147.514 3.33106 97.5809 +-656.008 14.5342 425.769 +-380.37 8.26717 242.181 +-381.706 8.13736 238.378 +-383.518 8.01806 234.883 +-383.582 7.86317 230.346 +-381.271 7.66208 224.455 +-382.87 7.54145 220.921 +-382.782 7.38854 216.442 +-380.897 7.20318 211.012 +-381.231 7.06181 206.871 +-381.08 6.91282 202.506 +-382.834 6.79911 199.175 +-717.617 12.4745 365.431 +-725.523 12.3411 361.522 +-2945.08 49.0053 1435.57 +-734.614 11.9542 350.189 +-406.026 6.45938 189.223 +-406.207 6.31561 185.011 +-408.446 6.20415 181.746 +-407.175 6.04015 176.942 +-404.562 5.85869 171.626 +-406.415 5.74324 168.244 +-404.994 5.58241 163.533 +-406.406 5.46164 159.995 +-405.827 5.31477 155.692 +-406.703 5.18775 151.971 +-404.726 5.02563 147.222 +-406.938 4.91632 144.02 +-406.478 4.77501 139.881 +-405.977 4.63431 135.759 +-404.199 4.48059 131.256 +-397.795 4.27903 125.351 +-385.104 4.01681 117.669 +-380.651 3.84677 112.688 +-380.179 3.71921 108.952 +-380.249 3.59765 105.391 +-381.154 3.48432 102.071 +-380.869 3.36046 98.4422 +-380.259 3.23456 94.754 +-381.461 3.12441 91.5273 +-380.979 3.00075 87.9047 +-380.267 2.87613 84.2541 +-379.717 2.75359 80.6643 +-381.975 2.65131 77.6684 +-379.301 2.51536 73.6857 +-380.323 2.40483 70.4477 +-379.643 2.28381 66.9024 +-378.241 2.15943 63.259 +-378.581 2.04567 59.9264 +-379.98 1.93742 56.7553 +-379.174 1.81805 53.2584 +-380.913 1.71088 50.119 +-379.153 1.58826 46.527 +-379.942 1.47687 43.2637 +-379.808 1.36191 39.8962 +-379.644 1.24715 36.5343 +-379.451 1.13259 33.1783 +-379.626 1.01931 29.8598 +-378.276 0.902439 26.4363 +-379.491 0.791867 23.1972 +-377.482 0.674926 19.7715 +-379.439 0.565194 16.557 +-377.17 0.449352 13.1634 +-144.85 0.129405 3.79083 +-145.278 0.0865136 2.53435 +-145.394 0.0432884 1.2681 +95.9 0 0 +95.8963 0.0360954 0.836096 +96.7853 0.0728653 1.68782 +96.7668 0.109291 2.53157 +95.9415 0.144504 3.34723 +96.7079 0.182115 4.21843 +96.6673 0.218508 5.06141 +96.7193 0.255147 5.9101 +96.5642 0.29124 6.74615 +96.5016 0.327574 7.58777 +96.5313 0.364259 8.43753 +96.4539 0.400578 9.27881 +96.3692 0.436867 10.1194 +96.3765 0.47361 10.9705 +96.277 0.509866 11.8103 +96.071 0.545523 12.6362 +95.957 0.581662 13.4734 +95.8356 0.617755 14.3094 +96.5959 0.659876 15.2851 +95.3738 0.688378 15.9452 +96.1172 0.730991 16.9323 +95.9657 0.767139 17.7696 +95.8068 0.803231 18.6057 +95.6407 0.839259 19.4402 +95.4672 0.875226 20.2733 +95.2865 0.911124 21.1048 +96.0729 0.956658 22.1596 +95.8757 0.99278 22.9963 +95.5741 1.02779 23.8071 +96.3307 1.07452 24.8896 +96.1096 1.11074 25.7285 +96.6521 1.15609 26.7791 +96.4145 1.19242 27.6207 +96.1696 1.22866 28.4602 +95.9174 1.26482 29.2976 +95.6578 1.30087 30.1327 +96.0567 1.34615 31.1817 +95.9704 1.38499 32.0813 +96.3483 1.43089 33.1445 +96.0552 1.4671 33.9832 +96.5064 1.515 35.0928 +96.1962 1.55127 35.9328 +96.8123 1.60287 37.1282 +96.4843 1.63925 37.9708 +96.2417 1.67712 38.848 +96.7302 1.72814 40.0297 +96.3769 1.76447 40.8714 +96.1079 1.8024 41.75 +96.4704 1.85254 42.9114 +96.1829 1.89057 43.7923 +95.978 1.93035 44.7137 +96.3961 1.98311 45.9358 +96.5305 2.03066 47.0373 +96.116 2.06691 47.877 +96.496 2.12064 49.1214 +96.0633 2.15688 49.9609 +96.4179 2.21117 51.2186 +95.7911 2.24326 51.9619 +96.2082 2.30015 53.2795 +95.7391 2.33627 54.1162 +95.9556 2.38947 55.3484 +96.1578 2.443 56.5886 +95.6599 2.4791 57.4247 +95.8368 2.53304 58.6741 +95.9142 2.58502 59.8781 +95.3876 2.62102 60.712 +95.4407 2.67326 61.9222 +95.6467 2.73051 63.2483 +95.0906 2.76641 64.0797 +96.0107 2.84607 65.9249 +95.3493 2.87962 66.7022 +95.5772 2.94044 68.1111 +95.5449 2.99405 69.3528 +95.659 3.05299 70.718 +95.0376 3.08888 71.5494 +95.6784 3.16654 73.3483 +95.6645 3.22368 74.6717 +95.0086 3.25956 75.503 +95.6667 3.34134 77.3972 +95.5271 3.39643 78.6732 +94.9895 3.4378 79.6315 +95.0507 3.50143 81.1055 +94.9425 3.55971 82.4554 +95.4919 3.6439 84.4055 +95.4941 3.70856 85.9033 +95.33 3.76767 87.2725 +95.2954 3.83282 88.7817 +95.0966 3.8923 90.1593 +94.9529 3.95491 91.6096 +94.6483 4.01166 92.9241 +94.6109 4.08068 94.5229 +95.1134 4.17458 96.698 +94.7514 4.23194 98.0266 +94.6488 4.30186 99.6462 +94.2522 4.3594 100.979 +94.6502 4.45515 103.197 +94.2805 4.51622 104.612 +94.5559 4.60969 106.777 +94.1445 4.67115 108.2 +93.9102 4.74249 109.853 +93.7184 4.81728 111.585 +94.0124 4.91894 113.94 +94.1463 5.01447 116.153 +94.1865 5.10712 118.299 +93.8884 5.18316 120.06 +93.871 5.27645 122.221 +93.4619 5.34947 123.913 +92.6734 5.40179 125.124 +94.6334 5.61792 130.131 +115.328 6.97357 161.533 +115.69 7.12626 165.069 +115.377 7.24064 167.719 +115.25 7.3696 170.706 +115.244 7.50978 173.953 +115.518 7.67226 177.716 +115.412 7.81364 180.991 +115.257 7.95554 184.278 +115.106 8.10163 187.662 +114.905 8.24814 191.056 +115.566 8.46203 196.01 +115.2 8.60605 199.346 +115.572 8.81049 204.082 +114.076 8.87631 205.606 +111.703 8.87342 205.54 +109.058 8.84659 204.918 +106.802 8.84905 204.975 +104.645 8.85815 205.186 +102.135 8.83542 204.659 +99.9486 8.83865 204.734 +97.726 8.83701 204.696 +95.5963 8.84219 204.816 +93.3889 8.83857 204.732 +91.0277 8.81821 204.261 +91.2737 9.05388 209.72 +91.4311 9.29036 215.198 +91.1935 9.49575 219.955 +90.9545 9.70969 224.911 +90.929 9.95627 230.622 +91.0255 10.2276 236.908 +90.5636 10.4474 241.998 +90.3275 10.704 247.942 +90.2614 10.9937 254.653 +89.987 11.2719 261.098 +89.7338 11.5672 267.936 +89.3986 11.8671 274.885 +89.0089 12.1759 282.037 +89.0272 12.5596 290.924 +88.9536 12.9524 300.023 +88.4796 13.3088 308.278 +88.3757 13.7447 318.376 +88.102 14.1816 328.495 +87.9084 14.661 339.601 +87.3096 15.1037 349.854 +87.3086 15.6853 363.328 +86.9211 16.2387 376.147 +86.7706 16.8814 391.033 +86.3249 17.5167 405.749 +85.9076 18.2121 421.857 +85.4443 18.9593 439.164 +85.0675 19.7965 458.556 +84.6014 20.6942 479.352 +84.2568 21.7165 503.03 +84.2243 22.9359 531.276 +91.0802 26.2855 608.865 +85.5636 26.259 608.25 +81.618 26.7392 619.373 +80.8603 28.4042 657.941 +77.5782 29.3678 680.261 +76.5044 31.3948 727.214 +75.421 33.7836 782.548 +75.5466 37.2438 862.698 +76.0426 41.6738 965.313 +72.7839 44.8935 1039.89 +70.7492 49.8915 1155.66 +69.2038 56.9543 1319.26 +64.1249 63.3467 1467.33 +114.341 141.224 3271.25 +85.774 141.28 3272.53 +57.1863 141.306 3273.15 +28.5907 141.305 3273.13 +2.00633e-13 141.328 3273.65 +-28.5942 141.323 3273.53 +-57.1863 141.306 3273.15 +-85.774 141.28 3272.53 +-114.355 141.242 3271.65 +-142.928 141.193 3270.53 +-171.489 141.134 3269.16 +-200.038 141.064 3267.55 +-228.571 140.984 3265.68 +-257.087 140.892 3263.56 +-285.583 140.79 3261.19 +-148.235 66.3995 1538.05 +-171.761 70.4849 1632.68 +-137.112 51.9045 1202.29 +-148.486 52.1594 1208.19 +-170.415 55.8303 1293.23 +-456.028 139.952 3241.79 +-128.978 37.2228 862.212 +-136.114 37.0664 858.588 +-155.343 40.0383 927.428 +-568.993 139.181 3223.92 +-597.131 138.961 3218.83 +-152.8 33.9048 785.355 +-156.564 33.1909 768.819 +-169.698 34.4344 797.621 +-117.224 22.8061 528.27 +-120.371 22.4879 520.9 +-124.73 22.4082 519.054 +-129.477 22.3981 518.819 +-135.28 22.5615 522.603 +-848.072 136.512 3162.1 +-875.553 136.171 3154.2 +-903.071 135.836 3146.45 +-930.519 135.491 3138.46 +-958.014 135.152 3130.6 +-985.323 134.787 3122.13 +-169.156 22.4544 520.124 +-146.88 18.9337 438.57 +-151.259 18.947 438.879 +-1093.65 133.205 3085.51 +-508.481 60.2559 1395.74 +-1147.38 132.362 3065.96 +-434.521 48.8232 1130.92 +-412.754 45.1945 1046.86 +-417.05 44.5213 1031.27 +-422.444 43.9882 1018.92 +-424.647 43.1484 999.469 +-414.699 41.136 952.854 +-416.62 40.3598 934.874 +-417.016 39.4675 914.205 +-430.437 39.8132 922.215 +-433.051 39.1592 907.066 +-435.04 38.4714 891.133 +-437.452 37.843 876.578 +-438.509 37.1197 859.822 +-144.25 11.9517 276.844 +-145.536 11.8056 273.459 +-146.583 11.6442 269.722 +-149.418 11.6263 269.307 +-150.977 11.5096 266.603 +-112.95 8.43796 195.453 +-110.694 8.10525 187.746 +-111.3 7.98936 185.062 +-112.389 7.91038 183.232 +-113.986 7.86777 182.245 +-115.681 7.83184 181.413 +-117.261 7.78802 180.398 +-118.998 7.75438 179.619 +-120.618 7.71284 178.657 +-122.967 7.71694 178.752 +-127.391 7.84702 181.765 +-491.855 29.7413 688.914 +-495.033 29.3876 680.72 +-497.867 29.0198 672.202 +-501.553 28.7074 664.964 +-504.846 28.3772 657.316 +-508.352 28.0637 650.055 +-511.769 27.7498 642.783 +-514.344 27.3952 634.57 +-516.241 27.0109 625.668 +-529.4 27.212 630.327 +-525.339 26.5296 614.52 +-529.177 26.256 608.183 +-165.059 8.04676 186.391 +-165.141 7.9106 183.237 +-164.979 7.76546 179.875 +-543.894 25.1565 582.712 +-548.619 24.9351 577.585 +-551.211 24.6191 570.265 +-555.05 24.3615 564.297 +-558.332 24.0815 557.812 +-561.613 23.8039 551.382 +-565.761 23.5647 545.841 +-569.056 23.2914 539.511 +-2396.13 96.3735 2232.35 +-580.532 22.944 531.465 +-580.991 22.563 522.639 +-584.635 22.3092 516.76 +-388.675 14.5727 337.556 +-390.164 14.3727 332.922 +-386.469 13.9868 323.984 +-384.501 13.6708 316.663 +-384.532 13.4305 311.098 +-385.278 13.2181 306.179 +-386.046 13.0089 301.332 +-387.87 12.8368 297.346 +-141.358 4.59437 106.422 +-142.845 4.55896 105.602 +-142.711 4.47205 103.589 +-143.61 4.41818 102.341 +-142.041 4.28975 99.3656 +-142.244 4.21657 97.6707 +-143.838 4.18458 96.9297 +-148.015 4.22551 97.8776 +-656.427 18.3863 425.892 +-384.165 10.5559 244.512 +-381.706 10.2875 238.295 +-379.34 10.0263 232.244 +-381.011 9.87419 228.721 +-382.563 9.71948 225.137 +-382.87 9.53414 220.844 +-383.566 9.35993 216.809 +-381.597 9.12319 211.325 +-380.528 8.91133 206.418 +-381.433 8.74752 202.623 +-383.721 8.61553 199.566 +-717.617 15.7706 365.304 +-726.06 15.6135 361.663 +-970.518 20.4163 472.913 +-405.261 8.33721 193.119 +-406.026 8.16615 189.157 +-406.753 7.99514 185.196 +-405.249 7.78207 180.26 +-405.065 7.59656 175.963 +-404.378 7.40338 171.488 +-405.214 7.23935 167.689 +-406.57 7.08494 164.112 +-405.104 6.88265 159.427 +-406.294 6.72682 155.817 +-406.703 6.55852 151.918 +-407.263 6.39342 148.094 +-405.619 6.19523 143.503 +-407.235 6.04794 140.092 +-405.598 5.85337 135.585 +-405.245 5.67917 131.549 +-397.414 5.40451 125.187 +-383.861 5.06179 117.249 +-381.323 4.87179 112.848 +-380.179 4.70194 108.914 +-380.827 4.55521 105.515 +-380.188 4.39381 101.776 +-379.998 4.23868 98.1827 +-380.55 4.09236 94.7935 +-381.947 3.95501 91.612 +-380.979 3.79364 87.874 +-382.122 3.65383 84.6357 +-380.108 3.48476 80.7193 +-380.407 3.33812 77.3226 +-379.693 3.18329 73.7362 +-380.323 3.04026 70.4231 +-379.643 2.88726 66.8791 +-379.917 2.74212 63.5171 +-378.581 2.5862 59.9055 +-379.584 2.4468 56.6765 +-377.886 2.29063 53.0591 +-379.624 2.15563 49.932 +-378.756 2.00583 46.462 +-378.75 1.86124 43.1129 +-378.813 1.71726 39.7778 +-379.943 1.57792 36.5503 +-380.148 1.43448 33.2277 +-379.626 1.28864 29.8494 +-378.576 1.14179 26.448 +-377.495 0.995838 23.0671 +-378.481 0.855519 19.8168 +-378.539 0.712846 16.512 +-378.269 0.569741 13.1972 +-143.351 0.161904 3.75028 +-144.378 0.108696 2.51778 +-143.795 0.0541244 1.25371 +95.9 0 0 +95.8963 0.0436366 0.835737 +95.8854 0.0872701 1.67141 +95.8671 0.130897 2.50696 +96.741 0.176151 3.37367 +96.7079 0.220164 4.21662 +96.6673 0.264159 5.05923 +96.7193 0.308453 5.90755 +96.5642 0.352087 6.74324 +96.5016 0.396013 7.58451 +96.5313 0.440362 8.4339 +96.3544 0.48377 9.26525 +96.3692 0.528139 10.115 +96.3765 0.572559 10.9658 +96.1777 0.615754 11.793 +96.071 0.659496 12.6308 +95.957 0.703186 13.4676 +95.7367 0.746052 14.2885 +95.6082 0.789586 15.1223 +96.3601 0.840805 16.1033 +96.1172 0.883713 16.925 +96.064 0.928363 17.7802 +95.8068 0.971046 18.5977 +95.4447 1.01252 19.392 +95.4672 1.05808 20.2646 +95.3841 1.10261 21.1174 +96.0729 1.15653 22.15 +95.8757 1.2002 22.9864 +95.6712 1.24378 23.8211 +96.2339 1.29771 24.8539 +96.1096 1.34279 25.7175 +95.7849 1.38508 26.5274 +96.4145 1.44155 27.6088 +96.1696 1.48536 28.4479 +95.9174 1.52907 29.285 +96.5162 1.58676 30.39 +95.9616 1.62579 31.1374 +96.5393 1.68428 32.2577 +96.3483 1.72984 33.1303 +96.8093 1.78754 34.2354 +96.5064 1.83152 35.0777 +96.1026 1.87354 35.8824 +96.7189 1.93588 37.0764 +96.4843 1.98173 37.9545 +96.9834 2.04313 39.1305 +96.6378 2.08719 39.9742 +96.2848 2.13108 40.8149 +96.1079 2.17897 41.7321 +96.5618 2.24171 42.9336 +96.3649 2.28988 43.8563 +95.978 2.33364 44.6944 +96.2156 2.39294 45.8301 +96.7102 2.45949 47.1045 +96.116 2.49874 47.8564 +96.496 2.56369 49.1003 +96.8616 2.62917 50.3543 +96.4179 2.67314 51.1966 +95.7911 2.71194 51.9395 +96.2082 2.7807 53.2566 +95.6521 2.8218 54.0437 +95.9556 2.88868 55.3246 +96.1578 2.95341 56.5642 +95.5742 2.99436 57.3486 +95.6662 3.05681 58.5446 +95.9142 3.12509 59.8524 +96.0623 3.19103 61.1151 +95.4407 3.23178 61.8956 +95.6467 3.30098 63.2211 +95.7538 3.36771 64.4989 +95.1866 3.41114 65.3309 +95.4312 3.48424 66.7308 +95.4958 3.55175 68.0238 +95.5449 3.61958 69.323 +95.5786 3.68773 70.6282 +94.9578 3.73108 71.4585 +95.1231 3.80589 72.8912 +95.7433 3.9004 74.7011 +95.7912 3.97303 76.0921 +95.1227 4.01646 76.924 +94.987 4.08281 78.1947 +95.679 4.1862 80.175 +95.6591 4.26006 81.5895 +95.5462 4.33079 82.9441 +95.4919 4.4052 84.3692 +95.4198 4.47988 85.7995 +94.7401 4.52665 86.6952 +95.2223 4.63004 88.6754 +95.0966 4.70549 90.1205 +94.9529 4.78118 91.5702 +94.791 4.8571 93.0241 +94.6109 4.93323 94.4822 +95.1134 5.04676 96.6564 +94.1262 5.08234 97.3379 +94.6488 5.20062 99.6033 +94.2522 5.27018 100.936 +94.6502 5.38594 103.152 +94.3474 5.46363 104.64 +94.4896 5.56885 106.656 +94.8005 5.68643 108.908 +94.17 5.74916 110.109 +94.3612 5.86366 112.302 +93.9488 5.94261 113.814 +94.1463 6.06212 116.103 +93.6885 6.14148 117.623 +93.8268 6.26193 119.93 +93.871 6.37883 122.169 +93.9433 6.50043 124.497 +92.9113 6.54709 125.391 +94.3395 6.77052 129.67 +115.328 8.43053 161.463 +115.232 8.58096 164.344 +115.377 8.75339 167.647 +115.697 8.94387 171.295 +115.189 9.07443 173.795 +115.463 9.2708 177.556 +115.412 9.4461 180.914 +115.31 9.62208 184.284 +115.159 9.79869 187.666 +115.369 10.0116 191.744 +115.465 10.221 195.754 +115.25 10.4086 199.347 +115.67 10.6603 204.169 +114.076 10.7308 205.518 +111.703 10.7273 205.451 +109.058 10.6949 204.83 +106.849 10.7024 204.975 +104.236 10.667 204.297 +102.447 10.714 205.197 +99.9925 10.69 204.736 +97.726 10.6833 204.608 +95.5963 10.6895 204.728 +93.3889 10.6852 204.644 +91.3937 10.7035 204.995 +91.3135 10.9503 209.721 +91.4702 11.2361 215.197 +91.1935 11.4797 219.861 +90.917 11.7335 224.722 +90.929 12.0364 230.523 +90.7388 12.3256 236.061 +90.5986 12.635 241.987 +90.2933 12.9354 247.742 +90.0277 13.2561 253.884 +89.694 13.5826 260.136 +89.6703 13.9739 267.631 +89.3677 14.3415 274.672 +88.8886 14.6999 281.535 +88.9979 15.1786 290.703 +88.698 15.6134 299.032 +88.7001 16.1294 308.913 +88.349 16.6113 318.143 +88.0761 17.1394 328.258 +87.9335 17.7291 339.55 +87.5999 18.3199 350.866 +87.2385 18.9472 362.881 +86.9436 19.6365 376.082 +86.5975 20.3676 390.085 +86.2002 21.1458 404.988 +85.8478 22.0018 421.382 +85.2535 22.8691 437.994 +85.104 23.9427 458.555 +84.584 25.0127 479.047 +84.0918 26.2022 501.829 +84.2087 27.7227 530.95 +91.0802 31.7772 608.603 +85.5358 31.7348 607.791 +81.7094 32.3618 619.8 +80.5556 34.2092 655.181 +77.6461 35.5345 680.564 +76.264 37.8346 724.616 +75.3635 40.8107 781.615 +75.3636 44.9159 860.238 +75.6581 50.1258 960.019 +72.7839 54.2728 1039.44 +70.4989 60.1018 1151.08 +68.3612 68.015 1302.64 +64.1859 76.6544 1468.1 +55.2075 82.4339 1578.79 +41.4381 82.5131 1580.31 +27.5661 82.3463 1577.11 +28.5942 170.848 3272.12 +2.00633e-13 170.855 3272.24 +-28.5942 170.848 3272.12 +-57.1863 170.829 3271.74 +-85.774 170.796 3271.12 +-114.355 170.75 3270.25 +-142.928 170.692 3269.13 +-171.489 170.621 3267.76 +-200.038 170.536 3266.14 +-228.571 170.439 3264.27 +-257.087 170.328 3262.16 +-285.583 170.205 3259.79 +-148.398 80.3602 1539.07 +-171.824 85.2423 1632.58 +-137.202 62.7903 1202.57 +-148.339 62.9947 1206.49 +-170.532 67.541 1293.56 +-456.028 169.192 3240.4 +-129.052 45.0254 862.335 +-136.223 44.8465 858.909 +-152.141 47.4056 907.921 +-568.993 168.259 3222.53 +-597.131 167.994 3217.45 +-152.952 41.0293 785.802 +-156.564 40.1253 768.488 +-170.051 41.7153 798.939 +-117.267 27.581 528.237 +-120.551 27.2269 521.455 +-124.683 27.0797 518.637 +-129.477 27.0776 518.596 +-135.28 27.2751 522.378 +-848.072 165.033 3160.74 +-875.66 164.641 3153.23 +-903.071 164.216 3145.1 +-930.633 163.819 3137.49 +-958.014 163.389 3129.26 +-985.202 162.927 3120.41 +-168.631 27.0614 518.286 +-147.229 22.9438 439.423 +-151.78 22.9844 440.201 +-1093.65 161.035 3084.18 +-508.994 72.9184 1396.55 +-1147.38 160.015 3064.65 +-434.306 58.9943 1129.87 +-412.497 54.6024 1045.76 +-417.424 53.8714 1031.75 +-423.21 53.2748 1020.33 +-424.568 52.1538 998.859 +-414.38 49.6921 951.713 +-416.132 48.7347 933.377 +-419.213 47.9647 918.629 +-431.197 48.2163 923.448 +-433.309 47.3688 907.216 +-435.04 46.509 890.75 +-437.095 45.712 875.485 +-394.472 40.3684 773.143 +-144.435 14.4672 277.08 +-145.63 14.2813 273.517 +-146.488 14.0678 269.43 +-149.855 14.0964 269.977 +-153.39 14.1366 270.747 +-112.75 10.1828 195.023 +-110.643 9.79415 187.579 +-111.557 9.68085 185.409 +-112.598 9.58084 183.494 +-114.198 9.52922 182.505 +-115.842 9.4813 181.588 +-117.152 9.40637 180.153 +-118.942 9.37008 179.458 +-120.562 9.31997 178.498 +-122.967 9.3292 178.675 +-127.105 9.46508 181.277 +-491.913 35.9593 688.699 +-495.033 35.5274 680.427 +-498.343 35.1163 672.555 +-502.275 34.755 665.634 +-505.028 34.3183 657.271 +-508.352 33.9269 649.775 +-511.583 33.5352 642.272 +-515.162 33.1715 635.307 +-516.05 32.6421 625.167 +-528.629 32.8494 629.138 +-525.663 32.0922 614.636 +-529.44 31.7573 608.222 +-163.27 9.6225 184.292 +-163.602 9.47421 181.452 +-164.979 9.38786 179.798 +-544.371 30.439 582.973 +-548.343 30.1295 577.047 +-552.392 29.8264 571.241 +-555.471 29.4735 564.482 +-558.685 29.1311 557.925 +-562.541 28.8246 552.055 +-565.545 28.477 545.397 +-569.709 28.1899 539.899 +-2396.13 116.508 2231.39 +-583.629 27.8856 534.069 +-580.991 27.277 522.414 +-389.382 17.9628 344.027 +-589.126 26.7031 511.423 +-391.381 17.4297 333.816 +-387.082 16.9359 324.359 +-385.272 16.5601 317.162 +-385.853 16.2923 312.033 +-386.139 16.0155 306.731 +-387.15 15.7717 302.063 +-385.252 15.4141 295.213 +-141.518 5.56056 106.497 +-142.845 5.51144 105.556 +-142.953 5.4156 103.721 +-143.61 5.34125 102.297 +-141.959 5.18299 99.2656 +-142.327 5.10048 97.6853 +-143.424 5.04427 96.6088 +-148.182 5.11408 97.9458 +-657.434 22.2618 426.362 +-381.129 12.6605 242.476 +-381.198 12.4202 237.875 +-383.176 12.2436 234.492 +-382.897 11.9963 229.755 +-383.683 11.7845 225.7 +-382.783 11.5235 220.699 +-381.651 11.259 215.634 +-382.034 11.0419 211.477 +-380.879 10.7831 206.52 +-381.875 10.5873 202.77 +-382.923 10.3939 199.066 +-718.508 19.0892 365.6 +-722.659 18.7871 359.815 +-2944.72 74.8889 1434.29 +-404.539 10.0611 192.693 +-405.754 9.86564 188.949 +-406.48 9.659 184.991 +-403.513 9.36768 179.412 +-404.699 9.17538 175.729 +-403.273 8.92567 170.946 +-404.752 8.74187 167.426 +-406.663 8.56709 164.078 +-405.476 8.32822 159.504 +-406.574 8.1378 155.857 +-405.204 7.89956 151.294 +-406.887 7.72202 147.894 +-405.242 7.48263 143.309 +-405.722 7.28433 139.511 +-405.598 7.07629 135.526 +-405.055 6.86245 131.431 +-397.318 6.53208 125.104 +-384.53 6.13001 117.403 +-380.556 5.87779 112.573 +-380.852 5.69436 109.059 +-380.249 5.49851 105.309 +-379.802 5.30642 101.63 +-380.869 5.13599 98.3655 +-380.647 4.94862 94.7769 +-380.78 4.7667 91.2928 +-380.979 4.58622 87.8363 +-381.732 4.41269 84.5128 +-378.837 4.19872 80.4147 +-379.035 4.02098 77.0106 +-379.301 3.84438 73.6283 +-380.815 3.68019 70.4838 +-380.234 3.49591 66.9544 +-379.325 3.30985 63.3909 +-379.47 3.13386 60.0203 +-379.584 2.958 56.6521 +-379.768 2.78299 53.3003 +-379.129 2.60259 49.8453 +-379.748 2.43125 46.5638 +-379.147 2.25246 43.1395 +-379.51 2.07986 39.8338 +-380.142 1.90859 36.5537 +-378.952 1.72873 33.1089 +-378.629 1.55378 29.7583 +-378.875 1.38143 26.4575 +-378.193 1.20612 23.0998 +-380.078 1.03863 19.892 +-378.14 0.860864 16.4874 +-377.77 0.687861 13.1741 +-144.051 0.196686 3.76697 +-145.278 0.132224 2.53238 +-144.794 0.065887 1.26188 +95.9 0 0 +95.8963 0.0511743 0.835309 +95.8854 0.102345 1.67056 +96.7668 0.154948 2.52919 +95.9415 0.204871 3.34408 +96.7079 0.258194 4.21446 +96.6673 0.309789 5.05664 +95.8209 0.358375 5.84969 +96.5642 0.412906 6.73979 +96.5016 0.464419 7.58063 +96.4316 0.515896 8.42089 +96.3544 0.567335 9.26051 +96.3692 0.619368 10.1098 +96.2771 0.67077 10.9489 +96.277 0.722863 11.7992 +96.1702 0.77421 12.6373 +95.957 0.824652 13.4607 +95.8356 0.875822 14.2959 +96.5959 0.93554 15.2707 +95.3738 0.975948 15.9302 +96.1172 1.03636 16.9164 +95.9657 1.08761 17.7529 +95.8068 1.13878 18.5881 +95.6407 1.18986 19.4219 +95.4672 1.24085 20.2542 +96.1652 1.30366 21.2794 +96.0729 1.3563 22.1387 +95.8757 1.40751 22.9746 +95.7682 1.4601 23.833 +96.2339 1.52187 24.8412 +96.013 1.57316 25.6785 +95.7849 1.62434 26.5138 +96.4145 1.69056 27.5947 +96.1696 1.74194 28.4334 +95.7261 1.78962 29.2116 +96.6115 1.8627 30.4045 +96.0567 1.90851 31.1523 +96.6342 1.97716 32.2728 +96.2538 2.02666 33.0808 +95.9609 2.07794 33.9179 +96.4125 2.14581 35.0256 +96.1026 2.19717 35.8641 +96.8123 2.27248 37.0933 +96.4843 2.32405 37.9351 +96.149 2.37545 38.774 +96.6378 2.44772 39.9538 +96.3769 2.50158 40.8329 +96.0162 2.55292 41.6709 +96.5618 2.62893 42.9116 +97.1839 2.70825 44.2063 +95.7967 2.73159 44.5872 +96.3961 2.81156 45.8926 +95.9912 2.86288 46.7304 +96.2949 2.93583 47.9211 +95.6941 2.98155 48.6674 +96.0633 3.05791 49.9138 +96.2413 3.12915 51.0766 +96.6699 3.20957 52.3893 +96.1207 3.25807 53.1809 +96.3484 3.33332 54.4093 +95.9556 3.38767 55.2963 +96.1578 3.46357 56.5353 +95.5742 3.5116 57.3192 +95.8368 3.59122 58.6189 +95.9142 3.66491 59.8217 +95.3876 3.71595 60.6549 +95.3568 3.7867 61.8096 +95.6467 3.87119 63.1887 +95.7538 3.94943 64.4659 +95.1866 4.00038 65.2975 +95.3493 4.08259 66.6394 +95.4958 4.16527 67.989 +95.5449 4.24482 69.2875 +95.659 4.32838 70.6514 +95.6765 4.4087 71.9625 +95.6784 4.48937 73.2792 +95.0341 4.54026 74.1099 +95.713 4.6555 75.991 +95.1227 4.71025 76.8847 +94.987 4.78806 78.1547 +95.0661 4.87787 79.6206 +95.7351 4.9999 81.6125 +95.5462 5.07888 82.9017 +95.4919 5.16614 84.326 +95.4198 5.25372 85.7556 +94.6664 5.30444 86.5835 +95.2223 5.42982 88.63 +95.0966 5.51831 90.0744 +94.809 5.59858 91.3847 +94.791 5.6961 92.9765 +94.6109 5.78538 94.4338 +94.4826 5.87927 95.9663 +94.8903 6.00863 98.0779 +94.6488 6.09896 99.5524 +94.3886 6.18946 101.03 +94.5826 6.31176 103.026 +94.2805 6.40287 104.513 +94.4896 6.5308 106.601 +94.0789 6.61788 108.022 +94.17 6.74225 110.053 +93.847 6.83905 111.633 +94.0124 6.97383 113.833 +93.6429 7.07124 115.423 +93.6885 7.20234 117.563 +93.7652 7.33876 119.789 +93.8101 7.47586 122.027 +93.7026 7.60378 124.115 +92.9113 7.67802 125.327 +93.5754 7.87578 128.555 +115.386 9.89181 161.462 +115.633 10.0982 164.832 +115.377 10.2654 167.561 +115.25 10.4483 170.545 +115.189 10.6419 173.706 +115.028 10.8312 176.796 +115.519 11.0881 180.99 +115.204 11.2738 184.021 +115.159 11.4913 187.57 +115.42 11.7462 191.732 +115.465 11.9865 195.654 +115.1 12.1906 198.986 +115.424 12.4751 203.629 +113.979 12.5737 205.238 +111.703 12.5803 205.346 +109.481 12.5908 205.518 +106.802 12.5457 204.782 +104.736 12.5695 205.17 +102.447 12.5648 205.092 +99.9486 12.531 204.542 +97.726 12.5287 204.504 +95.554 12.5305 204.533 +93.3889 12.5309 204.54 +91.3937 12.5523 204.89 +91.6325 12.8866 210.346 +91.0794 13.1208 214.168 +91.1169 13.4514 219.564 +90.917 13.7603 224.607 +90.929 14.1155 230.405 +90.7388 14.4546 235.941 +90.5986 14.8175 241.864 +90.3275 15.1756 247.709 +89.9943 15.5402 253.66 +89.8243 15.9519 260.381 +89.6068 16.3762 267.306 +89.3059 16.8072 274.341 +89.0691 17.2741 281.962 +88.9979 17.8005 290.554 +88.7832 18.3281 299.166 +88.4796 18.8685 307.988 +88.2421 19.4571 317.596 +88.102 20.1059 328.186 +87.8333 20.7679 338.99 +87.3338 21.4192 349.622 +87.2619 22.226 362.792 +86.8986 23.0165 375.695 +86.8139 23.9455 390.859 +86.1586 24.7865 404.585 +85.6684 25.7484 420.286 +85.1771 26.7955 437.378 +84.7942 27.9763 456.653 +84.5493 29.3212 478.606 +84.1248 30.7403 501.769 +84.0053 32.4329 529.396 +91.0802 37.2663 608.292 +85.6471 37.265 608.271 +81.6833 37.9398 619.285 +80.6653 40.173 655.737 +77.7027 41.703 680.712 +76.2117 44.3397 723.749 +75.4881 47.9394 782.507 +74.8145 52.2908 853.534 +75.4541 58.6259 956.941 +72.7281 63.5989 1038.11 +70.4378 70.4225 1149.49 +67.6966 78.9883 1289.31 +142.91 200.152 3267.05 +55.3925 96.9967 1583.26 +85.774 200.299 3269.45 +57.1863 200.337 3270.07 +28.5942 200.36 3270.45 +2.00633e-13 200.368 3270.57 +-28.5942 200.36 3270.45 +-57.1863 200.337 3270.07 +-85.774 200.299 3269.45 +-114.355 200.245 3268.57 +-142.928 200.177 3267.45 +-171.489 200.093 3266.09 +-200.038 199.994 3264.47 +-228.571 199.88 3262.6 +-257.087 199.75 3260.49 +-285.583 199.605 3258.12 +-147.66 93.773 1530.64 +-171.782 99.9423 1631.34 +-137.27 73.6732 1202.56 +-148.339 73.8762 1205.87 +-170.715 79.2928 1294.28 +-456.028 198.418 3238.74 +-129.112 52.8271 862.288 +-136.411 52.6656 859.652 +-158.363 57.868 944.57 +-568.993 197.324 3220.88 +-597.131 197.012 3215.8 +-153.01 48.1347 785.694 +-156.683 47.0924 768.682 +-170.259 48.9808 799.506 +-117.245 32.3394 527.87 +-120.551 31.93 521.188 +-124.893 31.8109 519.244 +-129.694 31.8084 519.203 +-135.431 32.0221 522.691 +-848.072 193.54 3159.13 +-875.66 193.081 3151.62 +-903.181 192.606 3143.88 +-930.633 192.116 3135.88 +-958.014 191.612 3127.66 +-985.323 191.094 3119.19 +-168.909 31.7882 518.874 +-146.88 26.8432 438.158 +-151.747 26.9488 439.881 +-1093.65 188.852 3082.6 +-508.994 85.5141 1395.83 +-1147.38 187.656 3063.08 +-434.199 69.1677 1129.01 +-413.047 64.1199 1046.62 +-417.387 63.1714 1031.14 +-423.21 62.4774 1019.81 +-424.178 61.1064 997.43 +-424.867 59.7506 975.299 +-417.637 57.3597 936.273 +-417.016 55.955 913.345 +-430.563 56.4619 921.618 +-433.309 55.5511 906.752 +-435.434 54.5923 891.101 +-437.854 53.7012 876.556 +-439.19 52.7082 860.347 +-144.25 16.9446 276.583 +-145.395 16.7212 272.937 +-146.822 16.5355 269.906 +-149.903 16.5367 269.926 +-453.424 49.0065 799.924 +-112.75 11.9418 194.924 +-110.643 11.486 187.483 +-111.763 11.3741 185.657 +-112.651 11.241 183.485 +-114.198 11.1753 182.412 +-115.734 11.1088 181.327 +-117.479 11.062 180.562 +-118.998 10.9938 179.45 +-121.233 10.9907 179.399 +-123.477 10.9861 179.324 +-127.449 11.1301 181.675 +-492.088 42.1857 688.59 +-496.032 41.7484 681.451 +-498.64 41.2068 672.612 +-501.914 40.7292 664.816 +-505.515 40.2852 657.568 +-508.906 39.8308 650.151 +-511.583 39.3279 641.943 +-515.413 38.9204 635.292 +-516.623 38.323 625.54 +-527.6 38.4487 627.592 +-526.443 37.6915 615.232 +-529.44 37.243 607.911 +-161.149 11.1381 181.805 +-164.004 11.138 181.804 +-163.628 10.9194 178.235 +-544.576 35.7103 582.893 +-547.999 35.3119 576.39 +-552.392 34.9785 570.949 +-555.681 34.5777 564.407 +-559.109 34.1891 558.063 +-562.541 33.8037 551.772 +-566.696 33.464 546.228 +-569.709 33.0594 539.622 +-2396.43 136.65 2230.52 +-583.629 32.7024 533.796 +-580.545 31.9642 521.747 +-585.309 31.6654 516.869 +-589.126 31.3157 511.162 +-389.48 20.3411 332.024 +-386.852 19.8495 324.001 +-387.278 19.5218 318.651 +-385.853 19.1066 311.873 +-384.574 18.7058 305.332 +-385.731 18.4283 300.802 +-384.697 18.0505 294.636 +-140.879 6.4916 105.961 +-142.845 6.46347 105.502 +-142.953 6.35108 103.668 +-143.447 6.25679 102.129 +-141.959 6.07828 99.2148 +-141.502 5.94688 97.07 +-144.335 5.95321 97.1733 +-147.931 5.98734 97.7304 +-657.434 26.1072 426.144 +-382.225 14.8901 243.048 +-383.063 14.637 238.917 +-381.727 14.3042 233.485 +-381.697 14.0243 228.917 +-382.908 13.7922 225.128 +-382.437 13.5018 220.387 +-380.868 13.1767 215.082 +-382.034 12.9493 211.369 +-381.231 12.6573 206.604 +-381.875 12.4161 202.666 +-382.834 12.1865 198.918 +-718.151 22.3755 365.231 +-721.944 22.0105 359.274 +-2944.72 87.825 1433.55 +-406.615 11.8596 193.582 +-406.479 11.5905 189.189 +-406.116 11.3174 184.732 +-405.888 11.0505 180.375 +-405.982 10.7944 176.196 +-405.298 10.5201 171.717 +-407.154 10.3128 168.333 +-406.57 10.0447 163.958 +-403.615 9.72199 158.69 +-404.894 9.50406 155.133 +-403.331 9.22124 150.517 +-404.82 9.00985 147.066 +-405.713 8.78531 143.401 +-404.02 8.50678 138.855 +-405.124 8.28896 135.299 +-405.15 8.04975 131.395 +-393.122 7.57951 123.719 +-384.148 7.18173 117.226 +-380.46 6.89133 112.486 +-380.564 6.67291 108.921 +-381.116 6.46305 105.495 +-380.478 6.2341 101.758 +-380.288 6.01398 98.1653 +-380.259 5.79751 94.6318 +-379.322 5.56868 90.8966 +-380.102 5.36605 87.5892 +-381.244 5.16831 84.3615 +-377.761 4.91001 80.1452 +-379.525 4.72165 77.0707 +-381.657 4.53645 74.0477 +-378.848 4.29361 70.0839 +-380.53 4.10297 66.9721 +-378.931 3.87755 63.2926 +-380.26 3.68285 60.1146 +-379.09 3.46443 56.5493 +-379.867 3.26456 53.2869 +-379.624 3.05615 49.885 +-379.55 2.84973 46.5156 +-379.445 2.64362 43.1514 +-378.813 2.43465 39.7404 +-378.848 2.23066 36.4106 +-379.152 2.02841 33.1094 +-378.23 1.82025 29.7117 +-377.578 1.61451 26.3534 +-377.295 1.4111 23.0331 +-379.18 1.21516 19.8348 +-379.538 1.0133 16.54 +-377.37 0.805825 13.1533 +-145.65 0.233222 3.80684 +-143.378 0.153037 2.498 +-144.794 0.0772682 1.26124 +95.9 0 0 +95.8963 0.0587078 0.834813 +95.8854 0.117411 1.66957 +95.8671 0.176105 2.50419 +96.741 0.23699 3.36995 +96.7079 0.296203 4.21196 +96.7672 0.355761 5.05886 +96.7193 0.414986 5.90103 +96.5642 0.473691 6.73579 +96.5016 0.532787 7.57613 +96.4316 0.591843 8.4159 +96.4539 0.651525 9.26457 +96.4686 0.711284 10.1143 +96.3765 0.770309 10.9536 +96.277 0.829278 11.7922 +96.071 0.887272 12.6168 +95.957 0.946052 13.4527 +95.7367 1.00372 14.2728 +95.6082 1.06229 15.1056 +95.3738 1.11962 15.9208 +96.1172 1.18893 16.9063 +96.064 1.249 17.7605 +95.8068 1.30643 18.5771 +95.6407 1.36502 19.4104 +95.4672 1.42352 20.2422 +95.2865 1.48191 21.0725 +96.0729 1.55597 22.1256 +95.8757 1.61472 22.961 +95.6712 1.67335 23.7947 +95.3625 1.7301 24.6016 +96.1096 1.80657 25.6891 +95.8812 1.86533 26.5247 +95.5494 1.92203 27.3309 +96.1696 1.99838 28.4165 +95.7261 2.05307 29.1943 +95.4671 2.1116 30.0265 +96.0567 2.18947 31.1338 +95.9704 2.25264 32.0321 +96.3483 2.32729 33.0937 +96.0552 2.38618 33.9311 +96.6004 2.46649 35.0731 +96.1962 2.52308 35.8777 +96.8123 2.60701 37.0712 +96.4843 2.66618 37.9126 +96.149 2.72514 38.751 +96.6378 2.80806 39.9301 +96.3769 2.86985 40.8087 +96.1079 2.93154 41.6859 +96.5618 3.01595 42.8862 +96.3649 3.08076 43.8078 +95.978 3.13964 44.645 +96.3961 3.22545 45.8653 +96.5305 3.30279 46.9651 +96.116 3.36176 47.8035 +96.496 3.44914 49.0461 +95.9746 3.50484 49.8381 +96.3296 3.59309 51.0931 +95.8789 3.65193 51.9297 +96.1207 3.7377 53.1493 +95.6521 3.79639 53.984 +95.9556 3.88637 55.2635 +96.1578 3.97345 56.5018 +95.5742 4.02855 57.2852 +95.8368 4.11989 58.5841 +95.9142 4.20443 59.7862 +96.0623 4.29314 61.0476 +95.5246 4.35179 61.8816 +95.6467 4.44107 63.1512 +95.0906 4.49945 63.9814 +96.0107 4.62902 65.8237 +95.3493 4.68359 66.5998 +95.5772 4.78252 68.0065 +95.5449 4.86971 69.2464 +95.659 4.96557 70.6095 +95.6765 5.05772 71.9198 +95.6784 5.15026 73.2357 +95.0341 5.20864 74.0659 +95.0869 5.30592 75.4492 +95.045 5.39925 76.7763 +95.6814 5.53308 78.6794 +94.9895 5.59145 79.5093 +94.9747 5.69039 80.9163 +94.9425 5.78973 82.3289 +95.4919 5.92666 84.276 +95.4198 6.02714 85.7047 +94.7401 6.09005 86.5994 +95.2223 6.22916 88.5774 +95.0966 6.33067 90.021 +94.9529 6.4325 91.469 +94.6483 6.52481 92.7816 +94.6109 6.63707 94.3778 +95.1134 6.7898 96.5497 +94.8903 6.89318 98.0197 +94.5111 6.98663 99.3485 +94.2522 7.09039 100.824 +94.6502 7.24612 103.039 +94.2136 7.34027 104.377 +94.4896 7.49221 106.538 +94.1445 7.59744 108.034 +94.17 7.7348 109.987 +93.7827 7.84052 111.491 +94.0124 8.00046 113.765 +94.0834 8.15037 115.897 +93.6885 8.26261 117.493 +93.7652 8.41912 119.718 +93.8101 8.5764 121.955 +93.7026 8.72316 124.042 +93.0898 8.8253 125.494 +93.4579 9.02383 128.317 +115.85 11.3937 162.016 +115.633 11.5848 164.734 +115.264 11.7651 167.297 +115.25 11.9864 170.444 +115.079 12.1968 173.437 +115.082 12.4316 176.774 +115.412 12.7086 180.714 +115.257 12.9394 183.996 +115.106 13.177 187.374 +115.369 13.4694 191.532 +114.957 13.6906 194.678 +115.1 13.9853 198.868 +115.473 14.3177 203.595 +114.415 14.4799 205.901 +111.703 14.4323 205.224 +109.434 14.4382 205.308 +107.264 14.4549 205.545 +104.736 14.4199 205.049 +102.447 14.4145 204.971 +100.343 14.4325 205.227 +97.726 14.3731 204.382 +95.5963 14.3815 204.502 +93.3889 14.3756 204.418 +91.3124 14.3874 204.586 +91.5528 14.7708 210.038 +91.0404 15.0459 213.95 +91.0404 15.4186 219.25 +90.8796 15.7795 224.381 +90.929 16.1935 230.268 +90.7746 16.5891 235.893 +90.5636 16.9922 241.626 +90.3275 17.4096 247.562 +89.9943 17.8279 253.51 +89.8894 18.3135 260.415 +89.5434 18.7736 266.958 +89.3368 19.2881 274.273 +89.1292 19.8305 281.986 +88.9687 20.4143 290.287 +88.7832 21.0262 298.989 +88.4796 21.6462 307.805 +88.1887 22.3079 317.215 +88.0761 23.059 327.895 +87.9335 23.8523 339.175 +87.3822 24.5859 349.608 +86.9584 25.4093 361.316 +86.7411 26.357 374.791 +86.6191 27.409 389.751 +86.117 28.4217 404.151 +85.7282 29.5595 420.33 +85.3298 30.7952 437.903 +84.8124 32.1017 456.48 +84.4277 33.5894 477.634 +84.1413 35.2726 501.569 +83.9897 37.2005 528.984 +91.3167 42.8633 609.509 +85.7585 42.8065 608.7 +81.6963 43.532 619.016 +80.5434 46.0173 654.358 +77.7366 47.8632 680.605 +76.1281 50.8112 722.526 +75.584 55.0665 783.035 +74.614 59.8279 850.741 +75.3992 67.2075 955.678 +72.5398 72.7727 1034.81 +70.1692 80.4816 1144.43 +67.6076 90.4971 1286.85 +64.8359 104.174 1481.33 +114.341 229.696 3266.23 +85.774 229.786 3267.51 +57.1863 229.829 3268.13 +10.8977 87.6013 1245.67 +2.00633e-13 229.864 3268.63 +-28.5907 229.828 3268.11 +-57.1863 229.829 3268.13 +-85.774 229.786 3267.51 +-114.355 229.724 3266.63 +-142.928 229.645 3265.52 +-171.489 229.549 3264.15 +-200.038 229.436 3262.53 +-228.571 229.305 3260.67 +-257.087 229.156 3258.55 +-285.548 228.961 3255.79 +-145.983 106.355 1512.35 +-342.467 228.577 3250.32 +-137.497 84.6577 1203.82 +-148.656 84.9327 1207.73 +-170.833 91.0282 1294.4 +-456.028 227.627 3236.82 +-129.2 60.6456 862.369 +-136.505 60.4603 859.734 +-158.792 66.5668 946.567 +-568.993 226.372 3218.97 +-597.131 226.015 3213.89 +-153.201 55.2895 786.206 +-156.823 54.0732 768.91 +-170.799 56.3698 801.568 +-117.245 37.1001 527.557 +-120.776 36.6988 521.85 +-124.893 36.4939 518.936 +-129.67 36.4841 518.798 +-135.656 36.7972 523.25 +-848.072 222.032 3157.25 +-875.553 221.477 3149.36 +-903.071 220.933 3141.62 +-930.519 220.371 3133.64 +-958.014 219.82 3125.8 +-985.202 219.199 3116.96 +-145.702 31.4574 447.318 +-146.912 30.8016 437.992 +-151.747 30.916 439.62 +-1093.78 216.679 3081.14 +-509.302 98.1625 1395.85 +-1147.38 215.281 3061.26 +-434.199 79.3501 1128.34 +-413.193 73.5851 1046.37 +-418.136 72.6008 1032.37 +-423.784 71.7717 1020.58 +-424.139 70.0956 996.746 +-423.91 68.3923 972.525 +-416.051 65.5539 932.164 +-417.223 64.2242 913.257 +-431.324 64.8883 922.699 +-433.697 63.7859 907.024 +-435.083 62.5786 889.855 +-438.345 61.6758 877.018 +-439.327 60.4862 860.103 +-144.389 19.4577 276.685 +-145.395 19.1828 272.775 +-146.965 18.9882 270.009 +-150.049 18.9896 270.028 +-454.211 56.3185 800.838 +-113.4 13.7787 195.931 +-110.593 13.1708 187.286 +-111.557 13.0244 185.205 +-112.546 12.8839 183.207 +-113.986 12.7966 181.966 +-115.573 12.7263 180.966 +-117.479 12.6904 180.455 +-119.108 12.6239 179.51 +-121.177 12.6028 179.209 +-123.42 12.5975 179.135 +-127.563 12.7801 181.73 +-491.855 48.3732 687.857 +-495.856 47.8773 680.806 +-498.878 47.2956 672.534 +-502.275 46.7586 664.899 +-505.515 46.2157 657.178 +-508.721 45.6777 649.529 +-512.703 45.2164 642.968 +-515.791 44.6827 635.38 +-517.004 43.9971 625.631 +-526.572 44.0229 625.998 +-525.923 43.1975 614.26 +-530.096 42.7785 608.303 +-163.27 12.9459 184.088 +-163.87 12.7672 181.548 +-165.993 12.7078 180.703 +-544.371 40.9519 582.329 +-548.343 40.5357 576.409 +-552.114 40.1076 570.322 +-555.681 39.668 564.072 +-559.604 39.2569 558.225 +-563.325 38.8341 552.214 +-566.696 38.3904 545.904 +-569.709 37.9261 539.302 +-2396.43 156.767 2229.19 +-588.052 37.801 537.523 +-580.545 36.6698 521.437 +-585.309 36.3269 516.562 +-589.126 35.9258 510.858 +-593.801 35.5774 505.905 +-387.159 22.7897 324.065 +-391.677 22.6499 322.078 +-389.272 22.1135 314.45 +-384.339 21.4464 304.964 +-385.889 21.1498 300.746 +-385.887 20.7719 295.373 +-140.48 7.42613 105.598 +-143.408 7.44416 105.855 +-143.196 7.29839 103.782 +-142.959 7.15338 101.72 +-141.959 6.97308 99.1559 +-142.162 6.85413 97.4644 +-144.667 6.84529 97.3388 +-149.015 6.91909 98.3881 +-657.434 29.9505 425.891 +-381.129 17.0331 242.208 +-381.113 16.7062 237.559 +-383.603 16.4906 234.493 +-382.039 16.1033 228.986 +-382.477 15.8048 224.741 +-382.523 15.4929 220.306 +-381.999 15.1614 215.593 +-381.334 14.8283 210.856 +-381.231 14.5207 206.481 +-383.023 14.2868 203.155 +-384.076 14.0258 199.444 +-719.577 25.7204 365.74 +-722.57 25.2727 359.372 +-731.259 25.02 355.78 +-404.448 13.533 192.437 +-406.026 13.2819 188.867 +-407.39 13.0241 185.201 +-406.893 12.7087 180.715 +-404.607 12.3416 175.495 +-405.759 12.0824 171.81 +-404.197 11.745 167.012 +-404.53 11.4656 163.038 +-405.011 11.1918 159.145 +-406.574 10.9484 155.685 +-406.703 10.6672 151.685 +-406.887 10.389 147.73 +-407.692 10.1278 144.015 +-404.777 9.77739 139.033 +-404.65 9.49805 135.06 +-406.291 9.2608 131.687 +-393.98 8.71432 123.916 +-383.191 8.21842 116.864 +-378.542 7.86598 111.853 +-380.564 7.65525 108.856 +-379.381 7.38074 104.953 +-381.154 7.16454 101.878 +-380.192 6.89756 98.082 +-380.259 6.65098 94.5756 +-380.586 6.40975 91.1454 +-379.127 6.14023 87.3129 +-380.853 5.92308 84.2251 +-381.575 5.68971 80.9066 +-380.407 5.42932 77.2039 +-379.89 5.18018 73.6612 +-380.716 4.94998 70.3878 +-380.037 4.70089 66.8457 +-379.72 4.45764 63.3868 +-380.062 4.22282 60.0477 +-380.376 3.98792 56.7074 +-380.065 3.7471 53.283 +-379.624 3.50605 49.8554 +-379.947 3.27266 46.5367 +-379.544 3.03359 43.1371 +-379.311 2.79673 39.769 +-378.051 2.55366 36.3125 +-377.757 2.31846 32.9681 +-379.028 2.09262 29.7566 +-378.875 1.85855 26.4282 +-378.692 1.62483 23.1047 +-377.981 1.38964 19.7604 +-377.041 1.15483 16.4214 +-378.669 0.927637 13.1908 +-145.25 0.266821 3.79414 +-146.178 0.178994 2.54525 +-144.794 0.088643 1.26049 +95.9 0 0 +95.8963 0.0662365 0.83425 +96.7853 0.133711 1.68409 +96.6669 0.200347 2.52337 +96.741 0.267381 3.36767 +95.7088 0.330736 4.16563 +95.8684 0.397656 5.00849 +95.7211 0.463372 5.83618 +96.5642 0.534437 6.73125 +96.6013 0.601733 7.57884 +96.5313 0.668431 8.4189 +96.4539 0.735078 9.25831 +96.3692 0.801668 10.097 +96.3765 0.869094 10.9463 +96.1777 0.93466 11.7721 +96.071 1.00106 12.6083 +95.957 1.06737 13.4436 +95.7367 1.13244 14.2631 +96.5959 1.2109 15.2513 +96.2615 1.27495 16.0581 +96.2157 1.34277 16.9122 +95.9657 1.40773 17.7304 +95.8068 1.47396 18.5646 +95.6407 1.54007 19.3973 +95.4672 1.60607 20.2285 +96.1652 1.68737 21.2524 +96.0729 1.75551 22.1106 +95.8757 1.82179 22.9455 +95.6712 1.88794 23.7787 +95.3625 1.95196 24.585 +96.013 2.03619 25.6459 +95.8812 2.10455 26.5068 +95.5494 2.16851 27.3124 +96.1696 2.25465 28.3973 +95.7261 2.31636 29.1746 +96.5162 2.40857 30.3359 +96.2469 2.47514 31.1744 +96.6342 2.5591 32.2319 +96.3483 2.62575 33.0713 +95.9609 2.68955 33.8749 +96.5064 2.78009 35.0153 +96.1962 2.84664 35.8535 +96.8123 2.94134 37.0462 +97.2286 3.0313 38.1793 +96.9834 3.1013 39.0609 +96.6378 3.16817 39.9031 +96.3769 3.23788 40.7812 +96.1079 3.30748 41.6578 +96.5618 3.40271 42.8572 +96.1829 3.46928 43.6956 +96.6124 3.56568 44.9098 +96.2156 3.63227 45.7485 +96.5305 3.72635 46.9334 +96.116 3.79287 47.7713 +95.6941 3.85912 48.6056 +96.0633 3.95796 49.8505 +95.5349 4.02043 50.6374 +96.582 4.15047 52.2752 +96.1207 4.21702 53.1135 +95.6521 4.28324 53.9475 +95.9556 4.38477 55.2262 +96.0717 4.47899 56.413 +95.5742 4.54517 57.2465 +95.8368 4.64823 58.5446 +96.0838 4.752 59.8516 +95.3876 4.80968 60.578 +95.4407 4.90555 61.7855 +95.5633 5.00623 63.0536 +95.0077 5.07204 63.8825 +95.9283 5.21816 65.7229 +95.2674 5.27968 66.4976 +95.4958 5.39124 67.9028 +95.464 5.48956 69.1411 +95.5786 5.59765 70.5025 +95.6765 5.70632 71.8712 +95.0437 5.77219 72.7008 +95.0341 5.8766 74.0159 +95.0086 5.98143 75.3362 +95.6667 6.13149 77.2263 +94.987 6.19734 78.0556 +94.9895 6.3085 79.4557 +94.9747 6.42013 80.8616 +95.5462 6.57375 82.7965 +94.8178 6.63949 83.6245 +95.4198 6.80006 85.6469 +95.33 6.91383 87.0798 +95.2223 7.02799 88.5176 +94.9515 7.13162 89.8229 +95.0248 7.26291 91.4765 +94.6483 7.36155 92.7189 +94.6109 7.48821 94.3141 +94.4826 7.60972 95.8446 +94.7514 7.76578 97.8101 +94.6488 7.89408 99.4261 +94.184 7.99389 100.683 +94.5826 8.16952 102.895 +94.2805 8.28744 104.381 +94.4896 8.45302 106.466 +94.0789 8.56573 107.885 +94.2349 8.73273 109.989 +93.7827 8.84599 111.415 +93.8851 9.01426 113.535 +94.0205 9.18949 115.742 +94.1242 9.36551 117.959 +93.6421 9.48629 119.48 +93.8101 9.67624 121.872 +93.7026 9.84182 123.958 +93.0898 9.95706 125.409 +93.164 10.149 127.827 +115.153 12.7775 160.933 +115.576 13.064 164.541 +115.264 13.2738 167.184 +115.306 13.5301 170.412 +115.576 13.8204 174.068 +115.463 14.0722 177.24 +115.304 14.325 180.424 +115.257 14.5987 183.871 +115.106 14.8668 187.248 +115.369 15.1967 191.403 +115.008 15.4531 194.633 +115.1 15.7787 198.734 +115.326 16.1332 203.198 +114.367 16.3299 205.676 +112.132 16.3457 205.874 +109.856 16.3526 205.962 +107.264 16.3086 205.407 +105.008 16.3115 205.443 +102.447 16.263 204.832 +100.255 16.2691 204.909 +98.1565 16.2877 205.143 +95.5963 16.2258 204.364 +93.7621 16.2839 205.097 +91.5564 16.2758 204.994 +91.5129 16.6578 209.805 +91.3529 17.0336 214.539 +91.0021 17.3886 219.01 +90.8796 17.803 224.229 +90.8557 18.2554 229.927 +90.7388 18.7091 235.641 +90.5636 19.1713 241.463 +90.3275 19.6422 247.394 +89.9943 20.1142 253.339 +89.694 20.6171 259.673 +89.5116 21.1737 266.683 +89.4604 21.7917 274.467 +88.9187 22.3207 281.129 +89.0272 23.0473 290.281 +88.7548 23.715 298.691 +88.5347 24.4373 307.788 +88.2421 25.184 317.193 +88.0502 26.0085 327.577 +87.8583 26.8882 338.657 +87.5515 27.7926 350.048 +87.0051 28.6832 361.265 +86.8536 29.7756 375.024 +86.4027 30.8467 388.514 +86.0962 32.0587 403.78 +85.5288 33.2726 419.069 +85.2344 34.7056 437.117 +84.8489 36.2339 456.367 +84.393 37.8813 477.116 +84.0753 39.7648 500.838 +83.9271 41.9398 528.233 +91.4201 48.4149 609.787 +85.8837 48.3665 609.177 +81.6441 49.0832 618.204 +80.5556 51.9265 654.015 +77.9517 54.1506 682.028 +75.8668 57.1305 719.56 +75.6798 62.2071 783.499 +74.3177 67.2322 846.79 +75.0697 75.4948 950.859 +72.5956 82.1677 1034.9 +70.1692 90.8026 1143.66 +67.0947 101.328 1276.22 +61.5993 111.666 1406.43 +114.355 259.184 3264.43 +85.774 259.254 3265.3 +57.1793 259.271 3265.52 +28.5907 259.301 3265.9 +2.00609e-13 259.311 3266.02 +-28.5907 259.301 3265.9 +-57.1793 259.271 3265.52 +-85.7635 259.222 3264.91 +-114.341 259.152 3264.03 +-142.91 259.064 3262.91 +-171.468 258.955 3261.55 +-200.013 258.827 3259.93 +-228.543 258.679 3258.07 +-257.056 258.511 3255.95 +-285.548 258.324 3253.59 +-314.058 258.148 3251.38 +-342.467 257.89 3248.13 +-137.406 95.4518 1202.22 +-148.888 95.9733 1208.79 +-171.198 102.922 1296.3 +-456.028 256.818 3234.63 +-129.466 68.5637 863.561 +-136.614 68.2684 859.842 +-159.436 75.4078 949.763 +-568.993 255.402 3216.8 +-597.131 254.999 3211.72 +-153.43 62.4731 786.85 +-157.022 61.0851 769.368 +-171.361 63.8078 803.66 +-117.375 41.9042 527.784 +-120.776 41.4051 521.498 +-125.057 41.2278 519.265 +-129.888 41.232 519.318 +-138.135 42.2748 532.451 +-848.072 250.505 3155.12 +-875.66 249.91 3147.62 +-903.181 249.296 3139.89 +-930.633 248.662 3131.9 +-958.014 248.01 3123.69 +-985.202 247.309 3114.86 +-169.434 41.2725 519.828 +-147.198 34.8191 438.547 +-149.599 34.3869 433.103 +-1093.65 244.437 3078.69 +-509.986 110.9 1396.78 +-1147.38 242.889 3059.19 +-434.88 89.6661 1129.35 +-423.309 85.0542 1071.26 +-418.81 82.0434 1033.34 +-424.358 81.0857 1021.28 +-424.725 79.1941 997.451 +-414.54 75.4572 950.385 +-415.481 73.8593 930.26 +-395.908 68.7585 866.015 +-431.789 73.2885 923.07 +-434.257 72.0588 907.582 +-435.697 70.7032 890.509 +-438.568 69.6205 876.872 +-439.372 68.2501 859.611 +-144.851 22.0232 277.382 +-145.63 21.6777 273.031 +-146.631 21.3745 269.213 +-150.339 21.4664 270.369 +-454.655 63.6028 801.078 +-112.15 15.3743 193.64 +-110.846 14.894 187.59 +-111.866 14.7354 185.593 +-112.912 14.5834 183.678 +-114.145 14.4579 182.097 +-115.896 14.3985 181.349 +-117.424 14.3112 180.25 +-118.887 14.2164 179.056 +-121.009 14.1994 178.841 +-123.816 14.2587 179.589 +-127.85 14.4514 182.016 +-492.61 54.6603 688.447 +-495.856 54.0171 680.346 +-498.878 53.3608 672.08 +-501.914 52.7171 663.973 +-505.698 52.1612 656.972 +-509.275 51.5916 649.797 +-512.33 50.9778 642.066 +-515.854 50.419 635.029 +-518.849 49.8165 627.439 +-525.029 49.5229 623.742 +-526.572 48.7973 614.603 +-530.424 48.2944 608.269 +-163.402 14.6179 184.113 +-164.539 14.4633 182.166 +-167.344 14.4542 182.051 +-544.985 46.2557 582.592 +-549.445 45.8259 577.178 +-553.018 45.325 570.87 +-555.821 44.7664 563.834 +-559.958 44.3192 558.201 +-562.683 43.7643 551.212 +-566.192 43.2751 545.051 +-570.362 42.8388 539.555 +-2396.13 176.849 2227.42 +-588.863 42.7075 537.901 +-581.214 41.42 521.685 +-585.983 41.0327 516.808 +-388.826 26.752 336.942 +-388.491 26.2613 330.762 +-385.474 25.6003 322.436 +-388.281 25.3331 319.071 +-386.941 24.8 312.356 +-386.374 24.3248 306.371 +-386.913 23.9255 301.342 +-384.459 23.349 294.081 +-141.039 8.41186 105.948 +-143.247 8.38939 105.664 +-143.601 8.25761 104.005 +-142.877 8.06615 101.593 +-141.713 7.85369 98.9174 +-141.832 7.71517 97.1727 +-144.667 7.72314 97.2731 +-148.515 7.78019 97.9916 +-658.189 33.8302 426.092 +-379.526 19.1367 241.027 +-382.809 18.9325 238.456 +-381.13 18.4854 232.824 +-382.039 18.1684 228.832 +-382.046 17.8116 224.337 +-383.649 17.5311 220.805 +-380.52 17.0395 214.613 +-380.897 16.7108 210.473 +-382.725 16.4471 207.151 +-383.817 16.1523 203.439 +-383.366 15.7953 198.942 +-720.913 29.0727 366.172 +-721.407 28.4677 358.552 +-730.09 28.1835 354.972 +-404.99 15.2889 192.564 +-406.026 14.9852 188.739 +-406.025 14.6451 184.456 +-405.523 14.2901 179.984 +-404.515 13.9211 175.336 +-404.102 13.5762 170.993 +-405.676 13.2996 167.509 +-405.828 12.9774 163.451 +-406.313 12.6676 159.549 +-406.201 12.3411 155.437 +-406.328 12.0241 151.443 +-404.726 11.659 146.846 +-405.713 11.3711 143.219 +-405.627 11.0544 139.231 +-405.598 10.7412 135.285 +-404.294 10.397 130.951 +-393.98 9.83185 123.832 +-383.765 9.28629 116.961 +-380.939 8.93091 112.485 +-380.179 8.62825 108.673 +-381.405 8.37166 105.441 +-381.154 8.08332 101.81 +-381.16 7.80192 98.2654 +-381.132 7.52113 94.7288 +-379.322 7.20772 90.7813 +-381.368 6.9686 87.7696 +-380.56 6.67752 84.1035 +-379.228 6.37987 80.3545 +-379.917 6.11769 77.0524 +-379.301 5.83543 73.4973 +-379.733 5.57035 70.1586 +-380.037 5.30373 66.8006 +-379.72 5.02929 63.344 +-377.692 4.73464 59.6328 +-380.376 4.49933 56.6692 +-379.57 4.22212 53.1777 +-379.327 3.95257 49.7826 +-379.153 3.68464 46.4081 +-379.445 3.42172 43.0967 +-379.51 3.15704 39.763 +-378.848 2.88721 36.3645 +-378.654 2.62199 33.024 +-378.928 2.36036 29.7287 +-377.977 2.09192 26.3478 +-378.493 1.83223 23.077 +-378.381 1.5695 19.7679 +-377.94 1.30603 16.4494 +-378.769 1.04687 13.1854 +-148.549 0.307875 3.87769 +-145.178 0.200567 2.52614 +-145.394 0.100425 1.26486 +95.9 0 0 +95.8963 0.0737598 0.833618 +95.8854 0.147514 1.66718 +95.8671 0.221257 2.5006 +96.741 0.297751 3.36512 +95.8087 0.368687 4.16682 +96.6673 0.446514 5.0464 +96.6194 0.520847 5.8865 +96.5642 0.59514 6.72615 +96.5016 0.669388 7.56528 +96.4316 0.743585 8.40385 +96.4539 0.81857 9.25131 +96.3692 0.892724 10.0894 +96.2771 0.966812 10.9267 +96.1777 1.04082 11.7631 +96.071 1.11476 12.5988 +95.957 1.18861 13.4334 +95.7367 1.26107 14.2523 +95.6082 1.33465 15.084 +95.3738 1.40668 15.898 +96.2157 1.49528 16.8994 +96.064 1.56923 17.7351 +95.6105 1.63801 18.5125 +95.6407 1.715 19.3826 +95.4672 1.7885 20.2132 +96.1652 1.87902 21.2363 +96.0729 1.9549 22.0939 +95.8757 2.02872 22.9281 +95.6712 2.10238 23.7607 +95.4594 2.17589 24.5914 +96.1096 2.26975 25.6523 +95.7849 2.34123 26.4601 +95.6455 2.41724 27.3192 +96.1696 2.51074 28.3758 +95.9174 2.58461 29.2108 +96.3254 2.67684 30.2531 +96.2469 2.75627 31.1508 +95.7807 2.8246 31.9231 +96.3483 2.92399 33.0463 +95.9609 2.99503 33.8493 +96.4125 3.09285 34.9547 +96.1962 3.16997 35.8263 +96.8123 3.27542 37.0182 +96.4843 3.34976 37.8583 +96.9834 3.45355 39.0313 +96.6378 3.52802 39.8729 +96.2848 3.60221 40.7114 +96.9332 3.71479 41.9838 +96.7445 3.79637 42.9058 +96.3649 3.87063 43.7451 +95.978 3.94461 44.5811 +96.2156 4.04484 45.7139 +96.5305 4.1496 46.8979 +96.2949 4.23155 47.8241 +96.4069 4.32946 48.9306 +96.7729 4.44007 50.1808 +96.3296 4.51433 51.02 +95.8789 4.58825 51.8554 +96.2082 4.70028 53.1216 +95.6521 4.76975 53.9067 +95.869 4.87839 55.1346 +95.4685 4.95642 56.0165 +95.5742 5.06143 57.2032 +95.8368 5.17619 58.5002 +95.9142 5.28241 59.7007 +95.3032 5.35124 60.4786 +95.4407 5.46273 61.7387 +95.5633 5.57485 63.0058 +95.7538 5.6925 64.3355 +95.269 5.77092 65.2218 +95.4312 5.88948 66.5617 +95.5772 6.00871 67.9092 +95.6258 6.12344 69.2058 +95.7394 6.24394 70.5677 +95.7564 6.35977 71.8768 +95.6784 6.47073 73.1309 +95.0341 6.54408 73.9598 +95.7912 6.71568 75.8993 +95.6667 6.82793 77.1678 +95.6814 6.95171 78.5668 +94.9895 7.02504 79.3955 +94.9747 7.14934 80.8004 +95.0179 7.27994 82.2764 +95.4919 7.44619 84.1553 +95.4941 7.57833 85.6487 +95.33 7.69912 87.0138 +94.564 7.77215 87.8392 +95.0966 7.95379 89.8921 +95.0248 8.08786 91.4073 +94.791 8.21005 92.7883 +94.6109 8.33874 94.2427 +94.4826 8.47406 95.772 +94.8903 8.66052 97.8794 +94.5111 8.77793 99.2063 +94.2522 8.90829 100.68 +94.6502 9.10395 102.891 +94.3474 9.23528 104.375 +94.4896 9.41314 106.385 +94.0789 9.53865 107.804 +94.2349 9.72462 109.906 +93.7184 9.84395 111.254 +93.9488 10.0449 113.525 +94.0205 10.2333 115.654 +94.1242 10.4293 117.87 +93.6421 10.5638 119.39 +93.8101 10.7753 121.78 +93.7026 10.9597 123.864 +93.3872 11.1234 125.715 +92.3998 11.209 126.682 +115.56 14.279 161.379 +115.633 14.5551 164.498 +115.207 14.7742 166.975 +115.25 15.0596 170.2 +115.631 15.3975 174.019 +115.355 15.6558 176.939 +115.251 15.9446 180.203 +115.098 16.2345 183.479 +115.002 16.5404 186.936 +114.905 16.8548 190.49 +115.414 17.2691 195.171 +115.1 17.5709 198.583 +115.03 17.9196 202.524 +114.754 18.2463 206.216 +112.085 18.1945 205.631 +109.903 18.2178 205.894 +107.218 18.1531 205.162 +105.008 18.1642 205.288 +102.849 18.1811 205.479 +100.65 18.1883 205.56 +98.1565 18.1377 204.988 +95.9343 18.1326 204.931 +93.7621 18.1335 204.941 +91.6378 18.1406 205.021 +91.473 18.5418 209.555 +91.3529 18.9684 214.376 +91.0404 19.3718 218.936 +90.8046 19.8087 223.874 +90.929 20.3453 229.939 +90.7746 20.8423 235.556 +90.5986 21.3571 241.374 +90.3275 21.8733 247.207 +89.9943 22.3988 253.147 +89.8243 22.9923 259.854 +89.5116 23.5786 266.481 +89.3368 24.2333 273.88 +88.9187 24.8559 280.916 +88.8518 25.6145 289.49 +88.698 26.3917 298.274 +88.5623 27.2214 307.651 +88.1619 28.019 316.665 +87.9985 28.9456 327.137 +87.7081 29.891 337.822 +87.358 30.881 349.01 +87.0051 31.9411 360.992 +86.7636 33.1233 374.352 +86.5975 34.4278 389.096 +85.9715 35.6483 402.89 +85.6684 37.1123 419.435 +85.2153 38.6389 436.689 +84.8489 40.3495 456.021 +84.393 42.184 476.754 +83.9762 44.2292 499.869 +83.8176 46.6425 527.144 +91.5236 53.9751 610.016 +85.9951 53.93 609.506 +81.6311 54.6495 617.637 +80.6653 57.9031 654.409 +78.0876 60.4062 682.699 +75.7622 63.5318 718.024 +75.8523 69.4307 784.691 +73.5507 74.096 837.417 +75.0697 84.0697 950.139 +72.3723 91.2193 1030.94 +69.5831 100.271 1133.24 +66.0061 111.006 1254.57 +55.6191 112.277 1268.93 +44.1863 111.523 1260.41 +85.7635 288.665 3262.43 +57.1793 288.72 3263.05 +28.5907 288.753 3263.43 +2.00609e-13 288.764 3263.55 +-28.5907 288.753 3263.43 +-57.1793 288.72 3263.05 +-85.7635 288.665 3262.43 +-114.341 288.588 3261.56 +-142.91 288.489 3260.44 +-171.468 288.368 3259.08 +-200.013 288.225 3257.46 +-228.543 288.061 3255.6 +-257.056 287.874 3253.49 +-285.548 287.665 3251.13 +-126.076 115.402 1304.24 +-342.467 287.182 3245.67 +-137.825 106.617 1204.96 +-149.911 107.609 1216.18 +-165.82 111.011 1254.63 +-456.028 285.988 3232.18 +-129.614 76.4386 863.893 +-136.755 76.1009 860.077 +-159.997 84.2684 952.384 +-568.993 284.412 3214.36 +-597.131 283.963 3209.29 +-153.468 69.5863 786.45 +-157.222 68.1097 769.762 +-171.548 71.1329 803.929 +-117.505 46.7154 527.968 +-121.001 46.1939 522.074 +-125.267 45.9877 519.743 +-130.13 46.0007 519.891 +-138.736 47.2813 534.363 +-848.072 278.959 3152.73 +-875.66 278.296 3145.24 +-903.181 277.612 3137.51 +-930.633 276.906 3129.53 +-958.014 276.18 3121.33 +-985.202 275.399 3112.5 +-169.094 45.8682 518.393 +-147.61 38.8826 439.443 +-152.333 38.9926 440.686 +-1093.78 272.234 3076.73 +-1120.56 271.349 3066.73 +-140.013 33.0058 373.025 +-395.782 90.8738 1027.04 +-413.817 92.5908 1046.44 +-424.017 92.4982 1045.4 +-425.353 90.5072 1022.89 +-423.904 88.0187 994.77 +-424.03 85.9516 971.407 +-413.936 81.9425 926.097 +-395.286 76.448 863.999 +-432.043 81.6607 922.912 +-433.869 80.1718 906.085 +-436.355 78.8528 891.178 +-438.345 77.4888 875.763 +-439.599 76.0414 859.404 +-145.081 24.5637 277.614 +-145.442 24.1088 272.472 +-146.583 23.7947 268.922 +-150.63 23.9508 270.686 +-454.901 70.8654 800.906 +-112 17.0977 193.235 +-111.151 16.6312 187.963 +-111.712 16.3865 185.196 +-112.651 16.2022 183.114 +-114.251 16.1149 182.127 +-115.949 16.0413 181.296 +-117.533 15.9515 180.281 +-119.218 15.8752 179.418 +-121.345 15.856 179.201 +-123.76 15.871 179.371 +-128.711 16.2012 183.103 +-493.075 60.9262 688.575 +-496.326 60.2095 680.475 +-499.651 59.5138 672.612 +-502.937 58.8245 664.823 +-506.246 58.1488 657.185 +-509.46 57.4724 649.541 +-512.33 56.768 641.58 +-2061.84 224.411 2536.25 +-522.984 55.9169 631.961 +-524.322 55.0736 622.43 +-527.482 54.4337 615.199 +-531.211 53.8596 608.71 +-163.8 16.3179 184.421 +-164.004 16.0537 181.436 +-169.506 16.3039 184.263 +-545.599 51.5676 582.806 +-549.445 51.0309 576.741 +-553.156 50.4859 570.581 +-556.872 49.9453 564.472 +-559.958 49.3531 557.779 +-563.539 48.8093 551.633 +-567.056 48.2638 545.468 +-571.015 47.7592 539.764 +-571.48 46.9695 530.84 +-590.928 47.7251 539.379 +-582.105 46.1953 522.09 +-586.208 45.7109 516.615 +-590.711 45.2582 511.499 +-594.942 44.785 506.151 +-390.836 28.9046 326.674 +-387.896 28.1825 318.513 +-385.464 27.5114 310.928 +-384.652 26.967 304.775 +-385.101 26.5182 299.703 +-385.49 26.0707 294.646 +-141.119 9.3726 105.927 +-143.167 9.33708 105.526 +-143.034 9.15922 103.516 +-141.9 8.92098 100.823 +-141.877 8.75585 98.9568 +-141.832 8.59148 97.0991 +-146.242 8.69399 98.2577 +-148.682 8.67362 98.0274 +-657.685 37.6439 425.444 +-383.068 21.5091 243.091 +-381.113 20.9895 237.219 +-382.153 20.6403 233.273 +-383.668 20.3184 229.634 +-383.253 19.8972 224.874 +-384.082 19.5444 220.887 +-381.999 19.0486 215.284 +-379.76 18.5532 209.685 +-382.022 18.2815 206.614 +-384.7 18.0284 203.753 +-385.761 17.6992 200.033 +-723.052 32.4709 366.979 +-721.944 31.7248 358.547 +-407.333 17.5102 197.897 +-405.532 17.0483 192.676 +-405.391 16.6612 188.301 +-405.661 16.2939 184.151 +-405.249 15.9024 179.726 +-406.258 15.5691 175.959 +-402.905 15.0735 170.357 +-406.784 14.8508 167.84 +-404.808 14.4151 162.917 +-406.686 14.1194 159.575 +-405.267 13.7113 154.963 +-402.956 13.2787 150.073 +-405.195 12.9984 146.905 +-406.467 12.6863 143.378 +-406.384 12.3329 139.384 +-405.977 11.9724 135.309 +-405.245 11.6052 131.16 +-387.591 10.771 121.731 +-385.869 10.3977 117.513 +-382.186 9.97792 112.768 +-380.564 9.61797 108.7 +-381.116 9.31548 105.282 +-381.154 9.00145 101.733 +-380.288 8.66823 97.9666 +-381.132 8.3754 94.6571 +-380.78 8.05725 91.0614 +-380.102 7.73434 87.4119 +-380.853 7.4417 84.1045 +-380.988 7.13749 80.6664 +-379.231 6.80026 76.8551 +-379.693 6.50496 73.5177 +-379.438 6.19822 70.051 +-380.924 5.91992 66.9057 +-379.72 5.60053 63.296 +-379.075 5.29171 59.8058 +-380.079 5.00647 56.5821 +-379.174 4.69678 53.082 +-378.732 4.39461 49.667 +-378.855 4.09992 46.3365 +-378.75 3.80339 42.9852 +-379.51 3.51562 39.7329 +-378.151 3.20923 36.2701 +-377.956 2.91442 32.9382 +-378.629 2.62638 29.6828 +-378.276 2.33138 26.3488 +-378.692 2.04142 23.0717 +-378.381 1.74777 19.7529 +-378.539 1.45668 16.4631 +-378.269 1.16425 13.1581 +-148.249 0.342152 3.86693 +-144.278 0.221963 2.50858 +-144.694 0.111293 1.25782 +95.9 0 0 +95.7964 0.0811922 0.83205 +95.8854 0.162548 1.66578 +95.8671 0.243806 2.4985 +95.8416 0.325046 3.33104 +96.7079 0.410074 4.2024 +96.6673 0.49202 5.04217 +96.6194 0.573928 5.88156 +96.664 0.65647 6.72745 +96.5016 0.737608 7.55894 +96.4316 0.819367 8.3968 +96.4539 0.901994 9.24355 +96.3692 0.983705 10.0809 +96.2771 1.06534 10.9175 +96.1777 1.1469 11.7533 +96.071 1.22837 12.5882 +95.8579 1.3084 13.4083 +95.8356 1.39102 14.255 +96.4972 1.48434 15.2114 +96.2615 1.56446 16.0325 +96.1172 1.64599 16.868 +95.9657 1.72739 17.7021 +95.6105 1.80495 18.4969 +95.6407 1.88978 19.3663 +95.2716 1.96673 20.1549 +95.3841 2.05371 21.0462 +96.0729 2.15413 22.0753 +95.7784 2.23321 22.8857 +95.5741 2.31429 23.7167 +95.3625 2.3952 24.5458 +96.013 2.49856 25.605 +95.7849 2.57984 26.4379 +96.4145 2.68501 27.5157 +96.1696 2.76662 28.352 +95.9174 2.84802 29.1863 +95.6578 2.92921 30.0182 +96.0567 3.03117 31.0632 +95.7807 3.11247 31.8963 +96.3483 3.22198 33.0186 +95.9609 3.30027 33.8209 +96.5064 3.41138 34.9595 +96.1026 3.48963 35.7614 +96.8123 3.60924 36.9871 +96.3913 3.68758 37.79 +96.149 3.77278 38.6631 +96.6378 3.88757 39.8395 +96.3769 3.97312 40.7161 +96.0162 4.05465 41.5516 +96.7445 4.18327 42.8698 +96.3649 4.26511 43.7084 +96.6124 4.37535 44.8381 +96.2156 4.45706 45.6756 +96.5305 4.5725 46.8585 +96.116 4.65413 47.6951 +95.6941 4.73542 48.5281 +95.9746 4.85221 49.725 +96.4179 4.97896 51.0239 +95.8789 5.05585 51.8119 +96.2082 5.1793 53.077 +95.6521 5.25585 53.8615 +95.9556 5.38043 55.1381 +96.0717 5.49605 56.323 +95.5742 5.57726 57.1552 +95.8368 5.70372 58.4512 +95.9142 5.82076 59.6506 +95.3032 5.89661 60.4279 +95.5246 6.02476 61.7411 +94.8962 6.10012 62.5135 +95.8367 6.27808 64.3371 +95.269 6.35906 65.1671 +95.3493 6.48412 66.4487 +95.4958 6.61545 67.7945 +95.464 6.73609 69.0308 +95.659 6.87451 70.4493 +95.6765 7.00207 71.7566 +95.6784 7.13019 73.0695 +95.0341 7.21102 73.8978 +95.0086 7.33965 75.216 +95.6667 7.52379 77.1031 +94.987 7.60458 77.931 +94.9895 7.74099 79.3289 +95.6591 7.93473 81.3144 +94.9425 8.0155 82.142 +95.4919 8.20506 84.0847 +95.4198 8.34417 85.5102 +94.6664 8.42472 86.3357 +95.076 8.61061 88.2407 +95.0966 8.7644 89.8167 +94.9529 8.90537 91.2614 +94.791 9.04677 92.7104 +94.6109 9.18858 94.1636 +94.9732 9.38617 96.1885 +94.7514 9.52917 97.6541 +94.5111 9.67252 99.1231 +94.7978 9.87299 101.177 +94.5826 10.0246 102.731 +94.2805 10.1693 104.214 +94.4896 10.3725 106.296 +94.0133 10.5035 107.639 +94.17 10.7083 109.738 +93.847 10.8621 111.313 +93.8215 11.0537 113.277 +94.1463 11.2912 115.711 +93.5639 11.4238 117.07 +93.5805 11.6328 119.212 +93.3231 11.8118 121.046 +93.3415 12.03 123.282 +92.9113 12.1945 124.968 +92.2235 12.3279 126.335 +114.979 15.6552 160.433 +115.576 16.0305 164.279 +115.66 16.344 167.491 +115.641 16.6507 170.635 +115.576 16.9586 173.791 +115.463 17.2677 176.957 +115.842 17.6597 180.975 +115.151 17.8973 183.41 +114.95 18.2178 186.694 +114.75 18.5476 190.074 +115.008 18.9621 194.322 +115.1 19.3617 198.417 +115.03 19.7459 202.354 +114.706 20.0975 205.957 +112.085 20.0488 205.458 +109.856 20.0659 205.633 +107.634 20.0806 205.785 +105.008 20.0154 205.116 +102.849 20.034 205.307 +100.738 20.0594 205.567 +98.544 20.0651 205.625 +95.9343 19.9806 204.759 +93.7621 19.9816 204.769 +91.8005 20.0248 205.212 +91.6724 20.4759 209.835 +91.3529 20.9015 214.197 +91.0021 21.3371 218.66 +90.8046 21.8275 223.687 +90.8557 22.4007 229.561 +90.7388 22.9574 235.266 +90.7037 23.561 241.451 +90.3275 24.1025 247 +90.1946 24.7366 253.498 +89.8243 25.3355 259.636 +89.6386 26.0184 266.635 +89.2132 26.6661 273.272 +89.0691 27.4354 281.156 +88.9395 28.2529 289.533 +88.698 29.0814 298.023 +88.5623 29.9957 307.393 +88.2154 30.8932 316.59 +88.1796 31.9612 327.535 +87.7081 32.9373 337.539 +87.3822 34.0376 348.814 +87.0051 35.1963 360.689 +86.7636 36.499 374.038 +86.4027 37.8511 387.895 +85.9299 39.2624 402.357 +85.5687 40.847 418.596 +85.1008 42.5196 435.736 +84.8124 44.4426 455.444 +84.2888 46.4257 475.766 +83.9597 48.7272 499.351 +83.5986 51.2618 525.326 +91.6566 59.5624 610.39 +86.1064 59.5032 609.783 +81.7616 60.3153 618.105 +80.6409 63.7851 653.663 +78.1668 66.63 682.818 +75.6368 69.8908 716.234 +75.9961 76.6517 785.519 +72.9494 80.9798 829.873 +74.999 92.5504 948.448 +72.3026 100.42 1029.09 +68.6491 109.007 1117.09 +66.8068 123.803 1268.72 +142.91 317.89 3257.71 +114.341 317.999 3258.82 +85.7635 318.084 3259.7 +22.3234 124.207 1272.86 +28.5907 318.181 3260.69 +7.83748e-14 124.313 1273.95 +-28.5907 318.181 3260.69 +-22.2989 124.071 1271.47 +-32.6112 120.95 1239.48 +-44.5422 123.878 1269.49 +-54.2582 120.693 1236.85 +-66.7807 123.755 1268.23 +-200.013 317.6 3254.73 +-89.0511 123.681 1267.47 +-97.6973 120.56 1235.49 +-111.359 123.618 1266.82 +-119.625 120.657 1236.48 +-133.681 123.525 1265.88 +-137.768 117.435 1203.46 +-148.924 117.795 1207.16 +-163.784 120.824 1238.19 +-456.028 315.135 3229.47 +-129.732 84.3056 863.955 +-137.084 84.0581 861.419 +-160.047 92.8853 951.88 +-568.993 313.397 3211.67 +-597.131 312.903 3206.6 +-153.639 76.7639 786.67 +-157.341 75.1081 769.701 +-172.463 78.8002 807.537 +-117.678 51.5523 528.303 +-121.024 50.9112 521.733 +-125.477 50.7595 520.178 +-130.348 50.7737 520.324 +-139.462 52.3725 536.709 +-848.072 307.388 3150.09 +-875.66 306.658 3142.6 +-903.181 305.904 3134.88 +-930.633 305.127 3126.91 +-958.014 304.326 3118.71 +-165.899 51.101 523.679 +-158.031 47.2361 484.071 +-147.801 42.9006 439.641 +-152.691 43.0675 441.352 +-1093.78 299.978 3074.15 +-1120.7 299.04 3064.53 +-441.366 114.649 1174.91 +-139.047 35.1795 360.517 +-140.003 34.5183 353.74 +-421.957 101.43 1039.44 +-426.807 100.072 1025.53 +-425.506 97.3556 997.691 +-425.665 95.0764 974.334 +-425.04 92.7157 950.142 +-428.337 91.2826 935.456 +-431.916 89.9568 921.868 +-434.644 88.5003 906.942 +-436.881 86.9937 891.504 +-438.568 85.4294 875.473 +-440.053 83.8777 859.57 +-145.035 27.0585 277.293 +-145.301 26.5401 271.98 +-146.917 26.2794 269.309 +-150.776 26.4172 270.721 +-454.901 78.0876 800.234 +-111.8 18.8065 192.728 +-110.542 18.2258 186.776 +-111.815 18.0731 185.211 +-112.651 17.8534 182.96 +-114.357 17.7738 182.144 +-116.057 17.6926 181.312 +-117.86 17.626 180.63 +-119.55 17.5417 179.766 +-121.401 17.48 179.133 +-124.213 17.5525 179.877 +-128.825 17.8683 183.112 +-493.656 67.2146 688.808 +-496.796 66.4086 680.549 +-500.186 65.6493 672.768 +-503.478 64.8893 664.98 +-506.794 64.1443 657.345 +-510.199 63.4215 649.938 +-513.077 62.6447 641.977 +-2062.09 247.312 2534.43 +-527.881 62.1926 637.344 +-523.358 60.5748 620.765 +-527.612 59.996 614.834 +-531.014 59.3267 607.974 +-161.812 17.7627 182.03 +-164.807 17.7765 182.172 +-169.776 17.9941 184.402 +-545.599 56.823 582.317 +-550.064 56.2951 576.907 +-553.156 55.6311 570.102 +-556.872 55.0355 563.998 +-559.958 54.3829 557.311 +-563.967 53.8246 551.589 +-567.703 53.2433 545.632 +-570.942 52.6198 539.243 +-571.553 51.763 530.462 +-591.739 52.6611 539.666 +-582.551 50.9423 522.051 +-586.357 50.3823 516.313 +-591.164 49.9089 511.462 +-594.942 49.3492 505.726 +-389.227 31.7193 325.056 +-387.124 30.9928 317.611 +-389.195 30.6086 313.674 +-385.278 29.7637 305.015 +-386.204 29.3045 300.31 +-386.601 28.8104 295.247 +-141.438 10.3511 106.077 +-143.006 10.2771 105.319 +-143.762 10.144 103.955 +-142.714 9.88649 101.316 +-141.713 9.63705 98.7596 +-141.997 9.47808 97.1305 +-145.828 9.55288 97.897 +-148.682 9.55758 97.9452 +-659.195 41.5756 426.062 +-381.888 23.6281 242.139 +-380.858 23.1132 236.862 +-382.494 22.7642 233.285 +-382.382 22.314 228.672 +-382.046 21.8561 223.979 +-382.87 21.4683 220.005 +-381.651 20.9708 214.907 +-382.121 20.5712 210.812 +-380.967 20.089 205.87 +-380.904 19.6696 201.573 +-714.221 36.1091 370.042 +-727.24 35.9874 368.795 +-722.481 34.9839 358.512 +-405.716 19.2181 196.946 +-407.427 18.8735 193.414 +-405.845 18.3797 188.353 +-403.568 17.8619 183.047 +-405.706 17.5429 179.778 +-406.349 17.1597 175.851 +-404.93 16.6932 171.07 +-404.752 16.2825 166.861 +-405.365 15.9061 163.004 +-404.825 15.4872 158.711 +-406.481 15.1539 155.295 +-405.954 14.7408 151.062 +-404.256 14.2899 146.441 +-405.713 13.9532 142.991 +-404.871 13.5393 138.749 +-405.977 13.1925 135.196 +-405.53 12.797 131.142 +-390.07 11.9446 122.408 +-382.809 11.3665 116.483 +-380.364 10.9424 112.136 +-381.333 10.6195 108.828 +-380.634 10.2519 105.06 +-381.154 9.91883 101.647 +-380.869 9.56624 98.0339 +-380.259 9.20783 94.361 +-381.072 8.8852 91.0547 +-380.979 8.54224 87.5401 +-379.682 8.17489 83.7755 +-380.988 7.8649 80.5988 +-380.113 7.51073 76.9692 +-378.81 7.15123 73.2851 +-379.733 6.83522 70.0467 +-380.924 6.52324 66.8496 +-379.03 6.16008 63.128 +-379.47 5.83709 59.818 +-379.386 5.50665 56.4317 +-378.282 5.16328 52.9128 +-379.327 4.85009 49.7032 +-378.359 4.51185 46.237 +-378.153 4.18441 42.8814 +-380.504 3.88407 39.8035 +-378.848 3.54282 36.3065 +-379.749 3.22668 33.0667 +-378.629 2.89405 29.6579 +-378.476 2.57033 26.3405 +-378.193 2.2465 23.022 +-378.68 1.92742 19.752 +-379.439 1.60894 16.4883 +-378.07 1.28222 13.1401 +-144.85 0.368379 3.77511 +-144.378 0.244754 2.50822 +-145.094 0.122975 1.26023 +95.8 0 0 +95.7964 0.0886951 0.831284 +95.8854 0.177569 1.66424 +96.7668 0.268836 2.51963 +95.8416 0.355083 3.32797 +95.8087 0.443803 4.15949 +95.8684 0.533045 4.99589 +95.8209 0.621783 5.82758 +96.5642 0.716395 6.71432 +96.5016 0.80577 7.55198 +96.4316 0.895084 8.38906 +96.4539 0.985346 9.23503 +96.3692 1.07461 10.0716 +96.2771 1.16379 10.9075 +96.1777 1.25288 11.7425 +96.071 1.34188 12.5766 +96.8482 1.44406 13.5343 +95.7367 1.518 14.2272 +96.5959 1.62317 15.213 +96.2615 1.70903 16.0177 +95.2309 1.78151 16.697 +95.9657 1.88702 17.6858 +95.8068 1.97579 18.5179 +95.6407 2.06442 19.3485 +95.4672 2.15289 20.1777 +95.2865 2.24119 21.0053 +95.9755 2.35081 22.0326 +95.7784 2.43958 22.8646 +95.6712 2.53072 23.7189 +96.2339 2.64045 24.7473 +96.013 2.72945 25.5814 +95.7849 2.81824 26.4136 +95.6455 2.90973 27.2711 +96.1696 3.02228 28.3259 +95.7261 3.105 29.1012 +95.4671 3.19351 29.9308 +96.0567 3.31128 31.0345 +95.7807 3.40009 31.8669 +96.2538 3.51626 32.9557 +96.0552 3.60879 33.8229 +95.6607 3.69396 34.6212 +96.1026 3.81211 35.7285 +95.7854 3.90094 36.5611 +96.4843 4.03224 37.7917 +96.8907 4.15321 38.9255 +96.6378 4.24682 39.8028 +96.2848 4.33613 40.6398 +96.1079 4.43357 41.553 +95.7396 4.52238 42.3854 +96.3649 4.65924 43.6681 +95.7967 4.73932 44.4187 +96.3961 4.87807 45.7191 +96.5305 4.99504 46.8154 +96.0265 5.07948 47.6068 +96.4069 5.21155 48.8446 +95.9746 5.3006 49.6792 +96.3296 5.43408 50.9302 +95.8789 5.52306 51.7642 +96.1207 5.65277 52.9799 +95.6521 5.74154 53.8119 +95.9556 5.87763 55.0873 +96.1578 6.00932 56.3216 +95.4027 6.08172 57.0002 +95.6662 6.21971 58.2934 +96.0838 6.36989 59.701 +95.3032 6.44151 60.3722 +95.4407 6.57572 61.6301 +95.6467 6.71654 62.9499 +95.0906 6.80483 63.7774 +95.1866 6.94068 65.0507 +95.4312 7.0894 66.4446 +95.4958 7.22678 67.7321 +95.6258 7.37103 69.0841 +95.659 7.50977 70.3844 +95.6765 7.64913 71.6905 +95.1231 7.74388 72.5785 +95.1129 7.8839 73.8909 +95.713 8.07733 75.7038 +95.045 8.16565 76.5315 +95.6814 8.36805 78.4285 +95.5257 8.50406 79.7032 +95.6591 8.66797 81.2395 +94.9425 8.7562 82.0664 +95.4919 8.96329 84.0073 +95.4198 9.11524 85.4315 +94.6664 9.20324 86.2562 +95.2223 9.42077 88.295 +94.9515 9.55969 89.5971 +94.809 9.71357 91.0393 +94.6483 9.86791 92.4858 +95.1766 10.0977 94.6394 +95.1134 10.2687 96.2418 +94.7514 10.4098 97.5641 +94.6488 10.5817 99.1761 +94.2522 10.7233 100.503 +94.5826 10.951 102.636 +94.8158 11.1722 104.71 +94.5559 11.3389 106.273 +94.1445 11.4901 107.69 +94.105 11.6898 109.561 +94.3612 11.9308 111.82 +93.8851 12.0833 113.249 +94.0834 12.3264 115.527 +93.5639 12.4795 116.962 +93.6421 12.716 119.18 +93.7493 12.9622 121.486 +93.3415 13.1417 123.169 +93.5061 13.4067 125.653 +92.2823 13.4757 126.299 +111.495 16.5836 155.428 +115.633 17.5205 164.209 +115.264 17.7931 166.763 +115.529 18.1717 170.312 +115.079 18.4461 172.884 +115.355 18.8455 176.627 +115.358 19.2111 180.054 +115.098 19.5422 183.156 +114.95 19.9013 186.522 +114.905 20.2888 190.155 +114.957 20.7053 194.058 +114.95 21.1233 197.975 +114.981 21.5613 202.081 +114.997 22.0103 206.289 +112.562 21.9947 206.143 +109.856 21.9202 205.444 +107.634 21.9363 205.595 +105.507 21.969 205.901 +103.25 21.9709 205.919 +100.65 21.8939 205.198 +98.4579 21.9001 205.256 +96.357 21.9231 205.472 +94.1354 21.915 205.395 +91.8411 21.885 205.115 +91.6724 22.3681 209.642 +91.392 22.8427 214.091 +91.1169 23.3382 218.734 +90.8796 23.8643 223.665 +90.8557 24.4708 229.349 +90.7746 25.0888 235.141 +90.5986 25.7085 240.949 +90.2933 26.3198 246.679 +90.0945 26.9924 252.983 +89.9219 27.7067 259.678 +89.5751 28.4027 266.201 +89.3677 29.1808 273.494 +89.1893 30.0111 281.275 +89.1149 30.9246 289.837 +88.8968 31.8401 298.417 +88.5623 32.7676 307.11 +88.2421 33.7583 316.395 +88.1796 34.9147 327.234 +87.633 35.9503 336.94 +87.4064 37.1933 348.589 +86.9351 38.4179 360.067 +86.7186 39.8512 373.5 +86.5542 41.4215 388.217 +86.0754 42.9632 402.667 +85.6285 44.6528 418.503 +85.2916 46.5528 436.311 +84.5391 48.393 453.558 +84.4104 50.789 476.013 +83.9762 53.2405 498.99 +83.5829 55.9883 524.744 +91.7896 65.1609 610.713 +86.2177 65.0858 610.009 +81.5267 65.6996 615.761 +80.6166 69.6583 652.863 +78.3027 72.9138 683.375 +75.5427 76.2544 714.684 +76.2453 84.0095 787.369 +72.6356 88.0826 825.543 +74.5832 100.542 942.321 +72.5188 110.027 1031.22 +67.8799 117.747 1103.57 +64.5564 130.688 1224.86 +142.91 347.266 3254.71 +114.341 347.385 3255.82 +85.7635 347.478 3256.7 +57.1793 347.544 3257.31 +28.5907 347.584 3257.69 +7.45908e-14 129.244 1211.32 +-28.5907 347.584 3257.69 +-57.1793 347.544 3257.31 +-31.093 125.975 1180.69 +-42.4762 129.049 1209.49 +-51.8329 125.952 1180.47 +-63.6824 128.918 1208.27 +-200.013 346.949 3251.73 +-84.7471 128.58 1205.1 +-93.3349 125.82 1179.24 +-106.286 128.89 1208 +-114.2 125.829 1179.32 +-127.493 128.695 1206.17 +-136.138 126.769 1188.13 +-146.828 126.87 1189.07 +-157.845 127.202 1192.18 +-124.212 93.7677 878.826 +-129.954 92.2536 864.635 +-137.396 92.0355 862.591 +-160.36 101.668 952.867 +-568.993 342.358 3208.71 +-597.131 341.818 3203.65 +-153.907 84.0034 787.311 +-157.7 82.2358 770.745 +-161.88 80.8 757.288 +-117.743 56.3472 528.107 +-121.226 55.7089 522.124 +-125.454 55.4398 519.603 +-130.348 55.4656 519.844 +-140.038 57.4485 538.429 +-848.072 335.794 3147.19 +-875.66 334.996 3139.71 +-903.181 334.173 3131.99 +-930.633 333.323 3124.03 +-958.014 332.449 3115.83 +-166.29 55.9547 524.428 +-154.354 50.4004 472.372 +-147.896 46.8952 439.519 +-153.245 47.2179 442.544 +-1093.65 327.66 3070.95 +-1120.7 326.674 3061.71 +-1147.38 325.584 3051.5 +-434.27 120.026 1124.92 +-395.895 106.629 999.368 +-139.841 36.7212 344.165 +-1253.79 321.138 3009.83 +-413.901 103.452 969.588 +-394.243 96.1954 901.58 +-426.545 101.642 952.628 +-429.788 100.056 937.761 +-432.169 98.3272 921.559 +-434.859 96.7263 906.555 +-436.881 95.0327 890.683 +-438.746 93.3619 875.022 +-440.462 91.7138 859.576 +-145.543 29.6625 278.008 +-145.114 28.9552 271.379 +-146.726 28.6705 268.711 +-151.212 28.9419 271.254 +-455.492 85.4143 800.535 +-111.5 20.4894 192.034 +-110.948 19.9831 187.289 +-112.227 19.816 185.723 +-112.807 19.5304 183.046 +-114.622 19.4612 182.398 +-116.164 19.3453 181.312 +-117.805 19.2459 180.38 +-119.77 19.1981 179.932 +-121.569 19.1217 179.216 +-124.156 19.1657 179.628 +-128.711 19.502 182.781 +-493.365 73.3826 687.769 +-496.796 72.5453 679.922 +-500.186 71.7159 672.148 +-503.478 70.8857 664.367 +-507.159 70.1223 657.213 +-510.199 69.2823 649.339 +-513.263 68.4584 641.618 +-2061.84 270.133 2531.79 +-530.362 68.2591 639.75 +-523.743 66.2212 620.65 +-527.806 65.5644 614.494 +-531.605 64.881 608.09 +-163.601 19.6186 183.873 +-165.342 19.4822 182.595 +-169.235 19.5944 183.646 +-545.94 62.1128 582.145 +-550.271 61.5203 576.591 +-553.365 60.7948 569.792 +-557.153 60.1516 563.763 +-560.594 59.4759 557.43 +-564.181 58.8207 551.29 +-567.775 58.1709 545.199 +-571.232 57.5115 539.02 +-571.626 56.5536 530.042 +-592.402 57.5919 539.773 +-582.551 55.6498 521.571 +-586.657 55.0661 516.101 +-591.164 54.5209 510.991 +-595.626 53.9716 505.842 +-389.534 34.6777 325.012 +-388.127 33.9446 318.141 +-388.495 33.377 312.821 +-385.669 32.5471 305.044 +-384.786 31.8948 298.93 +-387.791 31.5698 295.884 +-141.678 11.3268 106.159 +-142.685 11.2015 104.985 +-143.115 11.0316 103.392 +-141.9 10.7386 100.646 +-141.877 10.5398 98.7827 +-142.244 10.372 97.2099 +-146.574 10.489 98.3073 +-149.266 10.4818 98.2391 +-383.44 26.4184 247.604 +-380.538 25.7205 241.062 +-382.215 25.339 237.487 +-382.494 24.8678 233.07 +-383.925 24.4745 229.384 +-382.046 23.8758 223.773 +-380.099 23.2824 218.211 +-381.303 22.8878 214.513 +-381.597 22.4413 210.328 +-382.022 22.0062 206.25 +-382.934 21.6019 202.461 +-715.463 39.5144 370.344 +-730.18 39.4719 369.945 +-722.481 38.2168 358.182 +-404.907 20.9521 196.371 +-403.636 20.4258 191.438 +-407.295 20.15 188.853 +-402.749 19.4729 182.507 +-402.599 19.0173 178.237 +-404.699 18.6692 174.975 +-406.587 18.3104 171.612 +-406.415 17.8601 167.392 +-404.53 17.3402 162.519 +-403.894 16.8794 158.2 +-406.574 16.558 155.188 +-405.579 16.0881 150.784 +-406.887 15.712 147.259 +-406.844 15.2851 143.258 +-406.1 14.8354 139.043 +-406.072 14.415 135.103 +-404.675 13.95 130.745 +-387.877 12.975 121.607 +-382.809 12.4169 116.375 +-380.939 11.9716 112.202 +-380.179 11.5659 108.4 +-380.249 11.1879 104.857 +-380.188 10.8079 101.296 +-380.676 10.4449 97.8938 +-380.259 10.0587 94.2741 +-381.072 9.70627 90.9709 +-381.856 9.3531 87.6607 +-378.803 8.90965 83.5046 +-380.988 8.59169 80.5245 +-380.407 8.21113 76.9578 +-381.068 7.85863 73.654 +-380.815 7.48812 70.1815 +-379.348 7.09658 66.5118 +-379.72 6.74158 63.1847 +-379.865 6.38313 59.8251 +-379.98 6.02493 56.4679 +-381.055 5.68176 53.2515 +-379.129 5.29551 49.6315 +-378.756 4.93395 46.2428 +-379.147 4.5831 42.9545 +-378.515 4.2208 39.559 +-378.051 3.86207 36.1967 +-378.355 3.51191 32.915 +-378.629 3.16148 29.6306 +-379.174 2.81303 26.3648 +-379.092 2.45992 23.0553 +-378.88 2.10664 19.7442 +-377.94 1.75068 16.4081 +-376.471 1.39478 13.0724 +-142.551 0.396032 3.71176 +-144.778 0.268112 2.51285 +-145.094 0.134339 1.25907 +96 0 0 +95.9963 0.0963915 0.832183 +95.9854 0.192776 1.6643 +95.9671 0.289146 2.4963 +95.9415 0.385493 3.3281 +96.9077 0.48683 4.20298 +96.8671 0.584115 5.04287 +96.8191 0.681354 5.88238 +95.7661 0.770516 6.65214 +95.8038 0.867546 7.48984 +96.7305 0.973736 8.40661 +96.653 1.07082 9.24481 +96.5681 1.16783 10.0823 +96.4758 1.26474 10.919 +96.3762 1.36157 11.7549 +96.2693 1.45829 12.5899 +96.155 1.55489 13.4239 +96.0334 1.65138 14.257 +95.8058 1.74594 15.0733 +96.3601 1.85537 16.0181 +95.3294 1.93406 16.6975 +96.1623 2.05068 17.7042 +95.7087 2.14057 18.4803 +95.7386 2.24117 19.3488 +95.3694 2.33244 20.1368 +95.3841 2.43309 21.0058 +96.0729 2.55206 22.0329 +95.9729 2.65112 22.8881 +95.6712 2.74459 23.6951 +96.3307 2.86648 24.7473 +96.1096 2.96309 25.5815 +95.8812 3.05948 26.4136 +96.5107 3.18418 27.4902 +96.2655 3.28096 28.3257 +95.8217 3.37076 29.101 +96.4208 3.498 30.1995 +96.1518 3.59467 31.0341 +95.7807 3.68743 31.835 +96.4429 3.82093 32.9874 +96.0552 3.91377 33.789 +96.5064 4.04155 34.8922 +96.2899 4.14232 35.7622 +96.9056 4.28009 36.9515 +96.5773 4.37722 37.7901 +96.2417 4.47403 38.626 +96.7302 4.61013 39.8009 +96.3769 4.70706 40.6378 +96.9332 4.84954 41.8679 +96.6531 4.95136 42.7469 +96.2739 5.04822 43.5831 +96.0686 5.15442 44.5 +96.3058 5.28536 45.6304 +96.8001 5.4323 46.899 +96.2054 5.51902 47.6477 +96.5851 5.66242 48.8858 +96.0633 5.75387 49.6753 +96.4179 5.89872 50.9258 +95.8789 5.98982 51.7123 +96.2082 6.13607 52.9749 +95.7391 6.23243 53.8069 +95.2628 6.32832 54.6347 +96.244 6.52301 56.3155 +95.7456 6.6194 57.1477 +96.0073 6.76938 58.4426 +95.4054 6.85943 59.22 +96.3153 7.06006 60.9521 +95.6084 7.14396 61.6764 +95.8135 7.29686 62.9964 +95.9196 7.44425 64.2689 +95.3514 7.54028 65.098 +95.5131 7.69513 66.4348 +95.5772 7.84419 67.7217 +95.6258 7.99396 69.0148 +95.659 8.14443 70.3138 +95.0376 8.24017 71.1404 +95.1231 8.39832 72.5057 +95.7433 8.60685 74.3061 +95.7912 8.76712 75.6897 +95.7444 8.9209 77.0174 +95.0641 9.01669 77.8443 +95.0661 9.17836 79.2401 +95.1268 9.3482 80.7064 +95.0179 9.50374 82.0492 +95.5667 9.72839 83.9888 +94.8996 9.83168 84.8805 +94.7401 9.98877 86.2367 +95.2954 10.2248 88.2742 +95.024 10.3755 89.5755 +95.0248 10.5585 91.1549 +94.8623 10.726 92.6018 +94.6816 10.8941 94.0528 +94.5527 11.0708 95.5785 +94.9598 11.3143 97.6807 +94.5799 11.4677 99.0045 +94.2522 11.6295 100.402 +94.6502 11.8849 102.607 +94.3474 12.0564 104.087 +94.6221 12.3058 106.241 +94.2101 12.4698 107.656 +94.2349 12.6952 109.602 +93.847 12.8686 111.099 +93.9488 13.1133 113.212 +94.0834 13.3681 115.411 +93.6262 13.5431 116.922 +93.7037 13.7998 119.138 +93.871 14.0759 121.523 +93.5822 14.2891 123.363 +93.6251 14.5582 125.687 +92.3411 14.6238 126.253 +103.249 16.655 143.789 +115.69 19.0106 164.126 +115.66 19.3632 167.169 +115.697 19.7361 170.389 +115.244 20.0337 172.959 +115.572 20.4768 176.784 +115.466 20.8541 180.041 +115.204 21.2132 183.142 +115.002 21.5929 186.42 +114.905 22.0035 189.964 +114.907 22.4452 193.777 +115 22.9184 197.863 +115.326 23.4536 202.483 +114.948 23.8603 205.995 +112.609 23.8636 206.024 +110.326 23.8742 206.115 +108.049 23.8821 206.182 +105.507 23.8256 205.695 +103.384 23.8585 205.979 +101.132 23.858 205.975 +98.587 23.7821 205.319 +96.3992 23.7863 205.356 +94.1768 23.7775 205.28 +91.9225 23.7555 205.09 +91.5129 24.2162 209.067 +91.3139 24.752 213.693 +91.0787 25.2998 218.423 +90.8796 25.8811 223.441 +90.9656 26.5709 229.396 +90.8104 27.2197 234.998 +90.6687 27.9026 240.893 +90.4643 28.5982 246.898 +90.0277 29.2518 252.542 +89.7266 29.983 258.854 +89.6703 30.8357 266.216 +89.2441 31.6031 272.841 +88.9488 32.4596 280.235 +89.1149 33.538 289.546 +88.6412 34.4316 297.261 +88.6174 35.559 306.993 +88.2956 36.6334 316.269 +87.8949 37.743 325.849 +87.8333 39.0775 337.37 +87.3822 40.3253 348.143 +86.9584 41.6758 359.802 +86.7411 43.2302 373.222 +86.4027 44.8433 387.149 +86.1586 46.6391 402.652 +85.6684 48.449 418.277 +85.1962 50.4306 435.386 +84.7942 52.6412 454.47 +84.2715 54.9905 474.753 +83.9762 57.7399 498.489 +83.5204 60.6745 523.825 +91.9375 70.7815 611.082 +86.3291 70.6774 610.183 +81.5789 71.2975 615.538 +80.6531 75.5794 652.504 +78.5177 79.2929 684.564 +75.3023 82.4355 711.696 +76.5137 91.4299 789.347 +74.0301 97.3604 840.548 +74.5675 109.016 941.177 +71.7236 118.017 1018.89 +69.2351 130.246 1124.46 +61.1179 134.183 1158.45 +49.351 130.055 1122.81 +114.341 376.742 3252.55 +29.5276 129.743 1120.12 +57.1793 376.915 3254.04 +9.83742 129.703 1119.77 +7.09721e-14 133.367 1151.4 +-9.82521 129.542 1118.38 +-20.1942 133.116 1149.24 +-29.4124 129.237 1115.75 +-40.3333 132.895 1147.33 +-49.0326 129.216 1115.57 +-60.5318 132.896 1147.34 +-68.6857 129.213 1115.54 +-80.764 132.892 1147.31 +-88.2586 129.032 1113.98 +-101.014 132.848 1146.92 +-107.874 128.904 1112.88 +-121.358 132.853 1146.97 +-127.659 128.919 1113.01 +-143.148 134.142 1158.1 +-147.573 128.975 1113.49 +-122.973 100.678 869.19 +-130.25 100.278 865.733 +-137.662 100.007 863.393 +-160.773 110.543 954.36 +-568.993 371.291 3205.49 +-597.131 370.705 3200.43 +-153.964 91.1365 786.814 +-157.879 89.2871 770.848 +-164.209 88.8889 767.41 +-117.96 61.2215 528.547 +-121.474 60.5402 522.666 +-125.71 60.2481 520.143 +-130.807 60.3652 521.155 +-141.139 62.7936 542.12 +-848.072 364.172 3144.03 +-875.66 363.307 3136.56 +-903.181 362.414 3128.85 +-930.633 361.492 3120.89 +-958.014 360.544 3112.71 +-166.591 60.7932 524.85 +-151.635 53.6967 463.584 +-148.34 51.011 440.397 +-153.408 51.2626 442.569 +-1093.78 355.393 3068.24 +-1120.7 354.281 3058.64 +-1147.38 353.1 3048.44 +-434.378 130.201 1124.07 +-424.775 124.075 1071.19 +-394.386 112.315 969.656 +-414.37 115.104 993.736 +-1280.15 347.005 2995.82 +-139.363 36.8782 318.383 +-1332.59 344.382 2973.17 +-395.41 99.8319 861.886 +-432.338 106.679 920.995 +-434.902 104.911 905.736 +-436.881 103.064 889.789 +-439.549 101.437 875.745 +-440.734 99.526 859.244 +-145.543 32.1693 277.729 +-144.926 31.3616 270.756 +-146.774 31.1036 268.529 +-151.018 31.3475 270.635 +-456.181 92.773 800.943 +-111.35 22.191 191.583 +-111.252 21.7313 187.615 +-111.866 21.4216 184.941 +-113.539 21.3183 184.048 +-114.781 21.1351 182.467 +-116.594 21.0579 181.8 +-117.86 20.8821 180.283 +-120.101 20.8782 180.249 +-122.072 20.8235 179.777 +-125.176 20.9562 180.922 +-128.481 21.1124 182.271 +-493.83 79.6591 687.726 +-497.266 78.7506 679.882 +-500.841 77.8783 672.352 +-503.96 76.9498 664.335 +-507.464 76.0939 656.947 +-510.506 75.1827 649.079 +-514.073 74.361 641.986 +-513.4 72.9478 629.785 +-532.27 74.2939 641.407 +-524.643 71.941 621.092 +-528.651 71.2189 614.859 +-532.195 70.4423 608.154 +-161.746 21.0353 181.606 +-165.744 21.18 182.854 +-170.316 21.3861 184.634 +-546.417 67.4209 582.069 +-550.684 66.7694 576.445 +-553.921 65.9989 569.792 +-557.643 65.2924 563.693 +-560.736 64.5185 557.012 +-564.966 63.8804 551.503 +-568.782 63.1988 545.618 +-572.465 62.5065 539.641 +-572.284 61.4036 530.12 +-591.37 62.3502 538.292 +-583.146 60.4144 521.58 +-587.481 59.8037 516.307 +-591.692 59.1813 510.934 +-595.474 58.5178 505.205 +-599.66 57.8954 499.832 +-389.285 36.923 318.77 +-385.231 35.8936 309.882 +-385.826 35.312 304.862 +-387.465 34.8312 300.71 +-388.981 34.3428 296.494 +-141.838 12.2979 106.172 +-142.685 12.1482 104.88 +-143.115 11.9639 103.288 +-142.796 11.7195 101.179 +-141.795 11.4239 98.6267 +-142.409 11.2615 97.225 +-146.823 11.3948 98.3754 +-147.931 11.266 97.2633 +-660.369 49.3435 426.001 +-382.562 28.0424 242.1 +-381.791 27.45 236.986 +-381.812 26.9213 232.421 +-384.268 26.5665 229.359 +-382.563 25.9285 223.85 +-382.177 25.3881 219.185 +-381.129 24.8107 214.2 +-382.909 24.4216 210.84 +-381.495 23.833 205.759 +-383.376 23.4545 202.491 +-716.173 42.8964 370.34 +-733.12 42.98 371.062 +-722.928 41.4723 358.045 +-404.637 22.7077 196.044 +-404.629 22.2064 191.716 +-405.935 21.7799 188.034 +-405.115 21.2426 183.395 +-406.619 20.8303 179.836 +-403.598 20.1918 174.323 +-404.746 19.7678 170.663 +-404.474 19.2771 166.426 +-404.623 18.8098 162.392 +-404.173 18.3185 158.151 +-406.294 17.9451 154.926 +-405.579 17.4478 150.633 +-403.504 16.8981 145.888 +-407.504 16.6038 143.347 +-405.344 16.0591 138.644 +-404.934 15.5894 134.589 +-404.104 15.1075 130.429 +-386.351 14.0162 121.007 +-380.227 13.3754 115.475 +-380.556 12.9703 111.977 +-380.756 12.5623 108.455 +-381.019 12.158 104.964 +-380.382 11.7273 101.246 +-380.772 11.3305 97.8205 +-381.229 10.9366 94.4198 +-380.002 10.497 90.6245 +-380.589 10.1099 87.2823 +-380.951 9.71739 83.8938 +-379.326 9.27711 80.0927 +-380.113 8.89817 76.8212 +-380.086 8.5008 73.3905 +-378.356 8.06852 69.6585 +-380.234 7.71429 66.6003 +-381.002 7.33601 63.3345 +-379.569 6.91718 59.7185 +-379.288 6.52219 56.3084 +-379.966 6.14431 53.046 +-378.038 5.72651 49.4391 +-378.458 5.34672 46.1602 +-379.147 4.97041 42.9114 +-378.913 4.58232 39.5608 +-378.35 4.19177 36.189 +-378.056 3.80569 32.8559 +-380.125 3.44221 29.7178 +-377.977 3.04113 26.2552 +-379.491 2.67063 23.0565 +-378.181 2.28045 19.688 +-378.739 1.90265 16.4263 +-379.769 1.52591 13.1737 +-143.651 0.432815 3.73665 +-143.278 0.287758 2.48432 +-144.794 0.14539 1.25521 +96 0 0 +95.9963 0.103895 0.83128 +95.9854 0.207782 1.6625 +95.9671 0.311654 2.49359 +95.9415 0.415501 3.32449 +95.9086 0.519317 4.15513 +95.8684 0.623093 4.98546 +95.8209 0.726822 5.81542 +96.7637 0.839147 6.71414 +96.701 0.943836 7.55178 +96.7305 1.04953 8.39749 +96.5534 1.15299 9.22527 +96.5681 1.25874 10.0713 +96.4758 1.3632 10.9071 +96.5747 1.47058 11.7664 +96.4676 1.57504 12.6022 +96.155 1.67593 13.4094 +95.9345 1.7781 14.2268 +95.707 1.87991 15.0415 +96.1628 1.9957 15.9679 +96.2157 2.104 16.8344 +96.064 2.20805 17.667 +95.7087 2.3072 18.4603 +95.5427 2.41069 19.2883 +95.565 2.51916 20.1562 +96.2628 2.64664 21.1761 +96.0729 2.75072 22.009 +95.9729 2.85749 22.8632 +95.6712 2.95824 23.6694 +96.4275 3.09271 24.7453 +96.2062 3.19696 25.5794 +95.8812 3.29764 26.3849 +95.6455 3.40128 27.2142 +96.0737 3.52932 28.2386 +95.8217 3.63316 29.0694 +95.7532 3.74419 29.9578 +96.1518 3.87449 31.0004 +95.8755 3.97841 31.8318 +96.632 4.12643 33.0162 +96.1494 4.22257 33.7854 +96.6004 4.36041 34.8883 +96.1026 4.4561 35.6539 +95.8787 4.56438 36.5203 +96.4843 4.71342 37.7128 +97.0761 4.86411 38.9185 +96.7302 4.96899 39.7577 +96.4689 5.07833 40.6325 +97.025 5.232 41.862 +95.8309 5.2914 42.3373 +96.2739 5.44119 43.5358 +96.0686 5.55566 44.4517 +96.3058 5.69679 45.5809 +95.9013 5.8008 46.4131 +96.2054 5.94864 47.596 +96.496 6.09758 48.7876 +96.0633 6.20177 49.6213 +96.3296 6.35207 50.8239 +95.8789 6.45608 51.6561 +96.2956 6.61972 52.9654 +96.4354 6.76644 54.1393 +95.9556 6.87055 54.9723 +95.5547 6.98043 55.8515 +95.6599 7.12828 57.0345 +96.0073 7.29634 58.3791 +95.9142 7.43283 59.4712 +95.3876 7.53635 60.2995 +95.7762 7.71359 61.7176 +95.8135 7.86487 62.928 +95.8367 8.0168 64.1437 +95.3514 8.12724 65.0273 +96.1684 8.35105 66.8181 +95.5772 8.45481 67.6482 +95.6258 8.61624 68.9398 +95.7394 8.7858 70.2965 +95.7564 8.94878 71.6005 +95.0437 9.04452 72.3666 +95.8221 9.28447 74.2865 +95.0869 9.3801 75.0516 +95.1227 9.55289 76.4341 +95.0641 9.71858 77.7598 +95.7556 9.96459 79.7282 +95.0507 10.0678 80.5543 +95.6972 10.3168 82.5461 +95.0425 10.4282 83.4374 +95.4941 10.6634 85.3195 +95.4037 10.8418 86.7465 +95.2954 11.0207 88.1784 +95.1691 11.2002 89.6149 +95.0248 11.3804 91.056 +94.8623 11.561 92.5012 +94.6816 11.7421 93.9507 +95.1835 12.0122 96.1117 +94.9598 12.1951 97.5747 +94.7176 12.3783 99.041 +94.9342 12.6254 101.018 +94.6502 12.8101 102.496 +94.3474 12.9949 103.974 +93.9595 13.1709 105.382 +94.2101 13.4405 107.539 +94.17 13.674 109.408 +93.847 13.8703 110.979 +94.0124 14.1437 113.166 +94.1463 14.4184 115.363 +93.6885 14.6071 116.874 +93.7037 14.874 119.009 +93.7493 15.1519 121.233 +93.5822 15.4014 123.229 +93.6846 15.7014 125.63 +92.8701 15.8525 126.838 +99.7067 17.3356 138.705 +115.633 20.4803 163.866 +115.207 20.7886 166.333 +115.194 21.1799 169.464 +115.686 21.676 173.433 +115.572 22.0708 176.592 +115.412 22.4669 179.761 +115.204 22.8645 182.943 +114.95 23.2633 186.133 +114.905 23.7163 189.758 +115.008 24.2137 193.738 +115 24.7025 197.648 +115.129 25.2361 201.918 +114.948 25.7177 205.771 +113.039 25.8194 206.585 +110.373 25.7436 205.978 +108.095 25.752 206.046 +105.507 25.6802 205.471 +103.384 25.7157 205.755 +101.045 25.6929 205.573 +98.9315 25.7229 205.813 +96.357 25.6267 205.043 +94.1768 25.6284 205.057 +92.0038 25.6274 205.049 +91.3534 26.0558 208.476 +91.2748 26.6674 213.37 +91.0787 27.2693 218.186 +90.9545 27.9187 223.382 +90.6358 28.5354 228.316 +90.7388 29.3155 234.558 +90.6337 30.0631 240.54 +90.4301 30.8127 246.537 +89.9609 31.5056 252.081 +89.694 32.3052 258.479 +89.6068 33.2127 265.74 +89.3368 34.0985 272.827 +89.039 35.0219 280.216 +88.9979 36.1013 288.852 +88.4708 37.0404 296.366 +88.6174 38.327 306.66 +88.2688 39.473 315.83 +88.1538 40.8009 326.454 +87.658 42.0354 336.331 +87.3822 43.4644 347.765 +87.0284 44.9562 359.702 +86.7861 46.6195 373.01 +86.5542 48.4189 387.407 +86.0754 50.2211 401.827 +85.6883 52.2325 417.921 +85.2535 54.3928 435.205 +84.776 56.7267 453.879 +84.2715 59.2711 474.237 +83.9597 62.2222 497.85 +83.5829 65.4466 523.648 +92.0261 76.3649 611.007 +86.5796 76.4003 611.29 +81.618 76.8844 615.164 +80.5434 81.352 650.91 +78.6876 85.6502 685.3 +76.4103 90.16 721.384 +77.2708 99.5223 796.293 +76.1741 107.978 863.952 +74.1046 116.773 934.319 +71.333 126.511 1012.23 +66.0606 133.948 1071.74 +57.7684 136.703 1093.78 +46.8996 133.217 1065.89 +38.3929 136.348 1090.94 +28.0774 132.975 1063.95 +19.1767 136.249 1090.15 +9.33827 132.706 1061.8 +6.70962e-14 135.898 1087.34 +-9.32256 132.483 1060.01 +-19.0894 135.629 1085.19 +-27.9334 132.293 1058.49 +-38.2184 135.728 1085.98 +-46.5942 132.349 1058.94 +-57.2241 135.414 1083.47 +-65.0411 131.881 1055.2 +-76.2578 135.246 1082.12 +-83.6217 131.769 1054.31 +-95.3571 135.171 1081.53 +-102.219 131.655 1053.39 +-114.636 135.264 1082.27 +-120.958 131.66 1053.43 +-133.435 134.774 1078.35 +-139.676 131.576 1052.76 +-123.085 108.613 869.032 +-130.471 108.267 866.264 +-137.85 107.938 863.632 +-160.327 118.818 950.682 +-568.993 400.193 3202.01 +-597.058 399.514 3196.57 +-154.174 98.3648 787.032 +-158.418 96.5657 772.637 +-165.581 96.609 772.983 +-118.198 66.1204 529.039 +-121.496 65.2649 522.194 +-126.177 65.1792 521.509 +-131.267 65.2928 522.418 +-137.208 65.7967 526.449 +-848.072 392.52 3140.62 +-875.66 391.588 3133.15 +-903.181 390.625 3125.45 +-930.633 389.632 3117.51 +-958.014 388.61 3109.33 +-166.802 65.6084 524.943 +-150.337 57.3814 459.117 +-148.499 55.0407 440.389 +-153.961 55.4525 443.684 +-1093.78 383.058 3064.91 +-1120.56 381.813 3054.94 +-1147.38 380.586 3045.13 +-434.629 140.418 1123.51 +-396.811 124.93 999.583 +-427.688 131.281 1050.4 +-427.572 128.017 1024.28 +-394.99 115.403 923.354 +-414.779 118.303 946.562 +-139.551 38.8716 311.017 +-139.171 37.8727 303.025 +-397.684 105.766 846.252 +-434.902 113.078 904.753 +-437.363 111.21 889.804 +-439.505 109.322 874.705 +-442.096 107.605 860.964 +-145.358 34.6294 277.075 +-145.301 33.8904 271.162 +-147.442 33.6773 269.458 +-151.261 33.8419 270.774 +-456.427 100.049 800.505 +-111.1 23.8647 190.945 +-111.405 23.4551 187.668 +-112.227 23.1635 185.335 +-113.434 22.9566 183.679 +-115.31 22.8855 183.11 +-116.54 22.6867 181.52 +-118.187 22.5701 180.587 +-120.046 22.493 179.97 +-121.96 22.4239 179.417 +-125.572 22.659 181.299 +-130.948 23.1927 185.568 +-494.875 86.0417 688.433 +-498.501 85.0915 680.83 +-501.198 84.0005 672.101 +-504.802 83.0785 664.723 +-507.829 82.0764 656.706 +-511.061 81.1231 649.078 +-513.948 80.1301 641.133 +-514.658 78.8191 630.644 +-533.542 80.2687 642.242 +-525.35 77.6456 621.255 +-528.651 76.7629 614.192 +-532.195 75.9258 607.494 +-162.872 22.8307 182.672 +-166.614 22.9485 183.614 +-543.783 73.5961 588.854 +-546.826 72.7235 581.872 +-550.821 71.9851 575.964 +-554.615 71.2256 569.887 +-557.643 70.375 563.081 +-561.16 69.5935 556.828 +-565.394 68.9053 551.322 +-568.494 68.084 544.751 +-572.828 67.415 539.397 +-572.504 66.2088 529.747 +-589.306 66.9691 535.83 +-584.112 65.2252 521.877 +-588.529 64.5741 516.667 +-591.994 63.8208 510.64 +-596.843 63.218 505.817 +-600.196 62.458 499.736 +-391.214 39.9945 320.002 +-386.708 38.836 310.733 +-385.826 38.0609 304.531 +-383.84 37.1914 297.574 +-621.592 59.1518 473.283 +-142.716 13.3373 106.714 +-142.363 13.0643 104.53 +-143.762 12.9535 103.643 +-142.714 12.6246 101.011 +-141.959 12.3274 98.6334 +-141.997 12.1031 96.8384 +-145.911 12.2055 97.6582 +-148.265 12.1703 97.3768 +-385.118 31.0164 248.167 +-382.394 30.2121 241.731 +-380.689 29.5013 236.045 +-383.006 29.1076 232.894 +-381.439 28.4237 227.423 +-382.65 27.9532 223.658 +-381.138 27.29 218.351 +-382.608 26.8459 214.798 +-380.634 26.1663 209.36 +-382.285 25.7415 205.962 +-381.875 25.1812 201.479 +-715.64 46.2012 369.663 +-736.951 46.5679 372.597 +-723.017 44.7061 357.7 +-402.57 24.3503 194.83 +-407.156 24.0846 192.705 +-405.482 23.449 187.619 +-402.931 22.7728 182.208 +-403.604 22.2854 178.309 +-405.157 21.8477 174.807 +-405.666 21.3551 170.866 +-403.181 20.7112 165.714 +-405.921 20.3392 162.737 +-406.592 19.8627 158.925 +-404.614 19.262 154.118 +-406.141 18.832 150.678 +-403.504 18.2135 145.729 +-406.561 17.8549 142.86 +-405.344 17.3092 138.494 +-406.641 16.8738 135.01 +-404.484 16.299 130.41 +-387.209 15.1409 121.144 +-381.852 14.4783 115.843 +-379.98 13.9587 111.686 +-381.333 13.5607 108.501 +-381.019 13.1044 104.85 +-381.348 12.6723 101.393 +-380.385 12.2001 97.6149 +-381.229 11.788 94.3173 +-380.877 11.3402 90.7346 +-380.589 10.8969 87.1876 +-380.072 10.4497 83.6094 +-382.064 10.0715 80.5834 +-380.211 9.59332 76.7576 +-379.497 9.14835 73.1973 +-381.011 8.75763 70.0711 +-380.234 8.3148 66.528 +-379.917 7.88455 63.0855 +-378.383 7.43235 59.4673 +-379.288 7.0299 56.2473 +-380.263 6.62779 53.0299 +-379.327 6.19333 49.5538 +-379.351 5.77653 46.2189 +-379.246 5.35874 42.8761 +-379.708 4.9494 39.6009 +-378.649 4.52163 36.1782 +-379.351 4.11599 32.9327 +-379.925 3.70821 29.67 +-379.473 3.29084 26.3305 +-378.792 2.87322 22.989 +-377.582 2.45408 19.6354 +-378.639 2.05021 16.4041 +-378.769 1.64036 13.1248 +-145.85 0.473649 3.78974 +-145.078 0.314054 2.51279 +-144.195 0.156059 1.24866 +96 0 0 +95.9963 0.11139 0.830309 +95.9854 0.222771 1.66055 +96.9668 0.337616 2.51661 +95.9415 0.445475 3.3206 +96.9077 0.56258 4.19351 +95.8684 0.668043 4.97964 +96.8191 0.787373 5.86913 +96.7637 0.899683 6.7063 +96.8007 1.01297 7.55074 +96.7305 1.12525 8.38768 +96.653 1.23744 9.22399 +96.4686 1.34816 10.0493 +96.6745 1.46456 10.9169 +96.3762 1.57343 11.7284 +96.2693 1.6852 12.5616 +96.155 1.79683 13.3937 +96.0334 1.90834 14.2249 +96.5959 2.03425 15.1635 +95.5711 2.1265 15.8511 +95.3294 2.235 16.6599 +96.064 2.36734 17.6463 +95.905 2.47871 18.4765 +96.6206 2.61376 19.4832 +95.565 2.70089 20.1326 +96.2628 2.83757 21.1514 +96.0729 2.94916 21.9833 +95.9729 3.06363 22.8365 +95.7682 3.17487 23.6657 +95.5562 3.28587 24.4931 +96.1096 3.42415 25.5238 +95.8812 3.53553 26.3541 +95.6455 3.64665 27.1824 +96.2655 3.79147 28.2619 +95.8217 3.89525 29.0355 +95.5624 4.00629 29.8632 +96.1518 4.154 30.9642 +95.8755 4.26541 31.7947 +96.3483 4.41113 32.8808 +96.1494 4.52719 33.746 +95.7547 4.63404 34.5424 +96.1962 4.78221 35.647 +95.8787 4.89365 36.4776 +96.5773 5.05831 37.705 +97.0761 5.21501 38.8731 +96.7302 5.32746 39.7112 +96.3769 5.43948 40.5463 +96.1079 5.55641 41.4179 +96.6531 5.72179 42.6506 +96.2739 5.83372 43.4849 +96.0686 5.95644 44.3997 +96.4864 6.1192 45.613 +95.9013 6.21927 46.3589 +96.2054 6.37778 47.5404 +96.5851 6.54349 48.7756 +96.0633 6.64917 49.5634 +96.4179 6.81656 50.8111 +95.9668 6.92817 51.643 +96.2956 7.09727 52.9036 +95.7391 7.20219 53.6856 +96.0422 7.37284 54.9577 +95.5547 7.484 55.7862 +95.7456 7.64938 57.019 +95.922 7.81576 58.2592 +96.0838 7.98313 59.5068 +95.5563 8.0943 60.3355 +95.6084 8.25556 61.5375 +95.8135 8.43224 62.8545 +95.2564 8.54309 63.6808 +95.3514 8.71354 64.9513 +95.4312 8.88486 66.2284 +95.5772 9.06474 67.5692 +95.6258 9.23782 68.8593 +95.659 9.41169 70.1554 +95.1175 9.53034 71.0398 +95.6784 9.76175 72.7647 +95.0341 9.8724 73.5895 +95.0869 10.0568 74.9639 +95.1227 10.242 76.3449 +95.6043 10.4789 78.1103 +95.0661 10.6065 79.0616 +95.583 10.8546 80.9107 +95.0179 10.9825 81.8644 +95.5667 11.2421 83.7996 +95.4941 11.4327 85.2198 +95.2562 11.6059 86.5113 +95.2954 11.8157 88.0754 +95.024 11.9899 89.3737 +95.0248 12.2013 90.9496 +94.6483 12.3671 92.1848 +95.2473 12.6644 94.4016 +95.1835 12.8788 95.9994 +94.8209 13.0557 97.3181 +94.5799 13.252 98.7815 +94.2522 13.439 100.176 +94.6502 13.7342 102.376 +94.2805 13.9225 103.779 +93.9595 14.121 105.259 +94.2101 14.4101 107.414 +94.2349 14.6706 109.355 +93.847 14.8709 110.849 +94.0124 15.164 113.033 +94.1463 15.4585 115.229 +93.6885 15.6609 116.737 +93.6421 15.9365 118.792 +93.5058 16.2028 120.777 +93.4619 16.4912 122.927 +93.9225 16.877 125.802 +92.2823 16.8885 125.888 +97.6742 18.2073 135.718 +115.69 21.9687 163.756 +115.264 22.2994 166.221 +115.138 22.6968 169.183 +115.576 23.2176 173.066 +115.518 23.6519 176.303 +115.466 24.099 179.636 +115.204 24.514 182.729 +114.95 24.9415 185.915 +114.905 25.4272 189.536 +115.363 26.0407 194.109 +114.95 26.473 197.331 +115.129 27.0567 201.682 +114.997 27.5847 205.618 +113.039 27.682 206.343 +110.795 27.7065 206.526 +108.557 27.7277 206.684 +105.916 27.6394 206.026 +103.786 27.678 206.314 +101.132 27.5703 205.511 +99.3189 27.6865 206.377 +96.7796 27.5958 205.701 +94.5915 27.5982 205.719 +92.3699 27.5855 205.624 +90.8749 27.7892 207.142 +91.3139 28.6034 213.212 +90.9639 29.1996 217.656 +90.8796 29.9082 222.938 +90.819 30.6557 228.51 +90.8104 31.4551 234.468 +90.5986 32.2194 240.165 +90.4301 33.0355 246.249 +89.9609 33.7784 251.786 +89.694 34.6357 258.177 +89.6703 35.6338 265.616 +89.3986 36.5838 272.698 +89.039 37.5484 279.889 +88.881 38.6548 288.136 +88.4992 39.7253 296.115 +88.7001 41.1302 306.587 +88.0283 42.2054 314.602 +88.0244 43.6801 325.594 +87.9585 45.2223 337.09 +87.2612 46.5355 346.878 +86.9817 48.1734 359.088 +86.7411 49.9567 372.381 +86.4027 51.8209 386.276 +85.8883 53.7271 400.485 +85.6485 55.9745 417.238 +85.0627 58.1861 433.723 +84.8853 60.8974 453.933 +84.2888 63.5601 473.782 +83.8442 66.6192 496.584 +83.5829 70.1679 523.036 +92.307 82.1237 612.156 +86.6909 82.0171 611.361 +81.6441 82.4573 614.643 +80.5313 87.2075 650.05 +79.6045 92.8991 692.476 +78.3859 99.1633 739.17 +77.2708 106.702 795.363 +76.3397 116.02 864.819 +72.9199 123.196 918.308 +71.9887 136.885 1020.35 +62.5259 135.928 1013.21 +55.2458 140.164 1044.79 +44.4918 135.494 1009.98 +36.7945 140.099 1044.3 +26.6429 135.284 1008.42 +18.3512 139.79 1042.01 +8.86529 135.073 1006.84 +6.43898e-14 139.825 1042.26 +-8.84783 134.807 1004.86 +-18.3198 139.551 1040.22 +-26.5042 134.579 1003.16 +-36.5817 139.288 1038.26 +-44.278 134.843 1005.13 +-54.8952 139.274 1038.16 +-61.9398 134.654 1003.72 +-73.0629 138.927 1035.57 +-79.6203 134.515 1002.69 +-91.2172 138.631 1033.36 +-97.3122 134.377 1001.66 +-109.295 138.265 1030.64 +-115.173 134.408 1001.88 +-127.634 138.214 1030.26 +-132.915 134.239 1000.63 +-123.335 116.686 869.784 +-130.723 116.302 866.92 +-138.319 116.119 865.56 +-150.391 119.495 890.723 +-568.993 429.063 3198.27 +-597.131 428.387 3193.22 +-154.288 105.539 786.696 +-157.959 103.232 769.5 +-165.186 103.331 770.238 +-118.328 70.9682 529.002 +-121.699 70.0897 522.454 +-126.387 69.9976 521.767 +-131.194 69.9643 521.519 +-137.308 70.5947 526.218 +-848.072 420.837 3136.95 +-875.66 419.837 3129.49 +-903.181 418.805 3121.8 +-930.633 417.74 3113.86 +-958.014 416.645 3105.7 +-167.162 70.4935 525.464 +-149.255 61.0782 455.281 +-148.975 59.2005 441.285 +-154.515 59.6666 444.759 +-1093.78 410.692 3061.32 +-1120.7 409.407 3051.75 +-1147.52 408.091 3041.94 +-434.736 150.585 1122.47 +-425.728 143.703 1071.17 +-394.611 129.865 968.023 +-413.375 132.695 989.114 +-427.772 133.997 998.822 +-425.465 130.105 969.815 +-1332.59 397.967 2966.47 +-429.539 125.323 934.169 +-138.661 39.5381 294.72 +-138.711 38.6676 288.231 +-437.144 119.172 888.319 +-440.04 117.352 874.747 +-441.506 115.214 858.81 +-145.636 37.1983 277.279 +-145.583 36.4057 271.371 +-148.396 36.3406 270.885 +-151.842 36.4229 271.499 +-111.042 26.0961 194.522 +-111.4 25.6554 191.237 +-111.405 25.1472 187.449 +-112.278 24.8459 185.203 +-113.487 24.624 183.549 +-115.363 24.5478 182.981 +-116.863 24.3906 181.809 +-118.296 24.2205 180.542 +-120.433 24.1933 180.338 +-122.463 24.1408 179.947 +-125.799 24.3374 181.413 +-491.612 93.3532 695.861 +-495.398 92.3463 688.355 +-498.324 91.1978 679.795 +-502.209 90.242 672.67 +-504.622 89.04 663.71 +-508.498 88.1135 656.804 +-511.245 87.0067 648.554 +-514.695 86.0355 641.315 +-514.847 84.5361 630.138 +-532.843 85.9464 640.651 +-525.35 83.247 620.529 +-529.82 82.4826 614.831 +-164.999 25.2377 188.124 +-162.607 24.4379 182.162 +-165.476 24.4361 182.148 +-544.255 78.974 588.677 +-547.645 78.0866 582.063 +-551.51 77.2745 576.01 +-554.824 76.3926 569.436 +-558.905 75.6226 563.696 +-561.726 74.6892 556.738 +-566.036 73.96 551.303 +-569.142 73.0787 544.734 +-573.191 72.324 539.108 +-573.381 71.094 529.939 +-584.292 71.1895 530.651 +-584.26 69.9482 521.399 +-589.503 69.347 516.917 +-592.145 68.4423 510.174 +-596.462 67.7353 504.904 +-600.196 66.9637 499.152 +-605.494 66.3663 494.699 +-390.516 42.0475 313.425 +-388.956 41.1377 306.643 +-386.362 40.1363 299.179 +-140.344 14.3189 106.734 +-142.876 14.3155 106.709 +-142.443 14.0148 104.467 +-143.762 13.8879 103.522 +-142.796 13.543 100.951 +-141.795 13.2015 98.4045 +-142.574 13.0289 97.1183 +-147.071 13.1901 98.32 +-148.015 13.0263 97.0989 +-661.124 57.0865 425.527 +-381.382 32.3058 240.81 +-380.18 31.5873 235.454 +-382.921 31.2005 232.57 +-383.84 30.666 228.586 +-384.2 30.0912 224.302 +-382.264 29.3451 218.74 +-380.781 28.645 213.522 +-382.121 28.1635 209.932 +-382.813 27.6365 206.004 +-382.669 27.054 201.662 +-716.705 49.6078 369.78 +-738.288 50.0179 372.837 +-723.107 47.9372 357.327 +-403.469 26.1653 195.038 +-404.268 25.6389 191.114 +-405.845 25.1631 187.568 +-406.662 24.6416 183.68 +-405.797 24.0228 179.068 +-404.423 23.3814 174.287 +-405.482 22.8853 170.589 +-406.045 22.363 166.696 +-403.789 21.6918 161.692 +-405.011 21.2128 158.121 +-404.707 20.6563 153.974 +-405.204 20.144 150.155 +-405.289 19.6139 146.203 +-407.033 19.1651 142.858 +-406.195 18.5968 138.622 +-406.546 18.0869 134.821 +-406.957 17.5815 131.054 +-384.062 16.1011 120.019 +-381.757 15.5189 115.679 +-378.926 14.9243 111.246 +-379.891 14.484 107.965 +-381.309 14.0604 104.807 +-381.734 13.6002 101.377 +-380.772 13.0935 97.6001 +-380.356 12.6094 93.9914 +-380.002 12.1303 90.4204 +-381.076 11.6979 87.1972 +-380.951 11.2294 83.7048 +-380.793 10.7621 80.2213 +-380.603 10.296 76.747 +-379.497 9.80831 73.1118 +-380.323 9.37244 69.8628 +-379.84 8.90539 66.3814 +-381.002 8.47749 63.1918 +-380.062 8.00389 59.6615 +-378.892 7.52918 56.123 +-379.768 7.09666 52.899 +-380.219 6.65574 49.6123 +-377.962 6.17056 45.9957 +-379.246 5.74532 42.826 +-379.708 5.30645 39.5546 +-379.545 4.85929 36.2215 +-380.347 4.42452 32.9806 +-380.224 3.97885 29.6586 +-379.074 3.52454 26.2721 +-377.894 3.07319 22.9078 +-379.379 2.64364 19.7059 +-376.841 2.18768 16.3071 +-379.769 1.76334 13.144 +-144.55 0.503293 3.75158 +-142.378 0.330444 2.46315 +-145.194 0.168477 1.25584 +96 0 0 +95.8963 0.118752 0.828407 +95.9854 0.237743 1.65848 +95.9671 0.356592 2.48756 +95.9415 0.475413 3.31645 +95.9086 0.594199 4.14509 +96.8671 0.720366 5.02522 +96.8191 0.840288 5.86179 +96.8635 0.961135 6.70481 +96.701 1.07993 7.53352 +96.7305 1.20087 8.37719 +96.5534 1.31925 9.20296 +96.5681 1.44024 10.047 +96.4758 1.55976 10.8808 +96.5747 1.68263 11.7379 +96.2693 1.79845 12.5459 +96.155 1.91759 13.377 +95.9345 2.03448 14.1924 +96.5959 2.17096 15.1445 +96.4587 2.2905 15.9784 +96.2157 2.40738 16.7937 +96.064 2.52644 17.6242 +95.905 2.64529 18.4534 +95.7386 2.76395 19.2811 +95.3694 2.8765 20.0663 +96.2628 3.02826 21.125 +95.878 3.14097 21.9112 +95.8757 3.2662 22.7848 +95.7682 3.38823 23.6361 +95.5562 3.50669 24.4624 +96.3028 3.66162 25.5432 +95.8812 3.77314 26.3211 +95.7417 3.89564 27.1757 +96.0737 4.03822 28.1703 +95.8217 4.15703 28.9992 +95.7532 4.28407 29.8854 +96.1518 4.43317 30.9255 +95.8755 4.55207 31.7549 +96.4429 4.7122 32.872 +96.0552 4.8267 33.6707 +95.7547 4.94547 34.4992 +96.1962 5.1036 35.6024 +96.8123 5.27338 36.7868 +96.5773 5.39826 37.6578 +97.0761 5.56548 38.8244 +96.7302 5.68549 39.6616 +96.3769 5.80504 40.4955 +96.1079 5.92983 41.366 +95.8309 6.05439 42.235 +96.4559 6.23755 43.5127 +95.8874 6.34475 44.2606 +96.3058 6.51823 45.4707 +96.8001 6.69945 46.7349 +96.2054 6.8064 47.4809 +95.6941 6.91882 48.2652 +96.152 7.10257 49.547 +96.5062 7.28132 50.794 +95.9668 7.39378 51.5784 +96.2082 7.56738 52.7895 +95.7391 7.68622 53.6185 +96.0422 7.86833 54.8889 +95.4685 7.97976 55.6663 +95.6599 8.15613 56.8966 +96.0073 8.34842 58.238 +95.9142 8.50459 59.3274 +95.3876 8.62304 60.1537 +95.6084 8.81037 61.4605 +95.063 8.92843 62.2841 +95.2564 9.11723 63.6011 +95.269 9.2911 64.814 +95.4312 9.48197 66.1455 +95.5772 9.67393 67.4846 +95.6258 9.85864 68.7732 +95.659 10.0442 70.0676 +95.8363 10.2477 71.487 +95.2024 10.366 72.3122 +95.8221 10.6232 74.1069 +95.8695 10.821 75.4864 +95.1227 10.9304 76.2494 +95.6043 11.1831 78.0126 +95.0661 11.3193 78.9627 +95.7351 11.6025 80.9381 +95.5462 11.7858 82.2167 +95.5667 11.9976 83.6947 +94.8253 12.1155 84.5171 +94.5927 12.2996 85.8011 +95.2954 12.6098 87.9652 +95.1691 12.8152 89.3982 +95.0248 13.0213 90.8358 +94.8623 13.228 92.2776 +94.6816 13.4353 93.7235 +94.5527 13.6532 95.2439 +94.9598 13.9535 97.3388 +94.5799 14.1426 98.6579 +95.0024 14.4564 100.847 +94.6502 14.6572 102.248 +94.2805 14.8582 103.649 +94.4896 15.155 105.72 +94.7349 15.4642 107.877 +94.17 15.6457 109.143 +93.9113 15.8813 110.786 +93.9488 16.1721 112.816 +94.0205 16.4754 114.931 +94.1865 16.8022 117.211 +93.6421 17.0075 118.643 +93.5058 17.2917 120.626 +93.5822 17.6222 122.931 +93.8036 17.9883 125.485 +92.2823 18.0235 125.731 +95.9321 19.0844 133.131 +115.69 23.4451 163.551 +115.717 23.8915 166.665 +115.25 24.2457 169.136 +115.576 24.7779 172.849 +115.518 25.2414 176.082 +115.358 25.6946 179.244 +115.257 26.1734 182.584 +114.897 26.6056 185.599 +114.75 27.0995 189.045 +114.957 27.693 193.184 +115 28.2644 197.17 +114.981 28.838 201.172 +115.142 29.4757 205.62 +113.468 29.6546 206.868 +111.218 29.6811 207.053 +108.557 29.5912 206.426 +106.325 29.6107 206.562 +103.696 29.5127 205.878 +101.571 29.5507 206.144 +99.3189 29.5472 206.119 +96.7796 29.4504 205.444 +94.5915 29.453 205.462 +92.6546 29.5301 206 +90.6755 29.5916 206.429 +91.3139 30.5257 212.945 +91.0787 31.2013 217.658 +90.8796 31.9182 222.659 +90.8557 32.7293 228.317 +90.7746 33.5558 234.083 +90.6337 34.398 239.958 +90.3275 35.2156 245.662 +89.9276 36.0351 251.378 +89.7266 36.9769 257.948 +89.5434 37.9747 264.909 +89.3368 39.0153 272.168 +88.9788 40.0448 279.349 +88.9102 41.2661 287.869 +88.6412 42.4632 296.22 +88.5623 43.8261 305.728 +88.1887 45.1238 314.78 +88.102 46.6567 325.474 +87.7332 48.1379 335.806 +87.2854 49.6766 346.541 +87.2152 51.5488 359.601 +86.7186 53.3003 371.819 +86.4027 55.3035 385.793 +85.9715 57.3933 400.371 +85.4092 59.5694 415.552 +85.139 62.1523 433.57 +84.7577 64.8924 452.684 +84.3062 67.8456 473.286 +83.9267 71.1663 496.451 +83.5516 74.8554 522.186 +92.44 87.7693 612.272 +86.8162 87.6555 611.478 +81.8138 88.1818 615.15 +80.5556 93.0965 649.434 +79.6045 99.1424 691.61 +78.3754 105.813 738.147 +77.1846 113.746 793.482 +75.9475 123.181 859.3 +74.3635 134.078 935.317 +70.0774 142.205 992.009 +59.6139 138.307 964.816 +51.9539 140.671 981.309 +42.398 137.795 961.249 +34.6203 140.679 981.364 +25.4152 137.723 960.746 +17.2866 140.53 980.328 +8.45863 137.538 959.455 +6.06609e-14 140.58 980.675 +-8.44729 137.354 958.168 +-17.2447 140.19 977.953 +-25.321 137.212 957.184 +-34.4842 140.126 977.506 +-42.2105 137.186 956.996 +-51.6556 139.863 975.673 +-59.0523 137.003 955.726 +-68.9333 139.884 975.818 +-75.9955 137.02 955.843 +-86.1622 139.748 974.872 +-92.8266 136.797 954.286 +-103.337 139.513 973.235 +-109.796 136.744 953.914 +-120.638 139.419 972.579 +-126.741 136.606 952.952 +-124.059 125.258 873.793 +-130.915 124.3 867.107 +-138.554 124.133 865.944 +-147.074 124.713 869.986 +-568.924 457.843 3193.88 +-597.131 457.176 3189.23 +-154.975 113.133 789.21 +-156.005 108.807 759.032 +-159.427 106.431 742.454 +-118.414 75.7931 528.727 +-121.946 74.9522 522.861 +-126.621 74.8397 522.076 +-131.654 74.9279 522.692 +-137.434 75.4077 526.039 +-848.072 449.119 3133.02 +-875.66 448.052 3125.58 +-903.181 446.951 3117.9 +-930.633 445.814 3109.97 +-958.014 444.645 3101.81 +-167.313 75.2987 525.278 +-148.421 64.8186 452.17 +-149.165 63.2598 441.296 +-154.775 63.7838 444.952 +-1093.78 438.292 3057.5 +-1120.7 436.921 3047.93 +-1147.38 435.464 3037.77 +-1174.12 434.027 3027.74 +-1200.77 432.557 3017.48 +-428.25 150.408 1049.23 +-428.146 146.673 1023.18 +-414.058 138.417 965.588 +-415.337 135.544 945.544 +-428.66 136.619 953.044 +-431.654 134.404 937.595 +-432.846 131.717 918.847 +-435.677 129.613 904.173 +-138.744 40.3659 281.589 +-137.964 39.2656 273.914 +-442.278 123.172 859.236 +-144.481 39.3837 274.738 +-145.959 38.9526 271.73 +-149.064 38.9574 271.764 +-151.891 38.883 271.245 +-114.193 28.6403 199.793 +-111 27.2813 190.313 +-111.405 26.8372 187.214 +-112.278 26.5156 184.971 +-113.957 26.3878 184.079 +-115.363 26.1975 182.752 +-117.078 26.0776 181.915 +-118.513 25.896 180.648 +-120.433 25.8192 180.113 +-122.855 25.8456 180.297 +-126.479 26.1133 182.165 +-491.899 99.6851 695.396 +-495.92 98.6564 688.22 +-499.03 97.4644 679.905 +-502.387 96.341 672.068 +-505.645 95.2166 664.224 +-508.681 94.0689 656.218 +-512.107 93.0105 648.834 +-515.629 91.9841 641.675 +-515.665 90.3606 630.349 +-532.079 91.591 638.933 +-525.8 88.9177 620.283 +-529.82 88.0258 614.062 +-163.884 26.7518 186.618 +-163.601 26.2396 183.046 +-163.669 25.7935 179.934 +-167.276 25.9038 180.703 +-547.849 83.3654 581.551 +-552.336 82.5912 576.15 +-555.24 81.5877 569.15 +-559.115 80.7352 563.203 +-562.574 79.829 556.881 +-566.82 79.0399 551.377 +-569.429 78.0294 544.328 +-2376.54 320.02 2232.44 +-576.16 76.2395 531.841 +-582.67 75.7629 528.516 +-584.929 74.7347 521.344 +-589.878 74.0545 516.599 +-592.824 73.1257 510.119 +-597.299 72.3888 504.979 +-601.268 71.5917 499.419 +-605.417 70.8174 494.017 +-609.593 70.0471 488.644 +-386.53 43.6284 304.349 +-386.362 42.8337 298.805 +-141.534 15.4107 107.504 +-143.036 15.2946 106.694 +-142.283 14.9398 104.219 +-143.843 14.8296 103.45 +-142.47 14.4203 100.595 +-142.205 14.1293 98.5653 +-142.327 13.8804 96.8286 +-146.657 14.0369 97.9202 +-657.686 61.7707 430.908 +-383.272 35.3188 246.381 +-381.635 34.4998 240.668 +-382.554 33.9207 236.628 +-384.2 33.4085 233.056 +-382.725 32.6319 227.638 +-382.219 31.9478 222.866 +-382.61 31.3456 218.665 +-381.825 30.654 213.84 +-382.471 30.0837 209.862 +-382.198 29.4464 205.416 +-380.374 28.6989 200.201 +-717.592 53.0073 369.775 +-738.288 53.3793 372.37 +-723.733 51.203 357.189 +-406.704 28.1476 196.356 +-412.301 27.9055 194.667 +-403.851 26.7224 186.413 +-405.115 26.1976 182.753 +-406.254 25.6662 179.046 +-404.882 24.9811 174.267 +-405.943 24.451 170.568 +-406.969 23.9203 166.866 +-403.14 23.1125 161.231 +-405.662 22.6748 158.178 +-403.4 21.9733 153.284 +-406.422 21.5623 150.417 +-403.598 20.8448 145.412 +-405.901 20.3962 142.283 +-405.06 19.7912 138.062 +-404.555 19.2078 133.992 +-405.816 18.7106 130.524 +-385.397 17.2429 120.285 +-381.852 16.5659 115.563 +-379.788 15.9634 111.36 +-380.371 15.477 107.966 +-381.309 15.0053 104.676 +-381.541 14.507 101.2 +-380.676 13.9699 97.4532 +-380.938 13.4774 94.0174 +-380.683 12.9688 90.4691 +-381.076 12.4841 87.0882 +-380.267 11.9626 83.4501 +-381.673 11.5119 80.3062 +-380.603 10.9879 76.6509 +-381.46 10.5216 73.3981 +-380.52 10.0075 69.8115 +-380.727 9.52606 66.4531 +-379.523 9.01208 62.8676 +-378.383 8.50404 59.3236 +-381.167 8.08341 56.3893 +-379.372 7.56569 52.7777 +-380.715 7.1123 49.6149 +-378.458 6.5939 45.9986 +-378.849 6.12501 42.7276 +-379.211 5.65565 39.4534 +-378.151 5.16682 36.0434 +-380.746 4.7268 32.9738 +-380.224 4.24624 29.6215 +-379.473 3.76536 26.2669 +-378.293 3.28319 22.9033 +-379.279 2.82057 19.6761 +-377.74 2.34028 16.3256 +-377.87 1.87244 13.062 +-145.85 0.541946 3.78057 +-144.978 0.359091 2.50499 +-145.394 0.180048 1.256 +96 0 0 +95.8963 0.126221 0.827302 +95.8854 0.252432 1.65454 +96.8668 0.382572 2.50753 +95.9415 0.505313 3.31202 +96.9077 0.638148 4.18268 +95.8684 0.757776 4.96678 +96.8191 0.893135 5.85397 +96.7637 1.02053 6.68898 +95.8038 1.1372 7.45367 +96.7305 1.27639 8.36601 +96.5534 1.40221 9.19069 +96.5681 1.53082 10.0336 +96.4758 1.65786 10.8663 +96.5747 1.78845 11.7223 +96.2693 1.91156 12.5291 +96.155 2.03819 13.3591 +95.9345 2.16244 14.1735 +95.8058 2.28862 15.0005 +96.5574 2.43704 15.9734 +96.2157 2.55879 16.7713 +96.064 2.68533 17.6007 +95.7087 2.80591 18.3911 +95.7386 2.93778 19.2554 +95.565 3.06368 20.0806 +95.4817 3.19261 20.9257 +96.1703 3.3487 21.9487 +95.8757 3.47162 22.7544 +95.6712 3.59768 23.5806 +95.4594 3.72346 24.4051 +96.2062 3.888 25.4835 +95.8812 4.01044 26.286 +95.7417 4.14064 27.1395 +96.0737 4.29219 28.1328 +96.013 4.4273 29.0183 +95.5624 4.54443 29.786 +96.0567 4.70732 30.8537 +95.8755 4.83835 31.7125 +96.4429 5.00856 32.8281 +96.1494 5.13529 33.6588 +95.8486 5.26165 34.487 +96.1962 5.42457 35.5549 +95.8787 5.55098 36.3834 +96.4843 5.73224 37.5714 +96.2417 5.86466 38.4394 +96.7302 6.04306 39.6087 +96.4689 6.17602 40.4802 +96.9332 6.35689 41.6657 +96.6531 6.49036 42.5404 +96.2739 6.61732 43.3726 +96.8843 6.8139 44.6611 +96.2156 6.92168 45.3675 +96.0811 7.06789 46.3258 +96.2054 7.23446 47.4176 +96.496 7.41558 48.6048 +96.152 7.54926 49.4809 +96.3296 7.72509 50.6334 +95.9668 7.85878 51.5096 +96.2956 8.0506 52.7669 +95.7391 8.16961 53.547 +96.0422 8.36318 54.8157 +95.5547 8.48927 55.6421 +95.7456 8.67686 56.8717 +96.0073 8.87346 58.1603 +95.4054 8.9915 58.9339 +96.1466 9.23829 60.5515 +94.8536 9.29055 60.8941 +95.7301 9.55656 62.6376 +95.9196 9.75809 63.9585 +95.269 9.87543 64.7276 +95.4312 10.0783 66.0573 +95.5772 10.2823 67.3946 +95.6258 10.4787 68.6814 +95.7394 10.6849 70.033 +95.7564 10.8831 71.3322 +95.0437 10.9995 72.0953 +95.7433 11.2821 73.9472 +95.0869 11.4076 74.7703 +95.7444 11.6937 76.6454 +95.0641 11.8193 77.4684 +95.0661 12.0312 78.8574 +95.7351 12.3322 80.8302 +95.0179 12.4577 81.6529 +95.5667 12.7522 83.5831 +95.4941 12.9683 84.9997 +95.4037 13.1852 86.4214 +95.2954 13.4029 87.8478 +95.1691 13.6212 89.279 +94.8809 13.8193 90.5773 +94.7197 14.0388 92.016 +94.6816 14.2802 93.5985 +95.1835 14.6087 95.7514 +94.9598 14.8311 97.2089 +94.5799 15.0321 98.5263 +94.2522 15.2442 99.9168 +94.6502 15.579 102.111 +94.2136 15.7814 103.438 +94.5559 16.1194 105.653 +94.1445 16.3344 107.062 +94.17 16.6297 108.998 +93.7827 16.857 110.487 +93.8851 17.1776 112.589 +93.517 17.4177 114.163 +93.6262 17.7526 116.358 +93.6421 18.0771 118.485 +93.6884 18.4151 120.7 +94.0035 18.8148 123.32 +93.982 19.156 125.556 +92.9288 19.2913 126.443 +95.1772 20.125 131.908 +115.69 24.9196 163.333 +115.207 25.2821 165.709 +115.306 25.783 168.992 +115.631 26.3488 172.701 +115.463 26.8162 175.764 +115.304 27.2979 178.922 +115.151 27.794 182.173 +114.897 28.2789 185.351 +114.699 28.7909 188.707 +115.516 29.5776 193.864 +115 30.042 196.907 +114.981 30.6516 200.903 +115.094 31.3163 205.26 +113.468 31.5196 206.592 +111.218 31.5478 206.777 +108.973 31.5727 206.94 +106.279 31.4596 206.199 +104.098 31.4902 206.4 +101.571 31.4092 205.869 +99.3189 31.4054 205.844 +97.1177 31.4121 205.888 +94.9233 31.4151 205.907 +92.736 31.4148 205.905 +90.5958 31.425 205.973 +91.0794 32.3623 212.115 +91.1935 33.2054 217.642 +90.8796 33.9256 222.362 +90.8923 34.8017 228.104 +90.7746 35.6662 233.771 +90.6337 36.5613 239.638 +90.0197 37.3028 244.498 +89.9609 38.3156 251.136 +89.7266 39.3024 257.604 +89.6386 40.4058 264.836 +89.4295 41.5121 272.087 +89.0991 42.6207 279.353 +88.8518 43.8326 287.296 +88.4992 45.0613 295.35 +88.3693 46.4809 304.655 +88.2154 47.9761 314.455 +88.0761 49.5765 324.945 +87.7081 51.1507 335.262 +87.479 52.9179 346.845 +87.0051 54.6588 358.256 +86.6736 56.623 371.13 +86.5109 58.8554 385.762 +85.9715 61.0028 399.837 +85.6086 63.4636 415.967 +85.0436 65.9871 432.506 +84.7577 68.9735 452.081 +84.1499 71.9789 471.779 +83.9432 75.657 495.887 +83.5516 79.5632 521.489 +92.5878 93.4384 612.433 +87.0667 93.4372 612.425 +81.7094 93.6079 613.544 +80.3485 98.697 646.9 +79.6045 105.378 690.688 +78.3963 112.498 737.358 +77.1846 120.899 792.423 +75.076 129.425 848.306 +73.9477 141.713 928.847 +67.322 145.205 951.736 +57.7885 142.503 934.026 +50.1221 144.246 945.448 +41.1898 142.287 932.609 +33.3255 143.934 943.401 +24.6822 142.163 931.795 +16.6548 143.909 943.24 +8.22214 142.101 931.386 +5.84688e-14 144.022 943.977 +-8.21952 142.056 931.09 +-16.6287 143.683 941.757 +-24.6142 141.771 929.225 +-33.2522 143.617 941.327 +-41.0022 141.639 928.362 +-49.8343 143.418 940.017 +-57.3917 141.525 927.613 +-66.5128 143.46 940.296 +-73.8222 141.473 927.27 +-83.0681 143.203 938.612 +-90.21 141.302 926.15 +-99.6574 143.008 937.33 +-106.694 141.238 925.729 +-116.446 143.038 937.529 +-123.269 141.219 925.61 +-128.192 137.572 901.702 +-131.181 132.386 867.711 +-138.836 132.208 866.546 +-147.107 132.586 869.02 +-160.659 137.422 900.721 +-597.058 485.87 3184.59 +-151.731 117.732 771.661 +-153.473 113.773 745.717 +-156.162 110.808 726.283 +-118.414 80.5598 528.022 +-122.351 79.9306 523.898 +-126.784 79.6491 522.053 +-131.896 79.7865 522.954 +-820.32 478.404 3135.66 +-848.072 477.365 3128.84 +-875.66 476.231 3121.41 +-903.181 475.06 3113.74 +-930.633 473.852 3105.82 +-958.014 472.609 3097.67 +-167.674 80.207 525.71 +-147.834 68.6226 449.78 +-149.006 67.1668 440.239 +-155.329 68.0377 445.947 +-1093.78 465.857 3053.42 +-1120.7 464.4 3043.87 +-1147.38 462.851 3033.71 +-459.571 180.569 1183.52 +-1200.91 459.817 3013.82 +-1227.32 458.162 3002.98 +-425.927 155.089 1016.52 +-426.835 151.662 994.057 +-415.098 143.985 943.739 +-394.86 133.761 876.725 +-395.451 130.876 857.813 +-433.987 140.37 920.041 +-436.452 138.01 904.574 +-438.503 135.6 888.779 +-138.054 41.7621 273.726 +-141.509 41.8878 274.55 +-145.682 42.2083 276.651 +-146.146 41.4557 271.718 +-148.874 41.3545 271.054 +-152.182 41.4076 271.402 +-113.257 30.1922 197.892 +-111.45 29.1146 190.829 +-111.303 28.4989 186.793 +-112.587 28.2609 185.234 +-113.905 28.0345 183.75 +-115.204 27.8068 182.257 +-116.755 27.6413 181.173 +-118.568 27.5373 180.49 +-120.488 27.4555 179.955 +-123.022 27.5085 180.302 +-126.705 27.8054 182.248 +-492.702 106.127 695.603 +-495.63 104.8 686.899 +-499.03 103.594 678.998 +-502.863 102.497 671.807 +-506.006 101.277 663.812 +-508.864 100.021 655.578 +-512.292 98.8958 648.203 +-516.065 97.8518 641.36 +-515.917 96.0904 629.816 +-530.235 97.0138 635.868 +-526.379 94.6139 620.138 +-530.079 93.6077 613.543 +-164.999 28.6277 187.638 +-164.992 28.1271 184.357 +-164.807 27.6063 180.943 +-170.249 28.0222 183.669 +-548.327 88.6856 581.282 +-552.749 87.8512 575.813 +-556.074 86.8492 569.245 +-558.905 85.7804 562.24 +-563.211 84.9456 556.768 +-567.034 84.0425 550.849 +-570.293 83.0624 544.425 +-2376.83 340.188 2229.73 +-580.402 81.631 535.043 +-580.975 80.2933 526.275 +-585.598 79.5256 521.243 +-589.878 78.7119 515.91 +-594.032 77.883 510.477 +-598.211 77.059 505.076 +-601.268 76.0942 498.753 +-606.343 75.3863 494.112 +-388.962 47.5057 311.372 +-387.939 46.5414 305.051 +-386.046 45.4904 298.163 +-141.217 16.3433 107.12 +-143.115 16.2656 106.611 +-142.363 15.8882 104.138 +-144.005 15.7801 103.429 +-141.656 15.2395 99.8861 +-142.041 15.0007 98.3205 +-142.821 14.8046 97.0353 +-147.817 15.0378 98.5636 +-657.686 65.6556 430.333 +-383.692 37.5811 246.322 +-380.454 36.5561 239.603 +-382.809 36.078 236.47 +-383.006 35.3993 232.021 +-382.211 34.6374 227.028 +-382.994 34.026 223.02 +-381.831 33.2491 217.928 +-381.825 32.5819 213.555 +-381.072 31.8588 208.816 +-380.704 31.176 204.34 +-383.552 30.7587 201.605 +-717.592 56.341 369.282 +-738.912 56.7843 372.187 +-724.897 54.5107 357.286 +-408.322 30.0369 196.874 +-407.698 29.3295 192.237 +-406.298 28.5751 187.293 +-406.753 27.9579 183.248 +-406.162 27.2742 178.766 +-406.9 26.6845 174.901 +-406.219 26.0065 170.458 +-404.013 25.2399 165.433 +-404.252 24.6338 161.46 +-408.639 24.2777 159.126 +-405.547 23.4795 153.894 +-407.359 22.9712 150.563 +-406.135 22.2949 146.13 +-406.278 21.6992 142.225 +-406.951 21.1342 138.522 +-404.934 20.435 133.939 +-407.052 19.9478 130.746 +-385.874 18.3501 120.274 +-381.279 17.5814 115.236 +-378.926 16.9289 110.959 +-380.083 16.4378 107.74 +-380.441 15.9128 104.299 +-379.802 15.349 100.604 +-381.353 14.875 97.4965 +-380.938 14.325 93.892 +-380.294 13.7703 90.2561 +-380.784 13.2591 86.9053 +-380.853 12.7345 83.4672 +-379.913 12.1795 79.8291 +-379.721 11.6519 76.3714 +-380.381 11.1517 73.0927 +-381.601 10.6671 69.9165 +-378.954 10.078 66.0554 +-381.002 9.61621 63.0286 +-379.272 9.06011 59.3836 +-378.892 8.54052 55.978 +-381.055 8.07719 52.9412 +-378.435 7.51431 49.2519 +-378.855 7.01595 45.9854 +-378.849 6.51022 42.6706 +-379.609 6.01764 39.4421 +-377.753 5.48599 35.9574 +-379.849 5.01225 32.8523 +-377.732 4.48372 29.3881 +-378.576 3.9927 26.1698 +-377.894 3.48599 22.8486 +-378.481 2.99164 19.6084 +-378.639 2.49337 16.3426 +-377.87 1.9902 13.0446 +-143.151 0.565369 3.70566 +-145.078 0.381937 2.50337 +-145.494 0.191502 1.25519 +96 0 0 +95.9963 0.133818 0.82699 +95.9854 0.267626 1.65392 +95.9671 0.401414 2.48072 +95.9415 0.535171 3.30733 +95.9086 0.668887 4.13369 +96.8671 0.810913 5.01141 +96.8191 0.945909 5.84567 +96.7637 1.08083 6.6795 +96.701 1.21567 7.51281 +96.7305 1.35182 8.35416 +96.653 1.4866 9.18712 +96.4686 1.61961 10.0091 +96.4758 1.75582 10.8509 +96.3762 1.89023 11.6816 +96.2693 2.02451 12.5114 +96.155 2.15862 13.3402 +95.9345 2.29021 14.1534 +95.8058 2.42385 14.9793 +95.5711 2.55467 15.7877 +96.2157 2.70998 16.7476 +95.8674 2.83819 17.5399 +95.905 2.97779 18.4026 +95.7386 3.11137 19.2281 +95.6628 3.24804 20.0727 +95.3841 3.3778 20.8747 +96.0729 3.54297 21.8954 +95.8757 3.67675 22.7221 +95.7682 3.81412 23.5711 +96.3307 3.97947 24.5929 +96.2062 4.11773 25.4474 +95.8812 4.24741 26.2488 +95.7417 4.38531 27.101 +96.0737 4.54581 28.0929 +96.013 4.6889 28.9772 +95.5624 4.81295 29.7438 +96.1518 4.9904 30.8405 +95.8755 5.12424 31.6676 +96.4429 5.30451 32.7816 +96.0552 5.4334 33.5781 +96.6004 5.61626 34.7082 +96.1962 5.7451 35.5045 +96.9056 5.94195 36.721 +96.5773 6.0768 37.5543 +96.2417 6.2112 38.3849 +95.8987 6.3451 39.2125 +96.3769 6.53471 40.3842 +96.1996 6.68156 41.2917 +96.6531 6.87386 42.4802 +96.4559 7.02159 43.3931 +96.703 7.20303 44.5144 +96.3058 7.33754 45.3457 +96.6204 7.52753 46.5198 +96.2054 7.66193 47.3504 +96.496 7.85376 48.5359 +96.0633 7.98797 49.3653 +96.3296 8.18155 50.5616 +95.9668 8.32314 51.4367 +96.2956 8.5263 52.6921 +95.7391 8.65234 53.4711 +96.0422 8.85735 54.738 +96.244 9.05574 55.9641 +95.7456 9.18957 56.7911 +96.0073 9.39778 58.0779 +95.9142 9.57359 59.1643 +95.3876 9.70692 59.9883 +95.7762 9.93521 61.3992 +95.7301 10.1212 62.5488 +95.2564 10.2632 63.4263 +95.269 10.459 64.6359 +95.4312 10.6738 65.9637 +95.5772 10.8899 67.2991 +95.5449 11.0884 68.5261 +95.7394 11.3162 69.9338 +95.0376 11.4396 70.6964 +95.1231 11.6592 72.0533 +95.1129 11.87 73.3561 +95.7912 12.1712 75.2174 +94.5009 12.2238 75.5428 +95.0641 12.5177 77.3586 +95.7556 12.8345 79.3168 +95.7351 13.0609 80.7156 +95.6972 13.2881 82.1201 +95.417 13.4845 83.3339 +95.4941 13.7346 84.8793 +94.7401 13.8672 85.6986 +95.2954 14.1948 87.7234 +95.1691 14.4261 89.1525 +95.0248 14.6581 90.5861 +94.7197 14.8683 91.8856 +94.5402 15.1015 93.3263 +94.4125 15.3466 94.8412 +94.9598 15.7074 97.0712 +94.5799 15.9203 98.3867 +94.3204 16.1566 99.8473 +94.6502 16.4996 101.967 +94.3474 16.7376 103.438 +94.5559 17.0719 105.504 +94.2101 17.3115 106.984 +94.17 17.6123 108.843 +94.3612 17.9631 111.011 +93.9488 18.2049 112.506 +94.1463 18.571 114.768 +93.6262 18.8015 116.193 +93.3958 19.095 118.006 +93.7493 19.5159 120.607 +93.4619 19.8117 122.435 +93.6251 20.2109 124.902 +92.3998 20.3147 125.544 +94.4223 21.145 130.675 +115.346 26.3134 162.616 +115.094 26.7497 165.312 +115.697 27.3992 169.326 +115.631 27.9057 172.456 +115.355 28.3739 175.349 +115.251 28.8973 178.584 +115.575 29.5446 182.584 +115.263 30.045 185.677 +115.266 30.6428 189.371 +115.516 31.3253 193.589 +115 31.8171 196.628 +114.882 32.435 200.447 +115.045 33.1527 204.882 +113.755 33.4662 206.82 +111.171 33.3979 206.397 +108.926 33.4241 206.559 +106.279 33.3185 205.907 +104.098 33.3509 206.107 +101.965 33.3942 206.375 +99.7494 33.4054 206.444 +97.1177 33.2682 205.596 +94.9233 33.2714 205.616 +92.6546 33.242 205.434 +90.6357 33.2966 205.771 +91.1185 34.2892 211.906 +91.1552 35.1527 217.242 +90.8796 35.9302 222.047 +90.5625 36.7242 226.954 +90.8104 37.7885 233.531 +90.6337 38.7217 239.298 +90.3959 39.6721 245.172 +90.0277 40.6096 250.966 +89.6289 41.5794 256.959 +89.4482 42.7025 263.899 +89.3677 43.9347 271.514 +89.0691 45.1239 278.864 +88.764 46.3767 286.606 +88.6696 47.8159 295.5 +88.452 49.2735 304.508 +88.1352 50.7648 313.724 +88.102 52.5213 324.579 +87.7332 54.1886 334.883 +87.4548 56.0292 346.258 +86.9817 57.8731 357.653 +86.7861 60.0466 371.085 +86.3161 62.1926 384.348 +85.9715 64.6074 399.271 +85.6086 67.2136 415.377 +85.1008 69.9333 432.184 +83.5185 71.9811 444.84 +83.4206 75.5713 467.027 +83.8442 80.0329 494.6 +83.5516 84.2645 520.75 +92.5878 98.9595 611.565 +87.2059 99.1164 612.535 +81.8399 99.2975 613.654 +80.385 104.576 646.277 +79.6951 111.731 690.494 +78.3859 119.13 736.216 +77.2517 128.154 791.987 +74.1695 135.418 836.877 +73.0376 148.24 916.114 +65.6548 149.977 926.851 +56.6897 148.054 914.967 +48.9603 149.228 922.222 +40.4352 147.934 914.226 +32.5822 149.038 921.051 +24.1692 147.434 911.133 +16.2761 148.947 920.485 +8.04936 147.335 910.522 +5.69626e-14 148.602 918.355 +-8.03888 147.143 909.337 +-16.2464 148.675 918.807 +-24.1221 147.146 909.356 +-32.4565 148.464 917.499 +-40.1429 146.865 907.618 +-48.641 148.255 916.209 +-56.2623 146.938 908.07 +-64.8596 148.161 915.625 +-72.3471 146.838 907.454 +-81.0548 147.989 914.565 +-88.3698 146.598 905.971 +-97.3369 147.931 914.208 +-104.521 146.536 905.586 +-113.643 147.843 913.665 +-120.541 146.254 903.843 +-126.634 143.929 889.475 +-131.299 140.335 867.262 +-138.929 140.115 865.903 +-148.196 141.46 874.215 +-158.159 143.277 885.446 +-167.73 144.559 893.368 +-148.201 121.787 752.64 +-154.351 121.185 748.917 +-156.121 117.324 725.06 +-118.609 85.4602 528.14 +-122.373 84.6691 523.251 +-127.018 84.5108 522.273 +-132.089 84.625 522.979 +-820.32 506.672 3131.21 +-848.072 505.572 3124.41 +-875.66 504.37 3116.99 +-903.181 503.131 3109.33 +-930.633 501.851 3101.42 +-958.014 500.535 3093.28 +-167.523 84.8702 524.494 +-147.587 72.556 448.393 +-149.228 71.2417 440.27 +-155.263 72.0277 445.128 +-1093.78 493.384 3049.09 +-1120.7 491.841 3039.55 +-1147.38 490.2 3029.42 +-457.887 190.539 1177.52 +-451.823 183.22 1132.29 +-1227.32 485.234 2998.72 +-421.296 162.467 1004.04 +-427.929 161.036 995.195 +-423.153 155.452 960.688 +-395.226 141.796 876.294 +-395.991 138.798 857.765 +-433.818 148.606 918.379 +-436.84 146.294 904.093 +-438.722 143.684 887.963 +-440.71 141.195 872.577 +-139.874 43.8505 270.994 +-143.973 44.1781 273.019 +-146.193 43.9194 271.42 +-149.303 43.9245 271.451 +-152.23 43.8684 271.105 +-113.454 32.0318 197.955 +-111 30.7105 189.789 +-111.303 30.1829 186.529 +-112.587 29.9308 184.971 +-113.852 29.6773 183.404 +-115.045 29.4091 181.747 +-117.078 29.3554 181.415 +-118.459 29.1376 180.069 +-120.653 29.1178 179.946 +-123.078 29.1471 180.128 +-127.158 29.5537 182.64 +-493.104 112.49 695.183 +-496.501 111.187 687.131 +-499.853 109.896 679.154 +-503.22 108.63 671.331 +-506.187 107.3 663.107 +-509.899 106.146 655.981 +-512.661 104.815 647.752 +-515.94 103.609 640.298 +-515.98 101.781 629 +-529.09 102.524 633.596 +-526.764 100.278 619.712 +-530.729 99.2604 613.425 +-165.392 30.3916 187.819 +-161.746 29.2029 180.473 +-164.807 29.2376 180.687 +-169.573 29.5602 182.681 +-548.94 94.0312 581.108 +-552.955 93.0769 575.211 +-556.56 92.0613 568.935 +-559.606 90.963 562.147 +-563.423 89.9988 556.189 +-566.82 88.9749 549.861 +-570.293 87.9705 543.654 +-2376.83 360.289 2226.57 +-582.231 86.7268 535.968 +-581.343 85.0917 525.863 +-585.97 84.278 520.834 +-589.653 83.3311 514.983 +-594.183 82.5059 509.883 +-598.668 81.6745 504.745 +-601.958 80.683 498.617 +-605.88 79.7799 493.036 +-610.448 78.9623 487.984 +-389.739 49.52 306.031 +-385.652 48.1292 297.436 +-141.534 17.3478 107.209 +-143.355 17.2556 106.639 +-142.122 16.7986 103.815 +-143.196 16.6186 102.702 +-141.656 16.14 99.7446 +-142.123 15.8962 98.2377 +-143.398 15.7427 97.2892 +-147.569 15.8995 98.2582 +-657.936 69.5614 429.886 +-384.782 39.9148 246.671 +-381.382 38.8105 239.847 +-380.604 37.9896 234.774 +-382.324 37.4242 231.28 +-383.84 36.8405 227.673 +-382.908 36.0284 222.654 +-381.138 35.1499 217.225 +-382.521 34.57 213.641 +-381.334 33.7645 208.663 +-381.407 33.0792 204.428 +-380.374 32.3062 199.651 +-717.592 59.6701 368.758 +-737.575 60.0308 370.987 +-725.255 57.7603 356.956 +-406.165 31.6437 195.556 +-406.885 31.0006 191.582 +-405.12 30.1757 186.484 +-404.296 29.431 181.882 +-404.518 28.7689 177.79 +-404.882 28.1212 173.788 +-404.286 27.4121 169.406 +-406.877 26.9209 166.37 +-403.789 26.0595 161.046 +-406.499 25.5775 158.068 +-405.454 24.8611 153.641 +-407.64 24.3453 150.453 +-405.383 23.5685 145.652 +-403.828 22.8427 141.167 +-405.817 22.3205 137.94 +-405.314 21.6627 133.875 +-404.865 21.0131 129.86 +-386.255 19.4536 120.222 +-381.566 18.6341 115.158 +-381.994 18.0744 111.699 +-380.756 17.44 107.778 +-379.959 16.8317 104.019 +-380.478 16.2849 100.64 +-380.095 15.7019 97.037 +-380.356 15.1483 93.6157 +-381.169 14.6175 90.3356 +-379.322 13.9886 86.4489 +-380.951 13.4904 83.3703 +-380.695 12.9257 79.8802 +-380.113 12.3531 76.3418 +-379.497 11.7832 72.8196 +-379.241 11.2275 69.3857 +-381.613 10.7484 66.4247 +-379.03 10.1317 62.6134 +-380.062 9.61545 59.4231 +-379.782 9.06641 56.03 +-378.877 8.50555 52.5639 +-379.327 7.97709 49.2981 +-380.244 7.45776 46.0886 +-379.246 6.90213 42.6549 +-379.609 6.37322 39.3862 +-379.246 5.8331 36.0483 +-379.949 5.30981 32.8144 +-380.523 4.78373 29.5633 +-378.975 4.23308 26.1602 +-379.491 3.70758 22.9127 +-378.98 3.17259 19.6065 +-378.639 2.6407 16.3194 +-378.369 2.11057 13.0432 +-145.45 0.608394 3.75984 +-144.578 0.403112 2.49122 +-143.695 0.200309 1.2379 +96 0 0 +95.9963 0.141273 0.825749 +95.9854 0.282536 1.65144 +95.8671 0.423336 2.47442 +95.9415 0.564985 3.30237 +96.9077 0.713507 4.17049 +96.7672 0.855206 4.99872 +96.8191 0.998606 5.8369 +96.7637 1.14105 6.66948 +95.8038 1.27149 7.43194 +96.6309 1.42566 8.33304 +96.653 1.56942 9.17334 +96.5681 1.71159 10.0043 +96.6745 1.85746 10.857 +96.3762 1.99554 11.664 +96.2693 2.13729 12.4926 +96.155 2.27888 13.3202 +96.0334 2.4203 14.1468 +96.6947 2.58262 15.0956 +96.4587 2.72205 15.9105 +96.2157 2.86096 16.7224 +95.8674 2.9963 17.5135 +95.905 3.14369 18.375 +95.8366 3.28807 19.219 +95.565 3.42548 20.0221 +96.2628 3.59882 21.0353 +96.0729 3.74035 21.8625 +95.9729 3.88553 22.7111 +95.6712 4.02253 23.5119 +96.4275 4.20538 24.5807 +96.2062 4.34713 25.4092 +95.8812 4.48403 26.2094 +95.6455 4.62496 27.0331 +96.0737 4.79906 28.0507 +96.013 4.95012 28.9337 +96.4208 5.12673 29.966 +96.0567 5.26321 30.7637 +95.8755 5.40972 31.6201 +96.4429 5.60002 32.7324 +96.1494 5.74173 33.5607 +95.7547 5.87724 34.3528 +97.2266 6.13013 35.8309 +96.8123 6.26694 36.6306 +96.5773 6.41534 37.498 +97.0761 6.61407 38.6596 +96.8226 6.76313 39.5308 +96.4689 6.90536 40.3622 +97.025 7.11431 41.5835 +95.8309 7.19509 42.0557 +97.0929 7.46172 43.6141 +95.8874 7.54017 44.0726 +96.4864 7.76084 45.3625 +95.9013 7.88776 46.1043 +95.4895 8.02858 46.9275 +95.6941 8.22239 48.0603 +96.152 8.44076 49.3367 +96.4179 8.64528 50.5321 +95.9668 8.78683 51.3595 +96.2082 8.99314 52.5654 +95.7391 9.13437 53.3909 +96.0422 9.3508 54.6559 +96.244 9.56024 55.8801 +95.8313 9.71021 56.7567 +95.922 9.91254 57.9393 +96.0838 10.1248 59.18 +96.1466 10.3292 60.375 +95.7762 10.4887 61.307 +95.8135 10.6944 62.5094 +95.2564 10.835 63.3311 +95.269 11.0416 64.5389 +95.3493 11.2588 65.8081 +95.5772 11.4966 67.1981 +95.6258 11.7161 68.4812 +95.7394 11.9467 69.8288 +95.6765 12.1581 71.0649 +95.6784 12.3806 72.3652 +95.7433 12.6144 73.7316 +95.1652 12.7653 74.6137 +95.1227 12.9897 75.9256 +95.0641 13.215 77.2425 +95.0661 13.452 78.6275 +95.0507 13.6899 80.0184 +95.0179 13.9289 81.4149 +95.5667 14.2581 83.3394 +95.3455 14.4772 84.62 +95.2562 14.7195 86.0362 +94.7103 14.8936 87.054 +95.2417 15.2414 89.0866 +94.4493 15.3809 89.9024 +94.8623 15.7203 91.8858 +94.6816 15.9666 93.3256 +95.1835 16.3339 95.4722 +94.3346 16.4733 96.2873 +94.7176 16.8317 98.3821 +94.2522 17.0444 99.6255 +94.5826 17.4063 101.741 +94.2805 17.6576 103.209 +94.5559 18.023 105.345 +94.2101 18.276 106.824 +94.17 18.5935 108.68 +94.4255 18.9768 110.92 +94.0124 19.2321 112.413 +94.0834 19.5925 114.519 +93.5639 19.8358 115.941 +93.6421 20.2119 118.139 +93.6884 20.5898 120.348 +93.7026 20.9694 122.567 +93.9225 21.4046 125.111 +92.5762 21.4874 125.595 +94.1319 22.2544 130.078 +115.69 27.8623 162.857 +115.094 28.2399 165.064 +115.697 28.9256 169.071 +115.576 29.4463 172.115 +115.028 29.8698 174.59 +115.143 30.4789 178.151 +115.045 31.0475 181.474 +114.793 31.5895 184.642 +114.802 32.2199 188.327 +114.907 32.8961 192.279 +114.95 33.575 196.248 +114.981 34.2713 200.317 +115.579 35.1619 205.523 +113.802 35.3455 206.596 +111.171 35.2585 206.088 +108.926 35.2861 206.249 +106.733 35.3249 206.476 +104.098 35.2089 205.798 +101.877 35.2244 205.889 +99.7494 35.2664 206.134 +97.498 35.259 206.091 +94.9648 35.1403 205.397 +92.6546 35.0939 205.126 +90.7553 35.198 205.734 +91.1185 36.1995 211.588 +91.1935 37.1266 217.007 +91.1792 38.057 222.445 +90.8923 38.9115 227.439 +90.8104 39.8938 233.181 +90.5986 40.8631 238.847 +90.4301 41.8981 244.897 +90.0611 42.888 250.683 +89.6289 43.8958 256.573 +89.5434 45.1295 263.784 +89.3677 46.3823 271.107 +89.0691 47.6378 278.445 +88.7933 48.9766 286.271 +88.6412 50.4636 294.962 +88.5898 52.0997 304.525 +88.1085 53.5768 313.159 +87.7914 55.2518 322.95 +87.658 57.1584 334.094 +87.2854 59.0362 345.069 +87.0518 61.1465 357.404 +86.6062 63.2603 369.76 +86.3161 65.6574 383.771 +85.9923 68.2232 398.768 +85.4491 70.8259 413.981 +85.1771 73.8954 431.922 +81.6415 74.2833 434.189 +83.0907 79.4659 464.482 +83.8607 84.5083 493.955 +83.4109 88.809 519.093 +92.7208 104.623 611.525 +87.1919 104.622 611.518 +81.853 104.846 612.831 +80.3728 110.386 645.209 +79.5932 117.805 688.575 +78.3859 125.766 735.111 +76.8875 134.656 787.071 +74.7796 144.138 842.494 +71.8999 154.06 900.491 +64.4062 155.321 907.86 +55.6396 153.407 896.672 +48.0653 154.662 904.006 +39.602 152.958 894.046 +31.9784 154.426 902.627 +23.7477 152.933 893.901 +15.9969 154.547 903.335 +7.90101 152.676 892.4 +5.60012e-14 154.233 901.502 +-7.88704 152.406 890.823 +-15.9567 154.159 901.069 +-23.664 152.394 890.748 +-31.8563 153.836 899.179 +-39.397 152.166 889.417 +-47.7252 153.567 897.608 +-55.1574 152.077 888.9 +-63.7156 153.656 898.126 +-70.9584 152.043 888.7 +-79.6342 153.495 897.187 +-86.7308 151.895 887.834 +-95.6226 153.422 896.76 +-102.528 151.751 886.99 +-111.669 153.368 896.445 +-118.518 151.81 887.339 +-125.743 150.879 881.894 +-131.476 148.353 867.131 +-139.008 148.004 865.091 +-149.104 150.255 878.249 +-157.95 151.06 882.952 +-160.203 145.764 852 +-148.316 128.672 752.092 +-154.47 128.035 748.373 +-156.1 123.844 723.875 +-118.782 90.353 528.118 +-122.576 89.5339 523.33 +-127.018 89.2189 521.489 +-132.114 89.3558 522.289 +-820.42 534.965 3126.9 +-848.072 533.737 3119.72 +-875.66 532.469 3112.31 +-903.181 531.161 3104.66 +-930.633 529.81 3096.77 +-958.014 528.42 3088.64 +-167.794 89.743 524.553 +-147.648 76.6302 447.907 +-149.228 75.2106 439.61 +-155.426 76.1202 444.926 +-1093.78 520.871 3044.51 +-1120.7 519.242 3034.99 +-1147.38 517.51 3024.87 +-458.03 201.217 1176.12 +-451.823 193.427 1130.59 +-1227.47 512.329 2994.59 +-1253.79 510.442 2983.56 +-424.373 168.594 985.442 +-423.472 164.236 959.97 +-433.378 164.146 959.443 +-431.198 159.558 932.627 +-396.078 143.237 837.228 +-436.28 154.247 901.581 +-439.248 151.871 887.694 +-441.245 149.242 872.327 +-144.187 47.7209 278.931 +-145.266 47.0582 275.058 +-145.489 46.1427 269.706 +-149.303 46.3715 271.044 +-152.667 46.445 271.474 +-113.208 33.743 197.229 +-111 32.4214 189.505 +-111.506 31.9226 186.589 +-112.536 31.5838 184.609 +-113.957 31.3595 183.298 +-115.363 31.1333 181.976 +-117.131 31.005 181.226 +-118.513 30.775 179.881 +-120.985 30.8244 180.17 +-123.022 30.757 179.776 +-127.158 31.2001 182.366 +-492.702 118.66 693.575 +-496.559 117.395 686.18 +-499.853 116.019 678.135 +-503.458 114.736 670.64 +-506.187 113.277 662.112 +-509.412 111.953 654.37 +-512.661 110.654 646.78 +-516.189 109.434 639.645 +-516.924 107.648 629.206 +-528.708 108.158 632.189 +-527.022 105.916 619.085 +-530.729 104.79 612.505 +-165.261 32.0593 187.388 +-163.468 31.1581 182.121 +-166.614 31.2047 182.393 +-169.708 31.2318 182.552 +-549.622 99.393 580.957 +-552.749 98.2257 574.134 +-556.352 97.1537 567.868 +-560.027 96.1028 561.725 +-563.211 94.9769 555.145 +-567.462 94.038 549.657 +-570.293 92.8714 542.838 +-2376.54 380.315 2222.96 +-583.986 91.8344 536.777 +-582.523 90.0145 526.139 +-585.97 88.9732 520.053 +-590.552 88.1076 514.993 +-594.183 87.1024 509.118 +-598.211 86.159 503.604 +-602.647 85.2754 498.439 +-606.343 84.2887 492.672 +-610.448 83.3614 487.251 +-388.33 52.0899 304.468 +-389.12 51.2673 299.66 +-141.376 18.2937 106.927 +-143.355 18.2169 106.479 +-142.122 17.7345 103.659 +-143.115 17.5345 102.49 +-141.819 17.0588 99.7093 +-142.041 16.7721 98.0338 +-143.233 16.6006 97.0316 +-147.817 16.8136 98.2762 +-658.603 73.5113 429.677 +-381.092 41.7344 243.94 +-382.225 41.0632 240.017 +-380.18 40.0614 234.161 +-382.665 39.5443 231.139 +-382.554 38.7626 226.569 +-382.908 38.0356 222.32 +-383.389 37.3273 218.18 +-382.608 36.5042 213.369 +-381.859 35.6946 208.637 +-382.549 35.0266 204.732 +-384.612 34.4861 201.573 +-718.39 63.0643 368.614 +-735.348 63.1837 369.312 +-954.358 80.2406 469.011 +-410.299 33.7465 197.25 +-405.983 32.6551 190.871 +-405.482 31.8853 186.371 +-405.479 31.1615 182.141 +-405.797 30.4676 178.085 +-405.616 29.7416 173.841 +-405.943 29.0578 169.844 +-405.398 28.3173 165.516 +-403.51 27.4924 160.694 +-404.546 26.8728 157.073 +-405.921 26.2763 153.586 +-404.923 25.5305 149.227 +-405.383 24.8816 145.434 +-404.959 24.1827 141.349 +-405.911 23.5694 137.764 +-405.788 22.8964 133.831 +-406.101 22.2514 130.06 +-386.16 20.5323 120.012 +-380.896 19.6379 114.784 +-380.364 18.9999 111.055 +-380.371 18.393 107.508 +-380.056 17.7739 103.89 +-381.058 17.2183 100.642 +-381.741 16.6484 97.3109 +-381.229 16.0289 93.6898 +-380.002 15.3846 89.9239 +-380.589 14.8172 86.6075 +-381.536 14.2639 83.3732 +-380.793 13.6493 79.7808 +-380.995 13.0716 76.4042 +-380.773 12.4815 72.9548 +-380.028 11.8776 69.4253 +-380.431 11.3121 66.1196 +-379.917 10.7212 62.6658 +-380.951 10.1749 59.4727 +-378.397 9.53662 55.742 +-380.263 9.01226 52.6771 +-379.327 8.4215 49.2241 +-379.748 7.86297 45.9594 +-380.637 7.31339 42.7471 +-378.913 6.71593 39.2549 +-378.649 6.14837 35.9375 +-379.351 5.5968 32.7136 +-379.626 5.03833 29.4493 +-378.576 4.4642 26.0935 +-378.792 3.90691 22.8361 +-380.278 3.36081 19.6441 +-378.939 2.79003 16.3079 +-378.169 2.22699 13.0169 +-143.751 0.634783 3.71034 +-145.978 0.42969 2.51156 +-143.695 0.211468 1.23604 +96 0 0 +95.9963 0.148716 0.824441 +95.8854 0.297112 1.64711 +96.8668 0.450287 2.49626 +96.841 0.600328 3.32805 +95.9086 0.743355 4.12095 +96.8671 0.901193 4.99596 +96.8191 1.05122 5.82766 +95.8659 1.19002 6.59713 +95.8038 1.33848 7.42017 +95.7343 1.48684 8.24264 +96.653 1.6521 9.15881 +96.5681 1.80177 9.9885 +96.4758 1.95129 10.8174 +96.3762 2.10067 11.6456 +96.2693 2.2499 12.4728 +96.155 2.39894 13.2991 +95.9345 2.54518 14.1098 +95.8058 2.6937 14.9331 +96.4587 2.86546 15.8853 +96.2157 3.01169 16.6959 +95.8674 3.15416 17.4858 +95.905 3.30931 18.3459 +95.5427 3.45069 19.1297 +95.565 3.60595 19.9904 +95.3841 3.75386 20.8103 +96.0729 3.93741 21.8279 +95.8757 4.08609 22.6521 +95.7682 4.23875 23.4985 +96.4275 4.42694 24.5417 +96.1096 4.57157 25.3435 +96.7485 4.76297 26.4046 +96.5107 4.91267 27.2345 +96.0737 5.0519 28.0063 +96.013 5.21092 28.8879 +95.5624 5.34878 29.6521 +96.1518 5.54599 30.7454 +96.729 5.74543 31.8511 +96.4429 5.89506 32.6806 +96.1494 6.04423 33.5075 +96.6004 6.24153 34.6013 +96.1962 6.38471 35.3951 +96.9056 6.60347 36.6078 +96.5773 6.75333 37.4386 +96.2417 6.9027 38.2666 +95.8987 7.05151 39.0916 +96.3769 7.26223 40.2597 +96.1079 7.41834 41.1252 +96.6531 7.63914 42.3492 +96.4559 7.80331 43.2593 +95.8874 7.93742 44.0028 +96.3058 8.15444 45.2059 +96.8001 8.38115 46.4627 +96.116 8.50701 47.1605 +96.496 8.72813 48.3863 +96.0633 8.87728 49.2131 +96.3296 9.09241 50.4058 +95.9668 9.24977 51.2781 +96.2956 9.47554 52.5297 +95.6521 9.60687 53.2578 +95.9556 9.83457 54.5201 +96.244 10.0639 55.7916 +95.7456 10.2127 56.6161 +96.0073 10.444 57.8989 +96.0838 10.6582 59.0863 +95.5563 10.8067 59.9091 +95.6084 11.022 61.1027 +95.8135 11.2578 62.4104 +95.2564 11.4058 63.2308 +95.269 11.6234 64.4367 +95.5131 11.8723 65.8168 +95.5772 12.1023 67.0917 +95.6258 12.3334 68.3727 +95.659 12.5655 69.6597 +95.7564 12.8094 71.0115 +95.2024 12.968 71.8911 +95.8221 13.2899 73.6754 +95.7912 13.5262 74.9856 +95.1227 13.6741 75.8054 +95.0641 13.9113 77.1202 +95.0661 14.1607 78.5029 +95.583 14.4919 80.339 +95.6972 14.7675 81.867 +95.417 14.9858 83.077 +95.4941 15.2637 84.6177 +95.4037 15.519 86.0329 +95.2954 15.7751 87.453 +95.1691 16.0321 88.8777 +94.8809 16.2653 90.1701 +94.8623 16.5485 91.7403 +94.6816 16.8078 93.1778 +95.1835 17.1944 95.321 +94.7514 17.4178 96.5595 +94.5799 17.6927 98.0834 +94.9342 18.0722 100.187 +94.6502 18.3365 101.652 +94.2805 18.5879 103.046 +94.4896 18.9592 105.105 +94.1445 19.2255 106.581 +94.2349 19.5866 108.583 +93.7184 19.827 109.915 +94.0124 20.2454 112.235 +93.3911 20.4729 113.496 +93.6262 20.8947 115.835 +93.6421 21.2768 117.952 +93.6884 21.6746 120.158 +93.6424 22.06 122.294 +93.8036 22.5038 124.755 +92.2823 22.5478 124.999 +93.2028 23.1957 128.591 +115.346 29.2429 162.115 +115.66 29.8742 165.614 +115.25 30.3318 168.151 +115.576 30.9977 171.843 +115.463 31.5626 174.974 +115.197 32.0996 177.951 +115.045 32.6833 181.187 +115.315 33.4052 185.189 +115.163 34.0239 188.619 +114.856 34.614 191.89 +114.9 35.3287 195.852 +115.178 36.1387 200.343 +115.191 36.8903 204.509 +113.802 37.2077 206.269 +111.64 37.2728 206.63 +109.342 37.2869 206.708 +106.733 37.186 206.149 +104.5 37.207 206.265 +101.877 37.0802 205.562 +99.6633 37.0923 205.629 +97.5403 37.1328 205.854 +95.2965 37.1209 205.788 +93.0207 37.0888 205.61 +90.8749 37.1012 205.679 +91.1576 38.123 211.343 +91.1935 39.0827 216.663 +90.8796 39.9303 221.362 +90.8923 40.9615 227.079 +90.5596 41.8796 232.169 +90.6337 43.0326 238.561 +90.1223 43.9554 243.676 +89.9943 45.114 250.1 +89.7266 46.2589 256.446 +89.5434 47.5072 263.367 +89.0896 48.674 269.835 +89.2194 50.2323 278.474 +88.7933 51.5569 285.817 +88.6128 53.1053 294.401 +88.3693 54.7079 303.285 +88.1887 56.4508 312.947 +87.9208 58.2485 322.913 +87.658 60.1698 333.565 +87.3338 62.1809 344.714 +86.9817 64.3161 356.551 +86.6287 66.6106 369.27 +86.4027 69.1858 383.547 +85.8675 71.7134 397.559 +85.6086 74.6966 414.097 +84.3376 77.0219 426.988 +81.0219 77.6035 430.212 +82.8996 83.4602 462.68 +83.8442 88.943 493.075 +83.5204 93.6107 518.952 +92.8539 110.293 611.432 +87.3033 110.274 611.329 +81.9966 110.564 612.934 +80.3606 116.184 644.09 +79.5932 124.011 687.485 +78.3754 132.375 733.849 +76.1686 140.425 778.477 +76.2264 154.668 857.434 +69.9934 157.877 875.225 +62.725 159.237 882.763 +54.1012 157.024 870.498 +46.9192 158.928 881.052 +38.5857 156.884 869.722 +31.2455 158.836 880.544 +23.0828 156.483 867.497 +15.6007 158.66 879.569 +7.68895 156.406 867.072 +5.46909e-14 158.56 879.014 +-7.68633 156.353 866.777 +-15.5745 158.394 878.092 +-23.0279 156.11 865.432 +-31.1269 158.233 877.2 +-38.3807 156.051 865.101 +-46.6418 157.988 875.844 +-53.6678 155.766 863.524 +-62.2158 157.944 875.596 +-69.044 155.735 863.353 +-77.7168 157.692 874.198 +-84.4209 155.639 862.82 +-93.2917 157.568 873.513 +-99.766 155.442 861.728 +-108.854 157.378 872.461 +-115.033 155.109 859.882 +-124.616 157.404 872.603 +-130.915 155.502 862.058 +-135.597 151.979 842.53 +-145.605 154.46 856.281 +-157.586 158.651 879.518 +-156.668 150.058 831.878 +-151.789 138.622 768.481 +-154.012 134.381 744.969 +-154.749 129.24 716.472 +-118.977 95.2693 528.146 +-122.756 94.3895 523.269 +-127.251 94.0922 521.621 +-132.307 94.2015 522.227 +-820.42 563.15 3121.94 +-848.072 561.857 3114.78 +-875.66 560.523 3107.38 +-903.181 559.145 3099.74 +-930.633 557.723 3091.86 +-958.014 556.26 3083.75 +-167.764 94.4543 523.628 +-147.772 80.7349 447.572 +-149.609 79.3751 440.033 +-155.231 80.0298 443.663 +-1093.78 548.313 3039.69 +-1120.7 546.598 3030.19 +-1147.38 544.775 3020.08 +-458.03 211.818 1174.26 +-451.31 203.387 1127.52 +-447.28 196.525 1089.48 +-324.286 138.979 770.462 +-420.427 175.826 974.732 +-422.714 172.58 956.734 +-429.921 171.416 950.281 +-431.903 168.239 932.673 +-433.944 165.199 915.817 +-436.409 162.421 900.419 +-438.853 159.729 885.492 +-441.379 157.152 871.209 +-144.46 50.3299 279.015 +-145.913 49.7578 275.843 +-145.067 48.4328 268.498 +-145.343 47.5198 263.436 +-152.279 48.7677 270.355 +-113.208 35.5207 196.917 +-111.05 34.1448 189.289 +-111.658 33.6502 186.547 +-112.587 33.263 184.401 +-113.957 33.0117 183.007 +-115.257 32.7434 181.52 +-117.131 32.6385 180.939 +-119.167 32.575 180.587 +-121.15 32.4928 180.131 +-123.414 32.4805 180.063 +-127.441 32.9171 182.483 +-493.62 125.144 693.765 +-497.198 123.739 685.975 +-500.088 122.189 677.38 +-503.755 120.853 669.973 +-506.728 119.373 661.771 +-509.716 117.922 653.725 +-512.477 116.442 645.522 +-516.625 115.296 639.171 +-517.301 113.402 628.668 +-526.418 113.363 628.454 +-527.022 111.496 618.104 +-531.313 110.433 612.208 +-164.999 33.6948 186.794 +-164.065 32.9194 182.496 +-164.807 32.4926 180.13 +-169.641 32.8641 182.19 +-549.622 104.63 580.037 +-553.231 103.491 573.724 +-556.56 102.311 567.181 +-560.237 101.204 561.046 +-563.847 100.094 554.892 +-567.462 98.9924 548.786 +-570.724 97.8383 542.388 +-571.813 96.3273 534.012 +-586.399 97.0722 538.141 +-582.818 94.8049 525.572 +-586.639 93.7678 519.823 +-590.851 92.7966 514.438 +-594.409 91.7264 508.505 +-598.896 90.802 503.381 +-602.417 89.7339 497.459 +-606.806 88.7973 492.267 +-388.651 55.8694 309.724 +-389.348 54.9779 304.782 +-388.016 53.8153 298.337 +-141.534 19.2791 106.878 +-143.435 19.1874 106.369 +-142.604 18.7322 103.846 +-143.762 18.5417 102.79 +-141.575 17.9266 99.3801 +-142.205 17.6761 97.9914 +-144.222 17.5959 97.5468 +-148.066 17.7292 98.2857 +-658.853 77.4135 429.159 +-382.937 44.1459 244.732 +-382.478 43.2552 239.795 +-381.452 42.3131 234.572 +-383.262 41.6927 231.133 +-382.211 40.7682 226.007 +-382.994 40.0485 222.018 +-383.389 39.2939 217.834 +-381.129 38.2788 212.207 +-383.258 37.7129 209.07 +-383.955 37.0076 205.16 +-382.758 36.128 200.284 +-719.188 66.4607 368.44 +-728.754 65.9163 365.421 +-2932.07 259.512 1438.66 +-409.85 35.4856 196.722 +-407.698 34.5208 191.373 +-405.391 33.5577 186.035 +-403.75 32.6634 181.077 +-406.162 32.1017 177.963 +-404.423 31.2164 173.055 +-404.654 30.4916 169.037 +-404.013 29.7073 164.689 +-404.623 29.0205 160.882 +-404.546 28.2886 156.824 +-404.614 27.5718 152.85 +-405.766 26.9315 149.3 +-405.759 26.2168 145.338 +-406.561 25.5576 141.684 +-405.06 24.7592 137.258 +-405.788 24.1027 133.619 +-406.101 23.4237 129.854 +-385.874 21.5981 119.734 +-380.705 20.662 114.544 +-381.514 20.0615 111.215 +-381.044 19.3963 107.528 +-381.983 18.8052 104.25 +-381.927 18.1668 100.712 +-381.934 17.5345 97.2061 +-381.229 16.8734 93.5414 +-379.419 16.1703 89.6436 +-380.784 15.6059 86.5146 +-380.56 14.977 83.0282 +-379.619 14.3241 79.4089 +-380.603 13.7461 76.2046 +-380.97 13.1458 72.8768 +-379.635 12.4905 69.2436 +-380.727 11.9173 66.0662 +-379.523 11.2743 62.5016 +-380.655 10.7026 59.3322 +-378.595 10.0443 55.6827 +-380.56 9.49448 52.6347 +-378.93 8.85592 49.0948 +-378.16 8.24261 45.6947 +-378.849 7.66251 42.4788 +-378.714 7.06605 39.1722 +-378.649 6.4723 35.8806 +-378.056 5.87156 32.5503 +-379.227 5.29821 29.3718 +-378.177 4.69444 26.0247 +-377.894 4.103 22.7459 +-379.379 3.52951 19.5666 +-378.24 2.93161 16.252 +-377.47 2.33997 12.9721 +-144.65 0.672408 3.72764 +-145.878 0.452019 2.50587 +-146.094 0.226328 1.2547 +96 0 0 +95.9963 0.156148 0.823066 +95.8854 0.31196 1.64436 +96.8668 0.472788 2.4921 +96.9409 0.630978 3.32593 +95.9086 0.780502 4.11408 +96.8671 0.946227 4.98763 +95.8209 1.09237 5.75796 +95.8659 1.24949 6.58612 +96.701 1.41853 7.47716 +95.7343 1.56114 8.22889 +95.6576 1.7168 9.04937 +96.4686 1.88987 9.96162 +96.6745 2.05303 10.8217 +96.5747 2.2102 11.6501 +96.4676 2.36719 12.4776 +96.155 2.51882 13.2769 +95.9345 2.67237 14.0862 +95.8058 2.8283 14.9082 +96.4587 3.00866 15.8588 +96.2157 3.16219 16.6681 +96.064 3.31857 17.4924 +95.905 3.47469 18.3153 +95.7386 3.63055 19.1369 +95.3694 3.77839 19.9162 +96.2628 3.97774 20.9669 +96.0729 4.13417 21.7915 +95.8757 4.29028 22.6143 +95.7682 4.45057 23.4593 +95.4594 4.60151 24.2549 +96.2062 4.80484 25.3267 +95.8812 4.95615 26.1242 +96.5107 5.15816 27.189 +96.2655 5.31494 28.0154 +95.8217 5.46042 28.7822 +95.5624 5.61607 29.6027 +96.1518 5.82313 30.6941 +95.8755 5.97931 31.5173 +96.4429 6.18965 32.6261 +96.1494 6.34627 33.4516 +96.6004 6.55343 34.5436 +96.1962 6.70377 35.336 +96.9056 6.93346 36.5467 +96.4843 7.08399 37.3402 +96.9834 7.30348 38.4971 +96.7302 7.4681 39.3649 +96.4689 7.63242 40.231 +96.9332 7.85594 41.4092 +96.8358 8.03605 42.3586 +96.2739 8.17778 43.1056 +96.703 8.40497 44.3032 +96.4864 8.57798 45.2151 +95.9013 8.71826 45.9545 +96.2054 8.94045 47.1257 +96.496 9.16429 48.3056 +96.0633 9.32089 49.1311 +96.4179 9.55554 50.3679 +95.8789 9.70311 51.1457 +96.2082 9.94003 52.3945 +95.7391 10.0961 53.2174 +95.9556 10.326 54.4292 +96.244 10.5668 55.6985 +95.7456 10.723 56.5216 +95.922 10.9562 57.751 +96.0838 11.1909 58.9877 +95.5563 11.3467 59.8092 +95.6084 11.5727 61.0007 +95.8135 11.8204 62.3063 +95.8367 12.0488 63.5099 +95.1866 12.1936 64.2735 +95.5131 12.4656 65.707 +95.5772 12.7071 66.9798 +95.6258 12.9497 68.2587 +95.7394 13.2045 69.6019 +95.0376 13.3485 70.361 +95.1231 13.6047 71.7114 +95.8221 13.954 73.5525 +95.0869 14.0977 74.31 +95.2004 14.3691 75.7407 +95.6043 14.6894 77.429 +95.0661 14.8683 78.372 +95.0507 15.1313 79.7584 +95.6972 15.5055 81.7305 +94.9676 15.6605 82.5478 +95.4941 16.0265 84.4765 +95.2562 16.2693 85.7567 +95.2954 16.5635 87.3071 +95.1691 16.8333 88.7295 +94.8809 17.0781 90.0197 +94.8623 17.3755 91.5873 +94.6816 17.6477 93.0224 +95.1835 18.0537 95.162 +94.8209 18.3016 96.4692 +94.5799 18.5768 97.9198 +94.3204 18.8526 99.3735 +94.6502 19.2528 101.483 +94.2805 19.5167 102.874 +94.5559 19.9206 105.003 +94.2101 20.2002 106.477 +94.2349 20.5654 108.401 +93.7827 20.8321 109.807 +94.0124 21.2571 112.047 +94.0834 21.6554 114.147 +93.5639 21.9243 115.565 +94.1346 22.4576 118.376 +93.6275 22.743 119.88 +93.7628 23.192 122.247 +93.8036 23.6283 124.546 +92.9288 23.8404 125.665 +92.8544 24.2637 127.896 +115.117 30.6433 161.523 +115.15 31.2288 164.609 +115.25 31.8476 167.871 +115.576 32.5467 171.556 +115.463 33.1398 174.682 +115.197 33.7037 177.654 +115.045 34.3165 180.885 +115.263 35.0585 184.796 +115.163 35.7241 188.304 +114.907 36.3597 191.654 +114.9 37.0941 195.525 +114.981 37.8797 199.667 +115.142 38.7174 204.082 +114.232 39.2145 206.702 +111.64 39.1354 206.286 +109.388 39.1667 206.451 +106.688 39.0277 205.718 +104.5 39.0663 205.921 +102.272 39.084 206.014 +100.137 39.131 206.262 +97.498 38.9714 205.421 +95.2965 38.9759 205.445 +93.3867 39.0954 206.074 +91.0743 39.0408 205.786 +91.1576 40.0281 210.991 +91.1935 41.0357 216.302 +90.6173 41.8047 220.356 +90.8923 43.0084 226.7 +90.4879 43.9376 231.598 +90.6337 45.1831 238.163 +90.3959 46.2921 244.009 +89.9943 47.3685 249.682 +89.694 48.5528 255.925 +89.2895 49.7397 262.182 +89.1514 51.1418 269.572 +88.7984 52.4937 276.698 +88.881 54.1868 285.622 +88.6128 55.759 293.91 +88.3142 57.406 302.591 +88.0818 59.2 312.047 +87.9985 61.2134 322.66 +87.7332 63.2309 333.294 +87.3338 65.2882 344.139 +87.0051 67.5482 356.051 +86.5837 69.9029 368.463 +86.3378 72.5886 382.619 +85.8883 75.3153 396.992 +84.8311 77.7169 409.651 +82.3722 78.9862 416.342 +80.7668 81.225 428.142 +82.535 87.2454 459.876 +83.8442 93.3877 492.253 +83.0198 97.6995 514.98 +93.0017 115.989 611.384 +87.4285 115.951 611.184 +81.9966 116.089 611.911 +80.4581 122.138 643.796 +79.5932 130.209 686.338 +78.3754 138.99 732.625 +75.3443 145.847 768.769 +69.9686 149.065 785.73 +68.7302 162.775 857.996 +61.2183 163.178 860.12 +53.0023 161.522 851.395 +45.7992 162.887 858.587 +37.7264 161.056 848.935 +30.4777 162.675 857.473 +22.5829 160.744 847.291 +13.941 148.866 784.682 +6.91229 147.634 778.19 +5.33683e-14 162.458 856.326 +-7.51704 160.55 846.272 +-15.201 162.321 855.606 +-22.5462 160.483 845.917 +-30.3451 161.968 853.742 +-37.5476 160.292 844.911 +-45.5009 161.826 852.994 +-52.5262 160.071 843.745 +-60.6463 161.653 852.084 +-67.5925 160.08 843.793 +-75.7558 161.394 850.718 +-82.5999 159.892 842.799 +-90.9502 161.29 850.17 +-97.6151 159.691 841.743 +-106.209 161.228 849.845 +-112.944 159.904 842.863 +-121.512 161.154 849.452 +-128.831 160.673 846.92 +-135.519 159.482 840.64 +-143.624 159.972 843.226 +-154.616 163.441 861.506 +-156.668 157.556 830.491 +-153.735 147.416 777.037 +-152.935 140.11 738.527 +-154.083 135.115 712.202 +-119.042 100.085 527.553 +-122.756 99.1063 522.396 +-127.438 98.9391 521.515 +-132.525 99.0717 522.213 +-820.42 591.291 3116.74 +-848.072 589.935 3109.58 +-875.66 588.533 3102.2 +-903.181 587.087 3094.57 +-930.633 585.594 3086.7 +-958.014 584.058 3078.61 +-168.125 99.3876 523.879 +-147.679 84.7162 446.545 +-149.736 83.4123 439.672 +-154.84 83.8177 441.809 +-1093.78 575.713 3034.62 +-1120.7 573.912 3025.13 +-1147.38 571.998 3015.04 +-457.708 222.246 1171.47 +-451.053 213.428 1124.99 +-447.243 206.327 1087.56 +-323.903 145.752 768.269 +-1280.15 562.125 2963 +-422.754 181.221 955.229 +-425.528 178.143 939.002 +-429.871 175.816 926.736 +-433.86 173.421 914.111 +-437.141 170.824 900.424 +-439.116 167.811 884.545 +-1461.97 546.543 2880.86 +-145.141 53.0942 279.863 +-145.913 52.2443 275.383 +-146.663 51.4126 270.999 +-149.923 51.4668 271.285 +-138.171 46.4609 244.899 +-113.159 37.2795 196.503 +-111.1 35.8673 189.059 +-111.658 35.3318 186.236 +-112.845 35.005 184.514 +-114.114 34.709 182.954 +-115.575 34.4746 181.718 +-117.346 34.3325 180.969 +-119.058 34.1715 180.12 +-120.929 34.0543 179.502 +-123.47 34.1189 179.843 +-127.725 34.6388 182.583 +-493.62 131.398 692.608 +-497.256 129.938 684.91 +-500.911 128.506 677.362 +-504.291 127.027 669.567 +-506.909 125.383 660.903 +-510.446 123.992 653.569 +-513.585 122.525 645.839 +-517.31 121.218 638.95 +-518.56 119.358 629.146 +-525.655 118.856 626.496 +-527.407 117.154 617.524 +-531.638 116.022 611.56 +-164.999 35.3786 186.483 +-165.522 34.8716 183.81 +-165.075 34.1717 180.121 +-170.519 34.6852 182.828 +-549.622 109.858 579.069 +-553.231 108.662 572.767 +-556.977 107.504 566.66 +-560.868 106.381 560.741 +-563.847 105.096 553.966 +-567.462 103.939 547.871 +-571.444 102.857 542.166 +-571.668 101.115 532.985 +-589.252 102.419 539.857 +-582.818 99.5425 524.695 +-587.307 98.5658 519.547 +-591.525 97.5449 514.166 +-595.617 96.5058 508.689 +-598.668 95.3032 502.35 +-603.337 94.3619 497.388 +-607.346 93.3176 491.883 +-389.583 58.802 309.949 +-387.548 57.4583 302.867 +-390.538 56.8718 299.775 +-140.979 20.1631 106.281 +-143.435 20.1462 106.192 +-142.765 19.6905 103.79 +-143.196 19.3917 102.215 +-142.389 18.9307 99.7852 +-142.123 18.5487 97.7716 +-144.881 18.5597 97.8292 +-148.066 18.6152 98.1217 +-658.853 81.282 428.443 +-382.518 46.3012 244.057 +-383.237 45.507 239.87 +-380.18 44.2794 233.4 +-382.239 43.6593 230.131 +-382.639 42.8535 225.884 +-382.994 42.0498 221.648 +-382.61 41.1736 217.029 +-382.957 40.3844 212.869 +-382.121 39.4799 208.101 +-382.022 38.6613 203.786 +-383.023 37.9597 200.088 +-719.543 69.8162 368.006 +-722.784 68.6433 361.823 +-731.34 67.964 358.243 +-736.921 66.9926 353.122 +-406.434 36.1334 190.462 +-405.935 35.282 185.974 +-404.66 34.373 181.182 +-406.985 33.7741 178.026 +-406.533 32.9473 173.667 +-404.746 32.0226 168.793 +-406.507 31.3846 165.43 +-405.087 30.5058 160.798 +-405.197 29.7499 156.814 +-407.601 29.1632 153.721 +-405.673 28.2707 149.017 +-406.511 27.5779 145.365 +-403.451 26.6294 140.365 +-406.195 26.0693 137.413 +-404.839 25.2479 133.083 +-406.577 24.6231 129.79 +-386.446 22.7109 119.711 +-380.705 21.6945 114.353 +-380.651 21.0163 110.778 +-381.333 20.3808 107.429 +-379.959 19.6403 103.525 +-380.188 18.9878 100.086 +-380.095 18.322 96.5766 +-380.356 17.676 93.1715 +-382.044 17.0958 90.1134 +-381.076 16.3983 86.4366 +-380.951 15.7415 82.9747 +-380.793 15.0864 79.5216 +-380.995 14.4479 76.1559 +-379.497 13.7494 72.4741 +-380.52 13.1452 69.2892 +-379.84 12.4837 65.8024 +-379.523 11.8377 62.3973 +-379.272 11.1966 59.0181 +-380.573 10.6013 55.8804 +-378.877 9.92484 52.3145 +-380.219 9.3301 49.1796 +-378.855 8.67041 45.7023 +-378.849 8.04542 42.408 +-379.609 7.43669 39.1993 +-378.151 6.78681 35.7737 +-378.454 6.17148 32.5303 +-379.227 5.56297 29.3228 +-378.875 4.93813 26.0292 +-378.792 4.31827 22.7619 +-378.081 3.69321 19.4672 +-377.64 3.07322 16.1992 +-378.469 2.46341 12.9848 +-145.05 0.707962 3.73172 +-144.578 0.470378 2.4794 +-144.794 0.235523 1.24146 +96 0 0 +95.9963 0.163567 0.821624 +96.8852 0.330188 1.65859 +95.9671 0.490651 2.46463 +96.841 0.660275 3.31668 +95.9086 0.817585 4.10687 +95.9683 0.981988 4.93269 +96.8191 1.15619 5.80774 +96.7637 1.32111 6.63616 +96.8007 1.48746 7.47176 +96.6309 1.65063 8.2914 +96.5534 1.81521 9.11811 +96.5681 1.98169 9.95436 +96.4758 2.14615 10.7805 +96.3762 2.31044 11.6058 +96.2693 2.47457 12.4302 +96.155 2.6385 13.2536 +96.0334 2.80223 14.0761 +95.8058 2.96268 14.8821 +95.5711 3.12259 15.6853 +96.3142 3.31583 16.656 +95.8674 3.46913 17.426 +95.905 3.63978 18.2832 +95.7386 3.80304 19.1033 +96.4454 4.00256 20.1056 +96.3604 4.17096 20.9515 +96.0729 4.3306 21.7533 +95.8757 4.49412 22.5747 +95.7682 4.66203 23.4182 +95.4594 4.82014 24.2124 +96.2062 5.03313 25.2823 +95.8812 5.19163 26.0785 +96.5107 5.40324 27.1414 +96.2655 5.56746 27.9663 +95.8217 5.71985 28.7318 +96.6115 5.94749 29.8752 +96.1518 6.0998 30.6403 +95.8755 6.2634 31.4621 +96.4429 6.48373 32.5689 +96.0552 6.64128 33.3603 +95.8486 6.81137 34.2147 +96.1962 7.02228 35.2741 +96.8123 7.25589 36.4476 +96.4843 7.42056 37.2747 +97.0761 7.65781 38.4665 +96.7302 7.82293 39.2959 +96.4689 7.99505 40.1605 +96.1996 8.16691 41.0238 +96.6531 8.40197 42.2045 +96.2739 8.56632 43.0301 +96.0686 8.74654 43.9353 +96.3058 8.96873 45.0514 +96.6204 9.20095 46.2179 +96.2054 9.36523 47.0432 +96.496 9.5997 48.2209 +95.9746 9.75473 48.9997 +96.4179 10.0095 50.2796 +95.9668 10.1734 51.1029 +96.2082 10.4123 52.3027 +95.7391 10.5758 53.1241 +95.9556 10.8166 54.3338 +96.3301 11.0788 55.6507 +95.8313 11.2425 56.4731 +95.922 11.4768 57.6498 +95.9142 11.7019 58.7804 +95.5563 11.8858 59.7044 +95.6084 12.1226 60.8939 +95.7301 12.3713 62.1429 +95.2564 12.5448 63.0147 +95.269 12.7841 64.2165 +95.4312 13.0467 65.5357 +95.4958 13.2995 66.8055 +95.6258 13.565 68.1391 +95.0159 13.7274 68.955 +94.9578 13.971 70.1787 +95.1231 14.2511 71.5857 +95.7433 14.605 73.3633 +95.7912 14.8769 74.7294 +95.7444 15.1379 76.0401 +94.9098 15.2756 76.7319 +95.0661 15.5748 78.2347 +95.7351 15.9644 80.1919 +95.0179 16.1269 81.0081 +94.9676 16.4046 82.4032 +94.8253 16.6703 83.7379 +95.4037 17.0687 85.7389 +95.2954 17.3504 87.1541 +95.2417 17.6465 88.6416 +95.0248 17.9166 89.9983 +94.7197 18.1737 91.2894 +94.6816 18.4862 92.8594 +95.1835 18.9114 94.9953 +94.9598 19.1993 96.4413 +94.5799 19.4595 97.7482 +94.3204 19.7484 99.1994 +94.6502 20.1676 101.305 +94.3474 20.4585 102.766 +94.5559 20.8671 104.819 +94.2757 21.1748 106.365 +94.2349 21.5425 108.212 +93.847 21.8367 109.69 +93.9488 22.252 111.776 +94.0834 22.6843 113.947 +94.1242 23.1035 116.053 +93.7037 23.4168 117.627 +93.6884 23.839 119.747 +93.6424 24.2628 121.876 +93.6846 24.7195 124.17 +93.0464 25.0046 125.602 +92.3318 25.2734 126.953 +115.117 32.0992 161.24 +115.66 32.8574 165.048 +115.585 33.4578 168.064 +115.576 34.0931 171.255 +115.028 34.5834 173.718 +115.681 35.4532 178.087 +115.045 35.947 180.568 +115.263 36.7242 184.472 +115.111 37.4047 187.89 +114.856 38.0704 191.234 +114.8 38.8225 195.012 +114.932 39.6625 199.231 +115.045 40.5227 203.553 +114.232 41.0776 206.34 +111.593 40.9777 205.838 +109.342 41.0103 206.002 +107.142 41.056 206.231 +104.5 40.9224 205.56 +102.36 40.9759 205.829 +99.7494 40.8316 205.104 +97.9207 41.0001 205.951 +95.2965 40.8277 205.085 +93.0207 40.7924 204.907 +90.7553 40.7524 204.706 +91.1185 41.9119 210.531 +91.1935 42.9854 215.923 +90.9545 43.9538 220.787 +90.8557 45.0337 226.212 +90.8104 46.1892 232.016 +90.6337 47.3298 237.746 +89.9855 48.2713 242.475 +90.0277 49.6374 249.337 +89.694 50.8597 255.477 +89.4482 52.1955 262.187 +89.2441 53.6273 269.379 +89.1292 55.1926 277.242 +88.7348 56.6678 284.652 +88.6412 58.427 293.489 +88.5347 60.2836 302.815 +88.1352 62.0502 311.689 +88.0761 64.1784 322.379 +87.7332 66.2351 332.71 +87.2854 68.3523 343.345 +87.0051 70.7576 355.427 +86.6287 73.2622 368.008 +86.3594 76.0566 382.045 +86.0962 79.0846 397.256 +83.7345 80.357 403.647 +81.5136 81.8766 411.28 +80.7121 85.0265 427.103 +82.3266 91.1598 457.911 +83.9432 97.9403 491.971 +82.7225 101.975 512.238 +92.9721 121.461 610.118 +87.5677 121.653 611.085 +81.9966 121.604 610.839 +80.5434 128.076 643.349 +79.6045 136.415 685.233 +78.2814 145.419 730.463 +75.5744 153.243 769.765 +69.9163 156.03 783.767 +67.9299 168.523 846.519 +60.2068 168.106 844.427 +52.3491 167.111 839.429 +45.077 167.935 843.566 +37.3077 166.835 838.041 +29.9961 167.712 842.444 +22.3551 166.683 837.277 +13.7822 154.162 774.384 +6.87826 153.887 773.001 +5.25111e-14 167.443 841.095 +-7.43501 166.343 835.571 +-14.9462 167.183 839.79 +-22.3028 166.293 835.316 +-29.8949 167.146 839.602 +-37.155 166.152 834.611 +-44.8467 167.077 839.257 +-52.0134 166.039 834.044 +-59.8092 166.996 838.85 +-66.8471 165.837 833.027 +-74.7012 166.709 837.405 +-81.7948 165.856 833.122 +-89.6854 166.603 836.878 +-96.6303 165.591 831.79 +-104.649 166.408 835.896 +-111.561 165.449 831.079 +-119.912 166.587 836.794 +-127.53 166.608 836.9 +-135.457 166.982 838.779 +-142.387 166.129 834.493 +-152.185 168.514 846.475 +-156.832 165.215 829.903 +-153.563 154.247 774.81 +-152.696 146.537 736.08 +-154.374 141.802 712.297 +-119.042 104.84 526.629 +-122.958 103.986 522.341 +-127.414 103.621 520.506 +-132.718 103.93 522.059 +-820.42 619.385 3111.28 +-848.072 617.964 3104.14 +-875.66 616.495 3096.76 +-903.181 614.98 3089.15 +-930.633 613.416 3081.29 +-958.014 611.808 3073.21 +-167.944 103.998 522.4 +-147.71 88.7598 445.856 +-149.926 87.4865 439.459 +-154.743 87.7446 440.756 +-1093.78 603.066 3029.3 +-1120.7 601.18 3019.83 +-1147.38 599.175 3009.76 +-457.564 232.733 1169.06 +-450.797 223.442 1122.39 +-447.018 216.022 1085.12 +-323.597 152.533 766.198 +-444.339 204.384 1026.65 +-426.502 191.514 962.009 +-424.145 186 934.311 +-428.295 183.494 921.721 +-433.902 181.678 912.598 +-436.71 178.764 897.962 +-438.985 175.732 882.73 +-394.171 154.359 775.37 +-145.005 55.5645 279.11 +-145.497 54.5707 274.118 +-146.71 53.8725 270.611 +-150.066 53.9637 271.069 +-138.898 48.9246 245.756 +-112.962 38.9828 195.817 +-111.1 37.5714 188.728 +-111.811 37.061 186.164 +-112.845 36.6682 184.191 +-114.114 36.3581 182.633 +-115.628 36.1291 181.483 +-117.83 36.1119 181.396 +-119.004 35.7788 179.723 +-121.481 35.8351 180.006 +-123.917 35.8696 180.179 +-127.668 36.2685 182.183 +-493.62 137.641 691.395 +-497.082 136.064 683.471 +-500.617 134.532 675.779 +-504.291 133.062 668.394 +-507.27 131.434 660.214 +-510.446 129.883 652.424 +-513.585 128.347 644.708 +-517.123 126.932 637.601 +-519.441 125.242 629.111 +-525.21 124.397 624.868 +-527.921 122.839 617.044 +-531.119 121.416 609.892 +-162.375 36.4702 183.196 +-165.059 36.4261 182.974 +-167.216 36.2595 182.138 +-169.033 36.0165 180.917 +-549.691 115.092 578.126 +-553.231 113.825 571.763 +-556.977 112.612 565.667 +-560.868 111.435 559.759 +-564.554 110.227 553.689 +-567.89 108.96 547.324 +-571.659 107.785 541.42 +-571.015 105.799 531.444 +-590.202 107.458 539.781 +-582.523 104.219 523.511 +-586.936 103.183 518.308 +-591.525 102.18 513.265 +-595.089 101.001 507.347 +-599.58 99.9836 502.234 +-603.337 98.8453 496.517 +-607.037 97.7017 490.772 +-612.08 96.7743 486.114 +-389.348 60.4679 303.741 +-389.12 59.3575 298.163 +-141.138 21.145 106.215 +-143.435 21.1034 106.006 +-143.167 20.684 103.899 +-143.034 20.29 101.92 +-141.656 19.7281 99.0974 +-142.123 19.43 97.6003 +-145.046 19.4636 97.7689 +-148.398 19.5434 98.1696 +-659.604 85.2409 428.18 +-383.272 48.5968 244.11 +-382.394 47.5643 238.924 +-382.3 46.6419 234.29 +-379.936 45.4582 228.344 +-383.411 44.9802 225.943 +-383.425 44.0973 221.508 +-382.956 43.1689 216.845 +-383.392 42.3514 212.738 +-382.121 41.3557 207.737 +-382.901 40.5913 203.897 +-381.168 39.5707 198.77 +-720.43 73.2235 367.814 +-722.339 71.8603 360.967 +-730.893 71.1496 357.397 +-736.652 70.1498 352.374 +-406.073 37.8166 189.959 +-405.845 36.9499 185.606 +-405.934 36.1196 181.435 +-405.888 35.2835 177.235 +-405.249 34.4037 172.816 +-405.022 33.5671 168.613 +-404.844 32.7412 164.465 +-405.365 31.977 160.626 +-406.499 31.2636 157.042 +-405.547 30.3949 152.679 +-406.89 29.7028 149.202 +-405.383 28.808 144.707 +-405.713 28.051 140.905 +-405.817 27.2825 137.045 +-406.546 26.5591 133.411 +-406.577 25.793 129.563 +-384.348 23.6607 118.852 +-380.992 22.7425 114.239 +-380.747 22.0202 110.611 +-380.083 21.2793 106.889 +-381.694 20.6674 103.816 +-379.899 19.8749 99.8349 +-381.934 19.2854 96.8739 +-380.356 18.5159 93.0083 +-382.725 17.94 90.1157 +-379.03 17.0852 85.8219 +-380.951 16.4895 82.8293 +-380.499 15.791 79.3211 +-380.113 15.0993 75.8464 +-379.497 14.4027 72.3471 +-379.831 13.7449 69.0427 +-380.431 13.0972 65.7893 +-379.523 12.4001 62.288 +-379.766 11.7439 58.9915 +-379.485 11.0733 55.623 +-380.263 10.4344 52.414 +-380.715 9.78614 49.1575 +-377.565 9.05143 45.4669 +-377.955 8.40778 42.2337 +-378.714 7.77165 39.0383 +-378.151 7.10926 35.711 +-378.056 6.45788 32.439 +-379.826 5.83647 29.3176 +-378.576 5.16867 25.9631 +-378.792 4.52344 22.722 +-379.279 3.88095 19.4946 +-377.74 3.2201 16.1751 +-379.369 2.58658 12.9928 +-144.95 0.741088 3.72261 +-146.378 0.49886 2.50586 +-145.094 0.247225 1.24185 +96 0 0 +95.9963 0.170972 0.820115 +95.9854 0.341932 1.64017 +95.9671 0.512866 2.4601 +96.841 0.69017 3.31058 +95.9086 0.854602 4.09933 +95.8684 1.02538 4.9185 +96.8191 1.20854 5.79708 +96.8635 1.38235 6.63079 +96.701 1.5532 7.45035 +96.7305 1.72714 8.2847 +96.5534 1.8974 9.10136 +96.5681 2.07141 9.93608 +96.4758 2.24331 10.7607 +96.3762 2.41505 11.5844 +96.2693 2.58661 12.4073 +96.155 2.75796 13.2293 +95.9345 2.92608 14.0357 +95.8058 3.09682 14.8547 +96.4587 3.2943 15.802 +96.3142 3.46595 16.6254 +96.064 3.63363 17.4297 +95.905 3.80457 18.2496 +95.7386 3.97523 19.0682 +95.565 4.1456 19.8855 +96.2628 4.35538 20.8917 +95.196 4.48534 21.5151 +95.9729 4.70237 22.5562 +95.7682 4.8731 23.3751 +96.3307 5.08435 24.3885 +96.1096 5.25572 25.2105 +95.8812 5.42669 26.0306 +96.5107 5.64788 27.0915 +96.0737 5.80794 27.8593 +95.8217 5.97882 28.679 +95.5624 6.14925 29.4965 +96.1518 6.37597 30.5841 +95.8755 6.54698 31.4043 +96.3483 6.77063 32.4772 +96.0552 6.94197 33.299 +96.6004 7.1756 34.4197 +96.1962 7.34022 35.2093 +96.8123 7.58441 36.3806 +96.5773 7.764 37.2421 +96.9834 7.99687 38.3591 +96.8226 8.18491 39.2611 +96.4689 8.35704 40.0868 +96.9332 8.60178 41.2607 +96.6531 8.78237 42.127 +96.2739 8.95417 42.9511 +95.8874 9.1253 43.7719 +96.3058 9.37479 44.9687 +95.9013 9.54596 45.7897 +96.116 9.78013 46.913 +96.5851 10.0436 48.1768 +96.0633 10.2058 48.9549 +96.5062 10.4723 50.2332 +95.8789 10.6243 50.9623 +96.2082 10.8837 52.2067 +95.7391 11.0546 53.0266 +96.0422 11.3166 54.2829 +96.244 11.57 55.4988 +95.7456 11.741 56.319 +95.922 11.9964 57.5439 +96.0838 12.2533 58.7762 +95.5563 12.4239 59.5947 +95.7762 12.6937 60.8887 +95.063 12.8413 61.5965 +95.9196 13.2041 63.3369 +95.269 13.3629 64.0985 +95.4312 13.6374 65.4153 +95.5772 13.9135 66.7396 +95.6258 14.1791 68.0139 +95.7394 14.4581 69.3524 +95.1175 14.6281 70.1676 +95.2024 14.9088 71.5139 +95.1129 15.1657 72.7463 +95.0869 15.4361 74.0436 +95.1227 15.7205 75.4076 +95.0641 15.9932 76.7155 +95.7556 16.398 78.6574 +95.0507 16.5679 79.4724 +95.0179 16.8571 80.8594 +95.5667 17.2555 82.7708 +94.8253 17.4251 83.5841 +94.7401 17.7174 84.9861 +94.6372 18.0107 86.3932 +95.1691 18.4314 88.4113 +94.8809 18.6995 89.697 +94.7197 18.9965 91.1217 +94.6816 19.3232 92.6888 +94.5527 19.6366 94.1924 +94.8209 20.0392 96.1233 +94.5799 20.3405 97.5687 +94.866 20.7619 99.5899 +94.6502 21.0807 101.119 +94.2805 21.3696 102.505 +94.0258 21.6896 104.04 +94.2757 22.1335 106.169 +94.17 22.5023 107.938 +93.847 22.8254 109.488 +93.8851 23.2438 111.495 +94.0205 23.6956 113.662 +93.5639 24.0058 115.15 +93.7037 24.4771 117.411 +94.1754 25.0479 120.149 +93.7026 25.3777 121.731 +93.5656 25.8061 123.786 +93.1052 26.1532 125.451 +92.0995 26.3514 126.401 +115.059 33.5358 160.864 +115.094 34.1767 163.937 +115.138 34.8373 167.106 +114.968 35.4493 170.042 +114.973 36.132 173.317 +115.251 36.9206 177.099 +115.098 37.5918 180.319 +115.263 38.3869 184.133 +115.111 39.0982 187.545 +115.313 39.9523 191.642 +114.8 40.5803 194.654 +114.981 41.476 198.951 +115.045 42.3574 203.179 +114.136 42.9015 205.789 +111.922 42.9591 206.065 +109.342 42.867 205.623 +107.096 42.8964 205.764 +104.901 42.9395 205.971 +102.272 42.7946 205.276 +100.051 42.8093 205.346 +97.9207 42.8564 205.572 +95.6697 42.8434 205.51 +93.3867 42.807 205.335 +91.0743 42.7472 205.049 +91.1185 43.8095 210.144 +91.0021 44.8375 215.075 +90.9545 45.9438 220.382 +90.8923 47.0916 225.888 +90.8104 48.2804 231.59 +90.5986 49.4535 237.217 +90.3959 50.687 243.134 +90.0277 51.8848 248.879 +89.7266 53.1818 255.1 +89.4482 54.5587 261.705 +89.1514 55.9971 268.605 +89.039 57.6331 276.452 +88.9102 59.3507 284.691 +88.5844 61.0331 292.762 +88.6174 63.072 302.541 +88.1619 64.8793 311.211 +87.9985 67.0249 321.503 +87.7832 69.2735 332.289 +87.2612 71.4272 342.62 +86.795 73.7826 353.918 +86.6511 76.599 367.427 +86.2512 79.4005 380.866 +85.9299 82.5054 395.759 +82.4386 82.6954 396.671 +81.3419 85.4035 409.66 +80.8761 89.0568 427.185 +82.3092 95.2671 456.974 +83.8277 102.234 490.391 +82.4722 106.269 509.75 +92.9721 126.96 608.998 +87.693 127.343 610.835 +82.1271 127.312 610.687 +80.5434 133.875 642.168 +79.5139 142.429 683.197 +78.1455 151.739 727.856 +75.8332 160.729 770.981 +69.9425 163.156 782.62 +66.2979 171.921 824.665 +59.4116 173.397 831.743 +51.2258 170.929 819.907 +44.4385 173.052 830.089 +36.5879 171.024 820.365 +29.6157 173.082 830.233 +21.1719 165.008 791.506 +13.742 160.673 770.71 +7.00479 163.814 785.775 +5.17457e-14 172.473 827.313 +-7.2884 170.446 817.59 +-14.749 172.447 827.187 +-21.842 170.231 816.558 +-29.4796 172.286 826.417 +-36.4222 170.25 816.647 +-44.2501 172.318 826.57 +-50.9694 170.074 815.804 +-58.9582 172.073 825.395 +-65.5526 169.988 815.393 +-73.664 171.837 824.263 +-80.0216 169.607 813.565 +-88.3997 171.65 823.365 +-94.57 169.398 812.56 +-103.26 171.633 823.284 +-109.407 169.601 813.538 +-118.116 171.522 822.752 +-124.736 170.336 817.064 +-134.44 173.232 830.954 +-139.317 169.906 815.002 +-149.667 173.229 830.941 +-155.52 171.251 821.449 +-153.792 161.471 774.54 +-152.816 153.291 735.303 +-153.834 147.703 708.499 +-119.107 109.646 525.948 +-123.003 108.734 521.572 +-127.648 108.511 520.501 +-132.718 108.636 521.101 +-820.42 647.428 3105.56 +-848.072 645.942 3098.44 +-875.66 644.408 3091.07 +-903.181 642.824 3083.48 +-930.633 641.189 3075.64 +-958.014 639.508 3067.57 +-168.395 108.998 522.84 +-147.494 92.6426 444.385 +-150.307 91.6797 439.766 +-155.068 91.9101 440.871 +-1093.78 630.371 3023.74 +-1120.7 628.399 3014.28 +-468.122 255.526 1225.7 +-457.278 243.117 1166.18 +-451.273 233.805 1121.51 +-447.243 225.915 1083.66 +-445.214 219.36 1052.22 +-444.379 213.656 1024.86 +-445.124 208.925 1002.16 +-1332.59 610.84 2930.06 +-427.093 191.263 917.444 +-432.127 189.127 907.196 +-434.816 186.047 892.424 +-439.73 184 882.604 +-441.468 180.708 866.812 +-144.868 58.0257 278.336 +-145.866 57.1863 274.309 +-147.038 56.4377 270.719 +-150.353 56.5145 271.087 +-147.818 54.424 261.059 +-112.617 40.6233 194.861 +-111.1 39.2725 188.381 +-112.166 38.8621 186.412 +-112.793 38.311 183.769 +-114.375 38.0912 182.715 +-115.84 37.8341 181.481 +-117.776 37.7296 180.98 +-119.058 37.4157 179.474 +-121.702 37.5257 180.002 +-123.861 37.4767 179.767 +-128.064 38.0284 182.413 +-494.136 144.023 690.846 +-497.779 142.423 683.172 +-500.911 140.706 674.933 +-504.291 139.087 667.166 +-507.27 137.385 659.002 +-510.629 135.812 651.459 +-513.77 134.206 643.755 +-517.061 132.663 636.353 +-521.266 131.372 630.162 +-524.955 129.966 623.419 +-527.921 128.401 615.91 +-531.898 127.099 609.664 +-161.915 38.0135 182.342 +-165.257 38.1212 182.859 +-164.807 37.3553 179.185 +-170.316 37.9331 181.956 +-550.645 120.512 578.067 +-553.85 119.112 571.352 +-557.602 117.842 565.261 +-561.358 116.582 559.219 +-564.554 115.218 552.672 +-568.318 113.979 546.731 +-571.659 112.665 540.426 +-571.74 110.729 531.142 +-590.934 112.463 539.457 +-582.818 108.993 522.814 +-587.307 107.924 517.684 +-591.9 106.874 512.647 +-595.768 105.695 506.993 +-599.58 104.51 501.312 +-603.796 103.399 495.982 +-607.732 102.242 490.431 +-389.894 64.4361 309.085 +-388.174 63.015 302.268 +-388.095 61.8815 296.831 +-140.9 22.065 105.84 +-143.275 22.0343 105.694 +-143.408 21.6568 103.883 +-142.872 21.1847 101.618 +-142.633 20.7635 99.5977 +-142.041 20.298 97.3649 +-145.458 20.4026 97.8666 +-148.149 20.3939 97.8246 +-659.854 89.1342 427.556 +-382.518 50.697 243.182 +-381.382 49.5862 237.853 +-381.791 48.6888 233.549 +-379.084 47.4098 227.414 +-383.068 46.9747 225.327 +-386.182 46.4253 222.691 +-381.484 44.9499 215.614 +-381.477 44.0477 211.286 +-382.471 43.2677 207.545 +-383.164 42.4583 203.662 +-382.581 41.5156 199.141 +-723.091 76.8214 368.495 +-722.784 75.1602 360.526 +-408.896 41.6066 199.577 +-736.652 73.3259 351.727 +-406.524 39.5727 189.821 +-408.11 38.8386 186.3 +-406.298 37.7888 181.264 +-409.086 37.1716 178.304 +-405.616 35.994 172.655 +-405.114 35.0948 168.342 +-404.844 34.2236 164.163 +-403.047 33.2336 159.414 +-406.127 32.6493 156.611 +-407.041 31.888 152.959 +-406.422 31.0119 148.757 +-406.135 30.1682 144.71 +-405.053 29.2735 140.418 +-406.573 28.5708 137.048 +-406.167 27.7357 133.042 +-404.009 26.7904 128.507 +-386.351 24.8609 119.252 +-378.792 23.6348 113.371 +-380.556 23.0058 110.353 +-380.371 22.2597 106.774 +-381.309 21.5813 103.52 +-380.188 20.7904 99.7269 +-379.417 20.0257 96.0587 +-380.55 19.364 92.8848 +-380.877 18.6617 89.5159 +-380.589 17.9322 86.0166 +-381.146 17.2449 82.7196 +-380.108 16.489 79.094 +-382.367 15.8765 76.1561 +-380.97 15.1132 72.4944 +-379.831 14.3672 68.9159 +-381.613 13.7327 65.8725 +-380.114 12.9818 62.2705 +-377.494 12.2022 58.5309 +-379.288 11.5686 55.4919 +-379.372 10.8813 52.195 +-379.823 10.2052 48.9522 +-378.458 9.48363 45.4908 +-379.743 8.83005 42.3557 +-380.106 8.1534 39.11 +-379.943 7.46634 35.8143 +-378.454 6.75739 32.4136 +-378.629 6.08152 29.1716 +-378.975 5.40838 25.9427 +-379.69 4.73947 22.7341 +-379.379 4.05772 19.4639 +-379.239 3.37924 16.2094 +-377.47 2.69016 12.9041 +-146.65 0.783723 3.75934 +-145.478 0.518242 2.48588 +-143.895 0.256281 1.22932 +96 0 0 +95.9963 0.178364 0.818539 +95.9854 0.356715 1.63702 +95.9671 0.535039 2.45537 +96.9409 0.720751 3.30763 +95.9086 0.891549 4.09145 +96.9669 1.08197 4.9653 +95.8209 1.24779 5.72629 +96.7637 1.44063 6.61124 +96.701 1.62035 7.43604 +96.6309 1.79996 8.26027 +96.653 1.98147 9.09324 +96.5681 2.16097 9.91699 +96.4758 2.3403 10.74 +96.5747 2.52466 11.586 +96.2693 2.69843 12.3835 +96.155 2.87719 13.2039 +96.0334 3.05574 14.0232 +96.5959 3.25736 14.9485 +95.5711 3.40508 15.6264 +96.3142 3.6158 16.5934 +96.064 3.79072 17.3962 +95.905 3.96906 18.2146 +95.7386 4.14709 19.0316 +95.565 4.32483 19.8473 +95.3841 4.50222 20.6614 +96.0729 4.72237 21.6717 +95.8757 4.90068 22.4899 +95.6712 5.07863 23.3066 +96.3307 5.30417 24.3416 +96.1096 5.48295 25.162 +95.8812 5.6613 25.9805 +96.5107 5.89205 27.0395 +96.2655 6.07113 27.8613 +96.013 6.24976 28.6811 +96.4208 6.47274 29.7044 +96.1518 6.65163 30.5253 +95.8755 6.83002 31.344 +96.4429 7.07029 32.4466 +96.0552 7.24209 33.235 +95.7547 7.42029 34.0528 +96.1962 7.65756 35.1417 +95.8787 7.836 35.9605 +96.4843 8.09187 37.1348 +96.9834 8.3426 38.2854 +96.7302 8.53064 39.1483 +96.4689 8.71834 40.0097 +97.025 8.98215 41.2204 +96.6531 9.16206 42.046 +96.4559 9.35896 42.9496 +95.8874 9.51981 43.6878 +96.3058 9.7801 44.8823 +95.9013 9.95866 45.7018 +96.2054 10.2125 46.8665 +95.7832 10.3908 47.685 +96.152 10.6569 48.9059 +96.4179 10.9151 50.0909 +95.9668 11.0938 50.911 +96.2082 11.3543 52.1064 +95.7391 11.5326 52.9247 +95.9556 11.7952 54.1298 +95.5547 11.9838 54.9955 +95.8313 12.2596 56.2611 +95.2399 12.426 57.0249 +95.4054 12.6928 58.249 +95.3876 12.9382 59.3753 +95.6084 13.2193 60.6652 +95.8135 13.5022 61.9636 +95.2564 13.6797 62.7781 +95.269 13.9406 63.9754 +95.4312 14.227 65.2896 +95.5772 14.515 66.6114 +95.6258 14.7921 67.8832 +95.659 15.0706 69.161 +95.0376 15.2477 69.974 +95.1231 15.5404 71.317 +95.7433 15.9262 73.0878 +95.0869 16.1035 73.9013 +95.7444 16.5073 75.7546 +95.0641 16.6846 76.568 +95.6023 17.0796 78.3806 +94.8987 17.2565 79.1928 +95.0179 17.5858 80.704 +95.5667 18.0015 82.6117 +95.4941 18.3066 84.0119 +95.4037 18.6128 85.417 +95.1491 18.891 86.6936 +95.1691 19.2283 88.2414 +95.0248 19.5375 89.6604 +94.8623 19.8476 91.0835 +94.6816 20.1586 92.5107 +95.1835 20.6223 94.6386 +94.9598 20.9362 96.0792 +94.5111 21.2045 97.3104 +94.3204 21.5349 98.8269 +94.6502 21.992 100.925 +94.3474 22.3093 102.381 +94.5559 22.7549 104.426 +94.2101 23.0743 105.891 +94.17 23.4752 107.731 +93.7827 23.796 109.203 +93.9488 24.2651 111.356 +94.1463 24.753 113.595 +93.6262 25.0603 115.005 +93.5805 25.5019 117.032 +93.6275 25.9788 119.22 +93.7026 26.4748 121.497 +93.4467 26.8875 123.391 +93.2227 27.3184 125.368 +92.0995 27.4906 126.159 +114.945 34.9508 160.394 +115.604 35.8122 164.347 +115.641 36.5022 167.514 +115.079 37.0175 169.879 +115.463 37.8548 173.721 +115.143 38.481 176.595 +115.151 39.2351 180.056 +115.315 40.0648 183.863 +115.008 40.7519 187.016 +115.363 41.6979 191.358 +114.9 42.3717 194.45 +114.882 43.2321 198.398 +115.288 44.2819 203.216 +114.804 45.0182 206.595 +111.875 44.7974 205.582 +109.758 44.8902 206.008 +107.096 44.751 205.369 +104.901 44.7959 205.575 +102.272 44.6447 204.881 +100.438 44.833 205.745 +97.9207 44.7093 205.177 +95.6697 44.6956 205.115 +93.3867 44.6577 204.941 +91.5528 44.8295 205.729 +91.1576 45.7231 209.83 +91.1552 46.8545 215.022 +90.9545 47.9301 219.958 +90.8557 49.1077 225.363 +90.7746 50.3479 231.054 +90.5986 51.5915 236.761 +90.0881 52.6982 241.84 +90.0945 54.1682 248.586 +89.7591 55.501 254.702 +89.3213 56.8368 260.832 +89.275 58.499 268.46 +89.039 60.1247 275.921 +88.7056 61.7741 283.491 +88.6412 63.7127 292.387 +88.2866 65.5531 300.833 +87.9749 67.5406 309.954 +88.0244 69.9431 320.979 +87.7332 72.2271 331.461 +87.1887 74.4533 341.677 +86.8417 77.014 353.428 +86.6736 79.9315 366.817 +86.1646 82.75 379.752 +84.5993 84.7396 388.882 +81.2424 85.0187 390.163 +81.3228 89.0749 408.778 +80.293 92.237 423.289 +81.8578 98.8406 453.594 +83.7452 106.549 488.967 +82.4566 110.843 508.674 +90.3411 128.701 590.626 +87.693 132.849 609.662 +82.2837 133.07 610.677 +80.446 139.494 640.158 +79.5139 148.586 681.884 +77.466 156.923 720.141 +77.1079 170.497 782.435 +70.0906 170.57 782.771 +63.7009 172.328 790.839 +56.1191 170.868 784.139 +49.5043 172.326 790.83 +41.9577 170.455 782.245 +35.2445 171.867 788.723 +27.944 170.373 781.865 +21.0934 171.504 787.055 +13.9235 169.833 779.389 +7.03708 171.683 787.881 +5.03007e-14 174.905 802.665 +-7.02835 171.471 786.903 +-14.3284 174.772 802.054 +-21.0594 171.227 785.785 +-28.6769 174.841 802.371 +-35.1354 171.335 786.282 +-42.9731 174.58 801.175 +-49.138 171.051 784.979 +-57.2561 174.33 800.028 +-63.2145 171.012 784.8 +-71.5984 174.239 799.61 +-77.3092 170.942 784.478 +-85.8388 173.883 797.976 +-91.2418 170.502 782.458 +-100.372 174.045 798.718 +-105.491 170.601 782.914 +-114.748 173.835 797.756 +-119.918 170.836 783.992 +-130.279 175.128 803.688 +-134.151 170.679 783.273 +-143.902 173.757 797.398 +-150.126 172.458 791.433 +-154.708 169.455 777.655 +-152.935 160.044 734.465 +-152.524 152.777 701.117 +-119.366 114.636 526.082 +-123.206 113.622 521.426 +-127.835 113.368 520.262 +-133.154 113.704 521.806 +-820.42 675.419 3099.59 +-848.072 673.869 3092.48 +-875.66 672.268 3085.13 +-903.181 670.615 3077.55 +-930.633 668.91 3069.73 +-958.014 667.156 3061.67 +-168.846 114.015 523.234 +-147.772 96.8301 444.367 +-150.974 96.0672 440.867 +-155.003 95.8435 439.84 +-1093.78 657.624 3017.93 +-1120.7 655.567 3008.49 +-467.527 266.235 1221.79 +-457.278 253.628 1163.94 +-450.723 243.617 1118 +-447.58 235.861 1082.4 +-445.214 228.843 1050.2 +-444.847 223.127 1023.96 +-445.642 218.213 1001.41 +-446.149 213.35 979.095 +-447.578 209.103 959.603 +-429.93 196.3 900.848 +-433.309 193.418 887.623 +-437.1 190.807 875.64 +-438.657 187.32 859.638 +-145.005 60.5912 278.062 +-145.543 59.5265 273.176 +-147.414 59.0283 270.889 +-150.353 58.9578 270.566 +-456.4 175.303 804.489 +-112.617 42.3796 194.486 +-111.2 41.0072 188.188 +-111.709 40.3772 185.297 +-113.102 40.0768 183.918 +-114.584 39.8106 182.697 +-115.575 39.3795 180.718 +-117.454 39.253 180.138 +-119.548 39.194 179.867 +-121.592 39.1125 179.493 +-123.805 39.0793 179.341 +-128.631 39.8479 182.868 +-494.652 150.407 690.24 +-498.592 148.824 682.973 +-501.146 146.858 673.953 +-504.529 145.168 666.198 +-507.631 143.426 658.204 +-511.481 141.92 651.292 +-514.262 140.142 643.133 +-514.82 137.799 632.378 +-525.923 138.276 634.57 +-524.892 135.569 622.146 +-528.179 134.018 615.027 +-532.482 132.74 609.162 +-162.44 39.7855 182.582 +-164.727 39.6416 181.921 +-166.413 39.3499 180.582 +-169.911 39.4787 181.174 +-550.645 125.722 576.956 +-554.745 124.462 571.176 +-557.602 122.937 564.175 +-561.569 121.668 558.354 +-564.625 120.214 551.679 +-568.746 118.996 546.09 +-572.307 117.669 539.998 +-572.393 115.648 530.727 +-592.031 117.543 539.42 +-583.85 113.906 522.734 +-587.307 112.589 516.689 +-592.199 111.55 511.921 +-596.447 110.39 506.595 +-600.264 109.153 500.919 +-604.332 107.965 495.468 +-608.889 106.865 490.421 +-612.08 105.529 484.289 +-387.939 65.6998 301.506 +-389.435 64.7798 297.284 +-141.772 23.1616 106.292 +-143.036 22.9484 105.314 +-143.73 22.6438 103.916 +-142.468 22.038 101.136 +-142.47 21.6365 99.293 +-142.614 21.2611 97.5701 +-146.447 21.4293 98.3423 +-148.149 21.2756 97.6367 +-660.104 93.0228 426.895 +-381.092 52.6916 241.81 +-382.141 51.8328 237.868 +-383.318 50.9969 234.032 +-382.921 49.96 229.274 +-684.191 87.5277 401.677 +-690.854 86.6422 397.614 +-381.484 46.8933 215.2 +-384.175 46.2771 212.372 +-381.422 45.0144 206.577 +-384.658 44.4665 204.063 +-383.817 43.4503 199.4 +-727.083 80.5851 369.817 +-722.963 78.429 359.922 +-407.732 43.2819 198.627 +-738 76.6361 351.694 +-407.337 41.3662 189.835 +-408.564 40.5626 186.148 +-404.66 39.2635 180.186 +-406.254 38.5102 176.729 +-411.118 38.0595 174.66 +-404.194 36.5289 167.636 +-404.013 35.6297 163.51 +-404.53 34.7981 159.694 +-404.918 33.9592 155.844 +-405.174 33.1142 151.966 +-404.361 32.1887 147.719 +-406.511 31.5016 144.566 +-405.713 30.5887 140.376 +-405.344 29.716 136.371 +-405.314 28.8739 132.507 +-401.631 27.7842 127.506 +-385.683 25.8908 118.817 +-380.036 24.7377 113.525 +-381.706 24.073 110.475 +-380.371 23.222 106.569 +-381.309 22.5143 103.321 +-379.512 21.6507 99.3584 +-381.353 20.9981 96.3634 +-380.938 20.2218 92.8008 +-380.877 19.4685 89.3439 +-380.784 18.717 85.8953 +-379.779 17.9259 82.2646 +-380.793 17.2329 79.0842 +-378.839 16.4101 75.3084 +-380.381 15.7422 72.2432 +-381.208 15.0426 69.0328 +-380.431 14.282 65.5423 +-380.114 13.543 62.1509 +-380.062 12.8163 58.8158 +-380.079 12.0939 55.5008 +-379.372 11.3517 52.0947 +-379.525 10.6381 48.8198 +-379.947 9.93256 45.582 +-378.551 9.18286 42.1415 +-379.211 8.48586 38.9429 +-378.649 7.76261 35.6238 +-379.65 7.0718 32.4535 +-378.33 6.33942 29.0925 +-378.576 5.63626 25.8656 +-378.293 4.92617 22.6069 +-379.679 4.23649 19.4419 +-378.939 3.52254 16.1655 +-378.869 2.81688 12.9271 +-146.65 0.817606 3.75211 +-146.378 0.54399 2.49645 +-144.894 0.269217 1.23548 +95.1 0 0 +95.8963 0.185548 0.816046 +95.8854 0.371083 1.63203 +96.9668 0.562971 2.47596 +96.841 0.749788 3.29759 +95.9086 0.928424 4.08324 +96.8671 1.12556 4.95024 +96.8191 1.31293 5.77433 +95.8659 1.48629 6.53676 +96.701 1.68737 7.42111 +96.6309 1.87441 8.2437 +96.653 2.06342 9.07499 +96.5681 2.25034 9.89709 +96.4758 2.43709 10.7184 +96.5747 2.62908 11.5628 +96.2693 2.81004 12.3587 +96.056 2.99311 13.1638 +95.9345 3.17884 13.9807 +95.707 3.36087 14.7812 +95.5711 3.54591 15.5951 +96.2157 3.76149 16.5432 +96.064 3.94751 17.3613 +95.905 4.13322 18.178 +95.7386 4.31861 18.9934 +95.3694 4.49448 19.7669 +95.3841 4.68844 20.6199 +96.1703 4.92268 21.6501 +95.8757 5.10338 22.4448 +96.5444 5.33695 23.4721 +96.3307 5.52355 24.2928 +96.2062 5.71547 25.1368 +95.9776 5.90137 25.9544 +96.5107 6.13575 26.9852 +96.3614 6.32853 27.8331 +96.013 6.50825 28.6235 +95.5624 6.68044 29.3808 +96.1518 6.92674 30.464 +95.8755 7.11252 31.2811 +96.3483 7.35549 32.3497 +96.1494 7.54903 33.2009 +95.7547 7.7272 33.9845 +96.1962 7.97428 35.0712 +96.8123 8.23956 36.2379 +96.5773 8.43467 37.096 +96.2417 8.62122 37.9164 +96.7302 8.88347 39.0698 +96.4689 9.07893 39.9294 +96.9332 9.34481 41.0988 +95.8309 9.45986 41.6048 +96.2739 9.72765 42.7825 +95.8874 9.91356 43.6002 +96.4864 10.2037 44.8762 +96.6204 10.4483 45.952 +96.2054 10.6349 46.7725 +95.7832 10.8206 47.5893 +96.152 11.0976 48.8077 +96.5062 11.3769 50.0361 +95.9668 11.5526 50.8089 +96.2956 11.8346 52.049 +95.7391 12.0096 52.8185 +96.1288 12.3052 54.1187 +96.244 12.5695 55.281 +95.6599 12.7438 56.0477 +95.922 13.0327 57.3181 +95.9142 13.2883 58.4422 +95.3876 13.4733 59.2562 +95.6084 13.766 60.5435 +95.8135 14.0607 61.8392 +95.9196 14.3447 63.0883 +95.269 14.5172 63.847 +95.4312 14.8154 65.1586 +95.6586 15.1282 66.5344 +95.5449 15.3909 67.6897 +95.659 15.6939 69.0222 +95.0376 15.8784 69.8336 +95.0437 16.1696 71.1145 +95.0341 16.4621 72.4009 +95.0869 16.7695 73.753 +95.7444 17.1901 75.6026 +95.0641 17.3747 76.4144 +95.0661 17.6862 77.7845 +95.0507 17.9991 79.1605 +95.0179 18.3132 80.5421 +95.5667 18.7461 82.446 +95.4941 19.0638 83.8433 +95.4037 19.3827 85.2456 +95.2954 19.7026 86.6527 +95.024 19.993 87.9301 +94.8809 20.3148 89.345 +94.8623 20.6685 90.9008 +94.6816 20.9924 92.3251 +95.1835 21.4752 94.4487 +94.8209 21.7702 95.7461 +94.7176 22.1297 97.3273 +94.3204 22.4256 98.6286 +94.6502 22.9016 100.722 +94.3474 23.232 102.175 +93.9595 23.5466 103.559 +94.2757 24.0455 105.753 +94.2999 24.4798 107.663 +93.847 24.7971 109.058 +94.5212 25.4225 111.809 +94.0834 25.7595 113.291 +94.1865 26.2531 115.462 +93.6421 26.5739 116.873 +93.6884 27.0708 119.058 +93.7026 27.5699 121.253 +93.6251 28.053 123.378 +93.5166 28.5381 125.511 +92.6221 28.79 126.619 +104.276 33.0183 145.216 +115.604 37.2934 164.018 +115.138 37.8466 166.451 +114.582 38.3822 168.806 +114.919 39.2345 172.555 +115.197 40.0912 176.323 +115.098 40.8391 179.612 +115.263 41.7029 183.411 +115.008 42.4374 186.641 +115.363 43.4225 190.974 +114.95 44.1433 194.144 +114.882 45.0202 198 +114.948 45.9775 202.211 +114.709 46.8413 206.01 +112.298 46.8265 205.945 +110.035 46.8651 206.114 +107.505 46.7797 205.739 +105.303 46.8274 205.948 +103.061 46.8498 206.047 +100.395 46.6673 205.244 +98.2165 46.699 205.384 +96.0015 46.7057 205.413 +93.7121 46.6669 205.242 +91.792 46.8056 205.853 +91.4311 47.757 210.037 +91.0404 48.731 214.321 +90.8421 49.8509 219.246 +90.8557 51.1389 224.91 +90.6671 52.3683 230.317 +90.6337 53.7462 236.378 +90.4301 55.0863 242.271 +89.8608 56.2622 247.443 +89.8568 57.8595 254.468 +89.4799 59.2927 260.771 +89.0896 60.7921 267.366 +89.0691 62.6326 275.46 +88.881 64.4564 283.481 +88.6696 66.3691 291.894 +88.3969 68.3497 300.604 +88.2154 70.5263 310.177 +87.9467 72.7718 320.053 +87.7332 75.2145 330.796 +87.1887 77.5327 340.992 +87.0284 80.3718 353.478 +86.5387 83.1078 365.511 +82.9829 82.9907 364.996 +82.1251 85.6637 376.752 +81.2823 88.5786 389.572 +80.9793 92.3673 406.234 +80.3476 96.1173 422.727 +81.7536 102.798 452.107 +83.8607 111.109 488.66 +83.3952 116.741 513.432 +86.6902 128.608 565.621 +88.0827 138.958 611.142 +82.4664 138.881 610.805 +80.4338 145.241 638.776 +78.28 152.331 669.955 +76.4835 161.34 709.581 +74.5872 171.744 755.338 +69.4544 176.013 774.11 +60.798 171.277 753.284 +55.2471 175.171 770.407 +47.1722 171 752.063 +41.3768 175.048 769.867 +33.6654 170.957 751.874 +27.5427 174.871 769.089 +20.1824 170.884 751.553 +13.749 174.641 768.076 +6.70111 170.249 748.76 +4.81638e-14 174.401 767.023 +-6.69849 170.182 748.467 +-13.7228 174.308 766.613 +-20.0515 169.776 746.68 +-27.4205 174.096 765.678 +-33.4517 169.872 747.101 +-41.1465 174.074 765.582 +-46.7754 169.561 745.737 +-54.8077 173.777 764.279 +-60.1938 169.576 745.799 +-68.5829 173.804 764.396 +-73.5808 169.427 745.147 +-82.3266 173.666 763.79 +-87.0533 169.403 745.041 +-96.0818 173.497 763.047 +-100.388 169.062 743.542 +-109.849 173.297 762.166 +-113.695 168.67 741.817 +-123.724 173.196 761.721 +-127.466 168.882 742.75 +-137.616 173.04 761.035 +-140.923 168.581 741.427 +-150.129 171.24 753.121 +-152.516 166.207 730.984 +-152.462 159.031 699.424 +-119.648 119.659 526.264 +-123.588 118.688 521.996 +-128.418 118.596 521.588 +-133.517 118.73 522.178 +-820.42 703.354 3093.38 +-848.072 701.74 3086.28 +-875.66 700.073 3078.94 +-903.181 698.352 3071.38 +-930.633 696.576 3063.57 +-958.014 694.749 3055.53 +-169.087 118.9 522.928 +-147.556 100.687 442.826 +-151.45 100.356 441.37 +-1066.66 686.83 3020.7 +-1093.78 684.823 3011.88 +-1120.7 682.681 3002.46 +-483.601 286.778 1261.26 +-455.844 263.289 1157.95 +-450.65 253.651 1115.57 +-447.243 245.43 1079.41 +-445.214 238.308 1048.09 +-445.433 232.664 1023.26 +-445.642 227.238 999.401 +-446.353 222.274 977.569 +-447.578 217.751 957.677 +-449.159 213.561 939.251 +-450.659 209.482 921.311 +-1436.24 652.889 2871.43 +-450.526 200.345 881.125 +-144.823 63.0184 277.157 +-145.22 61.8508 272.022 +-147.038 61.3129 269.656 +-151.068 61.6885 271.308 +-457.127 182.844 804.154 +-112.273 43.9974 193.502 +-111.25 42.7225 187.895 +-112.471 42.3337 186.185 +-113.102 41.7344 183.549 +-114.688 41.4951 182.497 +-116.211 41.2339 181.348 +-118.26 41.157 181.01 +-119.93 40.9453 180.079 +-121.757 40.7856 179.377 +-124.812 41.0264 180.436 +-129.424 41.7519 183.626 +-495.226 156.809 689.653 +-498.824 155.051 681.92 +-502.262 153.273 674.099 +-505.837 151.565 666.586 +-508.594 149.642 658.129 +-511.847 147.895 650.449 +-515.001 146.148 642.765 +-514.571 143.429 630.803 +-532.468 145.787 641.178 +-526.037 141.484 622.252 +-529.078 139.798 614.838 +-165.739 43.0252 189.226 +-163.687 41.749 183.613 +-165.257 41.4142 182.141 +-166.279 40.9444 180.075 +-548.241 132.652 583.41 +-551.327 131.084 576.511 +-555.364 129.755 570.666 +-558.505 128.229 563.955 +-562.62 126.938 558.277 +-565.827 125.452 551.744 +-569.245 124.027 545.473 +-573.026 122.689 539.593 +-573.481 120.66 530.668 +-591.738 122.344 538.071 +-585.693 118.992 523.332 +-588.645 117.513 516.827 +-593.248 116.37 511.798 +-596.221 114.912 505.388 +-601.633 113.927 501.054 +-605.405 112.63 495.352 +-609.583 111.412 489.995 +-613.246 110.103 484.237 +-389.582 68.7069 302.175 +-390.144 67.5819 297.228 +-142.645 24.2678 106.731 +-142.556 23.8175 104.75 +-143.569 23.5539 103.591 +-142.306 22.9234 100.818 +-141.9 22.4414 98.6979 +-141.959 22.0387 96.9269 +-146.694 22.3533 98.3107 +-148.729 22.2423 97.8222 +-661.105 97.0173 426.685 +-382.937 55.1366 242.493 +-380.96 53.8099 236.658 +-384.335 53.2469 234.182 +-383.603 52.1191 229.221 +-684.962 91.2507 401.324 +-691.63 90.327 397.261 +-382.177 48.9215 215.158 +-382.608 47.9945 211.081 +-382.996 47.0697 207.014 +-385.449 46.401 204.073 +-715.806 84.3851 371.128 +-734.622 84.7884 372.902 +-721.804 81.542 358.625 +-404.242 44.6863 196.532 +-738.809 79.8931 351.373 +-405.171 42.8478 188.446 +-751.51 77.6968 341.713 +-405.934 41.0162 180.391 +-404.518 39.9316 175.62 +-405.157 39.0589 171.782 +-406.403 38.2477 168.215 +-405.398 37.2307 163.742 +-407.59 36.5114 160.578 +-408.639 35.6888 156.961 +-406.388 34.5871 152.115 +-406.797 33.7218 148.31 +-406.699 32.8196 144.342 +-407.504 31.9946 140.713 +-406.951 31.0679 136.637 +-405.788 30.1034 132.396 +-396.876 28.5909 125.744 +-385.016 26.9151 118.374 +-380.131 25.7673 113.326 +-381.131 25.0308 110.086 +-381.333 24.2435 106.624 +-381.019 23.4278 103.036 +-381.348 22.6553 99.6388 +-381.741 21.8888 96.2677 +-381.229 21.0743 92.6854 +-380.294 20.2427 89.0282 +-380.199 19.4613 85.5913 +-379.584 18.6577 82.0573 +-382.26 18.0148 79.2297 +-379.427 17.1154 75.274 +-380.086 16.3806 72.0424 +-381.503 15.6769 68.9476 +-379.446 14.8342 65.2414 +-380.41 14.1142 62.0745 +-379.766 13.336 58.6521 +-378.595 12.545 55.1732 +-379.966 11.8398 52.0716 +-380.219 11.0984 48.811 +-378.855 10.3136 45.3597 +-378.849 9.57021 42.0901 +-378.316 8.81598 38.773 +-379.047 8.09219 35.5897 +-379.849 7.36815 32.4054 +-379.626 6.62423 29.1336 +-378.077 5.86164 25.7797 +-378.293 5.12992 22.5615 +-379.979 4.41519 19.4182 +-378.24 3.66147 16.1033 +-379.369 2.93724 12.9181 +-148.349 0.861289 3.78798 +-145.378 0.56262 2.47442 +-145.494 0.281514 1.23811 +96 0 0 +96.8963 0.194914 0.82283 +95.8854 0.385791 1.62862 +95.9671 0.579252 2.44532 +95.9415 0.772266 3.26013 +96.0085 0.966228 4.07894 +95.8684 1.15811 4.88895 +96.8191 1.36497 5.76225 +96.7637 1.55967 6.58417 +96.8007 1.75606 7.41323 +96.6309 1.9487 8.22645 +96.653 2.14521 9.05601 +96.5681 2.33954 9.87638 +96.6745 2.53892 10.7181 +96.5747 2.73328 11.5386 +96.2693 2.92142 12.3328 +96.155 3.11495 13.1498 +95.9345 3.30484 13.9514 +96.5959 3.52654 14.8873 +95.5711 3.68646 15.5624 +96.2157 3.91058 16.5085 +95.8674 4.09558 17.2895 +95.905 4.29704 18.14 +95.5427 4.48061 18.915 +95.565 4.68221 19.766 +95.3841 4.87427 20.5768 +96.0729 5.11261 21.5829 +95.6812 5.29489 22.3524 +95.6712 5.49831 23.2112 +95.4594 5.69055 24.0227 +96.1096 5.93603 25.059 +95.8812 6.12913 25.8742 +96.3184 6.36625 26.8752 +96.2655 6.57282 27.7472 +96.013 6.76621 28.5636 +95.7532 6.9591 29.3779 +96.1518 7.20129 30.4003 +95.8755 7.39443 31.2156 +96.4429 7.65455 32.3138 +96.1494 7.84824 33.1314 +95.7547 8.03348 33.9134 +96.2899 8.29842 35.0318 +95.8787 8.48353 35.8133 +96.5773 8.76899 37.0184 +96.2417 8.96293 37.8371 +96.7302 9.23557 38.9881 +96.4689 9.43878 39.8459 +96.1996 9.64167 40.7024 +96.6531 9.91918 41.8739 +96.2739 10.1132 42.693 +95.8874 10.3065 43.5089 +96.2156 10.5784 44.6567 +95.9013 10.7816 45.5146 +96.2054 11.0564 46.6746 +95.7832 11.2495 47.4898 +96.152 11.5375 48.7056 +96.4179 11.817 49.8858 +95.9668 12.0105 50.7026 +96.2956 12.3037 51.9401 +95.7391 12.4856 52.708 +96.0422 12.7814 53.9568 +95.4685 12.9624 54.721 +95.6599 13.2489 55.9304 +95.7515 13.5251 57.0965 +95.4054 13.7417 58.0105 +95.3876 14.0074 59.1322 +95.6084 14.3117 60.4168 +95.7301 14.6052 61.6561 +95.2564 14.8101 62.5211 +95.269 15.0926 63.7134 +95.5131 15.4158 65.0781 +95.4958 15.7011 66.2822 +95.5449 16.0009 67.5481 +95.659 16.3159 68.8778 +95.0376 16.5077 69.6875 +95.0437 16.8105 70.9657 +95.8221 17.2565 72.8484 +95.0869 17.4342 73.5988 +94.9672 17.7264 74.8321 +95.6043 18.166 76.6879 +95.0661 18.3872 77.6218 +95.7351 18.8472 79.5637 +95.6972 19.1752 80.9482 +95.5667 19.4891 82.2735 +95.4941 19.8194 83.6679 +95.2562 20.1198 84.9358 +95.2954 20.4835 86.4714 +95.1691 20.8172 87.8801 +95.0248 21.152 89.2933 +94.8623 21.4877 90.7106 +94.5402 21.7918 91.9944 +95.0433 22.2935 94.1124 +94.8209 22.6331 95.5458 +94.7176 23.0069 97.1237 +94.3204 23.3145 98.4223 +94.7177 23.8262 100.583 +94.3474 24.1528 101.961 +94.4896 24.618 103.925 +94.3413 25.0158 105.605 +94.2349 25.4326 107.364 +93.847 25.7799 108.83 +94.0124 26.288 110.975 +94.1463 26.7985 113.13 +93.6262 27.1312 114.534 +93.7037 27.6454 116.705 +93.6275 28.1255 118.732 +93.6424 28.6442 120.922 +93.1492 29.0167 122.494 +93.6342 29.7063 125.406 +92.0414 29.7434 125.562 +97.2786 32.0234 135.187 +115.094 38.6005 162.953 +115.138 39.3467 166.102 +115.465 40.2111 169.751 +115.355 40.9443 172.847 +115.09 41.6413 175.789 +115.045 42.4382 179.153 +114.793 43.179 182.281 +114.956 44.0999 186.168 +114.754 44.9053 189.568 +114.8 45.833 193.485 +115.129 46.9049 198.009 +114.948 47.7999 201.788 +114.661 48.6777 205.493 +112.767 48.886 206.373 +110.496 48.9271 206.546 +107.914 48.8187 206.089 +105.66 48.8482 206.213 +103.456 48.8932 206.403 +101.213 48.9123 206.484 +98.5546 48.7171 205.66 +96.3747 48.7457 205.78 +94.1189 48.727 205.701 +92.2705 48.9146 206.494 +91.4702 49.6711 209.687 +91.1935 50.7476 214.231 +90.9919 51.9123 219.148 +90.6724 53.0584 223.986 +89.9862 54.035 228.109 +89.8632 55.4014 233.878 +90.0881 57.053 240.85 +90.0611 58.6227 247.476 +89.8894 60.1747 254.028 +89.353 61.5554 259.857 +88.9969 63.1358 266.528 +89.039 65.0932 274.792 +88.7933 66.9451 282.609 +88.4992 68.867 290.723 +88.3418 71.0144 299.788 +88.1619 73.2774 309.341 +87.9726 75.6784 319.477 +87.5078 77.9949 329.256 +87.2128 80.6282 340.373 +85.3476 81.9434 345.925 +83.9517 83.819 353.843 +81.9007 85.1548 359.482 +81.834 88.7435 374.632 +81.382 92.2024 389.233 +81.1701 96.2545 406.339 +80.4752 100.086 422.513 +81.2326 106.191 448.287 +83.8442 115.49 487.541 +83.4265 121.414 512.55 +83.9853 129.533 546.826 +86.6074 142.046 599.65 +81.7094 143.06 603.931 +80.3241 150.792 636.571 +77.4876 156.765 661.786 +78.3754 171.885 725.613 +71.5009 171.164 722.57 +66.6393 175.572 741.179 +58.1068 170.184 718.435 +52.6034 173.399 732.006 +45.121 170.047 717.855 +39.4299 173.423 732.107 +32.1649 169.811 716.86 +26.2409 173.21 731.207 +19.2689 169.615 716.033 +13.2394 174.833 738.059 +6.44891 170.335 719.073 +4.59105e-14 172.831 729.609 +-6.41575 169.46 715.375 +-13.0596 172.459 728.039 +-19.206 169.062 713.698 +-26.1258 172.45 727.998 +-32.0297 169.097 713.846 +-39.1787 172.318 727.443 +-44.8096 168.874 712.902 +-52.1778 171.996 726.085 +-57.6125 168.737 712.323 +-65.3232 172.105 726.542 +-70.4179 168.571 711.625 +-78.3336 171.793 725.225 +-83.227 168.377 710.803 +-91.402 171.589 724.364 +-96.0803 168.222 710.151 +-104.63 171.606 724.436 +-109.009 168.129 709.757 +-117.78 171.409 723.606 +-122.086 168.165 709.909 +-130.931 171.159 722.549 +-135.055 167.965 709.068 +-145.912 173.027 730.436 +-150.064 170.017 717.727 +-152.524 165.402 698.246 +-120.102 124.874 527.159 +-123.791 123.595 521.757 +-128.838 123.7 522.2 +-134.001 123.883 522.974 +-820.42 731.232 3086.9 +-848.072 729.554 3079.82 +-875.66 727.821 3072.5 +-903.181 726.032 3064.95 +-930.633 724.186 3057.16 +-958.014 722.286 3049.14 +-169.508 123.921 523.133 +-147.339 104.525 441.253 +-151.989 104.705 442.015 +-1066.66 714.053 3014.38 +-1093.78 711.967 3005.57 +-1120.7 709.74 2996.17 +-476.247 293.61 1239.48 +-455.056 273.252 1153.54 +-450.137 263.405 1111.97 +-446.943 254.987 1076.43 +-445.214 247.754 1045.9 +-445.59 241.968 1021.47 +-445.642 236.245 997.311 +-446.8 231.317 976.507 +-448.159 226.676 956.914 +-449.539 222.214 938.08 +-451.348 218.118 920.788 +-453.626 214.385 905.027 +-456.237 210.927 890.429 +-145.504 65.8243 277.878 +-145.312 64.3431 271.625 +-146.945 63.7026 268.921 +-151.212 64.1945 270.998 +-453.976 188.781 796.94 +-111.288 45.34 191.403 +-111.5 44.5157 187.923 +-112.42 43.9918 185.712 +-113.669 43.6059 184.083 +-114.845 43.1986 182.363 +-116.635 43.0246 181.629 +-118.367 42.8273 180.796 +-120.311 42.7035 180.273 +-122.751 42.7482 180.462 +-125.595 42.9202 181.188 +-492.66 165.23 697.522 +-496.086 163.308 689.407 +-499.927 161.553 681.999 +-502.792 159.516 673.398 +-506.373 157.739 665.895 +-509.136 155.739 657.452 +-512.394 153.922 649.784 +-515.555 152.104 642.11 +-516.127 149.564 631.387 +-533.538 151.87 641.122 +-526.673 147.27 621.7 +-529.914 145.569 614.521 +-163.661 44.1695 186.462 +-162.768 43.1601 182.201 +-166.185 43.2973 182.78 +-166.279 42.5673 179.698 +-549.322 138.182 583.337 +-552.555 136.583 576.587 +-556.672 135.215 570.814 +-559.617 133.577 563.895 +-562.97 132.051 557.456 +-566.534 130.588 551.278 +-569.673 129.039 544.741 +-573.889 127.744 539.274 +-579.211 126.696 534.85 +-586.692 126.108 532.366 +-586.135 123.802 522.631 +-589.314 122.31 516.332 +-593.697 121.074 511.115 +-597.805 119.784 505.67 +-602.089 118.532 500.386 +-605.865 117.183 494.691 +-610.278 115.96 489.527 +-613.945 114.598 483.775 +-619.2 113.531 479.271 +-622.844 112.167 473.515 +-142.566 25.2157 106.448 +-143.036 24.8448 104.883 +-143.569 24.4875 103.374 +-142.63 23.8864 100.836 +-142.307 23.3977 98.7736 +-141.959 22.9122 96.7241 +-147.024 23.2917 98.326 +-148.895 23.1497 97.7266 +-386.339 58.9424 248.826 +-381.847 57.1588 241.296 +-381.55 56.0293 236.528 +-381.028 54.8812 231.682 +-379.936 53.6669 226.555 +-686.591 95.093 401.436 +-387.044 52.5515 221.847 +-382.523 50.9066 214.903 +-382.695 49.9083 210.688 +-380.634 48.6336 205.307 +-382.022 47.8112 201.835 +-717.307 87.9137 371.129 +-738.791 88.6492 374.234 +-723.675 84.9937 358.802 +-732.951 84.2342 355.595 +-410.749 46.1781 194.941 +-410.767 45.1616 190.65 +-753.051 80.9421 341.698 +-407.936 42.8522 180.901 +-404.153 41.4767 175.094 +-405.982 40.6898 171.772 +-404.194 39.5474 166.95 +-406.507 38.8124 163.847 +-405.087 37.7255 159.259 +-406.965 36.9515 155.991 +-405.734 35.9002 151.553 +-404.736 34.8809 147.25 +-406.511 34.1048 143.974 +-406.184 33.1549 139.964 +-407.14 32.3142 136.415 +-405.883 31.3037 132.149 +-396.02 29.66 125.21 +-384.157 27.9195 117.862 +-381.279 26.8695 113.43 +-380.651 25.9902 109.718 +-380.371 25.141 106.133 +-381.887 24.4119 103.055 +-380.478 23.4996 99.2037 +-381.741 22.7564 96.0663 +-380.356 21.8594 92.2797 +-380.294 21.0451 88.8419 +-379.809 20.2119 85.3247 +-380.951 19.4671 82.1805 +-380.304 18.633 78.6593 +-380.603 17.8489 75.3493 +-380.086 17.0299 71.8917 +-380.126 16.2395 68.5551 +-380.234 15.4542 65.2402 +-381.298 14.7078 62.0892 +-380.951 13.9078 58.712 +-380.079 13.0933 55.2736 +-381.055 12.3443 52.1117 +-381.211 11.5683 48.8358 +-379.351 10.7365 45.3242 +-378.849 9.94953 42.0021 +-377.819 9.15338 38.6411 +-379.545 8.42397 35.5619 +-378.355 7.63007 32.2104 +-378.729 6.87052 29.004 +-378.077 6.09397 25.7258 +-379.391 5.34871 22.5796 +-378.98 4.57814 19.3267 +-379.139 3.81566 16.1078 +-380.268 3.06092 12.9217 +-378.47 2.28442 9.64371 +-144.078 0.57969 2.44717 +-145.094 0.291868 1.23212 +96 0 0 +95.9963 0.20045 0.813413 +95.9854 0.400884 1.62676 +96.9668 0.607551 2.4654 +95.9415 0.801646 3.25303 +95.9086 1.00194 4.06582 +95.8684 1.20216 4.87831 +95.8209 1.40229 5.69042 +96.7637 1.61901 6.56983 +96.701 1.82099 7.38946 +96.6309 2.02284 8.20854 +96.653 2.22682 9.03629 +96.5681 2.42854 9.85488 +96.4758 2.63008 10.6727 +96.3762 2.83143 11.4898 +96.2693 3.03256 12.3059 +96.056 3.23013 13.1077 +95.9345 3.43057 13.921 +95.8058 3.63074 14.7333 +96.4587 3.86226 15.6728 +95.3294 4.02195 16.3208 +96.064 4.2601 17.2872 +95.0215 4.41943 17.9338 +95.5427 4.65107 18.8738 +96.2497 4.89515 19.8642 +95.3841 5.0597 20.532 +96.0729 5.30711 21.5359 +95.8757 5.5075 22.3491 +95.7682 5.71327 23.1841 +96.3307 5.96095 24.1891 +96.1096 6.16186 25.0045 +95.8812 6.3623 25.8178 +96.5107 6.62162 26.8701 +96.2655 6.82288 27.6868 +96.013 7.02363 28.5014 +95.5624 7.20944 29.2555 +96.342 7.49004 30.3941 +95.8755 7.67574 31.1477 +96.3483 7.93796 32.2117 +96.0552 8.13883 33.0269 +96.5064 8.40456 34.1052 +96.2899 8.61412 34.9556 +95.8787 8.80628 35.7353 +96.4843 9.09383 36.9022 +97.0761 9.38457 38.082 +95.8987 9.5045 38.5687 +96.4689 9.79787 39.7591 +96.1996 10.0085 40.6138 +96.6531 10.2965 41.7827 +96.4559 10.5178 42.6806 +96.0686 10.7188 43.4962 +96.3058 10.9911 44.6012 +96.6204 11.2757 45.756 +96.2054 11.477 46.573 +96.5851 11.7752 47.7831 +96.0633 11.9654 48.5548 +96.4179 12.2666 49.7771 +96.0547 12.4789 50.6386 +96.2082 12.7602 51.78 +95.7391 12.9606 52.5932 +95.2628 13.16 53.4024 +96.244 13.5648 55.0452 +95.6599 13.7529 55.8086 +96.0073 14.0772 57.1243 +95.2358 14.2391 57.7813 +95.3876 14.5402 59.0034 +95.5246 14.8431 60.2325 +95.8135 15.1741 61.5755 +95.9196 15.4806 62.8193 +95.3514 15.6803 63.6296 +96.0865 16.0984 65.3262 +95.5772 16.3123 66.1942 +95.6258 16.6237 67.4581 +95.659 16.9366 68.7278 +95.7564 17.2653 70.0616 +95.7577 17.5811 71.3432 +95.8221 17.913 72.6898 +95.6347 18.2018 73.8616 +95.589 18.5212 75.1579 +95.0641 18.7505 76.0885 +95.0661 19.0867 77.4528 +95.0507 19.4244 78.8229 +95.0179 19.7634 80.1985 +95.5667 20.2306 82.0943 +95.4941 20.5734 83.4857 +95.2562 20.8852 84.7508 +95.1491 21.2302 86.1507 +95.1691 21.6092 87.6888 +95.0248 21.9567 89.0989 +94.8623 22.3052 90.5131 +94.6816 22.6547 91.9313 +95.1835 23.1758 94.0459 +94.9598 23.5286 95.4774 +94.7176 23.8821 96.9122 +94.3204 24.2014 98.208 +94.7177 24.7326 100.363 +94.2805 25.054 101.667 +94.6221 25.5904 103.844 +94.2757 25.9496 105.302 +94.2999 26.4183 107.204 +93.7184 26.7241 108.445 +94.0124 27.2881 110.733 +94.0205 27.781 112.733 +93.6885 28.1822 114.362 +93.7037 28.6971 116.451 +93.6884 29.2144 118.55 +93.6424 29.7339 120.658 +93.6251 30.2744 122.852 +93.7517 30.8752 125.29 +92.2156 30.9336 125.527 +96.0167 32.8105 133.143 +115.037 40.0494 162.518 +115.138 40.8436 165.741 +115.024 41.5812 168.734 +114.864 42.3215 171.738 +115.09 43.2255 175.406 +114.992 44.0323 178.681 +115.159 44.9645 182.463 +114.905 45.757 185.679 +115.211 46.7993 189.909 +114.8 47.5767 193.063 +115.227 48.7309 197.747 +114.561 49.4511 200.67 +114.566 50.4874 204.875 +113.237 50.9571 206.781 +110.866 50.9581 206.785 +108.186 50.804 206.159 +105.66 50.7066 205.764 +103.412 50.732 205.867 +101.558 50.9459 206.735 +98.9349 50.7657 206.004 +96.7065 50.7743 206.039 +94.4849 50.7777 206.053 +92.2705 50.7755 206.044 +91.1185 51.3627 208.427 +91.0404 52.5899 213.407 +90.9919 53.8873 218.671 +90.5258 54.9879 223.138 +88.3377 55.0633 223.443 +90.3185 57.8006 234.551 +90.0881 59.2235 240.325 +89.9276 60.7627 246.571 +89.8568 62.4412 253.383 +89.3213 63.8745 259.199 +89.0896 65.6061 266.225 +88.7082 67.3186 273.175 +88.764 69.4689 281.901 +88.414 71.4183 289.811 +88.2866 73.6701 298.949 +88.1619 76.0652 308.668 +87.8432 78.4419 318.312 +87.5078 80.9621 328.539 +87.3822 83.858 340.291 +83.5501 83.2694 337.902 +82.2196 85.2126 345.787 +81.8575 88.3477 358.51 +81.9172 92.2132 374.195 +81.6013 95.9681 389.433 +81.0557 99.7754 404.882 +80.457 103.87 421.497 +81.7015 110.867 449.893 +83.8607 119.907 486.575 +83.3952 125.986 511.242 +83.5123 133.704 542.562 +83.7126 142.522 578.344 +81.2526 147.673 599.247 +79.5929 155.104 629.402 +78.4951 164.845 668.931 +76.8807 175.021 710.224 +70.1495 174.317 707.368 +64.2251 175.649 712.772 +57.0162 173.343 703.416 +51.0478 174.673 708.812 +44.2907 173.268 703.112 +38.1791 174.31 707.339 +31.5412 172.853 701.428 +25.4138 174.132 706.616 +18.9102 172.791 701.175 +12.742 174.666 708.785 +6.30579 172.892 701.583 +4.4441e-14 173.664 704.717 +-6.28747 172.389 699.545 +-12.6617 173.566 704.319 +-18.8474 172.217 698.846 +-25.337 173.606 704.482 +-31.4147 172.16 698.615 +-38.0168 173.569 704.333 +-43.9549 171.955 697.782 +-50.6013 173.145 702.613 +-56.5769 172.007 697.995 +-63.2489 172.979 701.938 +-69.1431 171.816 697.221 +-75.8877 172.76 701.05 +-81.7554 171.692 696.715 +-88.6356 172.726 700.91 +-94.3965 171.561 696.186 +-101.415 172.661 700.647 +-107.029 171.354 695.344 +-114.135 172.424 699.685 +-119.726 171.188 694.67 +-126.867 172.157 698.601 +-132.54 171.109 694.349 +-140.226 172.611 700.443 +-147.134 173.038 702.177 +-151.131 170.126 690.362 +-120.189 129.718 526.389 +-124.195 128.717 522.324 +-129.072 128.638 522.006 +-134.581 129.153 524.097 +-820.42 759.051 3080.18 +-847.969 757.216 3072.73 +-875.553 755.416 3065.43 +-903.071 753.56 3057.9 +-930.633 751.736 3050.5 +-957.897 749.674 3042.13 +-169.508 128.635 521.994 +-147.834 108.865 441.769 +-152.401 108.984 442.249 +-1066.79 741.309 3008.19 +-1093.78 739.053 2999.03 +-1120.7 736.741 2989.65 +-473.55 303.055 1229.78 +-454.482 283.291 1149.58 +-449.55 273.07 1108.1 +-447.018 264.733 1074.27 +-445.558 257.378 1044.42 +-445.551 251.152 1019.16 +-445.482 245.144 994.78 +-447.044 240.249 974.914 +-448.366 235.408 955.272 +-449.624 230.711 936.213 +-451.735 226.611 919.573 +-454.021 222.734 903.841 +-456.237 218.951 888.489 +-145.776 68.4563 277.791 +-145.497 66.8759 271.378 +-147.649 66.4428 269.621 +-151.832 66.9101 271.517 +-455.479 196.611 797.837 +-111.534 47.1692 191.41 +-111.5 46.2092 187.514 +-112.318 45.6242 185.14 +-113.514 45.2033 183.432 +-115.211 44.9849 182.546 +-116.423 44.5803 180.904 +-118.475 44.497 180.566 +-120.202 44.2881 179.718 +-122.696 44.3546 179.988 +-126.378 44.8306 181.92 +-493.17 171.694 696.723 +-497.119 169.874 689.336 +-500.74 167.972 681.62 +-503.321 165.759 672.638 +-506.432 163.759 664.524 +-509.858 161.893 656.95 +-513.125 160.006 649.293 +-515.678 157.929 640.866 +-516.563 155.385 630.544 +-532.09 157.22 637.991 +-527.245 153.039 621.021 +-530.878 151.382 614.298 +-162.882 45.6316 185.17 +-163.556 45.0189 182.684 +-166.715 45.0878 182.963 +-166.011 44.1156 179.018 +-548.782 143.298 581.494 +-553.237 141.954 576.041 +-556.122 140.221 569.007 +-560.45 138.865 563.505 +-563.601 137.229 556.866 +-566.958 135.657 550.489 +-570.957 134.25 544.78 +-2357.06 544.629 2210.07 +-581.895 132.126 536.158 +-581.938 129.845 526.903 +-586.135 128.512 521.493 +-589.983 127.107 515.792 +-594.371 125.823 510.58 +-598.938 124.577 505.524 +-602.774 123.181 499.863 +-606.784 121.826 494.362 +-610.278 120.372 488.461 +-614.645 119.093 483.271 +-618.965 117.805 478.046 +-141.842 26.5159 107.6 +-142.724 26.2042 106.335 +-142.157 25.6316 104.011 +-143.73 25.4476 103.265 +-142.549 24.781 100.56 +-142.226 24.2739 98.5022 +-142.369 23.8525 96.7919 +-147.436 24.2455 98.3866 +-148.149 23.91 97.0251 +-385.172 61.0001 247.535 +-381.763 59.3204 240.719 +-381.719 58.1867 236.118 +-381.791 57.0832 231.64 +-383.603 56.2462 228.244 +-381.697 54.8762 222.684 +-382.65 53.9315 218.851 +-382.523 52.8433 214.435 +-381.042 51.5831 209.321 +-382.559 50.7391 205.896 +-382.198 49.6528 201.488 +-717.307 91.2583 370.32 +-738.437 91.9777 373.24 +-723.854 88.2489 358.109 +-734.204 87.5883 355.428 +-739.348 86.2826 350.129 +-406.885 46.4365 188.437 +-409.379 45.6764 185.352 +-406.662 44.3434 179.943 +-406.71 43.3272 175.819 +-404.057 42.0375 170.586 +-405.114 41.1455 166.966 +-405.676 40.2064 163.155 +-403.047 38.9634 158.111 +-403.615 38.0414 154.37 +-405.174 37.2145 151.014 +-406.141 36.3335 147.439 +-406.511 35.4023 143.66 +-405.807 34.3844 139.53 +-407.14 33.5436 136.118 +-404.65 32.396 131.461 +-390.123 30.3299 123.077 +-385.016 29.0465 117.869 +-380.896 27.8637 113.069 +-379.98 26.9313 109.286 +-380.371 26.0974 105.902 +-381.019 25.283 102.597 +-380.478 24.3936 98.9876 +-381.353 23.5982 95.7599 +-381.229 22.7431 92.2901 +-380.683 21.868 88.7391 +-380.199 21.0023 85.2262 +-380.658 20.1921 81.9385 +-380.793 19.3667 78.5889 +-380.603 18.5279 75.1852 +-380.381 17.6914 71.7908 +-379.635 16.8355 68.3173 +-380.727 16.0629 65.1824 +-381.89 15.291 62.0501 +-380.062 14.4032 58.4475 +-380.573 13.6091 55.225 +-379.768 12.7707 51.8225 +-378.93 11.9366 48.438 +-380.641 11.1828 45.3793 +-380.141 10.3632 42.0534 +-379.609 9.54661 38.7395 +-378.649 8.7238 35.4006 +-378.952 7.93284 32.191 +-379.925 7.15444 29.0323 +-377.378 6.31414 25.6224 +-378.293 5.53614 22.4653 +-379.879 4.76358 19.3303 +-378.639 3.95558 16.0515 +-377.47 3.15397 12.7986 +-378.97 2.37446 9.63542 +-145.078 0.605919 2.45878 +-144.494 0.301718 1.22435 +96 0 0 +95.8963 0.207562 0.810727 +95.9854 0.415541 1.62308 +96.9668 0.629763 2.45982 +96.9409 0.839611 3.27948 +95.9086 1.03858 4.05662 +95.8684 1.24612 4.86727 +95.8209 1.45356 5.67754 +96.7637 1.6782 6.55496 +96.701 1.88757 7.37274 +95.6347 2.07517 8.10552 +96.653 2.30823 9.01583 +96.767 2.52252 9.85282 +96.4758 2.72624 10.6486 +96.3762 2.93495 11.4638 +96.2693 3.14344 12.2781 +96.155 3.35167 13.0915 +96.0334 3.55966 13.9039 +95.8058 3.76349 14.7 +96.4587 4.00347 15.6373 +95.3294 4.169 16.2839 +96.064 4.41585 17.2481 +95.905 4.6236 18.0595 +95.5427 4.82112 18.831 +95.565 5.03804 19.6783 +95.3841 5.24469 20.4855 +96.0729 5.50114 21.4872 +95.9729 5.71466 22.3212 +95.6712 5.91615 23.1082 +95.4594 6.123 23.9161 +96.2062 6.39357 24.9729 +95.9776 6.60153 25.7852 +96.5107 6.86372 26.8093 +96.2655 7.07233 27.6241 +96.013 7.28042 28.4369 +96.4208 7.54017 29.4515 +96.1518 7.74855 30.2655 +95.8755 7.95637 31.0772 +96.4429 8.23626 32.1704 +96.0552 8.43639 32.9521 +96.5064 8.71184 34.028 +96.2899 8.92906 34.8764 +96.9056 9.22601 36.0363 +96.5773 9.43539 36.8541 +96.2417 9.64407 37.6693 +96.7302 9.93743 38.8151 +96.4689 10.1561 39.6692 +96.1996 10.3744 40.5219 +96.6531 10.673 41.6881 +96.2739 10.8818 42.5036 +96.703 11.1841 43.6844 +96.3058 11.3929 44.5002 +96.5305 11.6771 45.61 +96.2054 11.8966 46.4676 +96.496 12.1945 47.631 +96.0633 12.4029 48.4449 +96.4179 12.7151 49.6645 +95.9668 12.9233 50.4776 +96.2082 13.2267 51.6628 +95.7391 13.4344 52.4742 +96.0422 13.7527 53.7175 +96.3301 14.0734 54.9699 +95.6599 14.2558 55.6823 +96.0073 14.5919 56.995 +95.9142 14.8648 58.0613 +95.3876 15.0719 58.8699 +95.6084 15.3993 60.1488 +95.8135 15.7289 61.4361 +95.9196 16.0466 62.6771 +95.1866 16.2255 63.3758 +95.4312 16.5731 64.7338 +95.5772 16.9087 66.0444 +95.6258 17.2315 67.3054 +95.659 17.5559 68.5722 +95.7564 17.8966 69.903 +95.7577 18.2239 71.1817 +95.7433 18.5526 72.4657 +95.0869 18.7591 73.2723 +95.7444 19.2296 75.1098 +95.0641 19.4361 75.9163 +95.0661 19.7846 77.2775 +95.7351 20.2795 79.2107 +95.6972 20.6324 80.5891 +95.5667 20.9702 81.9085 +95.4941 21.3256 83.2967 +95.4037 21.6823 84.6899 +95.2954 22.0402 86.0878 +95.1691 22.3992 87.4903 +94.8809 22.725 88.7625 +94.8623 23.1207 90.3082 +94.6816 23.483 91.7233 +94.4125 23.8285 93.0729 +94.9598 24.3888 95.2613 +94.7176 24.7553 96.6929 +94.3204 25.0863 97.9857 +94.7177 25.6369 100.136 +94.3474 25.9883 101.509 +94.5559 26.5074 103.537 +94.2757 26.8983 105.063 +93.9102 27.2711 106.519 +93.7827 27.7202 108.274 +93.9488 28.2666 110.408 +94.0834 28.8158 112.553 +93.6262 29.193 114.026 +93.5805 29.7074 116.036 +93.6884 30.2825 118.282 +93.7628 30.8604 120.539 +93.5656 31.3614 122.496 +93.4579 31.9039 124.615 +92.2737 32.0847 125.321 +95.3858 33.7866 131.969 +115.037 41.5137 162.15 +115.585 42.5013 166.008 +115.52 43.2875 169.079 +115.355 44.0559 172.08 +115.09 44.8059 175.009 +115.363 45.7895 178.852 +114.688 46.4183 181.307 +114.956 47.4513 185.342 +115.211 48.5103 189.479 +114.75 49.2948 192.543 +115.375 50.5773 197.552 +114.318 51.1505 199.791 +114.518 52.3115 204.326 +113.237 52.8202 206.313 +110.912 52.8432 206.403 +108.186 52.6614 205.693 +106.061 52.7604 206.079 +103.456 52.6088 205.487 +101.558 52.8085 206.267 +98.9349 52.6217 205.538 +96.7065 52.6307 205.573 +94.4849 52.6341 205.586 +92.2705 52.6319 205.578 +90.8841 53.1034 207.419 +91.0021 54.4898 212.834 +90.9545 55.8344 218.086 +90.4892 56.9752 222.542 +88.3735 57.0995 223.028 +89.8632 59.6117 232.84 +90.3617 61.5753 240.51 +89.8608 62.9374 245.83 +89.8568 64.7241 252.809 +89.2578 66.1627 258.428 +89.1205 68.0283 265.715 +88.7684 69.8269 272.74 +88.7056 71.9614 281.077 +88.414 74.0294 289.155 +88.3418 76.4111 298.458 +87.8947 78.6071 307.035 +87.9208 81.3817 317.873 +87.658 84.066 328.358 +86.221 85.7687 335.008 +82.5463 85.2769 333.087 +82.1521 88.2556 344.722 +82.0306 91.7715 358.455 +81.834 95.4876 372.97 +81.6212 99.5011 388.646 +81.1129 103.496 404.252 +80.6392 107.911 421.496 +83.1948 117.021 457.079 +83.7287 124.095 484.71 +83.3952 130.592 510.085 +83.2019 138.077 539.322 +82.6271 145.817 569.552 +81.2526 153.072 597.89 +79.0932 159.765 624.035 +79.6611 173.41 677.331 +75.8563 179.003 699.175 +69.1431 178.098 695.642 +63.1966 179.155 699.771 +56.3729 177.653 693.905 +50.2805 178.338 696.577 +43.7291 177.326 692.625 +37.6819 178.33 696.547 +31.1704 177.067 691.613 +25.0718 178.069 695.529 +18.6851 176.976 691.26 +12.5343 178.101 695.654 +6.22551 176.931 691.084 +4.38532e-14 177.632 693.822 +-6.21329 176.584 689.727 +-12.5081 177.729 694.201 +-18.638 176.53 689.517 +-25.009 177.623 693.786 +-31.0396 176.323 688.71 +-37.4778 177.364 692.775 +-43.491 176.36 688.853 +-49.9735 177.249 692.325 +-55.8707 176.071 687.724 +-62.4384 177.006 691.375 +-68.2901 175.901 687.06 +-74.9678 176.906 690.985 +-80.8045 175.899 687.053 +-87.5022 176.751 690.381 +-93.2218 175.621 685.966 +-100.135 176.714 690.236 +-105.654 175.338 684.86 +-112.742 176.548 689.586 +-118.405 175.49 685.453 +-125.357 176.326 688.72 +-131.027 175.34 684.871 +-138.432 176.633 689.919 +-145.06 176.837 690.715 +-149.052 173.92 679.324 +-120.47 134.776 526.427 +-124.173 133.398 521.047 +-129.235 133.51 521.485 +-134.726 134.02 523.474 +-820.42 786.803 3073.21 +-847.969 784.9 3065.78 +-875.553 783.035 3058.49 +-903.071 781.11 3050.98 +-930.633 779.221 3043.6 +-957.897 777.083 3035.24 +-169.658 133.457 521.274 +-147.926 112.916 441.046 +-152.687 113.18 442.075 +-1066.79 768.412 3001.38 +-1093.78 766.073 2992.24 +-1120.7 763.677 2982.88 +-1147.38 761.13 2972.93 +-454.339 293.554 1146.61 +-449.844 283.237 1106.31 +-446.531 274.112 1070.67 +-445.023 266.468 1040.81 +-445.551 260.335 1016.85 +-445.642 254.199 992.886 +-446.8 248.896 972.175 +-448.159 243.902 952.669 +-450.004 239.349 934.884 +-451.735 234.896 917.491 +-454.021 230.877 901.795 +-456.237 226.956 886.478 +-145.64 70.8929 276.904 +-145.728 69.4311 271.194 +-148.494 69.2661 270.55 +-151.88 69.378 270.987 +-109.809 49.1331 191.911 +-111.14 48.7209 190.301 +-111.6 47.9416 187.257 +-112.369 47.3136 184.805 +-113.875 47.0048 183.598 +-115.054 46.5661 181.885 +-116.794 46.3575 181.07 +-119.066 46.354 181.056 +-120.42 45.9904 179.636 +-123.137 46.1417 180.227 +-126.21 46.4081 181.268 +-493.396 178.053 695.465 +-496.775 175.963 687.301 +-500.276 173.952 679.447 +-503.144 171.759 670.881 +-507.443 170.085 664.343 +-509.918 167.831 655.541 +-513.673 166.033 648.515 +-516.232 163.879 640.102 +-516.376 161.008 628.889 +-530.706 162.544 634.89 +-527.818 158.806 620.288 +-530.878 156.917 612.908 +-164.31 47.7149 186.372 +-164.212 46.852 183.002 +-164.396 46.0862 180.01 +-169.29 46.6318 182.141 +-549.322 148.683 580.749 +-553.51 147.217 575.021 +-556.466 145.437 568.071 +-560.242 143.889 562.021 +-563.601 142.246 555.605 +-567.595 140.775 549.86 +-570.957 139.159 543.547 +-2357.06 564.542 2205.07 +-583.636 137.366 536.545 +-581.865 134.575 525.644 +-586.578 133.311 520.706 +-590.8 131.937 515.338 +-594.97 130.554 509.938 +-598.787 129.099 504.253 +-603.002 127.733 498.92 +-607.243 126.376 493.617 +-611.512 125.025 488.342 +-614.645 123.447 482.177 +-388.956 76.735 299.723 +-142 27.5159 107.476 +-142.724 27.1622 106.094 +-142.876 26.7031 104.301 +-143.73 26.378 103.031 +-142.468 25.6723 100.275 +-142.145 25.147 98.223 +-142.205 24.6961 96.4617 +-147.189 25.0897 97.9992 +-146.657 24.5345 95.8304 +-662.772 108.802 424.973 +-380.253 61.2459 239.223 +-381.466 60.2742 235.428 +-381.452 59.1176 230.91 +-381.045 57.914 226.209 +-382.554 57.0102 222.679 +-382.563 55.8907 218.306 +-382.177 54.7257 213.756 +-381.825 53.5789 209.276 +-380.46 52.3055 204.303 +-381.231 51.338 200.524 +-718.19 94.7111 369.936 +-738.348 95.3291 372.351 +-724.032 91.4979 357.386 +-734.294 90.8015 354.666 +-740.427 89.5676 349.846 +-405.441 47.9637 187.344 +-406.842 47.0527 183.785 +-410.848 46.4379 181.384 +-405.34 44.76 174.83 +-404.057 43.5745 170.2 +-402.997 42.4269 165.717 +-405.768 41.686 162.823 +-407.961 40.8805 159.677 +-404.918 39.5595 154.517 +-404.894 38.5483 150.568 +-405.485 37.6011 146.868 +-406.135 36.6626 143.202 +-405.336 35.6001 139.052 +-406.195 34.6891 135.494 +-406.167 33.7065 131.656 +-390.979 31.5078 123.068 +-383.585 29.9966 117.165 +-378.792 28.7227 112.19 +-381.035 27.9936 109.341 +-382.967 27.2361 106.383 +-381.309 26.2272 102.442 +-379.899 25.247 98.6134 +-381.934 24.4982 95.6887 +-380.356 23.5206 91.8703 +-381.169 22.6965 88.6513 +-381.076 21.8204 85.2295 +-381.829 20.9948 82.0046 +-380.793 20.0748 78.411 +-380.309 19.1905 74.9571 +-380.086 18.324 71.5728 +-379.831 17.46 68.198 +-379.348 16.5899 64.7993 +-381.89 15.8501 61.9096 +-380.951 14.9648 58.4516 +-379.288 14.059 54.9138 +-380.56 13.2652 51.8131 +-379.823 12.4022 48.4422 +-380.244 11.5796 45.2293 +-378.849 10.7057 41.8157 +-379.211 9.88527 38.6114 +-379.943 9.07365 35.4412 +-378.952 8.22287 32.1181 +-378.33 7.38486 28.8449 +-377.179 6.54151 25.5508 +-378.293 5.73855 22.4145 +-378.481 4.91956 19.2155 +-379.239 4.1067 16.0405 +-379.269 3.28488 12.8306 +-377.571 2.45219 9.57811 +-144.978 0.62764 2.45153 +-145.094 0.314048 1.22666 +96.2 0 0 +96.1963 0.21554 0.811351 +96.9852 0.434647 1.63613 +96.167 0.646553 2.4338 +96.1414 0.861994 3.24479 +97.1075 1.08857 4.09767 +96.0682 1.29266 4.86595 +97.0187 1.52353 5.735 +96.8635 1.73906 6.54629 +96.9004 1.95803 7.37057 +96.7305 2.17283 8.17913 +96.7525 2.39194 9.00391 +96.6675 2.60863 9.81961 +96.7739 2.83092 10.6564 +96.4755 3.04138 11.4486 +96.5667 3.26414 12.2871 +96.2541 3.47321 13.0741 +96.1323 3.68875 13.8855 +95.9045 3.89998 14.6806 +95.6697 4.11046 15.4729 +95.4279 4.3202 16.2624 +96.1623 4.57595 17.2251 +96.0031 4.79124 18.0355 +95.8366 5.00616 18.8446 +95.4672 5.21002 19.612 +95.5794 5.44038 20.4791 +96.1703 5.70054 21.4584 +96.0701 5.92178 22.2912 +95.8652 6.13681 23.1007 +95.653 6.35135 23.9082 +96.2062 6.6186 24.9143 +96.074 6.84077 25.7505 +95.7417 7.04868 26.5332 +96.3614 7.32854 27.5867 +95.9174 7.52917 28.3419 +95.8486 7.75921 29.2078 +96.4371 8.04508 30.2839 +95.9704 8.24455 31.0348 +96.5374 8.5345 32.1262 +96.9978 8.81903 33.1973 +96.6944 9.03603 34.0141 +96.3836 9.25232 34.8283 +96.999 9.55993 35.9862 +96.6704 9.77691 36.803 +96.3344 9.99312 37.6169 +96.915 10.3068 38.7978 +96.561 10.5236 39.6137 +96.2913 10.7498 40.4652 +96.9272 11.08 41.7082 +96.3649 11.2754 42.4438 +96.1593 11.5126 43.3367 +96.5766 11.8271 44.5205 +96.6204 12.0993 45.5452 +96.2949 12.3268 46.4015 +96.6742 12.647 47.6068 +96.2407 12.8631 48.4203 +96.5062 13.1747 49.5931 +96.0547 13.3904 50.4052 +96.2956 13.7047 51.5882 +95.9132 13.9326 52.446 +96.1288 14.2496 53.6395 +95.6408 14.4645 54.4483 +96.517 14.8898 56.0492 +96.0925 15.1189 56.9116 +96.0838 15.4152 58.0272 +95.6406 15.6437 58.8873 +95.7762 15.9693 60.1128 +95.8135 16.2825 61.2917 +95.2564 16.4965 62.0975 +96.0931 16.9565 63.8291 +95.5131 17.1712 64.6371 +95.6586 17.5187 65.9453 +95.7067 17.8531 67.204 +95.7394 18.189 68.4686 +95.8363 18.5419 69.7969 +95.2024 18.7559 70.6026 +95.1129 19.0792 71.8193 +95.3217 19.4674 73.2806 +95.2004 19.7933 74.5074 +95.1413 20.1365 75.7993 +95.1427 20.4974 77.158 +95.8112 21.01 79.0874 +95.0934 21.2238 79.8923 +95.1174 21.6062 81.3317 +95.6427 22.1106 83.2303 +95.4774 22.4628 84.5561 +95.4417 22.8509 86.0173 +95.3142 23.223 87.4177 +95.0967 23.5783 88.7553 +94.9336 23.9525 90.1637 +94.6816 24.3095 91.5077 +95.2536 24.8869 93.6814 +95.0293 25.2657 95.1069 +94.7864 25.6452 96.5358 +94.525 26.0257 97.968 +94.7853 26.5582 99.9725 +94.4143 26.9223 101.343 +94.6221 27.4597 103.366 +94.4069 27.8838 104.962 +94.2999 28.348 106.71 +93.9113 28.7352 108.167 +94.0124 29.2813 110.223 +94.0834 29.83 112.288 +93.7507 30.2608 113.91 +93.7037 30.7933 115.915 +93.7493 31.3687 118.08 +93.7628 31.9466 120.256 +93.7441 32.5271 122.441 +94.1044 33.2553 125.182 +92.506 33.2976 125.342 +94.0665 34.492 129.838 +115.094 42.9959 161.848 +115.194 43.8483 165.057 +115.024 44.6185 167.956 +114.864 45.4129 170.947 +115.197 46.4263 174.761 +115.098 47.2923 178.021 +115.368 48.3365 181.952 +114.956 49.1214 184.907 +115.262 50.2398 189.117 +114.9 51.0966 192.342 +115.326 52.3351 197.004 +114.124 52.861 198.983 +114.852 54.3106 204.44 +113.283 54.7019 205.913 +110.958 54.726 206.004 +108.685 54.7666 206.156 +106.061 54.6174 205.595 +103.85 54.6682 205.786 +101.644 54.7134 205.956 +99.3998 54.7298 206.018 +97.1626 54.7401 206.057 +94.5256 54.5101 205.191 +92.3104 54.5077 205.182 +90.7278 54.878 206.576 +91.27 56.5736 212.959 +91.0294 57.8473 217.753 +90.8923 59.2435 223.009 +88.6961 59.3249 223.315 +90.1784 61.9263 233.108 +90.0881 63.5495 239.218 +89.8608 65.1526 245.252 +89.7591 66.9293 251.94 +89.4482 68.6375 258.37 +89.2441 70.5202 265.458 +88.7383 72.2602 272.007 +88.764 74.5432 280.601 +88.4424 76.6594 288.567 +88.4245 79.1747 298.036 +87.9214 81.3985 306.406 +87.9726 84.2956 317.312 +87.8083 87.174 328.147 +85.0355 87.5669 329.626 +82.4996 88.2285 332.117 +82.2196 91.4369 344.194 +82.1172 95.102 357.99 +81.9172 98.9488 372.471 +81.701 103.104 388.111 +81.0366 107.038 402.922 +80.5663 111.608 420.125 +84.1325 122.505 461.144 +83.7617 128.514 483.761 +83.3014 135.036 508.313 +82.8915 142.404 536.047 +82.5157 150.746 567.448 +81.0959 158.154 595.336 +78.5448 164.242 618.252 +79.197 178.468 671.802 +75.0305 183.286 689.938 +68.2134 181.888 684.675 +62.2902 182.801 688.113 +55.5177 181.116 681.772 +49.7573 182.693 687.709 +43.1247 181.03 681.446 +37.2266 182.376 686.513 +30.7822 181.016 681.394 +24.8031 182.361 686.457 +18.46 180.998 681.326 +12.3807 182.111 685.515 +6.14872 180.899 680.954 +4.34e-14 181.984 685.04 +-6.13563 180.514 679.504 +-12.3703 181.957 684.935 +-18.405 180.459 679.298 +-24.7158 181.72 684.043 +-30.695 180.503 679.463 +-37.0643 181.581 683.521 +-42.9232 180.184 678.264 +-49.3946 181.362 682.696 +-55.1646 179.964 677.436 +-61.8196 181.42 682.914 +-67.485 179.945 677.364 +-74.0898 180.987 681.287 +-79.7403 179.692 676.411 +-86.6369 181.163 681.948 +-92.0601 179.536 675.825 +-99.0634 180.976 681.244 +-104.59 179.681 676.368 +-111.428 180.631 679.946 +-116.887 179.336 675.072 +-123.967 180.509 679.486 +-129.405 179.265 674.804 +-136.772 180.657 680.043 +-142.428 179.74 676.591 +-148.387 179.238 674.702 +-120.514 139.57 525.379 +-124.443 138.394 520.953 +-129.492 138.484 521.293 +-134.775 138.787 522.432 +-820.32 814.395 3065.61 +-847.969 812.526 3058.57 +-875.553 810.595 3051.31 +-903.071 808.603 3043.81 +-930.519 806.549 3036.07 +-957.897 804.433 3028.11 +-170.29 138.668 521.985 +-148.019 116.964 440.285 +-153.163 117.529 442.411 +-1066.79 795.457 2994.32 +-1093.78 793.036 2985.21 +-1120.7 790.556 2975.87 +-470.329 322.979 1215.78 +-453.873 303.576 1142.74 +-449.844 293.206 1103.71 +-445.819 283.308 1066.45 +-442.191 274.091 1031.75 +-445.785 269.639 1015 +-446.28 263.52 991.964 +-447.166 257.867 970.682 +-448.449 252.65 951.045 +-450.384 247.982 933.475 +-451.649 243.117 915.16 +-454.503 239.258 900.632 +-457.085 235.381 886.039 +-145.64 73.3881 276.253 +-146.051 72.0343 271.157 +-148.682 71.795 270.256 +-152.166 71.9554 270.86 +-112.718 52.2098 196.532 +-111.238 50.4804 190.022 +-111.75 49.6957 187.069 +-112.318 48.9568 184.287 +-113.978 48.7031 183.332 +-115.211 48.2708 181.705 +-117.006 48.0762 180.972 +-119.227 48.0505 180.875 +-120.529 47.6523 179.376 +-123.137 47.7658 179.804 +-126.657 48.2117 181.482 +-135.881 50.7615 191.08 +-497.578 182.45 686.793 +-501.147 180.388 679.03 +-504.026 178.116 670.477 +-507.562 176.113 662.937 +-510.52 173.944 654.772 +-513.795 171.917 647.144 +-516.971 169.89 639.512 +-517.31 166.977 628.546 +-529.447 167.866 631.896 +-528.009 164.455 619.054 +-531.007 162.479 611.615 +-162.362 48.8084 183.728 +-165.13 48.7722 183.592 +-166.914 48.439 182.338 +-166.346 47.4335 178.553 +-550.471 154.238 580.596 +-553.373 152.361 573.527 +-556.604 150.594 566.876 +-561.006 149.156 561.465 +-564.092 147.381 554.781 +-567.948 145.821 548.909 +-571.385 144.165 542.675 +-2357.06 584.412 2199.89 +-586.102 142.802 537.545 +-582.231 139.4 524.739 +-586.946 138.09 519.808 +-591.395 136.718 514.644 +-595.495 135.268 509.188 +-599.088 133.71 503.322 +-604.219 132.496 498.752 +-607.626 130.906 492.767 +-612.053 129.54 487.624 +-615.5 127.97 481.714 +-620.373 126.698 476.925 +-141.527 28.3896 106.866 +-142.883 28.1495 105.963 +-142.956 27.6584 104.114 +-143.89 27.3369 102.904 +-142.549 26.5911 100.096 +-142.226 26.047 98.0482 +-142.86 25.6832 96.6787 +-148.013 26.1184 98.3169 +-658.67 114.069 429.386 +-386.923 65.7534 247.514 +-380.924 63.5135 239.082 +-381.55 62.4092 234.926 +-383.911 61.5928 231.852 +-381.983 60.0998 226.232 +-381.697 58.8846 221.658 +-384.028 58.0794 218.627 +-382.783 56.7417 213.592 +-382.086 55.5027 208.927 +-380.897 54.2089 204.057 +-382.373 53.3044 200.652 +-718.278 98.0566 369.112 +-739.324 98.8146 371.965 +-724.032 94.7184 356.546 +-735.726 94.1807 354.522 +-740.876 92.7763 349.236 +-411.398 50.3813 189.649 +-408.292 48.8826 184.008 +-406.844 47.6037 179.194 +-407.624 46.5965 175.402 +-406.716 45.4049 170.917 +-404.378 44.0706 165.894 +-405.86 43.163 162.477 +-404.808 41.9922 158.07 +-406.313 41.0931 154.686 +-407.695 40.1811 151.253 +-405.298 38.9066 146.455 +-405.571 37.9004 142.668 +-406.467 36.9561 139.113 +-406.1 35.9019 135.145 +-407.305 34.9904 131.714 +-389.648 32.5056 122.36 +-383.394 31.037 116.832 +-381.948 29.9815 112.859 +-381.227 28.9935 109.14 +-381.909 28.1169 105.84 +-381.405 27.1572 102.227 +-381.444 26.2419 98.7818 +-380.579 25.2705 95.125 +-381.423 24.4168 91.9116 +-381.363 23.5073 88.4881 +-382.733 22.6866 85.3988 +-381.146 21.6949 81.6654 +-380.01 20.7386 78.066 +-380.701 19.8864 74.858 +-381.068 19.018 71.589 +-379.93 18.0793 68.0553 +-380.431 17.2229 64.8316 +-379.621 16.3105 61.3972 +-381.05 15.4955 58.3293 +-380.672 14.607 54.9847 +-379.174 13.682 51.503 +-378.732 12.8018 48.1896 +-378.16 11.9215 44.8757 +-378.65 11.0766 41.6955 +-379.311 10.2359 38.5308 +-377.952 9.3438 35.1726 +-380.148 8.53914 32.1437 +-378.53 7.64881 28.7922 +-379.074 6.8058 25.6189 +-379.99 5.96718 22.4621 +-380.478 5.11959 19.2716 +-378.939 4.24788 15.9902 +-377.27 3.38258 12.733 +-377.771 2.53984 9.56066 +-146.378 0.656004 2.46938 +-145.894 0.326894 1.23052 +96.3 0 0 +96.0963 0.222619 0.808532 +97.1852 0.450316 1.63551 +96.167 0.668483 2.42787 +96.2413 0.892158 3.24024 +96.1084 1.11391 4.04564 +97.0668 1.3504 4.90454 +97.0187 1.57521 5.72102 +96.9632 1.7999 6.53707 +96.8007 2.02236 7.34505 +97.0294 2.25347 8.18441 +96.7525 2.47307 8.98197 +96.9659 2.70542 9.82585 +96.5752 2.92095 10.6086 +96.674 3.15102 11.4442 +96.5667 3.37485 12.2572 +96.5511 3.60211 13.0826 +97.0225 3.84918 13.9799 +96.0033 4.0364 14.6599 +96.5574 4.28933 15.5785 +95.5264 4.47136 16.2396 +96.1623 4.73116 17.1832 +96.1013 4.95882 18.01 +95.8366 5.17596 18.7986 +95.6628 5.39778 19.6043 +96.3604 5.67088 20.5962 +96.2678 5.89987 21.4278 +96.0701 6.12264 22.2369 +95.8652 6.34496 23.0444 +95.653 6.56678 23.85 +96.3028 6.84997 24.8785 +96.074 7.0728 25.6878 +95.9339 7.30239 26.5217 +96.3614 7.57712 27.5194 +96.2043 7.80783 28.3573 +95.8486 8.0224 29.1366 +96.4371 8.31796 30.2101 +95.9704 8.52419 30.9591 +96.5374 8.82397 32.0479 +96.1494 9.03841 32.8267 +96.7883 9.3516 33.9642 +96.2899 9.55685 34.7097 +97.0924 9.89372 35.9331 +96.6704 10.1085 36.7133 +96.4271 10.342 37.5613 +96.915 10.6564 38.7032 +96.653 10.8909 39.5549 +96.2913 11.1144 40.3665 +96.9272 11.4558 41.6065 +96.3649 11.6579 42.3404 +96.9749 12.0041 43.5978 +96.5766 12.2283 44.412 +96.7102 12.5213 45.4764 +96.2949 12.7449 46.2884 +96.6742 13.076 47.4907 +96.2407 13.2994 48.3022 +96.5945 13.634 49.5175 +96.0547 13.8446 50.2824 +96.4706 14.1953 51.556 +96.5224 14.4966 52.6505 +96.1288 14.7329 53.5088 +96.3301 15.0629 54.707 +95.917 15.2991 55.5651 +96.0073 15.6178 56.7225 +96.2535 15.9662 57.9879 +95.5563 16.1601 58.6919 +95.7762 16.5109 59.9663 +95.9803 16.864 61.2487 +95.4222 17.0857 62.0539 +96.0931 17.5317 63.6735 +95.677 17.784 64.5901 +95.8214 18.1437 65.8965 +95.8685 18.4899 67.1536 +95.0963 18.6797 67.8429 +95.9161 19.1868 69.6848 +95.8371 19.5214 70.9 +95.9797 19.9061 72.2972 +95.2434 20.1111 73.0419 +95.8221 20.5983 74.8113 +95.1413 20.8195 75.6146 +95.1427 21.1927 76.9699 +95.8112 21.7226 78.8946 +95.1689 21.9611 79.7609 +95.6416 22.4622 81.5807 +94.8996 22.6829 82.3823 +95.4774 23.2247 84.35 +95.4417 23.626 85.8077 +95.3142 24.0107 87.2047 +95.0967 24.3781 88.539 +94.9336 24.7649 89.9439 +94.823 25.1716 91.421 +94.6228 25.5607 92.8342 +95.0293 26.1226 94.8751 +94.6488 26.4766 96.1606 +94.525 26.9085 97.7292 +94.7853 27.459 99.7288 +94.4812 27.8551 101.167 +94.0258 28.2121 102.464 +94.4069 28.8296 104.707 +94.2999 29.3095 106.45 +93.9113 29.7099 107.904 +94.0124 30.2745 109.954 +94.2093 30.8832 112.165 +94.1865 31.4327 114.161 +93.7652 31.8587 115.708 +93.7493 32.4327 117.793 +93.823 33.0514 120.04 +93.6251 33.5877 121.987 +93.7517 34.2542 124.408 +92.9125 34.5781 125.585 +93.1488 35.3139 128.257 +115.037 44.4324 161.375 +115.194 45.3355 164.655 +115.52 46.331 168.27 +115.463 47.198 171.419 +115.251 48.0233 174.416 +115.045 48.8738 177.506 +114.845 49.7496 180.686 +115.06 50.8329 184.621 +115.211 51.921 188.573 +114.95 52.8525 191.956 +115.178 54.041 196.272 +114.464 54.8167 199.089 +114.995 56.2228 204.196 +113.8 56.815 206.347 +111.374 56.7941 206.271 +108.685 56.6242 205.654 +106.374 56.6361 205.697 +103.894 56.5464 205.372 +101.988 56.7609 206.151 +99.3998 56.5862 205.516 +97.1626 56.5968 205.555 +94.973 56.6258 205.66 +92.6693 56.5758 205.479 +90.6496 56.6905 205.895 +91.0404 58.3454 211.905 +91.0294 59.8094 217.223 +90.8557 61.2283 222.376 +88.8036 61.4114 223.041 +90.0383 63.9272 232.178 +90.3275 65.8796 239.269 +90.0611 67.5127 245.2 +89.8243 69.2499 251.51 +89.2578 70.8145 257.192 +89.275 72.9374 264.902 +88.8586 74.8123 271.712 +88.7056 77.0209 279.733 +88.5276 79.336 288.141 +88.5072 81.9367 297.587 +88.0016 84.2364 305.939 +87.9985 87.1806 316.632 +87.6831 90.0024 326.881 +84.6001 90.0733 327.138 +82.4996 91.2211 331.307 +82.0172 94.3055 342.509 +82.3553 98.6128 358.153 +81.7301 102.071 370.715 +82.1595 107.199 389.339 +81.2083 110.904 402.792 +82.9354 118.787 431.424 +84.3062 126.922 460.97 +83.7782 132.899 482.677 +83.4421 139.852 507.931 +82.6107 146.735 532.929 +82.3626 155.57 565.015 +80.4955 162.308 589.488 +77.9233 168.469 611.865 +78.597 183.123 665.087 +73.9016 186.651 677.9 +66.4115 183.089 664.965 +61.0875 185.352 673.182 +54.2152 182.866 664.155 +48.8784 185.554 673.915 +42.1662 183.01 664.677 +36.5828 185.301 672.998 +30.0538 182.727 663.648 +24.3773 185.31 673.029 +18.0097 182.573 663.089 +12.1713 185.103 672.277 +5.99513 182.363 662.327 +4.26469e-14 184.892 671.511 +-5.99513 182.363 662.327 +-12.1399 184.625 670.541 +-17.96 182.069 661.258 +-24.3005 184.726 670.91 +-29.9011 181.799 660.277 +-36.4258 184.506 670.109 +-41.8488 181.632 659.673 +-48.5854 184.441 669.875 +-53.8543 181.649 659.733 +-60.6691 184.082 668.572 +-65.8556 181.557 659.399 +-72.8459 183.985 668.216 +-77.8385 181.356 658.669 +-85.077 183.935 668.036 +-89.8673 181.205 658.12 +-97.1846 183.566 666.694 +-101.811 180.839 656.793 +-109.379 183.324 665.815 +-113.949 180.759 656.502 +-121.814 183.39 666.057 +-126.125 180.647 656.096 +-134.349 183.475 666.367 +-138.64 180.894 656.991 +-148.075 184.928 671.643 +-120.925 144.796 525.887 +-124.668 143.347 520.622 +-129.702 143.414 520.866 +-135.259 144.009 523.029 +-820.32 842.019 3058.14 +-847.969 840.086 3051.12 +-875.553 838.09 3043.87 +-903.071 836.03 3036.39 +-930.519 833.906 3028.67 +-957.897 831.719 3020.73 +-159.615 134.384 488.071 +-148.174 121.058 439.671 +-153.702 121.943 442.887 +-1066.79 822.438 2987.02 +-1093.78 819.935 2977.93 +-1120.7 817.371 2968.62 +-462.379 328.29 1192.32 +-453.443 313.576 1138.88 +-449.807 303.127 1100.93 +-446.981 293.682 1066.63 +-448.275 287.287 1043.4 +-445.082 278.347 1010.93 +-446.599 272.655 990.26 +-447.288 266.688 968.586 +-448.864 261.461 949.605 +-450.384 256.394 931.199 +-452.682 251.938 915.018 +-454.81 247.54 899.043 +-457.219 243.436 884.138 +-145.549 75.8301 275.408 +-146.282 74.5952 270.923 +-149.292 74.5346 270.703 +-152.643 74.6294 271.048 +-113.397 54.3059 197.234 +-111.238 52.1926 189.559 +-111.95 51.4732 186.946 +-112.927 50.8916 184.834 +-114.081 50.4008 183.051 +-115.472 50.0211 181.672 +-116.953 49.6843 180.449 +-119.281 49.7026 180.516 +-121.182 49.5356 179.909 +-123.523 49.5409 179.928 +-127.328 50.1111 181.999 +-135.484 52.3301 190.058 +-497.176 188.486 684.566 +-501.205 186.528 677.453 +-504.555 184.35 669.544 +-508.098 182.278 662.019 +-510.64 179.886 653.33 +-514.282 177.917 646.179 +-517.217 175.736 638.257 +-518.679 173.097 628.674 +-528.377 173.21 629.082 +-529.153 170.402 618.884 +-531.585 168.173 610.79 +-162.947 50.6458 183.941 +-163.687 49.9858 181.544 +-166.583 49.9824 181.532 +-169.29 49.9105 181.27 +-550.133 159.372 578.825 +-553.987 157.703 572.765 +-557.636 155.99 566.543 +-561.006 154.215 560.096 +-564.793 152.569 554.117 +-567.948 150.767 547.571 +-572.098 149.241 542.029 +-2356.77 604.16 2194.26 +-590.31 148.705 540.085 +-583.474 144.435 524.577 +-587.61 142.935 519.127 +-591.395 141.355 513.389 +-596.244 140.033 508.586 +-599.39 138.315 502.348 +-604.599 137.076 497.85 +-608.392 135.517 492.186 +-612.053 133.934 486.435 +-616.432 132.511 481.268 +-389.113 82.1631 298.409 +-141.763 29.4014 106.783 +-143.835 29.2981 106.408 +-143.115 28.6284 103.976 +-144.292 28.3433 102.94 +-142.387 27.4617 99.7384 +-141.493 26.7917 97.305 +-143.352 26.6457 96.7747 +-148.095 27.0192 98.1313 +-658.919 117.982 428.501 +-382.754 67.251 244.25 +-380.924 65.6678 238.5 +-381.55 64.5261 234.353 +-383.827 63.6678 231.236 +-383.518 62.3881 226.588 +-383.582 61.1829 222.211 +-381.702 59.6854 216.772 +-384.255 58.892 213.891 +-381.999 57.3722 208.371 +-382.384 56.2663 204.354 +-381.319 54.9603 199.611 +-718.896 101.47 368.53 +-737.904 101.97 370.347 +-724.656 98.0153 355.983 +-735.815 97.3872 353.702 +-742.224 96.0978 349.019 +-749.417 94.8889 344.628 +-754.32 93.3737 339.125 +-404.387 48.9214 177.678 +-405.157 47.8855 173.916 +-409.192 47.2309 171.539 +-406.495 45.8041 166.356 +-406.322 44.6777 162.266 +-408.239 43.7845 159.021 +-406.22 42.4771 154.273 +-403.213 41.0874 149.226 +-404.549 40.1519 145.828 +-406.511 39.2767 142.65 +-405.713 38.1384 138.515 +-404.02 36.9293 134.124 +-405.883 36.0509 130.934 +-387.651 33.4358 121.436 +-384.825 32.2094 116.982 +-380.896 30.9132 112.274 +-379.788 29.8636 108.462 +-380.948 28.9974 105.316 +-381.116 28.0571 101.901 +-381.927 27.1662 98.6654 +-381.45 26.1874 95.1104 +-381.132 25.2257 91.6176 +-380.975 24.2799 88.1824 +-381.271 23.3665 84.8652 +-380.658 22.402 81.3621 +-380.499 21.4696 77.9759 +-380.897 20.5715 74.714 +-381.853 19.7036 71.5617 +-380.225 18.707 67.9422 +-379.939 17.784 64.5899 +-380.509 16.9032 61.3909 +-379.371 15.9505 57.9307 +-381.266 15.126 54.9362 +-381.649 14.2385 51.7129 +-380.517 13.2984 48.2987 +-381.237 12.4261 45.1306 +-379.843 11.4884 41.7249 +-379.808 10.5969 38.4872 +-378.45 9.67347 35.1332 +-377.857 8.77558 31.8721 +-379.327 7.92492 28.7826 +-378.775 7.03107 25.5362 +-378.593 6.14688 22.3249 +-378.281 5.26269 19.1136 +-378.439 4.38617 15.9302 +-377.67 3.501 12.7153 +-377.371 2.62321 9.52726 +-145.278 0.673158 2.44485 +-145.794 0.337751 1.22668 +96.2 0 0 +96.0963 0.229904 0.806491 +97.0852 0.464575 1.62971 +96.167 0.690359 2.42174 +96.1414 0.920397 3.2287 +96.1084 1.15037 4.03543 +96.0682 1.38025 4.84183 +96.9189 1.62508 5.70071 +96.8635 1.85688 6.51385 +96.9004 2.09069 7.33405 +96.8301 2.32243 8.14698 +96.653 2.55137 8.95007 +96.6675 2.78537 9.77094 +96.4758 3.01341 10.5709 +96.4755 3.24745 11.3919 +96.5667 3.48529 12.2262 +96.4521 3.71618 13.0362 +96.1323 3.93868 13.8167 +96.6947 4.19851 14.7282 +96.4587 4.42518 15.5233 +96.3142 4.65576 16.3322 +96.1623 4.88599 17.1398 +95.8068 5.10541 17.9095 +95.8366 5.34534 18.7512 +95.6628 5.57442 19.5548 +95.4817 5.80306 20.3568 +96.1703 6.08677 21.3521 +95.9729 6.31661 22.1584 +95.7682 6.54596 22.9629 +96.5243 6.84347 24.0065 +96.2062 7.06703 24.7908 +96.074 7.30425 25.6229 +95.7417 7.52625 26.4017 +96.3614 7.82507 27.4499 +96.1086 8.05533 28.2577 +96.7069 8.35914 29.3234 +96.1518 8.56475 30.0447 +95.8755 8.79445 30.8505 +96.4429 9.10383 31.9357 +96.1494 9.33419 32.7438 +96.6944 9.64825 33.8456 +96.2899 9.8696 34.622 +95.9721 10.0996 35.4288 +95.6469 10.3288 36.2329 +96.3344 10.6702 37.4304 +96.8226 10.9947 38.5687 +96.561 11.2366 39.4174 +96.2913 11.4781 40.2646 +95.9223 11.708 41.0711 +96.5469 12.0621 42.3133 +96.1593 12.2926 43.1219 +96.3961 12.6048 44.2171 +95.9912 12.8349 45.0243 +96.2949 13.162 46.1715 +95.8723 13.3918 46.9779 +96.152 13.7219 48.1359 +96.5062 14.0673 49.3473 +95.9668 14.2845 50.1094 +96.3831 14.6465 51.3792 +95.9132 14.8765 52.1861 +96.0422 15.2014 53.3256 +95.5547 15.4306 54.1296 +95.8313 15.7857 55.3753 +95.922 16.1146 56.5291 +96.1687 16.4742 57.7905 +95.5563 16.6889 58.5437 +95.7762 17.0512 59.8149 +95.9803 17.4159 61.094 +95.4222 17.6449 61.8972 +95.5162 17.9967 63.1315 +95.5131 18.3346 64.3167 +95.6586 18.7057 65.6185 +95.2213 18.966 66.5318 +95.7394 19.4214 68.1293 +95.1974 19.6662 68.9881 +95.7577 20.1435 70.6624 +95.1129 20.3718 71.4633 +95.8695 20.9058 73.3364 +95.2004 21.1343 74.1382 +95.1413 21.5008 75.4237 +95.8322 22.0448 77.3319 +95.1268 22.2732 78.1333 +95.7726 22.8237 80.0643 +95.6416 23.1973 81.3748 +95.5684 23.5903 82.7535 +94.8139 23.818 83.5523 +95.3685 24.3805 85.5254 +95.2417 24.7775 86.9183 +95.0967 25.1758 88.3155 +94.9336 25.5753 89.7169 +94.823 25.9953 91.1902 +94.6228 26.3971 92.5998 +95.0293 26.9775 94.6356 +94.6488 27.343 95.9178 +94.3886 27.7487 97.3411 +94.7177 28.3373 99.4059 +94.3474 28.7258 100.769 +94.0258 29.1354 102.205 +94.3413 29.7522 104.369 +94.3648 30.2895 106.254 +93.9113 30.6821 107.631 +94.076 31.2863 109.751 +94.1463 31.8724 111.807 +93.6262 32.268 113.195 +93.2727 32.7286 114.81 +93.8101 33.5159 117.572 +93.0406 33.8485 118.739 +93.5656 34.6649 121.603 +93.8693 35.4196 124.25 +93.1448 35.799 125.581 +92.7473 36.3125 127.382 +114.867 45.8188 160.73 +115.641 47.0009 164.877 +115.024 47.6416 167.124 +115.409 48.7195 170.905 +115.197 49.5718 173.895 +115.098 50.4965 177.139 +114.845 51.3776 180.23 +115.06 52.4964 184.155 +115.16 53.5965 188.014 +114.8 54.5108 191.221 +114.833 55.6425 195.191 +114.754 56.7542 199.091 +114.948 58.0385 203.596 +114.129 58.844 206.422 +111.789 58.8714 206.518 +109.094 58.697 205.906 +106.82 58.7349 206.039 +104.245 58.5939 205.545 +101.988 58.6183 205.63 +99.7802 58.6614 205.781 +97.5359 58.6735 205.823 +94.8917 58.4286 204.965 +93.0282 58.6534 205.753 +90.5324 58.47 205.11 +91.0404 60.2547 211.37 +90.9919 61.7411 216.585 +90.929 63.2829 221.993 +89.0903 63.6259 223.196 +90.5986 66.4301 233.033 +90.3959 68.0871 238.846 +89.9609 69.6445 244.309 +89.8894 71.5679 251.056 +89.3213 73.184 256.726 +89.275 75.3242 264.233 +88.9488 77.3389 271.301 +88.764 79.5938 279.211 +88.698 82.0899 287.967 +88.3969 84.5128 296.466 +88.2154 87.2041 305.907 +87.6361 89.6626 314.532 +83.7521 88.7807 311.438 +84.8662 93.3137 327.339 +82.4996 94.2063 330.471 +82.3996 97.8458 343.238 +82.5501 102.081 358.093 +81.8548 105.573 370.343 +82.339 110.949 389.204 +81.2465 114.587 401.964 +84.4844 124.966 438.373 +84.2541 130.995 459.523 +83.9267 137.491 482.312 +83.3014 144.185 505.794 +82.8028 151.89 532.82 +81.8199 159.602 559.875 +78.7334 163.95 575.128 +79.8975 178.39 625.783 +75.8914 182.606 640.572 +71.4975 186.488 654.191 +64.0441 182.341 639.642 +59.2485 185.655 651.268 +52.2694 182.073 638.701 +47.3367 185.582 651.012 +40.5668 181.83 637.85 +35.489 185.643 651.227 +28.9153 181.558 636.896 +23.5781 185.1 649.32 +17.3213 181.34 636.131 +11.7839 185.075 649.233 +5.76911 181.231 635.748 +4.12815e-14 184.829 648.37 +-5.76649 181.149 635.46 +-11.7612 184.718 647.983 +-17.282 180.929 634.689 +-23.5188 184.634 647.686 +-28.7975 180.819 634.303 +-35.2849 184.576 647.482 +-40.3226 180.735 634.01 +-47.0089 184.297 646.503 +-51.8458 180.597 633.525 +-58.7604 184.125 645.903 +-63.3636 180.403 632.845 +-70.5149 183.925 645.2 +-74.9405 180.318 632.546 +-82.2496 183.642 644.205 +-86.5128 180.149 631.954 +-94.1784 183.709 644.441 +-98.1898 180.114 631.832 +-106.031 183.528 643.807 +-109.74 179.779 630.657 +-117.838 183.209 642.688 +-121.46 179.658 630.232 +-129.788 183.048 642.122 +-133.218 179.507 629.7 +-142.482 183.767 644.644 +-121.12 149.775 525.404 +-124.893 148.305 520.244 +-130.076 148.533 521.047 +-135.718 149.227 523.482 +-820.32 869.573 3050.42 +-847.969 867.577 3043.42 +-875.553 865.516 3036.18 +-903.071 863.388 3028.72 +-930.519 861.195 3021.03 +-167.178 149.907 525.866 +-151.826 132.01 463.084 +-148.544 125.332 439.658 +-154.908 126.922 445.235 +-1066.79 849.352 2979.48 +-1093.78 846.767 2970.41 +-1120.56 844.015 2960.76 +-460.558 337.698 1184.63 +-453.55 323.914 1136.27 +-449.404 312.767 1097.17 +-447.093 303.367 1064.19 +-452.294 299.348 1050.1 +-449.614 290.38 1018.64 +-453.457 285.901 1002.93 +-447.858 275.763 967.362 +-448.864 270.017 947.207 +-450.765 265.008 929.633 +-452.682 260.183 912.708 +-454.942 255.714 897.032 +-144.97 79.7117 279.624 +-145.595 78.336 274.799 +-146.79 77.3038 271.178 +-149.574 77.1191 270.53 +-152.118 76.8065 269.433 +-113.639 56.2029 197.157 +-111.485 54.0201 189.5 +-111.55 52.9677 185.808 +-113.181 52.6751 184.782 +-114.184 52.097 182.753 +-116.099 51.9388 182.199 +-117.271 51.4497 180.483 +-119.388 51.3754 180.222 +-121.672 51.3636 180.181 +-123.634 51.2076 179.634 +-127.776 51.9328 182.177 +-493.227 196.74 690.155 +-135.823 53.1774 186.543 +-136.117 52.3149 183.518 +-504.966 190.538 668.398 +-508.93 188.552 661.43 +-511.362 186.035 652.603 +-515.317 184.109 645.845 +-518.449 181.919 638.161 +-527.83 181.916 638.15 +-526.867 178.366 625.7 +-529.917 176.232 618.212 +-532.164 173.865 609.91 +-536.509 172.21 604.105 +-164.999 52.0353 182.537 +-167.179 51.8031 181.723 +-547.683 166.753 584.96 +-551.687 165.052 578.995 +-555.078 163.185 572.444 +-558.531 161.354 566.02 +-561.701 159.459 559.374 +-565.213 157.679 553.129 +-567.948 155.7 546.189 +-572.526 154.24 541.065 +-572.019 151.436 531.229 +-592.631 154.176 540.84 +-584.132 149.33 523.843 +-588.79 147.909 518.856 +-592.584 146.274 513.123 +-596.918 144.778 507.875 +-600.824 143.183 502.279 +-605.359 141.74 497.218 +-608.852 140.058 491.315 +-613.519 138.648 486.37 +-617.209 137.02 480.658 +-621.547 135.538 475.46 +-140.975 30.1949 105.922 +-143.438 30.1736 105.847 +-143.115 29.5652 103.713 +-143.328 29.0751 101.994 +-142.387 28.3604 99.4866 +-142.145 27.7959 97.5065 +-144.662 27.7693 97.4132 +-149.002 28.0741 98.4826 +-659.831 122.012 428.011 +-385.422 69.9359 245.331 +-381.679 67.9511 238.369 +-383.827 67.0354 235.157 +-383.063 65.6208 230.194 +-383.603 64.4439 226.066 +-383.497 63.1708 221.6 +-383.166 61.8752 217.055 +-382.437 60.5313 212.341 +-384.262 59.6006 209.076 +-381.509 57.9747 203.372 +-386.504 57.5305 201.814 +-719.426 104.868 367.87 +-723.18 103.206 362.041 +-2919.2 407.767 1430.42 +-736.62 100.684 353.194 +-742.763 99.3147 348.391 +-750.139 98.0887 344.09 +-755.408 96.5683 338.757 +-405.57 50.67 177.748 +-407.167 49.6979 174.338 +-409.376 48.7985 171.182 +-406.035 47.2495 165.749 +-405.029 45.9928 161.341 +-409.444 45.3508 159.088 +-405.29 43.7668 153.532 +-408.068 42.943 150.642 +-405.111 41.5235 145.662 +-404.162 40.3276 141.467 +-405.901 39.4049 138.23 +-407.708 38.4859 135.007 +-405.124 37.1613 130.36 +-387.746 34.5385 121.159 +-382.917 33.0984 116.108 +-382.618 32.069 112.496 +-381.898 31.0122 108.789 +-382.198 30.0444 105.394 +-381.887 29.0339 101.85 +-380.188 27.9275 97.9681 +-381.45 27.0444 94.8703 +-380.453 26.0048 91.2234 +-381.363 25.1 88.0496 +-381.856 24.1682 84.7808 +-380.658 23.1351 81.1567 +-380.499 22.1722 77.779 +-380.309 21.2119 74.4103 +-380.479 20.2751 71.1242 +-379.34 19.2742 67.6129 +-380.431 18.3898 64.5103 +-379.621 17.4156 61.093 +-381.05 16.5453 58.0402 +-380.277 15.5804 54.6553 +-380.758 14.6701 51.462 +-379.922 13.7121 48.1013 +-380.542 12.8094 44.9346 +-379.843 11.8644 41.6196 +-378.913 10.9179 38.2995 +-377.952 9.97687 34.9983 +-379.55 9.10336 31.9341 +-380.723 8.21436 28.8155 +-378.376 7.25351 25.4449 +-377.794 6.33465 22.2216 +-378.78 5.44206 19.0905 +-378.439 4.52971 15.89 +-379.569 3.63374 12.747 +-379.17 2.72197 9.54853 +-145.678 0.697103 2.4454 +-145.794 0.348804 1.22358 +96.2 0 0 +96.0963 0.23717 0.804384 +96.1853 0.474816 1.61038 +96.167 0.712178 2.41542 +97.0408 0.95837 3.2504 +96.2083 1.18796 4.02907 +96.0682 1.42387 4.82918 +96.1204 1.66263 5.63897 +96.8635 1.91557 6.49683 +96.0031 2.1368 7.24716 +96.8301 2.39584 8.1257 +95.8567 2.61032 8.85315 +96.6675 2.87341 9.74542 +95.681 3.08306 10.4565 +96.4755 3.35009 11.3621 +96.3684 3.58804 12.1692 +96.2541 3.82574 12.9753 +96.1323 4.06316 13.7806 +95.9045 4.29583 14.5697 +96.5574 4.5697 15.4986 +95.4279 4.75871 16.1396 +96.1623 5.04041 17.095 +96.0031 5.27755 17.8993 +96.5226 5.55374 18.836 +95.6628 5.75061 19.5037 +96.3604 6.04156 20.4905 +95.9755 6.26642 21.2531 +95.9729 6.51626 22.1005 +95.7682 6.75286 22.9029 +96.5243 7.05976 23.9438 +96.2062 7.2904 24.726 +95.9776 7.52753 25.5303 +95.7417 7.76413 26.3327 +96.3614 8.07239 27.3782 +96.1086 8.30993 28.1838 +96.7069 8.62334 29.2468 +96.2469 8.84418 29.9958 +95.9704 9.08138 30.8003 +96.4429 9.39156 31.8523 +96.1494 9.62921 32.6583 +96.6004 9.94352 33.7243 +96.2899 10.1815 34.5316 +95.9721 10.4188 35.3362 +96.6704 10.7693 36.5249 +97.0761 11.0922 37.6201 +96.8226 11.3422 38.4679 +96.4689 11.5807 39.2769 +96.2913 11.8409 40.1594 +95.9223 12.0781 40.9638 +95.5459 12.3143 41.7652 +95.978 12.6573 42.9282 +95.7643 12.918 43.8125 +96.7102 13.3398 45.2431 +96.2949 13.578 46.0509 +96.6742 13.9307 47.2471 +96.152 14.1556 48.0101 +96.5062 14.5119 49.2184 +96.7578 14.8575 50.3905 +96.2956 15.0957 51.1984 +95.9132 15.3467 52.0498 +96.0422 15.6818 53.1863 +96.3301 16.0474 54.4263 +95.8313 16.2846 55.2306 +96.0925 16.6534 56.4816 +96.0838 16.9799 57.5888 +96.3153 17.3531 58.8546 +95.6084 17.5593 59.5541 +95.9803 17.9663 60.9344 +95.4222 18.2025 61.7355 +96.0931 18.6776 63.3469 +95.5131 18.9141 64.1487 +95.8214 19.3297 65.5584 +95.7067 19.6652 66.6963 +95.7394 20.0352 67.9513 +95.8363 20.4239 69.2696 +95.2024 20.6597 70.0691 +95.9797 21.2073 71.9263 +95.8695 21.5665 73.1448 +95.2004 21.8023 73.9445 +95.1413 22.1804 75.2266 +95.1427 22.5779 76.575 +95.6591 23.1058 78.3652 +95.6217 23.5079 79.7293 +95.0425 23.7805 80.6537 +95.6427 24.3548 82.6014 +95.4774 24.7428 83.9172 +95.3685 25.151 85.302 +95.2417 25.5607 86.6913 +95.0967 25.9715 88.0848 +94.9336 26.3836 89.4825 +94.823 26.8169 90.9519 +95.1134 27.3727 92.8368 +95.0293 27.8301 94.3884 +94.6488 28.2072 95.6672 +95.0706 28.8328 97.7889 +94.7853 29.2539 99.2172 +94.4143 29.6549 100.577 +94.0258 30.0562 101.938 +94.3413 30.6925 104.096 +94.2349 31.2039 105.831 +93.847 31.6301 107.276 +94.0124 32.2534 109.39 +94.2093 32.9019 111.59 +93.6262 33.2879 112.899 +93.8268 33.9635 115.19 +93.7493 34.5526 117.188 +93.1008 34.9409 118.505 +93.5656 35.7605 121.285 +93.2227 36.2874 123.072 +93.5512 37.0917 125.8 +92.5752 37.3906 126.814 +102.406 42.1393 142.919 +115.082 48.2519 163.651 +114.968 49.1236 166.607 +115.355 50.2356 170.378 +115.197 51.1386 173.441 +115.045 52.0685 176.595 +115.211 53.1703 180.332 +115.06 54.1556 183.674 +115.211 55.3149 187.605 +114.85 56.2583 190.805 +114.833 57.4011 194.681 +114.415 58.3749 197.983 +112.943 58.8291 199.524 +113.753 60.5039 205.204 +111.189 60.406 204.872 +109.457 60.7539 206.052 +107.177 60.7937 206.187 +104.508 60.5986 205.525 +102.634 60.854 206.392 +100.118 60.7205 205.939 +97.8676 60.7338 205.984 +95.2984 60.5338 205.306 +93.387 60.7406 206.007 +90.6105 60.3701 204.75 +91.1169 62.2115 210.996 +90.6548 63.4564 215.218 +90.8557 65.2305 221.235 +90.7746 66.8778 226.822 +90.6337 68.5563 232.515 +90.4301 70.2656 238.312 +90.0945 71.9523 244.033 +89.5964 73.5892 249.584 +89.5434 75.6848 256.692 +89.3677 77.7858 263.817 +88.7383 79.5947 269.952 +88.7348 82.0823 278.389 +88.4424 84.4403 286.387 +88.3418 87.1293 295.507 +85.5965 87.2897 296.051 +84.2974 88.9727 301.759 +83.3014 91.094 308.953 +84.9872 96.4001 326.949 +82.4996 97.1838 329.607 +82.3321 100.855 342.06 +82.9613 105.832 358.937 +81.7301 108.743 368.813 +82.7576 115.038 390.161 +85.1199 123.844 420.027 +84.612 129.11 437.888 +84.1846 135.023 457.944 +83.9102 141.809 480.958 +83.3014 148.742 504.473 +82.522 156.159 529.626 +81.1379 163.274 553.757 +79.7646 171.347 581.138 +79.8366 183.888 623.672 +73.616 182.729 619.743 +68.7588 185.014 627.49 +61.9164 181.854 616.775 +57.0696 184.479 625.678 +50.6218 181.907 616.952 +45.6068 184.451 625.581 +39.2603 181.536 615.695 +34.1178 184.111 624.43 +27.9818 181.25 614.725 +22.6951 183.799 623.372 +16.7585 180.993 613.854 +11.3353 183.657 622.89 +5.58062 180.85 613.37 +3.97324e-14 183.516 622.409 +-5.578 180.766 613.082 +-11.3144 183.318 621.739 +-16.7245 180.626 612.607 +-22.6253 183.234 621.455 +-27.8641 180.487 612.138 +-33.9189 183.038 620.79 +-39.0283 180.463 612.058 +-45.272 183.097 620.989 +-50.104 180.046 610.641 +-56.6338 183.071 620.9 +-61.3796 180.278 611.429 +-67.9853 182.932 620.43 +-72.518 180.004 610.498 +-79.2638 182.569 619.198 +-83.7326 179.871 610.047 +-90.713 182.542 619.107 +-94.9528 179.682 609.407 +-102.073 182.262 618.157 +-106.373 179.771 609.711 +-113.618 182.232 618.055 +-117.56 179.386 608.403 +-125.056 181.948 617.093 +-128.951 179.249 607.94 +-125.683 167.223 567.151 +-121.509 155.006 525.718 +-125.478 153.708 521.316 +-130.683 153.943 522.111 +-136.783 155.151 526.209 +-161.946 177.095 600.634 +-847.969 894.998 3035.47 +-875.553 892.871 3028.25 +-903.071 890.677 3020.81 +-930.519 888.414 3013.14 +-168.026 155.429 527.152 +-149.571 134.159 455.013 +-148.884 129.589 439.513 +-155.955 131.818 447.073 +-1066.79 876.197 2971.7 +-1093.78 873.53 2962.65 +-483.035 375.326 1272.95 +-459.017 347.206 1177.58 +-453.12 333.835 1132.23 +-449.147 322.469 1093.68 +-446.793 312.746 1060.7 +-453.595 309.697 1050.36 +-464.189 309.27 1048.92 +-452.899 294.575 999.078 +-447.695 284.377 964.49 +-449.61 279.015 946.304 +-451.441 273.794 928.595 +-453.457 268.866 911.882 +-455.599 264.178 895.982 +-144.97 82.231 278.894 +-145.958 81.0135 274.765 +-147.344 80.048 271.49 +-150.137 79.8563 270.84 +-468.999 244.288 828.526 +-114.512 58.4244 198.151 +-111.14 55.555 188.42 +-112.25 54.9848 186.486 +-113.181 54.34 184.299 +-114.441 53.8649 182.688 +-116.465 53.7489 182.294 +-117.483 53.1717 180.337 +-119.872 53.2139 180.479 +-121.346 52.8448 179.228 +-124.296 53.1092 180.125 +-128.558 53.9025 182.815 +-491.811 202.376 686.376 +-494.767 199.834 677.755 +-498.185 197.523 669.917 +-136.19 53.0125 179.797 +-136.512 52.1742 176.954 +-511.904 192.118 651.586 +-515.864 190.13 644.842 +-523.435 189.474 642.616 +-533.246 189.591 643.014 +-526.175 183.762 623.246 +-529.98 181.824 616.671 +-533.578 179.837 609.933 +-538.003 178.148 604.204 +-540.724 175.917 596.638 +-544.74 174.131 590.58 +-170.294 53.4879 181.409 +-552.565 170.54 578.401 +-555.078 168.343 570.948 +-559.77 166.822 565.793 +-562.951 164.865 559.154 +-566.755 163.106 553.189 +-569.999 161.202 546.729 +-573.881 159.491 540.929 +-573.458 156.615 531.174 +-590.672 158.523 537.644 +-584.864 154.243 523.129 +-589.453 152.755 518.084 +-592.732 150.936 511.911 +-597.891 149.598 507.375 +-602.183 148.042 502.099 +-606.044 146.385 496.479 +-609.848 144.72 490.832 +-614.753 143.318 486.076 +-618.453 141.635 480.368 +-622.643 140.068 475.054 +-141.763 31.3232 106.235 +-143.042 31.0413 105.279 +-143.515 30.5848 103.731 +-142.685 29.8594 101.271 +-142.549 29.2901 99.3399 +-142.389 28.7236 97.4187 +-146.628 29.0361 98.4786 +-149.167 28.9937 98.3347 +-383.181 73.0948 247.908 +-383.921 71.8655 243.738 +-381.763 70.1143 237.799 +-382.309 68.8807 233.615 +-383.148 67.7099 229.644 +-383.603 66.4808 225.475 +-383.925 65.2404 221.268 +-381.616 63.5726 215.612 +-383.13 62.5576 212.17 +-381.564 61.0525 207.065 +-387.981 60.8217 206.282 +-716.412 110.008 373.1 +-725.077 109.032 369.791 +-723.535 106.52 361.272 +-732.675 105.578 358.076 +-737.963 104.056 352.914 +-744.381 102.677 348.237 +-409.864 55.288 187.514 +-756.948 99.8238 338.561 +-406.48 52.3886 177.681 +-406.802 51.2226 173.726 +-405.524 49.8671 169.129 +-408.612 49.0523 166.365 +-406.322 47.5981 161.433 +-406.848 46.4875 157.666 +-403.801 44.9844 152.568 +-405.174 43.986 149.183 +-405.298 42.8556 145.349 +-407.733 41.9699 142.345 +-407.41 40.8013 138.381 +-406.1 39.5459 134.123 +-405.029 38.3267 129.988 +-384.893 35.368 119.954 +-383.585 34.2042 116.007 +-378.888 32.7602 111.109 +-380.939 31.912 108.232 +-381.429 30.9318 104.908 +-381.116 29.8911 101.378 +-381.927 28.9419 98.1592 +-381.063 27.8708 94.5264 +-380.55 26.8335 91.0083 +-381.558 25.9065 87.8643 +-381.174 24.8876 84.4083 +-382.513 23.9826 81.3391 +-381.771 22.9495 77.8351 +-381.583 21.9557 74.4646 +-380.381 20.9106 70.92 +-381.7 20.0071 67.8557 +-380.136 18.9563 64.2918 +-381.002 18.0314 61.155 +-380.161 17.0285 57.7535 +-379.881 16.0562 54.4559 +-380.362 15.118 51.2741 +-380.417 14.164 48.0383 +-379.45 13.1763 44.6886 +-378.551 12.1977 41.3696 +-380.206 11.3014 38.3298 +-378.748 10.3139 34.9805 +-378.753 9.37137 31.7838 +-379.427 8.44514 28.6424 +-379.573 7.50643 25.4587 +-378.593 6.54867 22.2104 +-378.281 5.60668 19.0156 +-378.04 4.66795 15.8318 +-379.469 3.7476 12.7103 +-378.67 2.8043 9.51103 +-145.978 0.720615 2.44403 +-144.395 0.356372 1.20867 +96.2 0 0 +96.1963 0.244672 0.803047 +96.1853 0.489324 1.60603 +96.167 0.73394 2.40889 +96.1414 0.9785 3.21157 +96.1084 1.22299 4.01401 +97.0668 1.48263 4.8662 +96.1204 1.71344 5.62374 +96.0654 1.95784 6.42591 +96.9004 2.22268 7.29513 +96.7305 2.46651 8.09541 +96.7525 2.71523 8.91175 +96.6675 2.96121 9.7191 +96.5752 3.20696 10.5257 +96.4755 3.45245 11.3314 +96.3684 3.69768 12.1363 +96.2541 3.94265 12.9403 +96.0334 4.18301 13.7292 +96.6947 4.46356 14.65 +95.5711 4.66122 15.2988 +96.3142 4.94967 16.2455 +95.2774 5.14663 16.892 +95.8068 5.42771 17.8145 +95.6407 5.67116 18.6135 +95.4672 5.9142 19.4112 +96.1652 6.21355 20.3937 +95.9755 6.4579 21.1957 +95.9729 6.71537 22.0408 +95.8652 6.96625 22.8642 +96.4275 7.26817 23.8551 +96.013 7.49807 24.6097 +95.9776 7.75755 25.4613 +96.6068 8.07368 26.4989 +96.3614 8.31906 27.3043 +95.9174 8.5468 28.0518 +95.8486 8.80794 28.9089 +96.2469 9.11443 29.9148 +96.8238 9.44211 30.9903 +96.4429 9.67854 31.7663 +96.1494 9.92344 32.5701 +96.6944 10.2573 33.666 +96.2899 10.4926 34.4383 +95.9721 10.7371 35.2408 +96.6704 11.0983 36.4263 +97.0761 11.4311 37.5185 +96.7302 11.6776 38.3275 +96.561 11.9459 39.2082 +96.1996 12.1911 40.0128 +96.7445 12.5538 41.2034 +96.3649 12.7994 42.0094 +95.978 13.044 42.8123 +96.3961 13.4006 43.9825 +95.9912 13.6452 44.7854 +96.2054 13.9799 45.8839 +95.8723 14.2373 46.7286 +96.2407 14.6017 47.9246 +96.4179 14.9417 49.0406 +95.9668 15.1863 49.8436 +96.2082 15.5429 51.0138 +95.8262 15.8013 51.862 +96.0422 16.161 53.0427 +96.3301 16.5378 54.2793 +96.6028 16.9173 55.5248 +96.0073 17.1471 56.2791 +96.1687 17.5142 57.4839 +95.6406 17.7581 58.2846 +95.7762 18.1277 59.4975 +95.8135 18.4832 60.6644 +95.9196 18.8565 61.8897 +96.0931 19.2484 63.1758 +95.5131 19.492 63.9755 +95.6586 19.8865 65.2703 +95.7067 20.2661 66.5162 +95.8197 20.6648 67.8247 +95.1974 20.9077 68.622 +95.8371 21.4329 70.3458 +95.1129 21.6579 71.0842 +95.2434 22.0804 72.4709 +95.2004 22.4685 73.7448 +95.1413 22.8581 75.0235 +95.1427 23.2678 76.3682 +95.8112 23.8497 78.2779 +95.0934 24.0924 79.0746 +95.6416 24.6617 80.943 +95.5684 25.0795 82.3144 +94.8139 25.3216 83.109 +95.3685 25.9196 85.0716 +95.2417 26.3417 86.4572 +95.0967 26.7651 87.8469 +94.791 27.149 89.1067 +94.823 27.6363 90.7063 +94.4826 28.022 91.9721 +94.8903 28.6386 93.9958 +94.5799 29.048 95.3394 +94.3886 29.5005 96.8246 +94.7853 30.1478 98.9492 +94.4143 30.5611 100.306 +94.7547 31.2148 102.451 +94.3413 31.6304 103.815 +94.3648 32.2016 105.69 +93.847 32.5966 106.986 +94.0124 33.2389 109.095 +93.5799 33.6808 110.545 +93.6885 34.3281 112.67 +93.7037 34.9553 114.728 +93.6275 35.5624 116.721 +93.4619 36.1482 118.643 +93.4467 36.8063 120.803 +93.7517 37.6084 123.436 +93.7835 38.3201 125.772 +92.5179 38.5093 126.393 +97.9883 41.5535 136.384 +115.697 49.9922 164.081 +115.134 50.6978 166.397 +115.355 51.7706 169.918 +115.197 52.7012 172.973 +114.886 53.5855 175.875 +114.845 54.621 179.274 +115.06 55.8104 183.178 +115.11 56.9547 186.933 +114.9 58.0027 190.373 +114.833 59.1551 194.155 +114.464 60.1842 197.533 +114.041 61.2157 200.918 +110.795 60.7316 199.329 +111.651 62.5103 205.167 +109.866 62.844 206.263 +107.489 62.8341 206.23 +105.297 62.9216 206.517 +102.634 62.7135 205.834 +100.499 62.8137 206.163 +98.1994 62.8018 206.124 +95.6238 62.5966 205.451 +93.387 62.5966 205.451 +90.7668 62.322 204.55 +91.27 64.22 210.779 +90.6923 65.4225 214.726 +90.8923 67.2508 220.726 +90.7746 68.9214 226.21 +90.5986 70.6238 231.797 +90.0881 72.1387 236.769 +89.9943 74.0684 243.103 +89.7591 75.9754 249.362 +89.5116 77.9698 255.908 +89.3986 80.1904 263.196 +89.0991 82.3602 270.318 +88.5302 84.3954 276.998 +88.6128 87.1884 286.164 +88.3418 89.7917 294.709 +85.6232 89.9849 295.343 +83.7797 91.1283 299.096 +83.9524 94.6111 310.527 +84.3824 98.6387 323.746 +81.986 99.5297 326.67 +82.4221 104.051 341.51 +83.3293 109.549 359.556 +81.7925 112.152 368.097 +85.7083 122.78 402.981 +85.0436 127.513 418.517 +84.5573 132.969 436.423 +84.202 139.178 456.801 +83.7947 145.941 478.998 +83.2857 153.259 503.016 +82.4629 160.815 527.817 +80.0941 166.098 545.157 +81.1351 179.617 589.526 +78.0939 185.37 608.411 +71.8501 183.795 603.242 +66.846 185.363 608.385 +60.4307 182.914 600.35 +55.5269 184.978 607.122 +49.3822 182.874 600.219 +44.3442 184.825 606.62 +38.3263 182.632 599.424 +33.1915 184.586 605.835 +27.345 182.537 599.112 +22.1019 184.464 605.436 +16.3815 182.328 598.426 +11.0352 184.257 604.757 +5.45408 182.15 597.843 +3.87037e-14 184.227 604.658 +-5.4567 182.238 598.13 +-11.009 183.82 603.322 +-16.3606 182.095 597.661 +-22.0355 183.911 603.62 +-27.2752 182.071 597.584 +-33.0711 183.916 603.638 +-38.1553 181.818 596.751 +-44.1419 183.982 603.853 +-48.9899 181.422 595.451 +-55.1696 183.787 603.214 +-59.9228 181.377 595.304 +-66.1665 183.478 602.201 +-70.8652 181.276 594.973 +-77.253 183.374 601.86 +-81.8008 181.09 594.363 +-88.2775 183.069 600.857 +-92.9426 181.252 594.894 +-99.5236 183.139 601.087 +-103.947 181.039 594.196 +-110.944 183.38 601.878 +-114.936 180.741 593.216 +-121.736 182.53 599.088 +-126.12 180.671 592.987 +-122.813 168.399 552.707 +-121.726 160.027 525.231 +-125.995 159.058 522.052 +-131.29 159.384 523.119 +-139.274 162.805 534.348 +-153.608 173.11 568.173 +-847.969 922.346 3027.27 +-171.3 180.026 590.87 +-903.071 917.893 3012.65 +-930.633 915.672 3005.36 +-167.909 160.067 525.362 +-148.669 137.425 451.047 +-149.41 134.02 439.872 +-156.019 135.901 446.047 +-1066.79 902.971 2963.67 +-1093.78 900.222 2954.65 +-483.274 386.987 1270.14 +-458.421 357.349 1172.87 +-452.87 343.846 1128.55 +-448.671 331.97 1089.57 +-446.119 321.815 1056.24 +-455.087 320.212 1050.98 +-465.478 319.606 1048.99 +-448.872 300.875 987.512 +-448.427 293.545 963.454 +-449.735 287.62 944.009 +-451.568 282.239 926.348 +-453.457 277.081 909.419 +-456.125 272.564 894.594 +-144.791 84.6394 277.798 +-146.003 83.515 274.108 +-147.113 82.3649 270.333 +-150.7 82.6051 271.121 +-469.238 251.881 826.709 +-112.718 59.2665 194.521 +-111.485 57.4303 188.494 +-111.95 56.5134 185.485 +-113.333 56.0759 184.049 +-114.647 55.6105 182.521 +-116.099 55.2176 181.232 +-118.225 55.1427 180.986 +-119.979 54.8888 180.153 +-122.271 54.8752 180.108 +-125.069 55.0725 180.755 +-129.453 55.936 183.59 +-506.877 214.949 705.492 +-495.914 206.418 677.491 +-499.869 204.247 670.366 +-501.557 201.199 660.363 +-505.718 199.19 653.768 +-136.251 52.6977 172.961 +-136.667 51.9099 170.376 +-520.419 194.138 637.186 +-533.806 195.589 641.951 +-526.489 189.49 621.934 +-531.125 187.785 616.335 +-166.546 57.848 189.865 +-163.206 55.6935 182.794 +-542.102 181.754 596.543 +-545.336 179.648 589.631 +-548.888 177.67 583.136 +-552.971 175.88 577.263 +-556.511 173.934 570.876 +-560.252 172.068 564.751 +-563.437 170.05 558.126 +-566.755 168.09 551.695 +-569.999 166.127 545.253 +-573.881 164.365 539.468 +-575.4 161.947 531.533 +-585.957 162.063 531.912 +-585.595 159.155 522.368 +-590.338 157.659 517.46 +-594.144 155.918 511.745 +-599.015 154.459 506.956 +-601.956 152.509 500.555 +-607.26 151.161 496.132 +-610.537 149.311 490.061 +-614.753 147.697 484.763 +-619.152 146.128 479.613 +-622.878 144.402 473.949 +-142.394 32.424 106.42 +-142.724 31.9186 104.761 +-143.435 31.5019 103.393 +-142.765 30.7893 101.055 +-142.387 30.1507 98.9588 +-142.47 29.6182 97.2111 +-147.202 30.0405 98.5972 +-148.095 29.6649 97.3641 +-661.904 130.122 427.077 +-383.254 73.9326 242.657 +-382.769 72.4471 237.781 +-379.864 70.5314 231.494 +-384.166 69.9639 229.631 +-383.944 68.5731 225.066 +-382.039 66.9034 219.586 +-382.046 65.5892 215.273 +-382.004 64.2797 210.975 +-382.434 63.0617 206.977 +-387.107 62.5389 205.261 +-717.115 113.48 372.458 +-730.374 113.184 371.487 +-724.067 109.856 360.561 +-732.675 108.804 357.109 +-412.296 59.9117 196.639 +-406.884 57.8389 189.835 +-409.052 56.8646 186.637 +-757.492 102.948 337.889 +-764.003 101.477 333.06 +-407.624 52.8944 173.607 +-405.799 51.4255 168.786 +-406.035 50.2323 164.869 +-407.616 49.2087 161.51 +-404.716 47.6571 156.417 +-406.313 46.6472 153.102 +-407.321 45.5703 149.568 +-407.171 44.3692 145.626 +-404.162 42.8735 140.717 +-406.467 41.951 137.689 +-406.478 40.7922 133.886 +-407.21 39.7106 130.336 +-385.558 36.5116 119.836 +-380.628 34.9777 114.802 +-382.904 34.1191 111.984 +-381.227 32.9122 108.022 +-380.467 31.7965 104.361 +-380.152 30.7266 100.849 +-382.313 29.8566 97.9936 +-381.45 28.7516 94.3669 +-379.677 27.59 90.5542 +-381.363 26.6846 87.5824 +-382.051 25.707 84.374 +-382.025 24.6839 81.0159 +-380.499 23.5719 77.3663 +-382.563 22.6846 74.4541 +-380.479 21.5551 70.7468 +-380.716 20.5653 67.4982 +-381.022 19.5811 64.2677 +-379.621 18.515 60.7688 +-380.655 17.5716 57.6723 +-379.881 16.5468 54.3088 +-379.966 15.5637 51.0823 +-379.922 14.5777 47.8461 +-379.947 13.5967 44.6262 +-378.948 12.5836 41.3012 +-379.51 11.6255 38.1564 +-380.54 10.6793 35.051 +-379.65 9.6806 31.7731 +-379.327 8.70092 28.5576 +-379.773 7.73988 25.4034 +-379.491 6.7648 22.203 +-378.281 5.77801 18.9642 +-378.14 4.81184 15.7931 +-143.513 1.46063 4.794 +-377.771 2.88312 9.4628 +-146.078 0.743144 2.4391 +-145.494 0.370059 1.21459 +96.2 0 0 +96.1963 0.251907 0.800807 +96.1853 0.503793 1.60155 +96.167 0.755642 2.40217 +96.1414 1.00743 3.20261 +96.1084 1.25915 4.00282 +96.168 1.51234 4.8077 +96.1204 1.7641 5.60805 +96.8635 2.03248 6.46122 +96.9004 2.2884 7.27478 +96.8301 2.54205 8.08115 +96.7525 2.79551 8.88689 +96.6675 3.04877 9.69199 +96.7739 3.30857 10.5179 +96.4755 3.55454 11.2998 +96.3684 3.80702 12.1024 +96.2541 4.05923 12.9042 +96.0334 4.30669 13.6909 +95.9045 4.558 14.4898 +95.6697 4.804 15.2718 +96.3142 5.09603 16.2002 +95.9657 5.3371 16.9666 +96.0031 5.59963 17.8011 +95.8366 5.85082 18.5997 +95.6628 6.10156 19.3968 +95.4817 6.35182 20.1923 +96.1703 6.66236 21.1795 +95.195 6.85789 21.8011 +95.7682 7.16498 22.7773 +96.5243 7.49061 23.8125 +96.2062 7.73532 24.5905 +95.9776 7.98693 25.3903 +96.6068 8.31242 26.425 +96.4573 8.57357 27.2552 +95.9174 8.79952 27.9735 +95.6578 9.05035 28.7709 +96.2469 9.38393 29.8314 +96.16 9.65466 30.692 +95.6865 9.88655 31.4292 +96.2437 10.2269 32.5111 +96.6004 10.5504 33.5394 +96.2899 10.8029 34.3423 +96.9056 11.1622 35.4844 +96.6704 11.4265 36.3247 +96.3344 11.6792 37.128 +96.0835 11.9425 37.965 +96.561 12.2992 39.0989 +97.025 12.6593 40.2436 +96.6531 12.9128 41.0496 +96.3649 13.1779 41.8922 +95.978 13.4297 42.6929 +96.3961 13.7968 43.8598 +95.9013 14.0355 44.6187 +96.2949 14.4066 45.7984 +95.8723 14.6582 46.5983 +96.2407 15.0334 47.791 +96.5062 15.3975 48.9485 +96.0547 15.6497 49.7501 +96.3831 16.0315 50.964 +95.8262 16.2685 51.7174 +96.1288 16.6539 52.9424 +95.6408 16.905 53.7406 +95.8313 17.2784 54.9278 +96.0925 17.6698 56.172 +96.1687 18.032 57.3236 +96.3153 18.4122 58.532 +95.86 18.68 59.3834 +95.9803 19.0628 60.6004 +96.0855 19.4477 61.8239 +95.3514 19.6645 62.5132 +95.5131 20.0684 63.797 +95.8214 20.5094 65.199 +95.7067 20.8654 66.3306 +95.7394 21.258 67.5787 +95.1175 21.5079 68.3732 +95.7577 22.0484 70.0915 +95.9009 22.483 71.4732 +95.2434 22.7333 72.2688 +95.2004 23.1329 73.5391 +95.1413 23.534 74.8142 +95.1427 23.9558 76.1552 +95.1268 24.3795 77.502 +95.1689 24.8245 78.9166 +95.6416 25.3909 80.7172 +94.9739 25.6604 81.5741 +94.6664 26.0298 82.7483 +95.3685 26.686 84.8343 +95.2417 27.1206 86.216 +94.9529 27.5149 87.4693 +94.9336 27.9938 88.9919 +94.823 28.4535 90.4533 +94.4826 28.8506 91.7155 +95.0293 29.5286 93.8709 +94.6488 29.9287 95.1428 +94.3886 30.3728 96.5545 +94.7853 31.0392 98.6732 +94.4143 31.4647 100.026 +94.6884 32.1153 102.094 +94.3413 32.5657 103.526 +94.2999 33.131 105.323 +93.847 33.5604 106.688 +93.9488 34.1987 108.717 +94.0834 34.863 110.829 +93.6262 35.3194 112.28 +93.088 35.7524 113.656 +93.6275 36.6139 116.395 +93.4619 37.2171 118.312 +93.6251 37.9669 120.696 +93.6342 38.6718 122.937 +93.4351 39.3065 124.955 +91.9443 39.4022 125.259 +95.8926 41.8672 133.095 +115.082 51.1967 162.754 +115.024 52.1467 165.774 +115.355 53.3014 169.444 +115.197 54.2595 172.49 +114.939 55.1955 175.465 +114.741 56.1851 178.611 +114.905 57.3836 182.421 +115.211 58.6907 186.577 +114.95 59.7436 189.924 +113.799 60.3558 191.87 +114.706 62.095 197.399 +109.078 60.2834 191.64 +110.701 62.4742 198.605 +112.667 64.9444 206.457 +110.274 64.9426 206.452 +107.891 64.9336 206.423 +105.297 64.7821 205.941 +103.021 64.8118 206.036 +100.456 64.6438 205.501 +98.5726 64.9045 206.33 +95.9898 64.6942 205.662 +94.0649 64.9153 206.365 +91.2748 64.524 205.121 +91.4231 66.2299 210.544 +90.9919 67.5796 214.835 +90.5991 69.0158 219.4 +90.7388 70.9314 225.49 +90.3185 72.4873 230.436 +90.3275 74.4692 236.736 +90.0277 76.2868 242.514 +89.8894 78.3356 249.028 +89.2895 80.076 254.56 +89.2441 82.4187 262.008 +88.7082 84.4238 268.382 +88.5302 86.8909 276.225 +88.3572 89.5075 284.543 +88.7277 92.8506 295.171 +85.8637 92.9058 295.346 +83.5986 93.62 297.616 +83.4517 96.8277 307.814 +83.8743 100.944 320.9 +82.3829 102.969 327.336 +82.2196 106.864 339.72 +83.3942 112.876 358.832 +81.8548 115.556 367.351 +85.5887 126.234 401.296 +85.139 131.431 417.818 +84.612 136.989 435.487 +84.0631 143.057 454.775 +83.6626 150.019 476.909 +83.2544 157.731 501.425 +81.5465 163.73 520.495 +79.0642 168.811 536.646 +80.7043 183.946 584.761 +76.2902 186.444 592.701 +70.0501 184.49 586.489 +65.2885 186.397 592.552 +59.0985 184.171 585.477 +54.2719 186.142 591.743 +48.1739 183.675 583.899 +43.2699 185.68 590.273 +37.4289 183.63 583.755 +32.4483 185.788 590.618 +26.7038 183.528 583.432 +21.5714 185.36 589.257 +16.0098 183.46 583.215 +10.7943 185.565 589.908 +5.33279 183.366 582.917 +3.77852e-14 185.173 588.662 +-5.32755 183.186 582.345 +-10.7769 185.265 588.954 +-15.9496 182.77 581.022 +-21.5225 184.94 587.922 +-26.6078 182.868 581.335 +-32.3175 185.039 588.237 +-37.2396 182.701 580.804 +-43.0746 184.842 587.609 +-47.8836 182.568 580.381 +-53.871 184.767 587.373 +-58.5138 182.349 579.685 +-64.5672 184.338 586.007 +-69.3143 182.552 580.329 +-75.4859 184.478 586.452 +-79.8559 182.012 578.614 +-86.3012 184.262 585.767 +-90.6959 182.1 578.894 +-97.1927 184.138 585.372 +-101.323 181.687 577.579 +-108.131 184.015 584.98 +-112.312 181.836 578.055 +-119.084 183.833 584.402 +-123.09 181.544 577.126 +-121.628 171.705 545.847 +-122.137 165.316 525.536 +-126.175 163.995 521.339 +-131.453 164.301 522.31 +-140.387 168.958 537.115 +-151.054 175.266 557.167 +-162.616 182.11 578.924 +-875.553 947.363 3011.65 +-171.005 178.952 568.885 +-173.732 175.994 559.482 +-168.991 165.862 527.272 +-148.729 141.545 449.97 +-149.75 138.297 439.643 +-156.019 139.92 444.803 +-1066.79 929.67 2955.41 +-1093.78 926.841 2946.41 +-483.685 398.766 1267.67 +-457.826 367.439 1168.08 +-451.866 353.227 1122.9 +-448.634 341.756 1086.44 +-446.793 331.832 1054.89 +-457.001 331.067 1052.46 +-466.572 329.828 1048.52 +-447.875 309.084 982.573 +-448.427 302.224 960.766 +-450.232 296.453 942.418 +-451.568 290.585 923.764 +-453.845 285.518 907.657 +-456.388 280.786 892.613 +-145.282 87.4377 277.963 +-145.731 85.8239 272.833 +-146.79 84.614 268.987 +-151.123 85.2862 271.123 +-470.383 259.962 826.415 +-111.991 60.6252 192.727 +-111.632 59.2068 188.217 +-112.55 58.4962 185.959 +-113.739 57.9408 184.193 +-115.111 57.4865 182.749 +-116.465 57.0292 181.295 +-118.702 57.0022 181.209 +-120.355 56.6892 180.214 +-122.762 56.724 180.325 +-125.731 57.001 181.205 +-130.516 58.0626 184.58 +-507.613 221.626 704.546 +-510.254 218.666 695.137 +-514.096 216.271 687.522 +-504.966 208.556 662.997 +-508.811 206.334 655.932 +-508.474 202.477 643.672 +-511.116 199.876 635.403 +-136.061 52.2572 166.125 +-137.7 51.946 165.135 +-526.93 195.257 620.718 +-531.443 193.453 614.983 +-165.325 59.1219 187.947 +-163.531 57.4544 182.647 +-166.967 57.6356 183.223 +-171.751 58.2523 185.183 +-549.691 183.191 582.36 +-553.579 181.28 576.285 +-556.579 179.099 569.353 +-560.458 177.221 563.384 +-564.063 175.272 557.187 +-568.017 173.446 551.381 +-571.059 171.358 544.743 +-2337.11 689.161 2190.83 +-579.212 167.841 533.563 +-582.766 165.946 527.539 +-586.326 164.066 521.562 +-590.854 162.463 516.468 +-594.813 160.709 510.891 +-598.79 158.967 505.352 +-602.711 157.215 499.785 +-607.032 155.572 494.562 +-610.997 153.842 489.061 +-615.216 152.179 483.774 +-618.919 150.392 478.095 +-142.122 33.9226 107.839 +-143.024 33.5307 106.594 +-142.645 32.8441 104.411 +-143.994 32.5597 103.507 +-142.685 31.6817 100.716 +-141.821 30.9189 98.2907 +-142.552 30.5114 96.9953 +-146.71 30.8256 97.994 +-146.53 30.2191 96.0661 +-385.42 78.0089 247.989 +-381.753 75.8208 241.033 +-381.26 74.2952 236.183 +-381.635 72.9554 231.924 +-383.827 71.9691 228.788 +-383.518 70.5224 224.19 +-381.954 68.8663 218.925 +-382.305 67.5742 214.817 +-383.13 66.3755 211.006 +-382.347 64.9117 206.353 +-387.457 64.4463 204.874 +-717.906 116.965 371.828 +-736.643 117.531 373.63 +-723.091 112.951 359.071 +-408.616 62.4745 198.606 +-411.043 61.496 195.495 +-408.142 59.7331 189.891 +-406.434 58.1712 184.925 +-407.476 57.016 181.253 +-406.844 55.6357 176.865 +-408.263 54.544 173.394 +-403.873 52.695 167.516 +-405.666 51.6705 164.26 +-406.599 50.5375 160.658 +-405.643 49.1785 156.337 +-403.429 47.6856 151.592 +-404.054 46.5414 147.954 +-406.141 45.5656 144.852 +-405.383 44.2744 140.748 +-405.996 43.1413 137.146 +-406.1 41.9594 133.388 +-401.141 40.2754 128.035 +-386.509 37.6843 119.798 +-381.296 36.075 114.682 +-381.661 35.014 111.309 +-381.227 33.8854 107.721 +-380.467 32.7367 104.07 +-380.73 31.6832 100.72 +-381.444 30.6695 97.498 +-380.579 29.5342 93.8887 +-381.423 28.5365 90.7171 +-380.488 27.4105 87.1377 +-381.758 26.4469 84.0743 +-382.22 25.4268 80.8312 +-380.891 24.2939 77.2299 +-380.309 23.2178 73.8091 +-381.558 22.2554 70.7497 +-380.225 21.1461 67.223 +-379.053 20.0558 63.7572 +-380.509 19.1071 60.7411 +-379.766 18.0489 57.3773 +-380.376 17.0582 54.2278 +-379.966 16.0239 50.9398 +-379.922 15.0088 47.7127 +-380.939 14.0353 44.618 +-380.339 13.0033 41.3372 +-380.703 12.0068 38.1696 +-378.748 10.9433 34.7887 +-379.949 9.97468 31.7094 +-379.327 8.9582 28.478 +-377.877 7.92899 25.2061 +-378.093 6.93918 22.0595 +-379.18 5.96299 18.9562 +-378.04 4.95283 15.745 +-144.912 1.51848 4.82723 +-378.27 2.9723 9.44889 +-143.778 0.753073 2.39401 +-144.195 0.377599 1.20038 +96.3 0 0 +96.0963 0.258851 0.797671 +96.1853 0.518221 1.59694 +96.267 0.778091 2.39775 +96.2413 1.03736 3.19672 +96.2083 1.29656 3.99544 +96.168 1.55565 4.79386 +96.1204 1.81462 5.59191 +95.9657 2.07131 6.3829 +96.0031 2.33214 7.18668 +96.7305 2.61216 8.04959 +95.7571 2.84599 8.77014 +96.6675 3.13608 9.66409 +96.5752 3.39635 10.4661 +97.3688 3.69019 11.3716 +96.3684 3.91604 12.0676 +96.2541 4.17548 12.8671 +96.0334 4.43003 13.6515 +96.7935 4.732 14.582 +96.4587 4.98235 15.3535 +96.3142 5.24197 16.1536 +95.2774 5.45056 16.7964 +96.0031 5.76 17.7499 +95.9346 6.02452 18.5651 +95.6628 6.2763 19.3409 +96.1652 6.58049 20.2783 +96.1703 6.85316 21.1186 +95.9729 7.11194 21.916 +95.7682 7.37017 22.7118 +95.653 7.63556 23.5296 +96.3028 7.96484 24.5443 +95.9776 8.21566 25.3172 +96.4145 8.53343 26.2965 +96.1696 8.7928 27.0957 +95.9174 9.05152 27.893 +95.6578 9.30954 28.6881 +96.2469 9.65268 29.7455 +96.729 9.98992 30.7848 +96.5374 10.2601 31.6174 +96.1494 10.5095 32.3858 +96.6944 10.8631 33.4754 +96.2899 11.1123 34.2434 +96.999 11.4929 35.4163 +96.6704 11.7537 36.2201 +96.3344 12.0137 37.0211 +96.8226 12.379 38.1469 +96.4689 12.6393 38.9491 +96.2913 12.9233 39.8243 +96.6531 13.2826 40.9315 +96.6379 13.5937 41.89 +96.1593 13.8404 42.6503 +96.3961 14.1919 43.7335 +96.7102 14.5593 44.8655 +96.2949 14.8192 45.6666 +96.5851 15.1901 46.8096 +96.152 15.4497 47.6095 +95.7115 15.7081 48.4058 +96.7578 16.2157 49.97 +96.2956 16.4757 50.7711 +95.8262 16.7344 51.5685 +96.0422 17.1154 52.7425 +96.4163 17.5301 54.0203 +95.8313 17.7732 54.7697 +96.0073 18.1597 55.9605 +96.0838 18.5321 57.1082 +95.5563 18.7902 57.9035 +95.86 19.215 59.2125 +95.2298 19.4554 59.9535 +95.4222 19.8665 61.2203 +96.2579 20.42 62.9259 +95.5131 20.6431 63.6134 +95.6586 21.0609 64.9009 +95.7067 21.4629 66.1397 +95.7394 21.8668 67.3842 +95.1974 22.1424 68.2336 +95.7577 22.6798 69.8897 +95.9009 23.1269 71.2675 +95.3217 23.4036 72.12 +95.2004 23.7954 73.3274 +95.1413 24.208 74.5988 +95.1427 24.6419 75.936 +95.1268 25.0777 77.2789 +95.0934 25.5152 78.6271 +95.1174 25.9749 80.0436 +94.8996 26.3747 81.2757 +94.8139 26.817 82.6386 +94.7103 27.2608 84.0063 +95.2417 27.8973 85.9678 +94.9529 28.3029 87.2176 +94.791 28.7522 88.6024 +94.823 29.2684 90.1929 +95.2536 29.919 92.1977 +95.0293 30.3742 93.6007 +94.7864 30.8306 95.0069 +94.3886 31.2426 96.2766 +94.7853 31.9281 98.3892 +94.3474 32.3427 99.6666 +94.6884 33.035 101.8 +94.3413 33.4983 103.228 +94.2349 34.0564 104.947 +94.3612 34.7107 106.964 +93.9488 35.1781 108.404 +94.1463 35.8855 110.584 +94.1865 36.5485 112.627 +93.7037 37.0195 114.079 +93.8101 37.736 116.286 +93.4619 38.2829 117.972 +93.2682 38.9055 119.89 +93.5754 39.7546 122.507 +93.4932 40.4574 124.673 +92.2884 40.6825 125.366 +93.6836 42.0739 129.654 +115.082 52.6629 162.285 +115.024 53.6401 165.296 +115.355 54.8279 168.957 +115.09 55.7613 171.833 +114.886 56.7499 174.88 +115.159 58.0046 178.746 +114.956 59.0535 181.978 +115.262 60.398 186.121 +114.1 61.0002 187.977 +113.11 61.7083 190.159 +109.422 60.9308 187.763 +114.948 65.3462 201.37 +114.927 66.7164 205.592 +113.082 67.0506 206.622 +110.592 66.9951 206.451 +108.292 67.042 206.595 +105.691 66.8871 206.118 +103.409 66.9185 206.215 +101.133 66.9426 206.289 +98.8629 66.9599 206.342 +96.3152 66.7725 205.765 +94.1048 66.8028 205.858 +91.8218 66.7698 205.756 +91.0021 67.813 208.971 +90.5799 69.2002 213.246 +90.6358 71.021 218.857 +90.4521 72.7322 224.13 +90.3185 74.5632 229.773 +89.9855 76.3118 235.161 +90.0277 78.4715 241.816 +89.5638 80.2871 247.411 +89.3847 82.4573 254.099 +89.0587 84.6028 260.71 +88.7383 86.8709 267.7 +88.4424 89.2908 275.157 +88.6128 92.3373 284.545 +88.7001 95.4801 294.23 +85.9973 95.7153 294.954 +83.3397 96.003 295.841 +83.3265 99.4514 306.467 +83.4872 103.356 318.499 +82.8498 106.518 328.244 +82.2871 110.015 339.021 +83.8271 116.712 359.656 +85.8052 124.602 383.971 +85.6485 129.94 400.42 +85.1581 135.225 416.708 +84.612 140.913 434.233 +84.2194 147.428 454.31 +83.6296 154.255 475.349 +83.2388 162.218 499.887 +80.157 165.549 510.154 +81.0266 177.955 548.383 +78.6681 184.44 568.367 +74.5962 187.524 577.872 +68.0125 184.253 567.79 +63.7624 187.253 577.036 +57.287 183.639 565.897 +52.8861 186.584 574.975 +46.8401 183.704 566.099 +42.2306 186.41 574.436 +36.3666 183.528 565.556 +31.6371 186.331 574.195 +25.923 183.264 564.743 +21.0723 186.257 573.967 +15.5517 183.314 564.897 +10.5186 186.003 573.183 +5.17745 183.123 564.308 +3.68423e-14 185.723 572.32 +-5.17484 183.03 564.023 +-10.5011 185.694 572.232 +-15.5229 182.975 563.852 +-20.9851 185.486 571.591 +-25.8663 182.863 563.508 +-31.4905 185.468 571.535 +-36.2201 182.788 563.277 +-41.9725 185.27 570.925 +-46.5498 182.565 562.59 +-52.4678 185.108 570.426 +-56.9228 182.471 562.3 +-63.0516 185.166 570.604 +-67.2993 182.321 561.836 +-73.5603 184.921 569.848 +-77.7153 182.206 561.482 +-84.1301 184.771 569.387 +-88.1831 182.126 561.236 +-94.7524 184.656 569.032 +-98.6159 181.897 560.531 +-105.526 184.725 569.246 +-109.05 181.611 559.65 +-116.165 184.462 568.434 +-119.661 181.541 559.432 +-121.358 176.23 543.067 +-122.332 170.321 524.859 +-126.557 169.203 521.414 +-132.013 169.726 523.025 +-142.323 176.193 542.952 +-151.33 180.614 556.576 +-153.04 176.294 543.263 +-160.129 178.224 549.213 +-170.041 183.038 564.046 +-173.363 180.65 556.686 +-169.254 170.878 526.573 +-148.489 145.363 447.949 +-150.182 142.668 439.644 +-155.797 143.722 442.891 +-1066.79 956.295 2946.9 +-1093.78 953.384 2937.93 +-484.711 411.056 1266.7 +-456.635 376.98 1161.69 +-451.794 363.285 1119.49 +-448.414 351.373 1082.78 +-446.906 341.422 1052.12 +-458.149 341.403 1052.06 +-467.393 339.872 1047.34 +-447.755 317.852 979.488 +-448.793 311.136 958.79 +-450.481 305.111 940.224 +-452.624 299.606 923.26 +-454.232 293.946 905.818 +-456.958 289.188 891.155 +-145.907 90.3285 278.355 +-145.549 88.1719 271.709 +-148.267 87.9132 270.912 +-151.545 87.9737 271.098 +-470.192 267.298 823.701 +-111.506 62.0917 191.34 +-111.386 60.7678 187.261 +-112.55 60.1715 185.423 +-113.942 59.7066 183.991 +-115.111 59.1328 182.223 +-117.092 58.9785 181.747 +-118.702 58.6346 180.687 +-120.839 58.547 180.417 +-122.925 58.4263 180.045 +-127.001 59.2254 182.508 +-504.728 230.969 711.751 +-508.123 228.202 703.224 +-510.942 225.232 694.071 +-515.432 223.043 687.325 +-518.191 220.148 678.403 +-522.254 217.85 671.323 +-515.996 211.357 651.315 +-514.647 207.021 637.952 +-135.938 53.7053 165.497 +-136.393 52.9262 163.096 +-527.748 201.161 619.893 +-529.217 198.159 610.644 +-162.625 59.8217 184.346 +-168.402 60.8601 187.545 +-165.458 58.7504 181.044 +-547.125 190.881 588.217 +-550.092 188.575 581.108 +-554.795 186.881 575.889 +-557.602 184.567 568.758 +-561.491 182.632 562.797 +-564.896 180.558 556.404 +-568.718 178.633 550.472 +-571.484 176.396 543.579 +-571.599 173.379 534.281 +-585.471 174.513 537.775 +-583.564 170.932 526.741 +-587.204 169.017 520.839 +-592.181 167.491 516.138 +-595.556 165.518 510.057 +-599.988 163.846 504.906 +-603.617 161.961 499.095 +-608.629 160.449 494.436 +-612.223 158.565 488.632 +-616.682 156.91 483.532 +-619.852 154.932 477.437 +-141.026 34.6249 106.7 +-142.551 34.3768 105.935 +-142.486 33.7474 103.995 +-144.154 33.5295 103.324 +-142.524 32.5523 100.312 +-142.144 31.8769 98.2313 +-142.552 31.3852 96.7161 +-147.939 31.9738 98.5299 +-659.631 139.933 431.215 +-664.225 138.289 426.149 +-383.587 78.3669 241.494 +-382.434 76.6581 236.228 +-382.309 75.1774 231.665 +-383.063 73.8832 227.677 +-381.898 72.2356 222.6 +-381.525 70.7589 218.049 +-382.736 69.5879 214.441 +-382.437 68.1529 210.019 +-383.827 67.029 206.555 +-382.821 65.4987 201.84 +-718.169 120.358 370.894 +-738.762 121.245 373.627 +-724.599 116.428 358.784 +-734.1 115.453 355.779 +-740.916 114.022 351.369 +-406.525 61.2002 188.593 +-409.503 60.2891 185.786 +-409.832 58.988 181.776 +-410.393 57.7284 177.895 +-405.523 55.7292 171.734 +-408 54.7578 168.741 +-404.562 53.0055 163.341 +-406.599 51.9848 160.195 +-405.272 50.5409 155.746 +-404.266 49.1531 151.469 +-405.267 48.0182 147.972 +-404.268 46.6545 143.77 +-405.665 45.5742 140.44 +-405.996 44.3768 136.751 +-407.14 43.2715 133.345 +-398.96 41.2035 126.972 +-385.939 38.7061 119.276 +-382.059 37.1825 114.581 +-379.94 35.854 110.487 +-380.651 34.803 107.248 +-382.678 33.8699 104.373 +-381.019 32.6152 100.506 +-379.705 31.404 96.7741 +-379.708 30.3104 93.4041 +-381.908 29.3911 90.571 +-381.85 28.2964 87.1977 +-381.758 27.2043 83.8322 +-379.291 25.9545 79.981 +-380.01 24.9319 76.8296 +-381.191 23.9381 73.7672 +-380.086 22.8044 70.2737 +-380.225 21.7517 67.0295 +-379.939 20.6784 63.7223 +-380.114 19.6339 60.5033 +-380.161 18.5851 57.2715 +-378.991 17.4829 53.8749 +-379.471 16.4614 50.727 +-379.525 15.4225 47.5257 +-378.557 14.347 44.2114 +-378.948 13.3268 41.0675 +-378.416 12.2765 37.831 +-379.246 11.2715 34.7341 +-378.753 10.2281 31.5186 +-379.826 9.22684 28.4333 +-379.473 8.19051 25.2397 +-377.694 7.13037 21.9728 +-378.281 6.11922 18.8569 +-379.339 5.11218 15.7536 +-143.912 1.5512 4.78014 +-378.37 3.05823 9.42418 +-144.378 0.777872 2.39708 +-144.195 0.388413 1.19693 +96.2 0 0 +96.1963 0.266314 0.796132 +96.1853 0.532607 1.5922 +96.167 0.79886 2.38815 +97.1408 1.07612 3.21701 +96.2083 1.33255 3.98358 +96.9669 1.61212 4.81933 +96.0206 1.86306 5.56952 +95.9657 2.12881 6.36396 +96.9004 2.41928 7.23231 +96.8301 2.68744 8.03397 +96.7525 2.9554 8.83501 +96.6675 3.22314 9.63541 +96.7739 3.4978 10.4565 +96.4755 3.75783 11.2338 +96.3684 4.02475 12.0318 +96.155 4.28698 12.8157 +96.0334 4.55301 13.611 +96.6947 4.85837 14.5239 +95.5711 5.07352 15.167 +96.3142 5.38748 16.1056 +95.9657 5.64235 16.8675 +96.0031 5.91989 17.6972 +95.8366 6.18545 18.4911 +96.5432 6.50988 19.461 +95.4817 6.7151 20.0744 +96.2678 7.05054 21.0772 +95.9729 7.30937 21.851 +95.7682 7.57477 22.6444 +95.653 7.84752 23.4598 +96.2062 8.17773 24.4469 +95.9776 8.44373 25.2421 +95.7417 8.70912 26.0355 +96.1696 9.03689 27.0153 +96.1086 9.32135 27.8657 +96.7069 9.67291 28.9166 +96.2469 9.92063 29.6572 +95.9704 10.1867 30.4526 +95.6865 10.452 31.2457 +96.1494 10.8012 32.2896 +96.6944 11.1646 33.3761 +96.2899 11.4208 34.1418 +95.8787 11.6755 34.9034 +96.6704 12.08 36.1126 +96.3344 12.3472 36.9112 +96.8226 12.7226 38.0337 +96.4689 12.9902 38.8335 +96.2913 13.2821 39.7061 +96.7445 13.6643 40.8486 +96.3649 13.9316 41.6477 +96.1593 14.2246 42.5237 +96.3961 14.5859 43.6037 +96.7102 14.9634 44.7323 +96.2949 15.2306 45.531 +96.5851 15.6118 46.6707 +96.152 15.8786 47.4681 +96.5945 16.2931 48.7073 +96.0547 16.5448 49.4597 +96.2956 16.933 50.6204 +95.8262 17.199 51.4154 +96.1288 17.6064 52.6333 +96.3301 18.0006 53.8119 +95.8313 18.2666 54.6071 +96.0073 18.6638 55.7944 +96.1687 19.0633 56.9889 +95.5563 19.3118 57.7316 +95.7762 19.7311 58.9852 +95.2298 19.9955 59.7755 +95.2564 20.3826 60.9326 +95.3514 20.7892 62.1483 +95.5131 21.2161 63.4246 +95.6586 21.6456 64.7083 +95.7067 22.0587 65.9434 +95.7394 22.4738 67.1842 +95.1974 22.7571 68.0311 +95.7577 23.3094 69.6822 +95.1129 23.5736 70.472 +95.8695 24.1915 72.3191 +95.2004 24.4559 73.1098 +95.1413 24.88 74.3774 +95.1427 25.3259 75.7106 +95.583 25.8974 77.419 +95.1689 26.2443 78.4559 +95.0425 26.6749 79.7433 +95.5684 27.2979 81.6055 +95.4774 27.7543 82.9699 +95.3685 28.2123 84.3391 +95.0966 28.628 85.5821 +95.0967 29.1326 87.0904 +94.791 29.5504 88.3394 +94.823 30.0809 89.9252 +94.6228 30.5459 91.3153 +94.8903 31.1718 93.1864 +94.6488 31.6404 94.5873 +94.3204 32.0867 95.9216 +94.7177 32.791 98.0269 +94.4143 33.2643 99.4419 +94.0258 33.7144 100.788 +94.2101 34.3803 102.778 +94.2349 35.0018 104.636 +93.847 35.4798 106.065 +94.0124 36.179 108.155 +94.1463 36.8817 110.256 +93.5639 37.3147 111.55 +93.5805 37.9974 113.591 +93.6884 38.7331 115.79 +93.5822 39.3964 117.773 +93.6846 40.1638 120.067 +93.3991 40.7811 121.913 +93.4351 41.5545 124.225 +92.69 41.9936 125.538 +92.3242 42.6147 127.394 +115.082 54.1248 161.803 +114.968 55.1025 164.726 +115.3 56.3236 168.376 +115.036 57.2826 171.243 +114.834 58.2983 174.28 +115.106 59.5879 178.135 +114.905 60.6655 181.356 +114.653 61.7466 184.588 +114.9 63.1333 188.734 +114.932 64.4428 192.648 +114.609 65.5909 196.08 +114.518 66.9093 200.022 +115.208 68.7362 205.483 +113.913 69.4186 207.523 +111.046 69.1375 206.683 +108.694 69.1584 206.746 +105.998 68.9434 206.103 +104.184 69.2917 207.144 +101.428 69.0024 206.279 +99.2361 69.0785 206.507 +96.6813 68.8869 205.934 +94.4637 68.9192 206.031 +92.2125 68.9151 206.018 +90.5812 69.3729 207.387 +90.6923 71.2093 212.877 +90.6358 72.9925 218.207 +90.8104 75.0472 224.35 +90.6337 76.9005 229.89 +90.1223 78.5495 234.82 +89.794 80.4408 240.474 +89.8243 82.7559 247.395 +89.5434 84.8966 253.794 +88.9351 86.8308 259.576 +88.6781 89.2218 266.724 +88.4717 91.7999 274.431 +88.5276 94.8092 283.427 +88.3418 97.734 292.171 +86.4516 98.8919 295.632 +83.4174 98.76 295.238 +83.5268 102.458 306.292 +83.3179 106.009 316.909 +83.1999 109.938 328.653 +82.0396 112.729 336.998 +86.3378 123.544 369.328 +85.9715 128.309 383.573 +85.5687 133.423 398.86 +85.1008 138.886 415.192 +84.612 144.824 432.945 +84.0978 151.301 452.307 +83.7287 158.725 474.499 +82.4253 165.092 493.533 +81.5169 173.032 517.269 +81.7085 184.434 551.356 +76.2012 183.616 548.91 +72.2198 186.59 557.802 +65.8277 183.284 547.919 +61.5986 185.921 555.8 +55.4851 182.8 546.471 +51.2824 185.949 555.885 +45.3415 182.763 546.361 +40.9191 185.635 554.946 +35.2067 182.606 545.892 +30.6636 185.611 554.876 +25.1553 182.773 546.392 +20.4127 185.436 554.351 +15.0491 182.314 545.018 +10.1992 185.362 554.13 +5.01252 182.211 544.71 +3.57646e-14 185.295 553.93 +-5.01165 182.179 544.615 +-10.194 185.267 553.846 +-15.0203 181.965 543.975 +-20.3639 184.992 553.024 +-25.055 182.044 544.212 +-30.538 184.851 552.602 +-35.0297 181.688 543.147 +-40.7238 184.749 552.297 +-45.1297 181.909 543.808 +-50.9338 184.685 552.105 +-55.1305 181.632 542.979 +-61.1178 184.469 551.462 +-65.1484 181.393 542.266 +-71.3667 184.386 551.213 +-75.1961 181.194 541.669 +-81.5833 184.151 550.511 +-85.4191 181.314 542.03 +-91.9522 184.173 550.576 +-95.6781 181.377 542.218 +-102.331 184.105 550.371 +-105.824 181.132 541.484 +-112.539 183.666 549.059 +-116.311 181.358 542.159 +-119.778 178.764 534.405 +-122.894 175.855 525.708 +-127.165 174.735 522.361 +-132.527 175.116 523.501 +-144.863 184.316 551.003 +-149.277 183.109 547.396 +-150.581 178.277 532.949 +-151.177 172.931 516.969 +-903.071 999.084 2986.71 +-930.519 996.546 2979.12 +-169.283 175.651 525.1 +-148.579 149.49 446.892 +-151.357 147.775 441.766 +-1039.59 985.636 2946.51 +-1066.66 982.721 2937.79 +-1093.65 979.732 2928.86 +-485.771 423.393 1265.71 +-455.585 386.553 1155.58 +-451.185 372.868 1114.67 +-448.011 360.8 1078.59 +-448.292 351.988 1052.25 +-460.024 352.318 1053.24 +-469.073 350.563 1047.99 +-448.114 326.936 977.358 +-449.647 320.379 957.756 +-451.02 313.956 938.555 +-452.751 308.009 920.778 +-455.136 302.707 904.926 +-457.484 297.557 889.532 +-145.817 92.7792 277.359 +-146.23 91.0433 272.169 +-149.376 91.029 272.127 +-152.297 90.8641 271.633 +-113.755 66.4632 198.688 +-111.458 63.7874 190.689 +-111.682 62.6206 187.201 +-112.75 61.9519 185.202 +-114.145 61.4732 183.771 +-115.523 60.9919 182.332 +-117.249 60.6966 181.449 +-119.232 60.5313 180.955 +-121.376 60.4396 180.681 +-123.361 60.261 180.147 +-128.27 61.4779 183.785 +-505.51 237.749 710.739 +-509.199 235.034 702.621 +-512.032 231.978 693.486 +-515.955 229.467 685.98 +-519.955 227.029 678.691 +-523.325 224.357 670.703 +-525.926 221.405 661.879 +-530.17 219.185 655.243 +-524.79 213.085 637.005 +-537.106 214.206 640.357 +-138.01 54.0652 161.625 +-137.329 52.8489 157.989 +-532.292 201.239 601.595 +-535.34 198.842 594.427 +-543.414 198.31 592.837 +-547.258 196.228 586.613 +-550.895 194.092 580.229 +-554.862 192.092 574.249 +-558.829 190.108 568.317 +-563.005 188.209 562.64 +-565.382 185.73 555.23 +-569.979 183.999 550.056 +-572.403 181.584 542.837 +-572.669 178.525 533.692 +-591.801 181.296 541.976 +-584.942 176.092 526.418 +-587.935 173.925 519.939 +-592.697 172.291 515.054 +-596.671 170.431 509.495 +-601.561 168.836 504.726 +-605.277 166.914 498.982 +-609.389 165.109 493.585 +-613.142 163.212 487.913 +-617.608 161.508 482.82 +-622.028 159.792 477.69 +-141.183 35.6258 106.501 +-143.418 35.5458 106.262 +-143.518 34.9352 104.437 +-143.834 34.3838 102.789 +-142.443 33.4372 99.9587 +-142.872 32.9296 98.4414 +-144.424 32.6803 97.696 +-148.021 32.8795 98.2915 +-660.537 144.015 430.526 +-383.513 82.0625 245.322 +-383.504 80.5249 240.725 +-380.924 78.4752 234.598 +-381.382 77.0769 230.417 +-380.35 75.3962 225.393 +-383.518 74.5558 222.881 +-382.382 72.8865 217.891 +-383.08 71.584 213.997 +-384.775 70.473 210.676 +-381.651 68.4992 204.775 +-381.159 67.0247 200.367 +-720.103 124.033 370.789 +-740.528 124.909 373.408 +-2906.47 479.975 1434.86 +-734.991 118.802 355.153 +-741.901 117.343 350.792 +-409.76 63.3997 189.53 +-406.254 61.471 183.764 +-406.842 60.183 179.914 +-406.844 58.8176 175.832 +-409.725 57.8697 172.999 +-408.367 56.3286 168.392 +-404.378 54.4522 162.782 +-407.154 53.5008 159.938 +-404.716 51.8725 155.07 +-406.22 50.7615 151.749 +-405.081 49.3283 147.464 +-406.141 48.1717 144.007 +-405.571 46.8285 139.991 +-405.147 45.5132 136.059 +-401.751 43.8839 131.189 +-392.606 41.6728 124.579 +-386.034 39.7904 118.951 +-381.487 38.1573 114.069 +-380.896 36.9423 110.437 +-380.939 35.7961 107.011 +-381.621 34.714 103.776 +-381.405 33.5546 100.31 +-381.058 32.3906 96.8301 +-381.934 31.3345 93.673 +-382.297 30.2376 90.3939 +-380.488 28.9782 86.6289 +-380.881 27.8953 83.3915 +-380.17 26.7368 79.9283 +-380.597 25.6635 76.7198 +-380.701 24.571 73.4537 +-380.086 23.4375 70.0651 +-380.815 22.3902 66.9342 +-381.318 21.3296 63.7637 +-381.002 20.226 60.4647 +-380.161 19.101 57.1016 +-380.87 18.0573 53.9813 +-380.362 16.9581 50.6953 +-379.922 15.8672 47.4341 +-378.557 14.7453 44.0802 +-379.843 13.729 41.0422 +-380.206 12.677 37.8971 +-379.644 11.5966 34.6674 +-377.956 10.4899 31.3589 +-379.826 9.48298 28.3489 +-378.775 8.40236 25.1184 +-378.593 7.34572 21.9597 +-378.281 6.28909 18.8009 +-378.939 5.24854 15.6902 +-145.411 1.61087 4.8156 +-380.57 3.16139 9.45082 +-144.278 0.79891 2.3883 +-143.195 0.396426 1.18509 +96.2 0 0 +96.9963 0.275758 0.800297 +97.0852 0.552064 1.60218 +96.0671 0.819514 2.37837 +97.0408 1.10396 3.20388 +96.2083 1.36842 3.9714 +96.0682 1.64017 4.76007 +96.9189 1.93112 5.60444 +96.0654 2.18839 6.35109 +96.8007 2.48186 7.20278 +96.8301 2.7598 8.0094 +96.7525 3.03497 8.80799 +96.6675 3.30992 9.60594 +96.5752 3.58461 10.4031 +96.674 3.86696 11.2226 +96.5667 4.14165 12.0198 +96.2541 4.40692 12.7896 +96.0334 4.67559 13.5694 +95.8058 4.94331 14.3463 +96.4587 5.25853 15.2611 +96.3142 5.53253 16.0564 +96.1623 5.80612 16.8503 +96.0031 6.07928 17.6431 +95.8366 6.35198 18.4345 +95.4672 6.61065 19.1852 +95.4817 6.89589 20.0131 +95.2934 7.16707 20.8 +95.9729 7.50616 21.7842 +95.8652 7.78659 22.598 +95.5562 8.05066 23.3644 +96.2062 8.3979 24.3721 +95.9776 8.67106 25.1649 +95.5494 8.92565 25.9038 +96.3614 9.2987 26.9864 +95.9174 9.55325 27.7252 +96.5162 9.91372 28.7713 +96.2469 10.1877 29.5665 +95.8755 10.4506 30.3295 +96.5374 10.8288 31.4272 +96.0552 11.0811 32.1593 +96.6004 11.4541 33.2417 +96.2899 11.7282 34.0374 +96.9056 12.1183 35.1693 +96.6704 12.4053 36.0022 +96.2417 12.6674 36.763 +96.8226 13.0652 37.9174 +96.4689 13.3399 38.7148 +96.1996 13.6267 39.547 +96.7445 14.0321 40.7237 +96.3649 14.3066 41.5203 +96.1593 14.6076 42.3937 +96.3961 14.9786 43.4704 +95.9912 15.252 44.264 +96.2949 15.6406 45.3918 +96.6742 16.0469 46.5709 +96.2407 16.3211 47.3667 +95.7998 16.5941 48.159 +96.0547 16.9902 49.3084 +96.2956 17.3889 50.4657 +95.7391 17.646 51.2117 +95.436 17.9501 52.0942 +96.4163 18.5018 53.6953 +95.7456 18.7416 54.3914 +96.0925 19.1833 55.6733 +96.1687 19.5766 56.8146 +95.5563 19.8317 57.5551 +95.6084 20.2268 58.7017 +95.9803 20.6957 60.0623 +95.2564 20.9313 60.7463 +95.3514 21.3489 61.9582 +95.5131 21.7874 63.2306 +94.9259 22.0581 64.0163 +95.6258 22.6335 65.6861 +95.8197 23.0982 67.035 +95.1974 23.3698 67.823 +95.8371 23.9568 69.5267 +95.1129 24.2083 70.2565 +95.9478 24.8631 72.1569 +95.6667 25.2374 73.2432 +95.1413 25.5498 74.15 +95.1427 26.0078 75.4791 +95.8112 26.6581 77.3665 +95.1689 26.9509 78.216 +95.6416 27.5658 80.0006 +95.5684 28.0328 81.356 +94.8139 28.3034 82.1414 +95.3685 28.9718 84.0812 +95.2417 29.4437 85.4505 +95.0967 29.917 86.8241 +94.791 30.346 88.0692 +94.823 30.8908 89.6502 +94.6228 31.3683 91.0361 +95.0293 32.0579 93.0375 +94.6488 32.4923 94.298 +94.3886 32.9744 95.6973 +94.7853 33.6979 97.7972 +94.4812 34.184 99.2078 +94.092 34.6466 100.55 +94.4069 35.3799 102.678 +94.17 35.9194 104.244 +93.847 36.4351 105.741 +94.0124 37.1531 107.825 +94.1463 37.8747 109.919 +93.6262 38.3448 111.283 +93.7652 39.0973 113.467 +93.6275 39.7501 115.362 +93.7026 40.5092 117.565 +93.5656 41.193 119.549 +93.3991 41.8791 121.54 +93.5512 42.7264 123.999 +93.1488 43.3376 125.773 +92.2676 43.735 126.926 +106.75 51.5578 149.629 +115.024 56.6134 164.302 +115.355 57.867 167.94 +115.036 58.8248 170.72 +115.31 60.1165 174.468 +115.106 61.1922 177.59 +114.905 62.2988 180.802 +114.551 63.353 183.861 +114.75 64.7483 187.911 +114.784 66.0928 191.813 +114.657 67.3854 195.564 +114.518 68.7107 199.41 +115.021 70.4718 204.521 +114.375 71.5765 207.727 +111.455 71.2602 206.809 +109.14 71.312 206.96 +106.787 71.3266 207.002 +104.485 71.3628 207.107 +101.893 71.1849 206.591 +99.6093 71.2051 206.649 +97.3321 71.2175 206.685 +95.1017 71.2527 206.787 +92.5251 71.0106 206.085 +90.2368 70.9699 205.967 +90.6923 73.1265 212.226 +90.6358 74.9577 217.54 +90.8104 77.0677 223.664 +90.3185 78.6963 228.39 +90.1223 80.6643 234.101 +89.6939 82.5143 239.471 +89.6615 84.8299 246.191 +89.0991 86.7497 251.762 +89.0896 89.3236 259.232 +88.7383 91.6861 266.089 +88.6763 94.4894 274.224 +88.6128 97.4556 282.833 +88.5898 100.647 292.096 +87.1464 102.371 297.098 +83.728 101.796 295.431 +83.677 105.405 305.904 +83.2453 108.769 315.665 +83.6435 113.499 329.394 +83.5918 117.955 342.324 +86.3378 126.87 368.199 +85.8675 131.604 381.937 +85.5288 136.951 397.455 +85.1771 142.753 414.293 +84.4479 148.435 430.784 +83.9763 155.15 450.272 +83.0355 161.648 469.131 +80.7202 166.029 481.845 +82.5663 179.978 522.326 +79.8993 185.206 537.5 +73.7081 182.39 529.327 +69.7336 185.018 536.953 +63.7221 182.199 528.772 +59.6126 184.77 536.235 +53.8078 182.047 528.331 +49.5219 184.4 535.16 +43.9136 181.773 527.536 +39.6566 184.751 536.178 +34.12 181.735 527.426 +29.664 184.395 535.145 +24.3396 181.608 527.058 +19.7601 184.34 534.987 +14.5832 181.426 526.529 +9.86061 184.034 534.097 +4.86068 181.449 526.595 +3.45584e-14 183.866 533.611 +-4.85544 181.253 526.027 +-9.85537 183.936 533.813 +-14.5518 181.035 525.395 +-19.7077 183.852 533.569 +-24.2611 181.022 525.358 +-29.5698 183.809 533.446 +-34.004 181.117 525.632 +-39.4124 183.613 532.877 +-43.7253 180.993 525.274 +-49.2953 183.556 532.711 +-53.4723 180.912 525.038 +-59.2049 183.507 532.568 +-63.1221 180.483 523.793 +-69.0755 183.272 531.885 +-72.9902 180.614 524.172 +-78.8833 182.851 530.665 +-82.7289 180.332 523.355 +-88.933 182.922 530.87 +-92.6082 180.284 523.216 +-98.9795 182.869 530.718 +-102.416 180.018 522.444 +-109.143 182.918 530.861 +-112.503 180.143 522.806 +-118.967 182.334 529.164 +-122.829 180.494 523.824 +-127.907 180.487 523.804 +-128.372 174.193 505.537 +-140.847 184.031 534.089 +-140.463 176.937 513.502 +-150.892 183.454 532.415 +-150.161 176.394 511.926 +-154.467 175.491 509.304 +-162.088 178.262 517.347 +-170.073 181.222 525.936 +-148.368 153.297 444.894 +-152.376 152.776 443.383 +-173.344 168.773 489.807 +-1066.79 1009.3 2929.17 +-1093.65 1006.11 2919.9 +-204.323 182.88 530.748 +-455.094 396.534 1150.81 +-450.54 382.36 1109.67 +-448.048 370.547 1075.39 +-450.202 363.005 1053.5 +-462.358 363.637 1055.34 +-469.971 360.689 1046.78 +-448.792 336.246 975.844 +-449.688 329.037 954.921 +-451.435 322.705 936.546 +-453.174 316.597 918.819 +-455.782 311.298 903.439 +-457.747 305.745 887.323 +-146.085 95.4521 277.018 +-146.73 93.8138 272.264 +-149.884 93.7978 272.217 +-152.907 93.6844 271.888 +-114.804 68.8824 199.908 +-111.652 65.6188 190.437 +-111.78 64.3633 186.793 +-113.1 63.8173 185.209 +-114.551 63.353 183.861 +-115.987 62.8852 182.504 +-117.928 62.692 181.943 +-119.126 62.1056 180.241 +-121.591 62.1767 180.447 +-124.123 62.2659 180.706 +-129.153 63.5677 184.484 +-506.908 244.826 710.526 +-510.445 241.952 702.187 +-513.121 238.731 692.837 +-517.522 236.361 685.96 +-520.837 233.537 677.763 +-523.86 230.633 669.337 +-527.31 227.964 661.591 +-531.388 225.604 654.74 +-534.517 222.878 646.829 +-538.351 220.483 639.879 +-541.153 217.704 631.813 +-545.183 215.453 625.281 +-137.814 53.5049 155.28 +-136.969 52.2442 151.622 +-539.74 202.272 587.029 +-543.15 199.998 580.429 +-550.092 199.027 577.611 +-552.498 196.423 570.053 +-559.784 195.56 567.548 +-562.936 193.252 560.85 +-566.841 191.222 554.96 +-570.891 189.255 549.251 +-576.433 187.786 544.987 +-575.522 184.245 534.711 +-592.52 186.404 540.976 +-586.03 181.169 525.784 +-589.544 179.097 519.769 +-594.098 177.348 514.693 +-598.083 175.434 509.139 +-602.76 173.727 504.186 +-606.711 171.815 498.635 +-610.758 169.935 493.181 +-615.057 168.129 487.94 +-618.843 166.188 482.306 +-622.649 164.258 476.705 +-142.356 36.8889 107.058 +-142.945 36.3826 105.589 +-143.2 35.7962 103.887 +-142.077 34.8782 101.223 +-142.283 34.2987 99.5406 +-142.711 33.7777 98.0288 +-147.029 34.1654 99.1539 +-148.758 33.9328 98.4788 +-662.35 148.299 430.388 +-383.513 84.2719 244.571 +-382.503 82.4769 239.362 +-381.679 80.7477 234.343 +-382.9 79.4671 230.627 +-381.028 77.5642 225.105 +-383.176 76.495 222.002 +-383.154 75.0001 217.663 +-383.597 73.6103 213.63 +-383.563 72.1424 209.369 +-387.134 71.354 207.081 +-715.439 129.193 374.94 +-726.694 128.538 373.039 +-723.487 125.32 363.7 +-732.316 124.191 360.424 +-736.862 122.311 354.968 +-744.048 120.852 350.732 +-408.052 64.8356 188.164 +-406.073 63.098 183.121 +-410.286 62.3265 180.882 +-405.661 60.2256 174.785 +-405.157 58.7655 170.547 +-406.166 57.5334 166.972 +-406.863 56.2619 163.282 +-407.985 55.0533 159.774 +-406.477 53.501 155.269 +-402.964 51.7106 150.073 +-405.174 50.6681 147.047 +-409.138 49.8338 144.626 +-405.477 48.0782 139.531 +-405.996 46.8367 135.928 +-407.708 45.7336 132.727 +-387.959 42.2882 122.728 +-384.322 40.6805 118.062 +-381.582 39.1944 113.749 +-381.757 38.0226 110.348 +-380.46 36.7136 106.549 +-381.813 35.6666 103.51 +-381.116 34.4319 99.9272 +-380.575 33.2207 96.4121 +-381.063 32.1048 93.1735 +-382.297 31.0517 90.1175 +-380.975 29.7964 86.4744 +-379.907 28.573 82.9237 +-381.146 27.5271 79.8885 +-378.25 26.192 76.0136 +-380.407 25.2131 73.1726 +-380.184 24.0747 69.8689 +-379.34 22.9039 66.4711 +-380.53 21.8586 63.4374 +-381.002 20.7706 60.2798 +-379.766 19.5949 56.8679 +-379.881 18.4953 53.6765 +-378.183 17.3149 50.2508 +-379.922 16.2944 47.289 +-378.557 15.1422 43.9454 +-379.445 14.0839 40.8739 +-379.808 13.0047 37.7417 +-379.246 11.8963 34.5251 +-378.753 10.795 31.3289 +-379.826 9.73829 28.2622 +-379.274 8.63995 25.0746 +-379.491 7.56141 21.9445 +-379.679 6.48226 18.8126 +-379.938 5.40408 15.6836 +-145.911 1.65992 4.81737 +-377.771 3.22263 9.35263 +-144.378 0.82099 2.38265 +-144.195 0.409943 1.18972 +97.1 0 0 +96.1963 0.280633 0.791198 +96.0854 0.560663 1.58069 +96.9668 0.848813 2.39308 +96.1414 1.12232 3.16419 +96.2083 1.4042 3.9589 +96.9669 1.6988 4.78947 +96.9189 1.9816 5.58679 +95.9657 2.24327 6.32452 +96.8007 2.54674 7.1801 +96.8301 2.83194 7.98418 +95.8567 3.08547 8.69896 +96.6675 3.39644 9.57569 +96.5752 3.67831 10.3704 +96.674 3.96804 11.1872 +96.3684 4.24116 11.9572 +96.2541 4.52213 12.7494 +96.0334 4.79781 13.5266 +95.9045 5.07778 14.3159 +96.5574 5.40151 15.2286 +96.3142 5.67716 16.0058 +96.1623 5.9579 16.7973 +95.8068 6.22546 17.5516 +95.8366 6.51803 18.3765 +95.6628 6.79736 19.164 +95.4817 7.07616 19.95 +96.1703 7.42212 20.9254 +95.9729 7.70238 21.7156 +95.8652 7.99014 22.5268 +96.4275 8.33643 23.5031 +96.2062 8.61743 24.2954 +95.9776 8.89773 25.0856 +95.7417 9.1774 25.8741 +96.3614 9.54177 26.9014 +96.1086 9.82254 27.693 +95.6578 10.0824 28.4257 +96.2469 10.454 29.4734 +95.9704 10.7344 30.2639 +95.6865 11.014 31.0521 +96.2437 11.3931 32.121 +95.8486 11.662 32.8791 +96.2899 12.0348 33.9302 +96.9056 12.4351 35.0586 +96.6704 12.7296 35.8888 +97.0761 13.1112 36.9649 +96.8226 13.4067 37.798 +96.561 13.7017 38.6297 +96.1996 13.9829 39.4224 +95.9223 14.2766 40.2504 +96.3649 14.6806 41.3895 +95.978 14.9612 42.1806 +95.7643 15.2694 43.0494 +96.7102 15.768 44.4551 +96.2949 16.0495 45.2489 +96.5851 16.4512 46.3814 +96.152 16.7323 47.174 +96.5062 17.1534 48.3612 +96.1426 17.4503 49.1981 +96.2956 17.8435 50.3067 +95.8262 18.1237 51.0968 +96.0422 18.5363 52.26 +96.3301 18.9685 53.4784 +95.8313 19.2488 54.2687 +96.0073 19.6673 55.4487 +96.1687 20.0884 56.6357 +95.5563 20.3502 57.3738 +95.7762 20.792 58.6196 +95.9803 21.2367 59.8732 +95.9196 21.628 60.9765 +95.3514 21.907 61.7631 +95.5131 22.3569 63.0315 +95.6586 22.8094 64.3072 +95.6258 23.2251 65.4793 +95.7394 23.6822 66.7678 +95.1974 23.9807 67.6095 +95.2024 24.4203 68.8488 +95.9009 25.0469 70.6156 +95.2434 25.3257 71.4016 +95.2004 25.7709 72.6567 +95.1413 26.2177 73.9165 +95.1427 26.6877 75.2414 +95.8112 27.355 77.1228 +94.9425 27.5896 77.7842 +95.6416 28.2864 79.7487 +95.5684 28.7656 81.0998 +95.33 29.2014 82.3284 +95.2223 29.6836 83.6878 +95.2417 30.2134 85.1814 +94.9529 30.6526 86.4198 +94.9336 31.1861 87.924 +94.6816 31.651 89.2346 +94.6228 32.1883 90.7494 +94.8903 32.8478 92.6089 +94.7864 33.3901 94.1378 +94.3886 33.8364 95.3959 +94.1097 34.3325 96.7946 +94.4143 35.0529 98.8256 +94.6884 35.7776 100.869 +94.2757 36.2543 102.213 +93.9102 36.7567 103.629 +93.847 37.3875 105.408 +93.9488 38.0986 107.412 +94.0834 38.8387 109.499 +93.5639 39.3211 110.859 +93.5805 40.0405 112.887 +93.6275 40.7893 114.998 +93.6424 41.5414 117.119 +94.1604 42.5386 119.93 +93.5166 43.028 121.31 +93.6674 43.8978 123.762 +93.4356 44.6075 125.763 +91.7578 44.6302 125.827 +97.3555 48.2496 136.032 +114.913 58.0376 163.627 +114.864 59.1277 166.7 +115.466 60.5882 170.818 +114.834 61.4329 173.2 +114.584 62.5067 176.227 +114.905 63.9274 180.232 +115.11 65.3257 184.175 +114.7 66.4118 187.237 +114.784 67.8205 191.208 +114.609 69.1176 194.865 +114.47 70.4775 198.699 +114.692 72.1074 203.295 +114.006 73.2103 206.404 +111.954 73.4506 207.082 +109.497 73.4155 206.983 +107.182 73.4617 207.113 +104.873 73.5001 207.221 +102.274 73.3182 206.708 +99.9825 73.3403 206.771 +97.6981 73.3543 206.81 +95.4605 73.3911 206.914 +92.8768 73.1437 206.216 +90.5812 73.103 206.101 +90.6923 75.0382 211.557 +90.7091 76.9794 217.03 +90.7746 79.0513 222.872 +90.2835 80.7221 227.582 +90.0881 82.7415 233.276 +89.794 84.766 238.983 +89.4987 86.8894 244.97 +89.2261 89.1445 251.328 +89.2132 91.7857 258.774 +88.6781 94.0191 265.071 +88.5302 96.7997 272.91 +88.3572 99.7147 281.129 +88.1764 102.797 289.817 +87.4404 105.401 297.161 +84.168 105.006 296.048 +83.6019 108.064 304.667 +82.955 111.223 313.573 +86.8884 120.984 341.095 +86.7411 125.598 354.102 +86.381 130.252 367.224 +85.8883 135.077 380.827 +85.5887 140.629 396.48 +85.2153 146.551 413.174 +84.6848 152.743 430.633 +84.1499 159.535 449.783 +82.1937 164.193 462.913 +81.1426 171.261 482.841 +82.0786 183.592 517.606 +77.9091 185.314 522.46 +72.4159 183.877 518.41 +67.8447 184.711 520.762 +62.4542 183.242 516.619 +57.9506 184.315 519.643 +52.8206 183.379 517.005 +48.2669 184.425 519.954 +43.129 183.192 516.479 +38.5544 184.312 519.635 +33.5401 183.316 516.827 +28.8947 184.308 519.625 +23.9252 183.183 516.453 +19.2471 184.248 519.456 +14.3109 182.693 515.072 +9.60755 183.998 518.751 +4.76992 182.715 515.135 +3.36338e-14 183.625 517.699 +-4.76731 182.615 514.852 +-9.59708 183.797 518.185 +-14.3083 182.66 514.978 +-19.1598 183.413 517.102 +-23.8424 182.548 514.664 +-28.7795 183.573 517.554 +-33.3325 182.181 513.63 +-38.38 183.478 517.284 +-42.9093 182.259 513.848 +-48.0315 183.526 517.419 +-52.4755 182.18 513.627 +-57.6056 183.217 516.55 +-62.1146 182.245 513.81 +-67.1988 182.953 515.805 +-71.6197 181.855 512.71 +-76.9071 182.93 515.741 +-81.2804 181.806 512.572 +-86.5865 182.751 515.235 +-90.9577 181.7 512.272 +-96.4616 182.876 515.589 +-100.594 181.438 511.533 +-106.223 182.68 515.034 +-110.53 181.609 512.016 +-116.119 182.62 514.867 +-120.514 181.72 512.329 +-123.903 179.407 505.808 +-127.695 177.804 501.287 +-131.896 176.84 498.572 +-140.739 181.919 512.889 +-148.381 185.117 521.907 +-150.375 181.263 511.041 +-150.167 175.065 493.567 +-154.93 174.845 492.946 +-957.897 1047.37 2952.89 +-148.458 157.4 443.762 +-153.581 158.01 445.482 +-175.914 175.753 495.505 +-1066.66 1035.56 2919.59 +-1093.65 1032.41 2910.71 +-197.619 181.503 511.718 +-202.21 180.795 509.721 +-210.004 182.882 515.605 +-447.828 380.046 1071.48 +-452.188 374.136 1054.81 +-463.698 374.223 1055.06 +-468.76 369.165 1040.8 +-448.912 345.13 973.035 +-449.851 337.759 952.254 +-451.559 331.232 933.854 +-453.512 325.116 916.608 +-455.653 319.345 900.338 +-145.276 99.5713 280.724 +-146.308 98.0967 276.567 +-147.138 96.5343 272.162 +-150.853 96.8722 273.115 +-153.846 96.7238 272.696 +-113.898 70.1251 197.706 +-111.7 67.3632 189.919 +-111.928 66.133 186.451 +-113.55 65.7459 185.359 +-114.805 65.1532 183.688 +-116.502 64.8156 182.737 +-118.032 64.3877 181.53 +-120.186 64.2961 181.272 +-122.343 64.1968 180.992 +-124.94 64.3142 181.323 +-129.54 65.4247 184.454 +-507.579 251.558 709.225 +-510.955 248.525 700.674 +-514.441 245.601 692.43 +-518.103 242.812 684.567 +-520.837 239.642 675.629 +-524.931 237.146 668.592 +-528.033 234.244 660.411 +-532.24 231.872 653.725 +-535.071 228.941 645.46 +-539.284 226.639 638.97 +-542.474 223.94 631.361 +-545.946 221.395 624.184 +-549.198 218.795 616.855 +-553.525 216.651 610.81 +-135.87 52.2494 147.308 +-137.361 51.9014 146.327 +-547.683 203.336 573.271 +-551.417 201.164 567.147 +-555.692 199.205 561.625 +-561.147 197.673 557.306 +-567.675 196.51 554.026 +-570.33 194.012 546.984 +-584.07 195.248 550.469 +-581.014 190.866 538.114 +-587.988 189.814 535.148 +-586.03 185.905 524.129 +-590.641 184.12 519.096 +-594.762 182.187 513.646 +-599.049 180.311 508.355 +-602.984 178.335 502.785 +-606.711 176.306 497.065 +-610.53 174.312 491.444 +-615.287 172.589 486.585 +-619.769 170.788 481.506 +-623.66 168.826 475.976 +-142.748 37.9575 107.015 +-142.709 37.2719 105.082 +-143.914 36.9152 104.076 +-142.796 35.9712 101.415 +-142.443 35.2351 99.3392 +-142.225 34.5431 97.3883 +-147.111 35.0779 98.8963 +-148.594 34.7818 98.0612 +-662.597 152.232 429.193 +-385.502 86.9235 245.066 +-381.002 84.301 237.672 +-378.995 82.2758 231.963 +-380.623 81.0594 228.533 +-382.724 79.9462 225.395 +-382.324 78.3199 220.81 +-384.354 77.2017 217.657 +-383.511 75.5175 212.909 +-381.917 73.7107 207.815 +-385.655 72.9395 205.641 +-715.876 132.652 373.988 +-731.703 132.807 374.427 +-722.516 128.423 362.068 +-732.937 127.546 359.593 +-410.398 69.9025 197.078 +-409.074 68.1806 192.223 +-411.198 67.0433 189.017 +-409.503 65.2943 184.086 +-406.842 63.4189 178.799 +-407.663 62.1052 175.095 +-406.254 60.4648 170.47 +-406.991 59.1574 166.784 +-405.114 57.4846 162.068 +-407.985 56.4925 159.271 +-404.438 54.6238 154.003 +-405.476 53.393 150.532 +-403.307 51.7529 145.909 +-405.485 50.6799 142.883 +-405.571 49.3464 139.124 +-406.09 48.0721 135.531 +-405.533 46.6788 131.603 +-384.261 42.9802 121.175 +-383.751 41.6818 117.515 +-381.201 40.1788 113.277 +-382.235 39.0653 110.138 +-381.706 37.797 106.562 +-381.813 36.5989 103.185 +-380.538 35.2782 99.4608 +-380.188 34.0543 96.0104 +-381.16 32.9524 92.9037 +-380.55 31.7179 89.4233 +-381.072 30.5832 86.224 +-381.758 29.4628 83.0654 +-380.463 28.1961 79.4941 +-380.891 27.0643 76.3032 +-381.877 25.9721 73.224 +-380.479 24.7232 69.7029 +-379.34 23.5027 66.2618 +-379.939 22.3952 63.1394 +-381.89 21.3632 60.2299 +-380.655 20.1542 56.8214 +-379.881 18.9788 53.5075 +-380.758 17.8885 50.4336 +-380.517 16.7465 47.214 +-378.16 15.5218 43.761 +-378.054 14.3991 40.5958 +-379.907 13.3481 37.6328 +-378.748 12.1913 34.3712 +-377.956 11.0539 31.1646 +-380.125 10.0008 28.1954 +-379.274 8.86581 24.9956 +-378.093 7.7305 21.7948 +-380.178 6.66047 18.7781 +-378.439 5.52346 15.5724 +-144.912 1.69165 4.76931 +-378.07 3.3095 9.33057 +-144.278 0.841866 2.3735 +-142.395 0.415407 1.17117 +96.2 0 0 +96.1963 0.28776 0.788634 +96.0854 0.5749 1.57557 +96.0671 0.862292 2.3632 +96.1414 1.15082 3.15393 +96.2083 1.43986 3.94607 +95.9683 1.724 4.72479 +96.8191 2.02983 5.56295 +95.9657 2.30023 6.30402 +96.8007 2.61141 7.15683 +96.8301 2.90386 7.9583 +96.7525 3.19339 8.7518 +96.8664 3.48985 9.56429 +96.5752 3.77172 10.3368 +96.674 4.06881 11.151 +96.3684 4.34886 11.9185 +96.2541 4.63696 12.7081 +96.1323 4.92472 13.4967 +95.9045 5.20673 14.2695 +95.6697 5.48773 15.0397 +95.4279 5.76775 15.8071 +95.9657 6.09671 16.7087 +96.0031 6.39661 17.5305 +95.8366 6.68355 18.3169 +95.4672 6.95571 19.0628 +95.4817 7.25585 19.8854 +96.1703 7.61059 20.8576 +95.9729 7.89798 21.6452 +95.8652 8.19304 22.4538 +96.4275 8.54812 23.427 +96.2062 8.83626 24.2167 +95.9776 9.12368 25.0044 +95.7417 9.41045 25.7903 +96.1696 9.76461 26.7609 +95.9174 10.0519 27.5483 +95.6578 10.3385 28.3336 +96.2469 10.7195 29.3779 +95.9704 11.007 30.1658 +95.6865 11.2937 30.9514 +96.2437 11.6824 32.0169 +95.8486 11.9582 32.7726 +96.3836 12.3524 33.8531 +96.999 12.7631 34.9786 +96.5773 13.0402 35.738 +96.3344 13.3415 36.5636 +96.8226 13.7472 37.6755 +96.561 14.0497 38.5045 +96.1996 14.338 39.2947 +96.7445 14.7646 40.4639 +96.3649 15.0534 41.2554 +95.978 15.3411 42.0439 +96.3961 15.7604 43.1931 +96.7102 16.1684 44.3111 +96.2054 16.4418 45.0603 +96.6742 16.8845 46.2738 +96.2407 17.1731 47.0645 +96.5062 17.589 48.2045 +96.0547 17.8771 48.9939 +96.2956 18.2966 50.1437 +95.8262 18.584 50.9312 +96.1288 19.0242 52.1376 +95.5547 19.2936 52.876 +96.517 19.8788 54.4799 +96.0073 20.1667 55.269 +96.1687 20.5985 56.4522 +95.6406 20.8854 57.2385 +95.7762 21.32 58.4296 +95.9803 21.776 59.6792 +95.9196 22.1772 60.7789 +95.5162 22.5022 61.6694 +95.5131 22.9246 62.8272 +95.6586 23.3886 64.0988 +95.7067 23.8351 65.3223 +95.7394 24.2835 66.5515 +95.1175 24.569 67.3338 +95.2024 25.0404 68.6257 +95.9009 25.683 70.3867 +95.2434 25.9688 71.1702 +95.8221 26.5979 72.8942 +95.1413 26.8835 73.6769 +95.1427 27.3654 74.9976 +94.4424 27.6489 75.7747 +95.0934 28.3352 77.6554 +95.6416 29.0047 79.4902 +95.5684 29.4961 80.837 +95.33 29.9429 82.0616 +95.2223 30.4374 83.4166 +95.2417 30.9806 84.9054 +95.0967 31.4786 86.2702 +95.005 32.0021 87.705 +94.6816 32.4547 88.9455 +94.6228 33.0057 90.4553 +95.0293 33.7313 92.4439 +94.7864 34.238 93.8328 +94.3886 34.6956 95.0868 +94.7177 35.4316 97.1037 +94.4143 35.943 98.5053 +94.7547 36.7118 100.612 +94.2757 37.1749 101.882 +93.9102 37.6901 103.294 +93.7827 38.3109 104.995 +93.8851 39.0396 106.992 +93.517 39.5853 108.488 +93.6262 40.3463 110.573 +93.5805 41.0572 112.521 +93.6884 41.8521 114.7 +93.6424 42.5963 116.739 +93.6846 43.3981 118.937 +93.5166 44.1206 120.917 +93.6674 45.0125 123.361 +93.0341 45.5435 124.817 +92.3242 46.0464 126.195 +96.3489 48.9634 134.189 +114.968 59.5398 163.175 +115.355 60.8876 166.869 +115.036 61.8954 169.63 +114.886 63.0221 172.718 +115.054 64.3569 176.376 +114.802 65.4921 179.488 +114.653 66.7189 182.85 +114.7 68.0983 186.63 +114.833 69.5726 190.671 +115.045 71.1425 194.973 +114.9 72.5383 198.798 +114.645 73.9084 202.553 +114.006 75.0694 205.735 +112.272 75.5297 206.997 +109.497 75.2798 206.312 +107.182 75.3271 206.441 +104.873 75.3665 206.55 +102.527 75.3665 206.55 +99.5264 74.8596 205.16 +97.6981 75.2171 206.14 +95.4605 75.2548 206.243 +93.1503 75.2219 206.153 +90.5429 74.9278 205.347 +91.0294 77.2299 211.656 +90.7091 78.9342 216.327 +90.8104 81.0906 222.237 +90.2835 82.7719 226.845 +90.0197 84.7782 232.343 +89.794 86.9185 238.209 +89.4661 89.0636 244.088 +89.2578 91.4404 250.602 +88.9351 93.8231 257.131 +88.9788 96.7336 265.108 +88.7348 99.4871 272.654 +88.6412 102.576 281.119 +88.4245 105.703 289.691 +87.4404 108.078 296.198 +84.2197 107.739 295.27 +83.3765 110.509 302.861 +83.1244 114.28 313.196 +87.1218 124.39 340.903 +86.7411 128.787 352.955 +86.381 133.56 366.034 +85.8467 138.44 379.409 +85.5687 144.167 395.104 +85.0245 149.935 410.913 +84.5208 156.318 428.406 +84.0978 163.485 448.047 +82.2102 168.396 461.506 +81.8622 177.167 485.544 +82.2116 188.559 516.765 +77.2828 188.492 516.581 +72.5334 188.852 517.568 +67.4547 188.313 516.091 +62.5901 188.304 516.065 +57.6056 187.87 514.876 +52.8206 188.035 515.329 +47.8746 187.571 514.058 +43.129 187.844 514.805 +38.2614 187.556 514.015 +33.5218 187.868 514.872 +28.6749 187.55 514.001 +23.8991 187.629 514.217 +19.09 187.385 513.548 +14.3188 187.435 513.685 +9.54472 187.437 513.689 +4.76992 187.355 513.465 +3.34134e-14 187.054 512.64 +-4.76731 187.252 513.184 +-9.53425 187.231 513.125 +-14.3005 187.195 513.028 +-19.0342 186.837 512.046 +-23.8424 187.184 512.997 +-28.5754 186.9 512.219 +-33.3874 187.116 512.809 +-38.1498 187.009 512.516 +-42.8857 186.785 511.902 +-47.6655 186.752 511.812 +-52.4755 186.807 511.962 +-57.2607 186.745 511.793 +-62.1486 186.975 512.424 +-66.8697 186.68 511.616 +-71.6589 186.575 511.327 +-76.406 186.354 510.72 +-81.1917 186.219 510.353 +-85.9764 186.071 509.947 +-91.0568 186.517 511.168 +-95.6975 186.035 509.848 +-100.758 186.348 510.706 +-105.498 186.04 509.861 +-110.629 186.389 510.817 +-115.37 186.051 509.891 +-120.643 186.535 511.218 +-124.96 185.533 508.471 +-127.438 181.952 498.658 +-132.138 181.664 497.868 +-140.363 186.041 509.863 +-147.501 188.693 517.131 +-150.375 185.866 509.385 +-149.892 179.182 491.065 +-154.76 179.088 490.809 +-957.897 1073.97 2943.32 +-148.428 161.364 442.235 +-154.045 162.512 445.379 +-175.819 180.118 493.631 +-1066.66 1061.86 2910.12 +-1093.65 1058.63 2901.28 +-197.756 186.241 510.413 +-202.665 185.803 509.213 +-209.681 187.238 513.145 +-447.608 389.505 1067.48 +-452.525 383.925 1052.18 +-463.812 383.822 1051.9 +-462.704 373.648 1024.02 +-448.393 353.483 968.755 +-450.217 346.617 949.938 +-451.559 339.644 930.827 +-454.188 333.869 915 +-456.557 328.104 899.202 +-145.715 102.408 280.659 +-146.174 100.496 275.418 +-147.002 98.8941 271.029 +-150.853 99.3322 272.23 +-469.988 302.988 830.368 +-113.993 71.9658 197.23 +-111.409 68.8942 188.811 +-112.519 68.1703 186.827 +-113.6 67.4453 184.841 +-114.856 66.8372 183.174 +-116.553 66.491 182.225 +-118.032 66.0228 180.942 +-120.08 65.8709 180.526 +-121.913 65.596 179.772 +-125.267 66.1198 181.208 +-129.484 67.0576 183.778 +-507.412 257.861 706.694 +-510.955 254.836 698.404 +-514.441 251.838 690.187 +-517.522 248.699 681.584 +-521.424 246.004 674.2 +-524.931 243.168 666.426 +-528.574 240.439 658.946 +-531.388 237.38 650.563 +-535.625 234.998 644.035 +-538.724 232.153 636.238 +-542.474 229.627 629.315 +-546.137 227.096 622.379 +-549.391 224.43 615.072 +-553.33 222.074 608.616 +-136.067 53.654 147.044 +-138.62 53.7071 147.19 +-548.553 208.83 572.321 +-551.282 206.221 565.17 +-555.215 204.088 559.324 +-561.766 202.917 556.114 +-567.466 201.426 552.028 +-570.61 199.036 545.479 +-583.858 200.134 548.486 +-580.729 195.616 536.106 +-587.844 194.586 533.283 +-586.755 190.862 523.077 +-590.861 188.866 517.605 +-595.425 187.022 512.552 +-599.272 184.958 506.897 +-602.76 182.795 500.969 +-607.617 181.053 496.193 +-611.29 178.961 490.461 +-615.823 177.126 485.431 +-619.537 175.059 479.767 +-623.426 173.048 474.256 +-142.669 38.8998 106.609 +-142.472 38.1553 104.568 +-143.914 37.8526 103.739 +-142.636 36.8431 100.972 +-142.443 36.1298 99.0173 +-142.549 35.5008 97.2935 +-146.378 35.7894 98.0845 +-148.594 35.665 97.7435 +-662.35 156.04 427.642 +-383.927 88.7664 243.273 +-385.756 87.5201 239.857 +-381.679 84.9626 232.848 +-382.141 83.4492 228.701 +-384.251 82.303 225.56 +-382.324 80.3087 220.094 +-382.039 78.6853 215.645 +-382.305 77.1918 211.552 +-381.224 75.4454 206.766 +-711.168 137.92 377.983 +-716.663 136.169 373.186 +-731.439 136.13 373.079 +-722.693 131.716 360.982 +-733.381 130.864 358.645 +-738.644 129.007 353.557 +-410.775 70.2026 192.397 +-409.401 68.4452 187.581 +-408.6 66.8046 183.085 +-406.207 64.9283 177.942 +-407.299 63.6254 174.372 +-410.365 62.6276 171.637 +-406.624 60.6048 166.094 +-407.415 59.2793 162.461 +-405.491 57.5729 157.784 +-405.272 56.1268 153.821 +-406.22 54.8492 150.32 +-406.668 53.5093 146.648 +-403.706 51.7385 141.795 +-403.786 50.3767 138.062 +-406.75 49.373 135.312 +-404.871 47.786 130.962 +-386.252 44.2999 121.408 +-384.227 42.7934 117.28 +-380.628 41.1374 112.741 +-381.661 39.9974 109.617 +-381.514 38.7373 106.163 +-382.198 37.566 102.953 +-382.079 36.3207 99.5406 +-380.575 34.9548 95.797 +-381.063 33.7806 92.5791 +-380.55 32.5234 89.1335 +-381.363 31.3838 86.0104 +-380.394 30.103 82.5004 +-382.025 29.0308 79.5618 +-381.869 27.8228 76.2512 +-379.427 26.4608 72.5185 +-379.595 25.2921 69.3156 +-379.831 24.1307 66.1327 +-381.711 23.071 63.2284 +-380.213 21.8095 59.7712 +-378.976 20.5749 56.3874 +-380.87 19.5114 53.4729 +-379.471 18.2807 50.1001 +-379.922 17.1449 46.9874 +-378.557 15.9327 43.665 +-378.948 14.7997 40.56 +-380.206 13.6978 37.5402 +-378.45 12.491 34.2329 +-378.255 11.3435 31.0881 +-378.53 10.2117 27.9861 +-377.977 9.05986 24.8294 +-378.593 7.93726 21.7528 +-379.279 6.81346 18.673 +-378.439 5.66372 15.522 +-144.912 1.7346 4.75385 +-377.771 3.39085 9.29296 +-144.378 0.863844 2.36745 +-143.195 0.428349 1.17393 +96.2 0 0 +96.1963 0.294862 0.786005 +96.1853 0.589702 1.57195 +96.0671 0.883576 2.35532 +96.1414 1.17922 3.14342 +96.1084 1.47386 3.92883 +96.9669 1.78493 4.75804 +96.9189 2.08208 5.55013 +95.9657 2.35701 6.28301 +96.8007 2.67587 7.13298 +96.7305 2.97247 7.92362 +96.7525 3.27221 8.72264 +96.8664 3.576 9.53242 +96.5752 3.86482 10.3023 +95.7807 4.13071 11.0111 +96.5667 4.4654 11.9033 +96.2541 4.75142 12.6657 +96.0334 5.04108 13.4379 +95.9045 5.33525 14.222 +96.4587 5.66959 15.1132 +96.3142 5.96502 15.9008 +96.1623 6.25999 16.687 +96.0031 6.5545 17.4721 +95.8366 6.84852 18.2559 +95.6628 7.14202 19.0383 +96.3604 7.50337 20.0015 +95.2934 7.72732 20.5985 +95.9729 8.09293 21.5731 +95.8652 8.39527 22.379 +96.4275 8.75912 23.3489 +96.2062 9.05437 24.136 +96.074 9.3583 24.9461 +95.7417 9.64273 25.7043 +96.1696 10.0056 26.6717 +95.9174 10.3 27.4565 +96.7069 10.7098 28.5489 +96.2469 10.9841 29.28 +95.9704 11.2787 30.0653 +96.5374 11.6754 31.1226 +96.2437 11.9708 31.9102 +96.6944 12.3615 32.9516 +96.2899 12.6451 33.7075 +96.999 13.0782 34.862 +96.5773 13.3621 35.6189 +96.2417 13.6576 36.4067 +96.8226 14.0865 37.5499 +96.4689 14.3827 38.3396 +96.2913 14.7059 39.2011 +95.9223 15.0005 39.9862 +96.3649 15.425 41.1179 +95.978 15.7198 41.9038 +96.5766 16.1797 43.1297 +96.7102 16.5675 44.1634 +96.2054 16.8476 44.9102 +95.8723 17.1578 45.737 +96.152 17.5807 46.8644 +95.7115 17.8748 47.6482 +96.0547 18.3183 48.8306 +96.2956 18.7482 49.9766 +95.8262 19.0427 50.7615 +96.9082 19.6518 52.3852 +96.3301 19.9303 53.1275 +96.517 20.3695 54.2983 +96.0073 20.6645 55.0848 +96.1687 21.1069 56.264 +95.6406 21.4009 57.0477 +95.7762 21.8463 58.2349 +95.8135 22.2747 59.377 +95.2564 22.5675 60.1576 +95.3514 23.0178 61.3578 +95.5131 23.4905 62.6179 +95.8214 24.0067 63.9939 +95.6258 24.4027 65.0496 +95.8197 24.9038 66.3854 +95.1175 25.1755 67.1094 +95.2024 25.6585 68.397 +95.1129 26.1007 69.5757 +95.9478 26.8066 71.4576 +95.2004 27.0776 72.1799 +95.1413 27.5471 73.4314 +95.1427 28.0409 74.7476 +95.1268 28.5367 76.0695 +95.0934 29.0346 77.3966 +95.0425 29.5344 78.729 +95.5684 30.2242 80.5676 +94.6664 30.4685 81.2189 +95.3685 31.2366 83.2663 +95.2417 31.7453 84.6225 +95.0967 32.2556 85.9827 +94.363 32.5705 86.8221 +94.823 33.3055 88.7814 +95.2536 34.0458 90.7549 +94.4041 34.3365 91.5297 +94.6488 35.0322 93.3842 +94.3886 35.552 94.7699 +94.1773 36.0989 96.2277 +94.4143 36.8302 98.1771 +94.0258 37.3286 99.5057 +94.2757 38.0925 101.542 +93.9102 38.6205 102.949 +93.7827 39.2565 104.645 +93.8851 40.0033 106.635 +94.1463 40.8354 108.854 +93.5639 41.3148 110.132 +93.6421 42.0981 112.219 +93.6275 42.8574 114.244 +93.1008 43.3952 115.677 +93.0303 44.1588 117.713 +93.6342 45.2662 120.665 +93.6093 46.0948 122.873 +93.5503 46.9269 125.092 +92.3242 47.183 125.774 +96.7963 50.4049 134.363 +115.52 61.3024 163.412 +115.355 62.3905 166.312 +115.036 63.4232 169.065 +114.886 64.5777 172.143 +114.584 65.676 175.07 +114.853 67.1386 178.969 +114.602 68.3356 182.16 +114.7 69.7792 186.008 +114.341 70.9843 189.221 +114.609 72.6221 193.586 +114.518 74.0819 197.478 +115.114 76.0428 202.705 +113.96 76.8911 204.966 +111.818 77.0811 205.473 +109.542 77.1693 205.708 +107.226 77.2181 205.838 +104.873 77.2269 205.861 +102.569 77.2588 205.946 +100.273 77.2827 206.01 +97.6981 77.0737 205.453 +95.4207 77.08 205.47 +93.1503 77.0786 205.466 +90.3133 76.5827 204.144 +91.0294 79.1362 210.951 +90.7091 80.8826 215.606 +90.7746 83.0595 221.409 +90.6337 85.1441 226.966 +90.1223 86.9699 231.833 +89.794 89.064 237.415 +89.3685 91.1623 243.008 +89.2578 93.6975 249.766 +89.2441 96.473 257.165 +88.7082 98.82 263.421 +88.5009 101.674 271.029 +88.3572 104.771 279.284 +88.4245 108.313 288.725 +87.574 110.915 295.662 +84.1938 110.365 294.196 +83.6019 113.543 302.668 +83.1244 117.101 312.152 +87.1452 127.495 339.859 +86.7411 131.966 351.779 +86.3594 136.822 364.723 +85.8675 141.892 378.236 +85.4292 147.484 393.145 +85.0054 153.602 409.452 +84.5391 160.211 427.07 +84.1152 167.555 446.647 +82.0617 172.241 459.137 +81.7214 181.228 483.094 +82.0342 192.796 513.931 +77.2828 193.145 514.86 +72.3376 192.991 514.451 +67.5644 193.275 515.208 +62.3863 192.323 512.67 +57.6684 192.717 513.719 +52.6768 192.152 512.214 +47.9531 192.516 513.184 +43.0113 191.955 511.69 +38.3242 192.501 513.143 +33.4485 192.085 512.034 +28.7063 192.39 512.849 +23.8467 191.84 511.381 +19.1214 192.326 512.678 +14.2952 191.746 511.131 +9.54472 192.063 511.977 +4.76207 191.664 510.912 +3.34501e-14 191.882 511.493 +-4.75945 191.558 510.631 +-9.53949 191.958 511.696 +-14.2612 191.289 509.913 +-19.0656 191.765 511.181 +-23.7638 191.173 509.603 +-28.5911 191.619 510.792 +-33.2592 190.998 509.137 +-38.0661 191.204 509.687 +-42.8387 191.185 509.636 +-47.7178 191.572 510.666 +-52.3318 190.893 508.858 +-57.2293 191.25 509.809 +-61.9108 190.858 508.763 +-66.8697 191.288 509.911 +-71.5022 190.762 508.509 +-76.4478 191.058 509.296 +-81.103 190.608 508.097 +-86.0702 190.872 508.802 +-90.6606 190.29 507.249 +-95.8538 190.938 508.978 +-100.43 190.326 507.347 +-105.727 191.046 509.265 +-110.35 190.508 507.83 +-115.557 190.952 509.016 +-120.297 190.591 508.052 +-124.645 189.633 505.499 +-127.555 186.614 497.452 +-132.307 186.387 496.845 +-141.114 191.653 510.883 +-147.501 193.35 515.408 +-150.455 190.555 507.958 +-149.726 183.402 488.888 +-154.334 183.003 487.827 +-957.897 1100.48 2933.51 +-148.428 165.347 440.761 +-154.045 166.523 443.895 +-176.358 185.13 493.496 +-1066.66 1088.07 2900.43 +-1093.65 1084.76 2891.61 +-196.764 189.881 506.161 +-201.474 189.271 504.535 +-208.857 191.106 509.425 +-448.158 399.608 1065.22 +-452.188 393.106 1047.89 +-463.468 393.005 1047.62 +-463.407 383.454 1022.16 +-448.752 362.499 966.303 +-450.217 355.173 946.772 +-451.933 348.315 928.492 +-453.807 341.823 911.187 +-456.299 336.013 895.698 +-145.32 104.652 278.966 +-146.308 103.071 274.752 +-147.048 101.366 270.209 +-150.853 101.784 271.323 +-469.847 310.374 827.353 +-113.993 73.7422 196.572 +-111.409 70.5948 188.182 +-112.42 69.7918 186.042 +-113.15 68.8365 183.495 +-114.907 68.5172 182.644 +-116.553 68.1322 181.618 +-118.032 67.6524 180.339 +-120.08 67.4968 179.924 +-121.86 67.1853 179.094 +-125.267 67.7518 180.604 +-129.374 68.6542 183.009 +-507.412 264.226 704.339 +-511.465 261.387 696.771 +-514.441 258.054 687.886 +-518.103 255.124 680.075 +-521.189 251.963 671.649 +-524.396 248.916 663.527 +-528.273 246.233 656.376 +-531.997 243.518 649.137 +-535.071 240.549 641.225 +-538.724 237.883 634.117 +-542.474 235.295 627.218 +-546.582 232.891 620.811 +-549.391 229.969 613.022 +-553.914 227.796 607.228 +-136.132 55.0047 146.624 +-137.295 54.5066 145.297 +-548.419 213.933 570.274 +-551.079 211.234 563.08 +-555.624 209.28 557.871 +-560.527 207.467 553.038 +-567.466 206.398 550.189 +-571.031 204.1 544.062 +-584.494 205.297 547.254 +-581.656 200.765 535.174 +-587.413 199.243 531.116 +-586.755 195.573 521.333 +-590.861 193.528 515.88 +-594.983 191.496 510.464 +-598.826 189.383 504.831 +-603.509 187.54 499.92 +-607.39 185.453 494.355 +-611.747 183.516 489.192 +-616.053 181.566 483.994 +-619.537 179.38 478.168 +-623.66 177.386 472.852 +-142.748 39.8821 106.312 +-142.63 39.1403 104.335 +-143.914 38.7869 103.393 +-142.796 37.795 100.749 +-142.524 37.0423 98.7426 +-142.63 36.3978 97.0245 +-146.866 36.7954 98.0844 +-148.43 36.5049 97.3101 +-662.597 159.951 426.376 +-382.85 90.7021 241.782 +-381.002 88.5754 236.113 +-381.26 86.9643 231.818 +-383.237 85.7546 228.593 +-382.554 83.9626 223.816 +-382.239 82.2728 219.312 +-381.525 80.519 214.637 +-383.511 79.3466 211.512 +-383.216 77.7116 207.153 +-383.566 76.2227 203.184 +-716.663 139.531 371.942 +-732.143 139.625 372.193 +-722.693 134.968 359.779 +-405.453 74.1342 197.617 +-409.685 73.3193 195.445 +-411.222 72.0138 191.965 +-408.142 69.919 186.381 +-406.705 68.1361 181.628 +-407.567 66.7533 177.942 +-404.387 64.7298 172.548 +-408.903 63.9448 170.456 +-403.323 61.5967 164.196 +-405.206 60.4131 161.041 +-403.828 58.7521 156.613 +-404.808 57.4461 153.132 +-407.523 56.3837 150.3 +-403.12 54.3517 144.884 +-405.111 53.2004 141.815 +-405.383 51.8242 138.146 +-406.467 50.5566 134.767 +-403.926 48.8513 130.221 +-386.252 45.3934 121.004 +-385.939 44.045 117.409 +-379.579 42.0366 112.056 +-382.618 41.0872 109.525 +-380.939 39.6334 105.65 +-381.429 38.416 102.404 +-381.116 37.1235 98.9589 +-380.575 35.8176 95.4778 +-380.579 34.5705 92.1534 +-381.908 33.4451 89.1536 +-381.363 32.1585 85.7238 +-380.881 30.8856 82.3308 +-379.779 29.5725 78.8306 +-380.01 28.3709 75.6273 +-380.701 27.205 72.5195 +-380.479 25.9768 69.2455 +-381.11 24.8096 66.1341 +-379.939 23.5307 62.7251 +-380.114 22.3421 59.5565 +-381.939 21.2476 56.6389 +-380.277 19.9618 53.2117 +-379.966 18.7564 49.9983 +-380.417 17.5911 46.8919 +-380.344 16.403 43.7248 +-379.843 15.2008 40.5202 +-379.311 14.0029 37.3271 +-379.246 12.8263 34.1905 +-378.753 11.6389 31.0253 +-378.53 10.4637 27.8928 +-378.775 9.30308 24.7989 +-378.992 8.14175 21.7032 +-379.879 6.99267 18.6401 +-377.64 5.79126 15.4376 +-146.011 1.7909 4.77395 +-147.549 1.35709 3.61755 +-144.678 0.887004 2.36446 +-144.594 0.443214 1.18146 +96.2 0 0 +96.1963 0.301941 0.783313 +96.1853 0.603859 1.56657 +96.167 0.905731 2.3497 +96.2413 1.20879 3.13591 +96.2083 1.51082 3.91945 +95.9683 1.80896 4.69291 +96.1204 2.1145 5.48554 +96.0654 2.41611 6.26801 +96.8007 2.74011 7.10855 +96.8301 3.04697 7.90462 +96.7525 3.35077 8.69276 +95.7725 3.62049 9.39247 +96.5752 3.95761 10.267 +96.4755 4.26056 11.053 +96.5667 4.57261 11.8625 +96.2541 4.86549 12.6223 +96.0334 5.16211 13.3918 +95.9045 5.46333 14.1733 +96.4587 5.8057 15.0615 +95.5264 6.05826 15.7167 +96.1623 6.41027 16.6299 +95.1197 6.6501 17.2521 +95.8366 7.01294 18.1934 +96.3475 7.36581 19.1088 +96.3604 7.68351 19.933 +96.1703 7.98567 20.7169 +95.9729 8.28722 21.4992 +95.8652 8.59682 22.3024 +96.5243 8.97843 23.2924 +96.3994 9.29034 24.1015 +95.9776 9.57333 24.8357 +95.7417 9.87423 25.6163 +96.3614 10.2663 26.6333 +96.1086 10.5684 27.417 +95.8486 10.8696 28.1985 +96.2469 11.2478 29.1797 +95.9704 11.5495 29.9623 +96.5374 11.9556 31.016 +96.1494 12.2462 31.7698 +96.6944 12.6582 32.8387 +96.3836 12.9612 33.6247 +96.999 13.3921 34.7426 +96.5773 13.6829 35.4969 +96.3344 13.999 36.3169 +96.8226 14.4247 37.4213 +97.3894 14.8686 38.5729 +96.2913 15.059 39.0668 +96.7445 15.4923 40.1909 +96.5469 15.8252 41.0545 +95.978 16.0972 41.7602 +96.5766 16.5681 42.982 +96.7102 16.9652 44.0121 +96.2054 17.2521 44.7564 +95.8723 17.5697 45.5804 +96.152 18.0028 46.7039 +96.5062 18.4559 47.8793 +96.0547 18.7581 48.6633 +96.2956 19.1983 49.8054 +95.9132 19.5176 50.6336 +95.3494 19.7999 51.366 +96.4163 20.427 52.9928 +95.8313 20.7103 53.7279 +96.0925 21.1794 54.9449 +96.1687 21.6136 56.0713 +95.6406 21.9147 56.8523 +95.7762 22.3708 58.0355 +95.9803 22.8492 59.2766 +95.9196 23.2702 60.3689 +95.3514 23.5704 61.1477 +95.677 24.0957 62.5104 +95.6586 24.5413 63.6664 +95.7067 25.0097 64.8817 +95.7394 25.4803 66.1025 +95.1175 25.7799 66.8796 +95.2024 26.2745 68.1627 +95.9797 26.9709 69.9694 +95.2434 27.2487 70.6901 +95.2004 27.7277 71.9327 +95.1413 28.2084 73.1799 +95.1427 28.7141 74.4916 +95.1268 29.2218 75.8089 +95.7726 29.944 77.6825 +95.6416 30.4341 78.954 +94.8996 30.7332 79.7297 +94.8139 31.2486 81.0668 +95.3685 31.9865 82.9812 +95.2417 32.5074 84.3326 +95.0967 33.03 85.6882 +94.9336 33.5541 87.0479 +94.823 34.1051 88.4774 +95.2536 34.8632 90.444 +95.0293 35.3937 91.8203 +94.7864 35.9254 93.1998 +94.3886 36.4056 94.4453 +94.7177 37.1778 96.4487 +94.3474 37.6874 97.7708 +94.0258 38.2248 99.1649 +94.3413 39.034 101.264 +94.2349 39.6843 102.951 +93.7827 40.199 104.287 +94.0124 41.0191 106.414 +94.1463 41.8157 108.481 +93.5017 42.2786 109.682 +93.6421 43.1087 111.835 +93.6884 43.9148 113.926 +93.6424 44.6956 115.952 +93.5656 45.4793 117.985 +93.5166 46.2951 120.101 +93.6093 47.2014 122.453 +93.493 48.024 124.587 +92.3242 48.3157 125.343 +95.7338 51.0485 132.433 +114.968 62.4742 162.074 +114.864 63.6172 165.039 +115.036 64.9458 168.486 +114.886 66.1281 171.553 +114.584 67.2527 174.471 +114.802 68.7198 178.277 +114.602 69.9762 181.536 +114.6 71.3922 185.21 +114.784 72.9701 189.303 +114.706 74.4285 193.087 +114.47 75.8287 196.719 +115.067 77.8364 201.928 +114.052 78.8011 204.43 +112.363 79.3161 205.766 +109.943 79.3118 205.755 +107.182 79.0395 205.049 +105.26 79.3729 205.914 +102.569 79.1136 205.241 +100.273 79.1381 205.304 +97.6981 78.9241 204.749 +95.4207 78.9305 204.766 +93.1503 78.9291 204.762 +90.6194 78.687 204.134 +90.6923 80.7357 209.449 +90.6358 82.7574 214.694 +90.7029 84.9863 220.476 +90.4936 87.0534 225.839 +90.0539 88.9902 230.863 +89.794 91.2022 236.602 +89.3685 93.3508 242.176 +89.0674 95.7423 248.38 +88.8424 98.3445 255.131 +88.6781 101.158 262.429 +88.7348 104.39 270.815 +88.3572 107.286 278.327 +88.3693 110.843 287.556 +87.8947 113.993 295.728 +84.2456 113.084 293.368 +83.5268 116.164 301.36 +82.9066 119.598 310.267 +86.9117 130.206 337.787 +86.7636 135.17 350.665 +86.4243 140.212 363.747 +85.8675 145.298 376.941 +85.6285 151.378 392.712 +85.1771 157.607 408.873 +84.5755 164.128 425.791 +84.0284 171.401 444.657 +81.2364 174.602 452.963 +82.66 187.711 486.969 +80.9404 194.792 505.342 +76.6565 196.179 508.939 +71.2412 194.629 504.918 +66.8697 195.88 508.164 +61.6052 194.475 504.518 +57.2293 195.841 508.063 +52.0059 194.259 503.958 +47.5609 195.525 507.243 +42.4385 193.947 503.147 +38.0103 195.508 507.197 +33.0028 194.076 503.482 +28.5022 195.609 507.459 +23.5152 193.714 502.544 +18.9749 195.434 507.006 +14.1068 193.76 502.664 +9.46968 195.128 506.211 +4.70011 193.711 502.537 +3.32419e-14 195.265 506.569 +-4.69749 193.604 502.258 +-9.4592 194.912 505.651 +-14.0832 193.437 501.825 +-18.9155 194.823 505.421 +-23.4934 193.534 502.078 +-28.3504 194.567 504.757 +-32.8807 193.357 501.619 +-37.8499 194.682 505.055 +-42.2581 193.122 501.008 +-47.343 194.63 504.92 +-51.7088 193.149 501.078 +-56.8844 194.661 505 +-61.1071 192.902 500.438 +-66.3579 194.381 504.274 +-70.5494 192.739 500.015 +-75.9468 194.362 504.226 +-80.024 192.587 499.62 +-85.5071 194.176 503.741 +-89.5548 192.481 499.346 +-95.0203 193.822 502.824 +-99.1179 192.349 499.003 +-104.64 193.62 502.299 +-108.795 192.332 498.959 +-114.539 193.813 502.801 +-118.587 192.393 499.116 +-124.105 193.345 501.586 +-127.344 190.78 494.931 +-132.839 191.629 497.134 +-138.21 192.214 498.653 +-146.181 196.22 509.046 +-150.215 194.818 505.409 +-149.974 188.116 488.021 +-151.267 183.672 476.493 +-164.108 193.062 500.853 +-148.519 169.42 439.519 +-154.756 171.307 444.415 +-176.929 190.189 493.398 +-1066.66 1114.19 2890.49 +-483.886 491.473 1275.01 +-195.67 193.358 501.621 +-199.373 191.794 497.562 +-206.062 193.075 500.885 +-447.901 408.968 1060.97 +-452.824 403.112 1045.78 +-464.501 403.335 1046.35 +-461.024 390.639 1013.42 +-448.752 371.202 962.994 +-450.217 363.699 943.53 +-451.767 356.546 924.973 +-454.188 350.323 908.827 +-456.557 344.274 893.136 +-145.583 107.358 278.515 +-145.951 105.288 273.143 +-146.821 103.64 268.869 +-151.546 104.706 271.635 +-470.411 318.206 825.507 +-113.23 75.0069 194.587 +-111.603 72.4151 187.863 +-112.617 71.5925 185.729 +-113.75 70.8628 183.836 +-115.008 70.224 182.179 +-116.708 69.8604 181.236 +-118.032 69.2766 179.721 +-120.398 69.3004 179.783 +-122.612 69.223 179.582 +-124.886 69.1673 179.438 +-130.533 70.9322 184.016 +-507.579 270.659 702.158 +-510.955 267.395 693.692 +-514.67 264.367 685.836 +-518.103 261.249 677.746 +-521.424 258.128 669.651 +-525.466 255.412 662.605 +-528.033 252.03 653.83 +-532.788 249.735 647.877 +-535.625 246.579 639.69 +-539.284 243.847 632.602 +-543.041 241.195 625.722 +-546.582 238.482 618.685 +-550.162 235.821 611.78 +-554.499 233.511 605.788 +-137.248 56.7867 147.319 +-136.301 55.4109 143.75 +-558.523 223.105 578.792 +-556.551 218.453 566.723 +-555.419 214.225 555.755 +-559.15 211.926 549.791 +-565.869 210.758 546.76 +-570.54 208.82 541.733 +-585.202 210.48 546.04 +-581.941 205.686 533.602 +-587.125 203.926 529.037 +-587.191 200.417 519.933 +-590.861 198.174 514.114 +-595.646 196.312 509.283 +-599.495 194.146 503.665 +-603.509 192.042 498.207 +-608.371 190.212 493.458 +-611.975 187.991 487.698 +-616.053 185.925 482.337 +-620.309 183.915 477.123 +-139.575 40.6522 105.462 +-142.748 40.8396 105.948 +-142.63 40.08 103.978 +-143.914 39.7181 103.039 +-142.796 38.7024 100.404 +-142.283 37.8676 98.2383 +-142.063 37.1235 96.3078 +-147.518 37.8457 98.1814 +-148.84 37.4846 97.2446 +-385.361 95.2596 247.128 +-385.502 93.5235 242.624 +-382.503 91.059 236.23 +-382.014 89.2283 231.481 +-383.321 87.8328 227.861 +-382.3 85.9211 222.901 +-382.58 84.3231 218.756 +-383.497 82.8783 215.008 +-383.511 81.2515 210.787 +-383.13 79.5593 206.397 +-380.781 77.4857 201.018 +-716.663 142.88 370.668 +-736.712 143.869 373.234 +-723.046 138.276 358.722 +-410.243 76.811 199.267 +-411.378 75.3896 195.58 +-409.701 73.4697 190.599 +-410.12 71.9447 186.643 +-406.976 69.8183 181.127 +-409.923 68.7511 178.358 +-408.027 66.8801 173.504 +-406.254 65.0559 168.772 +-404.148 63.2046 163.969 +-407.692 62.2429 161.474 +-406.322 60.5341 157.041 +-406.57 59.0814 153.272 +-405.011 57.3812 148.862 +-402.747 55.6052 144.254 +-405.86 54.5783 141.59 +-406.135 53.1669 137.929 +-402.696 51.2898 133.059 +-406.951 50.3989 130.748 +-384.83 46.312 120.145 +-383.181 44.7801 116.171 +-380.628 43.1649 111.981 +-380.227 41.8107 108.468 +-382.281 40.7281 105.659 +-381.909 39.3879 102.182 +-381.405 38.0435 98.6946 +-382.313 36.8451 95.5856 +-382.322 35.5625 92.2583 +-381.035 34.1697 88.645 +-380.488 32.8549 85.2342 +-380.394 31.5866 81.9438 +-382.025 30.4616 79.0251 +-380.499 29.0893 75.4652 +-383.151 28.0374 72.7362 +-379.301 26.518 68.7946 +-380.815 25.3855 65.8565 +-379.939 24.0956 62.5102 +-379.227 22.825 59.2139 +-379.371 21.6114 56.0655 +-381.562 20.5102 53.2087 +-379.075 19.1617 49.7103 +-380.417 18.0134 46.7313 +-379.45 16.7573 43.4727 +-378.054 15.4924 40.1913 +-378.913 14.324 37.1602 +-379.345 13.1376 34.0824 +-379.55 11.9433 30.9841 +-379.327 10.7375 27.8559 +-379.573 9.5465 24.7661 +-378.593 8.32844 21.6061 +-379.18 7.14738 18.5421 +-378.439 5.94285 15.4173 +-145.311 1.82511 4.73481 +-378.37 3.56361 9.24492 +-143.778 0.902652 2.34171 +-144.195 0.452599 1.17416 +96.3 0 0 +96.1963 0.308996 0.780558 +96.1853 0.617967 1.56105 +96.167 0.926892 2.34143 +96.2413 1.23703 3.12488 +97.1075 1.56056 3.94215 +96.9669 1.87049 4.72506 +96.9189 2.18187 5.51166 +96.0654 2.47256 6.24595 +96.0031 2.78103 7.02518 +96.8301 3.11816 7.87681 +96.7525 3.42906 8.66218 +96.6675 3.73971 9.44692 +96.5752 4.05007 10.2309 +96.674 4.36908 11.0368 +96.5667 4.67944 11.8208 +96.2541 4.97916 12.5779 +96.1323 5.28816 13.3585 +95.9045 5.59097 14.1234 +95.6697 5.89272 14.8857 +96.4127 6.25734 15.8067 +96.2607 6.56678 16.5884 +96.0031 6.86867 17.351 +95.8366 7.17679 18.1294 +95.6628 7.48435 18.9063 +96.458 7.87097 19.883 +95.2934 8.09771 20.4557 +96.0701 8.48941 21.4452 +95.8652 8.79767 22.2239 +95.7498 9.11448 23.0242 +96.2062 9.48837 23.9687 +95.9776 9.797 24.7483 +95.7417 10.1049 25.5262 +96.1696 10.4852 26.4868 +96.1086 10.8153 27.3206 +95.8486 11.1235 28.0993 +95.5812 11.431 28.8759 +95.9704 11.8193 29.8569 +95.6865 12.1271 30.6345 +96.2437 12.5446 31.689 +96.6004 12.9414 32.6914 +96.2899 13.2512 33.4739 +95.9721 13.5599 34.2539 +96.6704 14.0161 35.4062 +96.3344 14.326 36.1892 +96.915 14.7758 37.3253 +96.561 15.0865 38.1102 +96.2913 15.4108 38.9294 +95.9223 15.7195 39.7091 +96.5469 16.1949 40.9101 +96.7937 16.6133 41.9669 +96.5766 16.9552 42.8308 +96.7102 17.3616 43.8573 +96.2949 17.6716 44.6404 +95.8723 17.9802 45.42 +96.2407 18.4404 46.5825 +96.5062 18.8871 47.7108 +96.7578 19.3369 48.847 +96.2956 19.6469 49.6302 +95.9132 19.9736 50.4555 +96.1288 20.4281 51.6037 +96.4163 20.9042 52.8064 +95.8313 21.1942 53.5389 +96.0925 21.6743 54.7516 +96.1687 22.1186 55.8741 +95.7249 22.4465 56.7022 +95.7762 22.8934 57.8313 +95.9803 23.383 59.068 +96.0855 23.8551 60.2606 +95.3514 24.1211 60.9325 +95.5131 24.6164 62.1839 +95.5772 25.0933 63.3884 +95.7067 25.594 64.6534 +95.0963 25.9005 65.4274 +95.1175 26.3822 66.6443 +95.2817 26.9107 67.9795 +95.1917 27.3744 69.1507 +95.3217 27.9082 70.4993 +95.2004 28.3755 71.6796 +95.1413 28.8675 72.9224 +95.1427 29.3849 74.2296 +95.1268 29.9046 75.5422 +95.0934 30.4263 76.8601 +95.6416 31.1452 78.6762 +95.5684 31.6729 80.0092 +94.8139 31.9786 80.7815 +95.4417 32.7589 82.7526 +95.3142 33.2922 84.0999 +94.9529 33.7505 85.2576 +94.791 34.2864 86.6113 +94.8937 34.9279 88.2318 +95.2536 35.6777 90.1258 +95.0293 36.2206 91.4973 +94.6488 36.7114 92.737 +94.3886 37.2561 94.1131 +94.7853 38.0736 96.1781 +94.3474 38.5679 97.4269 +94.6884 39.3935 99.5124 +94.3413 39.946 100.908 +94.2349 40.6115 102.589 +93.9113 41.1945 104.062 +94.0124 41.9774 106.04 +93.5799 42.5354 107.449 +93.6262 43.3238 109.441 +93.5805 44.0872 111.369 +93.6275 44.9117 113.452 +93.161 45.5047 114.95 +93.1492 46.3347 117.046 +93.6342 47.4359 119.828 +93.6093 48.3042 122.022 +93.3782 49.0856 123.996 +92.0977 49.3231 124.596 +94.3358 51.4785 130.04 +114.968 63.9338 161.504 +115.355 65.381 165.16 +115.143 66.5254 168.05 +114.886 67.673 170.95 +115.054 69.1063 174.57 +114.802 70.3254 177.65 +114.602 71.6111 180.897 +114.7 73.1238 184.719 +115.129 74.8991 189.203 +114.609 76.103 192.245 +114.948 77.9239 196.844 +114.927 79.5578 200.972 +114.698 81.0989 204.865 +112.68 81.3989 205.623 +110.345 81.4611 205.78 +107.576 81.1839 205.08 +105.26 81.2274 205.189 +103.077 81.3621 205.53 +100.729 81.3555 205.513 +98.0642 81.0706 204.793 +95.7795 81.0787 204.814 +93.502 81.0783 204.813 +91.27 81.1033 204.876 +91.0669 82.9632 209.574 +90.9656 84.9994 214.718 +90.6313 86.9031 219.527 +90.5286 89.1218 225.132 +90.0197 91.0347 229.964 +89.7607 93.298 235.681 +89.5638 95.7405 241.851 +89.0991 98.0141 247.595 +88.9969 100.817 254.675 +89.0089 103.907 262.482 +88.5302 106.583 269.24 +88.3288 109.757 277.259 +88.1764 113.186 285.92 +88.3223 117.224 296.122 +84.815 116.508 294.312 +83.8773 119.377 301.56 +83.8017 123.713 312.514 +86.9817 133.355 336.87 +86.7411 138.292 349.34 +86.4027 143.452 362.376 +85.8883 148.729 375.706 +85.4092 154.518 390.329 +85.0627 161.073 406.887 +84.6302 168.072 424.567 +83.4379 174.173 439.98 +80.7908 177.701 448.894 +83.2857 193.55 488.929 +79.3293 195.376 493.541 +75.5153 197.773 499.597 +69.7793 195.089 492.816 +65.8338 197.351 498.532 +60.36 194.996 492.581 +56.2363 196.939 497.49 +50.9899 194.914 492.375 +46.7765 196.794 497.123 +41.6382 194.735 491.922 +37.3964 196.844 497.25 +32.3618 194.752 491.966 +28.0154 196.76 497.038 +23.0834 194.599 491.58 +18.6468 196.542 496.488 +13.8188 194.24 490.671 +9.30039 196.117 495.413 +4.61197 194.52 491.379 +3.2648e-14 196.257 495.767 +-4.60412 194.189 490.542 +-9.29515 196.007 495.134 +-13.811 194.129 490.392 +-18.6084 196.138 495.465 +-23.0136 194.011 490.094 +-27.9055 195.988 495.088 +-32.2519 194.091 490.296 +-37.1732 195.669 494.282 +-41.4499 193.854 489.697 +-46.5325 195.767 494.529 +-50.6928 193.778 489.505 +-55.8705 195.658 494.254 +-59.8732 193.423 488.608 +-65.2123 195.488 493.825 +-69.2311 193.556 488.945 +-74.6525 195.514 493.889 +-78.4572 193.228 488.115 +-83.9584 195.113 492.878 +-87.7393 192.985 487.501 +-93.3012 194.762 491.99 +-97.1133 192.862 487.192 +-102.941 194.928 492.409 +-106.622 192.894 487.273 +-112.522 194.849 492.209 +-116.574 193.546 488.918 +-122.508 195.316 493.389 +-126.037 193.233 488.127 +-132.114 195.034 492.679 +-135.681 193.106 487.807 +-143.722 197.427 498.723 +-147.542 195.823 494.67 +-150.002 192.547 486.394 +-149.392 185.634 468.933 +-154.957 186.555 471.26 +-149.15 174.115 439.835 +-155.127 175.73 443.913 +-1039.59 1143.6 2888.87 +-1066.66 1140.22 2880.32 +-186.298 193.639 489.155 +-461.112 466.31 1177.95 +-195.626 192.586 486.493 +-204.234 195.833 494.695 +-206.78 193.218 488.089 +-454.585 414.135 1046.15 +-466.147 414.223 1046.37 +-455.319 394.819 997.355 +-449.151 380.213 960.461 +-450.705 372.602 941.233 +-452.596 365.546 923.411 +-453.934 358.307 905.124 +-457.332 352.915 891.504 +-145.276 109.635 276.949 +-145.639 107.517 271.6 +-147.229 106.356 268.667 +-151.407 107.055 270.432 +-471.913 326.68 825.231 +-112.18 76.0478 192.105 +-111.652 74.1394 187.284 +-112.667 73.2972 185.157 +-113.6 72.4227 182.948 +-115.008 71.8647 181.538 +-116.759 71.5242 180.678 +-118.503 71.1778 179.803 +-120.239 70.8256 178.913 +-122.934 71.0266 179.421 +-125.975 71.4009 180.367 +-505.078 280.873 709.517 +-508.474 277.471 700.921 +-512.031 274.219 692.708 +-514.957 270.695 683.805 +-519.439 268.041 677.102 +-522.482 264.695 668.649 +-526.002 261.646 660.947 +-529.477 258.624 653.312 +-532.788 255.57 645.598 +-536.549 252.775 638.539 +-540.654 250.178 631.978 +-543.418 247.002 623.955 +-547.345 244.395 617.369 +-550.74 241.584 610.269 +-554.694 239.051 603.868 +-558.241 236.371 597.099 +-562.233 233.907 590.875 +-135.164 55.2535 139.576 +-135.118 54.2744 137.103 +-561.08 221.465 559.445 +-564.451 218.933 553.049 +-563.437 214.756 542.496 +-566.545 212.202 536.046 +-573.251 210.999 533.007 +-582.797 210.801 532.506 +-585.399 208.077 525.626 +-587.988 205.378 518.808 +-592.25 203.281 513.51 +-596.162 201.072 507.931 +-599.941 198.83 502.266 +-604.857 196.968 497.564 +-608.824 194.801 492.088 +-612.735 192.622 486.586 +-616.513 190.41 480.998 +-621.003 188.423 475.978 +-141.985 42.3201 106.905 +-142.983 41.8622 105.749 +-142.394 40.9483 103.44 +-144.073 40.691 102.79 +-142.317 39.4734 99.7142 +-142.685 38.8616 98.1688 +-142.144 38.0125 96.0238 +-147.518 38.7299 97.836 +-146.792 37.8325 95.5691 +-664.163 168.014 424.421 +-384.01 95.3379 240.834 +-383.504 93.4305 236.016 +-382.769 91.4933 231.122 +-385.093 90.3 228.108 +-384.081 88.3378 223.151 +-382.835 86.351 218.132 +-382.725 84.6442 213.821 +-382.477 82.9257 209.479 +-381.917 81.1604 205.02 +-382.521 79.6586 201.227 +-717.451 146.379 369.77 +-739.349 147.758 373.252 +-722.781 141.454 357.329 +-408.291 78.2316 197.622 +-408.526 76.6165 193.542 +-746.733 137.037 346.17 +-413.266 74.1902 187.413 +-410.676 72.0995 182.131 +-404.757 69.4707 175.491 +-407.754 68.397 172.778 +-407.989 66.8603 168.897 +-406.991 65.1363 164.541 +-408.612 63.841 161.269 +-408.447 62.2723 157.307 +-408.239 60.7098 153.36 +-406.686 58.9648 148.952 +-406.014 57.3658 144.912 +-403.706 55.5568 140.343 +-404.256 54.1573 136.807 +-406.938 53.041 133.987 +-403.736 51.1689 129.258 +-387.011 47.6627 120.401 +-381.659 45.6445 115.303 +-379.102 43.9963 111.139 +-381.374 42.9167 108.412 +-381.227 41.5648 104.997 +-382.678 40.3892 102.027 +-381.019 38.8929 98.2479 +-382.796 37.7534 95.3692 +-381.45 36.3104 91.7241 +-380.259 34.8968 88.1533 +-381.363 33.6999 85.1296 +-379.03 32.2087 81.3628 +-381.048 31.0936 78.5459 +-380.891 29.7996 75.2771 +-380.309 28.4796 71.9427 +-381.362 27.2851 68.9252 +-379.831 25.9115 65.4554 +-382.204 24.8056 62.6617 +-381.002 23.4676 59.2819 +-379.371 22.1163 55.8682 +-378.101 20.799 52.5405 +-380.758 19.6964 49.7554 +-379.525 18.391 46.4576 +-379.947 17.1713 43.3765 +-378.948 15.8919 40.1446 +-379.808 14.6933 37.1169 +-380.142 13.4728 34.0338 +-378.255 12.1807 30.7698 +-379.028 10.9797 27.7359 +-379.473 9.767 24.6725 +-379.491 8.54326 21.5812 +-378.281 7.29704 18.4331 +-378.939 6.08972 15.3833 +-144.112 1.85234 4.67921 +-379.57 3.65843 9.24161 +-144.278 0.926951 2.34158 +-143.995 0.462529 1.1684 +96.3 0 0 +96.4963 0.317011 0.780164 +96.1853 0.632025 1.55542 +97.1667 0.957833 2.35723 +96.2413 1.26517 3.11359 +97.1075 1.59606 3.92791 +97.0668 1.91501 4.71284 +97.0187 2.23381 5.49741 +97.1627 2.55769 6.29448 +97.0997 2.87678 7.07976 +95.9335 3.15956 7.77569 +96.9516 3.51428 8.64865 +96.8664 3.83265 9.43216 +96.8733 4.15496 10.2254 +96.674 4.46847 10.9969 +96.6659 4.79078 11.7901 +96.4521 5.10293 12.5583 +96.1323 5.40846 13.3102 +95.9045 5.71816 14.0724 +96.656 6.08892 14.9849 +95.6248 6.34736 15.6209 +96.2607 6.71616 16.5285 +96.1013 7.03211 17.306 +96.0326 7.35507 18.1008 +95.7607 7.66244 18.8573 +95.5794 7.97669 19.6307 +96.3652 8.37509 20.6111 +96.1674 8.6913 21.3893 +95.8652 8.99781 22.1436 +95.7498 9.32182 22.941 +96.3028 9.71396 23.9061 +96.1703 10.04 24.7085 +95.8378 10.3452 25.4594 +96.4573 10.7558 26.4701 +96.2043 11.0723 27.2489 +95.9439 11.3879 28.0257 +96.4371 11.7957 29.0293 +95.9704 12.0882 29.749 +96.5374 12.5133 30.7953 +96.4322 12.8551 31.6364 +95.9426 13.1457 32.3515 +96.3836 13.5658 33.3854 +96.0654 13.8819 34.1634 +96.7634 14.3487 35.3122 +96.4271 14.6661 36.0932 +96.915 15.1119 37.1905 +96.653 15.4444 38.0088 +96.4747 15.7914 38.8626 +96.105 16.1077 39.6411 +96.5469 16.5633 40.7623 +96.1593 16.8798 41.5413 +96.5766 17.3409 42.6761 +96.89 17.7895 43.7801 +96.2949 18.0736 44.4791 +95.8723 18.3892 45.2559 +96.2407 18.8599 46.4143 +96.7711 19.3698 47.669 +96.9335 19.8127 48.759 +96.3831 20.1121 49.4959 +95.9132 20.428 50.2733 +96.2154 20.9117 51.4636 +96.4163 21.3798 52.6157 +96.6028 21.8508 53.7749 +96.0925 22.1673 54.5539 +96.1687 22.6218 55.6723 +95.7249 22.9571 56.4974 +95.7762 23.4142 57.6224 +95.9803 23.9149 58.8547 +95.2564 24.1872 59.5248 +95.5162 24.7125 60.8174 +95.677 25.2196 62.0655 +95.8214 25.7297 63.3208 +95.7067 26.1763 64.4199 +95.8197 26.6912 65.6871 +95.1974 27.005 66.4593 +95.2024 27.5 67.6776 +95.1917 27.9971 68.901 +95.2434 28.5197 70.1869 +95.2781 29.0447 71.479 +95.2185 29.5481 72.7181 +95.2193 30.0776 74.021 +95.1268 30.5848 75.2694 +95.1689 31.1431 76.6433 +95.6416 31.8537 78.392 +95.4198 32.343 79.5962 +94.8876 32.7315 80.5524 +95.3685 33.4784 82.3905 +95.2417 34.0237 83.7324 +94.4493 34.3352 84.4991 +95.005 35.1455 86.4933 +94.8937 35.7225 87.9131 +94.6228 36.2477 89.2056 +95.0293 37.0446 91.1668 +94.7864 37.6011 92.5364 +94.3886 38.1036 93.7731 +94.7853 38.9397 95.8307 +94.4812 39.5014 97.213 +94.092 40.0359 98.5285 +94.3413 40.8547 100.544 +94.2349 41.5353 102.219 +93.9113 42.1316 103.686 +94.076 42.9613 105.728 +93.5799 43.503 107.061 +93.6262 44.3094 109.045 +93.5805 45.0901 110.967 +93.6275 45.9334 113.042 +93.7026 46.8105 115.201 +93.7441 47.6914 117.369 +93.5754 48.4849 119.322 +93.4351 49.3112 121.355 +93.6077 50.3257 123.852 +93.0039 50.9416 125.367 +93.1615 51.9942 127.958 +114.968 65.3882 160.92 +115.3 66.8371 164.486 +115.09 68.0067 167.365 +114.886 69.2125 170.332 +115.054 70.6784 173.94 +114.802 71.9252 177.008 +115.008 73.4995 180.882 +114.7 74.7873 184.052 +114.735 76.3409 187.875 +114.609 77.8343 191.55 +114.852 79.6303 195.97 +114.88 81.3341 200.163 +114.698 82.9438 204.125 +113.18 83.6195 205.788 +110.702 83.5837 205.7 +107.971 83.3353 205.088 +105.604 83.347 205.117 +102.95 83.1109 204.536 +101.019 83.446 205.361 +98.4303 83.2242 204.815 +96.1384 83.2337 204.838 +93.7755 83.1651 204.67 +91.4231 83.0876 204.479 +91.0669 84.8505 208.817 +90.929 86.898 213.856 +90.6313 88.88 218.734 +90.5986 91.2196 224.492 +90.0539 93.141 229.22 +89.9609 95.6335 235.354 +89.4661 97.812 240.715 +89.3213 100.494 247.315 +89.0896 103.218 254.02 +89.0691 106.343 261.71 +88.5594 109.044 268.357 +88.6128 112.615 277.146 +88.204 115.797 284.976 +88.3757 119.964 295.231 +84.9962 119.413 293.875 +83.8272 122.02 300.292 +87.0677 131.459 323.52 +87.0051 136.425 335.743 +86.6961 141.364 347.898 +86.2945 146.532 360.615 +85.7844 151.928 373.896 +85.5887 158.365 389.736 +85.1199 164.848 405.691 +84.5026 171.636 422.396 +82.6739 176.504 434.376 +82.3588 185.271 455.953 +83.0823 197.47 485.973 +78.2207 197.028 484.886 +74.1932 198.731 489.078 +68.8395 196.84 484.423 +64.6151 198.105 487.536 +59.477 196.514 483.622 +55.2224 197.788 486.756 +50.1753 196.163 482.758 +45.9049 197.52 486.098 +40.9949 196.087 482.571 +36.7407 197.792 486.766 +31.8795 196.214 482.884 +27.4607 197.251 485.436 +22.7257 195.942 482.215 +18.2769 197.025 484.88 +13.612 195.686 481.583 +9.13633 197.04 484.916 +4.54042 195.858 482.007 +3.20357e-14 196.957 484.712 +-4.53344 195.557 481.266 +-9.1311 196.927 484.638 +-13.6068 195.61 481.398 +-18.2594 196.837 484.417 +-22.6341 195.153 480.271 +-27.3979 196.8 484.326 +-31.7636 195.5 481.127 +-36.5524 196.778 484.271 +-40.8223 195.262 480.54 +-45.6696 196.508 483.606 +-49.8973 195.076 480.083 +-54.8147 196.327 483.162 +-59.0015 194.943 479.756 +-63.9814 196.162 482.755 +-68.0955 194.713 479.188 +-73.219 196.122 482.656 +-77.3191 194.757 479.296 +-82.4566 195.983 482.314 +-86.4354 194.442 478.522 +-91.6168 195.596 481.363 +-95.6919 194.362 478.326 +-100.976 195.556 481.263 +-105.087 194.442 478.522 +-110.401 195.525 481.188 +-114.67 194.714 479.193 +-119.989 195.651 481.497 +-124.263 194.847 479.518 +-129.912 196.148 482.72 +-133.402 194.182 477.884 +-140.047 196.755 484.214 +-145.084 196.94 484.671 +-150.388 197.433 485.883 +-149.733 190.29 468.305 +-150.191 184.931 455.116 +-149.421 178.399 439.041 +-155.034 179.62 442.045 +-1039.59 1169.62 2878.43 +-1066.66 1166.16 2869.92 +-182.926 194.461 478.568 +-460.462 476.247 1172.05 +-453.343 456.45 1123.32 +-198.213 194.384 478.378 +-204.178 195.126 480.206 +-209.78 195.46 481.028 +-467.142 424.55 1044.82 +-450.005 399.091 982.163 +-449.47 389.137 957.668 +-450.827 381.179 938.083 +-453.011 374.205 920.918 +-454.78 367.141 903.535 +-457.59 361.148 888.786 +-145.627 112.399 276.615 +-145.327 109.727 270.038 +-147.184 108.742 267.615 +-151.684 109.69 269.948 +-473.65 335.342 825.277 +-112.085 77.7115 191.248 +-111.409 75.6614 186.203 +-112.962 75.1615 184.973 +-114.1 74.3962 183.089 +-115.465 73.7916 181.601 +-117.171 73.4095 180.661 +-118.921 73.0538 179.785 +-120.822 72.788 179.131 +-123.203 72.8012 179.164 +-126.52 73.3406 180.491 +-505.243 287.357 707.186 +-508.81 283.97 698.85 +-512.541 280.736 690.893 +-515.703 277.254 682.322 +-519.439 274.139 674.656 +-523.188 271.082 667.134 +-526.954 268.082 659.751 +-529.657 264.597 651.174 +-533.579 261.772 644.221 +-537.103 258.793 636.89 +-540.467 255.781 629.478 +-544.047 252.914 622.421 +-548.109 250.303 615.997 +-551.705 247.513 609.129 +-555.278 244.746 602.321 +-558.634 241.918 595.361 +-562.829 239.482 589.366 +-137.841 57.6296 141.827 +-135.794 55.7869 137.292 +-574.243 231.816 570.501 +-578.287 229.402 564.559 +-568.508 221.618 545.401 +-567.176 217.271 534.705 +-571.767 215.24 529.707 +-578.303 213.934 526.492 +-583.457 212.104 521.989 +-587.988 210.05 516.934 +-592.616 208.033 511.971 +-597.268 206.028 507.036 +-601.13 203.756 501.444 +-605.83 201.773 496.564 +-609.051 199.306 490.493 +-614.104 197.444 485.911 +-617.968 195.202 480.392 +-621.544 192.877 474.671 +-141.285 43.0693 105.994 +-143.217 42.8849 105.54 +-142.394 41.8798 103.066 +-143.756 41.5252 102.194 +-142.956 40.5528 99.8005 +-142.604 39.7235 97.7596 +-143.034 39.1204 96.2754 +-147.843 39.6986 97.6984 +-660.073 173.989 428.189 +-664.905 172.028 423.361 +-382.435 97.1069 238.98 +-383.254 95.4934 235.01 +-381.679 93.3081 229.632 +-383.321 91.9296 226.239 +-381.622 89.7692 220.922 +-383.944 88.5709 217.973 +-381.954 86.3951 212.618 +-382.305 84.7741 208.629 +-384.255 83.5149 205.53 +-381.999 81.3597 200.226 +-718.762 149.983 369.109 +-739.612 151.173 372.036 +-723.84 144.884 356.561 +-408.646 80.0809 197.079 +-410.041 78.6497 193.557 +-409.611 76.88 189.202 +-408.592 75.0199 184.624 +-407.878 73.2371 180.237 +-407.929 71.6078 176.227 +-408.755 70.1246 172.577 +-407.624 68.3199 168.136 +-406.166 66.4829 163.615 +-406.035 64.8815 159.673 +-408.078 63.6313 156.597 +-404.438 61.5126 151.383 +-405.011 60.0577 147.802 +-406.388 58.725 144.522 +-407.452 57.348 141.134 +-405.195 55.5181 136.63 +-404.393 53.9084 132.669 +-404.398 52.4184 129.002 +-387.39 48.7947 120.084 +-380.708 46.5665 114.6 +-382.059 45.348 111.601 +-381.183 43.8708 107.966 +-381.706 42.5638 104.75 +-381.813 41.2146 101.429 +-380.249 39.6971 97.6947 +-381.927 38.5245 94.8089 +-381.063 37.0987 91.3001 +-381.132 35.7726 88.0365 +-380.099 34.3523 84.541 +-380.979 33.1108 81.4857 +-381.634 31.8498 78.3824 +-380.891 30.4775 75.0052 +-381.191 29.195 71.8491 +-381.362 27.9058 68.6762 +-381.306 26.6039 65.4722 +-380.431 25.2522 62.1457 +-381.397 24.0263 59.1289 +-379.371 22.6194 55.6664 +-381.562 21.4669 52.83 +-379.768 20.0921 49.4467 +-380.417 18.8536 46.3987 +-380.344 17.5802 43.2649 +-380.737 16.3301 40.1884 +-380.206 15.0433 37.0216 +-379.246 13.7468 33.8309 +-378.753 12.4742 30.699 +-378.53 11.2147 27.5994 +-378.775 9.97077 24.5381 +-378.593 8.7169 21.4523 +-378.281 7.46303 18.3665 +-377.54 6.20528 15.2712 +-144.612 1.90104 4.67847 +-377.771 3.72392 9.16457 +-144.678 0.950665 2.33959 +-144.395 0.474365 1.16741 +96.5 0 0 +96.4963 0.324036 0.777272 +96.4853 0.648048 1.55449 +97.3666 0.981072 2.35332 +97.3407 1.30798 3.13749 +97.3073 1.63479 3.92141 +97.0668 1.95745 4.69537 +97.2183 2.28801 5.4883 +97.1627 2.61437 6.27115 +97.0997 2.94053 7.05352 +97.129 3.26982 7.84339 +96.9516 3.59216 8.61659 +96.8664 3.91758 9.3972 +96.8733 4.24704 10.1875 +96.674 4.56749 10.9562 +96.765 4.90199 11.7585 +96.4521 5.21602 12.5118 +97.2203 5.59088 13.411 +95.9045 5.84488 14.0202 +96.7546 6.23021 14.9445 +96.5112 6.54816 15.7072 +96.359 6.872 16.484 +96.1995 7.1953 17.2595 +95.9346 7.51037 18.0153 +95.7607 7.83225 18.7874 +95.677 8.16182 19.5779 +95.4883 8.48277 20.3478 +96.1674 8.88391 21.31 +95.9622 9.20652 22.0839 +96.7179 9.62475 23.0871 +96.3994 9.93916 23.8413 +96.074 10.2522 24.5922 +96.7029 10.6699 25.5941 +96.4573 10.9942 26.372 +96.1086 11.3064 27.121 +95.8486 11.6287 27.894 +96.5322 12.069 28.9502 +96.16 12.3805 29.6974 +96.7266 12.8157 30.7412 +96.4322 13.14 31.5191 +96.7883 13.5554 32.5157 +96.4772 13.8799 33.2941 +97.0924 14.3412 34.4006 +96.8565 14.6808 35.2152 +97.2616 15.1208 36.2706 +97.0074 15.4616 37.088 +96.8371 15.8168 37.94 +96.2913 16.1107 38.645 +96.1963 16.4803 39.5317 +96.6379 16.9463 40.6495 +96.2499 17.2702 41.4264 +96.5766 17.7252 42.5179 +96.2608 18.0657 43.3346 +96.4739 18.5084 44.3966 +96.6742 18.954 45.4653 +96.4181 19.3134 46.3275 +95.7998 19.6003 47.0157 +96.9335 20.2517 48.5783 +96.4706 20.5764 49.3572 +96.6965 21.0512 50.496 +96.1288 21.3558 51.2267 +95.727 21.6973 52.0459 +95.8313 22.1567 53.1478 +96.0925 22.6586 54.3517 +96.1687 23.1231 55.4659 +95.7249 23.4658 56.288 +95.86 23.954 57.459 +96.0636 24.4661 58.6875 +96.1684 24.9599 59.872 +95.5162 25.2601 60.592 +95.677 25.7785 61.8355 +95.8214 26.2999 63.0861 +95.7067 26.7564 64.1811 +95.9805 27.3285 65.5534 +95.1974 27.6034 66.213 +95.2817 28.1328 67.4829 +95.1129 28.5939 68.5887 +95.3217 29.1757 69.9843 +95.8221 29.8579 71.6207 +95.2185 30.203 72.4485 +95.1427 30.7194 73.6873 +95.2028 31.2876 75.0503 +95.1689 31.8333 76.3592 +95.1923 32.4066 77.7345 +95.6427 33.137 79.4864 +95.4774 33.6648 80.7526 +95.3685 34.2204 82.0852 +95.3142 34.8042 83.4855 +95.0967 35.3367 84.763 +94.9336 35.8974 86.108 +94.823 36.4869 87.522 +94.6228 37.051 88.875 +94.4041 37.6164 90.2313 +94.6488 38.3786 92.0595 +94.3886 38.9481 93.4256 +94.7853 39.8027 95.4756 +94.4143 40.3483 96.7844 +94.6884 41.1825 98.7854 +94.3413 41.7601 100.171 +94.2999 42.485 101.91 +93.847 43.0357 103.231 +94.0124 43.8838 105.265 +94.1463 44.7361 107.309 +93.6885 45.3217 108.714 +93.7037 46.1498 110.701 +93.6884 46.9817 112.696 +93.7026 47.8479 114.774 +93.1492 48.4389 116.191 +93.6342 49.5902 118.953 +93.6674 50.5295 121.206 +93.3782 51.3148 123.09 +92.834 51.9751 124.674 +92.155 52.5719 126.105 +113.754 66.1315 158.631 +115.355 68.3502 163.953 +115.143 69.5465 166.823 +114.886 70.7463 169.701 +115.054 72.2447 173.295 +114.802 73.5191 176.352 +115.059 75.1614 180.291 +114.7 76.4447 183.37 +114.735 78.0327 187.179 +114.609 79.5592 190.84 +114.852 81.395 195.244 +114.833 83.1027 199.34 +114.883 84.9185 203.696 +113.18 85.4726 205.025 +111.148 85.7804 205.763 +108.409 85.528 205.158 +106.035 85.5415 205.19 +103.372 85.3014 204.614 +101.434 85.6454 205.44 +98.7963 85.3849 204.815 +96.5371 85.4311 204.925 +94.1271 85.3272 204.676 +91.9206 85.391 204.829 +90.6548 86.3384 207.102 +90.929 88.8238 213.064 +90.6671 90.8858 218.01 +90.2835 92.9168 222.882 +90.0881 95.2413 228.457 +89.9943 97.789 234.569 +89.5638 100.088 240.084 +89.2578 102.648 246.223 +89.2441 105.688 253.517 +88.6481 108.186 259.508 +88.5009 111.386 267.185 +88.4708 114.926 275.676 +88.452 118.696 284.718 +88.1887 122.362 293.513 +85.4103 122.654 294.213 +86.6565 128.934 309.277 +87.2612 134.671 323.039 +87.1918 139.748 335.217 +86.6736 144.46 346.519 +86.2945 149.779 359.278 +85.7844 155.295 372.51 +85.3893 161.497 387.387 +85.1771 168.614 404.459 +84.047 174.493 418.561 +81.9619 178.862 429.039 +83.6626 192.375 461.454 +82.1437 199.566 478.702 +76.92 198.045 475.055 +72.9824 199.82 479.313 +67.6778 197.807 474.483 +63.6402 199.44 478.4 +58.3902 197.199 473.025 +54.4802 199.454 478.435 +49.351 197.216 473.067 +45.2687 199.1 477.585 +40.3358 197.211 473.053 +36.1897 199.143 477.688 +31.3423 197.183 472.986 +27.0891 198.894 477.093 +22.3549 197.017 472.589 +18.0221 198.584 476.349 +13.3869 196.714 471.863 +9.00195 198.444 476.013 +4.45664 196.505 471.361 +3.1552e-14 198.282 475.624 +-4.45664 196.505 471.361 +-8.99323 198.252 475.552 +-13.3607 196.329 470.94 +-17.9837 198.161 475.334 +-22.2633 196.21 470.653 +-26.9949 198.203 475.433 +-31.1775 196.146 470.499 +-36.0013 198.106 475.202 +-40.1161 196.137 470.477 +-45.0334 198.064 475.102 +-49.0347 195.952 470.035 +-54.1039 198.076 475.13 +-57.9827 195.823 469.724 +-63.0796 197.683 474.186 +-67.0121 195.861 469.817 +-72.1613 197.572 473.92 +-76.0184 195.724 469.487 +-81.1738 197.209 473.05 +-84.983 195.411 468.737 +-90.2623 196.975 472.489 +-94.0153 195.189 468.204 +-99.4115 196.792 472.05 +-103.273 195.32 468.518 +-108.946 197.224 473.085 +-112.635 195.498 468.945 +-118.347 197.249 473.147 +-121.835 195.273 468.406 +-127.807 197.246 473.138 +-131.024 194.947 467.623 +-137.148 196.952 472.434 +-142.572 197.819 474.514 +-149.092 200.07 479.912 +-149.818 194.618 466.834 +-148.993 187.521 449.81 +-149.962 183.013 438.998 +-155.806 184.516 442.602 +-1039.59 1195.54 2867.76 +-1066.66 1192 2859.28 +-179.087 194.599 466.788 +-459.504 485.79 1165.27 +-191.248 196.827 472.132 +-194.486 194.955 467.644 +-198.167 193.579 464.342 +-207.982 198.079 475.137 +-212.274 197.196 473.017 +-448.442 406.515 975.117 +-449.749 398.007 954.709 +-451.437 390.154 935.871 +-453.011 382.497 917.505 +-455.371 375.765 901.357 +-458.15 369.603 886.574 +-145.802 115.029 275.922 +-146.041 112.71 270.359 +-148.001 111.769 268.103 +-152.1 112.428 269.684 +-475.058 343.792 824.663 +-111.512 79.0282 189.567 +-111.846 77.641 186.239 +-112.814 76.7263 184.045 +-114.5 76.3115 183.05 +-115.922 75.7251 181.644 +-117.429 75.201 180.386 +-119.234 74.8693 179.591 +-121.193 74.6296 179.016 +-123.901 74.8363 179.511 +-127.554 75.5793 181.294 +-506.402 294.399 706.181 +-508.977 290.359 696.49 +-513.051 287.243 689.017 +-516.047 283.587 680.246 +-520.484 280.778 673.509 +-523.011 276.996 664.437 +-528.084 274.611 658.715 +-530.018 270.645 649.202 +-534.127 267.848 642.492 +-537.842 264.892 635.402 +-541.774 262.082 628.662 +-544.803 258.877 620.974 +-549.444 256.474 615.209 +-551.897 253.086 607.084 +-555.668 250.345 600.509 +-559.225 247.541 593.782 +-563.625 245.135 588.011 +-567.356 242.461 581.596 +-571.684 240.064 575.848 +-135.308 55.8334 133.929 +-134.78 54.6509 131.092 +-582.402 232.064 556.658 +-585.82 229.387 550.235 +-572.969 220.473 528.853 +-578.589 218.783 524.8 +-580.148 215.575 517.106 +-585.014 213.619 512.413 +-593.201 212.854 510.577 +-597.637 210.724 505.468 +-601.576 208.426 499.955 +-606.055 206.321 494.907 +-610.258 204.127 489.644 +-614.864 202.07 484.71 +-617.968 199.528 478.612 +-622.238 197.371 473.439 +-141.207 44 105.544 +-142.904 43.7395 104.919 +-142.945 42.9737 103.082 +-142.962 42.2111 101.253 +-142.397 41.2895 99.042 +-142.604 40.6038 97.3972 +-143.601 40.1459 96.2989 +-148.25 40.69 97.604 +-660.974 178.088 427.184 +-386.268 102.152 245.035 +-384.01 99.6675 239.075 +-383.921 97.7797 234.546 +-381.679 95.376 228.78 +-382.562 93.7806 224.954 +-381.537 91.7382 220.054 +-384.711 90.7146 217.599 +-382.297 88.3889 212.021 +-384.287 87.1018 208.933 +-384.082 85.3272 204.676 +-387.221 84.2994 202.211 +-719.55 153.475 368.143 +-740.052 154.614 370.877 +-724.9 148.312 355.759 +-409.089 81.9441 196.561 +-410.576 80.4977 193.092 +-409.522 78.5664 188.459 +-410.12 76.9691 184.628 +-410.225 75.2907 180.601 +-409.017 73.3902 176.043 +-410.211 71.9342 172.55 +-406.802 69.6932 167.175 +-409.651 68.5392 164.406 +-406.035 66.3193 159.082 +-406.322 64.7617 155.345 +-408.239 63.4669 152.239 +-403.522 61.1631 146.713 +-404.8 59.7917 143.424 +-408.202 58.7266 140.869 +-405.759 56.8273 136.313 +-403.922 55.0388 132.023 +-401.467 53.1918 127.592 +-388.149 49.9738 119.873 +-381.659 47.7174 114.461 +-379.961 46.0982 110.577 +-382.235 44.9669 107.863 +-382.09 43.5505 104.466 +-381.909 42.1387 101.079 +-382.079 40.7723 97.8015 +-380.575 39.239 94.1234 +-380.192 37.8342 90.7536 +-381.908 36.6399 87.8889 +-381.85 35.2752 84.6155 +-382.148 33.9484 81.4328 +-381.634 32.5556 78.0919 +-380.891 31.1529 74.7272 +-382.073 29.9111 71.7484 +-380.479 28.4581 68.2632 +-378.946 27.0252 64.8259 +-379.053 25.7183 61.691 +-380.509 24.5017 58.7727 +-381.248 23.235 55.7344 +-380.672 21.8914 52.5114 +-380.857 20.5963 49.4047 +-380.814 19.2915 46.2749 +-379.947 17.9511 43.0596 +-379.445 16.6354 39.9036 +-379.211 15.3365 36.7879 +-378.748 14.033 33.6613 +-379.55 12.7774 30.6496 +-379.427 11.4904 27.5623 +-379.274 10.2052 24.4794 +-379.092 8.92182 21.401 +-377.382 7.6103 18.255 +-378.439 6.35788 15.2508 +-145.411 1.95392 4.6869 +-146.85 1.47967 3.54931 +-144.378 0.969721 2.32609 +-144.894 0.486555 1.16711 +96.5 0 0 +96.1963 0.330006 0.77191 +96.2853 0.660673 1.54537 +96.267 0.990945 2.3179 +97.3407 1.33623 3.12556 +97.1075 1.66667 3.89848 +96.3678 1.98533 4.64384 +96.32 2.31583 5.41691 +97.1627 2.67084 6.24731 +96.9004 2.99788 7.01227 +97.129 3.34045 7.81358 +96.7525 3.66221 8.56621 +96.8664 4.0022 9.36147 +96.5752 4.32545 10.1176 +96.7732 4.67095 10.9257 +96.3684 4.98731 11.6657 +96.4521 5.32868 12.4642 +96.9236 5.69419 13.3192 +96.0033 5.97726 13.9813 +96.5574 6.35181 14.8574 +96.5112 6.6896 15.6475 +96.1623 7.00608 16.3878 +96.1995 7.35072 17.1939 +95.8366 7.66476 17.9285 +95.7607 8.00142 18.716 +96.458 8.40615 19.6627 +96.3652 8.7456 20.4567 +96.0701 9.06664 21.2076 +95.9622 9.40538 21.9999 +96.5243 9.81294 22.9533 +96.3994 10.1538 23.7507 +95.9776 10.4631 24.4741 +96.7991 10.9112 25.5222 +96.3614 11.2205 26.2456 +96.1086 11.5506 27.0179 +96.5162 11.9626 27.9815 +96.4371 12.3175 28.8117 +95.9704 12.6229 29.5261 +96.5374 13.0669 30.5645 +96.2437 13.3976 31.338 +96.7883 13.8482 32.3921 +96.2899 14.1522 33.103 +97.0924 14.651 34.2699 +96.6704 14.9691 35.0139 +96.4271 15.3149 35.8227 +96.8226 15.7654 36.8765 +96.653 16.1277 37.7239 +97.025 16.584 38.7914 +96.9272 16.9642 39.6806 +96.5469 17.2961 40.4569 +97.0656 17.7927 41.6186 +96.3961 18.0742 42.2771 +96.89 18.5765 43.452 +96.2949 18.8731 44.1458 +96.0505 19.2384 45.0003 +96.152 19.6761 46.024 +96.5945 20.1898 47.2255 +96.0547 20.5016 47.9549 +96.4706 21.0209 49.1695 +95.8262 21.3123 49.8512 +96.2154 21.8368 51.078 +96.4163 22.3256 52.2214 +95.917 22.6555 52.9931 +96.0073 23.1274 54.0969 +96.3383 23.6642 55.3525 +95.6406 23.9516 56.0247 +95.86 24.4714 57.2406 +96.0636 24.9946 58.4644 +96.0855 25.4771 59.5929 +95.5162 25.8057 60.3616 +95.7589 26.3579 61.6532 +95.8214 26.868 62.8463 +95.8685 27.3805 64.0452 +95.7394 27.8486 65.1402 +95.1974 28.1997 65.9613 +95.7577 28.8841 67.5622 +96.0585 29.5019 69.0073 +95.3217 29.8058 69.7182 +95.2004 30.3048 70.8855 +95.1413 30.8303 72.1145 +95.8322 31.6103 73.9391 +95.1268 31.9379 74.7053 +95.8481 32.753 76.6119 +95.6416 33.2629 77.8046 +95.6427 33.8527 79.1843 +95.4774 34.392 80.4456 +94.7834 34.745 81.2714 +95.2417 35.5289 83.1049 +95.1687 36.1273 84.5046 +94.9336 36.6728 85.7806 +94.823 37.275 87.1893 +94.4826 37.7952 88.406 +95.0293 38.6834 90.4836 +94.6488 39.2075 91.7095 +95.0706 40.0771 93.7435 +94.7853 40.6624 95.1126 +94.4143 41.2198 96.4164 +94.0258 41.7776 97.7212 +94.3413 42.6621 99.7901 +94.2999 43.4027 101.522 +93.9755 44.0258 102.98 +94.0124 44.8316 104.865 +94.2722 45.7633 107.044 +94.062 46.485 108.732 +93.7037 47.1466 110.28 +93.7493 48.0275 112.34 +93.7628 48.9124 114.41 +93.6251 49.7379 116.341 +93.5166 50.598 118.353 +93.4351 51.4927 120.446 +93.6077 52.5521 122.924 +93.1172 53.2597 124.579 +92.155 53.7074 125.626 +98.024 58.2175 136.175 +115.3 69.7939 163.254 +115.143 71.0487 166.189 +114.886 72.2744 169.056 +115.159 73.8724 172.793 +114.75 75.0733 175.602 +115.008 76.751 179.527 +114.8 78.1638 182.832 +114.685 79.684 186.387 +115.142 81.6558 190.999 +114.804 83.1185 194.421 +114.739 84.8281 198.42 +115.022 86.8573 203.166 +113.588 87.634 204.983 +111.862 88.1962 206.298 +108.76 87.658 205.039 +106.767 87.9922 205.821 +104.133 87.785 205.336 +101.766 87.7811 205.327 +99.081 87.4807 204.624 +97.1353 87.8172 205.412 +94.5569 87.568 204.829 +92.5329 87.8164 205.41 +90.3176 87.8754 205.548 +90.929 90.7423 212.254 +90.8104 92.9955 217.524 +90.5636 95.2181 222.723 +90.1565 97.3723 227.762 +89.9943 99.9012 233.677 +89.5638 102.25 239.172 +89.0991 104.679 244.851 +89.0896 107.784 252.116 +88.6781 110.56 258.609 +88.5302 113.83 266.257 +88.698 117.71 275.333 +88.3969 121.184 283.459 +88.2688 125.119 292.663 +87.015 127.657 298.601 +87.7081 133.317 311.839 +87.2612 137.58 321.81 +87.0751 142.575 333.495 +86.6736 147.58 345.201 +86.2945 153.014 357.913 +85.8052 158.688 371.184 +85.3494 164.908 385.734 +85.2344 172.372 403.192 +82.7532 175.518 410.551 +80.8853 180.325 421.794 +83.5471 196.259 459.065 +80.2822 199.256 466.076 +74.7324 196.569 459.79 +71.368 199.62 466.928 +65.7983 196.467 459.552 +62.129 198.909 465.265 +56.8507 196.146 458.802 +53.1945 198.953 465.368 +48.0475 196.154 458.821 +44.249 198.818 465.051 +39.1746 195.67 457.689 +35.3596 198.777 464.957 +30.4815 195.909 458.248 +26.4611 198.48 464.26 +21.7399 195.735 457.841 +17.6277 198.434 464.154 +13.0256 195.54 457.384 +8.8187 198.604 464.55 +4.34494 195.718 457.799 +3.08662e-14 198.162 463.518 +-4.34232 195.6 457.523 +-8.80299 198.25 463.723 +-13.0178 195.422 457.109 +-17.6138 198.277 463.787 +-21.705 195.421 457.105 +-26.3983 198.009 463.158 +-30.3594 195.124 456.412 +-35.2479 198.15 463.489 +-39.0412 195.004 456.13 +-44.0398 197.878 462.853 +-47.7791 195.059 456.258 +-52.8496 197.663 462.35 +-56.545 195.092 456.335 +-61.6537 197.387 461.705 +-65.1978 194.674 455.359 +-70.6164 197.518 462.011 +-73.9638 194.547 455.062 +-79.5156 197.353 461.625 +-82.7879 194.475 454.894 +-88.3696 197.01 460.823 +-91.5734 194.226 454.31 +-97.4462 197.068 460.959 +-100.342 193.876 453.491 +-106.617 197.177 461.213 +-109.518 194.194 454.236 +-115.962 197.45 461.851 +-118.52 194.063 453.929 +-124.856 196.853 460.456 +-127.519 193.83 453.383 +-134.042 196.65 459.98 +-136.826 193.948 453.66 +-145.537 199.517 466.686 +-148.398 196.937 460.651 +-149.256 191.91 448.892 +-149.601 186.516 436.277 +-156.486 189.323 442.843 +-1039.59 1221.36 2856.86 +-1066.66 1217.75 2848.41 +-174.18 193.355 452.272 +-181.1 195.594 457.51 +-185.785 195.334 456.902 +-449.107 459.913 1075.77 +-448.964 448.041 1048 +-201.875 196.417 459.434 +-470.28 446.311 1043.96 +-213.574 197.788 462.642 +-450.188 407.001 952.009 +-451.762 398.868 932.984 +-453.757 391.403 915.523 +-455.921 384.345 899.013 +-458.839 378.153 884.531 +-145.978 117.654 275.203 +-146.978 115.883 271.059 +-149.272 115.164 269.378 +-153.023 115.554 270.29 +-112.532 83.1971 194.605 +-111.655 80.8385 189.088 +-111.894 79.3522 185.611 +-113.208 78.6576 183.986 +-114.8 78.1638 182.832 +-116.531 77.7672 181.904 +-118.047 77.2298 180.647 +-119.757 76.8218 179.692 +-121.457 76.4082 178.725 +-124.707 76.9499 179.992 +-128.535 77.8049 181.992 +-506.678 300.922 703.88 +-510.375 297.445 695.748 +-513.787 293.869 687.382 +-517.137 290.324 679.09 +-521.123 287.195 671.771 +-524.069 283.552 663.25 +-528.381 280.7 656.58 +-531.282 277.15 648.276 +-535.771 274.475 642.019 +-538.458 270.923 633.711 +-542.522 268.112 627.135 +-545.369 264.744 619.257 +-550.08 262.317 613.58 +-552.926 259.034 605.902 +-557.421 256.56 600.114 +-560.537 253.481 592.913 +-565.414 251.225 587.635 +-568.226 248.078 580.274 +-572.563 245.627 574.54 +-575.743 242.704 567.705 +-579.87 240.206 561.862 +-583.652 237.586 555.733 +-587.502 235.014 549.717 +-583.151 229.237 536.205 +-596.349 230.369 538.852 +-582.449 221.106 517.184 +-596.983 222.698 520.909 +-588.74 215.816 504.811 +-593.877 213.921 500.378 +-601.724 212.98 498.178 +-605.006 210.413 492.173 +-611.013 208.794 488.385 +-615.777 206.741 483.584 +-619.424 204.317 477.915 +-624.244 202.285 473.16 +-142.062 45.2224 105.779 +-142.356 44.5128 104.119 +-143.733 44.1441 103.257 +-142.724 43.0509 100.699 +-143.115 42.394 99.163 +-142.202 41.3637 96.753 +-146.594 41.868 97.9327 +-148.332 41.5917 97.2863 +-662.694 182.408 426.667 +-384.29 103.824 242.852 +-385.42 102.194 239.04 +-379.501 98.7419 230.965 +-382.434 97.6286 228.361 +-382.478 95.785 224.049 +-382.046 93.8446 219.51 +-384.37 92.5918 216.58 +-384.354 90.784 212.351 +-383.942 88.9034 207.952 +-383.563 87.0522 203.622 +-716.303 159.31 372.639 +-721.299 157.17 367.634 +-722.124 154.127 360.517 +-2893.15 604.715 1414.48 +-738.525 151.129 353.502 +-742.654 148.75 347.938 +-408.001 79.9654 187.046 +-407.423 78.1147 182.717 +-410.135 76.9 179.875 +-409.47 75.0583 175.568 +-410.211 73.4879 171.894 +-408.538 71.5023 167.25 +-404.515 69.1418 161.728 +-406.495 67.8284 158.656 +-408.817 66.5666 155.705 +-411.299 65.3236 152.797 +-404.639 62.6568 146.559 +-406.388 61.323 143.439 +-404.642 59.4723 139.11 +-407.545 58.3103 136.392 +-405.996 56.5165 132.197 +-398.725 53.9696 126.239 +-385.778 50.7415 118.688 +-379.376 48.4564 113.343 +-381.868 47.3306 110.71 +-381.183 45.8116 107.157 +-380.843 44.3461 103.729 +-381.333 42.9836 100.542 +-380.538 41.4848 97.0362 +-381.154 40.1474 93.908 +-380.192 38.6514 90.4086 +-380.55 37.2981 87.2434 +-380.488 35.9087 83.9933 +-381.271 34.6021 80.937 +-380.17 33.1312 77.4965 +-381.575 31.883 74.5769 +-378.937 30.3064 70.889 +-380.97 29.1103 68.0914 +-378.946 27.6089 64.5795 +-379.053 26.2738 61.4565 +-380.509 25.0309 58.5492 +-381.05 23.7246 55.4937 +-379.881 22.3178 52.2031 +-379.966 20.9919 49.1017 +-379.525 19.6415 45.9429 +-379.748 18.3292 42.8735 +-379.445 16.9947 39.7519 +-379.808 15.6924 36.7057 +-379.644 14.37 33.6127 +-379.849 13.0637 30.5571 +-378.53 11.7108 27.3926 +-379.573 10.4338 24.4055 +-378.593 9.10253 21.2916 +-379.279 7.81375 18.277 +-378.439 6.49521 15.1928 +-145.611 1.99886 4.6755 +-145.65 1.49928 3.50694 +-144.378 0.990666 2.31725 +-144.894 0.497065 1.16267 +96.2 0 0 +96.1963 0.336955 0.768902 +96.1853 0.673883 1.53774 +96.167 1.01076 2.30647 +96.1414 1.34756 3.07502 +97.0076 1.70002 3.87929 +96.168 2.02293 4.61615 +96.9189 2.3793 5.42935 +96.8635 2.71868 6.20379 +96.2025 3.03896 6.93465 +95.9335 3.36881 7.68734 +95.8567 3.70471 8.45382 +96.6675 4.07809 9.30585 +96.7739 4.4256 10.0988 +96.674 4.76441 10.872 +96.3684 5.09233 11.6203 +96.2541 5.42969 12.3901 +96.0334 5.76071 13.1454 +95.9045 6.09686 13.9125 +95.6697 6.42591 14.6634 +96.3142 6.81654 15.5548 +96.1623 7.15361 16.3239 +96.0031 7.49017 17.0919 +96.5226 7.88216 17.9864 +96.3475 8.21996 18.7572 +96.458 8.58316 19.586 +96.1703 8.91169 20.3357 +96.0701 9.25756 21.125 +95.8652 9.59372 21.892 +95.653 9.92911 22.6574 +96.3028 10.3573 23.6345 +95.9776 10.6835 24.3787 +95.7417 11.0193 25.145 +96.3614 11.4568 26.1433 +96.1086 11.7939 26.9126 +95.8486 12.13 27.6797 +96.2469 12.5521 28.6429 +95.9704 12.8888 29.411 +96.5374 13.342 30.4454 +96.9978 13.7868 31.4604 +96.6944 14.1261 32.2345 +96.2899 14.4502 32.974 +95.9721 14.7869 33.7424 +96.6704 15.2843 34.8775 +97.1689 15.7576 35.9576 +96.8226 16.0974 36.7328 +96.561 16.4516 37.5411 +96.2913 16.8052 38.3481 +96.9272 17.3214 39.526 +96.5469 17.6603 40.2992 +96.9749 18.1504 41.4177 +96.3961 18.4548 42.1124 +96.7102 18.9325 43.2024 +97.0109 19.4138 44.3007 +95.8723 19.6071 44.7418 +96.9503 20.2572 46.2253 +95.7998 20.4453 46.6545 +96.0547 20.9333 47.768 +96.3831 21.4441 48.9335 +95.7391 21.7413 49.6118 +96.1288 22.2765 50.8331 +96.3301 22.7754 51.9714 +95.7456 23.0912 52.6922 +96.0073 23.6144 53.8861 +96.1687 24.12 55.0397 +95.5563 24.4343 55.7571 +95.7762 24.9649 56.9677 +95.9803 25.4988 58.186 +96.0855 26.0136 59.3607 +96.0931 26.5083 60.4896 +95.677 26.8898 61.3603 +95.6586 27.3871 62.4951 +95.7067 27.9099 63.688 +95.7394 28.435 64.8863 +95.8363 28.9867 66.1452 +95.2024 29.3213 66.9087 +95.1129 29.8266 68.0617 +95.2434 30.4085 69.3895 +95.2004 30.943 70.6092 +95.1413 31.4795 71.8335 +95.2193 32.0696 73.18 +95.1268 32.6104 74.4142 +95.7726 33.4163 76.2533 +95.6416 33.9633 77.5014 +95.5684 34.5387 78.8144 +94.8139 34.8721 79.5753 +95.3685 35.6957 81.4544 +95.2417 36.277 82.7811 +95.0967 36.8601 84.1117 +94.791 37.3888 85.318 +95.318 38.2586 87.3029 +95.1134 38.8487 88.6494 +95.0293 39.498 90.131 +94.7864 40.0914 91.4851 +94.3886 40.6272 92.7077 +94.7853 41.5186 94.742 +94.4143 42.0878 96.0407 +94.6884 42.958 98.0264 +94.3413 43.5604 99.4012 +94.2999 44.3166 101.127 +93.9113 44.9219 102.508 +94.0124 45.7756 104.456 +93.6429 46.415 105.915 +94.062 47.4638 108.308 +93.7037 48.1394 109.85 +93.7493 49.0389 111.902 +93.4619 49.7822 113.599 +93.4467 50.6885 115.667 +93.5166 51.6635 117.892 +93.4351 52.577 119.976 +93.5503 53.6258 122.37 +93.1738 54.4145 124.169 +91.6517 54.5389 124.453 +93.6637 56.7991 129.611 +114.81 70.9606 161.926 +115.036 72.477 165.386 +114.781 73.7281 168.241 +115.106 75.3938 172.042 +114.75 76.6541 174.918 +114.856 78.2636 178.591 +114.7 79.7403 181.961 +114.932 81.5365 186.059 +115.045 83.305 190.095 +114.9 84.9394 193.824 +114.692 86.579 197.566 +115.068 88.722 202.456 +114.088 89.8727 205.082 +112.308 90.4126 206.314 +109.505 90.1172 205.64 +107.542 90.4973 206.507 +104.471 89.9245 205.2 +102.471 90.2504 205.944 +99.8132 89.9827 205.333 +97.534 90.0345 205.451 +95.1821 90.0032 205.38 +92.8773 89.9996 205.371 +89.9805 89.3911 203.983 +90.6358 92.354 210.744 +90.7388 94.8791 216.506 +90.2484 96.8848 221.083 +90.0539 99.3095 226.616 +89.9276 101.929 232.594 +89.7266 104.593 238.673 +89.4482 107.301 244.853 +89.1823 110.168 251.395 +88.6781 112.888 257.601 +88.7348 116.495 265.833 +88.414 119.804 273.382 +88.1764 123.427 281.65 +88.0283 127.406 290.729 +88.0502 131.896 300.976 +87.608 135.969 310.27 +87.2612 140.477 320.556 +87.0284 145.5 332.018 +86.5387 150.453 343.321 +86.381 156.393 356.876 +85.722 161.872 369.378 +85.5887 168.853 385.308 +84.2803 174.032 397.126 +81.6051 176.728 403.278 +84.0284 191.276 436.476 +81.1704 194.691 444.268 +77.9826 197.624 450.961 +72.2492 194.039 442.78 +69.1273 197.425 450.506 +63.6054 193.919 442.506 +60.2766 197.042 449.633 +54.9602 193.617 441.817 +51.6266 197.155 449.891 +46.4277 193.533 441.625 +42.8632 196.647 448.732 +37.9585 193.589 441.753 +34.2435 196.557 448.526 +24.2607 159.21 363.305 +21.5624 165.141 376.838 +17.7182 162.885 371.689 +17.0903 196.436 448.249 +12.6016 193.158 440.769 +8.53597 196.285 447.905 +4.1931 192.855 440.079 +2.99477e-14 196.314 447.973 +-4.19834 193.096 440.629 +-8.5255 196.044 447.355 +-12.5859 192.917 440.219 +-17.0589 196.074 447.425 +-20.9373 192.478 439.219 +-25.6132 196.165 447.633 +-29.3338 192.503 439.275 +-34.076 195.596 446.333 +-37.7937 192.748 439.835 +-42.6802 195.807 446.816 +-46.1401 192.334 438.89 +-51.1876 195.478 446.065 +-54.6319 192.46 439.178 +-59.8257 195.568 446.27 +-63.0311 192.168 438.51 +-68.4036 195.358 445.79 +-71.4659 191.935 437.979 +-76.9345 194.968 444.9 +-79.9491 191.762 437.583 +-85.6086 194.873 444.685 +-88.53 191.725 437.499 +-94.4314 194.993 444.957 +-97.2118 191.783 437.633 +-103.394 195.244 445.53 +-105.926 191.778 437.622 +-112.296 195.233 445.505 +-114.808 191.944 438 +-120.84 194.533 443.909 +-123.387 191.499 436.984 +-129.694 194.277 443.324 +-132.497 191.766 437.594 +-140.272 196.349 448.051 +-143.144 193.964 442.61 +-149.402 196.143 447.581 +-149.331 190.099 433.791 +-151.449 187.088 426.919 +-154.845 185.751 423.868 +-1066.66 1243.39 2837.31 +-1093.65 1239.61 2828.68 +-176.243 194.357 443.507 +-451.242 484.424 1105.41 +-448.641 469.111 1070.47 +-451.786 460.353 1050.49 +-195.095 193.817 442.273 +-196.278 190.197 434.012 +-205.134 193.972 442.628 +-209.064 192.989 440.384 +-217.401 195.989 447.231 +-454.504 400.302 913.456 +-227.157 195.528 446.177 +-145.599 122.522 279.586 +-146.109 120.24 274.378 +-147.29 118.575 270.577 +-150.634 118.662 270.777 +-471.63 363.646 829.81 +-115.631 87.2878 199.183 +-111.751 82.6114 188.512 +-112.282 81.3041 185.529 +-113.454 80.4885 183.668 +-115 79.949 182.437 +-116.988 79.7162 181.906 +-118.253 78.9937 180.257 +-120.593 78.9869 180.241 +-122.464 78.6638 179.504 +-126.05 79.4168 181.222 +-129.461 80.0157 182.589 +-508.168 308.162 703.2 +-511.158 304.174 694.099 +-515.203 300.884 686.591 +-518.169 297.029 677.795 +-522.691 294.124 671.167 +-525.304 290.204 662.221 +-529.809 287.385 655.789 +-532.366 283.563 647.067 +-536.867 280.828 640.825 +-539.627 277.229 632.612 +-544.451 274.731 626.913 +-546.942 271.098 618.624 +-551.607 268.584 612.885 +-554.469 265.227 605.226 +-558.85 262.634 599.308 +-561.915 259.455 592.054 +-566.54 257.026 586.511 +-569.162 253.719 578.965 +-574.049 251.45 573.787 +-577.38 248.519 567.1 +-581.935 246.138 561.666 +-585.389 243.311 555.215 +-133.453 54.5084 124.384 +-593.192 238.095 543.312 +-597.561 235.698 537.844 +-601.008 232.955 531.584 +-605.833 230.758 526.571 +-608.706 227.833 519.896 +-614.226 225.91 515.507 +-599.569 216.686 494.46 +-605.381 214.977 490.559 +-606.862 211.742 483.178 +-611.518 209.635 478.368 +-620.879 209.11 477.171 +-141.439 46.798 106.789 +-142.762 46.4018 105.885 +-141.965 45.3253 103.428 +-143.497 44.9994 102.685 +-142.645 43.9329 100.251 +-142.237 43.021 98.1702 +-143.167 42.5213 97.0299 +-147.565 43.0326 98.1968 +-660.085 188.983 431.243 +-664.005 186.617 425.845 +-382.724 105.578 240.921 +-386.58 104.66 238.826 +-381.753 101.419 231.43 +-382.769 99.7719 227.671 +-381.803 97.6298 222.783 +-383.827 96.2671 219.673 +-383.603 94.3529 215.305 +-382.811 92.3235 210.674 +-381.96 90.307 206.073 +-386.854 89.6479 204.569 +-718.13 163.08 372.134 +-733.369 163.166 372.33 +-723.442 157.66 359.768 +-733.641 156.571 357.283 +-741.364 154.904 353.477 +-412.18 84.296 192.356 +-409.522 81.9535 187.011 +-407.423 79.7596 182.005 +-408.691 78.2428 178.543 +-409.379 76.622 174.845 +-411.211 75.2184 171.642 +-408.812 73.057 166.71 +-410.109 71.5743 163.326 +-404.378 68.8959 157.214 +-406.599 67.5998 154.257 +-408.239 66.203 151.07 +-405.848 64.1676 146.425 +-406.388 62.6143 142.88 +-406.703 61.0337 139.274 +-406.511 59.3872 135.517 +-405.807 57.6797 131.62 +-393.525 54.3872 124.107 +-385.399 51.759 118.11 +-379.757 49.5261 113.014 +-381.582 48.2907 110.195 +-380.801 46.7293 106.632 +-381.418 45.3482 103.481 +-382.871 44.0658 100.554 +-380.538 42.3583 96.658 +-379.705 40.8371 93.1867 +-381.45 39.5959 90.3545 +-380.162 38.0447 86.8147 +-380.975 36.7117 83.7729 +-381.758 35.3758 80.7247 +-381.146 33.9157 77.3927 +-381.869 32.5794 74.3434 +-380.309 31.0566 70.8684 +-380.577 29.6926 67.7561 +-380.225 28.2854 64.5448 +-381.318 26.9873 61.5828 +-381.101 25.5977 58.4117 +-380.161 24.1677 55.1485 +-378.991 22.7343 51.8778 +-380.362 21.4563 48.9614 +-379.525 20.0551 45.7639 +-379.45 18.7005 42.6729 +-379.544 17.3571 39.6073 +-379.311 16.0018 36.5149 +-379.644 14.6726 33.4817 +-379.849 13.3388 30.4381 +-378.53 11.9574 27.2858 +-379.773 10.6591 24.3232 +-378.992 9.304 21.2309 +-378.281 7.95729 18.1579 +-377.54 6.61625 15.0977 +-145.411 2.03815 4.65089 +-144.351 1.51719 3.4621 +-144.678 1.01363 2.31301 +-145.494 0.509635 1.16294 +96.3 0 0 +96.1963 0.343878 0.765831 +96.1853 0.687728 1.5316 +97.0667 1.04118 2.31875 +97.0408 1.38811 3.09139 +96.1084 1.71887 3.82799 +96.9669 2.08164 4.63591 +96.9189 2.42818 5.40767 +96.9632 2.77739 6.18538 +96.0031 3.09497 6.89263 +96.8301 3.47016 7.7282 +96.7525 3.81616 8.49875 +96.5681 4.15757 9.2591 +96.7739 4.51653 10.0585 +96.4755 4.8523 10.8063 +96.3684 5.19696 11.5739 +96.155 5.53555 12.3279 +96.0334 5.87907 13.0929 +96.6947 6.27337 13.9711 +96.5574 6.61881 14.7404 +96.3142 6.95658 15.4926 +96.1623 7.30059 16.2587 +96.0031 7.64406 17.0237 +95.9346 7.99511 17.8055 +95.6628 8.32924 18.5496 +95.5794 8.67971 19.3301 +96.2678 9.104 20.275 +96.0701 9.44776 21.0406 +95.8652 9.79082 21.8046 +96.4275 10.2152 22.7496 +96.2062 10.5595 23.5164 +96.074 10.9139 24.3058 +96.6068 11.3473 25.2709 +96.3614 11.6921 26.0389 +96.1086 12.0362 26.8051 +95.8486 12.3792 27.5691 +96.2469 12.81 28.5285 +95.9704 13.1536 29.2936 +96.4429 13.6028 30.2941 +96.1494 13.947 31.0607 +96.6004 14.4023 32.0746 +96.2899 14.747 32.8423 +96.9056 15.2375 33.9346 +96.5773 15.5833 34.7047 +96.2417 15.928 35.4723 +96.8226 16.4281 36.5861 +96.561 16.7896 37.3912 +96.1996 17.1341 38.1585 +95.9223 17.494 38.9599 +96.3649 17.9891 40.0625 +95.978 18.3329 40.8282 +97.1182 18.9751 42.2583 +96.171 19.2138 42.7899 +96.2949 19.6665 43.7981 +96.6742 20.1773 44.9358 +96.2407 20.5221 45.7036 +95.7115 20.8461 46.4252 +96.1426 21.3829 47.6207 +96.2956 21.8648 48.6938 +96.6095 22.3897 49.8629 +96.1288 22.7342 50.6301 +96.3301 23.2433 51.7638 +95.8313 23.5868 52.5288 +96.0073 24.0996 53.6709 +95.4902 24.4419 54.4332 +95.6406 24.9584 55.5834 +95.7762 25.4778 56.7402 +95.9803 26.0226 57.9536 +95.9196 26.5022 59.0215 +95.3514 26.8441 59.7829 +95.5131 27.3953 61.0106 +95.6586 27.9498 62.2455 +95.7067 28.4833 63.4336 +95.8197 29.0436 64.6814 +95.1175 29.3604 65.3869 +95.2024 29.9237 66.6414 +95.1917 30.4646 67.8461 +95.3217 31.0587 69.1692 +95.2004 31.5787 70.3272 +95.1413 32.1263 71.5466 +95.8322 32.9391 73.3568 +95.1268 33.2804 74.117 +95.0934 33.861 75.41 +95.4919 34.6068 77.0709 +95.5684 35.2483 78.4996 +94.8139 35.5886 79.2574 +95.3685 36.429 81.1291 +95.2417 37.0223 82.4504 +94.9529 37.5606 83.649 +94.791 38.1569 84.9772 +94.823 38.8419 86.5026 +95.2536 39.7053 88.4254 +94.4041 40.0443 89.1804 +94.6488 40.8556 90.9873 +94.3204 41.432 92.2708 +94.7177 42.3413 94.296 +94.3474 42.9218 95.5887 +94.6884 43.8406 97.6349 +94.3413 44.4554 99.0042 +93.9751 45.0715 100.376 +93.847 45.8133 102.028 +94.0124 46.7161 104.039 +93.5799 47.3371 105.422 +93.6262 48.2145 107.376 +93.7037 49.1284 109.411 +93.384 49.8514 111.021 +93.4619 50.805 113.145 +93.4467 51.7299 115.205 +93.5754 52.7581 117.495 +93.4932 53.6908 119.572 +93.6077 54.7612 121.956 +93.457 55.7013 124.049 +92.4346 56.1351 125.015 +91.8975 56.8732 126.659 +114.864 72.4529 161.356 +115.036 73.966 164.726 +114.939 75.3473 167.802 +115.054 76.9076 171.277 +114.905 78.3343 174.454 +114.957 79.9421 178.035 +114.65 81.3434 181.155 +114.538 82.9266 184.681 +114.561 84.6585 188.538 +114.375 86.2884 192.168 +114.692 88.3578 196.777 +114.929 90.4358 201.405 +114.678 92.1935 205.319 +113.111 92.9301 206.959 +110.294 92.6314 206.294 +108.23 92.9481 207 +105.19 92.4033 205.786 +103.217 92.7756 206.615 +100.179 92.1682 205.263 +98.2119 92.5229 206.053 +95.5338 92.1915 205.315 +93.6044 92.5675 206.152 +90.6923 91.949 204.775 +91.0756 94.7091 210.921 +90.8104 96.9046 215.811 +90.2835 98.9139 220.286 +90.0539 101.35 225.711 +89.6939 103.753 231.063 +89.3685 106.316 236.771 +89.3847 109.429 243.702 +89.0587 112.276 250.043 +88.8285 115.403 257.007 +88.5302 118.615 264.16 +88.6696 122.619 273.078 +88.2315 126.042 280.701 +88.055 130.063 289.655 +87.7397 134.131 298.717 +87.7081 138.921 309.384 +87.237 143.323 319.188 +86.8183 148.13 329.893 +86.6062 153.664 342.216 +86.2512 159.366 354.916 +85.7428 165.238 367.992 +84.7114 170.556 379.835 +83.0592 175.034 389.808 +84.2475 186.199 414.673 +83.9415 195.005 434.284 +79.1733 193.802 431.606 +75.683 195.737 435.915 +70.579 193.448 430.816 +67.0814 195.518 435.427 +61.9999 192.907 429.613 +58.4607 195.032 434.346 +53.681 192.996 429.81 +49.996 194.851 433.941 +45.2775 192.616 428.965 +41.6343 194.933 434.125 +36.9778 192.461 428.62 +28.1537 164.922 367.289 +24.1142 161.5 359.668 +20.6832 161.662 360.028 +19.21 180.227 401.374 +16.5563 194.208 432.51 +12.3058 192.499 428.704 +8.28466 194.42 432.981 +4.09711 192.312 428.287 +2.90354e-14 194.244 432.591 +-4.10234 192.557 428.834 +-8.27593 194.215 432.525 +-12.2848 192.171 427.974 +-16.5284 193.88 431.78 +-20.488 192.218 428.078 +-24.802 193.856 431.725 +-28.6989 192.206 428.05 +-33.1343 194.098 432.265 +-36.8522 191.808 427.165 +-41.3728 193.709 431.399 +-45.1146 191.923 427.421 +-49.6824 193.628 431.219 +-53.364 191.856 427.272 +-58.0342 193.609 431.177 +-61.53 191.445 426.357 +-66.3995 193.53 431.001 +-69.8695 191.503 426.486 +-74.7287 193.269 430.419 +-78.117 191.217 425.848 +-83.0559 192.947 429.703 +-86.4161 190.991 425.347 +-91.5311 192.887 429.568 +-94.9988 191.268 425.962 +-100.338 193.365 430.633 +-103.393 191.04 425.454 +-108.831 193.097 430.036 +-111.96 191.028 425.429 +-117.381 192.846 429.477 +-120.683 191.15 425.701 +-126.278 193.046 429.922 +-129.504 191.285 426 +-135.062 192.941 429.688 +-138.685 191.783 427.11 +-146.069 195.707 435.848 +-149.331 194.005 432.058 +-148.514 187.231 416.971 +-149.704 183.274 408.16 +-161.612 192.26 428.171 +-165.301 191.211 425.836 +-171.044 192.499 428.705 +-174.193 190.845 425.02 +-181.191 193.351 430.6 +-185.083 192.467 428.633 +-464.587 471.024 1048.99 +-457.881 452.808 1008.42 +-200.64 193.621 431.203 +-204.04 192.221 428.084 +-452.861 416.646 927.89 +-214.106 192.447 428.589 +-457.611 401.986 895.24 +-145.384 124.855 278.058 +-146.153 122.747 273.364 +-147.022 120.791 269.006 +-151.451 121.757 271.158 +-474.031 373.007 830.703 +-112.626 86.7664 193.233 +-112.085 84.5606 188.32 +-113.106 83.5836 186.144 +-113.947 82.4985 183.728 +-115.25 81.769 182.103 +-117.292 81.5654 181.65 +-118.768 80.9678 180.319 +-121.272 81.064 180.533 +-123.047 80.6622 179.638 +-127.447 81.9464 182.498 +-505.371 318.771 709.918 +-509.659 315.416 702.445 +-512.5 311.239 693.142 +-516.732 307.977 685.878 +-519.775 304.071 677.181 +-523.562 300.668 669.601 +-526.832 297.028 661.495 +-530.522 293.685 654.05 +-533.87 290.207 646.304 +-537.962 287.183 639.568 +-540.735 283.506 631.38 +-545.385 280.857 625.48 +-548.075 277.241 617.428 +-552.434 274.513 611.352 +-556.268 271.555 604.765 +-560.019 268.59 598.163 +-563.292 265.435 591.135 +-568.329 263.135 586.013 +-570.969 259.754 578.483 +-575.265 257.159 572.706 +-578.403 254.075 565.835 +-583.174 251.73 560.614 +-585.875 248.516 553.456 +-591.147 246.412 548.771 +-134.704 55.1782 122.884 +-134.804 54.2639 120.848 +-602.231 238.225 530.538 +-607.283 236.063 525.723 +-610.022 233.017 518.94 +-614.963 230.828 514.064 +-618.891 228.265 508.355 +-622.457 225.582 502.382 +-613.503 218.457 486.514 +-617.222 215.937 480.901 +-616.359 211.853 471.806 +-140.744 47.5251 105.841 +-143.073 47.4584 105.692 +-144 46.9197 104.492 +-143.26 45.8481 102.106 +-142.724 44.8605 99.9064 +-142.477 43.979 97.9432 +-144.694 43.8578 97.6732 +-148.374 44.1576 98.341 +-661.55 193.294 430.473 +-665.233 190.804 424.929 +-390.059 109.812 244.557 +-383.181 105.871 235.78 +-383.504 103.978 231.563 +-382.434 101.732 226.563 +-382.225 99.7454 222.137 +-383.911 98.2667 218.844 +-382.068 95.9064 213.588 +-382.725 94.1995 209.786 +-382.133 92.2038 205.342 +-385.295 91.1211 202.931 +-719.697 166.793 371.456 +-739.753 167.968 374.072 +-724.497 161.134 358.853 +-735.319 160.154 356.669 +-408.291 87.063 193.893 +-410.487 85.6744 190.801 +-409.253 83.5824 186.142 +-411.198 82.1524 182.957 +-406.976 79.5152 177.084 +-407.929 77.9189 173.529 +-411.939 76.8998 171.259 +-408.812 74.5579 166.044 +-412.494 73.4692 163.619 +-408.98 71.1118 158.369 +-404.936 68.7065 153.012 +-407.312 67.41 150.125 +-406.592 65.606 146.107 +-404.52 63.607 141.656 +-406.984 62.3306 138.813 +-408.86 60.9576 135.755 +-404.582 58.687 130.699 +-385.393 54.3581 121.058 +-384.261 52.6663 117.29 +-382.515 50.9111 113.381 +-381.582 49.2828 109.755 +-380.801 47.6894 106.206 +-382.09 46.3614 103.249 +-380.467 44.6889 99.5242 +-381.887 43.3822 96.6141 +-381.927 41.9198 93.3573 +-380.579 40.3171 89.788 +-380.259 38.8362 86.4901 +-380.975 37.4659 83.4383 +-381.271 36.0566 80.2996 +-381.146 34.6125 77.0836 +-380.891 33.1636 73.8568 +-381.289 31.7763 70.7673 +-379.595 30.2245 67.3114 +-380.225 28.8665 64.287 +-382.302 27.6129 61.4952 +-380.114 26.056 58.0278 +-380.161 24.6642 54.9283 +-380.672 23.3043 51.8998 +-379.471 21.8458 48.6515 +-380.417 20.5152 45.6883 +-379.748 19.0997 42.5358 +-380.737 17.7693 39.5731 +-378.813 16.3092 36.3213 +-378.748 14.9387 33.2693 +-378.255 13.5557 30.1892 +-380.424 12.2642 27.3129 +-379.673 10.8753 24.2197 +-380.888 9.54267 21.252 +-380.678 8.17223 18.1999 +-378.04 6.76111 15.0573 +-378.569 5.41521 12.0599 +-146.05 1.56659 3.48887 +-142.878 1.02159 2.27512 +-144.395 0.516173 1.14954 +96.2 0 0 +96.0963 0.350408 0.761904 +96.1853 0.701517 1.52533 +96.167 1.05221 2.28786 +97.0408 1.41595 3.07874 +96.9077 1.76791 3.84403 +96.9669 2.12338 4.61694 +96.1204 2.45646 5.34117 +96.0654 2.80685 6.10304 +96.8007 3.18325 6.92146 +96.7305 3.53609 7.68865 +96.7525 3.89267 8.46398 +96.6675 4.24532 9.23076 +96.7739 4.60709 10.0174 +96.4755 4.94959 10.7621 +96.3684 5.30116 11.5265 +96.2541 5.65235 12.2901 +96.0334 5.99694 13.0394 +95.9045 6.34688 13.8003 +95.6697 6.68943 14.5451 +96.3142 7.09607 15.4292 +96.1623 7.44697 16.1922 +96.0031 7.79733 16.954 +95.9346 8.15541 17.7326 +95.6628 8.49625 18.4737 +95.5794 8.85375 19.251 +95.3908 9.20193 20.0081 +96.0701 9.6372 20.9545 +95.7682 9.97702 21.6934 +96.4275 10.42 22.6565 +96.2062 10.7712 23.4202 +95.9776 11.1216 24.182 +95.8378 11.4826 24.9671 +96.3614 11.9266 25.9324 +96.1086 12.2775 26.6954 +95.8486 12.6275 27.4563 +96.2469 13.0669 28.4117 +95.9704 13.4173 29.1737 +96.4429 13.8756 30.1702 +96.1494 14.2267 30.9336 +96.6944 14.7054 31.9744 +96.2899 15.0427 32.7079 +96.999 15.558 33.8282 +96.5773 15.8957 34.5627 +96.4271 16.2786 35.3952 +96.915 16.7735 36.4712 +96.4689 17.1099 37.2027 +96.1996 17.4777 38.0024 +96.6531 17.9807 39.0961 +96.5469 18.3845 39.974 +96.1593 18.7358 40.7379 +96.3961 19.2116 41.7725 +95.9912 19.5624 42.5352 +96.2949 20.0608 43.6189 +96.5851 20.5629 44.7107 +96.8616 21.0686 45.8103 +96.5062 21.4406 46.6191 +96.0547 21.7917 47.3826 +96.3831 22.3234 48.5387 +96.6095 22.8386 49.6589 +96.0422 23.1691 50.3775 +96.3301 23.7093 51.552 +95.8313 24.0597 52.3138 +96.0073 24.5828 53.4513 +96.1687 25.1091 54.5956 +95.5563 25.4363 55.3071 +95.6084 25.9431 56.409 +95.063 26.2907 57.1649 +96.0855 27.0803 58.8817 +95.3514 27.3823 59.5383 +95.5131 27.9446 60.761 +95.6586 28.5102 61.9908 +95.7067 29.0544 63.174 +95.8197 29.626 64.4168 +95.0376 29.9239 65.0647 +95.8371 30.7272 66.8112 +95.1917 31.0754 67.5685 +95.2434 31.6554 68.8296 +95.2004 32.2119 70.0395 +95.8358 33.0096 71.774 +95.2193 33.3847 72.5895 +95.1268 33.9477 73.8137 +95.0934 34.54 75.1015 +95.0425 35.1346 76.3944 +95.6427 35.983 78.2392 +95.4774 36.5562 79.4855 +95.3685 37.1595 80.7972 +95.2417 37.7647 82.1131 +95.0967 38.3717 83.433 +94.9336 38.9806 84.7569 +94.6816 39.5616 86.0203 +94.4826 40.1736 87.3509 +95.0293 41.1177 89.4037 +94.6488 41.6748 90.615 +94.3204 42.2627 91.8933 +94.7853 43.2212 93.9774 +94.4143 43.8137 95.2657 +94.6884 44.7196 97.2354 +94.2757 45.3154 98.531 +93.9751 45.9752 99.9655 +93.847 46.7319 101.611 +94.0124 47.6528 103.613 +94.1463 48.5783 105.626 +93.6262 49.1813 106.937 +93.7652 50.1465 109.035 +93.5058 50.9174 110.711 +93.6424 51.924 112.9 +93.4467 52.7672 114.734 +93.3991 53.7144 116.793 +93.4351 54.7331 119.008 +93.5503 55.8249 121.382 +93.5137 56.8524 123.616 +92.6583 57.3993 124.805 +91.8975 58.0135 126.141 +114.156 73.4497 159.704 +115.036 75.4491 164.052 +114.939 76.8581 167.115 +115.054 78.4496 170.576 +114.802 79.8335 173.585 +114.957 81.545 177.306 +114.6 82.938 180.335 +114.587 84.6257 184.005 +114.948 86.648 188.402 +114.375 88.0185 191.382 +114.645 90.0927 195.892 +114.883 92.212 200.5 +114.769 94.1165 204.641 +113.557 95.1673 206.926 +110.645 94.7892 206.104 +108.661 95.1891 206.973 +105.528 94.5589 205.603 +103.217 94.6358 205.77 +100.911 94.7035 205.917 +98.5309 94.6847 205.876 +95.8854 94.3864 205.228 +93.9105 94.7324 205.98 +91.5539 94.6839 205.875 +90.8557 96.3749 209.551 +90.8104 98.8476 214.928 +90.5636 101.21 220.065 +89.9855 103.303 224.616 +89.794 105.952 230.375 +89.5638 108.685 236.317 +89.3847 111.623 242.705 +88.966 114.408 248.761 +88.7383 117.597 255.696 +88.5886 121.073 263.253 +88.5276 124.877 271.524 +88.3142 128.689 279.814 +88.0016 132.59 288.296 +87.9467 137.144 298.197 +87.7332 141.747 308.206 +87.1887 146.116 317.705 +87.0284 151.466 329.339 +86.6736 156.867 341.082 +86.381 162.807 353.996 +85.722 168.51 366.398 +84.0535 172.624 375.343 +82.0097 176.287 383.308 +84.6848 190.918 415.121 +82.8475 196.322 426.871 +78.2656 195.422 424.913 +74.4159 196.319 426.862 +69.8104 195.177 424.381 +65.9124 195.963 426.088 +61.4387 194.994 423.982 +57.4736 195.584 425.265 +53.1263 194.831 423.628 +49.1388 195.35 424.756 +44.8462 194.607 423.14 +40.9022 195.345 424.746 +36.1932 192.155 417.809 +27.9375 166.937 362.976 +24.1142 164.738 358.196 +20.6832 164.903 358.555 +19.9995 191.397 416.161 +16.326 195.346 424.747 +12.1749 194.27 422.409 +8.15376 195.184 424.397 +4.04911 193.87 421.538 +2.85701e-14 194.963 423.916 +-4.0526 194.037 421.901 +-8.15027 195.101 424.215 +-12.1566 193.978 421.773 +-16.2981 195.012 424.021 +-20.2743 194.027 421.879 +-24.42 194.696 423.335 +-28.3754 193.849 421.493 +-32.5763 194.655 423.246 +-36.4992 193.779 421.341 +-40.7453 194.596 423.117 +-44.6737 193.858 421.512 +-48.8671 194.269 422.407 +-52.764 193.503 420.74 +-57.1323 194.423 422.74 +-60.9035 193.295 420.289 +-65.3696 194.349 422.58 +-69.1009 193.194 420.068 +-73.6024 194.172 422.196 +-77.3083 193.031 419.715 +-81.7883 193.812 421.412 +-85.7418 193.301 420.301 +-90.0809 193.637 421.032 +-94.0219 193.097 419.857 +-98.5917 193.809 421.407 +-102.376 192.953 419.544 +-107.054 193.753 421.284 +-110.957 193.111 419.889 +-115.614 193.753 421.285 +-119.281 192.718 419.034 +-124.363 193.93 421.669 +-127.927 192.745 419.092 +-132.857 193.596 420.943 +-136.64 192.744 419.09 +-143.467 196.074 426.332 +-147.707 195.743 425.611 +-148.637 191.144 415.61 +-148.435 185.364 403.044 +-154.677 187.7 408.122 +-163.165 192.525 418.613 +-168.206 193.1 419.865 +-171.637 191.814 417.069 +-177.249 192.937 419.509 +-183.471 194.615 423.159 +-466.011 481.943 1047.91 +-455.317 459.301 998.674 +-195.874 192.811 419.236 +-201.927 194.044 421.916 +-206.744 194.025 421.876 +-210.789 193.264 420.221 +-216.55 194.041 421.91 +-145.986 127.887 278.068 +-145.671 124.795 271.347 +-147.781 123.848 269.288 +-151.996 124.645 271.02 +-474.862 381.153 828.755 +-111.969 87.9897 191.319 +-111.703 85.9623 186.911 +-112.961 85.1496 185.144 +-114.045 84.2254 183.134 +-115.45 83.5531 181.672 +-117.495 83.345 181.22 +-119.128 82.8419 180.126 +-121.115 82.5824 179.562 +-123.63 82.6694 179.751 +-127.662 83.7307 182.059 +-506.133 325.654 708.081 +-510.155 322.054 700.253 +-512.892 317.721 690.833 +-516.732 314.152 683.072 +-520.119 310.373 674.856 +-523.33 306.56 666.565 +-527.185 303.187 659.229 +-531.117 299.909 652.104 +-534.592 296.426 644.53 +-538.51 293.239 637.6 +-541.536 289.618 629.727 +-545.136 286.357 622.637 +-549.019 283.287 615.961 +-553.006 280.307 609.482 +-556.461 277.096 602.5 +-560.409 274.166 596.13 +-563.752 270.977 589.196 +-568.13 268.317 583.411 +-571.705 265.304 576.859 +-575.67 262.5 570.764 +-579.494 259.658 564.583 +-584 257.141 559.111 +-587.056 254.01 552.303 +-591.357 251.442 546.72 +-595.242 248.715 540.79 +-133.948 55.0005 119.59 +-134.732 54.365 118.208 +-607.138 240.739 523.447 +-611.265 238.174 517.87 +-615.332 235.597 512.268 +-619.337 233.009 506.64 +-623.581 230.52 501.228 +-627.692 227.991 495.729 +-631.441 225.341 489.967 +-617.891 216.638 471.043 +-141.67 48.7969 106.101 +-143.383 48.5152 105.488 +-143.296 47.6261 103.555 +-143.182 46.7419 101.633 +-142.645 45.7345 99.4422 +-143.115 45.0618 97.9795 +-146.382 45.259 98.4083 +-148.778 45.1658 98.2057 +-661.469 197.145 428.659 +-666.298 194.941 423.868 +-384.208 110.334 239.903 +-385.42 108.625 236.187 +-381.753 105.578 229.562 +-381.176 103.431 224.894 +-381.55 101.566 220.838 +-384.166 100.303 218.093 +-383.944 98.3095 213.758 +-382.897 96.1313 209.022 +-384.459 94.6254 205.747 +-384.082 92.6557 201.465 +-720.48 170.323 370.339 +-740.366 171.477 372.849 +-724.497 164.365 357.385 +-735.672 163.443 355.381 +-742.162 161.43 351.003 +-411.021 87.5063 190.268 +-755.056 157.298 342.019 +-760.2 154.924 336.856 +-409.774 81.6674 177.572 +-408.201 79.5343 172.934 +-410.302 78.1295 169.88 +-408.538 76.0019 165.254 +-409.284 74.3594 161.682 +-405.666 71.9497 156.443 +-407.154 70.4681 153.221 +-405.272 68.4173 148.762 +-407.058 66.9979 145.676 +-404.8 64.9271 141.173 +-405.298 63.3172 137.673 +-407.639 61.9939 134.795 +-405.147 59.9473 130.346 +-385.015 55.3933 120.444 +-383.881 53.6693 116.695 +-382.515 51.9319 112.917 +-381.296 50.2334 109.224 +-380.896 48.6581 105.799 +-381.227 47.1844 102.595 +-381.429 45.7003 99.3677 +-381.405 44.196 96.097 +-380.575 42.6091 92.6465 +-380.192 41.0836 89.3296 +-380.259 39.6149 86.1362 +-381.363 38.2562 83.1818 +-382.733 36.9205 80.2777 +-382.025 35.3879 76.9452 +-382.358 33.9589 73.838 +-380.309 32.3301 70.2966 +-380.086 30.8704 67.1226 +-379.34 29.3768 63.875 +-379.939 27.9925 60.865 +-380.509 26.606 57.8505 +-381.05 25.2176 54.8314 +-380.672 23.7716 51.6874 +-380.758 22.3594 48.6169 +-379.922 20.8993 45.4421 +-379.947 19.4928 42.384 +-379.843 18.083 39.3186 +-379.311 16.6581 36.2202 +-378.848 15.2423 33.1419 +-379.152 13.8603 30.137 +-379.925 12.4937 27.1655 +-379.274 11.0817 24.0953 +-378.992 9.68554 21.0596 +-378.281 8.28361 18.0113 +-378.739 6.90942 15.0234 +-379.169 5.53256 12.0296 +-145.25 1.58925 3.45557 +-145.178 1.05884 2.30227 +-143.995 0.525064 1.14167 +96.2 0 0 +96.0963 0.357267 0.758712 +96.1853 0.71525 1.51894 +96.167 1.07281 2.27827 +96.1414 1.43028 3.03743 +96.9077 1.80252 3.82792 +96.9669 2.16495 4.5976 +96.9189 2.52535 5.36298 +96.9632 2.88854 6.13426 +96.8007 3.24556 6.89246 +96.8301 3.60903 7.66433 +95.8567 3.93212 8.35047 +96.6675 4.32843 9.19208 +96.5752 4.68764 9.95494 +96.4755 5.04648 10.717 +96.3684 5.40493 11.4782 +96.2541 5.763 12.2386 +96.9236 6.17099 13.1051 +96.7935 6.53111 13.8698 +96.5574 6.88368 14.6186 +96.3142 7.23497 15.3646 +95.9657 7.57724 16.0914 +96.0031 7.94996 16.883 +95.9346 8.31506 17.6583 +95.6628 8.66256 18.3963 +95.4817 9.01786 19.1508 +95.3908 9.38206 19.9243 +95.9729 9.81592 20.8456 +95.7682 10.1723 21.6025 +96.5243 10.6346 22.5843 +96.2062 10.9821 23.3221 +96.074 11.3507 24.105 +96.6068 11.8014 25.062 +96.3614 12.16 25.8237 +96.1086 12.5178 26.5836 +96.5162 12.9643 27.5317 +96.2469 13.3226 28.2927 +95.9704 13.6799 29.0515 +96.5374 14.161 30.0732 +96.2437 14.5194 30.8342 +96.6944 14.9932 31.8404 +96.3836 15.3521 32.6026 +96.999 15.8625 33.6865 +96.6704 16.2225 34.4511 +96.3344 16.5813 35.2129 +95.9911 16.9388 35.9722 +96.4689 17.4448 37.0468 +96.1996 17.8198 37.8431 +96.7445 18.35 38.9691 +96.3649 18.709 39.7315 +96.1593 19.1025 40.5672 +96.3961 19.5877 41.5975 +96.7102 20.0947 42.6742 +96.2054 20.4345 43.3958 +96.5851 20.9654 44.5234 +96.152 21.3237 45.2841 +95.7998 21.7004 46.0841 +96.0547 22.2183 47.184 +96.2956 22.7398 48.2914 +95.7391 23.0759 49.0053 +96.1288 23.644 50.2117 +96.3301 24.1734 51.3361 +95.8313 24.5307 52.0947 +96.0925 25.0863 53.2747 +96.1687 25.6006 54.3668 +95.6406 25.9572 55.1241 +95.7762 26.4974 56.2713 +95.9803 27.064 57.4746 +95.9196 27.5628 58.5338 +95.5162 27.9666 59.3914 +95.5131 28.4916 60.5064 +95.6586 29.0683 61.731 +95.7067 29.6231 62.9093 +95.7394 30.1805 64.0931 +95.1175 30.5353 64.8465 +95.8371 31.3287 66.5313 +95.1129 31.6575 67.2296 +95.3217 32.3016 68.5976 +95.2004 32.8424 69.746 +94.987 33.3577 70.8403 +95.1427 34.0108 72.2272 +95.1268 34.6122 73.5045 +95.0934 35.2161 74.7868 +95.6416 36.0482 76.5539 +94.8996 36.4024 77.3061 +94.8139 37.0128 78.6024 +95.2223 37.8288 80.3352 +95.2417 38.5039 81.769 +94.9529 39.0637 82.9577 +94.9336 39.7436 84.4017 +94.6816 40.336 85.6598 +95.1134 41.2334 87.5656 +95.0293 41.9226 89.0291 +94.7864 42.5524 90.3666 +94.3886 43.1211 91.5743 +94.7177 44.0357 93.5168 +94.4143 44.6714 94.8666 +94.0258 45.2759 96.1504 +94.3413 46.2344 98.186 +94.3648 47.0694 99.9592 +93.847 47.6467 101.185 +93.9488 48.5528 103.109 +94.1463 49.5292 105.183 +93.6885 50.1776 106.56 +93.7652 51.1281 108.578 +93.6275 51.9818 110.391 +93.5822 52.9063 112.355 +93.3872 53.766 114.18 +93.5754 54.8694 116.524 +93.5512 55.8739 118.657 +93.493 56.8827 120.799 +93.0039 57.6496 122.428 +92.9379 58.6993 124.657 +91.8423 59.1138 125.537 +103.264 67.7419 143.861 +115.036 76.926 163.364 +114.886 78.3263 166.338 +115.054 79.9853 169.861 +114.802 81.3962 172.858 +114.957 83.1412 176.563 +114.6 84.5615 179.58 +114.538 86.2452 183.155 +114.464 87.9718 186.822 +114.804 90.0785 191.296 +114.645 91.8562 195.071 +114.929 94.0549 199.74 +115.314 96.4146 204.751 +113.557 97.0302 206.059 +111.039 96.9893 205.972 +108.575 96.9753 205.942 +105.908 96.7576 205.48 +103.59 96.8372 205.649 +101.237 96.8683 205.715 +98.5708 96.5769 205.096 +96.2371 96.5867 205.117 +93.8722 96.5475 205.034 +91.5913 96.5765 205.095 +90.7824 98.1817 208.504 +90.7388 100.703 213.859 +90.3535 102.952 218.634 +90.0197 105.366 223.76 +89.7273 107.945 229.238 +89.6289 110.893 235.498 +89.353 113.767 241.602 +89.0587 116.769 247.977 +88.6781 119.818 254.452 +88.6471 123.525 262.324 +88.5276 127.321 270.387 +88.2591 131.127 278.468 +88.0016 135.186 287.088 +87.7397 139.499 296.248 +87.5078 144.151 306.127 +87.1887 148.976 316.374 +86.8417 154.1 327.255 +86.6961 159.979 339.74 +86.2295 165.702 351.894 +85.7636 171.892 365.04 +83.914 175.711 373.15 +81.6472 178.944 380.015 +84.6302 194.53 413.114 +82.0314 198.193 420.894 +77.8365 198.154 420.812 +73.7432 198.352 421.232 +69.367 197.734 419.919 +65.4253 198.322 421.167 +61.0993 197.713 419.874 +57.1323 198.229 420.969 +52.8206 197.502 419.427 +48.8148 197.861 420.188 +44.6737 197.653 419.746 +40.6233 197.811 420.083 +34.1768 185.001 392.879 +27.9096 170.034 361.094 +24.1508 168.218 357.238 +21.1804 172.173 365.636 +20.174 196.846 418.033 +16.2003 197.637 419.713 +12.0885 196.668 417.654 +8.09268 197.514 419.452 +4.03253 196.855 418.052 +2.83496e-14 197.246 418.883 +-4.03166 196.813 417.962 +-8.07872 197.173 418.728 +-12.0833 196.582 417.473 +-16.155 197.083 418.537 +-20.1478 196.59 417.49 +-24.2525 197.146 418.67 +-28.2349 196.666 417.65 +-32.2972 196.766 417.862 +-36.2873 196.426 417.14 +-40.4403 196.92 418.19 +-44.3766 196.338 416.954 +-48.543 196.759 417.848 +-52.5037 196.317 416.91 +-56.6083 196.41 417.108 +-60.7077 196.446 417.183 +-64.9243 196.803 417.942 +-68.7609 196.006 416.25 +-72.9923 196.332 416.942 +-76.9287 195.844 415.905 +-81.25 196.306 416.885 +-85.1951 195.828 415.872 +-89.5467 196.257 416.782 +-93.3839 195.541 415.261 +-97.7393 195.894 416.012 +-101.813 195.649 415.49 +-106.199 195.968 416.169 +-110.023 195.235 414.611 +-114.695 195.975 416.184 +-118.705 195.542 415.263 +-123.25 195.957 416.145 +-127.018 195.122 414.372 +-131.865 195.912 416.049 +-135.958 195.537 415.252 +-142.443 198.487 421.517 +-146.985 198.6 421.757 +-148.761 195.048 414.214 +-148.276 188.791 400.926 +-152.626 188.836 401.023 +-161.596 194.406 412.851 +-166.974 195.439 415.045 +-171.286 195.17 414.473 +-177.535 197.031 418.427 +-456.257 493.448 1047.91 +-187.715 197.933 420.341 +-451.911 464.79 987.053 +-195.053 195.762 415.731 +-199.574 195.537 415.254 +-205.158 196.306 416.885 +-209.005 195.38 414.92 +-216.676 197.955 420.388 +-145.642 130.082 276.25 +-145.364 126.97 269.641 +-148.405 126.806 269.293 +-152.586 127.578 270.932 +-476.109 389.635 827.449 +-112.063 89.7875 190.678 +-112.18 88.0195 186.923 +-112.912 86.7794 184.29 +-114.439 86.171 182.998 +-116.05 85.6313 181.851 +-117.444 84.9398 180.383 +-119.18 84.5002 179.449 +-121.376 84.3805 179.195 +-124.001 84.5402 179.534 +-128.253 85.765 182.135 +-506.623 332.35 705.796 +-509.659 328.038 696.639 +-513.507 324.329 688.764 +-517.242 320.618 680.881 +-520.635 316.763 672.695 +-524.084 313.012 664.729 +-527.185 309.121 656.467 +-531.474 305.986 649.808 +-535.134 302.535 642.481 +-538.51 298.979 634.929 +-542.09 295.589 627.73 +-545.883 292.363 620.878 +-549.019 288.832 613.38 +-553.579 286.09 607.557 +-557.04 282.814 600.599 +-560.604 279.63 593.839 +-564.342 276.571 587.342 +-568.13 273.569 580.967 +-572.307 270.782 575.048 +-576.076 267.827 568.772 +-580.108 265.021 562.813 +-584.344 262.329 557.096 +-587.681 259.258 550.574 +-592.128 256.699 545.14 +-595.525 253.704 538.78 +-599.844 251.123 533.298 +-134.948 55.5178 117.901 +-607.719 245.686 521.752 +-612.143 243.185 516.441 +-615.553 240.295 510.304 +-619.857 237.77 504.941 +-623.955 235.174 499.429 +-627.466 232.37 493.474 +-632.202 230.029 488.502 +-629.076 224.876 477.56 +-141.979 49.8603 105.886 +-143.228 49.4112 104.932 +-143.374 48.5852 103.178 +-142.236 47.3421 100.538 +-142.804 46.6817 99.1359 +-142.796 45.8416 97.3518 +-146.382 46.145 97.996 +-148.616 45.9997 97.6875 +-662.69 201.375 427.651 +-384.674 114.748 243.686 +-388.823 113.845 241.767 +-383.927 110.322 234.287 +-384.255 108.35 230.099 +-385.034 106.523 226.219 +-380.791 103.348 219.476 +-381.282 101.5 215.55 +-382.409 99.8334 212.012 +-384.354 98.3858 208.938 +-388.767 97.5585 207.181 +-715.077 175.881 373.512 +-719.958 173.531 368.52 +-740.278 174.813 371.243 +-725.464 167.806 356.363 +-737.261 167.003 354.656 +-743.138 164.806 349.992 +-407.814 88.5226 187.992 +-407.643 86.5851 183.877 +-409.311 85.0476 180.612 +-412.12 83.7427 177.841 +-407.113 80.8752 171.751 +-780.747 151.58 321.904 +-405.523 76.9175 163.346 +-405.065 75.0332 159.345 +-409.533 74.0572 157.272 +-405.029 71.4721 151.782 +-407.312 70.1076 148.884 +-405.011 67.966 144.336 +-406.388 66.4579 141.134 +-406.516 64.7504 137.508 +-406.887 63.0911 133.984 +-404.959 61.0922 129.739 +-387.095 56.7831 120.588 +-382.174 54.4766 115.69 +-381.659 52.83 112.193 +-382.059 51.3194 108.985 +-380.801 49.5978 105.329 +-381.898 48.1924 102.344 +-381.621 46.6183 99.0011 +-381.116 45.0271 95.622 +-381.154 43.5092 92.3985 +-381.063 41.9839 89.1593 +-381.908 40.5656 86.1474 +-381.461 39.015 82.8543 +-380.881 37.4612 79.5546 +-380.17 35.9055 76.2508 +-380.499 34.4553 73.1712 +-381.583 33.0734 70.2365 +-379.301 31.4097 66.7034 +-380.225 30.0217 63.7557 +-381.318 28.644 60.8299 +-379.227 27.0354 57.4139 +-382.433 25.8045 54.7998 +-381.167 24.2684 51.5377 +-380.56 22.7852 48.3879 +-380.417 21.3362 45.3107 +-379.45 19.8484 42.1512 +-380.737 18.4804 39.2461 +-378.913 16.9663 36.0305 +-379.644 15.5733 33.0724 +-379.949 14.1613 30.0738 +-378.53 12.6915 26.9523 +-380.67 11.3402 24.0827 +-379.491 9.88817 20.9991 +-378.281 8.44576 17.9359 +-378.939 7.04838 14.9683 +-378.569 5.63191 11.9602 +-144.351 1.61033 3.41978 +-145.678 1.08329 2.30053 +-144.395 0.536829 1.14004 +96.2 0 0 +96.0963 0.364097 0.755458 +96.1853 0.728924 1.51243 +96.167 1.09332 2.2685 +96.1414 1.45763 3.0244 +96.1084 1.82183 3.78007 +96.9669 2.20633 4.57788 +96.9189 2.57363 5.33998 +96.0654 2.91651 6.0514 +95.9034 3.27696 6.79929 +96.8301 3.67802 7.63146 +96.7525 4.04475 8.39237 +96.6675 4.41118 9.15266 +96.5752 4.77726 9.91224 +96.4755 5.14296 10.671 +96.3684 5.50826 11.429 +96.2541 5.87317 12.1861 +96.0334 6.23123 12.929 +95.9045 6.59484 13.6835 +96.4587 7.00812 14.541 +96.1172 7.35823 15.2674 +95.9657 7.7221 16.0224 +96.0031 8.10195 16.8106 +95.8366 8.46538 17.5647 +96.5432 8.9094 18.4859 +95.4817 9.19026 19.0687 +96.1703 9.63957 20.001 +96.0701 10.0137 20.7772 +95.7682 10.3668 21.5099 +96.4275 10.8271 22.4648 +96.013 11.1695 23.1754 +95.9776 11.5561 23.9774 +96.6068 12.027 24.9546 +96.1696 12.3679 25.6618 +95.9174 12.7318 26.4169 +95.6578 13.0947 27.1699 +96.4371 13.6042 28.227 +95.9704 13.9415 28.9269 +95.6865 14.3046 29.6803 +96.2437 14.797 30.702 +95.7547 15.1314 31.3958 +96.2899 15.6304 32.4312 +96.999 16.1658 33.542 +96.6704 16.5327 34.3033 +97.0761 17.0284 35.3319 +96.8226 17.4122 36.1282 +96.4689 17.7783 36.8879 +96.2913 18.1778 37.7168 +96.7445 18.7008 38.802 +96.3649 19.0667 39.5611 +96.1593 19.4677 40.3932 +96.3961 19.9622 41.4191 +96.7102 20.4789 42.4912 +96.2949 20.8445 43.2499 +96.5851 21.3663 44.3324 +96.152 21.7313 45.0899 +96.5945 22.2987 46.267 +96.0547 22.6431 46.9817 +96.2956 23.1745 48.0843 +96.5224 23.7095 49.1944 +96.1288 24.096 49.9963 +96.4163 24.6576 51.1616 +95.8313 24.9996 51.8712 +96.0925 25.5659 53.0462 +96.1687 26.09 54.1337 +95.5563 26.4301 54.8392 +95.7762 27.0039 56.0299 +95.8135 27.5335 57.1288 +95.2564 27.8955 57.8798 +96.0931 28.6734 59.4938 +95.5131 29.0363 60.2469 +96.3099 29.8257 61.8848 +95.6258 30.1639 62.5866 +95.0963 30.5509 63.3895 +95.0376 31.093 64.5142 +95.2024 31.7162 65.8072 +95.1917 32.2895 66.9968 +95.3217 32.9192 68.3034 +95.2004 33.4703 69.4469 +95.1413 34.0507 70.651 +95.1427 34.661 71.9174 +95.1268 35.2739 73.1892 +94.9425 35.8324 74.3479 +95.0425 36.5072 75.748 +95.4198 37.3017 77.3965 +94.8139 37.7204 78.2653 +94.564 38.2855 79.4378 +95.2417 39.24 81.4183 +94.9529 39.8105 82.6019 +94.9336 40.5034 84.0398 +94.6816 41.1072 85.2925 +95.2536 42.0837 87.3185 +94.8903 42.6616 88.5176 +94.6488 43.3029 89.8483 +94.3886 43.9455 91.1816 +94.7177 44.8776 93.1157 +94.4143 45.5254 94.4597 +94.6884 46.4667 96.4127 +94.2757 47.0858 97.6973 +93.9751 47.7713 99.1197 +94.3612 48.8237 101.303 +94.0124 49.5145 102.737 +94.0205 50.4088 104.592 +94.1242 51.3744 106.596 +93.7652 52.1056 108.113 +93.6275 52.9756 109.918 +93.4619 53.8483 111.729 +93.3277 54.7587 113.618 +93.5754 55.9184 116.024 +93.4932 56.907 118.075 +93.493 57.9702 120.281 +93.5137 59.0734 122.57 +92.9379 59.8215 124.122 +91.8975 60.28 125.074 +100.976 67.5079 140.071 +115.036 78.3967 162.664 +114.939 79.8607 165.701 +115.054 81.5144 169.133 +114.802 82.9523 172.116 +115.008 84.768 175.883 +114.6 86.1782 178.809 +114.538 87.894 182.369 +114.997 90.0713 186.887 +114.423 91.4954 189.842 +114.645 93.6123 194.234 +114.883 95.8144 198.803 +114.86 97.871 203.071 +113.513 98.8462 205.094 +110.996 98.8045 205.007 +108.962 99.1818 205.79 +106.246 98.9221 205.252 +103.59 98.6886 204.767 +101.237 98.7203 204.833 +98.8898 98.742 204.878 +96.2371 98.4333 204.237 +93.9105 98.4333 204.237 +91.6288 98.4632 204.299 +90.5991 99.8569 207.191 +90.7029 102.588 212.857 +90.3535 104.92 217.697 +89.9855 107.339 222.716 +89.8608 110.173 228.595 +89.3033 112.603 233.637 +89.0991 115.613 239.882 +88.9042 118.795 246.485 +88.6781 122.109 253.361 +88.5886 125.803 261.026 +88.5276 129.755 269.227 +88.5623 134.092 278.225 +87.9481 137.686 285.683 +87.7914 142.25 295.151 +87.7332 147.285 305.598 +87.3338 152.077 315.542 +86.8183 157.003 325.763 +86.7411 163.122 338.459 +86.3594 169.124 350.913 +85.8052 175.263 363.651 +83.914 179.07 371.549 +81.8761 182.876 379.446 +84.4662 197.865 410.545 +81.8751 201.598 418.291 +77.5889 201.301 417.675 +73.4773 201.415 417.913 +69.2339 201.128 417.316 +65.1887 201.383 417.845 +60.8383 200.632 416.287 +56.8642 201.07 417.196 +52.6169 200.501 416.016 +48.6475 200.952 416.951 +44.4149 200.265 415.525 +40.51 201.031 417.114 +32.5762 179.708 372.873 +27.9375 173.458 359.905 +24.1874 171.694 356.245 +22.2114 184.006 381.79 +20.0693 199.568 414.079 +16.1271 200.504 416.023 +12.065 200.037 415.052 +8.04381 200.075 415.132 +4.0177 199.88 414.728 +2.82639e-14 200.409 415.825 +-4.01682 199.837 414.638 +-8.05429 200.336 415.672 +-12.0492 199.776 414.512 +-16.1061 200.244 415.482 +-20.0911 199.785 414.53 +-24.1583 200.134 415.255 +-28.1067 199.515 413.97 +-32.1996 199.921 414.813 +-36.1853 199.618 414.184 +-40.3095 200.036 415.051 +-44.2424 199.487 413.911 +-48.3444 199.7 414.353 +-52.3338 199.423 413.779 +-56.4986 199.777 414.514 +-60.4597 199.383 413.697 +-64.6877 199.835 414.633 +-68.4949 198.981 412.862 +-72.7107 199.314 413.553 +-76.6481 198.86 412.61 +-80.868 199.118 413.145 +-84.94 198.974 412.848 +-89.146 199.114 413.137 +-93.2045 198.896 412.686 +-97.3858 198.918 412.73 +-101.445 198.668 412.213 +-105.817 198.996 412.892 +-109.813 198.587 412.044 +-114.139 198.753 412.39 +-118.129 198.313 411.476 +-122.887 199.116 413.143 +-126.885 198.643 412.161 +-131.479 199.073 413.053 +-135.475 198.567 412.003 +-141.946 201.575 418.245 +-146.263 201.403 417.886 +-148.761 198.776 412.437 +-147.864 191.865 398.096 +-151.617 191.174 396.663 +-160.594 196.895 408.533 +-166.701 198.849 412.588 +-171.111 198.698 412.274 +-176.066 199.136 413.184 +-181.528 200.078 415.137 +-467.097 501.939 1041.46 +-450.992 472.712 980.82 +-193.646 198.066 410.963 +-198.497 198.201 411.243 +-204.589 199.503 413.945 +-208.964 199.076 413.059 +-458.287 426.695 885.34 +-146.029 132.922 275.797 +-146.021 129.983 269.699 +-148.45 129.27 268.219 +-152.495 129.94 269.61 +-114.144 95.1983 197.525 +-112.157 91.5805 190.018 +-112.18 89.7023 186.121 +-113.009 88.5144 183.657 +-114.193 87.6291 181.82 +-115.6 86.9301 180.37 +-117.647 86.7135 179.92 +-119.592 86.4131 179.297 +-121.376 85.9937 178.427 +-124.001 86.1565 178.764 +-128.898 87.8441 182.266 +-506.569 338.667 702.693 +-510.155 334.635 694.328 +-513.507 330.53 685.81 +-516.902 326.533 677.516 +-520.635 322.819 669.81 +-524.084 318.996 661.878 +-527.949 315.488 654.6 +-531.117 311.626 646.587 +-535.375 308.458 640.012 +-538.328 304.592 631.991 +-542.09 301.24 625.038 +-545.883 297.952 618.215 +-549.774 294.759 611.59 +-553.388 291.459 604.742 +-557.425 288.42 598.437 +-560.993 285.175 591.703 +-564.932 282.153 585.434 +-568.727 279.092 579.083 +-572.709 276.152 572.983 +-576.278 273.044 566.533 +-580.108 270.088 560.399 +-584.344 267.344 554.707 +-587.889 264.308 548.407 +-591.918 261.513 542.609 +-595.95 258.739 536.852 +-600.058 256.015 531.2 +-134.301 56.3078 116.832 +-135.065 55.6474 115.462 +-611.339 247.508 513.55 +-615.553 244.889 508.116 +-619.634 242.228 502.595 +-623.73 239.584 497.108 +-627.466 236.813 491.358 +-632.658 234.596 486.758 +-634.668 231.213 479.74 +-141.979 50.8135 105.432 +-143.15 50.3285 104.426 +-143.374 49.514 102.736 +-142.394 48.3006 100.218 +-142.724 47.5477 98.6558 +-142.716 46.6915 96.8794 +-147.106 47.2599 98.0586 +-148.778 46.9303 97.3748 +-662.69 205.225 425.817 +-385.001 117.042 242.848 +-390.059 116.39 241.496 +-384.342 112.553 233.534 +-384.004 110.35 228.962 +-383.189 108.04 224.169 +-382.309 105.744 219.405 +-382.639 103.808 215.39 +-383.859 102.128 211.902 +-383.497 100.043 207.578 +-711.016 181.836 377.288 +-715.424 179.331 372.09 +-721.525 177.233 367.738 +-733.281 176.471 366.157 +-2879.62 678.817 1408.46 +-736.467 170.012 352.754 +-741.807 167.656 347.866 +-410.487 90.8063 188.412 +-407.106 88.1241 182.847 +-413.715 87.6061 181.772 +-406.615 84.2036 174.712 +-407.929 82.5863 171.357 +-408.755 80.8757 167.807 +-408.446 78.9533 163.819 +-408.734 77.1602 160.098 +-406.035 74.8287 155.261 +-407.523 73.2875 152.063 +-406.107 71.2365 147.807 +-406.592 69.5359 144.279 +-406.668 67.7749 140.625 +-406.516 65.9883 136.918 +-405.947 64.1488 133.101 +-404.959 62.2602 129.182 +-387.19 57.8825 120.099 +-382.743 55.6006 115.364 +-381.659 53.84 111.712 +-380.438 52.0786 108.057 +-381.757 50.6733 105.141 +-381.418 49.0521 101.777 +-381.429 47.4856 98.527 +-381.887 45.9808 95.4047 +-380.575 44.2737 91.8626 +-379.32 42.5908 88.3709 +-381.423 41.2886 85.6689 +-380.488 39.6595 82.2887 +-380.881 38.1774 79.2135 +-381.146 36.6858 76.1187 +-379.13 34.9877 72.5952 +-381.191 33.6711 69.8634 +-381.853 32.2256 66.8642 +-380.225 30.5956 63.4823 +-381.318 29.1916 60.5691 +-381.002 27.6813 57.4353 +-380.161 26.1416 54.2407 +-379.881 24.649 51.1436 +-379.966 23.1846 48.1052 +-379.525 21.6931 45.0106 +-380.344 20.2755 42.0692 +-379.246 18.76 38.9248 +-378.416 17.268 35.829 +-379.644 15.8711 32.9306 +-379.55 14.4169 29.9134 +-378.53 12.9341 26.8367 +-378.476 11.4904 23.8411 +-378.593 10.0533 20.8595 +-378.281 8.60722 17.859 +-378.939 7.18313 14.9041 +-378.569 5.73958 11.9089 +-144.85 1.64679 3.4169 +-145.478 1.10248 2.28752 +-145.194 0.550123 1.14144 +96.2 0 0 +96.0963 0.370898 0.752143 +96.0854 0.741769 1.50423 +96.167 1.11374 2.25854 +97.0408 1.49874 3.0393 +96.9077 1.87129 3.79478 +97.0668 2.24986 4.56248 +96.0206 2.5974 5.26727 +96.9632 2.99875 6.08115 +96.8007 3.36939 6.83278 +96.7305 3.74286 7.59014 +96.7525 4.12029 8.35553 +96.6675 4.49357 9.11249 +96.5752 4.86649 9.86874 +96.4755 5.23902 10.6242 +96.3684 5.61114 11.3788 +96.2541 5.98287 12.1327 +96.0334 6.34761 12.8723 +95.9045 6.71802 13.6234 +95.6697 7.08059 14.3587 +96.3142 7.51101 15.2316 +95.9657 7.86633 15.9521 +96.0031 8.25327 16.7368 +95.8366 8.6235 17.4876 +95.6628 8.99306 18.237 +95.4817 9.36191 18.985 +95.3908 9.74001 19.7517 +95.9729 10.1904 20.6651 +95.7682 10.5604 21.4155 +96.5243 11.0404 22.3888 +96.2062 11.4011 23.1202 +95.9776 11.7719 23.8722 +95.7417 12.1419 24.6225 +96.3614 12.624 25.6001 +96.1086 12.9954 26.3534 +95.6578 13.3393 27.0507 +96.2469 13.8309 28.0477 +96.16 14.23 28.8569 +96.5374 14.7013 29.8128 +96.2437 15.0734 30.5672 +96.6944 15.5653 31.5647 +96.2899 15.9223 32.2889 +96.999 16.4677 33.3948 +96.6704 16.8415 34.1528 +97.1689 17.363 35.2105 +96.7302 17.7205 35.9353 +96.4689 18.1104 36.726 +96.1996 18.4997 37.5155 +96.7445 19.0501 38.6317 +96.3649 19.4228 39.3874 +96.1593 19.8314 40.216 +96.3961 20.335 41.2373 +96.7102 20.8614 42.3047 +96.2949 21.2339 43.0601 +95.7832 21.5846 43.7714 +96.152 22.1372 44.892 +96.4179 22.6736 45.9798 +95.3517 22.8971 46.4331 +96.2956 23.6073 47.8733 +95.8262 23.9781 48.6251 +96.1288 24.5461 49.7769 +95.5547 24.8937 50.4819 +95.8313 25.4666 51.6436 +96.0073 26.0203 52.7665 +96.1687 26.5773 53.8961 +95.6406 26.9475 54.6468 +95.86 27.5324 55.8328 +95.8135 28.0478 56.8781 +95.9196 28.6143 58.027 +95.5162 29.0336 58.8771 +95.5131 29.5787 59.9825 +95.6586 30.1773 61.1965 +95.7067 30.7533 62.3646 +95.7394 31.332 63.5381 +95.1974 31.727 64.339 +95.2024 32.3085 65.5184 +95.9797 33.1649 67.255 +95.2434 33.5065 67.9477 +95.2004 34.0955 69.1421 +94.987 34.6304 70.2269 +95.1427 35.3084 71.6018 +94.9747 35.8753 72.7515 +94.9425 36.5016 74.0216 +95.0425 37.1891 75.4156 +94.8996 37.7912 76.6367 +94.6664 38.3652 77.8007 +95.2223 39.272 79.6396 +95.2417 39.9729 81.061 +94.9529 40.554 82.2394 +94.9336 41.2599 83.6709 +94.823 41.9375 85.045 +94.4125 42.4911 86.1677 +94.2651 43.1721 87.5485 +94.7864 44.1759 89.5842 +94.3886 44.7663 90.7814 +94.1097 45.4226 92.1124 +94.4143 46.3757 94.0452 +94.6884 47.3345 95.9896 +94.2101 47.9316 97.2004 +94.2999 48.8316 99.0256 +93.847 49.4645 100.309 +93.8851 50.3712 102.148 +94.0834 51.3844 104.202 +93.6885 52.0921 105.637 +93.7652 53.0788 107.638 +93.7493 54.035 109.577 +93.6424 54.9602 111.454 +93.3872 55.8173 113.192 +93.3991 56.8553 115.297 +93.5512 58.0057 117.63 +93.493 59.053 119.753 +93.5137 60.1768 122.032 +92.9938 60.9755 123.652 +91.8975 61.4059 124.525 +98.5252 67.0997 136.071 +115.036 79.861 161.95 +114.886 81.3147 164.898 +115.106 83.0749 168.467 +114.75 84.4637 171.284 +114.907 86.2752 174.957 +114.55 87.7493 177.947 +114.932 89.8435 182.193 +114.512 91.3667 185.282 +114.375 93.1654 188.93 +114.598 95.3219 193.303 +114.837 97.5651 197.852 +114.723 99.5805 201.939 +113.87 101.009 204.836 +110.996 100.65 204.108 +108.575 100.675 204.159 +106.246 100.77 204.351 +103.881 100.814 204.44 +101.237 100.564 203.934 +98.8898 100.586 203.979 +96.5887 100.638 204.084 +94.2549 100.64 204.087 +91.9659 100.672 204.152 +90.5258 101.64 206.115 +90.8104 104.628 212.174 +90.3885 106.921 216.826 +90.0197 109.386 221.823 +89.794 112.147 227.423 +89.3033 114.706 232.612 +89.3847 118.15 239.596 +89.1823 121.392 246.171 +88.8285 124.6 252.677 +88.5886 128.153 259.88 +88.5844 132.264 268.218 +88.2591 136.129 276.056 +88.1887 140.641 285.206 +87.7655 144.864 293.769 +87.7832 150.122 304.431 +87.3096 154.875 314.07 +86.8183 159.936 324.334 +86.7186 166.126 336.887 +86.2295 172.024 348.847 +85.7636 178.45 361.879 +83.595 181.721 368.512 +82.3341 187.334 379.894 +84.6302 201.952 409.537 +81.4757 204.361 414.424 +77.0772 203.708 413.099 +73.1175 204.173 414.042 +68.5836 202.96 411.581 +64.9243 204.312 414.323 +60.3684 202.8 411.259 +56.4255 203.245 412.161 +52.2093 202.664 410.982 +48.3444 203.43 412.535 +44.1178 202.64 410.934 +40.1962 203.199 412.068 +31.823 178.832 362.654 +28.0351 177.316 359.579 +25.1825 182.097 369.274 +23.9385 202.018 409.671 +19.9515 202.103 409.843 +16.0573 203.365 412.404 +11.9812 202.358 410.362 +8.01065 202.972 411.606 +3.98541 201.978 409.59 +2.80741e-14 202.781 411.22 +-3.98715 202.066 409.77 +-8.01415 203.06 411.785 +-11.9602 202.004 409.644 +-16.0258 202.967 411.597 +-19.9297 201.881 409.395 +-24.0222 202.724 411.104 +-27.9053 201.785 409.199 +-32.0182 202.508 410.666 +-35.895 201.716 409.059 +-40.0045 202.23 410.102 +-43.9069 201.672 408.97 +-48.1145 202.462 410.572 +-51.9829 201.785 409.2 +-56.133 202.192 410.025 +-60.0551 201.748 409.125 +-64.131 201.816 409.261 +-67.948 201.079 407.768 +-72.2101 201.639 408.903 +-76.0539 201.004 407.615 +-80.4686 201.835 409.301 +-84.047 200.56 406.715 +-88.5354 201.444 408.507 +-92.3074 200.661 406.92 +-97.0116 201.854 409.34 +-100.536 200.565 406.726 +-105.367 201.85 409.332 +-108.996 200.791 407.184 +-113.607 201.521 408.665 +-117.353 200.69 406.979 +-121.981 201.34 408.297 +-125.709 200.478 406.549 +-130.514 201.303 408.222 +-134.339 200.58 406.755 +-141.011 203.987 413.665 +-145.03 203.435 412.546 +-148.977 202.783 411.224 +-148.276 195.993 397.455 +-150.575 193.406 392.208 +-157.757 197.028 399.553 +-165.196 200.735 407.069 +-169.43 200.421 406.432 +-174.597 201.163 407.937 +-178.559 200.481 406.555 +-185.73 203.311 412.295 +-450.457 480.97 975.358 +-194.779 202.946 411.554 +-195.786 199.144 403.844 +-203.938 202.583 410.818 +-207.139 201.024 407.656 +-212.788 201.82 409.27 +-145.857 135.245 274.263 +-145.539 131.974 267.629 +-149.164 132.317 268.326 +-152.586 132.446 268.586 +-111.189 94.4656 191.567 +-111.828 93.0176 188.63 +-112.18 91.3777 185.305 +-113.494 90.5542 183.635 +-114.538 89.5356 181.569 +-116.1 88.9368 180.355 +-117.8 88.4472 179.362 +-120.004 88.3305 179.125 +-121.847 87.9395 178.332 +-124.478 88.1031 178.664 +-129.543 89.9324 182.374 +-507.222 345.438 700.513 +-510.652 341.217 691.954 +-513.675 336.814 683.023 +-517.412 332.959 675.207 +-520.635 328.848 666.871 +-524.607 325.278 659.631 +-528.478 321.703 652.38 +-532.247 318.122 645.119 +-535.676 314.395 637.561 +-539.058 310.702 630.072 +-542.398 307.041 622.648 +-546.194 303.69 615.852 +-549.774 300.265 608.906 +-554.151 297.312 602.919 +-557.618 293.909 596.017 +-561.643 290.837 589.788 +-564.932 287.423 582.865 +-568.727 284.305 576.541 +-572.709 281.31 570.468 +-576.819 278.404 564.575 +-581.131 275.617 558.924 +-584.551 272.434 552.468 +-588.515 269.531 546.582 +-592.759 266.776 540.995 +-595.95 263.572 534.496 +-600.557 261.014 529.309 +-133.797 57.1441 115.882 +-135.427 56.839 115.264 +-612.289 252.523 512.091 +-616.88 250.001 506.976 +-619.857 246.841 500.569 +-624.929 244.527 495.877 +-628.145 241.497 489.731 +-632.886 239.064 484.797 +-636.43 236.185 478.96 +-142.596 51.9877 105.426 +-142.218 50.9346 103.29 +-143.374 50.4388 102.285 +-142.236 49.1483 99.6677 +-142.09 48.2204 97.7861 +-142.157 47.3774 96.0766 +-147.106 48.1426 97.6282 +-148.859 47.8325 96.9995 +-663.179 209.213 424.262 +-390.162 120.826 245.023 +-383.96 116.711 236.677 +-383.513 114.408 232.008 +-383.921 112.386 227.908 +-385.034 110.587 224.26 +-381.129 107.386 217.768 +-381.537 105.442 213.826 +-383.944 104.058 211.019 +-382.639 101.684 206.205 +-385.838 100.518 203.84 +-716.203 182.879 370.86 +-723.614 181.066 367.184 +-726.634 178.138 361.246 +-2879.27 691.412 1402.11 +-737.438 173.416 351.67 +-743.67 171.217 347.21 +-408.259 92.0004 186.567 +-756.488 166.812 338.278 +-762.177 164.41 333.406 +-410.947 86.6905 175.799 +-408.564 84.2598 170.87 +-781.111 157.437 319.266 +-408.081 80.3559 162.953 +-408.459 78.5487 159.289 +-409.349 76.8482 155.84 +-404.659 74.1313 150.331 +-405.55 72.4675 146.957 +-406.965 70.8997 143.777 +-407.975 69.2628 140.458 +-403.706 66.756 135.374 +-405.101 65.2107 132.241 +-404.582 63.3642 128.496 +-383.408 58.3878 118.404 +-382.174 56.555 114.688 +-382.039 54.9 111.332 +-381.201 53.1575 107.798 +-381.757 51.6197 104.679 +-381.898 50.0311 101.458 +-381.14 48.3358 98.0202 +-381.019 46.7331 94.7699 +-381.444 45.2037 91.6684 +-380.579 43.5303 88.275 +-379.289 41.8244 84.8156 +-381.85 40.5448 82.2207 +-381.271 38.9302 78.9464 +-381.634 37.4189 75.8817 +-379.815 35.7055 72.4071 +-381.191 34.3 69.5568 +-380.479 32.7093 66.3312 +-380.716 31.2074 63.2854 +-379.939 29.6293 60.0852 +-379.227 28.0669 56.9168 +-379.371 26.5745 53.8905 +-379.189 25.0636 50.8263 +-379.471 23.5868 47.8317 +-379.029 22.0694 44.7546 +-379.45 20.6057 41.7862 +-378.054 19.0503 38.6321 +-378.416 17.5905 35.6717 +-379.644 16.1675 32.786 +-379.55 14.6862 29.7821 +-379.327 13.2034 26.7752 +-379.274 11.7297 23.7865 +-377.195 10.2033 20.6912 +-378.78 8.77953 17.804 +-379.039 7.31924 14.8427 +-378.569 5.84678 11.8567 +-148.449 1.71923 3.48643 +-145.478 1.12307 2.27748 +-143.995 0.555767 1.12704 +96.2 0 0 +96.0963 0.377668 0.748766 +97.0852 0.763168 1.51306 +97.0667 1.14468 2.26944 +97.0408 1.5261 3.02565 +97.0076 1.90741 3.78163 +96.9669 2.28857 4.53733 +96.0206 2.64482 5.24362 +96.0654 3.02521 5.9978 +96.8007 3.4309 6.80211 +96.7305 3.81119 7.55607 +96.653 4.19119 8.30946 +96.6675 4.57559 9.07158 +96.5752 4.95532 9.82444 +96.4755 5.33465 10.5765 +96.5667 5.72537 11.3511 +96.2541 6.09208 12.0782 +96.0334 6.46348 12.8145 +95.9045 6.84065 13.5623 +95.6697 7.20984 14.2942 +96.3142 7.64811 15.1632 +95.9657 8.00992 15.8805 +96.0031 8.40393 16.6617 +95.8366 8.78091 17.4091 +95.6628 9.15722 18.1551 +95.4817 9.53281 18.8998 +95.3908 9.91781 19.6631 +96.0701 10.3869 20.5932 +95.7682 10.7532 21.3193 +96.4275 11.2306 22.2658 +96.2062 11.6092 23.0164 +95.9776 11.9868 23.765 +96.6068 12.4753 24.7335 +96.3614 12.8544 25.4852 +96.1086 13.2327 26.2351 +96.5162 13.7046 27.1708 +96.4371 14.1112 27.977 +95.9704 14.4611 28.6706 +96.5374 14.9697 29.6789 +96.1494 15.3335 30.4002 +95.8486 15.7108 31.1482 +96.2899 16.213 32.1439 +96.999 16.7683 33.2449 +96.6704 17.1489 33.9995 +96.3344 17.5281 34.7513 +96.8226 18.0612 35.8081 +96.3769 18.4234 36.5262 +96.1996 18.8374 37.347 +96.7445 19.3979 38.4583 +96.5469 19.8147 39.2847 +95.978 20.1553 39.96 +96.3961 20.7062 41.0522 +96.171 21.1237 41.88 +96.2949 21.6215 42.8668 +95.8723 21.9991 43.6154 +96.2407 22.5621 44.7318 +96.5062 23.1086 45.8152 +96.0547 23.4871 46.5655 +96.2956 24.0383 47.6584 +95.8262 24.4158 48.4068 +96.1288 24.9941 49.5534 +96.3301 25.5538 50.6631 +95.8313 25.9314 51.4117 +96.0073 26.4953 52.5296 +96.1687 27.0625 53.6541 +95.5563 27.4152 54.3534 +95.7762 28.0104 55.5336 +95.9803 28.6095 56.7212 +95.4222 28.9856 57.4669 +95.5162 29.5636 58.6128 +95.5131 30.1186 59.7132 +95.6586 30.7282 60.9218 +95.7067 31.3147 62.0847 +95.8197 31.9307 63.306 +95.8363 32.5229 64.48 +95.2024 32.8983 65.2243 +95.1917 33.493 66.4033 +95.8695 34.3424 68.0873 +95.2004 34.7178 68.8317 +95.1413 35.3198 70.0252 +95.1427 35.9529 71.2803 +95.8872 36.8812 73.1207 +95.0934 37.227 73.8064 +95.6416 38.1066 75.5503 +95.5684 38.7522 76.8303 +95.4774 39.4002 78.1149 +95.2223 39.9889 79.2821 +95.2417 40.7026 80.6971 +94.9529 41.2943 81.8702 +94.9336 42.0131 83.2953 +94.823 42.703 84.6632 +95.1134 43.588 86.4177 +94.8903 44.2517 87.7335 +94.6488 44.9169 89.0524 +94.3886 45.5834 90.3739 +94.7177 46.5503 92.2908 +94.4143 47.2222 93.623 +94.6884 48.1986 95.5587 +94.3413 48.8746 96.8989 +94.2349 49.6888 98.5131 +93.9113 50.4021 99.9274 +93.9488 51.3253 101.758 +93.6429 52.0774 103.249 +93.6262 53.0074 105.093 +93.6421 53.9765 107.014 +93.2623 54.7358 108.519 +93.3415 55.7833 110.596 +93.2682 56.7637 112.54 +93.3403 57.8567 114.707 +93.4932 59.028 117.029 +93.4356 60.094 119.143 +93.5137 61.2752 121.485 +93.1056 62.1633 123.245 +91.8975 62.5268 123.966 +96.7279 67.0779 132.989 +115.036 81.3187 161.223 +114.886 82.799 164.158 +115.054 84.5527 167.634 +114.75 86.0055 170.515 +114.957 87.8888 174.249 +114.55 89.3511 177.148 +114.882 91.4443 181.298 +114.9 93.3497 185.075 +114.804 95.2222 188.788 +114.598 97.0619 192.435 +114.791 99.306 196.884 +115.177 101.8 201.828 +113.959 102.933 204.076 +111.434 102.892 203.993 +109.048 102.96 204.129 +106.5 102.854 203.919 +104.254 103.023 204.253 +101.562 102.729 203.671 +99.2486 102.794 203.799 +96.5497 102.434 203.086 +94.2549 102.477 203.171 +91.9285 102.467 203.152 +90.1227 103.034 204.276 +90.5237 106.201 210.555 +90.3535 108.831 215.768 +90.0881 111.467 220.995 +89.8608 114.279 226.57 +89.7266 117.353 232.665 +89.2578 120.135 238.181 +89.0587 123.437 244.726 +88.8285 126.875 251.542 +88.6763 130.621 258.97 +88.5844 134.678 267.014 +88.2591 138.614 274.817 +87.9481 142.818 283.152 +87.8173 147.596 292.623 +87.5078 152.382 302.113 +87.3096 157.702 312.66 +86.8417 162.9 322.965 +86.5162 168.764 334.591 +86.2295 175.164 347.281 +85.5972 181.355 359.555 +83.0766 183.891 364.584 +83.3072 193.008 382.658 +84.375 205.018 406.469 +80.5554 205.741 407.902 +76.252 205.206 406.842 +72.4917 206.121 408.655 +68.1401 205.328 407.085 +64.1866 205.678 407.777 +59.8463 204.716 405.871 +56.0477 205.57 407.563 +51.7452 204.529 405.501 +47.9577 205.486 407.398 +40.1785 187.915 372.562 +36.3091 186.9 370.548 +31.517 180.346 357.554 +29.0536 187.111 370.968 +27.6855 203.85 404.154 +23.8547 204.986 406.405 +19.8032 204.262 404.97 +15.9072 205.142 406.715 +11.8608 203.981 404.414 +7.94608 205.011 406.455 +3.95312 203.998 404.448 +2.78475e-14 204.817 406.07 +-3.95312 203.998 404.448 +-7.94259 204.921 406.277 +-11.866 204.071 404.593 +-15.8723 204.692 405.823 +-19.7727 203.947 404.346 +-23.8024 204.536 405.514 +-27.655 203.626 403.709 +-31.7252 204.318 405.081 +-35.5655 203.512 403.484 +-39.7169 204.441 405.326 +-43.5044 203.47 403.401 +-47.7277 204.501 405.444 +-51.4622 203.411 403.283 +-55.7309 204.407 405.259 +-59.3633 203.064 402.596 +-63.7134 204.162 404.771 +-67.4011 203.101 402.669 +-71.7252 203.941 404.334 +-75.3607 202.807 402.086 +-79.774 203.745 403.946 +-83.4821 202.848 402.168 +-87.9248 203.706 403.869 +-91.5099 202.558 401.593 +-96.076 203.557 403.572 +-99.6488 202.424 401.327 +-104.31 203.472 403.405 +-107.945 202.486 401.449 +-112.736 203.627 403.711 +-116.452 202.783 402.039 +-121.153 203.623 403.704 +-124.64 202.402 401.282 +-129.522 203.419 403.3 +-133.09 202.341 401.162 +-139.315 205.213 406.855 +-143.497 204.958 406.351 +-148.761 206.185 408.784 +-148.562 199.955 396.432 +-149.045 194.935 386.479 +-154.486 196.465 389.511 +-164.443 203.468 403.395 +-167.749 202.054 400.594 +-172.769 202.691 401.855 +-176.91 202.256 400.993 +-468.333 522.026 1034.97 +-449.653 488.876 969.247 +-450.552 478.009 947.703 +-194.829 201.789 400.067 +-201.579 203.895 404.243 +-205.812 203.382 403.226 +-212.535 205.259 406.947 +-146.245 138.079 273.756 +-146.021 134.828 267.31 +-149.699 135.216 268.08 +-152.722 134.984 267.62 +-115.206 99.6653 197.597 +-111.875 94.7552 187.862 +-112.419 93.2434 184.865 +-113.348 92.0892 182.576 +-114.784 91.3659 181.142 +-115.8 90.3261 179.081 +-118.307 90.4499 179.326 +-119.901 89.8658 178.168 +-122.056 89.6983 177.836 +-124.849 89.9789 178.392 +-129.489 91.5357 181.479 +-507.277 351.781 697.443 +-511.094 347.746 689.443 +-514.01 343.186 680.401 +-518.262 339.594 673.279 +-521.152 335.183 664.536 +-524.955 331.436 657.105 +-528.478 327.575 649.451 +-532.069 323.82 642.007 +-535.676 320.134 634.699 +-539.606 316.695 627.88 +-542.952 312.966 620.487 +-544.576 308.318 611.272 +-550.404 306.096 606.866 +-554.533 302.948 600.625 +-557.811 299.377 593.546 +-562.227 296.454 587.751 +-565.523 292.976 580.856 +-569.787 290.034 575.023 +-573.11 286.646 568.306 +-577.427 283.785 562.633 +-581.131 280.649 556.415 +-585.308 277.766 550.7 +-589.14 274.743 544.706 +-593.18 271.839 538.949 +-596.586 268.669 532.665 +-600.7 265.841 527.058 +-605.181 263.189 521.799 +-134.557 57.5045 114.009 +-612.728 257.317 510.158 +-616.659 254.474 504.52 +-620.452 251.588 498.8 +-625.303 249.14 493.946 +-628.749 246.142 488.001 +-633.494 243.661 483.084 +-637.349 240.844 477.498 +-142.905 53.0515 105.18 +-142.839 52.0909 103.276 +-143.296 51.3312 101.769 +-142.394 50.1008 99.3301 +-142.486 49.238 97.6194 +-143.195 48.5944 96.3435 +-147.588 49.1817 97.5078 +-148.616 48.6264 96.4069 +-663.667 213.188 422.668 +-668.264 210.727 417.788 +-673.394 208.424 413.223 +-383.513 116.497 230.966 +-381.67 113.767 225.555 +-384.195 112.361 222.766 +-383.743 110.096 218.277 +-383.063 107.797 213.718 +-383.091 105.722 209.606 +-384.354 104.004 206.199 +-712.223 188.934 374.58 +-716.203 186.218 369.195 +-726.399 185.081 366.943 +-723.136 180.517 357.893 +-733.461 179.344 355.568 +-738.232 176.772 350.468 +-744.734 174.591 346.146 +-410.13 94.1094 186.582 +-412.744 92.6746 183.737 +-409.221 89.8843 178.205 +-769.003 165.184 327.495 +-407.929 85.6646 169.839 +-411.484 84.4504 167.432 +-408.446 81.8961 162.367 +-408.459 79.9826 158.574 +-406.495 77.7056 154.059 +-409.186 76.3289 151.33 +-408.703 74.3641 147.434 +-406.127 72.0452 142.837 +-406.107 70.2042 139.187 +-407.078 68.5425 135.892 +-406.135 66.5704 131.983 +-404.016 64.4308 127.741 +-390.405 60.5385 120.024 +-380.088 57.273 113.55 +-379.376 55.5126 110.06 +-379.961 53.9517 106.965 +-381.279 52.4962 104.079 +-380.46 50.7525 100.622 +-381.14 49.2182 97.5801 +-380.538 47.5258 94.2248 +-382.313 46.1338 91.4649 +-381.063 44.3813 87.9905 +-381.423 42.8276 84.91 +-381.363 41.2323 81.7474 +-380.394 39.5497 78.4113 +-382.025 38.141 75.6184 +-381.869 36.5539 72.4719 +-380.701 34.8812 69.1555 +-379.301 33.2033 65.8289 +-380.225 31.736 62.9199 +-379.939 30.1702 59.8155 +-380.509 28.6759 56.8529 +-380.754 27.1583 53.8441 +-381.167 25.6542 50.8621 +-379.471 24.0174 47.6169 +-379.922 22.5252 44.6585 +-379.748 20.9983 41.6313 +-380.439 19.5204 38.7012 +-379.311 17.954 35.5956 +-379.345 16.4497 32.6131 +-378.753 14.9229 29.5862 +-379.327 13.4445 26.655 +-379.573 11.9532 23.6984 +-379.591 10.4556 20.7292 +-378.281 8.92804 17.7008 +-378.24 7.43713 14.7449 +-378.569 5.95351 11.8035 +-141.452 1.66809 3.30717 +-145.478 1.14357 2.26725 +-144.395 0.567484 1.1251 +95.3 0 0 +96.0963 0.384408 0.745328 +96.0854 0.768788 1.4906 +96.167 1.1543 2.23808 +96.1414 1.53894 2.98385 +97.0076 1.94145 3.76427 +97.0668 2.33181 4.52114 +96.0206 2.69201 5.21955 +96.9632 3.10798 6.02606 +96.701 3.48852 6.7639 +96.7305 3.8792 7.52138 +96.7525 4.27038 8.27983 +96.6675 4.65724 9.02994 +96.7739 5.05411 9.79942 +96.4755 5.42985 10.5279 +96.5667 5.82754 11.299 +96.2541 6.2008 12.0227 +96.0334 6.57882 12.7557 +95.9045 6.96272 13.5 +96.5574 7.40662 14.3607 +96.1172 7.76869 15.0627 +96.1623 8.16955 15.8399 +96.0031 8.5539 16.5852 +95.8366 8.93761 17.3291 +95.6628 9.32063 18.0718 +95.4817 9.70292 18.813 +96.1703 10.1773 19.7328 +95.9729 10.5616 20.4779 +95.8652 10.9562 21.2429 +96.4275 11.431 22.1636 +96.2062 11.8163 22.9107 +95.9776 12.2007 23.6559 +95.7417 12.5842 24.3995 +96.3614 13.0838 25.3682 +96.1086 13.4688 26.1147 +96.5162 13.9492 27.0461 +95.5812 14.2356 27.6014 +95.9704 14.7192 28.539 +96.5374 15.2368 29.5427 +96.1494 15.6071 30.2606 +96.6944 16.1322 31.2788 +96.2899 16.5023 31.9964 +96.999 17.0675 33.0923 +96.5773 17.4381 33.8108 +96.3344 17.8409 34.5918 +96.8226 18.3835 35.6437 +97.2974 18.9313 36.7059 +96.2913 19.1918 37.211 +96.7445 19.744 38.2817 +96.5469 20.1683 39.1044 +95.978 20.515 39.7765 +96.3058 21.056 40.8254 +96.7102 21.6212 41.9215 +96.2949 22.0073 42.67 +95.7832 22.3708 43.3748 +96.152 22.9436 44.4853 +96.5062 23.521 45.6049 +95.9668 23.8843 46.3092 +96.2956 24.4672 47.4396 +95.9132 24.8741 48.2284 +96.1288 25.4402 49.3259 +96.3301 26.0098 50.4305 +95.8313 26.3942 51.1757 +95.922 26.9442 52.242 +96.1687 27.5454 53.4078 +96.3153 28.1261 54.5337 +95.7762 28.5103 55.2786 +95.9803 29.12 56.4608 +95.4222 29.5028 57.2031 +95.5162 30.0911 58.3437 +95.677 30.7087 59.541 +95.6586 31.2765 60.6421 +95.7067 31.8735 61.7996 +95.7394 32.4733 62.9625 +95.1974 32.8826 63.7561 +95.2817 33.5133 64.9789 +95.1129 34.0624 66.0437 +95.713 34.8982 67.6641 +95.2004 35.3374 68.5157 +95.2185 35.9793 69.7603 +94.9895 36.5356 70.8389 +95.8112 37.5096 72.7273 +95.0934 37.8913 73.4676 +95.6416 38.7867 75.2035 +94.8996 39.1678 75.9424 +95.4774 40.1033 77.7563 +95.3685 40.765 79.0394 +95.2417 41.429 80.3266 +94.9529 42.0312 81.4944 +94.791 42.6986 82.7883 +94.6109 43.3679 84.086 +95.1134 44.3658 86.021 +94.8903 45.0414 87.3307 +94.7864 45.785 88.7726 +94.3886 46.3969 89.959 +94.7853 47.415 91.9329 +94.4143 48.0649 93.1931 +94.7547 49.0931 95.1866 +94.2101 49.6775 96.3198 +94.2999 50.6103 98.1284 +93.9113 51.3016 99.4686 +94.076 52.3118 101.427 +94.1463 53.2919 103.328 +93.5639 53.9175 104.541 +93.5805 54.904 106.453 +93.6275 55.9308 108.444 +93.4017 56.8154 110.159 +93.3277 57.8133 112.094 +93.2815 58.852 114.108 +93.319 59.9691 116.274 +93.493 61.204 118.668 +93.0039 62.0291 120.268 +93.1615 63.3107 122.753 +92.3391 63.9483 123.989 +95.2029 67.1987 130.292 +114.982 82.7314 160.408 +114.886 84.2766 163.404 +115.054 86.0615 166.865 +114.802 87.5797 169.808 +114.805 89.339 173.219 +114.95 91.2632 176.95 +114.587 92.8369 180.001 +114.464 94.6548 183.526 +114.423 96.5993 187.296 +114.645 98.8343 191.63 +114.837 101.119 196.06 +114.996 103.453 200.585 +114.093 104.894 203.378 +111.828 105.099 203.776 +109.393 105.128 203.833 +106.965 105.147 203.869 +104.627 105.237 204.043 +101.562 104.562 202.736 +99.6075 105.007 203.598 +96.9013 104.642 202.89 +94.9055 105.025 203.633 +92.2656 104.678 202.961 +89.9761 104.703 203.008 +90.8104 108.439 210.252 +90.3535 110.773 214.778 +90.0197 113.37 219.813 +89.8608 116.318 225.53 +89.3033 118.884 230.504 +89.353 122.41 237.34 +89.275 125.945 244.195 +88.7984 129.095 250.303 +88.5886 132.821 257.526 +88.272 136.598 264.85 +88.3142 141.176 273.726 +88.1887 145.764 282.623 +87.8173 150.229 291.28 +87.7332 155.501 301.501 +87.3338 160.56 311.311 +86.865 165.851 321.569 +86.7411 172.222 333.921 +86.4027 178.648 346.381 +84.828 182.933 354.688 +81.9602 184.657 358.033 +80.7504 190.423 369.211 +75.5002 186.728 362.046 +79.7392 207.291 401.917 +75.1132 205.749 398.926 +71.5688 207.127 401.599 +67.0907 205.774 398.975 +63.4908 207.078 401.504 +58.9717 205.325 398.105 +55.3774 206.736 400.84 +46.402 186.683 361.959 +42.888 187.043 362.659 +39.891 189.9 368.197 +35.4811 185.897 360.436 +35.1811 204.905 397.29 +30.7766 201.745 391.164 +27.362 205.063 397.597 +23.6192 206.584 400.546 +19.511 204.839 397.162 +15.7397 206.604 400.584 +11.6775 204.414 396.338 +7.85882 206.377 400.145 +3.8964 204.659 396.814 +2.75659e-14 206.363 400.118 +-3.89378 204.522 396.548 +-7.8466 206.057 399.524 +-11.6802 204.46 396.427 +-15.6908 205.963 399.341 +-19.4324 204.014 395.564 +-23.5773 206.218 399.836 +-27.2399 204.148 395.823 +-31.4253 205.998 399.409 +-35.0555 204.174 395.872 +-39.2637 205.715 398.861 +-42.8622 204.044 395.622 +-47.226 205.962 399.34 +-50.749 204.171 395.868 +-55.0728 205.599 398.635 +-58.541 203.825 395.197 +-63.0176 205.535 398.512 +-66.396 203.643 394.844 +-70.9743 205.407 398.264 +-74.2714 203.443 394.456 +-78.8189 204.898 397.277 +-82.0971 203.043 393.68 +-86.8753 204.867 397.216 +-90.1342 203.074 393.74 +-94.9533 204.768 397.025 +-98.1554 202.948 393.497 +-103.163 204.826 397.137 +-106.404 203.157 393.902 +-111.211 204.459 396.425 +-114.524 202.985 393.569 +-119.704 204.778 397.044 +-122.93 203.187 393.959 +-127.951 204.538 396.579 +-131.357 203.271 394.122 +-136.771 205.061 397.593 +-141.632 205.905 399.23 +-147.339 207.859 403.019 +-148.626 203.611 394.781 +-147.971 196.984 381.932 +-150.714 195.088 378.257 +-162.391 204.514 396.533 +-165.508 202.912 393.426 +-171.192 204.425 396.359 +-175.151 203.818 395.183 +-179.699 203.874 395.292 +-184.874 204.587 396.675 +-190.364 205.57 398.58 +-452.261 476.776 924.421 +-198.203 204.058 395.648 +-201.873 203.049 393.691 +-458.583 450.788 874.033 +-145.943 140.254 271.938 +-146.547 137.728 267.042 +-150.547 138.409 268.361 +-152.995 137.638 266.866 +-115.437 101.647 197.084 +-111.875 96.4462 187 +-112.466 94.9477 184.094 +-113.348 93.7325 181.738 +-115.03 93.1958 180.697 +-116.5 92.494 179.337 +-118.51 92.2217 178.809 +-120.004 91.5479 177.502 +-122.735 91.8069 178.004 +-125.167 91.8179 178.026 +-129.973 93.5171 181.32 +-507.277 358.059 694.241 +-511.48 354.22 686.797 +-514.513 349.652 677.94 +-519.111 346.221 671.288 +-522.241 341.878 662.868 +-526.001 338.022 655.392 +-529.595 334.125 647.835 +-533.734 330.631 641.06 +-536.217 326.177 632.424 +-540.58 322.929 626.127 +-543.506 318.876 618.268 +-545.198 314.178 609.16 +-549.271 310.917 602.837 +-553.77 307.93 597.045 +-558.647 305.176 591.706 +-562.812 302.059 585.662 +-566.113 298.516 578.792 +-570.582 295.622 573.182 +-573.913 292.17 566.488 +-578.238 289.255 560.837 +-581.949 286.059 554.64 +-586.134 283.122 548.945 +-589.695 279.91 542.717 +-594.021 277.082 537.235 +-596.94 273.626 530.534 +-602.34 271.324 526.07 +-605.972 268.236 520.082 +-610.04 265.36 514.506 +-135.154 57.7712 112.013 +-138.829 58.3125 113.062 +-620.898 256.262 496.867 +-626.427 254.042 492.562 +-630.107 251.076 486.811 +-634.635 248.456 481.731 +-141.871 54.5675 105.801 +-143.291 54.144 104.98 +-142.684 52.9627 102.689 +-143.452 52.3045 101.413 +-142.709 51.1077 99.0927 +-142.407 50.0887 97.117 +-142.077 49.0757 95.1528 +-147.829 50.1414 97.2192 +-147.807 49.2246 95.4417 +-665.295 217.525 421.759 +-383.855 123.203 238.878 +-389.482 122.701 237.906 +-386.249 119.421 231.546 +-382.754 116.126 225.156 +-382.434 113.841 220.727 +-383.743 112.061 217.275 +-382.979 109.696 212.69 +-384.711 108.064 209.525 +-383.154 105.529 204.611 +-383.683 103.597 200.865 +-716.982 189.747 367.9 +-732.056 189.851 368.102 +-722.523 183.582 355.948 +-733.988 182.675 354.19 +-738.762 180.055 349.109 +-409.976 97.8277 189.678 +-408.972 95.5184 185.201 +-408.448 93.347 180.991 +-409.67 91.5892 177.582 +-406.976 88.9796 172.523 +-406.388 86.8642 168.421 +-407.845 85.1975 165.189 +-407.715 83.2086 161.333 +-407.908 81.3003 157.633 +-405.114 78.8237 152.831 +-408.447 77.5508 150.363 +-405.365 75.0728 145.559 +-406.686 73.4318 142.377 +-407.788 71.7527 139.121 +-406.797 69.7175 135.175 +-408.672 68.1819 132.198 +-395.532 64.2032 124.484 +-387.095 61.0967 118.46 +-380.752 58.3969 113.226 +-382.039 56.8998 110.323 +-381.391 55.1213 106.875 +-380.418 53.312 103.367 +-383.048 52.0098 100.842 +-381.813 50.185 97.3036 +-381.019 48.4353 93.9113 +-381.058 46.8026 90.7455 +-379.708 45.0126 87.2749 +-380.55 43.492 84.3267 +-381.363 41.9681 81.3721 +-380.979 40.3173 78.1713 +-381.146 38.7323 75.0981 +-381.869 37.2062 72.1391 +-378.937 35.3392 68.5192 +-382.246 34.0582 66.0354 +-380.225 32.3024 62.6311 +-380.431 30.7483 59.618 +-380.509 29.1876 56.5919 +-380.655 27.6357 53.5829 +-381.562 26.1391 50.6812 +-380.857 24.5353 47.5715 +-379.922 22.9271 44.4534 +-379.053 21.3339 41.3644 +-379.445 19.8169 38.423 +-378.913 18.2552 35.395 +-378.45 16.7037 32.3868 +-379.949 15.2371 29.5433 +-377.632 13.6232 26.4141 +-379.573 12.1665 23.5896 +-378.593 10.6141 20.5798 +-378.78 9.09933 17.6427 +-378.539 7.57585 14.6888 +-379.968 6.08217 11.7927 +-145.35 1.74466 3.38272 +-144.678 1.15758 2.24443 +-144.894 0.579609 1.1238 +96.1 0 0 +96.1963 0.391523 0.742602 +96.1853 0.783016 1.48515 +96.167 1.17445 2.22758 +96.1414 1.56579 2.96984 +96.1084 1.95702 3.71188 +96.0682 2.3481 4.45363 +96.9189 2.76461 5.24365 +96.9632 3.16221 5.99777 +96.8007 3.55306 6.7391 +96.7305 3.94689 7.48608 +96.7525 4.3449 8.24097 +96.6675 4.73852 8.98755 +96.5752 5.13177 9.73343 +96.4755 5.5246 10.4785 +96.5667 5.92923 11.246 +97.1453 6.36745 12.0771 +96.1323 6.70053 12.7089 +95.9045 7.08423 13.4367 +95.6697 7.46656 14.1618 +96.3142 7.92045 15.0227 +96.1623 8.31211 15.7656 +95.8068 8.6854 16.4736 +95.8366 9.09358 17.2478 +95.4672 9.46389 17.9502 +95.4817 9.87225 18.7247 +96.1703 10.3549 19.6402 +96.0701 10.7568 20.4024 +95.8652 11.1474 21.1432 +96.4275 11.6305 22.0596 +96.3028 12.0346 22.8261 +95.9776 12.4136 23.5449 +95.7417 12.8038 24.2849 +96.3614 13.3121 25.2491 +96.1086 13.7038 25.9921 +95.8486 14.0944 26.7329 +96.2469 14.5849 27.6632 +96.16 15.0057 28.4612 +95.6865 15.3661 29.1448 +96.2437 15.895 30.1481 +96.6004 16.3978 31.1017 +96.3836 16.8066 31.8771 +95.8787 17.1649 32.5566 +96.6704 17.7595 33.6845 +96.3344 18.1523 34.4294 +95.9911 18.5437 35.1718 +96.4689 19.0976 36.2225 +97.025 19.6755 37.3186 +95.9223 19.9179 37.7782 +96.3649 20.4816 38.8474 +96.1593 20.9124 39.6646 +96.3961 21.4435 40.6719 +96.7102 21.9986 41.7247 +96.2949 22.3913 42.4697 +96.5851 22.9518 43.5327 +96.2407 23.3655 44.3174 +96.5062 23.9315 45.3908 +95.9668 24.3011 46.0919 +96.2956 24.8942 47.2169 +95.8262 25.2852 47.9584 +96.1288 25.8841 49.0944 +95.5547 26.2507 49.7897 +95.8313 26.8548 50.9355 +96.0925 27.4631 52.0893 +96.1687 28.0261 53.1571 +96.3153 28.6169 54.2777 +95.7762 29.0078 55.0192 +95.8135 29.5767 56.0982 +95.2564 29.9656 56.8357 +95.3514 30.5634 57.9696 +95.5131 31.1911 59.1601 +95.6586 31.8224 60.3575 +95.6258 32.4023 61.4576 +95.8197 33.0677 62.7196 +95.1175 33.4284 63.4036 +95.2024 34.0697 64.6201 +95.1917 34.6856 65.7882 +95.2434 35.333 67.0161 +95.2004 35.9541 68.1941 +95.1413 36.5775 69.3765 +95.1427 37.2331 70.6201 +95.1268 37.8915 71.8689 +95.0934 38.5526 73.1227 +95.0425 39.2163 74.3816 +94.8996 39.8513 75.586 +95.33 40.7401 77.2718 +95.3685 41.4764 78.6684 +95.2417 42.1519 79.9496 +95.0967 42.8295 81.2347 +94.791 43.4437 82.3997 +94.6816 44.1576 83.7538 +94.6228 44.9072 85.1756 +94.8903 45.8274 86.9208 +94.6488 46.5163 88.2275 +94.3886 47.2066 89.5367 +94.1773 47.9327 90.914 +94.4812 48.9382 92.8212 +94.7547 49.9498 94.7399 +94.3413 50.6149 96.0013 +94.2999 51.4935 97.6678 +93.847 52.1609 98.9337 +94.0124 53.1888 100.883 +94.1463 54.2219 102.843 +93.5017 54.8221 103.981 +93.4574 55.7884 105.814 +93.6275 56.9068 107.935 +93.4017 57.8069 109.642 +93.3277 58.8222 111.568 +93.3991 59.9546 113.716 +93.319 61.0156 115.728 +93.2635 62.1191 117.821 +93.4004 63.3802 120.213 +93.2734 64.4925 122.323 +92.891 65.4532 124.145 +92.5886 66.4937 126.119 +114.445 83.7815 158.908 +114.886 85.7473 162.637 +114.688 87.2854 165.554 +114.75 89.0679 168.935 +114.45 90.6163 171.872 +114.95 92.8559 176.12 +114.882 94.7004 179.618 +114.464 96.3066 182.665 +114.375 98.244 186.339 +114.645 100.559 190.731 +114.698 102.759 194.903 +114.769 105.05 199.249 +114.271 106.891 202.741 +112.267 107.352 203.614 +110.125 107.678 204.234 +107.387 107.404 203.714 +105.374 107.837 204.534 +102.254 107.111 203.158 +100.246 107.524 203.94 +97.6046 107.24 203.403 +95.2499 107.246 203.414 +92.6027 106.894 202.747 +90.2326 106.833 202.631 +90.5237 109.983 208.604 +90.2484 112.575 213.521 +90.3617 115.787 219.613 +89.6271 118.04 223.887 +89.3685 121.047 229.589 +89.3213 124.502 236.142 +89.0587 127.832 242.459 +88.7984 131.348 249.128 +88.5302 135.049 256.148 +88.4708 139.295 264.201 +88.5072 143.953 273.037 +88.1619 148.263 281.211 +87.7914 152.806 289.827 +87.608 157.989 299.657 +87.237 163.181 309.506 +86.8884 168.791 320.145 +86.6961 175.136 332.181 +85.6884 180.264 341.906 +84.1211 184.574 350.082 +82.7377 189.662 359.733 +79.0712 189.717 359.836 +81.1677 204.248 387.397 +78.3153 207.142 392.886 +69.7986 194.527 368.96 +70.3329 207.103 392.813 +61.2818 191.237 362.72 +57.896 192.126 364.406 +57.6404 204.192 387.29 +50.1249 190.392 361.117 +49.7755 203.75 386.452 +46.5047 206.356 391.396 +42.153 204.17 387.249 +38.8105 206.889 392.406 +34.3337 203.459 385.901 +30.937 206.336 391.358 +26.6904 203.521 386.019 +23.1796 206.277 391.245 +19.0486 203.474 385.93 +15.4221 205.968 390.66 +11.4262 203.505 385.988 +7.70349 205.829 390.396 +3.8039 203.287 385.575 +2.70087e-14 205.72 390.19 +-3.79866 203.007 385.044 +-7.70524 205.876 390.485 +-11.3948 202.946 384.928 +-15.3837 205.455 389.687 +-18.9875 202.822 384.693 +-23.1116 205.671 390.097 +-26.6294 203.056 385.136 +-30.7975 205.406 389.593 +-34.216 202.762 384.578 +-38.5838 205.681 390.115 +-41.8846 202.87 384.784 +-46.3061 205.475 389.724 +-49.4811 202.544 384.166 +-54.0612 205.344 389.476 +-57.1835 202.573 384.221 +-61.7372 204.873 388.583 +-64.8736 202.446 383.979 +-69.5351 204.754 388.356 +-72.6044 202.347 383.792 +-77.4124 204.754 388.356 +-80.2201 201.863 382.874 +-85.2535 204.55 387.971 +-87.9412 201.591 382.357 +-93.2276 204.555 387.98 +-95.8178 201.572 382.323 +-101.093 204.22 387.344 +-103.696 201.442 382.076 +-109.252 204.361 387.612 +-111.92 201.832 382.814 +-117.193 203.981 386.891 +-119.856 201.564 382.307 +-125.636 204.341 387.574 +-128.006 201.542 382.264 +-133.994 204.402 387.69 +-136.43 201.803 382.76 +-144.342 207.184 392.966 +-146.785 204.599 388.063 +-148.101 200.598 380.474 +-147.342 194.053 368.06 +-154.388 197.828 375.22 +-160.815 200.6 380.477 +-167.645 203.682 386.324 +-168.81 199.867 379.089 +-176.252 203.454 385.891 +-179.708 202.341 383.78 +-187.16 205.637 390.033 +-188.568 202.259 383.625 +-194.054 203.273 385.549 +-195.652 200.226 379.77 +-145.719 145.742 276.428 +-146.288 143.038 271.3 +-147.38 140.929 267.299 +-151.663 141.867 269.08 +-471.288 431.38 818.2 +-112.482 100.774 191.137 +-111.875 98.1293 186.122 +-112.896 96.9736 183.93 +-113.833 95.7764 181.659 +-115.621 95.3095 180.774 +-116.8 94.3506 178.955 +-119.068 94.2732 178.808 +-120.673 93.6651 177.655 +-123.31 93.8465 177.999 +-126.651 94.5274 179.29 +-506.029 370.449 702.631 +-508.693 365.324 692.911 +-513.357 361.723 686.081 +-515.688 356.566 676.298 +-520.131 352.954 669.449 +-523.102 348.417 660.844 +-526.93 344.528 653.467 +-530.476 340.522 645.869 +-534.27 336.738 638.691 +-537.18 332.465 630.586 +-541.676 329.23 624.451 +-544.86 325.249 616.9 +-554.785 325.282 616.962 +-554.054 319.097 605.232 +-565.155 319.745 606.46 +-557.875 310.073 588.116 +-561.123 306.408 581.164 +-567.557 304.499 577.544 +-571.775 301.41 571.684 +-575.385 298.031 565.276 +-579.656 295.025 559.574 +-583.518 291.836 553.525 +-587.924 288.942 548.037 +-590.46 285.163 540.869 +-595.563 282.649 536.101 +-598.637 279.193 529.545 +-603.624 276.648 524.718 +-606.26 273.046 517.887 +-611.346 270.568 513.187 +-134.642 58.5569 111.065 +-134.111 57.3135 108.707 +-622.087 261.233 495.481 +-627.7 259.001 491.247 +-631.239 255.916 485.396 +-636.46 253.519 480.849 +-140.876 55.1304 104.566 +-143.136 55.0296 104.375 +-142.995 54.0045 102.43 +-142.904 53.0139 100.552 +-142.472 51.9137 98.4648 +-142.645 51.0477 96.8222 +-143.275 50.3532 95.505 +-149.035 51.4324 97.5519 +-655.223 222.019 421.104 +-660.329 219.669 416.646 +-386.148 126.102 239.177 +-385.444 123.548 234.333 +-384.591 120.984 229.47 +-383.838 118.487 224.735 +-383.943 116.285 220.559 +-381.888 113.465 215.21 +-382.3 111.413 211.317 +-383.944 109.73 208.126 +-384.354 107.707 204.289 +-385.751 105.973 201 +-718.888 193.571 367.147 +-739.889 195.231 370.295 +-723.31 186.99 354.663 +-735.306 186.197 353.161 +-740.528 183.635 348.302 +-748.371 181.691 344.614 +-752.455 178.808 339.145 +-760.068 176.738 335.219 +-410.479 93.3712 177.097 +-407.878 90.7334 172.094 +-408.292 88.7942 168.416 +-407.663 86.6456 164.341 +-407.167 84.5469 160.36 +-409.742 83.0908 157.598 +-410.269 81.2197 154.049 +-404.659 78.1724 148.27 +-407.312 76.7499 145.572 +-407.523 74.8671 142.001 +-405.921 72.6705 137.834 +-404.83 70.5913 133.891 +-406.135 68.9408 130.76 +-394.59 65.1683 123.605 +-385.015 61.8285 117.27 +-382.933 59.7564 113.34 +-379.757 57.5467 109.149 +-381.868 56.1536 106.507 +-381.279 54.3655 103.115 +-382.665 52.8647 100.269 +-382.486 51.1507 97.0177 +-380.538 49.2181 93.3519 +-381.444 47.6678 90.4116 +-380.192 45.8565 86.976 +-381.908 44.409 84.2306 +-379.322 42.4719 80.5564 +-380.881 41.0104 77.7845 +-380.658 39.3578 74.6499 +-380.891 37.7585 71.6166 +-381.289 36.179 68.6208 +-380.184 34.4657 65.371 +-378.946 32.7556 62.1275 +-380.825 31.3174 59.3997 +-379.621 29.6277 56.1948 +-380.161 28.0815 53.2622 +-380.079 26.4919 50.2472 +-379.966 24.905 47.2374 +-379.525 23.3029 44.1986 +-380.344 21.7801 41.3103 +-380.339 20.2102 38.3327 +-378.416 18.5494 35.1827 +-380.54 17.089 32.4128 +-379.052 15.4665 29.3353 +-379.028 13.9122 26.3872 +-379.274 12.3691 23.4604 +-378.093 10.7851 20.4562 +-379.18 9.26791 17.5785 +-379.938 7.73655 14.6739 +-377.67 6.15086 11.6663 +-145.85 1.78121 3.37842 +-145.578 1.18511 2.24779 +-146.394 0.595829 1.13011 +96.2 0 0 +96.1963 0.398205 0.739041 +96.1853 0.796379 1.47802 +96.167 1.19449 2.21689 +97.0408 1.60742 2.98325 +97.0076 2.00904 3.72863 +96.0682 2.38817 4.43227 +97.0187 2.8147 5.22388 +96.0654 3.1864 5.91374 +96.8007 3.6137 6.70678 +96.7305 4.01426 7.45017 +96.7525 4.41905 8.20145 +96.6675 4.81939 8.94445 +96.5752 5.21936 9.68675 +96.4755 5.61889 10.4283 +96.3684 6.018 11.169 +96.2541 6.41668 11.9089 +96.0334 6.80787 12.6349 +95.9045 7.20513 13.3722 +95.6697 7.594 14.0939 +96.4127 8.06388 14.966 +96.1623 8.45398 15.69 +96.0031 8.85171 16.4281 +95.6407 9.22985 17.13 +96.5432 9.73389 18.0654 +95.4817 10.0407 18.6349 +96.1703 10.5316 19.546 +95.9729 10.9293 20.284 +95.8652 11.3376 21.0418 +96.4275 11.829 21.9538 +96.2062 12.2277 22.6938 +95.7849 12.6001 23.385 +96.3184 13.1008 24.3141 +96.1696 13.5124 25.078 +95.9174 13.91 25.8159 +95.6578 14.3065 26.5518 +96.2469 14.8338 27.5305 +96.729 15.3521 28.4923 +96.5374 15.7673 29.263 +96.1494 16.1505 29.9741 +96.6944 16.6939 30.9827 +96.2899 17.0769 31.6934 +96.9056 17.6448 32.7475 +96.6704 18.0626 33.523 +97.0761 18.6042 34.5281 +95.9911 18.8601 35.0031 +96.561 19.4421 36.0832 +96.2913 19.86 36.8588 +96.7445 20.4314 37.9193 +96.3649 20.8311 38.6611 +96.7937 21.4096 39.7347 +96.3961 21.8095 40.4769 +96.171 22.2493 41.293 +96.2054 22.7523 42.2267 +96.5851 23.3435 43.3239 +96.152 23.7424 44.0642 +96.5062 24.3399 45.1731 +96.0547 24.7385 45.9129 +96.3831 25.3421 47.0331 +95.8262 25.7167 47.7284 +96.1288 26.3259 48.859 +96.3301 26.9154 49.953 +95.8313 27.3131 50.6912 +96.0073 27.907 51.7934 +96.1687 28.5044 52.9022 +96.3153 29.1053 54.0174 +95.7762 29.5029 54.7553 +95.8135 30.0815 55.8292 +95.9196 30.6891 56.9569 +95.3514 31.085 57.6916 +95.5131 31.7234 58.8764 +95.6586 32.3655 60.068 +95.7067 32.9832 61.2146 +95.0159 33.35 61.8951 +95.1974 34.0275 63.1525 +95.2024 34.6512 64.3102 +95.9009 35.5404 65.9605 +95.2434 35.936 66.6947 +95.045 36.508 67.7563 +94.987 37.1414 68.9318 +95.1427 37.8686 70.2814 +95.1268 38.5382 71.5242 +95.0934 39.2106 72.772 +95.0425 39.8856 74.0248 +95.5684 40.8171 75.7536 +94.8139 41.2111 76.4849 +95.2223 42.1196 78.171 +95.0966 42.806 79.4449 +95.0967 43.5605 80.8451 +94.791 44.1852 82.0045 +94.823 44.9784 83.4766 +94.6228 45.6737 84.767 +94.8903 46.6095 86.504 +94.6488 47.3102 87.8044 +94.3886 48.0122 89.1073 +94.7853 49.0658 91.0625 +94.4143 49.7384 92.3109 +94.7547 50.8023 94.2855 +94.3413 51.4787 95.5408 +94.2349 52.3363 97.1325 +93.847 53.0512 98.4592 +93.5035 53.8039 99.8563 +94.0205 55.0737 102.213 +93.6885 55.8692 103.689 +93.5805 56.8155 105.446 +93.5058 57.8026 107.278 +93.3415 58.7556 109.046 +93.3277 59.8262 111.033 +93.2815 60.901 113.028 +93.319 62.057 115.173 +93.2062 63.1404 117.184 +93.3437 64.423 119.564 +93.3852 65.6719 121.882 +93.3877 66.9261 124.21 +91.6083 66.9123 124.185 +95.9617 71.4499 132.606 +114.834 87.1705 161.782 +115.106 89.0986 165.361 +114.699 90.5473 168.049 +115.008 92.6126 171.882 +114.55 94.1119 174.665 +114.784 96.2341 178.604 +114.851 98.2819 182.404 +114.804 100.296 186.142 +114.645 102.275 189.816 +114.467 104.303 193.578 +114.542 106.632 197.902 +114.717 109.14 202.556 +113.1 109.994 204.142 +111.33 110.715 205.48 +108.021 109.882 203.933 +106.037 110.368 204.835 +103.311 110.066 204.275 +101.322 110.533 205.142 +98.2689 109.813 203.805 +96.2449 110.216 204.553 +93.2021 109.422 203.08 +91.5154 110.201 204.525 +90.8463 112.259 208.344 +90.2835 114.541 212.58 +90.1223 117.451 217.981 +89.8274 120.324 223.312 +89.6289 123.471 229.154 +89.004 126.177 234.175 +88.9351 129.834 240.962 +88.7383 133.499 247.765 +88.5886 137.445 255.088 +88.4424 141.627 262.849 +88.2591 146 270.966 +87.9749 150.474 279.268 +87.9726 155.734 289.032 +87.5328 160.547 297.964 +87.1887 165.874 307.851 +86.9584 171.81 318.867 +86.6062 177.94 330.244 +84.3032 180.376 334.765 +82.4162 183.92 341.342 +85.3494 198.989 369.309 +79.7772 194.678 361.308 +78.8715 201.857 374.632 +72.4807 194.982 361.872 +70.954 201.122 373.268 +68.3775 204.782 380.06 +63.4102 201.257 373.518 +60.5821 204.471 379.484 +55.7608 200.904 372.864 +52.94 204.517 379.57 +48.2699 200.959 372.965 +45.2295 204.123 378.837 +40.7153 200.572 372.247 +37.7036 204.419 379.387 +33.2823 200.595 372.289 +30.0929 204.132 378.854 +25.8907 200.792 372.657 +22.5411 204.018 378.644 +18.4423 200.36 371.855 +14.9858 203.557 377.788 +11.0624 200.387 371.905 +7.50104 203.841 378.314 +3.67998 200.022 371.226 +2.62617e-14 203.445 377.579 +-3.68085 200.069 371.314 +-7.48708 203.461 377.609 +-11.0205 199.629 370.497 +-14.9719 203.368 377.437 +-18.3725 199.602 370.447 +-22.4992 203.639 377.94 +-25.7564 199.751 370.723 +-29.9953 203.47 377.625 +-33.1019 199.507 370.271 +-37.477 203.19 377.107 +-40.514 199.581 370.407 +-44.9368 202.802 376.386 +-47.851 199.215 369.729 +-52.5135 202.87 376.512 +-55.3039 199.258 369.81 +-60.0949 202.827 376.432 +-62.7747 199.239 369.774 +-67.6735 202.673 376.147 +-70.2278 199.064 369.449 +-75.2765 202.502 375.83 +-77.8328 199.198 369.698 +-82.8683 202.221 375.308 +-85.3295 198.942 369.222 +-90.6495 202.293 375.441 +-93.0474 199.085 369.488 +-98.4836 202.344 375.535 +-100.732 199.023 369.372 +-106.276 202.188 375.246 +-108.314 198.664 368.706 +-114.139 202.056 375.002 +-116.222 198.788 368.936 +-122.162 202.084 375.053 +-124.086 198.705 368.782 +-130.222 202.04 374.971 +-131.95 198.507 368.415 +-139.707 203.953 378.523 +-141.93 201.208 373.428 +-147.971 203.842 378.316 +-147.91 198.124 367.705 +-148.437 193.449 359.027 +-150.449 190.872 354.244 +-163.237 201.711 374.362 +-165.475 199.263 369.817 +-171.495 201.341 373.674 +-172.743 197.818 367.137 +-180.909 202.161 375.196 +-453.457 494.68 918.091 +-455.708 485.506 901.065 +-458.526 477.253 885.747 +-145.634 148.143 274.943 +-146.072 145.265 269.602 +-147.512 143.461 266.254 +-153.581 146.114 271.177 +-475.192 442.378 821.022 +-111.743 101.82 188.971 +-112.251 100.139 185.852 +-113.421 99.0873 183.899 +-114.318 97.8256 181.557 +-116.458 97.6377 181.209 +-117.7 96.6999 179.468 +-119.982 96.6179 179.316 +-121.24 95.7109 177.633 +-124.929 96.7018 179.472 +-128.24 97.3479 180.671 +-507.318 377.731 701.042 +-510.109 372.594 691.507 +-514.792 368.925 684.699 +-517.365 363.831 675.245 +-522.17 360.386 668.85 +-524.65 355.413 659.621 +-528.556 351.49 652.34 +-532.122 347.408 644.765 +-536.292 343.781 638.034 +-538.865 339.2 629.531 +-544.111 336.354 624.249 +-546.707 331.921 616.023 +-564.185 336.439 624.407 +-572.493 335.344 622.375 +-574.697 330.692 613.742 +-581.787 328.882 610.382 +-582.295 323.396 600.199 +-564.736 308.157 571.917 +-572.835 307.122 569.997 +-577.192 304.07 564.332 +-582.156 301.354 559.292 +-584.745 297.441 552.03 +-589.989 294.906 547.324 +-592.544 291.054 540.175 +-597.876 288.59 535.602 +-600.616 284.896 528.747 +-605.264 282.134 523.62 +-608.13 278.563 516.993 +-613.884 276.329 512.847 +-616.385 272.645 506.01 +-621.377 270.083 501.255 +-134.286 57.3534 106.444 +-135.187 56.7325 105.291 +-632.749 260.906 484.223 +-141.664 57.3914 106.514 +-142.178 56.5893 105.026 +-141.747 55.4257 102.866 +-143.383 55.0756 102.216 +-142.435 53.7418 99.7409 +-142.472 52.7998 97.9926 +-142.566 51.89 96.3041 +-147.189 52.6114 97.6431 +-149.115 52.3387 97.1369 +-668.329 230.325 427.467 +-383.774 129.847 240.987 +-385.083 127.9 237.374 +-672.24 219.154 406.734 +-387.658 124.03 230.191 +-383.921 120.536 223.705 +-383.44 118.115 219.213 +-383.321 115.835 214.982 +-382.215 113.289 210.256 +-382.068 111.058 206.116 +-389.154 110.914 205.848 +-716.875 200.301 371.744 +-721.226 197.515 366.574 +-722.395 193.869 359.806 +-725.585 190.779 354.072 +-739.349 190.416 353.399 +-742.559 187.282 347.582 +-411.928 101.716 188.777 +-2919.38 705.581 1309.51 +-410.775 97.1472 180.298 +-408.592 94.5284 175.438 +-412.572 93.344 173.24 +-408.926 90.4496 167.868 +-406.389 87.8488 163.041 +-407.167 85.9898 159.591 +-405.891 83.7144 155.368 +-407.784 82.1054 152.382 +-405.86 79.7428 147.997 +-406.57 77.9175 144.609 +-406.22 75.9011 140.867 +-405.641 73.86 137.079 +-404.83 71.7961 133.249 +-406.793 70.2313 130.344 +-385.446 64.7446 120.161 +-385.015 62.8838 116.708 +-382.08 60.6406 112.545 +-381.374 58.7783 109.088 +-381.582 57.0688 105.916 +-381.183 55.2791 102.594 +-380.172 53.4164 99.137 +-382.486 52.0237 96.5523 +-381.116 50.1344 93.0459 +-380.575 48.3708 89.7728 +-381.063 46.746 86.7573 +-380.55 45.0063 83.5284 +-380.975 43.385 80.5195 +-380.394 41.657 77.3124 +-379.779 39.9371 74.1204 +-379.13 38.2255 70.9437 +-379.819 36.6546 68.0284 +-379.203 34.9634 64.8895 +-379.831 33.3924 61.9739 +-380.825 31.8519 59.1148 +-379.621 30.1333 55.9253 +-381.05 28.6276 53.1307 +-378.991 26.8669 49.8631 +-380.362 25.3565 47.0599 +-379.922 23.7254 44.0326 +-379.947 22.1287 41.0693 +-380.737 20.5766 38.1888 +-378.913 18.8907 35.0599 +-379.246 17.3216 32.1476 +-379.55 15.7511 29.2329 +-379.826 14.1794 26.316 +-378.376 12.5504 23.2926 +-379.99 11.0242 20.4602 +-378.281 9.40375 17.4527 +-378.439 7.83752 14.5459 +-378.169 6.26414 11.6258 +-145.65 1.80912 3.35761 +-146.878 1.21609 2.25698 +-144.295 0.597308 1.10856 +96.3 0 0 +96.1963 0.404856 0.735418 +96.0854 0.808842 1.46925 +96.167 1.21444 2.20603 +96.1414 1.61912 2.94111 +97.0076 2.0426 3.71036 +96.0682 2.42806 4.41055 +97.0187 2.86171 5.19827 +96.9632 3.2699 5.93975 +96.8007 3.67406 6.6739 +96.7305 4.0813 7.41365 +96.7525 4.49286 8.16125 +96.5681 4.89482 8.89141 +96.5752 5.30653 9.63927 +96.4755 5.71274 10.3771 +96.3684 6.11852 11.1142 +96.2541 6.52386 11.8505 +96.0334 6.92158 12.573 +95.9045 7.32548 13.3067 +95.6697 7.72084 14.0248 +96.3142 8.19017 14.8774 +96.1623 8.59518 15.6131 +96.0031 8.99956 16.3476 +95.6407 9.38402 17.046 +95.6628 9.80624 17.8129 +95.4817 10.2084 18.5436 +96.1703 10.7075 19.4502 +95.9729 11.1119 20.1846 +95.8652 11.527 20.9387 +96.4275 12.0266 21.8462 +95.4335 12.3321 22.4011 +95.7849 12.8106 23.2703 +95.7417 13.2398 24.05 +96.1696 13.7381 24.9551 +95.9174 14.1423 25.6894 +95.6578 14.5454 26.4217 +95.391 14.9474 27.1519 +96.729 15.6085 28.3527 +96.5374 16.0307 29.1196 +96.1494 16.4202 29.8272 +96.6944 16.9727 30.8308 +96.2899 17.3621 31.5381 +96.999 17.9568 32.6183 +96.6704 18.3643 33.3587 +96.3344 18.7704 34.0964 +95.9911 19.1752 34.8315 +96.4689 19.748 35.8721 +96.2913 20.1917 36.6781 +96.7445 20.7727 37.7334 +96.3649 21.1791 38.4716 +96.703 21.7469 39.503 +96.3961 22.1738 40.2785 +95.9912 22.5786 41.0138 +96.2054 23.1324 42.0198 +96.5851 23.7334 43.1115 +96.152 24.1389 43.8482 +96.4179 24.7238 44.9106 +96.0547 25.1517 45.6879 +96.2956 25.742 46.7601 +95.8262 26.1463 47.4945 +96.2154 26.7897 48.6633 +96.3301 27.3649 49.7082 +95.8313 27.7693 50.4427 +96.0073 28.3731 51.5395 +96.1687 28.9805 52.6429 +96.3153 29.5915 53.7526 +95.7762 29.9957 54.4869 +95.8135 30.584 55.5555 +95.9196 31.2017 56.6777 +95.3514 31.6042 57.4088 +95.5131 32.2533 58.5878 +95.6586 32.9061 59.7736 +95.0595 33.3074 60.5026 +95.0159 33.907 61.5918 +95.1175 34.5668 62.7903 +95.2024 35.23 63.995 +95.1917 35.8668 65.1518 +95.2434 36.5362 66.3678 +95.2004 37.1785 67.5344 +94.987 37.7618 68.5939 +95.9088 38.8111 70.5 +95.1268 39.1819 71.1737 +95.7726 40.1503 72.9326 +95.0425 40.5518 73.662 +94.8996 41.2084 74.8547 +94.8139 41.8994 76.11 +95.3685 42.8889 77.9073 +95.0966 43.521 79.0555 +94.9529 44.221 80.3272 +94.791 44.9232 81.6026 +94.823 45.7296 83.0675 +94.6228 46.4365 84.3515 +94.2651 47.0758 85.5128 +94.6488 48.1004 87.374 +95.0024 49.132 89.2478 +94.7853 49.8853 90.6162 +94.3474 50.533 91.7927 +94.7547 51.6508 93.8233 +93.8164 52.0473 94.5434 +94.2349 53.2105 96.6564 +93.847 53.9372 97.9766 +93.5035 54.7026 99.3668 +94.0834 56.0307 101.779 +93.6885 56.8024 103.181 +93.4574 57.6883 104.79 +93.5058 58.7681 106.752 +93.2813 59.6988 108.442 +93.3277 60.8254 110.489 +93.3403 61.9573 112.545 +93.319 63.0935 114.609 +93.1488 64.1554 116.538 +93.3437 65.499 118.978 +93.3293 66.7288 121.212 +93.3877 68.0439 123.601 +92.9699 69.0412 125.413 +95.9617 72.6433 131.956 +96.9752 74.8438 135.953 +115.106 90.5868 164.55 +115.317 92.5559 168.127 +115.008 94.1594 171.04 +115 96.06 174.492 +114.784 97.8415 177.728 +114.851 99.9234 181.51 +114.804 101.971 185.23 +114.645 103.984 188.885 +114.467 106.045 192.629 +114.269 108.155 196.463 +114.717 110.963 201.563 +114.196 112.915 205.109 +111.33 112.564 204.472 +110.008 113.772 206.665 +106.037 112.211 203.831 +105.101 113.843 206.795 +101.322 112.379 204.136 +100.262 113.911 206.919 +96.2449 112.057 203.55 +95.1875 113.62 206.389 +91.5154 112.042 203.523 +90.2729 113.413 206.014 +90.2835 116.454 211.538 +89.9855 119.231 216.583 +89.8274 122.333 222.217 +89.7266 125.67 228.279 +89.004 128.284 233.027 +89.275 132.507 240.697 +88.7383 135.729 246.551 +88.7933 140.064 254.424 +88.4424 143.992 261.561 +88.2315 148.392 269.553 +87.9749 152.987 277.899 +87.8949 158.196 287.361 +87.5328 163.229 296.503 +87.3338 168.926 306.852 +86.9584 174.679 317.304 +84.0417 175.556 318.896 +84.3032 183.389 333.124 +85.4933 193.973 352.35 +85.3494 202.312 367.498 +78.9377 195.846 355.754 +78.8715 205.228 372.796 +71.4562 195.436 355.008 +70.954 204.481 371.439 +64.2476 195.627 355.355 +63.4102 204.618 371.688 +56.894 195.231 354.635 +55.7608 204.26 371.037 +49.7105 195.249 354.668 +48.2699 204.315 371.137 +42.5535 195.254 354.677 +40.7153 203.922 370.423 +35.3678 194.958 354.139 +33.2823 203.945 370.465 +28.2932 195.129 354.451 +25.8907 204.146 370.83 +21.2275 195.338 354.829 +18.4423 203.707 370.032 +14.1238 195.053 354.312 +11.0624 203.734 370.082 +7.03681 194.419 353.16 +3.67998 203.363 369.406 +2.46881e-14 194.448 353.214 +-3.68085 203.411 369.494 +-7.03681 194.419 353.16 +-11.0205 202.963 368.681 +-14.0819 194.474 353.261 +-18.3725 202.936 368.631 +-21.1123 194.278 352.905 +-25.7564 203.087 368.906 +-28.2165 194.6 353.49 +-33.1019 202.839 368.456 +-35.1499 193.756 351.957 +-40.514 202.914 368.592 +-42.2713 193.959 352.325 +-47.851 202.542 367.916 +-49.2961 193.621 351.712 +-55.3039 202.587 367.997 +-56.4208 193.607 351.685 +-62.7747 202.567 367.962 +-63.4967 193.341 351.202 +-70.2278 202.389 367.638 +-70.7269 193.441 351.385 +-77.8328 202.525 367.886 +-77.831 193.101 350.766 +-85.3295 202.265 367.413 +-85.1814 193.265 351.065 +-93.0474 202.411 367.677 +-92.3649 192.942 350.477 +-100.732 202.347 367.561 +-99.9379 193.305 351.137 +-108.314 201.982 366.898 +-107.255 193.04 350.656 +-116.222 202.108 367.128 +-114.996 193.406 351.32 +-124.086 202.024 366.975 +-122.358 193.008 350.598 +-131.95 201.823 366.609 +-130.034 193.004 350.59 +-141.93 204.569 371.597 +-139.539 195.437 355.009 +-147.91 201.433 365.902 +-147.547 195.501 355.126 +-150.449 194.06 352.508 +-147.11 184.82 335.724 +-165.475 202.591 368.005 +-160.819 191.96 348.694 +-172.743 201.122 365.337 +-169.851 192.974 350.536 +-453.457 502.942 913.591 +-178.11 192.925 350.447 +-458.526 485.224 881.405 +-145.972 150.967 274.23 +-146.072 147.692 268.281 +-152.202 150.495 273.374 +-153.581 148.554 269.848 +-112.544 106.523 193.498 +-111.743 103.521 188.045 +-112.908 102.408 186.023 +-113.421 100.742 182.998 +-115.579 100.556 182.659 +-116.458 99.2685 180.32 +-119.35 99.6934 181.092 +-119.982 98.2316 178.437 +-124.227 99.7074 181.118 +-124.929 98.317 178.592 +-507.292 391.518 711.19 +-507.318 384.04 697.606 +-513.758 381.527 693.04 +-514.792 375.087 681.343 +-521.28 372.707 677.019 +-522.17 366.405 665.572 +-528.436 363.957 661.124 +-528.556 357.361 649.143 +-535.649 355.552 645.857 +-536.292 349.523 634.906 +-543.258 347.677 631.552 +-544.111 341.972 621.19 +-560.252 345.826 628.19 +-564.185 342.058 621.346 +-573.122 341.32 620.005 +-574.697 336.216 610.733 +-580.887 333.858 606.45 +-582.295 328.797 597.257 +-590.519 327.608 595.097 +-572.835 312.252 567.203 +-583.883 312.732 568.075 +-582.156 306.387 556.55 +-589.315 304.772 553.616 +-589.989 299.832 544.641 +-597.128 298.204 541.686 +-597.876 293.41 532.977 +-604.364 291.462 529.439 +-605.264 286.846 521.054 +-613.165 285.561 518.719 +-613.884 280.944 510.333 +-621.431 279.468 507.652 +-621.377 274.594 498.798 +-629.369 273.292 496.433 +-135.187 57.6801 104.775 +-137.206 57.5205 104.485 +-141.664 58.35 105.992 +-137.505 55.6435 101.076 +-141.747 56.3515 102.362 +-141.518 55.2668 100.392 +-142.435 54.6394 99.2521 +-142.866 53.8297 97.7812 +-142.566 52.7567 95.832 +-149.105 54.1866 98.4295 +-149.115 53.2129 96.6608 +-682.406 239.104 434.331 +-383.774 132.016 239.806 +-692.02 233.684 424.485 +-672.24 222.814 404.74 +-385.337 125.346 227.691 +-383.921 122.549 222.609 +-381.931 119.615 217.28 +-383.321 117.77 213.928 +-382.979 115.411 209.644 +-382.068 112.913 205.106 +-715.478 207.326 376.606 +-716.875 203.646 369.921 +-741.837 206.553 375.202 +-722.395 197.107 358.043 +-737.392 197.122 358.07 +-739.349 193.597 351.667 +-749.181 192.108 348.963 +-411.928 103.415 187.852 +-761.632 187.152 339.96 +-410.775 98.7699 179.415 +-773.682 181.982 330.569 +-412.572 94.9031 172.391 +-407.204 91.573 166.342 +-406.389 89.3161 162.242 +-410.182 88.0733 159.984 +-405.891 85.1126 154.606 +-406.863 83.2882 151.292 +-405.86 81.0747 147.271 +-405.55 79.0202 143.54 +-406.22 77.1688 140.177 +-405.174 75.0073 136.25 +-404.83 72.9953 132.595 +-394.953 69.3258 125.93 +-385.446 65.826 119.572 +-382.651 63.5415 115.423 +-382.08 61.6535 111.993 +-381.659 59.8049 108.635 +-381.582 58.022 105.397 +-381.087 56.1884 102.066 +-380.172 54.3086 98.6511 +-380.467 52.6134 95.5719 +-381.116 50.9718 92.5899 +-380.575 49.1788 89.3328 +-381.063 47.5268 86.3321 +-379.677 45.6529 82.9282 +-380.975 44.1096 80.1248 +-380.394 42.3528 76.9334 +-379.779 40.6041 73.7571 +-381.869 39.1447 71.1059 +-379.819 37.2669 67.695 +-379.595 35.5842 64.6383 +-379.831 33.9502 61.6702 +-380.037 32.3168 58.7032 +-379.621 30.6366 55.6512 +-380.161 29.0378 52.747 +-378.991 27.3157 49.6187 +-379.471 25.7196 46.7195 +-379.922 24.1216 43.8167 +-379.053 22.4454 40.7719 +-380.737 20.9203 38.0016 +-380.206 19.2718 35.0071 +-379.246 17.6109 31.99 +-379.55 16.0142 29.0896 +-379.826 14.4162 26.187 +-378.875 12.7768 23.209 +-379.99 11.2084 20.3599 +-379.679 9.59612 17.4313 +-378.439 7.96843 14.4746 +-378.569 6.37547 11.581 +-145.65 1.83934 3.34115 +-146.978 1.23725 2.24745 +-144.295 0.607285 1.10313 +96.1 0 0 +96.0963 0.411047 0.730975 +96.9852 0.829759 1.47558 +96.167 1.2343 2.19498 +96.1414 1.64558 2.92638 +96.1084 2.05675 3.65757 +96.168 2.47031 4.39302 +96.1204 2.88156 5.12435 +96.9632 3.32335 5.91001 +96.8007 3.73412 6.64049 +96.8301 4.15229 7.38413 +96.7525 4.56631 8.12038 +96.6675 4.97998 8.85604 +96.5752 5.39328 9.59101 +96.4755 5.80613 10.3252 +96.3684 6.21854 11.0586 +96.2541 6.6305 11.7912 +96.9236 7.09992 12.626 +95.9045 7.44522 13.24 +95.6697 7.84705 13.9546 +96.3142 8.32406 14.8029 +95.9657 8.71784 15.5032 +96.0031 9.14667 16.2658 +95.8366 9.55697 16.9954 +95.4672 9.94615 17.6875 +95.4817 10.3753 18.4507 +96.1703 10.8826 19.3528 +95.0978 11.1905 19.9004 +95.8652 11.7154 20.8339 +95.653 12.125 21.5622 +96.3028 12.6479 22.4921 +95.9776 13.0462 23.2004 +96.6068 13.5778 24.1458 +96.1696 13.9627 24.8302 +96.1086 14.4022 25.6118 +96.5162 14.9158 26.5252 +96.2469 15.3281 27.2584 +96.16 15.7703 28.0448 +96.5374 16.2927 28.9738 +96.1494 16.6886 29.6779 +96.6004 17.2334 30.6466 +96.2899 17.6459 31.3802 +96.999 18.2503 32.455 +96.5773 18.6465 33.1596 +96.3344 19.0773 33.9256 +96.8226 19.6574 34.9573 +96.4689 20.0708 35.6924 +96.2913 20.5218 36.4944 +96.7445 21.1123 37.5445 +96.3649 21.5253 38.2789 +96.7937 22.123 39.342 +96.3961 22.5362 40.0768 +95.9912 22.9477 40.8084 +96.2949 23.5324 41.8482 +95.7832 23.9211 42.5395 +96.152 24.5335 43.6286 +96.5062 25.151 44.7266 +96.7578 25.7499 45.7918 +96.2956 26.1628 46.526 +96.6095 26.7909 47.643 +96.1288 27.2031 48.376 +95.6408 27.6133 49.1054 +95.8313 28.2233 50.1902 +96.0073 28.8369 51.2815 +96.0838 29.4283 52.3332 +95.5563 29.8381 53.062 +95.6084 30.4326 54.1191 +95.8135 31.0839 55.2773 +95.4222 31.5473 56.1015 +96.0931 32.3707 57.5657 +95.677 32.8367 58.3944 +95.6586 33.444 59.4743 +95.7067 34.0823 60.6095 +95.8197 34.7528 61.8018 +95.1974 35.1613 62.5283 +95.1231 35.776 63.6215 +95.1917 36.4531 64.8255 +95.8695 37.3776 66.4695 +95.2004 37.7862 67.1962 +95.1413 38.4414 68.3613 +95.1427 39.1304 69.5867 +95.1268 39.8224 70.8173 +94.9425 40.4529 71.9384 +95.0425 41.2147 73.2932 +95.5684 42.1772 75.0048 +95.4774 42.8824 76.2588 +94.7103 43.2891 76.9822 +95.2417 44.2999 78.7797 +95.0967 45.012 80.046 +94.791 45.6575 81.194 +94.823 46.4771 82.6515 +95.1134 47.4403 84.3644 +94.8903 48.1627 85.6489 +94.5799 48.8511 86.8732 +94.3886 49.6121 88.2265 +94.7177 50.6645 90.098 +94.4143 51.3958 91.3984 +94.1583 52.1648 92.766 +94.2757 53.1574 94.5311 +94.3648 54.1548 96.3049 +93.9113 54.8567 97.5531 +94.0124 55.8992 99.4071 +94.0834 56.9467 101.27 +94.1242 57.999 103.141 +93.3958 58.5926 104.197 +93.384 59.6508 106.079 +93.2813 60.6747 107.899 +93.2087 61.7408 109.795 +93.3991 63.0098 112.052 +93.0867 63.9656 113.752 +93.5503 65.4855 116.455 +93.1172 66.408 118.095 +93.4411 67.901 120.75 +92.6702 68.6249 122.037 +93.1333 70.2934 125.005 +92.5767 71.2261 126.663 +91.676 71.9104 127.88 +94.6245 75.685 134.593 +114.853 93.6905 166.612 +114.957 95.6565 170.108 +114.55 97.248 172.939 +114.587 99.2703 176.535 +114.803 101.514 180.525 +114.28 103.165 183.46 +114.692 105.727 188.016 +114.698 107.995 192.051 +114.36 110.011 195.635 +114.316 112.382 199.851 +114.503 115.069 204.631 +114.128 117.28 208.562 +112.374 118.119 210.054 +110.474 118.818 211.298 +107.134 117.943 209.741 +105.11 118.487 210.708 +102.059 117.849 209.574 +100.148 118.507 210.744 +97.0606 117.749 209.397 +95.2537 118.525 210.777 +92.2081 117.738 209.377 +90.2134 118.266 210.315 +90.1223 121.365 215.826 +90.0945 124.703 221.762 +89.7917 127.817 227.301 +89.2895 130.799 232.604 +89.2441 134.626 239.409 +88.7984 138.041 245.483 +88.5302 141.931 252.4 +88.4708 146.393 260.335 +88.3418 151.006 268.538 +87.2533 154.212 274.24 +87.0408 159.22 283.144 +86.7316 164.378 292.318 +85.4468 167.977 298.718 +83.947 171.387 304.781 +86.5837 183.822 326.896 +84.195 186.147 331.031 +81.6261 188.226 334.728 +76.976 185.446 329.784 +74.6445 188.223 334.721 +70.2336 185.739 330.305 +67.6707 188.108 334.518 +63.3948 185.683 330.205 +60.6966 187.835 334.033 +56.5371 185.422 329.741 +53.9157 188.035 334.387 +49.7305 185.148 329.253 +47.005 187.64 333.686 +43.1078 185.448 329.787 +40.2435 187.673 333.743 +36.4118 185.349 329.612 +33.4504 187.403 333.263 +29.6889 184.9 328.812 +26.7865 187.758 333.895 +23.1435 185.468 329.823 +20.0551 187.567 333.555 +16.4969 185.197 329.341 +13.3735 187.71 333.809 +9.8818 184.967 328.932 +6.66507 187.158 332.829 +3.2899 184.778 328.596 +2.33716e-14 187.089 332.705 +-3.28816 184.68 328.422 +-6.66856 187.256 333.003 +-9.88965 185.114 329.193 +-13.3142 186.877 332.328 +-16.4532 184.707 328.47 +-19.9714 186.783 332.162 +-23.0214 184.49 328.083 +-26.6679 186.927 332.417 +-29.6575 184.704 328.465 +-33.3196 186.67 331.96 +-36.2201 184.373 327.876 +-40.0553 186.795 332.183 +-42.8814 184.474 328.055 +-46.7978 186.813 332.215 +-49.5608 184.517 328.131 +-53.4564 186.433 331.539 +-56.0198 183.725 326.723 +-60.1178 186.044 330.848 +-62.7181 183.701 326.681 +-66.9587 186.129 330.998 +-69.3953 183.522 326.362 +-73.7668 186.009 330.785 +-76.0788 183.285 325.94 +-80.545 185.733 330.294 +-82.9397 183.372 326.095 +-87.551 185.876 330.548 +-89.8064 183.35 326.055 +-94.4947 185.764 330.35 +-96.7468 183.36 326.074 +-101.483 185.638 330.125 +-103.635 183.166 325.728 +-108.877 186.108 330.96 +-110.908 183.52 326.359 +-116.13 186.179 331.087 +-117.967 183.385 326.118 +-123.298 185.997 330.763 +-125.018 183.138 325.68 +-130.553 185.84 330.485 +-132.421 183.288 325.946 +-139.784 188.242 334.755 +-141.204 185.112 329.189 +-147.074 187.795 333.961 +-146.894 182.781 325.044 +-146.658 177.919 316.398 +-148.864 176.153 313.258 +-159.965 184.714 328.482 +-162.45 183.124 325.653 +-147.727 162.631 289.21 +-146.055 157.086 279.35 +-147.071 154.59 274.911 +-153.692 157.936 280.863 +-473.09 475.432 845.473 +-112.531 110.627 196.731 +-112.499 108.22 192.45 +-113.544 106.909 190.119 +-114.645 105.683 187.94 +-116.474 105.146 186.983 +-117.421 103.829 184.642 +-119.856 103.835 184.653 +-121.65 103.276 183.658 +-125.057 104.061 185.054 +-128.141 104.53 185.889 +-508.443 406.676 723.203 +-511.054 400.87 712.878 +-515.861 396.891 705.802 +-518.714 391.504 696.223 +-522.85 387.186 688.543 +-525.697 382.009 679.337 +-530.723 378.494 673.086 +-532.91 373.038 663.383 +-538.254 369.866 657.743 +-540.292 364.496 648.193 +-544.917 360.95 641.887 +-547.832 356.335 633.681 +-169.723 108.414 192.795 +-2017.21 1265.52 2250.51 +-575.826 354.823 630.992 +-578.408 350.099 622.591 +-583.665 347.045 617.159 +-586.415 342.545 609.156 +-591.972 339.725 604.143 +-594.258 335.072 595.867 +-583.901 323.487 575.265 +-587.095 319.593 568.34 +-592.56 316.961 563.66 +-595.248 312.873 556.391 +-599.763 309.782 550.893 +-602.477 305.794 543.801 +-607.478 302.996 538.825 +-610.657 299.311 532.273 +-615.535 296.482 527.242 +-618.632 292.816 520.723 +-624.04 290.26 516.177 +-626.916 286.544 509.569 +-631.994 283.852 504.781 +-635.24 280.35 498.555 +-141.028 61.156 108.755 +-142.565 60.7438 108.022 +-142.652 59.7175 106.197 +-143.48 59.0107 104.94 +-141.979 57.3657 102.015 +-141.674 56.232 99.9989 +-142.983 55.7458 99.1342 +-146.412 56.0678 99.7069 +-675.778 254.162 451.983 +-678.92 250.76 445.934 +-685.529 248.634 442.153 +-387.6 138.029 245.461 +-386.461 135.114 240.276 +-698.327 239.669 426.209 +-704.71 237.395 422.165 +-708.413 234.207 416.496 +-714.557 231.817 412.247 +-383.44 122.051 217.046 +-381.972 119.274 212.108 +-728.473 223.115 396.771 +-735.317 220.861 392.764 +-739.221 217.708 387.156 +-741.26 214.015 380.589 +-726.162 205.494 365.435 +-737.104 204.408 363.504 +-738.354 200.605 356.741 +-745.413 198.375 352.775 +-755.097 196.79 349.957 +-762.918 194.662 346.172 +-768.315 191.881 341.226 +-776.177 189.68 337.313 +-2944.9 704.007 1251.95 +-415.46 97.1294 172.728 +-412.551 94.2924 167.683 +-412.576 92.1583 163.888 +-413.379 90.2105 160.424 +-822.97 175.392 311.905 +-412.938 85.9138 152.783 +-409.371 83.1126 147.801 +-409.444 81.0829 144.192 +-406.313 78.4484 139.507 +-408.068 76.778 136.536 +-393.402 72.0942 128.207 +-392.04 69.9395 124.375 +-381.016 66.133 117.606 +-379.437 64.0381 113.881 +-380.278 62.3657 110.907 +-381.374 60.737 108.01 +-381.582 58.9705 104.869 +-380.801 57.0638 101.478 +-382.761 55.5723 98.8257 +-381.525 53.622 95.3574 +-381.598 51.8702 92.2422 +-381.637 50.1219 89.1331 +-382.031 48.4264 86.118 +-380.841 46.5415 82.766 +-381.072 44.8421 79.7439 +-380.979 43.1113 76.6659 +-381.439 41.4482 73.7085 +-380.206 39.6113 70.4419 +-380.211 37.9152 67.4256 +-380.184 36.222 64.4145 +-381.7 34.6748 61.6631 +-379.643 32.8111 58.3488 +-380.213 31.186 55.4589 +-380.754 29.5585 52.5647 +-380.87 27.8998 49.615 +-381.451 26.2765 46.7282 +-380.517 24.5544 43.6657 +-380.046 22.8721 40.674 +-380.041 21.2234 37.7422 +-379.609 19.5561 34.7771 +-379.843 17.927 31.88 +-379.65 16.2803 28.9516 +-379.925 14.6558 26.0627 +-378.476 12.972 23.0685 +-377.794 11.3258 20.1409 +-380.278 9.76837 17.3714 +-379.538 8.12222 14.4439 +-379.169 6.48998 11.5413 +-379.37 4.86919 8.659 +-146.778 1.25576 2.23315 +-145.494 0.622344 1.10673 +96.2 0 0 +96.0963 0.417624 0.727237 +96.0854 0.835219 1.45442 +96.167 1.25405 2.18376 +97.0408 1.68756 2.93866 +97.0076 2.10921 3.6729 +96.9669 2.53069 4.40687 +96.1204 2.92767 5.09814 +96.0654 3.34527 5.82534 +96.9004 3.79778 6.61333 +96.8301 4.21874 7.34637 +96.7525 4.63938 8.07886 +96.6675 5.05968 8.81075 +96.5752 5.47958 9.54196 +96.4755 5.89904 10.2724 +96.3684 6.31805 11.002 +96.2541 6.73661 11.7309 +96.0334 7.1473 12.4461 +95.8058 7.55655 13.1587 +95.6697 7.97262 13.8833 +96.3142 8.45726 14.7272 +95.9657 8.85735 15.4239 +95.8068 9.27407 16.1495 +95.6407 9.69004 16.8739 +95.4672 10.1053 17.597 +95.4817 10.5413 18.3564 +96.1703 11.0567 19.2538 +95.9729 11.4742 19.9808 +95.7682 11.8909 20.7063 +96.5243 12.4313 21.6474 +96.2062 12.8374 22.3546 +95.9776 13.2549 23.0817 +96.6068 13.7951 24.0224 +96.1696 14.1861 24.7032 +95.9174 14.6035 25.4301 +95.8486 15.0497 26.207 +96.4371 15.6042 27.1726 +95.9704 15.9911 27.8463 +96.5374 16.5534 28.8256 +96.2437 16.9723 29.5551 +96.6944 17.5262 30.5195 +96.3836 17.9457 31.2501 +96.9056 18.5245 32.258 +96.5773 18.9449 32.9901 +96.3344 19.3826 33.7521 +96.8226 19.972 34.7785 +96.561 20.4115 35.5438 +96.2913 20.8502 36.3078 +96.7445 21.4501 37.3525 +96.3649 21.8697 38.0832 +95.978 22.2877 38.811 +96.3961 22.8969 39.8719 +96.6204 23.4677 40.8659 +96.2949 23.9089 41.6342 +96.5851 24.5074 42.6763 +96.152 24.9261 43.4055 +95.7115 25.3431 44.1315 +96.7578 26.162 45.5576 +96.2956 26.5815 46.2881 +96.6095 27.2196 47.3993 +96.1288 27.6384 48.1286 +95.6408 28.0552 48.8543 +95.8313 28.6749 49.9335 +96.0073 29.2984 51.0192 +95.4902 29.7145 51.7438 +95.6406 30.3424 52.8373 +95.6084 30.9196 53.8423 +95.8135 31.5813 54.9947 +95.9196 32.2192 56.1055 +95.3514 32.6349 56.8293 +95.677 33.3622 58.0958 +95.6586 33.9791 59.1701 +95.6258 34.5984 60.2486 +95.659 35.2497 61.3826 +95.1974 35.724 62.2086 +95.2024 36.3789 63.3489 +95.1917 37.0365 64.494 +95.8695 37.9757 66.1296 +95.2004 38.3909 66.8526 +95.1413 39.0565 68.0118 +95.1427 39.7566 69.2308 +95.1268 40.4597 70.4551 +94.9425 41.1002 71.5705 +95.0425 41.8742 72.9184 +94.8996 42.5522 74.099 +94.8139 43.2658 75.3416 +95.2223 44.2196 77.0025 +95.0966 44.9402 78.2574 +94.9529 45.6631 79.5162 +94.791 46.3882 80.7788 +94.6816 47.1505 82.1063 +94.4826 47.8798 83.3763 +94.8903 48.9334 85.2109 +94.6488 49.669 86.4919 +94.3886 50.406 87.7754 +94.7177 51.4752 89.6372 +94.4143 52.2182 90.9311 +94.0258 52.9249 92.1616 +94.2757 54.008 94.0477 +94.2999 54.9836 95.7465 +93.9113 55.7345 97.0542 +93.9488 56.7554 98.832 +94.0834 57.858 100.752 +93.6262 58.6154 102.071 +93.4574 59.5695 103.732 +93.5058 60.6845 105.674 +93.3415 61.685 107.416 +93.6251 63.0092 109.722 +93.3403 63.9778 111.409 +93.2609 65.1107 113.382 +93.1488 66.2476 115.361 +93.1172 67.4707 117.491 +92.9938 68.6574 119.558 +92.5598 69.6404 121.269 +92.4797 70.9167 123.492 +92.8454 72.576 126.381 +91.994 73.3146 127.668 +91.7507 74.561 129.838 +114.75 95.1046 165.612 +114.957 97.1872 169.239 +115 99.1926 172.731 +114.587 100.859 175.632 +114.803 103.139 179.602 +114.709 105.209 183.208 +114.504 107.243 186.749 +114.837 109.857 191.301 +114.406 111.816 194.712 +114.36 114.225 198.907 +114.108 116.508 202.883 +114.085 119.112 207.417 +113.05 120.731 210.237 +111.47 121.807 212.111 +108.111 120.922 210.569 +105.948 121.342 211.3 +103.231 121.11 210.896 +101.181 121.646 211.83 +98.072 120.881 210.497 +96.2066 121.627 211.796 +93.1757 120.878 210.492 +91.2991 121.604 211.757 +89.9513 123.073 214.315 +89.8608 126.369 220.055 +89.6615 129.675 225.811 +89.3213 132.94 231.497 +89.1205 136.591 237.855 +88.6781 140.06 243.896 +88.5009 144.155 251.026 +88.3288 148.497 258.588 +88.2591 153.279 266.915 +88.055 158.12 275.344 +86.0056 159.843 278.346 +85.8052 165.225 287.717 +83.9227 167.621 291.89 +86.7483 179.94 313.342 +86.0888 185.696 323.365 +82.312 184.896 321.972 +79.5886 186.465 324.704 +75.4807 184.754 321.724 +72.7746 186.444 324.667 +68.557 184.206 320.771 +65.9342 186.214 324.267 +61.8103 183.94 320.306 +59.1322 185.923 323.759 +55.1033 183.611 319.735 +52.4126 185.718 323.403 +48.5688 183.717 319.918 +45.7985 185.75 323.458 +42.0437 183.765 320.002 +39.1773 185.624 323.24 +35.5013 183.606 319.726 +32.6485 185.837 323.611 +29.0063 183.539 319.609 +26.1098 185.943 323.796 +22.588 183.913 320.259 +19.5318 185.595 323.19 +16.1043 183.683 319.86 +13.014 185.587 323.176 +9.65406 183.596 319.708 +6.48531 185.025 322.196 +3.21398 183.403 319.371 +2.27593e-14 185.103 322.332 +-3.20787 183.054 318.764 +-6.48706 185.074 322.282 +-9.61741 182.899 318.494 +-12.9791 185.089 322.308 +-16.0388 182.937 318.56 +-19.4742 185.048 322.236 +-22.4475 182.769 318.268 +-25.9494 184.801 321.806 +-28.92 182.993 318.658 +-32.4219 184.547 321.364 +-35.3383 182.764 318.259 +-38.9787 184.683 321.601 +-41.7154 182.33 317.503 +-45.4451 184.316 320.962 +-48.2294 182.433 317.683 +-52.0368 184.386 321.084 +-54.6304 182.035 316.99 +-58.4752 183.857 320.162 +-61.1501 181.975 316.885 +-65.066 183.762 319.997 +-67.6641 181.808 316.594 +-71.8396 184.049 320.496 +-74.2047 181.631 316.286 +-78.4451 183.786 320.038 +-80.732 181.347 315.792 +-85.2564 183.901 320.238 +-87.6587 181.829 316.63 +-92.0513 183.857 320.162 +-94.6687 182.293 317.438 +-98.9465 183.894 320.227 +-101.283 181.874 316.709 +-105.9 183.916 320.265 +-108.267 182.016 316.957 +-112.885 183.872 320.189 +-115.351 182.188 317.255 +-120.084 184.048 320.494 +-122.289 182.007 316.941 +-127.069 183.776 320.022 +-129.45 182.043 317.004 +-134.346 183.814 320.087 +-137.281 182.849 318.408 +-143.276 185.872 323.672 +-145.831 184.362 321.042 +-146.658 180.766 314.78 +-145.955 175.476 305.567 +-151.369 177.585 309.241 +-154.276 176.692 307.686 +-146.018 163.322 284.404 +-146.47 160.053 278.711 +-149.691 159.862 278.378 +-157.137 164.06 285.688 +-175.042 178.723 311.222 +-112.397 112.264 195.492 +-112.862 110.307 192.084 +-114.19 109.238 190.223 +-115.067 107.77 187.667 +-117.047 107.354 186.942 +-118.342 106.318 185.139 +-121.185 106.667 185.746 +-122.9 106.007 184.596 +-127.341 107.657 187.47 +-130.253 107.953 187.986 +-510.951 415.222 723.054 +-513.439 409.185 712.542 +-517.849 404.797 704.899 +-520.729 399.315 695.353 +-525.334 395.251 688.277 +-528.493 390.187 679.458 +-532.818 386.07 672.289 +-535.434 380.802 663.116 +-540.054 377.042 656.568 +-542.702 371.981 647.755 +-547.594 368.528 641.742 +-555.776 367.287 639.582 +-1994.61 1294.48 2254.17 +-574.597 366.247 637.77 +-581.802 364.243 634.28 +-580.926 357.249 622.102 +-586.973 354.596 617.482 +-588.729 349.4 608.433 +-593.596 346.108 602.702 +-583.696 334.383 582.283 +-586.485 330.118 574.856 +-589.236 325.891 567.496 +-594.519 323.098 562.632 +-596.953 318.79 555.131 +-602.517 316.184 550.592 +-605.047 312.013 543.329 +-610.702 309.478 538.915 +-613.274 305.404 531.821 +-618.602 302.728 527.16 +-621.222 298.748 520.229 +-627.086 296.345 516.046 +-628.964 292.081 508.619 +-635.386 289.942 504.895 +-638.287 286.203 498.384 +-142.376 62.7288 109.234 +-143.168 61.9768 107.924 +-143.337 60.9644 106.161 +-142.408 59.5068 103.623 +-142.056 58.3156 101.549 +-142.451 57.4451 100.033 +-147.287 58.343 101.597 +-148.067 57.609 100.318 +-136.298 52.0823 90.6943 +-682.115 255.972 445.741 +-688.503 253.709 441.8 +-692.033 250.385 436.013 +-387.926 137.796 239.954 +-701.44 244.59 425.92 +-707.924 242.293 421.922 +-711.397 238.957 416.112 +-717.142 236.379 411.622 +-385.621 124.709 217.164 +-728.1 230.993 402.244 +-731.357 227.582 396.304 +-738.216 225.28 392.295 +-742.393 222.14 386.828 +-748.67 219.614 382.428 +-753.269 216.576 377.138 +-759.908 214.103 372.832 +-749.724 206.954 360.383 +-755.695 204.33 355.813 +-2892.98 766.018 1333.92 +-759.37 196.857 342.8 +-770.275 195.449 340.348 +-2932.25 728.046 1267.8 +-783.838 190.383 331.527 +-2957.32 702.45 1223.22 +-412.551 95.8013 166.825 +-2981.49 676.639 1178.28 +-410.639 91.0465 158.545 +-409.926 88.7622 154.568 +-409.533 86.5686 150.748 +-409.741 84.5188 147.178 +-406.57 81.8023 142.448 +-405.29 79.5031 138.444 +-408.441 78.0778 135.962 +-388.813 72.3933 126.063 +-387.529 70.241 122.315 +-382.335 67.4238 117.41 +-383.03 65.6789 114.371 +-382.649 63.7586 111.027 +-382.325 61.8628 107.726 +-382.44 60.0491 104.568 +-381.757 58.1229 101.213 +-383.24 56.5323 98.4435 +-381.909 54.5354 94.9661 +-380.73 52.5808 91.5624 +-381.83 50.9498 88.7223 +-382.515 49.2637 85.7861 +-382.976 47.5514 82.8043 +-380.683 45.5132 79.2552 +-380.881 43.7899 76.2543 +-381.244 42.09 73.294 +-382.456 40.4833 70.4963 +-380.995 38.6013 67.2191 +-380.184 36.8016 64.0851 +-380.421 35.1117 61.1424 +-381.515 33.5004 58.3365 +-380.213 31.6851 55.1753 +-381.643 30.1016 52.418 +-380.079 28.2874 49.2588 +-380.56 26.6346 46.3806 +-380.517 24.9473 43.4424 +-380.641 23.2745 40.5294 +-380.041 21.5631 37.5492 +-380.206 19.9003 34.6537 +-379.843 18.2138 31.717 +-378.853 16.506 28.743 +-380.025 14.8942 25.9362 +-380.172 13.2387 23.0534 +-379.99 11.5739 20.1544 +-378.88 9.88824 17.219 +-379.039 8.24133 14.3512 +-379.269 6.59558 11.4853 +-379.57 4.94972 8.61927 +-147.777 1.28455 2.23687 +-145.494 0.632303 1.10107 +96.2 0 0 +96.0963 0.424168 0.72344 +96.1853 0.849186 1.44833 +96.167 1.2737 2.17235 +96.1414 1.69811 2.89622 +97.0076 2.14226 3.65372 +96.168 2.54917 4.34774 +96.1204 2.97354 5.07152 +95.9657 3.39416 5.78891 +95.9034 3.81761 6.51112 +96.7305 4.28043 7.30049 +96.653 4.70722 8.0284 +96.6675 5.13896 8.76475 +96.5752 5.56544 9.49214 +96.3762 5.9853 10.2082 +96.3684 6.41705 10.9446 +96.2541 6.84216 11.6697 +96.0334 7.25929 12.3811 +95.8058 7.67495 13.09 +95.6697 8.09754 13.8108 +96.1172 8.57223 14.6204 +96.1623 9.01454 15.3748 +95.8068 9.41938 16.0652 +95.6407 9.84187 16.7858 +95.4672 10.2637 17.5052 +95.4817 10.7065 18.2605 +96.1703 11.23 19.1533 +95.9729 11.654 19.8765 +95.7682 12.0772 20.5982 +95.653 12.5121 21.3399 +96.3028 13.0516 22.2602 +95.9776 13.4626 22.9612 +95.7417 13.8858 23.6829 +96.1696 14.4084 24.5742 +95.9174 14.8323 25.2973 +95.6578 15.2551 26.0184 +96.2469 15.8174 26.9774 +95.9704 16.2416 27.7009 +96.5374 16.8128 28.6751 +96.1494 17.2214 29.3719 +96.6944 17.8008 30.3602 +96.2899 18.2092 31.0567 +95.8787 18.6154 31.7495 +96.6704 19.2603 32.8495 +97.0761 19.8379 33.8344 +96.8226 20.2849 34.5969 +96.561 20.7313 35.3582 +97.025 21.3382 36.3934 +96.7445 21.7862 37.1575 +95.7279 22.0656 37.6339 +96.1593 22.6797 38.6813 +96.3961 23.2556 39.6637 +95.9912 23.6802 40.3878 +96.2054 24.261 41.3784 +95.7832 24.6847 42.101 +96.9503 25.5269 43.5374 +96.5062 25.9539 44.2656 +95.9668 26.3547 44.9492 +96.3831 27.0225 46.0882 +95.8262 27.422 46.7695 +96.0422 28.0462 47.8342 +95.6408 28.4948 48.5992 +95.8313 29.1242 49.6728 +96.0073 29.7575 50.7528 +95.4054 30.1533 51.428 +96.3153 31.0352 52.9322 +95.7762 31.4592 53.6552 +95.9803 32.132 54.8027 +95.2564 32.4979 55.4267 +95.3514 33.1462 56.5325 +95.5131 33.8269 57.6935 +95.6586 34.5116 58.8612 +95.6258 35.1406 59.934 +95.0963 35.5914 60.7029 +95.1175 36.2533 61.8318 +95.2024 36.9489 63.0182 +95.1917 37.6168 64.1573 +95.3217 38.3504 65.4085 +95.2781 39.0243 66.5579 +95.2185 39.7007 67.7116 +95.2193 40.4121 68.9248 +95.8112 41.3893 70.5915 +95.7726 42.1092 71.8194 +95.6416 42.7985 72.9949 +94.9739 43.2528 73.7699 +94.8876 43.9779 75.0066 +95.3685 44.9815 76.7181 +95.2417 45.7141 77.9676 +94.8809 46.3435 79.0411 +94.791 47.115 80.357 +94.6816 47.8893 81.6775 +94.6228 48.7022 83.064 +94.8903 49.7001 84.766 +94.6488 50.4473 86.0403 +94.3886 51.1959 87.3171 +94.7853 52.3192 89.233 +94.3474 52.9985 90.3916 +94.6884 54.133 92.3265 +94.2757 54.8543 93.5567 +93.9102 55.6145 94.8532 +93.847 56.5689 96.4811 +93.9488 57.6447 98.3159 +94.0205 58.7256 100.159 +93.6262 59.5338 101.538 +93.5805 60.5829 103.327 +93.384 61.555 104.985 +93.4017 62.692 106.924 +93.2682 63.7527 108.733 +93.693 65.2255 111.245 +93.319 66.1719 112.859 +93.1488 67.2856 114.759 +93.0039 68.4449 116.736 +92.9379 69.6912 118.862 +92.615 70.7736 120.708 +92.9699 72.4098 123.499 +92.8991 73.7557 125.794 +92.6299 74.9782 127.879 +91.4372 75.4704 128.718 +96.5696 81.2905 138.645 +114.501 98.318 167.686 +115.05 100.79 171.903 +114.587 102.439 174.715 +114.851 104.799 178.74 +114.757 106.902 182.327 +114.551 108.968 185.85 +114.698 111.443 190.071 +114.36 113.523 193.619 +114.36 116.015 197.869 +114.283 118.515 202.134 +113.999 120.887 206.179 +113.853 123.494 210.625 +111.926 124.222 211.867 +108.883 123.695 210.967 +106.745 124.171 211.779 +103.817 123.706 210.986 +101.794 124.3 211.999 +99.1209 124.088 211.638 +96.5731 124.003 211.493 +93.7491 123.527 210.682 +91.6143 123.936 211.379 +89.5067 124.384 212.142 +89.8942 128.397 218.988 +89.4336 131.372 224.061 +89.4799 135.263 230.697 +89.1205 138.731 236.613 +88.6781 142.255 242.623 +88.7348 146.8 250.375 +88.414 150.97 257.486 +88.2315 155.632 265.439 +88.0283 160.549 273.824 +86.2903 162.886 277.809 +84.8287 165.904 282.958 +83.6808 169.757 289.529 +86.8417 182.956 312.041 +85.009 186.24 317.642 +81.0566 184.93 315.406 +78.3411 186.418 317.945 +74.444 185.072 315.649 +71.4007 185.79 316.875 +67.7369 184.855 315.28 +64.7187 185.645 316.627 +61.1171 184.727 315.061 +58.0685 185.439 316.275 +54.6008 184.787 315.164 +51.5358 185.472 316.332 +48.112 184.84 315.255 +45.0307 185.498 316.375 +41.6248 184.784 315.159 +38.5292 185.414 316.233 +35.1562 184.671 314.965 +32.0297 185.172 315.82 +28.6611 184.197 314.157 +25.6355 185.426 316.254 +22.3438 184.775 315.143 +19.2387 185.675 316.677 +15.9211 184.439 314.57 +12.7627 184.856 315.281 +9.53626 184.197 314.157 +6.39456 185.294 316.028 +3.17384 183.95 313.736 +2.23919e-14 184.968 315.473 +-3.17559 184.051 313.908 +-6.38409 184.991 315.511 +-9.52317 183.944 313.726 +-12.7697 184.957 315.453 +-15.8731 183.883 313.622 +-19.155 184.866 315.299 +-22.2766 184.219 314.195 +-25.5239 184.619 314.877 +-28.5591 183.541 313.038 +-31.8903 184.366 314.445 +-34.9837 183.765 313.42 +-38.341 184.509 314.689 +-41.3192 183.428 312.845 +-44.7992 184.544 314.748 +-47.7726 183.537 313.031 +-51.1879 184.22 314.197 +-54.0982 183.087 312.264 +-57.6617 184.14 314.06 +-60.556 183.03 312.167 +-64.1804 184.101 313.993 +-67.0262 182.915 311.971 +-70.6757 183.904 313.657 +-73.6665 183.139 312.352 +-77.1976 183.697 313.304 +-80.1692 182.905 311.953 +-83.8393 183.678 313.271 +-86.8417 182.956 312.041 +-90.5756 183.744 313.384 +-93.567 182.994 312.106 +-97.3936 183.845 313.556 +-100.295 182.921 311.98 +-104.356 184.075 313.949 +-107.159 182.977 312.077 +-110.897 183.464 312.907 +-113.787 182.534 311.32 +-117.983 183.66 313.241 +-120.925 182.797 311.769 +-124.888 183.452 312.886 +-128.082 182.941 312.015 +-132.054 183.509 312.984 +-134.865 182.446 311.17 +-140.552 185.196 315.861 +-143.815 184.663 314.952 +-146.733 183.693 313.297 +-146.836 179.3 305.805 +-147.149 175.339 299.05 +-149.611 174.034 296.823 +-146.222 166.113 283.313 +-147.216 163.389 278.669 +-150.959 163.742 279.27 +-166.909 176.993 301.871 +-118.492 122.879 209.577 +-112.888 114.521 195.321 +-113.18 112.351 191.62 +-114.791 111.533 190.225 +-115.631 109.995 187.602 +-117.62 109.569 186.875 +-119.118 108.692 185.379 +-121.727 108.822 185.602 +-124.2 108.807 185.575 +-128.915 110.695 188.795 +-507.364 427.089 728.422 +-511.735 422.376 720.382 +-514.87 416.755 710.797 +-519.139 412.163 702.965 +-522.418 406.887 693.965 +-525.83 401.824 685.33 +-529.723 397.223 677.483 +-533.498 392.619 669.631 +-536.753 387.722 661.278 +-540.576 383.32 653.772 +-544.583 379.119 646.606 +-549.378 375.522 640.471 +-563.78 378.415 645.406 +-574.488 378.681 645.859 +-575.028 372.265 634.916 +-580.184 368.921 629.213 +-584.576 365.127 622.743 +-590.281 362.182 617.72 +-591.107 356.308 607.701 +-595.024 352.378 600.998 +-584.089 339.851 579.633 +-587.877 336.086 573.212 +-590.842 331.9 566.072 +-596.141 329.056 561.221 +-598.726 324.747 553.872 +-603.756 321.799 548.844 +-606.715 317.775 541.981 +-611.333 314.652 536.655 +-615.254 311.191 530.752 +-619.244 307.79 524.951 +-623.452 304.518 519.37 +-628.029 301.441 514.123 +-632.255 298.209 508.611 +-636.049 294.792 502.783 +-142.089 64.7101 110.366 +-142.901 63.9464 109.064 +-142.414 62.6161 106.795 +-143.489 61.9854 105.719 +-142.637 60.5368 103.249 +-141.979 59.197 100.963 +-142.606 58.409 99.6194 +-148.617 59.7928 101.98 +-150.037 59.2901 101.122 +-679.348 263.661 449.686 +-136.726 52.1123 88.8802 +-689.227 257.955 439.955 +-693.328 254.784 434.547 +-387.519 139.809 238.451 +-385.329 136.468 232.753 +-385.114 133.874 228.329 +-713.718 243.493 415.29 +-718.393 240.501 410.187 +-723.521 237.652 405.327 +-728.859 234.857 400.56 +-733.731 231.899 395.515 +-738.983 229.048 390.653 +-743.678 226.012 385.475 +-750.221 223.517 381.219 +-755.347 220.576 376.204 +-761.561 217.931 371.693 +-766.254 214.831 366.406 +-772.304 212.093 361.735 +-755.891 203.286 346.714 +-760.08 200.128 341.328 +-767.602 197.822 337.396 +-777.25 196.006 334.299 +-2944.9 726.48 1239.05 +-792.289 191.141 326 +-412.098 97.1957 165.772 +-412.576 95.1002 162.198 +-412.557 92.9051 158.454 +-3004.75 660.818 1127.06 +-409.717 87.9645 150.028 +-410.572 86.0177 146.707 +-408.703 83.5201 142.448 +-408.825 81.4534 138.923 +-406.574 78.9386 134.634 +-387.595 73.2975 125.013 +-384.334 70.7533 120.673 +-382.335 68.4803 116.797 +-382.179 66.5598 113.521 +-382.554 64.742 110.421 +-382.039 62.7851 107.083 +-382.44 60.99 104.022 +-381.757 59.0336 100.685 +-382.281 57.2745 97.6845 +-381.044 55.2644 94.2563 +-382.465 53.6479 91.4992 +-382.7 51.866 88.4601 +-382.031 49.9723 85.2302 +-382.005 48.1741 82.1633 +-381.558 46.3327 79.0226 +-382.343 44.6467 76.1472 +-380.56 42.6728 72.7806 +-381.575 41.023 69.9668 +-381.779 39.2868 67.0056 +-381.755 37.5327 64.0138 +-379.93 35.6158 60.7445 +-379.643 33.8585 57.7473 +-380.903 32.2399 54.9868 +-380.754 30.5021 52.0228 +-380.376 28.7531 49.0398 +-380.065 27.0167 46.0784 +-379.228 25.2524 43.0692 +-379.649 23.5775 40.2127 +-380.24 21.9124 37.3727 +-379.012 20.1487 34.3645 +-380.938 18.5526 31.6424 +-379.351 16.7867 28.6306 +-380.822 15.1593 25.855 +-379.174 13.4108 22.8728 +-379.191 11.7305 20.007 +-380.078 10.0749 17.1833 +-379.938 8.39035 14.3102 +-378.769 6.69007 11.4103 +-377.97 5.00609 8.53813 +-146.778 1.29585 2.21013 +-146.694 0.647506 1.10435 +96.1 0 0 +96.0963 0.430677 0.719584 +96.0854 0.861324 1.43912 +97.0667 1.30534 2.18099 +96.1414 1.72417 2.88078 +96.2083 2.15721 3.60431 +97.0668 2.61248 4.36498 +96.1204 3.01917 5.04449 +95.9657 3.44624 5.75805 +96.8007 3.91246 6.537 +96.7305 4.34612 7.26158 +96.653 4.77946 7.98561 +96.6675 5.21782 8.71803 +96.4758 5.64499 9.43176 +96.4755 6.08342 10.1643 +96.3684 6.51552 10.8863 +96.2541 6.94716 11.6074 +96.1323 7.37829 12.3278 +95.9045 7.80079 13.0337 +95.5711 8.21333 13.723 +96.1172 8.70378 14.5424 +96.1623 9.15288 15.2928 +95.8068 9.56393 15.9796 +95.8366 10.0134 16.7306 +95.6628 10.4425 17.4476 +95.4817 10.8708 18.1632 +96.1703 11.4023 19.0512 +95.9729 11.8329 19.7706 +95.7682 12.2625 20.4884 +95.5562 12.6912 21.2047 +96.3028 13.2519 22.1416 +95.9776 13.6692 22.8388 +95.7417 14.0989 23.5567 +96.1696 14.6295 24.4432 +96.1086 15.09 25.2126 +95.8486 15.5201 25.9312 +96.2469 16.0601 26.8336 +95.9704 16.4909 27.5532 +96.5374 17.0708 28.5222 +96.1494 17.4857 29.2154 +96.6944 18.074 30.1984 +96.2899 18.4886 30.8912 +96.9056 19.1035 31.9185 +96.6704 19.5559 32.6744 +96.2417 19.9692 33.3649 +96.8226 20.5962 34.4125 +96.4689 21.0293 35.1362 +96.2913 21.5019 35.9257 +95.9223 21.9325 36.6453 +96.3649 22.5533 37.6824 +96.1593 23.0277 38.4751 +96.3961 23.6125 39.4523 +96.171 24.0886 40.2478 +96.2949 24.6562 41.1961 +95.7832 25.0635 41.8766 +96.2407 25.7289 42.9884 +96.5062 26.3521 44.0296 +95.9668 26.7591 44.7097 +96.2956 27.4123 45.8009 +95.9132 27.8681 46.5625 +96.1288 28.5023 47.6222 +96.3301 29.1405 48.6885 +95.8313 29.5711 49.408 +96.0073 30.2141 50.4823 +96.0838 30.8338 51.5176 +95.6406 31.2908 52.2812 +95.7762 31.942 53.3692 +95.8135 32.5684 54.4159 +95.2564 32.9966 55.1313 +96.0931 33.9167 56.6686 +95.5131 34.346 57.386 +95.6586 35.0412 58.5474 +95.7067 35.71 59.665 +95.0159 36.1071 60.3283 +95.1175 36.8097 61.5023 +95.7577 37.7347 63.0479 +95.9009 38.4786 64.2908 +95.3217 38.9389 65.0598 +95.2004 39.5908 66.1491 +95.2185 40.31 67.3507 +95.1427 40.9992 68.5023 +95.1268 41.7243 69.7137 +95.0934 42.4522 70.9299 +95.6416 43.4553 72.6059 +94.8996 43.8822 73.3192 +94.8139 44.6181 74.5488 +95.3685 45.6718 76.3092 +95.2417 46.4156 77.552 +94.9529 47.0903 78.6794 +94.791 47.838 79.9287 +94.6816 48.6242 81.2422 +95.1134 49.706 83.0497 +94.8903 50.4628 84.3142 +94.6488 51.2214 85.5817 +94.3204 51.944 86.789 +94.7853 53.1221 88.7574 +94.3474 53.8118 89.9098 +94.7547 55.0022 91.8987 +94.2757 55.696 93.058 +94.2349 56.6631 94.6737 +93.847 57.437 95.9668 +93.9488 58.5293 97.7919 +94.2093 59.7464 99.8255 +93.6262 60.4474 100.997 +93.4574 61.4314 102.641 +93.384 62.4996 104.426 +93.3415 63.613 106.286 +93.3277 64.7721 108.222 +93.2227 65.8942 110.097 +93.2609 67.1457 112.188 +93.1488 68.3182 114.147 +93.1172 69.5795 116.255 +92.8819 70.718 118.157 +92.4494 71.7313 119.85 +92.9699 73.521 122.84 +93.0066 74.9744 125.269 +92.7889 76.2593 127.415 +91.594 76.76 128.252 +94.87 81.0852 135.479 +114.957 100.225 167.458 +115 102.293 170.913 +114.538 103.967 173.709 +114.851 106.407 177.787 +114.757 108.543 181.355 +114.504 110.595 184.783 +114.698 113.153 189.058 +114.36 115.265 192.587 +114.584 118.025 197.198 +114.283 120.334 201.056 +114.172 122.928 205.39 +114.065 125.622 209.891 +112.382 126.643 211.597 +109.656 126.484 211.333 +107.104 126.5 211.358 +104.13 125.983 210.494 +101.794 126.207 210.869 +99.3082 126.23 210.907 +96.9396 126.383 211.163 +94.1074 125.902 210.359 +91.7894 126.079 210.655 +89.4383 126.196 210.85 +89.8608 130.319 217.74 +89.8894 134.068 224.003 +89.5116 137.387 229.549 +89.0278 140.713 235.107 +88.6781 144.438 241.329 +88.7348 149.053 249.041 +88.414 153.286 256.114 +88.2866 158.119 264.189 +88.055 163.062 272.447 +86.1091 165.038 275.749 +84.5283 167.854 280.453 +85.2291 175.551 293.314 +86.795 185.664 310.211 +84.2442 187.397 313.107 +80.7103 186.965 312.385 +77.4055 187.018 312.473 +74.1051 187.056 312.537 +70.9046 187.331 312.996 +67.4636 186.934 312.334 +64.3019 187.28 312.911 +60.9686 187.105 312.619 +57.6461 186.915 312.301 +54.32 186.658 311.872 +51.1739 186.997 312.437 +47.877 186.76 312.043 +44.7139 187.019 312.474 +41.3305 186.294 311.263 +38.1633 186.472 311.56 +35.0029 186.687 311.92 +31.8118 186.734 311.999 +28.512 186.051 310.857 +25.4681 187.042 312.514 +22.2339 186.688 311.922 +19.066 186.832 312.162 +15.8426 186.345 311.349 +12.7034 186.82 312.142 +9.48914 186.1 310.939 +6.34569 186.7 311.942 +3.16599 186.31 311.291 +2.22266e-14 186.42 311.475 +-3.16075 186.002 310.776 +-6.33522 186.392 311.427 +-9.47867 185.894 310.596 +-12.6755 186.41 311.457 +-15.8338 186.243 311.179 +-19.0032 186.216 311.133 +-22.1057 185.612 310.123 +-25.3286 186.018 310.802 +-28.4963 185.948 310.685 +-31.6463 185.762 310.375 +-34.8016 185.613 310.126 +-38.0484 185.91 310.622 +-41.2173 185.784 310.411 +-44.3604 185.541 310.005 +-47.5376 185.436 309.831 +-50.6868 185.217 309.463 +-53.8174 184.932 308.987 +-57.1455 185.292 309.589 +-60.2754 184.978 309.065 +-63.5726 185.156 309.362 +-66.8804 185.319 309.634 +-70.0078 184.961 309.037 +-73.1282 184.59 308.417 +-76.4699 184.758 308.697 +-79.6065 184.408 308.113 +-83.0969 184.845 308.842 +-86.4448 184.915 308.96 +-89.753 184.869 308.883 +-93.0913 184.858 308.864 +-96.4877 184.93 308.984 +-99.8403 184.886 308.911 +-103.226 184.876 308.894 +-106.534 184.701 308.603 +-110.166 185.052 309.189 +-113.336 184.6 308.434 +-116.932 184.818 308.797 +-120.354 184.725 308.642 +-124.041 185.004 309.109 +-127.247 184.538 308.33 +-130.925 184.733 308.655 +-134.34 184.524 308.306 +-139.584 186.744 312.015 +-143.412 186.971 312.394 +-146.808 186.607 311.786 +-146.836 182.052 304.175 +-146.173 176.848 295.481 +-148.016 174.821 292.094 +-146.425 168.896 282.194 +-147.299 165.99 277.339 +-151.678 167.046 279.104 +-166.651 179.431 299.797 +-114.941 121.026 202.213 +-112.531 115.91 193.665 +-113.452 114.35 191.058 +-114.698 113.153 189.058 +-116.335 112.363 187.738 +-118.288 111.883 186.935 +-119.99 111.168 185.742 +-122.416 111.118 185.658 +-125.1 111.277 185.924 +-129.219 112.659 188.233 +-508.343 434.48 725.937 +-512.258 429.295 717.274 +-515.823 423.934 708.317 +-519.3 418.618 699.435 +-523.071 413.647 691.13 +-526.217 408.29 682.178 +-530.506 403.915 674.869 +-533.951 398.983 666.628 +-537.9 394.513 659.16 +-541.389 389.788 651.265 +-545.288 385.436 643.993 +-550.33 381.945 638.161 +-167.305 114.02 190.507 +-170.271 113.958 190.404 +-575.52 378.301 632.072 +-579.748 374.301 625.389 +-588.729 373.365 623.824 +-589.708 367.383 613.831 +-596.828 365.277 610.312 +-596.258 358.527 599.034 +-584.286 345.183 576.738 +-588.473 341.59 570.735 +-592.85 338.138 564.967 +-596.141 334.105 558.229 +-599.34 330.069 551.485 +-604.306 327.035 546.416 +-607.34 322.984 539.648 +-611.754 319.701 534.162 +-615.678 316.184 528.287 +-620.599 313.197 523.295 +-624.099 309.512 517.139 +-628.464 306.279 511.737 +-632.767 303.031 506.309 +-637.155 299.836 500.972 +-141.643 65.4967 109.433 +-143.125 65.0299 108.653 +-142.867 63.7794 106.564 +-143.108 62.7697 104.877 +-141.795 61.1027 102.092 +-141.67 59.975 100.207 +-143.15 59.5318 99.4668 +-148.852 60.8059 101.596 +-675.877 271.184 453.099 +-680.221 268.051 447.864 +-136.726 52.9121 88.4065 +-138.344 52.5721 87.8384 +-694.541 259.147 432.987 +-386.623 141.626 236.631 +-387.459 139.328 232.793 +-387.669 136.83 228.618 +-714.216 247.402 413.365 +-719.393 244.532 408.569 +-724.024 241.467 403.447 +-729.449 238.654 398.748 +-735.258 235.948 394.226 +-740.006 232.885 389.109 +-744.793 229.824 383.995 +-751.513 227.338 379.84 +-756.387 224.269 374.713 +-762.083 221.427 369.965 +-767.304 218.427 364.951 +-772.92 215.519 360.093 +-771.608 210.697 352.036 +-760.878 203.413 339.866 +-766.355 200.531 335.051 +-775.461 198.556 331.751 +-2944.9 737.629 1232.44 +-792.199 194.052 324.225 +-411.011 98.4264 164.453 +-804.861 188.37 314.732 +-411.826 94.1639 157.331 +-3004.75 670.959 1121.05 +-409.256 89.2142 149.061 +-407.154 86.6105 144.71 +-410.279 85.1284 142.234 +-407.151 82.3644 137.616 +-408.441 80.5182 134.531 +-387.876 74.4762 124.436 +-384.146 71.8042 119.972 +-380.544 69.2056 115.63 +-382.462 67.631 112.999 +-382.269 65.6867 109.751 +-382.8 63.8754 106.724 +-382.44 61.926 103.467 +-381.757 59.9395 100.148 +-382.281 58.1534 97.1638 +-381.621 56.1973 93.8954 +-382.85 54.5262 91.1033 +-381.637 52.5156 87.744 +-381.16 50.6235 84.5826 +-381.617 48.8637 81.6423 +-381.558 47.0437 78.6014 +-380.686 45.1355 75.4132 +-381.732 43.4611 72.6155 +-380.597 41.5458 69.4154 +-379.525 39.6542 66.255 +-379.792 37.9127 63.3452 +-380.421 36.2092 60.4989 +-380.53 34.4583 57.5736 +-379.424 32.6075 54.4813 +-381.248 31.0103 51.8126 +-379.584 29.1336 48.677 +-381.451 27.5314 46 +-380.517 25.727 42.9852 +-380.542 23.9957 40.0924 +-378.65 22.1556 37.018 +-378.714 20.4417 34.1544 +-380.739 18.8274 31.4572 +-379.351 17.0443 28.478 +-379.128 15.3234 25.6027 +-380.072 13.6488 22.8047 +-378.692 11.8949 19.8741 +-380.378 10.2376 17.1052 +-379.738 8.51458 14.2263 +-380.068 6.81605 11.3884 +-380.67 5.11921 8.55327 +-146.978 1.31752 2.20134 +-146.694 0.657442 1.09847 +96.2 0 0 +95.9963 0.436696 0.714924 +96.0854 0.874272 1.43129 +96.0671 1.31132 2.14679 +96.1414 1.75009 2.86511 +96.1084 2.18737 3.58098 +96.0682 2.62447 4.29657 +96.1204 3.06456 5.01705 +96.7637 3.52714 5.77435 +96.0031 3.93855 6.44787 +96.8301 4.416 7.22952 +96.7525 4.85631 7.95035 +96.8664 5.30715 8.68844 +96.5752 5.7358 9.39018 +96.4755 6.17486 10.109 +96.3684 6.61347 10.827 +96.2541 7.0516 11.5443 +96.0334 7.48149 12.2481 +95.9045 7.91806 12.9628 +96.4587 8.41426 13.7751 +96.3142 8.85271 14.4929 +95.9657 9.2715 15.1785 +96.0031 9.72756 15.9252 +95.6407 10.1431 16.6055 +95.6628 10.5995 17.3526 +95.4817 11.0342 18.0644 +95.2934 11.4681 18.7747 +95.7784 11.9864 19.6232 +95.8652 12.4595 20.3976 +95.653 12.895 21.1107 +96.2062 13.4376 21.999 +95.9776 13.8747 22.7146 +95.7417 14.3108 23.4285 +96.1696 14.8494 24.3102 +95.9174 15.2863 25.0255 +95.6578 15.7221 25.7389 +96.2469 16.3016 26.6876 +95.9704 16.7388 27.4033 +96.5374 17.3274 28.3671 +96.1494 17.7485 29.0564 +96.6004 18.3279 30.0049 +96.2899 18.7666 30.7231 +96.9056 19.3907 31.7449 +96.5773 19.8308 32.4653 +96.3344 20.2888 33.2153 +95.9911 20.7263 33.9314 +96.4689 21.3455 34.9451 +97.025 21.9914 36.0025 +96.7445 22.4531 36.7584 +96.3649 22.8923 37.4774 +96.1593 23.3739 38.2658 +96.3961 23.9675 39.2376 +96.7102 24.5879 40.2532 +96.2949 25.0269 40.972 +96.5851 25.6533 41.9975 +96.2407 26.1157 42.7545 +96.5062 26.7483 43.7901 +95.9668 27.1614 44.4664 +96.2956 27.8243 45.5518 +95.9132 28.287 46.3092 +96.1288 28.9308 47.3631 +96.4163 29.605 48.4669 +95.8313 30.0157 49.1392 +96.0073 30.6683 50.2077 +95.4054 31.0763 50.8755 +95.6406 31.7612 51.9968 +95.7762 32.4221 53.0789 +95.8135 33.058 54.1199 +95.9196 33.7257 55.2131 +95.3514 34.1608 55.9253 +95.4312 34.8325 57.0249 +95.6586 35.5679 58.2289 +95.6258 36.2162 59.2902 +95.8197 36.9599 60.5077 +95.0376 37.3316 61.1163 +95.7577 38.302 62.7049 +95.1917 38.7682 63.4682 +95.3217 39.5243 64.7059 +95.2004 40.186 65.7892 +95.9129 41.2143 67.4728 +95.1427 41.6156 68.1296 +95.1268 42.3515 69.3344 +95.0934 43.0903 70.544 +95.6416 44.1085 72.2109 +95.5684 44.8558 73.4343 +94.8139 45.2888 74.1432 +95.3685 46.3583 75.8941 +95.2417 47.1133 77.1301 +94.9529 47.7982 78.2514 +94.9336 48.6302 79.6135 +94.823 49.4288 80.9209 +94.4826 50.1186 82.0501 +94.4041 50.9589 83.4258 +94.6488 51.9914 85.1162 +94.3886 52.7629 86.3792 +94.7853 53.9207 88.2745 +94.3474 54.6207 89.4206 +94.092 55.4386 90.7596 +94.3413 56.5724 92.6157 +94.2999 57.5545 94.2235 +93.847 58.3004 95.4447 +94.0124 59.4493 97.3256 +94.2722 60.6847 99.3481 +94.1865 61.7236 101.049 +93.3958 62.3137 102.015 +93.4449 63.4808 103.926 +93.3415 64.5693 105.708 +93.3277 65.7458 107.634 +93.2815 66.927 109.567 +93.319 68.1973 111.647 +93.0915 69.3024 113.456 +93.0605 70.5827 115.552 +92.8819 71.7811 117.514 +92.5046 72.8528 119.269 +93.0243 74.67 122.244 +92.9528 76.0576 124.515 +92.4709 77.1403 126.288 +91.9597 78.2251 128.064 +94.355 81.8573 134.01 +114.856 101.642 166.4 +114.9 103.74 169.835 +115.227 106.164 173.804 +114.609 107.779 176.447 +114.948 110.358 180.668 +114.833 112.579 184.306 +114.929 115.085 188.409 +114.542 117.183 191.843 +114.584 119.799 196.125 +114.503 122.377 200.346 +114.172 124.775 204.272 +114.403 127.889 209.369 +112.382 128.546 210.446 +109.697 128.433 210.261 +107.104 128.401 210.208 +104.56 128.404 210.213 +101.794 128.104 209.722 +99.4206 128.273 209.998 +96.9396 128.283 210.015 +94.5016 128.33 210.092 +91.9294 128.169 209.828 +89.7461 128.533 210.424 +90.0945 132.622 217.118 +89.8894 136.083 222.784 +89.5434 139.502 228.381 +89.0587 142.878 233.909 +88.6781 146.609 240.016 +88.4717 150.845 246.952 +88.414 155.591 254.72 +88.2591 160.446 262.67 +88.055 165.513 270.965 +86.2644 167.821 274.743 +84.5283 170.377 278.928 +85.4468 178.645 292.463 +86.8183 188.505 308.606 +84.0417 189.757 310.655 +80.8618 190.132 311.268 +77.2808 189.524 310.273 +74.1051 189.868 310.837 +70.752 189.737 310.622 +67.4636 189.745 310.634 +64.1456 189.634 310.453 +60.9851 189.97 311.003 +57.6617 189.776 310.686 +54.32 189.464 310.175 +51.0487 189.343 309.976 +47.8901 189.619 310.43 +44.6042 189.365 310.012 +41.4324 189.56 310.332 +38.1633 189.275 309.866 +34.9933 189.441 310.138 +31.7334 189.074 309.536 +28.5277 188.951 309.336 +25.3286 188.814 309.111 +22.24 189.546 310.31 +19.0084 189.067 309.526 +15.8382 189.095 309.57 +12.6685 189.108 309.592 +9.5127 189.366 310.015 +6.33173 189.09 309.563 +3.15813 188.642 308.829 +2.21715e-14 188.754 309.012 +-3.16773 189.215 309.768 +-6.31952 188.725 308.965 +-9.50223 189.158 309.674 +-12.6441 188.743 308.994 +-15.8382 189.095 309.57 +-18.9561 188.547 308.674 +-22.1118 188.453 308.521 +-25.2658 188.346 308.345 +-28.4963 188.743 308.995 +-31.655 188.607 308.771 +-34.8112 188.455 308.524 +-37.9543 188.238 308.168 +-41.2173 188.576 308.722 +-44.3604 188.33 308.318 +-47.5376 188.224 308.145 +-50.6729 187.949 307.695 +-53.9652 188.227 308.15 +-57.1142 187.974 307.736 +-60.2919 187.81 307.467 +-63.4163 187.478 306.923 +-66.8622 188.053 307.865 +-70.0078 187.742 307.356 +-73.3275 187.876 307.575 +-76.4699 187.535 307.018 +-79.7796 187.588 307.103 +-83.1194 187.675 307.246 +-86.4448 187.695 307.279 +-89.7772 187.699 307.286 +-93.0913 187.637 307.183 +-96.4877 187.709 307.303 +-99.8403 187.665 307.23 +-103.226 187.655 307.214 +-106.534 187.478 306.924 +-109.932 187.435 306.854 +-113.547 187.724 307.326 +-116.932 187.596 307.118 +-120.385 187.552 307.044 +-123.748 187.342 306.701 +-127.247 187.312 306.652 +-130.96 187.559 307.056 +-134.305 187.249 306.549 +-139.799 189.843 310.796 +-143.412 189.782 310.695 +-146.846 189.46 310.169 +-146.568 184.451 301.968 +-146.641 180.082 294.816 +-148.295 177.783 291.053 +-146.344 171.34 280.504 +-147.465 168.675 276.141 +-152.058 169.982 278.282 +-167.211 182.74 299.167 +-114.59 122.471 200.499 +-112.531 117.653 192.612 +-113.634 116.254 190.322 +-114.929 115.085 188.409 +-116.476 114.19 186.943 +-117.81 113.106 185.168 +-120.33 113.159 185.255 +-122.416 112.788 184.648 +-125.1 112.95 184.912 +-129.118 114.262 187.061 +-508.188 440.877 721.768 +-512.414 435.882 713.59 +-515.823 430.307 704.464 +-519.139 424.779 695.414 +-523.071 419.865 687.37 +-526.713 414.818 679.107 +-530.227 409.77 670.843 +-533.951 404.98 663.001 +-537.728 400.316 655.364 +-541.564 395.775 647.93 +-545.288 391.23 640.49 +-550.211 387.603 634.553 +-168.027 116.233 190.288 +-1994.61 1355.01 2218.32 +-575.89 384.234 629.037 +-579.81 379.968 622.053 +-588.226 378.653 619.9 +-589.199 372.584 609.965 +-596.314 370.449 606.468 +-595.544 363.481 595.061 +-584.286 350.372 573.6 +-588.274 346.608 567.438 +-592.247 342.872 561.323 +-596.141 339.128 555.193 +-599.954 335.374 549.047 +-603.756 331.649 542.948 +-608.034 328.214 537.326 +-611.543 324.395 531.073 +-615.678 320.937 525.413 +-619.957 317.576 519.91 +-624.531 314.382 514.681 +-628.464 310.883 508.953 +-632.767 307.586 503.555 +-637.155 304.344 498.247 +-141.049 66.2024 108.381 +-143.125 66.0075 108.062 +-142.867 64.7382 105.984 +-143.337 63.815 104.473 +-142.484 62.3226 102.029 +-141.747 60.9099 99.7168 +-143.772 60.6889 99.3549 +-149.087 61.8175 101.203 +-675.877 275.261 450.635 +-680.697 272.271 445.74 +-135.209 53.1111 86.9492 +-139.389 53.7653 88.0202 +-694.137 262.889 430.381 +-699.325 260.024 425.691 +-388.442 141.782 232.113 +-390.965 140.068 229.308 +-714.216 251.122 411.116 +-720.144 248.467 406.77 +-724.779 245.352 401.671 +-729.702 242.326 396.717 +-734.494 239.246 391.674 +-740.006 236.386 386.992 +-745.564 233.521 382.301 +-750.737 230.517 377.384 +-756.127 227.563 372.547 +-762.083 224.756 367.952 +-767.829 221.862 363.214 +-773.447 218.908 358.378 +-772.314 214.06 350.442 +-760.7 206.423 337.939 +-766.978 203.712 333.5 +-775.103 201.448 329.794 +-786.355 199.925 327.301 +-2957.32 735.295 1203.76 +-798.548 194.107 317.776 +-411.575 97.7734 160.067 +-413.379 95.9396 157.065 +-414.144 93.8686 153.674 +-411.558 91.0646 149.084 +-407.985 88.0918 144.217 +-408.981 86.1349 141.013 +-407.988 83.7746 137.149 +-406.388 81.3178 133.127 +-385.909 75.2121 123.131 +-384.334 72.919 119.377 +-381.487 70.4201 115.286 +-382.368 68.631 112.357 +-382.649 66.7399 109.261 +-382.61 64.8038 106.092 +-382.059 62.7943 102.802 +-382.331 60.9318 99.7526 +-381.418 58.8941 96.4167 +-381.909 57.0853 93.4555 +-381.598 55.1644 90.3107 +-379.995 53.0757 86.8912 +-380.772 51.3323 84.037 +-382.588 49.7243 81.4046 +-383.211 47.9577 78.5125 +-381.856 45.9547 75.2333 +-381.439 44.0806 72.1651 +-381.086 42.2245 69.1265 +-381.093 40.4166 66.1668 +-380.184 38.5224 63.0657 +-380.618 36.7725 60.201 +-380.136 34.9401 57.2011 +-380.312 33.1752 54.3117 +-379.865 31.3623 51.3439 +-379.189 29.5407 48.3616 +-379.669 27.8147 45.536 +-380.517 26.1138 42.7514 +-379.649 24.2992 39.7807 +-379.544 22.5418 36.9036 +-380.604 20.8526 34.1381 +-379.345 19.0405 31.1716 +-380.447 17.3505 28.4049 +-378.729 15.5374 25.4366 +-379.374 13.8286 22.639 +-378.293 12.0609 19.7452 +-381.077 10.4106 17.0434 +-379.039 8.62668 14.1229 +-380.168 6.92034 11.3294 +-378.07 5.16068 8.44865 +-147.678 1.3437 2.1998 +-146.294 0.665506 1.08951 +96.1 0 0 +96.0963 0.44359 0.711696 +96.9852 0.895453 1.43667 +96.167 1.33202 2.13709 +97.0408 1.79248 2.87586 +96.2083 2.22189 3.5648 +96.0682 2.66313 4.27272 +96.1204 3.1097 4.9892 +95.9657 3.54957 5.69494 +96.8007 4.02976 6.46535 +96.7305 4.47643 7.18198 +96.7525 4.92783 7.90622 +96.6675 5.37426 8.62247 +96.5752 5.82027 9.33805 +96.4755 6.26581 10.0529 +96.3684 6.71087 10.7669 +96.2541 7.15546 11.4802 +96.0334 7.59168 12.1801 +95.9045 8.03468 12.8908 +95.5711 8.45959 13.5726 +96.1172 8.96474 14.383 +96.1623 9.42731 15.1252 +96.0031 9.87083 15.8368 +95.6407 10.2925 16.5133 +95.6628 10.7556 17.2563 +95.5794 11.2082 17.9824 +96.1703 11.7442 18.8424 +95.9729 12.1876 19.5539 +95.7682 12.6302 20.2638 +96.5243 13.2042 21.1848 +95.4335 13.526 21.7011 +95.9776 14.0791 22.5885 +96.6068 14.6528 23.509 +96.3614 15.0982 24.2235 +95.9174 15.5115 24.8866 +96.5162 16.0968 25.8257 +96.2469 16.5417 26.5395 +95.9704 16.9853 27.2512 +96.5374 17.5826 28.2096 +96.1494 18.0099 28.8951 +95.8486 18.4531 29.6061 +96.2899 19.043 30.5526 +95.9721 19.4867 31.2645 +96.6704 20.1422 32.3162 +97.1689 20.766 33.317 +96.8226 21.2137 34.0353 +96.4689 21.6599 34.7511 +96.1996 22.1254 35.4981 +96.7445 22.7838 36.5543 +96.3649 23.2295 37.2694 +95.978 23.6734 37.9817 +96.5766 24.366 39.0929 +95.9912 24.7645 39.7322 +96.2949 25.3955 40.7445 +96.5851 26.0311 41.7643 +96.2407 26.5004 42.5172 +96.4179 27.1174 43.5072 +95.9668 27.5614 44.2196 +96.3831 28.2598 45.3401 +95.9132 28.7037 46.0522 +96.0422 29.3304 47.0577 +96.3301 30.0142 48.1549 +95.8313 30.4578 48.8665 +95.3252 30.8989 49.5742 +96.0838 31.7582 50.953 +95.6406 32.229 51.7082 +95.7762 32.8997 52.7843 +95.2298 33.3405 53.4915 +95.2564 33.9859 54.527 +95.5162 34.7239 55.711 +95.5131 35.3758 56.757 +94.9259 35.8154 57.4622 +95.6258 36.7496 58.9611 +95.7394 37.4728 60.1214 +95.1175 37.9133 60.8281 +95.1231 38.6085 61.9435 +95.1129 39.3066 63.0635 +95.3217 40.1064 64.3467 +95.2004 40.7778 65.424 +95.2185 41.5186 66.6124 +95.1427 42.2285 67.7514 +95.2028 43.0096 69.0046 +95.0934 43.725 70.1524 +95.1174 44.5128 71.4163 +95.5684 45.5165 73.0266 +95.4774 46.2775 74.2476 +95.3685 47.0411 75.4728 +95.2417 47.8072 76.702 +94.9529 48.5022 77.817 +94.9336 49.3465 79.1715 +94.823 50.1569 80.4717 +94.4826 50.8568 81.5946 +95.0293 52.0519 83.5121 +94.6488 52.7572 84.6437 +94.3886 53.54 85.8997 +94.7853 54.7148 87.7845 +94.3474 55.4252 88.9242 +94.0258 56.2155 90.1921 +94.2101 57.3257 91.9735 +93.9102 58.161 93.3135 +93.9113 59.1998 94.9802 +93.9488 60.2842 96.72 +94.2093 61.5378 98.7313 +93.5639 62.2186 99.8235 +93.4574 63.2733 101.516 +93.4449 64.4158 103.349 +93.4017 65.5626 105.189 +93.8036 67.0542 107.582 +93.2815 67.9127 108.959 +93.2609 69.1589 110.959 +93.1488 70.3665 112.896 +93.1172 71.6656 114.98 +92.9379 72.8822 116.932 +93.4981 74.7198 119.881 +92.9699 75.7254 121.494 +93.0066 77.2223 123.895 +92.3119 78.1421 125.371 +91.9075 79.3318 127.28 +94.87 83.5163 133.994 +115.262 103.503 166.061 +114.85 105.222 168.819 +114.833 107.36 172.248 +115.142 109.875 176.284 +114.948 111.983 179.665 +114.786 114.191 183.208 +114.975 116.828 187.438 +114.587 118.956 190.853 +114.584 121.563 195.036 +114.546 124.227 199.31 +114.172 126.613 203.138 +114.403 129.772 208.206 +112.714 130.824 209.894 +109.656 130.277 209.016 +107.144 130.341 209.12 +104.13 129.76 208.187 +102.062 130.333 209.107 +99.3831 130.113 208.753 +97.2328 130.567 209.481 +94.5016 130.22 208.925 +92.2446 130.503 209.378 +89.7119 130.377 209.176 +90.0945 134.576 215.913 +89.9219 138.137 221.627 +89.5434 141.557 227.114 +89.0587 144.983 232.61 +88.8886 149.122 239.251 +88.9102 153.826 246.798 +88.6696 158.339 254.039 +88.452 163.165 261.783 +88.2688 168.359 270.115 +86.3162 170.395 273.381 +84.6785 173.194 277.872 +85.3984 181.174 290.675 +86.865 191.385 307.058 +84.2442 193.016 309.675 +80.8835 192.984 309.624 +77.4263 192.677 309.131 +74.1051 192.665 309.111 +70.752 192.532 308.898 +67.4818 192.591 308.993 +64.1456 192.427 308.729 +60.8365 192.298 308.523 +57.6617 192.571 308.962 +54.32 192.255 308.453 +51.0348 192.079 308.172 +47.864 192.308 308.538 +44.6042 192.154 308.291 +41.4324 192.352 308.61 +38.2574 192.536 308.905 +34.9933 192.231 308.416 +31.8118 192.333 308.579 +28.5356 191.787 307.703 +25.3914 192.069 308.156 +22.2339 192.285 308.503 +19.0137 191.905 307.892 +15.8426 191.932 307.937 +12.672 191.946 307.958 +9.48914 191.68 307.531 +6.33173 191.875 307.844 +3.16599 191.897 307.879 +2.22266e-14 192.01 308.06 +-3.15988 191.526 307.285 +-6.31952 191.505 307.25 +-9.47867 191.468 307.191 +-12.6406 191.47 307.194 +-15.7989 191.404 307.089 +-19.0084 191.852 307.808 +-22.1606 191.652 307.486 +-25.3286 191.595 307.395 +-28.4963 191.523 307.28 +-31.655 191.384 307.057 +-34.8016 191.178 306.726 +-37.9543 191.011 306.457 +-41.2173 191.354 307.008 +-44.3604 191.104 306.607 +-47.5376 190.996 306.434 +-50.6729 190.717 305.987 +-53.9652 190.999 306.44 +-57.1299 190.795 306.112 +-60.2754 190.524 305.677 +-63.5726 190.707 305.971 +-66.6982 190.355 305.405 +-70.0078 190.507 305.649 +-73.3076 190.591 305.784 +-76.4699 190.298 305.313 +-79.8013 190.402 305.481 +-83.1194 190.439 305.54 +-86.4448 190.459 305.573 +-89.8014 190.515 305.662 +-93.0913 190.4 305.478 +-96.4877 190.474 305.597 +-100.054 190.837 306.179 +-103.199 190.368 305.426 +-106.79 190.696 305.952 +-110.195 190.651 305.88 +-113.547 190.488 305.62 +-116.932 190.359 305.413 +-120.385 190.314 305.34 +-124.107 190.651 305.881 +-127.247 190.071 304.95 +-130.96 190.321 305.352 +-134.34 190.056 304.926 +-139.584 192.343 308.595 +-143.412 192.577 308.97 +-146.808 192.202 308.369 +-146.568 187.168 300.292 +-146.759 182.881 293.414 +-148.215 180.305 289.281 +-146.71 174.298 279.644 +-147.589 171.304 274.84 +-152.185 172.629 276.967 +-167.899 186.195 298.732 +-114.59 124.275 199.386 +-112.531 119.386 191.542 +-113.634 117.966 189.265 +-114.56 116.405 186.76 +-116.617 116.012 186.13 +-118.288 115.237 184.886 +-119.796 114.317 183.41 +-122.416 114.449 183.623 +-125.1 114.613 183.886 +-129.422 116.219 186.461 +-508.343 447.506 717.98 +-511.735 441.715 708.688 +-515.823 436.645 700.553 +-519.3 431.169 691.768 +-522.908 425.917 683.341 +-526.824 421.016 675.479 +-529.723 415.411 666.486 +-534.064 411.033 659.461 +-537.269 405.865 651.17 +-541.564 401.604 644.334 +-545.288 396.992 636.934 +-549.914 393.099 630.689 +-566.91 397.939 638.453 +-169.236 116.662 187.172 +-575.705 389.769 625.345 +-579.437 385.316 618.202 +-588.981 384.723 617.251 +-589.199 378.072 606.579 +-596.828 376.229 603.622 +-595.739 368.955 591.951 +-584.286 355.532 570.416 +-588.274 351.713 564.288 +-591.846 347.687 557.829 +-596.141 344.123 552.111 +-599.954 340.313 545.999 +-604.1 336.725 540.242 +-608.243 333.163 534.527 +-611.543 329.173 528.125 +-615.678 325.664 522.496 +-620.171 322.365 517.203 +-624.531 319.012 511.823 +-628.247 315.353 505.952 +-632.767 312.116 500.76 +-636.713 308.612 495.137 +-142.387 67.8143 108.801 +-143.125 66.9797 107.462 +-142.867 65.6917 105.396 +-143.337 64.7549 103.893 +-142.484 63.2405 101.463 +-142.982 62.345 100.026 +-143.15 61.3167 98.3765 +-148.383 62.4317 100.165 +-675.877 279.315 448.133 +-680.697 276.281 443.265 +-135.049 53.8299 86.3647 +-137.62 53.8653 86.4216 +-694.541 266.917 428.241 +-386.786 145.934 234.136 +-383.855 142.171 228.099 +-387.339 140.813 225.92 +-713.967 254.731 408.691 +-719.393 251.864 404.091 +-724.779 248.966 399.441 +-729.702 245.895 394.514 +-734.494 242.77 389.5 +-740.006 239.868 384.844 +-745.564 236.96 380.179 +-750.996 233.993 375.418 +-756.213 230.941 370.521 +-762.083 228.066 365.91 +-768.091 225.207 361.322 +-773.447 222.132 356.389 +-772.403 217.238 348.536 +-760.878 209.512 336.141 +-766.711 206.64 331.533 +-776.177 204.698 328.417 +-786.355 202.87 325.484 +-410.676 103.613 166.236 +-2969.52 732.446 1175.14 +-805.407 194.149 311.493 +-2993.23 704.919 1130.97 +-413.136 95.0189 152.448 +-412.386 92.5921 148.555 +-410.203 89.8748 144.195 +-407.497 87.0867 139.722 +-407.523 84.9117 136.232 +-406.388 82.5155 132.388 +-388.813 76.8943 123.369 +-383.77 73.8846 118.54 +-382.618 71.6688 114.985 +-381.8 69.5382 111.567 +-381.226 67.4711 108.251 +-381.374 65.5457 105.161 +-383.108 63.8943 102.512 +-381.757 61.7367 99.0504 +-381.802 59.8219 95.9782 +-381.909 57.9261 92.9367 +-381.116 55.9066 89.6965 +-380.768 53.9669 86.5845 +-382.709 52.3532 83.9955 +-383.267 50.5462 81.0964 +-381.752 48.4788 77.7794 +-381.563 46.5958 74.7584 +-381.732 44.7641 71.8196 +-380.304 42.7584 68.6017 +-379.525 40.8432 65.5288 +-381.558 39.2311 62.9424 +-381.798 37.4298 60.0524 +-380.628 35.5006 56.9572 +-380.213 33.6551 53.9962 +-379.865 31.8243 51.0589 +-379.288 29.9836 48.1057 +-380.56 28.2906 45.3894 +-379.624 26.4362 42.4143 +-381.435 24.7732 39.7461 +-380.935 22.9576 36.8333 +-379.112 21.0768 33.8156 +-380.44 19.3767 31.088 +-380.845 17.6245 28.2767 +-381.72 15.8908 25.4952 +-379.374 14.0323 22.5134 +-378.692 12.2515 19.6563 +-379.479 10.5196 16.8777 +-378.739 8.74681 14.0334 +-378.569 6.9927 11.2191 +-379.27 5.25331 8.42841 +-148.377 1.36995 2.19796 +-146.694 0.677154 1.08643 +96.2 0 0 +96.6963 0.452802 0.712084 +96.1853 0.900887 1.41675 +96.8668 1.36108 2.14046 +96.1414 1.8015 2.83307 +96.9077 2.27034 3.57038 +96.0682 2.70157 4.24852 +96.8191 3.17751 4.99701 +96.7637 3.63075 5.70978 +96.701 4.08371 6.42211 +95.9335 4.50363 7.08248 +97.3497 5.02981 7.90996 +96.6675 5.45183 8.57363 +97.2707 5.94678 9.352 +96.4755 6.35625 9.99594 +96.9633 6.8498 10.7721 +97.1453 7.32597 11.5209 +96.7258 7.75679 12.1985 +95.9045 8.15065 12.8178 +97.0505 8.71455 13.7046 +96.1172 9.09413 14.3016 +96.7523 9.62208 15.1318 +96.0031 10.0133 15.7471 +96.4246 10.5267 16.5544 +95.6628 10.9109 17.1586 +96.0675 11.4281 17.972 +96.1703 11.9137 18.7356 +96.5563 12.4387 19.5613 +95.8652 12.8254 20.1695 +96.2339 13.3545 21.0014 +96.2062 13.8324 21.753 +96.4594 14.354 22.5734 +96.6068 14.8643 23.3759 +96.8408 15.3923 24.2061 +96.1086 15.7667 24.795 +96.3254 16.2968 25.6287 +96.2469 16.7804 26.3891 +96.6342 17.3496 27.2843 +96.5374 17.8364 28.0498 +96.8093 18.3953 28.9287 +95.8486 18.7194 29.4385 +97.1329 19.487 30.6455 +95.8787 19.7488 31.0572 +97.2286 20.551 32.3188 +96.3344 20.8848 32.8438 +97.4693 21.6637 34.0686 +96.4689 21.9725 34.5543 +96.8415 22.5945 35.5325 +95.9223 22.9162 36.0383 +97.0019 23.7205 37.3033 +96.1593 24.0605 37.8378 +97.0279 24.8332 39.0531 +96.6204 25.2866 39.7661 +96.9214 25.9296 40.7773 +95.7832 26.1876 41.183 +96.7729 27.0315 42.5102 +96.5062 27.534 43.3004 +96.6699 28.1641 44.2913 +96.2956 28.6417 45.0423 +96.4354 29.2765 46.0406 +96.0422 29.7537 46.7912 +96.9333 30.6381 48.1819 +95.8313 30.8974 48.5897 +96.6041 31.7655 49.9549 +95.4902 32.0176 50.3513 +96.1466 32.8671 51.6874 +95.7762 33.3745 52.4853 +96.3972 34.2363 53.8406 +95.8367 34.6864 54.5484 +96.67 35.6506 56.0646 +96.0865 36.1018 56.7743 +96.147 36.7997 57.8717 +96.1921 37.5008 58.9744 +96.3021 38.2371 60.1322 +95.5967 38.6543 60.7883 +95.6784 39.3944 61.9522 +95.7433 40.1383 63.1221 +95.8695 40.919 64.3499 +95.7444 41.6028 65.4252 +95.7586 42.3567 66.6108 +95.679 43.0795 67.7474 +95.7351 43.8743 68.9974 +95.6217 44.6026 70.1427 +96.1659 45.653 71.7947 +96.0886 46.4248 73.0083 +95.4037 46.9092 73.7701 +95.8073 47.9396 75.3906 +95.0966 48.4234 76.1514 +95.5283 49.5005 77.8452 +95.4329 50.322 79.1372 +95.318 51.1464 80.4336 +95.604 52.2032 82.0955 +94.8903 52.726 82.9177 +95.1994 53.8299 84.6537 +94.866 54.5875 85.8452 +95.2582 55.7814 87.7228 +94.8827 56.5445 88.9227 +94.6221 57.3885 90.2501 +94.8005 58.518 92.0264 +94.6895 59.4898 93.5546 +94.2969 60.3011 94.8305 +94.4576 61.4854 96.6928 +94.6498 62.7179 98.6311 +93.9997 63.4106 99.7205 +93.9499 64.5246 101.472 +93.9319 65.6858 103.298 +93.7026 66.7235 104.93 +93.7441 67.9791 106.905 +93.7517 69.2401 108.888 +93.7255 70.5065 110.88 +93.6077 71.7342 112.81 +94.0234 73.4078 115.442 +93.2175 74.1569 116.62 +93.2774 75.6196 118.921 +93.4056 77.1784 121.372 +93.3827 78.6535 123.692 +92.9478 79.8162 125.52 +92.1165 80.6598 126.847 +94.7155 84.5838 133.018 +114.907 104.674 164.611 +115.3 107.159 168.52 +114.882 108.956 171.346 +114.706 111.039 174.621 +114.566 113.222 178.055 +114.833 115.886 182.244 +114.929 118.466 186.302 +114.633 120.721 189.847 +114.628 123.366 194.008 +114.546 126.02 198.181 +114.602 128.925 202.749 +114.318 131.548 206.874 +112.797 132.81 208.859 +109.982 132.549 208.449 +107.024 132.075 207.703 +104.833 132.521 208.405 +102.023 132.165 207.844 +99.6828 132.389 208.197 +97.2328 132.451 208.295 +94.7166 132.4 208.215 +92.4547 132.688 208.667 +89.4041 131.805 207.279 +90.3949 136.973 215.406 +89.8243 139.979 220.133 +89.7338 143.905 226.307 +89.3677 147.586 232.096 +88.9187 151.325 237.976 +88.7056 155.687 244.836 +88.6412 160.573 252.519 +88.4245 165.469 260.219 +88.2956 170.841 268.667 +86.2126 172.647 271.507 +83.8022 173.875 273.439 +85.7371 184.518 290.176 +86.6549 193.678 304.581 +84.0417 195.331 307.181 +80.5372 194.931 306.552 +77.4679 195.563 307.546 +73.7462 194.499 305.872 +70.7711 195.364 307.232 +67.2996 194.843 306.414 +64.1456 195.204 306.981 +60.6715 194.544 305.944 +57.521 194.874 306.462 +54.1869 194.552 305.955 +51.0487 194.904 306.51 +47.7595 194.658 306.122 +44.592 194.874 306.462 +41.3305 194.649 306.107 +38.0588 194.301 305.561 +34.8112 193.991 305.074 +31.716 194.521 305.906 +28.5356 194.555 305.96 +25.3286 194.36 305.654 +22.1728 194.525 305.913 +19.0084 194.621 306.064 +15.7989 194.167 305.35 +12.6371 194.18 305.37 +9.46558 193.963 305.03 +6.33173 194.644 306.101 +3.15028 193.7 304.616 +2.21715e-14 194.298 305.556 +-3.1529 193.861 304.869 +-6.31952 194.269 305.51 +-9.45773 193.802 304.777 +-12.6441 194.287 305.539 +-15.7597 193.684 304.591 +-18.9613 194.139 305.306 +-22.0629 193.561 304.397 +-25.2588 193.825 304.812 +-28.3551 193.325 304.026 +-31.6463 194.093 305.234 +-34.7249 193.51 304.318 +-37.9647 193.821 304.805 +-41.0135 193.156 303.76 +-44.3604 193.862 304.87 +-47.4202 193.274 303.946 +-50.6729 193.47 304.254 +-53.8174 193.226 303.869 +-57.1299 193.549 304.378 +-60.1103 192.745 303.113 +-63.4163 192.985 303.491 +-66.5524 192.68 303.012 +-69.8361 192.783 303.173 +-72.9687 192.448 302.647 +-76.4491 192.992 303.502 +-79.4117 192.207 302.268 +-82.917 192.717 303.069 +-86.2347 192.738 303.103 +-89.5353 192.692 303.03 +-92.7157 192.369 302.523 +-96.2289 192.705 303.051 +-99.3592 192.247 302.331 +-102.978 192.703 303.048 +-106.335 192.625 302.925 +-109.961 192.992 303.502 +-113.035 192.367 302.52 +-116.654 192.648 302.961 +-120.068 192.552 302.81 +-123.748 192.845 303.271 +-127.014 192.46 302.666 +-130.617 192.564 302.83 +-134.059 192.398 302.567 +-139.441 194.918 306.532 +-143.119 194.957 306.593 +-146.846 195.026 306.701 +-146.529 189.819 298.513 +-146.29 184.928 290.82 +-146.819 181.185 284.934 +-146.751 176.863 278.137 +-147.755 173.972 273.591 +-152.185 175.121 275.398 +-166.134 186.898 293.918 +-114.59 126.068 198.257 +-112.933 121.541 191.138 +-113.634 119.669 188.193 +-115.068 118.609 186.526 +-116.429 117.497 184.778 +-118.192 116.806 183.691 +-120.233 116.389 183.035 +-122.318 116.008 182.436 +-125.05 116.221 182.771 +-129.169 117.665 185.043 +-508.343 453.965 713.913 +-512.467 448.731 705.681 +-515.664 442.811 696.371 +-519.945 437.935 688.704 +-522.745 431.929 679.258 +-526.879 427.138 671.723 +-530.506 422.03 663.691 +-533.951 416.877 655.587 +-537.9 412.207 648.243 +-541.796 407.575 640.959 +-545.288 402.722 633.327 +-551.341 399.808 628.745 +-567.211 403.897 635.174 +-575.584 402.502 632.982 +-575.705 395.394 621.803 +-579.872 391.171 615.162 +-587.345 389.192 612.049 +-592.889 385.93 606.92 +-596.828 381.659 600.203 +-598.466 375.994 591.294 +-584.68 360.907 567.568 +-588.937 357.191 561.724 +-592.649 353.183 555.421 +-596.141 349.09 548.984 +-599.954 345.225 542.906 +-604.306 341.702 537.366 +-608.034 337.856 531.317 +-611.964 334.154 525.495 +-615.89 330.479 519.716 +-620.599 327.243 514.628 +-624.531 323.617 508.925 +-628.9 320.237 503.609 +-632.767 316.621 497.923 +-637.376 313.393 492.846 +-141.941 68.578 107.847 +-143.65 68.1954 107.245 +-143.546 66.9564 105.297 +-143.489 65.7593 103.414 +-143.097 64.4296 101.323 +-142.828 63.1767 99.3526 +-143.772 62.4716 98.2438 +-148.852 63.533 99.9129 +-676.113 283.446 445.751 +-680.697 280.268 440.755 +-136.087 55.0265 86.5355 +-136.816 54.3235 85.43 +-695.107 270.99 426.163 +-699.651 267.787 421.126 +-385.575 144.869 227.823 +-384.537 141.812 223.016 +-714.216 258.498 406.518 +-719.643 255.588 401.942 +-724.779 252.559 397.178 +-729.702 249.444 392.28 +-734.494 246.274 387.294 +-740.603 243.526 382.972 +-745.564 240.38 378.026 +-751.513 237.534 373.549 +-755.867 234.167 368.254 +-762.083 231.358 363.837 +-766.867 228.093 358.702 +-773.447 225.338 354.37 +-775.316 221.204 347.869 +-764.071 213.427 335.639 +-767.246 209.768 329.885 +-2932.25 784.474 1233.68 +-785.995 205.704 323.493 +-412.481 105.57 166.021 +-410.648 102.75 161.586 +-805.68 197.018 309.834 +-813.512 194.351 305.64 +-411.118 95.9197 150.845 +-409.533 93.2781 146.691 +-409.371 90.9874 143.088 +-409.444 88.7654 139.594 +-408.36 86.3138 135.738 +-402 82.8023 130.216 +-387.595 77.76 122.287 +-383.77 74.951 117.869 +-382.807 72.7392 114.391 +-382.462 70.6642 111.128 +-382.08 68.5983 107.879 +-382.325 66.6575 104.827 +-382.44 64.7033 101.753 +-380.801 62.4705 98.2421 +-381.418 60.6241 95.3385 +-381.044 58.6291 92.201 +-381.983 56.8423 89.391 +-381.154 54.8016 86.1819 +-382.031 53.0147 83.3718 +-382.976 51.2369 80.5759 +-381.072 49.0908 77.201 +-380.881 47.1839 74.2022 +-381.244 45.3522 71.3215 +-382.064 43.5764 68.5289 +-381.779 41.6787 65.5446 +-378.908 39.5209 62.1511 +-380.52 37.8428 59.5123 +-381.022 36.0503 56.6933 +-381.101 34.2205 53.8157 +-380.754 32.3591 50.8885 +-380.376 30.5036 47.9705 +-380.56 28.6989 45.1324 +-379.228 26.7898 42.1301 +-379.649 25.013 39.3358 +-379.843 23.2222 36.5196 +-380.405 21.4539 33.7387 +-379.843 19.6255 30.8634 +-379.849 17.8321 28.0431 +-380.025 16.0486 25.2382 +-378.476 14.2011 22.3329 +-378.792 12.4316 19.5501 +-378.481 10.6434 16.7379 +-379.538 8.89178 13.9834 +-378.269 7.08805 11.1468 +-379.07 5.32632 8.37626 +-147.578 1.38224 2.17373 +-146.194 0.684588 1.07659 +96.7 0 0 +96.6963 0.459207 0.707971 +96.6853 0.918379 1.41589 +96.8668 1.38033 2.12809 +96.841 1.84027 2.8372 +96.8078 2.30008 3.54609 +96.8671 2.76256 4.25911 +96.8191 3.22245 4.96814 +96.664 3.67831 5.67094 +97.4985 4.17563 6.43767 +97.4278 4.63847 7.15124 +97.3497 5.10095 7.86427 +97.3637 5.56872 8.58544 +97.1713 6.02474 9.2885 +97.071 6.48593 9.99953 +97.0625 6.95376 10.7208 +96.9472 7.4144 11.431 +96.8247 7.8745 12.1403 +96.5959 8.32552 12.8357 +97.0505 8.83781 13.6255 +96.9051 9.29834 14.3355 +96.654 9.74827 15.0292 +96.5921 10.2172 15.7522 +96.4246 10.6755 16.4588 +96.1519 11.1217 17.1466 +96.0675 11.5897 17.8681 +95.9755 12.0577 18.5897 +96.5563 12.6146 19.4483 +96.4474 13.0858 20.1747 +96.1371 13.5297 20.8591 +96.7858 14.1125 21.7576 +96.5558 14.5716 22.4654 +96.3184 15.0296 23.1715 +96.8408 15.61 24.0663 +96.6824 16.0852 24.799 +96.3254 16.5273 25.4806 +96.9127 17.1355 26.4182 +96.6342 17.595 27.1267 +97.1993 18.2127 28.079 +96.9035 18.6736 28.7895 +96.5064 19.1145 29.4693 +97.1329 19.7626 30.4685 +97.5592 20.3791 31.419 +97.2286 20.8416 32.1321 +97.8179 21.5064 33.157 +97.4693 21.9701 33.8719 +97.9417 22.6235 34.8792 +96.9332 22.9358 35.3608 +96.5618 23.3953 36.0691 +97.0019 24.056 37.0878 +96.6124 24.5157 37.7966 +97.0279 25.1844 38.8275 +96.6204 25.6443 39.5364 +96.9214 26.2963 40.5418 +97.2088 26.9533 41.5546 +96.8616 27.439 42.3033 +97.1242 28.1023 43.326 +96.6699 28.5625 44.0355 +96.9953 29.2579 45.1076 +96.4354 29.6905 45.7747 +96.735 30.3923 46.8565 +96.9333 31.0714 47.9036 +97.1171 31.7548 48.9571 +96.6041 32.2148 49.6663 +96.6775 32.8741 50.6829 +96.1466 33.332 51.3888 +96.4471 34.0837 52.5477 +96.564 34.7807 53.6222 +96.5 35.4205 54.6087 +96.0931 35.939 55.4082 +96.0865 36.6125 56.4464 +96.2285 37.3518 57.5862 +96.1921 38.0312 58.6337 +95.659 38.5189 59.3856 +95.6765 39.2337 60.4876 +95.6784 39.9516 61.5944 +96.4525 41.0075 63.2223 +95.7912 41.464 63.9261 +95.7444 42.1912 65.0473 +95.6814 42.9212 66.1727 +95.679 43.6888 67.3561 +95.6591 44.4595 68.5444 +95.6217 45.2334 69.7375 +96.1659 46.2987 71.38 +95.4198 46.7537 72.0814 +95.33 47.5359 73.2873 +95.8073 48.6177 74.9552 +95.6769 49.408 76.1735 +95.6003 50.2384 77.4539 +95.4329 51.0338 78.6801 +95.318 51.8698 79.969 +95.7442 53.0191 81.7409 +95.4461 53.7849 82.9216 +95.2683 54.631 84.226 +94.866 55.3596 85.3493 +95.1907 56.5301 87.154 +94.9496 57.3845 88.4712 +95.1522 58.5262 90.2313 +94.6693 59.2635 91.3681 +94.6895 60.3312 93.0142 +94.4255 61.2373 94.4111 +94.5848 62.4393 96.2644 +94.7757 63.6893 98.1915 +94.062 64.3499 99.21 +93.9499 65.4372 100.886 +93.9928 66.6583 102.769 +93.8831 67.7973 104.525 +93.5656 68.8095 106.085 +94.0456 70.4398 108.599 +93.6093 71.415 110.102 +93.665 72.7934 112.227 +93.457 73.9976 114.084 +93.2734 75.2503 116.015 +93.3325 76.7343 118.303 +93.4601 78.3157 120.741 +92.8454 79.3072 122.27 +93.0008 80.9909 124.866 +92.848 82.4503 127.116 +94.355 85.4537 131.746 +114.907 106.154 163.661 +114.85 108.251 166.893 +114.932 110.545 170.429 +114.657 112.562 173.539 +114.948 115.206 177.616 +114.833 117.525 181.192 +114.929 120.142 185.225 +114.542 122.331 188.601 +114.584 125.062 192.811 +114.546 127.803 197.036 +114.559 130.699 201.502 +114.445 133.556 205.907 +112.88 134.788 207.806 +110.307 134.822 207.858 +107.742 134.841 207.889 +104.716 134.246 206.97 +102.368 134.487 207.342 +100.095 134.816 207.85 +97.4527 134.628 207.56 +95.075 134.781 207.795 +92.4547 134.564 207.462 +89.7119 134.129 206.79 +90.3615 138.859 214.083 +89.8894 142.062 219.02 +89.8289 146.095 225.238 +89.3986 149.725 230.835 +88.9187 153.465 236.602 +88.9687 158.358 244.144 +88.7264 163 251.301 +88.452 167.862 258.796 +88.0818 172.837 266.468 +86.0832 174.826 269.534 +82.2248 173.015 266.742 +86.9951 189.873 292.732 +86.6082 196.311 302.658 +83.6368 197.139 303.935 +80.0394 196.466 302.897 +76.9273 196.946 303.636 +73.2278 195.863 301.967 +70.275 196.738 303.316 +66.8075 196.154 302.416 +63.8157 196.947 303.638 +60.2589 195.954 302.108 +57.255 196.717 303.283 +53.8026 195.905 302.031 +50.7843 196.638 303.161 +47.381 195.846 301.941 +44.3604 196.604 303.109 +41.0135 195.888 302.005 +37.9647 196.562 303.045 +34.6482 195.814 301.892 +31.5765 196.405 302.802 +28.2296 195.191 300.931 +25.2239 196.295 302.633 +21.9653 195.43 301.299 +18.8723 195.961 302.118 +15.6855 195.5 301.407 +12.6092 196.491 302.936 +9.41847 195.728 301.759 +6.28461 195.928 302.067 +3.13544 195.515 301.43 +2.20674e-14 196.121 302.365 +-3.12934 195.134 300.843 +-6.28985 196.091 302.319 +-9.408 195.51 301.423 +-12.5813 196.056 302.264 +-15.6376 194.902 300.485 +-18.8671 195.907 302.035 +-21.9347 195.158 300.88 +-25.1402 195.643 301.628 +-28.206 195.028 300.68 +-31.4284 195.483 301.382 +-34.4565 194.731 300.222 +-37.6825 195.101 300.792 +-40.7984 194.86 300.421 +-44.0314 195.145 300.861 +-47.0547 194.497 299.862 +-50.4363 195.29 301.084 +-53.4183 194.505 299.873 +-56.6762 194.728 300.216 +-59.6647 194.022 299.128 +-63.069 194.642 300.085 +-66.0422 193.907 298.952 +-69.4736 194.494 299.857 +-72.4304 193.731 298.679 +-75.9293 194.391 299.697 +-78.8057 193.438 298.228 +-82.5345 194.541 299.929 +-85.4177 193.613 298.497 +-89.1482 194.572 299.977 +-92.265 194.141 299.313 +-95.8407 194.642 300.085 +-98.9584 194.18 299.372 +-102.482 194.487 299.846 +-105.455 193.732 298.682 +-109.172 194.317 299.583 +-112.314 193.843 298.852 +-116.159 194.544 299.934 +-119.275 193.985 299.072 +-123.195 194.698 300.17 +-126.079 193.746 298.704 +-130.036 194.418 299.74 +-133.184 193.844 298.855 +-138.366 196.151 302.411 +-141.873 195.993 302.168 +-146.284 197.027 303.762 +-146.836 192.907 297.409 +-146.212 187.443 288.986 +-146.142 182.899 281.981 +-146.222 178.718 275.535 +-147.589 176.234 271.705 +-152.312 177.746 274.036 +-167.985 191.653 295.476 +-113.801 126.971 195.755 +-112.977 123.309 190.108 +-113.77 121.507 187.33 +-115.437 120.673 186.044 +-116.523 119.255 183.859 +-118.526 118.793 183.146 +-120.33 118.13 182.125 +-122.761 118.075 182.04 +-125.4 118.195 182.224 +-130.234 120.314 185.491 +-508.703 460.713 710.293 +-513.198 455.728 702.607 +-516.3 449.627 693.202 +-520.267 444.405 685.151 +-523.562 438.723 676.39 +-527.21 433.452 668.264 +-531.01 428.405 660.483 +-535.027 423.625 653.114 +-538.416 418.438 645.117 +-542.086 413.562 637.599 +-546.346 409.21 630.89 +-554.672 407.913 628.89 +-569.257 411.087 633.783 +-577.106 409.275 630.989 +-576.998 401.887 619.6 +-581.553 397.854 613.382 +-584.702 392.92 605.776 +-591.998 390.801 602.508 +-593.743 385.056 593.652 +-593.206 377.96 582.711 +-585.073 366.258 564.669 +-589.533 362.61 559.045 +-593.05 358.421 552.587 +-597.56 354.869 547.111 +-601.182 350.824 540.874 +-604.719 346.772 534.627 +-608.451 342.869 528.61 +-612.805 339.346 523.178 +-616.739 335.615 517.426 +-621.241 332.215 512.185 +-625.25 328.572 506.568 +-629.77 325.216 501.393 +-632.987 321.211 495.219 +-638.556 318.413 490.906 +-141.272 69.2203 106.719 +-143.275 68.9793 106.347 +-144.225 68.225 105.184 +-143.184 66.5479 102.599 +-143.02 65.3055 100.683 +-142.673 64.0011 98.6722 +-143.228 63.1158 97.3072 +-149.4 64.6688 99.7016 +-676.822 287.756 443.641 +-682.125 284.829 439.128 +-136.487 55.9685 86.2881 +-135.932 54.736 84.3879 +-695.188 274.855 423.751 +-390.613 151.619 233.755 +-386.804 147.386 227.229 +-385.856 144.311 222.488 +-715.211 262.519 404.733 +-720.644 259.563 400.176 +-725.869 256.517 395.478 +-730.967 253.411 390.69 +-736.021 250.276 385.857 +-741.371 247.226 381.155 +-747.107 244.285 376.62 +-752.03 241.059 371.646 +-756.906 237.805 366.63 +-762.867 234.871 362.107 +-768.353 231.767 357.322 +-774.502 228.837 352.804 +-780.261 225.764 348.066 +-781.723 221.447 341.41 +-767.869 212.908 328.246 +-412.475 111.912 172.537 +-2944.9 781.611 1205.03 +-413.835 107.414 165.604 +-411.554 104.433 161.008 +-2981.49 739.394 1139.94 +-412.557 99.9554 154.104 +-413.044 97.7324 150.677 +-413.215 95.448 147.155 +-405.768 91.4624 141.01 +-408.61 89.8375 138.505 +-411.058 88.113 135.846 +-404.52 84.5003 130.276 +-388.157 78.9741 121.756 +-382.737 75.8065 116.873 +-383.09 73.8224 113.814 +-382.179 71.6109 110.404 +-382.933 69.7242 107.496 +-382.325 67.6003 104.221 +-382.44 65.6184 101.166 +-382.331 63.6088 98.0673 +-381.418 61.4816 94.7878 +-380.467 59.368 91.5292 +-382.561 57.7339 89.0098 +-382.12 55.7177 85.9014 +-381.16 53.642 82.7012 +-382.588 51.9089 80.0293 +-381.072 49.7852 76.7551 +-380.492 47.8023 73.6981 +-381.244 45.9936 70.9096 +-380.206 43.9778 67.8017 +-380.015 42.0729 64.8649 +-380.184 40.2148 62.0002 +-380.421 38.3682 59.1532 +-381.022 36.5602 56.3658 +-380.706 34.6686 53.4495 +-380.161 32.7657 50.5158 +-380.474 30.9431 47.7058 +-380.857 29.1276 44.9068 +-380.517 27.2611 42.0291 +-380.542 25.4265 39.2007 +-379.246 23.5137 36.2517 +-380.106 21.7403 33.5176 +-380.44 19.9344 30.7333 +-380.447 18.1128 27.925 +-379.128 16.2371 25.0332 +-379.673 14.4475 22.2741 +-379.191 12.6207 19.4577 +-379.379 10.8195 16.6808 +-377.74 8.97483 13.8367 +-379.868 7.21866 11.1292 +-379.77 5.41163 8.34325 +-148.677 1.41223 2.17727 +-147.294 0.699495 1.07843 +97 0 0 +96.9963 0.467019 0.705983 +96.8852 0.933041 1.41046 +97.8665 1.41391 2.13738 +96.9409 1.86772 2.82339 +97.9067 2.35845 3.56522 +96.9669 2.80376 4.23838 +97.8172 3.30083 4.98979 +97.6615 3.7678 5.69571 +97.6979 4.24219 6.41283 +97.5275 4.7076 7.11638 +97.5488 5.18227 7.83392 +97.4631 5.65174 8.54361 +97.37 6.12076 9.25262 +97.2695 6.58934 9.96096 +97.1616 7.05742 10.6685 +96.9472 7.51723 11.3636 +96.9236 7.99187 12.0811 +96.5959 8.44098 12.76 +97.1491 8.96947 13.559 +97.0036 9.43684 14.2655 +96.7523 9.8935 14.9558 +96.5921 10.3589 15.6594 +96.5226 10.8346 16.3784 +96.5432 11.3219 17.115 +96.3604 11.7862 17.817 +96.8524 12.3366 18.6489 +96.848 12.8282 19.3921 +96.6415 13.294 20.0962 +96.4275 13.7588 20.7988 +96.8824 14.3225 21.651 +96.8449 14.8179 22.3999 +96.4145 15.2532 23.0579 +97.0326 15.8578 23.9719 +96.6824 16.3083 24.6528 +97.2791 16.9224 25.5813 +96.9127 17.3731 26.2625 +96.6342 17.839 26.9669 +97.1993 18.4653 27.9136 +96.9035 18.9325 28.6199 +96.5064 19.3795 29.2956 +97.3202 20.0753 30.3473 +97.6525 20.6815 31.2638 +97.3217 21.1509 31.9733 +97.8179 21.8046 32.9616 +97.6541 22.317 33.7361 +97.2053 22.7648 34.413 +96.9332 23.2539 35.1524 +97.4753 23.9441 36.1958 +97.0929 24.4125 36.9039 +97.5187 25.0889 37.9263 +97.1182 25.5575 38.6347 +97.3394 26.1934 39.596 +97.0109 26.6856 40.3401 +96.496 27.1267 41.0068 +96.9503 27.845 42.0926 +96.3296 28.2589 42.7183 +96.6699 28.9586 43.776 +96.2082 29.4229 44.4779 +96.6095 30.1566 45.5871 +96.735 30.8137 46.5804 +96.244 31.2783 47.2827 +96.517 31.9962 48.368 +96.7747 32.7192 49.4608 +96.5079 33.2715 50.2959 +96.231 33.8239 51.1308 +96.4471 34.5563 52.2381 +95.8135 34.9889 52.892 +95.8367 35.6649 53.9138 +96.67 36.6562 55.4124 +96.2504 37.1835 56.2094 +96.3913 37.9338 57.3437 +96.273 38.591 58.3372 +96.3824 39.3485 59.4823 +95.6765 39.7778 60.1312 +96.4718 40.8415 61.7392 +95.7433 41.2705 62.3877 +95.9478 42.1077 63.6532 +95.8221 42.8111 64.7165 +95.7586 43.5515 65.8359 +95.679 44.2946 66.9592 +95.7351 45.1119 68.1947 +96.3009 46.1864 69.819 +96.1659 46.9408 70.9594 +96.0886 47.7343 72.1589 +95.4037 48.2324 72.9118 +95.9536 49.3672 74.6273 +95.7494 50.1311 75.7821 +95.5283 50.8968 76.9395 +95.4329 51.7415 78.2165 +95.318 52.5891 79.4978 +95.7442 53.7544 81.2593 +95.5155 54.5705 82.493 +95.2683 55.3886 83.7297 +94.9342 56.1676 84.9073 +95.2582 57.3549 86.7022 +94.9496 58.1803 87.9499 +95.2185 59.3792 89.7622 +94.8661 60.2101 91.0182 +94.8844 61.2937 92.6563 +94.4898 62.129 93.919 +94.4576 63.2197 95.5679 +94.7757 64.5726 97.6129 +94.062 65.2423 98.6254 +94.0731 66.4319 100.424 +93.9928 67.5828 102.163 +93.823 68.6934 103.842 +94.3984 70.3844 106.399 +93.5166 71.015 107.352 +93.7255 72.4953 109.59 +93.493 73.6672 111.361 +93.5137 75.0691 113.48 +93.2175 76.2487 115.263 +93.4981 77.9364 117.815 +93.1333 79.1242 119.61 +93.2215 80.7325 122.042 +93.0538 82.1609 124.201 +92.7435 83.5 126.225 +92.4493 84.8892 128.325 +101.305 94.8859 143.437 +114.95 109.847 166.054 +114.932 112.078 169.425 +114.609 114.074 172.444 +114.995 116.852 176.643 +114.833 119.155 180.124 +114.929 121.808 184.134 +114.633 124.126 187.639 +114.271 126.451 191.153 +114.546 129.575 195.876 +114.516 132.462 200.24 +114.403 135.359 204.619 +113.419 137.31 207.568 +110.754 137.246 207.471 +108.42 137.572 207.964 +105.693 137.377 207.67 +103.248 137.524 207.892 +100.282 136.942 207.011 +98.1124 137.419 207.734 +95.29 136.959 207.038 +93.1902 137.516 207.88 +90.0197 136.456 206.277 +90.5284 141.045 213.214 +89.987 144.188 217.966 +89.702 147.912 223.595 +89.4295 151.854 229.554 +88.9488 155.646 235.287 +88.7348 160.131 242.066 +88.6696 165.155 249.661 +88.4796 170.242 257.352 +87.6007 174.277 263.451 +86.3679 177.836 268.831 +81.3234 173.492 262.263 +87.1403 192.828 291.493 +85.6044 196.727 297.387 +82.8495 197.991 299.299 +79.0005 196.605 297.204 +76.3868 198.273 299.725 +72.4104 196.363 296.838 +69.6262 197.625 298.745 +66.0239 196.542 297.108 +63.1906 197.722 298.892 +59.5162 196.223 296.626 +56.817 197.918 299.189 +53.1227 196.111 296.457 +50.2832 197.398 298.402 +46.8328 196.264 296.689 +43.9461 197.468 298.508 +40.5041 196.138 296.497 +37.6825 197.806 299.02 +34.2169 196.058 296.377 +31.3238 197.534 298.609 +27.9471 195.918 296.165 +25.0216 197.421 298.437 +21.7394 196.102 296.443 +18.731 197.191 298.09 +15.5198 196.116 296.464 +12.4801 197.176 298.066 +9.30067 195.96 296.228 +6.234 197.046 297.87 +3.09443 195.633 295.734 +2.18347e-14 196.744 297.414 +-3.08919 195.303 295.235 +-6.22527 196.77 297.453 +-9.26402 195.188 295.061 +-12.4487 196.68 297.317 +-15.4762 195.565 295.631 +-18.6735 196.585 297.173 +-21.715 195.882 296.111 +-24.9449 196.816 297.522 +-27.8451 195.203 295.084 +-31.1756 196.6 297.196 +-34.0252 194.96 294.717 +-37.3689 196.161 296.532 +-40.2777 195.041 294.84 +-43.7023 196.373 296.853 +-46.5848 195.226 295.118 +-50.0466 196.469 296.997 +-52.7384 194.693 294.312 +-56.2382 195.902 296.141 +-59.021 194.59 294.158 +-62.6175 195.929 296.181 +-65.3861 194.643 294.238 +-68.8057 195.296 295.225 +-71.5332 193.984 293.242 +-75.368 195.629 295.729 +-78.0698 194.289 293.703 +-81.7247 195.304 295.237 +-84.3672 193.883 293.089 +-88.3015 195.397 295.377 +-91.1133 194.377 293.835 +-94.9089 195.423 295.417 +-97.542 194.055 293.348 +-101.572 195.434 295.433 +-104.347 194.355 293.803 +-108.207 195.27 295.186 +-111.021 194.268 293.671 +-114.862 195.038 294.835 +-117.688 194.059 293.355 +-122.088 195.624 295.72 +-124.376 193.781 292.934 +-128.873 195.352 295.309 +-131.608 194.207 293.578 +-136.108 195.627 295.724 +-140.077 196.196 296.585 +-145.123 198.174 299.575 +-146.759 195.48 295.503 +-146.212 190.043 287.283 +-145.982 185.233 280.013 +-145.978 180.894 273.453 +-149.497 180.988 273.595 +-153.326 181.411 274.235 +-164.111 189.829 286.96 +-113.231 128.087 193.627 +-113.156 125.216 189.287 +-114.042 123.487 186.673 +-115.576 122.493 185.17 +-116.851 121.25 183.291 +-119.003 120.925 182.8 +-120.718 120.154 181.634 +-123.943 120.865 182.71 +-126.5 120.885 182.739 +-506.879 474.763 717.688 +-509.785 468.095 707.609 +-514.139 462.894 699.747 +-517.413 456.845 690.603 +-521.396 451.545 682.591 +-524.596 445.686 673.733 +-528.921 440.889 666.482 +-532.016 435.169 657.836 +-535.99 430.273 650.434 +-539.621 425.19 642.75 +-543.596 420.465 635.607 +-546.64 415.109 627.511 +-1948.94 1453.15 2196.69 +-572.326 419.035 633.445 +-574.184 412.849 624.095 +-577.121 407.547 616.08 +-581.678 403.458 609.898 +-585.268 398.756 602.79 +-589.835 394.773 596.769 +-598.564 393.567 594.946 +-585.542 378.251 571.794 +-585.861 371.837 562.098 +-591.322 368.754 557.437 +-594.054 364.007 550.261 +-598.776 360.523 544.994 +-602.409 356.416 538.786 +-606.785 352.782 533.292 +-609.632 348.299 526.516 +-614.557 345.035 521.582 +-617.587 340.737 515.084 +-622.953 337.75 510.57 +-626.329 333.704 504.452 +-630.931 330.334 499.358 +-634.742 326.568 493.666 +-142.442 72.0131 108.861 +-142.461 70.7706 106.982 +-142.751 69.6799 105.333 +-143.772 68.9538 104.236 +-142.728 67.2556 101.669 +-143.097 66.247 100.144 +-142.982 65.0288 98.3026 +-145.637 65.0675 98.361 +-149.791 65.7372 99.3735 +-677.926 292.222 441.746 +-682.998 289.149 437.1 +-687.625 285.882 432.162 +-134.485 54.9041 82.9973 +-140.931 56.492 85.3977 +-702.337 276.398 417.824 +-387.049 149.525 226.034 +-388.575 147.344 222.736 +-383.264 142.629 215.609 +-722.229 263.742 398.693 +-726.624 260.344 393.557 +-732.232 257.37 389.06 +-737.123 254.127 384.158 +-743.161 251.26 379.824 +-747.621 247.843 374.658 +-754.442 245.186 370.643 +-758.292 241.544 365.137 +-765.13 238.835 361.042 +-769.665 235.383 355.823 +-776.523 232.616 351.64 +-781.762 229.335 346.68 +-2906.29 834.713 1261.82 +-774.196 217.639 329 +-775.64 213.362 322.535 +-2944.9 792.451 1197.93 +-791.026 208.165 314.679 +-413.367 106.348 160.764 +-808.319 203.239 307.232 +-412.374 101.297 153.128 +-3004.75 720.826 1089.66 +-412.11 96.5129 145.896 +-407.985 93.2373 140.945 +-409.074 91.1866 137.845 +-406.686 88.3849 133.61 +-397.145 84.1102 127.147 +-389.468 80.3397 121.448 +-383.395 76.9896 116.384 +-382.43 74.7171 112.948 +-381.8 72.5317 109.645 +-381.7 70.4633 106.518 +-382.325 68.5378 103.607 +-382.917 66.6112 100.695 +-381.661 64.3783 97.3193 +-382.281 62.4755 94.4428 +-381.044 60.2829 91.1283 +-381.983 58.4457 88.351 +-382.024 56.476 85.3735 +-380.288 54.2616 82.026 +-380.744 52.3752 79.1744 +-380.683 50.4241 76.225 +-380.979 48.5273 73.3576 +-383.489 46.9061 70.9069 +-380.891 44.6679 67.5235 +-381.289 42.7994 64.6989 +-380.184 40.7725 61.6349 +-380.421 38.9003 58.8047 +-380.53 37.0193 55.9613 +-381.199 35.1949 53.2034 +-381.742 33.3582 50.4269 +-380.376 31.3641 47.4124 +-380.56 29.5085 44.6073 +-380.318 27.6247 41.7596 +-380.542 25.7791 38.9697 +-380.439 23.9147 36.1513 +-380.206 22.0475 33.3287 +-379.843 20.1791 30.5043 +-378.554 18.2726 27.6223 +-379.128 16.4623 24.8857 +-378.975 14.6209 22.1021 +-378.393 12.7688 19.3023 +-381.676 11.036 16.6829 +-379.938 9.15226 13.8353 +-379.169 7.30531 11.0433 +-379.27 5.47945 8.28317 +-147.378 1.4193 2.14552 +-145.194 0.699083 1.05679 +96.9 0 0 +96.8963 0.472881 0.701017 +96.8852 0.945727 1.40198 +96.8668 1.4185 2.10284 +96.841 1.89116 2.80353 +96.9077 2.36612 3.50763 +96.7672 2.83602 4.20423 +97.7174 3.34229 4.95474 +97.6615 3.81904 5.66148 +96.6013 4.25161 6.30275 +97.4278 4.76674 7.06639 +97.3497 5.24201 7.77096 +97.3637 5.72271 8.48357 +97.2707 6.19766 9.18765 +97.1703 6.67211 9.89099 +97.0625 7.14605 10.5936 +96.9472 7.61944 11.2953 +96.7258 8.08404 11.9841 +96.5959 8.55575 12.6834 +96.2615 9.00833 13.3543 +96.9051 9.55547 14.1654 +96.654 10.0178 14.8508 +95.7087 10.4038 15.4229 +96.4246 10.9708 16.2635 +96.2497 11.4409 16.9604 +96.0675 11.9102 17.6561 +96.7549 12.4917 18.5182 +96.6536 12.9765 19.2369 +96.4474 13.4477 19.9353 +97.0084 14.0299 20.7984 +96.7858 14.5028 21.4995 +96.6521 14.9895 22.2209 +97.1836 15.5839 23.1021 +96.9367 16.0576 23.8044 +96.6824 16.53 24.5047 +96.3254 16.9844 25.1783 +96.9127 17.6093 26.1047 +96.729 18.0994 26.8312 +97.1993 18.7164 27.7458 +96.8093 19.1713 28.4203 +97.4461 19.8343 29.4031 +97.1329 20.3091 30.107 +96.7189 20.7623 30.7788 +97.3217 21.4384 31.7812 +96.9834 21.9126 32.484 +97.4693 22.5776 33.4699 +97.2053 23.0743 34.2062 +96.9332 23.5701 34.9412 +97.3839 24.2469 35.9446 +97.0019 24.7213 36.6477 +97.5187 25.43 37.6984 +97.0279 25.8809 38.3668 +97.3394 26.5495 39.358 +96.8319 26.9986 40.0237 +96.496 27.4955 40.7604 +96.7729 28.172 41.7632 +97.1242 28.8794 42.812 +96.6699 29.3523 43.513 +96.9079 30.0398 44.5322 +96.4354 30.5116 45.2315 +97.5145 31.4844 46.6736 +97.0194 31.959 47.3773 +96.4313 32.4025 48.0347 +96.6041 33.1056 49.077 +96.7623 33.8129 50.1255 +96.737 34.4641 51.0909 +96.3632 34.9957 51.879 +96.564 35.7425 52.986 +96.5 36.4 53.9607 +95.9283 36.8695 54.6568 +96.2504 37.6891 55.8717 +96.2285 38.3847 56.9029 +96.273 39.1158 57.9867 +96.3021 39.8502 59.0755 +95.7564 40.3523 59.8198 +95.6784 41.0564 60.8635 +95.7433 41.8316 62.0128 +95.7912 42.6106 63.1675 +95.7444 43.358 64.2755 +95.6814 44.1081 65.3876 +95.679 44.8969 66.5569 +95.7351 45.7253 67.7849 +95.6217 46.4843 68.9101 +96.091 47.542 70.4781 +96.0886 48.3833 71.7253 +95.9935 49.1904 72.9217 +95.8805 50.0003 74.1223 +95.7494 50.8127 75.3267 +95.6003 51.6277 76.5348 +95.3616 52.4058 77.6884 +95.318 53.3042 79.0202 +95.6741 54.4454 80.7119 +95.4461 55.2723 81.9377 +95.1994 56.1009 83.1661 +94.9342 56.9313 84.3972 +95.2582 58.1348 86.1812 +94.9496 58.9714 87.4214 +94.5559 59.7677 88.6019 +94.8661 61.0288 90.4714 +94.8194 62.0846 92.0365 +95.004 63.316 93.862 +94.4576 64.0793 94.9936 +94.6498 65.3639 96.8979 +93.9997 66.0858 97.9681 +94.1346 67.3793 99.8857 +93.9928 68.5017 101.549 +94.3044 69.9847 103.748 +93.863 70.9371 105.16 +93.9869 72.3424 107.243 +93.6674 73.4357 108.864 +93.6077 74.7605 110.828 +93.3437 75.9517 112.594 +93.2175 77.2854 114.571 +93.4429 78.9497 117.038 +93.4601 80.4814 119.309 +93.1678 81.7833 121.239 +93.1068 83.3256 123.525 +92.9002 84.7779 125.678 +91.7798 85.4199 126.63 +95.5187 90.6833 134.432 +114.9 111.293 164.985 +115.227 113.893 168.84 +115.142 116.163 172.205 +114.948 118.392 175.509 +114.739 120.676 178.895 +114.837 123.365 182.881 +114.587 125.764 186.437 +114.717 128.671 190.747 +114.546 131.337 194.699 +114.43 134.162 198.887 +114.403 137.199 203.389 +114.041 139.94 207.452 +111.364 139.878 207.361 +109.138 140.365 208.082 +106.005 139.657 207.033 +104.358 140.892 208.864 +100.919 139.685 207.074 +98.6988 140.12 207.719 +95.9351 139.761 207.187 +93.7155 140.171 207.795 +90.9432 139.73 207.141 +89.8942 141.961 210.448 +90.0196 146.201 216.735 +89.7655 150.029 222.409 +89.4295 153.919 228.175 +89.039 157.923 234.111 +88.9395 162.683 241.167 +88.7548 167.561 248.399 +88.5623 172.718 256.044 +86.3714 174.168 258.193 +85.3068 178.04 263.933 +85.63 185.163 274.492 +87.2612 195.721 290.144 +84.2738 196.302 291.006 +81.6797 197.85 293.301 +77.7668 196.167 290.805 +75.2848 198.07 293.627 +71.294 195.964 290.505 +68.7485 197.787 293.206 +64.8394 195.64 290.025 +62.2702 197.491 292.769 +58.5919 195.802 290.264 +55.941 197.517 292.806 +52.3245 195.791 290.248 +49.5317 197.091 292.175 +45.9583 195.219 289.4 +43.2636 197.045 292.107 +39.7683 195.193 289.361 +37.0972 197.382 292.606 +33.5748 194.994 289.067 +30.8444 197.156 292.272 +27.5156 195.516 289.84 +24.638 197.037 292.096 +21.3304 195.029 289.118 +18.4798 197.192 292.324 +15.2319 195.096 289.217 +12.316 197.23 292.382 +9.13052 194.99 289.061 +6.1415 196.761 291.686 +3.04731 195.274 289.482 +2.15469e-14 196.791 291.731 +-3.0412 194.883 288.901 +-6.13103 196.425 291.189 +-9.12267 194.823 288.813 +-12.2567 196.28 290.973 +-15.197 194.648 288.554 +-18.3856 196.187 290.835 +-21.2754 194.526 288.373 +-24.5613 196.423 291.185 +-27.4215 194.847 288.848 +-30.6875 196.154 290.786 +-33.4981 194.549 288.407 +-36.8045 195.824 290.297 +-39.6551 194.637 288.537 +-43.0199 195.935 290.462 +-45.7233 194.22 287.92 +-49.1699 195.651 290.041 +-51.7924 193.8 287.296 +-55.3934 195.583 289.94 +-57.9812 193.761 287.239 +-61.6277 195.454 289.748 +-64.1834 193.661 287.09 +-67.928 195.426 289.707 +-70.4168 193.553 286.93 +-74.2037 195.226 289.41 +-76.6413 193.327 286.596 +-80.4875 194.963 289.02 +-83.0832 193.529 286.894 +-86.9951 195.124 289.259 +-89.3356 193.176 286.371 +-93.5372 195.218 289.398 +-96.0722 193.729 287.192 +-100.084 195.188 289.355 +-102.359 193.245 286.474 +-106.803 195.358 289.607 +-108.916 193.176 286.372 +-113.533 195.403 289.673 +-115.721 193.41 286.719 +-120.167 195.164 289.319 +-122.34 193.2 286.407 +-126.855 194.908 288.939 +-129.227 193.286 286.534 +-133.743 194.841 288.839 +-136.742 194.129 287.784 +-142.763 197.602 292.933 +-145.267 196.123 290.74 +-146.602 193.141 286.32 +-146.261 188.111 278.863 +-146.507 184.018 272.795 +-150.865 185.128 274.441 +-154.425 185.196 274.541 +-119.381 139.967 207.492 +-112.881 129.426 191.867 +-113.334 127.119 188.446 +-114.587 125.764 186.437 +-116.268 124.902 185.16 +-117.368 123.442 182.995 +-119.91 123.503 183.086 +-121.493 122.571 181.704 +-124.928 123.482 183.054 +-127.95 123.933 183.723 +-508.655 482.905 715.876 +-511.433 475.994 705.631 +-516.124 471 698.229 +-518.685 464.195 688.141 +-523.007 459.099 680.587 +-526.23 453.153 671.772 +-530.246 448.003 664.136 +-533.582 442.385 655.808 +-538.199 437.921 649.19 +-540.538 431.704 639.975 +-545.454 427.639 633.948 +-548.345 422.065 625.685 +-1948.94 1472.91 2183.5 +-576.358 427.725 634.075 +-576.375 420.06 622.713 +-579.153 414.543 614.535 +-583.981 410.563 608.635 +-586.652 405.133 600.585 +-591.807 401.479 595.167 +-594.964 396.519 587.815 +-584.828 382.927 567.665 +-587.763 378.116 560.534 +-592.382 374.438 555.081 +-595.928 370.12 548.68 +-601.073 366.827 543.798 +-603.637 361.998 536.64 +-608.643 358.673 531.711 +-611.508 354.121 524.962 +-616.8 351.003 520.34 +-619.567 346.477 513.631 +-625.592 343.793 509.653 +-628.056 339.173 502.803 +-633.324 336.095 498.24 +-636.131 331.733 491.774 +-141.484 72.5013 107.479 +-143.799 72.4067 107.339 +-143.575 71.035 105.305 +-144.3 70.148 103.99 +-142.728 68.1701 101.058 +-142.867 67.0399 99.3824 +-143.599 66.1977 98.134 +-148.202 67.1131 99.491 +-676.721 301.024 446.249 +-674.143 294.543 436.641 +-681.173 292.297 433.313 +-688.743 290.24 430.263 +-694.773 287.5 426.201 +-136.724 55.551 82.3509 +-136.283 54.3621 80.5884 +-708.239 277.327 411.121 +-386.186 148.428 220.036 +-383.679 144.724 214.544 +-384.755 142.414 211.121 +-728.721 264.646 392.321 +-735.353 261.981 388.371 +-738.65 258.116 382.641 +-744.952 255.29 378.452 +-749.764 251.933 373.475 +-756.683 249.258 369.509 +-760.544 245.556 364.021 +-767.48 242.826 359.975 +-772.027 239.315 354.77 +-779.687 236.739 350.952 +-783.793 233.057 345.492 +-791.125 230.308 341.417 +-795.223 226.591 335.907 +-803.651 224.074 332.175 +-782.22 213.352 316.281 +-790.304 210.803 312.503 +-800.542 208.758 309.471 +-412.121 105.031 155.702 +-411.278 102.401 151.804 +-412.494 100.301 148.69 +-410.729 97.4975 144.534 +-409.371 94.8261 140.574 +-408.239 92.238 136.737 +-408.639 90.0167 133.444 +-390.423 83.8105 124.244 +-385.253 80.5507 119.411 +-381.797 77.7115 115.203 +-381.864 75.6212 112.104 +-381.8 73.5179 108.986 +-381.795 71.4393 105.904 +-382.895 69.5732 103.138 +-382.44 67.433 99.9652 +-381.47 65.2207 96.6857 +-380.843 63.0867 93.5221 +-381.044 61.1026 90.5808 +-382.85 59.3751 88.02 +-381.251 57.1282 84.689 +-381.644 55.1954 81.8237 +-382.976 53.3985 79.1599 +-381.752 51.2533 75.9798 +-381.856 49.3003 73.0846 +-381.732 47.326 70.1579 +-381.967 45.4032 67.3074 +-380.407 43.281 64.1614 +-380.773 41.3909 61.3595 +-380.421 39.4292 58.4514 +-380.136 37.4838 55.5675 +-381.199 35.6735 52.8837 +-380.359 33.6893 49.9423 +-380.376 31.7905 47.1275 +-380.065 29.8708 44.2816 +-381.012 28.0514 41.5844 +-379.153 26.0342 38.5941 +-380.041 24.2145 35.8966 +-379.51 22.3064 33.0679 +-381.137 20.5232 30.4243 +-381.443 18.6624 27.6658 +-379.626 16.7081 24.7687 +-380.271 14.8705 22.0445 +-380.09 13.0005 19.2724 +-379.779 11.1305 16.5002 +-378.739 9.2474 13.7087 +-380.168 7.42416 11.0059 +-378.97 5.54957 8.22689 +-146.678 1.43177 2.12251 +-146.494 0.714935 1.05985 +96.9 0 0 +96.8963 0.479186 0.696722 +96.8852 0.958337 1.39339 +96.8668 1.43741 2.08996 +96.841 1.91638 2.78636 +96.8078 2.3952 3.48255 +96.8671 2.87681 4.18279 +96.8191 3.35572 4.87912 +97.5618 3.866 5.62105 +97.4985 4.34831 6.32232 +97.4278 4.83029 7.0231 +96.4539 5.26302 7.65228 +97.3637 5.79902 8.4316 +97.2707 6.2803 9.13137 +97.2695 6.76798 9.84045 +97.0625 7.24133 10.5287 +97.0463 7.72896 11.2377 +96.7258 8.19183 11.9107 +96.3984 8.65208 12.5799 +96.2615 9.12844 13.2725 +96.9051 9.68288 14.0786 +96.654 10.1514 14.7598 +96.494 10.629 15.4542 +96.3266 11.1058 16.1474 +96.2497 11.5934 16.8565 +96.8486 12.1671 17.6906 +96.7549 12.6583 18.4048 +96.5563 13.1363 19.0998 +96.3504 13.6133 19.7933 +97.1052 14.2311 20.6916 +96.7858 14.6961 21.3677 +96.5558 15.1742 22.0628 +96.3184 15.6511 22.7562 +96.9367 16.2717 23.6585 +96.5868 16.7338 24.3305 +96.4208 17.2279 25.0488 +96.9127 17.8441 25.9448 +96.729 18.3407 26.6668 +96.3483 18.7999 27.3345 +96.715 19.408 28.2187 +96.5064 19.905 28.9412 +97.1329 20.5799 29.9225 +97.6525 21.2422 30.8855 +97.3217 21.7243 31.5865 +96.9834 22.2047 32.285 +97.4693 22.8787 33.2649 +97.1133 23.3598 33.9644 +97.6669 24.0651 34.99 +97.3839 24.5702 35.7244 +97.0019 25.0509 36.4232 +97.5187 25.7691 37.4675 +96.3058 26.0308 37.848 +96.6204 26.7048 38.828 +96.9214 27.3838 39.8153 +96.496 27.8621 40.5107 +96.8616 28.5737 41.5453 +97.2125 29.2911 42.5883 +96.6699 29.7437 43.2464 +96.9953 30.4678 44.2993 +96.4354 30.9184 44.9544 +97.4279 31.8758 46.3465 +96.9333 32.3564 47.0453 +97.1171 33.068 48.0799 +96.6894 33.5766 48.8194 +96.7623 34.2637 49.8184 +96.231 34.7409 50.5122 +96.3632 35.4623 51.5612 +96.564 36.219 52.6614 +96.0026 36.6951 53.3536 +95.9283 37.3611 54.3219 +96.0865 38.1266 55.4349 +96.2285 38.8965 56.5543 +96.1921 39.604 57.5831 +95.5786 40.0782 58.2725 +95.5967 40.8222 59.3542 +96.3131 41.8798 60.8919 +95.7433 42.3894 61.6329 +95.8695 43.214 62.8318 +96.3661 44.2213 64.2965 +95.6814 44.6962 64.987 +95.7556 45.532 66.2021 +95.6591 46.2982 67.3162 +96.3009 47.4386 68.9743 +96.1659 48.2134 70.1009 +96.0886 49.0284 71.2859 +95.9935 49.8463 72.475 +95.8805 50.6669 73.6682 +95.0966 51.1392 74.3548 +95.6003 52.316 76.066 +95.4329 53.1443 77.2702 +95.2473 53.9748 78.4778 +95.0433 54.8076 79.6886 +95.5155 56.05 81.495 +95.1994 56.8489 82.6566 +95.548 58.0638 84.4231 +95.3258 58.9518 85.7142 +94.8827 59.7157 86.8249 +95.2185 60.989 88.6763 +94.9317 61.885 89.9789 +94.8844 62.9554 91.5353 +94.2969 63.683 92.5933 +94.394 64.8901 94.3482 +94.5869 66.1912 96.24 +93.9997 66.967 97.368 +93.9499 68.1434 99.0785 +93.9928 69.415 100.927 +93.823 70.5557 102.586 +93.8036 71.837 104.449 +93.8105 73.1693 106.386 +93.6674 74.4148 108.197 +93.5503 75.7108 110.081 +93.457 77.0578 112.04 +93.6089 78.6445 114.347 +93.0566 79.6714 115.84 +93.4601 81.5545 118.578 +93.2752 82.9695 120.635 +93.0538 84.3884 122.698 +93.1092 86.1015 125.189 +92.0888 86.8507 126.278 +91.966 88.4742 128.639 +114.85 112.728 163.903 +114.833 115.018 167.232 +114.706 117.266 170.501 +114.566 119.572 173.854 +114.833 122.386 177.945 +114.791 124.959 181.687 +114.542 127.39 185.222 +114.673 130.335 189.504 +114.152 132.629 192.839 +114.516 136.053 197.817 +114.276 138.874 201.919 +114.414 142.27 206.856 +112.585 143.296 208.348 +110.254 143.692 208.923 +107.138 143.031 207.963 +104.932 143.556 208.726 +101.893 142.914 207.792 +99.6883 143.412 208.517 +96.8669 143 207.918 +94.591 143.367 208.452 +91.764 142.872 207.731 +89.527 143.266 208.305 +90.0522 148.204 215.484 +89.5434 151.653 220.5 +89.275 155.701 226.385 +88.9488 159.866 232.44 +88.9102 164.798 239.611 +88.698 169.686 246.719 +88.0661 174.041 253.05 +86.2645 176.272 256.294 +83.9609 177.567 258.177 +84.0275 184.12 267.705 +86.7532 197.175 286.687 +82.8731 195.613 284.416 +80.2175 196.899 286.285 +76.23 194.854 283.312 +73.7671 196.665 285.945 +70.018 195.023 283.558 +67.5273 196.864 286.234 +63.6913 194.739 283.144 +61.1589 196.553 285.782 +57.5521 194.892 283.367 +54.7833 196.008 284.99 +51.3933 194.871 283.336 +48.7523 196.577 285.816 +45.149 194.338 282.562 +42.5811 196.523 285.738 +39.123 194.586 282.922 +36.4282 196.407 285.569 +33.0668 194.605 282.95 +30.2866 196.172 285.229 +27.0213 194.563 282.889 +24.1985 196.103 285.128 +21.019 194.744 283.153 +18.1553 196.312 285.432 +15.0007 194.696 283.083 +12.0682 195.839 284.744 +8.9656 194.022 282.102 +6.02981 195.758 284.627 +2.99146 194.251 282.435 +2.11673e-14 195.902 284.835 +-2.98535 193.854 281.858 +-6.0333 195.872 284.791 +-8.95252 193.739 281.69 +-12.0682 195.839 284.744 +-14.9614 194.187 282.342 +-18.0925 195.633 284.445 +-20.9335 193.952 282.001 +-24.1218 195.481 284.224 +-26.9193 193.829 281.821 +-30.1472 195.269 283.916 +-32.8943 193.59 281.473 +-36.2505 195.448 284.176 +-38.9419 193.685 281.613 +-42.2521 195.004 283.53 +-44.901 193.271 281.01 +-48.3766 195.061 283.613 +-50.9942 193.357 281.136 +-54.361 194.497 282.793 +-56.9414 192.824 280.36 +-60.5338 194.544 282.861 +-63.1811 193.178 280.875 +-66.6687 194.361 282.595 +-69.1408 192.58 280.005 +-72.8523 194.226 282.399 +-75.2561 192.364 279.692 +-79.0478 194.028 282.111 +-81.5658 192.528 279.929 +-85.4226 194.151 282.29 +-87.7081 192.185 279.432 +-91.6478 193.824 281.815 +-94.0946 192.271 279.557 +-98.0993 193.869 281.88 +-100.57 192.398 279.742 +-104.903 194.441 282.711 +-107.322 192.888 280.453 +-111.401 194.29 282.492 +-113.754 192.657 280.117 +-117.921 194.07 282.171 +-120.304 192.517 279.915 +-124.495 193.832 281.826 +-126.81 192.201 279.454 +-131.342 193.894 281.916 +-133.773 192.446 279.811 +-139.953 196.296 285.409 +-142.32 194.706 283.097 +-146.133 195.091 283.656 +-146.421 190.826 277.456 +-146.547 186.523 271.199 +-148.419 184.554 268.336 +-157.594 191.517 278.46 +-113.698 135.081 196.404 +-113.363 131.713 191.506 +-113.914 129.474 188.251 +-114.905 127.794 185.809 +-117.099 127.473 185.341 +-118.682 126.488 183.91 +-121.055 126.345 183.702 +-122.657 125.395 182.32 +-126.257 126.46 183.869 +-130.1 127.696 185.666 +-510.381 491.003 713.904 +-513.029 483.846 703.497 +-517.326 478.391 695.567 +-520.487 472.019 686.301 +-525.425 467.371 679.544 +-527.537 460.335 669.314 +-532.288 455.724 662.61 +-535.092 449.551 653.634 +-539.898 445.16 647.25 +-542.603 439.131 638.484 +-547.429 434.909 632.345 +-555.457 433.239 629.917 +-167.681 128.414 186.71 +-172.3 129.571 188.392 +-578.323 427.099 620.99 +-581.615 421.857 613.367 +-586.098 417.545 607.098 +-588.981 412.165 599.275 +-594.415 408.624 594.127 +-585.387 395.338 574.809 +-587.296 389.67 566.568 +-589.797 384.484 559.028 +-595.033 381.128 554.149 +-597.534 376.065 546.788 +-602.897 372.845 542.106 +-606.16 368.358 535.582 +-611.121 364.935 530.605 +-614.009 360.309 523.879 +-619.534 357.259 519.445 +-622.466 352.74 512.873 +-627.874 349.648 508.378 +-630.933 345.27 502.013 +-636.008 342.02 497.287 +-638.984 337.664 490.953 +-143.179 74.3485 108.101 +-143.65 73.2962 106.571 +-143.575 71.9821 104.66 +-142.942 70.4146 102.381 +-142.652 69.0421 100.385 +-142.867 67.9337 98.7736 +-148.383 69.3153 100.782 +-148.746 68.2579 99.2449 +-693 312.375 454.185 +-701.093 310.402 451.315 +-707.354 307.579 447.21 +-686.906 293.326 426.487 +-692.683 290.457 422.316 +-701.337 288.753 419.838 +-135.713 54.8565 79.7598 +-710.532 281.935 409.925 +-716.743 279.149 405.875 +-384.425 146.939 213.645 +-727.315 272.8 396.643 +-730.985 269.007 391.129 +-737.714 266.326 387.231 +-741.194 262.458 381.606 +-748.021 259.76 377.683 +-752.25 256.138 372.417 +-759.009 253.358 368.375 +-763.661 249.85 363.274 +-770.178 246.929 359.027 +-775.175 243.495 354.035 +-782.147 240.653 349.902 +-786.177 236.882 344.42 +-793.342 234.032 340.276 +-798.342 230.512 335.157 +-806.604 227.895 331.353 +-811.072 224.171 325.938 +-815.396 220.396 320.449 +-797.551 210.751 306.426 +-2981.49 769.972 1119.52 +-413.927 104.435 151.845 +-3004.75 740.369 1076.47 +-413.215 99.3953 144.518 +-409.741 96.1771 139.839 +-409.444 93.7438 136.301 +-401.01 89.5141 130.151 +-388.183 84.4406 122.774 +-383.38 81.228 118.103 +-379.918 78.3601 113.933 +-381.581 76.5728 111.335 +-382.746 74.6829 108.587 +-382.364 72.4995 105.412 +-381.088 70.1681 102.022 +-381.582 68.1785 99.1295 +-381.757 66.1402 96.1658 +-380.556 63.8797 92.8792 +-380.66 61.8544 89.9344 +-381.116 59.8942 87.0844 +-381.154 57.8751 84.1487 +-382.709 56.0874 81.5494 +-381.617 53.9185 78.3959 +-381.363 51.8838 75.4375 +-380.881 49.8302 72.4516 +-382.22 48.0183 69.8172 +-380.206 45.7965 66.5867 +-380.407 43.858 63.7683 +-382.344 42.1158 61.2351 +-379.733 39.8827 57.9882 +-382.401 38.2099 55.5561 +-381.101 36.1397 52.5461 +-380.359 34.1385 49.6364 +-380.376 32.2144 46.8388 +-380.56 30.3085 44.0676 +-379.624 28.3219 41.1792 +-379.649 26.4158 38.4078 +-379.544 24.5053 35.63 +-381.3 22.7104 33.0203 +-380.739 20.7751 30.2064 +-379.351 18.8075 27.3456 +-379.925 16.9442 24.6364 +-379.872 15.0529 21.8865 +-381.787 13.2326 19.2398 +-380.478 11.2996 16.4293 +-379.039 9.37812 13.6355 +-379.769 7.51521 10.9269 +-377.97 5.60872 8.15492 +-146.578 1.44986 2.10806 +-145.794 0.721005 1.04832 +97 0 0 +96.8963 0.485452 0.692371 +96.8852 0.970868 1.38469 +96.8668 1.45621 2.07691 +96.9409 1.94344 2.77181 +96.9077 2.42902 3.46437 +96.8671 2.91442 4.15667 +96.8191 3.3996 4.84865 +97.5618 3.91655 5.58594 +97.4985 4.40517 6.28283 +97.4278 4.89345 6.97924 +97.4493 5.38687 7.68297 +97.2642 5.86887 8.37042 +97.2707 6.36242 9.07434 +97.2695 6.85648 9.77899 +97.0625 7.33602 10.4629 +96.8482 7.81401 11.1447 +96.7258 8.29894 11.8363 +96.3984 8.76522 12.5013 +97.1491 9.33311 13.3113 +96.9051 9.80949 13.9907 +96.654 10.2842 14.6677 +96.494 10.7679 15.3577 +96.4246 11.2624 16.0629 +96.2497 11.745 16.7512 +95.9699 12.2144 17.4206 +96.7549 12.8238 18.2898 +96.5563 13.3081 18.9805 +96.3504 13.7913 19.6697 +96.1371 14.2735 20.3574 +96.7858 14.8883 21.2343 +96.5558 15.3726 21.925 +97.0874 15.9823 22.7947 +96.8408 16.4681 23.4874 +96.5868 16.9526 24.1785 +96.4208 17.4532 24.8924 +96.8176 18.0597 25.7575 +96.6342 18.5623 26.4742 +97.1048 19.1952 27.3769 +96.8093 19.681 28.0698 +97.4461 20.3616 29.0405 +97.1329 20.849 29.7356 +97.6525 21.52 30.6926 +97.3217 22.0084 31.3892 +96.9834 22.4951 32.0834 +97.4693 23.1778 33.0572 +97.2053 23.6877 33.7843 +96.9332 24.1967 34.5103 +97.3839 24.8915 35.5012 +97.0019 25.3784 36.1957 +96.6124 25.8634 36.8875 +97.1182 26.5936 37.9289 +97.3394 27.2553 38.8726 +96.9214 27.7419 39.5666 +97.1197 28.4089 40.5179 +96.7729 28.9209 41.2481 +97.1242 29.6472 42.2839 +96.582 30.1052 42.9372 +96.9079 30.8384 43.9829 +96.4354 31.3227 44.6737 +96.735 32.063 45.7295 +96.244 32.5464 46.4189 +96.4313 33.2639 47.4423 +96.6041 33.9857 48.4717 +96.6775 34.6813 49.4638 +96.1466 35.1643 50.1528 +96.4471 35.9573 51.2838 +96.3972 36.6292 52.2421 +96.0026 37.175 53.0204 +95.9283 37.8496 53.9827 +96.0865 38.6251 55.0887 +95.4958 39.1051 55.7732 +96.1921 40.1219 57.2235 +96.3021 40.9096 58.3469 +95.5967 41.356 58.9835 +95.7577 42.1828 60.1628 +95.7433 42.9437 61.248 +95.7912 43.7433 62.3885 +95.1227 44.2215 63.0705 +95.6814 45.2807 64.5811 +95.679 46.0904 65.736 +95.6591 46.9036 66.8958 +95.6217 47.72 68.0602 +95.6416 48.5776 69.2834 +96.0886 49.6695 70.8407 +95.33 50.149 71.5245 +95.8073 51.2903 73.1523 +95.7494 52.1635 74.3977 +95.5283 52.9602 75.534 +95.3616 53.799 76.7303 +95.2473 54.6806 77.9877 +95.6741 55.8928 79.7165 +94.8209 56.3699 80.3971 +95.1994 57.5922 82.1403 +94.9342 58.4448 83.3562 +95.3258 59.7227 85.1789 +94.8827 60.4966 86.2826 +95.2185 61.7865 88.1224 +94.8661 62.6511 89.3555 +94.8194 63.735 90.9014 +94.2969 64.5158 92.015 +94.4576 65.7828 93.822 +94.461 66.9677 95.512 +94.56 68.2468 97.3363 +94.0731 69.1251 98.589 +94.0536 70.3681 100.362 +93.8831 71.5243 102.011 +93.863 72.8229 103.863 +93.7517 74.0796 105.655 +93.4351 75.2008 107.254 +93.5503 76.7009 109.394 +93.457 78.0655 111.34 +93.3293 79.4347 113.293 +93.0566 80.7132 115.116 +93.3511 82.5244 117.7 +93.3289 84.1026 119.95 +93.0008 85.4431 121.862 +92.9525 87.081 124.198 +92.7069 88.5765 126.331 +91.7122 89.3837 127.483 +96.85 96.3032 137.351 +114.882 116.571 166.259 +114.754 118.849 169.508 +114.948 121.539 173.344 +114.786 123.935 176.762 +114.652 126.441 180.335 +114.587 129.107 184.138 +114.584 131.937 188.174 +114.24 134.467 191.782 +114.516 137.832 196.582 +114.234 140.638 200.583 +114.082 143.712 204.968 +113.235 146.009 208.244 +111.331 146.992 209.646 +107.959 146.011 208.247 +105.659 146.441 208.86 +102.755 146.007 208.241 +100.568 146.569 209.043 +97.6911 146.103 208.378 +95.4665 146.587 209.068 +92.5849 146.034 208.28 +90.5284 146.763 209.319 +90.28 150.522 214.681 +90.0193 154.453 220.287 +89.3677 157.901 225.205 +89.1593 162.34 231.535 +88.9102 166.953 238.114 +88.7548 172.015 245.335 +86.8533 173.889 248.007 +84.5809 175.091 249.722 +86.0056 184.27 262.813 +81.2984 180.47 257.394 +85.1323 196.022 279.574 +81.7059 195.38 278.658 +78.8004 195.95 279.472 +75.2128 194.768 277.786 +72.6236 196.148 279.754 +69.081 194.929 278.016 +66.3634 196 279.544 +62.853 194.689 277.673 +60.2906 196.296 279.965 +56.7929 194.836 277.882 +53.9542 195.566 278.925 +50.6986 194.75 277.76 +47.8755 195.565 278.923 +44.5616 194.318 277.144 +41.8134 195.503 278.834 +38.5344 194.164 276.925 +35.7696 195.378 278.655 +32.6355 194.578 277.515 +29.7375 195.135 278.309 +26.5898 193.96 276.633 +23.8358 195.689 279.1 +20.7382 194.655 277.624 +17.878 195.841 279.316 +14.7739 194.26 277.061 +11.8833 195.359 278.629 +8.85566 194.148 276.902 +5.93207 195.104 278.265 +2.94521 193.748 276.331 +2.08244e-14 195.248 278.471 +-2.94695 193.863 276.495 +-5.93731 195.276 278.51 +-8.83472 193.689 276.247 +-11.8728 195.187 278.383 +-14.7259 193.629 276.161 +-17.8047 195.038 278.171 +-20.6161 193.509 275.99 +-23.7242 194.773 277.793 +-26.5741 193.845 276.47 +-29.6678 194.677 277.656 +-32.4534 193.492 275.966 +-35.5919 194.407 277.271 +-38.3532 193.252 275.623 +-41.594 194.477 277.371 +-44.3136 193.237 275.602 +-47.625 194.542 277.464 +-50.1813 192.763 274.926 +-53.5319 194.035 276.741 +-56.1822 192.741 274.895 +-59.5787 193.978 276.66 +-62.197 192.656 274.774 +-65.6574 193.915 276.57 +-68.2237 192.51 274.565 +-71.7087 193.677 276.23 +-74.2821 192.358 274.348 +-77.8106 193.489 275.961 +-80.5387 192.589 274.678 +-84.0921 193.627 276.158 +-86.6064 192.253 274.199 +-90.4314 193.752 276.337 +-92.9188 192.351 274.339 +-96.5558 193.314 275.712 +-99.235 192.327 274.305 +-102.944 193.305 275.699 +-105.638 192.344 274.329 +-109.732 193.882 276.522 +-112.358 192.78 274.951 +-116.13 193.621 276.151 +-118.468 192.058 273.921 +-122.648 193.454 275.911 +-125.339 192.455 274.488 +-129.156 193.16 275.492 +-131.721 191.971 273.797 +-137.181 194.924 278.008 +-140.368 194.547 277.471 +-145.196 196.374 280.076 +-146.261 193.112 275.423 +-146.1 188.386 268.683 +-146.304 184.303 262.86 +-151.593 186.633 266.183 +-112.923 135.915 193.847 +-113.363 133.435 190.31 +-114.36 131.68 187.808 +-115.904 130.591 186.254 +-117.376 129.445 184.619 +-119.011 128.497 183.268 +-121.675 128.653 183.49 +-123.723 128.139 182.757 +-128.572 130.462 186.07 +-507.2 504.337 719.305 +-511.903 498.907 711.562 +-514.781 491.846 701.491 +-519.102 486.311 693.597 +-521.97 479.554 683.959 +-526.93 474.839 677.234 +-529.335 467.944 667.4 +-534.109 463.263 660.725 +-536.881 456.953 651.724 +-541.484 452.306 645.097 +-544.84 446.708 637.112 +-1902.67 1531.36 2184.09 +-167.401 132.275 188.656 +-169.703 131.662 187.782 +-575.756 438.637 625.602 +-580.454 434.278 619.385 +-583.339 428.639 611.342 +-588.339 424.622 605.613 +-590.617 418.714 597.186 +-595.369 414.632 591.365 +-584.101 399.628 569.965 +-589.114 395.987 564.773 +-591.831 390.855 557.453 +-596.689 387.187 552.222 +-600.277 382.732 545.868 +-605.261 379.203 540.834 +-608.002 374.308 533.854 +-613.668 371.248 529.489 +-616.301 366.384 522.551 +-621.216 362.914 517.602 +-623.527 357.961 510.539 +-629.158 354.944 506.236 +-632.587 350.702 500.186 +-637.677 347.401 495.478 +-141.809 75.9172 108.276 +-143.474 75.4757 107.647 +-143.204 74.0239 105.576 +-143.35 72.8091 103.843 +-143.017 71.3727 101.795 +-142.728 69.9823 99.8115 +-143.25 69.0063 98.4196 +-148.846 70.4404 100.465 +-150.3 69.8732 99.6559 +-700.669 319.962 456.343 +-705.742 316.546 451.47 +-709.893 312.719 446.012 +-708.629 306.559 437.226 +-703.857 299.002 426.449 +-384.607 160.42 228.797 +-706.082 289.137 412.379 +-136.553 54.8918 78.2889 +-136.063 53.6854 76.5682 +-386.58 149.695 213.502 +-729.4 277.159 395.295 +-732.998 273.276 389.757 +-739.486 270.457 385.736 +-743.569 266.742 380.438 +-750.579 264.056 376.607 +-755.079 260.463 371.483 +-761.336 257.457 367.196 +-765.566 253.748 361.906 +-773.05 251.091 358.116 +-777.187 247.32 352.737 +-784.081 244.403 348.577 +-788.649 240.735 343.345 +-796.181 237.941 339.361 +-801.015 234.308 334.179 +-807.947 231.259 329.831 +-813.498 227.782 324.872 +-820.631 224.711 320.492 +-811.417 217.219 309.806 +-807.682 211.313 301.382 +-2993.23 765.074 1091.18 +-3004.75 750.05 1069.75 +-408.244 99.4837 141.888 +-409.371 97.3469 138.84 +-410.186 95.1418 135.695 +-391.706 88.5805 126.337 +-387.156 85.3185 121.685 +-381.413 81.8677 116.763 +-381.421 79.6988 113.67 +-382.147 77.6889 110.803 +-381.517 75.4166 107.562 +-380.278 73.0468 104.182 +-381.088 71.0857 101.385 +-381.582 69.07 98.5104 +-382.235 67.0888 95.6848 +-380.556 64.715 92.2991 +-382.774 63.0117 89.8697 +-382.079 60.8307 86.7591 +-382.7 58.8696 83.9622 +-381.644 56.6627 80.8146 +-382.005 54.6791 77.9856 +-383.794 52.8973 75.4442 +-382.343 50.6755 72.2754 +-381.732 48.5841 69.2926 +-382.945 46.7295 66.6475 +-382.269 44.649 63.6802 +-381.657 42.5898 60.7433 +-381.405 40.582 57.8797 +-379.643 38.4305 54.811 +-381.101 36.6123 52.2179 +-380.754 34.6208 49.3776 +-380.87 32.6781 46.6068 +-380.56 30.7048 43.7924 +-379.327 28.6697 40.8899 +-381.336 26.8802 38.3376 +-380.439 24.8843 35.4909 +-380.405 22.9534 32.737 +-380.938 21.0578 30.0334 +-378.853 19.0284 27.1391 +-380.025 17.1703 24.4889 +-380.172 15.2618 21.7669 +-380.09 13.3461 19.0347 +-380.278 11.4413 16.3181 +-380.038 9.52578 13.586 +-379.269 7.60349 10.8444 +-378.87 5.69559 8.12328 +-147.378 1.47684 2.10632 +-145.794 0.730433 1.04177 +96.9 0 0 +96.8963 0.491678 0.687963 +96.8852 0.983321 1.37588 +97.7665 1.48859 2.08285 +96.841 1.96634 2.75133 +96.9077 2.46018 3.44232 +97.666 2.97615 4.16427 +96.8191 3.4432 4.81778 +96.664 3.93028 5.49931 +96.701 4.42518 6.19177 +97.5275 4.96129 6.9419 +97.3497 5.45038 7.62625 +97.2642 5.94415 8.31714 +97.2707 6.44403 9.01657 +97.2695 6.94443 9.71674 +97.1616 7.43773 10.407 +96.8482 7.91423 11.0737 +96.7258 8.40539 11.7609 +96.3984 8.87764 12.4217 +97.0505 9.44323 13.2131 +96.9051 9.93531 13.9016 +96.654 10.4161 14.5743 +96.494 10.906 15.2599 +96.4246 11.4069 15.9606 +96.2497 11.8957 16.6446 +96.1652 12.3962 17.3449 +96.7549 12.9883 18.1734 +96.5563 13.4788 18.8597 +96.3504 13.9682 19.5444 +97.0084 14.5876 20.4112 +96.7858 15.0793 21.0991 +96.5558 15.5698 21.7854 +96.3184 16.0591 22.4702 +96.8408 16.6793 23.3379 +96.5868 17.1701 24.0246 +97.1838 17.8169 24.9296 +96.8176 18.2913 25.5935 +96.6342 18.8003 26.3057 +96.3483 19.29 26.9908 +96.8093 19.9334 27.8911 +97.4461 20.6227 28.8556 +97.1329 21.1164 29.5463 +97.5592 21.7752 30.4681 +97.3217 22.2906 31.1894 +96.9834 22.7836 31.8791 +97.4693 23.4751 32.8467 +97.1133 23.9688 33.5374 +96.9332 24.507 34.2906 +96.5618 24.9979 34.9775 +97.0019 25.7039 35.9653 +96.703 26.2198 36.687 +97.1182 26.9347 37.6874 +97.3394 27.6049 38.6252 +96.8319 28.0718 39.2785 +96.496 28.5885 40.0014 +96.7729 29.2918 40.9855 +97.1242 30.0274 42.0148 +96.582 30.4913 42.6638 +96.9079 31.2339 43.7029 +96.4354 31.7244 44.3893 +96.735 32.4742 45.4384 +96.9333 33.1999 46.4538 +96.4313 33.6905 47.1402 +96.6041 34.4216 48.1631 +96.8471 35.1878 49.2352 +96.1466 35.6154 49.8335 +96.3632 36.3868 50.913 +96.3972 37.0991 51.9095 +95.8367 37.5868 52.5919 +96.0931 38.401 53.7312 +96.0865 39.1205 54.738 +96.147 39.8767 55.7961 +96.1921 40.6365 56.8592 +95.659 41.1576 57.5883 +96.3953 42.2363 59.0976 +95.7577 42.7238 59.7798 +95.7433 43.4945 60.8581 +95.7912 44.3044 61.9913 +95.7444 45.0815 63.0787 +95.6814 45.8615 64.17 +95.679 46.6816 65.3175 +96.2674 47.8072 66.8925 +95.6217 48.3321 67.6269 +96.1659 49.4704 69.2196 +96.0886 50.3066 70.3897 +95.33 50.7922 71.0692 +95.8805 51.9878 72.7421 +95.6769 52.7926 73.8681 +94.8809 53.276 74.5445 +95.3616 54.489 76.2418 +95.2473 55.382 77.4912 +95.6741 56.6096 79.209 +95.4461 57.4694 80.412 +95.1994 58.3309 81.6174 +94.866 59.1519 82.7662 +95.2582 60.4457 84.5764 +94.9496 61.3155 85.7935 +95.2185 62.579 87.5614 +95.2598 63.7181 89.1552 +94.8194 64.5525 90.3227 +94.2969 65.3433 91.4292 +94.4576 66.6265 93.2248 +94.5239 67.8714 94.9666 +94.6222 69.1675 96.7801 +94.0115 69.9658 97.8972 +93.9928 71.2247 99.6586 +93.823 72.3951 101.296 +94.2199 74.0372 103.594 +93.693 74.9826 104.917 +93.5512 76.2601 106.704 +93.6077 77.7323 108.764 +93.457 79.0667 110.631 +93.3852 80.5018 112.639 +93.1118 81.7973 114.452 +93.2967 83.5341 116.882 +93.114 84.9854 118.913 +92.9478 86.4902 121.018 +93.0047 88.2473 123.477 +92.7069 89.7126 125.527 +92.2705 91.0813 127.442 +94.9 95.5748 133.73 +114.882 118.067 165.2 +114.657 120.273 168.287 +114.518 122.638 171.597 +114.833 125.576 175.708 +114.929 128.372 179.62 +114.542 130.712 182.893 +114.584 133.629 186.976 +114.196 136.139 190.488 +114.473 139.547 195.257 +114.191 142.389 199.232 +114.455 146.032 204.33 +113.642 148.413 207.662 +111.61 149.251 208.834 +108.662 148.848 208.27 +106.386 149.34 208.959 +103.466 148.903 208.348 +100.898 148.936 208.393 +98.3362 148.953 208.418 +95.8868 149.12 208.651 +93.3031 149.055 208.559 +90.7955 149.084 208.6 +89.7917 151.628 212.16 +89.7338 155.938 218.191 +89.4604 160.092 224.004 +89.0991 164.311 229.906 +89.0564 169.372 236.987 +88.2436 173.218 242.369 +86.6328 175.672 245.803 +84.2068 176.553 247.035 +87.9208 190.79 266.956 +85.9054 193.142 270.247 +84.4307 196.9 275.505 +81.0522 196.303 274.67 +77.968 196.367 274.759 +74.6284 195.733 273.873 +71.8751 196.616 275.108 +68.5427 195.891 274.093 +65.6383 196.346 274.729 +62.5432 196.214 274.545 +59.5787 196.466 274.899 +56.3307 195.729 273.866 +53.3911 196.007 274.256 +50.3143 195.753 273.9 +47.3745 196.001 274.247 +44.3267 195.773 273.928 +41.3868 195.99 274.232 +38.3306 195.615 273.707 +35.4142 195.918 274.131 +32.3863 195.569 273.642 +29.4325 195.61 273.7 +26.4643 195.52 273.574 +23.5707 195.995 274.239 +20.5795 195.643 273.746 +17.6372 195.681 273.8 +14.6866 195.59 273.672 +11.7611 195.831 274.009 +8.80593 195.534 273.594 +5.87273 195.63 273.728 +2.92252 194.722 272.457 +2.05673e-14 195.311 273.281 +-2.92426 194.838 272.62 +-5.86401 195.339 273.321 +-8.79284 195.244 273.188 +-11.7262 195.249 273.196 +-14.6169 194.66 272.371 +-17.5901 195.159 273.069 +-20.5062 194.946 272.771 +-23.494 195.357 273.346 +-26.3623 194.766 272.52 +-29.3628 195.147 273.052 +-32.2233 194.585 272.266 +-35.2365 194.934 272.755 +-38.1608 194.748 272.494 +-41.1675 194.951 272.778 +-43.9873 194.274 271.831 +-47.0127 194.504 272.153 +-49.93 194.258 271.809 +-52.9844 194.514 272.167 +-55.8851 194.18 271.7 +-58.9536 194.405 272.014 +-61.869 194.098 271.585 +-64.9705 194.348 271.934 +-67.8648 193.953 271.382 +-70.9603 194.114 271.607 +-73.8925 193.803 271.172 +-77.0007 193.931 271.351 +-80.0951 193.985 271.426 +-83.2453 194.135 271.637 +-86.1558 193.706 271.036 +-89.2667 193.71 271.042 +-92.4378 193.81 271.182 +-95.8115 194.284 271.845 +-98.7521 193.846 271.233 +-102.184 194.339 271.922 +-105.097 193.813 271.185 +-108.65 194.433 272.054 +-111.564 193.875 271.272 +-114.958 194.126 271.624 +-117.867 193.535 270.797 +-121.451 194.023 271.479 +-124.394 193.453 270.683 +-127.937 193.792 271.156 +-131.171 193.622 270.919 +-134.858 194.081 271.561 +-139.679 196.076 274.352 +-143.711 196.858 275.447 +-146.062 195.322 273.297 +-146.181 190.908 267.121 +-145.848 186.085 260.372 +-123.151 153.561 214.865 +-113.052 137.816 192.834 +-113.538 135.356 189.391 +-114.717 133.786 187.195 +-115.858 132.214 184.996 +-117.838 131.621 184.166 +-119.668 130.864 183.107 +-122.057 130.712 182.893 +-124.499 130.596 182.731 +-128.966 132.54 185.452 +-508.9 512.518 717.122 +-512.055 505.457 707.243 +-515.553 498.902 698.07 +-519.311 492.747 689.459 +-523.454 487.085 681.537 +-527.413 481.37 673.54 +-530.315 474.824 664.38 +-534.441 469.496 656.926 +-538.279 464.019 649.262 +-542.504 458.97 642.197 +-546.217 453.58 634.655 +-552.365 450.271 630.025 +-1925.88 1541.28 2156.59 +-576.681 453.15 634.054 +-576.719 445.006 622.658 +-581.124 440.356 616.152 +-584.694 435.145 608.861 +-588.276 430.023 601.695 +-592.19 425.214 594.965 +-587.927 414.701 580.255 +-585.58 405.777 567.769 +-589.699 401.465 561.735 +-593.077 396.701 555.07 +-597.352 392.589 549.316 +-601.348 388.332 543.36 +-605.667 384.323 537.751 +-609.229 379.875 531.526 +-613.462 375.883 525.941 +-617.829 372.003 520.512 +-622.057 368.066 515.004 +-625.012 363.416 508.497 +-630.228 360.108 503.868 +-633.882 355.927 498.019 +-637.967 352.017 492.547 +-141.809 76.8909 107.587 +-143.179 76.2868 106.742 +-144.021 75.4018 105.503 +-142.601 73.358 102.644 +-143.017 72.2881 101.147 +-142.652 70.8421 99.1232 +-144.17 70.3403 98.4211 +-149.155 71.4921 100.033 +-677.749 319.12 446.517 +-703.408 325.333 455.21 +-704.324 319.962 447.695 +-712.273 317.792 444.658 +-714.06 312.871 437.773 +-720.417 309.962 433.703 +-389.137 164.392 230.019 +-704.617 292.238 408.903 +-134.996 54.9622 76.9039 +-136.805 54.6703 76.4955 +-724.745 284.242 397.715 +-729.733 280.842 392.959 +-735.346 277.668 388.517 +-739.907 274.082 383.499 +-745.773 270.964 379.137 +-750.579 267.443 374.21 +-755.85 264.074 369.496 +-761.68 260.878 365.024 +-767.558 257.671 360.538 +-773.398 254.426 355.996 +-778.761 250.999 351.201 +-784.959 247.815 346.746 +-790.856 244.505 342.115 +-796.979 241.234 337.538 +-803.064 237.921 332.902 +-809.647 234.719 328.422 +-815.656 231.315 323.66 +-822.255 228.044 319.082 +-829.09 224.797 314.539 +-411.302 108.988 152.498 +-414.202 107.228 150.035 +-412.769 104.358 146.019 +-409.533 101.078 141.429 +-410.572 98.885 138.361 +-406.941 95.5998 133.765 +-394.776 90.4196 126.516 +-386.502 86.2669 120.706 +-382.631 83.1829 116.391 +-383.583 81.1786 113.586 +-383.844 79.0348 110.587 +-382.368 76.5543 107.116 +-381.7 74.2604 103.906 +-382.325 72.2312 101.067 +-381.201 69.8862 97.7857 +-379.94 67.5412 94.5045 +-383.624 66.0736 92.4511 +-379.794 63.3227 88.602 +-381.405 61.5022 86.0547 +-381.444 59.4293 83.1543 +-382.128 57.4622 80.4019 +-381.617 55.3242 77.4103 +-382.628 53.4129 74.736 +-381.466 51.2077 71.6505 +-379.877 48.9682 68.5169 +-380.206 46.9904 65.7496 +-382.563 45.2565 63.3235 +-379.792 42.9253 60.0617 +-381.405 41.1025 57.5113 +-382.105 39.1758 54.8153 +-381.693 37.1395 51.9661 +-382.63 35.2377 49.3051 +-380.079 33.0285 46.2139 +-380.065 31.0582 43.457 +-380.12 29.0981 40.7145 +-380.939 27.1967 38.0539 +-380.439 25.2034 35.265 +-379.907 23.2174 32.4861 +-380.241 21.2888 29.7877 +-380.148 19.3384 27.0585 +-379.726 17.3768 24.3139 +-379.872 15.4453 21.6113 +-378.692 13.4675 18.844 +-379.579 11.5668 16.1844 +-378.14 9.59975 13.4321 +-379.169 7.69898 10.7725 +-380.17 5.78843 8.09925 +-146.578 1.48766 2.08156 +-145.494 0.738278 1.03301 +97 0 0 +96.8963 0.497865 0.6835 +96.8852 0.995693 1.36695 +96.8668 1.49345 2.05029 +96.841 1.99108 2.73348 +96.9077 2.49113 3.41998 +96.8671 2.98895 4.10341 +97.7174 3.51887 4.83093 +96.7637 3.98384 5.46927 +96.701 4.48085 6.15159 +97.5275 5.02371 6.89686 +96.5534 5.47382 7.5148 +97.3637 6.02506 8.27158 +97.2707 6.52511 8.95807 +97.2695 7.0318 9.65369 +97.0625 7.5236 10.3289 +96.9472 8.022 11.0131 +97.6159 8.58945 11.7921 +96.3984 8.98935 12.3411 +97.0505 9.56204 13.1274 +96.9051 10.0603 13.8114 +97.5389 10.6437 14.6123 +96.494 11.0433 15.1609 +97.2085 11.6443 15.986 +96.2497 12.0454 16.5366 +96.0675 12.5395 17.2149 +96.8524 13.165 18.0737 +96.5563 13.6483 18.7373 +97.2236 14.2721 19.5937 +97.0084 14.7711 20.2787 +96.7858 15.269 20.9622 +96.5558 15.7657 21.6441 +96.3184 16.2612 22.3244 +96.8408 16.8892 23.1865 +96.5868 17.3861 23.8687 +96.4208 17.8994 24.5735 +96.9127 18.5397 25.4524 +96.6342 19.0369 26.135 +97.1048 19.686 27.0262 +97.8462 20.4004 28.007 +97.5401 20.9024 28.696 +97.1329 21.3821 29.3546 +97.6525 22.0702 30.2994 +97.3217 22.5711 30.987 +96.8907 23.0482 31.642 +97.4693 23.7705 32.6336 +97.2053 24.2934 33.3514 +96.8415 24.7919 34.0358 +96.5618 25.3125 34.7505 +97.0019 26.0274 35.732 +96.703 26.5497 36.449 +97.0279 27.2482 37.4081 +96.6204 27.7457 38.0911 +96.9214 28.4513 39.0597 +97.2979 29.1888 40.0721 +96.7729 29.6604 40.7196 +97.2125 30.4328 41.7801 +96.6699 30.9031 42.4257 +96.9079 31.6269 43.4194 +96.5224 32.1526 44.1411 +95.9556 32.6179 44.7798 +96.244 33.3786 45.8242 +96.4313 34.1144 46.8344 +96.6041 34.8547 47.8507 +96.8471 35.6305 48.9157 +96.1466 36.0635 49.5102 +96.3632 36.8447 50.5826 +96.3972 37.5658 51.5727 +96.6658 38.3889 52.7027 +96.0931 38.8842 53.3826 +96.0865 39.6128 54.3828 +96.147 40.3785 55.434 +96.273 41.1824 56.5377 +96.2217 41.9206 57.5512 +95.5967 42.4134 58.2278 +95.6784 43.2255 59.3427 +95.6645 44.0055 60.4134 +95.7912 44.8618 61.5891 +95.8221 45.6858 62.7202 +95.6814 46.4385 63.7536 +95.6023 47.2311 64.8418 +96.2674 48.4088 66.4585 +95.6972 48.9788 67.2411 +95.5667 49.7807 68.342 +96.0143 50.9002 69.8789 +95.33 51.4313 70.6081 +95.8805 52.642 72.2701 +95.7494 53.4973 73.4444 +95.5283 54.3144 74.5662 +95.4329 55.2159 75.8038 +95.8837 56.4535 77.5028 +95.1134 56.986 78.2339 +94.8209 57.8113 79.3669 +95.1994 59.0649 81.0879 +94.866 59.8962 82.2292 +95.2582 61.2062 84.0277 +94.3474 61.6931 84.6961 +95.2185 63.3664 86.9933 +94.8661 64.2531 88.2106 +94.8194 65.3647 89.7367 +94.8755 66.5711 91.3929 +94.394 67.4195 92.5577 +94.5869 68.7713 94.4135 +94.4977 69.9459 96.0261 +94.0731 70.8927 97.3258 +93.9928 72.1208 99.0119 +93.8831 73.3531 100.704 +93.7441 74.5901 102.402 +93.7517 75.9738 104.301 +93.6093 77.2673 106.077 +93.665 78.7586 108.125 +93.457 80.0616 109.913 +93.3293 81.4658 111.841 +93.1118 82.8265 113.709 +93.3511 84.6346 116.192 +93.2215 86.1536 118.277 +92.9478 87.5784 120.233 +92.9525 89.3076 122.607 +92.9644 91.094 125.059 +91.8644 91.8217 126.058 +94.75 96.6243 132.652 +114.882 119.552 164.129 +115.094 122.249 167.831 +114.948 124.647 171.123 +114.833 127.156 174.568 +114.514 129.517 177.809 +115.041 132.933 182.499 +114.584 135.311 185.763 +114.59 138.329 189.906 +114.473 141.303 193.99 +114.234 144.234 198.013 +114.082 147.387 202.342 +113.886 150.603 206.758 +111.371 150.805 207.034 +108.623 150.666 206.844 +105.965 150.62 206.781 +103.504 150.832 207.071 +100.898 150.81 207.041 +98.3003 150.773 206.99 +95.4665 150.335 206.389 +93.2005 150.764 206.978 +90.6953 150.794 207.019 +89.6289 153.258 210.401 +89.6703 157.788 216.621 +89.584 162.33 222.857 +89.1893 166.547 228.646 +88.9979 171.39 235.295 +88.556 176.019 241.649 +86.7431 178.108 244.518 +84.4473 179.285 246.133 +87.8949 193.133 265.145 +83.026 189.018 259.495 +84.213 198.863 273.012 +81.309 199.402 273.752 +77.9905 198.895 273.055 +75.018 199.23 273.516 +71.688 198.572 272.611 +68.7221 198.875 273.028 +65.6383 198.816 272.947 +62.689 199.146 273.399 +59.4398 198.475 272.478 +56.4958 198.772 272.887 +53.3754 198.415 272.396 +50.4326 198.682 272.763 +47.3745 198.467 272.468 +44.4311 198.703 272.792 +41.3868 198.456 272.453 +38.4438 198.661 272.734 +35.4038 198.324 272.272 +32.463 198.499 272.511 +29.4325 198.071 271.924 +26.527 198.45 272.444 +23.5847 198.578 272.62 +20.6344 198.633 272.696 +17.6425 198.202 272.105 +14.7303 198.639 272.704 +11.7611 198.295 272.232 +8.82948 198.524 272.546 +5.87273 198.091 271.952 +2.93735 198.172 272.063 +2.05673e-14 197.768 271.508 +-2.93212 197.819 271.578 +-5.86401 197.797 271.548 +-8.8164 198.23 272.143 +-11.7227 197.647 271.342 +-14.6561 197.638 271.33 +-17.5849 197.556 271.217 +-20.5611 197.928 271.728 +-23.4382 197.345 270.928 +-26.4329 197.745 271.477 +-29.2843 197.074 270.555 +-32.3767 197.971 271.787 +-35.2575 197.504 271.146 +-38.2514 197.667 271.369 +-41.1675 197.404 271.009 +-44.2092 197.71 271.429 +-47.0127 196.951 270.387 +-50.0778 197.285 270.844 +-52.9844 196.961 270.401 +-56.0502 197.205 270.735 +-58.9536 196.851 270.249 +-62.0512 197.119 270.617 +-64.9705 196.793 270.17 +-68.0443 196.913 270.334 +-70.7731 196.038 269.132 +-74.1089 196.817 270.202 +-77.0007 196.371 269.59 +-80.3285 196.998 270.451 +-83.2453 196.578 269.875 +-86.3561 196.599 269.903 +-89.2408 196.091 269.205 +-92.6783 196.759 270.123 +-95.5635 196.219 269.381 +-98.9793 196.737 270.093 +-101.95 196.333 269.538 +-105.397 196.813 270.197 +-108.372 196.376 269.597 +-111.818 196.761 270.125 +-114.991 196.624 269.938 +-118.201 196.525 269.802 +-121.451 196.464 269.718 +-124.954 196.77 270.138 +-127.902 196.175 269.322 +-131.794 196.99 270.44 +-134.858 196.523 269.799 +-140.062 199.087 273.319 +-143.672 199.281 273.585 +-146.022 197.725 271.449 +-146.181 193.31 265.388 +-146.138 188.801 259.198 +-123.912 156.453 214.789 +-113.052 139.55 191.583 +-113.626 137.164 188.307 +-114.717 135.469 185.98 +-116.267 134.35 184.444 +-117.884 133.329 183.043 +-119.668 132.51 181.918 +-121.675 131.942 181.138 +-124.499 132.239 181.546 +-129.212 134.464 184.6 +-508.35 518.405 711.699 +-511.599 511.36 702.027 +-515.708 505.331 693.75 +-519.311 498.947 684.985 +-523.454 493.214 677.115 +-527.091 487.129 668.761 +-530.315 480.798 660.069 +-533.944 474.962 652.057 +-538.279 469.858 645.05 +-541.994 464.308 637.43 +-545.701 458.853 629.942 +-551.377 455.121 624.819 +-166.578 134.99 185.323 +-170.119 135.36 185.831 +-1971.85 1540.65 2115.1 +-580.271 445.242 611.256 +-584.694 440.62 604.911 +-588.276 435.434 597.791 +-592.442 430.747 591.357 +-592.952 423.507 581.417 +-585.901 411.109 564.396 +-589.699 406.516 558.09 +-593.077 401.693 551.469 +-597.352 397.528 545.751 +-601.348 393.219 539.835 +-605.464 389.029 534.083 +-609.229 384.654 528.077 +-613.462 380.613 522.529 +-617.621 376.557 516.961 +-621.426 372.32 511.143 +-626.072 368.613 506.054 +-629.8 364.392 500.259 +-633.882 360.406 494.787 +-637.314 356.081 488.85 +-141.809 77.8584 106.889 +-143.327 77.3262 106.158 +-144.021 76.3506 104.819 +-143.65 74.8274 102.728 +-143.017 73.1977 100.49 +-142.576 71.6958 98.4283 +-144.093 71.1871 97.73 +-148.306 71.9795 98.8179 +-677.36 322.95 443.366 +-701.686 328.62 451.15 +-704.324 323.987 444.79 +-711.4 321.396 441.232 +-714.3 316.913 435.078 +-709.323 309.029 424.254 +-2650.74 1133.9 1556.69 +-705.675 296.359 406.86 +-134.013 55.2485 75.8486 +-136.97 55.4249 76.0907 +-723.75 287.423 394.592 +-729.4 284.246 390.23 +-734.592 280.872 385.599 +-740.16 277.625 381.141 +-745.095 274.124 376.334 +-750.323 270.716 371.656 +-755.85 267.397 367.098 +-761.336 264.041 362.491 +-767.558 260.914 358.198 +-773.398 257.627 353.686 +-778.499 254.072 348.805 +-784.959 250.933 344.496 +-790.326 247.415 339.667 +-796.447 244.107 335.125 +-803.064 240.914 330.742 +-808.752 237.409 325.93 +-2944.9 845.663 1160.98 +-821.894 230.812 316.872 +-828.456 227.451 312.259 +-809.775 217.277 298.292 +-2993.23 784.637 1077.2 +-413.319 105.811 145.264 +-834.99 208.679 286.487 +-407.154 99.2955 136.319 +-408.61 97.1995 133.441 +-392.543 91.0398 124.985 +-386.876 87.4371 120.039 +-382.631 84.2295 115.635 +-382.455 81.958 112.517 +-382.807 79.8131 109.572 +-382.368 77.5175 106.421 +-381.226 75.1012 103.104 +-381.374 72.9581 100.161 +-382.44 70.9957 97.4673 +-380.801 68.5458 94.1039 +-381.418 66.5199 91.3226 +-381.044 64.3308 88.3173 +-382.85 62.5121 85.8205 +-383.279 60.4661 83.0116 +-382.128 58.1852 79.8803 +-382.102 56.0915 77.0058 +-381.558 53.9337 74.0435 +-381.563 51.8653 71.2038 +-380.755 49.6989 68.2298 +-382.456 47.8632 65.7096 +-381.975 45.7555 62.8159 +-379.89 43.4766 59.6874 +-379.93 41.4587 56.9171 +-381.022 39.5562 54.3053 +-379.917 37.4318 51.3887 +-379.865 35.4232 48.6311 +-380.87 33.5136 46.0096 +-381.55 31.5719 43.3438 +-380.616 29.5027 40.5031 +-379.153 27.4097 37.6297 +-379.544 25.4606 34.9538 +-379.808 23.5034 32.2669 +-379.345 21.5059 29.5246 +-380.148 19.5817 26.8829 +-379.626 17.5908 24.1498 +-380.67 15.6725 21.5162 +-378.692 13.637 18.7217 +-379.779 11.7185 16.0879 +-379.538 9.75651 13.3943 +-379.868 7.81022 10.7223 +-380.769 5.87051 8.0594 +-145.478 1.49508 2.05254 +-145.794 0.74911 1.02842 +97 0 0 +96.8963 0.504011 0.67898 +96.8852 1.00798 1.35791 +96.9668 1.51344 2.03883 +96.841 2.01566 2.7154 +96.9077 2.52189 3.39737 +96.8671 3.02584 4.07628 +96.8191 3.52957 4.75487 +96.7637 4.03302 5.4331 +97.5982 4.57826 6.16762 +97.4278 5.08053 6.84426 +97.3497 5.58709 7.52668 +97.2642 6.09324 8.20854 +97.2707 6.60566 8.89884 +97.2695 7.11861 9.58986 +97.0625 7.61648 10.2606 +96.9472 8.12102 10.9403 +96.7258 8.61621 11.6074 +96.5959 9.11897 12.2847 +97.0505 9.68008 13.0406 +96.9051 10.1845 13.7201 +96.654 10.6773 14.384 +96.494 11.1796 15.0606 +96.3266 11.6811 15.7362 +96.2497 12.1941 16.4273 +96.9462 12.8104 17.2575 +96.7549 13.3141 17.9361 +96.6536 13.8308 18.6322 +96.3504 14.3185 19.2892 +97.0084 14.9535 20.1446 +96.7858 15.4575 20.8236 +96.4594 15.9444 21.4796 +96.2223 16.4455 22.1546 +96.8408 17.0977 23.0332 +96.5868 17.6007 23.7109 +97.1838 18.2638 24.6041 +96.8176 18.7501 25.2593 +96.6342 19.2719 25.9622 +97.1993 19.9485 26.8736 +96.8093 20.4334 27.5269 +97.4461 21.14 28.4788 +97.1329 21.646 29.1605 +96.8123 22.1505 29.8401 +97.3217 22.8497 30.7821 +96.9834 23.3551 31.4629 +96.6378 23.8586 32.1413 +97.2053 24.5933 33.1309 +97.7586 25.3356 34.131 +97.3839 25.8431 34.8146 +97.0019 26.3487 35.4957 +96.703 26.8774 36.208 +97.1182 27.6103 37.1953 +97.3394 28.2973 38.1208 +96.9214 28.8025 38.8014 +97.2979 29.5491 39.8072 +96.7729 30.0265 40.4503 +97.1242 30.7806 41.4662 +96.6699 31.2846 42.1451 +96.9079 32.0173 43.1323 +96.4354 32.5202 43.8097 +96.735 33.2888 44.8451 +96.244 33.7906 45.5212 +96.4313 34.5355 46.5247 +96.6041 35.2849 47.5343 +96.7623 36.0388 48.5498 +96.1466 36.5087 49.1828 +96.3632 37.2995 50.2482 +96.3972 38.0296 51.2317 +96.6658 38.8628 52.3542 +95.9283 39.2966 52.9386 +96.0046 40.0676 53.9773 +96.2285 40.9115 55.1142 +96.1112 41.6207 56.0695 +96.3021 42.4736 57.2185 +95.5967 42.937 57.8428 +95.7577 43.7954 58.9992 +95.8221 44.6221 60.1128 +95.7912 45.4156 61.1819 +95.7444 46.2122 62.255 +95.6814 47.0118 63.3321 +95.679 47.8525 64.4647 +95.6591 48.6967 65.602 +95.6972 49.5834 66.7965 +96.1659 50.7112 68.3158 +96.0886 51.5684 69.4706 +95.33 52.0662 70.1412 +95.8805 53.2918 71.7923 +95.7494 54.1577 72.9588 +95.6003 55.0263 74.129 +95.4329 55.8975 75.3026 +95.2473 56.7711 76.4794 +95.1134 57.6894 77.7166 +95.4461 58.9108 79.362 +95.1994 59.794 80.5517 +95.548 61.0719 82.2733 +95.2582 61.9618 83.4721 +95.5519 63.2522 85.2105 +94.5559 63.7022 85.8167 +94.8661 65.0463 87.6274 +94.8194 66.1716 89.1434 +94.4255 67.0734 90.3582 +94.4576 68.2977 92.0075 +94.5869 69.6203 93.7893 +94.56 70.8559 95.4538 +93.9499 71.6736 96.5554 +93.9928 73.0111 98.3573 +93.8831 74.2586 100.038 +94.3389 75.9901 102.37 +93.693 76.8633 103.547 +93.5512 78.1728 105.311 +93.6077 79.682 107.344 +93.457 81.0499 109.187 +93.3852 82.5209 111.168 +93.1118 83.8489 112.957 +93.3511 85.6793 115.423 +93.114 87.117 117.36 +92.9478 88.6595 119.438 +93.3705 90.8166 122.344 +92.7069 91.9628 123.888 +91.8137 92.9039 125.156 +94.9 97.972 131.983 +114.882 121.028 163.043 +115.094 123.758 166.722 +114.852 126.081 169.85 +114.833 128.726 173.414 +114.929 131.592 177.274 +114.542 133.99 180.505 +114.628 137.035 184.607 +114.24 139.608 188.073 +114.43 142.994 192.635 +114.191 145.96 196.631 +114.082 149.206 201.004 +113.642 152.136 204.95 +111.251 152.502 205.444 +108.623 152.526 205.476 +106.042 152.59 205.562 +103.579 152.804 205.851 +100.934 152.727 205.747 +98.0853 152.3 205.172 +95.7817 152.693 205.701 +92.9269 152.177 205.006 +90.6619 152.598 205.574 +89.9545 155.713 209.77 +89.7338 159.849 215.342 +89.1823 163.598 220.391 +89.0991 168.432 226.904 +88.764 173.05 233.125 +88.4708 178.02 239.82 +86.7706 180.364 242.978 +84.2068 180.981 243.81 +87.6361 194.942 262.616 +83.2263 191.812 258.401 +84.6485 202.359 272.608 +81.2857 201.806 271.864 +78.1705 201.815 271.876 +75.018 201.69 271.707 +71.8751 201.548 271.516 +68.9215 201.914 272.009 +65.81 201.797 271.851 +62.689 201.604 271.592 +59.5613 201.335 271.23 +56.4793 201.167 271.003 +53.5475 201.512 271.468 +50.4326 201.134 270.959 +47.4859 201.389 271.302 +44.4311 201.156 270.988 +41.4965 201.438 271.369 +38.5344 201.587 271.569 +35.4979 201.306 271.19 +32.463 200.949 270.709 +29.5109 201.051 270.847 +26.4564 200.365 269.922 +23.6405 201.505 271.458 +20.6283 201.026 270.813 +17.6896 201.185 271.027 +14.739 201.209 271.06 +11.7925 201.279 271.153 +8.82948 200.975 270.744 +5.88844 201.073 270.876 +2.93822 200.678 270.345 +2.06224e-14 200.746 270.436 +-2.93124 200.202 269.702 +-5.87797 200.715 270.395 +-8.79284 200.141 269.621 +-11.7542 200.624 270.271 +-14.6561 200.078 269.536 +-17.6268 200.47 270.065 +-20.5123 199.895 269.29 +-23.494 200.257 269.777 +-26.4329 200.186 269.682 +-29.4412 200.576 270.207 +-32.3 199.941 269.351 +-35.3306 200.357 269.912 +-38.2514 200.107 269.575 +-41.2771 200.373 269.934 +-44.0917 199.619 268.918 +-47.1379 199.914 269.315 +-50.0778 199.72 269.054 +-53.1095 199.864 269.247 +-56.0502 199.639 268.944 +-59.1098 199.809 269.174 +-61.8872 199.025 268.117 +-64.9705 199.222 268.383 +-68.0443 199.344 268.547 +-71.1682 199.566 268.846 +-74.0873 199.188 268.337 +-77.2032 199.318 268.512 +-80.1184 198.908 267.96 +-83.2453 199.005 268.09 +-86.3561 199.026 268.118 +-89.5255 199.145 268.279 +-92.6783 199.188 268.337 +-95.8115 199.157 268.296 +-99.0077 199.223 268.384 +-102.184 199.213 268.371 +-105.367 199.185 268.333 +-108.619 199.253 268.425 +-111.786 199.133 268.263 +-115.251 199.502 268.761 +-118.168 198.895 267.942 +-121.725 199.337 268.538 +-124.989 199.254 268.427 +-128.511 199.543 268.815 +-131.464 198.922 267.979 +-135.083 199.281 268.462 +-140.1 201.599 271.585 +-143.75 201.851 271.924 +-146.341 200.603 270.244 +-146.1 195.588 263.487 +-146.138 191.132 257.484 +-127.715 163.247 219.918 +-113.44 141.756 190.968 +-113.494 138.697 186.846 +-114.717 137.141 184.751 +-115.904 135.583 182.652 +-117.792 134.869 181.69 +-119.293 133.725 180.149 +-121.58 133.467 179.8 +-124.548 133.924 180.416 +-128.769 135.657 182.751 +-508.2 524.65 706.784 +-511.903 517.981 697.8 +-515.09 510.956 688.336 +-519.311 505.106 680.456 +-523.083 498.949 672.161 +-527.091 493.143 664.339 +-530.478 486.883 655.907 +-534.275 481.123 648.147 +-538.167 475.559 640.651 +-541.711 469.794 632.885 +-545.873 464.664 625.974 +-551.203 460.594 620.491 +-169.576 139.116 187.411 +-578.108 465.666 627.324 +-1971.85 1559.67 2101.12 +-580.637 451.022 607.597 +-584.324 445.778 600.531 +-588.65 441.089 594.215 +-591.75 435.555 586.76 +-590.726 427.126 575.405 +-585.258 415.727 560.048 +-588.919 410.99 553.667 +-592.684 406.382 547.459 +-596.888 402.123 541.721 +-600.879 397.763 535.848 +-605.261 393.7 530.374 +-609.025 389.272 524.41 +-613.462 385.311 519.074 +-616.996 380.82 513.023 +-621.426 376.916 507.764 +-625.648 372.91 502.368 +-629.586 368.765 496.783 +-633.666 364.731 491.349 +-637.749 360.723 485.95 +-141.883 78.8607 106.237 +-143.327 78.2807 105.456 +-143.799 77.1733 103.964 +-143.5 75.6719 101.942 +-142.867 74.0232 99.7207 +-143.26 72.9289 98.2465 +-143.863 71.9514 96.9296 +-149.387 73.3992 98.88 +-676.739 326.636 440.029 +-702.156 332.899 448.467 +-704.324 327.987 441.849 +-711.797 325.545 438.559 +-715.018 321.149 432.637 +-713.021 314.475 423.646 +-698.991 302.696 407.778 +-704.943 299.707 403.751 +-135.652 56.6143 76.2682 +-137.052 56.1429 75.6331 +-723.999 291.071 392.118 +-729.65 287.854 387.784 +-734.592 284.34 383.049 +-740.16 281.052 378.621 +-744.332 277.223 373.463 +-751.091 274.338 369.576 +-755.422 270.544 364.464 +-761.336 267.3 360.094 +-766.346 263.717 355.268 +-772.615 260.543 350.991 +-778.761 257.294 346.615 +-784.081 253.746 341.835 +-790.768 250.61 337.61 +-796.181 247.038 332.798 +-801.906 243.536 328.081 +-808.752 240.34 323.775 +-411.378 119.59 161.107 +-821.894 233.661 314.777 +-827.459 229.981 309.821 +-810.23 220.083 296.486 +-814.243 216.078 291.091 +-411.943 106.761 143.824 +-414.043 104.754 141.12 +-407.985 100.726 135.694 +-409.074 98.5109 132.709 +-392.078 92.0546 124.012 +-391.637 89.6054 120.712 +-383.755 85.5196 115.208 +-382.737 83.0311 111.856 +-382.807 80.7984 108.848 +-382.746 78.5519 105.822 +-382.08 76.1988 102.651 +-381.849 73.9505 99.6227 +-381.296 71.6569 96.533 +-380.418 69.3223 93.3878 +-381.802 67.409 90.8103 +-381.909 65.2728 87.9325 +-381.598 63.0764 84.9736 +-382.603 61.1047 82.3174 +-381.741 58.8438 79.2717 +-380.744 56.5821 76.2248 +-382.239 54.6969 73.6852 +-380.492 52.358 70.5344 +-381.634 50.4286 67.935 +-381.282 48.3053 65.0748 +-380.799 46.1777 62.2085 +-382.049 44.2635 59.6298 +-380.913 42.0791 56.6871 +-381.022 40.0445 53.9462 +-379.819 37.8841 51.0357 +-380.853 35.9537 48.4352 +-380.87 33.9273 45.7054 +-380.56 31.8786 42.9455 +-379.228 29.758 40.0886 +-380.939 27.8788 37.5571 +-379.544 25.7749 34.7227 +-379.51 23.7748 32.0284 +-381.237 21.8799 29.4756 +-380.845 19.8598 26.7542 +-380.424 17.8454 24.0405 +-379.972 15.8369 21.3347 +-379.591 13.8381 18.6421 +-380.378 11.8819 16.0068 +-380.937 9.91337 13.3548 +-379.569 7.90037 10.643 +-380.27 5.93518 7.9956 +-145.778 1.51666 2.04317 +-145.494 0.756796 1.01952 +96.9 0 0 +96.8963 0.510116 0.674406 +96.8852 1.02019 1.34876 +96.8668 1.53019 2.02302 +96.841 2.04007 2.69711 +96.1084 2.53139 3.34665 +97.666 3.08775 4.08221 +96.8191 3.57232 4.72284 +96.7637 4.08187 5.3965 +96.701 4.59111 6.06975 +97.5275 5.14733 6.8051 +97.4493 5.66055 7.48361 +97.2642 6.16705 8.15323 +97.37 6.69248 8.8479 +97.1703 7.19747 9.51552 +97.1616 7.71664 10.2019 +96.9472 8.21939 10.8666 +96.7258 8.72058 11.5292 +96.3984 9.21054 12.1769 +96.1628 9.70769 12.8342 +96.9051 10.3079 13.6277 +96.654 10.8066 14.2871 +96.494 11.315 14.9592 +96.3266 11.8226 15.6302 +96.2497 12.3418 16.3166 +96.0675 12.848 16.9859 +96.7549 13.4753 17.8153 +96.5563 13.9842 18.488 +97.2236 14.6233 19.333 +96.1371 14.9986 19.8291 +96.7858 15.6447 20.6833 +96.5558 16.1536 21.3561 +97.1836 16.8109 22.2251 +96.8408 17.3048 22.878 +96.5868 17.8139 23.5511 +96.3254 18.3217 24.2225 +96.9127 18.9959 25.1138 +96.6342 19.5053 25.7873 +96.3483 20.0133 26.4589 +96.715 20.6607 27.3148 +97.4461 21.3961 28.287 +97.2266 21.9293 28.992 +97.5592 22.5917 29.8677 +97.3217 23.1265 30.5747 +96.8907 23.6154 31.2211 +97.4693 24.3554 32.1994 +97.2053 24.8912 32.9077 +96.9332 25.426 33.6148 +97.3839 26.1561 34.5801 +97.0019 26.6678 35.2566 +97.5187 27.4324 36.2674 +97.1182 27.9447 36.9447 +97.3394 28.64 37.864 +96.9214 29.1514 38.54 +97.2979 29.907 39.539 +96.8616 30.418 40.2146 +97.1242 31.1534 41.1868 +96.6699 31.6635 41.8612 +96.9079 32.4052 42.8417 +96.4354 32.9141 43.5145 +96.735 33.692 44.5429 +96.9333 34.4449 45.5384 +96.4313 34.9539 46.2113 +96.6041 35.7123 47.214 +96.0838 36.2196 47.8846 +96.231 36.9833 48.8943 +96.3632 37.7513 49.9096 +96.3138 38.4569 50.8425 +95.8367 38.9962 51.5555 +96.67 40.0802 52.9886 +96.0865 40.5875 53.6593 +96.147 41.372 54.6965 +96.1921 42.1603 55.7387 +96.3824 43.0239 56.8804 +96.3154 43.7838 57.885 +95.7577 44.3259 58.6017 +95.6645 45.0883 59.6096 +95.7912 45.9657 60.7697 +95.7444 46.772 61.8356 +95.6814 47.5812 62.9054 +95.6023 48.3933 63.9791 +95.6591 49.2865 65.16 +95.6972 50.184 66.3465 +96.1659 51.3254 67.8555 +95.4198 51.8298 68.5223 +95.2562 52.6562 69.6148 +95.2223 53.567 70.8191 +95.0966 54.44 71.9732 +95.5283 55.6509 73.5741 +95.4329 56.5746 74.7952 +95.813 57.8 76.4153 +95.6741 58.7324 77.648 +95.4461 59.6244 78.8273 +95.2683 60.5623 80.0672 +94.866 61.37 81.1352 +94.7177 62.3564 82.4391 +94.9496 63.6148 84.1028 +95.2185 64.9257 85.8359 +94.8661 65.8342 87.037 +94.9493 67.0648 88.664 +94.2969 67.7935 89.6274 +94.4576 69.1249 91.3876 +94.5239 70.4165 93.0952 +93.9997 71.2894 94.2492 +94.0115 72.5894 95.9679 +93.9319 73.8472 97.6308 +93.823 75.1099 99.3001 +93.9225 76.5709 101.232 +94.1632 78.1853 103.366 +93.5512 79.1197 104.601 +93.6077 80.6472 106.621 +93.4004 81.9816 108.385 +93.4411 83.5706 110.486 +93.6637 85.3671 112.861 +93.4056 86.7678 114.713 +93.2752 88.3248 116.771 +93.0538 89.8354 118.768 +93.0047 91.5565 121.044 +92.9129 93.2836 123.327 +92.0167 94.2368 124.587 +94.7 98.9494 130.817 +114.882 122.494 161.945 +115.094 125.257 165.598 +114.518 127.237 168.215 +114.833 130.285 172.245 +114.606 132.811 175.585 +114.587 135.667 179.36 +114.584 138.64 183.291 +114.196 141.244 186.734 +114.473 144.78 191.409 +114.191 147.728 195.306 +114.082 151.014 199.65 +113.48 153.758 203.278 +111.729 155.013 204.937 +108.662 154.429 204.165 +106.424 154.996 204.914 +103.466 154.487 204.242 +101.264 155.082 205.028 +98.3362 154.539 204.311 +96.1669 155.164 205.137 +93.3031 154.644 204.449 +91.0625 155.13 205.091 +89.987 157.656 208.431 +89.8924 162.071 214.269 +89.5222 166.21 219.741 +89.0991 170.472 225.375 +89.0272 175.666 232.241 +88.1868 179.598 237.441 +86.7982 182.607 241.418 +84.3404 183.464 242.551 +87.9208 197.944 261.695 +86.7817 202.429 267.625 +84.213 203.756 269.379 +80.8421 203.136 268.559 +77.7656 203.201 268.645 +74.6067 203.014 268.397 +71.8959 204.048 269.764 +68.4031 202.823 268.145 +65.6574 203.767 269.394 +62.2152 202.503 267.723 +59.4571 203.417 268.931 +56.1822 202.533 267.762 +53.2346 202.761 268.063 +50.1813 202.557 267.793 +47.3606 203.291 268.763 +44.0787 201.977 267.027 +41.265 202.741 268.036 +38.2287 202.411 267.6 +35.3202 202.724 268.015 +32.2329 201.942 266.98 +29.4325 202.945 268.306 +26.3466 201.95 266.99 +23.5149 202.863 268.198 +20.5245 202.437 267.635 +17.6425 203.08 268.484 +14.6561 202.502 267.72 +11.7611 203.174 268.61 +8.75619 201.72 266.687 +5.85703 202.423 267.616 +2.92252 202.023 267.088 +2.05673e-14 202.634 267.896 +-2.91641 201.601 266.53 +-5.8483 202.121 267.217 +-8.74834 201.539 266.448 +-11.7227 202.511 267.732 +-14.5776 201.417 266.286 +-17.5378 201.875 266.892 +-20.4146 201.353 266.202 +-23.4382 202.201 267.323 +-26.2367 201.108 265.877 +-29.293 201.983 267.035 +-32.0508 200.8 265.471 +-35.2365 202.244 267.38 +-37.9457 200.912 265.619 +-41.0456 201.663 266.612 +-43.8568 200.96 265.683 +-47.0127 201.798 266.79 +-49.797 201.005 265.742 +-52.8436 201.272 266.094 +-55.588 200.391 264.93 +-58.8146 201.219 266.025 +-61.5409 200.309 264.821 +-64.7987 201.103 265.871 +-67.5259 200.221 264.706 +-70.8147 200.98 265.708 +-73.5029 200.01 264.426 +-76.7758 200.615 265.226 +-79.6749 200.203 264.682 +-83.0276 200.888 265.587 +-85.9555 200.502 265.076 +-89.2667 200.974 265.701 +-92.1705 200.496 265.069 +-95.591 201.106 265.875 +-98.2409 200.074 264.511 +-101.658 200.588 265.19 +-104.796 200.505 265.08 +-108.341 201.15 265.934 +-111.279 200.63 265.245 +-114.698 200.949 265.667 +-117.6 200.338 264.859 +-121.075 200.674 265.304 +-124.008 200.086 264.527 +-127.866 200.946 265.663 +-130.768 200.265 264.764 +-134.596 200.968 265.692 +-139.182 202.704 267.987 +-143.359 203.74 269.358 +-146.261 202.923 268.277 +-146.1 197.957 261.712 +-145.848 193.062 255.241 +-122.094 157.952 208.823 +-112.794 142.657 188.601 +-113.626 140.539 185.802 +-114.762 138.856 183.577 +-115.813 137.118 181.279 +-118.254 137.038 181.173 +-119.668 135.771 179.498 +-122.487 136.09 179.92 +-124.935 135.968 179.758 +-129.754 138.351 182.908 +-508.9 531.736 702.99 +-512.36 524.723 693.718 +-516.171 518.231 685.134 +-520.304 512.202 677.164 +-523.189 505.095 667.768 +-527.897 499.879 660.872 +-530.478 492.78 651.487 +-534.606 487.253 644.18 +-538.559 481.669 636.797 +-543.07 476.678 630.199 +-545.873 470.292 621.757 +-555.675 469.954 621.31 +-569.564 472.916 625.226 +-1948.94 1588.89 2100.61 +-576.719 461.693 610.387 +-581.063 456.821 603.947 +-584.878 451.605 597.051 +-589.584 447.14 591.147 +-593.072 441.815 584.108 +-585.701 428.622 566.666 +-586.094 421.363 557.069 +-590.348 416.977 551.271 +-593.077 411.577 544.131 +-597.948 407.717 539.028 +-601.548 403.029 532.83 +-605.937 398.913 527.388 +-609.229 394.119 521.051 +-614.494 390.635 516.445 +-618.038 386.083 510.427 +-622.968 382.428 505.594 +-625.86 377.555 499.152 +-630.442 373.739 494.107 +-634.314 369.526 488.537 +-638.765 365.674 483.444 +-141.663 79.6922 105.358 +-142.958 79.025 104.476 +-144.17 78.3095 103.53 +-143.125 76.3888 100.991 +-143.017 74.9989 99.1533 +-143.26 73.8122 97.5845 +-143.71 72.7451 96.1737 +-149.078 74.1344 98.0104 +-679.303 331.846 438.721 +-701.686 336.707 445.148 +-704.088 331.849 438.725 +-711.4 329.304 435.361 +-714.06 324.603 429.146 +-720.979 321.836 425.488 +-2650.74 1161.8 1535.98 +-385.484 165.874 219.296 +-131.965 55.743 73.6958 +-136.64 56.6521 74.8977 +-724.247 294.698 389.61 +-730.234 291.573 385.479 +-735.598 288.178 380.99 +-740.919 284.749 376.456 +-745.519 281.029 371.538 +-751.432 277.787 367.252 +-756.622 274.256 362.584 +-763.662 271.364 358.761 +-767.558 267.334 353.433 +-774.617 264.382 349.53 +-779.549 260.674 344.628 +-785.399 257.252 340.103 +-791.121 253.759 335.485 +-797.778 250.531 331.218 +-803.064 246.842 326.341 +-810.453 243.763 322.27 +-816.195 240.148 317.491 +-823.519 236.959 313.274 +-828.818 233.15 308.239 +-2981.49 819.671 1083.66 +-413.197 110.98 146.722 +-3004.75 788.157 1041.99 +-409.256 104.797 138.549 +-409.371 102.293 135.237 +-407.775 99.388 131.397 +-388.077 92.2189 121.919 +-386.409 89.4801 118.298 +-382.069 86.1754 113.929 +-381.609 83.7889 110.774 +-382.147 81.6359 107.928 +-382.746 79.5034 105.109 +-381.226 76.9492 101.732 +-381.088 74.6972 98.7545 +-383.013 72.8513 96.3141 +-381.757 70.4093 93.0856 +-381.802 68.2255 90.1985 +-382.39 66.1466 87.4501 +-381.116 63.7602 84.295 +-383.473 61.9854 81.9487 +-382.128 59.617 78.8175 +-381.423 57.3695 75.8462 +-381.363 55.2327 73.0212 +-381.856 53.1822 70.3103 +-380.755 50.9219 67.322 +-380.206 48.7525 64.4539 +-380.995 46.7611 61.8212 +-380.184 44.581 58.9389 +-381.503 42.6548 56.3924 +-380.333 40.4562 53.4857 +-381.397 38.5023 50.9025 +-380.359 36.342 48.0465 +-380.178 34.2759 45.3149 +-379.174 32.1473 42.5007 +-379.624 30.1499 39.8602 +-379.649 28.1209 37.1776 +-379.147 26.0597 34.4526 +-379.907 24.088 31.8459 +-379.843 22.064 29.17 +-377.956 19.9479 26.3724 +-380.523 18.0663 23.8847 +-380.67 16.0582 21.23 +-379.191 13.9909 18.4969 +-378.88 11.9785 15.8363 +-376.541 9.91762 13.1117 +-378.769 7.97923 10.5491 +-377.97 5.97075 7.89371 +-146.278 1.54029 2.03637 +-146.994 0.773859 1.02309 +96.9 0 0 +97.7963 0.520972 0.675998 +96.8852 1.03232 1.33951 +96.8668 1.54838 2.00913 +96.841 2.06432 2.6786 +96.9077 2.58277 3.35132 +96.8671 3.09889 4.02103 +96.8191 3.61477 4.69042 +97.6615 4.16871 5.40919 +96.701 4.64567 6.02809 +97.5275 5.2085 6.7584 +96.5534 5.67517 7.36393 +97.2642 6.24034 8.09728 +97.2707 6.76512 8.77822 +97.2695 7.29045 9.45988 +97.0625 7.80034 10.1215 +96.8482 8.30859 10.781 +96.7258 8.82421 11.45 +97.2873 9.40595 12.2049 +96.2615 9.83313 12.7592 +97.0036 10.4409 13.5478 +96.7523 10.9462 14.2034 +96.5921 11.4611 14.8716 +96.4246 11.9752 15.5387 +96.2497 12.4884 16.2046 +96.0675 13.0007 16.8693 +96.7549 13.6355 17.693 +96.5563 14.1504 18.3611 +96.4474 14.6789 19.047 +97.1052 15.3297 19.8914 +96.7858 15.8306 20.5414 +96.5558 16.3456 21.2096 +96.3184 16.8593 21.8762 +96.8408 17.5104 22.721 +96.5868 18.0256 23.3895 +97.1838 18.7046 24.2706 +96.9127 19.2216 24.9414 +96.6342 19.7371 25.6103 +96.3483 20.2512 26.2773 +96.8093 20.9267 27.1538 +97.5401 21.6712 28.1199 +97.1329 22.1686 28.7653 +97.5592 22.8602 29.6627 +97.3217 23.4013 30.3649 +96.9834 23.9189 31.0364 +97.4693 24.6448 31.9784 +97.2053 25.187 32.6819 +97.7586 25.9472 33.6684 +96.6531 26.2683 34.085 +97.0019 26.9847 35.0146 +96.6124 27.5004 35.6837 +97.0279 28.2505 36.657 +97.3394 28.9804 37.6041 +96.9214 29.4978 38.2755 +97.2088 30.2347 39.2317 +96.7729 30.7514 39.9021 +97.1242 31.5236 40.9041 +96.582 32.0106 41.536 +96.9079 32.7903 42.5477 +96.4354 33.3052 43.2159 +96.6484 34.0618 44.1976 +96.244 34.6063 44.9042 +96.517 35.4007 45.9349 +96.6894 36.1686 46.9313 +96.7623 36.9087 47.8917 +96.1466 37.39 48.5162 +96.4471 38.2332 49.6103 +96.564 39.015 50.6248 +95.8367 39.4597 51.2017 +95.9283 40.2453 52.2211 +96.0865 41.0698 53.291 +96.2285 41.8992 54.3671 +96.273 42.6972 55.4026 +95.5786 43.1721 56.0188 +95.6765 44.0102 57.1064 +95.7577 44.8527 58.1995 +95.6645 45.6241 59.2005 +96.4173 46.816 60.747 +95.7444 47.3278 61.4112 +95.6814 48.1467 62.4737 +95.679 49.0077 63.5909 +95.6591 49.8723 64.7128 +96.3009 51.1008 66.3068 +96.1659 51.9354 67.3898 +95.4198 52.4457 68.052 +95.9935 53.6943 69.6721 +95.8805 54.5783 70.8192 +95.7494 55.4651 71.9699 +95.6003 56.3547 73.1242 +95.3616 57.2041 74.2264 +95.1766 58.0984 75.3868 +95.6741 59.4304 77.1151 +95.5155 60.3769 78.3432 +95.1994 61.2374 79.4599 +94.9342 62.1439 80.6361 +95.2582 63.4576 82.3407 +94.9496 64.3708 83.5256 +95.2848 65.743 85.3062 +94.8661 66.6165 86.4396 +94.8844 67.8154 87.9953 +94.2969 68.5992 89.0123 +94.394 69.8994 90.6994 +94.0834 70.9213 92.0253 +94.6222 72.614 94.2218 +94.1346 73.5485 95.4344 +93.9928 74.7737 97.0241 +93.9433 76.1001 98.7453 +93.8036 77.3826 100.409 +94.2808 79.2127 102.784 +93.5512 80.06 103.883 +93.6077 81.6056 105.889 +93.1738 82.755 107.38 +93.3293 84.4624 109.596 +93.6085 86.3309 112.02 +92.861 87.2868 113.261 +93.114 89.22 115.769 +93.0008 90.8511 117.886 +92.7435 92.3845 119.875 +92.7584 94.2353 122.277 +92.372 95.7254 124.21 +92.2 97.4822 126.49 +103.901 112.102 145.46 +114.609 126.212 163.769 +114.518 128.749 167.061 +114.88 131.887 171.133 +114.929 134.768 174.871 +114.678 137.388 178.27 +114.584 140.288 182.033 +114.152 142.868 185.381 +114.085 146.005 189.452 +114.191 149.484 193.966 +113.958 152.642 198.063 +113.927 156.199 202.679 +112.447 157.863 204.839 +109.366 157.276 204.077 +107.113 157.853 204.825 +104.103 157.285 204.089 +101.851 157.834 204.801 +98.9454 157.345 204.166 +96.7273 157.923 204.916 +93.5425 156.883 203.567 +91.5632 157.836 204.804 +89.4661 158.607 205.803 +89.8289 163.881 212.648 +89.4913 168.128 218.157 +89.0691 172.44 223.753 +88.9979 177.695 230.571 +87.5335 180.386 234.064 +86.5226 184.19 239 +85.1421 187.409 243.177 +83.8315 190.98 247.81 +86.0556 203.121 263.564 +83.5356 204.519 265.378 +80.0251 203.472 264.02 +77.1357 203.95 264.64 +73.676 202.864 263.23 +71.1474 204.323 265.124 +67.6854 203.079 263.51 +64.9323 203.912 264.59 +61.5409 202.689 263.004 +58.9709 204.152 264.901 +55.588 202.772 263.111 +52.9687 204.146 264.894 +49.5162 202.247 262.429 +46.8735 203.591 264.174 +43.6219 202.26 262.446 +40.9481 203.575 264.153 +37.7306 202.147 262.3 +35.0484 203.555 264.127 +31.9358 202.458 262.703 +29.1187 203.168 263.625 +26.0563 202.098 262.236 +23.3266 203.629 264.223 +20.317 202.771 263.11 +17.4593 203.36 263.873 +14.4686 202.286 262.48 +11.639 203.454 263.995 +8.66195 201.921 262.007 +5.81165 203.241 263.72 +2.88325 201.677 261.69 +2.03468e-14 202.845 263.206 +-2.88499 201.799 261.849 +-5.80118 202.875 263.244 +-8.6541 201.738 261.77 +-11.6006 202.783 263.125 +-14.4249 201.676 261.689 +-17.4069 202.75 263.082 +-20.1826 201.431 261.37 +-23.2498 202.96 263.355 +-25.9543 201.307 261.21 +-29.0664 202.803 263.151 +-31.7154 201.061 260.89 +-34.8707 202.523 262.788 +-37.5608 201.238 261.12 +-40.7531 202.605 262.894 +-43.3869 201.17 261.032 +-46.623 202.503 262.762 +-49.1318 200.677 260.393 +-52.4212 202.036 262.155 +-55.0104 200.665 260.377 +-58.3458 201.987 262.093 +-60.9031 200.589 260.278 +-64.2836 201.874 261.946 +-66.8082 200.448 260.095 +-70.2742 201.816 261.87 +-72.767 200.361 259.983 +-76.3934 201.988 262.094 +-78.6711 200.03 259.553 +-82.4228 201.795 261.843 +-84.8037 200.166 259.73 +-88.3608 201.299 261.199 +-90.9679 200.232 259.816 +-94.5987 201.383 261.309 +-97.2185 200.345 259.961 +-100.839 201.337 261.249 +-103.683 200.734 260.467 +-107.507 201.974 262.075 +-109.851 200.409 260.045 +-113.819 201.779 261.822 +-116.432 200.704 260.428 +-120.186 201.568 261.549 +-122.783 200.462 260.114 +-126.611 201.34 261.252 +-129.192 200.203 259.778 +-133.21 201.262 261.152 +-137.269 202.293 262.49 +-141.953 204.138 264.884 +-144.985 203.543 264.111 +-146.14 200.365 259.987 +-145.931 195.468 253.633 +-117.826 154.242 200.14 +-113.138 144.793 187.879 +-113.801 142.429 184.812 +-115.164 140.998 182.955 +-116.766 139.89 181.517 +-118.577 139.046 180.421 +-120.607 138.463 179.665 +-123.202 138.513 179.73 +-125.614 138.331 179.495 +-130.689 141.004 182.962 +-509.65 538.849 699.194 +-514.035 532.694 691.208 +-516.995 525.227 681.519 +-521.506 519.486 674.069 +-524.461 512.339 664.797 +-529.401 507.261 658.207 +-532.276 500.326 649.209 +-536.593 494.876 642.136 +-539.789 488.507 633.872 +-544.09 483.248 627.049 +-547.479 477.281 619.306 +-1902.67 1628.28 2112.81 +-572.209 480.759 623.819 +-574.837 474.209 615.319 +-578.284 468.447 607.843 +-583.072 463.848 601.875 +-586.233 458.03 594.327 +-591.264 453.743 588.764 +-593.701 447.541 580.716 +-584.047 432.491 561.188 +-587.058 427.072 554.156 +-592.167 423.232 549.174 +-594.914 417.759 542.071 +-599.804 413.842 536.989 +-603.221 408.953 530.645 +-607.761 404.869 525.346 +-611.002 399.964 518.982 +-615.802 396.118 513.992 +-619.08 391.33 507.779 +-624.65 388.017 503.48 +-627.345 382.948 496.903 +-632.439 379.378 492.27 +-635.609 374.68 486.174 +-142.173 82.357 106.864 +-143.126 81.4719 105.716 +-143.327 80.1705 104.027 +-143.947 79.1181 102.661 +-142.601 77.0133 99.9302 +-142.942 75.8505 98.4213 +-142.652 74.372 96.5029 +-148.076 75.8462 98.4158 +-149.387 75.1711 97.5398 +-687.852 340.015 441.193 +-702.391 341.05 442.536 +-708.973 338.122 438.738 +-716.477 335.596 435.459 +-718.772 330.628 429.013 +-725.722 327.803 425.348 +-385.092 170.789 221.611 +-386.949 168.483 218.618 +-711.434 304.085 394.572 +-135.569 56.8758 73.8004 +-725.822 298.849 387.777 +-731.985 295.746 383.751 +-736.52 291.969 378.85 +-743.703 289.215 375.277 +-747.046 284.951 369.744 +-753.734 281.95 365.85 +-757.65 277.892 360.585 +-765.299 275.178 357.063 +-769.55 271.213 351.918 +-776.531 268.185 347.989 +-780.073 263.95 342.494 +-787.42 260.978 338.638 +-792.799 257.319 333.889 +-799.995 254.213 329.859 +-805.203 250.441 324.964 +-812.153 247.177 320.73 +-817.903 243.51 315.972 +-825.414 240.326 311.84 +-2969.52 845.265 1096.79 +-410.12 114.09 148.04 +-410.821 111.653 144.877 +-410.751 109.022 141.464 +-412.938 106.997 138.836 +-407.154 102.948 133.582 +-408.239 100.683 130.644 +-387.519 93.1805 120.908 +-386.316 90.5221 117.459 +-381.038 86.9639 112.842 +-382.925 85.0771 110.394 +-381.77 82.5249 107.082 +-380.949 80.0703 103.897 +-382.649 78.1542 101.411 +-381.849 75.7357 98.2724 +-381.201 73.3685 95.2008 +-381.47 71.1923 92.377 +-381.514 68.9844 89.5121 +-381.813 66.8314 86.7185 +-380.827 64.469 83.6531 +-381.444 62.3905 80.9561 +-381.837 60.2796 78.2171 +-382.976 58.2876 75.6323 +-382.53 56.06 72.7419 +-380.004 53.5533 69.4892 +-380.853 51.5403 66.8771 +-381.184 49.4588 64.1762 +-380.015 47.1951 61.239 +-381.755 45.2971 58.7762 +-380.421 43.0393 55.8466 +-380.333 40.937 53.1187 +-380.213 38.839 50.3963 +-379.865 36.7262 47.6548 +-380.079 34.6742 44.9922 +-380.362 32.6312 42.3413 +-380.517 30.58 39.6797 +-380.542 28.522 37.0093 +-380.439 26.4593 34.3328 +-379.907 24.3743 31.6274 +-379.345 22.297 28.9319 +-379.65 20.2754 26.3088 +-379.826 18.2474 23.6773 +-380.67 16.249 21.0843 +-378.692 14.1386 18.3458 +-380.378 12.1687 15.7898 +-379.039 10.1021 13.1082 +-379.469 8.08895 10.496 +-380.17 6.07686 7.88515 +-144.878 1.54368 2.00303 +-146.394 0.779857 1.01192 +96.9 0 0 +96.9963 0.522738 0.66578 +96.8852 1.04436 1.33014 +96.8668 1.56644 1.99508 +96.841 2.0884 2.65987 +96.9077 2.6129 3.32788 +96.8671 3.13504 3.99291 +96.8191 3.65694 4.65762 +96.7637 4.17856 5.32198 +96.701 4.69987 5.98593 +97.5275 5.26926 6.71113 +96.5534 5.74137 7.31243 +97.3637 6.31955 8.04883 +97.2707 6.84404 8.71683 +97.1703 7.36797 9.38413 +97.0625 7.89134 10.0507 +96.9472 8.41409 10.7165 +96.7258 8.92715 11.37 +97.4848 9.535 12.1442 +96.2615 9.94783 12.6699 +96.9051 10.552 13.4395 +96.7523 11.0739 14.1041 +96.5921 11.5948 14.7676 +96.4246 12.1149 15.4301 +96.1519 12.6213 16.0749 +96.0675 13.1524 16.7513 +96.7549 13.7945 17.5693 +96.5563 14.3154 18.2327 +96.3504 14.8352 18.8947 +96.2339 15.3694 19.5751 +96.7858 16.0153 20.3977 +97.3267 16.6683 21.2294 +96.3184 17.056 21.7232 +96.9367 17.7323 22.5845 +96.6824 18.254 23.249 +96.4208 18.7743 23.9117 +96.9127 19.4458 24.767 +96.6342 19.9674 25.4312 +96.3483 20.4874 26.0936 +96.8093 21.1708 26.9639 +97.4461 21.9029 27.8964 +97.2266 22.4488 28.5917 +96.7189 22.9276 29.2015 +97.2286 23.6517 30.1237 +97.7252 24.383 31.0551 +97.4693 24.9323 31.7548 +97.1133 25.4566 32.4225 +96.9332 26.0283 33.1506 +97.3839 26.7757 34.1026 +97.0929 27.3251 34.8024 +96.6124 27.8212 35.4342 +97.1182 28.6067 36.4346 +97.3394 29.3185 37.3411 +96.9214 29.8419 38.0078 +96.496 30.3631 38.6716 +96.7729 31.1101 39.623 +97.0359 31.8623 40.5811 +96.6699 32.4136 41.2832 +96.9953 33.2027 42.2883 +96.5224 33.7242 42.9524 +96.6484 34.4592 43.8886 +96.9333 35.2608 44.9095 +96.3456 35.75 45.5326 +96.6894 36.5905 46.6031 +96.6775 37.3066 47.5151 +96.1466 37.8262 48.1769 +96.3632 38.6455 49.2205 +96.564 39.4701 50.2707 +96.5 40.1963 51.1955 +96.0931 40.7847 51.945 +96.0865 41.5489 52.9183 +96.2285 42.3879 53.9869 +96.273 43.1953 55.0152 +95.659 43.7125 55.6739 +96.3953 44.8581 57.1331 +95.8371 45.4135 57.8404 +95.6645 46.1563 58.7865 +95.7912 47.0546 59.9305 +95.7444 47.8799 60.9817 +95.6814 48.7083 62.0368 +95.679 49.5793 63.1462 +96.2674 50.7749 64.6688 +95.6217 51.3323 65.3788 +95.5667 52.2139 66.5016 +95.4198 53.0575 67.5761 +95.9935 54.3206 69.1849 +95.8073 55.1729 70.2703 +95.6769 56.0697 71.4125 +95.5283 56.9692 72.5582 +95.4329 57.9147 73.7624 +95.2473 58.8198 74.9152 +95.6741 60.1237 76.5758 +95.4461 61.0368 77.7388 +95.2683 61.9969 78.9616 +94.9342 62.8689 80.0722 +95.3258 64.2435 81.823 +94.9496 65.1217 82.9415 +95.1522 66.4173 84.5916 +94.9317 67.4399 85.8941 +94.4947 68.3249 87.0212 +94.4898 69.5415 88.5707 +94.9665 71.144 90.6118 +94.5869 72.1327 91.871 +94.6845 73.5098 93.625 +94.0115 74.3089 94.6428 +94.0536 75.6947 96.4077 +93.9433 76.9879 98.0547 +93.8036 78.2853 99.7072 +93.6342 79.5871 101.365 +93.377 80.8432 102.965 +93.6077 82.5575 105.148 +93.4004 83.9235 106.888 +93.3852 85.4989 108.895 +93.4981 87.2348 111.106 +93.3511 88.7713 113.063 +93.0066 90.1565 114.827 +93.0538 91.9634 117.128 +92.7957 93.5147 119.104 +93.0674 95.652 121.826 +92.981 97.48 124.154 +91.8 98.1914 125.06 +95.284 104.004 132.463 +115.045 128.17 163.243 +114.47 130.196 165.823 +114.833 133.371 169.867 +114.929 136.34 173.648 +114.451 138.715 176.673 +114.584 141.924 180.76 +114.196 144.59 184.156 +114.516 148.266 188.837 +114.191 151.228 192.609 +114.289 154.872 197.251 +114.293 158.528 201.908 +113.404 161.064 205.137 +110.421 160.646 204.605 +108.146 161.234 205.354 +105.152 160.724 204.704 +102.877 161.284 205.417 +99.5905 160.218 204.06 +97.7079 161.385 205.546 +94.466 160.28 204.139 +92.5313 161.365 205.521 +89.2382 160.048 203.843 +89.7972 165.735 211.087 +89.5222 170.147 216.706 +89.0991 174.51 222.263 +89.2026 180.181 229.486 +87.2211 181.839 231.598 +85.2822 183.667 233.926 +85.8102 191.083 243.371 +81.4762 187.78 239.164 +84.8287 202.561 257.989 +82.3986 204.089 259.936 +78.5777 202.123 257.432 +76.3259 204.164 260.031 +72.464 201.854 257.089 +70.2118 203.988 259.808 +66.4294 201.636 256.812 +64.1118 203.684 259.42 +60.5751 201.836 257.066 +58.1895 203.796 259.563 +54.7133 201.91 257.16 +52.1396 203.295 258.924 +48.7919 201.613 256.783 +46.2751 203.336 258.977 +42.9562 201.497 256.634 +40.4241 203.314 258.949 +37.1646 201.438 256.559 +34.6198 203.412 259.073 +31.4278 201.562 256.717 +28.7352 202.831 258.333 +25.6954 201.623 256.795 +22.9638 202.802 258.296 +19.9934 201.87 257.109 +17.2709 203.512 259.2 +14.2374 201.376 256.48 +11.4854 203.112 258.691 +8.52583 201.066 256.086 +5.73486 202.895 258.415 +2.84398 201.251 256.322 +2.01325e-14 203.05 258.612 +-2.83787 200.819 255.771 +-5.72613 202.587 258.022 +-8.51013 200.696 255.615 +-11.4784 202.988 258.533 +-14.1937 200.759 255.694 +-17.1662 202.278 257.629 +-19.8652 200.575 255.46 +-22.8871 202.124 257.433 +-25.6169 201.008 256.012 +-28.6742 202.4 257.785 +-31.2936 200.701 255.621 +-34.4108 202.183 257.509 +-36.9382 200.21 254.996 +-40.1194 201.781 256.997 +-42.7473 200.517 255.386 +-45.9132 201.746 256.952 +-48.3928 199.965 254.683 +-51.7485 201.77 256.982 +-54.1356 199.778 254.445 +-57.4602 201.242 256.31 +-59.9555 199.771 254.436 +-63.2723 201.017 256.023 +-65.7715 199.639 254.268 +-69.3178 201.391 256.499 +-71.5766 199.382 253.941 +-75.1786 201.095 256.122 +-77.3871 199.061 253.532 +-81.3341 201.452 256.577 +-83.4517 199.273 253.802 +-87.2479 201.082 256.106 +-89.5516 199.414 253.982 +-93.3859 201.12 256.154 +-95.6848 199.484 254.071 +-99.7865 201.56 256.714 +-101.879 199.542 254.144 +-106.147 201.746 256.951 +-108.423 200.111 254.87 +-112.093 201.038 256.05 +-114.663 199.96 254.677 +-118.647 201.308 256.393 +-120.927 199.735 254.391 +-125.285 201.555 256.709 +-127.139 199.321 253.863 +-131.562 201.09 256.116 +-133.671 199.29 253.823 +-140.194 203.962 259.774 +-142.433 202.293 257.648 +-146.018 202.533 257.954 +-144.355 195.613 249.141 +-113.98 150.948 192.253 +-113.44 146.872 187.062 +-113.976 144.312 183.802 +-115.744 143.361 182.591 +-117.357 142.237 181.158 +-119.362 141.599 180.346 +-121.311 140.896 179.451 +-124.3 141.377 180.063 +-127.408 141.943 180.785 +-508.378 554.901 706.743 +-511.35 546.952 696.62 +-515.963 540.93 688.95 +-518.849 533.259 679.179 +-523.491 527.547 671.904 +-526.475 520.306 662.683 +-530.745 514.48 655.262 +-533.419 507.25 646.054 +-538.746 502.657 640.203 +-541.131 495.434 631.004 +-546.242 490.819 625.126 +-549.544 484.67 617.295 +-168.926 146.251 186.272 +-576.441 489.964 624.038 +-577.335 481.825 613.671 +-579.969 475.293 605.351 +-585.263 471.022 599.912 +-587.464 464.347 591.41 +-592.447 459.955 585.816 +-595.589 454.201 578.488 +-585.764 438.823 558.902 +-589.372 433.757 552.45 +-593.725 429.297 546.769 +-596.948 424.076 540.12 +-602.322 420.427 535.473 +-604.493 414.595 528.045 +-610.126 411.185 523.701 +-612.912 405.895 516.963 +-617.729 401.994 511.995 +-621.025 397.139 505.812 +-626.403 393.645 501.361 +-629.537 388.769 495.152 +-635.007 385.362 490.812 +-638.198 380.595 484.741 +-142.754 83.658 106.55 +-143.638 82.7169 105.351 +-143.695 81.3144 103.565 +-143.724 79.9169 101.785 +-142.601 77.9117 99.2314 +-143.017 76.7754 97.7842 +-145.238 76.6037 97.5655 +-148.842 77.128 98.2333 +-681.422 346.89 441.812 +-699.276 349.694 445.384 +-704.895 346.259 441.008 +-708.658 341.914 435.475 +-715.684 339.135 431.936 +-721.407 335.711 427.575 +-727.33 332.362 423.309 +-730.461 327.74 417.422 +-387.763 170.807 217.546 +-385.821 166.834 212.486 +-724.572 307.529 391.681 +-136.957 57.0483 72.6589 +-136.174 55.6604 70.8913 +-738.533 296.182 377.228 +-745.558 293.319 373.582 +-749.335 289.159 368.284 +-756.036 286.109 364.4 +-760.479 282.184 359.4 +-767.625 279.234 355.644 +-770.849 274.84 350.047 +-779.055 272.195 346.679 +-783.659 268.256 341.661 +-790.408 265.025 337.546 +-795.006 261.045 332.477 +-802.834 258.091 328.715 +-807.252 254.007 323.513 +-815.464 251.08 319.785 +-820.329 247.082 314.693 +-828.483 244.034 310.811 +-834.528 240.317 306.077 +-411.757 115.882 147.592 +-833.884 229.276 292.015 +-410.843 110.319 140.506 +-408.704 107.135 136.452 +-409.094 104.645 133.28 +-402.676 100.47 127.963 +-865.381 210.512 268.116 +-383.048 90.803 115.65 +-383.005 88.4329 112.632 +-381.891 85.8373 109.326 +-382.147 83.5697 106.438 +-382.462 81.3261 103.58 +-381.226 78.772 100.327 +-381.374 76.5241 97.464 +-380.724 74.1317 94.417 +-380.801 71.8962 91.5698 +-382.473 69.9645 89.1095 +-380.179 67.322 85.7439 +-381.694 65.3693 83.2569 +-382.99 63.374 80.7156 +-382.999 61.1683 77.9063 +-382.102 58.8331 74.9321 +-381.752 56.5986 72.0862 +-382.733 54.567 69.4987 +-379.877 52.0079 66.2392 +-381.575 50.0871 63.7929 +-383.151 48.1397 61.3125 +-382.049 45.8609 58.4102 +-380.815 43.5864 55.5134 +-380.136 41.3931 52.7199 +-379.621 39.2308 49.9659 +-380.359 37.2029 47.383 +-380.079 35.0787 44.6776 +-379.174 32.9088 41.9139 +-381.409 31.0092 39.4945 +-380.542 28.8547 36.7505 +-379.843 26.726 34.0393 +-379.808 24.6521 31.3979 +-379.047 22.5393 28.707 +-377.956 20.4204 26.0082 +-380.822 18.5088 23.5735 +-378.975 16.3653 20.8435 +-379.191 14.3224 18.2415 +-377.981 12.2331 15.5806 +-379.039 10.2199 13.0165 +-378.769 8.16825 10.4034 +-380.17 6.14775 7.83001 +-145.378 1.56708 1.99589 +-146.394 0.788955 1.00484 +96.9 0 0 +96.8963 0.528178 0.660355 +96.8852 1.05632 1.32066 +96.6669 1.5811 1.97678 +96.841 2.11231 2.64092 +96.9077 2.64281 3.30418 +96.7672 3.16766 3.96037 +96.7193 3.69499 4.61967 +97.6615 4.26562 5.3331 +96.701 4.75368 5.94329 +97.4278 5.32414 6.65651 +96.5534 5.8071 7.26034 +97.3637 6.39191 7.99149 +96.3765 6.85875 8.57516 +97.1703 7.45232 9.31728 +97.1616 7.98987 9.98934 +96.9472 8.51043 10.6402 +96.7258 9.02936 11.289 +96.3984 9.53668 11.9232 +97.1491 10.1546 12.6957 +96.8066 10.662 13.3302 +96.7523 11.2007 14.0036 +96.494 11.7157 14.6475 +96.3266 12.2412 15.3046 +96.2497 12.7788 15.9767 +96.0675 13.3029 16.632 +96.7549 13.9525 17.4441 +95.7784 14.3627 17.957 +96.3504 15.0051 18.7601 +96.1371 15.5297 19.416 +96.7858 16.1987 20.2524 +96.6521 16.7423 20.932 +97.1836 17.4062 21.7621 +96.9367 17.9353 22.4236 +96.6824 18.463 23.0834 +96.4208 18.9893 23.7414 +96.9127 19.6685 24.5905 +96.6342 20.196 25.25 +97.1048 20.8846 26.111 +96.9035 21.434 26.7978 +97.4461 22.1537 27.6976 +97.1329 22.684 28.3606 +97.5592 23.3917 29.2454 +97.2286 23.9225 29.9091 +97.7252 24.6621 30.8338 +97.4693 25.2178 31.5286 +97.2053 25.7725 32.2221 +96.9332 26.3263 32.9145 +97.3839 27.0823 33.8596 +97.0019 27.6121 34.522 +96.6124 28.1398 35.1818 +97.0279 28.9073 36.1414 +96.6204 29.4351 36.8012 +96.9214 30.1836 37.737 +96.496 30.7107 38.3961 +96.7729 31.4663 39.3408 +96.9476 32.1978 40.2554 +96.6699 32.7847 40.9891 +96.9953 33.5829 41.987 +96.4354 34.0795 42.6079 +96.735 34.885 43.6149 +96.1578 35.3792 44.2329 +96.4313 36.1915 45.2485 +96.6041 36.9769 46.2303 +96.1687 37.5351 46.9283 +96.1466 38.2593 47.8337 +96.1955 39.02 48.7848 +95.6467 39.5429 49.4385 +96.0026 40.4469 50.5687 +96.0931 41.2517 51.575 +96.0865 42.0247 52.5414 +95.4958 42.5468 53.1942 +96.273 43.6898 54.6232 +96.3021 44.5102 55.6489 +95.6765 45.0334 56.303 +96.3924 46.1996 57.7611 +95.6645 46.6848 58.3677 +95.7912 47.5933 59.5036 +95.7444 48.4281 60.5473 +95.6814 49.266 61.5948 +95.7556 50.1872 62.7465 +96.3434 51.3968 64.2589 +95.6217 51.92 64.913 +95.5667 52.8117 66.0279 +96.0886 54.0411 67.565 +95.33 54.5628 68.2172 +95.8805 55.8472 69.8229 +95.6769 56.7116 70.9038 +95.5283 57.6214 72.0413 +95.3616 58.534 73.1822 +95.2473 59.4932 74.3815 +95.6741 60.8121 76.0303 +95.3766 61.6907 77.1289 +95.1306 62.6161 78.2859 +94.866 63.5431 79.4448 +95.2582 64.9329 81.1824 +94.9496 65.8673 82.3506 +95.2185 67.2246 84.0476 +94.8005 68.1184 85.1651 +94.6895 69.2496 86.5794 +94.4255 70.2896 87.8796 +94.4576 71.5726 89.4836 +94.5869 72.9586 91.2165 +94.6222 74.3021 92.8963 +94.0731 75.2091 94.0302 +93.9928 76.512 95.6592 +93.9433 77.8693 97.3562 +93.982 79.3322 99.1851 +93.6342 80.4984 100.643 +93.6674 82.023 102.549 +93.6077 83.5028 104.399 +93.4004 84.8844 106.127 +93.4971 86.5815 108.249 +93.5533 88.2861 110.38 +93.4601 89.8926 112.388 +93.0603 91.2412 114.074 +92.9478 92.9108 116.162 +93.266 95.0645 118.854 +93.0159 96.6935 120.891 +92.6765 98.2731 122.866 +92.15 99.6941 124.643 +91.6893 101.226 126.558 +114.609 129.146 161.465 +114.948 132.236 165.328 +114.739 134.788 168.518 +114.883 137.846 172.342 +114.633 140.526 175.693 +114.584 143.549 179.473 +114.196 146.246 182.844 +114.473 149.907 187.421 +114.149 152.903 191.167 +113.916 156.133 195.206 +114.049 160.001 200.041 +113.324 162.793 203.532 +111.749 164.44 205.591 +108.529 163.658 204.613 +106.426 164.533 205.707 +103.023 163.363 204.244 +101.131 164.56 205.741 +97.6728 163.174 204.009 +95.9024 164.581 205.767 +92.5313 163.213 204.057 +90.5731 164.302 205.418 +90.0828 168.165 210.249 +89.584 172.214 215.311 +89.3698 177.045 221.351 +88.1208 180.034 225.087 +86.1419 181.645 227.102 +84.5931 184.269 230.383 +88.1352 198.507 248.183 +86.9632 202.721 253.452 +83.3014 201.192 251.54 +80.8261 202.486 253.159 +77.3404 201.218 251.573 +74.8862 202.606 253.309 +71.2952 200.872 251.141 +69.0475 202.903 253.68 +65.5123 201.129 251.462 +63.0624 202.644 253.356 +59.591 200.83 251.088 +57.2171 202.685 253.407 +53.8055 200.833 251.092 +51.4044 202.722 253.454 +47.9642 200.463 250.629 +45.5374 202.386 253.034 +42.2774 200.583 250.779 +39.7538 202.232 252.841 +36.5873 200.579 250.774 +33.9822 201.951 252.489 +30.8815 200.326 250.458 +28.2559 201.731 252.214 +25.2246 200.196 250.295 +22.636 202.195 252.795 +19.6088 200.253 250.367 +16.983 202.411 253.064 +14.0062 200.374 250.518 +11.29 201.941 252.477 +8.38971 200.122 250.202 +5.63887 201.784 252.28 +2.79162 199.808 249.81 +1.97529e-14 201.502 251.928 +-2.79424 199.995 250.044 +-5.63015 201.471 251.89 +-8.38709 200.059 250.124 +-11.2656 201.504 251.93 +-13.98 200 250.05 +-16.894 201.351 251.739 +-19.5661 199.817 249.821 +-22.5244 201.198 251.548 +-25.1461 199.573 249.516 +-28.2297 201.544 251.98 +-30.7186 199.268 249.135 +-33.8568 201.206 251.558 +-36.3948 199.524 249.455 +-39.4491 200.682 250.903 +-41.9511 199.035 248.843 +-45.1338 200.593 250.791 +-47.639 199.103 248.929 +-50.7317 200.07 250.137 +-53.1948 198.554 248.242 +-56.6267 200.594 250.793 +-58.9167 198.558 248.247 +-62.2228 199.946 249.983 +-64.6151 198.375 248.019 +-68.195 200.398 250.547 +-70.2779 198.006 247.557 +-74.0089 200.233 250.341 +-76.2199 198.303 247.929 +-79.7375 199.759 249.748 +-81.9995 198.047 247.608 +-85.7985 200.005 250.057 +-87.9481 198.086 247.657 +-91.8424 200.06 250.126 +-94.0091 198.235 247.843 +-98.1492 200.523 250.703 +-100.015 198.133 247.716 +-104.231 200.372 250.515 +-106.234 198.316 247.944 +-110.368 200.21 250.312 +-112.593 198.599 248.299 +-116.526 199.974 250.017 +-119.035 198.863 248.629 +-123.064 200.248 250.36 +-125.233 198.581 248.276 +-129.352 199.976 250.02 +-131.452 198.225 247.83 +-137.029 201.64 252.101 +-139.881 200.943 251.229 +-145.083 203.539 254.475 +-117.773 161.42 201.815 +-113.388 151.884 189.892 +-113.698 148.892 186.153 +-114.678 146.863 183.616 +-116.636 146.121 182.688 +-118.174 144.867 181.12 +-120.655 144.772 181.001 +-122.579 143.998 180.034 +-126.686 145.74 182.211 +-130.656 147.229 184.073 +-510.545 563.646 704.699 +-513.25 555.27 694.227 +-517.74 549.007 686.397 +-520.703 541.292 676.751 +-525.581 535.717 669.781 +-528.647 528.435 660.677 +-533.001 522.583 653.36 +-535.761 515.31 644.267 +-541.064 510.599 638.377 +-543.48 503.281 629.228 +-548.791 498.755 623.569 +-167.771 149.66 187.112 +-168.404 147.469 184.373 +-169.165 145.433 181.828 +-580.012 489.602 612.125 +-583.038 483.279 604.22 +-587.698 478.397 598.117 +-590.789 472.321 590.52 +-595.56 467.665 584.699 +-583.38 449.984 562.593 +-588.627 446.016 557.632 +-591.686 440.446 550.668 +-596.323 436.112 545.249 +-599.179 430.535 538.276 +-605.171 427.252 534.172 +-608.039 421.802 527.359 +-612.828 417.735 522.273 +-615.231 412.095 515.222 +-620.965 408.725 511.009 +-623.595 403.348 504.286 +-629.697 400.246 500.407 +-631.941 394.722 493.502 +-637.432 391.263 489.177 +-142.573 85.9981 107.519 +-143.624 85.1318 106.436 +-142.907 83.2379 104.068 +-143.99 82.4141 103.038 +-142.609 80.2048 100.276 +-142.601 78.8038 98.5245 +-142.565 77.409 96.7806 +-149.116 79.5496 99.4569 +-149.532 78.3721 97.9848 +-698.552 359.682 449.692 +-701.996 355.074 443.931 +-708.339 351.934 440.006 +-711.495 347.214 434.104 +-718.223 344.235 430.38 +-721.487 339.593 424.576 +-727.651 336.316 420.479 +-734.183 333.181 416.56 +-386.786 172.327 215.452 +-387.868 169.639 212.091 +-381.982 163.981 205.017 +-731.874 308.346 385.51 +-136.174 56.2977 70.3862 +-742.14 301.036 376.37 +-748.679 297.919 372.473 +-752.812 293.826 367.356 +-759.191 290.593 363.314 +-763.222 286.444 358.127 +-770.383 283.446 354.378 +-774.313 279.236 349.115 +-782.711 276.604 345.825 +-785.846 272.085 340.174 +-794.011 269.281 336.669 +-798.803 265.295 331.685 +-806.559 262.257 327.887 +-810.816 258.049 322.626 +-819.223 255.125 318.97 +-410.299 124.996 156.277 +-832.725 248.092 310.178 +-837.791 244.019 305.084 +-845.991 240.815 301.08 +-850.968 236.652 295.875 +-3004.75 816.064 1020.28 +-413.215 109.557 136.974 +-410.757 106.273 132.868 +-391.642 98.8359 123.57 +-385.844 94.9345 118.692 +-382.488 91.7084 114.658 +-383.005 89.4454 111.829 +-382.173 86.8845 108.627 +-383.09 84.7351 105.94 +-382.273 82.2167 102.791 +-381.7 79.7732 99.7365 +-382.23 77.5739 96.9868 +-381.582 75.1491 93.9552 +-382.331 73.0117 91.2829 +-382.09 70.6943 88.3857 +-382.198 68.4538 85.5845 +-382.079 66.1846 82.7473 +-382.12 63.9541 79.9586 +-382.128 61.7279 77.1754 +-381.811 59.4614 74.3416 +-381.947 57.2758 71.6092 +-380.979 54.9389 68.6874 +-381.732 52.8602 66.0885 +-382.064 50.7255 63.4196 +-381.387 48.4667 60.5955 +-382.049 46.386 57.9941 +-381.405 44.1538 55.2033 +-380.53 41.9105 52.3986 +-381.693 39.8965 49.8807 +-381.742 37.7656 47.2165 +-380.079 35.4803 44.3593 +-380.56 33.4072 41.7674 +-379.624 31.2175 39.0297 +-380.046 29.1471 36.4412 +-381.134 27.1239 33.9117 +-380.405 24.9736 31.2232 +-380.739 22.8991 28.6297 +-380.148 20.7739 25.9726 +-380.424 18.7011 23.381 +-380.87 16.6355 20.7985 +-379.391 14.494 18.1211 +-379.379 12.4189 15.5268 +-380.038 10.3642 12.9578 +-379.269 8.2727 10.3429 +-378.37 6.1887 7.73743 +-146.578 1.5981 1.99802 +-144.295 0.786545 0.983378 +97 0 0 +96.8963 0.534114 0.655563 +96.8852 1.06819 1.31108 +96.8668 1.60218 1.96649 +96.841 2.13605 2.62175 +96.9077 2.67251 3.2802 +96.7672 3.20326 3.93163 +96.7193 3.73652 4.58615 +96.7637 4.27391 5.24573 +97.4985 4.84675 5.94883 +97.4278 5.38398 6.60821 +97.5488 5.9329 7.28195 +97.3637 6.46374 7.9335 +97.2707 7.0002 8.59193 +97.1703 7.53608 9.24966 +97.0625 8.07139 9.9067 +96.9472 8.60607 10.563 +96.7258 9.13084 11.207 +96.3984 9.64385 11.8367 +96.2615 10.1748 12.4884 +96.8066 10.7818 13.2334 +96.7523 11.3265 13.902 +96.5921 11.8594 14.556 +96.4246 12.3914 15.209 +96.2497 12.9224 15.8607 +96.0675 13.4524 16.5113 +96.8524 14.1235 17.335 +96.5563 14.6421 17.9715 +96.3504 15.1737 18.624 +96.1371 15.7042 19.2751 +96.8824 16.3971 20.1255 +96.5558 16.9136 20.7595 +97.0874 17.5844 21.5829 +96.9367 18.1369 22.2609 +96.5868 18.652 22.8931 +96.4208 19.2027 23.5691 +96.9127 19.8895 24.4121 +96.6342 20.423 25.0668 +97.1993 21.1399 25.9468 +96.9035 21.6749 26.6034 +97.5401 22.4242 27.5232 +97.1329 22.9389 28.1548 +97.6525 23.6772 29.061 +97.3217 24.2145 29.7205 +96.8907 24.7264 30.3488 +97.5617 25.5254 31.3295 +97.1133 26.0375 31.958 +96.8415 26.597 32.6447 +97.3839 27.3866 33.6139 +97.0929 27.9486 34.3037 +96.6124 28.456 34.9265 +97.0279 29.2322 35.8791 +96.6204 29.7659 36.5342 +96.9214 30.5228 37.4632 +96.496 31.0559 38.1175 +96.8616 31.849 39.091 +97.1242 32.619 40.0361 +96.6699 33.1531 40.6916 +96.9079 33.9297 41.6447 +97.1317 34.7114 42.6042 +96.735 35.277 43.2984 +96.9333 36.0653 44.2661 +96.3456 36.5657 44.8802 +96.6041 37.3924 45.8949 +96.7623 38.1913 46.8754 +96.1466 38.6892 47.4866 +96.3632 39.5273 48.5152 +96.564 40.3707 49.5504 +95.8367 40.8308 50.1151 +95.9283 41.6437 51.1129 +96.2504 42.5694 52.249 +96.2285 43.3551 53.2134 +96.1921 44.1438 54.1814 +95.5786 44.6722 54.83 +96.3953 45.8816 56.3144 +95.7577 46.4112 56.9644 +95.6645 47.2095 57.9442 +96.4173 48.4427 59.4579 +95.7444 48.9724 60.1079 +96.3759 50.1813 61.5917 +95.679 50.7106 62.2414 +95.6591 51.6052 63.3395 +95.6217 52.5035 64.442 +95.6416 53.4471 65.6001 +95.4941 54.3103 66.6597 +95.9935 55.56 68.1935 +95.1491 56.044 68.7876 +95.7494 57.3924 70.4426 +95.5283 58.269 71.5185 +95.3616 59.1918 72.6512 +95.318 60.2065 73.8965 +95.7442 61.5405 75.5339 +95.3766 62.384 76.5692 +95.1994 63.3653 77.7736 +94.866 64.2572 78.8683 +95.2582 65.6626 80.5933 +94.8827 66.5608 81.6957 +95.2185 67.9801 83.4377 +94.8661 68.9313 84.6052 +94.6895 70.0278 85.9511 +94.4255 71.0795 87.2419 +94.394 72.3283 88.7746 +94.5869 73.7785 90.5546 +94.4977 75.0386 92.1013 +94.0115 76.0044 93.2866 +94.0536 77.4218 95.0263 +94.485 79.1986 97.2071 +93.982 80.2238 98.4654 +93.8693 81.6077 100.164 +93.6674 82.9449 101.805 +93.5503 84.3894 103.578 +93.1738 85.6306 105.102 +93.6089 87.6594 107.592 +93.4429 89.1728 109.449 +93.3511 90.7967 111.443 +93.0603 92.2666 113.247 +92.8948 93.9013 115.253 +92.7957 95.6484 117.397 +93.0159 97.7801 120.014 +92.7273 99.4325 122.042 +92.5 101.198 124.209 +91.6893 102.363 125.639 +96.1862 109.605 134.528 +114.948 133.722 164.129 +114.833 136.414 167.433 +114.837 139.339 171.023 +114.542 141.993 174.28 +114.45 144.993 177.962 +114.196 147.889 181.517 +114.473 151.591 186.061 +114.276 154.793 189.991 +114.041 158.061 194.001 +113.968 161.684 198.448 +112.048 162.769 199.781 +109.991 163.671 200.888 +106.654 162.637 199.619 +104.665 163.629 200.836 +101.448 162.672 199.661 +99.5546 163.815 201.064 +96.237 162.582 199.551 +94.3634 163.759 200.996 +91.4297 163.083 200.165 +89.1731 163.58 200.776 +89.8607 169.636 208.209 +89.7385 174.45 214.118 +89.1593 178.613 219.227 +87.0391 179.822 220.711 +84.8354 180.901 222.035 +88.2591 194.416 238.623 +87.8413 200.068 245.561 +85.6432 201.887 247.793 +82.2498 200.884 246.562 +79.5197 201.452 247.259 +76.2899 200.716 246.355 +73.7165 201.683 247.542 +70.3645 200.478 246.064 +67.9663 201.97 247.895 +64.6949 200.852 246.523 +62.0511 201.635 247.483 +58.8621 200.603 246.217 +56.3141 201.728 247.598 +53.1288 200.536 246.134 +50.5283 201.507 247.327 +47.4912 200.716 246.356 +44.8277 201.471 247.282 +41.7031 200.082 245.578 +39.181 201.558 247.39 +36.0665 199.946 245.411 +33.5014 201.331 247.11 +30.4502 199.747 245.167 +27.8288 200.915 246.6 +24.9343 200.116 245.619 +22.2942 201.38 247.17 +19.3951 200.297 245.841 +16.7213 201.532 247.357 +13.8055 199.723 245.137 +11.1155 201.054 246.771 +8.29809 200.161 245.674 +5.5359 200.325 245.876 +2.76195 199.906 245.361 +1.94406e-14 200.545 246.146 +-2.75497 199.401 244.741 +-5.54114 200.515 246.109 +-8.28762 199.908 245.365 +-11.0841 200.486 246.074 +-13.8055 199.723 245.137 +-16.6219 200.334 245.886 +-19.3219 199.541 244.913 +-22.1616 200.183 245.701 +-24.8558 199.486 244.846 +-27.7765 200.537 246.136 +-30.3639 199.182 244.473 +-33.3237 200.263 245.8 +-35.8741 198.88 244.102 +-38.8519 199.866 245.312 +-41.4682 198.955 244.194 +-44.5076 200.032 245.517 +-46.959 198.467 243.595 +-50.0121 199.449 244.8 +-52.6172 198.605 243.764 +-55.6542 199.365 244.697 +-58.2607 198.554 243.702 +-61.326 199.279 244.592 +-63.8974 198.376 243.484 +-67.0099 199.128 244.407 +-69.5637 198.197 243.264 +-72.9291 199.529 244.899 +-75.2628 198.014 243.039 +-78.6004 199.123 244.401 +-80.9479 197.704 242.659 +-84.5303 199.264 244.573 +-87.0395 198.242 243.319 +-90.5469 199.455 244.808 +-92.8162 197.919 242.923 +-96.3072 198.971 244.213 +-98.842 198.01 243.035 +-102.47 199.2 244.495 +-105.06 198.328 243.425 +-108.61 199.235 244.537 +-111.024 198.033 243.063 +-114.987 199.55 244.925 +-117.354 198.258 243.339 +-121.093 199.255 244.562 +-123.767 198.462 243.589 +-127.591 199.471 244.827 +-129.959 198.176 243.238 +-133.708 198.964 244.206 +-138.127 200.653 246.278 +-142.317 201.903 247.813 +-113.419 157.198 192.943 +-113.473 153.705 188.656 +-114.516 151.649 186.131 +-115.379 149.422 183.399 +-117.439 148.781 182.611 +-118.991 147.508 181.05 +-121.763 147.743 181.338 +-123.847 147.122 180.576 +-128.547 149.542 183.546 +-507.402 578.187 709.658 +-511.727 571.3 701.205 +-515 563.425 691.539 +-519.212 556.756 683.353 +-523.124 549.92 674.964 +-526.835 543.03 666.507 +-530.131 535.874 657.723 +-534.774 530.215 650.778 +-538.158 523.432 642.453 +-542.775 517.971 635.749 +-545.828 511.137 627.362 +-164.598 151.272 185.669 +-168.459 151.963 186.517 +-168.23 148.971 182.845 +-1925.88 1674.31 2055.02 +-582.272 497.033 610.051 +-585.205 490.526 602.064 +-590.072 485.728 596.175 +-593.005 479.421 588.434 +-585.973 465.308 571.112 +-586.023 457.103 561.041 +-590.281 452.296 555.141 +-594 447.138 548.81 +-598.986 442.982 543.709 +-601.541 437.089 536.477 +-606.96 433.331 531.864 +-609.913 427.857 525.145 +-614.787 423.78 520.141 +-617.822 418.481 513.637 +-623.236 414.831 509.157 +-625.679 409.244 502.3 +-631.169 405.69 497.938 +-634.558 400.811 491.949 +-639.5 396.944 487.203 +-141.566 86.3506 105.985 +-143.407 85.9584 105.504 +-144.004 84.8196 104.106 +-143.032 82.7857 101.61 +-142.684 81.1485 99.6004 +-142.751 79.7728 97.9119 +-144.3 79.2315 97.2475 +-149.572 80.6893 99.0368 +-679.405 360.089 441.968 +-700.635 364.808 447.76 +-704.25 360.217 442.125 +-710.843 357.147 438.357 +-714.411 352.555 432.72 +-720.762 349.334 428.767 +-724.442 344.815 423.221 +-729.741 341.072 418.627 +-736.772 338.113 414.995 +-729.285 328.574 403.287 +-387.213 171.256 210.197 +-385.609 167.397 205.461 +-386.083 164.489 201.891 +-740.324 309.509 379.887 +-136.955 56.1777 68.9516 +-751.462 302.387 371.145 +-755.611 298.233 366.047 +-761.578 294.783 361.812 +-766.393 290.867 357.006 +-773.054 287.625 353.026 +-778.037 283.732 348.248 +-784.713 280.428 344.193 +-789.169 276.306 339.134 +-796.999 273.332 335.484 +-801.275 269.106 330.297 +-809.043 266.021 326.511 +-814.291 262.068 321.658 +-821.102 258.584 317.382 +-826.531 254.63 312.529 +-412.481 124.271 152.528 +-840.782 247.642 303.952 +-413.395 118.998 146.056 +-854.165 240.211 294.832 +-863.229 237.08 290.989 +-414.595 111.159 136.435 +-401.61 105.074 128.967 +-390.344 99.6151 122.266 +-382.774 95.2378 116.893 +-380.154 92.1731 113.132 +-383.099 90.4727 111.045 +-382.079 87.8388 107.812 +-381.581 85.3501 104.757 +-382.273 83.1407 102.046 +-381.416 80.6097 98.9391 +-382.325 78.4653 96.3071 +-380.628 75.8042 93.0409 +-381.757 73.7217 90.4848 +-381.802 71.4351 87.6784 +-381.813 69.1537 84.8781 +-381.598 66.8438 82.043 +-382.603 64.7543 79.4784 +-381.547 62.3268 76.4989 +-382.102 60.1754 73.8584 +-381.558 57.8606 71.0172 +-381.856 55.6842 68.3459 +-381.732 53.4542 65.6089 +-382.456 51.3481 63.0239 +-381.387 49.0113 60.1558 +-382.049 46.9073 57.5733 +-379.93 44.4773 54.5908 +-380.53 42.3815 52.0184 +-380.213 40.1886 49.3268 +-380.853 38.1011 46.7647 +-380.474 35.9164 44.0832 +-380.164 33.7476 41.4212 +-379.228 31.5354 38.706 +-380.939 29.5439 36.2618 +-380.439 27.3787 33.6042 +-379.907 25.2213 30.9562 +-379.843 23.102 28.355 +-380.148 21.0074 25.7842 +-379.626 18.8716 23.1627 +-379.374 16.7564 20.5665 +-378.692 14.6299 17.9565 +-378.281 12.5222 15.3695 +-379.039 10.4531 12.83 +-380.168 8.3855 10.2922 +-378.87 6.26652 7.69143 +-144.778 1.59622 1.95918 +-146.194 0.805857 0.989096 +96.9 0 0 +96.8963 0.540006 0.650718 +96.8852 1.07997 1.30139 +96.8668 1.61986 1.95196 +96.841 2.15961 2.60238 +96.9077 2.702 3.25596 +96.7672 3.2386 3.90257 +96.7193 3.77774 4.55225 +96.7637 4.32106 5.20695 +96.6013 4.85513 5.85052 +97.5275 5.44894 6.56608 +97.4493 5.99224 7.22076 +97.3637 6.53505 7.87487 +97.2707 7.07742 8.52843 +97.1703 7.61922 9.1813 +97.0625 8.16044 9.83348 +96.9472 8.70102 10.4849 +96.7258 9.23157 11.1242 +96.5959 9.77023 11.7733 +97.0505 10.3714 12.4978 +96.9051 10.9119 13.149 +96.7523 11.4515 13.7993 +96.494 11.978 14.4338 +96.4246 12.5281 15.0966 +97.1301 13.1844 15.8875 +96.0675 13.6009 16.3893 +96.8524 14.2793 17.2068 +96.5563 14.8036 17.8386 +96.4474 15.3566 18.505 +96.9116 16.0054 19.2868 +96.7858 16.5614 19.9568 +96.5558 17.1002 20.606 +97.1836 17.796 21.4445 +96.9367 18.337 22.0964 +96.6824 18.8764 22.7465 +96.4208 19.4145 23.3949 +96.9127 20.109 24.2317 +96.6342 20.6483 24.8816 +96.3483 21.186 25.5296 +96.9035 21.914 26.4068 +97.4461 22.6498 27.2934 +97.1329 23.192 27.9468 +96.8123 23.7324 28.598 +97.3217 24.4816 29.5008 +97.7252 25.2144 30.3839 +97.4693 25.7825 31.0684 +97.1133 26.3247 31.7218 +96.8415 26.8904 32.4034 +97.3839 27.6888 33.3655 +97.0019 28.2304 34.0182 +96.6124 28.7699 34.6683 +97.0279 29.5547 35.6139 +97.3394 30.3182 36.5341 +96.9214 30.8595 37.1863 +96.496 31.3985 37.8358 +96.6842 32.1415 38.7311 +97.1242 32.9789 39.7402 +97.3729 33.7626 40.6846 +96.9953 34.3349 41.3743 +97.2187 35.1257 42.3272 +96.6484 35.6343 42.94 +96.9333 36.4632 43.9389 +96.4313 37.002 44.5881 +96.6041 37.8049 45.5557 +96.7623 38.6126 46.5289 +96.1466 39.1161 47.1356 +96.3632 39.9634 48.1566 +96.564 40.8161 49.1842 +95.8367 41.2813 49.7447 +95.9283 42.1031 50.7351 +96.0046 42.9292 51.7305 +96.2285 43.8334 52.8201 +96.273 44.6682 53.8261 +96.3824 45.545 54.8826 +96.3953 46.3878 55.8982 +95.6784 46.8843 56.4965 +95.7433 47.7696 57.5633 +95.7912 48.6591 58.6352 +95.7444 49.5126 59.6637 +95.0641 50.0443 60.3043 +95.679 51.27 61.7814 +95.6591 52.1745 62.8713 +95.6217 53.0827 63.9657 +95.5667 53.9944 65.0643 +96.0886 55.2514 66.5789 +95.33 55.7847 67.2217 +95.8073 57.0543 68.7515 +95.0966 57.63 69.4452 +95.5283 58.9118 70.9899 +95.4329 59.8896 72.1681 +95.318 60.8707 73.3504 +95.6741 62.1739 74.9208 +95.3766 63.0722 76.0033 +95.1994 64.0644 77.1988 +94.866 64.9661 78.2854 +95.1907 66.3397 79.9407 +94.9496 67.3423 81.1488 +95.2185 68.73 82.821 +95.391 70.0775 84.4447 +94.8194 70.8975 85.4328 +94.2969 71.766 86.4794 +94.4576 73.1754 88.1777 +94.6498 74.6423 89.9454 +94.4977 75.8665 91.4206 +94.6272 77.3461 93.2036 +93.9928 78.2255 94.2632 +93.8831 79.5621 95.8738 +93.9225 81.0577 97.6761 +93.8693 82.508 99.4237 +93.7255 83.9116 101.115 +93.8945 85.634 103.191 +93.2305 86.6276 104.388 +93.3852 88.4145 106.541 +93.5533 90.2632 108.769 +93.3511 91.7984 110.619 +93.2215 93.446 112.604 +93.0008 95.0451 114.531 +92.7957 96.7036 116.53 +92.9644 98.8046 119.061 +92.6765 100.474 121.073 +92.8 102.646 123.69 +91.9355 103.77 125.045 +94.2955 108.636 130.908 +114.518 134.692 162.307 +114.786 137.863 166.128 +114.837 140.877 169.759 +114.633 143.673 173.129 +114.539 146.707 176.785 +114.546 149.98 180.729 +114.516 153.322 184.756 +114.572 156.906 189.074 +114.082 159.862 192.637 +113.683 163.059 196.49 +111.171 163.276 196.751 +109.248 164.36 198.057 +105.927 163.311 196.793 +103.729 163.954 197.568 +100.824 163.456 196.968 +98.5153 163.893 197.494 +95.6767 163.419 196.923 +93.3715 163.826 197.413 +90.495 163.196 196.654 +89.2708 165.566 199.51 +89.9559 171.689 206.889 +89.8312 176.557 212.754 +88.3774 179 215.698 +87.4191 182.6 220.037 +84.6934 182.59 220.025 +88.4796 197.052 237.451 +87.5473 201.599 242.93 +84.7374 201.956 243.36 +81.5988 201.493 242.802 +78.794 201.816 243.192 +75.5663 201.005 242.215 +72.9291 201.73 243.089 +69.8667 201.256 242.517 +67.1347 201.7 243.052 +64.1765 201.441 242.74 +61.4214 201.791 243.162 +58.4976 201.56 242.884 +55.7411 201.878 243.267 +52.6997 201.111 242.342 +49.9652 201.46 242.763 +46.9443 200.593 241.719 +44.3405 201.48 242.787 +41.4682 201.15 242.389 +38.7057 201.31 242.582 +35.8741 201.074 242.298 +33.1146 201.203 242.453 +30.2873 200.871 242.053 +27.5935 201.413 242.707 +24.7382 200.732 241.886 +22.0361 201.244 242.503 +19.2852 201.36 242.642 +16.5277 201.395 242.685 +13.7314 200.842 242.018 +11.0178 201.486 242.794 +8.22741 200.645 241.781 +5.50449 201.386 242.674 +2.73839 200.387 241.47 +1.92753e-14 201.033 242.249 +-2.73141 199.876 240.855 +-5.49576 201.067 242.289 +-8.19338 199.816 240.782 +-10.9899 200.975 242.178 +-13.6965 200.332 241.403 +-16.4806 200.821 241.994 +-19.1692 200.148 241.183 +-21.9663 200.607 241.736 +-24.6362 199.904 240.889 +-27.4628 200.459 241.557 +-30.1147 199.726 240.674 +-33.031 200.694 241.84 +-35.6703 199.931 240.921 +-38.5107 200.296 241.36 +-41.2463 200.074 241.092 +-43.9787 199.836 240.806 +-46.7373 199.71 240.654 +-49.5741 199.883 240.862 +-52.155 199.032 239.837 +-55.1854 199.866 240.842 +-57.7504 198.985 239.781 +-60.8299 199.847 240.82 +-63.3591 198.875 239.648 +-66.4486 199.639 240.568 +-69.0009 198.762 239.512 +-72.0968 199.428 240.314 +-74.8192 199.019 239.821 +-77.8021 199.275 240.131 +-80.4721 198.711 239.45 +-83.6762 199.427 240.313 +-86.2111 198.522 239.223 +-89.5546 199.446 240.336 +-92.163 198.694 239.43 +-95.5763 199.639 240.568 +-98.0301 198.55 239.257 +-101.512 199.515 240.419 +-104.203 198.881 239.655 +-107.535 199.44 240.329 +-110.423 199.134 239.96 +-113.756 199.591 240.511 +-116.444 198.89 239.667 +-120.053 199.724 240.671 +-122.521 198.632 239.355 +-126.28 199.599 240.521 +-129.003 198.888 239.663 +-132.614 199.513 240.417 +-136.452 200.406 241.493 +-140.405 201.388 242.677 +-113.17 158.584 191.097 +-113.388 155.285 187.121 +-114.645 153.494 184.963 +-116.212 152.161 183.357 +-117.841 150.936 181.881 +-119.717 150.046 180.808 +-122.133 149.826 180.543 +-124.926 150.042 180.803 +-130.742 153.774 185.301 +-508.808 586.185 706.365 +-512.81 578.825 697.496 +-516.35 571.134 688.228 +-520.379 564.163 679.827 +-524.206 557.136 671.36 +-528.664 550.927 663.877 +-531.562 543.248 654.624 +-536.279 537.572 647.785 +-539.683 530.707 639.512 +-543.824 524.697 632.27 +-547.002 517.888 624.065 +-163.691 152.098 183.281 +-166.968 152.279 183.499 +-575.244 515.013 620.6 +-578.675 508.636 612.916 +-583.224 503.338 606.532 +-586.348 496.907 598.782 +-590.925 491.796 592.624 +-594.421 485.867 585.479 +-584.168 468.992 565.145 +-587.156 463.039 557.971 +-591.807 458.468 552.463 +-595.736 453.392 546.346 +-600.155 448.743 540.744 +-603.049 443.02 533.848 +-607.821 438.734 528.682 +-611.719 433.859 522.808 +-616.071 429.35 517.375 +-619.732 424.406 511.417 +-624.2 420.056 506.175 +-627.971 415.275 500.414 +-632.991 411.35 495.684 +-635.901 406.091 489.347 +-141.58 88.8493 107.065 +-143.364 88.4119 106.538 +-143.116 86.7304 104.512 +-143.638 85.5375 103.074 +-143.106 83.7418 100.91 +-142.312 81.8304 98.6072 +-142.601 80.5685 97.0866 +-148.527 82.4518 99.356 +-149.42 81.4971 98.2055 +-689.67 369.563 445.33 +-701.87 369.483 445.234 +-706.737 365.477 440.407 +-711.704 361.525 435.644 +-716.144 357.309 430.564 +-721.476 353.538 426.02 +-725.081 348.927 420.464 +-733.841 346.772 417.867 +-737.257 342.069 412.2 +-725.865 330.642 398.43 +-385.984 172.596 207.981 +-385.609 169.244 203.942 +-384.01 165.411 199.323 +-742.325 313.769 378.098 +-136.368 56.5539 68.1486 +-136.461 55.5173 66.8995 +-757.307 302.2 364.157 +-763.71 298.869 360.143 +-768.536 294.898 355.357 +-774.432 291.316 351.042 +-778.903 287.181 346.059 +-786.105 284.025 342.255 +-791.268 280.097 337.523 +-797.878 276.652 333.371 +-803.217 272.735 328.651 +-809.841 269.221 324.417 +-816.429 265.655 320.119 +-823.25 262.121 315.86 +-828.958 258.195 311.13 +-836.426 254.775 307.009 +-842.685 250.94 302.388 +-850.814 247.612 298.377 +-857.088 243.692 293.654 +-412.494 114.539 138.021 +-871.994 236.374 284.835 +-399.67 105.721 127.395 +-391.642 101.049 121.766 +-380.541 95.7265 115.352 +-382.581 93.7851 113.013 +-382.35 91.292 110.009 +-381.233 88.6118 106.779 +-382.053 86.3984 104.112 +-382.746 84.162 101.417 +-382.933 81.8234 98.5988 +-381.374 79.1336 95.3575 +-381.582 76.832 92.5841 +-381.279 74.4417 89.7037 +-382.281 72.3139 87.1396 +-381.14 69.7933 84.1023 +-382.85 67.8034 81.7044 +-383.279 65.5843 79.0303 +-382.418 63.1583 76.1069 +-382.976 60.9784 73.4801 +-381.072 58.4243 70.4024 +-382.733 56.4278 67.9966 +-380.755 53.9057 64.9574 +-382.162 51.8747 62.51 +-382.269 49.6666 59.8492 +-382.049 47.4248 57.1478 +-381.503 45.1542 54.4117 +-380.136 42.8047 51.5804 +-381.594 40.7794 49.14 +-379.865 38.4216 46.2987 +-381.266 36.3881 43.8484 +-381.253 34.2176 41.2328 +-379.624 31.9166 38.4601 +-381.435 29.9088 36.0406 +-379.246 27.594 33.2513 +-380.405 25.5328 30.7676 +-380.241 23.3814 28.175 +-380.546 21.2615 25.6205 +-381.022 19.15 23.0761 +-379.374 16.9412 20.4145 +-377.794 14.7562 17.7815 +-378.88 12.6804 15.2801 +-380.937 10.6214 12.799 +-379.269 8.45796 10.192 +-378.87 6.33565 7.63459 +-146.078 1.62832 1.96216 +-146.394 0.815858 0.983125 +96.9 0 0 +96.8963 0.545855 0.64582 +96.8852 1.09167 1.29159 +96.8668 1.6374 1.93727 +97.7404 2.20328 2.60678 +96.8078 2.72844 3.22812 +97.666 3.30408 3.90918 +97.6176 3.85413 4.55995 +97.6615 4.40838 5.21571 +97.4985 4.95329 5.86041 +97.5275 5.50796 6.51666 +97.3497 6.05095 7.15909 +97.3637 6.60583 7.81559 +97.2707 7.15407 8.46423 +97.2695 7.70961 9.12151 +97.0625 8.24882 9.75946 +96.9472 8.79525 10.406 +96.7258 9.33155 11.0405 +96.5959 9.87605 11.6847 +96.2615 10.3985 12.3028 +96.9051 11.0301 13.05 +96.7523 11.5755 13.6954 +96.494 12.1078 14.3251 +96.4246 12.6637 14.9829 +96.2497 13.2064 15.625 +96.0675 13.7482 16.2659 +95.9755 14.3033 16.9227 +95.7784 14.8434 17.5618 +96.4474 15.5229 18.3657 +96.1371 16.0494 18.9887 +96.7858 16.7408 19.8066 +96.5558 17.2854 20.4509 +96.3184 17.8286 21.0937 +96.9367 18.5355 21.9301 +96.5868 19.062 22.5529 +96.3254 19.6054 23.1958 +96.9127 20.3267 24.0493 +96.729 20.8924 24.7185 +97.1993 21.6046 25.5612 +96.9035 22.1513 26.208 +97.5401 22.9172 27.1141 +97.1329 23.4431 27.7364 +96.8123 23.9894 28.3827 +97.3217 24.7468 29.2788 +96.8907 25.2699 29.8977 +97.4693 26.0618 30.8346 +97.1133 26.6098 31.483 +96.9332 27.2074 32.19 +97.3839 27.9887 33.1144 +97.0929 28.563 33.7939 +96.6124 29.0815 34.4074 +97.0279 29.8747 35.3458 +97.3394 30.6466 36.2591 +96.9214 31.1937 36.9064 +97.2979 32.0023 37.8631 +96.7729 32.5194 38.4748 +97.1242 33.336 39.441 +96.7578 33.9127 40.1233 +96.9953 34.7068 41.0628 +96.5224 35.2519 41.7077 +96.735 36.0525 42.6549 +97.0194 36.8909 43.6469 +96.4313 37.4028 44.2525 +96.6894 38.2481 45.2526 +96.0838 38.7571 45.8549 +96.1466 39.5397 46.7808 +96.3632 40.3962 47.7941 +96.564 41.2582 48.814 +95.8367 41.7283 49.3703 +96.67 42.8882 50.7426 +96.0865 43.4311 51.3849 +96.2285 44.3081 52.4225 +96.1921 45.1141 53.3761 +95.5786 45.6542 54.0151 +96.3154 46.8513 55.4315 +95.6784 47.3921 56.0713 +95.6645 48.2472 57.083 +95.8695 49.2263 58.2413 +95.7444 50.0489 59.2146 +95.6814 50.9148 60.2391 +95.679 51.8253 61.3163 +95.6591 52.7396 62.3981 +95.6217 53.6576 63.4842 +95.5667 54.5792 64.5745 +95.4198 55.461 65.6179 +95.9935 56.7814 67.18 +95.8805 57.7162 68.2861 +95.7494 58.654 69.3956 +95.5283 59.5499 70.4556 +95.4329 60.5382 71.6249 +95.318 61.53 72.7982 +95.7442 62.8933 74.4113 +95.4461 63.8017 75.4861 +95.1994 64.7582 76.6177 +94.9342 65.7168 77.7519 +94.5826 66.6302 78.8326 +94.8827 68.0239 80.4815 +95.1522 69.426 82.1403 +94.8661 70.4466 83.3478 +95.274 72.0094 85.1968 +94.4255 72.642 85.9453 +94.5848 74.068 87.6324 +94.5869 75.4003 89.2087 +94.6222 76.7888 90.8516 +94.0115 77.6751 91.9002 +94.5406 79.5336 94.099 +93.8831 80.4238 95.1522 +93.863 81.8839 96.8798 +93.9869 83.5061 98.799 +93.6093 84.7152 100.23 +93.3209 86.0327 101.788 +93.1738 87.5129 103.54 +93.2734 89.2649 105.612 +93.5533 91.2408 107.95 +93.3511 92.7926 109.786 +93.0066 94.2405 111.499 +93.0538 96.1293 113.734 +93.2137 98.1911 116.173 +92.9644 99.8747 118.165 +92.6258 101.507 120.096 +92.65 103.59 122.561 +92.0832 105.063 124.304 +91.7745 106.877 126.45 +114.375 135.981 160.884 +114.786 139.356 164.877 +114.837 142.402 168.481 +114.542 145.114 171.69 +114.539 148.296 175.454 +114.503 151.546 179.3 +114.473 154.924 183.296 +114.191 158.078 187.028 +114.165 161.711 191.326 +113.276 164.235 194.312 +110.892 164.63 194.78 +108.545 165.071 195.301 +105.621 164.603 194.747 +103.054 164.652 194.806 +100.531 164.747 194.917 +97.8345 164.523 194.652 +95.2914 164.524 194.654 +93.0295 164.993 195.209 +90.4617 164.903 195.102 +89.6289 168.03 198.803 +90.0511 173.732 205.549 +89.7076 178.224 210.863 +88.3774 180.938 214.074 +87.0391 183.775 217.431 +84.7502 184.692 218.515 +88.4796 199.186 235.664 +87.3335 203.284 240.513 +84.5303 203.644 240.938 +81.3735 203.113 240.31 +78.6488 203.626 240.917 +75.5896 203.245 240.466 +72.8167 203.601 240.887 +69.6503 202.805 239.946 +66.906 203.19 240.401 +63.9971 203.053 240.239 +61.0589 202.772 239.907 +58.3336 203.172 240.38 +55.4111 202.857 240.007 +52.5512 202.716 239.84 +49.84 203.132 240.332 +46.9147 202.639 239.749 +44.2014 203.023 240.203 +41.3507 202.752 239.883 +38.596 202.913 240.074 +35.7609 202.61 239.715 +32.9369 202.29 239.337 +30.201 202.468 239.547 +27.4279 202.373 239.434 +24.6597 202.262 239.304 +21.9803 202.909 240.068 +19.1753 202.38 239.443 +16.4387 202.481 239.563 +13.6965 202.501 239.586 +10.9584 202.571 239.669 +8.20386 202.238 239.275 +5.47307 202.405 239.472 +2.72966 201.912 238.889 +1.91651e-14 202.049 239.051 +-2.73141 202.041 239.042 +-5.4626 202.018 239.014 +-8.19338 201.98 238.969 +-10.927 201.99 238.981 +-13.6529 201.856 238.823 +-16.3916 201.901 238.876 +-19.1082 201.672 238.605 +-21.8338 201.557 238.469 +-24.6362 202.069 239.075 +-27.2972 201.408 238.293 +-30.1147 201.889 238.862 +-32.8428 201.712 238.653 +-35.5684 201.519 238.425 +-38.2913 201.312 238.179 +-41.1288 201.664 238.596 +-43.8674 201.488 238.388 +-46.6043 201.298 238.163 +-49.3081 200.964 237.767 +-52.155 201.188 238.032 +-54.8728 200.886 237.675 +-57.5864 200.57 237.301 +-60.4674 200.808 237.583 +-63.3591 201.029 237.844 +-66.0743 200.664 237.413 +-69.0009 200.915 237.709 +-71.7144 200.518 237.24 +-74.6558 200.734 237.496 +-77.5602 200.807 237.582 +-80.4972 200.925 237.721 +-83.2103 200.464 237.176 +-86.2111 200.672 237.422 +-89.1962 200.799 237.572 +-92.1346 200.784 237.555 +-95.05 200.69 237.443 +-98.0301 200.701 237.456 +-101.018 200.693 237.447 +-104.203 201.035 237.851 +-107.21 200.989 237.798 +-110.423 201.291 238.154 +-113.174 200.722 237.481 +-116.199 200.621 237.361 +-119.516 200.983 237.79 +-122.595 200.903 237.695 +-125.643 200.743 237.506 +-127.778 199.133 235.601 +-132.262 201.139 237.975 +-135.934 201.807 238.765 +-127.715 185.17 219.081 +-113.253 160.419 189.797 +-113.431 157.025 185.782 +-114.731 155.273 183.709 +-116.168 153.751 181.908 +-117.93 152.686 180.648 +-119.99 152.016 179.856 +-122.086 151.392 179.117 +-125.584 152.465 180.386 +-130.98 155.723 184.241 +-509.438 593.268 701.916 +-512.958 585.263 692.446 +-517.05 578.103 683.973 +-520.582 570.496 674.974 +-524.618 563.613 666.831 +-528.716 556.949 658.946 +-532.092 549.679 650.344 +-536.279 543.394 642.909 +-540.173 536.942 635.274 +-543.989 530.541 627.702 +-165.913 158.783 187.861 +-165.447 155.395 183.853 +-167.025 153.981 182.18 +-1902.67 1721.9 2037.24 +-579.439 514.823 609.105 +-583.402 508.945 602.151 +-587.131 502.959 595.068 +-591.29 497.43 588.526 +-595.652 492.147 582.276 +-583.794 473.769 560.532 +-587.974 468.706 554.542 +-591.744 463.384 548.245 +-595.993 458.499 542.467 +-599.83 453.358 536.384 +-604.165 448.646 530.809 +-608.153 443.727 524.989 +-612.321 438.989 519.383 +-616.409 434.238 513.762 +-620.005 429.191 507.791 +-624.475 424.793 502.587 +-628.944 420.423 497.417 +-632.991 415.805 491.953 +-636.679 410.991 486.258 +-141.509 89.7664 106.206 +-143.58 89.5043 105.896 +-143.189 87.7143 103.778 +-144.223 86.8164 102.716 +-143.253 84.7359 100.254 +-142.758 82.9755 98.1712 +-142.826 81.5696 96.5078 +-148.451 83.3028 98.5585 +-149.116 82.2119 97.2677 +-697.33 377.715 446.888 +-702.256 373.69 442.126 +-707.047 369.598 437.284 +-711.939 365.561 432.508 +-717.326 361.775 428.029 +-721.634 357.445 422.905 +-725.56 352.939 417.575 +-733.6 350.412 414.585 +-736.367 345.356 408.603 +-725.214 333.923 395.075 +-387.868 175.316 207.423 +-386.927 171.663 203.1 +-384.756 167.527 198.207 +-742.242 317.132 375.21 +-135.361 56.7445 67.1364 +-136.039 55.9452 66.1907 +-758.07 305.781 361.78 +-763.966 302.207 357.552 +-769.651 298.524 353.194 +-774.605 294.537 348.477 +-780.809 291.002 344.294 +-786.105 287.101 339.679 +-792.405 283.538 335.464 +-798.142 279.741 330.972 +-803.747 275.871 326.392 +-810.639 272.406 322.293 +-817.231 268.796 318.022 +-823.519 265.046 313.585 +-829.767 261.246 309.089 +-836.967 257.701 304.895 +-843.863 254.013 300.532 +-851.269 250.428 296.29 +-857.362 246.41 291.537 +-413.319 116.011 137.256 +-412.018 112.896 133.571 +-393.388 105.186 124.449 +-391.642 102.144 120.85 +-382.588 97.2835 115.1 +-382.768 94.8473 112.217 +-382.631 92.3485 109.261 +-382.737 89.9246 106.393 +-381.581 87.2263 103.2 +-381.611 84.8211 100.355 +-381.226 82.3403 97.4197 +-382.325 80.1901 94.8757 +-383.013 77.9553 92.2316 +-380.801 75.1531 88.9162 +-382.953 73.2255 86.6357 +-382.774 70.852 83.8274 +-381.501 68.2963 80.8038 +-382.7 66.1945 78.317 +-383.29 63.9877 75.7061 +-382.394 61.5451 72.8161 +-380.683 58.9969 69.8013 +-383.707 57.1841 67.6565 +-381.732 54.6293 64.6338 +-382.064 52.4231 62.0236 +-381.681 50.1273 59.3074 +-380.675 47.7659 56.5135 +-380.618 45.5374 53.8769 +-381.81 43.4588 51.4176 +-380.706 41.1252 48.6567 +-379.865 38.8377 45.9502 +-379.189 36.5819 43.2813 +-379.174 34.3995 40.6993 +-379.228 32.2286 38.1308 +-380.046 30.1226 35.639 +-378.65 27.849 32.9491 +-378.714 25.6947 30.4002 +-379.047 23.5604 27.8751 +-379.849 21.4523 25.381 +-379.925 19.3017 22.8365 +-380.072 17.1562 20.2981 +-379.591 14.987 17.7316 +-378.481 12.8041 15.149 +-379.538 10.697 12.6559 +-378.769 8.53827 10.1019 +-379.27 6.41103 7.58512 +-146.378 1.64933 1.95138 +-145.294 0.818504 0.9684 +96.9 0 0 +96.8963 0.551659 0.640869 +96.8852 1.10328 1.28169 +96.8668 1.65481 1.92242 +96.841 2.20622 2.56299 +96.8078 2.75746 3.20337 +96.7672 3.30848 3.84351 +96.8191 3.86325 4.48798 +96.7637 4.4143 5.12815 +97.4985 5.00596 5.81549 +97.5275 5.56652 6.4667 +97.4493 6.12154 7.11147 +97.3637 6.67607 7.75568 +97.37 7.23751 8.40791 +97.2695 7.79159 9.05159 +97.1616 8.34507 9.69458 +96.9472 8.88877 10.3262 +96.7258 9.43077 10.9559 +96.5959 9.98106 11.5951 +96.2615 10.509 12.2085 +96.9051 11.1473 12.95 +96.7523 11.6986 13.5904 +96.494 12.2365 14.2153 +96.4246 12.7984 14.8681 +96.2497 13.3469 15.5052 +96.0675 13.8943 16.1412 +96.8524 14.5874 16.9464 +96.5563 15.123 17.5686 +97.3207 15.83 18.39 +97.0084 16.3671 19.0139 +96.7858 16.9188 19.6548 +96.5558 17.4692 20.2941 +96.4145 18.0361 20.9528 +96.9367 18.7326 21.7619 +96.6824 19.2838 22.4022 +96.4208 19.8335 23.0408 +97.0078 20.563 23.8883 +96.729 21.1146 24.5291 +97.1993 21.8343 25.3652 +96.9035 22.3869 26.0071 +97.5401 23.1608 26.9062 +97.2266 23.7152 27.5503 +96.8123 24.2445 28.1652 +97.3217 25.0099 29.0543 +96.9834 25.563 29.6969 +97.4693 26.3389 30.5982 +97.1133 26.8928 31.2417 +96.8415 27.4706 31.913 +97.3839 28.2863 32.8605 +97.0929 28.8667 33.5348 +96.703 29.4183 34.1757 +97.0279 30.1924 35.0749 +96.7102 30.7722 35.7485 +96.9214 31.5254 36.6235 +97.2979 32.3426 37.5728 +96.8616 32.8952 38.2148 +97.1242 33.6905 39.1387 +96.6699 34.2422 39.7795 +96.9079 35.0442 40.7113 +96.5224 35.6267 41.388 +96.735 36.4358 42.3279 +96.9333 37.25 43.2739 +96.3456 37.7669 43.8743 +96.6894 38.6548 44.9057 +96.7623 39.4458 45.8247 +96.231 39.9952 46.4629 +96.4471 40.8613 47.4691 +95.8135 41.3728 48.0633 +96.0026 42.245 49.0765 +96.5876 43.3073 50.3106 +96.0865 43.8929 50.991 +96.147 44.7413 51.9766 +96.1112 45.5555 52.9224 +95.659 46.1785 53.6461 +96.3953 47.3888 55.0522 +95.6784 47.896 55.6414 +95.6645 48.7602 56.6454 +95.8695 49.7497 57.7949 +95.7444 50.5811 58.7607 +95.6814 51.4562 59.7773 +95.679 52.3764 60.8463 +96.3434 53.6817 62.3627 +95.6217 54.2282 62.9975 +96.1659 55.5053 64.4813 +96.0886 56.4436 65.5712 +95.9935 57.3851 66.665 +95.8805 58.3299 67.7626 +95.6769 59.2328 68.8115 +95.5283 60.1831 69.9155 +95.4329 61.1819 71.0759 +95.318 62.1842 72.2402 +95.7442 63.562 73.8408 +95.4461 64.4802 74.9074 +95.1994 65.4468 76.0304 +94.9342 66.4156 77.1558 +95.1907 67.7712 78.7307 +94.8827 68.7472 79.8645 +95.1522 70.1642 81.5107 +94.8661 71.1956 82.7089 +94.8844 72.4769 84.1974 +94.2969 73.3146 85.1705 +95.2845 75.4087 87.6033 +94.5869 76.202 88.5249 +94.6222 77.6053 90.1551 +94.0115 78.5011 91.1957 +93.9928 79.9135 92.8365 +93.9433 81.3311 94.4834 +93.9225 82.8068 96.1977 +93.9281 84.3412 97.9803 +93.6674 85.6695 99.5233 +93.3209 86.9475 101.008 +93.7402 88.981 103.37 +93.3293 90.2682 104.866 +93.5533 92.211 107.123 +93.4056 93.8341 109.008 +93.0603 95.2974 110.708 +93.1068 97.2069 112.927 +93.266 99.2907 115.347 +92.9644 100.937 117.259 +92.6258 102.586 119.175 +92.65 104.692 121.622 +92.0832 106.181 123.351 +92.2593 108.583 126.143 +114.423 137.484 159.717 +114.786 140.838 163.613 +114.929 144.032 167.324 +114.496 146.599 170.306 +114.539 149.873 174.109 +114.459 153.099 177.857 +114.085 156.041 181.275 +114.234 159.818 185.663 +114.124 163.371 189.791 +113.724 166.637 193.585 +111.251 166.92 193.913 +108.545 166.826 193.804 +105.659 166.413 193.324 +103.054 166.403 193.313 +100.824 166.984 193.987 +97.8703 166.333 193.231 +95.5716 166.762 193.729 +92.7559 166.258 193.143 +90.495 166.717 193.678 +89.5638 169.694 197.135 +90.0511 175.579 203.973 +89.6767 180.057 209.174 +88.3774 182.862 212.433 +86.9513 185.542 215.547 +84.7502 186.656 216.84 +88.5072 201.366 233.93 +87.3335 205.446 238.669 +84.5303 205.809 239.091 +81.5988 205.84 239.127 +78.4069 205.158 238.335 +75.5663 205.343 238.549 +72.6142 205.193 238.376 +69.6719 205.026 238.181 +66.9268 205.414 238.633 +64.017 205.276 238.472 +61.097 205.056 238.217 +58.3154 205.268 238.463 +55.4111 205.014 238.167 +52.6667 205.322 238.525 +49.8087 205.163 238.34 +46.9443 204.922 238.06 +44.0761 204.6 237.687 +41.3376 204.844 237.969 +38.596 205.071 238.233 +35.7609 204.764 237.877 +33.031 205.025 238.18 +30.2106 204.686 237.786 +27.4279 204.525 237.599 +24.6754 204.543 237.621 +21.9733 205.001 238.153 +19.2303 205.118 238.289 +16.4387 204.634 237.726 +13.6921 204.589 237.674 +10.9584 204.725 237.831 +8.20647 204.453 237.516 +5.47307 204.557 237.637 +2.72879 203.994 236.982 +1.91651e-14 204.197 237.218 +-2.73053 204.124 237.133 +-5.46435 204.231 237.258 +-8.19338 204.127 237.137 +-10.927 204.138 237.149 +-13.6529 204.003 236.993 +-16.3864 203.982 236.969 +-19.1143 203.881 236.852 +-21.8477 203.83 236.792 +-24.5577 203.568 236.487 +-27.2885 203.485 236.392 +-30.0285 203.452 236.353 +-32.7488 203.273 236.145 +-35.5684 203.662 236.597 +-38.3035 203.517 236.428 +-41.1419 203.873 236.842 +-43.756 203.114 235.96 +-46.6043 203.438 236.337 +-49.2925 203.036 235.87 +-52.155 203.327 236.207 +-55.0638 203.729 236.675 +-57.7504 203.279 236.152 +-60.4674 202.943 235.762 +-63.3591 203.166 236.021 +-66.0743 202.798 235.593 +-69.0226 203.115 235.961 +-71.7369 202.714 235.496 +-74.6325 202.806 235.602 +-77.5844 203.006 235.834 +-80.2468 202.43 235.165 +-83.2103 202.595 235.358 +-86.2378 202.869 235.675 +-89.1962 202.934 235.751 +-92.163 202.982 235.806 +-95.0793 202.886 235.695 +-98.0902 202.959 235.78 +-100.77 202.331 235.051 +-103.949 202.678 235.453 +-107.177 203.065 235.903 +-110.123 202.877 235.685 +-113.209 202.917 235.731 +-116.129 202.631 235.399 +-119.516 203.12 235.967 +-122.558 202.978 235.803 +-125.643 202.877 235.685 +-128.084 201.732 234.355 +-132.262 203.278 236.151 +-135.934 203.953 236.935 +-128.163 187.795 218.164 +-113.253 162.125 188.342 +-113.431 158.695 184.358 +-114.645 156.806 182.164 +-116.125 155.327 180.446 +-117.885 154.252 179.196 +-120.126 153.807 178.679 +-122.086 153.002 177.744 +-125.584 154.086 179.004 +-130.98 157.379 182.829 +-509.196 599.291 696.204 +-513.647 592.281 688.061 +-517.2 584.419 678.927 +-520.836 576.843 670.126 +-524.463 569.438 661.523 +-528.246 562.37 653.312 +-532.357 555.8 645.68 +-536.279 549.172 637.98 +-540.01 542.487 630.214 +-543.437 535.638 622.258 +-165.913 160.471 186.421 +-164.881 156.51 181.819 +-167.542 156.099 181.342 +-169.739 155.246 180.351 +-579.262 520.139 604.252 +-583.759 514.671 597.9 +-587.371 508.515 590.748 +-591.046 502.512 583.775 +-595.345 497.123 577.514 +-584.168 479.112 556.591 +-587.722 473.487 550.056 +-591.998 468.512 544.277 +-596.314 463.625 538.599 +-599.83 458.178 532.272 +-604.493 453.663 527.026 +-608.153 448.445 520.965 +-611.786 443.269 514.951 +-616.071 438.615 509.544 +-620.619 434.184 504.397 +-624.475 429.31 498.735 +-628.596 424.659 493.332 +-632.641 419.994 487.912 +-636.891 415.499 482.691 +-141.794 90.9042 105.605 +-143.652 90.5011 105.136 +-143.189 88.647 102.982 +-144.296 87.7839 101.98 +-143.327 85.6812 99.537 +-142.758 83.8578 97.4187 +-143.5 82.8257 96.2197 +-148.074 83.9746 97.5543 +-149.648 83.3822 96.8662 +-697.33 381.731 443.462 +-702.256 377.663 438.737 +-707.591 373.815 434.266 +-711.939 369.448 429.192 +-717.326 365.622 424.747 +-722.19 361.524 419.987 +-726.599 357.202 414.966 +-734.082 354.371 411.678 +-737.095 349.373 405.872 +-725.214 337.473 392.047 +-385.001 175.871 204.312 +-384.702 172.49 200.384 +-384.01 168.98 196.306 +-743.076 320.864 372.752 +-135.278 57.3124 66.5805 +-136.208 56.6102 65.7647 +-758.07 309.032 359.007 +-763.88 305.386 354.771 +-769.051 301.463 350.213 +-774.174 297.503 345.614 +-780.549 293.998 341.541 +-786.366 290.25 337.187 +-792.405 286.553 332.892 +-797.878 282.622 328.325 +-803.747 278.804 323.89 +-810.639 275.302 319.822 +-816.697 271.476 315.378 +-823.25 267.777 311.08 +-830.576 264.281 307.019 +-836.426 260.273 302.362 +-843.863 256.714 298.228 +-850.541 252.874 293.767 +-857.362 249.03 289.302 +-865.43 245.493 285.192 +-412.57 114.25 132.726 +-395.143 106.779 124.046 +-392.477 103.45 120.179 +-381.471 98.0316 113.885 +-380.434 95.2713 110.678 +-382.631 93.3305 108.423 +-382.643 90.8586 105.552 +-382.43 88.3495 102.637 +-380.949 85.5742 99.4127 +-382.08 83.4024 96.8897 +-381.849 80.9416 94.0309 +-382.727 78.7255 91.4564 +-382.904 76.3723 88.7227 +-382.761 73.967 85.9284 +-381.909 71.4435 82.9969 +-382.079 69.1269 80.3056 +-381.444 66.6792 77.462 +-383.29 64.6681 75.1258 +-382.102 62.1521 72.2029 +-380.683 59.6242 69.2662 +-382.733 57.6454 66.9674 +-381.146 55.1254 64.0399 +-381.575 52.9127 61.4694 +-382.269 50.7383 58.9434 +-380.479 48.249 56.0514 +-380.815 46.0453 53.4915 +-382.007 43.9435 51.0498 +-379.819 41.4656 48.1711 +-379.667 39.2302 45.5743 +-379.189 36.9708 42.9495 +-379.174 34.7653 40.3873 +-380.517 32.682 37.9671 +-378.259 30.2997 35.1996 +-379.246 28.1894 32.748 +-380.802 26.1111 30.3336 +-379.843 23.8609 27.7195 +-379.65 21.6691 25.1733 +-379.925 19.5069 22.6614 +-379.872 17.3295 20.132 +-380.389 15.1782 17.6327 +-378.281 12.9335 15.025 +-380.537 10.8391 12.592 +-378.569 8.62449 10.0192 +-377.471 6.44847 7.49127 +-145.478 1.65663 1.92452 +-145.194 0.826633 0.96031 +96.9 0 0 +96.8963 0.557418 0.635866 +96.8852 1.1148 1.27169 +96.8668 1.67209 1.90741 +96.841 2.22925 2.54298 +96.8078 2.78624 3.17837 +96.8671 3.34648 3.81744 +96.8191 3.90358 4.45295 +96.7637 4.46038 5.08811 +97.4985 5.05822 5.77009 +97.4278 5.61889 6.40966 +97.4493 6.18545 7.05596 +97.3637 6.74577 7.69513 +97.37 7.31307 8.34228 +97.071 7.85684 8.96258 +97.1616 8.43219 9.6189 +96.8482 8.9724 10.2351 +96.7258 9.52923 10.8703 +96.3984 10.0646 11.4811 +96.2615 10.6187 12.1132 +96.9051 11.2637 12.8489 +96.7523 11.8207 13.4843 +96.5921 12.3768 14.1187 +96.4246 12.932 14.752 +96.1519 13.4725 15.3685 +96.0675 14.0394 16.0152 +96.7549 14.7249 16.7972 +96.5563 15.2809 17.4315 +96.3504 15.8358 18.0644 +97.0084 16.538 18.8655 +96.7858 17.0954 19.5014 +96.5558 17.6515 20.1357 +96.3184 18.2063 20.7686 +96.9367 18.9282 21.5921 +96.6824 19.4851 22.2273 +96.4208 20.0405 22.8609 +96.1518 20.5944 23.4927 +96.729 21.335 24.3376 +96.3483 21.8691 24.9469 +96.9035 22.6206 25.8041 +97.5401 23.4026 26.6962 +97.2266 23.9628 27.3352 +97.6525 24.7102 28.1878 +97.3217 25.271 28.8275 +96.8907 25.8052 29.4369 +97.4693 26.6138 30.3594 +97.2053 27.1993 31.0272 +96.8415 27.7574 31.6639 +97.3839 28.5816 32.604 +97.0929 29.168 33.273 +96.6124 29.6976 33.8771 +97.0279 30.5076 34.8011 +96.6204 31.0646 35.4365 +96.9214 31.8545 36.3376 +97.2088 32.6503 37.2454 +96.8616 33.2387 37.9165 +97.1242 34.0422 38.8332 +96.6699 34.5996 39.469 +96.9953 35.442 40.43 +96.5224 35.9986 41.0649 +96.735 36.8162 41.9975 +96.9333 37.6389 42.936 +96.4313 38.1951 43.5705 +96.6894 39.0583 44.5552 +96.7623 39.8576 45.467 +96.231 40.4127 46.1002 +96.3632 41.2519 47.0575 +95.8135 41.8047 47.6881 +95.8367 42.6123 48.6094 +96.5876 43.7594 49.9179 +96.0865 44.3511 50.5929 +96.147 45.2084 51.5708 +96.1921 46.0698 52.5534 +95.659 46.6606 53.2274 +95.6765 47.5264 54.2151 +95.6784 48.396 55.2071 +95.7433 49.3099 56.2495 +95.8695 50.2691 57.3437 +95.7444 51.1091 58.3019 +95.6814 51.9933 59.3106 +96.3684 53.3045 60.8063 +96.3434 54.2421 61.8759 +95.6217 54.7943 62.5058 +96.1659 56.0848 63.9779 +95.4198 56.6359 64.6065 +95.9935 57.9842 66.1446 +95.8073 58.8939 67.1823 +95.6769 59.8512 68.2743 +95.6003 60.8572 69.4219 +95.4329 61.8207 70.521 +95.318 62.8334 71.6763 +95.7442 64.2256 73.2644 +95.5155 65.2007 74.3767 +95.1994 66.13 75.4369 +94.866 67.0608 76.4986 +95.1907 68.4788 78.1161 +95.5519 69.9547 79.7998 +95.1522 70.8967 80.8744 +94.8661 71.9389 82.0632 +94.8844 73.2336 83.5401 +94.4255 74.1808 84.6207 +95.2845 76.196 86.9194 +94.6498 77.049 87.8925 +94.6222 78.4155 89.4513 +94.504 79.7365 90.9583 +93.9928 80.7477 92.1118 +94.3646 82.5487 94.1662 +93.9225 83.6713 95.4468 +91.1655 82.7154 94.3564 +93.6674 86.5638 98.7464 +94.1239 88.6113 101.082 +93.7402 89.9099 102.563 +93.2734 91.1558 103.985 +93.5533 93.1736 106.286 +93.3511 94.7583 108.094 +93.0603 96.2923 109.844 +93.5837 98.7247 112.619 +93.266 100.327 114.447 +93.2734 102.329 116.731 +92.6258 103.657 118.245 +92.6 105.727 120.607 +92.0832 107.289 122.388 +92.5502 110.063 125.553 +114.423 138.919 158.47 +92.0634 114.137 130.201 +114.929 145.536 166.018 +114.633 148.306 169.177 +114.539 151.437 172.75 +114.634 154.934 176.739 +114.085 157.67 179.86 +111.106 157.066 179.17 +114.124 165.077 188.309 +106.118 157.116 179.227 +111.251 168.662 192.399 +101.199 157.16 179.278 +105.659 168.15 191.815 +96.2739 157.078 179.184 +100.824 168.727 192.473 +91.4913 157.115 179.227 +95.5716 168.503 192.217 +90.8063 164.462 187.607 +90.495 168.458 192.166 +89.7266 171.777 195.952 +90.0511 177.412 202.381 +85.8449 174.163 198.673 +88.3774 184.771 210.775 +89.1734 192.27 219.329 +84.7502 188.604 215.148 +84.1796 193.52 220.755 +87.3335 207.591 236.806 +78.5775 193.313 220.519 +81.5988 207.989 237.261 +73.0846 193.228 220.422 +75.5663 207.486 236.687 +67.5528 192.883 220.029 +69.6719 207.166 236.322 +62.1032 192.6 219.705 +64.017 207.419 236.61 +56.7657 192.508 219.601 +58.3154 207.411 236.601 +51.5735 192.807 219.942 +52.6667 207.465 236.663 +46.3515 192.915 220.065 +46.9443 207.061 236.202 +41.0143 192.375 219.449 +41.3376 206.982 236.112 +35.8174 192.294 219.356 +35.7609 206.902 236.02 +30.6373 192.152 219.195 +30.2106 206.823 235.93 +25.5279 192.344 219.414 +24.6754 206.679 235.766 +20.3689 192.017 219.041 +19.2303 207.26 236.428 +15.2873 192.288 219.35 +13.6921 206.725 235.818 +10.1837 192.237 219.291 +8.20647 206.588 235.662 +5.08912 192.193 219.241 +2.72879 206.123 235.132 +1.78364e-14 192.024 219.049 +-2.73053 206.255 235.282 +-5.08563 192.061 219.091 +-8.19338 206.258 235.286 +-10.1802 192.171 219.216 +-13.6529 206.132 235.142 +-15.2455 191.761 218.749 +-19.1143 206.01 235.003 +-20.3759 192.082 219.115 +-24.5577 205.693 234.641 +-25.4669 191.884 218.889 +-30.0285 205.576 234.508 +-30.5537 191.628 218.597 +-35.5684 205.788 234.75 +-35.7321 191.836 218.834 +-41.1419 206.001 234.993 +-40.8056 191.396 218.332 +-46.6043 205.562 234.492 +-45.8353 190.767 217.615 +-52.155 205.449 234.363 +-51.0352 190.795 217.646 +-57.7504 205.401 234.309 +-56.2505 190.761 217.608 +-63.3591 205.287 234.178 +-61.4587 190.6 217.425 +-69.0226 205.235 234.119 +-66.9004 191.021 217.904 +-74.6325 204.923 233.763 +-71.9476 190.222 216.993 +-80.2468 204.543 233.329 +-77.6198 190.957 217.831 +-86.2378 204.987 233.836 +-82.8566 190.478 217.285 +-92.163 205.101 233.966 +-88.384 190.568 217.388 +-98.0902 205.078 233.939 +-94.0339 190.776 217.625 +-103.949 204.794 233.615 +-99.6564 190.787 217.637 +-110.123 204.995 233.845 +-105.479 191.036 217.922 +-116.129 204.747 233.562 +-111.345 191.209 218.119 +-122.558 205.097 233.962 +-116.99 190.877 217.74 +-128.084 203.838 232.526 +-114.914 178.458 203.573 +-135.934 206.082 235.085 +-114.212 169.1 192.898 +-113.253 163.817 186.872 +-117.446 166.027 189.393 +-114.645 158.443 180.742 +-121.999 164.888 188.093 +-117.885 155.862 177.797 +-130.159 168.393 192.092 +-122.086 154.599 176.356 +-147.132 182.411 208.082 +-130.98 159.022 181.401 +-159.987 190.261 217.037 +-513.647 598.464 682.689 +-1638.25 1870.49 2133.74 +-520.836 582.865 664.895 +-536.258 588.323 671.12 +-528.246 568.241 648.212 +-544.439 574.349 655.18 +-536.279 554.905 633 +-165.679 168.177 191.846 +-543.437 541.23 617.4 +-168.373 164.551 187.709 +-164.881 158.143 180.4 +-579.542 545.599 622.384 +-169.739 156.867 178.943 +-594.427 539.328 615.231 +-583.759 520.044 593.233 +-585.566 512.244 584.335 +-591.046 507.758 579.218 +-593.682 500.91 571.406 +-584.168 484.114 552.246 +-601.693 489.803 558.735 +-591.998 473.403 540.028 +-610.198 479.372 546.837 +-599.83 462.962 528.117 +-618.139 468.747 534.716 +-608.153 453.127 516.898 +-626.641 458.772 523.337 +-616.071 443.194 505.567 +-635.145 448.986 512.174 +-624.475 433.792 494.841 +-141.849 96.8289 110.456 +-632.641 424.378 484.103 +-144.25 95.0892 108.472 +-141.794 91.8532 104.78 +-143.077 91.08 103.898 +-143.189 89.5724 102.178 +-144.369 88.7451 101.235 +-143.327 86.5757 98.76 +-679.68 403.42 460.196 +-143.5 83.6904 95.4686 +-705.276 404.145 461.023 +-149.648 84.2527 96.11 +-714.107 394.996 450.586 +-702.256 381.606 435.312 +-723.756 386.346 440.719 +-711.939 373.305 425.842 +-739.233 380.721 434.302 +-722.19 365.298 416.709 +-725.081 360.178 410.867 +-734.082 358.071 408.464 +-734.507 351.781 401.289 +-725.214 340.996 388.986 +-385.575 177.971 203.018 +-384.702 174.291 198.819 +-754.673 335.553 382.777 +-743.076 324.214 369.842 +-383.44 164.146 187.247 +-136.208 57.2011 65.2514 +-383.148 157.824 180.035 +-763.88 308.574 352.002 +-136.032 53.8805 61.4634 +-774.174 300.609 342.916 +-798.302 303.824 346.583 +-786.366 293.28 334.555 +-810.073 296 337.658 +-797.878 285.572 325.762 +-821.671 287.997 328.528 +-810.639 278.176 317.325 +-835.319 280.565 320.05 +-823.25 270.572 308.651 +-2944.9 946.819 1080.07 +-836.426 262.99 300.002 +-412.279 126.73 144.565 +-850.541 255.514 291.474 +-877.369 257.502 293.742 +-865.43 248.055 282.965 +-384.955 107.716 122.875 +-395.143 107.893 123.078 +-382.556 101.888 116.227 +-381.471 99.055 112.995 +-383.515 97.0457 110.703 +-382.631 94.3048 107.577 +-381.233 91.4689 104.342 +-382.43 89.2718 101.836 +-382.179 86.7471 98.9555 +-382.08 84.2731 96.1333 +-380.993 81.6034 93.0878 +-382.727 79.5473 90.7425 +-381.183 76.8222 87.6338 +-382.761 74.7392 85.2576 +-381.909 72.1894 82.349 +-382.079 69.8486 79.6787 +-381.541 67.3924 76.8769 +-383.29 65.3432 74.5393 +-382.976 62.9445 71.803 +-380.683 60.2466 68.7255 +-383.025 58.2917 66.4954 +-381.146 55.7009 63.5399 +-382.456 53.5885 61.1303 +-382.269 51.268 58.4832 +-382.049 48.9539 55.8435 +-380.815 46.526 53.0739 +-380.037 44.1734 50.3901 +-379.819 41.8985 47.7951 +-380.754 39.7532 45.3479 +-379.189 37.3568 42.6142 +-380.065 35.2108 40.1662 +-380.517 33.0232 37.6707 +-380.939 30.833 35.1723 +-379.246 28.4837 32.4924 +-379.907 26.3217 30.0261 +-379.843 24.11 27.5031 +-380.148 21.924 25.0095 +-379.925 19.7105 22.4845 +-378.476 17.4461 19.9013 +-380.389 15.3366 17.495 +-381.676 13.1858 15.0415 +-380.537 10.9523 12.4937 +-378.269 8.70767 9.93315 +-377.471 6.51579 7.43279 +-146.178 1.68197 1.91868 +-145.194 0.835263 0.952813 +96.9 0 0 +96.8963 0.563132 0.630812 +96.6853 1.1239 1.25897 +96.8668 1.68923 1.89225 +96.841 2.2521 2.52277 +96.9077 2.81771 3.15635 +96.8671 3.38078 3.7871 +97.6176 3.97612 4.45398 +97.5618 4.54326 5.08929 +97.5982 5.1153 5.73008 +96.6309 5.63005 6.3067 +97.4493 6.24885 6.99987 +96.4686 6.75231 7.56384 +97.37 7.38803 8.27596 +97.1703 7.9455 8.90043 +97.0625 8.5099 9.53266 +96.9472 9.07363 10.1641 +97.6159 9.71548 10.8831 +96.6947 10.199 11.4248 +97.1491 10.8266 12.1277 +96.9051 11.3792 12.7468 +96.654 11.9298 13.3636 +96.5921 12.5037 14.0065 +96.4246 13.0646 14.6347 +96.1519 13.6106 15.2464 +96.0675 14.1833 15.8879 +96.6575 14.8608 16.6469 +96.6536 15.4531 17.3104 +96.4474 16.0142 17.9389 +97.0084 16.7075 18.7155 +96.8824 17.2879 19.3657 +96.5558 17.8325 19.9757 +97.1836 18.5581 20.7885 +96.9367 19.1222 21.4204 +96.6824 19.6848 22.0506 +96.3254 20.2259 22.6568 +96.9127 20.9701 23.4904 +96.6342 21.5325 24.1204 +96.3483 22.0933 24.7486 +96.715 22.808 25.5492 +97.5401 23.6425 26.484 +97.9759 24.395 27.327 +96.8123 24.7487 27.7232 +97.3217 25.53 28.5984 +97.7252 26.2942 29.4544 +97.4693 26.8867 30.118 +97.2053 27.4781 30.7805 +97.6669 28.281 31.6799 +96.6531 28.6578 32.1021 +97.0929 29.467 33.0085 +96.6124 30.002 33.6078 +97.0279 30.8203 34.5244 +97.3394 31.6166 35.4164 +96.9214 32.1811 36.0487 +97.2088 32.985 36.9493 +96.7729 33.5487 37.5807 +97.1242 34.3912 38.5245 +96.6699 34.9543 39.1553 +96.9079 35.773 40.0724 +96.4354 36.3348 40.7017 +96.735 37.1936 41.6637 +96.9333 38.0247 42.5947 +96.4313 38.5866 43.2241 +96.6894 39.4587 44.201 +96.6775 40.2308 45.066 +96.1466 40.7912 45.6937 +97.1181 42.0012 47.0491 +96.3972 42.4905 47.5972 +96.5 43.3471 48.5567 +96.5876 44.2079 49.5211 +96.0865 44.8058 50.1907 +96.2285 45.7105 51.2042 +96.1921 46.542 52.1357 +96.3021 47.4558 53.1593 +96.3953 48.3743 54.1882 +95.8371 48.9732 54.8591 +95.6645 49.7743 55.7564 +95.7912 50.7429 56.8415 +95.7444 51.633 57.8385 +95.6814 52.5263 58.8392 +96.3684 53.8509 60.323 +95.6591 54.4089 60.948 +96.2255 55.7054 62.4004 +95.5667 56.3067 63.0739 +96.0886 57.6175 64.5422 +95.33 58.1737 65.1653 +95.8073 59.4976 66.6483 +95.7494 60.5105 67.7829 +95.5283 61.4347 68.8182 +95.4329 62.4544 69.9604 +95.318 63.4775 71.1065 +95.7442 64.884 72.682 +95.5155 65.869 73.7855 +95.1306 66.7599 74.7835 +95.548 68.2357 76.4366 +95.3258 69.2793 77.6056 +94.9496 70.2262 78.6664 +95.2185 71.6734 80.2874 +94.8661 72.6763 81.4109 +94.8844 73.9842 82.876 +94.2327 74.788 83.7764 +94.394 76.2578 85.4228 +94.6498 77.8388 87.1938 +94.56 79.1673 88.6821 +94.1346 80.2389 89.8824 +94.5406 82.0509 91.9122 +93.7628 82.8627 92.8216 +92.6139 83.3515 93.3691 +91.1655 83.5633 93.6064 +92.9125 86.7459 97.1715 +94.0092 89.4104 100.156 +93.4004 90.5019 101.379 +93.2734 92.0902 103.158 +93.6085 94.184 105.503 +93.2967 95.6737 107.172 +93.114 97.3359 109.034 +93.0538 99.172 111.091 +93.1615 101.242 113.41 +93.2734 103.378 115.803 +92.8795 105.006 117.627 +93.05 107.33 120.229 +92.6249 109.026 122.129 +92.5017 111.133 124.489 +92.4734 113.422 127.054 +92.2512 115.542 129.429 +91.6109 117.197 131.282 +113.361 148.164 165.971 +114.762 153.287 171.71 +114.897 156.882 175.736 +113.569 158.565 177.622 +110.684 158.072 177.07 +108.193 158.104 177.105 +105.752 158.179 177.19 +103.276 158.177 177.187 +100.535 157.729 176.685 +98.3879 158.184 177.195 +95.712 157.761 176.722 +93.5678 158.188 177.2 +91.0255 157.917 176.896 +90.3185 160.873 180.208 +90.8406 166.21 186.186 +90.3615 169.934 190.357 +89.694 173.475 194.324 +88.179 175.505 196.598 +85.4741 175.187 196.242 +89.1893 188.38 211.02 +89.0564 193.986 217.3 +86.6247 194.752 218.158 +83.7111 194.415 217.781 +81.0267 194.574 217.959 +78.1375 194.201 217.541 +75.4645 194.326 217.681 +72.625 193.981 217.295 +70.1036 194.461 217.832 +67.3503 194.276 217.625 +64.6072 194.075 217.4 +62.1032 194.574 217.959 +59.3718 194.34 217.697 +56.6512 194.089 217.416 +53.9417 193.821 217.116 +51.2609 193.603 216.871 +48.7551 194.025 217.344 +46.1012 193.841 217.137 +43.5742 194.167 217.503 +40.8891 193.753 217.04 +38.3486 193.984 217.298 +35.6955 193.604 216.873 +33.2251 194.201 217.541 +30.5537 193.592 216.859 +28.0157 193.762 217.049 +25.4495 193.719 217.001 +22.8473 193.328 216.563 +20.2991 193.321 216.555 +17.8262 194.096 217.423 +15.235 193.594 216.861 +12.6932 193.608 216.877 +10.1523 193.608 216.877 +7.6044 193.393 216.636 +5.0612 193.098 216.305 +2.53419 193.386 216.628 +1.77813e-14 193.393 216.636 +-2.53593 193.519 216.777 +-5.06992 193.431 216.678 +-7.60964 193.526 216.785 +-10.1418 193.409 216.653 +-12.6758 193.342 216.579 +-15.2088 193.261 216.488 +-17.7407 193.165 216.381 +-20.2643 192.988 216.183 +-22.7924 192.863 216.042 +-25.3275 192.79 215.96 +-27.9295 193.165 216.381 +-30.4491 192.93 216.117 +-33.078 193.341 216.578 +-35.5005 192.547 215.688 +-38.1528 192.993 216.188 +-40.6664 192.698 215.857 +-43.1751 192.389 215.511 +-45.6789 192.065 215.148 +-48.3424 192.383 215.504 +-50.8789 192.161 215.255 +-53.559 192.447 215.576 +-56.0788 192.128 215.219 +-58.7936 192.448 215.577 +-61.3132 192.099 215.186 +-63.9795 192.19 215.288 +-66.473 191.746 214.791 +-69.2166 192 215.076 +-71.9476 192.172 215.268 +-74.6383 192.198 215.297 +-77.1281 191.692 214.731 +-80.1448 192.456 215.587 +-82.6636 191.983 215.056 +-85.6022 192.453 215.583 +-88.1501 192.012 215.089 +-91.174 192.572 215.716 +-93.7558 192.162 215.257 +-96.5241 192.115 215.204 +-99.3634 192.176 215.272 +-102.278 192.344 215.461 +-105.24 192.556 215.698 +-107.899 192.187 215.285 +-110.7 192.05 215.131 +-113.615 192.081 215.166 +-116.39 191.846 214.902 +-119.55 192.208 215.308 +-114.015 178.877 200.376 +-113.683 174.116 195.043 +-114.7 171.563 192.183 +-116.031 169.557 189.935 +-117.826 168.273 188.497 +-119.811 167.28 187.385 +-122.349 167.057 187.134 +-125.069 167.055 187.132 +-132.565 173.264 194.088 +-144.758 185.187 207.444 +-146.428 183.398 205.44 +-151.546 185.876 208.215 +-159.26 191.337 214.333 +-163.78 192.781 215.95 +-169.55 195.57 219.075 +-1662.95 1880.08 2106.03 +-537.236 595.437 667 +-540.891 587.807 658.452 +-545.499 581.366 651.237 +-162.264 169.621 190.007 +-165.897 170.124 190.57 +-166.023 167.043 187.119 +-169.939 167.784 187.949 +-567.143 549.544 615.591 +-577.305 549.064 615.053 +-589.82 550.676 616.859 +-594.075 544.533 609.978 +-594.525 535.065 599.371 +-586.108 517.973 580.226 +-590.316 512.329 573.903 +-594.421 506.674 567.569 +-598.174 500.803 560.992 +-602.385 495.393 554.932 +-606.691 490.127 549.032 +-611.034 484.949 543.233 +-614.443 479.101 536.682 +-618.664 473.954 530.916 +-622.863 468.844 525.192 +-626.975 463.722 519.455 +-631.204 458.735 513.868 +-635.418 453.783 508.321 +-145.174 101.878 114.123 +-142.474 98.2529 110.061 +-143.616 97.3259 109.023 +-144.038 95.9228 107.451 +-143.007 93.5879 104.836 +-143.077 92.0136 103.072 +-142.609 90.1243 100.956 +-145.539 90.382 101.245 +-149.299 91.1072 102.057 +-684.957 410.719 460.082 +-700.798 412.901 462.526 +-706.031 408.725 457.848 +-710.827 404.304 452.895 +-715.486 399.815 447.867 +-720.62 395.599 443.144 +-724.766 390.851 437.826 +-731.895 387.703 434.299 +-738.839 384.418 430.62 +-734.883 375.529 420.662 +-725.241 363.95 407.691 +-729.5 359.484 402.688 +-734.911 355.582 398.318 +-386.786 183.732 205.813 +-387.459 180.675 202.389 +-2700.25 1235.9 1384.43 +-755.005 339.142 379.902 +-385.589 169.962 190.389 +-381.679 165.067 184.905 +-382.309 162.199 181.692 +-383.063 159.406 178.564 +-782.383 319.289 357.662 +-135.518 54.227 60.7443 +-136.827 53.674 60.1248 +-799.168 307.271 344.201 +-805.34 303.436 339.904 +-810.772 299.293 335.263 +-817.036 295.427 330.933 +-823.26 291.512 326.547 +-829.799 287.67 322.243 +-835.853 283.622 317.709 +-842.67 279.794 313.421 +-849.001 275.762 308.904 +-856.373 272.022 304.715 +-863.168 268.048 300.263 +-871.47 264.485 296.272 +-878.191 260.386 291.68 +-885.788 256.494 287.32 +-383.114 108.299 121.315 +-384.057 105.941 118.674 +-380.053 102.258 114.548 +-380.82 99.8992 111.906 +-383.702 98.0878 109.876 +-380.945 94.8512 106.251 +-382.737 92.7708 103.92 +-382.901 90.2981 101.151 +-381.8 87.5491 98.0711 +-382.554 85.2429 95.4878 +-382.8 82.8308 92.7858 +-381.868 80.1829 89.8197 +-380.131 77.3959 86.6977 +-380.651 75.089 84.1136 +-382.198 72.984 81.7555 +-383.043 70.7424 79.2445 +-382.313 68.2211 76.4202 +-382.999 65.963 73.8908 +-382.394 63.493 71.1239 +-380.78 60.8797 68.1965 +-382.148 58.7544 65.8158 +-382.318 56.4448 63.2287 +-381.869 54.0547 60.5512 +-381.681 51.7139 57.9291 +-380.577 49.2651 55.186 +-380.815 47.0029 52.652 +-380.53 44.684 50.0544 +-380.903 42.4489 47.5506 +-380.853 40.1711 44.9991 +-379.189 37.7397 42.2755 +-378.976 35.4697 39.7327 +-379.624 33.2834 37.2836 +-379.649 31.0435 34.7744 +-380.24 28.8511 32.3185 +-380.206 26.6123 29.8107 +-378.549 24.2741 27.1915 +-379.749 22.1255 24.7847 +-381.022 19.97 22.3701 +-378.177 17.611 19.7275 +-380.589 15.502 17.3651 +-379.579 13.2478 14.84 +-379.039 11.021 12.3456 +-378.269 8.79693 9.85419 +-143.751 2.50682 2.8081 +-145.778 1.69456 1.89822 +-145.494 0.845569 0.947194 +96.9 0 0 +96.8963 0.568799 0.625707 +96.8852 1.13756 1.25137 +96.8668 1.70623 1.87693 +96.9409 2.27711 2.50493 +96.8078 2.84313 3.12758 +97.666 3.44296 3.78743 +96.7193 3.97916 4.37728 +96.7637 4.55145 5.00682 +96.701 5.11927 5.63145 +96.5313 5.68084 6.24921 +96.5534 6.25371 6.87939 +97.3637 6.88349 7.57218 +97.37 7.46238 8.20899 +97.1703 8.02546 8.82841 +97.0625 8.59554 9.45552 +96.9472 9.16494 10.0819 +96.7258 9.72378 10.6966 +96.5959 10.2912 11.3208 +97.1491 10.9355 12.0296 +96.8066 11.482 12.6307 +96.654 12.0498 13.2554 +96.5921 12.6295 13.8931 +96.3266 13.1826 14.5016 +96.2497 13.7615 15.1384 +96.0675 14.326 15.7593 +95.878 14.8894 16.3791 +96.5563 15.5929 17.153 +96.4474 16.1754 17.7937 +97.0084 16.8757 18.5641 +96.7858 17.4445 19.1898 +96.5558 18.0119 19.814 +96.3184 18.578 20.4367 +96.9367 19.3146 21.2471 +96.5868 19.8632 21.8505 +96.4208 20.4497 22.4957 +96.0567 20.9941 23.0945 +97.4877 21.9413 24.1365 +96.3483 22.3156 24.5483 +96.8093 23.06 25.3671 +97.5401 23.8804 26.2697 +97.1329 24.4285 26.8726 +97.6525 25.2147 27.7374 +97.2286 25.7623 28.3398 +96.8907 26.3321 28.9666 +97.4693 27.1572 29.8743 +97.2053 27.7546 30.5314 +96.8415 28.3241 31.158 +97.3839 29.1651 32.0831 +97.0929 29.7636 32.7414 +96.6124 30.3039 33.3358 +97.0279 31.1305 34.2451 +96.6204 31.6989 34.8703 +96.8319 32.4749 35.724 +97.2979 33.3475 36.6839 +96.7729 33.8863 37.2766 +97.1242 34.7372 38.2127 +96.6699 35.306 38.8384 +96.9953 36.1656 39.784 +96.4354 36.7005 40.3723 +96.6484 37.5342 41.2895 +96.9333 38.4074 42.25 +96.3456 38.9403 42.8362 +96.6041 39.8206 43.8047 +96.0838 40.3862 44.4268 +96.1466 41.2017 45.3239 +96.3632 42.0941 46.3057 +96.3972 42.9181 47.212 +95.8367 43.4823 47.8327 +95.9283 44.348 48.785 +95.3493 44.9094 49.4026 +96.2285 46.1705 50.7899 +96.1921 47.0104 51.7138 +96.3021 47.9333 52.7291 +95.6765 48.4968 53.3488 +95.8371 49.4661 54.4151 +95.7433 50.3166 55.3508 +95.7912 51.2536 56.3815 +95.7444 52.1526 57.3704 +95.6043 53.0121 58.3159 +95.6023 53.9604 59.3591 +95.6591 54.9564 60.4548 +95.6217 55.913 61.5071 +95.5667 56.8733 62.5634 +95.4198 57.7922 63.5743 +95.33 58.7591 64.6379 +95.1491 59.6834 65.6547 +95.6769 61.0731 67.1835 +95.6003 62.0997 68.3127 +95.4329 63.0828 69.3943 +95.318 64.1162 70.5311 +95.7442 65.5369 72.0938 +95.5155 66.5319 73.1884 +95.1994 67.4802 74.2316 +94.9342 68.4791 75.3304 +95.1907 69.8769 76.868 +94.9496 70.9329 78.0298 +95.2848 72.4451 79.6932 +94.9317 73.4581 80.8075 +94.8844 74.7287 82.2053 +94.4255 75.6953 83.2686 +94.394 77.0252 84.7315 +94.5869 78.5696 86.4305 +94.56 79.964 87.9644 +94.0731 80.9932 89.0965 +94.6015 82.9298 91.2269 +94.2442 84.1264 92.5432 +92.0786 83.7033 92.0778 +91.6357 84.8394 93.3276 +93.0286 87.7285 96.5057 +94.0665 90.3653 99.4063 +93.457 91.4685 100.62 +93.2734 93.0169 102.323 +93.4981 95.0194 104.526 +93.2967 96.6365 106.305 +93.0603 98.2582 108.089 +93.5837 100.74 110.819 +93.266 102.376 112.618 +93.2734 104.418 114.865 +92.8288 106.005 116.611 +93.05 108.41 119.256 +92.5756 110.065 121.077 +92.5502 112.31 123.547 +92.8551 115.036 126.546 +92.392 116.883 128.578 +91.5186 118.257 130.089 +109.775 144.92 159.42 +114.762 154.83 170.321 +114.459 157.856 173.649 +113.569 160.161 176.185 +110.684 159.663 175.637 +107.82 159.144 175.066 +105.426 159.279 175.215 +102.957 159.275 175.21 +100.496 159.254 175.187 +98.1583 159.403 175.351 +95.6745 159.287 175.224 +93.6044 159.843 175.835 +90.7746 159.067 174.982 +90.6687 163.122 179.442 +90.8406 167.883 184.68 +90.6953 172.278 189.514 +89.5964 175.03 192.542 +88.179 177.271 195.007 +85.4432 176.886 194.584 +89.1593 190.212 209.242 +89.0272 195.874 215.471 +86.5963 196.647 216.321 +83.7111 196.372 216.019 +80.8396 196.078 215.695 +78.1375 196.155 215.781 +75.4395 196.216 215.847 +72.8185 196.455 216.111 +69.8702 195.763 215.349 +67.1704 195.707 215.288 +64.6289 196.094 215.713 +61.8953 195.874 215.471 +59.3718 196.296 215.935 +56.6321 195.976 215.584 +53.9599 195.838 215.432 +51.2609 195.551 215.116 +48.7221 195.845 215.439 +46.0856 195.725 215.307 +43.4412 195.522 215.084 +40.8891 195.703 215.283 +38.3355 195.869 215.465 +35.6833 195.486 215.044 +33.1233 195.554 215.119 +30.5432 195.473 215.03 +28.0061 195.645 215.22 +25.4495 195.668 215.245 +22.8473 195.273 214.81 +20.2922 195.199 214.728 +17.7651 195.378 214.925 +15.235 195.542 215.106 +12.6889 195.489 215.048 +10.1523 195.557 215.122 +7.60179 195.272 214.809 +5.07516 195.579 215.146 +2.53331 195.265 214.801 +1.77813e-14 195.339 214.883 +-2.5272 194.794 214.283 +-5.06992 195.377 214.924 +-7.58608 194.869 214.366 +-10.1453 195.422 214.974 +-12.6758 195.288 214.826 +-15.2088 195.206 214.736 +-17.7346 195.042 214.556 +-20.2573 194.864 214.36 +-22.7924 194.804 214.294 +-25.3275 194.73 214.213 +-27.939 195.177 214.704 +-30.376 194.403 213.853 +-32.9874 194.752 214.237 +-35.5005 194.484 213.943 +-38.0353 194.335 213.778 +-40.6803 194.704 214.184 +-43.1899 194.391 213.84 +-45.7102 194.131 213.553 +-48.3424 194.319 213.76 +-50.8789 194.094 213.513 +-53.395 193.788 213.177 +-56.0788 194.061 213.477 +-58.5942 193.725 213.107 +-61.3132 194.032 213.445 +-63.828 193.664 213.041 +-66.4955 193.741 213.125 +-69.1932 193.866 213.262 +-71.9476 194.106 213.526 +-74.438 193.611 212.981 +-77.3869 194.271 213.708 +-79.9043 193.81 213.2 +-82.6361 193.85 213.245 +-85.375 193.874 213.271 +-88.1208 193.88 213.277 +-90.9635 194.061 213.476 +-93.7867 194.16 213.585 +-96.5558 194.112 213.533 +-99.3634 194.11 213.53 +-102.278 194.28 213.718 +-104.932 193.925 213.328 +-107.619 193.617 212.988 +-111.022 194.548 214.012 +-113.579 193.951 213.356 +-116.39 193.776 213.163 +-119.589 194.204 213.634 +-114.015 180.677 198.754 +-113.683 175.869 193.464 +-114.374 172.798 190.086 +-116.031 171.263 188.398 +-117.784 169.905 186.904 +-119.768 168.903 185.802 +-122.306 168.678 185.554 +-125.025 168.676 185.552 +-132.565 175.008 192.517 +-144.62 186.872 205.568 +-146.804 185.719 204.3 +-151.259 187.392 206.14 +-158.387 192.203 211.433 +-163.829 194.779 214.267 +-168.8 196.664 216.341 +-533.22 608.907 669.828 +-537.7 601.949 662.173 +-541.204 594.066 653.503 +-545.499 587.216 645.967 +-164.897 174.108 191.528 +-165.026 170.933 188.035 +-167.071 169.79 186.777 +-1832.2 1827.16 2009.97 +-566.973 554.908 610.426 +-576.788 554.093 609.53 +-589.297 555.724 611.324 +-594.075 550.013 605.041 +-592.206 538.34 592.201 +-586.649 523.67 576.063 +-590.133 517.324 569.083 +-594.791 512.091 563.326 +-598.735 506.317 556.974 +-602.952 500.849 550.959 +-606.373 494.799 544.304 +-610.777 489.623 538.61 +-615.222 484.536 533.014 +-618.926 478.926 526.843 +-623.128 473.764 521.164 +-627.243 468.588 515.471 +-631.204 463.351 509.709 +-635.418 458.349 504.207 +-141.87 100.562 110.623 +-142.544 99.2901 109.224 +-143.476 98.2091 108.035 +-143.967 96.8403 106.529 +-143.078 94.5768 104.039 +-143.077 92.9396 102.238 +-143.044 91.309 100.444 +-145.466 91.2451 100.374 +-149.299 92.0241 101.231 +-684.734 414.717 456.21 +-701.247 417.323 459.076 +-705.804 412.705 453.997 +-710.827 408.372 449.23 +-715.486 403.839 444.242 +-720.697 399.623 439.605 +-725.077 394.954 434.469 +-733.617 392.525 431.797 +-738.445 388.08 426.907 +-732.9 378.284 416.132 +-725.241 367.612 404.391 +-730.465 363.581 399.957 +-734.911 359.161 395.095 +-739.868 354.99 390.506 +-387.213 182.377 200.624 +-2700.25 1248.34 1373.23 +-755.419 342.743 377.035 +-383.421 170.707 187.787 +-383.189 167.388 184.135 +-383.321 164.265 180.699 +-385.353 161.972 178.178 +-782.383 322.502 354.768 +-133.804 54.0798 59.4905 +-137.688 54.5555 60.0138 +-799.168 310.364 341.415 +-805.34 306.489 337.153 +-811.385 302.532 332.801 +-817.564 298.593 328.467 +-823.702 294.603 324.078 +-830.153 290.689 319.772 +-836.655 286.751 315.441 +-841.954 282.37 310.621 +-2944.9 966.149 1062.81 +-2957.32 948.829 1043.76 +-864.074 271.029 298.146 +-871.47 267.147 293.875 +-878.191 263.006 289.32 +-3004.75 878.825 966.751 +-383.758 109.573 120.536 +-382.024 106.441 117.091 +-382.092 103.841 114.231 +-383.239 101.546 111.705 +-382.955 98.8825 108.776 +-382.35 96.1596 105.78 +-383.583 93.9115 103.307 +-381.581 90.8927 99.9864 +-381.422 88.3426 97.1813 +-381.131 85.7805 94.3628 +-383.181 83.7477 92.1266 +-382.727 81.1714 89.2926 +-382.044 78.5676 86.4282 +-380.651 75.8447 83.4329 +-382.774 73.8301 81.2167 +-383.139 71.4724 78.6232 +-382.313 68.9076 75.8018 +-382.128 66.4752 73.1261 +-382.394 64.132 70.5484 +-381.363 61.5866 67.7483 +-381.856 59.3002 65.2332 +-381.439 56.8818 62.5728 +-382.456 54.6826 60.1535 +-380.995 52.1405 57.3571 +-381.46 49.8764 54.8665 +-381.405 47.5495 52.3068 +-381.81 45.2855 49.8163 +-381.199 42.9093 47.2024 +-381.742 40.6701 44.7391 +-379.288 38.1294 41.9443 +-380.065 35.9297 39.5244 +-379.624 33.6183 36.9819 +-379.153 31.3149 34.4479 +-380.141 29.1337 32.0486 +-380.405 26.8942 29.585 +-380.241 24.628 27.0921 +-381.244 22.4361 24.6808 +-379.128 20.0707 22.0788 +-380.172 17.882 19.6711 +-380.289 15.6456 17.211 +-379.379 13.374 14.7121 +-378.839 11.1261 12.2392 +-378.969 8.90186 9.79249 +-144.95 2.55317 2.80862 +-145.978 1.71396 1.88544 +-144.994 0.851145 0.936302 +96.9 0 0 +96.8963 0.57442 0.62055 +96.6853 1.14643 1.23849 +97.5666 1.73553 1.87491 +96.841 2.29724 2.48173 +96.8078 2.87123 3.10181 +96.8671 3.44855 3.72549 +96.8191 4.02264 4.34569 +96.7637 4.59643 4.96555 +96.701 5.16987 5.58504 +96.5313 5.73699 6.19771 +97.3497 6.3676 6.87896 +97.3637 6.95152 7.50978 +97.37 7.53613 8.14133 +97.1703 8.10478 8.75564 +96.9633 8.67166 9.36805 +96.8482 9.24608 9.9886 +96.7258 9.81989 10.6085 +97.2873 10.4673 11.3079 +97.1491 11.0436 11.9305 +96.8066 11.5955 12.5266 +96.654 12.1689 13.1462 +95.8068 12.6507 13.6666 +96.4246 13.3265 14.3967 +96.1519 13.8834 14.9983 +96.1652 14.4823 15.6453 +95.9755 15.0518 16.2606 +96.5563 15.747 17.0116 +96.3504 16.3188 17.6293 +97.0084 17.0425 18.4111 +96.7858 17.6169 19.0316 +96.5558 18.1899 19.6507 +97.0874 18.9114 20.4301 +96.9367 19.5055 21.072 +96.6824 20.0794 21.6919 +96.4208 20.6518 22.3103 +96.9127 21.3905 23.1083 +96.6342 21.9641 23.728 +97.1048 22.7131 24.5371 +96.8093 23.2879 25.1581 +96.4125 23.8377 25.752 +97.1329 24.67 26.6511 +96.8123 25.2448 27.2722 +97.3217 26.0418 28.1331 +97.7252 26.8213 28.9752 +97.4693 27.4256 29.6281 +97.2053 28.0289 30.2798 +96.9332 28.6312 30.9304 +97.3839 29.4533 31.8186 +97.0019 30.0295 32.4411 +96.703 30.6321 33.0921 +97.0279 31.4381 33.9628 +97.3394 32.2504 34.8403 +96.8319 32.7959 35.4296 +97.2088 33.6462 36.3482 +96.7729 34.2212 36.9694 +97.0359 35.0486 37.8633 +96.6699 35.655 38.5183 +96.9079 36.4901 39.4205 +96.4354 37.0632 40.0396 +96.735 37.9391 40.9859 +96.9333 38.787 41.9018 +96.4313 39.3601 42.521 +96.6041 40.2142 43.4437 +96.0838 40.7854 44.0607 +96.1466 41.6089 44.9503 +96.3632 42.5102 45.924 +96.3972 43.3423 46.8229 +96.0026 43.988 47.5205 +96.5876 45.0941 48.7155 +96.0865 45.7039 49.3742 +96.147 46.5874 50.3286 +96.1921 47.475 51.2876 +96.3021 48.4071 52.2945 +96.3154 49.3032 53.2625 +95.7577 49.9136 53.922 +95.7433 50.8139 54.8946 +95.7912 51.7601 55.9168 +95.7444 52.668 56.8976 +95.6043 53.536 57.8353 +95.679 54.5374 58.9171 +95.6591 55.4996 59.9565 +95.5462 56.421 60.952 +95.5667 57.4354 62.0478 +95.4198 58.3634 63.0503 +95.33 59.3398 64.1052 +95.8805 60.7366 65.6141 +95.6769 61.6768 66.6298 +95.6003 62.7134 67.7497 +95.3616 63.6587 68.7709 +95.2473 64.7019 69.8979 +95.1134 65.7486 71.0286 +95.4461 67.1406 72.5324 +95.1306 68.0982 73.5669 +94.9342 69.1559 74.7096 +95.2582 70.6178 76.2888 +94.9496 71.634 77.3867 +94.6221 72.6523 78.4867 +94.8005 74.0822 80.0315 +94.8194 75.4157 81.472 +94.2969 76.3395 82.4701 +94.4576 77.8388 84.0897 +94.5869 79.3461 85.7181 +94.4977 80.7013 87.1822 +94.1962 81.901 88.4782 +93.9928 83.2107 89.893 +94.2442 84.9579 91.7805 +92.0786 84.5306 91.3189 +91.7533 85.788 92.6773 +92.8544 88.4298 95.5313 +94.0665 91.2584 98.587 +93.4004 92.3161 99.7297 +93.7207 94.3873 101.967 +93.6085 96.072 103.787 +93.2422 97.5345 105.367 +93.0603 99.2294 107.198 +93.5308 101.678 109.844 +93.2137 103.33 111.628 +93.2734 105.45 113.919 +92.981 107.228 115.839 +93.05 109.481 118.273 +92.5756 111.153 120.079 +92.5017 113.36 122.464 +92.4734 115.696 124.987 +92.5328 118.219 127.712 +91.5648 119.486 129.081 +105.371 140.482 151.764 +114.762 156.36 168.917 +114.415 159.355 172.152 +113.526 161.683 174.667 +110.303 160.687 173.591 +108.235 161.335 174.291 +105.426 160.853 173.771 +102.957 160.849 173.766 +100.457 160.766 173.676 +98.1583 160.978 173.906 +95.6745 160.861 173.779 +93.2379 160.79 173.702 +90.7388 160.576 173.471 +90.6337 164.671 177.895 +90.8063 169.478 183.088 +90.7287 174.045 188.021 +89.6615 176.888 191.093 +88.2424 179.152 193.539 +85.4741 178.699 193.05 +89.2194 192.221 207.658 +88.9687 197.68 213.555 +86.6531 198.721 214.68 +83.7111 198.313 214.238 +80.8396 198.016 213.918 +78.1634 198.16 214.073 +75.4145 198.089 213.997 +72.5524 197.672 213.546 +69.8935 197.764 213.646 +67.1704 197.642 213.513 +64.5856 197.9 213.792 +61.7498 197.345 213.193 +59.2123 197.703 213.58 +56.6321 197.913 213.807 +53.9417 197.707 213.584 +51.2609 197.484 213.343 +48.6065 197.311 213.157 +46.1012 197.726 213.605 +43.4264 197.387 213.239 +40.8751 197.57 213.436 +38.2442 197.333 213.18 +35.5858 196.878 212.689 +33.1006 197.351 213.2 +30.5432 197.405 213.258 +27.9295 197.038 212.861 +25.3623 196.926 212.74 +22.8551 197.271 213.113 +20.3131 197.332 213.179 +17.7712 197.377 213.227 +15.2402 197.542 213.406 +12.6845 197.354 213.202 +10.1209 196.878 212.689 +7.60179 197.202 213.039 +5.05945 196.9 212.713 +2.53331 197.195 213.031 +1.77384e-14 196.794 212.598 +-2.52808 196.787 212.59 +-5.05422 196.697 212.493 +-7.58346 196.727 212.526 +-10.1104 196.675 212.469 +-12.6322 196.539 212.322 +-15.1617 196.525 212.307 +-17.7346 196.97 212.788 +-20.2015 196.248 212.008 +-22.7924 196.729 212.528 +-25.3275 196.655 212.447 +-27.8432 196.43 212.204 +-30.3655 196.257 212.018 +-32.9761 196.609 212.398 +-35.5005 196.407 212.179 +-38.0353 196.256 212.016 +-40.5411 195.956 211.692 +-43.1899 196.312 212.077 +-45.6945 195.982 211.721 +-48.2104 195.703 211.42 +-50.8789 196.013 211.754 +-53.4132 195.77 211.492 +-56.0788 195.979 211.718 +-58.6142 195.706 211.423 +-61.1468 195.417 211.111 +-63.828 195.578 211.285 +-66.3381 195.193 210.868 +-69.1932 195.782 211.505 +-71.7056 195.365 211.054 +-74.463 195.59 211.297 +-77.1281 195.535 211.238 +-79.931 195.79 211.514 +-82.6361 195.766 211.487 +-85.4034 195.855 211.583 +-88.1501 195.861 211.59 +-90.9334 195.914 211.647 +-93.7249 195.949 211.685 +-96.5875 196.095 211.842 +-99.0704 195.45 211.146 +-102.212 196.072 211.818 +-104.898 195.778 211.5 +-107.899 196.04 211.783 +-110.736 195.963 211.7 +-113.579 195.868 211.597 +-116.39 195.691 211.407 +-119.244 195.559 211.263 +-113.742 182.026 196.644 +-113.364 177.108 191.331 +-114.7 175.002 189.056 +-116.114 173.079 186.979 +-117.784 171.584 185.363 +-119.811 170.634 184.337 +-122.218 170.223 183.893 +-125.426 170.89 184.613 +-133.473 177.948 192.238 +-144.943 189.141 204.33 +-146.193 186.775 201.774 +-151.689 189.781 205.022 +-158.436 194.163 209.755 +-163.583 196.409 212.181 +-168.65 198.432 214.367 +-1662.95 1917.76 2071.77 +-537.442 607.606 656.401 +-541.204 599.938 648.117 +-1736.28 1887.54 2039.12 +-1760.46 1877.17 2027.92 +-166.224 173.876 187.839 +-166.409 170.789 184.504 +-171.113 172.329 186.168 +-566.633 560.056 605.033 +-576.272 559.069 603.966 +-588.833 560.774 605.808 +-595.309 556.603 601.302 +-592.206 543.661 587.32 +-586.348 528.574 571.022 +-589.829 522.168 564.101 +-594.606 516.992 558.51 +-598.548 511.162 552.211 +-602.574 505.482 546.075 +-606.691 499.952 540.101 +-611.034 494.671 534.396 +-614.768 488.963 528.23 +-619.582 484.173 523.055 +-623.128 478.446 516.869 +-627.511 473.421 511.44 +-631.474 468.131 505.725 +-635.418 462.879 500.051 +-142.352 101.9 110.084 +-143.1 100.662 108.746 +-143.546 99.2287 107.197 +-143.896 97.7492 105.599 +-143.007 95.464 103.13 +-143.077 93.8581 101.396 +-143.044 92.2115 99.6167 +-146.49 92.7957 100.248 +-149.299 92.9336 100.397 +-686.74 420.044 453.776 +-701.023 421.313 455.147 +-705.503 416.606 450.063 +-710.827 412.408 445.527 +-716.175 408.222 441.005 +-720.389 403.4 435.796 +-724.455 398.515 430.519 +-733.93 396.574 428.421 +-737.736 391.539 422.982 +-733.138 382.147 412.836 +-725.8 371.531 401.368 +-730.224 367.053 396.53 +-735.963 363.229 392.399 +-386.786 187.415 202.465 +-745.183 354.449 382.913 +-749.708 350.018 378.127 +-755.751 346.282 374.091 +-760.17 341.789 369.237 +-381.679 168.376 181.897 +-384.249 166.29 179.644 +-383.742 162.889 175.97 +-386.075 160.715 173.621 +-133.89 54.6493 59.038 +-137.085 54.8534 59.2585 +-799.428 313.533 338.712 +-805.34 309.518 334.374 +-812.347 305.885 330.449 +-817.827 301.641 325.865 +-823.702 297.515 321.407 +-830.065 293.53 317.102 +-836.21 289.431 312.674 +-842.67 285.403 308.323 +-849.81 281.558 304.169 +-857.185 277.738 300.042 +-864.89 273.967 295.968 +-2981.49 922.998 997.121 +-878.831 265.799 287.144 +-886.614 261.879 282.91 +-384.127 110.762 119.657 +-384.057 108.065 116.743 +-381.722 104.766 113.18 +-382.029 102.225 110.434 +-383.795 100.078 108.115 +-381.788 96.9673 104.754 +-382.173 94.4912 102.079 +-381.581 91.791 99.1624 +-381.422 89.2157 96.3803 +-381.7 86.7573 93.7245 +-382.325 84.3866 91.1634 +-382.44 81.9125 88.4906 +-381.661 79.2653 85.6308 +-380.939 76.652 82.8077 +-381.909 74.3913 80.3654 +-381.79 71.9247 77.7008 +-382.12 69.5533 75.1389 +-382.709 67.2343 72.6336 +-381.714 64.6508 69.8427 +-381.947 62.2904 67.2927 +-382.148 59.9322 64.7451 +-381.146 57.3999 62.0094 +-382.456 55.223 59.6578 +-381.387 52.7099 56.9429 +-381.166 50.3304 54.3723 +-382.683 48.1804 52.0496 +-381.81 45.7331 49.4057 +-381.397 43.3558 46.8376 +-380.359 40.9233 44.2097 +-380.969 38.677 41.783 +-379.174 36.1997 39.1068 +-380.318 34.0126 36.7441 +-380.046 31.6989 34.2445 +-378.65 29.3063 31.6598 +-380.206 27.1458 29.3258 +-379.445 24.8193 26.8125 +-379.65 22.5632 24.3751 +-378.23 20.2211 21.845 +-379.872 18.0446 19.4937 +-379.391 15.7629 17.0288 +-378.88 13.4885 14.5717 +-378.839 11.236 12.1384 +-380.668 9.03013 9.7553 +-143.951 2.56062 2.76626 +-145.678 1.72735 1.86607 +-144.994 0.859558 0.928586 +96.9 0 0 +96.8963 0.579995 0.615343 +96.8852 1.15995 1.23064 +96.8668 1.73981 1.84584 +96.841 2.31954 2.4609 +96.8078 2.89909 3.07578 +96.8671 3.48202 3.69423 +96.8191 4.06168 4.30922 +96.7637 4.64104 4.92389 +96.701 5.22004 5.53817 +97.4278 5.84647 6.20278 +97.4493 6.43598 6.82821 +97.4631 7.02619 7.4544 +97.37 7.60927 8.07302 +97.1703 8.18344 8.68217 +96.9633 8.75582 9.28944 +96.9472 9.34535 9.91489 +96.7258 9.91519 10.5195 +96.5959 10.4937 11.1333 +97.0505 11.1394 11.8183 +96.8066 11.708 12.4215 +96.654 12.287 13.0358 +96.6903 12.8912 13.6769 +97.2085 13.5652 14.3919 +96.2497 14.0324 14.8876 +96.9462 14.7416 15.6401 +96.7549 15.3213 16.255 +96.5563 15.8998 16.8689 +96.4474 16.4938 17.499 +97.0084 17.2079 18.2566 +96.7858 17.7878 18.8719 +96.5558 18.3665 19.4858 +97.1836 19.1138 20.2787 +96.0737 19.5195 20.7091 +96.6824 20.2743 21.5099 +96.3254 20.8316 22.1012 +96.9127 21.5981 22.9144 +96.6342 22.1773 23.5289 +96.3483 22.7549 24.1417 +96.9035 23.5368 24.9712 +96.5064 24.0925 25.5608 +97.1329 24.9094 26.4275 +96.8123 25.4899 27.0433 +97.3217 26.2946 27.8971 +96.8907 26.8504 28.4868 +97.4693 27.6918 29.3794 +97.1133 28.2741 29.9973 +97.6669 29.1279 30.903 +96.6531 29.516 31.3148 +97.0929 30.3494 32.1991 +96.6124 30.9004 32.7836 +97.0279 31.7432 33.6778 +97.2495 32.5333 34.5161 +96.8319 33.1142 35.1323 +97.2979 34.0039 36.0762 +96.8616 34.5849 36.6927 +97.1242 35.421 37.5797 +97.4608 36.2955 38.5076 +96.1207 36.545 38.7722 +96.4354 37.4229 39.7036 +96.735 38.3074 40.642 +96.9333 39.1634 41.5502 +96.517 39.7774 42.2016 +96.6894 40.6403 43.1171 +96.6775 41.4356 43.9609 +96.1466 42.0127 44.5731 +96.3632 42.9228 45.5386 +96.564 43.8386 46.5103 +95.8367 44.3382 47.0404 +96.67 45.5707 48.3479 +96.0865 46.1475 48.9599 +96.147 47.0395 49.9063 +96.273 47.976 50.8999 +95.659 48.5505 51.5093 +95.6765 49.4514 52.4652 +96.3131 50.6903 53.7795 +95.7433 51.3071 54.434 +95.713 52.2197 55.4022 +95.7444 53.1792 56.4201 +95.6814 54.0992 57.3963 +95.679 55.0667 58.4227 +96.3434 56.4391 59.8787 +95.5462 56.9686 60.4405 +95.5667 57.9928 61.5271 +95.4941 58.9757 62.5699 +95.9935 60.3327 64.0097 +95.8805 61.3261 65.0635 +95.0966 61.8976 65.6699 +94.9529 62.8933 66.7262 +95.3616 64.2765 68.1938 +95.318 65.3783 69.3628 +95.6741 66.778 70.8478 +95.4461 67.7922 71.9238 +95.1994 68.8085 73.002 +95.0024 69.8778 74.1365 +95.3258 71.3539 75.7025 +94.9496 72.3292 76.7373 +95.2848 73.8711 78.3731 +95.4566 75.3184 79.9086 +94.4297 75.8348 80.4565 +95.004 77.658 82.3908 +94.394 78.5414 83.328 +95.0274 80.4893 85.3947 +94.4977 81.4846 86.4506 +94.1962 82.6959 87.7357 +94.6624 84.6164 89.7733 +93.7026 85.2899 90.4879 +91.9596 85.2405 90.4355 +90.9892 85.899 91.1341 +92.1576 88.6179 94.0187 +94.1239 92.2003 97.8194 +93.9668 93.7779 99.4931 +93.3293 94.9048 100.689 +93.4429 96.8329 102.734 +93.2967 98.5387 104.544 +93.0603 100.192 106.299 +92.9478 102.026 108.244 +93.1615 104.274 110.629 +93.1704 106.357 112.838 +92.8795 108.151 114.742 +93.05 110.544 117.281 +93.0188 112.768 119.641 +92.4532 114.401 121.373 +92.4257 116.758 123.874 +92.2042 118.942 126.191 +91.5648 120.645 127.998 +96.8816 130.417 138.365 +114.762 157.878 167.499 +114.678 161.272 171.1 +113.052 162.571 172.478 +109.965 161.749 171.607 +107.82 162.276 172.166 +104.979 161.725 171.581 +102.997 162.473 172.375 +100.183 161.883 171.749 +98.0818 162.414 172.312 +95.3374 161.85 171.714 +93.2379 162.35 172.245 +90.3804 161.494 171.336 +90.7037 166.397 176.538 +90.8063 171.123 181.552 +90.3949 175.087 185.757 +89.4336 178.151 189.008 +87.9886 180.37 191.363 +85.3196 180.108 191.084 +89.2495 194.152 205.985 +88.6763 198.942 211.067 +86.3123 199.86 212.04 +83.27 199.182 211.321 +80.6525 199.475 211.632 +77.7234 198.957 211.082 +75.139 199.281 211.426 +72.383 199.124 211.26 +69.8935 199.684 211.853 +66.9229 198.824 210.942 +64.4124 199.285 211.43 +61.5419 198.589 210.692 +59.0328 199.017 211.146 +56.2887 198.622 210.727 +53.7595 198.951 211.076 +51.1394 198.928 211.052 +48.59 199.158 211.296 +45.8197 198.426 210.519 +43.4264 199.303 211.45 +40.6385 198.333 210.42 +38.2181 199.112 211.247 +35.4762 198.176 210.254 +32.9874 198.586 210.688 +30.376 198.23 210.311 +27.9295 198.95 211.075 +25.2839 198.222 210.302 +22.7767 198.502 210.6 +20.2433 198.562 210.664 +17.7163 198.676 210.784 +15.1827 198.706 210.816 +12.6496 198.721 210.832 +10.0999 198.378 210.468 +7.58346 198.636 210.742 +5.04549 198.263 210.346 +2.52546 198.491 210.588 +1.76711e-14 197.95 210.014 +-2.5272 198.628 210.733 +-5.03851 197.988 210.055 +-7.58346 198.636 210.742 +-10.072 197.829 209.886 +-12.6365 198.515 210.613 +-15.1146 197.815 209.871 +-17.6736 198.197 210.276 +-20.1457 197.604 209.647 +-22.7218 198.023 210.092 +-25.2403 197.88 209.94 +-27.7569 197.721 209.771 +-30.261 197.479 209.515 +-32.8969 198.04 210.11 +-35.2812 197.087 209.098 +-37.9179 197.549 209.588 +-40.4298 197.314 209.339 +-43.0421 197.539 209.578 +-45.5694 197.342 209.369 +-48.2104 197.603 209.646 +-50.5663 196.699 208.686 +-53.395 197.603 209.646 +-55.7544 196.737 208.727 +-58.5942 197.538 209.577 +-60.9389 196.643 208.628 +-63.6549 196.941 208.943 +-66.1131 196.418 208.389 +-68.9598 197.016 209.023 +-71.4879 196.662 208.647 +-74.4129 197.355 209.383 +-76.6881 196.306 208.27 +-79.6638 197.029 209.037 +-82.1399 196.479 208.454 +-85.1762 197.23 209.25 +-87.653 196.647 208.631 +-90.6628 197.227 209.247 +-93.1686 196.677 208.663 +-96.2702 197.347 209.374 +-98.7448 196.699 208.686 +-102.045 197.652 209.698 +-104.624 197.162 209.178 +-107.584 197.364 209.392 +-110.091 196.713 208.701 +-113.249 197.195 209.213 +-116.053 197.018 209.026 +-118.9 196.886 208.885 +-113.234 182.971 194.122 +-113.444 178.953 189.859 +-114.7 176.701 187.47 +-116.114 174.759 185.41 +-118.037 173.622 184.204 +-120.156 172.786 183.316 +-122.963 172.923 183.462 +-125.605 172.794 183.325 +-139.284 187.498 198.924 +-144.758 190.733 202.357 +-146.053 188.406 199.888 +-150.782 190.478 202.086 +-156.642 193.828 205.64 +-162.992 197.599 209.641 +-166.95 198.338 210.426 +-533.677 621.425 659.297 +-538.369 614.562 652.016 +-541.674 606.286 643.236 +-166.766 183.053 194.209 +-165.058 177.709 188.539 +-166.06 175.391 186.081 +-168.12 174.219 184.837 +-173.462 176.39 187.14 +-566.746 565.605 600.076 +-573.978 562.247 596.513 +-586.916 564.375 598.77 +-595.955 562.615 596.903 +-589.767 546.676 579.993 +-587.432 534.69 567.276 +-590.864 528.161 560.349 +-595.345 522.658 554.511 +-599.295 516.767 548.26 +-603.77 511.401 542.568 +-607.137 505.174 535.962 +-611.934 500.207 530.692 +-615.612 494.387 524.517 +-620.435 489.545 519.38 +-623.989 483.758 513.24 +-628.715 478.934 508.122 +-632.082 473.13 501.964 +-636.918 468.475 497.026 +-142.696 103.138 109.424 +-143.586 101.985 108.2 +-143.336 100.045 106.142 +-143.896 98.6978 104.713 +-143.007 96.3905 102.265 +-142.861 94.6257 100.393 +-143.189 93.2004 98.8804 +-148.684 95.0996 100.895 +-150.183 94.3918 100.144 +-694.246 428.756 454.886 +-701.547 425.72 451.665 +-707.163 421.639 447.336 +-711.284 416.678 442.073 +-717.018 412.669 437.819 +-721.006 407.664 432.508 +-726.165 403.333 427.914 +-734.947 400.977 425.415 +-735.844 394.326 418.358 +-731.234 384.853 408.308 +-727.317 375.922 398.832 +-730.947 370.983 393.592 +-736.772 367.158 389.534 +-388.496 190.07 201.653 +-746.739 358.636 380.493 +-2700.25 1272.91 1350.48 +-756.497 349.989 371.318 +-760.921 345.447 366.5 +-386.543 172.177 182.67 +-384.671 168.087 178.331 +-383.742 164.47 174.493 +-384.797 161.737 171.594 +-789.365 325.32 345.147 +-137.43 55.525 58.9089 +-800.554 317.022 336.342 +-805.862 312.724 331.783 +-812.872 309.053 327.888 +-818.794 304.929 323.512 +-825.203 300.95 319.291 +-831.307 296.823 314.912 +-838.17 292.925 310.777 +-843.834 288.571 306.157 +-851.428 284.832 302.191 +-857.185 280.433 297.524 +-2969.52 949.769 1007.65 +-871.743 272.49 289.097 +-880.475 268.881 285.267 +-886.614 264.421 280.536 +-384.127 111.837 118.653 +-383.04 108.825 115.457 +-381.907 105.834 112.284 +-382.588 103.368 109.668 +-383.515 100.976 107.13 +-382.631 98.1244 104.105 +-382.737 95.5489 101.372 +-381.581 92.6818 98.3303 +-380.949 89.9698 95.4529 +-381.795 87.6213 92.9613 +-382.325 85.2056 90.3984 +-381.868 82.5841 87.6171 +-381.087 79.9139 84.7842 +-381.418 77.4933 82.2161 +-382.774 75.2834 79.8715 +-382.079 72.6777 77.1069 +-383.183 70.4238 74.7157 +-381.353 67.6464 71.7691 +-382.976 65.494 69.4855 +-382.919 63.0551 66.8979 +-381.856 60.4675 64.1527 +-381.439 58.0015 61.5364 +-383.043 55.8445 59.2479 +-381.681 53.2625 56.5086 +-379.988 50.6619 53.7494 +-381.208 48.4605 51.4139 +-380.924 46.0697 48.8774 +-381.495 43.7879 46.4566 +-379.667 41.2453 43.759 +-379.584 38.9105 41.2818 +-379.669 36.5988 38.8293 +-379.624 34.2801 36.3693 +-380.542 32.0483 34.0015 +-379.147 29.6296 31.4353 +-379.41 27.3519 29.0189 +-379.445 25.0602 26.5875 +-378.853 22.7343 24.1198 +-379.427 20.4819 21.7302 +-380.67 18.258 19.3707 +-379.291 15.9117 16.8814 +-379.579 13.6445 14.476 +-379.039 11.351 12.0428 +-380.668 9.11777 9.67344 +-146.05 2.62318 2.78305 +-146.078 1.7489 1.85549 +-146.794 0.878675 0.932226 +96.9 0 0 +96.8963 0.585523 0.610085 +96.8852 1.171 1.22013 +96.8668 1.75639 1.83007 +96.841 2.34165 2.43988 +96.8078 2.92673 3.0495 +96.7672 3.51158 3.65888 +96.8191 4.10039 4.2724 +96.7637 4.68527 4.88182 +97.5982 5.31869 5.5418 +97.4278 5.90219 6.14978 +97.4493 6.49732 6.76987 +97.3637 7.08589 7.38313 +96.4758 7.61124 7.93052 +97.1703 8.26143 8.60799 +96.9633 8.83927 9.21007 +96.9472 9.43441 9.83018 +96.8247 10.0199 10.4402 +96.5959 10.5938 11.0382 +97.1491 11.257 11.7293 +96.8066 11.8196 12.3154 +96.654 12.4041 12.9245 +96.5921 13.0009 13.5462 +96.4246 13.584 14.1539 +96.2497 14.1662 14.7604 +96.0675 14.7473 15.3659 +96.7549 15.4673 16.1162 +96.5563 16.0514 16.7247 +96.4474 16.651 17.3495 +97.0084 17.3719 18.1006 +96.7858 17.9574 18.7107 +96.5558 18.5415 19.3193 +96.3184 19.1243 19.9265 +96.8408 19.8628 20.696 +96.5868 20.4472 21.305 +97.2791 21.2383 22.1293 +96.9127 21.8039 22.7186 +96.6342 22.3887 23.3279 +97.1993 23.1747 24.1468 +96.8093 23.738 24.7338 +97.4461 24.5589 25.5891 +97.9759 25.365 26.4291 +96.8123 25.7328 26.8123 +97.3217 26.5452 27.6587 +96.9834 27.1322 28.2704 +97.4693 27.9557 29.1284 +97.2053 28.5707 29.7692 +96.9332 29.1846 30.4088 +97.3839 30.0226 31.282 +97.0929 30.6387 31.924 +96.6124 31.1949 32.5035 +97.0279 32.0458 33.3901 +97.3394 32.8737 34.2527 +96.9214 33.4606 34.8643 +97.2979 34.328 35.768 +96.8616 34.9145 36.3792 +97.1242 35.7586 37.2587 +96.7578 36.3772 37.9032 +96.9079 37.1954 38.7557 +96.4354 37.7796 39.3644 +96.6484 38.6378 40.2586 +96.9333 39.5367 41.1952 +96.4313 40.1209 41.8039 +96.6894 41.0276 42.7487 +96.0838 41.5737 43.3177 +96.1466 42.4131 44.1923 +96.3632 43.3318 45.1496 +96.564 44.2564 46.113 +96.5 45.0706 46.9613 +95.9283 45.652 47.567 +96.0865 46.5873 48.5416 +96.2285 47.5281 49.5218 +95.6258 48.1077 50.1258 +96.3824 49.3839 51.4555 +95.6765 49.9227 52.0169 +95.7577 50.8783 53.0126 +95.7433 51.7961 53.9689 +96.3391 53.0623 55.2883 +95.7444 53.686 55.9381 +95.6814 54.6148 56.9059 +95.679 55.5915 57.9235 +96.3434 56.977 59.3671 +95.5462 57.5116 59.9241 +96.1659 58.9126 61.3839 +95.4198 59.4914 61.9871 +95.9198 60.861 63.4141 +95.2223 61.4855 64.0648 +95.7494 62.9165 65.5558 +95.5283 63.8775 66.5571 +95.4329 64.9376 67.6617 +95.318 66.0014 68.7701 +95.6741 67.4145 70.2425 +95.4461 68.4383 71.3092 +95.1994 69.4643 72.3783 +95.0024 70.5438 73.5031 +95.3258 72.0339 75.0557 +94.9496 73.0186 76.0816 +95.2185 74.5232 77.6494 +94.8661 75.566 78.736 +94.8194 76.8733 80.0981 +94.4255 77.921 81.1897 +94.4576 79.3433 82.6716 +94.6498 80.9338 84.3289 +94.6222 82.3692 85.8245 +94.504 83.7568 87.2704 +94.4189 85.2033 88.7775 +93.3415 85.7704 89.3684 +91.3648 85.4962 89.0827 +90.8716 86.6055 90.2385 +92.1576 89.4625 93.2154 +93.6077 92.5687 96.4519 +93.5137 94.2147 98.1669 +93.6648 96.1542 100.188 +93.6085 97.9289 102.037 +93.2967 99.4779 103.651 +93.2215 101.323 105.573 +92.8948 102.939 107.258 +93.1092 105.208 109.622 +92.8099 106.955 111.441 +92.981 109.301 113.886 +93.05 111.598 116.279 +92.5756 113.301 118.054 +92.8895 116.036 120.904 +92.4734 117.932 122.879 +92.6267 120.626 125.686 +91.3801 121.549 126.648 +94.1576 127.958 133.326 +114.807 159.445 166.133 +114.108 161.999 168.795 +112.493 163.308 170.158 +109.205 162.161 168.964 +107.074 162.689 169.513 +104.328 162.254 169.06 +102.319 162.942 169.777 +99.402 162.151 168.954 +97.4312 162.874 169.707 +94.7005 162.301 169.109 +92.9081 163.318 170.169 +90.2729 162.839 169.67 +90.9489 168.437 175.503 +90.7037 172.559 179.797 +90.7621 177.474 184.918 +88.4569 177.884 185.346 +87.4492 180.973 188.565 +85.814 182.877 190.549 +89.1593 195.804 204.018 +88.3255 200.044 208.436 +85.7158 200.371 208.776 +82.8566 200.082 208.476 +80.3853 200.709 209.129 +77.0504 199.114 207.466 +74.7635 200.175 208.572 +71.8266 199.477 207.845 +69.45 200.307 208.71 +66.3831 199.1 207.453 +64.0228 199.967 208.355 +61.2092 199.398 207.763 +58.8135 200.167 208.564 +56.0215 199.564 207.935 +53.4861 199.826 208.209 +50.6879 199.051 207.401 +48.3094 199.896 208.281 +45.5381 199.086 207.437 +43.1899 200.107 208.501 +40.402 199.057 207.408 +38.0092 199.912 208.298 +35.2568 198.828 207.169 +32.8855 199.859 208.243 +30.2087 199.017 207.366 +27.7569 199.606 207.979 +25.1531 199.076 207.427 +22.6511 199.289 207.649 +20.0689 198.728 207.064 +17.6613 199.947 208.335 +15.0518 198.871 207.214 +12.5711 199.37 207.733 +10.0301 198.884 207.227 +7.5442 199.491 207.859 +5.00011 198.352 206.673 +2.50975 199.136 207.49 +1.75609e-14 198.59 206.921 +-2.51237 199.344 207.706 +-4.99488 198.144 206.456 +-7.53373 199.214 207.571 +-10.0092 198.469 206.795 +-12.558 199.162 207.517 +-15.0152 198.387 206.709 +-17.5698 198.911 207.255 +-20.0201 198.245 206.561 +-22.6747 199.497 207.865 +-25.0224 198.041 206.349 +-27.6707 198.985 207.333 +-30.0833 198.191 206.504 +-32.6931 198.69 207.025 +-35.0862 197.866 206.166 +-37.8004 198.813 207.153 +-40.1932 198.029 206.336 +-42.8204 198.395 206.717 +-45.2721 197.923 206.226 +-47.9133 198.257 206.574 +-50.2538 197.346 205.624 +-53.067 198.261 206.577 +-55.4491 197.524 205.81 +-58.2752 198.335 206.655 +-60.4607 196.959 205.222 +-63.2653 197.601 205.89 +-65.7532 197.211 205.484 +-68.6096 197.884 206.185 +-71.125 197.529 205.815 +-73.812 197.628 205.918 +-76.3257 197.241 205.515 +-79.1827 197.707 206 +-81.6989 197.287 205.563 +-84.665 197.914 206.217 +-87.156 197.395 205.676 +-90.1817 198.05 206.358 +-92.427 196.971 205.233 +-95.4452 197.521 205.807 +-97.8983 196.871 205.129 +-101.277 198.034 206.341 +-103.769 197.415 205.696 +-106.988 198.142 206.454 +-109.446 197.423 205.705 +-112.553 197.85 206.15 +-115.042 197.162 205.433 +-118.173 197.547 205.834 +-113.39 184.971 192.73 +-113.843 181.294 188.899 +-115.351 179.397 186.922 +-116.57 177.118 184.548 +-118.967 176.658 184.069 +-120.414 174.807 182.14 +-123.884 175.878 183.255 +-126.765 176.052 183.437 +-145.232 197.367 205.646 +-145.128 193.042 201.14 +-145.442 189.406 197.352 +-149.685 190.894 198.902 +-152.715 190.769 198.772 +-161.909 198.156 206.468 +-531.75 637.744 664.497 +-534.438 628.243 654.597 +-539.811 622.081 648.176 +-542.824 613.364 639.094 +-163.692 181.391 189.001 +-163.769 178.001 185.468 +-167.259 178.341 185.822 +-168.617 176.399 183.799 +-564.617 579.622 603.937 +-567.596 571.852 595.84 +-573.175 566.812 590.589 +-582.329 565.3 589.014 +-591.723 563.944 587.601 +-584.889 547.322 570.282 +-589.057 541.279 563.985 +-591.777 534.018 556.42 +-597.561 529.603 551.82 +-600.291 522.559 544.479 +-605.28 517.566 539.278 +-608.727 511.325 532.774 +-613.734 506.459 527.705 +-617.106 500.31 521.298 +-622.206 495.621 516.412 +-625.513 489.561 510.097 +-630.455 484.836 505.175 +-633.366 478.609 498.686 +-638.828 474.358 494.257 +-141.732 103.418 107.757 +-143.169 102.658 106.964 +-143.266 100.949 105.183 +-143.401 99.2957 103.461 +-142.864 97.2122 101.29 +-142.861 95.5275 99.5348 +-143.334 94.1842 98.1351 +-149.196 96.337 100.378 +-148.488 94.2154 98.1676 +-699.299 435.993 454.282 +-702.895 430.603 448.667 +-709.578 427.112 445.029 +-712.652 421.459 439.139 +-719.086 417.804 435.331 +-722.704 412.518 429.823 +-727.953 408.179 425.302 +-732.443 403.42 420.343 +-735.844 398.084 414.783 +-726.474 385.993 402.185 +-728.994 380.38 396.336 +-732.796 375.465 391.216 +-738.228 371.39 386.969 +-388.984 192.123 200.182 +-388.606 188.415 196.319 +-387.834 184.569 192.312 +-758.735 354.369 369.235 +-762.839 349.618 364.284 +-2747.9 1235.66 1287.49 +-383.574 169.206 176.304 +-381.791 165.194 172.124 +-385.052 163.387 170.241 +-791.251 329.205 343.015 +-137.085 55.9136 58.2592 +-802.806 320.943 334.406 +-807.69 316.421 329.694 +-815.146 312.872 325.996 +-413.923 155.619 162.147 +-827.057 304.501 317.274 +-832.903 300.227 312.821 +-839.863 296.314 308.744 +-845.802 292.001 304.25 +-853.585 288.275 300.368 +-413.294 136.5 142.226 +-867.971 280.257 292.014 +-412.576 130.193 135.654 +-882.668 272.119 283.534 +-888.54 267.521 278.743 +-383.574 112.741 117.47 +-382.763 109.783 114.388 +-383.854 107.388 111.892 +-383.053 104.481 108.864 +-382.955 101.79 106.06 +-383.099 99.1808 103.341 +-383.583 96.6728 100.728 +-382.147 93.7036 97.6344 +-381.422 90.9401 94.755 +-382.554 88.6323 92.3503 +-383.181 86.2101 89.8266 +-382.154 83.4335 86.9334 +-379.366 80.3113 83.6803 +-380.076 77.957 81.2272 +-380.467 75.5425 78.7114 +-381.79 73.3149 76.3904 +-382.7 71.005 73.9836 +-382.418 68.4818 71.3546 +-382.588 66.0512 68.8219 +-382.919 63.656 66.3263 +-381.174 60.9348 63.491 +-382.025 58.6442 61.1043 +-381.575 56.1608 58.5167 +-381.877 53.7978 56.0545 +-382.933 51.5411 53.7032 +-380.618 48.8467 50.8957 +-381.81 46.617 48.5726 +-381.693 44.2281 46.0835 +-381.346 41.8225 43.577 +-379.584 39.2813 40.9291 +-378.778 36.8608 38.4071 +-380.12 34.652 36.1056 +-380.939 32.3876 33.7462 +-379.544 29.9433 31.1994 +-379.012 27.5837 28.7408 +-378.549 25.2393 26.2981 +-379.052 22.9631 23.9263 +-379.626 20.688 21.5558 +-379.374 18.3692 19.1397 +-379.591 16.0761 16.7505 +-380.578 13.8107 14.3901 +-378.439 11.4411 11.921 +-380.568 9.20224 9.58827 +-144.251 2.61555 2.72527 +-147.378 1.78127 1.856 +-145.794 0.881005 0.917962 +96.9 0 0 +96.8963 0.591003 0.604778 +96.6853 1.17952 1.20702 +96.6669 1.76917 1.81041 +97.5405 2.38064 2.43612 +96.8078 2.95412 3.02297 +96.8671 3.5481 3.6308 +96.8191 4.13877 4.23524 +96.7637 4.72912 4.83935 +96.701 5.31911 5.44309 +97.4278 5.95743 6.09629 +97.4493 6.55813 6.71098 +97.3637 7.1522 7.31891 +97.37 7.75369 7.93441 +97.1703 8.33875 8.53311 +96.9633 8.922 9.12995 +96.9472 9.52271 9.74467 +96.8247 10.1136 10.3494 +96.3984 10.671 10.9197 +97.0505 11.3509 11.6154 +96.9051 11.9424 12.2207 +96.7523 12.5329 12.8251 +96.494 13.1092 13.4147 +96.4246 13.7112 14.0307 +96.2497 14.2987 14.632 +96.0675 14.8853 15.2322 +95.878 15.4706 15.8312 +96.5563 16.2016 16.5792 +96.3504 16.7899 17.1812 +96.1371 17.3769 17.7819 +96.7858 18.1254 18.5479 +96.5558 18.7151 19.1513 +96.3184 19.3033 19.7532 +96.8408 20.0487 20.516 +96.5868 20.6386 21.1196 +96.4208 21.248 21.7432 +96.9127 22.008 22.5209 +96.6342 22.5982 23.1249 +97.1993 23.3916 23.9368 +96.9035 23.9835 24.5425 +97.5401 24.8127 25.391 +97.2266 25.4066 25.9988 +97.6525 26.199 26.8097 +97.3217 26.7936 27.4181 +96.9834 27.3861 28.0244 +97.3769 28.1906 28.8476 +97.2053 28.8381 29.5102 +97.5752 29.6528 30.3439 +97.3839 30.3036 31.0099 +97.0019 30.8964 31.6166 +96.6124 31.4869 32.2208 +97.0279 32.3457 33.0996 +96.6204 32.9363 33.704 +96.9214 33.7738 34.561 +97.2088 34.6175 35.4244 +96.6842 35.1768 35.9967 +97.1242 36.0933 36.9345 +96.6699 36.6843 37.5393 +96.9079 37.5435 38.4186 +96.4354 38.1331 39.0219 +96.6484 38.9994 39.9084 +96.8471 39.8712 40.8005 +96.4313 40.4964 41.4403 +96.6041 41.3751 42.3395 +96.0838 41.9628 42.9408 +96.1466 42.8101 43.8079 +96.3632 43.7374 44.7568 +95.6467 44.2463 45.2776 +96.0026 45.2579 46.3127 +95.9283 46.0792 47.1532 +96.0865 47.0233 48.1193 +96.147 47.9323 49.0495 +96.273 48.8866 50.026 +96.3824 49.8461 51.0079 +95.6765 50.3899 51.5644 +95.6784 51.3119 52.5079 +95.6645 52.2378 53.4553 +96.4173 53.6024 54.8518 +95.7444 54.1885 55.4515 +95.6814 55.126 56.4109 +95.6023 56.0669 57.3737 +95.6591 57.1018 58.4327 +95.6217 58.0957 59.4498 +95.5667 59.0935 60.4708 +96.0143 60.4224 61.8307 +95.2562 61.0057 62.4276 +95.8805 62.49 63.9465 +95.6769 63.4573 64.9363 +95.6003 64.5239 66.0278 +95.3616 65.4964 67.023 +95.318 66.6192 68.1719 +95.6741 68.0454 69.6314 +95.4461 69.0788 70.6889 +95.1994 70.1144 71.7486 +94.9342 71.1523 72.8107 +95.3258 72.7081 74.4028 +95.0165 73.7544 75.4734 +95.2185 75.2207 76.9739 +94.8661 76.2733 78.051 +94.8194 77.5928 79.4013 +94.8755 79.0249 80.8668 +94.4576 80.0858 81.9525 +94.5869 81.6367 83.5395 +94.56 83.0856 85.0221 +94.3193 84.3751 86.3417 +94.2971 85.8896 87.8915 +91.9573 85.29 87.2779 +91.3053 86.2405 88.2506 +92.0472 88.5469 90.6107 +90.9381 89.1046 91.1815 +92.2311 92.0611 94.2068 +93.9668 95.5577 97.785 +93.6648 97.0541 99.3162 +93.6085 98.8454 101.149 +93.2967 100.409 102.749 +93.2215 102.271 104.655 +92.9478 103.962 106.385 +93.1092 106.193 108.668 +92.6553 107.775 110.287 +92.8795 110.203 112.772 +92.6 112.098 114.71 +92.9696 114.848 117.525 +92.5502 116.694 119.414 +92.4257 118.974 121.747 +92.2512 121.261 124.087 +91.7033 123.121 125.991 +90.8889 124.672 127.578 +114.762 160.874 164.624 +113.231 162.259 166.041 +111.244 163.006 166.806 +108.402 162.475 166.262 +106.369 163.13 166.932 +103.555 162.56 166.349 +101.522 163.185 166.988 +98.3861 161.997 165.772 +96.7806 163.301 167.107 +93.6891 162.071 165.848 +91.9918 163.221 167.025 +90.7029 165.146 168.995 +90.9489 170.014 173.976 +90.6011 173.977 178.032 +90.1946 178.015 182.164 +88.6197 179.88 184.072 +86.9732 181.673 185.908 +88.7497 190.904 195.353 +89.3698 198.104 202.721 +87.4776 199.978 204.639 +85.0342 200.638 205.315 +81.8919 199.604 204.256 +79.7172 200.904 205.586 +76.5069 199.56 204.211 +74.2627 200.695 205.373 +71.0525 199.174 203.816 +68.9364 200.687 205.365 +65.8432 199.329 203.975 +63.59 200.474 205.147 +60.5023 198.94 203.577 +58.3351 200.397 205.068 +55.2201 198.55 203.178 +53.067 200.116 204.78 +50.2711 199.262 203.906 +47.9298 200.181 204.847 +45.147 199.224 203.867 +42.7908 200.113 204.777 +40.0262 199.052 203.691 +37.7873 200.605 205.28 +34.9765 199.094 203.734 +32.6365 200.202 204.868 +29.9474 199.142 203.784 +27.5365 199.874 204.532 +24.8655 198.641 203.271 +22.4707 199.552 204.203 +19.8318 198.217 202.837 +17.5087 200.075 204.738 +14.8843 198.499 203.125 +12.4533 199.35 203.996 +9.90448 198.231 202.851 +7.47352 199.472 204.121 +4.95474 198.392 203.016 +2.48619 199.113 203.754 +1.73404e-14 197.933 202.546 +-2.48968 199.393 204.04 +-4.95997 198.602 203.23 +-7.46567 199.262 203.906 +-9.89401 198.021 202.637 +-12.4446 199.21 203.853 +-14.8372 197.87 202.482 +-17.3805 198.61 203.239 +-19.8387 198.287 202.909 +-22.4785 199.622 204.275 +-24.7871 198.015 202.63 +-27.4886 199.526 204.177 +-29.7593 197.891 202.503 +-32.4327 198.952 203.589 +-34.8059 198.122 202.74 +-37.461 198.873 203.508 +-39.8453 198.152 202.771 +-42.4065 198.316 202.939 +-44.7246 197.36 201.96 +-47.4842 198.32 202.942 +-49.8023 197.404 202.005 +-52.5749 198.26 202.881 +-54.7431 196.835 201.422 +-57.7768 198.479 203.105 +-59.8994 196.957 201.548 +-62.7458 197.812 202.423 +-65.1908 197.354 201.954 +-67.9793 197.901 202.513 +-70.2783 197.004 201.596 +-73.3613 198.259 202.88 +-75.6269 197.264 201.862 +-78.5681 198.007 202.623 +-80.7893 196.916 201.506 +-83.9549 198.091 202.708 +-86.2204 197.104 201.698 +-89.1593 197.637 202.244 +-91.6544 197.152 201.747 +-95.001 198.441 203.067 +-97.1821 197.26 201.857 +-100.376 198.109 202.726 +-102.538 196.898 201.488 +-106.183 198.491 203.117 +-108.191 196.988 201.579 +-111.673 198.141 202.759 +-113.805 196.869 201.458 +-115.953 195.651 200.211 +-113.664 187.152 191.514 +-114.321 183.759 188.042 +-116.042 182.162 186.407 +-117.234 179.793 183.984 +-119.728 179.451 183.634 +-121.705 178.336 182.492 +-125.506 179.848 184.04 +-129.264 181.202 185.425 +-145.413 199.463 204.112 +-144.851 194.477 199.009 +-144.456 189.883 194.309 +-147.871 190.346 194.782 +-151.164 190.598 195.041 +-159.644 197.212 201.809 +-166.1 201.074 205.76 +-536.57 636.651 651.49 +-541.563 629.94 644.622 +-544.757 621.309 635.791 +-163.639 183.03 187.296 +-164.145 180.08 184.277 +-168.402 181.24 185.465 +-170.052 179.565 183.75 +-566.966 587.48 601.173 +-569.691 579.335 592.838 +-575.125 574.063 587.444 +-578.729 567.063 580.28 +-584.141 561.928 575.026 +-586.317 553.794 566.701 +-591.223 548.355 561.136 +-594.516 541.511 554.133 +-600.147 536.873 549.387 +-602.345 529.255 541.59 +-607.42 524.257 536.476 +-610.253 517.405 529.464 +-616.048 513.127 525.087 +-618.859 506.427 518.231 +-623.781 501.526 513.215 +-627.236 495.503 507.052 +-633.064 491.399 502.853 +-635.73 484.892 496.193 +-142.06 106.473 108.955 +-142.971 105.298 107.753 +-143.239 103.669 106.085 +-144.037 102.442 104.83 +-143.048 99.9784 102.309 +-142.864 98.122 100.409 +-142.861 96.4216 98.669 +-145.583 96.5572 98.8077 +-149.05 97.1429 99.4071 +-685.889 439.269 449.508 +-701.975 441.757 452.053 +-705.516 436.254 446.422 +-712.068 432.623 442.706 +-715.922 427.355 437.316 +-721.461 423.107 432.969 +-724.401 417.357 427.085 +-733.704 415.254 424.933 +-737.999 410.285 419.847 +-730.092 398.668 407.96 +-724.887 388.754 397.815 +-731.63 385.328 394.309 +-734.404 379.811 388.664 +-741.14 376.345 385.116 +-744.753 371.282 379.936 +-2683.95 1313.48 1344.1 +-755.394 362.854 371.312 +-387.078 182.478 186.731 +-764.173 353.508 361.747 +-772.499 350.622 358.795 +-382.984 170.527 174.501 +-385.268 168.258 172.18 +-385.223 164.989 168.835 +-382.982 160.834 164.582 +-137.688 56.6852 58.0064 +-136.919 55.2492 56.537 +-810.475 320.484 327.954 +-817.769 316.816 324.2 +-822.133 311.983 319.255 +-830.147 308.499 315.689 +-835.209 303.876 310.958 +-842.981 300.198 307.195 +-848.04 295.513 302.401 +-856.641 292.015 298.821 +-862.149 287.411 294.109 +-871.506 284.032 290.652 +-410.939 130.889 133.94 +-2993.23 931.423 953.132 +-385.532 117.162 119.893 +-383.574 113.796 116.448 +-382.856 110.837 113.42 +-382.741 108.079 110.598 +-383.332 105.535 107.995 +-382.301 102.567 104.958 +-380.851 99.5213 101.841 +-383.019 97.4336 99.7046 +-381.11 94.3241 96.5226 +-379.815 91.4048 93.5352 +-382.08 89.3507 91.4332 +-382.61 86.8877 88.9129 +-381.868 84.1514 86.1128 +-380.418 81.2873 83.1819 +-380.843 78.8453 80.683 +-380.467 76.2495 78.0267 +-382.85 74.2066 75.9362 +-381.83 71.5067 73.1733 +-381.547 68.9653 70.5727 +-382.394 66.6355 68.1886 +-381.947 64.0886 65.5824 +-380.297 61.3636 62.7939 +-381.732 59.1477 60.5263 +-381.869 56.73 58.0523 +-381.681 54.2734 55.5384 +-381.166 51.7834 52.9903 +-381.208 49.3802 50.5312 +-380.924 46.9441 48.0382 +-380.509 44.5037 45.541 +-382.038 42.2906 43.2763 +-379.189 39.6076 40.5307 +-380.659 37.3906 38.2621 +-379.823 34.949 35.7635 +-380.542 32.6566 33.4177 +-380.637 30.3107 31.0172 +-380.405 27.9441 28.5954 +-380.739 25.6229 26.2201 +-378.853 23.1657 23.7057 +-378.729 20.8323 21.3178 +-379.872 18.5655 18.9982 +-379.391 16.218 16.596 +-379.579 13.9034 14.2275 +-378.839 11.5604 11.8298 +-378.269 9.23231 9.4475 +-145.65 2.66565 2.72778 +-145.478 1.77478 1.81614 +-144.694 0.882541 0.903111 +96.9 0 0 +96.8963 0.596435 0.599422 +97.7851 1.20391 1.20994 +96.8668 1.78913 1.79809 +97.7404 2.40744 2.4195 +96.9077 2.98434 2.99929 +97.666 3.61025 3.62833 +96.7193 4.1725 4.1934 +97.5618 4.81195 4.83604 +96.701 5.368 5.39488 +97.4278 6.01219 6.04229 +96.5534 6.55756 6.5904 +97.3637 7.21794 7.25409 +97.37 7.82496 7.86414 +97.1703 8.41539 8.45754 +97.0625 9.01317 9.0583 +96.9472 9.61024 9.65836 +96.7258 10.1962 10.2473 +96.5959 10.7912 10.8452 +96.2615 11.362 11.4189 +96.9051 12.0521 12.1125 +96.7523 12.6481 12.7115 +96.5921 13.2432 13.3095 +96.4246 13.8372 13.9065 +96.3475 14.4448 14.5172 +96.1652 15.0373 15.1126 +96.7549 15.7556 15.8345 +96.5563 16.3505 16.4324 +96.3504 16.9442 17.0291 +97.0084 17.6956 17.7842 +96.6892 18.2738 18.3653 +96.5558 18.8871 18.9816 +97.1836 19.6556 19.754 +96.9367 20.2531 20.3545 +96.6824 20.849 20.9534 +97.1838 21.6129 21.7211 +96.9127 22.2103 22.3215 +97.4877 23.0074 23.1226 +97.1048 23.5836 23.7017 +96.9035 24.2039 24.3251 +97.5401 25.0407 25.1661 +97.1329 25.6154 25.7437 +96.8123 26.2124 26.3436 +97.3217 27.0399 27.1753 +96.9834 27.6378 27.7762 +97.4693 28.4767 28.6193 +97.1133 29.0755 29.2211 +96.8415 29.7003 29.8491 +97.3839 30.5821 30.7353 +97.0019 31.1804 31.3365 +96.6124 31.7763 31.9354 +96.9377 32.6127 32.776 +96.6204 33.239 33.4055 +96.9214 34.0842 34.2549 +97.2088 34.9357 35.1106 +96.7729 35.5327 35.7106 +96.3296 36.1269 36.3079 +96.6699 37.0215 37.2068 +96.9079 37.8886 38.0783 +96.5224 38.5184 38.7113 +96.6484 39.3579 39.555 +96.244 39.9871 40.1873 +96.4313 40.8686 41.0732 +96.6041 41.7554 41.9645 +96.6775 42.6101 42.8234 +96.1466 43.2035 43.4199 +96.3632 44.1394 44.3604 +96.3972 45.0033 45.2287 +96.0026 45.6738 45.9026 +95.9283 46.5028 46.7356 +96.2504 47.5364 47.7745 +96.2285 48.4138 48.6562 +96.1921 49.2945 49.5413 +96.3021 50.2623 50.514 +96.3953 51.2352 51.4917 +96.3924 52.17 52.4313 +96.4525 53.1522 53.4184 +96.4173 54.0951 54.366 +95.7444 54.6865 54.9604 +95.6814 55.6327 55.9112 +95.679 56.6275 56.9111 +95.6591 57.6266 57.9152 +95.5462 58.5834 58.8767 +96.1659 60.0105 60.311 +95.4198 60.6001 60.9036 +95.2562 61.5664 61.8747 +95.2223 62.6314 62.945 +95.7494 64.089 64.41 +95.5283 65.0679 65.3937 +95.4329 66.1478 66.4791 +95.2473 67.1816 67.518 +95.1134 68.2684 68.6102 +95.4461 69.7138 70.0629 +95.1994 70.7589 71.1132 +94.9342 71.8063 72.1659 +95.3258 73.3764 73.7438 +94.9496 74.3794 74.7518 +95.2848 75.965 76.3454 +94.8005 76.9214 77.3066 +94.8194 78.306 78.6981 +94.8755 79.7512 80.1506 +94.394 80.7676 81.1721 +94.6498 82.4421 82.8549 +94.8712 84.125 84.5463 +94.3193 85.1506 85.577 +93.4449 85.8961 86.3263 +91.4759 85.6232 86.0519 +91.4837 87.2031 87.6398 +91.3418 88.6759 89.1199 +91.5769 90.5556 91.0091 +91.3707 92.0403 92.5012 +93.627 96.0869 96.568 +93.8326 98.1218 98.6131 +93.5533 99.6954 100.195 +93.3511 101.391 101.899 +93.1678 103.152 103.668 +92.9478 104.918 105.443 +93.057 107.109 107.646 +92.7584 108.887 109.433 +92.8795 111.216 111.773 +93.05 113.677 114.247 +92.9696 115.903 116.484 +92.8895 118.199 118.79 +92.8074 120.564 121.167 +92.6267 122.874 123.49 +92.6268 125.504 126.132 +91.6607 126.886 127.522 +95.4417 135.02 135.696 +112.179 162.229 163.041 +110.168 162.913 163.729 +106.88 161.667 162.477 +105.249 162.897 163.712 +102.213 161.927 162.738 +100.445 162.938 163.754 +97.0967 161.343 162.151 +95.7091 162.977 163.793 +92.7151 161.86 162.67 +90.6724 162.358 163.171 +91.2046 167.586 168.425 +90.9489 171.576 172.436 +90.8406 176.04 176.921 +89.5604 178.388 179.281 +87.8708 179.999 180.9 +85.8944 181.068 181.975 +89.7385 194.805 195.781 +89.1593 199.454 200.452 +86.3958 199.32 200.318 +84.0401 200.115 201.117 +80.8444 198.862 199.858 +78.675 200.1 201.102 +75.5234 198.805 199.8 +73.2862 199.877 200.878 +70.2057 198.609 199.604 +68.1894 200.337 201.34 +65.1458 199.031 200.028 +62.8757 200.044 201.046 +59.8162 198.491 199.485 +57.5974 199.681 200.681 +54.724 198.575 199.569 +52.4656 199.667 200.666 +49.5245 198.106 199.098 +47.3357 199.517 200.516 +44.49 198.129 199.121 +42.2587 199.442 200.44 +39.4417 197.948 198.939 +37.2261 199.442 200.44 +34.4403 197.843 198.834 +32.2176 199.449 200.448 +29.5606 198.377 199.371 +27.2969 199.956 200.957 +24.5779 198.149 199.141 +22.1804 198.785 199.78 +19.6643 198.35 199.344 +17.3012 199.52 200.519 +14.6959 197.788 198.778 +12.353 199.561 200.561 +9.78931 197.727 198.717 +7.37666 198.696 199.691 +4.89715 197.888 198.879 +2.46263 199.039 200.035 +1.712e-14 197.213 198.2 +-2.4635 199.109 200.106 +-4.88144 197.253 198.241 +-7.37405 198.625 199.62 +-9.77535 197.445 198.433 +-12.2919 198.575 199.57 +-14.6488 197.153 198.141 +-17.2523 198.957 199.953 +-19.6016 197.717 198.707 +-22.1647 198.644 199.639 +-24.4995 197.516 198.505 +-27.1243 198.692 199.687 +-29.3725 197.115 198.102 +-32.0365 198.328 199.321 +-34.2697 196.863 197.849 +-37.0303 198.393 199.386 +-39.2468 196.97 197.956 +-42.0222 198.325 199.318 +-44.1771 196.735 197.72 +-47.0551 198.334 199.327 +-49.1945 196.787 197.772 +-51.9553 197.725 198.715 +-54.0371 196.082 197.064 +-57.079 197.884 198.875 +-59.1925 196.422 197.406 +-62.0965 197.565 198.554 +-64.201 196.144 197.126 +-67.3957 198.005 198.996 +-69.4316 196.419 197.403 +-72.5351 197.828 198.818 +-74.8246 196.965 197.951 +-77.6327 197.449 198.438 +-79.8797 196.489 197.473 +-82.9893 197.613 198.602 +-85.2264 196.622 197.607 +-88.1669 197.234 198.221 +-90.4493 196.348 197.331 +-93.8587 197.857 198.848 +-95.7496 196.138 197.121 +-99.0739 197.337 198.325 +-101.443 196.587 197.571 +-104.887 197.871 198.862 +-106.829 196.296 197.279 +-110.354 197.6 198.589 +-112.719 196.782 197.768 +-113.389 193.084 194.05 +-113.859 189.196 190.144 +-114.68 186.03 186.962 +-117.018 185.382 186.31 +-118.271 183.05 183.967 +-121.334 183.53 184.449 +-123.298 182.33 183.243 +-127.917 184.988 185.914 +-139.928 197.954 198.945 +-144.551 200.102 201.104 +-144.851 196.264 197.247 +-144.832 192.126 193.089 +-145.772 189.369 190.317 +-148.643 189.142 190.089 +-156.591 195.219 196.196 +-161.15 196.874 197.86 +-539.006 645.42 648.652 +-544.962 639.72 642.924 +-162.758 187.336 188.274 +-165.759 187.104 188.041 +-165.757 183.519 184.438 +-172.051 186.87 187.805 +-563.804 600.817 603.826 +-569.929 595.979 598.964 +-572.41 587.45 590.391 +-578.108 582.344 585.26 +-580.471 573.997 576.872 +-586.139 569.033 571.883 +-588.28 560.754 563.562 +-594.353 556.323 559.109 +-596.951 548.727 551.474 +-603.471 544.809 547.537 +-604.835 536.327 539.012 +-611.196 532.364 535.03 +-613.37 524.827 527.455 +-619.262 520.545 523.151 +-621.652 513.388 515.959 +-627.586 509.223 511.773 +-630.218 502.435 504.951 +-636.076 498.274 500.77 +-638.703 491.636 494.098 +-143.083 108.226 108.768 +-143.04 106.318 106.85 +-143.794 105.027 105.553 +-143.827 103.233 103.75 +-143.118 100.947 101.452 +-143.007 99.1226 99.619 +-147.177 100.248 100.75 +-149.355 99.969 100.47 +-687.619 452.274 454.538 +-699.971 452.408 454.673 +-706.508 448.695 450.942 +-709.336 442.647 444.864 +-715.993 439.005 441.203 +-718.432 432.795 434.962 +-725.367 429.309 431.458 +-728.336 423.481 425.602 +-737.512 421.246 423.355 +-735.808 412.826 414.893 +-725.679 399.901 401.903 +-727.902 393.959 395.932 +-734.904 390.609 392.565 +-737.539 384.938 386.866 +-744.781 381.669 383.581 +-748.416 376.538 378.423 +-388.114 191.684 192.643 +-388.74 188.448 189.392 +-387.658 184.431 185.355 +-769.093 359.053 360.851 +-776.525 355.689 357.47 +-386.779 173.8 174.67 +-383.403 168.982 169.828 +-384.2 166.063 166.895 +-383.925 162.712 163.527 +-802.608 333.464 335.134 +-135.966 55.3691 55.6463 +-814.044 324.854 326.48 +-822.055 321.404 323.013 +-826.264 316.432 318.017 +-413.926 155.237 156.014 +-838.403 307.841 309.383 +-849.218 305.199 306.727 +-847.055 297.883 299.374 +-853.495 293.616 295.087 +-866.031 291.358 292.817 +-875.403 287.924 289.366 +-880.843 283.139 284.557 +-388.622 122.042 122.653 +-383.515 117.62 118.209 +-382.746 114.594 115.167 +-382.579 111.774 112.334 +-383.483 109.283 109.83 +-382.402 106.247 106.779 +-382.021 103.434 103.952 +-382.35 100.832 101.337 +-381.891 98.0399 98.5309 +-381.581 95.3089 95.7861 +-381.8 92.7266 93.191 +-382.08 90.1719 90.6234 +-381.944 87.5332 87.9716 +-380.628 84.6491 85.073 +-380.801 82.1169 82.5281 +-380.076 79.4098 79.8075 +-380.467 76.9503 77.3357 +-382.272 74.7751 75.1495 +-381.541 72.1096 72.4707 +-382.322 69.7404 70.0897 +-381.326 67.0603 67.3961 +-381.655 64.6283 64.9519 +-382.148 62.2291 62.5407 +-382.025 59.7371 60.0362 +-381.869 57.2514 57.5381 +-381.681 54.7722 55.0465 +-381.166 52.2593 52.521 +-381.503 49.8727 50.1224 +-382.401 47.5593 47.7974 +-380.805 44.9476 45.1727 +-381.149 42.5799 42.7932 +-380.376 40.0967 40.2975 +-380.065 37.6754 37.864 +-380.219 35.307 35.4838 +-381.038 32.9997 33.1649 +-380.141 30.5493 30.7023 +-378.217 28.0388 28.1792 +-379.047 25.7435 25.8724 +-380.048 23.4524 23.5699 +-379.427 21.0625 21.1679 +-378.975 18.6918 18.7854 +-379.591 16.3757 16.4577 +-377.981 13.9722 14.0422 +-379.538 11.6882 11.7467 +-379.569 9.34912 9.39594 +-147.649 2.72708 2.74073 +-146.078 1.79847 1.80748 +-145.494 0.895575 0.90006 +96.9 0 0 +96.8963 0.601818 0.594017 +96.8852 1.20359 1.18799 +96.6669 1.80155 1.77819 +96.841 2.40682 2.37561 +96.8078 3.00818 2.96918 +96.8671 3.61303 3.5662 +96.7193 4.21016 4.15558 +97.5618 4.85538 4.79244 +96.701 5.41645 5.34623 +96.5313 6.01063 5.93271 +96.5534 6.61675 6.53097 +97.4631 7.29056 7.19605 +97.37 7.89558 7.79323 +97.1703 8.49135 8.38127 +97.0625 9.09452 8.97662 +96.9472 9.69698 9.57127 +96.7258 10.2883 10.1549 +96.5959 10.8886 10.7474 +96.2615 11.4646 11.3159 +96.0188 12.0497 11.8935 +96.7523 12.7623 12.5968 +96.5921 13.3627 13.1895 +96.4246 13.9621 13.7811 +96.2497 14.5604 14.3717 +96.0675 15.1577 14.9612 +95.878 15.7537 15.5495 +96.4591 16.4815 16.2679 +96.4474 17.1144 16.8925 +96.2339 17.7128 17.4831 +96.7858 18.4571 18.2179 +96.5558 19.0575 18.8105 +97.0874 19.8134 19.5566 +96.8408 20.4156 20.1509 +96.5868 21.0163 20.7438 +96.4208 21.6368 21.3563 +96.9127 22.4107 22.1202 +96.6342 23.0118 22.7135 +96.3483 23.6111 23.305 +96.8093 24.3987 24.0824 +97.5401 25.2667 24.9392 +97.1329 25.8466 25.5116 +96.8123 26.4489 26.1061 +97.3217 27.2839 26.9302 +96.9834 27.8873 27.5258 +97.4693 28.7337 28.3612 +97.1133 29.338 28.9576 +97.6669 30.2238 29.832 +97.3839 30.8582 30.4581 +97.0019 31.4618 31.054 +96.703 32.0932 31.6771 +97.0279 32.9376 32.5106 +97.3394 33.7886 33.3506 +96.9214 34.3919 33.946 +97.2088 35.251 34.794 +96.7729 35.8534 35.3886 +97.1242 36.7538 36.2773 +96.6699 37.3556 36.8713 +96.9953 38.2651 37.769 +96.4354 38.831 38.3276 +96.735 39.7487 39.2334 +96.1578 40.3119 39.7893 +96.4313 41.2375 40.7029 +96.6894 42.1694 41.6228 +96.7623 43.0324 42.4745 +96.9057 43.9376 43.368 +96.1955 44.4603 43.8839 +96.564 45.4881 44.8984 +95.8367 46.0065 45.4101 +95.9283 46.9225 46.3142 +96.0865 47.8839 47.2631 +96.2285 48.8508 48.2175 +96.1921 49.7394 49.0946 +95.5786 50.3349 49.6824 +95.6765 51.3121 50.6469 +96.3131 52.5976 51.9157 +95.6645 53.1937 52.5042 +95.7912 54.2289 53.5259 +95.7444 55.1801 54.4648 +95.6814 56.1348 55.4071 +95.6023 57.0929 56.3528 +95.583 58.1005 57.3473 +95.6217 59.1588 58.3919 +96.1659 60.5521 59.7672 +95.4198 61.1471 60.3544 +95.9198 62.5548 61.7439 +95.2954 63.2452 62.4253 +95.6769 64.6185 63.7808 +95.5283 65.6552 64.8041 +95.4329 66.7449 65.8796 +95.318 67.8383 66.9589 +95.6741 69.2907 68.3924 +95.5155 70.3942 69.4816 +95.1994 71.3975 70.4719 +94.866 72.4024 71.4638 +95.2582 73.986 73.0269 +94.9496 75.0507 74.0778 +95.2185 76.5972 75.6043 +94.8661 77.6691 76.6622 +94.6895 78.9046 77.8817 +94.8112 80.417 79.3745 +94.4576 81.5514 80.4942 +95.0274 83.5179 82.4352 +94.9335 84.9406 83.8394 +93.2727 84.9662 83.8647 +91.6186 84.9776 83.8759 +91.4759 86.396 85.276 +91.8406 88.3333 87.1881 +91.5769 89.7068 88.5439 +92.1576 91.9523 90.7602 +91.6002 93.1045 91.8975 +91.9277 95.1948 93.9607 +93.7207 98.8893 97.6073 +93.4981 100.535 99.2321 +93.4056 102.366 101.039 +93.1678 104.083 102.733 +93.4248 106.408 105.028 +93.1615 108.198 106.795 +93.2219 110.419 108.987 +93.2348 112.649 111.189 +92.8 114.395 112.912 +92.5756 116.454 114.944 +92.2108 118.394 116.859 +92.8074 121.652 120.075 +92.5798 123.92 122.313 +92.7653 126.826 125.182 +92.4325 129.11 127.436 +91.6937 130.889 129.192 +96.0033 140.089 138.273 +108.962 162.585 160.477 +105.781 161.45 159.357 +103.839 162.165 160.063 +100.83 161.178 159.089 +99.0891 162.19 160.087 +96.0808 161.096 159.007 +94.1019 161.687 159.59 +91.5164 161.209 159.119 +90.3059 163.162 161.047 +91.1688 169.032 166.841 +90.9489 173.125 170.881 +90.2249 176.425 174.138 +88.4588 177.784 175.479 +86.6662 179.134 176.812 +86.3703 183.715 181.334 +89.5222 196.09 193.548 +88.5579 199.897 197.305 +85.0802 198.057 195.489 +82.9609 199.328 196.744 +79.7695 197.988 195.422 +77.7931 199.642 197.054 +74.5399 197.987 195.42 +72.46 199.407 196.822 +69.359 197.985 195.418 +67.1622 199.1 196.519 +64.1335 197.707 195.144 +62.0532 199.209 196.627 +59.1717 198.125 195.557 +56.8398 198.834 196.256 +54.0753 197.991 195.425 +51.9007 199.299 196.716 +48.9167 197.441 194.882 +46.7745 198.931 196.352 +43.9737 197.597 195.035 +41.7562 198.848 196.27 +38.9685 197.338 194.78 +36.7823 198.843 196.265 +34.0503 197.368 194.809 +31.8214 198.774 196.197 +29.1843 197.62 195.058 +26.8368 198.36 195.789 +24.2293 197.101 194.546 +21.8979 198.025 195.458 +19.3993 197.443 194.884 +17.0264 198.124 195.556 +14.5023 196.943 194.39 +12.1611 198.235 195.665 +9.67763 197.235 194.679 +7.28766 198.071 195.503 +4.83432 197.112 194.557 +2.42598 197.846 195.281 +1.69118e-14 196.573 194.025 +-2.43296 198.415 195.843 +-4.81861 196.472 193.925 +-7.30075 198.426 195.854 +-9.63575 196.382 193.836 +-12.1349 197.808 195.243 +-14.4761 196.588 194.039 +-17.057 198.48 195.907 +-19.3644 197.088 194.533 +-21.9215 198.238 195.668 +-24.2031 196.888 194.336 +-26.7889 198.006 195.439 +-29.038 196.628 194.079 +-31.6516 197.714 195.151 +-33.8675 196.309 193.764 +-36.469 197.149 194.594 +-38.7597 196.281 193.737 +-41.431 197.3 194.742 +-43.6765 196.262 193.718 +-46.1968 196.474 193.927 +-48.6041 196.18 193.637 +-51.3357 197.13 194.575 +-53.4647 195.756 193.218 +-56.3813 197.23 194.673 +-58.4856 195.828 193.289 +-61.3606 196.986 194.432 +-63.5037 195.765 193.227 +-66.3685 196.747 194.197 +-68.3913 195.223 192.692 +-71.4334 196.582 194.034 +-73.7117 195.787 193.249 +-76.7776 197.036 194.482 +-78.7772 195.526 192.991 +-82.1372 197.349 194.791 +-83.9984 195.538 193.003 +-87.2047 196.842 194.29 +-89.3986 195.819 193.281 +-92.5895 196.944 194.391 +-94.8054 195.957 193.417 +-98.0057 196.971 194.418 +-100.178 195.887 193.347 +-103.451 196.924 194.371 +-105.504 195.609 193.073 +-108.888 196.734 194.184 +-111.183 195.853 193.314 +-113.58 195.154 192.625 +-114.719 192.345 189.852 +-115.797 189.537 187.08 +-118.32 189.136 186.684 +-119.556 186.71 184.29 +-122.771 187.379 184.95 +-125.193 186.803 184.381 +-132.739 193.694 191.183 +-140.106 199.995 197.403 +-142.144 198.547 195.973 +-145.312 198.667 196.091 +-145.301 194.489 191.968 +-144.436 189.326 186.872 +-145.879 187.302 184.873 +-151.322 190.353 187.885 +-157.15 193.72 191.209 +-542.203 655.109 646.616 +-547.898 648.972 640.559 +-165.684 192.425 189.931 +-552.176 628.909 620.756 +-168.336 188.057 185.619 +-564.464 618.612 610.593 +-567.667 610.395 602.482 +-573.005 604.604 596.766 +-575.752 596.212 588.483 +-581.033 590.573 582.917 +-583.723 582.423 574.873 +-589.372 577.336 569.851 +-592.027 569.42 562.038 +-597.422 564.243 556.929 +-600.056 556.559 549.344 +-605.749 551.802 544.649 +-608.757 544.677 537.616 +-614.783 540.322 533.318 +-617.378 533.024 526.114 +-622.733 528.188 521.34 +-625.678 521.377 514.618 +-630.801 516.451 509.756 +-633.664 509.742 503.133 +-639.354 505.364 498.812 +-142.144 110.402 108.971 +-143.902 109.827 108.404 +-143.453 107.587 106.192 +-143.447 105.719 104.349 +-142.845 103.453 102.112 +-142.694 101.556 100.239 +-143.221 100.167 98.8689 +-149.407 102.685 101.354 +-151.458 102.292 100.966 +-701.222 465.384 459.351 +-703.215 458.607 452.662 +-710.149 455.079 449.18 +-713.605 449.331 443.506 +-720.144 445.536 439.76 +-723.602 439.844 434.142 +-731.726 436.98 431.316 +-733.969 430.608 425.026 +-735.569 423.928 418.433 +-726.573 411.325 405.993 +-729.856 405.833 400.572 +-732.9 400.244 395.056 +-739.696 396.705 391.562 +-742.362 390.953 385.885 +-748.826 387.206 382.186 +-752.568 382.045 377.092 +-759.927 378.703 373.794 +-387.339 189.464 187.008 +-385.171 184.902 182.505 +-387.674 182.621 180.253 +-385.285 178.074 175.765 +-783.426 355.21 350.606 +-385.777 171.564 169.339 +-385.393 168.083 165.904 +-382.982 163.777 161.654 +-384.89 161.356 159.264 +-814.324 334.608 330.27 +-137.603 55.4078 54.6895 +-825.991 325.857 321.633 +-831.449 321.292 317.127 +-838.8 317.419 313.304 +-414.234 153.47 151.48 +-880.136 319.165 315.028 +-884.911 314.004 309.934 +-882.076 306.188 302.218 +-864.496 293.467 289.663 +-877.215 291.124 287.35 +-885.756 287.288 283.564 +-383.141 121.406 119.832 +-382.964 118.512 116.975 +-383.482 115.851 114.349 +-384.057 113.219 111.752 +-385.801 110.936 109.498 +-382.96 107.362 105.97 +-380.527 103.959 102.612 +-381.788 101.592 100.275 +-382.173 98.9981 97.7148 +-381.77 96.2168 94.9695 +-381.422 93.471 92.2593 +-383.028 91.2114 90.029 +-381.088 88.1254 86.983 +-381.582 85.6266 84.5166 +-380.992 82.9001 81.8254 +-380.268 80.1664 79.1272 +-379.794 77.5075 76.5027 +-380.923 75.1838 74.2091 +-382.7 72.9811 72.035 +-382.418 70.3877 69.4752 +-382.685 67.9066 67.0263 +-381.363 65.1618 64.317 +-382.148 62.7907 61.9767 +-381.439 60.1839 59.4037 +-381.869 57.7682 57.0193 +-381.681 55.2666 54.5501 +-381.46 52.7718 52.0877 +-381.503 50.3228 49.6704 +-380.924 47.8032 47.1834 +-381.495 45.4355 44.8465 +-379.667 42.7972 42.2424 +-380.376 40.4586 39.9342 +-380.659 38.0749 37.5813 +-380.12 35.6163 35.1546 +-379.649 33.1761 32.746 +-380.538 30.8572 30.4572 +-380.405 28.4555 28.0866 +-379.445 26.0031 25.666 +-379.65 23.6393 23.3329 +-379.626 21.2637 20.9881 +-379.872 18.9052 18.6601 +-379.591 16.5235 16.3093 +-378.481 14.1169 13.9339 +-380.038 11.8092 11.6561 +-378.569 9.40867 9.2867 +-144.151 2.68649 2.65166 +-147.178 1.82836 1.80466 +-145.494 0.903659 0.891944 +96.9 0 0 +96.8963 0.607153 0.588563 +96.8852 1.21426 1.17708 +96.8668 1.82128 1.76551 +96.841 2.42815 2.3538 +96.8078 3.03484 2.94192 +96.7672 3.6413 3.52981 +96.7193 4.24748 4.11743 +96.664 4.85334 4.70474 +97.5982 5.51517 5.34631 +97.5275 6.12648 5.93891 +97.4493 6.73733 6.53105 +97.3637 7.34765 7.12268 +97.2707 7.95745 7.71381 +97.1703 8.56662 8.30433 +97.0625 9.17513 8.89421 +96.8482 9.77295 9.47372 +96.7258 10.3795 10.0617 +96.5959 10.9851 10.6488 +97.1491 11.6729 11.3155 +96.8066 12.2562 11.8809 +96.7523 12.8754 12.4812 +96.494 13.4674 13.0551 +96.4246 14.0858 13.6546 +96.2497 14.6895 14.2397 +96.9462 15.4319 14.9594 +96.7549 16.0387 15.5476 +96.5563 16.6443 16.1347 +96.3504 17.2487 16.7206 +96.2339 17.8698 17.3226 +96.7858 18.6207 18.0506 +96.5558 19.2265 18.6378 +96.3184 19.8307 19.2236 +96.8408 20.5966 19.9659 +96.6824 21.2236 20.5738 +96.4208 21.8286 21.1603 +96.8176 22.5872 21.8956 +96.6342 23.2157 22.5049 +97.1993 24.0308 23.295 +96.9035 24.6388 23.8845 +96.5064 25.2206 24.4484 +96.1962 25.8243 25.0336 +97.5592 26.8892 26.066 +97.3217 27.5258 26.683 +96.9834 28.1345 27.2731 +97.4693 28.9884 28.1009 +97.1133 29.598 28.6918 +96.9332 30.2627 29.3361 +97.3839 31.1317 30.1785 +97.0019 31.7407 30.7689 +96.6124 32.3473 31.3569 +97.0279 33.2296 32.2122 +97.3394 34.0881 33.0444 +96.8319 34.6647 33.6033 +97.2979 35.5961 34.5062 +96.7729 36.1712 35.0637 +97.2125 37.1132 35.9769 +96.582 37.6524 36.4996 +96.9079 38.5695 37.3885 +96.4354 39.1752 37.9757 +96.735 40.101 38.8732 +96.244 40.7056 39.4593 +96.4313 41.603 40.3292 +96.6041 42.5057 41.2043 +96.7623 43.4138 42.0846 +96.1466 43.9799 42.6333 +96.4471 44.9717 43.5948 +96.564 45.8913 44.4862 +96.0026 46.4946 45.071 +96.67 47.7044 46.2438 +96.0865 48.3083 46.8292 +96.2285 49.2838 47.7748 +96.1921 50.1803 48.6439 +95.659 50.8238 49.2677 +95.6765 51.7669 50.1819 +95.6784 52.7141 51.1001 +95.6645 53.6653 52.0221 +96.3391 55.0225 53.3378 +95.7444 55.6692 53.9648 +95.6814 56.6324 54.8984 +95.679 57.6451 55.8802 +95.6591 58.6621 56.866 +96.2255 60.06 58.2211 +96.1659 61.0889 59.2185 +96.0886 62.1215 60.2195 +95.33 62.7212 60.8008 +95.8073 64.1486 62.1845 +95.6769 65.1913 63.1953 +95.5283 66.2372 64.2091 +95.3616 67.2862 65.226 +95.1766 68.3381 66.2457 +95.1835 69.5463 67.417 +95.5155 71.0181 68.8437 +95.1994 72.0304 69.825 +95.548 73.5698 71.3173 +95.1907 74.5887 72.3049 +94.9496 75.7159 73.3977 +95.2185 77.2762 74.9102 +94.6693 78.1952 75.8011 +94.8194 79.7131 77.2725 +94.4255 80.7995 78.3256 +94.5848 82.3856 79.8631 +94.9015 84.1469 81.5705 +94.311 85.1313 82.5247 +92.2877 84.8139 82.2171 +91.436 85.5599 82.9402 +91.2352 86.932 84.2704 +91.8406 89.1162 86.3877 +91.5182 90.4438 87.6746 +91.1704 91.7736 88.9637 +91.7149 94.0468 91.1673 +90.9082 94.9731 92.0652 +91.9872 97.9205 94.9224 +93.4981 101.427 98.3211 +93.2967 103.153 99.9944 +93.1678 105.005 101.79 +92.8948 106.742 103.474 +93.1615 109.157 105.815 +93.2219 111.398 107.987 +92.8795 113.215 109.749 +92.95 115.596 112.057 +91.3938 115.986 112.435 +91.5805 118.627 114.995 +92.7597 122.667 118.911 +92.6267 125.082 121.252 +92.7653 127.95 124.032 +92.3417 130.126 126.142 +91.6937 132.049 128.006 +92.6278 136.362 132.186 +107.413 161.693 156.742 +104.852 161.449 156.506 +102.802 161.969 157.01 +100.017 161.295 156.357 +98.0524 161.916 156.958 +95.104 160.872 155.946 +93.0303 161.262 156.325 +90.3176 160.508 155.593 +91.552 166.879 161.77 +91.1688 170.53 165.309 +91.264 175.265 169.899 +89.5751 176.707 171.296 +88.7926 180.037 174.524 +85.7221 178.753 173.28 +90.178 193.515 187.59 +89.584 197.964 191.903 +87.4753 199.203 193.104 +84.3785 198.165 192.097 +82.052 198.892 192.802 +79.1906 198.294 192.222 +76.9112 199.129 193.032 +74.0222 198.355 192.282 +71.6588 198.95 192.859 +68.7784 198.068 192.003 +66.602 199.189 193.09 +63.6387 197.92 191.86 +61.4256 198.942 192.851 +58.6519 198.125 192.059 +56.1819 198.274 192.204 +53.6364 198.125 192.059 +51.1717 198.242 192.172 +48.4999 197.495 191.448 +46.2133 198.287 192.215 +43.5044 197.221 191.183 +41.2979 198.409 192.334 +38.6345 197.38 191.337 +36.3385 198.185 192.117 +33.8553 197.977 191.915 +31.5271 198.681 192.598 +28.9126 197.515 191.467 +26.626 198.546 192.467 +24.0201 197.131 191.096 +21.7018 197.99 191.928 +19.2109 197.259 191.219 +16.8616 197.946 191.885 +14.4029 197.327 191.285 +12.0477 198.126 192.06 +9.57642 196.903 190.874 +7.21698 197.889 191.83 +4.7872 196.921 190.892 +2.40154 197.59 191.54 +1.68016e-14 197.023 190.99 +-2.39718 197.231 191.192 +-4.79243 197.136 191.1 +-7.20651 197.602 191.551 +-9.55897 196.544 190.526 +-12.0215 197.696 191.643 +-14.3819 197.039 191.006 +-16.8311 197.587 191.538 +-19.183 196.973 190.942 +-21.6469 197.489 191.442 +-23.9853 196.846 190.819 +-26.463 197.331 191.289 +-28.7558 196.443 190.429 +-31.3686 197.683 191.63 +-33.5384 196.125 190.12 +-36.1558 197.188 191.151 +-38.37 196.03 190.028 +-41.0615 197.273 191.233 +-43.2541 196.087 190.083 +-45.7677 196.374 190.362 +-48.1874 196.222 190.214 +-50.7526 196.618 190.598 +-53.1594 196.363 190.351 +-55.6835 196.515 190.498 +-58.0905 196.229 190.221 +-60.7113 196.629 190.608 +-63.0538 196.101 190.097 +-65.6448 196.326 190.315 +-68.0042 195.838 189.842 +-70.8325 196.656 190.635 +-73.0646 195.789 189.794 +-75.9224 196.568 190.55 +-78.3086 196.085 190.081 +-81.2 196.827 190.8 +-83.2967 195.623 189.634 +-86.483 196.943 190.913 +-88.8733 196.394 190.381 +-91.8597 197.123 191.088 +-93.9915 195.997 189.996 +-96.9041 196.484 190.468 +-99.2884 195.869 189.872 +-102.436 196.719 190.696 +-104.787 196.003 190.001 +-107.715 196.341 190.329 +-110.322 196.058 190.055 +-113.427 196.619 190.599 +-115.188 194.844 188.878 +-116.674 192.666 186.767 +-118.93 191.796 185.924 +-121.09 190.783 184.941 +-124.165 191.188 185.334 +-127.259 191.569 185.703 +-132.607 195.217 189.24 +-138.589 199.584 193.473 +-140.919 198.58 192.499 +-144.851 199.791 193.674 +-144.973 195.769 189.775 +-144.77 191.446 185.584 +-145.685 188.71 182.933 +-149.303 189.478 183.677 +-152.4 189.53 183.727 +-160.788 195.992 189.991 +-165.173 197.378 191.334 +-566.023 663.204 642.898 +-573.691 659.206 639.022 +-559.007 630.031 610.741 +-566.098 625.902 606.739 +-570.041 618.38 599.446 +-574.627 611.689 592.961 +-578.301 604.16 585.662 +-583.04 597.867 579.561 +-585.813 589.69 571.635 +-591.547 584.603 566.704 +-594.763 577.122 559.452 +-599.528 571.252 553.762 +-603.222 564.455 547.172 +-608.274 559.013 541.897 +-611.372 551.864 534.967 +-616.86 546.952 530.206 +-620.24 540.241 523.7 +-625.432 535.179 518.793 +-628.601 528.456 512.276 +-633.819 523.521 507.492 +-636.513 516.573 500.756 +-142.391 113.547 110.071 +-143.09 112.121 108.688 +-143.765 110.695 107.306 +-143.866 108.853 105.52 +-142.891 106.243 102.99 +-142.845 104.37 101.175 +-143.613 103.116 99.9589 +-147.429 104.024 100.839 +-149.047 103.346 100.182 +-689.106 469.535 455.159 +-703.489 471.027 456.605 +-707.123 465.243 450.998 +-712.676 460.746 446.639 +-716.151 454.931 441.002 +-722.483 450.945 437.138 +-725.96 445.188 431.558 +-733.564 441.961 428.429 +-737.056 436.252 422.895 +-728.497 423.574 410.605 +-726.886 415.15 402.439 +-731.904 410.579 398.008 +-735.439 405.191 392.785 +-741.773 401.345 389.057 +-745.416 396.041 383.915 +-751.415 391.989 379.987 +-754.929 386.64 374.802 +-761.32 382.76 371.041 +-2700.25 1332.51 1291.71 +-386.166 187.022 181.296 +-385.505 183.208 177.599 +-386.627 180.278 174.758 +-787.475 360.211 349.182 +-384.59 172.552 167.268 +-385.052 169.422 164.235 +-384.268 165.784 160.708 +-382.219 161.656 156.707 +-2837.53 1176.29 1140.27 +-136.472 55.4392 53.7418 +-136.003 54.1295 52.4722 +-834.173 325.202 315.245 +-842.067 321.48 311.637 +-414.145 154.796 150.057 +-884.057 323.428 313.526 +-891.265 319.062 309.293 +-895.469 313.592 303.99 +-877.313 300.458 291.258 +-388.625 130.118 126.134 +-889.123 290.937 282.029 +-382.684 122.337 118.591 +-382.689 119.476 115.818 +-382.194 116.485 112.918 +-383.225 113.975 110.486 +-387.007 112.269 108.832 +-385.565 109.05 105.712 +-381.368 105.112 101.894 +-381.788 102.493 99.3547 +-383.019 100.096 97.0314 +-383.278 97.4531 94.4693 +-382.746 94.627 91.7297 +-382.933 91.9976 89.1808 +-380.803 88.8398 86.1197 +-381.582 86.3856 83.7407 +-380.992 83.6349 81.0742 +-378.83 80.5711 78.1042 +-380.083 78.2541 75.8581 +-381.79 76.0233 73.6956 +-381.444 73.3867 71.1398 +-381.837 70.9037 68.7328 +-382.685 68.5085 66.4109 +-381.363 65.7394 63.7266 +-381.174 63.1858 61.2512 +-381.732 60.764 58.9035 +-381.869 58.2802 56.4958 +-381.093 55.6706 53.9661 +-380.577 53.1162 51.4899 +-379.733 50.5333 48.9861 +-380.628 48.1895 46.714 +-380.903 45.7672 44.3659 +-381.248 43.3563 42.0288 +-381.365 40.9234 39.6704 +-380.956 38.4424 37.2653 +-379.624 35.8852 34.7865 +-378.756 33.3914 32.3691 +-380.141 31.0982 30.1461 +-379.907 28.6702 27.7924 +-382.133 26.4194 25.6105 +-378.454 23.7738 23.0459 +-380.125 21.4804 20.8228 +-378.476 19.0027 18.4208 +-380.09 16.6919 16.1808 +-379.579 14.2834 13.846 +-381.137 11.9483 11.5825 +-378.769 9.49709 9.20631 +-3275.38 61.5831 59.6976 +-146.178 1.83204 1.77595 +-146.094 0.915431 0.887403 +96.9 0 0 +96.6963 0.611174 0.581859 +96.8852 1.22483 1.16608 +96.6669 1.83334 1.7454 +97.7404 2.47203 2.35346 +96.8078 3.06126 2.91442 +97.7658 3.7109 3.5329 +96.7193 4.28445 4.07895 +96.664 4.89559 4.66076 +96.701 5.51203 5.24764 +97.5275 6.17981 5.88339 +96.5534 6.73351 6.41053 +97.2642 7.40407 7.04893 +97.2707 8.02672 7.64171 +97.071 8.63235 8.21829 +96.9633 9.24558 8.80211 +96.9472 9.86809 9.39476 +96.7258 10.4698 9.96761 +97.2873 11.16 10.6247 +96.2615 11.6669 11.1073 +96.1172 12.2749 11.6861 +96.7523 12.9875 12.3645 +96.494 13.5846 12.933 +96.3266 14.194 13.5132 +96.2497 14.8173 14.1066 +95.9699 15.4094 14.6703 +95.878 16.0317 15.2627 +96.5563 16.7892 15.9839 +96.3504 17.3988 16.5643 +97.0084 18.1704 17.2988 +96.6892 18.7641 17.864 +96.5558 19.3938 18.4636 +96.3184 20.0034 19.0439 +96.9367 20.7965 19.799 +96.5868 21.3871 20.3613 +96.3254 21.9968 20.9417 +97.0078 22.8286 21.7336 +96.6342 23.4178 22.2946 +97.1993 24.2399 23.0772 +96.9035 24.8533 23.6612 +97.5401 25.7126 24.4793 +97.1329 26.3027 25.0411 +97.6525 27.1492 25.847 +97.3217 27.7654 26.4336 +96.8907 28.3523 26.9924 +97.4693 29.2408 27.8382 +97.1133 29.8557 28.4236 +96.9332 30.5261 29.0619 +97.3839 31.4027 29.8964 +96.1829 31.7467 30.224 +97.4281 32.9044 31.3261 +96.2156 33.2383 31.644 +96.7102 34.1626 32.5239 +96.9214 34.9987 33.32 +97.2088 35.8731 34.1524 +96.8616 36.5195 34.7678 +97.0359 37.3683 35.5759 +96.6699 38.0148 36.1914 +96.9079 38.9052 37.0391 +96.4354 39.5162 37.6207 +96.735 40.4501 38.5099 +96.1578 41.0232 39.0555 +96.3456 41.9278 39.9167 +96.5189 42.8379 40.7831 +96.6775 43.7533 41.6547 +96.1466 44.3627 42.2348 +96.3632 45.3237 43.1497 +96.564 46.2908 44.0704 +95.8367 46.8183 44.5727 +96.0931 47.8325 45.5382 +96.0865 48.7288 46.3915 +96.147 49.6707 47.2882 +96.1921 50.6171 48.1892 +96.3021 51.6109 49.1353 +96.3953 52.6098 50.0864 +95.7577 53.2171 50.6645 +95.7433 54.177 51.5784 +96.4173 55.5465 52.8822 +95.7444 56.1538 53.4603 +95.6814 57.1253 54.3853 +95.679 58.1469 55.3578 +96.2674 59.549 56.6927 +96.2255 60.5828 57.6769 +96.091 61.5727 58.6193 +95.4198 62.2261 59.2414 +95.2562 63.2183 60.186 +95.2223 64.3118 61.2271 +95.6769 65.7588 62.6046 +95.5283 66.8137 63.609 +95.4329 67.9226 64.6647 +95.318 69.0353 65.724 +95.1134 70.1001 66.7377 +95.4461 71.5842 68.1506 +95.1994 72.6574 69.1723 +94.866 73.68 70.1459 +95.2582 75.2915 71.6801 +94.9496 76.375 72.7116 +95.2185 77.9488 74.21 +94.8661 79.0396 75.2484 +94.8194 80.407 76.5502 +94.8755 81.891 77.963 +94.6484 83.1585 79.1697 +94.2722 84.3158 80.2716 +93.9997 85.5891 81.4837 +92.2261 85.4949 81.3941 +91.2533 86.1323 82.0009 +91.8972 88.3254 84.0888 +91.7812 89.834 85.525 +91.6357 91.3484 86.9668 +91.6349 93.0439 88.581 +91.6002 94.7474 90.2028 +91.4746 96.3966 91.7728 +91.1484 97.8719 93.1774 +93.7189 102.551 97.6324 +93.3511 104.111 99.1176 +93.114 105.858 100.781 +93.5308 108.408 103.208 +93.1615 110.107 104.825 +93.2219 112.367 106.977 +93.0318 114.388 108.901 +92.55 116.1 110.531 +91.4923 117.122 111.504 +91.3381 119.343 113.618 +92.7597 123.735 117.8 +92.6267 126.171 120.119 +92.3497 128.486 122.323 +92.4779 131.452 125.147 +92.0952 133.782 127.365 +91.2689 135.531 129.03 +105.088 159.57 151.917 +104.091 161.673 153.918 +101.973 162.06 154.287 +99.0404 161.111 153.383 +97.0156 161.598 153.847 +94.7914 161.738 153.98 +92.7625 162.197 154.417 +90.2427 161.771 154.011 +91.2955 167.86 159.809 +91.1688 172.015 163.764 +91.124 176.519 168.052 +89.2331 177.565 169.048 +88.0582 180.102 171.463 +86.1779 181.268 172.573 +90.0828 194.993 185.64 +89.4604 199.412 189.847 +86.8739 199.556 189.984 +83.9399 198.85 189.312 +81.342 198.887 189.347 +78.5842 198.489 188.968 +76.1897 198.978 189.433 +73.4011 198.403 188.886 +71.2331 199.49 189.921 +68.3429 198.527 189.005 +65.9717 199.022 189.476 +63.3687 198.796 189.26 +60.971 199.189 189.635 +58.2569 198.504 188.983 +55.8031 198.652 189.123 +53.312 198.642 189.114 +50.9166 198.97 189.427 +48.1874 197.93 188.436 +45.9658 198.941 189.399 +43.2541 197.793 188.306 +41.0023 198.704 189.173 +38.4814 198.31 188.798 +36.1035 198.618 189.091 +33.4775 197.472 188 +31.2101 198.396 188.88 +28.7244 197.938 188.443 +26.3576 198.255 188.746 +23.8371 197.332 187.867 +21.5606 198.414 188.897 +19.0993 197.82 188.332 +16.7578 198.439 188.921 +14.3191 197.887 188.395 +11.9604 198.404 188.887 +9.54501 197.965 188.47 +7.16987 198.308 188.796 +4.75753 197.404 187.935 +2.38583 198.006 188.509 +1.67036e-14 197.579 188.102 +-2.38671 198.079 188.578 +-4.76451 197.693 188.211 +-7.14107 197.512 188.038 +-9.52407 197.531 188.056 +-11.9474 198.187 188.681 +-14.2982 197.598 188.12 +-16.7334 198.15 188.646 +-19.0714 197.531 188.056 +-21.5056 197.909 188.416 +-23.8109 197.116 187.661 +-26.2713 197.607 188.128 +-28.5885 197.001 187.552 +-31.1762 198.18 188.674 +-33.4288 197.184 187.726 +-35.9208 197.612 188.134 +-38.2587 197.163 187.706 +-40.7806 197.629 188.15 +-43.0038 196.649 187.217 +-45.5036 196.941 187.495 +-47.7012 195.933 186.535 +-50.5886 197.689 188.207 +-52.7396 196.509 187.083 +-55.3844 197.161 187.704 +-57.55 196.095 186.689 +-60.3217 197.068 187.615 +-62.4914 196.044 186.64 +-65.2246 196.768 187.33 +-67.593 196.349 186.931 +-70.1815 196.545 187.117 +-72.547 196.094 186.688 +-75.4414 197.024 187.573 +-77.7849 196.469 187.046 +-80.3763 196.526 187.099 +-82.8581 196.288 186.873 +-85.7312 196.931 187.485 +-88.1316 196.45 187.027 +-91.0664 197.122 187.667 +-93.3729 196.402 186.982 +-96.3033 196.965 187.517 +-98.6728 196.349 186.931 +-101.735 197.074 187.621 +-104.034 196.288 186.873 +-107.165 197.039 187.588 +-109.385 196.086 186.68 +-112.662 196.992 187.543 +-114.953 196.14 186.732 +-117.312 195.406 186.033 +-119.784 194.855 185.509 +-121.754 193.498 184.217 +-125.349 194.69 185.351 +-128.895 195.721 186.333 +-131.95 195.94 186.542 +-137.295 199.441 189.875 +-140.238 199.34 189.779 +-143.881 200.181 190.579 +-145.301 197.921 188.427 +-144.865 193.24 183.971 +-144.522 188.833 179.775 +-147.629 188.984 179.919 +-151.25 189.737 180.637 +-159.672 196.325 186.908 +-164.246 197.978 188.482 +-570.359 674.102 641.768 +-576.181 667.831 635.798 +-562.821 639.853 609.162 +-564.791 629.893 599.679 +-571.2 625.031 595.05 +-577.031 619.596 589.876 +-580.057 611.27 581.95 +-584.761 604.851 575.839 +-587.904 596.946 568.313 +-592.958 591.097 562.745 +-596.429 583.776 555.775 +-601.935 578.538 550.788 +-605.231 571.264 543.863 +-610.059 565.534 538.408 +-613.052 558.199 531.425 +-618.622 553.289 526.75 +-622.339 546.788 520.561 +-627.168 541.336 515.371 +-630.159 534.377 508.746 +-635.984 529.882 504.466 +-638.434 522.642 497.573 +-142.324 114.482 108.991 +-143.36 113.311 107.876 +-143.765 111.659 106.303 +-143.866 109.8 104.534 +-142.822 107.116 101.978 +-142.845 105.279 100.229 +-144.957 104.987 99.9513 +-149.64 106.504 101.395 +-682.294 477.205 454.315 +-700.494 481.45 458.357 +-705.464 476.461 453.607 +-709.998 471.201 448.599 +-715.426 466.55 444.172 +-719.297 460.907 438.799 +-724.446 456.106 434.228 +-728.317 450.521 428.912 +-737.471 448.183 426.685 +-736.67 439.819 418.723 +-725.932 425.757 405.335 +-728.06 419.439 399.32 +-733.717 415.178 395.264 +-738.533 410.437 390.75 +-743.849 405.972 386.499 +-747.587 400.652 381.434 +-754.247 396.891 377.853 +-758.267 391.73 372.94 +-763.941 387.421 368.838 +-768.333 382.455 364.11 +-386.829 188.974 179.91 +-385.672 184.883 176.015 +-385.872 181.492 172.786 +-383.237 176.828 168.346 +-796.317 360.389 343.103 +-381.215 169.194 161.079 +-384.525 167.338 159.312 +-384.2 163.909 156.047 +-384.515 160.786 153.074 +-824.401 337.814 321.61 +-136.528 54.8114 52.1823 +-836.107 328.793 313.022 +-845.246 325.502 309.889 +-2906.29 1095.75 1043.19 +-885.215 326.672 311.003 +-889.386 321.161 305.756 +-903.558 319.179 303.87 +-902.766 311.866 296.907 +-390.619 131.923 125.595 +-385.46 127.227 121.124 +-382.319 123.283 117.37 +-380.947 119.967 114.213 +-383.114 117.781 112.132 +-383.872 115.161 109.638 +-382 111.781 106.42 +-940.094 268.204 255.34 +-384.542 106.91 101.782 +-382.912 103.689 98.7156 +-381.703 100.621 95.7948 +-382.43 98.0834 93.3787 +-384.07 95.7809 91.1867 +-382.08 92.5913 88.1501 +-380.137 89.4567 85.1658 +-381.296 87.0724 82.8959 +-380.418 84.2354 80.195 +-3141.38 673.941 641.615 +-381.044 79.1352 75.3394 +-381.116 76.5496 72.8778 +-382.313 74.1943 70.6355 +-382.031 71.5571 68.1249 +-382.005 68.9822 65.6735 +-381.363 66.3116 63.1309 +-380.979 63.7032 60.6477 +-382.61 61.434 58.4872 +-380.891 58.6369 55.8244 +-379.623 55.9386 53.2554 +-382.344 53.8273 51.2455 +-381.208 51.1712 48.7167 +-381.515 48.7221 46.3851 +-381.199 46.2014 43.9853 +-381.742 43.7903 41.6899 +-381.562 41.301 39.32 +-380.164 38.6964 36.8403 +-380.616 36.2921 34.5513 +-381.038 33.8851 32.2598 +-378.75 31.2542 29.7551 +-379.112 28.8592 27.475 +-379.345 26.455 25.1861 +-380.148 24.088 22.9326 +-380.125 21.6674 20.6281 +-379.374 19.2135 18.292 +-379.191 16.7973 15.9916 +-378.481 14.366 13.6769 +-380.637 12.0365 11.4592 +-379.769 9.60504 9.14432 +-151.948 2.88177 2.74354 +-145.178 1.83535 1.74731 +-145.194 0.917707 0.873688 +96.9 0 0 +96.8963 0.617672 0.577514 +96.8852 1.2353 1.15499 +96.8668 1.85283 1.73237 +96.841 2.47022 2.30962 +96.8078 3.08742 2.88669 +96.7672 3.70438 3.46354 +97.6176 4.36121 4.07766 +96.7637 4.94252 4.62119 +96.701 5.55914 5.19771 +97.5275 6.23263 5.82741 +97.4493 6.85406 6.40844 +97.3637 7.47495 6.98896 +97.2707 8.09532 7.569 +97.1703 8.71504 8.14843 +97.0625 9.3341 8.72724 +96.9472 9.95242 9.30537 +96.7258 10.5593 9.87277 +96.5959 11.1754 10.4489 +96.2615 11.7666 11.0016 +96.0188 12.3671 11.563 +96.654 13.0852 12.2345 +96.5921 13.7147 12.823 +96.4246 14.3299 13.3982 +96.1519 14.9288 13.9582 +96.0675 15.557 14.5455 +96.7549 16.3166 15.2557 +96.5563 16.9327 15.8318 +96.4474 17.5652 16.4232 +97.0084 18.3257 17.1342 +96.6892 18.9244 17.6941 +96.5558 19.5596 18.2879 +97.2797 20.3756 19.0509 +96.8408 20.9534 19.5911 +96.5868 21.5699 20.1675 +96.4208 22.2068 20.763 +96.9127 23.0011 21.5057 +96.6342 23.618 22.0824 +97.1048 24.4233 22.8354 +96.8093 25.0414 23.4133 +97.5401 25.9323 24.2463 +97.1329 26.5275 24.8028 +96.8123 27.1457 25.3808 +97.3217 28.0027 26.1821 +96.8907 28.5946 26.7355 +96.6378 29.2391 27.3381 +97.1133 30.1108 28.1532 +96.9332 30.787 28.7854 +96.5618 31.4037 29.362 +97.0019 32.2906 30.1913 +96.703 32.9386 30.7971 +97.0279 33.8053 31.6074 +96.6204 34.4225 32.1846 +96.9214 35.2978 33.0029 +97.2088 36.1796 33.8274 +96.7729 36.7979 34.4055 +97.0359 37.6877 35.2374 +96.582 38.3047 35.8144 +96.9079 39.2377 36.6866 +96.4354 39.8539 37.2628 +96.735 40.7958 38.1435 +96.9333 41.7075 38.9959 +96.4313 42.3238 39.5721 +96.6894 43.2803 40.4664 +96.6775 44.1273 41.2583 +96.9057 45.095 42.1632 +96.3632 45.711 42.7391 +96.3972 46.6058 43.5757 +96.4171 47.5044 44.4159 +95.9283 48.1586 45.0275 +96.0865 49.1453 45.9501 +96.2285 50.1376 46.8779 +95.7876 50.835 47.53 +96.3021 52.0519 48.6678 +95.6765 52.6638 49.2398 +95.7577 53.6719 50.1824 +95.6645 54.595 51.0455 +95.7912 55.6575 52.0389 +95.7444 56.6337 52.9517 +96.2987 57.9853 54.2154 +95.6023 58.5969 54.7872 +95.6591 59.6785 55.7985 +95.6217 60.7172 56.7697 +96.0161 62.0505 58.0163 +96.0143 63.1489 59.0433 +95.33 63.8079 59.6594 +95.2223 64.8615 60.6445 +95.6769 66.3208 62.0089 +95.6003 67.4355 63.0512 +95.4329 68.5031 64.0494 +95.2473 69.5737 65.0504 +95.7442 71.1681 66.5411 +95.5155 72.2485 67.5513 +95.1994 73.2783 68.5141 +94.866 74.3097 69.4785 +95.3258 75.989 71.0486 +94.8827 76.9737 71.9692 +95.2185 78.615 73.5039 +94.8005 79.6603 74.4812 +94.8844 81.1497 75.8737 +94.4898 82.2556 76.9078 +94.8393 84.0379 78.5742 +94.7757 85.4908 79.9326 +93.0659 85.463 79.9066 +92.1645 86.1679 80.5657 +91.1316 86.7523 81.1121 +91.7768 88.9634 83.1794 +91.7812 90.6018 84.7113 +91.5769 92.07 86.084 +91.6349 93.8391 87.7382 +91.3707 95.3176 89.1205 +91.8145 97.582 91.2377 +90.8129 98.3453 91.9514 +92.891 102.514 95.849 +93.4601 105.124 98.2893 +93.5439 107.255 100.282 +93.5308 109.334 102.226 +93.1615 111.048 103.828 +93.2219 113.328 105.96 +93.184 115.554 108.041 +91.9 116.27 108.711 +91.9847 118.759 111.037 +91.4836 120.555 112.717 +92.3779 124.279 116.199 +92.5798 127.184 118.915 +92.7653 130.167 121.704 +92.4779 132.576 123.956 +92.3183 135.252 126.459 +91.225 136.623 127.741 +95.4013 146.1 136.601 +103.668 162.392 151.834 +101.392 162.516 151.95 +99.1217 162.622 152.049 +96.6966 162.443 151.882 +94.4397 162.516 151.95 +92.0736 162.369 151.812 +90.3926 163.424 152.799 +91.1855 169.091 158.098 +91.1688 173.485 162.206 +90.8088 177.412 165.877 +88.549 177.709 166.155 +87.6577 180.815 169.059 +86.4709 183.439 171.512 +89.9876 196.452 183.679 +88.9042 199.866 186.872 +86.5131 200.425 187.394 +83.4721 199.432 186.466 +80.9728 199.677 186.695 +78.3361 199.553 186.579 +75.7354 199.482 186.512 +73.1164 199.322 186.363 +70.7574 199.851 186.858 +68.1494 199.656 186.676 +65.5748 199.515 186.544 +63.0088 199.356 186.395 +60.668 199.893 186.897 +57.9034 198.986 186.049 +55.504 199.276 186.32 +52.9877 199.12 186.174 +50.5886 199.379 186.416 +48.1353 199.406 186.441 +45.6192 199.128 186.182 +43.129 198.907 185.975 +40.7067 198.957 186.022 +38.2587 198.848 185.92 +35.8686 199.011 186.073 +33.5019 199.305 186.347 +31.029 198.93 185.997 +28.6513 199.12 186.174 +26.2809 199.368 186.406 +23.7935 198.655 185.739 +21.4429 199.018 186.079 +19.0296 198.782 185.858 +16.6907 199.333 186.374 +14.2354 198.411 185.511 +11.8906 198.932 185.999 +9.48917 198.489 185.584 +7.12275 198.688 185.771 +4.75578 199.018 186.079 +2.371 198.457 185.554 +1.66546e-14 198.683 185.766 +-2.37362 198.676 185.759 +-4.75055 198.799 185.874 +-7.12013 198.615 185.702 +-9.49615 198.635 185.721 +-11.8776 198.713 185.794 +-14.2511 198.63 185.716 +-16.6235 198.531 185.624 +-19.0156 198.637 185.722 +-21.3801 198.435 185.534 +-23.7325 198.146 185.263 +-26.1946 198.714 185.795 +-28.4945 198.031 185.156 +-30.9498 198.422 185.522 +-33.3191 198.217 185.33 +-35.6598 197.853 184.989 +-38.1473 198.268 185.378 +-40.4998 197.946 185.076 +-42.8474 197.608 184.761 +-45.3551 197.975 185.104 +-47.7185 197.679 184.827 +-50.0601 197.295 184.468 +-52.4343 197.04 184.23 +-54.9458 197.271 184.446 +-57.3836 197.2 184.379 +-59.9321 197.468 184.629 +-62.2215 196.865 184.066 +-64.9912 197.74 184.883 +-67.3752 197.388 184.555 +-69.9562 197.588 184.741 +-72.547 197.769 184.911 +-74.9604 197.44 184.603 +-77.5368 197.517 184.675 +-80.2059 197.786 184.927 +-82.5365 197.197 184.376 +-85.22 197.429 184.593 +-87.7917 197.365 184.533 +-90.4636 197.49 184.651 +-92.9823 197.252 184.427 +-95.8026 197.615 184.767 +-98.3308 197.341 184.511 +-101.14 197.596 184.749 +-103.676 197.284 184.458 +-106.395 197.295 184.468 +-109.048 197.152 184.334 +-112.011 197.529 184.687 +-114.68 197.345 184.515 +-117.591 197.544 184.701 +-119.987 196.854 184.056 +-122.791 196.813 184.017 +-125.56 196.685 183.897 +-128.981 197.526 184.683 +-131.555 197.024 184.214 +-136.18 199.512 186.54 +-139.874 200.523 187.486 +-143.188 200.92 187.857 +-145.067 199.29 186.333 +-144.913 194.956 182.281 +-144.425 190.319 177.945 +-146.151 188.692 176.424 +-150.7 190.663 178.267 +-158.352 196.366 183.6 +-164.143 199.544 186.571 +-573.39 683.476 639.039 +-577.241 674.777 630.907 +-582.057 667.376 623.986 +-566.588 637.298 595.864 +-572.524 631.835 590.756 +-578.038 625.981 585.283 +-581.529 618.058 577.875 +-585.622 610.917 571.199 +-589.762 603.95 564.685 +-594.721 597.922 559.048 +-597.737 590.057 551.695 +-602.537 584.066 546.093 +-606.083 576.958 539.447 +-611.475 571.691 534.522 +-614.484 564.285 527.598 +-618.874 558.245 521.951 +-623.484 552.475 516.556 +-627.746 546.466 510.937 +-631.913 540.444 505.307 +-636.574 534.907 500.13 +-141.801 117.075 109.463 +-143.194 116.166 108.614 +-143.698 114.549 107.102 +-144.243 112.987 105.641 +-142.765 109.892 102.747 +-142.891 108.084 101.057 +-142.775 106.127 99.227 +-147.078 107.434 100.449 +-149.426 107.26 100.286 +-687.761 485.14 453.599 +-701.51 486.269 454.654 +-707.365 481.828 450.502 +-711.768 476.413 445.439 +-716.689 471.369 440.723 +-721.095 466.008 435.71 +-725.955 460.962 430.993 +-733.336 457.503 427.759 +-736.322 451.308 421.966 +-734.432 442.23 413.479 +-725.699 429.257 401.349 +-730.33 424.343 396.754 +-735.608 419.806 392.512 +-739.405 414.434 387.49 +-744.807 409.969 383.315 +-750.4 405.597 379.227 +-754.975 400.669 374.619 +-759.733 395.841 370.106 +-765.088 391.318 365.877 +-769.487 386.303 361.188 +-383.264 188.833 176.556 +-386.256 186.745 174.604 +-383.943 182.128 170.287 +-2763.37 1285.93 1202.33 +-798.522 364.476 340.779 +-384.029 171.9 160.724 +-383.497 168.317 157.374 +-383.597 165.05 154.32 +-383.389 161.686 151.174 +-826.49 341.564 319.357 +-137.053 55.4923 51.8845 +-838.567 332.579 310.956 +-846.394 328.73 307.357 +-875.214 332.8 311.163 +-2919.38 1086.55 1015.91 +-893.86 325.535 304.371 +-902.749 321.619 300.709 +-906.286 315.757 295.228 +-897.97 305.863 285.977 +-383.094 127.527 119.236 +-381.862 124.189 116.115 +-382.047 121.342 113.453 +-382.194 118.503 110.798 +-382.948 115.866 108.333 +-384.689 113.53 106.149 +-942.885 271.299 253.661 +-383.888 107.64 100.642 +-381.413 104.166 97.3932 +-382.173 101.606 95.0001 +-382.053 98.8245 92.3994 +-381.895 96.0524 89.8076 +-382.08 93.3826 87.3113 +-380.137 90.2212 84.3555 +-380.819 87.707 82.0047 +-380.227 84.913 79.3924 +-381.227 82.4864 77.1236 +-380.467 79.6903 74.5092 +-381.598 77.3009 72.2752 +-381.251 74.6202 69.7687 +-382.031 72.1687 67.4767 +-380.55 69.3067 64.8007 +-382.919 67.1511 62.7853 +-383.025 64.5927 60.3932 +-382.903 62.0064 57.9751 +-381.869 59.2899 55.4352 +-381.681 56.7225 53.0347 +-382.049 54.2456 50.7188 +-380.028 51.4487 48.1038 +-381.219 49.1005 45.9082 +-380.016 46.4516 43.4315 +-380.853 44.0617 41.1971 +-380.87 41.5784 38.8752 +-381.253 39.1389 36.5942 +-381.012 36.6404 34.2582 +-379.153 34.0056 31.7947 +-380.041 31.6288 29.5724 +-380.902 29.2433 27.342 +-380.54 26.7651 25.025 +-379.351 24.2429 22.6668 +-379.726 21.8297 20.4104 +-380.271 19.4236 18.1608 +-379.191 16.9409 15.8395 +-380.777 14.5767 13.629 +-378.14 12.0597 11.2756 +-377.97 9.64125 9.01443 +-3275.38 62.6501 58.5769 +-147.278 1.87781 1.75572 +-145.494 0.927464 0.867165 +96.9 0 0 +96.6963 0.621571 0.570738 +96.8852 1.24567 1.14379 +96.8668 1.86838 1.71558 +96.6411 2.48581 2.28252 +96.8078 3.11334 2.85872 +96.8671 3.73934 3.43353 +96.8191 4.36184 4.00512 +96.7637 4.98401 4.57641 +96.701 5.6058 5.14735 +96.6309 6.22717 5.7179 +97.4493 6.9116 6.34635 +97.2642 7.53003 6.91421 +97.2707 8.16327 7.49566 +97.1703 8.78819 8.06947 +97.0625 9.41245 8.64268 +96.8482 10.0257 9.2058 +96.5279 10.6261 9.75709 +96.5959 11.2692 10.3476 +96.2615 11.8653 10.895 +96.9051 12.586 11.5567 +96.7523 13.2084 12.1282 +96.494 13.8158 12.6859 +96.4246 14.4502 13.2684 +96.1519 15.0541 13.8229 +96.0675 15.6876 14.4046 +96.8524 16.4701 15.1231 +96.5563 17.0748 15.6784 +96.3504 17.6948 16.2477 +97.1052 18.4979 16.9851 +96.6892 19.0833 17.5226 +96.5558 19.7238 18.1107 +96.3184 20.3437 18.6799 +96.9367 21.1503 19.4206 +96.5868 21.751 19.9721 +97.1838 22.5704 20.7245 +97.0078 23.2169 21.3182 +96.6342 23.8162 21.8685 +97.1993 24.6523 22.6362 +96.9035 25.2761 23.209 +97.5401 26.15 24.0114 +97.1329 26.7502 24.5625 +97.6525 27.6111 25.353 +97.3217 28.2377 25.9284 +97.7252 29.0829 26.7045 +97.4693 29.7382 27.3062 +97.1133 30.3636 27.8804 +97.6669 31.2804 28.7222 +97.3839 31.9369 29.325 +97.0929 32.5923 29.9268 +96.703 33.2151 30.4987 +97.0279 34.0891 31.3012 +97.3394 34.9698 32.1099 +96.9214 35.5941 32.6832 +97.2088 36.4833 33.4996 +97.5712 37.4128 34.3531 +97.1242 38.0386 34.9278 +96.6699 38.6615 35.4997 +96.9079 39.5671 36.3312 +96.4354 40.1884 36.9017 +96.735 41.1383 37.7739 +96.244 41.7585 38.3434 +96.3456 42.6411 39.1538 +95.8368 43.2587 39.7209 +96.6775 44.4977 40.8586 +96.1466 45.1174 41.4276 +96.3632 46.0947 42.325 +96.3972 46.997 43.1535 +95.8367 47.6148 43.7208 +95.4338 48.3124 44.3613 +96.0865 49.5578 45.5048 +96.2285 50.5585 46.4237 +96.273 51.5215 47.3079 +96.3021 52.4889 48.1962 +95.6765 53.1058 48.7627 +96.3924 54.4811 50.0255 +96.4525 55.5068 50.9673 +96.3391 56.4457 51.8294 +95.6667 57.0627 52.396 +95.6043 58.0503 53.3028 +95.679 59.1361 54.2998 +95.6591 60.1794 55.2578 +95.6217 61.2269 56.2196 +95.4919 62.2297 57.1404 +95.3455 63.2354 58.0639 +95.2562 64.2938 59.0357 +95.1491 65.3557 60.0108 +95.6769 66.8775 61.4081 +95.5283 67.9504 62.3933 +95.4329 69.0782 63.4288 +95.2473 70.1577 64.4201 +95.7442 71.7655 65.8963 +95.5155 72.855 66.8968 +95.819 74.3744 68.2919 +94.7978 74.8797 68.7559 +95.2582 76.5724 70.3101 +94.9496 77.6743 71.322 +95.2185 79.2749 72.7917 +94.8661 80.3842 73.8102 +94.6895 81.6629 74.9844 +94.4898 82.9461 76.1626 +94.394 84.3456 77.4476 +94.7757 86.2084 79.1581 +92.9414 86.0648 79.0262 +91.5489 86.3108 79.2521 +91.1925 87.5387 80.3796 +91.7768 89.7101 82.3734 +91.7217 91.3034 83.8364 +91.6945 92.9622 85.3595 +92.0995 95.1071 87.329 +91.8869 96.6605 88.7554 +91.5879 98.158 90.1304 +91.3721 99.7815 91.6211 +92.2287 102.637 94.2433 +93.4056 105.944 97.2801 +93.5976 108.218 99.368 +93.4778 110.19 101.179 +93.1615 111.98 102.822 +93.2219 114.279 104.933 +93.2348 116.587 107.053 +91.55 116.8 107.247 +91.7878 119.499 109.726 +91.5805 121.696 111.743 +92.1394 124.998 114.776 +92.5798 128.252 117.763 +92.3497 130.672 119.985 +92.4325 133.623 122.695 +92.4968 136.651 125.476 +91.6634 138.432 127.111 +94.4972 145.93 133.995 +103.372 163.288 149.934 +101.019 163.277 149.923 +99.0404 163.852 150.452 +96.3776 163.266 149.914 +94.4788 163.948 150.54 +92.1884 163.937 150.529 +90.505 165.001 151.507 +91.5154 171.127 157.132 +91.1688 174.941 160.634 +90.8088 178.901 164.27 +88.4464 178.994 164.355 +87.3573 181.707 166.847 +86.6337 185.326 170.17 +90.0193 198.17 181.963 +88.8733 201.474 184.997 +86.062 201.054 184.611 +83.5014 201.177 184.724 +81.0012 201.423 184.95 +78.3086 201.157 184.706 +75.7086 201.085 184.64 +73.1681 201.137 184.688 +70.482 200.744 184.327 +67.9075 200.618 184.211 +65.3414 200.473 184.078 +63.0538 201.173 184.721 +60.4516 200.851 184.425 +57.9242 200.728 184.312 +55.504 200.948 184.514 +52.7778 199.996 183.64 +50.5886 201.052 184.61 +48.0311 200.644 184.235 +45.6522 200.945 184.512 +43.129 200.576 184.173 +40.7658 200.919 184.487 +38.2726 200.59 184.185 +35.8947 200.828 184.403 +33.4044 200.393 184.004 +31.029 200.6 184.195 +28.5676 200.206 183.833 +26.1851 200.308 183.927 +23.8109 200.469 184.074 +21.435 200.615 184.208 +18.9807 199.936 183.585 +16.6357 200.345 183.96 +14.2301 200.003 183.646 +11.8557 200.013 183.655 +9.48568 200.081 183.718 +7.12798 200.504 184.106 +4.74182 200.1 183.735 +2.371 200.123 183.756 +1.6575e-14 199.394 183.087 +-2.37362 200.344 183.959 +-4.73135 199.658 183.329 +-7.11489 200.135 183.768 +-9.46125 199.567 183.246 +-11.8383 199.719 183.386 +-14.1987 199.561 183.241 +-16.6235 200.198 183.825 +-18.9598 199.716 183.383 +-21.3095 199.44 183.129 +-23.7325 199.809 183.468 +-26.118 199.795 183.455 +-28.4945 199.693 183.362 +-30.9384 200.014 183.657 +-33.2947 199.735 183.4 +-35.6598 199.514 183.197 +-38.0221 199.276 182.979 +-40.3815 199.024 182.748 +-42.7379 198.757 182.502 +-45.2065 198.984 182.711 +-47.7012 199.266 182.97 +-50.0601 198.952 182.681 +-52.4725 198.839 182.577 +-54.9657 198.999 182.725 +-57.3836 198.855 182.592 +-59.8888 198.982 182.709 +-62.2215 198.518 182.282 +-64.8278 198.898 182.631 +-67.1817 198.474 182.242 +-70.0062 199.389 183.083 +-72.3399 198.86 182.597 +-74.9604 199.097 182.815 +-77.3163 198.608 182.366 +-79.9219 198.739 182.486 +-82.5365 198.852 182.59 +-85.4606 199.648 183.321 +-87.8226 199.092 182.809 +-90.4953 199.218 182.926 +-92.9823 198.907 182.64 +-95.8359 199.343 183.041 +-98.3992 199.136 182.85 +-100.825 198.633 182.389 +-103.676 198.941 182.671 +-106.395 198.952 182.681 +-109.085 198.875 182.611 +-111.667 198.574 182.335 +-114.328 198.392 182.167 +-117.272 198.662 182.415 +-120.028 198.574 182.334 +-122.583 198.13 181.927 +-125.349 198.002 181.809 +-128.766 198.851 182.588 +-131.555 198.678 182.429 +-135.243 199.802 183.462 +-139.602 201.813 185.308 +-142.773 202.019 185.497 +-145.114 201.028 184.587 +-144.865 196.527 180.455 +-144.328 191.788 176.103 +-145.56 189.506 174.008 +-150.7 192.263 176.54 +-157.54 197 180.889 +-163.061 199.894 183.546 +-168.036 201.978 185.46 +-577.559 680.816 625.138 +-582.54 673.537 618.453 +-569.039 645.427 592.643 +-572.524 637.138 585.032 +-578.038 631.235 579.612 +-581.699 623.429 572.444 +-586.08 616.529 566.108 +-589.936 609.2 559.378 +-594.545 602.763 553.467 +-598.094 595.365 546.675 +-602.537 588.969 540.802 +-606.631 582.327 534.703 +-611.167 576.199 529.076 +-615.044 569.54 522.962 +-619.755 563.733 517.629 +-623.738 557.341 511.76 +-628.003 551.278 506.194 +-632.692 545.652 501.028 +-636.574 539.397 495.284 +-143.192 119.216 109.466 +-143.261 117.196 107.611 +-142.887 114.859 105.465 +-144.243 113.936 104.618 +-142.765 110.814 101.751 +-142.891 108.991 100.077 +-143.056 107.228 98.4583 +-147.22 108.44 99.5715 +-149.711 108.367 99.5046 +-689.703 490.593 450.472 +-701.582 490.401 450.295 +-707.658 486.074 446.322 +-711.546 480.262 440.985 +-716.986 475.522 436.633 +-721.244 470.017 431.578 +-726.634 465.267 427.216 +-733.259 461.296 423.57 +-736.169 455.002 417.791 +-733.121 445.146 408.741 +-726.631 433.418 397.972 +-730.956 428.272 393.247 +-735.766 423.421 388.792 +-740.754 418.676 384.435 +-745.287 413.676 379.845 +-750.4 409.001 375.552 +-755.217 404.163 371.109 +-760.384 399.507 366.834 +-765.825 394.984 362.681 +-769.816 389.712 357.841 +-387.907 192.724 176.963 +-388.174 189.249 173.771 +-384.698 184.018 168.969 +-382.9 179.678 164.984 +-797.759 367.184 337.155 +-381.642 172.265 158.177 +-383.325 169.654 155.779 +-383.425 166.361 152.756 +-383.563 163.117 149.777 +-827.273 344.758 316.563 +-137.053 55.9581 51.3817 +-839.534 335.757 308.298 +-846.394 331.489 304.379 +-877.963 336.648 309.116 +-884.948 332.128 304.966 +-894.666 328.564 301.693 +-901.94 324.027 297.528 +-909.535 319.55 293.416 +-900.689 309.364 284.064 +-383.185 128.628 118.108 +-382.136 125.321 115.072 +-381.589 122.213 112.219 +-381.825 119.382 109.619 +-382.486 116.698 107.154 +-386.358 114.98 105.577 +-944.188 273.954 251.55 +-382.768 108.227 99.3761 +-382.069 105.221 96.6159 +-381.233 102.207 93.8483 +-381.298 99.4574 91.3235 +-383.219 97.1946 89.2458 +-382.364 94.2364 86.5296 +-380.993 91.1833 83.7261 +-380.533 88.3769 81.1493 +-378.697 85.2811 78.3066 +-380.46 83.0109 76.2221 +-381.909 80.6641 74.0672 +-380.056 77.6353 71.2861 +-381.83 75.3607 69.1976 +-382.322 72.8299 66.8737 +-382.394 70.227 64.4837 +-381.947 67.5428 62.019 +-381.271 64.8366 59.5341 +-382.318 62.4313 57.3255 +-382.456 59.8796 54.9825 +-382.465 57.3161 52.6287 +-381.46 54.6166 50.1499 +-381.208 52.0417 47.7856 +-380.924 49.4743 45.4281 +-380.312 46.878 43.0442 +-379.964 44.3279 40.7027 +-380.87 41.9274 38.4985 +-380.56 39.3956 36.1738 +-379.624 36.8134 33.8027 +-379.649 34.3359 31.5278 +-379.544 31.8526 29.2476 +-380.405 29.4502 27.0417 +-380.042 26.9545 24.7501 +-380.546 24.5235 22.5179 +-379.626 22.0071 20.2073 +-379.374 19.5404 17.9424 +-379.89 17.1146 15.7149 +-379.879 14.6644 13.4651 +-379.139 12.1931 11.1959 +-378.869 9.74531 8.94832 +-149.649 2.88645 2.65039 +-146.378 1.882 1.72808 +-144.095 0.926248 0.850497 +96.9 0 0 +96.6963 0.626695 0.565107 +96.8852 1.25594 1.13251 +96.6669 1.87989 1.69515 +96.841 2.51149 2.26467 +96.8078 3.139 2.83052 +96.7672 3.76627 3.39614 +96.8191 4.3978 3.96561 +96.664 5.01991 4.52659 +96.701 5.65201 5.09656 +96.6309 6.2785 5.66149 +97.4493 6.96857 6.28374 +97.3637 7.59983 6.85296 +97.37 8.23896 7.42928 +97.1703 8.86063 7.98986 +97.0625 9.49004 8.55741 +96.9472 10.1187 9.12429 +96.7258 10.7357 9.68065 +96.5959 11.3621 10.2455 +97.1491 12.0735 10.887 +96.9051 12.6898 11.4427 +96.7523 13.3173 12.0086 +96.5921 13.9438 12.5735 +96.3266 14.5545 13.1242 +96.2497 15.1936 13.7005 +96.0675 15.8169 14.2625 +96.7549 16.5892 14.9589 +96.5563 17.2156 15.5237 +97.3207 18.0204 16.2495 +97.0084 18.6318 16.8008 +96.7858 19.2598 17.3671 +96.5558 19.8863 17.932 +96.3184 20.5114 18.4956 +96.8408 21.3035 19.2099 +96.6824 21.952 19.7947 +96.3254 22.5554 20.3388 +96.0567 23.1788 20.901 +96.6342 24.0125 21.6527 +97.1048 24.8313 22.391 +96.9035 25.4845 22.98 +96.5064 26.0862 23.5226 +97.1329 26.9707 24.3202 +96.8123 27.5992 24.8869 +97.3217 28.4705 25.6726 +97.7252 29.3227 26.441 +97.4693 29.9833 27.0368 +97.1133 30.6139 27.6053 +96.8415 31.2717 28.1985 +97.2926 32.17 29.0085 +97.0929 32.8609 29.6315 +96.703 33.4889 30.1978 +97.0279 34.3701 30.9924 +97.3394 35.2581 31.7931 +96.9214 35.8875 32.3607 +96.4069 36.4806 32.8955 +96.7729 37.4127 33.736 +97.1242 38.3522 34.5832 +96.6699 38.9802 35.1494 +96.8204 39.8572 35.9403 +96.5224 40.5563 36.5707 +96.735 41.4774 37.4012 +96.1578 42.065 37.9311 +96.3456 42.9926 38.7675 +96.6041 43.9646 39.644 +96.7623 44.9038 40.491 +96.1466 45.4893 41.0189 +96.3632 46.4747 41.9074 +96.3972 47.3844 42.7277 +95.8367 48.0073 43.2894 +96.67 49.3417 44.4927 +96.0865 49.9663 45.0559 +96.2285 50.9753 45.9657 +96.273 51.9461 46.8412 +95.659 52.5681 47.402 +95.6765 53.5436 48.2817 +95.6784 54.5233 49.1651 +95.6645 55.5071 50.0522 +96.3391 56.911 51.3181 +95.6667 57.5331 51.8791 +95.6814 58.5761 52.8196 +95.679 59.6236 53.7641 +95.6591 60.6755 54.7127 +95.6217 61.7316 55.665 +95.4919 62.7427 56.5767 +95.3455 63.7567 57.4911 +95.9198 65.2753 58.8604 +95.8805 66.4009 59.8754 +95.6769 67.4287 60.8023 +95.4564 68.459 61.7312 +95.3616 69.5955 62.7561 +95.318 70.7885 63.8319 +95.0433 71.8274 64.7686 +95.4461 73.4022 66.1886 +95.1994 74.5026 67.1809 +94.9342 75.6054 68.1754 +95.2582 77.2036 69.6165 +94.9496 78.3146 70.6183 +95.2185 79.9284 72.0735 +94.8661 81.0468 73.082 +94.6895 82.3361 74.2446 +95.0683 84.1415 75.8726 +94.394 85.0408 76.6835 +94.2093 86.3999 77.909 +92.8792 86.7163 78.1943 +91.5489 87.0223 78.4702 +91.7403 88.7905 80.0647 +91.837 90.509 81.6143 +91.7812 92.1154 83.0628 +91.5769 93.6081 84.4089 +91.5769 95.3467 85.9766 +91.7149 97.2746 87.7151 +91.9277 99.3348 89.5727 +91.428 100.666 90.7728 +92.2287 103.483 93.3135 +93.4601 106.88 96.3766 +93.114 108.547 97.8793 +93.4248 111.035 100.123 +93.1615 112.903 101.808 +93.2734 115.285 103.955 +93.2856 117.612 106.054 +91.1 117.184 105.668 +92.034 120.807 108.935 +91.1927 122.179 110.172 +91.9485 125.767 113.408 +92.6267 129.375 116.661 +92.8115 132.407 119.395 +92.3871 134.658 121.425 +92.5414 137.844 124.297 +91.6196 139.507 125.797 +94.2819 146.798 132.372 +103.33 164.567 148.394 +101.061 164.69 148.505 +98.593 164.456 148.294 +96.4175 164.68 148.497 +94.1271 164.684 148.5 +91.8058 164.602 148.426 +90.6923 166.705 150.322 +91.1855 171.916 155.021 +91.2046 176.452 159.112 +90.8088 180.376 162.649 +88.72 181.027 163.237 +87.3239 183.135 165.138 +87.2523 188.188 169.694 +90.0193 199.804 180.168 +88.8733 203.134 183.172 +86.062 202.711 182.79 +83.5014 202.835 182.902 +80.7456 202.442 182.547 +78.1156 202.316 182.434 +75.4948 202.17 182.302 +73.0129 202.365 182.478 +70.507 202.47 182.573 +67.9317 202.343 182.458 +65.4347 202.415 182.523 +62.8513 202.18 182.311 +60.5165 202.724 182.802 +57.9034 202.31 182.428 +55.504 202.605 182.694 +52.9686 202.374 182.486 +50.5704 202.636 182.722 +48.0137 202.225 182.351 +45.5036 201.942 182.097 +42.9882 201.57 181.761 +40.5885 201.694 181.872 +38.2726 202.243 182.368 +35.7642 201.747 181.921 +33.4044 202.045 182.189 +31.0403 202.327 182.444 +28.5572 201.782 181.952 +26.1851 201.959 182.112 +23.7151 201.308 181.525 +21.3801 201.75 181.923 +18.9598 201.362 181.574 +16.593 201.477 181.677 +14.2249 201.578 181.768 +11.8557 201.662 181.844 +9.48917 201.805 181.973 +7.10442 201.488 181.687 +4.74007 201.675 181.856 +2.36227 201.03 181.274 +1.6575e-14 201.037 181.28 +-2.36315 201.104 181.341 +-4.73135 201.304 181.521 +-7.09657 201.265 181.486 +-9.46125 201.212 181.438 +-11.8383 201.365 181.576 +-14.1935 201.132 181.366 +-16.5625 201.107 181.343 +-18.9459 201.214 181.44 +-21.3095 201.084 181.323 +-23.7412 201.529 181.724 +-26.1276 201.516 181.712 +-28.4945 201.339 181.553 +-30.8592 201.147 181.379 +-33.185 200.718 180.992 +-35.6598 201.158 181.39 +-38.0499 201.066 181.306 +-40.3815 200.665 180.945 +-42.7379 200.395 180.702 +-45.0745 200.038 180.38 +-47.5796 200.396 180.702 +-50.0783 200.664 180.944 +-52.4343 200.332 180.645 +-54.7664 199.912 180.266 +-57.2173 199.913 180.266 +-59.7157 200.042 180.383 +-62.019 199.503 179.897 +-64.571 199.743 180.114 +-67.2059 200.182 180.509 +-69.7809 200.386 180.693 +-72.314 200.428 180.731 +-74.7198 200.095 180.431 +-77.2887 200.174 180.502 +-79.9503 200.449 180.75 +-82.3319 199.994 180.339 +-84.9795 200.161 180.49 +-87.5136 200.026 180.369 +-90.4953 200.86 181.121 +-92.7869 200.126 180.459 +-95.8026 200.917 181.172 +-98.365 200.707 180.983 +-101.07 200.758 181.029 +-103.712 200.649 180.931 +-106.322 200.453 180.754 +-109.085 200.514 180.809 +-111.705 200.28 180.597 +-114.367 200.095 180.431 +-117.312 200.368 180.677 +-120.028 200.211 180.535 +-122.293 199.29 179.705 +-125.391 199.702 180.076 +-128.249 199.685 180.062 +-131.248 199.848 180.208 +-135.198 201.382 181.592 +-139.602 203.477 183.48 +-142.68 203.552 183.548 +-145.161 202.75 182.825 +-144.865 198.147 178.675 +-144.279 193.304 174.307 +-145.856 191.456 172.641 +-149.9 192.819 173.87 +-157.794 198.944 179.393 +-163.885 202.56 182.654 +-167.565 203.073 183.117 +-578.513 687.562 619.992 +-582.218 678.713 612.013 +-571 652.99 588.818 +-572.193 642.018 578.925 +-578.541 636.993 574.393 +-582.209 629.118 567.292 +-585.908 621.428 560.358 +-590.459 614.766 554.35 +-594.545 607.731 548.007 +-598.987 601.169 542.089 +-602.898 594.179 535.787 +-607.057 587.539 529.799 +-611.598 581.359 524.226 +-615.044 574.235 517.802 +-620.006 568.61 512.731 +-624.374 562.508 507.228 +-628.903 556.62 501.918 +-633.082 550.49 496.391 +-637.165 544.348 490.853 +-142.463 119.586 107.834 +-143.261 118.162 106.55 +-143.563 116.353 104.918 +-143.629 114.386 103.145 +-142.765 111.727 100.748 +-142.683 109.729 98.9455 +-142.565 107.741 97.1528 +-147.29 109.386 98.6361 +-148.927 108.688 98.0066 +-690.207 494.999 446.354 +-702.235 494.903 446.267 +-707.804 490.181 442.009 +-711.989 484.522 436.906 +-717.283 479.641 432.505 +-721.694 474.187 427.587 +-726.785 469.199 423.089 +-732.803 464.809 419.13 +-737.088 459.326 414.186 +-731.114 447.587 403.601 +-726.554 436.943 394.003 +-731.66 432.218 389.742 +-735.766 426.911 384.957 +-740.992 422.262 380.764 +-745.287 417.086 376.098 +-750.802 412.593 372.046 +-755.379 407.581 367.526 +-760.384 402.8 363.215 +-766.071 398.368 359.218 +-770.97 393.514 354.841 +-386.829 193.773 174.73 +-385.672 189.579 170.948 +-383.189 184.807 166.645 +-380.37 179.962 162.276 +-798.522 370.565 334.148 +-384.37 174.927 157.736 +-385.04 171.817 154.932 +-381.702 166.978 150.569 +-381.831 163.719 147.629 +-827.621 347.746 313.572 +-137.315 56.5274 50.9722 +-839.446 338.489 305.225 +-846.217 334.152 301.314 +-877.786 339.354 306.004 +-2919.38 1104.7 996.138 +-895.113 331.438 298.866 +-901.311 326.471 294.387 +-910.979 322.695 290.983 +-392.522 135.933 122.574 +-383.185 129.688 116.943 +-381.223 126.052 113.664 +-382.873 123.636 111.486 +-380.721 120.018 108.223 +-383.04 117.831 106.251 +-385.523 115.677 104.309 +-943.723 276.077 248.945 +-382.395 109.013 98.2999 +-382.724 106.27 95.8268 +-381.233 103.05 92.9224 +-382.43 100.574 90.6904 +-382.368 97.7781 88.1691 +-381.795 94.8721 85.5487 +-380.518 91.8206 82.797 +-381.487 89.3282 80.5496 +-381.087 86.5269 78.0236 +-380.268 83.6528 75.4319 +-381.044 81.1449 73.1704 +-380.634 78.3941 70.69 +-381.541 75.9247 68.4633 +-382.709 73.5046 66.281 +-382.394 70.8059 63.8475 +-382.53 68.2036 61.501 +-381.856 65.4713 59.0372 +-381.146 62.753 56.586 +-381.575 60.2342 54.3147 +-381.093 57.5813 51.9225 +-381.46 55.0668 49.6552 +-380.913 52.4301 47.2775 +-379.446 49.6886 44.8055 +-381.693 47.436 42.7743 +-381.445 44.8676 40.4583 +-380.771 42.2621 38.1088 +-381.748 39.8444 35.9287 +-379.624 37.1169 33.4692 +-380.344 34.6823 31.2739 +-381.035 32.2412 29.0728 +-380.405 29.693 26.7749 +-380.938 27.2408 24.5637 +-382.439 24.8486 22.4066 +-379.128 22.1594 19.9817 +-379.872 19.7274 17.7887 +-381.487 17.3283 15.6253 +-378.58 14.7347 13.2867 +-379.339 12.3001 11.0913 +-378.869 9.82564 8.86004 +-381.469 7.41848 6.68944 +-145.778 1.88973 1.70402 +-144.994 0.93972 0.84737 +96 0 0 +96.8963 0.633074 0.560587 +96.8852 1.2661 1.12113 +97.5666 1.91275 1.69374 +96.841 2.53181 2.24192 +96.8078 3.16441 2.80208 +96.8671 3.80068 3.3655 +96.7193 4.42882 3.92172 +97.6615 5.11277 4.52736 +96.701 5.69776 5.04537 +97.4278 6.38152 5.65083 +97.4493 7.02497 6.22062 +97.3637 7.66134 6.78412 +97.2707 8.29718 7.34716 +97.1703 8.93235 7.9096 +97.0625 9.56685 8.47145 +96.9472 10.2006 9.03263 +96.7258 10.8226 9.58341 +96.5959 11.4541 10.1426 +96.2615 12.06 10.6791 +96.9051 12.7925 11.3277 +96.7523 13.4251 11.8879 +96.494 14.0424 12.4345 +96.3266 14.6723 12.9923 +96.2497 15.3166 13.5629 +96.0675 15.9449 14.1192 +95.878 16.5719 14.6744 +96.5563 17.3549 15.3678 +96.4474 18.0032 15.9418 +97.0084 18.7827 16.632 +96.7858 19.4157 17.1926 +96.4594 20.0273 17.7342 +96.3184 20.6774 18.3098 +96.9367 21.4972 19.0358 +96.5868 22.1078 19.5764 +96.3254 22.738 20.1345 +96.1518 23.3896 20.7115 +96.6342 24.2069 21.4352 +97.1048 25.0323 22.1661 +96.9035 25.6908 22.7492 +96.5064 26.2973 23.2863 +97.1329 27.189 24.0759 +97.6525 28.064 24.8507 +97.3217 28.7009 25.4147 +96.8907 29.3076 25.9519 +97.4693 30.226 26.7652 +97.1133 30.8617 27.328 +96.8415 31.5248 27.9152 +97.3839 32.4608 28.7441 +97.0929 33.1269 29.3339 +97.5187 34.0447 30.1466 +97.0279 34.6483 30.681 +97.3394 35.5434 31.4737 +96.9214 36.178 32.0356 +97.1197 37.0478 32.8059 +96.7729 37.7155 33.3971 +97.1242 38.6626 34.2358 +96.6699 39.2957 34.7963 +96.9079 40.2161 35.6114 +96.5224 40.8846 36.2033 +96.735 41.8131 37.0255 +96.244 42.4435 37.5837 +96.3456 43.3406 38.3781 +95.8368 43.9684 38.934 +96.0838 44.9499 39.8032 +96.1466 45.8575 40.6069 +96.1955 46.7693 41.4143 +96.564 47.8506 42.3717 +95.8367 48.3959 42.8546 +95.9283 49.3594 43.7078 +96.2504 50.4566 44.6793 +96.147 51.3444 45.4655 +96.1921 52.3227 46.3317 +96.3824 53.3945 47.2808 +96.3154 54.3375 48.1159 +95.7577 55.0102 48.7116 +95.6645 55.9564 49.5494 +95.7912 57.0453 50.5137 +95.6667 57.9988 51.3579 +95.6814 59.0502 52.289 +95.679 60.1062 53.224 +95.6591 61.1666 54.163 +95.5462 62.1822 55.0623 +96.1659 63.6969 56.4037 +95.3455 64.2727 56.9135 +95.9935 65.8542 58.3139 +95.8073 66.8873 59.2287 +95.6769 67.9745 60.1915 +95.5283 69.065 61.1571 +95.4329 70.2113 62.1722 +95.318 71.3615 63.1906 +95.6741 72.8893 64.5435 +95.4461 73.9963 65.5237 +95.2683 75.1602 66.5544 +94.9342 76.2174 67.4905 +95.2582 77.8285 68.9172 +94.9496 78.9485 69.9089 +95.2185 80.5754 71.3495 +94.8005 81.6467 72.2982 +94.6895 83.0025 73.4988 +94.4898 84.3067 74.6536 +94.5212 85.8445 76.0153 +94.1463 87.0409 77.0747 +92.8792 87.4182 77.4088 +92.103 88.2574 78.152 +91.7403 89.5092 79.2604 +91.837 91.2416 80.7945 +91.7812 92.861 82.2284 +91.6945 94.4871 83.6684 +91.4607 95.9964 85.0049 +91.7149 98.062 86.8339 +91.7012 99.8917 88.4542 +91.0366 101.045 89.4758 +91.8423 103.884 91.9896 +93.3511 107.619 95.2971 +93.5976 109.994 97.3993 +93.4248 111.934 99.1176 +93.1615 113.817 100.785 +93.2734 116.218 102.911 +93.2856 118.564 104.989 +91.3 118.391 104.836 +92.1817 121.981 108.014 +91.2897 123.299 109.181 +92.1871 127.114 112.56 +92.5798 130.356 115.43 +92.8115 133.479 118.196 +92.4325 135.815 120.264 +92.6307 139.093 123.167 +91.7072 140.77 124.652 +93.8084 147.243 130.383 +103.372 165.967 146.964 +100.936 165.819 146.832 +98.6743 165.924 146.926 +96.3776 165.944 146.944 +93.7755 165.396 146.459 +91.4613 165.311 146.383 +90.9919 168.61 149.304 +91.2222 173.377 153.526 +91.2046 177.88 157.513 +90.4936 181.205 160.457 +88.9594 182.985 162.033 +87.3239 184.618 163.479 +87.6104 190.49 168.679 +89.9876 201.35 178.296 +88.5334 203.995 180.638 +86.062 204.352 180.954 +83.3259 204.047 180.684 +80.7172 204.01 180.651 +78.1156 203.954 180.601 +75.4948 203.807 180.471 +72.8058 203.424 180.132 +70.2817 203.457 180.161 +67.7381 203.4 180.111 +65.388 203.908 180.56 +62.6489 203.16 179.898 +60.3217 203.708 180.383 +57.6955 203.215 179.947 +55.3445 203.658 180.339 +52.7778 203.277 180.002 +50.4063 203.614 180.3 +48.0311 203.936 180.585 +45.5201 203.651 180.333 +42.9882 203.201 179.935 +40.618 203.474 180.177 +38.1473 203.212 179.945 +35.7772 203.454 180.159 +33.2947 203.012 179.767 +30.9271 203.221 179.953 +28.5676 203.49 180.191 +26.1851 203.594 180.283 +23.7238 203.012 179.767 +21.3487 203.084 179.831 +18.897 202.32 179.154 +16.6418 203.706 180.382 +14.183 202.611 179.412 +11.8601 203.369 180.083 +9.45776 202.765 179.549 +7.10181 203.044 179.795 +4.72262 202.559 179.366 +2.36227 202.657 179.453 +1.65812e-14 202.739 179.526 +-2.36576 202.956 179.718 +-4.73309 203.008 179.764 +-7.09919 202.969 179.729 +-9.46823 202.99 179.748 +-11.8339 202.92 179.686 +-14.1569 202.237 179.081 +-16.5686 202.81 179.588 +-18.8831 202.171 179.022 +-21.3016 202.637 179.435 +-23.6628 202.49 179.305 +-26.0317 202.402 179.227 +-28.3899 202.224 179.07 +-30.8592 202.775 179.557 +-33.0875 201.748 178.648 +-35.5553 202.193 179.042 +-37.9108 201.952 178.829 +-40.3815 202.289 179.127 +-42.7223 201.944 178.822 +-45.058 201.583 178.502 +-47.406 201.282 178.235 +-49.9143 201.627 178.54 +-52.2817 201.366 178.31 +-54.7664 201.53 178.455 +-57.2381 201.604 178.521 +-59.7157 201.661 178.571 +-62.064 201.264 178.219 +-64.8044 202.088 178.949 +-67.2059 201.802 178.696 +-69.7559 201.935 178.814 +-72.0811 201.399 178.339 +-74.7198 201.714 178.618 +-77.0958 201.291 178.243 +-79.6947 201.425 178.362 +-82.3611 201.684 178.592 +-84.9494 201.71 178.614 +-87.5445 201.717 178.62 +-90.2097 201.847 178.735 +-92.6241 201.392 178.332 +-95.5355 201.979 178.852 +-98.0572 201.699 178.604 +-100.79 201.821 178.713 +-103.389 201.645 178.556 +-106.285 202.006 178.877 +-108.486 201.026 178.009 +-111.399 201.347 178.293 +-114.093 201.232 178.191 +-117.272 201.921 178.801 +-119.581 201.079 178.055 +-122.749 201.653 178.564 +-125.306 201.182 178.147 +-128.249 201.302 178.253 +-130.985 201.062 178.041 +-134.261 201.606 178.522 +-139.103 204.389 180.987 +-142.172 204.469 181.058 +-145.161 204.392 180.989 +-144.961 199.883 176.996 +-144.522 195.196 172.846 +-146.102 193.332 171.196 +-149.6 193.991 171.779 +-156.931 199.457 176.619 +-161.104 200.734 177.75 +-165.11 201.717 178.62 +-1736.28 2080.27 1842.08 +-582.594 684.648 606.256 +-578.352 666.751 590.409 +-571.752 646.716 572.667 +-578.709 642.335 568.788 +-582.549 634.581 561.922 +-586.597 627.194 555.381 +-590.807 620.107 549.105 +-595.603 613.741 543.467 +-598.987 606.035 536.644 +-603.44 599.527 530.881 +-607.24 592.473 524.635 +-612.214 586.655 519.483 +-616.103 579.878 513.482 +-620.447 573.62 507.941 +-624.692 567.35 502.389 +-629.482 561.641 497.333 +-633.082 554.945 491.404 +-637.427 548.98 486.122 +-142.662 120.723 106.9 +-143.595 119.397 105.726 +-143.563 117.295 103.864 +-144.447 115.969 102.691 +-142.696 112.577 99.6871 +-142.405 110.402 97.7613 +-142.845 108.826 96.3658 +-148.775 111.383 98.6297 +-149.925 110.302 97.6724 +-696.465 503.53 445.876 +-703.396 499.733 442.514 +-708.755 494.813 438.157 +-712.505 488.798 432.83 +-718.101 484.074 428.648 +-722.143 478.322 423.555 +-727.087 473.193 419.013 +-732.955 468.668 415.006 +-737.241 463.14 410.111 +-730.188 450.639 399.041 +-727.253 440.904 390.421 +-731.66 435.716 385.827 +-736.711 430.92 381.579 +-740.992 425.68 376.94 +-746.884 421.363 373.117 +-751.043 416.067 368.427 +-756.593 411.54 364.419 +-760.872 406.321 359.797 +-766.562 401.85 355.838 +-771.959 397.208 351.728 +-390.228 197.058 174.495 +-383.671 190.121 168.352 +-385.453 187.404 165.946 +-386.442 184.315 163.211 +-798.777 373.683 330.897 +-384.285 176.304 156.117 +-383.154 172.36 152.625 +-384.373 169.508 150.099 +-382.87 165.493 146.544 +-827.882 350.671 310.519 +-136.266 56.5493 50.0745 +-840.764 341.765 302.633 +-848.424 337.735 299.065 +-878.496 342.378 303.176 +-413.16 157.606 139.56 +-894.666 333.954 295.716 +-901.401 329.146 291.459 +-911.792 325.597 288.316 +-910.749 317.951 281.546 +-382.457 130.49 115.549 +-380.583 126.859 112.333 +-382.781 124.607 110.339 +-382.194 121.458 107.551 +-383.964 119.07 105.437 +-3037.92 918.915 813.699 +-945.025 278.695 246.785 +-382.768 110.002 97.4072 +-381.788 106.869 94.6321 +-380.857 103.781 91.8982 +-382.053 101.289 89.6912 +-383.03 98.7403 87.4345 +-380.562 95.3309 84.4155 +-380.518 92.5638 81.9652 +-382.059 90.1868 79.8604 +-380.705 87.1397 77.1622 +-380.651 84.4153 74.7498 +-381.813 81.9664 72.5813 +-380.923 79.0885 70.0329 +-381.444 76.5198 67.7583 +-382.418 74.0433 65.5654 +-382.199 71.3428 63.1741 +-381.655 68.5984 60.7439 +-381.271 65.9002 58.3546 +-381.146 63.2609 56.0176 +-380.402 60.5349 53.6037 +-381.093 58.0474 51.4009 +-381.657 55.541 49.1816 +-381.208 52.8954 46.8389 +-380.924 50.2858 44.5281 +-380.706 47.6964 42.2352 +-381.742 45.2659 40.0829 +-379.288 42.4382 37.579 +-380.56 40.0419 35.4571 +-381.012 37.5541 33.2541 +-380.046 34.9357 30.9356 +-379.147 32.3412 28.6381 +-378.714 29.8003 26.3881 +-380.938 27.4613 24.317 +-381.244 24.9714 22.1122 +-380.723 22.4327 19.8642 +-379.374 19.861 17.5869 +-379.191 17.3633 15.3752 +-379.18 14.8775 13.1741 +-381.237 12.4617 11.0349 +-380.168 9.93916 8.80113 +-377.97 7.40994 6.5615 +-145.478 1.90111 1.68344 +-144.994 0.947327 0.838858 +96.9 0 0 +96.6963 0.636789 0.553708 +96.8852 1.27616 1.10967 +96.6669 1.91017 1.66096 +96.841 2.55194 2.21899 +96.8078 3.18956 2.77342 +96.8671 3.83089 3.33108 +97.6176 4.50548 3.91766 +96.664 5.10076 4.43528 +96.701 5.74304 4.99376 +97.5275 6.43882 5.59876 +97.4493 7.08081 6.15699 +97.2642 7.71438 6.7079 +97.2707 8.36313 7.27201 +97.1703 9.00335 7.8287 +97.0625 9.64289 8.3848 +96.9472 10.2817 8.94024 +96.7258 10.9086 9.48538 +96.5959 11.5451 10.0389 +96.2615 12.1558 10.5699 +97.0036 12.9072 11.2232 +96.654 13.5181 11.7544 +96.5921 14.1684 12.3199 +96.4246 14.8039 12.8725 +96.2497 15.4384 13.4241 +96.0675 16.0716 13.9748 +96.7549 16.8564 14.6571 +96.6536 17.5105 15.226 +96.4474 18.1463 15.7788 +97.0084 18.9319 16.4619 +96.7858 19.57 17.0168 +96.5558 20.2066 17.5703 +96.3184 20.8417 18.1225 +96.9367 21.6681 18.8411 +96.5868 22.2835 19.3762 +97.1838 23.1229 20.1061 +96.9127 23.762 20.6618 +96.6342 24.3993 21.216 +97.1993 25.2559 21.9608 +96.9035 25.8949 22.5165 +97.5401 26.7902 23.295 +97.1329 27.4051 23.8296 +97.6525 28.2871 24.5965 +97.2286 28.9014 25.1307 +97.8179 29.8233 25.9323 +97.4693 30.4663 26.4914 +97.2053 31.1364 27.0741 +97.6669 32.0462 27.8652 +96.5618 32.4426 28.2099 +97.0019 33.3589 29.0066 +97.4281 34.2834 29.8105 +97.0279 34.9236 30.3672 +96.5305 35.5282 30.8929 +97.0109 36.4992 31.7372 +96.4069 37.0682 32.232 +96.8616 38.05 33.0857 +97.1242 38.9699 33.8856 +96.6699 39.608 34.4404 +96.9079 40.5357 35.2471 +96.4354 41.1723 35.8007 +96.735 42.1454 36.6468 +97.0194 43.1255 37.499 +96.3456 43.6851 37.9856 +96.6894 44.7121 38.8786 +96.6775 45.5871 39.6394 +96.1466 46.222 40.1915 +96.3632 47.2232 41.0621 +96.564 48.2309 41.9383 +96.5 49.1182 42.7098 +95.9283 49.7517 43.2607 +96.0865 50.7711 44.1471 +96.147 51.7525 45.0004 +96.273 52.7828 45.8963 +95.5786 53.3699 46.4068 +95.7564 54.4514 47.3472 +95.6784 55.4015 48.1734 +95.6645 56.4011 49.0426 +95.8695 57.5457 50.0378 +96.2884 58.8397 51.163 +95.6814 59.5195 51.7541 +95.679 60.5839 52.6796 +95.583 61.6037 53.5664 +95.5462 62.6764 54.4991 +95.4919 63.7532 55.4355 +95.4198 64.8341 56.3753 +95.2562 65.8678 57.2742 +95.8073 67.4189 58.6229 +95.0966 68.0992 59.2144 +95.6003 69.6664 60.5772 +95.3616 70.7165 61.4902 +95.2473 71.8753 62.4979 +95.1134 73.038 63.5089 +95.4461 74.5844 64.8535 +95.1306 75.6482 65.7785 +94.9342 76.8231 66.8002 +95.3258 78.5029 68.2608 +94.8827 79.5201 69.1453 +95.2185 81.2158 70.6197 +94.8661 82.3522 71.6079 +95.274 84.1791 73.1965 +94.5541 85.0341 73.9399 +94.712 86.7018 75.39 +93.9575 87.5568 76.1334 +92.8792 88.113 76.617 +91.7951 88.6616 77.0941 +91.1316 89.6222 77.9294 +91.837 91.9668 79.9681 +91.7812 93.599 81.3874 +91.6945 95.2381 82.8125 +91.6349 96.9435 84.2955 +91.6002 98.7184 85.8388 +91.4746 100.437 87.3329 +91.2603 102.099 88.7784 +91.7871 104.647 90.9936 +93.3511 108.475 94.3223 +93.5439 110.804 96.3472 +93.4778 112.888 98.1596 +93.2137 114.786 99.8098 +93.4279 117.336 102.027 +93.2856 119.507 103.915 +91.45 119.528 103.934 +91.4431 121.965 106.053 +91.2897 124.279 108.064 +91.9008 127.727 111.062 +92.5798 131.392 114.249 +92.7653 134.473 116.928 +92.3871 136.827 118.976 +92.3629 139.794 121.555 +91.8388 142.092 123.554 +92.9904 147.119 127.924 +102.569 165.987 144.331 +100.688 166.725 144.972 +98.2269 166.485 144.764 +96.0587 166.71 144.96 +93.4238 166.086 144.417 +91.4613 166.625 144.886 +91.2916 170.51 148.264 +91.2955 174.896 152.077 +91.563 179.999 156.515 +90.4936 182.645 158.815 +88.9594 184.439 160.376 +87.157 185.73 161.498 +89.4987 196.143 170.552 +89.7972 202.521 176.099 +88.2553 204.971 178.229 +85.7613 205.256 178.477 +82.7997 204.37 177.706 +80.4615 204.98 178.237 +77.84 204.849 178.122 +75.2811 204.845 178.119 +72.4435 204.021 177.403 +70.2817 205.074 178.319 +67.5688 204.504 177.823 +65.2246 205.015 178.267 +62.4239 204.04 177.419 +60.1269 204.664 177.962 +57.55 204.314 177.657 +55.1452 204.537 177.851 +52.606 204.226 177.581 +50.2241 204.49 177.811 +47.7185 204.218 177.574 +45.3881 204.674 177.971 +42.8787 204.294 177.64 +40.485 204.419 177.749 +38.036 204.23 177.584 +35.6598 204.398 177.731 +33.185 203.951 177.342 +30.8252 204.162 177.525 +28.369 203.681 177.107 +26.0221 203.936 177.328 +23.6454 203.949 177.34 +21.3095 204.323 177.665 +18.8273 203.176 176.668 +16.5442 204.12 177.489 +14.1255 203.392 176.856 +11.8121 204.156 177.52 +9.42635 203.698 177.122 +7.07825 203.979 177.366 +4.70691 203.49 176.941 +2.35442 203.588 177.027 +1.64648e-14 202.917 176.443 +-2.35791 203.89 177.289 +-4.70168 203.263 176.744 +-7.07301 203.828 177.235 +-9.40541 203.246 176.729 +-11.799 203.93 177.324 +-14.1045 203.091 176.594 +-16.5197 203.819 177.227 +-18.8203 203.1 176.602 +-21.2389 203.646 177.076 +-23.5669 203.272 176.752 +-26.0221 203.936 177.328 +-28.2854 203.081 176.586 +-30.7686 203.787 177.199 +-32.9778 202.678 176.235 +-35.5553 203.8 177.21 +-37.7577 202.736 176.285 +-40.2633 203.3 176.776 +-42.5658 202.804 176.344 +-44.9425 202.665 176.223 +-47.267 202.287 175.895 +-49.9143 203.229 176.714 +-52.129 202.374 175.971 +-54.6468 202.688 176.244 +-56.9886 202.321 175.924 +-59.5209 202.601 176.168 +-61.8615 202.201 175.821 +-64.4076 202.447 176.034 +-66.7463 202.015 175.658 +-69.5556 202.955 176.476 +-71.6929 201.906 175.564 +-74.5328 202.809 176.349 +-76.9028 202.383 175.978 +-79.5243 202.592 176.16 +-81.8056 201.916 175.573 +-84.7088 202.737 176.286 +-87.0501 202.172 175.795 +-89.9241 202.807 176.347 +-92.2986 202.279 175.888 +-95.2351 202.944 176.466 +-97.5441 202.238 175.852 +-100.825 203.496 176.947 +-102.995 202.472 176.056 +-105.919 202.91 176.437 +-108.111 201.924 175.58 +-111.131 202.46 176.046 +-113.781 202.276 175.886 +-116.714 202.557 176.13 +-119.377 202.333 175.935 +-122.417 202.706 176.26 +-124.503 201.481 175.195 +-127.991 202.493 176.074 +-130.328 201.642 175.334 +-134.038 202.87 176.402 +-138.513 205.14 178.376 +-141.849 205.626 178.798 +-144.55 205.15 178.385 +-144.531 200.875 174.667 +-144.667 196.945 171.25 +-145.56 194.146 168.816 +-149.05 194.814 169.397 +-153.683 196.881 171.194 +-163.319 205.111 178.351 +-164.639 202.741 176.29 +-169.521 204.721 178.011 +-173.333 205.315 178.528 +-589.245 684.709 595.376 +-571.365 651.416 566.427 +-578.541 647.252 562.807 +-583.512 640.682 557.093 +-587.916 633.601 550.936 +-591.504 625.773 544.13 +-596.955 620.023 539.13 +-600.057 611.943 532.104 +-605.125 605.979 526.918 +-608.335 598.26 520.206 +-613.507 592.566 515.255 +-616.663 585.019 508.693 +-621.769 579.411 503.816 +-625.837 572.907 498.161 +-630.318 566.856 492.9 +-634.251 560.388 487.276 +-638.608 554.368 482.041 +-141.999 121.117 105.315 +-143.529 120.29 104.596 +-143.968 118.561 103.093 +-143.424 116.063 100.921 +-142.765 113.527 98.7153 +-142.891 111.659 97.0913 +-143.336 110.069 95.7081 +-149.129 112.535 97.8531 +-677.017 502.05 436.548 +-700.781 510.677 444.05 +-704.846 504.744 438.891 +-710.218 499.775 434.57 +-713.979 493.703 429.29 +-719.29 488.73 424.966 +-722.967 482.674 419.7 +-729.804 478.736 416.277 +-736.453 474.647 412.721 +-736.552 466.384 405.536 +-727.256 452.396 393.373 +-729.274 445.643 387.501 +-732.365 439.602 382.248 +-738.76 435.553 378.727 +-742.182 429.752 373.683 +-747.842 425.257 369.775 +-752.249 420.047 365.244 +-757.806 415.476 361.27 +-762.338 410.339 356.803 +-768.447 406.039 353.064 +-773.113 400.963 348.65 +-387.492 197.232 171.5 +-385.672 192.632 167.5 +-383.189 187.784 163.284 +-385.514 185.334 161.154 +-801.066 377.733 328.451 +-383.006 177.113 154.006 +-382.211 173.302 150.691 +-383.597 170.51 148.264 +-384.169 167.374 145.537 +-828.927 353.904 307.731 +-136.003 56.8891 49.4669 +-841.38 344.734 299.757 +-856.901 343.821 298.963 +-880.092 345.726 300.62 +-410.932 158.002 137.388 +-895.74 337.012 293.042 +-909.31 334.673 291.009 +-911.07 327.925 285.141 +-385.906 135.794 118.077 +-383.367 131.839 114.638 +-381.497 128.174 111.451 +-382.231 125.417 109.054 +-381.917 122.334 106.373 +-384.519 120.19 104.509 +-937.661 285.879 248.581 +-945.397 281.021 244.357 +-384.728 111.444 96.9043 +-381.788 107.718 93.6642 +-381.703 104.838 91.1603 +-382.43 102.194 88.8611 +-382.368 99.353 86.3906 +-381.226 96.2561 83.6977 +-380.137 93.2059 81.0455 +-379.675 90.3361 78.5501 +-380.992 87.8987 76.4307 +-379.98 84.936 73.8546 +-381.044 82.4518 71.6945 +-380.73 79.6771 69.2818 +-382.12 77.2646 67.184 +-382.418 74.6318 64.8947 +-382.394 71.9463 62.5596 +-382.141 69.2317 60.1991 +-382.733 66.6786 57.9792 +-381.732 63.8617 55.5298 +-381.282 61.1573 53.1782 +-382.563 58.7343 51.0714 +-379.693 55.6945 48.4281 +-381.503 53.3571 46.3957 +-380.924 50.6855 44.0727 +-380.509 48.0506 41.7815 +-381.149 45.5549 39.6114 +-380.079 42.8647 37.2722 +-380.164 40.3182 35.0579 +-380.12 37.7639 32.8369 +-379.45 35.1581 30.5711 +-381.134 32.7691 28.4938 +-379.41 30.0924 26.1663 +-378.549 27.5059 23.9173 +-378.853 25.012 21.7488 +-379.925 22.5637 19.6198 +-379.374 20.0188 17.407 +-378.293 17.4599 15.1819 +-380.378 15.0432 13.0805 +-378.739 12.4784 10.8504 +-378.969 9.98654 8.68361 +-379.37 7.49649 6.51844 +-145.978 1.9228 1.67194 +-144.594 0.952222 0.827988 +96.9 0 0 +96.8963 0.643085 0.549074 +96.8852 1.28612 1.09811 +96.6669 1.92508 1.64366 +96.841 2.57185 2.19588 +96.8078 3.21445 2.74454 +96.8671 3.86078 3.29638 +96.7193 4.49885 3.84118 +96.7637 5.14588 4.39361 +96.701 5.78786 4.94174 +96.5313 6.42278 5.48384 +97.4493 7.13606 6.09286 +97.3637 7.78249 6.64479 +97.2707 8.42839 7.19626 +97.1703 9.07361 7.74716 +97.0625 9.71814 8.29746 +96.9472 10.3619 8.84712 +96.7258 10.9937 9.38658 +96.5959 11.6352 9.93429 +96.2615 12.2507 10.4598 +97.0036 13.0079 11.1063 +96.654 13.6236 11.632 +96.494 14.2644 12.1792 +96.3266 14.9043 12.7255 +96.2497 15.5588 13.2843 +96.0675 16.197 13.8292 +95.878 16.834 14.373 +96.5563 17.6294 15.0522 +96.3504 18.2695 15.5987 +96.2339 18.9273 16.1604 +96.6892 19.7031 16.8227 +96.6521 20.3846 17.4046 +97.1836 21.193 18.0948 +96.8408 21.8155 18.6264 +96.5868 22.4574 19.1744 +96.4208 23.1205 19.7405 +96.9127 23.9474 20.4466 +96.6342 24.5897 20.995 +96.4429 25.2549 21.5629 +96.9035 26.097 22.282 +97.4461 26.9733 23.0301 +97.1329 27.6189 23.5814 +96.8123 28.2626 24.1309 +97.2286 29.127 24.8689 +97.7252 30.0275 25.6378 +97.4693 30.704 26.2155 +98.0338 31.6469 27.0205 +96.8415 32.0233 27.3419 +97.3839 32.9741 28.1537 +97.0019 33.6192 28.7045 +96.6124 34.2617 29.253 +97.1182 35.229 30.0789 +97.3394 36.1055 30.8273 +96.9214 36.7501 31.3777 +96.496 37.392 31.9257 +96.8616 38.347 32.7411 +97.1242 39.274 33.5326 +96.582 39.8808 34.0507 +96.9079 40.8521 34.88 +96.4354 41.4936 35.4278 +96.6484 42.4363 36.2326 +96.244 43.1147 36.8118 +97.1171 44.3785 37.8909 +96.6041 45.0213 38.4397 +96.7623 45.9831 39.261 +96.231 46.6236 39.8078 +96.3632 47.5918 40.6344 +96.3972 48.5233 41.4298 +96.5 49.5015 42.2649 +96.0931 50.2262 42.8837 +96.0865 51.1673 43.6872 +96.2285 52.2005 44.5694 +96.273 53.1947 45.4183 +96.3021 54.1936 46.2711 +95.7564 54.8763 46.8541 +95.7577 55.8801 47.7111 +95.6645 56.8413 48.5318 +95.7912 57.9474 49.4762 +95.6667 58.9159 50.3031 +95.6814 59.984 51.2151 +95.679 61.0567 52.1309 +95.6591 62.1339 53.0506 +95.6217 63.2154 53.9741 +95.4919 64.2507 54.8581 +96.0886 65.798 56.1791 +95.9198 66.8442 57.0724 +95.8073 67.945 58.0123 +95.6769 69.0495 58.9553 +95.5283 70.1572 59.9011 +95.3616 71.2683 60.8497 +95.2473 72.4362 61.8469 +95.1134 73.608 62.8474 +95.5155 75.2211 64.2247 +95.1994 76.2933 65.1401 +95.4798 77.8683 66.4849 +95.3258 79.1155 67.5498 +94.8827 80.1407 68.4251 +94.6221 81.337 69.4465 +94.8005 82.9378 70.8133 +94.4297 84.0839 71.7919 +94.7469 85.8726 73.3191 +94.7757 87.437 74.6548 +93.0136 87.3533 74.5833 +91.7587 87.729 74.9041 +91.241 88.8143 75.8307 +91.7403 90.9247 77.6326 +91.8972 92.7453 79.1871 +91.7812 94.3295 80.5396 +91.6945 95.9813 81.95 +91.6349 97.7 83.4175 +91.4854 99.364 84.8382 +91.4746 101.22 86.4232 +91.3721 103.022 87.9615 +90.9592 104.512 89.2335 +92.6976 108.556 92.6867 +93.0066 111.027 94.7963 +93.4778 113.769 97.1372 +93.1615 115.617 98.715 +93.0674 117.795 100.575 +92.8288 119.85 102.329 +91.35 120.33 102.739 +91.2461 122.652 104.722 +91.2412 125.182 106.882 +91.0419 127.52 108.878 +92.5328 132.35 113.002 +92.8115 135.59 115.768 +92.3871 137.895 117.737 +92.586 141.225 120.58 +92.0579 143.543 122.559 +90.967 145.041 123.838 +95.6808 156.047 133.235 +100.273 167.334 142.871 +97.2914 166.186 141.892 +95.4207 166.895 142.497 +92.7205 166.122 141.837 +90.8108 166.731 142.357 +91.6662 172.545 147.321 +91.2955 176.26 150.493 +91.2405 180.765 154.339 +90.1084 183.287 156.492 +88.6858 185.307 158.217 +86.5895 185.96 158.775 +90.4103 199.687 170.495 +89.9876 204.535 174.634 +87.8226 205.557 175.507 +85.19 205.48 175.441 +82.3611 204.874 174.924 +79.9787 205.34 175.322 +77.2612 204.912 174.957 +74.8 205.124 175.137 +72.0811 204.584 174.676 +69.6307 204.76 174.827 +67.1817 204.919 174.963 +64.6877 204.914 174.958 +61.9515 204.076 174.242 +59.8672 205.37 175.347 +57.1341 204.42 174.537 +54.8262 204.941 174.981 +52.2817 204.55 174.648 +50.0965 205.563 175.512 +47.406 204.465 174.574 +45.124 205.071 175.092 +42.425 203.71 173.93 +40.2928 205.037 175.063 +37.7855 204.468 174.578 +35.4509 204.786 174.849 +32.9657 204.184 174.335 +30.712 204.999 175.031 +28.2959 204.741 174.811 +25.9454 204.922 174.965 +23.4798 204.101 174.264 +21.129 204.173 174.326 +18.7296 203.699 173.92 +16.4831 204.954 174.992 +14.0365 203.688 173.911 +11.738 204.458 174.568 +9.36005 203.844 174.044 +7.05731 204.963 175 +4.68248 204.013 174.189 +2.34744 204.569 174.663 +1.63607e-14 203.207 173.501 +-2.34831 204.645 174.728 +-4.66852 203.404 173.669 +-7.05207 204.811 174.87 +-9.3426 203.464 173.72 +-11.7249 204.23 174.374 +-14.0156 203.385 173.652 +-16.4587 204.65 174.733 +-18.6808 203.168 173.467 +-21.1447 204.325 174.455 +-23.3577 203.04 173.358 +-25.8496 204.164 174.318 +-28.1182 203.455 173.713 +-30.5422 203.866 174.063 +-32.856 203.504 173.754 +-35.3334 204.108 174.27 +-37.5211 203.037 173.356 +-39.9677 203.382 173.65 +-42.1747 202.509 172.904 +-44.7609 203.421 173.683 +-46.9197 202.367 172.783 +-49.5863 203.469 173.724 +-51.5948 201.863 172.353 +-54.268 202.855 173.2 +-56.6144 202.561 172.949 +-59.1529 202.92 173.256 +-61.4791 202.519 172.913 +-64.0107 202.769 173.127 +-66.3834 202.484 172.883 +-68.9046 202.625 173.004 +-71.1752 202.013 172.482 +-74.025 202.999 173.323 +-76.2964 202.353 172.772 +-79.2403 203.444 173.703 +-81.3086 202.255 172.688 +-84.1676 203.013 173.335 +-86.5248 202.52 172.914 +-89.4482 203.308 173.587 +-91.7451 202.635 173.012 +-94.6342 203.237 173.526 +-96.8943 202.458 172.861 +-99.8791 203.161 173.461 +-102.135 202.348 172.767 +-105.259 203.22 173.511 +-107.512 202.372 172.788 +-110.787 203.407 173.672 +-112.999 202.455 172.858 +-116.076 203.022 173.343 +-118.401 202.244 172.678 +-121.339 202.489 172.887 +-123.912 202.089 172.546 +-127.259 202.906 173.244 +-128.092 199.73 170.532 +-132.744 202.48 172.88 +-137.65 205.453 175.418 +-141.48 206.691 176.475 +-144.128 206.147 176.011 +-144.961 203.044 173.361 +-144.231 197.883 168.955 +-145.511 195.595 167.001 +-147.25 193.963 165.608 +-151.855 196.058 167.397 +-159.971 202.474 172.875 +-162.758 201.988 172.46 +-167.296 203.61 173.844 +-1760.46 2101.56 1794.34 +-590.879 691.965 590.808 +-583.949 670.958 572.872 +-580.722 654.763 559.044 +-585.211 647.562 552.896 +-590.095 640.913 547.219 +-593.362 632.637 540.154 +-598.718 626.707 535.09 +-601.485 618.186 527.814 +-607.472 613.077 523.453 +-610.405 604.979 516.539 +-615.6 599.228 511.628 +-619.029 591.846 505.325 +-623.971 586.001 500.335 +-627.3 578.727 494.124 +-632.696 573.436 489.606 +-636.004 566.324 483.534 +-142.43 124.607 106.391 +-142.53 122.518 104.607 +-143.194 120.946 103.265 +-144.103 119.598 102.114 +-143.151 116.746 99.6793 +-142.765 114.413 97.6871 +-142.822 112.476 96.0333 +-145.649 112.717 96.2391 +-149.695 113.844 97.2014 +-685.362 512.204 437.326 +-703.227 516.459 440.959 +-707.095 510.306 435.706 +-712.339 505.179 431.328 +-716.265 499.148 426.179 +-722.114 494.477 422.19 +-725.738 488.305 416.921 +-732.597 484.318 413.517 +-738.05 479.389 409.308 +-730.96 466.455 398.265 +-726.099 455.201 388.656 +-731.061 450.222 384.405 +-734.869 444.547 379.56 +-741.518 440.59 376.181 +-744.562 434.495 370.977 +-750.558 430.132 367.252 +-754.339 424.501 362.444 +-760.557 420.239 358.805 +-764.699 414.821 354.18 +-771.314 410.735 350.69 +-775.503 405.341 346.085 +-781.285 400.774 342.186 +-389.175 195.898 167.26 +-383.943 189.622 161.901 +-383.068 185.595 158.463 +-382.13 181.595 155.048 +-385.052 179.449 153.216 +-383.754 175.36 149.724 +-385.665 172.767 147.511 +-382.61 167.996 143.437 +-382.26 164.476 140.432 +-839.547 353.916 302.178 +-136.92 56.5371 48.272 +-877.12 354.68 302.83 +-884.172 350.039 298.868 +-412.625 159.891 136.517 +-902.541 342.22 292.192 +-907.962 336.785 287.551 +-911.792 330.746 282.395 +-383.731 136.083 116.189 +-382.002 132.395 113.041 +-382.41 129.484 110.555 +-383.698 126.881 108.332 +-384.035 123.973 105.849 +-384.888 121.245 103.52 +-941.741 289.364 247.062 +-948.654 284.19 242.645 +-960.001 280.254 239.285 +-382.256 108.692 92.8022 +-380.857 105.422 90.0108 +-383.278 103.221 88.131 +-383.03 100.302 85.6388 +-379.709 96.6216 82.4967 +-380.803 94.0975 80.3416 +-380.247 91.1779 77.8488 +-378.697 88.0507 75.1788 +-381.131 85.8582 73.3068 +-380.083 82.8854 70.7685 +-380.73 80.2989 68.5601 +-380.575 77.5527 66.2154 +-382.902 75.3094 64.3001 +-381.326 72.3054 61.7352 +-383.503 70.0205 59.7844 +-381.563 66.9937 57.2 +-381.732 64.3601 54.9514 +-381.771 61.7135 52.6918 +-381.387 59.0108 50.3841 +-380.577 56.2597 48.0352 +-380.913 53.6903 45.8414 +-382.401 51.2792 43.7828 +-379.424 48.2875 41.2284 +-380.556 45.8389 39.1378 +-380.969 43.3004 36.9704 +-380.56 40.6751 34.7289 +-380.219 38.0685 32.5034 +-380.641 35.5437 30.3477 +-380.737 32.9904 28.1676 +-379.907 30.367 25.9277 +-380.241 27.8445 23.774 +-379.749 25.2669 21.5732 +-379.925 22.7398 19.4155 +-379.074 20.1591 17.2121 +-379.591 17.6565 15.0754 +-380.777 15.1764 12.9578 +-380.537 12.6355 10.7884 +-379.169 10.0698 8.59771 +-379.37 7.55499 6.45054 +-145.978 1.93781 1.65453 +-145.494 0.965623 0.824461 +96.7 0 0 +96.8963 0.648013 0.54325 +96.8852 1.29598 1.08646 +96.6669 1.93983 1.62622 +96.6411 2.58621 2.1681 +97.7069 3.26916 2.74065 +96.8671 3.89036 3.26142 +97.7174 4.58011 3.83965 +96.7637 5.18531 4.34701 +96.701 5.83221 4.88933 +96.5313 6.47199 5.42568 +97.4493 7.19074 6.02823 +97.2642 7.83415 6.56763 +97.2707 8.49297 7.11993 +97.1703 9.14313 7.66498 +97.0625 9.7926 8.20945 +96.9472 10.4413 8.75328 +96.7258 11.078 9.28702 +97.2873 11.8083 9.89927 +97.1491 12.4584 10.4443 +96.9051 13.0943 10.9774 +96.654 13.728 11.5086 +96.494 14.3737 12.05 +96.4246 15.0338 12.6033 +96.1519 15.6621 13.13 +96.0675 16.3211 13.6826 +95.878 16.963 14.2206 +96.5563 17.7645 14.8925 +96.4474 18.428 15.4488 +97.0084 19.2259 16.1177 +96.7858 19.8739 16.6609 +96.5558 20.5203 17.2029 +97.1836 21.3553 17.9029 +96.9367 22.0045 18.4471 +96.5868 22.6295 18.971 +96.3254 23.2746 19.5118 +96.9127 24.1309 20.2297 +96.729 24.8025 20.7927 +96.3483 25.4234 21.3133 +96.8093 26.2715 22.0242 +96.5064 26.9179 22.5661 +97.1329 27.8306 23.3313 +97.6525 28.7263 24.0822 +97.3217 29.3782 24.6287 +96.9834 30.0279 25.1733 +97.4693 30.9393 25.9374 +97.1133 31.5899 26.4828 +96.8415 32.2687 27.0519 +97.2926 33.1957 27.829 +97.0019 33.8768 28.4 +97.4281 34.8157 29.1871 +97.0279 35.4659 29.7322 +97.3394 36.3822 30.5003 +96.9214 37.0317 31.0449 +97.2088 37.9568 31.8204 +96.7729 38.6054 32.3642 +97.2125 39.6109 33.2071 +96.6699 40.2229 33.7202 +96.9079 41.1651 34.51 +96.4354 41.8116 35.052 +95.9556 42.4549 35.5913 +96.9333 43.7562 36.6823 +96.4313 44.4028 37.2243 +96.6041 45.3663 38.032 +96.0838 46.0106 38.5722 +96.1466 46.9396 39.351 +96.3632 47.9564 40.2034 +96.564 48.9797 41.0613 +96.5 49.8807 41.8167 +96.5876 50.8714 42.6471 +96.8238 51.9549 43.5555 +96.147 52.5559 44.0594 +96.1921 53.5573 44.8988 +96.3021 54.6088 45.7803 +95.6765 55.2507 46.3184 +95.7577 56.3083 47.2051 +95.6645 57.2768 48.017 +95.7912 58.3914 48.9514 +95.8221 59.4638 49.8505 +95.6814 60.4436 50.6718 +95.679 61.5245 51.578 +95.6591 62.6099 52.4879 +95.5462 63.6495 53.3594 +95.5667 64.7938 54.3187 +95.3455 65.7894 55.1534 +95.2562 66.8904 56.0764 +95.8073 68.4656 57.397 +95.6769 69.5785 58.3299 +95.5283 70.6948 59.2657 +95.4329 71.8681 60.2494 +95.318 73.0454 61.2363 +95.6741 74.6093 62.5474 +95.5155 75.7975 63.5435 +95.1994 76.8778 64.4492 +94.9342 78.0158 65.4032 +95.2582 79.665 66.7858 +95.418 81.2099 68.0809 +95.2185 82.4767 69.1429 +94.8005 83.5733 70.0622 +94.9493 85.1941 71.421 +94.6183 86.4133 72.4431 +94.6484 87.9889 73.764 +92.1954 87.2486 73.1434 +92.0077 88.6411 74.3107 +91.672 89.9178 75.381 +91.7403 91.6213 76.8092 +91.7768 93.3333 78.2444 +91.8406 95.1135 79.7368 +91.6945 96.7167 81.0808 +91.5769 98.3865 82.4806 +91.6002 100.251 84.0437 +91.4746 101.996 85.5065 +91.3721 103.811 87.0285 +91.2904 105.697 88.6089 +91.2815 107.717 90.3024 +93.6513 112.653 94.441 +93.5308 114.705 96.1608 +93.266 116.633 97.7772 +93.1704 118.829 99.6184 +91.3569 118.853 99.6384 +91.65 121.649 101.983 +91.2461 123.592 103.611 +91.3381 126.275 105.86 +91.5191 129.171 108.288 +92.9084 133.905 112.257 +92.8115 136.629 114.54 +92.3871 138.952 116.488 +92.4968 142.17 119.186 +92.1018 144.712 121.317 +91.3545 146.775 123.046 +91.6659 150.644 126.29 +99.1946 166.803 139.836 +96.6 166.269 139.389 +94.7827 167.049 140.043 +92.2907 166.619 139.682 +90.6194 167.655 140.55 +91.5539 173.654 145.58 +91.2955 177.611 148.897 +91.0613 181.792 152.402 +89.3379 183.112 153.508 +87.6598 184.566 154.728 +86.2557 186.663 156.486 +90.2475 200.855 168.383 +89.6068 205.23 172.051 +86.8029 204.728 171.63 +84.5284 205.446 172.232 +81.7471 204.905 171.778 +79.3255 205.223 172.045 +76.4067 204.199 171.187 +74.1854 204.997 171.856 +71.3305 204.005 171.024 +69.2551 205.217 172.04 +66.5043 204.407 171.361 +64.3142 205.292 172.103 +61.4566 203.997 171.017 +59.391 205.298 172.108 +56.552 203.888 170.926 +54.4274 205.009 171.866 +51.7474 204.011 171.029 +49.6045 205.103 171.945 +46.9545 204.069 171.077 +44.7609 204.98 171.841 +42.2529 204.439 171.388 +40.0268 205.243 172.062 +37.4376 204.138 171.135 +35.216 204.988 171.848 +32.6244 203.619 170.7 +30.4517 204.819 171.706 +27.9091 203.49 170.592 +25.7729 205.118 171.957 +23.2706 203.833 170.879 +21.0113 204.591 171.515 +18.5901 203.731 170.794 +16.3366 204.689 171.597 +13.9004 203.259 170.399 +11.6638 204.722 171.625 +9.26931 203.414 170.529 +6.98401 204.388 171.345 +4.62838 203.201 170.35 +2.323 203.99 171.012 +1.62505e-14 203.385 170.504 +-2.32388 204.067 171.076 +-4.61965 202.818 170.029 +-6.98139 204.311 171.281 +-9.27629 203.567 170.657 +-11.642 204.34 171.305 +-13.9214 203.565 170.655 +-16.245 203.541 170.635 +-18.5622 203.425 170.538 +-20.9564 204.057 171.068 +-23.1921 203.145 170.303 +-25.6867 204.432 171.382 +-27.8046 202.728 169.954 +-30.3271 203.981 171.004 +-32.5269 203.01 170.19 +-34.9419 203.393 170.511 +-37.2566 203.151 170.308 +-39.746 203.803 170.855 +-41.8931 202.698 169.928 +-44.3483 203.09 170.257 +-46.4683 201.956 169.306 +-49.0943 202.993 170.176 +-51.2704 202.131 169.453 +-53.949 203.207 170.355 +-56.053 202.089 169.418 +-58.7634 203.128 170.288 +-60.9392 202.279 169.577 +-63.6372 203.131 170.291 +-65.706 201.953 169.304 +-68.4539 202.842 170.049 +-70.787 202.451 169.721 +-73.3035 202.56 169.813 +-75.6349 202.136 169.457 +-78.445 202.945 170.136 +-80.5192 201.826 169.198 +-83.7165 203.473 170.578 +-85.4432 201.52 168.941 +-88.5915 202.904 170.101 +-90.6056 201.652 169.051 +-93.7663 202.916 170.111 +-96.0735 202.281 169.579 +-98.8986 202.708 169.936 +-101.275 202.182 169.496 +-104.673 203.636 170.714 +-106.463 201.934 169.287 +-109.754 203.055 170.227 +-111.788 201.819 169.191 +-115.039 202.75 169.972 +-117.344 201.973 169.321 +-120.51 202.645 169.884 +-119.77 196.831 165.01 +-123.083 197.752 165.782 +-125.286 196.852 165.027 +-129.04 198.339 166.274 +-130.885 196.854 165.029 +-140.187 206.371 173.007 +-142.532 205.426 172.215 +-144.961 204.6 171.523 +-144.425 199.668 167.388 +-144.182 195.293 163.72 +-146.05 193.856 162.516 +-150.84 196.24 164.514 +-155.954 198.902 166.746 +-162.497 203.209 170.357 +-166.978 204.78 171.674 +-172.903 207.985 174.361 +-165.625 195.446 163.849 +-169.721 196.503 164.735 +-171.281 194.598 163.138 +-587.533 655.113 549.202 +-593.422 649.464 544.467 +-595.743 640.043 536.569 +-602.127 635.104 532.429 +-604.28 625.817 524.643 +-609.819 620.161 519.901 +-612.658 611.865 512.946 +-619.048 607.201 509.036 +-621.332 598.599 501.825 +-628.062 594.362 498.273 +-629.717 585.409 490.767 +-636.038 580.882 486.972 +-638.083 572.527 479.968 +-143.349 126.372 105.941 +-142.927 123.801 103.787 +-144.398 122.898 103.029 +-144.509 120.854 101.316 +-142.81 117.36 98.3869 +-142.765 115.29 96.651 +-147.129 116.756 97.88 +-149.644 116.697 97.8305 +-684.904 524.865 440.012 +-700.483 527.516 442.234 +-707.255 523.397 438.781 +-709.271 515.799 432.411 +-716.361 511.924 429.163 +-719.73 505.406 423.698 +-726.944 501.599 420.507 +-728.809 494.129 414.244 +-737.2 491.096 411.702 +-737.138 482.465 404.466 +-725.674 466.631 391.192 +-728.182 460.005 385.637 +-735.18 456.227 382.47 +-738.313 450.053 377.294 +-744.355 445.664 373.615 +-747.26 439.41 368.371 +-754.072 435.457 365.058 +-756.912 429.212 359.822 +-764.602 425.711 356.887 +-768.037 419.824 351.953 +-774.918 415.815 348.591 +-778.387 409.966 343.688 +-786.093 406.331 340.64 +-385.172 195.369 163.784 +-384.111 191.158 160.254 +-385.936 188.417 157.956 +-385.353 184.529 154.697 +-811.799 381.229 319.597 +-385.811 177.651 148.93 +-383.77 173.236 145.229 +-382.177 169.092 141.755 +-383.479 166.265 139.386 +-843.658 358.374 300.436 +-136.92 56.9703 47.76 +-881.711 359.268 301.186 +-886.124 353.5 296.35 +-896.531 350.065 293.471 +-903.794 345.322 289.494 +-912.186 340.944 285.825 +-911.882 333.313 279.427 +-907.939 324.45 271.997 +-383.185 133.823 112.188 +-382.41 130.476 109.382 +-381.956 127.272 106.696 +-381.181 123.994 103.948 +-384.519 122.056 102.324 +-384.225 118.963 99.7309 +-383.053 115.631 96.9375 +-965.416 283.994 238.082 +-381.788 109.39 91.7055 +-382.737 106.754 89.4955 +-382.147 103.704 86.9385 +-381.517 100.671 84.3958 +-379.993 97.4347 81.6827 +-380.708 94.7955 79.4702 +-380.247 91.8765 77.0231 +-381.566 89.3974 74.9448 +-379.117 86.0593 72.1463 +-381.044 83.7319 70.1952 +-380.056 80.7708 67.7128 +-380.575 78.1469 65.5131 +-380.579 75.4259 63.232 +-383.558 73.2858 61.4379 +-381.363 70.1635 58.8203 +-381.856 67.5587 56.6366 +-381.146 64.7537 54.2851 +-381.575 62.1546 52.1062 +-381.975 59.5546 49.9265 +-381.755 56.8663 47.6728 +-380.913 54.1016 45.3552 +-380.628 51.4325 43.1175 +-382.087 48.9989 41.0774 +-380.853 46.2261 38.7528 +-380.079 43.5302 36.4928 +-379.174 40.8375 34.2354 +-378.732 38.2102 32.0328 +-379.153 35.676 29.9083 +-380.737 33.2432 27.8688 +-378.714 30.5035 25.572 +-379.047 27.9697 23.4479 +-380.148 25.4872 21.3667 +-379.128 22.8659 19.1692 +-379.872 20.3564 17.0654 +-379.591 17.7918 14.9155 +-380.378 15.2767 12.807 +-379.538 12.6989 10.6459 +-378.569 10.1309 8.49303 +-147.949 2.96892 2.48894 +-145.878 1.95132 1.63586 +-145.494 0.973022 0.815716 +96.9 0 0 +96.8963 0.652887 0.537382 +96.8852 1.30573 1.07472 +97.5666 1.97261 1.62363 +96.841 2.61105 2.14912 +96.9077 3.26681 2.68886 +96.7672 3.91558 3.22286 +96.7193 4.56743 3.75938 +96.7637 5.22431 4.30005 +97.4985 5.92454 4.8764 +97.5275 6.58797 5.42246 +97.4493 7.24483 5.96311 +97.3637 7.90111 6.50329 +97.37 8.56558 7.05021 +97.1703 9.21191 7.58219 +97.0625 9.86626 8.12077 +96.9472 10.5198 8.65873 +96.5279 11.1384 9.16789 +97.2873 11.8971 9.79234 +96.2615 12.4374 10.2371 +96.9051 13.1928 10.8588 +96.654 13.8312 11.3843 +96.494 14.4819 11.9198 +96.3266 15.1315 12.4545 +96.2497 15.796 13.0014 +96.0675 16.4439 13.5348 +95.878 17.0906 14.067 +95.7784 17.7539 14.613 +96.4474 18.5667 15.2819 +96.1371 19.1965 15.8003 +96.7858 20.0234 16.4809 +96.5558 20.6747 17.0171 +96.3184 21.3245 17.5519 +96.0737 21.9726 18.0853 +96.6824 22.8223 18.7847 +97.1838 23.6586 19.473 +96.9127 24.3125 20.0112 +96.6342 24.9645 20.5479 +97.1993 25.8409 21.2693 +96.8093 26.4691 21.7863 +97.5401 27.4108 22.5614 +97.0392 28.0129 23.057 +97.7459 28.97 23.8448 +97.2286 29.5709 24.3394 +96.9834 30.2538 24.9014 +96.6378 30.9061 25.4384 +97.1133 31.8275 26.1968 +96.8415 32.5114 26.7597 +97.3839 33.4767 27.5542 +97.0929 34.1637 28.1196 +96.6124 34.7839 28.6301 +97.0279 35.7326 29.411 +96.7102 36.4189 29.9758 +96.9214 37.3103 30.7095 +97.2979 38.2774 31.5056 +96.7729 38.8958 32.0146 +97.1242 39.8726 32.8186 +96.582 40.4886 33.3256 +96.9079 41.4747 34.1372 +96.4354 42.1261 34.6734 +96.6484 43.0831 35.4611 +96.9333 44.0854 36.286 +96.3456 44.697 36.7895 +96.6041 45.7075 37.6212 +96.6775 46.6431 38.3912 +96.9057 47.666 39.2332 +96.1955 48.2331 39.6999 +96.564 49.3481 40.6177 +96.0026 49.9968 41.1517 +96.67 51.2978 42.2225 +96.0046 51.9029 42.7205 +96.2285 52.9961 43.6204 +95.6258 53.6425 44.1523 +96.3021 55.0196 45.2858 +95.6765 55.6663 45.8181 +95.7577 56.7319 46.6952 +95.6645 57.7076 47.4983 +95.7912 58.8307 48.4227 +95.7444 59.8626 49.272 +95.6043 60.8492 50.0841 +96.2918 62.3843 51.3476 +95.6591 63.0809 51.921 +96.2255 64.5841 53.1582 +95.5667 65.2812 53.732 +96.0143 66.7492 54.9403 +95.9198 67.8631 55.8571 +95.8073 68.9807 56.777 +95.6769 70.1019 57.6999 +95.6003 71.2802 58.6697 +95.3616 72.3546 59.554 +95.2473 73.5403 60.5299 +95.7442 75.2255 61.9171 +95.4461 76.3121 62.8114 +95.1994 77.4561 63.753 +94.9342 78.6027 64.6967 +95.2582 80.2643 66.0643 +95.2842 81.7065 67.2515 +95.1522 83.0392 68.3483 +94.8661 84.2599 69.3531 +95.0792 85.9523 70.7461 +94.4898 86.9452 71.5634 +93.6943 87.7567 72.2313 +92.0066 87.7251 72.2052 +91.1984 88.5226 72.8617 +91.7336 90.6552 74.6169 +91.3142 91.882 75.6268 +91.8972 94.1589 77.5009 +91.7812 95.7672 78.8246 +91.6357 97.3817 80.1534 +91.693 99.2525 81.6933 +91.6575 101.068 83.1873 +91.418 102.7 84.5308 +91.3721 104.592 86.0884 +90.9592 106.105 87.3334 +91.1726 108.397 89.2202 +92.4693 112.069 92.242 +93.4778 115.503 95.0687 +93.684 118.037 97.1544 +93.4279 120.054 98.8144 +91.3569 119.747 98.5621 +91.4 122.23 100.606 +91.2953 124.589 102.547 +91.2412 127.09 104.606 +91.185 129.668 106.728 +92.9554 134.981 111.101 +92.7653 137.588 113.247 +92.3871 139.997 115.229 +92.4522 143.17 117.841 +92.4086 146.286 120.406 +92.0863 149.064 122.692 +91.4546 151.428 124.638 +95.255 161.382 132.832 +95.8678 166.251 136.838 +93.706 166.394 136.957 +90.9231 165.384 136.125 +91.6144 170.77 140.559 +91.2542 174.388 143.536 +91.2588 178.875 147.23 +90.3804 181.79 149.629 +89.3379 184.489 151.85 +86.9415 184.431 151.803 +87.4908 190.759 157.011 +90.4428 202.803 166.924 +88.9088 205.162 168.866 +85.7522 203.771 167.721 +83.8668 205.372 169.039 +80.5192 203.344 167.37 +78.445 204.472 168.298 +75.5246 203.36 167.383 +73.4906 204.605 168.407 +70.6835 203.675 167.642 +68.554 204.667 168.458 +65.6334 203.248 167.29 +63.7306 204.959 168.699 +60.7818 203.274 167.312 +58.7201 204.505 168.325 +56.053 203.609 167.588 +53.8692 204.433 168.266 +51.0414 202.741 166.874 +49.0943 204.52 168.338 +46.4856 203.551 167.54 +44.3153 204.466 168.293 +41.7367 203.46 167.465 +39.5538 204.344 168.193 +37.0479 203.532 167.524 +34.8635 204.463 168.291 +32.2954 203.081 167.153 +30.1121 204.058 167.957 +27.6478 203.101 167.17 +25.5046 204.51 168.329 +23.0091 203.058 167.134 +20.7603 203.667 167.636 +18.3948 203.107 167.174 +16.1595 203.993 167.904 +13.7487 202.552 166.718 +11.5417 204.103 167.994 +9.17159 202.784 166.908 +6.91071 203.764 167.716 +4.57951 202.568 166.731 +2.30555 203.981 167.894 +1.60362e-14 202.213 166.438 +-2.30031 203.517 167.512 +-4.57951 202.568 166.731 +-6.91333 203.841 167.779 +-9.15763 202.475 166.654 +-11.5242 203.795 167.74 +-13.733 202.321 166.527 +-16.129 203.608 167.587 +-18.332 202.413 166.603 +-20.7289 203.36 167.383 +-22.9481 202.52 166.691 +-25.332 203.126 167.19 +-27.5119 202.103 166.348 +-30.0215 203.444 167.452 +-32.1979 202.468 166.649 +-34.6155 203.009 167.093 +-36.7139 201.698 166.014 +-39.3321 203.199 167.25 +-41.2831 201.248 165.644 +-44.0182 203.094 167.164 +-45.9647 201.27 165.662 +-48.584 202.395 166.588 +-50.6025 200.999 165.439 +-53.4306 202.768 166.896 +-55.5332 201.721 166.033 +-58.2223 202.772 166.898 +-60.3544 201.844 166.135 +-63.0069 202.632 166.783 +-65.077 201.525 165.873 +-67.7028 202.125 166.366 +-69.8035 201.139 165.555 +-72.7957 202.67 166.815 +-74.8631 201.579 165.916 +-77.6214 202.325 166.53 +-79.8175 201.573 165.911 +-82.7542 202.647 166.796 +-84.8561 201.641 165.968 +-87.703 202.38 166.576 +-89.7266 201.197 165.603 +-92.9652 202.696 166.836 +-94.808 201.119 165.538 +-98.1281 202.642 166.792 +-100.128 201.396 165.766 +-103.243 202.366 166.565 +-105.414 201.448 165.809 +-108.491 202.228 166.451 +-110.342 200.708 165.2 +-113.723 201.939 166.213 +-116.001 201.165 165.576 +-119.307 202.132 166.372 +-118.418 196.072 161.384 +-121.835 197.219 162.328 +-122.963 194.655 160.218 +-127.077 196.79 161.975 +-129.296 195.927 161.265 +-136.031 201.759 166.065 +-141.076 204.858 168.615 +-144.913 206.071 169.614 +-144.619 201.44 165.802 +-144.625 197.366 162.449 +-144.6 193.376 159.165 +-148.506 194.656 160.219 +-151.37 194.508 160.097 +-160.616 202.369 166.567 +-166.607 205.862 169.442 +-165.112 200.108 164.706 +-163.664 194.585 160.16 +-167.844 195.793 161.154 +-168.988 193.438 159.216 +-591.328 664.304 546.779 +-176.088 194.167 159.816 +-599.227 648.629 533.877 +-605.536 643.505 529.659 +-607.968 634.373 522.143 +-613.851 628.958 517.686 +-615.762 619.591 509.977 +-622.372 615.054 506.242 +-624.195 605.882 498.693 +-631.02 601.653 495.212 +-633.279 593.148 488.212 +-639.767 588.682 484.535 +-142.684 128.988 106.168 +-144.005 127.905 105.277 +-143.656 125.369 103.189 +-142.792 122.445 100.783 +-142.414 119.998 98.7686 +-142.81 118.243 97.3241 +-143.109 116.436 95.837 +-149.629 119.634 98.4686 +-150.625 118.346 97.4086 +-702.086 542.079 446.178 +-704.834 534.785 440.174 +-710.852 530.015 436.248 +-714.131 523.24 430.671 +-721.115 519.198 427.344 +-723.269 511.711 421.182 +-731.626 508.627 418.643 +-735.549 502.45 413.559 +-735.464 493.626 406.296 +-728.469 480.377 395.392 +-730.194 473.069 389.376 +-732.272 466.068 383.614 +-739.377 462.282 380.498 +-742.46 455.986 375.315 +-749.713 452.249 372.24 +-752.178 445.63 366.791 +-759.103 441.66 363.524 +-761.896 435.288 358.279 +-769.699 431.772 355.385 +-771.619 424.955 349.774 +-779.669 421.512 346.94 +-782.178 415.062 341.631 +-791.068 411.978 339.093 +-383.254 195.858 161.208 +-385.118 193.1 158.938 +-383.49 188.631 155.26 +-383.318 184.936 152.218 +-384.114 181.741 149.589 +-824.509 382.509 314.838 +-383.77 174.539 143.661 +-384.948 171.599 141.241 +-383.044 167.326 137.724 +-382.559 163.728 134.762 +-134.195 56.2567 46.3041 +-137.21 56.3291 46.3637 +-891.978 358.512 295.086 +-906.599 356.659 293.561 +-910.506 350.503 288.494 +-391.245 147.334 121.269 +-909.445 334.923 275.67 +-906.58 326.401 268.656 +-382.821 134.701 110.87 +-382.776 131.583 108.304 +-381.772 128.168 105.493 +-382.93 125.5 103.297 +-382.486 122.324 100.683 +-384.318 119.887 98.6771 +-382.681 116.388 95.797 +-383.141 113.556 93.466 +-382.631 110.456 90.9151 +-383.301 107.715 88.659 +-382.712 104.639 86.1272 +-381.233 101.353 83.4218 +-380.942 98.4124 81.0018 +-381.279 95.6514 78.7293 +-380.819 92.7074 76.3061 +-379.749 89.6414 73.7825 +-380.268 86.9692 71.5831 +-380.756 84.2977 69.3842 +-380.249 81.4193 67.0151 +-380.671 78.7548 64.8219 +-381.547 76.1867 62.7081 +-382.297 73.5943 60.5744 +-383.211 71.0337 58.4668 +-382.44 68.1711 56.1107 +-381.146 65.2408 53.6987 +-382.162 62.7184 51.6226 +-380.505 59.7717 49.1972 +-382.344 57.3824 47.2306 +-381.798 54.6353 44.9695 +-380.037 51.7389 42.5856 +-379.72 49.0617 40.382 +-380.853 46.5738 38.3342 +-379.584 43.8006 36.0516 +-380.857 41.3273 34.0159 +-380.913 38.7193 31.8693 +-379.45 35.9725 29.6085 +-380.637 33.4845 27.5606 +-379.51 30.7975 25.349 +-379.047 28.1801 23.1947 +-378.853 25.5914 21.0639 +-379.227 23.0439 18.9671 +-379.374 20.4825 16.8589 +-379.591 17.9257 14.7543 +-379.879 15.3714 12.652 +-379.538 12.7944 10.5309 +-379.469 10.2313 8.42124 +-148.049 2.99328 2.46372 +-146.678 1.97678 1.62706 +-145.494 0.980341 0.806904 +96.9 0 0 +96.8963 0.657709 0.53147 +96.6853 1.31265 1.06071 +96.6669 1.96885 1.59096 +96.841 2.63033 2.12548 +96.8078 3.28754 2.65654 +96.8671 3.94857 3.1907 +96.8191 4.60591 3.72186 +96.7637 5.26289 4.25275 +96.701 5.91947 4.78331 +96.6309 6.57561 5.31351 +97.3497 7.29087 5.89149 +97.3637 7.95946 6.43175 +97.2707 8.62005 6.96554 +97.1703 9.27993 7.49877 +97.0625 9.93912 8.03144 +96.9472 10.5975 8.56347 +96.7258 11.2437 9.08564 +96.5959 11.8998 9.61579 +96.2615 12.5293 10.1244 +96.9051 13.2903 10.7394 +96.7523 13.9475 11.2705 +96.494 14.5888 11.7887 +96.4246 15.2587 12.33 +96.2497 15.9126 12.8584 +96.0675 16.5654 13.3859 +95.878 17.2168 13.9122 +96.5563 18.0303 14.5696 +96.3504 18.6849 15.0986 +97.0084 19.5135 15.7682 +96.7858 20.1712 16.2996 +96.5558 20.8274 16.8298 +96.3184 21.482 17.3588 +96.8408 22.3116 18.0292 +96.6824 22.9908 18.578 +96.3254 23.6228 19.0887 +96.9127 24.492 19.7911 +96.6342 25.1488 20.3219 +97.1993 26.0317 21.0353 +96.9035 26.6904 21.5676 +97.5401 27.6132 22.3132 +97.2266 28.2742 22.8473 +97.6525 29.1561 23.5599 +97.2286 29.7893 24.0716 +97.7252 30.7103 24.8158 +97.4693 31.4022 25.375 +97.2053 32.093 25.9331 +97.6669 33.0307 26.6909 +97.3839 33.7239 27.2511 +96.9109 34.3514 27.7581 +97.4281 35.3366 28.5542 +97.0279 35.9965 29.0875 +96.6204 36.6538 29.6185 +96.8319 37.5511 30.3437 +96.4069 38.2069 30.8736 +96.7729 39.1831 31.6624 +97.1242 40.1671 32.4575 +96.582 40.7876 32.959 +96.9079 41.781 33.7617 +96.4354 42.4372 34.2919 +96.6484 43.4013 35.0709 +96.244 44.095 35.6316 +97.2028 45.4277 36.7084 +96.6041 46.0451 37.2073 +96.7623 47.0288 38.0022 +96.231 47.6837 38.5315 +96.1955 48.5893 39.2632 +96.564 49.7126 40.1709 +96.0026 50.3661 40.699 +95.9283 51.2801 41.4376 +96.0865 52.3308 42.2866 +96.147 53.3423 43.104 +96.1921 54.3587 43.9252 +96.2217 55.3796 44.7502 +95.6765 56.0774 45.3141 +95.7577 57.1508 46.1815 +95.6645 58.1338 46.9758 +96.3391 59.6041 48.1639 +95.7444 60.3046 48.73 +95.6814 61.348 49.573 +95.679 62.4451 50.4596 +95.6591 63.5467 51.3498 +96.3009 65.1121 52.6147 +96.091 66.1241 53.4324 +96.0143 67.2421 54.3359 +95.33 67.9438 54.9029 +95.1491 69.0127 55.7666 +95.6769 70.6196 57.0651 +95.5283 71.7525 57.9806 +95.3616 72.8889 58.8988 +95.318 74.1384 59.9085 +95.1134 75.2818 60.8324 +95.4461 76.8757 62.1204 +95.1994 78.0281 63.0517 +94.866 79.1264 63.9391 +95.2582 80.857 65.3376 +94.8827 81.963 66.2313 +95.2848 83.7691 67.6907 +95.1286 85.117 68.7799 +95.274 86.7652 70.1117 +93.6542 86.8126 70.1501 +92.3586 87.1447 70.4184 +91.8178 88.1917 71.2644 +91.5719 89.5419 72.3555 +91.7951 91.3853 73.8451 +91.8621 93.1159 75.2435 +91.7768 94.7298 76.5477 +91.7812 96.4744 77.9574 +91.8708 98.3521 79.4747 +91.693 99.9854 80.7945 +91.4854 101.623 82.1182 +91.4746 103.522 83.6524 +91.3721 105.365 85.1413 +91.2352 107.213 86.6347 +91.227 109.263 88.2914 +91.126 111.256 89.9017 +90.9871 113.255 91.5176 +93.684 118.909 96.0856 +93.2734 120.74 97.5657 +93.2348 123.111 99.4815 +92.65 124.817 100.86 +91.3446 125.577 101.474 +91.2412 128.028 103.455 +92.3302 132.266 106.879 +92.5328 135.36 109.379 +92.7653 138.604 112.001 +92.3871 141.031 113.962 +92.4968 144.297 116.601 +92.321 147.227 118.968 +92.0002 150.024 121.229 +92.2576 153.885 124.349 +90.9008 155.143 125.365 +92.8173 162.149 131.026 +92.8687 166.125 134.239 +91.0404 166.821 134.802 +91.4996 171.816 138.838 +91.6288 176.397 142.54 +91.1855 180.051 145.493 +89.2336 180.809 146.105 +88.6375 184.395 149.003 +86.5311 184.916 149.424 +90.5618 198.914 160.735 +89.8894 203.051 164.078 +87.9886 204.538 165.28 +84.8561 203.13 164.142 +82.5437 203.624 164.541 +79.5836 202.466 163.605 +77.5362 203.595 164.518 +74.7253 202.693 163.789 +72.6888 203.867 164.737 +69.7517 202.475 163.612 +67.6527 203.467 164.414 +65.0044 202.787 163.864 +62.9602 203.977 164.826 +60.1294 202.577 163.695 +58.0924 203.813 164.694 +55.4085 202.754 163.838 +53.3708 204.037 164.875 +50.5453 202.254 163.434 +48.584 203.889 164.756 +45.8605 202.296 163.468 +43.7211 203.214 164.209 +41.1423 202.043 163.263 +39.1843 203.93 164.788 +36.4912 201.954 163.192 +34.3675 203.042 164.071 +31.942 202.342 163.505 +29.8177 203.556 164.486 +27.3342 202.28 163.455 +25.1691 203.31 164.287 +22.6692 201.536 162.854 +20.5014 202.612 163.724 +18.1437 201.813 163.077 +15.952 202.86 163.924 +13.6073 201.951 163.189 +11.3803 202.735 163.823 +9.04944 201.561 162.874 +6.84265 203.247 164.236 +4.52017 201.42 162.76 +2.27763 202.998 164.035 +1.58648e-14 201.528 162.847 +-2.27064 202.376 163.532 +-4.53239 201.964 163.199 +-6.8191 202.548 163.671 +-9.05642 201.716 162.999 +-11.3716 202.58 163.697 +-13.5969 201.796 163.064 +-15.9276 202.549 163.673 +-18.1297 201.658 162.952 +-20.5171 202.768 163.849 +-22.7128 201.923 163.167 +-25.0637 202.458 163.599 +-27.2192 201.43 162.768 +-29.7158 202.86 163.924 +-31.7104 200.875 162.32 +-34.237 202.272 163.448 +-36.4077 201.492 162.818 +-38.9182 202.545 163.669 +-41.0328 201.505 162.829 +-43.4075 201.756 163.032 +-45.5132 200.764 162.23 +-48.092 201.824 163.087 +-50.0492 200.269 161.83 +-52.6531 201.293 162.658 +-54.8055 200.548 162.055 +-57.4431 201.535 162.853 +-59.4546 200.304 161.858 +-62.3299 201.935 163.176 +-64.1577 200.145 161.73 +-67.1018 201.811 163.076 +-68.9494 200.146 161.731 +-71.994 201.918 163.163 +-73.7054 199.927 161.553 +-76.9682 202.104 163.312 +-78.7649 200.384 161.923 +-81.7318 201.621 162.923 +-83.8054 200.616 162.11 +-86.8463 201.883 163.134 +-88.9452 200.918 162.355 +-91.6967 201.407 162.749 +-93.7477 200.338 161.886 +-96.8674 201.516 162.837 +-98.802 200.196 161.771 +-102.144 201.689 162.977 +-104.066 200.34 161.887 +-107.19 201.278 162.646 +-109.092 199.899 161.531 +-112.647 201.504 162.828 +-114.171 199.453 161.17 +-118.105 201.572 162.883 +-119.939 200.058 161.659 +-120.328 196.218 158.557 +-122.086 194.694 157.325 +-126.542 197.408 159.518 +-127.299 194.324 157.026 +-131.09 195.867 158.273 +-138.964 203.28 164.263 +-143.148 205.063 165.704 +-144.813 203.2 164.198 +-144.625 198.824 160.662 +-144.6 194.804 157.414 +-145.562 192.206 155.315 +-148.794 192.611 155.642 +-158.16 200.746 162.215 +-162.95 202.831 163.9 +-163.876 200.077 161.675 +-165.352 198.043 160.032 +-165.36 194.319 157.022 +-167.311 192.932 155.901 +-595.123 673.504 544.234 +-173.335 192.543 155.587 +-182.689 199.211 160.975 +-610.415 653.48 528.053 +-611.954 643.247 519.784 +-618.425 638.323 515.806 +-620.267 628.733 508.056 +-627.113 624.315 504.486 +-629.3 615.348 497.24 +-635.425 610.327 493.183 +-638.368 602.33 486.721 +-143.277 132.81 107.319 +-143.268 130.473 105.43 +-144.267 129.084 104.308 +-144.451 126.993 102.618 +-143.194 123.696 99.9541 +-142.752 121.171 97.9139 +-147.857 123.326 99.6549 +-149.029 122.149 98.704 +-687.295 553.572 447.321 +-699.227 553.435 447.211 +-707.602 550.373 444.736 +-709.042 541.951 437.931 +-716.894 538.469 435.117 +-718.773 530.531 428.702 +-726.307 526.799 425.687 +-727.914 518.8 419.224 +-737.2 516.287 417.192 +-738.77 508.376 410.8 +-725.804 490.739 396.548 +-728.317 483.824 390.96 +-735.173 479.812 387.718 +-736.361 472.132 381.512 +-744.739 469.074 379.042 +-746.999 462.161 373.455 +-754.757 458.654 370.621 +-756.621 451.572 364.899 +-764.534 448.105 362.097 +-767.362 441.649 356.88 +-775.281 438.115 354.025 +-777.155 431.165 348.409 +-785.731 427.926 345.791 +-787.865 421.166 340.329 +-795.71 417.455 337.33 +-799.113 411.395 332.433 +-383.608 193.764 156.574 +-384.586 190.568 153.991 +-382.385 185.848 150.177 +-384.2 183.124 147.976 +-383.497 179.227 144.827 +-382.046 175.038 141.442 +-382.61 171.816 138.838 +-382.521 168.332 136.022 +-382.909 165.088 133.402 +-883.563 373.138 301.519 +-137.74 56.9642 46.0307 +-898.542 363.817 293.987 +-911.411 361.2 291.873 +-913.012 354.063 286.105 +-384.145 145.729 117.758 +-383.96 142.446 115.105 +-910.567 330.258 266.869 +-382.821 135.696 109.651 +-382.776 132.555 107.113 +-382.873 129.487 104.633 +-382.93 126.427 102.161 +-382.948 123.376 99.6958 +-383.854 120.627 97.474 +-382.122 117.076 94.6048 +-382.301 114.144 92.2353 +-380.945 110.781 89.5183 +-382.643 108.325 87.5334 +-381.581 105.1 84.9276 +-380.098 101.797 82.2583 +-380.278 98.9665 79.9712 +-380.708 96.2139 77.7469 +-380.533 93.322 75.4101 +-380.514 90.4854 73.1179 +-381.706 87.9435 71.0639 +-378.833 84.4917 68.2746 +-381.019 82.187 66.4123 +-379.222 79.0338 63.8643 +-380.869 76.6129 61.9081 +-382.879 74.2507 59.9992 +-382.141 71.3585 57.6622 +-381.174 68.4471 55.3096 +-381.927 65.8573 53.2168 +-381.282 63.036 50.9371 +-381.681 60.3991 48.8063 +-380.282 57.4945 46.4592 +-381.208 54.9537 44.406 +-379.742 52.0805 42.0843 +-380.016 49.4625 39.9688 +-380.556 46.8813 37.883 +-380.771 44.262 35.7665 +-380.956 41.6433 33.6505 +-380.616 38.9748 31.4941 +-380.939 36.3804 29.3977 +-380.041 33.6789 27.2147 +-379.012 30.9843 25.0373 +-379.345 28.4106 22.9575 +-380.148 25.8685 20.9034 +-379.128 23.208 18.7535 +-380.172 20.6772 16.7085 +-379.591 18.058 14.592 +-377.981 15.4076 12.4503 +-378.639 12.8584 10.3904 +-380.068 10.3232 8.3418 +-378.67 7.71253 6.23221 +-146.378 1.9873 1.60587 +-145.894 0.990295 0.800221 +96.9 0 0 +97.5963 0.667262 0.529313 +96.6853 1.32217 1.04882 +97.7665 2.00569 1.59103 +96.841 2.6494 2.10166 +96.9077 3.31479 2.62949 +96.8671 3.97719 3.15495 +97.7174 4.68233 3.71431 +96.664 5.29557 4.20077 +96.701 5.96237 4.72972 +96.6309 6.62327 5.25398 +97.3497 7.34372 5.82548 +97.3637 8.01715 6.35969 +97.37 8.69138 6.89453 +97.2695 9.35675 7.42235 +97.0625 10.0112 7.94146 +97.0463 10.6853 8.47624 +96.7258 11.3252 8.98385 +96.3984 11.9615 9.48861 +96.2615 12.6201 10.011 +96.0188 13.2641 10.5219 +96.654 14.0343 11.1329 +96.5921 14.7095 11.6685 +96.4246 15.3693 12.1919 +96.2497 16.028 12.7144 +96.0675 16.6854 13.2359 +96.7549 17.5001 13.8822 +96.5563 18.1609 14.4064 +96.4474 18.8393 14.9445 +97.0084 19.655 15.5915 +96.7858 20.3174 16.117 +96.5558 20.9783 16.6413 +97.1836 21.832 17.3185 +96.8408 22.4733 17.8272 +96.5868 23.1345 18.3517 +96.3254 23.794 18.8749 +96.0567 24.4516 19.3965 +96.729 25.356 20.114 +96.3483 25.9909 20.6175 +96.9035 26.8839 21.3259 +97.4461 27.7866 22.042 +97.1329 28.4517 22.5696 +96.8123 29.1147 23.0956 +97.3217 30.0339 23.8247 +96.9834 30.6981 24.3516 +97.4693 31.6298 25.0907 +97.1133 32.2949 25.6183 +96.9332 33.0202 26.1936 +96.5618 33.6816 26.7183 +97.0019 34.6329 27.4729 +97.4281 35.5927 28.2343 +97.0279 36.2574 28.7616 +96.7102 36.9537 29.314 +96.9214 37.8582 30.0314 +97.2088 38.804 30.7817 +96.7729 39.4671 31.3077 +97.1242 40.4582 32.0939 +96.6699 41.1207 32.6194 +96.9079 42.0838 33.3835 +96.4354 42.7447 33.9077 +96.6484 43.7158 34.6781 +96.9333 44.7328 35.4848 +96.4313 45.3938 36.0091 +96.6041 46.3788 36.7905 +96.6775 47.3281 37.5435 +96.1466 47.9873 38.0664 +96.3632 49.0267 38.891 +96.3972 49.9864 39.6522 +96.5 50.994 40.4516 +95.9283 51.6518 40.9734 +96.8238 53.1145 42.1337 +96.2285 53.7744 42.6572 +96.1921 54.7526 43.4331 +96.3021 55.8276 44.2859 +95.5967 56.4367 44.7691 +95.7577 57.565 45.6641 +96.4525 59.0375 46.8322 +95.7912 59.6947 47.3534 +96.2884 61.0868 48.4578 +95.6814 61.7926 49.0177 +95.679 62.8977 49.8943 +96.2674 64.4143 51.0974 +95.5462 65.0701 51.6175 +96.1659 66.6552 52.875 +95.4198 67.3101 53.3945 +95.2562 68.3834 54.2459 +95.8073 69.9937 55.5233 +95.6769 71.1314 56.4258 +95.5283 72.2726 57.331 +95.4329 73.4721 58.2826 +95.2473 74.6203 59.1934 +95.6741 76.2745 60.5056 +95.5155 77.4892 61.4692 +95.1994 78.5937 62.3453 +94.866 79.6999 63.2228 +95.2582 81.443 64.6056 +95.0165 82.6738 65.5819 +95.351 84.435 66.979 +95.063 85.6744 67.9622 +94.5596 86.7383 68.8061 +92.8828 86.7211 68.7924 +92.1677 87.5946 69.4854 +91.629 88.6475 70.3206 +91.6964 90.3131 71.6419 +91.7951 92.0476 73.0178 +91.8012 93.7289 74.3515 +91.8972 95.5418 75.7896 +92.0191 97.4259 77.2842 +91.6945 98.8753 78.4339 +91.8672 100.901 80.0411 +91.4281 102.296 81.1473 +91.4746 104.272 82.7152 +91.2044 105.933 84.0328 +91.0144 107.729 85.4572 +90.7913 109.529 86.8853 +91.2872 112.26 89.0518 +90.8282 113.877 90.3338 +92.1165 117.766 93.4194 +93.2734 121.615 96.4727 +93.0318 123.734 98.1532 +93.2 126.468 100.322 +91.3938 126.555 100.391 +92.6471 130.944 103.873 +92.8074 133.913 106.228 +92.9554 136.964 108.648 +92.7653 139.609 110.746 +92.4325 142.123 112.74 +92.4522 145.273 115.239 +92.4086 148.435 117.748 +91.8711 150.899 119.703 +92.2998 155.072 123.013 +92.0204 158.192 125.487 +90.987 160.103 127.004 +91.7522 165.318 131.14 +91.7437 169.328 134.322 +91.8823 173.784 137.856 +91.5913 177.602 140.885 +90.8557 180.701 143.343 +89.1978 182.046 144.41 +87.4118 183.162 145.295 +89.9171 193.544 153.531 +90.6619 200.576 159.11 +89.0754 202.671 160.771 +86.6559 202.9 160.953 +83.8054 202.07 160.294 +81.6116 202.784 160.861 +78.7942 201.911 160.168 +76.883 203.344 161.305 +73.9811 202.129 160.341 +71.807 202.854 160.916 +69.1047 202.05 160.278 +67.0017 202.97 161.008 +64.2545 201.9 160.16 +62.1198 202.713 160.804 +59.4096 201.603 159.924 +57.2916 202.461 160.604 +54.7431 201.771 160.057 +52.6331 202.675 160.774 +50.011 201.566 159.894 +47.9644 202.748 160.832 +45.409 201.756 160.045 +43.292 202.678 160.776 +40.7668 201.651 159.962 +38.6522 202.619 160.73 +36.1433 201.479 159.825 +33.8585 201.485 159.83 +31.5642 201.398 159.761 +29.4102 202.229 160.42 +26.9788 201.097 159.523 +24.8432 202.132 160.344 +22.4339 200.89 159.358 +20.2817 201.894 160.155 +17.9553 201.166 159.577 +15.7688 201.984 160.226 +13.4608 201.224 159.623 +11.2625 202.091 160.311 +8.94474 200.673 159.186 +6.7458 201.823 160.098 +4.47131 200.686 159.197 +2.25057 202.041 160.271 +1.56933e-14 200.795 159.283 +-2.24621 201.649 159.96 +-4.48178 201.156 159.569 +-6.7458 201.823 160.098 +-8.93776 200.516 159.062 +-11.2494 201.857 160.125 +-13.4503 201.068 159.499 +-15.7566 201.828 160.103 +-17.9274 200.853 159.329 +-20.2503 201.582 159.907 +-22.4077 200.656 159.172 +-24.7857 201.664 159.972 +-26.937 200.786 159.275 +-29.2404 201.061 159.494 +-31.4057 200.387 158.959 +-33.8585 201.485 159.83 +-35.9484 200.392 158.963 +-38.3713 201.147 159.562 +-40.3601 199.639 158.366 +-42.9949 201.286 159.673 +-44.9054 199.519 158.271 +-47.4359 200.514 159.06 +-49.5913 199.875 158.553 +-52.0151 200.295 158.886 +-54.0778 199.319 158.112 +-56.8803 201.007 159.451 +-58.9147 199.924 158.592 +-61.4895 200.656 159.172 +-63.4803 199.468 158.23 +-66.2005 200.543 159.083 +-68.1729 199.326 158.118 +-71.0052 200.589 159.119 +-72.9336 199.267 158.071 +-75.6901 200.188 158.801 +-77.9171 199.663 158.385 +-80.7395 200.617 159.142 +-82.7857 199.61 158.343 +-85.7992 200.895 159.362 +-87.7732 199.708 158.42 +-90.495 200.207 158.817 +-92.7901 199.729 158.437 +-95.9218 200.995 159.441 +-97.9061 199.819 158.509 +-100.788 200.454 159.013 +-102.942 199.612 158.344 +-105.965 200.421 158.986 +-108.076 199.473 158.234 +-111.291 200.522 159.066 +-113.48 199.682 158.4 +-116.321 199.968 158.627 +-118.629 199.307 158.103 +-120.801 198.417 157.397 +-124.41 199.838 158.523 +-123.82 194.562 154.338 +-126.845 195.034 154.713 +-129.982 195.62 155.177 +-137.555 202.678 160.777 +-141.239 203.796 161.663 +-143.649 203.028 161.054 +-144.231 199.719 158.43 +-144.25 195.74 155.273 +-145.105 192.992 153.093 +-146.477 190.985 151.501 +-151.002 193.049 153.138 +-157.704 197.723 156.846 +-589.848 725.365 575.404 +-164.427 198.362 157.353 +-167.127 197.819 156.922 +-169.491 196.863 156.164 +-169.582 193.308 153.344 +-178.44 199.65 158.374 +-608.402 668.232 530.083 +-615 663.16 526.059 +-616.95 653.199 518.157 +-623.3 648.018 514.047 +-625.198 638.325 506.358 +-631.977 633.717 502.703 +-633.907 624.345 495.269 +-142.352 137.72 109.248 +-142.1 135.05 107.13 +-143.792 134.253 106.498 +-144.048 132.133 104.816 +-143.415 129.252 102.53 +-143.192 126.799 100.584 +-143.462 124.825 99.0189 +-144.239 123.32 97.8251 +-149.289 125.423 99.4931 +-677.134 559.023 443.451 +-701.466 569.08 451.429 +-708.199 564.598 447.874 +-715.309 560.4 444.543 +-715.39 550.766 436.901 +-723.656 547.487 434.3 +-724.431 538.582 427.236 +-732.597 535.212 424.563 +-738.015 529.812 420.279 +-734.153 517.879 410.813 +-727.311 504.119 399.898 +-730.559 497.534 394.674 +-732.423 490.078 388.76 +-740.535 486.815 386.171 +-742.766 479.69 380.52 +-749.48 475.482 377.181 +-752.791 469.12 372.135 +-759.248 464.727 368.65 +-762.413 458.327 363.573 +-769.485 454.275 360.359 +-772.506 447.832 355.248 +-779.488 443.685 351.958 +-783.098 437.611 347.14 +-790.973 433.903 344.198 +-793.798 427.414 339.051 +-801.265 423.417 335.88 +-804.199 417.014 330.801 +-812.085 413.165 327.747 +-382.562 190.939 151.464 +-386.371 189.146 150.042 +-384.967 184.819 146.61 +-382.125 179.88 142.692 +-2823.13 1302.82 1033.47 +-382.61 173.061 137.283 +-381.738 169.204 134.223 +-382.384 166.057 131.726 +-384.746 163.66 129.825 +-902.814 376.077 298.328 +-137.043 55.8906 44.3358 +-912.212 364.138 288.856 +-386.433 150.943 119.737 +-383.336 146.475 116.193 +-382.064 142.77 113.254 +-915.733 334.538 265.376 +-921.336 328.947 260.941 +-381.405 133.038 105.534 +-381.222 129.863 103.015 +-382.102 127.067 100.798 +-382.301 124.06 98.4123 +-380.98 120.591 95.6605 +-382.588 118.068 93.6587 +-381.181 114.634 90.9348 +-382.912 112.161 88.9728 +-380.669 108.547 86.106 +-381.581 105.862 83.9762 +-379.058 102.254 81.1143 +-380.562 99.7582 79.1343 +-381.374 97.0804 77.0101 +-380.342 93.9506 74.5274 +-380.131 91.0495 72.2261 +-378.83 87.9127 69.7377 +-381.909 85.795 68.0579 +-381.116 82.8039 65.6851 +-381.251 80.0328 63.4869 +-380.095 77.0113 61.0901 +-382.879 74.7888 59.3271 +-381.947 71.8391 56.9872 +-380.979 68.908 54.662 +-382.025 66.3515 52.6341 +-381.282 63.4929 50.3665 +-382.563 60.9775 48.371 +-381.362 58.0757 46.0692 +-381.503 55.3948 43.9426 +-381.515 52.7029 41.8071 +-381.199 49.9762 39.6442 +-381.346 47.3191 37.5364 +-380.079 44.5018 35.3015 +-381.55 42.0106 33.3254 +-379.922 39.1857 31.0845 +-380.939 36.6441 29.0684 +-379.048 33.8343 26.8394 +-379.51 31.2498 24.7893 +-379.843 28.654 22.7301 +-378.554 25.9468 20.5826 +-379.128 23.3762 18.5434 +-380.072 20.8216 16.5169 +-378.093 18.1172 14.3716 +-380.378 15.6177 12.3889 +-377.84 12.9243 10.2523 +-379.169 10.3734 8.22883 +-149.149 3.05979 2.42722 +-145.478 1.98941 1.57812 +-146.094 0.998844 0.792344 +96.7 0 0 +96.8963 0.66719 0.519518 +96.8852 1.33433 1.039 +96.8668 2.00137 1.5584 +96.841 2.66825 2.07768 +97.7069 3.36591 2.62092 +96.8671 4.00549 3.11894 +97.6176 4.71084 3.66817 +96.664 5.33325 4.15282 +97.5982 6.06052 4.71913 +97.4278 6.72541 5.23685 +96.5534 7.33548 5.71189 +96.5681 8.00824 6.23575 +97.2707 8.74431 6.8089 +97.1703 9.41371 7.33014 +97.0625 10.0824 7.85082 +96.9472 10.7503 8.37089 +96.7258 11.4058 8.88132 +97.2873 12.1577 9.46682 +97.1491 12.8271 9.98806 +97.0036 13.4955 10.5085 +96.7523 14.1486 11.017 +96.5921 14.8142 11.5353 +96.4246 15.4787 12.0527 +96.2497 16.142 12.5692 +96.0675 16.8041 13.0848 +96.7549 17.6246 13.7237 +96.6536 18.3086 14.2563 +96.3504 18.9543 14.7591 +96.2339 19.6368 15.2905 +96.7858 20.462 15.9331 +96.6521 21.1487 16.4678 +96.3184 21.7917 16.9684 +96.8408 22.6332 17.6237 +96.5868 23.2991 18.1423 +96.23 23.9396 18.6409 +96.9127 24.845 19.346 +96.6342 25.5114 19.8649 +97.1993 26.407 20.5622 +96.9035 27.0752 21.0825 +97.5401 28.0113 21.8114 +97.1329 28.6542 22.312 +96.8123 29.3219 22.832 +97.3217 30.2476 23.5528 +96.8907 30.887 24.0507 +96.6378 31.5831 24.5927 +97.2053 32.5556 25.35 +96.9332 33.2551 25.8947 +97.3839 34.2101 26.6382 +97.0019 34.8793 27.1594 +96.6124 35.5459 27.6784 +97.0279 36.5154 28.4333 +96.5305 37.1476 28.9256 +96.9214 38.1276 29.6887 +96.496 38.7935 30.2072 +96.6842 39.7115 30.922 +97.1242 40.7461 31.7276 +96.582 41.3756 32.2178 +96.9079 42.3833 33.0025 +96.4354 43.0489 33.5207 +96.6484 44.0269 34.2823 +96.244 44.7307 34.8303 +96.4313 45.7168 35.5981 +96.6041 46.7088 36.3706 +96.6775 47.6649 37.115 +96.1466 48.3287 37.632 +96.3632 49.3756 38.4471 +96.3972 50.3421 39.1997 +95.8367 51.0039 39.715 +95.9283 52.0193 40.5057 +96.0865 53.0851 41.3356 +96.147 54.1112 42.1346 +96.1921 55.1423 42.9374 +96.3021 56.2249 43.7804 +96.3154 57.2656 44.5908 +95.6784 57.9266 45.1055 +95.6645 58.9718 45.9194 +95.7912 60.1194 46.813 +95.7444 61.1739 47.6341 +95.6814 62.2323 48.4582 +95.679 63.3452 49.3248 +96.2674 64.8727 50.5142 +95.6217 65.5848 51.0687 +95.5667 66.7112 51.9458 +96.0886 68.2642 53.1551 +95.2562 68.87 53.6267 +95.1491 70.0075 54.5125 +95.6769 71.6376 55.7818 +95.5283 72.7869 56.6767 +95.3616 73.9396 57.5743 +95.2473 75.1513 58.5178 +95.7442 76.8735 59.8588 +95.4461 77.9838 60.7234 +95.1994 79.1529 61.6337 +94.866 80.267 62.5012 +95.3258 82.0809 63.9137 +94.9496 83.2029 64.7873 +95.4173 85.095 66.2606 +94.9317 86.1649 67.0937 +94.105 86.9357 67.694 +92.7543 87.2174 67.9133 +91.5317 87.6096 68.2186 +91.629 89.2783 69.518 +91.6342 90.8942 70.7763 +91.672 92.5788 72.088 +91.8621 94.4582 73.5514 +92.2582 96.5996 75.2188 +91.8406 97.9283 76.2535 +91.9884 99.8976 77.7869 +91.4607 101.17 78.7773 +91.6002 103.218 80.3722 +91.418 104.95 81.7208 +91.3721 106.884 83.2266 +91.18 108.693 84.6354 +91.227 110.838 86.3059 +90.6424 112.261 87.4136 +91.3051 115.29 89.7722 +90.7058 116.788 90.9389 +92.1918 121.061 94.2658 +93.3363 125.022 97.3506 +93.05 127.163 99.0174 +92.7234 129.31 100.689 +92.841 132.152 102.902 +92.8074 134.866 105.016 +93.0023 138.008 107.462 +92.7191 140.533 109.428 +92.4325 143.134 111.454 +92.4522 146.307 113.924 +92.3648 149.42 116.348 +92.2585 152.614 118.835 +92.004 155.674 121.219 +92.3107 159.82 124.446 +91.3937 161.964 126.116 +91.2737 165.626 128.967 +91.7046 170.46 132.731 +91.4996 174.293 135.716 +91.5164 178.72 139.163 +90.2326 180.738 140.735 +88.6961 182.31 141.959 +86.8164 183.209 142.659 +90.5327 196.257 152.818 +90.5952 201.855 157.178 +88.3266 202.397 157.599 +85.8944 202.548 157.717 +83.2492 202.157 157.413 +81.0703 202.872 157.97 +78.3264 202.14 157.4 +76.2581 203.126 158.167 +73.2093 201.444 156.857 +71.032 202.092 157.362 +68.5612 201.888 157.203 +66.3257 202.352 157.564 +63.7222 201.653 157.02 +61.6296 202.544 157.714 +58.9597 201.5 156.901 +56.8154 202.206 157.451 +54.3481 201.741 157.089 +52.1148 202.107 157.374 +49.6485 201.529 156.924 +47.4724 202.096 157.365 +45.0617 201.638 157.009 +42.8299 201.941 157.244 +40.4383 201.448 156.861 +38.2531 201.953 157.254 +35.8649 201.35 156.784 +33.7149 202.058 157.336 +31.3326 201.343 156.779 +29.1272 201.708 157.063 +26.8952 201.9 157.213 +24.6419 201.921 157.229 +22.2944 201.062 156.56 +19.9992 200.499 156.122 +17.7949 200.787 156.346 +15.6651 202.083 157.355 +13.3247 200.607 156.206 +11.1491 201.48 156.886 +8.8889 200.839 156.387 +6.67774 201.208 156.674 +4.44513 200.931 156.458 +2.22788 201.427 156.844 +1.55954e-14 200.961 156.482 +-2.23225 201.821 157.152 +-4.45385 201.325 156.765 +-6.68036 201.287 156.736 +-8.87843 200.602 156.202 +-11.136 201.243 156.701 +-13.3561 201.08 156.574 +-15.5857 201.059 156.558 +-17.7739 200.55 156.162 +-20.1169 201.679 157.041 +-22.2683 200.826 156.376 +-24.5749 201.372 156.801 +-26.7906 201.116 156.602 +-28.98 200.688 156.269 +-31.2595 200.873 156.413 +-33.5322 200.963 156.483 +-35.6701 200.256 155.933 +-37.987 200.549 156.161 +-40.188 200.202 155.89 +-42.5328 200.54 156.154 +-44.7665 200.317 155.98 +-47.1443 200.699 156.278 +-49.286 200.057 155.778 +-51.6562 200.329 155.989 +-53.8907 200.043 155.767 +-56.2527 200.203 155.892 +-58.4648 199.809 155.584 +-60.8592 200.012 155.743 +-63.1174 199.738 155.53 +-65.5244 199.907 155.661 +-67.7847 199.601 155.423 +-70.5242 200.647 156.237 +-72.4926 199.472 155.322 +-75.1221 200.1 155.811 +-77.4785 199.952 155.696 +-80.1982 200.69 156.271 +-82.4457 200.206 155.893 +-85.1328 200.752 156.319 +-87.122 199.637 155.45 +-90.0611 200.666 156.252 +-92.277 200.037 155.763 +-95.0113 200.503 156.125 +-96.9744 199.326 155.208 +-100.055 200.412 156.054 +-102.417 200.008 155.74 +-105.008 200.025 155.753 +-107.373 199.585 155.41 +-110.015 199.634 155.448 +-112.625 199.589 155.414 +-115.534 200.026 155.754 +-117.615 199.009 154.961 +-121.103 200.328 155.989 +-122.963 198.919 154.892 +-126.542 200.254 155.931 +-128.888 199.586 155.411 +-131.783 199.741 155.531 +-135.63 201.264 156.718 +-140.523 204.206 159.008 +-142.873 203.368 158.356 +-144.723 201.828 157.157 +-144.2 197.065 153.448 +-144.09 193.006 150.287 +-145.395 190.924 148.666 +-150.375 193.616 150.762 +-156.273 197.323 153.649 +-585.657 725.337 564.795 +-591.151 718.232 559.264 +-167.127 199.226 155.131 +-169.547 198.329 154.432 +-175.869 201.901 157.214 +-608.393 685.553 533.817 +-611.596 676.52 526.783 +-617.175 670.241 521.894 +-619.865 660.955 514.663 +-625.286 654.708 509.799 +-628.729 646.497 503.406 +-634.254 640.527 498.757 +-637.517 632.369 492.404 +-141.975 138.333 107.715 +-143.054 136.924 106.618 +-143.856 135.269 105.329 +-144.242 133.253 103.76 +-142.824 129.635 100.942 +-142.728 127.287 99.1144 +-144.198 126.359 98.3913 +-149.17 128.444 100.015 +-678.179 573.815 446.811 +-685.876 570.269 444.049 +-695.145 567.965 442.255 +-710.652 570.586 444.296 +-716.794 565.559 440.382 +-720.098 558.335 434.757 +-727.756 554.507 431.776 +-730.162 546.705 425.701 +-736.985 542.249 422.231 +-737.793 533.422 415.358 +-726.721 516.285 402.014 +-726.562 507.183 394.927 +-733.049 502.782 391.5 +-736.757 496.486 386.597 +-742.68 491.699 382.87 +-746.238 485.362 377.935 +-752.744 480.95 374.5 +-755.921 474.423 369.417 +-762.558 470.075 366.031 +-766.538 464.085 361.368 +-772.36 459.217 357.577 +-776.686 453.46 353.094 +-782.643 448.651 349.349 +-786.843 442.832 344.819 +-793.185 438.213 341.222 +-797.507 432.466 336.747 +-803.752 427.754 333.077 +-808.452 422.203 328.755 +-816.11 418.167 325.613 +-383.827 192.933 150.231 +-382.724 188.695 146.93 +-382.494 184.939 144.006 +-381.697 180.957 140.905 +-381.788 177.441 138.167 +-382.956 174.451 135.839 +-383.914 171.38 133.448 +-382.646 167.353 130.312 +-383.076 164.11 127.787 +-908.2 381.012 296.682 +-136.954 56.2518 43.8014 +-2919.38 1173.66 913.886 +-383.748 150.962 117.549 +-382.886 147.345 114.733 +-381.794 143.684 111.882 +-384.365 141.416 110.116 +-926.159 333.022 259.313 +-382.227 134.273 104.554 +-381.956 131.038 102.035 +-383.39 128.404 99.9838 +-381.747 124.763 97.1484 +-382.278 121.863 94.8906 +-382.402 118.85 92.5449 +-382.301 115.789 90.1611 +-383.848 113.235 88.1724 +-380.482 109.266 85.0814 +-381.204 106.51 82.9354 +-381.517 103.65 80.7089 +-379.614 100.218 78.0364 +-379.186 97.2103 75.6944 +-379.389 94.3824 73.4924 +-382.235 92.2048 71.7968 +-379.117 88.6061 68.9946 +-381.429 86.2966 67.1963 +-380.73 83.3086 64.8697 +-379.029 80.1329 62.3968 +-379.708 77.4802 60.3313 +-382.199 75.1873 58.5459 +-381.461 72.2582 56.2651 +-382.927 69.7533 54.3145 +-380.56 66.5675 51.8339 +-382.162 64.0923 49.9066 +-382.269 61.3642 47.7822 +-381.166 58.4588 45.5199 +-380.52 55.6452 43.329 +-380.333 52.9134 41.2019 +-381.495 50.3709 39.2221 +-381.742 47.7052 37.1464 +-381.365 44.97 35.0166 +-379.867 42.1228 32.7996 +-380.12 39.4851 30.7457 +-380.244 36.8375 28.6841 +-381.73 34.3163 26.7209 +-379.012 31.4309 24.4742 +-379.744 28.8504 22.4648 +-380.148 26.2414 20.4333 +-379.626 23.5735 18.3559 +-378.476 20.8817 16.2599 +-378.692 18.2749 14.2301 +-379.379 15.6875 12.2153 +-379.039 13.0575 10.1675 +-380.668 10.4885 8.16704 +-147.25 3.04232 2.36895 +-145.478 2.00356 1.56011 +-145.594 1.0025 0.780616 +96.7 0 0 +96.9963 0.672543 0.514008 +96.8852 1.34365 1.02692 +96.9668 2.01742 1.54187 +96.841 2.68689 2.05352 +97.0076 3.36515 2.5719 +96.8671 4.03347 3.08268 +96.8191 4.70493 3.59587 +96.664 5.3705 4.10454 +96.8007 6.05298 4.62614 +97.4278 6.77238 5.17596 +97.5488 7.46286 5.70368 +96.5681 8.06417 6.16325 +97.37 8.81436 6.7366 +97.1703 9.47945 7.24491 +97.2607 10.1735 7.77539 +96.9472 10.8254 8.27357 +96.9236 11.5089 8.79597 +97.2873 12.2426 9.35675 +96.4587 12.8249 9.8018 +97.0036 13.5898 10.3863 +96.8506 14.2618 10.9 +96.5921 14.9176 11.4012 +96.5226 15.6026 11.9247 +96.2497 16.2547 12.4231 +96.1652 16.9387 12.9458 +96.7549 17.7477 13.5642 +96.6536 18.4365 14.0906 +96.3504 19.0867 14.5875 +96.4275 19.8136 15.1431 +96.7858 20.6049 15.7478 +96.6521 21.2964 16.2763 +96.3184 21.9438 16.7711 +97.0326 22.8365 17.4534 +96.5868 23.4619 17.9313 +96.4208 24.1546 18.4608 +96.9127 25.0186 19.1211 +97.4877 25.9165 19.8073 +97.1993 26.5914 20.3232 +96.9035 27.2643 20.8374 +97.5401 28.2069 21.5579 +97.3202 28.9099 22.0951 +96.8123 29.5267 22.5665 +97.4147 30.488 23.3012 +96.8907 31.1027 23.771 +97.5617 32.1078 24.5392 +97.2053 32.783 25.0552 +96.9332 33.4874 25.5936 +97.3839 34.449 26.3285 +97.0019 35.1229 26.8436 +96.6124 35.7941 27.3566 +97.1182 36.8047 28.1289 +96.5305 37.407 28.5893 +97.0109 38.4293 29.3706 +96.496 39.0645 29.856 +96.8616 40.0621 30.6185 +97.1242 41.0307 31.3587 +96.7578 41.7404 31.9012 +96.9079 42.6793 32.6188 +96.4354 43.3496 33.131 +96.6484 44.3344 33.8837 +96.9333 45.3657 34.6719 +96.4313 46.0361 35.1843 +96.6894 47.0765 35.9794 +96.6775 47.9978 36.6835 +96.231 48.7089 37.2271 +96.3632 49.7204 38.0001 +96.564 50.7814 38.811 +95.8367 51.3601 39.2533 +96.0931 52.4727 40.1036 +96.0865 53.4559 40.855 +96.2285 54.5353 41.68 +96.1921 55.5274 42.4382 +96.3824 56.6648 43.3075 +96.3154 57.6656 44.0724 +95.7577 58.3795 44.6181 +95.6645 59.3837 45.3855 +95.8695 60.5887 46.3065 +95.7444 61.6012 47.0803 +96.3759 63.1218 48.2425 +95.679 63.7876 48.7513 +95.6591 64.913 49.6114 +95.6217 66.0429 50.475 +95.6416 67.2298 51.3821 +96.0886 68.741 52.5371 +95.9935 69.8876 53.4134 +95.1491 70.4964 53.8787 +95.7494 72.1926 55.175 +95.5283 73.2952 56.0177 +95.4329 74.5117 56.9475 +95.2473 75.6761 57.8374 +95.6741 77.3537 59.1196 +95.4461 78.5285 60.0174 +95.2683 79.7637 60.9615 +94.866 80.8276 61.7746 +95.2582 82.5954 63.1257 +94.9496 83.784 64.0341 +95.086 85.3913 65.2625 +94.9317 86.7666 66.3136 +93.3906 86.8779 66.3987 +92.7543 87.8265 67.1237 +91.4044 88.0983 67.3314 +91.629 89.9018 68.7098 +91.6964 91.591 70.0008 +91.672 93.2253 71.2499 +91.8621 95.1179 72.6963 +92.2582 97.2742 74.3443 +91.5432 98.2936 75.1234 +91.9884 100.595 76.8826 +91.4607 101.876 77.8614 +91.6002 103.939 79.4378 +91.4746 105.748 80.8205 +91.3721 107.63 82.259 +91.6215 109.982 84.0564 +91.227 111.612 85.3025 +91.0186 113.514 86.7562 +91.3051 116.095 88.7285 +90.9148 117.875 90.0887 +92.1918 121.906 93.1698 +93.4378 126.032 96.3232 +93.05 128.051 97.8661 +93.0681 130.697 99.8882 +92.841 133.075 101.706 +93.1891 136.366 104.221 +93.0023 138.972 106.213 +92.7653 141.584 108.209 +92.4325 144.134 110.158 +92.0952 146.759 112.165 +92.3648 150.464 114.996 +92.2585 153.68 117.454 +92.004 156.762 119.809 +92.1448 160.647 122.779 +91.3937 163.095 124.649 +90.9547 166.199 127.022 +91.7046 171.65 131.188 +91.4996 175.51 134.138 +91.5164 179.968 137.545 +89.8295 181.187 138.477 +88.6961 183.583 140.308 +86.7814 184.414 140.943 +90.5327 197.627 151.042 +90.495 203.04 155.179 +88.3266 203.81 155.767 +85.6088 203.285 155.366 +83.2492 203.569 155.583 +80.7696 203.531 155.554 +78.3264 203.552 155.57 +75.7469 203.173 155.28 +73.2093 202.85 155.034 +70.9785 203.35 155.416 +68.5612 203.298 155.375 +66.0252 202.842 155.028 +63.7222 203.061 155.195 +61.4195 203.264 155.349 +58.9597 202.907 155.077 +56.599 202.842 155.028 +54.3481 203.15 155.263 +52.1148 203.519 155.544 +49.6485 202.936 155.099 +47.2901 202.726 154.939 +45.0617 203.047 155.184 +42.7968 203.194 155.297 +40.4383 202.855 155.037 +38.1348 202.735 154.946 +35.8649 202.756 154.961 +33.5844 202.682 154.905 +31.3326 202.749 154.957 +29.0253 202.406 154.694 +26.8952 203.31 155.385 +24.5461 202.541 154.797 +22.2944 202.466 154.74 +19.9992 201.899 154.307 +17.7949 202.189 154.528 +15.604 202.701 154.919 +13.3247 202.008 154.39 +11.1099 202.173 154.516 +8.8889 202.242 154.568 +6.65418 201.899 154.306 +4.44513 202.334 154.639 +2.22439 202.516 154.778 +1.55954e-14 202.365 154.663 +-2.22439 202.516 154.778 +-4.45385 202.731 154.943 +-6.68297 202.773 154.974 +-8.87843 202.003 154.386 +-11.1404 202.728 154.94 +-13.3561 202.484 154.754 +-15.5857 202.463 154.738 +-17.7739 201.951 154.346 +-20.0541 202.454 154.731 +-22.2683 202.228 154.558 +-24.4886 202.066 154.434 +-26.7906 202.521 154.782 +-29.0027 202.248 154.573 +-31.2595 202.276 154.595 +-33.4408 201.815 154.242 +-35.6701 201.655 154.12 +-37.9575 201.792 154.225 +-40.188 201.6 154.078 +-42.4007 201.314 153.859 +-44.7665 201.716 154.166 +-46.9621 201.32 153.864 +-49.286 201.454 153.967 +-51.4768 201.028 153.641 +-53.8907 201.44 153.956 +-56.2527 201.601 154.079 +-58.4648 201.204 153.775 +-60.6958 200.868 153.519 +-63.1174 201.133 153.721 +-65.6246 201.611 154.086 +-67.7847 200.995 153.616 +-70.2837 201.36 153.894 +-72.4926 200.865 153.516 +-74.9516 201.04 153.65 +-77.4785 201.349 153.886 +-79.9577 201.485 153.99 +-82.4457 201.604 154.081 +-84.879 201.552 154.041 +-87.122 201.031 153.643 +-89.7607 201.392 153.919 +-92.277 201.435 153.952 +-94.6961 201.234 153.798 +-96.9744 200.718 153.404 +-99.6883 201.073 153.675 +-102.417 201.405 153.929 +-105.008 201.422 153.942 +-107.373 200.978 153.603 +-110.055 201.101 153.696 +-112.625 200.983 153.607 +-115.202 200.845 153.501 +-117.615 200.398 153.16 +-120.328 200.437 153.189 +-122.963 200.309 153.091 +-125.605 200.159 152.977 +-128.888 200.98 153.604 +-131.645 200.924 153.562 +-135.63 202.67 154.896 +-140.189 205.143 156.785 +-142.873 204.788 156.515 +-144.379 202.753 154.959 +-144.2 198.442 151.664 +-143.887 194.08 148.33 +-145.395 192.257 146.937 +-149.591 193.952 148.233 +-156.273 198.701 151.863 +-586.677 731.675 559.202 +-591.151 723.248 552.761 +-167.347 200.882 153.53 +-169.547 199.714 152.637 +-604.186 698.461 533.817 +-608.393 690.341 527.611 +-612.642 682.409 521.549 +-617.175 674.922 515.826 +-621.53 667.359 510.047 +-625.286 659.281 503.872 +-630.007 652.336 498.564 +-634.254 645.001 492.958 +-638.825 638.091 487.677 +-141.975 139.299 106.463 +-143.245 138.064 105.519 +-143.856 136.214 104.105 +-143.723 133.701 102.184 +-142.824 130.54 99.7686 +-143.192 128.593 98.2803 +-144.198 127.241 97.2474 +-149.981 130.044 99.3897 +-678.179 577.823 441.616 +-685.257 573.733 438.49 +-695.145 571.932 437.113 +-710.091 574.117 438.784 +-716.794 569.509 435.262 +-723.165 564.629 431.532 +-727.756 558.379 426.756 +-730.815 551.015 421.127 +-736.985 546.036 417.322 +-736.982 536.557 410.078 +-726.721 519.89 397.34 +-728.584 512.147 391.421 +-733.049 506.294 386.948 +-737.898 500.727 382.694 +-742.68 495.133 378.418 +-747.396 489.509 374.12 +-752.744 484.309 370.146 +-757.33 478.626 365.802 +-762.558 473.358 361.776 +-767.014 467.617 357.388 +-772.36 462.424 353.42 +-777.41 457.052 349.313 +-782.643 451.784 345.287 +-788.552 446.894 341.551 +-793.185 441.273 337.254 +-798.99 436.297 333.451 +-803.752 430.741 329.205 +-809.953 425.94 325.536 +-816.11 421.088 321.827 +-384.586 194.665 148.778 +-382.724 190.012 145.222 +-382.835 186.397 142.458 +-381.697 182.221 139.267 +-382.477 179.003 136.807 +-382.956 175.669 134.26 +-383.392 172.342 131.717 +-382.646 168.521 128.797 +-382.901 165.18 126.243 +-908.2 383.673 293.232 +-136.511 56.4612 43.152 +-2919.38 1181.85 903.261 +-383.032 151.732 115.965 +-382.886 148.374 113.399 +-381.794 144.687 110.581 +-384.365 142.404 108.836 +-928.251 336.106 256.878 +-382.227 135.211 103.339 +-383.148 132.365 101.163 +-383.39 129.301 98.8213 +-381.747 125.634 96.0189 +-382.278 122.714 93.7874 +-381.843 119.506 91.3353 +-382.301 116.598 89.1129 +-382.912 113.748 86.9347 +-380.482 110.029 84.0923 +-380.639 107.095 81.8497 +-381.517 104.374 79.7706 +-380.847 101.246 77.3799 +-379.186 97.8892 74.8143 +-380.533 95.3284 72.8572 +-382.235 92.8487 70.962 +-380.651 89.5856 68.4681 +-381.429 86.8993 66.4151 +-380.827 83.9119 64.1318 +-379.029 80.6925 61.6713 +-380.288 78.1408 59.7211 +-382.199 75.7125 57.8652 +-382.336 72.9298 55.7385 +-382.927 70.2404 53.683 +-382.318 67.342 51.4679 +-382.162 64.54 49.3263 +-380.799 61.5552 47.0451 +-381.166 58.8671 44.9907 +-381.503 56.1786 42.936 +-380.333 53.283 40.7229 +-380.016 50.5259 38.6157 +-381.742 48.0384 36.7145 +-380.969 45.2371 34.5736 +-379.867 42.417 32.4183 +-380.318 39.7816 30.4041 +-380.244 37.0948 28.3506 +-379.843 34.385 26.2796 +-379.012 31.6504 24.1897 +-379.345 29.0214 22.1803 +-380.148 26.4247 20.1958 +-379.626 23.7381 18.1425 +-378.476 21.0275 16.0708 +-377.395 18.3396 14.0165 +-379.379 15.797 12.0733 +-378.14 13.1175 10.0254 +-380.668 10.5617 8.07209 +-146.75 3.05318 2.33347 +-145.478 2.01756 1.54197 +-145.994 1.01228 0.773659 +97.1 0 0 +96.8963 0.676454 0.507396 +96.9852 1.35425 1.0158 +96.6669 2.02497 1.51889 +97.0408 2.71089 2.03339 +96.8078 3.38124 2.53621 +97.8657 4.10297 3.07757 +96.8191 4.73718 3.55327 +96.8635 5.41847 4.06429 +97.5982 6.14468 4.60901 +97.6271 6.83274 5.12511 +97.4493 7.50635 5.63037 +97.5626 8.20304 6.15295 +97.2707 8.86573 6.65002 +97.3688 9.56394 7.17374 +96.9633 10.212 7.65983 +97.1453 10.9219 8.19231 +96.7258 11.5642 8.67409 +96.6947 12.2514 9.18958 +96.2615 12.8864 9.66583 +96.3142 13.5857 10.1904 +96.7523 14.345 10.76 +96.6903 15.0352 11.2776 +96.3266 15.6777 11.7596 +96.3475 16.3828 12.2884 +96.0675 17.0375 12.7795 +96.1703 17.7615 13.3226 +96.6536 18.5629 13.9237 +96.4474 19.2368 14.4292 +96.2339 19.9095 14.9337 +96.8824 20.7669 15.5768 +96.5558 21.421 16.0675 +96.4145 22.1163 16.589 +96.8408 22.9475 17.2125 +96.778 23.6695 17.754 +97.1838 24.5126 18.3864 +97.0078 25.2148 18.9131 +96.6342 25.8656 19.4013 +97.1993 26.7737 20.0824 +96.8093 27.4245 20.5706 +97.6341 28.4276 21.323 +97.1329 29.0521 21.7914 +96.9056 29.7577 22.3207 +97.2286 30.6383 22.9812 +96.9834 31.3458 23.5119 +97.4693 32.2972 24.2256 +97.2974 33.0389 24.7819 +96.8415 33.685 25.2665 +97.4753 34.7177 26.0411 +97.0019 35.3637 26.5256 +96.703 36.0733 27.0579 +97.0279 37.0225 27.7699 +96.7102 37.7335 28.3032 +97.7268 38.9783 29.2369 +97.2979 39.6591 29.7476 +97.6599 40.6692 30.5052 +97.2125 41.3494 31.0154 +97.3729 42.2937 31.7237 +96.9953 43.0106 32.2615 +96.4354 43.6467 32.7386 +96.8216 44.7182 33.5423 +96.9333 45.6767 34.2613 +96.517 46.3928 34.7984 +96.6894 47.3992 35.5533 +96.7623 48.3691 36.2808 +96.231 49.0428 36.7861 +96.3632 50.0612 37.55 +96.564 51.1294 38.3513 +96.0026 51.8016 38.8554 +95.9283 52.7417 39.5606 +95.5131 53.5011 40.1302 +95.4958 54.4911 40.8728 +96.273 55.9549 41.9708 +96.3021 57.0056 42.7589 +95.6765 57.6757 43.2615 +95.6784 58.731 44.053 +95.7433 59.84 44.8849 +95.7912 60.9542 45.7207 +95.7444 62.0234 46.5226 +95.6814 63.0965 47.3275 +95.7556 64.2763 48.2125 +95.583 65.3059 48.9848 +96.3009 66.9678 50.2314 +95.6416 67.6906 50.7735 +95.4941 68.7839 51.5936 +95.9935 70.3667 52.7808 +95.8805 71.5252 53.6497 +95.6769 72.6323 54.4802 +96.1757 74.2977 55.7294 +95.4329 75.0224 56.2729 +95.318 76.2514 57.1948 +95.6741 77.8839 58.4193 +95.4461 79.0667 59.3065 +95.1306 80.1945 60.1524 +94.866 81.3816 61.0429 +95.3933 83.2799 62.4668 +94.9496 84.3583 63.2756 +94.4896 85.4374 64.0851 +94.9973 87.4222 65.5738 +92.8061 86.9262 65.2018 +92.3043 87.9997 66.007 +91.9769 89.2581 66.9509 +91.7549 90.6428 67.9895 +91.9454 92.4692 69.3594 +91.7951 93.9899 70.5001 +92.2882 96.2138 72.1682 +92.3184 98.005 73.5117 +91.9596 99.4169 74.5708 +91.5182 100.767 75.5837 +91.693 102.835 77.1348 +91.6002 104.651 78.4969 +91.5312 106.539 79.913 +91.428 108.434 81.3345 +91.3456 110.402 82.8106 +91.336 112.512 84.3929 +90.9648 114.224 85.6776 +91.4641 117.094 87.8299 +91.0192 118.819 89.1242 +92.2433 122.81 92.1178 +90.9509 123.518 92.6489 +93.05 128.929 96.707 +92.9696 131.453 98.6007 +92.8895 134.056 100.553 +92.8551 136.809 102.618 +93.0493 139.995 105.007 +92.7653 142.554 106.927 +92.7957 145.692 109.281 +92.7645 148.84 111.642 +92.4086 151.567 113.688 +92.2155 154.661 116.008 +92.1308 158.054 118.553 +92.1034 161.675 121.27 +91.4344 164.286 123.228 +91.792 168.879 126.673 +91.7437 172.901 129.69 +91.4996 176.713 132.549 +91.5164 181.202 135.916 +88.8032 180.345 135.273 +88.6961 184.842 138.646 +91.0189 194.745 146.075 +90.6011 199.132 149.365 +88.4254 199.757 149.834 +88.3918 205.358 154.036 +83.5463 199.747 149.827 +83.2801 205.04 153.797 +78.815 199.967 149.992 +78.2971 204.87 153.67 +73.9292 199.657 149.759 +73.5125 205.086 153.832 +69.3484 200.042 150.048 +68.6388 204.923 153.709 +64.4729 199.431 149.589 +63.7948 204.686 153.531 +59.9254 199.678 149.775 +59.1621 204.999 153.766 +55.257 199.391 149.559 +54.5144 205.168 153.893 +50.7192 199.427 149.586 +49.6485 204.327 153.262 +46.2878 199.79 149.859 +45.0617 204.438 153.346 +41.757 199.616 149.728 +40.5947 205.036 153.794 +37.3662 200.011 150.024 +35.8927 204.304 153.245 +32.8926 199.867 149.917 +31.4789 205.092 153.836 +28.4253 199.581 149.702 +26.8847 204.625 153.485 +23.9614 199.071 149.32 +22.2944 203.854 152.907 +19.5599 198.817 149.129 +17.8577 204.293 153.236 +15.2316 199.22 149.431 +13.3718 204.112 153.101 +10.8569 198.923 149.208 +8.88541 203.548 152.678 +6.50235 198.644 148.999 +4.44513 203.721 152.807 +2.17291 199.185 149.405 +1.55954e-14 203.752 152.831 +-2.16593 198.545 148.925 +-4.4556 204.201 153.167 +-6.49974 198.564 148.939 +-8.90984 204.107 153.097 +-10.8481 198.763 149.088 +-13.3509 203.792 152.861 +-15.2194 199.06 149.311 +-17.8367 204.054 153.057 +-18.9243 192.357 144.284 +-22.277 203.694 152.787 +-23.0988 191.904 143.944 +-26.7593 203.67 152.769 +-28.3121 198.786 149.106 +-31.2473 203.583 152.704 +-32.6054 198.123 148.608 +-35.6561 202.958 152.235 +-37.0706 198.428 148.837 +-40.188 202.982 152.253 +-41.3939 197.88 148.426 +-44.7839 203.178 152.4 +-45.8869 198.059 148.561 +-49.2669 202.757 152.084 +-50.1809 197.31 147.999 +-53.9115 202.899 152.191 +-54.7592 197.595 148.212 +-58.4873 202.661 152.012 +-59.5286 198.355 148.783 +-63.1416 202.59 151.959 +-63.7968 197.339 148.021 +-67.8365 202.527 151.912 +-68.6268 197.96 148.486 +-72.7407 202.934 152.217 +-73.1908 197.663 148.263 +-77.4493 202.652 152.006 +-77.7926 197.374 148.047 +-82.5075 203.138 152.37 +-82.6579 197.623 148.233 +-87.415 203.09 152.334 +-87.2905 197.193 147.911 +-92.277 202.815 152.128 +-92.2446 197.367 148.042 +-97.3686 202.915 152.203 +-97.5626 198.134 148.617 +-102.343 202.638 151.995 +-102.368 197.703 148.293 +-107.373 202.356 151.784 +-107.383 197.563 148.189 +-112.666 202.434 151.842 +-112.257 197.054 147.807 +-117.953 202.353 151.781 +-117.573 197.189 147.908 +-123.577 202.688 152.033 +-122.972 197.307 147.997 +-128.752 202.143 151.624 +-128.366 197.263 147.964 +-135.771 204.27 153.219 +-134.034 197.48 148.126 +-142.97 206.332 154.766 +-142.261 201.149 150.878 +-144.25 199.871 149.919 +-144.344 196.03 147.038 +-145.55 193.78 145.351 +-145.516 189.961 142.486 +-156.485 200.335 150.268 +-152.271 191.206 143.42 +-591.151 728.206 546.214 +-164.643 198.991 149.259 +-170.274 201.946 151.476 +-1855.83 2160.12 1620.26 +-608.393 695.073 521.361 +-623.675 699.461 524.653 +-616.881 679.224 509.473 +-632.713 684.024 513.074 +-625.286 663.8 497.904 +-143.059 149.145 111.871 +-633.7 648.854 486.693 +-143.49 144.307 108.242 +-142.226 140.502 105.388 +-143.436 139.195 104.408 +-143.92 137.208 102.917 +-143.853 134.739 101.065 +-142.89 131.496 98.6325 +-148.626 134.388 100.802 +-144.198 128.113 96.0955 +-686.129 599 449.299 +-677.77 581.432 436.122 +-694.274 585.267 438.998 +-696.881 577.291 433.015 +-703.853 572.974 429.778 +-715.804 572.621 429.512 +-714.82 561.939 421.5 +-727.109 561.707 421.326 +-730.815 554.792 416.139 +-737.205 549.942 412.501 +-732.19 536.722 402.586 +-727.91 524.31 393.275 +-741.241 524.615 393.504 +-732.37 509.292 382.011 +-750.825 512.992 384.786 +-741.991 498.064 373.588 +-761.208 501.973 376.521 +-752.666 487.578 365.724 +-770.556 490.323 367.782 +-762.085 476.306 357.269 +-781.136 479.491 359.657 +-772.36 465.594 349.233 +-791.719 468.654 351.529 +-782.158 454.599 340.986 +-802.392 457.855 343.429 +-792.939 444.16 333.156 +-813 446.99 335.279 +-803.503 433.559 325.205 +-824.796 436.72 327.575 +-815.356 423.582 317.721 +-835.464 425.782 319.372 +-383.657 191.78 143.851 +-383.603 188.05 141.053 +-383.24 184.212 138.174 +-384.114 181.002 135.766 +-383.909 177.313 132.999 +-382.173 172.972 129.743 +-382.559 169.638 127.242 +-382.198 166.006 124.518 +-908.465 386.416 289.844 +-383.455 159.685 119.777 +-911.411 371.495 278.652 +-136.835 54.5767 40.937 +-383.066 149.461 112.108 +-382.606 145.989 109.504 +-386.087 144.022 108.029 +-382.912 139.597 104.709 +-383.05 136.431 102.334 +-961.079 334.298 250.751 +-382.562 129.905 97.4396 +-382.301 126.678 95.019 +-382.741 123.706 92.7893 +-382.122 120.413 90.3195 +-382.301 117.397 88.0573 +-380.008 113.659 85.2534 +-380.669 110.837 83.137 +-381.77 108.149 81.1209 +-381.706 105.141 78.8647 +-381.131 102.016 76.5203 +-381.279 99.1041 74.3362 +-378.721 95.5242 71.651 +-380.227 92.9939 69.7531 +-380.651 90.1997 67.6571 +-380.756 87.3406 65.5126 +-381.116 84.5511 63.4202 +-379.416 81.328 61.0027 +-380.869 78.7965 59.1038 +-382.297 76.2508 57.1943 +-381.363 73.243 54.9382 +-381.563 70.4699 52.8582 +-380.56 67.4919 50.6245 +-381.282 64.8327 48.6298 +-381.093 62.0249 46.5238 +-381.166 59.2706 44.4578 +-379.733 56.3013 42.2306 +-381.81 53.8566 40.3969 +-380.016 50.8722 38.1583 +-380.853 48.255 36.1952 +-380.474 45.4881 34.1198 +-380.56 42.7857 32.0928 +-380.616 40.0856 30.0675 +-380.542 37.3783 28.0368 +-379.544 34.5935 25.948 +-380.106 31.9594 23.9722 +-379.744 29.251 21.9407 +-379.849 26.585 19.9409 +-379.227 23.8757 17.9087 +-378.975 21.1996 15.9014 +-379.591 18.5727 13.9311 +-378.88 15.8844 11.9146 +-378.639 13.2248 9.91971 +-378.869 10.5839 7.93879 +-144.85 3.03431 2.27598 +-145.478 2.03138 1.5237 +-145.994 1.01922 0.764495 +97.1 0 0 +96.9963 0.681707 0.50179 +96.9852 1.36336 1.00354 +96.7668 2.0407 1.50212 +97.8404 2.7516 2.0254 +96.9077 3.4075 2.50819 +97.7658 4.12636 3.03733 +96.9189 4.77396 3.51401 +96.8635 5.45491 4.01525 +97.6979 6.19232 4.55804 +97.6271 6.8787 5.06326 +97.4493 7.55683 5.56243 +97.4631 8.24984 6.07253 +97.37 8.93446 6.57647 +97.2695 9.61845 7.07994 +97.1616 10.3017 7.58287 +97.0463 10.9842 8.08521 +96.8247 11.6538 8.57812 +96.4972 12.3086 9.06013 +96.3601 12.9864 9.55903 +97.0036 13.7749 10.1394 +96.8506 14.4562 10.6409 +96.5921 15.1209 11.1302 +96.4246 15.7992 11.6294 +96.2497 16.4762 12.1278 +96.2628 17.1869 12.6509 +96.0729 17.8628 13.1484 +96.7508 18.7065 13.7695 +96.4474 19.3662 14.2551 +97.1052 20.2248 14.8871 +96.979 20.9273 15.4042 +96.6521 21.5866 15.8894 +97.1836 22.4426 16.5195 +97.0326 23.1477 17.0385 +96.778 23.8287 17.5398 +97.1838 24.6774 18.1645 +97.0078 25.3844 18.6849 +96.8238 26.0907 19.2048 +97.1993 26.9538 19.8401 +96.9035 27.6358 20.3421 +97.5401 28.5913 21.0454 +97.2266 29.2757 21.5492 +96.9056 29.9579 22.0514 +97.3217 30.8739 22.7256 +97.0761 31.5868 23.2504 +97.5617 32.5453 23.9559 +97.2974 33.2612 24.4828 +97.7586 34.2327 25.198 +97.4753 34.9512 25.7268 +97.0929 35.6349 26.2301 +96.7937 36.3499 26.7564 +97.1182 37.3062 27.4603 +96.6204 37.952 27.9357 +97.0109 38.953 28.6725 +97.387 39.9624 29.4155 +96.9503 40.6453 29.9181 +97.2125 41.6275 30.6412 +96.7578 42.3092 31.1429 +96.9953 43.2999 31.8722 +96.5224 43.98 32.3727 +96.8216 45.019 33.1376 +97.1056 46.0657 33.908 +96.4313 46.6634 34.3479 +96.6894 47.718 35.1242 +96.1687 48.3957 35.623 +96.231 49.3727 36.3422 +96.2794 50.3541 37.0646 +96.6474 51.5178 37.9212 +95.9196 52.105 38.3534 +96.0931 53.1877 39.1503 +96.0865 54.1843 39.8839 +96.3099 55.3252 40.7237 +96.3539 56.3786 41.4991 +96.3824 57.4369 42.2781 +95.7564 58.1121 42.7751 +96.4718 59.6163 43.8823 +95.8221 60.292 44.3797 +95.8695 61.4143 45.2058 +95.8221 62.4912 45.9985 +95.7586 63.5721 46.7941 +95.8322 64.7603 47.6687 +95.6591 65.7975 48.4322 +95.6972 66.9956 49.3141 +96.2408 68.5728 50.475 +95.5684 69.3005 51.0106 +95.9935 70.84 52.1438 +95.9536 72.0612 53.0427 +95.822 73.2317 53.9043 +95.7441 74.4618 54.8097 +95.5042 75.5835 55.6354 +95.3887 76.8212 56.5465 +95.7442 78.4652 57.7566 +95.5155 79.6565 58.6334 +95.9566 81.4345 59.9422 +95.6844 82.6361 60.8267 +95.2582 83.7209 61.6252 +95.2173 85.1657 62.6887 +93.562 85.1681 62.6904 +92.5043 85.7004 63.0823 +92.2866 87.0212 64.0545 +92.4329 88.7149 65.3011 +92.613 90.4802 66.6006 +92.1325 91.6278 67.4453 +92.5057 93.6589 68.9403 +91.9798 94.813 69.7898 +91.8621 96.414 70.9683 +91.5962 97.8918 72.0561 +92.257 100.409 73.9092 +92.5762 102.618 75.5347 +91.4026 103.199 75.9627 +91.7722 105.552 77.6948 +91.7012 107.455 79.095 +91.484 109.23 80.4021 +91.2904 111.078 81.762 +91.336 113.268 83.3744 +91.0723 115.129 84.7438 +90.8282 117.062 86.1665 +91.0715 119.687 88.0991 +91.3163 122.394 90.0915 +91.0016 124.418 91.5818 +90.75 126.588 93.1788 +91.4923 130.235 95.863 +92.9865 135.099 99.4435 +92.9505 137.871 101.484 +92.7676 140.509 103.426 +92.7653 143.513 105.637 +92.7957 146.672 107.962 +92.4968 149.408 109.976 +92.321 152.441 112.209 +92.5599 156.283 115.037 +92.3844 159.555 117.445 +92.1448 162.836 119.86 +92.2479 166.862 122.824 +91.9117 170.236 125.307 +91.8218 174.212 128.234 +90.8873 176.711 130.073 +89.4935 178.388 131.308 +87.8503 179.61 132.207 +86.725 181.949 133.929 +91.229 196.508 144.645 +90.9432 201.228 148.12 +87.858 199.81 147.076 +85.5919 200.191 147.357 +82.6896 199.028 146.501 +80.8079 200.291 147.43 +78.0933 199.469 146.825 +75.9582 200.087 147.28 +73.418 199.61 146.929 +71.1971 199.963 147.189 +68.5199 198.982 146.466 +66.6459 200.311 147.445 +63.8469 198.823 146.349 +61.9562 200.124 147.307 +59.5286 199.69 146.987 +57.2275 199.63 146.943 +54.8891 199.396 146.771 +52.8927 200.404 147.513 +50.3205 199.189 146.619 +48.2174 199.773 147.048 +45.9234 199.549 146.884 +43.8114 200.103 147.291 +41.4765 199.609 146.928 +39.3433 200.052 147.254 +37.0115 199.445 146.807 +34.9603 200.335 147.462 +32.5532 199.135 146.579 +30.5161 200.157 147.331 +28.165 199.083 146.541 +26.1112 200.075 147.271 +23.741 198.567 146.161 +21.6669 199.448 146.809 +19.3637 198.147 145.852 +17.3205 199.481 146.834 +15.0912 198.711 146.267 +12.9793 199.453 146.813 +10.7827 198.893 146.401 +8.65508 199.605 146.925 +6.44738 198.29 145.957 +4.32122 199.374 146.755 +2.14935 198.35 146.001 +1.51912e-14 199.807 147.074 +-2.15109 198.511 146.12 +-4.32296 199.454 146.814 +-6.43429 197.887 145.661 +-8.6481 199.444 146.806 +-10.7304 197.927 145.69 +-12.9584 199.131 146.576 +-15.0912 198.711 146.267 +-17.3066 199.321 146.716 +-18.736 191.725 141.124 +-20.8912 192.308 141.554 +-22.8592 191.192 140.732 +-25.1182 192.466 141.67 +-27.9952 197.882 145.657 +-30.382 199.277 146.684 +-32.3444 197.858 145.639 +-34.7794 199.298 146.699 +-36.7011 197.772 145.576 +-39.1243 198.938 146.434 +-40.9978 197.305 145.232 +-43.3947 198.199 145.89 +-45.4495 197.491 145.369 +-47.8931 198.428 146.059 +-49.9018 197.532 145.399 +-52.4353 198.671 146.237 +-54.3696 197.509 145.382 +-56.8676 198.374 146.019 +-58.8749 197.497 145.374 +-61.4724 198.56 146.156 +-63.3712 197.341 145.259 +-65.9471 198.211 145.899 +-67.9053 197.196 145.152 +-70.5907 198.26 145.935 +-72.5375 197.216 145.167 +-75.1395 197.931 145.693 +-77.2513 197.319 145.242 +-79.9427 198.147 145.851 +-82.0867 197.577 145.432 +-84.8756 198.516 146.124 +-86.723 197.228 145.176 +-89.4725 197.974 145.725 +-91.6843 197.489 145.367 +-94.43 198.114 145.828 +-96.2066 196.694 144.783 +-99.6079 198.549 146.148 +-101.411 197.172 145.134 +-104.521 198.305 145.968 +-106.307 196.898 144.933 +-109.412 197.91 145.677 +-111.345 196.767 144.836 +-114.53 197.801 145.597 +-116.496 196.699 144.786 +-119.807 197.826 145.616 +-121.634 196.472 144.619 +-125.074 197.691 145.516 +-127.304 196.947 144.969 +-130.231 197.254 145.195 +-132.268 196.19 144.411 +-138.946 201.874 148.595 +-141.079 200.819 147.819 +-144.55 201.634 148.418 +-144.547 197.626 145.469 +-144.056 193.082 142.124 +-144.314 189.659 139.604 +-147.583 190.208 140.008 +-150.498 190.251 140.04 +-162.302 201.276 148.155 +-161 195.896 144.195 +-165.689 197.829 145.618 +-1855.83 2174.64 1600.71 +-622.158 715.58 526.723 +-628.553 709.673 522.375 +-630.87 699.299 514.739 +-637.71 694.062 510.884 +-639.428 683.379 503.021 +-143.242 150.339 110.662 +-143.388 147.804 108.796 +-144.237 146.034 107.493 +-143.8 143.012 105.268 +-143.245 139.946 103.011 +-143.342 137.576 101.267 +-150.152 141.585 104.218 +-150.894 139.795 102.9 +-681.041 619.939 456.324 +-683.316 611.179 449.876 +-690.251 606.65 446.542 +-692.774 598.301 440.397 +-699.644 593.761 437.055 +-701.397 584.939 430.561 +-709.53 581.481 428.016 +-711.349 572.884 421.688 +-718.172 568.372 418.367 +-723.512 562.687 414.182 +-728.203 556.528 409.648 +-730.33 548.478 403.723 +-737.646 544.358 400.691 +-739.355 536.136 394.638 +-746.784 532.093 391.662 +-748.974 524.341 385.956 +-756.528 520.365 383.03 +-758.078 512.285 377.082 +-765.529 508.218 374.089 +-767.587 500.589 368.473 +-775.878 497.03 365.853 +-779.027 490.17 360.804 +-786.292 485.902 357.662 +-788.812 478.71 352.368 +-797.506 475.256 349.826 +-799.551 467.834 344.363 +-807.928 464.115 341.625 +-810.879 457.264 336.582 +-819.181 453.418 333.751 +-821.41 446.202 328.44 +-830.384 442.635 325.814 +-833.387 435.861 320.828 +-841.958 431.978 317.97 +-386.371 194.436 143.12 +-385.734 190.367 140.125 +-384.268 185.949 136.873 +-384.114 182.219 134.128 +-380.618 176.976 130.268 +-380.52 173.382 127.623 +-381.422 170.271 125.333 +-382.637 167.315 123.157 +-382.934 163.977 120.7 +-383.011 160.573 118.194 +-909.985 373.408 274.858 +-136.567 54.8361 40.3637 +-382.976 150.431 110.729 +-383.238 147.214 108.361 +-381.284 143.188 105.398 +-383.094 140.603 103.495 +-956.299 342.895 252.398 +-968.599 339.18 249.663 +-383.39 131.063 96.4724 +-382.763 127.685 93.9862 +-383.854 124.899 91.9357 +-382.309 121.282 89.2728 +-380.994 117.782 86.6971 +-381.038 114.733 84.4527 +-382.173 112.024 82.4586 +-380.45 108.5 79.8645 +-381.328 105.744 77.8359 +-383.787 103.417 76.1233 +-380.518 99.5718 73.2927 +-381.391 96.8449 71.2855 +-386.251 95.1029 70.0032 +-382.377 91.2179 67.1436 +-380.948 87.9723 64.7546 +-380.441 84.9692 62.544 +-381.348 82.2922 60.5735 +-380.966 79.3466 58.4054 +-381.132 76.5298 56.332 +-383.308 74.1116 54.552 +-382.927 71.1975 52.407 +-381.244 68.0679 50.1033 +-380.304 65.1013 47.9197 +-382.171 62.6187 46.0923 +-380.675 59.5924 43.8647 +-381.405 56.9295 41.9046 +-381.121 54.1209 39.8373 +-381.101 51.3607 37.8055 +-381.05 48.6048 35.7769 +-380.178 45.7583 33.6817 +-380.362 43.0511 31.689 +-380.715 40.3658 29.7124 +-378.954 37.4727 27.5828 +-380.24 34.8901 25.6818 +-379.708 32.1407 23.6581 +-380.142 29.4786 21.6986 +-379.251 26.7217 19.6692 +-379.227 24.0363 17.6926 +-381.369 21.477 15.8087 +-381.088 18.7713 13.8172 +-378.58 15.9786 11.7615 +-380.038 13.363 9.83622 +-378.869 10.6551 7.84299 +-147.349 3.10742 2.28731 +-144.978 2.03802 1.50014 +-144.894 1.01834 0.749579 +97.1 0 0 +96.9963 0.686206 0.49562 +96.9852 1.37236 0.9912 +96.9668 2.05841 1.48671 +96.9409 2.7443 1.9821 +96.9077 3.42999 2.47734 +96.9669 4.11965 2.97546 +96.8191 4.80052 3.46723 +96.8635 5.49091 3.96587 +96.9004 6.18231 4.46524 +96.7305 6.86051 4.95507 +97.5488 7.61447 5.49963 +97.4631 8.30428 5.99786 +96.5752 8.92007 6.44261 +97.2695 9.68193 6.99288 +97.1616 10.3697 7.48962 +97.0463 11.0567 7.98578 +96.8247 11.7307 8.47264 +96.6947 12.4152 8.96704 +96.3601 13.0721 9.44148 +97.0036 13.8658 10.0148 +96.8506 14.5516 10.51 +96.6903 15.2362 11.0045 +96.5226 15.9196 11.4981 +97.1301 16.7367 12.0882 +96.1652 17.2828 12.4827 +96.8524 18.1265 13.0921 +96.6536 18.8111 13.5865 +96.5444 19.5137 14.094 +96.2339 20.1757 14.5721 +96.979 21.0654 15.2147 +96.6521 21.729 15.694 +96.4145 22.412 16.1873 +96.9367 23.2774 16.8124 +96.778 23.9859 17.3241 +96.4208 24.6453 17.8004 +97.0078 25.5519 18.4551 +96.729 26.2372 18.9501 +97.2939 27.1581 19.6152 +96.9978 27.8453 20.1115 +97.5401 28.78 20.7866 +97.3202 29.4972 21.3047 +97.7459 30.417 21.969 +96.5773 30.8399 22.2745 +97.0761 31.7953 22.9645 +97.5617 32.7601 23.6613 +97.2974 33.4807 24.1818 +97.025 34.2001 24.7014 +96.7445 34.9181 25.22 +97.1839 35.9037 25.9318 +96.703 36.5556 26.4027 +97.2084 37.5873 27.1478 +97.5192 38.5579 27.8488 +97.1004 39.2463 28.3461 +97.4761 40.2629 29.0803 +97.039 40.951 29.5773 +97.2125 41.9023 30.2644 +97.3729 42.8592 30.9555 +96.9953 43.5857 31.4802 +96.5224 44.2702 31.9746 +96.735 45.2756 32.7008 +96.9333 46.2874 33.4316 +96.4313 46.9714 33.9256 +96.7747 48.0753 34.7229 +96.1687 48.7151 35.185 +97.0744 50.1341 36.2099 +96.4471 50.7748 36.6726 +96.4806 51.7683 37.3902 +96.0855 52.5396 37.9473 +96.0931 53.5387 38.6689 +96.1684 54.5884 39.4271 +96.4727 55.7845 40.2909 +96.3539 56.7507 40.9888 +95.7394 57.4302 41.4796 +95.7564 58.4956 42.2491 +95.8371 59.615 43.0575 +95.8221 60.6899 43.8339 +95.8695 61.8196 44.6499 +95.7444 62.8527 45.396 +95.7586 63.9917 46.2187 +95.7556 65.1357 47.0449 +95.6591 66.2318 47.8366 +95.6217 67.3846 48.6693 +95.6416 68.5957 49.544 +96.1629 70.1918 50.6968 +95.9935 71.3075 51.5026 +95.2954 72.0392 52.0311 +95.7494 73.6592 53.2012 +95.6722 74.897 54.0951 +95.5042 76.0823 54.9513 +95.3887 77.3282 55.8511 +95.8143 79.0408 57.0881 +95.585 80.2405 57.9546 +95.9566 81.972 59.2051 +95.7526 83.2406 60.1214 +95.5285 84.5126 61.0401 +95.0165 85.547 61.7872 +92.9656 85.183 61.5243 +93.0292 86.7557 62.6602 +92.8061 88.0884 63.6228 +92.4329 89.3004 64.4981 +92.613 91.0773 65.7816 +92.7618 92.8624 67.0709 +92.3812 94.1498 68.0007 +92.2877 95.7581 69.1623 +91.8012 96.9863 70.0494 +92.0777 99.0559 71.5442 +92.5544 101.398 73.2357 +91.9296 102.573 74.0847 +91.8672 104.408 75.4097 +91.7149 106.182 76.6914 +91.5312 107.963 77.9778 +91.484 109.951 79.4134 +91.5112 112.081 80.9516 +91.6083 114.356 82.5945 +91.3409 116.231 83.9488 +90.8282 117.834 85.107 +91.0715 120.477 87.0157 +90.7497 122.437 88.4315 +90.7986 124.96 90.2536 +91 127.774 92.2865 +90.5567 129.753 93.7157 +92.5017 135.281 97.7083 +92.9028 138.71 100.184 +93.1432 142.01 102.568 +92.8115 144.533 104.39 +92.7957 147.64 106.634 +92.4076 150.249 108.519 +92.3648 153.52 110.882 +92.5599 157.314 113.622 +92.3844 160.608 116.001 +92.0619 163.763 118.28 +91.8818 167.297 120.832 +91.8718 171.286 123.713 +91.8609 175.437 126.711 +90.6194 177.353 128.095 +89.8681 180.317 130.236 +87.5205 180.117 130.091 +89.1261 188.221 135.945 +91.0889 197.501 142.647 +90.1223 200.728 144.978 +86.9233 198.989 143.722 +84.7454 199.519 144.105 +82.1819 199.112 143.811 +80.3135 200.38 144.727 +77.6422 199.626 144.182 +75.3734 199.857 144.349 +72.8783 199.45 144.055 +70.7837 200.114 144.535 +68.1725 199.279 143.931 +66.0247 199.754 144.275 +63.3712 198.644 143.472 +61.4724 199.871 144.359 +59.0617 199.432 144.042 +56.7776 199.368 143.995 +54.4562 199.128 143.823 +52.373 199.744 144.267 +50.0414 199.392 144.013 +47.9312 199.898 144.378 +45.6864 199.83 144.33 +43.3599 199.347 143.981 +41.1959 199.567 144.139 +39.093 200.091 144.518 +36.7011 199.077 143.786 +34.6124 199.65 144.2 +32.253 198.601 143.442 +30.2236 199.546 144.124 +27.9159 198.625 143.459 +25.8394 199.299 143.946 +23.6356 198.99 143.722 +21.4839 199.068 143.779 +19.2382 198.162 143.125 +17.1392 198.695 143.509 +14.9874 198.647 143.475 +12.8903 199.393 144.013 +10.6649 198.019 143.021 +8.57132 198.978 143.714 +6.41073 198.464 143.342 +4.28282 198.907 143.663 +2.13538 198.362 143.269 +1.49769e-14 198.289 143.216 +-2.13364 198.2 143.152 +-4.27409 198.502 143.37 +-6.39241 197.896 142.933 +-8.5783 199.14 143.831 +-10.6737 198.181 143.138 +-12.8589 198.907 143.663 +-14.9386 198 143.008 +-16.9927 196.997 142.283 +-18.9086 194.768 140.673 +-20.7605 192.366 138.938 +-22.84 192.292 138.885 +-25.0032 192.849 139.287 +-27.7801 197.659 142.761 +-30.1017 198.742 143.543 +-32.1094 197.717 142.803 +-34.3479 198.125 143.098 +-36.3316 197.073 142.338 +-38.7019 198.089 143.072 +-40.6842 197.088 142.349 +-43.1168 198.23 143.174 +-45.1397 197.439 142.602 +-47.397 197.669 142.769 +-49.523 197.326 142.521 +-51.9363 198.079 143.064 +-53.9151 197.15 142.393 +-56.3052 197.709 142.797 +-58.4547 197.381 142.561 +-60.8917 197.983 142.995 +-62.9205 197.231 142.452 +-65.5071 198.188 143.143 +-67.4777 197.248 142.465 +-70.1497 198.322 143.24 +-72.1967 197.585 142.708 +-74.5548 197.687 142.782 +-76.7401 197.307 142.507 +-79.4792 198.298 143.223 +-81.5473 197.574 142.7 +-84.2896 198.447 143.33 +-86.1222 197.155 142.397 +-88.8568 197.909 142.942 +-91.124 197.577 142.702 +-93.7491 197.985 142.996 +-95.8034 197.163 142.403 +-98.6714 197.98 142.994 +-100.684 197.051 142.322 +-103.622 197.898 142.934 +-105.868 197.38 142.56 +-108.436 197.438 142.602 +-110.474 196.516 141.936 +-113.811 197.858 142.905 +-115.592 196.46 141.895 +-118.711 197.31 142.509 +-120.741 196.318 141.793 +-123.758 196.901 142.214 +-125.965 196.162 141.68 +-129.058 196.766 142.116 +-131.314 196.059 141.606 +-137.444 201.008 145.18 +-140.095 200.733 144.982 +-143.8 201.911 145.833 +-144.496 198.861 143.629 +-144.211 194.565 140.527 +-143.478 189.805 137.089 +-145.092 188.233 135.953 +-148.993 189.592 136.935 +-156.202 194.99 140.834 +-162.214 198.677 143.496 +-164.85 198.126 143.099 +-623.104 734.965 530.837 +-626.173 724.951 523.604 +-632.618 718.976 519.288 +-635.337 708.898 512.009 +-144.423 158.222 114.278 +-142.389 153.181 110.636 +-143.85 151.974 109.765 +-144.68 150.121 108.427 +-143.427 146.173 105.575 +-143.296 143.452 103.61 +-143.945 141.557 102.241 +-147.198 142.21 102.713 +-151.711 143.999 104.005 +-678.365 632.618 456.915 +-685.48 628.099 453.651 +-688.535 619.912 447.738 +-694.98 614.838 444.073 +-697.412 606.281 437.893 +-703.911 601.325 434.313 +-706.884 593.406 428.594 +-713.666 588.73 425.217 +-716.228 580.621 419.359 +-722.665 575.702 415.807 +-725.598 568.034 410.269 +-732.12 563.214 406.787 +-735.522 556.023 401.594 +-741.701 550.963 397.939 +-267.904 195.55 141.238 +-751.427 538.935 389.252 +-754.106 531.418 383.822 +-760.786 526.748 380.449 +-764.283 519.886 375.493 +-770.544 514.924 371.91 +-773.882 508.025 366.926 +-780.808 503.49 363.651 +-783.992 496.55 358.638 +-791.529 492.366 355.617 +-794.562 485.382 350.572 +-802.008 481.093 347.474 +-804.891 474.067 342.4 +-812.243 469.672 339.226 +-815.712 463.025 334.425 +-823.467 458.798 331.372 +-827.628 452.547 326.857 +-834.803 447.928 323.521 +-838.251 441.299 318.733 +-846.259 437.05 315.664 +-855.511 433.367 313.004 +-384.114 190.819 137.821 +-384.782 187.426 135.371 +-384.459 183.586 132.597 +-385.641 180.494 130.364 +-379.562 174.087 125.736 +-381.159 171.277 123.707 +-383.692 168.884 121.978 +-383.641 165.363 119.435 +-382.213 161.295 116.497 +-384.202 158.696 114.62 +-136.835 55.3064 39.9457 +-930.252 367.81 265.655 +-381.613 147.557 106.575 +-381.284 144.133 104.102 +-382.002 141.127 101.93 +-385.151 139.013 100.403 +-973.918 343.294 247.948 +-382.838 131.737 95.1485 +-382.763 128.528 92.8304 +-382.927 125.42 90.5862 +-381.099 121.696 87.8963 +-379.781 118.182 85.3581 +-381.6 115.661 83.5372 +-380.2 112.181 81.0236 +-378.659 108.702 78.5112 +-381.044 106.362 76.8214 +-382.554 103.766 74.946 +-381.849 100.579 72.6444 +-381.678 97.557 70.4616 +-381.948 94.6637 68.3719 +-1138.6 273.411 197.474 +-381.813 88.754 64.1035 +-381.309 85.7245 61.9154 +-381.251 82.8142 59.8135 +-380.385 79.7485 57.5992 +-380.744 76.9565 55.5827 +-381.85 74.3169 53.6761 +-382.44 71.5762 51.6967 +-381.927 68.6399 49.5759 +-381.478 65.7332 47.4765 +-380.113 62.6926 45.2804 +-381.657 60.1404 43.437 +-381.405 57.3052 41.3893 +-382.007 54.6048 39.4389 +-380.509 51.6194 37.2826 +-381.05 48.9255 35.337 +-380.079 46.0483 33.2589 +-380.758 43.3804 31.3319 +-378.93 40.4417 29.2094 +-379.649 37.7891 27.2936 +-380.637 35.1571 25.3926 +-378.813 32.2765 23.3121 +-380.54 29.7042 21.4542 +-379.949 26.9475 19.4631 +-379.925 24.2395 17.5072 +-379.074 21.4887 15.5204 +-379.491 18.8161 13.5901 +-379.479 16.1223 11.6445 +-380.138 13.4548 9.71784 +-379.369 10.7395 7.75673 +-151.248 3.21069 2.31896 +-145.478 2.05854 1.48681 +-145.594 1.03001 0.743939 +97.9 0 0 +96.9963 0.69065 0.489409 +96.9852 1.38124 0.978779 +96.9668 2.07174 1.46808 +96.9409 2.76207 1.95726 +96.9077 3.4522 2.4463 +97.7658 4.18049 2.96238 +96.8191 4.8316 3.42378 +96.8635 5.52647 3.91617 +96.8007 6.21594 4.40475 +97.6271 6.96893 4.93833 +96.653 7.5934 5.38084 +97.5626 8.36654 5.92871 +97.37 9.05166 6.4142 +98.1628 9.83413 6.96867 +97.1616 10.4368 7.39577 +97.0463 11.1282 7.88571 +96.8247 11.8067 8.36646 +96.6947 12.4956 8.85467 +96.3601 13.1568 9.32317 +97.102 13.9698 9.89932 +96.8506 14.6458 10.3783 +96.6903 15.3349 10.8666 +96.4246 16.0064 11.3425 +96.3475 16.7093 11.8406 +96.1652 17.3947 12.3263 +96.8524 18.2439 12.928 +96.7508 18.9519 13.4297 +96.5444 19.64 13.9173 +96.3307 20.3267 14.4039 +96.1096 21.0118 14.8894 +96.6521 21.8697 15.4974 +96.4145 22.5571 15.9844 +97.0326 23.4513 16.6181 +96.6824 24.1174 17.0901 +96.4208 24.8049 17.5773 +97.1029 25.7426 18.2417 +97.5825 26.6401 18.8777 +97.2939 27.3339 19.3694 +96.9978 28.0256 19.8595 +97.6341 28.9942 20.5459 +97.2266 29.6597 21.0175 +97.6525 30.5848 21.673 +97.3217 31.2789 22.1649 +97.0761 32.0012 22.6767 +96.7302 32.6912 23.1657 +97.2053 33.6656 23.8561 +97.025 34.4215 24.3918 +97.3839 35.3765 25.0685 +97.0929 36.1024 25.5829 +97.5187 37.1026 26.2917 +97.1182 37.7956 26.7827 +96.7102 38.4856 27.2717 +97.1004 39.5004 27.9908 +97.387 40.4866 28.6897 +96.9503 41.1784 29.1799 +97.2125 42.1736 29.8851 +97.5487 43.2145 30.6227 +96.9953 43.8679 31.0857 +96.6095 44.597 31.6024 +96.8216 45.6096 32.3199 +97.0194 46.6285 33.0419 +96.4313 47.2755 33.5004 +96.7747 48.3866 34.2878 +96.7623 49.3332 34.9586 +96.231 50.0203 35.4455 +96.531 51.148 36.2446 +96.6474 52.1936 36.9855 +96.0855 52.8798 37.4717 +96.0931 53.8854 38.1843 +96.0865 54.8951 38.8998 +96.3099 56.051 39.7189 +96.3539 57.1182 40.4752 +95.659 57.7535 40.9254 +95.6765 58.8253 41.6848 +95.8371 60.001 42.518 +96.5313 61.535 43.605 +95.7912 62.1692 44.0544 +95.8221 63.311 44.8635 +95.8358 64.4579 45.6763 +95.8322 65.6098 46.4925 +96.3434 67.1375 47.5751 +95.6217 67.8209 48.0594 +96.3157 69.5264 49.2679 +96.1629 70.6463 50.0615 +95.4774 71.3834 50.5838 +95.8805 72.9508 51.6945 +95.0966 73.6307 52.1763 +95.6722 75.3819 53.4172 +95.5042 76.575 54.2627 +95.3887 77.8289 55.1512 +95.7442 79.4945 56.3315 +95.5155 80.7014 57.1867 +95.9566 82.5027 58.4632 +95.207 83.3023 59.0298 +94.9204 84.518 59.8913 +94.0798 85.2516 60.4111 +92.8993 85.6742 60.7106 +92.1107 86.455 61.2639 +92.1567 88.0387 62.3861 +92.4329 89.8786 63.6899 +92.4222 91.4778 64.8231 +92.8248 93.5274 66.2755 +92.0077 94.3759 66.8768 +92.1645 96.2493 68.2043 +91.6186 97.4201 69.034 +91.9573 99.5676 70.5557 +92.4355 101.923 72.2249 +91.9884 103.304 73.2032 +91.8672 105.084 74.4647 +91.4281 106.536 75.4939 +92.3242 109.604 77.6678 +91.7076 110.933 78.6097 +91.3456 112.603 79.7926 +91.8261 115.37 81.7538 +91.5021 117.19 83.0431 +90.8812 118.666 84.0896 +91.0192 121.188 85.8762 +90.6982 123.16 87.2736 +90.7986 125.769 89.1226 +90.65 128.107 90.7791 +90.6059 130.664 92.5916 +91.2412 134.302 95.1691 +92.9505 139.68 98.9799 +93.1432 142.929 101.283 +92.8576 145.541 103.133 +92.7957 148.596 105.298 +92.8538 151.952 107.677 +92.4086 154.588 109.544 +92.2155 157.744 111.781 +92.3844 161.648 114.547 +92.1034 164.898 116.85 +92.2479 169.051 119.793 +92.2307 173.068 122.64 +92.0172 176.873 125.336 +90.1602 177.597 125.849 +89.1938 180.123 127.639 +86.9341 180.068 127.6 +91.348 194.163 137.588 +91.3341 199.315 141.239 +89.1304 199.804 141.586 +86.6229 199.585 141.43 +84.4524 200.118 141.808 +81.8963 199.705 141.515 +79.7882 200.358 141.978 +77.1611 199.674 141.493 +74.9056 199.903 141.655 +72.5659 199.881 141.64 +70.4529 200.468 142.056 +67.7717 199.391 141.292 +65.6106 199.786 141.573 +63.1709 199.298 141.227 +61.2546 200.453 142.045 +58.7115 199.532 141.393 +56.5302 199.784 141.571 +54.2831 199.781 141.569 +52.1443 200.159 141.837 +49.6825 199.244 141.188 +47.5496 199.59 141.433 +45.3402 199.6 141.441 +43.3252 200.478 142.063 +40.8988 199.411 141.307 +38.7801 199.775 141.565 +36.5089 199.317 141.24 +34.3618 199.488 141.362 +32.1486 199.24 141.186 +30.0286 199.542 141.4 +27.7801 198.939 140.972 +25.6617 199.209 141.164 +23.5493 199.547 141.403 +21.327 198.894 140.941 +19.1676 198.713 140.812 +17.0624 199.086 141.077 +14.8775 198.467 140.638 +12.8118 199.462 141.343 +10.6213 198.486 140.651 +8.52944 199.288 141.22 +6.36362 198.281 140.506 +4.24966 198.645 140.764 +2.12666 198.831 140.896 +1.48912e-14 198.43 140.612 +-2.12491 198.668 140.78 +-4.25664 198.971 140.995 +-6.36362 198.281 140.506 +-8.51897 199.043 141.046 +-10.63 198.649 140.767 +-12.7438 198.402 140.592 +-14.9019 198.793 140.869 +-16.9997 198.353 140.558 +-18.9793 196.761 139.429 +-20.9697 195.561 138.579 +-23.118 195.893 138.814 +-25.2645 196.126 138.979 +-27.7348 198.614 140.742 +-29.858 198.409 140.597 +-31.992 198.269 140.498 +-34.2227 198.681 140.789 +-36.169 197.461 139.925 +-38.4203 197.921 140.251 +-40.5357 197.64 140.052 +-42.8216 198.148 140.412 +-44.9393 197.835 140.19 +-47.0917 197.668 140.072 +-49.204 197.325 139.828 +-51.4789 197.605 140.027 +-53.6337 197.391 139.875 +-56.1253 198.353 140.557 +-58.1046 197.47 139.931 +-60.4321 197.761 140.138 +-62.7452 197.955 140.275 +-65.0412 198.052 140.344 +-67.157 197.582 140.011 +-69.5433 197.88 140.222 +-71.9127 198.082 140.365 +-74.087 197.719 140.108 +-76.1086 196.95 139.563 +-78.892 198.108 140.383 +-80.9444 197.383 139.87 +-83.7687 198.497 140.659 +-85.8885 197.893 140.231 +-88.2754 197.888 140.227 +-90.7037 197.939 140.264 +-93.1757 198.048 140.341 +-95.4369 197.68 140.081 +-97.8472 197.598 140.022 +-100.263 197.497 139.95 +-102.762 197.527 139.972 +-105.31 197.611 140.031 +-107.704 197.375 139.864 +-110.018 196.972 139.579 +-112.797 197.365 139.857 +-115.205 197.069 139.647 +-118.316 197.928 140.256 +-120.429 197.078 139.654 +-123.395 197.595 140.02 +-125.873 197.287 139.802 +-128.447 197.104 139.672 +-131.028 196.899 139.527 +-135.068 198.813 140.883 +-139.75 201.536 142.813 +-142.9 201.947 143.104 +-144.344 199.937 141.68 +-144.108 195.685 138.666 +-143.896 191.59 135.765 +-145.675 190.212 134.789 +-147.919 189.444 134.244 +-153.152 192.42 136.353 +-161.662 199.283 141.216 +-620.48 750.559 531.862 +-626.105 743.288 526.71 +-629.385 733.389 519.695 +-634.766 726.09 514.523 +-638.687 717.252 508.26 +-142.52 157.148 111.359 +-143.774 155.671 110.312 +-144.763 153.929 109.078 +-144.557 150.964 106.977 +-142.992 146.673 103.935 +-143.359 144.444 102.356 +-146.362 144.866 102.655 +-150.284 146.131 103.552 +-679.647 649.276 460.09 +-679.284 637.576 451.8 +-684.818 631.555 447.533 +-691.413 626.534 443.975 +-696.939 620.564 439.745 +-700.344 612.773 434.224 +-706.871 607.763 430.674 +-710.566 600.36 425.428 +-715.558 594.113 421.001 +-719.552 587.092 416.026 +-725.804 581.946 412.38 +-728.907 574.319 406.975 +-734.949 569.052 403.242 +-738.375 561.794 398.099 +-744.134 556.349 394.241 +-268.944 197.58 140.009 +-266.553 192.414 136.348 +-756.974 536.893 380.454 +-763.6 532.119 377.071 +-767.806 525.665 372.498 +-772.782 519.763 368.315 +-777.535 513.728 364.038 +-783.782 508.68 360.461 +-787.38 501.925 355.675 +-793.75 496.945 352.146 +-797.997 490.637 347.676 +-804.982 486.004 344.393 +-808.855 479.486 339.774 +-815.255 474.467 336.217 +-819.316 468.082 331.693 +-826.269 463.34 328.333 +-830.696 457.165 323.957 +-837.888 452.494 320.647 +-841.941 446.111 316.124 +-854.524 444.177 314.753 +-879.511 448.409 317.752 +-382.153 191.074 135.399 +-384.268 188.388 133.496 +-384.545 184.816 130.964 +-384.342 181.051 128.297 +-379.91 175.375 124.274 +-381.684 172.624 122.325 +-382.549 169.471 120.091 +-382.228 165.821 117.505 +-382.745 162.567 115.198 +-383.667 159.501 113.026 +-135.225 55.0093 38.9808 +-137.785 54.8313 38.8546 +-383.057 149.075 105.638 +-381.284 145.066 102.797 +-384.55 142.988 101.324 +-383.598 139.349 98.7457 +-977.219 346.687 245.67 +-383.943 132.973 94.2273 +-383.595 129.641 91.866 +-382.371 126.049 89.3209 +-382.029 122.783 87.0065 +-381.461 119.473 84.6614 +-380.664 116.124 82.288 +-380.388 112.963 80.0482 +-380.733 110.006 77.9523 +-383.219 107.662 76.2918 +-382.743 104.489 74.0433 +-380.232 100.802 71.4305 +-381.01 98.0173 69.4572 +-379.94 94.7757 67.1601 +-1145.41 276.827 196.166 +-381.14 89.1712 63.1886 +-381.887 86.411 61.2327 +-380.382 83.1604 58.9292 +-382.225 80.6531 57.1525 +-378.609 77.0205 54.5784 +-380.683 74.5695 52.8416 +-382.44 72.0397 51.0489 +-380.755 68.8724 48.8045 +-382.162 66.2776 46.9657 +-381.779 63.375 44.9089 +-380.675 60.3741 42.7824 +-380.815 57.587 40.8074 +-382.007 54.9584 38.9447 +-380.805 51.994 36.8441 +-380.458 49.1658 34.8399 +-381.167 46.4791 32.9361 +-381.451 43.7407 30.9956 +-380.318 40.8526 28.949 +-381.237 38.1929 27.0643 +-380.24 35.3477 25.0482 +-381.598 32.7243 23.1892 +-381.436 29.967 21.2352 +-380.546 27.1646 19.2494 +-378.829 24.3261 17.238 +-378.875 21.6164 15.3178 +-380.689 18.9977 13.4621 +-149.095 6.37535 4.51771 +-378.24 13.4742 9.54814 +-378.869 10.7949 7.64947 +-145.15 3.1012 2.19758 +-145.578 2.07329 1.46918 +-145.594 1.03668 0.734616 +97 0 0 +96.9963 0.695037 0.483159 +96.9852 1.39002 0.966278 +96.9668 2.0849 1.44933 +97.8404 2.80541 1.95019 +96.9077 3.47412 2.41506 +97.7658 4.20704 2.92455 +96.8191 4.86229 3.38005 +97.7613 5.61312 3.90199 +96.9004 6.26186 4.35297 +97.6271 7.0132 4.87526 +96.653 7.64163 5.31212 +97.5626 8.41969 5.85299 +97.37 9.10916 6.33228 +97.3688 9.81654 6.82402 +97.2607 10.5138 7.30873 +97.0463 11.1989 7.785 +96.8247 11.8817 8.25961 +96.4972 12.5493 8.72372 +96.3601 13.2403 9.2041 +97.102 14.0586 9.77289 +96.7523 14.7239 10.2354 +96.6903 15.4323 10.7278 +96.5226 16.1244 11.209 +96.3475 16.8155 11.6894 +96.1652 17.5052 12.1688 +96.9498 18.3783 12.7758 +96.6536 19.0531 13.2449 +96.4474 19.7449 13.7258 +96.2339 20.4353 14.2057 +96.979 21.3365 14.8322 +96.6521 22.0087 15.2994 +97.1836 22.8814 15.9061 +97.0326 23.6003 16.4059 +96.778 24.2946 16.8885 +96.4208 24.9625 17.3528 +97.0078 25.8807 17.9911 +96.8238 26.6009 18.4918 +97.2939 27.5076 19.122 +96.9978 28.2036 19.6059 +96.6004 28.8695 20.0688 +97.2266 29.8481 20.7491 +96.9056 30.5436 21.2326 +97.4147 31.5077 21.9027 +97.1689 32.2353 22.4085 +96.7302 32.8989 22.8698 +97.2974 33.9115 23.5738 +96.9332 34.6074 24.0575 +97.4753 35.6346 24.7716 +97.1839 36.3657 25.2798 +96.703 37.026 25.7388 +97.1182 38.0356 26.4407 +97.609 39.09 27.1736 +97.0109 39.7146 27.6078 +97.387 40.7438 28.3233 +97.039 41.4779 28.8336 +97.2125 42.4415 29.5034 +96.7578 43.1365 29.9865 +96.9953 44.1466 30.6887 +97.3058 45.2038 31.4237 +96.8216 45.8993 31.9071 +96.3301 46.5913 32.3882 +96.517 47.6181 33.102 +96.6894 48.651 33.82 +96.8471 49.6901 34.5424 +96.3153 50.3821 35.0234 +96.4471 51.4281 35.7505 +96.6474 52.5251 36.5131 +95.9196 53.1238 36.9293 +96.67 54.5532 37.923 +96.1684 55.2909 38.4358 +96.2285 56.3593 39.1785 +96.3539 57.481 39.9582 +96.3824 58.56 40.7083 +95.7564 59.2483 41.1868 +96.5511 60.832 42.2877 +96.6101 61.9764 43.0833 +96.4956 63.0242 43.8116 +95.8221 63.7131 44.2905 +96.4531 65.2852 45.3834 +96.445 66.4489 46.1923 +95.7351 67.1374 46.6709 +95.6217 68.2517 47.4456 +95.6416 69.4784 48.2983 +96.1629 71.095 49.4221 +95.4774 71.8368 49.9377 +95.9536 73.4702 51.0732 +95.822 74.6636 51.9028 +95.7441 75.9178 52.7746 +95.5042 77.0614 53.5696 +95.318 78.2653 54.4065 +95.7442 79.9994 55.612 +95.5155 81.214 56.4563 +95.3371 82.4906 57.3438 +95.4798 84.0721 58.4431 +95.3933 85.4794 59.4215 +93.9459 85.6716 59.555 +92.8331 86.1568 59.8924 +91.9795 86.8802 60.3952 +92.8061 89.222 62.0231 +92.3686 90.3871 62.8331 +91.9769 91.6155 63.687 +92.0696 93.3554 64.8965 +92.1322 95.1043 66.1123 +91.7336 96.4082 67.0187 +92.1665 98.6252 68.5598 +91.5962 99.8059 69.3806 +92.7329 102.901 71.5319 +91.5182 103.429 71.8989 +91.8672 105.751 73.5137 +92.5179 108.491 75.4179 +92.1543 110.097 76.5343 +91.1484 110.957 77.1325 +91.2352 113.181 78.6782 +91.4449 115.621 80.3746 +91.2335 117.588 81.7416 +91.1991 119.838 83.3062 +91.0715 122.027 84.8279 +90.8012 124.083 86.2571 +90.8494 126.639 88.034 +90.65 128.92 89.6197 +90.8029 131.781 91.6083 +90.8533 134.581 93.5547 +92.4257 139.773 97.1638 +93.1901 143.909 100.039 +92.8576 146.466 101.816 +92.7957 149.54 103.953 +92.4076 152.183 105.791 +92.3648 155.496 108.094 +92.6029 159.413 110.817 +92.3844 162.675 113.084 +92.0619 165.871 115.306 +92.2072 170.05 118.211 +92.1908 174.092 121.021 +91.7437 177.468 123.368 +89.8923 178.194 123.872 +88.8567 180.582 125.533 +87.1173 181.594 126.236 +91.4555 195.626 135.991 +91.5442 201.042 139.756 +89.0962 200.996 139.724 +86.3558 200.233 139.193 +83.9315 200.146 139.133 +81.579 200.195 139.166 +79.541 201.006 139.73 +76.8604 200.159 139.141 +74.5548 200.231 139.192 +72.3387 200.521 139.393 +70.1497 200.874 139.639 +67.5311 199.944 138.992 +65.3 200.104 139.103 +62.9455 199.848 138.926 +60.7708 200.132 139.123 +58.4781 200.002 139.032 +56.3502 200.413 139.318 +54.0883 200.328 139.259 +51.9987 200.869 139.635 +49.5031 199.785 138.882 +47.4351 200.375 139.291 +45.0851 199.737 138.849 +43.0647 200.538 139.405 +40.7998 200.192 139.164 +38.6237 200.233 139.193 +36.3759 199.852 138.928 +34.2505 200.105 139.104 +32.0311 199.774 138.874 +29.9067 199.995 139.028 +27.6782 199.467 138.661 +25.5781 199.822 138.907 +23.3576 199.18 138.461 +21.2747 199.667 138.799 +19.0577 198.829 138.217 +16.9508 199.04 138.364 +14.8409 199.237 138.5 +12.7072 199.089 138.398 +10.5821 199.008 138.342 +8.46313 198.994 138.332 +6.34529 198.966 138.312 +4.2357 199.25 138.51 +2.11618 199.108 138.411 +1.48973e-14 199.773 138.873 +-2.11008 198.534 138.012 +-4.24093 199.496 138.681 +-6.33744 198.719 138.141 +-8.47709 199.323 138.56 +-10.5821 199.008 138.342 +-12.6915 198.843 138.227 +-14.7737 198.335 137.874 +-16.9508 199.04 138.364 +-19.0263 198.502 137.99 +-20.9697 196.804 136.809 +-23.1467 197.382 137.211 +-25.4318 198.678 138.112 +-27.531 198.407 137.924 +-29.7361 198.854 138.234 +-31.8614 198.715 138.138 +-33.9722 198.479 137.974 +-36.0507 198.066 137.686 +-38.2639 198.368 137.896 +-40.3871 198.167 137.757 +-42.5091 197.951 137.607 +-44.7753 198.365 137.895 +-47.0726 198.842 138.226 +-48.9847 197.693 137.427 +-51.4166 198.62 138.072 +-53.4822 198.084 137.699 +-55.7654 198.333 137.872 +-57.8711 197.926 137.589 +-60.166 198.141 137.739 +-62.3446 197.941 137.6 +-64.8083 198.597 138.056 +-67.0234 198.442 137.948 +-69.2677 198.348 137.883 +-71.4583 198.08 137.697 +-73.7946 198.189 137.772 +-76.1387 198.279 137.835 +-78.6448 198.741 138.156 +-80.6588 197.937 137.597 +-83.4431 198.981 138.323 +-85.5547 198.376 137.902 +-87.9676 198.45 137.954 +-90.0383 197.735 137.456 +-92.889 198.692 138.122 +-94.9605 197.943 137.601 +-97.6225 198.397 137.916 +-99.9569 198.145 137.741 +-102.45 198.177 137.763 +-104.871 198.038 137.667 +-107.704 198.629 138.078 +-109.852 197.924 137.588 +-112.586 198.246 137.811 +-114.903 197.802 137.503 +-117.615 198.004 137.644 +-119.626 197.007 136.951 +-122.623 197.606 137.367 +-125.134 197.375 137.206 +-128.119 197.848 137.535 +-130.36 197.139 137.043 +-133.71 198.065 137.686 +-138.913 201.601 140.144 +-142.4 202.518 140.782 +-144.293 201.137 139.821 +-143.85 196.576 136.651 +-143.948 192.877 134.08 +-145.251 190.864 132.68 +-147.435 190.024 132.096 +-151.355 191.37 133.032 +-160.117 198.631 138.08 +-165.689 201.697 140.211 +-628.654 751.055 522.1 +-631.45 740.468 514.74 +-637.38 733.71 510.042 +-641.156 724.598 503.708 +-143.531 159.269 110.717 +-143.653 156.529 108.812 +-144.398 154.516 107.413 +-143.572 150.888 104.891 +-142.992 147.604 102.608 +-143.233 145.234 100.96 +-150.114 149.524 103.942 +-152.855 149.575 103.978 +-690.948 664.264 461.766 +-699.031 660.279 458.996 +-687.27 637.842 443.399 +-693.554 632.466 439.662 +-699.911 627.169 435.98 +-703.55 619.488 430.64 +-708.868 613.352 426.375 +-712.789 606.064 421.308 +-718.782 600.581 417.497 +-722.451 593.202 412.367 +-728.157 587.542 408.433 +-731.353 579.907 403.125 +-737.561 574.701 399.506 +-740.422 566.93 394.104 +-746.788 561.88 390.594 +-750.279 554.695 385.599 +-272.395 197.88 137.557 +-759.917 542.405 377.056 +-766.337 537.419 373.59 +-769.951 530.482 368.768 +-776.949 525.885 365.572 +-779.477 518.283 360.287 +-786.365 513.598 357.031 +-790.611 507.185 352.573 +-796.685 501.951 348.934 +-800.233 495.137 344.197 +-807.474 490.604 341.046 +-811.444 484.077 336.508 +-818.023 479.102 333.05 +-822.592 472.939 328.766 +-828.824 467.725 325.142 +-833.266 461.493 320.809 +-840.89 457 317.686 +-844.541 450.332 313.051 +-866.416 453.219 315.058 +-883.327 453.216 315.055 +-384.2 193.317 134.386 +-384.097 189.5 131.732 +-384.287 185.865 129.205 +-383.043 181.585 126.23 +-381.129 177.055 123.08 +-380.809 173.322 120.486 +-382.022 170.313 118.394 +-382.493 166.99 116.084 +-383.011 163.713 113.806 +-382.509 160.03 111.246 +-932.253 381.649 265.305 +-137.336 54.9996 38.2333 +-383.508 150.198 104.411 +-382.915 146.612 101.918 +-382.002 142.943 99.3676 +-383.05 140.034 97.3453 +-981.163 350.298 243.511 +-385.047 134.202 93.2916 +-382.763 130.182 90.4964 +-381.165 126.45 87.9022 +-379.983 122.901 85.4352 +-381.741 120.321 83.6418 +-381.881 117.236 81.4973 +-379.26 113.343 78.7912 +-380.733 110.704 76.9567 +-380.382 107.544 74.7597 +-382.08 104.971 72.9709 +-381.849 101.873 70.8179 +-385.302 99.7509 69.3424 +-381.47 95.762 66.5695 +-3141.57 764.093 531.163 +-381.525 89.8279 62.4444 +-380.73 86.6963 60.2674 +-381.83 84.0072 58.398 +-380.966 80.8981 56.2368 +-379.968 77.7879 54.0747 +-380.099 74.9282 52.0867 +-382.927 72.5897 50.4611 +-381.927 69.5232 48.3294 +-381.771 66.6302 46.3184 +-382.465 63.8922 44.415 +-381.068 60.8203 42.2796 +-380.815 57.9528 40.2862 +-379.643 54.9653 38.2095 +-382.482 52.5547 36.5337 +-381.346 49.5936 34.4753 +-381.562 46.8229 32.5492 +-378.976 43.7328 30.4011 +-381.508 41.2408 28.6688 +-379.847 38.2954 26.6213 +-379.743 35.5258 24.696 +-379.708 32.7691 22.7796 +-378.251 29.9055 20.789 +-380.248 27.3157 18.9886 +-379.327 24.5128 17.0402 +-379.074 21.7652 15.1302 +-378.593 19.0131 13.217 +-148.197 6.37718 4.43313 +-379.139 13.5921 9.44862 +-378.669 10.8577 7.54778 +-152.048 3.2692 2.2726 +-145.878 2.09077 1.45341 +-146.194 1.04757 0.728225 +97.1 0 0 +96.9963 0.699367 0.476869 +97.0852 1.40012 0.954685 +96.7668 2.09356 1.42751 +97.0408 2.79982 1.90908 +96.9077 3.49577 2.38362 +97.7658 4.23326 2.88648 +97.7174 4.93798 3.367 +96.8635 5.59623 3.81583 +96.8007 6.2944 4.29188 +97.6271 7.05689 4.81179 +97.5488 7.76051 5.29156 +97.4631 8.46355 5.77093 +97.37 9.16592 6.24985 +97.3688 9.8777 6.73518 +97.2607 10.5793 7.21358 +97.0463 11.2687 7.68365 +96.8247 11.9557 8.15208 +97.5836 12.7697 8.7071 +96.3601 13.3228 9.08427 +97.102 14.1462 9.64566 +96.7523 14.8156 10.1021 +96.6903 15.5284 10.5882 +96.5226 16.2249 11.0631 +96.3475 16.9203 11.5372 +96.2628 17.6321 12.0226 +95.9755 18.307 12.4827 +95.8757 19.0175 12.9672 +96.5444 19.8879 13.5607 +97.202 20.7695 14.1618 +96.979 21.4695 14.6391 +96.6521 22.1458 15.1003 +97.2797 23.0468 15.7146 +96.9367 23.7239 16.1763 +96.778 24.446 16.6687 +96.4208 25.118 17.1269 +97.1029 26.0675 17.7743 +96.729 26.7404 18.2332 +97.1993 27.652 18.8547 +96.9035 28.3517 19.3318 +97.6341 29.3602 20.0195 +97.2266 30.0341 20.4789 +97.7459 31.0004 21.1378 +97.4147 31.704 21.6176 +97.0761 32.4051 22.0957 +97.5617 33.3884 22.7661 +97.2974 34.1228 23.2669 +97.025 34.856 23.7668 +96.6531 35.5541 24.2428 +97.1839 36.5923 24.9507 +96.7937 37.2916 25.4275 +97.2084 38.3082 26.1207 +97.4293 39.2611 26.7705 +97.1899 40.0359 27.2987 +97.387 40.9976 27.9545 +97.039 41.7364 28.4582 +97.2125 42.7059 29.1193 +96.6699 43.3658 29.5693 +96.9953 44.4216 30.2892 +96.5224 45.1193 30.7649 +96.735 46.144 31.4636 +96.3301 46.8816 31.9666 +96.4313 47.8722 32.642 +96.6894 48.9542 33.3797 +96.8471 49.9997 34.0927 +96.231 50.6517 34.5372 +96.531 51.7936 35.3158 +96.6474 52.8524 36.0378 +96.6658 53.8706 36.7321 +96.0931 54.5655 37.2059 +96.3323 55.7302 38 +96.3099 56.7585 38.7012 +96.3539 57.8392 39.438 +95.659 58.4825 39.8767 +95.8363 59.6672 40.6845 +95.8371 60.7583 41.4285 +96.5313 62.3117 42.4877 +96.4956 63.4168 43.2412 +95.8221 64.1101 43.7139 +96.5302 65.7445 44.8284 +95.8322 66.438 45.3012 +95.7351 67.5557 46.0633 +95.7726 68.7854 46.9018 +96.3157 70.404 48.0054 +96.1629 71.538 48.7787 +95.4774 72.2844 49.2876 +95.8805 73.8716 50.3699 +95.7494 75.072 51.1884 +95.6722 76.3334 52.0485 +95.5042 77.5415 52.8722 +96.0251 79.3371 54.0966 +95.7442 80.4979 54.888 +95.5155 81.72 55.7214 +95.3371 83.0046 56.5973 +95.6162 84.7165 57.7646 +94.7177 85.4023 58.2321 +93.2768 85.5906 58.3606 +92.8331 86.6936 59.1127 +92.1763 87.6091 59.7369 +92.2216 89.2128 60.8304 +92.3686 90.9503 62.0151 +92.4222 92.6325 63.1621 +92.3842 94.2584 64.2708 +92.0077 95.5672 65.1631 +91.7336 97.0089 66.1462 +92.2274 99.3049 67.7118 +91.5962 100.428 68.4774 +93.0303 103.874 70.8272 +91.5182 104.073 70.9629 +91.693 106.209 72.4192 +92.9194 109.641 74.7594 +92.041 110.647 75.4456 +91.1484 111.649 76.1284 +91.3456 114.024 77.748 +91.4449 116.341 79.3282 +91.6633 118.878 81.0577 +90.8282 120.094 81.887 +91.0192 122.717 83.6757 +91.1617 125.352 85.4722 +90.7986 127.357 86.8389 +90.65 129.724 88.453 +90.7044 132.458 90.3177 +90.9503 135.564 92.4353 +92.9028 141.37 96.3941 +93.1432 144.733 98.6875 +92.8115 147.305 100.441 +92.8411 150.545 102.65 +92.4522 153.205 104.464 +92.3648 156.465 106.687 +92.5599 160.331 109.323 +92.3844 163.688 111.612 +92.0619 166.904 113.805 +92.1258 170.958 116.569 +92.2307 175.253 119.497 +91.3529 177.812 121.243 +89.9689 179.457 122.364 +88.5195 181.018 123.429 +87.1173 182.725 124.592 +91.4555 196.845 134.22 +90.9489 200.979 137.039 +88.5832 201.084 137.11 +86.0888 200.858 136.956 +83.7036 200.846 136.949 +81.4204 201.051 137.088 +79.3247 201.708 137.536 +76.5898 200.697 136.847 +74.3501 200.925 137.002 +72.0831 201.057 137.092 +69.9568 201.569 137.442 +67.2906 200.474 136.694 +65.1965 201.032 137.075 +62.7953 200.613 136.79 +60.6014 200.818 136.929 +58.3147 200.685 136.839 +56.2153 201.179 137.175 +53.9151 200.931 137.006 +51.6453 200.746 136.88 +49.3635 200.463 136.687 +47.2252 200.731 136.87 +44.9393 200.333 136.598 +42.8564 200.812 136.925 +40.6347 200.624 136.797 +38.4985 200.827 136.936 +36.2724 200.525 136.729 +34.1252 200.616 136.791 +31.9006 200.199 136.507 +29.7849 200.421 136.658 +27.6669 200.628 136.8 +25.4945 200.409 136.651 +23.3384 200.257 136.546 +21.1963 200.171 136.488 +18.9243 198.668 135.463 +16.895 199.621 136.113 +14.7799 199.653 136.135 +12.6601 199.586 136.089 +10.5428 199.506 136.034 +8.43172 199.491 136.025 +6.31912 199.379 135.948 +4.22174 199.83 136.256 +2.10135 198.945 135.652 +1.47871e-14 199.53 136.051 +-2.1031 199.11 135.764 +-4.20952 199.252 135.861 +-6.3165 199.296 135.892 +-8.41078 198.996 135.687 +-10.5123 198.928 135.64 +-12.6496 199.422 135.977 +-14.7799 199.653 136.135 +-16.9229 199.951 136.338 +-19.0106 199.574 136.081 +-21.1004 199.265 135.87 +-23.2234 199.269 135.873 +-25.3377 199.177 135.81 +-27.4178 198.822 135.568 +-29.6143 199.273 135.876 +-31.744 199.216 135.837 +-33.8469 198.979 135.675 +-36.0212 199.136 135.782 +-38.1231 198.869 135.6 +-40.2551 198.75 135.519 +-42.457 198.94 135.648 +-44.4837 198.302 135.213 +-46.7291 198.621 135.431 +-48.8451 198.359 135.252 +-51.2086 199.049 135.723 +-53.3091 198.673 135.466 +-55.5629 198.844 135.583 +-57.8711 199.159 135.798 +-59.9966 198.814 135.563 +-62.0942 198.374 135.263 +-64.5754 199.116 135.768 +-66.7027 198.722 135.5 +-68.9369 198.631 135.438 +-71.2026 198.602 135.418 +-73.5607 198.792 135.547 +-75.9282 198.964 135.665 +-78.3667 199.273 135.875 +-80.3733 198.464 135.324 +-83.0524 199.284 135.883 +-85.2543 198.911 135.629 +-87.6598 198.987 135.681 +-89.7582 198.348 135.245 +-92.5664 199.236 135.851 +-94.9238 199.099 135.757 +-97.2853 198.944 135.651 +-99.6125 198.693 135.48 +-102.059 198.651 135.452 +-104.074 197.756 134.842 +-107.297 199.111 135.766 +-109.52 198.556 135.387 +-111.867 198.208 135.15 +-114.387 198.14 135.103 +-117.308 198.718 135.497 +-119.715 198.383 135.269 +-122.35 198.395 135.277 +-125.226 198.751 135.52 +-127.696 198.425 135.297 +-130.073 197.932 134.962 +-132.789 197.926 134.957 +-138.519 202.282 137.928 +-141.9 203.065 138.461 +-144.598 202.817 138.292 +-144.365 198.509 135.355 +-143.948 194.079 132.334 +-144.933 191.633 130.666 +-146.79 190.372 129.806 +-150.375 191.315 130.45 +-159.234 198.767 135.531 +-164.459 201.447 137.358 +-168.562 202.637 138.169 +-633.859 747.925 509.978 +-639.006 740.165 504.687 +-143.008 162.627 110.888 +-143.828 160.593 109.502 +-143.834 157.702 107.531 +-144.155 155.217 105.836 +-143.326 151.568 103.348 +-143.303 148.847 101.492 +-144.87 147.809 100.784 +-151.45 151.795 103.503 +-678.205 667.789 455.336 +-702.053 679.146 463.08 +-705.526 670.566 457.23 +-701.251 654.872 446.529 +-693.085 635.976 433.645 +-701.465 632.478 431.26 +-705.937 625.463 426.476 +-710.726 618.791 421.927 +-714.803 611.563 416.999 +-720.675 605.914 413.147 +-723.936 598.125 407.836 +-729.655 592.419 403.945 +-733.727 585.414 399.169 +-739.882 580.102 395.547 +-743.64 572.942 390.665 +-749 567.056 386.651 +-753.4 560.474 382.163 +-758.617 554.527 378.108 +-762.86 547.898 373.588 +-768.39 542.216 369.714 +-773.169 536.019 365.488 +-778.415 530.161 361.494 +-782.586 523.592 357.015 +-788.086 517.929 353.154 +-793.448 512.177 349.232 +-798.827 506.437 345.318 +-804.146 500.658 341.377 +-809.403 494.841 337.411 +-813.628 488.404 333.022 +-820.954 483.814 329.892 +-825.296 477.45 325.553 +-830.637 471.669 321.611 +-836.25 466.032 317.767 +-842.475 460.714 314.141 +-848.735 455.388 310.509 +-881.26 463.855 316.283 +-885.956 457.397 311.879 +-899.109 455.222 310.397 +-385.382 191.319 130.452 +-383.856 186.813 127.38 +-384.429 183.378 125.037 +-380.955 178.077 121.423 +-2865.69 1312.42 894.884 +-381.846 171.294 116.798 +-382.758 168.147 114.653 +-384.697 165.457 112.818 +-381.44 160.577 109.49 +-385.001 158.595 108.139 +-137.695 55.4872 37.8343 +-383.87 151.276 103.149 +-382.099 147.211 100.377 +-382.821 144.142 98.2841 +-383.232 140.973 96.1237 +-984.189 353.568 241.083 +-992.212 347.975 237.269 +-383.318 131.182 89.4473 +-381.443 127.33 86.8209 +-380.262 123.758 84.3849 +-379.407 120.33 82.0481 +-381.413 117.821 80.3372 +-382.737 115.096 78.4787 +-381.77 111.697 76.1616 +-380.949 108.375 73.8963 +-384.83 106.385 72.5392 +-379.376 101.845 69.4435 +-1120.24 291.826 198.983 +-380.609 96.1414 65.5547 +-386.788 94.6608 64.5451 +-379.025 89.7961 61.2281 +-380.441 87.1704 59.4377 +-379.512 84.0175 57.288 +-380.385 81.2781 55.42 +-380.356 78.3525 53.4252 +-380.391 75.4529 51.4481 +-381.174 72.7074 49.5761 +-380.755 69.7417 47.5539 +-382.358 67.1485 45.7857 +-380.995 64.0433 43.6684 +-383.129 61.5303 41.9549 +-381.405 58.4043 39.8234 +-380.53 55.437 37.8001 +-379.917 52.5275 35.8163 +-380.161 49.7476 33.9207 +-381.266 47.078 32.1005 +-381.154 44.2583 30.1778 +-380.318 41.3683 28.2073 +-380.344 38.5844 26.309 +-379.743 35.7472 24.3744 +-381.598 33.1374 22.595 +-378.947 30.1473 20.5561 +-379.451 27.4283 18.7022 +-379.526 24.6785 16.8272 +-379.473 21.9239 14.949 +-378.792 19.1416 13.0518 +-146.1 6.3261 4.3135 +-378.24 13.6443 9.30348 +-380.268 10.9715 7.48101 +-150.149 3.24849 2.215 +-145.278 2.09513 1.42858 +-145.694 1.0505 0.716288 +97.1 0 0 +97.0963 0.704366 0.471026 +96.9852 1.40722 0.941044 +96.9668 2.1107 1.41148 +97.0408 2.81692 1.88375 +96.9077 3.51713 2.35199 +96.8671 4.21997 2.82199 +96.9189 4.92755 3.29517 +96.8635 5.63042 3.76519 +96.8007 6.33286 4.23493 +97.7267 7.10726 4.75279 +97.5488 7.80793 5.22135 +97.5626 8.52391 5.70014 +97.4694 9.23131 6.1732 +97.3688 9.93805 6.64581 +97.1616 10.6331 7.11064 +97.0463 11.3376 7.5817 +96.8247 12.0287 8.04391 +96.6947 12.7307 8.5133 +96.3601 13.4042 8.96373 +97.102 14.2326 9.51767 +96.8506 14.9213 9.97822 +96.6903 15.6233 10.4477 +96.5226 16.324 10.9163 +96.3475 17.0236 11.3841 +96.2628 17.7398 11.8631 +96.0729 18.4375 12.3296 +96.6536 19.289 12.899 +96.5444 20.0094 13.3808 +96.2339 20.6882 13.8347 +96.979 21.6006 14.4449 +96.7485 22.3033 14.9147 +96.4145 22.9813 15.3682 +97.0326 23.8924 15.9774 +96.778 24.5953 16.4475 +96.6115 25.3214 16.933 +97.1029 26.2268 17.5385 +96.8238 26.9302 18.0089 +97.2939 27.848 18.6227 +96.9978 28.5527 19.0939 +96.6004 29.2269 19.5447 +97.2266 30.2176 20.2072 +97.7459 31.1898 20.8574 +97.4147 31.8977 21.3308 +97.0761 32.6031 21.8025 +97.5617 33.5924 22.464 +97.2974 34.3313 22.9582 +97.025 35.069 23.4515 +96.6531 35.7714 23.9212 +97.1839 36.8158 24.6196 +96.7937 37.5194 25.0901 +97.2084 38.5422 25.7741 +97.5192 39.5375 26.4397 +97.1899 40.2805 26.9365 +97.387 41.2481 27.5836 +96.9503 41.953 28.0549 +97.2125 42.9668 28.733 +96.7578 43.6704 29.2035 +97.0828 44.7333 29.9143 +96.5224 45.3949 30.3567 +96.8216 46.4674 31.0739 +96.3301 47.168 31.5424 +96.517 48.2075 32.2375 +96.6894 49.2532 32.9368 +96.7623 50.2611 33.6108 +96.231 50.9611 34.0789 +96.4471 52.0647 34.8169 +96.6474 53.1753 35.5596 +96.0855 53.8744 36.0271 +96.9172 55.3697 37.0271 +96.1684 55.9753 37.432 +96.4727 57.2018 38.2522 +96.273 58.1437 38.8821 +96.3824 59.2849 39.6452 +95.7564 59.9817 40.1112 +96.4718 61.5344 41.1495 +95.9009 62.283 41.6501 +95.8695 63.3902 42.3906 +95.7444 64.4495 43.0989 +95.8358 65.6703 43.9153 +96.445 67.2714 44.986 +96.4195 68.4543 45.777 +95.6972 69.1511 46.243 +96.3157 70.8341 47.3685 +95.5684 71.5301 47.8339 +96.0672 73.1753 48.9341 +95.9536 74.3797 49.7395 +95.822 75.5878 50.5474 +95.6722 76.7998 51.3579 +95.5756 78.0734 52.2096 +95.318 79.2341 52.9857 +95.7442 80.9897 54.1597 +95.585 82.2791 55.022 +95.3371 83.5117 55.8463 +95.7526 85.3555 57.0792 +94.7177 85.924 57.4595 +93.2768 86.1136 57.5862 +92.8331 87.2233 58.3283 +92.6355 88.5832 59.2377 +92.1567 89.6946 59.981 +92.3686 91.5059 61.1922 +92.4222 93.1984 62.324 +92.0066 94.4469 63.1589 +92.0699 96.2167 64.3424 +91.7336 97.6016 65.2685 +91.6186 99.2525 66.3725 +92.1379 101.639 67.9684 +92.1975 103.573 69.262 +92.0472 105.314 70.426 +91.3446 106.451 71.1865 +92.6326 109.97 73.5395 +91.7578 110.98 74.2149 +91.1484 112.331 75.1182 +91.7319 115.206 77.041 +91.4449 117.052 78.2756 +91.6633 119.604 79.9822 +91.5171 121.745 81.4136 +91.0715 123.538 82.6126 +90.7497 125.548 83.9568 +90.7986 128.135 85.6867 +90.65 130.516 87.2793 +90.6552 133.194 89.0703 +91.1442 136.683 91.4034 +92.9028 142.234 95.115 +93.1432 145.618 97.378 +92.8115 148.205 99.1079 +92.7957 151.391 101.239 +92.4968 154.215 103.128 +92.3648 157.421 105.271 +92.6029 161.386 107.923 +92.3844 164.688 110.131 +92.1448 168.075 112.396 +92.1665 172.078 115.073 +92.2307 176.324 117.912 +91.392 178.975 119.685 +90.1219 180.861 120.946 +88.4821 182.047 121.739 +87.154 183.919 122.991 +91.7422 198.669 132.855 +91.0189 202.363 135.325 +88.1728 201.375 134.664 +85.8217 201.458 134.72 +83.8012 202.309 135.289 +81.4204 202.279 135.269 +78.9229 201.913 135.024 +76.5296 201.764 134.925 +74.0285 201.278 134.599 +71.8275 201.569 134.794 +69.7087 202.082 135.137 +67.3173 201.779 134.935 +64.9377 201.457 134.719 +62.7703 201.759 134.921 +60.6498 202.207 135.22 +58.3613 202.073 135.131 +56.0128 201.679 134.867 +53.742 201.509 134.754 +51.6245 201.891 135.01 +49.3236 201.525 134.765 +47.0153 201.059 134.453 +44.9393 201.556 134.786 +42.8564 202.039 135.108 +40.6347 201.85 134.982 +38.3734 201.398 134.679 +36.0951 200.764 134.256 +34.0139 201.183 134.536 +31.9006 201.422 134.696 +29.6752 200.903 134.349 +27.531 200.863 134.322 +25.39 200.807 134.284 +23.2522 200.735 134.236 +21.1091 200.565 134.122 +18.9479 200.131 133.832 +16.8741 200.592 134.141 +14.7737 200.79 134.273 +12.6496 200.64 134.173 +10.5035 199.977 133.729 +8.43521 200.793 134.275 +6.32173 200.68 134.2 +4.20603 200.303 133.947 +2.10222 200.243 133.907 +1.47443e-14 200.167 133.857 +-2.10397 200.409 134.019 +-4.20778 200.386 134.003 +-6.3165 200.514 134.089 +-8.41427 200.295 133.942 +-10.521 200.309 133.951 +-12.6182 200.142 133.84 +-14.7127 199.96 133.718 +-16.8462 200.261 133.919 +-18.9871 200.545 134.109 +-21.1876 201.31 134.621 +-23.2618 200.818 134.292 +-25.2645 199.815 133.621 +-27.4405 200.202 133.88 +-29.5289 199.913 133.687 +-31.6395 199.773 133.593 +-33.833 200.113 133.82 +-35.9029 199.695 133.541 +-38.0136 199.509 133.417 +-40.1066 199.226 133.227 +-42.3007 199.418 133.356 +-44.4837 199.513 133.419 +-46.5765 199.182 133.198 +-48.8651 199.652 133.512 +-51.2086 200.266 133.922 +-53.2874 199.805 133.614 +-55.5404 199.978 133.73 +-57.4276 198.84 132.969 +-59.8031 199.384 133.333 +-62.1193 199.666 133.522 +-64.3942 199.77 133.591 +-66.7294 200.017 133.756 +-68.9645 199.925 133.694 +-71.2026 199.815 133.621 +-73.5315 199.927 133.696 +-75.7478 199.703 133.546 +-78.0268 199.62 133.491 +-80.3415 199.599 133.477 +-82.8571 200.029 133.765 +-84.9538 199.421 133.358 +-87.694 200.281 133.933 +-89.7582 199.56 133.45 +-92.2081 199.677 133.529 +-94.594 199.62 133.49 +-96.9107 199.388 133.335 +-99.3829 199.446 133.374 +-102.098 199.941 133.706 +-104.472 199.727 133.562 +-106.768 199.341 133.304 +-109.52 199.769 133.591 +-111.867 199.419 133.356 +-114.473 199.5 133.41 +-116.914 199.26 133.25 +-119.492 199.222 133.225 +-121.896 198.867 132.987 +-124.395 198.639 132.835 +-127.321 199.049 133.109 +-129.692 198.556 132.779 +-132.45 198.626 132.826 +-138.47 203.446 136.049 +-141.45 203.658 136.191 +-144.344 203.698 136.218 +-143.953 199.152 133.177 +-144.001 195.336 130.626 +-144.562 192.31 128.603 +-146.36 190.974 127.709 +-150.375 192.484 128.719 +-159.951 200.882 134.335 +-163.62 201.644 134.844 +-166.977 201.956 135.053 +-634.892 753.719 504.03 +-639.644 745.431 498.488 +-142.126 162.611 108.742 +-143.59 161.307 107.87 +-144.496 159.396 106.592 +-143.546 155.506 103.991 +-143.572 152.756 102.151 +-143.552 150.017 100.32 +-146.569 150.456 100.613 +-152.85 154.133 103.072 +-681.419 675.053 451.424 +-702.898 684.116 457.485 +-707.035 676.106 452.129 +-710.991 668.025 446.724 +-692.349 639.183 427.437 +-701.736 636.587 425.701 +-706.891 630.135 421.386 +-712.309 623.958 417.256 +-716.401 616.674 412.385 +-721.586 610.387 408.18 +-725.774 603.307 403.446 +-731.438 597.495 399.559 +-735.237 590.203 394.683 +-740.172 583.875 390.451 +-744.664 577.236 386.012 +-750.032 571.307 382.047 +-754.664 564.843 377.724 +-758.917 558.135 373.239 +-764.445 552.391 369.397 +-768.846 545.853 365.025 +-774.088 539.934 361.067 +-779.495 534.139 357.192 +-783.674 527.523 352.768 +-789.886 522.284 349.264 +-793.921 515.613 344.803 +-799.621 510.037 341.074 +-805.344 504.467 337.349 +-810.207 498.359 333.264 +-815.813 492.707 329.485 +-820.547 486.529 325.354 +-826.361 480.987 321.648 +-832.78 475.775 318.162 +-837.494 469.576 314.017 +-843.892 464.309 310.494 +-853.431 460.705 308.085 +-881.428 466.779 312.146 +-887.228 460.852 308.183 +-900.473 458.698 306.743 +-383.925 191.76 128.235 +-382.477 187.28 125.238 +-383.996 184.29 123.239 +-381.216 179.288 119.894 +-382.034 176.032 117.717 +-382.725 172.738 115.514 +-383.288 169.409 113.288 +-383.011 165.739 110.834 +-381.44 161.558 108.038 +-384.464 159.342 106.556 +-136.886 55.4982 37.113 +-382.877 151.807 101.517 +-382.915 148.426 99.2564 +-382.002 144.712 96.7727 +-382.41 141.53 94.6447 +-985.656 356.257 238.238 +-994.329 350.848 234.621 +-382.763 131.793 88.1331 +-380.331 127.735 85.4193 +-382.122 125.123 83.6727 +-378.847 120.887 80.8399 +-382.069 118.746 79.408 +-381.609 115.457 77.2089 +-382.053 112.463 75.2066 +-387.757 110.987 74.2194 +-382.08 106.27 71.0653 +-380.898 102.878 68.7967 +-1119.09 293.308 196.142 +-381.757 97.0205 64.88 +-1155.28 284.466 190.229 +-379.987 90.5733 60.5685 +-380.441 87.7029 58.6491 +-379.512 84.5308 56.5278 +-380.385 81.7746 54.6847 +-379.968 78.7508 52.6625 +-380.78 75.9915 50.8173 +-382.051 73.3199 49.0308 +-381.634 70.3298 47.0312 +-381.771 67.455 45.1088 +-381.779 64.567 43.1775 +-380.479 61.478 41.1118 +-380.52 58.6247 39.2037 +-380.234 55.7323 37.2696 +-381.397 53.0543 35.4787 +-381.05 50.1685 33.5489 +-379.386 47.1322 31.5184 +-382.343 44.6675 29.8702 +-380.417 41.6319 27.8403 +-380.344 38.8201 25.9599 +-380.24 36.0126 24.0825 +-380.106 33.2095 22.208 +-381.038 30.4988 20.3953 +-378.554 27.5307 18.4104 +-379.925 24.8553 16.6214 +-379.972 22.0867 14.7699 +-379.291 19.2839 12.8956 +-146.499 6.38215 4.2679 +-379.139 13.7603 9.20188 +-379.269 11.0095 7.36235 +-147.05 3.20088 2.1405 +-146.778 2.1297 1.42418 +-145.694 1.05691 0.706784 +97.1 0 0 +96.9963 0.707856 0.464174 +97.0852 1.41712 0.92927 +96.9668 2.12335 1.39238 +97.0408 2.8338 1.85826 +97.0076 3.54185 2.32255 +96.9669 4.24963 2.78668 +96.9189 4.95708 3.25058 +97.7613 5.71665 3.74867 +96.8007 6.3708 4.17763 +97.7267 7.14985 4.68848 +97.6484 7.86273 5.15596 +97.5626 8.57498 5.62301 +97.4694 9.28663 6.08967 +97.3688 9.9976 6.55588 +97.2607 10.7077 7.02155 +97.1453 11.4171 7.48673 +96.9236 12.1132 7.94319 +96.6947 12.807 8.39811 +96.3601 13.4846 8.84244 +96.2157 14.1872 9.30318 +96.8506 15.0107 9.8432 +96.7884 15.7329 10.3168 +96.5226 16.4219 10.7686 +96.4454 17.143 11.2415 +96.2628 17.8461 11.7025 +96.9498 18.7173 12.2738 +96.7508 19.424 12.7372 +96.5444 20.1293 13.1997 +96.3307 20.8331 13.6612 +96.979 21.7301 14.2494 +96.6521 22.4146 14.6983 +97.2797 23.3265 15.2963 +97.0326 24.0356 15.7612 +96.778 24.7427 16.2249 +96.5162 25.448 16.6874 +97.0078 26.3581 17.2842 +96.729 27.065 17.7478 +97.2939 28.0149 18.3707 +96.9978 28.7238 18.8355 +96.6004 29.402 19.2802 +97.2266 30.3986 19.9338 +97.7459 31.3767 20.5751 +97.4147 32.0888 21.0421 +97.9106 33.0804 21.6924 +97.6541 33.8256 22.181 +97.2974 34.537 22.6475 +97.8503 35.5791 23.3309 +97.5667 36.3259 23.8206 +97.0929 37.0018 24.2638 +97.5187 38.027 24.936 +97.2084 38.7732 25.4253 +97.609 39.811 26.1059 +97.1899 40.5218 26.572 +97.387 41.4953 27.2104 +97.6599 42.5132 27.8779 +97.2125 43.2243 28.3442 +96.7578 43.9321 28.8083 +97.0828 45.0014 29.5095 +96.5224 45.667 29.9459 +96.8216 46.7459 30.6534 +97.1056 47.8327 31.3661 +96.517 48.4964 31.8013 +96.6894 49.5484 32.4912 +96.8471 50.6066 33.1851 +96.231 51.2665 33.6178 +96.4471 52.3767 34.3458 +96.6474 53.4939 35.0784 +96.0855 54.1972 35.5396 +96.0931 55.2279 36.2155 +96.1684 56.3107 36.9255 +96.3099 57.4474 37.6709 +96.3539 58.5412 38.3882 +96.4628 59.6898 39.1414 +95.8363 60.3915 39.6015 +96.5511 61.954 40.6261 +95.9009 62.6562 41.0866 +96.4956 64.1866 42.0901 +95.8221 64.8883 42.5502 +96.5302 66.5426 43.635 +95.8322 67.2444 44.0953 +96.4195 68.8645 45.1576 +95.6217 69.5106 45.5813 +95.7165 70.8152 46.4368 +96.2373 72.4623 47.5169 +96.0672 73.6138 48.272 +95.9536 74.8254 49.0664 +95.7494 75.9832 49.8257 +95.6722 77.26 50.6629 +95.5042 78.4827 51.4647 +95.3887 79.768 52.3075 +95.8143 81.5346 53.466 +95.585 82.7722 54.2775 +95.4059 84.0732 55.1307 +95.207 85.3777 55.9861 +94.7177 86.4389 56.682 +93.2768 86.6296 56.807 +92.568 87.4951 57.3745 +92.7667 89.2403 58.519 +92.2216 90.2957 59.211 +92.3043 91.9899 60.322 +92.5494 93.8856 61.5651 +92.5101 95.5322 62.6449 +92.6302 97.382 63.8578 +92.2261 98.7133 64.7308 +91.6186 99.8472 65.4744 +92.1379 102.248 67.0487 +92.0786 104.059 68.2365 +91.9296 105.81 69.3842 +91.6349 107.429 70.4464 +92.9767 111.04 72.8142 +91.9277 111.852 73.3467 +91.7076 113.697 74.5564 +91.7319 115.896 75.9986 +91.4449 117.754 77.2165 +91.6633 120.321 78.8999 +91.4111 122.332 80.2188 +91.3327 124.635 81.7289 +90.7497 126.3 82.8207 +90.7986 128.902 84.5272 +90.65 131.298 86.0983 +90.7044 134.066 87.9134 +90.7564 136.917 89.7827 +92.8551 143.012 93.7797 +93.1432 146.49 96.0604 +93.1809 149.686 98.1562 +92.8411 152.372 99.9176 +92.4968 155.139 101.732 +92.3648 158.364 103.847 +92.6029 162.353 106.462 +92.3844 165.675 108.641 +92.4766 169.691 111.274 +92.1665 173.109 113.516 +92.2307 177.38 116.316 +91.392 180.048 118.066 +90.2368 182.176 119.461 +88.4821 183.138 120.092 +87.6671 186.11 122.041 +91.4555 199.234 130.647 +90.9489 203.419 133.391 +88.1728 202.582 132.842 +85.8885 202.824 133.001 +83.4757 202.731 132.94 +81.1031 202.698 132.919 +78.9229 203.123 133.197 +76.4996 202.894 133.047 +74.0285 202.484 132.778 +71.7991 202.696 132.917 +69.7363 203.373 133.361 +67.0768 202.262 132.633 +64.9636 202.744 132.949 +62.57 202.32 132.671 +60.4321 202.688 132.912 +58.1279 202.471 132.769 +56.0353 202.969 133.096 +53.5472 201.982 132.449 +51.4581 202.447 132.754 +49.1641 202.077 132.511 +47.0153 202.264 132.634 +44.8117 202.188 132.584 +42.6654 202.343 132.685 +40.4367 202.069 132.506 +38.3264 202.357 132.695 +36.0803 201.885 132.385 +34.0139 202.389 132.716 +31.7701 201.8 132.33 +29.6752 202.107 132.531 +27.5423 202.15 132.559 +25.39 202.01 132.467 +23.2618 202.022 132.475 +21.1266 201.934 132.417 +18.9322 201.163 131.912 +16.8253 201.21 131.942 +14.7005 200.991 131.799 +12.6025 201.091 131.865 +10.5079 201.259 131.975 +8.40729 201.328 132.02 +6.29294 200.964 131.781 +4.20428 201.42 132.08 +2.1031 201.527 132.15 +1.47443e-14 201.367 132.046 +-2.10222 201.443 132.095 +-4.19556 201.001 131.806 +-6.3165 201.716 132.274 +-8.41427 201.495 132.129 +-10.4861 200.841 131.701 +-12.6182 201.342 132.029 +-14.731 201.409 132.073 +-16.8392 201.377 132.052 +-18.9871 201.747 132.294 +-21.1788 202.433 132.745 +-23.1659 201.189 131.929 +-25.39 202.01 132.467 +-27.4178 201.236 131.959 +-29.5289 201.111 131.878 +-31.6265 200.888 131.731 +-33.833 201.312 132.009 +-35.8142 200.396 131.409 +-38.0292 200.787 131.666 +-40.1231 200.502 131.479 +-42.3181 200.696 131.606 +-44.4837 200.709 131.614 +-46.5765 200.376 131.396 +-48.8451 200.766 131.652 +-51.0007 200.648 131.574 +-53.2874 201.002 131.806 +-55.338 200.443 131.44 +-57.4742 200.194 131.276 +-59.7789 200.497 131.475 +-62.0942 200.782 131.662 +-64.4201 201.048 131.837 +-66.4889 200.49 131.47 +-68.7715 200.56 131.516 +-70.9754 200.371 131.392 +-73.5022 201.045 131.834 +-75.7478 200.899 131.739 +-78.0268 200.817 131.685 +-80.3733 200.873 131.722 +-82.8245 201.149 131.903 +-85.0206 200.774 131.657 +-87.3519 200.695 131.605 +-89.7582 200.756 131.645 +-92.1722 200.796 131.671 +-94.594 200.816 131.684 +-96.9107 200.582 131.531 +-99.4212 200.718 131.62 +-101.825 200.601 131.543 +-104.113 200.233 131.302 +-106.85 200.688 131.6 +-109.147 200.281 131.334 +-111.867 200.614 131.552 +-114.473 200.695 131.605 +-116.914 200.454 131.447 +-119.09 199.743 130.981 +-121.987 200.207 131.285 +-124.487 199.977 131.134 +-127.415 200.39 131.405 +-129.883 200.041 131.176 +-132.256 199.524 130.837 +-138.47 204.665 134.208 +-141.35 204.733 134.253 +-144.039 204.486 134.091 +-143.953 200.345 131.375 +-144.001 196.507 128.858 +-144.35 193.178 126.676 +-145.447 190.919 125.194 +-150.103 193.287 126.747 +-157.688 199.227 130.642 +-163.005 202.089 132.519 +-165.674 201.582 132.186 +-635.637 759.126 497.794 +-146.802 172.105 112.857 +-142.891 164.465 107.847 +-143.59 162.273 106.41 +-144.255 160.084 104.975 +-143.729 156.637 102.714 +-143.634 153.737 100.812 +-143.116 150.458 98.6624 +-148.457 153.307 100.531 +-153.74 155.961 102.271 +-684.247 681.916 447.164 +-703.092 688.406 451.42 +-708.413 681.482 446.879 +-713.31 674.22 442.117 +-693.42 644.007 422.305 +-701.938 640.587 420.062 +-707.71 634.645 416.166 +-712.929 628.243 411.968 +-717.235 621.091 407.278 +-722.287 614.641 403.049 +-726.411 607.455 398.336 +-731.51 601.134 394.192 +-736.244 594.553 389.876 +-740.752 587.834 385.47 +-745.542 581.379 381.237 +-750.991 575.464 377.358 +-754.292 567.948 372.43 +-760.19 562.422 368.806 +-764.068 555.426 364.219 +-770.215 550.101 360.727 +-774.777 543.653 356.498 +-780.421 537.979 352.778 +-784.684 531.369 348.443 +-789.886 525.414 344.538 +-795.339 519.629 340.745 +-800.732 513.806 336.926 +-805.344 507.49 332.784 +-811.333 502.042 329.212 +-816.055 495.807 325.123 +-822.419 490.561 321.683 +-827.507 484.541 317.736 +-832.862 478.673 313.888 +-838.986 473.231 310.32 +-844.643 467.506 306.566 +-856.199 464.968 304.901 +-883.284 470.565 308.571 +-888.924 464.499 304.594 +-902.008 462.233 303.108 +-383.411 192.651 126.33 +-384.545 189.42 124.212 +-383.476 185.144 121.407 +-382.173 180.815 118.568 +-382.384 177.249 116.23 +-380.001 172.536 113.14 +-383.817 170.659 111.909 +-383.011 166.732 109.334 +-382.153 162.83 106.775 +-384.106 160.147 105.016 +-136.617 55.7208 36.5387 +-382.877 152.717 100.143 +-382.099 148.998 97.7049 +-382.912 145.927 95.6908 +-382.41 142.378 93.3641 +-986.757 358.793 235.277 +-994.79 353.114 231.553 +-381.655 132.199 86.6889 +-380.98 128.719 84.4071 +-381.75 125.75 82.4599 +-379.407 121.791 79.864 +-380.008 118.812 77.9107 +-381.421 116.092 76.1269 +-381.393 112.941 74.0607 +-1113.54 320.633 210.254 +-381.89 106.854 70.0691 +-379.662 103.159 67.6459 +-1121.57 295.72 193.917 +-381.757 97.6019 64.0021 +-1158.64 287.001 188.2 +-380.948 91.3468 59.9003 +-381.309 88.4292 57.9871 +-381.058 85.3836 55.9899 +-381.934 82.5996 54.1644 +-379.192 79.0608 51.8438 +-379.808 76.2516 50.0017 +-382.44 73.8345 48.4167 +-380.755 70.5883 46.288 +-381.282 67.7723 44.4414 +-380.995 64.8206 42.5059 +-381.068 61.9421 40.6183 +-381.306 59.0979 38.7532 +-382.302 56.3712 36.9652 +-381.693 53.4136 35.0257 +-381.05 50.4692 33.095 +-380.573 47.563 31.1892 +-380.659 44.7373 29.3363 +-379.426 41.7723 27.392 +-380.84 39.1037 25.6421 +-379.743 36.1811 23.7256 +-381.101 33.4959 21.9648 +-379.345 30.5452 20.0299 +-380.546 27.8414 18.2569 +-380.224 25.0239 16.4093 +-379.074 22.1667 14.5357 +-379.69 19.4199 12.7346 +-146.998 6.44228 4.2245 +-380.138 13.8793 9.10127 +-379.269 11.0755 7.26272 +-148.249 3.24632 2.12876 +-144.778 2.11327 1.38577 +-144.794 1.05667 0.69291 +97.1 0 0 +97.0963 0.712749 0.458241 +97.0852 1.42545 0.916448 +97.0667 2.13803 1.37458 +97.1408 2.85339 1.8345 +97.1075 3.56633 2.29286 +96.9669 4.27459 2.74822 +97.8172 5.03242 3.23545 +97.861 5.75611 3.70072 +96.9004 6.41483 4.12422 +97.7267 7.19185 4.62379 +97.6484 7.90893 5.08481 +97.5626 8.62536 5.54542 +97.5688 9.35077 6.01181 +97.3688 10.0563 6.46543 +97.2607 10.7706 6.92467 +97.1453 11.4842 7.38343 +96.9236 12.1844 7.83358 +97.5836 13.0006 8.35837 +96.5574 13.5915 8.73828 +97.102 14.402 9.25934 +96.9489 15.1142 9.71723 +96.7884 15.8253 10.1744 +96.6206 16.5352 10.6308 +97.2279 17.3836 11.1763 +96.458 17.9874 11.5645 +96.9498 18.8272 12.1044 +96.7508 19.5382 12.5615 +96.5444 20.2476 13.0176 +97.202 21.1451 13.5946 +96.979 21.8577 14.0528 +96.7485 22.5688 14.5099 +96.4145 23.2549 14.951 +97.0326 24.1768 15.5438 +97.6387 25.1095 16.1434 +97.3745 25.8252 16.6036 +97.1029 26.5389 17.0624 +96.729 27.224 17.5029 +97.2939 28.1795 18.1172 +96.9978 28.8926 18.5756 +96.6004 29.5747 19.0142 +97.3202 30.6067 19.6777 +97.7459 31.561 20.2912 +97.5078 32.3081 20.7716 +97.0761 32.9912 21.2107 +97.7465 34.0566 21.8957 +97.2974 34.7399 22.335 +97.8503 35.7882 23.009 +97.5667 36.5393 23.4919 +97.2749 37.289 23.9738 +96.8843 38.0016 24.432 +97.1182 38.9648 25.0513 +97.609 40.0449 25.7457 +97.1899 40.7599 26.2054 +97.387 41.7391 26.8349 +97.1277 42.53 27.3434 +97.2125 43.4783 27.9531 +97.4608 44.5113 28.6172 +97.0828 45.2658 29.1023 +97.3058 46.3081 29.7724 +96.8216 47.0205 30.2305 +97.1056 48.1137 30.9333 +96.517 48.7813 31.3625 +96.8599 49.9274 32.0993 +96.9319 50.9485 32.7559 +96.3153 51.6129 33.183 +96.531 52.7303 33.9014 +96.6474 53.8082 34.5944 +96.0855 54.5156 35.0492 +96.2579 55.6476 35.777 +96.1684 56.6416 36.416 +96.4727 57.8826 37.2139 +96.3539 58.8852 37.8585 +96.6236 60.1406 38.6656 +95.8363 60.7463 39.0551 +95.8371 61.8571 39.7692 +95.8221 62.9725 40.4863 +95.9478 64.1971 41.2737 +95.8998 65.3224 41.9971 +95.7586 66.3984 42.6889 +95.9088 67.6936 43.5216 +95.8112 68.8321 44.2536 +95.6972 69.9742 44.9878 +95.6416 71.1756 45.7603 +96.2373 72.888 46.8612 +96.0672 74.0463 47.6059 +95.9536 75.265 48.3894 +95.7494 76.4296 49.1382 +95.7441 77.7723 50.0014 +95.5042 78.9438 50.7546 +95.3887 80.2366 51.5858 +95.8143 82.0136 52.7283 +95.5155 83.1979 53.4896 +95.4748 84.6277 54.4089 +95.207 85.8793 55.2136 +94.5826 86.8231 55.8204 +93.2768 87.1385 56.0232 +92.568 88.0091 56.5829 +92.7667 89.7646 57.7115 +92.2216 90.8261 58.394 +92.4329 92.659 59.5724 +92.4222 94.3077 60.6324 +92.5101 96.0935 61.7805 +92.0077 97.2955 62.5533 +91.8567 98.8953 63.5819 +91.5577 100.367 64.5277 +92.0777 102.781 66.0803 +92.6139 105.28 67.6865 +91.8708 106.363 68.383 +91.9253 108.403 69.6945 +92.8047 111.486 71.6765 +91.5879 112.093 72.0669 +91.2603 113.807 73.1691 +91.7871 116.647 74.9948 +91.3904 118.375 76.1056 +91.2335 120.46 77.4462 +91.4111 123.051 79.1119 +91.0192 124.937 80.3243 +90.7497 127.042 81.6779 +90.7986 129.66 83.3609 +90.65 132.07 84.9103 +90.9506 135.22 86.9356 +90.9503 138.016 88.7332 +93.2845 144.518 92.9135 +93.0962 147.277 94.6873 +93.227 150.64 96.8494 +92.8411 153.268 98.5389 +92.4968 156.051 100.328 +92.3648 159.294 102.414 +92.5599 163.231 104.945 +92.3844 166.649 107.142 +92.0619 169.922 109.247 +92.1665 174.126 111.95 +91.9117 177.805 114.314 +91.3529 181.028 116.387 +90.1219 183.013 117.663 +88.07 183.356 117.883 +88.2901 188.535 121.213 +91.4197 200.326 128.794 +90.7037 204.062 131.196 +88.1044 203.614 130.908 +85.7216 203.618 130.91 +83.5082 204.002 131.157 +80.754 203.011 130.52 +78.6448 203.596 130.896 +76.1988 203.283 130.695 +73.9993 203.594 130.895 +71.5719 203.242 130.669 +69.5157 203.921 131.105 +67.1036 203.532 130.855 +64.9118 203.773 131.01 +62.5449 203.427 130.788 +60.4321 203.879 131.078 +57.9411 203.006 130.517 +55.8329 203.424 130.785 +53.5688 203.251 130.674 +51.4374 203.554 130.869 +49.1841 203.346 130.736 +47.0535 203.617 130.91 +44.8482 203.542 130.861 +42.6654 203.532 130.855 +40.3871 203.008 130.518 +38.3108 203.463 130.81 +36.0951 203.154 130.612 +33.8747 202.744 130.348 +31.6657 202.319 130.075 +29.5655 202.543 130.219 +27.4857 202.919 130.461 +25.3063 202.528 130.209 +23.1947 202.622 130.27 +21.0394 202.282 130.051 +18.893 201.926 129.822 +16.8113 202.224 130.014 +14.7005 202.172 129.981 +12.613 202.441 130.153 +10.4643 201.601 129.614 +8.40729 202.51 130.198 +6.28509 201.892 129.801 +4.19032 201.93 129.825 +2.09524 201.954 129.84 +1.46953e-14 201.877 129.791 +-2.09524 201.954 129.84 +-4.19032 201.93 129.825 +-6.27461 201.556 129.584 +-8.42125 202.847 130.414 +-10.4948 202.189 129.992 +-12.5711 201.768 129.721 +-14.6639 201.668 129.657 +-16.8113 202.224 130.014 +-18.9165 202.177 129.984 +-21.1091 202.952 130.482 +-23.1467 202.203 130.001 +-25.1914 201.608 129.618 +-27.3159 201.666 129.655 +-29.4193 201.541 129.575 +-31.509 201.318 129.431 +-33.6938 201.662 129.652 +-35.8142 201.573 129.596 +-37.8884 201.219 129.368 +-39.991 201.017 129.238 +-42.1791 201.212 129.364 +-44.3561 201.308 129.425 +-46.5765 201.553 129.583 +-48.6856 201.287 129.411 +-50.8136 201.085 129.282 +-52.8762 200.623 128.985 +-55.4054 201.866 129.784 +-57.4509 201.288 129.412 +-59.5854 201.022 129.241 +-61.8689 201.228 129.374 +-64.1871 201.498 129.548 +-66.2484 200.938 129.187 +-68.6061 201.253 129.39 +-70.947 201.467 129.528 +-73.2976 201.663 129.654 +-75.5072 201.438 129.509 +-77.7487 201.276 129.405 +-80.2146 201.655 129.648 +-82.5315 201.615 129.623 +-84.7536 201.319 129.432 +-87.4203 202.033 129.891 +-89.4079 201.147 129.321 +-91.8855 201.347 129.45 +-94.3374 201.447 129.515 +-96.9856 201.917 129.817 +-99.115 201.276 129.404 +-101.825 201.779 129.728 +-104.074 201.333 129.441 +-106.565 201.329 129.439 +-108.816 200.846 129.128 +-111.487 201.107 129.296 +-113.698 200.508 128.911 +-116.475 200.876 129.147 +-119.09 200.916 129.173 +-121.942 201.308 129.425 +-124.395 201.003 129.229 +-126.945 200.825 129.114 +-129.644 200.847 129.128 +-131.965 200.254 128.748 +-137.632 204.623 131.556 +-141 205.426 132.073 +-143.735 205.253 131.961 +-144.005 201.594 129.609 +-144.053 197.733 127.126 +-143.82 193.6 124.469 +-144.856 191.26 122.965 +-150.048 194.352 124.953 +-154.487 196.33 126.224 +-162.725 202.928 130.467 +-165.221 202.212 130.006 +-1879.44 2257.76 1451.56 +-142.911 168.529 108.351 +-143.243 165.839 106.622 +-144.007 163.7 105.246 +-144.014 160.755 103.353 +-143.607 157.424 101.211 +-143.203 154.176 99.1229 +-144.859 153.185 98.4859 +-150.219 156.038 100.32 +-678.505 692.347 445.124 +-689.004 690.691 444.06 +-705.82 695.137 446.918 +-709.134 686.185 441.162 +-714.768 679.568 436.908 +-700.847 654.729 420.939 +-700.722 643.234 413.548 +-708.323 638.927 410.78 +-714.719 633.52 407.303 +-718.485 625.83 402.359 +-724.25 619.932 398.567 +-727.966 612.332 393.681 +-733.721 606.493 389.927 +-737.467 599.04 385.135 +-742.638 592.792 381.119 +-746.639 585.655 376.53 +-752.686 580.152 372.992 +-756.67 573.086 368.449 +-761.538 566.729 364.362 +-766.03 560.125 360.116 +-772.192 554.753 356.662 +-775.926 547.659 352.101 +-782.273 542.423 348.735 +-786.472 535.708 344.417 +-792.939 530.543 341.097 +-796.048 523.148 336.343 +-802.874 518.207 333.166 +-806.382 511.13 328.616 +-813.101 506.091 325.377 +-817.269 499.461 321.114 +-824.618 494.762 318.093 +-828.245 487.821 313.63 +-835.499 483.01 310.537 +-839.318 476.2 306.159 +-846.894 471.506 303.141 +-860.811 470.22 302.314 +-885.055 474.278 304.923 +-890.959 468.298 301.079 +-902.434 465.168 299.066 +-384.097 194.129 124.81 +-384.804 190.662 122.58 +-383.303 186.147 119.678 +-382.347 181.96 116.986 +-379.06 176.74 113.63 +-381.231 174.111 111.94 +-382.846 171.228 110.086 +-382.834 167.634 107.776 +-381.885 163.672 105.228 +-383.479 160.825 103.398 +-136.976 56.1957 36.1293 +-955.296 383.274 246.415 +-383.006 150.228 96.585 +-381.638 146.295 94.0562 +-381.588 142.907 91.8779 +-3004.75 1098.97 706.549 +-996.539 355.813 228.76 +-382.486 133.265 85.6788 +-380.609 129.349 83.1614 +-381.099 126.273 81.1837 +-381.461 123.169 79.1881 +-379.727 119.422 76.7789 +-382.173 117.005 75.2246 +-380.073 113.212 72.7862 +-386.812 112.033 72.0285 +-382.08 107.535 69.1364 +-380.518 103.999 66.8629 +-1123.86 298.065 191.632 +-380.896 97.9541 62.9767 +-1161.42 289.381 186.049 +-380.948 91.8835 59.0738 +-380.923 88.8587 57.1291 +-380.865 85.8415 55.1893 +-380.676 82.8111 53.241 +-379.968 79.6881 51.2331 +-380.391 76.8174 49.3875 +-382.343 74.2494 47.7364 +-382.513 71.3307 45.86 +-381.086 68.1355 43.8057 +-381.877 65.3524 42.0164 +-380.675 62.2418 40.0165 +-382.29 59.5985 38.3171 +-382.007 56.6585 36.4269 +-382.284 53.8107 34.596 +-380.458 50.6868 32.5876 +-380.969 47.8921 30.7908 +-379.867 44.9065 28.8713 +-379.823 42.0616 27.0423 +-380.046 39.2515 25.2356 +-380.637 36.4793 23.4533 +-380.206 33.6135 21.6108 +-379.246 30.7166 19.7483 +-379.65 27.939 17.9626 +-379.726 25.138 16.1617 +-380.97 22.4083 14.4068 +-378.792 19.4878 12.5291 +-146.699 6.46692 4.15772 +-379.239 13.9277 8.95444 +-379.968 11.1611 7.17571 +-146.85 3.23457 2.07957 +-146.878 2.15652 1.38647 +-146.594 1.0761 0.691845 +97.2 0 0 +97.1963 0.717592 0.452258 +97.1852 1.43513 0.904479 +97.0667 2.15034 1.35524 +97.2407 2.87277 1.81055 +97.1075 3.58687 2.2606 +97.0668 4.30364 2.71234 +97.0187 5.02009 3.16388 +97.861 5.78926 3.64864 +97.0001 6.45841 4.07037 +97.8263 7.24064 4.56336 +97.6484 7.95448 5.01326 +97.6621 8.68392 5.47298 +97.5688 9.40463 5.9272 +96.5747 10.0318 6.32245 +97.3599 10.8438 6.8342 +97.2443 11.5621 7.28693 +96.9236 12.2545 7.72334 +97.6824 13.0888 8.24912 +96.656 13.6838 8.62411 +97.299 14.5143 9.14753 +97.1456 15.2321 9.59994 +96.9848 15.9487 10.0515 +96.6206 16.6304 10.4812 +96.641 17.3783 10.9525 +96.458 18.091 11.4017 +97.1447 18.9737 11.9581 +96.9453 19.6902 12.4096 +96.7385 20.4052 12.8602 +96.5243 21.1186 13.3098 +97.1721 22.0274 13.8826 +96.9412 22.744 14.3343 +96.7029 23.4588 14.7847 +97.1284 24.3401 15.3402 +96.8737 25.0562 15.7915 +96.6115 25.7704 16.2416 +97.198 26.7179 16.8388 +96.9187 27.4345 17.2904 +97.6721 28.452 17.9316 +97.3749 29.1719 18.3854 +97.728 30.0923 18.9654 +97.4139 30.8126 19.4194 +97.9326 31.8035 20.0439 +97.5078 32.4942 20.4793 +97.9106 33.4664 21.092 +97.6541 34.2203 21.5671 +98.2179 35.2705 22.229 +97.025 35.6907 22.4938 +96.8358 36.4745 22.9878 +97.2749 37.5037 23.6365 +96.8843 38.2204 24.0882 +97.2987 39.262 24.7446 +96.89 39.9789 25.1964 +97.2794 41.0324 25.8604 +97.4761 42.0179 26.4815 +97.2164 42.814 26.9832 +97.4774 43.8479 27.6348 +96.8456 44.4851 28.0364 +97.0828 45.5265 28.6928 +96.6095 46.2414 29.1434 +97.6011 47.672 30.045 +97.1056 48.3908 30.498 +97.3742 49.4979 31.1957 +96.7747 50.1708 31.6198 +96.9319 51.242 32.2949 +97.0744 52.3193 32.9739 +96.6148 53.08 33.4533 +96.7308 54.1648 34.137 +96.8316 55.2553 34.8243 +96.2579 55.9681 35.2735 +96.3323 57.0648 35.9647 +96.4727 58.216 36.6902 +96.5157 59.3238 37.3884 +96.5432 60.4366 38.0898 +95.9161 61.1471 38.5375 +95.9958 62.3164 39.2745 +95.9009 63.3873 39.9494 +95.9478 64.5669 40.6928 +96.5215 66.1246 41.6746 +95.8358 66.8347 42.1221 +95.9088 68.0834 42.9091 +96.4195 69.668 43.9078 +96.3764 70.8767 44.6695 +96.3906 72.1461 45.4696 +96.2373 73.3078 46.2018 +95.4774 74.0155 46.6478 +95.9536 75.6984 47.7084 +95.822 76.928 48.4834 +95.7441 78.2202 49.2977 +95.5756 79.4577 50.0777 +96.0251 81.2371 51.1991 +95.8143 82.486 51.9862 +95.585 83.738 52.7753 +95.6813 85.2995 53.7594 +95.3434 86.4974 54.5144 +94.4475 87.1979 54.9559 +93.3437 87.7038 55.2747 +92.3692 88.3257 55.6666 +92.8324 90.345 56.9394 +92.2866 91.4135 57.6128 +92.4329 93.1927 58.7341 +92.5494 94.9811 59.8612 +92.5101 96.6469 60.911 +91.9454 97.7898 61.6314 +91.7336 99.3321 62.6034 +92.2274 101.683 64.0851 +92.0777 103.373 65.1504 +92.6139 105.886 66.734 +92.1647 107.318 67.6366 +92.7963 110.061 69.3652 +92.5752 111.85 70.4929 +91.9277 113.157 71.3167 +91.428 114.673 72.2722 +92.1735 117.813 74.2508 +91.9351 119.766 75.4819 +91.2872 121.225 76.4011 +91.3581 123.688 77.9532 +91.2282 125.945 79.3758 +90.8012 127.846 80.5744 +90.7986 130.406 82.1878 +90.7 132.904 83.7618 +91.4923 136.808 86.2224 +90.7079 138.44 87.2509 +93.38 145.499 91.6998 +93.1432 148.2 93.4017 +93.1809 151.433 95.4396 +92.8411 154.15 97.1522 +92.4968 156.95 98.9165 +92.3648 160.212 100.972 +92.6029 164.247 103.516 +92.3844 167.608 105.634 +92.4351 171.594 108.146 +92.4919 175.748 110.764 +92.3902 179.76 113.293 +91.1185 181.604 114.455 +89.701 183.207 115.465 +87.9576 184.176 116.076 +89.7195 192.69 121.441 +91.6347 201.954 127.28 +90.2835 204.287 128.75 +87.7966 204.071 128.614 +85.2543 203.675 128.365 +83.2152 204.457 128.857 +80.5637 203.699 128.38 +78.4285 204.205 128.699 +75.838 203.486 128.245 +73.8823 204.442 128.848 +71.2594 203.52 128.267 +69.2125 204.201 128.696 +66.7294 203.563 128.294 +64.7306 204.375 128.806 +62.1193 203.206 128.069 +60.045 203.739 128.405 +57.731 203.435 128.213 +55.4954 203.359 128.165 +53.4173 203.843 128.471 +51.2918 204.147 128.662 +48.8053 202.943 127.904 +46.939 204.292 128.753 +44.6659 203.882 128.495 +42.5091 203.954 128.541 +40.2056 203.259 128.102 +38.1544 203.799 128.443 +35.9325 203.403 128.194 +33.8887 203.996 128.567 +31.5482 202.728 127.768 +29.5533 203.625 128.333 +27.3499 203.079 127.989 +25.3168 203.778 128.43 +23.0892 202.863 127.853 +21.0655 203.7 128.38 +18.8302 202.414 127.57 +16.7695 202.882 127.865 +14.6639 202.83 127.832 +12.592 203.268 128.108 +10.4207 201.917 127.257 +8.38286 203.085 127.993 +6.26676 202.463 127.601 +4.18683 202.924 127.891 +2.08564 202.186 127.426 +1.47014e-14 203.124 128.018 +-2.08651 202.271 127.48 +-4.17811 202.502 127.625 +-6.26414 202.378 127.547 +-8.35843 202.493 127.62 +-10.4599 202.678 127.736 +-12.5711 202.931 127.896 +-14.615 202.154 127.406 +-16.7555 202.714 127.759 +-18.8302 202.414 127.57 +-20.9522 202.604 127.69 +-23.0221 202.273 127.481 +-25.2123 202.937 127.9 +-27.2367 202.239 127.459 +-29.4071 202.618 127.698 +-31.3785 201.638 127.081 +-33.6103 202.321 127.511 +-35.696 202.064 127.35 +-37.7633 201.71 127.126 +-39.826 201.34 126.893 +-42.0402 201.705 127.123 +-44.1557 201.553 127.028 +-46.3857 201.884 127.236 +-48.4663 201.534 127.015 +-50.6265 201.499 126.993 +-52.8762 201.778 127.169 +-55.113 201.958 127.282 +-57.0774 201.131 126.762 +-59.4886 201.852 127.216 +-61.6686 201.733 127.141 +-63.9801 202.005 127.312 +-66.0613 201.525 127.009 +-68.4408 201.924 127.261 +-70.7198 201.979 127.296 +-73.0929 202.258 127.472 +-75.1764 201.711 127.127 +-77.8414 202.677 127.736 +-79.929 202.095 127.369 +-82.3036 202.217 127.446 +-84.4198 201.681 127.108 +-86.8389 201.845 127.212 +-89.2328 201.909 127.252 +-91.5988 201.875 127.23 +-94.0076 201.899 127.246 +-96.611 202.296 127.496 +-98.7323 201.653 127.09 +-101.512 202.318 127.51 +-103.715 201.794 127.179 +-106.158 201.716 127.13 +-108.359 201.156 126.777 +-111.191 201.728 127.138 +-113.311 200.975 126.663 +-116.3 201.728 127.138 +-118.689 201.393 126.926 +-121.533 201.789 127.176 +-123.795 201.185 126.796 +-126.476 201.234 126.827 +-129.119 201.185 126.796 +-131.771 201.113 126.75 +-136.746 204.476 128.87 +-140.55 205.95 129.799 +-143.227 205.706 129.645 +-144.314 203.19 128.059 +-144.105 198.943 125.383 +-143.714 194.572 122.628 +-145.393 193.076 121.685 +-149.068 194.194 122.389 +-153.328 195.978 123.514 +-163.452 205.009 129.206 +-164.994 203.097 128.001 +-639.423 772.558 486.9 +-142.795 169.361 106.739 +-143.772 167.411 105.51 +-144.066 164.711 103.808 +-144.014 161.681 101.899 +-143.12 157.793 99.4481 +-143.511 155.397 97.9381 +-149.341 158.835 100.104 +-151.289 158.055 99.6128 +-684.993 702.994 443.057 +-702.245 708.02 446.225 +-708.418 701.714 442.251 +-712.349 693.265 436.926 +-718.081 686.649 432.756 +-721.122 677.549 427.021 +-711.261 656.669 413.861 +-710.574 644.648 406.285 +-717.403 639.562 403.08 +-721.055 631.686 398.116 +-726.913 625.795 394.403 +-730.017 617.593 389.234 +-736.574 612.358 385.935 +-740.345 604.84 381.196 +-746.555 599.352 377.738 +-749.126 590.99 372.468 +-755.636 585.78 369.184 +-759.048 578.198 364.405 +-765.208 572.74 360.966 +-768.898 565.46 356.377 +-775.006 559.981 352.924 +-778.608 552.715 348.345 +-784.974 547.431 345.014 +-789.192 540.657 340.745 +-795.912 535.599 337.558 +-798.885 528.037 332.792 +-806.126 523.303 329.808 +-809.657 516.161 325.307 +-817.04 511.472 322.352 +-820.91 504.576 318.005 +-827.548 499.38 314.731 +-831.849 492.766 310.563 +-839.125 487.9 307.496 +-843.131 481.119 303.222 +-855.9 479.265 302.054 +-880.772 483.894 304.971 +-889.272 479.283 302.065 +-894.352 472.789 297.972 +-908.488 470.986 296.836 +-385.211 195.813 123.41 +-383.856 191.287 120.557 +-384.169 187.643 118.26 +-383.566 183.591 115.707 +-379.847 178.128 112.264 +-381.758 175.357 110.518 +-383.817 172.651 108.812 +-383.011 168.678 106.308 +-384.024 165.537 104.328 +-382.584 161.374 101.705 +-137.605 56.7789 35.7845 +-134.937 54.4497 34.3165 +-381.827 150.629 94.933 +-383.094 147.7 93.0866 +-382.958 144.246 90.9102 +-384.707 141.514 89.1885 +-999.944 359.085 226.311 +-381.47 133.676 84.2486 +-380.516 130.063 81.9713 +-378.959 126.287 79.5917 +-382.021 124.061 78.1884 +-381.881 120.792 76.1281 +-382.173 117.678 74.166 +-383.372 114.852 72.3847 +-386.906 112.706 71.032 +-382.269 108.208 68.1976 +-380.803 104.675 65.971 +-1131.68 301.868 190.25 +-378.219 97.8254 61.6538 +-1169.86 293.161 184.763 +-381.429 92.5294 58.316 +-382.272 89.6869 56.5245 +-380.092 86.1607 54.3022 +-380.579 83.2669 52.4784 +-379.968 80.147 50.5121 +-380.683 77.3191 48.7299 +-382.051 74.6199 47.0287 +-381.536 71.5585 45.0992 +-381.967 68.6862 43.289 +-381.877 65.7288 41.4251 +-380.773 62.6164 39.4636 +-381.995 59.8954 37.7487 +-380.727 56.7939 35.794 +-382.58 54.1625 34.1356 +-381.248 51.0845 32.1957 +-380.079 48.0554 30.2866 +-379.867 45.1652 28.465 +-380.021 42.3259 26.6756 +-380.046 39.4775 24.8804 +-380.737 36.699 23.1293 +-381.598 33.931 21.3848 +-381.535 31.08 19.588 +-379.451 28.0851 17.7005 +-381.919 25.4288 16.0263 +-379.473 22.4489 14.1483 +-379.79 19.6517 12.3854 +-147.198 6.5263 4.11316 +-380.737 14.0633 8.86329 +-380.468 11.2401 7.084 +-148.249 3.2842 2.06985 +-145.978 2.15565 1.35858 +-145.294 1.0727 0.676062 +97.2 0 0 +97.1963 0.721643 0.445765 +97.1852 1.44323 0.891495 +97.9664 2.18253 1.34817 +97.2407 2.88899 1.78456 +97.2074 3.61083 2.23044 +97.0668 4.32793 2.6734 +97.917 5.09517 3.14733 +97.9608 5.82788 3.59993 +97.7976 6.54827 4.04493 +97.8263 7.28151 4.49786 +97.6484 7.99938 4.94129 +96.767 8.65289 5.34497 +96.8733 9.39025 5.80044 +97.468 10.1817 6.28935 +97.5582 10.9272 6.74982 +97.2443 11.6274 7.18233 +97.0225 12.3363 7.62025 +96.7935 13.0429 8.05671 +96.656 13.761 8.50031 +96.5112 14.4781 8.94322 +97.1456 15.3181 9.46213 +96.1013 15.8926 9.81702 +96.8166 16.7582 10.3517 +96.641 17.4764 10.7953 +96.458 18.1931 11.2381 +97.2421 19.1 11.7982 +96.9453 19.8013 12.2315 +96.7385 20.5203 12.6756 +96.6211 21.2591 13.1319 +97.2687 22.1738 13.697 +96.7485 22.8269 14.1004 +97.5681 23.8023 14.7029 +97.1284 24.4775 15.1199 +96.8737 25.1976 15.5648 +96.6115 25.9159 16.0085 +97.198 26.8687 16.5971 +96.9187 27.5893 17.0422 +97.6721 28.6126 17.6742 +96.9978 29.223 18.0513 +96.6944 29.9421 18.4955 +97.3202 30.9567 19.1222 +97.8392 31.9525 19.7374 +97.5078 32.6777 20.1853 +98.0033 33.6872 20.8089 +97.7465 34.4461 21.2776 +97.3894 35.1705 21.7251 +97.2084 35.96 22.2128 +96.8358 36.6804 22.6578 +97.2749 37.7154 23.2972 +97.7 38.7598 23.9422 +97.2987 39.4837 24.3894 +97.6989 40.5402 25.042 +97.1004 41.1881 25.4423 +97.6543 42.3323 26.1491 +97.039 42.9771 26.5474 +96.5945 43.6959 26.9914 +96.7578 44.6956 27.6089 +97.1702 45.8247 28.3063 +96.6095 46.5025 28.725 +96.9082 47.6008 29.4035 +97.1918 48.7071 30.0868 +96.6028 49.383 30.5043 +96.8599 50.4984 31.1933 +96.9319 51.5312 31.8313 +96.3153 52.2032 32.2464 +96.6148 53.3796 32.9731 +95.9803 54.0479 33.3859 +96.8316 55.5672 34.3244 +96.2579 56.284 34.7671 +96.9876 57.7774 35.6896 +96.5541 58.594 36.1941 +96.5157 59.6587 36.8517 +96.6236 60.8284 37.5743 +95.9161 61.4923 37.9843 +96.5511 63.0307 38.9346 +96.6101 64.2165 39.6671 +95.9478 64.9314 40.1087 +96.5215 66.4979 41.0763 +95.8358 67.2119 41.5174 +95.8322 68.4131 42.2594 +96.4955 70.1166 43.3116 +96.3764 71.2768 44.0283 +96.3906 72.5534 44.8169 +96.3116 73.7786 45.5737 +95.5511 74.4908 46.0137 +95.3685 75.6616 46.7368 +95.822 77.3623 47.7874 +95.7441 78.6618 48.5901 +95.5756 79.9063 49.3588 +96.0251 81.6957 50.4642 +95.8844 83.0124 51.2775 +95.6545 84.2718 52.0555 +95.9566 86.0278 53.1401 +95.207 86.8615 53.6551 +93.5692 86.8751 53.6635 +93.2099 88.0722 54.403 +92.6343 89.0795 55.0252 +92.9636 90.9835 56.2013 +92.8711 92.5115 57.1452 +92.4971 93.7843 57.9314 +92.5494 95.5173 59.0019 +92.636 97.3252 60.1186 +92.0699 98.4754 60.8292 +91.7951 99.9592 61.7457 +92.2882 102.324 63.2067 +92.1981 104.093 64.2992 +93.3277 107.304 66.2826 +91.8121 107.511 66.4103 +92.6802 110.544 68.2838 +91.8296 111.576 68.9213 +91.7012 113.515 70.1195 +91.2044 115.038 71.0602 +92.0631 118.336 73.0972 +91.7717 120.228 74.2659 +91.7708 122.555 75.7033 +91.4111 124.458 76.8789 +91.3327 126.801 78.3262 +90.8527 128.64 79.4624 +90.7986 131.143 81.008 +90.7 133.654 82.5593 +91.4431 137.506 84.939 +90.9018 139.519 86.1824 +93.38 146.32 90.3835 +93.1432 149.036 92.0609 +92.7653 151.608 93.6496 +92.8411 155.02 95.7575 +92.4968 157.836 97.4965 +92.3648 161.116 99.523 +92.6029 165.174 102.03 +92.4266 168.632 104.166 +92.5181 172.717 106.689 +92.1665 176.118 108.79 +92.1908 180.385 111.425 +90.4933 181.376 112.037 +89.4331 183.692 113.468 +87.7329 184.742 114.117 +91.7353 198.132 122.388 +91.6347 203.094 125.453 +89.583 203.846 125.918 +87.4888 204.503 126.323 +84.9205 204.023 126.027 +82.9548 204.967 126.61 +80.2463 204.042 126.039 +78.1195 204.549 126.352 +75.5974 203.985 126.003 +73.2683 203.888 125.944 +71.0038 203.935 125.972 +68.8266 204.209 126.142 +66.4087 203.728 125.845 +64.4201 204.542 126.348 +61.9941 203.942 125.977 +59.8757 204.312 126.205 +57.3108 203.094 125.453 +55.4729 204.424 126.275 +53.0061 203.416 125.652 +50.9176 203.801 125.89 +48.6258 203.338 125.604 +46.71 204.443 126.286 +44.3561 203.611 125.772 +42.2139 203.681 125.816 +39.958 203.148 125.486 +37.8884 203.521 125.716 +35.696 203.205 125.522 +33.6242 203.547 125.733 +31.4307 203.114 125.465 +29.4314 203.931 125.97 +27.248 203.465 125.682 +25.1809 203.829 125.907 +23.0221 203.415 125.651 +20.8738 202.985 125.386 +18.7203 202.369 125.005 +16.6927 203.094 125.453 +14.5723 202.701 125.21 +12.5135 203.141 125.482 +10.3901 202.461 125.062 +8.34796 203.381 125.63 +6.22226 202.16 124.876 +4.16763 203.134 125.478 +2.07953 202.732 125.229 +1.45851e-14 202.654 125.181 +-2.07953 202.732 125.229 +-4.15891 202.709 125.215 +-6.21703 201.99 124.771 +-8.32353 202.786 125.263 +-10.3683 202.037 124.8 +-12.4769 202.546 125.115 +-14.5662 202.616 125.158 +-16.6509 202.586 125.139 +-18.7046 202.199 124.9 +-20.7518 201.799 124.653 +-22.8784 202.145 124.867 +-25.0764 202.983 125.384 +-27.0669 202.113 124.847 +-29.2365 202.58 125.135 +-31.3132 202.355 124.997 +-33.3598 201.946 124.744 +-35.4299 201.691 124.586 +-37.6068 202.008 124.782 +-39.6939 201.805 124.657 +-41.8839 202.09 124.833 +-43.8823 201.436 124.429 +-46.0613 201.604 124.532 +-48.1673 201.421 124.419 +-50.5225 202.221 124.913 +-52.4866 201.423 124.421 +-54.7306 201.688 124.584 +-56.8439 201.44 124.431 +-59.2709 202.248 124.93 +-61.2429 201.471 124.45 +-63.7212 202.324 124.977 +-65.8475 202.007 124.782 +-68.1376 202.164 124.879 +-70.2086 201.651 124.561 +-72.8006 202.586 125.139 +-74.9058 202.119 124.851 +-77.2852 202.364 125.002 +-79.3262 201.702 124.593 +-81.9455 202.473 125.07 +-84.1193 202.098 124.838 +-86.4969 202.185 124.891 +-88.8126 202.093 124.835 +-91.2046 202.141 124.864 +-93.3845 201.693 124.588 +-96.0117 202.175 124.886 +-98.0052 201.298 124.344 +-101.16 202.756 125.244 +-102.957 201.451 124.438 +-105.914 202.388 125.017 +-108.069 201.749 124.622 +-110.388 201.402 124.408 +-112.88 201.343 124.371 +-115.423 201.337 124.368 +-117.885 201.159 124.258 +-120.761 201.64 124.555 +-123.148 201.264 124.323 +-126.147 201.845 124.681 +-128.26 200.975 124.144 +-130.996 201.057 124.195 +-134.185 201.78 124.641 +-139.65 205.786 127.116 +-142.314 205.548 126.969 +-144.365 204.41 126.266 +-144.105 200.066 123.583 +-144.032 196.103 121.134 +-144.802 193.376 119.45 +-148.087 194.006 119.839 +-151.065 194.177 119.945 +-160.097 201.934 124.736 +-162.672 201.369 124.387 +-142.821 173.532 107.192 +-144.014 171.772 106.105 +-143.949 168.562 104.122 +-144.007 165.573 102.276 +-143.413 161.915 100.016 +-143.546 159.157 98.3127 +-144.373 157.214 97.1124 +-151.894 162.46 100.353 +-678.156 712.483 440.107 +-706.301 728.954 450.281 +-706.359 716.187 442.395 +-713.224 710.463 438.859 +-714.711 699.491 432.082 +-721.858 694.157 428.787 +-724.668 684.725 422.961 +-731.124 678.818 419.312 +-709.687 647.479 399.954 +-718.023 643.728 397.637 +-724.251 638.067 394.14 +-731.679 633.454 391.29 +-733.977 624.449 385.728 +-740.568 619.154 382.457 +-743.51 610.855 377.331 +-750.4 605.839 374.232 +-752.929 597.343 368.984 +-759.764 592.306 365.873 +-762.541 584.137 360.827 +-769.777 579.412 357.908 +-771.841 570.829 352.606 +-779.34 566.292 349.803 +-782.438 558.57 345.034 +-789.526 553.714 342.034 +-793.155 546.439 337.54 +-799.826 541.271 334.348 +-803.535 534.108 329.923 +-810.331 529.002 326.769 +-812.931 521.174 321.934 +-820.657 516.637 319.131 +-824.227 509.474 314.707 +-831.131 504.373 311.556 +-834.798 497.305 307.19 +-842.751 492.775 304.391 +-846.116 485.547 299.927 +-880.75 495.964 306.361 +-884.378 488.618 301.824 +-896.103 485.691 300.016 +-905.291 481.274 297.287 +-911.046 474.979 293.399 +-383.497 196.042 121.097 +-385.062 192.972 119.2 +-384.775 189 116.747 +-382.782 184.251 113.813 +-380.722 179.546 110.907 +-382.901 176.874 109.257 +-382.934 173.226 107.003 +-379.729 168.177 103.884 +-382.866 165.969 102.521 +-383.569 162.702 100.503 +-136.077 56.4654 34.8792 +-136.471 55.3797 34.2085 +-382.371 151.696 93.7038 +-382.912 148.463 91.7067 +-383.598 145.303 89.7549 +-383.423 141.839 87.615 +-1006.3 363.406 224.479 +-383.687 135.212 83.5216 +-382.278 131.402 81.1683 +-381.75 127.935 79.0267 +-379.407 123.908 76.5389 +-380.757 121.115 74.8141 +-381.703 118.197 73.0115 +-386.672 116.495 71.9599 +-387.001 113.37 70.0296 +-383.597 109.197 67.4519 +-378.425 104.61 64.6182 +-381.773 102.41 63.2597 +-382.044 99.3722 61.3831 +-1179.44 297.233 183.603 +-381.236 93.005 57.45 +-381.019 89.8979 55.5308 +-381.058 86.8675 53.6588 +-381.45 83.9286 51.8435 +-381.229 80.867 49.9523 +-380.099 77.6364 47.9567 +-381.856 75.0028 46.3299 +-383.294 72.2939 44.6566 +-382.651 69.1978 42.7441 +-380.897 65.9302 40.7257 +-379.497 62.7589 38.7667 +-381.11 60.094 37.1206 +-382.007 57.3065 35.3988 +-380.509 54.1734 33.4634 +-381.346 51.3862 31.7417 +-380.969 48.4399 29.9217 +-381.055 45.5622 28.1442 +-381.012 42.6759 26.3613 +-381.435 39.8455 24.6129 +-379.942 36.8291 22.7497 +-379.211 33.9091 20.9459 +-381.038 31.2147 19.2816 +-380.148 28.2956 17.4784 +-379.826 25.4321 15.7096 +-379.773 22.5934 13.9562 +-380.888 19.8197 12.2428 +-145.201 6.4741 3.99911 +-380.338 14.1279 8.72692 +-380.768 11.3125 6.98783 +-149.649 3.33392 2.05939 +-145.978 2.16782 1.33908 +-145.694 1.08173 0.668192 +97 0 0 +97.0963 0.724889 0.438785 +97.0852 1.44972 0.877538 +96.9668 2.1722 1.31486 +97.0408 2.899 1.75481 +96.9077 3.61961 2.191 +96.8671 4.34293 2.62883 +96.9189 5.07113 3.06962 +96.8635 5.79447 3.50747 +96.8007 6.51738 3.94506 +97.6271 7.30688 4.42296 +97.5488 8.03543 4.86396 +97.5626 8.77227 5.30998 +97.37 9.49062 5.7448 +97.468 10.2381 6.19724 +97.1616 10.943 6.62393 +97.1453 11.6798 7.06994 +96.9236 12.3919 7.50099 +96.4972 13.0748 7.91437 +97.445 13.9501 8.44417 +97.102 14.6473 8.86621 +96.9489 15.3716 9.30466 +96.7884 16.0948 9.74243 +96.6206 16.8168 10.1794 +96.4454 17.5374 10.6157 +96.2628 18.2567 11.0511 +96.0729 18.9747 11.4857 +96.7508 19.8709 12.0282 +96.5444 20.5925 12.4649 +97.202 21.5052 13.0174 +96.979 22.23 13.4561 +96.7485 22.9532 13.8939 +97.3758 23.8868 14.459 +97.1284 24.6129 14.8985 +96.8737 25.337 15.3369 +97.2791 26.2393 15.883 +97.0078 26.9645 16.322 +96.729 27.6877 16.7598 +97.2939 28.6595 17.348 +96.9978 29.3847 17.7869 +97.6341 30.4003 18.4017 +97.3202 31.128 18.8422 +97.8392 32.1293 19.4483 +97.4147 32.8271 19.8707 +97.0761 33.5531 20.3101 +97.6541 34.6039 20.9462 +97.2053 35.2982 21.3665 +96.9332 36.0566 21.8256 +97.4753 37.1268 22.4734 +97.2749 37.9241 22.956 +97.7 38.9742 23.5916 +97.2987 39.7021 24.0322 +97.5192 40.6895 24.6299 +97.2794 41.4923 25.1158 +96.6742 42.1393 25.5075 +97.039 43.2149 26.1586 +97.3008 44.259 26.7906 +96.6699 44.9021 27.1798 +97.8699 46.41 28.0926 +96.5224 46.7176 28.2788 +96.8216 47.8214 28.9469 +96.3301 48.5424 29.3834 +97.2028 49.9646 30.2443 +96.7747 50.7331 30.7094 +96.2535 51.4536 31.1456 +96.99 52.8597 31.9967 +96.4471 53.5818 32.4338 +96.564 54.6775 33.097 +96.8316 55.8746 33.8217 +96.2579 56.5954 34.258 +96.2504 57.6553 34.8996 +96.4727 58.8685 35.6339 +96.4348 59.9384 36.2815 +96.5432 61.114 36.9932 +95.9161 61.8324 37.428 +95.8371 62.9107 38.0807 +96.5313 64.5191 39.0543 +95.8695 65.2373 39.489 +96.5215 66.8658 40.4748 +95.7586 67.5294 40.8764 +96.3684 69.1765 41.8735 +95.7351 69.9488 42.341 +96.3764 71.6711 43.3835 +96.2408 72.8414 44.0919 +96.2373 74.1295 44.8716 +95.4774 74.8451 45.3048 +95.8805 76.4885 46.2996 +95.7494 77.7314 47.0519 +95.7441 79.0969 47.8785 +95.5042 80.2884 48.5997 +96.0251 82.1476 49.7251 +95.7442 83.3495 50.4526 +95.585 84.6765 51.2559 +95.4748 86.0691 52.0988 +94.9342 87.0914 52.7176 +92.9612 86.7877 52.5338 +93.143 88.4961 53.5679 +92.568 89.5081 54.1805 +92.3075 90.8418 54.9878 +92.8711 93.0233 56.3083 +92.4329 94.2372 57.0431 +92.5494 96.0457 58.1378 +92.8248 98.0629 59.3588 +92.3812 99.3547 60.1408 +92.2877 101.052 61.1682 +91.6795 102.212 61.8703 +93.1008 105.694 63.9779 +92.8518 107.347 64.9789 +92.1647 108.521 65.6894 +91.9253 110.249 66.7354 +91.7722 112.123 67.8694 +91.6445 114.073 69.0501 +91.9872 116.668 70.6207 +93.5533 120.917 73.1928 +92.044 121.252 73.3953 +91.6096 123.016 74.4636 +91.729 125.582 76.0165 +90.967 126.992 76.8699 +90.8527 129.352 78.2986 +91.1539 132.385 80.1344 +90.85 134.616 81.4849 +91.1968 137.895 83.4697 +92.5017 142.76 86.4147 +93.3323 147.055 89.0142 +93.1432 149.861 90.7127 +93.1809 153.13 92.6918 +92.8411 155.878 94.3551 +92.4522 158.632 96.022 +92.7593 162.7 98.4843 +92.6029 166.088 100.535 +92.3421 169.409 102.546 +92.4351 173.517 105.032 +92.1665 177.092 107.196 +91.473 179.971 108.939 +90.1026 181.591 109.92 +88.6295 183.047 110.801 +87.2459 184.733 111.822 +91.8452 199.466 120.74 +91.7064 204.377 123.712 +88.9877 203.611 123.249 +86.7021 203.786 123.354 +84.2862 203.619 123.253 +82.3036 204.483 123.776 +79.7069 203.792 123.358 +77.656 204.461 123.763 +75.1464 203.89 123.418 +73.0345 204.362 123.703 +70.5778 203.833 123.383 +68.3581 203.941 123.448 +65.8208 203.042 122.904 +63.9801 204.269 123.647 +61.5184 203.497 123.179 +59.4402 203.948 123.453 +56.9373 202.887 122.81 +55.068 204.054 123.517 +52.8329 203.873 123.407 +50.5433 203.423 123.135 +48.2869 203.038 122.902 +46.2712 203.643 123.268 +44.0281 203.223 123.014 +41.8839 203.208 123.004 +39.6939 202.922 122.831 +37.6225 203.21 123.006 +35.4151 202.722 122.71 +33.3876 203.232 123.019 +31.1958 202.71 122.703 +29.139 203.021 122.891 +26.9876 202.636 122.658 +25.045 203.85 123.393 +22.8496 203.007 122.883 +20.8302 203.682 123.292 +18.5556 201.698 122.09 +16.5951 203.023 122.892 +14.4746 202.456 122.55 +12.4403 203.069 122.92 +10.3247 202.3 122.455 +8.28514 202.967 122.859 +6.18561 202.081 122.322 +4.13971 202.889 122.812 +2.0647 202.399 122.515 +1.44687e-14 202.15 122.364 +-2.0647 202.399 122.515 +-4.14495 203.146 122.967 +-6.17514 201.739 122.115 +-8.29212 203.138 122.962 +-10.3029 201.872 122.196 +-12.4455 203.154 122.972 +-14.4563 202.2 122.394 +-16.5183 202.084 122.324 +-18.6183 202.379 122.503 +-20.6995 202.403 122.518 +-22.7538 202.156 122.368 +-24.9091 202.745 122.724 +-26.8518 201.615 122.041 +-29.1146 202.851 122.788 +-31.0522 201.778 122.139 +-33.2485 202.385 122.507 +-35.1639 201.284 121.84 +-37.3566 201.774 122.136 +-39.3639 201.234 121.81 +-41.6582 202.112 122.341 +-43.6819 201.625 122.046 +-45.9086 202.047 122.302 +-47.7885 200.942 121.633 +-50.0443 201.414 121.919 +-52.1187 201.117 121.739 +-54.3257 201.303 121.852 +-56.4237 201.057 121.702 +-58.8354 201.873 122.196 +-60.8423 201.26 121.826 +-63.2813 202.038 122.296 +-65.3932 201.722 122.105 +-67.7241 202.049 122.303 +-69.7826 201.536 121.992 +-72.362 202.479 122.564 +-74.4548 202.013 122.281 +-76.698 201.938 122.236 +-78.755 201.358 121.885 +-81.4572 202.38 122.504 +-83.5852 201.925 122.228 +-86.0865 202.339 122.479 +-88.2172 201.849 122.182 +-90.8821 202.54 122.6 +-92.6515 201.218 121.8 +-95.6371 202.501 122.577 +-97.7373 201.858 122.188 +-100.535 202.617 122.647 +-102.08 200.839 121.57 +-104.938 201.633 122.051 +-107.281 201.386 121.902 +-110.008 201.818 122.163 +-112.105 201.066 121.708 +-114.985 201.683 122.082 +-117.127 200.97 121.65 +-119.944 201.384 121.9 +-122.363 201.088 121.721 +-125.208 201.45 121.941 +-127.354 200.658 121.461 +-130.753 201.795 122.149 +-132.807 200.811 121.554 +-138.75 205.591 124.447 +-141.299 205.211 124.217 +-144.468 205.688 124.506 +-143.739 200.662 121.464 +-143.979 197.116 119.317 +-144.534 194.085 117.482 +-146.998 193.644 117.215 +-150.182 194.109 117.497 +-159.873 202.768 122.738 +-142.451 177.314 107.331 +-143.624 175.473 106.216 +-144.479 173.279 104.888 +-144.536 170.187 103.016 +-143.293 165.663 100.278 +-143.473 162.879 98.5931 +-147.199 164.109 99.3377 +-149.852 164.083 99.3217 +-683.334 734.917 444.855 +-694.015 733.179 443.803 +-709.927 736.749 445.964 +-712.851 726.768 439.923 +-717.445 718.621 434.991 +-719.894 708.46 428.841 +-726.364 702.354 425.145 +-729.285 692.9 419.422 +-738.217 689.195 417.179 +-738.127 677.151 409.889 +-725.595 654.115 395.945 +-728.141 645.043 390.453 +-735.534 640.315 387.591 +-738.502 631.774 382.422 +-745.632 626.837 379.433 +-747.394 617.443 373.747 +-755.187 613.077 371.104 +-757.902 604.615 365.982 +-764.704 599.454 362.858 +-767.446 591.147 357.829 +-775.469 586.926 355.274 +-777.502 578.196 349.99 +-785.347 573.814 347.337 +-787.111 565.014 342.011 +-795.159 560.75 339.43 +-797.429 552.423 334.389 +-805.46 548.1 331.772 +-807.632 539.801 326.749 +-815.885 535.574 324.19 +-818.522 527.661 319.4 +-826.284 523.056 316.613 +-829.162 515.36 311.954 +-836.504 510.441 308.977 +-840.286 503.344 304.681 +-851.57 500.686 303.072 +-860.873 496.749 300.689 +-887.421 502.485 304.161 +-890.752 494.862 299.547 +-905.802 493.664 298.822 +-908.005 485.387 293.811 +-913.348 478.813 289.832 +-913.655 469.641 284.28 +-384.459 193.736 117.271 +-383.476 189.403 114.649 +-382.086 184.933 111.942 +-381.772 181.036 109.584 +-381.582 177.24 107.286 +-382.14 173.823 105.217 +-381.947 170.094 102.96 +-382.509 166.732 100.925 +-382.674 163.221 98.7997 +-383.965 160.208 96.9759 +-136.922 55.8702 33.819 +-382.553 152.607 92.3749 +-382.912 149.284 90.3637 +-382.319 145.619 88.1453 +-382.689 142.35 86.1666 +-1012.1 367.522 222.466 +-1025.6 363.423 219.985 +-383.112 132.417 80.154 +-381.378 128.518 77.7937 +-382.861 125.727 76.1046 +-381.038 121.875 73.7728 +-382.925 119.231 72.1721 +-1113.54 337.338 204.196 +-3097.99 912.559 552.384 +-1119.5 320.444 193.969 +-378.996 105.346 63.7677 +-381.773 102.977 62.3333 +-1163.15 304.219 184.148 +-1191.24 301.866 182.724 +-382.39 93.8026 56.78 +-381.019 90.3952 54.7175 +-381.541 87.4592 52.9403 +-381.644 84.4358 51.1102 +-380.55 81.1696 49.1331 +-379.808 78.006 47.2181 +-381.466 75.3407 45.6048 +-381.048 72.2679 43.7448 +-382.554 69.5628 42.1073 +-382.465 66.5678 40.2944 +-382.54 63.6121 38.5053 +-381.011 60.4109 36.5675 +-381.613 57.5642 34.8444 +-381.693 54.6425 33.0758 +-381.939 51.7508 31.3255 +-379.782 48.5561 29.3917 +-380.857 45.7905 27.7176 +-380.517 42.8562 25.9414 +-379.947 39.9096 24.1578 +-379.346 36.9747 22.3813 +-379.708 34.1414 20.6663 +-379.843 31.289 18.9396 +-380.447 28.4745 17.236 +-379.726 25.5661 15.4755 +-377.877 22.6051 13.6832 +-379.79 19.872 12.0288 +-146.599 6.57259 3.97848 +-379.838 14.1874 8.58782 +-379.769 11.3452 6.86742 +-148.749 3.33221 2.01703 +-145.978 2.17981 1.31947 +-145.894 1.0892 0.659307 +97 0 0 +96.9963 0.728067 0.431783 +96.9852 1.45608 0.863531 +97.0667 2.18623 1.29655 +97.0408 2.91472 1.72858 +97.0076 3.64298 2.16048 +97.8657 4.41147 2.61624 +96.9189 5.09861 3.02375 +96.8635 5.82588 3.45506 +97.6979 6.61344 3.92212 +96.8301 7.28652 4.3213 +97.5488 8.07898 4.79127 +97.5626 8.81982 5.23062 +96.5752 9.46422 5.61279 +97.3688 10.2831 6.0984 +97.2607 11.0135 6.53157 +97.0463 11.7311 6.95719 +96.8247 12.4463 7.38134 +96.6947 13.1726 7.81206 +96.3601 13.8696 8.22539 +97.102 14.7267 8.7337 +96.9489 15.4549 9.1656 +96.7884 16.1821 9.59684 +96.6206 16.9079 10.0273 +96.4454 17.6325 10.457 +96.2628 18.3557 10.8859 +96.9498 19.2517 11.4173 +96.7508 19.9786 11.8484 +96.5444 20.7041 12.2786 +97.202 21.6218 12.8229 +96.979 22.3505 13.255 +96.7485 23.0776 13.6862 +97.3758 24.0163 14.2429 +97.1284 24.7463 14.6759 +96.6824 25.424 15.0778 +96.6115 26.2005 15.5383 +97.198 27.1638 16.1096 +96.729 27.8378 16.5093 +97.2939 28.8148 17.0887 +96.9035 29.5152 17.5041 +97.728 30.5945 18.1442 +97.2266 31.2666 18.5427 +97.8392 32.3034 19.1577 +97.4147 33.005 19.5737 +98.0033 34.0571 20.1977 +97.5617 34.7586 20.6137 +97.2974 35.5231 21.0671 +96.9332 36.2521 21.4994 +96.6531 37.0132 21.9508 +97.0929 38.0583 22.5706 +96.8843 38.8583 23.045 +97.1182 39.8432 23.6292 +97.5192 40.91 24.2618 +97.9058 41.9858 24.8998 +97.4761 42.7191 25.3347 +97.039 43.4491 25.7676 +97.2125 44.4585 26.3662 +96.6699 45.1454 26.7736 +97.0828 46.2863 27.4502 +97.3058 47.3521 28.0823 +96.735 48.0376 28.4888 +97.1056 49.1984 29.1773 +96.6028 49.9254 29.6084 +96.7747 51.0081 30.2505 +96.8471 52.0516 30.8694 +96.3153 52.7765 31.2993 +96.4471 53.8722 31.9491 +96.6474 55.0213 32.6306 +96.0855 55.7447 33.0596 +96.2579 56.9021 33.746 +96.2504 57.9678 34.378 +96.2285 59.0377 35.0125 +95.7876 59.8589 35.4995 +96.3824 61.343 36.3797 +95.7564 62.064 36.8073 +95.8371 63.2517 37.5116 +96.5313 64.8688 38.4706 +96.4956 66.0193 39.153 +95.8221 66.741 39.581 +95.8358 67.9501 40.298 +95.7556 69.1092 40.9854 +96.4195 70.8307 42.0064 +96.3764 72.0595 42.7351 +96.3906 73.3501 43.5005 +96.2373 74.5313 44.201 +96.0672 75.7156 44.9034 +95.9536 76.9618 45.6424 +95.822 78.2119 46.3838 +96.2477 79.9439 47.411 +95.5756 80.7838 47.9091 +95.3887 82.0455 48.6574 +95.8143 83.8626 49.735 +95.8629 85.3829 50.6366 +95.4748 86.5356 51.3202 +94.0476 86.7463 51.4452 +92.8937 87.1953 51.7115 +92.7415 88.5921 52.5399 +92.7005 90.1223 53.4473 +92.8324 91.8528 54.4736 +92.8061 93.4621 55.428 +92.3686 94.6826 56.1518 +92.3586 96.3676 57.1511 +92.6989 98.4611 58.3927 +91.9454 99.4219 58.9625 +92.2877 101.6 60.254 +91.6186 102.698 60.9054 +92.4388 105.511 62.5734 +92.1975 107.169 63.5569 +92.4586 109.457 64.9138 +92.2156 111.198 65.9462 +91.7722 112.73 66.8552 +91.418 114.408 67.8499 +91.484 116.659 69.1848 +93.1118 120.999 71.7587 +94.6583 125.372 74.3521 +91.6633 123.756 73.3941 +91.941 126.554 75.0534 +91.1237 127.9 75.8512 +90.8012 129.98 77.0851 +90.9001 132.732 78.7169 +91.05 135.643 80.4436 +90.9506 138.268 82.0004 +93.035 144.362 85.6145 +93.4277 148.002 87.7732 +93.1432 150.673 89.357 +93.1809 153.96 91.3066 +92.7957 156.646 92.8996 +92.8538 160.185 94.9982 +92.6717 163.427 96.9207 +92.2585 166.367 98.6647 +92.4266 170.484 101.106 +92.1448 173.91 103.138 +92.1665 178.052 105.594 +91.154 180.315 106.936 +90.3761 183.13 108.606 +88.4381 183.643 108.91 +87.3583 185.974 110.292 +91.8452 200.548 118.935 +91.2405 204.441 121.245 +88.3573 203.265 120.547 +86.3601 204.082 121.031 +83.2848 202.29 119.969 +81.7502 204.209 121.107 +79.0089 203.102 120.45 +77.3161 204.668 121.379 +74.6051 203.518 120.697 +72.5374 204.071 121.025 +70.0666 203.453 120.659 +67.9446 203.806 120.868 +65.4467 202.982 120.379 +63.5142 203.881 120.912 +60.9926 202.851 120.301 +58.9564 203.384 120.618 +56.5171 202.481 120.082 +54.6631 203.652 120.776 +52.1836 202.459 120.069 +50.3146 203.6 120.746 +47.948 202.706 120.215 +45.9277 203.227 120.524 +43.7001 202.803 120.273 +41.7103 203.462 120.664 +39.4134 202.579 120.14 +37.5286 203.801 120.865 +35.1786 202.46 120.069 +33.151 202.886 120.322 +30.9608 202.275 119.96 +29.0171 203.267 120.548 +26.8292 202.538 120.116 +24.8255 203.159 120.484 +22.6579 202.396 120.032 +20.6646 203.158 120.484 +18.4614 201.762 119.656 +16.4695 202.579 120.14 +14.3525 201.836 119.7 +12.3408 202.538 120.116 +10.2375 201.678 119.606 +8.21883 202.435 120.055 +6.13849 201.629 119.577 +4.11179 202.613 120.16 +2.04899 201.948 119.766 +1.44504e-14 202.988 120.383 +-2.04986 202.034 119.817 +-4.11528 202.785 120.262 +-6.15158 202.058 119.831 +-8.22581 202.606 120.156 +-10.2418 201.764 119.657 +-12.3565 202.795 120.268 +-14.3647 202.008 119.802 +-16.5044 203.008 120.395 +-18.5085 202.276 119.961 +-20.6646 203.158 120.484 +-22.5621 201.539 119.524 +-24.7001 202.133 119.876 +-26.7386 201.854 119.71 +-28.9074 202.499 120.093 +-30.8042 201.251 119.353 +-32.9701 201.779 119.666 +-35.016 201.524 119.514 +-37.028 201.083 119.253 +-39.0833 200.882 119.134 +-41.2935 201.428 119.458 +-43.1898 200.434 118.868 +-45.6033 201.791 119.673 +-47.4695 200.683 119.016 +-49.6285 200.824 119.099 +-51.7291 200.696 119.023 +-54.1907 201.892 119.733 +-56.0035 200.641 118.991 +-58.5451 201.966 119.777 +-60.4668 201.102 119.264 +-62.8671 201.803 119.68 +-64.832 201.076 119.249 +-67.228 201.656 119.593 +-69.2713 201.144 119.289 +-71.8357 202.097 119.854 +-73.6128 200.812 119.092 +-76.2036 201.724 119.633 +-78.1839 200.981 119.193 +-80.806 201.851 119.708 +-82.9176 201.398 119.44 +-85.5734 202.223 119.929 +-87.6219 201.573 119.543 +-89.9862 201.631 119.578 +-92.0285 200.948 119.173 +-94.6256 201.446 119.468 +-96.7424 200.887 119.136 +-99.7537 202.132 119.875 +-101.641 201.06 119.239 +-104.531 201.939 119.761 +-106.535 201.069 119.245 +-109.289 201.587 119.552 +-111.287 200.681 119.014 +-114.196 201.385 119.432 +-116.235 200.519 118.919 +-119.173 201.172 119.306 +-121.578 200.88 119.133 +-124.363 201.176 119.308 +-126.495 200.385 118.839 +-129.493 200.933 119.164 +-131.822 200.402 118.849 +-138.1 205.737 122.013 +-139.878 204.248 121.13 +-143.49 205.402 121.814 +-144.157 202.337 119.996 +-143.714 197.819 117.317 +-143.19 193.323 114.651 +-144.656 191.592 113.624 +-148.913 193.511 114.762 +-143.768 183.331 108.725 +-143.811 179.976 106.735 +-143.968 176.846 104.879 +-143.666 173.238 102.739 +-143.655 170.066 100.858 +-143.174 166.422 98.6974 +-144.676 165.136 97.9343 +-153.591 172.164 102.102 +-677.659 746.034 442.438 +-704.126 761.383 451.541 +-705.846 749.719 444.623 +-713.68 744.658 441.622 +-718.958 736.967 437.061 +-725.304 730.43 433.184 +-725.076 717.428 425.473 +-732.526 712.153 422.344 +-736.111 703.175 417.021 +-733.826 688.809 408.5 +-728.374 671.826 398.429 +-731.721 663.214 393.321 +-733.698 653.489 387.554 +-741.562 649.061 384.928 +-743.593 639.577 379.304 +-751.338 635.058 376.623 +-753.58 625.928 371.209 +-761.643 621.669 368.683 +-763.241 612.174 363.052 +-771.708 608.224 360.709 +-772.796 598.495 354.939 +-781.386 594.609 352.635 +-782.332 584.941 346.901 +-790.518 580.722 344.399 +-793.162 572.444 339.49 +-801.023 567.947 336.823 +-803.336 559.531 331.831 +-811.252 555.033 329.164 +-813.858 546.91 324.347 +-822.39 542.77 321.892 +-824.352 534.299 316.868 +-833.278 530.343 314.521 +-835.067 521.844 309.481 +-843.912 517.754 307.056 +-846.266 509.673 302.263 +-881.815 521.279 309.146 +-884.003 512.86 304.153 +-899.346 511.997 303.642 +-901.487 503.54 298.626 +-910.694 499.02 295.945 +-912.754 490.57 290.934 +-912.666 481.048 285.287 +-911.683 471.167 279.427 +-384.545 194.829 115.544 +-383.476 190.43 112.935 +-382.521 186.147 110.395 +-382.734 182.477 108.218 +-378.946 176.97 104.953 +-381.522 174.483 103.477 +-383.632 171.771 101.869 +-383.133 167.909 99.5788 +-382.674 164.105 97.3232 +-383.246 160.774 95.3476 +-136.561 56.0249 33.2257 +-383.278 153.725 91.1668 +-383.458 150.307 89.1402 +-382.684 146.549 86.9111 +-383.331 143.362 85.0212 +-1020.38 372.538 220.935 +-1033.64 368.256 218.395 +-382.371 132.878 78.8037 +-381.099 129.12 76.575 +-381.461 125.946 74.6928 +-380.945 122.506 72.6524 +-382.079 119.612 70.9364 +-1113.26 339.081 201.093 +-1113.63 329.816 195.598 +-1128.69 324.829 192.641 +-381.944 106.741 63.3034 +-380.438 103.173 61.187 +-1175.78 309.187 183.365 +-1205.14 307.044 182.093 +-381.429 94.0737 55.7907 +-380.923 90.862 53.886 +-379.802 87.5325 51.9114 +-381.934 84.958 50.3846 +-378.221 81.1101 48.1026 +-379.905 78.4488 46.5243 +-380.784 75.6137 44.843 +-381.048 72.6596 43.091 +-382.651 69.9578 41.4887 +-381.779 66.8085 39.621 +-382.147 63.8912 37.8909 +-380.716 60.6913 35.9932 +-382.007 57.9359 34.3591 +-381.693 54.9386 32.5815 +-381.346 51.9505 30.8094 +-381.562 49.0481 29.0882 +-380.659 46.0147 27.2891 +-380.021 43.0323 25.5204 +-379.947 40.1259 23.7968 +-380.24 37.2628 22.0988 +-381.598 34.4973 20.4587 +-381.734 31.6152 18.7495 +-380.048 28.5988 16.9606 +-379.726 25.7047 15.2443 +-380.77 22.9015 13.5818 +-380.19 20.0007 11.8615 +-145.5 6.5587 3.88966 +-378.439 14.2117 8.42831 +-379.269 11.3917 6.75591 +-153.148 3.44934 2.04564 +-147.777 2.21865 1.31578 +-145.894 1.0951 0.649454 +97.1 0 0 +96.9963 0.731933 0.425197 +97.0852 1.46532 0.851239 +96.9668 2.19557 1.27546 +97.0408 2.93019 1.70222 +97.0076 3.66232 2.12753 +96.9669 4.39417 2.55268 +97.8172 5.1732 3.00523 +96.9632 5.86285 3.40586 +96.8007 6.5875 3.82683 +96.8301 7.32521 4.25538 +97.5488 8.12188 4.71819 +97.5626 8.86665 5.15084 +97.37 9.59272 5.57264 +97.3688 10.3376 6.00538 +97.2607 11.0719 6.43195 +97.1453 11.8055 6.85806 +97.8137 12.6403 7.34305 +96.6947 13.2426 7.69291 +97.2478 14.0716 8.17453 +97.102 14.8049 8.60049 +96.9489 15.537 9.0258 +96.7884 16.268 9.45046 +97.5025 17.1528 9.96448 +96.4454 17.7261 10.2975 +96.2628 18.4531 10.7199 +96.0729 19.1789 11.1415 +96.7508 20.0847 11.6677 +96.5444 20.814 12.0913 +96.3307 21.5417 12.5141 +96.979 22.4692 13.0529 +96.7485 23.2001 13.4775 +96.5107 23.9293 13.9011 +97.1284 24.8777 14.452 +97.7343 25.8371 15.0094 +96.6115 26.3396 15.3013 +97.198 27.308 15.8639 +96.729 27.9856 16.2575 +96.4429 28.7144 16.6809 +96.9035 29.6719 17.2371 +96.6004 30.402 17.6613 +97.1329 31.4023 18.2423 +97.8392 32.475 18.8655 +97.4147 33.1803 19.2752 +97.9106 34.2056 19.8708 +97.6541 34.9761 20.3185 +97.3894 35.7455 20.7654 +97.025 36.4791 21.1915 +97.4753 37.5263 21.7999 +97.0929 38.2604 22.2263 +96.8843 39.0646 22.6936 +97.1182 40.0548 23.2688 +97.5192 41.1272 23.8918 +97.1004 41.8615 24.3183 +96.6742 42.5926 24.743 +97.5712 43.9193 25.5138 +97.3008 44.7351 25.9877 +96.6699 45.3851 26.3653 +97.0828 46.532 27.0315 +96.6095 47.2628 27.4561 +96.8216 48.3359 28.0794 +97.0194 49.4157 28.7067 +97.2885 50.5467 29.3637 +96.6894 51.2337 29.7628 +96.8471 52.3279 30.3985 +96.231 53.0103 30.7949 +96.531 54.2053 31.4891 +96.6474 55.3134 32.1329 +96.8316 56.4757 32.8081 +96.2579 57.2042 33.2313 +96.9876 58.722 34.113 +96.3913 59.4516 34.5368 +96.4348 60.5833 35.1942 +96.5432 61.7715 35.8845 +96.3953 62.8099 36.4877 +95.7577 63.5349 36.9089 +96.5313 65.2132 37.8839 +95.8695 65.9391 38.3056 +96.5215 67.5851 39.2618 +96.5302 68.8059 39.9709 +95.8322 69.5316 40.3925 +96.3434 71.1507 41.3331 +96.3009 72.3854 42.0504 +96.3157 73.6823 42.8037 +96.2373 74.927 43.5268 +95.9935 76.0592 44.1846 +95.9536 77.3704 44.9463 +95.7494 78.5677 45.6418 +95.7441 79.9479 46.4436 +95.5042 81.1522 47.1432 +95.9544 82.9703 48.1994 +95.8844 84.3696 49.0123 +95.5155 85.5253 49.6836 +94.5799 86.18 50.064 +93.843 87.0167 50.55 +93.3666 88.1044 51.1819 +92.9422 89.2553 51.8505 +92.6343 90.5359 52.5944 +92.8324 92.3405 53.6428 +92.2866 93.4326 54.2772 +92.3686 95.1853 55.2954 +92.3586 96.8793 56.2794 +92.5101 98.7816 57.3845 +92.0077 100.017 58.1023 +91.8567 101.662 59.0577 +93.2014 105.026 61.0122 +93.161 106.9 62.1007 +92.3165 107.877 62.6684 +92.2823 109.829 63.8021 +91.8091 111.295 64.654 +91.7149 113.258 65.7943 +91.4746 115.086 66.8562 +91.428 117.206 68.0878 +91.9527 120.126 69.7842 +94.8761 126.327 73.3863 +91.717 124.486 72.3168 +91.3581 126.419 73.44 +91.0192 128.432 74.6089 +90.8012 130.67 75.9094 +90.9001 133.436 77.5163 +91.7 137.337 79.7822 +92.1324 140.809 81.799 +93.0834 145.204 84.3523 +93.38 148.713 86.3907 +93.1432 151.473 87.9941 +93.1809 154.778 89.9139 +92.8411 157.555 91.5274 +92.8538 161.035 93.5492 +92.7155 164.372 95.4876 +92.6029 167.875 97.5225 +92.4266 171.389 99.5639 +92.4351 175.384 101.885 +92.3292 179.314 104.168 +90.7952 180.559 104.891 +90.1807 183.705 106.718 +87.5962 182.86 106.228 +90.1678 192.974 112.103 +91.8452 201.612 117.121 +90.4162 203.67 118.316 +87.5869 202.563 117.673 +85.7102 203.622 118.289 +82.9176 202.468 117.618 +81.1641 203.822 118.405 +78.2791 202.294 117.517 +76.4817 203.535 118.238 +74.0939 203.197 118.042 +71.865 203.253 118.074 +69.5554 203.041 117.951 +67.5312 203.641 118.3 +65.0191 202.726 117.768 +62.8413 202.792 117.807 +60.617 202.673 117.737 +58.5935 203.206 118.047 +56.167 202.295 117.518 +54.2357 203.133 118.004 +51.8589 202.268 117.502 +50.0028 203.412 118.167 +47.5891 202.257 117.496 +45.7178 203.372 118.144 +43.3903 202.434 117.599 +41.2935 202.498 117.636 +39.0998 202.034 117.366 +37.075 202.407 117.583 +34.9274 202.08 117.393 +33.0536 203.364 118.139 +30.752 201.976 117.333 +28.7977 202.802 117.813 +26.6367 202.152 117.435 +24.6374 202.69 117.747 +22.5333 202.352 117.551 +20.5077 202.686 117.745 +18.2967 201.023 116.779 +16.323 201.843 117.255 +14.2609 201.613 117.122 +12.2361 201.887 117.281 +10.1764 201.539 117.079 +8.16299 202.127 117.42 +6.09661 201.316 116.949 +4.08735 202.478 117.624 +2.03677 201.81 117.236 +1.43401e-14 202.509 117.642 +-2.03765 201.896 117.286 +-4.07339 201.786 117.222 +-6.1097 201.748 117.2 +-8.17695 202.472 117.621 +-10.1895 201.798 117.229 +-12.2466 202.059 117.381 +-14.2426 201.355 116.972 +-16.3718 202.447 117.606 +-18.2888 200.936 116.729 +-20.499 202.6 117.695 +-22.3992 201.146 116.851 +-24.5537 202.002 117.347 +-26.5462 201.465 117.036 +-28.6393 201.686 117.164 +-30.6867 201.548 117.084 +-32.8309 201.994 117.343 +-34.7352 200.969 116.748 +-36.9029 201.468 117.037 +-38.8027 200.5 116.475 +-41.0157 201.136 116.845 +-43.0623 200.903 116.709 +-45.2027 201.08 116.812 +-47.2701 200.901 116.708 +-49.5038 201.382 116.988 +-51.3828 200.411 116.423 +-53.8308 201.616 117.123 +-55.6534 200.445 116.443 +-57.8919 200.773 116.634 +-59.991 200.579 116.521 +-62.3236 201.121 116.836 +-64.3777 200.727 116.607 +-66.6491 200.981 116.755 +-68.6749 200.471 116.458 +-71.3095 201.682 117.162 +-73.0414 200.311 116.365 +-75.6474 201.315 116.949 +-77.6127 200.572 116.517 +-80.2851 201.614 117.122 +-82.25 200.838 116.671 +-84.65 201.103 116.825 +-86.9565 201.105 116.826 +-89.2336 201.006 116.769 +-91.5887 201.049 116.794 +-93.9888 201.152 116.854 +-96.3214 201.074 116.808 +-99.1285 201.932 117.307 +-100.844 200.541 116.499 +-103.311 200.642 116.558 +-106.037 201.192 116.877 +-108.275 200.776 116.636 +-110.512 200.342 116.383 +-113.713 201.599 117.113 +-115.476 200.269 116.341 +-118.355 200.853 116.68 +-120.886 200.796 116.647 +-123.565 200.946 116.734 +-125.636 200.082 116.232 +-128.475 200.411 116.424 +-131.132 200.413 116.425 +-135.8 203.384 118.151 +-139.066 204.14 118.59 +-142.511 205.084 119.138 +-144.471 203.854 118.423 +-143.767 198.942 115.57 +-143.781 195.152 113.369 +-145.31 193.479 112.397 +-143.062 186.896 108.572 +-143.657 184.161 106.983 +-144.434 181.715 105.563 +-144.484 178.422 103.65 +-143.376 173.806 100.968 +-143.713 171.039 99.3605 +-149.301 174.466 101.351 +-150.454 172.642 100.292 +-687.353 774.563 449.962 +-702.347 777.319 451.563 +-709.604 771.381 448.113 +-712.454 760.755 441.941 +-718.832 754.016 438.026 +-721.143 743.131 431.702 +-728.811 737.859 428.64 +-733.277 729.395 423.723 +-738.092 721.373 419.063 +-736.311 707.102 410.772 +-728.421 687.365 399.307 +-730.898 677.733 393.711 +-737.365 671.878 390.31 +-740.506 663.054 385.183 +-747.8 657.996 382.245 +-749.957 648.476 376.715 +-757.115 643.338 373.73 +-759.047 633.817 368.199 +-766.793 629.196 365.515 +-769.53 620.497 360.461 +-776.206 615.016 357.277 +-778.964 606.475 352.315 +-786.928 602.006 349.719 +-788.973 593.039 344.51 +-797.286 588.803 342.05 +-799.367 579.986 336.928 +-806.656 574.977 334.018 +-809.475 566.801 329.268 +-817.669 562.393 326.707 +-819.452 553.593 321.595 +-828.578 549.758 319.367 +-830.501 541.143 314.363 +-839.066 536.862 311.876 +-841.539 528.68 307.123 +-854.251 526.88 306.077 +-864.943 523.687 304.222 +-888.326 527.915 306.678 +-891.796 520.128 302.155 +-906.434 518.773 301.367 +-907.19 509.417 295.932 +-913.815 503.388 292.43 +-913.687 493.679 286.789 +-910.193 482.292 280.175 +-908.083 471.799 274.079 +-382.391 194.767 113.145 +-383.476 191.441 111.213 +-382.521 187.135 108.711 +-382.384 183.278 106.47 +-377.276 177.125 102.896 +-381.61 175.45 101.923 +-381.326 171.645 99.7126 +-383.133 168.8 98.06 +-382.584 164.939 95.8167 +-382.347 161.249 93.6733 +-136.29 56.2107 32.6541 +-136.762 55.1436 32.0342 +-382.548 150.747 87.5722 +-383.598 147.679 85.7899 +-383.239 144.088 83.7043 +-383.943 140.921 81.8643 +-1042.04 373.223 216.814 +-383.112 133.842 77.7519 +-379.796 129.362 75.1494 +-381.181 126.522 73.4998 +-382.256 123.581 71.7909 +-380.388 119.716 69.5456 +-1114.3 341.198 198.21 +-1121.39 333.875 193.956 +-1140.45 329.956 191.679 +-382.039 107.335 62.3534 +-382.25 104.214 60.5406 +-1190.79 314.798 182.873 +-1222.02 312.997 181.827 +-381.909 94.6925 55.0091 +-381.501 91.4836 53.145 +-380.575 88.1762 51.2236 +-381.45 85.3009 49.5533 +-380.065 81.9382 47.5998 +-380.002 78.8855 45.8264 +-381.076 76.0736 44.1929 +-382.513 73.3261 42.5968 +-381.086 70.0415 40.6887 +-381.485 67.1115 38.9867 +-380.184 63.9004 37.1213 +-382.191 61.2498 35.5815 +-379.84 57.9132 33.6431 +-380.509 55.0591 31.9851 +-381.05 52.1858 30.3159 +-380.573 49.1807 28.5702 +-381.352 46.3433 26.9219 +-380.12 43.272 25.1377 +-381.435 40.497 23.5256 +-381.035 37.5389 21.8072 +-379.41 34.4815 20.0311 +-379.744 31.6174 18.3673 +-381.343 28.8486 16.7588 +-380.324 25.8818 15.0354 +-378.975 22.9146 13.3116 +-380.09 20.1016 11.6775 +-379.879 17.2147 10.0004 +-378.439 14.2872 8.29976 +-379.868 11.4703 6.66336 +-3275.38 74.163 43.083 +-146.278 2.20779 1.28256 +-145.994 1.10167 0.639985 +97.1 0 0 +96.9963 0.735739 0.418576 +97.0852 1.47294 0.837985 +96.9668 2.20699 1.2556 +97.8404 2.9697 1.68952 +97.0076 3.68136 2.0944 +96.9669 4.41702 2.51293 +96.9189 5.15234 2.93127 +96.9632 5.89333 3.35283 +96.8007 6.62175 3.76724 +97.6271 7.4239 4.2236 +97.6484 8.17245 4.64947 +97.5626 8.91276 5.07064 +97.37 9.64261 5.48587 +97.3688 10.3914 5.91188 +97.2607 11.1295 6.3318 +97.0463 11.8548 6.74441 +96.8247 12.5775 7.15558 +96.6947 13.3114 7.57313 +96.5574 14.0444 7.99014 +97.102 14.8819 8.46658 +96.9489 15.6178 8.88527 +96.7884 16.3526 9.30331 +96.6206 17.0861 9.72062 +96.4454 17.8183 10.1372 +96.2628 18.5491 10.5529 +96.9498 19.4545 11.0681 +96.7508 20.1892 11.486 +96.5444 20.9222 11.9031 +97.202 21.8496 12.4307 +96.979 22.586 12.8496 +97.6158 23.5298 13.3865 +96.5107 24.0537 13.6846 +97.1284 25.007 14.227 +96.8737 25.7428 14.6456 +97.2791 26.6595 15.1671 +97.198 27.45 15.6169 +96.729 28.1311 16.0044 +97.1993 29.0901 16.5499 +96.9978 29.8552 16.9852 +97.5401 30.8574 17.5554 +97.3202 31.6265 17.9929 +97.7459 32.6126 18.554 +97.4147 33.3528 18.9751 +97.9106 34.3835 19.5614 +97.5617 35.1248 19.9832 +97.2974 35.8974 20.4228 +97.025 36.6687 20.8616 +97.658 37.7921 21.5007 +97.0929 38.4593 21.8803 +96.8843 39.2678 22.3402 +97.1182 40.2631 22.9065 +96.89 41.0744 23.368 +97.1004 42.0792 23.9397 +97.387 43.1298 24.5374 +97.6599 44.1879 25.1393 +97.2125 44.9269 25.5598 +96.7578 45.6626 25.9783 +97.0828 46.774 26.6107 +96.5224 47.4658 27.0042 +96.8216 48.5872 27.6422 +96.3301 49.3198 28.059 +97.2885 50.8095 28.9065 +96.6894 51.5001 29.2994 +96.8471 52.6001 29.9252 +96.3153 53.3326 30.342 +96.4471 54.4398 30.9719 +96.564 55.5531 31.6052 +96.8316 56.7694 32.2972 +96.8348 57.8463 32.9099 +96.3323 58.6285 33.3549 +96.3913 59.7607 33.999 +96.4348 60.8983 34.6462 +96.3824 61.9894 35.267 +96.4752 63.1888 35.9494 +96.5511 64.3944 36.6352 +96.5313 65.5523 37.294 +96.4956 66.7149 37.9554 +95.8221 67.4443 38.3704 +96.4531 69.1084 39.3171 +95.8322 69.8932 39.7636 +96.3434 71.5206 40.6895 +95.6972 72.3057 41.1361 +96.3157 74.0654 42.1373 +96.2373 75.3166 42.8491 +96.0672 76.5135 43.53 +95.3685 77.2985 43.9766 +95.822 79.036 44.9651 +95.7441 80.3636 45.7204 +95.5756 81.635 46.4438 +96.0251 83.4632 47.4838 +96.0246 84.9323 48.3196 +95.7239 86.1576 49.0167 +94.3734 86.439 49.1768 +93.2292 86.8973 49.4376 +92.8261 88.0498 50.0932 +92.4069 89.2023 50.7489 +92.6343 91.0067 51.7755 +92.898 92.8868 52.8451 +92.2216 93.8524 53.3945 +92.3686 95.6803 54.4344 +92.5494 97.5838 55.5174 +92.5101 99.2952 56.491 +92.4434 101.014 57.4686 +91.9183 102.259 58.1772 +92.1665 104.401 59.3957 +93.2211 107.526 61.1734 +92.257 108.368 61.6525 +92.1647 110.259 62.7286 +92.2156 112.369 63.9292 +91.8296 113.99 64.8509 +91.9844 116.329 66.1821 +91.9313 118.464 67.3966 +91.5112 120.171 68.3678 +91.7172 122.756 69.8384 +92.5767 126.306 71.8579 +91.0931 126.708 72.0869 +91.1237 129.247 73.5313 +91.3163 132.095 75.1512 +91.1031 134.429 76.4795 +91.65 137.976 78.497 +93.0681 142.978 81.3428 +93.0834 145.959 83.0389 +93.38 149.486 85.0456 +93.0962 152.184 86.5805 +93.1809 155.583 88.514 +92.7957 158.297 90.0583 +92.8091 161.795 92.0481 +92.7155 165.227 94.0009 +92.646 168.826 96.0486 +92.7647 172.911 98.3722 +92.4766 176.375 100.343 +92.0852 179.77 102.275 +90.1572 180.222 102.532 +89.4774 183.22 104.237 +87.4049 183.409 104.345 +91.9659 197.846 112.559 +91.8819 202.742 115.344 +89.807 203.349 115.689 +87.2016 202.72 115.331 +85.4366 204.027 116.075 +82.951 203.602 115.833 +80.7083 203.731 115.906 +78.0887 202.851 115.406 +75.9255 203.106 115.551 +73.5226 202.679 115.308 +71.3095 202.73 115.337 +68.9873 202.43 115.166 +67.0074 203.113 115.555 +64.4846 202.105 114.982 +62.6083 203.09 115.542 +60.2665 202.548 115.233 +58.2548 203.082 115.537 +55.9802 202.67 115.303 +53.8758 202.834 115.396 +51.7291 202.81 115.383 +49.6493 203.025 115.505 +47.5493 203.138 115.569 +45.4507 203.235 115.625 +43.2263 202.717 115.33 +41.1893 203.037 115.512 +38.9842 202.485 115.198 +36.9968 203.03 115.508 +34.7943 202.357 115.125 +32.7753 202.7 115.32 +30.504 201.39 114.575 +28.6149 202.563 115.242 +26.5688 202.685 115.312 +24.5433 202.966 115.471 +22.4183 202.365 115.13 +20.3596 202.268 115.074 +18.2496 201.548 114.665 +16.316 202.806 115.38 +14.1755 201.447 114.607 +12.1995 202.329 115.109 +10.1328 201.719 114.762 +8.11413 201.961 114.9 +6.07305 201.58 114.683 +4.0507 201.706 114.755 +2.02107 201.294 114.52 +1.4236e-14 202.085 114.97 +-2.02194 201.381 114.57 +-4.05943 202.141 115.002 +-6.08352 201.928 114.881 +-8.11762 202.048 114.949 +-10.1502 202.066 114.96 +-12.1733 201.894 114.862 +-14.1938 201.707 114.755 +-16.2602 202.112 114.986 +-18.2417 201.461 114.615 +-20.3334 202.008 114.926 +-22.3033 201.328 114.539 +-24.3969 201.755 114.782 +-26.4216 201.563 114.673 +-28.4443 201.354 114.555 +-30.4779 201.217 114.476 +-32.6222 201.753 114.781 +-34.6465 201.498 114.636 +-36.6839 201.314 114.531 +-38.7037 201.028 114.369 +-40.7726 200.983 114.343 +-42.8436 200.922 114.309 +-44.9164 200.846 114.265 +-46.9312 200.497 114.067 +-49.2959 201.58 114.683 +-51.2096 200.774 114.224 +-53.4709 201.309 114.529 +-55.4433 200.727 114.197 +-57.6984 201.142 114.434 +-59.7407 200.781 114.228 +-62.013 201.16 114.444 +-64.1372 201.016 114.362 +-66.4562 201.441 114.604 +-68.5045 201.013 114.36 +-70.7247 201.068 114.391 +-72.7708 200.607 114.129 +-75.431 201.783 114.798 +-77.3906 201.038 114.375 +-79.7968 201.43 114.598 +-81.7827 200.735 114.202 +-84.4106 201.577 114.681 +-86.3611 200.766 114.22 +-89.0186 201.564 114.674 +-91.0389 200.882 114.286 +-93.7266 201.633 114.713 +-96.0153 201.477 114.624 +-98.308 201.301 114.524 +-100.565 201.027 114.368 +-103.108 201.288 114.517 +-105.664 201.527 114.652 +-107.852 201.033 114.372 +-110.168 200.756 114.214 +-112.661 200.772 114.223 +-114.985 200.455 114.043 +-117.992 201.279 114.511 +-120.055 200.453 114.042 +-122.814 200.763 114.218 +-125.159 200.358 113.988 +-127.699 200.238 113.919 +-130.295 200.169 113.88 +-133.35 200.754 114.213 +-138.558 204.453 116.317 +-141.996 205.406 116.859 +-144.523 204.988 116.621 +-143.767 199.977 113.771 +-143.835 196.24 111.645 +-144.547 193.465 110.066 +-143.835 188.883 107.459 +-143.824 185.334 105.44 +-144.094 182.231 103.675 +-143.681 178.354 101.469 +-143.608 174.993 99.557 +-145.183 173.686 98.8133 +-151.026 177.399 100.926 +-678.607 782.733 445.312 +-703.911 797.347 453.626 +-706.472 785.95 447.142 +-713.215 779.337 443.38 +-716.418 768.967 437.48 +-722.394 761.693 433.342 +-725.45 751.457 427.519 +-733.941 746.918 424.936 +-737.542 737.452 419.551 +-734.846 721.935 410.723 +-728.014 702.769 399.819 +-731.867 694.209 394.949 +-734.58 684.689 389.533 +-742.046 679.66 386.672 +-744.952 670.504 381.463 +-751.445 664.642 378.128 +-754.412 655.721 373.052 +-761.395 650.339 369.991 +-764.227 641.46 364.939 +-770.42 635.459 361.525 +-773.553 626.984 356.703 +-781.072 622.09 353.919 +-783.646 613.292 348.914 +-790.523 607.901 345.847 +-793.653 599.658 341.157 +-800.784 594.462 338.201 +-803.657 586.13 333.461 +-811.672 581.561 330.862 +-814.371 573.194 326.102 +-820.799 567.482 322.852 +-825.047 560.272 318.75 +-832.307 555.104 315.81 +-835.692 547.357 311.402 +-842.603 541.928 308.314 +-846.798 534.751 304.23 +-885.758 549.153 312.424 +-885.995 539.222 306.774 +-893.765 533.91 303.752 +-902.573 529.151 301.045 +-908.185 522.478 297.248 +-911.887 514.717 292.833 +-913.393 505.772 287.744 +-912.076 495.371 281.826 +-907.891 483.574 275.115 +-907.397 473.894 269.608 +-387.13 198.205 112.763 +-383.13 192.263 109.382 +-383.392 188.537 107.262 +-383.521 184.778 105.124 +-379.737 179.208 101.955 +-381.875 176.484 100.405 +-379.729 171.815 97.7491 +-382.955 169.599 96.4882 +-382.137 165.602 94.214 +-381.808 161.859 92.0847 +-383.689 159.069 90.4974 +-137.215 55.614 31.6399 +-383.367 151.855 86.3931 +-382.958 148.199 84.3132 +-382.506 144.56 82.2433 +-381.825 140.873 80.1451 +-1048.97 377.658 214.857 +-383.761 134.767 76.6713 +-381.936 130.767 74.3961 +-381.181 127.18 72.3554 +-380.383 123.614 70.3265 +-381.609 120.724 68.6823 +-3088.56 950.641 540.838 +-1129.89 338.158 192.385 +-384.45 111.807 63.6093 +-381.183 107.652 61.2451 +-382.25 104.756 59.5979 +-384.626 102.209 58.1486 +-1231.41 317.043 180.372 +-386.812 96.4061 54.8473 +-381.501 91.9593 52.3175 +-381.541 88.8598 50.5541 +-380.869 85.6139 48.7074 +-381.714 82.7218 47.062 +-380.099 79.3161 45.1245 +-381.368 76.5277 43.5381 +-381.927 73.5946 41.8694 +-381.673 70.5141 40.1169 +-381.289 67.4259 38.3599 +-381.362 64.4318 36.6565 +-380.52 61.2991 34.8742 +-381.613 58.4861 33.2739 +-380.41 55.3311 31.479 +-381.05 52.4572 29.8439 +-381.562 49.565 28.1985 +-381.154 46.56 26.4889 +-380.814 43.5765 24.7915 +-380.542 40.6122 23.1051 +-380.24 37.6554 21.4229 +-379.41 34.6609 19.7192 +-378.848 31.7068 18.0386 +-379.65 28.8699 16.4247 +-381.62 26.1051 14.8517 +-378.775 23.0216 13.0974 +-379.89 20.1955 11.4896 +-378.58 17.2451 9.81106 +-379.838 14.4146 8.20074 +-378.569 11.4905 6.53716 +-153.547 3.49479 1.98825 +-145.578 2.20865 1.25654 +-145.094 1.10057 0.626138 +97.1 0 0 +97.0963 0.740247 0.412348 +97.0852 1.48044 0.824665 +96.9668 2.21822 1.23564 +97.8404 2.98481 1.66266 +96.9077 3.6963 2.05899 +96.9669 4.43951 2.47299 +96.9189 5.17857 2.88468 +96.8635 5.91724 3.29614 +96.9004 6.66231 3.71118 +97.6271 7.46169 4.15647 +97.5488 8.20567 4.5709 +97.5626 8.95813 4.99004 +97.37 9.6917 5.39867 +97.3688 10.4443 5.81791 +97.2607 11.1862 6.23116 +97.1453 11.9273 6.64397 +96.9236 12.6544 7.04904 +96.6947 13.3792 7.45275 +96.5574 14.1159 7.86313 +96.2157 14.8211 8.25594 +96.9489 15.6973 8.74404 +96.7884 16.4358 9.15544 +96.6206 17.1731 9.56611 +96.4454 17.909 9.97605 +96.2628 18.6435 10.3852 +96.9498 19.5536 10.8921 +96.7508 20.2919 11.3034 +96.5444 21.0287 11.7139 +97.202 21.9609 12.2331 +96.979 22.701 12.6454 +96.7485 23.4395 13.0567 +96.5107 24.1762 13.4671 +97.1284 25.1343 14.0009 +96.8737 25.8738 14.4128 +96.6115 26.6113 14.8236 +97.198 27.5898 15.3686 +96.729 28.2743 15.75 +97.2939 29.2667 16.3027 +96.9978 30.0072 16.7153 +97.6341 31.0444 17.293 +97.2266 31.7569 17.6899 +97.7459 32.7787 18.2591 +97.4147 33.5226 18.6735 +97.0761 34.264 19.0864 +97.6541 35.337 19.6842 +97.2053 36.046 20.0791 +97.8503 37.1689 20.7046 +97.4753 37.9134 21.1193 +97.2749 38.7276 21.5728 +97.7 39.7999 22.1702 +97.2987 40.5433 22.5843 +96.89 41.2835 22.9966 +97.1004 42.2934 23.5592 +96.6742 43.0321 23.9706 +97.039 44.1305 24.5825 +97.2125 45.1556 25.1535 +96.7578 45.8951 25.5654 +97.0828 47.0121 26.1877 +97.3058 48.0946 26.7907 +96.8216 48.8346 27.2029 +96.3301 49.5708 27.613 +96.6028 50.7083 28.2466 +96.7747 51.808 28.8592 +96.9319 52.9141 29.4753 +96.3153 53.6041 29.8597 +96.4471 54.717 30.4796 +96.6474 55.8841 31.1297 +96.8316 57.0584 31.7839 +96.8348 58.1408 32.3868 +96.2504 58.8768 32.7968 +96.2285 59.9635 33.4021 +96.5157 61.2597 34.1242 +96.3824 62.305 34.7064 +96.3953 63.4579 35.3487 +95.8371 64.2436 35.7863 +96.5313 65.886 36.7012 +95.9478 66.6739 37.1401 +96.5215 68.2824 38.0361 +95.8358 69.0156 38.4445 +95.8322 70.249 39.1316 +96.4195 71.9414 40.0743 +96.3764 73.1896 40.7696 +95.7165 73.9794 41.2095 +96.2373 75.7 42.168 +96.0672 76.903 42.8381 +95.9536 78.1687 43.5432 +95.822 79.4384 44.2504 +95.7441 80.7727 44.9937 +95.5756 82.0506 45.7056 +95.3887 83.3321 46.4194 +96.1648 85.4893 47.6211 +95.7239 86.5962 48.2376 +94.0981 86.6256 48.254 +93.161 87.2758 48.6162 +93.4341 89.0772 49.6197 +92.5408 89.7866 50.0148 +92.568 91.4045 50.9161 +92.8324 93.2932 51.9682 +92.8061 94.9278 52.8786 +92.3686 96.1674 53.5692 +92.4222 97.9461 54.56 +92.3842 99.6653 55.5177 +92.0077 101.049 56.2885 +91.9183 102.78 57.2525 +92.0447 104.793 58.3742 +92.499 107.235 59.7344 +92.3165 108.99 60.712 +92.2235 110.891 61.7709 +92.1576 112.87 62.8731 +92.2311 115.071 64.0995 +91.8145 116.706 65.01 +91.7636 118.85 66.2042 +91.2352 120.419 67.0781 +91.3904 122.942 68.4835 +91.9857 126.139 70.2646 +91.3051 127.65 71.1065 +91.1237 129.905 72.3625 +90.8527 132.093 73.581 +91.4077 135.565 75.5154 +91.15 137.921 76.8279 +93.1173 143.782 80.0922 +93.1319 146.778 81.7614 +93.4277 150.323 83.7361 +93.0962 152.959 85.2043 +93.1809 156.375 87.107 +92.7957 159.103 88.6268 +92.8538 162.697 90.6288 +92.7155 166.068 92.5067 +92.6029 169.607 94.4781 +92.3844 173.078 96.4115 +92.4766 177.273 98.7483 +92.1258 180.765 100.693 +90.2369 181.3 100.992 +89.1258 183.428 102.177 +87.8258 185.231 103.181 +91.891 198.691 110.679 +91.8452 203.693 113.465 +89.6278 203.976 113.623 +86.8865 203.016 113.088 +84.8894 203.753 113.499 +82.5171 203.569 113.396 +80.3177 203.776 113.512 +78.1204 203.967 113.618 +75.771 203.724 113.483 +73.282 203.044 113.104 +71.3095 203.762 113.504 +68.7317 202.706 112.916 +66.7042 203.223 113.203 +64.4846 203.134 113.154 +62.4013 203.45 113.33 +60.2665 203.579 113.402 +57.9161 202.929 113.04 +55.8168 203.108 113.14 +53.6508 203.015 113.087 +51.4693 202.819 112.978 +49.5246 203.546 113.383 +47.3499 203.316 113.255 +45.279 203.498 113.357 +43.044 202.891 113.018 +41.0331 203.297 113.245 +38.8357 202.74 112.935 +36.8403 203.202 113.192 +34.7352 203.043 113.103 +32.7196 203.386 113.294 +30.5431 202.675 112.898 +28.5052 202.814 112.976 +26.5009 203.196 113.189 +24.4388 203.13 113.152 +22.3321 202.613 112.864 +20.255 202.254 112.664 +18.1554 201.53 112.26 +16.2044 202.444 112.77 +14.1266 201.775 112.397 +12.1576 202.661 112.89 +10.0935 201.96 112.5 +8.07574 202.029 112.539 +6.04688 201.734 112.374 +4.03849 202.122 112.59 +2.02019 202.232 112.651 +1.41871e-14 202.414 112.753 +-2.01408 201.62 112.311 +-4.04372 202.384 112.736 +-6.05735 202.083 112.569 +-8.07923 202.117 112.587 +-10.1023 202.135 112.597 +-12.121 202.05 112.55 +-14.1511 202.124 112.592 +-16.2184 202.619 112.867 +-18.2496 202.574 112.842 +-20.2637 202.34 112.712 +-22.2841 202.179 112.622 +-24.3238 202.174 112.619 +-26.3311 201.895 112.464 +-28.4199 202.207 112.637 +-30.3473 201.376 112.175 +-32.483 201.916 112.475 +-34.4987 201.66 112.333 +-36.6526 202.165 112.614 +-38.5386 201.19 112.071 +-40.7726 202.006 112.526 +-42.6067 200.829 111.87 +-44.802 201.354 112.162 +-46.8116 201.004 111.968 +-48.984 201.324 112.146 +-51.0148 201.028 111.981 +-53.2684 201.568 112.282 +-55.2332 200.984 111.957 +-57.7468 202.336 112.709 +-59.5404 201.127 112.036 +-61.9354 201.93 112.484 +-63.9234 201.366 112.169 +-66.2357 201.795 112.408 +-68.2489 201.282 112.122 +-70.5785 201.674 112.34 +-72.5002 200.878 111.897 +-74.813 201.149 112.048 +-77.1685 201.481 112.233 +-79.5037 201.712 112.362 +-81.7493 201.675 112.341 +-83.7265 200.962 111.944 +-86.3962 201.87 112.45 +-88.3735 201.122 112.033 +-90.7091 201.172 112.061 +-93.352 201.85 112.439 +-95.6326 201.695 112.353 +-97.9954 201.683 112.346 +-100.126 201.169 112.059 +-102.742 201.595 112.297 +-105.125 201.519 112.254 +-107.641 201.661 112.333 +-109.78 201.068 112.003 +-112.223 201.009 111.97 +-114.762 201.084 112.012 +-117.311 201.136 112.041 +-119.639 200.776 111.841 +-122.532 201.322 112.144 +-124.92 200.994 111.962 +-127.844 201.486 112.236 +-129.901 200.58 111.731 +-132.3 200.187 111.512 +-138.101 204.816 114.091 +-141.069 205.103 114.251 +-144.157 205.51 114.477 +-143.873 201.143 112.045 +-143.835 197.239 109.87 +-143.567 193.132 107.582 +-143.945 189.989 105.832 +-144.104 186.64 103.966 +-143.244 182.079 101.425 +-143.337 178.832 99.6169 +-144.711 177.235 98.7274 +-149.297 179.517 99.9985 +-677.92 800.359 445.833 +-687.213 796.695 443.792 +-706.042 803.832 447.767 +-709.55 793.393 441.952 +-715.767 786.108 437.894 +-719.628 776.344 432.455 +-725.829 769.211 428.482 +-728.6 758.562 422.55 +-738.098 754.971 420.55 +-738.657 742.327 413.507 +-727.954 718.805 400.404 +-729.285 707.581 394.151 +-734.772 700.512 390.214 +-738.536 691.881 385.406 +-744.387 685.274 381.726 +-747.73 676.43 376.799 +-754.459 670.705 373.61 +-758.089 662.271 368.912 +-763.392 655.364 365.065 +-767.895 647.821 360.863 +-773.249 641.04 357.085 +-777.136 633.094 352.659 +-783.431 627.146 349.346 +-787.288 619.279 344.964 +-793.444 613.254 341.607 +-796.898 605.176 337.108 +-803.369 599.418 333.9 +-806.951 591.529 329.506 +-813.524 585.855 326.345 +-818.179 578.807 322.419 +-824.165 572.71 319.023 +-827.963 565.115 314.792 +-834.29 559.26 311.531 +-838.567 552.037 307.507 +-844.854 546.143 304.224 +-857.073 543.994 303.027 +-887.305 552.912 307.995 +-890.992 545.024 303.601 +-901.676 541.378 301.57 +-906.967 534.434 297.702 +-912.188 527.452 293.812 +-913.564 518.288 288.708 +-911.537 507.314 282.595 +-909.956 496.735 276.702 +-907.55 485.853 270.64 +-911.769 478.601 266.601 +-919.875 473.362 263.682 +-382.783 193.067 107.546 +-383.305 189.453 105.533 +-382.909 185.423 103.288 +-379.737 180.12 100.334 +-382.669 177.752 99.015 +-381.415 173.456 96.6222 +-382.509 170.264 94.844 +-382.316 166.523 92.7603 +-382.347 162.913 90.749 +-384.231 160.105 89.185 +-136.943 55.7864 31.0753 +-382.73 152.374 84.8787 +-383.598 149.202 83.1118 +-383.331 145.61 81.1107 +-382.102 141.692 78.9282 +-1069.58 387.036 215.595 +-382.834 135.125 75.2701 +-382.309 131.561 73.2847 +-381.274 127.858 71.2223 +-381.226 124.519 69.3619 +-381.985 121.458 67.6572 +-384.221 118.863 66.2115 +-1135.38 341.529 190.246 +-382.743 111.877 62.3203 +-382.039 108.442 60.4069 +-381.773 105.159 58.5776 +-384.626 102.729 57.2243 +-1239.47 320.742 178.666 +-3149.57 788.976 439.492 +-380.152 92.1008 51.3039 +-381.927 89.4022 49.8007 +-381.45 86.181 48.0063 +-380.938 82.9738 46.2198 +-379.516 79.5975 44.339 +-380.492 76.7405 42.7476 +-382.22 74.0259 41.2355 +-382.26 70.9821 39.54 +-381.191 67.7517 37.7405 +-380.675 64.6431 36.0088 +-381.7 61.8022 34.4264 +-383.09 59.0113 32.8717 +-380.114 55.5695 30.9545 +-381.05 52.7242 29.3695 +-381.167 49.7656 27.7215 +-382.045 46.9065 26.1289 +-379.624 43.6615 24.3212 +-380.741 40.8403 22.7497 +-379.048 37.7284 21.0163 +-380.703 34.956 19.4719 +-381.038 32.0524 17.8545 +-378.654 28.9407 16.1212 +-380.424 26.1558 14.5698 +-380.67 23.2546 12.9538 +-379.99 20.3036 11.31 +-378.58 17.3329 9.65512 +-378.939 14.4536 8.05127 +-379.569 11.5795 6.45024 +-379.57 8.68311 4.83685 +-146.578 2.23514 1.24506 +-146.494 1.11685 0.622133 +97.1 0 0 +96.9963 0.743171 0.405235 +97.0852 1.48782 0.811276 +96.9668 2.22928 1.21558 +96.9409 2.97212 1.62063 +97.0076 3.71855 2.02765 +96.8671 4.45705 2.43033 +96.9189 5.20438 2.83784 +97.7613 6.00185 3.27268 +96.9004 6.69552 3.65092 +97.6271 7.49889 4.08898 +96.653 8.17084 4.45539 +97.4631 8.99365 4.90405 +97.4694 9.74993 5.31643 +97.3688 10.4964 5.72345 +97.1616 11.2305 6.12376 +97.0463 11.9745 6.52944 +96.9236 12.7175 6.93459 +96.6947 13.4459 7.33175 +97.2478 14.2877 7.79076 +96.2157 14.8949 8.1219 +96.7523 15.7436 8.58464 +96.5921 16.4842 8.9885 +96.6206 17.2587 9.41079 +96.4454 17.9983 9.81408 +96.2628 18.7365 10.2166 +96.9498 19.651 10.7153 +96.7508 20.3931 11.1199 +96.7385 21.1761 11.5469 +96.3307 21.8725 11.9266 +96.979 22.8142 12.4401 +96.7485 23.5563 12.8447 +96.5107 24.2967 13.2485 +97.1284 25.2596 13.7735 +96.6824 25.9515 14.1508 +96.6115 26.744 14.5829 +97.198 27.7273 15.1191 +96.729 28.4153 15.4942 +97.2939 29.4126 16.038 +96.9978 30.1568 16.4439 +97.6341 31.1991 17.0122 +97.2266 31.9152 17.4027 +97.7459 32.942 17.9626 +97.4147 33.6897 18.3703 +97.0761 34.4347 18.7765 +97.5617 35.4796 19.3463 +97.2974 36.26 19.7718 +97.7586 37.3192 20.3494 +97.4753 38.1024 20.7764 +97.2749 38.9206 21.2226 +96.8843 39.6644 21.6282 +97.1182 40.6698 22.1764 +97.5192 41.7587 22.7701 +97.1004 42.5043 23.1767 +97.4761 43.6053 23.7771 +96.9503 44.3099 24.1612 +97.2125 45.3807 24.7451 +97.5487 46.5008 25.3559 +96.9953 47.2039 25.7393 +97.3058 48.3344 26.3557 +96.8216 49.078 26.7612 +97.0194 50.1744 27.359 +96.6028 50.961 27.788 +96.6894 52.0203 28.3656 +96.7623 53.0848 28.946 +96.231 53.8242 29.3492 +96.4471 54.9897 29.9847 +96.6474 56.1627 30.6243 +96.8316 57.3428 31.2678 +96.1755 58.0328 31.6441 +97.0695 59.6739 32.5389 +96.2285 60.2624 32.8598 +96.4348 61.5134 33.542 +96.3824 62.6155 34.1429 +96.4752 63.8271 34.8036 +96.5511 65.0448 35.4676 +95.8221 65.728 35.8401 +95.9478 67.0062 36.5371 +96.5215 68.6228 37.4186 +95.7586 69.3038 37.7899 +96.445 71.0507 38.7424 +96.4195 72.3 39.4237 +96.3009 73.4968 40.0762 +95.6416 74.29 40.5088 +96.1629 76.0186 41.4514 +96.0672 77.2863 42.1426 +95.9536 78.5583 42.8362 +95.7494 79.7739 43.499 +95.7441 81.1753 44.2632 +95.5756 82.4596 44.9635 +95.318 83.6854 45.6319 +95.604 85.4145 46.5747 +95.0987 86.4594 47.1445 +93.4786 86.4842 47.158 +93.161 87.7108 47.8268 +93.3666 89.4571 48.7791 +92.8753 90.5607 49.3809 +92.568 91.8601 50.0894 +92.2419 93.1621 50.7993 +92.8711 95.4677 52.0565 +92.3686 96.6468 52.6994 +92.4222 98.4343 53.6741 +92.3842 100.162 54.6163 +91.9454 101.484 55.3373 +91.8567 103.223 56.2851 +92.3491 105.664 57.6165 +91.9573 107.139 58.4208 +92.3165 109.533 59.7263 +92.3998 111.656 60.8839 +92.6221 114.004 62.164 +91.7722 115.069 62.7447 +92.041 117.577 64.1124 +91.5399 119.151 64.9703 +91.7319 121.678 66.3486 +91.4994 123.702 67.4521 +91.717 126.397 68.9218 +91.4111 128.435 70.0329 +91.1237 130.553 71.1876 +91.2647 133.353 72.7148 +91.4584 136.317 74.331 +90.9 138.229 75.3732 +93.5605 145.187 79.1672 +93.0834 147.433 80.3922 +93.38 150.996 82.3349 +93.0962 153.721 83.8209 +92.8115 156.531 85.3529 +92.8411 159.974 87.2305 +92.8538 163.508 89.1574 +92.7155 166.896 91.0048 +92.6029 170.453 92.9441 +92.3844 173.941 94.8461 +92.4766 178.157 97.145 +91.8818 181.185 98.7962 +90.2768 182.284 99.3955 +88.7741 183.616 100.122 +87.7876 186.073 101.462 +91.8535 199.6 108.838 +91.9552 204.953 111.756 +89.4128 204.502 111.51 +86.9565 204.193 111.342 +84.8552 204.686 111.611 +82.25 203.921 111.194 +80.0247 204.045 111.261 +77.8666 204.318 111.41 +75.4929 203.988 111.23 +73.1016 203.554 110.994 +71.0171 203.938 111.203 +68.7317 203.717 111.082 +66.4837 203.56 110.997 +64.2441 203.386 110.902 +62.2719 204.04 111.259 +60.0662 203.914 111.19 +57.9403 204.026 111.251 +55.5833 203.266 110.837 +53.6508 204.027 111.251 +51.2962 203.144 110.77 +49.3374 203.787 111.121 +47.1705 203.555 110.994 +45.1454 203.909 111.187 +42.8982 203.211 110.807 +40.8768 203.532 110.982 +38.7862 203.491 110.959 +36.7465 203.694 111.07 +34.5874 203.186 110.793 +32.5804 203.531 110.981 +30.4518 203.076 110.733 +28.5052 203.825 111.141 +26.365 203.163 110.78 +24.3656 203.531 110.981 +22.3416 203.711 111.079 +20.2288 202.999 110.691 +18.1868 202.883 110.628 +16.1975 203.365 110.891 +14.1266 202.781 110.572 +12.1105 202.882 110.627 +10.0935 202.967 110.674 +8.07574 203.036 110.711 +6.03902 202.476 110.406 +4.03325 202.866 110.618 +2.01845 203.064 110.727 +1.41258e-14 202.545 110.444 +-2.01234 202.45 110.392 +-4.02802 202.603 110.475 +-6.03379 202.301 110.31 +-8.08272 203.212 110.807 +-10.1066 203.229 110.817 +-12.1053 202.794 110.579 +-14.0961 202.343 110.333 +-16.1556 202.84 110.605 +-18.1947 202.971 110.676 +-20.1766 202.474 110.405 +-22.1979 202.4 110.364 +-24.2402 202.484 110.41 +-26.2292 202.116 110.21 +-28.3102 202.43 110.381 +-30.3473 202.38 110.353 +-32.3856 202.313 110.317 +-34.3509 201.797 110.035 +-36.371 201.613 109.935 +-38.4066 201.5 109.874 +-40.5989 202.149 110.227 +-42.6067 201.83 110.054 +-44.6111 201.495 109.871 +-46.8515 202.178 110.244 +-48.8385 201.726 109.997 +-50.8417 201.344 109.789 +-53.021 201.632 109.945 +-55.0231 201.218 109.72 +-57.2629 201.64 109.95 +-59.5153 202.044 110.17 +-61.4695 201.41 109.825 +-63.7096 201.694 109.979 +-65.96 201.957 110.123 +-67.9649 201.445 109.843 +-70.4908 202.427 110.379 +-72.5002 201.879 110.08 +-74.813 202.151 110.229 +-76.8829 201.737 110.003 +-79.1456 201.804 110.04 +-81.4155 201.852 110.066 +-83.7949 202.128 110.216 +-86.0109 201.972 110.131 +-88.3377 202.043 110.17 +-90.6724 202.093 110.197 +-93.0523 202.205 110.258 +-95.3264 202.052 110.175 +-97.9563 202.608 110.478 +-100.166 202.251 110.283 +-102.294 201.718 109.992 +-104.586 201.485 109.865 +-107.218 201.869 110.075 +-109.35 201.279 109.753 +-112.311 202.169 110.238 +-114.316 201.301 109.765 +-117.084 201.747 110.009 +-119.593 201.699 109.982 +-122.016 201.473 109.859 +-124.395 201.148 109.682 +-127.359 201.723 109.995 +-129.901 201.58 109.917 +-132.2 201.033 109.619 +-138.05 205.761 112.197 +-141.069 206.126 112.396 +-143.739 205.935 112.292 +-143.926 202.221 110.267 +-143.943 198.371 108.167 +-143.567 194.094 105.835 +-144.497 191.668 104.513 +-144.328 187.862 102.437 +-143.414 183.203 99.8968 +-143.624 180.084 98.1958 +-147.15 181.121 98.7612 +-150.355 181.691 99.0724 +-681.072 808.089 440.634 +-702.318 818.266 446.183 +-707.99 810.068 441.713 +-712.628 800.807 436.663 +-717.884 792.363 432.059 +-721.579 782.329 426.588 +-727.165 774.467 422.301 +-732.778 766.715 418.073 +-738.682 759.336 414.05 +-737.673 745.033 406.251 +-728.021 722.454 393.939 +-731.226 713 388.784 +-736.934 706.075 385.008 +-740.718 697.384 380.269 +-746.727 690.855 376.708 +-749.953 681.823 371.784 +-756.001 675.425 368.295 +-759.786 667.062 363.735 +-766.174 661.031 360.446 +-770.125 652.94 356.034 +-775.643 646.23 352.375 +-779.623 638.286 348.044 +-785.422 631.873 344.547 +-789.666 624.246 340.388 +-795.691 618.056 337.013 +-799.237 609.978 332.608 +-804.89 603.546 329.101 +-809.249 596.171 325.079 +-816.147 590.674 322.082 +-819.811 582.852 317.817 +-826.356 577.095 314.678 +-830.563 569.715 310.653 +-836.432 563.49 307.259 +-841.522 556.743 303.58 +-847.989 550.902 300.395 +-867.994 553.673 301.906 +-891.701 558.421 304.495 +-898.118 552.122 301.06 +-903.077 544.922 297.134 +-908.459 537.983 293.35 +-912.104 530.033 289.016 +-913.732 520.968 284.073 +-910.778 509.419 277.775 +-909.192 498.792 271.981 +-909.255 489.193 266.746 +-914.083 482.208 262.938 +-922.029 476.835 260.008 +-384.429 194.863 106.255 +-383.653 190.57 103.914 +-382.209 186.006 101.425 +-381.758 181.982 99.2309 +-381.963 178.308 97.2274 +-378.488 172.983 94.3238 +-382.776 171.232 93.3693 +-382.584 167.471 91.3184 +-382.796 163.917 89.3804 +-383.508 160.6 87.5718 +-136.399 55.8418 30.4493 +-383.185 153.316 83.5997 +-382.593 149.553 81.5479 +-381.68 145.705 79.4501 +-381.917 142.33 77.6094 +-1082.32 393.602 214.623 +-3037.92 1077.61 587.597 +-381.378 131.895 71.9196 +-380.434 128.213 69.9118 +-381.694 125.294 68.32 +-380.669 121.643 66.3294 +-382.241 118.84 64.8008 +-1140.86 344.89 188.061 +-382.08 112.24 61.2022 +-380.993 108.684 59.2633 +-382.917 105.999 57.7989 +-386.347 103.703 56.547 +-1245.51 323.911 176.622 +-382.871 96.3878 52.5582 +-380.923 92.7469 50.5729 +-379.995 89.3931 48.7441 +-379.998 86.2809 47.0471 +-379.58 83.09 45.3072 +-379.808 80.0558 43.6527 +-379.907 77.0045 41.9889 +-383.099 74.566 40.6592 +-381.478 71.1899 38.8184 +-381.289 68.107 37.1373 +-381.951 65.1831 35.543 +-381.995 62.1583 33.8936 +-380.234 58.8634 32.097 +-381.002 55.9769 30.523 +-382.235 53.1518 28.9826 +-380.573 49.9358 27.229 +-380.758 46.9815 25.618 +-379.426 43.8562 23.9139 +-380.542 41.0224 22.3687 +-380.041 38.0159 20.7292 +-381.001 35.1578 19.1708 +-381.635 32.2627 17.5922 +-380.447 29.2227 15.9345 +-380.723 26.3068 14.3445 +-380.371 23.3521 12.7334 +-379.291 20.3673 11.1058 +-377.682 17.3779 9.47581 +-379.439 14.5448 7.93098 +-378.969 11.6188 6.33551 +-378.97 8.7126 4.7508 +-145.878 2.23556 1.219 +-144.694 1.10863 0.604511 +97 0 0 +97.0963 0.747566 0.398925 +96.9852 1.49353 0.796996 +96.9668 2.24016 1.19542 +97.0408 2.98969 1.5954 +97.0076 3.73669 1.99402 +96.8671 4.47879 2.39002 +97.8172 5.27825 2.81664 +96.8635 5.97574 3.18885 +96.8007 6.72127 3.58668 +97.7267 7.54316 4.02527 +97.5488 8.28681 4.4221 +96.5681 8.95451 4.77841 +97.37 9.78752 5.22293 +97.3688 10.5476 5.62852 +97.2607 11.2968 6.02832 +97.0463 12.0329 6.42115 +96.9236 12.7796 6.81958 +96.6947 13.5115 7.21015 +97.445 14.3865 7.67708 +96.2157 14.9676 7.9872 +96.9489 15.8525 8.4594 +96.7884 16.5984 8.85741 +97.5025 17.5012 9.33917 +96.4454 18.0861 9.65131 +96.2628 18.8279 10.0472 +96.9498 19.7469 10.5376 +96.7508 20.4926 10.9355 +96.5444 21.2367 11.3326 +97.202 22.178 11.8349 +96.979 22.9255 12.2338 +96.7485 23.6712 12.6317 +97.3758 24.6341 13.1455 +97.1284 25.3829 13.5451 +96.8737 26.1297 13.9436 +96.6115 26.8745 14.3411 +97.0078 27.8081 14.8393 +96.9187 28.6098 15.2671 +97.2939 29.556 15.772 +98.0347 30.6279 16.344 +97.6341 31.3513 16.7301 +97.2266 32.0709 17.114 +97.7459 33.1027 17.6647 +97.4147 33.8541 18.0656 +97.0761 34.6027 18.4651 +97.5617 35.6527 19.0254 +97.2053 36.4024 19.4255 +97.7586 37.5013 20.0119 +97.4753 38.2883 20.4319 +97.0929 39.0373 20.8316 +96.8843 39.8579 21.2695 +97.2987 40.9441 21.8491 +97.5192 41.9624 22.3925 +97.1004 42.7116 22.7923 +97.4761 43.818 23.3827 +97.039 44.5668 23.7823 +97.2125 45.6021 24.3347 +96.7578 46.3488 24.7332 +96.9953 47.4342 25.3124 +97.3058 48.5702 25.9186 +96.8216 49.3174 26.3173 +97.0194 50.4192 26.9053 +96.517 51.1642 27.3029 +96.7747 52.3202 27.9197 +96.0838 52.9698 28.2664 +96.99 54.5134 29.0901 +96.531 55.3061 29.5131 +96.564 56.388 30.0904 +96.8316 57.6226 30.7492 +96.2579 58.3659 31.1459 +96.3323 59.5096 31.7562 +96.3913 60.6588 32.3695 +96.5157 61.8654 33.0133 +96.5432 63.0259 33.6326 +96.4752 64.1385 34.2263 +96.4718 65.3084 34.8507 +96.6101 66.5918 35.5355 +95.8695 67.2781 35.9018 +96.5215 68.9576 36.798 +95.8358 69.698 37.1931 +95.8322 70.9436 37.8578 +95.8112 72.1944 38.5252 +96.4519 73.9711 39.4733 +95.6416 74.6525 39.8369 +96.1629 76.3895 40.7639 +95.9935 77.6037 41.4118 +95.8805 78.8814 42.0936 +95.822 80.2238 42.81 +96.3196 82.0617 43.7907 +95.5756 82.8619 44.2177 +95.9544 84.6552 45.1747 +95.1835 85.4536 45.6008 +95.585 87.3255 46.5997 +94.0981 87.4821 46.6832 +93.0928 88.0742 46.9992 +92.8261 89.373 47.6923 +92.4738 90.6091 48.3519 +92.7005 92.4406 49.3292 +92.1763 93.5505 49.9215 +92.2866 95.3299 50.8711 +92.3043 97.0503 51.7891 +92.4222 98.9145 52.7839 +92.3842 100.651 53.7104 +92.3812 102.463 54.6775 +92.4108 104.352 55.6854 +91.8621 105.62 56.362 +92.3184 108.085 57.6774 +92.0786 109.784 58.5841 +92.2823 112.059 59.7983 +92.506 114.417 61.0567 +92.1164 116.064 61.9357 +91.5312 117.496 62.6998 +91.9313 120.245 64.1663 +91.18 121.536 64.8555 +91.4994 124.305 66.3334 +91.3409 126.493 67.5009 +91.4111 129.062 68.8714 +91.0192 131.04 69.9269 +91.2647 134.004 71.5088 +91.3569 136.83 73.0167 +91.15 139.285 74.327 +93.5605 145.895 77.8541 +93.0834 148.153 79.0589 +93.3323 151.655 80.9279 +93.1432 154.549 82.4721 +93.227 157.998 84.313 +92.8411 160.754 85.7837 +92.8538 164.306 87.6787 +92.7593 167.789 89.5378 +92.6029 171.284 91.4026 +92.7647 175.509 93.6573 +92.2278 178.544 95.2768 +91.8818 182.069 97.1576 +90.3964 183.417 97.877 +88.735 184.43 98.4179 +87.8641 187.144 99.8661 +91.8535 200.574 107.032 +91.8086 205.625 109.728 +89.377 205.417 109.617 +86.8865 205.023 109.407 +84.479 204.772 109.273 +81.983 204.251 108.995 +80.0572 205.124 109.461 +77.581 204.561 109.16 +75.462 204.899 109.341 +73.1317 204.631 109.198 +70.754 204.174 108.954 +68.5045 204.034 108.879 +66.4837 204.553 109.156 +64.351 204.718 109.244 +62.0648 204.353 109.049 +59.8408 204.14 108.935 +57.7709 204.422 109.086 +55.5133 204.001 108.862 +53.4484 204.248 108.993 +51.3178 204.222 108.979 +49.1919 204.178 108.956 +46.9711 203.684 108.692 +44.9737 204.125 108.927 +42.8982 204.202 108.969 +40.8247 204.264 109.002 +38.7697 204.396 109.072 +36.7465 204.688 109.228 +34.6022 204.265 109.002 +32.5804 204.523 109.14 +30.4257 203.892 108.803 +28.3956 204.03 108.877 +26.2518 203.277 108.475 +24.2715 203.735 108.719 +22.2554 203.914 108.815 +20.1853 203.55 108.621 +18.0848 202.73 108.183 +16.1416 203.654 108.676 +14.1205 203.683 108.692 +12.0634 203.078 108.369 +10.0543 203.164 108.415 +8.03735 203.057 108.358 +6.0207 202.846 108.245 +4.03151 203.767 108.737 +2.00361 202.555 108.09 +1.41136e-14 203.357 108.518 +-2.01408 203.614 108.655 +-4.02802 203.591 108.643 +-6.03902 203.464 108.575 +-8.05131 203.409 108.546 +-10.0674 203.428 108.556 +-12.0477 202.815 108.228 +-14.0961 203.33 108.503 +-16.0998 203.126 108.394 +-18.1162 203.082 108.371 +-20.2027 203.726 108.715 +-22.2266 203.65 108.674 +-24.2088 203.208 108.438 +-26.1952 202.839 108.241 +-28.2249 202.805 108.223 +-30.256 202.755 108.196 +-32.2882 202.688 108.161 +-34.3657 202.868 108.257 +-36.371 202.597 108.112 +-38.4396 202.657 108.144 +-40.5816 203.048 108.353 +-42.4609 202.12 107.858 +-44.5921 202.392 108.003 +-46.5923 202.041 107.815 +-48.6721 202.02 107.804 +-50.885 202.499 108.06 +-53.0435 202.701 108.168 +-55.0464 202.285 107.946 +-57.2387 202.538 108.081 +-59.2399 202.09 107.842 +-61.4695 202.393 108.003 +-63.4691 201.912 107.747 +-65.7119 202.179 107.889 +-67.9081 202.258 107.931 +-70.1984 202.571 108.098 +-72.3197 202.359 107.985 +-74.5967 202.55 108.087 +-76.9146 202.805 108.223 +-79.1131 202.705 108.17 +-81.0149 201.839 107.708 +-83.7949 203.115 108.388 +-85.7308 202.296 107.951 +-88.0868 202.452 108.035 +-90.3426 202.341 107.975 +-92.7526 202.538 108.08 +-95.3264 203.038 108.347 +-97.6437 202.946 108.298 +-99.8866 202.673 108.153 +-102.01 202.137 107.867 +-104.461 202.227 107.915 +-107.261 202.935 108.292 +-109.393 202.34 107.975 +-111.522 201.728 107.648 +-114.227 202.125 107.86 +-116.676 202.024 107.806 +-119.547 202.605 108.116 +-122.016 202.455 108.037 +-124.348 202.051 107.821 +-126.778 201.781 107.677 +-129.409 201.795 107.684 +-131.95 201.631 107.597 +-137.949 206.614 110.256 +-140.554 206.375 110.128 +-143.269 206.263 110.069 +-144.085 203.431 108.557 +-143.943 199.339 106.373 +-143.839 195.411 104.277 +-144.276 192.31 102.623 +-144.048 188.412 100.543 +-143.527 184.242 98.3176 +-143.681 181.035 96.6058 +-149.125 184.446 98.4264 +-151.472 183.934 98.1529 +-687.913 820.187 437.678 +-703.883 824.09 439.76 +-710.546 816.959 435.955 +-713.983 806.244 430.237 +-720 798.576 426.146 +-723.593 788.339 420.683 +-729.264 780.493 416.496 +-736.506 774.375 413.231 +-738.942 763.308 407.326 +-733.933 744.873 397.488 +-728.948 726.903 387.899 +-733.033 718.248 383.28 +-738.555 711.081 379.456 +-742.833 702.786 375.029 +-748.654 696.017 371.417 +-752.523 687.498 366.871 +-758.384 680.86 363.329 +-762.261 672.5 358.867 +-767.743 665.617 355.194 +-772.067 657.781 351.013 +-777.674 651.083 347.438 +-781.598 643.025 343.139 +-787.412 636.565 339.691 +-791.969 629.121 335.719 +-797.863 622.766 332.328 +-801.577 614.747 328.049 +-807.627 608.553 324.743 +-811.931 601.065 320.747 +-818.154 595.015 317.519 +-822.609 587.694 313.612 +-828.391 581.339 310.221 +-832.77 574.015 306.313 +-839.13 568.065 303.138 +-842.481 560.097 298.885 +-857.072 559.519 298.577 +-885.388 567.523 302.848 +-892.759 561.812 299.801 +-899.183 555.474 296.418 +-904.396 548.38 292.633 +-908.874 540.853 288.617 +-914.189 533.836 284.872 +-912.977 523.077 279.13 +-909.935 511.43 272.916 +-908.684 500.945 267.32 +-910.62 492.317 262.716 +-916.483 485.833 259.256 +-924.873 480.639 256.484 +-384.255 195.726 104.445 +-382.434 190.892 101.866 +-382.121 186.871 99.7201 +-383.34 183.628 97.9895 +-379.226 177.894 94.9298 +-381.415 175.171 93.4769 +-383.4 172.348 91.9704 +-381.511 167.815 89.5515 +-382.347 164.523 87.7949 +-382.606 161.004 85.9169 +-137.215 56.4498 30.1234 +-384.641 154.649 82.5258 +-382.136 150.103 80.0998 +-381.956 146.522 78.1889 +-381.549 142.886 76.2487 +-1106.16 404.233 215.711 +-1115.22 397.519 212.129 +-380.913 132.377 70.6406 +-380.061 128.712 68.685 +-380.383 125.472 66.9557 +-381.703 122.569 65.4068 +-381.77 119.272 63.6475 +-386.717 117.477 62.6894 +-381.89 112.732 60.1575 +-383.561 109.951 58.6735 +-382.917 106.516 56.8403 +-385.773 104.054 55.5268 +-1255.29 328.047 175.056 +-382.102 96.6639 51.5829 +-381.501 93.3414 49.8099 +-379.705 89.7612 47.8994 +-380.579 86.8343 46.3375 +-380.55 83.7089 44.6697 +-380.294 80.5493 42.9837 +-379.907 77.3802 41.2925 +-381.927 74.7006 39.8626 +-382.26 71.684 38.2528 +-382.465 68.6503 36.634 +-382.246 65.5516 34.9804 +-381.11 62.3168 33.2542 +-382.007 59.4263 31.7117 +-381.693 56.3519 30.0712 +-381.05 53.2455 28.4135 +-380.87 50.2185 26.7982 +-382.541 47.4317 25.3111 +-381.012 44.2544 23.6156 +-380.939 41.2656 22.0206 +-381.631 38.3612 20.4707 +-381.399 35.3662 18.8725 +-380.839 32.3524 17.2643 +-380.148 29.3422 15.6579 +-379.427 26.3451 14.0586 +-379.473 23.4107 12.4927 +-379.291 20.4666 10.9217 +-378.98 17.5227 9.35066 +-379.738 14.6273 7.80561 +-379.569 11.694 6.24027 +-379.87 8.77589 4.68309 +-146.578 2.25724 1.20453 +-145.894 1.12327 0.599414 +97 0 0 +97.0963 0.751135 0.392165 +96.9852 1.50066 0.78349 +97.0667 2.25317 1.17637 +97.0408 3.00397 1.56836 +97.1075 3.75839 1.96224 +96.8671 4.50017 2.34952 +96.9189 5.25474 2.74348 +96.8635 6.00427 3.13481 +97.7976 6.8229 3.56221 +97.6271 7.57144 3.95302 +97.5488 8.32636 4.34717 +97.4631 9.08067 4.74098 +97.4694 9.84426 5.13965 +97.2695 10.5871 5.52749 +97.2607 11.3507 5.92616 +97.0463 12.0904 6.31233 +96.9236 12.8406 6.70401 +96.6947 13.576 7.08796 +96.5574 14.3235 7.47826 +97.102 15.1776 7.92418 +96.7523 15.8959 8.2992 +96.5921 16.6437 8.68963 +96.6206 17.4257 9.09788 +96.4454 18.1724 9.48775 +97.1415 19.0904 9.96704 +96.9498 19.8412 10.359 +96.7508 20.5904 10.7502 +96.5444 21.338 11.1405 +96.5243 22.1285 11.5532 +96.979 23.0349 12.0264 +96.7485 23.7842 12.4176 +97.3758 24.7517 12.9228 +96.2655 25.2774 13.1972 +96.6824 26.2025 13.6803 +96.6115 27.0027 14.098 +97.0078 27.9408 14.5878 +97.9618 29.0559 15.17 +97.2939 29.6971 15.5048 +96.9035 30.419 15.8816 +97.6341 31.501 16.4465 +97.2266 32.224 16.824 +97.7459 33.2608 17.3653 +97.4147 34.0157 17.7595 +97.1689 34.8012 18.1696 +97.6541 35.8567 18.7207 +97.2974 36.6109 19.1144 +97.025 37.3975 19.5251 +97.4753 38.4711 20.0856 +97.2749 39.2972 20.5169 +97.5187 40.3104 21.0459 +97.2987 41.1396 21.4788 +96.89 41.8907 21.871 +97.1004 42.9155 22.406 +97.4761 44.0272 22.9864 +97.039 44.7795 23.3792 +97.2125 45.8198 23.9223 +96.6699 46.5278 24.292 +97.0828 47.7036 24.9059 +96.5224 48.4091 25.2742 +96.8216 49.5528 25.8714 +97.0194 50.6598 26.4493 +96.517 51.4084 26.8402 +96.7747 52.57 27.4466 +96.8471 53.6454 28.0081 +96.99 54.7736 28.5971 +96.4471 55.5218 28.9877 +96.6474 56.7061 29.606 +96.0026 57.4019 29.9694 +96.2579 58.6445 30.6181 +96.2504 59.7428 31.1915 +96.2285 60.8455 31.7672 +96.273 62.0043 32.3722 +96.3824 63.2213 33.0076 +95.9161 64.0712 33.4513 +96.4718 65.6202 34.2601 +96.4525 66.8006 34.8763 +95.8695 67.5993 35.2933 +96.5215 69.2867 36.1744 +95.8358 70.0307 36.5628 +95.9088 71.3392 37.246 +96.3434 72.942 38.0828 +96.3764 74.266 38.774 +96.3157 75.5374 39.4378 +96.2373 76.8134 40.104 +96.0672 78.0341 40.7413 +95.9536 79.3184 41.4118 +95.822 80.6068 42.0845 +95.7441 81.9607 42.7914 +95.5756 83.2574 43.4684 +95.4594 84.6205 44.18 +95.9545 86.557 45.1911 +95.5155 87.6785 45.7767 +93.4786 87.321 45.59 +93.161 88.5594 46.2366 +92.8261 89.7997 46.8841 +92.5408 91.1072 47.5667 +93.2969 93.4793 48.8052 +92.3075 94.1309 49.1454 +92.1567 95.6503 49.9387 +92.4329 97.6492 50.9823 +92.3586 99.3184 51.8538 +92.4472 101.2 52.8363 +91.8832 102.397 53.4611 +91.8567 104.221 54.4136 +91.8621 106.124 55.4068 +92.0777 108.317 56.5518 +92.257 110.521 57.7028 +92.3411 112.666 58.8224 +92.4479 114.891 59.9841 +92.059 116.546 60.8481 +91.5312 118.057 61.6372 +91.8195 120.671 63.0021 +91.6767 122.781 64.1036 +90.9547 124.155 64.8209 +91.6633 127.546 66.5912 +91.3051 129.528 67.6261 +91.0192 131.665 68.7419 +91.3163 134.72 70.3368 +91.8644 138.247 72.1783 +90.85 139.49 72.8272 +93.5112 146.514 76.4945 +93.0834 148.86 77.7191 +93.3323 152.379 79.5565 +93.0962 155.209 81.0338 +93.1809 158.675 82.8434 +92.8411 161.522 84.33 +92.4968 164.455 85.8614 +92.7593 168.59 88.0205 +92.6029 172.102 89.8537 +92.4266 175.704 91.7346 +92.601 180.122 94.0412 +91.5157 182.209 95.1307 +90.5958 184.698 96.4303 +88.696 185.229 96.7075 +88.5529 189.512 98.9434 +91.891 201.614 105.262 +91.3321 205.533 107.308 +89.0186 205.57 107.327 +86.6063 205.338 107.206 +84.3422 205.416 107.247 +81.983 205.226 107.148 +79.7642 205.349 107.212 +77.232 204.613 106.828 +75.1529 205.034 107.048 +72.8309 204.762 106.906 +70.6662 204.894 106.975 +68.5329 205.093 107.078 +66.2357 204.763 106.906 +64.0838 204.841 106.947 +61.806 204.472 106.754 +59.7907 204.943 107 +57.529 204.537 106.788 +55.2799 204.112 106.566 +53.2909 204.619 106.831 +51.3395 205.283 107.177 +49.1711 205.065 107.064 +46.9711 204.656 106.85 +44.9355 204.924 106.99 +42.8071 204.742 106.895 +40.8247 205.239 107.155 +38.6376 204.673 106.859 +36.59 204.789 106.92 +34.4692 204.45 106.743 +32.4412 204.621 106.832 +30.3343 204.25 106.638 +28.3224 204.477 106.757 +26.2631 204.336 106.683 +24.282 204.795 106.923 +22.2075 204.446 106.74 +20.1766 204.433 106.734 +18.0613 203.433 106.211 +16.0789 203.831 106.419 +14.0167 203.151 106.064 +12.0582 203.959 106.486 +10.0281 203.602 106.3 +8.04433 204.204 106.614 +6.02332 203.903 106.457 +4.02103 204.208 106.616 +2.00361 203.522 106.258 +1.41258e-14 204.505 106.771 +-2.00536 203.699 106.351 +-4.01231 203.765 106.385 +-6.01808 203.726 106.365 +-8.03037 203.849 106.429 +-10.0281 203.602 106.3 +-12.0739 204.225 106.625 +-14.0412 203.504 106.249 +-16.1068 204.184 106.604 +-18.1241 204.14 106.581 +-20.1417 204.081 106.55 +-22.15 203.917 106.464 +-24.2192 204.267 106.647 +-26.2631 204.336 106.683 +-28.2737 204.125 106.573 +-30.1646 203.107 106.042 +-32.2603 203.48 106.236 +-34.2474 203.136 106.056 +-36.371 203.564 106.28 +-38.3075 202.925 105.946 +-40.46 203.406 106.198 +-42.4609 203.085 106.03 +-44.5921 203.358 106.173 +-46.4328 202.31 105.625 +-48.6721 202.984 105.977 +-50.6685 202.6 105.777 +-52.931 203.237 106.109 +-54.953 202.906 105.936 +-57.021 202.731 105.845 +-59.0646 202.454 105.7 +-61.2883 202.76 105.86 +-63.4424 202.791 105.876 +-65.7119 203.144 106.061 +-67.7093 202.629 105.792 +-70.2277 203.622 106.31 +-72.2596 203.156 106.067 +-74.5967 203.517 106.255 +-76.5973 202.932 105.95 +-78.8201 202.918 105.943 +-81.0817 202.97 105.97 +-83.5213 203.417 106.204 +-85.4506 202.597 105.775 +-88.051 203.336 106.161 +-90.3792 203.389 106.189 +-92.6027 203.175 106.077 +-94.7141 202.697 105.827 +-97.3702 203.344 106.165 +-99.6075 203.071 106.023 +-102.01 203.102 106.039 +-104.254 202.789 105.875 +-106.922 203.261 106.122 +-109.135 202.825 105.894 +-111.478 202.611 105.782 +-114.271 203.169 106.074 +-116.312 202.356 105.65 +-118.762 202.235 105.586 +-121.499 202.561 105.756 +-123.918 202.315 105.628 +-126.778 202.744 105.852 +-129.36 202.681 105.819 +-131.5 201.903 105.413 +-137.086 206.301 107.709 +-140.09 206.677 107.905 +-142.747 206.492 107.809 +-144.297 204.703 106.875 +-143.405 199.542 104.18 +-144.057 196.641 102.665 +-144.387 193.376 100.961 +-143.489 188.576 98.4551 +-143.244 184.757 96.4608 +-144.771 183.278 95.6888 +-150.46 186.986 97.6248 +-163.11 199.011 103.903 +-701.772 840.705 438.929 +-706.471 831.067 433.897 +-712.799 823.461 429.926 +-715.891 812.258 424.077 +-722.677 805.371 420.481 +-725.103 793.757 414.417 +-733.144 788.39 411.616 +-737.984 779.634 407.044 +-737.513 765.469 399.649 +-728.882 743.276 388.062 +-731.069 732.498 382.435 +-734.839 723.455 377.713 +-740.717 716.567 374.117 +-744.265 707.503 369.385 +-750.857 701.397 366.197 +-754.468 692.565 361.586 +-760.627 686.133 358.228 +-764.029 677.277 353.604 +-770.025 670.782 350.213 +-773.866 662.459 345.868 +-780.068 656.204 342.602 +-783.792 647.908 338.271 +-789.771 641.52 334.935 +-793.976 633.726 330.866 +-800.184 627.56 327.647 +-804.294 619.776 323.583 +-810.365 613.531 320.322 +-813.999 605.472 316.115 +-820.931 599.885 313.198 +-824.008 591.503 308.822 +-830.895 585.879 305.886 +-835.055 578.337 301.948 +-841.193 572.18 298.733 +-845.356 564.69 294.823 +-865.754 567.884 296.49 +-884.903 569.92 297.553 +-895.608 566.295 295.661 +-900.903 559.193 291.952 +-909.176 553.909 289.194 +-912.19 545.418 284.761 +-914.272 536.433 280.07 +-912.138 525.091 274.148 +-908.586 513.109 267.893 +-907.327 502.585 262.398 +-913.945 496.473 259.207 +-919.055 489.522 255.578 +-927.888 484.508 252.96 +-384.862 196.97 102.837 +-382.086 191.629 100.049 +-382.821 188.107 98.2098 +-383.34 184.504 96.3289 +-378.255 178.286 93.0823 +-378.488 174.656 91.1875 +-382.242 172.648 90.1388 +-383.837 169.644 88.5707 +-383.515 165.814 86.5709 +-383.418 162.116 84.6401 +-136.49 56.4196 29.4565 +-142.227 57.457 29.9981 +-383.415 151.324 79.0058 +-383.515 147.823 77.1776 +-382.194 143.811 75.0834 +-1113.27 408.775 213.42 +-1115.96 399.681 208.672 +-382.309 133.496 69.6976 +-381.181 129.708 67.72 +-381.226 126.35 65.9669 +-381.985 123.245 64.3456 +-382.901 120.196 62.754 +-381.8 116.537 60.8435 +-381.226 113.073 59.0348 +-382.99 110.311 57.5932 +-383.108 107.078 55.9053 +-383.765 104.007 54.3016 +-383.911 100.808 52.6313 +-381.14 96.8807 50.581 +-381.501 93.7869 48.9658 +-380.092 90.281 47.1354 +-380.095 87.1378 45.4943 +-379.677 83.9154 43.8119 +-380.002 80.8716 42.2228 +-381.174 78.0088 40.7281 +-382.22 75.1147 39.2171 +-380.793 71.7497 37.4602 +-381.583 68.819 35.9301 +-381.853 65.7969 34.3523 +-380.421 62.5012 32.6316 +-380.825 59.5253 31.0779 +-381.693 56.6209 29.5616 +-380.951 53.4859 27.9248 +-380.672 50.432 26.3304 +-379.372 47.2633 24.676 +-379.823 44.3268 23.1429 +-380.542 41.4193 21.6249 +-379.942 38.3737 20.0348 +-379.211 35.3312 18.4463 +-381.934 32.6003 17.0205 +-379.152 29.405 15.3523 +-380.424 26.5405 13.8567 +-379.473 23.5224 12.281 +-380.389 20.6239 10.7677 +-379.18 17.6156 9.19706 +-379.439 14.6855 7.66727 +-381.168 11.7993 6.16039 +-379.57 8.81082 4.6001 +-145.078 2.24481 1.172 +-144.694 1.11935 0.58441 +97 0 0 +97.0963 0.754642 0.385373 +97.0852 1.50923 0.770716 +96.9668 2.26136 1.15481 +97.8404 3.04286 1.55389 +97.0076 3.77206 1.92627 +96.9669 4.52584 2.31121 +96.9189 5.27927 2.69596 +96.8635 6.03231 3.08051 +96.9004 6.79187 3.4684 +96.8301 7.5447 3.85285 +96.7525 8.29696 4.237 +97.5626 9.13233 4.6636 +97.4694 9.89023 5.05063 +97.3688 10.6474 5.4373 +97.2607 11.4037 5.82352 +97.0463 12.1468 6.203 +97.0225 12.9137 6.59463 +96.6947 13.6394 6.9652 +96.3601 14.361 7.33372 +96.2157 15.1093 7.71585 +96.9489 16.0026 8.17201 +96.7884 16.7555 8.5565 +96.6206 17.507 8.9403 +96.4454 18.2573 9.32342 +96.2628 19.0061 9.70582 +96.9498 19.9338 10.1796 +96.7508 20.6865 10.564 +96.5444 21.4377 10.9476 +97.202 22.3879 11.4328 +96.979 23.1424 11.8181 +96.7485 23.8953 12.2026 +96.5107 24.6463 12.5861 +97.1284 25.6231 13.0849 +96.6824 26.3249 13.4433 +97.2791 27.3163 13.9496 +97.198 28.1263 14.3632 +96.729 28.8242 14.7196 +97.2939 29.8358 15.2362 +96.9978 30.5908 15.6218 +97.5401 31.6176 16.1461 +97.2266 32.3744 16.5326 +96.999 33.1607 16.9342 +97.4147 34.1745 17.4519 +97.9106 35.2306 17.9912 +96.7302 35.6834 18.2224 +97.2974 36.7818 18.7833 +97.025 37.5721 19.1869 +97.4753 38.6507 19.7377 +98.0938 39.813 20.3313 +97.5187 40.4986 20.6814 +98.111 41.6768 21.283 +97.5192 42.3596 21.6317 +97.1004 43.1159 22.018 +97.4761 44.2328 22.5883 +97.039 44.9886 22.9743 +97.1242 45.992 23.4867 +96.7578 46.7875 23.893 +96.9953 47.8832 24.4524 +96.6095 48.679 24.8589 +96.8216 49.7842 25.4233 +97.1056 50.9416 26.0143 +97.2885 52.0613 26.5861 +96.6041 52.7224 26.9237 +96.8471 53.8959 27.523 +96.231 54.5987 27.8819 +96.4471 55.781 28.4856 +96.6474 56.9709 29.0933 +96.0855 57.7199 29.4757 +96.2579 58.9183 30.0878 +96.2504 60.0218 30.6513 +96.3913 61.233 31.2698 +96.4348 62.3986 31.865 +96.5432 63.6224 32.49 +95.7564 64.2631 32.8172 +96.4718 65.9266 33.6667 +96.5313 67.1673 34.3003 +95.8695 67.9149 34.6821 +95.8221 69.1058 35.2902 +96.4531 70.811 36.161 +95.9088 71.6723 36.6009 +95.7351 72.8199 37.1869 +96.4519 74.6712 38.1323 +96.2408 75.8312 38.7246 +96.2373 77.1721 39.4094 +96.0672 78.3985 40.0357 +95.8805 79.628 40.6636 +95.7494 80.9219 41.3243 +95.8161 82.4053 42.0819 +95.5756 83.6462 42.7155 +96.0958 85.5824 43.7043 +95.4638 86.5165 44.1813 +94.8903 87.5114 44.6894 +93.4786 87.7287 44.8003 +93.161 88.9729 45.4357 +92.8261 90.219 46.072 +93.143 92.1284 47.0471 +92.8331 93.4492 47.7216 +92.2419 94.5027 48.2596 +92.5463 96.503 49.2811 +92.8828 98.5825 50.3431 +92.4222 99.8507 50.9907 +92.3842 101.603 51.8857 +91.9454 102.945 52.5707 +91.9183 104.778 53.5071 +91.8621 106.619 54.4472 +91.837 108.538 55.4273 +92.1975 110.966 56.667 +92.4586 113.335 57.8768 +92.3898 115.355 58.9083 +92.0017 117.017 59.7569 +91.9844 119.195 60.8694 +91.8195 121.235 61.9109 +91.3456 122.909 62.7659 +91.4994 125.482 64.0798 +91.9857 128.592 65.668 +91.3051 130.133 66.4548 +91.1237 132.431 67.6286 +90.9042 134.738 68.8065 +91.8644 138.893 70.9282 +91.4 140.989 71.9988 +93.5112 147.198 75.1696 +93.0834 149.555 76.373 +93.3323 153.09 78.1786 +93.0962 155.933 79.6303 +93.227 159.494 81.4486 +92.8865 162.355 82.9098 +92.8984 165.94 84.7404 +92.7593 169.378 86.4959 +92.646 172.985 88.3383 +92.4266 176.525 90.1457 +92.6425 181.044 92.4538 +91.5157 183.06 93.483 +90.0774 184.499 94.218 +88.5397 185.765 94.8647 +90.0837 193.687 98.9101 +91.891 202.555 103.439 +91.1122 205.996 105.196 +88.5886 205.532 104.959 +86.2561 205.462 104.923 +84.0343 205.622 105.005 +81.7827 205.68 105.034 +79.5037 205.635 105.011 +77.1368 205.315 104.848 +74.8748 205.229 104.804 +72.5904 205.039 104.707 +70.4616 205.254 104.817 +68.1637 204.941 104.657 +65.9876 204.949 104.661 +63.9501 205.368 104.875 +61.8319 205.514 104.949 +59.5153 204.952 104.662 +57.4565 205.233 104.806 +55.3266 205.239 104.809 +53.1559 205.054 104.715 +51.188 205.633 105.01 +48.984 205.239 104.809 +46.8714 205.175 104.777 +44.802 205.269 104.825 +42.6249 204.822 104.596 +40.6337 205.233 104.806 +38.4891 204.838 104.605 +36.4805 205.13 104.753 +34.3361 204.612 104.489 +32.316 204.783 104.576 +30.3473 205.292 104.836 +28.3102 205.343 104.862 +26.1839 204.67 104.519 +24.2088 205.131 104.754 +22.2075 205.4 104.892 +20.0545 204.146 104.251 +18.0299 204.028 104.191 +16.0858 204.87 104.621 +14.0045 203.921 104.136 +12.0216 204.289 104.324 +9.98448 203.663 104.004 +8.02339 204.623 104.495 +6.00499 204.232 104.295 +4.00882 204.538 104.451 +1.99663 203.76 104.054 +1.40769e-14 204.748 104.558 +-2.00623 204.74 104.554 +-4.00882 204.538 104.451 +-5.99452 203.877 104.113 +-7.99547 203.91 104.131 +-9.98448 203.663 104.004 +-12.032 204.467 104.415 +-13.9923 203.743 104.045 +-16.044 204.338 104.349 +-17.9828 203.495 103.918 +-20.0633 204.235 104.296 +-22.0637 204.071 104.213 +-24.1461 204.601 104.483 +-26.0594 203.697 104.022 +-28.164 204.282 104.32 +-30.1646 204.056 104.205 +-32.1351 203.637 103.991 +-34.1144 203.291 103.815 +-36.2615 203.898 104.124 +-38.1425 202.994 103.663 +-40.269 203.391 103.866 +-42.2786 203.158 103.746 +-44.4394 203.609 103.977 +-46.353 202.906 103.618 +-48.485 203.148 103.741 +-50.6036 203.285 103.811 +-52.661 203.145 103.74 +-54.6729 202.814 103.571 +-57.0694 203.851 104.1 +-58.9144 202.882 103.605 +-61.3142 203.793 104.071 +-63.2019 202.966 103.648 +-65.4639 203.323 103.831 +-67.5104 202.976 103.654 +-69.7891 203.296 103.817 +-71.9589 203.255 103.796 +-74.2877 203.62 103.982 +-76.2483 202.95 103.64 +-78.4945 203.024 103.678 +-80.8146 203.246 103.791 +-83.2135 203.614 103.979 +-85.4856 203.627 103.986 +-87.836 203.787 104.068 +-89.8295 203.096 103.715 +-92.378 203.629 103.987 +-94.3315 202.82 103.574 +-96.9795 203.473 103.907 +-99.2885 203.365 103.852 +-101.928 203.887 104.119 +-104.005 203.25 103.793 +-106.5 203.403 103.872 +-108.833 203.21 103.773 +-111.522 203.637 103.991 +-113.602 202.922 103.626 +-116.358 203.381 103.86 +-118.9 203.416 103.878 +-121.546 203.585 103.965 +-123.775 203.024 103.678 +-126.39 203.067 103.7 +-128.818 202.775 103.551 +-131.5 202.846 103.587 +-135.614 205.039 104.707 +-140.142 207.718 106.075 +-142.694 207.38 105.903 +-144.191 205.508 104.947 +-143.405 200.474 102.376 +-144.166 197.708 100.964 +-143.724 193.387 98.7569 +-143.489 189.457 96.7498 +-144.377 187.087 95.5396 +-147.925 188.146 96.0804 +-154.99 193.515 98.8219 +-682.36 836.435 427.142 +-705.46 849.069 433.593 +-709.119 838.078 427.98 +-714.564 829.355 423.526 +-718.969 819.559 418.524 +-725.416 812.198 414.764 +-727.62 800.231 408.653 +-737.66 796.951 406.978 +-740.17 785.593 401.178 +-731.473 762.745 389.51 +-728.619 746.478 381.203 +-734.779 739.654 377.718 +-737.85 729.812 372.692 +-744.365 723.458 369.448 +-747.402 713.803 364.517 +-753.748 707.386 361.24 +-756.552 697.721 356.304 +-763.921 692.323 353.548 +-766.433 682.581 348.573 +-773.092 676.599 345.518 +-776.599 667.904 341.078 +-783.114 661.843 337.983 +-786.132 652.877 333.404 +-793.163 647.284 330.548 +-796.428 638.651 326.14 +-803.629 633.204 323.358 +-807.011 624.773 319.052 +-813.558 618.824 316.014 +-817.446 610.875 311.955 +-824.095 605.009 308.959 +-826.806 596.283 304.503 +-834.965 591.498 302.06 +-838.049 583.122 297.782 +-844.128 576.857 294.583 +-848.311 569.311 290.729 +-873.551 575.675 293.979 +-889.029 575.25 293.762 +-897.969 570.439 291.306 +-905.245 564.511 288.278 +-910.165 557.101 284.494 +-913.019 548.463 280.083 +-913.689 538.593 275.043 +-911.132 526.961 269.103 +-908.164 515.266 263.13 +-908.26 505.451 258.118 +-917.185 500.56 255.621 +-922.055 493.412 251.97 +-930.818 488.307 249.364 +-384.429 197.667 100.943 +-383.218 193.093 98.6068 +-382.209 188.683 96.3546 +-383.428 185.407 94.6819 +-378.431 179.202 91.5128 +-378.931 175.678 89.7132 +-382.955 173.777 88.7426 +-382.137 169.681 86.651 +-381.808 165.846 84.6927 +-382.696 162.566 83.0176 +-136.852 56.8336 29.0232 +-136.585 55.4355 28.3092 +-383.506 152.067 77.656 +-382.781 148.229 75.6958 +-383.114 144.83 73.9603 +-382.948 141.268 72.1411 +-1116.79 401.849 205.212 +-382.216 134.087 68.4741 +-381.461 130.409 66.5958 +-380.757 126.784 64.7447 +-381.139 123.546 63.0911 +-380.639 120.044 61.3028 +-381.8 117.081 59.7897 +-381.795 113.771 58.0992 +-383.181 110.882 56.6238 +-381.201 107.042 54.6632 +-384.052 104.57 53.4007 +-381.802 100.722 51.4355 +-380.275 97.1122 49.5922 +-381.79 94.2961 48.1541 +-380.575 90.8183 46.3781 +-381.741 87.9237 44.8999 +-380.841 84.5657 43.1851 +-378.446 80.9166 41.3216 +-379.712 78.0725 39.8692 +-382.22 75.4655 38.5379 +-382.26 72.3625 36.9533 +-380.897 69.016 35.2443 +-380.773 65.9171 33.6619 +-381.995 63.0527 32.1991 +-381.613 59.9269 30.6028 +-381.693 56.8853 29.0496 +-380.458 53.666 27.4055 +-380.672 50.6675 25.8743 +-382.045 47.8187 24.4195 +-380.12 44.5686 22.7598 +-380.84 41.6453 21.267 +-380.737 38.6335 19.729 +-381.399 35.701 18.2314 +-381.336 32.7013 16.6995 +-380.845 29.6742 15.1537 +-380.224 26.6504 13.6095 +-380.97 23.7254 12.1158 +-379.89 20.693 10.5673 +-381.077 17.7864 9.08297 +-379.439 14.7541 7.53447 +-378.869 11.7829 6.01717 +-380.869 8.88227 4.5359 +-143.778 2.23509 1.14139 +-145.294 1.12925 0.576671 +97 0 0 +97.0963 0.758088 0.378549 +96.9852 1.51455 0.756287 +97.8665 2.29277 1.14488 +96.9409 3.02865 1.51235 +97.0076 3.78928 1.89217 +96.8671 4.54183 2.26795 +96.9189 5.30338 2.64823 +97.7613 6.11602 3.05401 +96.9004 6.82288 3.40698 +97.7267 7.64933 3.81967 +97.6484 8.41202 4.20052 +97.5626 9.17403 4.58102 +97.37 9.92528 4.95616 +97.2695 10.6851 5.33558 +96.3684 11.3507 5.66791 +97.0463 12.2023 6.09317 +96.9236 12.9594 6.47125 +96.6947 13.7016 6.84187 +97.2478 14.5594 7.27021 +96.2157 15.1783 7.57922 +96.9489 16.0756 8.02731 +96.7884 16.832 8.40499 +96.6206 17.587 8.782 +96.4454 18.3406 9.15834 +96.2628 19.0929 9.53396 +96.0729 19.8438 9.90891 +96.7508 20.781 10.3769 +96.5444 21.5356 10.7537 +96.3307 22.2885 11.1297 +96.979 23.2481 11.6089 +96.7485 24.0044 11.9865 +97.3758 24.9808 12.4741 +97.1284 25.7401 12.8532 +96.8737 26.4974 13.2314 +96.6115 27.2527 13.6086 +97.198 28.2547 14.1089 +96.9187 29.0125 14.4873 +97.2939 29.972 14.9664 +96.9978 30.7304 15.3451 +97.6341 31.7926 15.8755 +97.2266 32.5223 16.2399 +96.9056 33.2801 16.6183 +97.4147 34.3306 17.1428 +97.9106 35.3914 17.6726 +97.5617 36.1545 18.0536 +97.2974 36.9498 18.4507 +96.9332 37.708 18.8294 +97.4753 38.8272 19.3882 +97.0929 39.5868 19.7675 +97.7 40.7591 20.3529 +97.0279 41.4048 20.6754 +97.5192 42.553 21.2487 +97.1004 43.3128 21.6281 +97.4761 44.4348 22.1884 +96.9503 45.1527 22.5469 +96.5062 45.9079 22.924 +96.7578 47.0012 23.4699 +97.0828 48.1452 24.0411 +96.6095 48.9013 24.4187 +96.8216 50.0115 24.9731 +97.0194 51.1288 25.531 +97.2885 52.299 26.1153 +96.7747 53.0566 26.4936 +96.8471 54.142 27.0356 +96.99 55.2806 27.6042 +96.531 56.0845 28.0056 +96.6474 57.231 28.5781 +96.7487 58.3836 29.1537 +96.2579 59.1874 29.555 +96.2504 60.2958 30.1085 +96.3913 61.5126 30.7161 +96.4348 62.6835 31.3008 +95.8197 63.434 31.6756 +96.4752 65.0412 32.4781 +95.8371 65.7919 32.853 +96.5313 67.474 33.6929 +96.4956 68.6707 34.2905 +96.5215 69.9281 34.9184 +95.8358 70.679 35.2933 +95.8322 71.9421 35.924 +95.8112 73.2105 36.5574 +95.6972 74.4253 37.164 +96.3157 76.2366 38.0685 +96.2373 77.5245 38.7116 +96.0672 78.7565 39.3268 +96.0267 80.1137 40.0045 +95.822 81.3529 40.6233 +95.7441 82.7194 41.3057 +95.6469 84.0909 41.9905 +95.6008 85.5303 42.7093 +95.4638 86.9116 43.399 +94.7514 87.7822 43.8338 +92.859 87.5452 43.7154 +93.161 89.3792 44.6312 +92.7585 90.5647 45.2232 +93.2099 92.6153 46.2471 +92.8331 93.8759 46.8766 +92.9636 95.6768 47.7759 +91.8969 96.2628 48.0685 +92.3686 98.4852 49.1782 +92.4858 100.376 50.1222 +92.3842 102.067 50.967 +91.9454 103.415 51.6398 +91.8567 105.186 52.5244 +91.8621 107.106 53.4831 +91.837 109.034 54.4458 +92.257 111.545 55.6994 +92.0472 113.346 56.5991 +92.4479 115.954 57.9014 +92.0017 117.551 58.6988 +92.2676 120.108 59.9756 +91.7636 121.714 60.7776 +91.5112 123.694 61.7662 +92.1529 126.955 63.3946 +91.2872 128.198 64.0151 +91.4111 130.878 65.3536 +91.1237 133.036 66.4311 +91.3163 135.967 67.8947 +91.6107 139.141 69.4797 +92.1 142.718 71.2658 +93.5605 147.948 73.8775 +93.5683 151.021 75.4116 +93.38 153.868 76.8336 +93.5187 157.356 78.575 +93.227 160.222 80.0064 +93.3404 163.894 81.8398 +92.8984 166.698 83.2399 +92.4086 169.508 84.6432 +92.646 173.775 86.7741 +92.4266 177.331 88.5495 +92.4351 181.464 90.6135 +91.231 183.323 91.5418 +89.9179 185.013 92.3857 +88.188 185.873 92.815 +91.844 198.374 99.0574 +91.891 203.48 101.607 +90.7457 206.104 102.917 +88.3735 205.97 102.85 +86.116 206.065 102.898 +83.7607 205.889 102.81 +81.4489 205.776 102.754 +79.2433 205.896 102.814 +76.7877 205.319 102.526 +74.5349 205.231 102.481 +72.2897 205.122 102.427 +70.2569 205.593 102.662 +67.9365 205.19 102.461 +65.9325 205.713 102.722 +63.6295 205.271 102.501 +61.4695 205.241 102.487 +59.2399 204.935 102.333 +57.2387 205.389 102.56 +55.0231 205.046 102.389 +53.0884 205.728 102.73 +50.7984 205 102.366 +48.88 205.739 102.735 +46.7119 205.411 102.571 +44.6302 205.417 102.574 +42.5155 205.229 102.48 +40.5121 205.554 102.643 +38.3406 204.979 102.356 +36.371 205.448 102.59 +34.2474 205.016 102.374 +32.2325 205.187 102.459 +30.1254 204.721 102.227 +28.2371 205.748 102.74 +26.116 205.071 102.402 +24.0938 205.089 102.411 +22.0254 204.647 102.19 +19.9674 204.187 101.96 +17.975 204.335 102.034 +16.0161 204.914 102.323 +13.9618 204.227 101.98 +11.9797 204.507 102.12 +9.94086 203.699 101.716 +7.96058 203.948 101.841 +5.98143 204.36 102.047 +3.99311 204.667 102.2 +1.99227 204.243 101.988 +1.39973e-14 204.519 102.126 +-1.99838 204.869 102.301 +-3.98962 204.488 102.11 +-5.96573 203.823 101.779 +-7.99547 204.842 102.287 +-9.94086 203.699 101.716 +-11.9954 204.775 102.254 +-13.9496 204.049 101.891 +-15.9673 204.289 102.011 +-17.9201 203.711 101.722 +-20.0633 205.167 102.45 +-21.9678 204.112 101.923 +-24.052 204.733 102.233 +-25.9122 203.472 101.603 +-28.0421 204.327 102.03 +-30.0471 204.189 101.961 +-32.0376 203.947 101.84 +-34.0109 203.601 101.667 +-36.0894 203.857 101.796 +-38.126 203.832 101.783 +-40.1475 203.704 101.719 +-42.1693 203.558 101.646 +-44.1914 203.397 101.565 +-46.2534 203.395 101.565 +-48.4018 203.726 101.73 +-50.3222 203.078 101.406 +-52.5711 203.723 101.729 +-54.4395 202.871 101.303 +-56.6339 203.219 101.477 +-58.664 202.942 101.339 +-60.9001 203.34 101.537 +-63.0415 203.374 101.554 +-65.3812 203.993 101.863 +-67.3116 203.303 101.519 +-69.526 203.454 101.594 +-71.7785 203.671 101.703 +-74.0405 203.869 101.801 +-76.0262 203.283 101.509 +-78.2991 203.443 101.589 +-80.4808 203.33 101.532 +-82.8031 203.535 101.635 +-84.8202 202.965 101.35 +-87.2984 203.464 101.599 +-89.6095 203.524 101.629 +-92.0783 203.895 101.814 +-94.2932 203.664 101.699 +-96.706 203.826 101.78 +-98.9695 203.637 101.686 +-101.603 204.165 101.949 +-103.756 203.689 101.712 +-106.5 204.332 102.032 +-108.36 203.25 101.492 +-111.127 203.843 101.788 +-113.111 202.968 101.351 +-115.995 203.671 101.703 +-118.392 203.473 101.603 +-120.936 203.488 101.611 +-123.346 203.244 101.489 +-125.954 203.29 101.512 +-128.424 203.078 101.406 +-130.95 202.92 101.327 +-134.142 203.74 101.737 +-139.215 207.286 103.507 +-141.649 206.802 103.266 +-144.827 207.357 103.543 +-144.05 202.294 101.015 +-144.057 198.461 99.1008 +-143.338 193.748 96.7473 +-143.713 190.619 95.185 +-148.908 193.84 96.7933 +-149.761 191.351 95.5505 +-683.952 857.859 428.369 +-700.522 862.619 430.746 +-709.326 857.621 428.25 +-711.887 845.191 422.044 +-718.825 838.111 418.508 +-721.925 826.685 412.803 +-729.089 820.038 409.483 +-733.284 810.142 404.542 +-739.377 802.454 400.703 +-737.47 786.302 392.637 +-729.2 763.847 381.425 +-731.112 752.453 375.735 +-738.424 746.716 372.87 +-741.464 736.734 367.886 +-748.013 730.323 364.685 +-751.085 720.596 359.827 +-757.81 714.445 356.756 +-760.651 704.704 351.892 +-767.496 698.738 348.913 +-769.969 688.861 343.981 +-777.086 683.2 341.154 +-779.98 673.875 336.497 +-787.539 668.622 333.874 +-789.935 659.03 329.085 +-796.997 653.382 326.264 +-800.218 644.621 321.889 +-806.55 638.409 318.787 +-810.181 630.091 314.634 +-817.741 624.845 312.015 +-820.28 615.792 307.494 +-828.03 610.674 304.938 +-831.158 602.159 300.686 +-838.721 596.872 298.046 +-841.595 588.263 293.747 +-848.491 582.487 290.863 +-854.141 575.84 287.544 +-870.175 576.069 287.658 +-888.543 577.562 288.404 +-902.61 576.005 287.626 +-907.129 568.27 283.764 +-914.121 562.078 280.672 +-913.931 551.517 275.398 +-911.604 539.819 269.557 +-909.37 528.344 263.827 +-908.754 517.955 258.639 +-912.669 510.224 254.779 +-921.96 505.464 252.402 +-926.855 498.246 248.798 +-935.988 493.261 246.308 +-383.216 197.944 98.8425 +-383.827 194.284 97.0149 +-383.696 190.282 95.0166 +-383.955 186.511 93.1336 +-379.403 180.482 90.123 +-379.907 176.934 88.3516 +-380.192 173.312 86.5427 +-382.316 170.537 85.1569 +-381.538 166.487 83.1345 +-383.057 163.463 81.6245 +-134.587 56.1478 28.0372 +-138.223 56.3564 28.1414 +-382.319 152.288 76.0447 +-383.331 149.119 74.4623 +-382.194 145.143 72.4765 +-383.502 142.119 70.9665 +-1115.96 403.381 201.427 +-382.122 134.666 67.2451 +-381.088 130.876 65.3527 +-380.757 127.363 63.5983 +-380.669 123.957 61.8975 +-381.77 120.951 60.3965 +-380.76 117.295 58.5711 +-383.407 114.772 57.3113 +-382.8 111.277 55.5658 +-387.781 109.387 54.6223 +-1246.45 340.935 170.245 +-380.556 100.852 50.3599 +-381.429 97.8517 48.8619 +-380.152 94.3205 47.0986 +-380.575 91.233 45.5569 +-381.45 88.258 44.0714 +-380.744 84.9303 42.4097 +-379.224 81.4532 40.6734 +-379.712 78.429 39.1633 +-381.536 75.6745 37.7878 +-382.26 72.6929 36.299 +-380.897 69.3311 34.6203 +-381.657 66.3718 33.1425 +-380.52 63.096 31.5068 +-381.613 60.2006 30.061 +-380.805 57.0122 28.4688 +-380.161 53.869 26.8993 +-381.76 51.0443 25.4888 +-379.174 47.6759 23.8068 +-379.624 44.7138 22.3277 +-378.954 41.6283 20.787 +-380.24 38.7593 19.3543 +-379.41 35.6769 17.8152 +-379.246 32.6705 16.3139 +-378.554 29.6305 14.7959 +-381.321 26.8493 13.4071 +-378.775 23.6964 11.8327 +-378.992 20.7383 10.3556 +-380.378 17.8349 8.90579 +-379.339 14.8176 7.39914 +-378.569 11.8273 5.90594 +-379.57 8.89238 4.44038 +-145.878 2.27808 1.13755 +-145.794 1.1383 0.568408 +97 0 0 +97.0963 0.761472 0.371694 +96.9852 1.52131 0.742593 +97.0667 2.28418 1.11497 +97.0408 3.04531 1.48649 +97.0076 3.8062 1.8579 +96.8671 4.5621 2.22688 +96.9189 5.32705 2.60027 +96.8635 6.0869 2.97117 +97.6979 6.90975 3.37283 +96.8301 7.61299 3.7161 +97.6484 8.44957 4.12446 +96.6675 9.13051 4.45684 +97.4694 9.97974 4.87137 +97.3688 10.7438 5.24432 +97.1616 11.4952 5.61112 +97.0463 12.2568 5.98284 +96.8247 13.004 6.34758 +96.6947 13.7628 6.71798 +96.3601 14.491 7.07343 +96.2157 15.246 7.44199 +96.9489 16.1474 7.88196 +96.7884 16.9071 8.2528 +96.6206 17.6655 8.62298 +96.4454 18.4225 8.9925 +96.2628 19.1781 9.36133 +96.9498 20.1142 9.81828 +96.7508 20.8738 10.189 +96.5444 21.6317 10.559 +97.202 22.5906 11.027 +96.979 23.3519 11.3987 +96.7485 24.1115 11.7695 +96.5107 24.8694 12.1394 +97.1284 25.855 12.6205 +96.6824 26.5632 12.9662 +96.6115 27.3744 13.3621 +97.198 28.3809 13.8534 +96.729 29.0851 14.1972 +97.2939 30.1058 14.6954 +96.9035 30.8376 15.0526 +97.5401 31.9038 15.5731 +97.2266 32.6674 15.9458 +96.9056 33.4287 16.3174 +97.4147 34.4838 16.8324 +97.0761 35.2464 17.2047 +97.6541 36.3502 17.7435 +97.2053 37.0796 18.0995 +97.025 37.9122 18.5059 +97.658 39.0736 19.0728 +97.2749 39.838 19.446 +97.7 40.9411 19.9844 +97.9305 41.9766 20.4899 +97.6989 42.8217 20.9024 +97.1004 43.5061 21.2365 +97.4761 44.6331 21.7866 +97.039 45.3958 22.1589 +97.2125 46.4504 22.6736 +96.7578 47.211 23.0449 +96.9953 48.3165 23.5845 +96.5224 49.0754 23.955 +96.8216 50.2348 24.5209 +97.1056 51.4027 25.091 +97.3742 52.5788 25.6651 +96.6894 53.2465 25.991 +96.8471 54.3837 26.5461 +97.0744 55.5757 27.1279 +96.4471 56.2859 27.4746 +96.564 57.4369 28.0364 +96.7487 58.6442 28.6258 +96.2579 59.4516 29.0199 +96.2504 60.565 29.5634 +96.3913 61.7872 30.1599 +96.4348 62.9633 30.734 +96.3824 64.0914 31.2847 +96.3953 65.2775 31.8636 +96.5511 66.578 32.4984 +96.5313 67.7752 33.0828 +96.4173 68.9212 33.6422 +96.5215 70.2403 34.2861 +96.5302 71.509 34.9054 +95.8322 72.2633 35.2736 +95.7351 73.479 35.867 +95.6972 74.7576 36.4911 +96.3157 76.577 37.3792 +96.2373 77.8706 38.0106 +96.0672 79.108 38.6147 +95.9536 80.41 39.2502 +95.822 81.7161 39.8877 +95.7441 83.0887 40.5578 +95.6469 84.4663 41.2302 +95.1059 85.4674 41.7188 +95.1835 87.0432 42.488 +94.543 87.9802 42.9454 +92.7902 87.8709 42.8921 +92.82 89.4496 43.6627 +93.5692 91.7643 44.7925 +93.2099 93.0287 45.4097 +92.8331 94.2949 46.0278 +93.0292 96.1722 46.9442 +92.6762 97.513 47.5986 +91.9829 98.5114 48.086 +92.4222 100.754 49.1809 +92.3842 102.523 50.0441 +91.8832 103.806 50.6705 +91.9183 105.727 51.608 +91.923 107.655 52.5493 +91.837 109.521 53.46 +91.7812 111.465 54.4088 +92.1059 113.925 55.6098 +92.0414 115.96 56.6029 +91.6002 117.561 57.3846 +92.2109 120.571 58.8537 +92.155 122.779 59.9315 +91.6767 124.471 60.7575 +92.6976 128.276 62.6147 +91.5021 129.074 63.0043 +90.9341 130.777 63.8355 +91.176 133.707 65.266 +91.1102 136.266 66.5148 +91.1539 139.066 67.8817 +92.65 144.212 70.3934 +93.5112 148.531 72.5016 +93.4713 151.537 73.9694 +93.38 154.555 75.4424 +93.1432 157.424 76.8426 +93.227 160.937 78.5577 +92.9773 163.985 80.0452 +92.9876 167.603 81.8112 +92.8032 170.992 83.4654 +92.6029 174.47 85.1634 +92.4266 178.122 86.9461 +92.1863 181.783 88.7332 +90.7023 183.075 89.3636 +89.559 185.098 90.351 +87.9927 186.289 90.9326 +92.1884 200.007 97.6287 +91.8535 204.305 99.7264 +90.3792 206.188 100.646 +88.051 206.134 100.619 +85.4856 205.47 100.295 +83.4529 206.048 100.577 +80.9815 205.509 100.314 +78.9177 205.966 100.537 +76.5339 205.555 100.337 +74.504 206.062 100.584 +72.1093 205.523 100.321 +69.9938 205.737 100.426 +67.7093 205.417 100.269 +65.6844 205.854 100.483 +63.282 205.062 100.096 +61.2366 205.377 100.25 +59.0396 205.153 100.14 +56.9 205.086 100.108 +54.8597 205.349 100.236 +52.9535 206.122 100.613 +50.5603 204.95 100.041 +48.6721 205.778 100.445 +46.4926 205.359 100.241 +44.4585 205.539 100.329 +42.3698 205.439 100.28 +40.3732 205.763 100.438 +38.2415 205.362 100.243 +36.2615 205.743 100.429 +34.1144 205.131 100.13 +32.1768 205.747 100.43 +30.008 204.833 99.9843 +28.1274 205.864 100.487 +26.0028 205.094 100.112 +24.0102 205.29 100.208 +21.9103 204.487 99.8154 +19.9587 205.009 100.07 +17.9122 204.53 99.8365 +15.8975 204.305 99.7264 +13.9008 204.242 99.6957 +11.9797 205.42 100.271 +9.9016 203.801 99.4803 +7.96058 204.858 99.9966 +5.96049 204.554 99.8479 +3.98264 205.042 100.086 +1.9879 204.705 99.922 +1.39605e-14 204.893 100.014 +-1.9818 204.076 99.615 +-3.97566 204.682 99.9106 +-5.96573 204.733 99.9356 +-7.9536 204.679 99.9089 +-9.94086 204.608 99.8747 +-11.9378 204.702 99.9203 +-13.8824 203.973 99.5645 +-15.8975 204.305 99.7264 +-17.8573 203.903 99.5303 +-19.9064 204.472 99.808 +-21.9008 204.397 99.7716 +-23.9684 204.933 100.033 +-25.8443 203.844 99.5014 +-27.9325 204.437 99.7909 +-29.9166 204.209 99.6799 +-31.9959 204.59 99.8659 +-33.8631 203.621 99.3926 +-35.9643 204.058 99.6058 +-37.994 204.033 99.5939 +-40.1301 204.524 99.8334 +-42.0053 203.671 99.4171 +-44.096 203.863 99.511 +-46.0939 203.598 99.3816 +-48.0692 203.229 99.2013 +-50.0841 203.02 99.0991 +-52.3461 203.757 99.4592 +-54.206 202.902 99.0416 +-56.392 203.254 99.2136 +-58.4637 203.152 99.1636 +-60.9001 204.248 99.6988 +-62.6407 202.984 99.0816 +-64.9126 203.435 99.3018 +-66.9992 203.263 99.218 +-69.2629 203.589 99.3772 +-71.2372 203.038 99.1083 +-73.7933 204.095 99.6242 +-75.7724 203.509 99.3382 +-77.9736 203.502 99.3347 +-80.2805 203.73 99.4457 +-82.5637 203.853 99.5057 +-84.5401 203.198 99.186 +-87.1192 203.952 99.5544 +-89.0598 203.178 99.1763 +-91.7786 204.138 99.6452 +-93.7192 203.328 99.2496 +-96.3152 203.908 99.5329 +-98.6106 203.805 99.4825 +-101.277 204.42 99.7825 +-103.093 203.29 99.2311 +-106.035 204.348 99.7474 +-108.015 203.508 99.3377 +-110.645 203.865 99.5119 +-112.799 203.311 99.2412 +-115.541 203.78 99.4702 +-117.469 202.787 98.9855 +-120.607 203.841 99.5 +-122.487 202.729 98.9574 +-125.323 203.176 99.1754 +-127.981 203.28 99.2263 +-130.25 202.737 98.9609 +-132.874 202.714 98.95 +-138.751 207.518 101.295 +-141.127 206.958 101.022 +-144.562 207.902 101.482 +-143.674 202.667 98.9272 +-143.349 198.367 96.8282 +-144.111 195.662 95.5078 +-144.775 192.885 94.1524 +-149.814 195.89 95.6188 +-154.292 198.02 96.6589 +-704.335 887.369 433.148 +-706.165 873.45 426.354 +-713.668 866.723 423.07 +-715.618 853.414 416.573 +-723.513 847.342 413.609 +-726.419 835.546 407.852 +-736.373 831.927 406.085 +-738.633 819.695 400.114 +-734.225 800.419 390.705 +-729.371 781.139 381.294 +-733.681 771.972 376.82 +-735.901 760.763 371.348 +-743.261 754.963 368.517 +-745.345 743.897 363.115 +-752.54 738.023 360.248 +-755.109 727.69 355.204 +-761.94 721.545 352.205 +-764.749 711.664 347.381 +-772.052 706.024 344.628 +-774.282 695.812 339.644 +-781.936 690.533 337.067 +-784.368 680.691 332.263 +-792.326 675.69 329.822 +-794.47 665.773 324.981 +-801.863 660.306 322.313 +-804.752 651.167 317.851 +-811.793 645.426 315.049 +-814.483 636.265 310.577 +-822.455 631.254 308.131 +-825.26 622.296 303.759 +-832.429 616.658 301.007 +-835.743 608.183 296.87 +-843.808 603.173 294.424 +-845.614 593.711 289.806 +-854.124 588.972 287.492 +-857.575 580.737 283.473 +-867.683 576.983 281.64 +-883.689 576.971 281.634 +-898.702 576.072 281.196 +-909.914 572.559 279.481 +-914.203 564.637 275.614 +-913.019 553.427 270.142 +-908.519 540.393 263.78 +-908.196 530.018 258.715 +-913.562 523.02 255.299 +-917.418 515.169 251.467 +-927.758 510.913 249.39 +-932.084 503.293 245.671 +-940.985 498.109 243.14 +-384.602 199.546 97.4037 +-383.305 194.885 95.1284 +-381.247 189.912 92.7009 +-382.988 186.872 91.2169 +-380.374 181.751 88.7174 +-381.592 178.512 87.1365 +-380.638 174.29 85.0753 +-382.584 171.418 83.6738 +-382.257 167.544 81.7827 +-382.516 163.96 80.0333 +-133.137 55.7908 27.2329 +-137.768 56.4217 27.5409 +-381.862 152.786 74.5786 +-382.689 149.534 72.9916 +-383.482 146.282 71.4041 +-383.502 142.753 69.6815 +-1114.75 404.745 197.567 +-382.029 135.234 66.0112 +-380.341 131.203 64.0434 +-382.162 128.404 62.6775 +-381.045 124.634 60.8368 +-380.45 121.07 59.0976 +-381.8 118.141 57.6676 +-383.123 115.199 56.2318 +-382.515 111.691 54.5193 +-3124.85 885.411 432.192 +-388.834 106.83 52.1466 +-380.843 101.378 49.4853 +-381.429 98.2886 47.9772 +-380.634 94.8611 46.3042 +-380.865 91.7095 44.7658 +-380.869 88.517 43.2075 +-381.326 85.4399 41.7054 +-378.349 81.628 39.8448 +-379.712 78.7791 38.4541 +-381.048 75.9151 37.0561 +-382.26 73.0174 35.6417 +-380.897 69.6406 33.9934 +-382.147 66.7538 32.5842 +-381.11 63.476 30.9843 +-381.711 60.4849 29.5242 +-380.805 57.2667 27.9533 +-380.359 54.1376 26.4259 +-381.562 51.2457 25.0144 +-381.154 48.1389 23.4978 +-380.913 45.0659 21.9978 +-381.237 42.066 20.5335 +-379.942 38.9018 18.989 +-381.101 35.9959 17.5705 +-381.436 33.0059 16.111 +-379.451 29.8332 14.5623 +-379.925 26.8705 13.1162 +-379.673 23.8587 11.646 +-379.89 20.8803 10.1922 +-379.279 17.8627 8.71927 +-380.238 14.919 7.28236 +-377.67 11.8519 5.78522 +-379.57 8.93208 4.35998 +-145.678 2.28512 1.11542 +-146.594 1.14966 0.561178 +97.1 0 0 +97.0963 0.764795 0.36481 +96.9852 1.52795 0.728838 +96.9668 2.29178 1.09319 +97.0408 3.05859 1.45896 +97.0076 3.8228 1.82349 +96.8671 4.58201 2.18563 +97.0187 5.35581 2.55474 +96.8635 6.11346 2.91614 +97.6979 6.93989 3.31035 +97.6271 7.70913 3.67728 +97.6484 8.48644 4.04806 +97.4631 9.2458 4.41028 +96.5752 9.9314 4.73731 +97.2695 10.7796 5.14192 +96.3684 11.4511 5.4622 +97.0463 12.3102 5.87202 +96.9236 13.0741 6.23638 +96.6947 13.8229 6.59355 +97.2478 14.6882 7.00634 +97.102 15.4536 7.37143 +96.9489 16.2178 7.73596 +96.7884 16.9809 8.09993 +96.6206 17.7426 8.46326 +96.4454 18.5029 8.82594 +97.1415 19.4376 9.2718 +96.9498 20.202 9.63641 +96.0701 20.8174 9.92995 +96.7385 21.7698 10.3842 +97.202 22.6891 10.8228 +96.979 23.4538 11.1875 +96.7485 24.2167 11.5515 +96.5107 24.9779 11.9145 +97.1284 25.9678 12.3867 +96.6824 26.679 12.726 +97.4699 27.738 13.2311 +97.0078 28.4489 13.5702 +97.9618 29.5843 14.1118 +97.2939 30.2372 14.4232 +96.9978 31.0023 14.7882 +97.6341 32.0738 15.2993 +97.3202 32.8416 15.6655 +97.7459 33.8656 16.154 +97.4147 34.6343 16.5207 +97.8179 35.6707 17.015 +97.6541 36.5088 17.4148 +97.2053 37.2413 17.7642 +97.8503 38.4014 18.3176 +96.8358 38.9137 18.562 +97.2749 40.0118 19.0858 +96.8843 40.7765 19.4505 +97.2987 41.8877 19.9806 +97.6989 43.0085 20.5152 +97.8163 44.0181 20.9968 +97.4761 44.8279 21.383 +97.039 45.5939 21.7484 +97.2125 46.653 22.2537 +96.7578 47.417 22.6181 +97.0828 48.5711 23.1686 +96.6095 49.3339 23.5324 +96.8216 50.454 24.0667 +96.3301 51.2147 24.4296 +97.2885 52.7617 25.1675 +96.7747 53.526 25.5321 +96.8471 54.621 26.0544 +96.3153 55.3817 26.4172 +96.4471 56.5315 26.9657 +96.6474 57.7373 27.5409 +96.7487 58.9001 28.0955 +96.1755 59.6599 28.458 +96.2504 60.8293 29.0158 +97.0426 62.4761 29.8013 +96.273 63.1319 30.1141 +96.5432 64.4784 30.7564 +95.9161 65.2364 31.118 +96.5511 66.8685 31.8965 +96.5313 68.0709 32.47 +96.4956 69.2782 33.0459 +96.5215 70.5467 33.651 +96.4531 71.7636 34.2315 +95.9088 72.6366 34.6479 +95.7351 73.7995 35.2026 +95.6972 75.0837 35.8152 +96.3157 76.9111 36.6868 +95.6427 77.7272 37.0761 +96.0672 79.4532 37.8994 +95.9536 80.7608 38.5232 +95.822 82.0726 39.1489 +95.6003 83.3259 39.7467 +96.2175 85.341 40.7079 +95.9544 86.6061 41.3114 +95.1134 87.3586 41.6703 +93.7789 87.6499 41.8093 +92.7902 88.2543 42.0976 +93.2974 90.3018 43.0742 +93.0288 91.6322 43.7089 +93.2768 93.5014 44.6005 +93.0981 94.9762 45.304 +92.5043 96.0467 45.8146 +92.6762 97.9385 46.717 +92.24 99.2174 47.327 +92.1041 100.846 48.1037 +92.3842 102.97 49.1172 +92.3812 104.824 50.0015 +92.4108 106.757 50.9233 +91.8012 107.982 51.5079 +91.7166 109.854 52.4009 +92.1975 112.459 53.6434 +92.1059 114.422 54.5798 +92.0414 116.466 55.5545 +91.8869 118.443 56.4978 +91.8711 120.65 57.5504 +92.0432 123.165 58.7503 +91.9527 125.39 59.8116 +91.7172 127.473 60.8048 +91.5021 129.637 61.8372 +91.3051 131.883 62.9088 +91.1237 134.213 64.02 +91.5223 137.479 65.5781 +91.4584 140.139 66.8469 +93.6 146.326 69.7978 +93.5112 149.179 71.1587 +93.4713 152.199 72.5992 +93.38 155.229 74.045 +92.7206 157.393 75.0769 +93.227 161.64 77.1026 +92.6595 164.137 78.2939 +92.8984 168.172 80.2188 +92.4963 171.17 81.6486 +92.646 175.313 83.6247 +92.4266 178.899 85.3357 +91.8131 181.837 86.737 +90.7429 183.956 87.7475 +89.1603 185.078 88.2826 +87.9145 186.936 89.1691 +92.1119 200.713 95.7407 +91.8161 205.113 97.8396 +89.6462 205.408 97.9804 +87.6926 206.191 98.3536 +85.2405 205.775 98.1552 +82.8715 205.506 98.0269 +80.6144 205.47 98.0096 +78.3968 205.499 98.0238 +76.2483 205.681 98.1104 +74.1332 205.93 98.2292 +71.7785 205.473 98.0114 +69.7599 205.944 98.2361 +67.3968 205.361 97.958 +65.3536 205.711 98.1246 +63.0415 205.173 97.8684 +61.0554 205.663 98.1018 +58.7642 205.087 97.8271 +56.7791 205.542 98.0441 +54.5795 205.192 97.877 +52.5261 205.349 97.9524 +50.4521 205.404 97.9782 +48.4018 205.528 98.0376 +46.1736 204.84 97.7096 +44.1914 205.196 97.8792 +42.06 204.826 97.7027 +40.0433 204.972 97.7724 +37.9444 204.656 97.6217 +36.1207 205.839 98.1857 +33.9814 205.223 97.8921 +31.9541 205.215 97.8882 +29.8774 204.832 97.7057 +27.8715 204.88 97.7285 +25.8783 205.003 97.7871 +23.8952 205.199 97.8805 +21.8816 205.109 97.8379 +19.8802 205.094 97.8305 +17.8416 204.613 97.6011 +15.8347 204.386 97.4926 +13.858 204.503 97.5485 +11.8803 204.604 97.5968 +9.86671 203.969 97.2937 +7.91521 204.58 97.5851 +5.93693 204.634 97.611 +3.9617 204.853 97.7156 +1.97918 204.696 97.6407 +1.38993e-14 204.885 97.7307 +-1.97656 204.425 97.5115 +-3.96519 205.034 97.8017 +-5.92908 204.363 97.4818 +-7.9187 204.67 97.6282 +-9.87979 204.238 97.4224 +-11.9012 204.964 97.7685 +-13.8336 204.142 97.3763 +-15.8556 204.655 97.6213 +-17.7396 203.443 97.0431 +-19.8366 204.645 97.6161 +-21.7857 204.211 97.4095 +-23.8952 205.199 97.8805 +-25.7311 203.837 97.2308 +-27.7862 204.254 97.4297 +-29.773 204.117 97.3643 +-31.7315 203.784 97.2058 +-33.5675 202.724 96.7 +-35.714 203.521 97.0801 +-37.6969 203.321 96.985 +-39.7828 203.638 97.1361 +-41.7502 203.318 96.9833 +-43.7716 203.246 96.9492 +-45.8746 203.514 97.0767 +-47.8405 203.144 96.9006 +-50.0192 203.641 97.1374 +-52.0537 203.503 97.0715 +-54.0193 203.085 96.8722 +-56.2226 203.528 97.0836 +-58.1883 203.078 96.8687 +-60.4342 203.57 97.1038 +-62.3734 202.999 96.8313 +-64.5267 203.107 96.8829 +-66.5732 202.851 96.7607 +-68.912 203.441 97.0422 +-71.2372 203.924 97.2726 +-73.2679 203.527 97.0831 +-75.4868 203.626 97.1305 +-77.6806 203.622 97.1283 +-79.9801 203.853 97.2386 +-82.2558 203.978 97.2984 +-84.2249 203.323 96.9858 +-86.725 203.915 97.2683 +-88.6933 203.225 96.9389 +-91.3665 204.108 97.3604 +-93.3748 203.465 97.0534 +-95.9636 204.051 97.3328 +-97.853 203.122 96.8898 +-100.545 203.827 97.2261 +-102.388 202.781 96.7271 +-105.443 204.094 97.3535 +-107.585 203.581 97.109 +-110.338 204.186 97.3974 +-112.442 203.552 97.0948 +-115.087 203.865 97.2442 +-117.007 202.871 96.7701 +-119.621 203.057 96.8588 +-122.105 202.979 96.8218 +-124.984 203.51 97.075 +-126.947 202.518 96.6018 +-129.95 203.152 96.904 +-131.808 201.965 96.3379 +-138.288 207.727 99.0864 +-140.657 207.169 98.8203 +-143.608 207.431 98.9452 +-143.889 203.856 97.2399 +-143.512 199.46 95.1432 +-143.669 195.913 93.4512 +-145.278 194.4 92.7296 +-149.305 196.076 93.5287 +-158.192 203.912 97.2665 +-712.813 901.968 430.242 +-711.279 883.613 421.486 +-719.2 877.252 418.452 +-720.974 863.553 411.917 +-728.809 857.269 408.92 +-731.098 844.597 402.875 +-740.357 840.078 400.72 +-739.326 824.043 393.071 +-728.755 797.922 380.611 +-730.85 786.137 374.99 +-738.422 780.351 372.23 +-741.347 769.736 367.167 +-748.761 763.868 364.367 +-750.564 752.374 358.885 +-758.012 746.633 356.146 +-760.292 735.882 351.018 +-768.135 730.585 348.492 +-770.307 719.963 343.425 +-777.519 714.126 340.64 +-779.373 703.443 335.545 +-787.143 698.163 333.026 +-789.332 687.987 328.172 +-797.041 682.676 325.639 +-800.174 673.478 321.251 +-807.982 668.248 318.757 +-809.805 658.115 313.923 +-817.56 652.847 311.41 +-820.822 644.015 307.197 +-828.462 638.639 304.633 +-830.699 629.13 300.097 +-837.676 623.253 297.294 +-840.561 614.359 293.051 +-849.13 609.625 290.793 +-851.524 600.469 286.426 +-860.312 595.827 284.212 +-863.245 587.127 280.062 +-871.702 582.185 277.704 +-879.725 576.888 275.178 +-893.248 575.073 274.312 +-914.747 578.111 275.761 +-912.637 566.13 270.046 +-910.781 554.478 264.488 +-909.102 543.1 259.06 +-910.461 533.657 254.556 +-920.309 529.181 252.421 +-923.524 520.86 248.452 +-934.238 516.726 246.48 +-936.884 508.093 242.362 +-947.964 503.993 240.406 +-950.982 495.559 236.383 +-382.26 195.202 93.1119 +-383.608 191.921 91.5469 +-380.879 186.654 89.0344 +-379.932 182.333 86.9734 +-379.375 178.25 85.0257 +-381.44 175.418 83.6751 +-381.511 171.683 81.8931 +-383.246 168.71 80.4754 +-382.516 164.676 78.5509 +-382.553 161.008 76.8012 +-136.676 56.2186 26.8165 +-381.771 153.415 73.1796 +-383.056 150.33 71.708 +-382.746 146.638 69.9467 +-382.948 143.168 68.2918 +-1114.38 406.376 193.843 +-383.797 136.453 65.0886 +-381.461 132.163 63.0423 +-380.383 128.363 61.2298 +-380.294 124.931 59.5925 +-381.676 121.99 58.1898 +-388.324 120.684 57.5668 +-383.123 115.702 55.1903 +-385.083 112.931 53.8685 +-382.727 108.916 51.9535 +-380.705 105.053 50.1109 +-379.597 101.487 48.4098 +-380.564 98.4936 46.9818 +-381.019 95.3715 45.4925 +-380.575 92.0401 43.9035 +-379.901 88.6772 42.2993 +-379.386 85.376 40.7246 +-378.933 82.1106 39.167 +-381.174 79.4275 37.8872 +-381.634 76.3635 36.4256 +-381.967 73.2797 34.9546 +-382.465 70.2324 33.5011 +-382.147 67.045 31.9807 +-379.635 63.5062 30.2927 +-382.204 60.8272 29.0148 +-380.509 57.4719 27.4143 +-380.951 54.4585 25.9769 +-381.068 51.4026 24.5192 +-381.154 48.3489 23.0626 +-381.607 45.3449 21.6297 +-381.634 42.2936 20.1742 +-380.935 39.1737 18.686 +-380.206 36.068 17.2046 +-381.038 33.1153 15.7961 +-380.248 30.0263 14.3226 +-379.826 26.9806 12.8698 +-380.471 24.0131 11.4543 +-378.992 20.9218 9.97976 +-380.478 17.9974 8.5848 +-378.24 14.9054 7.10993 +-379.069 11.9478 5.69912 +-379.07 8.95924 4.27359 +-144.878 2.28248 1.08875 +-145.694 1.14759 0.547404 +97 0 0 +97.0963 0.768055 0.357895 +97.8851 1.5487 0.72166 +96.9668 2.30155 1.07247 +97.0408 3.07163 1.43131 +97.0076 3.8391 1.78893 +96.9669 4.60628 2.14642 +97.0187 5.37864 2.50632 +96.8635 6.13952 2.86087 +97.6979 6.96948 3.24761 +96.8301 7.6788 3.57814 +97.6484 8.52261 3.97133 +97.4631 9.28521 4.32669 +96.5752 9.97373 4.64752 +97.3688 10.8366 5.04962 +96.3684 11.4999 5.35867 +97.0463 12.3627 5.76072 +96.9236 13.1298 6.11818 +96.6947 13.8818 6.46858 +97.2478 14.7509 6.87355 +97.102 15.5195 7.23172 +96.9489 16.287 7.58934 +96.7884 17.0533 7.94641 +96.6206 17.8182 8.30285 +96.4454 18.5818 8.65866 +97.1415 19.5205 9.09606 +96.9498 20.2881 9.45377 +96.0701 20.9061 9.74174 +96.5444 21.8187 10.167 +97.202 22.7858 10.6177 +96.979 23.5538 10.9755 +96.7485 24.32 11.3325 +97.3758 25.3092 11.7935 +97.1284 26.0785 12.152 +96.6824 26.7928 12.4848 +97.4699 27.8563 12.9804 +97.0078 28.5702 13.313 +97.9618 29.7104 13.8443 +97.2939 30.3661 14.1499 +96.9978 31.1344 14.5079 +97.6341 32.2106 15.0093 +97.3202 32.9816 15.3686 +97.7459 34.01 15.8478 +97.4147 34.7819 16.2075 +97.0761 35.5511 16.566 +97.6541 36.6644 17.0848 +97.2974 37.4355 17.4441 +97.8503 38.5651 17.9704 +97.4753 39.3377 18.3304 +97.2749 40.1824 18.724 +96.703 40.8737 19.0462 +97.2987 42.0663 19.6019 +96.89 42.8343 19.9598 +97.8163 44.2057 20.5988 +97.4761 45.0189 20.9778 +97.039 45.7882 21.3362 +97.1242 46.8094 21.8121 +96.7578 47.6191 22.1894 +96.9953 48.7342 22.709 +96.6095 49.5442 23.0864 +96.8216 50.669 23.6106 +96.3301 51.433 23.9665 +96.517 52.5665 24.4947 +96.7747 53.7541 25.0481 +96.8471 54.8538 25.5606 +96.3153 55.6177 25.9165 +96.4471 56.7724 26.4546 +96.6474 57.9834 27.0189 +96.8316 59.2018 27.5866 +96.1755 59.9142 27.9186 +96.2504 61.0885 28.4658 +97.0426 62.7424 29.2365 +96.273 63.401 29.5434 +96.5432 64.7532 30.1735 +96.4752 65.8963 30.7061 +96.5511 67.1535 31.2919 +96.5313 68.3611 31.8546 +96.4956 69.5735 32.4196 +95.8221 70.3341 32.774 +96.4531 72.0695 33.5827 +96.445 73.3541 34.1813 +95.7351 74.1141 34.5354 +96.3009 75.8795 35.358 +96.3157 77.2389 35.9915 +96.2373 78.5437 36.5995 +96.0672 79.7919 37.1811 +95.9536 81.1051 37.793 +95.822 82.4225 38.4069 +95.7441 83.8069 39.052 +96.2175 85.7047 39.9364 +95.5301 86.5907 40.3492 +95.1134 87.7309 40.8805 +93.0842 87.3715 40.713 +92.7902 88.6305 41.2997 +92.6836 90.0903 41.9799 +93.0288 92.0228 42.8804 +92.6077 93.2265 43.4413 +93.0981 95.3811 44.4453 +92.7667 96.7298 45.0738 +92.6762 98.3559 45.8315 +92.6257 100.057 46.6243 +92.1041 101.276 47.192 +92.2584 103.269 48.1208 +92.3812 105.271 49.0538 +91.8567 106.569 49.6586 +91.8012 108.443 50.5317 +92.2582 110.974 51.7114 +92.1975 112.938 52.6266 +92.1059 114.91 53.5453 +92.0414 116.962 54.5015 +91.8869 118.948 55.427 +91.8711 121.164 56.4597 +91.3162 122.713 57.1815 +91.9527 125.925 58.678 +91.4994 127.712 59.5109 +91.5021 130.19 60.6652 +91.3051 132.446 61.7165 +91.1237 134.785 62.8066 +92.0888 138.92 64.7335 +91.4584 140.737 65.5799 +93.55 146.87 68.4381 +93.5112 149.814 69.81 +93.4713 152.847 71.2232 +93.38 155.891 72.6416 +93.0962 158.705 73.9526 +93.227 162.329 75.6412 +92.8865 165.241 76.9983 +92.8984 168.889 78.6984 +92.8032 172.47 80.3667 +92.646 176.06 82.0397 +92.5534 179.908 83.8327 +91.8131 182.612 85.0931 +90.4176 184.077 85.7756 +89.1603 185.867 86.6094 +89.2821 190.652 88.8395 +92.1119 201.568 93.9261 +91.7037 205.735 95.8678 +89.6462 206.284 96.1233 +86.6892 204.7 95.3854 +85.2405 206.652 96.2948 +82.3585 205.104 95.5734 +80.6144 206.345 96.152 +77.648 204.404 95.2473 +76.2483 206.557 96.2509 +73.2061 204.222 95.1624 +71.7785 206.349 96.1537 +69.0874 204.829 95.4454 +67.3968 206.237 96.1013 +64.7197 204.583 95.3309 +63.0415 206.048 96.0135 +60.2531 203.825 94.9778 +58.7642 205.961 95.9729 +56.1017 203.956 95.0386 +54.5795 206.066 96.0219 +51.9862 204.106 95.1083 +50.4521 206.279 96.1212 +47.9029 204.276 95.1877 +46.1736 205.714 95.8576 +43.8479 204.469 95.2777 +42.06 205.699 95.8509 +39.6786 203.971 95.0458 +37.9444 205.529 95.7715 +35.6514 204.03 95.0733 +33.9814 206.098 96.0367 +31.5923 203.756 94.9453 +29.8774 205.705 95.8538 +27.7131 204.584 95.3313 +25.8783 205.877 95.9337 +23.6652 204.09 95.1012 +21.8816 205.984 95.9835 +19.6275 203.35 94.7561 +17.8416 205.485 95.7512 +15.6534 202.905 94.5491 +13.858 205.375 95.6997 +11.7494 203.213 94.6923 +9.86671 204.838 95.4496 +7.84192 203.549 94.849 +5.93693 205.506 95.7609 +3.91457 203.28 94.7236 +1.97918 205.569 95.79 +1.37217e-14 203.129 94.6534 +-1.97656 205.297 95.6633 +-3.91807 203.461 94.808 +-5.92908 205.234 95.6342 +-7.84192 203.549 94.849 +-9.87979 205.109 95.5759 +-11.7756 203.666 94.9035 +-13.8336 205.012 95.5307 +-15.6673 203.087 94.6336 +-17.7396 204.31 95.2038 +-19.61 203.169 94.672 +-21.7857 205.082 95.5632 +-23.613 203.639 94.8908 +-25.7311 204.706 95.3879 +-27.4937 202.964 94.5766 +-29.773 204.987 95.5189 +-31.4114 202.589 94.4017 +-33.5675 203.588 94.8672 +-35.3698 202.419 94.3223 +-37.6969 204.188 95.1468 +-39.4529 202.81 94.5048 +-41.7502 204.184 95.1451 +-43.3518 202.156 94.1998 +-45.8746 204.381 95.2367 +-47.4662 202.414 94.3202 +-50.0192 204.509 95.2963 +-51.5813 202.516 94.3675 +-54.0193 203.951 95.0361 +-55.7146 202.548 94.3827 +-58.1883 203.943 95.0327 +-59.9425 202.774 94.4879 +-62.3734 203.864 94.996 +-63.9479 202.144 94.1943 +-66.5732 203.716 94.9267 +-68.2396 202.315 94.2742 +-71.2372 204.794 95.4289 +-72.7426 202.929 94.5601 +-75.4868 204.494 95.2895 +-76.8666 202.347 94.2889 +-79.9801 204.722 95.3955 +-81.435 202.804 94.5018 +-84.2249 204.19 95.1476 +-85.865 202.754 94.4786 +-88.6933 204.091 95.1016 +-90.3926 202.793 94.4967 +-93.3748 204.332 95.2139 +-94.8695 202.585 94.3996 +-97.853 203.988 95.0534 +-99.5285 202.626 94.419 +-102.388 203.645 94.8938 +-104.302 202.746 94.4748 +-107.585 204.449 95.2684 +-108.848 202.287 94.2611 +-112.442 204.419 95.2545 +-113.906 202.634 94.4228 +-117.007 203.736 94.936 +-118.635 202.242 94.2399 +-122.105 203.845 94.9867 +-123.675 202.237 94.2374 +-126.947 203.381 94.7709 +-128.7 202.055 94.1529 +-131.808 202.826 94.5119 +-135.713 204.728 95.3985 +-140.657 208.052 96.9473 +-142.283 206.393 96.1744 +-143.889 204.725 95.3968 +-143.458 200.234 93.3044 +-143.669 196.748 91.6799 +-144.663 194.402 90.5868 +-149.305 196.911 91.756 +-150.965 195.426 91.0637 +-712.813 905.813 422.087 +-727.737 907.909 423.064 +-719.2 880.991 410.521 +-736.983 886.49 413.083 +-728.809 860.923 401.17 +-735.9 853.768 397.835 +-740.357 843.658 393.125 +-734.48 822.132 383.094 +-728.755 801.323 373.397 +-743.834 803.514 374.418 +-738.422 783.677 365.175 +-753.681 785.878 366.2 +-748.761 767.124 357.461 +-763.612 768.716 358.204 +-758.012 749.816 349.396 +-772.909 751.282 350.08 +-768.135 733.699 341.886 +-782.463 734.442 342.232 +-777.519 717.17 334.184 +-793.162 718.94 335.009 +-787.143 701.139 326.714 +-802.495 702.442 327.321 +-797.041 685.586 319.467 +-812.753 686.982 320.117 +-807.982 671.096 312.715 +-823.256 671.898 313.088 +-817.56 655.63 305.508 +-833.048 656.393 305.864 +-828.462 641.361 298.859 +-843.109 641.251 298.808 +-837.676 625.909 291.659 +-854.394 627.131 292.228 +-849.13 612.223 285.282 +-865.866 613.185 285.73 +-860.312 598.367 278.825 +-877.221 599.176 279.202 +-871.702 584.666 272.441 +-889.191 585.581 272.867 +-893.248 577.525 269.113 +-903.934 573.713 267.337 +-912.637 568.543 264.927 +-913.019 558.211 260.113 +-909.102 545.415 254.15 +-926.983 545.657 254.263 +-920.309 531.437 247.637 +-939.552 532.159 247.973 +-934.238 518.929 241.809 +-952.741 518.895 241.793 +-947.964 506.141 235.85 +-968.216 506.69 236.106 +-382.26 196.034 91.3471 +-383.171 192.52 89.7096 +-380.879 187.449 87.3468 +-383.464 184.811 86.1177 +-379.375 179.009 83.4141 +-380.638 175.796 81.9168 +-381.511 172.414 80.341 +-382.527 169.112 78.8023 +-382.516 165.378 77.0621 +-381.556 161.273 75.1492 +-136.676 56.4583 26.3082 +-136.392 55.0433 25.6488 +-383.056 150.971 70.3489 +-383.022 147.369 68.6704 +-382.948 143.779 66.9974 +-382.741 140.167 65.3147 +-383.797 137.035 63.855 +-381.461 132.727 61.8474 +-380.383 128.911 60.0692 +-380.763 125.618 58.5352 +-381.676 122.51 57.0869 +-381.99 119.222 55.5545 +-383.123 116.195 54.1442 +-381.469 112.348 52.3517 +-382.727 109.381 50.9688 +-381.279 105.661 49.2354 +-379.597 101.92 47.4923 +-380.564 98.9134 46.0913 +-381.019 95.7781 44.6303 +-380.768 92.4787 43.0929 +-379.901 89.0552 41.4976 +-378.124 85.4548 39.8199 +-378.933 82.4606 38.4247 +-380.686 79.6641 37.1216 +-381.634 76.689 35.7352 +-381.575 73.5167 34.257 +-382.465 70.5318 32.8661 +-380.675 67.0714 31.2537 +-379.635 63.7769 29.7185 +-381.416 60.9605 28.4061 +-380.509 57.7168 26.8947 +-379.569 54.4921 25.392 +-381.068 51.6217 24.0545 +-380.56 48.4793 22.5902 +-381.607 45.5382 21.2197 +-379.847 42.275 19.6992 +-380.935 39.3407 18.3318 +-381.996 36.3923 16.958 +-381.038 33.2565 15.4967 +-379.849 30.1227 14.0365 +-379.826 27.0956 12.6259 +-379.673 24.0649 11.2137 +-378.992 21.011 9.79061 +-378.68 17.9887 8.3823 +-378.24 14.9689 6.97517 +-380.468 12.0429 5.61171 +-379.07 8.99742 4.19259 +-144.878 2.29221 1.06811 +-145.694 1.15248 0.537028 +97.1 0 0 +97.0963 0.771252 0.350953 +96.9852 1.54085 0.701155 +96.9668 2.31113 1.05167 +96.9409 3.08124 1.4021 +97.1075 3.85905 1.75603 +96.9669 4.62545 2.10478 +97.0187 5.40103 2.4577 +96.9632 6.17143 2.80827 +96.8007 6.93422 3.15537 +96.7305 7.70282 3.50512 +97.5488 8.54936 3.89033 +97.4631 9.32386 4.24276 +97.37 10.0976 4.59486 +97.3688 10.8818 4.95167 +97.1616 11.6429 5.29801 +97.0463 12.4142 5.64898 +96.9236 13.1845 5.9995 +96.6947 13.9396 6.3431 +97.2478 14.8123 6.74022 +96.2157 15.4418 7.02671 +96.9489 16.3548 7.44213 +96.7884 17.1242 7.79227 +96.6206 17.8924 8.1418 +96.4454 18.6591 8.4907 +96.2628 19.4244 8.83894 +96.0729 20.1883 9.18656 +96.7508 21.1418 9.62046 +96.5444 21.9095 9.96978 +96.3307 22.6755 10.3183 +96.979 23.6518 10.7626 +96.7485 24.4212 11.1127 +97.3758 25.4146 11.5647 +97.1284 26.1871 11.9162 +96.8737 26.9575 12.2669 +96.4208 27.6712 12.5916 +97.0078 28.6891 13.0548 +96.729 29.4586 13.4049 +97.2939 30.4925 13.8754 +96.9978 31.264 14.2265 +97.5401 32.3135 14.704 +97.3202 33.1188 15.0705 +97.7459 34.1515 15.5404 +97.5078 34.96 15.9083 +97.8179 35.9718 16.3688 +97.5617 36.7823 16.7375 +97.2974 37.5914 17.1057 +97.025 38.3991 17.4732 +97.4753 39.5014 17.9749 +97.0929 40.2742 18.3265 +96.8843 41.1207 18.7117 +97.1182 42.163 19.186 +97.4293 43.252 19.6815 +97.1004 44.0648 20.0514 +97.4761 45.2063 20.5708 +97.039 45.9788 20.9224 +97.2125 47.0469 21.4084 +96.7578 47.8173 21.759 +96.9953 48.937 22.2685 +97.3058 50.109 22.8018 +96.8216 50.8799 23.1526 +97.1056 52.0628 23.6908 +96.517 52.7852 24.0196 +96.7747 53.9779 24.5623 +96.8471 55.0821 25.0648 +96.231 55.8004 25.3916 +96.4471 57.0087 25.9415 +95.8969 57.7727 26.2891 +96.7487 59.3974 27.0284 +96.2579 60.2151 27.4005 +96.9876 61.8128 28.1275 +96.3913 62.5807 28.4769 +96.4348 63.7719 29.019 +96.6236 65.0769 29.6128 +96.3953 66.1158 30.0856 +96.4718 67.3776 30.6597 +96.6101 68.7017 31.2622 +96.4956 69.8631 31.7907 +96.5215 71.1423 32.3729 +96.5302 72.4274 32.9576 +96.3684 73.6009 33.4916 +96.4195 74.9546 34.1076 +96.3764 76.255 34.6993 +96.3157 77.5604 35.2934 +96.2373 78.8706 35.8896 +96.0672 80.124 36.4599 +95.9536 81.4427 37.06 +95.822 82.7655 37.6619 +96.1757 84.5351 38.4672 +95.7182 85.6148 38.9585 +94.328 85.8569 39.0686 +93.2209 86.3433 39.2899 +92.8758 87.5387 39.8339 +93.5474 89.7256 40.8291 +93.2292 90.9978 41.408 +92.8261 92.2046 41.9571 +93.143 94.1561 42.8451 +92.7005 95.3694 43.3972 +92.898 97.2699 44.262 +92.2866 98.3503 44.7537 +92.3686 100.195 45.5932 +92.0405 101.627 46.2447 +92.3842 103.84 47.2516 +92.0699 105.353 47.9403 +92.103 107.299 48.8259 +92.1665 109.327 49.7486 +91.9573 111.073 50.543 +91.8406 112.969 51.4058 +91.6357 114.799 52.2387 +91.5188 116.783 53.1412 +91.8296 119.369 54.3179 +91.7578 121.518 55.2962 +91.6517 123.676 56.2782 +91.4008 125.69 57.1943 +91.7172 128.549 58.4953 +91.5021 130.731 59.4885 +91.5171 133.305 60.6598 +91.9597 136.589 62.1537 +92.7584 140.512 63.9392 +93.5393 144.537 65.7707 +93.6 147.561 67.1466 +93.5112 150.438 68.4558 +93.4713 153.484 69.8417 +93.2368 156.3 71.1232 +93.0962 159.365 72.5181 +93.1347 162.843 74.1007 +92.8865 165.929 75.5048 +92.8538 169.511 77.135 +93.1539 173.842 79.1056 +92.7321 176.958 80.5234 +91.7504 179.089 81.4934 +90.9837 181.717 82.6891 +88.7093 181.351 82.5226 +88.602 185.471 84.3976 +92.3298 197.981 90.0901 +92.0736 202.323 92.0657 +89.3811 201.359 91.6271 +87.3006 201.722 91.7923 +85.1124 201.813 91.8337 +82.789 201.544 91.7111 +80.7852 202.022 91.929 +78.3445 201.37 91.632 +76.2155 201.468 91.6768 +74.2493 201.98 91.9095 +72.1246 202.042 91.9381 +69.854 201.652 91.7604 +67.6548 201.416 91.6532 +65.6643 201.771 91.8147 +63.4517 201.41 91.6503 +61.2778 201.117 91.5169 +59.3731 201.684 91.7749 +57.2118 201.355 91.6254 +55.0856 201.095 91.507 +53.2022 201.702 91.7832 +51.0414 201.231 91.5687 +49.1534 201.806 91.8304 +47.0296 201.387 91.6399 +45.097 201.753 91.8064 +43.0083 201.389 91.6407 +41.003 201.364 91.6296 +38.8625 200.607 91.285 +37.0202 201.357 91.6262 +34.9318 200.745 91.3475 +33.0206 201.104 91.5111 +31.0913 201.359 91.6271 +29.1596 201.598 91.736 +27.0916 200.828 91.3856 +25.1538 200.946 91.439 +23.2262 201.138 91.5264 +21.2107 200.499 91.2357 +19.2266 200.026 91.0203 +17.3081 200.17 91.0862 +15.3883 200.3 91.1454 +13.51 201.05 91.4867 +11.5662 200.877 91.408 +9.60063 200.144 91.0741 +7.67789 200.121 91.0638 +5.76678 200.448 91.2125 +3.83953 200.212 91.1052 +1.92071 200.327 91.1574 +1.34645e-14 200.152 91.0779 +-1.92333 200.6 91.2816 +-3.84826 200.667 91.3123 +-5.7694 200.538 91.2535 +-7.69534 200.576 91.2709 +-9.62244 200.598 91.2808 +-11.5348 200.332 91.1599 +-13.5161 201.141 91.5281 +-15.3743 200.118 91.0625 +-17.2924 199.989 91.0037 +-19.2963 200.751 91.3504 +-21.2298 200.68 91.3181 +-23.1531 200.504 91.2382 +-25.0858 200.403 91.1922 +-26.9697 199.924 90.9743 +-28.8854 199.703 90.8737 +-30.799 199.466 90.7656 +-32.7989 199.754 90.8969 +-34.7285 199.576 90.8157 +-36.8056 200.19 91.0953 +-38.602 199.263 90.6732 +-40.6567 199.664 90.8559 +-42.5695 199.334 90.7055 +-44.479 198.988 90.5481 +-46.5722 199.428 90.7486 +-48.6773 199.851 90.9408 +-50.659 199.722 90.8824 +-52.6653 199.667 90.8571 +-54.5292 199.064 90.5829 +-56.686 199.505 90.7834 +-58.8555 199.926 90.9752 +-60.8769 199.802 90.9184 +-62.7902 199.31 90.6948 +-65.0679 199.939 90.981 +-67.0116 199.501 90.7817 +-69.1924 199.742 90.8915 +-71.3829 199.965 90.9925 +-73.6147 200.253 91.1238 +-75.5318 199.661 90.8542 +-77.777 199.911 90.9681 +-79.9985 200.056 91.034 +-82.1587 200.009 91.0128 +-84.0373 199.265 90.674 +-86.311 199.436 90.7519 +-88.6694 199.755 90.8973 +-90.6577 199.212 90.65 +-92.8768 199.154 90.6239 +-95.2213 199.327 90.7026 +-97.7388 199.811 90.9226 +-100.065 199.855 90.9428 +-101.809 198.723 90.4276 +-104.571 199.549 90.8037 +-107.05 199.775 90.9064 +-109.318 199.569 90.8124 +-111.545 199.26 90.672 +-114.144 199.578 90.8165 +-116.429 199.306 90.6931 +-118.717 199.014 90.5601 +-121.396 199.337 90.7072 +-123.746 199.078 90.5891 +-126.15 198.876 90.4972 +-128.864 199.122 90.609 +-131.541 199.261 90.6724 +-136.32 202.477 92.1357 +-139.316 202.93 92.3419 +-142.277 203.274 92.4985 +-144.22 202.136 91.9808 +-143.338 197.112 89.6945 +-143.657 193.853 88.2118 +-144.943 191.955 87.3478 +-147.753 192.064 87.3975 +-151.215 192.958 87.8042 +-729.324 913.682 415.765 +-733.773 902.585 410.715 +-739.45 893.16 406.426 +-743.785 882.27 401.471 +-749.26 872.886 397.201 +-753.741 862.485 392.468 +-758.96 853.07 388.184 +-764.121 843.709 383.924 +-769.481 834.679 379.815 +-773.428 824.243 375.066 +-779.726 816.42 371.507 +-783.681 806.242 366.875 +-789.708 798.296 363.259 +-794.224 788.906 358.986 +-799.37 780.238 355.042 +-803.379 770.557 350.637 +-809.694 763.164 347.273 +-813.756 753.718 342.975 +-819.678 746.067 339.493 +-823.59 736.658 335.211 +-829.327 728.95 331.704 +-834.616 720.894 328.038 +-839.887 712.872 324.388 +-844.035 703.96 320.332 +-853.205 699.239 318.184 +-881.221 709.624 322.91 +-888.821 703.254 320.011 +-893.325 694.454 316.007 +-904.239 690.607 314.256 +-910.208 682.936 310.766 +-912.991 672.931 306.213 +-882.547 638.966 290.757 +-892.58 634.734 288.832 +-899.98 628.562 286.023 +-907.33 622.321 283.183 +-911.815 614.115 279.449 +-919.367 607.973 276.654 +-924.917 600.49 273.249 +-932.113 594.06 270.323 +-937.773 586.634 266.944 +-944.937 580.13 263.984 +-951.214 573.055 260.765 +-958.517 566.568 257.813 +-964.924 559.519 254.606 +-973.39 553.618 251.92 +-979.342 546.247 248.566 +-988.4 540.556 245.977 +-993.372 532.593 242.353 +-1001.56 526.321 239.499 +-1008.92 519.555 236.42 +-382.034 192.748 87.7085 +-382.461 189.01 86.0079 +-382.14 184.94 84.1557 +-380.616 180.343 82.0637 +-377.698 175.164 79.7074 +-381.332 173.051 78.7457 +-382.707 169.895 77.3097 +-381.974 165.83 75.46 +-383.006 162.559 73.9715 +-380.091 157.661 71.7428 +-136.758 55.4204 25.2187 +-384.156 152.035 69.1827 +-382.378 147.734 67.2253 +-381.562 143.855 65.4601 +-383.669 141.091 64.2026 +-1182.47 423.956 192.919 +-383.702 134.062 61.0039 +-380.757 129.575 58.962 +-380.294 125.986 57.3289 +-380.167 122.534 55.7584 +-379.909 119.065 54.1799 +-380.183 115.783 52.6864 +-379.947 112.365 51.1312 +-379.675 108.96 49.5817 +-379.844 105.701 48.0986 +-379.597 102.344 46.5711 +-379.218 98.9738 45.0374 +-378.418 95.5205 43.466 +-379.899 92.6525 42.1609 +-378.933 89.198 40.589 +-380.55 86.361 39.298 +-380.002 83.0375 37.7857 +-378.64 79.5657 36.2058 +-379.584 76.5945 34.8538 +-382.064 73.9173 33.6356 +-382.073 70.7528 32.1956 +-381.362 67.4722 30.7028 +-381.11 64.2912 29.2553 +-381.121 61.1668 27.8335 +-381.693 58.1373 26.455 +-382.235 55.1033 25.0744 +-379.881 51.6751 23.5144 +-382.045 48.8711 22.2385 +-380.219 45.5615 20.7325 +-381.435 42.6285 19.3978 +-379.942 39.4014 17.9293 +-380.703 36.4201 16.5727 +-379.843 33.2901 15.1485 +-380.148 30.2718 13.775 +-379.925 27.2156 12.3843 +-380.471 24.2158 11.0193 +-380.689 21.1929 9.64369 +-378.58 18.0588 8.21755 +-378.839 15.0551 6.85072 +-380.468 12.093 5.50286 +-379.67 9.04917 4.11776 +-146.078 2.32082 1.05607 +-145.094 1.15251 0.524441 +97.1 0 0 +97.0963 0.774386 0.343981 +96.9852 1.54711 0.687225 +96.9668 2.32053 1.03077 +97.0408 3.09695 1.37566 +97.1075 3.87473 1.72115 +96.9669 4.64425 2.06297 +96.9189 5.4174 2.4064 +96.8635 6.19013 2.74964 +96.8007 6.9624 3.09268 +97.6271 7.80582 3.46733 +97.6484 8.59287 3.81694 +97.4631 9.36176 4.15847 +97.4694 10.149 4.50816 +97.2695 10.9148 4.84835 +97.2607 11.7021 5.19803 +96.9472 12.4518 5.53107 +96.9236 13.238 5.88031 +96.6947 13.9962 6.21709 +96.3601 14.7367 6.54603 +97.102 15.6474 6.95056 +96.9489 16.4212 7.29428 +96.7884 17.1938 7.63747 +96.6206 17.9651 7.98005 +96.4454 18.7349 8.32202 +96.2628 19.5033 8.66335 +96.9498 20.4553 9.08623 +96.9453 21.2705 9.44829 +96.5444 21.9986 9.77171 +96.3307 22.7677 10.1134 +96.979 23.7479 10.5488 +96.7485 24.5204 10.8919 +96.5107 25.2911 11.2343 +97.1284 26.2935 11.6795 +96.8737 27.0671 12.0232 +97.2791 28.031 12.4513 +97.0078 28.8057 12.7954 +96.729 29.5783 13.1386 +97.2939 30.6164 13.5997 +96.9978 31.3911 13.9439 +97.5401 32.4448 14.4119 +97.2266 33.2215 14.7569 +97.7459 34.2903 15.2317 +97.4147 35.0686 15.5774 +97.9106 36.1523 16.0588 +97.6541 36.9667 16.4205 +97.2053 37.7084 16.75 +97.025 38.5551 17.1261 +97.4753 39.662 17.6178 +97.0929 40.4378 17.9624 +97.7 41.6354 18.4944 +97.1182 42.3344 18.8048 +97.5192 43.4679 19.3083 +97.1004 44.2439 19.6531 +97.4761 45.3901 20.1622 +97.6599 46.4611 20.6379 +97.2125 47.2381 20.9831 +96.7578 48.0117 21.3267 +96.9953 49.1359 21.8261 +96.5224 49.9076 22.1689 +96.8216 51.0867 22.6926 +97.1056 52.2744 23.2202 +96.517 52.9998 23.5424 +96.7747 54.1973 24.0743 +96.8471 55.306 24.5668 +96.99 56.4691 25.0835 +96.4471 57.2404 25.4261 +96.6474 58.4614 25.9684 +96.7487 59.6388 26.4914 +96.1755 60.4081 26.8332 +96.3323 61.6446 27.3824 +96.8797 63.1535 28.0527 +96.4348 64.0311 28.4425 +96.5432 65.287 29.0004 +96.3953 66.3845 29.4879 +96.5511 67.7071 30.0754 +96.5313 68.9246 30.6162 +96.4173 70.0901 31.1339 +95.8998 70.9714 31.5253 +96.4531 72.6636 32.277 +96.445 73.9588 32.8523 +96.3434 75.1999 33.4037 +95.6972 76.0254 33.7703 +96.2408 77.8152 34.5653 +96.2373 79.1912 35.1766 +96.0672 80.4496 35.7356 +95.9536 81.7737 36.3237 +95.822 83.1019 36.9137 +95.5283 84.3074 37.4492 +95.5756 85.8347 38.1276 +94.1866 86.0767 38.2351 +93.291 86.7594 38.5383 +93.3621 88.3547 39.247 +92.859 89.4274 39.7235 +93.161 91.3008 40.5556 +92.8937 92.647 41.1536 +93.0761 94.4703 41.9635 +92.7005 95.757 42.5351 +92.898 97.6652 43.3827 +92.2866 98.75 43.8646 +92.3686 100.602 44.6874 +92.4858 102.534 45.5452 +92.3213 104.19 46.2812 +92.1322 105.853 47.0196 +92.0414 107.664 47.8242 +91.9839 109.554 48.6637 +91.9573 111.524 49.5389 +91.9596 113.575 50.4499 +91.4594 115.044 51.1023 +91.1123 116.736 51.8541 +91.8869 119.929 53.2721 +91.7012 121.937 54.1643 +91.6517 124.179 55.1601 +91.456 126.277 56.0922 +91.1726 128.304 56.9926 +91.0186 130.569 57.9985 +91.5171 133.847 59.4547 +91.5417 136.52 60.6421 +92.7584 141.083 62.669 +93.5393 145.125 64.4641 +93.55 148.081 65.7774 +93.5112 151.049 67.0959 +93.4713 154.107 68.4542 +93.2368 156.935 69.7102 +93.0962 160.013 71.0775 +93.1809 163.586 72.6647 +93.3404 167.417 74.3665 +92.8984 170.282 75.6387 +92.8032 173.891 77.2422 +92.7321 177.677 78.9237 +91.7504 179.817 79.8744 +90.6519 181.79 80.7508 +88.6279 181.922 80.8093 +88.6818 186.393 82.7952 +92.3298 198.786 88.3003 +91.9206 202.808 90.0869 +89.3811 202.177 89.8068 +87.3006 202.542 89.9688 +85.1124 202.633 90.0094 +82.5439 201.764 89.6233 +80.8194 202.929 90.1409 +78.3111 202.102 89.7735 +76.1829 202.2 89.8169 +73.9954 202.107 89.7755 +72.0628 202.689 90.0341 +69.854 202.472 89.9375 +67.5963 202.06 89.7548 +65.4087 201.803 89.6403 +63.4793 202.317 89.8689 +61.2243 201.759 89.6209 +59.1143 201.621 89.5596 +57.2369 202.262 89.8445 +55.0856 201.912 89.6891 +52.9688 201.634 89.5652 +51.0414 202.048 89.7495 +48.937 201.734 89.6099 +47.0296 202.206 89.8194 +44.9176 201.767 89.6245 +43.0083 202.208 89.8202 +41.003 202.183 89.8092 +38.8972 201.603 89.5514 +36.9707 201.905 89.6858 +34.9475 201.651 89.573 +33.0058 201.831 89.6529 +30.9521 201.273 89.4049 +29.1334 202.236 89.8328 +27.1159 201.826 89.6509 +25.1538 201.762 89.6225 +23.1531 201.319 89.4256 +21.3065 202.224 89.8275 +19.244 201.02 89.2929 +17.2688 200.529 89.0745 +15.3953 201.205 89.3749 +13.4612 201.138 89.3452 +11.5139 200.781 89.1865 +9.60063 200.957 89.2648 +7.71279 201.847 89.6602 +5.77202 201.444 89.4812 +3.85524 201.848 89.6606 +1.92071 201.141 89.3464 +1.34829e-14 201.24 89.3903 +-1.92158 201.232 89.387 +-3.84651 201.391 89.4577 +-5.77202 201.444 89.4812 +-7.69534 201.391 89.4577 +-9.62244 201.413 89.4674 +-11.5453 201.329 89.4301 +-13.4612 201.138 89.3452 +-15.3813 201.023 89.2941 +-17.2924 200.802 89.1958 +-19.2178 200.747 89.1715 +-21.2298 201.496 89.5039 +-23.0694 200.592 89.1025 +-25.0858 201.218 89.3805 +-26.9697 200.737 89.167 +-29.016 201.421 89.4707 +-30.799 200.276 88.9624 +-32.7989 200.566 89.0911 +-34.7128 200.297 88.9713 +-36.6736 200.283 88.9653 +-38.6194 200.162 88.9117 +-40.6567 200.476 89.0509 +-42.5886 200.234 88.9433 +-44.6584 200.603 89.1073 +-46.593 200.329 88.9855 +-48.5258 200.039 88.8569 +-50.659 200.534 89.0769 +-52.6653 200.478 89.0521 +-54.7469 200.671 89.1378 +-56.7111 200.403 89.0188 +-58.6225 199.944 88.8146 +-60.9036 200.701 89.1512 +-62.7626 200.032 88.854 +-64.8691 200.138 88.9007 +-67.0408 200.4 89.0172 +-69.2525 200.729 89.1634 +-71.1048 199.995 88.8374 +-73.6147 201.067 89.3136 +-75.5969 200.645 89.126 +-77.6435 200.379 89.0079 +-79.7249 200.181 88.9202 +-82.1937 200.908 89.2429 +-84.0731 200.159 88.9104 +-86.4943 200.672 89.1382 +-88.3322 199.805 88.7529 +-90.6194 199.937 88.8118 +-92.9159 200.048 88.8609 +-95.2213 200.138 88.9007 +-97.6981 200.54 89.0793 +-100.024 200.584 89.0992 +-101.809 199.531 88.6312 +-104.184 199.618 88.6701 +-106.612 199.766 88.7355 +-109.318 200.38 89.0083 +-111.455 199.907 88.7984 +-114.144 200.389 89.0123 +-116.382 200.036 88.8556 +-118.622 199.662 88.6896 +-121.493 200.308 88.9762 +-123.697 199.808 88.7542 +-126.25 199.842 88.7696 +-128.813 199.851 88.7736 +-131.129 199.444 88.5926 +-135.902 202.676 90.0284 +-139.316 203.755 90.5075 +-142.277 204.1 90.6609 +-144.275 203.035 90.1876 +-143.338 197.913 87.9126 +-143.657 194.641 86.4593 +-144.943 192.735 85.6125 +-147.065 191.946 85.2622 +-150.75 193.146 85.7952 +-730.382 918.72 408.094 +-734.963 907.723 403.209 +-740.473 898.031 398.904 +-744.759 887.016 394.011 +-750.368 877.73 389.886 +-754.861 867.278 385.243 +-760.911 858.739 381.45 +-764.884 847.984 376.673 +-770.638 839.331 372.829 +-775.181 829.47 368.449 +-780.513 820.566 364.494 +-784.873 810.751 360.134 +-790.979 802.83 356.616 +-795.237 793.123 352.304 +-800.393 784.412 348.434 +-805.237 775.479 344.466 +-811.014 767.516 340.929 +-814.597 757.564 336.509 +-820.951 750.263 333.265 +-824.874 740.805 329.064 +-830.909 733.309 325.735 +-835.269 724.39 321.773 +-840.545 716.33 318.192 +-844.994 707.623 314.325 +-860.264 707.89 314.444 +-885.266 715.778 317.947 +-890.708 707.612 314.32 +-895.302 698.819 310.414 +-905.158 694.12 308.327 +-911.597 686.758 305.057 +-914.39 676.701 300.589 +-887.791 645.375 286.674 +-892.816 637.482 283.168 +-901.17 631.951 280.711 +-908.608 625.73 277.948 +-913.744 617.916 274.477 +-921.389 611.788 271.755 +-926.382 603.885 268.245 +-933.67 597.47 265.395 +-939.092 589.846 262.009 +-946.927 583.714 259.285 +-952.464 576.14 255.92 +-960.278 569.916 253.156 +-965.683 562.236 249.744 +-973.814 556.111 247.023 +-980.877 549.326 244.009 +-988.4 542.753 241.09 +-994.923 535.593 237.909 +-1003.38 529.419 235.167 +-1010.57 522.522 232.103 +-382.034 193.531 85.9661 +-382.637 189.866 84.3382 +-383.111 186.164 82.6937 +-382.39 181.92 80.8085 +-379.391 176.664 78.4739 +-380.795 173.509 77.0725 +-383.246 170.826 75.8807 +-382.516 166.741 74.0661 +-382.099 162.834 72.3306 +-382.912 159.477 70.8396 +-136.94 55.72 24.7507 +-383.056 152.216 67.6139 +-383.298 148.691 66.0481 +-382.948 144.964 64.3927 +-383.669 141.665 62.9272 +-1184.51 426.417 189.414 +-384.728 134.967 59.952 +-381.226 130.261 57.8617 +-380.482 126.56 56.2176 +-379.696 122.88 54.5829 +-379.531 119.431 53.0508 +-380.657 116.399 51.7043 +-379.376 112.653 50.0403 +-379.961 109.486 48.6333 +-379.557 106.05 47.1073 +-380.747 103.071 45.7839 +-379.794 99.5268 44.2096 +-378.418 95.9087 42.6025 +-379.029 92.8161 41.2287 +-379.998 89.8123 39.8945 +-380.065 86.6014 38.4682 +-379.613 83.2897 36.9971 +-380.492 80.2797 35.6601 +-379.974 76.985 34.1966 +-382.064 74.2177 32.9674 +-381.779 70.9856 31.5317 +-381.264 67.7289 30.0851 +-381.11 64.5525 28.6741 +-381.121 61.4154 27.2806 +-380.805 58.2379 25.8691 +-380.458 55.07 24.462 +-381.463 52.1013 23.1433 +-380.758 48.9044 21.7233 +-380.814 45.8182 20.3524 +-379.947 42.6347 18.9382 +-380.737 39.6443 17.6099 +-379.708 36.4726 16.2011 +-379.843 33.4254 14.8475 +-380.845 30.4506 13.5261 +-381.121 27.4122 12.1764 +-380.471 24.3143 10.8004 +-379.79 21.2289 9.42982 +-380.278 18.2135 8.09039 +-379.638 15.1482 6.72879 +-379.069 12.0976 5.37373 +-379.87 9.09073 4.03809 +-142.878 2.27921 1.01242 +-146.394 1.16756 0.518626 +97.1 0 0 +96.9963 0.776657 0.336634 +96.9852 1.55325 0.67324 +96.9668 2.32973 1.0098 +97.0408 3.10924 1.34767 +97.0076 3.8861 1.68439 +96.9669 4.66267 2.02099 +96.9189 5.43889 2.35743 +96.8635 6.21469 2.69369 +97.6979 7.0548 3.05783 +97.7267 7.84478 3.40023 +97.5488 8.61816 3.73545 +97.4631 9.39889 4.07385 +97.37 10.1789 4.41192 +97.2695 10.9581 4.74968 +97.1616 11.7366 5.08708 +96.9472 12.5012 5.41852 +96.8247 13.277 5.75476 +96.6947 14.0517 6.09057 +96.3601 14.7952 6.41282 +96.2157 15.5661 6.74696 +96.9489 16.4864 7.14584 +96.5921 17.227 7.46685 +96.4246 17.9997 7.80179 +96.4454 18.8093 8.15267 +96.2628 19.5807 8.48705 +96.9498 20.5365 8.90132 +96.7508 21.312 9.23745 +96.5444 22.0858 9.57286 +96.3307 22.858 9.90755 +96.979 23.8421 10.3341 +96.7485 24.6177 10.6703 +97.3758 25.6191 11.1043 +97.1284 26.3978 11.4418 +96.6824 27.1208 11.7552 +96.4208 27.8939 12.0903 +97.0078 28.92 12.535 +96.729 29.6956 12.8713 +96.4429 30.469 13.2065 +96.9978 31.5156 13.6601 +96.6004 32.2597 13.9826 +97.2266 33.3532 14.4566 +97.7459 34.4264 14.9217 +97.5078 35.2413 15.275 +97.9106 36.2957 15.732 +97.5617 37.0783 16.0712 +97.2974 37.8939 16.4247 +96.9332 38.6715 16.7617 +97.4753 39.8193 17.2592 +97.0929 40.5982 17.5969 +96.8843 41.4516 17.9668 +97.1182 42.5023 18.4222 +97.5192 43.6403 18.9154 +97.1004 44.4194 19.2531 +97.4761 45.5701 19.7519 +96.9503 46.3064 20.071 +96.5062 47.0809 20.4067 +96.7578 48.2021 20.8927 +96.9953 49.3308 21.3819 +97.3058 50.5122 21.894 +96.8216 51.2894 22.2308 +97.0194 52.4352 22.7275 +97.2885 53.6353 23.2476 +96.7747 54.4122 23.5844 +96.1687 55.1364 23.8983 +96.99 56.6931 24.573 +96.4471 57.4675 24.9087 +96.6474 58.6933 25.44 +96.7487 59.8753 25.9523 +96.8348 61.0634 26.4673 +96.2504 61.8365 26.8023 +96.2285 62.9778 27.297 +96.273 64.1772 27.8169 +96.5432 65.546 28.4102 +96.4752 66.7031 28.9117 +96.4718 67.9198 29.4391 +96.5313 69.198 29.9931 +96.4956 70.4253 30.5251 +96.5215 71.7148 31.084 +96.5302 73.0102 31.6455 +95.8322 73.7803 31.9793 +95.8112 75.0811 32.5431 +96.3009 76.8085 33.2918 +96.2408 78.1238 33.8619 +96.2373 79.5053 34.4607 +96.0672 80.7688 35.0083 +95.9536 82.0981 35.5845 +95.8945 83.4948 36.1899 +95.6003 84.7056 36.7147 +95.5756 86.1751 37.3517 +94.1866 86.4181 37.457 +93.291 87.1035 37.7541 +93.1537 88.5072 38.3625 +93.5474 90.4477 39.2036 +93.161 91.6629 39.7303 +92.8261 92.9466 40.2867 +93.0761 94.845 41.1095 +92.7005 96.1368 41.6695 +92.8324 97.9829 42.4696 +92.8061 99.6996 43.2137 +92.3686 101.002 43.778 +92.5494 103.011 44.649 +92.1325 104.39 45.2467 +92.1944 106.344 46.0938 +92.2261 108.308 46.9448 +92.1665 110.207 47.768 +91.8972 111.893 48.499 +91.8406 113.878 49.3592 +91.6945 115.797 50.1912 +91.5188 117.722 51.0255 +91.8296 120.329 52.1554 +91.7578 122.496 53.0947 +91.6517 124.672 54.0376 +91.456 126.778 54.9507 +91.7172 129.583 56.1664 +91.4484 131.705 57.0863 +91.1991 133.911 58.0423 +91.5417 137.062 59.408 +93.2219 142.351 61.7003 +93.5901 145.779 63.1865 +93.55 148.669 64.4388 +93.5112 151.649 65.7305 +93.4228 154.638 67.0261 +93.2845 157.638 68.3266 +93.1432 160.728 69.666 +93.227 164.316 71.221 +93.295 168 72.8177 +92.8984 170.957 74.0994 +92.8032 174.581 75.6703 +92.7751 178.464 77.3533 +91.4546 179.949 77.9968 +90.7349 182.678 79.1799 +88.9126 183.23 79.4189 +89.1603 188.142 81.5482 +92.3298 199.574 86.5034 +91.7675 203.273 88.1065 +89.4561 203.15 88.0532 +87.2273 203.175 88.0639 +84.6823 202.41 87.7322 +82.719 202.994 87.9856 +80.5115 202.959 87.9704 +78.3779 203.077 88.0214 +76.1178 202.829 87.914 +73.9954 202.909 87.9486 +71.7846 202.708 87.8615 +69.854 203.275 88.1073 +67.5671 202.774 87.8901 +65.4087 202.603 87.8161 +63.2588 202.414 87.7342 +61.251 202.647 87.8352 +59.166 202.599 87.8142 +56.9865 202.176 87.6308 +55.0856 202.713 87.8639 +52.9688 202.433 87.7426 +51.0414 202.85 87.9231 +48.937 202.534 87.7863 +46.8217 202.11 87.6026 +44.9375 202.657 87.8396 +42.8366 202.199 87.6408 +40.8208 202.083 87.5907 +38.8972 202.402 87.729 +36.9707 202.706 87.8607 +34.9162 202.269 87.6714 +32.9763 202.45 87.7497 +30.9521 202.071 87.5855 +29.0029 202.129 87.6105 +27.1159 202.627 87.8265 +25.0858 202.016 87.5616 +23.1635 202.209 87.6451 +21.2394 202.387 87.7223 +19.2527 201.909 87.5151 +17.2375 200.958 87.1031 +15.3255 201.088 87.1596 +13.4673 202.028 87.5668 +11.5139 201.577 87.3715 +9.5919 201.571 87.3687 +7.67091 201.548 87.3588 +5.74846 201.419 87.3027 +3.83953 201.823 87.4781 +1.92071 201.939 87.5282 +1.34401e-14 201.396 87.2928 +-1.92246 202.122 87.6078 +-3.83429 201.549 87.3592 +-5.74584 201.327 87.263 +-7.66742 201.456 87.319 +-9.6268 202.304 87.6865 +-11.4982 201.303 87.2526 +-13.4612 201.936 87.527 +-15.3743 201.729 87.4371 +-17.2924 201.598 87.3807 +-19.2091 201.452 87.317 +-21.1532 201.565 87.366 +-23.1531 202.118 87.6058 +-25.0745 201.924 87.5219 +-26.9941 201.716 87.4316 +-28.8985 201.401 87.2952 +-30.799 201.071 87.152 +-32.7841 201.271 87.2387 +-34.5877 200.366 86.8466 +-36.6736 201.077 87.1548 +-38.5499 200.595 86.9456 +-40.4927 200.459 86.8867 +-42.5886 201.028 87.1333 +-44.479 200.589 86.9432 +-46.4267 200.405 86.8633 +-48.5474 200.921 87.0872 +-50.4565 200.525 86.9154 +-52.4785 200.56 86.9305 +-54.626 201.022 87.1309 +-56.686 201.11 87.1691 +-58.6484 200.826 87.0458 +-60.6631 200.702 86.9921 +-62.8453 201.091 87.1608 +-65.1247 201.723 87.4348 +-67.0116 201.107 87.1675 +-69.012 200.825 87.0454 +-71.1357 200.875 87.0673 +-73.3608 201.168 87.1942 +-75.3039 200.66 86.9738 +-77.4432 200.655 86.9718 +-79.6907 200.889 87.0733 +-81.8785 200.931 87.0916 +-84.109 201.039 87.1381 +-86.311 201.041 87.1389 +-88.2948 200.512 86.9098 +-90.9256 201.409 87.2984 +-92.8768 200.757 87.016 +-95.301 201.099 87.1643 +-97.2914 200.497 86.903 +-99.9825 201.297 87.2498 +-101.893 200.488 86.8995 +-104.614 201.238 87.2244 +-106.524 200.393 86.8581 +-108.917 200.435 86.8764 +-111.545 200.864 87.0621 +-113.729 200.452 86.8836 +-115.913 200.019 86.6963 +-118.24 199.809 86.6052 +-121.154 200.54 86.9217 +-123.746 200.68 86.9826 +-125.95 200.159 86.7567 +-128.813 200.644 86.9671 +-131.232 200.392 86.8577 +-135.432 202.776 87.8909 +-138.839 203.863 88.3622 +-141.793 204.213 88.5141 +-144.493 204.147 88.4855 +-143.283 198.622 86.0906 +-143.601 195.337 84.6668 +-144.434 192.819 83.5752 +-147.122 192.782 83.5593 +-150.112 193.091 83.6933 +-733.027 925.714 401.241 +-736.51 913.241 395.834 +-742.76 904.378 391.993 +-746.768 892.937 387.034 +-753.2 884.537 383.393 +-757.102 873.303 378.524 +-763.303 864.855 374.862 +-766.347 852.975 369.713 +-773.531 845.823 366.613 +-776.545 834.225 361.586 +-783.072 826.521 358.247 +-786.928 816.098 353.729 +-793.254 808.333 350.363 +-797.129 798.164 345.955 +-803.462 790.543 342.652 +-806.889 780.153 338.149 +-813.375 772.804 334.964 +-816.699 762.532 330.511 +-824.204 756.224 327.777 +-827.085 745.737 323.231 +-834.146 739.086 320.349 +-836.937 728.717 315.854 +-843.47 721.675 312.802 +-846.689 711.856 308.546 +-876.911 724.45 314.005 +-890.583 722.933 313.348 +-895.312 714.09 309.515 +-897.127 703.021 304.717 +-909.065 699.881 303.356 +-912.215 689.949 299.051 +-914.701 679.616 294.572 +-896.008 653.932 283.44 +-892.816 640.011 277.406 +-903.312 635.966 275.653 +-910.764 629.703 272.938 +-915.271 621.404 269.341 +-924.059 615.994 266.996 +-928.662 607.773 263.433 +-936.209 601.472 260.702 +-941.317 593.589 257.285 +-949.248 587.466 254.631 +-954.799 579.843 251.327 +-963.8 574.275 248.913 +-968.045 565.846 245.26 +-977.121 560.213 242.818 +-982.412 552.368 239.418 +-992.257 547.033 237.105 +-997.508 539.114 233.673 +-1006.84 533.354 231.177 +-1011.88 525.273 227.674 +-380.809 193.676 83.9466 +-380.44 189.525 82.1475 +-382.316 186.514 80.8427 +-383.543 183.192 79.4026 +-377.787 176.615 76.552 +-379.81 173.747 75.3088 +-382.527 171.183 74.1973 +-383.599 167.876 72.764 +-383.006 163.867 71.0265 +-382.548 159.958 69.3319 +-136.666 55.8291 24.1985 +-137.467 54.8425 23.7709 +-383.298 149.281 64.704 +-381.562 145.012 62.854 +-382.278 141.711 61.4231 +-1188.33 429.487 186.156 +-1209.55 426.006 184.648 +-381.226 130.778 56.6842 +-379.636 126.779 54.9511 +-379.507 123.306 53.4459 +-380.855 120.323 52.1526 +-380.373 116.774 50.6143 +-380.898 113.553 49.2184 +-378.626 109.534 47.4761 +-380.322 106.686 46.2417 +-379.693 103.193 44.7281 +-378.929 99.6941 43.2113 +-379.285 96.5094 41.8309 +-379.319 93.2549 40.4203 +-378.933 89.9158 38.973 +-379.677 86.8561 37.6469 +-381.655 84.0699 36.4392 +-379.322 80.3504 34.827 +-379.584 77.2109 33.4662 +-382.064 74.5121 32.2965 +-381.877 71.2855 30.8979 +-380.381 67.8401 29.4045 +-381.601 64.8922 28.1268 +-381.022 61.6431 26.7186 +-380.114 58.3628 25.2967 +-381.05 55.3745 24.0015 +-380.969 52.2401 22.6429 +-380.362 49.0473 21.259 +-381.012 46.0239 19.9486 +-380.84 42.9044 18.5965 +-379.346 39.6561 17.1885 +-381.399 36.7804 15.942 +-379.644 33.5405 14.5378 +-381.742 30.6434 13.2821 +-380.723 27.4921 11.9162 +-381.269 24.4619 10.6028 +-378.493 21.2402 9.20635 +-379.579 18.2521 7.91119 +-379.638 15.2083 6.59186 +-378.569 12.1295 5.25741 +-380.869 9.15081 3.96632 +-144.978 2.32188 1.00639 +-146.394 1.17219 0.508072 +96.2 0 0 +97.0963 0.780466 0.329953 +96.9852 1.55926 0.6592 +96.9668 2.33875 0.988738 +97.0408 3.12127 1.31956 +97.1075 3.90516 1.65096 +96.9669 4.68071 1.97884 +96.9189 5.45993 2.30826 +96.7637 6.23231 2.6348 +97.5982 7.07488 2.99101 +97.6271 7.8671 3.32593 +97.6484 8.66034 3.66128 +96.6675 9.35826 3.95634 +97.37 10.2183 4.31992 +96.3762 10.8995 4.60791 +97.1616 11.782 4.98099 +97.9375 12.6778 5.35972 +96.8247 13.3284 5.63475 +96.6947 14.1061 5.96356 +97.2478 14.9892 6.33691 +97.102 15.7703 6.66712 +96.9489 16.5502 6.99682 +96.7884 17.3288 7.32601 +96.6206 18.1061 7.65462 +96.4454 18.882 7.98265 +96.2628 19.6565 8.31005 +96.9498 20.616 8.71569 +96.7508 21.3944 9.0448 +96.5444 22.1713 9.37322 +97.202 23.1541 9.78871 +96.979 23.9344 10.1186 +96.7485 24.713 10.4478 +97.3758 25.7182 10.8727 +97.1284 26.4999 11.2032 +96.6824 27.2257 11.5101 +96.6115 28.0572 11.8616 +97.198 29.0888 12.2977 +96.729 29.8105 12.6028 +97.2939 30.8568 13.0451 +96.9035 31.6068 13.3622 +97.6341 32.7311 13.8375 +97.2266 33.4823 14.1551 +97.7459 34.5596 14.6106 +97.4147 35.344 14.9422 +97.0761 36.1256 15.2726 +97.5617 37.2218 15.736 +97.2974 38.0405 16.0822 +96.9332 38.8211 16.4122 +97.4753 39.9734 16.8993 +97.0929 40.7553 17.2299 +97.7 41.9623 17.7402 +97.2987 42.7461 18.0715 +96.89 43.5265 18.4014 +97.1004 44.5913 18.8516 +96.6742 45.3701 19.1809 +97.039 46.5282 19.6704 +97.2125 47.609 20.1274 +96.7578 48.3886 20.457 +96.9953 49.5217 20.936 +96.6095 50.3448 21.284 +96.8216 51.4878 21.7672 +97.1056 52.6849 22.2733 +97.2885 53.8428 22.7628 +96.7747 54.6228 23.0926 +96.7623 55.6914 23.5443 +96.3153 56.5165 23.8932 +96.3632 57.6397 24.368 +96.6474 58.9204 24.9094 +96.7487 60.107 25.4111 +96.1755 60.8824 25.7389 +96.8238 62.4455 26.3997 +96.3913 63.3284 26.773 +96.4348 64.5339 27.2826 +96.3824 65.6901 27.7714 +96.4752 66.9612 28.3088 +96.4718 68.1826 28.8252 +96.5313 69.4658 29.3676 +96.4956 70.6978 29.8885 +96.5215 71.9924 30.4358 +96.4531 73.2341 30.9608 +96.445 74.5395 31.5126 +95.7351 75.3118 31.8391 +96.3009 77.1057 32.5975 +95.6416 77.9379 32.9493 +96.2373 79.813 33.7421 +96.141 81.1436 34.3046 +95.8805 82.3529 34.8159 +95.8945 83.8179 35.4352 +95.8161 85.2253 36.0302 +95.5042 86.4441 36.5455 +93.4088 86.0361 36.373 +93.2209 87.3749 36.939 +93.1537 88.8497 37.5625 +92.7902 90.0627 38.0753 +93.0928 91.9503 38.8733 +92.8261 93.3063 39.4466 +93.0092 95.1438 40.2234 +92.7005 96.5089 40.8005 +92.898 98.4321 41.6135 +92.7412 100.015 42.2829 +92.3686 101.392 42.8651 +92.4858 103.339 43.6879 +92.5101 105.223 44.4846 +92.4434 107.044 45.2544 +92.1645 108.654 45.9351 +91.9839 110.414 46.6792 +91.9573 112.4 47.5187 +91.8406 114.319 48.3298 +91.6945 116.246 49.1445 +91.5188 118.178 49.9614 +91.4281 120.267 50.8446 +91.7578 122.97 51.9874 +91.6517 125.154 52.9107 +91.4008 127.192 53.772 +91.1181 129.235 54.6361 +91.4484 132.215 55.8958 +91.5171 134.898 57.0301 +91.4895 137.513 58.1356 +93.8914 143.928 60.8477 +93.5901 146.343 61.8687 +93.5 149.165 63.0615 +93.462 152.155 64.3258 +93.4228 155.236 65.6284 +93.714 158.977 67.2097 +93.0962 161.269 68.1789 +93.227 164.952 69.7357 +93.295 168.65 71.2991 +92.8091 171.454 72.4844 +92.8032 175.257 74.0923 +92.8612 179.321 75.8107 +91.4546 180.645 76.3702 +90.5275 182.966 77.3515 +88.3839 182.844 77.3001 +89.6787 189.968 80.3117 +92.3688 200.431 84.7352 +91.691 203.89 86.1974 +89.1189 203.167 85.8917 +86.8241 203.019 85.829 +84.6107 203.021 85.8298 +82.5439 203.348 85.9684 +80.3405 203.312 85.9529 +78.4112 203.949 86.2223 +75.9551 203.178 85.8964 +73.9954 203.694 86.1145 +71.6919 203.23 85.9182 +69.5232 203.095 85.8614 +67.304 202.765 85.7219 +65.1815 202.681 85.6861 +63.2588 203.197 85.9046 +61.0372 202.721 85.7033 +59.1402 203.293 85.9451 +56.9865 202.958 85.8033 +54.8195 202.515 85.616 +52.9454 203.126 85.8746 +50.8839 203.007 85.824 +48.8937 203.138 85.8793 +46.8217 202.893 85.7757 +44.9575 203.532 86.0459 +42.8366 202.981 85.8131 +40.839 202.955 85.8022 +38.7409 202.369 85.5545 +36.8386 202.764 85.7212 +34.8067 202.415 85.574 +32.9467 203.052 85.8431 +30.8268 202.031 85.4116 +28.9116 202.272 85.5132 +26.9209 201.947 85.3762 +25.0858 202.798 85.7356 +23.0903 202.35 85.5463 +21.249 203.261 85.9314 +19.2614 202.782 85.729 +17.2924 202.379 85.5584 +15.3464 202.142 85.4583 +13.4185 202.074 85.4295 +11.4668 201.53 85.1998 +9.5919 202.351 85.5467 +7.64299 201.592 85.2259 +5.74846 202.198 85.4821 +3.82033 201.592 85.2259 +1.92071 202.72 85.7029 +1.34278e-14 201.991 85.3945 +-1.91286 201.891 85.3524 +-3.81684 201.408 85.148 +-5.74846 202.198 85.4821 +-7.67091 202.328 85.537 +-9.58754 202.259 85.5078 +-11.5034 202.174 85.472 +-13.4002 201.798 85.3131 +-15.3115 201.682 85.264 +-17.2924 202.379 85.5584 +-19.122 201.314 85.1083 +-21.1436 202.252 85.5051 +-23.0381 201.892 85.3528 +-25.0519 202.522 85.6191 +-26.86 201.491 85.183 +-28.8854 202.089 85.4361 +-30.799 201.849 85.3345 +-32.6807 201.411 85.1495 +-34.5877 201.142 85.0354 +-36.6736 201.855 85.3372 +-38.4457 200.827 84.9023 +-40.4927 201.235 85.0748 +-42.4168 200.992 84.9724 +-44.4989 201.456 85.1682 +-46.4267 201.18 85.0518 +-48.3743 200.979 84.9669 +-50.2766 200.583 84.7995 +-52.4085 201.067 85.0039 +-54.3598 200.816 84.898 +-56.5358 201.353 85.125 +-58.6484 201.603 85.2305 +-60.7166 201.656 85.2531 +-62.7075 201.426 85.1558 +-64.8123 201.533 85.2009 +-66.7777 201.18 85.0518 +-68.9819 201.515 85.1931 +-70.8576 200.864 84.9182 +-73.2974 201.772 85.3022 +-75.3039 201.436 85.1601 +-77.51 201.605 85.2313 +-79.7249 201.753 85.294 +-81.8435 201.622 85.2387 +-83.7864 201.043 84.9938 +-86.311 201.819 85.3217 +-88.1824 201.032 84.9891 +-90.6194 201.507 85.19 +-92.4861 200.686 84.8427 +-94.8624 200.949 84.9541 +-97.088 200.851 84.9128 +-99.5264 201.154 85.0405 +-101.724 200.93 84.9459 +-104.184 201.186 85.0541 +-106.13 200.423 84.7317 +-108.917 201.211 85.0646 +-111.182 200.984 84.9689 +-113.498 200.818 84.8988 +-115.631 200.305 84.6819 +-118.383 200.826 84.9019 +-120.718 200.591 84.8026 +-123.5 201.056 84.9992 +-125.75 200.614 84.8123 +-128.407 200.786 84.8851 +-130.717 200.378 84.7126 +-134.596 202.304 85.5269 +-138.362 203.948 86.2219 +-141.256 204.227 86.3399 +-144.111 204.397 86.4116 +-143.448 199.621 84.3926 +-143.601 196.093 82.9012 +-144.434 193.565 81.8323 +-146.606 192.849 81.5297 +-150.054 193.763 81.916 +-736.495 933.689 394.73 +-740.197 921.365 389.52 +-746.371 912.291 385.684 +-750.177 900.484 380.692 +-757.695 893.259 377.638 +-760.588 880.719 372.337 +-767.582 873.069 369.102 +-769.655 859.972 363.565 +-777.194 853.118 360.668 +-780.377 841.586 355.792 +-787.927 834.864 352.951 +-789.777 822.221 347.606 +-797.671 815.979 344.967 +-799.629 803.764 339.803 +-807.213 797.306 337.073 +-810.469 786.646 332.566 +-817.057 779.306 329.463 +-819.363 767.979 324.674 +-827.527 762.211 322.235 +-830.081 751.334 317.637 +-837.168 744.633 314.804 +-841.144 735.213 310.822 +-847.785 728.173 307.845 +-852.809 719.775 304.295 +-886.869 735.512 310.948 +-895.302 729.576 308.439 +-902.784 722.836 305.589 +-905.035 711.963 300.992 +-913.585 706.083 298.506 +-914.144 694.084 293.434 +-913.924 681.667 288.184 +-910.799 667.3 282.111 +-900.617 648.102 273.994 +-904.978 639.604 270.402 +-915.875 635.687 268.746 +-919.693 626.823 264.998 +-928.347 621.247 262.641 +-932.732 612.798 259.069 +-940.96 606.863 256.56 +-945.85 598.755 253.132 +-954.305 592.881 250.649 +-957.885 583.968 246.881 +-969.084 579.657 245.058 +-973.021 570.956 241.38 +-983.312 565.944 239.261 +-987.016 557.104 235.524 +-997.057 551.806 233.284 +-1001.99 543.631 229.828 +-1012.56 538.458 227.641 +-1017.62 530.299 224.191 +-382.821 195.452 82.6301 +-382.022 191.049 80.7688 +-382.316 187.236 79.1567 +-383.1 183.688 77.6568 +-378.321 177.549 75.0615 +-381.421 175.16 74.0514 +-383.336 172.208 72.8034 +-383.057 168.288 71.1461 +-383.278 164.618 69.5947 +-382.184 160.424 67.8214 +-136.575 56.0076 23.678 +-134.441 53.8427 22.7627 +-383.298 149.858 63.3547 +-382.024 145.75 61.618 +-382.927 142.502 60.2446 +-1196.24 434.019 183.488 +-1221.87 432.012 182.639 +-381.226 131.284 55.5021 +-379.918 127.365 53.8452 +-379.507 123.784 52.3313 +-380.193 120.578 50.9762 +-380.657 117.313 49.5958 +-380.232 113.794 48.1079 +-380.438 110.484 46.7088 +-379.844 106.964 45.2205 +-380.076 103.698 43.8397 +-378.16 99.8772 42.2245 +-379.863 97.0302 41.0209 +-380.092 93.8064 39.658 +-379.708 90.4482 38.2383 +-379.677 87.1922 36.8618 +-381.363 84.3307 35.652 +-378.933 80.5785 34.0657 +-378.705 77.3302 32.6925 +-382.064 74.8004 31.6229 +-381.191 71.4328 30.1992 +-380.97 68.208 28.8359 +-380.126 64.8915 27.4338 +-379.939 61.7057 26.087 +-381.594 58.8167 24.8656 +-380.458 55.5024 23.4644 +-380.672 52.4014 22.1534 +-380.362 49.2371 20.8157 +-380.517 46.142 19.5072 +-379.45 42.9132 18.1422 +-381.333 40.0181 16.9182 +-381.399 36.9227 15.6096 +-380.54 33.7497 14.2682 +-378.952 30.5372 12.91 +-378.829 27.4613 11.6096 +-380.471 24.5052 10.3599 +-381.587 21.4968 9.08807 +-379.18 18.3035 7.73807 +-378.739 15.2309 6.43909 +-379.269 12.199 5.15731 +-380.47 9.17658 3.87953 +-146.078 2.34855 0.992881 +-145.494 1.16949 0.49442 +97.1 0 0 +97.0963 0.783411 0.322899 +96.9852 1.56515 0.645106 +97.0667 2.34999 0.968597 +96.9409 3.12982 1.29002 +97.1075 3.91989 1.61566 +96.9669 4.69838 1.93653 +97.0187 5.48618 2.26124 +96.8635 6.26227 2.58112 +96.8007 7.04354 2.90314 +97.5275 7.88874 3.2515 +97.5488 8.68415 3.57935 +96.6675 9.39357 3.87175 +97.37 10.2568 4.22756 +96.4755 10.9519 4.51405 +97.2607 11.8384 4.87945 +97.0463 12.6099 5.19742 +96.9236 13.3923 5.51992 +96.6947 14.1593 5.83606 +96.3601 14.9085 6.14484 +97.102 15.8298 6.52457 +96.9489 16.6126 6.84723 +96.7884 17.3942 7.16938 +96.6206 18.1744 7.49097 +96.4454 18.9533 7.81198 +96.2628 19.7306 8.13239 +96.9498 20.6937 8.52935 +96.7508 21.4752 8.85143 +96.5444 22.2549 9.17282 +97.202 23.2414 9.57942 +96.979 24.0247 9.90227 +96.7485 24.8062 10.2244 +96.5107 25.5859 10.5457 +97.1284 26.5999 10.9637 +96.6824 27.3285 11.264 +96.6115 28.1631 11.608 +97.0078 29.1414 12.0112 +96.9187 29.9816 12.3575 +97.2939 30.9732 12.7662 +96.9035 31.7261 13.0765 +97.6341 32.8546 13.5417 +97.3202 33.641 13.8658 +97.7459 34.69 14.2982 +97.4147 35.4773 14.6227 +97.9106 36.5737 15.0746 +97.5617 37.3622 15.3996 +97.2974 38.184 15.7383 +97.025 39.0045 16.0765 +97.4753 40.1242 16.538 +97.2749 40.9858 16.8931 +97.5187 42.0425 17.3287 +97.2987 42.9073 17.6851 +97.5192 43.9745 18.125 +97.2794 44.8421 18.4826 +96.5851 45.4993 18.7535 +97.039 46.7037 19.2499 +97.2125 47.7887 19.6971 +96.7578 48.5712 20.0196 +96.9953 49.7086 20.4884 +97.3058 50.899 20.9791 +96.8216 51.6821 21.3018 +97.0194 52.8367 21.7777 +97.2028 53.9984 22.2565 +96.6894 54.7806 22.5789 +96.8471 55.9506 23.0612 +96.231 56.6801 23.3619 +96.4471 57.9076 23.8678 +96.564 59.0917 24.3558 +96.8316 60.3855 24.8891 +96.1755 61.1121 25.1886 +96.2504 62.31 25.6823 +96.4727 63.6211 26.2227 +96.4348 64.7774 26.6993 +96.5432 66.0479 27.223 +96.3953 67.1582 27.6806 +96.5511 68.4962 28.2321 +96.6101 69.7848 28.7632 +95.9478 70.5616 29.0834 +96.5215 72.264 29.7851 +95.8358 73.04 30.1049 +95.7556 74.2859 30.6184 +96.4195 76.1364 31.3811 +96.3764 77.4573 31.9256 +96.3157 78.7832 32.4721 +96.2373 80.1141 33.0207 +95.4774 80.8875 33.3394 +95.9536 82.7267 34.0975 +96.0396 84.2614 34.73 +95.8161 85.5469 35.2599 +94.791 86.1222 35.497 +93.4088 86.3607 35.5953 +93.291 87.7705 36.1764 +93.1537 89.1849 36.7594 +92.7902 90.4026 37.2613 +93.161 92.3648 38.07 +93.3666 94.2038 38.828 +93.143 95.6406 39.4202 +92.7005 96.873 39.9282 +92.8324 98.7332 40.6949 +92.2866 99.9009 41.1762 +92.3686 101.775 41.9486 +92.4858 103.729 42.7538 +92.4472 105.549 43.5041 +92.0699 107.014 44.1081 +92.103 108.991 44.9229 +91.8012 110.611 45.5905 +92.2582 113.193 46.6548 +91.8406 114.75 47.2966 +91.6945 116.684 48.0938 +91.693 118.849 48.9862 +91.4854 120.797 49.7888 +91.4746 123.053 50.7189 +91.6517 125.626 51.7795 +91.4008 127.671 52.6224 +91.1726 129.8 53.4996 +91.5021 132.793 54.7331 +91.729 135.721 55.94 +91.6462 138.269 56.9902 +93.9944 144.63 59.612 +93.4886 146.737 60.4804 +93.5 149.727 61.7132 +93.462 152.729 62.9505 +93.4228 155.822 64.2252 +93.714 159.577 65.7728 +93.0962 161.878 66.7212 +93.1809 165.493 68.2112 +93.2496 169.204 69.7408 +92.8091 172.101 70.9347 +92.7593 175.835 72.4739 +92.6029 179.497 73.9833 +90.9052 180.237 74.2885 +90.2372 183.068 75.455 +88.6279 184.042 75.8566 +91.2737 194.076 79.9924 +92.3688 201.188 82.9236 +91.3083 203.805 84.0024 +88.7068 202.991 83.6667 +87.0807 204.387 84.2421 +84.5032 203.528 83.8881 +82.5089 204.029 84.0946 +79.9985 203.21 83.757 +77.777 203.063 83.6964 +75.6295 203.071 83.6998 +73.7099 203.674 83.9483 +71.2284 202.678 83.5379 +69.5533 203.95 84.0622 +67.2747 203.443 83.853 +65.1247 203.268 83.781 +63.0107 203.163 83.7379 +61.0907 203.665 83.9445 +58.8813 203.167 83.7395 +56.9615 203.635 83.9323 +54.7953 203.189 83.7486 +52.7587 203.175 83.7425 +50.614 202.691 83.5432 +48.6773 203.002 83.6712 +46.6346 202.844 83.6065 +44.6784 203.031 83.6834 +42.6267 202.749 83.5672 +40.7114 203.085 83.7055 +38.7756 203.315 83.8004 +36.7231 202.891 83.6255 +34.6815 202.449 83.4434 +32.8728 203.36 83.8191 +30.8408 202.885 83.6232 +28.9246 203.126 83.7227 +26.8966 202.526 83.4754 +24.9839 202.735 83.5615 +23.0694 202.93 83.6415 +21.134 202.924 83.6392 +19.1655 202.534 83.4784 +17.1982 202.035 83.273 +15.2697 201.89 83.2132 +13.4185 202.836 83.603 +11.4773 202.475 83.454 +9.56137 202.467 83.451 +7.62903 201.983 83.2513 +5.72752 202.221 83.3496 +3.82033 202.353 83.4037 +1.90588 201.913 83.2227 +1.33666e-14 201.828 83.1877 +-1.91373 202.746 83.5657 +-3.81859 202.26 83.3656 +-5.73013 202.314 83.3877 +-7.63601 202.168 83.3275 +-9.54392 202.098 83.2989 +-11.4406 201.828 83.1877 +-13.3513 201.821 83.1846 +-15.2488 201.614 83.0993 +-17.1982 202.035 83.273 +-19.0522 201.337 82.9849 +-21.0381 202.003 83.2597 +-22.944 201.827 83.1869 +-24.9613 202.552 83.486 +-26.8844 202.435 83.4377 +-28.781 202.119 83.3073 +-30.6738 201.787 83.1705 +-32.5476 201.349 82.9899 +-34.4469 201.079 82.8786 +-36.525 201.796 83.1743 +-38.411 201.402 83.012 +-40.3469 201.267 82.9564 +-42.3787 201.569 83.0806 +-44.3594 201.582 83.0859 +-46.2188 201.035 82.8607 +-48.2877 201.377 83.0017 +-50.1866 200.98 82.8378 +-52.175 200.927 82.8161 +-54.3115 201.395 83.0089 +-56.2604 201.129 82.8992 +-58.3896 201.471 83.0402 +-60.5028 201.705 83.1366 +-62.4319 201.298 82.9689 +-64.7839 202.205 83.3428 +-66.5438 201.232 82.9419 +-68.6211 201.216 82.9354 +-70.8885 201.71 83.1389 +-72.7897 201.13 82.9 +-74.8807 201.06 82.871 +-77.2095 201.582 83.0859 +-79.3829 201.646 83.1126 +-81.5983 201.778 83.1667 +-83.4281 200.939 82.8211 +-85.9445 201.72 83.1431 +-87.8078 200.933 82.8188 +-90.275 201.498 83.0516 +-92.4861 201.443 83.0288 +-94.8624 201.707 83.1377 +-96.6406 200.68 82.7144 +-99.2361 201.324 82.9796 +-101.386 201.018 82.8535 +-103.71 201.027 82.8573 +-106.261 201.429 83.023 +-108.828 201.804 83.1778 +-110.819 201.084 82.8809 +-113.544 201.658 83.1176 +-115.725 201.225 82.9388 +-118.001 200.933 82.8184 +-120.281 200.62 82.6896 +-123.401 201.654 83.1156 +-125.2 200.491 82.6363 +-127.9 200.748 82.7422 +-130.253 200.421 82.6077 +-133.394 201.254 82.951 +-137.885 204.012 84.0878 +-140.772 204.296 84.2047 +-143.785 204.703 84.3724 +-143.504 200.451 82.6199 +-143.713 196.987 81.192 +-144.377 194.219 80.0515 +-146.09 192.895 79.5058 +-149.763 194.118 80.0095 +-741.609 943.721 388.974 +-744.54 930.269 383.429 +-752.148 922.822 380.36 +-753.951 908.429 374.428 +-762.066 901.802 371.696 +-764.572 888.673 366.284 +-772.554 882.039 363.55 +-774.68 868.853 358.115 +-782.851 862.57 355.526 +-785.507 850.315 350.475 +-792.322 842.689 347.332 +-794.813 830.586 342.343 +-802.823 824.348 339.772 +-805.168 812.387 334.842 +-812.806 805.859 332.151 +-814.736 793.772 327.169 +-822.823 787.767 324.694 +-825.531 776.68 320.124 +-833.042 770.186 317.448 +-835.145 758.77 312.743 +-842.922 752.581 310.192 +-844.844 741.234 305.514 +-865.411 746.117 307.527 +-883.479 748.475 308.499 +-893.037 743.422 306.416 +-901.144 737.107 303.814 +-910.255 731.568 301.531 +-910.51 718.972 296.339 +-915.347 710.113 292.688 +-914.221 696.761 287.184 +-911.126 682.144 281.159 +-909.547 668.897 275.699 +-910.546 657.719 271.092 +-910.294 645.789 266.175 +-922.424 642.648 264.881 +-925.239 632.982 260.896 +-935.547 628.428 259.019 +-938.105 618.654 254.991 +-948.332 613.925 253.042 +-951.866 604.837 249.296 +-962.43 600.185 247.378 +-965.139 590.611 243.432 +-975.542 585.722 241.417 +-979.515 576.935 237.796 +-990.181 572.048 235.781 +-993.667 562.975 232.041 +-1004.51 558.031 230.004 +-1008.54 549.249 226.384 +-1020.09 544.511 224.431 +-1024.41 535.851 220.862 +-380.547 195.025 80.3834 +-381.67 191.594 78.9692 +-383.641 188.594 77.7326 +-382.036 183.869 75.7854 +-377.876 178.009 73.3702 +-380.168 175.243 72.23 +-382.257 172.371 71.0464 +-382.516 168.684 69.5267 +-382.371 164.849 67.946 +-382.821 161.297 66.4819 +-134.931 55.5421 22.8928 +-137.192 55.1519 22.732 +-382.378 150.063 61.8515 +-382.117 146.335 60.3151 +-382.092 142.727 58.8277 +-385.937 140.554 57.9322 +-1236.15 438.711 180.824 +-382.069 132.071 54.4359 +-380.482 128.035 52.7722 +-380.45 124.559 51.3393 +-380.004 120.973 49.8615 +-381.511 118.02 48.6444 +-379.947 114.137 47.0439 +-381.01 111.068 45.7787 +-380.514 107.557 44.3318 +-378.926 103.774 42.7725 +-379.218 100.534 41.4372 +-379.863 97.3963 40.1439 +-380.092 94.1604 38.8101 +-380.385 90.9516 37.4875 +-379.677 87.5212 36.0736 +-380.877 84.541 34.8453 +-379.615 81.028 33.3974 +-378.705 77.622 31.9935 +-382.064 75.0827 30.9468 +-381.485 71.7576 29.5764 +-381.853 68.6242 28.2848 +-381.7 65.4059 26.9584 +-379.84 61.9225 25.5226 +-381.397 59.0081 24.3214 +-380.951 55.7841 22.9926 +-380.672 52.5991 21.6798 +-381.154 49.5258 20.4131 +-380.814 46.3522 19.105 +-380.542 43.1991 17.8054 +-380.637 40.0959 16.5263 +-379.708 36.8977 15.2081 +-381.734 33.9834 14.0069 +-381.742 30.8781 12.727 +-381.022 27.7245 11.4272 +-381.369 24.6557 10.1623 +-379.291 21.448 8.84022 +-380.578 18.4403 7.60053 +-379.339 15.3126 6.3114 +-379.469 12.2514 5.04968 +-379.57 9.18942 3.78761 +-144.978 2.33966 0.964337 +-147.794 1.19246 0.491497 diff --git a/.svn/pristine/44/44fb84f5772658c088caa1c292086fcaa5e92a40.svn-base b/.svn/pristine/44/44fb84f5772658c088caa1c292086fcaa5e92a40.svn-base new file mode 100644 index 0000000..50b7664 --- /dev/null +++ b/.svn/pristine/44/44fb84f5772658c088caa1c292086fcaa5e92a40.svn-base @@ -0,0 +1,68 @@ +ANN: Approximate Nearest Neighbors +Version: 1.1.1 +Release date: Aug 4, 2006 +---------------------------------------------------------------------------- +Copyright (c) 1997-2005 University of Maryland and Sunil Arya and David +Mount. All Rights Reserved. See Copyright.txt and License.txt for +complete information on terms and conditions of use and distribution of +this software. +---------------------------------------------------------------------------- + +Authors +------- +David Mount +Dept of Computer Science +University of Maryland, +College Park, MD 20742 USA +mount@cs.umd.edu +http://www.cs.umd.edu/~mount/ + +Sunil Arya +Dept of Computer Science +Hong University of Science and Technology +Clearwater Bay, HONG KONG +arya@cs.ust.hk +http://www.cs.ust.hk/faculty/arya/ + +Introduction +------------ +ANN is a library written in the C++ programming language to support both +exact and approximate nearest neighbor searching in spaces of various +dimensions. It was implemented by David M. Mount of the University of +Maryland, and Sunil Arya of the Hong Kong University of Science and +Technology. ANN (pronounced like the name ``Ann'') stands for +Approximate Nearest Neighbors. ANN is also a testbed containing +programs and procedures for generating data sets, collecting and +analyzing statistics on the performance of nearest neighbor algorithms +and data structures, and visualizing the geometric structure of these +data structures. + +The ANN source code and documentation is available from the following +web page: + + http://www.cs.umd.edu/~mount/ANN + +For more information on ANN and its use, see the ``ANN Programming +Manual,'' which is provided with the software distribution. + +---------------------------------------------------------------------------- +History + Version 0.1 03/04/98 + Preliminary release + Version 0.2 06/24/98 + Changes for SGI compiler. + Version 1.0 04/01/05 + Fixed a number of small bugs + Added dump/load operations + Added annClose to eliminate minor memory leak + Improved compatibility with current C++ compilers + Added compilation for Microsoft Visual Studio.NET + Added compilation for Linux 2.x + Version 1.1 05/03/05 + Added make target for Mac OS X + Added fixed-radius range searching and counting + Added instructions on compiling/using ANN on Windows platforms + Fixed minor output bug in ann2fig + Version 1.1.1 08/04/06 + Added "planted" distribution + Updated old source comments for GNU LPL. diff --git a/.svn/pristine/45/45b9ffd1f05e288166137eb79657d4f34d0b4c73.svn-base b/.svn/pristine/45/45b9ffd1f05e288166137eb79657d4f34d0b4c73.svn-base new file mode 100644 index 0000000..b60cd7b --- /dev/null +++ b/.svn/pristine/45/45b9ffd1f05e288166137eb79657d4f34d0b4c73.svn-base @@ -0,0 +1,28 @@ +/* + * rotation3d.cc + * + * Created on: Feb 16, 2012 + * Author: Remus Claudiu Dumitru + */ + +#include "model/rotation3d.h" + +model::Rotation3d::Rotation3d(const Rotation3d& other) { + this->x = other.x; + this->y = other.y; + this->z = other.z; +} + +model::Rotation3d& model::Rotation3d::operator=(const Rotation3d& other) { + if (this != &other) { + this->x = other.x; + this->y = other.y; + this->z = other.z; + } + + return *this; +} + +model::Rotation3d model::Rotation3d::getInverse() { + return Rotation3d(-this->x, -this->y, -this->z); +} diff --git a/.svn/pristine/45/45c3bc50109c7758b75ffd9cc439d1cf963a9a55.svn-base b/.svn/pristine/45/45c3bc50109c7758b75ffd9cc439d1cf963a9a55.svn-base new file mode 100644 index 0000000..6deb69c --- /dev/null +++ b/.svn/pristine/45/45c3bc50109c7758b75ffd9cc439d1cf963a9a55.svn-base @@ -0,0 +1,134 @@ +/* + * parascan implementation + * + * Copyright (C) Dorit Borrmann + * + * Released under the GPL version 3. + * + */ + +#include +#include +#include "shapes/parascan.h" + + +/* -------------------------------------------------------------------------- */ + +int paramtr_scan_int(FILE *stream, const char *search,int defaultval) +{ + char target[256]; + + if(paramtr_scan_str(stream, search, target)) + return(atoi(target)); + else + return(defaultval); +} + +/* -------------------------------------------------------------------------- */ + +double paramtr_scan_double(FILE *stream, const char *search,double defaultval) +{ + char target[256]; + + if(paramtr_scan_str(stream, search, target)) + return(atof(target)); + else + return(defaultval); +} + +/* -------------------------------------------------------------------------- */ + +bool paramtr_scan_str(FILE *stream, const char *search, char *target) +{ + const char *ptr = search; + int c, mem; + + /* erster durchlauf */ + mem = 0; + + while(mem < 2) { + if((c = getc(stream)) == EOF) { + rewind(stream); + mem++; + } + else { + /* kommentarzeile uebergehen */ + if(c == COMMENT) { + while((c = getc(stream)) != LF ); + } /* if */ + + if(*ptr) { + if(c == (int)*ptr) { + ptr++; + } + else { + ptr = search; + } /* if */ + } + else { + int numberOfItemsRead = fscanf(stream, "%s", target); + if(!numberOfItemsRead) + { + return false; + } + return true; + } /* if */ + } /* if */ + } /* while */ + + return false; +} + +/* -------------------------------------------------------------------------- */ + +int paramtr_scan_echo(const char *filename, const char *search) +{ + const char *ptr = search; + char str[256]; + char* target; + int c, no; + FILE *stream; + + /* dateiverbindung oeffnen */ + if((stream = fopen(filename, "rt")) == NULL) { + printf("paramtr_scan_echo() error\n"); + return 0; + } /* if */ + + no = 0; + + while((c = getc(stream)) != EOF) { + /* kommentarzeile uebergehen */ + if(c == COMMENT) { + while((c = getc(stream)) != LF ); + } /* if */ + + if(*ptr) { + if(c == (int)*ptr) { + ptr++; + } + else { + ptr = search; + } /* if */ + } + else { + target = &(str[0]); + while(c != LF) { + *target = (char) c; + target++; + c = getc(stream); + } /* while */ + *target = 0; + printf("%s\n", str); + ptr = search; + no++; + } /* if */ + } /* while */ + + /* datei schliessen */ + fclose(stream); + + return no; +} + +/* -------------------------------------------------------------------------- */ diff --git a/.svn/pristine/46/46963684b86e9b2e5db388350bf335d923a2b7c8.svn-base b/.svn/pristine/46/46963684b86e9b2e5db388350bf335d923a2b7c8.svn-base new file mode 100644 index 0000000..89c6731 --- /dev/null +++ b/.svn/pristine/46/46963684b86e9b2e5db388350bf335d923a2b7c8.svn-base @@ -0,0 +1,415 @@ +/** @file + * @brief GPU-ICP Algorithm + * @author Deyuan Qiu, University of Applied Sciences Bonn-Rhein-Sieg, Sankt Augustin, Germany. + * Fraunhofer IAIS, Sankt Augustin, Germany. + */ + +#ifndef CICPGPUCUDA_H +#define CICPGPUCUDA_H + +#include // C standard library +#include // C I/O (for sscanf) +#include // string manipulation +#include // file I/O +#include // min() +#include + +#include "ANN/ANN.h" // ANN declarations +#include "ANN/ANNperf.h" // kd-tree printing +#include "kd_tree.h" // ANN node declaration + +#include "newmat/newmat.h" +#include "newmat/newmatap.h" +using namespace NEWMAT; + +#include "slam6d/cuda/CSystem.h" + +/* + * The maximum block size. For nVidia G80 architecture, 192 is suggested. + */ +//#define BLOCKSIZE 512 +//#define BLOCKSIZE 256 +#define BLOCKSIZE 64 +//#define BLOCKSIZE 1 + + +/* + * The big enough size of the AoS that is going to allocate for the kd-tree. + */ +//#define TREESIZE 262143 +#define TREESIZE 524288 + +#ifdef use_namespace +using namespace std; +#endif + +/* +* @class CIcpGpuCuda +* @brief Iterative Closest Point algorithm is implemented on a programmable graphic +* device. Kernels are implemented by CUDA (Compute Unified Device Architecture) GPGPU +* programming language (http://www.nvidia.com/object/cuda_home.html). To compile the code, +* nvcc compiler and related CUDA libraries must be installed. Kernel files are wrapped in +* CIcpGpuCuda_kernel.cuh and CIcpGpuCuda.cu. Attention: only NVidia GeForce G80 architecture +* and onwards graphic devices are garanteed to be supported. +* @author Deyuan Qiu +* @date 2008.Nov. +*/ +class CIcpGpuCuda{ + +public: + + /* + * standard constructor + * @param argc passed from application main function. + * @param argv passed from application main function. + * @param unWidth the width of point cloud image. + * @param unHeight the height of pint cloud image. + */ + CIcpGpuCuda(unsigned unWidth, unsigned unHeight, unsigned max_iter){ + init(unWidth, unHeight,max_iter); + } + + /* + * standard destructor + */ + ~CIcpGpuCuda(); + + /* + * Set maximum iteration for ICP. + * @param unTimes number of times ICP iterates maximally. + */ + void setMaxIteration(unsigned unTimes); + + /* + * Set maximum processing time for ICP, in milliseconds. + * @param dMilliseconds ICP quits when elapsed time exceeds. + */ + void setMaxProcTime(double dMilliseconds); + + /* + * Set maximum deviation for ICP. + * @param dDeviation ICP quits when specified deviation is achieved. + */ + void setMaxDeviation(double dDeviation); + + /* + * Set search radiuses for ICP. An iterative decreasing radius + * is applied. Search radius decreases linearly from fRadiusMax to + * fRadiusMin within unIterations iterations. + * @param fRadiusMax Initial radius. + * @param fRadiusMin Final radius. + * @param unIterations Number of iterations, in which radius decreases. + */ + void setSearchRadius(float fRadiusMax, float fRadiusMin, unsigned unIterations); + + /* + * Get the number of points in point cloud. Model point cloud + * and scene point cloud must have the same number of points. + * @return Number of points in point cloud. + */ + unsigned getSize(void); + + /* + * Get the the 2 dimensional pointer to the scene point cloud. Page-lock memory is + * allocated and freed by the class. The data type must be casted to single pricision + * float, and the array should be loaded as [3][N]. + * @return 2 dimensional pointer to scene point cloud. + */ + float** getScenePointer(void); + + /* + * Get the the 2 dimensional pointer to the model point cloud. Memory allocation + * and freeing is handled by the class. The data type must be casted to double pricision + * float, and the array should be loaded as [N][3]. Notice the difference to + * getScenePointer(). + * @return 2 dimensional pointer to scene point cloud. + */ + double** getModelPointer(void); + + /* + * The method is called after point clouds are loaded, and before iteration() is called. + */ + void setPointClouds(void); + + /* + * ICP iterations. + */ + void iteration(void); + + /* + * Get the transformation matrix. + * @return The transformation matrix. + */ + Matrix* getMatrix(void); + + /** + * These two functions are to set and get the tree pointer + * It is supposed to be created in scan file and passed to this class + **/ + + void setTreePointer(ANNkd_tree *); + void getTreePointer(ANNkd_tree *&); + + double getTime(void); + + void setMinimums(float x, float y, float z); + Matrix** getMatrices(); + + void setTrans_Trans_inv(const double[], const double[]); + + void findNearestNeighbors(float, unsigned); + + Matrix fillHomoMatrix(Matrix* , double*); + + void computeCentroid(float*, float*, float*, float *&); + + Matrix computeHMatrix(); + + void printMatrix(Matrix *); + + void setSize(unsigned int width, unsigned int height); + +private: + + //////////////// + //cpu variables + //////////////// + + + /* + * Initialization. Memories are allocated and default environmental state + * is set. Called by standard constructor. + * @param unWidth the width of point cloud image. + * @param unHeight the height of pint cloud image. + */ + void init(unsigned unWidth, unsigned unHeight, unsigned max_iter); + + /* + * Initialization. Memories are allocated and default environmental state + * is set. Called by init(). + * @param unWidth the width of point cloud image. + * @param unHeight the height of pint cloud image. + */ + void setResolution(unsigned unWidth, unsigned unHeight); + + /* + * The internal search structure is set. + */ + void setTree(void); + + /* + * Set the model point cloud. + */ + void setModel(void); + + /* + * Set the scene point cloud. + */ + void setScene(void); + + /* + * Calculate the size of the search structure from its depth. The depth + * is the number of levels of the tree. The search structure then is arraged + * into a struture of arrays (SoA). A left-balanced binary tree is suggested. + * @param nDepth Depth of the kd-tree. + */ + inline int depth2size(int nDepth); + + /* + * Rearrange the search structure into a structure of arrays (SoA). The rule + * is: the N node's left child has the index of 2N, while the right child 2N+1. + * Arrangement is fulfilled in recursion. + * @param root pointer to the root node + * @param unStart the currenet node + */ + void rearrange(ANNkd_ptr root, unsigned unStart); + + /* + * Get CUBLAS errors before this line. + */ + void getCublasErr(void); + + /* + * Get CUDA errors before this line. + */ + void getCudaErr(void); + + /* + * tree: structure of arrays (SoA) + */ + unsigned _unSizeTree; //Size of the allocated memory. + float* fSplit; + unsigned* unIdx; + unsigned* unAxis; + bool* bIsLeaf; + float* fLoBound; + float* fHiBound; + unsigned unSizeTree; //Size of memory that the tree actually takes. + + /* + * transformation matrix + */ + float m[16]; + Matrix* trans; + Matrix* trans_inv; + + /* + * kernel constants + */ + unsigned unSizeData; + unsigned unNoThreads; + unsigned unNoBlocks; + unsigned _unWidth; + unsigned _unHeight; + + /* + * search structure + */ + ANNkd_tree* kdTree; + ANNkdStats* st; + + /* + * data pointers + */ + float* fHstScn[3]; + float* fHstScnX; + float* fHstScnY; + float* fHstScnZ; + double** h_idata; + + /* + * icp + */ + unsigned unMaxIteration; + unsigned _unIterations; + float fMaxProcTime; + float fMaxDeviation; + float _fSearchRadiusMax; + float _fSearchRadiusMin; + float _fRadiusStep; + unsigned _unNoQSizeStep; + float* temp_ones; + float* ones; + + enum EnumIcpState { ICP_LIMIT = 0, + ICP_PROCESSING = 1, + ICP_NOTMATCHABLE = 2, + ICP_MAXITERATIONS = 3, + ICP_TIMEELAPSED = 4, + ICP_SUCCESS = 5 }; + + unsigned unPairs; + unsigned* pNoPairs; + Matrix* final_matrix; + double _dElapsedTime; + Matrix** matrices; + + /* + Minimums of all values + */ + float min_x; + float min_y; + float min_z; + + clock_t init_time; // To save the starting point of the timer Added by Shams + + //////////////// + //gpu variables + //////////////// + + float* fDevSplit; + unsigned* unDevIdx; + unsigned* unDevAxis; + bool* bDevIsLeaf; + float* fDevLoBound; + float* fDevHiBound; + float* fDevScnX; + float* fDevScnY; + float* fDevScnZ; + float* fDist; + float* fDistCpt; //compacted distance list + unsigned* unMask; + float* fDevMdlPairX; + float* fDevMdlPairY; + float* fDevMdlPairZ; + float* fDevScnPairX; + float* fDevScnPairY; + float* fDevScnPairZ; + + ///////////// + float* cngfDevScnX; + float* cngfDevScnY; + float* cngfDevScnZ; + float* cngfDevMdlPairX; + float* cngfDevMdlPairY; + float* cngfDevMdlPairZ; + float* cngfDevScnPairX; + float* cngfDevScnPairY; + float* cngfDevScnPairZ; + ///////////// + float* fCenModX; + float* fCenModY; + float* fCenModZ; + float* fCenScnX; + float* fCenScnY; + float* fCenScnZ; + unsigned* unNoPairs; + + //kd-tree based nearest neighbor search, using a priority queue. + void class_nns_priority( + float* fDevScnX, //scene point cloud + float* fDevScnY, + float* fDevScnZ, + float* fDist, //squared distance between pairs, for deviation calculation + float* fDevSplit, //kd-tree: position of splitting plain (inner node) + unsigned* unDevIdx, //kd-tree: index of point (leaf node) + unsigned* unDevAxis, //kd-tree: axis where splitting plain locates (inner node) + bool* bDevIsLeaf, //kd-tree: node type (both nodes) + float* fDevLoBound, //kd-tree: lower bounding box (inner node) + float* fDevHiBound, //kd-tree: higher bounding box (inner node) + unsigned* unMask, //a 0-1 mask of pair and non-pairs. + float* fDevMdlPairX, + float* fDevMdlPairY, + float* fDevMdlPairZ, + float* fDevScnPairX, + float* fDevScnPairY, + float* fDevScnPairZ, + float fSearchRadius, + unsigned unSize, + unsigned unWidth, + unsigned unQStep); //for dubugging thread + + + //centralize a pointcloud + void class_centralize(unsigned* unMask, + float* fDevMdlPairX, + float* fDevMdlPairY, + float* fDevMdlPairZ, + float* fDevScnPairX, + float* fDevScnPairY, + float* fDevScnPairZ, + float fcm0, + float fcm1, + float fcm2, + float fcs0, + float fcs1, + float fcs2, + float* fCenteredModX, //centered point cloud + float* fCenteredModY, + float* fCenteredModZ, + float* fCenteredScnX, + float* fCenteredScnY, + float* fCenteredScnZ); + + //transform point cloud + void class_transformation(float* fDevScnX, //piont cloud to be transformed + float* fDevScnY, + float* fDevScnZ, + float m00, float m01, float m02, float m03, + float m10, float m11, float m12, float m13, + float m20, float m21, float m22, float m23); +}; + + + +#endif diff --git a/.svn/pristine/46/469b70b6dd92038423f3c188f07703a7879937da.svn-base b/.svn/pristine/46/469b70b6dd92038423f3c188f07703a7879937da.svn-base new file mode 100644 index 0000000..eb4a81d --- /dev/null +++ b/.svn/pristine/46/469b70b6dd92038423f3c188f07703a7879937da.svn-base @@ -0,0 +1,142 @@ +/** + * @file + * @brief Implementation of reading 3D scans + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Jochen Sprickerhof + */ + +#include "slam6d/scan_io_uos_frames.h" +#include "slam6d/globals.icc" +#include +using std::ifstream; +#include +using std::cout; +using std::cerr; +using std::endl; +#include +using std::exception; + +#ifdef _MSC_VER +#include +#endif + +/** + * Reads specified scans from given directory. + * + * Scan poses will NOT be initialized after a call + * to this function. + * + * This function actually implements loading of 3D scans + * in UOS file format and will be compiled as shared lib. + * + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param dir The directory from which to read + * @param maxDist Reads only Points up to this Distance + * @param minDist Reads only Points from this Distance + * @param euler Initital pose estimates (will not be applied to the points + * @param ptss Vector containing the read points + */ +int ScanIO_uos_frames::readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss) +{ + static int fileCounter = start; + string scanFileName; + string framesFileName; + + ifstream scan_in, frames_in; + + double maxDist2 = sqr(maxDist); + + int my_fileNr = fileCounter; + double transMat[16]; + int type; + + if (end > -1 && fileCounter > end) return -1; // 'nuf read + scanFileName = dir + "scan" + to_string(fileCounter,3) + ".3d"; + framesFileName = dir + "scan" + to_string(fileCounter,3) + ".frames"; + + scan_in.open(scanFileName.c_str()); + frames_in.open(framesFileName.c_str()); + + // read 3D scan + if (!frames_in.good() && !scan_in.good()) return -1; // no more files in the directory + if (!frames_in.good()) { cerr << "ERROR: Missing file " << framesFileName << endl; exit(1); } + if (!scan_in.good()) { cerr << "ERROR: Missing file " << scanFileName << endl; exit(1); } + cout << "Processing Scan " << scanFileName; + + while(frames_in) { + try { + frames_in >> transMat >> type; + } + catch(const exception &e) { + break; + } + } + Matrix4ToEuler(transMat, &euler[3], euler); + + cout << " @ pose (" << euler[0] << "," << euler[1] << "," << euler[2] + << "," << euler[3] << "," << euler[4] << "," << euler[5] << ")" << endl; + + // overread the first line + char dummy[255]; + scan_in.getline(dummy, 255); + + while (scan_in.good()) { + Point p; + try { + scan_in >> p; + } catch (...) { + break; + } + // load points up to a certain distance only + // maxDist2 = -1 indicates no limitation + if (maxDist == -1 || sqr(p.x) + sqr(p.y) + sqr(p.z) < maxDist2) + ptss.push_back(p); + } + scan_in.close(); + scan_in.clear(); + frames_in.close(); + frames_in.clear(); + fileCounter++; + + return my_fileNr; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_uos_frames; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/.svn/pristine/47/4770b3796536bdeced4b85697bd9189c92c98ea2.svn-base b/.svn/pristine/47/4770b3796536bdeced4b85697bd9189c92c98ea2.svn-base new file mode 100644 index 0000000..0d82bf0 --- /dev/null +++ b/.svn/pristine/47/4770b3796536bdeced4b85697bd9189c92c98ea2.svn-base @@ -0,0 +1,163 @@ +/***************************************************************************** + * PMDSDK 2 + * + * Copyright (c) 2006-2007 PMD Technologies GmbH + * All Rights Reserved. + * + * File: pmdsdk2common.h + * Author: Martin Profittlich + * Created: 20060530 + * + *****************************************************************************/ + +#ifndef MSDK2COMMON_H_82635748816555424683995524346951 +#define MSDK2COMMON_H_82635748816555424683995524346951 + +/// \addtogroup core +/// @{ + +// Includes + +#include + +// Macros + +#ifdef __cplusplus +/// Mark beginning of extern "C" block +# define BEGIN_EXTERN_C extern "C" { +/// Mark ending of extern "C" block +# define END_EXTERN_C } +#else +/// Mark beginning of extern "C" block +# define BEGIN_EXTERN_C +/// Mark ending of extern "C" block +# define END_EXTERN_C +#endif + +#ifdef __cplusplus +/// Mark beginning of pmd namespace +# define BEGIN_PMD_NAMESPACE namespace pmd { +/// Mark ending of pmd namespace +# define END_PMD_NAMESPACE } +#endif + +#ifndef _WIN32 +/// No export needed for non-windows platforms +# define PMD_EXPORT +#else +/// Win32 export definition (only if not already defined as dllexport) +# ifndef PMD_EXPORT +# define PMD_EXPORT __declspec(dllimport) +# endif +#endif + +// Types + +/// Single precision float +typedef float PMDFloat32; +/// Double precision float +typedef double PMDFloat64; + +/// Standard float +#ifndef PMDFloat +typedef PMDFloat32 PMDFloat; +#endif + +/// Unsigned 32-bit integer +typedef unsigned PMDUInt32; +/// Signed 32-bit integer +typedef signed int PMDSInt32; + +/// Unsigned 16-bit integer +typedef unsigned short PMDUInt16; +/// Signed 16-bit integer +typedef signed short PMDSInt16; + +/// Unsigned 8-bit integer +typedef unsigned char PMDUInt8; +/// Signed 8-bit integer +typedef signed char PMDSInt8; + +/// Enumeration for retrieving valid integration times and modulation +/// frequencies +typedef enum { AtLeast, AtMost, CloseTo } Proximity; + +// Resultcodes + +/// \addtogroup StatusCodes +/// @{ + +/// Success +#define PMD_OK 0 + +/// Runtime error +#define PMD_RUNTIME_ERROR 1024 +/// Generic error +#define PMD_GENERIC_ERROR 1025 +/// Connection lost +#define PMD_DISCONNECTED 1026 +/// An invalid value was given +#define PMD_INVALID_VALUE 1027 + +/// Program error +#define PMD_LOGIC_ERROR 2048 +/// Handle not known (internal error) +#define PMD_UNKNOWN_HANDLE 2049 +/// Requested functionality not implemented +#define PMD_NOT_IMPLEMENTED 2050 +/// Index or value out of range +#define PMD_OUT_OF_BOUNDS 2051 + +/// Could not get resource +#define PMD_RESOURCE_ERROR 4096 +/// Could not open file +#define PMD_FILE_NOT_FOUND 4097 +/// Could not connect to or open the data source +#define PMD_COULD_NOT_OPEN 4098 +/// Could not retrieve the requested data +#define PMD_DATA_NOT_FOUND 4099 +/// There is no more data left +#define PMD_END_OF_DATA 4100 + +// DEPRECATED +#ifndef PMD_NO_DEPRECATED +#define PMD_COULD_NOT_CONNECT 4098 +#endif + +/// @} + +// Limits + +// Versions + +/// Version 1.0.0 of the plugin interface +#define PMD_INTERFACE_VERSION_1_0_0 0x00010000 +/// Version 1.1.0 of the plugin interface +#define PMD_INTERFACE_VERSION_1_1_0 0x00010100 +/// Version 1.1.1 of the plugin interface +#define PMD_INTERFACE_VERSION_1_1_1 0x00010101 +/// Version 1.2.0 of the plugin interface +#define PMD_INTERFACE_VERSION_1_2_0 0x00010200 +/// Version 1.2.1 of the plugin interface +#define PMD_INTERFACE_VERSION_1_2_1 0x00010201 +/// Version 1.3.0 of the plugin interface +#define PMD_INTERFACE_VERSION_1_3_0 0x00010300 +/// The current version of the plugin interface +#define PMD_CURRENT_INTERFACE_VERSION PMD_INTERFACE_VERSION_1_3_0 + +// Helper functions + +BEGIN_EXTERN_C + +/// Generate a new unique ID +unsigned pmdNewGUID (); + +struct PMDDataDescription; +/// Convert byte order of a PMDDataDescription structure. +void pmdHelperConvertDDByteOrder (struct PMDDataDescription * dd); + +END_EXTERN_C + +/// @} + +#endif diff --git a/.svn/pristine/48/486df209b786a847260c42dcf6d42137da392e03.svn-base b/.svn/pristine/48/486df209b786a847260c42dcf6d42137da392e03.svn-base new file mode 100644 index 0000000..234102c --- /dev/null +++ b/.svn/pristine/48/486df209b786a847260c42dcf6d42137da392e03.svn-base @@ -0,0 +1,563 @@ +//$$ newmat5.cpp Transpose, evaluate etc + +// Copyright (C) 1991,2,3,4: R B Davies + +//#define WANT_STREAM + +#include "include.h" + +#include "newmat.h" +#include "newmatrc.h" + +#ifdef use_namespace +namespace NEWMAT { +#endif + + +#ifdef DO_REPORT +#define REPORT { static ExeCounter ExeCount(__LINE__,5); ++ExeCount; } +#else +#define REPORT {} +#endif + + +/************************ carry out operations ******************************/ + + +GeneralMatrix* GeneralMatrix::Transpose(TransposedMatrix* tm, MatrixType mt) +{ + GeneralMatrix* gm1; + + if (Compare(Type().t(),mt)) + { + REPORT + gm1 = mt.New(ncols,nrows,tm); + for (int i=0; iReleaseAndDelete(); return gm1; +} + +GeneralMatrix* SymmetricMatrix::Transpose(TransposedMatrix*, MatrixType mt) +{ REPORT return Evaluate(mt); } + + +GeneralMatrix* DiagonalMatrix::Transpose(TransposedMatrix*, MatrixType mt) +{ REPORT return Evaluate(mt); } + +GeneralMatrix* ColumnVector::Transpose(TransposedMatrix*, MatrixType mt) +{ + REPORT + GeneralMatrix* gmx = new RowVector; MatrixErrorNoSpace(gmx); + gmx->nrows = 1; gmx->ncols = gmx->storage = storage; + return BorrowStore(gmx,mt); +} + +GeneralMatrix* RowVector::Transpose(TransposedMatrix*, MatrixType mt) +{ + REPORT + GeneralMatrix* gmx = new ColumnVector; MatrixErrorNoSpace(gmx); + gmx->ncols = 1; gmx->nrows = gmx->storage = storage; + return BorrowStore(gmx,mt); +} + +GeneralMatrix* IdentityMatrix::Transpose(TransposedMatrix*, MatrixType mt) +{ REPORT return Evaluate(mt); } + +GeneralMatrix* GeneralMatrix::Evaluate(MatrixType mt) +{ + if (Compare(this->Type(),mt)) { REPORT return this; } + REPORT + GeneralMatrix* gmx = mt.New(nrows,ncols,this); + MatrixRow mr(this, LoadOnEntry); + MatrixRow mrx(gmx, StoreOnExit+DirectPart); + int i=nrows; + while (i--) { mrx.Copy(mr); mrx.Next(); mr.Next(); } + tDelete(); gmx->ReleaseAndDelete(); return gmx; +} + +GeneralMatrix* GenericMatrix::Evaluate(MatrixType mt) + { REPORT return gm->Evaluate(mt); } + +GeneralMatrix* ShiftedMatrix::Evaluate(MatrixType mt) +{ + gm=((BaseMatrix*&)bm)->Evaluate(); + int nr=gm->Nrows(); int nc=gm->Ncols(); + Compare(gm->Type().AddEqualEl(),mt); + if (!(mt==gm->Type())) + { + REPORT + GeneralMatrix* gmx = mt.New(nr,nc,this); + MatrixRow mr(gm, LoadOnEntry); + MatrixRow mrx(gmx, StoreOnExit+DirectPart); + while (nr--) { mrx.Add(mr,f); mrx.Next(); mr.Next(); } + gmx->ReleaseAndDelete(); gm->tDelete(); +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + return gmx; + } + else if (gm->reuse()) + { + REPORT gm->Add(f); +#ifdef TEMPS_DESTROYED_QUICKLY + GeneralMatrix* gmx = gm; delete this; return gmx; +#else + return gm; +#endif + } + else + { + REPORT GeneralMatrix* gmy = gm->Type().New(nr,nc,this); + gmy->ReleaseAndDelete(); gmy->Add(gm,f); +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + return gmy; + } +} + +GeneralMatrix* NegShiftedMatrix::Evaluate(MatrixType mt) +{ + gm=((BaseMatrix*&)bm)->Evaluate(); + int nr=gm->Nrows(); int nc=gm->Ncols(); + Compare(gm->Type().AddEqualEl(),mt); + if (!(mt==gm->Type())) + { + REPORT + GeneralMatrix* gmx = mt.New(nr,nc,this); + MatrixRow mr(gm, LoadOnEntry); + MatrixRow mrx(gmx, StoreOnExit+DirectPart); + while (nr--) { mrx.NegAdd(mr,f); mrx.Next(); mr.Next(); } + gmx->ReleaseAndDelete(); gm->tDelete(); +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + return gmx; + } + else if (gm->reuse()) + { + REPORT gm->NegAdd(f); +#ifdef TEMPS_DESTROYED_QUICKLY + GeneralMatrix* gmx = gm; delete this; return gmx; +#else + return gm; +#endif + } + else + { + REPORT GeneralMatrix* gmy = gm->Type().New(nr,nc,this); + gmy->ReleaseAndDelete(); gmy->NegAdd(gm,f); +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + return gmy; + } +} + +GeneralMatrix* ScaledMatrix::Evaluate(MatrixType mt) +{ + gm=((BaseMatrix*&)bm)->Evaluate(); + int nr=gm->Nrows(); int nc=gm->Ncols(); + if (Compare(gm->Type(),mt)) + { + if (gm->reuse()) + { + REPORT gm->Multiply(f); +#ifdef TEMPS_DESTROYED_QUICKLY + GeneralMatrix* gmx = gm; delete this; return gmx; +#else + return gm; +#endif + } + else + { + REPORT GeneralMatrix* gmx = gm->Type().New(nr,nc,this); + gmx->ReleaseAndDelete(); gmx->Multiply(gm,f); +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + return gmx; + } + } + else + { + REPORT + GeneralMatrix* gmx = mt.New(nr,nc,this); + MatrixRow mr(gm, LoadOnEntry); + MatrixRow mrx(gmx, StoreOnExit+DirectPart); + while (nr--) { mrx.Multiply(mr,f); mrx.Next(); mr.Next(); } + gmx->ReleaseAndDelete(); gm->tDelete(); +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + return gmx; + } +} + +GeneralMatrix* NegatedMatrix::Evaluate(MatrixType mt) +{ + gm=((BaseMatrix*&)bm)->Evaluate(); + int nr=gm->Nrows(); int nc=gm->Ncols(); + if (Compare(gm->Type(),mt)) + { + if (gm->reuse()) + { + REPORT gm->Negate(); +#ifdef TEMPS_DESTROYED_QUICKLY + GeneralMatrix* gmx = gm; delete this; return gmx; +#else + return gm; +#endif + } + else + { + REPORT + GeneralMatrix* gmx = gm->Type().New(nr,nc,this); + gmx->ReleaseAndDelete(); gmx->Negate(gm); +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + return gmx; + } + } + else + { + REPORT + GeneralMatrix* gmx = mt.New(nr,nc,this); + MatrixRow mr(gm, LoadOnEntry); + MatrixRow mrx(gmx, StoreOnExit+DirectPart); + while (nr--) { mrx.Negate(mr); mrx.Next(); mr.Next(); } + gmx->ReleaseAndDelete(); gm->tDelete(); +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + return gmx; + } +} + +GeneralMatrix* ReversedMatrix::Evaluate(MatrixType mt) +{ + gm=((BaseMatrix*&)bm)->Evaluate(); GeneralMatrix* gmx; + + if ((gm->Type()).IsBand() && ! (gm->Type()).IsDiagonal()) + { + gm->tDelete(); +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + Throw(NotDefinedException("Reverse", "band matrices")); + } + + if (gm->reuse()) { REPORT gm->ReverseElements(); gmx = gm; } + else + { + REPORT + gmx = gm->Type().New(gm->Nrows(), gm->Ncols(), this); + gmx->ReverseElements(gm); gmx->ReleaseAndDelete(); + } +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + return gmx->Evaluate(mt); // target matrix is different type? + +} + +GeneralMatrix* TransposedMatrix::Evaluate(MatrixType mt) +{ + REPORT + gm=((BaseMatrix*&)bm)->Evaluate(); + Compare(gm->Type().t(),mt); + GeneralMatrix* gmx=gm->Transpose(this, mt); +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + return gmx; +} + +GeneralMatrix* RowedMatrix::Evaluate(MatrixType mt) +{ + gm = ((BaseMatrix*&)bm)->Evaluate(); + GeneralMatrix* gmx = new RowVector; MatrixErrorNoSpace(gmx); + gmx->nrows = 1; gmx->ncols = gmx->storage = gm->storage; +#ifdef TEMPS_DESTROYED_QUICKLY + GeneralMatrix* gmy = gm; delete this; return gmy->BorrowStore(gmx,mt); +#else + return gm->BorrowStore(gmx,mt); +#endif +} + +GeneralMatrix* ColedMatrix::Evaluate(MatrixType mt) +{ + gm = ((BaseMatrix*&)bm)->Evaluate(); + GeneralMatrix* gmx = new ColumnVector; MatrixErrorNoSpace(gmx); + gmx->ncols = 1; gmx->nrows = gmx->storage = gm->storage; +#ifdef TEMPS_DESTROYED_QUICKLY + GeneralMatrix* gmy = gm; delete this; return gmy->BorrowStore(gmx,mt); +#else + return gm->BorrowStore(gmx,mt); +#endif +} + +GeneralMatrix* DiagedMatrix::Evaluate(MatrixType mt) +{ + gm = ((BaseMatrix*&)bm)->Evaluate(); + GeneralMatrix* gmx = new DiagonalMatrix; MatrixErrorNoSpace(gmx); + gmx->nrows = gmx->ncols = gmx->storage = gm->storage; +#ifdef TEMPS_DESTROYED_QUICKLY + GeneralMatrix* gmy = gm; delete this; return gmy->BorrowStore(gmx,mt); +#else + return gm->BorrowStore(gmx,mt); +#endif +} + +GeneralMatrix* MatedMatrix::Evaluate(MatrixType mt) +{ + Tracer tr("MatedMatrix::Evaluate"); + gm = ((BaseMatrix*&)bm)->Evaluate(); + GeneralMatrix* gmx = new Matrix; MatrixErrorNoSpace(gmx); + gmx->nrows = nr; gmx->ncols = nc; gmx->storage = gm->storage; + if (nr*nc != gmx->storage) + Throw(IncompatibleDimensionsException()); +#ifdef TEMPS_DESTROYED_QUICKLY + GeneralMatrix* gmy = gm; delete this; return gmy->BorrowStore(gmx,mt); +#else + return gm->BorrowStore(gmx,mt); +#endif +} + +GeneralMatrix* GetSubMatrix::Evaluate(MatrixType mt) +{ + REPORT + Tracer tr("SubMatrix(evaluate)"); + gm = ((BaseMatrix*&)bm)->Evaluate(); + if (row_number < 0) row_number = gm->Nrows(); + if (col_number < 0) col_number = gm->Ncols(); + if (row_skip+row_number > gm->Nrows() || col_skip+col_number > gm->Ncols()) + { + gm->tDelete(); +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + Throw(SubMatrixDimensionException()); + } + if (IsSym) Compare(gm->Type().ssub(), mt); + else Compare(gm->Type().sub(), mt); + GeneralMatrix* gmx = mt.New(row_number, col_number, this); + int i = row_number; + MatrixRow mr(gm, LoadOnEntry, row_skip); + MatrixRow mrx(gmx, StoreOnExit+DirectPart); + MatrixRowCol sub; + while (i--) + { + mr.SubRowCol(sub, col_skip, col_number); // put values in sub + mrx.Copy(sub); mrx.Next(); mr.Next(); + } + gmx->ReleaseAndDelete(); gm->tDelete(); +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + return gmx; +} + + +GeneralMatrix* ReturnMatrixX::Evaluate(MatrixType mt) +{ +#ifdef TEMPS_DESTROYED_QUICKLY_R + GeneralMatrix* gmx = gm; delete this; return gmx->Evaluate(mt); +#else + return gm->Evaluate(mt); +#endif +} + + +void GeneralMatrix::Add(GeneralMatrix* gm1, Real f) +{ + REPORT + Real* s1=gm1->store; Real* s=store; int i=(storage >> 2); + while (i--) + { *s++ = *s1++ + f; *s++ = *s1++ + f; *s++ = *s1++ + f; *s++ = *s1++ + f; } + i = storage & 3; while (i--) *s++ = *s1++ + f; +} + +void GeneralMatrix::Add(Real f) +{ + REPORT + Real* s=store; int i=(storage >> 2); + while (i--) { *s++ += f; *s++ += f; *s++ += f; *s++ += f; } + i = storage & 3; while (i--) *s++ += f; +} + +void GeneralMatrix::NegAdd(GeneralMatrix* gm1, Real f) +{ + REPORT + Real* s1=gm1->store; Real* s=store; int i=(storage >> 2); + while (i--) + { *s++ = f - *s1++; *s++ = f - *s1++; *s++ = f - *s1++; *s++ = f - *s1++; } + i = storage & 3; while (i--) *s++ = f - *s1++; +} + +void GeneralMatrix::NegAdd(Real f) +{ + REPORT + Real* s=store; int i=(storage >> 2); + while (i--) + { + *s = f - *s; s++; *s = f - *s; s++; + *s = f - *s; s++; *s = f - *s; s++; + } + i = storage & 3; while (i--) { *s = f - *s; s++; } +} + +void GeneralMatrix::Negate(GeneralMatrix* gm1) +{ + // change sign of elements + REPORT + Real* s1=gm1->store; Real* s=store; int i=(storage >> 2); + while (i--) + { *s++ = -(*s1++); *s++ = -(*s1++); *s++ = -(*s1++); *s++ = -(*s1++); } + i = storage & 3; while(i--) *s++ = -(*s1++); +} + +void GeneralMatrix::Negate() +{ + REPORT + Real* s=store; int i=(storage >> 2); + while (i--) + { *s = -(*s); s++; *s = -(*s); s++; *s = -(*s); s++; *s = -(*s); s++; } + i = storage & 3; while(i--) { *s = -(*s); s++; } +} + +void GeneralMatrix::Multiply(GeneralMatrix* gm1, Real f) +{ + REPORT + Real* s1=gm1->store; Real* s=store; int i=(storage >> 2); + while (i--) + { *s++ = *s1++ * f; *s++ = *s1++ * f; *s++ = *s1++ * f; *s++ = *s1++ * f; } + i = storage & 3; while (i--) *s++ = *s1++ * f; +} + +void GeneralMatrix::Multiply(Real f) +{ + REPORT + Real* s=store; int i=(storage >> 2); + while (i--) { *s++ *= f; *s++ *= f; *s++ *= f; *s++ *= f; } + i = storage & 3; while (i--) *s++ *= f; +} + + +/************************ MatrixInput routines ****************************/ + +// int MatrixInput::n; // number values still to be read +// Real* MatrixInput::r; // pointer to next location to be read to + +MatrixInput MatrixInput::operator<<(Real f) +{ + REPORT + Tracer et("MatrixInput"); + if (n<=0) Throw(ProgramException("List of values too long")); + *r = f; int n1 = n-1; n=0; // n=0 so we won't trigger exception + return MatrixInput(n1, r+1); +} + + +MatrixInput GeneralMatrix::operator<<(Real f) +{ + REPORT + Tracer et("MatrixInput"); + int n = Storage(); + if (n<=0) Throw(ProgramException("Loading data to zero length matrix")); + Real* r; r = Store(); *r = f; n--; + return MatrixInput(n, r+1); +} + +MatrixInput GetSubMatrix::operator<<(Real f) +{ + REPORT + Tracer et("MatrixInput (GetSubMatrix)"); + SetUpLHS(); + if (row_number != 1 || col_skip != 0 || col_number != gm->Ncols()) + { +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + Throw(ProgramException("MatrixInput requires complete rows")); + } + MatrixRow mr(gm, DirectPart, row_skip); // to pick up location and length + int n = mr.Storage(); + if (n<=0) + { +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + Throw(ProgramException("Loading data to zero length row")); + } + Real* r; r = mr.Data(); *r = f; n--; + if (+(mr.cw*HaveStore)) + { +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + Throw(ProgramException("Fails with this matrix type")); + } +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + return MatrixInput(n, r+1); +} + +MatrixInput::~MatrixInput() +{ + REPORT + Tracer et("MatrixInput"); + if (n!=0) Throw(ProgramException("A list of values was too short")); +} + +MatrixInput BandMatrix::operator<<(Real) +{ + Tracer et("MatrixInput"); + bool dummy = true; + if (dummy) // get rid of warning message + Throw(ProgramException("Cannot use list read with a BandMatrix")); + return MatrixInput(0, 0); +} + +void BandMatrix::operator<<(const Real*) +{ Throw(ProgramException("Cannot use array read with a BandMatrix")); } + +// ************************* Reverse order of elements *********************** + +void GeneralMatrix::ReverseElements(GeneralMatrix* gm) +{ + // reversing into a new matrix + REPORT + int n = Storage(); Real* rx = Store() + n; Real* x = gm->Store(); + while (n--) *(--rx) = *(x++); +} + +void GeneralMatrix::ReverseElements() +{ + // reversing in place + REPORT + int n = Storage(); Real* x = Store(); Real* rx = x + n; + n /= 2; + while (n--) { Real t = *(--rx); *rx = *x; *(x++) = t; } +} + + +#ifdef use_namespace +} +#endif + diff --git a/.svn/pristine/48/4893832187f1e6930847415bdd43b57b41c65a2e.svn-base b/.svn/pristine/48/4893832187f1e6930847415bdd43b57b41c65a2e.svn-base new file mode 100644 index 0000000..8d7078b --- /dev/null +++ b/.svn/pristine/48/4893832187f1e6930847415bdd43b57b41c65a2e.svn-base @@ -0,0 +1,372 @@ +/* +This is a Optical-Character-Recognition program +Copyright (C) 2000-2009 Joerg Schulenburg + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + see README for EMAIL address + + */ + +#include +#include +#include +#include +/* do we need #include ? conflicts with INFINITY in unicode.h */ +#include "gocr.h" +#include "pgm2asc.h" + +/* for sorting letters by position on the image +/ ToDo: - use function same line like this or include lines.m1 etc. */ +int box_gt(struct box *box1, struct box *box2) { + // box1 after box2 ? + if (box1->line > box2->line) + return 1; + if (box1->line < box2->line) + return 0; + if (box1->x0 > box2->x1) // before + return 1; + if (box1->x1 < box2->x0) // before + return 0; + if (box1->x0 > box2->x0) // before, overlapping! + return 1; + + return 0; +} + +/* --- copy part of pix p into new pix b ---- len=10000 + * Returns: 0 on success, 1 on error. + * naming it as copybox isnt very clever, because it dont have to do with the + * char boxes (struct box) + */ +int copybox (pix * p, int x0, int y0, int dx, int dy, pix * b, int len) { + int x, y; + + /* test boundaries */ + if (b->p == NULL || dx < 0 || dy < 0 || dx * dy > len) { + fprintf(stderr, " error-copybox x=%5d %5d d=%5d %5d\n", x0, y0, dx, dy); + return 1; + } + + b->x = dx; + b->y = dy; + b->bpp = 1; +#ifdef FASTER_INCOMPLETE + for (y = 0; y < dy; y++) + memcpy(&pixel_atp(b, 0, y), &pixel_atp(p, x0, y + y0 ), dx); + // and unmark pixels +#else + for (y = 0; y < dy; y++) + for (x = 0; x < dx; x++) + pixel_atp(b, x, y) = getpixel(p, x + x0, y + y0); +#endif + + return 0; +} + +/* reset table of alternative chars (and free memory) */ +int reset_box_ac(struct box *box){ + int i; + for (i=0; inum_ac; i++) + if (box->tas[i]) { + /* fprintf(stderr,"DBG free_s[%d] %p %s\n",i,box->tas[i],box->tas[i]); */ + free(box->tas[i]); + box->tas[i]=0; /* prevent double freeing */ + } + box->num_ac=0; /* mark as freed */ + return 0; +} + +/* ini or copy a box: get memory for box and initialize the memory */ +struct box *malloc_box (struct box *inibox) { + struct box *buf; + int i; + + buf = (struct box *) malloc(sizeof(struct box)); + if (!buf) + return NULL; + if (inibox) { + memcpy(buf, inibox, sizeof(struct box)); + /* only pointer are copied, we want to copy the contents too */ + for (i=0;inum_ac;i++) { + if (inibox->tas[i]) { + buf->tas[i]=(char *)malloc(strlen(inibox->tas[i])+1); + memcpy(buf->tas[i], inibox->tas[i], strlen(inibox->tas[i])+1); + } + } + } + else { /* ToDo: init it */ + buf->num_ac=0; + buf->num_frames=0; + } + /* fprintf(stderr,"\nDBG ini_box %p",buf); */ + return buf; +} + +/* free memory of box */ +int free_box (struct box *box) { + if (!box) return 0; + /* fprintf(stderr,"DBG free_box %p\n",box); out_x(box); */ + reset_box_ac(box); /* free alternative char table */ + free(box); /* free the box memory */ + return 0; +} + +/* simplify the vectorgraph, + * but what is the best way? + * a) melting two neighbouring vectors with nearly same direction? + * (nearest angle to pi) + * b) melting three neigbours with smallest area? + * ToDo: + * mode = 0 - only lossless + * mode = 1 - reduce one vector, smallest possible loss + * mode = 2 - remove jitter (todo, or somewhere else) + * ToDo: include also loop around (last - first element) + * ToDo: reduce by 10..50% + */ +int reduce_vectors ( struct box *box1, int mode ) { + int i1, i2, nx, ny, mx, my, len, + minlen=1024, /* minlength of to neighbouring vectors */ + besti1=0, /* frame for best reduction */ + besti2=2; /* vector replacing its predecessor */ + double sprod, maxsprod=-1; + if (mode!=1) fprintf(stderr,"ERR not supported yet, ToDo\n"); + for (i2=1,i1=0; i1num_frames; i1++) { /* every frame */ + for (;i2num_frame_vectors[i1]-1; i2++) { /* every vector */ + /* predecessor n */ + nx = box1->frame_vector[i2-0][0] - box1->frame_vector[i2-1][0]; + ny = box1->frame_vector[i2-0][1] - box1->frame_vector[i2-1][1]; + /* successor m */ + mx = box1->frame_vector[i2+1][0] - box1->frame_vector[i2-0][0]; + my = box1->frame_vector[i2+1][1] - box1->frame_vector[i2-0][1]; + /* angle is w = a*b/(|a|*|b|) = 1 means parallel */ + /* normalized: minimize w^2 = (a*b/(|a|*|b|)-1)^2 */ + /* -1=90grd, 0=0grd, -2=180grd */ + sprod = /* fabs */(abs(nx*mx+ny*my)*(nx*mx+ny*my) + /(1.*(nx*nx+ny*ny)*(mx*mx+my*my))-1); + /* we dont include math.h because INFINITY conflicts to unicode,h */ + if (sprod<0) sprod=-sprod; + len = (mx*mx+my*my)*(nx*nx+ny*ny); /* sum lengths^2 */ +// ..c ###c ... .. ... +// .b. len=2+2 #b.. len=2+5 #bc len=1+2 bc len=1+1 b#a len=4+5 +// a.. spr=0 a... spr=1/10 a.. spr=1/4 a. spr=1 ##c spr=9/5 +// + if ( len* sprod* sprod* sprod* sprod + num_frames>0) + for (i2=besti2; i2num_frame_vectors[ box1->num_frames-1 ]-1; i2++) { + box1->frame_vector[i2][0]=box1->frame_vector[i2+1][0]; + box1->frame_vector[i2][1]=box1->frame_vector[i2+1][1]; + } + for (i1=besti1; i1num_frames; i1++) + box1->num_frame_vectors[i1]--; +// fprintf(stderr,"\nDBG_reduce_vectors i= %d nv= %d sprod=%f len2=%d\n# ...", +// besti2,box1->num_frame_vectors[ box1->num_frames-1 ],maxsprod,minlen); +// out_x(box1); + return 0; +} + +/* add the contents of box2 to box1 + * especially add vectors of box2 to box1 + */ +int merge_boxes( struct box *box1, struct box *box2 ) { + int i1, i2, i3, i4; + struct box tmpbox, *bsmaller, *bbigger; /* for mixing and sorting */ + /* DEBUG, use valgrind to check uninitialized memory */ +#if 0 + fprintf(stderr,"\nDBG merge_boxes_input:"); out_x(box1); out_x(box2); +#endif + /* pair distance is to expendable, taking borders is easier */ + if ((box2->x1 - box2->x0)*(box2->y1 - box2->y0) + >(box1->x1 - box1->x0)*(box1->y1 - box1->y0)) { + bbigger=box2; bsmaller=box1; } + else { + bbigger=box1; bsmaller=box2; } + /* ToDo: does not work if a third box is added */ + if (box2->y0>box1->y1 || box2->y1y0 + || box2->x0>box1->x1 || box2->x1x0) { + box1->num_boxes += box2->num_boxes; /* num seperate objects 2=ij */ + } else { + if (box2->num_boxes>box1->num_boxes) box1->num_boxes=box2->num_boxes; + box1->num_subboxes += box2->num_subboxes+1; /* num holes 1=abdepq 2=B */ + } + box1->dots += box2->dots; /* num i-dots */ + if ( box2->x0 < box1->x0 ) box1->x0 = box2->x0; + if ( box2->x1 > box1->x1 ) box1->x1 = box2->x1; + if ( box2->y0 < box1->y0 ) box1->y0 = box2->y0; + if ( box2->y1 > box1->y1 ) box1->y1 = box2->y1; + i1 = i2 = 0; + if (bbigger->num_frames) + i1 = bbigger->num_frame_vectors[ bbigger->num_frames - 1 ]; + if (bsmaller->num_frames) + i2 = bsmaller->num_frame_vectors[ bsmaller->num_frames - 1 ]; + while (i1+i2 > MaxFrameVectors) { + if (i1>i2) { reduce_vectors( bbigger, 1 ); i1--; } + else { reduce_vectors( bsmaller, 1 ); i2--; } + } + /* if i1+i2>MaxFrameVectors simplify the vectorgraph */ + /* if sum num_frames>MaxNumFrames through shortest graph away and warn */ + /* first copy the bigger box */ + memcpy(&tmpbox, bbigger, sizeof(struct box)); + /* attach the smaller box */ + for (i4=i3=0; i3num_frames; i3++) { + if (tmpbox.num_frames>=MaxNumFrames) break; + + for (; i4num_frame_vectors[i3]; i4++) { + memcpy(tmpbox.frame_vector[i1], + bsmaller->frame_vector[i4],2*sizeof(int)); + i1++; + } + tmpbox.num_frame_vectors[ tmpbox.num_frames ] = i1; + tmpbox.frame_vol[ tmpbox.num_frames ] = bsmaller->frame_vol[ i3 ]; + tmpbox.frame_per[ tmpbox.num_frames ] = bsmaller->frame_per[ i3 ]; + tmpbox.num_frames++; + if (tmpbox.num_frames>=MaxNumFrames) { + if (JOB->cfg.verbose) + fprintf(stderr,"\nDBG merge_boxes MaxNumFrames reached"); + break; + } + } + /* copy tmpbox to destination */ + box1->num_frames = tmpbox.num_frames; + memcpy(box1->num_frame_vectors, + tmpbox.num_frame_vectors,sizeof(int)*MaxNumFrames); + memcpy(box1->frame_vol, + tmpbox.frame_vol,sizeof(int)*MaxNumFrames); + memcpy(box1->frame_per, + tmpbox.frame_per,sizeof(int)*MaxNumFrames); + memcpy(box1->frame_vector, + tmpbox.frame_vector,sizeof(int)*2*MaxFrameVectors); +#if 0 + if (JOB->cfg.verbose) + fprintf(stderr,"\nDBG merge_boxes_result:"); out_x(box1); +#endif + return 0; +} + +/* used for division of glued chars + * after a box is splitted into 2, where vectors are copied to both, + * vectors outside the new box are cutted and thrown away, + * later replaced by + * - 1st remove outside vectors with outside neighbours (complete frames?) + * add vector on outside vector with inside neighbours + * care about connections through box between outside vectors + * - 2nd reduce outside crossings (inclusive splitting frames if necessary) + * depending on direction (rotation) of outside connections + * - 3th shift outside vectors to crossing points + * - split add this points, connect only in-out...out-in, + * - cutting can result in more objects + * ToDo: + * dont connect --1---2--------3----4-- new-y1 (inside above not drawn) + * \ \->>>>-/ / outside + * \----<<<<-----/ old-y1 + * |======| subtractable? + * + * only connect --1---2--------3----4-- new-y1 + * \>>/ \>>>/ old-y1 outside + * ToDo: what about cutting 2 frames (example: 2fold melted MN) + * better restart framing algo? + * + * ToDo: new vol, per + */ +int cut_box( struct box *box1) { + int i1, i2, i3, i4, x, y, lx, ly, dbg=0; + if (JOB->cfg.verbose) dbg=1; // debug level, enlarge to get more output + if (dbg) fprintf(stderr,"\n cut box x= %3d %3d", box1->x0, box1->y0); + /* check if complete frames are outside the box */ + for (i1=0; i1num_frames; i1++){ + if (dbg>2) fprintf(stderr,"\n checking frame %d outside", i1); + i2 = ((i1)?box1->num_frame_vectors[ i1-1 ]:0); // this frame + i3 = box1->num_frame_vectors[ i1 ]; // next frame + for (i4=i2; i4 < i3; i4++) { + x = box1->frame_vector[i4][0]; + y = box1->frame_vector[i4][1]; + /* break, if one vector is lying inside */ + if (x>=box1->x0 && x<=box1->x1 && y>=box1->y0 && y<=box1->y1) break; + } + if (i4==i3) { /* all vectors outside */ + if (dbg>1) fprintf(stderr,"\n remove frame %d",i1); + /* replace all frames i1,i1+1,... by i1+1,i1+2,... */ + /* replace (x,y) pairs first */ + for (i4=i2; i4num_frame_vectors[ box1->num_frames-1 ]-(i3-i2); + i4++) { + box1->frame_vector[i4][0] = box1->frame_vector[i4+i3-i2][0]; + box1->frame_vector[i4][1] = box1->frame_vector[i4+i3-i2][1]; + } + /* replace the num_frame_vectors */ + for (i4=i1; i4num_frames-1; i4++) + box1->num_frame_vectors[ i4 ] = + box1->num_frame_vectors[ i4+1 ]-(i3-i2); + box1->num_frames--; i1--; + } + } + /* remove vectors outside the box */ + i3=0; + for (i1=0; i1num_frames; i1++){ + if (dbg>2) fprintf(stderr,"\n check cutting vectors on frame %d", i1); + x = box1->frame_vector[0][0]; /* last x */ + y = box1->frame_vector[0][1]; /* last y */ + /* ToDo: start inside to get a closed object */ + if (xx0 || x>box1->x1 || yy0 || y>box1->y1) i3=1; + for (i2=0; i2num_frame_vectors[ i1 ]; i2++) { + lx = x; /* last x */ + ly = y; /* last y */ + x = box1->frame_vector[i2][0]; + y = box1->frame_vector[i2][1]; + // fprintf(stderr,"DBG LEV3 i2= %3d xy= %3d %3d",i2,x,y); + /* check if outside */ + if (xx0 || x>box1->x1 || yy0 || y>box1->y1) { + /* replace by nearest point at border, ToDo: better crossingpoint */ + if (i3==0) { /* wrong if it starts outside */ + if (x < box1->x0) x = box1->frame_vector[i2][0] = box1->x0; + if (x > box1->x1) x = box1->frame_vector[i2][0] = box1->x1; + if (y < box1->y0) y = box1->frame_vector[i2][1] = box1->y0; + if (y > box1->y1) y = box1->frame_vector[i2][1] = box1->y1; + } else { + /* remove vector */ + if (dbg>1) fprintf(stderr,"\n remove vector[%d][%d] x= %2d %2d",i1,i2,x-box1->x0,y-box1->y0); + for (i4=i2;i4num_frame_vectors[ box1->num_frames-1 ]-1;i4++) { + box1->frame_vector[i4][0] = box1->frame_vector[i4+1][0]; + box1->frame_vector[i4][1] = box1->frame_vector[i4+1][1]; + } + for (i4=i1; i4num_frames; i4++) + box1->num_frame_vectors[ i4 ]--; + i2--; /* next element is shiftet now, setting back the counter */ + } + i3++; + // fprintf(stderr," outside i3= %d\n",i3); + continue; + } + // fprintf(stderr," inside i3= %d",i3); + if (i3) { /* ToDo: better crossing point last vector and border */ + if (lx < box1->x0) lx = box1->x0; + if (lx > box1->x1) lx = box1->x1; + if (ly < box1->y0) ly = box1->y0; + if (ly > box1->y1) ly = box1->y1; + x = box1->frame_vector[i2][0] = lx; + y = box1->frame_vector[i2][1] = ly; + i3 = 0; + } + // fprintf(stderr," xy= %3d %3d\n",x,y); + } + } + if (dbg>2) { fprintf(stderr,"\nDBG cut_box_result:"); out_x(box1); } + return 0; +} + diff --git a/.svn/pristine/48/48d0e0830dee3eb3e1c541e1aad5b4280d18467d.svn-base b/.svn/pristine/48/48d0e0830dee3eb3e1c541e1aad5b4280d18467d.svn-base new file mode 100644 index 0000000..efa84f4 --- /dev/null +++ b/.svn/pristine/48/48d0e0830dee3eb3e1c541e1aad5b4280d18467d.svn-base @@ -0,0 +1,81361 @@ +360 x 225 +10.1 3.55271e-15 1.13687e-13 +10.0996 -0.0662149 0.0581712 +10.9983 -0.144225 0.126704 +10.9962 -0.216324 0.190045 +10.9933 -0.288406 0.253371 +11.2892 -0.370297 0.325314 +12.6826 -0.49934 0.438681 +12.6763 -0.582467 0.51171 +12.5693 -0.66031 0.580097 +13.8572 -0.819314 0.719785 +14.146 -0.929772 0.816825 +14.4332 -1.04408 0.917244 +14.1222 -1.1151 0.97964 +14.6055 -1.25017 1.0983 +18.4614 -1.70294 1.49607 +31.0322 -3.06927 2.69642 +33.174 -3.50262 3.07713 +38.8683 -4.36403 3.83389 +40.6928 -4.84197 4.25378 +41.8185 -5.25736 4.6187 +50.2252 -6.65324 5.84501 +63.9116 -8.89895 7.81792 +88.6409 -12.9444 11.3719 +86.0374 -13.1505 11.553 +91.5546 -14.62 12.844 +93.2363 -15.5286 13.6422 +93.9293 -16.2914 14.3123 +94.6116 -17.0644 14.9914 +94.6038 -17.7204 15.5677 +94.3944 -18.3399 16.112 +95.0471 -19.133 16.8088 +94.6285 -19.7153 17.3203 +94.5882 -20.3763 17.901 +95.019 -21.145 18.5763 +94.9611 -21.8111 19.1615 +95.4671 -22.6136 19.8665 +95.2008 -23.2386 20.4156 +95.7807 -24.0764 21.1516 +95.4974 -24.7034 21.7024 +95.9609 -25.5291 22.4278 +95.6607 -26.1573 22.9797 +96.1962 -27.0202 23.7378 +95.7854 -27.6229 24.2673 +96.4843 -28.5527 25.0842 +96.149 -29.1841 25.6389 +96.453 -30.0147 26.3685 +96.4689 -30.7632 27.0261 +94.9157 -31.005 27.2386 +95.2828 -31.8706 27.999 +94.818 -32.4629 28.5193 +94.8904 -33.242 29.2038 +95.0422 -34.0569 29.9197 +94.7329 -34.7116 30.4949 +94.9525 -35.566 31.2455 +95.3377 -36.4942 32.0609 +94.9989 -37.1525 32.6393 +94.8286 -37.8796 33.2781 +94.0334 -38.3565 33.697 +93.4968 -38.9351 34.2053 +91.0392 -38.6957 33.995 +89.8068 -38.953 34.2211 +88.2308 -39.0446 34.3015 +86.4882 -39.0412 34.2985 +85.264 -39.2535 34.485 +83.6175 -39.2536 34.4851 +81.8933 -39.1948 34.4335 +79.9253 -38.9937 34.2568 +78.969 -39.2674 34.4972 +77.4321 -39.2375 34.471 +75.49 -38.9777 34.2427 +74.2971 -39.0833 34.3355 +72.9448 -39.089 34.3405 +71.7598 -39.1684 34.4102 +69.614 -38.6989 33.9978 +68.6827 -38.8825 34.1591 +67.197 -38.7368 34.0311 +66.7445 -39.1758 34.4168 +65.6608 -39.2378 34.4712 +63.726 -38.7685 34.0589 +63.2732 -39.1847 34.4246 +61.5134 -38.7771 34.0665 +61.0606 -39.179 34.4195 +59.8485 -39.0849 34.3369 +58.6432 -38.9779 34.2429 +57.5937 -38.9588 34.2261 +56.2543 -38.7258 34.0214 +55.1441 -38.632 33.9391 +54.6207 -38.9403 34.2099 +53.6627 -38.9316 34.2023 +52.4952 -38.7554 34.0474 +51.4067 -38.62 33.9285 +50.4655 -38.5804 33.8937 +49.3207 -38.3694 33.7083 +48.942 -38.7458 34.039 +47.8763 -38.5707 33.8851 +46.886 -38.4399 33.7703 +47.0399 -39.2484 34.4805 +45.3895 -38.5425 33.8604 +45.0713 -38.9519 34.2201 +43.578 -38.3319 33.6754 +43.0025 -38.5011 33.824 +42.2992 -38.5496 33.8667 +41.8498 -38.8255 34.109 +41.086 -38.8044 34.0905 +40.018 -38.4803 33.8057 +39.5086 -38.6815 33.9826 +38.6967 -38.5791 33.8926 +38.6635 -39.2541 34.4855 +37.4419 -38.7159 34.0128 +36.9908 -38.96 34.2272 +35.9059 -38.524 33.8442 +35.457 -38.7579 34.0497 +35.0055 -38.989 34.2526 +33.9441 -38.5278 33.8475 +33.4408 -38.6859 33.9864 +32.9902 -38.9036 34.1777 +32.4841 -39.0547 34.3104 +32.0814 -39.3303 34.5525 +31.1083 -38.8951 34.1702 +30.6553 -39.0976 34.3481 +30.2 -39.297 34.5233 +29.2992 -38.9051 34.179 +28.4583 -38.5701 33.8846 +28.0569 -38.8211 34.1052 +27.6519 -39.0699 34.3238 +26.7352 -38.5833 33.8963 +26.3768 -38.8911 34.1666 +25.9241 -39.0625 34.3172 +25.0748 -38.6232 33.9313 +24.6683 -38.854 34.134 +24.2583 -39.0823 34.3347 +23.4716 -38.693 33.9926 +23.0213 -38.8454 34.1265 +22.5692 -38.9948 34.2578 +21.7637 -38.5189 33.8397 +21.3537 -38.7295 34.0247 +20.903 -38.8681 34.1464 +20.4508 -39.0036 34.2655 +19.6744 -38.505 33.8275 +19.2264 -38.6325 33.9395 +18.7085 -38.6159 33.9249 +18.326 -38.8787 34.1557 +17.6132 -38.4291 33.7608 +17.3883 -39.0418 34.299 +17.1195 -39.583 34.7745 +16.3283 -38.9056 34.1794 +15.7296 -38.6519 33.9566 +15.3368 -38.8977 34.1724 +14.912 -39.069 34.3229 +14.2438 -38.5861 33.8987 +13.8209 -38.7505 34.0431 +13.17 -38.2578 33.6103 +12.9428 -38.9987 34.2612 +12.466 -39.0091 34.2703 +11.7874 -38.3573 33.6977 +11.4929 -38.9465 34.2153 +10.9777 -38.7999 34.0866 +10.5864 -39.0913 34.3425 +10.151 -39.233 34.467 +9.56737 -38.7809 34.0699 +9.0818 -38.6942 33.9936 +8.665 -38.9005 34.1749 +8.22845 -39.03 34.2887 +7.65653 -38.488 33.8125 +7.34834 -39.2807 34.509 +6.76126 -38.5825 33.8956 +6.39814 -39.1474 34.3918 +5.84129 -38.516 33.8372 +5.40412 -38.6276 33.9352 +4.96481 -38.7363 34.0307 +4.51467 -38.7674 34.058 +4.05634 -38.7206 34.0169 +3.59943 -38.6708 33.9731 +3.15621 -38.7679 34.0585 +2.70054 -38.7121 34.0094 +2.25948 -38.8784 34.1555 +1.80779 -38.8917 34.1672 +1.33502 -38.3013 33.6485 +0.90578 -38.9847 34.2489 +0.452907 -38.9891 34.2528 +9.76996e-15 -38.9155 34.1881 +-0.452035 -38.914 34.1868 +-0.902289 -38.8344 34.1169 +-1.35597 -38.9021 34.1763 +-1.80081 -38.7416 34.0354 +-2.25512 -38.8034 34.0896 +-2.711 -38.8621 34.1412 +-3.16231 -38.8429 34.1243 +-3.61339 -38.8207 34.1048 +-4.11126 -39.2449 34.4775 +-4.54953 -39.0668 34.321 +-5.00315 -39.0355 34.2935 +-5.44593 -38.9265 34.1977 +-5.92053 -39.0385 34.2962 +-6.39814 -39.1474 34.3918 +-6.7221 -38.3591 33.6993 +-7.18133 -38.3879 33.7246 +-7.73043 -38.8595 34.1389 +-8.18152 -38.8074 34.0931 +-8.71451 -39.1228 34.3702 +-9.18599 -39.1381 34.3836 +-9.34868 -37.8945 33.2911 +-9.96023 -38.4955 33.8191 +-10.407 -38.4287 33.7605 +-10.853 -38.359 33.6992 +-11.3198 -38.3598 33.6999 +-11.7649 -38.2841 33.6334 +-12.1858 -38.1324 33.5002 +-12.8461 -38.7072 34.0051 +-13.2952 -38.6214 33.9298 +-13.9503 -39.1134 34.3619 +-14.1904 -38.4413 33.7715 +-14.912 -39.069 34.3229 +-15.3652 -38.9696 34.2357 +-15.8465 -38.9393 34.209 +-16.0878 -38.3324 33.6759 +-16.8105 -38.8685 34.1468 +-17.2931 -38.828 34.1113 +-17.776 -38.7842 34.0728 +-18.5263 -39.3036 34.529 +-18.9821 -39.1806 34.421 +-19.4015 -38.9843 34.2485 +-19.8536 -38.8557 34.1355 +-20.5974 -39.2832 34.5112 +-21.0904 -39.2164 34.4524 +-21.5068 -39.0071 34.2686 +-22.0372 -39.003 34.265 +-22.7686 -39.3393 34.5604 +-23.306 -39.3258 34.5486 +-23.8034 -39.2399 34.4731 +-24.6809 -39.7632 34.9328 +-24.7974 -39.0574 34.3128 +-25.557 -39.366 34.5839 +-26.058 -39.2642 34.4945 +-26.9216 -39.6943 34.8723 +-27.3355 -39.4496 34.6573 +-27.8397 -39.3353 34.5569 +-28.5818 -39.5474 34.7432 +-29.0401 -39.3585 34.5773 +-30.0378 -39.8859 35.0406 +-30.4 -39.5573 34.7519 +-31.2644 -39.8744 35.0305 +-31.7778 -39.7323 34.9056 +-32.1859 -39.4583 34.665 +-33.12 -39.8193 34.9821 +-33.635 -39.664 34.8456 +-34.2578 -39.631 34.8167 +-34.8824 -39.5928 34.7831 +-35.341 -39.3626 34.5809 +-36.0801 -39.439 34.648 +-36.9957 -39.6933 34.8714 +-37.5715 -39.5716 34.7645 +-38.4412 -39.7492 34.9205 +-38.9609 -39.556 34.7508 +-39.9003 -39.7791 34.9468 +-40.4826 -39.6352 34.8204 +-41.4956 -39.9011 35.0539 +-41.833 -39.51 34.7103 +-42.7938 -39.7012 34.8784 +-43.2533 -39.4192 34.6306 +-44.4166 -39.7672 34.9363 +-45.5263 -40.0458 35.1811 +-46.449 -40.1426 35.2661 +-46.9135 -39.8366 34.9973 +-48.0436 -40.0858 35.2162 +-48.3723 -39.6586 34.8409 +-49.5131 -39.8893 35.0436 +-49.8369 -39.4542 34.6614 +-50.9879 -39.6664 34.8478 +-52.1476 -39.8664 35.0235 +-53.2451 -40.0011 35.1419 +-54.421 -40.1772 35.2965 +-54.8137 -39.7667 34.9359 +-56.2165 -40.0781 35.2094 +-57.1919 -40.0666 35.1994 +-58.4661 -40.2485 35.3591 +-59.5259 -40.2658 35.3744 +-60.2909 -40.0731 35.2051 +-61.5843 -40.2185 35.3328 +-63.0377 -40.4475 35.534 +-64.1945 -40.4673 35.5514 +-65.3566 -40.475 35.5581 +-66.446 -40.4232 35.5126 +-68.4 -40.8746 35.9092 +-69.5813 -40.8409 35.8796 +-71.3225 -41.115 36.1204 +-72.6758 -41.1431 36.1451 +-73.8744 -41.0673 36.0785 +-75.5622 -41.2437 36.2335 +-77.0967 -41.314 36.2952 +-78.0652 -41.0655 36.0769 +-80.0227 -41.318 36.2988 +-81.9918 -41.5481 36.5009 +-83.3886 -41.465 36.4279 +-84.6219 -41.285 36.2698 +-86.3633 -41.3342 36.313 +-88.0274 -41.3237 36.3038 +-90.0388 -41.4516 36.4161 +-92.1455 -41.5949 36.542 +-94.0899 -41.6375 36.5794 +-96.1288 -41.6952 36.6301 +-98.8724 -42.0252 36.92 +-100.669 -41.9217 36.8291 +-102.909 -41.9771 36.8778 +-105.512 -42.1473 37.0273 +-107.861 -42.1824 37.0582 +-109.95 -42.0876 36.9749 +-113.03 -42.3373 37.1943 +-115.225 -42.2204 37.0916 +-118.419 -42.4337 37.2789 +-121.355 -42.513 37.3486 +-124.665 -42.6816 37.4967 +-97.0185 -32.4512 28.509 +-98.0337 -32.0236 28.1334 +-97.9417 -31.2329 27.4388 +-94.9748 -29.5547 25.9644 +-62.8631 -19.0808 16.7629 +-49.4982 -14.6481 12.8686 +-44.4384 -12.8153 11.2585 +-39.0592 -10.9712 9.6384 +-36.3661 -9.94388 8.73591 +-18.193 -4.84 4.25204 +-14.9392 -3.86449 3.39504 +-15.3628 -3.86175 3.39263 +-14.7414 -3.59837 3.16125 +-15.0687 -3.56937 3.13577 +-14.9184 -3.42652 3.01027 +-15.3411 -3.41393 2.99921 +-15.0918 -3.2511 2.85616 +-13.009 -2.71035 2.3811 +-13.7161 -2.76107 2.42566 +-12.8764 -2.50175 2.19784 +-13.2931 -2.48994 2.18746 +-12.5436 -2.26239 1.98756 +-13.4463 -2.33216 2.04886 +-12.9847 -2.16263 1.89991 +-12.9115 -2.06179 1.81133 +-12.2491 -1.87223 1.64479 +-13.5465 -1.9782 1.73789 +-12.979 -1.80717 1.58764 +-13.1964 -1.74811 1.53575 +-13.4135 -1.68633 1.48147 +-13.0375 -1.55131 1.36286 +-14.3407 -1.61014 1.41454 +-13.4676 -1.42196 1.24922 +-13.4837 -1.33361 1.17161 +-13.8956 -1.28178 1.12608 +-12.7177 -1.08858 0.956342 +-12.9288 -1.02087 0.896856 +-11.9448 -0.864066 0.759101 +-11.6555 -0.766079 0.673017 +-11.3649 -0.671956 0.590328 +-11.1727 -0.586942 0.515641 +-10.8797 -0.499913 0.439184 +-11.1847 -0.440363 0.386869 +-10.6898 -0.350635 0.308041 +-10.6935 -0.280541 0.246461 +-10.9962 -0.216324 0.190045 +-10.3984 -0.136358 0.119794 +-10.8996 -0.0714596 0.0627788 +11 -1.77636e-15 -1.7053e-13 +10.0996 -0.0656873 0.0587663 +10.9983 -0.143076 0.128001 +10.9962 -0.2146 0.191989 +11.8928 -0.309517 0.276905 +11.2892 -0.367347 0.328642 +11.8837 -0.464158 0.415253 +11.8778 -0.541428 0.484382 +12.9683 -0.675844 0.604635 +13.5581 -0.795242 0.711453 +13.8471 -0.902875 0.807745 +13.6369 -0.978617 0.875508 +13.6249 -1.06727 0.954818 +14.0094 -1.18959 1.06425 +18.7591 -1.71662 1.53575 +32.6185 -3.20046 2.86325 +33.9662 -3.55769 3.18284 +38.6705 -4.30722 3.8534 +39.7051 -4.68681 4.19299 +41.5226 -5.17857 4.63294 +48.3541 -6.35434 5.68483 +55.9472 -7.72794 6.9137 +76.1743 -11.0352 9.87249 +84.3715 -12.7931 11.4452 +92.3371 -14.6275 13.0863 +91.3813 -15.0984 13.5076 +93.9293 -16.1616 14.4588 +94.6116 -16.9284 15.1448 +94.6038 -17.5792 15.727 +94.3944 -18.1938 16.2769 +95.0471 -18.9806 16.9807 +94.8212 -19.5981 17.5332 +95.4533 -20.3989 18.2496 +95.019 -20.9765 18.7664 +94.7698 -21.5937 19.3185 +95.4671 -22.4334 20.0698 +96.0567 -23.2607 20.8098 +95.7807 -23.8845 21.368 +95.4974 -24.5065 21.9245 +96.0552 -25.3506 22.6796 +95.7547 -25.9744 23.2376 +96.1962 -26.8049 23.9807 +95.8787 -27.4295 24.5395 +96.4843 -28.3252 25.3408 +96.149 -28.9516 25.9012 +96.915 -29.9181 26.7658 +96.0087 -30.3725 27.1724 +94.3655 -30.5797 27.3578 +94.9174 -31.4954 28.1769 +95.4549 -32.4206 29.0047 +94.9811 -33.0087 29.5308 +95.1325 -33.8177 30.2545 +95.0025 -34.5331 30.8946 +94.9525 -35.2827 31.5652 +94.6249 -35.9327 32.1467 +95.265 -36.9597 33.0655 +95.0935 -37.6828 33.7125 +94.1213 -38.0865 34.0736 +93.4968 -38.6249 34.5552 +91.0392 -38.3874 34.3428 +89.547 -38.5309 34.4712 +86.9384 -38.1661 34.1449 +86.4882 -38.7301 34.6494 +83.8145 -38.2787 34.2455 +82.8543 -38.5854 34.5199 +81.1343 -38.5221 34.4633 +80.1769 -38.8048 34.7162 +78.6354 -38.79 34.703 +76.9347 -38.6748 34.5999 +75.49 -38.6671 34.593 +74.2971 -38.7719 34.6868 +72.9448 -38.7776 34.6919 +70.7081 -38.2867 34.2527 +69.614 -38.3905 34.3456 +68.4431 -38.4381 34.3882 +67.2764 -38.4735 34.4198 +66.1141 -38.4966 34.4405 +64.8782 -38.4612 34.4088 +63.726 -38.4596 34.4074 +62.6559 -38.4933 34.4376 +61.59 -38.5161 34.4579 +60.3002 -38.3827 34.3386 +59.1692 -38.3334 34.2945 +58.0441 -38.2723 34.2399 +57.5194 -38.5985 34.5316 +56.328 -38.4676 34.4146 +55.0709 -38.2734 34.2408 +54.0404 -38.2197 34.1927 +53.5908 -38.5696 34.5058 +52.4952 -38.4466 34.3958 +51.5481 -38.4177 34.3699 +50.3253 -38.1667 34.1454 +49.1818 -37.9565 33.9573 +48.8732 -38.383 34.3389 +47.9445 -38.3179 34.2806 +46.8184 -38.0787 34.0666 +46.4377 -38.4372 34.3874 +45.4557 -38.2912 34.2567 +44.4152 -38.0791 34.067 +43.578 -38.0265 34.0199 +43.581 -38.7081 34.6297 +42.2356 -38.185 34.1617 +41.4093 -38.1107 34.0952 +40.4635 -37.9119 33.9174 +40.0796 -38.2324 34.2041 +39.5695 -38.4325 34.3832 +39.118 -38.6884 34.612 +37.4738 -37.7431 33.7664 +37.5595 -38.5281 34.4686 +36.4101 -38.0427 34.0344 +35.9059 -38.217 34.1904 +35.457 -38.4491 34.398 +34.9496 -38.6164 34.5477 +33.9441 -38.2208 34.1938 +33.8765 -38.8777 34.7814 +32.5604 -38.0908 34.0774 +32.537 -38.8068 34.718 +31.5589 -38.3815 34.3375 +31.1083 -38.5852 34.5198 +30.2493 -38.2723 34.2399 +29.75 -38.4031 34.3568 +29.3977 -38.7248 34.6447 +28.5068 -38.3279 34.2895 +28.1047 -38.5773 34.5127 +27.6519 -38.7586 34.6749 +26.8276 -38.4081 34.3613 +26.3314 -38.5148 34.4568 +25.9687 -38.818 34.728 +25.031 -38.2485 34.2185 +24.6252 -38.4771 34.4231 +23.8779 -38.163 34.1421 +23.4302 -38.3168 34.2797 +22.9806 -38.4678 34.4147 +22.5293 -38.6158 34.5471 +21.7637 -38.212 34.1859 +21.3155 -38.3521 34.3112 +20.8656 -38.4892 34.4339 +20.0843 -37.9994 33.9957 +19.9611 -38.7548 34.6715 +19.1914 -38.2548 34.2242 +18.7769 -38.4482 34.3972 +18.0256 -37.9366 33.9395 +17.6132 -38.1229 34.1062 +17.3883 -38.7307 34.6499 +17.0886 -39.1967 35.0668 +16.1178 -38.098 34.0839 +15.7004 -38.2727 34.2402 +15.3368 -38.5877 34.522 +14.912 -38.7577 34.6741 +14.2438 -38.2786 34.2455 +13.8209 -38.4417 34.3914 +13.3953 -38.6024 34.5351 +12.7251 -38.0372 34.0295 +12.2559 -38.046 34.0374 +11.8099 -38.1243 34.1074 +11.2981 -37.9814 33.9796 +10.9569 -38.4179 34.3701 +10.407 -38.1225 34.1058 +9.97931 -38.2619 34.2305 +9.56737 -38.4719 34.4184 +9.11653 -38.5327 34.4728 +8.53296 -38.0025 33.9984 +8.19717 -38.5718 34.5078 +7.64175 -38.1076 34.0925 +7.20917 -38.2297 34.2017 +6.76126 -38.2751 34.2423 +6.28846 -38.1697 34.1481 +5.85261 -38.2832 34.2496 +5.41457 -38.3939 34.3486 +4.96481 -38.4277 34.3788 +4.51467 -38.4585 34.4064 +4.04064 -38.2635 34.2319 +3.60641 -38.4371 34.3872 +3.15621 -38.459 34.4069 +2.711 -38.5525 34.4905 +2.21586 -37.8241 33.8388 +1.77289 -37.8371 33.8505 +1.33241 -37.9217 33.9262 +0.886582 -37.8544 33.866 +0.446799 -38.1568 34.1365 +6.21725e-15 -37.9347 33.9378 +-0.443308 -37.8587 33.8698 +-0.902289 -38.525 34.4659 +-1.35597 -38.5921 34.526 +-1.80081 -38.433 34.3836 +-2.22459 -37.973 33.9721 +-2.71624 -38.6269 34.5571 +-3.15621 -38.459 34.4069 +-3.59943 -38.3627 34.3207 +-4.0328 -38.1892 34.1655 +-4.47981 -38.1615 34.1407 +-4.99356 -38.6502 34.5779 +-5.36231 -38.0233 34.0171 +-5.92053 -38.7275 34.6471 +-6.27627 -38.0957 34.0818 +-6.7221 -38.0535 34.044 +-7.30659 -38.7463 34.6639 +-7.61218 -37.9602 33.9606 +-8.18152 -38.4982 34.4419 +-8.54947 -38.076 34.0642 +-9.16862 -38.7528 34.6697 +-9.49447 -38.1788 34.1562 +-9.96023 -38.1887 34.1651 +-10.3871 -38.0495 34.0405 +-10.6867 -37.4702 33.5222 +-11.3414 -38.1269 34.1097 +-11.7649 -37.9791 33.9775 +-12.2092 -37.901 33.9077 +-12.8219 -38.3265 34.2883 +-13.2952 -38.3137 34.2769 +-13.7174 -38.1538 34.1339 +-14.1904 -38.135 34.117 +-14.6639 -38.1129 34.0972 +-15.0812 -37.9446 33.9466 +-15.8173 -38.5578 34.4952 +-16.3283 -38.5956 34.529 +-16.8105 -38.5588 34.4962 +-17.2614 -38.448 34.397 +-17.7435 -38.4048 34.3583 +-18.2259 -38.3581 34.3166 +-18.9821 -38.8684 34.7731 +-19.1213 -38.1152 34.0993 +-19.8536 -38.5461 34.4848 +-20.3042 -38.4154 34.3679 +-21.0904 -38.9039 34.8049 +-21.5451 -38.7652 34.6808 +-22.0372 -38.6922 34.6155 +-22.4894 -38.5474 34.486 +-23.2653 -38.9444 34.8411 +-23.7619 -38.8594 34.7651 +-24.2583 -38.7709 34.6859 +-24.8405 -38.8135 34.724 +-25.6447 -39.1864 35.0576 +-25.701 -38.4177 34.37 +-26.8762 -39.3116 35.1697 +-26.9661 -38.6065 34.5388 +-27.8866 -39.0877 34.9693 +-28.2955 -38.8394 34.7471 +-29.0886 -39.1101 34.9894 +-29.9394 -39.4383 35.283 +-30.35 -39.1776 35.0497 +-31.2136 -39.4924 35.3314 +-31.2628 -38.7769 34.6913 +-32.2382 -39.2075 35.0765 +-32.696 -38.9964 34.8876 +-33.1514 -38.7823 34.6961 +-34.3123 -39.3777 35.2287 +-35.1584 -39.5881 35.417 +-35.341 -39.049 34.9347 +-35.627 -38.6334 34.5628 +-37.1678 -39.5602 35.392 +-37.4553 -39.1349 35.0116 +-38.4412 -39.4324 35.2777 +-38.8419 -39.1211 34.9992 +-39.9003 -39.4621 35.3043 +-40.3609 -39.2011 35.0708 +-41.434 -39.5244 35.36 +-41.8952 -39.2534 35.1176 +-42.9197 -39.5008 35.3389 +-43.3805 -39.2201 35.0878 +-44.4166 -39.4503 35.2937 +-44.8769 -39.16 35.034 +-45.9897 -39.429 35.2747 +-46.3171 -39.0168 34.9059 +-47.3744 -39.2126 35.081 +-47.8318 -38.9029 34.804 +-48.8993 -39.081 34.9633 +-49.355 -38.7614 34.6774 +-50.9879 -39.3503 35.2043 +-51.5168 -39.0704 34.9538 +-52.6087 -39.2081 35.077 +-53.7078 -39.3347 35.1903 +-54.7418 -39.398 35.2469 +-56.144 -39.7074 35.5237 +-57.1919 -39.7474 35.5595 +-57.8025 -39.4746 35.3155 +-58.9314 -39.546 35.3793 +-60.1411 -39.6551 35.4769 +-61.4334 -39.8002 35.6068 +-62.5814 -39.8348 35.6377 +-64.2711 -40.1928 35.958 +-65.3566 -40.1525 35.9219 +-66.5237 -40.148 35.9179 +-67.6956 -40.1314 35.903 +-69.5813 -40.5155 36.2467 +-70.7671 -40.4697 36.2057 +-72.4362 -40.6807 36.3945 +-73.6333 -40.6071 36.3286 +-75.1577 -40.6961 36.4082 +-76.364 -40.5952 36.318 +-78.3109 -40.8665 36.5607 +-79.2809 -40.6089 36.3303 +-80.997 -40.7169 36.4268 +-82.6381 -40.7645 36.4694 +-84.6219 -40.9561 36.6408 +-85.8572 -40.7646 36.4695 +-87.773 -40.876 36.5692 +-88.9304 -40.6151 36.3358 +-91.374 -40.9181 36.6068 +-93.4006 -41.0031 36.6829 +-96.1288 -41.3629 37.0048 +-97.828 -41.25 36.9037 +-100.931 -41.6961 37.3029 +-102.119 -41.3225 36.9687 +-104.718 -41.4966 37.1244 +-107.062 -41.5367 37.1602 +-109.683 -41.6508 37.2623 +-112.404 -41.7672 37.3665 +-114.776 -41.7207 37.3249 +-117.246 -41.6785 37.2871 +-121.627 -42.2688 37.8152 +-123.846 -42.0634 37.6314 +-97.9321 -32.4958 29.0719 +-97.8503 -31.709 28.368 +-97.7576 -30.9258 27.6673 +-90.9097 -28.0642 25.1073 +-59.5252 -17.9237 16.0352 +-47.2652 -13.8758 12.4138 +-42.8513 -12.2592 10.9675 +-38.0289 -10.5967 9.48017 +-35.8023 -9.71172 8.68847 +-15.7421 -4.15461 3.71686 +-16.0738 -4.12486 3.69025 +-15.5525 -3.87828 3.46965 +-14.7414 -3.5697 3.19359 +-15.7363 -3.69781 3.3082 +-15.1096 -3.44279 3.08005 +-14.4782 -3.19622 2.85946 +-15.1879 -3.24574 2.90376 +-12.3345 -2.54934 2.28073 +-13.1366 -2.62333 2.34693 +-12.6827 -2.4445 2.18694 +-11.5465 -2.14556 1.9195 +-12.2519 -2.19217 1.9612 +-13.2514 -2.28005 2.03982 +-12.5942 -2.08087 1.86162 +-12.8137 -2.02987 1.816 +-13.033 -1.97617 1.76796 +-13.8409 -2.0051 1.79384 +-13.7656 -1.90143 1.70109 +-13.9843 -1.83771 1.64408 +-13.6107 -1.69749 1.51864 +-13.0375 -1.53895 1.3768 +-13.1539 -1.46512 1.31075 +-12.8735 -1.34839 1.20632 +-13.5828 -1.33271 1.1923 +-13.5979 -1.24432 1.11322 +-12.7177 -1.07991 0.966126 +-11.7354 -0.919256 0.822401 +-12.2434 -0.878608 0.786036 +-12.1536 -0.792454 0.708959 +-11.2652 -0.660755 0.591136 +-10.6739 -0.556271 0.497661 +-10.0812 -0.459531 0.411114 +-11.9836 -0.468058 0.418742 +-10.6898 -0.347841 0.311192 +-10.9933 -0.286108 0.255963 +-10.3964 -0.202895 0.181517 +-10.8983 -0.141775 0.126837 +-11.7996 -0.0767435 0.0686576 +10.6 1.77636e-15 -1.7053e-13 +11.0996 -0.0716053 0.0652335 +10.1984 -0.131594 0.119884 +10.1965 -0.197379 0.179815 +11.0932 -0.286366 0.260884 +11.4891 -0.370816 0.337819 +11.4842 -0.444916 0.405325 +12.3769 -0.5596 0.509804 +12.6691 -0.65489 0.596615 +12.6609 -0.736593 0.671048 +13.0502 -0.84401 0.768906 +13.3383 -0.949417 0.864934 +13.6249 -1.05861 0.964409 +14.4068 -1.21341 1.10544 +15.4837 -1.4054 1.28034 +35.1963 -3.42536 3.12056 +36.4419 -3.78603 3.44913 +38.7694 -4.2832 3.90206 +40.1001 -4.69504 4.27725 +38.5638 -4.77053 4.34602 +41.7558 -5.44273 4.95841 +44.9347 -6.15644 5.60861 +72.2478 -10.3814 9.45761 +67.8108 -10.1987 9.29114 +83.0447 -13.0487 11.8876 +82.497 -13.5199 12.3168 +92.3703 -15.7644 14.3616 +94.0282 -16.6876 15.2026 +95.5741 -17.6154 16.0479 +95.3625 -18.2312 16.6089 +95.1437 -18.8457 17.1688 +94.9176 -19.4588 17.7273 +95.5494 -20.2538 18.4515 +95.3067 -20.8693 19.0123 +95.9174 -21.6779 19.7489 +95.6578 -22.2958 20.3118 +95.391 -22.912 20.8732 +95.9704 -23.7376 21.6253 +95.5919 -24.3317 22.1666 +96.1494 -25.1696 22.9299 +95.7547 -25.7636 23.4711 +96.2899 -26.6133 24.2451 +95.8787 -27.207 24.786 +96.5773 -28.1224 25.62 +96.2417 -28.7444 26.1866 +96.3606 -29.5056 26.8801 +95.2723 -29.895 27.2348 +95.0074 -30.538 27.8205 +95.1001 -31.3 28.5148 +95.5459 -32.1882 29.324 +95.7061 -32.9908 30.0551 +95.4033 -33.6387 30.6454 +94.8228 -34.1881 31.1459 +95.3105 -35.1284 32.0025 +95.1595 -35.8425 32.6531 +95.9746 -36.9329 33.6464 +94.0339 -36.9606 33.6717 +93.6819 -37.6011 34.2552 +92.0975 -37.7381 34.38 +90.43 -37.8212 34.4557 +89.0274 -37.9965 34.6154 +86.2491 -37.5564 34.2144 +85.8024 -38.1113 34.72 +83.3882 -37.775 34.4136 +82.1759 -37.959 34.5812 +80.4595 -37.8918 34.52 +79.1705 -38.0068 34.6248 +77.2178 -37.7817 34.4197 +76.7689 -38.2784 34.8722 +73.9241 -37.5578 34.2158 +73.4779 -38.0333 34.6489 +71.0723 -37.4756 34.1409 +70.3845 -37.8023 34.4385 +68.569 -37.5074 34.1698 +67.9639 -37.8594 34.4905 +66.721 -37.8463 34.4786 +66.2717 -38.2753 34.8694 +64.3304 -37.827 34.461 +63.182 -37.8218 34.4563 +62.0386 -37.8048 34.4408 +61.6666 -38.2511 34.8473 +59.6919 -37.6873 34.3337 +58.5655 -37.6344 34.2855 +57.2951 -37.4719 34.1375 +56.7763 -37.7907 34.4279 +55.5907 -37.6561 34.3053 +54.4859 -37.5595 34.2173 +53.4601 -37.5025 34.1653 +53.0153 -37.8459 34.4782 +51.9246 -37.7202 34.3637 +50.841 -37.5833 34.2389 +49.7646 -37.4353 34.1041 +49.4597 -37.8612 34.4922 +48.3913 -37.6962 34.3418 +47.8763 -37.9529 34.5757 +46.2779 -37.3338 34.0116 +45.9024 -37.6858 34.3323 +44.3955 -37.0946 33.7938 +44.5464 -37.8818 34.5109 +43.4481 -37.6056 34.2593 +42.6811 -37.6013 34.2554 +41.9176 -37.59 34.2451 +41.5351 -37.9164 34.5424 +40.0899 -37.2573 33.9419 +39.587 -37.4562 34.1232 +39.2042 -37.7688 34.408 +38.6967 -37.9612 34.5833 +37.5928 -37.5558 34.2139 +37.0892 -37.737 34.379 +36.0036 -37.3129 33.9926 +36.078 -38.0887 34.6994 +35.0039 -37.6498 34.2995 +34.5022 -37.8129 34.4481 +33.9993 -37.9724 34.5934 +33.4408 -38.0663 34.679 +32.6141 -37.8441 34.4766 +32.0601 -37.9277 34.5527 +31.6112 -38.133 34.7398 +30.7478 -37.8286 34.4625 +29.894 -37.516 34.1777 +29.45 -37.7074 34.352 +29.0037 -37.896 34.5238 +28.1674 -37.5643 34.2217 +27.7706 -37.8096 34.4451 +27.3702 -38.0525 34.6664 +26.4582 -37.572 34.2286 +26.0137 -37.7412 34.3829 +25.2102 -37.3784 34.0523 +25.2063 -38.204 34.8044 +24.3239 -37.6979 34.3434 +23.8779 -37.8534 34.485 +23.4716 -38.0732 34.6853 +22.6552 -37.6154 34.2682 +22.2901 -37.8957 34.5236 +21.8028 -37.97 34.5913 +21.0093 -37.4946 34.1581 +20.6408 -37.7657 34.4051 +19.8277 -37.2097 33.8986 +19.7102 -37.9573 34.5796 +18.9112 -37.3906 34.0634 +18.4691 -37.5111 34.1732 +17.7585 -37.0714 33.7726 +17.5807 -37.7437 34.3851 +17.1345 -37.8557 34.4871 +16.8723 -38.3866 34.9708 +16.208 -38.0004 34.619 +15.5542 -37.6087 34.2621 +14.8824 -37.1406 33.8357 +14.719 -37.9458 34.5692 +14.03 -37.3982 34.0703 +13.8468 -38.2013 34.8019 +12.9697 -37.0725 33.7736 +12.7735 -37.872 34.502 +12.2792 -37.8093 34.4448 +11.8099 -37.8149 34.45 +11.2981 -37.6732 34.3209 +10.7282 -37.3108 33.9907 +10.4269 -37.8857 34.5144 +9.82666 -37.371 34.0455 +9.4398 -37.651 34.3006 +8.97761 -37.6377 34.2885 +8.56597 -37.8399 34.4728 +8.08766 -37.7478 34.3888 +7.64175 -37.7985 34.435 +7.22308 -37.9927 34.612 +6.77431 -38.0379 34.6531 +6.31283 -38.0068 34.6248 +5.76204 -37.385 34.0583 +5.3205 -37.4208 34.0909 +4.97439 -38.1895 34.7912 +4.50595 -38.0729 34.685 +3.96218 -37.2161 33.9044 +3.53665 -37.3877 34.0608 +3.11348 -37.6305 34.282 +2.6639 -37.5753 34.2317 +2.22023 -37.5911 34.2461 +1.77638 -37.604 34.2578 +1.33502 -37.6879 34.3342 +0.890073 -37.695 34.3408 +0.437199 -37.0341 33.7386 +8.88178e-15 -37.9226 34.5481 +-0.445053 -37.6994 34.3447 +-0.888327 -37.6211 34.2734 +-1.32979 -37.5401 34.1996 +-1.77638 -37.604 34.2578 +-2.25948 -38.2558 34.8516 +-2.6639 -37.5753 34.2317 +-3.10127 -37.4829 34.1475 +-3.60641 -38.1252 34.7326 +-3.96218 -37.2161 33.9044 +-4.47981 -37.8519 34.4837 +-4.93606 -37.8952 34.5231 +-5.36231 -37.7149 34.3588 +-5.81865 -37.7523 34.3929 +-6.27627 -37.7866 34.4242 +-6.7221 -37.7447 34.386 +-7.16741 -37.6999 34.3452 +-7.62697 -37.7254 34.3684 +-8.05637 -37.6017 34.2557 +-8.51646 -37.6212 34.2735 +-9.06443 -38.0017 34.6201 +-9.34868 -37.2876 33.9696 +-9.80758 -37.2984 33.9794 +-10.2475 -37.2337 33.9205 +-10.7075 -37.2385 33.9248 +-11.125 -37.0958 33.7949 +-11.7649 -37.6709 34.3188 +-12.2092 -37.5935 34.2483 +-12.6525 -37.5134 34.1753 +-13.0949 -37.4303 34.0996 +-13.7433 -37.9157 34.5418 +-14.2171 -37.8968 34.5245 +-14.6363 -37.7326 34.375 +-15.1096 -37.7076 34.3522 +-15.6126 -37.7501 34.3909 +-16.0878 -37.7185 34.3621 +-16.8414 -38.3163 34.9067 +-17.0075 -37.5752 34.2316 +-17.5156 -37.6039 34.2577 +-17.9922 -37.5592 34.217 +-18.7427 -38.0669 34.6795 +-19.1213 -37.806 34.4418 +-19.8894 -38.3023 34.894 +-20.0476 -37.6223 34.2745 +-20.7532 -37.9714 34.5925 +-21.2772 -37.9726 34.5936 +-22.0763 -38.4463 35.0252 +-22.5293 -38.3025 34.8941 +-23.0213 -38.2232 34.8219 +-23.4302 -38.006 34.624 +-24.3428 -38.5903 35.1564 +-24.8405 -38.4986 35.0728 +-25.294 -38.3368 34.9255 +-25.7902 -38.2384 34.8357 +-26.2407 -38.0706 34.6829 +-26.6429 -37.8342 34.4676 +-27.558 -38.3136 34.9043 +-28.3432 -38.5891 35.1553 +-28.7007 -38.2756 34.8696 +-29.4962 -38.5393 35.1099 +-30 -38.4116 34.9935 +-30.8076 -38.6625 35.2221 +-31.2628 -38.4623 35.0397 +-31.8202 -38.3852 34.9695 +-32.696 -38.68 35.2381 +-33.2051 -38.5299 35.1014 +-33.5498 -38.1903 34.7919 +-34.3305 -38.3422 34.9304 +-35.1732 -38.5483 35.1181 +-35.457 -38.1372 34.7436 +-36.5368 -38.5731 35.1407 +-36.9908 -38.336 34.9246 +-38.0297 -38.6939 35.2507 +-38.5445 -38.5065 35.08 +-39.5392 -38.7878 35.3363 +-39.8739 -38.4139 34.9956 +-40.8799 -38.6795 35.2376 +-41.335 -38.4143 34.996 +-42.4162 -38.7207 35.2751 +-42.8717 -38.4456 35.0245 +-44.031 -38.7904 35.3387 +-44.4222 -38.4488 35.0274 +-45.9897 -39.1091 35.629 +-45.9196 -38.368 34.9539 +-47.5083 -39.0043 35.5335 +-47.8318 -38.5873 35.1536 +-48.9675 -38.8179 35.3637 +-49.4239 -38.5006 35.0746 +-50.4322 -38.6057 35.1704 +-50.9561 -38.3316 34.9207 +-52.1138 -38.5242 35.0961 +-53.2085 -38.6528 35.2133 +-54.1663 -38.6676 35.2268 +-54.6932 -38.3675 34.9534 +-56.6799 -39.072 35.5952 +-57.2127 -38.7548 35.3062 +-59.0057 -39.2746 35.7798 +-59.3173 -38.7945 35.3424 +-60.7541 -39.0409 35.5668 +-61.9731 -39.1275 35.6458 +-63.6583 -39.4866 35.9729 +-64.0448 -39.0274 35.5545 +-65.902 -39.4501 35.9397 +-67.1478 -39.4837 35.9702 +-69.0297 -39.8682 36.3205 +-69.4978 -39.4214 35.9135 +-71.6376 -39.9058 36.3548 +-72.9902 -39.9258 36.373 +-74.915 -40.2356 36.6552 +-75.1429 -39.622 36.0962 +-77.8194 -40.2806 36.6962 +-78.6216 -39.9445 36.3901 +-81.0799 -40.4279 36.8304 +-81.554 -39.9033 36.3525 +-83.9509 -40.3017 36.7155 +-84.4235 -39.7586 36.2207 +-87.349 -40.3485 36.7581 +-88.3335 -40.0153 36.4545 +-90.8597 -40.3576 36.7664 +-92.3666 -40.2202 36.6412 +-95.1762 -40.6208 37.0061 +-96.3484 -40.2965 36.7107 +-99.6192 -40.8202 37.1878 +-101.24 -40.6346 37.0187 +-104.011 -40.8823 37.2444 +-106.53 -40.9948 37.3469 +-109.416 -41.2122 37.5449 +-110.793 -40.8346 37.201 +-114.057 -41.1229 37.4636 +-115.621 -40.7675 37.1398 +-119.542 -41.2072 37.5404 +-122.208 -41.1702 37.5067 +-106.154 -34.9382 31.8292 +-97.942 -31.4812 28.6799 +-98.2179 -30.8193 28.0769 +-66.7965 -20.4531 18.6331 +-55.5383 -16.5875 15.1115 +-42.9853 -12.517 11.4031 +-40.7041 -11.5503 10.5225 +-35.5935 -9.83762 8.96222 +-32.8892 -8.84912 8.06168 +-15.8364 -4.14558 3.77669 +-15.6956 -3.99513 3.63962 +-15.837 -3.91718 3.56861 +-15.0267 -3.60928 3.28811 +-15.0687 -3.5122 3.19967 +-14.7271 -3.32841 3.03223 +-15.2452 -3.33825 3.0412 +-13.4577 -2.85264 2.59879 +-12.9126 -2.64718 2.41162 +-12.9434 -2.56379 2.33565 +-13.5541 -2.59124 2.36066 +-11.8376 -2.18181 1.98766 +-12.3491 -2.19164 1.99662 +-12.3745 -2.1119 1.92397 +-12.9847 -2.12799 1.93863 +-13.8897 -2.18247 1.98826 +-13.327 -2.00435 1.826 +-13.1538 -1.8901 1.72191 +-14.2572 -1.95336 1.77954 +-14.2797 -1.86131 1.69568 +-13.019 -1.61051 1.4672 +-13.8276 -1.61898 1.47491 +-13.1539 -1.45323 1.32392 +-12.8735 -1.33745 1.21844 +-13.5828 -1.3219 1.20427 +-13.2009 -1.19819 1.09157 +-12.9164 -1.08788 0.991078 +-12.531 -0.973612 0.886976 +-12.2434 -0.87148 0.793932 +-11.6555 -0.753809 0.686732 +-10.9661 -0.637994 0.581222 +-10.9732 -0.567228 0.516753 +-10.9795 -0.496419 0.452245 +-11.2845 -0.437179 0.398276 +-10.5899 -0.341796 0.311381 +-11.0932 -0.286366 0.260884 +-10.5964 -0.205119 0.186867 +-11.2983 -0.145785 0.132813 +-10.5996 -0.0683799 0.0622951 +11 -1.77636e-15 -1.7053e-13 +10.1996 -0.0652559 0.0605357 +10.1984 -0.130507 0.121067 +10.1965 -0.195748 0.181589 +11.0932 -0.284001 0.263458 +10.5899 -0.338972 0.314452 +11.4842 -0.441241 0.409324 +11.9776 -0.537074 0.498225 +11.6715 -0.598341 0.55506 +12.6609 -0.730508 0.677667 +13.349 -0.856209 0.794275 +13.1392 -0.92752 0.860428 +14.0228 -1.08052 1.00236 +14.1087 -1.17849 1.09324 +15.0867 -1.35805 1.25981 +35.5929 -3.43534 3.18685 +38.8185 -3.99963 3.71031 +40.3518 -4.4212 4.10139 +39.8038 -4.62185 4.28752 +36.3939 -4.46492 4.14195 +36.2409 -4.68485 4.34597 +41.1001 -5.58453 5.18058 +63.1186 -8.99471 8.34408 +63.8911 -9.52974 8.84041 +78.5453 -12.2397 11.3544 +78.9823 -12.837 11.9084 +85.4523 -14.4632 13.417 +93.0558 -16.3785 15.1938 +94.7009 -17.3102 16.0581 +94.4912 -17.9154 16.6195 +95.1437 -18.6901 17.3381 +94.9176 -19.298 17.9021 +94.6843 -19.9046 18.4648 +95.4026 -20.7177 19.2191 +95.1523 -21.3273 19.7846 +95.6578 -22.1116 20.5122 +95.4861 -22.7454 21.1001 +95.8755 -23.5183 21.8171 +95.6865 -24.1546 22.4074 +96.1494 -24.9617 23.1561 +95.7547 -25.5508 23.7026 +96.1962 -26.3678 24.4605 +95.9721 -27.0085 25.0548 +96.5773 -27.8901 25.8727 +96.0562 -28.452 26.3939 +95.6215 -29.0374 26.937 +94.7199 -29.4762 27.344 +94.3655 -30.0811 27.9051 +95.1001 -31.0415 28.7961 +94.636 -31.6183 29.3312 +94.8904 -32.4394 30.0929 +95.2227 -33.2977 30.8891 +95.6317 -34.1949 31.7214 +95.579 -34.9363 32.4091 +95.6941 -35.7461 33.1604 +95.265 -36.357 33.7271 +93.8573 -36.5864 33.94 +92.9789 -37.0106 34.3335 +91.1354 -37.0354 34.3565 +89.4726 -37.1116 34.4271 +87.7284 -37.1328 34.4468 +86.5076 -37.3578 34.6555 +84.6024 -37.2679 34.5721 +82.6208 -37.1182 34.4332 +81.667 -37.4122 34.706 +78.9414 -36.8697 34.2028 +78.9189 -37.573 34.8552 +76.4673 -37.1054 34.4213 +75.774 -37.4702 34.7597 +73.9241 -37.2476 34.5533 +72.495 -37.2145 34.5226 +70.0953 -36.6551 34.0037 +69.4946 -37.0161 34.3385 +68.1671 -36.9795 34.3046 +67.7243 -37.4142 34.7079 +65.8483 -37.0427 34.3633 +64.7745 -37.1015 34.4178 +63.626 -37.1037 34.4198 +63.2597 -37.5556 34.839 +61.3442 -37.0728 34.3911 +60.8239 -37.4167 34.7102 +59.0075 -36.9474 34.2748 +58.5655 -37.3235 34.6237 +57.2951 -37.1624 34.4742 +56.0331 -36.9879 34.3124 +54.9272 -36.8993 34.2302 +54.4859 -37.2493 34.5548 +52.7347 -36.6881 34.0342 +52.296 -37.024 34.3459 +50.5695 -36.4323 33.7969 +50.9117 -37.3246 34.6248 +49.2739 -36.76 34.1009 +48.765 -37.0211 34.3432 +47.8406 -36.9594 34.2859 +47.1943 -37.1032 34.4194 +46.2779 -37.0254 34.3471 +45.3001 -36.8842 34.2161 +44.3955 -36.7882 34.1271 +43.6935 -36.8496 34.184 +42.5388 -36.5145 33.8732 +42.0383 -36.729 34.0722 +41.3451 -36.7703 34.1105 +40.4653 -36.6346 33.9846 +40.0899 -36.9495 34.2767 +39.587 -37.1468 34.4598 +38.4737 -36.7588 34.0999 +38.6967 -37.6476 34.9244 +36.9385 -36.5972 33.95 +36.5015 -36.8322 34.1679 +35.9455 -36.9449 34.2725 +35.5044 -37.1735 34.4845 +35.0039 -37.3388 34.6379 +34.0548 -37.0143 34.3369 +33.5026 -37.1085 34.4243 +33.0051 -37.2599 34.5647 +32.0768 -36.9132 34.2431 +31.5832 -37.0548 34.3745 +30.7229 -36.7554 34.0967 +30.2842 -36.9505 34.2777 +29.7417 -37.0166 34.339 +29.4 -37.3324 34.632 +28.5113 -36.9448 34.2724 +28.119 -37.1899 34.4997 +27.3412 -36.9174 34.247 +26.9007 -37.0909 34.4079 +26.0426 -36.6763 34.0233 +25.6505 -36.9069 34.2372 +24.8978 -36.6103 33.9621 +24.3734 -36.6364 33.9863 +23.9795 -36.8571 34.1911 +23.4553 -36.8762 34.2088 +23.0569 -37.0916 34.4085 +22.6146 -37.2377 34.5441 +21.9312 -36.9776 34.3028 +21.4902 -37.1165 34.4317 +20.7032 -36.643 33.9924 +20.6034 -37.3858 34.6815 +19.8277 -36.9023 34.2329 +19.3519 -36.9592 34.2858 +18.9462 -37.1504 34.4631 +18.5033 -37.2702 34.5742 +17.7585 -36.7651 34.1057 +17.4505 -37.1546 34.467 +17.0393 -37.3344 34.6338 +16.4088 -37.0236 34.3455 +15.6968 -36.4979 33.8578 +15.5249 -37.2279 34.535 +15.1096 -37.3961 34.6911 +14.471 -36.998 34.3218 +14.03 -37.0892 34.4064 +13.3809 -36.6111 33.9628 +12.9446 -36.6952 34.0409 +12.5557 -36.9189 34.2484 +12.0691 -36.8553 34.1894 +11.585 -36.7883 34.1272 +11.1034 -36.7178 34.0618 +10.749 -37.0743 34.3925 +10.2475 -36.9261 34.2551 +9.80758 -36.9903 34.3146 +9.25756 -36.6191 33.9702 +8.97761 -37.3268 34.6267 +8.53296 -37.3828 34.6787 +8.11895 -37.5807 34.8623 +7.5235 -36.9062 34.2366 +7.09783 -37.0255 34.3473 +6.64378 -36.9968 34.3206 +6.20315 -37.0379 34.3588 +5.75072 -37.0034 34.3267 +5.31005 -37.0387 34.3595 +4.87855 -37.1443 34.4574 +4.43623 -37.174 34.4851 +3.97788 -37.0548 34.3745 +3.54363 -37.1521 34.4647 +3.10737 -37.2465 34.5523 +2.6639 -37.2649 34.5693 +2.18097 -36.6213 33.9723 +1.77289 -37.2201 34.5278 +1.31147 -36.7169 34.061 +0.890073 -37.3836 34.6795 +0.438072 -36.8015 34.1394 +2.66454e-15 -36.8029 34.1407 +-0.437199 -36.7282 34.0714 +-0.888327 -37.3103 34.6115 +-1.33241 -37.3033 34.605 +-1.7694 -37.1468 34.4598 +-2.18097 -36.6213 33.9723 +-2.6639 -37.2649 34.5693 +-3.10127 -37.1732 34.4843 +-3.53665 -37.0789 34.3968 +-3.96218 -36.9087 34.2389 +-4.47981 -37.5392 34.8238 +-4.83063 -36.7794 34.119 +-5.37276 -37.4762 34.7653 +-5.80732 -37.3675 34.6645 +-6.27627 -37.4745 34.7638 +-6.61768 -36.8515 34.1858 +-7.1535 -37.3159 34.6167 +-7.46438 -36.6161 33.9675 +-7.89994 -36.567 33.9219 +-8.46694 -37.0935 34.4104 +-9.01234 -37.4711 34.7606 +-9.33046 -36.9075 34.2378 +-9.80758 -36.9903 34.3146 +-10.0481 -36.2077 33.5886 +-10.6867 -36.8592 34.193 +-11.125 -36.7894 34.1282 +-11.5625 -36.7168 34.0609 +-11.9991 -36.6414 33.991 +-12.4348 -36.5633 33.9185 +-13.0698 -37.0501 34.3701 +-13.5104 -36.9651 34.2912 +-13.9498 -36.8773 34.2098 +-14.4158 -36.8571 34.1911 +-14.8824 -36.8338 34.1694 +-15.6126 -37.4383 34.7302 +-16.0577 -37.3369 34.6362 +-16.5942 -37.4419 34.7336 +-16.7537 -36.7087 34.0533 +-17.5156 -37.2933 34.5956 +-17.9588 -37.1798 34.4904 +-18.4007 -37.0635 34.3825 +-18.8412 -36.9444 34.272 +-19.6027 -37.4383 34.7302 +-20.011 -37.2433 34.5493 +-20.491 -37.1819 34.4923 +-21.2389 -37.5912 34.872 +-21.7247 -37.5214 34.8073 +-22.2103 -37.4482 34.7393 +-22.6146 -37.2377 34.5441 +-23.0984 -37.1583 34.4704 +-23.9202 -37.6071 34.8868 +-24.41 -37.5188 34.8049 +-25.294 -38.0201 35.27 +-25.2994 -37.2008 34.5099 +-26.2407 -37.7561 35.025 +-26.6429 -37.5217 34.8076 +-27.511 -37.9324 35.1885 +-27.9138 -37.6905 34.9642 +-28.6038 -37.8311 35.0946 +-29.5454 -38.2847 35.5154 +-29.55 -37.5229 34.8086 +-29.9955 -37.3324 34.632 +-30.8508 -37.6418 34.919 +-31.3499 -37.5055 34.7925 +-32.2721 -37.863 35.1242 +-32.7753 -37.717 34.9887 +-33.223 -37.5059 34.7929 +-33.8889 -37.5364 34.8212 +-34.7259 -37.7436 35.0134 +-35.7969 -38.1847 35.4226 +-36.1927 -37.8941 35.153 +-36.5262 -37.5418 34.8262 +-37.4419 -37.7811 35.0482 +-37.8902 -37.5402 34.8247 +-38.9976 -37.9404 35.196 +-39.4477 -37.6894 34.9632 +-40.449 -37.9556 35.21 +-40.8992 -37.6954 34.9687 +-41.8498 -37.888 35.1474 +-42.2992 -37.6188 34.8977 +-43.4524 -37.9646 35.2184 +-43.8377 -37.6294 34.9075 +-44.8088 -37.7902 35.0566 +-45.8533 -37.9962 35.2477 +-46.2369 -37.6469 34.9237 +-47.2913 -37.8361 35.0993 +-48.2855 -37.9611 35.2151 +-48.7355 -37.6507 34.9273 +-49.807 -37.8122 35.077 +-50.9561 -38.0149 35.2651 +-52.1138 -38.2059 35.4423 +-52.5666 -37.871 35.1316 +-53.5908 -37.9407 35.1962 +-54.6932 -38.0506 35.2982 +-55.8023 -38.1492 35.3897 +-57.2127 -38.4347 35.6545 +-57.5937 -38.0181 35.2681 +-58.793 -38.134 35.3756 +-60.7541 -38.7184 35.9177 +-61.745 -38.6615 35.8649 +-62.356 -38.3592 35.5845 +-63.3504 -38.2852 35.5159 +-65.2025 -38.709 35.909 +-66.3652 -38.7011 35.9016 +-67.5325 -38.6813 35.8833 +-69.4978 -39.0957 36.2677 +-70.6792 -39.0467 36.2222 +-71.7844 -38.9419 36.125 +-73.4587 -39.1275 36.2972 +-75.3871 -39.4224 36.5708 +-76.345 -39.1909 36.356 +-77.1382 -38.867 36.0556 +-79.8363 -39.479 36.6233 +-80.8035 -39.2095 36.3733 +-82.7768 -39.4098 36.5591 +-83.7488 -39.1151 36.2857 +-86.1617 -39.4713 36.6161 +-87.3104 -39.225 36.3877 +-89.7454 -39.5334 36.6737 +-91.5912 -39.553 36.692 +-93.6173 -39.6254 36.7591 +-95.6521 -39.6747 36.8049 +-98.1323 -39.8788 36.9941 +-100.361 -39.9491 37.0594 +-102.863 -40.0971 37.1967 +-104.49 -39.8776 36.993 +-108.168 -40.4057 37.483 +-109.45 -40.0066 37.1127 +-113.428 -40.5582 37.6244 +-114.809 -40.1466 37.2426 +-118.364 -40.464 37.537 +-121.662 -40.6477 37.7075 +-125.247 -40.8817 37.9245 +-97.8503 -31.1919 28.9356 +-97.7576 -30.4215 28.2209 +-59.0359 -17.9275 16.6307 +-49.6043 -14.6929 13.6301 +-41.4036 -11.9568 11.0919 +-37.7166 -10.6143 9.84647 +-32.7835 -8.98613 8.33612 +-30.3521 -8.09905 7.5132 +-15.6478 -4.06238 3.76853 +-16.0738 -4.0576 3.76409 +-15.268 -3.74524 3.47433 +-15.5973 -3.71539 3.44664 +-14.5919 -3.37296 3.12898 +-15.1096 -3.38665 3.14167 +-14.4782 -3.1441 2.91667 +-13.6499 -2.86949 2.66192 +-12.2381 -2.48817 2.30819 +-3164.66 -621.667 576.699 +-14.2318 -2.69833 2.50315 +-13.4871 -2.46529 2.28696 +-12.9325 -2.27622 2.11157 +-13.8361 -2.34182 2.17242 +-13.4729 -2.18975 2.03135 +-13.9875 -2.17968 2.02202 +-13.131 -1.95856 1.81689 +-13.7428 -1.95842 1.81676 +-13.6672 -1.85706 1.72273 +-13.5903 -1.75682 1.62974 +-14.1039 -1.73031 1.60514 +-13.1363 -1.52532 1.41499 +-12.6594 -1.38704 1.28671 +-13.5667 -1.39783 1.29672 +-13.5828 -1.31098 1.21615 +-13.4986 -1.2151 1.1272 +-12.519 -1.0457 0.970059 +-12.3321 -0.95024 0.881504 +-12.542 -0.885365 0.821323 +-10.7589 -0.690077 0.64016 +-10.667 -0.615467 0.570947 +-10.9732 -0.562542 0.521851 +-10.9795 -0.492318 0.456706 +-11.0848 -0.425893 0.395086 +-11.4891 -0.367752 0.341151 +-10.1938 -0.260974 0.242097 +-10.5964 -0.203425 0.18871 +-10.9983 -0.140742 0.130562 +-10.1996 -0.0652559 0.0605357 +11.9 0 -1.7053e-13 +10.1996 -0.0647071 0.061122 +10.1984 -0.129409 0.12224 +10.5964 -0.201713 0.190538 +11.0932 -0.281612 0.266009 +11.0894 -0.351975 0.332474 +11.9836 -0.456552 0.431257 +11.4786 -0.510367 0.48209 +11.6715 -0.593308 0.560436 +11.7636 -0.67303 0.635742 +12.4524 -0.791985 0.748105 +13.6369 -0.954562 0.901675 +13.7244 -1.04863 0.990531 +13.6119 -1.12743 1.06496 +15.3845 -1.3732 1.29712 +34.7006 -3.32105 3.13705 +39.6107 -4.04692 3.8227 +40.2529 -4.37326 4.13097 +38.8162 -4.46925 4.22163 +36.5912 -4.45136 4.20474 +34.7637 -4.45609 4.20921 +39.5268 -5.3256 5.03054 +56.0509 -7.92036 7.48153 +61.3433 -9.07273 8.57006 +69.4485 -10.7311 10.1366 +77.0298 -12.4143 11.7265 +85.2574 -14.3089 13.5161 +92.1807 -16.088 15.1967 +94.6038 -17.1471 16.197 +94.4912 -17.7648 16.7805 +95.1437 -18.5329 17.5061 +94.9176 -19.1357 18.0755 +94.6843 -19.7371 18.6436 +95.4026 -20.5435 19.4053 +95.1523 -21.1479 19.9763 +95.6578 -21.9256 20.7109 +95.391 -22.5316 21.2833 +95.1169 -23.136 21.8541 +95.5919 -23.9278 22.6021 +96.1494 -24.7517 23.3803 +96.6004 -25.5596 24.1435 +96.2899 -26.1714 24.7214 +95.9721 -26.7813 25.2975 +96.5773 -27.6555 26.1233 +96.8907 -28.4578 26.8811 +95.9911 -28.9044 27.303 +94.7199 -29.2282 27.6089 +94.4572 -29.857 28.2028 +95.1001 -30.7804 29.075 +95.4549 -31.6236 29.8715 +95.1623 -32.2587 30.4714 +95.4033 -33.0802 31.2474 +94.643 -33.5568 31.6976 +95.579 -34.6424 32.7231 +95.8723 -35.5115 33.544 +94.9102 -35.9169 33.9269 +94.4754 -36.5177 34.4944 +92.2758 -36.4218 34.4039 +90.873 -36.6181 34.5893 +88.9504 -36.5847 34.5577 +87.4686 -36.7114 34.6774 +85.8183 -36.7483 34.7123 +83.831 -36.6174 34.5886 +82.8766 -36.92 34.8744 +80.6494 -36.6353 34.6055 +79.3631 -36.7549 34.7186 +78.1641 -36.9007 34.8562 +76.4673 -36.7932 34.7547 +75.2766 -36.9111 34.8661 +73.9241 -36.9343 34.888 +72.0035 -36.6513 34.6207 +70.0953 -36.3468 34.3331 +69.4946 -36.7047 34.6711 +68.0867 -36.6252 34.596 +67.0854 -36.7496 34.7135 +65.9277 -36.7754 34.7379 +64.7745 -36.7895 34.7512 +63.7043 -36.8369 34.796 +62.5602 -36.8279 34.7875 +61.3442 -36.761 34.7243 +60.1345 -36.6814 34.6491 +59.0075 -36.6367 34.6068 +57.7353 -36.4849 34.4635 +56.4713 -36.32 34.3077 +55.4386 -36.2877 34.2772 +55.0009 -36.638 34.6081 +53.8276 -36.4897 34.4681 +52.7347 -36.3795 34.3639 +51.6486 -36.2581 34.2493 +50.7121 -36.2277 34.2205 +50.2753 -36.548 34.5231 +49.2739 -36.4508 34.4312 +48.765 -36.7097 34.6758 +47.7718 -36.5958 34.5682 +46.7169 -36.4189 34.4012 +45.7375 -36.2852 34.2748 +45.3001 -36.5739 34.5476 +44.3955 -36.4788 34.4577 +43.4311 -36.3201 34.3078 +42.7337 -36.3731 34.3579 +42.1026 -36.4758 34.4549 +41.3451 -36.461 34.4409 +40.4653 -36.3265 34.3138 +40.0277 -36.5818 34.555 +38.9714 -36.2615 34.2524 +38.5346 -36.5073 34.4847 +37.4329 -36.1117 34.111 +36.9385 -36.2894 34.2788 +36.619 -36.64 34.61 +35.9455 -36.6342 34.6045 +35.447 -36.8012 34.7623 +34.4375 -36.4256 34.4075 +33.4957 -36.1003 34.1002 +33.4474 -36.7357 34.7004 +33.0051 -36.9465 34.8995 +32.0231 -36.5414 34.5168 +31.5832 -36.7432 34.7074 +31.1409 -36.9421 34.8954 +30.2327 -36.5774 34.5509 +29.7925 -36.7678 34.7307 +28.9 -36.3888 34.3727 +28.5113 -36.634 34.6044 +27.7311 -36.3684 34.3534 +27.2935 -36.543 34.5183 +26.9007 -36.7789 34.7412 +26.0888 -36.4323 34.4138 +25.6505 -36.5965 34.5689 +25.2548 -36.8228 34.7827 +24.5049 -36.5243 34.5007 +24.3239 -37.072 35.0181 +23.4976 -36.6319 34.6024 +22.6837 -36.1843 34.1795 +22.3298 -36.4596 34.4396 +21.9312 -36.6665 34.6351 +21.1386 -36.202 34.1963 +21.0476 -36.9392 34.8926 +20.2288 -36.3973 34.3807 +19.7911 -36.5242 34.5006 +19.3877 -36.7163 34.682 +18.9112 -36.7698 34.7326 +18.2297 -36.4101 34.3929 +17.7919 -36.5244 34.5008 +17.3528 -36.6359 34.6061 +17.0393 -37.0204 34.9693 +16.5015 -36.9196 34.8741 +15.9374 -36.7456 34.7097 +15.5834 -37.0538 35.0008 +14.8256 -36.3846 34.3687 +14.471 -36.6868 34.6542 +14.03 -36.7773 34.7396 +13.4327 -36.4436 34.4244 +12.9697 -36.457 34.4371 +12.5557 -36.6084 34.5801 +12.0691 -36.5453 34.5205 +11.585 -36.4788 34.4578 +11.125 -36.4799 34.4588 +10.7906 -36.9047 34.86 +10.2475 -36.6155 34.5868 +9.80758 -36.6791 34.6469 +9.40335 -36.883 34.8395 +8.96025 -36.9412 34.8945 +8.49995 -36.9249 34.8791 +7.93123 -36.403 34.3861 +7.49394 -36.4519 34.4323 +7.08391 -36.642 34.6119 +6.64378 -36.6856 34.653 +6.23971 -36.9429 34.8961 +5.7394 -36.6199 34.591 +5.31005 -36.7272 34.6923 +4.87855 -36.8319 34.7912 +4.35779 -36.2096 34.2034 +3.98572 -36.8156 34.7759 +3.48085 -36.1868 34.1819 +3.05243 -36.2801 34.27 +2.6168 -36.2981 34.287 +2.14607 -35.7323 33.7526 +1.74497 -36.3257 34.3131 +1.31147 -36.4081 34.3909 +0.876111 -36.4878 34.4662 +0.438072 -36.4919 34.4701 +6.21725e-15 -36.4206 34.4027 +-0.437199 -36.4192 34.4014 +-0.87262 -36.3424 34.3289 +-1.32979 -36.9168 34.8715 +-1.74148 -36.2531 34.2445 +-2.22023 -36.967 34.9189 +-2.65343 -36.8063 34.767 +-3.10737 -36.9332 34.8869 +-3.52968 -36.6945 34.6614 +-3.96218 -36.5982 34.5705 +-4.47109 -37.1511 35.0927 +-4.83063 -36.47 34.4494 +-5.37276 -37.1609 35.1021 +-5.70544 -36.4032 34.3863 +-6.27627 -37.1593 35.1005 +-6.60463 -36.4694 34.4488 +-7.04216 -36.4261 34.408 +-7.44959 -36.2363 34.2286 +-7.8843 -36.1876 34.1827 +-8.54947 -37.14 35.0823 +-8.99498 -37.0843 35.0297 +-9.33046 -36.597 34.5694 +-9.61677 -35.9655 33.9729 +-10.0481 -35.9032 33.914 +-10.7075 -36.6202 34.5913 +-11.1466 -36.5509 34.5258 +-11.5625 -36.408 34.3908 +-11.9991 -36.3332 34.3202 +-12.4348 -36.2557 34.247 +-12.8695 -36.1755 34.1712 +-13.5104 -36.6542 34.6234 +-13.9231 -36.497 34.4749 +-14.3883 -36.4772 34.4562 +-14.8256 -36.3846 34.3687 +-15.3203 -36.4282 34.4099 +-15.7871 -36.3989 34.3822 +-16.5633 -37.0579 35.0047 +-16.7537 -36.3999 34.3832 +-17.483 -36.9108 34.8658 +-17.9922 -36.9356 34.8892 +-18.4349 -36.82 34.78 +-18.8762 -36.7017 34.6682 +-19.316 -36.5805 34.5538 +-20.011 -36.9301 34.884 +-20.491 -36.8691 34.8264 +-20.9328 -36.7377 34.7023 +-21.4511 -36.7373 34.7019 +-22.1704 -37.0665 35.0129 +-22.6552 -36.9909 34.9415 +-23.1399 -36.9119 34.8668 +-23.5821 -36.7637 34.7269 +-24.453 -37.2688 35.204 +-24.5049 -36.5243 34.5007 +-25.344 -36.953 34.9056 +-25.8775 -36.9203 34.8748 +-26.6429 -37.2061 35.1447 +-27.0416 -36.9715 34.9231 +-27.9138 -37.3735 35.3029 +-28.5553 -37.4493 35.3745 +-29.2007 -37.5198 35.4411 +-29.6 -37.2702 35.2053 +-30.0463 -37.081 35.0265 +-30.9538 -37.4498 35.375 +-31.3499 -37.19 35.1295 +-31.9011 -37.113 35.0568 +-32.7215 -37.3384 35.2697 +-33.1685 -37.1294 35.0723 +-33.9441 -37.2813 35.2158 +-34.8377 -37.5467 35.4664 +-35.0605 -37.0846 35.03 +-35.6191 -36.9799 34.931 +-36.352 -37.0484 34.9958 +-37.4419 -37.4634 35.3877 +-37.8902 -37.2244 35.162 +-38.9976 -37.6213 35.5369 +-39.4477 -37.3724 35.3018 +-39.9564 -37.178 35.1182 +-40.8992 -37.3783 35.3074 +-41.3463 -37.1174 35.0609 +-42.2356 -37.2464 35.1828 +-42.7454 -37.0327 34.9809 +-43.7728 -37.2576 35.1934 +-44.8744 -37.5271 35.4479 +-45.3895 -37.2955 35.2292 +-46.3708 -37.4383 35.364 +-47.2238 -37.4643 35.3886 +-47.6717 -37.1633 35.1043 +-48.8043 -37.3867 35.3153 +-49.8765 -37.5464 35.4661 +-50.3253 -37.2286 35.1659 +-51.4774 -37.4219 35.3486 +-53.2085 -38.0111 35.9051 +-53.6627 -37.6721 35.5849 +-54.6932 -37.7305 35.6401 +-55.8754 -37.8779 35.7793 +-56.328 -37.522 35.4431 +-57.668 -37.7469 35.6556 +-58.793 -37.8132 35.7182 +-59.9239 -37.8681 35.77 +-61.2127 -38.0058 35.9001 +-62.2028 -37.9432 35.8409 +-63.4275 -38.0095 35.9036 +-64.5031 -37.9716 35.8679 +-66.3652 -38.3755 36.2494 +-67.5325 -38.3559 36.2308 +-68.7044 -38.3243 36.201 +-70.6792 -38.7182 36.5731 +-71.3825 -38.3982 36.2707 +-73.7014 -38.9266 36.7699 +-74.8986 -38.8375 36.6858 +-76.345 -38.8612 36.7081 +-77.5503 -38.746 36.5993 +-78.8415 -38.6591 36.5172 +-80.8035 -38.8797 36.7256 +-82.022 -38.7219 36.5766 +-83.7488 -38.7861 36.6371 +-85.3984 -38.7926 36.6433 +-87.5661 -39.009 36.8477 +-89.1454 -38.9388 36.7814 +-91.5912 -39.2203 37.0474 +-93.8772 -39.4011 37.2181 +-95.6521 -39.341 37.1614 +-97.3452 -39.2262 37.0529 +-100.097 -39.509 37.32 +-102.157 -39.4868 37.2991 +-104.933 -39.71 37.5099 +-107.366 -39.7689 37.5655 +-109.45 -39.6701 37.4722 +-112.439 -39.8665 37.6578 +-114.809 -39.809 37.6034 +-118.001 -40.0008 37.7846 +-120.57 -39.9441 37.731 +-123.603 -40.0056 37.7891 +-98.0337 -30.9875 29.2707 +-93.7994 -28.9442 27.3406 +-57.8349 -17.415 16.4501 +-48.5844 -14.2698 13.4791 +-40.6592 -11.643 10.998 +-36.503 -10.1863 9.62192 +-32.5025 -8.83414 8.34469 +-18.8878 -4.99755 4.72066 +-15.0823 -3.88262 3.6675 +-15.5065 -3.88146 3.66641 +-14.9835 -3.64454 3.44262 +-15.2169 -3.59428 3.39514 +-15.9271 -3.65063 3.44837 +-14.2489 -3.16688 2.99142 +-14.2864 -3.07636 2.90592 +-13.0732 -2.72513 2.57414 +-12.5272 -2.52553 2.3856 +-13.1366 -2.55885 2.41708 +-12.9732 -2.43901 2.30388 +-13.7782 -2.49731 2.35895 +-11.5712 -2.01949 1.9076 +-13.8361 -2.32212 2.19347 +-12.399 -1.99825 1.88754 +-13.6941 -2.116 1.99877 +-13.131 -1.94209 1.83449 +-14.0373 -1.98356 1.87366 +-13.3723 -1.80169 1.70187 +-14.6736 -1.8809 1.77669 +-13.5121 -1.64376 1.55269 +-13.5313 -1.55798 1.47166 +-13.055 -1.41835 1.33977 +-13.9628 -1.42654 1.3475 +-13.0871 -1.25251 1.18312 +-12.9031 -1.15172 1.08791 +-12.8171 -1.06159 1.00277 +-13.1277 -1.00304 0.94747 +-11.7457 -0.822175 0.776623 +-11.8547 -0.753965 0.712192 +-10.667 -0.61029 0.576477 +-10.9732 -0.55781 0.526905 +-10.9795 -0.488177 0.46113 +-11.4842 -0.437529 0.413288 +-11.8887 -0.377343 0.356437 +-10.5935 -0.268927 0.254028 +-10.9962 -0.209325 0.197727 +-10.1984 -0.129409 0.12224 +-10.9996 -0.0697821 0.0659159 +11 -1.77636e-15 -1.7053e-13 +10.9996 -0.0691845 0.0665428 +10.5984 -0.133333 0.128242 +10.5964 -0.199986 0.19235 +11.0932 -0.2792 0.26854 +11.0894 -0.348961 0.335636 +11.8837 -0.448871 0.431732 +11.9776 -0.527996 0.507835 +11.9708 -0.603309 0.580273 +11.7636 -0.667267 0.641789 +12.7513 -0.804042 0.773342 +13.1392 -0.911842 0.877026 +14.2217 -1.07732 1.03619 +14.5061 -1.19121 1.14572 +15.3845 -1.36144 1.30946 +36.2869 -3.44313 3.31166 +39.7097 -4.02229 3.86871 +40.3518 -4.34646 4.18051 +38.9149 -4.44225 4.27263 +35.1118 -4.2348 4.07311 +32.9911 -4.19265 4.03257 +41.0017 -5.47701 5.26788 +57.4252 -8.04503 7.73785 +63.2051 -9.26805 8.91417 +67.1009 -10.2796 9.88709 +75.8582 -12.1208 11.658 +84.6728 -14.089 13.5511 +93.153 -16.1185 15.5031 +94.7009 -17.0177 16.3679 +95.5562 -17.8111 17.131 +95.3369 -18.4114 17.7084 +94.9176 -18.9718 18.2474 +94.6843 -19.5681 18.8209 +95.4026 -20.3675 19.5899 +96.013 -21.1565 20.3486 +95.7532 -21.7596 20.9287 +95.4861 -22.3609 21.5071 +96.0652 -23.1665 22.282 +95.6865 -23.7463 22.8396 +96.2437 -24.5638 23.6259 +96.6944 -25.3654 24.3969 +96.2899 -25.9473 24.9566 +95.9721 -26.5519 25.5381 +96.5773 -27.4187 26.3718 +96.8907 -28.2141 27.1368 +95.7139 -28.5742 27.4831 +94.812 -29.0061 27.8986 +94.7323 -29.6876 28.554 +95.1001 -30.5168 29.3515 +95.5459 -31.3827 30.1844 +95.7967 -32.1957 30.9664 +95.4935 -32.828 31.5745 +94.8228 -33.3326 32.0599 +95.579 -34.3457 33.0343 +96.2287 -35.3382 33.9889 +94.378 -35.4097 34.0576 +94.4754 -36.2049 34.8225 +93.2425 -36.4882 35.095 +91.1354 -36.4094 35.0192 +89.4726 -36.4843 35.0912 +87.7284 -36.5051 35.1112 +86.2491 -36.6165 35.2184 +84.0881 -36.4152 35.0247 +82.8766 -36.6038 35.2061 +80.9038 -36.4361 35.0449 +80.3752 -36.9049 35.4958 +78.1641 -36.5847 35.1878 +77.2178 -36.8362 35.4297 +75.2766 -36.595 35.1977 +74.1714 -36.7405 35.3376 +72.7407 -36.7095 35.3078 +70.0953 -36.0356 34.6596 +69.5755 -36.4327 35.0416 +69.0513 -36.8261 35.4199 +67.0854 -36.4348 35.0437 +65.9277 -36.4605 35.0683 +64.7745 -36.4744 35.0817 +63.7043 -36.5215 35.127 +62.5602 -36.5125 35.1184 +61.3442 -36.4462 35.0545 +60.1345 -36.3673 34.9787 +59.0075 -36.3229 34.936 +57.7353 -36.1725 34.7913 +56.5462 -36.0567 34.6799 +55.4386 -35.9769 34.6032 +54.9272 -36.2756 34.8905 +53.9008 -36.2264 34.8432 +53.4601 -36.564 35.1679 +51.6486 -35.9476 34.575 +51.354 -36.3721 34.9833 +50.2753 -36.235 34.8515 +49.2038 -36.0872 34.7093 +48.2093 -35.9806 34.6067 +47.7718 -36.2824 34.897 +46.7851 -36.1598 34.7791 +46.3455 -36.4526 35.0608 +44.631 -35.7251 34.3611 +44.3955 -36.1664 34.7854 +43.4967 -36.0634 34.6864 +43.2532 -36.5001 35.1064 +42.1026 -36.1634 34.7826 +41.2815 -36.0931 34.715 +41.0317 -36.5195 35.125 +40.0899 -36.3249 34.9379 +38.9714 -35.9509 34.5782 +38.4737 -36.1375 34.7576 +38.0347 -36.3781 34.9891 +36.998 -36.0366 34.6606 +36.5015 -36.2096 34.827 +36.0036 -36.3791 34.9901 +35.447 -36.4861 35.0929 +34.4941 -36.1731 34.7919 +34.0548 -36.3886 34.9992 +33.613 -36.6014 35.2039 +32.5694 -36.1465 34.7664 +32.5604 -36.8363 35.4298 +31.2122 -36.0006 34.626 +31.1932 -36.6872 35.2864 +30.2842 -36.3259 34.9389 +29.7925 -36.4529 35.0611 +28.95 -36.1396 34.7597 +28.5606 -36.383 34.9938 +27.7796 -36.12 34.7409 +27.3412 -36.2934 34.9076 +26.9007 -36.464 35.0717 +26.4582 -36.6317 35.233 +25.6505 -36.2831 34.8977 +25.2994 -36.572 35.1756 +24.4173 -36.0819 34.7042 +24.3239 -36.7546 35.3512 +23.4976 -36.3182 34.9315 +23.0569 -36.4646 35.0723 +22.3298 -36.1473 34.7671 +21.9312 -36.3525 34.9645 +21.4902 -36.4891 35.0959 +20.7414 -36.0902 34.7122 +20.2662 -36.1524 34.772 +19.8277 -36.2785 34.8933 +19.3877 -36.4018 35.0119 +18.6661 -35.9823 34.6084 +18.2639 -36.1661 34.7852 +17.8253 -36.2796 34.8943 +17.3853 -36.3903 35.0008 +17.1027 -36.84 35.4333 +16.5324 -36.672 35.2717 +15.9675 -36.4996 35.106 +15.3788 -36.254 34.8697 +14.854 -36.1421 34.7621 +14.471 -36.3726 34.9838 +14.0567 -36.5318 35.1369 +13.4327 -36.1315 34.7519 +12.9697 -36.1447 34.7646 +12.5557 -36.2949 34.909 +12.1158 -36.3725 34.9837 +11.6075 -36.2366 34.853 +11.1034 -36.0972 34.7189 +10.7906 -36.5886 35.1916 +10.4269 -36.9376 35.5272 +9.80758 -36.365 34.9765 +9.4398 -36.7088 35.3071 +8.97761 -36.6958 35.2947 +8.54947 -36.8219 35.416 +8.08766 -36.8031 35.3979 +7.5235 -36.2823 34.897 +7.08391 -36.3282 34.9411 +6.64378 -36.3714 34.9827 +6.21534 -36.4834 35.0904 +5.75072 -36.3779 34.9889 +5.3205 -36.4844 35.0913 +4.87855 -36.5164 35.1221 +4.43623 -36.5457 35.1503 +3.97788 -36.4285 35.0376 +3.5506 -36.5959 35.1986 +3.10127 -36.5449 35.1495 +2.6639 -36.635 35.2362 +2.18097 -36.0023 34.6277 +1.74846 -36.0867 34.7088 +1.31147 -36.0963 34.7181 +0.877856 -36.2473 34.8633 +0.438072 -36.1794 34.798 +1.06581e-14 -36.1087 34.73 +-0.437199 -36.1073 34.7287 +-0.888327 -36.6797 35.2791 +-1.33241 -36.6728 35.2725 +-1.77289 -36.5909 35.1938 +-2.22023 -36.6504 35.251 +-2.65343 -36.4911 35.0977 +-3.10127 -36.5449 35.1495 +-3.53665 -36.4521 35.0603 +-3.96218 -36.2848 34.8993 +-4.39265 -36.1867 34.805 +-4.92647 -36.8751 35.4671 +-5.26823 -36.1259 34.7465 +-5.81865 -36.8075 35.4021 +-6.1544 -36.1257 34.7463 +-6.61768 -36.2286 34.8453 +-7.16741 -36.7565 35.353 +-7.62697 -36.7813 35.3769 +-7.89994 -35.9489 34.5763 +-8.51646 -36.6797 35.2792 +-8.99498 -36.7667 35.3629 +-9.33046 -36.2836 34.8982 +-9.80758 -36.365 34.9765 +-10.2475 -36.3019 34.9158 +-10.4787 -35.5311 34.1744 +-10.9086 -35.4639 34.1098 +-11.585 -36.1664 34.7855 +-11.9991 -36.0221 34.6467 +-12.4106 -35.8753 34.5055 +-13.0698 -36.4239 35.0331 +-13.5104 -36.3403 34.9527 +-13.9498 -36.2539 34.8697 +-14.4158 -36.2341 34.8506 +-14.8824 -36.2112 34.8286 +-15.3203 -36.1162 34.7372 +-16.3283 -37.3244 35.8993 +-16.5633 -36.7405 35.3376 +-17.071 -36.7716 35.3676 +-17.5156 -36.6629 35.263 +-17.9922 -36.6193 35.2211 +-18.4349 -36.5047 35.1108 +-18.8412 -36.3199 34.9331 +-19.316 -36.2673 34.8825 +-20.0476 -36.6808 35.2803 +-20.5284 -36.6202 35.222 +-21.2772 -37.0224 35.6088 +-21.7247 -36.8872 35.4787 +-22.1704 -36.7491 35.3459 +-22.6146 -36.6082 35.2104 +-23.1399 -36.5958 35.1985 +-23.6244 -36.5142 35.12 +-24.41 -36.8846 35.4763 +-24.8995 -36.7945 35.3896 +-25.2994 -36.572 35.1756 +-25.7867 -36.4757 35.083 +-26.6429 -36.8875 35.479 +-27.4641 -37.2276 35.8061 +-27.8184 -36.9267 35.5168 +-28.6038 -37.1917 35.7716 +-29.1022 -37.073 35.6575 +-29.65 -37.0134 35.6002 +-30.4523 -37.2602 35.8375 +-30.9538 -37.1291 35.7114 +-31.3499 -36.8715 35.4637 +-31.9011 -36.7952 35.3903 +-32.829 -37.1402 35.7221 +-33.2774 -36.9324 35.5222 +-33.9441 -36.9621 35.5507 +-34.7818 -37.1654 35.7463 +-35.7402 -37.4798 36.0487 +-35.6765 -36.7223 35.3201 +-36.5262 -36.9072 35.498 +-37.4419 -37.1425 35.7243 +-37.8902 -36.9056 35.4965 +-38.9374 -37.2415 35.8195 +-39.4477 -37.0524 35.6376 +-40.018 -36.9164 35.5069 +-40.9615 -37.1146 35.6974 +-41.3463 -36.7995 35.3944 +-42.2992 -36.983 35.5708 +-43.3239 -37.2124 35.7916 +-44.4222 -37.4866 36.0553 +-44.284 -36.7162 35.3143 +-45.9196 -37.4079 35.9796 +-46.3038 -37.0641 35.6489 +-47.2913 -37.1966 35.7763 +-47.6717 -36.845 35.4382 +-48.8043 -37.0666 35.6513 +-49.8765 -37.2248 35.8035 +-50.3954 -36.9611 35.5498 +-51.4774 -37.1014 35.6848 +-52.5666 -37.2309 35.8093 +-53.6627 -37.3494 35.9233 +-54.6932 -37.4074 35.9791 +-55.8754 -37.5536 36.1197 +-57.2127 -37.785 36.3423 +-57.668 -37.4237 35.9947 +-58.793 -37.4894 36.058 +-60.6787 -38.0166 36.565 +-61.745 -38.008 36.5567 +-62.0496 -37.5255 36.0927 +-64.0448 -38.0507 36.5978 +-65.2803 -38.1 36.6453 +-66.3652 -38.0469 36.5942 +-67.5325 -38.0274 36.5755 +-68.7044 -37.9961 36.5453 +-70.5994 -38.3433 36.8792 +-72.106 -38.4551 36.9868 +-73.4587 -38.4661 36.9974 +-74.8986 -38.5049 37.0347 +-77.0822 -38.9005 37.4151 +-77.5503 -38.4142 36.9474 +-79.0902 -38.4489 36.9808 +-81.0537 -38.6661 37.1897 +-82.5252 -38.6259 37.151 +-84.6765 -38.8799 37.3953 +-85.3984 -38.4604 36.9919 +-87.8219 -38.788 37.3069 +-89.1454 -38.6053 37.1313 +-92.1943 -39.1405 37.646 +-93.3575 -38.8475 37.3642 +-95.6521 -39.0041 37.5148 +-98.3947 -39.3096 37.8086 +-100.361 -39.2738 37.7742 +-102.157 -39.1487 37.6539 +-105.732 -39.6694 38.1547 +-106.564 -39.1338 37.6396 +-110.345 -39.652 38.138 +-112.439 -39.5251 38.0159 +-115.08 -39.5612 38.0506 +-118.001 -39.6582 38.144 +-121.662 -39.9607 38.4349 +-124.151 -39.8389 38.3177 +-97.3001 -30.4923 29.328 +-95.3643 -29.175 28.0611 +-59.0359 -17.6244 16.9515 +-47.2864 -13.7695 13.2438 +-42.334 -12.0188 11.5599 +-36.5964 -10.1249 9.73826 +-34.1885 -9.21284 8.86107 +-21.8009 -5.71892 5.50056 +-15.6478 -3.99372 3.84123 +-15.7902 -3.91862 3.76899 +-15.268 -3.68193 3.54135 +-15.5973 -3.65259 3.51312 +-14.5919 -3.31595 3.18934 +-14.9184 -3.28726 3.16175 +-14.6699 -3.13189 3.01231 +-14.5151 -2.99978 2.88524 +-3157.14 -631.04 606.945 +-3164.66 -611.159 587.823 +-11.2305 -2.0933 2.01338 +-12.0317 -2.16208 2.07952 +-13.3215 -2.30505 2.21703 +-12.0822 -2.0104 1.93364 +-13.18 -2.10593 2.02552 +-13.5963 -2.0829 2.00337 +-14.5029 -2.12663 2.04543 +-13.1538 -1.8428 1.77244 +-13.7656 -1.83881 1.76859 +-12.9995 -1.65203 1.58896 +-13.3149 -1.60589 1.54458 +-13.5313 -1.54464 1.48566 +-13.055 -1.40621 1.35251 +-13.9628 -1.41432 1.36032 +-13.9794 -1.32645 1.2758 +-13.7964 -1.22091 1.17429 +-12.519 -1.02802 0.988771 +-12.7299 -0.964311 0.927491 +-12.542 -0.8704 0.837166 +-12.7513 -0.804042 0.773342 +-11.5642 -0.655958 0.630911 +-11.472 -0.578171 0.556095 +-11.2789 -0.497196 0.478212 +-11.0848 -0.418694 0.402708 +-10.9895 -0.345817 0.332613 +-11.493 -0.289262 0.278217 +-10.5964 -0.199986 0.19235 +-10.9983 -0.138363 0.13308 +-10.4996 -0.0660397 0.0635181 +11 -1.77636e-15 -1.7053e-13 +10.1996 -0.0635935 0.0622797 +10.1984 -0.127183 0.124555 +10.5964 -0.198242 0.194147 +11.0932 -0.276766 0.271048 +10.1903 -0.317871 0.311304 +11.4842 -0.43 0.421116 +11.9776 -0.523392 0.512579 +12.4696 -0.622967 0.610097 +12.3618 -0.695082 0.680722 +11.8547 -0.74099 0.725682 +13.9355 -0.958675 0.93887 +13.426 -1.00818 0.987351 +14.6055 -1.18891 1.16434 +14.5904 -1.27992 1.25348 +35.7912 -3.36648 3.29693 +38.7195 -3.88779 3.80747 +40.4507 -4.31913 4.2299 +39.6063 -4.48175 4.38916 +36.5912 -4.37476 4.28438 +34.9607 -4.40422 4.31324 +42.6733 -5.65059 5.53385 +60.1737 -8.35662 8.18397 +66.7329 -9.70006 9.49967 +73.2633 -11.1258 10.896 +81.3255 -12.8811 12.615 +87.0112 -14.3519 14.0554 +93.0558 -15.9613 15.6315 +94.7009 -16.8693 16.5208 +94.4912 -17.459 17.0984 +95.1437 -18.2139 17.8376 +94.9176 -18.8064 18.4179 +95.6455 -19.5944 19.1896 +95.3067 -20.1697 19.753 +95.1523 -20.784 20.3546 +95.6578 -21.5483 21.1032 +95.391 -22.1439 21.6864 +95.9704 -22.9418 22.4678 +95.6865 -23.5393 23.053 +95.3011 -24.1111 23.613 +95.7547 -24.8999 24.3855 +96.1962 -25.6961 25.1652 +96.999 -26.6021 26.0525 +96.5773 -27.1796 26.6181 +96.8907 -27.9681 27.3903 +96.1759 -28.4617 27.8737 +94.2597 -28.5857 27.9952 +94.9157 -29.4856 28.8765 +95.1001 -30.2507 29.6257 +95.4549 -31.0794 30.4373 +94.9811 -31.6432 30.9895 +95.5838 -32.5725 31.8996 +95.7216 -33.3551 32.666 +95.4 -33.9825 33.2805 +95.8723 -34.9004 34.1794 +94.9989 -35.3318 34.6019 +93.9456 -35.688 34.9507 +93.2425 -36.17 35.4228 +91.1354 -36.0919 35.3463 +89.2115 -36.0606 35.3156 +87.2088 -35.9725 35.2293 +86.5076 -36.4061 35.6539 +84.6024 -36.3185 35.5682 +83.1324 -36.3966 35.6446 +80.9038 -36.1184 35.3723 +79.7005 -36.276 35.5265 +78.4157 -36.3823 35.6307 +76.9677 -36.3967 35.6448 +75.5253 -36.3958 35.6439 +74.8307 -36.7439 35.9848 +72.7407 -36.3894 35.6376 +71.3165 -36.3437 35.5929 +69.4946 -36.0731 35.3278 +68.3278 -36.1224 35.3762 +67.0854 -36.1171 35.371 +65.9277 -36.1426 35.3959 +64.7745 -36.1564 35.4094 +64.3304 -36.5588 35.8035 +63.182 -36.5538 35.7986 +62.0386 -36.5374 35.7825 +60.0579 -36.0043 35.2604 +59.0835 -36.0526 35.3077 +57.6598 -35.8102 35.0704 +57.2202 -36.1684 35.4212 +56.1074 -36.0935 35.3478 +55.0009 -36.0075 35.2636 +54.4859 -36.3003 35.5504 +53.4601 -36.2452 35.4964 +51.7205 -35.6838 34.9466 +51.8533 -36.4055 35.6534 +50.2753 -35.9191 35.177 +49.8346 -36.2312 35.4827 +48.765 -36.078 35.3326 +47.703 -35.9142 35.1722 +47.2625 -36.2102 35.4622 +46.9535 -36.6089 35.8526 +45.3671 -35.9976 35.2539 +45.0582 -36.3861 35.6344 +44.0216 -36.1804 35.4329 +43.2532 -36.1818 35.4343 +42.1669 -35.9028 35.1611 +41.2815 -35.7784 35.0393 +41.0317 -36.201 35.4531 +40.6502 -36.5114 35.7571 +38.9714 -35.6375 34.9012 +38.4737 -35.8224 35.0823 +37.4931 -35.5474 34.813 +37.5333 -36.2392 35.4906 +36.5015 -35.8939 35.1523 +36.0036 -36.0619 35.3169 +35.447 -36.1679 35.4207 +34.9473 -36.3287 35.5782 +34.5022 -36.5452 35.7902 +33.5578 -36.2227 35.4744 +33.0051 -36.3107 35.5605 +32.5604 -36.5151 35.7607 +31.5832 -36.1109 35.3648 +31.1409 -36.3064 35.5563 +30.6963 -36.4992 35.7451 +29.8433 -36.1967 35.4489 +29.35 -36.3195 35.5691 +29.0037 -36.6255 35.8688 +27.7311 -35.7426 35.0041 +27.3889 -36.0397 35.2951 +26.5251 -35.6413 34.905 +26.0888 -35.8054 35.0656 +25.7413 -36.094 35.3483 +25.2548 -36.1892 35.4415 +24.8118 -36.3452 35.5943 +24.3669 -36.4985 35.7445 +23.4976 -36.0015 35.2578 +23.0569 -36.1467 35.3999 +22.6552 -36.3543 35.6033 +21.8913 -35.97 35.2269 +21.4902 -36.1709 35.4237 +21.0859 -36.3696 35.6182 +20.2662 -35.8372 35.0968 +19.7911 -35.8957 35.1541 +19.3877 -36.0844 35.3389 +18.9112 -36.137 35.3904 +18.5033 -36.3207 35.5703 +17.7919 -35.8959 35.1543 +17.4179 -36.1405 35.3939 +17.1027 -36.5187 35.7643 +16.4397 -36.1484 35.4016 +15.9374 -36.1132 35.3671 +15.5542 -36.3478 35.5969 +15.0812 -36.3749 35.6234 +14.4434 -35.9868 35.2434 +14.03 -36.1444 35.3977 +13.6139 -36.2995 35.5496 +13.17 -36.383 35.6313 +12.5557 -35.9784 35.2351 +12.2792 -36.5417 35.7867 +11.8099 -36.5472 35.7921 +11.3198 -36.4799 35.7263 +10.7698 -36.1997 35.4518 +10.2674 -36.0554 35.3105 +9.82666 -36.1181 35.3719 +9.42158 -36.3185 35.5682 +8.99498 -36.4461 35.6932 +8.36791 -35.7258 34.9877 +8.10331 -36.5528 35.7977 +7.67131 -36.6726 35.9149 +7.09783 -36.0823 35.3368 +6.63073 -35.9835 35.2401 +6.19096 -36.0234 35.2792 +5.76204 -36.1316 35.3852 +5.3205 -36.1662 35.4191 +4.87855 -36.198 35.4502 +4.42751 -36.1559 35.4089 +3.97788 -36.1109 35.3648 +3.53665 -36.1343 35.3878 +3.10737 -36.2976 35.5477 +2.6168 -35.6735 34.9365 +2.18533 -35.7598 35.021 +1.77289 -36.2719 35.5225 +1.33241 -36.353 35.602 +0.874366 -35.7884 35.0491 +0.437199 -35.7925 35.0531 +1.77636e-15 -36.4369 35.6841 +-0.437199 -35.7925 35.0531 +-0.86913 -35.5741 34.8392 +-1.32717 -36.2101 35.462 +-1.77289 -36.2719 35.5225 +-2.21586 -36.2594 35.5103 +-2.65867 -36.2442 35.4955 +-3.09516 -36.1549 35.408 +-3.53665 -36.1343 35.3878 +-4.04064 -36.6806 35.9228 +-4.47109 -36.5117 35.7574 +-4.92647 -36.5536 35.7984 +-5.36231 -36.4504 35.6974 +-5.81865 -36.4866 35.7328 +-6.27627 -36.5198 35.7653 +-6.61768 -35.9127 35.1707 +-7.16741 -36.436 35.6833 +-7.61218 -36.3899 35.6381 +-8.05637 -36.3411 35.5903 +-8.56597 -36.5713 35.8158 +-9.02971 -36.5869 35.831 +-9.36691 -36.1077 35.3618 +-9.80758 -36.0479 35.3032 +-10.2674 -36.0554 35.3105 +-10.6867 -35.9202 35.1781 +-11.1466 -35.9219 35.1798 +-11.5625 -35.7814 35.0422 +-12.1858 -36.2637 35.5146 +-12.6283 -36.1864 35.4388 +-12.8695 -35.5529 34.8184 +-13.5104 -36.0234 35.2792 +-13.9498 -35.9378 35.1954 +-14.4158 -35.9182 35.1761 +-15.138 -36.5119 35.7576 +-15.3203 -35.8013 35.0617 +-16.0878 -36.4539 35.7008 +-16.5942 -36.4881 35.7343 +-17.0393 -36.3833 35.6316 +-17.483 -36.2756 35.5262 +-17.9254 -36.1652 35.4181 +-18.7427 -36.7907 36.0306 +-19.1563 -36.6055 35.8492 +-19.6027 -36.4846 35.7308 +-20.0476 -36.361 35.6098 +-20.7907 -36.7646 36.005 +-21.2772 -36.6996 35.9414 +-21.7247 -36.5655 35.8101 +-22.5293 -37.0184 36.2536 +-23.0213 -36.9418 36.1786 +-23.0984 -36.2117 35.4636 +-23.9625 -36.7139 35.9554 +-24.41 -36.563 35.8077 +-24.9433 -36.5379 35.783 +-25.7456 -36.8925 36.1303 +-26.1045 -36.6033 35.8471 +-26.6429 -36.5658 35.8104 +-27.0885 -36.3984 35.6464 +-27.9138 -36.7304 35.9715 +-28.6522 -36.9298 36.1669 +-29.2007 -36.8742 36.1124 +-29.55 -36.567 35.8115 +-30.8076 -37.3663 36.5943 +-30.9023 -36.7441 35.985 +-31.8202 -37.0983 36.3319 +-32.2721 -36.8985 36.1362 +-33.2051 -37.2382 36.4689 +-33.7132 -37.0897 36.3234 +-34.3305 -37.0568 36.2912 +-35.2292 -37.3152 36.5443 +-35.4004 -36.7997 36.0395 +-36.1927 -36.9288 36.1658 +-36.9908 -37.0507 36.2853 +-37.3831 -36.7609 36.0014 +-38.5445 -37.2155 36.4467 +-38.8773 -36.8597 36.0982 +-39.9956 -37.2394 36.4701 +-40.449 -36.9886 36.2245 +-41.3972 -37.1823 36.4142 +-41.8498 -36.9228 36.16 +-42.8717 -37.1567 36.389 +-43.4524 -36.9974 36.2331 +-44.4222 -37.1597 36.392 +-44.8088 -36.8274 36.0666 +-45.9196 -37.0817 36.3156 +-46.8391 -37.1657 36.3979 +-47.8318 -37.2936 36.5232 +-48.2855 -36.994 36.2297 +-49.4239 -37.2098 36.4411 +-50.4322 -37.3114 36.5406 +-50.9561 -37.0465 36.2811 +-52.1845 -37.2831 36.5129 +-52.5666 -36.9063 36.1438 +-53.6627 -37.0238 36.2589 +-55.4186 -37.573 36.7968 +-55.8754 -37.2261 36.457 +-57.139 -37.4072 36.6344 +-58.3369 -37.5277 36.7524 +-58.793 -37.1625 36.3948 +-59.9994 -37.2633 36.4934 +-61.9731 -37.8157 37.0345 +-63.0455 -37.7953 37.0145 +-63.9677 -37.6735 36.8952 +-65.2025 -37.7229 36.9435 +-66.4434 -37.7597 36.9796 +-68.2417 -38.0917 37.3048 +-69.4184 -38.0562 37.27 +-70.5994 -38.0089 37.2237 +-72.106 -38.1198 37.3323 +-73.4587 -38.1307 37.343 +-75.1429 -38.2936 37.5025 +-76.5907 -38.3154 37.5239 +-78.6216 -38.6054 37.8078 +-79.8363 -38.4733 37.6784 +-81.3039 -38.4472 37.653 +-82.7768 -38.4058 37.6124 +-84.1705 -38.3105 37.519 +-86.1617 -38.4658 37.6711 +-88.3335 -38.6737 37.8748 +-89.3168 -38.3423 37.5502 +-92.3666 -38.8718 38.0687 +-93.8772 -38.7231 37.9231 +-96.8706 -39.1566 38.3476 +-98.832 -39.14 38.3314 +-100.888 -39.1359 38.3274 +-102.422 -38.9079 38.1041 +-105.288 -39.1586 38.3496 +-108.168 -39.3764 38.5629 +-110.345 -39.3062 38.4942 +-112.978 -39.3685 38.5551 +-115.08 -39.2162 38.406 +-118.092 -39.3427 38.5299 +-121.935 -39.7011 38.8809 +-124.425 -39.5786 38.761 +-97.7586 -30.3688 29.7414 +-97.2053 -29.479 28.87 +-66.7041 -19.74 19.3322 +-49.3262 -14.2383 13.9442 +-42.9853 -12.0973 11.8474 +-37.81 -10.3694 10.1552 +-35.2189 -9.40771 9.21336 +-29.3184 -7.62388 7.46637 +-16.0249 -4.05429 3.97054 +-15.412 -3.79141 3.71308 +-15.5525 -3.71785 3.64104 +-15.2169 -3.53243 3.45945 +-15.9271 -3.58781 3.51369 +-15.5878 -3.40482 3.33448 +-14.6699 -3.10458 3.04045 +-13.6499 -2.79639 2.73861 +-12.5272 -2.48206 2.43079 +-3164.66 -605.83 593.314 +-13.8445 -2.55803 2.50518 +-13.196 -2.35063 2.30207 +-12.4463 -2.13484 2.09074 +-12.2771 -2.02502 1.98318 +-13.7658 -2.18035 2.13531 +-12.8137 -1.9459 1.9057 +-13.327 -1.93715 1.89713 +-13.7428 -1.90853 1.8691 +-13.7656 -1.82277 1.78511 +-13.5903 -1.71206 1.67669 +-14.1039 -1.68623 1.65139 +-13.5313 -1.53117 1.49954 +-14.5385 -1.55235 1.52028 +-13.9628 -1.40199 1.37303 +-13.5828 -1.27758 1.25119 +-13.4986 -1.18414 1.15968 +-13.4132 -1.09185 1.06929 +-12.7299 -0.955903 0.936155 +-12.542 -0.862811 0.844986 +-11.0578 -0.691178 0.676899 +-11.2652 -0.633421 0.620335 +-10.9732 -0.548211 0.536886 +-11.2789 -0.492861 0.482679 +-10.7852 -0.403826 0.395483 +-10.5899 -0.330337 0.323512 +-10.5935 -0.264299 0.258839 +-10.9962 -0.205723 0.201472 +-12.1981 -0.15212 0.148977 +-10.9996 -0.0685812 0.0671644 +10.6 1.77636e-15 -1.7053e-13 +10.1996 -0.063029 0.062851 +11.0983 -0.137176 0.136788 +11.0962 -0.20575 0.205169 +11.0932 -0.274309 0.273534 +11.4891 -0.355202 0.354199 +11.9836 -0.444712 0.443457 +11.6782 -0.505777 0.504349 +12.0705 -0.597679 0.595991 +12.6609 -0.705579 0.703586 +13.349 -0.82699 0.824655 +13.6369 -0.929807 0.927181 +14.3211 -1.06585 1.06284 +13.8106 -1.11422 1.11107 +16.377 -1.42389 1.41987 +35.2954 -3.29038 3.28109 +38.0263 -3.78429 3.77361 +39.5606 -4.18659 4.17477 +39.0137 -4.3755 4.36314 +38.5638 -4.56966 4.55676 +37.1273 -4.63564 4.62255 +45.3281 -5.94884 5.93204 +67.7323 -9.32278 9.29646 +73.8863 -10.6445 10.6144 +79.5234 -11.9693 11.9355 +78.3966 -12.3069 12.2722 +89.7395 -14.6705 14.6291 +93.9309 -15.9684 15.9233 +94.7009 -16.7195 16.6723 +94.4912 -17.3041 17.2552 +95.1437 -18.0522 18.0013 +94.9176 -18.6395 18.5868 +94.6843 -19.2253 19.171 +95.4026 -20.0107 19.9542 +95.1523 -20.5995 20.5413 +95.6578 -21.357 21.2967 +96.2469 -22.1442 22.0817 +95.9704 -22.7381 22.6739 +96.4429 -23.5148 23.4484 +96.1494 -24.1098 24.0417 +96.5064 -24.8726 24.8023 +96.1962 -25.4679 25.396 +95.8787 -26.0614 25.9878 +96.5773 -26.9383 26.8623 +96.149 -27.5076 27.4299 +96.6378 -28.3446 28.2645 +94.6279 -28.4426 28.3623 +95.0991 -29.2804 29.1977 +95.1001 -29.9821 29.8975 +95.6369 -30.8623 30.7752 +94.7998 -31.3025 31.2141 +95.313 -32.1919 32.101 +94.8228 -32.7486 32.6562 +95.221 -33.6176 33.5227 +95.605 -34.4941 34.3967 +95.3537 -35.149 35.0497 +94.1222 -35.4376 35.3376 +93.6819 -36.0179 35.9162 +91.8351 -36.0461 35.9443 +90.6911 -36.3333 36.2307 +88.5078 -36.1842 36.082 +87.0245 -36.2985 36.196 +84.6024 -35.9961 35.8944 +84.1556 -36.5174 36.4143 +81.667 -36.1355 36.0335 +80.8812 -36.4866 36.3835 +78.9189 -36.2908 36.1883 +77.7182 -36.4253 36.3225 +76.0227 -36.3102 36.2077 +74.5834 -36.2974 36.1949 +72.7407 -36.0664 35.9645 +71.5608 -36.1444 36.0424 +70.2227 -36.1274 36.0254 +68.6494 -35.9703 35.8687 +67.7243 -36.1374 36.0354 +66.721 -36.2527 36.1504 +64.7745 -35.8354 35.7342 +64.3304 -36.2343 36.132 +63.182 -36.2293 36.127 +62.0386 -36.213 36.1108 +60.8239 -36.1398 36.0378 +59.6919 -36.1004 35.9985 +58.5655 -36.0498 35.948 +57.2202 -35.8473 35.7461 +56.1074 -35.7731 35.6721 +55.5907 -36.0706 35.9687 +54.559 -36.0264 35.9246 +53.4601 -35.9234 35.822 +52.3679 -35.8097 35.7086 +51.2827 -35.6853 35.5845 +50.346 -35.6503 35.5496 +49.9047 -35.96 35.8585 +48.765 -35.7577 35.6567 +48.3225 -36.0577 35.9559 +47.3307 -35.9405 35.8391 +46.886 -36.2316 36.1293 +45.9024 -36.099 35.9971 +44.9919 -36.0101 35.9084 +43.6935 -35.592 35.4915 +43.513 -36.076 35.9741 +42.6811 -36.0181 35.9164 +41.7903 -35.8979 35.7966 +40.4653 -35.3844 35.2845 +40.1522 -35.7439 35.643 +40.1411 -36.3813 36.2785 +39.1434 -36.1223 36.0203 +38.0347 -35.7408 35.6399 +37.5928 -35.9745 35.8729 +37.0305 -36.0908 35.9889 +36.6424 -36.3759 36.2732 +35.447 -35.8469 35.7456 +35.0039 -36.0645 35.9627 +34.5581 -36.2794 36.177 +33.5578 -35.9012 35.7998 +32.9507 -35.929 35.8276 +32.6141 -36.2507 36.1483 +32.0601 -36.3307 36.2281 +31.6634 -36.5878 36.4845 +30.6448 -36.1145 36.0125 +30.3 -36.4245 36.3216 +29.4 -36.0584 35.9566 +29.0037 -36.3003 36.1978 +28.1674 -35.9827 35.8811 +27.3889 -35.7198 35.6189 +26.9477 -35.8876 35.7863 +26.5044 -36.0528 35.951 +26.0137 -36.1521 36.0501 +25.6118 -36.3748 36.2721 +24.8118 -36.0225 35.9208 +24.3239 -36.1106 36.0087 +23.8357 -36.1954 36.0932 +23.4716 -36.4701 36.3672 +22.6959 -36.0963 35.9943 +22.2901 -36.3001 36.1976 +21.4121 -35.7195 35.6186 +21.0476 -35.9813 35.8797 +20.6408 -36.1756 36.0734 +19.8277 -35.6429 35.5423 +19.4235 -35.8302 35.7291 +18.9462 -35.8826 35.7812 +18.4691 -35.9317 35.8302 +18.1257 -36.2447 36.1423 +17.4505 -35.8867 35.7853 +17.3883 -36.7989 36.695 +16.9341 -36.905 36.8008 +16.2381 -36.4679 36.365 +15.5542 -36.0252 35.9234 +15.138 -36.1878 36.0856 +14.471 -35.7354 35.6345 +14.03 -35.8235 35.7223 +13.6139 -35.9772 35.8756 +13.17 -36.06 35.9582 +12.5557 -35.659 35.5583 +12.2559 -36.1484 36.0463 +11.7874 -36.1538 36.0517 +11.2981 -36.087 35.9851 +10.749 -35.809 35.7079 +10.4269 -36.2905 36.188 +9.99839 -36.423 36.3202 +9.42158 -35.9961 35.8944 +8.97761 -36.0529 35.9511 +8.56597 -36.2467 36.1443 +7.97816 -35.6688 35.5681 +7.62697 -36.1369 36.0349 +7.22308 -36.393 36.2903 +6.77431 -36.4363 36.3334 +6.19096 -35.7036 35.6028 +5.87525 -36.5145 36.4114 +5.33095 -35.9155 35.8141 +4.87855 -35.8767 35.7754 +4.4188 -35.7644 35.6634 +4.04064 -36.355 36.2524 +3.54363 -35.8842 35.7829 +3.10737 -35.9754 35.8738 +2.61156 -35.286 35.1864 +2.18533 -35.4423 35.3422 +1.77638 -36.0206 35.9189 +1.33241 -36.0303 35.9285 +0.876111 -35.5415 35.4412 +0.447671 -36.3244 36.2218 +1.06581e-14 -36.1134 36.0114 +-0.445053 -36.112 36.0101 +-0.886582 -35.9663 35.8648 +-1.32717 -35.8886 35.7873 +-1.7694 -35.8791 35.7778 +-2.22023 -36.0083 35.9066 +-2.6639 -35.9932 35.8915 +-3.09516 -35.834 35.7328 +-3.52968 -35.7428 35.6419 +-4.04064 -36.355 36.2524 +-4.47981 -36.2581 36.1558 +-4.92647 -36.2291 36.1268 +-5.37276 -36.1972 36.095 +-5.81865 -36.1627 36.0606 +-6.27627 -36.1956 36.0934 +-6.7482 -36.2959 36.1934 +-7.16741 -36.1125 36.0106 +-7.62697 -36.1369 36.0349 +-8.05637 -36.0184 35.9167 +-8.56597 -36.2467 36.1443 +-8.92552 -35.8437 35.7425 +-9.36691 -35.7872 35.6861 +-9.82666 -35.7974 35.6964 +-10.2475 -35.6659 35.5652 +-10.6867 -35.6013 35.5008 +-11.1034 -35.4648 35.3646 +-11.5625 -35.4638 35.3636 +-12.1858 -35.9418 35.8403 +-12.6525 -35.9339 35.8324 +-13.0698 -35.7858 35.6847 +-13.5104 -35.7036 35.6028 +-14.2171 -36.3011 36.1986 +-14.4158 -35.5993 35.4988 +-15.1096 -36.1199 36.0179 +-15.5542 -36.0252 35.9234 +-16.1178 -36.1978 36.0956 +-16.5942 -36.1642 36.0621 +-17.3248 -36.6647 36.5611 +-17.483 -35.9536 35.8521 +-18.2592 -36.5117 36.4086 +-18.4691 -35.9317 35.8302 +-19.1563 -36.2805 36.1781 +-19.5669 -36.0946 35.9927 +-20.3775 -36.6312 36.5277 +-20.5284 -35.9786 35.8771 +-21.2389 -36.3083 36.2058 +-21.6856 -36.1757 36.0736 +-22.5293 -36.6897 36.5861 +-22.9399 -36.4844 36.3814 +-23.4716 -36.4701 36.3672 +-24.0892 -36.5804 36.4771 +-24.8405 -36.8776 36.7735 +-25.294 -36.7226 36.619 +-25.7456 -36.565 36.4617 +-26.1953 -36.4045 36.3017 +-27.0123 -36.7437 36.6399 +-27.4641 -36.5754 36.4721 +-28.3432 -36.9643 36.86 +-28.7977 -36.7878 36.6839 +-29.5454 -36.9782 36.8738 +-30 -36.7942 36.6903 +-30.5031 -36.6685 36.5649 +-31.2628 -36.8428 36.7388 +-31.7679 -36.7086 36.6049 +-32.643 -36.9913 36.8869 +-33.2051 -36.9076 36.8034 +-33.6587 -36.701 36.5974 +-34.8272 -37.2592 37.154 +-35.5647 -37.3361 37.2307 +-35.8535 -36.9399 36.8356 +-36.5942 -37.007 36.9025 +-37.0488 -36.7794 36.6756 +-38.0297 -37.0647 36.96 +-38.5445 -36.8852 36.781 +-39.4189 -37.0414 36.9368 +-39.9347 -36.8527 36.7486 +-40.3874 -36.6045 36.5011 +-41.4595 -36.9077 36.8035 +-41.8498 -36.595 36.4917 +-42.9353 -36.8815 36.7773 +-44.031 -37.1571 37.0522 +-45.0067 -37.3144 37.2091 +-45.5305 -37.0883 36.9836 +-46.3834 -37.1238 37.019 +-46.8391 -36.8357 36.7317 +-47.8318 -36.9626 36.8582 +-48.3537 -36.7174 36.6137 +-49.355 -36.8281 36.7241 +-49.8765 -36.5727 36.4694 +-51.657 -37.2227 37.1176 +-52.0431 -36.852 36.748 +-53.1372 -36.9757 36.8713 +-54.2382 -37.0886 36.9839 +-55.3461 -37.1908 37.0858 +-55.8754 -36.8956 36.7915 +-57.139 -37.0751 36.9705 +-57.668 -36.768 36.6642 +-59.4671 -37.2549 37.1497 +-60.0749 -36.9789 36.8745 +-62.0491 -37.5261 37.4201 +-62.9689 -37.4143 37.3086 +-64.7393 -37.7895 37.6828 +-65.902 -37.7891 37.6824 +-66.9913 -37.733 37.6265 +-68.2417 -37.7536 37.647 +-70.2118 -38.1495 38.0418 +-71.1584 -37.9698 37.8626 +-72.9902 -38.2447 38.1367 +-74.4296 -38.2917 38.1836 +-75.8756 -38.3237 38.2155 +-76.6726 -38.0159 37.9086 +-79.3634 -38.6236 38.5145 +-79.5876 -38.0129 37.9056 +-81.554 -38.2231 38.1152 +-83.28 -38.2963 38.1881 +-84.9295 -38.3128 38.2047 +-86.5857 -38.3119 38.2037 +-88.6746 -38.4784 38.3698 +-89.9168 -38.2572 38.1492 +-93.4006 -38.958 38.848 +-94.3968 -38.5918 38.4828 +-97.6539 -39.1228 39.0123 +-99.0944 -38.8955 38.7856 +-101.943 -39.1939 39.0833 +-103.658 -39.028 38.9178 +-106.086 -39.1052 38.9948 +-108.168 -39.0268 38.9166 +-110.793 -39.1153 39.0048 +-114.057 -39.3914 39.2802 +-116.975 -39.5082 39.3966 +-119.814 -39.5619 39.4502 +-123.118 -39.7304 39.6182 +-124.151 -39.1409 39.0304 +-97.6669 -30.071 29.9861 +-98.402 -29.577 29.4935 +-76.7744 -22.5185 22.4549 +-52.9422 -15.1464 15.1036 +-45.9626 -12.8204 12.7842 +-39.7705 -10.8103 10.7798 +-36.7175 -9.72095 9.6935 +-33.2651 -8.57339 8.54918 +-16.0249 -4.0183 4.00696 +-15.6956 -3.82691 3.8161 +-15.4577 -3.66237 3.65203 +-15.5973 -3.58859 3.57846 +-15.4502 -3.44949 3.43975 +-16.0659 -3.4781 3.46828 +-14.0947 -2.95636 2.94802 +-15.0918 -3.06433 3.05568 +-12.3345 -2.42218 2.41534 +-3164.66 -600.452 598.756 +-14.135 -2.58852 2.58121 +-11.2554 -1.98715 1.98154 +-13.5159 -2.29773 2.29124 +-13.6412 -2.23004 2.22375 +-12.8871 -2.02306 2.01735 +-13.205 -1.98752 1.98191 +-12.837 -1.84937 1.84415 +-13.5465 -1.86456 1.85929 +-14.3555 -1.88401 1.87869 +-13.6888 -1.70916 1.70434 +-13.9066 -1.64788 1.64323 +-14.519 -1.62835 1.62376 +-13.8462 -1.4653 1.46117 +-13.9628 -1.38954 1.38562 +-13.8802 -1.29397 1.29032 +-13.1016 -1.13912 1.1359 +-13.1151 -1.05811 1.05512 +-12.8293 -0.954824 0.952128 +-11.8452 -0.807637 0.805357 +-11.6555 -0.72207 0.720031 +-11.8633 -0.661132 0.659265 +-10.9732 -0.543344 0.54181 +-10.9795 -0.475517 0.474174 +-11.0848 -0.411359 0.410198 +-11.4891 -0.355202 0.354199 +-10.5935 -0.261953 0.261213 +-10.5964 -0.196482 0.195928 +-10.5984 -0.130997 0.130627 +-10.1996 -0.063029 0.062851 +11 -1.77636e-15 -1.7053e-13 +10.5996 -0.0649087 0.0659041 +10.1984 -0.124914 0.12683 +10.5964 -0.194706 0.197693 +10.7934 -0.264483 0.26854 +11.4891 -0.351992 0.35739 +11.8837 -0.437021 0.443723 +12.4767 -0.535476 0.543689 +12.9683 -0.63633 0.646089 +12.3618 -0.682684 0.693154 +13.0502 -0.801165 0.813452 +13.7365 -0.928125 0.942359 +14.0228 -1.03421 1.05007 +15.4004 -1.23125 1.25013 +15.6822 -1.35116 1.37188 +34.6014 -3.19652 3.24554 +37.5312 -3.70126 3.75802 +39.7584 -4.16949 4.23344 +40.1989 -4.46767 4.53619 +40.635 -4.77157 4.84475 +40.6726 -5.0324 5.10958 +54.4723 -7.08428 7.19293 +74.5055 -10.1624 10.3182 +75.1602 -10.7301 10.8947 +78.154 -11.6568 11.8356 +91.6742 -14.2613 14.48 +92.3703 -14.9642 15.1936 +94.8061 -15.9714 16.2164 +94.7009 -16.5684 16.8225 +94.4912 -17.1476 17.4106 +94.2744 -17.7256 17.9974 +94.9176 -18.471 18.7543 +95.5494 -19.2256 19.5205 +95.3067 -19.8099 20.1137 +95.0567 -20.3928 20.7055 +95.6578 -21.164 21.4886 +95.4861 -21.7706 22.1045 +95.8755 -22.5104 22.8556 +95.5919 -23.0966 23.4508 +96.1494 -23.8919 24.2583 +96.6004 -24.6718 25.0501 +96.2899 -25.2623 25.6497 +95.8787 -25.8259 26.2219 +96.5773 -26.6948 27.1042 +96.2417 -27.2853 27.7037 +96.7302 -28.1152 28.5464 +95.8246 -28.5419 28.9797 +94.9157 -28.9597 29.4039 +95.1914 -29.7397 30.1958 +94.727 -30.2923 30.7569 +95.1623 -31.1381 31.6157 +95.313 -31.9009 32.3902 +94.8228 -32.4526 32.9503 +95.1315 -33.2825 33.7929 +95.4268 -34.1186 34.6419 +95.5311 -34.896 35.4312 +93.9456 -35.0515 35.589 +93.9455 -35.7928 36.3417 +92.0975 -35.8224 36.3718 +90.43 -35.9012 36.4518 +88.7676 -35.9624 36.5139 +86.7661 -35.8635 36.4136 +85.8024 -36.1766 36.7315 +84.1556 -36.1874 36.7424 +82.1759 -36.032 36.5846 +80.4595 -35.9683 36.5199 +79.1705 -36.0774 36.6307 +77.9683 -36.2123 36.7676 +76.0227 -35.9821 36.5339 +75.5724 -36.4462 37.0052 +73.4779 -36.1026 36.6563 +72.2935 -36.1844 36.7394 +70.3036 -35.8421 36.3918 +69.1317 -35.8956 36.4461 +68.2035 -36.0642 36.6172 +67.3557 -36.2668 36.823 +65.4049 -35.8571 36.407 +64.2521 -35.8631 36.4131 +63.182 -35.9019 36.4525 +62.7331 -36.2874 36.844 +60.8239 -35.8132 36.3624 +60.4523 -36.2298 36.7855 +59.2447 -36.1383 36.6925 +58.119 -36.0812 36.6346 +56.7763 -35.8723 36.4225 +55.5907 -35.7445 36.2927 +54.559 -35.7007 36.2483 +54.1129 -36.0335 36.5861 +53.0153 -35.9247 36.4757 +51.9246 -35.8054 36.3545 +50.9117 -35.725 36.2729 +49.8346 -35.585 36.1307 +49.3902 -35.8888 36.4392 +48.3225 -35.7318 36.2798 +47.8763 -36.0263 36.5788 +46.9535 -35.956 36.5074 +45.9024 -35.7727 36.3214 +44.8594 -35.5795 36.1251 +44.0216 -35.5351 36.08 +43.578 -35.8033 36.3524 +42.8097 -35.8 36.3491 +41.7903 -35.5735 36.119 +41.0317 -35.5553 36.1006 +40.588 -35.8053 36.3544 +40.1411 -36.0524 36.6053 +39.6912 -36.2968 36.8535 +38.6967 -36.0342 36.5868 +38.2471 -36.2698 36.826 +37.0892 -35.8214 36.3707 +36.5262 -35.9329 36.4839 +35.5044 -35.5803 36.126 +34.9473 -35.6807 36.228 +34.5581 -35.9515 36.5029 +34.0545 -36.1033 36.657 +33.4408 -36.1339 36.6881 +32.5604 -35.8638 36.4138 +32.0601 -36.0023 36.5545 +31.6112 -36.1973 36.7524 +30.6963 -35.8482 36.3979 +30.2493 -36.0348 36.5874 +29.85 -36.2794 36.8358 +28.9545 -35.9111 36.4619 +28.1674 -35.6574 36.2043 +27.7706 -35.8903 36.4407 +27.3702 -36.1209 36.6748 +26.8738 -36.2248 36.7804 +26.0137 -35.8254 36.3748 +25.6118 -36.0461 36.5989 +24.8118 -35.697 36.2444 +24.2808 -35.7209 36.2687 +23.8779 -35.9318 36.4829 +23.4716 -36.1405 36.6948 +22.6959 -35.77 36.3186 +22.2901 -35.972 36.5237 +21.8028 -36.0425 36.5953 +21.3537 -36.1747 36.7295 +20.903 -36.3041 36.8608 +20.4141 -36.3654 36.9231 +19.7102 -36.0304 36.583 +19.1914 -36.0183 36.5707 +18.7769 -36.2004 36.7555 +18.3594 -36.3801 36.9381 +17.6132 -35.8941 36.4445 +17.42 -36.5329 37.0932 +16.8723 -36.438 36.9968 +16.1479 -35.9376 36.4887 +15.5542 -35.6995 36.247 +15.1096 -35.7934 36.3424 +14.719 -36.0195 36.5719 +14.2705 -36.1083 36.6621 +13.6139 -35.652 36.1988 +13.2201 -35.8699 36.42 +12.7493 -35.8814 36.4317 +12.3259 -36.0263 36.5788 +11.8099 -35.8953 36.4458 +11.3198 -35.8293 36.3788 +10.9569 -36.1718 36.7265 +10.4269 -35.9625 36.514 +9.97931 -36.0249 36.5774 +9.58559 -36.2916 36.8482 +9.13389 -36.349 36.9064 +8.54947 -35.8499 36.3997 +8.11895 -35.9701 36.5218 +7.65653 -35.9491 36.5004 +7.20917 -35.9946 36.5466 +6.77431 -36.107 36.6607 +6.31283 -36.0774 36.6307 +5.87525 -36.1844 36.7394 +5.42503 -36.219 36.7745 +4.97439 -36.2509 36.8068 +4.50595 -36.1402 36.6944 +4.0328 -35.9565 36.508 +3.61339 -36.2598 36.8159 +3.16842 -36.3506 36.9081 +2.6639 -35.6678 36.2148 +2.22023 -35.6828 36.2301 +1.77638 -35.6951 36.2425 +1.33502 -35.7747 36.3234 +0.890073 -35.7815 36.3303 +0.445053 -35.7856 36.3345 +1.06581e-14 -35.9273 36.4783 +-0.444181 -35.7155 36.2632 +-0.888327 -35.7113 36.259 +-1.33241 -35.7046 36.2522 +-1.77638 -35.6951 36.2425 +-2.26385 -36.3839 36.9418 +-2.71624 -36.3686 36.9264 +-3.15621 -36.2105 36.7659 +-3.60641 -36.1898 36.7448 +-4.04064 -36.0264 36.5789 +-4.47981 -35.9304 36.4814 +-4.92647 -35.9016 36.4522 +-5.45639 -36.4283 36.987 +-5.92053 -36.4633 37.0225 +-6.30065 -36.0077 36.56 +-6.7221 -35.8287 36.3781 +-7.18133 -35.8556 36.4055 +-7.61218 -35.7409 36.289 +-8.07202 -35.7622 36.3107 +-8.56597 -35.919 36.4699 +-9.06443 -36.0726 36.6258 +-9.36691 -35.4637 36.0076 +-9.80758 -35.405 35.948 +-10.2276 -35.2748 35.8158 +-10.6867 -35.2795 35.8206 +-11.3414 -35.8978 36.4483 +-11.7649 -35.7586 36.307 +-12.3959 -36.231 36.7867 +-12.6525 -35.6091 36.1552 +-13.2952 -36.0737 36.6269 +-13.7433 -35.991 36.5429 +-14.2171 -35.973 36.5247 +-14.912 -36.4917 37.0514 +-15.3936 -36.4662 37.0255 +-15.5542 -35.6995 36.247 +-16.3584 -36.406 36.9644 +-16.5633 -35.7706 36.3191 +-17.3248 -36.3333 36.8905 +-17.8086 -36.2921 36.8487 +-18.2926 -36.2479 36.8038 +-18.7085 -36.0685 36.6217 +-19.4365 -36.4784 37.0378 +-19.8894 -36.358 36.9156 +-20.3408 -36.2348 36.7905 +-20.7907 -36.1089 36.6626 +-21.5833 -36.5636 37.1244 +-22.0372 -36.4301 36.9888 +-22.4894 -36.2938 36.8504 +-22.9806 -36.2187 36.7742 +-23.4302 -36.0766 36.6299 +-24.3006 -36.5678 37.1286 +-24.8405 -36.5443 37.1047 +-25.3379 -36.4538 37.0129 +-26.1026 -36.7369 37.3003 +-26.5584 -36.5756 37.1366 +-27.0585 -36.4738 37.0332 +-27.511 -36.3067 36.8635 +-28.3432 -36.6302 37.192 +-28.7007 -36.3326 36.8898 +-29.9886 -37.1937 37.7641 +-30.05 -36.5224 37.0826 +-30.9091 -36.8207 37.3854 +-31.6748 -36.991 37.5583 +-32.1859 -36.8554 37.4206 +-32.696 -36.7165 37.2796 +-33.2051 -36.574 37.1349 +-33.9855 -36.7224 37.2855 +-34.772 -36.864 37.4293 +-35.2851 -36.7078 37.2708 +-36.4199 -37.1843 37.7546 +-36.5368 -36.615 37.1765 +-37.6296 -37.0183 37.586 +-38.0885 -36.7864 37.3506 +-39.0204 -37.003 37.5705 +-39.5392 -36.8188 37.3834 +-40.4826 -37.0206 37.5883 +-40.8799 -36.716 37.2791 +-41.335 -36.4643 37.0235 +-42.4162 -36.7551 37.3187 +-43.3805 -36.9271 37.4934 +-44.6095 -37.3051 37.8772 +-45.0717 -37.0305 37.5985 +-45.3337 -36.5942 37.1554 +-46.4497 -36.8408 37.4058 +-47.4414 -36.9722 37.5392 +-48.5749 -37.1976 37.768 +-49.0357 -36.8987 37.4646 +-49.9745 -36.9534 37.5201 +-51.1269 -37.1507 37.7204 +-51.657 -36.8863 37.452 +-52.6795 -36.9655 37.5324 +-53.7791 -37.0842 37.6529 +-54.2382 -36.7534 37.317 +-56.2165 -37.4342 38.0083 +-56.6799 -37.0886 37.6574 +-58.6135 -37.6882 38.2662 +-59.08 -37.3279 37.9003 +-60.216 -37.3832 37.9565 +-60.7541 -37.059 37.6274 +-62.6575 -37.5514 38.1273 +-63.5817 -37.437 38.0111 +-64.8165 -37.4925 38.0675 +-65.902 -37.4475 38.0218 +-67.7739 -37.8288 38.409 +-69.0297 -37.8443 38.4247 +-70.1324 -37.7619 38.3411 +-71.8772 -38.0068 38.5896 +-73.9548 -38.3999 38.9888 +-74.6723 -38.0693 38.6532 +-76.1198 -38.0996 38.6839 +-77.4099 -38.0345 38.6179 +-79.1161 -38.1552 38.7404 +-81.3286 -38.4933 39.0837 +-82.5547 -38.3425 38.9305 +-83.5316 -38.0647 38.6485 +-85.9416 -38.4189 39.0081 +-87.2641 -38.2631 38.8499 +-89.0156 -38.2773 38.8643 +-91.1169 -38.4173 39.0065 +-93.9176 -38.8195 39.4149 +-95.1762 -38.5587 39.1501 +-97.915 -38.8729 39.469 +-99.8816 -38.8501 39.446 +-102.382 -39.0071 39.6053 +-104.453 -38.9717 39.5694 +-106.885 -39.0434 39.6422 +-108.97 -38.9608 39.5583 +-112.493 -39.3566 39.9602 +-114.866 -39.3122 39.9151 +-117.065 -39.1813 39.7822 +-120.086 -39.2933 39.8959 +-123.937 -39.6332 40.241 +-101.495 -31.7089 32.1952 +-97.7586 -29.8272 30.2846 +-98.1258 -29.2274 29.6756 +-92.7575 -26.9605 27.374 +-56.7437 -16.0872 16.3339 +-49.126 -13.5789 13.7872 +-41.0775 -11.0646 11.2343 +-38.7782 -10.1737 10.3298 +-33.0772 -8.4479 8.57746 +-15.8364 -3.93514 3.99549 +-15.1283 -3.65525 3.71131 +-14.5094 -3.40661 3.45886 +-16.3582 -3.72963 3.78683 +-15.7363 -3.48162 3.53501 +-15.014 -3.221 3.27039 +-15.2452 -3.16879 3.21739 +-13.4577 -2.70783 2.74935 +-12.4308 -2.41905 2.45614 +-3164.66 -595.025 604.15 +-12.2955 -2.2313 2.26552 +-12.1287 -2.12197 2.15451 +-12.9325 -2.17867 2.21208 +-11.8873 -1.92576 1.95529 +-14.2539 -2.2174 2.25141 +-13.205 -1.96955 1.99976 +-14.0129 -2.00053 2.03122 +-13.3501 -1.82093 1.84885 +-13.8639 -1.80305 1.8307 +-13.3934 -1.65716 1.68258 +-13.7094 -1.60982 1.63451 +-14.2227 -1.5807 1.60495 +-13.3517 -1.4002 1.42168 +-13.8638 -1.36722 1.38819 +-14.2768 -1.31891 1.33914 +-14.1934 -1.22288 1.24164 +-13.1151 -1.04854 1.06463 +-12.0337 -0.88751 0.901121 +-11.9448 -0.807067 0.819444 +-12.054 -0.740005 0.751354 +-11.0658 -0.611113 0.620485 +-11.5717 -0.567803 0.576511 +-11.778 -0.50549 0.513242 +-11.0848 -0.407641 0.413893 +-11.0894 -0.339748 0.344959 +-11.0932 -0.271829 0.275998 +-11.4961 -0.211238 0.214478 +-10.9983 -0.134711 0.136777 +-10.9996 -0.067358 0.0683911 +10.6 1.77636e-15 -1.7053e-13 +10.5996 -0.0643125 0.066486 +10.1984 -0.123767 0.12795 +11.0962 -0.202018 0.208845 +11.493 -0.279039 0.288469 +11.9886 -0.363922 0.376221 +12.383 -0.451201 0.466449 +12.7761 -0.543291 0.561652 +12.3698 -0.601387 0.621711 +12.4615 -0.681869 0.704914 +13.6479 -0.830162 0.858218 +14.2342 -0.952917 0.985122 +14.6195 -1.06832 1.10442 +14.3074 -1.13337 1.17167 +17.4688 -1.49126 1.54166 +31.0322 -2.84047 2.93646 +34.8574 -3.40601 3.52111 +37.9782 -3.94622 4.07958 +40.3965 -4.4484 4.59873 +41.9171 -4.87692 5.04174 +45.6951 -5.60191 5.79123 +64.6982 -8.33694 8.61869 +83.0457 -11.2232 11.6025 +85.3514 -12.0731 12.4812 +90.6743 -13.4 13.8529 +92.4552 -14.2506 14.7322 +94.2216 -15.1239 15.635 +94.8061 -15.8248 16.3596 +94.7009 -16.4162 16.971 +94.4912 -16.9902 17.5644 +95.1437 -17.7248 18.3238 +94.8212 -18.2828 18.9007 +94.6843 -18.8765 19.5145 +95.4026 -19.6477 20.3117 +95.1523 -20.2258 20.9094 +95.6578 -20.9696 21.6783 +95.391 -21.5492 22.2775 +95.8755 -22.3036 23.0574 +95.4974 -22.8618 23.6345 +95.3011 -23.4636 24.2566 +96.6004 -24.4452 25.2713 +96.2899 -25.0303 25.8762 +95.8787 -25.5887 26.4534 +96.5773 -26.4497 27.3436 +96.2417 -27.0347 27.9483 +96.5454 -27.8038 28.7434 +96.4689 -28.47 29.4321 +95.2825 -28.8047 29.7781 +95.1001 -29.4382 30.4331 +94.909 -30.0718 31.0881 +95.0717 -30.8228 31.8645 +94.4104 -31.3086 32.3667 +94.8228 -32.1546 33.2412 +95.221 -33.0078 34.1233 +95.6941 -33.8999 35.0456 +95.265 -34.4792 35.6445 +94.7403 -35.0233 36.2069 +93.8577 -35.4309 36.6283 +92.8846 -35.7968 37.0065 +91.3873 -35.9481 37.163 +89.98 -36.1188 37.3395 +88.317 -36.1693 37.3917 +86.0596 -35.9518 37.1668 +84.6672 -36.073 37.2921 +82.6847 -35.9221 37.1361 +81.7246 -36.1983 37.4216 +79.6737 -35.9733 37.189 +79.2192 -36.4553 37.6873 +77.515 -36.3514 37.5799 +76.3141 -36.4659 37.6983 +74.379 -36.2097 37.4334 +72.3749 -35.8925 37.1055 +70.4654 -35.5946 36.7976 +69.7748 -35.8967 37.1099 +68.5229 -35.9003 37.1136 +67.9904 -36.2724 37.4982 +66.1929 -35.9558 37.171 +65.0347 -35.9665 37.182 +63.182 -35.5721 36.7743 +62.7331 -35.9542 37.1693 +61.59 -35.9311 37.1455 +61.1366 -36.3035 37.5304 +59.2447 -35.8063 37.0164 +58.793 -36.1645 37.3867 +57.5937 -36.0546 37.273 +56.328 -35.886 37.0987 +55.1441 -35.7522 36.9605 +54.7658 -36.1333 37.3544 +53.0153 -35.5948 36.7977 +52.5666 -35.9151 37.1289 +51.4774 -35.7902 36.9998 +50.5356 -35.7541 36.9624 +49.3207 -35.5091 36.7092 +48.942 -35.8574 37.0693 +47.8763 -35.6954 36.9017 +47.0211 -35.677 36.8827 +45.9693 -35.4958 36.6954 +45.5883 -35.8255 37.0363 +44.612 -35.681 36.8869 +43.7728 -35.6331 36.8373 +42.8739 -35.5245 36.7251 +42.4264 -35.7833 36.9926 +41.5351 -35.661 36.8662 +41.086 -35.9117 37.1253 +40.1411 -35.7213 36.9285 +39.6304 -35.9083 37.1219 +38.6967 -35.7032 36.9099 +38.1876 -35.8807 37.0934 +37.0305 -35.4361 36.6337 +36.5843 -35.6594 36.8646 +36.0206 -35.7661 36.9748 +35.457 -35.8687 37.0809 +34.5022 -35.5637 36.7656 +33.9993 -35.7137 36.9207 +33.4953 -35.8603 37.0722 +32.9902 -36.0035 37.2203 +32.1131 -35.7306 36.9382 +31.6112 -35.8648 37.0769 +31.1598 -36.0552 37.2738 +30.7568 -36.3028 37.5297 +29.4 -35.4043 36.6008 +29.3484 -36.0654 37.2843 +28.5553 -35.8164 37.0269 +28.1047 -35.9883 37.2045 +27.7458 -36.2802 37.5064 +26.7814 -35.7688 36.9776 +26.4222 -36.0539 37.2723 +25.9687 -36.2128 37.4366 +24.8118 -35.3691 36.5644 +24.7113 -36.0203 37.2377 +23.8779 -35.6018 36.805 +23.5131 -35.8718 37.0842 +23.062 -36.0131 37.2302 +22.6091 -36.1517 37.3735 +21.8028 -35.7115 36.9184 +21.3537 -35.8424 37.0538 +20.9405 -36.0351 37.2529 +20.4874 -36.1607 37.3828 +19.6744 -35.6346 36.8389 +19.1914 -35.6875 36.8935 +18.7769 -35.8679 37.0801 +18.3594 -36.046 37.2642 +17.8737 -36.0903 37.31 +17.4518 -36.2633 37.4888 +17.1195 -36.6322 37.8703 +16.2983 -35.9391 37.1537 +15.7881 -35.9036 37.117 +15.3652 -36.0646 37.2835 +14.719 -35.6887 36.8948 +14.2973 -35.8436 37.055 +13.8468 -35.929 37.1432 +13.2201 -35.5405 36.7416 +12.7735 -35.6193 36.8231 +12.3259 -35.6955 36.9018 +11.8099 -35.5656 36.7676 +11.4929 -36.0432 37.2613 +10.9569 -35.8396 37.0508 +10.6263 -36.3135 37.5407 +9.99839 -35.7623 36.9709 +9.60381 -36.0267 37.2442 +9.15126 -36.0836 37.3031 +8.665 -36.0006 37.2173 +8.10331 -35.5711 36.7733 +7.80434 -36.3065 37.5335 +7.22308 -35.7329 36.9405 +6.77431 -35.7753 36.9844 +6.32502 -35.815 37.0254 +5.86393 -35.783 36.9923 +5.41457 -35.8172 37.0277 +4.98398 -35.9871 37.2033 +4.52338 -35.9467 37.1616 +4.05634 -35.8342 37.0452 +3.60641 -35.8574 37.0693 +3.16231 -35.9473 37.1622 +2.70577 -35.8957 37.1088 +2.26385 -36.0497 37.268 +1.77638 -35.3672 36.5625 +1.35858 -36.0717 37.2907 +0.890073 -35.4529 36.651 +0.454652 -36.2217 37.4458 +7.99361e-15 -35.3888 36.5848 +-0.452035 -36.0131 37.2302 +-0.90578 -36.0785 37.2978 +-1.3612 -36.1412 37.3626 +-1.80779 -35.9925 37.2089 +-2.26385 -36.0497 37.268 +-2.711 -35.9651 37.1806 +-3.16842 -36.0167 37.2339 +-3.60641 -35.8574 37.0693 +-4.05634 -35.8342 37.0452 +-4.47981 -35.6004 36.8036 +-5.01273 -36.1947 37.4179 +-5.45639 -36.0938 37.3136 +-5.93185 -36.1975 37.4208 +-6.28846 -35.6081 36.8115 +-6.83957 -36.12 37.3407 +-7.16741 -35.4575 36.6558 +-7.62697 -35.4814 36.6805 +-8.04073 -35.2964 36.4893 +-8.59898 -35.7263 36.9337 +-9.06443 -35.7413 36.9492 +-9.38513 -35.2063 36.3962 +-9.96023 -35.6258 36.8298 +-10.4269 -35.6322 36.8364 +-10.8738 -35.5675 36.7696 +-11.3414 -35.5681 36.7701 +-11.7424 -35.3624 36.5575 +-12.3959 -35.8983 37.1115 +-12.6525 -35.2821 36.4744 +-13.2952 -35.7424 36.9503 +-13.7433 -35.6604 36.8656 +-14.4309 -36.1786 37.4013 +-14.6639 -35.555 36.7566 +-15.3652 -36.0646 37.2835 +-15.8173 -35.9701 37.1857 +-16.3584 -36.0717 37.2907 +-16.8723 -36.1033 37.3234 +-17.3566 -36.0655 37.2843 +-17.8086 -35.9588 37.1741 +-18.2592 -35.8494 37.0609 +-18.9821 -36.2599 37.4853 +-19.4365 -36.1433 37.3648 +-19.8894 -36.024 37.2415 +-20.7073 -36.5489 37.7841 +-21.0529 -36.2284 37.4528 +-21.5451 -36.1636 37.3857 +-22.0763 -36.1595 37.3815 +-22.4894 -35.9604 37.1757 +-23.2653 -36.3307 37.5585 +-23.8034 -36.3147 37.542 +-24.3428 -36.2949 37.5215 +-25.1849 -36.7106 37.9513 +-25.6447 -36.5565 37.7919 +-26.1472 -36.4617 37.6939 +-26.74 -36.4875 37.7206 +-27.474 -36.6938 37.9339 +-27.9336 -36.5258 37.7602 +-28.6772 -36.7215 37.9625 +-29.1371 -36.5461 37.7812 +-30.0378 -36.9126 38.1601 +-30 -36.1268 37.3477 +-31.2644 -36.9019 38.1491 +-31.2628 -36.1745 37.397 +-32.2904 -36.6355 37.8736 +-33.2789 -37.0278 38.2792 +-33.6887 -36.7658 38.0083 +-34.4212 -36.8516 38.097 +-34.9376 -36.6993 37.9396 +-35.3969 -36.486 37.719 +-36.8164 -37.2439 38.5026 +-36.5368 -36.2787 37.5048 +-37.978 -37.0179 38.269 +-38.4999 -36.8423 38.0874 +-39.4962 -37.1103 38.3645 +-39.9605 -36.8693 38.1153 +-40.4826 -36.6806 37.9202 +-40.8799 -36.3788 37.6082 +-41.9575 -36.6735 37.9129 +-42.9197 -36.8498 38.0952 +-43.953 -37.0708 38.3237 +-44.5452 -36.9092 38.1566 +-45.5263 -37.0605 38.313 +-46.0553 -36.8353 38.0802 +-46.9135 -36.867 38.1129 +-47.3744 -36.5809 37.8172 +-48.5074 -36.8047 38.0485 +-49.5813 -36.9666 38.2159 +-50.6629 -37.1183 38.3727 +-51.1269 -36.8095 38.0535 +-52.2878 -36.9938 38.244 +-52.6795 -36.626 37.8638 +-53.7078 -36.6948 37.9349 +-54.9576 -36.8988 38.1458 +-56.2165 -37.0904 38.3439 +-56.6799 -36.7479 37.9899 +-58.5398 -37.2951 38.5555 +-59.7488 -37.4037 38.6678 +-60.4407 -37.178 38.4344 +-61.4334 -37.1291 38.384 +-63.1137 -37.4775 38.7441 +-64.3477 -37.54 38.8087 +-66.1282 -37.9 39.1808 +-66.6014 -37.4974 38.7646 +-68.4782 -37.8709 39.1507 +-69.6602 -37.8392 39.118 +-71.4018 -38.0923 39.3797 +-71.8772 -37.6577 38.9304 +-74.4371 -38.2954 39.5896 +-75.4004 -38.0875 39.3747 +-77.341 -38.3553 39.6516 +-78.5567 -38.2435 39.536 +-80.5995 -38.5136 39.8152 +-81.0799 -38.0232 39.3082 +-83.055 -38.2205 39.5122 +-84.4541 -38.1317 39.4204 +-86.6163 -38.365 39.6615 +-87.8578 -38.1695 39.4595 +-89.9535 -38.3253 39.6205 +-91.6312 -38.2794 39.5731 +-94.693 -38.7806 40.0912 +-95.869 -38.4827 39.7832 +-98.3502 -38.687 39.9945 +-101.194 -38.9989 40.3169 +-103.964 -39.246 40.5724 +-104.806 -38.7443 40.0537 +-108.481 -39.2627 40.5896 +-109.594 -38.8239 40.136 +-113.299 -39.2743 40.6016 +-114.596 -38.8597 40.173 +-118.329 -39.2405 40.5667 +-121.173 -39.2851 40.6128 +-124.756 -39.5286 40.8645 +-98.0234 -30.3431 31.3686 +-98.4005 -29.7473 30.7526 +-98.2179 -28.9861 29.9657 +-94.8824 -27.3249 28.2483 +-59.1543 -16.6167 17.1782 +-51.266 -14.0402 14.5147 +-43.1314 -11.5112 11.9002 +-39.1529 -10.1777 10.5217 +-35.0505 -8.86972 9.16948 +-18.0987 -4.45599 4.60658 +-16.1684 -3.87067 4.00148 +-15.0783 -3.50769 3.62623 +-15.7875 -3.56647 3.687 +-15.7363 -3.44964 3.56622 +-15.779 -3.35403 3.46738 +-15.3411 -3.15944 3.26621 +-13.9383 -2.77878 2.87269 +-13.9726 -2.69411 2.78516 +-12.9434 -2.41129 2.49278 +-3171.94 -570.336 589.611 +-11.5465 -2.00157 2.06921 +-13.8077 -2.30473 2.38262 +-13.8361 -2.22087 2.29593 +-13.0824 -2.01646 2.08461 +-12.9115 -1.90809 1.97258 +-13.229 -1.87127 1.93451 +-13.3501 -1.8042 1.86518 +-13.8639 -1.78649 1.84686 +-13.4919 -1.65401 1.70991 +-14.3011 -1.66389 1.72012 +-14.0252 -1.54443 1.59663 +-13.9451 -1.449 1.49797 +-13.9628 -1.36434 1.41045 +-13.9794 -1.27957 1.32282 +-13.6971 -1.16929 1.20881 +-13.2145 -1.04678 1.08216 +-12.6304 -0.922966 0.954158 +-12.0443 -0.806315 0.833565 +-12.5521 -0.763508 0.789311 +-12.5612 -0.687324 0.710553 +-11.2725 -0.548038 0.566559 +-10.9795 -0.466891 0.48267 +-11.684 -0.42573 0.440118 +-11.2892 -0.342693 0.354275 +-10.7934 -0.262054 0.270911 +-10.7963 -0.196558 0.203201 +-10.9983 -0.133473 0.137984 +-10.5996 -0.0643125 0.066486 +10.2 1.77636e-15 -2.27374e-13 +10.5996 -0.06371 0.0670636 +10.5984 -0.127415 0.134122 +10.1965 -0.183899 0.193579 +12.3924 -0.298058 0.313747 +11.4891 -0.345491 0.363678 +11.0848 -0.400113 0.421175 +12.4767 -0.525588 0.553254 +12.6691 -0.610166 0.642284 +13.0596 -0.707901 0.745164 +13.9467 -0.840395 0.884633 +14.2342 -0.94399 0.99368 +14.6195 -1.05831 1.11402 +15.4997 -1.21631 1.28033 +18.2628 -1.54445 1.62574 +29.2476 -2.65203 2.79163 +33.273 -3.22073 3.39027 +38.0771 -3.91942 4.12574 +40.8903 -4.46059 4.69539 +45.665 -5.2632 5.54025 +51.6039 -6.26702 6.59691 +79.6436 -10.1667 10.7018 +90.506 -12.1168 12.7547 +91.623 -12.8389 13.5147 +91.6524 -13.4177 14.124 +93.3339 -14.2513 15.0014 +94.1241 -14.9667 15.7545 +94.7088 -15.6605 16.4848 +94.7009 -16.2624 17.1185 +94.4912 -16.831 17.7169 +95.1437 -17.5587 18.483 +94.8212 -18.1115 19.0649 +95.6455 -18.8895 19.8838 +95.4026 -19.4636 20.4882 +95.9174 -20.1974 21.2606 +95.6578 -20.7732 21.8666 +95.391 -21.3473 22.471 +95.8755 -22.0947 23.2577 +95.5919 -22.67 23.8634 +96.1494 -23.4507 24.6851 +95.7547 -24.0041 25.2677 +96.2899 -24.7958 26.101 +95.9721 -25.3736 26.7092 +96.5773 -26.2019 27.5811 +96.2417 -26.7814 28.1911 +96.6378 -27.5696 29.0209 +96.653 -28.2571 29.7445 +95.0991 -28.4799 29.979 +95.2828 -29.2184 30.7565 +94.909 -29.79 31.3581 +94.8904 -30.4757 32.08 +94.5909 -31.0746 32.7103 +95.6317 -32.125 33.816 +95.1315 -32.6678 34.3874 +95.5159 -33.5198 35.2842 +95.7085 -34.3152 36.1215 +95.27 -34.8892 36.7257 +94.1213 -35.1975 37.0503 +93.8467 -35.8287 37.7147 +92.4318 -36.0183 37.9143 +90.4131 -35.9526 37.8451 +88.317 -35.8305 37.7166 +86.5739 -35.8278 37.7137 +85.3493 -36.0229 37.9191 +83.7023 -36.0235 37.9198 +82.2307 -36.0812 37.9805 +80.764 -36.1239 38.0254 +79.2192 -36.1138 38.0147 +77.515 -36.0108 37.9064 +76.0668 -36.0072 37.9026 +75.1162 -36.226 38.1329 +73.9217 -36.3161 38.2278 +71.3553 -35.7065 37.5861 +69.8552 -35.6014 37.4754 +69.4014 -36.0199 37.9159 +67.7524 -35.8067 37.6915 +66.8233 -35.9582 37.851 +65.7391 -36.0154 37.9112 +64.5808 -36.0191 37.9151 +63.4275 -36.0115 37.9072 +62.2794 -35.9929 37.8876 +61.1366 -35.9633 37.8564 +59.9994 -35.9228 37.8137 +59.4671 -36.2364 38.1438 +57.5937 -35.7168 37.5969 +57.139 -36.0615 37.9598 +55.8754 -35.887 37.776 +54.6932 -35.7473 37.629 +53.7347 -35.7398 37.6211 +53.2085 -36.0131 37.9088 +51.4774 -35.4549 37.3212 +51.0262 -35.7629 37.6454 +50.0154 -35.6719 37.5497 +49.6304 -36.0211 37.9172 +48.0127 -35.4617 37.3284 +47.5616 -35.7489 37.6307 +46.5046 -35.5728 37.4453 +46.1184 -35.9025 37.7924 +45.1369 -35.7625 37.645 +44.2274 -35.6658 37.5432 +43.7738 -35.9303 37.8216 +43.0625 -35.9795 37.8734 +41.9127 -35.6481 37.5246 +41.086 -35.5752 37.4479 +40.7568 -35.9294 37.8207 +40.2391 -36.1184 38.0196 +39.2383 -35.8637 37.7516 +38.723 -36.0429 37.9401 +37.5595 -35.6056 37.4798 +37.0488 -35.7739 37.657 +36.5368 -35.9388 37.8306 +36.0801 -36.157 38.0603 +35.0614 -35.8015 37.6861 +34.4961 -35.896 37.7856 +33.4953 -35.5243 37.3943 +32.9902 -35.6662 37.5436 +32.537 -35.8632 37.751 +32.1337 -36.1161 38.0172 +31.1598 -35.7175 37.5976 +30.7061 -35.9034 37.7933 +30.25 -36.0866 37.9861 +29.4469 -35.8474 37.7344 +28.9916 -36.023 37.9193 +28.0569 -35.5906 37.464 +27.7458 -35.9403 37.8322 +27.2893 -36.1057 38.0063 +26.4676 -35.7774 37.6607 +25.9687 -35.8735 37.7619 +25.1625 -35.533 37.4034 +24.6683 -35.6207 37.4957 +24.2583 -35.8301 37.7161 +23.8863 -36.0998 38.0001 +23.3467 -36.1162 38.0173 +22.6091 -35.813 37.6981 +22.1545 -35.9475 37.8397 +21.6982 -36.0793 37.9785 +20.9405 -35.6975 37.5766 +20.5241 -35.8861 37.7751 +20.0328 -35.9437 37.8357 +19.2614 -35.4822 37.3499 +18.7769 -35.5318 37.4022 +18.2926 -35.5785 37.4513 +17.9388 -35.8824 37.7712 +17.5152 -36.0542 37.952 +17.1504 -36.3545 38.2682 +16.5087 -36.0622 37.9604 +15.9927 -36.0283 37.9248 +15.3368 -35.6608 37.5379 +14.9395 -35.884 37.7729 +14.5378 -36.1051 38.0057 +13.8727 -35.6589 37.536 +13.3953 -35.6743 37.5521 +12.9912 -35.8871 37.7761 +12.5127 -35.8968 37.7864 +12.0124 -35.8365 37.7229 +11.4929 -35.7055 37.585 +10.9985 -35.6385 37.5145 +10.6263 -35.9733 37.8668 +10.1892 -36.1034 38.0038 +9.60381 -35.6891 37.5678 +9.13389 -35.6777 37.5557 +8.6815 -35.7312 37.6121 +8.11895 -35.3059 37.1643 +7.80434 -35.9664 37.8596 +7.22308 -35.3981 37.2614 +6.89178 -36.0547 37.9526 +6.32502 -35.4795 37.3471 +5.96581 -36.0636 37.962 +5.50865 -36.0981 37.9983 +4.97439 -35.5814 37.4544 +4.60182 -36.2275 38.1344 +4.12695 -36.1164 38.0176 +3.61339 -35.5902 37.4636 +3.15621 -35.5418 37.4127 +2.71624 -35.697 37.576 +2.25948 -35.6431 37.5194 +1.81128 -35.7242 37.6047 +1.35858 -35.7337 37.6147 +0.904035 -35.6716 37.5494 +0.45378 -35.8135 37.6986 +8.88178e-15 -35.746 37.6276 +-0.45378 -35.8135 37.6986 +-0.904035 -35.6716 37.5494 +-1.3612 -35.8026 37.6872 +-1.8043 -35.5865 37.4598 +-2.30747 -36.4001 38.3161 +-2.72147 -35.7657 37.6484 +-3.16842 -35.6793 37.5574 +-3.61339 -35.5902 37.4636 +-4.14264 -36.2537 38.1621 +-4.57568 -36.0216 37.9177 +-5.09899 -36.4727 38.3925 +-5.46684 -35.8241 37.7099 +-5.92053 -35.7899 37.6739 +-6.39814 -35.8897 37.7789 +-6.86568 -35.9182 37.8088 +-7.29267 -35.7391 37.6203 +-7.74521 -35.6939 37.5728 +-8.16588 -35.5099 37.3791 +-8.86306 -36.4784 38.3986 +-9.18599 -35.8812 37.7699 +-9.56737 -35.5537 37.4252 +-9.97931 -35.3596 37.2209 +-10.4269 -35.2983 37.1564 +-10.8946 -35.3017 37.1599 +-11.5362 -35.84 37.7266 +-11.9899 -35.7693 37.6522 +-12.4426 -35.6959 37.5749 +-12.8702 -35.5529 37.4244 +-13.5456 -36.0744 37.9733 +-13.9762 -35.925 37.8161 +-14.4576 -35.906 37.7961 +-14.9395 -35.884 37.7729 +-15.422 -35.8589 37.7464 +-15.8465 -35.6989 37.5781 +-16.3584 -35.7337 37.6147 +-17.1504 -36.3545 38.2682 +-17.6104 -36.2501 38.1583 +-18.069 -36.1429 38.0454 +-18.593 -36.1627 38.0663 +-19.0163 -35.9849 37.8791 +-19.7517 -36.3853 38.3006 +-20.212 -36.2652 38.1742 +-20.6707 -36.1424 38.0449 +-21.1278 -36.0168 37.9127 +-21.8895 -36.3975 38.3134 +-22.3107 -36.2011 38.1067 +-22.8882 -36.2551 38.1635 +-23.306 -36.0533 37.9511 +-24.1351 -36.4758 38.3959 +-24.7232 -36.5167 38.4389 +-25.1849 -36.3667 38.281 +-26.0831 -36.8329 38.7718 +-26.4149 -36.4899 38.4107 +-26.8762 -36.3297 38.2421 +-27.474 -36.3501 38.2635 +-27.7927 -36.0011 37.8962 +-28.6772 -36.3775 38.2924 +-29.1371 -36.2037 38.1094 +-29.9886 -36.5068 38.4285 +-30.5 -36.3848 38.3 +-31.3659 -36.6749 38.6054 +-31.6748 -36.3078 38.2191 +-32.2904 -36.2923 38.2027 +-33.2789 -36.6809 38.6117 +-34.0111 -36.7699 38.7055 +-34.8024 -36.9106 38.8536 +-35.2136 -36.6426 38.5715 +-36.012 -36.7722 38.7078 +-36.7598 -36.8382 38.7773 +-37.1104 -36.503 38.4244 +-38.0941 -36.7832 38.7194 +-38.6175 -36.6086 38.5356 +-39.6152 -36.8734 38.8144 +-40.0207 -36.5789 38.5043 +-41.0305 -36.8287 38.7673 +-41.4956 -36.5807 38.5062 +-42.3932 -36.7072 38.6394 +-42.9197 -36.5046 38.4261 +-43.4441 -36.2983 38.209 +-45.0594 -36.9855 38.9324 +-46.0459 -37.1323 39.0869 +-45.9897 -36.4382 38.3563 +-47.5761 -37.0374 38.987 +-48.0436 -36.75 38.6845 +-49.1154 -36.9169 38.8602 +-49.5131 -36.5699 38.4949 +-50.6629 -36.7705 38.7061 +-51.8215 -36.96 38.9056 +-52.8486 -37.0402 38.9899 +-54.023 -37.2082 39.1668 +-54.421 -36.8338 38.7727 +-55.7488 -37.0794 39.0312 +-56.8694 -37.1696 39.1262 +-58.0695 -37.2961 39.2594 +-59.2771 -37.411 39.3803 +-59.7488 -37.0533 39.0037 +-61.6391 -37.5598 39.537 +-61.7352 -36.962 38.9077 +-63.7981 -37.5289 39.5044 +-64.2711 -37.1441 39.0993 +-66.7455 -37.8954 39.8902 +-67.2231 -37.4928 39.4663 +-69.1826 -37.9019 39.8971 +-70.3694 -37.8663 39.8596 +-72.2745 -38.1967 40.2073 +-73.4745 -38.1339 40.1412 +-74.4371 -37.9366 39.9335 +-76.3712 -38.2164 40.2281 +-77.6666 -38.156 40.1645 +-78.8843 -38.0432 40.0458 +-81.094 -38.3869 40.4075 +-82.5721 -38.3602 40.3794 +-84.2225 -38.3946 40.4157 +-85.2089 -38.112 40.1182 +-87.3754 -38.3385 40.3566 +-88.7906 -38.2134 40.2249 +-91.1472 -38.47 40.4951 +-93.1741 -38.5592 40.5889 +-95.8993 -38.9066 40.9546 +-97.4279 -38.742 40.7814 +-100.265 -39.0707 41.1273 +-101.893 -38.9006 40.9483 +-104.316 -39.0097 41.0632 +-106.395 -38.9633 41.0143 +-109.102 -39.1175 41.1766 +-110.663 -38.8354 40.8797 +-113.836 -39.0908 41.1485 +-115.675 -38.858 40.9034 +-119.593 -39.288 41.3561 +-121.989 -39.179 41.2413 +-108.103 -33.9315 35.7177 +-97.2012 -29.8068 31.3758 +-97.942 -29.3313 30.8752 +-97.8497 -28.6069 30.1127 +-96.3606 -27.4906 28.9377 +-62.6776 -17.4414 18.3595 +-51.8243 -14.0601 14.8003 +-44.9052 -11.8723 12.4972 +-39.1529 -10.0824 10.6131 +-36.648 -9.18706 9.67065 +-32.1441 -7.83987 8.25255 +-16.1684 -3.83441 4.03624 +-16.2163 -3.73708 3.93379 +-14.8365 -3.32022 3.49499 +-15.0687 -3.27234 3.44459 +-15.8747 -3.34274 3.5187 +-14.8617 -3.03203 3.19163 +-14.9957 -2.96157 3.11746 +-15.4181 -2.94495 3.09997 +-12.9434 -2.3887 2.51444 +-3171.94 -564.993 594.734 +-12.0317 -2.06612 2.17488 +-12.738 -2.10628 2.21715 +-12.6668 -2.01414 2.12017 +-13.2776 -2.02738 2.1341 +-13.4984 -1.97614 2.08016 +-13.9149 -1.94986 2.05249 +-13.1538 -1.76102 1.85371 +-13.7656 -1.7572 1.8497 +-13.7873 -1.67439 1.76253 +-14.3998 -1.65967 1.74704 +-13.1363 -1.43299 1.50842 +-13.6484 -1.40489 1.47884 +-14.0618 -1.36114 1.43279 +-13.6819 -1.24061 1.30592 +-13.9949 -1.18352 1.24581 +-13.4132 -1.05257 1.10798 +-12.3321 -0.892719 0.939711 +-12.9402 -0.858172 0.903345 +-12.3528 -0.744349 0.783531 +-12.5612 -0.680885 0.716726 +-11.871 -0.57173 0.601825 +-10.9795 -0.462517 0.486863 +-11.2845 -0.407322 0.428763 +-11.2892 -0.339483 0.357353 +-10.7934 -0.259599 0.273264 +-11.0962 -0.200125 0.210659 +-10.9983 -0.132223 0.139183 +-10.5996 -0.06371 0.0670636 +10.2 1.77636e-15 -2.27374e-13 +10.1996 -0.0607211 0.0650835 +10.7984 -0.128581 0.137819 +11.0962 -0.198216 0.212457 +11.0932 -0.264264 0.28325 +11.4891 -0.342196 0.36678 +12.383 -0.44271 0.474516 +12.9758 -0.541397 0.580293 +12.7688 -0.609104 0.652864 +13.3587 -0.717207 0.768733 +14.4448 -0.862108 0.924045 +14.3337 -0.941527 1.00917 +14.4206 -1.03395 1.10823 +15.7978 -1.22787 1.31609 +18.1636 -1.5214 1.6307 +31.1314 -2.79592 2.99678 +33.075 -3.17102 3.39884 +38.2749 -3.9022 4.18255 +42.4706 -4.58879 4.91846 +49.3143 -5.62958 6.03403 +56.4295 -6.78769 7.27534 +90.7544 -11.4744 12.2988 +92.4693 -12.2616 13.1425 +94.1708 -13.07 14.009 +94.1956 -13.6585 14.6398 +94.9936 -14.3664 15.3985 +94.9036 -14.9466 16.0205 +94.8061 -15.527 16.6425 +94.7009 -16.1073 17.2645 +95.3625 -16.8241 18.0328 +95.0471 -17.3735 18.6217 +94.9176 -17.9569 19.247 +95.5494 -18.6906 20.0334 +95.3067 -19.2586 20.6422 +95.1523 -19.8452 21.271 +95.6578 -20.575 22.0532 +95.391 -21.1437 22.6627 +95.9704 -21.9055 23.4793 +95.6865 -22.476 24.0908 +96.1494 -23.227 24.8957 +96.6004 -23.9851 25.7083 +96.2899 -24.5593 26.3237 +95.9721 -25.1315 26.9371 +96.6704 -25.977 27.8432 +96.2417 -26.5259 28.4316 +96.7302 -27.3328 29.2965 +96.9292 -28.0675 30.084 +96.1079 -28.5074 30.5555 +95.3741 -28.9675 31.0486 +94.909 -29.5059 31.6257 +95.1623 -30.2715 32.4464 +94.5909 -30.7782 32.9894 +94.9127 -31.5793 33.8481 +95.1315 -32.3562 34.6808 +94.6249 -32.8903 35.2533 +95.1763 -33.7989 36.2271 +95.6232 -34.6845 37.1763 +94.2971 -34.9269 37.4361 +94.1091 -35.5861 38.1427 +92.4318 -35.6747 38.2377 +90.6729 -35.712 38.2776 +88.7478 -35.6618 38.2239 +88.1168 -36.1185 38.7134 +86.1167 -36.0001 38.5865 +84.2112 -35.8968 38.4758 +83.2427 -36.1769 38.7759 +81.5188 -36.1137 38.7082 +79.9697 -36.1082 38.7023 +78.0124 -35.8962 38.4751 +77.0558 -36.1274 38.7229 +75.1162 -35.8805 38.4582 +74.1659 -36.0885 38.6813 +72.5688 -35.9673 38.5513 +71.0609 -35.8704 38.4475 +69.3216 -35.6352 38.1954 +68.7837 -36.005 38.5918 +67.5325 -35.9932 38.579 +66.4434 -36.0541 38.6443 +64.5808 -35.6755 38.2385 +64.122 -36.0586 38.6492 +62.2794 -35.6496 38.2108 +61.745 -35.9747 38.5593 +60.6787 -35.9829 38.568 +59.4671 -35.8907 38.4692 +58.3369 -35.8326 38.4069 +57.8763 -36.1784 38.7776 +55.8754 -35.5446 38.0983 +55.4186 -35.8759 38.4533 +54.3102 -35.7779 38.3483 +53.2085 -35.6695 38.2322 +52.1845 -35.5991 38.1566 +51.7972 -35.957 38.5403 +50.7101 -35.8223 38.3959 +49.6304 -35.6775 38.2407 +49.1721 -35.9716 38.5559 +48.1696 -35.8606 38.437 +47.1068 -35.6897 38.2538 +46.1184 -35.56 38.1148 +45.6617 -35.8333 38.4076 +44.5521 -35.5849 38.1415 +43.8381 -35.6398 38.2003 +43.0625 -35.6362 38.1965 +42.4162 -35.7322 38.2993 +41.4595 -35.5562 38.1107 +40.6952 -35.5329 38.0857 +40.2391 -35.7738 38.344 +39.6596 -35.903 38.4824 +38.6635 -35.6442 38.205 +38.0885 -35.7627 38.332 +37.6296 -35.988 38.5736 +36.5368 -35.596 38.1533 +36.0234 -35.7559 38.3247 +35.5087 -35.9125 38.4925 +34.5513 -35.6105 38.1689 +34.0944 -35.8148 38.3879 +33.5275 -35.9013 38.4806 +33.067 -36.0996 38.6931 +32.0814 -35.7134 38.2792 +31.6233 -35.903 38.4824 +31.1121 -36.0312 38.6198 +30.3 -35.8014 38.3735 +29.8901 -36.0398 38.629 +28.9916 -35.6794 38.2428 +28.5341 -35.8507 38.4263 +28.1213 -36.0794 38.6715 +27.2432 -35.7008 38.2656 +26.8762 -35.9832 38.5684 +26.3703 -36.0808 38.6729 +25.557 -35.7459 38.314 +25.0988 -35.8966 38.4756 +24.2583 -35.4883 38.0379 +23.8863 -35.7555 38.3243 +23.3467 -35.7717 38.3416 +22.8882 -35.9093 38.4891 +22.1545 -35.6046 38.1626 +21.6982 -35.7352 38.3025 +21.2402 -35.8629 38.4395 +20.7806 -35.988 38.5736 +20.0328 -35.6008 38.1585 +19.5766 -35.7188 38.285 +19.0847 -35.7698 38.3396 +18.6264 -35.8821 38.46 +18.1667 -35.9916 38.5774 +17.3883 -35.4514 37.9984 +17.1813 -36.0726 38.6642 +16.6892 -36.1085 38.7027 +16.022 -35.7498 38.3182 +15.6208 -35.9747 38.5592 +14.912 -35.4761 38.0249 +14.511 -35.695 38.2594 +14.0539 -35.78 38.3506 +13.6207 -35.9284 38.5096 +12.967 -35.4786 38.0275 +12.536 -35.6208 38.1799 +12.1923 -36.0264 38.6146 +11.6877 -35.9644 38.5482 +10.9777 -35.2319 37.763 +10.8057 -36.2317 38.8347 +10.2083 -35.826 38.3998 +9.76782 -35.9524 38.5354 +9.29018 -35.942 38.5242 +8.84655 -36.0632 38.6541 +8.25974 -35.5755 38.1313 +7.93737 -36.2306 38.8335 +7.36226 -35.736 38.3034 +6.89178 -35.7108 38.2764 +6.4347 -35.7504 38.3189 +5.97713 -35.7874 38.3585 +5.50865 -35.7538 38.3225 +5.04149 -35.7173 38.2833 +4.59311 -35.814 38.387 +4.12695 -35.7719 38.3419 +3.66919 -35.7951 38.3668 +3.21115 -35.8156 38.3887 +2.711 -35.2883 37.8236 +2.26385 -35.3713 37.9125 +1.81128 -35.3834 37.9255 +1.35858 -35.3928 37.9356 +0.90578 -35.3996 37.9428 +0.455525 -35.6083 38.1665 +7.10543e-15 -35.5414 38.0948 +-0.454652 -35.5401 38.0934 +-0.902289 -35.2632 37.7966 +-1.37953 -35.9384 38.5203 +-1.84269 -35.997 38.5831 +-2.30747 -36.0529 38.643 +-2.72147 -35.4246 37.9696 +-3.21726 -35.8837 38.4617 +-3.66919 -35.7951 38.3668 +-4.12695 -35.7719 38.3419 +-4.65412 -36.2896 38.8968 +-5.09899 -36.1248 38.7201 +-5.56091 -36.093 38.6861 +-5.93185 -35.5163 38.0679 +-6.49564 -36.089 38.6818 +-6.83957 -35.4403 37.9864 +-7.41793 -36.0062 38.593 +-7.87824 -35.9606 38.5442 +-8.30667 -35.7777 38.3481 +-8.86306 -36.1305 38.7262 +-9.32491 -36.0764 38.6682 +-9.71315 -35.7512 38.3197 +-10.151 -35.6251 38.1845 +-10.6064 -35.5633 38.1182 +-11.0817 -35.5655 38.1207 +-11.5579 -35.5648 38.1199 +-11.9674 -35.3617 37.9022 +-12.6294 -35.8861 38.4642 +-13.0638 -35.7433 38.3113 +-13.5205 -35.6642 38.2265 +-14.2092 -36.1754 38.7743 +-14.4576 -35.5635 38.1185 +-15.1876 -36.1318 38.7277 +-15.6208 -35.9747 38.5592 +-16.1097 -35.9455 38.528 +-16.629 -35.9784 38.5632 +-17.1195 -35.9429 38.5251 +-17.5469 -35.7749 38.3451 +-18.1016 -35.8626 38.4391 +-18.8601 -36.3322 38.9424 +-19.3583 -36.2827 38.8894 +-19.7517 -36.0383 38.6274 +-20.1761 -35.8556 38.4316 +-21.0372 -36.4323 39.0498 +-21.4275 -36.1792 38.7784 +-21.966 -36.1763 38.7754 +-22.3889 -35.9814 38.5664 +-23.1673 -36.3472 38.9585 +-24.0381 -36.8311 39.4772 +-24.5084 -36.6866 39.3223 +-24.7232 -36.1683 38.7668 +-25.5724 -36.574 39.2016 +-26.0392 -36.4203 39.0369 +-26.9503 -36.8744 39.5236 +-26.8762 -35.9832 38.5684 +-27.7973 -36.427 39.044 +-28.3091 -36.3203 38.9296 +-29.059 -36.5101 39.1331 +-29.5734 -36.3954 39.0101 +-30.3825 -36.6335 39.2654 +-30.85 -36.4513 39.0701 +-31.7719 -36.7953 39.4388 +-31.8294 -36.1369 38.7331 +-32.8129 -36.5277 39.152 +-33.2789 -36.331 38.9411 +-34.4946 -36.937 39.5906 +-35.4015 -37.1879 39.8596 +-35.6551 -36.7482 39.3883 +-35.7324 -36.1387 38.735 +-37.2129 -36.9365 39.5902 +-37.6266 -36.6577 39.2914 +-38.5587 -36.8766 39.526 +-39.0289 -36.6457 39.2784 +-40.21 -37.07 39.7332 +-40.5623 -36.7202 39.3583 +-40.9696 -36.4233 39.0401 +-41.434 -36.178 38.7771 +-43.0158 -36.8909 39.5413 +-43.6119 -36.7395 39.379 +-44.5891 -36.8996 39.5506 +-45.0594 -36.6327 39.2645 +-46.0459 -36.7781 39.4203 +-46.5802 -36.554 39.1802 +-47.6424 -36.7352 39.3743 +-48.0436 -36.3995 39.0145 +-49.7234 -37.0174 39.6768 +-50.1951 -36.72 39.358 +-51.2824 -36.8651 39.5136 +-51.8215 -36.6075 39.2375 +-53.5495 -37.1734 39.8441 +-54.023 -36.8533 39.5009 +-55.2769 -37.0562 39.7184 +-56.3962 -37.1522 39.8213 +-57.5947 -37.2847 39.9633 +-58.0695 -36.9404 39.5943 +-59.7932 -37.3768 40.062 +-60.6406 -37.2476 39.9236 +-61.714 -37.2468 39.9227 +-62.7164 -37.1913 39.8632 +-64.4824 -37.5697 40.2688 +-65.65 -37.579 40.2788 +-66.7455 -37.5339 40.2305 +-68.0003 -37.5644 40.2632 +-69.8869 -37.9226 40.6471 +-70.921 -37.7991 40.5147 +-72.9885 -38.2061 40.9509 +-73.9536 -38.0164 40.7477 +-75.6429 -38.1834 40.9266 +-76.4521 -37.892 40.6143 +-78.3993 -38.1485 40.8892 +-79.6216 -38.0325 40.7648 +-81.5885 -38.2525 41.0007 +-82.0747 -37.7654 40.4786 +-84.973 -38.3673 41.1237 +-85.9637 -38.0829 40.8189 +-87.8814 -38.1928 40.9367 +-89.2995 -38.0658 40.8006 +-92.682 -38.7447 41.5282 +-93.4312 -38.2969 41.0483 +-96.6748 -38.8471 41.638 +-98.2073 -38.6794 41.4583 +-100.7 -38.8659 41.6582 +-102.68 -38.8272 41.6167 +-105.107 -38.9306 41.7275 +-106.925 -38.7838 41.5702 +-110.167 -39.1223 41.933 +-112.178 -38.9915 41.7927 +-114.104 -38.8092 41.5974 +-117.023 -38.9359 41.7332 +-121.217 -39.4418 42.2755 +-123.439 -39.2665 42.0876 +-97.6388 -30.3546 32.5353 +-97.2926 -29.5502 31.6732 +-98.1254 -29.1059 31.197 +-97.6656 -28.2807 30.3125 +-96.6378 -27.3067 29.2685 +-65.6446 -18.0928 19.3926 +-51.5451 -13.8511 14.8462 +-45.7454 -11.979 12.8396 +-39.7149 -10.1295 10.8573 +-37.8696 -9.40272 10.0782 +-34.7835 -8.40272 9.0064 +-15.8847 -3.73119 3.99926 +-15.5525 -3.54991 3.80495 +-15.8826 -3.52043 3.77335 +-15.0687 -3.24113 3.47398 +-16.0659 -3.35074 3.59147 +-16.1082 -3.25498 3.48883 +-14.4189 -2.8205 3.02314 +-13.9726 -2.64341 2.83332 +-13.2332 -2.41888 2.59266 +-3171.94 -559.603 599.807 +-12.4198 -2.11243 2.26419 +-11.2795 -1.84731 1.98003 +-13.2514 -2.087 2.23694 +-13.8634 -2.09663 2.24726 +-13.0094 -1.88638 2.0219 +-14.1109 -1.95846 2.09916 +-13.4483 -1.78327 1.91138 +-13.1756 -1.66585 1.78553 +-13.2949 -1.59919 1.71409 +-14.6957 -1.67762 1.79814 +-13.4326 -1.45134 1.55561 +-14.6374 -1.49232 1.59953 +-14.0618 -1.34816 1.44502 +-13.1862 -1.18426 1.26934 +-13.6971 -1.14729 1.22971 +-13.7113 -1.0657 1.14226 +-12.4315 -0.891339 0.955376 +-12.7411 -0.836915 0.897042 +-11.6555 -0.69563 0.745606 +-12.3618 -0.663685 0.711367 +-11.9708 -0.571035 0.612061 +-12.1772 -0.50808 0.544582 +-11.7838 -0.421288 0.451555 +-11.2892 -0.336244 0.360401 +-10.7934 -0.257123 0.275595 +-10.7963 -0.192859 0.206715 +-11.4982 -0.136915 0.146751 +-10.9996 -0.0654835 0.070188 +11.8 3.55271e-15 -1.7053e-13 +10.1996 -0.0601313 0.0656287 +10.7984 -0.127332 0.138973 +11.0962 -0.196291 0.214237 +13.192 -0.311208 0.33966 +11.4891 -0.338872 0.369853 +13.5814 -0.480837 0.524796 +12.9758 -0.536139 0.585154 +17.5571 -0.829381 0.905206 +13.3587 -0.710241 0.775174 +22.6136 -1.33654 1.45873 +14.3337 -0.932383 1.01762 +19.9899 -1.41935 1.54911 +15.7978 -1.21595 1.32711 +21.9353 -1.81947 1.98581 +31.1314 -2.76876 3.02189 +33.7681 -3.20603 3.49914 +38.2749 -3.8643 4.21759 +47.7053 -5.10432 5.57097 +49.3143 -5.57491 6.08458 +58.5961 -6.97987 7.61799 +90.7544 -11.363 12.4018 +93.4509 -12.2714 13.3933 +94.1708 -12.9431 14.1264 +95.1738 -13.6663 14.9157 +94.9936 -14.2268 15.5275 +95.0985 -14.8319 16.1878 +94.8061 -15.3762 16.7819 +94.7979 -15.9672 17.427 +95.3625 -16.6607 18.1839 +95.3369 -17.2572 18.8349 +94.9176 -17.7825 19.4083 +95.7417 -18.5463 20.2418 +95.3067 -19.0716 20.8151 +95.248 -19.6722 21.4707 +95.6578 -20.3752 22.2379 +95.5812 -20.9801 22.8981 +95.9704 -21.6928 23.676 +95.781 -22.2798 24.3166 +96.1494 -23.0014 25.1042 +95.9426 -23.5905 25.7472 +96.2899 -24.3207 26.5442 +96.0654 -24.9117 27.1892 +96.6704 -25.7247 28.0765 +96.4271 -26.3189 28.725 +96.7302 -27.0673 29.5419 +96.653 -27.7157 30.2496 +96.1079 -28.2306 30.8115 +96.7445 -29.0983 31.7586 +94.909 -29.2193 31.8906 +95.7061 -30.1489 32.9052 +94.5909 -30.4793 33.2658 +95.1823 -31.3615 34.2286 +95.1315 -32.042 34.9713 +95.5159 -32.8776 35.8834 +95.1763 -33.4706 36.5306 +94.652 -33.9988 37.107 +94.2971 -34.5876 37.7497 +94.7213 -35.4698 38.7125 +92.4318 -35.3282 38.5581 +94.2236 -36.75 40.1098 +88.7478 -35.3155 38.5441 +93.2598 -37.8553 41.3161 +86.1167 -35.6505 38.9098 +89.8083 -37.9109 41.3769 +83.2427 -35.8255 39.1008 +86.2992 -37.8602 41.3215 +79.9697 -35.7575 39.0266 +83.0696 -37.8519 41.3124 +77.0558 -35.7765 39.0473 +80.6046 -38.1281 41.6139 +74.1659 -35.738 39.0053 +77.6656 -38.1196 41.6046 +71.0609 -35.5221 38.7696 +74.5127 -37.9318 41.3996 +68.7837 -35.6553 38.9151 +71.8666 -37.9311 41.3989 +66.4434 -35.7039 38.9681 +69.0106 -37.7523 41.2038 +64.122 -35.7084 38.9729 +66.5693 -37.7351 41.185 +61.745 -35.6254 38.8823 +64.1503 -37.6721 41.1162 +59.4671 -35.5421 38.7915 +61.8296 -37.6091 41.0475 +57.8763 -35.8271 39.1025 +60.1904 -37.9177 41.3843 +55.4186 -35.5275 38.7755 +58.5543 -38.1992 41.6915 +53.2085 -35.3231 38.5525 +55.72 -37.6417 41.0831 +51.7972 -35.6078 38.8632 +54.1139 -37.8556 41.3165 +49.6304 -35.331 38.5611 +51.6955 -37.4503 40.8741 +48.1696 -35.5123 38.759 +50.1179 -37.6022 41.0399 +46.1184 -35.2147 38.4341 +48.0235 -37.3206 40.7326 +44.5521 -35.2393 38.461 +46.5378 -37.4672 40.8925 +43.0625 -35.2901 38.5165 +44.9335 -37.4851 40.9122 +41.4595 -35.2109 38.43 +43.5888 -37.6898 41.1356 +40.2391 -35.4264 38.6652 +41.7058 -37.3887 40.8069 +38.6635 -35.298 38.5251 +40.3221 -37.4922 40.9198 +37.6296 -35.6385 38.8967 +38.7164 -37.3531 40.7681 +36.0234 -35.4086 38.6458 +37.6337 -37.6919 41.1378 +34.5513 -35.2647 38.4887 +36.1096 -37.5633 40.9975 +33.5275 -35.5527 38.803 +35.0807 -37.926 41.3933 +32.0814 -35.3665 38.5999 +33.5805 -37.7548 41.2064 +31.1121 -35.6812 38.9433 +32.25 -37.7354 41.1853 +29.8901 -35.6898 38.9527 +30.7854 -37.5191 40.9492 +28.5341 -35.5025 38.7482 +29.8584 -37.9359 41.4042 +27.2432 -35.354 38.5862 +28.5106 -37.8006 41.2565 +26.3703 -35.7303 38.9969 +27.0913 -37.5239 40.9544 +25.0988 -35.548 38.7979 +26.1601 -37.8988 41.3636 +23.8863 -35.4082 38.6454 +24.8923 -37.7694 41.2224 +22.8882 -35.5605 38.8116 +23.9127 -38.0571 41.5364 +21.6982 -35.3881 38.6234 +22.6637 -37.8948 41.3593 +20.7806 -35.6385 38.8967 +21.3587 -37.5886 41.0251 +19.5766 -35.3719 38.6057 +20.316 -37.7077 41.1551 +18.6264 -35.5336 38.7822 +19.3713 -38.0055 41.48 +17.3883 -35.1071 38.3167 +18.1084 -37.6498 41.0918 +16.6892 -35.7578 39.0269 +17.3084 -38.2451 41.7416 +15.6208 -35.6253 38.8823 +15.9318 -37.5343 40.9658 +14.511 -35.3483 38.58 +14.9597 -37.7164 41.1645 +13.6207 -35.5794 38.8322 +13.8379 -37.4937 40.9215 +12.536 -35.2748 38.4997 +12.8222 -37.5195 40.9497 +11.6877 -35.6151 38.8711 +11.9341 -37.9293 41.3969 +10.8057 -35.8798 39.1601 +10.8952 -37.8653 41.327 +9.76782 -35.6033 38.8582 +9.81112 -37.5888 41.0253 +8.84655 -35.713 38.978 +8.83855 -37.6988 41.1453 +7.93737 -35.8787 39.1588 +7.77978 -37.3958 40.8147 +6.89178 -35.364 38.5971 +6.88562 -37.8842 41.3477 +5.97713 -35.4398 38.6799 +5.92676 -38.094 41.5766 +5.04149 -35.3704 38.6041 +4.84586 -37.4177 40.8386 +4.12695 -35.4245 38.6631 +3.92729 -37.9409 41.4096 +3.21115 -35.4677 38.7103 +2.90988 -37.5092 40.9384 +2.26385 -35.0278 38.2301 +1.94041 -37.5378 40.9696 +1.35858 -35.0491 38.2534 +0.958137 -37.0821 40.4723 +0.455525 -35.2624 38.4862 +7.99361e-15 -37.2229 40.6259 +-0.454652 -35.1949 38.4125 +-0.986061 -38.1629 41.6518 +-1.37953 -35.5893 38.843 +-1.9439 -37.6053 41.0433 +-2.30747 -35.7027 38.9668 +-2.92035 -37.6441 41.0856 +-3.21726 -35.5352 38.7839 +-3.92729 -37.9409 41.4096 +-4.12695 -35.4245 38.6631 +-4.88944 -37.7542 41.2058 +-5.09899 -35.7739 39.0445 +-5.85359 -37.6236 41.0633 +-5.93185 -35.1714 38.3869 +-6.86124 -37.75 41.2013 +-6.83957 -35.0961 38.3046 +-7.84936 -37.7303 41.1797 +-7.87824 -35.6114 38.8671 +-8.85419 -37.7655 41.2181 +-8.86306 -35.7796 39.0507 +-9.91531 -37.988 41.4609 +-9.71315 -35.404 38.6407 +-10.8761 -37.7989 41.2546 +-10.6064 -35.2179 38.4376 +-11.6846 -37.1364 40.5315 +-11.5579 -35.2193 38.4392 +-12.6198 -36.9271 40.3031 +-12.6294 -35.5375 38.7865 +-13.7412 -37.2315 40.6354 +-13.5205 -35.3178 38.5467 +-14.9597 -37.7164 41.1645 +-14.4576 -35.2181 38.4379 +-16.1799 -38.1187 41.6037 +-15.6208 -35.6253 38.8823 +-17.2207 -38.0514 41.5302 +-16.629 -35.6289 38.8862 +-18.232 -37.9068 41.3723 +-17.5469 -35.4275 38.6664 +-19.5666 -38.3887 41.8983 +-18.8601 -35.9793 39.2687 +-20.3844 -37.8347 41.2937 +-19.7517 -35.6882 38.951 +-21.8963 -38.5347 42.0576 +-21.0372 -36.0785 39.3769 +-22.7761 -38.0827 41.5644 +-21.966 -35.825 39.1002 +-24.1081 -38.368 41.8757 +-23.1673 -35.9942 39.2849 +-25.1363 -38.1397 41.6265 +-24.5084 -36.3303 39.6517 +-26.6672 -38.6334 42.1654 +-25.5724 -36.2188 39.53 +-27.5735 -38.1917 41.6833 +-26.9503 -36.5163 39.8547 +-29.01 -38.4627 41.9791 +-27.7973 -36.0732 39.3711 +-30.3748 -38.592 42.1202 +-29.059 -36.1555 39.461 +-31.8035 -38.7598 42.3034 +-30.3825 -36.2777 39.5944 +-32.8 -38.379 41.8877 +-31.7719 -36.4379 39.7692 +-34.5591 -38.855 42.4072 +-32.8129 -36.173 39.48 +-35.4516 -38.327 41.831 +-34.4946 -36.5782 39.9223 +-36.8721 -38.3565 41.8631 +-35.6551 -36.3913 39.7183 +-38.808 -38.868 42.4214 +-37.2129 -36.5778 39.9219 +-40.2651 -38.8473 42.3988 +-38.5587 -36.5185 39.8571 +-41.7328 -38.8038 42.3514 +-40.21 -36.7099 40.0661 +-43.3909 -38.8993 42.4556 +-40.9696 -36.0695 39.3671 +-44.8817 -38.8077 42.3557 +-43.0158 -36.5326 39.8725 +-46.4438 -38.7452 42.2874 +-44.5891 -36.5412 39.8819 +-48.1448 -38.7609 42.3046 +-46.0459 -36.4209 39.7506 +-49.5981 -38.5443 42.0681 +-47.6424 -36.3784 39.7042 +-51.9914 -39.008 42.5742 +-49.7234 -36.6579 40.0092 +-54.1507 -39.2289 42.8154 +-51.2824 -36.5071 39.8447 +-55.8505 -39.0705 42.6424 +-53.5495 -36.8124 40.1779 +-58.1242 -39.2659 42.8557 +-55.2769 -36.6963 40.0512 +-59.7052 -38.95 42.5109 +-57.5947 -36.9225 40.2981 +-61.6531 -38.8392 42.3899 +-59.7932 -37.0137 40.3977 +-64.9509 -39.5076 43.1195 +-61.714 -36.8851 40.2572 +-67.0937 -39.4006 43.0027 +-64.4824 -37.2048 40.6062 +-70.5527 -39.9931 43.6494 +-66.7455 -37.1694 40.5675 +-73.4403 -40.1756 43.8486 +-69.8869 -37.5543 40.9877 +-75.8854 -40.0522 43.7139 +-72.9885 -37.835 41.294 +-79.5441 -40.4931 44.1951 +-75.6429 -37.8125 41.2695 +-81.8725 -40.1844 43.8582 +-78.3993 -37.778 41.2318 +-84.2907 -39.8717 43.5169 +-81.5885 -37.881 41.3442 +-88.3754 -40.2696 43.9512 +-84.973 -37.9946 41.4682 +-92.4215 -40.5461 44.2529 +-87.8814 -37.8218 41.2796 +-95.999 -40.5242 44.2291 +-92.682 -38.3684 41.8761 +-100.46 -40.778 44.506 +-96.6748 -38.4698 41.9869 +-104.962 -40.9384 44.6811 +-100.7 -38.4885 42.0072 +-109.24 -40.9065 44.6463 +-105.107 -38.5525 42.0771 +-114.077 -40.9761 44.7222 +-110.167 -38.7423 42.2843 +-119.662 -41.189 44.9546 +-114.104 -38.4323 41.9459 +-123.764 -40.7788 44.5069 +-121.217 -39.0588 42.6297 +-98.6063 -31.0625 33.9023 +-97.6388 -30.0598 32.8079 +-98.0234 -29.483 32.1784 +-98.1254 -28.8232 31.4583 +-96.9292 -27.7949 30.336 +-96.6378 -27.0415 29.5137 +-83.0757 -22.6748 24.7478 +-51.5451 -13.7165 14.9705 +-47.2392 -12.25 13.37 +-39.7149 -10.0311 10.9482 +-38.8093 -9.54244 10.4148 +-34.7835 -8.32111 9.08185 +-16.7357 -3.89291 4.24881 +-15.5525 -3.51544 3.83683 +-15.6924 -3.44449 3.7594 +-15.0687 -3.20965 3.50308 +-15.8747 -3.2787 3.57845 +-16.1082 -3.22337 3.51806 +-15.3802 -2.97932 3.2517 +-13.9726 -2.61774 2.85706 +-14.8753 -2.69262 2.93879 +-3171.94 -554.169 604.832 +-13.6812 -2.30437 2.51505 +-11.2795 -1.82937 1.99662 +-3192.33 -497.886 543.405 +-13.8634 -2.07627 2.26609 +-12.8137 -1.83996 2.00817 +-14.1109 -1.93944 2.11675 +-13.4483 -1.76595 1.92739 +-13.1756 -1.64967 1.80049 +-13.1964 -1.57193 1.71565 +-14.6957 -1.66132 1.81321 +-14.7166 -1.57462 1.71858 +-14.6374 -1.47782 1.61293 +-14.5569 -1.38207 1.50842 +-13.1862 -1.17276 1.27997 +-14.4912 -1.202 1.31189 +-13.7113 -1.05535 1.15183 +-13.6249 -0.967417 1.05586 +-12.7411 -0.828787 0.904557 +-13.6479 -0.806629 0.880373 +-12.3618 -0.657239 0.717326 +-13.1678 -0.622038 0.678906 +-12.1772 -0.503145 0.549145 +-11.2845 -0.399519 0.436044 +-11.2892 -0.332979 0.363421 +-11.1932 -0.264056 0.288196 +-10.7963 -0.190986 0.208446 +-11.5982 -0.136764 0.149267 +-10.9996 -0.0648475 0.070776 +10.5 -3.55271e-15 -1.7053e-13 +11.2996 -0.0659573 0.0733045 +11.5982 -0.135412 0.150495 +12.5957 -0.220614 0.245188 +11.7928 -0.275451 0.306134 +13.0875 -0.382202 0.424777 +17.2763 -0.605604 0.673064 +27.1493 -1.11067 1.23439 +31.124 -1.45573 1.61789 +29.11 -1.53239 1.70309 +31.679 -1.85381 2.06031 +23.2923 -1.50014 1.66724 +21.3822 -1.50319 1.67064 +19.7721 -1.50679 1.67464 +21.9353 -1.80148 2.00215 +24.9844 -2.20009 2.44516 +34.8574 -3.27673 3.64173 +41.4398 -4.14246 4.6039 +48.1004 -5.0957 5.66332 +54.2457 -6.07176 6.74811 +59.5809 -7.02696 7.80971 +76.4972 -9.48319 10.5395 +94.4325 -12.2777 13.6453 +95.2487 -12.9618 14.4056 +95.0759 -13.5172 15.0229 +95.0912 -14.1006 15.6713 +95.0985 -14.6852 16.321 +95.0005 -15.2553 16.9547 +94.7979 -15.8093 17.5703 +95.5562 -16.5295 18.3707 +95.5301 -17.1212 19.0284 +95.1103 -17.6424 19.6076 +95.7417 -18.3629 20.4083 +95.4984 -18.921 21.0286 +95.248 -19.4777 21.6473 +95.8486 -20.2139 22.4656 +95.5812 -20.7726 23.0865 +96.16 -21.5207 23.918 +95.781 -22.0594 24.5167 +96.1494 -22.7739 25.3108 +95.9426 -23.3572 25.959 +96.4772 -24.1271 26.8147 +96.1588 -24.6893 27.4395 +96.8565 -25.5193 28.362 +96.5198 -26.0836 28.9892 +96.1759 -26.646 29.6142 +96.653 -27.4416 30.4984 +96.383 -28.0314 31.1539 +96.8358 -28.8378 32.0501 +97.2749 -29.6515 32.9545 +96.3405 -30.0486 33.3958 +94.952 -30.293 33.6675 +95.4519 -31.1393 34.608 +94.5051 -31.5162 35.0269 +95.0704 -32.4007 36.0098 +95.0876 -33.1088 36.7969 +94.5637 -33.6311 37.3774 +94.9122 -34.469 38.3086 +95.3335 -35.346 39.2832 +95.1299 -35.9999 40.01 +95.003 -36.6876 40.7743 +93.6591 -36.9012 41.0117 +93.8598 -37.7221 41.9241 +91.3178 -37.4298 41.5992 +90.4019 -37.7841 41.993 +88.1344 -37.5556 41.7391 +86.9701 -37.7772 41.9853 +85.0564 -37.6558 41.8504 +83.8986 -37.8516 42.068 +82.2478 -37.8095 42.0212 +81.0141 -37.9429 42.1694 +79.6205 -37.987 42.2185 +78.6365 -38.2144 42.4712 +76.6879 -37.9558 42.1838 +75.2315 -37.919 42.1429 +74.0199 -37.9901 42.222 +73.0486 -38.1737 42.4259 +70.2 -37.3495 41.51 +69.6323 -37.7157 41.9169 +68.1345 -37.5676 41.7524 +67.1821 -37.7059 41.9061 +66.0793 -37.7491 41.954 +64.1503 -37.2996 41.4545 +63.7361 -37.717 41.9184 +62.4985 -37.64 41.8328 +61.2677 -37.5514 41.7344 +60.8486 -37.9533 42.181 +59.118 -37.5243 41.7042 +58.5543 -37.8215 42.0345 +57.488 -37.7867 41.9959 +56.2857 -37.6479 41.8416 +55.2317 -37.5933 41.7809 +54.0444 -37.4331 41.6029 +52.728 -37.165 41.3049 +52.3093 -37.5202 41.6997 +51.2097 -37.3803 41.5441 +50.1848 -37.2801 41.4329 +49.1001 -37.1207 41.2557 +48.6796 -37.4565 41.6288 +47.5396 -37.2305 41.3777 +47.1806 -37.6091 41.7985 +46.0521 -37.3669 41.5293 +45.6257 -37.6863 41.8842 +44.074 -37.0613 41.1896 +43.712 -37.4225 41.5911 +42.9786 -37.4639 41.6371 +42.2474 -37.4997 41.6769 +41.3997 -37.4223 41.5908 +40.9099 -37.6625 41.8579 +40.2427 -37.7365 41.9401 +39.29 -37.5316 41.7124 +38.1758 -37.1532 41.2918 +38.137 -37.8182 42.0309 +37.0902 -37.4816 41.6568 +36.7087 -37.8089 42.0205 +35.623 -37.4012 41.5674 +35.0807 -37.551 41.7339 +34.5894 -37.7543 41.9598 +34.044 -37.8974 42.1189 +33.1423 -37.6336 41.8257 +32.3 -37.4201 41.5885 +31.7613 -37.549 41.7317 +31.3187 -37.7915 42.0012 +30.2519 -37.2675 41.4188 +29.8584 -37.5608 41.7448 +29.4134 -37.793 42.0028 +28.9646 -38.0228 42.2582 +27.9766 -37.532 41.7127 +27.5735 -37.814 42.0262 +26.6917 -37.4302 41.5997 +26.0755 -37.4027 41.5691 +25.6695 -37.6752 41.872 +24.8923 -37.3959 41.5615 +24.4433 -37.6011 41.7896 +23.6002 -37.1882 41.3307 +23.1141 -37.3245 41.4822 +22.6262 -37.4581 41.6306 +22.1367 -37.5887 41.7758 +21.6813 -37.7789 41.9872 +21.1525 -37.8414 42.0566 +20.3844 -37.4606 41.6334 +19.8949 -37.5781 41.764 +19.3387 -37.5663 41.751 +18.8796 -37.7413 41.9453 +18.3865 -37.85 42.0662 +17.5913 -37.3179 41.4749 +17.63 -38.5706 42.8671 +16.8705 -38.0948 42.3383 +16.1523 -37.6774 41.8744 +15.4731 -37.3191 41.4762 +15.0115 -37.4726 41.6468 +14.522 -37.5589 41.7426 +14.0557 -37.7071 41.9074 +13.3764 -37.2674 41.4187 +13.0472 -37.8002 42.0109 +12.4886 -37.6791 41.8762 +11.8925 -37.4233 41.592 +11.364 -37.3603 41.5219 +10.9143 -37.5565 41.74 +10.4421 -37.6845 41.8823 +9.81112 -37.2171 41.3628 +9.44072 -37.7347 41.9381 +8.97934 -37.9205 42.1446 +8.35123 -37.3761 41.5395 +7.89111 -37.5559 41.7394 +7.37473 -37.4679 41.6415 +6.8978 -37.5759 41.7616 +6.41862 -37.6812 41.8786 +5.92676 -37.7172 41.9187 +5.42487 -37.6838 41.8815 +4.9243 -37.6474 41.8411 +4.43294 -37.6747 41.8714 +3.92729 -37.5657 41.7503 +3.38819 -37.0531 41.1806 +2.95175 -37.6726 41.8691 +2.42524 -37.1539 41.2925 +1.94041 -37.1666 41.3066 +1.45544 -37.1765 41.3176 +0.973844 -37.3173 41.4742 +0.486068 -37.2547 41.4046 +8.88178e-15 -37.323 41.4805 +-0.486068 -37.2547 41.4046 +-0.986061 -37.7855 41.9945 +-1.45544 -37.1765 41.3176 +-1.97531 -37.835 42.0496 +-2.46886 -37.8221 42.0351 +-2.96222 -37.8062 42.0175 +-3.44314 -37.654 41.8483 +-3.93427 -37.6324 41.8244 +-4.34663 -36.9412 41.0562 +-4.89815 -37.4475 41.6189 +-5.45362 -37.8835 42.1035 +-5.94767 -37.8503 42.0665 +-6.4639 -37.9471 42.1741 +-6.87343 -37.4431 41.614 +-7.37473 -37.4679 41.6415 +-7.86328 -37.4234 41.5921 +-8.39557 -37.5746 41.7601 +-8.99498 -37.9866 42.218 +-9.3747 -37.4708 41.6448 +-9.88058 -37.4806 41.6557 +-10.3692 -37.4215 41.5899 +-10.6853 -36.7686 40.8643 +-11.344 -37.2947 41.4491 +-11.851 -37.2925 41.4466 +-12.3587 -37.2872 41.4407 +-12.8447 -37.2136 41.359 +-13.4931 -37.5926 41.7801 +-14.1766 -38.0315 42.268 +-14.472 -37.4293 41.5986 +-15.1927 -37.9249 42.1494 +-15.6869 -37.8348 42.0493 +-16.2075 -37.8061 42.0174 +-16.7285 -37.7742 41.9819 +-17.2207 -37.6751 41.8718 +-17.7416 -37.6369 41.8294 +-18.5101 -38.1045 42.349 +-19.0065 -37.995 42.2273 +-19.5341 -37.9458 42.1727 +-20.1286 -38.0195 42.2546 +-20.829 -38.2777 42.5415 +-21.3627 -38.2173 42.4744 +-21.8604 -38.0911 42.3342 +-22.3566 -37.9621 42.1908 +-23.1507 -38.3263 42.5956 +-23.6116 -38.1279 42.3751 +-24.2253 -38.1733 42.4256 +-24.6028 -37.8465 42.0623 +-25.5837 -38.4347 42.716 +-25.6695 -37.6752 41.872 +-26.5827 -38.1302 42.3776 +-27.0361 -37.9132 42.1365 +-28.1434 -38.5956 42.8949 +-28.4674 -38.1904 42.4445 +-28.9646 -38.0228 42.2582 +-30.0137 -38.5642 42.86 +-30.3279 -38.1513 42.4011 +-31.3016 -38.5607 42.8561 +-31.8035 -38.3765 42.6514 +-32.303 -38.1894 42.4434 +-33.2 -38.4628 42.7473 +-33.6498 -38.2099 42.4662 +-34.5591 -38.4707 42.7561 +-35.1119 -38.3246 42.5936 +-35.4516 -37.948 42.1751 +-36.3752 -38.1909 42.4451 +-37.2533 -38.3699 42.644 +-38.2492 -38.6529 42.9586 +-39.2553 -38.9272 43.2634 +-39.252 -38.2005 42.4558 +-40.3224 -38.5179 42.8085 +-41.1718 -38.6078 42.9084 +-41.7915 -38.4742 42.7599 +-42.7678 -38.6589 42.9653 +-43.2705 -38.4079 42.6862 +-44.3787 -38.6845 42.9937 +-44.8817 -38.424 42.7041 +-45.4436 -38.2129 42.4695 +-47.0102 -38.8298 43.1552 +-47.5787 -38.6056 42.9059 +-48.0162 -38.2751 42.5387 +-49.0983 -38.4512 42.7344 +-50.2541 -38.668 42.9753 +-50.7567 -38.3731 42.6476 +-51.9914 -38.6222 42.9245 +-53.1014 -38.7611 43.0788 +-54.2189 -38.8899 43.222 +-54.7242 -38.572 42.8686 +-56.5452 -39.1653 43.528 +-57.054 -38.8337 43.1595 +-58.1242 -38.8776 43.2083 +-59.1998 -38.9119 43.2464 +-60.4965 -39.076 43.4288 +-61.1491 -38.8135 43.137 +-62.3845 -38.9112 43.2457 +-63.7745 -39.0879 43.442 +-65.3967 -39.3855 43.7727 +-66.8069 -39.5341 43.9379 +-68.9805 -40.1081 44.5758 +-69.349 -39.617 44.0301 +-70.5527 -39.5976 44.0085 +-71.5296 -39.4397 43.8329 +-73.4403 -39.7783 44.2093 +-74.8956 -39.8478 44.2865 +-76.5946 -40.0268 44.4855 +-77.59 -39.8225 44.2584 +-79.3045 -39.9719 44.4244 +-80.5465 -39.8655 44.3062 +-82.8433 -40.2588 44.7433 +-83.7725 -39.9679 44.4201 +-85.8471 -40.2064 44.6851 +-86.6981 -39.8553 44.2949 +-89.0386 -40.1706 44.6453 +-89.9763 -39.834 44.2712 +-93.1763 -40.473 44.9814 +-95.1346 -40.5385 45.0542 +-96.6775 -40.407 44.9081 +-98.821 -40.5052 45.0172 +-101.231 -40.6848 45.2167 +-102.534 -40.3979 44.8979 +-105.828 -40.868 45.4204 +-106.793 -40.4135 44.9152 +-110.464 -40.956 45.5182 +-112.928 -41.0118 45.5802 +-115.313 -41.0105 45.5788 +-116.731 -40.6447 45.1722 +-120.464 -41.055 45.6282 +-123.859 -41.3053 45.9064 +-100.216 -32.6934 36.3351 +-98.2013 -31.3297 34.8195 +-98.5157 -30.727 34.1498 +-98.2758 -29.9567 33.2936 +-98.7543 -29.4091 32.685 +-98.3088 -28.5915 31.7764 +-97.0212 -27.5462 30.6146 +-94.6053 -26.2109 29.1306 +-93.0893 -25.1566 27.9588 +-66.5249 -17.5276 19.4801 +-48.5462 -12.4645 13.8529 +-40.9326 -10.2365 11.3767 +-38.5274 -9.37945 10.4242 +-33.7466 -7.99321 8.88359 +-17.7757 -4.09395 4.54998 +-17.2595 -3.86269 4.29297 +-16.8337 -3.65846 4.06598 +-16.8808 -3.56006 3.95662 +-16.5441 -3.38317 3.76003 +-16.3958 -3.24848 3.61034 +-15.9569 -3.06047 3.40139 +-16.0926 -2.98509 3.31761 +-14.6821 -2.63137 2.92449 +-14.4254 -2.49533 2.77329 +-12.2257 -2.03887 2.26598 +-13.5159 -2.17041 2.41218 +-3192.33 -492.963 547.875 +-13.4729 -1.99783 2.22037 +-11.8356 -1.6827 1.87014 +-12.837 -1.7469 1.9415 +-13.4483 -1.74848 1.94325 +-13.5689 -1.68211 1.86949 +-14.4767 -1.70738 1.89757 +-14.3998 -1.61178 1.79132 +-14.3215 -1.5172 1.68621 +-13.9451 -1.394 1.54928 +-15.0521 -1.41495 1.57256 +-14.4751 -1.27465 1.41664 +-13.8956 -1.14121 1.26833 +-13.91 -1.06005 1.17814 +-14.52 -1.02078 1.13448 +-13.7365 -0.884696 0.983244 +-14.6441 -0.856951 0.952409 +-13.6578 -0.718963 0.79905 +-12.9683 -0.606555 0.674121 +-11.2789 -0.461419 0.512818 +-12.383 -0.434075 0.482427 +-11.589 -0.338439 0.376138 +-11.7928 -0.275451 0.306134 +-10.4964 -0.183845 0.204323 +-10.4984 -0.122571 0.136224 +-10.4996 -0.0612877 0.0681147 +11.1 0 -1.7053e-13 +11.5996 -0.0670267 0.0758586 +11.6982 -0.135204 0.153019 +11.4961 -0.199326 0.225591 +13.092 -0.302717 0.342605 +14.1865 -0.410124 0.464164 +28.5608 -0.991092 1.12168 +33.0383 -1.33799 1.51429 +33.5182 -1.55193 1.75642 +32.7986 -1.70917 1.93438 +34.1695 -1.97942 2.24024 +29.5633 -1.88485 2.13321 +24.863 -1.7303 1.9583 +19.0766 -1.43915 1.62878 +20.5457 -1.67037 1.89047 +27.5622 -2.40265 2.71924 +34.0652 -3.17001 3.58771 +41.0442 -4.0616 4.59679 +48.3967 -5.07547 5.74424 +55.4293 -6.14176 6.95104 +61.3535 -7.16319 8.10705 +83.5767 -10.2565 11.6079 +94.2362 -12.1288 13.727 +95.1507 -12.818 14.507 +95.0759 -13.3811 15.1443 +95.1889 -13.973 15.8142 +95.0011 -14.5224 16.436 +95.0005 -15.1017 17.0916 +94.7979 -15.6501 17.7123 +94.7817 -16.2304 18.369 +95.3369 -16.9145 19.1433 +95.1103 -17.4648 19.766 +95.6455 -18.1597 20.5525 +95.4984 -18.7304 21.1985 +96.1086 -19.4558 22.0194 +95.8486 -20.0104 22.647 +96.342 -20.7271 23.4582 +96.16 -21.304 24.1112 +95.6865 -21.8157 24.6903 +96.2437 -22.5667 25.5403 +96.7883 -23.3258 26.3994 +96.7582 -23.9537 27.11 +97.0924 -24.678 27.9297 +96.8565 -25.2624 28.5911 +96.3344 -25.7714 29.1672 +96.0835 -26.3524 29.8248 +95.7325 -26.9066 30.4519 +96.2913 -27.7228 31.3757 +95.9223 -28.2781 32.0041 +96.9109 -29.2431 33.0964 +96.8843 -29.9139 33.8556 +95.4935 -30.159 34.133 +95.2722 -30.7677 34.8218 +95.579 -31.5534 35.711 +95.4268 -32.1947 36.4368 +95.265 -32.8365 37.1633 +94.4754 -33.2614 37.6442 +95.0001 -34.1536 38.6539 +94.4589 -34.6691 39.2373 +95.478 -35.7679 40.4809 +95.2628 -36.4175 41.2161 +94.3484 -36.7986 41.6474 +94.717 -37.6833 42.6487 +92.4262 -37.5026 42.4442 +91.0804 -37.6844 42.6499 +88.8935 -37.4977 42.4386 +87.6411 -37.6854 42.651 +85.5567 -37.4959 42.4366 +84.3131 -37.6556 42.6174 +82.9071 -37.7289 42.7002 +82.079 -38.0546 43.0689 +80.3532 -37.9506 42.9512 +79.1219 -38.0632 43.0786 +77.4114 -37.9281 42.9257 +76.1898 -38.0154 43.0245 +74.0199 -37.6076 42.563 +73.0486 -37.7893 42.7687 +70.2 -36.9734 41.8453 +70.3317 -37.711 42.68 +68.8289 -37.5684 42.5187 +68.3312 -37.9647 42.9672 +66.0032 -37.326 42.2443 +65.5088 -37.7059 42.6743 +63.6612 -37.2933 42.2073 +63.1673 -37.6597 42.622 +62.005 -37.6207 42.5778 +61.5068 -37.9776 42.9817 +59.6983 -37.5111 42.4538 +59.2017 -37.8546 42.8426 +58.0586 -37.7775 42.7553 +56.9928 -37.737 42.7095 +55.2317 -37.2148 42.1184 +55.2948 -37.9135 42.9092 +53.554 -37.3671 42.2908 +53.0595 -37.6751 42.6394 +51.8178 -37.4433 42.377 +51.2554 -37.692 42.6586 +49.6965 -37.1933 42.0941 +49.2044 -37.479 42.4175 +48.0592 -37.2584 42.1678 +47.6306 -37.5854 42.5379 +46.6245 -37.4505 42.3852 +45.5628 -37.2554 42.1644 +45.0078 -37.4654 42.4021 +44.1429 -37.411 42.3405 +43.4656 -37.507 42.4491 +42.9696 -37.7567 42.7318 +41.7566 -37.3649 42.2883 +41.2625 -37.6047 42.5597 +40.3008 -37.4104 42.3399 +39.7488 -37.5876 42.5404 +39.252 -37.8159 42.7987 +38.6961 -37.9864 42.9917 +37.2006 -37.2146 42.1183 +37.0899 -37.8169 42.7999 +36.1065 -37.5272 42.472 +35.5576 -37.6782 42.6429 +34.5372 -37.3177 42.2349 +34.044 -37.5158 42.4592 +33.599 -37.7682 42.7448 +32.65 -37.4448 42.3788 +32.2537 -37.7473 42.7211 +31.2702 -37.3531 42.275 +30.7767 -37.5323 42.4778 +30.3279 -37.7672 42.7436 +29.3672 -37.3537 42.2756 +28.8738 -37.5219 42.4661 +27.932 -37.0948 41.9826 +27.4859 -37.3143 42.2311 +27.0361 -37.5315 42.4769 +26.4982 -37.6262 42.5841 +25.711 -37.3561 42.2784 +25.2583 -37.5638 42.5134 +24.7623 -37.7083 42.6769 +23.9127 -37.3014 42.2164 +23.4202 -37.4381 42.3712 +22.851 -37.4492 42.3838 +22.1367 -37.2102 42.1133 +22.0038 -37.9548 42.956 +21.1525 -37.4604 42.3964 +20.658 -37.5811 42.5331 +19.8615 -37.1374 42.0308 +19.6643 -37.8141 42.7968 +18.9114 -37.424 42.3552 +18.3865 -37.4689 42.406 +17.6514 -37.0685 41.9529 +17.6885 -38.3088 43.3566 +17.0977 -38.2191 43.2551 +16.3453 -37.7436 42.717 +15.7403 -37.5814 42.5334 +15.4256 -38.1187 43.1414 +14.7223 -37.6935 42.6602 +14.2492 -37.8414 42.8276 +13.5398 -37.3428 42.2634 +13.2271 -37.9358 42.9344 +12.6834 -37.8814 42.8729 +12.246 -38.1476 43.1742 +11.5235 -37.5031 42.4448 +11.0669 -37.6983 42.6657 +10.4603 -37.3702 42.2943 +9.96741 -37.4292 42.3611 +9.47373 -37.4854 42.4247 +8.97934 -37.5387 42.485 +8.36601 -37.0653 41.9492 +8.01637 -37.7679 42.7444 +7.40084 -37.2219 42.1265 +6.97093 -37.5919 42.5452 +6.39598 -37.1702 42.068 +5.99993 -37.7984 42.779 +5.50155 -37.8316 42.8165 +5.00274 -37.862 42.8509 +4.43294 -37.2954 42.2096 +3.99705 -37.848 42.8351 +3.43703 -37.2087 42.1116 +2.94651 -37.2272 42.1324 +2.42088 -36.7136 41.5512 +1.96484 -37.2556 42.1646 +1.479 -37.3979 42.3256 +0.986061 -37.405 42.3337 +0.486941 -36.9458 41.814 +4.44089e-15 -37.5431 42.49 +-0.494795 -37.5417 42.4884 +-0.984316 -37.3388 42.2588 +-1.479 -37.3979 42.3256 +-1.97182 -37.3879 42.3144 +-2.46886 -37.4412 42.3747 +-2.95698 -37.3595 42.2822 +-3.45535 -37.407 42.336 +-3.99007 -37.782 42.7603 +-4.41725 -37.1633 42.0602 +-4.97659 -37.6641 42.627 +-5.46321 -37.568 42.5182 +-5.94767 -37.4692 42.4063 +-6.45258 -37.4992 42.4403 +-6.97093 -37.5919 42.5452 +-7.47915 -37.6158 42.5723 +-8.07204 -38.0301 43.0412 +-8.49904 -37.6546 42.6162 +-8.99498 -37.6041 42.5591 +-9.52325 -37.6813 42.6464 +-10.0369 -37.6901 42.6563 +-10.3692 -37.0447 41.9259 +-11.0478 -37.6333 42.5921 +-11.5235 -37.5031 42.4448 +-12.0381 -37.4999 42.4411 +-12.3587 -36.9118 41.7755 +-13.0472 -37.4196 42.3503 +-13.6799 -37.7291 42.7005 +-14.2008 -37.7129 42.6822 +-14.6723 -37.5653 42.5151 +-15.3997 -38.0547 43.069 +-15.6869 -37.4538 42.3889 +-16.4831 -38.0618 43.0771 +-16.7285 -37.3938 42.3211 +-17.4254 -37.739 42.7117 +-17.7416 -37.2579 42.1673 +-18.4792 -37.6578 42.6198 +-19.0383 -37.6752 42.6395 +-19.5015 -37.5011 42.4425 +-20.0952 -37.5742 42.5253 +-20.8632 -37.9544 42.9556 +-21.3627 -37.8325 42.8175 +-22.1471 -38.2022 43.2359 +-22.6131 -38.0111 43.0197 +-23.4504 -38.4315 43.4955 +-23.6881 -37.8663 42.8558 +-24.4988 -38.2157 43.2512 +-25.0016 -38.0726 43.0893 +-25.9091 -38.5316 43.6087 +-26.0427 -37.8382 42.824 +-26.963 -38.2863 43.3311 +-27.4236 -38.0693 43.0856 +-27.9681 -37.9689 42.972 +-28.9582 -38.4577 43.5251 +-29.5094 -38.3479 43.4008 +-29.8751 -37.9997 43.0068 +-30.7973 -38.3519 43.4053 +-31.3016 -38.1724 43.2023 +-32.1429 -38.3955 43.4547 +-32.6969 -38.2659 43.3081 +-33.65 -38.5916 43.6767 +-34.1066 -38.3387 43.3904 +-35.0226 -38.5942 43.6796 +-35.4254 -38.2774 43.3211 +-36.1935 -38.3521 43.4056 +-37.2886 -38.7558 43.8625 +-37.7979 -38.5388 43.6169 +-38.2492 -38.2637 43.3056 +-39.2553 -38.5353 43.6129 +-39.8184 -38.3616 43.4164 +-40.7813 -38.5639 43.6454 +-41.2299 -38.2729 43.316 +-42.2618 -38.5153 43.5904 +-42.7678 -38.2697 43.3123 +-43.8723 -38.5499 43.6295 +-44.3178 -38.2424 43.2815 +-45.3743 -38.4545 43.5215 +-45.9416 -38.2427 43.2818 +-47.0732 -38.4903 43.562 +-47.515 -38.1658 43.1948 +-48.5947 -38.3463 43.399 +-49.7477 -38.5675 43.6494 +-50.9758 -38.8283 43.9445 +-51.4856 -38.5323 43.6095 +-53.2628 -39.1682 44.3293 +-53.7094 -38.8101 43.924 +-55.4465 -39.37 44.5577 +-56.0321 -39.0962 44.2477 +-57.1009 -39.1519 44.3108 +-58.2456 -39.2455 44.4168 +-58.7606 -38.9075 44.0342 +-60.4836 -39.3555 44.5412 +-61.2158 -39.1425 44.3001 +-61.8019 -38.8328 43.9497 +-63.9203 -39.4678 44.6683 +-64.438 -39.0969 44.2485 +-66.0656 -39.3876 44.5776 +-66.8069 -39.136 44.2928 +-69.5088 -40.0083 45.28 +-70.0334 -39.6052 44.8238 +-71.9316 -39.9651 45.2311 +-72.9185 -39.8006 45.045 +-74.1397 -39.7528 44.9909 +-75.3652 -39.6939 44.9242 +-77.7767 -40.2352 45.5369 +-78.304 -39.7843 45.0266 +-80.6622 -40.2468 45.55 +-80.868 -39.6217 44.8425 +-83.0051 -39.9313 45.1929 +-84.4238 -39.8731 45.127 +-86.011 -39.8775 45.132 +-87.8519 -39.9791 45.2469 +-89.8677 -40.1364 45.425 +-91.4773 -40.0907 45.3733 +-93.5118 -40.2097 45.508 +-95.8936 -40.4506 45.7806 +-98.7128 -40.8423 46.2239 +-99.2473 -40.2703 45.5766 +-102.774 -40.889 46.2768 +-104.085 -40.596 45.9451 +-106.608 -40.7545 46.1246 +-108.707 -40.7238 46.0899 +-111.252 -40.8325 46.2128 +-113.104 -40.662 46.0199 +-115.401 -40.6286 45.9821 +-118.061 -40.694 46.0561 +-122.157 -41.2128 46.6432 +-125.112 -41.3031 46.7454 +-97.7888 -31.5805 35.7417 +-98.111 -30.9857 35.0686 +-97.8812 -30.2218 34.204 +-98.3668 -29.6824 33.5936 +-97.9321 -28.8706 32.6748 +-97.4835 -28.066 31.7641 +-98.5861 -27.7086 31.3597 +-94.5129 -25.9216 29.3372 +-93.831 -25.1017 28.4093 +-78.062 -20.3604 23.0432 +-53.6809 -13.6441 15.4419 +-41.2136 -10.2029 11.5473 +-38.0576 -9.17178 10.3803 +-34.4064 -8.06747 9.13049 +-31.3912 -7.15696 8.10001 +-17.6388 -3.90784 4.42276 +-16.5484 -3.56024 4.02936 +-16.8808 -3.52421 3.98859 +-16.6397 -3.36847 3.81232 +-16.5876 -3.25339 3.68207 +-14.9957 -2.84715 3.2223 +-15.9963 -2.93734 3.32438 +-15.0684 -2.67343 3.0257 +-15.0063 -2.56968 2.90827 +-13.4871 -2.22657 2.51996 +-14.5855 -2.31859 2.6241 +-13.7386 -2.10017 2.3769 +-12.3013 -1.80574 2.04367 +-13.1072 -1.84472 2.0878 +-14.6009 -1.96693 2.2261 +-13.3501 -1.71824 1.94465 +-12.684 -1.55658 1.76168 +-13.1964 -1.54072 1.74373 +-13.5121 -1.49719 1.69447 +-14.0252 -1.47085 1.66466 +-14.4396 -1.4289 1.61718 +-14.5569 -1.35462 1.53312 +-14.4751 -1.26182 1.42809 +-14.4912 -1.17813 1.33337 +-13.6119 -1.02689 1.1622 +-13.7244 -0.955125 1.08098 +-14.2342 -0.907517 1.0271 +-14.3452 -0.831008 0.940506 +-13.7575 -0.716921 0.811387 +-13.6666 -0.63278 0.716159 +-11.778 -0.476985 0.539836 +-11.8837 -0.412377 0.466715 +-12.8877 -0.372577 0.421671 +-10.9933 -0.25419 0.287684 +-11.4961 -0.199326 0.225591 +-11.6982 -0.135204 0.153019 +-11.8995 -0.0687602 0.0778205 +11.7 -1.77636e-15 -1.7053e-13 +10.7996 -0.0617643 0.0711871 +11.1983 -0.128099 0.147642 +11.9959 -0.20586 0.237266 +14.5911 -0.333921 0.384864 +25.9753 -0.74323 0.856617 +35.4513 -1.21759 1.40335 +34.7351 -1.39228 1.60469 +36.7104 -1.6823 1.93896 +33.3967 -1.7225 1.98529 +34.4683 -1.97626 2.27776 +32.3504 -2.0414 2.35284 +27.3494 -1.88382 2.17121 +20.0702 -1.49858 1.72721 +21.6375 -1.74109 2.00672 +28.851 -2.48921 2.86897 +35.1545 -3.23784 3.73181 +41.4398 -4.0587 4.6779 +49.6807 -5.1567 5.94341 +56.5142 -6.19777 7.14331 +63.914 -7.38563 8.51239 +87.8047 -10.6649 12.2919 +94.4325 -12.0294 13.8646 +95.1507 -12.6866 14.6221 +95.2716 -13.2712 15.2958 +95.0912 -13.8155 15.9232 +95.196 -14.403 16.6004 +95.0005 -14.9469 17.2272 +94.8949 -15.5055 17.8711 +94.588 -16.0312 18.4769 +95.4335 -16.7581 19.3147 +95.1103 -17.2857 19.9228 +95.7417 -17.9916 20.7364 +95.4984 -18.5384 21.3666 +96.1086 -19.2563 22.1941 +95.7532 -19.7855 22.804 +95.5812 -20.3526 23.4576 +96.0652 -21.0648 24.2785 +95.781 -21.6134 24.9108 +96.338 -22.3572 25.7681 +96.0366 -22.9073 26.4021 +95.6342 -23.4327 27.0076 +96.1588 -24.1901 27.8806 +96.7634 -24.9793 28.7901 +96.5198 -25.5563 29.4551 +96.0835 -26.0822 30.0614 +96.653 -26.8868 30.9887 +96.2913 -27.4385 31.6246 +96.8358 -28.2547 32.5653 +96.3649 -28.7802 33.171 +96.9749 -29.6349 34.1561 +95.674 -29.9063 34.4688 +95.362 -30.481 35.1312 +95.4895 -31.2006 35.9606 +94.9813 -31.7158 36.5544 +94.9989 -32.4091 37.3534 +94.7403 -33.0127 38.0491 +94.8244 -33.7408 38.8883 +95.1586 -34.5678 39.8415 +94.8688 -35.1752 40.5416 +95.1762 -36.0113 41.5053 +94.7792 -36.5875 42.1693 +94.4598 -37.1957 42.8703 +93.7904 -37.666 43.4123 +92.4372 -37.8537 43.6286 +90.3272 -37.7118 43.4652 +89.2345 -37.9771 43.7709 +86.8075 -37.654 43.3986 +86.0541 -38.0391 43.8424 +83.4016 -37.5647 43.2956 +82.9801 -38.0778 43.887 +80.516 -37.6376 43.3796 +80.0927 -38.1351 43.953 +78.6172 -38.124 43.9402 +76.7489 -37.9016 43.6839 +74.7339 -37.5811 43.3145 +74.073 -37.9264 43.7125 +71.8434 -37.451 43.1646 +70.6426 -37.4893 43.2087 +69.2147 -37.3916 43.0961 +68.8674 -37.8703 43.6478 +66.6116 -37.2838 42.9718 +66.8673 -38.0932 43.9048 +65.0094 -37.6926 43.443 +63.8361 -37.6683 43.4149 +62.6686 -37.6335 43.3748 +62.2382 -38.0351 43.8378 +60.2786 -37.4874 43.2065 +60.5684 -38.3314 44.1793 +58.7005 -37.8036 43.5709 +57.6999 -37.8135 43.5823 +55.7924 -37.2072 42.8835 +55.3643 -37.572 43.304 +54.1735 -37.4118 43.1194 +53.8097 -37.816 43.5853 +51.8853 -37.1077 42.7688 +51.3223 -37.3543 43.0531 +50.1603 -37.1555 42.824 +49.8605 -37.5894 43.324 +48.6437 -37.3249 43.0192 +48.2733 -37.7021 43.4539 +46.5609 -37.0159 42.6631 +46.4438 -37.5864 43.3206 +44.9456 -37.0299 42.6793 +44.6355 -37.4405 43.1525 +43.7699 -37.3824 43.0855 +43.09 -37.4743 43.1914 +42.2324 -37.4032 43.1094 +41.8503 -37.7493 43.5084 +40.7653 -37.4537 43.1677 +39.8062 -37.256 42.9398 +39.252 -37.4281 43.1382 +38.6961 -37.5969 43.3327 +38.1388 -37.7621 43.5231 +37.6346 -37.9788 43.7728 +36.5901 -37.6399 43.3822 +35.6106 -37.3475 43.0452 +35.0074 -37.438 43.1495 +34.6106 -37.7491 43.5081 +33.599 -37.381 43.0838 +33.2 -37.6852 43.4344 +32.5984 -37.7595 43.5201 +31.8035 -37.6006 43.337 +31.1585 -37.6083 43.3458 +30.7973 -37.9586 43.7496 +29.829 -37.552 43.2809 +29.3732 -37.7795 43.5432 +28.3782 -37.3009 42.9916 +27.9242 -37.5207 43.2449 +27.4236 -37.679 43.4273 +26.8785 -37.775 43.538 +26.1257 -37.5695 43.3011 +25.5837 -37.6576 43.4026 +24.7623 -37.3216 43.0155 +24.6942 -38.1254 43.9419 +23.7646 -37.5992 43.3353 +23.2256 -37.6729 43.4203 +22.4299 -37.3165 43.0096 +21.968 -37.5046 43.2263 +21.4327 -37.5673 43.2986 +21 -37.8116 43.5802 +20.429 -37.8068 43.5746 +19.9899 -38.0461 43.8504 +19.1335 -37.4753 43.1926 +18.6337 -37.5833 43.3171 +17.8619 -37.126 42.7899 +17.6008 -37.728 43.4838 +17.3533 -38.3928 44.25 +16.5382 -37.7976 43.564 +15.9274 -37.6382 43.3803 +15.4774 -37.8544 43.6295 +14.9727 -37.9415 43.7298 +14.2492 -37.4534 43.1673 +13.7499 -37.5335 43.2596 +13.2271 -37.5468 43.275 +12.6184 -37.3011 42.9918 +12.2668 -37.8206 43.5905 +11.7228 -37.7609 43.5217 +11.1051 -37.4405 43.1524 +10.6243 -37.567 43.2982 +10.1063 -37.5618 43.2922 +9.60577 -37.6181 43.3572 +9.13577 -37.8011 43.568 +8.49904 -37.2686 42.9543 +8.00245 -37.3157 43.0087 +7.50526 -37.3601 43.0598 +7.01967 -37.4667 43.1826 +6.49786 -37.3751 43.0771 +6.03129 -37.6064 43.3436 +5.50155 -37.4437 43.1562 +5.02889 -37.6696 43.4165 +4.50355 -37.501 43.2222 +3.99705 -37.4599 43.1748 +3.49808 -37.4814 43.1995 +2.99885 -37.5 43.221 +2.4645 -36.9919 42.6354 +1.99625 -37.4631 43.1785 +1.479 -37.0144 42.6614 +0.989551 -37.1526 42.8206 +0.500903 -37.6155 43.3541 +6.21725e-15 -37.8135 43.5824 +-0.493922 -37.0912 42.7499 +-1.00351 -37.6767 43.4247 +-1.479 -37.0144 42.6614 +-2.00672 -37.6595 43.4049 +-2.51248 -37.7121 43.4655 +-3.01978 -37.7617 43.5227 +-3.49808 -37.4814 43.1995 +-4.08773 -38.3098 44.1544 +-4.48001 -37.305 42.9963 +-5.04632 -37.8002 43.5671 +-5.54947 -37.7699 43.5321 +-6.0731 -37.8671 43.6441 +-6.55447 -37.7007 43.4523 +-6.98311 -37.2715 42.9577 +-7.59662 -37.8149 43.584 +-8.09987 -37.77 43.5322 +-8.57295 -37.5926 43.3278 +-9.15142 -37.8658 43.6427 +-9.53975 -37.3596 43.0592 +-10.1931 -37.8845 43.6641 +-10.5332 -37.2448 42.9269 +-11.0669 -37.3118 43.0041 +-11.5235 -37.1186 42.7815 +-12.2252 -37.6924 43.4427 +-12.7266 -37.621 43.3605 +-13.2496 -37.6107 43.3486 +-13.7032 -37.406 43.1127 +-14.225 -37.3898 43.094 +-14.6723 -37.1802 42.8524 +-15.4256 -37.7278 43.4836 +-15.9274 -37.6382 43.3803 +-16.7036 -38.1756 43.9997 +-17.1545 -37.9529 43.7431 +-17.747 -38.0414 43.845 +-18.2228 -37.8759 43.6543 +-18.8191 -37.9573 43.748 +-19.3239 -37.8482 43.6224 +-20.1201 -38.2939 44.1361 +-20.3622 -37.6832 43.4322 +-21.2052 -38.1811 44.0061 +-21.6078 -37.8743 43.6524 +-22.1113 -37.7493 43.5083 +-22.6131 -37.6214 43.3609 +-23.1881 -37.6122 43.3503 +-23.956 -37.902 43.6843 +-24.5379 -37.8841 43.6637 +-25.3604 -38.2231 44.0545 +-26.2752 -38.6753 44.5757 +-26.4574 -38.0465 43.8509 +-27.5124 -38.6659 44.5648 +-27.9832 -38.4479 44.3136 +-28.8887 -38.8166 44.7384 +-28.869 -37.9461 43.7352 +-29.8726 -38.4218 44.2835 +-30.2445 -38.0752 43.8839 +-31.2668 -38.5372 44.4165 +-31.7311 -38.2994 44.1423 +-32.6277 -38.575 44.46 +-33.1893 -38.444 44.309 +-34.05 -38.65 44.5464 +-34.5126 -38.3973 44.2552 +-35.7436 -38.9849 44.9325 +-35.8957 -38.3879 44.2444 +-36.7234 -38.5146 44.3904 +-37.2349 -38.3031 44.1466 +-38.2337 -38.5834 44.4697 +-38.6908 -38.3086 44.153 +-39.8145 -38.6835 44.5851 +-40.2148 -38.3463 44.1965 +-41.4122 -38.7591 44.6722 +-41.8106 -38.414 44.2745 +-42.9083 -38.7036 44.6083 +-43.3031 -38.3515 44.2024 +-44.4139 -38.6257 44.5185 +-44.9875 -38.4222 44.2839 +-46.113 -38.6799 44.5809 +-46.5018 -38.3121 44.1571 +-47.5766 -38.5031 44.3772 +-48.0875 -38.2296 44.0619 +-49.3018 -38.5053 44.3797 +-49.7477 -38.1721 43.9956 +-51.6975 -38.9742 44.9202 +-52.7446 -39.0698 45.0303 +-53.2628 -38.7666 44.6809 +-54.385 -38.8954 44.8293 +-55.5147 -39.0143 44.9663 +-56.5827 -39.0756 45.037 +-57.7956 -39.222 45.2057 +-58.2456 -38.8432 44.7691 +-59.8919 -39.25 45.238 +-60.555 -38.9979 44.9474 +-62.0071 -39.2419 45.2287 +-62.092 -38.6152 44.5063 +-64.4323 -39.376 45.3832 +-65.1016 -39.0945 45.0588 +-66.8087 -39.4223 45.4366 +-68.4546 -39.6901 45.7453 +-70.037 -39.8991 45.9861 +-70.4896 -39.4544 45.4736 +-73.1572 -40.2293 46.3667 +-73.613 -39.7677 45.8347 +-75.3832 -40.0051 46.1083 +-76.5391 -39.8988 45.9858 +-78.3283 -40.1052 46.2236 +-78.78 -39.6158 45.6596 +-80.9018 -39.9525 46.0477 +-82.3149 -39.9171 46.0069 +-83.976 -39.9841 46.0841 +-84.7494 -39.6165 45.6605 +-87.4035 -40.1077 46.2265 +-88.5112 -39.8661 45.9481 +-91.0283 -40.2379 46.3767 +-92.2278 -40.0052 46.1084 +-94.7698 -40.3328 46.486 +-96.6527 -40.3527 46.5089 +-99.1368 -40.5972 46.7907 +-100.697 -40.4396 46.6091 +-103.203 -40.6385 46.8383 +-104.429 -40.3128 46.4629 +-108.253 -40.9592 47.208 +-110.274 -40.8872 47.125 +-113.351 -41.1763 47.4582 +-114.422 -40.7142 46.9256 +-117.609 -40.9812 47.2334 +-120.013 -40.9426 47.1888 +-124.652 -41.6233 47.9733 +-119.563 -39.0666 45.0266 +-98.0584 -31.3428 36.1245 +-98.2013 -30.6962 35.3792 +-98.7875 -30.1888 34.7945 +-98.3668 -29.3781 33.8601 +-98.8456 -28.8411 33.2411 +-98.3088 -28.0134 32.2872 +-98.6781 -27.4501 31.638 +-97.3769 -26.4333 30.466 +-96.0562 -25.4335 29.3137 +-92.5765 -23.8985 27.5445 +-61.3362 -15.43 17.784 +-44.7729 -10.9705 12.6441 +-40.5947 -9.68295 11.1602 +-35.6318 -8.26911 9.53065 +-33.2823 -7.51028 8.65605 +-23.4236 -5.13624 5.91983 +-17.975 -3.8275 4.41143 +-16.8808 -3.48808 4.02022 +-16.1616 -3.23812 3.73213 +-15.6288 -3.0339 3.49675 +-15.6686 -2.9444 3.3936 +-15.4181 -2.80214 3.22964 +-16.0344 -2.81563 3.24519 +-14.0381 -2.37925 2.74222 +-14.3604 -2.34643 2.70441 +-13.4187 -2.11123 2.43333 +-13.0566 -1.97544 2.27681 +-12.8871 -1.87233 2.15797 +-14.9657 -2.08469 2.40273 +-13.523 -1.80304 2.07812 +-12.7612 -1.6256 1.87361 +-13.6672 -1.66004 1.9133 +-14.0828 -1.62734 1.87561 +-14.3998 -1.57919 1.82011 +-14.1239 -1.46602 1.68968 +-13.1539 -1.28833 1.48488 +-13.4676 -1.24041 1.42965 +-14.1777 -1.22322 1.40983 +-13.6971 -1.10216 1.27031 +-14.2081 -1.06088 1.22273 +-14.7189 -1.01384 1.16851 +-14.2342 -0.898213 1.03524 +-14.3452 -0.822487 0.947966 +-13.6578 -0.704426 0.811894 +-14.3649 -0.65829 0.758719 +-11.9776 -0.480096 0.553339 +-11.3844 -0.391 0.450651 +-11.4891 -0.328737 0.37889 +-11.6929 -0.267594 0.308418 +-10.8963 -0.18699 0.215517 +-11.4982 -0.13153 0.151597 +-10.4996 -0.0600486 0.0692096 +11.7 -1.77636e-15 -1.7053e-13 +11.7996 -0.0667785 0.0783841 +12.4981 -0.141475 0.166062 +12.3958 -0.210501 0.247084 +26.8836 -0.608814 0.714621 +32.2693 -0.913686 1.07248 +37.4486 -1.27276 1.49395 +37.2304 -1.47672 1.73336 +36.9099 -1.67379 1.96468 +35.9887 -1.83681 2.15603 +31.3801 -1.78041 2.08983 +30.1605 -1.88334 2.21065 +25.062 -1.70824 2.00512 +20.7657 -1.53433 1.80099 +21.042 -1.6755 1.96669 +30.3382 -2.59019 3.04035 +35.9467 -3.27624 3.84562 +43.0222 -4.1697 4.89436 +48.7918 -5.01156 5.88253 +56.9087 -6.17588 7.24919 +64.5049 -7.3761 8.658 +90.7544 -10.9081 12.8038 +94.4325 -11.9038 13.9726 +95.2487 -12.5671 14.7512 +95.3694 -13.1461 15.4308 +95.2865 -13.6993 16.0802 +95.2934 -14.2672 16.7468 +95.0978 -14.806 17.3792 +95.8652 -15.5005 18.1944 +95.653 -16.0424 18.8304 +95.4335 -16.5831 19.4651 +95.2067 -17.1226 20.0984 +95.8378 -17.8216 20.9188 +95.5943 -18.3633 21.5547 +96.2043 -19.0742 22.3892 +95.8486 -19.5984 23.0045 +95.5812 -20.1401 23.6403 +96.0652 -20.8449 24.4676 +95.781 -21.3878 25.1048 +96.338 -22.1238 25.9688 +95.9426 -22.646 26.5817 +96.4772 -23.3925 27.4579 +96.1588 -23.9376 28.0977 +96.7634 -24.7185 29.0144 +96.5198 -25.2894 29.6845 +96.1759 -25.8347 30.3246 +96.653 -26.6061 31.23 +96.383 -27.1779 31.9012 +96.0136 -27.7223 32.5402 +96.4559 -28.5067 33.4609 +96.703 -29.2433 34.3256 +96.1253 -29.7336 34.901 +95.362 -30.1628 35.4048 +94.7735 -30.6434 35.9689 +94.9813 -31.3847 36.8391 +95.3537 -32.1905 37.7849 +94.9169 -32.7289 38.4169 +94.7365 -33.3576 39.1549 +94.9837 -34.144 40.0779 +94.8688 -34.808 40.8573 +95.1762 -35.6354 41.8285 +95.3823 -36.4359 42.7682 +93.8598 -36.5736 42.9297 +94.2167 -37.4422 43.9493 +92.6917 -37.5616 44.0894 +90.9176 -37.562 44.09 +89.4023 -37.6512 44.1947 +87.7248 -37.6547 44.1988 +86.7173 -37.9321 44.5244 +84.6378 -37.7235 44.2795 +82.7344 -37.5687 44.0978 +82.0628 -37.9602 44.5574 +81.1444 -38.2326 44.8771 +79.1799 -37.9959 44.5993 +77.9468 -38.0913 44.7113 +76.2413 -37.9389 44.5323 +75.0186 -38.0095 44.6153 +73.7999 -38.0693 44.6854 +72.1191 -37.8733 44.4554 +70.6808 -37.785 44.3518 +69.5568 -37.8501 44.4281 +67.9043 -37.6105 44.1469 +66.8673 -37.6955 44.2467 +65.1591 -37.385 43.8822 +64.5793 -37.7089 44.2624 +63.3321 -37.6348 44.1755 +62.2382 -37.638 44.1792 +61.1491 -37.6317 44.1717 +60.5684 -37.9312 44.5233 +58.7718 -37.4544 43.9636 +58.3363 -37.8314 44.4062 +57.1942 -37.7438 44.3033 +56.6841 -38.066 44.6816 +54.8619 -37.4916 44.0073 +53.8097 -37.4212 43.9247 +53.3041 -37.7243 44.2805 +52.326 -37.6872 44.2369 +51.6181 -37.8362 44.4118 +50.4509 -37.6374 44.1785 +49.3581 -37.4777 43.991 +48.2733 -37.3084 43.7923 +47.6423 -37.4802 43.9939 +46.6326 -37.3451 43.8354 +45.6303 -37.2016 43.667 +45.128 -37.4584 43.9684 +44.3787 -37.5066 44.025 +43.2705 -37.2384 43.7101 +42.8867 -37.5861 44.1183 +42.2618 -37.7224 44.2783 +41.3461 -37.5906 44.1235 +40.7239 -37.7169 44.2718 +39.7051 -37.4649 43.976 +39.1994 -37.6882 44.2381 +38.6356 -37.8546 44.4334 +38.0703 -38.0174 44.6245 +37.1274 -37.7938 44.362 +36.6174 -38.0025 44.607 +35.5299 -37.6 44.1346 +34.5591 -37.2994 43.7817 +34.0558 -37.4935 44.0096 +33.6 -37.741 44.3001 +33.1893 -38.0426 44.6541 +32.1914 -37.6617 44.2071 +31.2539 -37.3296 43.8172 +31.2199 -38.0776 44.6952 +29.8751 -37.2175 43.6855 +29.7818 -37.9051 44.4927 +28.869 -37.5499 44.0758 +28.3626 -37.7119 44.2659 +27.3805 -37.2271 43.6968 +27.3857 -38.0859 44.7049 +26.416 -37.5903 44.1232 +25.9498 -37.7976 44.3665 +25.4801 -38.0025 44.607 +24.6161 -37.608 44.1439 +24.1856 -37.8657 44.4465 +23.6377 -37.941 44.5348 +22.7964 -37.5303 44.0528 +22.2905 -37.6579 44.2025 +21.7829 -37.7826 44.3489 +21.0342 -37.4778 43.9912 +20.4624 -37.4732 43.9857 +19.9573 -37.5876 44.12 +19.4508 -37.699 44.2508 +18.8809 -37.6844 44.2336 +18.4333 -37.9134 44.5025 +17.7177 -37.5822 44.1137 +17.2397 -37.7433 44.3027 +16.7036 -37.7771 44.3424 +15.9541 -37.3077 43.7914 +15.4774 -37.4592 43.9693 +14.9727 -37.5453 44.0704 +14.4427 -37.5658 44.0944 +13.7733 -37.2046 43.6705 +13.4296 -37.7235 44.2795 +12.8349 -37.5448 44.0698 +12.4539 -37.9966 44.6001 +11.9023 -37.9385 44.5319 +11.4295 -38.1318 44.7588 +10.7883 -37.7486 44.3091 +10.2626 -37.7444 44.304 +9.77082 -37.865 44.4456 +9.27656 -37.9829 44.584 +8.64685 -37.5208 44.0416 +8.25296 -38.0821 44.7005 +7.60968 -37.4844 43.9989 +7.21467 -38.1053 44.7277 +6.53183 -37.1782 43.6395 +6.12537 -37.7942 44.3626 +5.5303 -37.2465 43.7196 +5.0899 -37.7286 44.2855 +4.50355 -37.1095 43.5588 +3.99705 -37.0688 43.5111 +3.56523 -37.8021 44.3718 +2.99885 -37.1084 43.5576 +2.50375 -37.1888 43.6519 +1.99974 -37.1367 43.5908 +1.48685 -36.8225 43.2219 +1.007 -37.413 43.9151 +0.503521 -37.4173 43.9202 +8.88178e-15 -37.4836 43.9979 +-0.502648 -37.3525 43.844 +-1.00351 -37.2833 43.7629 +-1.50517 -37.2763 43.7546 +-2.00672 -37.2664 43.7429 +-2.50811 -37.2536 43.7279 +-3.00932 -37.238 43.7096 +-3.51029 -37.2195 43.688 +-4.07378 -37.7804 44.3464 +-4.56632 -37.6267 44.1659 +-5.07246 -37.5994 44.1338 +-5.54947 -37.3756 43.8711 +-6.15673 -37.9877 44.5896 +-6.65635 -37.887 44.4714 +-7.21467 -38.1053 44.7277 +-7.60968 -37.4844 43.9989 +-8.21121 -37.8894 44.4743 +-8.75032 -37.9698 44.5686 +-9.27656 -37.9829 44.584 +-9.73781 -37.7371 44.2955 +-10.1931 -37.4889 44.0042 +-10.7154 -37.4936 44.0097 +-11.2196 -37.4315 43.9368 +-11.7228 -37.3666 43.8606 +-12.2252 -37.2988 43.7811 +-12.7266 -37.2282 43.6982 +-13.4296 -37.7235 44.2795 +-13.9133 -37.583 44.1146 +-14.4427 -37.5658 44.0944 +-14.9477 -37.4826 43.9967 +-15.6586 -37.8977 44.484 +-16.1946 -37.8701 44.4516 +-16.7036 -37.7771 44.3424 +-17.2397 -37.7433 44.3027 +-17.7762 -37.7062 44.2593 +-18.5535 -38.1608 44.7929 +-19.0354 -37.9927 44.5956 +-19.3239 -37.4531 43.9621 +-20.1201 -37.8941 44.4798 +-20.5959 -37.7177 44.2727 +-21.5131 -38.331 44.9926 +-21.888 -37.9648 44.5628 +-22.4697 -37.9606 44.5578 +-22.9796 -37.832 44.4069 +-23.8624 -38.3018 44.9583 +-24.3387 -38.1053 44.7277 +-24.8114 -37.9065 44.4943 +-25.7991 -38.4783 45.1655 +-26.3565 -38.39 45.0619 +-26.8721 -38.2394 44.8851 +-27.4702 -38.2034 44.8429 +-28.0263 -38.1051 44.7274 +-28.7571 -38.2365 44.8816 +-29.7614 -38.7106 45.4382 +-30.2358 -38.483 45.171 +-30.7525 -38.3104 44.9684 +-31.6424 -38.593 45.3001 +-31.7788 -37.9565 44.553 +-33.064 -38.6828 45.4055 +-33.6325 -38.5506 45.2504 +-34.05 -38.2464 44.8934 +-35.0709 -38.6111 45.3214 +-35.8982 -38.7447 45.4782 +-36.3137 -38.4295 45.1082 +-37.2533 -38.6625 45.3817 +-37.7184 -38.3955 45.0683 +-38.7238 -38.67 45.3906 +-39.1875 -38.3953 45.0681 +-40.3737 -38.8173 45.5634 +-40.8379 -38.5339 45.2307 +-41.3549 -38.3013 44.9578 +-42.3913 -38.5409 45.239 +-43.3786 -38.7193 45.4484 +-43.8979 -38.4723 45.1585 +-44.9556 -38.6886 45.4124 +-45.5354 -38.4841 45.1723 +-46.6056 -38.6849 45.408 +-47.1244 -38.4197 45.0967 +-48.2689 -38.6555 45.3735 +-48.7236 -38.3308 44.9924 +-50.0732 -38.6995 45.4251 +-50.6569 -38.464 45.1487 +-52.2879 -39.0079 45.7871 +-52.7446 -38.6619 45.381 +-53.9319 -38.8438 45.5946 +-54.993 -38.9197 45.6836 +-56.1285 -39.0338 45.8175 +-56.6516 -38.7147 45.443 +-58.3513 -39.1856 45.9957 +-58.8764 -38.8539 45.6064 +-60.7405 -39.3905 46.2363 +-60.8403 -38.7726 45.5109 +-62.2948 -39.0124 45.7924 +-63.4703 -39.0601 45.8484 +-65.0905 -39.3629 46.2039 +-66.2812 -39.3874 46.2326 +-68.295 -39.8786 46.8092 +-69.0537 -39.6195 46.5051 +-70.7163 -39.8654 46.7936 +-71.7063 -39.7164 46.6188 +-73.6169 -40.0594 47.0214 +-74.3846 -39.765 46.6758 +-76.0826 -39.9547 46.8985 +-77.3217 -39.8859 46.8178 +-79.0375 -40.0457 47.0053 +-80.2874 -39.9523 46.8956 +-81.8601 -40.0037 46.956 +-82.7973 -39.7318 46.6368 +-84.6232 -39.8716 46.801 +-85.645 -39.6172 46.5023 +-88.6323 -40.2469 47.2415 +-89.7473 -40.0008 46.9527 +-91.7745 -40.1442 47.121 +-93.7288 -40.2318 47.2237 +-96.2794 -40.5475 47.5944 +-98.2551 -40.5934 47.6483 +-99.9001 -40.4826 47.5182 +-102.317 -40.6612 47.7277 +-104.06 -40.5482 47.5951 +-106.584 -40.7148 47.7907 +-109.033 -40.8234 47.9182 +-110.883 -40.6838 47.7544 +-113.613 -40.8408 47.9386 +-115.652 -40.7223 47.7995 +-119.551 -41.2231 48.3874 +-121.698 -41.084 48.2241 +-124.919 -41.277 48.4506 +-98.4428 -31.8298 37.3616 +-99.0471 -31.3283 36.7729 +-98.3818 -30.4316 35.7203 +-98.7875 -29.8737 35.0655 +-98.3668 -29.0714 34.1238 +-98.8456 -28.54 33.5 +-98.3088 -27.7209 32.5386 +-98.7702 -27.1889 31.9141 +-98.2084 -26.3807 30.9654 +-97.5397 -25.5567 29.9982 +-76.8525 -19.6322 23.0441 +-72.3525 -18.0113 21.1415 +-50.7676 -12.3094 14.4487 +-44.5414 -10.5134 12.3406 +-36.9515 -8.48582 9.96059 +-34.3223 -7.6641 8.99606 +-31.9585 -6.9346 8.13977 +-30.1485 -6.35265 7.45669 +-16.69 -3.41266 4.00575 +-16.1616 -3.20432 3.7612 +-16.4917 -3.16799 3.71856 +-16.0531 -2.98516 3.50396 +-16.4781 -2.96353 3.47856 +-15.5514 -2.70232 3.17196 +-14.3286 -2.40311 2.82076 +-14.7485 -2.38469 2.79913 +-15.7524 -2.45252 2.87875 +-13.5437 -2.02776 2.38017 +-13.6681 -1.96507 2.30658 +-13.205 -1.82023 2.13657 +-13.327 -1.75836 2.06395 +-13.6446 -1.72 2.01892 +-14.5522 -1.74908 2.05305 +-13.6888 -1.5653 1.83734 +-14.9915 -1.62692 1.90966 +-14.2227 -1.46086 1.71475 +-14.044 -1.36114 1.5977 +-14.3589 -1.30869 1.53613 +-13.4837 -1.1512 1.35127 +-13.7964 -1.09855 1.28947 +-14.6055 -1.07917 1.26672 +-14.6195 -0.996474 1.16965 +-13.836 -0.863978 1.01413 +-14.0463 -0.796948 0.935451 +-14.0565 -0.717422 0.842104 +-13.1678 -0.597134 0.700911 +-12.4767 -0.494879 0.580885 +-12.0834 -0.410676 0.482048 +-12.2883 -0.347935 0.408403 +-11.9927 -0.27159 0.31879 +-12.3958 -0.210501 0.247084 +-11.5982 -0.131289 0.154105 +-12.2995 -0.069608 0.0817053 +11.2 -1.77636e-15 -1.7053e-13 +11.7996 -0.0660685 0.0789835 +11.2983 -0.126533 0.151268 +14.595 -0.245213 0.293146 +29.9817 -0.671753 0.803066 +35.666 -0.999122 1.19443 +39.6456 -1.3331 1.59369 +36.6315 -1.43751 1.71852 +37.5084 -1.68284 2.0118 +37.0853 -1.87266 2.23872 +24.0083 -1.34767 1.61111 +26.0794 -1.61119 1.92614 +23.6696 -1.59619 1.9082 +20.3682 -1.48897 1.78003 +21.3397 -1.68114 2.00977 +32.5194 -2.7469 3.28386 +36.937 -3.3307 3.98178 +45.0002 -4.31504 5.15854 +49.4832 -5.02854 6.0115 +54.7389 -5.87724 7.02611 +61.8459 -6.99682 8.36455 +92.6226 -11.0143 13.1673 +95.4142 -11.8997 14.2258 +95.3467 -12.4463 14.8792 +94.5869 -12.8996 15.4212 +94.5055 -13.4426 16.0704 +95.2934 -14.1156 16.8748 +95.0978 -14.6486 17.5121 +94.8949 -15.1805 18.1479 +94.6848 -15.7112 18.7824 +95.4335 -16.4068 19.614 +95.2067 -16.9406 20.2521 +95.8378 -17.6321 21.0788 +95.5943 -18.168 21.7195 +95.248 -18.6838 22.3361 +95.8486 -19.39 23.1804 +95.5812 -19.926 23.8211 +96.0652 -20.6233 24.6547 +95.781 -21.1604 25.2968 +96.338 -21.8886 26.1673 +95.9426 -22.4052 26.7849 +96.4772 -23.1438 27.6679 +96.1588 -23.6831 28.3126 +95.833 -24.2205 28.9551 +96.5198 -25.0206 29.9115 +96.1759 -25.56 30.5564 +96.653 -26.3232 31.4688 +96.383 -26.8889 32.1451 +96.8358 -27.6624 33.0698 +96.4559 -28.2036 33.7168 +96.8843 -28.9866 34.6528 +96.5766 -29.5556 35.333 +95.0025 -29.7295 35.541 +95.4 -30.518 36.4836 +95.1595 -31.1092 37.1904 +94.5554 -31.5816 37.7551 +95.4466 -32.5617 38.9267 +95.4395 -33.2479 39.7471 +95.1586 -33.8432 40.4588 +94.6947 -34.3747 41.0942 +95.1762 -35.2565 42.1483 +95.4685 -36.0811 43.1342 +94.6313 -36.4821 43.6135 +94.302 -37.0776 44.3254 +93.6245 -37.5362 44.8737 +91.5923 -37.4384 44.7568 +90.4087 -37.6703 45.034 +88.1417 -37.4314 44.7483 +86.3857 -37.3853 44.6933 +85.5443 -37.7222 45.096 +84.1269 -37.7949 45.1829 +82.2257 -37.6311 44.9871 +82.277 -38.3541 45.8514 +79.5818 -37.7828 45.1685 +78.9052 -38.1497 45.6071 +76.9553 -37.887 45.2931 +75.7278 -37.9609 45.3815 +73.7999 -37.6645 45.0271 +73.0517 -37.9552 45.3746 +70.758 -37.4241 44.7397 +70.1697 -37.7776 45.1622 +69.1969 -37.919 45.3314 +68.2257 -38.0524 45.4908 +65.7583 -37.3276 44.6243 +65.1738 -37.6515 45.0115 +64.0694 -37.6682 45.0315 +62.8233 -37.5879 44.9355 +61.7294 -37.5849 44.9319 +60.5684 -37.5279 44.8638 +59.4851 -37.5058 44.8374 +58.2656 -37.3838 44.6915 +57.7549 -37.7086 45.0798 +56.6841 -37.6613 45.0233 +55.5502 -37.5584 44.9002 +54.3553 -37.3988 44.7094 +53.8445 -37.7017 45.0715 +52.7944 -37.6202 44.9742 +51.8169 -37.578 44.9237 +50.4509 -37.2373 44.5163 +49.8776 -37.4695 44.794 +49.4304 -37.7965 45.1849 +47.7059 -37.1311 44.3895 +47.1361 -37.347 44.6475 +46.2528 -37.3082 44.6012 +45.6205 -37.4647 44.7882 +44.744 -37.4133 44.7267 +43.9325 -37.4061 44.7182 +42.9462 -37.2381 44.5173 +42.2618 -37.3214 44.6169 +41.288 -37.1387 44.3985 +41.1828 -37.7364 45.113 +40.2148 -37.5425 44.8813 +39.5909 -37.6599 45.0216 +38.5804 -37.3986 44.7092 +38.1247 -37.667 45.03 +37.0737 -37.3379 44.6366 +36.6174 -37.5984 44.9481 +36.0524 -37.7473 45.1261 +35.5891 -38.0028 45.4315 +34.5634 -37.6477 45.007 +34.05 -37.8398 45.2366 +33.0909 -37.5264 44.862 +32.6277 -37.7664 45.1489 +31.6833 -37.4402 44.7589 +31.1729 -37.6161 44.9693 +30.7525 -37.9031 45.3123 +29.7364 -37.445 44.7646 +29.3152 -37.7249 45.0993 +28.7571 -37.8299 45.2248 +27.8971 -37.5262 44.8617 +27.3434 -37.6228 44.9772 +26.416 -37.1906 44.4606 +25.9905 -37.4544 44.7759 +25.4801 -37.5984 44.9481 +24.6942 -37.3263 44.6227 +24.1856 -37.4631 44.7863 +23.3005 -37.0022 44.2353 +22.833 -37.1909 44.4609 +22.2905 -37.2575 44.5405 +21.7829 -37.3809 44.688 +21.2737 -37.5014 44.8321 +20.4957 -37.1352 44.3944 +20.2178 -37.6732 45.0375 +19.3873 -37.1766 44.4438 +19.1591 -37.8329 45.2284 +18.4333 -37.5103 44.8428 +17.9809 -37.7348 45.1112 +17.5237 -37.9572 45.3769 +16.9241 -37.8688 45.2713 +16.1679 -37.4056 44.7176 +15.6586 -37.4947 44.8241 +15.1981 -37.7053 45.0758 +14.6847 -37.7889 45.1758 +13.96 -37.3082 44.6011 +13.632 -37.885 45.2907 +12.9864 -37.5841 44.931 +12.5994 -38.0319 45.4663 +11.8823 -37.4723 44.7973 +11.4104 -37.6634 45.0257 +10.7701 -37.2842 44.5725 +10.2626 -37.3431 44.6428 +9.77082 -37.4624 44.7855 +9.24528 -37.4523 44.7734 +8.77988 -37.693 45.0611 +8.25296 -37.6772 45.0423 +7.7402 -37.722 45.0958 +7.22685 -37.7639 45.1459 +6.63371 -37.3567 44.6591 +6.21944 -37.9667 45.3884 +5.52072 -36.7866 43.9776 +5.09861 -37.3914 44.7006 +4.5114 -36.7788 43.9683 +4.12958 -37.8908 45.2976 +3.55913 -37.3361 44.6345 +3.04595 -37.2905 44.58 +2.53865 -37.3062 44.5987 +2.03464 -37.3831 44.6907 +1.52873 -37.4572 44.7793 +1.007 -37.0153 44.2509 +0.502648 -36.9553 44.1793 +9.76996e-15 -37.5342 44.8713 +-0.501776 -36.8912 44.1026 +-1.00351 -36.8869 44.0975 +-1.53135 -37.5214 44.856 +-2.06605 -37.9602 45.3805 +-2.54737 -37.4344 44.752 +-3.10352 -37.9953 45.4226 +-3.56523 -37.4002 44.7111 +-4.12958 -37.8908 45.2976 +-4.63693 -37.8023 45.1918 +-5.14219 -37.711 45.0826 +-5.63573 -37.553 44.8938 +-6.14627 -37.52 44.8544 +-6.65635 -37.4842 44.8115 +-7.20248 -37.6365 44.9936 +-7.62273 -37.1495 44.4114 +-8.18338 -37.3596 44.6625 +-8.85378 -38.0103 45.4405 +-9.41735 -38.1494 45.6067 +-9.73781 -37.3359 44.6342 +-10.3842 -37.7854 45.1716 +-10.7154 -37.095 44.3462 +-11.3722 -37.5374 44.8751 +-11.9023 -37.5352 44.8725 +-12.4331 -37.5298 44.8661 +-12.9214 -37.3962 44.7063 +-13.4296 -37.3224 44.6181 +-13.9133 -37.1834 44.4519 +-14.6121 -37.6021 44.9525 +-15.148 -37.581 44.9272 +-15.6586 -37.4947 44.8241 +-16.2214 -37.5293 44.8655 +-16.9241 -37.8688 45.2713 +-17.4669 -37.8341 45.2298 +-17.9809 -37.7348 45.1112 +-18.5235 -37.694 45.0623 +-19.0973 -37.7108 45.0825 +-19.5777 -37.5416 44.8802 +-20.4131 -38.0372 45.4727 +-20.9631 -37.982 45.4066 +-21.7183 -38.2852 45.7691 +-21.993 -37.7414 45.1191 +-22.7205 -37.9763 45.3998 +-23.3095 -37.967 45.3887 +-24.237 -38.4894 46.0133 +-24.7213 -38.293 45.7784 +-25.2412 -38.1531 45.6112 +-25.8389 -38.128 45.5812 +-26.6819 -38.4508 45.9671 +-27.2039 -38.3 45.7868 +-27.7238 -38.1462 45.6029 +-28.3276 -38.1053 45.554 +-29.1955 -38.4066 45.9142 +-29.7168 -38.2416 45.717 +-30.2358 -38.0738 45.5164 +-31.168 -38.4153 45.9246 +-31.5954 -38.126 45.5788 +-32.1128 -37.9477 45.3656 +-33.064 -38.2715 45.7527 +-33.5833 -38.0849 45.5296 +-34.55 -38.3955 45.901 +-35.5277 -38.6981 46.2627 +-35.8982 -38.3327 45.8259 +-36.7316 -38.4585 45.9763 +-37.6773 -38.6867 46.249 +-38.202 -38.4742 45.9951 +-38.7238 -38.2589 45.7377 +-39.7395 -38.5222 46.0524 +-40.3178 -38.3514 45.8482 +-40.8379 -38.1242 45.5766 +-41.8711 -38.3671 45.867 +-42.8559 -38.549 46.0845 +-43.3786 -38.3077 45.796 +-44.4333 -38.5275 46.0587 +-44.9556 -38.2772 45.7596 +-46.0224 -38.4822 46.0046 +-47.1597 -38.7286 46.2992 +-47.6846 -38.4631 45.9818 +-49.0241 -38.8429 46.4358 +-48.7236 -37.9233 45.3364 +-50.7159 -38.7795 46.36 +-51.1765 -38.4453 45.9605 +-52.2879 -38.5931 46.1372 +-53.4734 -38.7794 46.3599 +-55.0694 -39.2414 46.9122 +-55.6011 -38.9316 46.5418 +-56.7423 -39.0411 46.6728 +-57.8218 -39.0942 46.7363 +-58.9765 -39.1844 46.844 +-59.367 -38.7612 46.3381 +-60.3869 -38.7449 46.3186 +-62.0528 -39.1248 46.7728 +-63.158 -39.1325 46.782 +-64.5583 -39.3074 46.9911 +-65.7487 -39.3382 47.028 +-67.0922 -39.4454 47.1561 +-68.295 -39.4546 47.1671 +-69.5031 -39.4533 47.1656 +-71.3955 -39.8204 47.6044 +-71.7063 -39.2941 46.9753 +-73.6169 -39.6335 47.381 +-75.7735 -40.0768 47.911 +-77.2483 -40.1355 47.9812 +-78.4956 -40.061 47.892 +-80.1407 -40.173 48.0259 +-81.0014 -39.879 47.6744 +-82.2595 -39.7714 47.5459 +-84.0834 -39.92 47.7235 +-85.5131 -39.8625 47.6548 +-86.5405 -39.6058 47.3478 +-88.6323 -39.819 47.6027 +-90.9011 -40.0843 47.9199 +-93.1838 -40.3273 48.2104 +-94.4793 -40.1228 47.9659 +-96.531 -40.2213 48.0836 +-98.5925 -40.2997 48.1774 +-101.003 -40.4942 48.4099 +-102.658 -40.3629 48.253 +-106.032 -40.8771 48.8677 +-106.928 -40.4121 48.3118 +-110.332 -40.8706 48.8599 +-111.667 -40.5356 48.4594 +-114.4 -40.6865 48.6398 +-116.795 -40.6873 48.6408 +-120.346 -41.056 49.0815 +-122.496 -40.9139 48.9116 +-114.583 -37.4593 44.7817 +-97.8163 -31.2909 37.4076 +-98.8673 -30.939 36.9868 +-98.4721 -30.1357 36.0265 +-97.9719 -29.312 35.0418 +-98.4578 -28.7889 34.4165 +-98.0234 -28.0017 33.4754 +-98.3088 -27.4262 32.7874 +-98.6781 -26.8747 32.1282 +-98.116 -26.0757 31.1729 +-98.3742 -25.5013 30.4863 +-87.7384 -22.1748 26.5094 +-67.4979 -16.6241 19.8738 +-61.5394 -14.7626 17.6483 +-49.1459 -11.4769 13.7204 +-37.9885 -8.6312 10.3184 +-35.5515 -7.85421 9.38953 +-33.95 -7.28837 8.71309 +-32.5261 -6.78079 8.10629 +-18.5021 -3.74296 4.47462 +-16.4484 -3.22652 3.85724 +-16.3958 -3.11608 3.72521 +-16.0531 -2.95342 3.53075 +-16.0926 -2.86343 3.42317 +-16.3241 -2.80643 3.35502 +-15.5872 -2.58641 3.09199 +-15.3307 -2.45247 2.93188 +-14.3911 -2.21676 2.65008 +-14.1284 -2.0928 2.50189 +-13.8634 -1.97195 2.35742 +-13.205 -1.80088 2.15291 +-14.0129 -1.82921 2.18677 +-14.1354 -1.76292 2.10753 +-14.0605 -1.67202 1.99886 +-15.166 -1.71578 2.05118 +-14.9915 -1.60962 1.92427 +-14.2227 -1.44533 1.72786 +-13.6484 -1.30874 1.56457 +-14.0618 -1.26799 1.51585 +-15.1691 -1.28133 1.5318 +-13.7964 -1.08687 1.29933 +-14.3074 -1.04591 1.25036 +-14.6195 -0.985879 1.1786 +-14.4332 -0.891684 1.06599 +-14.7437 -0.827613 0.989393 +-13.7575 -0.694697 0.830495 +-14.2652 -0.640018 0.765127 +-13.7743 -0.540537 0.6462 +-12.4829 -0.419741 0.501791 +-13.2873 -0.372223 0.444984 +-11.5929 -0.259746 0.31052 +-11.9959 -0.201545 0.240942 +-11.2983 -0.126533 0.151268 +-10.8996 -0.0610295 0.0729594 +12.3 0 -1.7053e-13 +12.2995 -0.0681236 0.0829469 +12.998 -0.143996 0.175329 +25.6912 -0.426977 0.519885 +32.78 -0.726514 0.884599 +36.8649 -1.02155 1.24383 +41.4431 -1.37848 1.67843 +37.5299 -1.45686 1.77386 +39.703 -1.76206 2.14547 +37.4841 -1.87233 2.27974 +19.8243 -1.10078 1.34031 +23.5909 -1.44169 1.7554 +19.8904 -1.32684 1.61555 +20.3682 -1.47287 1.79336 +20.5457 -1.6011 1.94949 +33.5108 -2.80006 3.40933 +38.6205 -3.44487 4.19445 +45.4947 -4.31531 5.25429 +47.9029 -4.81534 5.86312 +54.6402 -5.80325 7.066 +60.7626 -6.79999 8.27962 +92.8193 -10.9183 13.2941 +94.6289 -11.6742 14.2145 +94.5627 -12.2105 14.8675 +94.5869 -12.7602 15.5368 +94.6031 -13.3111 16.2075 +95.2934 -13.963 17.0013 +95.0978 -14.4903 17.6433 +94.8949 -15.0164 18.2839 +95.653 -15.7003 19.1166 +95.4335 -16.2295 19.7609 +95.2067 -16.7575 20.4038 +95.8378 -17.4415 21.2367 +95.5943 -17.9717 21.8822 +95.3436 -18.5005 22.5261 +95.8486 -19.1805 23.354 +96.4371 -19.8871 24.2145 +96.16 -20.4205 24.8639 +95.781 -20.9317 25.4863 +96.338 -21.6521 26.3634 +96.0366 -22.1848 27.0121 +96.4772 -22.8937 27.8752 +96.1588 -23.4271 28.5247 +96.7634 -24.1914 29.4553 +96.4271 -24.7264 30.1067 +96.915 -25.4781 31.022 +96.653 -26.0387 31.7046 +96.4747 -26.6237 32.4168 +96.105 -27.157 33.0662 +96.5469 -27.9251 34.0015 +96.1593 -28.4588 34.6512 +97.2084 -29.4274 35.8306 +96.3507 -29.8256 36.3155 +95.3105 -30.1599 36.7225 +95.0704 -30.7442 37.434 +95.4424 -31.5334 38.3949 +94.8286 -32.0012 38.9644 +94.9122 -32.7069 39.8236 +95.2461 -33.5083 40.7994 +94.5206 -33.9407 41.326 +95.003 -34.812 42.3869 +95.3823 -35.659 43.4181 +95.7456 -36.5128 44.4578 +94.1315 -36.6106 44.5768 +94.3878 -37.4332 45.5784 +92.6887 -37.4771 45.6319 +90.828 -37.436 45.5818 +89.4759 -37.5873 45.7661 +87.878 -37.6201 45.8059 +86.6981 -37.8178 46.0467 +85.028 -37.7869 46.009 +82.877 -37.5193 45.6832 +81.9534 -37.7903 46.0132 +80.3053 -37.7143 45.9206 +79.7837 -38.1576 46.4604 +77.6693 -37.8253 46.0558 +77.1463 -38.2541 46.5779 +74.2695 -37.4945 45.6531 +73.0517 -37.545 45.7145 +71.1438 -37.2215 45.3206 +70.9357 -37.7773 45.9974 +68.9688 -37.3856 45.5204 +68.6786 -37.8911 46.1359 +66.8817 -37.5551 45.7268 +65.9169 -37.6693 45.8658 +64.0694 -37.2611 45.3689 +63.6278 -37.6578 45.8519 +62.3097 -37.5282 45.6941 +61.8632 -37.916 46.1662 +59.4851 -37.1005 45.1733 +59.6091 -37.8325 46.0646 +57.7549 -37.3011 45.4175 +57.3093 -37.6652 45.8609 +56.1697 -37.5668 45.7411 +55.6511 -37.8765 46.1182 +53.9121 -37.341 45.4662 +53.3966 -37.6382 45.828 +52.347 -37.5522 45.7233 +51.2382 -37.4096 45.5497 +50.7868 -37.7402 45.9522 +49.3661 -37.3394 45.4642 +48.1511 -37.0727 45.1395 +47.6396 -37.338 45.4624 +46.6886 -37.2527 45.3587 +46.1746 -37.5099 45.6718 +45.1092 -37.311 45.4297 +44.1732 -37.2046 45.3001 +43.6005 -37.3969 45.5342 +43.0259 -37.5855 45.7639 +41.7525 -37.1507 45.2345 +41.2401 -37.3805 45.5143 +40.1582 -37.0845 45.1538 +40.206 -37.8317 46.0636 +39.1323 -37.5237 45.6886 +38.5604 -37.6858 45.8859 +37.611 -37.4697 45.6228 +37.0943 -37.6766 45.8747 +36.1047 -37.3935 45.5301 +35.5891 -37.5921 45.7719 +34.5634 -37.2409 45.3442 +34.5 -37.9256 46.178 +33.1401 -37.1761 45.2654 +32.6277 -37.3583 45.4872 +31.6833 -37.0356 45.0943 +31.2199 -37.2657 45.3744 +30.6601 -37.3809 45.5147 +30.2358 -37.6623 45.8574 +29.2706 -37.2604 45.368 +28.7571 -37.4211 45.5637 +27.8541 -37.0634 45.1281 +27.766 -37.7914 46.0146 +26.9136 -37.4818 45.6376 +26.3972 -37.6294 45.8173 +25.4801 -37.1921 45.2849 +24.9677 -37.3319 45.455 +24.1091 -36.941 44.9791 +23.6751 -37.1908 45.2832 +23.0896 -37.2024 45.2974 +22.6489 -37.4474 45.5957 +22.1331 -37.5714 45.7467 +21.5815 -37.6329 45.8216 +20.696 -37.0929 45.1641 +20.2503 -37.3262 45.4481 +19.4825 -36.9554 44.9966 +19.19 -37.4844 45.6407 +18.4633 -37.1655 45.2525 +18.2148 -37.8126 46.0404 +17.6658 -37.8512 46.0874 +16.9517 -37.5206 45.6848 +16.3817 -37.4907 45.6484 +15.8915 -37.6413 45.8318 +15.173 -37.2363 45.3386 +14.8782 -37.8732 46.1141 +14.1701 -37.4605 45.6116 +13.6095 -37.4138 45.5548 +13.0297 -37.3018 45.4185 +12.641 -37.7451 45.9582 +11.9023 -37.1295 45.2087 +11.5821 -37.8171 46.0458 +10.9341 -37.4429 45.5903 +10.4189 -37.5021 45.6623 +9.88635 -37.4957 45.6546 +9.40171 -37.6745 45.8722 +8.77988 -37.2857 45.3988 +8.3643 -37.7728 45.992 +7.7402 -37.3143 45.4337 +7.23904 -37.4188 45.5608 +6.71295 -37.3944 45.5311 +6.20899 -37.4933 45.6515 +5.69324 -37.5262 45.6917 +5.16834 -37.4931 45.6513 +4.58986 -37.0141 45.0682 +4.12261 -37.418 45.5599 +3.60797 -37.4394 45.586 +3.05119 -36.9509 44.9912 +2.58227 -37.5371 45.7049 +2.06256 -37.4865 45.6434 +1.52612 -36.989 45.0375 +1.02097 -37.1229 45.2006 +0.50963 -37.0637 45.1285 +9.76996e-15 -37.6998 45.903 +-0.517484 -37.6349 45.824 +-1.03493 -37.6306 45.8188 +-1.54706 -37.4965 45.6555 +-2.06605 -37.5499 45.7206 +-2.58663 -37.6005 45.7821 +-3.06689 -37.1411 45.2227 +-3.62018 -37.5661 45.7403 +-4.13656 -37.5446 45.7141 +-4.62909 -37.3305 45.4533 +-5.2032 -37.746 45.9593 +-5.72199 -37.7158 45.9225 +-6.24035 -37.6827 45.8821 +-6.76955 -37.7097 45.9151 +-7.31216 -37.7968 46.0211 +-7.72715 -37.2514 45.357 +-8.2808 -37.3958 45.5328 +-8.94247 -37.9762 46.2396 +-9.44864 -37.8625 46.1011 +-9.85334 -37.3706 45.5022 +-10.3494 -37.252 45.3578 +-10.8795 -37.2557 45.3623 +-11.5439 -37.6924 45.894 +-11.9023 -37.1295 45.2087 +-12.5994 -37.6209 45.807 +-13.0946 -37.4877 45.6448 +-13.632 -37.4756 45.6301 +-14.1468 -37.3987 45.5364 +-14.8298 -37.75 45.9641 +-15.3733 -37.7279 45.9372 +-15.8915 -37.6413 45.8318 +-16.4352 -37.613 45.7974 +-16.9517 -37.5206 45.6848 +-17.4669 -37.4252 45.5687 +-18.244 -37.8733 46.1143 +-18.8543 -37.9525 46.2106 +-19.3754 -37.8465 46.0817 +-19.9267 -37.798 46.0226 +-20.7061 -38.1663 46.471 +-20.9297 -37.5117 45.674 +-21.7867 -37.9907 46.2572 +-22.2382 -37.7497 45.9638 +-23.1506 -38.2769 46.6057 +-23.7126 -38.2063 46.5197 +-24.2745 -38.1323 46.4297 +-25.0275 -38.3482 46.6926 +-25.5929 -38.2666 46.5932 +-26.1579 -38.1816 46.4896 +-27.0073 -38.4991 46.8762 +-27.2039 -37.8861 46.1298 +-28.1464 -38.3091 46.645 +-28.7151 -38.2091 46.5231 +-29.2394 -38.0486 46.3277 +-30.0737 -38.2828 46.6129 +-30.5536 -38.0582 46.3394 +-31.1219 -37.9438 46.2001 +-32.018 -38.2183 46.5344 +-32.5422 -38.0395 46.3167 +-33.5488 -38.413 46.7714 +-34.0265 -38.1705 46.4761 +-35 -38.4752 46.8472 +-35.5784 -38.3346 46.6759 +-36.6707 -38.7345 47.1629 +-37.1496 -38.4758 46.8479 +-37.6773 -38.2686 46.5956 +-38.2557 -38.112 46.4049 +-39.3229 -38.4309 46.7932 +-39.7947 -38.1588 46.4619 +-40.8211 -38.4104 46.7683 +-41.3477 -38.1829 46.4912 +-42.3873 -38.4203 46.7803 +-42.8559 -38.1324 46.4298 +-43.9663 -38.4071 46.7643 +-44.4333 -38.1111 46.4038 +-45.5574 -38.3705 46.7196 +-46.0832 -38.1166 46.4106 +-47.8985 -38.9102 47.3768 +-47.7469 -38.0971 46.3868 +-49.5904 -38.867 47.3242 +-50.123 -38.5909 46.988 +-51.2302 -38.7494 47.1809 +-51.761 -38.4642 46.8337 +-53.4688 -39.0382 47.5326 +-53.9373 -38.6931 47.1124 +-55.0694 -38.8173 47.2637 +-55.5335 -38.4641 46.8336 +-57.2879 -38.9905 47.4746 +-57.8906 -38.7178 47.1425 +-59.046 -38.8066 47.2507 +-60.4885 -39.0666 47.5672 +-61.5183 -39.0442 47.54 +-62.1954 -38.791 47.2316 +-63.5896 -38.9741 47.4546 +-64.5583 -38.8826 47.3432 +-66.5532 -39.3892 47.9601 +-67.5346 -39.2764 47.8227 +-68.9638 -39.4104 47.9859 +-70.6265 -39.6578 48.2871 +-71.8484 -39.6399 48.2652 +-72.6188 -39.3641 47.9295 +-74.7659 -39.8171 48.4811 +-75.542 -39.5226 48.1225 +-77.9477 -40.0613 48.7784 +-79.1999 -39.9837 48.6838 +-80.4559 -39.8951 48.576 +-81.3187 -39.6025 48.2198 +-82.8984 -39.6472 48.2742 +-84.0834 -39.4886 48.0811 +-86.4839 -39.8794 48.5569 +-87.0289 -39.3989 47.9718 +-89.6971 -39.8619 48.5356 +-91.9725 -40.1185 48.848 +-93.6812 -40.1045 48.8309 +-95.9803 -40.3197 49.093 +-98.0406 -40.4088 49.2015 +-99.7732 -40.3416 49.1197 +-101.342 -40.1911 48.9365 +-103.511 -40.2584 49.0183 +-106.032 -40.4354 49.2338 +-108.134 -40.4264 49.2229 +-110.851 -40.6193 49.4578 +-113.407 -40.7226 49.5836 +-115.362 -40.5853 49.4164 +-117.586 -40.5202 49.3371 +-121.405 -40.9698 49.8846 +-123.827 -40.9113 49.8133 +-98.0107 -31.6951 38.5918 +-97.8163 -30.9528 37.6879 +-98.8673 -30.6046 37.264 +-98.4721 -29.81 36.2964 +-98.7875 -29.2366 35.5983 +-98.3668 -28.4515 34.6423 +-98.0234 -27.6991 33.7262 +-98.4005 -27.1551 33.0639 +-98.5861 -26.5595 32.3387 +-98.8551 -25.9882 31.643 +-98.2815 -25.2019 30.6857 +-98.3451 -24.5869 29.9368 +-95.8787 -23.3589 28.4416 +-68.2834 -16.2034 19.7291 +-59.2006 -13.6756 16.6513 +-42.7017 -9.59726 11.6856 +-36.8752 -8.05862 9.81212 +-34.519 -7.33045 8.92551 +-33.287 -6.86441 8.35806 +-29.4699 -5.89729 7.18051 +-20.3693 -3.95246 4.81249 +-16.3958 -3.08241 3.75312 +-15.6686 -2.85153 3.47201 +-15.7072 -2.76464 3.36621 +-15.0684 -2.56256 3.12015 +-15.1999 -2.49489 3.03777 +-15.0396 -2.3799 2.89775 +-14.78 -2.25207 2.7421 +-14.5181 -2.12729 2.59017 +-13.0824 -1.84075 2.24128 +-13.3028 -1.79461 2.18511 +-14.3069 -1.8474 2.24938 +-13.3501 -1.64699 2.00536 +-14.1589 -1.66551 2.02792 +-14.0828 -1.57601 1.91894 +-14.7943 -1.57128 1.91317 +-13.9264 -1.39993 1.70454 +-14.3407 -1.36026 1.65625 +-14.656 -1.30728 1.59174 +-12.8888 -1.07694 1.31128 +-14.5904 -1.13701 1.38442 +-14.6055 -1.05616 1.28597 +-15.7134 -1.0482 1.27628 +-14.1346 -0.863801 1.05176 +-14.2456 -0.791016 0.963136 +-14.3556 -0.717064 0.873092 +-14.8637 -0.659664 0.803202 +-12.6763 -0.492075 0.599147 +-12.8823 -0.428492 0.521729 +-12.2883 -0.340515 0.414609 +-12.0926 -0.268014 0.326332 +-12.0959 -0.201028 0.24477 +-11.8982 -0.131812 0.160494 +-11.1996 -0.0620315 0.0755291 +11.7 -1.77636e-15 -1.7053e-13 +13.5995 -0.0744934 0.09239 +25.8961 -0.283721 0.351883 +29.4899 -0.484705 0.601153 +33.7794 -0.740409 0.918287 +38.1636 -1.04587 1.29714 +40.9438 -1.34685 1.67042 +39.626 -1.52126 1.88673 +40.0023 -1.75576 2.17757 +31.9014 -1.5759 1.9545 +18.9277 -1.03941 1.28912 +18.9125 -1.14305 1.41765 +18.3987 -1.21379 1.5054 +21.2624 -1.52058 1.88589 +21.836 -1.68289 2.08719 +35.3946 -2.92485 3.62752 +40.9971 -3.61654 4.48538 +45.9892 -4.31412 5.35056 +51.4586 -5.11572 6.34474 +55.4293 -5.82214 7.22087 +64.2095 -7.10651 8.8138 +93.8025 -10.9124 13.534 +94.9233 -11.5814 14.3638 +94.7587 -12.1009 15.0081 +94.7825 -12.6456 15.6836 +94.6031 -13.1643 16.3269 +95.3908 -13.8232 17.1441 +95.0978 -14.3305 17.7733 +94.8949 -14.8509 18.4187 +95.653 -15.5272 19.2575 +95.4335 -16.0505 19.9066 +95.2067 -16.5727 20.5542 +95.8378 -17.2492 21.3932 +95.5943 -17.7735 22.0435 +96.1086 -18.4433 22.8742 +95.8486 -18.969 23.5262 +95.5812 -19.4933 24.1764 +96.0652 -20.1754 25.0225 +95.8756 -20.7213 25.6994 +96.338 -21.4133 26.5577 +95.9426 -21.9187 27.1845 +96.3836 -22.6192 28.0533 +96.0654 -23.1463 28.7071 +96.8565 -23.9477 29.7009 +96.4271 -24.4538 30.3286 +96.0835 -24.981 30.9825 +96.653 -25.7516 31.9383 +96.383 -26.305 32.6246 +96.0136 -26.832 33.2782 +96.4559 -27.5911 34.2197 +96.0686 -28.1184 34.8737 +96.9377 -29.0219 35.9942 +96.5305 -29.5518 36.6514 +95.4 -29.8553 37.0278 +94.9813 -30.3767 37.6745 +95.3537 -31.1567 38.6419 +94.7403 -31.6188 39.215 +95.088 -32.4061 40.1915 +95.1586 -33.1083 41.0624 +94.5206 -33.5665 41.6306 +94.9164 -34.3967 42.6603 +94.8654 -35.0746 43.5011 +94.6313 -35.6899 44.2641 +94.1315 -36.2068 44.9053 +94.6422 -37.1202 46.0381 +93.7008 -37.4686 46.4702 +91.8344 -37.4334 46.4266 +90.2264 -37.4847 46.4901 +89.3703 -37.837 46.9271 +86.4508 -37.2941 46.2538 +85.3556 -37.5142 46.5268 +83.284 -37.2878 46.2459 +82.3579 -37.558 46.5811 +81.0288 -37.6344 46.6758 +80.5025 -38.0768 47.2245 +78.3833 -37.7521 46.8217 +77.1463 -37.8322 46.9212 +75.2086 -37.55 46.5711 +74.4506 -37.842 46.9333 +72.5327 -37.5297 46.546 +70.8591 -37.3204 46.2864 +69.6532 -37.3402 46.3109 +69.1314 -37.7203 46.7823 +67.7056 -37.5985 46.6312 +66.5858 -37.6319 46.6727 +65.3228 -37.5711 46.5973 +64.2129 -37.585 46.6146 +63.035 -37.5464 46.5667 +62.5106 -37.8903 46.9932 +60.6976 -37.4393 46.4339 +60.2455 -37.8148 46.8995 +58.5259 -37.3822 46.3631 +57.9345 -37.6562 46.7029 +56.1697 -37.1526 46.0782 +55.6511 -37.4589 46.4581 +54.5201 -37.3458 46.3178 +54.0658 -37.6896 46.7443 +52.2807 -37.0911 46.002 +52.3535 -37.8024 46.8842 +50.592 -37.1809 46.1133 +50.1374 -37.5047 46.5149 +48.7872 -37.1482 46.0728 +48.2689 -37.4141 46.4025 +47.2489 -37.2841 46.2413 +46.6671 -37.4919 46.4991 +45.6571 -37.3478 46.3203 +45.1361 -37.5965 46.6288 +43.7195 -37.0854 45.9949 +43.5549 -37.6282 46.6681 +42.3332 -37.252 46.2016 +41.7564 -37.4311 46.4237 +40.7246 -37.1929 46.1282 +40.7652 -37.9348 47.0484 +39.1323 -37.1099 46.0253 +38.5604 -37.2702 46.2241 +38.0408 -37.48 46.4843 +37.5183 -37.6869 46.7409 +36.5749 -37.4628 46.463 +36.0012 -37.6079 46.643 +35.0201 -37.317 46.2821 +34.55 -37.5617 46.5857 +33.5833 -37.2579 46.2088 +33.064 -37.4404 46.4352 +32.4945 -37.5649 46.5896 +31.6893 -37.409 46.3962 +31.1219 -37.5254 46.5406 +30.6444 -37.7504 46.8196 +29.7168 -37.4112 46.399 +29.2394 -37.629 46.6692 +28.2846 -37.2212 46.1634 +27.8083 -37.4316 46.4243 +26.9136 -37.0685 45.9739 +26.7226 -37.6732 46.7239 +25.9187 -37.4152 46.4039 +25.3975 -37.5557 46.5782 +24.6065 -37.2875 46.2456 +24.0497 -37.3626 46.3388 +23.4194 -37.3178 46.2831 +22.8997 -37.4446 46.4404 +22.1331 -37.1571 46.0838 +21.8551 -37.6898 46.7445 +21.0632 -37.3347 46.3041 +20.5108 -37.3893 46.3719 +19.7681 -37.0836 45.9927 +19.499 -37.668 46.7175 +18.6438 -37.1149 46.0315 +18.4487 -37.8758 46.9753 +17.6658 -37.4338 46.4271 +17.2273 -37.7102 46.7698 +16.5688 -37.5007 46.51 +16.1244 -37.7719 46.8463 +15.4234 -37.4334 46.4265 +14.8782 -37.4555 46.454 +14.1468 -36.9863 45.872 +13.812 -37.5516 46.5732 +13.2245 -37.442 46.4373 +12.7866 -37.7586 46.8299 +12.0817 -37.2736 46.2284 +11.7348 -37.893 46.9965 +11.1164 -37.6472 46.6917 +10.5752 -37.6449 46.6888 +10.0514 -37.7013 46.7588 +9.52686 -37.7549 46.8253 +8.86856 -37.247 46.1954 +8.48956 -37.9158 47.0248 +7.83157 -37.3385 46.3088 +7.33653 -37.5046 46.5148 +6.80351 -37.481 46.4855 +6.27171 -37.4544 46.4525 +5.68365 -37.0499 45.9509 +5.23806 -37.5799 46.6082 +4.63693 -36.9814 45.8659 +4.18539 -37.5689 46.5946 +3.60797 -37.0266 45.922 +3.14539 -37.6717 46.7221 +2.57354 -36.9977 45.8862 +2.09048 -37.575 46.6021 +1.54444 -37.0203 45.9142 +1.03144 -37.0901 46.0008 +0.516611 -37.1571 46.0838 +7.99361e-15 -37.2841 46.2413 +-0.517484 -37.2198 46.1617 +-1.04714 -37.655 46.7013 +-1.54968 -37.1458 46.0698 +-2.10095 -37.7632 46.8355 +-2.59099 -37.2486 46.1973 +-3.15586 -37.7971 46.8776 +-3.60797 -37.0266 45.922 +-4.19236 -37.6315 46.6723 +-4.63693 -36.9814 45.8659 +-5.29035 -37.955 47.0735 +-5.72199 -37.2999 46.2609 +-6.33442 -37.8289 46.917 +-6.75823 -37.2315 46.1761 +-7.31216 -37.38 46.3603 +-7.83157 -37.3385 46.3088 +-8.51739 -38.04 47.1789 +-8.94247 -37.5574 46.5803 +-9.46429 -37.5069 46.5177 +-9.86985 -37.0204 45.9143 +-10.5057 -37.3976 46.3821 +-11.0252 -37.3386 46.309 +-11.5439 -37.2768 46.2323 +-12.1016 -37.3352 46.3047 +-12.7658 -37.6973 46.7538 +-13.2894 -37.6259 46.6653 +-13.812 -37.5516 46.5732 +-14.1701 -37.0474 45.9477 +-14.9024 -37.5164 46.5295 +-15.3984 -37.3726 46.3512 +-16.1244 -37.7719 46.8463 +-16.6757 -37.7426 46.81 +-17.1998 -37.6498 46.6949 +-17.751 -37.6143 46.6509 +-18.5364 -38.0559 47.1986 +-18.8543 -37.5339 46.5512 +-19.5917 -37.8471 46.9396 +-20.1806 -37.8574 46.9524 +-20.9991 -38.2795 47.4759 +-21.2635 -37.6897 46.7444 +-22.0945 -38.1026 47.2565 +-22.6584 -38.039 47.1776 +-23.1864 -37.9134 47.0219 +-24.0425 -38.3106 47.5144 +-24.4993 -38.061 47.2049 +-25.0275 -37.9254 47.0367 +-25.9445 -38.3646 47.5815 +-26.5567 -38.3362 47.5462 +-27.0073 -38.0746 47.2217 +-27.5356 -37.9252 47.0364 +-28.5267 -38.3987 47.6237 +-29.0595 -38.241 47.4281 +-29.4585 -37.9111 47.019 +-30.0291 -37.8045 46.8867 +-30.9168 -38.0859 47.2358 +-31.5374 -38.0265 47.1621 +-32.4874 -38.3511 47.5647 +-33.0194 -38.1717 47.3421 +-33.9367 -38.4286 47.6608 +-34.4204 -38.1866 47.3607 +-35.5 -38.5945 47.8666 +-35.8322 -38.1823 47.3553 +-37.0827 -38.7378 48.0443 +-37.5676 -38.4797 47.7241 +-38.1542 -38.3257 47.5332 +-38.793 -38.2211 47.4035 +-39.8131 -38.4809 47.7257 +-40.4018 -38.3137 47.5183 +-41.4362 -38.5593 47.8229 +-41.9141 -38.2791 47.4754 +-42.9035 -38.4595 47.6991 +-43.4366 -38.2229 47.4058 +-45.0244 -38.8976 48.2425 +-45.0281 -38.1954 47.3717 +-46.9416 -39.1003 48.4939 +-46.6311 -38.1445 47.3085 +-48.4526 -38.9263 48.2781 +-48.4316 -38.2174 47.3988 +-50.1568 -38.8774 48.2175 +-50.6954 -38.6012 47.8749 +-51.8087 -38.7548 48.0654 +-52.3455 -38.4696 47.7116 +-53.9937 -38.9867 48.353 +-54.5999 -38.7365 48.0427 +-56.3408 -39.2756 48.7113 +-56.8171 -38.9192 48.2692 +-57.9699 -39.0197 48.3939 +-58.9232 -38.9738 48.337 +-60.1574 -39.1011 48.4948 +-60.909 -38.9044 48.2509 +-62.2961 -39.1019 48.4958 +-63.2653 -39.0232 48.3982 +-65.4599 -39.678 49.2103 +-66.0091 -39.3179 48.7638 +-67.2114 -39.3401 48.7913 +-68.4193 -39.3521 48.8062 +-70.0786 -39.6058 49.1209 +-70.8512 -39.3453 48.7977 +-72.5276 -39.5734 49.0806 +-73.7594 -39.5415 49.0411 +-75.4554 -39.7412 49.2887 +-76.6995 -39.6857 49.2199 +-78.6472 -39.975 49.5788 +-79.5912 -39.7381 49.2849 +-81.4015 -39.9189 49.5092 +-82.3501 -39.6626 49.1913 +-84.0165 -39.7388 49.2858 +-84.9677 -39.4639 48.9448 +-88.1829 -40.2144 49.8757 +-89.1456 -39.9121 49.5008 +-91.5812 -40.2503 49.9202 +-92.3845 -39.8538 49.4285 +-95.588 -40.4695 50.192 +-96.7308 -40.1869 49.8415 +-99.2147 -40.4418 50.1577 +-100.448 -40.1666 49.8164 +-103.038 -40.4132 50.1222 +-104.704 -40.2736 49.949 +-107.317 -40.4744 50.1981 +-109.168 -40.3629 50.0598 +-112.583 -40.7991 50.6008 +-113.843 -40.4281 50.1407 +-117.549 -40.8985 50.7241 +-118.992 -40.5526 50.2951 +-122.73 -40.9601 50.8004 +-124.359 -40.6341 50.3962 +-98.0998 -31.3741 38.9115 +-98.9797 -30.9756 38.4173 +-98.8673 -30.2671 37.5386 +-98.3818 -29.4542 36.5304 +-98.0625 -28.702 35.5975 +-98.4578 -28.1638 34.9299 +-98.7543 -27.5979 34.2281 +-98.3088 -26.8307 33.2765 +-98.5861 -26.2666 32.577 +-98.7627 -25.6776 31.8465 +-99.0232 -25.1121 31.1452 +-98.2521 -24.2927 30.1289 +-97.6525 -23.5287 29.1813 +-88.1409 -20.6848 25.6542 +-75.6453 -17.2816 21.4334 +-47.9805 -10.6647 13.2269 +-41.981 -9.07321 11.253 +-34.8983 -7.32927 9.09008 +-34.8087 -7.09904 8.80453 +-31.1865 -6.17201 7.65479 +-29.7411 -5.70732 7.07847 +-16.3958 -3.04842 3.78078 +-16.0531 -2.88929 3.58342 +-15.3217 -2.66706 3.3078 +-14.8753 -2.5018 3.10285 +-15.2967 -2.48309 3.07964 +-15.1366 -2.36884 2.93794 +-13.7104 -2.06605 2.56241 +-14.5181 -2.10383 2.60926 +-13.5705 -1.88837 2.34204 +-14.6722 -1.95753 2.42781 +-13.8169 -1.76446 2.18836 +-14.9207 -1.82045 2.25781 +-13.2739 -1.5442 1.91518 +-14.5752 -1.61313 2.00067 +-13.9066 -1.46071 1.81164 +-14.3215 -1.42376 1.76581 +-15.033 -1.4102 1.749 +-14.0618 -1.24045 1.53847 +-13.7811 -1.1388 1.41239 +-14.2927 -1.10152 1.36616 +-13.5126 -0.966348 1.19851 +-12.8293 -0.846373 1.04971 +-13.3383 -0.806145 0.999817 +-13.4486 -0.738526 0.915952 +-13.5581 -0.669757 0.830662 +-13.6666 -0.599849 0.743959 +-12.0774 -0.463657 0.575048 +-13.1819 -0.433622 0.537797 +-12.588 -0.344974 0.427852 +-12.2925 -0.269439 0.334171 +-11.9959 -0.197168 0.244536 +-12.3981 -0.135836 0.168469 +-12.0995 -0.0662771 0.0821998 +13.2 0 -2.27374e-13 +12.8995 -0.0698653 0.0882683 +28.7956 -0.311946 0.394114 +31.3892 -0.510129 0.6445 +35.6783 -0.773246 0.976925 +39.2626 -1.06391 1.34414 +41.2434 -1.34147 1.69482 +40.2248 -1.52691 1.9291 +41.0996 -1.78367 2.25349 +26.518 -1.29526 1.63644 +21.8167 -1.1846 1.49663 +15.9263 -0.951751 1.20245 +17.2052 -1.12231 1.41793 +20.3682 -1.44027 1.81965 +21.5383 -1.64129 2.07361 +36.386 -2.973 3.75611 +39.2146 -3.42044 4.3214 +45.0002 -4.17393 5.27337 +51.8536 -5.0971 6.43971 +61.0511 -6.34058 8.01073 +73.1712 -8.0074 10.1166 +93.9992 -10.8124 13.6604 +95.0215 -11.4632 14.4827 +94.9547 -11.9898 15.148 +94.7825 -12.5035 15.7971 +95.4817 -13.1373 16.5978 +95.2934 -13.6539 17.2505 +95.195 -14.184 17.9202 +94.992 -14.6991 18.5709 +95.653 -15.3528 19.3968 +95.4335 -15.8703 20.0506 +95.2067 -16.3866 20.7029 +95.8378 -17.0555 21.548 +95.5943 -17.5739 22.203 +96.2043 -18.2543 23.0626 +95.8486 -18.7559 23.6964 +95.5812 -19.2743 24.3513 +96.0652 -19.9488 25.2035 +95.781 -20.4684 25.8599 +96.2437 -21.1521 26.7236 +96.0366 -21.6937 27.408 +96.4772 -22.3869 28.2838 +96.1588 -22.9086 28.9428 +96.8565 -23.6787 29.9158 +96.4271 -24.1791 30.548 +96.1759 -24.7241 31.2366 +95.8246 -25.2441 31.8936 +96.383 -26.0096 32.8607 +96.0136 -26.5306 33.5189 +96.5469 -27.307 34.4998 +96.0686 -27.8026 35.126 +96.3058 -28.5089 36.0183 +96.6204 -29.247 36.9509 +95.6685 -29.603 37.4006 +94.9813 -30.0355 37.9471 +95.1763 -30.7494 38.849 +94.8286 -31.2928 39.5355 +95.0001 -32.0125 40.4449 +95.0712 -32.7063 41.3214 +94.6077 -33.22 41.9703 +94.7432 -33.9483 42.8906 +94.4346 -34.5232 43.6168 +94.8027 -35.3529 44.6651 +94.8989 -36.0921 45.5989 +94.3029 -36.5717 46.205 +94.3755 -37.3145 47.1434 +93.8472 -37.8242 47.7874 +91.0603 -37.4062 47.2592 +90.5309 -37.898 47.8805 +88.0991 -37.5783 47.4766 +87.3216 -37.9472 47.9427 +85.1565 -37.6979 47.6277 +83.976 -37.8658 47.8399 +81.8326 -37.5809 47.4799 +80.9816 -37.8732 47.8492 +79.256 -37.7437 47.6856 +78.7223 -38.1715 48.2261 +76.7739 -37.9009 47.8843 +75.8494 -38.12 48.1611 +73.4587 -37.5819 47.4812 +72.6976 -37.8586 47.8308 +70.3376 -37.2835 47.1043 +69.5842 -37.5409 47.4294 +68.829 -37.793 47.7479 +68.0721 -38.0398 48.0597 +66.06 -37.5684 47.4642 +65.3099 -37.7978 47.754 +63.6879 -37.5092 47.3894 +63.158 -37.8527 47.8234 +61.3395 -37.4103 47.2645 +60.8112 -37.7411 47.6824 +59.0867 -37.3165 47.1459 +59.1154 -37.9922 47.9996 +57.4088 -37.5456 47.4354 +56.9469 -37.9005 47.8837 +55.7362 -37.7499 47.6935 +54.668 -37.6814 47.6069 +53.4734 -37.5112 47.3919 +52.944 -37.7994 47.756 +51.2415 -37.2352 47.0432 +51.2302 -37.8916 47.8725 +49.5505 -37.3057 47.1323 +49.087 -37.6208 47.5304 +47.7469 -37.2538 47.0667 +47.2212 -37.511 47.3916 +45.6571 -36.9283 46.6554 +45.6778 -37.6202 47.5296 +44.1359 -37.0181 46.7689 +43.8488 -37.4566 47.3229 +42.7978 -37.2379 47.0466 +42.7314 -37.8749 47.8514 +41.291 -37.2866 47.1081 +40.7092 -37.4573 47.3238 +40.181 -37.6764 47.6006 +39.1595 -37.4241 47.2819 +38.5781 -37.5824 47.4819 +38.0482 -37.79 47.7441 +36.9929 -37.4654 47.334 +36.4647 -37.6643 47.5853 +35.4769 -37.3791 47.225 +34.95 -37.5698 47.466 +34.0265 -37.3256 47.1573 +33.5003 -37.5084 47.3883 +32.5422 -37.1975 46.9956 +32.4874 -37.9204 47.9088 +31.0757 -37.0489 46.8078 +30.9622 -37.7134 47.6474 +30.1184 -37.491 47.3663 +29.5024 -37.541 47.4296 +28.672 -37.3073 47.1343 +28.5267 -37.9674 47.9683 +27.66 -37.6686 47.5908 +27.17 -37.8737 47.8499 +26.2377 -37.4503 47.3149 +25.7492 -37.6481 47.5648 +24.8744 -37.2701 47.0872 +24.3869 -37.4609 47.3284 +23.8959 -37.6493 47.5663 +23.2939 -37.6614 47.5816 +22.7635 -37.7861 47.7392 +22.2313 -37.908 47.8931 +21.4638 -37.6174 47.526 +20.934 -37.7322 47.6711 +20.0537 -37.1968 46.9946 +19.7462 -37.7171 47.652 +19.0046 -37.4083 47.2619 +18.4487 -37.4504 47.3151 +17.6942 -37.0729 46.8381 +17.31 -37.4656 47.3342 +16.7024 -37.3785 47.2242 +16.3315 -37.8272 47.7911 +15.6237 -37.4936 47.3697 +15.0959 -37.5768 47.4748 +14.5436 -37.5968 47.5 +13.947 -37.4927 47.3685 +13.4193 -37.5669 47.4622 +12.9737 -37.8809 47.859 +12.4206 -37.8889 47.8691 +11.7538 -37.5283 47.4134 +11.2622 -37.7126 47.6463 +10.7141 -37.711 47.6443 +10.1999 -37.8288 47.7932 +9.66765 -37.8826 47.8611 +9.00159 -37.3811 47.2275 +8.6009 -37.9816 47.9861 +7.9621 -37.5344 47.4212 +7.43403 -37.5761 47.4739 +6.89408 -37.5533 47.445 +6.36578 -37.5892 47.4904 +5.84659 -37.684 47.6102 +5.38622 -38.2088 48.2733 +4.786 -37.7416 47.683 +4.24119 -37.6423 47.5575 +3.71786 -37.7257 47.6629 +3.18203 -37.6825 47.6083 +2.65206 -37.6982 47.6282 +2.11491 -37.5871 47.4878 +1.57062 -37.2249 47.0302 +1.06634 -37.9146 47.9015 +0.525337 -37.3604 47.2013 +8.88178e-15 -37.9204 47.9088 +-0.524465 -37.2983 47.1229 +-1.0646 -37.8525 47.8231 +-1.57585 -37.349 47.187 +-2.12538 -37.7732 47.7229 +-2.62589 -37.3262 47.1582 +-3.15062 -37.3106 47.1384 +-3.67512 -37.2921 47.1151 +-4.24817 -37.7042 47.6357 +-4.76247 -37.556 47.4485 +-5.29907 -37.5906 47.4922 +-5.89451 -37.9929 48.0005 +-6.41805 -37.8978 47.8803 +-6.87144 -37.4299 47.2892 +-7.49496 -37.8841 47.863 +-7.9621 -37.5344 47.4212 +-8.64265 -38.1659 48.219 +-9.03116 -37.5039 47.3826 +-9.65201 -37.8213 47.7837 +-10.1504 -37.6452 47.5612 +-10.662 -37.5276 47.4126 +-11.2075 -37.5295 47.415 +-11.7348 -37.4674 47.3365 +-12.2412 -37.3416 47.1776 +-12.7866 -37.3346 47.1687 +-13.311 -37.2639 47.0794 +-14.0145 -37.6742 47.5978 +-14.3335 -37.0537 46.8138 +-15.2895 -38.0586 48.0835 +-15.6488 -37.5537 47.4456 +-16.3574 -37.8872 47.8669 +-16.8895 -37.7971 47.7531 +-17.4754 -37.8235 47.7865 +-18.0066 -37.7275 47.6651 +-18.8287 -38.222 48.2899 +-19.0647 -37.5267 47.4115 +-19.9934 -38.1893 48.2487 +-20.1488 -37.3733 47.2177 +-21.0643 -37.967 47.9677 +-21.5305 -37.7344 47.6739 +-22.3681 -38.1412 48.1879 +-22.9736 -38.1349 48.1799 +-23.7956 -38.4725 48.6064 +-24.3357 -38.3422 48.4418 +-25.1736 -38.6693 48.8551 +-25.3719 -38.0154 48.029 +-26.2571 -38.3907 48.5031 +-26.8358 -38.304 48.3935 +-27.414 -38.2139 48.2797 +-27.9089 -38.0075 48.0189 +-28.9071 -38.4737 48.6079 +-29.3178 -38.1476 48.1959 +-30.423 -38.7125 48.9096 +-30.8769 -38.4352 48.5592 +-31.4161 -38.2665 48.3461 +-31.953 -38.0948 48.1292 +-32.9569 -38.4683 48.6011 +-33.4488 -38.2338 48.3049 +-34.7608 -38.9197 49.1714 +-35.3068 -38.73 48.9317 +-36.2 -38.9135 49.1636 +-36.6443 -38.609 48.7789 +-37.1857 -38.4091 48.5263 +-37.6721 -38.1533 48.2032 +-38.7901 -38.5268 48.675 +-39.3303 -38.3153 48.4078 +-40.3033 -38.5172 48.6628 +-40.8985 -38.3492 48.4506 +-41.8835 -38.5378 48.6889 +-42.4238 -38.3096 48.4005 +-43.4197 -38.485 48.6222 +-43.9011 -38.1978 48.2594 +-45.0244 -38.4607 48.5916 +-45.6229 -38.2653 48.3446 +-46.8814 -38.6116 48.7821 +-47.9704 -38.7993 49.0193 +-49.0067 -38.9293 49.1836 +-49.5522 -38.6624 48.8463 +-51.2896 -39.309 49.6632 +-51.2679 -38.5986 48.7658 +-52.9657 -39.1753 49.4944 +-53.4496 -38.8398 49.0704 +-55.1746 -39.3919 49.768 +-55.7263 -39.0916 49.3886 +-56.8761 -39.2034 49.5298 +-57.4252 -38.8939 49.1388 +-59.0611 -39.3076 49.6615 +-59.405 -38.8512 49.0848 +-60.4353 -38.8405 49.0713 +-61.5398 -38.8658 49.1033 +-63.3568 -39.321 49.6784 +-63.9072 -38.9764 49.243 +-65.8915 -39.491 49.8932 +-66.6619 -39.2608 49.6023 +-68.9667 -39.9141 50.4277 +-69.5253 -39.5391 49.9539 +-71.4162 -39.9085 50.4207 +-71.9746 -39.5202 49.9301 +-74.3389 -40.1061 50.6703 +-74.9 -39.7019 50.1597 +-77.2173 -40.2123 50.8045 +-77.7798 -39.7926 50.2742 +-79.1135 -39.7604 50.2335 +-80.2173 -39.6009 50.032 +-82.4259 -39.9673 50.495 +-83.7781 -39.8972 50.4064 +-85.1345 -39.8155 50.3031 +-86.4146 -39.6851 50.1384 +-88.911 -40.0911 50.6513 +-89.8784 -39.7882 50.2687 +-93.2195 -40.5102 51.1809 +-93.7856 -40.0038 50.5411 +-96.9145 -40.5703 51.2567 +-98.1484 -40.3178 50.9378 +-100.892 -40.6636 51.3747 +-102.303 -40.449 51.1036 +-104.564 -40.5512 51.2327 +-106.154 -40.3725 51.0069 +-109.117 -40.691 51.4093 +-110.978 -40.571 51.2577 +-113.449 -40.6511 51.3589 +-115.844 -40.6769 51.3915 +-118.773 -40.8603 51.6232 +-120.749 -40.6894 51.4072 +-124.319 -41.0245 51.8306 +-98.5469 -31.8384 40.2248 +-99.3472 -31.4161 39.6913 +-98.3533 -30.4338 38.4502 +-98.8673 -29.9272 37.8102 +-98.3818 -29.1234 36.7947 +-98.8782 -28.6157 36.1533 +-98.3668 -27.8217 35.1501 +-98.8456 -27.3131 34.5076 +-98.3088 -26.5293 33.5173 +-98.5861 -25.9716 32.8127 +-98.8551 -25.4129 32.1068 +-98.8378 -24.7836 31.3118 +-98.5312 -24.0881 30.4331 +-98.1193 -23.3756 29.5329 +-97.6949 -22.6694 28.6407 +-95.5667 -21.5875 27.2738 +-60.1405 -13.2174 16.699 +-50.8689 -10.8707 13.7341 +-38.7864 -8.05438 10.176 +-35.9499 -7.24943 9.15898 +-32.6171 -6.3826 8.06382 +-31.9406 -6.06056 7.65695 +-22.2446 -4.08942 5.16659 +-16.5337 -2.94237 3.71741 +-15.8035 -2.72003 3.43651 +-15.9378 -2.6504 3.34853 +-16.0713 -2.57952 3.25898 +-14.4574 -2.23714 2.82642 +-15.5579 -2.31813 2.92874 +-14.1284 -2.02436 2.55759 +-15.1326 -2.08209 2.63052 +-14.4766 -1.90973 2.41276 +-14.2089 -1.79414 2.26672 +-14.5281 -1.75263 2.21429 +-13.9622 -1.60602 2.02906 +-13.9843 -1.53034 1.93345 +-15.2874 -1.58772 2.00593 +-13.9264 -1.36894 1.72952 +-14.044 -1.30263 1.64575 +-14.854 -1.29562 1.6369 +-14.8717 -1.21512 1.53519 +-14.3919 -1.09672 1.3856 +-15.1023 -1.06791 1.3492 +-14.2217 -0.92769 1.17205 +-14.3337 -0.856578 1.08221 +-13.9467 -0.757278 0.95675 +-14.4553 -0.706064 0.892045 +-15.562 -0.675367 0.853263 +-13.8741 -0.526649 0.665372 +-12.8823 -0.419007 0.529376 +-13.2873 -0.36005 0.454889 +-11.9927 -0.259915 0.328379 +-11.596 -0.188456 0.238096 +-11.6982 -0.126728 0.160109 +-10.9996 -0.0595752 0.0752678 +24.9 0 -2.27374e-13 +26.999 -0.144557 0.18606 +30.7953 -0.329792 0.424476 +32.9887 -0.529989 0.682151 +36.9775 -0.792236 1.01969 +40.5614 -1.08653 1.39847 +39.5457 -1.27154 1.6366 +40.4245 -1.51693 1.95244 +39.5035 -1.69478 2.18136 +30.9044 -1.49224 1.92067 +23.6098 -1.2673 1.63114 +15.13 -0.893824 1.15044 +16.708 -1.0774 1.38673 +17.7849 -1.24322 1.60015 +28.9823 -2.18329 2.81012 +35.692 -2.88293 3.71063 +40.9971 -3.535 4.54992 +45.9892 -4.21686 5.42754 +55.2118 -5.36511 6.90545 +63.5168 -6.52124 8.39352 +84.9889 -9.1942 11.8339 +95.0807 -10.8117 13.9158 +95.1197 -11.3438 14.6006 +94.9547 -11.8526 15.2555 +94.7825 -12.3605 15.9092 +94.7007 -12.8808 16.5789 +95.2934 -13.4977 17.373 +95.0978 -14.0074 18.029 +94.992 -14.5309 18.7028 +94.7817 -15.0389 19.3566 +95.4335 -15.6887 20.193 +95.2067 -16.1991 20.8499 +95.8378 -16.8603 21.701 +95.4984 -17.3554 22.3382 +95.3436 -17.884 23.0186 +95.8486 -18.5414 23.8646 +95.5812 -19.0538 24.5243 +96.16 -19.7401 25.4075 +95.6865 -20.2142 26.0178 +96.338 -20.9306 26.9398 +96.0366 -21.4455 27.6026 +96.3836 -22.1093 28.4569 +96.1588 -22.6465 29.1483 +96.6704 -23.3628 30.0704 +96.4271 -23.9025 30.765 +96.0835 -24.4178 31.4283 +95.9166 -24.9793 32.1509 +96.2913 -25.6876 33.0626 +96.0136 -26.2271 33.757 +96.5469 -26.9946 34.7448 +96.0686 -27.4845 35.3754 +96.4864 -28.2355 36.342 +96.0811 -28.7511 37.0056 +97.1004 -29.7024 38.2301 +95.3377 -29.8033 38.36 +95.3537 -30.4543 39.1978 +94.8286 -30.9348 39.8163 +95.0001 -31.6463 40.7321 +95.1586 -32.3619 41.6531 +94.5206 -32.8097 42.2295 +94.8298 -33.5906 43.2346 +94.3484 -34.0971 43.8865 +94.4598 -34.8221 44.8196 +94.6431 -35.5829 45.7989 +94.8118 -36.3484 46.7842 +94.2912 -36.8547 47.4358 +94.3504 -37.592 48.3848 +92.7281 -37.6555 48.4665 +90.7796 -37.5673 48.353 +89.5001 -37.7391 48.5742 +87.8131 -37.7242 48.555 +86.2962 -37.7654 48.608 +85.1086 -37.9375 48.8295 +83.0384 -37.6983 48.5216 +82.499 -38.1415 49.092 +80.684 -37.9841 48.8895 +79.7467 -38.2258 49.2005 +77.7913 -37.9639 48.8634 +76.5489 -38.0314 48.9504 +74.8476 -37.8544 48.7225 +74.0765 -38.1354 49.0842 +71.9344 -37.6938 48.5158 +70.5653 -37.6347 48.4397 +69.2784 -37.6046 48.401 +68.7409 -37.974 48.8765 +67.3134 -37.8432 48.7082 +66.7726 -38.2022 49.1702 +64.9935 -37.8403 48.7044 +63.8054 -37.8032 48.6567 +62.6234 -37.7564 48.5963 +61.5183 -37.7432 48.5794 +60.2782 -37.6335 48.4382 +59.7406 -37.9548 48.8517 +58.6478 -37.9172 48.8033 +58.0381 -38.1848 49.1478 +56.3442 -37.7251 48.5561 +55.8724 -38.071 49.0013 +54.5999 -37.8632 48.7339 +54.0593 -38.1541 49.1083 +52.4105 -37.649 48.4581 +51.873 -37.9281 48.8175 +50.6318 -37.6837 48.5028 +50.1568 -38.001 48.9112 +48.4939 -37.4038 48.1426 +48.5141 -38.0971 49.0349 +46.7529 -37.3819 48.1144 +46.1592 -37.5818 48.3717 +44.6117 -36.9891 47.6089 +44.6129 -37.6733 48.4894 +43.4947 -37.4112 48.1522 +42.8462 -37.5422 48.3207 +42.1973 -37.669 48.4839 +41.2125 -37.4866 48.2491 +40.2914 -37.3477 48.0703 +40.1399 -37.9221 48.8097 +39.1154 -37.6699 48.4851 +38.4721 -37.7738 48.6188 +37.5154 -37.5599 48.3435 +36.9282 -37.7067 48.5325 +35.9337 -37.4272 48.1727 +35.4 -37.6182 48.4185 +34.8636 -37.8063 48.6606 +34.373 -38.0451 48.968 +33.4488 -37.7964 48.6479 +32.91 -37.974 48.8765 +31.953 -37.659 48.471 +31.4615 -37.8834 48.7598 +30.5199 -37.5562 48.3387 +29.8969 -37.6079 48.4052 +29.447 -37.8772 48.7519 +28.569 -37.5886 48.3804 +28.0333 -37.7402 48.5755 +27.4954 -37.8888 48.7668 +26.6763 -37.6407 48.4475 +26.1399 -37.7821 48.6295 +25.2954 -37.4671 48.2241 +25.0237 -37.9994 48.9091 +23.8226 -37.1044 47.7572 +23.6164 -37.7461 48.5831 +22.7985 -37.4113 48.1522 +22.5049 -37.9355 48.8269 +21.6974 -37.5919 48.3846 +21.1294 -37.6486 48.4577 +20.5931 -37.7603 48.6014 +20.117 -37.9858 48.8917 +19.5459 -38.0335 48.9531 +19.0626 -38.2541 49.237 +17.9498 -37.1782 47.8522 +17.6959 -37.8626 48.7331 +16.9429 -37.483 48.2445 +16.4609 -37.6908 48.5119 +15.8741 -37.6587 48.4706 +15.3378 -37.7422 48.5781 +14.7771 -37.7632 48.6052 +14.3294 -38.0801 49.013 +13.5924 -37.6162 48.416 +13.1608 -37.9876 48.894 +12.62 -38.0566 48.9828 +11.9256 -37.641 48.4478 +11.2804 -37.3414 48.0623 +10.8877 -37.8837 48.7603 +10.3485 -37.9406 48.8335 +9.80844 -37.9946 48.903 +9.13462 -37.4995 48.2658 +8.58698 -37.4862 48.2486 +8.06652 -37.5916 48.3843 +7.53153 -37.6334 48.4381 +6.98464 -37.6113 48.4097 +6.47031 -37.7693 48.613 +5.85618 -37.3139 48.0269 +5.30778 -37.2217 47.9081 +4.84093 -37.738 48.5727 +4.30397 -37.7624 48.6042 +3.76669 -37.784 48.632 +3.21866 -37.6802 48.4983 +2.64333 -37.1444 47.8086 +2.14632 -37.7089 48.5353 +1.59418 -37.351 48.0746 +1.0646 -37.4195 48.1627 +0.52621 -36.9943 47.6155 +6.21725e-15 -37.4252 48.1701 +-0.532319 -37.4238 48.1683 +-1.07856 -37.9102 48.7944 +-1.61512 -37.8417 48.7062 +-2.15679 -37.8929 48.7721 +-2.70004 -37.9412 48.8343 +-3.2396 -37.9253 48.8138 +-3.73007 -37.4166 48.159 +-4.31095 -37.8237 48.683 +-4.83308 -37.6768 48.4939 +-5.35136 -37.5273 48.3015 +-5.89451 -37.5582 48.3414 +-6.4285 -37.5252 48.2989 +-6.962 -37.4894 48.2528 +-7.53153 -37.6334 48.4381 +-8.06652 -37.5916 48.3843 +-8.72615 -38.0938 49.0307 +-9.19375 -37.7422 48.5782 +-9.63636 -37.328 48.045 +-10.2825 -37.6986 48.522 +-10.853 -37.7629 48.6048 +-11.1893 -37.0398 47.6741 +-11.9065 -37.5807 48.3703 +-12.4406 -37.5155 48.2864 +-12.9737 -37.4475 48.1988 +-13.5058 -37.3766 48.1076 +-14.2169 -37.7811 48.6282 +-14.7537 -37.7036 48.5284 +-15.5556 -38.278 49.2677 +-15.8741 -37.6587 48.4706 +-16.6421 -38.1056 49.0458 +-17.2102 -38.0742 49.0054 +-17.751 -37.9806 48.885 +-18.2906 -37.8841 48.7608 +-18.858 -37.8434 48.7084 +-19.3955 -37.741 48.5765 +-20.2406 -38.2192 49.1921 +-20.7517 -38.0512 48.9759 +-21.6503 -38.5768 49.6523 +-21.9645 -38.0545 48.9801 +-22.7101 -38.2814 49.2721 +-23.2538 -38.1583 49.1137 +-24.0823 -38.4906 49.5414 +-24.299 -37.8465 48.7123 +-25.5107 -38.7389 49.8609 +-25.7163 -38.0907 49.0266 +-26.5697 -38.4033 49.4291 +-27.1548 -38.3159 49.3165 +-28.1055 -38.7295 49.8489 +-28.2821 -38.0751 49.0067 +-29.2029 -38.4227 49.454 +-29.7914 -38.3203 49.3221 +-30.7298 -38.6556 49.7538 +-30.9661 -38.1052 49.0454 +-32.2787 -38.8673 50.0263 +-32.3686 -38.1488 49.1015 +-33.4264 -38.57 49.6435 +-33.8306 -38.2277 49.203 +-35.3426 -39.1184 50.3494 +-35.4053 -38.3937 49.4167 +-36.2 -38.4683 49.5127 +-37.1518 -38.696 49.8057 +-37.7008 -38.4955 49.5477 +-38.2469 -38.2923 49.2861 +-39.267 -38.5543 49.6234 +-39.8139 -38.3426 49.3509 +-40.8479 -38.5911 49.6707 +-41.3953 -38.3709 49.3873 +-42.3309 -38.5038 49.5584 +-42.877 -38.2758 49.2649 +-43.936 -38.497 49.5496 +-44.4818 -38.2603 49.245 +-45.7297 -38.6163 49.7032 +-46.2772 -38.3701 49.3863 +-47.3628 -38.5618 49.633 +-48.4574 -38.7448 49.8686 +-49.5607 -38.9191 50.0929 +-50.1124 -38.6522 49.7494 +-51.7301 -39.193 50.4454 +-52.3492 -38.9619 50.148 +-53.4799 -39.1031 50.3298 +-54.099 -38.8619 50.0193 +-55.765 -39.358 50.6578 +-56.3227 -39.0579 50.2716 +-57.2776 -39.0284 50.2337 +-58.7088 -39.3083 50.5939 +-60.0841 -39.531 50.8805 +-59.818 -38.6737 49.7771 +-61.8246 -39.2788 50.5558 +-62.2407 -38.8587 50.0152 +-64.276 -39.4351 50.757 +-65.3337 -39.3905 50.6996 +-66.6828 -39.508 50.8509 +-67.5324 -39.3184 50.6069 +-69.7711 -39.9177 51.3782 +-70.3363 -39.5426 50.8955 +-72.2337 -39.9035 51.36 +-73.4726 -39.8811 51.3311 +-75.3955 -40.2108 51.7554 +-75.9646 -39.8056 51.2339 +-77.6769 -39.9889 51.4699 +-79.0915 -40.0008 51.4851 +-80.5123 -40.0005 51.4848 +-81.5478 -39.7971 51.223 +-83.7655 -40.1522 51.68 +-84.4128 -39.7395 51.1489 +-87.3707 -40.3938 51.991 +-87.6204 -39.7785 51.199 +-90.2863 -40.2454 51.8 +-91.9136 -40.2237 51.7721 +-93.8748 -40.3283 51.9067 +-95.1866 -40.1369 51.6604 +-97.6606 -40.4148 52.0181 +-99.566 -40.4323 52.0405 +-101.731 -40.5325 52.1695 +-103.231 -40.3489 51.9333 +-106.006 -40.64 52.3079 +-107.177 -40.2953 51.8642 +-110.746 -40.8259 52.5472 +-112.615 -40.6985 52.3832 +-115.614 -40.953 52.7107 +-117.411 -40.7553 52.4563 +-121.31 -41.2555 53.1001 +-122.947 -40.9557 52.7143 +-98.7135 -32.2022 41.4475 +-98.3695 -31.4175 40.4375 +-98.7235 -30.8617 39.7222 +-99.2482 -30.3594 39.0756 +-98.0584 -29.3427 37.7672 +-98.4721 -28.8166 37.09 +-98.8782 -28.2883 36.41 +-98.4578 -27.5289 35.4325 +-98.1148 -26.801 34.4957 +-98.4005 -26.2503 33.7868 +-98.6781 -25.6985 33.0766 +-98.7627 -25.0987 32.3047 +-98.7451 -24.477 31.5045 +-98.2521 -23.745 30.5623 +-97.8392 -23.0423 29.6578 +-97.6012 -22.3886 28.8164 +-96.0366 -21.4455 27.6026 +-63.0627 -13.7011 17.6347 +-51.3417 -10.8462 13.9602 +-43.6229 -8.95505 11.5261 +-38.9933 -7.77321 10.0049 +-35.0014 -6.77083 8.71476 +-33.5663 -6.29614 8.10379 +-28.5728 -5.19269 6.68353 +-15.8608 -2.79034 3.59145 +-15.5145 -2.63973 3.3976 +-16.2276 -2.66772 3.43363 +-14.8127 -2.35031 3.02509 +-14.9426 -2.28576 2.94201 +-14.78 -2.17702 2.80205 +-14.6156 -2.07021 2.66457 +-15.1326 -2.05827 2.6492 +-13.8897 -1.81135 2.33139 +-14.2089 -1.77361 2.28282 +-13.9391 -1.66235 2.13961 +-14.7488 -1.6771 2.1586 +-13.8858 -1.50219 1.93347 +-14.2025 -1.45816 1.87681 +-14.519 -1.41086 1.81593 +-14.2418 -1.30587 1.68079 +-14.3589 -1.2381 1.59357 +-14.376 -1.16118 1.49456 +-13.3001 -1.00192 1.28958 +-13.6119 -0.951507 1.22469 +-12.531 -0.808052 1.04005 +-13.836 -0.817378 1.05205 +-12.9505 -0.695139 0.894716 +-13.8572 -0.669101 0.861202 +-13.3674 -0.573487 0.738137 +-14.6726 -0.550588 0.708664 +-14.58 -0.468799 0.603393 +-13.3872 -0.358607 0.461564 +-12.6923 -0.27193 0.350002 +-12.5957 -0.20236 0.260458 +-11.9982 -0.12849 0.165381 +-12.3995 -0.0663892 0.0854498 +28.3 0 -2.27374e-13 +28.4989 -0.15081 0.197765 +32.1951 -0.340764 0.446863 +34.1883 -0.54286 0.711884 +37.1773 -0.787235 1.03235 +38.7631 -1.02625 1.34578 +37.9479 -1.20594 1.58142 +37.8293 -1.403 1.83983 +36.2116 -1.53544 2.01352 +33.3967 -1.59379 2.09003 +23.5102 -1.24724 1.63558 +15.0305 -0.877591 1.15084 +16.3102 -1.03949 1.36315 +22.3554 -1.54448 2.02537 +33.9451 -2.52734 3.31424 +37.5758 -2.99971 3.93369 +45.1562 -3.84824 5.04643 +49.1541 -4.45452 5.84148 +66.7677 -6.41244 8.409 +72.5906 -7.36597 9.65942 +93.5567 -10.0032 13.1177 +94.3925 -10.6083 13.9113 +95.1197 -11.2115 14.7024 +94.9547 -11.7145 15.3619 +94.7825 -12.2164 16.0201 +94.6031 -12.7175 16.6773 +95.3908 -13.3541 17.512 +95.0978 -13.8442 18.1547 +94.992 -14.3616 18.8331 +95.7498 -15.0155 19.6907 +95.5301 -15.5216 20.3543 +95.2067 -16.0103 20.9952 +95.7417 -16.6472 21.8304 +95.4984 -17.1531 22.4939 +96.2043 -17.8351 23.3882 +95.8486 -18.3253 24.031 +96.4371 -19.0004 24.9163 +96.0652 -19.4908 25.5594 +95.8756 -20.0181 26.2509 +96.338 -20.6866 27.1276 +95.9426 -21.1749 27.7678 +96.4772 -21.8729 28.6832 +96.1588 -22.3825 29.3515 +96.7634 -23.1127 30.3091 +96.3344 -23.6012 30.9496 +96.0835 -24.1333 31.6473 +95.8246 -24.6644 32.3439 +96.2913 -25.3882 33.293 +96.0136 -25.9214 33.9922 +96.4559 -26.6548 34.954 +96.1593 -27.1898 35.6556 +96.5766 -27.9326 36.6296 +96.0811 -28.416 37.2635 +96.9214 -29.3021 38.4255 +96.496 -29.8139 39.0966 +95.265 -30.0713 39.4343 +94.9169 -30.6028 40.1312 +95.2638 -31.3642 41.1297 +94.4589 -31.7495 41.635 +94.6077 -32.4572 42.563 +94.8298 -33.1991 43.536 +94.2622 -33.6689 44.152 +94.4598 -34.4163 45.132 +94.8989 -35.2633 46.2428 +94.6422 -35.8605 47.026 +93.8695 -36.2622 47.5527 +93.9311 -36.9888 48.5055 +93.562 -37.5513 49.2432 +92.5206 -37.8415 49.6238 +89.9946 -37.5054 49.183 +89.4514 -37.9801 49.8055 +87.7617 -37.9591 49.7779 +85.5131 -37.6735 49.4035 +84.405 -37.8721 49.6639 +83.5373 -38.1714 50.0563 +81.9534 -38.1321 50.0048 +80.7711 -38.2656 50.1799 +78.8869 -38.0499 49.897 +77.9477 -38.275 50.1922 +75.6964 -37.8375 49.6185 +75.149 -38.2366 50.1419 +72.8469 -37.727 49.4736 +71.8484 -37.8724 49.6642 +70.4018 -37.769 49.5286 +69.1868 -37.7749 49.5364 +67.7558 -37.648 49.3699 +67.6502 -38.2532 50.1636 +65.5738 -37.7332 49.4817 +65.0283 -38.0787 49.9348 +63.2653 -37.6989 49.4367 +62.7204 -38.0322 49.8738 +61.6099 -38.0166 49.8534 +60.3658 -37.905 49.707 +59.1985 -37.8271 49.6049 +58.0381 -37.7398 49.4904 +56.8847 -37.6432 49.3636 +56.3408 -37.9427 49.7565 +54.5999 -37.422 49.0736 +54.0593 -37.7094 49.4506 +53.5145 -37.9941 49.8238 +52.3872 -37.8577 49.645 +51.3315 -37.7592 49.5158 +50.7232 -37.9822 49.8083 +49.0542 -37.395 49.0382 +49.0682 -38.0832 49.9407 +47.4225 -37.4754 49.1437 +46.8814 -37.725 49.4709 +45.5039 -37.2892 48.8994 +45.0244 -37.5776 49.2777 +43.7269 -37.1727 48.7467 +43.4197 -37.6013 49.3088 +42.1406 -37.18 48.7563 +42.1631 -37.9043 49.7061 +40.6778 -37.2664 48.8695 +40.5756 -37.887 49.6835 +39.5453 -37.64 49.3595 +39.0021 -37.8478 49.632 +38.4559 -38.0528 49.9008 +37.3918 -37.735 49.4841 +36.3905 -37.4612 49.1251 +35.85 -37.6524 49.3757 +34.9128 -37.4184 49.069 +34.8093 -38.0791 49.9353 +33.8306 -37.7822 49.546 +33.2855 -37.9598 49.7789 +32.3224 -37.6504 49.3732 +31.4161 -37.3878 49.0288 +31.2338 -37.9867 49.8142 +30.2914 -37.6601 49.3858 +29.3609 -37.3263 48.9482 +28.8226 -37.4803 49.1501 +27.9918 -37.2451 48.8417 +27.4954 -37.4472 49.1067 +26.9554 -37.5913 49.2957 +26.4134 -37.7325 49.4808 +25.6015 -37.4786 49.1479 +25.3609 -38.0625 49.9135 +24.5189 -37.7439 49.4957 +23.939 -37.8156 49.5898 +23.0436 -37.3728 49.0092 +22.7785 -37.9492 49.765 +22.0646 -37.7825 49.5464 +21.4549 -37.7832 49.5473 +20.6248 -37.3777 49.0155 +20.3642 -38.0044 49.8374 +19.5459 -37.5903 49.2943 +19.0042 -37.6923 49.4281 +18.2906 -37.4426 49.1006 +17.8062 -37.6545 49.3785 +17.2636 -37.7473 49.5002 +16.9009 -38.2472 50.1558 +16.0994 -37.7481 49.5013 +15.5314 -37.773 49.534 +14.7537 -37.2642 48.8667 +14.3744 -37.7544 49.5095 +13.7656 -37.6514 49.3745 +13.3895 -38.1973 50.0904 +12.62 -37.6131 49.3242 +12.2881 -38.3332 50.2686 +11.6084 -37.9794 49.8046 +11.044 -37.9797 49.805 +10.3485 -37.4984 49.1738 +9.91795 -37.971 49.7935 +9.26765 -37.6022 49.31 +8.85141 -38.1902 50.0811 +8.07957 -37.2136 48.8003 +7.75089 -38.2781 50.1963 +7.09784 -37.7755 49.5372 +6.57484 -37.9322 49.7426 +6.00953 -37.8448 49.628 +5.46467 -37.8752 49.6679 +4.84093 -37.2981 48.9112 +4.36676 -37.8667 49.6568 +3.76059 -37.2832 48.8916 +3.271 -37.8466 49.6304 +2.67823 -37.1961 48.7774 +2.14981 -37.3301 48.9531 +1.61512 -37.4007 49.0457 +1.07681 -37.4078 49.055 +0.5393 -37.4726 49.14 +7.10543e-15 -37.4741 49.142 +-0.538427 -37.4121 49.0606 +-1.09601 -38.0747 49.9295 +-1.61512 -37.4007 49.0457 +-2.1882 -37.9967 49.8272 +-2.70004 -37.499 49.1746 +-3.27623 -37.9072 49.7099 +-3.76669 -37.3437 48.9709 +-4.37373 -37.9272 49.7362 +-4.91154 -37.8422 49.6246 +-5.43852 -37.6939 49.4302 +-5.99036 -37.7241 49.4698 +-6.61665 -38.1734 50.059 +-7.0752 -37.6549 49.3791 +-7.64121 -37.7364 49.4859 +-8.18399 -37.6946 49.4311 +-8.89316 -38.3704 50.3173 +-9.31199 -37.7821 49.5459 +-9.80844 -37.5518 49.2438 +-10.299 -37.319 48.9385 +-11.0093 -37.8602 49.6483 +-11.5173 -37.6813 49.4137 +-12.269 -38.2737 50.1905 +-12.62 -37.6131 49.3242 +-13.1608 -37.5449 49.2348 +-13.7006 -37.4738 49.1416 +-14.4644 -37.9907 49.8194 +-14.7771 -37.3231 48.944 +-15.5556 -37.8319 49.6111 +-16.1245 -37.8068 49.5783 +-16.8491 -38.1301 50.0022 +-17.1834 -37.572 49.2703 +-17.9716 -38.0043 49.8372 +-18.5462 -37.9658 49.7868 +-19.3842 -38.4461 50.4166 +-19.6361 -37.7638 49.5218 +-20.4878 -38.2351 50.1399 +-20.8152 -37.7227 49.468 +-21.8782 -38.5285 50.5246 +-22.1314 -37.8968 49.6963 +-22.9838 -38.2911 50.2133 +-23.5339 -38.168 50.052 +-24.4049 -38.5515 50.5548 +-24.9221 -38.3645 50.3096 +-25.8479 -38.7934 50.872 +-26.4434 -38.7112 50.7642 +-26.9604 -38.5139 50.5055 +-27.5536 -38.4254 50.3895 +-28.1055 -38.2782 50.1964 +-28.6968 -38.1831 50.0718 +-29.9636 -38.9641 51.0959 +-30.2649 -38.4757 50.4553 +-31.0805 -38.6411 50.6723 +-31.68 -38.5294 50.5258 +-32.6873 -38.9006 51.0126 +-32.7842 -38.1883 50.0785 +-33.7081 -38.4416 50.4107 +-34.2123 -38.2085 50.1051 +-35.682 -39.0337 51.1872 +-35.7007 -38.2629 50.1763 +-36.6 -38.4401 50.4088 +-37.6086 -38.7152 50.7694 +-38.2158 -38.5667 50.5747 +-39.1351 -38.7249 50.7822 +-39.691 -38.5163 50.5087 +-40.2437 -38.3048 50.2313 +-41.3381 -38.599 50.6171 +-42.2784 -38.7328 50.7925 +-43.5611 -39.161 51.3541 +-44.0664 -38.8791 50.9844 +-45.1978 -39.1412 51.3281 +-45.7013 -38.8511 50.9477 +-46.8465 -39.0984 51.272 +-47.8238 -39.1902 51.3924 +-48.9877 -39.4199 51.6936 +-49.5532 -39.1592 51.3518 +-50.6074 -39.2778 51.5072 +-51.1707 -39.0085 51.1541 +-52.3595 -39.2074 51.415 +-52.9217 -38.9289 51.0497 +-54.1227 -39.1119 51.2896 +-54.6186 -38.7779 50.8517 +-56.4211 -39.3569 51.611 +-57.1841 -39.1931 51.3962 +-58.2144 -39.2045 51.4111 +-59.3168 -39.2526 51.4742 +-60.4933 -39.3363 51.584 +-61.2636 -39.1467 51.3353 +-62.7277 -39.3881 51.6519 +-63.5725 -39.2276 51.4414 +-64.9831 -39.4043 51.6731 +-65.9757 -39.3139 51.5546 +-67.4021 -39.4688 51.7577 +-68.838 -39.6115 51.9448 +-70.2831 -39.742 52.1159 +-70.6312 -39.2456 51.4651 +-72.7539 -39.7225 52.0904 +-73.7721 -39.5771 51.8997 +-75.471 -39.7819 52.1683 +-76.2687 -39.4992 51.7975 +-78.443 -39.9126 52.3398 +-79.4002 -39.6888 52.0463 +-81.5226 -40.0304 52.4942 +-82.7217 -39.8995 52.3225 +-84.396 -39.9829 52.4318 +-85.6822 -39.867 52.2799 +-87.6103 -40.0325 52.4969 +-88.9066 -39.892 52.3126 +-90.9335 -40.0616 52.5351 +-92.6463 -40.0718 52.5485 +-95.4312 -40.5191 53.1351 +-96.7524 -40.3217 52.8762 +-99.4845 -40.6898 53.3589 +-100.316 -40.2622 52.7982 +-103.492 -40.7537 53.4427 +-104.328 -40.3022 52.8507 +-107.787 -40.8411 53.5573 +-109.394 -40.6495 53.306 +-112.889 -41.1309 53.9373 +-113.735 -40.6243 53.273 +-116.394 -40.7485 53.4359 +-119.152 -40.8776 53.6051 +-123.146 -41.392 54.2798 +-124.265 -40.9124 53.6508 +-98.4487 -31.7415 41.6244 +-98.6356 -31.1353 40.8295 +-98.8126 -30.5296 40.0352 +-98.5323 -29.7891 39.0642 +-98.0584 -29.0008 38.0304 +-98.4721 -28.4808 37.3485 +-98.8782 -27.9587 36.6638 +-98.4578 -27.208 35.6794 +-98.8456 -26.686 34.9949 +-98.4005 -25.9443 34.0223 +-98.7702 -25.4227 33.3382 +-98.8551 -24.8294 32.5602 +-98.3742 -24.1009 31.605 +-98.066 -23.4239 30.7171 +-98.306 -22.8823 30.0069 +-97.9759 -22.2126 29.1287 +-96.5064 -21.2993 27.931 +-61.9315 -13.2985 17.4391 +-51.2471 -10.7 14.0315 +-44.097 -8.94691 11.7326 +-39.1835 -7.72009 10.1238 +-36.7181 -7.02015 9.20593 +-34.5226 -6.40007 8.39278 +-28.7646 -5.16661 6.77528 +-16.1492 -2.80796 3.68224 +-15.9963 -2.68999 3.52753 +-15.5514 -2.52677 3.3135 +-14.8127 -2.32292 3.04617 +-14.6515 -2.21511 2.9048 +-14.4883 -2.10919 2.7659 +-14.8104 -2.07336 2.71892 +-14.0587 -1.88991 2.47835 +-14.1831 -1.82806 2.39724 +-14.9928 -1.84965 2.42555 +-13.9391 -1.64297 2.15452 +-14.7488 -1.65755 2.17364 +-13.5903 -1.45309 1.90552 +-14.4984 -1.47119 1.92926 +-13.9264 -1.3375 1.75395 +-13.9451 -1.26376 1.65724 +-14.854 -1.26587 1.66001 +-14.0785 -1.1239 1.47384 +-13.3994 -0.997636 1.30826 +-13.5126 -0.933554 1.22422 +-14.2217 -0.906388 1.1886 +-13.0397 -0.761355 0.998409 +-13.6479 -0.724032 0.949465 +-13.3587 -0.637515 0.83601 +-13.0681 -0.554113 0.726641 +-13.0756 -0.484942 0.635932 +-13.3816 -0.425253 0.557659 +-12.588 -0.333267 0.437033 +-12.8921 -0.272993 0.357992 +-11.9959 -0.190477 0.249783 +-11.5982 -0.12276 0.160982 +-11.6996 -0.0619111 0.0811876 +28.8 -1.77636e-15 1.13687e-13 +30.3988 -0.158954 0.212393 +33.2949 -0.348221 0.46529 +35.3879 -0.555236 0.741902 +37.4772 -0.784161 1.04779 +38.0637 -0.995773 1.33054 +36.2503 -1.13832 1.52101 +36.1325 -1.32416 1.76933 +33.5182 -1.40436 1.8765 +31.6023 -1.49024 1.99125 +27.3954 -1.4361 1.9189 +15.5282 -0.895884 1.19707 +16.9069 -1.06473 1.42268 +27.3232 -1.86529 2.49239 +35.8309 -2.63607 3.5223 +40.8475 -3.22218 4.30546 +48.5231 -4.08608 5.45979 +54.5937 -4.88874 6.53229 +70.0271 -6.6456 8.8798 +85.9055 -8.61353 11.5093 +94.4431 -9.97804 13.3326 +94.3925 -10.4824 14.0065 +94.2362 -10.9756 14.6654 +94.9547 -11.5754 15.4669 +94.7825 -12.0714 16.1297 +95.4817 -12.6833 16.9473 +95.196 -13.1685 17.5957 +95.0978 -13.6798 18.2789 +94.8949 -14.1765 18.9426 +95.653 -14.8221 19.8052 +95.4335 -15.3217 20.4728 +95.2067 -15.8202 21.1388 +95.8378 -16.466 22.0017 +95.5943 -16.9665 22.6705 +95.3436 -17.4657 23.3376 +95.9439 -18.1257 24.2194 +95.5812 -18.6082 24.8641 +96.16 -19.2784 25.7596 +95.8756 -19.7804 26.4304 +96.338 -20.441 27.3131 +96.0366 -20.9439 27.9851 +96.4772 -21.6132 28.8794 +96.1588 -22.1168 29.5523 +96.6704 -22.8164 30.4871 +96.4271 -23.3434 31.1913 +96.0835 -23.8467 31.8638 +96.561 -24.5589 32.8154 +96.383 -25.1106 33.5526 +96.0136 -25.6136 34.2247 +96.5469 -26.3632 35.2263 +96.1593 -26.867 35.8995 +95.7643 -27.3687 36.5699 +96.0811 -28.0786 37.5184 +97.1004 -29.0077 38.7598 +96.8524 -29.5687 39.5095 +95.3537 -29.742 39.741 +94.9169 -30.2394 40.4057 +95.088 -30.9347 41.3347 +94.3715 -31.3436 41.881 +94.6077 -32.0718 42.8541 +94.9164 -32.8349 43.8738 +95.1239 -33.5732 44.8603 +94.5456 -34.0385 45.482 +95.4957 -35.0637 46.8519 +94.2181 -35.276 47.1355 +94.9659 -36.2502 48.4372 +93.9311 -36.5496 48.8373 +94.3959 -37.4362 50.0219 +93.6812 -37.8613 50.59 +90.7363 -37.3655 49.9275 +90.1886 -37.8385 50.5596 +88.1687 -37.6823 50.3508 +87.3738 -38.0363 50.8238 +84.5657 -37.4938 50.0989 +83.7769 -37.8263 50.5432 +82.3501 -37.8617 50.5905 +82.1107 -38.4384 51.3611 +80.2173 -38.2322 51.0856 +79.0357 -38.3485 51.241 +77.3939 -38.2267 51.0782 +76.1448 -38.2833 51.1539 +73.9115 -37.8239 50.54 +72.6785 -37.8551 50.5817 +70.6265 -37.4397 50.0266 +70.0786 -37.8075 50.5181 +68.8617 -37.8081 50.519 +68.3084 -38.1668 50.9981 +66.6619 -37.9038 50.6468 +65.6757 -38.0012 50.7769 +64.6918 -38.0912 50.8972 +63.1446 -37.8348 50.5546 +62.1707 -37.9071 50.6512 +61.6162 -38.2307 51.0836 +59.818 -37.7691 50.4669 +58.5837 -37.6423 50.2974 +57.4927 -37.5938 50.2325 +56.943 -37.8929 50.6323 +55.7926 -37.7854 50.4885 +54.7153 -37.7139 50.393 +53.4496 -37.4974 50.1037 +52.9014 -37.7754 50.4753 +51.8404 -37.6807 50.3487 +51.2896 -37.9503 50.709 +50.1747 -37.795 50.5014 +49.6223 -38.056 50.8501 +48.5183 -37.8862 50.6232 +47.9045 -38.0905 50.8963 +46.3962 -37.5689 50.1993 +45.7885 -37.7616 50.4568 +44.0754 -37.024 49.4712 +43.5918 -37.3021 49.8429 +43.2734 -37.7261 50.4094 +42.6664 -37.9013 50.6435 +41.1745 -37.2736 49.8047 +41.0658 -37.8895 50.6276 +40.0288 -37.6479 50.3049 +39.426 -37.805 50.5147 +38.4559 -37.601 50.2421 +37.8553 -37.7493 50.4403 +36.898 -37.5327 50.1509 +36.35 -37.7242 50.4068 +35.356 -37.4435 50.0317 +34.7608 -37.5745 50.2068 +34.26 -37.8076 50.5182 +33.7081 -37.9852 50.7556 +32.6918 -37.6286 50.279 +32.1879 -37.8515 50.5769 +31.1892 -37.4821 50.0833 +30.7298 -37.7515 50.4432 +29.7914 -37.424 50.0056 +29.2452 -37.5783 50.2119 +28.6968 -37.7298 50.4143 +28.1868 -37.9331 50.686 +27.2346 -37.5296 50.1468 +26.6869 -37.6706 50.3351 +25.8694 -37.4212 50.0019 +25.2859 -37.4995 50.1065 +24.8488 -37.7975 50.5047 +23.9031 -37.3107 49.8542 +23.4289 -37.5465 50.1693 +22.7785 -37.4986 50.1054 +21.9979 -37.221 49.7344 +21.7805 -37.9011 50.6431 +20.9104 -37.4453 50.0341 +20.3024 -37.4392 50.026 +19.8165 -37.6582 50.3187 +19.2381 -37.7032 50.3787 +18.461 -37.3427 49.8971 +17.9716 -37.553 50.1781 +17.5308 -37.8765 50.6103 +17.1338 -38.314 51.1949 +16.2747 -37.706 50.3825 +15.7249 -37.7896 50.4942 +15.1739 -37.8704 50.6022 +14.7343 -38.2402 51.0963 +13.9604 -37.7309 50.4157 +13.5558 -38.2127 51.0595 +12.8194 -37.7537 50.4462 +12.2881 -37.8781 50.6124 +11.5537 -37.3518 49.9091 +11.2177 -38.1188 50.9341 +10.464 -37.4669 50.0629 +10.09 -38.1711 51.004 +9.40068 -37.6891 50.3599 +8.82357 -37.6182 50.2651 +8.28841 -37.7222 50.4042 +7.7387 -37.7642 50.4602 +7.1884 -37.8032 50.5123 +6.64801 -37.8989 50.6403 +5.99036 -37.2762 49.8082 +5.52567 -37.8433 50.5659 +4.89585 -37.2734 49.8044 +4.41558 -37.8355 50.5556 +3.80943 -37.3189 49.8653 +3.31287 -37.8759 50.6095 +2.72185 -37.3531 49.9109 +2.20914 -37.9048 50.6481 +1.64129 -37.5555 50.1814 +1.09252 -37.5028 50.111 +0.538427 -36.9679 49.3962 +7.99361e-15 -36.9692 49.398 +-0.547154 -37.567 50.1967 +-1.09427 -37.5627 50.191 +-1.64129 -37.5555 50.1814 +-2.21612 -38.0246 50.8082 +-2.7393 -37.5925 50.2308 +-3.28146 -37.5169 50.1299 +-3.82774 -37.4984 50.1051 +-4.42256 -37.8953 50.6355 +-4.97431 -37.8708 50.6026 +-5.51696 -37.7836 50.4861 +-6.06704 -37.7533 50.4457 +-6.6062 -37.6606 50.3218 +-7.17708 -37.7437 50.4328 +-7.71433 -37.6452 50.3013 +-8.2362 -37.4847 50.0867 +-9.01842 -38.4488 51.3751 +-9.44502 -37.8669 50.5974 +-9.9023 -37.461 50.0551 +-10.4475 -37.4078 49.984 +-10.9919 -37.3517 49.9091 +-11.7177 -37.882 50.6176 +-12.269 -37.8192 50.5338 +-12.7994 -37.695 50.3677 +-13.2856 -37.4507 50.0414 +-13.9171 -37.6138 50.2593 +-14.6218 -37.9484 50.7063 +-15.1739 -37.8704 50.6022 +-15.7491 -37.8478 50.572 +-16.2997 -37.764 50.46 +-17.0821 -38.1982 51.0402 +-17.6645 -38.1652 50.9961 +-18.4401 -38.5321 51.4864 +-18.8018 -38.0321 50.8182 +-19.3258 -37.875 50.6083 +-19.8767 -37.7726 50.4714 +-20.7041 -38.1801 51.0159 +-21.2911 -38.1272 50.9452 +-22.1386 -38.5243 51.4759 +-22.6655 -38.3506 51.2438 +-23.2232 -38.2306 51.0834 +-23.7791 -38.1077 50.9192 +-24.6916 -38.5413 51.4986 +-25.2519 -38.4107 51.3242 +-25.8104 -38.2772 51.1458 +-26.3669 -38.1408 50.9635 +-27.3121 -38.553 51.5143 +-28.2314 -38.9033 51.9823 +-28.4716 -38.3163 51.198 +-29.0285 -38.166 50.9971 +-29.9636 -38.5015 51.4454 +-30.4802 -38.2892 51.1618 +-31.6066 -38.8285 51.8824 +-32.0816 -38.5545 51.5163 +-32.6873 -38.4387 51.3615 +-33.6153 -38.6915 51.6993 +-34.7878 -39.202 52.3814 +-34.928 -38.5447 51.5032 +-35.9244 -38.8323 51.8874 +-36.1439 -38.2779 51.1467 +-37.3 -38.7102 51.7242 +-37.6593 -38.3071 51.1857 +-38.9369 -38.8278 51.8814 +-39.2919 -38.4184 51.3343 +-40.0089 -38.3639 51.2615 +-40.8348 -38.4059 51.3177 +-42.3185 -39.0452 52.1719 +-42.7751 -38.7226 51.7408 +-43.9526 -39.0438 52.1701 +-44.4062 -38.7137 51.729 +-45.3699 -38.8236 51.8759 +-45.9917 -38.6337 51.6221 +-46.964 -38.7311 51.7522 +-47.5263 -38.4841 51.4221 +-49.0479 -38.9997 52.1112 +-49.6749 -38.7893 51.83 +-50.7921 -38.9531 52.0488 +-51.9177 -39.108 52.2558 +-53.0517 -39.2541 52.4511 +-53.5578 -38.929 52.0167 +-54.7655 -39.1065 52.2538 +-55.333 -38.8187 51.8692 +-56.4867 -38.9348 52.0245 +-57.7805 -39.1316 52.2874 +-58.8835 -39.1842 52.3577 +-59.9249 -39.1841 52.3575 +-60.6979 -39.0008 52.1125 +-61.4701 -38.8123 51.8606 +-63.1444 -39.179 52.3507 +-64.3435 -39.232 52.4215 +-65.4074 -39.1906 52.3662 +-66.6176 -39.2251 52.4123 +-67.8337 -39.2499 52.4454 +-69.0556 -39.2649 52.4655 +-70.7219 -39.5153 52.8 +-71.7371 -39.3869 52.6284 +-73.4227 -39.6117 52.9288 +-74.2215 -39.3453 52.573 +-76.1502 -39.6634 52.9979 +-77.1812 -39.4972 52.7758 +-79.209 -39.8238 53.2123 +-80.0175 -39.5225 52.8097 +-81.8335 -39.7059 53.0548 +-83.1912 -39.6495 52.9794 +-85.2628 -39.914 53.3327 +-86.7135 -39.8678 53.2711 +-88.8083 -40.098 53.5787 +-90.3535 -40.0599 53.5277 +-93.2797 -40.6072 54.2591 +-93.8675 -40.118 53.6053 +-96.6599 -40.5535 54.1873 +-97.9062 -40.3181 53.8728 +-99.9819 -40.4077 53.9925 +-102.151 -40.5118 54.1315 +-104.247 -40.5635 54.2006 +-106.352 -40.5964 54.2446 +-108.805 -40.7372 54.4328 +-110.673 -40.6364 54.298 +-113.146 -40.7351 54.4299 +-115.286 -40.6893 54.3687 +-118.039 -40.8339 54.562 +-121.241 -41.1003 54.918 +-124.196 -41.2492 55.1168 +-101.855 -33.1361 44.2762 +-98.537 -31.3927 41.9467 +-98.3695 -30.6826 40.9979 +-98.8126 -30.1671 40.309 +-98.4428 -29.4087 39.2957 +-98.8673 -28.8928 38.6064 +-98.3818 -28.1168 37.5695 +-98.8782 -27.6267 36.9146 +-98.4578 -26.885 35.9235 +-98.8456 -26.3691 35.2342 +-98.4005 -25.6363 34.255 +-97.9417 -24.9101 33.2847 +-98.116 -24.3512 32.5378 +-98.0033 -23.725 31.7011 +-98.1591 -23.1677 30.9566 +-98.2127 -22.5892 30.1835 +-97.2266 -21.781 29.1036 +-97.0702 -21.1694 28.2863 +-62.5914 -13.2806 17.7455 +-50.5852 -10.4364 13.9451 +-44.9505 -9.01175 12.0414 +-39.8493 -7.75803 10.3662 +-37.5764 -7.09893 9.48554 +-36.244 -6.63942 8.87155 +-30.4905 -5.41158 7.23092 +-15.8608 -2.72507 3.64122 +-16.4781 -2.73811 3.65864 +-15.5514 -2.49677 3.33616 +-16.5553 -2.56538 3.42784 +-15.4277 -2.30477 3.07962 +-15.2662 -2.19604 2.93433 +-15.1027 -2.08918 2.79154 +-14.6444 -1.94528 2.59927 +-13.8897 -1.76898 2.3637 +-14.2089 -1.73213 2.31445 +-14.5281 -1.69206 2.26092 +-14.1589 -1.57236 2.10097 +-13.8858 -1.46705 1.96026 +-13.9066 -1.39439 1.86317 +-13.4326 -1.27476 1.70332 +-15.033 -1.34617 1.79874 +-14.4579 -1.21749 1.6268 +-13.6819 -1.07927 1.44212 +-12.8038 -0.941973 1.25866 +-14.4068 -0.98352 1.31417 +-14.7189 -0.926939 1.23857 +-14.0351 -0.809746 1.08198 +-13.7475 -0.720661 0.962941 +-13.9568 -0.658154 0.879421 +-13.0681 -0.547534 0.731611 +-13.9739 -0.512105 0.684271 +-14.2804 -0.448427 0.599184 +-13.5871 -0.355446 0.474945 +-13.4918 -0.282298 0.377205 +-12.7956 -0.200763 0.268259 +-11.2983 -0.118165 0.157891 +-12.0995 -0.0632677 0.0845379 +29.3 8.88178e-15 1.13687e-13 +31.5988 -0.16323 0.222259 +34.5947 -0.357438 0.4867 +36.4875 -0.565564 0.770091 +37.9769 -0.785004 1.06889 +36.5652 -0.944997 1.28674 +36.2503 -1.12455 1.53122 +36.1325 -1.30814 1.78121 +32.1216 -1.32957 1.81038 +32.998 -1.53724 2.09316 +27.6942 -1.4342 1.95286 +16.225 -0.924764 1.25919 +18.5976 -1.15703 1.57545 +29.6084 -1.99685 2.71898 +36.4264 -2.64746 3.60487 +42.4338 -3.30682 4.50268 +50.1076 -4.16846 5.67591 +59.341 -5.24956 7.14797 +74.1754 -6.9541 9.46894 +90.2451 -8.93925 12.172 +94.5415 -9.86757 13.436 +94.2941 -10.3448 14.0858 +95.1197 -10.9444 14.9023 +94.9547 -11.4354 15.5708 +94.7825 -11.9254 16.238 +94.6031 -12.4145 16.904 +95.196 -13.0092 17.7138 +95.0978 -13.5143 18.4016 +94.8949 -14.005 19.0697 +95.653 -14.6428 19.9382 +95.5301 -15.1517 20.6311 +95.2067 -15.6288 21.2807 +95.7417 -16.2505 22.1273 +95.5943 -16.7612 22.8227 +95.248 -17.2371 23.4706 +95.8486 -17.8886 24.3578 +95.5812 -18.3831 25.031 +96.0652 -19.0264 25.9069 +95.8756 -19.5411 26.6078 +96.338 -20.1937 27.4964 +96.0366 -20.6906 28.173 +96.7582 -21.4139 29.1578 +96.0654 -21.828 29.7218 +96.7634 -22.562 30.7212 +96.4271 -23.061 31.4007 +96.0835 -23.5582 32.0777 +96.653 -24.2849 33.0672 +96.2913 -24.7833 33.7458 +96.0136 -25.3038 34.4545 +96.3649 -25.9951 35.3959 +96.0686 -26.5169 36.1063 +96.5766 -27.267 37.1277 +96.8001 -27.9465 38.0529 +96.3844 -28.4454 38.7323 +96.496 -29.1035 39.6283 +95.7085 -29.4915 40.1566 +94.5637 -29.7624 40.5255 +94.2092 -30.278 41.2275 +94.4589 -30.993 42.2012 +94.6077 -31.6838 43.1418 +95.003 -32.4673 44.2086 +94.3484 -32.8967 44.7933 +94.4598 -33.5962 45.7458 +94.4725 -34.2684 46.661 +95.0662 -35.1629 47.879 +95.1346 -35.8753 48.849 +94.5182 -36.3331 49.4723 +94.2291 -36.9179 50.2687 +93.93 -37.5026 51.0648 +92.3845 -37.584 51.1756 +90.844 -37.6524 51.2687 +88.6572 -37.4327 50.9697 +87.6165 -37.6805 51.307 +85.2088 -37.3218 50.8187 +84.6554 -37.7606 51.4161 +82.6674 -37.5478 51.1263 +81.4803 -37.6818 51.3089 +79.9826 -37.6591 51.2779 +79.0357 -37.8846 51.5849 +77.0853 -37.6136 51.216 +76.5278 -38.0104 51.7563 +74.9 -37.866 51.5597 +73.3578 -37.7466 51.3971 +71.5253 -37.4574 51.0032 +70.7474 -37.7066 51.3425 +69.3041 -37.5907 51.1848 +68.089 -37.5839 51.1755 +66.6619 -37.4453 50.9868 +66.1073 -37.7882 51.4537 +65.1198 -37.8793 51.5777 +64.1346 -37.9631 51.6919 +62.8015 -37.8285 51.5086 +61.6162 -37.7683 51.4265 +60.4375 -37.6987 51.3318 +59.2657 -37.6198 51.2244 +58.0332 -37.4881 51.0451 +56.8761 -37.3905 50.9122 +56.389 -37.7272 51.3707 +55.2402 -37.615 51.2179 +54.164 -37.5389 51.1142 +53.5442 -37.7719 51.4314 +52.3492 -37.5903 51.1842 +51.7931 -37.8592 51.5504 +50.6727 -37.7084 51.345 +49.6223 -37.5956 51.1914 +48.4574 -37.3808 50.899 +47.9647 -37.677 51.3023 +46.872 -37.4951 51.0546 +46.3175 -37.7358 51.3823 +45.2368 -37.5399 51.1156 +44.108 -37.2873 50.7716 +43.3301 -37.3186 50.8142 +43.4493 -38.1298 51.9188 +42.1128 -37.6618 51.2815 +41.6104 -37.9275 51.6433 +40.0288 -37.1925 50.6425 +39.9029 -37.7994 51.4689 +38.8739 -37.5498 51.1291 +38.3188 -37.7492 51.4006 +37.3041 -37.4867 51.0431 +36.75 -37.678 51.3036 +35.7992 -37.4542 50.999 +35.2457 -37.6377 51.2488 +34.26 -37.3502 50.8573 +34.1306 -37.9961 51.7368 +33.1536 -37.6984 51.3314 +32.5965 -37.8682 51.5627 +32.037 -38.0352 51.79 +31.0367 -37.6671 51.2889 +30.1788 -37.452 50.996 +29.541 -37.4992 51.0602 +28.7382 -37.3272 50.826 +28.4716 -37.8528 51.5416 +27.5934 -37.5642 51.1486 +27.0386 -37.7052 51.3407 +26.1373 -37.3513 50.8588 +25.211 -36.9361 50.2934 +24.7755 -37.2301 50.6937 +24.1898 -37.3014 50.7908 +23.674 -37.4803 51.0345 +23.0522 -37.49 51.0476 +22.532 -37.6634 51.2838 +21.7154 -37.3306 50.8307 +21.2277 -37.5537 51.1344 +20.6114 -37.5493 51.1284 +19.8165 -37.2027 50.6564 +19.5012 -37.7565 51.4105 +18.6882 -37.345 50.8502 +18.1645 -37.497 51.0571 +17.5843 -37.5324 51.1053 +17.1338 -37.8505 51.5385 +16.4249 -37.5937 51.1888 +15.8943 -37.7345 51.3806 +15.1039 -37.2396 50.7067 +14.5543 -37.3162 50.811 +14.1335 -37.7367 51.3836 +13.5558 -37.7504 51.4022 +12.9988 -37.819 51.4956 +12.4598 -37.9428 51.6642 +11.7724 -37.5983 51.1951 +11.2003 -37.5994 51.1966 +10.6456 -37.6558 51.2734 +10.0744 -37.6509 51.2667 +9.53371 -37.76 51.4153 +8.96275 -37.7493 51.4007 +8.28841 -37.2659 50.7425 +7.72652 -37.2485 50.7189 +7.17708 -37.2871 50.7713 +6.75254 -38.0291 51.7817 +6.17247 -37.9447 51.6668 +5.51696 -37.3265 50.825 +4.97431 -37.4126 50.9423 +4.40861 -37.3187 50.8145 +3.86437 -37.3992 50.924 +3.31287 -37.4177 50.9492 +2.76111 -37.4335 50.9707 +2.20565 -37.3871 50.9076 +1.63344 -36.9237 50.2765 +1.10648 -37.5225 51.092 +0.546281 -37.0533 50.4531 +7.10543e-15 -37.5283 51.0998 +-0.555008 -37.6452 51.259 +-1.10474 -37.4634 51.0114 +-1.63606 -36.9829 50.3571 +-2.20914 -37.4462 50.9881 +-2.76547 -37.4926 51.0512 +-3.3181 -37.4768 51.0297 +-3.87048 -37.4583 51.0044 +-4.49232 -38.0273 51.7793 +-4.97431 -37.4126 50.9423 +-5.5954 -37.8572 51.5477 +-6.05745 -37.2376 50.704 +-6.79435 -38.2646 52.1024 +-7.27897 -37.8164 51.4921 +-7.82401 -37.7186 51.3589 +-8.4842 -38.1462 51.9412 +-8.96275 -37.7493 51.4007 +-9.50415 -37.6429 51.2559 +-10.0587 -37.5924 51.1872 +-10.6126 -37.5391 51.1145 +-11.3045 -37.9491 51.6728 +-11.8635 -37.8893 51.5914 +-12.1927 -37.1293 50.5565 +-12.9789 -37.761 51.4166 +-13.5351 -37.6925 51.3234 +-14.0902 -37.6212 51.2262 +-14.6218 -37.4893 51.0467 +-15.4074 -37.9879 51.7256 +-15.9668 -37.9068 51.6152 +-16.5501 -37.8802 51.579 +-17.0821 -37.7361 51.3828 +-17.6377 -37.6464 51.2607 +-18.4401 -38.066 51.8319 +-19.0006 -37.9693 51.7002 +-19.6181 -37.9829 51.7188 +-20.1473 -37.8237 51.502 +-20.7041 -37.7182 51.3583 +-21.2911 -37.6659 51.2872 +-22.2037 -38.1702 51.9738 +-22.6989 -37.9424 51.6637 +-23.6336 -38.4356 52.3352 +-24.1993 -38.312 52.1669 +-24.7632 -38.1856 51.9948 +-25.3252 -38.0562 51.8186 +-26.2225 -38.4179 52.3111 +-26.7878 -38.281 52.1247 +-27.5075 -38.3591 52.231 +-28.0321 -38.1612 51.9616 +-28.9596 -38.5017 52.4252 +-29.1944 -37.9197 51.6328 +-30.5976 -38.8404 52.8864 +-30.7815 -38.2 52.0144 +-31.6942 -38.4652 52.3755 +-32.2155 -38.2471 52.0785 +-33.2775 -38.6593 52.6399 +-34.077 -38.7485 52.7613 +-34.9287 -38.8846 52.9465 +-35.5483 -38.7547 52.7697 +-35.7789 -38.2072 52.0242 +-36.5378 -38.227 52.0512 +-37.55 -38.4982 52.4204 +-38.2684 -38.4557 52.3626 +-38.9884 -38.4088 52.2988 +-39.7621 -38.4078 52.2974 +-40.6448 -38.5022 52.4259 +-41.5333 -38.5903 52.5459 +-42.4274 -38.6721 52.6573 +-42.9959 -38.4515 52.3569 +-44.1762 -38.7678 52.7875 +-44.4629 -38.2942 52.1427 +-45.8288 -38.7419 52.7522 +-46.6304 -38.6965 52.6904 +-47.3167 -38.5499 52.4908 +-48.3591 -38.6847 52.6744 +-49.2887 -38.717 52.7184 +-50.2228 -38.7427 52.7534 +-50.8536 -38.5285 52.4617 +-51.98 -38.6812 52.6697 +-53.1146 -38.8253 52.8658 +-53.6214 -38.5038 52.4281 +-54.8298 -38.6788 52.6663 +-55.9175 -38.7542 52.769 +-56.5523 -38.5085 52.4345 +-57.913 -38.7469 52.7591 +-59.0173 -38.7982 52.829 +-59.9924 -38.7537 52.7683 +-61.6527 -39.135 53.2876 +-62.2273 -38.815 52.8518 +-63.4223 -38.8753 52.934 +-64.4136 -38.7996 52.8308 +-65.6195 -38.8421 52.8887 +-66.7602 -38.8335 52.8771 +-68.4811 -39.1451 53.3013 +-69.0556 -38.7899 52.8177 +-70.9413 -39.1583 53.3193 +-72.4006 -39.2703 53.4718 +-73.4227 -39.1325 53.2841 +-75.3449 -39.4577 53.727 +-77.0558 -39.6495 53.9881 +-77.6374 -39.25 53.4441 +-79.8218 -39.6465 53.984 +-81.0206 -39.5339 53.8306 +-83.3878 -39.9706 54.4254 +-83.6608 -39.391 53.6361 +-85.8144 -39.6862 54.038 +-87.1895 -39.6018 53.9231 +-89.1277 -39.7555 54.1324 +-91.4789 -40.0681 54.5581 +-94.0078 -40.4291 55.0496 +-94.9259 -40.0795 54.5736 +-97.3153 -40.3346 54.9209 +-98.6479 -40.1321 54.6452 +-100.811 -40.2499 54.8056 +-102.902 -40.3157 54.8952 +-104.582 -40.2017 54.74 +-106.773 -40.2642 54.8252 +-109.313 -40.4326 55.0545 +-111.525 -40.4541 55.0836 +-113.918 -40.5167 55.1689 +-115.803 -40.3774 54.9792 +-119.165 -40.7247 55.4521 +-122.024 -40.8655 55.6438 +-124.983 -41.0084 55.8384 +-97.5487 -31.3513 42.689 +-98.7135 -31.0685 42.3039 +-98.3695 -30.3114 41.2731 +-98.8126 -29.8021 40.5796 +-98.4428 -29.0529 39.5595 +-98.8673 -28.5433 38.8655 +-98.4721 -27.8022 37.8564 +-98.0625 -27.0673 36.8558 +-98.4578 -26.5597 36.1646 +-98.8456 -26.0501 35.4707 +-98.4923 -25.3498 34.5171 +-98.7702 -24.8169 33.7915 +-98.9475 -24.2604 33.0338 +-98.9305 -23.6597 32.2158 +-98.3451 -22.9308 31.2234 +-98.4927 -22.3795 30.4727 +-97.0392 -21.4761 29.2425 +-96.6944 -20.8323 28.3659 +-67.1161 -14.0684 19.156 +-49.9234 -10.1753 13.855 +-44.1919 -8.7525 11.9177 +-40.2297 -7.73734 10.5354 +-36.9088 -6.88845 9.37955 +-35.4789 -6.42065 8.74258 +-31.9287 -5.59829 7.62282 +-16.5337 -2.80631 3.82117 +-15.6108 -2.56261 3.48934 +-15.9378 -2.52784 3.44199 +-15.1999 -2.32685 3.16832 +-14.7485 -2.17665 2.9638 +-15.2662 -2.16947 2.95403 +-13.9335 -1.90412 2.59271 +-14.9373 -1.96019 2.66906 +-14.1831 -1.7845 2.42984 +-14.2089 -1.71117 2.32999 +-14.2336 -1.63771 2.22996 +-13.8639 -1.52097 2.07101 +-14.2797 -1.49042 2.0294 +-13.4135 -1.32867 1.80917 +-15.0129 -1.40749 1.91648 +-13.5495 -1.19865 1.63212 +-13.9628 -1.16157 1.58163 +-13.4837 -1.05077 1.43076 +-14.1934 -1.03157 1.40462 +-14.4068 -0.971621 1.32299 +-12.8293 -0.798169 1.08681 +-13.3383 -0.760232 1.03516 +-13.0502 -0.675829 0.920231 +-13.7575 -0.640905 0.872678 +-13.4671 -0.557426 0.759011 +-14.473 -0.523978 0.713466 +-12.7825 -0.396533 0.539933 +-13.2873 -0.3434 0.467586 +-13.3918 -0.276817 0.376924 +-12.7956 -0.198335 0.270059 +-12.4981 -0.129132 0.175831 +-12.7995 -0.0661184 0.0900291 +31.1 1.77636e-15 -1.7053e-13 +32.1988 -0.164278 0.22797 +35.7945 -0.365276 0.506896 +36.7874 -0.563183 0.781534 +39.0762 -0.797771 1.10707 +36.6651 -0.935897 1.29875 +34.4527 -1.05561 1.46487 +34.4357 -1.23133 1.70873 +31.922 -1.30502 1.81099 +32.998 -1.51829 2.10694 +26.698 -1.36557 1.89501 +15.8268 -0.89095 1.23638 +22.1778 -1.36277 1.89112 +32.6885 -2.1774 3.02159 +37.419 -2.68607 3.72749 +42.2356 -3.2508 4.51116 +50.8008 -4.17403 5.79233 +62.6047 -5.47002 7.59079 +75.6569 -7.00559 9.72171 +92.0204 -9.00269 12.4931 +94.5415 -9.74593 13.5245 +94.3925 -10.2279 14.1933 +95.1197 -10.8095 15.0004 +94.9547 -11.2944 15.6733 +94.7825 -11.7783 16.3449 +95.4817 -12.3754 17.1734 +95.196 -12.8489 17.8305 +95.0978 -13.3477 18.5228 +94.8949 -13.8324 19.1953 +95.653 -14.4623 20.0695 +95.5301 -14.9649 20.767 +95.3031 -15.4518 21.4425 +95.8378 -16.0663 22.2953 +95.5943 -16.5546 22.973 +96.013 -17.1613 23.8149 +95.8486 -17.6681 24.5182 +95.5812 -18.1564 25.1959 +96.0652 -18.7918 26.0776 +95.8756 -19.3002 26.7831 +96.338 -19.9448 27.6775 +96.0366 -20.4355 28.3585 +96.4772 -21.0885 29.2647 +96.0654 -21.559 29.9175 +96.6704 -22.2625 30.8938 +96.3344 -22.7548 31.577 +96.0835 -23.2678 32.289 +96.653 -23.9856 33.285 +96.2913 -24.4778 33.968 +96.8358 -25.2059 34.9784 +96.4559 -25.699 35.6627 +96.1593 -26.2148 36.3785 +96.4864 -26.9057 37.3373 +96.0811 -27.397 38.019 +96.3844 -28.0948 38.9874 +96.5851 -28.7713 39.9261 +95.7972 -29.155 40.4586 +95.1818 -29.5876 41.059 +95.088 -30.1837 41.8862 +94.4589 -30.611 42.4791 +94.5206 -31.2645 43.386 +94.9164 -32.0378 44.4592 +94.2622 -32.4615 45.0471 +94.2884 -33.1219 45.9635 +94.4725 -33.846 46.9683 +94.8966 -34.6675 48.1084 +93.9538 -34.9933 48.5604 +95.1052 -36.1081 50.1075 +93.9789 -36.366 50.4654 +94.4274 -37.2364 51.6733 +92.3845 -37.1207 51.5127 +90.844 -37.1882 51.6064 +88.9014 -37.0732 51.4467 +88.102 -37.4222 51.9311 +85.6911 -37.0704 51.4429 +84.4158 -37.1895 51.6082 +83.4608 -37.4408 51.9569 +82.1107 -37.5053 52.0463 +80.3739 -37.3769 51.8682 +79.4243 -37.6015 52.1799 +77.7798 -37.4847 52.0178 +76.298 -37.4291 51.9406 +75.2802 -37.5892 52.1628 +73.8106 -37.5115 52.055 +71.9746 -37.2281 51.6617 +70.7474 -37.2418 51.6807 +69.5253 -37.2459 51.6864 +68.7472 -37.4795 52.0106 +67.3147 -37.3459 51.8252 +66.1073 -37.3224 51.7926 +64.9058 -37.2894 51.7468 +63.9225 -37.3711 51.8602 +62.5912 -37.2371 51.6743 +62.033 -37.555 52.1154 +60.4375 -37.234 51.6699 +59.6749 -37.4126 51.9178 +58.7088 -37.457 51.9794 +58.1474 -37.7551 52.3931 +56.3227 -37.2184 51.6482 +55.765 -37.5043 52.045 +54.6835 -37.4318 51.9444 +54.0584 -37.6645 52.2673 +52.3492 -37.1269 51.5213 +51.7301 -37.3471 51.8269 +50.6727 -37.2436 51.6832 +50.1148 -37.5007 52.04 +48.5183 -36.9665 51.2987 +48.4461 -37.5861 52.1585 +46.872 -37.0329 51.3908 +46.3175 -37.2706 51.7207 +45.1787 -37.0295 51.3862 +44.6242 -37.2586 51.7041 +43.3301 -36.8585 51.1489 +43.3934 -37.6113 52.1935 +42.1128 -37.1975 51.6193 +41.6104 -37.4599 51.9835 +40.5124 -37.1777 51.5919 +39.9029 -37.3334 51.8079 +38.8739 -37.087 51.4659 +38.3188 -37.2839 51.7391 +37.7609 -37.478 52.0085 +37.2 -37.6692 52.2738 +36.1931 -37.3996 51.8997 +35.6335 -37.5828 52.1539 +34.6894 -37.3521 51.8339 +34.0836 -37.4761 52.0059 +33.1074 -37.1818 51.5975 +32.5511 -37.3493 51.83 +31.9924 -37.514 52.0584 +31.0367 -37.2028 51.6267 +30.4371 -37.307 51.7712 +29.8791 -37.4609 51.9848 +28.9871 -37.1863 51.6037 +28.4309 -37.3327 51.8069 +27.9124 -37.53 52.0807 +26.9604 -37.1328 51.5295 +26.4817 -37.377 51.8683 +25.8104 -37.348 51.8282 +24.9954 -37.0975 51.4805 +24.4407 -37.2236 51.6555 +23.604 -36.9088 51.2187 +23.2916 -37.4124 51.9175 +22.4652 -37.0889 51.4686 +21.9107 -37.2021 51.6257 +21.4181 -37.4233 51.9327 +20.7968 -37.42 51.9281 +20.027 -37.1344 51.5317 +19.4135 -37.1233 51.5163 +18.9154 -37.3331 51.8074 +18.0818 -36.8662 51.1595 +17.7446 -37.4077 51.911 +17.3409 -37.8356 52.5048 +16.3749 -37.0171 51.3689 +15.8459 -37.1559 51.5616 +15.2673 -37.1785 51.5929 +14.9368 -37.8246 52.4896 +14.1335 -37.2715 51.722 +13.7638 -37.8569 52.5343 +12.9988 -37.3528 51.8348 +12.4407 -37.4177 51.9248 +11.9 -37.5372 52.0906 +11.3392 -37.5965 52.1729 +10.6291 -37.134 51.5311 +10.1995 -37.6487 52.2454 +9.50415 -37.1789 51.5935 +9.088 -37.8049 52.4622 +8.41894 -37.3862 51.8811 +7.94588 -37.8339 52.5024 +7.29029 -37.4083 51.9118 +6.74209 -37.5022 52.0421 +6.1533 -37.3606 51.8455 +5.60411 -37.4488 51.968 +5.04492 -37.476 52.0057 +4.47837 -37.4419 51.9585 +3.92542 -37.5217 52.0692 +3.37044 -37.5987 52.176 +2.75675 -36.9136 51.2252 +2.20565 -36.9262 51.2428 +1.657 -36.9945 51.3376 +1.12219 -37.5861 52.1585 +0.553262 -37.0643 51.4344 +7.99361e-15 -37.0072 51.3552 +-0.553262 -37.0643 51.4344 +-1.10299 -36.9431 51.2663 +-1.6858 -37.6374 52.2297 +-2.24404 -37.5689 52.1347 +-2.80909 -37.6145 52.1979 +-3.37044 -37.5987 52.176 +-3.92542 -37.5217 52.0692 +-4.48534 -37.5003 52.0394 +-5.03707 -37.4177 51.9248 +-5.67384 -37.9147 52.6146 +-6.1533 -37.3606 51.8455 +-6.79435 -37.7929 52.4455 +-7.35821 -37.7568 52.3954 +-7.92151 -37.7178 52.3413 +-8.49726 -37.734 52.3637 +-9.10192 -37.8628 52.5425 +-9.51893 -37.2367 51.6737 +-10.1213 -37.36 51.8447 +-10.5961 -37.0186 51.371 +-11.2003 -37.1359 51.5338 +-11.8635 -37.4222 51.9311 +-12.4217 -37.3603 51.8451 +-12.9789 -37.2955 51.7553 +-13.5351 -37.2278 51.6614 +-14.0686 -37.1003 51.4844 +-14.8918 -37.7107 52.3314 +-15.2206 -37.0648 51.4351 +-15.991 -37.4963 52.0339 +-16.5501 -37.4133 51.9187 +-17.3409 -37.8356 52.5048 +-17.7179 -37.3514 51.8328 +-18.4677 -37.6529 52.2513 +-19.0574 -37.6134 52.1964 +-19.6474 -37.5706 52.137 +-20.448 -37.915 52.615 +-20.7659 -37.3644 51.8509 +-21.3546 -37.3125 51.7789 +-22.2689 -37.8102 52.4695 +-22.7322 -37.5298 52.0804 +-23.6678 -38.0167 52.7561 +-24.3044 -38.004 52.7385 +-24.8707 -37.8786 52.5644 +-25.5085 -37.8591 52.5373 +-26.3723 -38.1611 52.9565 +-26.9026 -37.9711 52.6928 +-27.5856 -37.9938 52.7243 +-28.3112 -38.0662 52.8247 +-29.163 -38.2941 53.141 +-29.9409 -38.4099 53.3017 +-30.3863 -38.0967 52.8671 +-30.8676 -37.8347 52.5035 +-31.6504 -37.9385 52.6475 +-32.4832 -38.0895 52.8571 +-33.1413 -38.0265 52.7697 +-33.8923 -38.0634 52.8209 +-34.9287 -38.4052 53.2953 +-34.9757 -37.6604 52.2617 +-35.8759 -37.8385 52.5088 +-36.9318 -38.1629 52.9589 +-37.6 -38.0742 52.8359 +-38.2176 -37.9313 52.6376 +-39.0914 -38.0356 52.7823 +-39.5531 -37.735 52.3652 +-40.6448 -38.0276 52.7712 +-41.8019 -38.3612 53.2341 +-42.4274 -38.1954 53.0041 +-42.9959 -37.9775 52.7017 +-44.1203 -38.2414 53.0679 +-44.6895 -38.0149 52.7536 +-45.7714 -38.2164 53.0332 +-46.6885 -38.267 53.1035 +-47.2579 -38.0274 52.7709 +-48.3591 -38.2078 53.0213 +-49.409 -38.3332 53.1952 +-50.4054 -38.4043 53.294 +-51.0999 -38.2378 53.0629 +-52.0422 -38.2501 53.08 +-52.8629 -38.165 52.9618 +-54.2575 -38.4802 53.3993 +-55.0226 -38.3363 53.1996 +-55.9824 -38.3209 53.1782 +-56.8147 -38.2103 53.0247 +-57.913 -38.2693 53.1065 +-58.6158 -38.0593 52.8151 +-59.5871 -38.0174 52.757 +-61.3117 -38.4388 53.3418 +-62.2273 -38.3365 53.1999 +-63.8391 -38.6484 53.6328 +-64.4837 -38.363 53.2366 +-66.2559 -38.7353 53.7533 +-67.3308 -38.6826 53.6802 +-68.697 -38.7844 53.8215 +-69.4909 -38.5532 53.5006 +-71.3801 -38.9149 54.0025 +-72.1795 -38.6677 53.6595 +-74.6861 -39.3151 54.5579 +-76.1688 -39.3975 54.6722 +-77.5087 -39.3909 54.6631 +-78.5499 -39.2218 54.4284 +-80.1282 -39.3081 54.5481 +-81.4836 -39.2697 54.4948 +-83.5432 -39.5515 54.8859 +-84.7565 -39.4149 54.6964 +-86.0508 -39.3049 54.5438 +-87.9036 -39.4339 54.7227 +-89.527 -39.4413 54.733 +-91.4789 -39.5742 54.9174 +-93.5224 -39.7246 55.1261 +-95.6586 -39.891 55.357 +-98.0525 -40.1391 55.7014 +-98.9776 -39.7698 55.1889 +-101.806 -40.146 55.711 +-104.403 -40.3995 56.0628 +-106.008 -40.2475 55.8517 +-107.532 -40.0506 55.5786 +-110.077 -40.213 55.804 +-112.293 -40.2303 55.828 +-115.203 -40.4689 56.159 +-116.837 -40.2357 55.8354 +-119.771 -40.4273 56.1013 +-122.807 -40.6208 56.3698 +-124.109 -40.2195 55.8129 +-97.8123 -31.0485 43.0863 +-98.537 -30.6306 42.5064 +-99.0791 -30.1537 41.8446 +-98.8126 -29.4348 40.8469 +-98.4428 -28.6948 39.82 +-98.8673 -28.1914 39.1215 +-98.3818 -27.4343 38.0708 +-98.8782 -26.956 37.4071 +-98.4578 -26.2323 36.4028 +-98.8456 -25.729 35.7044 +-98.4005 -25.014 34.7121 +-97.9417 -24.3054 33.7288 +-98.9475 -23.9614 33.2514 +-98.3742 -23.2367 32.2457 +-97.8799 -22.541 31.2803 +-98.5861 -22.1246 30.7025 +-97.9759 -21.4161 29.7192 +-96.6944 -20.5755 28.5528 +-73.4318 -15.2025 21.0967 +-50.3016 -10.1259 14.0519 +-44.3815 -8.68173 12.0477 +-40.2297 -7.64196 10.6048 +-36.8135 -6.78594 9.4169 +-36.3396 -6.49532 9.01361 +-32.2163 -5.5791 7.74216 +-16.4376 -2.7556 3.82397 +-16.189 -2.62476 3.64241 +-15.9378 -2.49668 3.46466 +-15.1999 -2.29817 3.18919 +-15.6218 -2.27711 3.15996 +-15.2662 -2.14273 2.97348 +-14.3232 -1.93325 2.68279 +-14.1563 -1.83479 2.54616 +-14.6722 -1.82328 2.53018 +-13.425 -1.59683 2.21593 +-14.3318 -1.62867 2.26012 +-14.5522 -1.57681 2.18815 +-13.8858 -1.43144 1.98642 +-14.597 -1.42808 1.98176 +-14.8153 -1.37185 1.90373 +-14.2418 -1.24437 1.72682 +-13.7647 -1.13098 1.56947 +-14.6734 -1.12939 1.56726 +-13.7964 -0.990355 1.37432 +-15.1023 -1.00597 1.39599 +-13.426 -0.824992 1.14485 +-13.4378 -0.756467 1.04976 +-13.7475 -0.703166 0.975789 +-12.8602 -0.591718 0.821132 +-13.2676 -0.542399 0.752691 +-13.6744 -0.488966 0.678542 +-13.9808 -0.428362 0.594441 +-12.6879 -0.323866 0.449432 +-13.6917 -0.279526 0.387901 +-13.3954 -0.205072 0.28458 +-12.1981 -0.124479 0.172741 +-12.2995 -0.0627521 0.0870815 +31.1 1.77636e-15 -1.7053e-13 +32.7988 -0.165237 0.233718 +35.7945 -0.360687 0.510171 +37.0873 -0.560642 0.792996 +39.0762 -0.787749 1.11423 +35.1665 -0.886368 1.25372 +34.4527 -1.04234 1.47434 +32.7388 -1.15596 1.63503 +31.922 -1.28863 1.82269 +31.0041 -1.40863 1.99242 +26.698 -1.34841 1.90725 +17.3199 -0.962754 1.36176 +22.1778 -1.34565 1.90334 +33.1853 -2.18272 3.08733 +37.419 -2.65233 3.75157 +43.227 -3.28531 4.64688 +50.8008 -4.12159 5.82976 +64.0882 -5.52929 7.82087 +75.6569 -6.91758 9.78453 +93.7958 -9.06111 12.8164 +94.5415 -9.6235 13.6119 +95.2774 -10.1941 14.419 +95.1197 -10.6737 15.0973 +94.9547 -11.1525 15.7746 +94.7825 -11.6304 16.4505 +95.4817 -12.2199 17.2844 +95.196 -12.6875 17.9457 +95.0978 -13.1801 18.6424 +94.8949 -13.6586 19.3194 +94.6848 -14.1362 19.9948 +95.5301 -14.7769 20.9012 +95.2067 -15.2422 21.5593 +95.8378 -15.8644 22.4394 +95.4984 -16.3303 23.0982 +96.013 -16.9458 23.9688 +95.8486 -17.4462 24.6766 +95.5812 -17.9284 25.3587 +96.0652 -18.5558 26.2461 +95.8756 -19.0578 26.9561 +96.338 -19.6942 27.8564 +96.0366 -20.1788 28.5418 +96.4772 -20.8236 29.4538 +96.0654 -21.2881 30.1108 +96.7634 -22.004 31.1234 +96.3344 -22.469 31.7811 +96.1759 -22.9976 32.5288 +96.653 -23.6843 33.5001 +96.1996 -24.1473 34.1549 +96.8358 -24.8892 35.2044 +96.4559 -25.3761 35.8931 +96.1593 -25.8855 36.6135 +96.4864 -26.5677 37.5785 +96.0811 -27.0528 38.2647 +96.4739 -27.7676 39.2757 +96.5851 -28.4098 40.1841 +97.2164 -29.2151 41.3232 +95.1818 -29.216 41.3243 +94.2971 -29.5566 41.8062 +94.4589 -30.2264 42.7536 +94.6077 -30.9001 43.7065 +94.9164 -31.6354 44.7464 +94.3484 -32.0831 45.3797 +94.2884 -32.7058 46.2605 +94.4725 -33.4208 47.2718 +94.8966 -34.232 48.4192 +94.5442 -34.7708 49.1813 +95.1052 -35.6545 50.4313 +93.9789 -35.9092 50.7915 +94.4274 -36.7687 52.0072 +93.6207 -37.1448 52.5393 +90.844 -36.721 51.9398 +89.6341 -36.9091 52.2059 +88.102 -36.9521 52.2666 +87.0577 -37.1885 52.601 +84.4158 -36.7223 51.9416 +83.8574 -37.1462 52.5412 +82.1107 -37.0341 52.3826 +81.2347 -37.3026 52.7624 +79.4243 -37.1291 52.517 +78.86 -37.5279 53.081 +76.298 -36.9589 52.2763 +75.9646 -37.4544 52.9771 +73.8106 -37.0403 52.3914 +73.0981 -37.3342 52.8071 +70.7474 -36.7739 52.0146 +69.7464 -36.8949 52.1858 +68.7472 -37.0086 52.3466 +67.75 -37.1152 52.4973 +66.1073 -36.8535 52.1272 +65.9757 -37.4279 52.9397 +63.9225 -36.9017 52.1953 +62.8015 -36.8928 52.1828 +62.033 -37.0832 52.4521 +61.4701 -37.3943 52.8922 +59.6749 -36.9426 52.2532 +58.9115 -37.1142 52.4959 +58.1474 -37.2808 52.7316 +57.3829 -37.4426 52.9605 +55.765 -37.0332 52.3813 +55.2031 -37.3127 52.7767 +54.0584 -37.1914 52.6051 +53.3034 -37.3286 52.7992 +51.7301 -36.8779 52.1618 +51.7932 -37.5889 53.1674 +50.1148 -37.0296 52.3763 +49.4923 -37.2348 52.6666 +48.4461 -37.1139 52.4956 +47.3479 -36.9389 52.248 +46.3175 -36.8024 52.0549 +45.7013 -36.9873 52.3165 +44.6242 -36.7905 52.0381 +44.1797 -37.1091 52.4887 +43.3934 -37.1388 52.5308 +42.8303 -37.356 52.8379 +41.6104 -36.9894 52.3194 +41.2109 -37.3436 52.8205 +39.9029 -36.8644 52.1427 +39.3964 -37.1133 52.4947 +38.3188 -36.8155 52.0734 +38.0654 -37.3056 52.7667 +37.2 -37.196 52.6116 +36.6363 -37.382 52.8747 +35.6335 -37.1107 52.4909 +35.0712 -37.2888 52.7429 +34.0836 -37.0053 52.3419 +33.5229 -37.1756 52.5828 +32.5511 -36.8801 52.1649 +31.9924 -37.0427 52.3948 +31.0367 -36.7355 51.9602 +30.9107 -37.4115 52.9164 +29.8791 -36.9903 52.3207 +29.692 -37.6121 53.2002 +28.4309 -36.8637 52.1417 +28.5504 -37.9056 53.6153 +26.9604 -36.6663 51.8624 +26.7496 -37.2808 52.7316 +25.8104 -36.8789 52.1631 +25.3252 -37.1149 52.497 +24.4407 -36.756 51.9893 +24.1993 -37.3644 52.8498 +23.2916 -36.9424 52.253 +23.0327 -37.5481 53.1097 +21.9107 -36.7348 51.9593 +21.6084 -37.2817 52.7329 +20.7968 -36.9499 52.2636 +20.2074 -36.9983 52.3319 +19.4135 -36.657 51.8492 +19.0858 -37.1962 52.6119 +18.0818 -36.4031 51.4901 +17.905 -37.2715 52.7185 +17.3409 -37.3603 52.8441 +16.8005 -37.5022 53.0447 +15.8459 -36.6892 51.8948 +15.5241 -37.3289 52.7997 +14.9368 -37.3495 52.8287 +14.3716 -37.4233 52.9332 +13.7638 -37.3813 52.8738 +13.1982 -37.4492 52.9698 +12.4407 -36.9476 52.2603 +11.9 -37.0656 52.4272 +11.3392 -37.1242 52.51 +10.7941 -37.2368 52.6694 +10.1995 -37.1758 52.583 +9.78498 -37.7967 53.4613 +9.088 -37.33 52.8012 +8.53641 -37.4316 52.9449 +7.94588 -37.3586 52.8416 +7.38085 -37.3972 52.8962 +6.74209 -37.0311 52.3784 +6.32582 -37.9255 53.6435 +5.60411 -36.9783 52.3038 +5.10769 -37.4656 52.9929 +4.47837 -36.9716 52.2942 +3.97426 -37.5113 53.0577 +3.37044 -37.1264 52.5131 +2.83526 -37.488 53.0246 +2.20565 -36.4624 51.5739 +1.70412 -37.5686 53.1386 +1.12219 -37.1139 52.4956 +0.553262 -36.5987 51.7667 +7.99361e-15 -36.5423 51.687 +-0.561989 -37.1759 52.5832 +-1.10299 -36.479 51.5975 +-1.70412 -37.5686 53.1386 +-2.24404 -37.097 52.4716 +-2.84398 -37.6033 53.1878 +-3.37044 -37.1264 52.5131 +-3.98036 -37.569 53.1392 +-4.48534 -37.0292 52.3757 +-5.10769 -37.4656 52.9929 +-5.67384 -37.4384 52.9546 +-6.26831 -37.5808 53.1559 +-6.79435 -37.3181 52.7844 +-7.47141 -37.856 53.5452 +-7.92151 -37.244 52.6795 +-8.57557 -37.6033 53.1878 +-9.10192 -37.3872 52.882 +-9.63717 -37.2257 52.6537 +-10.1213 -36.8906 52.1797 +-10.7611 -37.1229 52.5083 +-11.2003 -36.6694 51.8668 +-11.8453 -36.8954 52.1864 +-12.4217 -36.8909 52.1801 +-12.9589 -36.7704 52.0096 +-13.5351 -36.7602 51.9952 +-14.2201 -37.0287 52.3751 +-14.8918 -37.237 52.6696 +-15.3374 -36.8799 52.1645 +-15.991 -37.0252 52.3701 +-16.7003 -37.2786 52.7285 +-17.3409 -37.3603 52.8441 +-17.8248 -37.1047 52.4825 +-18.4677 -37.1799 52.5889 +-19.2562 -37.5283 53.0817 +-19.6474 -37.0986 52.4739 +-20.3879 -37.3286 52.7992 +-20.7659 -36.895 52.1859 +-21.6084 -37.2817 52.7329 +-22.2689 -37.3352 52.8086 +-23.0327 -37.5481 53.1097 +-23.6678 -37.5391 53.097 +-24.1993 -37.3644 52.8498 +-24.8707 -37.4028 52.9041 +-25.4718 -37.3297 52.8008 +-26.3723 -37.6817 53.2986 +-26.8644 -37.4407 52.9578 +-27.5856 -37.5165 53.065 +-28.3909 -37.6938 53.3158 +-29.163 -37.813 53.4844 +-29.692 -37.6121 53.2002 +-30.3863 -37.6181 53.2087 +-31.2551 -37.8283 53.506 +-31.6504 -37.4619 52.9877 +-32.3493 -37.456 52.9794 +-33.1413 -37.5488 53.1107 +-34.1694 -37.8925 53.5968 +-34.9287 -37.9228 53.6396 +-35.4529 -37.6946 53.3169 +-35.8759 -37.3632 52.8481 +-37.0795 -37.8342 53.5143 +-37.6 -37.5959 53.1773 +-38.6237 -37.8528 53.5406 +-39.0914 -37.5578 53.1233 +-40.0234 -37.7039 53.3301 +-40.6448 -37.5499 53.1121 +-41.8019 -37.8793 53.5781 +-42.4274 -37.7156 53.3466 +-43.4374 -37.8855 53.587 +-44.1203 -37.761 53.4108 +-45.3691 -38.1082 53.9019 +-45.7714 -37.7363 53.3759 +-46.9789 -38.0213 53.7789 +-47.2579 -37.5497 53.1119 +-48.716 -38.0063 53.7577 +-49.409 -37.8516 53.5389 +-50.8316 -38.2424 54.0917 +-51.0999 -37.7574 53.4058 +-52.976 -38.4474 54.3816 +-52.8629 -37.6855 53.304 +-54.7027 -38.3086 54.1854 +-55.0226 -37.8547 53.5434 +-56.502 -38.1906 54.0185 +-56.8147 -37.7303 53.3673 +-58.7744 -38.3506 54.2448 +-58.6158 -37.5811 53.1564 +-61.0058 -38.4336 54.3621 +-61.3117 -37.9559 53.6865 +-63.0533 -38.3575 54.2545 +-63.8391 -38.1629 53.9793 +-66.0957 -38.8281 54.9201 +-66.2559 -38.2487 54.1006 +-68.3294 -38.7632 54.8283 +-68.697 -38.2972 54.1692 +-70.9416 -38.8636 54.9704 +-71.3801 -38.426 54.3514 +-73.654 -38.962 55.1096 +-74.6861 -38.8212 54.9104 +-76.9178 -39.2851 55.5665 +-77.5087 -38.8961 55.0163 +-79.5385 -39.2165 55.4695 +-80.1282 -38.8143 54.9006 +-82.4867 -39.2537 55.5222 +-83.5432 -39.0546 55.2405 +-85.4608 -39.2432 55.5073 +-86.0508 -38.8112 54.8962 +-88.6969 -39.2899 55.5734 +-89.527 -38.9458 55.0867 +-92.6847 -39.5922 56.0009 +-93.5224 -39.2255 55.4823 +-97.0426 -39.9597 56.5208 +-98.0525 -39.6349 56.0613 +-99.8017 -39.5972 56.008 +-101.806 -39.6417 56.071 +-103.986 -39.7327 56.1996 +-106.008 -39.7419 56.2126 +-109.472 -40.2609 56.9468 +-110.077 -39.7079 56.1645 +-113.657 -40.2076 56.8713 +-115.203 -39.9605 56.5219 +-117.699 -40.0232 56.6105 +-119.771 -39.9194 56.4638 +-124.896 -40.7928 57.6991 +-124.109 -39.7142 56.1735 +-98.4275 -30.8513 43.6374 +-98.537 -30.2458 42.781 +-98.3695 -29.5617 41.8133 +-98.8126 -29.065 41.1108 +-99.1587 -28.5404 40.3687 +-98.8673 -27.8373 39.3743 +-98.4721 -27.1145 38.3519 +-98.8782 -26.6174 37.6488 +-98.4578 -25.9028 36.638 +-98.8456 -25.4058 35.9351 +-98.4005 -24.6997 34.9364 +-97.9417 -24 33.9467 +-98.8551 -23.6383 33.435 +-98.3742 -22.9448 32.4541 +-98.6243 -22.4271 31.7219 +-98.5861 -21.8467 30.9009 +-97.6949 -21.0864 29.8255 +-96.6944 -20.317 28.7373 +-91.8133 -18.7692 26.548 +-50.3016 -9.99874 14.1427 +-44.9505 -8.68252 12.2809 +-40.2297 -7.54596 10.6733 +-37.0042 -6.73545 9.52691 +-36.3396 -6.41372 9.07185 +-32.7916 -5.60738 7.93132 +-16.4376 -2.72099 3.84868 +-16.0926 -2.57637 3.64412 +-15.9378 -2.46531 3.48705 +-15.684 -2.34157 3.31202 +-15.6218 -2.2485 3.18038 +-15.6552 -2.16972 3.06894 +-14.3232 -1.90896 2.70012 +-14.6444 -1.87422 2.65097 +-14.6722 -1.80038 2.54653 +-14.0129 -1.64582 2.32793 +-14.3318 -1.60821 2.27473 +-12.1924 -1.30451 1.84515 +-13.8858 -1.41345 1.99925 +-14.1039 -1.3625 1.92718 +-14.8153 -1.35462 1.91603 +-15.2308 -1.31406 1.85866 +-13.7647 -1.11677 1.57961 +-14.376 -1.09259 1.54541 +-13.7964 -0.977914 1.3832 +-12.9164 -0.84956 1.20165 +-13.426 -0.814628 1.15225 +-14.3337 -0.796761 1.12697 +-13.7475 -0.694333 0.982094 +-13.4584 -0.611463 0.86488 +-13.2676 -0.535585 0.757555 +-14.6726 -0.518066 0.732775 +-13.9808 -0.42298 0.598282 +-14.0866 -0.355051 0.5022 +-13.6917 -0.276015 0.390407 +-12.5957 -0.190407 0.26932 +-12.1981 -0.122916 0.173857 +-12.4995 -0.0629717 0.0890699 +32.8 0 -1.7053e-13 +53.298 -0.265079 0.382195 +37.2943 -0.370998 0.53491 +47.0839 -0.70266 1.01311 +37.9769 -0.755804 1.08973 +39.6622 -0.986909 1.42294 +33.7537 -1.00815 1.45357 +34.6353 -1.20729 1.74069 +29.3284 -1.1688 1.68519 +25.7205 -1.15364 1.66333 +28.79 -1.43549 2.06971 +32.9476 -1.80804 2.60686 +28.145 -1.68589 2.43074 +37.3583 -2.42579 3.49754 +37.9153 -2.65317 3.82538 +46.4988 -3.48881 5.03023 +51.1969 -4.10065 5.91238 +93.8576 -7.99419 11.5262 +68.2493 -6.16051 8.88232 +94.782 -9.03941 13.0332 +94.7385 -9.52036 13.7266 +95.2774 -10.0638 14.5102 +95.1197 -10.5373 15.1929 +94.9547 -11.01 15.8744 +94.8803 -11.4936 16.5717 +95.677 -12.0884 17.4293 +95.3908 -12.551 18.0962 +95.195 -13.0249 18.7795 +95.186 -13.5254 19.5012 +95.8466 -14.1267 20.3681 +95.6267 -14.6029 21.0547 +96.1703 -15.1997 21.9152 +95.9339 -15.6774 22.604 +95.5943 -16.1378 23.2677 +96.2043 -16.7626 24.1685 +95.9439 -17.2404 24.8574 +95.5812 -17.6993 25.5191 +96.2549 -18.3548 26.4642 +95.9701 -18.8328 27.1535 +96.4322 -19.4615 28.06 +96.0366 -19.9209 28.7223 +95.8216 -20.4177 29.4386 +96.1588 -21.0365 30.3308 +95.833 -21.5139 31.0191 +96.5198 -22.2245 32.0437 +96.2682 -22.7255 32.766 +95.8246 -23.1812 33.423 +96.4747 -23.9068 34.4693 +96.1963 -24.4089 35.1932 +95.8189 -24.8864 35.8816 +96.3405 -25.6028 36.9146 +95.8546 -26.0565 37.5687 +96.171 -26.7321 38.5427 +96.5634 -27.4382 39.5608 +96.9415 -28.1503 40.5875 +96.5955 -28.6576 41.319 +95.7115 -29.0032 41.8172 +96.4062 -29.8316 43.0117 +94.6339 -29.8955 43.1038 +96.9576 -31.263 45.0755 +95.0896 -31.2881 45.1117 +94.693 -31.7888 45.8336 +94.6313 -32.4052 46.7224 +94.7283 -33.0831 47.6997 +94.1333 -33.5227 48.3336 +94.3755 -34.2652 49.4041 +94.6859 -35.0436 50.5265 +94.3959 -35.6076 51.3397 +94.6761 -36.3944 52.474 +94.1152 -36.8639 53.1509 +91.9908 -36.7094 52.9283 +94.6002 -38.4563 55.4469 +89.1537 -36.9153 53.2251 +94.0513 -39.6625 57.1861 +85.454 -36.6989 52.9131 +90.6803 -39.6552 57.1755 +83.6079 -37.2275 53.6753 +87.8086 -39.806 57.393 +80.046 -36.9416 53.263 +85.496 -40.1659 57.9118 +77.0641 -36.8529 53.1352 +82.6561 -40.2328 58.0084 +73.8861 -36.6043 52.7767 +80.1383 -40.4068 58.2592 +71.7878 -36.8379 53.1135 +76.6768 -40.0427 57.7343 +69.2592 -36.8078 53.0701 +74.7136 -40.407 58.2594 +67.3302 -37.0556 53.4274 +70.6118 -39.5461 57.0182 +65.0538 -37.0749 53.4551 +68.3387 -39.6327 57.143 +62.2414 -36.7323 52.9613 +66.7016 -40.0583 57.7568 +60.4933 -36.9707 53.305 +64.5864 -40.1694 57.9169 +58.1474 -36.8044 53.0652 +62.5513 -40.2935 58.0958 +56.4867 -37.0331 53.3949 +60.3987 -40.3028 58.1093 +54.3156 -36.8908 53.1897 +58.2648 -40.2817 58.0789 +52.9258 -37.2482 53.7051 +56.4621 -40.4537 58.3269 +50.7305 -37.0055 53.3551 +54.058 -40.1501 57.8891 +49.1081 -37.1403 53.5496 +52.2254 -40.2235 57.9949 +47.3755 -37.1621 53.5809 +50.4631 -40.3192 58.133 +45.6567 -37.1607 53.579 +48.4277 -40.1575 57.8997 +43.9526 -37.1367 53.5444 +46.6387 -40.1578 57.9002 +42.3185 -37.1381 53.5463 +44.3809 -39.7023 57.2435 +40.4328 -36.8767 53.1694 +43.0539 -40.0405 57.7311 +39.0399 -37.029 53.389 +41.3644 -40.0207 57.7025 +37.65 -37.1648 53.5849 +39.7386 -40.0292 57.7148 +35.682 -36.6863 52.8949 +38.0296 -39.9175 57.5537 +34.5531 -37.0356 53.3985 +36.8014 -40.2897 58.0904 +33.0959 -37.0182 53.3735 +34.8034 -39.7826 57.3591 +31.5627 -36.8807 53.1753 +33.5368 -40.0712 57.7753 +30.0059 -36.6726 52.8751 +31.7655 -39.7245 57.2754 +28.797 -36.8613 53.1472 +30.2252 -39.6163 57.1195 +27.6638 -37.142 53.552 +29.0457 -39.9636 57.6201 +26.2225 -36.9889 53.3311 +27.4876 -39.7691 57.3398 +24.7632 -36.7652 53.0086 +26.2656 -40.0365 57.7252 +23.6336 -37.0059 53.3557 +24.7351 -39.8081 57.396 +22.2037 -36.7504 52.9873 +23.5123 -40.0481 57.742 +21.0441 -36.9113 53.2194 +22.0417 -39.841 57.4435 +19.9105 -37.1151 53.5132 +20.5059 -39.4531 56.8841 +18.4953 -36.7596 53.0007 +19.3481 -39.7608 57.3278 +17.2891 -36.7728 53.0196 +18.1776 -40.0576 57.7557 +16.0878 -36.7733 53.0204 +16.7847 -39.8444 57.4483 +15.0267 -37.0943 53.4832 +15.5404 -39.9497 57.6001 +13.8469 -37.1266 53.5297 +14.3146 -40.0981 57.8141 +12.498 -36.6433 52.8329 +13.121 -40.3465 58.1722 +11.565 -37.3794 53.8943 +11.7514 -40.0211 57.7031 +10.3872 -37.3762 53.8896 +10.5092 -40.0756 57.7816 +9.11584 -36.9659 53.298 +9.26736 -40.1175 57.8421 +7.97026 -36.9943 53.339 +8.03743 -40.2036 57.9661 +6.81526 -36.9546 53.2818 +6.80505 -40.2774 58.0726 +5.71742 -37.2439 53.6989 +5.49998 -39.8276 57.4241 +4.54812 -37.0677 53.4448 +4.32834 -40.3313 58.1504 +3.37567 -36.7089 52.9274 +3.05336 -39.8558 57.4647 +2.27545 -37.1356 53.5427 +1.835 -39.9371 57.5819 +1.12219 -36.6397 52.8277 +0.612603 -40.0062 57.6816 +8.88178e-15 -37.2152 53.6574 +-0.61173 -39.9492 57.5994 +-1.13964 -37.2095 53.6493 +-1.85856 -40.4498 58.3212 +-2.27545 -37.1356 53.5427 +-3.05772 -39.9127 57.5468 +-3.41754 -37.1642 53.5839 +-4.33445 -40.3882 58.2324 +-4.61788 -37.6362 54.2644 +-5.56275 -40.2821 58.0794 +-5.76099 -37.5278 54.1081 +-6.78588 -40.1639 57.909 +-6.84661 -37.1247 53.527 +-8.13931 -40.7132 58.7009 +-8.06775 -37.4469 53.9915 +-9.41094 -40.739 58.7382 +-9.11584 -36.9659 53.298 +-10.4501 -39.8501 57.4565 +-10.1213 -36.4192 52.5098 +-11.6854 -39.7963 57.379 +-11.3566 -36.7059 52.9232 +-13.0663 -40.1784 57.9298 +-12.4407 -36.4755 52.5909 +-14.2947 -40.0423 57.7336 +-13.743 -36.8479 53.1279 +-15.5404 -39.9497 57.6001 +-14.8693 -36.7056 52.9228 +-16.7614 -39.789 57.3684 +-16.233 -37.1051 53.4987 +-18.2277 -40.1679 57.9148 +-17.1338 -36.4425 52.5435 +-19.455 -39.9805 57.6446 +-18.4953 -36.7596 53.0007 +-20.9319 -40.2727 58.0659 +-19.9105 -37.1151 53.5132 +-22.1921 -40.1128 57.8352 +-21.075 -36.9656 53.2976 +-23.7344 -40.4264 58.2874 +-22.3665 -37.0197 53.3757 +-25.2358 -40.6139 58.5579 +-23.7704 -37.2201 53.6645 +-26.4757 -40.3567 58.187 +-25.0141 -37.1376 53.5456 +-28.074 -40.6175 58.563 +-26.5596 -37.4644 54.0168 +-29.7728 -40.9639 59.0625 +-27.4293 -36.8273 53.0982 +-31.0227 -40.6616 58.6265 +-29.0003 -37.1216 53.5225 +-32.6364 -40.8136 58.8457 +-30.4708 -37.2407 53.6943 +-34.2687 -40.9457 59.0362 +-31.8696 -37.2393 53.6922 +-36.0528 -41.2106 59.4182 +-33.3229 -37.2721 53.7395 +-37.6325 -41.1996 59.4023 +-35.1165 -37.6395 54.2692 +-39.3179 -41.2698 59.5035 +-36.2638 -37.2845 53.7574 +-41.0189 -41.3189 59.5742 +-37.85 -37.3623 53.8695 +-42.7347 -41.3466 59.6142 +-39.4004 -37.3709 53.882 +-44.4646 -41.3526 59.6228 +-41.0158 -37.4083 53.9359 +-46.2615 -41.3846 59.669 +-42.5908 -37.377 53.8908 +-47.9633 -41.2984 59.5447 +-44.7914 -37.8454 54.5662 +-49.7871 -41.2847 59.525 +-46.345 -37.721 54.3867 +-51.7406 -41.34 59.6047 +-48.5511 -38.0842 54.9104 +-53.5341 -41.2314 59.4481 +-50.1312 -37.9141 54.6651 +-56.0061 -41.5969 59.9751 +-52.3928 -38.218 55.1034 +-57.7071 -41.3458 59.613 +-54.1845 -38.134 54.9823 +-60.0458 -41.5131 59.8543 +-56.4368 -38.3315 55.2669 +-61.8924 -41.2995 59.5464 +-57.6676 -37.8073 54.5112 +-64.738 -41.7021 60.1267 +-59.6195 -37.7362 54.4086 +-67.8293 -42.1863 60.8249 +-62.2665 -38.0544 54.8675 +-70.0745 -42.084 60.6774 +-64.8116 -38.2492 55.1483 +-73.1048 -42.3968 61.1284 +-67.8823 -38.6868 55.7793 +-75.6759 -42.3823 61.1074 +-69.9918 -38.5204 55.5394 +-78.2679 -42.3293 61.031 +-72.916 -38.7512 55.8721 +-81.248 -42.4299 61.1761 +-75.4292 -38.7065 55.8077 +-84.0328 -42.3706 61.0906 +-79.169 -39.2216 56.5503 +-87.1425 -42.4166 61.1569 +-81.2773 -38.8678 56.0402 +-91.1289 -42.8121 61.7273 +-84.0095 -38.7707 55.9003 +-94.7738 -42.9636 61.9456 +-87.4692 -38.9468 56.1541 +-98.3758 -43.0205 62.0277 +-91.4438 -39.2713 56.622 +-101.929 -42.9847 61.976 +-95.2213 -39.4277 56.8476 +-105.509 -42.891 61.8409 +-98.9536 -39.488 56.9344 +-110.186 -43.1585 62.2266 +-102.801 -39.5176 56.9771 +-114.242 -43.094 62.1337 +-107.434 -39.7617 57.3291 +-119.34 -43.3291 62.4726 +-112.027 -39.8951 57.5214 +-125.253 -43.7435 63.0701 +-115.718 -39.6259 57.1333 +-98.4842 -33.0614 47.6685 +-121.936 -40.1217 57.8481 +-98.8724 -31.8804 45.9657 +-97.8699 -30.9178 44.5777 +-98.9548 -30.6202 44.1487 +-98.7135 -29.9128 43.1288 +-98.4582 -29.2103 42.1158 +-98.9017 -28.7195 41.4082 +-98.5323 -27.9977 40.3675 +-98.9572 -27.5066 39.6594 +-98.6526 -26.8171 38.6653 +-99.0594 -26.3254 37.9564 +-98.4578 -25.5718 36.8698 +-99.0283 -25.1275 36.2293 +-98.4005 -24.3841 35.1574 +-98.8622 -23.916 34.4825 +-98.3932 -23.2272 33.4893 +-98.5596 -22.6942 32.7209 +-99.0895 -22.245 32.0732 +-98.8662 -21.6288 31.1848 +-98.9126 -21.0764 30.3883 +-96.0366 -19.9209 28.7223 +-97.7519 -19.7279 28.444 +-50.7743 -9.96375 14.3659 +-94.1685 -17.957 25.8907 +-38.6129 -7.15016 10.3092 +-45.3016 -8.14032 11.7368 +-34.9051 -6.08186 8.76892 +-38.5446 -6.5069 9.38175 +-16.8221 -2.74905 3.96363 +-22.9344 -3.62479 5.22628 +-15.9378 -2.43381 3.50911 +-16.2649 -2.39726 3.45641 +-15.4277 -2.1922 3.16074 +-17.7944 -2.43469 3.51037 +-15.1027 -1.98713 2.86508 +-16.7923 -2.12164 3.05902 +-13.1072 -1.58778 2.28929 +-15.5808 -1.80659 2.60477 +-14.5281 -1.60941 2.32047 +-3221.44 -340.27 490.607 +-14.9691 -1.50425 2.16885 +-3231.37 -308.176 444.334 +-14.4202 -1.30164 1.87673 +-3240.31 -275.99 397.926 +-12.6754 -1.01525 1.4638 +-14.6734 -1.10095 1.58736 +-13.4986 -0.944581 1.36191 +-14.8042 -0.961285 1.386 +-13.1277 -0.786351 1.13377 +-13.3383 -0.731953 1.05534 +-14.0463 -0.700363 1.0098 +-14.9538 -0.670722 0.967058 +-11.9708 -0.47706 0.687833 +-14.5728 -0.507967 0.732395 +-14.58 -0.435472 0.62787 +-14.2864 -0.355486 0.512545 +-14.0914 -0.280443 0.404348 +-12.9955 -0.193941 0.279627 +-12.3981 -0.123334 0.177826 +-14.3995 -0.0716161 0.103257 +53.1 3.55271e-15 -2.27374e-13 +54.1979 -0.266037 0.391066 +52.292 -0.513403 0.754685 +47.7836 -0.7038 1.03456 +42.2742 -0.830351 1.22059 +40.6613 -0.998564 1.46785 +38.2475 -1.12746 1.65733 +34.8349 -1.1984 1.76161 +24.6398 -0.96913 1.42459 +26.1192 -1.15624 1.69963 +29.4874 -1.45107 2.13303 +33.3458 -1.80601 2.65476 +36.5984 -2.16364 3.18047 +37.9544 -2.43234 3.57545 +41.4884 -2.86532 4.21191 +45.7056 -3.38455 4.97516 +65.5557 -5.18221 7.61767 +93.8576 -7.88987 11.5978 +94.9168 -8.45588 12.4298 +94.782 -8.92144 13.1142 +95.4279 -9.46445 13.9124 +95.2774 -9.93249 14.6004 +95.2178 -10.4105 15.3031 +95.0527 -10.8775 15.9895 +95.8585 -11.4606 16.8466 +95.677 -11.9307 17.5377 +95.4883 -12.3998 18.2273 +95.2923 -12.868 18.9156 +95.089 -13.3353 19.6024 +95.7498 -13.9283 20.4741 +95.5301 -14.3977 21.1642 +96.1703 -15.0014 22.0515 +95.9339 -15.4728 22.7445 +95.5943 -15.9272 23.4124 +95.3436 -16.3958 24.1013 +95.8486 -16.9984 24.9871 +95.5812 -17.4683 25.6778 +96.16 -18.0974 26.6025 +95.8756 -18.5687 27.2953 +96.4322 -19.2076 28.2344 +96.0366 -19.661 28.9009 +95.7279 -20.1316 29.5927 +96.4389 -20.8224 30.6082 +96.8565 -21.4599 31.5453 +96.6126 -21.9556 32.2739 +96.2682 -22.429 32.9698 +95.9166 -22.9006 33.6631 +96.4747 -23.5948 34.6836 +96.105 -24.0675 35.3784 +96.6379 -24.7715 36.4133 +96.2499 -25.245 37.1092 +96.5766 -25.9102 38.087 +96.171 -26.3832 38.7824 +96.5634 -27.0801 39.8068 +96.2287 -27.5786 40.5396 +96.5068 -28.2576 41.5377 +96.0647 -28.7303 42.2325 +96.4062 -29.4423 43.2791 +96.4706 -30.078 44.2136 +97.2187 -30.9381 45.4779 +96.1288 -31.2173 45.8883 +94.3484 -31.2597 45.9507 +94.717 -32.0113 47.0555 +93.9609 -32.3868 47.6075 +94.1333 -33.0852 48.6341 +94.2912 -33.7878 49.6669 +94.1827 -34.4025 50.5705 +94.2291 -35.0808 51.5676 +94.3445 -35.7936 52.6154 +94.1152 -36.3828 53.4814 +94.5301 -37.2305 54.7275 +94.1932 -37.791 55.5515 +94.1696 -38.4834 56.5692 +93.9709 -39.1115 57.4925 +92.8014 -39.3342 57.82 +91.315 -39.4116 57.9336 +89.8332 -39.4774 58.0304 +88.7478 -39.7068 58.3676 +87.4289 -39.8223 58.5373 +85.496 -39.6417 58.2719 +83.4988 -39.409 57.9298 +82.8843 -39.8174 58.5301 +80.7539 -39.4847 58.041 +79.4642 -39.5441 58.1284 +78.6247 -39.8197 58.5336 +77.5616 -39.9761 58.7635 +76.2802 -40.0101 58.8134 +75.0762 -40.0732 58.9062 +72.7972 -39.5415 58.1246 +71.3964 -39.4637 58.0102 +70.145 -39.4547 57.997 +69.2498 -39.637 58.265 +67.8681 -39.5303 58.1082 +66.9081 -39.658 58.2958 +66.2902 -39.9849 58.7763 +64.5864 -39.6452 58.277 +63.1659 -39.4591 58.0035 +62.7501 -39.894 58.6428 +61.6039 -39.8609 58.5941 +60.3987 -39.7769 58.4706 +59.4579 -39.8563 58.5874 +58.5192 -39.9297 58.6952 +57.0794 -39.6471 58.2798 +56.4621 -39.9258 58.6895 +55.8405 -40.2014 59.0947 +54.2406 -39.76 58.4458 +53.4412 -39.8899 58.6368 +52.2254 -39.6986 58.3555 +51.6663 -39.9989 58.797 +50.4631 -39.7931 58.4944 +49.0408 -39.3942 57.9081 +49.2207 -40.2824 59.2137 +47.5314 -39.6365 58.2642 +46.4731 -39.493 58.0534 +45.5318 -39.4366 57.9704 +45.1869 -39.8958 58.6454 +43.7183 -39.3529 57.8473 +43.1061 -39.5659 58.1605 +42.1301 -39.4385 57.9733 +41.3644 -39.4984 58.0613 +40.75 -39.7 58.3576 +40.1325 -39.8985 58.6493 +39.1241 -39.7004 58.3581 +38.459 -39.8415 58.5656 +37.4169 -39.5817 58.1838 +36.7552 -39.714 58.3782 +35.8199 -39.5421 58.1255 +35.1604 -39.6661 58.3077 +34.1491 -39.3822 57.8904 +33.5368 -39.5483 58.1346 +32.9642 -39.7623 58.4492 +31.7655 -39.2061 57.6315 +31.156 -39.3605 57.8586 +30.5442 -39.5119 58.0811 +29.5783 -39.1944 57.6143 +29.0457 -39.442 57.9784 +28.133 -39.1658 57.5724 +27.4876 -39.2501 57.6963 +26.9134 -39.4361 57.9696 +26.2305 -39.4613 58.0067 +25.3437 -39.1657 57.5722 +24.7351 -39.2886 57.7528 +24.1572 -39.4617 58.0073 +23.544 -39.5788 58.1794 +22.6509 -39.2113 57.6393 +22.2823 -39.7502 58.4314 +21.4016 -39.374 57.8783 +20.8183 -39.5315 58.1098 +20.2042 -39.6321 58.2578 +19.5618 -39.6756 58.3217 +18.7385 -39.3354 57.8217 +18.1275 -39.4259 57.9547 +17.5393 -39.568 58.1635 +16.9948 -39.8166 58.529 +16.3764 -39.8985 58.6494 +15.7568 -39.9774 58.7653 +14.9281 -39.503 58.0681 +14.3146 -39.5748 58.1736 +13.7192 -39.6988 58.3558 +13.121 -39.8199 58.5339 +12.329 -39.3289 57.8121 +11.7184 -39.3879 57.8988 +11.1225 -39.4994 58.0628 +10.5092 -39.5525 58.1408 +9.88129 -39.5469 58.1326 +9.26736 -39.5939 58.2017 +8.65272 -39.6379 58.2664 +8.03743 -39.6789 58.3265 +7.42152 -39.7168 58.3824 +6.80505 -39.7517 58.4336 +6.10962 -39.2793 57.7392 +5.56275 -39.7564 58.4405 +4.88993 -39.3333 57.8186 +4.32224 -39.7488 58.4293 +3.66352 -39.3192 57.7978 +3.05772 -39.3918 57.9046 +2.44296 -39.3492 57.8419 +1.85595 -39.8657 58.6011 +1.22341 -39.4233 57.9509 +0.61173 -39.4278 57.9575 +8.88178e-15 -39.4294 57.9598 +-0.61173 -39.4278 57.9575 +-1.22341 -39.4233 57.9509 +-1.85595 -39.8657 58.6011 +-2.44296 -39.3492 57.8419 +-3.09261 -39.8414 58.5654 +-3.71062 -39.8247 58.5409 +-4.33445 -39.8611 58.5944 +-4.95271 -39.8383 58.5609 +-5.56275 -39.7564 58.4405 +-6.17063 -39.6716 58.3158 +-6.78588 -39.6398 58.2691 +-7.50514 -40.1643 59.0402 +-8.12799 -40.126 58.9838 +-8.75022 -40.0845 58.9228 +-9.41094 -40.2074 59.1034 +-9.86737 -39.4912 58.0507 +-10.5979 -39.8863 58.6315 +-11.0599 -39.2773 57.7362 +-11.8504 -39.8317 58.5512 +-12.2943 -39.2181 57.6492 +-13.0663 -39.654 58.29 +-13.681 -39.5884 58.1935 +-14.3146 -39.5748 58.1736 +-14.9281 -39.503 58.0681 +-15.7352 -39.9225 58.6846 +-16.174 -39.4053 57.9244 +-16.7614 -39.2697 57.7251 +-17.6119 -39.7317 58.4042 +-18.2277 -39.6437 58.2749 +-18.842 -39.5528 58.1412 +-19.6955 -39.9466 58.7201 +-20.3145 -39.8484 58.5758 +-21.1875 -40.2326 59.1405 +-21.8109 -40.127 58.9853 +-22.4627 -40.0721 58.9046 +-23.0836 -39.9603 58.7402 +-23.7027 -39.8455 58.5715 +-24.5804 -40.1531 59.0236 +-25.2358 -40.0839 58.9219 +-25.8567 -39.9585 58.7376 +-26.7909 -40.3042 59.2458 +-27.451 -40.2237 59.1275 +-28.0373 -40.0351 58.8502 +-28.6949 -39.9481 58.7223 +-29.811 -40.4813 59.5061 +-30.3989 -40.2817 59.2126 +-31.3816 -40.5951 59.6734 +-32.0102 -40.4396 59.4447 +-33.0096 -40.7416 59.8887 +-33.6404 -40.578 59.6482 +-34.6992 -40.919 60.1495 +-35.3327 -40.7471 59.8968 +-36.0528 -40.6728 59.7876 +-36.637 -40.4442 59.4515 +-37.6325 -40.662 59.7717 +-38.3089 -40.5253 59.5708 +-39.3179 -40.7312 59.8734 +-39.9483 -40.5367 59.5875 +-41.0189 -40.7796 59.9446 +-41.65 -40.5768 59.6464 +-43.1915 -41.2431 60.6259 +-43.8297 -41.0295 60.312 +-44.9349 -41.2445 60.628 +-45.5731 -41.0223 60.3014 +-45.7779 -40.4176 59.4125 +-47.3291 -40.9933 60.2587 +-47.9633 -40.7594 59.9149 +-48.8175 -40.709 59.8408 +-49.957 -40.885 60.0995 +-50.5894 -40.6382 59.7368 +-52.2633 -41.2126 60.5811 +-52.9007 -40.9545 60.2017 +-53.5341 -40.6933 59.8177 +-55.367 -41.3274 60.7499 +-55.8234 -40.9202 60.1512 +-56.6409 -40.7776 59.9417 +-58.4541 -41.3344 60.7601 +-58.9044 -40.9148 60.1433 +-59.6005 -40.6675 59.7798 +-60.872 -40.8043 59.9808 +-62.4769 -41.1455 60.4825 +-63.3753 -41.007 60.2789 +-65.3343 -41.5369 61.0579 +-66.3108 -41.4237 60.8914 +-67.559 -41.4698 60.9592 +-68.8136 -41.5069 61.0137 +-70.6252 -41.8612 61.5344 +-71.8971 -41.8771 61.5578 +-73.1048 -41.8435 61.5085 +-74.3876 -41.841 61.5048 +-76.0325 -42.0262 61.7771 +-76.9694 -41.8077 61.4559 +-78.8482 -42.0865 61.8657 +-79.937 -41.9281 61.6328 +-81.0268 -41.7622 61.3889 +-82.7863 -41.9274 61.6317 +-84.7069 -42.153 61.9635 +-86.0369 -42.0678 61.8381 +-87.7508 -42.1553 61.9668 +-89.091 -42.0484 61.8096 +-91.5147 -42.4324 62.3741 +-93.3352 -42.5125 62.4919 +-95.2434 -42.613 62.6395 +-96.2949 -42.317 62.2045 +-99.0898 -42.7672 62.8663 +-100.309 -42.5162 62.4973 +-102.653 -42.7248 62.804 +-104.363 -42.6491 62.6927 +-106.242 -42.6252 62.6575 +-107.964 -42.5215 62.5051 +-110.433 -42.6908 62.754 +-112.832 -42.8077 62.9258 +-114.493 -42.6247 62.6568 +-117.078 -42.7657 62.8641 +-120.352 -43.1263 63.3942 +-122.204 -42.9512 63.1368 +-125.509 -43.2608 63.5919 +-97.6314 -32.9962 48.5033 +-98.6565 -32.6871 48.0488 +-99.0733 -32.1735 47.2939 +-98.7854 -31.4367 46.2108 +-98.5696 -30.7324 45.1756 +-99.0427 -30.2474 44.4627 +-98.8018 -29.5489 43.4358 +-99.2565 -29.0628 42.7213 +-98.9017 -28.3446 41.6656 +-98.5323 -27.6323 40.6185 +-98.3281 -26.975 39.6523 +-98.6526 -26.4671 38.9057 +-98.2438 -25.7679 37.8779 +-98.4578 -25.2381 37.0991 +-98.937 -24.7767 36.4209 +-98.4005 -24.0659 35.376 +-98.8622 -23.6039 34.6969 +-98.3932 -22.924 33.6975 +-98.7451 -22.4402 32.9863 +-99.0895 -21.9547 32.2726 +-98.6795 -21.3062 31.3194 +-98.9126 -20.8013 30.5772 +-98.3858 -20.1419 29.6079 +-97.7519 -19.4705 28.6209 +-63.9171 -12.3791 18.1969 +-95.1169 -17.9011 26.314 +-64.7669 -11.8367 17.3996 +-47.4951 -8.42309 12.3816 +-42.3643 -7.28521 10.709 +-37.4899 -6.24626 9.18179 +-36.2396 -5.84494 8.59185 +-30.258 -4.71987 6.93805 +-16.4207 -2.47484 3.63792 +-16.749 -2.43639 3.58141 +-17.0772 -2.39491 3.52044 +-16.6275 -2.24535 3.30058 +-15.9797 -2.07508 3.05029 +-16.4994 -2.05743 3.02435 +-16.0416 -1.91789 2.81923 +-15.2868 -1.74937 2.57151 +-14.4299 -1.57768 2.31913 +-3221.44 -335.829 493.657 +-3226.53 -320.004 470.395 +-3231.37 -304.155 447.096 +-3235.96 -288.282 423.764 +-3240.31 -272.388 400.4 +-3244.42 -256.473 377.006 +-14.2768 -1.05721 1.55407 +-3251.88 -224.585 330.132 +-13.3139 -0.853227 1.25421 +-12.1332 -0.717294 1.0544 +-13.836 -0.74936 1.10153 +-14.6441 -0.720635 1.05931 +-13.5581 -0.600181 0.882245 +-13.0681 -0.513994 0.755552 +-14.2733 -0.491036 0.721805 +-14.1805 -0.418014 0.614465 +-14.686 -0.360661 0.530158 +-14.5911 -0.286599 0.42129 +-14.8949 -0.219385 0.322489 +-13.7979 -0.135468 0.199133 +-14.7994 -0.0726451 0.106786 +53.3 0 -1.7053e-13 +56.7978 -0.27509 0.412324 +51.9921 -0.503667 0.754931 +48.9832 -0.711869 1.067 +42.9738 -0.832862 1.24835 +41.96 -1.01675 1.52397 +37.3487 -1.08631 1.62824 +33.8368 -1.14858 1.72157 +24.5401 -0.952368 1.42748 +27.0165 -1.18004 1.76873 +30.4836 -1.48014 2.21854 +35.5356 -1.899 2.84636 +36.499 -2.12905 3.19116 +39.5442 -2.5005 3.74792 +41.9847 -2.86101 4.28828 +48.4817 -3.54235 5.30952 +68.7246 -5.36043 8.03459 +93.8576 -7.78489 11.6685 +95.707 -8.41281 12.6097 +95.6697 -8.88516 13.3177 +94.64 -9.26144 13.8817 +95.2774 -9.80034 14.6894 +95.2178 -10.272 15.3964 +95.0527 -10.7328 16.087 +94.8803 -11.1927 16.7764 +95.677 -11.7719 17.6446 +94.6113 -12.1225 18.17 +95.2923 -12.6968 19.0309 +95.9622 -13.2787 19.9031 +95.7498 -13.743 20.5989 +95.5301 -14.2062 21.2932 +95.3031 -14.6683 21.9859 +95.9339 -15.267 22.8832 +95.6902 -15.731 23.5787 +95.248 -16.1614 24.2239 +95.9439 -16.789 25.1645 +95.6763 -17.253 25.86 +96.2549 -17.8742 26.7911 +95.8756 -18.3216 27.4618 +96.4322 -18.952 28.4066 +96.1306 -19.4184 29.1056 +95.7279 -19.8637 29.7732 +96.4389 -20.5454 30.7949 +95.833 -20.9506 31.4023 +96.6126 -21.6635 32.4707 +96.2682 -22.1305 33.1708 +95.9166 -22.596 33.8684 +96.4747 -23.2809 34.8951 +96.1963 -23.7699 35.6279 +96.5469 -24.419 36.6009 +96.2499 -24.9091 37.3355 +96.5766 -25.5654 38.3193 +96.171 -26.0322 39.0188 +96.5634 -26.7198 40.0495 +96.1396 -27.1865 40.749 +96.5068 -27.8817 41.791 +96.0647 -28.348 42.49 +96.4062 -29.0505 43.543 +96.558 -29.7047 44.5235 +96.7836 -30.3898 45.5504 +96.9082 -31.0517 46.5424 +95.0377 -31.0692 46.5686 +94.8884 -31.6426 47.4281 +94.0462 -31.9849 47.9413 +94.1333 -32.645 48.9307 +94.2912 -33.3383 49.9697 +94.4343 -34.0355 51.0148 +94.5627 -34.7366 52.0657 +94.4274 -35.3485 52.9827 +94.1152 -35.8987 53.8075 +94.4482 -36.7033 55.0136 +94.9259 -37.5783 56.3251 +94.4123 -38.0692 57.0608 +94.4532 -38.7892 58.1399 +93.5202 -39.1115 58.6231 +91.791 -39.09 58.5908 +89.8332 -38.9522 58.3842 +89.2173 -39.3858 59.0342 +87.4289 -39.2924 58.8942 +86.1905 -39.432 59.1034 +84.1883 -39.2058 58.7644 +82.8843 -39.2876 58.887 +81.8105 -39.4691 59.159 +80.1383 -39.3489 58.9789 +78.6247 -39.2899 58.8905 +77.7828 -39.5568 59.2905 +76.2802 -39.4777 59.172 +75.6565 -39.8457 59.7235 +73.5885 -39.4396 59.1148 +72.3949 -39.4832 59.1802 +70.4985 -39.1259 58.6447 +69.3199 -39.1492 58.6796 +68.2155 -39.204 58.7617 +67.4587 -39.4524 59.134 +66.2902 -39.4529 59.1347 +65.0593 -39.4042 59.0617 +63.7681 -39.3053 58.9135 +62.7501 -39.3632 59.0004 +61.6039 -39.3306 58.9514 +60.9832 -39.6274 59.3964 +59.4579 -39.3261 58.9447 +58.8372 -39.6125 59.3741 +57.6457 -39.5078 59.2171 +57.0223 -39.7855 59.6333 +55.9021 -39.7103 59.5206 +54.545 -39.4512 59.1322 +53.381 -39.3149 58.9279 +52.8203 -39.6165 59.3801 +51.6075 -39.4219 59.0882 +51.0438 -39.7155 59.5284 +49.8438 -39.5065 59.2152 +48.9375 -39.5178 59.232 +47.811 -39.3392 58.9643 +47.4666 -39.8006 59.656 +46.2943 -39.5635 59.3006 +44.9182 -39.1309 58.6522 +43.8243 -38.9234 58.3411 +43.9944 -39.844 59.7209 +42.4391 -39.1992 58.7546 +41.8212 -39.4033 59.0604 +40.75 -39.1718 58.7134 +40.1325 -39.3676 59.007 +39.1241 -39.1722 58.714 +38.5067 -39.3601 58.9957 +37.3699 -39.0061 58.4651 +36.8014 -39.2349 58.808 +35.7291 -38.9171 58.3317 +35.562 -39.5854 59.3333 +34.1929 -38.908 58.3181 +33.5799 -39.0722 58.5642 +32.922 -39.183 58.7303 +32.3046 -39.341 58.967 +31.1967 -38.8875 58.2873 +30.5841 -39.0371 58.5116 +29.6565 -38.7751 58.1188 +29.3901 -39.3787 59.0235 +28.4326 -39.0565 58.5405 +27.7808 -39.141 58.6673 +27.1643 -39.2741 58.8667 +26.2656 -38.9882 58.4383 +25.3437 -38.6446 57.9232 +25.0355 -39.2367 58.8107 +24.4176 -39.3565 58.9902 +23.544 -39.0522 58.5341 +22.8982 -39.1119 58.6237 +22.2522 -39.1684 58.7084 +21.3724 -38.797 58.1517 +21.0455 -39.4312 59.1022 +20.2042 -39.1048 58.6131 +19.5886 -39.2012 58.7575 +18.7126 -38.7585 58.0939 +18.1275 -38.9014 58.3081 +17.5635 -39.0954 58.5989 +17.2283 -39.8266 59.6948 +16.3764 -39.3677 59.007 +15.93 -39.879 59.7734 +15.136 -39.5203 59.2358 +14.494 -39.5377 59.2619 +13.7001 -39.1161 58.63 +13.1027 -39.2355 58.809 +12.4853 -39.2975 58.9019 +11.8834 -39.4113 59.0723 +11.1068 -38.9191 58.3347 +10.6423 -39.5203 59.2358 +9.88129 -39.0208 58.4871 +9.39789 -39.6174 59.3813 +8.77459 -39.6614 59.4473 +8.15063 -39.7024 59.5087 +7.41107 -39.1332 58.6556 +6.80505 -39.2228 58.7899 +6.18806 -39.2543 58.8371 +5.56275 -39.2274 58.7968 +4.94573 -39.2529 58.835 +4.32224 -39.22 58.7856 +3.66352 -38.796 58.1502 +3.08825 -39.2559 58.8394 +2.47437 -39.3248 58.9427 +1.85595 -39.3353 58.9585 +1.22341 -38.8988 58.3043 +0.619584 -39.4028 59.0596 +1.15463e-14 -38.9048 58.3132 +-0.618711 -39.3473 58.9764 +-1.23738 -39.3428 58.9697 +-1.85595 -39.3353 58.9585 +-2.47786 -39.3802 59.0258 +-3.13623 -39.8658 59.7536 +-3.71062 -39.2948 58.8978 +-4.32834 -39.2754 58.8687 +-4.94573 -39.2529 58.835 +-5.63336 -39.7254 59.5433 +-6.17934 -39.199 58.7542 +-6.88173 -39.6648 59.4523 +-7.50514 -39.63 59.4002 +-8.12799 -39.5921 59.3435 +-8.77459 -39.6614 59.4473 +-9.4762 -39.9475 59.8762 +-9.86737 -38.9658 58.4047 +-10.6127 -39.4105 59.0713 +-11.232 -39.3576 58.992 +-11.8339 -39.247 58.8262 +-12.4853 -39.2975 58.9019 +-13.0845 -39.181 58.7272 +-13.681 -39.0617 58.5484 +-14.494 -39.5377 59.2619 +-14.9281 -38.9775 58.4222 +-15.7568 -39.4455 59.1237 +-16.3539 -39.3136 58.926 +-16.9715 -39.2329 58.8051 +-17.6119 -39.2031 58.7603 +-18.453 -39.5999 59.3551 +-19.075 -39.509 59.2188 +-19.6955 -39.4151 59.0782 +-20.3145 -39.3182 58.9329 +-21.1875 -39.6973 59.5011 +-21.8109 -39.5931 59.3449 +-22.4327 -39.486 59.1844 +-23.0836 -39.4286 59.0984 +-23.9882 -39.789 59.6386 +-24.6455 -39.7238 59.5409 +-25.5696 -40.0737 60.0653 +-26.1645 -39.8963 59.7993 +-26.8259 -39.82 59.685 +-27.451 -39.6886 59.488 +-28.5138 -40.1738 60.2152 +-29.1819 -40.0856 60.0831 +-30.0789 -40.3016 60.4069 +-30.3989 -39.7457 59.5737 +-31.7404 -40.5131 60.7239 +-32.3762 -40.3578 60.4912 +-33.0096 -40.1995 60.2538 +-33.6827 -40.0884 60.0873 +-34.6992 -40.3746 60.5163 +-35.3766 -40.2549 60.3369 +-36.1866 -40.2807 60.3755 +-37.0456 -40.3511 60.4811 +-38.0943 -40.6133 60.874 +-38.7314 -40.4272 60.5951 +-39.795 -40.677 60.9696 +-40.3846 -40.4342 60.6056 +-41.4128 -40.6235 60.8894 +-42.1 -40.4695 60.6585 +-43.1408 -40.6466 60.924 +-43.7782 -40.4361 60.6085 +-44.9349 -40.6958 60.9977 +-45.5731 -40.4766 60.6691 +-46.6913 -40.6756 60.9674 +-47.0568 -40.2152 60.2773 +-48.4601 -40.6337 60.9046 +-49.3208 -40.5815 60.8263 +-50.4668 -40.7527 61.0829 +-51.3924 -40.734 61.055 +-52.0891 -40.5288 60.7474 +-53.3709 -40.7688 61.1072 +-54.7237 -41.0441 61.5198 +-55.1864 -40.6446 60.921 +-56.4322 -40.8161 61.178 +-57.0718 -40.5412 60.766 +-58.2674 -40.6542 60.9353 +-59.0932 -40.4998 60.704 +-60.2366 -40.5546 60.7861 +-61.3862 -40.6015 60.8563 +-62.5418 -40.6403 60.9145 +-63.7689 -40.7128 61.0232 +-65.6656 -41.1922 61.7417 +-66.5785 -41.0375 61.5099 +-68.1671 -41.2864 61.8829 +-69.4274 -41.32 61.9333 +-70.6252 -41.3042 61.9096 +-71.8971 -41.3199 61.9332 +-73.9459 -41.7618 62.5955 +-74.4583 -41.3236 61.9387 +-76.6744 -41.8172 62.6785 +-77.6168 -41.5985 62.3507 +-79.501 -41.8705 62.7584 +-79.7176 -41.2567 61.8384 +-81.9115 -41.6565 62.4376 +-83.3808 -41.6667 62.4529 +-85.381 -41.9232 62.8374 +-86.1124 -41.5445 62.2698 +-88.4352 -41.9188 62.8308 +-89.5506 -41.703 62.5073 +-92.2091 -42.1855 63.2306 +-93.5684 -42.0517 63.03 +-95.4782 -42.1497 63.1769 +-97.3193 -42.1982 63.2496 +-99.8832 -42.5361 63.7561 +-101.027 -42.2511 63.329 +-103.376 -42.4535 63.6323 +-104.606 -42.1795 63.2217 +-106.242 -42.0581 63.0396 +-108.374 -42.1149 63.1248 +-110.927 -42.3115 63.4194 +-112.998 -42.3002 63.4025 +-115.66 -42.4865 63.6818 +-118.001 -42.5292 63.7458 +-121.111 -42.8209 64.1829 +-123.052 -42.6739 63.9626 +-107.944 -36.7116 55.0259 +-97.7171 -32.5858 48.8419 +-99.0874 -32.393 48.5529 +-98.2939 -31.4957 47.2079 +-98.7854 -31.0184 46.4926 +-99.2693 -30.5388 45.7737 +-98.2518 -29.6066 44.3765 +-98.7135 -29.1297 43.6616 +-98.4582 -28.4455 42.6361 +-98.9017 -27.9675 41.9197 +-98.5323 -27.2646 40.8662 +-98.2382 -26.5918 39.8576 +-98.6526 -26.115 39.143 +-99.0594 -25.6362 38.4253 +-98.4578 -24.9023 37.3253 +-98.937 -24.4471 36.643 +-98.4923 -23.7678 35.6249 +-98.8622 -23.2899 34.9085 +-98.4856 -22.6403 33.9349 +-98.8378 -22.1625 33.2186 +-98.3451 -21.4999 32.2255 +-98.6795 -21.0227 31.5103 +-99.0063 -20.544 30.7928 +-98.3858 -19.8739 29.7884 +-98.6946 -19.3967 29.0731 +-60.3241 -11.5278 17.2787 +-73.5899 -13.6654 20.4827 +-71.5195 -12.8969 19.3308 +-53.885 -9.42922 14.1332 +-40.8342 -6.92866 10.3852 +-37.7775 -6.21044 9.30865 +-37.7776 -6.01192 9.01109 +-36.7143 -5.65079 8.4698 +-16.9037 -2.51373 3.76776 +-16.9426 -2.43177 3.64491 +-16.2039 -2.24221 3.36079 +-17.1137 -2.28025 3.4178 +-15.1027 -1.9351 2.90047 +-16.6947 -2.05408 3.0788 +-16.0416 -1.89238 2.83643 +-15.3848 -1.73716 2.60378 +-14.7244 -1.58845 2.38088 +-13.5689 -1.39572 2.092 +-3226.53 -315.747 473.264 +-3231.37 -300.108 449.823 +-3235.96 -284.447 426.348 +-3240.31 -268.764 402.842 +-3244.42 -253.06 379.304 +-3248.27 -237.337 355.738 +-13.2009 -0.89956 1.34832 +-13.3139 -0.841875 1.26186 +-13.6249 -0.794767 1.19125 +-13.3383 -0.71279 1.06838 +-13.5482 -0.65784 0.986017 +-13.8572 -0.605261 0.907207 +-13.4671 -0.52264 0.78337 +-14.5728 -0.494667 0.741442 +-14.1805 -0.412452 0.618212 +-14.686 -0.355862 0.533391 +-14.2913 -0.276975 0.415149 +-15.2948 -0.222277 0.333165 +-14.2978 -0.138508 0.207606 +-15.2994 -0.0741 0.111066 +56.9 0 -2.27374e-13 +64.9975 -0.310534 0.474672 +55.4915 -0.530276 0.810562 +52.382 -0.750936 1.14786 +43.3736 -0.829206 1.2675 +42.2597 -1.01012 1.54404 +39.0464 -1.12029 1.71244 +36.2323 -1.21321 1.85447 +27.832 -1.06547 1.62865 +27.3155 -1.17692 1.799 +32.1771 -1.54117 2.35579 +39.4177 -2.07788 3.17618 +39.4825 -2.27184 3.47267 +41.73 -2.60292 3.97874 +43.7713 -2.9423 4.4975 +52.2491 -3.76584 5.75634 +69.6158 -5.35629 8.18745 +93.9565 -7.68739 11.7507 +94.8181 -8.22161 12.5673 +95.5711 -8.7556 13.3835 +95.5264 -9.22138 14.0955 +95.3757 -9.67736 14.7925 +95.2178 -10.1327 15.4885 +95.0527 -10.5872 16.1832 +94.8803 -11.0409 16.8767 +94.7007 -11.4937 17.5689 +95.4883 -12.0689 18.4481 +95.2923 -12.5246 19.1447 +95.186 -12.9926 19.8601 +95.653 -13.5428 20.7011 +95.5301 -14.0135 21.4205 +95.3031 -14.4693 22.1174 +95.9339 -15.0599 23.0201 +95.5943 -15.5021 23.696 +95.3436 -15.9582 24.3932 +95.9439 -16.5612 25.315 +95.6763 -17.019 26.0147 +96.3497 -17.6492 26.9779 +95.8756 -18.0731 27.626 +96.4322 -18.6949 28.5764 +96.0366 -19.1362 29.251 +96.7582 -19.8052 30.2735 +96.4389 -20.2667 30.979 +96.1121 -20.7267 31.6821 +96.6126 -21.3696 32.6649 +96.2682 -21.8303 33.3691 +96.0087 -22.3108 34.1036 +96.5664 -22.987 35.1371 +96.1963 -23.4474 35.841 +95.8189 -23.9061 36.5421 +96.2499 -24.5712 37.5587 +96.5766 -25.2186 38.5484 +96.171 -25.679 39.2522 +95.758 -26.1375 39.953 +96.1396 -26.8177 40.9927 +96.5955 -27.5287 42.0796 +96.9476 -28.2205 43.137 +96.4062 -28.6565 43.8033 +96.558 -29.3018 44.7897 +96.0873 -29.762 45.4932 +96.9948 -30.6578 46.8625 +96.0717 -30.9811 47.3567 +95.1456 -31.2979 47.841 +95.0694 -31.8943 48.7526 +94.1333 -32.2022 49.2232 +94.5442 -32.9743 50.4034 +94.3504 -33.544 51.2742 +94.3125 -34.1748 52.2384 +93.8471 -34.6546 52.9719 +94.7745 -35.6598 54.5084 +94.2844 -36.1426 55.2464 +94.6002 -36.9414 56.4674 +94.4123 -37.5528 57.402 +94.3728 -38.2304 58.4378 +93.6001 -38.6139 59.024 +92.505 -38.8597 59.3996 +90.4636 -38.6934 59.1455 +89.8434 -39.1241 59.8039 +87.8952 -38.9661 59.5624 +87.2707 -39.3846 60.202 +85.5672 -39.3074 60.084 +84.253 -39.3946 60.2174 +82.0369 -39.0414 59.6774 +81.4115 -39.4319 60.2743 +79.5165 -39.1966 59.9146 +78.8149 -39.538 60.4365 +76.719 -39.1662 59.8682 +76.527 -39.7574 60.7719 +74.4517 -39.3609 60.1657 +73.1795 -39.3697 60.1793 +70.7814 -38.7501 59.2321 +70.5115 -39.282 60.0451 +68.7017 -38.9479 59.5344 +68.0783 -39.2746 60.0339 +66.8358 -39.238 59.978 +66.2078 -39.5558 60.4637 +64.4373 -39.1789 59.8877 +64.0091 -39.6083 60.544 +62.4568 -39.3342 60.125 +61.5027 -39.4229 60.2605 +60.3578 -39.3797 60.1946 +59.7277 -39.6666 60.633 +58.2121 -39.3548 60.1564 +57.6449 -39.6742 60.6447 +56.0868 -39.301 60.0743 +55.7625 -39.7846 60.8135 +53.9226 -39.1751 59.8817 +53.9504 -39.9153 61.0132 +52.1953 -39.33 60.1185 +51.5084 -39.5333 60.4293 +50.4174 -39.4191 60.2548 +49.4473 -39.3877 60.2068 +48.3143 -39.214 59.9412 +47.6874 -39.4433 60.2918 +46.839 -39.486 60.357 +45.7779 -39.3389 60.1322 +44.6722 -39.1383 59.8255 +44.0466 -39.3502 60.1494 +42.4391 -38.6675 59.1059 +42.4302 -39.4348 60.2788 +41.65 -39.4938 60.3689 +40.5757 -39.2624 60.0153 +39.512 -39.0238 59.6506 +38.8884 -39.2111 59.9369 +37.8394 -38.9604 59.5536 +37.6325 -39.5767 60.4957 +36.183 -38.877 59.4261 +35.5173 -38.9994 59.6132 +34.5436 -38.7739 59.2686 +34.2687 -39.3328 60.1228 +33.3023 -39.0981 59.7641 +32.6778 -39.2556 60.0049 +31.6848 -38.9602 59.5533 +31.0626 -39.1101 59.7824 +29.9691 -38.6522 59.0825 +29.8493 -39.4515 60.3042 +28.4326 -38.5266 58.8906 +28.1473 -39.1194 59.7967 +27.2001 -38.7924 59.2969 +26.5457 -38.8696 59.4148 +25.9593 -39.0464 59.6851 +25.3026 -39.1173 59.7934 +24.4176 -38.8226 59.343 +24.1152 -39.4569 60.3126 +23.1145 -38.9458 59.5313 +22.5229 -39.107 59.7777 +21.6647 -38.7943 59.2997 +21.0739 -38.9488 59.5359 +20.4247 -38.9954 59.6071 +19.8291 -39.1442 59.8346 +18.9714 -38.7616 59.2497 +18.5782 -39.3277 60.1151 +17.5877 -38.6182 59.0305 +17.2516 -39.3395 60.1331 +16.5564 -39.2604 60.0122 +15.93 -39.338 60.1308 +15.1152 -38.9307 59.5082 +14.6934 -39.5379 60.4364 +13.8909 -39.1229 59.802 +13.285 -39.2416 59.9835 +12.659 -39.3036 60.0782 +12.032 -39.3626 60.1683 +11.4197 -39.4726 60.3365 +10.7901 -39.5257 60.4177 +10.0205 -39.0336 59.6655 +9.39789 -39.08 59.7364 +8.77459 -39.1234 59.8027 +8.15063 -39.1638 59.8646 +7.52605 -39.2013 59.9218 +6.90089 -39.2357 59.9744 +6.27521 -39.2672 60.0226 +5.64121 -39.2411 59.9827 +5.01549 -39.2666 60.0216 +4.38939 -39.289 60.0559 +3.76296 -39.3085 60.0857 +3.08825 -38.7233 59.1912 +2.47088 -38.7366 59.2116 +1.88212 -39.349 60.1476 +1.23563 -38.7543 59.2386 +0.627438 -39.361 60.1659 +7.99361e-15 -39.3624 60.1682 +-0.628311 -39.4157 60.2496 +-1.23738 -38.8091 59.3223 +-1.88212 -39.349 60.1476 +-2.50927 -39.3385 60.1315 +-3.13623 -39.325 60.1109 +-3.76819 -39.3632 60.1693 +-4.45044 -39.8355 60.8912 +-5.01549 -39.2666 60.0216 +-5.71967 -39.7869 60.817 +-6.25778 -39.1581 59.8559 +-6.98716 -39.7262 60.7242 +-7.59922 -39.5824 60.5043 +-8.22987 -39.5446 60.4466 +-8.88428 -39.6124 60.5503 +-9.60673 -39.9484 61.0638 +-9.99263 -38.9251 59.4997 +-10.7605 -39.4174 60.2522 +-11.3728 -39.3104 60.0886 +-12.0155 -39.3086 60.0858 +-12.4506 -38.6566 59.0892 +-13.2667 -39.1878 59.9012 +-13.8718 -39.0692 59.7199 +-14.6735 -39.4843 60.3544 +-15.3023 -39.4126 60.2449 +-15.93 -39.338 60.1308 +-16.5564 -39.2604 60.0122 +-17.3917 -39.659 60.6214 +-17.8055 -39.0963 59.7613 +-18.6533 -39.4867 60.3581 +-19.075 -38.973 59.5729 +-19.936 -39.3552 60.1571 +-20.5625 -39.2585 60.0092 +-21.4148 -39.5787 60.4987 +-22.0741 -39.5272 60.42 +-23.004 -39.9424 61.0546 +-23.3617 -39.3624 60.1681 +-23.9882 -39.2493 59.9952 +-24.906 -39.5991 60.5298 +-25.9702 -40.1494 61.3711 +-26.1645 -39.3551 60.1569 +-27.5263 -40.3054 61.6095 +-27.881 -39.7635 60.7812 +-29.1735 -40.5456 61.9767 +-29.4815 -39.9479 61.0631 +-30.4233 -40.2101 61.4639 +-31.0631 -40.0633 61.2394 +-32.0993 -40.4154 61.7776 +-32.3762 -39.8104 60.8529 +-33.7975 -40.6007 62.0609 +-34.4434 -40.4377 61.8118 +-35.1297 -40.3211 61.6335 +-35.8149 -40.2009 61.4498 +-36.8559 -40.4692 61.8599 +-37.4542 -40.2428 61.5138 +-38.4637 -40.4508 61.8318 +-39.107 -40.2655 61.5485 +-40.1291 -40.462 61.8489 +-40.3846 -39.8857 60.968 +-41.856 -40.5013 61.9089 +-42.25 -40.0627 61.2386 +-43.3945 -40.3311 61.6488 +-44.2933 -40.3569 61.6882 +-45.4051 -40.5638 62.0045 +-46.05 -40.3454 61.6706 +-46.7451 -40.17 61.4026 +-47.3836 -39.9451 61.0588 +-49.012 -40.539 61.9666 +-49.6563 -40.3033 61.6063 +-50.8066 -40.4706 61.862 +-51.4498 -40.2263 61.4886 +-53.2505 -40.8704 62.4731 +-53.5472 -40.3486 61.6756 +-55.1401 -40.7954 62.3586 +-55.9688 -40.6616 62.154 +-57.1627 -40.7836 62.3405 +-57.6259 -40.3795 61.7228 +-59.3256 -40.8311 62.413 +-59.9742 -40.5461 61.9774 +-61.3179 -40.7227 62.2474 +-62.4147 -40.7217 62.2459 +-63.8407 -40.9216 62.5514 +-64.425 -40.5737 62.0197 +-66.8584 -41.3714 63.239 +-67.5153 -41.0504 62.7484 +-69.3156 -41.4125 63.3018 +-69.973 -41.0798 62.7932 +-72.0019 -41.5382 63.4939 +-73.2865 -41.547 63.5074 +-74.7169 -41.6248 63.6264 +-75.5897 -41.3824 63.2558 +-77.8869 -41.9023 64.0505 +-78.1922 -41.3385 63.1886 +-80.3715 -41.7547 63.8249 +-81.2534 -41.4811 63.4067 +-83.1649 -41.7201 63.7721 +-84.0497 -41.4311 63.3303 +-86.4295 -41.8624 63.9895 +-87.0935 -41.4478 63.3558 +-89.3477 -41.7768 63.8587 +-90.4698 -41.5595 63.5265 +-93.9067 -42.3793 64.7797 +-94.9672 -42.1014 64.3548 +-97.5912 -42.4981 64.9612 +-98.4225 -42.0976 64.3491 +-101.311 -42.559 65.0543 +-101.986 -42.0734 64.312 +-104.662 -42.3986 64.8091 +-105.577 -41.9935 64.19 +-109.01 -42.5684 65.0687 +-109.521 -41.9833 64.1742 +-113.07 -42.5437 65.0309 +-114.324 -42.2162 64.5303 +-117.328 -42.5145 64.9862 +-119.175 -42.3698 64.765 +-122.629 -42.7695 65.3761 +-124.578 -42.6172 65.1432 +-98.2241 -32.9527 50.3704 +-97.9742 -32.2284 49.2633 +-98.5704 -31.7869 48.5884 +-99.0733 -31.3148 47.8667 +-98.8724 -30.6246 46.8118 +-98.5696 -29.9122 45.7228 +-99.0427 -29.4402 45.0013 +-98.8018 -28.7603 43.962 +-98.4582 -28.0596 42.891 +-98.9017 -27.5881 42.1704 +-99.3377 -27.1146 41.4466 +-98.2382 -26.231 40.0959 +-98.6526 -25.7607 39.377 +-99.0594 -25.2884 38.6551 +-98.6398 -24.6099 37.6178 +-98.8456 -24.0932 36.828 +-98.584 -23.4672 35.8712 +-98.7702 -22.9526 35.0846 +-98.3932 -22.3122 34.1057 +-98.7451 -21.8413 33.3859 +-98.3451 -21.2082 32.4182 +-98.6795 -20.7375 31.6987 +-98.9126 -20.2461 30.9476 +-98.4798 -19.623 29.9951 +-98.6003 -19.1153 29.219 +-95.4028 -17.984 27.4897 +-62.21 -11.3955 17.4188 +-86.451 -15.378 23.5063 +-59.5119 -10.2726 15.7023 +-44.1813 -7.39488 11.3036 +-40.1745 -6.5149 9.95846 +-37.6815 -5.91532 9.04196 +-37.3889 -5.67651 8.67694 +-34.6767 -5.08679 7.7755 +-17.5235 -2.48103 3.79242 +-17.5624 -2.39722 3.66431 +-15.3634 -2.01928 3.0866 +-16.5643 -2.09358 3.20018 +-16.3041 -1.97882 3.02476 +-16.6285 -1.935 2.95778 +-16.6587 -1.85548 2.83623 +-14.9207 -1.5878 2.42706 +-14.0605 -1.42667 2.18076 +-14.1812 -1.36894 2.09252 +-3231.37 -296.037 452.512 +-3235.96 -280.588 428.898 +-3240.31 -265.118 405.251 +-3244.42 -249.627 381.572 +-3248.27 -234.118 357.865 +-3251.88 -218.591 334.131 +-3255.24 -203.047 310.371 +-13.3266 -0.766818 1.17213 +-13.0397 -0.687381 1.05071 +-13.7475 -0.658459 1.0065 +-14.2559 -0.614235 0.938899 +-14.1654 -0.542283 0.828916 +-14.3731 -0.481272 0.735657 +-15.0793 -0.432644 0.661325 +-14.2864 -0.341483 0.521979 +-14.2913 -0.273218 0.417631 +-15.0948 -0.216396 0.330776 +-15.0977 -0.144273 0.220531 +-12.9995 -0.0621067 0.0949343 +66.5 1.77636e-15 -2.27374e-13 +82.4969 -0.388686 0.605999 +68.0896 -0.641662 1.00041 +55.0811 -0.778707 1.21408 +47.2712 -0.89122 1.3895 +44.9572 -1.05973 1.65222 +43.1408 -1.22064 1.90309 +38.9273 -1.28541 2.00408 +27.832 -1.05073 1.6382 +31.3032 -1.33008 2.07372 +33.3725 -1.57632 2.45764 +40.3135 -2.09571 3.26741 +44.1568 -2.50565 3.90655 +45.6049 -2.80527 4.37369 +46.8482 -3.10556 4.84186 +55.9175 -3.97448 6.1966 +82.9845 -6.29655 9.81693 +94.9455 -7.66085 11.944 +95.707 -8.18389 12.7595 +94.782 -8.56321 13.3509 +94.64 -9.00943 14.0466 +95.2774 -9.53366 14.8639 +95.2178 -9.99251 15.5793 +95.0527 -10.4407 16.2781 +94.8803 -10.8881 16.9756 +95.677 -11.4516 17.8542 +95.4883 -11.9019 18.5563 +96.1674 -12.4648 19.4338 +95.186 -12.8129 19.9765 +95.7498 -13.369 20.8436 +95.5301 -13.8196 21.5461 +95.3031 -14.2692 22.247 +95.9339 -14.8516 23.155 +95.5943 -15.2876 23.8349 +96.2999 -15.8953 24.7823 +95.9439 -16.3321 25.4634 +95.5812 -16.7669 26.1412 +96.2549 -17.3878 27.1093 +95.8756 -17.8231 27.7879 +95.5838 -18.2741 28.4911 +96.0366 -18.8715 29.4225 +96.7582 -19.5312 30.451 +96.1588 -19.9283 31.0701 +96.8565 -20.5982 32.1146 +96.6126 -21.074 32.8564 +96.2682 -21.5283 33.5648 +96.0087 -22.0022 34.3036 +95.7411 -22.4752 35.041 +96.2877 -23.145 36.0853 +96.6379 -23.7769 37.0704 +96.8843 -24.391 38.0279 +95.8546 -24.6838 38.4845 +96.171 -25.3238 39.4823 +96.4739 -25.9687 40.4876 +96.1396 -26.4467 41.233 +96.5068 -27.123 42.2874 +96.0647 -27.5767 42.9947 +96.4062 -28.26 44.0601 +95.8583 -28.687 44.7258 +96.0873 -29.3502 45.7599 +96.302 -30.0178 46.8006 +96.8471 -30.7991 48.0188 +94.717 -30.7259 47.9047 +94.4725 -31.2556 48.7305 +94.0485 -31.7281 49.4672 +94.3755 -32.4601 50.6084 +94.2666 -33.0505 51.529 +94.5627 -33.7914 52.6841 +94.2616 -34.3262 53.5178 +94.0328 -34.8913 54.3989 +94.1206 -35.5807 55.4738 +94.2746 -36.305 56.6029 +94.8977 -37.2237 58.0354 +94.7747 -37.8621 59.0307 +94.798 -38.5671 60.1298 +93.695 -38.8151 60.5164 +92.8277 -39.1553 61.0469 +91.2521 -39.1879 61.0976 +89.4495 -39.1067 60.9711 +88.5825 -39.4236 61.4652 +85.9502 -38.9371 60.7067 +85.5457 -39.4458 61.4997 +83.169 -39.0326 60.8557 +82.9843 -39.6376 61.7989 +80.7798 -39.2685 61.2233 +80.5107 -39.8299 62.0987 +78.4011 -39.4713 61.5396 +78.1954 -40.0622 62.4608 +75.6745 -39.454 61.5125 +75.0339 -39.809 62.0661 +72.5492 -39.1684 61.0673 +71.0021 -39.0081 60.8174 +70.5078 -39.4188 61.4577 +69.9368 -39.7886 62.0343 +67.8588 -39.2875 61.253 +67.2212 -39.6057 61.7491 +65.0395 -38.9981 60.8018 +64.9368 -39.6265 61.7816 +63.3753 -39.3605 61.3668 +62.7367 -39.6576 61.83 +61.4505 -39.538 61.6436 +60.8091 -39.8261 62.0927 +58.5268 -39.0202 60.8362 +58.4541 -39.6747 61.8566 +56.6409 -39.1402 61.0234 +56.3713 -39.6626 61.8378 +55.1864 -39.5386 61.6445 +54.4858 -39.7537 61.9799 +52.9007 -39.31 61.2881 +52.2633 -39.5578 61.6744 +51.3924 -39.6256 61.7801 +50.75 -39.8662 62.1553 +49.0971 -39.2982 61.2696 +48.6808 -39.708 61.9087 +46.5666 -38.7134 60.3578 +46.7451 -39.6143 61.7625 +45.626 -39.4209 61.461 +44.4646 -39.1741 61.0762 +43.5207 -39.1044 60.9675 +43.09 -39.494 61.575 +42.05 -39.3215 61.306 +41.1666 -39.2832 61.2462 +39.9968 -38.9562 60.7365 +39.7473 -39.5228 61.6198 +38.7784 -39.3748 61.3891 +38.0943 -39.5081 61.597 +37.0002 -39.205 61.1244 +36.4097 -39.4262 61.4692 +35.3327 -39.111 60.9778 +34.6992 -39.276 61.235 +33.6404 -38.9486 60.7247 +33.4243 -39.5969 61.7354 +32.0508 -38.8651 60.5945 +31.7803 -39.4602 61.5223 +30.7896 -39.1612 61.0561 +30.232 -39.4045 61.4354 +29.2568 -39.0949 60.9528 +28.5871 -39.1811 61.087 +27.4868 -38.659 60.2731 +26.8609 -38.787 60.4727 +26.2671 -38.9628 60.7468 +25.603 -39.0342 60.8581 +24.6455 -38.6429 60.248 +24.4007 -39.3719 61.3846 +23.3926 -38.8692 60.6009 +23.0942 -39.5443 61.6534 +22.1618 -39.1353 61.0157 +21.5568 -39.29 61.2569 +20.6452 -38.8711 60.6038 +20.0162 -38.9669 60.7531 +19.1785 -38.6425 60.2474 +18.7785 -39.2018 61.1195 +17.9748 -38.9221 60.6833 +17.4851 -39.3203 61.3041 +16.9388 -39.6116 61.7583 +16.2979 -39.6899 61.8804 +15.4894 -39.3427 61.3391 +14.8529 -39.4142 61.4505 +14.2344 -39.5357 61.6399 +13.449 -39.1765 61.08 +12.8152 -39.2384 61.1764 +12.1805 -39.2973 61.2683 +11.5449 -39.3532 61.3554 +10.9231 -39.4595 61.5211 +10.2571 -39.4025 61.4323 +9.63283 -39.5028 61.5887 +8.88428 -39.0644 60.9052 +8.34308 -39.5339 61.6372 +7.63058 -39.1959 61.1102 +7.07342 -39.6603 61.8342 +6.35365 -39.2081 61.1291 +5.71182 -39.1827 61.0896 +5.07827 -39.2081 61.1292 +4.44433 -39.2305 61.1641 +3.75772 -38.7108 60.3539 +3.21475 -39.7519 61.977 +2.50578 -38.7403 60.3999 +1.90568 -39.2904 61.2575 +1.25308 -38.7581 60.4275 +0.636164 -39.3563 61.3603 +1.15463e-14 -39.3578 61.3626 +-0.636164 -39.3563 61.3603 +-1.27228 -39.3518 61.3533 +-1.92924 -39.7761 62.0147 +-2.54417 -39.3338 61.3253 +-3.21475 -39.7519 61.977 +-3.81529 -39.3039 61.2785 +-4.50538 -39.7694 62.0043 +-5.07827 -39.2081 61.1292 +-5.78244 -39.6671 61.8448 +-6.41466 -39.5845 61.7161 +-7.06383 -39.6065 61.7504 +-7.69329 -39.5181 61.6125 +-8.42232 -39.9094 62.2226 +-8.99396 -39.5467 61.6572 +-9.61978 -39.4493 61.5053 +-10.1179 -38.8679 60.5988 +-10.8936 -39.3527 61.3546 +-11.3728 -38.7666 60.4408 +-12.296 -39.67 61.8494 +-12.7805 -39.1321 61.0107 +-13.5765 -39.5481 61.6593 +-14.2153 -39.4826 61.5572 +-14.8529 -39.4142 61.4505 +-15.4686 -39.2899 61.2567 +-16.3195 -39.7426 61.9625 +-16.7589 -39.1908 61.1022 +-17.6018 -39.5828 61.7134 +-18.0474 -39.0793 60.9284 +-18.8787 -39.4109 61.4454 +-19.515 -39.3205 61.3044 +-20.417 -39.7473 61.9699 +-21.0587 -39.6496 61.8175 +-22.068 -40.2218 62.7097 +-22.3664 -39.4967 61.5792 +-23.3648 -40.0077 62.3759 +-24.0106 -39.8961 62.2019 +-24.718 -39.8839 62.1828 +-25.3292 -39.7148 61.9193 +-26.5376 -40.4592 63.0798 +-26.917 -39.9268 62.2497 +-27.8415 -40.203 62.6803 +-28.4903 -40.0703 62.4734 +-29.5033 -40.4368 63.0449 +-30.1558 -40.2963 62.8258 +-31.1504 -40.6016 63.3018 +-31.4539 -40.006 62.3732 +-32.8569 -40.7971 63.6065 +-33.1084 -40.1475 62.5938 +-34.1707 -40.4812 63.1141 +-34.866 -40.3676 62.937 +-35.6894 -40.3967 62.9824 +-36.2971 -40.1785 62.6422 +-37.2129 -40.2959 62.8251 +-37.8174 -40.0709 62.4744 +-39.2948 -40.7532 63.5382 +-39.9051 -40.5188 63.1728 +-41.0357 -40.8038 63.6171 +-41.2088 -40.1367 62.577 +-42.5454 -40.5989 63.2975 +-43.05 -40.2566 62.764 +-44.1558 -40.4709 63.098 +-44.4993 -39.9837 62.3385 +-46.0844 -40.6011 63.3011 +-46.5799 -40.2451 62.7459 +-48.0346 -40.7071 63.4663 +-49.0175 -40.7509 63.5346 +-50.1159 -40.8786 63.7336 +-50.3274 -40.2829 62.8049 +-52.6758 -41.379 64.5138 +-52.1955 -40.2447 62.7454 +-53.8312 -40.7445 63.5246 +-54.4877 -40.4894 63.1268 +-56.1513 -40.9689 63.8745 +-56.5104 -40.4872 63.1235 +-58.015 -40.8191 63.6409 +-58.8572 -40.6718 63.4112 +-60.3217 -40.9422 63.8329 +-61.1699 -40.7824 63.5836 +-62.3993 -40.8676 63.7165 +-62.6718 -40.3238 62.8687 +-64.9448 -41.0534 64.0062 +-66.1964 -41.1126 64.0984 +-68.2499 -41.6482 64.9336 +-68.6528 -41.1647 64.1797 +-70.4641 -41.5163 64.7279 +-71.1324 -41.1827 64.2079 +-73.3786 -41.7468 65.0872 +-74.0506 -41.3995 64.5457 +-76.1888 -41.8577 65.2601 +-76.8625 -41.4971 64.698 +-79.2421 -42.0416 65.5469 +-79.7028 -41.5541 64.7869 +-82.2575 -42.1433 65.7055 +-82.0579 -41.3123 64.4099 +-84.4183 -41.7631 65.1127 +-85.0901 -41.3638 64.4901 +-87.9274 -41.9987 65.4801 +-88.452 -41.512 64.7212 +-91.3248 -42.1105 65.6544 +-92.6914 -41.991 65.468 +-95.6814 -42.5829 66.3909 +-96.677 -42.2665 65.8975 +-99.5478 -42.7504 66.652 +-99.9198 -42.1468 65.711 +-102.025 -42.266 65.8968 +-103.503 -42.1087 65.6514 +-106.35 -42.4865 66.2406 +-107.842 -42.3012 65.9516 +-110.068 -42.3871 66.0856 +-111.732 -42.2386 65.854 +-115.13 -42.7197 66.6041 +-115.485 -42.0549 65.5676 +-119.996 -42.8799 66.8539 +-121.691 -42.6658 66.52 +-125.412 -43.1351 67.2518 +-102.953 -34.7322 54.1508 +-98.0536 -32.4404 50.5777 +-98.5742 -31.9772 49.8556 +-98.5704 -31.3472 48.8733 +-98.2939 -30.6386 47.7686 +-98.7854 -30.1744 47.0448 +-98.5696 -29.4984 45.9908 +-99.0427 -29.0329 45.2651 +-98.8018 -28.3624 44.2197 +-98.4582 -27.6715 43.1425 +-98.9017 -27.2065 42.4176 +-98.6218 -26.5468 41.3891 +-98.9572 -26.0575 40.6262 +-98.6526 -25.4044 39.6079 +-98.8782 -24.893 38.8106 +-99.2768 -24.4261 38.0827 +-99.0283 -23.8038 37.1124 +-98.584 -23.1426 36.0815 +-98.8622 -22.6561 35.3231 +-98.3932 -22.0036 34.3057 +-98.7451 -21.5391 33.5816 +-99.0895 -21.0731 32.855 +-98.6795 -20.4507 31.8846 +-98.9126 -19.9661 31.129 +-98.3858 -19.3331 30.1422 +-98.6003 -18.8508 29.3903 +-97.9557 -18.2098 28.3909 +-97.5825 -17.6277 27.4832 +-64.1012 -11.2446 17.5314 +-55.6971 -9.48108 14.7819 +-47.4327 -7.82924 12.2065 +-43.051 -6.88481 10.7341 +-36.8163 -5.69954 8.88613 +-37.967 -5.68459 8.86282 +-37.4779 -5.42166 8.45289 +-17.3298 -2.41967 3.7725 +-17.6594 -2.37712 3.70615 +-16.5303 -2.14258 3.34049 +-16.5643 -2.06462 3.21895 +-16.2065 -1.93976 3.02428 +-16.1394 -1.85211 2.88761 +-16.0708 -1.76523 2.75217 +-14.7244 -1.54523 2.40916 +-14.7488 -1.4758 2.30091 +-3226.53 -307.155 478.884 +-3231.37 -291.942 455.165 +-3235.96 -276.707 431.412 +-3240.31 -261.45 407.626 +-3244.42 -246.174 383.809 +-3248.27 -230.879 359.963 +-3251.88 -215.567 336.09 +-3255.24 -200.238 312.19 +-13.9233 -0.790072 1.2318 +-14.6323 -0.760664 1.18595 +-13.8471 -0.654052 1.01973 +-13.6578 -0.58032 0.904775 +-14.3649 -0.542312 0.845516 +-14.7724 -0.487798 0.760525 +-15.279 -0.43231 0.674012 +-14.686 -0.346179 0.539726 +-15.0908 -0.284511 0.44358 +-15.0948 -0.213403 0.332715 +-14.4978 -0.136624 0.21301 +-14.7994 -0.0697281 0.108713 +74.2 7.10543e-15 -1.7053e-13 +91.2965 -0.424078 0.674494 +74.0887 -0.688343 1.09481 +56.5806 -0.788623 1.2543 +47.7709 -0.887934 1.41226 +47.4548 -1.10282 1.75403 +47.7345 -1.33156 2.11784 +42.9198 -1.39726 2.22233 +28.5303 -1.0619 1.68895 +34.3936 -1.44077 2.29154 +31.0813 -1.44738 2.30206 +41.9062 -2.14777 3.41602 +46.2453 -2.58714 4.11483 +47.0953 -2.85607 4.54257 +50.6199 -3.30824 5.26175 +56.8098 -3.98093 6.33166 +92.392 -6.91148 10.9927 +94.8466 -7.54488 12.0001 +94.9168 -8.00184 12.7269 +94.782 -8.4424 13.4276 +95.4279 -8.95625 14.2449 +95.3757 -9.40884 14.9647 +95.1197 -9.84136 15.6527 +95.0527 -10.2934 16.3716 +94.8803 -10.7345 17.0732 +95.677 -11.29 17.9568 +95.4883 -11.734 18.6629 +95.195 -12.1647 19.3479 +95.186 -12.6321 20.0913 +95.7498 -13.1804 20.9634 +95.6267 -13.6384 21.6919 +96.074 -14.1817 22.5559 +95.8378 -14.6273 23.2647 +95.6902 -15.0871 23.9959 +95.3436 -15.5154 24.6772 +96.0393 -16.1177 25.6352 +95.6763 -16.5468 26.3175 +96.2549 -17.1425 27.2651 +95.9701 -17.589 27.9752 +95.5838 -18.0163 28.6548 +96.1306 -18.6235 29.6205 +95.7279 -19.0506 30.2999 +96.1588 -19.6471 31.2487 +95.833 -20.093 31.9578 +96.5198 -20.7567 33.0134 +96.2682 -21.2246 33.7577 +96.0087 -21.6918 34.5007 +96.5664 -22.3491 35.5462 +96.1963 -22.7968 36.2583 +96.6379 -23.4414 37.2835 +96.2499 -23.8894 37.996 +96.5766 -24.5189 38.9972 +96.171 -24.9665 39.7092 +96.5634 -25.626 40.7581 +96.0505 -26.0494 41.4315 +96.5068 -26.7403 42.5304 +96.8594 -27.4125 43.5994 +96.4941 -27.8867 44.3537 +96.558 -28.4887 45.3112 +96.8706 -29.172 46.3979 +96.4752 -29.6475 47.1542 +96.5886 -30.2836 48.1659 +96.0027 -30.7037 48.834 +94.8136 -30.9259 49.1875 +94.2181 -31.3369 49.8412 +94.3755 -32.0021 50.8993 +94.1827 -32.5553 51.779 +94.3125 -33.2265 52.8466 +94.1787 -33.8121 53.778 +94.28 -34.4895 54.8554 +94.2025 -35.1093 55.8411 +94.2746 -35.7928 56.9282 +93.7651 -36.2606 57.6723 +94.1316 -37.0746 58.967 +94.6383 -37.9589 60.3735 +94.171 -38.4619 61.1735 +93.4581 -38.8651 61.8147 +92.6608 -39.2314 62.3973 +90.6152 -39.0574 62.1206 +89.5085 -39.2736 62.4646 +87.5589 -39.1062 62.1983 +86.6863 -39.4078 62.6779 +84.9048 -39.2851 62.4828 +83.6584 -39.3959 62.6589 +81.8946 -39.2487 62.4249 +81.248 -39.6275 63.0275 +79.2787 -39.35 62.5861 +78.8482 -39.8267 63.3442 +76.8974 -39.5259 62.8658 +76.2465 -39.8815 63.4314 +73.7512 -39.2556 62.4359 +73.1048 -39.5967 62.9784 +71.133 -39.2073 62.359 +70.1433 -39.3431 62.575 +68.6772 -39.2003 62.3479 +68.4373 -39.7533 63.2274 +66.5785 -39.3576 62.5982 +66.1295 -39.785 63.2779 +64.6874 -39.6086 62.9973 +63.8407 -39.7861 63.2796 +62.4147 -39.5918 62.9706 +61.4452 -39.6749 63.1027 +60.4777 -39.7519 63.2253 +59.8237 -40.0313 63.6697 +57.8106 -39.3849 62.6416 +57.4671 -39.8631 63.4021 +55.7281 -39.3633 62.6072 +55.6159 -40.0058 63.629 +53.5472 -39.2291 62.3937 +53.1924 -39.693 63.1316 +52.0234 -39.5462 62.898 +51.5996 -39.9618 63.559 +50.1037 -39.538 62.8851 +49.5087 -39.8136 63.3234 +47.8738 -39.2385 62.4087 +47.2286 -39.4594 62.76 +45.785 -39.0002 62.0297 +45.4574 -39.4837 62.7986 +44.0358 -39.0089 62.0436 +43.3945 -39.212 62.3665 +42.5 -39.1816 62.3182 +41.9545 -39.4702 62.7771 +40.7725 -39.1514 62.2702 +40.2245 -39.4329 62.7179 +39.1539 -39.1952 62.3399 +38.4637 -39.3284 62.5517 +37.4542 -39.1261 62.23 +36.8113 -39.2987 62.5044 +35.7272 -38.9897 62.013 +35.5172 -39.6346 63.0387 +34.4434 -39.3157 62.5314 +33.7975 -39.4741 62.7835 +32.8236 -39.2406 62.4121 +32.179 -39.3916 62.6522 +31.1413 -39.0496 62.1082 +30.4999 -39.1928 62.336 +29.5565 -38.9382 61.931 +29.2468 -39.5197 62.8559 +27.9527 -38.7596 61.6469 +27.6314 -39.3366 62.5647 +26.7118 -39.0633 62.1301 +26.0369 -39.1357 62.2452 +25.4269 -39.3055 62.5153 +24.7498 -39.3716 62.6204 +23.7016 -38.827 61.7542 +23.0641 -38.9356 61.927 +22.1618 -38.5832 61.3664 +21.784 -39.144 62.2583 +21.1689 -39.2948 62.4983 +20.5239 -39.3916 62.6523 +19.6444 -39.0228 62.0656 +18.9538 -39.0095 62.0444 +18.1441 -38.7345 61.6071 +17.5317 -38.8691 61.8211 +16.9388 -39.0527 62.1132 +16.5576 -39.7535 63.2278 +15.5518 -38.9438 61.9399 +15.2118 -39.797 63.2969 +14.387 -39.3959 62.6589 +13.7588 -39.5135 62.846 +12.9542 -39.1042 62.195 +12.4776 -39.6878 63.1233 +11.6857 -39.2711 62.4605 +11.0414 -39.3239 62.5445 +10.3823 -39.321 62.5398 +9.73725 -39.3677 62.6142 +9.09145 -39.4114 62.6837 +8.54684 -39.9281 63.5055 +7.79782 -39.4898 62.8084 +7.15009 -39.5246 62.8637 +6.42338 -39.079 62.1551 +5.85305 -39.585 62.9597 +5.14105 -39.1328 62.2406 +4.54812 -39.5802 62.9521 +3.85193 -39.1214 62.2224 +3.21475 -39.191 62.3332 +2.57209 -39.2044 62.3545 +1.9528 -39.6938 63.1328 +1.28799 -39.2756 62.4677 +0.643146 -39.2269 62.3902 +1.24345e-14 -39.2816 62.4772 +-0.643146 -39.2269 62.3902 +-1.28799 -39.2756 62.4677 +-1.9528 -39.6938 63.1328 +-2.57558 -39.2576 62.4391 +-3.21475 -39.191 62.3332 +-3.85716 -39.1746 62.307 +-4.55422 -39.6333 63.0367 +-5.13408 -39.0797 62.1561 +-5.8452 -39.5319 62.8753 +-6.4931 -39.5033 62.8298 +-7.22677 -39.9485 63.5379 +-7.77692 -39.384 62.6401 +-8.39968 -39.2406 62.412 +-9.16457 -39.7284 63.1879 +-9.7242 -39.3149 62.5302 +-10.3684 -39.2683 62.456 +-11.1448 -39.6924 63.1306 +-11.6544 -39.166 62.2933 +-12.296 -39.1103 62.2048 +-12.9368 -39.0517 62.1116 +-13.7406 -39.4612 62.7628 +-14.387 -39.3959 62.6589 +-15.2118 -39.797 63.2969 +-15.6558 -39.2041 62.354 +-16.536 -39.7015 63.1451 +-16.9613 -39.1046 62.1957 +-17.8119 -39.4901 62.8089 +-18.2409 -38.9411 61.9356 +-19.129 -39.3702 62.6181 +-19.7738 -39.2798 62.4744 +-20.7644 -39.8533 63.3865 +-21.417 -39.7553 63.2306 +-22.3236 -40.1136 63.8005 +-22.7173 -39.5503 62.9046 +-23.9061 -40.357 64.1877 +-24.2887 -39.7888 63.284 +-25.2575 -40.1793 63.905 +-25.8827 -40.0101 63.6359 +-26.8715 -40.3901 64.2403 +-27.5326 -40.2638 64.0394 +-28.5069 -40.583 64.5471 +-28.8486 -40.0018 63.6228 +-29.8332 -40.312 64.1161 +-30.493 -40.172 63.8933 +-31.4948 -40.4714 64.3695 +-32.1962 -40.3725 64.2123 +-33.1759 -40.6119 64.5931 +-33.8812 -40.5049 64.4229 +-34.9172 -40.7819 64.8634 +-35.2886 -40.2805 64.0659 +-36.0338 -40.2111 63.9556 +-36.9109 -40.2814 64.0675 +-37.9268 -40.4895 64.3984 +-38.6346 -40.3593 64.1912 +-39.7104 -40.6031 64.5791 +-40.1398 -40.1822 63.9096 +-41.2265 -40.4152 64.2802 +-41.8876 -40.2221 63.9732 +-42.9886 -40.443 64.3245 +-43.65 -40.2418 64.0044 +-44.6126 -40.3127 64.1172 +-45.5809 -40.3777 64.2205 +-46.3979 -40.3006 64.0979 +-47.0568 -40.0835 63.7527 +-48.7868 -40.7612 64.8306 +-49.4532 -40.5331 64.4677 +-50.6126 -40.7013 64.7352 +-51.278 -40.4646 64.3589 +-52.8457 -40.9268 65.0939 +-53.5147 -40.6798 64.701 +-54.6441 -40.7763 64.8546 +-55.0167 -40.3057 64.106 +-56.6866 -40.776 64.854 +-57.1724 -40.3836 64.2299 +-59.1716 -41.0455 65.2826 +-59.8423 -40.7691 64.843 +-61.1932 -40.9478 65.1273 +-61.7363 -40.5792 64.5411 +-63.6714 -41.1124 65.3891 +-64.5359 -40.9374 65.1108 +-66.3736 -41.3646 65.7902 +-67.3117 -41.2154 65.553 +-69.5751 -41.858 66.5749 +-69.9911 -41.3749 65.8067 +-71.6801 -41.6369 66.2234 +-72.36 -41.3024 65.6913 +-74.2046 -41.6211 66.1982 +-74.9536 -41.3131 65.7084 +-77.4505 -41.9505 66.7221 +-77.4989 -41.2504 65.6086 +-80.2407 -41.9708 66.7543 +-80.9257 -41.5965 66.159 +-82.9103 -41.8785 66.6075 +-83.3743 -41.3829 65.8193 +-85.7454 -41.8211 66.5163 +-86.8736 -41.635 66.2202 +-89.1257 -41.9705 66.7539 +-89.735 -41.52 66.0374 +-92.3893 -42.0004 66.8014 +-93.7638 -41.8776 66.6061 +-97.1475 -42.6254 67.7955 +-98.3867 -42.4071 67.4483 +-100.487 -42.5449 67.6674 +-101.89 -42.3714 67.3915 +-103.85 -42.415 67.4609 +-105.42 -42.2834 67.2515 +-107.636 -42.3937 67.4269 +-109.379 -42.2988 67.2761 +-111.778 -42.4382 67.4978 +-113.616 -42.3448 67.3493 +-115.542 -42.2677 67.2266 +-118.552 -42.5628 67.696 +-121.497 -42.8037 68.0791 +-123.452 -42.6726 67.8706 +-99.7732 -33.8325 53.8104 +-97.6103 -32.4652 51.6357 +-98.9063 -32.2608 51.3107 +-98.7457 -31.5809 50.2293 +-98.5704 -30.9049 49.1541 +-99.0733 -30.4459 48.424 +-98.8724 -29.7748 47.3568 +-98.5696 -29.0822 46.2551 +-99.0427 -28.6233 45.5252 +-98.8018 -27.9623 44.4738 +-98.4582 -27.2811 43.3904 +-98.9017 -26.8227 42.6613 +-98.5323 -26.1485 41.5891 +-98.9572 -25.6899 40.8597 +-98.4721 -25.0001 39.7626 +-98.9688 -24.5642 39.0693 +-98.6398 -23.927 38.0558 +-99.0283 -23.468 37.3257 +-98.584 -22.816 36.2888 +-98.0338 -22.1493 35.2284 +-98.4856 -21.7135 34.5352 +-98.7451 -21.2353 33.7746 +-98.3451 -20.6197 32.7956 +-98.6795 -20.1621 32.0678 +-98.8189 -19.6657 31.2783 +-98.2918 -19.0421 30.2864 +-98.6003 -18.5849 29.5592 +-98.8067 -18.1089 28.8021 +-98.8153 -17.5985 27.9904 +-96.5322 -16.6948 26.553 +-88.9818 -14.9333 23.7514 +-50.6842 -8.24791 13.1183 +-45.5439 -7.1807 11.4209 +-38.1621 -5.82453 9.26389 +-36.907 -5.4479 8.66486 +-36.512 -5.2074 8.28234 +-34.3692 -4.73108 7.52477 +-16.7861 -2.22769 3.54312 +-16.2386 -2.07508 3.3004 +-17.831 -2.19115 3.48501 +-16.8899 -1.99304 3.16992 +-16.922 -1.91451 3.04502 +-16.5607 -1.79339 2.85238 +-15.5097 -1.60468 2.55224 +-14.8471 -1.46468 2.32957 +-14.0828 -1.32172 2.10219 +-3231.37 -287.823 457.781 +-3235.96 -272.803 433.891 +-3240.31 -257.762 409.969 +-3244.42 -242.701 386.015 +-3248.27 -227.622 362.032 +-3251.88 -212.526 338.021 +-14.6055 -0.885746 1.40878 +-12.4315 -0.69547 1.10614 +-13.836 -0.709123 1.12786 +-14.4448 -0.672662 1.06987 +-13.9568 -0.584662 0.929903 +-13.7664 -0.512384 0.814945 +-15.2715 -0.497164 0.790737 +-15.4788 -0.431782 0.686747 +-14.8858 -0.345938 0.550213 +-14.4912 -0.269352 0.428403 +-14.495 -0.202032 0.321331 +-13.8979 -0.129122 0.205369 +-14.4994 -0.0673509 0.107121 +77.4 3.55271e-15 -1.7053e-13 +91.6965 -0.419805 0.681264 +75.3885 -0.69034 1.12029 +56.7805 -0.780017 1.26582 +50.0695 -0.91726 1.48854 +47.9543 -1.09839 1.78248 +51.2297 -1.40849 2.28571 +45.8144 -1.47003 2.38557 +32.8199 -1.20397 1.95382 +34.9918 -1.44473 2.34452 +30.882 -1.41741 2.30018 +42.4039 -2.142 3.47606 +46.7425 -2.57733 4.18251 +49.1818 -2.93968 4.77055 +53.5975 -3.45243 5.60263 +63.7499 -4.40296 7.14517 +95.0657 -7.00911 11.3744 +96.1323 -7.53713 12.2313 +95.0156 -7.89486 12.8119 +94.9793 -8.33821 13.5313 +95.7233 -8.85468 14.3695 +95.5724 -9.29258 15.0801 +95.4142 -9.72973 15.7895 +95.2487 -10.1662 16.4978 +95.8585 -10.6891 17.3464 +95.7746 -11.1389 18.0763 +95.5857 -11.5769 18.7872 +95.4867 -12.0263 19.5164 +95.283 -12.463 20.2251 +95.9434 -13.017 21.1241 +95.6267 -13.4421 21.814 +95.4958 -13.8934 22.5464 +95.9339 -14.4313 23.4192 +95.7861 -14.8848 24.1552 +95.5348 -15.3228 24.8659 +96.0393 -15.8858 25.7796 +95.7714 -16.3248 26.4921 +96.3497 -16.9125 27.4458 +95.9701 -17.3358 28.1328 +95.7724 -17.792 28.8731 +96.2245 -18.3734 29.8165 +97.0392 -19.0336 30.888 +96.6256 -19.4584 31.5772 +96.2982 -19.9 32.2939 +96.798 -20.5169 33.2951 +96.5454 -20.9794 34.0455 +96.1007 -21.4001 34.7282 +96.6581 -22.0484 35.7804 +96.2877 -22.49 36.4971 +96.8199 -23.1476 37.5641 +96.4311 -23.5899 38.282 +96.7571 -24.2112 39.2901 +96.3507 -24.6532 40.0075 +96.7424 -25.304 41.0637 +96.3178 -25.746 41.7808 +96.6842 -26.4039 42.8486 +96.9476 -27.0426 43.885 +96.4941 -27.4854 44.6035 +96.8204 -28.155 45.6902 +96.3484 -28.5972 46.4078 +96.5618 -29.247 47.4624 +96.761 -29.901 48.5236 +97.0313 -30.586 49.6352 +96.7747 -31.1113 50.4877 +94.8118 -31.0805 50.4378 +94.6285 -31.6261 51.3232 +93.7634 -31.9438 51.8388 +94.646 -32.8641 53.3322 +94.9248 -33.5895 54.5094 +95.0217 -34.2605 55.5983 +95.0216 -34.9049 56.644 +94.4374 -35.3385 57.3477 +94.4932 -36.0162 58.4475 +94.614 -36.7283 59.603 +94.3987 -37.3179 60.5598 +93.933 -37.8125 61.3626 +94.1673 -38.5964 62.6346 +93.5999 -39.0587 63.3848 +91.3924 -38.8254 63.0062 +90.5116 -39.1422 63.5204 +88.4015 -38.9144 63.1506 +88.055 -39.4539 64.0262 +85.8105 -39.1327 63.505 +84.4822 -39.2112 63.6323 +83.0093 -39.2104 63.631 +82.3539 -39.5889 64.2452 +80.4489 -39.3561 63.8676 +79.2834 -39.4702 64.0526 +78.2642 -39.6494 64.3435 +76.9597 -39.6753 64.3854 +74.8826 -39.2842 63.7507 +73.5955 -39.2887 63.7582 +72.175 -39.209 63.6288 +71.107 -39.3097 63.7921 +69.973 -39.3651 63.8821 +68.5048 -39.2198 63.6463 +67.7829 -39.493 64.0896 +66.7921 -39.6053 64.2719 +65.8683 -39.7512 64.5086 +64.6201 -39.6922 64.4129 +63.4431 -39.665 64.3688 +62.2084 -39.5896 64.2465 +61.5475 -39.8729 64.7062 +60.5084 -39.9068 64.7612 +59.2882 -39.8102 64.6045 +58.1367 -39.7472 64.5021 +56.8715 -39.5929 64.2518 +56.2108 -39.8517 64.6718 +54.4877 -39.3436 63.8472 +54.4119 -40.0186 64.9426 +52.9985 -39.7075 64.4378 +52.3359 -39.9487 64.8291 +51.1662 -39.7953 64.5802 +49.9503 -39.5906 64.248 +48.6907 -39.3337 63.8312 +48.2495 -39.7322 64.4778 +46.6329 -39.1507 63.5342 +45.9799 -39.3627 63.8782 +44.8598 -39.167 63.5606 +44.1558 -39.3257 63.8181 +43.05 -39.1174 63.4802 +42.2992 -39.2217 63.6494 +41.3058 -39.0927 63.44 +40.7016 -39.3264 63.8193 +39.5765 -39.048 63.3676 +38.9254 -39.2277 63.6591 +37.9082 -39.0305 63.339 +37.2575 -39.2025 63.6183 +36.1656 -38.9001 63.1275 +35.5602 -39.1115 63.4706 +34.866 -39.2253 63.6552 +34.2122 -39.3834 63.9118 +33.1897 -39.1072 63.4636 +32.5379 -39.2577 63.7078 +31.5711 -39.0188 63.3201 +30.9208 -39.1619 63.5523 +29.9311 -38.8642 63.0692 +29.2468 -38.9509 63.2099 +28.3111 -38.6915 62.789 +27.6664 -38.8196 62.9969 +27.0196 -38.9448 63.2 +26.6712 -39.5121 64.1207 +25.7199 -39.1863 63.5919 +24.7815 -38.8548 63.0539 +24.1342 -38.9667 63.2356 +23.4851 -39.0757 63.4125 +22.8342 -39.1818 63.5846 +22.1816 -39.2848 63.7518 +21.1414 -38.6789 62.7685 +20.898 -39.5325 64.1537 +19.9032 -38.9679 63.2375 +19.2542 -39.0575 63.383 +18.3861 -38.6861 62.7801 +17.7418 -38.7687 62.9143 +17.2313 -39.1552 63.5414 +16.5793 -39.2326 63.6671 +15.8845 -39.2044 63.6213 +15.2516 -39.327 63.8202 +14.4442 -38.9834 63.2626 +13.9592 -39.5122 64.1208 +13.3015 -39.5746 64.2221 +12.6426 -39.634 64.3185 +11.8577 -39.2759 63.7373 +11.1892 -39.2768 63.7387 +10.5354 -39.3265 63.8195 +9.88083 -39.3732 63.8953 +9.22551 -39.4169 63.9662 +8.56948 -39.4577 64.0324 +7.92326 -39.5476 64.1783 +7.25552 -39.5302 64.1499 +6.51925 -39.0915 63.4381 +5.86089 -39.0676 63.3992 +5.21081 -39.0929 63.4403 +4.56643 -39.1677 63.5617 +3.9095 -39.1347 63.5081 +3.26273 -39.2035 63.6198 +2.60699 -39.1645 63.5566 +1.95542 -39.1749 63.5735 +1.30544 -39.2349 63.6707 +0.652745 -39.2394 63.678 +1.06581e-14 -39.2408 63.6804 +-0.652745 -39.2394 63.678 +-1.30544 -39.2349 63.6707 +-1.95804 -39.2274 63.6586 +-2.61397 -39.2694 63.7267 +-3.26709 -39.2559 63.7049 +-3.91473 -39.1871 63.5932 +-4.62137 -39.6389 64.3264 +-5.21778 -39.1453 63.5253 +-5.93935 -39.5905 64.2479 +-6.58897 -39.5096 64.1166 +-7.24594 -39.478 64.0652 +-7.90235 -39.4433 64.009 +-8.55816 -39.4056 63.9477 +-9.21332 -39.3649 63.8818 +-9.86778 -39.3212 63.8109 +-10.5215 -39.2746 63.7352 +-11.3074 -39.6918 64.4123 +-11.8108 -39.1204 63.485 +-12.6261 -39.5823 64.2345 +-13.1278 -39.058 63.3837 +-13.9228 -39.4091 63.9535 +-14.4061 -38.8804 63.0955 +-15.2317 -39.2756 63.7368 +-15.9052 -39.2557 63.7045 +-16.839 -39.8472 64.6644 +-17.2088 -39.1041 63.4585 +-18.162 -39.687 64.4044 +-18.7248 -39.3987 63.9366 +-19.6048 -39.7686 64.5369 +-20.3432 -39.8293 64.6355 +-21.0317 -39.7852 64.5639 +-21.6927 -39.6874 64.4052 +-22.6076 -40.0393 64.9763 +-23.2728 -39.9343 64.8058 +-24.2369 -40.3266 65.4424 +-24.5978 -39.7151 64.4501 +-25.5748 -40.0985 65.0723 +-26.2408 -39.9799 64.8798 +-27.1719 -40.2539 65.3244 +-27.8746 -40.1772 65.2 +-28.5069 -39.999 64.9107 +-29.207 -39.9159 64.7759 +-30.4196 -40.5129 65.7447 +-30.8676 -40.0802 65.0425 +-31.7627 -40.2282 65.2827 +-32.5479 -40.2261 65.2793 +-33.6145 -40.5567 65.8158 +-33.9218 -39.9699 64.8635 +-35.3733 -40.7201 66.081 +-35.4999 -39.9385 64.8126 +-36.3782 -40.0112 64.9306 +-37.3931 -40.2203 65.27 +-38.4623 -40.4702 65.6754 +-39.134 -40.2926 65.3872 +-40.0336 -40.3445 65.4715 +-40.7032 -40.1597 65.1716 +-41.7991 -40.3868 65.5401 +-42.2269 -39.9645 64.8548 +-43.7765 -40.5915 65.8723 +-44.3 -40.2533 65.3234 +-45.1202 -40.1845 65.2118 +-46.0959 -40.2463 65.312 +-47.5474 -40.7047 66.0559 +-48.0637 -40.352 65.4836 +-49.2166 -40.5286 65.7702 +-50.0523 -40.4337 65.6162 +-51.2198 -40.5967 65.8808 +-51.8931 -40.3607 65.4978 +-53.582 -40.8998 66.3726 +-54.0883 -40.524 65.7628 +-55.4571 -40.7874 66.1902 +-56.4862 -40.7866 66.1889 +-57.6978 -40.906 66.3827 +-58.015 -40.3889 65.5436 +-59.5977 -40.7461 66.1232 +-60.7658 -40.8024 66.2146 +-61.9402 -40.8511 66.2936 +-62.8691 -40.7291 66.0956 +-64.8164 -41.2493 66.9398 +-65.5001 -40.951 66.4557 +-67.4777 -41.4475 67.2613 +-68.1645 -41.1369 66.7574 +-69.9727 -41.4913 67.3324 +-70.6602 -41.1694 66.81 +-72.8962 -41.7339 67.7262 +-73.5876 -41.3986 67.1821 +-75.9255 -41.9734 68.1149 +-76.9681 -41.8129 67.8544 +-78.2916 -41.7957 67.8266 +-79.4081 -41.6583 67.6035 +-81.0966 -41.808 67.8464 +-82.4363 -41.7631 67.7735 +-83.7807 -41.7091 67.686 +-85.349 -41.7533 67.7577 +-87.3674 -41.9989 68.1563 +-87.3195 -41.2463 66.9349 +-89.7998 -41.6793 67.6376 +-91.1689 -41.5763 67.4705 +-93.606 -41.9411 68.0624 +-94.9895 -41.8144 67.8569 +-98.8451 -42.7461 69.3688 +-99.1638 -42.1269 68.3639 +-102.443 -42.749 69.3735 +-102.914 -42.1815 68.4525 +-105.357 -42.4113 68.8255 +-106.538 -42.1168 68.3476 +-108.923 -42.2828 68.6169 +-110.593 -42.1525 68.4055 +-113.243 -42.3758 68.7679 +-115.009 -42.2469 68.5587 +-118.839 -42.848 69.5341 +-119.547 -42.3023 68.6485 +-123.498 -42.8826 69.5904 +-126.052 -42.9442 69.6902 +-98.0021 -32.7536 53.1529 +-97.7799 -32.0535 52.0168 +-99.0768 -31.8513 51.6887 +-98.9171 -31.1804 50.5999 +-98.6565 -30.4867 49.4742 +-99.1599 -30.0339 48.7394 +-98.9594 -29.3722 47.6655 +-98.7446 -28.7145 46.5982 +-99.2185 -28.2614 45.8628 +-98.8018 -27.5598 44.7243 +-98.5469 -26.9127 43.6741 +-98.9908 -26.4604 42.9403 +-98.7113 -25.819 41.8993 +-99.137 -25.3661 41.1644 +-99.4649 -24.8887 40.3897 +-98.9688 -24.2107 39.2894 +-98.7308 -23.6044 38.3055 +-99.1197 -23.1515 37.5705 +-98.7674 -22.5295 36.5612 +-99.0463 -22.056 35.7927 +-98.5779 -21.421 34.7623 +-99.0232 -20.9886 34.0605 +-98.4382 -20.3422 33.0115 +-98.8662 -19.9096 32.3095 +-99.0063 -19.4194 31.5141 +-98.3858 -18.786 30.4862 +-98.6946 -18.3349 29.7541 +-98.7121 -17.8311 28.9365 +-98.7205 -17.3286 28.121 +-98.6246 -16.8112 27.2814 +-97.0884 -16.0593 26.0612 +-56.9958 -9.14154 14.835 +-47.4616 -7.37539 11.9689 +-39.7962 -5.98654 9.71501 +-37.2925 -5.42557 8.80467 +-35.7393 -5.02382 8.15271 +-33.7884 -4.58418 7.43925 +-17.0772 -2.2337 3.62487 +-17.1137 -2.15543 3.49786 +-15.9797 -1.93539 3.14077 +-17.1828 -1.99842 3.24305 +-17.0198 -1.89786 3.07987 +-15.6788 -1.67345 2.71569 +-15.3134 -1.56156 2.53412 +-15.3388 -1.4914 2.42026 +-14.9691 -1.38468 2.24708 +-15.0902 -1.32476 2.14984 +-3235.96 -268.876 436.335 +-3240.31 -254.052 412.278 +-3244.42 -239.208 388.189 +-3248.27 -224.346 364.071 +-3251.88 -209.467 339.925 +-14.5061 -0.86706 1.40707 +-13.9233 -0.767714 1.24585 +-14.1346 -0.714 1.15869 +-14.146 -0.649263 1.05363 +-15.0535 -0.621521 1.00861 +-14.5644 -0.534284 0.867041 +-13.8741 -0.445171 0.722428 +-15.5786 -0.428313 0.695071 +-14.686 -0.336383 0.545885 +-14.2913 -0.261813 0.424874 +-14.1951 -0.195004 0.316455 +-13.6979 -0.125433 0.203554 +-15.0994 -0.0691284 0.112182 +84.6 0 -1.7053e-13 +91.7965 -0.414092 0.685772 +75.7885 -0.683811 1.13245 +59.5796 -0.806452 1.33555 +52.468 -0.947087 1.56846 +54.3482 -1.22656 2.03129 +55.1244 -1.49331 2.47305 +49.8069 -1.57466 2.60778 +37.3089 -1.34855 2.23332 +36.6866 -1.49246 2.47164 +33.8706 -1.53175 2.53671 +49.7698 -2.47717 4.1024 +51.8146 -2.81504 4.66194 +51.0696 -3.0077 4.98101 +57.9647 -3.67891 6.09259 +72.6729 -4.94554 8.19024 +95.1648 -6.91337 11.4491 +96.0334 -7.4188 12.2862 +96.1021 -7.86789 13.0299 +94.9793 -8.21577 13.606 +95.8218 -8.73366 14.4637 +95.5724 -9.15613 15.1633 +95.4142 -9.58687 15.8767 +95.2487 -10.0169 16.5889 +95.0759 -10.4462 17.2997 +94.896 -10.8746 18.0093 +95.6831 -11.4186 18.9101 +95.3895 -11.8377 19.6042 +95.283 -12.28 20.3367 +95.8466 -12.8129 21.2192 +95.7232 -13.2581 21.9566 +95.4958 -13.6894 22.6708 +96.1262 -14.2479 23.5957 +95.7861 -14.6663 24.2886 +96.3955 -15.2338 25.2285 +96.1347 -15.668 25.9476 +95.8665 -16.1011 26.6648 +96.3497 -16.6641 27.5972 +96.1592 -17.1149 28.3438 +95.7724 -17.5308 29.0325 +96.2245 -18.1036 29.9811 +95.9152 -18.5369 30.6987 +96.6256 -19.1726 31.7515 +97.1356 -19.7783 32.7545 +96.8907 -20.235 33.5109 +96.453 -20.6516 34.2007 +96.2848 -21.1262 34.9868 +96.6581 -21.7247 35.9779 +96.2877 -22.1598 36.6985 +96.7289 -22.7862 37.7359 +96.4311 -23.2435 38.4933 +96.7571 -23.8557 39.507 +96.2608 -24.2685 40.1907 +95.8475 -24.7018 40.9083 +96.2287 -25.3445 41.9726 +96.6842 -26.0162 43.0851 +97.0359 -26.6698 44.1674 +96.4941 -27.0818 44.8497 +96.9079 -27.7666 45.9839 +96.3484 -28.1773 46.6639 +96.5618 -28.8176 47.7243 +96.0717 -29.252 48.4438 +96.8599 -30.0836 49.821 +96.8599 -30.6814 50.811 +94.4726 -30.5146 50.5347 +94.7972 -31.2173 51.6985 +94.1827 -31.6156 52.3581 +94.3125 -32.2674 53.4376 +94.3445 -32.894 54.4752 +95.0217 -33.7574 55.9052 +94.2025 -34.0959 56.4656 +94.4374 -34.8196 57.6642 +94.4932 -35.4874 58.7701 +94.4532 -36.1275 59.8302 +94.3189 -36.7388 60.8426 +94.409 -37.4461 62.0139 +94.1673 -38.0296 62.9803 +94.3043 -38.7747 64.2143 +93.1798 -39.0035 64.593 +91.8233 -39.1264 64.7966 +89.7804 -38.941 64.4896 +88.7394 -39.1767 64.8799 +86.7161 -38.9651 64.5294 +85.8303 -39.252 65.0046 +84.0497 -39.1188 64.7841 +83.3861 -39.4965 65.4095 +81.9116 -39.4833 65.3877 +80.5891 -39.5311 65.4668 +78.8396 -39.3545 65.1744 +78.1722 -39.7086 65.7609 +75.6604 -39.1094 64.7685 +75.6281 -39.781 65.8807 +72.9391 -39.0423 64.6574 +72.3461 -39.4073 65.2619 +70.655 -39.1651 64.8607 +69.3156 -39.1013 64.755 +68.4521 -39.2972 65.0795 +67.786 -39.6045 65.5884 +66.0651 -39.2846 65.0586 +65.9839 -39.9348 66.1354 +63.9574 -39.3994 65.2487 +63.5442 -39.8459 65.9882 +62.3657 -39.8097 65.9282 +61.0687 -39.685 65.7217 +59.6576 -39.4701 65.3658 +58.6237 -39.4916 65.4015 +57.4132 -39.383 65.2216 +56.5676 -39.5159 65.4416 +55.6045 -39.5604 65.5154 +54.8764 -39.7677 65.8586 +53.6868 -39.6326 65.6349 +53.0156 -39.8733 66.0335 +51.8372 -39.7252 65.7883 +50.723 -39.6127 65.602 +49.2898 -39.2331 64.9733 +48.6256 -39.4539 65.339 +47.5867 -39.3649 65.1916 +46.7636 -39.4458 65.3256 +45.3234 -38.9906 64.5718 +44.6634 -39.1936 64.908 +43.55 -38.9907 64.5719 +42.8408 -39.1407 64.8202 +41.7906 -38.9707 64.5389 +41.1311 -39.1578 64.8486 +40.0459 -38.931 64.4731 +39.3872 -39.1102 64.7698 +38.3168 -38.8719 64.3752 +38.0607 -39.4596 65.3484 +36.604 -38.7935 64.2453 +36.2921 -39.3304 65.1344 +35.2464 -39.071 64.7048 +34.5854 -39.2285 64.9657 +33.5964 -39.0052 64.596 +32.9367 -39.1553 64.8445 +31.8837 -38.8265 64.3 +31.6479 -39.4942 65.4057 +30.6054 -39.1562 64.8459 +30.273 -39.7256 65.7889 +28.9561 -38.992 64.574 +28.6119 -39.5569 65.5095 +27.3274 -38.8101 64.2728 +26.9382 -39.3217 65.1201 +25.9803 -39.0019 64.5904 +25.3209 -39.1175 64.782 +24.4123 -38.837 64.3174 +23.9963 -39.34 65.1504 +23.0681 -39.0019 64.5904 +22.4656 -39.2036 64.9244 +21.5824 -38.9059 64.4315 +21.1118 -39.3505 65.1677 +20.2138 -38.9948 64.5788 +19.6048 -39.1846 64.8931 +18.7006 -38.77 64.2065 +18.2087 -39.2048 64.9264 +17.2762 -38.681 64.059 +17.142 -39.9686 66.1914 +16.1755 -39.3366 65.1447 +15.6703 -39.8133 65.9341 +14.5969 -38.8169 64.284 +14.1779 -39.5419 65.4848 +13.3015 -38.9935 64.5766 +12.6426 -39.0521 64.6735 +11.8421 -38.6481 64.0045 +11.3222 -39.1601 64.8525 +10.6607 -39.2097 64.9346 +9.99831 -39.2563 65.0118 +9.22551 -38.8382 64.3193 +8.67137 -39.3405 65.1513 +7.9128 -38.9155 64.4474 +7.3322 -39.3613 65.1857 +6.60641 -39.0325 64.6411 +6.00212 -39.4215 65.2853 +5.27359 -38.9829 64.5591 +4.67021 -39.4696 65.365 +3.96183 -39.0762 64.7136 +3.29763 -39.0409 64.6551 +2.61048 -38.6411 63.9929 +2.00254 -39.5298 65.4648 +1.30544 -38.6587 64.0222 +0.660599 -39.1284 64.7999 +1.06581e-14 -39.1299 64.8024 +-0.659726 -39.0767 64.7143 +-1.32115 -39.1239 64.7925 +-1.98159 -39.1165 64.7802 +-2.64189 -39.106 64.7629 +-3.33688 -39.5057 65.4249 +-3.96707 -39.1278 64.799 +-4.67632 -39.5212 65.4505 +-5.28057 -39.0345 64.6445 +-6.00212 -39.4215 65.2853 +-6.66741 -39.3929 65.238 +-7.41846 -39.8244 65.9526 +-7.98597 -39.2754 65.0433 +-8.66005 -39.2892 65.0662 +-9.43269 -39.7104 65.7638 +-10.1549 -39.8713 66.0303 +-10.6328 -39.1074 64.7651 +-11.2926 -39.0579 64.6832 +-11.9516 -39.0055 64.5964 +-12.8242 -39.6128 65.6022 +-13.2841 -38.9426 64.4923 +-14.105 -39.3386 65.1481 +-14.5969 -38.8169 64.284 +-15.4311 -39.2054 64.9275 +-16.1755 -39.3366 65.1447 +-17.0122 -39.6658 65.69 +-17.4787 -39.1343 64.8097 +-18.4889 -39.8079 65.9252 +-19.0151 -39.422 65.2862 +-19.8301 -39.635 65.639 +-20.602 -39.7438 65.8191 +-21.5127 -40.0977 66.4051 +-21.9132 -39.5022 65.419 +-23.0336 -40.1948 66.5661 +-23.5652 -39.8423 65.9821 +-24.5075 -40.1781 66.5383 +-24.9068 -39.6236 65.62 +-25.8603 -39.9509 66.1621 +-26.5338 -39.8327 65.9664 +-27.5057 -40.1501 66.4919 +-28.1825 -40.0245 66.2839 +-29.0672 -40.1863 66.5519 +-29.8879 -40.2467 66.6519 +-30.7495 -40.3508 66.8243 +-31.2422 -39.9709 66.1952 +-32.1071 -40.0673 66.3548 +-32.9386 -40.1113 66.4276 +-34.0133 -40.4351 66.964 +-34.5319 -40.0913 66.3946 +-35.788 -40.5925 67.2247 +-35.7535 -39.6331 65.6358 +-37.4545 -40.5901 67.2206 +-37.7876 -40.0479 66.3227 +-39.0869 -40.5236 67.1105 +-39.4972 -40.0694 66.3583 +-40.8648 -40.5774 67.1997 +-41.5482 -40.3916 66.8919 +-42.4194 -40.3843 66.8798 +-43.0996 -40.1914 66.5604 +-44.2196 -40.4004 66.9064 +-44.75 -40.0651 66.3512 +-46.2875 -40.6189 67.2683 +-46.8685 -40.3199 66.7731 +-48.0176 -40.5036 67.0774 +-48.6996 -40.2854 66.7161 +-50.345 -40.849 67.6494 +-50.3791 -40.1001 66.4091 +-52.3236 -40.8627 67.6721 +-52.8996 -40.5395 67.1368 +-54.6016 -41.0661 68.0089 +-54.6045 -40.3101 66.757 +-56.0959 -40.6514 67.3222 +-57.1915 -40.6896 67.3854 +-58.4116 -40.804 67.5748 +-59.3991 -40.7453 67.4777 +-60.3891 -40.6809 67.3711 +-61.3199 -40.5699 67.1872 +-63.0607 -40.9794 67.8654 +-63.4355 -40.4926 67.0591 +-66.0885 -41.4414 68.6304 +-66.7856 -41.1417 68.1341 +-68.3869 -41.3891 68.5439 +-69.2798 -41.1961 68.2242 +-71.0991 -41.5401 68.794 +-71.597 -41.1026 68.0694 +-73.5042 -41.4641 68.6681 +-74.747 -41.4334 68.6172 +-76.2697 -41.5446 68.8013 +-77.5933 -41.5336 68.7832 +-79.0626 -41.5876 68.8726 +-79.7616 -41.2293 68.2792 +-82.5231 -41.9187 69.4209 +-83.2995 -41.5807 68.8612 +-85.304 -41.8439 69.297 +-86.0072 -41.4575 68.6571 +-87.9572 -41.6616 68.9952 +-89.1031 -41.4708 68.6792 +-90.7734 -41.5125 68.7483 +-92.5274 -41.5763 68.8538 +-94.9747 -41.9295 69.4388 +-96.7514 -41.9646 69.497 +-99.6939 -42.4801 70.3506 +-101.962 -42.6793 70.6806 +-103.852 -42.7005 70.7156 +-104.175 -42.0713 69.6736 +-106.865 -42.3865 70.1956 +-107.736 -41.965 69.4976 +-110.45 -42.2461 69.9632 +-112.13 -42.1109 69.7391 +-114.302 -42.1438 69.7937 +-116.074 -42.012 69.5755 +-120.322 -42.7458 70.7906 +-122.117 -42.5772 70.5114 +-125.583 -42.9662 71.1556 +-104.834 -35.191 58.2792 +-97.8334 -32.2172 53.3543 +-98.7976 -31.9116 52.8482 +-99.1621 -31.4107 52.0187 +-98.8314 -30.6959 50.8351 +-98.6565 -30.0391 49.7472 +-99.1599 -29.5929 49.0084 +-98.8724 -28.9154 47.8864 +-98.7446 -28.2929 46.8554 +-99.2185 -27.8464 46.116 +-98.8901 -27.1794 45.0114 +-98.5469 -26.5175 43.9152 +-98.9908 -26.0719 43.1773 +-98.7113 -25.4399 42.1306 +-99.0471 -24.971 41.3541 +-98.6526 -24.323 40.281 +-99.0594 -23.8771 39.5424 +-98.7308 -23.2578 38.5169 +-99.1197 -22.8116 37.7779 +-98.6757 -22.1781 36.7288 +-98.3099 -21.5706 35.7227 +-98.6703 -21.1263 34.9869 +-99.0232 -20.6804 34.2485 +-98.5312 -20.0624 33.2251 +-98.7728 -19.5987 32.4571 +-99.0999 -19.1524 31.718 +-98.4798 -18.5279 30.6837 +-98.6946 -18.0657 29.9183 +-98.7121 -17.5693 29.0963 +-98.7205 -17.0742 28.2763 +-98.2441 -16.5004 27.3261 +-98.2328 -16.01 26.5139 +-72.4879 -11.4556 18.9714 +-53.598 -8.20667 13.5909 +-42.0071 -6.22635 10.3114 +-37.678 -5.40116 8.94478 +-35.2563 -4.88317 8.08694 +-32.8202 -4.38744 7.26598 +-17.2713 -2.22591 3.68629 +-17.6971 -2.19619 3.63707 +-17.4412 -2.08139 3.44695 +-18.2567 -2.09214 3.46476 +-18.0957 -1.98822 3.29265 +-16.0708 -1.69009 2.79894 +-17.3748 -1.74576 2.89113 +-15.5354 -1.48834 2.46482 +-15.166 -1.3823 2.28921 +-15.4847 -1.33943 2.21822 +-3235.96 -264.928 438.744 +-13.4506 -1.03909 1.72082 +-3244.42 -235.696 390.332 +-14.1777 -0.964817 1.59782 +-14.3919 -0.913431 1.51272 +-14.8042 -0.871882 1.44391 +-13.0282 -0.707811 1.17219 +-14.8314 -0.738195 1.22251 +-15.6403 -0.70731 1.17136 +-14.9538 -0.608343 1.00747 +-14.5644 -0.526439 0.871827 +-14.0737 -0.444945 0.736867 +-14.9794 -0.405792 0.672026 +-15.2854 -0.344972 0.571302 +-14.5911 -0.263381 0.436181 +-14.1951 -0.192141 0.318202 +-15.0977 -0.136221 0.225594 +-14.7994 -0.0667601 0.11056 +91.6 3.55271e-15 5.68434e-14 +91.8965 -0.408332 0.690231 +75.0886 -0.667348 1.12806 +63.0784 -0.841018 1.42163 +56.4656 -1.00398 1.69709 +58.744 -1.30591 2.20747 +59.4185 -1.58552 2.68012 +54.1987 -1.68784 2.85307 +43.5935 -1.55211 2.62363 +42.2693 -1.69381 2.86317 +39.6485 -1.76618 2.9855 +48.1772 -2.36196 3.99259 +51.1184 -2.7356 4.62418 +52.2619 -3.0318 5.12486 +60.2476 -3.76651 6.36679 +92.7001 -6.21391 10.5038 +96.056 -6.87358 11.6189 +96.0334 -7.30764 12.3526 +96.0033 -7.74201 13.0868 +94.8807 -8.08426 13.6654 +94.7385 -8.50554 14.3775 +95.5724 -9.01893 15.2453 +95.4142 -9.44322 15.9625 +95.2487 -9.86684 16.6786 +94.9781 -10.2791 17.3754 +95.7746 -10.8109 18.2744 +95.5857 -11.236 18.993 +95.3895 -11.6603 19.7102 +95.186 -12.0837 20.4259 +95.8466 -12.6209 21.334 +95.7232 -13.0595 22.0753 +95.3994 -13.4707 22.7704 +96.03 -14.0204 23.6996 +95.6902 -14.432 24.3955 +95.4392 -14.8567 25.1133 +96.1347 -15.4332 26.0879 +95.8665 -15.8598 26.809 +96.2549 -16.3983 27.7191 +96.1592 -16.8585 28.4971 +95.6781 -17.2511 29.1607 +96.2245 -17.8323 30.1432 +96.9456 -18.4553 31.1963 +96.6256 -18.8854 31.9232 +96.2982 -19.314 32.6477 +96.798 -19.9127 33.6599 +96.5454 -20.3616 34.4186 +96.1928 -20.7898 35.1424 +96.6581 -21.3991 36.1725 +96.2877 -21.8278 36.897 +96.7289 -22.4448 37.94 +96.3405 -22.8737 38.665 +96.7571 -23.4982 39.7207 +96.3507 -23.9272 40.4459 +96.6529 -24.5362 41.4752 +96.2287 -24.9647 42.1996 +96.5955 -25.6029 43.2783 +96.153 -26.0311 44.0022 +96.4941 -26.676 45.0923 +96.8204 -27.3259 46.1908 +96.3484 -27.7551 46.9163 +96.5618 -28.3858 47.9824 +96.761 -29.0205 49.0553 +96.9456 -29.6591 50.1348 +97.0305 -30.2749 51.1758 +96.0838 -30.57 51.6746 +95.5563 -30.9957 52.3942 +94.7698 -31.3359 52.9693 +94.7294 -31.9244 53.9641 +94.9248 -32.6004 55.1067 +94.1976 -32.9632 55.72 +94.2844 -33.6141 56.8203 +94.4374 -34.2979 57.9761 +94.4932 -34.9556 59.0879 +94.614 -35.6467 60.2561 +94.5584 -36.2803 61.327 +94.171 -36.792 62.1921 +94.2461 -37.4911 63.3739 +94.5391 -38.2888 64.7223 +94.1901 -38.8356 65.6465 +92.7493 -38.9288 65.804 +90.7763 -38.783 65.5576 +90.1081 -39.1849 66.2369 +88.452 -39.1495 66.1771 +87.7776 -39.541 66.8389 +85.1644 -39.0437 65.9983 +84.1233 -39.2486 66.3446 +82.4967 -39.1695 66.2109 +82.0398 -39.6397 67.0057 +79.9187 -39.2953 66.4236 +79.2421 -39.6489 67.0213 +77.4989 -39.4595 66.7011 +76.6094 -39.6934 67.0964 +74.3284 -39.1899 66.2453 +73.6539 -39.5186 66.8011 +71.2688 -38.9134 65.7781 +70.6667 -39.2661 66.3743 +69.1881 -39.1246 66.135 +68.8462 -39.6212 66.9744 +67.3117 -39.426 66.6445 +66.6334 -39.7236 67.1476 +64.793 -39.3161 66.4587 +64.4347 -39.7989 67.2749 +62.8691 -39.5297 66.8198 +62.5005 -40.0068 67.6263 +60.9505 -39.7213 67.1436 +60.3283 -40.0309 67.6671 +58.3159 -39.4029 66.6054 +57.8168 -39.7833 67.2484 +56.6625 -39.7091 67.123 +55.9217 -39.9179 67.476 +54.5471 -39.6644 67.0475 +54.0352 -40.0311 67.6673 +52.1727 -39.3832 66.5722 +51.9925 -39.9957 67.6074 +50.5425 -39.6273 66.9848 +49.3778 -39.4639 66.7086 +48.4876 -39.5091 66.785 +47.3906 -39.3758 66.5596 +46.0959 -39.0611 66.0277 +45.4247 -39.2644 66.3713 +44 -38.8033 65.5919 +43.8257 -39.4405 66.669 +42.2269 -38.7876 65.5654 +42.0854 -39.466 66.7121 +40.4684 -38.7523 65.5058 +40.2183 -39.3371 66.4942 +39.134 -39.1061 66.1037 +38.4176 -39.2328 66.318 +37.3931 -39.0359 65.9851 +36.9379 -39.4304 66.6519 +35.6267 -38.9008 65.7567 +35.3733 -39.521 66.805 +33.9625 -38.8394 65.6528 +33.6145 -39.3624 66.5369 +32.2744 -38.7134 65.44 +31.9158 -39.2317 66.3161 +30.9425 -38.9943 65.9148 +30.6029 -39.5567 66.8654 +29.2428 -38.788 65.5661 +28.6119 -38.9642 65.8638 +27.943 -39.0898 66.0762 +27.272 -39.2125 66.2835 +26.2734 -38.8507 65.672 +25.9238 -39.4488 66.6831 +24.9686 -39.1267 66.1386 +24.297 -39.2361 66.3236 +23.302 -38.807 65.5982 +22.9484 -39.4461 66.6784 +22.0234 -39.1061 66.1037 +21.3256 -39.1534 66.1836 +20.4208 -38.804 65.593 +20.0054 -39.3862 66.5772 +19.1118 -39.029 65.9734 +18.4188 -39.0629 66.0307 +17.7486 -39.1432 66.1665 +17.2286 -39.5686 66.8855 +16.3627 -39.1954 66.2546 +15.6903 -39.2666 66.375 +15.0167 -39.3348 66.4904 +14.4877 -39.8006 67.2776 +13.6661 -39.4623 66.7058 +13.1543 -40.0237 67.6548 +12.327 -39.6279 66.9858 +11.6326 -39.6308 66.9908 +10.8416 -39.2777 66.3938 +10.2724 -39.7282 67.1553 +9.49362 -39.368 66.5465 +8.80721 -39.3581 66.5298 +8.14277 -39.4464 66.679 +7.54306 -39.8865 67.423 +6.67613 -38.8534 65.6765 +6.09627 -39.4399 66.668 +5.42705 -39.5163 66.7971 +4.80452 -39.9963 67.6085 +4.07174 -39.5585 66.8685 +3.33688 -38.9138 65.7787 +2.66981 -38.9271 65.8012 +2.03395 -39.5483 66.8512 +1.3194 -38.4868 65.0568 +0.678924 -39.6112 66.9576 +9.76996e-15 -38.9509 65.8413 +-0.678924 -39.6112 66.9576 +-1.33511 -38.9449 65.8313 +-2.03657 -39.5992 66.9372 +-2.6733 -38.978 65.8872 +-3.39795 -39.626 66.9825 +-4.00893 -38.9483 65.837 +-4.75568 -39.5897 66.9212 +-5.42705 -39.5163 66.7971 +-6.10412 -39.4907 66.7538 +-6.772 -39.4113 66.6196 +-7.59098 -40.14 67.8513 +-8.13231 -39.3958 66.5934 +-9.01098 -40.2687 68.069 +-9.54237 -39.5702 66.8882 +-10.2202 -39.5263 66.814 +-10.8973 -39.4794 66.7347 +-11.7065 -39.8827 67.4164 +-12.2488 -39.3765 66.5608 +-13.0718 -39.7725 67.2303 +-13.4925 -38.9608 65.8582 +-14.4331 -39.6503 67.0237 +-14.8449 -38.885 65.73 +-15.6903 -39.2666 66.375 +-16.4666 -39.4444 66.6756 +-17.142 -39.3697 66.5493 +-17.6812 -38.9944 65.9149 +-18.6056 -39.459 66.7002 +-19.4021 -39.6218 66.9754 +-20.3058 -39.9777 67.5771 +-20.7573 -39.4434 66.6739 +-21.673 -39.7912 67.2618 +-22.3542 -39.6934 67.0964 +-23.3177 -40.0807 67.7512 +-23.7991 -39.6348 66.9974 +-24.6879 -39.8675 67.3907 +-25.463 -39.9015 67.4483 +-26.1776 -39.8351 67.3361 +-26.8268 -39.6691 67.0555 +-28.0064 -40.2684 68.0684 +-28.3877 -39.7118 67.1276 +-29.4875 -40.1565 67.8792 +-30.1746 -40.0239 67.6552 +-31.2626 -40.4094 68.3068 +-31.8041 -40.0801 67.7502 +-32.8342 -40.3607 68.2244 +-33.3294 -39.9789 67.5791 +-34.2525 -40.1095 67.7998 +-34.898 -39.9092 67.4613 +-36.1613 -40.4013 68.293 +-36.8523 -40.239 68.0188 +-37.885 -40.4414 68.3609 +-38.4013 -40.0885 67.7644 +-39.667 -40.5087 68.4747 +-40.1782 -40.1495 67.8674 +-41.3265 -40.4211 68.3265 +-42.0177 -40.2359 68.0135 +-43.2783 -40.5846 68.603 +-43.9722 -40.3908 68.2753 +-44.909 -40.4154 68.317 +-45.8 -40.3907 68.2752 +-46.9473 -40.5805 68.5961 +-46.9715 -39.803 67.2818 +-49.0626 -40.765 68.9078 +-49.4945 -40.3295 68.1718 +-51.1509 -40.881 69.104 +-51.5229 -40.396 68.2841 +-52.8204 -40.6326 68.684 +-53.7384 -40.5652 68.5701 +-54.7148 -40.5347 68.5185 +-55.6369 -40.4568 68.3869 +-57.3154 -40.9128 69.1577 +-57.5442 -40.327 68.1675 +-59.7797 -41.1339 69.5315 +-59.9408 -40.5008 68.4613 +-61.3632 -40.7177 68.8279 +-62.0587 -40.4435 68.3644 +-63.9945 -40.9631 69.2428 +-65.1976 -40.9938 69.2946 +-66.979 -41.3704 69.9313 +-67.6855 -41.0713 69.4256 +-69.4909 -41.4271 70.0271 +-70.1983 -41.1168 69.5025 +-72.8219 -41.9092 70.842 +-73.136 -41.357 69.9086 +-75.0581 -41.7062 70.4988 +-76.3838 -41.7062 70.4989 +-78.2659 -41.9932 70.9839 +-78.7743 -41.5339 70.2076 +-80.5345 -41.7271 70.5341 +-81.6001 -41.5476 70.2308 +-83.8783 -41.9686 70.9424 +-84.5944 -41.5943 70.3098 +-86.7548 -41.9178 70.8566 +-87.9087 -41.7391 70.5545 +-89.2843 -41.6565 70.4149 +-90.4407 -41.4627 70.0872 +-93.3199 -42.0377 71.0591 +-94.2632 -41.7216 70.5249 +-96.7236 -42.0617 71.0999 +-98.2069 -41.9577 70.9239 +-101.083 -42.4265 71.7164 +-103.594 -42.7128 72.2003 +-106.278 -43.0432 72.759 +-106.381 -42.3186 71.5341 +-108.451 -42.3713 71.6231 +-109.493 -42.0103 71.0129 +-112.379 -42.3399 71.5701 +-113.586 -42.0186 71.0269 +-116.174 -42.1923 71.3206 +-119.187 -42.4923 71.8276 +-122.63 -42.9127 72.5384 +-124.356 -42.7079 72.1921 +-99.7327 -33.6106 56.8144 +-97.789 -32.3343 54.6568 +-98.4238 -31.9259 53.9666 +-98.4584 -31.3255 52.9516 +-99.0768 -30.9134 52.255 +-98.9171 -30.2622 51.1543 +-99.432 -29.8215 50.4094 +-98.3805 -28.9204 48.8861 +-98.9594 -28.5072 48.1878 +-98.6571 -27.8443 47.0671 +-99.1306 -27.4049 46.3243 +-98.8901 -26.7721 45.2548 +-98.5469 -26.1201 44.1527 +-98.9908 -25.6812 43.4108 +-99.2482 -25.195 42.5888 +-99.0471 -24.5968 41.5777 +-98.6526 -23.9585 40.4988 +-99.1501 -23.5408 39.7926 +-99.5498 -23.0993 39.0464 +-99.1197 -22.4698 37.9822 +-98.6757 -21.8458 36.9274 +-99.0463 -21.4065 36.1849 +-98.5779 -20.7902 35.1432 +-98.9305 -20.3514 34.4014 +-99.2756 -19.9111 33.6571 +-98.7728 -19.305 32.6326 +-99.0999 -18.8654 31.8895 +-99.2315 -18.3895 31.0851 +-98.6946 -17.795 30.0801 +-98.6176 -17.2895 29.2256 +-98.8153 -16.8345 28.4564 +-98.7197 -16.3319 27.6069 +-97.756 -15.6935 26.5279 +-96.3955 -15.0056 25.3649 +-57.4333 -8.66211 14.6422 +-44.6025 -6.51197 11.0076 +-38.6416 -5.45633 9.22321 +-35.3529 -4.82318 8.15295 +-32.1425 -4.23247 7.15443 +-18.0475 -2.2911 3.8728 +-17.1137 -2.09196 3.53619 +-17.9284 -2.10747 3.5624 +-17.3781 -1.96161 3.31585 +-17.7045 -1.91608 3.23888 +-15.3848 -1.59372 2.69397 +-16.9822 -1.68074 2.84107 +-15.1421 -1.42893 2.41541 +-15.2645 -1.37043 2.31654 +-14.597 -1.24373 2.10236 +-13.4326 -1.08325 1.83109 +-15.1319 -1.15146 1.94639 +-3244.42 -232.164 392.443 +-13.5828 -0.910488 1.53906 +-14.4912 -0.905946 1.53138 +-15.0029 -0.870346 1.47121 +-15.9124 -0.851552 1.43944 +-16.0259 -0.785697 1.32812 +-15.8395 -0.705586 1.1927 +-14.555 -0.583245 0.985899 +-13.9659 -0.497243 0.840523 +-15.2715 -0.475579 0.803904 +-14.3803 -0.383724 0.648634 +-15.2854 -0.339803 0.574392 +-15.0908 -0.268319 0.453558 +-14.495 -0.19326 0.326681 +-13.8979 -0.123516 0.208788 +-14.2995 -0.0635378 0.107402 +92.5 -1.77636e-15 -2.27374e-13 +92.0965 -0.402974 0.695391 +72.6889 -0.636159 1.09778 +67.3769 -0.884617 1.52654 +60.663 -1.06214 1.83289 +66.2369 -1.45 2.50219 +64.6113 -1.69778 2.92976 +61.7845 -1.8947 3.26959 +50.2772 -1.76275 3.04188 +46.556 -1.83711 3.17021 +42.6371 -1.87032 3.22751 +51.1634 -2.47008 4.26249 +55.4943 -2.92445 5.04657 +61.9989 -3.54176 6.11182 +75.235 -4.63169 7.99266 +95.1787 -6.28267 10.8417 +95.1648 -6.70584 11.5719 +95.1433 -7.12941 12.3028 +95.1144 -7.55324 13.0342 +94.9793 -7.96914 13.7519 +94.7385 -8.37572 14.4535 +95.4741 -8.87214 15.3102 +95.4142 -9.29908 16.0469 +95.2487 -9.71623 16.7668 +95.8585 -10.216 17.6291 +95.7746 -10.6459 18.371 +95.5857 -11.0645 19.0934 +95.3895 -11.4823 19.8144 +96.1563 -12.0206 20.7433 +95.8466 -12.4283 21.4468 +95.6267 -12.8472 22.1697 +96.1703 -13.3723 23.0758 +96.03 -13.8064 23.8249 +95.6902 -14.2117 24.5244 +96.2999 -14.7618 25.4737 +96.0393 -15.1826 26.1999 +95.8665 -15.6177 26.9507 +96.3497 -16.1639 27.8932 +96.1592 -16.6012 28.6477 +95.6781 -16.9878 29.3149 +96.1306 -17.543 30.273 +95.9152 -17.9804 31.0279 +96.6256 -18.5971 32.092 +96.2982 -19.0192 32.8204 +96.798 -19.6088 33.8379 +96.453 -20.0316 34.5675 +96.1928 -20.4725 35.3282 +96.5664 -21.0525 36.3292 +96.2877 -21.4946 37.092 +96.7289 -22.1022 38.1406 +96.3405 -22.5246 38.8695 +96.7571 -23.1395 39.9307 +96.2608 -23.54 40.6217 +95.937 -23.9827 41.3856 +96.2287 -24.5836 42.4227 +96.5955 -25.2121 43.5071 +96.153 -25.6338 44.2349 +96.4941 -26.2688 45.3307 +96.8204 -26.9088 46.4351 +96.3484 -27.3314 47.1643 +96.5618 -27.9525 48.2361 +96.8471 -28.6029 49.3585 +96.3456 -29.0256 50.0879 +96.4336 -29.6294 51.1299 +96.9319 -30.3691 52.4063 +96.3996 -30.792 53.1361 +94.6859 -30.8303 53.2022 +94.8962 -31.4925 54.3449 +94.9248 -32.1028 55.3981 +94.1976 -32.4601 56.0146 +94.2025 -33.0723 57.0711 +94.4374 -33.7744 58.2826 +94.4932 -34.4221 59.4003 +94.614 -35.1026 60.5747 +94.7182 -35.7869 61.7554 +94.4884 -36.3525 62.7316 +95.3493 -37.351 64.4547 +94.6956 -37.7668 65.1722 +94.4232 -38.3375 66.1569 +94.2154 -38.9405 67.1976 +92.768 -39.029 67.3502 +91.1727 -39.0426 67.3738 +89.2067 -38.8809 67.0946 +88.5266 -39.2697 67.7656 +86.725 -39.1523 67.563 +85.1555 -39.1238 67.5138 +84.0325 -39.2897 67.8001 +82.6927 -39.3453 67.896 +81.5731 -39.4966 68.1572 +80.312 -39.5709 68.2854 +78.206 -39.2117 67.6655 +77.5206 -39.5524 68.2534 +75.3704 -39.1327 67.5291 +74.893 -39.57 68.2839 +72.6328 -39.0529 67.3914 +71.545 -39.1474 67.5545 +69.9911 -38.9745 67.2562 +69.6414 -39.467 68.1061 +68.0333 -39.2405 67.7152 +67.7374 -39.7654 68.621 +66.6571 -39.8298 68.7322 +65.2616 -39.6944 68.4985 +64.3165 -39.8225 68.7196 +63.621 -40.1025 69.2027 +61.8124 -39.6681 68.4531 +60.7544 -39.6984 68.5054 +59.5797 -39.6423 68.4086 +58.4116 -39.5791 68.2995 +57.1915 -39.4681 68.108 +56.4443 -39.676 68.4667 +55.5796 -39.7982 68.6776 +54.5449 -39.792 68.6669 +53.1792 -39.5303 68.2154 +52.71 -39.9287 68.9029 +51.305 -39.6112 68.3549 +50.345 -39.6227 68.3748 +49.1765 -39.4588 68.092 +48.4879 -39.6725 68.4606 +47.1775 -39.3674 67.9342 +46.1352 -39.2699 67.766 +44.7 -38.819 66.9878 +44.1704 -39.144 67.5486 +42.9541 -38.8534 67.0471 +42.3717 -39.128 67.521 +41.4074 -39.0462 67.38 +40.8648 -39.3594 67.9203 +39.5426 -38.9112 67.147 +38.8192 -39.0379 67.3655 +37.7876 -38.8457 67.0339 +37.4545 -39.3716 67.9414 +36.4297 -39.1704 67.5943 +35.7051 -39.2827 67.7881 +34.654 -39.0252 67.3437 +34.0133 -39.2213 67.6821 +32.9386 -38.9072 67.14 +32.2985 -39.0961 67.466 +31.2422 -38.771 66.9051 +30.9327 -39.3727 67.9434 +29.8879 -39.0385 67.3667 +29.2073 -39.1678 67.5898 +28.2509 -38.9172 67.1573 +27.5391 -38.992 67.2865 +26.8919 -39.1585 67.5736 +26.2094 -39.2746 67.7741 +25.2467 -38.9586 67.2288 +24.5376 -39.0198 67.3344 +23.8868 -39.1736 67.5998 +23.1757 -39.2286 67.6947 +22.2715 -38.9429 67.2017 +21.5929 -39.0389 67.3673 +20.9126 -39.1319 67.5278 +20.2557 -39.2704 67.7668 +19.3054 -38.8224 66.9938 +18.839 -39.3442 67.8942 +18.1311 -39.3763 67.9495 +17.4667 -39.5031 68.1683 +16.7577 -39.5289 68.2129 +16.0691 -39.6007 68.3368 +15.1693 -39.1282 67.5214 +14.67 -39.686 68.484 +13.8224 -39.3043 67.8253 +13.1378 -39.3633 67.9271 +12.3114 -38.9736 67.2546 +11.7656 -39.4723 68.1152 +10.9668 -39.125 67.5159 +10.4029 -39.6189 68.3682 +9.7008 -39.6132 68.3583 +9.01098 -39.6541 68.4289 +8.22639 -39.2432 67.7199 +7.62932 -39.7269 68.5545 +6.85916 -39.3092 67.8338 +6.21396 -39.5877 68.3143 +5.48286 -39.3132 67.8407 +4.83504 -39.636 68.3977 +4.11361 -39.3552 67.9132 +3.42848 -39.3717 67.9417 +2.71169 -38.9343 67.1868 +2.06013 -39.4458 68.0696 +1.3578 -39.0022 67.304 +0.686778 -39.4579 68.0903 +1.06581e-14 -39.0081 67.3142 +-0.686778 -39.4579 68.0903 +-1.3735 -39.4534 68.0825 +-2.08369 -39.8969 68.848 +-2.74659 -39.4354 68.0515 +-3.43285 -39.4218 68.0281 +-4.11884 -39.4053 67.9996 +-4.85946 -39.8362 68.7431 +-5.48983 -39.3633 67.9271 +-6.2375 -39.7376 68.573 +-6.82429 -39.1094 67.489 +-7.54306 -39.2777 67.7795 +-8.19503 -39.0936 67.4617 +-8.94305 -39.3552 67.9131 +-9.68861 -39.5634 68.2724 +-10.3638 -39.4698 68.1108 +-11.0225 -39.3236 67.8586 +-11.7804 -39.5219 68.2007 +-12.3896 -39.2212 67.6819 +-13.2368 -39.66 68.4391 +-13.9266 -39.6006 68.3366 +-14.6153 -39.5381 68.2288 +-15.1502 -39.0789 67.4364 +-16.0092 -39.4534 68.0825 +-16.7577 -39.5289 68.2129 +-17.3585 -39.2583 67.7459 +-18.2435 -39.6205 68.371 +-18.7457 -39.1492 67.5576 +-19.6199 -39.4549 68.0851 +-20.431 -39.6102 68.3532 +-20.9902 -39.2772 67.7785 +-21.9403 -39.667 68.4512 +-22.492 -39.3285 67.8671 +-23.4313 -39.6612 68.4413 +-24.2669 -39.797 68.6755 +-25.0789 -39.8806 68.8197 +-25.772 -39.7693 68.6277 +-26.6219 -39.8928 68.8408 +-27.478 -40.0118 69.0462 +-28.0732 -39.7482 68.5914 +-28.8665 -39.7653 68.6208 +-29.8727 -40.0601 69.1295 +-30.5688 -39.9279 68.9014 +-31.4825 -40.0725 69.151 +-32.2911 -40.0727 69.1513 +-32.9873 -39.9299 68.9049 +-33.681 -39.784 68.6532 +-35.0899 -40.4628 69.8245 +-35.7522 -40.2619 69.4778 +-36.8662 -40.5602 69.9926 +-37.1904 -39.9884 69.0058 +-38.1433 -40.0957 69.191 +-38.9712 -40.0625 69.1336 +-39.9347 -40.1596 69.3013 +-40.7683 -40.1174 69.2284 +-41.6959 -40.1599 69.3017 +-42.3933 -39.9759 68.9843 +-44.1372 -40.7583 70.3344 +-44.2146 -39.9935 69.0146 +-45.7954 -40.5841 70.0337 +-46.7 -40.5558 69.985 +-47.6579 -40.566 70.0025 +-48.3621 -40.3559 69.6399 +-49.8464 -40.784 70.3788 +-50.2363 -40.3092 69.5595 +-51.4196 -40.4685 69.8343 +-52.3398 -40.4101 69.7336 +-53.8139 -40.765 70.3459 +-54.5213 -40.5279 69.9369 +-55.6777 -40.6184 70.093 +-56.3826 -40.3732 69.6699 +-57.9542 -40.7373 70.2981 +-58.3083 -40.2388 69.4379 +-60.0771 -40.7076 70.2469 +-60.7833 -40.4432 69.7907 +-61.911 -40.4541 69.8095 +-62.9206 -40.3793 69.6803 +-65.364 -41.2012 71.0986 +-65.701 -40.6798 70.1989 +-68.2512 -41.5127 71.6363 +-68.4569 -40.9052 70.588 +-70.6599 -41.4811 71.5817 +-71.9041 -41.4731 71.5678 +-73.2858 -41.5324 71.6702 +-74.3404 -41.3965 71.4356 +-76.0715 -41.6241 71.8284 +-77.3386 -41.583 71.7576 +-79.0919 -41.7886 72.1123 +-80.1636 -41.6213 71.8236 +-81.7961 -41.7338 72.0178 +-82.9436 -41.5871 71.7646 +-84.9481 -41.8552 72.2272 +-86.033 -41.656 71.8835 +-88.0604 -41.8993 72.3033 +-88.7863 -41.5124 71.6357 +-90.0216 -41.3595 71.3718 +-91.927 -41.5008 71.6157 +-94.8927 -42.0937 72.6388 +-95.6217 -41.6769 71.9195 +-98.2445 -42.071 72.5996 +-99.6624 -41.9296 72.3556 +-101.932 -42.1297 72.701 +-104.604 -42.471 73.2899 +-107.217 -42.7608 73.79 +-107.957 -42.29 72.9776 +-109.8 -42.2434 72.8972 +-111.01 -41.9424 72.3778 +-114.228 -42.3796 73.1322 +-115.204 -41.9666 72.4196 +-118.454 -42.3636 73.1045 +-120.333 -42.2463 72.9022 +-124.855 -43.0245 74.2451 +-126.097 -42.6448 73.5899 +-98.2317 -32.5995 56.2551 +-97.8729 -31.868 54.993 +-98.5081 -31.4655 54.2984 +-99.2216 -31.0865 53.6442 +-99.0768 -30.4415 52.5313 +-98.9171 -29.8003 51.4248 +-98.6565 -29.1373 50.2807 +-99.1599 -28.7046 49.5339 +-98.8724 -28.0474 48.3999 +-98.6571 -27.4193 47.3159 +-99.1306 -26.9866 46.5692 +-98.8901 -26.3635 45.494 +-98.5469 -25.7215 44.3861 +-98.9908 -25.2893 43.6403 +-98.6218 -24.6538 42.5438 +-98.9572 -24.1994 41.7597 +-98.7428 -23.6144 40.7501 +-99.1501 -23.1815 40.003 +-98.7308 -22.5596 38.9299 +-99.1197 -22.1268 38.183 +-98.584 -21.4923 37.0881 +-99.1384 -21.0993 36.41 +-98.5779 -20.4729 35.329 +-98.9305 -20.0408 34.5833 +-98.5312 -19.4602 33.5814 +-98.7728 -19.0103 32.8051 +-98.2569 -18.4195 31.7855 +-98.4798 -17.9717 31.0127 +-98.6946 -17.5234 30.2391 +-99.5631 -17.1888 29.6618 +-99.005 -16.6093 28.6618 +-97.4833 -15.8811 27.4052 +-97.6606 -15.4389 26.6422 +-96.9693 -14.8645 25.6508 +-71.528 -10.6232 18.3319 +-47.967 -6.89627 11.9005 +-40.5688 -5.64099 9.73435 +-36.4154 -4.8923 8.44238 +-32.4329 -4.20552 7.25724 +-17.5624 -2.19548 3.78862 +-17.0165 -2.04832 3.53468 +-18.0258 -2.08658 3.6007 +-18.1591 -2.01849 3.48319 +-17.1176 -1.82428 3.14806 +-16.9527 -1.72933 2.98421 +-16.4913 -1.60725 2.77355 +-16.5187 -1.53504 2.64893 +-16.5448 -1.4627 2.5241 +-15.6819 -1.31578 2.27057 +-15.803 -1.25495 2.16561 +-14.9341 -1.11906 1.93111 +-14.2599 -1.00483 1.73398 +-15.8631 -1.04711 1.80695 +-15.0867 -0.92878 1.60274 +-15.0029 -0.857061 1.47898 +-15.0173 -0.791384 1.36565 +-14.0351 -0.677593 1.16929 +-14.9429 -0.655487 1.13114 +-15.2528 -0.601878 1.03863 +-14.4647 -0.507141 0.875146 +-15.5709 -0.477502 0.824 +-15.4788 -0.406731 0.701874 +-14.5861 -0.319307 0.55101 +-15.0908 -0.264223 0.455956 +-14.3951 -0.188998 0.326143 +-14.4978 -0.126882 0.218953 +-13.2995 -0.0581928 0.10042 +93.4 1.77636e-15 -2.27374e-13 +92.4965 -0.398406 0.702035 +73.7888 -0.635703 1.12018 +70.1759 -0.90698 1.5982 +62.6618 -1.08001 1.9031 +70.9324 -1.52855 2.69348 +70.4034 -1.82109 3.20895 +65.5775 -1.97962 3.48831 +53.7687 -1.85573 3.27 +50.1449 -1.94784 3.4323 +47.0204 -2.03039 3.57777 +56.439 -2.68224 4.7264 +61.1631 -3.17287 5.59093 +64.6815 -3.63732 6.40936 +91.9098 -5.5699 9.81477 +95.1787 -6.18458 10.8979 +95.2638 -6.60806 11.6441 +95.2422 -7.02537 12.3795 +95.1144 -7.43532 13.1018 +94.9793 -7.84473 13.8233 +95.7233 -8.33064 14.6795 +95.4741 -8.73364 15.3896 +95.4142 -9.15391 16.1302 +95.2487 -9.56455 16.8538 +95.0759 -9.9744 17.576 +95.7746 -10.4797 18.4663 +95.4883 -10.8807 19.1729 +95.4867 -11.3146 19.9375 +95.283 -11.7254 20.6614 +95.8466 -12.2342 21.558 +95.6267 -12.6466 22.2847 +95.3994 -13.058 23.0096 +96.03 -13.5908 23.9485 +95.7861 -14.0039 24.6764 +96.2999 -14.5314 25.6058 +96.1347 -14.9604 26.3619 +95.7714 -15.3587 27.0636 +96.3497 -15.9116 28.0379 +96.0647 -16.3259 28.768 +96.5265 -16.8709 29.7283 +96.2245 -17.286 30.4598 +95.8216 -17.6825 31.1584 +96.6256 -18.3068 32.2585 +97.1356 -18.885 33.2775 +96.798 -19.3027 34.0134 +96.453 -19.7189 34.7468 +96.1007 -20.1335 35.4775 +96.6581 -20.7435 36.5524 +96.1963 -21.139 37.2492 +96.8199 -21.7777 38.3746 +96.4311 -22.1938 39.1079 +96.0351 -22.6083 39.8383 +96.3507 -23.1942 40.8706 +96.7424 -23.8065 41.9496 +96.2287 -24.1999 42.6428 +96.5955 -24.8185 43.7329 +96.9476 -25.4422 44.8318 +96.4941 -25.8587 45.5659 +96.8204 -26.4887 46.676 +96.3484 -26.9047 47.409 +96.5618 -27.5161 48.4864 +96.8471 -28.1564 49.6146 +96.2599 -28.5471 50.303 +96.5189 -29.1926 51.4406 +96.5927 -29.7903 52.4938 +96.1466 -30.2318 53.2717 +94.602 -30.3222 53.4309 +94.4793 -30.8647 54.3869 +94.0958 -31.3256 55.1991 +94.1976 -31.9533 56.3052 +94.2025 -32.556 57.3672 +94.4374 -33.2471 58.585 +94.4932 -33.8847 59.7085 +94.6943 -34.584 60.9407 +94.7182 -35.2282 62.0758 +94.409 -35.7549 63.0041 +94.2461 -36.3425 64.0395 +94.6956 -37.1772 65.5103 +94.5787 -37.8011 66.6096 +94.6012 -38.4896 67.8228 +93.4574 -38.7052 68.2028 +91.4768 -38.5613 67.9493 +90.4897 -38.8244 68.4127 +89.2006 -38.951 68.6358 +87.3938 -38.8383 68.4373 +86.4826 -39.1132 68.9217 +84.6908 -38.9793 68.6857 +83.1279 -38.9349 68.6074 +82.0047 -39.0858 68.8733 +80.526 -39.0569 68.8225 +79.4081 -39.1929 69.062 +78.5018 -39.4278 69.476 +76.8292 -39.2673 69.1933 +75.4437 -39.2387 69.1428 +73.7922 -39.0568 68.8224 +72.2882 -38.9365 68.6103 +70.5264 -38.6595 68.1222 +70.1715 -39.1466 68.9806 +68.6894 -39.0004 68.7229 +68.4518 -39.5575 69.7045 +67.0427 -39.4348 69.4885 +66.2794 -39.684 69.9276 +64.3165 -39.2009 69.0761 +64.3058 -39.9013 70.3103 +62.3665 -39.3989 69.4251 +61.1196 -39.3136 69.2748 +59.8806 -39.2205 69.1108 +59.3633 -39.596 69.7724 +58.1907 -39.5307 69.6575 +57.5477 -39.82 70.1672 +56.3252 -39.7025 69.9601 +54.8848 -39.4148 69.4532 +54.1858 -39.6497 69.8671 +52.986 -39.5112 69.6229 +51.7952 -39.3654 69.366 +50.6136 -39.2123 69.0963 +49.9184 -39.4288 69.4778 +48.4879 -39.0531 68.8158 +47.435 -38.9643 68.6594 +46.2875 -38.7844 68.3424 +45.5 -38.8968 68.5404 +44.7121 -39.0054 68.7317 +43.5359 -38.7648 68.3077 +42.7057 -38.8207 68.4063 +41.5482 -38.5674 67.96 +40.6339 -38.526 67.887 +39.9058 -38.6556 68.1153 +39.6224 -39.2235 69.1161 +38.4013 -38.8603 68.4761 +37.7128 -39.0243 68.765 +36.7678 -38.9168 68.5756 +36.0783 -39.0737 68.852 +34.898 -38.6865 68.1698 +34.3323 -38.9711 68.6714 +33.3294 -38.7541 68.2889 +32.6429 -38.8961 68.5392 +31.5793 -38.5776 67.978 +30.8961 -38.7122 68.215 +30.2463 -38.8899 68.5281 +29.5225 -38.9724 68.6736 +28.8323 -39.0981 68.8951 +27.8395 -38.8021 68.3734 +27.1849 -38.9671 68.6643 +26.4632 -39.036 68.7856 +25.5248 -38.7729 68.3221 +24.8082 -38.8343 68.4302 +24.1207 -38.9397 68.6159 +23.4597 -39.0894 68.8798 +22.492 -38.7145 68.2192 +22.0739 -39.2855 69.2254 +20.9126 -38.521 67.8781 +20.456 -39.0397 68.7921 +19.5231 -38.6474 68.1008 +19.0258 -39.1139 68.9229 +18.311 -39.1463 68.9799 +17.4883 -38.9345 68.6068 +16.6953 -38.767 68.3117 +16.0092 -38.8374 68.4358 +15.3601 -39.0018 68.7254 +14.67 -39.0665 68.8393 +13.996 -39.1768 69.0337 +13.2863 -39.1869 69.0515 +12.6086 -39.2914 69.2356 +12.0317 -39.7347 70.0168 +11.2174 -39.394 69.4165 +10.5204 -39.4408 69.499 +9.81048 -39.4356 69.4899 +9.11286 -39.4764 69.5616 +8.32047 -39.0723 68.8497 +7.62932 -39.1067 68.9102 +6.9376 -39.1381 68.9655 +6.21396 -38.9697 68.6688 +5.54564 -39.1426 68.9735 +4.89609 -39.5099 69.6207 +4.14501 -39.0366 68.7867 +3.45466 -39.0529 68.8155 +2.7431 -38.7704 68.3176 +2.08107 -39.2248 69.1183 +1.37176 -38.7881 68.3488 +0.694632 -39.2861 69.2263 +9.76996e-15 -39.2382 69.142 +-0.694632 -39.2861 69.2263 +-1.38921 -39.2816 69.2184 +-2.08107 -39.2248 69.1183 +-2.78149 -39.3129 69.2736 +-3.46774 -39.2009 69.0761 +-4.16594 -39.2337 69.1341 +-4.85336 -39.165 69.013 +-5.55262 -39.1919 69.0603 +-6.2375 -39.1172 68.9288 +-6.94631 -39.1872 69.0521 +-7.68683 -39.4015 69.4297 +-8.33092 -39.1214 68.9362 +-9.12418 -39.5254 69.6481 +-9.81048 -39.4356 69.4899 +-10.5204 -39.4408 69.499 +-11.1617 -39.1985 69.072 +-11.8691 -39.1977 69.0707 +-12.546 -39.0964 68.892 +-13.3028 -39.2355 69.1373 +-13.9266 -38.9824 68.6911 +-14.6335 -38.9694 68.6683 +-15.322 -38.9049 68.5547 +-16.0691 -38.9825 68.6914 +-16.7577 -38.9118 68.5668 +-17.5965 -39.1755 69.0314 +-18.356 -39.2425 69.1495 +-18.9791 -39.0179 68.7538 +-19.7408 -39.0783 68.8603 +-20.6564 -39.4219 69.4657 +-21.1196 -38.9023 68.5501 +-22.0472 -39.238 69.1415 +-22.6574 -38.9992 68.7208 +-23.6869 -39.468 69.5469 +-24.3838 -39.3645 69.3644 +-25.3796 -39.7287 70.0062 +-25.9265 -39.3831 69.3973 +-26.7805 -39.504 69.6103 +-27.3152 -39.1538 68.9933 +-28.4737 -39.686 69.9311 +-29.0717 -39.4228 69.4672 +-30.0828 -39.7121 69.977 +-30.8913 -39.7192 69.9896 +-31.5924 -39.5847 69.7525 +-32.6282 -39.859 70.2358 +-33.3317 -39.7169 69.9855 +-34.0327 -39.5719 69.7299 +-35.2893 -40.0574 70.5855 +-35.7928 -39.6785 69.9178 +-37.0736 -40.1516 70.7514 +-37.5708 -39.7667 70.0733 +-38.5307 -39.8707 70.2564 +-39.2342 -39.7032 69.9613 +-40.4701 -40.0627 70.5948 +-41.3131 -40.0188 70.5175 +-41.9729 -39.7956 70.1241 +-42.8158 -39.744 70.0333 +-43.8032 -39.8183 70.1642 +-45.0873 -40.1462 70.7419 +-45.9924 -40.1223 70.6998 +-46.95 -40.1364 70.7247 +-47.9624 -40.1878 70.8153 +-48.6711 -39.9797 70.4485 +-50.0031 -40.2736 70.9664 +-50.5543 -39.9311 70.3629 +-51.9031 -40.2113 70.8567 +-52.6121 -39.9863 70.4601 +-54.2554 -40.4578 71.291 +-55.6956 -40.7545 71.8138 +-56.1875 -40.3504 71.1017 +-57.415 -40.4707 71.3137 +-58.1284 -40.2219 70.8753 +-58.8373 -39.97 70.4314 +-60.2555 -40.1911 70.8211 +-61.686 -40.4031 71.1946 +-62.8851 -40.4491 71.2757 +-63.9672 -40.4101 71.2069 +-65.9243 -40.9056 72.08 +-66.8338 -40.7351 71.7797 +-68.442 -40.9789 72.2093 +-69.3568 -40.796 71.887 +-71.829 -41.509 73.1434 +-72.3633 -41.0864 72.3986 +-74.2134 -41.4015 72.9539 +-75.5448 -41.4104 72.9697 +-77.22 -41.5929 73.2912 +-78.3616 -41.4753 73.0839 +-79.4361 -41.3152 72.8019 +-80.4414 -41.1135 72.4464 +-82.3568 -41.3639 72.8877 +-83.58 -41.2519 72.6904 +-85.3048 -41.3747 72.9067 +-86.9682 -41.4514 73.0419 +-88.9309 -41.6529 73.3969 +-89.0057 -40.9653 72.1853 +-92.0859 -41.6474 73.3872 +-93.2647 -41.4474 73.0347 +-95.6416 -41.7636 73.5919 +-97.0557 -41.6415 73.3768 +-98.8528 -41.6706 73.4281 +-100.582 -41.6557 73.4018 +-102.703 -41.786 73.6314 +-105.303 -42.0875 74.1627 +-107.922 -42.3698 74.6601 +-108.036 -41.6602 73.4098 +-110.673 -41.9144 73.8577 +-112.368 -41.7926 73.6431 +-114.791 -41.9235 73.8738 +-116.013 -41.6016 73.3065 +-119.675 -42.1321 74.2413 +-121.89 -42.1247 74.2282 +-125.185 -42.4647 74.8274 +-101.474 -33.782 59.5275 +-98.3985 -32.145 56.643 +-98.4599 -31.5587 55.6098 +-98.5081 -30.9743 54.5801 +-98.4584 -30.3657 53.5077 +-99.0768 -29.9663 52.8039 +-98.9171 -29.3351 51.6916 +-98.6565 -28.6824 50.5416 +-99.1599 -28.2564 49.7909 +-98.8724 -27.6095 48.651 +-98.6571 -26.9912 47.5614 +-99.1306 -26.5653 46.8109 +-98.8901 -25.9519 45.7301 +-99.3452 -25.525 44.9778 +-98.9017 -24.872 43.8272 +-99.2482 -24.4231 43.0361 +-98.9572 -23.8216 41.9763 +-98.7428 -23.2458 40.9615 +-99.1501 -22.8196 40.2105 +-98.7308 -22.2074 39.1319 +-99.0283 -21.7613 38.3458 +-98.6757 -21.1765 37.3153 +-98.3099 -20.5964 36.2931 +-98.5779 -20.1533 35.5123 +-98.9305 -19.7279 34.7628 +-98.4382 -19.1383 33.7237 +-98.8662 -18.7313 33.0066 +-98.2569 -18.1319 31.9504 +-99.3255 -17.843 31.4413 +-98.6946 -17.2498 30.396 +-98.7121 -16.7758 29.5608 +-98.9102 -16.3344 28.783 +-98.4343 -15.7858 27.8162 +-97.6606 -15.1979 26.7804 +-96.1086 -14.5025 25.555 +-89.5538 -13.0927 23.0708 +-52.1965 -7.3872 13.017 +-41.8216 -5.72439 10.087 +-36.3188 -4.80315 8.46367 +-32.1425 -4.1028 7.22957 +-18.1445 -2.23285 3.93452 +-17.3082 -2.05091 3.61393 +-17.0515 -1.94298 3.42374 +-16.2065 -1.77332 3.12478 +-17.7045 -1.85737 3.27289 +-16.3647 -1.64329 2.89565 +-16.884 -1.61983 2.85431 +-16.2237 -1.48409 2.61512 +-16.0524 -1.39701 2.46169 +-15.9778 -1.31967 2.32541 +-16.2969 -1.27397 2.24487 +-14.9341 -1.10159 1.94112 +-14.0618 -0.975408 1.71877 +-15.5657 -1.01144 1.78226 +-15.583 -0.944358 1.66406 +-13.91 -0.782218 1.37835 +-14.8184 -0.768709 1.35455 +-14.1346 -0.671743 1.18368 +-14.8433 -0.64095 1.12942 +-15.0535 -0.584738 1.03037 +-14.9635 -0.516439 0.910021 +-15.4711 -0.467034 0.822965 +-15.279 -0.395215 0.696412 +-14.5861 -0.314322 0.553869 +-14.4912 -0.249764 0.440111 +-15.2948 -0.197675 0.348325 +-13.8979 -0.119732 0.210981 +-14.5994 -0.0628833 0.110807 +93.5 1.77636e-15 1.13687e-13 +91.5965 -0.388241 0.698735 +77.5882 -0.657781 1.18384 +74.0746 -0.942107 1.69556 +67.1591 -1.13908 2.05005 +72.5309 -1.53808 2.76816 +73.7987 -1.87849 3.38081 +71.167 -2.11411 3.80487 +59.7541 -2.02943 3.65247 +55.4286 -2.11876 3.81324 +52.2006 -2.21815 3.99211 +64.7008 -3.02586 5.44579 +64.6439 -3.29998 5.93913 +73.5243 -4.06868 7.32261 +93.5971 -5.58175 10.0457 +95.2779 -6.09236 10.9647 +95.2638 -6.50272 11.7033 +95.2422 -6.91338 12.4423 +95.1144 -7.3168 13.1684 +95.9656 -7.79982 14.0377 +94.7385 -8.11353 14.6023 +95.5724 -8.60326 15.4837 +95.4142 -9.00799 16.2121 +95.2487 -9.41208 16.9394 +95.9563 -9.90628 17.8288 +94.9936 -10.2285 18.4088 +95.4883 -10.7072 19.2703 +95.4867 -11.1342 20.0388 +95.283 -11.5385 20.7664 +95.9434 -12.0514 21.6895 +95.6267 -12.445 22.3979 +95.3031 -12.8369 23.1031 +96.03 -13.3742 24.0702 +95.7861 -13.7807 24.8017 +96.2999 -14.2997 25.7359 +96.0393 -14.7074 26.4696 +95.8665 -15.1289 27.2281 +96.3497 -15.6579 28.1803 +96.0647 -16.0657 28.9142 +95.6781 -16.456 29.6167 +96.2245 -17.0104 30.6145 +96.9456 -17.6047 31.6841 +96.6256 -18.015 32.4224 +96.2982 -18.4238 33.1582 +96.798 -18.995 34.1862 +96.453 -19.4046 34.9234 +96.1928 -19.8316 35.6919 +95.8328 -20.2386 36.4243 +96.2877 -20.8217 37.4739 +96.0009 -21.2492 38.2432 +96.4311 -21.84 39.3066 +96.8474 -22.4361 40.3793 +96.3507 -22.8244 41.0783 +96.7424 -23.427 42.1627 +96.3178 -23.8361 42.8991 +96.5955 -24.4229 43.955 +96.9476 -25.0366 45.0596 +96.4941 -25.4465 45.7973 +96.0332 -25.8546 46.5317 +96.3484 -26.4759 47.6499 +96.5618 -27.0775 48.7327 +96.8471 -27.7076 49.8667 +96.2599 -28.092 50.5585 +96.5189 -28.7273 51.7019 +96.5927 -29.3155 52.7605 +96.5683 -29.8803 53.7771 +95.7762 -30.2091 54.3689 +95.1464 -30.5871 55.0491 +94.1787 -30.8534 55.5284 +95.1042 -31.7466 57.1359 +94.2844 -32.0649 57.7087 +94.5188 -32.7453 58.9334 +94.4932 -33.3445 60.0118 +94.614 -34.0038 61.1983 +94.5584 -34.6081 62.2859 +94.3297 -35.1554 63.2709 +94.6401 -35.9127 64.6338 +94.5391 -36.5241 65.7343 +94.1124 -37.0151 66.6179 +94.4468 -37.8143 68.0561 +93.9937 -38.3067 68.9425 +92.5414 -38.3882 69.0892 +91.1689 -38.4922 69.2763 +89.7998 -38.5875 69.4478 +88.0627 -38.5117 69.3114 +87.1462 -38.7851 69.8034 +85.349 -38.6561 69.5712 +83.9984 -38.7155 69.6781 +82.0047 -38.4627 69.2232 +81.5245 -38.9109 70.0298 +80.398 -39.0489 70.2782 +79.1327 -39.1111 70.3901 +77.5933 -39.0257 70.2365 +76.132 -38.9655 70.1282 +74.747 -38.9315 70.067 +74.0447 -39.2469 70.6345 +70.8609 -38.2237 68.793 +70.2377 -38.559 69.3964 +68.9518 -38.5253 69.3359 +68.8415 -39.1485 70.4574 +67.7498 -39.2155 70.5781 +66.5338 -39.2013 70.5526 +65.0088 -38.9912 70.1743 +64.866 -39.6073 71.2833 +63.1053 -39.2301 70.6043 +62.398 -39.4961 71.083 +61.1444 -39.41 70.928 +59.7202 -39.1991 70.5485 +58.661 -39.2149 70.577 +57.7799 -39.3435 70.8083 +56.7841 -39.388 70.8884 +55.9043 -39.507 71.1027 +54.6891 -39.3801 70.8743 +53.9794 -39.6103 71.2887 +52.2853 -39.1044 70.3782 +52.0643 -39.6932 71.4378 +50.3953 -39.171 70.4979 +49.2716 -39.0518 70.2834 +47.8985 -38.7179 69.6826 +47.2011 -38.9194 70.0452 +45.8 -38.5291 69.3428 +44.8105 -38.4682 69.2331 +43.8753 -38.4442 69.19 +43.1829 -38.6287 69.522 +42.0177 -38.3814 69.077 +41.3265 -38.5581 69.3949 +39.9512 -38.0826 68.5392 +39.4885 -38.4678 69.2325 +38.4013 -38.2409 68.824 +37.8419 -38.5337 69.3509 +37.1481 -38.6926 69.637 +36.0783 -38.4508 69.2018 +35.3861 -38.6023 69.4744 +34.6912 -38.7508 69.7416 +33.681 -38.5387 69.3599 +32.9873 -38.68 69.6142 +31.9539 -38.413 69.1338 +31.2626 -38.547 69.3749 +30.5688 -38.678 69.6107 +29.9077 -38.8516 69.9231 +28.8323 -38.4748 69.245 +28.1399 -38.5956 69.4624 +27.1524 -38.3 68.9305 +26.4632 -38.4137 69.135 +25.8029 -38.5706 69.4173 +25.0789 -38.6322 69.5282 +24.1207 -38.3189 68.9645 +23.6869 -38.8389 69.9002 +22.7676 -38.5643 69.406 +22.0739 -38.6593 69.577 +21.1196 -38.2822 68.8984 +20.6814 -38.8405 69.9032 +19.765 -38.5026 69.295 +19.0258 -38.4904 69.273 +18.3335 -38.5696 69.4156 +17.6615 -38.6933 69.6381 +16.9656 -38.7666 69.7701 +16.388 -39.1226 70.4109 +15.5319 -38.8092 69.8468 +14.834 -38.8735 69.9625 +14.1523 -38.9827 70.1591 +13.4514 -39.0413 70.2645 +12.6086 -38.665 69.5874 +11.9134 -38.717 69.6809 +11.2174 -38.766 69.7691 +10.6379 -39.2455 70.632 +9.92016 -39.2409 70.6237 +9.21474 -39.2814 70.6966 +8.41454 -38.8842 69.9819 +7.72517 -38.9668 70.1304 +7.01604 -38.9497 70.0996 +6.29242 -38.8327 69.889 +5.59447 -38.8578 69.9343 +4.89609 -38.8801 69.9743 +4.14501 -38.4143 69.1361 +3.49827 -38.9157 70.0384 +2.76404 -38.4436 69.1888 +2.08107 -38.5995 69.4694 +1.38747 -38.6069 69.4826 +0.69376 -38.6113 69.4906 +8.88178e-15 -38.6127 69.4932 +-0.702486 -39.0969 70.3646 +-1.39968 -38.9468 70.0944 +-2.10986 -39.1336 70.4306 +-2.77451 -38.5892 69.4509 +-3.49827 -38.9157 70.0384 +-4.21304 -39.0449 70.2709 +-4.91441 -39.0255 70.2361 +-5.59447 -38.8578 69.9343 +-6.3238 -39.0263 70.2375 +-6.98989 -38.8045 69.8383 +-7.77309 -39.2085 70.5654 +-8.42499 -38.9326 70.0688 +-9.12418 -38.8954 70.0019 +-9.82267 -38.8552 69.9296 +-10.6509 -39.2936 70.7187 +-11.1756 -38.6217 69.5094 +-12.0169 -39.0533 70.286 +-12.5617 -38.5211 69.3284 +-13.4184 -38.9454 70.092 +-13.996 -38.5523 69.3844 +-14.8157 -38.8258 69.8766 +-15.5128 -38.7615 69.761 +-16.2684 -38.8371 69.897 +-16.9032 -38.6241 69.5137 +-17.7913 -38.9777 70.1501 +-18.356 -38.6169 69.5007 +-19.3059 -39.0571 70.293 +-19.9586 -38.8796 69.9735 +-20.8066 -39.0756 70.3263 +-21.5079 -38.9859 70.1649 +-22.2075 -38.8933 69.9982 +-22.9055 -38.7977 69.8261 +-23.9709 -39.3046 70.7383 +-24.5885 -39.0621 70.302 +-25.3796 -39.0954 70.3618 +-26.081 -38.9863 70.1656 +-26.9709 -39.1506 70.4613 +-27.771 -39.1726 70.5008 +-28.7742 -39.4655 71.0279 +-29.4821 -39.342 70.8057 +-30.398 -39.4885 71.0694 +-30.8913 -39.0861 70.3451 +-31.8123 -39.2248 70.5948 +-32.853 -39.4938 71.0789 +-33.6761 -39.4877 71.0679 +-34.3843 -39.3434 70.8083 +-35.6482 -39.8198 71.6656 +-36.4843 -39.8003 71.6305 +-37.115 -39.5557 71.1903 +-37.8243 -39.3969 70.9045 +-39.1765 -39.8927 71.7968 +-39.7603 -39.5941 71.2595 +-40.6932 -39.6414 71.3446 +-41.5855 -39.6406 71.343 +-42.9426 -40.0659 72.1086 +-43.52 -39.7537 71.5467 +-44.8052 -40.08 72.1339 +-45.0873 -39.5062 71.1013 +-46.6818 -40.0745 72.1241 +-47.4 -39.8752 71.7652 +-49.0282 -40.426 72.7567 +-49.2891 -39.842 71.7055 +-50.7869 -40.2527 72.4448 +-51.1902 -39.7888 71.6098 +-53.0315 -40.4305 72.7648 +-53.1023 -39.7155 71.4778 +-54.7521 -40.1774 72.3092 +-55.4719 -39.9438 71.8888 +-57.207 -40.4276 72.7596 +-57.9312 -40.1837 72.3205 +-59.1736 -40.2925 72.5163 +-59.8953 -40.0401 72.0621 +-61.5047 -40.3704 72.6565 +-62.2277 -40.1081 72.1846 +-63.4938 -40.1897 72.3313 +-64.8292 -40.3017 72.533 +-66.6091 -40.6716 73.1987 +-67.7149 -40.6142 73.0954 +-69.5233 -40.9628 73.7228 +-70.4495 -40.7782 73.3905 +-72.1537 -41.032 73.8473 +-72.8882 -40.7246 73.2941 +-74.8098 -41.0689 73.9138 +-75.8794 -40.9308 73.6651 +-77.6253 -41.1448 74.0502 +-78.7026 -40.9918 73.7749 +-80.6752 -41.2908 74.3131 +-81.6918 -41.0871 73.9464 +-83.1979 -41.1203 74.0062 +-84.2164 -40.9035 73.616 +-86.5886 -41.328 74.3799 +-87.112 -40.8581 73.5344 +-89.1485 -41.0892 73.9502 +-89.664 -40.6104 73.0885 +-93.1919 -41.4757 74.6459 +-93.9335 -41.0791 73.9321 +-96.091 -41.291 74.3133 +-98.1122 -41.4238 74.5524 +-99.8413 -41.4164 74.5391 +-101.348 -41.3039 74.3366 +-103.166 -41.3053 74.3391 +-106.469 -41.8751 75.3646 +-108.704 -41.9967 75.5835 +-109.061 -41.3848 74.4823 +-112.101 -41.7785 75.1908 +-113.326 -41.4772 74.6485 +-115.514 -41.5152 74.717 +-117.469 -41.4523 74.6037 +-121.873 -42.222 75.989 +-122.955 -41.8153 75.257 +-109.526 -36.5609 65.8004 +-98.7384 -32.3472 58.2169 +-98.3985 -31.6326 56.9308 +-98.6277 -31.1086 55.9876 +-99.3515 -30.7415 55.327 +-99.1368 -30.0876 54.1502 +-99.0768 -29.4886 53.0721 +-98.9171 -28.8675 51.9542 +-98.6565 -28.2252 50.7983 +-98.3805 -27.5875 49.6505 +-98.9594 -27.1934 48.9412 +-98.5696 -26.5374 47.7606 +-99.2185 -26.165 47.0904 +-98.8901 -25.5382 45.9624 +-98.4582 -24.8938 44.8027 +-98.8126 -24.4535 44.0102 +-98.5323 -23.8604 42.9428 +-99.0471 -23.4632 42.2278 +-98.7428 -22.8752 41.1696 +-99.1501 -22.4558 40.4148 +-98.7308 -21.8534 39.3307 +-99.1197 -21.4341 38.5761 +-98.6757 -20.8389 37.5048 +-99.0463 -20.4199 36.7507 +-98.6703 -19.8506 35.7262 +-98.9305 -19.4135 34.9394 +-99.2756 -18.9934 34.1834 +-98.8662 -18.4327 33.1742 +-98.2569 -17.8429 32.1127 +-98.4798 -17.4091 31.332 +-98.6946 -16.9748 30.5504 +-98.7121 -16.5084 29.711 +-98.436 -15.9969 28.7905 +-98.2441 -15.5041 27.9035 +-98.9004 -15.1455 27.2581 +-96.8737 -14.385 25.8893 +-95.882 -13.7945 24.8266 +-58.4447 -8.13966 14.6493 +-48.2779 -6.50277 11.7034 +-38.0575 -4.95287 8.91393 +-35.0469 -4.40222 7.92289 +-20.3762 -2.4675 4.44089 +-18.6695 -2.17696 3.91797 +-17.6361 -1.97756 3.55911 +-16.8899 -1.81864 3.2731 +-17.0198 -1.75708 3.1623 +-16.4627 -1.62678 2.92779 +-16.9822 -1.60328 2.8855 +-16.1254 -1.45158 2.61247 +-16.1508 -1.38318 2.48937 +-15.6819 -1.27459 2.29394 +-15.7042 -1.20807 2.17423 +-15.4286 -1.11993 2.01559 +-14.755 -1.00718 1.81266 +-15.5657 -0.995315 1.79132 +-16.2778 -0.970739 1.74709 +-15.4997 -0.857722 1.54368 +-14.6195 -0.746304 1.34316 +-14.6323 -0.68431 1.23159 +-15.2418 -0.647664 1.16563 +-14.4553 -0.552555 0.994461 +-14.9635 -0.508207 0.914644 +-14.972 -0.444764 0.800464 +-14.8796 -0.378748 0.681651 +-15.0856 -0.319904 0.575747 +-13.8915 -0.235612 0.424042 +-14.695 -0.186896 0.336366 +-14.4978 -0.12291 0.221207 +-14.0995 -0.0597618 0.107556 +93.8 7.10543e-15 -1.7053e-13 +91.2965 -0.380669 0.69991 +83.0873 -0.69293 1.27404 +81.2721 -1.01682 1.86956 +73.855 -1.23225 2.26565 +82.4215 -1.71937 3.16128 +80.19 -2.00794 3.69186 +76.5569 -2.2372 4.11339 +69.4305 -2.31968 4.26504 +67.0925 -2.52286 4.63861 +62.0629 -2.59429 4.76995 +71.1708 -3.27426 6.02017 +69.716 -3.50096 6.43698 +94.4887 -5.14367 9.45732 +95.2844 -5.58987 10.2777 +95.377 -5.99939 11.0307 +95.2638 -6.39686 11.7615 +95.2422 -6.80083 12.5042 +95.3119 -7.21263 13.2614 +94.8807 -7.58612 13.9481 +95.7233 -8.06438 14.8274 +95.4741 -8.4545 15.5447 +95.4142 -8.86133 16.2927 +95.2487 -9.25885 17.0236 +95.0759 -9.65561 17.7531 +95.7746 -10.1447 18.6524 +95.5857 -10.5437 19.3859 +95.3895 -10.9418 20.118 +95.186 -11.3391 20.8484 +95.9434 -11.8552 21.7973 +95.6267 -12.2424 22.5093 +96.2667 -12.7555 23.4527 +95.9339 -13.1433 24.1656 +95.7861 -13.5563 24.9251 +96.2043 -14.053 25.8382 +96.1347 -14.4823 26.6276 +95.7714 -14.8678 27.3364 +96.3497 -15.403 28.3205 +96.0647 -15.8041 29.0579 +95.7724 -16.2041 29.7933 +96.1306 -16.7172 30.7367 +96.9456 -17.3181 31.8417 +96.6256 -17.7217 32.5836 +96.2982 -18.1239 33.3231 +95.9635 -18.5247 34.0601 +96.453 -19.0887 35.097 +96.1928 -19.5087 35.8694 +95.8328 -19.9091 36.6055 +96.379 -20.5022 37.696 +96.0009 -20.9033 38.4334 +96.4311 -21.4845 39.5021 +95.9448 -21.8651 40.2019 +96.4406 -22.4738 41.321 +96.6529 -23.0243 42.3332 +96.3178 -23.4481 43.1124 +96.5955 -24.0253 44.1736 +96.153 -24.4271 44.9125 +96.4941 -25.0322 46.0251 +96.8204 -25.6421 47.1464 +96.3484 -26.0448 47.8868 +96.5618 -26.6367 48.975 +96.761 -27.2323 50.0701 +96.2599 -27.6347 50.81 +96.5189 -28.2596 51.959 +96.6775 -28.8635 53.0694 +96.9057 -29.4965 54.2333 +96.7826 -30.0296 55.2133 +95.6467 -30.2474 55.6138 +94.3445 -30.4046 55.9028 +94.28 -30.9591 56.9225 +94.2844 -31.5429 57.9957 +94.4374 -32.1845 59.1754 +94.4932 -32.8017 60.3102 +94.614 -33.4502 61.5026 +94.7182 -34.1022 62.7014 +94.5677 -34.6704 63.746 +94.5613 -35.2987 64.9012 +94.6173 -35.9592 66.1158 +94.5009 -36.5629 67.2257 +94.4468 -37.1986 68.3946 +94.6065 -37.9288 69.7372 +93.9101 -38.3218 70.4597 +91.8482 -38.1477 70.1396 +90.5487 -38.2759 70.3754 +88.7315 -38.1725 70.1851 +88.0309 -38.541 70.8627 +86.446 -38.5155 70.8158 +85.0864 -38.5785 70.9316 +83.6592 -38.5999 70.971 +82.3091 -38.6458 71.0554 +81.4587 -38.9199 71.5595 +79.6934 -38.7469 71.2414 +78.4269 -38.8028 71.3441 +77.7152 -39.1283 71.9426 +75.9746 -38.9267 71.5719 +74.7203 -38.9602 71.6334 +72.8014 -38.6311 71.0284 +71.563 -38.6469 71.0574 +69.7391 -38.3308 70.4762 +69.1662 -38.6928 71.1418 +67.7498 -38.5771 70.9291 +67.6151 -39.1899 72.0558 +66.1416 -39.0247 71.7521 +65.9243 -39.5982 72.8065 +64.1519 -39.2315 72.1322 +62.8851 -39.1563 71.994 +61.5055 -38.9973 71.7016 +61.0288 -39.4059 72.4529 +59.719 -39.2723 72.2073 +58.9994 -39.5198 72.6623 +57.2429 -39.0598 71.8166 +57.0371 -39.6513 72.9042 +55.6397 -39.4123 72.4647 +54.2002 -39.1249 71.9362 +53.2657 -39.1891 72.0543 +52.7091 -39.5306 72.6822 +51.0842 -39.06 71.8169 +50.3689 -39.2715 72.2058 +48.5681 -38.62 71.008 +48.1146 -39.0268 71.756 +46.7 -38.6467 71.0571 +45.5492 -38.4657 70.7242 +44.3601 -38.2362 70.3024 +43.8509 -38.5877 70.9486 +43.0036 -38.6425 71.0493 +42.25 -38.778 71.2984 +40.4506 -37.9309 69.741 +40.3809 -38.6968 71.1491 +39.1904 -38.3913 70.5874 +38.6599 -38.7257 71.2024 +37.4017 -38.3225 70.4609 +36.8662 -38.6509 71.0648 +35.6301 -38.2357 70.3014 +34.9304 -38.3828 70.5719 +33.9936 -38.2631 70.3517 +33.3317 -38.4475 70.6908 +32.2911 -38.1863 70.2106 +31.8856 -38.6751 71.1093 +30.8913 -38.4498 70.695 +30.1879 -38.5771 70.9291 +29.1743 -38.2974 70.4149 +28.7742 -38.823 71.3811 +27.771 -38.5349 70.8514 +27.0661 -38.6492 71.0616 +26.0501 -38.3062 70.431 +25.6201 -38.8234 71.382 +24.6469 -38.5176 70.8196 +23.9425 -38.6188 71.0059 +23.0157 -38.3498 70.5112 +22.2877 -38.3983 70.6003 +21.5855 -38.4897 70.7684 +20.9067 -38.6245 71.0162 +19.9827 -38.2929 70.4066 +19.4693 -38.7465 71.2406 +18.536 -38.3607 70.5311 +17.9645 -38.7164 71.1851 +17.1319 -38.5094 70.8046 +16.6871 -39.188 72.0523 +15.57 -38.2712 70.3666 +15.1255 -38.9923 71.6926 +14.2565 -38.6304 71.0271 +13.6164 -38.8769 71.4803 +12.8433 -38.7434 71.2349 +12.1795 -38.9372 71.5913 +11.3426 -38.5607 70.8989 +10.7684 -39.0802 71.8542 +9.92016 -38.602 70.9749 +9.29398 -38.9742 71.6592 +8.58179 -39.0114 71.7277 +7.86894 -39.0458 71.7908 +7.10319 -38.7915 71.3233 +6.44149 -39.1054 71.9005 +5.67818 -38.7972 71.3337 +4.98156 -38.9147 71.5499 +4.24445 -38.6955 71.1468 +3.53753 -38.7117 71.1765 +2.80941 -38.4385 70.6742 +2.13604 -38.9741 71.659 +1.42063 -38.886 71.497 +0.71034 -38.8904 71.5052 +8.88178e-15 -38.7486 71.2444 +-0.712085 -38.986 71.6809 +-1.41539 -38.7426 71.2335 +-2.1308 -38.8786 71.4834 +-2.84082 -38.8682 71.4643 +-3.58115 -39.189 72.0542 +-4.24445 -38.6955 71.1468 +-4.98156 -38.9147 71.5499 +-5.72701 -39.1308 71.9471 +-6.44149 -39.1054 71.9005 +-7.11191 -38.8391 71.4108 +-7.79226 -38.6653 71.0912 +-8.49816 -38.6313 71.0288 +-9.26002 -38.8318 71.3974 +-9.94454 -38.6969 71.1493 +-10.7293 -38.9382 71.5929 +-11.3148 -38.4661 70.725 +-12.1499 -38.8427 71.4175 +-12.8589 -38.7906 71.3217 +-13.5669 -38.7355 71.2204 +-14.1176 -38.254 70.335 +-14.9798 -38.6165 71.0015 +-15.6845 -38.5526 70.884 +-16.5675 -38.907 71.5357 +-17.2775 -38.8365 71.4061 +-17.9861 -38.763 71.2709 +-18.491 -38.2675 70.3599 +-19.6328 -39.0717 71.8385 +-20.1037 -38.5248 70.8329 +-21.2823 -39.3183 72.2919 +-21.7667 -38.8128 71.3624 +-22.6084 -38.9507 71.616 +-23.1811 -38.6253 71.0178 +-24.2833 -39.1686 72.0166 +-24.8516 -38.8374 71.4077 +-25.8306 -39.1424 71.9685 +-26.5446 -39.0332 71.7678 +-27.4151 -39.1476 71.9781 +-27.9663 -38.8059 71.3498 +-29.2749 -39.4986 72.6233 +-29.79 -39.1056 71.9008 +-31.0284 -39.6512 72.904 +-31.1063 -38.7174 71.1871 +-32.472 -39.3864 72.4171 +-33.3025 -39.3824 72.4097 +-34.5563 -39.86 73.288 +-34.8141 -39.1867 72.0499 +-36.2862 -39.8726 73.311 +-36.3623 -39.0214 71.746 +-37.82 -39.6509 72.9034 +-38.3315 -39.2751 72.2125 +-39.8223 -39.89 73.3431 +-40.374 -39.5507 72.7192 +-41.3625 -39.6374 72.8787 +-42.4027 -39.7615 73.1067 +-43.4967 -39.9222 73.4022 +-43.9425 -39.4862 72.6006 +-45.5209 -40.0573 73.6507 +-46.2508 -39.866 73.2988 +-47.4204 -40.0459 73.6297 +-47.7 -39.4742 72.5786 +-49.3327 -40.0149 73.5727 +-49.5982 -39.4391 72.5139 +-51.3616 -40.0455 73.629 +-51.9321 -39.7083 73.009 +-53.6225 -40.2156 73.9417 +-54.4094 -40.0306 73.6015 +-55.7456 -40.2405 73.9874 +-56.4785 -40.0065 73.5572 +-58.0566 -40.3601 74.2074 +-58.6769 -40.0383 73.6156 +-59.3478 -39.7532 73.0914 +-60.8946 -40.0454 73.6287 +-62.5159 -40.3661 74.2183 +-63.4313 -40.2183 73.9467 +-65.5027 -40.7862 74.9909 +-65.5064 -40.0598 73.6552 +-67.8541 -40.7573 74.9377 +-68.5959 -40.4729 74.4147 +-70.4775 -40.8489 75.1061 +-71.2209 -40.5535 74.563 +-73.6474 -41.1996 75.7509 +-74.0691 -40.7107 74.852 +-76.3338 -41.2234 75.7946 +-76.8831 -40.797 75.0106 +-79.1792 -41.2851 75.9081 +-79.3164 -40.6389 74.72 +-81.9142 -41.2424 75.8296 +-82.1086 -40.6244 74.6933 +-84.8801 -41.2687 75.878 +-85.4892 -40.8457 75.1002 +-87.4445 -41.057 75.4887 +-88.1911 -40.6908 74.8154 +-90.2366 -40.9136 75.225 +-92.0043 -40.992 75.3692 +-94.8139 -41.5106 76.3227 +-95.1225 -40.9219 75.2403 +-98.3379 -41.5685 76.4291 +-99.0934 -41.1569 75.6724 +-101.894 -41.5799 76.4502 +-102.65 -41.1535 75.6662 +-105.018 -41.3622 76.0498 +-106.78 -41.3136 75.9605 +-110.113 -41.8484 76.9437 +-110.873 -41.3877 76.0967 +-113.767 -41.7091 76.6877 +-114.524 -41.2332 75.8127 +-117.926 -41.692 76.6562 +-119.411 -41.4515 76.214 +-123.094 -41.9508 77.1322 +-125.085 -41.8471 76.9414 +-98.5655 -32.3664 59.5099 +-98.4897 -31.7404 58.359 +-98.8155 -31.2495 57.4562 +-98.7115 -30.6281 56.3138 +-98.5925 -30.01 55.1773 +-99.1368 -29.5978 54.4194 +-99.0768 -29.0085 53.336 +-98.9171 -28.3975 52.2125 +-98.6565 -27.7657 51.0509 +-99.1599 -27.3533 50.2927 +-98.8724 -26.7271 49.1413 +-98.6571 -26.1285 48.0407 +-99.1306 -25.7162 47.2826 +-98.8901 -25.1224 46.1909 +-98.3695 -24.4665 44.9849 +-98.9017 -24.0771 44.2689 +-98.7113 -23.5146 43.2347 +-98.4179 -22.9346 42.1682 +-98.7428 -22.5028 41.3743 +-99.1501 -22.0902 40.6158 +-98.6398 -21.4778 39.4898 +-98.2975 -20.9103 38.4464 +-98.7674 -20.5187 37.7264 +-99.1384 -20.1061 36.9677 +-98.6703 -19.5275 35.9038 +-99.0232 -19.1153 35.146 +-98.5312 -18.5441 34.0958 +-98.8662 -18.1326 33.3392 +-99.0999 -17.7029 32.5492 +-98.6677 -17.1584 31.5479 +-98.7888 -16.7144 30.7317 +-99.4686 -16.3641 30.0876 +-99.1947 -15.8578 29.1567 +-98.8148 -15.3403 28.2051 +-97.4699 -14.6834 26.9974 +-97.1606 -14.1927 26.0951 +-95.5943 -13.5292 24.8752 +-69.9799 -9.58748 17.6278 +-55.5051 -7.35454 13.5223 +-41.5348 -5.31739 9.77673 +-37.1769 -4.59373 8.44618 +-30.1762 -3.59476 6.60945 +-27.0319 -3.10074 5.70111 +-16.7592 -1.84864 3.39896 +-17.3781 -1.84074 3.38444 +-16.0416 -1.62914 2.99538 +-15.7768 -1.53361 2.81975 +-16.3932 -1.52247 2.79927 +-17.5019 -1.54984 2.84959 +-16.5448 -1.39384 2.56277 +-17.0627 -1.36424 2.50833 +-16.0006 -1.21083 2.22627 +-15.5275 -1.10876 2.0386 +-15.8443 -1.06392 1.95616 +-15.2683 -0.960401 1.76582 +-13.8956 -0.815187 1.49883 +-14.9036 -0.811307 1.4917 +-14.6195 -0.734154 1.34984 +-15.9263 -0.732701 1.34717 +-15.3414 -0.641286 1.17909 +-14.9538 -0.562303 1.03387 +-14.9635 -0.499933 0.919193 +-15.2715 -0.446274 0.820534 +-15.0793 -0.377583 0.694235 +-14.7859 -0.308444 0.567115 +-14.3912 -0.240114 0.44148 +-14.695 -0.183853 0.338038 +-14.4978 -0.120909 0.222307 +-11.2996 -0.0471146 0.0866264 +93.8 7.10543e-15 -1.7053e-13 +92.4965 -0.379258 0.712561 +81.9875 -0.67239 1.2633 +89.9692 -1.10691 2.0797 +85.1481 -1.39705 2.62481 +91.1132 -1.86907 3.51166 +86.4813 -2.12946 4.00088 +88.0355 -2.52985 4.75315 +79.1068 -2.59902 4.8831 +92.813 -3.43198 6.44809 +80.2933 -3.30052 6.2011 +93.6668 -4.23754 7.96161 +93.684 -4.62633 8.69208 +95.3829 -5.106 9.59329 +95.3837 -5.50259 10.3384 +95.377 -5.89961 11.0843 +95.3628 -6.297 11.831 +95.44 -6.70163 12.5912 +95.1144 -7.07797 13.2983 +95.9656 -7.54523 14.1762 +95.7233 -7.93026 14.8996 +95.4741 -8.31389 15.6204 +95.4142 -8.71396 16.372 +95.1507 -9.09547 17.0888 +95.0759 -9.49502 17.8395 +95.7746 -9.976 18.7432 +95.5857 -10.3683 19.4803 +95.3895 -10.7598 20.2159 +95.283 -11.1619 20.9712 +94.9753 -11.5404 21.6824 +95.7232 -12.051 22.6417 +95.3994 -12.4304 23.3546 +95.1649 -12.8211 24.0886 +95.7861 -13.3309 25.0464 +96.2999 -13.833 25.9898 +96.0393 -14.2273 26.7307 +95.8665 -14.635 27.4967 +96.3497 -15.1468 28.4583 +96.0647 -15.5413 29.1994 +96.5265 -16.06 30.174 +96.1306 -16.4391 30.8863 +96.9456 -17.0301 31.9966 +96.6256 -17.4269 32.7422 +97.1356 -17.9774 33.7764 +96.798 -18.375 34.5234 +96.5454 -18.7891 35.3016 +96.1928 -19.1843 36.044 +95.8328 -19.578 36.7836 +96.379 -20.1612 37.8795 +96.0009 -20.5556 38.6204 +96.3405 -21.1073 39.657 +95.9448 -21.5015 40.3976 +96.4406 -22.1 41.5221 +96.7424 -22.6623 42.5786 +96.3178 -23.0581 43.3222 +96.6842 -23.6474 44.4294 +96.153 -24.0209 45.1311 +96.4941 -24.6159 46.2491 +96.0332 -25.0106 46.9907 +96.3484 -25.6117 48.1199 +96.5618 -26.1937 49.2134 +96.8471 -26.8032 50.3586 +96.2599 -27.1751 51.0573 +96.5189 -27.7896 52.2119 +96.6775 -28.3835 53.3277 +96.1466 -28.7788 54.0704 +96.7826 -29.5301 55.482 +96.8141 -30.1074 56.5666 +94.4274 -29.9252 56.2243 +94.3624 -30.4709 57.2495 +94.2844 -31.0183 58.278 +94.5188 -31.6765 59.5147 +94.5741 -32.2838 60.6557 +94.614 -32.8939 61.8019 +94.5584 -33.4785 62.9003 +94.4884 -34.0651 64.0025 +94.4825 -34.6827 65.1627 +94.5391 -35.332 66.3827 +94.2678 -35.8661 67.3862 +94.8327 -36.7294 69.0082 +94.6831 -37.3282 70.1332 +94.2143 -37.8065 71.032 +93.433 -38.1606 71.6971 +92.496 -38.4488 72.2387 +89.8462 -38.0092 71.4127 +89.1368 -38.3761 72.1021 +87.1042 -38.1633 71.7023 +87.0449 -38.8101 72.9174 +84.5944 -38.3822 72.1135 +84.2349 -38.8922 73.0718 +81.6001 -38.3391 72.0326 +81.726 -39.0744 73.414 +79.6078 -38.732 72.7707 +78.8854 -39.0569 73.3812 +76.9976 -38.7947 72.8886 +76.2741 -39.1089 73.4789 +74.5411 -38.8964 73.0797 +73.6171 -39.095 73.4528 +70.6576 -38.1897 71.7519 +70.1404 -38.5852 72.4949 +69.5496 -38.9433 73.1677 +68.5056 -39.0457 73.3601 +67.2114 -38.9965 73.2676 +66.1733 -39.0867 73.4371 +65.1986 -39.2084 73.6658 +64.1635 -39.2879 73.8151 +62.7091 -39.0992 73.4606 +61.9805 -39.3548 73.9409 +60.248 -38.9612 73.2014 +60.1608 -39.6275 74.4533 +58.2754 -39.1029 73.4676 +58.1133 -39.7276 74.6413 +56.143 -39.1074 73.4761 +55.4145 -39.3361 73.9058 +54.355 -39.3254 73.8856 +53.6762 -39.5864 74.376 +52.0381 -39.1276 73.514 +51.1526 -39.2193 73.6863 +49.9587 -39.0651 73.3965 +49.2312 -39.2684 73.7786 +47.4 -38.5736 72.4731 +46.6818 -38.7665 72.8355 +44.9903 -38.1345 71.6482 +44.2803 -38.3175 71.992 +43.1444 -38.1243 71.629 +42.9426 -38.7582 72.8199 +41.5855 -38.3467 72.0468 +40.961 -38.5998 72.5224 +39.6726 -38.2173 71.8037 +39.1765 -38.5906 72.505 +37.9511 -38.2387 71.8439 +37.2395 -38.3929 72.1335 +36.1589 -38.1578 71.6919 +35.4488 -38.3046 71.9677 +34.228 -37.8862 71.1817 +33.8675 -38.4158 72.1766 +32.9279 -38.2918 71.9438 +32.1055 -38.2942 71.9483 +31.178 -38.1612 71.6983 +30.6782 -38.5517 72.4319 +29.6531 -38.2786 71.9189 +28.9411 -38.3987 72.1446 +28.2268 -38.516 72.3648 +27.5103 -38.6302 72.5795 +26.5137 -38.3393 72.033 +25.8006 -38.4466 72.2345 +24.9101 -38.2814 71.9241 +24.4537 -38.7875 72.875 +23.2362 -38.0733 71.5332 +22.7954 -38.6199 72.5601 +21.8184 -38.258 71.8802 +21.3574 -38.8009 72.9002 +20.394 -38.4311 72.2054 +19.6794 -38.5133 72.3598 +18.9859 -38.6383 72.5946 +18.1593 -38.4853 72.3072 +17.5062 -38.6961 72.7034 +16.9861 -39.2269 73.7005 +15.9135 -38.4648 72.2688 +15.1984 -38.5286 72.3887 +14.4128 -38.4044 72.1552 +13.8475 -38.8791 73.0471 +12.9841 -38.5167 72.3662 +12.4012 -38.9867 73.2493 +11.5514 -38.6173 72.5552 +10.8337 -38.6632 72.6415 +10.0055 -38.2864 71.9336 +9.49775 -39.1663 73.5867 +8.61315 -38.5028 72.3402 +7.9552 -38.8173 72.931 +7.15549 -38.4272 72.1981 +6.47288 -38.6424 72.6025 +5.69213 -38.2457 71.857 +5.01819 -38.5489 72.4268 +4.27061 -38.2865 71.9338 +3.5986 -38.725 72.7577 +2.86525 -38.5505 72.4297 +2.1596 -38.7486 72.802 +1.43284 -38.5681 72.4628 +0.716449 -38.5725 72.4711 +9.76996e-15 -38.3391 72.0325 +-0.724302 -38.9953 73.2655 +-1.43284 -38.5681 72.4628 +-2.17269 -38.9835 73.2433 +-2.8478 -38.3157 71.9886 +-3.58551 -38.5842 72.4931 +-4.29678 -38.5211 72.3745 +-5.07313 -38.971 73.2198 +-5.72701 -38.48 72.2973 +-6.51995 -38.9234 73.1304 +-7.11191 -38.1932 71.7584 +-7.96478 -38.8641 73.0189 +-8.59224 -38.4094 72.1646 +-9.40719 -38.7928 72.885 +-10.1273 -38.7528 72.8098 +-10.925 -38.9893 73.2541 +-11.5653 -38.6639 72.6427 +-12.4308 -39.0796 73.4239 +-12.9997 -38.5631 72.4535 +-13.7155 -38.5083 72.3505 +-14.4302 -38.4506 72.2421 +-15.2531 -38.6672 72.649 +-15.8562 -38.3265 72.0088 +-16.7668 -38.7204 72.749 +-17.4854 -38.6502 72.617 +-18.3974 -38.9899 73.2553 +-18.8284 -38.3178 71.9926 +-19.7495 -38.6503 72.6173 +-20.5634 -38.7502 72.805 +-21.4075 -38.8919 73.0711 +-21.9996 -38.5757 72.4771 +-22.8489 -38.7104 72.7302 +-23.6772 -38.7959 72.8909 +-24.5389 -38.9226 73.1288 +-25.1147 -38.5959 72.515 +-26.2516 -39.1188 73.4974 +-26.8227 -38.7862 72.8726 +-27.9863 -39.2985 73.8351 +-28.5523 -38.9602 73.1995 +-29.5753 -39.2402 73.7256 +-30.1662 -38.9409 73.1632 +-31.2035 -39.2118 73.6722 +-31.9306 -39.0823 73.429 +-33.0951 -39.4745 74.1658 +-33.5273 -38.9888 73.2533 +-34.9007 -39.5878 74.3786 +-35.791 -39.6162 74.432 +-36.8444 -39.8127 74.8011 +-37.0944 -39.145 73.5467 +-38.5665 -39.761 74.704 +-38.9231 -39.2181 73.684 +-40.425 -39.8204 74.8156 +-41.0315 -39.5264 74.2633 +-42.2996 -39.8612 74.8924 +-42.9021 -39.5607 74.3277 +-44.3279 -40.0084 75.1689 +-44.3651 -39.2029 73.6554 +-46.0935 -39.8866 74.94 +-46.5417 -39.4495 74.1189 +-48.1098 -39.9524 75.0637 +-48.75 -39.6722 74.5373 +-49.891 -39.7947 74.7673 +-50.7828 -39.7094 74.6072 +-52.6156 -40.341 75.7938 +-52.8859 -39.7651 74.7118 +-54.1061 -39.9034 74.9716 +-54.8452 -39.68 74.5519 +-56.7391 -40.2764 75.6725 +-57.3173 -39.9254 75.013 +-58.8496 -40.231 75.587 +-59.4225 -39.8727 74.9139 +-60.9738 -40.163 75.4594 +-61.9526 -40.0636 75.2725 +-62.6943 -39.808 74.7924 +-63.9128 -39.8496 74.8706 +-66.355 -40.6298 76.3363 +-66.6146 -40.06 75.2658 +-69.1614 -40.8517 76.7532 +-69.5399 -40.3474 75.8059 +-71.9404 -41.0034 77.0383 +-73.085 -40.9229 76.887 +-74.0371 -40.7288 76.5224 +-74.9875 -40.5301 76.149 +-77.0627 -40.9249 76.8908 +-78.0206 -40.7121 76.491 +-79.4494 -40.737 76.5379 +-81.4306 -41.0282 77.085 +-82.9467 -41.0677 77.1591 +-83.359 -40.5571 76.1998 +-85.7212 -40.9845 77.0028 +-86.762 -40.7644 76.5892 +-88.7284 -40.9669 76.9698 +-89.2701 -40.5037 76.0994 +-92.4852 -41.2357 77.4748 +-93.7595 -41.0793 77.1808 +-95.9198 -41.2964 77.5888 +-96.8318 -40.9644 76.965 +-99.0119 -41.1574 77.3276 +-99.9235 -40.8115 76.6777 +-102.503 -41.1325 77.281 +-104.488 -41.1939 77.3962 +-106.793 -41.3616 77.7114 +-107.868 -41.0405 77.108 +-110.348 -41.2401 77.4831 +-111.898 -41.0754 77.1735 +-114.719 -41.3587 77.7058 +-115.722 -40.9716 76.9785 +-119.935 -41.6973 78.342 +-120.786 -41.2315 77.4669 +-123.827 -41.4987 77.9689 +-101.903 -33.5245 62.9868 +-97.9062 -31.6152 59.3995 +-98.3239 -31.16 58.5443 +-98.8155 -30.7297 57.7359 +-98.7115 -30.1187 56.5879 +-98.5925 -29.5109 55.4458 +-99.1368 -29.1055 54.6843 +-98.9915 -28.5016 53.5495 +-98.9171 -27.9252 52.4667 +-98.6565 -27.3039 51.2994 +-99.1599 -26.8984 50.5375 +-98.8724 -26.2826 49.3805 +-98.5696 -25.6712 48.2317 +-99.2185 -25.3109 47.5548 +-98.8018 -24.6826 46.3743 +-99.2565 -24.2766 45.6115 +-98.8126 -23.6553 44.4443 +-98.7113 -23.1235 43.4451 +-99.137 -22.7179 42.683 +-98.7428 -22.1285 41.5757 +-99.1501 -21.7228 40.8135 +-98.7308 -21.1401 39.7187 +-99.1197 -20.7345 38.9566 +-98.6757 -20.1587 37.8748 +-99.0463 -19.7534 37.1132 +-98.5779 -19.1847 36.0447 +-98.9305 -18.7798 35.284 +-98.4382 -18.2185 34.2294 +-98.8662 -17.831 33.5015 +-98.3506 -17.2769 32.4603 +-98.6677 -16.873 31.7014 +-98.6946 -16.4208 30.8518 +-98.1448 -15.8778 29.8317 +-98.9102 -15.5494 29.2146 +-98.6246 -15.0561 28.2878 +-98.0421 -14.524 27.2881 +-97.5431 -14.0116 26.3253 +-96.3614 -13.4109 25.1968 +-94.2998 -12.7045 23.8696 +-73.1396 -9.52998 17.9052 +-47.5236 -5.98291 11.2409 +-41.4367 -5.03496 9.45982 +-33.0871 -3.87598 7.28229 +-32.0882 -3.61952 6.80045 +-20.7541 -2.25123 4.22967 +-16.4994 -1.7186 3.22895 +-16.922 -1.68996 3.17514 +-16.3647 -1.56431 2.93907 +-18.0619 -1.64956 3.09924 +-24.778 -2.15767 4.05389 +-16.4463 -1.3625 2.55991 +-16.6682 -1.31053 2.46226 +-15.5067 -1.15394 2.16805 +-15.9232 -1.1181 2.10071 +-15.5472 -1.02661 1.92883 +-15.764 -0.975095 1.83203 +-14.9874 -0.864616 1.62446 +-15.7978 -0.845682 1.58889 +-14.4206 -0.71212 1.33795 +-16.424 -0.743031 1.39603 +-15.2418 -0.626524 1.17713 +-15.5519 -0.575067 1.08045 +-15.2627 -0.501448 0.942134 +-14.5728 -0.418774 0.786804 +-14.58 -0.359008 0.674514 +-14.4862 -0.297166 0.558323 +-14.3912 -0.23612 0.443629 +-14.3951 -0.177106 0.332751 +-14.2978 -0.117258 0.220307 +-14.5994 -0.0598611 0.112469 +94.2 5.32907e-15 1.13687e-13 +92.4965 -0.372813 0.715954 +92.086 -0.742375 1.42566 +89.9692 -1.0881 2.0896 +92.2438 -1.48774 2.85708 +91.1132 -1.83731 3.52838 +92.8725 -2.24797 4.31702 +88.0355 -2.48686 4.77579 +93.771 -3.02845 5.81586 +92.813 -3.37365 6.47879 +94.4393 -3.81603 7.32834 +93.6668 -4.16553 7.99952 +95.3746 -4.62979 8.8911 +95.3829 -5.01923 9.63898 +95.4829 -5.41472 10.3985 +95.377 -5.79935 11.1371 +95.5609 -6.20283 11.912 +95.44 -6.58774 12.6512 +95.1144 -6.95769 13.3616 +95.9656 -7.41701 14.2437 +95.7233 -7.7955 14.9705 +95.4741 -8.17261 15.6947 +95.316 -8.5571 16.4331 +95.1507 -8.9409 17.1702 +95.9563 -9.42008 18.0904 +95.7746 -9.80647 18.8324 +95.5857 -10.1921 19.573 +95.3895 -10.577 20.3121 +95.283 -10.9722 21.0711 +94.9753 -11.3443 21.7856 +95.6267 -11.8342 22.7265 +95.3994 -12.2192 23.4658 +95.1649 -12.6032 24.2033 +95.7861 -13.1043 25.1656 +95.4392 -13.4764 25.8802 +96.0393 -13.9855 26.858 +95.7714 -14.3721 27.6002 +96.3497 -14.8894 28.5938 +96.0647 -15.2772 29.3384 +96.5265 -15.7871 30.3177 +96.2245 -16.1756 31.0637 +96.9456 -16.7407 32.149 +96.6256 -17.1308 32.8981 +97.1356 -17.6719 33.9373 +96.798 -18.0627 34.6878 +96.5454 -18.4698 35.4697 +96.1928 -18.8583 36.2156 +95.8328 -19.2453 36.9588 +96.379 -19.8186 38.0598 +96.0009 -20.2063 38.8043 +96.4311 -20.7681 39.8833 +95.9448 -21.1361 40.59 +96.4406 -21.7245 41.7199 +96.7424 -22.2772 42.7814 +96.3178 -22.6663 43.5285 +96.6842 -23.2455 44.6409 +96.153 -23.6127 45.346 +96.4941 -24.1976 46.4693 +96.0332 -24.5856 47.2144 +96.3484 -25.1764 48.349 +96.5618 -25.7485 49.4477 +96.8471 -26.3477 50.5984 +96.3456 -26.737 51.3461 +96.5189 -27.3174 52.4605 +96.6775 -27.9011 53.5816 +96.1466 -28.2898 54.3279 +96.2794 -28.8774 55.4565 +96.8141 -29.5957 56.836 +96.5829 -30.0881 57.7815 +94.3624 -29.953 57.5221 +94.2025 -30.4647 58.5047 +94.5188 -31.1382 59.7981 +94.655 -31.7623 60.9967 +94.614 -32.3349 62.0962 +94.5584 -32.9096 63.1998 +94.4884 -33.4862 64.3073 +94.4825 -34.0933 65.473 +94.5391 -34.7316 66.6988 +94.4232 -35.3147 67.8187 +94.8327 -36.1052 69.3368 +94.6065 -36.6642 70.4103 +94.2143 -37.1641 71.3702 +94.4142 -37.906 72.795 +92.496 -37.7954 72.5827 +92.2243 -38.3522 73.6519 +89.1368 -37.724 72.4455 +89.9565 -38.7432 74.4029 +87.0449 -38.1505 73.2647 +86.9682 -38.7887 74.4902 +84.2349 -38.2313 73.4198 +84.1457 -38.8633 74.6334 +81.726 -38.4103 73.7636 +81.6224 -39.0373 74.9675 +78.8854 -38.3932 73.7307 +79.3164 -39.2839 75.4411 +76.2741 -38.4443 73.8288 +76.4816 -39.2308 75.3392 +73.6171 -38.4307 73.8026 +73.4786 -39.0396 74.972 +70.1404 -37.9295 72.8401 +70.6424 -38.883 74.6712 +68.5056 -38.3822 73.7095 +69.414 -39.59 76.029 +66.1733 -38.4224 73.7868 +66.7993 -39.4884 75.8339 +64.1635 -38.6202 74.1666 +64.8155 -39.7257 76.2896 +61.9805 -38.686 74.293 +62.4228 -39.6816 76.205 +60.1608 -38.9541 74.8079 +59.7667 -39.4221 75.7065 +58.1133 -39.0525 74.9967 +58.2679 -39.8978 76.6202 +55.4145 -38.6676 74.2577 +55.6621 -39.5867 76.0227 +53.6762 -38.9137 74.7302 +53.6808 -39.6769 76.1959 +51.1526 -38.5528 74.0372 +50.9888 -39.193 75.2666 +49.2312 -38.6011 74.1299 +49.15 -39.318 75.5067 +46.6818 -38.1077 73.1823 +46.8326 -39.0215 74.9373 +44.2803 -37.6664 72.3349 +44.6937 -38.8221 74.5544 +42.9426 -38.0995 73.1666 +42.6297 -38.6415 74.2075 +40.961 -37.9439 72.8677 +40.637 -38.4811 73.8994 +39.1765 -37.9348 72.8503 +39.219 -38.8447 74.5977 +37.2395 -37.7404 72.477 +37.0944 -38.4798 73.8969 +35.4488 -37.6536 72.3104 +35.4393 -38.5603 74.0516 +33.8675 -37.763 72.5203 +33.6397 -38.4547 73.8488 +32.1055 -37.6435 72.2909 +32.1814 -38.72 74.3583 +30.6782 -37.8965 72.7768 +30.4056 -38.5829 74.095 +28.9411 -37.7462 72.4881 +28.8128 -38.6475 74.2189 +27.5103 -37.9737 72.9251 +27.0699 -38.4785 73.8945 +25.8006 -37.7932 72.5785 +25.4656 -38.47 73.8781 +24.4537 -38.1283 73.222 +23.9804 -38.625 74.1758 +22.7954 -37.9636 72.9056 +22.5173 -38.8124 74.5357 +21.3574 -38.1415 73.2474 +20.8295 -38.5847 74.0984 +19.6794 -37.8588 72.7044 +19.3233 -38.6567 74.2367 +18.1593 -37.8313 72.6515 +17.8596 -38.8066 74.5245 +16.9861 -38.5603 74.0515 +16.4477 -39.0806 75.0508 +15.1984 -37.8739 72.7334 +14.9164 -39.0708 75.0319 +13.8475 -38.2184 73.3949 +13.3439 -38.9114 74.7257 +12.4012 -38.3242 73.5981 +11.8715 -39.013 74.921 +10.8337 -38.0062 72.9874 +10.3589 -38.9652 74.8292 +9.49775 -38.5007 73.9371 +8.79084 -38.6294 74.1842 +7.9552 -38.1577 73.2783 +7.39952 -39.0624 75.0159 +6.47288 -37.9858 72.9482 +5.88745 -38.8858 74.6766 +5.01819 -37.8938 72.7717 +4.40145 -38.7889 74.4906 +3.5986 -38.0669 73.1041 +2.93505 -38.8185 74.5475 +2.1596 -38.0901 73.1486 +1.47298 -38.9748 74.8475 +0.716449 -37.917 72.8162 +7.10543e-15 -38.9807 74.859 +-0.724302 -38.3327 73.6144 +-1.46775 -38.8363 74.5815 +-2.17269 -38.321 73.592 +-2.94552 -38.957 74.8134 +-3.58551 -37.9285 72.8383 +-4.40145 -38.7889 74.4906 +-5.07313 -38.3087 73.5684 +-5.95023 -39.3004 75.4729 +-6.51995 -38.262 73.4787 +-7.40824 -39.1084 75.1042 +-7.96478 -38.2036 73.3666 +-8.87447 -38.9968 74.8899 +-9.40719 -38.1336 73.2321 +-10.3467 -38.9194 74.7412 +-10.925 -38.3267 73.6029 +-11.8575 -38.9672 74.8331 +-12.4308 -38.4155 73.7735 +-13.2969 -38.7745 74.4629 +-13.7155 -37.8539 72.695 +-14.7948 -38.7524 74.4204 +-15.2531 -38.0101 72.9949 +-16.3142 -38.7632 74.4413 +-16.7668 -38.0624 73.0954 +-17.9636 -39.0325 74.9583 +-18.3974 -38.3273 73.6041 +-19.5033 -39.0167 74.928 +-19.7495 -37.9935 72.9631 +-20.9746 -38.8535 74.6147 +-21.4075 -38.231 73.4191 +-22.7502 -39.2139 75.3068 +-22.8489 -38.0526 73.0765 +-24.2285 -39.0246 74.9431 +-24.5389 -38.2612 73.4771 +-25.9626 -39.2208 75.3201 +-26.2516 -38.454 73.8474 +-27.7497 -39.4448 75.7503 +-27.9863 -38.6307 74.1867 +-29.236 -39.2152 75.3092 +-29.5753 -38.5734 74.0767 +-31.0896 -39.4509 75.762 +-31.2035 -38.5454 74.023 +-33.0057 -39.7118 76.2628 +-33.0951 -38.8037 74.519 +-34.726 -39.6966 76.2336 +-34.9007 -38.9151 74.7328 +-36.6115 -39.8358 76.501 +-36.8444 -39.1361 75.1573 +-38.3146 -39.7456 76.3277 +-38.5665 -39.0853 75.0598 +-40.191 -39.8074 76.4465 +-40.425 -39.1437 75.1719 +-42.2151 -39.9755 76.7694 +-42.2996 -39.1839 75.249 +-44.2187 -40.0818 76.9735 +-44.3279 -39.3285 75.5268 +-46.2899 -40.2086 77.217 +-46.0935 -39.2087 75.2968 +-48.0931 -40.0718 76.9542 +-48.1098 -39.2735 75.4211 +-50.2 -40.158 77.1198 +-49.891 -39.1184 75.1234 +-52.6369 -40.4598 77.6994 +-52.6156 -39.6555 76.1547 +-54.1577 -40.0294 76.8728 +-54.1061 -39.2253 75.3286 +-56.8603 -40.4389 77.6592 +-56.7391 -39.592 76.0328 +-58.7153 -40.2041 77.2084 +-58.8496 -39.5473 75.947 +-61.2006 -40.3679 77.5229 +-60.9738 -39.4805 75.8187 +-63.3045 -40.2421 77.2813 +-62.6943 -39.1315 75.1485 +-66.3802 -40.6848 78.1314 +-66.355 -39.9393 76.6998 +-68.5231 -40.5074 77.7909 +-69.1614 -40.1574 77.1187 +-71.0503 -40.5232 77.8212 +-71.9404 -40.3066 77.4051 +-74.4348 -40.9704 78.6799 +-74.0371 -40.0367 76.8868 +-77.2838 -41.0613 78.8545 +-77.0627 -40.2294 77.2569 +-80.028 -41.0499 78.8326 +-79.4494 -40.0448 76.9023 +-83.4084 -41.3106 79.3333 +-82.9467 -40.3698 77.5266 +-85.9987 -41.1303 78.9871 +-85.7212 -40.288 77.3695 +-89.0247 -41.1167 78.9609 +-88.7284 -40.2707 77.3363 +-92.1474 -41.0987 78.9263 +-92.4852 -40.535 77.8437 +-95.7342 -41.2316 79.1816 +-95.9198 -40.5946 77.9582 +-98.8383 -41.1027 78.934 +-99.0119 -40.4579 77.6958 +-102.49 -41.1481 79.0213 +-102.503 -40.4335 77.649 +-105.178 -40.761 78.2779 +-106.793 -40.6587 78.0814 +-108.8 -40.6919 78.145 +-110.348 -40.5393 77.8521 +-114.813 -41.4294 79.5615 +-114.719 -40.6558 78.0758 +-120.514 -41.943 80.5478 +-119.935 -40.9887 78.7151 +-124.912 -41.9154 80.4947 +-123.827 -40.7935 78.3402 +-97.9706 -31.6833 60.8448 +-97.9062 -31.0779 59.6824 +-98.9042 -30.8113 59.1702 +-98.8155 -30.2075 58.0108 +-98.7115 -29.6069 56.8573 +-98.5925 -29.0094 55.7099 +-98.7976 -28.513 54.7567 +-98.9915 -28.0172 53.8045 +-98.9171 -27.4507 52.7165 +-98.6565 -26.8399 51.5437 +-99.1599 -26.4413 50.7781 +-98.8724 -25.836 49.6156 +-98.5696 -25.2349 48.4614 +-99.2185 -24.8808 47.7813 +-98.7135 -24.2414 46.5535 +-99.2565 -23.864 45.8287 +-98.9908 -23.2953 44.7365 +-98.7113 -22.7306 43.652 +-99.137 -22.3318 42.8863 +-98.7428 -21.7525 41.7737 +-99.1501 -21.3537 41.0078 +-98.7308 -20.7809 39.9078 +-98.3888 -20.2319 38.8535 +-98.6757 -19.8162 38.0551 +-99.0463 -19.4177 37.29 +-98.5779 -18.8587 36.2164 +-99.0232 -18.478 35.4853 +-98.4382 -17.9089 34.3924 +-98.8662 -17.528 33.661 +-98.3506 -16.9833 32.6149 +-99.3255 -16.6968 32.0647 +-98.6946 -16.1417 30.9987 +-98.9958 -15.7433 30.2336 +-98.9102 -15.2851 29.3537 +-98.7197 -14.8145 28.4499 +-98.0421 -14.2772 27.4181 +-98.7863 -13.949 26.7878 +-96.3614 -13.183 25.3168 +-96.7029 -12.8069 24.5944 +-73.1396 -9.36803 17.9905 +-63.7511 -7.88949 15.151 +-41.4367 -4.9494 9.50487 +-42.3049 -4.87158 9.35542 +-32.0882 -3.55801 6.83283 +-34.0055 -3.62594 6.96329 +-16.4994 -1.68939 3.24433 +-17.7045 -1.73806 3.33779 +-16.3647 -1.53773 2.95306 +-28.958 -2.59973 4.99255 +-24.778 -2.121 4.0732 +-31.1199 -2.53434 4.86697 +-16.6682 -1.28826 2.47398 +-16.4944 -1.20658 2.31713 +-15.9232 -1.09909 2.11071 +-16.0423 -1.0413 1.99973 +-15.764 -0.958524 1.84076 +-14.9874 -0.849923 1.6322 +-15.7978 -0.83131 1.59646 +-15.0173 -0.728986 1.39995 +-16.424 -0.730404 1.40267 +-15.0425 -0.607827 1.16728 +-15.5519 -0.565294 1.0856 +-14.4647 -0.467154 0.897128 +-14.5728 -0.411657 0.79055 +-14.7797 -0.357741 0.68701 +-14.4862 -0.292116 0.560982 +-13.8915 -0.224048 0.430264 +-14.3951 -0.174096 0.334336 +-13.8979 -0.112041 0.215164 +-14.5994 -0.0588438 0.113004 +94.2 5.32907e-15 1.13687e-13 +95.0964 -0.376635 0.739507 +92.086 -0.729481 1.4323 +94.2677 -1.12029 2.19964 +92.2438 -1.4619 2.87038 +95.8087 -1.89844 3.7275 +92.8725 -2.20892 4.33713 +95.7211 -2.657 5.21691 +93.771 -2.97585 5.84295 +95.5047 -3.4112 6.69774 +94.4393 -3.74975 7.36247 +95.558 -4.17582 8.19905 +95.3746 -4.54938 8.93251 +95.681 -4.94748 9.71417 +95.4829 -5.32067 10.4469 +95.8727 -5.72826 11.2472 +95.5609 -6.09509 11.9675 +95.6378 -6.48675 12.7365 +95.1144 -6.83684 13.4239 +96.1628 -7.30316 14.3394 +95.7233 -7.6601 15.0403 +95.6707 -8.04717 15.8003 +95.316 -8.40847 16.5097 +95.3467 -8.80372 17.2857 +95.9563 -9.25646 18.1747 +95.8723 -9.64599 18.9395 +95.5857 -10.0151 19.6642 +95.4867 -10.4038 20.4275 +95.283 -10.7816 21.1693 +96.1371 -11.2836 22.1548 +95.6267 -11.6287 22.8324 +95.4958 -12.019 23.5989 +95.1649 -12.3843 24.316 +95.7861 -12.8767 25.2829 +95.4392 -13.2423 26.0007 +96.23 -13.7699 27.0366 +95.7714 -14.1224 27.7288 +96.4445 -14.6452 28.7552 +96.0647 -15.0118 29.4751 +96.8093 -15.5584 30.5482 +96.2245 -15.8946 31.2084 +97.0392 -16.4658 32.3299 +96.6256 -16.8332 33.0514 +96.3913 -17.2319 33.8341 +96.798 -17.749 34.8494 +96.5454 -18.149 35.6349 +96.1928 -18.5307 36.3843 +96.8415 -19.11 37.5217 +96.379 -19.4744 38.2371 +96.0919 -19.8742 39.0221 +96.4311 -20.4074 40.0691 +96.2156 -20.8276 40.8942 +96.4406 -21.3471 41.9142 +96.9214 -21.9308 43.0601 +96.3178 -22.2726 43.7313 +96.7729 -22.8628 44.89 +96.153 -23.2025 45.5572 +96.6699 -23.8207 46.7709 +96.0332 -24.1586 47.4344 +97.1317 -24.9403 48.9692 +96.5618 -25.3013 49.678 +96.1578 -25.7058 50.4723 +96.3456 -26.2726 51.5852 +96.6041 -26.8666 52.7515 +96.6775 -27.4165 53.8312 +96.231 -27.8228 54.6288 +96.2794 -28.3759 55.7148 +96.564 -29.0065 56.9531 +96.5829 -29.5655 58.0507 +96.1755 -29.9983 58.9004 +94.2025 -29.9355 58.7772 +96.3099 -31.1772 61.2151 +94.655 -31.2106 61.2808 +96.3824 -32.3672 63.5516 +94.5584 -32.338 63.4942 +94.6471 -32.9599 64.7153 +94.4825 -33.5011 65.778 +94.8521 -34.2413 67.2314 +94.4232 -34.7013 68.1346 +94.7555 -35.4492 69.6031 +94.6065 -36.0274 70.7382 +94.7466 -36.7249 72.1077 +94.4142 -37.2476 73.1341 +94.5182 -37.9509 74.515 +92.2243 -37.686 73.995 +94.8139 -39.4296 77.4183 +89.9565 -38.0703 74.7494 +94.7339 -40.7994 80.1078 +86.9682 -38.115 74.8371 +94.2204 -42.0206 82.5057 +84.1457 -38.1883 74.981 +91.1883 -42.1131 82.6873 +81.6224 -38.3592 75.3167 +88.3159 -42.2364 82.9293 +79.3164 -38.6016 75.7925 +85.4622 -42.3272 83.1076 +76.4816 -38.5494 75.6902 +82.6287 -42.3858 83.2228 +73.4786 -38.3615 75.3213 +79.7522 -42.3782 83.2077 +70.6424 -38.2076 75.019 +77.2199 -42.5131 83.4726 +69.414 -38.9024 76.3832 +74.8885 -42.7276 83.8938 +66.7993 -38.8025 76.1871 +72.1382 -42.6661 83.7731 +64.8155 -39.0357 76.645 +69.9512 -42.9027 84.2375 +62.4228 -38.9924 76.5599 +68.4649 -43.561 85.5302 +59.7667 -38.7374 76.0592 +66.666 -44.0219 86.4351 +58.2679 -39.2049 76.9771 +63.8039 -43.7484 85.8982 +55.6621 -38.8991 76.3768 +61.682 -43.9409 86.2761 +53.6808 -38.9877 76.5508 +59.1991 -43.8423 86.0825 +50.9888 -38.5123 75.6172 +57.1488 -44.0308 86.4526 +49.15 -38.6351 75.8584 +55.0037 -44.1212 86.6302 +46.8326 -38.3437 75.2863 +52.2489 -43.6728 85.7496 +44.6937 -38.1478 74.9016 +49.4533 -43.1138 84.6522 +42.6297 -37.9703 74.5531 +46.7615 -42.5648 83.5741 +40.637 -37.8127 74.2437 +44.644 -42.4781 83.4039 +39.219 -38.17 74.9451 +42.6719 -42.4948 83.4368 +37.0944 -37.8114 74.2411 +40.5528 -42.3269 83.1071 +35.4393 -37.8906 74.3966 +38.6893 -42.3901 83.2312 +33.6397 -37.7868 74.1928 +36.7234 -42.31 83.074 +32.1814 -38.0475 74.7046 +35.0908 -42.5945 83.6325 +30.4056 -37.9128 74.4401 +33.0469 -42.3526 83.1575 +28.8128 -37.9762 74.5646 +31.318 -42.4787 83.4052 +27.0699 -37.8102 74.2387 +29.409 -42.3308 83.1147 +25.4656 -37.8018 74.2222 +27.7767 -42.5573 83.5594 +23.9804 -37.9541 74.5213 +25.9221 -42.421 83.2917 +22.5173 -38.1382 74.8828 +24.2117 -42.488 83.4234 +20.8295 -37.9145 74.4435 +22.3641 -42.2761 83.0073 +19.3233 -37.9853 74.5825 +20.7998 -42.5797 83.6034 +17.8596 -38.1325 74.8716 +19.0994 -42.6046 83.6523 +16.4477 -38.4018 75.4004 +17.3306 -42.437 83.3232 +14.9164 -38.3922 75.3814 +15.6135 -42.344 83.1406 +13.3439 -38.2355 75.0738 +14.0715 -42.7305 83.8996 +11.8715 -38.3354 75.2699 +12.3086 -42.4305 83.3105 +10.3589 -38.2884 75.1777 +10.6751 -42.5215 83.4892 +8.79084 -37.9584 74.5298 +9.03825 -42.5996 83.6426 +7.39952 -38.384 75.3653 +7.37515 -42.529 83.5038 +5.88745 -38.2104 75.0244 +5.73856 -42.5809 83.6059 +4.40145 -38.1152 74.8376 +4.10022 -42.6199 83.6823 +2.93505 -38.1443 74.8947 +2.46849 -42.782 84.0006 +1.47298 -38.2978 75.1961 +0.822912 -42.795 84.0262 +1.15463e-14 -38.3037 75.2076 +-0.822912 -42.795 84.0262 +-1.46775 -38.1617 74.9289 +-2.46063 -42.6459 83.7334 +-2.94552 -38.2803 75.1618 +-4.10022 -42.6199 83.6823 +-4.40145 -38.1152 74.8376 +-5.75688 -42.7168 83.8726 +-5.95023 -38.6178 75.8244 +-7.46931 -43.0719 84.5698 +-7.40824 -38.4292 75.454 +-9.12452 -43.0062 84.4408 +-8.87447 -38.3195 75.2387 +-10.8109 -43.0626 84.5517 +-10.3467 -38.2434 75.0893 +-12.5436 -43.2404 84.9008 +-11.8575 -38.2904 75.1816 +-14.1158 -42.8652 84.1639 +-13.2969 -38.101 74.8098 +-15.762 -42.7469 83.9316 +-14.7948 -38.0793 74.7671 +-17.3488 -42.4816 83.4109 +-16.3142 -38.09 74.788 +-19.1593 -42.738 83.9143 +-17.9636 -38.3545 75.3074 +-20.8864 -42.757 83.9515 +-19.5033 -38.339 75.2771 +-22.7376 -42.9822 84.3937 +-20.9746 -38.1787 74.9622 +-24.5623 -43.1031 84.6311 +-22.7502 -38.5328 75.6575 +-26.4566 -43.2956 85.009 +-24.2285 -38.3467 75.2922 +-28.2879 -43.3405 85.0973 +-25.9626 -38.5396 75.6709 +-30.2209 -43.4994 85.4093 +-27.7497 -38.7597 76.1031 +-31.8891 -43.2534 84.9263 +-29.236 -38.534 75.66 +-33.9482 -43.5076 85.4254 +-31.0896 -38.7657 76.1149 +-36.1764 -43.9123 86.2199 +-33.0057 -39.022 76.618 +-37.8962 -43.6613 85.7271 +-34.726 -39.0071 76.5887 +-39.7608 -43.5641 85.5363 +-36.6115 -39.1439 76.8573 +-41.7889 -43.6171 85.6404 +-38.3146 -39.0552 76.6833 +-43.9575 -43.7751 85.9505 +-40.191 -39.116 76.8026 +-46.1077 -43.8708 86.1385 +-42.2151 -39.2812 77.1269 +-48.0555 -43.7426 85.8868 +-44.2187 -39.3856 77.332 +-50.1459 -43.7177 85.8378 +-46.2899 -39.5102 77.5767 +-52.6306 -43.9918 86.3761 +-48.0931 -39.3758 77.3126 +-54.7575 -43.9238 86.2425 +-50.2 -39.4605 77.479 +-57.6056 -44.3827 87.1436 +-52.6369 -39.7571 78.0613 +-59.7738 -44.268 86.9183 +-54.1577 -39.3341 77.2308 +-62.1118 -44.2471 86.8774 +-56.8603 -39.7365 78.021 +-65.5701 -44.9594 88.2759 +-58.7153 -39.5058 77.568 +-68.4785 -45.2187 88.785 +-61.2006 -39.6668 77.884 +-71.4265 -45.4452 89.2298 +-63.3045 -39.5431 77.6413 +-74.0554 -45.4198 89.1799 +-66.3802 -39.9781 78.4953 +-77.1301 -45.6186 89.5702 +-68.5231 -39.8039 78.1532 +-79.9931 -45.6399 89.612 +-71.0503 -39.8194 78.1837 +-82.2449 -45.2796 88.9046 +-74.4348 -40.2587 79.0463 +-85.5323 -45.4493 89.2378 +-77.2838 -40.3481 79.2218 +-88.4598 -45.377 89.0957 +-80.028 -40.3369 79.1998 +-91.002 -45.0709 88.4949 +-83.4084 -40.5931 79.7028 +-95.0618 -45.4625 89.2636 +-85.9987 -40.416 79.355 +-98.688 -45.5768 89.4882 +-89.0247 -40.4025 79.3286 +-101.923 -45.4561 89.2511 +-92.1474 -40.3848 79.2939 +-106.485 -45.86 90.0442 +-95.7342 -40.5155 79.5504 +-109.781 -45.6535 89.6388 +-98.8383 -40.3888 79.3016 +-114.216 -45.86 90.0442 +-102.49 -40.4334 79.3893 +-118.015 -45.7438 89.8161 +-105.178 -40.0531 78.6425 +-109.725 -41.0495 80.599 +-108.8 -39.9851 78.509 +-98.6869 -35.6256 69.9494 +-114.813 -40.7099 79.9321 +-99.3278 -34.5899 67.9158 +-120.514 -41.2145 80.923 +-98.794 -33.177 65.1417 +-124.912 -41.1873 80.8696 +-99.3221 -32.1523 63.1297 +-97.9706 -31.1329 61.1282 +-99.1424 -30.9237 60.7174 +-98.9042 -30.2761 59.4458 +-98.9822 -29.733 58.3794 +-98.7115 -29.0926 57.1222 +-99.4359 -28.7494 56.4481 +-98.7976 -28.0178 55.0117 +-99.2473 -27.6017 54.1948 +-98.9171 -26.9739 52.962 +-99.5182 -26.6041 52.2361 +-99.1599 -25.9821 51.0147 +-98.9594 -25.4096 49.8906 +-98.5696 -24.7966 48.6871 +-99.3063 -24.4703 48.0464 +-98.7135 -23.8204 46.7703 +-99.4339 -23.4914 46.1244 +-98.9908 -22.8907 44.9449 +-99.5167 -22.518 44.2132 +-99.137 -21.944 43.086 +-98.8331 -21.3942 42.0067 +-99.1501 -20.9828 41.1988 +-98.8218 -20.4388 40.1307 +-98.3888 -19.8805 39.0345 +-98.7674 -19.4901 38.2679 +-99.0463 -19.0804 37.4637 +-99.5942 -18.7222 36.7602 +-99.0232 -18.157 35.6506 +-99.3686 -17.7641 34.8791 +-98.8662 -17.2236 33.8178 +-98.4442 -16.7042 32.798 +-99.3255 -16.4068 32.2141 +-99.0716 -15.9219 31.2621 +-98.9958 -15.4699 30.3744 +-98.8153 -15.0052 29.4621 +-98.7197 -14.5572 28.5825 +-98.6143 -14.1111 27.7065 +-98.7863 -13.7067 26.9126 +-98.5667 -13.2505 26.0169 +-96.7029 -12.5844 24.709 +-99.2539 -12.4921 24.5277 +-63.7511 -7.75245 15.2216 +-98.6542 -11.579 22.7349 +-42.3049 -4.78696 9.39899 +-97.5287 -10.6264 20.8644 +-34.0055 -3.56296 6.99573 +-68.4384 -6.88577 13.5199 +-17.7045 -1.70787 3.35333 +-53.3079 -4.92211 9.66436 +-28.958 -2.55458 5.01581 +-56.3405 -4.73899 9.30481 +-31.1199 -2.49032 4.88964 +-16.7669 -1.27337 2.50022 +-16.4944 -1.18563 2.32793 +-16.4177 -1.11355 2.1864 +-16.0423 -1.02322 2.00904 +-17.0529 -1.01888 2.00053 +-14.9874 -0.835161 1.6398 +-14.5061 -0.750085 1.47276 +-15.0173 -0.716324 1.40647 +-15.6277 -0.682922 1.34089 +-15.0425 -0.59727 1.17271 +-15.5519 -0.555476 1.09065 +-14.4647 -0.45904 0.901307 +-15.6707 -0.434984 0.854072 +-14.7797 -0.351528 0.69021 +-11.0894 -0.219736 0.431441 +-13.8915 -0.220157 0.432268 +-3275.18 -38.9225 76.4226 +-13.8979 -0.110095 0.216167 +-3276.58 -12.977 25.4799 +95 -1.77636e-15 -1.7053e-13 +95.0964 -0.369947 0.742875 +94.2856 -0.73364 1.47319 +95.0674 -1.10973 2.2284 +95.0421 -1.4795 2.97093 +95.8087 -1.86473 3.74448 +95.7686 -2.23736 4.49275 +95.6213 -2.6071 5.23521 +95.5666 -2.97897 5.98196 +95.405 -3.34713 6.72123 +95.4355 -3.72202 7.47403 +95.558 -4.10167 8.23639 +95.673 -4.48255 9.00122 +95.8797 -4.8697 9.77865 +95.88 -5.24794 10.5382 +95.8727 -5.62654 11.2984 +95.7589 -5.99925 12.0469 +95.7367 -6.37816 12.8077 +96.3984 -6.80611 13.6671 +96.1628 -7.17347 14.4048 +95.8218 -7.53183 15.1244 +95.6707 -7.90428 15.8723 +95.5123 -8.27614 16.619 +95.3467 -8.64739 17.3645 +95.1738 -9.01796 18.1086 +94.9936 -9.38786 18.8514 +95.6831 -9.84728 19.7739 +95.4867 -10.2191 20.5206 +95.4771 -10.6117 21.309 +95.9434 -11.0609 22.211 +95.7232 -11.4337 22.9596 +95.4958 -11.8056 23.7064 +96.1262 -12.2872 24.6735 +95.7861 -12.648 25.398 +95.5348 -13.0202 26.1453 +96.1347 -13.512 27.1328 +95.8665 -13.8854 27.8828 +96.3497 -14.371 28.8578 +96.0647 -14.7452 29.6093 +95.8666 -15.1333 30.3885 +96.3185 -15.6276 31.3812 +97.0392 -16.1734 32.4772 +96.7189 -16.5503 33.2339 +97.2286 -17.073 34.2835 +96.0562 -17.3002 34.7398 +96.5454 -17.8268 35.7972 +96.2848 -18.2191 36.585 +96.7498 -18.7529 37.6569 +96.379 -19.1286 38.4113 +96.1829 -19.5397 39.237 +96.6124 -20.0827 40.3272 +96.9377 -20.6113 41.3887 +96.5305 -20.9876 42.1444 +96.0265 -21.3424 42.8568 +96.4069 -21.8973 43.9711 +96.7729 -22.4568 45.0945 +96.2413 -22.8114 45.8067 +96.582 -23.3764 46.9411 +96.2082 -23.7728 47.7373 +97.1317 -24.4974 49.1922 +96.6484 -24.8743 49.9491 +96.9333 -25.453 51.1111 +96.3456 -25.8061 51.8202 +96.6894 -26.4128 53.0385 +96.0838 -26.7643 53.7444 +96.3153 -27.3526 54.9257 +96.4471 -27.9205 56.066 +96.564 -28.4915 57.2125 +96.7487 -29.0904 58.4152 +96.2579 -29.4908 59.2194 +96.2504 -30.0432 60.3284 +96.3913 -30.6494 61.5458 +96.4348 -31.2329 62.7174 +96.5432 -31.8454 63.9475 +96.555 -32.4344 65.1302 +95.7577 -32.7545 65.773 +94.9553 -33.0709 66.4083 +94.8521 -33.6333 67.5376 +94.8118 -34.2254 68.7266 +94.7555 -34.8197 69.9201 +94.7597 -35.4449 71.1754 +94.6705 -36.0438 72.3781 +94.5651 -36.6447 73.5846 +94.3684 -37.2179 74.7357 +94.3794 -37.8819 76.069 +94.6664 -38.6692 77.65 +94.7834 -39.4008 79.1191 +94.5163 -39.9828 80.2878 +94.8809 -40.8444 82.018 +94.2917 -41.3057 82.9443 +93.1967 -41.5449 83.4245 +92.6602 -42.033 84.4047 +90.0972 -41.5902 83.5156 +89.2796 -41.9391 84.2162 +87.2276 -41.6979 83.7319 +86.0702 -41.8713 84.0801 +84.645 -41.9064 84.1506 +83.2251 -41.9336 84.2052 +81.8106 -41.953 84.2441 +81.246 -42.4052 85.1522 +79.4485 -42.2075 84.7551 +78.8101 -42.6181 85.5797 +76.6512 -42.1956 84.7312 +76.009 -42.5968 85.5369 +74.0641 -42.2585 84.8576 +73.4166 -42.6511 85.646 +71.616 -42.3655 85.0724 +70.9624 -42.75 85.8445 +70.1228 -43.0244 86.3955 +69.4521 -43.4044 87.1586 +67.6247 -43.0522 86.4513 +67.2891 -43.6442 87.6402 +65.6492 -43.3869 87.1235 +65.0182 -43.7893 87.9316 +63.1781 -43.3677 87.0849 +62.273 -43.5742 87.4996 +60.6228 -43.2477 86.844 +60.1396 -43.748 87.8485 +58.4053 -43.3307 87.0106 +58.0116 -43.9019 88.1576 +56.3 -43.4696 87.2896 +55.8408 -43.9973 88.3492 +53.7654 -43.2382 86.8248 +53.2509 -43.7199 87.7922 +51.2193 -42.9414 86.2289 +50.1921 -42.9809 86.3081 +48.6678 -42.5787 85.5005 +47.8324 -42.7664 85.8775 +46.0728 -42.1095 84.5583 +45.3759 -42.4078 85.1573 +44.0368 -42.0979 84.535 +43.211 -42.2676 84.8758 +41.6092 -41.6603 83.6564 +41.3104 -42.352 85.0454 +39.7374 -41.7315 83.7992 +39.2633 -42.2551 84.8508 +37.9851 -41.9103 84.1583 +37.1632 -42.0564 84.4518 +36.231 -42.0746 84.4882 +35.3009 -42.0887 84.5165 +34.2704 -41.973 84.2843 +33.5476 -42.2308 84.802 +32.3289 -41.8539 84.0451 +31.7939 -42.3585 85.0584 +30.7781 -42.2262 84.7927 +29.8601 -42.2168 84.7739 +28.7694 -41.9477 84.2335 +28.2027 -42.4427 85.2274 +27.04 -42.0366 84.412 +26.2963 -42.269 84.8787 +25.3125 -42.1113 84.5621 +24.4872 -42.2082 84.7566 +23.4664 -41.9559 84.2498 +22.901 -42.5224 85.3874 +21.7528 -42.0017 84.3419 +21.0379 -42.3024 84.9456 +20.209 -42.3826 85.1067 +19.3786 -42.4596 85.2614 +18.3367 -42.052 84.4429 +17.6586 -42.4724 85.287 +16.5313 -41.7932 83.9231 +15.8116 -42.1197 84.5788 +14.9395 -42.0475 84.4338 +14.1601 -42.2363 84.8129 +13.2075 -41.8924 84.1225 +12.5436 -42.4726 85.2875 +11.602 -42.1216 84.5826 +10.8449 -42.4308 85.2036 +9.95111 -42.2054 84.7509 +9.21078 -42.6419 85.6274 +8.21879 -41.8767 84.091 +7.44577 -42.1738 84.6874 +6.64082 -42.3345 85.0102 +5.79351 -42.2252 84.7908 +4.96668 -42.2461 84.8328 +4.15257 -42.3975 85.1367 +3.31196 -42.2784 84.8975 +2.49205 -42.4233 85.1886 +1.64576 -42.0303 84.3992 +0.828148 -42.3025 84.946 +8.88178e-15 -42.0367 84.4121 +-0.828148 -42.3025 84.946 +-1.65623 -42.2977 84.9362 +-2.50775 -42.6907 85.7255 +-3.31196 -42.2784 84.8975 +-4.19182 -42.7983 85.9415 +-4.96668 -42.2461 84.8328 +-5.86676 -42.7592 85.863 +-6.64082 -42.3345 85.0102 +-7.51638 -42.5737 85.4905 +-8.29723 -42.2764 84.8934 +-9.23953 -42.775 85.8947 +-10.0765 -42.7374 85.8192 +-10.8788 -42.5637 85.4705 +-11.7482 -42.6525 85.6487 +-12.648 -42.8261 85.9974 +-13.3745 -42.4222 85.1863 +-14.2636 -42.5449 85.4326 +-15.0334 -42.3116 84.9643 +-16.0756 -42.8231 85.9913 +-16.7397 -42.32 84.981 +-17.6586 -42.4724 85.287 +-18.4131 -42.227 84.7944 +-19.5979 -42.9401 86.2262 +-20.1466 -42.2518 84.844 +-21.1894 -42.607 85.5574 +-22.1127 -42.6967 85.7375 +-23.0411 -42.7824 85.9096 +-23.7809 -42.5182 85.379 +-24.8377 -42.8124 85.9699 +-25.5454 -42.4989 85.3403 +-26.7506 -42.9993 86.3451 +-27.4535 -42.6794 85.7027 +-28.5435 -42.9556 86.2574 +-29.4711 -42.9708 86.2879 +-30.3713 -42.9396 86.2252 +-31.2107 -42.8198 85.9846 +-32.3333 -43.0772 86.5016 +-33.1754 -42.9498 86.2457 +-34.282 -43.1553 86.6583 +-35.1255 -43.0202 86.3872 +-36.2815 -43.2577 86.8641 +-36.7686 -42.6988 85.7418 +-38.2994 -43.3422 87.0336 +-38.8092 -42.8196 85.9842 +-40.6792 -43.779 87.9107 +-41.1831 -43.2497 86.848 +-42.387 -43.4558 87.2618 +-42.748 -42.8006 85.946 +-44.4966 -43.525 87.4008 +-45.1356 -43.1483 86.6444 +-46.9688 -43.8965 88.1468 +-47.4318 -43.3515 87.0524 +-48.8587 -43.684 87.72 +-49.3034 -43.1348 86.6171 +-51.1617 -43.8112 87.9755 +-51.7827 -43.4137 87.1773 +-53.2986 -43.7591 87.8709 +-54.1532 -43.5501 87.4511 +-56.0378 -44.1526 88.6609 +-56.6 -43.7013 87.7547 +-58.2147 -44.0556 88.4661 +-58.9204 -43.7128 87.7778 +-60.5576 -44.052 88.4591 +-61.0997 -43.5879 87.5271 +-63.079 -44.1382 88.632 +-63.8862 -43.8537 88.0608 +-66.7292 -44.9418 90.2458 +-66.9354 -44.2369 88.8304 +-69.668 -45.1874 90.739 +-70.3778 -44.8049 89.971 +-72.2975 -45.1825 90.7292 +-73.1793 -44.8999 90.1616 +-75.7209 -45.6167 91.601 +-76.25 -45.1067 90.577 +-78.0432 -45.339 91.0434 +-78.5584 -44.8228 90.0068 +-80.9892 -45.3876 91.1409 +-81.6229 -44.9324 90.227 +-83.3899 -45.0947 90.5528 +-84.6551 -44.9735 90.3093 +-86.7013 -45.2525 90.8697 +-86.9934 -44.6106 89.5807 +-88.9899 -44.8384 90.0381 +-89.5297 -44.3248 89.0067 +-92.691 -45.092 90.5474 +-94.184 -45.0234 90.4096 +-96.9203 -45.5284 91.4238 +-97.3911 -44.957 90.2762 +-99.7394 -45.2445 90.8536 +-101.682 -45.3274 91.0201 +-104.063 -45.5864 91.5402 +-104.736 -45.0867 90.5367 +-108.008 -45.6903 91.7487 +-108.679 -45.1772 90.7184 +-111.329 -45.4754 91.3173 +-112.661 -45.2195 90.8035 +-115.639 -45.6069 91.5813 +-115.999 -44.9503 90.2628 +-119.384 -45.4527 91.2716 +-120.729 -45.1584 90.6808 +-110.034 -40.434 81.1939 +-107.402 -38.7701 77.8526 +-98.2956 -34.8542 69.9894 +-98.5801 -34.3334 68.9434 +-98.6932 -33.7586 67.7892 +-99.51 -33.4271 67.1235 +-98.7136 -32.5614 65.3851 +-98.781 -31.9927 64.2433 +-98.508 -31.3225 62.8974 +-98.4621 -30.7335 61.7148 +-99.1424 -30.3746 60.994 +-99.07 -29.7884 59.8168 +-98.8989 -29.1804 58.5959 +-98.7115 -28.576 57.3823 +-98.6768 -28.0233 56.2725 +-98.628 -27.473 55.1674 +-98.9915 -27.0417 54.3013 +-99.5171 -26.6556 53.526 +-99.1735 -26.0412 52.2923 +-99.2465 -25.543 51.2918 +-98.9594 -24.9584 50.1179 +-99.4443 -24.5725 49.343 +-99.3063 -24.0358 48.2652 +-98.9784 -23.4602 47.1095 +-99.4339 -23.0743 46.3345 +-99.0799 -22.5044 45.1902 +-99.5167 -22.1182 44.4146 +-99.2269 -21.5739 43.3216 +-98.8331 -21.0143 42.198 +-99.2407 -20.629 41.4243 +-98.8218 -20.0758 40.3135 +-99.3024 -19.7088 39.5764 +-98.8591 -19.1617 38.4779 +-99.2304 -18.7764 37.7042 +-99.5018 -18.3727 36.8934 +-99.6723 -17.9515 36.0476 +-99.1825 -17.416 34.9724 +-98.8662 -16.9177 33.9718 +-99.1936 -16.5325 33.1982 +-98.7617 -16.024 32.1771 +-98.3175 -15.5202 31.1654 +-99.374 -15.2532 30.6293 +-98.9102 -14.7529 29.6247 +-99.1952 -14.3676 28.851 +-99.4727 -13.9811 28.075 +-98.4994 -13.4242 26.9567 +-98.7584 -13.0406 26.1862 +-99.5867 -12.7296 25.5617 +-99.2539 -12.2703 24.6394 +-98.9108 -11.8144 23.7241 +-98.4606 -11.3511 22.7936 +-98.6791 -10.9677 22.0237 +-97.9177 -10.4793 21.043 +-96.6575 -9.94754 19.9752 +-90.9908 -8.99228 18.057 +-62.0146 -5.87604 11.7994 +-56.0517 -5.08354 10.208 +-52.2226 -4.52507 9.08661 +-57.1271 -4.71983 9.4777 +-57.1188 -4.48968 9.01554 +-17.4573 -1.30226 2.61502 +-17.5809 -1.24128 2.49256 +-17.0111 -1.13331 2.27574 +-14.854 -0.930602 1.8687 +-10.311 -0.605128 1.21513 +-12.9031 -0.706243 1.41818 +-12.2209 -0.620699 1.2464 +-14.9178 -0.698946 1.40352 +-14.1346 -0.606706 1.2183 +-13.1498 -0.512847 1.02983 +-15.0535 -0.528124 1.0605 +-15.6618 -0.488205 0.980344 +-16.07 -0.438145 0.879821 +-15.1792 -0.354618 0.712094 +-3273.18 -63.7059 127.925 +-3274.3 -50.9705 102.352 +-3275.18 -38.2313 76.7707 +-3276.2 -25.4923 51.19 +-3276.58 -12.7466 25.5959 +95 -1.77636e-15 -1.7053e-13 +94.9964 -0.362847 0.745398 +95.0855 -0.726428 1.4923 +95.0674 -1.08958 2.23832 +95.0421 -1.45264 2.98416 +94.9096 -1.81368 3.72585 +95.7686 -2.19673 4.51275 +95.6213 -2.55975 5.25852 +95.6664 -2.92793 6.01487 +95.6044 -3.29321 6.76526 +95.5351 -3.65824 7.51515 +95.558 -4.02718 8.27307 +95.673 -4.40114 9.0413 +95.8797 -4.78127 9.82219 +95.88 -5.15264 10.5851 +95.9719 -5.53005 11.3604 +95.7589 -5.89031 12.1005 +95.6378 -6.25586 12.8515 +95.4107 -6.61406 13.5873 +95.1766 -6.97099 14.3205 +94.837 -7.31903 15.0355 +95.6707 -7.76074 15.9429 +95.5123 -8.12585 16.693 +95.3467 -8.49035 17.4418 +96.0541 -8.93608 18.3575 +95.8723 -9.30264 19.1105 +95.6831 -9.66846 19.862 +95.4867 -10.0335 20.6119 +96.1563 -10.4932 21.5562 +95.9434 -10.86 22.3099 +95.7232 -11.2261 23.0618 +95.4958 -11.5912 23.8119 +96.1262 -12.0641 24.7834 +95.882 -12.4308 25.5367 +96.3955 -12.8989 26.4984 +96.23 -13.2798 27.2807 +95.8665 -13.6333 28.0069 +96.4445 -14.1239 29.0148 +96.1592 -14.4917 29.7705 +95.7724 -14.8439 30.4938 +96.4125 -15.3588 31.5517 +97.0392 -15.8797 32.6218 +96.7189 -16.2497 33.3819 +97.2286 -16.7629 34.4362 +96.8907 -17.1336 35.1977 +96.6378 -17.5198 35.991 +96.2848 -17.8882 36.7479 +96.7498 -18.4124 37.8246 +96.4704 -18.799 38.6189 +96.1829 -19.1849 39.4117 +96.5218 -19.6995 40.4688 +96.2156 -20.0863 41.2633 +96.4406 -20.5873 42.2926 +96.0265 -20.9548 43.0477 +96.4069 -21.4997 44.1669 +96.7729 -22.049 45.2953 +96.3296 -22.4177 46.0528 +96.582 -22.9518 47.1501 +96.9079 -23.5109 48.2985 +96.4354 -23.8801 49.057 +96.6484 -24.4226 50.1715 +96.1578 -24.7908 50.9279 +96.3456 -25.3375 52.0509 +96.6041 -25.9103 53.2277 +96.8471 -26.487 54.4125 +96.231 -26.8324 55.122 +96.4471 -27.4135 56.3157 +96.6474 -27.9982 57.5169 +96.8316 -28.5866 58.7255 +96.1755 -28.9305 59.4322 +96.1684 -29.4725 60.5456 +96.3099 -30.0674 61.7677 +96.4348 -30.6657 62.9967 +96.5432 -31.2671 64.2323 +96.3953 -31.7927 65.312 +96.3131 -32.3462 66.449 +95.4281 -32.632 67.0361 +94.6173 -32.9407 67.6704 +94.8118 -33.6039 69.0326 +94.8327 -34.2153 70.2886 +94.7597 -34.8012 71.4924 +94.7466 -35.4177 72.7587 +94.5651 -35.9792 73.9123 +94.5182 -36.6 75.1877 +94.3051 -37.1647 76.3476 +94.9613 -38.0852 78.2387 +94.4178 -38.536 79.1648 +94.8064 -39.3772 80.8929 +94.5932 -39.9811 82.1334 +94.4344 -40.617 83.4397 +94.328 -41.2856 84.8132 +93.8518 -41.8004 85.8707 +91.6254 -41.5275 85.3103 +90.9316 -41.9394 86.1565 +88.5234 -41.5489 85.3542 +87.9618 -42.0145 86.3107 +85.8495 -41.7309 85.728 +84.7491 -41.9261 86.129 +82.9915 -41.7857 85.8407 +82.415 -42.2342 86.762 +81.2484 -42.3798 87.061 +79.8278 -42.3845 87.0708 +78.1616 -42.2456 86.7854 +77.6898 -42.7481 87.8176 +75.357 -42.2154 86.7234 +75.0603 -42.8142 87.9534 +72.3983 -42.0506 86.3848 +71.9141 -42.5366 87.3832 +69.8289 -42.066 86.4165 +70.1489 -43.0438 88.4252 +69.5175 -43.4535 89.2667 +68.9883 -43.934 90.2538 +66.8795 -43.3973 89.1514 +65.9565 -43.6146 89.5978 +64.5942 -43.5345 89.4332 +63.7775 -43.8167 90.0128 +61.8946 -43.3532 89.0607 +61.5503 -43.9611 90.3096 +59.3324 -43.2191 88.7853 +58.8745 -43.7458 89.8672 +57.15 -43.3246 89.002 +56.3333 -43.5793 89.5252 +55.0259 -43.4483 89.256 +54.5392 -43.9646 90.3168 +52.8625 -43.5142 89.3915 +51.9467 -43.6756 89.7231 +50.0752 -43.0144 88.3647 +48.8587 -42.8907 88.1106 +47.0811 -42.2495 86.7935 +46.1077 -42.3092 86.9162 +44.4172 -41.6904 85.6448 +43.7087 -41.9779 86.2355 +42.5853 -41.8634 86.0002 +41.749 -42.0244 86.3311 +40.3625 -41.6183 85.4967 +39.646 -41.8921 86.0593 +38.4346 -41.6362 85.5335 +37.9695 -42.1886 86.6684 +36.7686 -41.9234 86.1236 +36.1764 -42.3492 86.9982 +34.6808 -41.7043 85.6735 +34.2486 -42.3303 86.9594 +32.5243 -41.3421 84.9294 +32.1747 -42.0874 86.4604 +30.8708 -41.5843 85.4268 +30.4014 -42.2015 86.6949 +29.2956 -41.9393 86.1562 +28.6287 -42.3014 86.9001 +27.4535 -41.9043 86.0843 +26.6971 -42.1341 86.5563 +25.7007 -41.9808 86.2414 +25.013 -42.3316 86.962 +23.8051 -41.7885 85.8464 +23.2512 -42.3885 87.079 +22.2702 -42.2198 86.7325 +21.4708 -42.3888 87.0795 +20.3338 -41.8698 86.0133 +19.6776 -42.3319 86.9626 +18.6611 -42.0187 86.3193 +17.8226 -42.0884 86.4625 +16.896 -41.9394 86.1563 +16.2407 -42.4771 87.2611 +15.2211 -42.062 86.4083 +14.5444 -42.5947 87.5027 +13.458 -41.9118 86.0997 +12.7263 -42.3088 86.9153 +11.7848 -42.0083 86.2978 +11.0373 -42.3996 87.1017 +10.0452 -41.8307 85.9331 +9.31621 -42.3467 86.9931 +8.40181 -42.0319 86.3464 +7.64976 -42.5423 87.3949 +6.74545 -42.2206 86.7341 +5.93392 -42.4632 87.2325 +5.04519 -42.1346 86.5574 +4.2398 -42.5021 87.3123 +3.37478 -42.298 86.893 +2.55225 -42.6593 87.6352 +1.67194 -41.9234 86.1236 +0.850837 -42.6723 87.6619 +7.99361e-15 -41.9298 86.1367 +-0.843856 -42.3221 86.9426 +-1.68241 -42.186 86.663 +-2.5444 -42.528 87.3655 +-3.37478 -42.298 86.893 +-4.25289 -42.6333 87.5818 +-5.06089 -42.2657 86.8268 +-5.95223 -42.5943 87.5017 +-6.78033 -42.4389 87.1826 +-7.62622 -42.4114 87.1261 +-8.45411 -42.2935 86.8838 +-9.45998 -43.0002 88.3356 +-10.1288 -42.1789 86.6485 +-11.0826 -42.5735 87.459 +-11.8701 -42.3124 86.9225 +-12.7785 -42.4824 87.2718 +-13.5555 -42.2152 86.723 +-14.6627 -42.941 88.214 +-15.2367 -42.1052 86.4971 +-16.3727 -42.8225 87.9705 +-17.1391 -42.5428 87.3959 +-18.0049 -42.5188 87.3466 +-18.7565 -42.2336 86.7607 +-19.877 -42.7608 87.8437 +-20.5417 -42.2979 86.8929 +-21.579 -42.6024 87.5184 +-22.4276 -42.5184 87.3458 +-23.578 -42.9844 88.3031 +-24.1196 -42.3406 86.9805 +-25.4136 -43.0096 88.3549 +-25.9078 -42.319 86.9362 +-27.3385 -43.1463 88.6357 +-27.8394 -42.4933 87.2942 +-29.1684 -43.0988 88.5381 +-29.7927 -42.6509 87.618 +-31.093 -43.1616 88.6671 +-31.9524 -43.0412 88.4198 +-32.968 -43.125 88.592 +-33.6637 -42.7906 87.9049 +-34.8161 -43.0317 88.4003 +-35.9463 -43.2261 88.7996 +-37.0169 -43.3332 89.0196 +-37.4495 -42.6998 87.7184 +-38.8491 -43.166 88.6761 +-39.5585 -42.8536 88.0344 +-41.0619 -43.3883 89.1329 +-41.7301 -43.0284 88.3934 +-43.1446 -43.4293 89.217 +-43.8055 -43.0629 88.4644 +-45.4089 -43.6109 89.5901 +-46.2767 -43.4357 89.2303 +-47.7006 -43.7707 89.9184 +-48.0016 -43.0756 88.4905 +-49.6618 -43.5957 89.559 +-50.1206 -43.0534 88.4449 +-52.1776 -43.8696 90.1216 +-52.2522 -43.0118 88.3594 +-54.1098 -43.6183 89.6055 +-54.9774 -43.41 89.1775 +-56.7272 -43.8841 90.1513 +-57.95 -43.9309 90.2475 +-59.6865 -44.3493 91.1071 +-59.5384 -43.3691 89.0935 +-61.7593 -44.1103 90.6162 +-62.3185 -43.6501 89.6707 +-65.1207 -44.7393 91.9082 +-65.8469 -44.3786 91.1673 +-68.2194 -45.1109 92.6716 +-68.7807 -44.6312 91.6861 +-71.0273 -45.2321 92.9206 +-72.0986 -45.0667 92.5808 +-74.4461 -45.6807 93.8422 +-74.8251 -45.0759 92.5996 +-76.9701 -45.5271 93.5266 +-77.5138 -45.0216 92.4882 +-79.7477 -45.4877 93.4457 +-80.4054 -45.0435 92.5331 +-82.2342 -45.2488 92.9548 +-82.5039 -44.5927 91.607 +-84.7256 -44.9848 92.4126 +-85.6193 -44.6596 91.7446 +-87.8054 -44.9966 92.4369 +-88.9616 -44.7918 92.0161 +-90.9115 -44.9748 92.3919 +-91.8047 -44.6255 91.6744 +-94.9204 -45.338 93.1382 +-96.0254 -45.0702 92.588 +-98.7789 -45.5586 93.5914 +-99.4751 -45.0851 92.6185 +-102.263 -45.5464 93.5662 +-103.379 -45.247 92.9512 +-105.989 -45.5866 93.6489 +-107.325 -45.3625 93.1886 +-109.314 -45.4028 93.2713 +-110.873 -45.2523 92.962 +-113.983 -45.714 93.9106 +-114.444 -45.1013 92.6518 +-107.85 -41.7623 85.7926 +-112.527 -42.8132 87.9515 +-110.183 -41.188 84.6127 +-113.758 -41.7784 85.8256 +-100.851 -36.3868 74.7496 +-99.0084 -35.0912 72.0881 +-98.8434 -34.412 70.6929 +-98.7377 -33.7637 69.3611 +-98.7725 -33.1722 68.1458 +-99.4301 -32.7937 67.3682 +-99.4371 -32.2044 66.1577 +-98.7001 -31.386 64.4765 +-99.4035 -31.0332 63.7518 +-98.4621 -30.1754 61.9896 +-99.06 -29.7982 61.2146 +-99.07 -29.2474 60.0831 +-98.8989 -28.6505 58.8568 +-98.7954 -28.0809 57.6869 +-98.5925 -27.4909 56.4747 +-99.2216 -27.1365 55.7466 +-99.6736 -26.7336 54.919 +-98.9171 -26.0137 53.4402 +-99.5182 -25.6572 52.7077 +-99.2465 -25.0791 51.5202 +-98.9594 -24.5051 50.3411 +-99.6192 -24.1686 49.6498 +-99.3063 -23.5993 48.4801 +-98.9784 -23.0342 47.3193 +-98.6356 -22.4733 46.1671 +-99.0799 -22.0957 45.3914 +-98.8008 -21.5602 44.2913 +-99.2269 -21.1821 43.5145 +-99.6454 -20.8023 42.7342 +-99.2407 -20.2544 41.6088 +-98.8218 -19.7113 40.493 +-99.211 -19.3331 39.716 +-98.8591 -18.8138 38.6492 +-99.2304 -18.4355 37.8721 +-99.317 -18.0055 36.9889 +-99.0232 -17.5107 35.9724 +-99.1825 -17.0998 35.1281 +-98.9595 -16.6262 34.1553 +-99.2873 -16.2476 33.3775 +-98.7617 -15.733 32.3204 +-99.0716 -15.3552 31.5443 +-98.523 -14.848 30.5023 +-98.9102 -14.485 29.7566 +-99.1952 -14.1067 28.9794 +-98.6143 -13.6088 27.9567 +-98.4994 -13.1805 27.0767 +-98.7584 -12.8037 26.3028 +-98.6255 -12.3778 25.4278 +-99.0612 -12.024 24.701 +-98.5244 -11.5546 23.7366 +-98.4606 -11.1449 22.8951 +-98.485 -10.7473 22.0782 +-98.6955 -10.3707 21.3046 +-97.6319 -9.86537 20.2665 +-96.7509 -9.3879 19.2856 +-90.4787 -8.41739 17.2919 +-76.5321 -6.81495 14 +-59.1921 -5.03587 10.3452 +-62.1417 -5.0409 10.3556 +-62.9292 -4.85655 9.97684 +-18.9367 -1.38697 2.84926 +-17.9759 -1.24613 2.55992 +-18.2968 -1.19682 2.45865 +-649.319 -39.9409 82.0509 +-653.164 -37.6365 77.3169 +-3251.88 -174.758 359.006 +-3255.24 -162.331 333.477 +-15.614 -0.718278 1.47556 +-14.1346 -0.595688 1.22373 +-12.054 -0.461569 0.948205 +-13.9568 -0.480762 0.987632 +-11.7713 -0.360266 0.740098 +-3270.19 -87.5418 179.838 +-12.9822 -0.297784 0.611739 +-3273.18 -62.549 128.495 +-3274.3 -50.0449 102.807 +-3275.58 -37.5416 77.122 +-3276.2 -25.0293 51.4179 +-3276.58 -12.5151 25.7099 +94.1 0 -2.27374e-13 +94.9964 -0.356119 0.748635 +94.9855 -0.712211 1.49721 +94.9674 -1.06825 2.24568 +94.9421 -1.4242 2.99397 +94.9096 -1.78005 3.74204 +95.7686 -2.156 4.53235 +96.6194 -2.53852 5.33649 +95.5666 -2.87065 6.03469 +96.6013 -3.26585 6.8655 +95.6347 -3.59415 7.55565 +95.6576 -3.95664 8.31766 +95.7725 -4.32405 9.09005 +95.979 -4.69747 9.87506 +95.88 -5.0571 10.6311 +95.8727 -5.42194 11.398 +95.7589 -5.78109 12.1531 +95.6378 -6.13987 12.9073 +96.3984 -6.55861 13.7875 +96.1628 -6.91261 14.5317 +95.8218 -7.25794 15.2577 +95.5724 -7.60903 15.9957 +95.5123 -7.97519 16.7655 +95.3467 -8.33293 17.5175 +95.1738 -8.69003 18.2682 +95.8723 -9.13016 19.1935 +95.878 -9.50852 19.9889 +95.6812 -9.86755 20.7436 +95.4771 -10.2259 21.4969 +95.9434 -10.6587 22.4068 +95.7232 -11.0179 23.162 +96.363 -11.4796 24.1325 +96.1262 -11.8404 24.891 +95.882 -12.2003 25.6476 +96.3955 -12.6598 26.6135 +96.1347 -13.0206 27.372 +96.8176 -13.5132 28.4076 +96.5393 -13.8757 29.1695 +96.2538 -14.237 29.9291 +95.8666 -14.583 30.6564 +96.4125 -15.074 31.6887 +97.0392 -15.5853 32.7635 +96.7189 -15.9484 33.5269 +96.3913 -16.3104 34.2878 +96.8907 -16.816 35.3506 +96.5454 -17.1785 36.1128 +96.2848 -17.5566 36.9075 +96.8415 -18.0881 38.0249 +96.4704 -18.4504 38.7866 +96.1829 -18.8292 39.5829 +96.6124 -19.3524 40.6827 +96.2156 -19.7138 41.4426 +96.5305 -20.2244 42.5159 +96.0265 -20.5663 43.2346 +96.4069 -21.101 44.3587 +96.8616 -21.6599 45.5337 +97.1242 -22.1836 46.6345 +96.582 -22.5263 47.3549 +96.9079 -23.0749 48.5083 +97.1317 -23.6066 49.6259 +96.6484 -23.9698 50.3894 +96.9333 -24.5274 51.5616 +97.1171 -25.0668 52.6956 +96.6041 -25.4299 53.4589 +95.999 -25.7683 54.1703 +96.231 -26.3349 55.3614 +96.4471 -26.9052 56.5603 +96.564 -27.4554 57.7169 +96.0855 -27.8404 58.5262 +96.1755 -28.3941 59.6903 +96.1684 -28.9261 60.8085 +96.3099 -29.51 62.036 +96.4348 -30.0971 63.2703 +95.8197 -30.4575 64.0278 +96.555 -31.2549 65.7043 +96.4718 -31.7988 66.8476 +96.7677 -32.4765 68.2724 +96.026 -32.8113 68.9761 +94.9672 -33.0349 69.4461 +94.2925 -33.3896 70.1919 +94.6831 -34.1283 71.7448 +94.7466 -34.761 73.0747 +94.7161 -35.3685 74.3518 +94.5931 -35.9499 75.5741 +94.3051 -36.4756 76.6792 +94.4452 -37.1759 78.1515 +94.1984 -37.7337 79.3239 +94.0085 -38.3219 80.5605 +94.1616 -39.0608 82.1138 +95.005 -40.1047 84.3084 +94.5402 -40.6112 85.3732 +94.7629 -41.4237 87.0811 +93.1537 -41.4374 87.11 +92.5149 -41.8785 88.0372 +90.3648 -41.6268 87.5081 +89.8535 -42.1223 88.5498 +87.4554 -41.7233 87.7109 +86.6044 -42.0495 88.3968 +84.566 -41.7891 87.8492 +83.7139 -42.1044 88.5122 +81.8911 -41.9231 88.1309 +81.6088 -42.5267 89.4 +79.1685 -41.9965 88.2853 +79.4329 -42.8968 90.1779 +77.0193 -42.3466 89.0213 +76.5822 -42.8723 90.1265 +74.926 -42.7118 89.7889 +73.877 -42.8874 90.1582 +70.6518 -41.7726 87.8146 +71.1942 -42.8752 90.1325 +70.3778 -43.1756 90.7641 +70.0078 -43.7564 91.985 +68.3334 -43.5184 91.4847 +67.3915 -43.7371 91.9444 +65.629 -43.4119 91.2608 +65.1744 -43.9459 92.3833 +63.3783 -43.5696 91.5922 +62.9088 -44.0984 92.7038 +61.135 -43.7066 91.8803 +60.7523 -44.3041 93.1364 +58.5 -43.5257 91.5001 +57.6628 -43.7809 92.0365 +56.2864 -43.6194 91.6969 +55.3981 -43.829 92.1376 +53.6137 -43.3144 91.0558 +53.3781 -44.0468 92.5955 +50.7561 -42.791 89.9554 +50.5096 -43.518 91.4838 +48.0016 -42.277 88.8749 +47.2701 -42.5716 89.4944 +45.3469 -41.7739 87.8173 +44.7869 -42.2159 88.7465 +43.3581 -41.8328 87.9411 +42.9453 -42.4271 89.1905 +41.4175 -41.9142 88.1123 +40.5644 -42.0679 88.4354 +39.2213 -41.7006 87.6632 +38.8491 -42.3656 89.0613 +37.1986 -41.6273 87.5092 +36.6667 -42.1273 88.5603 +35.4333 -41.8192 87.9125 +34.7827 -42.1933 88.699 +33.3056 -41.5504 87.3476 +32.9362 -42.2847 88.8912 +31.7051 -41.9163 88.1168 +31.0629 -42.3204 88.9662 +29.7342 -41.7779 87.8258 +29.14 -42.2585 88.836 +27.9496 -41.8706 88.0206 +27.4187 -42.4705 89.2818 +26.089 -41.8248 87.9243 +25.4636 -42.2953 88.9134 +24.3132 -41.889 88.0592 +23.578 -42.1874 88.6866 +22.5176 -41.8974 88.077 +21.8604 -42.3577 89.0446 +20.708 -41.8498 87.9769 +20.0365 -42.3047 88.9331 +18.8901 -41.7457 87.758 +18.2053 -42.195 88.7027 +17.1912 -41.8809 88.0424 +16.4883 -42.3251 88.976 +15.5339 -42.1307 88.5675 +14.7662 -42.4422 89.2224 +13.7781 -42.1131 88.5305 +13.0396 -42.5465 89.4414 +11.9919 -41.9542 88.1963 +11.2071 -42.2536 88.8258 +10.2542 -41.9095 88.1025 +9.48873 -42.3312 88.9889 +8.57613 -42.1084 88.5206 +7.79099 -42.5244 89.395 +6.86404 -42.1663 88.6422 +6.04381 -42.4477 89.2337 +5.18126 -42.4687 89.278 +4.30523 -42.3578 89.0448 +3.39223 -41.7284 87.7216 +2.59152 -42.5124 89.3699 +1.70161 -41.8763 88.0326 +0.863927 -42.5254 89.3971 +1.24345e-14 -42.1404 88.5878 +-0.863927 -42.5254 89.3971 +-1.71732 -42.2628 88.8452 +-2.58366 -42.3836 89.0991 +-3.43411 -42.2435 88.8046 +-4.35758 -42.8728 90.1274 +-5.18126 -42.4687 89.278 +-6.08043 -42.7049 89.7746 +-6.90589 -42.4234 89.1827 +-7.81453 -42.6529 89.6651 +-8.62842 -42.3652 89.0604 +-9.69001 -43.2293 90.877 +-10.3274 -42.2086 88.7312 +-11.343 -42.7658 89.9025 +-12.0407 -42.1248 88.5549 +-13.1962 -43.0575 90.5158 +-13.8199 -42.2407 88.7987 +-14.8696 -42.7396 89.8475 +-15.5965 -42.3004 88.9242 +-16.6038 -42.6216 89.5995 +-17.3127 -42.177 88.6648 +-18.4969 -42.8708 90.1233 +-19.1954 -42.4203 89.1763 +-20.1561 -42.5572 89.4641 +-21.0199 -42.4801 89.3018 +-22.0552 -42.7352 89.8381 +-22.7426 -42.316 88.957 +-23.7881 -42.5633 89.4768 +-24.5551 -42.3058 88.9355 +-25.8893 -43.0021 90.3993 +-26.7619 -42.9036 90.1922 +-27.873 -43.1744 90.7614 +-28.5009 -42.6965 89.7568 +-29.5092 -42.7939 89.9617 +-30.4944 -42.846 90.0711 +-31.7545 -43.2628 90.9474 +-32.385 -42.8151 90.0062 +-33.9199 -43.5477 91.5461 +-34.5102 -43.0532 90.5067 +-35.8509 -43.4892 91.4233 +-36.2541 -42.7879 89.949 +-37.7524 -43.3745 91.1822 +-38.2737 -42.8304 90.0384 +-39.9853 -43.6048 91.6662 +-40.5324 -43.0945 90.5934 +-42.0569 -43.6155 91.6888 +-42.6288 -43.14 90.6892 +-44.0219 -43.4905 91.426 +-44.9037 -43.3238 91.0757 +-46.3212 -43.6623 91.7872 +-47.0374 -43.3311 91.091 +-48.82 -43.9673 92.4284 +-48.9661 -43.1262 90.6603 +-50.5096 -43.518 91.4838 +-51.3009 -43.2504 90.9212 +-53.2396 -43.9325 92.3553 +-53.7075 -43.39 91.2147 +-55.3981 -43.829 92.1376 +-56.2864 -43.6194 91.6969 +-58.2537 -44.2294 92.9793 +-58.65 -43.6374 91.7349 +-60.7016 -44.2672 93.0587 +-61.4955 -43.9643 92.4221 +-63.1701 -44.2813 93.0885 +-63.5903 -43.7152 91.8983 +-66.8938 -45.1053 94.8205 +-67.8076 -44.8527 94.2896 +-69.9304 -45.3849 95.4084 +-70.8497 -45.1211 94.854 +-73.293 -45.8097 96.3015 +-73.7046 -45.2165 95.0544 +-76.2463 -45.9176 96.5282 +-76.4121 -45.1783 94.9741 +-78.2787 -45.4429 95.5303 +-78.8378 -44.9416 94.4765 +-80.9653 -45.3261 95.2847 +-81.5751 -44.8514 94.2869 +-84.0395 -45.3845 95.4075 +-84.5807 -44.8673 94.3203 +-86.6975 -45.1783 94.9741 +-87.2263 -44.6542 93.8724 +-89.1043 -44.8157 94.2119 +-89.7489 -44.3501 93.233 +-93.6945 -45.4919 95.6333 +-94.0129 -44.8518 94.2878 +-97.3525 -45.6379 95.9403 +-97.8668 -45.0825 94.7727 +-100.637 -45.5554 95.7669 +-100.934 -44.8982 94.3853 +-104.365 -45.6212 95.9051 +-105.076 -45.137 94.8874 +-108.343 -45.735 96.1444 +-109.052 -45.2376 95.0987 +-112.143 -45.7144 96.1011 +-112.702 -45.1456 94.9054 +-115.753 -45.5632 95.7832 +-116.674 -45.1276 94.8675 +-104.404 -39.6786 83.4127 +-103.999 -38.8348 81.6388 +-101.362 -37.1881 78.1771 +-106.25 -38.2978 80.5098 +-98.305 -34.8105 73.1788 +-98.2312 -34.1703 71.833 +-99.3912 -33.9612 71.3935 +-98.7377 -33.1377 69.6623 +-99.4865 -32.7925 68.9366 +-99.51 -32.2115 67.7152 +-98.794 -31.4028 66.0152 +-99.4282 -31.0313 65.2342 +-98.6708 -30.2333 63.5567 +-98.4621 -29.6159 62.2588 +-99.06 -29.2457 61.4805 +-99.07 -28.7051 60.3441 +-98.8989 -28.1192 59.1124 +-98.7954 -27.5603 57.9374 +-99.2672 -27.1658 57.1082 +-99.052 -26.5878 55.893 +-98.9063 -26.0359 54.7328 +-99.5171 -25.6863 53.9978 +-98.7427 -24.9852 52.5241 +-99.2465 -24.6141 51.7439 +-98.9594 -24.0508 50.5597 +-99.4443 -23.6789 49.7779 +-99.3063 -23.1617 48.6907 +-98.9784 -22.6071 47.5248 +-98.6356 -22.0567 46.3676 +-99.0799 -21.6861 45.5886 +-99.5167 -21.3138 44.8061 +-99.2269 -20.7893 43.7035 +-99.6454 -20.4166 42.9198 +-99.2407 -19.8789 41.7895 +-98.8218 -19.3458 40.6688 +-99.3024 -18.9921 39.9253 +-98.8591 -18.4649 38.8171 +-99.1384 -18.0769 38.0013 +-99.5018 -17.7045 37.2186 +-99.6723 -17.2987 36.3654 +-99.3686 -16.8142 35.3469 +-98.8662 -16.3025 34.2713 +-99.1936 -15.9313 33.4909 +-98.7617 -15.4413 32.4608 +-98.2232 -14.9415 31.41 +-98.6176 -14.5867 30.6642 +-98.9102 -14.2164 29.8859 +-99.1952 -13.8451 29.1053 +-99.4727 -13.4727 28.3224 +-98.8819 -12.9863 27.2999 +-98.7584 -12.5663 26.417 +-98.7216 -12.1601 25.5631 +-98.6758 -11.7552 24.7118 +-98.9108 -11.3848 23.9332 +-98.6542 -10.9598 23.0398 +-98.582 -10.5584 22.196 +-98.5011 -10.1584 21.355 +-97.8268 -9.70178 20.3951 +-97.532 -9.2882 19.5257 +-97.5213 -8.90438 18.7188 +-99.6583 -8.70974 18.3097 +-78.5302 -6.55719 13.7846 +-71.581 -5.69892 11.9803 +-18.4159 -1.39489 2.93236 +-3231.56 -232.3 488.342 +-18.2722 -1.24318 2.61342 +-16.5166 -1.06035 2.22907 +-648.031 -39.1227 82.2439 +-654.056 -36.9891 77.7587 +-659.646 -34.7924 73.1408 +-3255.24 -159.321 334.925 +-3258.35 -147.112 309.26 +-3261.61 -134.909 283.606 +-3263.83 -122.662 257.86 +-3266.2 -110.422 232.131 +-3268.32 -98.1742 206.382 +-3270.59 -85.9295 180.641 +-3271.81 -73.6568 154.842 +-3273.58 -61.397 129.069 +-3274.7 -49.123 103.267 +-3275.58 -36.8456 77.457 +-3276.2 -24.5653 51.6413 +-3276.58 -12.2831 25.8216 +95.1 -1.77636e-15 -1.7053e-13 +94.9964 -0.349349 0.751818 +94.9855 -0.698673 1.50358 +94.9674 -1.04794 2.25523 +95.7416 -1.4089 3.03202 +95.8087 -1.76276 3.79355 +95.7686 -2.11501 4.55162 +95.7211 -2.46711 5.30934 +95.6664 -2.81902 6.06668 +95.7041 -3.17401 6.83065 +95.6347 -3.52583 7.58778 +95.7571 -3.88546 8.36171 +95.9714 -4.25066 9.14765 +96.0784 -4.61298 9.92738 +95.9792 -4.96611 10.6873 +95.8727 -5.31887 11.4465 +95.7589 -5.6712 12.2047 +95.6378 -6.02315 12.9621 +96.3984 -6.43393 13.8462 +96.1628 -6.78121 14.5935 +96.0188 -7.1346 15.354 +95.6707 -7.47205 16.0803 +95.5123 -7.82358 16.8368 +95.3467 -8.17453 17.592 +95.1738 -8.52484 18.3459 +95.8723 -8.9566 19.2751 +95.6831 -9.30881 20.033 +95.6812 -9.67998 20.8318 +95.4771 -10.0315 21.5882 +95.2657 -10.3822 22.343 +95.6267 -10.7976 23.2369 +95.4958 -11.1601 24.017 +96.03 -11.6038 24.9719 +95.882 -11.9684 25.7566 +95.5348 -12.3082 26.4879 +96.1347 -12.7731 27.4884 +96.7224 -13.2433 28.5004 +96.4445 -13.5985 29.2648 +96.0647 -13.9389 29.9973 +96.715 -14.4324 31.0592 +96.4125 -14.7875 31.8234 +97.0392 -15.289 32.9028 +96.7189 -15.6453 33.6695 +97.2286 -16.1394 34.7328 +96.8907 -16.4963 35.5009 +96.5454 -16.852 36.2663 +96.2848 -17.2228 37.0644 +96.8415 -17.7443 38.1866 +96.4704 -18.0997 38.9515 +96.0919 -18.4538 39.7135 +96.5218 -18.9667 40.8174 +96.1253 -19.3209 41.5797 +96.5305 -19.84 42.6967 +96.0265 -20.1754 43.4185 +96.3178 -20.6808 44.5062 +96.8616 -21.2482 45.7273 +96.3296 -21.5838 46.4495 +96.582 -22.0981 47.5562 +96.9079 -22.6363 48.7145 +96.4354 -22.9918 49.4795 +96.6484 -23.5141 50.6036 +96.9333 -24.0611 51.7808 +96.3456 -24.395 52.4993 +96.6041 -24.9465 53.6862 +96.8471 -25.5018 54.8812 +96.9057 -26.0154 55.9866 +96.4471 -26.3938 56.8008 +96.564 -26.9335 57.9623 +96.7487 -27.4996 59.1807 +96.1755 -27.8544 59.9441 +96.2504 -28.4003 61.119 +96.3913 -28.9734 62.3524 +96.4348 -29.525 63.5393 +95.8197 -29.8785 64.3001 +96.555 -30.6608 65.9837 +96.6304 -31.2456 67.2421 +96.5313 -31.7813 68.3951 +96.5738 -32.3712 69.6646 +95.045 -32.4334 69.7984 +95.8358 -33.291 71.6439 +94.2235 -33.3171 71.7002 +94.8226 -34.1276 73.4444 +94.7161 -34.6961 74.6679 +94.5182 -35.2386 75.8353 +94.3794 -35.8104 77.0659 +94.5927 -36.5262 78.6063 +94.2715 -37.0451 79.723 +94.0085 -37.5934 80.903 +94.5932 -38.4939 82.8408 +94.4344 -39.1061 84.1584 +94.328 -39.7498 85.5437 +94.833 -40.6663 87.516 +93.6399 -40.8619 87.9369 +94.3046 -41.8772 90.1219 +92.0698 -41.6059 89.5382 +91.7452 -42.1914 90.7981 +88.9944 -41.6504 89.634 +88.7248 -42.2601 90.946 +86.6654 -42.0123 90.4128 +86.3766 -42.6179 91.7159 +83.4338 -41.9009 90.1729 +83.1354 -42.4986 91.4592 +80.9935 -42.148 90.7047 +81.5494 -43.2028 92.9746 +78.5584 -42.3718 91.1863 +78.9564 -43.3612 93.3156 +76.25 -42.6402 91.764 +76.0778 -43.3254 93.2385 +73.7083 -42.7514 92.0034 +72.9944 -43.1235 92.8041 +69.9763 -42.1132 90.6299 +70.1211 -42.9942 92.5257 +69.7873 -43.5997 93.8289 +69.4337 -44.2061 95.1339 +67.5352 -43.8235 94.3105 +67.1087 -44.3903 95.5302 +64.8091 -43.7059 94.0574 +64.3196 -44.2301 95.1856 +62.4741 -43.8146 94.2914 +62.0212 -44.3696 95.4858 +59.85 -43.6836 94.0094 +59.337 -44.1956 95.1112 +57.5469 -43.7485 94.149 +57.1159 -44.3287 95.3978 +55.3507 -43.8677 94.4057 +54.3478 -43.9946 94.6786 +52.0273 -43.0287 92.6001 +52.2051 -44.1235 94.9562 +49.5359 -42.7991 92.1058 +49.1213 -43.3979 93.3945 +46.9952 -42.4691 91.3958 +46.3212 -42.8323 92.1775 +44.2936 -41.923 90.2205 +43.7826 -42.432 91.316 +42.2771 -41.9708 90.3235 +41.5977 -42.3195 91.0738 +40.0454 -41.7675 89.8858 +39.9853 -42.7759 92.056 +38.1303 -41.8589 90.0826 +37.7524 -42.55 91.5699 +35.9805 -41.6578 89.6498 +35.951 -42.7814 92.0678 +34.5102 -42.2348 90.8915 +33.7612 -42.5201 91.5055 +32.4777 -42.1214 90.6476 +31.9951 -42.7616 92.0251 +30.3482 -41.83 90.0204 +29.6228 -42.1421 90.692 +28.4733 -41.8443 90.0511 +27.8462 -42.3128 91.0593 +26.8137 -42.1695 90.751 +26.0896 -42.5112 91.4864 +24.9905 -42.2378 90.8979 +24.3484 -42.7375 91.9734 +22.9225 -41.8401 90.0421 +22.3799 -42.5399 91.5481 +21.1862 -42.0023 90.3911 +20.6944 -42.8631 92.2437 +19.348 -41.9449 90.2676 +18.7156 -42.553 91.5762 +17.5558 -41.9563 90.2922 +17.0494 -42.9335 92.3951 +15.7686 -41.9542 90.2876 +15.0618 -42.4691 91.3958 +14.1122 -42.314 91.062 +13.3006 -42.5732 91.6198 +12.2479 -42.035 90.4616 +11.6146 -42.9575 92.4468 +10.5365 -42.2445 90.9124 +9.80502 -42.9107 92.3462 +8.68071 -41.8117 89.981 +7.95575 -42.5981 91.6733 +7.01053 -42.2474 90.9187 +6.22085 -42.8606 92.2382 +5.25976 -42.2925 91.0158 +4.44482 -42.8998 92.3226 +3.49344 -42.1564 90.7229 +2.65434 -42.7152 91.9254 +1.73826 -41.965 90.311 +0.889234 -42.939 92.4069 +9.76996e-15 -41.9714 90.3247 +-0.889234 -42.939 92.4069 +-1.75397 -42.3444 91.1273 +-2.66743 -42.9259 92.3788 +-3.48646 -42.0722 90.5416 +-4.46226 -43.0683 92.6853 +-5.27546 -42.419 91.2878 +-6.19643 -42.6924 91.8764 +-7.0454 -42.4577 91.3713 +-8.02637 -42.9765 92.4876 +-8.7853 -42.3153 91.0648 +-9.80502 -42.9107 92.3462 +-10.6515 -42.7055 91.9045 +-11.7279 -43.3764 93.3483 +-12.4185 -42.6204 91.7213 +-13.4834 -43.1581 92.8785 +-14.14 -42.3975 91.2416 +-15.3131 -43.1775 92.9202 +-15.8937 -42.2871 91.004 +-17.1484 -43.183 92.932 +-17.6947 -42.2883 91.0067 +-18.8796 -42.9259 92.3788 +-19.5579 -42.4 91.247 +-20.6545 -42.7805 92.0659 +-21.3733 -42.3734 91.1899 +-22.7262 -43.1981 92.9647 +-23.3049 -42.5382 91.5445 +-24.5818 -43.1476 92.8558 +-25.1357 -42.483 91.4257 +-26.6655 -43.4497 93.5061 +-27.3313 -42.9836 92.5031 +-28.7014 -43.6124 93.8561 +-29.1073 -42.7759 92.056 +-30.6737 -43.6372 93.9096 +-31.1376 -42.9179 92.3616 +-32.7168 -43.7261 94.101 +-33.1884 -43.043 92.6309 +-34.6179 -43.5989 93.8271 +-35.2265 -43.1113 92.7778 +-36.5519 -43.4965 93.6067 +-37.3144 -43.2019 92.9728 +-38.6629 -43.5765 93.779 +-39.2413 -43.0784 92.7071 +-40.9382 -43.7952 94.2497 +-41.6937 -43.4868 93.5859 +-43.4346 -44.188 95.0949 +-43.6447 -43.3283 93.2449 +-45.6169 -44.2099 95.1421 +-45.9206 -43.4628 93.5342 +-47.7727 -44.1745 95.0659 +-48.2207 -43.577 93.7799 +-49.8532 -44.0443 94.7857 +-50.1497 -43.3292 93.2467 +-52.339 -44.2369 95.2001 +-52.9807 -43.8172 94.2969 +-54.5787 -44.1817 95.0813 +-55.2099 -43.7561 94.1654 +-57.1159 -44.3287 95.3978 +-57.7893 -43.933 94.5462 +-59.8295 -44.5622 95.9002 +-60.05 -43.8298 94.3241 +-62.275 -44.5512 95.8766 +-62.5771 -43.8871 94.4474 +-65.8871 -45.3081 97.5054 +-66.4519 -44.8138 96.4416 +-68.8818 -45.563 98.054 +-70.2584 -45.5908 98.1139 +-72.8005 -46.3498 99.7472 +-72.8628 -45.5213 97.9643 +-75.2187 -46.1197 99.252 +-75.4827 -45.4269 97.7611 +-78.2207 -46.2111 99.4488 +-77.8815 -45.172 97.2125 +-80.658 -45.9339 98.8521 +-80.8238 -45.1981 97.2687 +-83.1568 -45.6679 98.2798 +-83.9762 -45.2942 97.4755 +-86.156 -45.6431 98.2263 +-86.5316 -45.03 96.9068 +-89.3054 -45.6528 98.2472 +-89.4118 -44.9031 96.6339 +-92.4165 -45.598 98.1293 +-92.7667 -44.9701 96.7781 +-96.4775 -45.9528 98.8929 +-96.8232 -45.3144 97.519 +-100.393 -46.1682 99.3563 +-100.322 -45.335 97.5634 +-103.529 -45.973 98.9364 +-104.06 -45.4088 97.7221 +-107.379 -46.0464 99.0942 +-107.692 -45.3814 97.6632 +-110.696 -45.8403 98.6508 +-111.857 -45.5192 97.9597 +-114.972 -45.9764 98.9437 +-114.969 -45.1783 97.2261 +-120.176 -46.405 99.866 +-120.612 -45.764 98.4866 +-104.704 -39.0361 84.0077 +-99.3953 -36.4102 78.3567 +-97.5601 -35.1128 75.5646 +-97.3642 -34.4277 74.0901 +-99.2309 -34.4704 74.1821 +-98.5421 -33.6268 72.3666 +-99.3912 -33.3156 71.697 +-99.3682 -32.7153 70.4051 +-98.6932 -31.9126 68.6775 +-98.7113 -31.3455 67.4573 +-98.7136 -30.7808 66.242 +-98.7001 -30.2185 65.0318 +-99.4035 -29.8789 64.3009 +-99.1993 -29.2705 62.9916 +-99.1424 -28.7136 61.7933 +-99.07 -28.1595 60.6006 +-98.8989 -27.5847 59.3638 +-98.7954 -27.0364 58.1837 +-99.2672 -26.6494 57.351 +-99.052 -26.0824 56.1307 +-99.2473 -25.629 55.155 +-99.0028 -25.0678 53.9472 +-98.7427 -24.5103 52.7474 +-99.2465 -24.1462 51.9639 +-98.9594 -23.5936 50.7747 +-99.4443 -23.2288 49.9896 +-99.3063 -22.7214 48.8977 +-98.9784 -22.1773 47.7268 +-99.4339 -21.8125 46.9417 +-99.0799 -21.2738 45.7824 +-99.5167 -20.9087 44.9966 +-99.2269 -20.3942 43.8893 +-98.8331 -19.8652 42.751 +-99.2407 -19.501 41.9672 +-99.6408 -19.1353 41.1802 +-98.4802 -18.4768 39.763 +-99.4093 -18.2148 39.1991 +-99.1384 -17.7332 38.1628 +-99.317 -17.3358 37.3075 +-99.0232 -16.8594 36.2823 +-99.3686 -16.4946 35.4972 +-98.8662 -15.9926 34.417 +-99.2873 -15.6432 33.665 +-98.7617 -15.1478 32.5988 +-99.0716 -14.784 31.816 +-98.6176 -14.3094 30.7946 +-98.9102 -13.9462 30.0129 +-99.1952 -13.5819 29.229 +-98.7097 -13.1153 28.2248 +-98.8819 -12.7394 27.4159 +-99.142 -12.3753 26.6324 +-99.01 -11.9638 25.7467 +-99.0612 -11.5767 24.9138 +-98.4278 -11.1139 23.9176 +-99.2351 -10.8148 23.274 +-98.582 -10.3577 22.2904 +-97.8204 -9.89641 21.2976 +-97.9242 -9.52684 20.5023 +-97.7272 -9.12988 19.648 +-98.5973 -8.83149 19.0058 +-105.538 -9.04826 19.4723 +-109.157 -8.94126 19.2421 +-120.645 -9.42263 20.278 +-159.046 -11.8178 25.4326 +-165.301 -11.6568 25.086 +-17.9759 -1.19977 2.58197 +-3240.51 -204.083 439.198 +-647.14 -38.3262 82.4799 +-653.759 -36.2695 78.0538 +-659.944 -34.1464 73.4849 +-664.998 -31.9282 68.7111 +-3258.35 -144.316 310.575 +-3261.61 -132.344 284.811 +-3264.23 -120.345 258.988 +-3266.6 -108.336 233.146 +-3268.72 -96.3198 207.285 +-3270.59 -84.296 181.409 +-3272.21 -72.2654 155.519 +-3273.58 -60.2298 129.618 +-3274.7 -48.1892 103.706 +-3275.58 -36.1452 77.7863 +-3276.2 -24.0983 51.8608 +-3276.58 -12.0496 25.9314 +95.2 5.32907e-15 -1.7053e-13 +95.0964 -0.342912 0.755735 +95.8854 -0.691568 1.52413 +95.0674 -1.02863 2.26698 +95.9415 -1.38436 3.05096 +95.8087 -1.72846 3.8093 +95.8684 -2.07602 4.57529 +95.8209 -2.42162 5.33695 +94.9681 -2.74399 6.0474 +95.9034 -3.11874 6.8733 +94.9374 -3.43201 7.56372 +94.9608 -3.77817 8.3266 +96.0708 -4.17224 9.1951 +96.0784 -4.52322 9.9686 +95.9792 -4.86948 10.7317 +95.8727 -5.21537 11.494 +95.8579 -5.56663 12.2681 +95.5389 -5.89983 13.0025 +96.3984 -6.30873 13.9037 +96.1628 -6.64925 14.6541 +96.0188 -6.99576 15.4178 +95.6707 -7.32665 16.147 +95.5123 -7.67134 16.9067 +95.5427 -8.03194 17.7014 +95.1738 -8.35895 18.4221 +95.8723 -8.78231 19.3551 +95.878 -9.14626 20.1572 +95.6812 -9.49161 20.9183 +95.4771 -9.83626 21.6779 +95.9434 -10.2526 22.5954 +95.7232 -10.5982 23.357 +96.363 -11.0423 24.3358 +95.261 -11.2868 24.8748 +95.7861 -11.7238 25.8377 +95.6305 -12.0808 26.6246 +96.1347 -12.5245 27.6025 +95.8665 -12.8707 28.3654 +96.4445 -13.3339 29.3863 +96.1592 -13.6812 30.1516 +96.715 -14.1515 31.1882 +96.4125 -14.4997 31.9556 +96.0089 -14.8323 32.6886 +96.7189 -15.3408 33.8093 +96.3913 -15.689 34.5766 +96.8907 -16.1753 35.6483 +96.5454 -16.524 36.4169 +96.1928 -16.8715 37.1827 +96.8415 -17.399 38.3452 +96.379 -17.7307 39.0762 +96.0919 -18.0947 39.8784 +96.5218 -18.5976 40.9868 +96.0351 -18.9272 41.7132 +96.5305 -19.4539 42.874 +96.0265 -19.7828 43.5987 +96.4069 -20.2971 44.7323 +95.9746 -20.644 45.4967 +96.3296 -21.1638 46.6424 +96.582 -21.6681 47.7537 +96.2082 -22.0356 48.5636 +96.4354 -22.5444 49.685 +96.6484 -23.0565 50.8137 +96.1578 -23.4042 51.5799 +96.4313 -23.9415 52.7641 +96.6041 -24.4611 53.9091 +96.7623 -24.9836 55.0608 +96.231 -25.3316 55.8276 +96.4471 -25.8801 57.0366 +96.6474 -26.4322 58.2532 +96.7487 -26.9645 59.4264 +96.1755 -27.3123 60.193 +96.2504 -27.8477 61.3728 +96.3099 -28.3857 62.5584 +96.5157 -28.9747 63.8567 +96.5432 -29.5182 65.0545 +96.555 -30.0642 66.2576 +96.4718 -30.5873 67.4105 +96.5313 -31.1629 68.6791 +95.8695 -31.5098 69.4436 +96.5215 -32.2964 71.1771 +96.3759 -32.8272 72.3469 +95.4491 -33.0937 72.9344 +95.583 -33.7318 74.3407 +94.0368 -33.777 74.4403 +94.5182 -34.5529 76.1502 +94.0078 -34.9753 77.0812 +94.3715 -35.7317 78.7481 +94.4178 -36.3806 80.1782 +94.6614 -37.1179 81.8031 +93.8738 -37.4578 82.5522 +94.4344 -38.3451 84.5078 +94.328 -38.9763 85.8989 +94.2022 -39.6097 87.2948 +94.6125 -40.4829 89.2192 +94.6488 -41.2121 90.8264 +94.184 -41.7332 91.9747 +94.1097 -42.4369 93.5255 +91.5371 -42.0067 92.5775 +91.2428 -42.6137 93.9153 +88.568 -42.0993 92.7815 +88.3249 -42.7311 94.1739 +85.4265 -42.0666 92.7096 +85.4889 -42.8513 94.4389 +83.1332 -42.4195 93.4873 +83.3547 -43.2996 95.4269 +80.6517 -42.6542 94.0045 +80.9044 -43.5665 96.0152 +78.4767 -43.0315 94.8359 +78.1002 -43.6116 96.1145 +75.7067 -43.0558 94.8896 +75.143 -43.5294 95.9332 +72.3853 -42.7154 94.1393 +71.6504 -43.0769 94.9361 +70.4024 -43.1281 95.049 +70.4272 -43.9661 96.8958 +69.4959 -44.2182 97.4513 +69.634 -45.1644 99.5366 +66.7168 -44.1169 97.2282 +66.7231 -44.99 99.1523 +63.8647 -43.9186 96.7911 +63.8991 -44.8235 98.7854 +61.15 -43.7641 96.4505 +61.6022 -44.9896 99.1514 +59.2922 -44.1983 97.4076 +59.2154 -45.064 99.3154 +56.5713 -43.9624 96.8876 +56.4257 -44.788 98.707 +54.2519 -43.9954 96.9604 +54.1238 -44.8553 98.8555 +51.5524 -43.6744 96.2529 +50.2837 -43.5603 96.0015 +47.7559 -42.317 93.2614 +47.5653 -43.1269 95.0463 +45.4325 -42.1641 92.9245 +45.258 -43.0083 94.7849 +43.6447 -42.4852 93.632 +43.205 -43.0992 94.9853 +41.3566 -42.2955 93.2141 +40.645 -42.6352 93.9626 +39.0979 -42.0861 92.7524 +38.838 -42.922 94.5946 +37.0408 -42.0509 92.675 +36.7188 -42.8451 94.4252 +35.3893 -42.4678 93.5938 +34.6179 -42.7505 94.2167 +33.4356 -42.5199 93.7085 +32.5664 -42.6786 94.0582 +31.2545 -42.241 93.0939 +30.7305 -42.867 94.4735 +29.4656 -42.46 93.5765 +28.9152 -43.0823 94.9479 +27.5383 -42.4666 93.5911 +26.7656 -42.7641 94.2467 +25.6437 -42.498 93.6603 +25.072 -43.1517 95.1009 +23.6873 -42.3947 93.4326 +23.0508 -42.9629 94.6847 +21.7891 -42.3571 93.3497 +21.2127 -43.0819 94.947 +19.9777 -42.467 93.592 +19.317 -43.0657 94.9115 +18.0941 -42.4013 93.4472 +17.495 -43.1984 95.2038 +16.2535 -42.403 93.4508 +15.4165 -42.6232 93.9362 +14.3905 -42.3092 93.2441 +13.7314 -43.0967 94.9798 +12.65 -42.5703 93.8196 +11.9543 -43.3533 95.5453 +10.8919 -42.8195 94.3688 +9.99671 -42.8984 94.5427 +9.04677 -42.7269 94.1648 +8.22251 -43.1699 95.141 +7.16399 -42.3323 93.2951 +6.39789 -43.2228 95.2575 +5.41154 -42.6662 94.0309 +4.5495 -43.0558 94.8896 +3.62257 -42.8641 94.4671 +2.73026 -43.0819 94.947 +1.79236 -42.429 93.5082 +0.910178 -43.0951 94.9762 +4.44089e-15 -42.7249 94.1602 +-0.910178 -43.0951 94.9762 +-1.81156 -42.8835 94.5099 +-2.76429 -43.619 96.1308 +-3.60861 -42.6988 94.1028 +-4.57131 -43.262 95.344 +-5.45864 -43.0377 94.8496 +-6.44673 -43.5525 95.9842 +-7.24072 -42.7856 94.2941 +-8.2539 -43.3347 95.5043 +-9.13392 -43.1385 95.0718 +-10.083 -43.2686 95.3586 +-10.9232 -42.943 94.641 +-12.0901 -43.8459 96.6308 +-12.8328 -43.1856 95.1756 +-13.901 -43.6294 96.1536 +-14.6132 -42.9637 94.6866 +-15.8304 -43.7678 96.4587 +-16.4725 -42.9744 94.7102 +-17.4785 -43.1579 95.1146 +-18.3372 -42.9711 94.703 +-19.4628 -43.3909 95.6282 +-20.2067 -42.9538 94.6647 +-21.4719 -43.6083 96.1072 +-22.205 -43.1653 95.131 +-23.3755 -43.5678 96.0179 +-24.0248 -42.9988 94.764 +-25.3989 -43.7141 96.3403 +-26.1276 -43.3 95.4278 +-27.4667 -43.8843 96.7155 +-27.9525 -43.105 94.998 +-29.3962 -43.7988 96.527 +-29.9893 -43.2145 95.2393 +-31.5541 -44.0161 97.006 +-31.8978 -43.1104 95.0098 +-33.7693 -44.2545 97.5314 +-34.1773 -43.4632 95.7875 +-35.9189 -44.357 97.7572 +-36.2032 -43.4447 95.7466 +-37.7869 -44.0913 97.1717 +-38.3405 -43.5265 95.9269 +-39.9587 -44.1603 97.3238 +-40.6748 -43.7831 96.4924 +-42.4408 -44.519 98.1142 +-42.7426 -43.7132 96.3385 +-44.4678 -44.3591 97.7618 +-45.0122 -43.8165 96.5661 +-47.1321 -44.7896 98.7107 +-47.3441 -43.9384 96.8348 +-49.2656 -44.6681 98.443 +-49.4463 -43.8149 96.5625 +-51.6613 -44.7537 98.6315 +-52.21 -44.2314 97.4804 +-54.213 -44.9293 99.0185 +-54.3427 -44.069 97.1225 +-56.6566 -44.971 99.1105 +-56.7591 -44.1083 97.209 +-59.1677 -45.0276 99.2352 +-59.4861 -44.3429 97.7263 +-61.6022 -44.9896 99.1514 +-62.1 -44.4438 97.9485 +-65.0664 -45.6425 100.59 +-65.8734 -45.2999 99.8353 +-68.4473 -46.1528 101.715 +-68.7305 -45.4487 100.163 +-71.3534 -46.2792 101.994 +-72.2736 -45.9858 101.347 +-74.8427 -46.7226 102.971 +-74.9878 -45.9371 101.24 +-77.6543 -46.6866 102.891 +-77.6049 -45.7953 100.927 +-79.9628 -46.3213 102.086 +-80.6441 -45.8639 101.078 +-82.3235 -45.9701 101.312 +-82.7496 -45.3743 99.9992 +-85.7136 -46.1561 101.722 +-85.7616 -45.3569 99.961 +-88.3971 -45.9189 101.199 +-88.6712 -45.2454 99.7151 +-91.8497 -46.04 101.466 +-92.6257 -45.6119 100.523 +-95.339 -46.1247 101.653 +-96.3095 -45.7788 100.891 +-99.3267 -46.3891 102.236 +-99.4328 -45.6301 100.563 +-102.419 -46.1838 101.783 +-102.777 -45.5408 100.366 +-106.282 -46.2776 101.99 +-107.255 -45.8924 101.141 +-110.463 -46.447 102.363 +-110.662 -45.7255 100.773 +-114.405 -46.4544 102.38 +-114.735 -45.7817 100.897 +-119.106 -46.7031 102.928 +-120.088 -46.2718 101.977 +-123.199 -46.6465 102.803 +-124.105 -46.173 101.76 +-98.7873 -36.1135 79.5896 +-97.1311 -34.8884 76.8897 +-98.7767 -34.8589 76.8246 +-99.0495 -34.342 75.6855 +-99.2309 -33.7996 74.4901 +-99.2415 -33.2065 73.1829 +-99.313 -32.6416 71.938 +-98.8953 -31.9261 70.3611 +-98.6932 -31.2916 68.9627 +-98.7113 -30.7356 67.7373 +-98.7136 -30.1818 66.517 +-98.7001 -29.6305 65.3018 +-98.5894 -29.0575 64.0391 +-99.1993 -28.7009 63.2532 +-99.1424 -28.1549 62.0499 +-99.07 -27.6115 60.8523 +-98.8155 -27.0251 59.56 +-98.7115 -26.4878 58.3757 +-99.4359 -26.1752 57.6869 +-99.3064 -25.6405 56.5084 +-99.0768 -25.0871 55.2889 +-99.0028 -24.58 54.1712 +-98.7427 -24.0333 52.9664 +-99.2465 -23.6763 52.1797 +-98.9594 -23.1345 50.9855 +-99.4443 -22.7768 50.1971 +-98.5154 -22.1019 48.7097 +-98.9784 -21.7458 47.925 +-99.4339 -21.388 47.1366 +-99.0799 -20.8599 45.9725 +-98.8008 -20.3543 44.8583 +-99.2269 -19.9973 44.0715 +-99.6454 -19.6387 43.2813 +-99.2407 -19.1215 42.1414 +-99.6408 -18.7629 41.3512 +-99.211 -18.2517 40.2244 +-99.4093 -17.8603 39.3619 +-98.9543 -17.3559 38.2502 +-98.6703 -16.8877 37.2184 +-99.116 -16.5468 36.467 +-99.3686 -16.1736 35.6446 +-98.9595 -15.6962 34.5925 +-99.2873 -15.3388 33.8048 +-98.7617 -14.853 32.7342 +-99.0716 -14.4963 31.9481 +-98.6176 -14.0309 30.9224 +-98.9102 -13.6748 30.1376 +-99.1952 -13.3176 29.3504 +-99.568 -12.9719 28.5884 +-98.8819 -12.4915 27.5298 +-99.142 -12.1345 26.743 +-99.3945 -11.7766 25.9541 +-99.543 -11.4067 25.1389 +-99.2006 -10.9831 24.2055 +-98.4606 -10.5216 23.1882 +-98.388 -10.1362 22.3388 +-98.2094 -9.74242 21.4711 +-98.4114 -9.38794 20.6898 +-99.2893 -9.09531 20.0449 +-101.63 -8.92594 19.6717 +-110.144 -9.25939 20.4065 +-114.654 -9.20878 20.295 +-154.764 -11.8522 26.1207 +-163.478 -11.9107 26.2498 +-166.288 -11.4981 25.3404 +-167.808 -10.9821 24.2032 +-642.366 -39.6681 87.4235 +-647.338 -37.5919 82.8478 +-653.858 -35.5691 78.3897 +-659.944 -33.482 73.79 +-664.998 -31.3069 68.9964 +-669.413 -29.072 64.0709 +-673.585 -26.7996 59.063 +-3263.83 -117.988 260.032 +-3266.6 -106.228 234.114 +-3268.72 -94.4455 208.146 +-3270.59 -82.6557 182.163 +-3272.21 -70.8592 156.165 +-3273.58 -59.0578 130.156 +-3274.7 -47.2515 104.136 +-3275.58 -35.4418 78.1093 +-3276.2 -23.6294 52.0762 +-3276.58 -11.8151 26.039 +94.3 1.77636e-15 -2.27374e-13 +95.1964 -0.336432 0.759596 +95.0855 -0.67213 1.51753 +95.0674 -1.00813 2.27616 +95.9415 -1.35678 3.06333 +95.9086 -1.69578 3.82873 +95.8684 -2.03465 4.59383 +95.2221 -2.35853 5.3251 +95.9657 -2.71755 6.13569 +95.3053 -3.03752 6.85812 +95.2362 -3.37421 7.61829 +95.2594 -3.71453 8.38665 +96.0708 -4.0891 9.23237 +96.0784 -4.43308 10.009 +95.9792 -4.77244 10.7752 +95.8727 -5.11144 11.5406 +95.7589 -5.45003 12.3051 +95.6378 -5.78826 13.0687 +96.3984 -6.18302 13.96 +96.1628 -6.51675 14.7135 +95.8218 -6.84231 15.4485 +95.5724 -7.17329 16.1958 +95.5123 -7.51848 16.9752 +95.3467 -7.85573 17.7367 +95.9563 -8.25973 18.6488 +95.8723 -8.60731 19.4336 +95.5857 -8.93667 20.1772 +95.4867 -9.28356 20.9604 +95.283 -9.62066 21.7215 +95.8466 -10.0381 22.6641 +95.7232 -10.387 23.4517 +95.3994 -10.714 24.1901 +96.03 -11.1512 25.1772 +95.882 -11.5016 25.9684 +95.6305 -11.8401 26.7325 +96.0393 -12.2628 27.687 +96.7224 -12.7269 28.7347 +96.4445 -13.0682 29.5054 +96.0647 -13.3953 30.244 +95.7724 -13.7343 31.0094 +96.4125 -14.2108 32.0851 +96.0089 -14.5368 32.8211 +96.7189 -15.0351 33.9463 +96.3913 -15.3764 34.7167 +96.8907 -15.853 35.7928 +96.5454 -16.1948 36.5645 +96.2848 -16.5512 37.3692 +95.9245 -16.8908 38.136 +96.4704 -17.3939 39.2718 +96.0919 -17.7341 40.04 +96.6124 -18.2442 41.1916 +96.8474 -18.7069 42.2365 +96.4406 -19.0485 43.0076 +96.116 -19.4066 43.8162 +96.4069 -19.8927 44.9136 +96.7729 -20.4009 46.0611 +96.2413 -20.7231 46.7885 +96.582 -21.2363 47.9473 +96.1207 -21.5768 48.7161 +96.4354 -22.0952 49.8864 +96.6484 -22.5971 51.0197 +96.8471 -23.1022 52.1602 +97.2028 -23.6522 53.4018 +96.5189 -23.9524 54.0798 +96.8471 -24.5072 55.3324 +96.3153 -24.8486 56.103 +96.3632 -25.3424 57.218 +96.6474 -25.9055 58.4893 +96.8316 -26.4498 59.7184 +96.1755 -26.7681 60.437 +96.2504 -27.2928 61.6216 +96.3099 -27.82 62.812 +96.4348 -28.3735 64.0617 +96.5432 -28.93 65.3182 +95.9161 -29.2701 66.0861 +95.9164 -29.8052 67.2942 +96.5313 -30.5419 68.9575 +95.8695 -30.8819 69.7251 +95.8998 -31.4489 71.0053 +96.5302 -32.2245 72.7565 +96.9046 -32.9288 74.3467 +96.4955 -33.3753 75.3546 +95.0179 -33.4493 75.5218 +94.7429 -33.9448 76.6406 +94.8996 -34.6035 78.1278 +94.519 -35.0744 79.1909 +95.0028 -35.8766 81.0021 +94.1536 -36.1831 81.6941 +93.8738 -36.7113 82.8868 +94.5057 -37.6094 84.9144 +94.2573 -38.171 86.1824 +94.6928 -39.0226 88.1051 +93.9873 -39.414 88.9889 +93.8227 -40.0384 90.3986 +94.0476 -40.8424 92.214 +94.2448 -41.6508 94.039 +94.2136 -42.3736 95.6711 +92.8331 -42.4927 95.9399 +91.2578 -42.5133 95.9865 +90.0784 -42.711 96.4327 +87.612 -42.2833 95.4672 +88.224 -43.3411 97.8554 +84.9583 -42.487 95.9271 +85.2223 -43.3877 97.9606 +82.7449 -42.8895 96.836 +83.0351 -43.8226 98.9426 +80.5229 -43.2735 97.7027 +80.1226 -43.8497 99.0038 +77.8815 -43.4103 98.0118 +77.3496 -43.9145 99.1501 +75.6547 -43.755 98.7899 +74.709 -44.0206 99.3897 +71.8004 -43.1078 97.3288 +71.2551 -43.5966 98.4324 +70.4763 -43.9485 99.2269 +70.6012 -44.8791 101.328 +68.6245 -44.4742 100.414 +68.6041 -45.3368 102.361 +66.2854 -44.6746 100.866 +65.777 -45.2213 102.101 +63.45 -44.5054 100.484 +62.9317 -45.0448 101.702 +60.9891 -44.5572 100.601 +60.5514 -45.1626 101.968 +58.6839 -44.6953 100.913 +58.1342 -45.2246 102.108 +55.8862 -44.4179 100.287 +55.7747 -45.3023 102.284 +53.3936 -44.3328 100.095 +52.3071 -44.4102 100.269 +49.4463 -42.9418 96.9539 +48.6435 -43.2253 97.5939 +46.9781 -42.73 96.4757 +46.4144 -43.2285 97.6013 +44.5043 -42.4591 95.864 +44.5826 -43.5873 98.4114 +42.5178 -42.6166 96.2197 +42.1476 -43.3306 97.8317 +40.6748 -42.9106 96.8835 +39.8536 -43.1665 97.4614 +38.4089 -42.7349 96.4867 +37.7869 -43.2127 97.5656 +36.2683 -42.6555 96.3075 +35.9189 -43.4731 98.1535 +34.3936 -42.8669 96.7848 +33.5888 -43.141 97.4038 +32.3363 -42.832 96.7061 +31.4973 -43.0613 97.2236 +30.3201 -42.8207 96.6805 +29.7704 -43.4723 98.1517 +28.3407 -42.8329 96.708 +27.692 -43.3626 97.9039 +26.3937 -42.8693 96.7902 +25.8191 -43.5517 98.3309 +24.4747 -42.9309 96.9292 +23.7434 -43.3719 97.9249 +22.5168 -42.8993 96.8579 +21.751 -43.2949 97.7512 +20.5692 -42.8531 96.7537 +19.809 -43.2828 97.7238 +18.563 -42.6332 96.2572 +17.9407 -43.416 98.0246 +16.7072 -42.7178 96.4483 +16.126 -43.6966 98.6582 +14.9472 -43.0702 97.2438 +14.0577 -43.2419 97.6314 +12.9791 -42.8073 96.6503 +12.158 -43.2139 97.5683 +11.08 -42.6911 96.3879 +10.2938 -43.2933 97.7475 +9.23851 -42.7632 96.5507 +8.42651 -43.3593 97.8966 +7.36628 -42.6603 96.3184 +6.55661 -43.4124 98.0164 +5.57378 -43.0698 97.2428 +4.67164 -43.3306 97.8317 +3.70633 -42.9811 97.0426 +2.8114 -43.4784 98.1654 +1.85868 -43.1224 97.3617 +0.942466 -43.7347 98.7442 +1.06581e-14 -43.1289 97.3763 +-0.93723 -43.4917 98.1956 +-1.84996 -42.9199 96.9045 +-2.83496 -43.8428 98.9883 +-3.7168 -43.1026 97.3169 +-4.71089 -43.6946 98.6536 +-5.62088 -43.4338 98.0648 +-6.61156 -43.776 98.8374 +-7.42906 -43.024 97.1395 +-8.55989 -44.0457 99.4464 +-9.38667 -43.4488 98.0987 +-10.4855 -44.0992 99.5671 +-11.2577 -43.3759 97.9341 +-12.4524 -44.26 99.9301 +-13.1863 -43.4905 98.1928 +-14.3579 -44.1652 99.7161 +-15.0307 -43.3107 97.7869 +-16.259 -44.0571 99.472 +-16.8949 -43.1977 97.5318 +-18.2543 -44.1749 99.738 +-18.8929 -43.3909 97.9679 +-20.0459 -43.8003 98.8923 +-20.8745 -43.4893 98.1901 +-22.1498 -44.0887 99.5433 +-22.8079 -43.4541 98.1105 +-24.0464 -43.925 99.1739 +-24.8121 -43.5229 98.266 +-26.1459 -44.1028 99.5753 +-26.8775 -43.6553 98.565 +-28.2679 -44.2644 99.9401 +-28.8324 -43.576 98.3858 +-30.2514 -44.1749 99.738 +-31.0368 -43.8327 98.9654 +-32.3209 -44.1875 99.7664 +-33.0965 -43.8392 98.9801 +-34.6714 -44.5317 100.544 +-35.197 -43.8679 99.045 +-36.6804 -44.3948 100.235 +-37.4403 -44.034 99.4199 +-39.0554 -44.6633 100.841 +-39.5033 -43.9526 99.2361 +-41.3945 -44.8358 101.23 +-41.714 -44.0073 99.3595 +-43.8702 -45.1015 101.83 +-44.1661 -44.2689 99.9502 +-46.1516 -45.1213 101.875 +-46.4189 -44.2855 99.9877 +-48.5676 -45.2339 102.129 +-48.6864 -44.2834 99.9831 +-50.634 -44.9942 101.588 +-51.0945 -44.3733 100.186 +-52.9529 -44.9585 101.507 +-53.6566 -44.5511 100.587 +-55.4624 -45.0484 101.71 +-56.0678 -44.5621 100.612 +-58.2265 -45.2963 102.27 +-58.637 -44.6597 100.833 +-60.5992 -45.1983 102.049 +-61.4254 -44.8759 101.321 +-63.1287 -45.1861 102.021 +-64.25 -45.0662 101.75 +-66.792 -45.9191 103.676 +-67.779 -45.6814 103.139 +-69.5446 -45.958 103.764 +-70.9032 -45.9511 103.748 +-72.5354 -46.1086 104.104 +-73.5263 -45.8507 103.522 +-75.505 -46.1969 104.303 +-76.4976 -45.928 103.696 +-78.3906 -46.19 104.288 +-79.0388 -45.7122 103.209 +-81.2403 -46.1236 104.138 +-81.7022 -45.5396 102.819 +-83.9295 -45.9329 103.707 +-84.9161 -45.6344 103.033 +-87.1746 -46.0074 103.875 +-87.978 -45.602 102.96 +-89.8911 -45.7648 103.328 +-91.1885 -45.6024 102.961 +-93.3127 -45.8409 103.5 +-95.1326 -45.913 103.662 +-97.4822 -46.2216 104.359 +-98.8681 -46.0588 103.992 +-101.646 -46.5265 105.048 +-102.377 -46.045 103.96 +-105.189 -46.4877 104.96 +-105.573 -45.8478 103.515 +-109.173 -46.5889 105.188 +-109.061 -45.7352 103.261 +-113.127 -46.6193 105.257 +-113.632 -46.0171 103.897 +-118.257 -47.0615 106.255 +-118.331 -46.2759 104.482 +-122.806 -47.1939 106.554 +-122.941 -46.4269 104.823 +-115.089 -42.7077 96.4254 +-101.439 -36.9881 83.5117 +-98.4877 -35.2865 79.6698 +-98.716 -34.7511 78.4611 +-98.7767 -34.1643 77.136 +-99.1262 -33.6837 76.0511 +-99.2309 -33.1261 74.7921 +-98.5421 -32.3154 72.9617 +-98.6086 -31.7642 71.7173 +-98.8953 -31.2899 70.6463 +-98.7725 -30.6927 69.2979 +-98.6315 -30.0988 67.957 +-98.794 -29.6045 66.841 +-98.6192 -29.0162 65.5128 +-99.2407 -28.6666 64.7234 +-98.544 -27.9431 63.09 +-98.7303 -27.4792 62.0424 +-98.7384 -26.9707 60.8944 +-98.5653 -26.4196 59.6501 +-98.6277 -25.9379 58.5626 +-98.6768 -25.4578 57.4786 +-99.3064 -25.1296 56.7375 +-99.1621 -24.6084 55.5608 +-99.0028 -24.0902 54.3908 +-99.5182 -23.7394 53.5988 +-99.2465 -23.2046 52.3912 +-99.1335 -22.7133 51.2821 +-99.4443 -22.3229 50.4006 +-99.3063 -21.8353 49.2998 +-98.9784 -21.3125 48.1193 +-99.4339 -20.9619 47.3276 +-99.0799 -20.4442 46.1588 +-99.5167 -20.0933 45.3666 +-99.2269 -19.5988 44.2502 +-98.8331 -19.0905 43.1025 +-99.2407 -18.7405 42.3123 +-99.4588 -18.3555 41.443 +-99.211 -17.888 40.3875 +-99.5927 -17.5367 39.5943 +-99.1384 -17.0417 38.4766 +-99.5018 -16.6907 37.6842 +-99.0232 -16.2019 36.5806 +-99.3686 -15.8513 35.789 +-98.9595 -15.3834 34.7327 +-99.2873 -15.0331 33.9418 +-98.7617 -14.557 32.8668 +-99.0716 -14.2075 32.0776 +-98.6176 -13.7514 31.0478 +-98.9102 -13.4023 30.2597 +-98.3392 -12.9396 29.2151 +-99.4727 -12.7012 28.6767 +-98.8819 -12.2426 27.6413 +-99.142 -11.8927 26.8514 +-99.3945 -11.5419 26.0593 +-98.5794 -11.0712 24.9965 +-98.7176 -10.7119 24.1853 +-98.8479 -10.3525 23.3738 +-99.3583 -10.0321 22.6506 +-99.6679 -9.69007 21.8782 +-98.8011 -9.23728 20.8559 +-101.73 -9.1332 20.6209 +-106.129 -9.13539 20.6259 +-113.671 -9.36553 21.1455 +-119.759 -9.42708 21.2845 +-163.417 -12.2654 27.6928 +-163.084 -11.6452 26.2926 +-166.978 -11.3158 25.5488 +-171.166 -10.9787 24.7876 +-642.663 -38.8956 87.8185 +-648.13 -36.8879 83.2854 +-380.021 -20.2607 45.7447 +-3252.08 -161.705 365.097 +-3255.44 -150.206 339.135 +-669.711 -28.5054 64.3594 +-675.177 -26.3277 59.4427 +-683.688 -24.223 54.6908 +-3266.2 -104.099 235.034 +-3268.72 -92.5635 208.99 +-3270.59 -81.0086 182.901 +-3272.21 -69.4472 156.798 +-3273.58 -57.881 130.684 +-3274.7 -46.3099 104.558 +-3275.58 -34.7356 78.4259 +-3276.2 -23.1585 52.2872 +-3276.58 -11.5797 26.1446 +94.5 1.77636e-15 -1.7053e-13 +95.1964 -0.329564 0.7626 +95.0855 -0.65841 1.52354 +95.0674 -0.987555 2.28517 +95.9415 -1.32908 3.07545 +95.9086 -1.66116 3.84387 +95.1694 -1.97859 4.57838 +95.4217 -2.31523 5.35737 +96.2649 -2.67038 6.17917 +96.3022 -3.00664 6.95727 +96.2324 -3.33991 7.72843 +96.1553 -3.67292 8.49901 +96.1703 -4.0098 9.27853 +95.2835 -4.30665 9.96543 +95.9792 -4.67502 10.8178 +95.8727 -5.0071 11.5863 +95.7589 -5.33878 12.3538 +95.5389 -5.66423 13.1068 +96.2996 -6.05062 14.0009 +95.1766 -6.31827 14.6203 +95.8218 -6.70263 15.5097 +95.6707 -7.03407 16.2766 +95.5123 -7.365 17.0424 +95.5427 -7.7112 17.8435 +95.1738 -8.02515 18.5699 +95.8723 -8.43161 19.5104 +95.6831 -8.76317 20.2777 +95.6812 -9.11258 21.0862 +95.4771 -9.44347 21.8519 +95.9434 -9.84318 22.7768 +95.7232 -10.1749 23.5445 +96.363 -10.6013 24.5311 +96.1262 -10.9345 25.3021 +95.7861 -11.2556 26.045 +95.6305 -11.5984 26.8382 +96.1347 -12.0244 27.824 +95.8665 -12.3567 28.5931 +96.4445 -12.8014 29.6221 +96.1592 -13.1348 30.3936 +95.7724 -13.454 31.132 +96.4125 -13.9207 32.212 +96.0089 -14.24 32.951 +96.7189 -14.7282 34.0806 +97.2286 -15.1933 35.1569 +96.8907 -15.5294 35.9344 +96.5454 -15.8642 36.7091 +96.2848 -16.2133 37.517 +96.7498 -16.6883 38.6163 +96.379 -17.0226 39.3898 +96.0919 -17.3721 40.1984 +96.6124 -17.8717 41.3546 +96.1253 -18.1884 42.0874 +96.5305 -18.677 43.218 +96.116 -19.0105 43.9896 +96.4069 -19.4866 45.0913 +96.7729 -19.9844 46.2433 +96.2413 -20.3001 46.9736 +96.582 -20.8028 48.1369 +96.9079 -21.3095 49.3094 +96.4354 -21.6441 50.0837 +96.6484 -22.1358 51.2215 +96.0717 -22.4494 51.9472 +96.4313 -22.9855 53.1876 +96.6041 -23.4842 54.3417 +96.7623 -23.9859 55.5027 +96.3153 -24.3413 56.325 +96.4471 -24.8467 57.4943 +96.6474 -25.3767 58.7207 +96.0026 -25.6881 59.4413 +96.8348 -26.4014 61.092 +96.2504 -26.7356 61.8653 +96.3099 -27.2521 63.0605 +96.4348 -27.7943 64.3152 +96.5432 -28.3395 65.5766 +96.555 -28.8636 66.7894 +96.4718 -29.3658 67.9515 +95.9797 -29.7475 68.8348 +95.8695 -30.2515 70.0009 +95.8998 -30.8069 71.2861 +96.5302 -31.5667 73.0443 +96.5216 -32.1292 74.3458 +96.4195 -32.6682 75.5931 +96.15 -33.1569 76.7239 +95.5667 -33.541 77.6128 +94.528 -33.7644 78.1297 +94.5927 -34.3852 79.5661 +94.3446 -34.9007 80.7591 +94.1536 -35.4445 82.0172 +94.6651 -36.2651 83.9161 +94.4344 -36.8139 85.186 +94.3988 -37.4479 86.6532 +94.062 -37.9713 87.8644 +94.543 -38.8377 89.8691 +94.1669 -39.365 91.0891 +94.2522 -40.0956 92.7798 +94.4475 -40.8882 94.6139 +94.2136 -41.5086 96.0496 +93.827 -42.0708 97.3503 +93.1604 -42.5139 98.3756 +92.0268 -42.7444 98.909 +90.1188 -42.6051 98.5868 +89.1782 -42.9157 99.3055 +86.9091 -42.5754 98.5179 +86.7163 -43.247 100.072 +84.6535 -42.9828 99.4606 +83.3394 -43.0855 99.6984 +81.7265 -43.024 99.5561 +81.3718 -43.6242 100.945 +79.1747 -43.2303 100.033 +78.7433 -43.7932 101.336 +76.7445 -43.4794 100.61 +75.7852 -43.7432 101.22 +74.3167 -43.7079 101.139 +72.9661 -43.7321 101.195 +70.8031 -43.2509 100.081 +70.1176 -43.6619 101.032 +69.8434 -44.3403 102.602 +69.5446 -45.0198 104.174 +67.6245 -44.6469 103.311 +66.7413 -44.9476 104.007 +65.3 -44.8679 103.823 +64.7537 -45.403 105.061 +62.4435 -44.6886 103.408 +61.9352 -45.2515 104.71 +59.9985 -44.764 103.582 +59.3809 -45.2515 104.71 +57.4752 -44.7481 103.546 +57.0241 -45.3717 104.989 +55.1033 -44.8183 103.708 +53.082 -44.1483 102.158 +50.4606 -42.928 99.334 +49.6388 -43.2093 99.9848 +47.9543 -42.7273 98.8695 +47.3714 -43.2192 100.008 +45.8328 -42.8336 99.1155 +45.0036 -43.1006 99.7333 +43.7915 -42.9974 99.4946 +42.7707 -43.0736 99.6709 +41.284 -42.6642 98.7235 +40.449 -42.9173 99.3092 +39.3323 -42.8693 99.1981 +38.2876 -42.8915 99.2495 +37.0497 -42.6848 98.7713 +36.49 -43.2628 100.109 +35.2588 -43.0482 99.6121 +34.3105 -43.1684 99.8902 +33.0965 -42.9443 99.3716 +32.1505 -43.057 99.6323 +31.0368 -42.9379 99.3569 +30.0109 -42.9292 99.3367 +28.8324 -42.6864 98.7749 +28.1177 -43.1303 99.8021 +26.9501 -42.8796 99.222 +26.1459 -43.2025 99.9692 +24.9921 -42.9439 99.3707 +24.2412 -43.3771 100.373 +22.9327 -42.7999 99.0375 +22.2096 -43.3053 100.207 +21.1035 -43.0689 99.6598 +20.2099 -43.2573 100.096 +19.0492 -42.8566 99.1687 +18.1552 -43.0383 99.5892 +17.1296 -42.9038 99.278 +16.3182 -43.3144 100.228 +15.142 -42.7408 98.9007 +14.397 -43.3815 100.383 +13.2594 -42.8392 99.1284 +12.3844 -43.12 99.7783 +11.4041 -43.0427 99.5993 +10.543 -43.4362 100.51 +9.48254 -42.9967 99.4928 +8.58343 -43.2652 100.114 +7.5895 -43.0558 99.6296 +6.67871 -43.318 100.236 +5.65228 -42.7848 99.0026 +4.7327 -43.001 99.5029 +3.79707 -43.1347 99.8122 +2.87161 -43.5028 100.664 +1.89882 -43.1541 99.8572 +0.959919 -43.6353 100.971 +1.24345e-14 -43.1609 99.8728 +-0.954683 -43.3973 100.42 +-1.90406 -43.2732 100.133 +-2.86376 -43.3842 100.39 +-3.7866 -43.0157 99.5368 +-4.8243 -43.8333 101.429 +-5.70985 -43.2204 100.011 +-6.69702 -43.4366 100.511 +-7.65229 -43.412 100.454 +-8.66188 -43.6607 101.029 +-9.61328 -43.5893 100.864 +-10.6485 -43.8706 101.515 +-11.5295 -43.5163 100.695 +-12.5542 -43.7111 101.146 +-13.4422 -43.4299 100.495 +-14.5406 -43.8143 101.385 +-15.4621 -43.6445 100.992 +-16.5547 -43.9424 101.681 +-17.3799 -43.5306 100.728 +-18.4358 -43.7036 101.129 +-19.2923 -43.4037 100.435 +-20.465 -43.8035 101.36 +-21.3134 -43.4973 100.651 +-22.5685 -44.0047 101.825 +-23.2237 -43.343 100.294 +-24.501 -43.842 101.449 +-25.3295 -43.5235 100.712 +-26.7061 -44.1284 102.112 +-27.313 -43.4568 100.558 +-28.7436 -44.0904 102.024 +-29.4536 -43.606 100.903 +-30.7859 -44.0376 101.901 +-31.6156 -43.7389 101.21 +-33.0878 -44.3121 102.537 +-34.0321 -44.1582 102.181 +-35.3029 -44.4168 102.779 +-36.1241 -44.1046 102.057 +-37.4102 -44.3538 102.633 +-38.2217 -44.0352 101.896 +-39.7564 -44.537 103.057 +-40.9398 -44.6211 103.252 +-42.0249 -44.5894 103.178 +-42.7891 -44.2201 102.324 +-44.3466 -44.6608 103.344 +-45.4023 -44.5791 103.154 +-46.6491 -44.6767 103.38 +-47.8255 -44.6961 103.425 +-49.1259 -44.8199 103.712 +-50.1506 -44.6842 103.398 +-51.2976 -44.6533 103.326 +-52.4469 -44.618 103.244 +-53.9 -44.8286 103.732 +-54.8402 -44.6045 103.213 +-56.2655 -44.7679 103.591 +-57.6114 -44.8544 103.792 +-58.8268 -44.829 103.733 +-59.8107 -44.6239 103.258 +-61.7443 -45.1123 104.388 +-62.5889 -44.7925 103.648 +-64.8029 -45.4375 105.141 +-65.65 -45.1083 104.379 +-67.7564 -45.6311 105.589 +-69.3241 -45.7692 105.908 +-70.3283 -45.5272 105.348 +-71.5391 -45.4165 105.092 +-73.2877 -45.6359 105.6 +-74.5066 -45.5133 105.316 +-76.2777 -45.7168 105.787 +-77.3923 -45.5169 105.325 +-78.9004 -45.5415 105.381 +-80.4154 -45.5589 105.422 +-81.4146 -45.2789 104.774 +-83.2304 -45.4447 105.157 +-85.1191 -45.6331 105.593 +-85.8188 -45.1781 104.541 +-88.6357 -45.8235 106.034 +-89.2709 -45.3277 104.887 +-92.3189 -46.0413 106.538 +-93.1394 -45.6276 105.581 +-96.6203 -46.4971 107.593 +-97.2538 -45.9786 106.393 +-100.275 -46.5753 107.774 +-101.099 -46.1365 106.758 +-103.899 -46.5868 107.8 +-104.719 -46.1369 106.759 +-107.622 -46.5915 107.811 +-108.642 -46.2175 106.946 +-111.169 -46.4725 107.536 +-112.535 -46.2286 106.971 +-115.72 -46.7145 108.096 +-116.319 -46.1437 106.775 +-120.254 -46.8792 108.477 +-121.784 -46.6542 107.956 +-125.345 -47.1866 109.188 +-125.793 -46.5344 107.679 +-98.7952 -35.9128 83.1011 +-98.0208 -35.012 81.0166 +-98.3379 -34.5136 79.8634 +-98.6405 -34.0157 78.7112 +-98.8528 -33.4926 77.5007 +-99.1262 -32.9961 76.3519 +-99.1538 -32.4247 75.0295 +-98.4644 -31.6308 73.1925 +-99.313 -31.3381 72.5153 +-98.8953 -30.6512 70.9258 +-98.7725 -30.0662 69.5721 +-98.7113 -29.5082 68.281 +-98.7136 -28.9766 67.0508 +-98.6192 -28.4239 65.7719 +-98.5894 -27.8971 64.553 +-99.0355 -27.5093 63.6555 +-98.8127 -26.9407 62.3398 +-98.6555 -26.398 61.084 +-98.8989 -25.9678 60.0886 +-98.7954 -25.4516 58.8942 +-98.7611 -24.9594 57.7553 +-99.3064 -24.6166 56.9619 +-99.1621 -24.1061 55.7806 +-99.0028 -23.5984 54.6059 +-99.5182 -23.2548 53.8108 +-99.2465 -22.7309 52.5985 +-98.9594 -22.2106 51.3947 +-98.832 -21.7326 50.2884 +-99.3063 -21.3896 49.4948 +-99.7731 -21.045 48.6974 +-99.4339 -20.534 47.5149 +-99.0799 -20.0269 46.3414 +-98.8008 -19.5415 45.2183 +-99.2269 -19.1987 44.4252 +-99.6454 -18.8545 43.6286 +-99.0594 -18.3244 42.4021 +-99.4588 -17.9808 41.6069 +-99.0283 -17.4906 40.4726 +-99.5927 -17.1787 39.7509 +-99.2304 -16.7093 38.6647 +-98.6703 -16.2133 37.5171 +-99.0232 -15.8711 36.7253 +-99.3686 -15.5277 35.9306 +-98.8662 -15.0552 34.8373 +-99.2873 -14.7263 34.0761 +-98.7617 -14.2599 32.9969 +-99.0716 -13.9174 32.2045 +-99.374 -13.5739 31.4096 +-98.9102 -13.1287 30.3794 +-99.1952 -12.7858 29.5859 +-99.4727 -12.4419 28.7902 +-98.8819 -11.9927 27.7507 +-99.142 -11.6499 26.9576 +-98.4332 -11.197 25.9094 +-98.5794 -10.8452 25.0953 +-98.8142 -10.5035 24.3047 +-98.0734 -10.0617 23.2824 +-98.8731 -9.77935 22.6291 +-99.3762 -9.46449 21.9005 +-99.0934 -9.07549 21.0004 +-104.561 -9.19577 21.2787 +-109.553 -9.23758 21.3754 +-117.297 -9.46695 21.9062 +-128.986 -9.94616 23.0151 +-163.22 -12.0006 27.769 +-164.857 -11.5315 26.6836 +-167.866 -11.1437 25.7862 +-3236.16 -203.331 470.502 +-642.069 -38.0664 88.0844 +-3244.61 -180.895 418.585 +-380.913 -19.8938 46.0335 +-378.557 -18.439 42.6672 +-3255.44 -147.14 340.476 +-670.606 -27.9608 64.7002 +-675.078 -25.7865 59.669 +-680.999 -23.6352 54.6911 +-685.281 -21.3951 49.5075 +-3268.32 -90.6629 209.791 +-3270.59 -79.3549 183.625 +-3272.21 -68.0296 157.418 +-3273.58 -56.6994 131.201 +-3274.7 -45.3646 104.972 +-3275.58 -34.0265 78.7361 +-3276.2 -22.6858 52.4941 +-3276.58 -11.3433 26.248 +94.5 1.77636e-15 -1.7053e-13 +95.1964 -0.32267 0.765543 +95.1855 -0.645315 1.53103 +95.0674 -0.966895 2.29399 +95.0421 -1.28908 3.05837 +95.1094 -1.61286 3.82655 +95.1694 -1.93719 4.59605 +95.5215 -2.26917 5.38367 +95.3671 -2.59013 6.14516 +95.405 -2.91632 6.91905 +96.2324 -3.27004 7.75825 +95.359 -3.5663 8.46115 +96.2697 -3.92999 9.32401 +96.1778 -4.25613 10.0978 +95.9792 -4.57722 10.8596 +95.8727 -4.90235 11.631 +95.7589 -5.22709 12.4014 +95.5389 -5.54574 13.1574 +96.3984 -5.9301 14.0693 +96.1628 -6.25018 14.8287 +95.8218 -6.56241 15.5695 +95.6707 -6.88692 16.3394 +95.4142 -7.20351 17.0905 +95.3467 -7.53438 17.8755 +95.9563 -7.92185 18.7948 +95.1889 -8.19637 19.4461 +95.6831 -8.57984 20.3559 +94.8061 -8.84034 20.974 +96.3504 -9.33046 22.1368 +95.9434 -9.63726 22.8647 +95.7232 -9.96208 23.6353 +96.363 -10.3795 24.6257 +96.3184 -10.7272 25.4506 +95.882 -11.0312 26.1717 +95.5348 -11.3444 26.9148 +96.23 -11.7845 27.9591 +96.7224 -12.2063 28.9597 +96.5393 -12.546 29.7656 +96.1592 -12.8601 30.5108 +96.715 -13.3022 31.5598 +96.3185 -13.6162 32.3048 +96.0089 -13.9421 33.0781 +96.7189 -14.4201 34.2121 +96.3913 -14.7474 34.9885 +96.0562 -15.0735 35.7623 +96.5454 -15.5323 36.8508 +96.2848 -15.8741 37.6618 +96.7498 -16.3392 38.7653 +96.4704 -16.6823 39.5793 +96.0919 -17.0087 40.3536 +96.4311 -17.465 41.4363 +96.1253 -17.8079 42.2498 +96.5305 -18.2863 43.3848 +96.8319 -18.7514 44.4883 +96.4069 -19.0789 45.2653 +95.9746 -19.4049 46.0388 +96.3296 -19.8936 47.1981 +96.6699 -20.3862 48.3667 +96.9079 -20.8637 49.4996 +96.4354 -21.1913 50.277 +96.6484 -21.6727 51.4192 +96.1578 -21.9995 52.1944 +96.4313 -22.5046 53.3928 +96.6041 -22.9929 54.5514 +96.8471 -23.5047 55.7657 +96.231 -23.8112 56.4928 +96.4471 -24.3269 57.7162 +96.6474 -24.8458 58.9473 +96.8316 -25.3679 60.186 +96.7524 -25.8271 61.2755 +96.2504 -26.1763 62.1041 +96.3913 -26.7045 63.3573 +96.4348 -27.2129 64.5633 +95.8197 -27.5387 65.3364 +95.9161 -28.0728 66.6035 +96.4718 -28.7515 68.2137 +95.9797 -29.1252 69.1004 +96.5738 -29.8363 70.7874 +95.8998 -30.1624 71.5612 +95.8358 -30.684 72.7986 +95.8322 -31.2323 74.0996 +96.4195 -31.9848 75.8848 +96.0745 -32.4378 76.9595 +95.9412 -32.968 78.2176 +94.751 -33.1361 78.6162 +94.3715 -33.5871 79.6864 +94.2715 -34.1441 81.0079 +94.2987 -34.7564 82.4606 +94.0177 -35.2636 83.6638 +94.577 -36.0982 85.6439 +94.2573 -36.6096 86.8572 +94.062 -37.177 88.2034 +94.4041 -37.9694 90.0834 +94.1669 -38.5414 91.4406 +94.0476 -39.1717 92.936 +93.9746 -39.8324 94.5035 +94.2805 -40.669 96.4884 +94.3571 -41.4233 98.2779 +93.8164 -41.9173 99.45 +92.8061 -42.2044 100.131 +90.8902 -42.0711 99.815 +89.7506 -42.2875 100.328 +88.2307 -42.3185 100.402 +87.2766 -42.6161 101.108 +85.3922 -42.451 100.716 +84.2526 -42.6464 101.18 +83.1708 -42.8681 101.706 +82.2045 -43.1486 102.371 +80.409 -42.9858 101.985 +79.4402 -43.2565 102.627 +77.777 -43.1423 102.356 +76.5781 -43.2763 102.674 +75.3233 -43.3731 102.904 +74.6771 -43.8213 103.967 +70.9665 -42.444 100.7 +71.031 -43.3051 102.743 +70.5323 -43.8407 104.013 +70.3283 -44.5748 105.755 +68.6546 -44.3786 105.29 +67.6549 -44.6097 105.838 +66.2 -44.5348 105.66 +65.2461 -44.7911 106.268 +63.8009 -44.7049 106.064 +62.7464 -44.8851 106.491 +60.8905 -44.4788 105.527 +59.7964 -44.6148 105.85 +57.9292 -44.158 104.766 +57.8719 -45.0828 106.96 +55.5855 -44.2648 105.02 +53.5986 -43.6453 103.55 +51.6017 -42.9804 101.972 +50.2608 -42.8355 101.628 +48.6864 -42.472 100.766 +47.7303 -42.6355 101.154 +46.6533 -42.6883 101.279 +45.5776 -42.7372 101.395 +44.1287 -42.4219 100.647 +43.4304 -42.8227 101.598 +41.9291 -42.4246 100.654 +40.9743 -42.5652 100.987 +40.0164 -42.7023 101.312 +39.1555 -42.9462 101.891 +37.6031 -42.416 100.633 +37.0295 -42.9839 101.98 +35.6915 -42.6646 101.223 +34.7315 -42.7838 101.506 +33.6227 -42.7143 101.341 +32.5766 -42.7151 101.343 +31.3675 -42.4879 100.804 +30.4919 -42.7046 101.318 +29.2207 -42.3562 100.491 +28.4181 -42.6794 101.258 +27.2404 -42.4347 100.677 +26.496 -42.8654 101.699 +25.3295 -42.613 101.1 +24.501 -42.9248 101.84 +23.4109 -42.778 101.492 +22.389 -42.7419 101.406 +21.2561 -42.4727 100.768 +20.4104 -42.7726 101.479 +19.3444 -42.6106 101.095 +18.3863 -42.6743 101.246 +17.4112 -42.6968 101.299 +16.5103 -42.9077 101.8 +15.4343 -42.6545 101.199 +14.5015 -42.7823 101.502 +13.4422 -42.5213 100.883 +12.5203 -42.6809 101.262 +11.4668 -42.3741 100.534 +10.6485 -42.9528 101.907 +9.61328 -42.6774 101.253 +8.69327 -42.9019 101.786 +7.69414 -42.7361 101.393 +6.78249 -43.0709 102.187 +5.77266 -42.7819 101.501 +4.81122 -42.7998 101.544 +3.84941 -42.8145 101.579 +2.90041 -43.02 102.066 +1.925 -42.834 101.625 +0.969518 -43.1497 102.374 +6.21725e-15 -42.724 101.364 +-0.969518 -43.1497 102.374 +-1.925 -42.834 101.625 +-2.91611 -43.253 102.619 +-3.85988 -42.9311 101.855 +-4.8592 -43.2266 102.556 +-5.81452 -43.0922 102.238 +-6.84354 -43.4585 103.107 +-7.72902 -42.9299 101.852 +-8.79526 -43.4053 102.98 +-9.77016 -43.3738 102.906 +-10.7731 -43.4554 103.099 +-11.7385 -43.3785 102.917 +-12.792 -43.6073 103.459 +-13.6616 -43.215 102.529 +-14.7756 -43.5909 103.421 +-15.7126 -43.4235 103.024 +-16.7468 -43.5222 103.258 +-17.5989 -43.1571 102.391 +-18.7329 -43.4787 103.154 +-19.5354 -43.0313 102.093 +-20.6655 -43.307 102.747 +-21.6377 -43.2356 102.578 +-22.708 -43.3505 102.85 +-23.598 -43.1202 102.304 +-24.7607 -43.3797 102.919 +-25.6669 -43.1808 102.448 +-26.9163 -43.5451 103.312 +-27.821 -43.3393 102.824 +-29.0691 -43.657 103.577 +-29.9195 -43.3692 102.895 +-31.1333 -43.603 103.449 +-32.222 -43.6449 103.549 +-33.3434 -43.7203 103.728 +-34.1783 -43.42 103.015 +-35.8441 -44.1545 104.758 +-36.6185 -43.7727 103.852 +-37.9496 -44.0524 104.515 +-38.938 -43.9219 104.206 +-40.2237 -44.1176 104.67 +-41.3502 -44.1258 104.69 +-42.3401 -43.984 104.353 +-43.5059 -44.0201 104.439 +-45.0064 -44.3767 105.285 +-45.6645 -43.8986 104.151 +-47.1466 -44.2085 104.886 +-48.1381 -44.0469 104.503 +-49.5246 -44.2384 104.957 +-50.476 -44.0333 104.47 +-51.8781 -44.2139 104.899 +-53.0809 -44.2124 104.895 +-54.5458 -44.4167 105.38 +-55.6293 -44.2998 105.102 +-56.801 -44.2485 104.981 +-58.2016 -44.3658 105.259 +-59.427 -44.339 105.196 +-60.6088 -44.2734 105.04 +-62.2215 -44.5099 105.601 +-62.7344 -43.9576 104.291 +-64.8029 -44.487 105.547 +-66.1 -44.4676 105.501 +-68.3654 -45.0781 106.949 +-69.3241 -44.8117 106.317 +-72.0003 -45.6347 108.27 +-72.7579 -45.2242 107.296 +-75.3294 -45.9256 108.96 +-75.7048 -45.2778 107.423 +-78.2095 -45.8942 108.885 +-78.7344 -45.3372 107.564 +-81.0527 -45.8048 108.673 +-81.3331 -45.115 107.037 +-82.8663 -45.122 107.053 +-84.1708 -44.9966 106.756 +-86.6062 -45.4592 107.853 +-87.6243 -45.1636 107.152 +-89.0009 -45.0498 106.882 +-90.3791 -44.9301 106.598 +-93.813 -45.8075 108.68 +-94.8386 -45.4879 107.921 +-97.638 -46.0037 109.145 +-99.2464 -45.9388 108.991 +-101.444 -46.1322 109.45 +-102.476 -45.787 108.631 +-104.893 -46.0487 109.252 +-106.593 -45.98 109.089 +-109.108 -46.2468 109.722 +-109.938 -45.7901 108.638 +-113.234 -46.3455 109.956 +-114.271 -45.9598 109.041 +-116.842 -46.1804 109.564 +-119.289 -46.3319 109.924 +-121.681 -46.443 110.187 +-123.439 -46.2985 109.844 +-126.941 -46.7875 111.005 +-102.682 -37.1903 88.2351 +-97.9842 -34.8729 82.7369 +-98.6896 -34.5134 81.8841 +-98.4877 -33.8431 80.2936 +-99.3953 -33.559 79.6196 +-98.8528 -32.7919 77.7998 +-99.0495 -32.2809 76.5873 +-98.5365 -31.5487 74.8501 +-99.3193 -31.2379 74.1128 +-99.313 -30.6825 72.7951 +-99.3682 -30.1534 71.5398 +-98.7725 -29.4372 69.8405 +-98.7912 -28.9143 68.5999 +-98.794 -28.3935 67.3644 +-98.6192 -27.8293 66.0257 +-99.0779 -27.4488 65.1231 +-98.8717 -26.8892 63.7954 +-98.7303 -26.3551 62.5282 +-98.6555 -25.8457 61.3197 +-98.8989 -25.4246 60.3205 +-99.5502 -25.1096 59.5732 +-99.4359 -24.6042 58.3742 +-99.2216 -24.0811 57.133 +-99.1621 -23.6018 55.9959 +-99.0028 -23.1047 54.8166 +-98.7427 -22.5909 53.5975 +-99.2465 -22.2553 52.8014 +-98.9594 -21.746 51.593 +-99.6192 -21.4474 50.8845 +-99.3063 -20.9421 49.6858 +-98.9784 -20.4407 48.496 +-99.4339 -20.1044 47.6982 +-99.0799 -19.6079 46.5203 +-99.5167 -19.2713 45.7218 +-99.2269 -18.7971 44.5967 +-98.6526 -18.2761 43.3607 +-99.0594 -17.9411 42.5657 +-98.6398 -17.4596 41.4235 +-99.211 -17.1563 40.7037 +-98.7674 -16.68 39.5737 +-99.1384 -16.3445 38.7779 +-98.8551 -15.9039 37.7324 +-99.116 -15.5536 36.9015 +-99.3686 -15.2029 36.0693 +-98.8662 -14.7403 34.9717 +-99.2873 -14.4182 34.2076 +-98.7617 -13.9616 33.1242 +-99.0716 -13.6263 32.3288 +-99.374 -13.29 31.5308 +-98.9102 -12.8541 30.4966 +-99.1952 -12.5183 29.7001 +-98.7097 -12.0882 28.6796 +-98.8819 -11.7418 27.8578 +-99.142 -11.4062 27.0616 +-98.4332 -10.9627 26.0094 +-98.6758 -10.6287 25.2168 +-98.9108 -10.2938 24.4224 +-99.0415 -9.94845 23.603 +-99.0672 -9.59357 22.761 +-99.1817 -9.24836 21.942 +-100.263 -8.9905 21.3302 +-106.416 -9.1631 21.7397 +-111.509 -9.20583 21.8411 +-121.021 -9.56315 22.6889 +-149.404 -11.2796 26.7611 +-164.204 -11.8203 28.044 +-164.364 -11.2566 26.7066 +-168.26 -10.9362 25.9465 +-3236.16 -199.078 472.317 +-642.366 -37.2873 88.4651 +-3244.61 -177.111 420.201 +-381.111 -19.4877 46.2352 +-380.244 -18.1337 43.0227 +-381.333 -16.875 40.0364 +-670.208 -27.3596 64.9114 +-675.078 -25.247 59.8993 +-680.003 -23.1069 54.8218 +-687.275 -21.0085 49.8432 +-690.115 -18.7432 44.4688 +-3270.19 -77.6851 184.31 +-3271.81 -66.5982 158.006 +-3273.58 -55.5133 131.707 +-3274.7 -44.4155 105.377 +-3275.58 -33.3146 79.0399 +-3276.2 -22.2112 52.6966 +-3276.58 -11.106 26.3493 +94.7 3.55271e-15 -1.7053e-13 +95.2964 -0.316081 0.769231 +95.1855 -0.631474 1.53679 +95.1674 -0.947153 2.30504 +95.0421 -1.26143 3.06988 +96.0085 -1.59318 3.87726 +95.2693 -1.89763 4.61818 +95.5215 -2.2205 5.40393 +95.5666 -2.53988 6.18119 +95.5047 -2.85675 6.95233 +95.4355 -3.1734 7.72295 +95.359 -3.48981 8.49298 +95.3746 -3.80993 9.27206 +96.0784 -4.16055 10.1253 +96.0785 -4.48368 10.9117 +95.9719 -4.80214 11.6867 +95.7589 -5.11498 12.4481 +95.5389 -5.42679 13.2069 +96.2996 -5.79697 14.1078 +96.1628 -6.11612 14.8845 +95.8218 -6.42166 15.6281 +95.6707 -6.73921 16.4009 +95.5123 -7.05626 17.1725 +95.2487 -7.36522 17.9244 +95.9563 -7.75194 18.8655 +95.8723 -8.07815 19.6594 +95.6831 -8.39582 20.4325 +95.4867 -8.71283 21.204 +95.4771 -9.0476 22.0187 +95.9434 -9.43056 22.9507 +95.7232 -9.74841 23.7242 +95.4958 -10.0655 24.4959 +96.1262 -10.4761 25.4953 +95.882 -10.7945 26.2702 +95.5348 -11.101 27.0161 +96.1347 -11.5203 28.0365 +95.9616 -11.8505 28.84 +96.4445 -12.2648 29.8483 +96.1592 -12.5842 30.6256 +95.8666 -12.9027 31.4007 +96.4125 -13.3371 32.458 +97.1329 -13.8028 33.5912 +96.7189 -14.1108 34.3408 +97.2286 -14.5564 35.4253 +96.8907 -14.8784 36.2088 +96.5454 -15.1991 36.9894 +96.2848 -15.5336 37.8035 +96.7498 -15.9888 38.9111 +96.379 -16.3091 39.6906 +96.0919 -16.6439 40.5054 +96.5218 -17.1065 41.6312 +96.1253 -17.426 42.4088 +96.5305 -17.8941 43.548 +96.0265 -18.1966 44.2842 +96.4069 -18.6697 45.4356 +96.7729 -19.1467 46.5964 +96.3296 -19.4669 47.3757 +96.6699 -19.9489 48.5487 +96.9079 -20.4162 49.6859 +96.4354 -20.7368 50.4662 +96.6484 -21.2079 51.6126 +96.9333 -21.7013 52.8133 +96.3456 -22.0023 53.5461 +96.6041 -22.4998 54.7567 +96.8471 -23.0006 55.9755 +96.3153 -23.3209 56.755 +96.4471 -23.8051 57.9333 +95.8969 -24.1241 58.7097 +96.7487 -24.8025 60.3607 +96.1755 -25.1225 61.1393 +96.2504 -25.6149 62.3377 +96.3099 -26.1097 63.542 +96.4348 -26.6292 64.8062 +95.8197 -26.948 65.5822 +95.9161 -27.4707 66.8541 +95.9164 -27.9729 68.0763 +96.6889 -28.7111 69.8729 +96.026 -29.0307 70.6506 +96.0552 -29.5633 71.9469 +96.5302 -30.2434 73.602 +96.5216 -30.7823 74.9134 +96.4195 -31.2987 76.1703 +96.9802 -32.0412 77.9773 +96.6902 -32.5128 79.1248 +94.751 -32.4253 78.912 +94.8876 -33.0465 80.4237 +94.3446 -33.4377 81.3758 +94.2261 -33.9848 82.7072 +93.8738 -34.4544 83.8501 +94.5057 -35.2973 85.9013 +94.8937 -36.0662 87.7727 +94.062 -36.3796 88.5353 +94.543 -37.2096 90.5553 +94.1669 -37.7148 91.7847 +93.9112 -38.2757 93.1497 +94.4475 -39.1742 95.3363 +94.5482 -39.9096 97.1261 +94.2246 -40.4782 98.5099 +93.8164 -41.0183 99.8242 +94.105 -41.8772 101.915 +91.9829 -41.6636 101.395 +91.0864 -41.9966 102.205 +88.9859 -41.7651 101.642 +87.8368 -41.9696 102.139 +86.3157 -41.9897 102.188 +85.3484 -42.2744 102.881 +83.8328 -42.2828 102.902 +83.5726 -42.9258 104.467 +80.9968 -42.3713 103.117 +80.2531 -42.762 104.068 +78.2358 -42.4659 103.347 +77.2578 -42.724 103.975 +75.7147 -42.6636 103.828 +74.8427 -42.9764 104.59 +72.5459 -42.458 103.328 +71.031 -42.3762 103.129 +70.3203 -42.7715 104.091 +70.7986 -43.9106 106.863 +70.0452 -44.3066 107.827 +68.5177 -44.2097 107.591 +67.15 -44.2048 107.579 +66.0832 -44.3929 108.037 +64.7221 -44.3777 108 +63.653 -44.5571 108.437 +61.7355 -44.1291 107.395 +60.4429 -44.1299 107.397 +59.2004 -44.1592 107.468 +58.1842 -44.3538 107.942 +56.4184 -43.9646 106.994 +54.0722 -43.0866 104.858 +51.8553 -42.2653 102.859 +51.0487 -42.5739 103.61 +49.2965 -42.0821 102.413 +48.8069 -42.6621 103.825 +47.005 -42.0878 102.427 +46.2664 -42.4526 103.315 +44.728 -42.076 102.398 +44.0168 -42.4701 103.358 +42.5741 -42.1531 102.586 +41.8148 -42.5066 103.446 +40.5294 -42.3223 102.998 +39.7564 -42.67 103.844 +38.3845 -42.369 103.112 +37.315 -42.3865 103.154 +35.9696 -42.0749 102.396 +35.0924 -42.3014 102.947 +34.0321 -42.3071 102.961 +33.1446 -42.5275 103.497 +31.8361 -42.1976 102.694 +30.9462 -42.4112 103.214 +29.8936 -42.4021 103.192 +28.8438 -42.3896 103.161 +27.6759 -42.1885 102.672 +26.9163 -42.6111 103.701 +25.7344 -42.3656 103.103 +24.7607 -42.4492 103.307 +23.598 -42.1953 102.689 +22.708 -42.4207 103.237 +21.5996 -42.2333 102.781 +20.8295 -42.7145 103.952 +19.6049 -42.258 102.841 +18.7824 -42.6586 103.816 +17.6615 -42.3816 103.142 +16.8207 -42.7768 104.104 +15.5874 -42.1535 102.587 +14.7756 -42.656 103.81 +13.6494 -42.2504 102.823 +12.7806 -42.6339 103.756 +11.6758 -42.2212 102.752 +10.7635 -42.4853 103.395 +9.77016 -42.4435 103.293 +8.85803 -42.7776 104.106 +7.7918 -42.3504 103.066 +6.85575 -42.6024 103.679 +5.84593 -42.3956 103.176 +4.89846 -42.6412 103.774 +3.91223 -42.58 103.625 +2.93967 -42.6674 103.838 +1.94594 -42.3713 103.117 +0.982608 -42.7943 104.147 +1.15463e-14 -42.6058 103.688 +-0.986099 -42.9464 104.517 +-1.94594 -42.3713 103.117 +-2.958 -42.9331 104.484 +-3.9227 -42.694 103.902 +-4.92899 -42.9068 104.42 +-5.87733 -42.6233 103.73 +-6.91069 -42.9437 104.51 +-7.89643 -42.919 104.45 +-8.85803 -42.7776 104.106 +-9.91832 -43.0874 104.86 +-10.9648 -43.2797 105.328 +-11.8326 -42.7882 104.132 +-12.8825 -42.9737 104.583 +-13.8687 -42.9296 104.476 +-14.9714 -43.2211 105.185 +-15.8379 -42.8312 104.236 +-16.8651 -42.8897 104.379 +-17.8022 -42.7195 103.964 +-18.9805 -43.1086 104.911 +-19.9174 -42.9315 104.48 +-20.9571 -42.976 104.589 +-21.7331 -42.4945 103.417 +-23.1466 -43.2401 105.232 +-23.9722 -42.8643 104.317 +-25.0421 -42.9315 104.48 +-25.9369 -42.6989 103.914 +-27.2898 -43.2025 105.14 +-27.9904 -42.6678 103.839 +-29.3696 -43.1622 105.042 +-30.2559 -42.9163 104.443 +-31.4272 -43.0706 104.819 +-32.5803 -43.1839 105.095 +-33.6558 -43.1835 105.094 +-34.9677 -43.4701 105.791 +-36.0847 -43.4975 105.858 +-37.1747 -43.4845 105.826 +-38.2352 -43.4317 105.698 +-39.1658 -43.2314 105.21 +-40.4574 -43.4222 105.675 +-41.6581 -43.5009 105.866 +-43.2156 -43.9304 106.911 +-44.0793 -43.6434 106.213 +-45.5561 -43.9554 106.972 +-46.0766 -43.3447 105.486 +-47.5676 -43.6464 106.22 +-48.2944 -43.242 105.236 +-50.7608 -44.3701 107.981 +-50.9234 -43.4709 105.793 +-52.666 -43.9228 106.893 +-53.5457 -43.643 106.212 +-55.1054 -43.9098 106.861 +-56.243 -43.8277 106.662 +-57.7826 -44.0478 107.197 +-59.0642 -44.0577 107.221 +-60.3967 -44.0961 107.315 +-61.313 -43.827 106.66 +-62.9372 -44.0562 107.217 +-63.5585 -43.5799 106.058 +-66.4772 -44.6574 108.681 +-67.4 -44.3693 107.98 +-70.091 -45.2249 110.062 +-71.4358 -45.1861 109.967 +-73.2543 -45.4335 110.569 +-74.1357 -45.0922 109.739 +-76.2965 -45.5179 110.775 +-77.1754 -45.1675 109.922 +-79.4789 -45.6388 111.069 +-80.0764 -45.1211 109.809 +-82.1289 -45.4176 110.531 +-82.6524 -44.8634 109.182 +-84.3761 -44.9588 109.414 +-85.0525 -44.4929 108.28 +-87.9743 -45.1865 109.968 +-89.0686 -44.9235 109.328 +-90.949 -45.0485 109.632 +-92.9649 -45.2245 110.061 +-95.556 -45.6578 111.115 +-96.7895 -45.4278 110.556 +-98.9102 -45.6038 110.984 +-100.403 -45.4776 110.677 +-102.808 -45.7497 111.339 +-103.854 -45.4073 110.506 +-106.814 -45.8866 111.672 +-107.864 -45.5304 110.805 +-110.324 -45.7593 111.362 +-111.643 -45.5031 110.739 +-114.749 -45.958 111.846 +-115.591 -45.4936 110.716 +-119.155 -46.0846 112.154 +-120.208 -45.6874 111.187 +-124.106 -46.3525 112.806 +-124.949 -45.86 111.607 +-100.464 -36.2347 88.1828 +-99.8298 -35.3818 86.1069 +-98.2053 -34.2019 83.2357 +-98.9126 -33.8495 82.3779 +-98.4128 -33.092 80.5345 +-98.716 -32.6147 79.3729 +-98.8528 -32.0886 78.0925 +-99.0495 -31.5885 76.8755 +-99.2309 -31.0896 75.6613 +-98.5421 -30.3287 73.8096 +-98.5304 -29.7878 72.4932 +-98.7377 -29.3195 71.3535 +-98.7725 -28.8058 70.1033 +-98.7113 -28.2712 68.8023 +-98.794 -27.7845 67.6178 +-99.3473 -27.4334 66.7635 +-98.915 -26.816 65.2608 +-99.0355 -26.3561 64.1416 +-98.8127 -25.8113 62.8158 +-99.07 -25.3976 61.809 +-98.8989 -24.8792 60.5475 +-98.7954 -24.3847 59.3439 +-99.3515 -24.0561 58.5442 +-99.2216 -23.5645 57.3479 +-99.1621 -23.0955 56.2065 +-99.0028 -22.6092 55.0229 +-98.7427 -22.1063 53.7992 +-99.2465 -21.778 53.0001 +-98.9594 -21.2796 51.7871 +-98.832 -20.8215 50.6724 +-99.3063 -20.4929 49.8727 +-98.9784 -20.0022 48.6785 +-99.4339 -19.6732 47.8777 +-99.0799 -19.1873 46.6953 +-99.5167 -18.858 45.8938 +-99.2269 -18.3939 44.7644 +-99.4649 -18.0314 43.8821 +-99.0594 -17.5563 42.7258 +-98.6398 -17.0852 41.5794 +-99.211 -16.7883 40.8569 +-98.7674 -16.3222 39.7226 +-99.2304 -16.0088 38.96 +-98.7627 -15.5482 37.839 +-99.116 -15.22 37.0403 +-99.3686 -14.8768 36.205 +-98.9595 -14.4377 35.1364 +-98.4442 -13.9891 34.0447 +-98.7617 -13.6621 33.2488 +-99.1659 -13.3467 32.4813 +-99.4686 -13.0173 31.6796 +-98.9102 -12.5784 30.6114 +-99.2903 -12.2616 29.8404 +-98.7097 -11.8289 28.7876 +-98.8819 -11.49 27.9626 +-99.2378 -11.1724 27.1897 +-98.4332 -10.7276 26.1072 +-98.6758 -10.4007 25.3117 +-98.8142 -10.0632 24.4903 +-99.1383 -9.74457 23.7149 +-98.8731 -9.3694 22.8019 +-99.6679 -9.09435 22.1325 +-101.14 -8.87459 21.5977 +-108.466 -9.13931 22.2419 +-113.074 -9.13482 22.231 +-123.471 -9.5475 23.2353 +-159.907 -11.8136 28.7503 +-164.204 -11.5668 28.1495 +-165.054 -11.0613 26.9194 +-170.529 -10.8459 26.3952 +-637.948 -38.4026 93.4587 +-642.069 -36.4707 88.757 +-3244.61 -173.312 421.782 +-380.616 -19.0449 46.3487 +-383.52 -17.8976 43.5565 +-383.022 -16.5862 40.365 +-3258.55 -130.169 316.787 +-673.983 -24.6655 60.0272 +-680.202 -22.6179 55.0441 +-686.876 -20.5459 50.0016 +-693.307 -18.426 44.8426 +-696.299 -16.1862 39.3916 +-702.636 -13.9955 34.0603 +-3273.18 -54.3158 132.186 +-3274.7 -43.4629 105.774 +-3275.58 -32.6001 79.3373 +-3276.2 -21.7348 52.8949 +-3276.58 -10.8678 26.4484 +94.7 3.55271e-15 -1.7053e-13 +95.2964 -0.309127 0.772052 +95.1855 -0.617582 1.54243 +95.1674 -0.926315 2.31349 +95.142 -1.23497 3.08438 +95.2093 -1.54516 3.85908 +95.469 -1.85977 4.64483 +95.6213 -2.17392 5.42941 +95.5666 -2.484 6.20385 +95.5047 -2.7939 6.97783 +95.3358 -3.10034 7.74318 +95.359 -3.41303 8.52413 +95.3746 -3.72611 9.30606 +96.0784 -4.06901 10.1625 +95.9792 -4.38051 10.9404 +95.8727 -4.69166 11.7175 +95.7589 -5.00245 12.4937 +95.6378 -5.3129 13.2691 +95.4107 -5.6171 14.0288 +96.1628 -5.98156 14.9391 +95.8218 -6.28038 15.6854 +95.6707 -6.59094 16.461 +95.4142 -6.89392 17.2177 +95.2487 -7.20318 17.9901 +95.0759 -7.51185 18.761 +94.9936 -7.82802 19.5507 +95.878 -8.22783 20.5492 +95.4867 -8.52115 21.2818 +95.4771 -8.84855 22.0995 +95.0721 -9.1393 22.8256 +95.7232 -9.53394 23.8112 +95.4958 -9.84406 24.5858 +96.1262 -10.2457 25.5888 +95.882 -10.5571 26.3665 +96.3955 -10.9546 27.3595 +96.1347 -11.2669 28.1393 +95.8665 -11.5783 28.9171 +96.4445 -11.995 29.9578 +96.0647 -12.2952 30.7077 +96.715 -12.7305 31.7947 +96.4125 -13.0437 32.577 +96.1026 -13.356 33.3568 +96.7189 -13.8004 34.4667 +97.2286 -14.2362 35.5552 +96.8907 -14.551 36.3415 +96.5454 -14.8648 37.1251 +96.2848 -15.1919 37.9421 +96.7498 -15.637 39.0538 +96.379 -15.9503 39.8361 +96.0919 -16.2777 40.6539 +96.5218 -16.7301 41.7839 +96.9377 -17.1866 42.924 +96.5305 -17.5004 43.7077 +96.8319 -17.9455 44.8194 +96.496 -18.2758 45.6444 +96.7729 -18.7255 46.7673 +96.3296 -19.0386 47.5494 +96.6699 -19.51 48.7268 +96.2082 -19.8229 49.5081 +96.4354 -20.2806 50.6512 +96.6484 -20.7413 51.8019 +96.0717 -21.0351 52.5358 +96.4313 -21.5374 53.7903 +96.6041 -22.0048 54.9575 +96.0838 -22.3173 55.738 +96.231 -22.7879 56.9133 +96.4471 -23.2814 58.1458 +96.564 -23.7575 59.3348 +96.8316 -24.2776 60.634 +96.0931 -24.5487 61.311 +96.2504 -25.0513 62.5663 +96.3913 -25.5569 63.8289 +95.7067 -25.8467 64.5528 +95.8197 -26.3552 65.8227 +95.9161 -26.8663 67.0993 +96.6304 -27.5611 68.8344 +96.6889 -28.0795 70.1291 +95.8695 -28.3457 70.7941 +95.8998 -28.8661 72.0939 +95.8358 -29.3653 73.3405 +96.5216 -30.1051 75.1882 +95.8112 -30.4171 75.9673 +96.3764 -31.1412 77.7759 +96.3157 -31.6743 79.1074 +95.6427 -32.0104 79.9468 +95.6249 -32.5706 81.3457 +94.9297 -32.9049 82.1807 +94.0811 -33.186 82.8827 +94.5932 -33.9546 84.8025 +94.5057 -34.5207 86.2163 +94.328 -35.0625 87.5694 +94.062 -35.5792 88.86 +93.8483 -36.1236 90.2196 +94.3046 -36.939 92.256 +93.9112 -37.4336 93.4913 +94.3124 -38.2577 95.5495 +94.1467 -38.8658 97.0682 +93.8933 -39.4483 98.523 +94.1445 -40.2564 100.541 +94.0401 -40.9277 102.218 +93.397 -41.3733 103.331 +92.4222 -41.6748 104.084 +90.1187 -41.3663 103.313 +88.7706 -41.4826 103.604 +87.4239 -41.5934 103.88 +86.2615 -41.7867 104.363 +84.3745 -41.6198 103.946 +83.0373 -41.7123 104.178 +81.7609 -41.8298 104.471 +80.7758 -42.0933 105.129 +79.2683 -42.08 105.096 +77.9941 -42.1822 105.351 +76.4976 -42.1562 105.286 +75.505 -42.403 105.902 +73.8531 -42.2721 105.576 +72.2131 -42.1339 105.23 +70.9032 -42.1773 105.339 +70.1193 -42.5323 106.225 +69.6331 -43.0769 107.586 +68.3147 -43.1088 107.665 +67.3 -43.3289 108.215 +65.837 -43.2546 108.029 +64.3827 -43.1735 107.827 +63.5098 -43.4791 108.59 +61.8764 -43.2564 108.034 +60.8585 -43.4557 108.532 +59.0188 -43.0553 107.532 +58.5412 -43.6441 109.002 +55.7608 -42.4963 106.135 +54.6319 -42.5747 106.331 +52.8695 -42.1439 105.255 +51.6708 -42.1446 105.257 +50.1506 -41.8692 104.569 +49.4449 -42.2688 105.567 +47.8255 -41.8804 104.597 +46.8405 -42.0339 104.981 +45.3274 -41.7016 104.151 +44.5299 -42.0201 104.946 +43.2192 -41.8506 104.523 +42.2 -41.9543 104.782 +40.8372 -41.7053 104.16 +40.2571 -42.2569 105.538 +38.7752 -41.8584 104.542 +37.8862 -42.0885 105.117 +36.5258 -41.7856 104.36 +35.9043 -42.3279 105.715 +34.3829 -41.8027 104.403 +33.4854 -42.0197 104.945 +32.222 -41.7692 104.32 +31.4272 -42.1231 105.203 +30.2559 -41.9722 104.826 +29.4447 -42.3205 105.696 +28.1839 -42.0175 104.94 +27.2431 -42.1799 105.345 +26.1168 -42.0491 105.019 +24.9988 -41.9145 104.683 +24.0554 -42.0669 105.063 +23.1466 -42.2889 105.617 +21.8858 -41.8517 104.526 +20.9935 -42.1037 105.155 +19.8654 -41.8774 104.59 +18.931 -42.0502 105.021 +17.724 -41.596 103.887 +17.1015 -42.5342 106.23 +15.9632 -42.2201 105.446 +15.0366 -42.4543 106.031 +13.8687 -41.9852 104.859 +13.0184 -42.4717 106.074 +11.8326 -41.8469 104.514 +11.0223 -42.5498 106.269 +9.89218 -42.0283 104.967 +8.99926 -42.5033 106.153 +7.89643 -41.9748 104.833 +6.94732 -42.2216 105.449 +5.97153 -42.3539 105.78 +4.97697 -42.3714 105.824 +3.95062 -42.0517 105.025 +2.98679 -42.3974 105.888 +1.97561 -42.071 105.073 +0.990462 -42.1874 105.364 +1.06581e-14 -42.0774 105.089 +-0.993952 -42.3361 105.735 +-1.97212 -41.9967 104.888 +-2.97894 -42.2859 105.61 +-3.9576 -42.1261 105.211 +-5.00314 -42.5944 106.381 +-5.92443 -42.0197 104.945 +-6.92901 -42.1101 105.171 +-7.95921 -42.3086 105.667 +-8.99141 -42.4665 106.061 +-9.94447 -42.2506 105.522 +-10.936 -42.2167 105.437 +-11.9581 -42.2903 105.621 +-13.075 -42.6565 106.536 +-14.015 -42.4279 105.965 +-14.9714 -42.2703 105.571 +-15.9632 -42.2201 105.446 +-17.1607 -42.6814 106.598 +-17.943 -42.1101 105.171 +-19.162 -42.5636 106.303 +-20.0216 -42.2067 105.412 +-21.2669 -42.652 106.524 +-21.943 -41.961 104.799 +-23.346 -42.6531 106.527 +-24.1593 -42.2487 105.517 +-25.4533 -42.6766 106.586 +-26.2068 -42.1941 105.381 +-27.7567 -42.975 107.331 +-28.3774 -42.3063 105.661 +-29.8954 -42.9683 107.314 +-30.5148 -42.3312 105.723 +-32.1488 -43.0903 107.619 +-32.9938 -42.7698 106.819 +-34.2523 -42.9821 107.349 +-35.3477 -42.9758 107.333 +-36.4455 -42.9657 107.308 +-37.5456 -42.952 107.274 +-38.9016 -43.2163 107.934 +-39.8495 -43.0182 107.439 +-41.4922 -43.553 108.775 +-42.4105 -43.3122 108.173 +-43.5308 -43.2772 108.086 +-44.5451 -43.1345 107.729 +-46.2158 -43.611 108.92 +-47.0131 -43.2527 108.025 +-48.7156 -43.7166 109.183 +-49.6229 -43.4542 108.528 +-51.1595 -43.7348 109.229 +-51.6556 -43.1256 107.707 +-53.8272 -43.9036 109.65 +-54.0951 -43.1207 107.695 +-56.3109 -43.8831 109.599 +-56.9006 -43.3646 108.304 +-59.032 -44.0102 109.917 +-59.6544 -43.5188 108.689 +-61.8281 -44.1481 110.261 +-62.6275 -43.7816 109.346 +-63.7007 -43.6095 108.916 +-65.1584 -43.6939 109.127 +-67.2651 -44.1927 110.372 +-68.65 -44.198 110.385 +-71.1569 -44.9023 112.145 +-72.8264 -45.0521 112.519 +-74.8218 -45.3848 113.35 +-75.5665 -44.9514 112.267 +-77.5861 -45.2688 113.06 +-78.6459 -45.0153 112.427 +-80.9692 -45.4714 113.566 +-81.3066 -44.8064 111.905 +-83.4883 -45.1536 112.772 +-83.8569 -44.5158 111.179 +-86.0021 -44.8172 111.932 +-86.7571 -44.386 110.855 +-89.1045 -44.7603 111.79 +-89.6103 -44.2024 110.397 +-93.2623 -45.1781 112.833 +-94.504 -44.9618 112.293 +-97.2368 -45.4387 113.484 +-97.6705 -44.8328 111.971 +-100.946 -45.5183 113.683 +-101.56 -44.9897 112.363 +-104.886 -45.648 114.007 +-105.757 -45.2216 112.942 +-107.808 -45.2945 113.124 +-109.269 -45.109 112.661 +-111.878 -45.383 113.345 +-113.075 -45.0726 112.57 +-115.231 -45.1358 112.728 +-117.606 -45.2681 113.058 +-120.697 -45.6539 114.022 +-122.612 -45.5759 113.827 +-126.103 -46.0624 115.042 +-126.316 -45.3417 113.242 +-98.2882 -34.67 86.589 +-98.1477 -34.0203 84.9665 +-98.7214 -33.6253 83.9799 +-98.9869 -33.1297 82.7421 +-98.4128 -32.364 80.8298 +-98.5651 -31.8484 79.5422 +-98.8528 -31.3826 78.3789 +-99.0495 -30.8936 77.1574 +-98.4593 -30.1692 75.3482 +-98.6198 -29.6849 74.1387 +-98.5304 -29.1325 72.759 +-98.6589 -28.6516 71.5579 +-98.7725 -28.1721 70.3604 +-99.3503 -27.8282 69.5016 +-98.7136 -27.1511 67.8106 +-98.4574 -26.5896 66.4081 +-99.1593 -26.2908 65.6618 +-98.8717 -25.7336 64.2703 +-99.1424 -25.3277 63.2565 +-99.07 -24.8389 62.0357 +-98.8989 -24.3319 60.7695 +-98.7954 -23.8482 59.5615 +-98.6768 -23.3671 58.3599 +-99.3064 -23.0658 57.6073 +-99.2473 -22.6068 56.4611 +-99.0028 -22.1118 55.2246 +-99.5182 -21.7898 54.4205 +-98.4671 -21.1316 52.7767 +-99.1335 -20.848 52.0683 +-99.6192 -20.5256 51.2633 +-99.3063 -20.0421 50.0556 +-99.7731 -19.7192 49.2492 +-99.4339 -19.2404 48.0532 +-99.0799 -18.7652 46.8665 +-99.5167 -18.4431 46.0621 +-99.0471 -17.9567 44.8472 +-99.4649 -17.6347 44.043 +-99.0594 -17.17 42.8825 +-99.6408 -16.8789 42.1553 +-99.3024 -16.4341 41.0445 +-98.8591 -15.9779 39.9052 +-99.1384 -15.6421 39.0665 +-99.5018 -15.3199 38.2619 +-99.0232 -14.8713 37.1414 +-98.5312 -14.4269 36.0316 +-98.9595 -14.1201 35.2652 +-99.1936 -13.7855 34.4297 +-98.6677 -13.3488 33.339 +-99.0716 -13.0407 32.5694 +-98.6176 -12.622 31.5238 +-98.9102 -12.3016 30.7236 +-99.2903 -11.9918 29.9499 +-98.6143 -11.5575 28.8652 +-98.8819 -11.2372 28.0651 +-99.2378 -10.9266 27.2894 +-99.4906 -10.6043 26.4844 +-98.6758 -10.1719 25.4045 +-98.9108 -9.85142 24.6041 +-99.0415 -9.52089 23.7787 +-99.7464 -9.24423 23.0877 +-100.446 -8.9637 22.3871 +-104.16 -8.93858 22.3243 +-110.224 -9.08306 22.6852 +-116.008 -9.16569 22.8915 +-138.267 -10.4564 26.1152 +-163.637 -11.8233 29.5289 +-165.187 -11.3801 28.422 +-167.023 -10.9471 27.3405 +-173.488 -10.7914 26.9518 +-640.121 -37.6856 94.1207 +-642.168 -35.6738 89.0962 +-381.154 -19.9115 49.7296 +-379.723 -18.5822 46.4096 +-382.627 -17.4631 43.6144 +-380.538 -16.1161 40.2503 +-379.51 -14.8267 37.0301 +-675.078 -24.162 60.3451 +-680.102 -22.1171 55.2379 +-685.879 -20.0648 50.1122 +-692.309 -17.9948 44.9423 +-696.798 -15.8415 39.5644 +-703.934 -13.7129 34.2483 +-3273.18 -53.1208 132.67 +-3274.7 -42.5067 106.161 +-3275.58 -31.8829 79.6283 +-3276.2 -21.2566 53.0889 +-3276.58 -10.6287 26.5454 +94.7 3.55271e-15 -1.7053e-13 +95.3964 -0.302465 0.775622 +95.2855 -0.604271 1.54956 +95.1674 -0.905402 2.32176 +95.142 -1.20709 3.09539 +95.3092 -1.51186 3.87693 +95.5688 -1.81969 4.6663 +95.6213 -2.12484 5.4488 +95.5666 -2.42792 6.22602 +95.5047 -2.73082 7.00275 +95.4355 -3.03352 7.77896 +95.359 -3.33598 8.55457 +96.1703 -3.67236 9.41719 +96.0784 -3.97715 10.1988 +95.9792 -4.28161 10.9795 +95.9719 -4.59046 11.7715 +95.7589 -4.88951 12.5384 +95.5389 -5.18758 13.3027 +95.4107 -5.49029 14.079 +96.1628 -5.84652 14.9925 +95.8218 -6.13859 15.7414 +95.5724 -6.43553 16.5029 +95.5123 -6.74522 17.297 +96.0326 -7.09851 18.203 +95.1738 -7.34982 18.8474 +95.8723 -7.72207 19.802 +95.6831 -8.02573 20.5807 +95.4867 -8.32877 21.3578 +95.283 -8.6312 22.1333 +96.1371 -9.03302 23.1637 +95.7232 -9.3187 23.8963 +95.4958 -9.62181 24.6736 +96.1262 -10.0143 25.6802 +95.7861 -10.3084 26.4342 +95.4392 -10.6011 27.1848 +96.1347 -11.0125 28.2398 +95.8665 -11.3169 29.0204 +96.4445 -11.7242 30.0648 +96.1592 -12.0295 30.8477 +95.7724 -12.3218 31.5973 +96.3185 -12.7368 32.6615 +96.0089 -13.0417 33.4434 +96.7189 -13.4888 34.5899 +96.3913 -13.7949 35.3749 +96.8907 -14.2225 36.4714 +95.7139 -14.404 36.9368 +97.0212 -14.9625 38.3689 +95.9245 -15.1536 38.859 +96.4704 -15.6049 40.0164 +96.0919 -15.9102 40.7991 +96.5218 -16.3524 41.9332 +96.1253 -16.6578 42.7163 +96.5305 -17.1053 43.8639 +96.116 -17.4107 44.6469 +96.4069 -17.8468 45.7651 +95.9746 -18.1517 46.5471 +96.3296 -18.6088 47.7193 +96.6699 -19.0696 48.9008 +96.1207 -19.3577 49.6397 +96.4354 -19.8227 50.8322 +96.6484 -20.273 51.987 +96.0717 -20.5603 52.7234 +96.4313 -21.0512 53.9824 +96.6894 -21.527 55.2024 +96.7623 -21.9675 56.3321 +96.231 -22.2734 57.1166 +96.4471 -22.7558 58.3535 +96.564 -23.2211 59.5468 +96.0026 -23.5264 60.3296 +96.1755 -24.0151 61.5827 +96.2504 -24.4858 62.7898 +96.3913 -24.9799 64.0569 +96.4348 -25.4554 65.2762 +95.8197 -25.7602 66.0578 +96.555 -26.4347 67.7874 +95.9164 -26.7398 68.57 +96.6889 -27.4455 70.3796 +96.5738 -27.9093 71.569 +95.8998 -28.2145 72.3514 +96.6846 -28.9565 74.2543 +96.5216 -29.4254 75.4567 +95.8112 -29.7304 76.2387 +96.3764 -30.4382 78.0538 +96.3157 -30.9592 79.3899 +96.0886 -31.4336 80.6064 +96.141 -32.0071 82.077 +94.7103 -32.0877 82.2836 +94.5888 -32.6118 83.6276 +94.0177 -32.9861 84.5876 +93.8638 -33.5122 85.9366 +94.2573 -34.2452 87.8163 +94.062 -34.776 89.1774 +93.8483 -35.3081 90.5419 +94.3046 -36.105 92.5855 +93.9112 -36.5885 93.8253 +94.3124 -37.394 95.8908 +94.5482 -38.1504 97.8305 +94.092 -38.6394 99.0845 +94.2101 -39.3748 100.97 +93.9751 -39.9761 102.512 +93.7827 -40.6064 104.129 +93.1855 -41.0704 105.318 +91.3773 -40.9973 105.131 +89.8911 -41.058 105.287 +88.3474 -41.0838 105.353 +87.1746 -41.2756 105.845 +85.4577 -41.2022 105.656 +84.5838 -41.53 106.497 +82.525 -41.2676 105.824 +81.9372 -41.7349 107.022 +79.8992 -41.4573 106.311 +78.9004 -41.7091 106.956 +77.0568 -41.5056 106.434 +76.5537 -42.0212 107.756 +74.1798 -41.5005 106.421 +73.5026 -41.918 107.492 +70.9562 -41.256 105.794 +70.3283 -41.696 106.923 +69.3241 -41.9176 107.491 +68.9237 -42.5113 109.013 +67.45 -42.4452 108.844 +65.7878 -42.2464 108.334 +65.2554 -42.771 109.679 +63.6053 -42.561 109.141 +62.5806 -42.7612 109.654 +60.997 -42.5712 109.167 +59.382 -42.3423 108.58 +58.5858 -42.6915 109.475 +56.9444 -42.4183 108.775 +55.0624 -41.9416 107.552 +53.2922 -41.5216 106.475 +52.2513 -41.656 106.82 +50.8014 -41.4551 106.305 +49.9234 -41.7145 106.97 +48.6851 -41.6706 106.857 +47.5676 -41.7225 106.991 +46.0766 -41.434 106.251 +45.4462 -41.9165 107.488 +43.9717 -41.6179 106.722 +42.9354 -41.7218 106.989 +41.2476 -41.1735 105.583 +40.5242 -41.5768 106.617 +38.9705 -41.1198 105.445 +38.3621 -41.6549 106.817 +37.1129 -41.4987 106.417 +36.0847 -41.5801 106.625 +34.7338 -41.276 105.846 +33.8262 -41.4889 106.392 +32.663 -41.3854 106.126 +31.7212 -41.5572 106.567 +30.5924 -41.4805 106.37 +29.4948 -41.4355 106.255 +28.45 -41.4569 106.31 +27.5932 -41.7574 107.08 +26.2068 -41.2415 105.757 +25.3018 -41.4649 106.33 +24.3257 -41.579 106.623 +23.4058 -41.797 107.182 +22.1529 -41.4061 106.179 +21.1211 -41.4032 106.172 +20.1258 -41.4686 106.339 +19.1125 -41.4951 106.407 +18.1151 -41.5539 106.558 +17.338 -42.149 108.084 +16.1023 -41.6266 106.745 +15.2716 -42.1443 108.072 +14.1003 -41.7225 106.991 +13.1542 -41.946 107.564 +12.0417 -41.6248 106.74 +11.1852 -42.2039 108.225 +10.0403 -41.6949 106.92 +9.04633 -41.7614 107.09 +8.00804 -41.607 106.694 +7.12436 -42.3198 108.522 +5.98723 -41.5063 106.436 +5.02932 -41.8504 107.319 +4.00646 -41.6833 106.89 +3.0182 -41.8758 107.384 +2.00179 -41.6662 106.846 +1.01053 -42.0706 107.883 +1.06581e-14 -41.7087 106.955 +-1.01402 -42.2159 108.256 +-2.00354 -41.7025 106.939 +-3.03914 -42.1665 108.129 +-4.00646 -41.6833 106.89 +-5.09038 -42.3587 108.622 +-6.00817 -41.6517 106.809 +-7.06942 -41.9935 107.686 +-7.98014 -41.462 106.323 +-9.14048 -42.1959 108.205 +-10.0926 -41.9118 107.476 +-11.214 -42.3122 108.503 +-12.1358 -41.95 107.574 +-13.3127 -42.4513 108.86 +-14.2222 -42.0829 107.915 +-15.4021 -42.5044 108.996 +-16.2972 -42.1302 108.036 +-17.4415 -42.4005 108.729 +-18.3185 -42.0204 107.755 +-19.4756 -42.2835 108.429 +-20.421 -42.0767 107.899 +-21.5038 -42.1534 108.096 +-22.3437 -41.7628 107.094 +-23.645 -42.2243 108.277 +-24.6583 -42.1476 108.081 +-25.7996 -42.2806 108.422 +-26.6792 -41.9848 107.663 +-28.0368 -42.4288 108.802 +-28.9822 -42.2322 108.298 +-30.4462 -42.7721 109.682 +-31.2395 -42.358 108.62 +-32.4962 -42.5723 109.17 +-33.2694 -42.1534 108.096 +-34.9623 -42.8826 109.965 +-35.9032 -42.6657 109.409 +-37.1372 -42.7928 109.735 +-38.1636 -42.6733 109.429 +-39.3775 -42.7576 109.645 +-40.5007 -42.7344 109.585 +-41.826 -42.9124 110.042 +-42.8551 -42.7779 109.697 +-44.3713 -43.1169 110.566 +-45.0827 -42.6693 109.419 +-47.1321 -43.4715 111.476 +-47.575 -42.7812 109.706 +-49.2131 -43.166 110.692 +-50.0136 -42.8077 109.774 +-51.7576 -43.247 110.9 +-52.6724 -42.9818 110.22 +-54.4907 -43.4414 111.398 +-55.2785 -43.0693 110.444 +-56.7414 -43.2205 110.832 +-57.602 -42.9084 110.032 +-59.4782 -43.3418 111.143 +-60.5169 -43.1514 110.655 +-62.5208 -43.6346 111.894 +-63.05 -43.082 110.477 +-65.323 -43.7106 112.089 +-66.0796 -43.3113 111.065 +-68.7423 -44.1437 113.199 +-69.95 -44.0183 112.878 +-72.5272 -44.734 114.713 +-73.7535 -44.5956 114.358 +-76.0758 -45.1035 115.661 +-76.9973 -44.7682 114.801 +-79.0368 -45.0741 115.585 +-80.1164 -44.8216 114.938 +-82.2386 -45.1417 115.759 +-82.5928 -44.4877 114.082 +-84.8477 -44.8528 115.018 +-85.5776 -44.4034 113.865 +-87.5119 -44.5742 114.303 +-88.2266 -44.1186 113.135 +-89.8182 -44.1001 113.087 +-92.1981 -44.4521 113.99 +-94.7233 -44.8499 115.01 +-96.1663 -44.7195 114.676 +-99.1666 -45.2943 116.15 +-100.062 -44.8935 115.122 +-102.536 -45.1915 115.886 +-103.617 -44.8645 115.048 +-105.86 -45.0316 115.476 +-107.134 -44.7766 114.822 +-110.127 -45.2242 115.97 +-110.54 -44.6036 114.379 +-113.567 -45.028 115.467 +-115.053 -44.8256 114.948 +-118.741 -45.4607 116.577 +-119.829 -45.0825 115.607 +-122.869 -45.4265 116.489 +-125.016 -45.4203 116.473 +-108.699 -38.8091 99.5196 +-98.8373 -34.6771 88.9239 +-97.853 -33.7372 86.5136 +-98.3671 -33.3266 85.4606 +-98.7952 -32.8907 84.3429 +-98.2437 -32.1386 82.4143 +-98.4128 -31.6333 81.1186 +-98.716 -31.1771 79.9486 +-98.8528 -30.6741 78.6589 +-98.9729 -30.1728 77.3732 +-99.2309 -29.7192 76.21 +-98.5421 -28.9918 74.3449 +-99.313 -28.7009 73.5989 +-98.8953 -28.0718 71.9856 +-98.6932 -27.5139 70.555 +-98.6315 -27.0032 69.2453 +-98.9548 -26.603 68.2191 +-99.1046 -26.1601 67.0834 +-98.8336 -25.6128 65.6799 +-99.0355 -25.1943 64.6067 +-99.1424 -24.7559 63.4825 +-99.07 -24.2781 62.2573 +-98.8989 -23.7826 60.9866 +-98.7954 -23.3098 59.7743 +-99.4359 -23.0152 59.0188 +-99.3064 -22.545 57.8131 +-99.1621 -22.0775 56.6142 +-99.0028 -21.6126 55.4219 +-98.7427 -21.1319 54.1893 +-99.2465 -20.818 53.3845 +-99.1335 -20.3773 52.2543 +-99.4443 -20.027 51.3561 +-99.3063 -19.5896 50.2344 +-98.9784 -19.1205 49.0315 +-98.6356 -18.655 47.8377 +-99.0799 -18.3416 47.0339 +-99.3377 -17.9943 46.1435 +-99.0471 -17.5513 45.0074 +-99.3746 -17.2209 44.1603 +-99.2407 -16.8131 43.1144 +-98.8218 -16.3622 41.9582 +-100.033 -16.1813 41.4943 +-98.7674 -15.6027 40.0107 +-99.2304 -15.3032 39.2425 +-99.5942 -14.988 38.4343 +-99.0232 -14.5356 37.2741 +-98.6243 -14.1145 36.1944 +-98.8662 -13.7883 35.3578 +-99.2873 -13.487 34.5853 +-98.7617 -13.0599 33.4899 +-99.0716 -12.7463 32.6857 +-98.6176 -12.3371 31.6364 +-98.9102 -12.0239 30.8334 +-99.1952 -11.7099 30.0281 +-98.6143 -11.2966 28.9683 +-98.9775 -10.9941 28.1927 +-98.0873 -10.5561 27.0694 +-99.4906 -10.3649 26.579 +-98.5794 -9.93252 25.4703 +-98.9108 -9.62901 24.692 +-99.0415 -9.30595 23.8636 +-100.523 -9.10583 23.3504 +-102.488 -8.93943 22.9237 +-106.596 -8.94107 22.9279 +-112.665 -9.07459 23.2703 +-117.867 -9.10231 23.3414 +-160.806 -11.8864 30.4807 +-163.441 -11.5424 29.5987 +-165.187 -11.1231 28.5235 +-167.91 -10.7567 27.5838 +-3231.56 -196.473 503.824 +-642.689 -36.9827 94.8361 +-3240.51 -175.953 451.204 +-382.045 -19.5075 50.0239 +-379.327 -18.1438 46.5267 +-381.038 -16.998 43.5885 +-379.246 -15.6988 40.257 +-381.797 -14.5793 37.3864 +-382.033 -13.3648 34.2719 +-680.6 -21.6336 55.4759 +-685.68 -19.6061 50.2766 +-689.915 -17.5277 44.9469 +-696.798 -15.4838 39.7057 +-703.235 -13.39 34.3365 +-709.624 -11.2566 28.8657 +-3274.3 -41.5419 106.528 +-3275.58 -31.1631 79.9127 +-3276.2 -20.7767 53.2785 +-3276.58 -10.3887 26.6402 +94.7 3.55271e-15 -1.7053e-13 +94.4964 -0.29268 0.770973 +95.2855 -0.590292 1.55494 +95.2673 -0.885383 2.33226 +95.2419 -1.18041 3.1094 +95.3092 -1.47689 3.89039 +95.469 -1.77573 4.6776 +95.6213 -2.07568 5.46772 +95.5666 -2.37175 6.24763 +95.5047 -2.66765 7.02706 +95.4355 -2.96334 7.80597 +95.359 -3.2588 8.58427 +96.1703 -3.58741 9.44988 +96.0784 -3.88514 10.2342 +95.9792 -4.18256 11.0176 +95.8727 -4.47965 11.8002 +95.8579 -4.78136 12.595 +95.5389 -5.06756 13.3489 +95.4107 -5.36328 14.1278 +96.1628 -5.71127 15.0445 +95.8218 -5.99658 15.7961 +95.6707 -6.29311 16.5772 +95.5123 -6.58917 17.3571 +95.2487 -6.87768 18.1171 +95.1738 -7.17978 18.9128 +95.8723 -7.54342 19.8707 +95.6831 -7.84006 20.6521 +95.4867 -8.13609 21.4319 +95.4771 -8.4487 22.2554 +96.1371 -8.82405 23.2441 +95.7232 -9.10312 23.9793 +95.4958 -9.39922 24.7592 +96.1262 -9.78266 25.7693 +95.882 -10.08 26.5526 +96.3955 -10.4596 27.5525 +96.1347 -10.7577 28.3378 +95.9616 -11.0661 29.15 +95.591 -11.3516 29.9021 +96.1592 -11.7512 30.9548 +96.715 -12.1552 32.019 +96.4125 -12.4543 32.8069 +96.0089 -12.74 33.5595 +96.7189 -13.1768 34.7099 +96.3913 -13.4758 35.4977 +96.8907 -13.8935 36.598 +96.5454 -14.193 37.387 +96.2848 -14.5054 38.2098 +95.9245 -14.8031 38.9939 +96.4704 -15.2439 40.1553 +96.0919 -15.5421 40.9408 +96.6124 -15.9891 42.1183 +96.2156 -16.2878 42.9049 +96.4406 -16.694 43.9751 +96.0265 -16.9921 44.7602 +96.496 -17.45 45.9664 +95.9746 -17.7318 46.7087 +96.2413 -18.1617 47.8411 +96.582 -18.6114 49.0259 +96.1207 -18.9099 49.812 +96.4354 -19.3641 51.0086 +96.6484 -19.804 52.1674 +96.1578 -20.1026 52.954 +96.4313 -20.5642 54.1698 +96.6894 -21.0289 55.394 +95.999 -21.29 56.0818 +96.231 -21.7581 57.3149 +95.6923 -22.0554 58.0978 +96.564 -22.6839 59.7535 +96.7487 -23.1607 61.0095 +96.1755 -23.4595 61.7965 +96.2504 -23.9193 63.0078 +96.3913 -24.402 64.2792 +95.7067 -24.6787 65.0083 +96.5432 -25.3542 66.7876 +95.9161 -25.6523 67.5727 +95.9164 -26.1212 68.808 +95.8221 -26.5702 69.9907 +96.026 -27.109 71.41 +96.0552 -27.6064 72.7203 +95.9901 -28.0834 73.9769 +96.5216 -28.7447 75.7187 +95.8112 -29.0426 76.5033 +96.5274 -29.7806 78.4474 +95.6416 -30.0314 79.1081 +96.2373 -30.7539 81.0113 +96.6571 -31.4344 82.804 +95.5879 -31.6358 83.3344 +95.822 -32.2726 85.012 +93.9458 -32.1984 84.8164 +94.577 -32.9857 86.8902 +94.328 -33.4781 88.1872 +94.062 -33.9715 89.4869 +94.543 -34.7465 91.5287 +94.1669 -35.2183 92.7713 +93.9112 -35.742 94.151 +94.3124 -36.5289 96.2237 +93.9459 -37.0307 97.5456 +94.0258 -37.7189 99.3584 +93.8164 -38.3031 100.897 +94.17 -39.1322 103.081 +94.2327 -39.8572 104.991 +93.5671 -40.2845 106.117 +92.573 -40.5727 106.876 +91.1984 -40.6913 107.188 +88.9015 -40.385 106.381 +87.9052 -40.6586 107.102 +85.879 -40.4475 106.546 +85.4166 -40.9688 107.919 +83.2892 -40.6863 107.175 +82.576 -41.087 108.231 +80.5875 -40.8471 107.599 +80.4297 -41.5338 109.408 +78.2311 -41.1633 108.432 +78.7062 -42.2032 111.171 +75.2147 -41.1058 108.28 +75.6518 -42.1457 111.019 +72.7579 -41.3248 108.857 +72.0526 -41.7301 109.925 +69.6331 -41.1303 108.345 +69.4312 -41.8337 110.198 +67.95 -41.7706 110.031 +68.1022 -42.7207 112.534 +65.7402 -42.0918 110.877 +65.5616 -42.8552 112.888 +63.3787 -42.3047 111.438 +63.0287 -42.9716 113.195 +60.8347 -42.3746 111.622 +60.5044 -43.0695 113.453 +58.3034 -42.4261 111.758 +56.44 -41.9963 110.626 +54.2219 -41.2687 108.709 +53.1222 -41.3706 108.978 +51.5335 -41.0795 108.211 +51.0798 -41.6932 109.827 +49.154 -41.0987 108.261 +48.486 -41.5445 109.436 +46.9382 -41.2322 108.613 +46.1425 -41.5743 109.514 +44.3301 -40.9866 107.966 +43.5308 -41.3216 108.849 +42.2053 -41.1548 108.409 +41.2251 -41.3173 108.837 +39.9147 -41.1417 108.375 +38.9967 -41.3645 108.962 +37.7001 -41.18 108.476 +36.8665 -41.4983 109.314 +35.4647 -41.1697 108.448 +34.6499 -41.5161 109.361 +33.3521 -41.2808 108.741 +32.6031 -41.7244 109.91 +31.0842 -41.1725 108.456 +30.3711 -41.6793 109.791 +28.9822 -41.2552 108.674 +28.2235 -41.7234 109.907 +26.8592 -41.2904 108.766 +25.9511 -41.5452 109.438 +24.6375 -41.1378 108.364 +23.8843 -41.6648 109.753 +22.5155 -41.1101 108.291 +21.7771 -41.7017 109.85 +20.4905 -41.2432 108.642 +19.5746 -41.515 109.358 +18.4123 -41.2588 108.683 +17.4711 -41.4898 109.292 +16.4085 -41.4369 109.152 +15.4674 -41.6971 109.838 +14.344 -41.4618 109.218 +13.4146 -41.7865 110.073 +12.2925 -41.509 109.342 +11.281 -41.5807 109.531 +10.2495 -41.5786 109.525 +9.25817 -41.7503 109.978 +8.16848 -41.4589 109.21 +7.23425 -41.9785 110.579 +6.11284 -41.3968 109.047 +5.134 -41.7333 109.933 +4.05532 -41.2155 108.569 +3.08888 -41.8653 110.281 +2.0524 -41.7312 109.927 +1.02624 -41.7361 109.941 +1.24345e-14 -41.2407 108.635 +-1.02973 -41.8781 110.314 +-2.05764 -41.8376 110.208 +-3.08888 -41.8653 110.281 +-4.10418 -41.712 109.877 +-5.14709 -41.8398 110.213 +-6.15471 -41.6804 109.794 +-7.20373 -41.8014 110.113 +-8.16848 -41.4589 109.21 +-9.34448 -42.1397 111.003 +-10.328 -41.8969 110.364 +-11.3961 -42.0048 110.648 +-12.3344 -41.6502 109.714 +-13.5617 -42.2451 111.281 +-14.4537 -41.7787 110.053 +-15.637 -42.1546 111.043 +-16.5477 -41.7883 110.078 +-17.7963 -42.2621 111.326 +-18.7408 -41.9949 110.622 +-19.8717 -42.1453 111.018 +-20.8031 -41.8724 110.3 +-21.9958 -42.1205 110.953 +-22.8017 -41.6325 109.668 +-24.2631 -42.3256 111.493 +-24.9702 -41.6935 109.828 +-26.3407 -42.1688 111.08 +-27.2866 -41.9473 110.497 +-28.6904 -42.4133 111.724 +-29.3451 -41.772 110.035 +-30.8468 -42.3324 111.511 +-31.6536 -41.9267 110.443 +-33.1643 -42.4428 111.802 +-33.9585 -42.0311 110.717 +-35.6723 -42.7412 112.588 +-36.3418 -42.1879 111.131 +-37.9491 -42.7168 112.524 +-38.5344 -42.0914 110.876 +-39.9487 -42.3743 111.621 +-41.0867 -42.3494 111.556 +-42.6605 -42.7561 112.627 +-43.505 -42.4222 111.748 +-44.8616 -42.5851 112.177 +-45.9069 -42.4445 111.807 +-47.6452 -42.9279 113.08 +-48.3243 -42.4499 111.821 +-50.0933 -42.9215 113.063 +-50.5997 -42.3072 111.445 +-52.914 -43.1906 113.772 +-53.2418 -42.4413 111.798 +-55.1542 -42.9531 113.146 +-56.2928 -42.8449 112.861 +-57.8176 -43.0213 113.326 +-58.8732 -42.8406 112.85 +-60.3259 -42.9425 113.118 +-61.2887 -42.6908 112.455 +-62.9825 -42.94 113.112 +-63.8481 -42.6181 112.264 +-66.4682 -43.4479 114.45 +-67.3885 -43.1473 113.658 +-70.712 -44.3579 116.847 +-71.3 -43.8298 115.455 +-74.6589 -44.9836 118.495 +-75.2986 -44.4768 117.16 +-77.8 -45.0588 118.693 +-78.2691 -44.4551 117.103 +-80.7561 -44.9892 118.51 +-81.3691 -44.4693 117.14 +-83.5081 -44.7781 117.954 +-84.1026 -44.2528 116.57 +-86.6035 -44.722 117.806 +-86.7821 -43.987 115.87 +-88.5572 -44.0633 116.071 +-89.2846 -43.615 114.89 +-92.257 -44.2496 116.561 +-93.823 -44.1889 116.402 +-96.7931 -44.7696 117.931 +-97.8902 -44.4682 117.137 +-100.723 -44.941 118.383 +-101.446 -44.4619 117.121 +-104.317 -44.9126 118.308 +-105.417 -44.5878 117.452 +-107.743 -44.7724 117.939 +-108.381 -44.2496 116.561 +-112.115 -44.9754 118.473 +-112.28 -44.2574 116.582 +-115.458 -44.7192 117.798 +-116.554 -44.3596 116.851 +-120.462 -45.0528 118.677 +-121.774 -44.7543 117.891 +-124.972 -45.1351 118.894 +-126.572 -44.9218 118.332 +-98.4999 -34.3538 90.4942 +-98.4776 -33.7516 88.9078 +-98.4333 -33.1521 87.3287 +-98.5865 -32.6282 85.9485 +-98.7952 -32.1298 84.6357 +-99.0612 -31.6563 83.3885 +-98.4877 -30.925 81.462 +-98.6405 -30.4325 80.1648 +-98.7767 -29.9415 78.8713 +-98.9729 -29.4747 77.6418 +-98.5365 -28.8284 75.9393 +-98.5421 -28.3211 74.603 +-98.6086 -27.8381 73.3306 +-98.8165 -27.4005 72.1779 +-98.6932 -26.8774 70.7999 +-98.7113 -26.3998 69.5419 +-99.1156 -26.0298 68.5671 +-99.1046 -25.5549 67.3163 +-99.3221 -25.144 66.2337 +-99.1993 -24.6522 64.9382 +-99.1424 -24.1832 63.7029 +-99.07 -23.7164 62.4734 +-98.8989 -23.2324 61.1983 +-98.7954 -22.7706 59.9818 +-99.4359 -22.4828 59.2237 +-99.3064 -22.0235 58.0138 +-99.2473 -21.5853 56.8595 +-99.0028 -21.1126 55.6143 +-99.5182 -20.8051 54.8045 +-99.2465 -20.3364 53.5698 +-99.1335 -19.9059 52.4357 +-99.6192 -19.5981 51.625 +-99.3063 -19.1364 50.4088 +-98.9784 -18.6782 49.2017 +-99.4339 -18.3709 48.3923 +-99.0799 -17.9172 47.1972 +-99.3377 -17.578 46.3037 +-99.0471 -17.1452 45.1636 +-99.4649 -16.8378 44.3538 +-99.2407 -16.4241 43.2641 +-98.8218 -15.9837 42.1039 +-99.211 -15.677 41.296 +-99.6844 -15.3833 40.5223 +-99.1384 -14.9353 39.3422 +-98.7627 -14.519 38.2457 +-99.0232 -14.1993 37.4035 +-99.3686 -13.892 36.5941 +-99.7064 -13.5838 35.7821 +-99.1936 -13.1626 34.6726 +-98.6677 -12.7456 33.5742 +-99.0716 -12.4514 32.7992 +-98.6176 -12.0516 31.7462 +-98.9102 -11.7457 30.9404 +-99.1952 -11.439 30.1323 +-99.3773 -11.1206 29.2937 +-98.9775 -10.7398 28.2905 +-99.142 -10.4227 27.4554 +-99.4906 -10.1251 26.6713 +-98.6758 -9.71222 25.5837 +-98.9108 -9.40625 24.7777 +-99.5256 -9.13509 24.0635 +-99.9405 -8.84368 23.2958 +-105.016 -8.94806 23.5708 +-108.35 -8.87796 23.3862 +-115.008 -9.04903 23.8368 +-122.171 -9.2164 24.2777 +-162.178 -11.7104 30.8474 +-163.932 -11.3093 29.7907 +-165.777 -10.9046 28.7247 +-168.501 -10.5448 27.777 +-3231.56 -191.928 505.573 +-649.998 -36.5381 96.248 +-379.584 -20.1339 53.0362 +-382.045 -19.0562 50.1976 +-380.417 -17.775 46.8225 +-380.443 -16.5788 43.6715 +-378.75 -15.3155 40.3438 +-379.609 -14.1604 37.3011 +-381.237 -13.0284 34.3192 +-3264.03 -101.351 266.976 +-3266.4 -91.2374 240.336 +-691.811 -17.1692 45.2268 +-696.299 -15.1148 39.8151 +-704.234 -13.0988 34.5046 +-707.226 -10.959 28.868 +-3274.5 -40.5834 106.904 +-3275.58 -30.4422 80.1901 +-3275.8 -20.2936 53.4569 +-3276.18 -10.1472 26.7294 +94.7 3.55271e-15 -1.7053e-13 +95.2964 -0.28813 0.780131 +95.3855 -0.576844 1.56184 +95.3673 -0.86521 2.34261 +95.3419 -1.15351 3.1232 +94.7098 -1.43266 3.87901 +95.5688 -1.73527 4.69834 +94.723 -2.00722 5.43469 +95.5666 -2.31528 6.26877 +95.5047 -2.60413 7.05085 +95.4355 -2.89278 7.83239 +96.2548 -3.2111 8.69424 +96.1703 -3.50199 9.48186 +96.0784 -3.79264 10.2688 +96.0785 -4.0872 11.0663 +95.9719 -4.3775 11.8524 +95.7589 -4.66267 12.6245 +96.5279 -4.99811 13.5327 +95.4107 -5.23558 14.1757 +96.1628 -5.57528 15.0954 +95.8218 -5.8538 15.8495 +95.8674 -6.15592 16.6675 +95.4142 -6.42567 17.3979 +95.2487 -6.71393 18.1784 +95.1738 -7.00883 18.9769 +95.1889 -7.31133 19.7959 +95.878 -7.66898 20.7642 +95.6812 -7.95855 21.5483 +95.283 -8.23077 22.2853 +96.1371 -8.61395 23.3228 +95.7232 -8.88638 24.0604 +96.363 -9.25875 25.0686 +96.1262 -9.54974 25.8565 +95.882 -9.84001 26.6424 +96.3955 -10.2106 27.6458 +96.23 -10.512 28.462 +95.9616 -10.8026 29.2487 +96.4445 -11.1803 30.2712 +96.1592 -11.4714 31.0596 +96.8093 -11.8774 32.1587 +96.4125 -12.1578 32.9179 +96.0089 -12.4367 33.673 +96.7189 -12.863 34.8274 +96.3913 -13.1549 35.6178 +96.8907 -13.5627 36.7218 +96.5454 -13.8551 37.5136 +96.1928 -14.1465 38.3025 +95.9245 -14.4506 39.1259 +96.379 -14.8669 40.253 +96.0919 -15.1721 41.0793 +96.5218 -15.5938 42.2212 +96.1253 -15.885 43.0097 +96.5305 -16.3118 44.1651 +96.116 -16.603 44.9535 +96.4069 -17.0188 46.0794 +95.9746 -17.3096 46.8668 +96.3296 -17.7455 48.047 +96.582 -18.1683 49.1918 +96.2082 -18.4764 50.0261 +96.4354 -18.9031 51.1813 +96.6484 -19.3325 52.344 +96.0717 -19.6064 53.0855 +96.3456 -20.0567 54.3048 +96.6041 -20.5102 55.5326 +96.0838 -20.8015 56.3213 +96.231 -21.2401 57.5089 +96.4471 -21.7001 58.7543 +96.6474 -22.1629 60.0075 +96.7487 -22.6093 61.216 +96.0931 -22.8813 61.9526 +96.2504 -23.3498 63.221 +96.3913 -23.821 64.4968 +95.7876 -24.1115 65.2835 +95.8197 -24.5651 66.5115 +96.555 -25.2083 68.253 +96.6304 -25.6891 69.5548 +96.5313 -26.1296 70.7474 +95.8695 -26.4204 71.5349 +95.8998 -26.9055 72.8483 +95.8358 -27.3707 74.1079 +96.5216 -28.0603 75.975 +95.8112 -28.3511 76.7623 +95.6972 -28.8215 78.036 +96.3157 -29.5229 79.9352 +96.2373 -30.0217 81.2855 +96.141 -30.5222 82.6407 +96.3193 -31.1188 84.2562 +96.1846 -31.6235 85.6226 +95.0967 -31.8168 86.146 +94.8623 -32.2974 87.4472 +94.3988 -32.7055 88.5522 +94.1321 -33.1873 89.8567 +93.8483 -33.67 91.1637 +94.3046 -34.43 93.2214 +94.5932 -35.1446 95.1563 +94.4475 -35.7101 96.6872 +93.9459 -36.149 97.8758 +93.6282 -36.6649 99.2725 +93.6852 -37.3391 101.098 +94.2999 -38.2531 103.573 +94.1041 -38.8552 105.203 +94.2032 -39.5929 107.2 +94.0205 -40.2262 108.915 +94.1242 -40.9967 111.001 +91.7336 -40.6794 110.142 +91.1925 -41.1748 111.483 +88.527 -40.7019 110.203 +88.2122 -41.3023 111.829 +85.9342 -40.9787 110.952 +85.944 -41.7447 113.026 +83.5127 -41.322 111.882 +83.375 -42.0295 113.798 +80.9152 -41.5621 112.532 +81.1899 -42.4986 115.068 +78.6459 -41.9578 113.603 +78.2308 -42.5447 115.192 +75.5665 -41.8982 113.442 +75.8668 -42.8929 116.135 +71.2813 -41.1013 111.284 +71.4614 -42.0316 113.803 +69.8 -41.8861 113.409 +70.0226 -42.8797 116.1 +67.8249 -42.3926 114.781 +67.3271 -42.9615 116.321 +65.8669 -42.9189 116.206 +65.1989 -43.3928 117.489 +62.9231 -42.7858 115.845 +62.1554 -43.1912 116.943 +59.3993 -42.1944 114.244 +57.6454 -41.8719 113.371 +55.2785 -41.0712 111.203 +54.1589 -41.1738 111.481 +52.469 -40.8294 110.548 +52.1963 -41.5902 112.608 +50.2871 -41.0449 111.132 +49.634 -41.5154 112.405 +47.5376 -40.7646 110.373 +47.1687 -41.487 112.329 +45.3694 -40.9486 110.871 +44.8616 -41.5712 112.556 +43.1287 -41.0539 111.156 +42.2933 -41.3789 112.036 +40.5983 -40.8498 110.603 +40.1708 -41.5954 112.622 +38.5344 -41.0892 111.252 +37.7686 -41.5015 112.368 +36.4588 -41.3158 111.865 +35.3315 -41.3248 111.89 +34.0412 -41.1305 111.363 +33.5651 -41.9329 113.536 +31.8089 -41.1291 111.36 +31.2224 -41.8275 113.251 +29.5629 -41.0799 111.226 +28.9472 -41.7742 113.106 +27.489 -41.2524 111.693 +26.8385 -41.9429 113.563 +25.4068 -41.4125 112.127 +24.5422 -41.7932 113.158 +23.0879 -41.1516 111.42 +22.3421 -41.7648 113.081 +20.9593 -41.1824 111.504 +20.2844 -41.9963 113.707 +18.7408 -40.995 110.996 +17.8849 -41.4613 112.259 +16.6451 -41.0334 111.101 +15.8328 -41.6661 112.814 +14.6365 -41.2999 111.822 +13.6976 -41.6522 112.776 +12.4912 -41.1751 111.484 +11.6261 -41.8324 113.264 +10.4413 -41.348 111.952 +9.54063 -41.9997 113.717 +8.39868 -41.6124 112.668 +7.38687 -41.8435 113.294 +6.25415 -41.3453 111.945 +5.27795 -41.8819 113.398 +4.16002 -41.2728 111.749 +3.15956 -41.8036 113.186 +2.08556 -41.3958 112.082 +1.05853 -42.024 113.783 +9.76996e-15 -41.4021 112.099 +-1.05591 -41.92 113.501 +-2.08556 -41.3958 112.082 +-3.19359 -42.2537 114.404 +-4.17049 -41.3768 112.03 +-5.29103 -41.9859 113.679 +-6.28555 -41.5528 112.507 +-7.42961 -42.0856 113.949 +-8.39868 -41.6124 112.668 +-9.52493 -41.9308 113.53 +-10.4936 -41.5552 112.513 +-11.7219 -42.1771 114.197 +-12.5539 -41.382 112.044 +-13.8787 -42.2031 114.268 +-14.7096 -41.506 112.38 +-16.0025 -42.1127 114.023 +-16.8399 -41.5136 112.401 +-18.1658 -42.1123 114.022 +-18.9755 -41.5084 112.387 +-20.3339 -42.0985 113.984 +-21.0635 -41.3872 112.058 +-22.5608 -42.1736 114.188 +-23.4504 -41.7977 113.17 +-24.8014 -42.2346 114.353 +-25.49 -41.5479 112.494 +-27.1199 -42.3826 114.753 +-27.7815 -41.6914 112.882 +-29.3207 -42.3133 114.566 +-30.1677 -41.9204 113.502 +-31.8483 -42.666 115.521 +-32.43 -41.9325 113.535 +-34.0729 -42.5672 115.253 +-34.7027 -41.9297 113.527 +-36.4392 -42.6206 115.398 +-37.0435 -41.9786 113.66 +-38.9113 -42.7571 115.767 +-39.4924 -42.1106 114.017 +-41.44 -42.9095 116.18 +-41.9006 -42.1601 114.151 +-43.8956 -42.9463 116.28 +-44.36 -42.226 114.329 +-46.0523 -42.6743 115.543 +-46.8029 -42.2426 114.374 +-48.8546 -42.9698 116.343 +-49.3731 -42.3386 114.634 +-51.2796 -42.8919 116.132 +-51.7328 -42.2249 114.327 +-53.7912 -42.861 116.049 +-54.218 -42.1906 114.234 +-56.6886 -43.097 116.688 +-57.138 -42.4529 114.944 +-59.2383 -43.0291 116.504 +-60.0568 -42.6615 115.509 +-62.1554 -43.1912 116.943 +-62.8323 -42.7238 115.677 +-65.1989 -43.3928 117.489 +-65.4443 -42.6434 115.46 +-68.6631 -43.8141 118.63 +-69.1339 -43.2109 116.996 +-73.3219 -44.8999 121.569 +-73.35 -44.0165 119.177 +-76.6383 -45.0766 122.048 +-77.5647 -44.7243 121.094 +-80.308 -45.404 122.934 +-80.6537 -44.7187 121.079 +-83.3889 -45.3497 122.787 +-83.3298 -44.4568 120.37 +-85.6606 -44.8386 121.403 +-86.0039 -44.1758 119.609 +-88.416 -44.5708 120.678 +-88.6749 -43.8762 118.797 +-91.4026 -44.3962 120.205 +-92.2235 -43.978 119.073 +-95.3501 -44.6443 120.877 +-96.4108 -44.3266 120.017 +-99.6542 -44.9956 121.828 +-99.9834 -44.3376 120.047 +-103.275 -44.9828 121.794 +-103.775 -44.3993 120.214 +-106.289 -44.672 120.952 +-106.831 -44.1104 119.432 +-110.861 -44.971 121.762 +-110.349 -43.9804 119.08 +-115.097 -45.0725 122.037 +-115.425 -44.4135 120.252 +-119.85 -45.3147 122.692 +-120.373 -44.7226 121.089 +-125.349 -45.7644 123.91 +-125.247 -44.9349 121.664 +-98.9684 -34.8924 94.4734 +-98.5707 -34.1509 92.4657 +-98.2859 -33.463 90.6032 +-98.9812 -33.1165 89.6649 +-98.5058 -32.3867 87.6889 +-98.6596 -31.875 86.3034 +-98.7952 -31.3648 84.9221 +-98.9869 -30.8794 83.608 +-99.0868 -30.3724 82.235 +-99.3953 -29.9353 81.0516 +-98.7767 -29.2286 79.1382 +-99.1262 -28.8175 78.0251 +-99.0766 -28.2963 76.614 +-98.6198 -27.6686 74.9146 +-98.6086 -27.1753 73.5788 +-98.6589 -26.7055 72.3068 +-98.2965 -26.132 70.754 +-99.1905 -25.8964 70.116 +-98.3117 -25.2039 68.2412 +-99.1855 -24.9668 67.5993 +-99.4035 -24.5654 66.5123 +-99.2812 -24.0851 65.2119 +-99.06 -23.5878 63.8653 +-99.07 -23.1518 62.6848 +-98.8989 -22.6792 61.4054 +-98.7954 -22.2284 60.1848 +-99.4359 -21.9475 59.4241 +-99.2216 -21.4808 58.1606 +-99.2473 -21.0713 57.052 +-99.0028 -20.6099 55.8025 +-99.5182 -20.3098 54.99 +-99.2465 -19.8522 53.7511 +-99.1335 -19.432 52.6132 +-98.832 -18.9803 51.3905 +-99.3063 -18.6808 50.5794 +-98.9784 -18.2335 49.3683 +-99.2565 -17.9015 48.4695 +-98.9017 -17.4592 47.2718 +-99.2482 -17.144 46.4185 +-99.7661 -16.8585 45.6455 +-99.6454 -16.4667 44.5847 +-99.2407 -16.0331 43.4105 +-98.8218 -15.6031 42.2464 +-99.211 -15.3037 41.4358 +-98.7674 -14.8789 40.2855 +-99.2304 -14.5932 39.512 +-98.7627 -14.1733 38.3752 +-99.116 -13.8742 37.5652 +-99.4616 -13.574 36.7524 +-99.7064 -13.2603 35.9032 +-99.1936 -12.8492 34.79 +-98.7617 -12.454 33.7199 +-99.0716 -12.1549 32.9102 +-98.6176 -11.7647 31.8537 +-98.9102 -11.4661 31.0451 +-99.2903 -11.1773 30.2633 +-98.7097 -10.7829 29.1955 +-98.8819 -10.4739 28.3588 +-99.2378 -10.1844 27.575 +-99.4906 -9.88401 26.7616 +-98.6758 -9.48097 25.6703 +-98.7176 -9.16434 24.813 +-100.591 -9.01301 24.4033 +-102.366 -8.84265 23.942 +-108.322 -9.00999 24.3951 +-111.37 -8.90817 24.1194 +-122.037 -9.3735 25.3793 +-142.712 -10.5096 28.4555 +-163.157 -11.5007 31.1389 +-163.932 -11.04 29.8915 +-164.695 -10.5755 28.6339 +-171.652 -10.4863 28.3923 +-632.604 -36.677 99.3054 +-665.109 -36.4972 98.8185 +-381.562 -19.7569 53.493 +-380.956 -18.5495 50.2239 +-380.021 -17.3337 46.932 +-378.557 -16.1038 43.6022 +-379.048 -14.9626 40.5122 +-379.112 -13.8052 37.3784 +-380.44 -12.6916 34.3634 +-382.24 -11.5862 31.3705 +-381.421 -10.4002 28.1593 +-692.708 -16.7822 45.4388 +-697.497 -14.7803 40.0185 +-702.236 -12.7507 34.5232 +-709.025 -10.7253 29.0394 +-145.112 -1.75566 4.75356 +-3275.18 -29.7137 80.4517 +-729.489 -4.41159 11.9447 +-737.372 -2.22946 6.0364 +95.6 3.55271e-15 1.13687e-13 +95.2964 -0.281079 0.782699 +95.3855 -0.562727 1.56698 +95.3673 -0.844037 2.35032 +95.5418 -1.12764 3.14005 +94.7098 -1.3976 3.89178 +95.6687 -1.69457 4.71873 +94.723 -1.9581 5.45258 +95.5666 -2.25862 6.28941 +95.5047 -2.5404 7.07406 +95.4355 -2.82199 7.85817 +96.2548 -3.13252 8.72286 +95.2752 -3.38449 9.42451 +96.0784 -3.69983 10.3026 +95.9792 -3.98306 11.0913 +95.9719 -4.27037 11.8914 +95.7589 -4.54857 12.666 +96.5279 -4.8758 13.5773 +96.2996 -5.15504 14.3548 +96.1628 -5.43885 15.1451 +95.8218 -5.71055 15.9017 +95.8674 -6.00527 16.7224 +95.5123 -6.27488 17.4732 +95.2487 -6.54963 18.2382 +95.1738 -6.83732 19.0393 +95.1889 -7.13241 19.861 +95.6831 -7.4661 20.7902 +95.6812 -7.76379 21.6192 +95.283 -8.02935 22.3587 +96.1371 -8.40316 23.3996 +95.9164 -8.68638 24.1883 +96.363 -9.03217 25.1512 +96.03 -9.30675 25.9158 +95.882 -9.59921 26.7301 +95.5348 -9.87176 27.4891 +96.23 -10.2548 28.5557 +95.9616 -10.5382 29.3449 +96.4445 -10.9067 30.3709 +96.0647 -11.1797 31.1312 +96.8093 -11.5867 32.2646 +96.3185 -11.8487 32.9941 +96.0089 -12.1323 33.7839 +96.7189 -12.5482 34.9421 +96.3913 -12.833 35.7351 +96.8907 -13.2308 36.8427 +96.5454 -13.5161 37.6371 +96.2848 -13.8135 38.4654 +95.9245 -14.097 39.2547 +96.4704 -14.5168 40.4238 +96.0919 -14.8008 41.2146 +96.5218 -15.2122 42.3601 +96.1253 -15.4963 43.1513 +96.5305 -15.9126 44.3105 +96.116 -16.1967 45.1015 +96.4069 -16.6023 46.2311 +95.9746 -16.886 47.0211 +96.3296 -17.3112 48.2052 +96.582 -17.7237 49.3538 +96.1207 -18.0079 50.1452 +96.4354 -18.4405 51.3497 +96.6484 -18.8594 52.5163 +96.0717 -19.1266 53.2603 +96.3456 -19.5659 54.4836 +96.6041 -20.0083 55.7154 +96.0838 -20.2924 56.5067 +96.231 -20.7203 57.6982 +96.4471 -21.169 58.9477 +96.6474 -21.6206 60.205 +96.0026 -21.8859 60.9439 +96.0931 -22.3214 62.1565 +96.2504 -22.7784 63.4292 +96.3913 -23.238 64.7091 +96.5157 -23.7003 65.9962 +95.8197 -23.9639 66.7304 +96.555 -24.5914 68.4777 +96.6304 -25.0604 69.7837 +96.5313 -25.4901 70.9803 +95.8695 -25.7739 71.7704 +96.0552 -26.2896 73.2066 +95.8358 -26.7009 74.3519 +95.8322 -27.1781 75.6806 +95.8112 -27.6573 77.015 +96.3764 -28.3157 78.8485 +96.3157 -28.8005 80.1983 +96.2373 -29.287 81.5531 +96.141 -29.7752 82.9127 +96.5387 -30.4265 84.7261 +96.1846 -30.8496 85.9044 +95.9599 -31.32 87.2141 +94.8623 -31.507 87.7351 +96.0251 -32.4548 90.3743 +94.1321 -32.3752 90.1525 +94.4041 -33.0406 92.0055 +94.3046 -33.5874 93.5282 +94.0476 -34.0869 94.919 +94.4475 -34.8362 97.0055 +94.0129 -35.2894 98.2676 +93.6282 -35.7677 99.5993 +93.6852 -36.4254 101.431 +94.2999 -37.317 103.914 +94.1041 -37.9044 105.549 +94.2032 -38.624 107.553 +93.9575 -39.2154 109.2 +94.1242 -39.9935 111.367 +93.7652 -40.5626 112.951 +91.1925 -40.1672 111.85 +93.2211 -41.8115 116.429 +88.2122 -40.2916 112.197 +90.754 -42.2181 117.561 +85.944 -40.7232 113.399 +87.3557 -42.1657 117.415 +83.375 -41.001 114.172 +84.7736 -42.4783 118.286 +81.1899 -41.4586 115.446 +82.5673 -42.9718 119.66 +78.2308 -41.5036 115.572 +80.0178 -43.2803 120.519 +75.8668 -41.8432 116.517 +77.6162 -43.6589 121.573 +71.4614 -41.003 114.178 +73.1 -42.793 119.162 +70.0226 -41.8304 116.482 +69.958 -42.6561 118.781 +67.3271 -41.9102 116.704 +68.8715 -43.7782 121.906 +65.1989 -42.3309 117.876 +66.2372 -43.937 122.348 +62.1554 -42.1342 117.328 +63.0816 -43.7133 121.725 +57.6454 -40.8472 113.744 +57.8987 -41.9652 116.857 +54.1589 -40.1662 111.847 +54.9908 -41.7445 116.243 +52.1963 -40.5724 112.979 +52.6706 -41.9382 116.782 +49.634 -40.4994 112.775 +50.3097 -42.0859 117.193 +47.1687 -40.4717 112.698 +47.6629 -41.9659 116.859 +44.8616 -40.5538 112.927 +45.2835 -42.0501 117.093 +42.2933 -40.3663 112.405 +43.0727 -42.2789 117.731 +40.1708 -40.5775 112.993 +40.6357 -42.2694 117.704 +37.7686 -40.4859 112.738 +38.096 -42.115 117.274 +35.3315 -40.3135 112.258 +35.9155 -42.333 117.881 +33.5651 -40.9067 113.91 +33.7241 -42.5385 118.453 +31.2224 -40.8039 113.623 +31.2321 -42.3374 117.893 +28.9472 -40.7519 113.479 +29.1537 -42.6797 118.847 +26.8385 -40.9165 113.937 +26.8414 -42.6801 118.848 +24.5422 -40.7705 113.53 +24.4999 -42.5996 118.624 +22.3421 -40.7428 113.453 +22.088 -42.3384 117.896 +20.2844 -40.9685 114.082 +19.8046 -42.2617 117.683 +17.8849 -40.4467 112.629 +17.6611 -42.4726 118.27 +15.8328 -40.6464 113.185 +15.3921 -42.3691 117.982 +13.6976 -40.6329 113.147 +13.2019 -42.4533 118.216 +11.6261 -40.8087 113.637 +11.0165 -42.5584 118.509 +9.54063 -40.9719 114.091 +8.78234 -42.4482 118.202 +7.38687 -40.8195 113.667 +6.61003 -42.6287 118.705 +5.27795 -40.857 113.771 +4.42526 -42.8301 119.266 +3.15956 -40.7806 113.559 +2.21297 -42.8497 119.32 +1.05853 -40.9956 114.157 +1.24345e-14 -42.552 118.491 +-1.05591 -40.8942 113.875 +-2.20424 -42.6808 118.85 +-3.19359 -41.2197 114.781 +-4.42526 -42.8301 119.266 +-5.29103 -40.9584 114.054 +-6.61526 -42.6625 118.799 +-7.42961 -41.0557 114.325 +-8.87302 -42.8866 119.423 +-9.52493 -40.9047 113.904 +-11.1124 -42.9288 119.54 +-11.7219 -41.145 114.573 +-13.3483 -42.9238 119.526 +-13.8787 -41.1703 114.644 +-15.5018 -42.671 118.822 +-16.0025 -41.0821 114.398 +-17.9116 -43.0752 119.948 +-18.1658 -41.0818 114.397 +-20.0393 -42.7625 119.077 +-20.3339 -41.0682 114.359 +-22.2443 -42.6378 118.73 +-22.5608 -41.1416 114.564 +-24.6334 -42.8318 119.27 +-24.8014 -41.2011 114.729 +-26.8622 -42.7132 118.94 +-27.1199 -41.3454 115.131 +-29.3561 -42.9762 119.672 +-29.3207 -41.2778 114.943 +-31.8853 -43.2229 120.359 +-31.8483 -41.6219 115.901 +-34.1124 -43.0282 119.817 +-34.0729 -41.5255 115.633 +-36.2187 -42.6906 118.877 +-36.4392 -41.5776 115.778 +-39.2655 -43.4078 120.874 +-38.9113 -41.7107 116.149 +-41.5937 -43.2658 120.479 +-41.44 -41.8595 116.563 +-44.1145 -43.3016 120.579 +-43.8956 -41.8953 116.662 +-46.7542 -43.4159 120.897 +-46.0523 -41.63 115.924 +-49.4189 -43.5122 121.165 +-48.8546 -41.9183 116.726 +-51.883 -43.402 120.858 +-51.2796 -41.8422 116.515 +-54.8196 -43.6494 121.547 +-53.7912 -41.8121 116.431 +-57.5532 -43.69 121.66 +-56.6886 -42.0423 117.072 +-60.4344 -43.8032 121.975 +-59.2383 -41.9761 116.887 +-63.1693 -43.7741 121.894 +-62.1554 -42.1342 117.328 +-66.6912 -44.2382 123.186 +-65.1989 -42.3309 117.876 +-69.8104 -44.3751 123.568 +-68.6631 -42.7419 119.02 +-73.4971 -44.8138 124.789 +-73.3219 -43.8012 121.97 +-78.35 -45.8662 127.72 +-76.6383 -43.9735 122.45 +-81.8396 -46.0346 128.189 +-80.308 -44.2929 123.339 +-84.6811 -45.8027 127.543 +-83.3889 -44.2399 123.191 +-87.4146 -45.4948 126.686 +-85.6606 -43.7413 121.803 +-89.6945 -44.9442 125.153 +-88.416 -43.4801 121.075 +-95.902 -46.2907 128.902 +-91.4026 -43.3097 120.601 +-97.6899 -45.4448 126.546 +-95.3501 -43.5517 121.275 +-101.586 -45.5634 126.877 +-99.6542 -43.8945 122.229 +-105.832 -45.7828 127.488 +-103.275 -43.8819 122.195 +-109.313 -45.6242 127.046 +-106.289 -43.5788 121.35 +-113.388 -45.6716 127.178 +-110.861 -43.8705 122.163 +-117.238 -45.5827 126.93 +-115.097 -43.9695 122.438 +-122.384 -45.9389 127.922 +-119.85 -44.2057 123.096 +-125.965 -45.655 127.132 +-125.349 -44.6444 124.318 +-98.2942 -34.4022 95.7971 +-98.9684 -34.0385 94.7844 +-98.6414 -33.3391 92.8366 +-98.2859 -32.6441 90.9015 +-98.3338 -32.0947 89.3716 +-98.5058 -31.5941 87.9776 +-98.5133 -31.0488 86.4592 +-98.7952 -30.5972 85.2017 +-98.3181 -29.9202 83.3165 +-99.0868 -29.6291 82.5058 +-98.6405 -28.9809 80.7009 +-98.7767 -28.5133 79.3987 +-99.0495 -28.0905 78.2214 +-99.0766 -27.6038 76.8662 +-98.5421 -26.9703 75.1019 +-98.6086 -26.5103 73.821 +-98.5801 -26.0312 72.4869 +-98.2965 -25.4925 70.9869 +-98.7113 -25.1406 70.007 +-98.3117 -24.5871 68.4658 +-99.4282 -24.4154 67.9877 +-99.4035 -23.9642 66.7313 +-99.1993 -23.4763 65.3725 +-99.06 -23.0105 64.0755 +-99.07 -22.5852 62.8912 +-98.8989 -22.1242 61.6076 +-98.7954 -21.6844 60.3829 +-99.4359 -21.4104 59.6197 +-99.3912 -20.9909 58.4517 +-99.2473 -20.5557 57.2398 +-99.0028 -20.1055 55.9862 +-99.5182 -19.8128 55.171 +-99.2465 -19.3664 53.928 +-99.1335 -18.9564 52.7864 +-98.832 -18.5159 51.5596 +-99.3063 -18.2236 50.7459 +-98.8018 -17.7555 49.4424 +-99.2565 -17.4635 48.6291 +-99.8818 -17.2007 47.8974 +-99.2482 -16.7245 46.5713 +-99.2269 -16.3571 45.5482 +-99.6454 -16.0638 44.7315 +-99.2407 -15.6407 43.5534 +-98.8218 -15.2213 42.3855 +-99.211 -14.9292 41.5722 +-98.7674 -14.5148 40.4181 +-99.1384 -14.2229 39.6053 +-98.7627 -13.8265 38.5015 +-99.116 -13.5346 37.6888 +-99.4616 -13.2418 36.8734 +-98.9595 -12.8389 35.7516 +-99.1936 -12.5348 34.9045 +-98.7617 -12.1492 33.8309 +-99.0716 -11.8575 33.0185 +-98.6176 -11.4768 31.9585 +-98.9102 -11.1855 31.1473 +-99.2903 -10.9038 30.3629 +-98.7097 -10.5191 29.2916 +-98.9775 -10.2275 28.4797 +-99.2378 -9.9352 27.6657 +-99.3945 -9.6328 26.8237 +-98.6758 -9.24896 25.7548 +-100.939 -9.14128 25.455 +-100.591 -8.79244 24.4836 +-110.226 -9.28853 25.865 +-108.322 -8.7895 24.4754 +-121.407 -9.47328 26.3795 +-122.037 -9.14411 25.4629 +-163.351 -11.7352 32.678 +-163.157 -11.2193 31.2414 +-165.11 -10.8472 30.2054 +-164.695 -10.3167 28.7282 +-628.209 -37.4383 104.251 +-632.604 -35.7795 99.6323 +-381.643 -20.4298 56.8892 +-381.562 -19.2734 53.6691 +-379.57 -18.0297 50.2058 +-380.021 -16.9095 47.0865 +-380.244 -15.7798 43.9406 +-379.048 -14.5964 40.6455 +-379.41 -13.4779 37.5309 +-380.44 -12.381 34.4765 +-379.451 -11.2202 31.244 +-381.421 -10.1457 28.252 +-382.965 -9.051 25.2036 +-697.497 -14.4186 40.1502 +-3272.01 -57.9569 161.388 +-709.025 -10.4628 29.135 +-145.411 -1.71623 4.77906 +-3275.18 -28.9866 80.7165 +-729.389 -4.30302 11.9823 +-737.372 -2.1749 6.05627 +95.7 0 -1.7053e-13 +95.6964 -0.275155 0.788499 +95.6854 -0.550292 1.57694 +95.6672 -0.825381 2.36525 +95.7416 -1.10156 3.15669 +95.6089 -1.37536 3.9413 +95.6687 -1.65192 4.73383 +95.6213 -1.92693 5.52189 +95.5666 -2.20178 6.30954 +95.5047 -2.47647 7.09669 +95.4355 -2.75097 7.88331 +95.359 -3.02526 8.66933 +96.1703 -3.33031 9.54351 +96.0784 -3.60671 10.3356 +95.9792 -3.88281 11.1268 +95.8727 -4.15862 11.9171 +95.7589 -4.43409 12.7066 +95.5389 -4.7044 13.4811 +95.4107 -4.97892 14.2678 +95.1766 -5.2476 15.0378 +96.0188 -5.57827 15.9854 +95.6707 -5.84211 16.7414 +95.5123 -6.11696 17.5291 +95.2487 -6.38479 18.2966 +95.1738 -6.66524 19.1002 +96.0675 -7.01709 20.1085 +95.878 -7.29303 20.8993 +95.6812 -7.5684 21.6884 +95.283 -7.82727 22.4302 +95.9434 -8.1752 23.4273 +95.7232 -8.45074 24.2169 +95.4958 -8.72562 25.0046 +96.1262 -9.08159 26.0246 +95.882 -9.35762 26.8157 +95.5348 -9.62331 27.577 +95.3717 -9.90755 28.3916 +95.8665 -10.2628 29.4097 +96.4445 -10.6322 30.4681 +96.1592 -10.9091 31.2615 +96.715 -11.2841 32.3363 +96.4125 -11.5618 33.1319 +96.0089 -11.827 33.892 +96.7189 -12.2324 35.0539 +96.3913 -12.5101 35.8494 +96.0562 -12.7867 36.6422 +96.5454 -13.1759 37.7575 +96.1928 -13.453 38.5515 +95.9245 -13.7422 39.3803 +96.379 -14.1381 40.5147 +96.0919 -14.4283 41.3464 +95.7967 -14.718 42.1766 +96.1253 -15.1063 43.2893 +96.5305 -15.5121 44.4523 +96.116 -15.789 45.2458 +96.496 -16.1994 46.4219 +95.9746 -16.461 47.1716 +96.2413 -16.8601 48.3151 +96.6699 -17.2934 49.5568 +96.1207 -17.5547 50.3056 +96.4354 -17.9764 51.514 +95.9556 -18.253 52.3067 +96.9333 -18.8125 53.91 +96.4313 -19.0905 54.7066 +96.6041 -19.5047 55.8936 +96.8471 -19.9389 57.1378 +96.231 -20.1988 57.8828 +96.4471 -20.6363 59.1363 +96.6474 -21.0764 60.3977 +96.7487 -21.5009 61.6141 +96.1755 -21.7783 62.4088 +96.2504 -22.2051 63.6321 +96.3099 -22.6341 64.8614 +96.5157 -23.1038 66.2074 +95.8197 -23.3608 66.944 +95.9161 -23.8139 68.2423 +95.9164 -24.2492 69.4898 +95.9797 -24.7066 70.8006 +95.8695 -25.1252 72 +96.0552 -25.628 73.4408 +95.9901 -26.0708 74.7099 +95.9854 -26.5365 76.0442 +95.8112 -26.9612 77.2614 +95.8481 -27.4518 78.6673 +95.7914 -27.9228 80.017 +95.5684 -28.3515 81.2455 +96.2884 -29.0704 83.3056 +95.9536 -29.481 84.4821 +96.4748 -30.164 86.4393 +95.6722 -30.4402 87.2309 +96.1462 -31.1298 89.2071 +95.9544 -31.6147 90.5967 +95.7442 -32.1009 91.9899 +95.5155 -32.5882 93.3865 +95.9566 -33.3157 95.471 +95.6162 -33.7832 96.8108 +95.8663 -34.4698 98.7784 +95.9533 -35.1113 100.617 +95.5498 -35.5831 101.969 +95.1942 -36.0803 103.393 +94.8844 -36.6032 104.892 +94.1684 -36.9758 105.96 +93.9488 -37.5501 107.605 +93.7687 -38.1517 109.329 +93.8752 -38.8838 111.427 +93.9499 -39.6195 113.536 +93.9928 -40.3589 115.654 +94.4248 -41.2854 118.309 +93.863 -41.7938 119.766 +94.3395 -42.7815 122.597 +94.19 -43.5074 124.677 +93.7224 -44.1001 126.375 +94.0801 -45.101 129.244 +93.553 -45.6977 130.954 +93.8293 -46.7069 133.846 +92.9154 -47.1405 135.088 +92.4155 -47.7948 136.963 +89.8213 -47.3603 135.718 +89.1905 -47.954 137.419 +86.8354 -47.6153 136.449 +86.2308 -48.2324 138.217 +84.4 -48.1645 138.023 +83.6135 -48.692 139.534 +82.3692 -48.9595 140.301 +81.6896 -49.5707 142.052 +79.7632 -49.4257 141.637 +79.0514 -50.033 143.377 +76.452 -49.4363 141.667 +75.1397 -49.6544 142.292 +71.0161 -47.9734 137.475 +69.872 -48.265 138.311 +67.2808 -47.5382 136.228 +66.268 -47.9098 137.293 +63.695 -47.1352 135.073 +63.2017 -47.8907 137.238 +61.0322 -47.3731 135.755 +60.1196 -47.8205 137.037 +58.1389 -47.4113 135.864 +57.2475 -47.8831 137.216 +55.4754 -47.6153 136.449 +54.7724 -48.267 138.316 +52.5685 -47.5866 136.367 +51.6733 -48.0775 137.773 +49.6491 -47.5079 136.141 +48.8649 -48.1174 137.888 +46.8161 -47.4726 136.04 +46.0381 -48.1082 137.861 +44.1481 -47.5771 136.339 +43.2555 -48.1128 137.874 +41.511 -47.697 136.683 +40.4866 -48.1003 137.838 +38.6676 -47.5464 136.251 +37.7323 -48.0706 137.753 +35.9496 -47.5059 136.135 +35.2969 -48.4403 138.813 +33.4952 -47.8018 136.983 +32.5309 -48.3464 138.544 +30.8749 -47.8581 137.145 +29.9052 -48.4294 138.782 +28.2588 -47.899 137.262 +27.226 -48.3994 138.696 +25.561 -47.7622 136.87 +24.5096 -48.2561 138.285 +23.0272 -47.9019 137.27 +22.0384 -48.5853 139.228 +20.4863 -48.0268 137.628 +19.3831 -48.5088 139.009 +17.9392 -48.1375 137.945 +16.8446 -48.7108 139.588 +15.3866 -48.2334 138.22 +14.1948 -48.5708 139.187 +12.8293 -48.3144 138.452 +11.6512 -48.7763 139.776 +10.2263 -48.1836 138.077 +9.0596 -48.803 139.852 +7.65675 -48.1365 137.942 +6.43386 -48.5516 139.132 +5.09533 -48.0742 137.764 +3.86895 -48.6798 139.499 +2.54282 -47.9975 137.544 +1.28978 -48.6946 139.542 +1.24345e-14 -48.0047 137.565 +-1.28978 -48.6946 139.542 +-2.54805 -48.0963 137.827 +-3.86895 -48.6798 139.499 +-5.11627 -48.2719 138.33 +-6.47312 -48.8478 139.981 +-7.67245 -48.235 138.225 +-9.07792 -48.9019 140.136 +-10.2472 -48.2821 138.36 +-11.6747 -48.8749 140.058 +-12.8293 -48.3144 138.452 +-14.3481 -49.0956 140.691 +-15.4493 -48.4297 138.783 +-16.9126 -48.9075 140.152 +-18.0367 -48.3991 138.695 +-19.5398 -48.9006 140.132 +-20.6672 -48.4512 138.844 +-22.1714 -48.8785 140.069 +-23.3713 -48.6179 139.322 +-24.8067 -48.8413 139.962 +-25.943 -48.4759 138.915 +-27.6634 -49.177 140.924 +-28.5641 -48.4166 138.745 +-30.4036 -49.2366 141.095 +-31.3739 -48.6314 139.36 +-33.072 -49.1506 140.848 +-34.1926 -48.7968 139.834 +-35.9039 -49.2732 141.2 +-36.8689 -48.7207 139.616 +-38.859 -49.5061 141.867 +-39.6252 -48.724 139.626 +-41.7426 -49.5925 142.115 +-42.4482 -48.7737 139.768 +-44.704 -49.7239 142.491 +-45.6392 -49.1839 140.944 +-47.6919 -49.8366 142.814 +-48.732 -49.4155 141.608 +-50.9274 -50.1483 143.707 +-51.6351 -49.408 141.586 +-54.0099 -50.2514 144.003 +-54.689 -49.5061 141.867 +-57.1538 -50.3654 144.33 +-57.8048 -49.6149 142.179 +-60.2895 -50.4277 144.508 +-61.2107 -49.9163 143.043 +-62.8749 -50.0122 143.317 +-64.0799 -49.7387 142.534 +-66.5911 -50.459 144.598 +-67.2742 -49.7839 142.663 +-69.9173 -50.5479 144.853 +-70.704 -49.9569 143.159 +-73.4021 -50.7035 145.298 +-74.1286 -50.0758 143.5 +-77.103 -50.9519 146.01 +-78.041 -50.4639 144.612 +-80.6213 -51.0267 146.225 +-81.5003 -50.5021 144.721 +-84.314 -51.1634 146.616 +-85.3265 -50.7173 145.338 +-88.4393 -51.5024 147.588 +-89.15 -50.8751 145.79 +-93.6916 -52.4055 150.176 +-94.87 -52.021 149.074 +-99.6927 -53.6005 153.6 +-99.6248 -52.5294 150.531 +-102.356 -52.9357 151.695 +-102.447 -51.9762 148.946 +-105.089 -52.3116 149.907 +-105.24 -51.4066 147.313 +-108.92 -52.2151 149.63 +-109.438 -51.4952 147.567 +-108.359 -50.0521 143.432 +-107.036 -48.5391 139.096 +-114.622 -51.0369 146.254 +-118.196 -51.679 148.094 +-122.3 -52.5136 150.486 +-122.886 -51.8224 148.505 +-127.553 -52.8335 151.402 +-120.074 -48.8544 140 +-98.0833 -39.2028 112.341 +-98.3465 -38.6163 110.661 +-98.5862 -38.0315 108.985 +-98.4745 -37.3237 106.957 +-98.9292 -36.8417 105.575 +-98.8306 -36.164 103.633 +-98.6362 -35.4655 101.632 +-98.958 -34.9637 100.194 +-98.5724 -34.224 98.0741 +-98.2247 -33.5127 96.0356 +-98.4778 -33.0175 94.6165 +-98.7121 -32.5233 93.2004 +-98.2146 -31.7995 91.1262 +-98.4057 -31.3099 89.7232 +-98.5058 -30.799 88.2591 +-98.5865 -30.2899 86.8002 +-98.7952 -29.8272 85.4743 +-98.8383 -29.3216 84.0253 +-98.6375 -28.7525 82.3944 +-98.7915 -28.2948 81.083 +-98.8528 -27.8171 79.7141 +-98.5133 -27.2353 78.0469 +-98.5365 -26.7624 76.6918 +-98.6198 -26.3123 75.4017 +-98.6869 -25.8636 74.116 +-99.3682 -25.5789 73.3001 +-98.7725 -24.9713 71.5589 +-99.4301 -24.6864 70.7424 +-99.4371 -24.2427 69.4712 +-99.4282 -23.801 68.2053 +-98.6708 -23.1889 66.4514 +-99.2812 -22.9044 65.6359 +-99.1424 -22.4501 64.3341 +-99.07 -22.0168 63.0924 +-98.8989 -21.5674 61.8047 +-98.7954 -21.1387 60.5761 +-98.4238 -20.6591 59.2018 +-99.052 -20.3928 58.4386 +-98.9063 -19.9695 57.2256 +-99.4314 -19.6844 56.4085 +-98.7427 -19.1636 54.9162 +-99.2465 -18.879 54.1006 +-99.1335 -18.4793 52.9553 +-98.832 -18.0499 51.7246 +-99.3063 -17.765 50.9083 +-99.7731 -17.4788 50.0882 +-99.4339 -17.0544 48.8718 +-99.0799 -16.6332 47.6649 +-99.5167 -16.3477 46.8468 +-98.4179 -15.8154 45.3214 +-98.8331 -15.5318 44.5088 +-99.2407 -15.2471 43.6928 +-99.6408 -14.9612 42.8734 +-99.211 -14.5535 41.7052 +-99.5927 -14.2677 40.8862 +-99.2304 -13.8778 39.7689 +-98.6703 -13.4659 38.5885 +-99.0232 -13.1817 37.7741 +-99.3686 -12.8965 36.9567 +-98.9595 -12.5158 35.866 +-99.2873 -12.2308 35.0492 +-98.6677 -11.8322 33.9069 +-99.0716 -11.5591 33.1242 +-98.6176 -11.188 32.0608 +-99.574 -10.9772 31.4567 +-99.6707 -10.6701 30.5767 +-101.762 -10.5713 30.2938 +-103.95 -10.471 30.0063 +-109.305 -10.6677 30.5699 +-111.41 -10.5256 30.1626 +-118.237 -10.8036 30.9592 +-124.218 -10.9663 31.4256 +-161.874 -13.793 39.526 +-163.883 -13.4626 38.5791 +-164.136 -12.9832 37.2053 +-163.499 -12.4367 35.6392 +-169.387 -12.3726 35.4555 +-172.545 -12.0837 34.6278 +-616.569 -41.3302 118.438 +-3216.3 -205.984 590.278 +-379.831 -23.1943 66.4669 +-378.856 -22.0098 63.0725 +-379.621 -20.9306 59.9797 +-379.174 -19.7868 56.7019 +-380.376 -18.7299 53.6734 +-380.461 -17.6172 50.4847 +-380.219 -16.4925 47.2618 +-379.748 -15.3626 44.0237 +-380.141 -14.2701 40.8932 +-379.311 -13.1353 37.6412 +-380.142 -12.06 34.5597 +-378.753 -10.9177 31.2864 +-378.729 -9.82057 28.1423 +-380.271 -8.76117 25.1064 +-380.988 -7.67753 22.0011 +-380.578 -6.57147 18.8315 +-146.261 -2.104 6.02932 +-145.811 -1.67764 4.80753 +-3275.38 -28.2588 80.9798 +-144.378 -0.830323 2.37942 +-146.694 -0.421789 1.2087 +94.8 3.55271e-15 -2.27374e-13 +95.7964 -0.268309 0.791776 +95.6854 -0.53604 1.58184 +95.6672 -0.804005 2.3726 +95.6417 -1.07191 3.16319 +95.7088 -1.34114 3.95768 +95.6687 -1.60914 4.74854 +96.5196 -1.89466 5.59109 +96.3647 -2.16267 6.382 +95.5047 -2.41233 7.11875 +95.4355 -2.67972 7.90782 +96.2548 -2.9746 8.77797 +96.2697 -3.24744 9.58312 +96.0784 -3.51331 10.3677 +95.9792 -3.78226 11.1614 +95.7736 -4.04671 11.9418 +95.7589 -4.31926 12.746 +95.6378 -4.58731 13.5371 +95.4107 -4.84997 14.3122 +95.1766 -5.1117 15.0845 +95.8218 -5.42266 16.0022 +95.5724 -5.68497 16.7762 +95.5123 -5.95854 17.5835 +95.3467 -6.22582 18.3723 +95.1738 -6.49262 19.1596 +95.8723 -6.82146 20.13 +95.878 -7.10415 20.9642 +95.4867 -7.35741 21.7116 +96.1563 -7.69446 22.7062 +95.9434 -7.96348 23.5001 +95.7232 -8.23188 24.2921 +95.4958 -8.49965 25.0823 +96.1262 -8.84639 26.1055 +95.882 -9.11528 26.899 +96.3955 -9.45856 27.912 +96.23 -9.73781 28.7361 +95.8665 -9.99704 29.5011 +96.4445 -10.3568 30.5628 +96.0647 -10.6161 31.3278 +95.7724 -10.8847 32.1206 +96.3185 -11.2514 33.2025 +96.0089 -11.5207 33.9973 +96.7189 -11.9156 35.1628 +96.3913 -12.1861 35.9608 +96.8907 -12.5638 37.0755 +96.5454 -12.8347 37.8748 +96.1928 -13.1046 38.6713 +95.9245 -13.3863 39.5027 +96.379 -13.7719 40.6407 +96.0919 -14.0546 41.475 +96.5218 -14.4453 42.6278 +96.1253 -14.7151 43.4239 +96.5305 -15.1104 44.5904 +96.0265 -15.3658 45.3442 +96.4069 -15.7653 46.5232 +96.0633 -16.0496 47.3619 +96.3296 -16.4385 48.5097 +96.6699 -16.8455 49.7108 +96.2082 -17.1156 50.5079 +96.4354 -17.5108 51.6742 +96.6484 -17.9087 52.8481 +96.1578 -18.1787 53.6449 +96.4313 -18.596 54.8766 +95.8368 -18.8486 55.6219 +96.0838 -19.2694 56.8637 +96.3153 -19.693 58.1136 +96.4471 -20.1018 59.3201 +96.6474 -20.5306 60.5854 +96.0026 -20.7825 61.3289 +96.1755 -21.2142 62.6028 +96.2504 -21.6301 63.8299 +96.3913 -22.0665 65.1179 +96.4348 -22.4866 66.3575 +95.8197 -22.7558 67.152 +95.9161 -23.1972 68.4544 +95.9164 -23.6212 69.7058 +95.9797 -24.0668 71.0206 +96.026 -24.5145 72.3417 +95.8998 -24.9239 73.5499 +95.8358 -25.3548 74.8216 +95.9854 -25.8492 76.2805 +95.9632 -26.3046 77.6245 +96.3764 -26.8882 79.3467 +95.7914 -27.1997 80.2657 +96.3859 -27.8535 82.1951 +96.2884 -28.3175 83.5645 +95.9536 -28.7175 84.7447 +95.967 -29.2281 86.2516 +96.3196 -29.8525 88.0942 +95.5042 -30.1211 88.8869 +96.5908 -31.0002 91.481 +95.7442 -31.2695 92.2758 +95.5155 -31.7443 93.6767 +95.9566 -32.4529 95.7677 +95.6162 -32.9083 97.1117 +95.9338 -33.6005 99.1546 +95.4849 -34.0351 100.437 +95.7486 -34.7338 102.499 +94.9973 -35.0734 103.501 +95.339 -35.8263 105.723 +94.5541 -36.1655 106.724 +94.4576 -36.7756 108.524 +93.8317 -37.1884 109.742 +94.311 -38.0527 112.293 +93.9499 -38.5935 113.889 +94.4189 -39.4918 116.539 +94.4248 -40.2162 118.677 +93.863 -40.7114 120.138 +93.8105 -41.4399 122.288 +93.6674 -42.1454 124.37 +94.0665 -43.1159 127.234 +93.627 -43.7215 129.021 +93.8885 -44.6737 131.831 +93.7741 -45.4703 134.182 +93.4056 -46.162 136.223 +93.4901 -47.0985 138.987 +92.153 -47.3315 139.674 +91.3327 -47.8341 141.157 +89.0501 -47.5651 140.364 +88.0579 -47.9788 141.585 +85.95 -47.7789 140.995 +85.2878 -48.381 142.771 +83.5812 -48.3932 142.807 +82.5962 -48.8229 144.075 +81.0777 -48.9391 144.418 +80.8522 -49.8477 147.1 +78.1318 -49.2141 145.23 +77.683 -50.0056 147.565 +73.6902 -48.4904 143.094 +71.2926 -47.9708 141.561 +68.8023 -47.3543 139.742 +68.4659 -48.217 142.287 +65.7693 -47.4098 139.905 +65.0758 -48.0337 141.747 +62.7905 -47.4756 140.1 +62.2243 -48.2131 142.276 +60.0494 -47.7012 140.765 +59.3732 -48.3752 142.754 +56.8013 -47.4907 140.144 +56.6285 -48.6101 143.448 +54.0734 -47.681 140.706 +53.6428 -48.6172 143.468 +51.2444 -47.7644 140.952 +50.3245 -48.2712 142.447 +47.7431 -47.1588 139.165 +47.2409 -48.0867 141.903 +45.1422 -47.3883 139.842 +44.4768 -48.19 142.208 +42.5033 -47.5725 140.386 +41.9564 -48.5556 143.287 +39.7287 -47.5863 140.426 +38.7839 -48.1306 142.033 +37.135 -47.8013 141.061 +36.044 -48.1845 142.192 +34.2376 -47.5956 140.454 +33.2235 -48.0969 141.933 +31.4986 -47.5603 140.35 +30.583 -48.2442 142.368 +28.8503 -47.6351 140.57 +28.0096 -48.5029 143.131 +26.2556 -47.7895 141.026 +25.2193 -48.3675 142.732 +23.6529 -47.9291 141.438 +22.5853 -48.5016 143.127 +21.0012 -47.9589 141.526 +19.9444 -48.6207 143.479 +18.3535 -47.9737 141.569 +17.2635 -48.6294 143.504 +15.7943 -48.2288 142.322 +14.6452 -48.8146 144.051 +13.1257 -48.1502 142.09 +11.9022 -48.5369 143.232 +10.4844 -48.1204 142.002 +9.26717 -48.6284 143.501 +7.85039 -48.0754 141.87 +6.62142 -48.673 143.633 +5.24539 -48.2083 142.262 +3.98413 -48.8309 144.099 +2.61263 -48.0379 141.759 +1.32818 -48.8457 144.143 +1.15463e-14 -47.949 141.496 +-1.32818 -48.8457 144.143 +-2.60739 -47.9416 141.475 +-3.99198 -48.9272 144.383 +-5.24539 -48.2083 142.262 +-6.65196 -48.8974 144.295 +-7.85039 -48.0754 141.87 +-9.38927 -49.269 145.392 +-10.5053 -48.2163 142.285 +-12.0121 -48.985 144.554 +-13.2041 -48.4378 142.939 +-14.7027 -49.0062 144.616 +-15.8047 -48.2609 142.417 +-17.4786 -49.235 145.292 +-18.4876 -48.3242 142.604 +-20.2577 -49.3842 145.732 +-21.2239 -48.4676 143.027 +-22.94 -49.2632 145.375 +-23.9032 -48.4365 142.935 +-25.7639 -49.4122 145.814 +-26.6376 -48.4849 143.078 +-28.3923 -49.1657 145.087 +-29.3273 -48.4227 142.894 +-31.1811 -49.1878 145.152 +-32.1847 -48.5963 143.407 +-34.0892 -49.3505 145.632 +-35.0924 -48.7841 143.961 +-37.0711 -49.5575 146.243 +-38.0543 -48.985 144.554 +-39.9356 -49.5601 146.251 +-41.0487 -49.1673 145.092 +-42.9987 -49.7617 146.846 +-43.7161 -48.9298 144.391 +-46.0389 -49.8827 147.203 +-46.6333 -48.9538 144.462 +-49.1053 -49.9844 147.503 +-50.1844 -49.5704 146.281 +-52.3235 -50.1888 148.106 +-53.1653 -49.5547 146.235 +-55.4787 -50.2813 148.379 +-55.9887 -49.3701 145.69 +-58.5197 -50.2335 148.238 +-59.3816 -49.648 146.51 +-62.122 -50.6147 149.363 +-62.6342 -49.7543 146.824 +-65.2475 -50.5554 149.188 +-65.8773 -49.8095 146.987 +-68.9836 -50.918 150.258 +-69.5113 -50.1073 147.866 +-72.1152 -50.7868 149.871 +-72.8171 -50.1176 147.896 +-76.2866 -51.3311 151.477 +-76.3643 -50.2501 148.287 +-80.3602 -51.729 152.651 +-80.3109 -50.5868 149.281 +-83.6688 -51.584 152.223 +-83.6598 -50.4976 149.017 +-86.986 -51.4177 151.733 +-87.8475 -50.8635 150.097 +-90.8521 -51.5374 152.086 +-92.3 -51.3086 151.411 +-96.2293 -52.431 154.723 +-97.4967 -52.077 153.678 +-100.79 -52.7869 155.773 +-101.215 -51.9855 153.408 +-104.397 -52.5933 155.202 +-104.353 -51.5721 152.188 +-107.793 -52.2682 154.243 +-108.204 -51.4855 151.933 +-110.789 -51.7358 152.671 +-112.822 -51.7127 152.603 +-112.656 -50.6892 149.583 +-107.036 -47.2821 139.528 +-111.589 -48.3996 142.826 +-121.266 -51.6478 152.412 +-125.648 -52.5539 155.085 +-125.964 -51.7448 152.698 +-99.1666 -40.0117 118.074 +-98.2998 -38.9593 114.968 +-98.2741 -38.2616 112.909 +-98.2179 -37.5671 110.86 +-98.5862 -37.0465 109.324 +-98.4745 -36.3571 107.289 +-98.3328 -35.6713 105.265 +-98.2953 -35.0368 103.393 +-98.5686 -34.5236 101.878 +-98.3442 -33.847 99.8819 +-98.5724 -33.3377 98.3789 +-98.8499 -32.8524 96.9469 +-98.4077 -32.1393 94.8424 +-98.7121 -31.681 93.4901 +-98.9278 -31.2009 92.0732 +-98.4057 -30.499 90.0021 +-99.1587 -30.2002 89.1202 +-98.6596 -29.5273 87.1346 +-98.8689 -29.0764 85.8039 +-98.3924 -28.4333 83.9062 +-98.5626 -27.9865 82.5877 +-98.716 -27.541 81.2729 +-98.8528 -27.0967 79.9618 +-99.2028 -26.7157 78.8374 +-99.2309 -26.2531 77.4724 +-98.5421 -25.6106 75.5764 +-98.6869 -25.1938 74.3464 +-98.7377 -24.7584 73.0614 +-98.9312 -24.3637 71.8967 +-98.7113 -23.8732 70.4492 +-98.794 -23.4622 69.2364 +-99.4282 -23.1846 68.4172 +-99.4035 -22.7561 67.1529 +-99.1993 -22.2928 65.7855 +-99.1424 -21.8687 64.534 +-99.1529 -21.4645 63.3415 +-98.8155 -20.9912 61.9445 +-99.3825 -20.7136 61.1254 +-99.2672 -20.2965 59.8947 +-99.052 -19.8647 58.6203 +-99.0768 -19.4859 57.5024 +-99.0028 -19.0919 56.3399 +-99.5182 -18.8139 55.5196 +-99.2465 -18.3901 54.2687 +-98.9594 -17.9692 53.0267 +-98.832 -17.5824 51.8854 +-99.3063 -17.3049 51.0665 +-98.9784 -16.8906 49.8437 +-99.4339 -16.6127 49.0237 +-99.0799 -16.2024 47.813 +-99.5167 -15.9243 46.9924 +-99.2269 -15.5325 45.836 +-98.8331 -15.1296 44.6472 +-99.2407 -14.8522 43.8286 +-98.8218 -14.4539 42.6532 +-99.211 -14.1766 41.8348 +-98.8591 -13.7958 40.7111 +-99.2304 -13.5184 39.8925 +-99.5018 -13.2277 39.0347 +-99.0232 -12.8403 37.8915 +-99.4616 -12.5742 37.1064 +-98.8662 -12.1802 35.9435 +-99.2873 -11.9141 35.1582 +-98.7617 -11.5367 34.0447 +-99.0716 -11.2597 33.2271 +-99.374 -10.9818 32.4071 +-100.807 -10.8253 31.9452 +-101.383 -10.5723 31.1986 +-105.672 -10.6933 31.5556 +-107.584 -10.5564 31.1518 +-112.374 -10.6831 31.5257 +-113.333 -10.4299 30.7784 +-129.705 -11.5444 34.0674 +-158.605 -13.6395 40.2499 +-162.165 -13.46 39.7201 +-164.659 -13.1761 38.8823 +-165.303 -12.7369 37.5863 +-167.007 -12.3745 36.5169 +-172.219 -12.2536 36.1601 +-175.773 -11.991 35.3852 +-3210.72 -209.65 618.672 +-382.147 -23.8403 70.3523 +-379.93 -22.5995 66.6907 +-380.234 -21.5179 63.4988 +-378.241 -20.3144 59.9473 +-378.285 -19.2291 56.7448 +-377.211 -18.093 53.3922 +-378.877 -17.0895 50.4307 +-380.318 -16.0696 47.421 +-381.038 -15.0155 44.3106 +-380.141 -13.9005 41.0202 +-379.112 -12.7884 37.7384 +-380.839 -11.7692 34.7307 +-380.646 -10.6881 31.5405 +-380.523 -9.61155 28.3635 +-379.872 -8.52532 25.1581 +-380.489 -7.4689 22.0406 +-379.779 -6.38787 18.8505 +-146.061 -2.04671 6.03979 +-146.611 -1.64315 4.84892 +-148.449 -1.2476 3.68164 +-145.978 -0.81778 2.41325 +-146.394 -0.410025 1.20997 +94.8 3.55271e-15 -2.27374e-13 +94.7964 -0.258428 0.785876 +95.6854 -0.521745 1.58662 +95.6672 -0.782564 2.37976 +95.7416 -1.04442 3.17605 +95.7088 -1.30537 3.96962 +95.6687 -1.56623 4.76287 +95.6213 -1.82697 5.55577 +96.4644 -2.10717 6.40788 +95.5047 -2.348 7.14023 +96.332 -2.63277 8.00619 +96.3544 -2.89826 8.81357 +96.1703 -3.15755 9.60206 +96.0784 -3.41961 10.399 +95.9792 -3.68139 11.195 +95.8727 -3.94289 11.9902 +95.7589 -4.20407 12.7845 +95.5389 -4.46035 13.5638 +95.4107 -4.72063 14.3554 +96.1628 -5.02692 15.2868 +95.8218 -5.27805 16.0505 +95.6707 -5.53905 16.8441 +95.5123 -5.79964 17.6366 +95.3467 -6.05979 18.4277 +96.2497 -6.39092 19.4347 +95.8723 -6.63955 20.1907 +95.878 -6.9147 21.0275 +95.4867 -7.1612 21.7771 +96.1563 -7.48927 22.7747 +95.2657 -7.69635 23.4044 +95.7232 -8.01235 24.3654 +95.3994 -8.26464 25.1326 +96.1262 -8.61048 26.1843 +95.882 -8.87219 26.9802 +96.3955 -9.20632 27.9962 +96.23 -9.47812 28.8228 +95.9616 -9.74009 29.6194 +96.4445 -10.0806 30.655 +96.1592 -10.3431 31.4533 +95.7724 -10.5945 32.2176 +96.4125 -10.962 33.3352 +96.0089 -11.2135 34.0999 +96.7189 -11.5979 35.2689 +96.3913 -11.8611 36.0693 +96.8907 -12.2287 37.1873 +96.5454 -12.4924 37.9891 +96.1928 -12.7551 38.788 +96.7498 -13.1414 39.9627 +96.4704 -13.4174 40.8019 +96.0919 -13.6798 41.6001 +96.5218 -14.0601 42.7564 +96.1253 -14.3226 43.5549 +96.4406 -14.6937 44.6833 +96.0265 -14.956 45.481 +96.4069 -15.3449 46.6635 +96.6842 -15.7225 47.8118 +96.3296 -16.0001 48.6561 +96.6699 -16.3963 49.8608 +96.2082 -16.6592 50.6603 +96.4354 -17.0439 51.8301 +96.6484 -17.4311 53.0075 +96.1578 -17.6939 53.8067 +96.3456 -18.084 54.9932 +96.6041 -18.4929 56.2365 +96.1687 -18.7721 57.0855 +96.231 -19.151 58.2379 +96.4471 -19.5657 59.4991 +96.564 -19.9658 60.7158 +96.0026 -20.2283 61.5139 +96.0931 -20.6308 62.7379 +96.2504 -21.0532 64.0225 +96.3913 -21.4781 65.3144 +95.7876 -21.74 66.111 +95.8197 -22.149 67.3546 +95.9161 -22.5785 68.6609 +95.9164 -22.9913 69.9161 +95.9797 -23.425 71.2349 +95.8695 -23.8218 72.4417 +95.8998 -24.2592 73.7718 +95.8358 -24.6787 75.0474 +95.8322 -25.1197 76.3885 +95.8112 -25.5626 77.7354 +95.6972 -25.9867 79.0252 +95.6416 -26.4329 80.382 +95.7171 -26.9226 81.871 +96.141 -27.5201 83.6882 +95.9536 -27.9516 85.0003 +95.822 -28.4056 86.381 +95.8161 -28.9045 87.898 +95.6469 -29.3616 89.2881 +95.9544 -29.9747 91.1524 +95.7442 -30.4356 92.5542 +95.5155 -30.8977 93.9594 +95.8878 -31.5649 95.9883 +95.6844 -32.0535 97.474 +95.9338 -32.7045 99.4537 +95.5519 -33.1506 100.81 +95.7486 -33.8075 102.808 +95.2598 -34.2324 104.1 +95.4039 -34.8946 106.114 +95.5182 -35.56 108.137 +95.4117 -36.1566 109.952 +94.5239 -36.4637 110.885 +94.56 -37.1357 112.929 +94.0115 -37.5889 114.307 +93.9928 -38.2652 116.364 +94.4248 -39.1437 119.035 +93.863 -39.6257 120.501 +93.8693 -40.3601 122.734 +93.7255 -41.0467 124.822 +94.1239 -41.9917 127.696 +93.627 -42.5555 129.411 +93.7207 -43.4049 131.993 +93.5533 -44.1537 134.271 +93.569 -45.0096 136.873 +93.3289 -45.7634 139.166 +93.4778 -46.7315 142.11 +93.3182 -47.5706 144.661 +90.7497 -47.1804 143.475 +90.5448 -48.0182 146.022 +87.8 -47.5056 144.464 +87.2575 -48.1781 146.509 +84.9871 -47.8951 145.648 +84.7434 -48.7564 148.267 +82.7209 -48.5992 147.789 +81.9142 -49.1556 149.481 +80.0839 -49.0987 149.308 +79.6909 -49.93 151.836 +76.1012 -48.7417 148.223 +73.8757 -48.3834 147.133 +70.3237 -47.1107 143.263 +69.5855 -47.6986 145.051 +67.8437 -47.6009 144.753 +66.9101 -48.0707 146.182 +64.6269 -47.5612 144.633 +64.3291 -48.5146 147.532 +61.8475 -47.8192 145.417 +61.2057 -48.5383 147.604 +58.629 -47.7118 145.091 +58.1344 -48.5721 147.707 +55.8177 -47.9067 145.683 +58.3494 -51.4729 156.528 +53.0351 -48.115 146.317 +51.6572 -48.2281 146.661 +49.4118 -47.5056 144.464 +48.6542 -48.2044 146.589 +46.2824 -47.2897 143.807 +45.8401 -48.3428 147.009 +43.7712 -47.6849 145.009 +42.8383 -48.2541 146.74 +40.8158 -47.5846 144.704 +39.8355 -48.1172 146.324 +38.0301 -47.648 144.897 +37.2579 -48.479 147.424 +35.1598 -47.5743 144.673 +34.3273 -48.37 147.092 +32.455 -47.6977 145.048 +31.5001 -48.3659 147.08 +29.7853 -47.8673 145.564 +28.9026 -48.7145 148.14 +27.1065 -48.0223 146.035 +25.9785 -48.4949 147.472 +24.3256 -47.9779 145.9 +23.2652 -48.6292 147.881 +21.4744 -47.7317 145.151 +20.5057 -48.6558 147.961 +18.8288 -47.9036 145.674 +17.7842 -48.7601 148.279 +16.2124 -48.1853 146.531 +14.9615 -48.5386 147.605 +13.4656 -48.0797 146.21 +12.2632 -48.6752 148.02 +10.7564 -48.0523 146.126 +9.52968 -48.6723 148.012 +8.05974 -48.0413 146.093 +6.83952 -48.9354 148.812 +5.38499 -48.1716 146.489 +4.10455 -48.965 148.902 +2.69291 -48.1935 146.555 +1.36832 -48.98 148.947 +1.33227e-14 -48.3884 147.148 +-1.36221 -48.7614 148.282 +-2.69291 -48.1935 146.555 +-4.09407 -48.8401 148.522 +-5.39197 -48.2341 146.679 +-6.7959 -48.6233 147.863 +-8.08591 -48.1972 146.567 +-9.57241 -48.8907 148.676 +-10.8541 -48.4887 147.453 +-12.3259 -48.9244 148.778 +-13.5789 -48.4843 147.44 +-15.1149 -49.0363 149.118 +-16.2855 -48.4031 147.193 +-17.8974 -49.0706 149.223 +-19.1091 -48.6167 147.843 +-20.6362 -48.9654 148.903 +-21.8641 -48.598 147.786 +-23.4721 -49.0619 149.196 +-24.5915 -48.5024 147.495 +-26.4076 -49.2962 149.909 +-27.4364 -48.6071 147.813 +-29.3035 -49.3902 150.195 +-30.1478 -48.4499 147.335 +-32.0584 -49.2231 149.686 +-33.1619 -48.7367 148.207 +-35.2147 -49.6201 150.894 +-36.0597 -48.792 148.375 +-38.3551 -49.9066 151.765 +-38.9252 -48.7698 148.308 +-41.3377 -49.9319 151.842 +-42.1875 -49.1837 149.567 +-44.4685 -50.0903 152.323 +-45.2597 -49.3065 149.94 +-47.6578 -50.2596 152.838 +-48.5045 -49.5601 150.711 +-50.6689 -50.2005 152.659 +-51.2659 -49.288 149.884 +-53.9735 -50.3908 153.237 +-54.8908 -49.7985 151.436 +-57.1811 -50.442 153.393 +-58.0066 -49.7854 151.396 +-60.5509 -50.591 153.846 +-61.4959 -50.0446 152.185 +-63.3681 -50.253 152.818 +-64.9568 -50.2233 152.728 +-67.0844 -50.5926 153.851 +-68.2607 -50.2352 152.764 +-70.8976 -50.9353 154.893 +-71.667 -50.2836 152.912 +-73.8569 -50.6263 153.954 +-75.0147 -50.2533 152.819 +-77.7073 -50.8928 154.764 +-78.9068 -50.5385 153.687 +-81.1188 -50.8247 154.557 +-82.5809 -50.6294 153.963 +-85.0541 -51.0396 155.21 +-86.4767 -50.8059 154.5 +-89.5627 -51.5291 156.699 +-89.7383 -50.5726 153.79 +-93.5605 -51.6584 157.092 +-94.5 -51.1308 155.488 +-98.4117 -52.1901 158.709 +-98.9903 -51.4647 156.503 +-103.141 -52.5778 159.888 +-103.069 -51.5263 156.69 +-106.332 -52.1392 158.554 +-106.15 -51.0615 155.277 +-110.167 -51.9945 158.114 +-110.217 -51.0446 155.226 +-115.15 -52.3385 159.16 +-115.002 -51.3061 156.021 +-116.257 -50.9143 154.829 +-106.624 -45.8443 139.412 +-113.373 -47.862 145.547 +-125.478 -52.017 158.183 +-99.0455 -40.3223 122.619 +-98.7521 -39.4845 120.072 +-98.4818 -38.676 117.613 +-98.4257 -37.9691 115.463 +-98.3377 -37.2653 113.323 +-98.7965 -36.7805 111.849 +-98.7161 -36.106 109.798 +-98.4745 -35.3876 107.613 +-98.2666 -34.6966 105.512 +-98.2953 -34.1024 103.705 +-98.6362 -33.6257 102.255 +-98.2078 -32.8988 100.045 +-98.7789 -32.5164 98.8818 +-98.9194 -31.9988 97.3078 +-98.4778 -31.3047 95.197 +-98.6414 -30.8141 93.705 +-98.1433 -30.128 91.6186 +-98.3338 -29.664 90.2076 +-98.4333 -29.1798 88.7351 +-98.7327 -28.7612 87.4622 +-98.8689 -28.301 86.0628 +-99.0612 -27.8632 84.7314 +-99.2366 -27.4265 83.4035 +-98.7915 -26.827 81.5804 +-98.8528 -26.3741 80.203 +-99.1262 -25.9831 79.0142 +-99.2309 -25.553 77.7061 +-98.6975 -24.9669 75.924 +-99.3912 -24.6969 75.1029 +-99.447 -24.2712 73.8082 +-99.5658 -23.8661 72.5762 +-98.7912 -23.2553 70.719 +-98.794 -22.8365 69.4453 +-99.4282 -22.5663 68.6237 +-98.6708 -21.986 66.859 +-99.2812 -21.7162 66.0385 +-99.1424 -21.2855 64.7287 +-99.07 -20.8747 63.4795 +-98.8155 -20.4314 62.1314 +-98.6277 -20.0081 60.8443 +-99.0142 -19.7049 59.9223 +-99.1368 -19.3515 58.8475 +-99.1621 -18.9826 57.7256 +-99.0028 -18.5828 56.5099 +-98.7427 -18.1695 55.2531 +-99.2465 -17.8996 54.4325 +-99.1335 -17.5207 53.2802 +-99.6192 -17.2498 52.4564 +-99.3063 -16.8434 51.2206 +-98.9784 -16.4401 49.9941 +-99.4339 -16.1697 49.1716 +-99.0799 -15.7703 47.9573 +-99.5167 -15.4997 47.1341 +-99.2269 -15.1182 45.9742 +-99.6454 -14.8471 45.1499 +-99.2407 -14.4561 43.9608 +-98.9128 -14.0814 42.8213 +-99.3024 -13.8112 41.9997 +-98.7674 -13.4155 40.7961 +-99.2304 -13.1579 40.0129 +-99.5942 -12.8869 39.1888 +-99.0232 -12.4979 38.0058 +-99.4616 -12.2389 37.2183 +-98.9595 -11.8666 36.086 +-99.2873 -11.5963 35.2643 +-98.7617 -11.2291 34.1474 +-99.8257 -11.0428 33.581 +-99.9413 -10.75 32.6904 +-102.04 -10.6654 32.4334 +-103.19 -10.4737 31.8504 +-109.677 -10.8026 32.8506 +-110.358 -10.5398 32.0512 +-117.168 -10.8418 32.9698 +-121.119 -10.8492 32.9922 +-160.348 -13.8913 42.2431 +-162.276 -13.583 41.3056 +-163.617 -13.2183 40.1966 +-164.271 -12.7945 38.9077 +-166.664 -12.4993 38.0101 +-169.833 -12.2483 37.2468 +-177.393 -12.2852 37.359 +-3204.9 -212.804 647.132 +-380.995 -24.2143 73.6352 +-380.773 -23.1211 70.3108 +-377.078 -21.8317 66.3898 +-377.674 -20.803 63.2614 +-378.635 -19.7933 60.1909 +-380.556 -18.8287 57.2578 +-377.507 -17.6244 53.5955 +-378.282 -16.6076 50.5035 +-380.517 -15.6492 47.589 +-379.748 -14.5656 44.2938 +-378.65 -13.4768 40.9827 +-380.504 -12.4931 37.9912 +-379.345 -11.4104 34.6988 +-381.144 -10.4167 31.677 +-380.523 -9.35523 28.4491 +-380.77 -8.31755 25.2935 +-380.988 -7.27925 22.1361 +-379.379 -6.21096 18.8874 +-145.162 -1.97986 6.02072 +-145.711 -1.58952 4.83371 +-3275.38 -26.7929 81.4766 +-146.178 -0.797062 2.42385 +-144.894 -0.395001 1.20119 +94.8 3.55271e-15 -2.27374e-13 +95.7964 -0.253978 0.796489 +95.6854 -0.507407 1.59126 +95.6672 -0.761059 2.38673 +95.7416 -1.01572 3.18535 +95.6089 -1.26818 3.97708 +95.6687 -1.52319 4.77681 +95.6213 -1.77676 5.57203 +95.5666 -2.0302 6.36682 +95.5047 -2.28348 7.16112 +96.332 -2.56042 8.02962 +96.2548 -2.81571 8.83022 +96.1703 -3.07078 9.63016 +96.0784 -3.32564 10.4294 +96.0785 -3.58393 11.2394 +95.8727 -3.83454 12.0253 +95.7589 -4.08854 12.8219 +95.5389 -4.33778 13.6035 +95.3119 -4.58614 14.3824 +96.1628 -4.88878 15.3315 +96.0188 -5.14355 16.1305 +95.6707 -5.38683 16.8934 +95.5123 -5.64026 17.6882 +95.3467 -5.89327 18.4816 +95.1738 -6.14582 19.2737 +94.9936 -6.39791 20.0642 +95.878 -6.72468 21.089 +95.4867 -6.96441 21.8408 +95.4771 -7.232 22.68 +95.9434 -7.53811 23.6399 +95.7232 -7.79217 24.4367 +95.6885 -8.06189 25.2826 +96.3184 -8.39063 26.3135 +95.7861 -8.61976 27.0321 +95.6305 -8.88227 27.8553 +96.23 -9.21767 28.9071 +95.8665 -9.46304 29.6767 +96.4445 -9.8036 30.7447 +96.0647 -10.049 31.5143 +96.715 -10.4047 32.6299 +96.4125 -10.6607 33.4327 +97.0392 -11.0223 34.5667 +96.7189 -11.2792 35.3721 +96.3913 -11.5351 36.1749 +96.0562 -11.7902 36.9749 +96.5454 -12.1491 38.1003 +96.1928 -12.4046 38.9015 +95.9245 -12.6713 39.7378 +96.379 -13.0363 40.8826 +96.0919 -13.3039 41.7218 +96.5218 -13.6737 42.8815 +96.1253 -13.9291 43.6824 +96.5305 -14.3033 44.8558 +96.0265 -14.545 45.6141 +96.496 -14.937 46.8433 +96.7729 -15.3045 47.9958 +96.2413 -15.5462 48.7538 +96.582 -15.9312 49.9612 +96.1207 -16.1867 50.7623 +96.4354 -16.5755 51.9817 +96.6484 -16.9521 53.1627 +96.9333 -17.3464 54.3994 +96.3456 -17.5871 55.1542 +96.6894 -18.0006 56.4508 +96.0838 -18.2401 57.2022 +96.3153 -18.6411 58.4595 +95.6923 -18.8792 59.2061 +96.564 -19.4172 60.8934 +96.0026 -19.6724 61.6939 +96.1755 -20.0811 62.9755 +96.2504 -20.4747 64.2098 +96.3913 -20.8878 65.5055 +95.7067 -21.1248 66.2485 +95.8197 -21.5403 67.5517 +95.9161 -21.9581 68.8618 +95.9164 -22.3595 70.1207 +95.9797 -22.7813 71.4434 +96.7304 -23.3752 73.3062 +96.0552 -23.6308 74.1076 +95.8358 -24.0005 75.267 +96.5216 -24.6051 77.1632 +95.8112 -24.8601 77.9628 +96.3764 -25.452 79.819 +95.6416 -25.7065 80.6173 +95.7171 -26.1827 82.1106 +96.2884 -26.8049 84.0619 +96.0999 -27.2249 85.379 +95.967 -27.6669 86.765 +95.8161 -28.1102 88.1552 +96.1462 -28.7038 90.0169 +95.9544 -29.151 91.4192 +96.375 -29.7943 93.4366 +96.1407 -30.2453 94.8511 +95.9566 -30.7194 96.3378 +95.6162 -31.1505 97.6897 +96.0014 -31.8282 99.8153 +95.5519 -32.2396 101.105 +95.2848 -32.7193 102.61 +95.2598 -33.2917 104.405 +95.4689 -33.9588 106.497 +95.5825 -34.6062 108.527 +95.5389 -35.2098 110.42 +95.405 -35.7922 112.247 +94.9335 -36.258 113.707 +94.4425 -36.7237 115.168 +93.9928 -37.2137 116.704 +93.9433 -37.8739 118.775 +93.863 -38.5368 120.854 +93.8693 -39.251 123.093 +93.7835 -39.9437 125.266 +93.665 -40.6388 127.446 +94.0234 -41.5614 130.339 +93.7766 -42.2374 132.459 +93.5533 -42.9403 134.663 +93.8958 -43.9256 137.753 +93.6513 -44.6596 140.055 +93.4778 -45.4473 142.525 +93.4227 -46.315 145.246 +92.6553 -46.8472 146.916 +92.2705 -47.5885 149.24 +89.8 -47.2525 148.187 +89.2271 -47.9117 150.254 +87.0718 -47.7216 149.658 +86.4612 -48.3778 151.716 +84.1763 -48.0955 150.83 +83.2533 -48.5862 152.369 +81.6729 -48.6968 152.716 +81.5203 -49.6729 155.777 +78.1177 -48.6582 152.595 +77.0615 -49.0829 153.927 +73.5778 -47.936 150.33 +72.8201 -48.5439 152.237 +69.5926 -47.4864 148.92 +68.7842 -48.0591 150.716 +66.6978 -47.7361 149.703 +66.2808 -48.6129 152.453 +64.732 -48.674 152.644 +63.5147 -48.9851 153.62 +61.3168 -48.5278 152.186 +60.5158 -49.1722 154.207 +60.4692 -50.4728 158.286 +59.3842 -50.9461 159.77 +57.5604 -50.7857 159.267 +53.4341 -48.5163 152.15 +51.1732 -47.847 150.051 +50.2179 -48.3866 151.743 +47.8612 -47.559 149.148 +46.9761 -48.1794 151.093 +45.0943 -47.7762 149.829 +43.9073 -48.0989 150.841 +42.1616 -47.8027 149.912 +41.2877 -48.5011 152.102 +38.8768 -47.3707 148.557 +38.4251 -48.6238 152.487 +36.2171 -47.6584 149.459 +35.2147 -48.2565 151.335 +33.4322 -47.7835 149.852 +32.5568 -48.6147 152.459 +30.5104 -47.6851 149.543 +29.7408 -48.7499 152.883 +27.7663 -47.8397 150.028 +26.9688 -48.9602 153.542 +25.0608 -48.0697 150.749 +24.0042 -48.7952 153.025 +22.1981 -47.9846 150.483 +21.1975 -48.9152 153.401 +19.365 -47.9142 150.262 +18.3502 -48.9295 153.446 +16.6723 -48.1906 151.129 +15.527 -48.989 153.632 +13.8403 -48.06 150.719 +12.6555 -48.852 153.203 +11.0634 -48.0655 150.736 +9.83492 -48.8511 153.2 +8.30048 -48.1168 150.897 +7.05762 -49.1081 154.006 +5.53506 -48.1533 151.011 +4.20925 -48.8344 153.148 +2.76795 -48.1754 151.081 +1.40934 -49.0619 153.861 +1.59872e-14 -48.0308 150.628 +-1.41195 -49.1531 154.147 +-2.76795 -48.1754 151.081 +-4.24328 -49.229 154.385 +-5.556 -48.3355 151.583 +-7.05762 -49.1081 154.006 +-8.33188 -48.2988 151.468 +-9.89597 -49.1543 154.151 +-11.2099 -48.7019 152.732 +-12.8045 -49.4274 155.007 +-14.0582 -48.8165 153.091 +-15.642 -49.3521 154.771 +-16.965 -49.0367 153.782 +-18.52 -49.3821 154.865 +-19.8281 -49.0598 153.854 +-21.3541 -49.2764 154.534 +-22.8383 -49.3685 154.822 +-24.2703 -49.336 154.72 +-25.6709 -49.24 154.419 +-27.1503 -49.2898 154.576 +-28.4262 -48.9766 153.593 +-29.996 -49.1683 154.195 +-31.1782 -48.729 152.817 +-32.8758 -49.0911 153.953 +-34.1599 -48.8237 153.114 +-36.0588 -49.4134 154.963 +-37.1619 -48.9015 153.358 +-39.1721 -49.5693 155.452 +-40.28 -49.0802 153.918 +-42.0138 -49.3539 154.777 +-43.3781 -49.1819 154.237 +-45.0029 -49.2992 154.605 +-46.4725 -49.2366 154.409 +-48.2826 -49.5191 155.295 +-49.557 -49.2442 154.433 +-52.0221 -50.1249 157.195 +-52.7801 -49.3493 154.762 +-55.211 -50.1295 157.209 +-56.2907 -49.6653 155.753 +-58.7834 -50.4305 158.153 +-59.3405 -49.5307 155.331 +-62.3719 -50.6803 158.936 +-62.8219 -49.719 155.922 +-65.9336 -50.8507 159.471 +-66.1181 -49.7163 155.913 +-68.8447 -50.4934 158.35 +-69.3938 -49.6659 155.755 +-72.8116 -50.8729 159.54 +-73.0499 -49.8454 156.318 +-76.3036 -50.8662 159.519 +-77.1278 -50.2489 157.583 +-80.1612 -51.057 160.118 +-81.1863 -50.5697 158.59 +-84.8222 -51.6846 162.086 +-85.1686 -50.7811 159.253 +-88.7943 -51.8198 162.51 +-89.1526 -50.9388 159.747 +-92.3302 -51.6615 162.014 +-93.0834 -51.0163 159.99 +-97.0074 -52.0896 163.356 +-97.7 -51.4094 161.223 +-101.812 -52.5098 164.674 +-102.235 -51.691 162.106 +-105.701 -52.4022 164.336 +-106.249 -51.6564 161.997 +-110.093 -52.5 164.643 +-109.69 -51.3143 160.925 +-114.085 -52.3642 164.217 +-114.243 -51.4553 161.367 +-118.152 -52.2272 163.788 +-117.813 -51.1156 160.302 +-118.638 -50.5293 158.463 +-106.565 -44.5599 139.743 +-99.5139 -40.8566 128.129 +-99.0588 -39.9361 125.242 +-98.2541 -38.9007 121.995 +-98.0749 -38.136 119.597 +-98.2951 -37.5418 117.733 +-98.3628 -36.902 115.727 +-98.3377 -36.2412 113.655 +-98.2179 -35.5604 111.52 +-98.7161 -35.1138 110.119 +-98.4745 -34.4151 107.928 +-98.3328 -33.7659 105.892 +-98.8975 -33.3685 104.646 +-98.6362 -32.7017 102.554 +-98.3442 -32.0391 100.476 +-98.5724 -31.557 98.9645 +-98.2247 -30.901 96.9075 +-98.9684 -30.596 95.951 +-98.5707 -29.9458 93.9118 +-98.4999 -29.4065 92.2206 +-98.7654 -28.9754 90.8687 +-98.5784 -28.4197 89.126 +-98.7327 -27.9708 87.7182 +-98.8689 -27.5233 86.3146 +-99.1355 -27.1178 85.0431 +-99.2366 -26.6728 83.6475 +-99.3953 -26.2493 82.3192 +-98.8528 -25.6493 80.4378 +-99.0495 -25.2496 79.1842 +-99.2309 -24.8508 77.9335 +-98.6975 -24.2808 76.1462 +-99.3912 -24.0183 75.3227 +-98.8165 -23.4546 73.5549 +-98.8518 -23.0438 72.2666 +-98.7912 -22.6163 70.9259 +-99.4371 -22.3535 70.1019 +-99.4282 -21.9462 68.8245 +-99.3221 -21.523 67.4973 +-99.2812 -21.1194 66.2318 +-98.7303 -20.6145 64.6484 +-98.8213 -20.2501 63.5054 +-99.2324 -19.9538 62.5762 +-99.1309 -19.5575 61.3336 +-99.4359 -19.245 60.3535 +-99.2216 -18.8358 59.0702 +-99.1621 -18.4609 57.8945 +-99.0028 -18.0721 56.6753 +-99.5182 -17.809 55.85 +-99.2465 -17.4078 54.5918 +-98.9594 -17.0094 53.3423 +-98.832 -16.6432 52.1942 +-99.3063 -16.3806 51.3705 +-98.9784 -15.9883 50.1404 +-99.4339 -15.7253 49.3155 +-99.0799 -15.337 48.0976 +-99.5167 -15.0737 47.2721 +-99.2269 -14.7028 46.1088 +-98.8331 -14.3214 44.9129 +-99.2407 -14.0589 44.0895 +-99.6408 -13.7952 43.2627 +-99.3024 -13.4317 42.1226 +-99.5927 -13.1558 41.2574 +-98.402 -12.6895 39.795 +-99.5942 -12.5328 39.3035 +-98.1888 -12.052 37.7958 +-99.4616 -11.9026 37.3272 +-98.9595 -11.5405 36.1916 +-99.1936 -11.267 35.3341 +-99.5134 -11.0036 34.508 +-99.92 -10.7495 33.7111 +-100.698 -10.5337 33.0342 +-105.643 -10.7386 33.677 +-107.66 -10.6271 33.3274 +-111.871 -10.7159 33.6057 +-112.653 -10.4633 32.8136 +-125.222 -11.2687 35.3393 +-141.978 -12.3682 38.7874 +-162.179 -13.6638 42.8504 +-163.531 -13.312 41.7471 +-164.004 -12.8855 40.4097 +-166.018 -12.5751 39.4364 +-170.943 -12.4679 39.1 +-173.048 -12.1372 38.063 +-3198.83 -215.444 675.646 +-3204.9 -206.956 649.025 +-381.289 -23.567 73.9076 +-378.515 -22.3524 70.0984 +-378.946 -21.337 66.9141 +-379.545 -20.3315 63.7609 +-379.523 -19.2944 60.5085 +-379.964 -18.2828 57.3359 +-376.617 -17.0996 53.6255 +-379.867 -16.2189 50.8635 +-379.723 -15.1874 47.6287 +-380.145 -14.1802 44.4699 +-379.942 -13.1512 41.2429 +-380.504 -12.1498 38.1024 +-379.047 -11.0881 34.773 +-379.351 -10.0828 31.6203 +-379.427 -9.07193 28.4501 +-380.271 -8.07841 25.3344 +-378.293 -7.02915 22.0438 +-379.379 -6.04028 18.9427 +-146.361 -1.94136 6.08821 +-146.611 -1.55538 4.87778 +-3275.38 -26.0566 81.715 +-145.278 -0.770386 2.41598 +-145.394 -0.385474 1.20887 +94.9 0 1.13687e-13 +95.8963 -0.247038 0.799582 +94.9855 -0.489421 1.5841 +95.8671 -0.741039 2.3985 +95.8416 -0.987963 3.19772 +95.8087 -1.23481 3.99669 +95.7686 -1.48157 4.79536 +95.7211 -1.72821 5.59366 +95.5666 -1.97267 6.38488 +95.6044 -2.22109 7.18894 +96.4316 -2.49043 8.06073 +95.4585 -2.71328 8.78202 +96.1703 -2.98376 9.65747 +96.1778 -3.23473 10.4698 +96.0785 -3.48237 11.2713 +95.9719 -3.72971 12.0719 +95.7589 -3.97268 12.8583 +96.6268 -4.26286 13.7975 +95.5095 -4.46542 14.4531 +95.3738 -4.71128 15.2489 +95.0339 -4.94652 16.0103 +95.8674 -5.24496 16.9762 +95.7087 -5.49171 17.7749 +95.5427 -5.73804 18.5722 +95.3694 -5.98394 19.3681 +96.1652 -6.29327 20.3693 +95.878 -6.53412 21.1488 +95.6812 -6.78084 21.9474 +95.5741 -7.0342 22.7674 +96.1371 -7.33925 23.7548 +95.7232 -7.57136 24.506 +95.6885 -7.83343 25.3543 +96.1262 -8.13656 26.3354 +95.882 -8.38387 27.1359 +95.8217 -8.6478 27.9901 +96.4208 -8.97422 29.0467 +95.9616 -9.204 29.7904 +96.5393 -9.53515 30.8622 +96.1592 -9.77387 31.6348 +95.8666 -10.0212 32.4354 +96.5064 -10.3687 33.5602 +97.1329 -10.7203 34.6982 +96.7189 -10.9595 35.4725 +96.4843 -11.2191 36.3126 +96.149 -11.4672 37.1156 +96.5454 -11.8048 38.2084 +96.2848 -12.0646 39.0492 +96.8415 -12.4299 40.2315 +96.4704 -12.6789 41.0374 +96.1829 -12.9391 41.8798 +96.5218 -13.2862 43.0031 +96.3961 -13.5725 43.9297 +95.8114 -13.7944 44.648 +96.3844 -14.1856 45.9141 +96.5851 -14.5271 47.0196 +96.0633 -14.7617 47.779 +96.3296 -15.1195 48.9369 +96.6699 -15.4938 50.1486 +96.2082 -15.7423 50.9527 +96.4354 -16.1058 52.1292 +96.0422 -16.3683 52.979 +96.1578 -16.72 54.1173 +96.4313 -17.1039 55.3598 +96.6894 -17.4905 56.611 +96.8471 -17.864 57.8201 +96.231 -18.097 58.574 +96.4471 -18.4889 59.8424 +95.9803 -18.7529 60.697 +96.0855 -19.1315 61.9224 +96.2579 -19.5287 63.2082 +95.677 -19.7759 64.0083 +96.4727 -20.3131 65.7469 +95.7876 -20.5435 66.4926 +95.9001 -20.9475 67.8002 +95.996 -21.3536 69.1147 +95.9958 -21.7438 70.3777 +95.9797 -22.1357 71.646 +96.026 -22.5474 72.9788 +96.0552 -22.9611 74.3178 +95.9901 -23.3579 75.602 +95.9854 -23.7751 76.9522 +95.9632 -24.194 78.308 +95.8481 -24.5952 79.6066 +95.7914 -25.0172 80.9725 +95.7171 -25.4408 82.3435 +96.2884 -26.0453 84.3003 +96.0999 -26.4534 85.6212 +95.967 -26.8829 87.0111 +95.8161 -27.3136 88.4053 +96.1462 -27.8904 90.2723 +96.0958 -28.3666 91.8136 +95.7442 -28.7605 93.0883 +96.1407 -29.3882 95.1202 +95.9566 -29.8488 96.611 +95.6844 -30.2893 98.0366 +96.0014 -30.9263 100.098 +95.5519 -31.326 101.392 +95.8811 -31.991 103.545 +95.391 -32.3928 104.845 +95.5988 -33.0413 106.944 +95.6468 -33.648 108.908 +95.5389 -34.2121 110.733 +95.6567 -34.8698 112.862 +95.1202 -35.2998 114.254 +94.9966 -35.8923 116.172 +94.7233 -36.4402 117.945 +94.485 -37.0128 119.799 +94.101 -37.5395 121.503 +93.9281 -38.1626 123.52 +93.7835 -38.8117 125.621 +93.665 -39.4871 127.807 +94.0801 -40.4078 130.787 +93.7766 -41.0404 132.835 +93.5533 -41.7235 135.045 +93.4601 -42.4827 137.503 +93.7051 -43.4188 140.533 +93.4248 -44.1343 142.849 +93.5795 -45.0781 145.903 +92.9129 -45.6463 147.742 +93.2856 -46.7485 151.31 +91.8 -46.936 151.917 +90.9999 -47.4791 153.675 +88.6232 -47.1952 152.755 +88.0358 -47.8629 154.917 +85.8194 -47.6447 154.211 +84.777 -48.0734 155.598 +83.0803 -48.1321 155.788 +82.145 -48.6348 157.415 +79.8274 -48.3139 156.377 +78.6113 -48.651 157.468 +75.5219 -47.8083 154.74 +74.4789 -48.2428 156.146 +71.667 -47.516 153.794 +70.3792 -47.7799 154.648 +68.4952 -47.6335 154.174 +67.888 -48.3807 156.593 +65.5562 -47.8968 155.027 +64.5775 -48.3936 156.635 +62.571 -48.117 155.739 +61.7065 -48.7189 157.687 +59.5115 -48.2658 156.221 +59.0171 -49.1963 159.232 +56.3558 -48.3136 156.376 +54.7351 -48.2891 156.296 +52.5329 -47.7265 154.475 +51.3305 -48.0568 155.544 +49.1769 -47.4815 153.682 +48.1406 -47.9745 155.278 +46.0866 -47.444 153.561 +45.2969 -48.215 156.057 +43.2228 -47.6173 154.122 +42.189 -48.1554 155.864 +40.3526 -47.7752 154.633 +39.2422 -48.2505 156.171 +37.3419 -47.7457 154.537 +36.2536 -48.2726 156.243 +34.3886 -47.7578 154.577 +33.3343 -48.365 156.542 +31.4835 -47.8115 154.75 +30.324 -48.2974 156.323 +28.6172 -47.9083 155.064 +27.3979 -48.3296 156.427 +25.6709 -47.8446 154.857 +24.4477 -48.2883 156.293 +22.7687 -47.8233 154.789 +21.589 -48.4069 156.678 +20.0475 -48.197 155.998 +18.6785 -48.3933 156.634 +17.1322 -48.1167 155.738 +15.9296 -48.8349 158.063 +14.2325 -48.0214 155.43 +12.9065 -48.4093 156.685 +11.3564 -47.9399 155.166 +10.0181 -48.3505 156.495 +8.56216 -48.2272 156.096 +7.21465 -48.7783 157.879 +5.66768 -47.9098 155.069 +4.3349 -48.8668 158.166 +2.84998 -48.1973 155.999 +1.43639 -48.5867 157.259 +1.33227e-14 -48.2638 156.214 +-1.44511 -48.8819 158.215 +-2.86045 -48.3745 156.572 +-4.35061 -49.0439 158.739 +-5.72003 -48.3523 156.501 +-7.26699 -49.1319 159.024 +-8.57786 -48.3154 156.381 +-10.1463 -48.9693 158.498 +-11.461 -48.3818 156.596 +-13.1184 -49.2039 159.257 +-14.3197 -48.3154 156.381 +-16.0254 -49.1287 159.014 +-17.1322 -48.1167 155.738 +-18.9389 -49.0682 158.818 +-20.0841 -48.285 156.283 +-21.9676 -49.2556 159.424 +-22.9357 -48.174 155.924 +-24.832 -49.0475 158.751 +-25.8899 -48.2525 156.178 +-27.86 -49.1449 159.066 +-28.8603 -48.3154 156.381 +-31.0347 -49.4292 159.986 +-31.9605 -48.5362 157.096 +-33.8327 -49.0882 158.883 +-35.241 -48.9415 158.408 +-36.903 -49.1369 159.04 +-37.8818 -48.4361 156.772 +-40.3394 -49.5998 160.538 +-41.1267 -48.6918 157.6 +-43.4159 -49.5558 160.396 +-44.4651 -48.9858 158.551 +-46.8202 -49.8365 161.305 +-47.7128 -49.118 158.979 +-50.1003 -49.9275 161.599 +-50.9604 -49.2036 159.256 +-53.2249 -49.8306 161.286 +-54.6033 -49.6075 160.563 +-56.9245 -50.2206 162.548 +-57.9186 -49.6535 160.712 +-60.2188 -50.1981 162.475 +-61.461 -49.8469 161.338 +-63.7027 -50.295 162.789 +-64.7929 -49.8256 161.269 +-67.4362 -50.5358 163.568 +-68.553 -50.0866 162.114 +-71.2174 -50.7534 164.272 +-71.7773 -49.9159 161.562 +-74.7655 -50.7578 164.287 +-75.7344 -50.2126 162.522 +-78.5014 -50.8484 164.58 +-79.8749 -50.5639 163.659 +-82.6151 -51.1289 165.488 +-83.7289 -50.6755 164.02 +-87.901 -52.0428 168.446 +-88.6643 -51.3674 166.26 +-92.6268 -52.5245 170.005 +-92.0634 -51.1112 165.43 +-95.0023 -51.6502 167.175 +-96.0893 -51.1714 165.625 +-99.568 -51.9495 168.144 +-100.55 -51.4099 166.397 +-104.502 -52.3696 169.503 +-105.222 -51.6936 167.315 +-108.889 -52.4525 169.772 +-109.057 -51.5191 166.751 +-112.725 -52.2323 169.059 +-113.122 -51.4199 166.43 +-104.868 -46.7695 151.378 +-105.799 -46.3019 149.864 +-104.785 -45.0057 145.669 +-105.825 -44.6134 144.399 +-112.134 -46.4058 150.201 +-103.215 -41.9357 135.732 +-98.3242 -39.2244 126.957 +-97.8551 -38.3329 124.071 +-98.5585 -37.9155 122.72 +-98.4443 -37.195 120.388 +-98.4818 -36.5473 118.292 +-98.3628 -35.8563 116.055 +-98.3377 -35.2142 113.977 +-98.2822 -34.5752 111.909 +-98.1965 -33.939 109.85 +-98.5401 -33.462 108.306 +-98.3328 -32.809 106.192 +-98.2953 -32.2254 104.303 +-98.6362 -31.775 102.845 +-98.4124 -31.1527 100.831 +-98.297 -30.5768 98.9672 +-98.572 -30.1313 97.5254 +-98.9684 -29.729 96.2231 +-98.3586 -29.0346 93.9756 +-98.8565 -28.6766 92.817 +-98.4057 -28.0518 90.7946 +-98.7235 -27.655 89.5103 +-98.7327 -27.1782 87.967 +-98.8689 -26.7433 86.5595 +-98.4667 -26.1716 84.709 +-98.6375 -25.7605 83.3783 +-98.7915 -25.3505 82.0512 +-98.9288 -24.9416 80.728 +-99.2028 -24.572 79.5316 +-99.2309 -24.1465 78.1546 +-99.397 -23.76 76.9033 +-98.7651 -23.1906 75.0605 +-98.8165 -22.7899 73.7636 +-99.5658 -22.5525 72.9951 +-98.7113 -21.9576 71.0696 +-98.8744 -21.5971 69.9029 +-98.7001 -21.1681 68.5143 +-98.9964 -20.8445 67.4668 +-98.8717 -20.4363 66.1457 +-98.9776 -20.0805 64.9941 +-98.6555 -19.6432 63.5787 +-98.9822 -19.3394 62.5954 +-98.8793 -18.9551 61.3515 +-99.4359 -18.6997 60.5247 +-99.3064 -18.3176 59.2883 +-99.2473 -17.9532 58.1086 +-99.0028 -17.56 56.8361 +-99.5182 -17.3043 56.0085 +-99.2465 -16.9145 54.7466 +-99.1335 -16.5564 53.5877 +-99.6192 -16.3004 52.7591 +-99.3063 -15.9164 51.5162 +-98.9784 -15.5353 50.2826 +-99.4339 -15.2797 49.4554 +-99.169 -14.9157 48.2774 +-99.5167 -14.6466 47.4062 +-99.2269 -14.2861 46.2396 +-98.8331 -13.9156 45.0403 +-99.2407 -13.6605 44.2145 +-98.9128 -13.3064 43.0685 +-99.3024 -13.0511 42.2421 +-98.8591 -12.6888 41.0696 +-99.1384 -12.4221 40.2065 +-99.5942 -12.1776 39.415 +-99.116 -11.821 38.2609 +-99.3686 -11.5545 37.398 +-99.7064 -11.2981 36.5682 +-99.8493 -11.0201 35.6685 +-99.9833 -10.7423 34.7693 +-101.334 -10.5927 34.2851 +-103.44 -10.5139 34.03 +-109.247 -10.7903 34.9246 +-110.988 -10.6453 34.4553 +-114.732 -10.6785 34.5629 +-120.208 -10.8486 35.1134 +-153.986 -13.4645 43.5803 +-161.492 -13.6694 44.2436 +-162.95 -13.3397 43.1763 +-163.918 -12.9653 41.9644 +-164.972 -12.5943 40.7636 +-168.637 -12.4116 40.1724 +-172.985 -12.2593 39.6793 +-177.92 -12.1253 39.2457 +-3198.83 -209.339 677.562 +-380.499 -23.8744 77.2735 +-379.329 -22.7815 73.7362 +-379.497 -21.7753 70.4796 +-379.241 -20.7485 67.156 +-379.545 -19.7554 63.9417 +-379.227 -18.7331 60.6329 +-379.964 -17.7647 57.4986 +-380.474 -16.7852 54.3284 +-378.381 -15.6977 50.8083 +-377.245 -14.6607 47.452 +-379.748 -13.7639 44.5494 +-379.246 -12.7551 41.2842 +-380.007 -11.79 38.1605 +-380.241 -10.8079 34.9816 +-377.757 -9.75592 31.5768 +-379.925 -8.82645 28.5684 +-377.578 -7.79387 25.2262 +-380.988 -6.8786 22.2638 +-380.278 -5.88301 19.0414 +-146.76 -1.89149 6.12215 +-146.111 -1.50616 4.87494 +-3275.38 -25.3182 81.9468 +-145.278 -0.748555 2.42283 +-146.394 -0.377124 1.22063 +95.7 0 -1.7053e-13 +95.7964 -0.239563 0.800942 +95.6854 -0.478609 1.60016 +95.7672 -0.718616 2.40258 +95.7416 -0.958069 3.20316 +95.7088 -1.19745 4.0035 +95.6687 -1.43674 4.80352 +95.6213 -1.67592 5.60318 +95.5666 -1.91497 6.40242 +96.4019 -2.17411 7.26881 +96.332 -2.4151 8.07452 +96.2548 -2.6559 8.8796 +96.1703 -2.8965 9.684 +96.0784 -3.13689 10.4877 +95.9792 -3.37703 11.2906 +95.8727 -3.61691 12.0926 +95.7589 -3.8565 12.8936 +95.5389 -4.09159 13.6796 +96.3984 -4.37517 14.6277 +96.1628 -4.61132 15.4172 +95.0339 -4.80185 16.0543 +95.6707 -5.0811 16.9879 +95.5123 -5.32015 17.7871 +95.3467 -5.5588 18.585 +95.1738 -5.79701 19.3814 +95.1889 -6.0472 20.2179 +95.878 -6.34302 21.2069 +95.4867 -6.56914 21.9629 +95.4771 -6.82154 22.8068 +96.1371 -7.12461 23.82 +95.7232 -7.34993 24.5734 +95.4958 -7.589 25.3727 +96.1262 -7.8986 26.4078 +95.7861 -8.13054 27.1832 +95.6305 -8.37815 28.0111 +96.23 -8.69451 29.0688 +95.8665 -8.92597 29.8426 +96.4445 -9.2472 30.9166 +96.1592 -9.48802 31.7217 +95.7724 -9.71856 32.4925 +96.4125 -10.0557 33.6197 +96.0089 -10.2864 34.3909 +96.7189 -10.639 35.5699 +96.3913 -10.8805 36.3772 +96.8907 -11.2177 37.5047 +96.5454 -11.4596 38.3133 +96.2848 -11.7118 39.1565 +96.0162 -11.9635 39.9982 +96.379 -12.2964 41.1111 +96.9109 -12.6558 42.3127 +96.5218 -12.8976 43.1213 +96.1253 -13.1385 43.9266 +96.5305 -13.4915 45.1067 +96.116 -13.7323 45.9119 +96.4069 -14.0762 47.0618 +95.9746 -14.3168 47.866 +96.3296 -14.6773 49.0713 +95.7911 -14.904 49.8291 +96.1207 -15.268 51.0462 +96.4354 -15.6347 52.2724 +96.6484 -15.9899 53.4599 +96.9333 -16.3619 54.7036 +96.4313 -16.6037 55.5119 +96.6041 -16.964 56.7165 +96.0838 -17.2049 57.522 +96.3153 -17.5831 58.7864 +96.4471 -17.9481 60.0068 +95.8969 -18.1886 60.8109 +96.0855 -18.572 62.0925 +96.2579 -18.9576 63.3818 +96.3323 -19.3291 64.6238 +96.3913 -19.7024 65.8718 +95.7876 -19.9427 66.6752 +95.8197 -20.3178 67.9294 +95.9161 -20.7118 69.2469 +95.9164 -21.0905 70.5128 +95.9797 -21.4883 71.8428 +96.026 -21.888 73.1792 +96.0552 -22.2896 74.522 +95.8358 -22.6383 75.6878 +95.8322 -23.0429 77.0404 +95.9632 -23.4864 78.5231 +95.8481 -23.8759 79.8253 +95.7914 -24.2855 81.195 +95.7171 -24.6967 82.5697 +96.2884 -25.2836 84.5319 +96.0999 -25.6798 85.8564 +95.967 -26.0966 87.2501 +95.6722 -26.475 88.515 +96.2888 -27.1149 90.6546 +95.9544 -27.4965 91.9304 +95.7442 -27.9193 93.3441 +95.5155 -28.3432 94.7612 +95.9566 -28.9759 96.8764 +95.6844 -29.4034 98.3059 +96.0014 -30.0218 100.373 +95.6188 -30.431 101.741 +95.8811 -31.0554 103.829 +96.047 -31.6615 105.855 +95.6637 -32.0968 107.311 +95.7111 -32.686 109.28 +95.6026 -33.2336 111.111 +95.0274 -33.6273 112.428 +95.058 -34.2448 114.492 +95.0581 -34.8652 116.567 +94.7842 -35.3971 118.345 +95.0266 -36.1364 120.817 +94.3984 -36.5568 122.222 +94.1044 -37.1161 124.092 +93.7255 -37.6531 125.888 +93.6077 -38.3088 128.08 +94.0801 -39.2261 131.146 +93.8326 -39.8639 133.279 +93.6085 -40.527 135.496 +93.4601 -41.2403 137.881 +93.7051 -42.149 140.919 +93.4778 -42.8679 143.322 +93.5795 -43.7597 146.304 +93.3249 -44.5079 148.805 +93.3363 -45.4063 151.809 +92.8 -46.0596 153.993 +92.034 -46.6141 155.847 +89.8837 -46.4665 155.354 +88.9424 -46.9416 156.942 +87.087 -46.9345 156.918 +86.0699 -47.3792 158.405 +83.7612 -47.1076 157.497 +83.5282 -48.0076 160.506 +81.2302 -47.7254 159.563 +80.4625 -48.3403 161.619 +78.1421 -48.0202 160.548 +77.2574 -48.579 162.417 +73.3346 -47.1995 157.804 +73.8085 -48.6426 162.629 +70.1753 -47.3746 158.39 +68.883 -47.654 159.324 +66.8298 -47.3996 158.473 +66.0435 -48.0446 160.63 +64.6137 -48.2349 161.266 +64.0529 -49.0923 164.132 +61.5636 -48.4699 162.052 +60.4858 -48.9461 163.644 +58.0488 -48.3097 161.516 +55.9091 -47.8824 160.088 +53.3054 -47.0118 157.177 +52.0822 -47.3348 158.257 +49.9078 -46.778 156.395 +48.7938 -47.2033 157.817 +46.8032 -46.7726 156.377 +46.0719 -47.6059 159.163 +43.8957 -46.9442 156.951 +42.8901 -47.5239 158.889 +40.9332 -47.0454 157.289 +39.9192 -47.6474 159.302 +37.7693 -46.88 156.736 +36.8597 -47.644 159.29 +34.9707 -47.1457 157.624 +34.072 -47.9896 160.446 +31.9605 -47.1167 157.528 +30.7614 -47.5609 159.013 +28.9124 -46.9869 157.094 +28.0581 -48.0469 160.637 +26.0463 -47.1245 157.553 +25.0833 -48.0947 160.797 +23.2141 -47.3328 158.25 +22.1111 -48.1277 160.908 +20.3766 -47.5554 158.994 +19.1766 -48.2309 161.253 +17.4249 -47.5076 158.834 +16.2171 -48.2624 161.358 +14.555 -47.6732 159.388 +13.2988 -48.4217 161.891 +11.6772 -47.8529 159.989 +10.2928 -48.2237 161.229 +8.73487 -47.7609 159.681 +7.35423 -48.2678 161.376 +5.82473 -47.7973 159.803 +4.41343 -48.2971 161.474 +2.91281 -47.8194 159.877 +1.47129 -48.312 161.524 +1.77636e-14 -47.9698 160.38 +-1.47653 -48.4839 162.098 +-2.90757 -47.7334 159.589 +-4.44485 -48.6409 162.624 +-5.85265 -48.0265 160.569 +-7.39349 -48.5254 162.237 +-8.79767 -48.1045 160.83 +-10.4027 -48.7384 162.949 +-11.6842 -47.8815 160.085 +-13.3851 -48.7361 162.942 +-14.6683 -48.0443 160.629 +-16.3513 -48.6618 162.693 +-17.6862 -48.22 161.216 +-19.4144 -48.8289 163.252 +-20.7178 -48.3518 161.657 +-22.4113 -48.7811 163.092 +-23.6316 -48.1842 161.096 +-25.4232 -48.7467 162.977 +-26.6877 -48.285 161.434 +-28.4707 -48.7533 162.999 +-29.6244 -48.144 160.962 +-31.4903 -48.6879 162.781 +-32.8382 -48.4105 161.853 +-34.7897 -49.0006 163.826 +-35.8856 -48.379 161.748 +-37.6605 -48.6793 162.752 +-39.074 -48.4994 162.15 +-40.9697 -48.9014 163.494 +-42.2396 -48.5469 162.309 +-44.3173 -49.1052 164.176 +-45.6557 -48.8263 163.243 +-47.7822 -49.3731 165.071 +-48.8705 -48.8387 163.285 +-51.0376 -49.3739 165.074 +-52.2761 -48.9977 163.816 +-54.518 -49.5485 165.658 +-55.5304 -48.9742 163.738 +-57.8129 -49.5129 165.539 +-59.1557 -49.231 164.596 +-61.7876 -49.9995 167.166 +-62.4871 -49.1969 164.482 +-65.3837 -50.1124 167.543 +-66.5848 -49.7061 166.185 +-68.719 -49.9909 167.137 +-70.2387 -49.8172 166.556 +-72.7864 -50.3545 168.353 +-73.8091 -49.8276 166.591 +-76.5199 -50.4296 168.604 +-77.8901 -50.1316 167.607 +-80.6993 -50.7431 169.652 +-81.1004 -49.8382 166.626 +-84.3802 -50.6941 169.488 +-85.7454 -50.378 168.431 +-89.5073 -51.444 171.995 +-90.1171 -50.6821 169.448 +-96.3669 -53.0473 177.356 +-94.4107 -50.8815 170.115 +-97.0541 -51.2225 171.255 +-97.9315 -50.6271 169.264 +-101.932 -51.6274 172.608 +-102.95 -51.0976 170.837 +-106.431 -51.7764 173.107 +-107.54 -51.2873 171.471 +-109.986 -51.4317 171.954 +-111.177 -50.9844 170.459 +-113.424 -51.0188 170.574 +-114.701 -50.613 169.217 +-104.151 -45.091 150.755 +-100.487 -42.6908 142.73 +-100.48 -41.8948 140.069 +-103.014 -42.1584 140.95 +-98.6034 -39.6129 132.44 +-98.8067 -38.9707 130.293 +-99.038 -38.3535 128.229 +-99.0588 -37.6695 125.942 +-98.5585 -36.8067 123.057 +-98.5674 -36.1524 120.87 +-98.4818 -35.4785 118.617 +-98.9921 -35.0303 117.118 +-98.4013 -34.2064 114.364 +-98.8607 -33.7617 112.877 +-98.781 -33.1427 110.808 +-97.9496 -32.2888 107.953 +-98.3328 -31.8495 106.484 +-98.8975 -31.4747 105.231 +-98.7037 -30.8669 103.199 +-98.958 -30.4092 101.669 +-98.5035 -29.745 99.4479 +-98.8499 -29.3327 98.0692 +-99.0385 -28.8799 96.5555 +-98.7121 -28.2867 94.5724 +-98.8565 -27.838 93.072 +-98.4776 -27.2513 91.1105 +-98.5784 -26.8068 89.6243 +-98.8059 -26.4029 88.274 +-98.2791 -25.8063 86.2795 +-98.4667 -25.4062 84.9417 +-99.3115 -25.178 84.1787 +-98.716 -24.5903 82.2138 +-99.0049 -24.2308 81.012 +-99.2028 -23.8534 79.7501 +-99.2309 -23.4404 78.3693 +-98.6975 -22.9028 76.5719 +-99.4695 -22.6729 75.8035 +-98.7377 -22.1058 73.9073 +-99.5658 -21.8929 73.1956 +-98.7912 -21.3327 71.3225 +-98.794 -20.9485 70.0379 +-99.2664 -20.6669 69.0967 +-98.9964 -20.2349 67.6522 +-99.0355 -19.8715 66.4373 +-98.7303 -19.4445 65.0098 +-98.9871 -19.1328 63.9676 +-98.9822 -18.7738 62.7674 +-99.5502 -18.5256 61.9375 +-99.4359 -18.1528 60.691 +-99.3064 -17.7819 59.4512 +-99.2473 -17.4281 58.2682 +-99.0028 -17.0464 56.9922 +-98.7427 -16.6673 55.7247 +-99.2465 -16.4198 54.897 +-98.9594 -16.044 53.6406 +-98.832 -15.6987 52.486 +-99.3063 -15.4509 51.6577 +-98.9784 -15.0809 50.4207 +-99.4339 -14.8328 49.5913 +-99.0799 -14.4665 48.3666 +-99.5167 -14.2182 47.5364 +-99.2269 -13.8683 46.3666 +-99.6454 -13.6196 45.5352 +-99.2407 -13.261 44.336 +-99.6408 -13.0123 43.5046 +-99.211 -12.6577 42.3192 +-98.8591 -12.3177 41.1824 +-99.1384 -12.0588 40.3169 +-98.7627 -11.7228 39.1933 +-99.116 -11.4753 38.366 +-99.4616 -11.2271 37.5359 +-99.7064 -10.9676 36.6686 +-100.318 -10.748 35.9343 +-100.923 -10.5261 35.1925 +-104.539 -10.6081 35.4667 +-106.654 -10.5236 35.184 +-110.764 -10.6202 35.507 +-112.13 -10.4402 34.9052 +-121.408 -10.9694 36.6745 +-126.615 -11.0927 37.0866 +-161.945 -13.7462 45.9585 +-162.549 -13.3566 44.6556 +-163.528 -12.9955 43.4485 +-164.497 -12.6306 42.2284 +-167.683 -12.4268 41.5472 +-170.578 -12.1873 40.7463 +-177.458 -12.2085 40.8171 +-180.258 -11.9254 39.8706 +-380.951 -24.2012 80.9129 +-379.423 -23.1106 77.2667 +-379.231 -22.1095 73.9197 +-379.89 -21.1603 70.7463 +-378.75 -20.1155 67.2532 +-378.462 -19.1229 63.9344 +-377.846 -18.119 60.578 +-380.062 -17.2496 57.6716 +-376.321 -16.1165 53.8829 +-380.164 -15.3104 51.188 +-379.327 -14.3105 47.845 +-378.954 -13.3335 44.5784 +-379.544 -12.3918 41.4301 +-380.007 -11.4452 38.2653 +-379.047 -10.4588 34.9675 +-376.362 -9.43561 31.5465 +-379.925 -8.56831 28.6468 +-379.374 -7.60193 25.4159 +-380.788 -6.67394 22.3133 +-380.278 -5.71096 19.0937 +-146.361 -1.83117 6.12225 +-144.812 -1.44911 4.84487 +-3275.38 -24.5777 82.1719 +-144.478 -0.722662 2.41611 +-145.894 -0.364846 1.21981 +94.9 0 1.13687e-13 +94.7964 -0.229915 0.794685 +94.8855 -0.460297 1.59098 +95.7672 -0.69695 2.40896 +95.7416 -0.929184 3.21166 +95.6089 -1.16014 4.00993 +95.6687 -1.39342 4.81626 +95.6213 -1.62539 5.61805 +95.5666 -1.85724 6.4194 +95.5047 -2.08894 7.22027 +96.332 -2.34228 8.09594 +96.2548 -2.57582 8.90315 +96.1703 -2.80917 9.7097 +96.0784 -3.04232 10.5155 +95.9792 -3.27521 11.3205 +95.8727 -3.50786 12.1247 +95.6599 -3.73636 12.9145 +96.5279 -4.0093 13.8579 +95.4107 -4.19979 14.5163 +96.1628 -4.47229 15.4581 +95.8218 -4.69571 16.2304 +95.6707 -4.92791 17.033 +95.5123 -5.15975 17.8343 +95.3467 -5.3912 18.6343 +96.0541 -5.67423 19.6126 +94.9936 -5.85285 20.23 +95.6831 -6.13927 21.22 +95.6812 -6.38406 22.0661 +95.283 -6.60242 22.8208 +95.0721 -6.83326 23.6187 +95.9164 -7.14269 24.6882 +95.4958 -7.36019 25.44 +95.261 -7.59153 26.2396 +95.882 -7.8933 27.2826 +95.5348 -8.11741 28.0572 +96.23 -8.43237 29.1459 +95.8665 -8.65685 29.9218 +96.3497 -8.95958 30.9682 +96.1592 -9.20196 31.8059 +96.6208 -9.50903 32.8673 +95.4728 -9.65744 33.3802 +96.0089 -9.97624 34.4822 +95.692 -10.2087 35.2856 +96.3913 -10.5524 36.4737 +96.0562 -10.7858 37.2803 +96.5454 -11.1141 38.415 +96.2848 -11.3587 39.2604 +96.0162 -11.6028 40.1043 +96.4704 -11.937 41.2593 +96.1829 -12.182 42.1063 +96.6124 -12.5205 43.2763 +96.1253 -12.7424 44.0432 +96.5305 -13.0847 45.2263 +96.0265 -13.3059 45.9909 +95.605 -13.5383 46.7941 +95.9746 -13.8851 47.993 +96.3296 -14.2348 49.2015 +96.6699 -14.5872 50.4197 +96.1207 -14.8077 51.1816 +96.5224 -15.1771 52.4584 +96.6484 -15.5078 53.6017 +96.1578 -15.7417 54.4099 +96.4313 -16.1031 55.6592 +96.6041 -16.4525 56.8669 +96.0838 -16.6862 57.6746 +96.3153 -17.053 58.9423 +96.4471 -17.407 60.166 +96.6474 -17.7783 61.4494 +96.0026 -17.9965 62.2035 +96.1755 -18.3703 63.4956 +96.2504 -18.7304 64.7401 +96.4727 -19.1245 66.1024 +95.7067 -19.325 66.7956 +95.9805 -19.7383 68.2239 +95.9161 -20.0874 69.4306 +95.9164 -20.4546 70.6998 +95.9797 -20.8404 72.0334 +96.026 -21.2281 73.3734 +96.0552 -21.6176 74.7197 +95.9901 -21.9911 76.0108 +96.5216 -22.5089 77.8005 +95.9632 -22.7783 78.7315 +95.8481 -23.156 80.0371 +96.4655 -23.7191 81.9833 +95.7171 -23.9521 82.7888 +96.2884 -24.5213 84.7562 +96.0999 -24.9055 86.0842 +95.967 -25.3098 87.4816 +95.6722 -25.6768 88.7499 +95.6469 -26.1221 90.2891 +96.0958 -26.7068 92.3101 +95.7442 -27.0776 93.5917 +96.1407 -27.6686 95.6345 +95.9566 -28.1023 97.1335 +95.6844 -28.5169 98.5667 +95.8663 -29.0758 100.498 +95.6188 -29.5135 102.011 +95.2848 -29.9318 103.457 +95.5222 -30.5393 105.557 +95.0792 -30.9387 106.937 +95.7111 -31.7005 109.57 +95.0937 -32.0601 110.813 +95.2162 -32.6782 112.95 +95.1825 -33.256 114.947 +94.9966 -33.7921 116.8 +95.3929 -34.5502 119.42 +94.9062 -35.0024 120.983 +95.4691 -35.8567 123.936 +94.3983 -36.1094 124.809 +94.7127 -36.9025 127.551 +93.7797 -37.2219 128.655 +93.6836 -37.883 130.94 +93.7766 -38.639 133.553 +93.6085 -39.3051 135.855 +93.4601 -39.9969 138.246 +93.7051 -40.8782 141.292 +93.4778 -41.5755 143.703 +93.5795 -42.4403 146.692 +93.5824 -43.2849 149.611 +93.2856 -44.0131 152.128 +93.1 -44.8154 154.901 +93.1665 -45.7651 158.184 +92.1623 -46.2081 159.715 +92.5211 -47.3581 163.69 +89.2935 -46.6728 161.321 +89.3484 -47.7011 164.875 +86.2582 -47.0491 162.622 +87.9456 -49.0226 169.443 +84.8687 -48.3597 167.152 +85.112 -49.592 171.411 +82.157 -48.9653 169.245 +81.9019 -49.9466 172.637 +78.1748 -48.7977 168.666 +78.5934 -50.2346 173.632 +74.4343 -48.7346 168.448 +72.6716 -48.7594 168.533 +68.6654 -47.233 163.258 +69.6352 -49.1301 169.815 +67.8391 -49.1157 169.765 +67.1348 -49.903 172.486 +64.676 -49.385 170.696 +64.0909 -50.2996 173.857 +61.1091 -49.3233 170.482 +60.5417 -50.2865 173.812 +55.3449 -47.3389 163.624 +53.8564 -47.4715 164.082 +51.3112 -46.6433 161.219 +50.2707 -47.1658 163.025 +47.8782 -46.4043 160.393 +46.9271 -47.0277 162.548 +45.0345 -46.71 161.45 +43.8165 -47.0866 162.751 +42.2638 -47.1102 162.833 +40.993 -47.454 164.021 +38.8041 -46.7122 161.457 +37.7254 -47.2928 163.464 +35.7608 -46.7572 161.613 +34.8096 -47.5504 164.355 +32.8191 -46.9237 162.189 +31.7637 -47.6299 164.629 +29.8328 -47.021 162.525 +28.7678 -47.7769 165.138 +26.8285 -47.0763 162.716 +25.6302 -47.6616 164.739 +23.7847 -47.0341 162.57 +22.5158 -47.5307 164.286 +20.7909 -47.0593 162.657 +19.5615 -47.7155 164.925 +17.8744 -47.2636 163.363 +16.6005 -47.9139 165.611 +14.8775 -47.26 163.351 +13.5656 -47.9039 165.577 +11.8795 -47.2141 163.192 +10.5187 -47.7961 165.204 +8.91805 -47.2922 163.462 +7.52871 -47.9231 165.643 +5.98177 -47.6063 164.548 +4.5417 -48.2024 166.608 +2.99134 -47.628 164.623 +1.51405 -48.2169 166.658 +1.24345e-14 -47.4406 163.975 +-1.50882 -48.0501 166.082 +-2.97913 -47.4334 163.95 +-4.5417 -48.2024 166.608 +-5.99224 -47.6894 164.835 +-7.58105 -48.2563 166.795 +-9.05412 -48.014 165.957 +-10.653 -48.4064 167.313 +-11.9842 -47.6302 164.63 +-13.7225 -48.4581 167.492 +-15.0344 -47.7586 165.074 +-16.7922 -48.467 167.523 +-18.073 -47.7889 165.179 +-19.7766 -48.2402 166.739 +-21.2418 -48.0801 166.186 +-22.9987 -48.5504 167.811 +-24.0213 -47.5018 164.187 +-26.044 -48.4314 167.4 +-27.2665 -47.8447 165.372 +-29.2629 -48.599 167.979 +-30.319 -47.7872 165.173 +-32.2557 -48.3678 167.18 +-33.3725 -47.715 164.923 +-35.4476 -48.422 167.367 +-36.6548 -47.9262 165.653 +-38.786 -48.6224 168.06 +-39.9063 -48.039 166.043 +-42.1836 -48.8322 168.785 +-43.2556 -48.2158 166.654 +-45.6192 -49.0239 169.448 +-46.5615 -48.2939 166.924 +-49.0115 -49.1165 169.768 +-50.0833 -48.5415 167.78 +-52.4292 -49.191 170.025 +-53.5333 -48.6632 168.201 +-55.8711 -49.2474 170.22 +-56.9827 -48.7399 168.466 +-59.4946 -49.4169 170.806 +-61.044 -49.2707 170.301 +-62.8892 -49.3566 170.598 +-64.1288 -48.967 169.251 +-66.7145 -49.5906 171.406 +-67.9824 -49.2193 170.123 +-70.6614 -49.8544 172.318 +-71.5873 -49.2429 170.205 +-74.6233 -50.0689 173.06 +-75.6065 -49.5022 171.101 +-78.3143 -50.0561 173.015 +-79.4357 -49.5848 171.386 +-82.524 -50.326 173.948 +-83.6362 -49.8469 172.292 +-88.0395 -51.2979 177.307 +-88.1564 -50.2329 173.626 +-92.4522 -51.5344 178.125 +-95.7466 -52.2245 180.51 +-98.9989 -52.8531 182.683 +-97.1806 -50.7951 175.57 +-100.012 -51.1925 176.943 +-100.792 -50.5347 174.67 +-104.542 -51.3529 177.498 +-105.3 -50.6881 175.2 +-107.192 -50.5745 174.807 +-108.364 -50.122 173.243 +-110.247 -49.9994 172.82 +-111.707 -49.6832 171.726 +-113.155 -49.3633 170.621 +-115.137 -49.2735 170.31 +-105.53 -44.311 153.158 +-99.2008 -40.8737 141.277 +-100.141 -40.4944 139.966 +-99.5155 -39.4986 136.524 +-98.2549 -38.2827 132.321 +-98.1601 -37.5484 129.783 +-98.5027 -36.9962 127.875 +-98.5171 -36.3342 125.587 +-98.5585 -35.6969 123.384 +-98.3827 -34.9966 120.963 +-98.5441 -34.4305 119.006 +-98.4257 -33.7799 116.758 +-98.3377 -33.1537 114.593 +-98.2822 -32.552 112.514 +-98.7161 -32.1223 111.029 +-98.6057 -31.5251 108.964 +-98.3328 -30.8892 106.766 +-98.3622 -30.3603 104.938 +-98.5011 -29.8748 103.26 +-98.958 -29.4924 101.938 +-98.297 -28.7876 99.5023 +-98.6415 -28.3882 98.1219 +-98.4778 -27.8507 96.2641 +-98.6414 -27.4142 94.7554 +-98.9278 -27.0181 93.3862 +-98.4776 -26.4297 91.3523 +-98.6509 -26.0177 89.9282 +-98.7327 -25.5879 88.4427 +-98.9426 -25.1972 87.0925 +-98.3924 -24.6216 85.1028 +-98.6375 -24.2531 83.8292 +-98.716 -23.8489 82.4319 +-98.8528 -23.4641 81.1021 +-99.2028 -23.1342 79.9617 +-99.2309 -22.7336 78.5772 +-99.3193 -22.3522 77.2587 +-98.6869 -21.8163 75.4066 +-98.8953 -21.4735 74.2216 +-98.7725 -21.0636 72.805 +-99.5898 -20.8567 72.0898 +-99.0352 -20.3665 70.3952 +-99.1046 -20.0111 69.1671 +-99.6477 -19.7539 68.2779 +-98.8717 -19.2405 66.5033 +-99.1424 -18.937 65.4544 +-99.1529 -18.587 64.2448 +-98.8989 -18.1924 62.8809 +-98.7954 -17.8308 61.631 +-98.6768 -17.4711 60.3876 +-99.3064 -17.2458 59.6089 +-99.2473 -16.9027 58.4228 +-99.0028 -16.5325 57.1434 +-99.5182 -16.2918 56.3113 +-99.2465 -15.9247 55.0427 +-99.1335 -15.5876 53.8774 +-99.4443 -15.3197 52.9513 +-99.3063 -14.985 51.7948 +-99.7731 -14.7436 50.9604 +-98.6356 -14.2701 49.3236 +-99.169 -14.043 48.5385 +-98.8902 -13.7027 47.3625 +-99.2269 -13.4502 46.4896 +-98.8331 -13.1013 45.2839 +-99.2407 -12.8611 44.4536 +-98.8218 -12.5162 43.2615 +-100.033 -12.3778 42.7831 +-99.5927 -12.035 41.5981 +-99.2304 -11.7061 40.4614 +-99.5018 -11.4544 39.5913 +-99.0232 -11.119 38.4319 +-100.02 -10.9497 37.8468 +-100.267 -10.6967 36.9724 +-100.88 -10.4823 36.2314 +-102.333 -10.3513 35.7787 +-107.178 -10.5481 36.4586 +-109.207 -10.4506 36.1217 +-113.799 -10.5822 36.5766 +-115.648 -10.4432 36.0962 +-128.656 -11.2738 38.9671 +-159.894 -13.5859 46.9587 +-162.328 -13.3634 46.1895 +-163.414 -13.0228 45.0124 +-163.817 -12.626 43.6408 +-166.719 -12.4152 42.9123 +-172.718 -12.414 42.9081 +-174.071 -12.0619 41.691 +-181.153 -12.0869 41.7776 +-3192.52 -204.84 708.016 +-377.534 -23.261 80.3999 +-378.445 -22.356 77.272 +-377.761 -21.3598 73.8285 +-377.73 -20.4057 70.5308 +-377.865 -19.4635 67.2741 +-379.348 -18.5898 64.2542 +-379.621 -17.6553 61.0241 +-379.865 -16.7209 57.7945 +-381.167 -15.8318 54.7215 +-377.688 -14.7521 50.9895 +-377.542 -13.8138 47.7463 +-380.443 -12.9823 44.8722 +-379.544 -12.0182 41.54 +-380.305 -11.1089 38.397 +-379.744 -10.1621 35.1247 +-380.248 -9.24559 31.9567 +-379.726 -8.30562 28.7078 +-379.872 -7.38243 25.5168 +-379.191 -6.44556 22.2786 +-380.278 -5.53877 19.1444 +-146.361 -1.77596 6.13849 +-145.711 -1.41415 4.88789 +-378.67 -2.75579 9.52519 +-145.078 -0.703784 2.43258 +-145.894 -0.353846 1.22304 +94.9 0 1.13687e-13 +94.8964 -0.22297 0.797567 +95.6854 -0.449683 1.60853 +95.7672 -0.675185 2.41515 +95.7416 -0.900166 3.21991 +95.7088 -1.12508 4.02443 +95.6687 -1.34991 4.82864 +96.5196 -1.58942 5.6854 +95.5666 -1.79924 6.4359 +95.5047 -2.0237 7.23883 +96.332 -2.26914 8.11674 +96.1553 -2.49281 8.91681 +96.0708 -2.71862 9.72454 +96.0784 -2.94731 10.5426 +95.9792 -3.17293 11.3496 +95.8727 -3.39831 12.1558 +95.7589 -3.62342 12.961 +95.5389 -3.84431 13.7511 +95.4107 -4.06864 14.5536 +95.1766 -4.2882 15.339 +95.8218 -4.54907 16.2721 +94.6874 -4.72496 16.9013 +95.5123 -4.99861 17.8801 +95.3467 -5.22284 18.6822 +95.0759 -5.44106 19.4627 +95.1889 -5.68173 20.3236 +95.6831 -5.94755 21.2745 +95.6812 -6.18469 22.1228 +95.283 -6.39624 22.8794 +95.9434 -6.68055 23.8964 +95.9164 -6.91964 24.7517 +95.4958 -7.13034 25.5054 +96.1262 -7.42123 26.5459 +95.7861 -7.63915 27.3254 +95.6305 -7.8718 28.1576 +96.1347 -8.16094 29.1918 +95.8665 -8.38651 29.9987 +96.4445 -8.68832 31.0783 +96.0647 -8.90581 31.8563 +95.7724 -9.13119 32.6624 +96.4125 -9.44795 33.7955 +96.0089 -9.66469 34.5708 +96.7189 -9.99602 35.7559 +96.3913 -10.2229 36.5674 +96.0562 -10.449 37.3761 +96.5454 -10.767 38.5137 +96.1928 -10.9934 39.3236 +95.9245 -11.2298 40.169 +96.379 -11.5532 41.3262 +96.0919 -11.7904 42.1745 +96.5218 -12.1181 43.3468 +96.0351 -12.3329 44.1149 +96.5305 -12.6761 45.3426 +96.116 -12.9024 46.152 +96.496 -13.2377 47.3516 +96.7729 -13.5634 48.5166 +96.2413 -13.7776 49.2828 +95.8789 -14.0161 50.1357 +96.1207 -14.3452 51.3131 +96.4354 -14.6898 52.5458 +96.6484 -15.0235 53.7395 +96.1578 -15.2501 54.5497 +96.4313 -15.6002 55.8022 +96.6041 -15.9387 57.0131 +96.8471 -16.2935 58.2821 +96.3153 -16.5204 59.0938 +96.531 -16.8781 60.3731 +95.8969 -17.0894 61.129 +96.0855 -17.4495 62.4173 +96.2579 -17.8118 63.7133 +96.2504 -18.1454 64.9065 +95.6586 -18.3709 65.713 +95.7876 -18.7374 67.0239 +95.8197 -19.0898 68.2847 +95.9161 -19.4601 69.609 +95.9164 -19.8158 70.8815 +95.9797 -20.1896 72.2186 +95.8695 -20.5316 73.442 +96.0552 -20.9425 74.9117 +95.8358 -21.2701 76.0837 +95.8322 -21.6503 77.4433 +95.8112 -22.032 78.8088 +95.8481 -22.4329 80.2428 +95.7914 -22.8178 81.6196 +96.3859 -23.3662 83.5815 +96.2884 -23.7555 84.974 +96.0999 -24.1278 86.3054 +95.822 -24.4824 87.5738 +95.6722 -24.8749 88.978 +96.1462 -25.4384 90.9937 +96.0958 -25.8728 92.5473 +95.7442 -26.232 93.8322 +96.1407 -26.8045 95.8803 +95.2683 -27.0295 96.6849 +95.6844 -27.6264 98.82 +95.9338 -28.1875 100.827 +95.5519 -28.5719 102.202 +95.8811 -29.1785 104.372 +94.9973 -29.423 105.247 +95.6637 -30.1569 107.872 +95.7754 -30.7312 109.926 +95.7934 -31.2875 111.916 +95.7826 -31.8462 113.914 +95.307 -32.2594 115.393 +95.1813 -32.8003 117.327 +94.9668 -33.3219 119.193 +94.9062 -33.9093 121.294 +94.9932 -34.5639 123.636 +95.2212 -35.2868 126.221 +95.3514 -35.9914 128.742 +93.8945 -36.1036 129.143 +93.7402 -36.7223 131.356 +93.4411 -37.2982 133.416 +93.5533 -38.0553 136.125 +93.4056 -38.7252 138.521 +93.2215 -39.3972 140.925 +93.5308 -40.2997 144.153 +93.6317 -41.1379 147.151 +93.1189 -41.7256 149.253 +93.184 -42.5923 152.353 +93.3 -43.5091 155.633 +93.1665 -44.3359 158.59 +92.9865 -45.1654 161.557 +93.5231 -46.3759 165.887 +91.7347 -46.4513 166.157 +90.5951 -46.8562 167.606 +88.6189 -46.8272 167.502 +89.5073 -48.3349 172.895 +87.192 -48.1319 172.169 +86.9202 -49.064 175.503 +84.4391 -48.7538 174.393 +83.0216 -49.0484 175.447 +80.9406 -48.9466 175.083 +80.5074 -49.8507 178.317 +78.029 -49.4929 177.037 +77.0342 -50.0723 179.109 +71.6248 -47.7302 170.732 +71.4311 -48.8233 174.642 +69.1292 -48.4868 173.438 +68.7457 -49.5047 177.079 +66.6255 -49.2848 176.293 +65.4261 -49.7441 177.936 +62.737 -49.0557 175.473 +62.3504 -50.1716 179.465 +59.2077 -49.0613 175.493 +58.8782 -50.2772 179.842 +52.5684 -46.2941 165.595 +51.492 -46.8029 167.415 +49.1461 -46.1457 165.064 +48.2365 -46.8301 167.512 +46.0439 -46.2655 165.493 +45.0183 -46.8673 167.645 +42.8686 -46.2919 165.587 +42.0902 -47.2025 168.844 +39.8163 -46.4341 166.095 +38.5912 -46.8675 167.646 +36.8004 -46.6139 166.739 +35.647 -47.1737 168.741 +33.6015 -46.542 166.482 +32.3286 -46.9631 167.988 +30.5794 -46.6928 167.021 +29.362 -47.2407 168.981 +27.4542 -46.6697 166.938 +26.2066 -47.2119 168.878 +24.4388 -46.8183 167.47 +23.1031 -47.2477 169.006 +21.3515 -46.8191 167.473 +20.003 -47.2687 169.081 +18.3134 -46.9122 167.806 +16.9839 -47.4895 169.871 +15.2697 -46.9911 168.088 +13.848 -47.3743 169.459 +12.2144 -47.0288 168.223 +10.7934 -47.5126 169.954 +9.17449 -47.133 168.596 +7.71191 -47.5563 170.11 +6.08647 -46.9268 167.858 +4.62808 -47.5851 170.213 +3.04894 -47.0288 168.223 +1.54547 -47.6804 170.554 +1.33227e-14 -47.1976 168.827 +-1.54547 -47.6804 170.554 +-3.06464 -47.2711 169.09 +-4.64379 -47.7466 170.79 +-6.12835 -47.2496 169.013 +-7.75989 -47.8522 171.168 +-9.24253 -47.4825 169.846 +-10.8544 -47.7813 170.915 +-12.305 -47.378 169.472 +-14.0285 -47.9916 171.667 +-15.383 -47.3398 169.335 +-17.1756 -48.0255 171.788 +-18.4806 -47.3406 169.338 +-20.3313 -48.0447 171.857 +-21.5831 -47.3269 169.289 +-23.5208 -48.1017 172.061 +-24.6893 -47.2983 169.187 +-26.5466 -47.8242 171.068 +-28.0174 -47.6271 170.363 +-29.8241 -47.9844 171.641 +-30.892 -47.1699 168.728 +-33.0393 -47.9957 171.681 +-34.2693 -47.4669 169.79 +-36.3647 -48.1233 172.138 +-37.5073 -47.5094 169.942 +-39.8249 -48.3656 173.005 +-40.8736 -47.6669 170.505 +-43.164 -48.4068 173.152 +-44.5136 -48.0684 171.941 +-46.7459 -48.6658 174.078 +-47.9333 -48.1639 172.283 +-50.1072 -48.6464 174.009 +-51.5166 -48.3715 173.026 +-53.6789 -48.7907 174.525 +-55.0244 -48.4569 173.331 +-57.4348 -49.0446 175.433 +-58.4969 -48.4725 173.387 +-61.5888 -49.5589 177.273 +-62.2161 -48.6486 174.017 +-65.3594 -49.6932 177.753 +-65.6337 -48.5511 173.668 +-69.166 -49.8074 178.162 +-69.7384 -48.914 174.966 +-73.0803 -49.9506 178.674 +-74.1346 -49.4027 176.714 +-76.8428 -49.9479 178.665 +-77.7946 -49.3443 176.505 +-81.2252 -50.2952 179.907 +-82.1201 -49.6598 177.634 +-85.0951 -50.2734 179.829 +-86.5522 -49.974 178.758 +-89.1158 -50.3033 179.936 +-90.2606 -49.8259 178.228 +-95.1294 -51.3708 183.754 +-97.4718 -51.5052 184.235 +-101.215 -52.349 187.253 +-99.528 -50.3975 180.273 +-102.064 -50.6113 181.038 +-103.652 -50.3461 180.089 +-105.28 -50.1006 179.211 +-106.15 -49.5015 177.068 +-107.395 -49.088 175.588 +-108.673 -48.6951 174.183 +-110.613 -48.5988 173.839 +-112.025 -48.2684 172.657 +-113.854 -48.1171 172.116 +-115.681 -47.9607 171.556 +-105.862 -43.0619 154.033 +-98.7535 -39.4188 141.002 +-98.5547 -38.6084 138.103 +-98.7125 -37.9563 135.77 +-98.6614 -37.2406 133.21 +-98.8067 -36.6155 130.974 +-99.038 -36.0355 128.9 +-99.1189 -35.4144 126.678 +-98.5585 -34.5822 123.701 +-98.5674 -33.9675 121.502 +-98.4818 -33.3342 119.237 +-98.4257 -32.7249 117.058 +-98.4013 -32.1391 114.962 +-98.2822 -31.5355 112.803 +-98.1965 -30.9552 110.727 +-98.5401 -30.5201 109.171 +-98.0678 -29.8438 106.752 +-98.5629 -29.4723 105.423 +-98.5686 -28.9618 103.597 +-98.0714 -28.3156 101.285 +-98.6412 -27.9863 100.108 +-98.9888 -27.5986 98.7208 +-98.4778 -26.981 96.5115 +-98.6414 -26.5581 94.9989 +-98.9278 -26.1744 93.6262 +-98.4057 -25.5856 91.5202 +-98.5784 -25.1866 90.093 +-98.8059 -24.8072 88.7357 +-99.0163 -24.4286 87.3814 +-99.1355 -24.0328 85.9659 +-99.1617 -23.6206 84.4913 +-98.867 -23.1394 82.7701 +-98.9288 -22.7489 81.3731 +-99.2028 -22.4117 80.1672 +-99.2309 -22.0237 78.7791 +-99.3193 -21.6541 77.4572 +-98.6869 -21.135 75.6004 +-98.8165 -20.7863 74.353 +-99.2485 -20.5042 73.3439 +-99.1905 -20.1244 71.9853 +-99.2763 -19.7785 70.7479 +-99.1855 -19.4021 69.4015 +-99.0779 -19.0275 68.0618 +-99.1993 -18.7014 66.8952 +-99.1424 -18.3456 65.6226 +-99.07 -17.9915 64.356 +-98.9822 -17.6392 63.0957 +-98.8793 -17.2886 61.8417 +-99.4359 -17.0557 61.0084 +-99.3064 -16.7072 59.7621 +-99.1621 -16.3608 58.5227 +-99.7743 -16.141 57.7366 +-99.5182 -15.783 56.456 +-99.2465 -15.4274 55.1841 +-99.1335 -15.1008 54.0159 +-99.4443 -14.8412 53.0874 +-99.3063 -14.5171 51.9279 +-98.9784 -14.1695 50.6844 +-99.4339 -13.9364 49.8506 +-99.0799 -13.5922 48.6195 +-99.5167 -13.3589 47.785 +-99.2269 -13.0302 46.6091 +-99.6454 -12.7965 45.7733 +-99.2407 -12.4595 44.5679 +-99.6408 -12.2259 43.7321 +-99.211 -11.8927 42.5405 +-99.5927 -11.6592 41.705 +-99.2304 -11.3406 40.5654 +-99.5018 -11.0967 39.6931 +-99.0232 -10.7717 38.5306 +-100.485 -10.6571 38.1205 +-100.173 -10.353 37.033 +-103.128 -10.3813 37.134 +-105.527 -10.3412 36.9906 +-110.006 -10.4883 37.5168 +-112.139 -10.396 37.1866 +-118.446 -10.6703 38.1679 +-121.925 -10.6662 38.1531 +-159.461 -13.5368 48.4214 +-161.711 -13.3112 47.6144 +-163.191 -13.0149 46.5544 +-163.414 -12.6161 45.1281 +-165.552 -12.3612 44.2162 +-167.202 -12.0623 43.1472 +-173.783 -12.1005 43.2836 +-176.982 -11.8806 42.4972 +-601.216 -38.8617 139.009 +-381.368 -23.7054 84.7946 +-378.705 -22.6045 80.8567 +-379.619 -21.725 77.7109 +-378.937 -20.7572 74.2487 +-379.693 -19.8712 71.0795 +-379.438 -18.9342 67.7278 +-379.053 -17.9952 64.3691 +-379.917 -17.1172 61.2286 +-380.458 -16.224 58.0335 +-380.079 -15.2936 54.7056 +-378.778 -14.3326 51.268 +-379.228 -13.4421 48.0827 +-377.664 -12.485 44.659 +-378.452 -11.6094 41.5269 +-379.907 -10.7507 38.4554 +-381.137 -9.88089 35.3441 +-380.646 -8.96626 32.0725 +-376.934 -7.98709 28.57 +-148.837 -2.80216 10.0234 +-378.393 -6.23114 22.2889 +-378.181 -5.33621 19.0877 +-146.96 -1.72755 6.17947 +-144.412 -1.35777 4.85676 +-380.07 -2.6796 9.58497 +-144.978 -0.681337 2.43715 +-146.394 -0.343969 1.23038 +94.8 3.55271e-15 -2.27374e-13 +94.7964 -0.215537 0.798705 +95.7854 -0.435604 1.6142 +95.6672 -0.652682 2.41861 +95.7416 -0.871076 3.2279 +95.7088 -1.08872 4.03442 +95.6687 -1.30628 4.84062 +95.6213 -1.52374 5.64647 +96.4644 -1.75745 6.51249 +95.5047 -1.9583 7.25679 +96.332 -2.19581 8.13689 +96.1553 -2.41225 8.93894 +96.1703 -2.63349 9.75881 +96.1778 -2.855 10.5796 +95.9792 -3.07039 11.3778 +95.8727 -3.28849 12.186 +95.7589 -3.50632 12.9932 +95.5389 -3.72007 13.7853 +95.4107 -3.93715 14.5897 +96.1628 -4.19261 15.5363 +95.7233 -4.39752 16.2957 +95.6707 -4.61973 17.1191 +95.5123 -4.83707 17.9245 +95.3467 -5.05405 18.7285 +95.1738 -5.27064 19.5311 +95.1889 -5.49811 20.3741 +95.6831 -5.75534 21.3273 +95.4867 -5.97266 22.1326 +96.1563 -6.24627 23.1465 +95.0721 -6.40593 23.7381 +95.9164 -6.69601 24.8131 +95.4958 -6.89991 25.5687 +95.1649 -7.10959 26.3457 +95.7861 -7.39228 27.3932 +95.6305 -7.61741 28.2275 +96.1347 -7.8972 29.2643 +96.7224 -8.18793 30.3416 +96.3497 -8.39928 31.1248 +96.1592 -8.6265 31.9668 +96.715 -8.92307 33.0658 +95.4728 -9.05349 33.5491 +97.0392 -9.45272 35.0285 +95.692 -9.57027 35.4641 +96.3913 -9.89251 36.6582 +96.0562 -10.1113 37.4689 +96.5454 -10.419 38.6093 +96.2848 -10.6483 39.459 +96.7498 -10.9603 40.6151 +97.2012 -11.2753 41.7822 +96.0919 -11.4094 42.2792 +96.5218 -11.7265 43.4544 +96.1253 -11.9455 44.2659 +96.5305 -12.2664 45.4551 +96.8319 -12.5784 46.6112 +96.4069 -12.7981 47.4253 +95.9746 -13.0168 48.2357 +96.3296 -13.3446 49.4504 +95.8789 -13.5631 50.2601 +96.1207 -13.8816 51.4405 +96.4354 -14.2151 52.6762 +96.6484 -14.538 53.8729 +96.1578 -14.7572 54.6851 +96.4313 -15.0961 55.9407 +95.922 -15.3147 56.751 +96.0838 -15.6427 57.9663 +96.231 -15.9725 59.1886 +96.3632 -16.3042 60.4177 +96.564 -16.6521 61.7069 +96.0026 -16.871 62.5181 +96.1755 -17.2215 63.8168 +96.1684 -17.5441 65.0123 +96.3913 -17.9134 66.3806 +95.7067 -18.1165 67.1335 +95.9001 -18.4884 68.5116 +96.555 -18.9566 70.2465 +95.9164 -19.1754 71.0574 +95.9797 -19.5371 72.3978 +96.026 -19.9006 73.7445 +95.8998 -20.2329 74.9761 +95.8358 -20.5828 76.2725 +95.9854 -20.9841 77.7597 +95.8112 -21.32 79.0044 +95.8481 -21.7079 80.4419 +96.3157 -22.2012 82.2699 +95.5684 -22.4194 83.0783 +96.141 -22.9526 85.0544 +96.0999 -23.348 86.5196 +95.967 -23.727 87.9241 +95.6722 -24.071 89.1988 +95.6469 -24.4885 90.7458 +96.0958 -25.0366 92.777 +95.7442 -25.3842 94.0651 +95.5155 -25.7696 95.4932 +96.0943 -26.3826 97.7648 +95.6844 -26.7336 99.0652 +96.0014 -27.2958 101.149 +95.5519 -27.6486 102.456 +95.8149 -28.216 104.559 +95.6534 -28.6688 106.237 +95.7286 -29.2022 108.213 +95.8396 -29.7579 110.272 +95.0937 -30.0552 111.374 +95.2791 -30.6549 113.596 +95.307 -31.2169 115.679 +95.1813 -31.7403 117.619 +95.1494 -32.307 119.718 +95.0868 -32.8758 121.826 +94.9337 -33.426 123.865 +95.4563 -34.2306 126.846 +95.3514 -34.8282 129.061 +94.7548 -35.2571 130.65 +94.4199 -35.7933 132.637 +93.3293 -36.0496 133.587 +93.7189 -36.8906 136.704 +93.3511 -37.4518 138.783 +93.6513 -38.2999 141.926 +93.4778 -38.9755 144.429 +93.5795 -39.7863 147.434 +93.5824 -40.578 150.368 +93.1333 -41.1934 152.648 +92.9 -41.9227 155.351 +93.1173 -42.8804 158.9 +93.035 -43.7287 162.043 +93.2368 -44.7399 165.79 +92.7676 -45.4561 168.444 +92.3497 -46.22 171.275 +90.2533 -46.1497 171.014 +90.712 -47.4023 175.656 +88.6825 -47.3726 175.546 +88.47 -48.3249 179.075 +85.876 -47.9812 177.802 +84.7633 -48.4591 179.572 +82.7302 -48.4119 179.398 +81.8233 -49.0283 181.682 +79.8264 -48.9966 181.564 +78.3736 -49.2967 182.676 +75.5581 -48.724 180.554 +72.6039 -48.0214 177.95 +69.2367 -46.9928 174.139 +70.1816 -48.9054 181.226 +68.1646 -48.7939 180.813 +66.8281 -49.168 182.199 +64.2672 -48.6282 180.199 +63.334 -49.316 182.748 +61.1854 -49.0617 181.805 +60.3517 -49.8699 184.8 +54.3227 -46.2927 171.545 +52.5428 -46.2148 171.256 +50.5795 -45.9569 170.3 +49.3589 -46.3714 171.836 +46.9498 -45.6512 169.168 +45.8446 -46.1851 171.146 +43.9088 -45.8831 170.027 +42.6505 -46.2851 171.517 +40.7161 -45.9488 170.27 +39.4353 -46.3448 171.738 +37.5281 -45.9996 170.458 +36.3248 -46.517 172.376 +34.4792 -46.2143 171.254 +33.0393 -46.4446 172.107 +31.2046 -46.1074 170.858 +29.9726 -46.6647 172.923 +27.8766 -45.8563 169.927 +26.7092 -46.5621 172.543 +25.0094 -46.363 171.805 +23.5469 -46.5991 172.68 +21.8634 -46.3922 171.913 +20.4898 -46.8544 173.626 +18.6897 -46.3292 171.68 +17.281 -46.7588 173.272 +15.6532 -46.6147 172.738 +14.0913 -46.6483 172.862 +12.4027 -46.2109 171.241 +11.0193 -46.9393 173.941 +9.3472 -46.4683 172.195 +7.86021 -46.9042 173.81 +6.23305 -46.5037 172.327 +4.72232 -46.9849 174.11 +3.13271 -46.7596 173.275 +1.57252 -46.9472 173.97 +1.5099e-14 -46.6103 172.721 +-1.57514 -47.0253 174.259 +-3.12224 -46.6033 172.695 +-4.72494 -47.011 174.206 +-6.25399 -46.66 172.906 +-7.90819 -47.1905 174.872 +-9.40477 -46.7546 173.256 +-11.0376 -47.0175 174.23 +-12.5841 -46.8867 173.746 +-14.3188 -47.4015 175.654 +-15.8013 -47.0558 174.372 +-17.5302 -47.4331 175.77 +-18.9928 -47.0806 174.464 +-20.7388 -47.4237 175.736 +-22.1802 -47.0644 174.404 +-24.0299 -47.5547 176.221 +-25.413 -47.1113 174.578 +-27.123 -47.2835 175.216 +-28.5649 -46.9886 174.123 +-30.6658 -47.7441 176.923 +-31.7082 -46.8515 173.615 +-34.0598 -47.8791 177.423 +-35.2615 -47.2629 175.14 +-37.4413 -47.9468 177.674 +-38.63 -47.3502 175.463 +-41.0153 -48.2017 178.618 +-42.1783 -47.5988 176.384 +-44.448 -48.2358 178.745 +-45.8684 -47.9307 177.614 +-47.8226 -48.1777 178.53 +-49.6156 -48.2433 178.773 +-51.3899 -48.2793 178.906 +-53.0051 -48.1607 178.467 +-54.815 -48.2131 178.661 +-56.6032 -48.2363 178.747 +-58.6978 -48.5034 179.736 +-60.2583 -48.3184 179.051 +-62.4138 -48.5995 180.093 +-63.5509 -48.0862 178.191 +-66.4609 -48.8978 181.198 +-67.7884 -48.5245 179.815 +-70.1465 -48.8809 181.135 +-71.4586 -48.5008 179.727 +-74.3264 -49.1607 182.172 +-75.6705 -48.7965 180.823 +-78.1822 -49.1763 182.23 +-79.8264 -48.9966 181.564 +-82.3018 -49.3149 182.744 +-83.6251 -48.9356 181.338 +-86.8368 -49.6445 183.965 +-88.1582 -49.2563 182.527 +-90.7948 -49.5948 183.781 +-92.9347 -49.644 183.963 +-98.8328 -51.646 191.382 +-99.4239 -50.8388 188.391 +-103.94 -52.0206 192.77 +-102.767 -50.356 186.602 +-104.45 -50.1205 185.729 +-104.816 -49.266 182.562 +-105.97 -48.7991 180.832 +-106.55 -48.0823 178.176 +-108.156 -47.8382 177.272 +-109.085 -47.3002 175.278 +-110.926 -47.1616 174.764 +-112.449 -46.8854 173.741 +-114.499 -46.8258 173.52 +-116.553 -46.7604 173.278 +-100.232 -39.4543 146.204 +-98.0824 -37.8856 140.391 +-98.1016 -37.189 137.809 +-98.4257 -36.6228 135.711 +-98.6614 -36.0371 133.541 +-98.8067 -35.4322 131.299 +-98.4432 -34.6615 128.443 +-98.5171 -34.062 126.222 +-98.5585 -33.4646 124.008 +-98.5674 -32.8698 121.804 +-98.4818 -32.257 119.533 +-98.4886 -31.6874 117.423 +-98.3377 -31.0804 115.173 +-98.2822 -30.5163 113.083 +-98.781 -30.1333 111.664 +-98.5401 -29.5338 109.442 +-98.0678 -28.8794 107.017 +-98.2284 -28.4232 105.326 +-98.3659 -27.9683 103.641 +-98.4124 -27.4956 101.889 +-98.5724 -27.0631 100.287 +-99.0583 -26.7255 99.0353 +-98.4778 -26.1091 96.751 +-98.6414 -25.6999 95.2347 +-98.8565 -25.3102 93.7909 +-99.0531 -24.9217 92.3509 +-98.5784 -24.3727 90.3166 +-98.7327 -23.9877 88.89 +-98.9426 -23.6215 87.533 +-99.1355 -23.2562 86.1792 +-99.2366 -22.8745 84.765 +-99.4707 -22.5284 83.4823 +-99.0049 -22.0306 81.6378 +-99.2028 -21.6875 80.3662 +-99.3081 -21.3285 79.036 +-98.6975 -20.8232 77.1634 +-98.7651 -20.4682 75.8481 +-98.7377 -20.0985 74.4782 +-98.5345 -19.6988 72.997 +-99.1905 -19.474 72.164 +-98.9548 -19.0773 70.6938 +-99.1046 -18.7597 69.5169 +-99.2407 -18.4429 68.3429 +-98.544 -17.9774 66.6181 +-99.06 -17.738 65.7307 +-99.7332 -17.5266 64.9476 +-98.8989 -17.0548 63.199 +-99.5502 -16.8435 62.416 +-99.4359 -16.5045 61.1598 +-99.3064 -16.1673 59.9104 +-99.1621 -15.832 58.6679 +-99.0028 -15.4986 57.4324 +-99.5182 -15.2729 56.5961 +-99.2465 -14.9288 55.3211 +-99.9168 -14.7283 54.5778 +-99.6192 -14.3869 53.3127 +-99.3063 -14.0479 52.0567 +-98.9784 -13.7116 50.8102 +-99.4339 -13.486 49.9743 +-99.0799 -13.1529 48.7402 +-99.5167 -12.9272 47.9036 +-99.2269 -12.6091 46.7248 +-98.8331 -12.282 45.5129 +-99.2407 -12.0568 44.6785 +-98.9128 -11.7443 43.5204 +-99.211 -11.5084 42.6461 +-99.5927 -11.2824 41.8085 +-99.1384 -10.9639 40.6283 +-99.317 -10.7182 39.7177 +-99.5795 -10.4822 38.8432 +-101.322 -10.3986 38.5336 +-101.667 -10.1678 37.6785 +-106.125 -10.3378 38.3081 +-108.816 -10.3189 38.2381 +-112.174 -10.3494 38.3511 +-114.502 -10.2721 38.0647 +-123.472 -10.7636 39.8863 +-134.574 -11.3923 42.2158 +-161.941 -13.303 49.2964 +-162.285 -12.9267 47.902 +-162.808 -12.5647 46.5603 +-164.472 -12.2874 45.5328 +-167.479 -12.101 44.8419 +-170.1 -11.8748 44.0039 +-173.492 -11.6899 43.3185 +-182.998 -11.8874 44.0507 +-383.405 -23.9819 88.8685 +-380.589 -22.8924 84.8313 +-379.584 -21.9247 81.2454 +-377.272 -20.893 77.422 +-378.153 -20.0448 74.279 +-379.693 -19.229 71.2559 +-378.553 -18.2795 67.7376 +-378.462 -17.3865 64.4283 +-378.438 -16.4996 61.1416 +-378.186 -15.6059 57.8301 +-380.573 -14.8187 54.9128 +-380.758 -13.9419 51.664 +-378.633 -12.9873 48.1264 +-379.351 -12.1355 44.9698 +-379.346 -11.2607 41.7283 +-376.924 -10.3216 38.2481 +-379.445 -9.51913 35.2746 +-378.454 -8.62655 31.967 +-376.635 -7.72282 28.6181 +-147.041 -2.67888 9.92699 +-379.591 -6.04886 22.415 +-378.481 -5.16785 19.1503 +-141.765 -1.61262 5.97582 +-145.311 -1.32207 4.89914 +-378.27 -2.58072 9.56326 +-144.678 -0.657953 2.43814 +-146.094 -0.332173 1.23092 +94.8 3.55271e-15 -2.27374e-13 +95.6964 -0.210299 0.808217 +95.7854 -0.421021 1.61806 +95.6672 -0.630832 2.4244 +95.7416 -0.841914 3.23563 +95.7088 -1.05227 4.04408 +95.6687 -1.26255 4.85221 +95.5215 -1.4712 5.65408 +95.5666 -1.6828 6.46732 +96.4019 -1.91053 7.3425 +96.332 -2.1223 8.15637 +95.2594 -2.30977 8.87686 +96.1703 -2.54533 9.78217 +96.0784 -2.75658 10.594 +95.9792 -2.9676 11.405 +95.8727 -3.1784 12.2152 +95.7589 -3.38894 13.0243 +95.5389 -3.59553 13.8183 +95.4107 -3.80534 14.6246 +95.1766 -4.0107 15.4139 +95.7233 -4.2503 16.3347 +95.6707 -4.46508 17.1601 +95.5123 -4.67514 17.9674 +95.3467 -4.88485 18.7734 +95.1738 -5.09419 19.5779 +95.8723 -5.3522 20.5695 +95.6831 -5.56267 21.3783 +95.6812 -5.78447 22.2308 +95.4771 -5.99451 23.038 +95.9434 -6.24823 24.0131 +95.9164 -6.47185 24.8725 +95.4958 -6.66892 25.6299 +95.261 -6.87853 26.4355 +95.882 -7.15195 27.4863 +95.5348 -7.35502 28.2667 +96.1347 -7.63282 29.3343 +95.9616 -7.85157 30.175 +96.3497 -8.11809 31.1993 +96.0647 -8.32949 32.0118 +95.7724 -8.54029 32.8219 +96.4125 -8.83655 33.9605 +96.1026 -9.04808 34.7734 +96.7189 -9.34915 35.9305 +96.3913 -9.56133 36.7459 +96.8907 -9.85769 37.8849 +96.5454 -10.0702 38.7017 +96.2848 -10.2918 39.5535 +95.9245 -10.503 40.3651 +96.4704 -10.8158 41.5673 +96.1829 -11.0379 42.4206 +96.6124 -11.3446 43.5993 +96.1253 -11.5456 44.3719 +96.5305 -11.8558 45.5639 +96.0265 -12.0562 46.3342 +96.4069 -12.3697 47.5389 +96.7729 -12.6857 48.7534 +96.3296 -12.8978 49.5688 +95.8789 -13.109 50.3804 +96.9079 -13.5268 51.9859 +96.4354 -13.7392 52.8023 +96.6484 -14.0513 54.0019 +96.1578 -14.2632 54.816 +96.4313 -14.5907 56.0746 +95.8368 -14.7889 56.8363 +96.0838 -15.119 58.1051 +96.231 -15.4378 59.3303 +96.4471 -15.7721 60.6151 +96.6474 -16.1085 61.9081 +96.7487 -16.433 63.1549 +96.1755 -16.6449 63.9695 +96.2504 -16.9712 65.2234 +95.6586 -17.1821 66.0338 +95.7067 -17.51 67.2942 +95.9001 -17.8695 68.6756 +96.555 -18.322 70.4147 +95.9164 -18.5335 71.2276 +95.9797 -18.8831 72.5711 +96.026 -19.2343 73.9211 +95.8998 -19.5556 75.1556 +95.9901 -19.9257 76.5782 +95.8322 -20.2492 77.8214 +95.8112 -20.6062 79.1935 +95.6972 -20.9481 80.5076 +95.7914 -21.3412 82.0181 +96.2373 -21.8205 83.86 +96.141 -22.1842 85.2581 +96.0999 -22.5664 86.7268 +95.967 -22.9327 88.1346 +95.6722 -23.2652 89.4124 +95.5042 -23.6334 90.8274 +96.0958 -24.1985 92.9991 +95.7442 -24.5344 94.2903 +95.5155 -24.9069 95.7219 +95.4059 -25.3168 97.2972 +95.6844 -25.8386 99.3024 +95.9338 -26.3634 101.319 +95.5519 -26.723 102.701 +95.9474 -27.3092 104.954 +95.6534 -27.7091 106.491 +95.7286 -28.2245 108.472 +95.3254 -28.6073 109.943 +95.2209 -29.0878 111.79 +95.405 -29.6677 114.018 +95.4937 -30.231 116.183 +95.3044 -30.7175 118.053 +95.2712 -31.2655 120.159 +95.147 -31.7953 122.195 +95.2906 -32.4284 124.628 +94.8685 -32.8809 126.367 +94.9449 -33.5187 128.819 +95.1563 -34.221 131.518 +94.8164 -34.7403 133.513 +94.0562 -35.1142 134.95 +94.1604 -35.8236 137.677 +93.4056 -36.2192 139.197 +93.2215 -36.8477 141.613 +93.4778 -37.6707 144.775 +93.1615 -38.2826 147.127 +93.1189 -39.0254 149.982 +93.184 -39.836 153.097 +93.35 -40.7154 156.477 +93.1173 -41.4449 159.28 +93.4713 -42.463 163.193 +93.38 -43.3086 166.443 +93.1432 -44.1124 169.532 +92.9962 -44.9854 172.887 +91.8423 -45.3901 174.442 +91.5598 -46.2437 177.723 +89.6907 -46.3072 177.967 +90.2351 -47.6391 183.086 +86.9748 -46.9682 180.507 +86.5465 -47.8221 183.789 +84.0725 -47.5504 182.745 +83.5379 -48.3799 185.933 +80.8032 -47.9357 184.226 +80.0191 -48.6466 186.958 +77.0191 -48.0034 184.486 +76.159 -48.6864 187.111 +71.4586 -46.8771 180.157 +70.6018 -47.5512 182.748 +69.2591 -47.9176 184.156 +68.2301 -48.5189 186.467 +65.7322 -48.0717 184.748 +64.984 -48.9069 187.958 +62.2978 -48.2814 185.554 +61.6447 -49.2331 189.212 +59.3807 -48.909 187.966 +53.7925 -45.7298 175.748 +51.4064 -45.1443 173.498 +50.4546 -45.8136 176.07 +48.0109 -45.1201 173.405 +47.0464 -45.8091 176.053 +44.6104 -45.0557 173.157 +43.5609 -45.6905 175.597 +41.7734 -45.5638 175.11 +40.5824 -46.0964 177.157 +38.2765 -45.3463 174.274 +37.2619 -46.1196 177.246 +35.1089 -45.4828 174.799 +33.8594 -46.004 176.802 +31.8644 -45.5062 174.889 +30.7649 -46.2949 177.92 +28.6901 -45.6145 175.305 +27.3891 -46.1491 177.359 +25.4408 -45.584 175.188 +24.1865 -46.2624 177.795 +22.2777 -45.6887 175.59 +20.9992 -46.4117 178.369 +19.0869 -45.7298 175.748 +17.741 -46.3966 178.311 +15.8972 -45.7565 175.851 +14.5699 -46.6182 179.162 +12.7375 -45.8695 176.285 +11.2879 -46.4739 178.608 +9.52514 -45.7678 175.894 +8.06522 -46.5165 178.771 +6.34124 -45.727 175.737 +4.86106 -46.7461 179.654 +3.19205 -46.0501 176.979 +1.62052 -46.7605 179.709 +1.15463e-14 -45.9816 176.716 +-1.62401 -46.8612 180.096 +-3.19728 -46.1256 177.269 +-4.88724 -46.9979 180.622 +-6.3901 -46.0793 177.091 +-8.11757 -46.8184 179.932 +-9.61412 -46.1951 177.536 +-11.3917 -46.9012 180.25 +-12.8561 -46.2966 177.926 +-14.664 -46.9194 180.32 +-16.1935 -46.6094 179.128 +-17.8369 -46.6472 179.274 +-19.39 -46.456 178.539 +-21.2369 -46.937 180.387 +-22.6799 -46.5137 178.761 +-24.5911 -47.0362 180.769 +-25.9419 -46.4817 178.638 +-27.7734 -46.7965 179.847 +-29.0186 -46.1367 177.312 +-31.2435 -47.0151 180.687 +-32.5069 -46.4238 178.415 +-34.7341 -47.1923 181.369 +-35.8912 -46.4963 178.694 +-38.0992 -47.1561 181.229 +-39.4408 -46.7257 179.576 +-41.4915 -47.1289 181.125 +-42.7407 -46.6187 179.164 +-45.1016 -47.3067 181.808 +-46.1103 -46.5703 178.978 +-48.6739 -47.3938 182.143 +-49.9262 -46.9201 180.323 +-52.1115 -47.3182 181.853 +-53.7217 -47.1777 181.313 +-55.5534 -47.2268 181.501 +-57.1587 -47.079 180.933 +-59.3293 -47.3837 182.104 +-61.1545 -47.3953 182.149 +-63.6196 -47.88 184.012 +-64.7229 -47.3336 181.912 +-68.0966 -48.424 186.102 +-68.6776 -47.5152 182.609 +-72.0377 -48.5181 186.464 +-72.892 -47.8173 183.771 +-76.159 -48.6864 187.111 +-77.0191 -48.0034 184.486 +-80.3635 -48.8561 187.763 +-81.1939 -48.1676 185.117 +-84.6146 -49.0034 188.329 +-85.9028 -48.5856 186.724 +-88.7029 -49.0137 188.369 +-89.257 -48.2006 185.244 +-93.9375 -49.5937 190.598 +-95.6087 -49.3627 189.71 +-101.599 -51.3143 197.21 +-102.874 -50.8422 195.396 +-106.156 -51.3513 197.353 +-106.148 -50.271 193.201 +-106.263 -49.2837 189.406 +-105.301 -47.8367 183.845 +-106.019 -47.1873 181.349 +-107.15 -46.7343 179.608 +-109.273 -46.7141 179.531 +-109.755 -45.9972 176.776 +-111.919 -45.9907 176.751 +-113.191 -45.6147 175.306 +-115.036 -45.4704 174.751 +-116.063 -45.0048 172.962 +-98.9071 -37.6294 144.617 +-98.3061 -36.7009 141.048 +-98.7812 -36.193 139.096 +-98.4831 -35.4174 136.116 +-98.7195 -34.8513 133.94 +-98.2777 -34.0626 130.909 +-98.4432 -33.5011 128.751 +-98.5773 -32.9416 126.6 +-98.6194 -32.3641 124.381 +-98.5674 -31.7694 122.095 +-98.6063 -31.2164 119.97 +-98.4886 -30.6266 117.704 +-98.2741 -30.0205 115.374 +-98.3465 -29.5141 113.428 +-98.3914 -29.0097 111.49 +-98.3432 -28.4882 109.485 +-98.6641 -28.0825 107.926 +-98.5629 -27.565 105.938 +-98.6362 -27.106 104.173 +-98.3442 -26.5568 102.063 +-98.6412 -26.1753 100.596 +-98.9888 -25.8127 99.2028 +-98.5478 -25.2529 97.0514 +-98.6414 -24.8395 95.4627 +-98.8565 -24.4629 94.0155 +-98.4057 -23.9299 91.967 +-98.5784 -23.5567 90.5328 +-98.6596 -23.1675 89.0369 +-98.8689 -22.8137 87.6771 +-98.9869 -22.4439 86.2561 +-98.6375 -21.9753 84.4549 +-99.3953 -21.7577 83.6187 +-98.8528 -21.2604 81.7075 +-99.2028 -20.9614 80.5586 +-99.2309 -20.5985 79.1637 +-98.6975 -20.1261 77.3482 +-99.0782 -19.8457 76.2707 +-99.1318 -19.5032 74.9544 +-99.2485 -19.1773 73.702 +-99.1107 -18.8069 72.2785 +-99.4371 -18.5285 71.2085 +-99.4282 -18.1909 69.9109 +-99.3221 -17.8401 68.5628 +-99.1993 -17.4912 67.2218 +-99.1424 -17.1584 65.9429 +-99.07 -16.8273 64.6702 +-98.9822 -16.4977 63.4037 +-99.4663 -16.2659 62.5127 +-99.4359 -15.9519 61.3062 +-99.2216 -15.6127 60.0026 +-99.1621 -15.302 58.8084 +-99.7743 -15.0965 58.0185 +-99.5182 -14.7616 56.7317 +-99.2465 -14.4291 55.4535 +-98.9594 -14.0988 54.1844 +-99.6192 -13.9052 53.4403 +-99.3063 -13.5776 52.1814 +-98.9784 -13.2525 50.9319 +-99.4339 -13.0345 50.094 +-99.0799 -12.7126 48.8569 +-99.5167 -12.4944 48.0183 +-99.2269 -12.1869 46.8366 +-98.8331 -11.8709 45.6219 +-99.2407 -11.6532 44.7854 +-98.8218 -11.3407 43.5844 +-99.211 -11.1231 42.7482 +-99.5927 -10.9047 41.9086 +-99.1384 -10.5968 40.7256 +-99.779 -10.4075 39.998 +-100.692 -10.2445 39.3713 +-101.881 -10.1059 38.8387 +-103.441 -9.99891 38.4276 +-109.872 -10.3444 39.7555 +-110.884 -10.1629 39.0579 +-114.154 -10.1794 39.1213 +-118.852 -10.3053 39.6051 +-145.473 -12.257 47.106 +-160.443 -13.1275 50.4513 +-162.704 -12.9183 49.6473 +-163.146 -12.5602 48.2713 +-164.342 -12.2585 47.1115 +-164.76 -11.8968 45.7218 +-171.333 -11.965 45.9838 +-172.031 -11.6076 44.6103 +-178.914 -11.6516 44.7791 +-598.964 -37.6057 144.526 +-380.391 -22.9968 88.3809 +-378.835 -22.0241 84.6426 +-378.998 -21.1581 81.3143 +-379.815 -20.3296 78.1305 +-378.153 -19.3737 74.4568 +-377.141 -18.4603 70.9464 +-378.553 -17.6676 67.8998 +-379.151 -16.835 64.7001 +-380.213 -16.022 61.5756 +-379.272 -15.1268 58.135 +-379.782 -14.2928 54.9298 +-378.48 -13.3946 51.4779 +-379.823 -12.592 48.3932 +-379.252 -11.7261 45.0657 +-380.538 -10.9179 41.9596 +-380.504 -10.0708 38.7038 +-379.146 -9.1932 35.3311 +-377.259 -8.31141 31.9423 +-377.632 -7.48405 28.7626 +-144.248 -2.54002 9.76175 +-378.293 -5.82637 22.3918 +-380.977 -5.02781 19.3228 +-145.461 -1.59928 6.14632 +-146.111 -1.28484 4.93789 +-380.07 -2.50619 9.63176 +-145.778 -0.640761 2.46256 +-145.494 -0.319733 1.22879 +95 -1.77636e-15 -1.7053e-13 +95.7964 -0.20321 0.810929 +95.7854 -0.406404 1.6218 +95.7672 -0.609567 2.43254 +95.8416 -0.813532 3.24648 +95.8087 -1.0168 4.05764 +95.7686 -1.21999 4.86849 +95.7211 -1.42308 5.67896 +95.6664 -1.62608 6.48901 +95.6044 -1.82894 7.29856 +95.5351 -2.03166 8.10756 +96.2548 -2.25287 8.99031 +96.2697 -2.45951 9.81493 +96.1778 -2.66362 10.6294 +96.1777 -2.87048 11.4549 +95.9719 -3.07121 12.256 +95.8579 -3.27468 13.0679 +96.6268 -3.51022 14.0079 +95.5095 -3.67702 14.6735 +96.2615 -3.91557 15.6255 +95.9203 -4.11117 16.406 +95.769 -4.31448 17.2173 +95.6105 -4.51747 18.0274 +95.4447 -4.72009 18.836 +96.1519 -4.96786 19.8247 +95.0912 -5.12428 20.4489 +95.7806 -5.37501 21.4495 +95.7784 -5.58932 22.3048 +95.5741 -5.79227 23.1146 +95.1689 -5.98262 23.8742 +95.8198 -6.24086 24.9048 +95.5921 -6.44387 25.7149 +96.1262 -6.7 26.737 +95.882 -6.90365 27.5497 +95.6305 -7.10678 28.3603 +96.23 -7.37514 29.4312 +95.9616 -7.57898 30.2447 +95.6859 -7.78223 31.0558 +96.2538 -8.05613 32.1488 +95.9609 -8.26 32.9623 +96.5064 -8.53807 34.072 +96.1962 -8.74245 34.8876 +96.9056 -9.04199 36.0829 +96.5773 -9.24719 36.9018 +97.0761 -9.53365 38.045 +96.7302 -9.73922 38.8653 +96.3769 -9.94401 39.6825 +96.0162 -10.1481 40.4969 +96.5618 -10.4502 41.7027 +96.1829 -10.6547 42.5185 +95.7967 -10.8583 43.331 +96.1253 -11.1448 44.4743 +96.6204 -11.4548 45.7115 +96.116 -11.6485 46.4843 +96.496 -11.9512 47.6926 +96.0633 -12.1555 48.5076 +96.4179 -12.4615 49.7287 +95.9668 -12.6655 50.5429 +96.2956 -12.9746 51.7766 +96.6095 -13.2861 53.0197 +96.8216 -13.5878 54.2234 +96.244 -13.7803 54.9917 +96.6028 -14.1091 56.3039 +96.6894 -14.4024 57.4742 +96.9319 -14.7229 58.7532 +96.3996 -14.9279 59.5714 +96.531 -15.2378 60.8079 +95.8969 -15.4285 61.5691 +96.0855 -15.7537 62.8667 +96.2579 -16.0808 64.172 +95.7589 -16.2983 65.0401 +96.4727 -16.7267 66.7494 +95.7876 -16.9164 67.5065 +95.9001 -17.2491 68.8341 +95.996 -17.5835 70.1686 +95.9958 -17.9048 71.4509 +96.0585 -18.2424 72.7982 +96.1043 -18.5817 74.1521 +96.0552 -18.9072 75.4511 +96.1444 -19.2648 76.8783 +96.062 -19.5931 78.1881 +95.9632 -19.9224 79.5021 +95.9991 -20.2846 80.9478 +95.8663 -20.6164 82.2716 +95.7914 -20.9653 83.6641 +96.3621 -21.4633 85.6513 +96.173 -21.7995 86.993 +95.967 -22.1365 88.3379 +95.8161 -22.4912 89.7534 +96.3601 -23.0173 91.8528 +96.0958 -23.3583 93.2137 +95.8143 -23.7 94.577 +96.3491 -24.252 96.78 +96.0255 -24.5966 98.1551 +95.7526 -24.9593 99.6024 +96.0689 -25.484 101.697 +95.6857 -25.8314 103.083 +95.9474 -26.3611 105.196 +95.5878 -26.7286 106.663 +95.8585 -27.2816 108.87 +95.454 -27.6515 110.346 +95.4117 -28.1343 112.273 +95.0274 -28.5244 113.829 +95.556 -29.2004 116.527 +94.8119 -29.4979 117.714 +95.3929 -30.2184 120.589 +95.3275 -30.7497 122.71 +95.3501 -31.3219 124.993 +94.9861 -31.7787 126.816 +95.4676 -32.5332 129.827 +95.271 -33.0728 131.98 +94.9863 -33.5942 134.061 +94.6154 -34.0966 136.066 +94.4364 -34.6812 138.399 +94.0592 -35.2062 140.494 +94.0274 -35.8762 143.167 +93.5837 -36.4039 145.273 +93.2137 -36.9741 147.549 +93.6854 -37.8997 151.243 +93.2348 -38.4739 153.534 +93.35 -39.3018 156.838 +92.7234 -39.8368 158.973 +93.035 -40.7974 162.806 +93.38 -41.805 166.827 +93.2371 -42.6236 170.094 +93.3194 -43.5745 173.888 +92.7049 -44.2257 176.487 +93.3446 -45.5082 181.605 +91.4004 -45.5517 181.779 +92.3446 -47.0602 187.798 +89.8486 -46.8356 186.902 +89.2835 -47.6217 190.039 +85.6994 -46.7877 186.711 +85.6912 -47.9039 191.165 +82.2098 -47.077 187.865 +81.7412 -47.9683 191.422 +78.3677 -47.1482 188.15 +77.9182 -48.0816 191.874 +74.0388 -46.8835 187.093 +73.7187 -47.9265 191.255 +69.4643 -46.391 185.128 +68.4972 -47.0177 187.629 +66.9694 -47.2761 188.66 +66.3167 -48.1771 192.256 +63.4721 -47.4836 189.488 +62.5167 -48.1961 192.331 +60.1409 -47.8154 190.812 +59.2172 -48.5938 193.918 +53.391 -45.2593 180.612 +52.4589 -45.98 183.488 +50.0556 -45.4085 181.207 +48.749 -45.8188 182.845 +46.449 -45.2838 180.71 +45.4285 -45.9951 183.548 +42.9432 -45.2133 180.428 +42.0109 -46.0621 183.816 +39.628 -45.3174 180.843 +38.4381 -45.9236 183.263 +36.1392 -45.1922 180.344 +35.135 -46.0799 183.886 +32.8369 -45.2668 180.642 +31.8212 -46.2218 184.453 +29.4879 -45.2551 180.595 +28.5272 -46.3978 185.155 +26.2759 -45.4457 181.356 +25.1524 -46.4394 185.321 +23.0089 -45.5502 181.773 +21.7463 -46.3942 185.141 +19.6827 -45.5198 181.651 +18.5078 -46.7214 186.446 +16.4027 -45.5724 181.861 +15.072 -46.5505 185.764 +13.1909 -45.8531 182.981 +11.7518 -46.7043 186.378 +9.84963 -45.6837 182.305 +8.37492 -46.6256 186.064 +6.56809 -45.7184 182.444 +5.04692 -46.8485 186.954 +3.28629 -45.7637 182.624 +1.67637 -46.6927 186.332 +1.24345e-14 -45.6005 181.973 +-1.68248 -46.8628 187.011 +-3.29676 -45.9095 183.206 +-5.05477 -46.9214 187.245 +-6.58902 -45.8643 183.026 +-8.46216 -47.1113 188.002 +-9.95953 -46.1934 184.339 +-11.8739 -47.1895 188.314 +-13.2747 -46.1441 184.142 +-15.2838 -47.2046 188.375 +-16.5857 -46.0809 183.89 +-18.7187 -47.2537 188.571 +-20.0172 -46.2936 184.739 +-22.1199 -47.1912 188.321 +-23.2649 -46.0568 183.794 +-25.544 -47.1625 188.207 +-26.6099 -46.0233 183.66 +-29.0593 -47.2634 188.609 +-30.0511 -46.1195 184.044 +-32.7454 -47.5643 189.81 +-33.6183 -46.3441 184.941 +-36.192 -47.4659 189.417 +-36.8452 -46.075 183.867 +-39.6543 -47.3767 189.061 +-40.6052 -46.4348 185.303 +-43.2879 -47.4622 189.403 +-44.1354 -46.4686 185.437 +-47.0392 -47.6261 190.057 +-47.7554 -46.5573 185.791 +-50.8772 -47.8193 190.828 +-51.5568 -46.7702 186.641 +-54.7037 -47.9474 191.339 +-55.2929 -46.8716 187.046 +-58.564 -48.0578 191.779 +-59.2053 -47.0716 187.844 +-62.3664 -48.0801 191.869 +-62.9468 -47.0906 187.92 +-66.6974 -48.4537 193.359 +-67.4252 -47.5979 189.944 +-70.7671 -48.5758 193.846 +-71.448 -47.7158 190.414 +-74.9794 -48.7464 194.527 +-75.6515 -47.9046 191.168 +-79.6041 -49.122 196.026 +-79.7537 -47.9819 191.477 +-83.6929 -49.1134 195.992 +-84.0853 -48.1511 192.152 +-88.2432 -49.3305 196.858 +-88.3839 -48.2532 192.559 +-93.2645 -49.7449 198.512 +-93.2296 -48.5979 193.935 +-99.1037 -50.5046 201.543 +-100.475 -50.0741 199.826 +-105.392 -51.3816 205.043 +-106.098 -50.6147 201.983 +-109.942 -51.3364 204.863 +-109.575 -50.0925 199.899 +-108.983 -48.7902 194.702 +-106.028 -46.4948 185.542 +-108.284 -46.522 185.651 +-108.65 -45.7432 182.543 +-109.121 -45.0293 179.694 +-110.424 -44.6713 178.265 +-112.18 -44.4975 177.572 +-113.615 -44.1961 176.369 +-99.9377 -38.1312 152.166 +-99.5056 -37.2449 148.629 +-98.7967 -36.2826 144.789 +-98.5857 -35.5273 141.775 +-98.9512 -34.9965 139.657 +-98.5978 -34.2276 136.589 +-98.7776 -33.661 134.328 +-98.3365 -32.8997 131.29 +-98.6216 -32.3966 129.282 +-98.6375 -31.8173 126.97 +-98.1932 -31.1056 124.13 +-98.629 -30.6853 122.453 +-98.6063 -30.1326 120.247 +-98.5516 -29.5823 118.051 +-98.2105 -28.9595 115.566 +-98.6036 -28.5638 113.987 +-98.4563 -28.021 111.821 +-98.3432 -27.4991 109.738 +-98.5316 -27.0711 108.03 +-98.3622 -26.5538 105.966 +-98.7713 -26.2009 104.557 +-98.5488 -25.6882 102.511 +-98.8477 -25.3195 101.04 +-98.3636 -24.7592 98.804 +-98.6179 -24.3934 97.3442 +-98.7828 -24.0115 95.8201 +-98.9992 -23.6477 94.3684 +-98.5496 -23.1328 92.3139 +-98.6509 -22.7556 90.8085 +-98.879 -22.4129 89.4407 +-99.0163 -22.0545 88.0106 +-99.2098 -21.7135 86.6497 +-98.7124 -21.2284 84.714 +-98.7915 -20.8747 83.3024 +-99.0049 -20.5538 82.022 +-99.2028 -20.2337 80.7444 +-98.9994 -19.8369 79.1612 +-99.0861 -19.5038 77.8318 +-99.1565 -19.1718 76.507 +-99.3682 -18.871 75.3065 +-99.5658 -18.5707 74.1082 +-99.4301 -18.2125 72.6788 +-99.5979 -17.9141 71.4881 +-99.4282 -17.5593 70.0722 +-99.4035 -17.2348 68.7772 +-99.3631 -16.9118 67.4881 +-99.2248 -16.5765 66.15 +-99.1529 -16.2566 64.8736 +-98.9822 -15.9249 63.55 +-98.9631 -15.6217 62.3399 +-99.5202 -15.4112 61.4999 +-99.3064 -15.0835 60.1924 +-99.2473 -14.7834 58.9947 +-99.0885 -14.4722 57.7527 +-99.6905 -14.2738 56.961 +-99.4197 -13.9524 55.6785 +-99.1335 -13.6333 54.4048 +-99.7066 -13.4342 53.6107 +-99.3942 -13.1179 52.3481 +-99.155 -12.8152 51.1405 +-99.6113 -12.6044 50.2992 +-99.169 -12.2823 49.0136 +-99.6062 -12.0715 48.1723 +-99.4066 -11.7851 47.0297 +-98.9233 -11.4692 45.7689 +-99.3313 -11.2589 44.9298 +-99.7318 -11.0478 44.0872 +-99.3024 -10.7468 42.8863 +-100.143 -10.5842 42.2374 +-100.519 -10.3714 41.3881 +-102.458 -10.3159 41.1667 +-101.99 -10.0162 39.9708 +-108.021 -10.343 41.2746 +-108.389 -10.1134 40.3586 +-113.337 -10.3003 41.1042 +-113.421 -10.0345 40.0437 +-127.257 -10.9538 43.7123 +-129.347 -10.8259 43.2019 +-162.732 -13.2352 52.8164 +-163.487 -12.9121 51.5268 +-163.467 -12.5282 49.9952 +-163.911 -12.181 48.6095 +-167.026 -12.0262 47.9916 +-168.029 -11.7116 46.7363 +-174.803 -11.7835 47.0231 +-177.537 -11.5632 46.1441 +-380.676 -23.9304 95.4967 +-380.744 -23.075 92.083 +-379.03 -22.1189 88.2678 +-379.42 -21.2922 84.9687 +-377.924 -20.3656 81.2709 +-380.499 -19.6592 78.4519 +-379.721 -18.7787 74.9381 +-379.203 -17.9168 71.4988 +-379.831 -17.1118 68.2862 +-378.56 -16.2252 64.7484 +-379.424 -15.4336 61.5895 +-379.667 -14.6168 58.3299 +-379.98 -13.8037 55.0852 +-380.362 -12.9938 51.8531 +-379.029 -12.1294 48.4036 +-377.168 -11.2568 44.9215 +-379.843 -10.5196 41.9796 +-377.918 -9.65507 38.5295 +-378.35 -8.8554 35.3384 +-379.55 -8.07156 32.2104 +-378.928 -7.249 28.9279 +-147.141 -2.50101 9.98051 +-146.726 -2.18137 8.70499 +-377.382 -4.80745 19.1846 +-146.261 -1.55224 6.19435 +-145.811 -1.23769 4.93913 +-379.27 -2.41409 9.63366 +-144.078 -0.611303 2.43946 +-146.094 -0.309906 1.23671 +95 -1.77636e-15 -1.7053e-13 +94.9964 -0.194249 0.805943 +95.7854 -0.391754 1.6254 +95.7672 -0.587593 2.43794 +95.7416 -0.783388 3.2503 +95.8087 -0.980145 4.06665 +95.7686 -1.17601 4.8793 +95.7211 -1.37178 5.69157 +95.6664 -1.56746 6.50342 +95.6044 -1.76301 7.31477 +95.5351 -1.95843 8.12556 +96.2548 -2.17166 9.01027 +95.3746 -2.3488 9.74524 +96.1778 -2.5676 10.653 +96.0785 -2.76416 11.4686 +95.9719 -2.96049 12.2832 +95.8579 -3.15663 13.097 +95.6378 -3.34905 13.8953 +95.4107 -3.54081 14.6909 +96.2615 -3.77442 15.6602 +95.8218 -3.95892 16.4256 +95.769 -4.15895 17.2556 +95.6105 -4.35462 18.0674 +95.4447 -4.54994 18.8778 +95.2716 -4.74493 19.6869 +95.9699 -4.9852 20.6837 +95.7806 -5.18124 21.4971 +95.584 -5.37689 22.3089 +95.3801 -5.57212 23.1189 +95.3625 -5.77867 23.9758 +95.8198 -6.01588 24.9601 +95.5921 -6.21158 25.772 +96.1262 -6.45847 26.7964 +95.882 -6.65478 27.6109 +96.4911 -6.91224 28.6791 +96.23 -7.10927 29.4966 +95.9616 -7.30576 30.3118 +96.6342 -7.57604 31.4332 +96.3483 -7.77335 32.2519 +95.9609 -7.96223 33.0355 +96.5064 -8.23028 34.1477 +96.1962 -8.42729 34.9651 +96.9056 -8.71603 36.1631 +97.3217 -8.98254 37.2688 +96.2417 -9.11099 37.8017 +96.7302 -9.38813 38.9516 +96.3769 -9.58554 39.7707 +96.8415 -9.86634 40.9357 +96.5618 -10.0735 41.7953 +96.1829 -10.2706 42.6129 +96.6124 -10.556 43.797 +96.2156 -10.7531 44.6149 +96.6204 -11.0419 45.813 +96.116 -11.2285 46.5875 +96.496 -11.5204 47.7985 +96.0633 -11.7173 48.6153 +96.4179 -12.0122 49.8391 +95.9668 -12.2089 50.6552 +96.2956 -12.5069 51.8916 +96.6095 -12.8072 53.1374 +96.1288 -13.0042 53.955 +97.1056 -13.4025 55.6073 +96.517 -13.5885 56.3789 +96.6894 -13.8832 57.6018 +96.1687 -14.0804 58.4199 +96.3996 -14.3898 59.7037 +96.531 -14.6885 60.9429 +95.9803 -14.8853 61.7594 +96.0855 -15.1858 63.0063 +96.2579 -15.5011 64.3145 +96.3323 -15.8049 65.5748 +96.3913 -16.1101 66.8412 +95.8685 -16.3204 67.7136 +95.1767 -16.5018 68.4664 +95.996 -16.9496 70.3244 +95.9958 -17.2594 71.6095 +96.0585 -17.5848 72.9599 +96.1043 -17.9118 74.3167 +96.133 -18.2404 75.6798 +96.1444 -18.5704 77.049 +95.9854 -18.8717 78.2992 +96.0393 -19.2194 79.7419 +95.9991 -19.5534 81.1276 +95.8663 -19.8732 82.4543 +95.7171 -20.1938 83.7848 +95.6986 -20.5471 85.2504 +96.173 -21.0136 87.1862 +96.0396 -21.3546 88.601 +95.888 -21.6967 90.0202 +96.2888 -22.1711 91.9887 +96.0958 -22.5163 93.4207 +95.9545 -22.879 94.9258 +96.3491 -23.3777 96.9949 +96.0255 -23.7099 98.373 +95.8208 -24.0766 99.8945 +96.0689 -24.5654 101.922 +95.8195 -24.9349 103.456 +95.9474 -25.4108 105.43 +95.5222 -25.7475 106.827 +95.8585 -26.2981 109.112 +95.454 -26.6547 110.591 +95.3481 -27.102 112.447 +95.4679 -27.6236 114.611 +95.556 -28.1478 116.786 +95.4275 -28.6192 118.742 +95.0277 -29.0175 120.394 +95.3877 -29.66 123.06 +95.4691 -30.2305 125.427 +95.1624 -30.69 127.334 +95.0611 -31.2268 129.561 +94.9269 -31.7655 131.796 +95.043 -32.4024 134.438 +94.7832 -32.9258 136.61 +94.9884 -33.6264 139.517 +94.8761 -34.2319 142.029 +94.9408 -34.9186 144.878 +94.3256 -35.3699 146.751 +94.0497 -35.9608 149.203 +93.2219 -36.3526 150.828 +93.3363 -37.1275 154.043 +92.85 -37.6821 156.344 +93.1173 -38.5638 160.002 +93.035 -39.3267 163.168 +93.38 -40.2979 167.197 +93.1901 -41.0665 170.386 +93.2732 -41.9829 174.188 +93.3858 -42.9445 178.178 +94.5493 -44.434 184.358 +92.321 -44.3518 184.017 +96.6497 -47.4784 196.989 +92.2998 -46.379 192.428 +94.0524 -48.3568 200.634 +90.0108 -47.3701 196.54 +90.6755 -48.8629 202.734 +86.6642 -47.8388 198.484 +87.2136 -49.3346 204.691 +82.6382 -47.9252 198.843 +83.1958 -49.4876 205.325 +78.7693 -48.0808 199.489 +79.0418 -49.5349 205.522 +74.0132 -47.6469 197.688 +74.272 -49.1439 203.899 +68.9879 -46.9453 194.777 +68.9186 -48.2624 200.242 +66.5623 -48.0004 199.155 +66.3658 -49.3189 204.625 +63.1815 -48.422 200.904 +63.2786 -50.0546 207.678 +56.2576 -45.9704 190.732 +55.639 -47.0093 195.043 +51.945 -45.4237 188.464 +51.6784 -46.8214 194.263 +48.5537 -45.6292 189.317 +48.1598 -47.0027 195.016 +44.9227 -45.5927 189.165 +44.3052 -46.8265 194.285 +41.7071 -45.9755 190.754 +40.9103 -47.1154 195.483 +37.8183 -45.5873 189.143 +37.2672 -47.1143 195.478 +34.4865 -45.8272 190.138 +33.7027 -47.1902 195.793 +31.1617 -46.1002 191.271 +30.0349 -47.089 195.373 +27.431 -45.7332 189.748 +26.536 -47.2279 195.95 +24.1179 -46.0245 190.957 +23.0029 -47.3059 196.274 +20.6339 -45.9997 190.854 +19.4759 -47.3929 196.634 +17.1958 -46.0536 191.077 +15.9194 -47.3952 196.644 +13.7699 -46.1402 191.437 +12.3379 -47.2659 196.107 +10.3311 -46.1895 191.641 +8.83729 -47.4261 196.772 +6.88916 -46.2248 191.788 +5.32701 -47.6658 197.767 +3.43463 -46.1053 191.292 +1.76887 -47.4929 197.049 +1.24345e-14 -46.417 192.585 +-1.7741 -47.6335 197.633 +-3.44511 -46.2459 191.876 +-5.34272 -47.8064 198.35 +-6.92755 -46.4823 192.856 +-8.92453 -47.8943 198.715 +-10.3939 -46.4704 192.807 +-12.515 -47.9442 198.922 +-13.8536 -46.4207 192.601 +-16.0841 -47.8856 198.679 +-17.405 -46.6138 193.402 +-19.658 -47.836 198.473 +-20.9475 -46.6986 193.754 +-23.4331 -48.1905 199.944 +-24.3739 -46.5128 192.983 +-27.045 -48.1338 199.708 +-28.0851 -46.8237 194.273 +-30.5965 -47.9695 199.027 +-31.7093 -46.91 194.631 +-34.4454 -48.2301 200.108 +-35.4763 -47.1424 195.595 +-38.0326 -48.0817 199.492 +-38.7915 -46.7602 194.009 +-42.0866 -48.47 201.103 +-42.5179 -46.8694 194.462 +-45.9501 -48.5651 201.498 +-46.2274 -46.9168 194.659 +-49.8172 -48.6204 201.727 +-50.2714 -47.2434 196.014 +-54.1322 -49.0445 203.487 +-54.0932 -47.3022 196.258 +-57.5631 -48.635 201.788 +-57.7736 -47.2089 195.871 +-62.0574 -49.0886 203.67 +-62.129 -47.6155 197.558 +-66.4259 -49.3637 204.811 +-66.2532 -47.7776 198.231 +-70.5368 -49.3955 204.943 +-70.8111 -48.186 199.925 +-75.0064 -49.6298 205.916 +-74.9024 -48.2195 200.064 +-79.1469 -49.6008 205.795 +-79.6652 -48.6277 201.758 +-83.8188 -49.8581 206.862 +-83.9493 -48.6856 201.998 +-88.706 -50.1788 208.193 +-88.735 -48.982 203.227 +-93.0282 -50.1308 207.994 +-93.1427 -49.0183 203.378 +-98.3238 -50.553 209.746 +-98.6814 -49.5856 205.732 +-104.743 -51.4544 213.486 +-104.683 -50.2906 208.657 +-111.192 -52.2555 216.81 +-110.32 -50.7318 210.488 +-114.883 -51.7096 214.544 +-113.753 -50.128 207.982 +-118.86 -51.2937 212.819 +-111.555 -47.155 195.648 +-108.973 -45.1306 187.248 +-109 -44.2365 183.538 +-109.121 -43.4061 180.093 +-110.012 -42.9002 177.994 +-99.327 -37.9787 157.575 +-100.685 -37.7543 156.643 +-98.6482 -36.2823 150.536 +-98.4707 -35.529 147.411 +-98.3 -34.7987 144.381 +-98.6416 -34.2661 142.171 +-98.4414 -33.561 139.246 +-98.5978 -32.9938 136.892 +-98.7195 -32.4286 134.547 +-98.3953 -31.7325 131.659 +-98.7406 -31.2664 129.725 +-98.6375 -30.6703 127.252 +-98.6802 -30.1331 125.023 +-98.6905 -29.5977 122.802 +-98.4818 -29.0098 120.362 +-98.3628 -28.4613 118.087 +-98.4013 -27.9697 116.047 +-98.6036 -27.5341 114.24 +-98.781 -27.0999 112.438 +-98.6713 -26.5961 110.348 +-98.4653 -26.0776 108.197 +-98.3622 -25.5966 106.201 +-98.7713 -25.2564 104.789 +-98.4124 -24.7278 102.596 +-98.71 -24.3728 101.123 +-99.0583 -24.0351 99.7224 +-98.5478 -23.4974 97.4913 +-98.7828 -23.1459 96.0329 +-98.9992 -22.7952 94.5779 +-98.5496 -22.2989 92.5189 +-98.7235 -21.9514 91.0771 +-98.879 -21.6049 89.6393 +-99.0901 -21.2753 88.2716 +-99.2841 -20.9464 86.9072 +-99.3864 -20.6029 85.4819 +-99.5462 -20.2759 84.1252 +-98.7007 -19.752 81.9517 +-98.8963 -19.444 80.6738 +-98.8451 -19.092 79.2133 +-99.0084 -18.786 77.9435 +-99.3912 -18.5245 76.8585 +-99.6046 -18.234 75.6532 +-99.5658 -17.9013 74.2728 +-98.9509 -17.4714 72.4891 +-98.8744 -17.1429 71.1265 +-99.5091 -16.9401 70.285 +-99.4035 -16.6135 68.93 +-99.3631 -16.3021 67.638 +-99.2248 -15.9789 66.2969 +-99.1529 -15.6706 65.0177 +-99.149 -15.3767 63.7984 +-98.8793 -15.0458 62.4253 +-99.6045 -14.8682 61.6886 +-99.3912 -14.5522 60.3776 +-99.8442 -14.3362 59.4813 +-99.0885 -13.9505 57.881 +-99.6905 -13.7592 57.0875 +-99.4197 -13.4494 55.8021 +-100.004 -13.2572 55.0044 +-99.6192 -12.9386 53.6826 +-99.3942 -12.645 52.4644 +-99.155 -12.3533 51.254 +-99.6113 -12.15 50.4109 +-99.169 -11.8395 49.1225 +-99.6062 -11.6363 48.2793 +-99.3167 -11.35 47.0915 +-99.7357 -11.1465 46.2472 +-99.3313 -10.853 45.0296 +-100.005 -10.6787 44.3061 +-100.673 -10.5024 43.5746 +-102.16 -10.4082 43.184 +-101.992 -10.144 42.0878 +-109.572 -10.6345 44.1228 +-108.481 -10.2696 42.6089 +-114.162 -10.5369 43.7178 +-113.897 -10.2443 42.5038 +-125.795 -11.0203 45.7236 +-124.697 -10.6345 44.1226 +-162.417 -13.4764 55.9138 +-162.251 -13.0904 54.3122 +-164.344 -12.8845 53.4581 +-164.057 -12.49 51.8215 +-166.71 -12.3162 51.1001 +-166.971 -11.9611 49.627 +-172.588 -11.9786 49.6996 +-173.027 -11.6253 48.2335 +-3157.34 -205.164 851.232 +-3164.86 -198.7 824.414 +-379.514 -22.9974 95.4167 +-379.774 -22.1865 92.0522 +-379.03 -21.3216 88.4638 +-379.809 -20.5458 85.2449 +-378.315 -19.6517 81.5356 +-379.032 -18.8774 78.323 +-378.839 -18.0596 74.9299 +-379.203 -17.2709 71.6576 +-379.831 -16.4949 68.4379 +-378.856 -15.6525 64.9428 +-380.312 -14.9121 61.8707 +-379.667 -14.0899 58.4594 +-378.892 -13.268 55.0494 +-378.579 -12.4667 51.7247 +-379.029 -11.6922 48.5111 +-380.244 -10.9395 45.3884 +-379.843 -10.1404 42.0728 +-378.913 -9.3315 38.7166 +-378.947 -8.54965 35.4727 +-379.55 -7.78059 32.2819 +-379.925 -7.00608 29.0684 +-144.348 -2.36509 9.81281 +-148.522 -2.12848 8.83114 +-380.178 -4.66848 19.3696 +-146.86 -1.50241 6.23355 +-147.61 -1.20779 5.01116 +-3275.38 -20.0966 83.3811 +-145.278 -0.594172 2.46524 +-145.294 -0.297099 1.23267 +94.9 0 1.13687e-13 +95.7964 -0.188543 0.814464 +95.8854 -0.377466 1.63057 +95.7672 -0.565571 2.44314 +95.8416 -0.754815 3.26063 +95.7088 -0.942428 4.07108 +95.7686 -1.13194 4.88971 +95.7211 -1.32037 5.70372 +95.6664 -1.50871 6.5173 +96.5016 -1.71286 7.39917 +96.4316 -1.90272 8.21932 +96.3544 -2.09243 9.03884 +96.2697 -2.28199 9.85771 +96.1778 -2.47137 10.6758 +96.0785 -2.66057 11.4931 +95.9719 -2.84954 12.3094 +95.8579 -3.03833 13.1249 +95.6378 -3.22353 13.925 +95.4107 -3.40811 14.7223 +95.0779 -3.58831 15.5007 +95.9203 -3.81444 16.4776 +95.769 -4.00308 17.2924 +95.6105 -4.19142 18.106 +95.4447 -4.37942 18.9181 +95.2716 -4.5671 19.7289 +95.0912 -4.75443 20.5381 +95.7806 -4.98706 21.543 +95.584 -5.17538 22.3565 +95.5741 -5.3742 23.2154 +96.0402 -5.60163 24.1978 +96.013 -5.8021 25.0638 +95.5921 -5.97878 25.827 +96.1262 -6.21642 26.8536 +95.882 -6.40537 27.6698 +95.7261 -6.60043 28.5124 +96.23 -6.84283 29.5595 +95.9616 -7.03196 30.3765 +96.5393 -7.28495 31.4694 +96.3483 -7.48202 32.3207 +96.0552 -7.67135 33.1386 +96.5064 -7.92183 34.2205 +96.1962 -8.11145 35.0397 +96.8123 -8.3813 36.2054 +96.4843 -8.57151 37.027 +96.9834 -8.83709 38.1743 +96.7302 -9.03628 39.0347 +96.3769 -9.22629 39.8555 +96.0162 -9.41562 40.6734 +96.5618 -9.69597 41.8845 +96.1829 -9.88565 42.7038 +96.6124 -10.1603 43.8904 +96.2156 -10.3501 44.7101 +96.6204 -10.628 45.9108 +96.116 -10.8077 46.687 +96.496 -11.0886 47.9005 +96.0633 -11.2781 48.719 +96.4179 -11.562 49.9455 +96.7578 -11.8482 51.1817 +96.2956 -12.0382 52.0023 +96.6095 -12.3272 53.2508 +96.8216 -12.6071 54.4598 +96.244 -12.7857 55.2314 +96.6028 -13.0908 56.5494 +96.6894 -13.3629 57.7248 +96.2535 -13.5646 58.5962 +96.3153 -13.8384 59.7788 +95.7762 -14.0274 60.5954 +95.8969 -14.315 61.8375 +96.1684 -14.6293 63.1952 +96.2579 -14.9202 64.4518 +96.3323 -15.2125 65.7148 +95.8214 -15.4146 66.5878 +95.8685 -15.7087 67.8581 +95.9001 -16.0041 69.1342 +96.6349 -16.4229 70.9435 +95.9958 -16.6125 71.7624 +96.0585 -16.9258 73.1156 +96.1043 -17.2405 74.4753 +96.133 -17.5568 75.8413 +96.0673 -17.86 77.1514 +95.9854 -18.1644 78.4663 +96.0393 -18.4991 79.912 +95.9236 -18.8058 81.2368 +95.8663 -19.1284 82.6303 +95.7914 -19.4521 84.0288 +95.6986 -19.777 85.4323 +95.5879 -20.103 86.8407 +95.967 -20.5388 88.723 +95.8161 -20.8679 90.1446 +95.7182 -21.2137 91.6386 +96.0958 -21.6724 93.62 +95.9545 -22.0216 95.1283 +95.6545 -22.3394 96.5011 +96.0943 -22.8375 98.6531 +95.8208 -23.1743 100.108 +96.0689 -23.6447 102.14 +95.7526 -23.9837 103.604 +95.351 -24.3064 104.998 +95.5878 -24.7994 107.128 +95.8585 -25.3125 109.344 +95.454 -25.6558 110.827 +95.4117 -26.1037 112.762 +96.0343 -26.746 115.537 +95.4315 -27.0576 116.883 +95.0581 -27.4399 118.534 +94.9668 -27.9122 120.574 +95.0266 -28.4404 122.856 +94.8742 -28.9162 124.912 +95.1037 -29.5215 127.527 +95.0611 -30.0565 129.837 +94.9269 -30.575 132.077 +95.0996 -31.2067 134.806 +94.7832 -31.6918 136.902 +94.602 -32.2344 139.246 +94.7127 -32.8923 142.088 +94.6722 -33.515 144.777 +94.4316 -34.0824 147.229 +94.52 -34.7863 150.269 +93.9944 -35.2802 152.403 +93.8946 -35.9496 155.294 +93.3 -36.4455 157.437 +93.4127 -37.2362 160.852 +93.035 -37.8528 163.516 +93.4277 -38.8073 167.639 +93.1432 -39.5075 170.664 +93.2732 -40.4094 174.56 +92.8865 -41.114 177.603 +94.5047 -42.7484 184.664 +93.2854 -43.1354 186.335 +102.031 -48.2436 208.402 +97.5403 -47.1753 203.787 +97.1212 -48.0632 207.622 +94.3222 -47.7786 206.393 +94.2643 -48.8932 211.208 +91.1185 -48.4126 209.132 +90.275 -49.1525 212.328 +86.9462 -48.5337 209.655 +86.1278 -49.3115 213.015 +83.1772 -48.8686 211.101 +81.7034 -49.284 212.896 +78.6646 -48.7434 210.561 +77.51 -49.3641 213.242 +74.6202 -48.8751 211.13 +73.0753 -49.2554 212.772 +68.8181 -47.7671 206.343 +68.7413 -49.1699 212.403 +66.9531 -49.3895 213.352 +65.5223 -49.8871 215.501 +62.9556 -49.5154 213.896 +59.7812 -48.616 210.01 +55.3096 -46.5533 201.1 +54.7581 -47.7522 206.279 +51.4568 -46.5452 201.065 +50.8911 -47.807 206.516 +47.4422 -46.3451 200.201 +46.9241 -47.7357 206.208 +43.7654 -46.4365 200.595 +42.8442 -47.4933 205.161 +40.1653 -46.6018 201.309 +39.2171 -47.7211 206.145 +36.3967 -46.5528 201.098 +35.4357 -47.7572 206.3 +32.7887 -46.6888 201.685 +31.6312 -47.733 206.196 +29.1707 -46.8108 202.213 +27.9457 -47.8726 206.799 +25.4707 -46.7842 202.098 +24.067 -47.6392 205.791 +21.7524 -46.6755 201.628 +20.4056 -47.7942 206.46 +18.2417 -47.0237 203.132 +16.6726 -47.7772 206.387 +14.5791 -47.0208 203.12 +13.0339 -48.0607 207.612 +10.9434 -47.0934 203.433 +9.29965 -48.037 207.509 +7.3254 -47.3097 204.368 +5.58878 -48.134 207.928 +3.65802 -47.2637 204.169 +1.86312 -48.1487 207.992 +9.76996e-15 -47.316 204.395 +-1.85526 -47.9457 207.115 +-3.66675 -47.3765 204.656 +-5.57307 -47.9987 207.344 +-7.3603 -47.5352 205.342 +-9.33455 -48.2172 208.288 +-11.0377 -47.4989 205.185 +-13.0827 -48.2407 208.389 +-14.7814 -47.6733 205.938 +-16.9158 -48.4741 209.398 +-18.4944 -47.6753 205.947 +-20.6931 -48.4676 209.369 +-22.1287 -47.4829 205.116 +-24.5764 -48.6476 210.147 +-26.0191 -47.7917 206.449 +-28.4156 -48.6778 210.277 +-29.7135 -47.6818 205.975 +-32.2372 -48.6476 210.147 +-33.4457 -47.6246 205.728 +-36.2775 -48.8916 211.201 +-37.2649 -47.6633 205.895 +-39.8367 -48.4753 209.402 +-41.1003 -47.6864 205.994 +-44.1799 -48.9739 211.556 +-45.2208 -47.9807 207.266 +-48.2877 -49.123 212.2 +-49.1968 -48.0592 207.605 +-52.3851 -49.2105 212.578 +-53.1986 -48.1207 207.871 +-56.7611 -49.4989 213.824 +-57.1731 -48.1218 207.876 +-61.0372 -49.6374 214.423 +-61.6601 -48.4965 209.494 +-65.0111 -49.4978 213.82 +-65.2281 -48.1171 207.855 +-69.5232 -49.729 214.818 +-69.5288 -48.2605 208.475 +-74.1224 -49.961 215.821 +-73.904 -48.406 209.103 +-78.8786 -50.2357 217.007 +-79.1777 -49.0614 211.934 +-83.6295 -50.4457 217.914 +-83.8223 -49.2475 212.738 +-88.6933 -50.7804 219.36 +-88.9316 -49.6419 214.442 +-93.7192 -51.0278 220.429 +-93.8536 -49.8656 215.409 +-99.0891 -51.3956 222.018 +-99.9352 -50.6218 218.675 +-106.576 -52.7423 227.835 +-106.331 -51.4268 222.152 +-111.459 -52.7014 227.659 +-112.004 -51.791 223.726 +-115.565 -52.275 225.816 +-115.404 -51.081 220.659 +-121.163 -52.4924 226.755 +-120.138 -50.9574 220.125 +-125.111 -51.9678 224.489 +-124.79 -50.7727 219.327 +-109.22 -43.5373 188.071 +-108.9 -42.5393 183.76 +-109.425 -41.8959 180.981 +-109.961 -41.273 178.29 +-98.8045 -36.363 157.08 +-98.3 -35.4787 153.26 +-98.7019 -34.9415 150.939 +-98.4707 -34.1974 147.725 +-98.9071 -33.7013 145.582 +-98.5857 -32.9631 142.393 +-98.8945 -32.4519 140.185 +-98.5978 -31.7572 137.184 +-98.7195 -31.2132 134.834 +-98.3953 -30.5432 131.94 +-98.8595 -30.1309 130.159 +-98.5773 -29.5028 127.446 +-98.9846 -29.093 125.676 +-98.5674 -28.453 122.911 +-98.5441 -27.9401 120.695 +-98.5516 -27.4471 118.566 +-98.3377 -26.9041 116.22 +-98.925 -26.5885 114.857 +-98.781 -26.0843 112.678 +-98.6713 -25.5994 110.584 +-98.4653 -25.1003 108.428 +-99.0313 -24.8048 107.151 +-98.7713 -24.3098 105.013 +-99.1626 -23.9826 103.599 +-98.7789 -23.4756 101.409 +-98.9888 -23.1181 99.8651 +-99.2488 -22.7775 98.394 +-98.7828 -22.2784 96.2378 +-98.9992 -21.9409 94.7798 +-99.2689 -21.6199 93.3931 +-99.3763 -21.2684 91.875 +-98.879 -20.7952 89.8306 +-98.7214 -20.4017 88.1309 +-98.9126 -20.0859 86.7668 +-98.4877 -19.6514 84.8896 +-99.2443 -19.4568 84.0491 +-98.8528 -19.041 82.253 +-98.9729 -18.7298 80.9086 +-99.3081 -18.4626 79.7542 +-99.3193 -18.1387 78.355 +-98.9217 -17.746 76.6587 +-99.5258 -17.5367 75.7547 +-99.5658 -17.2303 74.4313 +-98.9509 -16.8166 72.6438 +-98.8744 -16.5004 71.2783 +-99.59 -16.3185 70.4922 +-99.4035 -15.9909 69.0771 +-99.3631 -15.6912 67.7823 +-99.2248 -15.38 66.4383 +-99.1529 -15.0833 65.1564 +-98.9822 -14.7755 63.827 +-99.6341 -14.5924 63.0361 +-99.5202 -14.2989 61.768 +-99.3912 -14.0068 60.5064 +-99.3326 -13.7282 59.3028 +-99.0885 -13.4276 58.0045 +-98.915 -13.1406 56.7643 +-99.4197 -12.9454 55.9212 +-99.1335 -12.6493 54.642 +-99.7066 -12.4646 53.8444 +-99.3942 -12.1711 52.5763 +-99.155 -11.8903 51.3634 +-99.6113 -11.6947 50.5184 +-99.169 -11.3958 49.2273 +-99.6062 -11.2002 48.3823 +-99.3167 -10.9246 47.192 +-100.819 -10.8453 46.8492 +-100.238 -10.5416 45.5374 +-102.189 -10.5029 45.3703 +-101.769 -10.2188 44.1431 +-108.763 -10.6656 46.0732 +-108.896 -10.4248 45.0326 +-113.545 -10.607 45.8201 +-113.765 -10.3663 44.78 +-124.304 -11.0429 47.7031 +-125.66 -10.8787 46.9936 +-162.325 -13.6876 59.1273 +-162.849 -13.3676 57.745 +-163.077 -13.024 56.2608 +-164.709 -12.7907 55.2528 +-165.767 -12.509 54.0359 +-165.674 -12.1404 52.4439 +-172.337 -12.2547 52.9376 +-173.856 -11.9876 51.7838 +-181.792 -12.1446 52.4619 +-182.832 -11.8236 51.0755 +-377.936 -23.6379 102.111 +-380.768 -23.0098 99.3974 +-379.708 -22.1467 95.669 +-378.512 -21.284 91.9423 +-378.349 -20.4856 88.4934 +-379.322 -19.7504 85.3172 +-379.193 -18.9591 81.8993 +-379.913 -18.2121 78.6724 +-380.015 -17.4368 75.323 +-379.497 -16.6366 71.8663 +-379.831 -15.8767 68.5839 +-380.727 -15.1403 65.4028 +-379.128 -14.3085 61.8097 +-379.964 -13.5724 58.6298 +-379.386 -12.7874 55.2389 +-379.867 -12.0403 52.0114 +-378.435 -11.2363 48.5382 +-378.557 -10.4828 45.2835 +-379.843 -9.76036 42.1626 +-379.907 -9.00536 38.9012 +-379.545 -8.24219 35.6044 +-380.845 -7.51454 32.4612 +-379.227 -6.7311 29.0769 +-147.44 -2.32521 10.0444 +-147.524 -2.03494 8.79051 +-380.478 -4.49705 19.4263 +-146.46 -1.44217 6.22985 +-146.511 -1.15387 4.98446 +-3275.38 -19.3434 83.5591 +-146.378 -0.576234 2.4892 +-145.794 -0.286948 1.23955 +95.9 3.55271e-15 -1.7053e-13 +95.8963 -0.181375 0.816984 +94.9855 -0.359333 1.61857 +95.7672 -0.543503 2.44815 +95.7416 -0.724606 3.2639 +95.8087 -0.9066 4.08368 +95.6687 -1.08663 4.89461 +95.7211 -1.26885 5.7154 +95.6664 -1.44984 6.53065 +96.5016 -1.64602 7.41432 +96.4316 -1.82848 8.23615 +96.3544 -2.01079 9.05735 +96.2697 -2.19295 9.8779 +96.1778 -2.37494 10.6976 +96.0785 -2.55676 11.5166 +95.9719 -2.73835 12.3346 +95.8579 -2.91978 13.1518 +95.6378 -3.09775 13.9535 +95.5095 -3.27851 14.7677 +96.2615 -3.49121 15.7257 +95.8218 -3.66186 16.4944 +95.6707 -3.84294 17.3101 +95.8068 -4.03615 18.1804 +95.4447 -4.20854 18.9569 +95.2716 -4.3889 19.7693 +95.0912 -4.56891 20.5801 +95.7806 -4.79247 21.5871 +95.584 -4.97344 22.4023 +95.5741 -5.16451 23.2629 +95.3625 -5.34506 24.0762 +95.8198 -5.56448 25.0646 +95.7849 -5.75709 25.9321 +96.2223 -5.97984 26.9355 +95.9779 -6.16159 27.7542 +95.7261 -6.34289 28.5708 +96.23 -6.57583 29.62 +95.9616 -6.75758 30.4387 +95.6859 -6.9388 31.255 +96.2538 -7.18302 32.3551 +95.9609 -7.36479 33.1738 +96.5064 -7.61272 34.2906 +96.1962 -7.79495 35.1114 +96.9056 -8.06203 36.3145 +96.5773 -8.24499 37.1386 +96.9834 -8.49228 38.2525 +96.7302 -8.68369 39.1147 +96.3769 -8.86629 39.9372 +96.8415 -9.12601 41.1071 +96.5618 -9.31765 41.9703 +96.1829 -9.49992 42.7913 +95.8874 -9.69062 43.6502 +96.2156 -9.94625 44.8017 +96.6204 -10.2133 46.0048 +96.116 -10.386 46.7826 +96.496 -10.656 47.9986 +96.0633 -10.8381 48.8188 +96.4179 -11.1109 50.0478 +96.7578 -11.3859 51.2865 +96.2956 -11.5685 52.1088 +96.6095 -11.8462 53.3599 +96.8216 -12.1152 54.5714 +96.244 -12.2868 55.3445 +96.6028 -12.58 56.6652 +96.6894 -12.8415 57.843 +96.1687 -13.0239 58.6645 +96.231 -13.2868 59.8488 +96.531 -13.5863 61.198 +96.7308 -13.876 62.5029 +96.7487 -14.1433 63.7067 +96.3404 -14.3503 64.6391 +96.3323 -14.619 65.8494 +96.4727 -14.9139 67.1777 +95.7876 -15.083 67.9397 +95.9001 -15.3796 69.2757 +95.996 -15.6778 70.6188 +95.9958 -15.9643 71.9093 +96.0585 -16.2653 73.2653 +96.1043 -16.5678 74.6278 +96.0552 -16.8581 75.9352 +96.0673 -17.1632 77.3095 +95.9854 -17.4557 78.627 +96.0393 -17.7773 80.0757 +95.9236 -18.072 81.4032 +95.8663 -18.382 82.7995 +95.7914 -18.6931 84.2009 +96.3621 -19.1371 86.2009 +96.173 -19.4369 87.5512 +95.967 -19.7374 88.9047 +95.7441 -20.0386 90.2614 +96.2888 -20.5075 92.3738 +95.5301 -20.7042 93.2595 +95.8844 -21.1469 95.2536 +95.7239 -21.4833 96.769 +96.0943 -21.9464 98.8552 +95.8208 -22.27 100.313 +96.0014 -22.7061 102.277 +95.6857 -23.0318 103.744 +95.9474 -23.5041 105.871 +95.6534 -23.8482 107.422 +95.339 -24.1931 108.975 +95.9682 -24.7873 111.652 +95.4117 -25.0851 112.993 +95.4679 -25.5509 115.091 +95.4315 -26.0019 117.122 +95.5507 -26.5058 119.392 +95.5755 -26.9949 121.596 +95.0868 -27.3478 123.185 +95.3501 -27.9273 125.795 +95.28 -28.4223 128.025 +95.1191 -28.9013 130.182 +94.8122 -29.3464 132.188 +94.9863 -29.9533 134.921 +94.7832 -30.4552 137.182 +94.5468 -30.9587 139.45 +94.8217 -31.6453 142.543 +94.7797 -32.2437 145.238 +94.5376 -32.7894 147.696 +94.5722 -33.4474 150.66 +94.8185 -34.201 154.054 +94.3006 -34.6964 156.286 +94.2 -35.3613 159.281 +94.0529 -36.0286 162.287 +93.3743 -36.5085 164.448 +93.4754 -37.3121 168.068 +92.9554 -37.8895 170.669 +93.1809 -38.7943 174.745 +92.8865 -39.5097 177.967 +94.4155 -41.0416 184.867 +94.0744 -41.803 188.297 +105.045 -47.7305 214.996 +101.936 -47.3772 213.405 +100.48 -47.7853 215.243 +96.4373 -46.944 211.454 +95.4207 -47.5617 214.236 +93.8927 -47.9399 215.94 +92.1884 -48.2359 217.273 +89.3811 -47.9462 215.968 +87.9603 -48.3956 217.993 +85.4708 -48.2567 217.367 +83.1392 -48.1932 217.081 +80.922 -48.1856 217.047 +78.9453 -48.3165 217.636 +76.476 -48.136 216.823 +74.5031 -48.2582 217.374 +71.1357 -47.4492 213.729 +69.6134 -47.8506 215.537 +67.9179 -48.1464 216.87 +65.7496 -48.1067 216.691 +64.0581 -48.4167 218.087 +61.1441 -47.7843 215.239 +57.5355 -46.5372 209.621 +55.9599 -46.8961 211.238 +53.5857 -46.5797 209.813 +51.8949 -46.8478 211.02 +49.6017 -46.5641 209.742 +47.7899 -46.7195 210.442 +45.5119 -46.4054 209.028 +43.8809 -46.7444 210.555 +41.6345 -46.4215 209.1 +39.7456 -46.4772 209.351 +37.7337 -46.3798 208.913 +36.0794 -46.7273 210.478 +33.8055 -46.2585 208.366 +32.2816 -46.8137 210.867 +30.0892 -46.4009 209.007 +28.5983 -47.0792 212.063 +26.4335 -46.6581 210.166 +24.8821 -47.3309 213.196 +22.5363 -46.4709 209.323 +20.9998 -47.2667 212.907 +18.8169 -46.6137 209.966 +17.1747 -47.2957 213.038 +15.0674 -46.6995 210.353 +13.4368 -47.613 214.467 +11.2522 -46.5329 209.602 +9.57009 -47.5051 213.981 +7.5348 -46.7632 210.64 +5.73275 -47.4475 213.722 +3.76274 -46.7197 210.443 +1.9242 -47.7871 215.251 +1.86517e-14 -46.5751 209.792 +-1.92071 -47.7004 214.861 +-3.77321 -46.8497 211.029 +-5.76678 -47.7292 214.991 +-7.54876 -46.8499 211.03 +-9.67478 -48.0248 216.322 +-11.4145 -47.2039 212.624 +-13.4978 -47.8296 215.443 +-15.2627 -47.3048 213.079 +-17.3473 -47.771 215.179 +-19.0784 -47.2615 212.884 +-21.2778 -47.8924 215.726 +-23.0067 -47.4407 213.691 +-25.3009 -48.1276 216.785 +-27.0184 -47.6906 214.817 +-29.2118 -48.089 216.611 +-30.8964 -47.6458 214.615 +-33.3015 -48.2927 217.529 +-34.9944 -47.8855 215.694 +-37.2182 -48.2021 217.121 +-38.6541 -47.511 214.008 +-41.3128 -48.3098 217.606 +-42.7603 -47.6768 214.754 +-45.3961 -48.3586 217.826 +-46.8425 -47.7621 215.139 +-49.543 -48.4334 218.162 +-51.1089 -47.9789 216.115 +-53.7858 -48.5547 218.709 +-55.3759 -48.1358 216.822 +-58.2634 -48.8265 219.933 +-59.606 -48.2121 217.166 +-62.2398 -48.6406 219.096 +-63.5344 -48.0209 216.305 +-66.9424 -48.9795 220.623 +-68.3857 -48.478 218.364 +-71.5379 -49.1735 221.496 +-73.0207 -48.7067 219.393 +-76.0897 -49.286 222.003 +-77.7457 -48.9353 220.423 +-81.0483 -49.6035 223.433 +-82.9399 -49.3872 222.459 +-86.8514 -50.3451 226.774 +-88.1944 -49.7944 224.293 +-90.9656 -50.0493 225.441 +-92.5653 -49.6542 223.662 +-96.972 -50.7387 228.547 +-98.2298 -50.1544 225.915 +-102.997 -51.3382 231.247 +-104.857 -51.0423 229.914 +-108.567 -51.631 232.566 +-110.515 -51.3646 231.366 +-113.354 -51.5059 232.002 +-114.459 -50.8609 229.097 +-117.662 -51.1468 230.385 +-119.536 -50.8451 229.026 +-124.349 -51.7706 233.194 +-124.926 -50.921 229.368 +-128.69 -51.3685 231.384 +-129.929 -50.8009 228.827 +-109.17 -41.8196 188.372 +-109.05 -40.9358 184.391 +-108.918 -40.0745 180.511 +-110.218 -39.7555 179.074 +-98.8567 -34.9628 157.486 +-98.353 -34.1128 153.657 +-98.7557 -33.5963 151.331 +-98.4707 -32.8631 148.028 +-98.8519 -32.3683 145.799 +-98.6416 -31.6949 142.766 +-98.9512 -31.2036 140.553 +-98.0242 -30.3406 136.666 +-98.2549 -29.854 134.474 +-98.7479 -29.4568 132.685 +-98.6216 -28.8855 130.111 +-98.5171 -28.3345 127.63 +-98.7411 -27.8892 125.623 +-98.6905 -27.3768 123.316 +-98.1083 -26.7312 120.407 +-98.5516 -26.3762 118.808 +-98.4649 -25.8877 116.608 +-98.925 -25.5511 115.092 +-98.781 -25.0665 112.909 +-98.6057 -24.5843 110.737 +-98.5316 -24.1371 108.723 +-99.0313 -23.837 107.371 +-98.8388 -23.3773 105.3 +-98.4124 -22.8723 103.026 +-98.71 -22.544 101.547 +-98.9888 -22.2161 100.07 +-99.2488 -21.8888 98.5955 +-98.7828 -21.4091 96.4349 +-98.9992 -21.0848 94.9739 +-99.197 -20.7612 93.5166 +-99.3038 -20.4236 91.9959 +-98.5865 -19.9247 89.7483 +-98.8689 -19.6349 88.4433 +-98.9869 -19.3167 87.0098 +-98.8622 -18.9564 85.3869 +-98.6405 -18.5839 83.7088 +-98.9288 -18.3122 82.4849 +-99.2794 -18.0547 81.3253 +-98.6136 -17.6181 79.3587 +-98.7753 -17.3354 78.0855 +-99.3912 -17.1345 77.1803 +-99.6834 -16.8791 76.0301 +-99.5658 -16.558 74.5837 +-99.0308 -16.1734 72.8514 +-98.9548 -15.8695 71.4823 +-99.4282 -15.6563 70.5218 +-99.4849 -15.3795 69.2753 +-99.3631 -15.0789 67.9211 +-99.2248 -14.7799 66.5744 +-99.1529 -14.4947 65.2899 +-99.149 -14.2229 64.0655 +-99.6341 -14.0231 63.1652 +-99.5202 -13.7409 61.8945 +-99.476 -13.4718 60.6821 +-99.3326 -13.1925 59.4243 +-99.1743 -12.9149 58.1736 +-98.915 -12.6278 56.8805 +-99.4197 -12.4403 56.0357 +-99.2205 -12.1664 54.802 +-99.7066 -11.9783 53.9547 +-99.3942 -11.6962 52.684 +-99.155 -11.4263 51.4686 +-99.6113 -11.2384 50.6219 +-99.169 -10.9511 49.3281 +-100.322 -10.8405 48.8299 +-100.575 -10.6314 47.8878 +-101.36 -10.4781 47.1973 +-101.235 -10.231 46.0845 +-105.101 -10.3807 46.7587 +-108.072 -10.4283 46.9732 +-110.873 -10.4483 47.063 +-112.762 -10.3737 46.7269 +-118.903 -10.6742 48.0808 +-121.461 -10.6357 47.9071 +-148.588 -12.6852 57.139 +-160.763 -13.3746 60.2442 +-163.262 -13.2294 59.5903 +-162.849 -12.846 57.8633 +-165.339 -12.6894 57.1581 +-165.749 -12.3692 55.7156 +-168.233 -12.1996 54.9519 +-172.427 -12.1422 54.6932 +-176.533 -12.0633 54.3376 +-179.69 -11.9064 53.6309 +-580.757 -37.2835 167.939 +-381.236 -23.6924 106.72 +-379.574 -22.814 102.763 +-377.87 -21.9438 98.8435 +-379.417 -21.2663 95.7917 +-379.386 -20.5007 92.3432 +-380.002 -19.7723 89.062 +-380.297 -19.0285 85.7116 +-380.365 -18.2757 82.3206 +-379.326 -17.4745 78.7118 +-380.015 -16.7564 75.4773 +-379.792 -15.9998 72.0693 +-378.946 -15.2217 68.5643 +-379.249 -14.4931 65.2825 +-379.128 -13.7502 61.9363 +-380.359 -13.0564 58.811 +-379.288 -12.2853 55.3376 +-379.372 -11.5554 52.0499 +-379.029 -10.8148 48.7142 +-380.145 -10.1161 45.5666 +-379.346 -9.36726 42.1937 +-379.211 -8.63811 38.9094 +-379.644 -7.92267 35.6867 +-380.546 -7.21568 32.5022 +-378.729 -6.45996 29.0981 +-147.24 -2.23147 10.0514 +-147.524 -1.95554 8.80851 +-380.378 -4.32045 19.461 +-148.758 -1.40764 6.34056 +-145.112 -1.09826 4.94697 +-146.85 -0.833409 3.75399 +-145.578 -0.550724 2.48067 +-145.194 -0.274616 1.23697 +95 -1.77636e-15 -1.7053e-13 +95.8963 -0.173996 0.818587 +94.9855 -0.344713 1.62175 +95.7672 -0.521391 2.45295 +95.8416 -0.695851 3.27372 +95.7088 -0.868809 4.08742 +95.7686 -1.04351 4.90934 +95.6213 -1.21596 5.72065 +96.5642 -1.40391 6.60487 +96.5016 -1.57906 7.42887 +95.5351 -1.73778 8.17559 +96.3544 -1.92898 9.07513 +96.2697 -2.10373 9.89729 +96.1778 -2.27832 10.7186 +96.1777 -2.45525 11.551 +95.9719 -2.62694 12.3588 +95.8579 -2.80099 13.1776 +95.6378 -2.97172 13.9809 +95.4107 -3.14188 14.7814 +96.0642 -3.34231 15.7243 +95.9203 -3.51647 16.5437 +95.6707 -3.68659 17.344 +95.6105 -3.864 18.1787 +95.3467 -4.03317 18.9746 +95.2716 -4.21034 19.8081 +95.0912 -4.38303 20.6205 +95.7806 -4.59749 21.6295 +95.584 -4.7711 22.4462 +95.3801 -4.94433 23.2612 +96.0402 -5.16405 24.2949 +95.8198 -5.33809 25.1137 +95.7849 -5.52286 25.983 +96.1262 -5.73082 26.9614 +95.9779 -5.91091 27.8086 +95.6305 -6.07876 28.5983 +96.3254 -6.31455 29.7076 +95.9616 -6.48264 30.4984 +96.6342 -6.72247 31.6267 +96.3483 -6.89755 32.4504 +95.9609 -7.06515 33.2389 +96.5064 -7.303 34.3579 +96.1962 -7.47781 35.1804 +96.9056 -7.73402 36.3857 +96.5773 -7.90954 37.2115 +97.0761 -8.15457 38.3642 +96.7302 -8.3304 39.1914 +97.2053 -8.57869 40.3595 +96.0162 -8.68011 40.8367 +95.7396 -8.86244 41.6945 +96.1829 -9.11341 42.8752 +95.8874 -9.29636 43.7359 +96.2156 -9.54159 44.8896 +96.6204 -9.79782 46.0951 +96.2949 -9.98203 46.9617 +96.5851 -10.2319 48.1372 +96.8616 -10.4835 49.321 +96.4179 -10.6589 50.146 +95.9668 -10.8334 50.9671 +96.2956 -11.0978 52.2111 +95.8262 -11.2721 53.0311 +96.8216 -11.6223 54.6785 +96.244 -11.7869 55.4531 +96.6028 -12.0682 56.7764 +96.6894 -12.319 57.9565 +96.1687 -12.494 58.7796 +96.3153 -12.7574 60.0187 +96.4471 -13.0222 61.2648 +96.7308 -13.3115 62.6256 +96.0855 -13.4749 63.3942 +96.3404 -13.7664 64.766 +95.677 -13.9288 65.5297 +96.3913 -14.295 67.2527 +95.7876 -14.4694 68.073 +95.9001 -14.7539 69.4117 +95.996 -15.04 70.7574 +95.9958 -15.3148 72.0505 +96.0585 -15.6036 73.4091 +96.026 -15.8808 74.7134 +96.133 -16.1853 76.1458 +96.1444 -16.4781 77.5234 +96.062 -16.7588 78.8442 +95.9632 -17.0405 80.1693 +95.9991 -17.3504 81.6271 +95.8663 -17.6341 82.962 +95.7914 -17.9326 84.3661 +96.3621 -18.3585 86.37 +96.173 -18.6461 87.723 +95.967 -18.9344 89.0792 +95.8161 -19.2378 90.5065 +96.2888 -19.6732 92.5551 +96.1665 -19.9941 94.065 +95.9545 -20.3013 95.5102 +95.6545 -20.5943 96.8886 +96.0943 -21.0536 99.0492 +95.8208 -21.364 100.51 +96.0014 -21.7823 102.478 +95.6857 -22.0948 103.948 +95.8811 -22.5322 106.006 +95.5878 -22.8622 107.558 +95.9235 -23.351 109.858 +95.3897 -23.6356 111.197 +95.3481 -24.0485 113.139 +95.4679 -24.5113 115.317 +95.556 -24.9764 117.505 +95.6122 -25.4438 119.704 +95.0277 -25.7482 121.136 +95.5682 -26.368 124.052 +95.4096 -26.8079 126.121 +95.28 -27.266 128.276 +95.1772 -27.7425 130.518 +94.9269 -28.1866 132.607 +94.9863 -28.7346 135.186 +94.8391 -29.2334 137.532 +95.1539 -29.8898 140.62 +94.8761 -30.3751 142.903 +94.7259 -30.9144 145.441 +94.5906 -31.473 148.069 +94.6245 -32.1043 151.039 +94.8185 -32.8095 154.357 +94.3514 -33.3027 156.677 +94.35 -33.9767 159.848 +94.5453 -34.7437 163.456 +94.0531 -35.2776 165.968 +93.714 -35.8856 168.828 +93.5187 -36.5681 172.04 +92.9962 -37.1422 174.74 +92.9319 -37.9208 178.403 +94.4601 -39.3905 185.318 +94.1183 -40.1209 188.754 +106.379 -46.3703 218.155 +103.541 -46.1658 217.193 +102.056 -46.56 219.047 +97.8608 -45.6988 214.996 +96.0985 -45.9508 216.181 +94.3225 -46.2001 217.354 +93.2217 -46.792 220.139 +90.5799 -46.6123 219.294 +88.9498 -46.949 220.877 +86.3308 -46.7593 219.985 +84.4 -46.9336 220.805 +81.5718 -46.5965 219.22 +80.4475 -47.2328 222.213 +77.3876 -46.7282 219.839 +76.2166 -47.3596 222.809 +73.1134 -46.7843 220.103 +70.8463 -46.7169 219.786 +68.2396 -46.4063 218.325 +67.482 -47.3656 222.838 +64.9402 -47.0864 221.524 +63.2553 -47.4228 223.107 +58.8037 -45.6279 214.662 +56.5859 -45.4913 214.02 +54.2389 -45.2291 212.786 +52.6886 -45.6291 214.668 +50.3216 -45.3179 213.204 +48.569 -45.5495 214.294 +46.4475 -45.4324 213.743 +44.5986 -45.5761 214.419 +42.3405 -45.2879 213.063 +40.8754 -45.8537 215.725 +38.5499 -45.4551 213.849 +36.8386 -45.7695 215.328 +34.6659 -45.506 214.089 +32.8285 -45.6699 214.86 +30.7851 -45.5424 214.26 +28.9899 -45.7822 215.388 +26.9331 -45.6061 214.56 +25.0406 -45.6944 214.975 +23.1426 -45.7795 215.375 +21.2011 -45.7784 215.37 +19.2614 -45.7736 215.348 +17.3316 -45.7861 215.407 +15.4859 -46.0439 216.62 +13.5528 -46.0703 216.744 +11.5872 -45.9687 216.266 +9.67478 -46.0709 216.747 +7.71628 -45.9412 216.136 +5.80605 -46.099 216.879 +3.85524 -45.9206 216.04 +1.93991 -46.2171 217.434 +1.06581e-14 -46.0524 216.66 +-1.94165 -46.2587 217.63 +-3.87618 -46.1701 217.213 +-5.84793 -46.4315 218.443 +-7.76863 -46.2529 217.603 +-9.7751 -46.5487 218.995 +-11.6081 -46.0516 216.656 +-13.6749 -46.4853 218.696 +-15.5627 -46.2722 217.694 +-17.6455 -46.6153 219.308 +-19.5229 -46.3951 218.272 +-21.479 -46.3784 218.193 +-23.4562 -46.3999 218.294 +-25.5047 -46.5414 218.96 +-27.4572 -46.4934 218.734 +-29.6164 -46.7716 220.043 +-31.5366 -46.6543 219.491 +-33.8188 -47.0477 221.342 +-35.7296 -46.9024 220.658 +-37.4658 -46.5487 218.995 +-39.4876 -46.5608 219.051 +-41.7137 -46.7941 220.149 +-43.5999 -46.635 219.4 +-45.8746 -46.8801 220.554 +-47.9444 -46.8968 220.632 +-50.1058 -46.9907 221.074 +-52.0312 -46.8575 220.447 +-54.3461 -47.0646 221.421 +-56.3194 -46.9641 220.949 +-58.639 -47.1419 221.785 +-61.0036 -47.335 222.694 +-62.8812 -47.1423 221.787 +-65.0504 -47.1664 221.901 +-67.7377 -47.545 223.682 +-69.8476 -47.4997 223.469 +-72.44 -47.7677 224.729 +-74.6894 -47.7927 224.847 +-77.4541 -48.1286 226.427 +-79.4712 -47.9862 225.757 +-82.5838 -48.4871 228.114 +-84.6158 -48.3353 227.4 +-87.9721 -48.92 230.15 +-89.6995 -48.5838 228.569 +-92.6149 -48.8836 229.979 +-95.2625 -49.022 230.631 +-97.7756 -49.0778 230.893 +-100.613 -49.2813 231.85 +-104.113 -49.7832 234.212 +-106.728 -49.8393 234.476 +-109.769 -50.0791 235.603 +-112.332 -50.0853 235.633 +-114.43 -49.8795 234.664 +-116.431 -49.6327 233.503 +-119.715 -49.9219 234.864 +-121.806 -49.7027 233.833 +-124.995 -49.9225 234.867 +-127.086 -49.6938 233.791 +-130.026 -49.7903 234.245 +-132.111 -49.5524 233.126 +-109.367 -40.1906 189.082 +-108.6 -39.1084 183.991 +-109.375 -38.6053 181.623 +-110.682 -38.2984 180.18 +-98.8567 -33.5403 157.795 +-98.8299 -32.8835 154.705 +-98.7019 -32.212 151.545 +-98.4707 -31.5261 148.318 +-98.3 -30.878 145.27 +-98.6975 -30.4227 143.127 +-98.8945 -29.9168 140.748 +-98.5978 -29.2765 137.735 +-98.5453 -28.724 135.136 +-98.8067 -28.2752 133.024 +-98.9785 -27.8107 130.839 +-98.8782 -27.2813 128.349 +-98.6802 -26.7381 125.793 +-98.6905 -26.263 123.558 +-98.6063 -25.7738 121.256 +-98.5516 -25.3031 119.042 +-98.5285 -24.8506 116.913 +-98.4108 -24.3841 114.718 +-98.781 -24.0467 113.131 +-98.6713 -23.5996 111.028 +-98.5316 -23.1551 108.936 +-99.0313 -22.8672 107.582 +-98.8388 -22.4262 105.507 +-98.4124 -21.9418 103.228 +-98.9166 -21.6719 101.958 +-99.0583 -21.3272 100.336 +-98.5478 -20.85 98.0916 +-98.8535 -20.5528 96.6933 +-98.9992 -20.2269 95.1603 +-99.2689 -19.931 93.7681 +-99.0861 -19.5498 91.9744 +-98.5865 -19.114 89.9244 +-98.7952 -18.8221 88.5508 +-98.8383 -18.503 87.0497 +-99.1617 -18.2403 85.8138 +-98.9424 -17.8823 84.1298 +-99.6892 -17.7021 83.282 +-99.2794 -17.3201 81.4849 +-99.3081 -17.0203 80.0744 +-99.397 -16.7348 78.7312 +-99.4695 -16.4503 77.3926 +-99.6046 -16.1796 76.1191 +-98.8518 -15.7705 74.1942 +-99.5898 -15.603 73.4064 +-98.8744 -15.2115 71.5644 +-99.5091 -15.0315 70.7177 +-99.4849 -14.7538 69.4112 +-99.3631 -14.4654 68.0544 +-99.2248 -14.1786 66.7051 +-99.1529 -13.905 65.418 +-99.0656 -13.6328 64.1372 +-98.9631 -13.3619 62.863 +-98.8455 -13.0925 61.5954 +-99.3912 -12.9127 60.7493 +-99.3326 -12.6558 59.5409 +-99.86 -12.4751 58.6907 +-99.6905 -12.209 57.439 +-99.4197 -11.9341 56.1457 +-99.1335 -11.6611 54.8614 +-99.7066 -11.4909 54.0606 +-99.3942 -11.2203 52.7874 +-99.8614 -11.0395 51.9369 +-99.6113 -10.7811 50.7213 +-100.06 -10.6 49.869 +-100.143 -10.3809 48.8384 +-100.665 -10.208 48.0247 +-101.721 -10.0876 47.4584 +-103.047 -9.99051 47.0017 +-106.92 -10.1308 47.6617 +-110.356 -10.2155 48.0601 +-112.523 -10.1724 47.8573 +-114.051 -10.0653 47.3537 +-121.583 -10.4707 49.2606 +-127.395 -10.7014 50.3461 +-160.311 -13.1292 61.7683 +-162.07 -12.9347 60.8532 +-164.011 -12.7494 59.9813 +-164.728 -12.4656 58.6459 +-165.528 -12.1871 57.3356 +-165.939 -11.8795 55.8886 +-168.991 -11.7561 55.3081 +-171.761 -11.6032 54.589 +-177.296 -11.6225 54.6796 +-182.559 -11.6043 54.5941 +-3141.57 -193.478 910.241 +-378.833 -22.5852 106.255 +-378.418 -21.8193 102.652 +-378.836 -21.1049 99.2908 +-380.869 -20.4792 96.347 +-378.9 -19.6415 92.4061 +-380.294 -18.9824 89.3054 +-380.199 -18.2496 85.8578 +-378.608 -17.4511 82.1011 +-379.032 -16.7506 78.8052 +-380.015 -16.0747 75.6254 +-379.792 -15.3489 72.2108 +-379.241 -14.6137 68.7522 +-378.659 -13.8818 65.3087 +-380.608 -13.2423 62.3001 +-379.766 -12.5057 58.8347 +-380.178 -11.8131 55.5763 +-380.461 -11.1171 52.3018 +-379.426 -10.3857 48.8608 +-380.145 -9.70449 45.656 +-379.346 -8.98615 42.2765 +-380.206 -8.3084 39.088 +-379.644 -7.60034 35.7568 +-380.148 -6.91485 32.5318 +-379.327 -6.20693 29.2013 +-148.837 -2.16388 10.1803 +-147.025 -1.86964 8.79594 +-381.277 -4.15447 19.5452 +-3273.38 -29.7145 139.796 +-146.91 -1.06663 5.01812 +-3275.38 -17.8323 83.8945 +-144.578 -0.52469 2.46847 +-147.394 -0.267435 1.25818 +95.8 -1.77636e-15 -1.7053e-13 +95.8963 -0.166617 0.820121 +95.8854 -0.333222 1.64018 +95.8671 -0.4998 2.46011 +95.7416 -0.665646 3.27644 +95.8087 -0.832831 4.09936 +95.7686 -0.999258 4.91854 +95.7211 -1.16561 5.73734 +95.6664 -1.33187 6.55573 +96.5016 -1.51209 7.44279 +95.5351 -1.66408 8.19091 +96.3544 -1.84717 9.09213 +96.2697 -2.01452 9.91583 +96.2771 -2.18394 10.7498 +96.0785 -2.34872 11.5608 +96.071 -2.51814 12.3948 +95.8579 -2.6822 13.2023 +95.6378 -2.84569 14.0071 +95.4107 -3.00863 14.8091 +95.2752 -3.17428 15.6244 +95.9203 -3.36734 16.5747 +95.9657 -3.54113 17.4301 +95.6105 -3.70013 18.2127 +95.4447 -3.86609 19.0297 +95.2716 -4.03178 19.8452 +95.9699 -4.23593 20.8501 +95.7806 -4.40251 21.67 +95.584 -4.56876 22.4883 +95.5741 -4.74428 23.3522 +96.0402 -4.94504 24.3405 +95.8198 -5.11171 25.1608 +95.5921 -5.27799 25.9793 +96.1262 -5.48778 27.0119 +95.9779 -5.66023 27.8607 +95.7261 -5.82677 28.6805 +96.3254 -6.04675 29.7633 +95.9616 -6.20772 30.5556 +95.7807 -6.38053 31.4062 +96.2538 -6.59854 32.4793 +96.1494 -6.77882 33.3667 +96.5064 -6.99329 34.4223 +96.1962 -7.16068 35.2463 +96.8123 -7.3989 36.4188 +96.5773 -7.5741 37.2812 +96.2417 -7.74162 38.1058 +96.7302 -7.97711 39.2649 +96.3769 -8.14485 40.0905 +96.0162 -8.31199 40.9132 +96.5618 -8.55948 42.1314 +96.2739 -8.73516 42.9961 +95.8874 -8.9021 43.8179 +96.3058 -9.1455 45.0159 +96.6204 -9.3823 46.1815 +96.2949 -9.5587 47.0497 +96.5851 -9.79795 48.2274 +96.0633 -9.95619 49.0063 +96.4179 -10.2068 50.24 +96.7578 -10.4595 51.4835 +96.2956 -10.6272 52.3089 +96.6095 -10.8823 53.5647 +96.735 -11.1194 54.7319 +96.3301 -11.2972 55.6068 +96.6885 -11.5666 56.9332 +96.6894 -11.7966 58.0651 +96.0838 -11.9536 58.8379 +96.3153 -12.2163 60.1312 +96.4471 -12.47 61.3796 +95.9803 -12.648 62.2561 +96.0855 -12.9034 63.513 +96.3404 -13.1826 64.8873 +96.3323 -13.4294 66.1022 +95.74 -13.5963 66.9235 +95.8685 -13.8674 68.2582 +95.9001 -14.1282 69.5418 +96.0759 -14.4141 70.9489 +95.9958 -14.6653 72.1854 +96.0585 -14.9418 73.5466 +96.1043 -15.2197 74.9144 +96.133 -15.4989 76.2884 +96.1444 -15.7793 77.6686 +96.062 -16.0481 78.9919 +96.0393 -16.3308 80.3832 +95.9991 -16.6146 81.78 +95.8663 -16.8863 83.1174 +95.7914 -17.1721 84.5242 +95.6249 -17.4454 85.8698 +96.173 -17.8553 87.8874 +95.967 -18.1314 89.2461 +95.888 -18.4357 90.7442 +95.7182 -18.7272 92.1789 +96.1665 -19.1462 94.2413 +95.8844 -19.4262 95.6193 +95.6545 -19.7209 97.0701 +96.0255 -20.1464 99.1642 +95.8208 -20.4579 100.698 +96.0689 -20.8732 102.742 +95.7526 -21.1725 104.215 +95.4835 -21.4873 105.764 +95.6534 -21.9077 107.834 +95.8585 -22.3455 109.989 +95.454 -22.6486 111.481 +95.4117 -23.044 113.427 +95.4679 -23.4718 115.533 +95.4937 -23.9017 117.649 +95.5507 -24.349 119.851 +95.0277 -24.6562 121.363 +95.0266 -25.1068 123.58 +95.4096 -25.671 126.358 +95.809 -26.2546 129.23 +95.2353 -26.5821 130.842 +94.9269 -26.9912 132.856 +94.9863 -27.516 135.439 +94.7832 -27.9771 137.709 +95.0435 -28.5889 140.72 +94.8761 -29.0869 143.171 +95.1558 -29.7377 146.375 +94.5376 -30.1214 148.263 +94.4677 -30.6918 151.071 +94.767 -31.401 154.562 +94.6052 -31.9761 157.393 +94.5 -32.5876 160.402 +94.2991 -33.1836 163.336 +94.2955 -33.8687 166.708 +94.382 -34.6086 170.35 +93.4248 -34.9823 172.189 +94.2891 -36.0615 177.502 +92.9319 -36.3126 178.738 +93.6569 -37.3993 184.086 +94.5128 -38.5805 189.901 +117.271 -48.9501 240.942 +104.598 -44.659 219.82 +117.275 -51.2343 252.185 +99.4064 -44.452 218.801 +116.275 -53.2408 262.061 +94.9477 -44.534 219.205 +110.596 -53.1584 261.656 +91.891 -45.2816 222.885 +105.186 -53.1641 261.684 +87.6568 -45.464 223.782 +99.599 -53.0367 261.057 +83.3503 -45.5932 224.418 +94.6009 -53.187 261.797 +78.7875 -45.5558 224.234 +92.3991 -54.9803 270.624 +74.2259 -45.4819 223.871 +92.3768 -58.331 287.117 +69.4383 -45.2187 222.575 +92.3902 -62.0983 305.66 +65.9325 -45.7785 225.331 +90.8076 -65.1918 320.887 +59.2178 -44.0006 216.58 +86.3561 -66.4804 327.229 +54.6985 -43.6781 214.992 +81.2156 -67.351 331.515 +50.8614 -43.8615 215.895 +75.6889 -67.973 334.576 +46.8425 -43.8758 215.965 +69.1807 -67.6988 333.227 +42.7031 -43.7386 215.29 +60.7209 -65.2275 321.062 +38.793 -43.8019 215.602 +54.7298 -65.1142 320.505 +34.8067 -43.7532 215.361 +48.9545 -65.2157 321.004 +30.9382 -43.828 215.73 +43.0606 -65.1194 320.53 +27.1769 -44.0671 216.907 +37.5721 -65.6545 323.164 +23.2576 -44.0558 216.851 +31.7249 -65.5968 322.88 +19.3573 -44.0506 216.826 +25.9543 -65.6573 323.178 +15.5487 -44.27 217.905 +20.1216 -65.499 322.399 +11.6814 -44.3769 218.432 +14.4642 -65.9568 324.652 +7.78957 -44.4108 218.598 +8.72478 -66.3354 326.516 +3.88665 -44.3315 218.208 +2.92601 -66.7537 328.575 +1.68754e-14 -44.5573 219.32 +-2.92426 -66.7139 328.379 +-3.90236 -44.5107 219.09 +-8.75357 -66.5542 327.593 +-7.81749 -44.57 219.382 +-14.6692 -66.8917 329.254 +-11.7076 -44.4763 218.921 +-20.5489 -66.8901 329.246 +-15.6255 -44.4884 218.981 +-26.5035 -67.0468 330.017 +-19.7146 -44.8637 220.828 +-32.4534 -67.1029 330.294 +-23.613 -44.7289 220.164 +-38.1495 -66.6635 328.131 +-27.7862 -45.0552 221.771 +-44.2614 -66.9353 329.468 +-31.6897 -44.8926 220.97 +-50.5213 -67.303 331.278 +-35.9643 -45.2083 222.524 +-56.6608 -67.4117 331.814 +-39.8523 -44.9979 221.488 +-62.8348 -67.4981 332.239 +-44.0196 -45.0871 221.927 +-69.1209 -67.6403 332.939 +-48.0484 -45.0053 221.525 +-75.8621 -68.1285 335.341 +-52.4811 -45.2583 222.77 +-82.1728 -68.1448 335.422 +-56.9 -45.4361 223.645 +-89.1353 -68.62 337.761 +-61.5213 -45.7122 225.004 +-95.8851 -68.837 338.829 +-65.9876 -45.8168 225.519 +-102.53 -68.9133 339.205 +-70.5785 -45.9613 226.23 +-114.118 -72.0594 354.69 +-75.431 -46.2203 227.505 +-119.909 -71.3498 351.198 +-80.4479 -46.516 228.961 +-127.614 -71.748 353.157 +-85.4708 -46.7531 230.128 +-134.199 -71.4615 351.747 +-90.237 -46.8023 230.37 +-140.883 -71.2067 350.493 +-95.2999 -46.9616 231.154 +-143.085 -68.7749 338.523 +-101.238 -47.4846 233.728 +-143.271 -65.6016 322.904 +-107.663 -48.144 236.974 +-143.65 -62.7567 308.901 +-112.67 -48.1056 236.785 +-143.36 -59.84 294.544 +-117.264 -47.8676 235.614 +-143.542 -57.3192 282.136 +-122.577 -47.8965 235.756 +-141.249 -54.0216 265.905 +-127.931 -47.9027 235.786 +-144.675 -53.0501 261.123 +-132.692 -47.6598 234.591 +-116.507 -40.9987 201.803 +-108.8 -37.5187 184.674 +-109.222 -36.9167 181.711 +-110.63 -36.6572 180.434 +-105.179 -34.1717 168.2 +-98.3 -31.3201 154.164 +-98.7557 -30.8626 151.912 +-98.5797 -30.2223 148.76 +-98.9623 -29.7678 146.523 +-98.6416 -29.1159 143.314 +-99.0078 -28.6809 141.173 +-98.6551 -28.0512 138.073 +-98.6034 -27.5222 135.47 +-98.8067 -27.076 133.273 +-99.038 -26.6472 131.163 +-98.8782 -26.1244 128.589 +-98.8629 -25.6515 126.262 +-98.6905 -25.1492 123.789 +-98.6686 -24.6963 121.56 +-98.4886 -24.2144 119.188 +-98.5285 -23.7967 117.132 +-98.3465 -23.3348 114.859 +-98.9109 -23.0571 113.492 +-98.6713 -22.5988 111.236 +-98.5316 -22.1731 109.14 +-98.4291 -21.7644 107.129 +-98.7713 -21.4604 105.632 +-98.4806 -21.0258 103.493 +-98.8477 -20.7385 102.079 +-98.5026 -20.308 99.96 +-99.3889 -20.1362 99.1142 +-98.7828 -19.6671 96.8052 +-99.1418 -19.397 95.476 +-99.0531 -19.0443 93.7395 +-98.796 -18.6659 91.877 +-98.5865 -18.3034 90.0929 +-99.1638 -18.0911 89.0478 +-98.8383 -17.7183 87.2128 +-99.3864 -17.5063 86.1694 +-98.867 -17.1109 84.2231 +-99.7653 -16.9643 83.5018 +-99.1262 -16.56 81.5115 +-99.5396 -16.3365 80.4114 +-99.4747 -16.0376 78.9404 +-99.5478 -15.7651 77.5987 +-98.8953 -15.3831 75.7187 +-99.4865 -15.1986 74.8104 +-98.8711 -14.8335 73.0131 +-100.241 -14.7677 72.6895 +-99.59 -14.4057 70.9078 +-100.625 -14.29 70.338 +-99.2812 -13.8405 68.1258 +-103.263 -14.1299 69.5499 +-99.2358 -13.3265 65.5954 +-108.489 -14.2964 70.3694 +-98.9631 -12.7953 62.9808 +-112.677 -14.2916 70.3461 +-99.3912 -12.365 60.8631 +-117.92 -14.3869 70.8149 +-99.0885 -11.8538 58.3465 +-130.02 -15.2481 75.0542 +-99.4197 -11.428 56.2509 +-161.886 -18.2352 89.7572 +-99.7066 -11.0036 54.1618 +-162.23 -17.5369 86.3201 +-99.155 -10.4966 51.6662 +-165.605 -17.1636 84.4826 +-99.9709 -10.1414 49.9179 +-168.069 -16.6833 82.1183 +-100.395 -9.74887 47.9858 +-173.748 -16.4996 81.2143 +-104.316 -9.68462 47.6696 +-182.538 -16.5622 81.5221 +-110.63 -9.80655 48.2697 +-540.332 -46.7758 230.24 +-115.892 -9.79405 48.2082 +-379.807 -31.3217 154.171 +-131.011 -10.5384 51.8722 +-379.983 -29.8002 146.682 +-163.283 -12.479 61.4238 +-378.884 -28.2035 138.823 +-163.788 -11.8688 58.4206 +-379.696 -26.7696 131.765 +-166.695 -11.4276 56.2486 +-379.993 -25.3136 124.599 +-174.138 -11.265 55.4483 +-379.675 -23.8338 117.314 +-180.646 -10.9958 54.1233 +-379.884 -22.4035 110.274 +-379.41 -21.6603 106.616 +-379.959 -20.979 103.262 +-379.512 -20.2459 99.6542 +-379.32 -19.5309 96.135 +-380.55 -18.8904 92.9823 +-378.544 -18.0937 89.0609 +-379.615 -17.4488 85.8864 +-379.193 -16.7369 82.3821 +-379.326 -16.0526 79.0141 +-379.427 -15.3691 75.6499 +-379.497 -14.6865 72.29 +-380.618 -14.0448 69.1311 +-379.545 -13.3242 65.5842 +-379.917 -12.6577 62.3035 +-378.877 -11.9473 58.807 +-379.98 -11.3062 55.6515 +-379.273 -10.6124 52.2362 +-379.723 -9.95302 48.9907 +-377.664 -9.23226 45.443 +-380.538 -8.63209 42.4888 +-378.416 -7.9186 38.9769 +-378.748 -7.26083 35.7392 +-379.251 -6.60599 32.5159 +-379.327 -5.9437 29.256 +-149.435 -2.08044 10.2403 +-146.726 -1.7867 8.79448 +-378.58 -3.95015 19.4434 +-379.838 -3.3018 16.2521 +-146.511 -1.01862 5.01384 +-147.349 -0.768201 3.78123 +-144.578 -0.502438 2.4731 +-146.394 -0.254355 1.25198 +95.1 -1.77636e-15 -1.7053e-13 +95.8963 -0.15921 0.821591 +95.8854 -0.318409 1.64312 +95.7672 -0.477083 2.46195 +95.7416 -0.636055 3.28231 +95.8087 -0.795808 4.1067 +95.7686 -0.954836 4.92736 +95.7211 -1.11379 5.74763 +96.5642 -1.28461 6.62911 +96.5016 -1.44487 7.45613 +96.4316 -1.60502 8.2826 +96.3544 -1.76506 9.10843 +96.3692 -1.92694 9.94382 +96.2771 -2.08686 10.7691 +96.1777 -2.24661 11.5934 +95.9719 -2.40371 12.4041 +95.7589 -2.5603 13.2122 +95.7367 -2.72201 14.0467 +95.5095 -2.87785 14.8509 +95.0779 -3.02689 15.62 +96.1172 -3.22427 16.6386 +95.769 -3.37677 17.4255 +95.8068 -3.54291 18.2829 +95.6407 -3.70182 19.1029 +95.2716 -3.85255 19.8808 +95.0912 -4.01056 20.6962 +95.9755 -4.21536 21.753 +95.584 -4.36565 22.5286 +95.5741 -4.53337 23.3941 +95.3625 -4.69186 24.212 +95.8198 -4.88447 25.2059 +95.7849 -5.05354 26.0784 +96.2223 -5.24907 27.0874 +95.9779 -5.40861 27.9107 +95.7261 -5.56774 28.7319 +96.3254 -5.77795 29.8166 +96.0567 -5.93764 30.6407 +96.729 -6.15725 31.774 +96.4429 -6.31761 32.6015 +96.1494 -6.47747 33.4265 +96.5064 -6.6824 34.484 +96.1962 -6.84236 35.3094 +96.9056 -7.0768 36.5192 +96.5773 -7.2374 37.348 +96.9834 -7.45447 38.4682 +96.7302 -7.62249 39.3353 +96.3769 -7.78277 40.1624 +96.0162 -7.94248 40.9865 +96.6531 -8.1867 42.2468 +96.2739 -8.34684 43.0732 +96.703 -8.57873 44.2699 +96.3058 -8.73893 45.0966 +96.7102 -8.97354 46.3073 +96.2949 -9.13377 47.1341 +96.6742 -9.37102 48.3584 +96.0633 -9.51359 49.0941 +96.4179 -9.75308 50.33 +95.9668 -9.91278 51.1541 +96.2956 -10.1547 52.4027 +96.6095 -10.3985 53.6608 +96.8216 -10.6346 54.8791 +96.3301 -10.795 55.7065 +96.6028 -11.0427 56.9847 +96.6894 -11.2722 58.1692 +96.9319 -11.523 59.4636 +96.3996 -11.6835 60.2917 +96.531 -11.926 61.5431 +96.7308 -12.1803 62.8554 +96.0855 -12.3298 63.6269 +96.2579 -12.5858 64.948 +96.3323 -12.8324 66.2207 +95.74 -12.9919 67.0435 +95.7876 -13.2398 68.3228 +95.1767 -13.3983 69.1408 +95.996 -13.7619 71.0171 +95.9958 -14.0134 72.3148 +96.0585 -14.2776 73.6785 +96.1043 -14.5431 75.0487 +96.0552 -14.7979 76.3634 +96.1444 -15.0778 77.8079 +95.9854 -15.3225 79.0704 +95.9632 -15.5924 80.4635 +95.9236 -15.8635 81.8622 +95.7914 -16.123 83.2013 +95.7914 -16.4087 84.6757 +96.2884 -16.7856 86.6207 +96.0999 -17.0486 87.978 +95.967 -17.3254 89.4061 +95.8161 -17.603 90.8386 +95.7182 -17.8947 92.3441 +96.0958 -18.2816 94.3408 +95.8844 -18.5626 95.7907 +95.585 -18.8305 97.1735 +95.4748 -19.1402 98.7716 +95.7526 -19.5346 100.807 +96.0689 -19.9453 102.926 +95.7526 -20.2313 104.402 +95.9474 -20.6317 106.468 +95.5878 -20.9194 107.953 +95.274 -21.2221 109.515 +95.3897 -21.6271 111.605 +95.4117 -22.0196 113.63 +95.5308 -22.4432 115.816 +95.4937 -22.8391 117.859 +95.4275 -23.2367 119.911 +95.0277 -23.5601 121.58 +95.0266 -23.9907 123.802 +95.3501 -24.5144 126.505 +95.3975 -24.9796 128.905 +95.1772 -25.385 130.997 +95.0416 -25.8223 133.254 +94.9863 -26.2928 135.682 +94.7832 -26.7334 137.956 +94.6572 -27.2069 140.399 +94.8217 -27.778 143.346 +94.6722 -28.2713 145.892 +94.8555 -28.8792 149.029 +94.4155 -29.3112 151.258 +94.6125 -29.9561 154.586 +94.1991 -30.4234 156.997 +94.7 -31.2047 161.029 +94.2991 -31.7085 163.629 +94.1985 -32.3298 166.835 +94.4297 -33.0868 170.742 +94.176 -33.6958 173.884 +94.3352 -34.4752 177.906 +94.3846 -35.2407 181.857 +93.6569 -35.7367 184.416 +115.774 -45.1585 233.037 +117.185 -46.7398 241.197 +117.108 -47.7774 246.551 +116.902 -48.8009 251.833 +117.303 -50.1229 258.655 +115.956 -50.7344 261.811 +113.273 -50.7673 261.98 +110.596 -50.7952 262.125 +107.924 -50.8182 262.244 +105.186 -50.8007 262.153 +102.529 -50.8135 262.219 +99.634 -50.6967 261.616 +96.9969 -50.6993 261.63 +94.6009 -50.8226 262.266 +92.5916 -51.1575 263.994 +92.2405 -52.446 270.643 +92.3343 -54.0627 278.986 +92.3468 -55.7197 287.537 +92.4187 -57.5084 296.767 +92.3902 -59.3377 306.208 +92.2834 -61.2261 315.952 +92.3309 -63.3386 326.854 +90.3537 -64.1511 331.047 +89.5109 -65.8458 339.792 +85.471 -65.2165 336.544 +84.4138 -66.8914 345.188 +80.5325 -66.3615 342.453 +79.1953 -67.9601 350.703 +74.5987 -66.7677 344.549 +72.1911 -67.5043 348.351 +66.2298 -64.8204 334.5 +63.5091 -65.1896 336.406 +59.1793 -63.8499 329.493 +57.4036 -65.2593 336.765 +53.2972 -64.0179 330.359 +51.216 -65.1953 336.435 +47.3745 -64.1286 330.931 +45.2665 -65.412 337.554 +41.204 -63.8419 329.451 +39.0891 -65.2688 336.814 +35.6338 -64.4989 332.841 +33.0189 -65.2372 336.651 +29.5545 -64.2662 331.641 +27.037 -65.3559 337.264 +23.6405 -64.3164 331.9 +20.9885 -65.2838 336.892 +17.7053 -64.2711 331.666 +15.0574 -65.6095 338.573 +11.8379 -64.4912 332.802 +9.02581 -65.5735 338.387 +5.90415 -64.3495 332.071 +3.01065 -65.6316 338.686 +2.30926e-14 -64.7209 333.987 +-3.01676 -65.7647 339.374 +-5.92684 -64.5968 333.347 +-9.07031 -65.8968 340.055 +-11.9356 -65.0237 335.55 +-15.1752 -66.1228 341.221 +-17.9198 -65.0502 335.686 +-21.3853 -66.5181 343.261 +-23.9613 -65.1894 336.405 +-27.6961 -66.949 345.485 +-29.9641 -65.1569 336.237 +-33.9677 -67.1118 346.325 +-36.3655 -65.8231 339.675 +-40.2664 -67.2347 346.96 +-42.0815 -65.2014 336.467 +-46.9242 -67.8074 349.915 +-48.3348 -65.4286 337.639 +-53.2409 -67.7731 349.738 +-54.5956 -65.5775 338.408 +-59.8958 -68.0926 351.386 +-61.3673 -66.2107 341.675 +-66.1879 -67.9394 350.596 +-66.8213 -65.3993 337.488 +-73.4073 -68.6414 354.219 +-73.9542 -66.1909 341.573 +-80.1909 -68.8145 355.112 +-82.3096 -67.826 350.011 +-87.7521 -69.5367 358.839 +-88.9305 -67.8563 350.167 +-93.8174 -69.0137 356.14 +-95.8666 -68.0652 351.245 +-101.417 -69.5717 359.019 +-102.923 -68.2851 352.38 +-109.119 -70.0817 361.651 +-110.663 -68.8608 355.35 +-117.877 -71.1239 367.029 +-119.497 -69.9666 361.057 +-126.541 -71.9484 371.284 +-127.199 -70.2786 362.667 +-132.922 -71.4098 368.505 +-133.696 -69.8814 360.617 +-139.663 -71.0645 366.723 +-140.337 -69.5512 358.913 +-142.972 -69.0501 356.327 +-143.212 -67.4341 347.988 +-143.889 -66.0866 341.035 +-143.476 -64.304 331.836 +-143.191 -62.6503 323.302 +-143.578 -61.3501 316.592 +-143.152 -59.7591 308.382 +-143.014 -58.3468 301.094 +-143.36 -57.1798 295.072 +-143.304 -55.8966 288.45 +-143.542 -54.7711 282.642 +-142.144 -53.073 273.879 +-141.295 -51.6369 266.468 +-143.189 -51.2324 264.381 +-146.631 -51.3772 265.128 +-147.528 -50.6328 261.286 +-108.53 -36.4937 188.323 +-108.95 -35.9003 185.261 +-109.172 -35.259 181.951 +-110.218 -34.8971 180.084 +-105.91 -32.8798 169.674 +-98.8299 -30.0891 155.272 +-98.8094 -29.5068 152.267 +-98.6886 -28.9107 149.192 +-98.4656 -28.3016 146.048 +-98.7535 -27.8532 143.734 +-98.668 -27.3119 140.941 +-98.8846 -26.8666 138.643 +-98.6614 -26.3141 135.792 +-98.8067 -25.8724 133.512 +-98.8595 -25.4167 131.161 +-98.8782 -24.963 128.82 +-99.2281 -24.6017 126.955 +-98.6905 -24.0312 124.011 +-98.6686 -23.5984 121.778 +-98.5516 -23.1528 119.478 +-98.4649 -22.724 117.266 +-98.9893 -22.4432 115.816 +-98.9109 -22.0321 113.695 +-98.7369 -21.6086 111.51 +-98.5316 -21.1874 109.336 +-99.0313 -20.9239 107.976 +-98.7713 -20.5064 105.821 +-99.0944 -20.2164 104.325 +-98.9166 -19.8302 102.332 +-99.1277 -19.5285 100.775 +-99.2488 -19.2138 99.1515 +-98.9242 -18.8197 97.1175 +-99.1418 -18.5347 95.6471 +-99.3408 -18.2505 94.1803 +-98.8685 -17.8492 92.1092 +-98.9522 -17.5546 90.5892 +-99.1638 -17.2868 89.2074 +-99.2098 -16.9943 87.6975 +-99.3864 -16.7281 86.3238 +-98.9424 -16.3627 84.4385 +-99.0809 -16.099 83.0776 +-99.2794 -15.8483 81.7839 +-99.4624 -15.5982 80.4931 +-99.4747 -15.3247 79.0819 +-99.313 -15.0287 77.5544 +-99.5258 -14.793 76.3379 +-99.2485 -14.4882 74.7653 +-99.3503 -14.2427 73.4985 +-100.482 -14.1451 72.9949 +-100.642 -13.9107 71.7851 +-103.881 -14.0966 72.7444 +-103.95 -13.8472 71.4575 +-109.609 -14.3314 73.9562 +-108.77 -13.9574 72.0262 +-112.575 -14.1753 73.1507 +-112.633 -13.9154 71.8091 +-118.665 -14.3821 74.2174 +-118.557 -14.0938 72.7297 +-130.028 -15.1588 78.2258 +-130.718 -14.9424 77.1089 +-162.848 -18.2491 94.1729 +-162.726 -17.8734 92.2342 +-164.323 -17.6869 91.2717 +-164.341 -17.3304 89.432 +-164.515 -16.9933 87.6928 +-164.846 -16.6749 86.0495 +-168 -16.6378 85.858 +-168.133 -16.2978 84.1034 +-172.812 -16.3915 84.5872 +-175.894 -16.3208 84.2224 +-182.683 -16.577 85.544 +-184.071 -16.3293 84.2662 +-534.784 -46.3652 239.264 +-537.439 -45.5221 234.913 +-382.047 -31.6031 163.085 +-379.892 -30.6777 158.31 +-379.53 -29.9074 154.335 +-380.053 -29.2121 150.747 +-379.703 -28.4545 146.837 +-378.567 -27.6458 142.664 +-379.54 -26.9963 139.312 +-379.072 -26.2481 135.451 +-380.262 -25.6178 132.199 +-379.437 -24.8555 128.265 +-379.329 -24.1461 124.604 +-380.423 -23.5154 121.35 +-379.77 -22.78 117.554 +-380.514 -22.132 114.21 +-379.788 -21.402 110.443 +-379.025 -20.6764 106.699 +-379.092 -20.0007 103.212 +-379.512 -19.3459 99.8328 +-379.514 -18.6722 96.3565 +-379.58 -18.0046 92.9114 +-380.294 -17.3693 89.6331 +-379.322 -16.6603 85.974 +-379.193 -15.9928 82.5298 +-379.913 -15.3627 79.2781 +-379.721 -14.6973 75.8442 +-379.497 -14.0337 72.4196 +-379.536 -13.3823 69.0582 +-379.84 -12.7418 65.7529 +-379.819 -12.0918 62.399 +-379.667 -11.44 59.0352 +-379.584 -10.7924 55.6932 +-378.679 -10.1247 52.2478 +-379.129 -9.49567 49.0016 +-380.046 -8.87749 45.8116 +-380.439 -8.2462 42.5539 +-380.007 -7.59839 39.2109 +-379.644 -6.95447 35.888 +-379.052 -6.30901 32.5571 +-380.523 -5.69738 29.4009 +-378.077 -5.0296 25.9549 +-146.227 -1.70146 8.78027 +-379.979 -3.78847 19.5501 +-380.937 -3.16415 16.3283 +-376.371 -2.50041 12.9032 +-146.75 -0.731064 3.7726 +-145.978 -0.48475 2.50151 +-146.694 -0.243546 1.2568 +95.9 3.55271e-15 -1.7053e-13 +95.8963 -0.15179 0.822994 +95.7854 -0.303252 1.64421 +95.7672 -0.454849 2.46616 +95.7416 -0.606412 3.28792 +96.7079 -0.765841 4.15233 +95.7686 -0.910337 4.93577 +96.6194 -1.07185 5.81148 +96.5642 -1.22474 6.64043 +95.5047 -1.3633 7.39171 +96.4316 -1.53022 8.29675 +95.4585 -1.66715 9.03915 +96.2697 -1.83525 9.95057 +96.2771 -1.9896 10.7875 +96.1777 -2.1419 11.6132 +95.8727 -2.28933 12.4125 +95.7589 -2.44098 13.2348 +95.6378 -2.59246 14.0561 +95.5095 -2.74373 14.8763 +96.2615 -2.92174 15.8414 +95.9203 -3.06769 16.6328 +95.769 -3.21939 17.4553 +95.6105 -3.37086 18.2765 +95.4447 -3.52206 19.0963 +95.4672 -3.68055 19.9556 +95.0912 -3.82365 20.7315 +95.7806 -4.01074 21.7459 +95.584 -4.16219 22.5671 +95.5741 -4.3221 23.4341 +95.1689 -4.46413 24.2042 +95.8198 -4.65683 25.2489 +95.7849 -4.81802 26.1229 +96.2223 -5.00444 27.1337 +95.9779 -5.15654 27.9583 +95.7261 -5.30826 28.781 +96.3254 -5.50867 29.8675 +96.0567 -5.66092 30.693 +96.5393 -5.85878 31.7658 +96.2538 -6.01135 32.5931 +95.9609 -6.16348 33.4179 +96.5064 -6.37097 34.5429 +97.2266 -6.59334 35.7486 +96.9056 -6.74699 36.5816 +96.4843 -6.89347 37.3758 +96.9834 -7.10706 38.5339 +96.7302 -7.26725 39.4024 +96.3769 -7.42006 40.231 +96.8415 -7.63742 41.4095 +96.6531 -7.80516 42.3189 +96.2739 -7.95784 43.1468 +96.703 -8.17892 44.3455 +96.3058 -8.33166 45.1736 +96.5305 -8.53945 46.3002 +96.116 -8.6919 47.1268 +95.8723 -8.86018 48.0392 +96.0633 -9.07021 49.178 +96.4179 -9.29855 50.416 +96.7578 -9.5287 51.6638 +96.2956 -9.68147 52.4922 +96.5224 -9.90498 53.704 +96.8216 -10.139 54.9728 +96.244 -10.2826 55.7517 +96.6028 -10.528 57.082 +96.0073 -10.671 57.8575 +96.1687 -10.8995 59.0961 +96.3153 -11.1292 60.3419 +95.7762 -11.2813 61.1662 +95.9803 -11.5225 62.4742 +96.0855 -11.7552 63.7355 +96.3404 -12.0095 65.1147 +96.4142 -12.2448 66.3902 +96.4727 -12.4812 67.6719 +95.7876 -12.6227 68.4395 +96.0609 -12.8925 69.9023 +95.996 -13.1205 71.1384 +95.9958 -13.3603 72.4383 +96.0585 -13.6122 73.8043 +96.1043 -13.8654 75.1769 +96.0552 -14.1083 76.4938 +96.1444 -14.3751 77.9407 +95.9854 -14.6084 79.2054 +96.0393 -14.8775 80.6648 +95.9236 -15.1242 82.002 +95.8663 -15.3836 83.4086 +95.7914 -15.644 84.8203 +95.6986 -15.9053 86.2371 +96.0999 -16.2541 88.1282 +95.967 -16.5179 89.5588 +95.8161 -16.7826 90.9938 +95.6469 -17.048 92.4329 +96.0958 -17.4296 94.5019 +95.8844 -17.6975 95.9543 +96.2797 -18.0834 98.0468 +95.4748 -18.2482 98.9403 +95.7526 -18.6242 100.979 +96.0689 -19.0158 103.102 +95.7526 -19.2884 104.58 +95.351 -19.5479 105.987 +95.5222 -19.9308 108.063 +95.7936 -20.3433 110.3 +95.3897 -20.6192 111.795 +95.4117 -20.9933 113.824 +95.5308 -21.3973 116.014 +94.8712 -21.6327 117.291 +95.0581 -22.068 119.651 +94.9668 -22.4478 121.71 +94.9664 -22.8581 123.935 +95.4096 -23.3866 126.8 +94.8685 -23.6834 128.409 +95.1772 -24.2019 131.221 +95.0416 -24.6189 133.482 +94.9863 -25.0674 135.914 +95.2865 -25.6228 138.925 +94.602 -25.9239 140.557 +94.8217 -26.4835 143.591 +94.6185 -26.9384 146.058 +94.8555 -27.5333 149.283 +94.4155 -27.9452 151.516 +94.6125 -28.56 154.85 +94.6559 -29.1463 158.029 +94.25 -29.6091 160.538 +94.2499 -30.2149 163.823 +94.1985 -30.8231 167.12 +94.382 -31.5288 170.947 +94.129 -32.1094 174.095 +94.2891 -32.8525 178.124 +94.43 -33.6145 182.255 +93.5231 -34.0224 184.467 +116.212 -43.2168 234.318 +117.314 -44.6105 241.874 +117.15 -45.5673 247.062 +116.861 -46.5101 252.174 +117.344 -47.8035 259.187 +115.996 -48.3866 262.348 +113.312 -48.418 262.518 +110.557 -48.4113 262.482 +107.924 -48.4499 262.691 +105.223 -48.4501 262.692 +102.207 -48.293 261.841 +99.634 -48.334 262.063 +96.9969 -48.3365 262.077 +94.6009 -48.4541 262.714 +92.7869 -48.8763 265.003 +92.6212 -50.2082 272.225 +92.1798 -51.4568 278.994 +92.437 -53.175 288.31 +92.1556 -54.672 296.427 +92.4186 -56.5897 306.825 +92.4763 -58.4948 317.154 +92.3041 -60.3693 327.317 +91.8808 -62.195 337.216 +91.7142 -64.3222 348.75 +88.1805 -64.1483 347.807 +87.3786 -66.0138 357.921 +83.0069 -65.213 353.579 +82.2254 -67.272 364.743 +77.3016 -65.9624 357.643 +75.9193 -67.6819 366.966 +70.3322 -65.6274 355.827 +66.9898 -65.558 355.45 +61.8708 -63.643 345.067 +60.1764 -65.2233 353.636 +55.5655 -63.6321 345.008 +53.9061 -65.4217 354.711 +49.3508 -63.6905 345.325 +47.4332 -65.3486 354.315 +43.3611 -64.0531 347.291 +40.7984 -64.9482 352.144 +36.585 -63.1344 342.31 +34.4374 -64.8689 351.714 +30.7224 -63.6923 345.335 +28.261 -65.1308 353.134 +24.5682 -63.7255 345.514 +22.0263 -65.3189 354.154 +18.4432 -63.8298 346.08 +15.5983 -64.7989 351.334 +12.3684 -64.241 348.309 +9.42894 -65.3098 354.105 +6.18164 -64.2341 348.272 +3.15901 -65.6561 355.982 +2.13163e-14 -64.5522 349.997 +-3.15813 -65.6379 355.884 +-6.24098 -64.8508 351.616 +-9.49961 -65.7994 356.759 +-12.4521 -64.6761 350.669 +-15.9167 -66.1217 358.506 +-18.7572 -64.9166 351.973 +-22.2949 -66.1155 358.473 +-25.2239 -65.4263 354.736 +-28.7788 -66.3241 359.604 +-31.5068 -65.3184 354.151 +-35.3958 -66.6743 361.503 +-37.8393 -65.2989 354.046 +-41.8852 -66.6783 361.524 +-44.4945 -65.7274 356.368 +-48.4122 -66.6974 361.628 +-51.0904 -65.9356 357.497 +-55.1477 -66.9286 362.882 +-57.8338 -66.2296 359.091 +-62.52 -67.7635 367.408 +-64.0935 -65.9294 357.464 +-68.5388 -67.0737 363.668 +-71.1336 -66.3752 359.881 +-75.3611 -67.1844 364.268 +-77.9877 -66.5479 360.817 +-82.3769 -67.3959 365.415 +-85.1665 -66.9096 362.778 +-89.8298 -67.8656 367.962 +-92.0755 -66.9818 363.17 +-98.6247 -69.1688 375.028 +-99.4642 -67.3282 365.048 +-106.361 -69.5628 377.164 +-107.14 -67.7702 367.445 +-114.685 -70.2241 380.749 +-115.867 -68.7391 372.698 +-123.229 -70.8883 384.35 +-126.264 -70.4836 382.156 +-131.428 -71.2443 386.281 +-132.604 -69.8503 378.722 +-138.263 -70.8174 383.966 +-139.339 -69.4369 376.481 +-142.639 -69.1967 375.179 +-142.917 -67.529 366.137 +-144.182 -66.3888 359.955 +-143.474 -64.4091 349.221 +-143.583 -62.8727 340.89 +-143.633 -61.3741 332.766 +-143.231 -59.7472 323.944 +-143.334 -58.3914 316.593 +-143.401 -57.0731 309.446 +-143.563 -55.8412 302.766 +-143.317 -54.4986 295.487 +-143.347 -53.3079 289.031 +-143.453 -52.1861 282.949 +-141.963 -50.535 273.997 +-141.295 -49.2304 266.923 +-143.564 -48.9728 265.527 +-146.535 -48.951 265.409 +-148.643 -48.6378 263.71 +-112.026 -35.9138 194.722 +-108.95 -34.2272 185.577 +-109.172 -33.6158 182.262 +-109.755 -33.1308 179.632 +-107.635 -31.8579 172.731 +-98.8299 -28.6868 155.538 +-98.7557 -28.1162 152.444 +-98.6341 -27.5481 149.364 +-98.7967 -27.0735 146.79 +-98.4739 -26.48 143.572 +-98.8379 -26.0839 141.425 +-98.4831 -25.5104 138.315 +-98.4872 -25.0435 135.784 +-98.5716 -24.6078 133.422 +-99.2759 -24.3343 131.939 +-99.2995 -23.901 129.589 +-99.2281 -23.4552 127.172 +-98.6905 -22.9112 124.223 +-98.6686 -22.4986 121.986 +-98.6145 -22.088 119.759 +-98.5285 -21.6791 117.543 +-98.9893 -21.3973 116.014 +-98.9109 -21.0053 113.889 +-98.7369 -20.6016 111.7 +-99.128 -20.3222 110.186 +-99.1652 -19.9758 108.307 +-98.9064 -19.5773 106.147 +-99.0944 -19.2743 104.503 +-98.8477 -18.893 102.436 +-99.1277 -18.6184 100.947 +-99.3889 -18.3443 99.4615 +-98.7828 -17.917 97.1443 +-99.1418 -17.6709 95.8104 +-99.197 -17.3748 94.2045 +-98.796 -17.0048 92.1989 +-98.9522 -16.7365 90.7439 +-99.0901 -16.4689 89.2933 +-99.2841 -16.2144 87.913 +-99.3864 -15.9485 86.4713 +-99.4707 -15.6834 85.0344 +-99.0049 -15.3369 83.1556 +-99.2794 -15.1097 81.9236 +-99.1538 -14.8251 80.3804 +-99.1638 -14.5648 78.9694 +-99.8608 -14.4073 78.1154 +-99.841 -14.1482 76.7105 +-100.518 -13.9897 75.8508 +-100.548 -13.7427 74.5118 +-103.376 -13.8743 75.2254 +-103.878 -13.6888 74.2198 +-109.906 -14.2191 77.0946 +-110.749 -14.0654 76.2613 +-113.977 -14.208 77.0347 +-114.407 -13.9966 75.8886 +-117.995 -14.1654 76.8037 +-119.343 -14.0571 76.2166 +-128.449 -14.8422 80.4734 +-130.091 -14.7441 79.9413 +-162.002 -18.0062 97.6281 +-162.347 -17.693 95.9302 +-164.054 -17.5275 95.0325 +-157.01 -16.4419 89.1464 +-164.497 -16.8805 91.5244 +-164.079 -16.4963 89.4418 +-165.833 -16.3312 88.5465 +-168.025 -16.2043 87.8586 +-172.878 -16.323 88.5021 +-173.746 -16.057 87.0597 +-180.061 -16.2832 88.286 +-183.264 -16.2122 87.9013 +-529.637 -45.8203 248.434 +-532.365 -45.0262 244.128 +-380.637 -31.4628 170.589 +-379.487 -30.6452 166.156 +-379.388 -29.9204 162.226 +-378.143 -29.1132 157.85 +-378.513 -28.4373 154.184 +-379.867 -27.8371 150.93 +-379.703 -27.1284 147.088 +-379.5 -26.4225 143.261 +-380.476 -25.8017 139.895 +-379.918 -25.0807 135.985 +-379.413 -24.3693 132.128 +-380.855 -23.7857 128.964 +-380.183 -23.0725 125.097 +-380.423 -22.4195 121.557 +-380.152 -21.7401 117.873 +-379.653 -21.0528 114.147 +-380.172 -20.4253 110.744 +-380.275 -19.7778 107.233 +-380.345 -19.1315 103.729 +-379.995 -18.4677 100.13 +-379.514 -17.802 96.5211 +-380.356 -17.2006 93.2605 +-379.419 -16.5217 89.5795 +-379.03 -15.8716 86.0546 +-379.779 -15.2711 82.7985 +-379.326 -14.6241 79.2909 +-379.133 -13.9906 75.8561 +-380.381 -13.4108 72.7121 +-379.831 -12.7685 69.23 +-378.856 -12.1165 65.6945 +-380.114 -11.5373 62.5542 +-378.877 -10.8841 59.013 +-379.386 -10.284 55.7593 +-379.57 -9.67558 52.4602 +-379.426 -9.06024 49.1239 +-381.435 -8.4947 46.0576 +-379.246 -7.83726 42.493 +-381.2 -7.26703 39.4013 +-379.644 -6.63036 35.9493 +-378.753 -6.01023 32.587 +-379.925 -5.42333 29.4049 +-378.376 -4.79899 26.0197 +-146.127 -1.62106 8.78927 +-378.68 -3.59958 19.5166 +-379.538 -3.0056 16.2961 +-380.768 -2.41172 13.0762 +-146.75 -0.696993 3.77904 +-146.078 -0.462476 2.50751 +-145.594 -0.230454 1.24951 +95.8 -1.77636e-15 -1.7053e-13 +94.9964 -0.143007 0.816593 +95.7854 -0.288412 1.64688 +95.8671 -0.433043 2.47274 +95.7416 -0.576737 3.29325 +95.9086 -0.722344 4.12469 +95.7686 -0.865789 4.94378 +95.7211 -1.00992 5.76679 +95.6664 -1.15398 6.58937 +95.5047 -1.29659 7.4037 +96.4316 -1.45534 8.31021 +96.3544 -1.60045 9.13879 +96.2697 -1.74544 9.96672 +96.1778 -1.89029 10.7938 +96.0785 -2.035 11.6202 +95.9719 -2.17954 12.4455 +96.7492 -2.34554 13.3934 +95.6378 -2.4656 14.0789 +95.5095 -2.60947 14.9004 +95.2752 -2.7503 15.7046 +94.9355 -2.88763 16.4888 +95.769 -3.06185 17.4836 +95.6105 -3.20591 18.3062 +95.6407 -3.35659 19.1666 +96.1519 -3.52554 20.1313 +95.0912 -3.63654 20.7652 +95.7806 -3.81448 21.7812 +95.584 -3.95852 22.6037 +95.5741 -4.11059 23.4721 +95.1689 -4.24568 24.2434 +95.8198 -4.42894 25.2899 +95.7849 -4.58225 26.1653 +95.3572 -4.71675 26.9333 +95.9779 -4.9042 28.0037 +95.7261 -5.0485 28.8277 +96.3254 -5.2391 29.916 +96.0567 -5.3839 30.7428 +96.5393 -5.57208 31.8174 +95.4974 -5.67227 32.3895 +95.9609 -5.86186 33.4721 +96.5064 -6.05921 34.5989 +96.1962 -6.20424 35.4271 +96.9056 -6.41682 36.641 +97.3217 -6.61302 37.7613 +96.9834 -6.75927 38.5964 +96.7302 -6.91162 39.4664 +96.3769 -7.05695 40.2962 +96.8415 -7.26368 41.4767 +96.6531 -7.42321 42.3876 +96.2739 -7.56842 43.2168 +96.703 -7.77868 44.4174 +96.3058 -7.92395 45.2469 +96.7102 -8.13668 46.4616 +96.116 -8.26655 47.2032 +96.496 -8.48142 48.4301 +96.0633 -8.62636 49.2578 +96.4179 -8.84352 50.4978 +96.7578 -9.06241 51.7477 +96.2082 -9.19936 52.5297 +96.6095 -9.42877 53.8396 +96.735 -9.63422 55.0128 +96.3301 -9.78822 55.8922 +96.517 -10.0039 57.1239 +96.0073 -10.1488 57.9513 +96.1687 -10.3661 59.192 +96.3153 -10.5846 60.4398 +96.4471 -10.8044 61.6946 +95.9803 -10.9587 62.5756 +96.1684 -11.1896 63.894 +96.2579 -11.4121 65.1645 +96.3323 -11.6357 66.4414 +95.74 -11.7803 67.267 +95.7876 -12.005 68.5505 +95.9805 -12.2514 69.9571 +95.996 -12.4785 71.2538 +95.9958 -12.7065 72.5559 +96.0585 -12.9461 73.9241 +96.026 -13.1761 75.2375 +96.0552 -13.4179 76.618 +96.1444 -13.6717 78.0672 +95.9854 -13.8935 79.3339 +95.9632 -14.1383 80.7317 +95.9991 -14.3954 82.1997 +95.8663 -14.6308 83.544 +95.7914 -14.8784 84.9579 +96.3621 -15.2318 86.9759 +95.5148 -15.3645 87.7338 +95.967 -15.7096 89.7041 +95.7441 -15.9493 91.073 +95.6469 -16.2138 92.5829 +96.0251 -16.5645 94.5856 +95.8844 -16.8314 96.11 +95.6545 -17.0868 97.5682 +96.0255 -17.4554 99.6731 +95.7526 -17.7128 101.143 +96.0014 -18.0725 103.196 +95.8195 -18.3573 104.823 +95.4173 -18.6043 106.233 +95.6534 -18.9816 108.387 +95.8585 -19.3609 110.553 +95.3897 -19.6102 111.977 +95.3481 -19.9527 113.933 +95.5308 -20.3502 116.203 +95.058 -20.6146 117.713 +95.5507 -21.0968 120.466 +94.845 -21.3219 121.751 +94.9664 -21.7395 124.136 +95.0527 -22.1589 126.53 +95.3975 -22.65 129.335 +95.1772 -23.0176 131.434 +95.0416 -23.4142 133.698 +94.873 -23.8123 135.972 +94.7832 -24.2403 138.415 +95.0987 -24.7849 141.525 +94.8761 -25.2018 143.906 +94.6722 -25.6348 146.378 +94.8555 -26.1859 149.525 +94.4155 -26.5777 151.762 +94.6125 -27.1624 155.102 +94.6559 -27.72 158.285 +94.7 -28.2946 161.566 +94.6931 -28.8714 164.86 +94.1985 -29.3148 167.391 +94.382 -29.986 171.224 +94.176 -30.5533 174.464 +94.3352 -31.2601 178.499 +94.4754 -31.9849 182.638 +93.4784 -32.3422 184.678 +116.125 -41.0711 234.522 +117.271 -42.4119 242.178 +117.192 -43.3529 247.552 +116.902 -44.2498 252.673 +117.018 -45.3381 258.887 +115.996 -46.0188 262.774 +113.312 -46.0486 262.944 +110.596 -46.0581 262.998 +107.887 -46.0629 263.026 +104.893 -45.9348 262.294 +102.207 -45.9298 262.266 +99.634 -45.9687 262.488 +96.9627 -45.9549 262.409 +94.2671 -45.9203 262.211 +93.0474 -46.6149 266.178 +92.7799 -47.833 273.133 +92.0871 -48.8895 279.166 +92.3167 -50.5069 288.402 +92.4479 -52.1617 297.851 +92.4186 -53.8205 307.323 +92.4763 -55.6323 317.668 +92.4645 -57.5148 328.418 +92.1396 -59.3181 338.715 +92.1649 -61.4753 351.033 +90.6239 -62.6997 358.024 +88.966 -63.9239 365.015 +85.2789 -63.7193 363.847 +83.4158 -64.9061 370.624 +79.9213 -64.8606 370.363 +77.4345 -65.6546 374.897 +73.4996 -65.2268 372.455 +70.4887 -65.6063 374.622 +64.3193 -62.9239 359.305 +61.5297 -63.4266 362.175 +57.521 -62.6479 357.729 +54.8669 -63.3293 361.62 +51.1461 -62.7775 358.469 +48.4905 -63.5361 362.801 +44.5432 -62.5794 357.338 +41.7946 -63.2782 361.328 +38.1111 -62.5496 357.167 +35.3575 -63.3429 361.697 +31.716 -62.5344 357.081 +29.0063 -63.5772 363.035 +25.482 -62.8613 358.947 +22.5391 -63.5687 362.987 +19.0137 -62.5839 357.363 +16.0694 -63.489 362.532 +12.7174 -62.8213 358.719 +9.66191 -63.6486 363.443 +6.36664 -62.9189 359.276 +3.22969 -63.8404 364.538 +2.13163e-14 -63.1183 360.415 +-3.23144 -63.8749 364.735 +-6.37885 -63.0397 359.966 +-9.74044 -64.1658 366.396 +-12.836 -63.4075 362.066 +-16.27 -64.2819 367.059 +-19.3329 -63.6348 363.364 +-22.8077 -64.3264 367.313 +-25.8308 -63.7218 363.86 +-29.532 -64.7295 369.615 +-32.4655 -64.0124 365.52 +-36.4214 -65.2489 372.581 +-39.0205 -64.0421 365.69 +-43.2097 -65.4205 373.561 +-45.5426 -63.9833 365.354 +-50.344 -65.9646 376.668 +-52.3013 -64.1953 366.564 +-56.951 -65.7348 375.355 +-59.273 -64.5561 368.625 +-63.989 -65.9617 376.651 +-66.1426 -64.7076 369.49 +-71.163 -66.2339 378.205 +-73.7668 -65.4638 373.808 +-78.212 -66.3138 378.661 +-81.3766 -66.0417 377.108 +-85.8832 -66.8261 381.587 +-88.1808 -65.8875 376.227 +-93.6349 -67.2787 384.171 +-95.8978 -66.3484 378.859 +-100.903 -67.3037 384.314 +-103.553 -66.6662 380.674 +-108.819 -67.6879 386.508 +-112.019 -67.389 384.801 +-116.958 -68.1109 388.923 +-118.674 -66.9589 382.345 +-126.687 -69.3113 395.778 +-130.282 -69.1671 394.954 +-134.061 -69.1157 394.661 +-135.957 -68.1121 388.93 +-140.967 -68.6691 392.111 +-141.938 -67.2708 384.126 +-143.445 -66.1821 377.91 +-143.849 -64.6431 369.121 +-143.962 -63.0438 359.989 +-143.849 -61.4173 350.702 +-143.162 -59.6205 340.442 +-143.125 -58.1643 332.126 +-143.231 -56.8234 324.47 +-143.09 -55.4394 316.567 +-143.359 -54.2645 309.858 +-143.183 -52.9678 302.454 +-143.231 -51.8005 295.788 +-143.347 -50.6993 289.5 +-143.765 -49.7405 284.025 +-142.008 -48.0774 274.529 +-141.249 -46.8061 267.269 +-143.377 -46.5154 265.61 +-146.726 -46.6161 266.185 +-148.934 -46.3483 264.655 +-242.962 -74.0781 422.996 +-108.9 -32.5373 185.792 +-109.172 -31.9708 182.558 +-110.218 -31.6427 180.684 +-107.635 -30.2989 173.011 +-98.8299 -27.283 155.79 +-98.7019 -26.7258 152.608 +-98.5252 -26.1713 149.442 +-98.9071 -25.7773 147.192 +-98.6416 -25.227 144.05 +-98.6113 -24.7505 141.329 +-98.7125 -24.3186 138.863 +-98.7776 -23.8882 136.405 +-98.9243 -23.4875 134.117 +-99.157 -23.1157 131.994 +-98.7578 -22.6074 129.091 +-98.802 -22.2115 126.831 +-98.6905 -21.7901 124.424 +-98.6686 -21.3976 122.184 +-98.6145 -21.0071 119.953 +-98.4649 -20.6048 117.656 +-98.4751 -20.2444 115.599 +-98.9109 -19.9774 114.074 +-98.7369 -19.5934 111.881 +-98.5316 -19.2115 109.7 +-98.4291 -18.8574 107.678 +-98.9064 -18.6193 106.319 +-98.5488 -18.2301 104.097 +-98.8477 -17.9685 102.603 +-99.1972 -17.7197 101.182 +-99.3889 -17.4466 99.6228 +-98.7828 -17.0402 97.302 +-99.1418 -16.8062 95.9659 +-99.197 -16.5245 94.3574 +-98.796 -16.1727 92.3485 +-98.9522 -15.9175 90.8911 +-98.9426 -15.6397 89.3051 +-99.953 -15.5248 88.649 +-99.1617 -15.1337 86.4157 +-99.6217 -14.9386 85.3016 +-99.6892 -14.6872 83.8662 +-99.2028 -14.3592 81.9932 +-99.9254 -14.2093 81.1373 +-100.019 -13.9715 79.7793 +-100.722 -13.8204 78.9166 +-100.156 -13.4984 77.0776 +-102.184 -13.5256 77.2331 +-102.864 -13.3713 76.3518 +-107.636 -13.7392 78.4528 +-108.489 -13.5969 77.6404 +-114.872 -14.1343 80.7089 +-115.992 -14.0103 80.0009 +-118.427 -14.0404 80.1725 +-117.972 -13.7265 78.3803 +-124.999 -14.272 81.4951 +-125.717 -14.0833 80.4175 +-150.883 -16.5814 94.6819 +-160.281 -17.2769 98.6536 +-163.11 -17.2422 98.4556 +-162.605 -16.8539 96.2381 +-163.451 -16.6085 94.8367 +-156.751 -15.6114 89.1433 +-165.89 -16.1903 92.4489 +-167.227 -15.9901 91.306 +-168.381 -15.7707 90.0531 +-170.85 -15.6705 89.4809 +-176.16 -15.819 90.3286 +-177.488 -15.6002 89.0792 +-2932.25 -252.192 1440.05 +-526.514 -44.2981 252.948 +-529.637 -43.578 248.837 +-2969.52 -238.865 1363.95 +-379.545 -29.8374 170.376 +-381.497 -29.2999 167.307 +-378.838 -28.415 162.254 +-379.892 -27.8167 158.838 +-379.622 -27.125 154.888 +-378.94 -26.4103 150.807 +-381.006 -25.8894 147.832 +-380.994 -25.2284 144.058 +-379.821 -24.4968 139.88 +-379.918 -23.8534 136.206 +-379.13 -23.1595 132.244 +-379.909 -22.5655 128.852 +-379.993 -21.9325 125.238 +-380.803 -21.3436 121.875 +-381.01 -20.723 118.331 +-379.94 -20.0376 114.418 +-380.172 -19.4258 110.924 +-379.891 -18.7909 107.299 +-380.345 -18.1953 103.898 +-379.512 -17.5417 100.166 +-379.804 -16.9438 96.7516 +-378.609 -16.2838 92.9828 +-379.516 -15.7173 89.7478 +-379.322 -15.1066 86.2606 +-379.486 -14.5126 82.8689 +-378.445 -13.8762 79.2351 +-379.133 -13.306 75.9792 +-379.497 -12.7249 72.661 +-379.536 -12.1343 69.2884 +-380.727 -11.5804 66.126 +-379.128 -10.9442 62.4932 +-379.174 -10.3596 59.1549 +-379.98 -9.79609 55.9371 +-380.659 -9.22851 52.6961 +-380.021 -8.63038 49.2807 +-380.145 -8.05169 45.9763 +-379.942 -7.46741 42.64 +-380.305 -6.89518 39.3725 +-379.744 -6.30756 36.0171 +-379.949 -5.73416 32.7429 +-379.526 -5.15252 29.4216 +-381.668 -4.60386 26.2887 +-145.628 -1.53647 8.77346 +-379.08 -3.42704 19.5689 +-379.139 -2.85552 16.3054 +-380.268 -2.2907 13.0802 +-146.75 -0.662886 3.78517 +-145.578 -0.438339 2.50298 +-145.894 -0.219629 1.25411 +96 1.77636e-15 -2.27374e-13 +95.9963 -0.137062 0.826459 +95.8854 -0.27383 1.65114 +95.8671 -0.410717 2.47654 +95.8416 -0.547574 3.30176 +95.9086 -0.685103 4.13104 +95.8684 -0.822009 4.95655 +95.8209 -0.958853 5.78169 +95.7661 -1.09562 6.60639 +95.7041 -1.23231 7.43058 +96.5313 -1.38174 8.33159 +96.4539 -1.5195 9.16231 +96.4686 -1.65887 10.0027 +96.4758 -1.79838 10.8439 +96.277 -1.93406 11.662 +96.071 -2.06932 12.4776 +95.957 -2.20641 13.3042 +95.8356 -2.34331 14.1297 +95.707 -2.48006 14.9542 +96.3601 -2.63822 15.9079 +96.0188 -2.77 16.7026 +95.8674 -2.90699 17.5286 +95.7087 -3.04375 18.3532 +95.5427 -3.18028 19.1765 +95.3694 -3.31657 19.9983 +95.1889 -3.45261 20.8185 +96.0729 -3.62887 21.8813 +95.6812 -3.75825 22.6615 +95.6712 -3.90263 23.5321 +96.1371 -4.06775 24.5277 +95.9164 -4.20485 25.3544 +95.6885 -4.34164 26.1792 +95.4533 -4.47809 27.002 +96.0737 -4.65602 28.0748 +96.778 -4.84084 29.1893 +96.5162 -4.97883 30.0213 +96.2469 -5.11644 30.8511 +95.9704 -5.25366 31.6785 +96.5374 -5.43842 32.7926 +96.2437 -5.57605 33.6225 +96.6004 -5.75242 34.6859 +96.2899 -5.89011 35.5162 +96.999 -6.09186 36.7327 +96.5773 -6.22412 37.5302 +96.2417 -6.36178 38.3602 +96.8226 -6.56155 39.5648 +96.4689 -6.69953 40.3968 +96.9332 -6.89573 41.5799 +96.7445 -7.04717 42.493 +96.3649 -7.18502 43.3242 +96.7937 -7.38456 44.5274 +96.3961 -7.52248 45.3591 +96.8001 -7.72438 46.5764 +96.2054 -7.84769 47.32 +96.5851 -8.05159 48.5495 +96.152 -8.18917 49.379 +96.5062 -8.39527 50.6218 +96.8456 -8.603 51.8744 +96.3831 -8.74094 52.7061 +96.6965 -8.95073 53.9711 +96.2154 -9.08844 54.8015 +96.4163 -9.29189 56.0282 +96.6028 -9.49661 57.2627 +96.1778 -9.64272 58.1436 +96.3383 -9.84903 59.3876 +96.3996 -10.0477 60.5858 +96.531 -10.2563 61.8433 +96.0636 -10.4027 62.7263 +96.1684 -10.6127 63.9923 +96.3404 -10.833 65.3207 +96.4961 -11.0546 66.6569 +96.4727 -11.2584 67.8861 +95.8685 -11.3957 68.7141 +95.257 -11.5322 69.5367 +96.0759 -11.845 71.4228 +96.0751 -12.0614 72.7276 +96.1373 -12.2887 74.0986 +96.1043 -12.507 75.4147 +96.2107 -12.7467 76.8601 +96.2216 -12.9773 78.2502 +96.062 -13.1877 79.5195 +96.0393 -13.42 80.92 +95.9991 -13.6532 82.3262 +95.8663 -13.8765 83.6725 +95.8657 -14.1223 85.1547 +96.4359 -14.4576 87.1765 +96.3193 -14.6952 88.6089 +96.0396 -14.911 89.91 +95.888 -15.1498 91.3503 +96.4315 -15.504 93.486 +96.1665 -15.7336 94.8707 +95.9545 -15.9754 96.3283 +95.7239 -16.2177 97.7893 +95.5436 -16.4724 99.3253 +95.889 -16.8235 101.442 +96.1365 -17.165 103.501 +95.8195 -17.4109 104.984 +95.4835 -17.6574 106.471 +95.719 -18.0152 108.628 +95.8585 -18.3627 110.724 +95.454 -18.6118 112.225 +95.4753 -18.9493 114.26 +95.5938 -19.3136 116.457 +95.6182 -19.6672 118.589 +95.0581 -19.9061 120.03 +94.9668 -20.2487 122.095 +95.0868 -20.6448 124.484 +95.4691 -21.1086 127.281 +95.3975 -21.4823 129.534 +95.2353 -21.8442 131.716 +95.1563 -22.2339 134.066 +95.043 -22.6251 136.425 +94.7832 -22.9906 138.629 +94.7124 -23.4115 141.167 +94.9306 -23.9163 144.21 +94.7259 -24.3269 146.686 +94.9085 -24.8497 149.838 +94.4677 -25.2214 152.08 +94.664 -25.776 155.424 +94.7574 -26.319 158.698 +94.25 -26.7084 161.046 +94.2499 -27.2549 164.341 +94.6833 -27.9464 168.511 +94.5252 -28.4832 171.748 +94.2699 -29.0071 174.907 +94.3814 -29.663 178.862 +94.4754 -30.3359 182.92 +93.5677 -30.7041 185.139 +116.694 -39.1448 236.035 +116.798 -40.0629 241.571 +117.277 -41.1475 248.111 +116.943 -41.9834 253.151 +117.059 -43.0156 259.375 +116.036 -43.6612 263.268 +113.351 -43.6896 263.44 +110.634 -43.6988 263.495 +107.587 -43.5668 262.699 +104.929 -43.5818 262.79 +102.242 -43.5771 262.761 +99.634 -43.5988 262.892 +96.9969 -43.6011 262.906 +94.3338 -43.5836 262.8 +93.0799 -44.2273 266.681 +93.0337 -45.491 274.301 +92.3652 -46.5091 280.441 +92.1062 -47.7939 288.188 +92.2725 -49.3786 297.743 +92.3334 -50.9987 307.512 +92.2558 -52.6384 317.399 +92.3843 -54.5024 328.638 +92.1655 -56.2757 339.331 +92.1148 -58.2743 351.383 +91.2529 -59.88 361.064 +90.7169 -61.8215 372.771 +86.5162 -61.3111 369.693 +84.3465 -62.2469 375.336 +81.6261 -62.829 378.846 +78.9896 -63.5203 383.015 +75.1787 -63.2773 381.55 +72.8213 -64.2832 387.615 +65.6564 -60.9205 367.339 +62.8501 -61.4477 370.517 +58.8506 -60.7916 366.561 +56.1232 -61.4397 370.469 +52.2873 -60.8695 367.031 +49.7174 -61.7852 372.552 +45.6279 -60.7983 366.602 +42.9719 -61.7065 372.078 +39.5222 -61.5215 370.962 +36.6993 -62.3572 376.001 +32.6398 -61.0382 368.048 +30.0263 -62.4199 376.379 +26.1447 -61.171 368.849 +23.2351 -62.1532 374.771 +19.626 -61.269 369.44 +16.5885 -62.161 374.818 +13.1571 -61.6427 371.693 +10.031 -62.6733 377.907 +6.55163 -61.4092 370.285 +3.34837 -62.7741 378.515 +1.86517e-14 -61.3531 369.947 +-3.34401 -62.6923 378.022 +-6.54814 -61.3765 370.088 +-10.0755 -62.9513 379.583 +-13.2583 -62.117 374.553 +-16.7978 -62.9455 379.549 +-20.0342 -62.5434 377.124 +-23.6319 -63.2147 381.172 +-26.7307 -62.5421 377.116 +-30.4343 -63.268 381.493 +-33.4417 -62.5377 377.089 +-37.2648 -63.3181 381.795 +-40.4421 -62.9534 379.596 +-44.4549 -63.836 384.919 +-47.4559 -63.2341 381.289 +-51.5448 -64.0563 386.246 +-54.4028 -63.3321 381.88 +-58.636 -64.1906 387.056 +-61.9011 -63.9427 385.562 +-65.1608 -63.7068 384.139 +-68.3827 -63.4501 382.591 +-72.5844 -64.0739 386.353 +-75.5413 -63.5825 383.389 +-79.7671 -64.1456 386.785 +-82.5825 -63.5651 383.285 +-88.3074 -65.1699 392.962 +-91.0827 -64.5471 389.206 +-95.9927 -65.417 394.451 +-98.8493 -64.8647 391.121 +-103.632 -65.5605 395.317 +-106.323 -64.9201 391.455 +-112.213 -66.2005 399.176 +-114.968 -65.5975 395.539 +-120.593 -66.6074 401.629 +-123.439 -66.0572 398.312 +-130.236 -67.5792 407.489 +-132.754 -66.8461 403.069 +-137.615 -67.2901 405.746 +-139.115 -66.101 398.576 +-142.702 -65.9307 397.549 +-143.375 -64.4484 388.611 +-143.97 -63 379.877 +-144.458 -61.5701 371.255 +-144.475 -60.0068 361.829 +-143.549 -58.1296 350.51 +-143.391 -56.6376 341.513 +-143.203 -55.1957 332.819 +-143.31 -53.9238 325.15 +-143.171 -52.6112 317.235 +-143.318 -51.452 310.245 +-143.225 -50.252 303.009 +-143.188 -49.1152 296.155 +-143.391 -48.1002 290.035 +-143.408 -47.059 283.756 +-142.235 -45.6716 275.391 +-141.757 -44.5525 268.643 +-143.424 -44.1317 266.105 +-146.058 -44.0116 265.381 +-148.061 -43.7013 263.51 +-250.397 -72.4091 436.612 +-109.4 -31.0015 186.933 +-109.222 -30.3368 182.924 +-110.218 -30.0113 180.962 +-109.045 -29.1135 175.548 +-98.8829 -25.8904 156.114 +-98.5407 -25.3066 152.594 +-99.0698 -24.9591 150.498 +-98.9071 -24.4483 147.418 +-98.5298 -23.8993 144.108 +-98.3281 -23.4071 141.14 +-98.6551 -23.0514 138.996 +-98.8937 -22.6833 136.776 +-99.0418 -22.3029 134.482 +-99.2164 -21.9371 132.276 +-98.6977 -21.4288 129.211 +-98.7411 -21.0534 126.948 +-98.7521 -20.6796 124.694 +-98.7308 -20.3074 122.45 +-98.6145 -19.9241 120.138 +-98.5921 -19.5679 117.99 +-99.1178 -19.3261 116.532 +-98.9759 -18.9599 114.324 +-98.8025 -18.5956 112.127 +-99.1942 -18.3436 110.608 +-99.0982 -18.0067 108.577 +-98.974 -17.6715 106.556 +-99.299 -17.4218 105.05 +-98.9166 -17.0539 102.831 +-99.1972 -16.8062 101.338 +-99.3188 -16.5356 99.7061 +-99.6313 -16.3005 98.2888 +-99.2131 -15.9512 96.1828 +-99.4128 -15.7067 94.7082 +-98.9411 -15.3614 92.6264 +-99.0984 -15.1192 91.1656 +-99.2375 -14.8776 89.7091 +-99.3585 -14.6369 88.2573 +-99.4613 -14.3969 86.8102 +-99.5462 -14.1577 85.3682 +-99.233 -13.8663 83.611 +-99.4326 -13.6505 82.3096 +-100.003 -13.4872 81.3249 +-100.796 -13.3542 80.5231 +-101.739 -13.2403 79.8364 +-102.441 -13.0946 78.9575 +-105.516 -13.2466 79.8743 +-106.298 -13.1053 79.0223 +-112.862 -13.6634 82.3878 +-114.233 -13.5787 81.877 +-118.861 -13.8711 83.6402 +-120.497 -13.8041 83.2362 +-125.514 -14.1135 85.1013 +-125.019 -13.7965 83.19 +-136.757 -14.8095 89.298 +-138.213 -14.6849 88.5471 +-161.931 -16.8782 101.772 +-161.468 -16.5076 99.5375 +-163.195 -16.3618 98.6585 +-163.719 -16.0945 97.0468 +-165.433 -15.9432 96.1343 +-157.963 -14.9211 89.9711 +-169.023 -15.6457 94.3401 +-169.414 -15.3641 92.6422 +-171.721 -15.2543 91.9805 +-175.53 -15.2697 92.0733 +-182.281 -15.5247 93.6107 +-2919.38 -243.367 1467.46 +-523.895 -42.7352 257.684 +-527.502 -42.0932 253.813 +-381.252 -29.7519 179.398 +-380.377 -29.0197 174.983 +-380.455 -28.3669 171.047 +-378.939 -27.603 166.441 +-378.471 -26.924 162.347 +-379.432 -26.3506 158.889 +-379.437 -25.714 155.05 +-380.794 -25.1713 151.778 +-378.959 -24.4228 147.265 +-380.247 -23.8808 143.996 +-379.446 -23.211 139.957 +-380.012 -22.6292 136.449 +-380.356 -22.0366 132.876 +-380.477 -21.4342 129.244 +-380.088 -20.8071 125.462 +-379.947 -20.1978 121.789 +-379.389 -19.571 118.009 +-379.844 -18.9998 114.565 +-380.364 -18.4336 111.151 +-380.467 -17.8492 107.627 +-380.152 -17.2486 104.005 +-378.836 -16.6077 100.141 +-380.192 -16.0867 96.9993 +-380.162 -15.5076 93.5078 +-380.975 -14.9643 90.2315 +-380.394 -14.3682 86.6375 +-381.146 -13.8246 83.3594 +-379.228 -13.188 79.5212 +-378.937 -12.6135 76.0568 +-380.871 -12.1126 73.0363 +-379.831 -11.5176 69.449 +-379.053 -10.9351 65.9366 +-379.917 -10.4016 62.7196 +-379.371 -9.83065 59.2769 +-380.376 -9.30073 56.0815 +-379.768 -8.73225 52.6537 +-379.823 -8.18117 49.3308 +-380.641 -7.64655 46.1071 +-380.637 -7.0954 42.7838 +-380.802 -6.54824 39.4846 +-380.142 -5.98864 36.1103 +-377.956 -5.41002 32.6213 +-379.227 -4.88302 29.4436 +-380.97 -4.35853 26.281 +-147.624 -1.47723 8.90742 +-379.479 -3.25379 19.6197 +-380.238 -2.71614 16.3778 +-379.069 -2.16575 13.059 +-146.05 -0.625712 3.77292 +-145.978 -0.416882 2.51372 +-146.694 -0.209448 1.26293 +95.9 3.55271e-15 -1.7053e-13 +95.9963 -0.129601 0.827662 +95.8854 -0.258923 1.65354 +95.8671 -0.388359 2.48015 +95.8416 -0.517765 3.30657 +95.9086 -0.647807 4.13705 +95.8684 -0.77726 4.96376 +96.8191 -0.916099 5.85042 +95.7661 -1.03598 6.616 +96.701 -1.17736 7.51891 +96.6309 -1.30787 8.35233 +96.5534 -1.43827 9.18511 +96.4686 -1.56857 10.0172 +96.3765 -1.69873 10.8485 +96.277 -1.82878 11.679 +96.071 -1.95667 12.4957 +95.957 -2.08629 13.3235 +95.9345 -2.21804 14.1649 +95.707 -2.34505 14.976 +96.3601 -2.4946 15.9311 +96.2157 -2.62458 16.7612 +95.8674 -2.74874 17.5541 +95.7087 -2.87806 18.3799 +94.6607 -2.97939 19.027 +95.3694 -3.13602 20.0274 +95.1889 -3.26466 20.8488 +95.196 -3.39999 21.7131 +95.6812 -3.55365 22.6945 +95.6712 -3.69018 23.5663 +96.1371 -3.8463 24.5634 +95.9164 -3.97594 25.3913 +95.6885 -4.10529 26.2173 +96.3184 -4.27269 27.2864 +96.0737 -4.40255 28.1157 +95.8217 -4.53208 28.9429 +96.5162 -4.70779 30.065 +96.2469 -4.83791 30.896 +95.9704 -4.96766 31.7246 +96.3483 -5.13229 32.776 +96.0552 -5.26216 33.6054 +96.6004 -5.43927 34.7364 +96.2899 -5.56946 35.5679 +95.9721 -5.69924 36.3967 +96.5773 -5.88529 37.5848 +97.0761 -6.0676 38.7491 +96.7302 -6.19844 39.5846 +96.4689 -6.33482 40.4556 +96.1079 -6.46482 41.2858 +95.7396 -6.59432 42.1128 +96.3649 -6.79388 43.3873 +96.7937 -6.98256 44.5922 +96.2156 -7.09965 45.34 +96.8001 -7.30387 46.6442 +96.2054 -7.42047 47.3888 +96.5851 -7.61328 48.6201 +96.152 -7.74336 49.4509 +96.5062 -7.93824 50.6955 +96.8456 -8.13467 51.9499 +96.3831 -8.2651 52.7828 +96.6095 -8.45584 54.001 +96.9948 -8.6633 55.3258 +96.4163 -8.78605 56.1098 +96.6028 -8.97963 57.346 +96.8599 -9.18245 58.6412 +96.3383 -9.31286 59.4741 +96.3996 -9.50075 60.674 +96.6148 -9.70636 61.9871 +96.8141 -9.91327 63.3085 +96.2513 -10.0436 64.1407 +96.3404 -10.2433 65.4158 +95.7589 -10.3729 66.2439 +96.5541 -10.6545 68.0423 +95.9494 -10.7845 68.8721 +95.9805 -10.9872 70.1668 +96.0759 -11.2001 71.5267 +96.0751 -11.4048 72.8335 +96.1373 -11.6198 74.2065 +96.1043 -11.8261 75.5245 +96.2107 -12.0528 76.972 +96.1444 -12.2609 78.3012 +96.1386 -12.4798 79.6986 +96.0393 -12.6895 81.0378 +96.0745 -12.9201 82.5109 +95.9412 -13.1313 83.8597 +95.8657 -13.3535 85.2786 +95.7723 -13.5765 86.7027 +96.3193 -13.8952 88.7379 +96.1121 -14.1099 90.109 +95.888 -14.3251 91.4832 +95.7895 -14.5624 92.9989 +96.1665 -14.8771 95.0088 +95.9545 -15.1057 96.4685 +95.7239 -15.3348 97.9317 +96.1631 -15.6767 100.115 +95.8208 -15.8964 101.518 +95.5285 -16.1278 102.996 +95.8195 -16.4631 105.137 +95.351 -16.673 106.478 +95.719 -17.0345 108.786 +95.274 -17.2573 110.209 +95.3897 -17.5867 112.312 +95.4753 -17.9177 114.427 +95.5308 -18.2503 116.551 +95.556 -18.5843 118.684 +95.0581 -18.8224 120.204 +95.0277 -19.1586 122.351 +95.0266 -19.5087 124.587 +94.7553 -19.8102 126.512 +94.8685 -20.2002 129.003 +95.3514 -20.6802 132.069 +95.2137 -21.0362 134.342 +95.043 -21.3934 136.623 +94.895 -21.7647 138.994 +95.1539 -22.2402 142.031 +94.9306 -22.6143 144.42 +94.6185 -22.9765 146.733 +94.8555 -23.4839 149.974 +94.938 -23.9672 153.06 +94.664 -24.3728 155.65 +94.8082 -24.8996 159.014 +94.3 -25.2677 161.366 +94.7915 -25.9192 165.526 +94.247 -26.3033 167.979 +94.4774 -26.919 171.911 +94.2699 -27.428 175.162 +94.3352 -28.0344 179.034 +94.4754 -28.6845 183.186 +93.5677 -29.0326 185.409 +116.651 -36.9999 236.29 +116.755 -37.8681 241.834 +117.192 -38.8795 248.293 +116.943 -39.6979 253.52 +117.099 -40.6881 259.844 +116.036 -41.2843 263.651 +113.351 -41.3112 263.823 +110.328 -41.2054 263.147 +107.962 -41.3385 263.997 +105.296 -41.3532 264.091 +102.278 -41.2194 263.236 +99.669 -41.2399 263.368 +97.0311 -41.2421 263.382 +94.3338 -41.211 263.183 +93.4055 -41.9658 268.003 +93.0337 -43.0145 274.701 +92.6742 -44.1243 281.788 +92.5572 -45.4133 290.02 +92.2725 -46.6905 298.177 +92.3618 -48.2372 308.054 +92.2558 -49.7728 317.861 +92.5179 -51.6099 329.593 +92.1655 -53.2121 339.825 +92.4403 -55.2966 353.137 +91.64 -56.8603 363.123 +91.8374 -59.1781 377.925 +89.3731 -59.8877 382.457 +87.8745 -61.3201 391.604 +84.329 -61.3759 391.961 +82.4785 -62.7153 400.515 +77.8882 -61.989 395.876 +76.0469 -63.476 405.372 +67.6012 -59.3105 378.77 +65.953 -60.9711 389.375 +61.2754 -59.8507 382.22 +58.6508 -60.7113 387.716 +54.2914 -59.7619 381.653 +51.8842 -60.9678 389.355 +47.3462 -59.6536 380.962 +44.919 -60.991 389.503 +40.4525 -59.5416 380.247 +37.9453 -60.9644 389.333 +33.7467 -59.6726 381.083 +31.1718 -61.2735 391.307 +27.0585 -59.8626 382.297 +24.2546 -61.3484 391.785 +20.2697 -59.8338 382.113 +17.282 -61.2345 391.058 +13.5375 -59.9723 382.997 +10.3922 -61.3956 392.086 +6.77328 -60.0306 383.369 +3.46269 -61.3833 392.008 +2.13163e-14 -59.9624 382.934 +-3.46443 -61.4143 392.206 +-6.79422 -60.2163 384.555 +-10.4472 -61.7203 394.16 +-13.5619 -60.0804 383.688 +-17.3605 -61.5127 392.834 +-20.4372 -60.3283 385.27 +-24.3584 -61.6109 393.461 +-27.3794 -60.5725 386.83 +-31.7053 -62.3222 398.004 +-34.2522 -60.5665 386.792 +-38.9996 -62.6584 400.151 +-41.5814 -61.2033 390.858 +-46.5152 -63.1584 403.344 +-48.5649 -61.1892 390.768 +-53.9334 -63.3759 404.733 +-55.7945 -61.4163 392.219 +-61.6809 -63.8479 407.747 +-63.1213 -61.6536 393.734 +-68.6103 -63.4276 405.063 +-69.9976 -61.4129 392.197 +-76.302 -63.689 406.733 +-77.4303 -61.6245 393.548 +-84.1133 -63.9583 408.453 +-85.722 -62.3897 398.435 +-94.3893 -65.8663 420.637 +-96.9989 -64.9976 415.09 +-104.047 -67.0454 428.168 +-101.68 -63.0897 402.905 +-108.565 -64.9421 414.735 +-109.972 -63.493 405.481 +-117.131 -65.3397 417.274 +-117.78 -63.5433 405.802 +-126.387 -66.0074 421.538 +-127.913 -64.7246 413.346 +-135.288 -66.379 423.911 +-137.234 -65.3405 417.279 +-141.835 -65.5782 418.798 +-142.11 -63.8484 407.75 +-143.938 -62.8812 401.574 +-144.161 -61.2743 391.312 +-144.531 -59.8023 381.911 +-144.243 -58.1317 371.242 +-144.365 -56.6968 362.079 +-143.212 -54.8359 350.195 +-143.353 -53.54 341.919 +-143.164 -52.1767 333.213 +-143.271 -50.9742 325.533 +-143.578 -49.8885 318.6 +-143.318 -48.6511 310.697 +-143.521 -47.6144 304.077 +-143.231 -46.4554 296.675 +-143.742 -45.5929 291.167 +-143.81 -44.6217 284.965 +-142.144 -43.1578 275.615 +-141.249 -41.9763 268.07 +-143.658 -41.7976 266.929 +-145.963 -41.5885 265.594 +-148.546 -41.4574 264.757 +-263.151 -71.9546 459.519 +-108.9 -29.1798 186.349 +-109.222 -28.6853 183.191 +-110.27 -28.3909 181.311 +-110.247 -27.8319 177.741 +-98.565 -24.4022 155.838 +-98.5407 -23.929 152.816 +-98.4707 -23.4577 149.807 +-98.9623 -23.1304 147.716 +-98.5857 -22.6111 144.399 +-99.0078 -22.2859 142.323 +-98.7125 -21.8092 139.279 +-98.8356 -21.4358 136.894 +-99.0418 -21.0888 134.678 +-99.2164 -20.7429 132.469 +-99.4198 -20.4106 130.347 +-98.8629 -19.9319 127.29 +-98.7521 -19.5538 124.875 +-98.7308 -19.2019 122.628 +-99.2438 -18.9596 121.081 +-98.5921 -18.5026 118.162 +-99.0536 -18.2621 116.626 +-98.9759 -17.9278 114.491 +-98.8025 -17.5832 112.291 +-98.7304 -17.2638 110.251 +-99.0982 -17.0265 108.735 +-98.8388 -16.6868 106.565 +-99.1626 -16.4508 105.059 +-98.9854 -16.1368 103.053 +-99.1972 -15.8913 101.485 +-99.5291 -15.6685 100.063 +-99.4899 -15.3913 98.2922 +-99.8551 -15.1805 96.946 +-99.2689 -14.8302 94.7088 +-99.5939 -14.621 93.3733 +-99.0253 -14.2856 91.2309 +-99.0163 -14.0364 89.6395 +-99.3585 -13.8401 88.3858 +-99.3864 -13.6029 86.8711 +-99.6971 -13.4073 85.6221 +-100.374 -13.2621 84.695 +-100.045 -12.9869 82.9375 +-101.7 -12.9694 82.8258 +-101.184 -12.6759 80.9511 +-105.73 -13.0107 83.0892 +-104.963 -12.6865 81.0188 +-110.911 -13.1659 84.0802 +-112.448 -13.1087 83.7155 +-119.855 -13.7202 87.6204 +-119.087 -13.3851 85.4804 +-129.526 -14.2929 91.2775 +-128.279 -13.8956 88.7408 +-139.36 -14.8172 94.6262 +-138.118 -14.4122 92.0399 +-148.015 -15.1559 96.7894 +-161.276 -16.2025 103.473 +-163.365 -16.1006 102.822 +-162.316 -15.6909 100.206 +-164.815 -15.6247 99.7831 +-165.176 -15.3538 98.053 +-168.965 -15.3972 98.3301 +-161.947 -14.4646 92.3744 +-175.203 -15.3348 97.9316 +-173 -14.8352 94.7408 +-2879.44 -241.862 1544.59 +-181.357 -14.9178 95.2686 +-518.99 -41.7956 266.916 +-521.328 -41.0934 262.432 +-523.895 -40.4087 258.059 +-527.502 -39.8017 254.183 +-379.718 -28.019 178.936 +-378.927 -27.3353 174.57 +-378.908 -26.7136 170.599 +-380.4 -26.2011 167.326 +-380.488 -25.594 163.449 +-378.051 -24.8255 158.541 +-379.068 -24.2905 155.125 +-379.96 -23.7489 151.666 +-380.634 -23.1954 148.131 +-380.247 -22.5807 144.206 +-379.446 -21.9474 140.161 +-379.166 -21.3496 136.344 +-378.942 -20.7594 132.575 +-380.098 -20.2471 129.302 +-380.088 -19.6744 125.645 +-380.518 -19.127 122.15 +-380.819 -18.5754 118.626 +-380.036 -17.9746 114.79 +-380.364 -17.4301 111.313 +-379.602 -16.8391 107.539 +-379.67 -16.2889 104.024 +-379.705 -15.7397 100.517 +-378.836 -15.1567 96.7942 +-380.162 -14.6634 93.6439 +-380.975 -14.1496 90.3628 +-379.517 -13.5547 86.5636 +-379.974 -13.0318 83.2242 +-379.228 -12.4701 79.637 +-378.643 -11.9176 76.1084 +-379.89 -11.4237 72.9541 +-378.75 -10.8596 69.352 +-380.431 -10.3774 66.2727 +-379.325 -9.82005 62.7131 +-379.569 -9.30033 59.3941 +-378.892 -8.76011 55.9441 +-379.075 -8.24181 52.6341 +-381.012 -7.76003 49.5573 +-379.649 -7.21142 46.0538 +-379.147 -6.68285 42.6782 +-380.504 -6.18693 39.5111 +-381.734 -5.68634 36.3143 +-380.148 -5.14516 32.8582 +-380.125 -4.62814 29.5563 +-381.269 -4.12449 26.3399 +-147.225 -1.39304 8.89625 +-379.479 -3.07666 19.6483 +-379.638 -2.56424 16.3759 +-380.368 -2.05486 13.1228 +-146.45 -0.593269 3.78875 +-144.378 -0.389869 2.48979 +-145.994 -0.197101 1.25873 +95.1 -1.77636e-15 -1.7053e-13 +95.9963 -0.122129 0.828797 +95.9854 -0.244249 1.65753 +95.8671 -0.365968 2.48355 +95.8416 -0.487914 3.3111 +95.9086 -0.610459 4.14272 +95.8684 -0.732448 4.97057 +96.8191 -0.863282 5.85845 +95.7661 -0.976251 6.62508 +95.7041 -1.09804 7.4516 +96.5313 -1.23119 8.35516 +96.5534 -1.35535 9.19772 +96.4686 -1.47813 10.031 +96.3765 -1.60079 10.8634 +96.277 -1.72334 11.695 +96.1702 -1.84575 12.5257 +95.957 -1.96601 13.3418 +95.9345 -2.09016 14.1843 +95.707 -2.20985 14.9966 +95.4724 -2.32911 15.8059 +96.0188 -2.4682 16.7498 +95.8674 -2.59027 17.5782 +95.7087 -2.71212 18.4051 +95.5427 -2.83378 19.2307 +95.3694 -2.95522 20.0548 +96.0675 -3.10483 21.0702 +95.878 -3.22693 21.8987 +95.8757 -3.35558 22.7718 +95.6712 -3.47742 23.5987 +95.2657 -3.5917 24.3742 +95.9164 -3.74671 25.4261 +95.6885 -3.8686 26.2533 +96.3184 -4.02635 27.3238 +96.2655 -4.15701 28.2105 +96.778 -4.31342 29.2719 +96.5162 -4.43637 30.1063 +96.2469 -4.55899 30.9384 +95.9704 -4.68125 31.7681 +96.3483 -4.8364 32.821 +96.0552 -4.95878 33.6515 +96.6004 -5.12567 34.7841 +97.3202 -5.30452 35.9978 +96.9056 -5.42291 36.8012 +96.6704 -5.55133 37.6727 +97.1689 -5.72325 38.8394 +96.8226 -5.84664 39.6767 +96.4689 -5.96959 40.5111 +96.1079 -6.09209 41.3425 +96.7445 -6.27935 42.6132 +96.3649 -6.40219 43.4468 +96.7937 -6.57998 44.6534 +96.3961 -6.70288 45.4874 +96.6204 -6.86999 46.6214 +96.2054 -6.99265 47.4539 +95.7832 -7.11477 48.2826 +96.9503 -7.35752 49.9299 +96.5062 -7.48057 50.765 +96.0547 -7.60307 51.5963 +96.3831 -7.78858 52.8552 +96.6965 -7.97552 54.1238 +96.2154 -8.09822 54.9565 +96.4163 -8.2795 56.1868 +96.6885 -8.46943 57.4756 +96.1778 -8.59211 58.3081 +96.3383 -8.77594 59.5557 +96.3996 -8.95299 60.7572 +96.6148 -9.14675 62.0721 +95.9803 -9.26126 62.8492 +96.0855 -9.44824 64.1181 +96.3404 -9.65269 65.5055 +95.8408 -9.78324 66.3915 +96.5541 -10.0403 68.1356 +95.9494 -10.1627 68.9665 +95.9805 -10.3537 70.263 +96.0759 -10.5544 71.6248 +96.0751 -10.7472 72.9334 +96.0585 -10.9409 74.2473 +96.1825 -11.1534 75.6896 +96.133 -11.3487 77.0152 +96.1444 -11.554 78.4086 +96.1386 -11.7603 79.808 +96.0393 -11.9579 81.149 +95.9991 -12.1657 82.5592 +95.8663 -12.3646 83.9093 +95.7914 -12.5739 85.3295 +95.7723 -12.7938 86.8216 +96.2461 -13.0841 88.7922 +96.0396 -13.2863 90.1644 +95.888 -13.4992 91.6087 +95.7182 -13.7126 93.0571 +96.0958 -14.0091 95.0692 +95.9545 -14.2348 96.6008 +95.7934 -14.4612 98.1372 +95.5436 -14.6777 99.6064 +95.889 -14.9905 101.729 +96.0689 -15.284 103.721 +95.8195 -15.5139 105.281 +95.4173 -15.7227 106.698 +95.7846 -16.0635 109.011 +95.8585 -16.3621 111.037 +95.454 -16.5839 112.543 +95.0301 -16.806 114.049 +95.5308 -17.1981 116.711 +95.6805 -17.5358 119.002 +95.5507 -17.8291 120.992 +95.0277 -18.054 122.519 +94.9664 -18.3723 124.679 +94.9337 -18.7033 126.925 +95.5739 -19.1771 130.141 +95.3514 -19.4879 132.25 +95.2137 -19.8234 134.526 +95.043 -20.16 136.811 +94.7273 -20.4736 138.939 +94.7124 -20.8608 141.566 +94.9306 -21.3105 144.618 +94.6722 -21.6642 147.018 +94.4316 -22.031 149.508 +94.4677 -22.4734 152.51 +94.7155 -22.9801 155.949 +94.3006 -23.3385 158.381 +94.35 -23.8236 161.673 +94.2991 -24.298 164.892 +94.247 -24.7868 168.21 +94.0957 -25.2646 171.452 +94.2229 -25.8338 175.315 +94.3352 -26.4181 179.28 +94.4754 -27.0307 183.437 +93.5231 -27.3456 185.574 +116.694 -34.8798 236.703 +117.228 -35.8296 243.148 +117.277 -36.6643 248.813 +116.943 -37.4091 253.868 +117.14 -38.3555 260.29 +116.036 -38.9041 264.013 +112.999 -38.8088 263.366 +110.289 -38.8164 263.417 +107.662 -38.8471 263.626 +105.003 -38.8605 263.717 +102.278 -38.8429 263.597 +99.3538 -38.7394 262.895 +97.0311 -38.8643 263.743 +94.3672 -38.8489 263.638 +93.1776 -39.4498 267.716 +93.1289 -40.5761 275.359 +93.045 -41.7467 283.304 +92.4971 -42.7672 290.229 +92.5941 -44.152 299.626 +92.5606 -45.554 309.141 +92.1456 -46.8472 317.917 +91.9033 -48.3113 327.853 +92.269 -50.2007 340.674 +92.1148 -51.9251 352.377 +92.0997 -53.8509 365.446 +91.7907 -55.7379 378.251 +91.5776 -57.827 392.428 +91.554 -60.2043 408.561 +87.1566 -59.7765 405.658 +87.2633 -62.528 424.331 +81.8571 -61.3917 416.619 +80.9308 -63.658 431.999 +75.1028 -62.093 421.379 +74.4695 -64.875 440.258 +65.2645 -60.0718 407.662 +64.4597 -62.8775 426.702 +57.9795 -60.142 408.139 +57.0008 -63.1186 428.338 +50.5636 -60.0343 407.408 +49.4585 -63.2831 429.454 +43.0971 -59.7768 405.66 +41.6833 -63.109 428.273 +35.7426 -59.5579 404.174 +34.3494 -63.6268 431.787 +28.7815 -60.0034 407.198 +26.7515 -63.7628 432.71 +21.5833 -60.0384 407.435 +19.1271 -63.8649 433.403 +14.424 -60.2152 408.635 +11.4838 -63.933 433.865 +7.24449 -60.5052 410.603 +3.82833 -63.9523 433.996 +2.75335e-14 -60.5289 410.764 +-3.83357 -64.0398 434.59 +-7.25147 -60.5635 410.999 +-11.5257 -64.1661 435.447 +-14.5322 -60.6668 411.7 +-19.319 -64.5056 437.751 +-21.8869 -60.8827 413.165 +-27.1056 -64.6068 438.437 +-29.2698 -61.0214 414.106 +-35.0163 -64.8622 440.171 +-36.9105 -61.5039 417.381 +-42.7855 -64.7778 439.598 +-44.226 -61.3427 416.287 +-50.8735 -65.0935 441.741 +-51.7092 -61.3944 416.638 +-58.9978 -65.33 443.345 +-59.413 -61.6289 418.229 +-67.3272 -65.6746 445.684 +-67.3138 -61.9579 420.462 +-75.7403 -65.9821 447.771 +-75.1897 -62.1649 421.866 +-84.6848 -66.6108 452.038 +-83.8606 -62.8943 426.816 +-92.9055 -66.5709 451.767 +-93.1444 -63.8834 433.528 +-106.099 -69.7686 473.467 +-104.715 -66.1225 448.723 +-113.898 -69.162 469.351 +-109.639 -64.1061 435.04 +-120.358 -67.8456 460.417 +-117.607 -63.9865 434.228 +-131.027 -68.8776 467.42 +-127.124 -64.6304 438.598 +-139.963 -68.8831 467.458 +-136.216 -64.9523 440.782 +-140.61 -65.0129 441.194 +-141.653 -63.556 431.306 +-144.342 -62.8894 426.783 +-144.357 -61.1183 414.764 +-144.572 -59.5169 403.896 +-144.572 -57.906 392.964 +-144.391 -56.2998 382.064 +-144.53 -54.889 372.491 +-144.218 -53.3738 362.208 +-143.25 -51.6879 350.767 +-143.468 -50.4935 342.662 +-143.476 -49.2758 334.398 +-143.151 -47.9953 325.708 +-143.456 -46.9722 318.765 +-143.401 -45.8727 311.303 +-143.563 -44.8825 304.584 +-143.575 -43.8823 297.796 +-143.435 -42.8725 290.943 +-143.81 -42.0491 285.356 +-142.598 -40.7994 276.875 +-141.572 -39.6467 269.053 +-143.377 -39.3106 266.771 +-145.963 -39.1907 265.958 +-149.321 -39.2714 266.505 +-296.094 -76.2946 517.754 +-109.2 -27.5733 187.119 +-109.121 -27.0062 183.271 +-110.27 -26.754 181.559 +-111.24 -26.4635 179.588 +-98.618 -23.0077 156.136 +-98.7557 -22.5985 153.359 +-98.5797 -22.1297 150.177 +-98.9623 -21.7968 147.919 +-98.6975 -21.3316 144.762 +-99.0078 -21.001 142.518 +-98.7125 -20.5518 139.47 +-98.8937 -20.2119 137.163 +-99.0418 -19.8729 134.863 +-99.3354 -19.5704 132.81 +-99.4198 -19.2338 130.525 +-99.4107 -18.8869 128.171 +-98.7521 -18.4265 125.047 +-99.2911 -18.1975 123.492 +-98.6774 -17.7645 120.554 +-98.5921 -17.4359 118.324 +-99.0536 -17.2092 116.786 +-98.9109 -16.8831 114.573 +-98.7369 -16.5586 112.371 +-99.1942 -16.345 110.921 +-99.2321 -16.0664 109.031 +-98.974 -15.7461 106.857 +-99.299 -15.5237 105.347 +-99.6049 -15.3016 103.841 +-99.2667 -14.9856 101.696 +-99.459 -14.7547 100.129 +-99.7021 -14.5348 98.6369 +-99.2845 -14.2235 96.5243 +-99.4128 -13.9954 94.9762 +-99.739 -13.7981 93.6376 +-99.2447 -13.4918 91.5585 +-101.081 -13.5029 91.6339 +-100.176 -13.1494 89.2352 +-103.805 -13.3885 90.858 +-101.433 -12.8543 87.2323 +-109.727 -13.6621 92.7142 +-104.105 -12.7348 86.4216 +-112.812 -13.557 92.0011 +-109.034 -12.8717 87.3504 +-118.565 -13.7489 93.3034 +-112.607 -12.8257 87.0381 +-126.778 -14.1817 96.2408 +-126.105 -13.8532 94.0114 +-141.64 -15.2792 103.688 +-138.018 -14.6185 99.2047 +-142.389 -14.8064 100.48 +-141.795 -14.4742 98.2254 +-142.079 -14.2354 96.6052 +-144.667 -14.2253 96.5367 +-148.348 -14.3143 97.1406 +-162.87 -15.4193 104.639 +-170.449 -15.8302 107.428 +-165.454 -15.072 102.282 +-177.264 -15.8359 107.466 +-171.348 -15.0092 101.856 +-510.343 -43.8244 297.403 +-176.236 -14.8334 100.663 +-511.682 -42.2035 286.403 +-547.687 -44.2578 300.345 +-513.141 -40.6169 275.636 +-515.818 -39.9831 271.335 +-518.192 -39.3254 266.872 +-521.061 -38.7044 262.658 +-2932.25 -213.13 1446.35 +-386.302 -27.4672 186.399 +-377.1 -26.2216 177.946 +-379.924 -25.8271 175.269 +-379.363 -25.2038 171.039 +-379.121 -24.6075 166.993 +-380.58 -24.1242 163.713 +-378.512 -23.4227 158.953 +-379.53 -22.9179 155.527 +-380.238 -22.396 151.985 +-378.959 -21.7618 147.681 +-378.94 -21.2058 143.908 +-379.352 -20.6769 140.319 +-380.294 -20.1786 136.937 +-379.13 -19.5723 132.823 +-380.098 -19.0797 129.48 +-380.278 -18.5492 125.88 +-380.613 -18.0288 122.348 +-380.438 -17.4869 118.671 +-379.366 -16.9084 114.745 +-380.076 -16.4128 111.381 +-380.467 -15.9044 107.931 +-378.418 -15.2992 103.824 +-379.705 -14.8322 100.655 +-380.192 -14.334 97.2738 +-379.677 -13.8004 93.6527 +-380.099 -13.3032 90.2789 +-379.809 -12.7831 86.7491 +-379.389 -12.2615 83.2098 +-380.108 -11.7784 79.9313 +-380.015 -11.2712 76.4889 +-379.89 -10.765 73.0542 +-379.34 -10.2495 69.5554 +-379.643 -9.75889 66.2262 +-379.917 -9.26832 62.8971 +-380.161 -8.7778 59.5683 +-380.079 -8.28092 56.1964 +-380.065 -7.78692 52.844 +-380.814 -7.30882 49.5995 +-380.244 -6.80631 46.1893 +-381.035 -6.32892 42.9496 +-381.001 -5.83785 39.6171 +-379.843 -5.33195 36.184 +-380.148 -4.84852 32.9033 +-379.227 -4.351 29.5269 +-380.371 -3.87754 26.3139 +-147.524 -1.31539 8.92657 +-378.181 -2.88935 19.6079 +-379.638 -2.4164 16.3983 +-379.369 -1.9313 13.1063 +-144.95 -0.553341 3.75511 +-143.778 -0.365865 2.48285 +-146.394 -0.186246 1.26391 +95 -1.77636e-15 -1.7053e-13 +95.9963 -0.114647 0.829865 +95.9854 -0.229285 1.65967 +95.8671 -0.343548 2.48675 +95.8416 -0.458023 3.31537 +95.9086 -0.57306 4.14806 +95.8684 -0.687576 4.97698 +96.8191 -0.810395 5.866 +95.7661 -0.916443 6.63362 +96.701 -1.04151 7.53893 +96.5313 -1.15576 8.36593 +96.4539 -1.271 9.20007 +96.4686 -1.38758 10.0439 +96.4758 -1.50427 10.8886 +96.277 -1.61776 11.7101 +96.1702 -1.73268 12.5419 +96.056 -1.84747 13.3728 +95.8356 -1.96008 14.1879 +95.707 -2.07446 15.0159 +95.4724 -2.18642 15.8263 +96.0188 -2.31699 16.7714 +95.8674 -2.43158 17.6008 +95.7087 -2.54597 18.4289 +95.7386 -2.66562 19.2949 +95.3694 -2.77417 20.0807 +95.1889 -2.88796 20.9044 +95.878 -3.02924 21.9269 +95.6812 -3.14362 22.7549 +95.4771 -3.25776 23.5811 +96.1371 -3.4025 24.6288 +96.1096 -3.52427 25.5102 +95.6885 -3.6316 26.2871 +95.4533 -3.74574 27.1133 +96.0737 -3.89456 28.1906 +95.8217 -4.00915 29.02 +96.5162 -4.16458 30.1451 +96.2469 -4.27969 30.9783 +95.9704 -4.39447 31.8091 +96.5374 -4.54901 32.9278 +96.0552 -4.65499 33.6949 +96.6004 -4.81166 34.8289 +96.2899 -4.92683 35.6626 +96.999 -5.09559 36.8841 +96.5773 -5.20622 37.6849 +96.3344 -5.32648 38.5554 +96.8226 -5.48846 39.7279 +96.4689 -5.60388 40.5633 +96.1079 -5.71888 41.3957 +95.9223 -5.84456 42.3055 +96.3649 -6.00997 43.5028 +95.978 -6.12483 44.3342 +96.3961 -6.29224 45.546 +96.6204 -6.44912 46.6815 +96.2054 -6.56426 47.515 +96.5851 -6.73482 48.7496 +96.152 -6.8499 49.5826 +96.5062 -7.02229 50.8304 +96.0547 -7.13729 51.6628 +96.3831 -7.31143 52.9233 +96.6965 -7.48692 54.1936 +96.9948 -7.66369 55.4731 +96.4163 -7.77228 56.2592 +96.6885 -7.95057 57.5497 +96.8599 -8.12293 58.7974 +96.4231 -8.24555 59.6849 +96.3996 -8.40451 60.8355 +95.86 -8.51931 61.6665 +95.9803 -8.69389 62.9302 +96.1684 -8.87707 64.2561 +96.3404 -9.06134 65.5899 +96.4961 -9.24669 66.9316 +95.9028 -9.36158 67.7632 +95.9494 -9.5401 69.0554 +96.0609 -9.72759 70.4125 +96.1557 -9.91606 71.7768 +96.0751 -10.0888 73.0274 +95.4281 -10.2032 73.8551 +96.1825 -10.4701 75.7872 +96.133 -10.6535 77.1145 +96.1444 -10.8462 78.5096 +96.062 -11.031 79.8472 +96.0393 -11.2253 81.2536 +96.0745 -11.4293 82.7305 +95.9412 -11.6162 84.083 +95.8657 -11.8127 85.5057 +96.3621 -12.0839 87.4688 +96.3193 -12.2919 88.9741 +95.4593 -12.397 89.7352 +95.888 -12.6722 91.7268 +95.7182 -12.8725 93.177 +96.1665 -13.1605 95.2617 +95.3237 -13.2749 96.0895 +95.7934 -13.5753 98.2637 +96.1631 -13.8679 100.382 +96.5028 -14.1624 102.513 +95.596 -14.277 103.343 +95.8195 -14.5635 105.417 +95.4835 -14.7697 106.91 +95.719 -15.069 109.076 +95.8585 -15.3597 111.18 +95.454 -15.568 112.688 +95.4753 -15.8503 114.731 +95.5938 -16.1551 116.937 +95.6182 -16.4508 119.078 +95.1197 -16.6614 120.603 +94.6015 -16.872 122.127 +95.0868 -17.2685 124.997 +95.0527 -17.5794 127.247 +94.9861 -17.8916 129.507 +95.2353 -18.2717 132.259 +95.2137 -18.6089 134.7 +95.043 -18.9249 136.987 +94.895 -19.2534 139.364 +94.6572 -19.5713 141.665 +94.985 -20.0165 144.888 +94.6722 -20.337 147.208 +94.8555 -20.7742 150.373 +94.52 -21.1084 152.792 +94.6125 -21.5489 155.981 +94.3006 -21.9087 158.585 +94.75 -22.459 162.568 +94.2499 -22.7976 165.019 +94.5864 -23.3521 169.033 +94.4774 -23.813 172.369 +94.2699 -24.2632 175.628 +94.3352 -24.7997 179.511 +94.4754 -25.3747 183.674 +93.4338 -25.6458 185.636 +116.694 -32.743 237.008 +116.841 -33.5234 242.657 +116.854 -34.2942 248.236 +117.068 -35.1547 254.465 +117.181 -36.0182 260.716 +115.677 -36.4078 263.536 +112.999 -36.4313 263.705 +110.328 -36.451 263.848 +107.662 -36.4672 263.966 +104.636 -36.3524 263.135 +102.314 -36.476 264.029 +99.3538 -36.3661 263.234 +96.7233 -36.3676 263.245 +94.3672 -36.4689 263.978 +93.145 -37.0201 267.968 +93.0337 -38.0513 275.432 +92.9214 -39.1372 283.292 +92.5272 -40.1603 290.698 +92.6526 -41.4733 300.202 +92.4186 -42.6977 309.065 +92.3385 -44.0693 318.993 +92.2774 -45.5363 329.611 +92.1913 -47.0856 340.826 +92.1148 -48.7441 352.831 +91.9303 -50.4588 365.243 +91.4405 -52.1236 377.294 +91.5776 -54.2844 392.934 +91.554 -56.516 409.088 +91.3148 -58.7917 425.56 +91.0314 -61.232 443.224 +89.9855 -63.3534 458.58 +90.3524 -66.7149 482.911 +83.7158 -64.9738 470.309 +84.9995 -69.512 503.158 +76.2931 -65.9208 477.164 +74.3186 -68.0531 492.598 +65.3279 -63.613 460.459 +65.3284 -67.9082 491.549 +57.0958 -63.6371 460.633 +56.6356 -68.0267 492.407 +48.8984 -63.6684 460.86 +48.1721 -68.4649 495.579 +40.5187 -63.3802 458.774 +39.5983 -68.856 498.41 +32.7297 -64.0543 463.653 +31.0798 -69.5411 503.369 +24.4828 -63.9314 462.764 +22.054 -69.1263 500.367 +16.2841 -63.8161 461.929 +13.3764 -69.9072 506.019 +8.15027 -63.9 462.536 +4.44093 -69.6412 504.093 +3.10862e-14 -64.2381 464.984 +-4.43744 -69.5864 503.697 +-8.18867 -64.201 464.715 +-13.2612 -69.3052 501.661 +-16.4551 -64.4862 466.78 +-22.1805 -69.5228 503.236 +-24.8282 -64.8334 469.293 +-31.1287 -69.6505 504.161 +-33.3087 -65.1875 471.855 +-40.4849 -70.3977 509.569 +-41.8783 -65.507 474.168 +-49.9644 -71.0123 514.018 +-50.3723 -65.5875 474.751 +-59.2506 -71.1677 515.143 +-59.0335 -65.7967 476.266 +-68.709 -71.4224 516.987 +-68.2227 -66.4317 480.862 +-78.5164 -71.897 520.422 +-77.1378 -66.6507 482.447 +-88.482 -72.36 523.773 +-86.9977 -67.521 488.747 +-97.9698 -72.3395 523.625 +-95.6716 -67.3567 487.557 +-106.742 -71.7994 519.716 +-106.825 -68.7778 497.844 +-114.626 -70.7585 512.181 +-116.097 -68.8188 498.141 +-123.889 -70.6205 511.182 +-125.437 -68.8497 498.365 +-139.086 -73.5996 532.746 +-135.906 -69.4122 502.436 +-140.942 -69.5506 503.437 +-140.851 -67.2222 486.584 +-142.064 -65.6343 475.09 +-141.537 -63.355 458.591 +-142.174 -61.7087 446.675 +-141.993 -59.8055 432.898 +-144.152 -58.9588 426.77 +-144.227 -57.3223 414.924 +-144.271 -55.7547 403.577 +-144.606 -54.3714 393.564 +-144.671 -52.9532 383.299 +-144.566 -51.5391 373.063 +-144.585 -50.2314 363.597 +-143.399 -48.5722 351.587 +-143.43 -47.3876 343.012 +-143.555 -46.2822 335.011 +-143.151 -45.055 326.128 +-143.375 -44.0696 318.995 +-143.65 -43.1371 312.245 +-143.606 -42.1452 305.066 +-143.619 -41.2063 298.269 +-143.435 -40.246 291.318 +-143.274 -39.3261 284.659 +-142.78 -38.3488 277.586 +-141.988 -37.3271 270.19 +-143.048 -36.8177 266.503 +-145.724 -36.7297 265.866 +-148.546 -36.6739 265.462 +-353.609 -85.5325 619.122 +-109.1 -25.8604 187.189 +-109.019 -25.3282 183.337 +-110.27 -25.115 181.793 +-111.344 -24.8657 179.989 +-98.8299 -21.6446 156.673 +-98.7557 -21.214 153.557 +-98.6341 -20.7854 150.454 +-98.9623 -20.4615 148.109 +-98.7535 -20.0362 145.031 +-99.0078 -19.7144 142.702 +-98.7699 -19.304 139.731 +-99.0099 -18.996 137.501 +-99.0418 -18.6555 135.036 +-99.3354 -18.3715 132.981 +-99.2995 -18.0336 130.535 +-99.289 -17.708 128.179 +-98.7521 -17.2976 125.208 +-99.2288 -17.072 123.574 +-98.6774 -16.6762 120.71 +-98.5285 -16.3572 118.4 +-99.0536 -16.1549 116.936 +-98.9759 -15.8592 114.796 +-98.8025 -15.5544 112.59 +-99.2605 -15.3539 111.138 +-99.0982 -15.0619 109.025 +-99.582 -14.8723 107.653 +-99.0262 -14.5327 105.194 +-101.119 -14.5825 105.554 +-99.7529 -14.1364 102.325 +-103.104 -14.3583 103.932 +-100.48 -13.7508 99.5346 +-108.057 -14.532 105.189 +-101.93 -13.4707 97.507 +-111.998 -14.5449 105.282 +-105.827 -13.5052 97.7567 +-116.416 -14.5988 105.672 +-110.654 -13.635 98.6961 +-123.353 -14.9352 108.107 +-113.886 -13.5482 98.0679 +-157.252 -18.38 133.042 +-121.878 -13.9955 101.306 +-162.89 -18.3759 133.013 +-130.25 -14.4343 104.482 +-163.8 -17.8307 129.066 +-163.039 -17.4322 126.182 +-165.494 -17.3785 125.793 +-141.678 -14.6105 105.758 +-141.881 -14.3675 103.998 +-142.711 -14.1895 102.709 +-142.145 -13.8755 100.437 +-141.959 -13.6032 98.4656 +-142.327 -13.3866 96.8981 +-144.418 -13.3309 96.4949 +-147.681 -13.377 96.8283 +-2747.9 -244.213 1767.72 +-494.227 -43.0888 311.896 +-496.702 -42.4752 307.454 +-498.112 -41.7731 302.372 +-500.757 -41.1766 298.054 +-508.878 -41.0215 296.932 +-527.756 -41.6987 301.833 +-2851.72 -220.8 1598.25 +-2865.69 -217.386 1573.53 +-404.607 -30.0641 217.617 +-2892.98 -210.508 1523.75 +-404.832 -28.8404 208.759 +-404.25 -28.188 204.037 +-404.063 -27.5698 199.563 +-387.111 -25.8384 187.03 +-378.183 -24.6858 178.687 +-379.471 -24.2159 175.285 +-379.363 -23.6597 171.259 +-378.482 -23.061 166.926 +-378.471 -22.5208 163.016 +-379.8 -22.0627 159.699 +-379.53 -21.5139 155.727 +-380.331 -21.0292 152.218 +-380.634 -20.519 148.525 +-380.714 -19.9998 144.767 +-379.727 -19.4294 140.638 +-380.951 -18.9752 137.35 +-380.073 -18.419 133.325 +-379.248 -17.8708 129.356 +-379.804 -17.3912 125.885 +-379.662 -16.882 122.199 +-379.865 -16.3908 118.644 +-380.322 -15.9126 115.182 +-380.364 -15.4189 111.609 +-380.083 -14.915 107.962 +-380.152 -14.4277 104.434 +-378.45 -13.8774 100.451 +-379.32 -13.425 97.1759 +-381.035 -13.0013 94.1089 +-379.613 -12.4723 90.2796 +-379.127 -11.9784 86.705 +-380.56 -11.5459 83.5744 +-378.543 -11.0113 79.7048 +-379.231 -10.5588 76.4295 +-379.89 -10.1055 73.1484 +-379.831 -9.63402 69.7353 +-378.757 -9.13964 66.1568 +-379.917 -8.70052 62.9781 +-379.766 -8.2315 59.5832 +-379.584 -7.76349 56.1956 +-380.263 -7.31369 52.9397 +-379.525 -6.83784 49.4953 +-379.947 -6.38434 46.2127 +-379.445 -5.91641 42.8256 +-379.112 -5.45303 39.4714 +-3261.42 -42.9767 311.084 +-380.148 -4.55149 32.9457 +-379.526 -4.08767 29.5884 +-380.371 -3.63999 26.3479 +-149.321 -1.24985 9.04693 +-379.879 -2.72452 19.7213 +-380.038 -2.27075 16.4367 +-380.368 -1.81776 13.1577 +-146.75 -0.52589 3.80663 +-145.978 -0.348705 2.52408 +-146.094 -0.174479 1.26295 +96 1.77636e-15 -2.27374e-13 +95.9963 -0.107156 0.830866 +95.8854 -0.214081 1.65994 +95.8671 -0.3211 2.48975 +95.9415 -0.428541 3.32283 +96.9077 -0.541195 4.19633 +95.8684 -0.642649 4.98298 +95.8209 -0.749633 5.81252 +96.7637 -0.865483 6.7108 +95.7041 -0.963422 7.4702 +96.6309 -1.08136 8.38467 +96.5534 -1.18918 9.22067 +96.4686 -1.29691 10.056 +96.3765 -1.40453 10.8905 +96.277 -1.51206 11.7242 +97.0625 -1.63449 12.6735 +96.056 -1.72675 13.3889 +95.8356 -1.83201 14.2051 +96.5959 -1.95692 15.1736 +95.4724 -2.04356 15.8454 +96.2157 -2.17003 16.826 +95.8674 -2.27269 17.6221 +95.7087 -2.37961 18.4511 +95.5427 -2.48635 19.2787 +95.3694 -2.5929 20.1049 +95.1889 -2.69926 20.9296 +95.878 -2.8313 21.9534 +95.6812 -2.93821 22.7823 +95.4771 -3.0449 23.6096 +96.1371 -3.18017 24.6585 +95.9164 -3.28736 25.4896 +95.6885 -3.39431 26.3188 +95.4533 -3.50098 27.146 +96.0737 -3.64008 28.2245 +95.8217 -3.74718 29.055 +95.5624 -3.854 29.8832 +96.2469 -4.00005 31.0156 +95.9704 -4.10732 31.8474 +96.5374 -4.25177 32.9675 +96.2437 -4.35937 33.8017 +96.6004 -4.49726 34.8709 +96.2899 -4.6049 35.7056 +96.999 -4.76263 36.9286 +96.5773 -4.86603 37.7303 +97.0761 -5.01677 38.8991 +96.8226 -5.12983 39.7758 +96.4689 -5.23771 40.6122 +96.2913 -5.3554 41.5248 +96.7445 -5.50949 42.7196 +96.1829 -5.60666 43.473 +96.7937 -5.77327 44.7648 +96.3961 -5.88109 45.6009 +96.8001 -6.03893 46.8248 +96.2054 -6.13534 47.5723 +96.5851 -6.29475 48.8084 +96.9503 -6.45547 50.0545 +96.5062 -6.56344 50.8917 +96.0547 -6.67092 51.7251 +96.3831 -6.83369 52.9872 +96.6095 -6.9914 54.21 +96.9082 -7.15653 55.4904 +96.4163 -7.26442 56.327 +96.6028 -7.42447 57.568 +96.8599 -7.59216 58.8682 +96.3383 -7.69999 59.7043 +96.3996 -7.85534 60.9088 +96.6148 -8.02534 62.227 +96.0636 -8.13288 63.0608 +96.1684 -8.29702 64.3336 +96.3404 -8.46925 65.669 +96.4961 -8.64249 67.0123 +95.9842 -8.7573 67.9025 +95.9494 -8.91673 69.1387 +96.0609 -9.09197 70.4974 +96.0759 -9.26042 71.8036 +96.0751 -9.42961 73.1154 +95.4281 -9.53649 73.9442 +96.1825 -9.78596 75.8786 +96.2107 -9.96541 77.2699 +96.1444 -10.1375 78.6043 +96.062 -10.3102 79.9435 +96.1153 -10.5001 81.4159 +96.0745 -10.6825 82.8303 +95.9412 -10.8572 84.1844 +95.8657 -11.0409 85.6088 +95.7723 -11.2252 87.0383 +96.2461 -11.48 89.0138 +96.0396 -11.6574 90.3895 +95.9599 -11.853 91.9062 +95.7182 -12.0314 93.2894 +95.6008 -12.2282 94.8155 +95.9545 -12.4896 96.8419 +95.7934 -12.6882 98.3822 +95.5436 -12.8782 99.855 +95.889 -13.1527 101.983 +95.5285 -13.3347 103.395 +95.7526 -13.6024 105.47 +95.4835 -13.8046 107.038 +95.719 -14.0844 109.208 +95.9235 -14.3658 111.389 +95.5182 -14.5604 112.899 +95.4753 -14.8146 114.87 +95.5938 -15.0994 117.078 +95.1202 -15.2958 118.601 +95.0581 -15.5626 120.67 +95.0885 -15.8508 122.904 +95.6284 -16.2321 125.861 +94.9932 -16.4205 127.322 +94.8685 -16.7018 129.502 +95.2934 -17.0882 132.499 +95.2137 -17.393 134.862 +95.3828 -17.7516 137.643 +94.951 -18.0059 139.615 +95.1539 -18.3885 142.581 +94.985 -18.7085 145.063 +94.7259 -19.0188 147.469 +94.9085 -19.4275 150.637 +94.52 -19.7291 152.976 +94.6125 -20.1409 156.169 +94.3006 -20.4771 158.776 +94.25 -20.8807 161.905 +94.2006 -21.2968 165.131 +94.247 -21.7479 168.629 +94.0003 -22.1446 171.705 +94.2699 -22.6778 175.84 +94.012 -23.0998 179.112 +94.5208 -23.7282 183.984 +93.5231 -23.993 186.037 +116.738 -30.615 237.383 +117.185 -31.4253 243.666 +117.023 -32.0998 248.896 +116.985 -32.8343 254.591 +116.855 -33.5714 260.306 +115.677 -34.0289 263.854 +112.999 -34.0508 264.023 +109.983 -33.9629 263.342 +107.662 -34.0844 264.284 +104.636 -33.9771 263.452 +102.278 -34.0807 264.255 +99.3538 -33.9899 263.551 +96.7233 -33.9913 263.562 +94.0334 -33.9653 263.361 +93.4381 -34.71 269.135 +93.0655 -35.5771 275.858 +92.8596 -36.5555 283.444 +92.5272 -37.5362 291.048 +92.4772 -38.6899 299.994 +92.3618 -39.8832 309.247 +92.2834 -41.1651 319.186 +92.1171 -42.4868 329.435 +92.1913 -44.0089 341.237 +92.0647 -45.5342 353.064 +91.761 -47.0749 365.01 +91.604 -48.8048 378.424 +91.4651 -50.675 392.925 +91.3808 -52.7232 408.806 +91.0861 -54.8125 425.006 +90.8121 -57.0931 442.69 +91.1304 -59.9671 464.974 +90.7351 -62.6197 485.542 +90.6964 -65.7921 510.14 +90.6276 -69.2718 537.12 +86.2267 -69.6357 539.942 +88.4787 -75.7256 587.162 +75.0143 -68.2721 529.37 +78.7856 -76.5456 593.52 +65.6388 -68.3784 530.194 +65.4088 -73.431 569.37 +56.3617 -68.5909 531.841 +55.4659 -73.6804 571.304 +46.7765 -68.3878 530.266 +45.3964 -73.7802 572.078 +37.4523 -68.5072 531.193 +35.109 -73.4234 569.312 +28.3504 -69.1936 536.514 +25.2164 -73.8741 572.806 +18.8632 -69.0929 535.734 +15.0517 -73.5227 570.081 +9.48713 -69.5209 539.052 +5.05005 -74.0183 573.925 +2.84217e-14 -69.7106 540.523 +-5.09891 -74.7346 579.479 +-9.54821 -69.9686 542.524 +-15.3004 -74.7375 579.5 +-19.2087 -70.3585 545.547 +-25.6351 -75.1008 582.318 +-28.8842 -70.4965 546.617 +-36.159 -75.6194 586.339 +-38.5823 -70.5744 547.221 +-46.3536 -75.3359 584.141 +-48.6329 -71.1019 551.311 +-56.9324 -75.6283 586.408 +-58.9227 -71.7075 556.007 +-67.8993 -76.2268 591.049 +-68.7343 -71.6032 555.198 +-79.5296 -77.2684 599.125 +-79.2869 -72.1608 559.522 +-90.4594 -77.4207 600.306 +-91.2326 -73.6784 571.288 +-101.768 -77.7873 603.149 +-101.827 -73.8665 572.747 +-114.061 -78.7179 610.364 +-112.73 -74.1804 575.181 +-125.103 -78.6519 609.852 +-111.212 -66.9236 518.913 +-115.016 -66.3599 514.542 +-119.269 -66.0794 512.367 +-124.31 -66.2298 513.534 +-134.654 -69.0796 535.631 +-142.241 -70.3508 545.487 +-141.781 -67.6812 524.788 +-142.144 -65.5606 508.345 +-142.339 -63.4937 492.319 +-142.633 -61.5908 477.564 +-142.18 -59.4844 461.231 +-147.135 -59.6894 462.821 +-142.024 -55.91 433.516 +-144.247 -55.1428 427.567 +-144.52 -53.6856 416.268 +-144.305 -52.1236 404.157 +-144.606 -50.8187 394.039 +-144.741 -49.5172 383.947 +-144.566 -48.1714 373.513 +-144.621 -46.961 364.127 +-143.437 -45.4103 352.103 +-143.698 -44.3739 344.067 +-143.437 -43.2228 335.141 +-143.59 -42.2399 327.52 +-143.497 -41.2251 319.652 +-143.401 -40.2486 312.08 +-143.268 -39.2986 304.714 +-143.188 -38.3984 297.734 +-143.654 -37.6738 292.116 +-143.051 -36.6992 284.559 +-143.007 -35.8999 278.362 +-141.572 -34.786 269.724 +-142.766 -34.3442 266.298 +-145.152 -34.1948 265.14 +-148.061 -34.1657 264.915 +-404.674 -91.4882 709.383 +-109.3 -24.2149 187.758 +-108.918 -23.6512 183.387 +-110.218 -23.4629 181.927 +-111.24 -23.219 180.036 +-98.8299 -20.2303 156.862 +-98.7557 -19.8279 153.742 +-98.5797 -19.4165 150.552 +-99.0175 -19.1351 148.37 +-98.7535 -18.727 145.205 +-99.0645 -18.4369 142.956 +-99.2861 -18.1369 140.63 +-98.8937 -17.7339 137.505 +-99.1594 -17.4572 135.36 +-99.3354 -17.1711 133.141 +-99.4198 -16.8757 130.851 +-99.1672 -16.5306 128.175 +-99.3062 -16.258 126.062 +-99.7891 -16.0465 124.422 +-99.118 -15.6561 121.395 +-100.564 -15.6042 120.992 +-99.0536 -15.0993 117.077 +-102.093 -15.2898 118.554 +-100.246 -14.7505 114.373 +-104.826 -15.1553 117.512 +-101.641 -14.4389 111.957 +-109.513 -15.2868 118.531 +-103.937 -14.2565 110.542 +-112.89 -15.2162 117.984 +-108.992 -14.4364 111.937 +-117.753 -15.3269 118.842 +-112.784 -14.4261 111.858 +-125.746 -15.8058 122.555 +-118.691 -14.6608 113.678 +-165.53 -20.0924 155.793 +-128.791 -15.3619 119.113 +-165.298 -19.3741 150.223 +-164.309 -18.9236 146.73 +-166.718 -18.8665 146.287 +-165.13 -18.3609 142.367 +-168.354 -18.3918 142.607 +-166.155 -17.8333 138.276 +-2528.23 -266.577 2066.99 +-167.63 -17.3629 134.629 +-468.548 -47.6718 369.639 +-173.441 -17.3326 134.394 +-473.315 -46.455 360.204 +-142.157 -13.702 106.243 +-142.685 -13.5048 104.714 +-142.711 -13.2623 102.833 +-142.145 -12.9689 100.558 +-141.795 -12.6996 98.4705 +-142.739 -12.5481 97.2958 +-144.75 -12.4884 96.8331 +-147.681 -12.5029 96.9451 +-491.209 -40.8025 316.375 +-2763.37 -225.179 1746 +-496.447 -39.6794 307.667 +-497.857 -39.0235 302.581 +-499.471 -38.3873 297.648 +-2823.13 -212.707 1649.29 +-2837.53 -209.548 1624.79 +-2851.72 -206.373 1600.18 +-404.599 -28.6866 222.431 +-404.871 -28.1179 218.021 +-404.655 -27.5209 213.392 +-2906.29 -193.517 1500.49 +-405.764 -26.4449 205.049 +-403.794 -25.7512 199.67 +-386.661 -24.122 187.038 +-377.1 -23.0068 178.391 +-380.74 -22.7093 176.084 +-378.908 -22.0871 171.26 +-378.665 -21.5645 167.207 +-378.471 -21.0493 163.212 +-379.248 -20.591 159.659 +-380.269 -20.1474 156.219 +-380.053 -19.6406 152.29 +-382.122 -19.2532 149.286 +-379.874 -18.6517 144.622 +-381.132 -18.227 141.328 +-380.576 -17.7178 137.38 +-379.79 -17.2027 133.386 +-380.098 -16.7405 129.803 +-380.562 -16.2872 126.288 +-380.518 -15.8145 122.622 +-378.626 -15.2698 118.399 +-380.609 -14.884 115.408 +-381.323 -14.4477 112.025 +-380.467 -13.9545 108.201 +-379.67 -13.4678 104.427 +-380.188 -13.0303 101.034 +-379.998 -12.5702 97.467 +-380.55 -12.1363 94.1024 +-379.613 -11.6573 90.3885 +-380.686 -11.2418 87.1665 +-378.803 -10.7417 83.2888 +-380.402 -10.3424 80.1927 +-378.937 -9.86125 76.4623 +-380.086 -9.4501 73.2743 +-379.635 -8.99984 69.7831 +-379.643 -8.56243 66.3915 +-379.621 -8.12567 63.005 +-379.569 -7.68963 59.624 +-379.386 -7.25242 56.234 +-379.075 -6.81444 52.8379 +-379.525 -6.39104 49.555 +-379.351 -5.95783 46.1959 +-379.445 -5.52982 42.8772 +-379.51 -5.10206 39.5605 +-146.821 -1.80828 14.0211 +-380.646 -4.25966 33.0287 +-379.427 -3.81957 29.6162 +-380.172 -3.40037 26.3658 +-3270.39 -25.5852 198.383 +-380.178 -2.5485 19.7606 +-380.637 -2.12573 16.4825 +-379.369 -1.69452 13.139 +-146.95 -0.492197 3.8164 +-144.678 -0.323017 2.50462 +-145.694 -0.162632 1.26102 +95.9 3.55271e-15 -1.7053e-13 +95.8963 -0.0995534 0.830933 +95.8854 -0.1991 1.66181 +95.8671 -0.29863 2.49254 +95.9415 -0.398553 3.32656 +95.8087 -0.497615 4.1534 +95.7686 -0.597055 4.98338 +95.8209 -0.697175 5.81904 +95.6664 -0.795791 6.64215 +95.7041 -0.896004 7.47859 +95.6347 -0.99532 8.30754 +96.4539 -1.10482 9.2215 +96.4686 -1.20616 10.0673 +96.3765 -1.30625 10.9027 +96.277 -1.40624 11.7374 +96.1702 -1.50613 12.5711 +95.957 -1.60426 13.3901 +95.8356 -1.70381 14.221 +96.4972 -1.81811 15.1751 +95.4724 -1.90055 15.8632 +96.0188 -2.01405 16.8105 +95.8674 -2.11366 17.6418 +95.7087 -2.21309 18.4718 +95.7386 -2.3171 19.3399 +95.3694 -2.41146 20.1275 +95.1889 -2.51037 20.9531 +95.878 -2.63317 21.978 +95.6812 -2.7326 22.8079 +95.6712 -2.83758 23.6841 +95.4594 -2.93679 24.5122 +96.1096 -3.06348 25.5696 +95.6885 -3.15678 26.3484 +95.4533 -3.25599 27.1764 +96.0737 -3.38536 28.2562 +95.8217 -3.48496 29.0876 +95.5624 -3.5843 29.9167 +96.2469 -3.72013 31.0504 +96.8238 -3.85388 32.1668 +96.5374 -3.95424 33.0045 +96.0552 -4.04636 33.7734 +96.6004 -4.18255 34.91 +96.2899 -4.28266 35.7457 +95.8787 -4.3782 36.5431 +96.6704 -4.52988 37.8091 +96.2417 -4.62561 38.6081 +96.8226 -4.77086 39.8204 +96.4689 -4.87118 40.6578 +96.1079 -4.97115 41.4922 +96.5618 -5.11428 42.6868 +96.3649 -5.22418 43.6042 +96.7937 -5.36926 44.8151 +96.3961 -5.46955 45.6521 +96.8001 -5.61634 46.8774 +96.2054 -5.706 47.6257 +96.5851 -5.85426 48.8632 +96.152 -5.95429 49.6981 +96.5062 -6.10414 50.9488 +96.0547 -6.2041 51.7832 +96.3831 -6.35548 53.0466 +96.6965 -6.50802 54.3198 +96.9948 -6.66168 55.6024 +96.4163 -6.75607 56.3902 +96.6028 -6.90492 57.6326 +96.1778 -7.01115 58.5193 +96.3383 -7.16116 59.7713 +96.3996 -7.30564 60.9772 +96.531 -7.45727 62.2429 +95.9803 -7.55719 63.0768 +96.1684 -7.71641 64.4058 +96.3404 -7.87659 65.7427 +96.4961 -8.03771 67.0875 +96.5541 -8.19284 68.3824 +95.9494 -8.29275 69.2163 +95.9805 -8.44865 70.5175 +96.0759 -8.61239 71.8842 +96.0751 -8.76974 73.1975 +96.1373 -8.93506 74.5774 +96.1825 -9.10116 75.9637 +96.2107 -9.26805 77.3567 +96.1444 -9.42809 78.6925 +96.062 -9.58872 80.0332 +96.0393 -9.75761 81.4429 +96.0745 -9.93498 82.9233 +95.9412 -10.0974 84.2789 +95.8657 -10.2682 85.7049 +95.7723 -10.4397 87.136 +96.3193 -10.6848 89.1814 +96.0396 -10.8417 90.4909 +95.888 -11.0153 91.9405 +95.7182 -11.1895 93.3941 +95.5301 -11.3641 94.8518 +95.9545 -11.6156 96.9507 +95.7934 -11.8003 98.4926 +95.5436 -11.977 99.9671 +95.8208 -12.2236 102.025 +96.1365 -12.4805 104.17 +95.9533 -12.6771 105.81 +95.4173 -12.8297 107.084 +95.719 -13.0988 109.33 +95.9235 -13.3605 111.514 +95.5182 -13.5415 113.026 +95.4117 -13.7687 114.922 +95.0274 -13.9597 116.516 +95.6805 -14.3092 119.433 +95.4891 -14.5391 121.352 +95.0885 -14.7416 123.042 +95.0266 -15.0013 125.21 +94.8742 -15.2523 127.305 +95.3388 -15.6101 130.291 +95.2934 -15.8924 132.647 +95.1563 -16.1661 134.932 +94.9297 -16.431 137.143 +94.7832 -16.7163 139.524 +94.7124 -17.0224 142.079 +94.4404 -17.2995 144.392 +94.7259 -17.6879 147.634 +94.4316 -17.9772 150.049 +94.4677 -18.3383 153.062 +94.6125 -18.7314 156.344 +94.7574 -19.1364 159.724 +94.3 -19.4297 162.172 +94.2006 -19.8065 165.317 +94.15 -20.2052 168.645 +94.048 -20.6054 171.985 +94.2699 -21.0909 176.037 +94.3814 -21.5678 180.018 +94.4754 -22.0571 184.101 +93.5231 -22.314 186.246 +116.651 -28.4512 237.471 +116.884 -29.151 243.312 +116.938 -29.8318 248.994 +116.736 -30.4717 254.335 +117.344 -31.3525 261.687 +115.677 -31.6476 264.15 +112.648 -31.5695 263.498 +109.983 -31.5862 263.638 +107.325 -31.5999 263.752 +104.636 -31.5994 263.748 +101.992 -31.6069 263.81 +99.3538 -31.6113 263.847 +96.7233 -31.6126 263.858 +94.0668 -31.5997 263.75 +93.145 -32.1798 268.592 +92.9703 -33.0537 275.886 +92.736 -33.9522 283.385 +92.5572 -34.9208 291.47 +92.5356 -36.0052 300.521 +92.589 -37.1835 310.355 +92.2834 -38.2844 319.545 +92.3843 -39.6283 330.762 +91.9843 -40.8373 340.852 +91.8394 -42.2442 352.595 +91.7126 -43.7576 365.227 +91.5573 -45.3664 378.655 +91.5326 -47.1636 393.656 +91.3592 -49.0222 409.169 +90.9822 -50.9186 424.998 +90.7523 -53.0629 442.895 +90.6152 -55.4555 462.865 +90.5528 -58.1206 485.11 +90.8006 -61.2584 511.299 +90.4791 -64.3187 536.843 +90.4035 -67.8997 566.732 +94.938 -75.5678 630.734 +87.6095 -74.1557 618.948 +84.3982 -76.2605 636.516 +75.0471 -72.7086 606.87 +71.8501 -75.0176 626.142 +64.2118 -72.6759 606.597 +61.0633 -75.4396 629.664 +53.2609 -72.419 604.452 +49.8372 -75.3295 628.745 +42.398 -72.1268 602.014 +38.7719 -75.4096 629.414 +31.8935 -72.394 604.244 +27.7507 -75.6093 631.081 +21.341 -72.6988 606.788 +16.6983 -75.8576 633.153 +10.6896 -72.851 608.058 +5.57015 -75.9284 633.744 +3.10862e-14 -72.8978 608.449 +-5.59196 -76.2258 636.226 +-10.6303 -72.4466 604.683 +-16.8658 -76.6187 639.506 +-21.5644 -73.4597 613.139 +-28.1868 -76.7978 641.001 +-32.6158 -74.0334 617.927 +-39.6266 -77.0719 643.288 +-43.7303 -74.3934 620.932 +-51.4299 -77.7369 648.839 +-55.0301 -74.8246 624.531 +-63.4115 -78.3406 653.878 +-65.7902 -74.4623 621.507 +-75.0877 -78.3979 654.356 +-77.7405 -75.318 628.649 +-87.7658 -79.3035 661.914 +-89.3352 -75.6163 631.139 +-100.008 -79.6032 664.416 +-102.449 -76.9468 642.244 +-113.206 -80.4746 671.689 +-115.025 -77.601 647.705 +-127.966 -82.134 685.539 +-125.896 -77.0468 643.079 +-139.059 -81.3078 678.644 +-111.42 -62.3567 520.467 +-114.929 -61.6696 514.732 +-119.157 -61.3973 512.459 +-124.356 -61.6183 514.303 +-134.412 -64.1301 535.268 +-142.742 -65.6581 548.022 +-142.454 -63.2438 527.871 +-142.652 -61.1906 510.733 +-142.697 -59.1991 494.111 +-144.45 -58.0108 484.193 +-148.349 -57.7221 481.783 +-162.231 -61.2077 510.876 +-142.179 -52.054 434.474 +-144.183 -51.2614 427.858 +-144.52 -49.9288 416.736 +-144.371 -48.4984 404.797 +-144.606 -47.2625 394.481 +-144.811 -46.0743 384.564 +-144.601 -44.8117 374.025 +-144.621 -43.6748 364.536 +-143.474 -42.2435 352.589 +-143.506 -41.2138 343.995 +-143.203 -40.1324 334.969 +-143.111 -39.1532 326.796 +-143.131 -38.2424 319.194 +-143.525 -37.4646 312.702 +-142.972 -36.4732 304.427 +-143.575 -35.8079 298.875 +-143.479 -34.9946 292.086 +-143.274 -34.1843 285.322 +-143.098 -33.4089 278.851 +-141.988 -32.4467 270.819 +-142.813 -31.9514 266.686 +-145.056 -31.781 265.263 +-149.079 -31.9934 267.036 +-416.787 -87.6331 731.438 +-109.65 -22.5925 188.57 +-108.867 -21.9858 183.507 +-110.27 -21.8313 182.217 +-111.24 -21.5942 180.238 +-98.8299 -18.8146 157.038 +-98.8094 -18.4505 153.999 +-98.6886 -18.0778 150.888 +-98.9623 -17.7862 148.454 +-98.7535 -17.4165 145.368 +-98.9512 -17.1271 142.953 +-99.2287 -16.858 140.707 +-99.0099 -16.5123 137.821 +-98.9243 -16.1972 135.191 +-100.109 -16.0938 134.328 +-99.2995 -15.6758 130.839 +-101.054 -15.6665 130.762 +-100.23 -15.261 127.377 +-102.777 -15.3705 128.292 +-101.446 -14.9026 124.386 +-106.416 -15.3567 128.176 +-103.746 -14.708 122.762 +-110.926 -15.45 128.955 +-108.84 -14.8943 124.317 +-113.573 -15.2708 127.459 +-112.28 -14.8341 123.815 +-120.796 -15.6817 130.889 +-116.963 -14.9206 124.536 +-438.207 -54.9318 458.494 +-120.662 -14.8637 124.062 +-441.433 -53.4368 446.015 +-441.659 -52.5391 438.523 +-444.64 -51.9786 433.844 +-447.142 -51.3663 428.734 +-449.152 -50.7036 423.202 +-2396.28 -265.821 2218.7 +-452.836 -49.3616 412.002 +-2434.91 -260.806 2176.84 +-455.515 -47.941 400.144 +-477.958 -49.4251 412.532 +-457.46 -46.478 387.934 +-476.709 -47.5842 397.167 +-463.283 -45.4304 379.189 +-466.21 -44.9103 374.848 +-468 -44.284 369.621 +-470.206 -43.7012 364.756 +-382.634 -34.9269 291.521 +-141.838 -12.7145 106.123 +-141.961 -12.4961 104.3 +-142.63 -12.3273 102.891 +-143.04 -12.1373 101.306 +-141.631 -11.7973 98.4672 +-142.244 -11.6296 97.0675 +-144.667 -11.6079 96.8863 +-147.097 -11.582 96.6704 +-2747.9 -212.283 1771.84 +-2763.37 -209.422 1747.96 +-494.751 -36.7766 306.96 +-497.601 -36.274 302.765 +-2808.51 -200.745 1675.54 +-2823.13 -197.822 1651.14 +-2837.53 -194.884 1626.62 +-2851.72 -191.931 1601.97 +-405.036 -26.708 222.921 +-405.662 -26.2013 218.692 +-405.096 -25.623 213.865 +-403.767 -25.0037 208.696 +-404.695 -24.5295 204.738 +-405.674 -24.0607 200.825 +-385.673 -22.3767 186.769 +-380.259 -21.576 180.086 +-379.471 -21.0497 175.694 +-378.908 -20.5415 171.452 +-381.679 -20.2152 168.728 +-378.929 -19.6 163.593 +-378.972 -19.1361 159.722 +-378.236 -18.6374 155.559 +-379.404 -18.235 152.201 +-379.796 -17.7969 148.544 +-378.94 -17.3039 144.429 +-380.57 -16.9265 141.279 +-380.012 -16.4535 137.331 +-379.507 -15.987 133.437 +-380.382 -15.5807 130.046 +-379.804 -15.1174 126.179 +-380.328 -14.7004 122.699 +-379.865 -14.2478 118.921 +-380.992 -13.8564 115.654 +-380.747 -13.4164 111.981 +-380.083 -12.9649 108.213 +-380.538 -12.5539 104.783 +-380.188 -12.1184 101.148 +-380.192 -11.6965 97.626 +-380.55 -11.287 94.2081 +-379.613 -10.8415 90.49 +-378.933 -10.4069 86.8623 +-380.56 -10.0363 83.7691 +-379.815 -9.60377 80.1588 +-380.015 -9.19727 76.7659 +-379.595 -8.77745 73.2619 +-379.045 -8.35705 69.753 +-379.939 -7.96945 66.5178 +-379.621 -7.55705 63.0757 +-380.161 -7.16268 59.7841 +-379.584 -6.74843 56.3265 +-379.867 -6.35081 53.0077 +-380.616 -5.96089 49.7532 +-379.351 -5.54091 46.2478 +-379.147 -5.13881 42.8916 +-379.808 -4.74875 39.6359 +-145.826 -1.67034 13.9417 +-379.749 -3.95225 32.9879 +-379.526 -3.55322 29.6573 +-379.972 -3.16075 26.3815 +-378.992 -2.75747 23.0155 +-379.879 -2.3683 19.7672 +-380.038 -1.97385 16.475 +-380.668 -1.58134 13.1988 +-146.05 -0.454951 3.79729 +-143.778 -0.298545 2.49184 +-146.694 -0.152288 1.27109 +95 -1.77636e-15 -1.7053e-13 +95.8963 -0.0920531 0.831797 +95.8854 -0.1841 1.66353 +95.8671 -0.276131 2.49514 +95.9415 -0.368526 3.33002 +95.9086 -0.460605 4.16205 +95.8684 -0.552649 4.99376 +95.7211 -0.643979 5.81902 +96.664 -0.743509 6.71838 +96.701 -0.83713 7.56435 +96.6309 -0.929921 8.40281 +96.5534 -1.02264 9.24063 +96.4686 -1.11529 10.0778 +96.3765 -1.20784 10.9141 +96.277 -1.3003 11.7496 +96.1702 -1.39266 12.5842 +95.957 -1.4834 13.4041 +95.8356 -1.57544 14.2358 +95.707 -1.66738 15.0665 +95.4724 -1.75737 15.8797 +96.0188 -1.86231 16.828 +94.9824 -1.93637 17.4972 +95.7087 -2.04636 18.491 +95.5427 -2.13815 19.3204 +95.3694 -2.22978 20.1484 +95.1889 -2.32124 20.9748 +95.878 -2.43479 22.0009 +95.6812 -2.52672 22.8316 +95.6712 -2.6238 23.7088 +95.4594 -2.71553 24.5377 +95.9164 -2.82698 25.5447 +95.6885 -2.91895 26.3758 +96.3184 -3.03798 27.4513 +96.0737 -3.13031 28.2856 +95.8217 -3.22241 29.1178 +96.5162 -3.34734 30.2467 +96.2469 -3.43986 31.0827 +95.9704 -3.53211 31.9163 +96.5374 -3.65633 33.0388 +96.9035 -3.77455 34.1071 +96.6004 -3.86744 34.9464 +96.2899 -3.96001 35.7828 +96.999 -4.09564 37.0085 +96.5773 -4.18457 37.812 +97.0761 -4.3142 38.9833 +96.8226 -4.41142 39.8618 +96.4689 -4.50419 40.7001 +96.2913 -4.6054 41.6146 +96.5618 -4.72897 42.7312 +96.3649 -4.8306 43.6495 +96.7937 -4.96475 44.8617 +96.3961 -5.05747 45.6996 +96.6204 -5.18356 46.8389 +96.2054 -5.27611 47.6752 +96.5851 -5.4132 48.914 +96.152 -5.5057 49.7498 +96.5062 -5.64426 51.0018 +96.8456 -5.78392 52.2638 +96.3831 -5.87666 53.1018 +95.9132 -5.96896 53.9358 +96.9948 -6.15979 55.6602 +96.4163 -6.24707 56.4489 +96.6028 -6.38471 57.6926 +96.0925 -6.4772 58.5283 +96.3383 -6.62164 59.8335 +96.484 -6.76115 61.0941 +96.6148 -6.90143 62.3617 +95.9803 -6.98783 63.1424 +96.2513 -7.14121 64.5284 +96.4228 -7.2894 65.8674 +96.4142 -7.42584 67.1002 +96.4727 -7.56921 68.3957 +95.9494 -7.66798 69.2883 +95.9805 -7.81213 70.5908 +96.0759 -7.96354 71.959 +96.0751 -8.10903 73.2737 +96.1373 -8.2619 74.6549 +96.1825 -8.41548 76.0428 +96.133 -8.56287 77.3745 +95.45 -8.65483 78.2055 +96.062 -8.86631 80.1165 +96.1153 -9.02962 81.5921 +96.0745 -9.18648 83.0095 +95.3421 -9.27835 83.8397 +95.8657 -9.49464 85.794 +95.7723 -9.65318 87.2267 +96.2461 -9.87227 89.2064 +96.0396 -10.0249 90.5851 +95.888 -10.1854 92.0361 +95.7895 -10.3542 93.5609 +95.5301 -10.508 94.9504 +95.9545 -10.7405 97.0515 +95.7239 -10.9034 98.5235 +95.6125 -11.0827 100.144 +95.889 -11.3107 102.204 +96.204 -11.5483 104.351 +95.8864 -11.7138 105.847 +96.0136 -11.9372 107.865 +95.719 -12.1119 109.444 +95.9235 -12.3539 111.63 +95.454 -12.513 113.068 +95.3481 -12.7229 114.965 +95.5308 -12.9764 117.255 +95.6805 -13.2311 119.557 +95.0581 -13.3831 120.931 +95.0277 -13.6222 123.091 +95.0266 -13.8711 125.34 +94.9337 -14.1121 127.517 +94.8098 -14.3539 129.702 +94.8288 -14.6235 132.138 +95.1563 -14.9482 135.072 +94.9863 -15.2021 137.367 +94.7832 -15.4569 139.669 +94.9884 -15.7858 142.641 +94.9306 -16.0793 145.293 +94.6722 -16.3461 147.704 +94.4316 -16.6229 150.205 +94.6245 -16.9849 153.476 +94.664 -17.3296 156.591 +94.2499 -17.6 159.034 +94.35 -17.9755 162.427 +94.1514 -18.3047 165.402 +94.5379 -18.76 169.516 +94.4297 -19.1303 172.863 +94.2229 -19.4922 176.133 +94.012 -19.8648 179.499 +94.1122 -20.317 183.585 +93.7015 -20.6723 186.796 +117.089 -26.4066 238.611 +117.185 -27.0243 244.193 +116.938 -27.5843 249.253 +117.068 -28.2561 255.323 +117.344 -28.9904 261.959 +115.677 -29.2633 264.425 +112.648 -29.191 263.772 +109.983 -29.2065 263.912 +107.325 -29.2192 264.026 +104.636 -29.2187 264.022 +101.992 -29.2257 264.085 +99.0386 -29.137 263.284 +96.7233 -29.231 264.132 +94.0668 -29.219 264.024 +93.145 -29.7554 268.872 +92.7482 -30.4904 275.513 +92.736 -31.3943 283.68 +92.5272 -32.2794 291.678 +92.4772 -33.2716 300.644 +92.447 -34.3294 310.202 +92.1456 -35.3473 319.4 +92.2774 -36.6004 330.723 +92.0619 -37.7925 341.495 +91.9395 -39.1041 353.347 +91.6158 -40.4182 365.221 +91.604 -41.97 379.243 +91.4201 -43.5568 393.581 +91.2942 -45.2967 409.303 +91.0029 -47.0933 425.537 +90.8121 -49.0975 443.648 +90.4435 -51.1803 462.468 +90.4982 -53.7094 485.321 +90.436 -56.4158 509.776 +90.5451 -59.5163 537.793 +90.1845 -62.6321 565.947 +98.5889 -72.5617 655.671 +92.2022 -72.1634 652.072 +87.0349 -72.718 657.083 +81.0675 -72.6242 656.236 +74.5443 -71.9669 650.297 +67.5254 -70.6683 638.563 +63.5649 -72.6137 656.141 +57.1132 -71.8062 648.845 +52.1204 -72.8452 658.233 +45.7463 -71.9599 650.233 +40.2859 -72.4511 654.672 +34.3272 -72.0477 651.026 +29.1945 -73.5504 664.606 +23.0232 -72.5203 655.297 +17.5804 -73.8482 667.296 +11.5168 -72.5754 655.795 +5.83805 -73.5848 664.916 +3.4639e-14 -72.5535 655.598 +-5.8686 -73.9696 668.393 +-11.5465 -72.7624 657.485 +-17.5386 -73.6722 665.706 +-23.2291 -73.169 661.159 +-29.4518 -74.1987 670.464 +-35.0128 -73.4866 664.029 +-41.4092 -74.4713 672.927 +-47.0926 -74.0775 669.368 +-54.1839 -75.7292 684.293 +-59.0742 -74.2718 671.124 +-66.2198 -75.6465 683.546 +-71.0794 -74.3877 672.171 +-79.0045 -76.2729 689.206 +-83.2977 -74.622 674.288 +-90.9898 -76.0224 686.942 +-96.2382 -75.3221 680.615 +-104.339 -76.7935 693.91 +-109.895 -76.321 689.641 +-116.606 -76.6466 692.583 +-122.005 -76.1093 687.727 +-133.378 -79.1582 715.277 +-136.867 -77.4507 699.848 +-141.551 -76.5296 691.525 +-111.358 -57.6266 520.717 +-114.908 -57.0128 515.171 +-119.247 -56.8146 513.38 +-124.123 -56.8691 513.872 +-133.783 -59.0211 533.318 +-143.142 -60.8818 550.131 +-142.972 -58.6915 530.339 +-143.614 -56.9621 514.713 +-144.765 -55.5322 501.792 +-930.633 -345.582 3122.7 +-159.43 -57.3601 518.309 +-160.908 -56.1348 507.237 +-141.839 -48.0172 433.886 +-144.183 -47.3994 428.303 +-144.52 -46.1672 417.169 +-144.639 -44.9276 405.969 +-144.64 -43.7121 394.985 +-144.811 -42.6031 384.964 +-144.601 -41.4356 374.414 +-144.585 -40.3741 364.823 +-143.437 -39.0508 352.865 +-143.047 -37.9868 343.25 +-143.086 -37.0785 335.044 +-143.111 -36.2034 327.136 +-143.619 -35.4818 320.616 +-143.94 -34.7421 313.931 +-144.197 -34.0144 307.356 +-144.867 -33.4081 301.877 +-145.495 -32.813 296.5 +-143.586 -31.6778 286.242 +-143.461 -30.9703 279.85 +-141.434 -29.885 270.042 +-142.813 -29.5442 266.963 +-144.865 -29.348 265.19 +-148.691 -29.5061 266.618 +-1613.33 -313.66 2834.25 +-109.15 -20.7951 187.906 +-108.918 -20.339 183.784 +-109.755 -20.0921 181.554 +-111.135 -19.9486 180.257 +-98.777 -17.3878 157.117 +-98.8631 -17.0697 154.242 +-99.1243 -16.7896 151.712 +-98.9623 -16.4462 148.609 +-98.6975 -16.0952 145.437 +-99.1777 -15.8729 143.428 +-99.2861 -15.5969 140.935 +-99.939 -15.4115 139.259 +-99.9823 -15.137 136.779 +-100.941 -15.0051 135.587 +-101.225 -14.7758 133.515 +-102.089 -14.6345 132.238 +-102.877 -14.484 130.878 +-106.886 -14.7806 133.559 +-107.236 -14.5664 131.622 +-110.487 -14.7429 133.218 +-110.881 -14.5352 131.341 +-113.783 -14.654 132.415 +-115.073 -14.5609 131.573 +-119.139 -14.8123 133.845 +-121.983 -14.9017 134.653 +-2213.57 -265.717 2401.03 +-436.615 -51.5017 465.372 +-438.069 -50.7774 458.827 +-440.413 -50.165 453.294 +-441.222 -49.3873 446.267 +-441.305 -48.5419 438.627 +-443.642 -47.9546 433.321 +-446.638 -47.4428 428.696 +-448.572 -46.823 423.095 +-450.441 -46.2032 417.494 +-453.204 -45.6798 412.765 +-454.433 -45.0075 406.69 +-455.515 -44.3292 400.561 +-477.958 -45.7015 412.961 +-456.244 -42.8621 387.304 +-475.943 -43.9285 396.941 +-462.82 -41.9658 379.205 +-2546.32 -226.809 2049.46 +-381.991 -33.4223 302.005 +-383.21 -32.9324 297.579 +-380.254 -32.0946 290.008 +-141.758 -11.75 106.174 +-142.604 -11.607 104.882 +-142.63 -11.3986 102.998 +-142.063 -11.1463 100.718 +-142.205 -10.9526 98.9687 +-142.244 -10.7534 97.1685 +-144.501 -10.721 96.8759 +-147.348 -10.7276 96.9355 +-2747.9 -196.289 1773.68 +-2763.37 -193.644 1749.78 +-495.939 -34.0875 308.017 +-497.857 -33.5584 303.236 +-500.5 -33.0793 298.906 +-2823.13 -182.918 1652.86 +-402.875 -25.5851 231.189 +-404.889 -25.1974 227.685 +-404.861 -24.6851 223.056 +-403.816 -24.1171 217.924 +-405.45 -23.7131 214.273 +-404.033 -23.1351 209.05 +-2919.38 -163.619 1478.47 +-404.063 -22.1596 200.236 +-386.841 -20.7535 187.53 +-377.1 -19.7848 178.777 +-380.015 -19.4918 176.129 +-379.454 -19.0213 171.878 +-379.304 -18.5758 167.852 +-379.021 -18.1277 163.803 +-378.972 -17.6944 159.888 +-378.606 -17.2501 155.872 +-379.125 -16.8489 152.248 +-377.75 -16.3673 147.896 +-379.314 -16.016 144.721 +-379.914 -15.6243 141.182 +-380.576 -15.2365 137.677 +-379.79 -14.7935 133.675 +-380.382 -14.4069 130.181 +-380.562 -14.0063 126.561 +-379.662 -13.5691 122.611 +-380.247 -13.1876 119.164 +-380.036 -12.7804 115.484 +-380.843 -12.4088 112.126 +-381.717 -12.0398 108.792 +-379.67 -11.5817 104.653 +-380.575 -11.2169 101.356 +-380.288 -10.8181 97.7525 +-379.677 -10.4127 94.0896 +-380.488 -10.0479 90.7929 +-379.809 -9.64512 87.1538 +-378.803 -9.23733 83.469 +-379.717 -8.87794 80.2215 +-380.799 -8.52189 77.0043 +-380.086 -8.12666 73.4329 +-378.16 -7.7094 69.6625 +-379.053 -7.35184 66.4316 +-380.41 -7.00224 63.2726 +-380.161 -6.62305 59.8462 +-378.595 -6.22374 56.2381 +-378.976 -5.85857 52.9383 +-379.426 -5.49458 49.6493 +-379.053 -5.11944 46.2595 +-379.445 -4.75539 42.97 +-379.808 -4.39098 39.6772 +-147.518 -1.56242 14.1181 +-380.646 -3.66312 33.1001 +-379.526 -3.28552 29.6882 +-380.371 -2.92569 26.4367 +-380.389 -2.55913 23.1244 +-380.777 -2.19505 19.8346 +-380.937 -1.82947 16.5312 +-378.869 -1.45529 13.1501 +-147.449 -0.424707 3.83767 +-144.978 -0.278357 2.51524 +-146.094 -0.14024 1.26721 +95.9 3.55271e-15 -1.7053e-13 +95.8963 -0.0845453 0.832593 +95.8854 -0.169085 1.66513 +95.8671 -0.25361 2.49753 +95.9415 -0.338469 3.33321 +95.8087 -0.422598 4.1617 +95.7686 -0.507047 4.99334 +95.7211 -0.591456 5.8246 +96.7637 -0.683574 6.73176 +96.701 -0.768854 7.57159 +96.6309 -0.854077 8.41086 +96.5534 -0.939234 9.24948 +96.4686 -1.02432 10.0874 +96.4758 -1.11047 10.9358 +96.1777 -1.19301 11.7487 +96.1702 -1.27908 12.5962 +96.9472 -1.37647 13.5553 +95.8356 -1.44695 14.2494 +96.4972 -1.54403 15.2054 +95.4724 -1.61404 15.8949 +96.0188 -1.71042 16.8441 +95.8674 -1.79501 17.6771 +95.7087 -1.87946 18.5087 +95.5427 -1.96377 19.339 +95.3694 -2.04792 20.1677 +95.1889 -2.13192 20.9949 +95.878 -2.23621 22.022 +95.8757 -2.32536 22.8999 +95.6712 -2.4098 23.7315 +96.3307 -2.51682 24.7853 +95.9164 -2.59641 25.5692 +95.6885 -2.68088 26.401 +96.3184 -2.7902 27.4776 +96.0737 -2.875 28.3127 +95.8217 -2.95959 29.1457 +95.5624 -3.04396 29.9765 +96.2469 -3.15931 31.1125 +95.9704 -3.24404 31.9469 +96.5374 -3.35812 33.0704 +96.9035 -3.4667 34.1397 +96.6004 -3.55201 34.9798 +96.2899 -3.63703 35.8171 +96.999 -3.76161 37.0439 +96.5773 -3.84328 37.8482 +97.1689 -3.96612 39.0579 +96.8226 -4.05163 39.9 +96.4689 -4.13683 40.7391 +96.1079 -4.22173 41.5751 +96.7445 -4.35149 42.853 +96.3649 -4.43662 43.6913 +96.6124 -4.55129 44.8206 +96.3961 -4.64499 45.7434 +96.6204 -4.7608 46.8838 +96.2054 -4.8458 47.7209 +96.5851 -4.97171 48.9608 +96.3294 -5.06599 49.8893 +96.5062 -5.18392 51.0507 +96.0547 -5.26881 51.8867 +96.3831 -5.39736 53.1527 +96.6965 -5.52691 54.4284 +96.2154 -5.61194 55.2658 +96.4163 -5.73757 56.5029 +96.6028 -5.86398 57.7478 +96.8599 -5.99642 59.0521 +96.3383 -6.08159 59.8908 +96.3996 -6.20428 61.0991 +95.86 -6.28903 61.9337 +96.0636 -6.42349 63.2578 +96.2513 -6.55878 64.5901 +96.4228 -6.69488 65.9305 +96.4142 -6.82019 67.1645 +95.8214 -6.90493 67.999 +95.9494 -7.04259 69.3546 +95.9805 -7.17498 70.6584 +96.0759 -7.31404 72.0279 +96.0751 -7.44767 73.3438 +96.1373 -7.58806 74.7264 +96.1825 -7.72912 76.1156 +96.2107 -7.87085 77.5113 +96.1444 -8.00677 78.8498 +96.1386 -8.14967 80.2571 +96.1153 -8.29317 81.6702 +96.0745 -8.43724 83.089 +95.9412 -8.57517 84.4473 +95.8657 -8.72026 85.8762 +96.3621 -8.92047 87.8478 +96.3193 -9.07399 89.3597 +96.1121 -9.21419 90.7404 +95.9599 -9.36173 92.1933 +95.7895 -9.5097 93.6505 +95.5301 -9.65093 95.0414 +95.9545 -9.86449 97.1444 +95.7934 -10.0214 98.6895 +95.6125 -10.1788 100.24 +95.889 -10.3882 102.302 +95.5285 -10.532 103.718 +95.9533 -10.7659 106.022 +96.0136 -10.9636 107.969 +95.6534 -11.1165 109.474 +95.274 -11.2695 110.981 +95.5182 -11.5001 113.252 +95.4117 -11.693 115.152 +95.5938 -11.9258 117.444 +95.6182 -12.1441 119.594 +95.5507 -12.3553 121.673 +94.9059 -12.4952 123.051 +95.0266 -12.7398 125.46 +94.9337 -12.9611 127.64 +94.8685 -13.1913 129.907 +94.7707 -13.4226 132.184 +95.2137 -13.7373 135.283 +94.9863 -13.9623 137.499 +94.7273 -14.1879 139.72 +94.9884 -14.4983 142.778 +94.985 -14.7763 145.516 +94.6185 -15.0043 147.761 +94.8555 -15.3357 151.024 +94.5722 -15.591 153.538 +94.664 -15.9162 156.741 +94.7574 -16.2515 160.043 +94.35 -16.5094 162.583 +94.6438 -16.8997 166.426 +94.15 -17.1592 168.982 +94.4297 -17.5701 173.028 +94.2229 -17.9024 176.301 +94.012 -18.2446 179.671 +94.1122 -18.6599 183.761 +93.7462 -18.9953 187.064 +117.089 -24.2529 238.84 +116.755 -24.729 243.529 +116.558 -25.2522 248.681 +117.109 -25.9607 255.658 +116.977 -26.5429 261.392 +115.677 -26.8766 264.678 +112.648 -26.8102 264.024 +109.983 -26.8245 264.165 +107.325 -26.8361 264.279 +104.636 -26.8357 264.275 +101.992 -26.8421 264.338 +99.3538 -26.8458 264.374 +96.7233 -26.8469 264.385 +94.0668 -26.8359 264.277 +93.2753 -27.3668 269.505 +93.0655 -28.0994 276.72 +92.6742 -28.8146 283.763 +92.5873 -29.6659 292.147 +92.7403 -30.6449 301.788 +92.3902 -31.5101 310.308 +92.2007 -32.4838 319.897 +92.2774 -33.6153 331.04 +92.0878 -34.7199 341.918 +91.9395 -35.9148 353.685 +91.7126 -37.161 365.957 +91.4172 -38.4683 378.832 +91.4651 -40.024 394.152 +91.2942 -41.6023 409.695 +91.1277 -43.3117 426.529 +90.832 -45.103 444.17 +90.5007 -47.0358 463.204 +90.407 -49.2793 485.297 +90.1929 -51.6752 508.892 +90.6276 -54.712 538.798 +90.3253 -57.6137 567.373 +98.781 -66.7734 657.577 +92.7032 -66.6379 656.243 +87.5048 -67.1478 661.264 +82.5787 -67.9443 669.108 +74.9179 -66.4286 654.182 +69.0724 -66.3916 653.818 +63.862 -67.003 659.839 +58.098 -67.087 660.666 +52.3558 -67.2062 661.84 +46.5136 -67.1994 661.773 +40.4141 -66.7538 657.384 +34.9657 -67.4023 663.771 +29.3777 -67.9756 669.417 +23.4734 -67.908 668.751 +17.7087 -68.32 672.808 +11.6792 -67.5957 665.675 +5.86074 -67.8458 668.138 +3.4639e-14 -68.1111 670.751 +-5.87819 -68.0478 670.128 +-11.7036 -67.7371 667.068 +-17.6302 -68.017 669.824 +-23.5083 -68.009 669.746 +-29.6263 -68.5509 675.082 +-35.7036 -68.8248 677.78 +-41.6717 -68.8311 677.841 +-47.8948 -69.1948 681.423 +-54.7331 -70.2579 691.892 +-61.0962 -70.549 694.759 +-66.4115 -69.678 686.181 +-72.8668 -70.0387 689.734 +-79.5026 -70.4939 694.216 +-85.857 -70.6417 695.672 +-91.538 -70.2427 691.743 +-97.9639 -70.4195 693.484 +-104.708 -70.7801 697.035 +-111.194 -70.9245 698.457 +-117.827 -71.1326 700.507 +-124.454 -71.3047 702.201 +-134.235 -73.169 720.561 +-139.176 -72.3338 712.336 +-141.731 -70.3769 693.064 +-111.42 -52.9562 521.507 +-114.735 -52.284 514.887 +-119.269 -52.1906 513.968 +-124.146 -52.2407 514.46 +-134.218 -54.3838 535.566 +-143.192 -55.936 550.851 +-142.868 -53.8656 530.463 +-143.828 -52.3942 515.973 +-903.181 -318.206 3133.66 +-930.633 -317.396 3125.69 +-159.255 -52.6238 518.234 +-157.089 -50.3329 495.673 +-142.148 -44.197 435.248 +-144.183 -43.5335 428.713 +-144.487 -42.3922 417.474 +-144.338 -41.1776 405.513 +-144.606 -40.1375 395.269 +-144.426 -39.0244 384.308 +-144.601 -38.0561 374.773 +-144.328 -37.0154 364.523 +-143.399 -35.8564 353.11 +-143.085 -34.898 343.672 +-143.047 -34.0451 335.273 +-143.47 -33.334 328.27 +-143.537 -32.5695 320.741 +-143.774 -31.8718 313.87 +-144.324 -31.2677 307.921 +-145.211 -30.7563 302.884 +-145.758 -30.1912 297.32 +-143.586 -29.0942 286.517 +-143.143 -28.3814 279.497 +-141.48 -27.4566 270.39 +-142.813 -27.1346 267.219 +-145.152 -27.0076 265.968 +-148.303 -27.0288 266.177 +-1613.33 -288.078 2836.96 +-109.55 -19.1691 188.775 +-108.918 -18.6801 183.96 +-110.218 -18.5314 182.496 +-111.135 -18.3216 180.429 +-98.8299 -15.9782 157.352 +-98.8631 -15.6775 154.39 +-98.5797 -15.3355 151.022 +-99.0175 -15.1132 148.834 +-99.2008 -14.8579 146.319 +-99.2344 -14.5867 143.648 +-99.2287 -14.3166 140.988 +-100.055 -14.171 139.554 +-100.629 -13.9924 137.795 +-100.822 -13.7651 135.557 +-101.947 -13.6676 134.597 +-102.455 -13.489 132.838 +-104.662 -13.5335 133.277 +-107.197 -13.6146 134.076 +-108.935 -13.5903 133.836 +-110.932 -13.595 133.883 +-112.488 -13.5432 133.372 +-114.757 -13.5741 133.677 +-117.303 -13.6325 134.252 +-120.067 -13.7102 135.017 +-127.202 -14.272 140.549 +-2213.57 -244.045 2403.33 +-436.752 -47.316 465.963 +-438.069 -46.636 459.266 +-440.969 -46.1318 454.301 +-441.713 -45.4097 447.19 +-441.305 -44.5829 439.047 +-443.856 -44.0647 433.944 +-446.638 -43.5734 429.106 +-449.224 -43.0668 424.117 +-450.66 -42.4555 418.097 +-453.204 -41.9542 413.16 +-454.805 -41.3706 407.413 +-455.515 -40.7137 400.944 +-477.958 -41.9741 413.356 +-456.244 -39.3663 387.675 +-476.173 -40.3653 397.513 +-462.589 -38.5238 379.378 +-2546.32 -208.311 2051.42 +-380.348 -30.5643 300.994 +-381.24 -30.091 296.333 +-382.158 -29.6246 291.74 +-141.758 -10.7917 106.275 +-142.685 -10.6663 105.041 +-142.63 -10.4689 103.097 +-142.063 -10.2372 100.815 +-142.369 -10.0709 99.1776 +-142.327 -9.88211 97.3179 +-144.584 -9.85229 97.0243 +-147.598 -9.86942 97.193 +-490.455 -32.177 316.875 +-493.215 -31.7434 312.605 +-495.515 -31.2806 308.048 +-497.857 -30.8214 303.526 +-500.071 -30.3553 298.936 +-2823.13 -168 1654.44 +-2837.53 -165.504 1629.87 +-2851.72 -162.997 1605.18 +-405.561 -22.711 223.656 +-2879.44 -157.944 1555.41 +-405.626 -21.7886 214.572 +-405.63 -21.3322 210.078 +-404.517 -20.8225 205.058 +-406.032 -20.4515 201.404 +-387.65 -19.1007 188.102 +-380.169 -18.319 180.403 +-379.018 -17.8551 175.835 +-378.908 -17.4448 171.795 +-379.487 -17.069 168.094 +-380.121 -16.6975 164.435 +-379.892 -16.2908 160.43 +-380.638 -15.9282 156.859 +-379.404 -15.486 152.505 +-378.866 -15.0769 148.475 +-378.847 -14.6917 144.682 +-381.226 -14.3995 141.805 +-380.012 -13.9731 137.605 +-379.507 -13.5769 133.703 +-379.248 -13.1924 129.917 +-380.088 -12.848 126.525 +-379.757 -12.4655 122.759 +-380.438 -12.1182 119.338 +-379.557 -11.7231 115.448 +-380.364 -11.3824 112.093 +-380.083 -11.0104 108.429 +-380.538 -10.6614 104.992 +-379.319 -10.268 101.118 +-379.708 -9.92056 97.6966 +-380.55 -9.58544 94.3964 +-379.905 -9.2142 90.7405 +-378.64 -8.83121 86.9688 +-380.267 -8.51673 83.8719 +-380.108 -8.16227 80.3811 +-380.015 -7.81074 76.9193 +-379.89 -7.46 73.4653 +-379.045 -7.09719 69.8924 +-379.545 -6.761 66.5816 +-380.114 -6.42613 63.2839 +-379.371 -6.07024 59.7791 +-378.595 -5.71614 56.2919 +-379.075 -5.38216 53.0029 +-379.525 -5.04776 49.7098 +-380.741 -4.72283 46.5099 +-379.743 -4.37098 43.0449 +-378.217 -4.01597 39.5488 +-146.323 -1.42337 14.0172 +-378.853 -3.34851 32.9757 +-379.526 -3.01756 29.7166 +-380.97 -2.69131 26.5037 +-380.888 -2.35349 23.1769 +-380.378 -2.01391 19.8328 +-380.038 -1.67629 16.5079 +-381.068 -1.34436 13.2391 +-147.749 -0.390861 3.84916 +-143.778 -0.253539 2.49682 +-146.694 -0.12933 1.27363 +95.9 3.55271e-15 -1.7053e-13 +95.8963 -0.0770307 0.833322 +95.8854 -0.154056 1.66658 +95.8671 -0.231069 2.49971 +95.8416 -0.308064 3.33265 +95.9086 -0.385437 4.16968 +95.8684 -0.46246 5.00292 +95.7211 -0.538886 5.8297 +95.6664 -0.615753 6.66125 +95.7041 -0.693294 7.50009 +96.6309 -0.778164 8.41822 +96.4539 -0.854869 9.24802 +96.4686 -0.933278 10.0963 +95.4823 -1.00135 10.8326 +96.277 -1.0881 11.7711 +96.1702 -1.16539 12.6073 +95.957 -1.24132 13.4286 +95.8356 -1.31834 14.2619 +95.707 -1.39527 15.0941 +95.4724 -1.47058 15.9088 +96.2157 -1.56159 16.8934 +95.8674 -1.63547 17.6926 +95.7087 -1.71241 18.5249 +95.7386 -1.79288 19.3955 +95.3694 -1.86589 20.1853 +96.0675 -1.96036 21.2073 +95.878 -2.03745 22.0412 +95.6812 -2.11438 22.8735 +95.4771 -2.19115 23.704 +95.4594 -2.27238 24.5827 +95.9164 -2.36564 25.5916 +95.6885 -2.4426 26.4241 +95.4533 -2.51936 27.2546 +96.0737 -2.61946 28.3375 +95.8217 -2.69653 29.1712 +96.5162 -2.80108 30.3022 +96.0567 -2.87281 31.0782 +95.9704 -2.95569 31.9749 +96.5374 -3.05964 33.0994 +96.0552 -3.13092 33.8705 +96.6004 -3.2363 35.0104 +96.2899 -3.31376 35.8485 +96.999 -3.42726 37.0763 +96.6704 -3.50505 37.9178 +97.0761 -3.61015 39.0548 +96.8226 -3.69151 39.9349 +96.4689 -3.76914 40.7748 +96.1079 -3.84648 41.6115 +96.5618 -3.95723 42.8096 +96.3649 -4.04227 43.7296 +96.7937 -4.15453 44.944 +96.3961 -4.23213 45.7834 +96.6204 -4.33764 46.9248 +96.3844 -4.4233 47.8515 +96.5851 -4.5298 49.0037 +96.152 -4.6072 49.841 +96.5062 -4.72315 51.0954 +96.0547 -4.8005 51.9321 +95.5959 -4.87747 52.7647 +96.6095 -5.03112 54.427 +96.2154 -5.11313 55.3142 +96.4163 -5.22759 56.5524 +96.6028 -5.34277 57.7984 +96.8599 -5.46344 59.1038 +96.3383 -5.54103 59.9432 +96.484 -5.65778 61.2062 +95.86 -5.73004 61.9879 +95.9803 -5.84746 63.2582 +96.2513 -5.97581 64.6467 +96.3404 -6.09461 65.9318 +96.4961 -6.21927 67.2805 +95.9028 -6.29655 68.1164 +95.9494 -6.41662 69.4154 +96.0609 -6.54272 70.7795 +96.1557 -6.66949 72.1509 +96.1544 -6.7913 73.4687 +96.2161 -6.91928 74.8532 +96.1825 -7.04213 76.1822 +96.2107 -7.17126 77.5792 +96.2216 -7.30097 78.9823 +96.1386 -7.4253 80.3273 +96.1914 -7.56202 81.8064 +96.0745 -7.68731 83.1618 +95.9412 -7.81298 84.5213 +95.94 -7.95134 86.0181 +95.7723 -8.07785 87.3866 +96.3193 -8.26746 89.4379 +96.1121 -8.3952 90.8198 +95.888 -8.52324 92.2049 +95.7895 -8.66445 93.7325 +95.5301 -8.79313 95.1246 +95.9545 -8.9877 97.2295 +95.7934 -9.13065 98.7759 +96.1631 -9.32744 100.905 +95.8208 -9.45815 102.319 +95.596 -9.60266 103.882 +95.8195 -9.79531 105.966 +95.4173 -9.92712 107.392 +95.719 -10.1353 109.645 +95.339 -10.2749 111.154 +95.454 -10.4709 113.275 +95.4753 -10.6608 115.329 +95.5938 -10.8658 117.547 +95.1202 -11.0071 119.075 +95.0581 -11.1991 121.152 +94.9668 -11.3918 123.238 +95.0868 -11.6147 125.648 +94.9337 -11.8091 127.751 +94.9861 -12.0338 130.182 +94.7707 -12.2295 132.3 +95.1563 -12.5087 135.32 +95.043 -12.7288 137.701 +94.7832 -12.9344 139.925 +94.6572 -13.1635 142.404 +94.4949 -13.3935 144.891 +94.5647 -13.663 147.807 +94.6966 -13.9491 150.903 +94.4677 -14.1895 153.503 +94.664 -14.5015 156.878 +94.1991 -14.7197 159.239 +94.3 -15.034 162.639 +94.2499 -15.3335 165.879 +94.15 -15.634 169.13 +94.382 -16.0003 173.092 +94.2229 -16.3112 176.456 +94.012 -16.623 179.828 +94.5208 -17.0752 184.72 +93.3446 -17.2328 186.425 +116.694 -22.0227 238.243 +117.185 -22.6141 244.641 +116.938 -23.0827 249.71 +117.192 -23.67 256.063 +117.059 -24.2004 261.802 +115.677 -24.4877 264.91 +112.648 -24.4272 264.255 +109.983 -24.4402 264.396 +107.325 -24.4508 264.51 +104.636 -24.4504 264.506 +101.992 -24.4562 264.569 +99.3538 -24.4596 264.606 +96.7233 -24.4607 264.617 +94.0668 -24.4506 264.508 +93.1776 -24.9082 269.458 +93.002 -25.5844 276.774 +92.9214 -26.3235 284.769 +92.4971 -27.0028 292.118 +92.5064 -27.8507 301.291 +92.3618 -28.7006 310.484 +92.2007 -29.5965 320.177 +92.2774 -30.6274 331.329 +92.1396 -31.6517 342.41 +92.0147 -32.7493 354.284 +91.761 -33.8758 366.471 +91.3939 -35.0402 379.067 +91.3976 -36.4397 394.206 +91.2077 -37.8686 409.664 +90.9198 -39.372 425.928 +90.6127 -40.9949 443.485 +90.5198 -42.8642 463.707 +90.5164 -44.9535 486.31 +90.1755 -47.0731 509.24 +90.182 -49.6039 536.618 +90.2314 -52.4383 567.281 +99.0766 -61.0204 660.123 +92.9259 -60.8607 658.395 +89.1233 -62.3111 674.085 +83.8095 -62.8279 679.676 +82.4233 -66.5876 720.349 +70.4208 -61.6714 667.165 +67.0633 -64.1078 693.522 +58.9434 -62.0135 670.866 +257.056 -300.639 3252.33 +47.4344 -62.4386 675.464 +43.6009 -65.6164 709.842 +35.6827 -62.6707 677.976 +142.91 -301.282 3259.28 +114.341 -301.385 3260.4 +85.7635 -301.466 3261.28 +11.9532 -63.0325 681.889 +6.34855 -66.9606 724.384 +3.10862e-14 -63.6403 688.465 +-6.33634 -66.8317 722.99 +-12.016 -63.3637 685.473 +-18.8762 -66.3513 717.793 +-24.1854 -63.7488 689.638 +-31.816 -67.0742 725.612 +-36.5933 -64.2701 695.278 +-44.5288 -67.0129 724.949 +-49.1155 -64.6515 699.403 +-57.6517 -67.4266 729.425 +-62.2292 -65.4705 708.263 +-71.1463 -68.0109 735.746 +-75.2709 -65.9189 713.115 +-84.6534 -68.3892 739.839 +-88.9646 -66.6925 721.483 +-98.717 -69.0186 746.647 +-101.499 -66.4756 719.137 +-115.572 -71.18 770.029 +-115.198 -66.9479 724.246 +-127.813 -70.3026 760.538 +-128.031 -66.8342 723.017 +-140.686 -69.8693 755.851 +-140.683 -66.6184 720.682 +-142.887 -64.6447 699.331 +-111.378 -48.2313 521.77 +-114.908 -47.7087 516.116 +-119.269 -47.5518 514.418 +-124.123 -47.5884 514.814 +-133.541 -49.2999 533.329 +-144.094 -51.285 554.804 +-143.386 -49.2557 532.851 +-875.553 -290.601 3143.74 +-903.181 -289.922 3136.4 +-930.519 -289.15 3128.04 +-158.962 -47.8585 517.736 +-163.193 -47.6411 515.385 +-142.148 -40.2687 435.629 +-144.215 -39.6729 429.183 +-144.52 -38.633 417.934 +-144.405 -37.535 406.056 +-144.606 -36.5699 395.615 +-144.391 -35.5471 384.551 +-144.566 -34.6649 375.007 +-144.621 -33.7939 365.584 +-143.399 -32.6694 353.419 +-143.124 -31.8046 344.064 +-143.164 -31.0445 335.841 +-144.467 -30.5822 330.841 +-144.066 -29.7839 322.204 +-145.474 -29.3822 317.859 +-144.789 -28.5803 309.183 +-147.149 -28.3964 307.194 +-146.504 -27.6484 299.102 +-143.274 -26.4505 286.143 +-143.098 -25.8505 279.653 +-141.48 -25.0162 270.626 +-142.813 -24.7228 267.453 +-144.913 -24.5667 265.764 +-148.4 -24.6425 266.584 +-430.772 -70.0823 758.155 +-109.55 -17.4653 188.94 +-108.918 -17.0198 184.121 +-110.167 -16.8764 182.57 +-111.24 -16.7088 180.756 +-98.777 -14.5502 157.405 +-98.9706 -14.2996 154.693 +-99.0698 -14.0419 151.906 +-99.735 -13.8697 150.043 +-99.8159 -13.6212 147.355 +-100.027 -13.3964 144.923 +-100.376 -13.1949 142.743 +-100.636 -12.9863 140.487 +-100.923 -12.7859 138.318 +-103.797 -12.9115 139.678 +-103.572 -12.6512 136.862 +-109.394 -13.1226 141.961 +-107.187 -12.628 136.611 +-113.235 -13.1032 141.752 +-111.579 -12.6828 137.203 +-117.102 -13.0756 141.453 +-114.609 -12.5721 136.006 +-119.888 -12.9205 139.775 +-119.337 -12.6362 136.699 +-431.299 -44.8718 485.425 +-159.186 -16.2731 176.043 +-434.945 -43.6903 472.644 +-436.82 -43.1171 466.443 +-438.964 -42.5776 460.607 +-440.483 -41.985 454.197 +-441.292 -41.3342 447.156 +-441.517 -40.6397 439.643 +-442.929 -40.0642 433.417 +-446.278 -39.6685 429.136 +-447.556 -39.0931 422.912 +-450.66 -38.6819 418.463 +-452.172 -38.1381 412.58 +-453.913 -37.6195 406.97 +-455.065 -37.0583 400.899 +-477.203 -38.1829 413.065 +-2491.47 -195.866 2118.89 +-475.943 -36.7597 397.669 +-382.494 -29.0223 313.965 +-382.978 -28.546 308.812 +-381.913 -27.9623 302.497 +-381.24 -27.4164 296.593 +-380.175 -26.8514 290.48 +-141.678 -9.82697 106.309 +-142.685 -9.71827 105.133 +-142.63 -9.53841 103.187 +-142.877 -9.38064 101.48 +-142.369 -9.17581 99.2644 +-142.574 -9.01939 97.5723 +-144.501 -8.97144 97.0535 +-147.348 -8.97696 97.1133 +-490.79 -29.3371 317.37 +-2763.37 -162.043 1752.99 +-495.515 -28.5003 308.318 +-497.43 -28.0579 303.532 +-2808.51 -155.329 1680.36 +-506.983 -27.4881 297.368 +-2837.53 -150.794 1631.3 +-404.977 -21.0899 228.152 +-404.249 -20.6255 223.128 +-405.31 -20.2561 219.132 +-404.92 -19.8174 214.386 +-404.566 -19.3852 209.71 +-2919.38 -136.918 1481.19 +-404.063 -18.5433 200.603 +-385.313 -17.2981 187.132 +-377.1 -16.5561 179.104 +-380.377 -16.3264 176.62 +-379.909 -15.9362 172.399 +-380.035 -15.5743 168.484 +-378.196 -15.1363 163.746 +-379.156 -14.814 160.259 +-378.883 -14.4455 156.272 +-379.867 -14.1268 152.824 +-379.796 -13.7706 148.971 +-380.247 -13.4353 145.343 +-379.071 -13.0455 141.127 +-380.012 -12.7311 137.726 +-379.319 -12.3639 133.754 +-380.382 -12.0558 130.42 +-378.95 -11.6709 126.257 +-379.662 -11.3547 122.836 +-380.056 -11.0299 119.322 +-380.418 -10.7054 115.811 +-380.747 -10.3811 112.303 +-379.794 -10.0241 108.442 +-378.803 -9.66948 104.605 +-379.126 -9.35054 101.155 +-380.579 -9.05953 98.0066 +-380.841 -8.74013 94.5512 +-378.738 -8.36943 90.541 +-380.004 -8.07524 87.3585 +-380.17 -7.75775 83.9238 +-380.108 -7.43678 80.4515 +-379.231 -7.10182 76.8279 +-379.792 -6.79517 73.5106 +-379.536 -6.47475 70.0443 +-379.545 -6.16006 66.6399 +-379.523 -5.84584 63.2407 +-379.075 -5.52637 59.7846 +-377.705 -5.19583 56.2088 +-379.57 -4.91017 53.1185 +-379.129 -4.59429 49.7013 +-379.55 -4.28958 46.405 +-380.339 -3.98872 43.1502 +-380.305 -3.67922 39.802 +-146.423 -1.29774 14.039 +-379.749 -3.0581 33.0828 +-380.025 -2.75296 29.7816 +-380.87 -2.45145 26.5199 +-379.391 -2.13587 23.106 +-379.579 -1.83105 19.8085 +-379.039 -1.52328 16.4789 +-379.469 -1.21972 13.195 +-146.45 -0.352988 3.81864 +-144.078 -0.231485 2.50421 +-146.194 -0.117434 1.2704 +95.1 -1.77636e-15 -1.7053e-13 +95.8963 -0.0695097 0.833983 +95.9854 -0.139159 1.66964 +95.8671 -0.208508 2.5017 +95.9415 -0.278276 3.33877 +95.9086 -0.347805 4.17299 +95.9683 -0.417743 5.01211 +95.7211 -0.486271 5.83432 +96.7637 -0.562007 6.743 +95.7041 -0.625604 7.50604 +96.7305 -0.702911 8.43358 +96.4539 -0.771403 9.25536 +96.5681 -0.843021 10.1146 +95.4823 -0.903579 10.8412 +96.3762 -0.982875 11.7926 +96.1702 -1.05161 12.6173 +96.155 -1.12243 13.467 +95.8356 -1.18962 14.2732 +95.707 -1.25904 15.1061 +95.4724 -1.327 15.9214 +96.1172 -1.40769 16.8895 +95.8674 -1.47579 17.7066 +95.8068 -1.5468 18.5587 +95.7386 -1.61783 19.4109 +96.3475 -1.70098 20.4085 +96.0675 -1.76896 21.2241 +96.1703 -1.84413 22.126 +95.6812 -1.90794 22.8916 +95.7682 -1.98325 23.7952 +95.4594 -2.05051 24.6022 +96.013 -2.13682 25.6377 +95.6885 -2.20411 26.4451 +96.5107 -2.29857 27.5784 +96.0737 -2.36371 28.36 +96.013 -2.43811 29.2527 +96.5162 -2.52759 30.3262 +96.342 -2.60002 31.1952 +95.9704 -2.66711 32.0002 +96.632 -2.76362 33.1581 +96.0552 -2.82523 33.8974 +96.0366 -2.90327 34.8337 +96.2899 -2.99022 35.8769 +97.0924 -3.09562 37.1415 +96.6704 -3.16283 37.9479 +96.4271 -3.23589 38.8245 +96.8226 -3.33108 39.9666 +96.561 -3.40438 40.8461 +96.1079 -3.47093 41.6445 +96.8358 -3.581 42.9651 +96.3649 -3.6476 43.7643 +96.8843 -3.75242 45.0218 +96.3961 -3.81892 45.8197 +96.0811 -3.89229 46.7 +96.3844 -3.99143 47.8895 +95.8723 -4.05737 48.6806 +96.152 -4.15738 49.8805 +96.5945 -4.26591 51.1827 +96.0547 -4.3318 51.9733 +96.4706 -4.44152 53.2897 +96.6095 -4.5399 54.4701 +96.2154 -4.61391 55.3581 +96.4163 -4.71719 56.5973 +96.6885 -4.8254 57.8956 +96.8599 -4.93001 59.1507 +96.4231 -5.00443 60.0436 +96.484 -5.10538 61.2547 +95.9439 -5.17511 62.0914 +95.9803 -5.27654 63.3084 +96.2513 -5.39236 64.698 +96.3404 -5.49956 65.9841 +96.578 -5.61682 67.391 +95.9028 -5.68178 68.1704 +96.0303 -5.79501 69.529 +96.0609 -5.90392 70.8357 +96.2356 -6.02331 72.2681 +96.1544 -6.12823 73.527 +95.6645 -6.20791 74.483 +96.1825 -6.35457 76.2426 +96.2107 -6.47109 77.6407 +96.2216 -6.58813 79.0449 +96.2152 -6.70567 80.4551 +96.1914 -6.8237 81.8713 +96.0745 -6.93675 83.2277 +95.9412 -7.05015 84.5883 +95.94 -7.17501 86.0863 +95.7723 -7.28916 87.456 +96.3193 -7.46026 89.5088 +96.1121 -7.57553 90.8918 +96.1038 -7.70838 92.4857 +95.7895 -7.81849 93.8068 +95.6008 -7.94048 95.2705 +95.9545 -8.11018 97.3066 +95.8629 -8.24514 98.9259 +96.1631 -8.41675 100.985 +96.0254 -8.55297 102.619 +95.596 -8.6651 103.965 +95.9533 -8.85131 106.199 +95.4173 -8.95788 107.477 +95.7846 -9.15207 109.807 +95.339 -9.27167 111.242 +95.6468 -9.46761 113.593 +95.4753 -9.61994 115.421 +95.0903 -9.75333 117.021 +95.1202 -9.9324 119.17 +95.1813 -10.1187 121.405 +94.9668 -10.2796 123.335 +95.147 -10.4873 125.828 +94.9337 -10.6561 127.853 +94.9273 -10.8521 130.205 +94.7707 -11.0355 132.405 +95.3284 -11.3079 135.673 +95.043 -11.486 137.81 +94.951 -11.6923 140.285 +94.6572 -11.8783 142.517 +94.985 -12.1485 145.759 +94.5647 -12.329 147.924 +94.4846 -12.5591 150.685 +94.4677 -12.8041 153.624 +94.2005 -13.0216 156.234 +94.1991 -13.2826 159.365 +94.3 -13.5661 162.768 +94.2499 -13.8364 166.01 +94.6348 -14.1803 170.136 +94.382 -14.4381 173.229 +94.2699 -14.726 176.683 +94.012 -15 179.971 +94.203 -15.3562 184.245 +93.3446 -15.5502 186.573 +116.651 -19.8651 238.343 +117.185 -20.4062 244.835 +116.981 -20.8366 249.999 +117.192 -21.359 256.266 +117.303 -21.8832 262.557 +115.677 -22.0968 265.12 +112.687 -22.0499 264.557 +109.983 -22.054 264.606 +107.025 -22.0019 263.981 +104.636 -22.0632 264.716 +101.705 -22.0064 264.035 +99.3538 -22.0715 264.816 +96.4497 -22.01 264.077 +94.0668 -22.0634 264.718 +93.0474 -22.4449 269.295 +93.002 -23.0865 276.994 +92.7051 -23.6981 284.331 +92.4971 -24.3663 292.349 +92.2725 -25.0679 300.767 +92.3618 -25.8984 310.731 +92.311 -26.7388 320.815 +92.2774 -27.6371 331.592 +91.9584 -28.5052 342.007 +92.0147 -29.5518 354.565 +91.4223 -30.4555 365.408 +91.3939 -31.619 379.368 +91.1052 -32.7766 393.256 +91.2077 -34.1713 409.989 +90.6495 -35.4222 424.998 +90.6127 -36.9923 443.837 +90.2908 -38.5813 462.901 +90.5164 -40.5644 486.695 +90.0366 -42.4117 508.859 +90.182 -44.7608 537.044 +89.9342 -47.1625 565.86 +99.0766 -55.0627 660.646 +93.2042 -55.0831 660.891 +89.1233 -56.2273 674.62 +88.4893 -59.8594 718.198 +82.4233 -60.0863 720.92 +89.675 -70.8657 850.252 +67.0633 -57.8486 694.072 +86.7025 -82.3123 987.59 +257.056 -271.286 3254.91 +83.9868 -99.7593 1196.92 +43.6009 -59.2099 710.405 +81.2202 -128.722 1544.42 +142.91 -271.866 3261.87 +60.5402 -143.994 1727.65 +85.7635 -272.032 3263.86 +54.277 -258.273 3098.79 +6.34855 -60.4229 724.958 +1.46549e-13 -258.213 3098.06 +-6.33634 -60.3066 723.563 +-54.2665 -258.224 3098.19 +-18.8762 -59.8731 718.362 +-108.534 -258.147 3097.27 +-31.816 -60.5254 726.188 +-133.373 -211.377 2536.12 +-44.5288 -60.47 725.524 +-130.738 -155.289 1863.17 +-57.6517 -60.8434 730.004 +-134.185 -127.39 1528.44 +-71.1463 -61.3706 736.33 +-125.361 -99.0666 1188.61 +-84.6534 -61.712 740.426 +-157.76 -106.718 1280.41 +-98.717 -62.2799 747.239 +-120.232 -71.0561 852.537 +-115.572 -64.2303 770.64 +-149.692 -78.5003 941.853 +-127.813 -63.4386 761.141 +-568.924 -267.991 3215.38 +-140.686 -63.0476 756.45 +-150.835 -64.4515 773.295 +-142.887 -58.3331 699.885 +-111.399 -43.5303 522.28 +-114.908 -43.0506 516.525 +-119.494 -42.9899 515.797 +-124.123 -42.9421 515.223 +-130.154 -43.3582 520.215 +-144.094 -46.2777 555.244 +-391.774 -121.442 1457.07 +-875.553 -262.228 3146.23 +-903.071 -261.583 3138.5 +-930.519 -260.919 3130.53 +-957.897 -260.234 3122.31 +-163.193 -42.9897 515.794 +-142.642 -36.4634 437.491 +-144.215 -35.7994 429.524 +-147.645 -35.615 427.311 +-144.405 -33.8702 406.378 +-1120.56 -255.714 3068.07 +-144.391 -32.0764 384.856 +-1174.26 -254.081 3048.49 +-144.621 -30.4944 365.874 +-143.362 -29.472 353.607 +-143.124 -28.6993 344.337 +-146.798 -28.7245 344.639 +-144.467 -27.5963 331.103 +-1332.75 -248.629 2983.07 +-145.474 -26.5135 318.111 +-490.533 -87.3736 1048.32 +-147.149 -25.6239 307.438 +-1436.32 -244.599 2934.72 +-143.274 -23.868 286.37 +-143.915 -23.4598 281.473 +-141.48 -22.5737 270.841 +-142.532 -22.265 267.137 +-144.913 -22.1681 265.975 +-148.691 -22.2802 267.319 +-430.772 -63.2398 758.756 +-109.5 -15.7529 189.005 +-108.918 -15.358 184.267 +-110.115 -15.2215 182.629 +-111.24 -15.0774 180.9 +-112.661 -14.9751 179.672 +-98.9706 -12.9034 154.816 +-115.845 -14.8164 177.769 +-99.735 -12.5155 150.162 +-119.052 -14.66 175.892 +-100.027 -12.0884 145.038 +-125.957 -14.9411 179.264 +-100.636 -11.7184 140.598 +-414.976 -47.4403 569.192 +-103.797 -11.6509 139.788 +-417.118 -45.9758 551.621 +-109.394 -11.8413 142.073 +-420.251 -44.6769 536.037 +-113.235 -11.8239 141.864 +-421.959 -43.2799 519.276 +-117.102 -11.799 141.565 +-431.503 -42.7126 512.469 +-119.888 -11.659 139.886 +-434.377 -41.5038 497.966 +-431.299 -40.4907 485.811 +-161.729 -14.9188 178.997 +-434.945 -39.4245 473.019 +-437.707 -38.9863 467.761 +-438.964 -38.4205 460.973 +-441.386 -37.9635 455.49 +-441.292 -37.2985 447.51 +-441.517 -36.6718 439.991 +-442.929 -36.1525 433.761 +-2356.92 -189.046 2268.19 +-447.556 -35.2763 423.247 +-2396.28 -185.6 2226.85 +-452.172 -34.4144 412.907 +-381.828 -28.5555 342.611 +-455.065 -33.4401 401.217 +-381.732 -27.5618 330.688 +-2491.47 -176.742 2120.57 +-383.635 -26.7373 320.796 +-382.494 -26.1887 314.215 +-418.26 -28.132 337.53 +-381.913 -25.2321 302.737 +-382.106 -24.7958 297.502 +-380.175 -24.2297 290.71 +-140.72 -8.80754 105.674 +-142.685 -8.76942 105.216 +-142.711 -8.61194 103.327 +-142.877 -8.46476 101.561 +-142.369 -8.27992 99.3431 +-142.574 -8.13878 97.6497 +-144.667 -8.1048 97.242 +-147.348 -8.10049 97.1903 +-491.377 -26.5044 318.001 +-2763.37 -146.221 1754.38 +-495.345 -25.7088 308.456 +-497.43 -25.3184 303.773 +-2808.51 -140.163 1681.69 +-506.983 -24.8043 297.604 +-2837.53 -136.071 1632.59 +-404.977 -19.0308 228.333 +-405.824 -18.6842 224.175 +-405.31 -18.2784 219.306 +-406.509 -17.9527 215.398 +-404.566 -17.4925 209.876 +-406.477 -17.2023 206.394 +-404.063 -16.7328 200.762 +-385.313 -15.6092 187.281 +-377.1 -14.9396 179.246 +-378.927 -14.6762 176.086 +-379.909 -14.3803 172.536 +-379.304 -14.0267 168.293 +-378.196 -13.6585 163.876 +-380.721 -13.4228 161.048 +-378.883 -13.0351 156.396 +-379.682 -12.7413 152.871 +-379.796 -12.4261 149.089 +-380.154 -12.1205 145.423 +-379.071 -11.7718 141.239 +-379.166 -11.4625 137.528 +-379.319 -11.1568 133.86 +-380.193 -10.8733 130.459 +-378.95 -10.5314 126.357 +-380.137 -10.2589 123.087 +-380.056 -9.953 119.417 +-379.653 -9.64079 115.671 +-380.747 -9.36752 112.392 +-379.314 -9.03404 108.391 +-378.803 -8.7254 104.688 +-379.802 -8.45271 101.416 +-380.579 -8.175 98.0843 +-378.803 -7.84458 94.12 +-378.738 -7.55228 90.6128 +-381.856 -7.32231 87.8537 +-380.17 -7.00032 83.9904 +-380.988 -6.72622 80.7018 +-379.231 -6.40842 76.8888 +-379.792 -6.13172 73.5689 +-379.536 -5.84259 70.0998 +-380.037 -5.56583 66.7793 +-379.523 -5.27508 63.2909 +-379.569 -4.9933 59.9101 +-377.705 -4.68853 56.2534 +-380.659 -4.44348 53.3132 +-379.129 -4.14572 49.7407 +-379.649 -3.87178 46.4539 +-380.339 -3.59928 43.1845 +-380.405 -3.32086 39.8439 +-146.423 -1.17104 14.0502 +-379.65 -2.7588 33.1003 +-380.025 -2.48417 29.8053 +-379.274 -2.20283 26.4298 +-379.391 -1.92733 23.1243 +-380.777 -1.65749 19.8867 +-379.039 -1.37455 16.492 +-379.868 -1.1018 13.2195 +-146.45 -0.318523 3.82167 +-145.978 -0.211638 2.53925 +-146.194 -0.105968 1.27141 +96 1.77636e-15 -2.27374e-13 +95.1964 -0.0615307 0.828484 +96.0854 -0.12422 1.67257 +95.9671 -0.186125 2.50609 +96.0415 -0.248402 3.34463 +95.9086 -0.310144 4.17596 +95.9683 -0.372509 5.01568 +96.8191 -0.438591 5.90545 +96.7637 -0.501152 6.7478 +96.8007 -0.564255 7.59746 +96.7305 -0.626799 8.43958 +96.653 -0.689295 9.28106 +96.5681 -0.751737 10.1218 +96.4758 -0.814122 10.9618 +96.3762 -0.876448 11.801 +96.2693 -0.938707 12.6393 +96.155 -1.00089 13.4766 +95.9345 -1.06191 14.2981 +96.5959 -1.13314 15.2573 +96.2615 -1.19308 16.0644 +96.1172 -1.25526 16.9016 +95.9657 -1.31733 17.7373 +95.8068 -1.37931 18.5719 +95.6407 -1.44118 19.4049 +95.4672 -1.50294 20.2365 +95.2865 -1.56459 21.0665 +96.1703 -1.64444 22.1417 +95.7784 -1.70308 22.9312 +95.7682 -1.7685 23.8121 +96.4275 -1.84702 24.8693 +96.013 -1.90544 25.6559 +96.7485 -1.98722 26.757 +95.5494 -2.02926 27.3231 +96.2655 -2.11197 28.4368 +96.013 -2.17411 29.2735 +95.7532 -2.23609 30.108 +96.342 -2.31849 31.2174 +96.0652 -2.38067 32.0547 +96.632 -2.46437 33.1817 +96.338 -2.52673 34.0214 +96.7883 -2.60917 35.1313 +96.3836 -2.66903 35.9373 +96.999 -2.75776 37.1321 +96.7634 -2.82307 38.0114 +96.4271 -2.8855 38.8521 +96.915 -2.97323 40.0332 +96.561 -3.03575 40.8751 +96.1996 -3.09805 41.7139 +96.0136 -3.16613 42.6306 +96.4559 -3.25571 43.8368 +96.0686 -3.31793 44.6745 +96.4864 -3.40859 45.8952 +96.0811 -3.47083 46.7332 +96.2949 -3.55593 47.879 +96.7633 -3.65166 49.168 +96.2407 -3.71063 49.9621 +96.5945 -3.80399 51.2191 +96.1426 -3.86628 52.0578 +96.4706 -3.96059 53.3276 +96.7836 -4.05561 54.6071 +96.302 -4.11801 55.4473 +96.5886 -4.21393 56.7388 +96.7742 -4.30672 57.9881 +96.9452 -4.40006 59.2449 +96.4231 -4.46255 60.0863 +96.3996 -4.54857 61.2446 +95.9439 -4.61474 62.1356 +96.2304 -4.71746 63.5186 +96.2513 -4.80847 64.744 +96.4228 -4.90825 66.0875 +95.8408 -4.97038 66.9241 +95.9842 -5.07085 68.2769 +96.0303 -5.16752 69.5785 +96.1413 -5.26904 70.9454 +96.2356 -5.3711 72.3195 +96.3131 -5.47367 73.7006 +96.3737 -5.57675 75.0886 +96.3391 -5.67572 76.4211 +96.2884 -5.77505 77.7586 +95.6814 -5.84178 78.6571 +96.2152 -5.97957 80.5124 +96.1153 -6.08001 81.8647 +96.15 -6.19049 83.3523 +96.0161 -6.29166 84.7146 +95.94 -6.39809 86.1475 +95.7723 -6.49988 87.5182 +95.7342 -6.61205 89.0284 +96.1846 -6.76034 91.0251 +96.1038 -6.8737 92.5515 +95.7895 -6.97189 93.8736 +95.6715 -7.08591 95.4087 +96.1648 -7.24785 97.5892 +95.8629 -7.35235 98.9962 +96.232 -7.51071 101.128 +95.9572 -7.62136 102.618 +95.7311 -7.73772 104.185 +95.8864 -7.8874 106.201 +95.5498 -7.99894 107.702 +95.8502 -8.16663 109.96 +95.4039 -8.27335 111.397 +95.7111 -8.44815 113.751 +95.5389 -8.58398 115.58 +95.2162 -8.70871 117.259 +95.1202 -8.85691 119.255 +95.1813 -9.02304 121.491 +95.0885 -9.17828 123.582 +95.2071 -9.35767 125.997 +95.1122 -9.52009 128.184 +94.8685 -9.67103 130.216 +94.8869 -9.85257 132.661 +95.271 -10.0774 135.687 +95.043 -10.2423 137.908 +94.8391 -10.4139 140.219 +94.6572 -10.5921 142.618 +95.0395 -10.8393 145.946 +94.7797 -11.0189 148.365 +94.4846 -11.1991 150.792 +94.6245 -11.4366 153.989 +94.252 -11.618 156.431 +94.3006 -11.8571 159.651 +94.3 -12.0972 162.883 +94.2006 -12.3317 166.042 +94.247 -12.593 169.559 +94.4297 -12.8812 173.44 +94.2699 -13.1314 176.809 +94.3814 -13.4284 180.807 +94.203 -13.6934 184.376 +93.9246 -13.9527 187.867 +116.738 -17.7274 238.692 +116.669 -18.1164 243.929 +116.938 -18.5736 250.086 +116.861 -18.9923 255.723 +117.222 -19.5001 262.561 +115.358 -19.6498 264.576 +112.687 -19.6623 264.745 +109.677 -19.6112 264.057 +107.4 -19.6882 265.094 +104.38 -19.626 264.255 +101.705 -19.6235 264.222 +99.0737 -19.6261 264.257 +96.4839 -19.6337 264.359 +93.7997 -19.6185 264.154 +93.2753 -20.0635 270.147 +92.8433 -20.5515 276.718 +92.7051 -21.132 284.533 +92.437 -21.7139 292.368 +92.5649 -22.4244 301.934 +92.3618 -23.0941 310.952 +92.2007 -23.815 320.659 +92.0369 -24.5802 330.962 +92.0102 -25.4329 342.444 +91.7893 -26.2874 353.948 +91.3013 -27.1219 365.184 +91.2071 -28.1377 378.862 +91.1502 -29.242 393.731 +91.0129 -30.406 409.404 +90.6911 -31.6012 425.496 +90.5928 -32.9795 444.055 +90.4816 -34.4764 464.209 +90.0243 -35.9754 484.394 +89.8629 -37.7463 508.238 +89.984 -39.8264 536.246 +89.9342 -42.0557 566.262 +98.8845 -49.0052 659.835 +93.2181 -49.126 661.46 +88.7448 -49.9259 672.232 +88.3796 -53.3115 717.817 +87.8457 -57.105 768.894 +89.6645 -63.1849 850.758 +86.8746 -66.8234 899.749 +86.7112 -73.4068 988.392 +85.2615 -80.2383 1080.37 +83.8543 -88.8165 1195.88 +83.2702 -100.837 1357.72 +81.3144 -114.917 1547.31 +71.213 -120.804 1626.57 +60.5053 -128.328 1727.88 +81.3867 -230.196 3099.49 +54.277 -230.307 3100.99 +27.1369 -230.311 3101.04 +1.52767e-13 -230.275 3100.56 +-27.1264 -230.222 3099.84 +-54.2543 -230.211 3099.69 +-81.371 -230.152 3098.9 +-108.523 -230.172 3099.17 +-126.243 -214.155 2883.51 +-133.362 -188.474 2537.72 +-134.942 -163.408 2200.22 +-130.682 -138.416 1863.71 +-120.741 -113.628 1529.95 +-134.29 -113.685 1530.72 +-115.37 -88.7417 1194.87 +-125.34 -88.3247 1189.25 +-140.123 -91.0881 1226.46 +-157.735 -95.1476 1281.12 +-113.584 -63.8999 860.385 +-120.232 -63.3621 853.143 +-127.87 -63.3698 853.248 +-149.661 -69.9856 942.326 +-379.081 -167.779 2259.08 +-568.924 -238.973 3217.67 +-144.221 -57.6335 776.011 +-151.674 -57.7925 778.152 +-173.63 -63.2082 851.072 +-111.15 -38.7299 521.482 +-114.778 -38.3457 516.308 +-119.269 -38.2628 515.192 +-123.913 -38.2275 514.716 +-130.033 -38.6274 520.102 +-820.32 -234.93 3163.23 +-391.671 -108.264 1457.73 +-875.553 -233.833 3148.47 +-903.071 -233.259 3140.73 +-930.519 -232.666 3132.75 +-159.81 -38.7149 521.28 +-163.404 -38.3842 516.827 +-142.642 -32.5151 437.802 +-144.691 -32.0284 431.248 +-147.385 -31.7025 426.86 +-151.482 -31.6828 426.596 +-1120.56 -228.025 3070.25 +-398.886 -79.0177 1063.94 +-1174.26 -226.569 3050.66 +-144.548 -27.1787 365.949 +-143.437 -26.2945 354.044 +-143.391 -25.6397 345.227 +-146.72 -25.6006 344.701 +-150.328 -25.6066 344.782 +-1332.75 -221.707 2985.19 +-1358.49 -220.783 2972.75 +-491.125 -78.0067 1050.33 +-452.037 -70.1925 945.112 +-508.774 -77.2601 1040.27 +-143.006 -21.2438 286.038 +-143.597 -20.8734 281.051 +-142.08 -20.2148 272.183 +-142.907 -19.9064 268.031 +-146.106 -19.9304 268.355 +-148.982 -19.9065 268.033 +-409.007 -53.5428 720.931 +-109.95 -14.1049 189.916 +-108.765 -13.6759 184.14 +-110.115 -13.5733 182.759 +-111.24 -13.4448 181.028 +-112.714 -13.3598 179.885 +-114.015 -13.2553 178.476 +-115.736 -13.1996 177.728 +-117.121 -13.1059 176.465 +-119.052 -13.0726 176.017 +-121.607 -13.1051 176.454 +-125.556 -13.2807 178.82 +-414.041 -42.9921 578.87 +-415.212 -42.3274 569.92 +-416.019 -41.6406 560.673 +-417.238 -41.0093 552.173 +-418.158 -40.362 543.457 +-420.435 -39.8568 536.655 +-420.446 -39.1488 527.122 +-421.771 -38.5762 519.412 +-424.073 -38.1021 513.029 +-431.503 -38.0876 512.834 +-426.428 -36.9794 497.912 +-432.015 -36.8085 495.611 +-432.227 -36.184 487.202 +-162.331 -13.353 179.792 +-162.952 -13.171 177.343 +-437.707 -34.7648 468.094 +-439.583 -34.3087 461.952 +-441.386 -33.8528 455.814 +-441.433 -33.2704 447.971 +-441.376 -32.6905 440.164 +-443.499 -32.2794 434.628 +-444.768 -31.8114 428.327 +-446.178 -31.3596 422.244 +-424.185 -29.2971 394.473 +-2415.69 -163.948 2207.49 +-2434.91 -162.381 2186.39 +-422.111 -27.6598 372.427 +-382.336 -24.6162 331.447 +-419.364 -26.5279 357.187 +-380.724 -23.6612 318.588 +-418.683 -25.5625 344.188 +-416.783 -24.9973 336.578 +-382.461 -22.5323 303.387 +-382.816 -22.1519 298.267 +-381.603 -21.6873 292.01 +-140.72 -7.85385 105.749 +-142.283 -7.79786 104.995 +-142.63 -7.67513 103.342 +-142.959 -7.55248 101.691 +-142.369 -7.38336 99.4138 +-142.327 -7.24492 97.5497 +-144.253 -7.20649 97.0324 +-147.431 -7.22745 97.3145 +-491.377 -23.6344 318.228 +-2763.37 -130.388 1755.62 +-496.023 -22.9564 309.099 +-2793.68 -126.797 1707.27 +-500.329 -22.266 299.802 +-502.847 -21.938 295.385 +-2837.53 -121.337 1633.75 +-2851.72 -119.499 1609 +-406.698 -16.6969 224.817 +-404.959 -16.285 219.271 +-404.743 -15.9392 214.615 +-2906.29 -112.054 1508.76 +-405.853 -15.3161 206.225 +-404.421 -14.9342 201.083 +-387.56 -14.0002 188.507 +-380.891 -13.4558 181.177 +-381.918 -13.1903 177.602 +-380.728 -12.8509 173.031 +-380.766 -12.5561 169.062 +-378.746 -12.1972 164.231 +-379.248 -11.9231 160.539 +-378.329 -11.6066 156.279 +-379.496 -11.3561 152.905 +-380.82 -11.1104 149.597 +-379.967 -10.8028 145.455 +-381.6 -10.5671 142.282 +-381.045 -10.272 138.308 +-380.544 -9.98085 134.388 +-380.855 -9.71281 130.779 +-380.467 -9.42869 126.953 +-380.993 -9.16865 123.452 +-379.102 -8.85306 119.203 +-379.94 -8.60331 115.84 +-380.076 -8.33853 112.275 +-380.179 -8.07419 108.716 +-380.249 -7.8103 105.162 +-378.933 -7.52019 101.256 +-379.32 -7.26569 97.8295 +-380.647 -7.02921 94.6453 +-380.002 -6.75698 90.9798 +-379.809 -6.49445 87.4451 +-378.9 -6.22147 83.7695 +-380.108 -5.98404 80.5726 +-379.427 -5.71747 76.9833 +-379.693 -5.46636 73.6022 +-380.716 -5.22614 70.3678 +-380.037 -4.96315 66.8267 +-380.608 -4.71734 63.517 +-380.458 -4.46305 60.0931 +-379.288 -4.19837 56.5292 +-380.263 -3.95822 53.2957 +-379.922 -3.70455 49.8802 +-379.847 -3.45435 46.5113 +-379.743 -3.20452 43.1475 +-380.106 -2.95896 39.8411 +-379.345 -2.70536 36.4265 +-379.849 -2.46136 33.1412 +-380.224 -2.21634 29.8421 +-379.473 -1.96534 26.4625 +-379.191 -1.71774 23.1286 +-379.379 -1.47259 19.8278 +-381.636 -1.23412 16.6168 +-380.768 -0.98482 13.2602 +-144.85 -0.280931 3.78262 +-145.278 -0.187816 2.52887 +-145.594 -0.0941055 1.26709 +95.1 -1.77636e-15 -1.7053e-13 +95.9963 -0.0545082 0.835972 +95.9854 -0.109012 1.67188 +95.9671 -0.163508 2.50767 +96.0415 -0.218218 3.34673 +95.9086 -0.272458 4.17859 +95.9683 -0.327245 5.01883 +96.8191 -0.385298 5.90916 +95.8659 -0.436171 6.6894 +95.8038 -0.490587 7.52394 +96.7305 -0.550636 8.44489 +96.653 -0.605538 9.2869 +96.5681 -0.660393 10.1282 +96.4758 -0.715197 10.9687 +96.3762 -0.76995 11.8084 +96.2693 -0.824644 12.6472 +96.155 -0.879272 13.4851 +95.9345 -0.932873 14.3071 +95.707 -0.986292 15.1264 +95.3738 -1.03845 15.9263 +96.1172 -1.10273 16.9122 +95.9657 -1.15726 17.7485 +95.8068 -1.21171 18.5835 +95.6407 -1.26606 19.4171 +95.4672 -1.32032 20.2492 +95.2865 -1.37447 21.0797 +95.9755 -1.4417 22.1107 +95.7784 -1.49614 22.9457 +95.5741 -1.55046 23.7788 +95.5562 -1.60793 24.6601 +96.013 -1.67391 25.6721 +95.7849 -1.72836 26.5072 +96.5107 -1.80062 27.6154 +96.2655 -1.85534 28.4547 +96.013 -1.90993 29.2919 +95.7532 -1.96438 30.1269 +96.342 -2.03676 31.2371 +96.9187 -2.10997 32.3598 +96.632 -2.16492 33.2026 +96.338 -2.21971 34.0428 +96.7883 -2.29213 35.1535 +96.3836 -2.34471 35.9599 +97.0924 -2.425 37.1913 +96.7634 -2.48003 38.0353 +96.3344 -2.53244 38.8391 +96.915 -2.61195 40.0584 +96.561 -2.66688 40.9008 +96.2913 -2.7242 41.78 +96.7445 -2.80258 42.9821 +96.4559 -2.86011 43.8644 +96.0686 -2.91476 44.7026 +96.3961 -2.99161 45.8812 +96.89 -3.07475 47.1563 +96.4739 -3.12965 47.9982 +96.0505 -3.18431 48.8365 +96.3294 -3.26276 50.0396 +96.6828 -3.34482 51.2982 +96.9335 -3.42442 52.5191 +96.4706 -3.47933 53.3612 +96.6965 -3.55961 54.5924 +96.9082 -3.6404 55.8314 +96.5025 -3.69859 56.7238 +96.6885 -3.78005 57.9732 +96.2631 -3.83821 58.8651 +96.4231 -3.9203 60.1241 +96.484 -3.99937 61.3369 +96.7826 -4.08944 62.7181 +96.147 -4.14064 63.5035 +96.2513 -4.22419 64.7847 +96.4228 -4.31184 66.1291 +96.578 -4.40002 67.4814 +95.9842 -4.45469 68.3198 +96.0303 -4.53961 69.6223 +95.4178 -4.59397 70.4559 +96.1557 -4.71453 72.305 +95.5991 -4.77291 73.2004 +96.3737 -4.89911 75.1358 +96.2608 -4.982 76.4071 +96.2884 -5.07332 77.8076 +96.2987 -5.16505 79.2144 +96.2152 -5.25299 80.563 +96.1914 -5.34545 81.9811 +96.15 -5.43828 83.4048 +96.0161 -5.52716 84.7679 +95.94 -5.62065 86.2018 +95.8461 -5.71447 87.6406 +96.3924 -5.84855 89.6969 +96.1846 -5.93888 91.0824 +96.0319 -6.03395 92.5404 +95.7895 -6.12473 93.9326 +96.2372 -6.2617 96.0333 +95.4638 -6.32075 96.9389 +95.8629 -6.45896 99.0586 +95.6813 -6.56033 100.613 +96.0254 -6.7001 102.757 +95.7311 -6.7975 104.251 +95.8864 -6.92899 106.267 +95.6161 -7.03186 107.845 +95.1942 -7.12517 109.276 +95.4689 -7.27299 111.543 +95.7111 -7.4216 113.822 +95.2845 -7.52083 115.344 +95.0903 -7.64042 117.178 +95.1202 -7.7807 119.33 +95.1813 -7.92664 121.568 +95.2103 -8.0733 123.817 +95.2071 -8.22061 126.076 +95.0527 -8.35802 128.184 +94.9273 -8.50117 130.379 +94.8288 -8.6501 132.663 +94.8695 -8.81556 135.201 +95.1562 -9.00848 138.16 +94.895 -9.1539 140.39 +94.6572 -9.30505 142.708 +94.9306 -9.51124 145.87 +94.7797 -9.68002 148.459 +94.5906 -9.84938 151.056 +94.6767 -10.0525 154.171 +94.252 -10.2063 156.53 +94.3006 -10.4164 159.752 +94.3 -10.6272 162.986 +94.2499 -10.839 166.233 +94.247 -11.0628 169.666 +94.048 -11.2703 172.848 +94.3168 -11.5415 177.008 +94.012 -11.7505 180.212 +94.6116 -12.0817 185.293 +93.9693 -12.263 188.074 +116.738 -15.5733 238.842 +116.755 -15.9267 244.262 +116.938 -16.3167 250.244 +116.861 -16.6845 255.884 +117.262 -17.1366 262.817 +115.438 -17.2741 264.926 +112.687 -17.2731 264.911 +110.021 -17.2823 265.052 +107.063 -17.2416 264.427 +104.416 -17.2472 264.514 +101.705 -17.239 264.389 +99.1087 -17.2474 264.516 +96.4839 -17.248 264.525 +93.7997 -17.2346 264.321 +93.0474 -17.5825 269.656 +92.8433 -18.0543 276.892 +92.7051 -18.5642 284.712 +92.437 -19.0754 292.552 +92.5064 -19.6871 301.934 +92.447 -20.3066 311.435 +92.1731 -20.915 320.765 +91.7964 -21.5371 330.306 +91.9325 -22.3237 342.37 +91.5389 -23.0302 353.205 +91.6158 -23.9083 366.672 +91.2538 -24.7312 379.294 +91.1502 -25.6887 393.978 +91.0129 -26.7114 409.662 +90.7535 -27.7803 426.056 +90.513 -28.9466 443.943 +90.4816 -30.2871 464.502 +90.2248 -31.6744 485.778 +89.8977 -33.1725 508.755 +89.8684 -34.9422 535.895 +89.6839 -36.8427 565.042 +98.8845 -43.0506 660.25 +93.2321 -43.1631 661.975 +88.7709 -43.8723 672.853 +88.2578 -46.769 717.279 +88.0495 -50.2824 771.162 +89.6436 -55.4943 851.095 +86.7979 -58.6518 899.521 +86.6067 -64.4093 987.821 +85.1909 -70.4299 1080.16 +83.8473 -78.0178 1196.53 +83.2092 -88.5187 1357.58 +81.2202 -100.836 1546.49 +71.1301 -106.001 1625.7 +60.5332 -112.787 1729.77 +81.3737 -202.192 3100.95 +54.277 -202.322 3102.94 +27.1395 -202.345 3103.29 +1.51879e-13 -202.327 3103.01 +-27.1238 -202.228 3101.49 +-54.27 -202.296 3102.54 +-81.3998 -202.257 3101.94 +-108.565 -202.281 3102.31 +-142.919 -212.983 3266.44 +-133.383 -165.598 2539.72 +-134.929 -143.539 2201.41 +-130.661 -121.577 1864.58 +-120.803 -99.8719 1531.7 +-134.263 -99.8517 1531.39 +-115.408 -77.9846 1196.02 +-125.392 -77.6248 1190.5 +-139.851 -79.865 1224.86 +-157.675 -83.5542 1281.44 +-113.44 -56.0645 859.839 +-120.232 -55.6629 853.68 +-127.914 -55.689 854.08 +-149.723 -61.5073 943.314 +-379.23 -147.45 2261.39 +-568.924 -209.935 3219.69 +-144.294 -50.656 776.891 +-152.018 -50.8851 780.405 +-173.63 -55.5277 851.608 +-111.399 -34.1001 522.98 +-114.713 -33.6672 516.341 +-119.382 -33.6451 516.002 +-123.913 -33.5824 515.04 +-129.791 -33.8706 519.461 +-820.32 -206.383 3165.22 +-392.085 -95.2087 1460.18 +-875.553 -205.42 3150.45 +-903.071 -204.915 3142.71 +-930.633 -204.419 3135.1 +-957.897 -203.859 3126.5 +-163.343 -33.7076 516.961 +-142.673 -28.5704 438.173 +-144.691 -28.1366 431.52 +-146.994 -27.7765 425.997 +-151.448 -27.8268 426.77 +-1120.56 -200.317 3072.19 +-399.517 -69.5261 1066.3 +-1174.26 -199.039 3052.58 +-144.511 -23.8701 366.087 +-143.774 -23.1537 355.099 +-143.659 -22.5662 346.089 +-146.329 -22.4299 343.999 +-150.448 -22.513 345.274 +-1332.75 -194.767 2987.07 +-1358.83 -194.003 2975.35 +-490.829 -68.487 1050.36 +-1410.66 -192.431 2951.23 +-508.511 -67.837 1040.39 +-143.185 -18.6857 286.575 +-144.051 -18.395 282.117 +-142.126 -17.7642 272.443 +-142.813 -17.4761 268.024 +-146.249 -17.5258 268.786 +-149.127 -17.5047 268.463 +-408.416 -46.9689 720.343 +-110.1 -12.4079 190.295 +-109.273 -12.0702 185.116 +-110.012 -11.9129 182.703 +-110.717 -11.7556 180.291 +-112.237 -11.6868 179.236 +-114.23 -11.6665 178.925 +-115.79 -11.6012 177.923 +-117.563 -11.5568 177.242 +-119.611 -11.5381 176.955 +-121.664 -11.518 176.647 +-125.957 -11.7043 179.505 +-414.041 -37.768 579.234 +-415.447 -37.2052 570.601 +-415.781 -36.5599 560.705 +-417.599 -36.0574 552.999 +-418.706 -35.504 544.512 +-420.251 -34.9983 536.756 +-421.38 -34.4681 528.624 +-422.085 -33.9141 520.128 +-423.564 -33.4322 512.736 +-432.018 -33.4994 513.767 +-427.077 -32.5354 498.983 +-429.456 -32.1444 492.986 +-431.829 -31.758 487.06 +-161.796 -11.6917 179.311 +-163.223 -11.5898 177.749 +-437.093 -30.4977 467.732 +-439.927 -30.1634 462.605 +-441.386 -29.7393 456.1 +-441.783 -29.2509 448.609 +-441.376 -28.7182 440.441 +-442.786 -28.3115 434.202 +-428.151 -26.9019 412.585 +-430.437 -26.5772 407.604 +-2396.28 -145.393 2229.83 +-421.28 -25.1173 385.214 +-420.248 -24.6202 377.591 +-420.763 -24.2212 371.471 +-383.091 -21.6678 332.31 +-419.972 -23.3383 357.93 +-381.414 -20.8237 319.366 +-381.337 -20.4533 313.684 +-382.511 -20.154 309.095 +-383.556 -19.851 304.448 +-381.161 -19.3761 297.164 +-380.651 -19.0045 291.465 +-140.48 -6.88774 105.635 +-143.006 -6.88514 105.595 +-142.63 -6.74252 103.407 +-142.959 -6.63477 101.755 +-142.369 -6.4862 99.4764 +-143.151 -6.40143 98.1763 +-144.501 -6.34174 97.2608 +-147.681 -6.36 97.5409 +-492.132 -20.7945 318.917 +-2763.37 -114.545 1756.73 +-496.108 -20.1704 309.346 +-2793.68 -111.39 1708.34 +-2808.51 -109.799 1683.94 +-2823.13 -108.2 1659.43 +-2837.53 -106.593 1634.78 +-404.28 -14.8824 228.246 +-405.124 -14.6113 224.088 +-404.695 -14.2969 219.266 +-2892.98 -100.085 1534.96 +-2906.29 -98.4385 1509.71 +-406.121 -13.4639 206.491 +-404.421 -13.1196 201.21 +-385.493 -12.2334 187.619 +-380.169 -11.7983 180.947 +-379.38 -11.5106 176.533 +-379.181 -11.2435 172.437 +-378.116 -10.9536 167.991 +-380.03 -10.7515 164.892 +-380.721 -10.5149 161.264 +-378.975 -10.2137 156.644 +-377.92 -9.93481 152.366 +-380.82 -9.76037 149.691 +-380.341 -9.49946 145.69 +-381.6 -9.28312 142.372 +-380.106 -9.00158 138.054 +-379.507 -8.74419 134.106 +-379.815 -8.5093 130.504 +-381.321 -8.30155 127.318 +-380.042 -8.03445 123.221 +-380.533 -7.80666 119.728 +-380.418 -7.56741 116.059 +-379.788 -7.31971 112.26 +-380.467 -7.09842 108.866 +-380.249 -6.86126 105.229 +-379.416 -6.61479 101.449 +-379.03 -6.37794 97.8161 +-381.132 -6.18295 94.8255 +-379.71 -5.93138 90.9672 +-380.589 -5.71702 87.6797 +-380.365 -5.48662 84.1462 +-379.913 -5.25421 80.5818 +-380.603 -5.0383 77.2704 +-380.282 -4.80958 73.7628 +-380.421 -4.58755 70.3575 +-380.431 -4.3646 66.9382 +-379.621 -4.13339 63.3922 +-379.371 -3.90954 59.9592 +-381.167 -3.70649 56.845 +-379.075 -3.46638 53.1626 +-380.219 -3.25696 49.9507 +-379.053 -3.02826 46.4433 +-379.743 -2.81513 43.1746 +-381.499 -2.60893 40.0121 +-380.54 -2.38411 36.5642 +-379.052 -2.15775 33.0925 +-380.224 -1.94703 29.8609 +-380.072 -1.72925 26.5209 +-380.09 -1.51259 23.198 +-378.98 -1.29229 19.8194 +-380.637 -1.08132 16.5838 +-380.168 -0.863793 13.2477 +-146.05 -0.248839 3.81635 +-144.778 -0.164427 2.52176 +-145.894 -0.0828411 1.2705 +96.1 1.77636e-15 1.13687e-13 +96.0963 -0.0470132 0.837301 +96.0854 -0.0940231 1.67454 +97.0667 -0.142493 2.53778 +96.2413 -0.188408 3.35553 +96.0085 -0.234994 4.18523 +96.2679 -0.282835 5.03726 +96.9189 -0.332314 5.91849 +97.063 -0.380498 6.77663 +96.8007 -0.427088 7.6064 +96.9297 -0.475405 8.46691 +96.8521 -0.522806 9.31112 +96.8664 -0.570755 10.1651 +95.7803 -0.611774 10.8956 +96.5747 -0.664757 11.8393 +96.4676 -0.711976 12.6802 +96.3531 -0.75914 13.5202 +96.0334 -0.804593 14.3297 +96.6947 -0.858557 15.2908 +96.4587 -0.904908 16.1163 +96.3142 -0.95206 16.9561 +96.1623 -0.999139 17.7946 +96.0031 -1.04615 18.6318 +96.7186 -1.10313 19.6467 +95.6628 -1.13992 20.3018 +95.4817 -1.18667 21.1345 +96.1703 -1.24469 22.1678 +95.9729 -1.29169 23.0049 +95.8652 -1.33995 23.8643 +95.5562 -1.38539 24.6736 +96.3028 -1.4466 25.7637 +95.7849 -1.48916 26.5217 +95.7417 -1.53905 27.4103 +96.4573 -1.60175 28.527 +96.2043 -1.64888 29.3663 +96.6115 -1.70768 30.4136 +96.342 -1.75488 31.2542 +96.0652 -1.80194 32.0925 +96.632 -1.8653 33.2208 +96.338 -1.9125 34.0615 +97.0702 -1.98065 35.2751 +96.4772 -2.02217 36.0147 +97.1857 -2.09139 37.2474 +96.7634 -2.1368 38.0562 +97.2616 -2.20295 39.2344 +97.0074 -2.2526 40.1186 +96.7451 -2.30216 41.0012 +96.383 -2.3494 41.8426 +96.8358 -2.41699 43.0463 +96.4559 -2.46427 43.8884 +96.8843 -2.53268 45.1069 +96.4864 -2.57998 45.9492 +96.89 -2.64921 47.1821 +96.4739 -2.6965 48.0245 +96.8524 -2.76651 49.2712 +96.4181 -2.81378 50.1132 +96.7711 -2.88453 51.3732 +96.2305 -2.92909 52.1667 +96.558 -3.00051 53.4388 +96.7836 -3.06972 54.6714 +96.302 -3.11695 55.5126 +96.5025 -3.18671 56.7549 +96.7742 -3.25978 58.0564 +97.0305 -3.33336 59.3668 +96.4231 -3.37773 60.157 +96.5683 -3.44887 61.4241 +96.0278 -3.49598 62.2631 +96.2304 -3.57067 63.5933 +96.3342 -3.64269 64.876 +96.5052 -3.71826 66.2219 +95.9227 -3.76533 67.0602 +96.0656 -3.84141 68.4151 +96.0303 -3.91133 69.6604 +96.1413 -3.98817 71.0289 +95.5168 -4.03505 71.8639 +96.3131 -4.14305 73.7874 +96.2949 -4.21763 75.1155 +96.3391 -4.29599 76.5111 +96.2884 -4.37117 77.8502 +96.2987 -4.45021 79.2578 +96.2152 -4.52597 80.6071 +95.583 -4.57651 81.5072 +96.15 -4.68562 83.4505 +96.091 -4.76592 84.8805 +96.0143 -4.8465 86.3157 +95.8461 -4.92359 87.6886 +96.3193 -5.03529 89.6779 +96.2572 -5.12081 91.2011 +96.1038 -5.20275 92.6605 +95.7895 -5.27707 93.9841 +95.7423 -5.36734 95.5917 +95.5339 -5.44995 97.0631 +95.9323 -5.56907 99.1846 +95.6813 -5.65239 100.668 +96.0254 -5.7728 102.813 +95.7311 -5.85673 104.308 +96.0202 -5.97832 106.473 +95.6161 -6.05865 107.904 +95.8502 -6.18137 110.09 +95.4689 -6.26641 111.604 +95.7111 -6.39446 113.885 +95.6662 -6.5059 115.869 +95.6567 -6.62217 117.94 +95.1825 -6.70822 119.473 +95.1813 -6.8296 121.634 +95.2103 -6.95595 123.885 +94.6053 -7.03814 125.349 +95.0527 -7.20127 128.254 +94.9273 -7.32461 130.451 +94.9449 -7.46207 132.899 +95.3284 -7.63221 135.929 +95.1562 -7.76171 138.235 +94.951 -7.89166 140.55 +94.5468 -8.00793 142.62 +94.985 -8.1996 146.034 +94.7797 -8.34031 148.54 +94.9615 -8.51947 151.731 +94.6767 -8.6612 154.255 +94.767 -8.84177 157.471 +94.3006 -8.97474 159.839 +94.3 -9.15643 163.075 +94.2499 -9.33885 166.324 +94.247 -9.5317 169.759 +94.0957 -9.71541 173.03 +94.2699 -9.93926 177.017 +94.0582 -10.1292 180.4 +94.203 -10.3646 184.593 +93.6569 -10.5307 187.552 +116.694 -13.4129 238.883 +116.755 -13.7225 244.396 +116.896 -14.0535 250.291 +116.861 -14.3754 256.024 +117.222 -14.7598 262.87 +115.398 -14.8782 264.98 +112.726 -14.8877 265.148 +110.06 -14.8957 265.29 +107.063 -14.8553 264.572 +104.783 -14.9124 265.588 +102.099 -14.9107 265.559 +99.1087 -14.8603 264.661 +96.4839 -14.8608 264.67 +93.8331 -14.8547 264.56 +92.9823 -15.1385 269.615 +92.8751 -15.5609 277.137 +92.736 -16.0003 284.963 +92.467 -16.4407 292.807 +92.5356 -16.9678 302.194 +92.3902 -17.4854 311.413 +92.1456 -18.015 320.845 +91.9834 -18.5942 331.16 +91.9584 -19.2395 342.653 +91.564 -19.8482 353.495 +91.5191 -20.5776 366.486 +91.2771 -21.3139 379.599 +90.9477 -22.0843 393.318 +91.1211 -23.0419 410.375 +90.6079 -23.8972 425.607 +90.513 -24.9404 444.186 +90.5198 -26.1064 464.952 +90.1701 -27.2741 485.75 +89.7587 -28.5373 508.246 +89.8189 -30.0896 535.893 +89.6995 -31.7492 565.449 +98.9288 -37.109 660.907 +93.2181 -37.1837 662.239 +88.6534 -37.7504 672.33 +88.3553 -40.3407 718.464 +87.6532 -43.1284 768.113 +89.7168 -47.8529 852.256 +86.8842 -50.5847 900.908 +86.6241 -55.5063 988.561 +85.1203 -60.6325 1079.86 +83.6938 -67.0974 1195 +83.0626 -76.1332 1355.92 +81.0422 -86.6904 1543.95 +71.1868 -91.4034 1627.89 +60.5053 -97.1322 1729.92 +81.3867 -174.237 3103.14 +54.2892 -174.36 3105.34 +27.1395 -174.341 3104.99 +1.48326e-13 -174.297 3104.21 +-27.136 -174.318 3104.59 +-54.2752 -174.315 3104.54 +-81.3867 -174.237 3103.14 +-108.537 -174.241 3103.22 +-135.648 -174.17 3101.95 +-133.41 -142.708 2541.61 +-134.966 -123.707 2203.21 +-130.717 -104.796 1866.4 +-120.788 -86.0385 1532.34 +-134.263 -86.0323 1532.23 +-115.389 -67.1804 1196.48 +-125.361 -66.8647 1190.85 +-139.591 -68.6833 1223.24 +-157.65 -71.9791 1281.94 +-113.453 -48.3107 860.409 +-120.232 -47.9591 854.148 +-127.781 -47.9317 853.659 +-149.77 -53.0113 944.126 +-379.362 -127.087 2263.41 +-568.924 -180.88 3221.46 +-144.294 -43.6452 777.317 +-152.17 -43.8866 781.617 +-173.729 -47.8702 852.563 +-111.524 -29.4136 523.853 +-114.886 -29.0514 517.403 +-119.359 -28.9832 516.188 +-123.913 -28.9346 515.322 +-130.13 -29.2591 521.101 +-820.32 -177.82 3166.95 +-391.852 -81.9831 1460.11 +-405 -81.8693 1458.08 +-903.071 -176.555 3144.43 +-930.633 -176.128 3136.82 +-957.897 -175.645 3128.21 +-163.163 -29.0104 516.673 +-142.982 -24.6695 439.362 +-144.691 -24.2425 431.756 +-147.254 -23.9746 426.985 +-151.682 -24.0126 427.662 +-1120.56 -172.593 3073.87 +-398.886 -59.809 1065.19 +-1174.26 -171.492 3054.25 +-144.695 -20.5926 366.751 +-143.399 -19.8972 354.368 +-143.698 -19.4483 346.371 +-146.29 -19.3204 344.095 +-150.568 -19.4127 345.737 +-1332.75 -167.811 2988.7 +-1358.83 -167.153 2976.98 +-491.082 -59.0387 1051.47 +-1410.66 -165.798 2952.85 +-508.686 -58.4686 1041.32 +-141.712 -15.9341 283.784 +-144.097 -15.8541 282.36 +-142.08 -15.3007 272.504 +-142.766 -15.0524 268.082 +-146.154 -15.0904 268.759 +-149.127 -15.0821 268.61 +-408.613 -40.4879 721.085 +-109.8 -10.6615 189.88 +-108.867 -10.361 184.528 +-110.115 -10.2737 182.974 +-111.24 -10.1764 181.242 +-112.767 -10.1169 180.181 +-114.284 -10.0566 179.107 +-115.899 -10.005 178.188 +-117.563 -9.95731 177.339 +-119.108 -9.8994 176.307 +-121.664 -9.9239 176.744 +-125.613 -10.0569 179.112 +-413.925 -32.5319 579.389 +-415.741 -32.0787 571.318 +-416.316 -31.5406 561.734 +-417.599 -31.0671 553.302 +-419.132 -30.6214 545.365 +-420.251 -30.1546 537.05 +-421.567 -29.7109 529.149 +-421.771 -29.1986 520.024 +-423.819 -28.8224 513.324 +-431.31 -28.8159 513.208 +-426.168 -27.9728 498.193 +-430.572 -27.7675 494.537 +-431.829 -27.3627 487.326 +-161.863 -10.0778 179.484 +-164.101 -10.0395 178.803 +-437.707 -26.3137 468.645 +-439.927 -25.9888 462.858 +-441.386 -25.6234 456.35 +-442.624 -25.2505 449.71 +-441.588 -24.7555 440.894 +-430.375 -23.7095 422.264 +-429.446 -23.2488 414.059 +-2376.69 -126.438 2251.84 +-2396.28 -125.271 2231.06 +-423.713 -21.7661 387.651 +-423.295 -21.3666 380.538 +-420.239 -20.843 371.211 +-382.864 -18.6579 332.296 +-420.657 -20.141 358.71 +-381.49 -17.9453 319.605 +-419.378 -19.3805 345.165 +-382.589 -17.3682 309.327 +-383.165 -17.0862 304.304 +-382.579 -16.7566 298.434 +-381.841 -16.4255 292.536 +-140.56 -5.93784 105.752 +-142.202 -5.89888 105.059 +-143.52 -5.84557 104.109 +-142.959 -5.71652 101.811 +-142.369 -5.58851 99.5308 +-142.574 -5.49325 97.8342 +-143.589 -5.42956 96.6999 +-147.431 -5.4705 97.429 +-491.88 -17.9074 318.929 +-2763.37 -98.6918 1757.69 +-2778.63 -97.3363 1733.55 +-2793.68 -95.9735 1709.28 +-500.329 -16.8533 300.155 +-2823.13 -93.2254 1660.33 +-2837.53 -91.8407 1635.67 +-2851.72 -90.4493 1610.89 +-2865.69 -89.0506 1585.98 +-404.607 -12.3155 219.339 +-407.215 -12.1382 216.179 +-405.187 -11.8246 210.595 +-406.388 -11.6081 206.739 +-404.868 -11.3163 201.543 +-385.942 -10.5526 187.941 +-380.169 -10.1655 181.046 +-380.196 -9.93881 177.009 +-380.091 -9.71059 172.945 +-379.852 -9.48096 168.855 +-378.746 -9.23217 164.424 +-379.248 -9.02463 160.728 +-379.622 -8.81519 156.998 +-381.165 -8.63333 153.759 +-381.006 -8.41363 149.846 +-379.967 -8.17672 145.627 +-380.383 -7.97283 141.995 +-379.636 -7.74618 137.959 +-380.544 -7.55457 134.546 +-379.909 -7.33341 130.607 +-380.467 -7.13664 127.103 +-380.137 -6.92422 123.32 +-380.533 -6.72622 119.793 +-382.235 -6.55126 116.677 +-380.651 -6.32102 112.577 +-379.314 -6.0975 108.596 +-379.767 -5.90421 105.153 +-381.154 -5.72543 101.969 +-379.514 -5.50226 97.9946 +-379.871 -5.3096 94.5635 +-379.03 -5.10131 90.8539 +-379.809 -4.91569 87.548 +-379.486 -4.71635 83.9978 +-380.402 -4.53286 80.7297 +-379.623 -4.32982 77.1136 +-379.104 -4.1311 73.5745 +-379.831 -3.94651 70.2869 +-379.151 -3.74788 66.7494 +-379.72 -3.56225 63.4434 +-380.161 -3.37548 60.1169 +-380.771 -3.1902 56.8171 +-379.867 -2.99288 53.3028 +-379.922 -2.804 49.9389 +-379.45 -2.61188 46.5173 +-380.339 -2.42933 43.2661 +-380.604 -2.24258 39.9401 +-379.644 -2.04932 36.4981 +-379.55 -1.86155 33.1541 +-380.224 -1.67756 29.8772 +-379.872 -1.48915 26.5215 +-380.589 -1.30496 23.2412 +-379.579 -1.1152 19.8616 +-379.139 -0.927999 16.5276 +-3274.5 -6.41038 114.168 +-145.75 -0.21396 3.8106 +-145.178 -0.142062 2.5301 +-145.194 -0.0710334 1.2651 +96 1.77636e-15 -2.27374e-13 +95.9963 -0.0394166 0.836819 +95.8854 -0.0787482 1.67184 +95.9671 -0.118238 2.51021 +96.0415 -0.1578 3.35013 +96.0085 -0.197228 4.18718 +95.9683 -0.236641 5.02392 +95.9208 -0.276035 5.86026 +96.7637 -0.318363 6.75889 +96.701 -0.35808 7.6021 +96.7305 -0.398181 8.45345 +96.653 -0.437883 9.29631 +96.5681 -0.47755 10.1385 +96.6745 -0.518249 11.0025 +96.3762 -0.556774 11.8204 +96.2693 -0.596325 12.6601 +96.155 -0.635829 13.4987 +95.9345 -0.674589 14.3216 +95.707 -0.713217 15.1417 +95.5711 -0.752486 15.9754 +96.1172 -0.797419 16.9293 +95.9657 -0.836852 17.7665 +95.8068 -0.876224 18.6024 +95.6407 -0.915526 19.4368 +95.4672 -0.954761 20.2697 +95.4817 -0.995959 21.1444 +95.9755 -1.04253 22.1332 +95.0978 -1.07421 22.8057 +95.7682 -1.12346 23.8513 +96.4275 -1.17334 24.9102 +96.013 -1.21045 25.6981 +95.7849 -1.24983 26.5341 +96.5107 -1.30208 27.6434 +96.4573 -1.34433 28.5403 +96.013 -1.38113 29.3216 +95.7532 -1.4205 30.1575 +96.342 -1.47285 31.2687 +96.9187 -1.52578 32.3926 +96.632 -1.56552 33.2363 +96.338 -1.60514 34.0773 +96.7883 -1.65751 35.1891 +96.4772 -1.69718 36.0315 +97.0924 -1.75359 37.229 +96.7634 -1.79339 38.0739 +96.3344 -1.83129 38.8785 +96.915 -1.88878 40.099 +96.561 -1.9285 40.9423 +96.383 -1.97182 41.8621 +96.8358 -2.02855 43.0664 +96.4559 -2.06823 43.9088 +96.8843 -2.12565 45.1279 +96.4864 -2.16535 45.9706 +96.0811 -2.20488 46.81 +96.4739 -2.26314 48.0468 +96.7633 -2.31976 49.2488 +96.3294 -2.3594 50.0904 +96.6828 -2.41874 51.3502 +96.9335 -2.4763 52.5723 +96.4706 -2.51601 53.4153 +96.7836 -2.57638 54.6969 +97.0814 -2.63719 55.9879 +96.5025 -2.67456 56.7813 +96.7742 -2.73589 58.0834 +96.1778 -2.77306 58.8725 +96.4231 -2.83489 60.1851 +95.8936 -2.87437 61.0233 +96.6987 -2.95464 62.7274 +96.2304 -2.99682 63.623 +96.2513 -3.05464 64.8504 +96.5052 -3.12069 66.2527 +96.578 -3.18179 67.5498 +95.9842 -3.22132 68.3891 +96.0303 -3.28273 69.6928 +96.1413 -3.34722 71.062 +96.2356 -3.41205 72.4384 +96.3131 -3.47721 73.8218 +96.2949 -3.5398 75.1505 +96.2608 -3.60264 76.4845 +96.2884 -3.66867 77.8864 +96.2987 -3.735 79.2947 +95.6023 -3.7744 80.1311 +96.1914 -3.86546 82.0642 +95.4708 -3.90481 82.8996 +96.0161 -3.99685 84.8538 +95.94 -4.06446 86.2891 +96.5096 -4.16092 88.3369 +95.7342 -4.20038 89.1747 +96.1846 -4.29459 91.1747 +96.1038 -4.3666 92.7036 +95.8609 -4.43228 94.0979 +95.6715 -4.50141 95.5655 +96.1648 -4.60428 97.7496 +95.8629 -4.67067 99.159 +95.6813 -4.74398 100.715 +96.0254 -4.84504 102.861 +95.7311 -4.91548 104.356 +95.9533 -5.01405 106.449 +95.5498 -5.08142 107.879 +95.8502 -5.18795 110.141 +95.4689 -5.25932 111.656 +95.7111 -5.36679 113.938 +95.2845 -5.43854 115.461 +95.0903 -5.52502 117.297 +95.1825 -5.63013 119.528 +95.1813 -5.73199 121.691 +95.1494 -5.83433 123.864 +95.2071 -5.94457 126.204 +94.9932 -6.04018 128.234 +95.0449 -6.15507 130.673 +95.4095 -6.29345 133.611 +95.3858 -6.40948 136.074 +94.6465 -6.47939 137.558 +94.951 -6.62337 140.615 +94.7124 -6.73271 142.937 +95.0395 -6.88577 146.186 +94.7797 -6.99992 148.609 +94.4316 -7.11039 150.955 +94.6245 -7.26523 154.242 +94.252 -7.38046 156.688 +94.3006 -7.53239 159.914 +94.35 -7.68897 163.238 +94.2991 -7.84207 166.488 +94.2955 -8.00398 169.926 +94.0957 -8.15402 173.111 +94.3168 -8.34603 177.188 +94.4276 -8.53471 181.193 +94.203 -8.69891 184.679 +93.6123 -8.83409 187.549 +116.651 -11.2531 238.904 +116.712 -11.5129 244.42 +116.896 -11.7949 250.407 +116.819 -12.0608 256.052 +117.181 -12.3834 262.901 +115.438 -12.4914 265.195 +112.687 -12.4907 265.18 +110.021 -12.4974 265.321 +107.025 -12.4635 264.603 +104.416 -12.472 264.782 +101.705 -12.4661 264.657 +99.1087 -12.4721 264.784 +96.4497 -12.4681 264.7 +93.7997 -12.4629 264.589 +92.9823 -12.7056 269.741 +93.0655 -13.0868 277.835 +92.4579 -13.3885 284.241 +92.5272 -13.8074 293.134 +92.3017 -14.2048 301.571 +92.3902 -14.6753 311.559 +92.0629 -15.1061 320.705 +91.9567 -15.6013 331.218 +91.9843 -16.152 342.91 +91.7643 -16.6948 354.433 +91.4465 -17.2569 366.366 +91.1604 -17.8656 379.289 +90.9252 -18.5304 393.404 +91.1211 -19.3388 410.566 +90.6703 -20.0704 426.098 +90.533 -20.9368 444.491 +90.4053 -21.883 464.58 +90.079 -22.8677 485.485 +89.724 -23.9417 508.286 +89.8189 -25.2538 536.143 +89.6839 -26.6421 565.615 +98.8845 -31.1312 660.919 +93.2181 -31.2079 662.547 +88.7709 -31.7254 673.535 +88.0993 -33.7594 716.717 +87.857 -36.2813 770.257 +89.6959 -40.153 852.454 +86.7979 -42.4129 900.433 +86.5457 -46.5435 988.125 +85.0497 -50.8458 1079.46 +83.7636 -56.3606 1196.54 +83.1481 -63.9635 1357.95 +81.126 -72.8335 1546.27 +71.1607 -76.6855 1628.04 +60.5192 -81.5407 1731.12 +71.9264 -129.237 2743.72 +54.2892 -146.338 3106.79 +27.1439 -146.345 3106.94 +1.51879e-13 -146.252 3104.96 +-27.136 -146.303 3106.04 +-54.2386 -146.202 3103.89 +-81.3946 -146.249 3104.89 +-108.527 -146.225 3104.37 +-135.669 -146.202 3103.9 +-133.425 -119.787 2543.09 +-134.984 -103.84 2204.54 +-130.661 -87.916 1866.47 +-120.858 -72.2533 1533.95 +-134.211 -72.1776 1532.34 +-115.398 -56.3883 1197.13 +-125.424 -56.147 1192.01 +-139.489 -57.6032 1222.92 +-157.748 -60.4483 1283.33 +-113.532 -40.5746 861.404 +-120.315 -40.2795 855.139 +-127.87 -40.2565 854.65 +-149.692 -44.4685 944.072 +-379.329 -106.653 2264.27 +-568.924 -151.81 3222.96 +-144.258 -36.6216 777.483 +-152.151 -36.8289 781.883 +-173.789 -40.1907 853.254 +-111.358 -24.6497 523.316 +-114.713 -24.3458 516.864 +-119.314 -24.3161 516.234 +-123.889 -24.2799 515.465 +-129.936 -24.5203 520.569 +-820.32 -149.242 3168.43 +-391.645 -68.7711 1460.02 +-875.553 -148.546 3153.64 +-903.071 -148.18 3145.89 +-930.519 -147.804 3137.9 +-957.897 -147.416 3129.67 +-163.404 -24.384 517.676 +-142.982 -20.7048 439.567 +-144.691 -20.3464 431.957 +-147.092 -20.0993 426.712 +-151.715 -20.158 427.957 +-1120.56 -144.855 3075.3 +-398.571 -50.1574 1064.85 +-1174.26 -143.931 3055.67 +-144.328 -17.2393 365.992 +-143.774 -16.7431 355.459 +-143.736 -16.327 346.625 +-146.133 -16.1981 343.888 +-150.568 -16.2928 345.898 +-1332.75 -140.842 2990.09 +-1358.83 -140.29 2978.37 +-491.125 -49.5547 1052.05 +-1410.48 -139.135 2953.86 +-508.817 -49.0847 1042.07 +-143.319 -13.5249 287.135 +-143.96 -13.2936 282.225 +-141.988 -12.8334 272.454 +-142.719 -12.6292 268.119 +-145.772 -12.6321 268.182 +-148.837 -12.6335 268.211 +-408.958 -34.0096 722.029 +-110.05 -8.96842 190.401 +-108.867 -8.69586 184.614 +-110.064 -8.6186 182.974 +-111.24 -8.54097 181.326 +-112.82 -8.49495 180.349 +-114.284 -8.44037 179.19 +-115.681 -8.38132 177.937 +-117.176 -8.32957 176.838 +-119.108 -8.30844 176.389 +-121.664 -8.329 176.826 +-125.613 -8.44061 179.195 +-414.041 -27.3112 579.821 +-415.212 -26.889 570.857 +-416.316 -26.4716 561.996 +-417.599 -26.0742 553.559 +-418.523 -25.6628 544.826 +-420.251 -25.3084 537.3 +-420.633 -24.8808 528.222 +-422.274 -24.5353 520.887 +-423.946 -24.1976 513.718 +-431.118 -24.174 513.217 +-426.752 -23.5095 499.11 +-430.375 -23.2943 494.541 +-432.426 -22.9969 488.228 +-161.461 -8.43717 179.122 +-163.831 -8.41219 178.592 +-437.502 -22.0744 468.643 +-440.203 -21.8257 463.363 +-442.011 -21.5358 457.209 +-442.204 -21.1723 449.492 +-441.376 -20.767 440.887 +-427.736 -19.777 419.869 +-444.624 -20.202 428.892 +-427.391 -19.0828 405.13 +-422.942 -18.5568 393.963 +-381.836 -16.4625 349.501 +-2434.91 -103.154 2189.98 +-420.838 -17.5182 371.914 +-381.732 -15.6131 331.467 +-418.68 -16.8247 357.19 +-381.72 -15.0704 319.946 +-381.568 -14.7994 314.193 +-383.055 -14.5947 309.848 +-383.556 -14.3549 304.756 +-382.343 -14.0549 298.388 +-381.603 -13.7771 292.49 +-140.32 -4.97509 105.622 +-143.006 -4.97885 105.702 +-142.63 -4.87572 103.512 +-142.226 -4.77324 101.337 +-142.369 -4.69037 99.5772 +-143.316 -4.6344 98.3889 +-144.087 -4.57275 97.0801 +-147.097 -4.58093 97.2539 +-491.377 -15.0141 318.751 +-2763.37 -82.8308 1758.51 +-496.108 -14.5858 309.66 +-498.453 -14.3718 305.115 +-2808.51 -79.3989 1685.65 +-2823.13 -78.2429 1661.11 +-2837.53 -77.0807 1636.44 +-2851.72 -75.9129 1611.64 +-2865.69 -74.739 1586.72 +-406.014 -10.3722 220.203 +-405.008 -10.1322 215.109 +-407.049 -9.96985 211.661 +-407.546 -9.77031 207.425 +-405.763 -9.51863 202.082 +-386.751 -8.87521 188.422 +-378.003 -8.48314 180.098 +-380.196 -8.34152 177.092 +-378.817 -8.12269 172.446 +-379.852 -7.95726 168.934 +-379.663 -7.76722 164.899 +-379.34 -7.5761 160.842 +-380.084 -7.40747 157.262 +-379.682 -7.21762 153.231 +-380.82 -7.05802 149.843 +-379.967 -6.86262 145.694 +-380.102 -6.68656 141.957 +-380.2 -6.51092 138.228 +-380.167 -6.33415 134.475 +-379.342 -6.14566 130.473 +-381.131 -6.00014 127.384 +-381.849 -5.83758 123.933 +-380.247 -5.64095 119.758 +-380.418 -5.47223 116.176 +-379.213 -5.28511 112.204 +-380.179 -5.12923 108.894 +-380.827 -4.96916 105.496 +-379.802 -4.78825 101.655 +-380.579 -4.63093 98.3154 +-380.356 -4.46197 94.7284 +-379.03 -4.28147 90.8962 +-379.225 -4.11933 87.454 +-379.389 -3.95736 84.0153 +-379.815 -3.7985 80.6427 +-379.623 -3.63396 77.1496 +-380.871 -3.48334 73.9519 +-380.421 -3.3174 70.4288 +-379.643 -3.14964 66.8673 +-379.72 -2.98975 63.4729 +-380.161 -2.833 60.1449 +-380.079 -2.67263 56.7403 +-380.461 -2.51581 53.4111 +-379.525 -2.35091 49.9101 +-380.741 -2.19958 46.6973 +-379.843 -2.03624 43.2297 +-379.311 -1.87578 39.823 +-379.644 -1.71997 36.5151 +-380.148 -1.56484 33.2218 +-380.424 -1.4087 29.9068 +-379.473 -1.24851 26.506 +-380.589 -1.09524 23.252 +-380.278 -0.937696 19.9074 +-379.538 -0.779677 16.5526 +-3274.5 -5.38015 114.221 +-146.35 -0.180313 3.82807 +-145.478 -0.119477 2.53652 +-145.294 -0.0596588 1.26657 +96.1 1.77636e-15 1.13687e-13 +95.9963 -0.0318671 0.837141 +96.0854 -0.0637982 1.67597 +95.9671 -0.0955916 2.51117 +96.9409 -0.128772 3.3828 +96.9077 -0.160946 4.22802 +95.9683 -0.191317 5.02585 +95.8209 -0.222934 5.85642 +96.7637 -0.257386 6.76148 +96.701 -0.289497 7.60502 +96.7305 -0.321917 8.4567 +96.653 -0.354015 9.29988 +96.5681 -0.386084 10.1424 +96.4758 -0.418125 10.984 +96.3762 -0.450134 11.8249 +96.2693 -0.48211 12.6649 +96.155 -0.514048 13.5039 +96.8247 -0.550443 14.46 +95.707 -0.576614 15.1475 +96.4587 -0.614014 16.13 +96.3142 -0.646009 16.9705 +95.9657 -0.676569 17.7733 +95.8068 -0.7084 18.6095 +95.6407 -0.740174 19.4442 +95.4672 -0.771895 20.2775 +95.4817 -0.805202 21.1525 +95.9755 -0.842857 22.1417 +95.7784 -0.874684 22.9778 +95.7682 -0.908284 23.8604 +95.5562 -0.940039 24.6946 +96.013 -0.978614 25.708 +95.7849 -1.01045 26.5443 +95.5494 -1.04221 27.3786 +96.2655 -1.08469 28.4945 +96.013 -1.1166 29.3329 +96.6115 -1.15872 30.4395 +96.342 -1.19075 31.2807 +96.9187 -1.23355 32.405 +96.632 -1.26568 33.249 +96.2437 -1.29643 34.057 +96.7883 -1.34004 35.2026 +96.3836 -1.37078 36.0102 +96.999 -1.41636 37.2075 +96.7634 -1.4499 38.0885 +97.1689 -1.49337 39.2304 +96.915 -1.52702 40.1144 +96.561 -1.55913 40.958 +96.2913 -1.59264 41.8384 +96.8358 -1.64002 43.0829 +96.4559 -1.6721 43.9257 +96.0686 -1.70405 44.7651 +96.4864 -1.75062 45.9883 +96.0811 -1.78258 46.828 +96.3844 -1.82798 48.0207 +96.6742 -1.87373 49.2223 +97.2164 -1.92506 50.571 +96.6828 -1.95547 51.3699 +96.1426 -1.98568 52.1634 +96.4706 -2.03412 53.4358 +96.6965 -2.08105 54.6687 +96.2154 -2.11307 55.5098 +96.4163 -2.16037 56.7524 +96.7742 -2.21188 58.1057 +97.0305 -2.26181 59.4173 +96.4231 -2.29192 60.2082 +96.5683 -2.34019 61.4763 +96.6987 -2.38873 62.7515 +96.147 -2.42074 63.5922 +96.2513 -2.46958 64.8753 +96.4228 -2.52083 66.2215 +95.9227 -2.55492 67.1172 +95.9842 -2.60434 68.4153 +96.0303 -2.65398 69.7196 +96.1413 -2.70612 71.0893 +96.2356 -2.75854 72.4662 +95.5991 -2.79038 73.3027 +96.3737 -2.86416 75.2409 +96.3391 -2.91499 76.5761 +96.2107 -2.96361 77.8535 +96.2987 -3.01963 79.3251 +96.1386 -3.0686 80.6114 +96.1914 -3.1251 82.0957 +96.15 -3.17937 83.5214 +96.0161 -3.23133 84.8864 +96.0143 -3.28854 86.3891 +95.8461 -3.34084 87.7631 +96.3193 -3.41663 89.7542 +96.1846 -3.47204 91.2097 +95.4564 -3.50648 92.1145 +95.7895 -3.58069 94.064 +96.3079 -3.66346 96.2382 +96.0947 -3.7197 97.7158 +95.9323 -3.77882 99.2689 +95.6813 -3.83536 100.754 +95.3434 -3.88922 102.169 +95.6636 -3.9712 104.322 +95.8864 -4.05089 106.416 +95.5498 -4.10817 107.921 +95.1942 -4.16557 109.429 +96.0534 -4.27802 112.383 +95.7111 -4.33888 113.981 +95.5389 -4.40864 115.814 +95.5938 -4.49043 117.963 +95.1825 -4.55178 119.574 +95.1197 -4.63117 121.66 +95.1494 -4.71687 123.911 +95.0868 -4.79991 126.093 +95.1716 -4.89246 128.524 +94.9861 -4.9731 130.642 +95.4676 -5.09118 133.744 +94.9269 -5.15695 135.472 +95.1562 -5.26661 138.353 +94.895 -5.35163 140.586 +94.6572 -5.44 142.907 +95.0395 -5.56693 146.242 +94.7797 -5.65921 148.666 +95.0145 -5.78402 151.945 +94.6245 -5.87372 154.301 +94.767 -5.99947 157.605 +94.3006 -6.0897 159.975 +93.85 -6.18335 162.435 +94.2499 -6.33676 166.465 +94.247 -6.46762 169.903 +94.0957 -6.59227 173.178 +94.2699 -6.74416 177.168 +94.012 -6.86965 180.464 +94.1576 -7.02942 184.661 +93.5677 -7.1387 187.532 +116.651 -9.09775 238.996 +116.798 -9.31465 244.694 +116.812 -9.52888 250.322 +116.819 -9.75076 256.15 +117.181 -10.0116 263.002 +115.438 -10.0989 265.297 +112.687 -10.0984 265.282 +109.677 -10.0721 264.592 +107.025 -10.0764 264.704 +104.416 -10.0832 264.884 +101.705 -10.0784 264.758 +99.1087 -10.0833 264.886 +96.4497 -10.0801 264.801 +93.8331 -10.0795 264.785 +92.9823 -10.2721 269.845 +92.7799 -10.5478 277.089 +92.5506 -10.8351 284.635 +92.6475 -11.1774 293.627 +92.3602 -11.4915 301.878 +92.163 -11.8353 310.912 +92.0077 -12.2055 320.637 +91.7162 -12.5802 330.479 +91.7772 -13.029 342.269 +91.7142 -13.4898 354.375 +91.4223 -13.948 366.41 +91.3238 -14.4697 380.116 +90.9477 -14.985 393.653 +90.9479 -15.6051 409.943 +90.5871 -16.2114 425.871 +90.4931 -16.9193 444.466 +90.2145 -17.6544 463.777 +89.915 -18.4542 484.787 +89.724 -19.3561 508.482 +89.6869 -20.3869 535.56 +89.6682 -21.5355 565.733 +98.781 -25.1422 660.481 +93.3156 -25.2569 663.494 +88.5229 -25.5773 671.911 +88.0019 -27.2632 716.199 +87.4608 -29.2 767.078 +89.6959 -32.4624 852.781 +86.6925 -34.2479 899.684 +86.4672 -37.5949 987.61 +84.979 -41.073 1078.98 +83.7078 -45.5357 1196.21 +83.0382 -51.644 1356.68 +81.0318 -58.8151 1545.06 +71.1694 -62.0055 1628.87 +60.4983 -65.9003 1731.19 +71.1699 -103.385 2715.9 +54.2892 -118.31 3107.98 +27.1395 -118.297 3107.63 +1.38556e-13 -118.199 3105.05 +-27.1133 -118.183 3104.63 +-54.2299 -118.181 3104.58 +-81.3606 -118.188 3104.78 +-108.537 -118.229 3105.86 +-135.687 -118.215 3105.49 +-133.399 -96.8248 2543.57 +-135.027 -83.9776 2206.07 +-130.717 -71.1078 1867.99 +-120.827 -58.3994 1534.14 +-134.185 -58.3419 1532.63 +-115.427 -45.5996 1197.89 +-125.361 -45.3703 1191.87 +-139.364 -46.5289 1222.3 +-157.784 -48.882 1284.12 +-113.493 -32.7919 861.437 +-120.315 -32.5647 855.467 +-127.87 -32.5461 854.979 +-149.692 -35.9514 944.435 +-379.296 -86.2184 2264.94 +-398.575 -85.9845 2258.79 +-144.367 -29.6299 778.371 +-152.323 -29.8086 783.066 +-173.729 -32.4817 853.288 +-111.524 -19.9582 524.298 +-114.908 -19.7162 517.941 +-119.247 -19.6477 516.14 +-123.936 -19.6369 515.857 +-130.033 -19.8386 521.157 +-820.32 -120.657 3169.64 +-392.085 -55.6617 1462.22 +-405.588 -55.632 1461.44 +-903.071 -119.799 3147.1 +-930.519 -119.495 3139.11 +-957.897 -119.182 3130.87 +-163.404 -19.7137 517.875 +-142.982 -16.7392 439.736 +-144.754 -16.4566 432.312 +-146.701 -16.2066 425.743 +-151.482 -16.272 427.461 +-1120.56 -117.111 3076.48 +-398.991 -40.5933 1066.38 +-1174.26 -116.364 3056.85 +-144.255 -13.9303 365.947 +-143.774 -13.5363 355.595 +-143.659 -13.1928 346.573 +-146.094 -13.0921 343.928 +-150.568 -13.1722 346.031 +-1332.75 -113.866 2991.24 +-1358.83 -113.42 2979.51 +-490.829 -40.0395 1051.83 +-1410.48 -112.487 2955 +-508.686 -39.6732 1042.21 +-141.936 -10.8289 284.473 +-144.006 -10.7508 282.422 +-141.988 -10.3754 272.559 +-142.719 -10.2103 268.222 +-145.629 -10.2026 268.021 +-149.127 -10.2337 268.838 +-408.367 -27.456 721.264 +-109.8 -7.23422 190.041 +-108.816 -7.02706 184.599 +-110.064 -6.96787 183.044 +-111.24 -6.90511 181.396 +-112.237 -6.83245 179.487 +-114.122 -6.81415 179.006 +-116.063 -6.79837 178.592 +-117.121 -6.73104 176.823 +-119.108 -6.71712 176.457 +-121.607 -6.73062 176.812 +-125.785 -6.83333 179.51 +-414.448 -22.102 580.613 +-414.682 -21.7112 570.348 +-416.852 -21.429 562.935 +-417.961 -21.0984 554.251 +-418.523 -20.7476 545.035 +-420.251 -20.461 537.507 +-420.82 -20.1243 528.66 +-422.463 -19.8449 521.32 +-423.628 -19.5483 513.53 +-430.925 -19.5352 513.184 +-426.493 -18.9951 498.998 +-430.244 -18.827 494.581 +-432.426 -18.5923 488.415 +-161.194 -6.80989 178.894 +-163.966 -6.80658 178.807 +-437.979 -17.866 469.335 +-439.583 -17.6206 462.889 +-441.386 -17.3864 456.738 +-442.204 -17.1172 449.664 +-441.588 -16.7976 441.268 +-443.499 -16.5783 435.51 +-428.151 -15.7276 413.162 +-426.738 -15.4042 404.666 +-2396.28 -85.0008 2232.95 +-420.69 -14.6637 385.213 +-422.701 -14.4777 380.326 +-421.512 -14.1856 372.653 +-382.638 -12.6526 332.381 +-419.364 -13.6245 357.912 +-382.869 -12.2206 321.032 +-420.072 -13.1722 346.03 +-417.561 -12.8623 337.889 +-382.148 -11.5629 303.754 +-381.082 -11.3255 297.519 +-381.365 -11.1314 292.42 +-140.4 -4.02449 105.722 +-142.926 -4.02297 105.682 +-143.439 -3.9642 104.139 +-142.959 -3.87887 101.897 +-142.369 -3.79202 99.6155 +-142.656 -3.72953 97.9739 +-144.087 -3.69692 97.1174 +-147.431 -3.71194 97.5119 +-491.88 -12.1508 319.2 +-2763.37 -66.9661 1759.19 +-496.532 -11.8023 310.043 +-2793.68 -65.1216 1710.73 +-2808.51 -64.1916 1686.3 +-2823.13 -63.257 1661.75 +-2837.53 -62.3174 1637.06 +-404.28 -8.7007 228.565 +-2865.69 -60.4242 1587.33 +-403.992 -8.34385 219.191 +-404.478 -8.18086 214.909 +-404.92 -8.01816 210.635 +-405.943 -7.86791 206.688 +-405.226 -7.68532 201.892 +-386.302 -7.167 188.276 +-378.273 -6.86326 180.296 +-379.652 -6.73423 176.907 +-380.091 -6.589 173.092 +-380.126 -6.43783 169.121 +-378.471 -6.25985 164.445 +-379.248 -6.12356 160.864 +-380.269 -5.99164 157.399 +-380.331 -5.84522 153.553 +-381.006 -5.70897 149.973 +-380.247 -5.55229 145.857 +-380.102 -5.40587 142.011 +-380.106 -5.26258 138.247 +-381.393 -5.13747 134.96 +-379.342 -4.96858 130.523 +-380.467 -4.84248 127.211 +-380.423 -4.70189 123.518 +-380.342 -4.56167 119.834 +-380.705 -4.42747 116.309 +-380.076 -4.28258 112.503 +-380.179 -4.14682 108.936 +-379.381 -4.00216 105.136 +-379.416 -3.8672 101.59 +-379.804 -3.73635 98.153 +-380.647 -3.61013 94.8373 +-378.446 -3.45611 90.7911 +-380.102 -3.33805 87.6899 +-379.974 -3.20434 84.1773 +-379.815 -3.07097 80.6737 +-379.917 -2.94022 77.239 +-380.184 -2.81109 73.8468 +-379.438 -2.67508 70.2738 +-380.628 -2.55299 67.0664 +-380.608 -2.42278 63.6458 +-380.26 -2.29099 60.1837 +-380.079 -2.16074 56.7621 +-379.669 -2.02972 53.3204 +-379.922 -1.90262 49.9814 +-379.847 -1.77412 46.6056 +-380.637 -1.64968 43.3368 +-379.311 -1.51651 39.8383 +-379.843 -1.39126 36.5482 +-379.949 -1.26446 33.2171 +-380.424 -1.13889 29.9183 +-379.773 -1.01018 26.5371 +-380.09 -0.884304 23.2305 +-379.879 -0.757303 19.8942 +-379.538 -0.630344 16.559 +-379.269 -0.503804 13.2348 +-142.951 -0.142391 3.74059 +-144.578 -0.095996 2.52179 +-144.994 -0.0481326 1.26443 +96 1.77636e-15 -2.27374e-13 +95.9963 -0.0243135 0.837394 +95.9854 -0.0486252 1.67472 +95.9671 -0.0729332 2.51193 +95.9415 -0.0972355 3.34894 +96.0085 -0.121657 4.19005 +95.9683 -0.145968 5.02737 +95.9208 -0.170268 5.86429 +95.8659 -0.194555 6.70078 +96.701 -0.220877 7.60732 +95.7343 -0.243083 8.37214 +96.653 -0.270101 9.3027 +96.767 -0.295176 10.1663 +95.681 -0.316389 10.8969 +96.3762 -0.343438 11.8285 +96.2693 -0.367834 12.6688 +96.155 -0.392201 13.508 +96.0334 -0.41654 14.3463 +95.707 -0.439937 15.1521 +96.4587 -0.468472 16.1349 +96.1172 -0.491876 16.941 +95.9657 -0.5162 17.7787 +95.8068 -0.540486 18.6152 +95.6407 -0.564728 19.4501 +95.4672 -0.58893 20.2837 +95.4817 -0.614342 21.1589 +95.9755 -0.643072 22.1484 +95.7784 -0.667355 22.9847 +95.7682 -0.69299 23.8676 +96.2339 -0.722306 24.8773 +96.013 -0.74665 25.7158 +95.7849 -0.770939 26.5523 +96.5107 -0.803169 27.6623 +96.2655 -0.827579 28.5031 +96.8737 -0.859568 29.6048 +96.6115 -0.884069 30.4487 +96.342 -0.908503 31.2902 +96.0652 -0.93287 32.1295 +96.5374 -0.964722 33.2265 +96.338 -0.990105 34.1007 +95.8486 -1.01248 34.8714 +96.3836 -1.04586 36.0211 +97.0924 -1.08168 37.2546 +96.6704 -1.10516 38.0635 +97.1689 -1.13939 39.2423 +96.915 -1.16506 40.1266 +96.561 -1.18957 40.9704 +96.2913 -1.21513 41.8511 +96.8358 -1.25128 43.0959 +96.4559 -1.27576 43.939 +96.0686 -1.30014 44.7786 +96.4864 -1.33566 46.0022 +96.0811 -1.36005 46.8422 +96.3844 -1.39469 48.0353 +96.7633 -1.43091 49.2826 +96.3294 -1.45536 50.1248 +96.6828 -1.49196 51.3854 +96.1426 -1.51501 52.1792 +96.4706 -1.55196 53.452 +96.0002 -1.57634 54.2914 +96.302 -1.61365 55.5766 +96.5025 -1.64976 56.8204 +96.7742 -1.68759 58.1233 +96.1778 -1.71052 58.913 +96.4231 -1.74866 60.2264 +96.484 -1.78393 61.4412 +96.7826 -1.8241 62.8248 +96.2304 -1.84854 63.6667 +96.3342 -1.88583 64.9508 +96.4228 -1.92331 66.2416 +95.8408 -1.94765 67.0801 +95.9842 -1.98702 68.4361 +96.0303 -2.0249 69.7407 +95.4178 -2.04915 70.5758 +96.2356 -2.10467 72.4882 +96.3131 -2.14487 73.8725 +96.3737 -2.18526 75.2637 +96.2608 -2.22223 76.537 +96.2884 -2.26297 77.94 +95.6814 -2.28911 78.8405 +96.2152 -2.34311 80.7001 +96.1914 -2.38435 82.1206 +96.15 -2.42576 83.5467 +96.0161 -2.4654 84.9121 +95.94 -2.5071 86.3484 +95.8461 -2.54895 87.7897 +96.3193 -2.60678 89.7814 +96.1121 -2.64705 91.1686 +95.3125 -2.67129 92.0034 +95.7895 -2.73195 94.0924 +95.7423 -2.77868 95.702 +96.0947 -2.83801 97.7454 +95.8629 -2.88103 99.2271 +95.6125 -2.92416 100.713 +95.9572 -2.98644 102.858 +95.7311 -3.03204 104.428 +95.8864 -3.09069 106.448 +95.5498 -3.1344 107.954 +95.8502 -3.20011 110.217 +95.5338 -3.24634 111.809 +95.1326 -3.29043 113.327 +95.1573 -3.35021 115.386 +95.0903 -3.40802 117.378 +95.1825 -3.47286 119.611 +95.1813 -3.53569 121.775 +95.1494 -3.59882 123.949 +95.147 -3.6645 126.211 +95.0527 -3.72811 128.402 +95.0449 -3.79666 130.763 +94.9449 -3.86313 133.052 +94.9269 -3.93458 135.513 +95.0996 -4.01587 138.313 +94.951 -4.08553 140.712 +94.7124 -4.15297 143.035 +94.4949 -4.22303 145.448 +94.7797 -4.31779 148.711 +94.5906 -4.39334 151.313 +94.6245 -4.48145 154.348 +94.252 -4.55253 156.796 +94.3006 -4.64624 160.024 +94.3 -4.7403 163.263 +94.2991 -4.83727 166.603 +94.1985 -4.93205 169.867 +94.0957 -5.02969 173.23 +94.2699 -5.14557 177.221 +94.0582 -5.2439 180.608 +94.1122 -5.36063 184.628 +93.6123 -5.44918 187.678 +116.256 -6.9178 238.26 +116.841 -7.10941 244.859 +116.558 -7.25446 249.855 +116.902 -7.44479 256.41 +117.222 -7.64116 263.173 +115.398 -7.70248 265.285 +113.039 -7.72875 266.19 +110.021 -7.70881 265.503 +107.025 -7.68794 264.784 +104.709 -7.71476 265.708 +101.705 -7.68951 264.838 +99.4239 -7.71769 265.809 +96.4839 -7.69349 264.975 +93.8331 -7.69029 264.865 +93.2427 -7.8592 270.683 +92.7799 -8.04765 277.173 +92.4579 -8.25853 284.436 +92.437 -8.50861 293.05 +92.331 -8.76482 301.874 +92.3334 -9.04666 311.581 +92.118 -9.32359 321.119 +91.9834 -9.62624 331.542 +92.0102 -9.96595 343.242 +91.6391 -10.2839 354.193 +91.3255 -10.6306 366.133 +91.3472 -11.0427 380.328 +91.0827 -11.45 394.356 +90.9046 -11.9005 409.871 +90.8158 -12.4 427.075 +90.3336 -12.8861 443.817 +90.3862 -13.4954 464.801 +90.0061 -14.0942 485.425 +89.724 -14.7681 508.636 +89.7034 -15.5574 535.82 +89.5431 -16.408 565.115 +98.7958 -19.1856 660.78 +93.2042 -19.2472 662.904 +88.6142 -19.5348 672.808 +88.014 -20.8038 716.515 +87.8457 -22.3767 770.687 +89.6959 -24.7678 853.04 +86.6254 -26.1098 899.26 +86.3975 -28.6605 987.112 +84.9163 -31.3141 1078.51 +83.631 -34.7103 1195.48 +83.081 -39.423 1357.79 +80.9951 -44.8537 1544.83 +71.1694 -47.3081 1629.36 +60.5262 -50.3029 1732.51 +71.8426 -79.625 2742.4 +54.3084 -90.2986 3110.02 +27.1483 -90.2855 3109.57 +1.58984e-13 -90.1961 3106.49 +-27.1011 -90.1288 3104.17 +-54.2002 -90.1186 3103.82 +-81.3422 -90.1537 3105.03 +-108.548 -90.2138 3107.1 +-135.709 -90.2089 3106.93 +-133.415 -73.8829 2544.64 +-134.984 -64.0521 2206.05 +-130.717 -54.2529 1868.55 +-120.827 -44.5568 1534.6 +-134.333 -44.562 1534.78 +-115.398 -34.7823 1197.96 +-125.486 -34.6505 1193.42 +-139.466 -35.5259 1223.56 +-157.87 -37.3154 1285.2 +-113.466 -25.0134 861.5 +-120.315 -24.8458 855.726 +-127.781 -24.8143 854.644 +-149.786 -27.4469 945.314 +-379.444 -65.8076 2266.51 +-398.87 -65.6518 2261.15 +-144.422 -22.6152 778.902 +-152.495 -22.7686 784.186 +-173.789 -24.791 853.84 +-111.524 -15.2275 524.457 +-114.886 -15.04 518 +-119.224 -14.9877 516.198 +-123.913 -14.9795 515.917 +-129.864 -15.1165 520.636 +-820.32 -92.0576 3170.6 +-392.007 -42.4596 1462.37 +-405.775 -42.4651 1462.56 +-903.071 -91.4029 3148.05 +-930.519 -91.1707 3140.06 +-957.897 -90.9315 3131.82 +-163.434 -15.0437 518.127 +-142.982 -12.7715 439.869 +-145.008 -12.5779 433.201 +-146.766 -12.3705 426.06 +-151.882 -12.4478 428.721 +-1120.56 -89.3518 3077.41 +-399.201 -30.9876 1067.26 +-1174.26 -88.7816 3057.77 +-144.658 -10.6581 367.081 +-143.774 -10.3277 355.703 +-143.659 -10.0657 346.678 +-145.704 -9.96215 343.111 +-150.408 -10.0393 345.769 +-1332.75 -86.8762 2992.15 +-1358.83 -86.5355 2980.41 +-491.505 -30.5909 1053.6 +-1410.66 -85.834 2956.25 +-508.73 -30.2719 1042.61 +-143.14 -8.33221 286.974 +-144.097 -8.20771 282.686 +-141.988 -7.91606 272.641 +-142.813 -7.79524 268.48 +-145.39 -7.77153 267.663 +-148.982 -7.80041 268.658 +-408.318 -20.9455 721.395 +-109.8 -5.51947 190.099 +-108.867 -5.36391 184.741 +-110.115 -5.31872 183.185 +-111.24 -5.26837 181.451 +-112.767 -5.23754 180.389 +-114.337 -5.20878 179.398 +-116.008 -5.18449 178.562 +-117.231 -5.14038 177.042 +-119.611 -5.14659 177.256 +-121.098 -5.11371 176.124 +-125.613 -5.20646 179.318 +-414.215 -16.8536 580.464 +-415.447 -16.5954 571.572 +-416.316 -16.3286 562.382 +-417.419 -16.0765 553.701 +-418.889 -15.8436 545.676 +-419.327 -15.5768 536.488 +-421.193 -15.3678 529.29 +-421.519 -15.1071 520.313 +-423.819 -14.9214 513.916 +-430.925 -14.9047 513.34 +-427.077 -14.5125 499.832 +-430.178 -14.3622 494.655 +-433.022 -14.2049 489.237 +-160.658 -5.17845 178.354 +-163.763 -5.18678 178.641 +-437.707 -13.6227 469.185 +-439.927 -13.4545 463.392 +-441.386 -13.2653 456.876 +-442.204 -13.0598 449.8 +-441.588 -12.816 441.402 +-428.378 -12.2175 420.789 +-427.576 -11.9835 412.731 +-423.691 -11.669 401.899 +-2396.28 -64.8528 2233.63 +-381.836 -10.1546 349.741 +-420.248 -10.9819 378.234 +-422.786 -10.8558 373.891 +-382.336 -9.64592 332.22 +-420.048 -10.412 358.604 +-381.72 -9.29593 320.166 +-382.957 -9.162 315.553 +-383.055 -9.00255 310.061 +-382.774 -8.83654 304.344 +-382.422 -8.67137 298.655 +-382 -8.50704 292.996 +-140.4 -3.07055 105.754 +-142.926 -3.06939 105.714 +-143.196 -3.01944 103.994 +-143.04 -2.96117 101.987 +-142.369 -2.89318 99.6456 +-143.233 -2.85702 98.3999 +-143.755 -2.81414 96.9232 +-148.348 -2.84971 98.1482 +-2747.9 -51.7909 1783.76 +-2763.37 -51.0929 1759.72 +-496.532 -9.00475 310.137 +-498.794 -8.87107 305.533 +-2808.51 -48.976 1686.81 +-2823.13 -48.263 1662.25 +-2837.53 -47.5461 1637.56 +-2851.72 -46.8258 1612.75 +-2865.69 -46.1017 1587.81 +-405.223 -6.38547 219.925 +-2892.98 -44.643 1537.57 +-405.541 -6.12697 211.022 +-405.943 -6.00295 206.751 +-406.032 -5.87531 202.355 +-385.223 -5.45292 187.807 +-379.988 -5.26018 181.169 +-379.834 -5.14044 177.044 +-379.181 -5.01517 172.73 +-379.03 -4.89769 168.684 +-379.663 -4.79109 165.012 +-378.42 -4.66188 160.562 +-381.008 -4.5803 157.753 +-378.291 -4.43577 152.775 +-380.448 -4.34937 149.799 +-379.967 -4.23311 145.795 +-379.821 -4.12146 141.949 +-380.2 -4.01616 138.323 +-380.167 -3.90712 134.567 +-379.342 -3.79086 130.563 +-380.278 -3.69279 127.185 +-380.993 -3.59275 123.74 +-380.247 -3.47954 119.84 +-381.566 -3.38565 116.607 +-379.788 -3.26497 112.451 +-379.314 -3.15669 108.721 +-380.249 -3.06048 105.408 +-379.995 -2.95504 101.776 +-379.804 -2.85071 98.1827 +-379.386 -2.74528 94.5517 +-379.613 -2.64503 91.0987 +-379.615 -2.54356 87.604 +-379.389 -2.44104 84.073 +-378.934 -2.33762 80.5111 +-380.505 -2.24676 77.382 +-379.792 -2.14256 73.7929 +-379.831 -2.04311 70.3679 +-379.348 -1.94129 66.8611 +-379.72 -1.84419 63.5165 +-379.47 -1.74431 60.0768 +-380.672 -1.65114 56.8678 +-379.867 -1.54942 53.3643 +-380.517 -1.45391 50.0749 +-379.649 -1.35288 46.5954 +-380.339 -1.25767 43.3159 +-379.808 -1.15856 39.9026 +-379.246 -1.05982 36.5018 +-380.148 -0.965248 33.2446 +-379.526 -0.866885 29.8568 +-380.072 -0.771337 26.566 +-380.289 -0.675049 23.2497 +-379.879 -0.577797 19.9002 +-379.139 -0.480427 16.5466 +-3274.5 -3.31866 114.3 +-145.25 -0.110387 3.80191 +-146.678 -0.0743054 2.55919 +-145.594 -0.0368754 1.27004 +96 1.77636e-15 -2.27374e-13 +95.9963 -0.016758 0.837579 +95.9854 -0.0335147 1.67509 +95.9671 -0.0502689 2.51249 +95.9415 -0.0670192 3.34968 +95.9086 -0.0837644 4.18662 +96.8671 -0.10155 5.07557 +95.8209 -0.117234 5.85949 +96.7637 -0.135352 6.76503 +95.7041 -0.150669 7.53056 +96.7305 -0.169287 8.46113 +95.8567 -0.184632 9.2281 +96.5681 -0.203031 10.1477 +96.4758 -0.21988 10.9898 +96.3762 -0.236713 11.8311 +96.2693 -0.253528 12.6716 +96.155 -0.270323 13.511 +96.0334 -0.287098 14.3494 +95.707 -0.303225 15.1555 +95.5711 -0.31992 15.9899 +95.4279 -0.336591 16.8231 +95.9657 -0.355789 17.7826 +95.8068 -0.372528 18.6193 +95.6407 -0.389237 19.4544 +95.4672 -0.405918 20.2881 +95.2865 -0.422567 21.1203 +95.9755 -0.443234 22.1533 +95.9729 -0.460906 23.0365 +95.7682 -0.477641 23.8729 +96.2339 -0.497846 24.8828 +96.2062 -0.515662 25.7732 +95.7849 -0.531366 26.5582 +96.5107 -0.55358 27.6685 +96.2655 -0.570405 28.5094 +96.013 -0.587189 29.3482 +95.7532 -0.603928 30.1849 +96.342 -0.626182 31.2971 +96.9187 -0.648688 32.422 +96.5374 -0.664931 33.2338 +96.2437 -0.681758 34.0749 +95.9426 -0.698533 34.9133 +96.3836 -0.720857 36.0291 +97.0924 -0.745541 37.2628 +96.7634 -0.76246 38.1085 +97.1689 -0.785318 39.2509 +96.915 -0.803016 40.1355 +96.653 -0.820685 41.0186 +96.2913 -0.837526 41.8603 +96.7445 -0.861624 43.0648 +96.4559 -0.87931 43.9487 +96.8843 -0.903722 45.1689 +96.4864 -0.920599 46.0124 +96.0811 -0.937408 46.8525 +96.4739 -0.962177 48.0905 +96.7633 -0.986247 49.2935 +96.3294 -1.0031 50.1359 +96.5945 -1.02739 51.3499 +96.1426 -1.04421 52.1908 +96.4706 -1.06968 53.4638 +96.6965 -1.09436 54.6974 +96.2154 -1.1112 55.5389 +96.5025 -1.13709 56.8329 +95.917 -1.15287 57.6213 +96.9452 -1.18838 59.3962 +96.3383 -1.20419 60.1868 +95.8936 -1.22204 61.0788 +95.9439 -1.24636 62.2942 +96.147 -1.273 63.6256 +96.2513 -1.29868 64.9093 +95.6811 -1.31543 65.7466 +96.578 -1.35274 67.6112 +95.9842 -1.36955 68.4512 +96.0303 -1.39566 69.7561 +96.8648 -1.43378 71.6618 +96.2356 -1.45064 72.5042 +96.3131 -1.47834 73.8888 +96.3737 -1.50618 75.2803 +96.2608 -1.53166 76.554 +96.3661 -1.561 78.0201 +96.2987 -1.58794 79.3667 +96.2152 -1.61497 80.7179 +96.1914 -1.6434 82.1388 +96.15 -1.67194 83.5652 +96.0161 -1.69927 84.9309 +95.3455 -1.7173 85.8323 +95.8461 -1.75685 87.8091 +95.7342 -1.7858 89.2557 +96.1846 -1.82585 91.2575 +96.1038 -1.85646 92.7878 +95.7895 -1.88298 94.1133 +96.2372 -1.92509 96.2179 +96.0947 -1.95609 97.767 +95.8629 -1.98574 99.249 +95.6813 -2.01691 100.807 +95.4116 -2.04669 102.296 +95.6636 -2.08834 104.377 +95.2842 -2.11686 105.803 +95.5498 -2.16037 107.977 +95.8502 -2.20566 110.241 +95.4689 -2.23601 111.758 +95.7111 -2.28169 114.041 +95.5389 -2.31838 115.875 +95.0903 -2.34897 117.404 +95.1202 -2.39209 119.559 +95.1813 -2.43696 121.802 +95.0885 -2.47889 123.897 +95.2071 -2.52734 126.319 +95.1122 -2.57121 128.511 +95.1037 -2.61845 130.873 +95.003 -2.66426 133.162 +95.271 -2.72171 136.034 +94.6465 -2.75472 137.683 +94.895 -2.81427 140.66 +94.6572 -2.86074 142.982 +94.5493 -2.91239 145.564 +94.7259 -2.97434 148.66 +94.4846 -3.02469 151.177 +94.52 -3.08542 154.212 +94.3035 -3.13951 156.916 +94.1991 -3.19894 159.886 +94.3 -3.26723 163.299 +94.2991 -3.33406 166.64 +94.247 -3.40114 169.992 +94.4297 -3.47899 173.883 +94.2699 -3.54656 177.261 +94.0582 -3.61434 180.648 +94.1122 -3.69479 184.669 +93.6569 -3.75762 187.809 +116.256 -4.76806 238.312 +116.927 -4.90373 245.093 +116.558 -5.00011 249.91 +116.861 -5.12947 256.376 +117.14 -5.26297 263.048 +115.398 -5.3089 265.344 +112.687 -5.31044 265.421 +109.983 -5.31142 265.47 +107.063 -5.30074 264.936 +104.746 -5.31922 265.86 +101.705 -5.29996 264.897 +99.1087 -5.30252 265.025 +96.4839 -5.3027 265.034 +93.8331 -5.3005 264.924 +92.8846 -5.3961 269.702 +92.6847 -5.54111 276.95 +92.4888 -5.69405 284.594 +92.4971 -5.86832 293.304 +92.4479 -6.04878 302.323 +92.2482 -6.22963 311.363 +92.0629 -6.42238 320.997 +91.7429 -6.61748 330.748 +91.829 -6.85544 342.641 +91.6641 -7.09007 354.368 +91.1078 -7.30959 365.34 +91.2771 -7.60532 380.121 +90.9477 -7.88019 393.859 +90.7964 -8.19261 409.474 +90.6287 -8.52905 426.29 +90.2937 -8.87777 443.719 +90.1 -9.27216 463.431 +89.7874 -9.69076 484.353 +89.6893 -10.1749 508.551 +89.6704 -10.7189 535.742 +89.5431 -11.3091 565.24 +98.6628 -13.2058 660.036 +93.3156 -13.2819 663.842 +88.3923 -13.4306 671.272 +88.2212 -14.3727 718.36 +87.5514 -15.3713 768.274 +89.675 -17.0671 853.029 +86.6158 -17.9941 899.36 +86.3888 -19.7521 987.23 +85.0497 -21.6171 1080.44 +83.5683 -23.9059 1194.84 +82.91 -27.1163 1355.3 +81.126 -30.9652 1547.67 +71.1868 -32.6149 1630.12 +60.5157 -34.6651 1732.59 +71.9657 -54.9752 2747.71 +54.3171 -62.2479 3111.21 +27.1483 -62.2289 3110.26 +1.43885e-13 -62.1513 3106.38 +-27.1186 -62.1609 3106.86 +-54.2334 -62.1519 3106.41 +-81.3475 -62.1421 3105.92 +-108.537 -62.1735 3107.49 +-135.735 -62.1881 3108.22 +-133.436 -50.9314 2545.6 +-135.052 -44.1694 2207.63 +-130.752 -37.4034 1869.46 +-120.772 -30.6966 1534.24 +-134.29 -30.7044 1534.63 +-115.542 -24.0034 1199.71 +-125.455 -23.8769 1193.39 +-139.557 -24.502 1224.63 +-157.809 -25.7097 1284.99 +-113.649 -17.2682 863.078 +-120.44 -17.1427 856.807 +-127.914 -17.121 855.723 +-149.692 -18.9058 944.93 +-379.461 -45.3596 2267.12 +-399.287 -45.2976 2264.02 +-144.531 -15.5992 779.663 +-152.495 -15.6932 784.359 +-173.729 -17.0812 853.735 +-111.358 -10.4798 523.791 +-114.886 -10.3662 518.114 +-119.224 -10.3302 516.313 +-123.913 -10.3246 516.031 +-129.791 -10.4132 520.46 +-820.32 -63.4503 3171.31 +-392.163 -29.2767 1463.28 +-405.721 -29.2649 1462.69 +-903.071 -62.999 3148.75 +-930.519 -62.839 3140.75 +-957.897 -62.6742 3132.51 +-163.674 -10.384 519.004 +-142.982 -8.80268 439.966 +-144.945 -8.66545 433.107 +-146.864 -8.53201 426.438 +-151.515 -8.55885 427.779 +-1120.56 -61.5854 3078.09 +-398.886 -21.3413 1066.66 +-1174.26 -61.1923 3058.45 +-144.621 -7.34419 367.07 +-143.699 -7.11465 355.597 +-143.621 -6.9359 346.663 +-145.899 -6.87559 343.648 +-150.647 -6.93056 346.396 +-1332.75 -59.8791 2992.81 +-1358.83 -59.6442 2981.07 +-491.336 -21.0772 1053.46 +-1410.48 -59.1535 2956.55 +-508.993 -20.8756 1043.38 +-142.248 -5.70714 285.248 +-144.051 -5.65535 282.659 +-141.988 -5.45611 272.701 +-142.86 -5.37459 268.627 +-145.104 -5.34593 267.195 +-149.127 -5.38164 268.979 +-408.367 -14.4383 721.642 +-109.95 -3.80947 190.401 +-109.273 -3.71085 185.472 +-110.167 -3.66763 183.311 +-111.292 -3.6329 181.576 +-112.82 -3.61164 180.513 +-114.069 -3.58169 179.016 +-115.627 -3.56165 178.014 +-117.563 -3.553 177.582 +-119.108 -3.53234 176.55 +-121.551 -3.53778 176.822 +-125.613 -3.58853 179.358 +-414.041 -11.6114 580.348 +-415.447 -11.4383 571.699 +-416.614 -11.2625 562.908 +-417.961 -11.0951 554.541 +-419.315 -10.9312 546.353 +-420.435 -10.7646 538.025 +-420.82 -10.5828 528.937 +-421.959 -10.4234 520.972 +-424.201 -10.2938 514.493 +-431.118 -10.2776 513.683 +-427.077 -10.0027 499.943 +-430.244 -9.90058 494.84 +-432.426 -9.77715 488.671 +-162.063 -3.60045 179.954 +-165.79 -3.61922 180.892 +-437.707 -9.38936 469.289 +-440.203 -9.27922 463.784 +-442.011 -9.15598 457.624 +-442.204 -9.00143 449.9 +-441.588 -8.83336 441.5 +-442.572 -8.69986 434.827 +-444.192 -8.5806 428.866 +-424.344 -8.0552 402.606 +-2396.28 -44.6995 2234.12 +-421.28 -7.72204 385.955 +-382.199 -6.88393 344.065 +-422.186 -7.47174 373.444 +-383.317 -6.66545 333.145 +-420.048 -7.1764 358.683 +-380.954 -6.39432 319.594 +-383.034 -6.31613 315.686 +-382.356 -6.19364 309.564 +-381.052 -6.06314 303.041 +-382.579 -5.97916 298.844 +-382 -5.86344 293.06 +-140.4 -2.11636 105.778 +-143.006 -2.11676 105.798 +-143.196 -2.08114 104.017 +-142.959 -2.03979 101.951 +-142.942 -2.00214 100.069 +-143.233 -1.96919 98.4217 +-143.589 -1.9374 96.8328 +-147.181 -1.94869 97.3974 +-491.88 -6.38978 319.367 +-493.806 -6.29292 314.526 +-496.023 -6.20012 309.888 +-498.027 -6.10493 305.13 +-501.1 -6.02291 301.031 +-503.708 -5.93522 296.648 +-2837.53 -32.7709 1637.92 +-2851.72 -32.2745 1613.11 +-403.287 -4.47173 223.501 +-405.574 -4.40498 220.165 +-406.597 -4.32462 216.149 +-405.719 -4.22485 211.162 +-406.21 -4.14023 206.933 +-404.689 -4.03615 201.731 +-387.56 -3.78121 188.988 +-379.808 -3.62384 181.123 +-380.196 -3.5464 177.253 +-378.453 -3.45005 172.436 +-379.852 -3.38303 169.087 +-378.104 -3.28868 164.371 +-379.248 -3.2202 160.949 +-378.606 -3.13705 156.793 +-380.331 -3.07384 153.633 +-379.983 -2.99412 149.649 +-379.967 -2.91765 145.827 +-380.195 -2.8435 142.121 +-380.2 -2.76812 138.353 +-379.979 -2.69165 134.531 +-380.193 -2.6187 130.885 +-381.131 -2.55096 127.499 +-381.849 -2.48185 124.045 +-379.389 -2.39285 119.597 +-380.418 -2.32652 116.282 +-379.597 -2.24925 112.42 +-379.698 -2.17794 108.855 +-381.116 -2.11424 105.672 +-380.285 -2.03831 101.877 +-380.288 -1.96734 98.3296 +-380.647 -1.89846 94.887 +-379.71 -1.82354 91.1422 +-380.394 -1.75674 87.8033 +-379.974 -1.68507 84.2214 +-379.913 -1.61535 80.7367 +-380.211 -1.54738 77.3393 +-379.104 -1.47408 73.6757 +-380.225 -1.40967 70.4564 +-379.545 -1.33872 66.9106 +-380.114 -1.27242 63.5966 +-380.161 -1.20445 60.1996 +-380.277 -1.13686 56.8213 +-381.154 -1.07155 53.557 +-379.823 -1.00027 49.9946 +-380.344 -0.934175 46.691 +-380.24 -0.866615 43.3142 +-379.708 -0.798325 39.901 +-380.042 -0.732011 36.5866 +-379.849 -0.664771 33.2259 +-380.125 -0.598439 29.9105 +-379.174 -0.530384 26.5091 +-380.19 -0.465152 23.2487 +-379.379 -0.39772 19.8784 +-378.639 -0.330694 16.5284 +-3274.5 -2.28737 114.325 +-144.95 -0.075927 3.7949 +-145.178 -0.050691 2.53358 +-145.994 -0.025486 1.27382 +96 1.77636e-15 -2.27374e-13 +95.9963 -0.00920109 0.837696 +95.9854 -0.0184015 1.67533 +95.9671 -0.0276005 2.51284 +95.9415 -0.0367974 3.35015 +95.9086 -0.0459914 4.18721 +95.9683 -0.0552396 5.02919 +95.9208 -0.0644354 5.86641 +95.7661 -0.0735499 6.69622 +95.8038 -0.082812 7.53947 +96.6309 -0.0928526 8.4536 +96.653 -0.102216 9.30606 +96.5681 -0.111476 10.1491 +96.4758 -0.120727 10.9913 +96.3762 -0.129969 11.8328 +96.2693 -0.139201 12.6733 +96.3531 -0.148728 13.5407 +95.9345 -0.157471 14.3366 +95.707 -0.166488 15.1576 +95.5711 -0.175654 15.9921 +95.2309 -0.184427 16.7908 +95.9657 -0.195348 17.7851 +95.8068 -0.204539 18.6219 +95.6407 -0.213713 19.4571 +95.4672 -0.222872 20.291 +96.1652 -0.234153 21.318 +96.1703 -0.243855 22.2014 +95.9729 -0.253064 23.0397 +95.5741 -0.26172 23.8279 +95.3625 -0.27087 24.6609 +96.013 -0.282559 25.725 +95.7849 -0.291751 26.5619 +96.5107 -0.303947 27.6723 +96.2655 -0.313185 28.5134 +96.013 -0.3224 29.3523 +96.6115 -0.334563 30.4597 +96.342 -0.34381 31.3015 +96.0652 -0.353031 32.1411 +96.632 -0.365443 33.2711 +96.2437 -0.374324 34.0796 +96.6944 -0.386539 35.1918 +96.3836 -0.395792 36.0341 +97.0924 -0.409345 37.2681 +96.6704 -0.418232 38.0772 +96.4271 -0.427893 38.9568 +96.915 -0.440902 40.1411 +96.561 -0.450173 40.9852 +96.2913 -0.45985 41.8662 +96.7445 -0.473081 43.0708 +96.4559 -0.482791 43.9548 +96.8843 -0.496195 45.1752 +96.4864 -0.505461 46.0188 +96.8001 -0.518542 47.2098 +96.4739 -0.52829 48.0972 +96.0505 -0.537517 48.9372 +96.3294 -0.550759 50.1429 +96.6828 -0.564611 51.404 +96.1426 -0.573333 52.1981 +96.3831 -0.586785 53.4228 +96.7836 -0.601409 54.7542 +96.2154 -0.610113 55.5466 +96.5025 -0.624329 56.8409 +96.6885 -0.63808 58.0928 +96.1778 -0.647322 58.9342 +96.4231 -0.661754 60.2482 +96.484 -0.675102 61.4634 +95.9439 -0.684323 62.3029 +96.2304 -0.699554 63.6897 +96.3342 -0.713664 64.9743 +96.4228 -0.727847 66.2655 +95.8408 -0.737061 67.1044 +95.9842 -0.751959 68.4608 +96.0303 -0.766295 69.7659 +96.1413 -0.781349 71.1365 +96.2356 -0.796483 72.5143 +96.2338 -0.811026 73.8383 +96.2949 -0.826303 75.2293 +96.2608 -0.840971 76.5647 +96.2107 -0.855695 77.9052 +96.2987 -0.87187 79.3778 +95.6023 -0.881066 80.2151 +95.507 -0.895902 81.5658 +96.15 -0.917991 83.5769 +96.091 -0.933723 85.0091 +96.0143 -0.949511 86.4465 +95.7723 -0.963871 87.7539 +95.7342 -0.980504 89.2682 +96.1121 -1.00174 91.2015 +96.1757 -1.02007 92.8702 +95.8609 -1.03464 94.1965 +95.6715 -1.05077 95.6657 +96.0947 -1.074 97.7807 +95.8629 -1.09028 99.2629 +95.6125 -1.10661 100.749 +95.9572 -1.13018 102.895 +95.7311 -1.14743 104.466 +95.8864 -1.16963 106.487 +95.5498 -1.18617 107.992 +95.1942 -1.20274 109.501 +95.4689 -1.22769 111.773 +95.0683 -1.24437 113.291 +95.1573 -1.26784 115.428 +95.0903 -1.28972 117.42 +95.1202 -1.3134 119.576 +95.0581 -1.33631 121.662 +95.2103 -1.36279 124.073 +95.2071 -1.38765 126.336 +95.1122 -1.41174 128.529 +94.9273 -1.43501 130.648 +94.8869 -1.46104 133.018 +94.7548 -1.48628 135.316 +94.6465 -1.5125 137.703 +94.951 -1.54611 140.763 +94.6572 -1.57071 143.002 +94.5493 -1.59907 145.584 +94.4035 -1.62753 148.175 +94.4846 -1.66073 151.198 +94.1542 -1.68751 153.637 +94.3035 -1.72377 156.938 +94.3006 -1.7583 160.081 +94.3 -1.7939 163.322 +94.2499 -1.82964 166.576 +94.1985 -1.86646 169.929 +94.048 -1.90244 173.205 +93.8474 -1.93853 176.49 +94.012 -1.9835 180.584 +94.1576 -2.02963 184.784 +93.6123 -2.06216 187.746 +116.738 -2.6288 239.335 +116.97 -2.69342 245.217 +116.6 -2.74633 250.035 +116.819 -2.81537 256.321 +117.14 -2.88967 263.085 +115.398 -2.91489 265.381 +112.687 -2.91574 265.458 +109.983 -2.91628 265.507 +107.362 -2.91856 265.715 +104.709 -2.91954 265.804 +102.063 -2.92024 265.868 +99.1087 -2.91139 265.062 +96.4839 -2.91149 265.071 +94.1335 -2.91959 265.809 +93.2102 -2.97316 270.686 +92.7482 -3.04447 277.178 +92.5197 -3.1274 284.729 +92.4971 -3.22205 293.345 +92.3895 -3.31902 302.174 +91.9642 -3.40989 310.447 +92.0904 -3.52732 321.139 +91.8231 -3.63655 331.083 +91.7514 -3.76086 342.4 +91.614 -3.89072 354.224 +91.3739 -4.02511 366.459 +91.1371 -4.16934 379.59 +90.9477 -4.32667 393.914 +90.9696 -4.50679 410.312 +90.5871 -4.68078 426.153 +90.3535 -4.87763 444.075 +90.2145 -5.09742 464.085 +89.9515 -5.3305 485.306 +89.6893 -5.58661 508.622 +89.6539 -5.88422 535.718 +89.6682 -6.21803 566.109 +98.3819 -7.23008 658.249 +93.3016 -7.29144 663.836 +88.5229 -7.38504 672.357 +88.0993 -7.88053 717.469 +87.8457 -8.46813 770.965 +89.6854 -9.37191 853.249 +86.5295 -9.86993 898.59 +86.3975 -10.8462 987.468 +84.9006 -11.8482 1078.69 +83.4287 -13.1039 1193.02 +82.7879 -14.8664 1353.49 +80.5189 -16.8744 1536.3 +71.2086 -17.9129 1630.85 +60.5122 -19.032 1732.74 +85.7635 -35.9717 3274.98 +54.3241 -34.182 3112.04 +27.1552 -34.176 3111.49 +1.47438e-13 -34.1279 3107.11 +-27.109 -34.1178 3106.19 +-54.2351 -34.126 3106.94 +-81.3422 -34.1174 3106.15 +-108.593 -34.1543 3109.51 +-135.722 -34.1415 3108.35 +-133.446 -27.9665 2546.16 +-135.07 -24.2548 2208.24 +-130.779 -20.541 1870.12 +-120.858 -16.8663 1535.56 +-134.263 -16.8552 1534.55 +-115.561 -13.1814 1200.08 +-125.424 -13.1065 1193.26 +-139.364 -13.4345 1223.12 +-157.894 -14.1237 1285.86 +-113.545 -9.47249 862.406 +-120.357 -9.40578 856.332 +-127.87 -9.39715 855.546 +-149.833 -10.3901 945.951 +-379.411 -24.9017 2267.13 +-399.269 -24.8699 2264.23 +-144.476 -8.56162 779.477 +-152.647 -8.62508 785.255 +-173.689 -9.37641 853.659 +-111.441 -5.75832 524.255 +-114.886 -5.69166 518.187 +-119.179 -5.66973 516.19 +-123.913 -5.66877 516.103 +-129.936 -5.72382 521.115 +-820.42 -34.8421 3172.14 +-392.007 -16.0682 1462.9 +-875.553 -34.6753 3156.95 +-903.071 -34.5901 3149.19 +-930.519 -34.5022 3141.19 +-957.897 -34.4117 3132.95 +-163.494 -5.69515 518.505 +-142.982 -4.83317 440.027 +-144.976 -4.75887 433.263 +-146.896 -4.6856 426.592 +-151.715 -4.70552 428.405 +-1120.56 -33.8139 3078.52 +-398.886 -11.7176 1066.81 +-1174.26 -33.5981 3058.88 +-144.475 -4.0283 366.749 +-143.774 -3.90838 355.832 +-144.042 -3.81936 347.727 +-145.977 -3.77711 343.88 +-150.767 -3.80829 346.719 +-1332.75 -32.877 2993.23 +-1358.83 -32.7481 2981.49 +-491.632 -11.5796 1054.25 +-1410.48 -32.4787 2956.96 +-508.817 -11.4579 1043.17 +-142.516 -3.13944 285.825 +-144.006 -3.10413 282.61 +-142.08 -2.99766 272.917 +-142.813 -2.94999 268.577 +-145.199 -2.93715 267.408 +-149.467 -2.96155 269.629 +-408.515 -7.93034 722.003 +-109.8 -2.08876 190.168 +-109.324 -2.03842 185.584 +-110.167 -2.01374 183.337 +-111.292 -1.99467 181.601 +-112.661 -1.9802 180.284 +-114.66 -1.97674 179.969 +-116.172 -1.96475 178.877 +-117.121 -1.94348 176.94 +-119.052 -1.93855 176.491 +-121.211 -1.93702 176.352 +-125.613 -1.97031 179.383 +-414.215 -6.37801 580.674 +-415.212 -6.27675 571.456 +-416.852 -6.18727 563.309 +-417.961 -6.09182 554.619 +-419.315 -6.00187 546.429 +-420.989 -5.91818 538.809 +-420.82 -5.81055 529.011 +-422.148 -5.72562 521.279 +-423.819 -5.64679 514.102 +-431.632 -5.64971 514.368 +-427.077 -5.49204 500.013 +-430.834 -5.44344 495.588 +-432.426 -5.36822 488.74 +-161.595 -1.97113 179.458 +-164.439 -1.97096 179.442 +-438.32 -5.16252 470.013 +-440.203 -5.09482 463.849 +-441.664 -5.0232 457.328 +-441.993 -4.93995 449.749 +-442.437 -4.85935 442.41 +-424.027 -4.57657 416.666 +-424.482 -4.50219 409.893 +-381.474 -3.97596 361.984 +-2396.28 -24.5426 2234.44 +-420.69 -4.23391 385.469 +-420.248 -4.15594 378.37 +-421.437 -4.09513 372.834 +-382.411 -3.65107 332.405 +-419.364 -3.93384 358.149 +-381.414 -3.51509 320.025 +-383.034 -3.46791 315.73 +-381.346 -3.39168 308.789 +-382.069 -3.33791 303.894 +-382.343 -3.28087 298.701 +-381.365 -3.21402 292.614 +-140.4 -1.162 105.793 +-142.845 -1.16092 105.694 +-143.358 -1.14396 104.15 +-142.877 -1.11932 101.907 +-142.205 -1.09362 99.5669 +-143.151 -1.08057 98.3789 +-144.17 -1.06804 97.2377 +-146.931 -1.06812 97.2454 +-492.635 -3.51374 319.902 +-2763.37 -19.3354 1760.35 +-496.532 -3.40772 310.249 +-498.027 -3.35195 305.173 +-2808.51 -18.5343 1687.42 +-2823.13 -18.2644 1662.85 +-2837.53 -17.9931 1638.15 +-2851.72 -17.7205 1613.33 +-2865.69 -17.4465 1588.38 +-407.068 -2.42749 221.007 +-405.273 -2.36672 215.474 +-406.783 -2.32577 211.745 +-405.497 -2.26924 206.599 +-404.421 -2.21461 201.625 +-385.223 -2.06358 187.875 +-378.003 -1.98024 180.287 +-380.196 -1.94718 177.277 +-378.635 -1.89518 172.544 +-379.852 -1.85748 169.111 +-379.021 -1.81005 164.793 +-379.064 -1.76722 160.893 +-380.084 -1.72914 157.427 +-379.404 -1.68359 153.28 +-381.006 -1.64837 150.073 +-381.741 -1.60944 146.528 +-380.757 -1.56355 142.35 +-379.636 -1.51761 138.168 +-380.827 -1.48116 134.85 +-380.855 -1.44032 131.131 +-380.467 -1.39819 127.295 +-380.423 -1.35759 123.6 +-381.487 -1.32107 120.275 +-380.705 -1.27836 116.386 +-379.788 -1.23558 112.491 +-380.179 -1.19733 109.008 +-379.767 -1.15673 105.313 +-378.933 -1.11517 101.529 +-380.288 -1.08018 98.3434 +-380.647 -1.04237 94.9003 +-380.197 -1.00251 91.2716 +-379.615 -0.962572 87.6356 +-379.096 -0.923061 84.0384 +-380.402 -0.888062 80.852 +-379.917 -0.84894 77.2902 +-379.104 -0.809352 73.686 +-380.913 -0.775387 70.5937 +-380.037 -0.735989 67.0068 +-380.114 -0.69863 63.6055 +-380.655 -0.662171 60.2862 +-380.277 -0.624201 56.8293 +-379.471 -0.585743 53.3279 +-381.31 -0.551358 50.1974 +-380.244 -0.512782 46.6853 +-380.24 -0.475821 43.3203 +-380.206 -0.438899 39.9588 +-379.545 -0.40139 36.5438 +-379.949 -0.365093 33.2392 +-379.726 -0.328232 29.8833 +-380.072 -0.291901 26.5756 +-378.892 -0.254523 23.1726 +-378.98 -0.218142 19.8603 +-379.139 -0.18181 16.5526 +-3274.5 -1.2559 114.341 +-144.251 -0.0414869 3.7771 +-145.778 -0.0279472 2.54441 +-145.994 -0.0139933 1.27399 +96.1 1.77636e-15 1.13687e-13 +95.9963 -0.00164345 0.837745 +95.9854 -0.00328677 1.67543 +95.9671 -0.00492986 2.51299 +95.9415 -0.00657255 3.35034 +95.9086 -0.00821474 4.18745 +95.9683 -0.0098666 5.02948 +95.8209 -0.0114971 5.86065 +96.7637 -0.0132739 6.76637 +96.8007 -0.0149453 7.61837 +96.7305 -0.0166019 8.4628 +96.653 -0.0182573 9.3066 +96.4686 -0.0198908 10.1393 +96.4758 -0.0215635 10.992 +96.3762 -0.0232144 11.8335 +96.2693 -0.0248634 12.6741 +96.155 -0.0265105 13.5137 +95.9345 -0.0281266 14.3375 +95.8058 -0.0297678 15.1741 +95.5711 -0.0313744 15.9931 +95.4279 -0.0330094 16.8265 +95.9657 -0.0348921 17.7862 +95.8068 -0.0365336 18.623 +95.6407 -0.0381723 19.4583 +95.4672 -0.0398082 20.2922 +95.2865 -0.041441 21.1245 +95.9755 -0.0434678 22.1577 +95.9729 -0.0452009 23.0411 +95.5741 -0.0467471 23.8293 +95.3625 -0.0483814 24.6624 +96.013 -0.0504691 25.7266 +95.7849 -0.0521109 26.5634 +95.5494 -0.0537488 27.3983 +96.2655 -0.0559395 28.515 +96.013 -0.0575854 29.354 +96.6115 -0.0597578 30.4614 +96.342 -0.0614094 31.3033 +96.8238 -0.0635544 32.3967 +96.632 -0.0652735 33.273 +96.1494 -0.0667942 34.0482 +95.9426 -0.0685049 34.9202 +96.3836 -0.0706942 36.0362 +96.0654 -0.0723416 36.876 +96.7634 -0.0747742 38.116 +96.4271 -0.076428 38.959 +96.915 -0.0787515 40.1434 +96.561 -0.0804076 40.9876 +96.2913 -0.0821359 41.8686 +95.9223 -0.083781 42.7072 +96.4559 -0.0862336 43.9574 +96.0686 -0.0878814 44.7974 +96.4864 -0.0902828 46.0215 +95.9912 -0.0918452 46.8179 +96.4739 -0.0943603 48.1 +96.8524 -0.09681 49.3487 +96.4181 -0.0984643 50.192 +96.6828 -0.100848 51.407 +96.9335 -0.103248 52.6305 +96.4706 -0.104904 53.4744 +96.0002 -0.106551 54.3142 +96.302 -0.109073 55.5999 +96.5025 -0.111514 56.8442 +96.7742 -0.114071 58.1477 +96.9452 -0.116544 59.408 +96.4231 -0.118199 60.2517 +96.484 -0.120583 61.467 +95.9439 -0.12223 62.3066 +96.2304 -0.124951 63.6934 +96.2513 -0.127361 64.9222 +96.4228 -0.130004 66.2694 +95.8408 -0.13165 67.1083 +95.9842 -0.134311 68.4648 +96.0303 -0.136871 69.77 +95.4178 -0.13851 70.6054 +95.5168 -0.141201 71.977 +96.1544 -0.144742 73.7818 +96.2161 -0.147469 75.1722 +96.2608 -0.15021 76.5692 +96.2884 -0.152963 77.9726 +96.2216 -0.155604 79.3188 +95.6023 -0.157371 80.2197 +96.1153 -0.16104 82.09 +96.15 -0.163967 83.5817 +96.091 -0.166777 85.014 +95.94 -0.169465 86.3846 +95.8461 -0.172294 87.8265 +96.3193 -0.176203 89.819 +96.1121 -0.178925 91.2068 +96.0319 -0.181927 92.7367 +95.8609 -0.184801 94.202 +95.6715 -0.187683 95.6713 +95.3237 -0.190294 97.0019 +95.8629 -0.194741 99.2687 +95.6125 -0.197656 100.755 +95.9572 -0.201866 102.901 +95.7311 -0.204948 104.472 +95.8864 -0.208913 106.493 +95.5498 -0.211867 107.999 +95.1942 -0.214827 109.508 +95.4689 -0.219284 111.78 +95.5825 -0.223465 113.911 +95.5389 -0.227363 115.898 +95.0903 -0.230362 117.427 +95.1825 -0.234745 119.661 +95.1813 -0.238992 121.826 +95.2103 -0.243414 124.08 +95.147 -0.247698 126.264 +95.0527 -0.251998 128.456 +94.9273 -0.256314 130.656 +94.8288 -0.260805 132.945 +95.3858 -0.267239 136.225 +94.6465 -0.270154 137.711 +94.895 -0.275995 140.688 +94.7124 -0.280716 143.095 +94.4404 -0.285287 145.425 +94.7797 -0.291857 148.774 +94.4316 -0.296463 151.122 +94.6245 -0.30292 154.413 +94.252 -0.307724 156.862 +94.3006 -0.314058 160.091 +94.3 -0.320416 163.332 +94.2499 -0.3268 166.586 +94.247 -0.333548 170.026 +94.048 -0.339804 173.215 +94.2699 -0.34781 177.296 +94.0582 -0.354457 180.684 +94.1576 -0.362521 184.795 +93.6123 -0.368332 187.757 +116.782 -0.469719 239.439 +116.884 -0.48073 245.052 +116.6 -0.490535 250.05 +116.861 -0.503045 256.427 +117.099 -0.51596 263.009 +115.398 -0.520642 265.396 +112.687 -0.520793 265.473 +110.021 -0.52107 265.614 +107.362 -0.521297 265.73 +104.416 -0.520013 265.075 +102.063 -0.521598 265.883 +99.4239 -0.52167 265.92 +96.4839 -0.520034 265.086 +93.8331 -0.519818 264.976 +93.1776 -0.530863 270.606 +93.0655 -0.545647 278.142 +92.5197 -0.5586 284.745 +92.5272 -0.575693 293.458 +92.3017 -0.592262 301.904 +92.2482 -0.610938 311.424 +92.0077 -0.629464 320.868 +92.0903 -0.651432 332.066 +91.7255 -0.671554 342.323 +91.4137 -0.693421 353.47 +91.3497 -0.718753 366.383 +91.1371 -0.744705 379.612 +90.9027 -0.772425 393.742 +90.7531 -0.803063 409.36 +90.6287 -0.836441 426.374 +90.3735 -0.871409 444.199 +90.2336 -0.910665 464.21 +89.9332 -0.951911 485.235 +89.6719 -0.997657 508.554 +89.6374 -1.05081 535.651 +89.6526 -1.11044 566.043 +98.5002 -1.29295 659.079 +93.3016 -1.30236 663.875 +88.5229 -1.31908 672.397 +88.209 -1.40933 718.404 +87.8457 -1.51253 771.011 +89.7586 -1.67533 853.994 +86.4337 -1.76096 897.646 +86.3888 -1.93709 987.426 +84.9712 -2.11802 1079.66 +83.3729 -2.33897 1192.29 +82.7452 -2.65399 1352.87 +80.1473 -3.0001 1529.3 +71.1912 -3.19873 1630.55 +60.5367 -3.40077 1733.54 +85.7635 -6.42508 3275.17 +54.3328 -6.10639 3112.72 +27.1526 -6.10375 3111.37 +1.55431e-13 -6.09515 3106.99 +-27.1099 -6.09413 3106.47 +-54.2456 -6.09659 3107.72 +-81.3292 -6.09288 3105.83 +-108.59 -6.10025 3109.59 +-135.787 -6.10112 3110.03 +-133.404 -4.99365 2545.51 +-135.1 -4.33325 2208.87 +-130.8 -3.66951 1870.53 +-120.811 -3.01138 1535.05 +-134.229 -3.00979 1534.24 +-115.437 -2.35186 1198.86 +-125.518 -2.34276 1194.22 +-139.478 -2.40153 1224.18 +-158.101 -2.52601 1287.63 +-113.701 -1.69426 863.646 +-120.44 -1.68118 856.976 +-127.914 -1.67905 855.892 +-149.833 -1.85583 946.006 +-379.461 -4.4484 2267.57 +-399.373 -4.44328 2264.96 +-144.531 -1.52981 779.817 +-152.666 -1.54076 785.398 +-173.929 -1.67707 854.884 +-111.358 -1.02775 523.895 +-114.929 -1.017 518.412 +-119.157 -1.01251 516.123 +-123.913 -1.01253 516.133 +-129.815 -1.02141 520.66 +-820.42 -6.22331 3172.32 +-392.188 -2.87135 1463.67 +-405.374 -2.86755 1461.73 +-903.071 -6.17829 3149.37 +-930.519 -6.1626 3141.37 +-957.897 -6.14643 3133.13 +-163.404 -1.01668 518.249 +-142.982 -0.863275 440.053 +-144.976 -0.850004 433.288 +-146.766 -0.836176 426.239 +-152.016 -0.842138 429.278 +-1120.56 -6.03966 3078.7 +-398.886 -2.09293 1066.87 +-1174.26 -6.00111 3059.05 +-144.438 -0.71933 366.677 +-143.774 -0.698094 355.852 +-143.659 -0.680382 346.823 +-146.251 -0.675911 344.544 +-150.647 -0.679677 346.464 +-1332.75 -5.87232 2993.4 +-1358.83 -5.84929 2981.66 +-491.209 -2.06651 1053.4 +-1410.48 -5.80117 2957.13 +-508.817 -2.04656 1043.23 +-141.132 -0.555308 283.067 +-144.097 -0.554792 282.804 +-142.034 -0.535253 272.844 +-142.813 -0.526912 268.592 +-145.343 -0.525137 267.687 +-148.982 -0.527261 268.77 +-408.662 -1.41699 722.307 +-109.8 -0.373083 190.179 +-109.324 -0.364091 185.595 +-110.218 -0.359851 183.434 +-111.292 -0.356277 181.612 +-112.661 -0.353694 180.295 +-114.499 -0.352579 179.727 +-115.518 -0.34896 177.882 +-117.176 -0.347296 177.034 +-119.555 -0.347716 177.248 +-121.551 -0.346949 176.857 +-125.613 -0.351926 179.394 +-414.448 -1.13984 581.033 +-415.153 -1.12096 571.408 +-415.96 -1.10277 562.136 +-417.599 -1.08715 554.172 +-419.315 -1.07202 546.461 +-419.696 -1.05383 537.186 +-421.567 -1.03969 529.981 +-422.777 -1.0242 522.086 +-423.564 -1.008 513.824 +-430.925 -1.00747 513.555 +-427.337 -0.981555 500.346 +-430.244 -0.970946 494.938 +-432.823 -0.959723 489.217 +-162.197 -0.353386 180.138 +-2213.57 -4.73898 2415.69 +-438.593 -0.922677 470.333 +-439.721 -0.909014 463.368 +-442.289 -0.898489 458.003 +-442.624 -0.883607 450.417 +-441.588 -0.866285 441.587 +-442.572 -0.853192 434.913 +-423.331 -0.801975 408.805 +-427.391 -0.795644 405.578 +-386.374 -0.706818 360.299 +-2415.69 -4.34247 2213.57 +-421.512 -0.744545 379.53 +-422.186 -0.73275 373.518 +-382.638 -0.652521 332.621 +-419.288 -0.702514 358.105 +-381.643 -0.628225 320.236 +-419.378 -0.678194 345.708 +-381.89 -0.606667 309.247 +-381.913 -0.595954 303.786 +-381.87 -0.585288 298.349 +-381.365 -0.57407 292.631 +-140.48 -0.207669 105.859 +-142.845 -0.207357 105.7 +-143.196 -0.204096 104.038 +-142.226 -0.199017 101.449 +-142.287 -0.195449 99.63 +-143.398 -0.19334 98.5545 +-144.087 -0.190658 97.1875 +-147.431 -0.191432 97.5823 +-491.88 -0.626643 319.43 +-2763.37 -3.45358 1760.46 +-496.023 -0.608044 309.949 +-498.453 -0.599222 305.452 +-2808.51 -3.31049 1687.52 +-2823.13 -3.26229 1662.95 +-2837.53 -3.21384 1638.25 +-2851.72 -3.16514 1613.43 +-403.812 -0.439112 223.837 +-405.047 -0.431432 219.922 +-406.244 -0.423746 216.004 +-405.719 -0.414329 211.204 +-406.21 -0.406031 206.974 +-407.285 -0.398363 203.065 +-386.751 -0.370047 188.631 +-380.259 -0.35581 181.374 +-379.652 -0.347298 177.035 +-379.181 -0.338996 172.803 +-379.852 -0.331773 169.121 +-378.746 -0.323067 164.683 +-379.524 -0.316034 161.098 +-379.899 -0.308699 157.359 +-380.331 -0.30145 153.664 +-379.61 -0.293346 149.533 +-380.621 -0.286625 146.107 +-378.978 -0.277968 141.694 +-379.354 -0.270867 138.074 +-380.167 -0.264098 134.624 +-381.044 -0.257389 131.204 +-380.752 -0.249923 127.398 +-380.708 -0.242668 123.7 +-380.247 -0.235196 119.891 +-380.705 -0.228334 116.393 +-380.076 -0.220862 112.584 +-380.179 -0.21386 109.015 +-379.67 -0.206556 105.292 +-379.802 -0.199643 101.768 +-380.288 -0.192937 98.3491 +-379.968 -0.185849 94.7364 +-380.197 -0.179063 91.2769 +-379.615 -0.171929 87.6407 +-379.096 -0.164872 84.0433 +-380.108 -0.158499 80.7943 +-379.329 -0.151399 77.1752 +-379.988 -0.144899 73.8621 +-380.225 -0.138245 70.4704 +-379.643 -0.131322 66.9413 +-380.608 -0.124948 63.6918 +-380.161 -0.11812 60.2115 +-379.98 -0.111405 56.7883 +-380.263 -0.104841 53.4424 +-381.211 -0.0984549 50.1872 +-379.351 -0.0913753 46.5784 +-380.24 -0.0849887 43.3228 +-379.311 -0.0782094 39.8671 +-380.938 -0.0719573 36.6801 +-380.447 -0.0652964 33.2847 +-380.224 -0.058704 29.9242 +-380.471 -0.0521925 26.605 +-379.79 -0.0455695 23.229 +-379.579 -0.0390249 19.8929 +-379.139 -0.032474 16.5536 +-3274.5 -0.224322 114.348 +-145.15 -0.00745639 3.80088 +-146.178 -0.00500548 2.55154 +-145.494 -0.00249085 1.26971 +95.9 3.55271e-15 -1.7053e-13 +95.9963 0.00591345 0.837726 +95.9854 0.0118264 1.67539 +95.9671 0.0177386 2.51293 +95.9415 0.0236493 3.35027 +95.9086 0.0295582 4.18736 +95.8684 0.0354649 5.02412 +95.8209 0.0413689 5.86051 +95.7661 0.0472698 6.69645 +96.701 0.0537208 7.61034 +96.7305 0.0597369 8.46261 +96.653 0.0656931 9.30639 +96.5681 0.0716442 10.1494 +96.4758 0.0775898 10.9917 +96.3762 0.0835297 11.8332 +96.4676 0.0896475 12.6999 +96.155 0.0953898 13.5134 +95.9345 0.101205 14.3371 +95.8058 0.10711 15.1737 +95.5711 0.112891 15.9927 +96.1172 0.119632 16.9477 +95.9657 0.125548 17.7858 +95.8068 0.131455 18.6225 +95.6407 0.137351 19.4578 +95.4672 0.143238 20.2917 +95.2865 0.149113 21.124 +95.9755 0.156406 22.1571 +95.7784 0.162312 22.9938 +96.4474 0.169742 24.0464 +95.5562 0.174439 24.7119 +96.013 0.181598 25.726 +95.1103 0.186184 26.3757 +95.7417 0.193787 27.4528 +96.2655 0.201281 28.5144 +96.013 0.207203 29.3534 +96.6115 0.21502 30.4607 +96.342 0.220963 31.3026 +96.0652 0.226889 32.1422 +96.5374 0.234636 33.2397 +96.2437 0.240574 34.0809 +95.9426 0.246494 34.9194 +96.3836 0.254371 36.0354 +96.999 0.262828 37.2335 +96.7634 0.269052 38.1152 +96.4271 0.275003 38.9581 +96.915 0.283363 40.1425 +96.653 0.289598 41.0258 +96.2913 0.295541 41.8677 +96.8358 0.304332 43.113 +96.4559 0.310285 43.9564 +96.0686 0.316214 44.7964 +96.4864 0.324855 46.0205 +96.0811 0.330786 46.8607 +96.4739 0.339527 48.0989 +96.6742 0.3477 49.2568 +96.3294 0.353967 50.1447 +96.6828 0.36287 51.4058 +96.9335 0.371506 52.6293 +96.558 0.377806 53.5217 +96.6965 0.386172 54.7069 +96.302 0.392467 55.5986 +96.5025 0.40125 56.8429 +96.6885 0.410087 58.0949 +96.1778 0.416027 58.9363 +96.4231 0.425302 60.2503 +95.8093 0.430846 61.0357 +96.7826 0.443652 62.8497 +96.2304 0.449597 63.6919 +96.2513 0.45827 64.9207 +96.5052 0.46818 66.3245 +96.578 0.477346 67.623 +95.9842 0.483277 68.4632 +96.0303 0.49249 69.7684 +96.1413 0.502165 71.139 +95.5168 0.508068 71.9753 +96.1544 0.520808 73.7801 +96.2161 0.530623 75.1704 +95.6347 0.536968 76.0694 +95.589 0.546392 77.4045 +96.2987 0.560342 79.3806 +96.1386 0.569428 80.6678 +96.1914 0.579913 82.1532 +95.4708 0.585816 82.9894 +96.0161 0.599626 84.9458 +95.94 0.609769 86.3826 +95.8461 0.619947 87.8245 +95.6611 0.629679 89.2032 +96.1121 0.643807 91.2047 +96.1038 0.655097 92.8041 +95.8609 0.66495 94.1999 +96.2372 0.679314 96.2348 +95.3938 0.685217 97.071 +95.2377 0.696145 98.619 +95.6125 0.711204 100.752 +96.0254 0.726875 102.972 +95.6636 0.736919 104.395 +95.3511 0.747508 105.895 +95.5498 0.762338 107.996 +95.1942 0.77299 109.505 +95.339 0.787954 111.625 +95.5825 0.804069 113.908 +95.2845 0.815914 115.586 +95.0903 0.828888 117.424 +95.1825 0.844657 119.658 +95.1813 0.859939 121.823 +95.2103 0.87585 124.077 +95.147 0.891266 126.261 +95.0527 0.906739 128.453 +94.8685 0.921696 130.572 +94.8869 0.938997 133.023 +94.8695 0.956376 135.485 +95.1562 0.977305 138.45 +94.895 0.993082 140.684 +94.6572 1.00948 143.007 +94.5493 1.0277 145.589 +94.7797 1.05016 148.77 +94.4846 1.06733 151.203 +94.1542 1.08455 153.642 +94.252 1.10725 156.858 +94.3006 1.13004 160.087 +94.3 1.15292 163.328 +94.2499 1.17589 166.582 +94.1985 1.19956 169.935 +94.0957 1.2233 173.299 +93.8943 1.2465 176.586 +94.0582 1.2754 180.679 +94.1576 1.30442 184.79 +93.6569 1.32597 187.842 +116.431 1.68506 238.714 +116.841 1.72913 244.956 +116.6 1.76504 250.044 +116.861 1.81005 256.421 +116.733 1.85072 262.181 +115.398 1.87337 265.39 +112.687 1.87391 265.467 +110.021 1.87491 265.608 +107.4 1.87639 265.817 +104.709 1.87636 265.813 +101.705 1.87022 264.943 +99.1087 1.87112 265.071 +96.4839 1.87118 265.08 +94.1002 1.87573 265.724 +93.1125 1.90881 270.411 +92.6847 1.95531 276.998 +92.427 2.00794 284.454 +92.4069 2.06876 293.07 +92.331 2.13175 301.993 +92.2482 2.19827 311.417 +91.8148 2.26018 320.188 +91.93 2.3399 331.481 +91.7772 2.41774 342.508 +91.4137 2.49506 353.462 +91.1804 2.58141 365.695 +91.067 2.67754 379.313 +90.6553 2.77177 392.661 +90.7748 2.89027 409.449 +90.4416 3.00346 425.483 +90.3934 3.13619 444.287 +90.1954 3.27537 464.003 +89.9515 3.42586 485.323 +89.724 3.59185 508.837 +89.5383 3.77686 535.047 +89.5431 3.99069 565.339 +95.204 4.4966 637.009 +93.3016 4.68614 663.859 +88.3923 4.73929 671.389 +87.9775 5.05773 716.501 +87.7438 5.43607 770.099 +89.7272 6.02604 853.677 +86.357 6.33065 896.83 +86.2232 6.95665 985.51 +84.8221 7.60771 1077.74 +82.9614 8.3745 1186.37 +82.7147 9.54604 1352.34 +80.7544 10.8768 1540.85 +71.1738 11.5068 1630.11 +60.589 12.2472 1735 +85.7635 23.1187 3275.1 +54.3485 21.9783 3113.55 +27.1605 21.9688 3112.2 +1.64313e-13 21.9718 3112.62 +-27.1526 21.9625 3111.3 +-54.3224 21.9678 3112.05 +-81.4574 21.9579 3110.65 +-108.649 21.9619 3111.22 +-135.822 21.9586 3110.76 +-133.546 17.9871 2548.14 +-135.1 15.5919 2208.81 +-130.842 13.2078 1871.08 +-120.905 10.844 1536.21 +-134.229 10.8298 1534.2 +-115.475 8.46521 1199.22 +-125.622 8.43676 1195.19 +-139.285 8.62925 1222.46 +-157.906 9.07784 1286.01 +-113.584 6.08997 862.734 +-120.44 6.04919 856.957 +-128.003 6.04574 856.467 +-149.88 6.67972 946.28 +-379.692 16.016 2268.89 +-399.564 15.9954 2265.98 +-144.586 5.50663 780.095 +-152.666 5.54394 785.38 +-173.809 6.03028 854.277 +-111.358 3.69805 523.883 +-114.951 3.66004 518.498 +-119.112 3.64181 515.916 +-123.936 3.64395 516.218 +-129.815 3.67522 520.648 +-820.42 22.3927 3172.25 +-392.24 10.333 1463.82 +-875.553 22.2855 3157.06 +-903.071 22.2307 3149.3 +-930.633 22.1769 3141.68 +-957.897 22.1161 3133.06 +-163.133 3.65213 517.378 +-142.982 3.10623 440.043 +-144.976 3.05848 433.278 +-146.668 3.00672 425.945 +-151.515 3.02019 427.854 +-1120.56 21.7318 3078.63 +-399.201 7.5367 1067.68 +-1174.26 21.5931 3058.98 +-144.365 2.58697 366.482 +-144.074 2.51712 356.586 +-143.851 2.45141 347.277 +-146.133 2.43011 344.26 +-150.448 2.44238 345.998 +-1332.75 21.1297 2993.34 +-1358.83 21.0469 2981.6 +-491.251 7.43632 1053.46 +-1410.48 20.8737 2957.07 +-509.08 7.36771 1043.74 +-143.542 2.03221 287.893 +-144.006 1.99499 282.62 +-142.034 1.92594 272.838 +-142.813 1.89593 268.586 +-145.486 1.8914 267.944 +-149.127 1.89904 269.026 +-408.367 5.09491 721.768 +-109.8 1.34243 190.174 +-109.324 1.31007 185.59 +-110.167 1.29421 183.343 +-111.292 1.28195 181.607 +-112.661 1.27266 180.291 +-114.337 1.26686 179.47 +-116.008 1.26095 178.633 +-117.618 1.25435 177.697 +-119.164 1.24706 176.664 +-121.664 1.24955 177.018 +-125.957 1.26977 179.882 +-414.622 4.1031 581.264 +-416.034 4.042 572.608 +-416.852 3.9765 563.329 +-417.961 3.91515 554.638 +-419.315 3.85734 546.448 +-419.881 3.79354 537.41 +-421.567 3.74101 529.969 +-422.463 3.68254 521.685 +-423.819 3.62914 514.12 +-431.31 3.62831 514.003 +-426.752 3.527 499.651 +-430.834 3.49844 495.606 +-432.426 3.4501 488.757 +-162.733 1.27575 180.728 +-2213.57 17.0518 2415.63 +-438.32 3.3179 470.029 +-440.203 3.27439 463.865 +-441.803 3.22938 457.489 +-442.414 3.17788 450.193 +-443.002 3.12704 442.991 +-424.099 2.94181 416.751 +-425.777 2.90233 411.158 +-2376.69 15.9202 2255.33 +-422.942 2.78397 394.39 +-2415.69 15.625 2213.51 +-420.843 2.67477 378.92 +-421.512 2.63237 372.914 +-382.864 2.34929 332.811 +-420.048 2.53236 358.746 +-380.954 2.25639 319.65 +-418.761 2.43668 345.191 +-418.26 2.3908 338.692 +-382.148 2.14568 303.966 +-382.343 2.10858 298.712 +-381.127 2.06432 292.442 +-140.48 0.747232 105.856 +-142.202 0.74275 105.221 +-143.196 0.734378 104.035 +-142.959 0.719788 101.968 +-142.123 0.702455 99.513 +-143.151 0.694474 98.3823 +-144.087 0.686024 97.1853 +-147.681 0.689979 97.7456 +-491.88 2.25478 319.423 +-2763.37 12.4266 1760.42 +-496.108 2.18823 309.995 +-2793.68 12.0844 1711.93 +-500.329 2.12206 300.621 +-503.536 2.09366 296.598 +-2837.53 11.564 1638.21 +-406.021 1.62151 229.71 +-2865.69 11.2127 1588.44 +-406.277 1.55709 220.585 +-2892.98 10.8579 1538.18 +-404.92 1.4879 210.783 +-405.675 1.45906 206.697 +-406.927 1.43212 202.881 +-385.852 1.32841 188.188 +-378.273 1.27359 180.423 +-379.562 1.24935 176.989 +-379.181 1.21977 172.799 +-378.391 1.18919 168.466 +-379.388 1.16443 164.958 +-379.34 1.1366 161.016 +-380.731 1.11319 157.7 +-380.609 1.08547 153.772 +-380.262 1.05732 149.785 +-380.901 1.03209 146.21 +-380.102 1.00315 142.11 +-380.106 0.976557 138.344 +-380.827 0.951929 134.855 +-380.004 0.923609 130.843 +-380.752 0.899271 127.395 +-380.423 0.872511 123.604 +-380.056 0.845857 119.828 +-379.844 0.819733 116.127 +-380.076 0.794702 112.581 +-380.179 0.76951 109.012 +-380.249 0.744359 105.449 +-379.995 0.718715 101.816 +-379.417 0.692632 98.1215 +-380.356 0.669405 94.831 +-380.197 0.644302 91.2748 +-378.933 0.617524 87.4813 +-379.974 0.594617 84.2362 +-380.108 0.570308 80.7925 +-379.623 0.545183 77.2332 +-380.184 0.521644 73.8985 +-380.421 0.497691 70.5051 +-381.121 0.474361 67.2001 +-379.917 0.448769 63.5747 +-380.26 0.425129 60.2258 +-380.277 0.401168 56.8313 +-380.758 0.377729 53.5108 +-380.318 0.35343 50.0686 +-380.344 0.329646 46.6991 +-379.843 0.305486 43.2765 +-379.51 0.28156 39.8871 +-379.644 0.258037 36.5547 +-380.347 0.234888 33.2753 +-379.726 0.210951 29.8844 +-381.269 0.188193 26.6602 +-380.289 0.164183 23.2589 +-379.879 0.14053 19.9081 +-380.038 0.117124 16.5924 +-3274.5 0.807154 114.345 +-145.85 0.0269589 3.81912 +-144.778 0.0178382 2.52705 +-145.194 0.00894407 1.26706 +95.9 3.55271e-15 -1.7053e-13 +96.0963 0.0134846 0.838512 +95.9854 0.0269402 1.67521 +95.9671 0.0404077 2.51267 +95.9415 0.0538721 3.34992 +96.8078 0.0679637 4.22617 +95.8684 0.0807877 5.0236 +95.8209 0.0942368 5.8599 +95.7661 0.107679 6.69575 +95.8038 0.121239 7.53895 +96.7305 0.136078 8.46173 +96.653 0.149646 9.30542 +96.5681 0.163203 10.1484 +96.6745 0.177111 11.0133 +96.3762 0.190277 11.832 +96.2693 0.203794 12.6725 +96.155 0.217294 13.512 +95.9345 0.230541 14.3356 +95.8058 0.243993 15.1721 +96.4587 0.259551 16.1396 +96.1172 0.272518 16.9459 +95.9657 0.285994 17.7839 +95.8068 0.299449 18.6206 +95.6407 0.312881 19.4558 +95.4672 0.326289 20.2896 +96.1652 0.342805 21.3165 +95.9755 0.356286 22.1548 +95.7784 0.36974 22.9914 +96.4474 0.386665 24.0439 +95.3625 0.39656 24.6592 +96.013 0.413672 25.7233 +95.7849 0.427129 26.5601 +95.7417 0.44144 27.45 +96.2655 0.45851 28.5114 +96.013 0.472001 29.3503 +96.6115 0.489807 30.4576 +96.342 0.503345 31.2994 +96.0652 0.516845 32.1388 +96.5374 0.534492 33.2362 +96.2437 0.548018 34.0773 +95.9426 0.561503 34.9158 +96.3836 0.579447 36.0316 +96.999 0.598712 37.2296 +96.6704 0.612301 38.0746 +96.4271 0.626445 38.9541 +96.915 0.645489 40.1383 +96.653 0.659692 41.0215 +96.2913 0.67323 41.8633 +96.8358 0.693255 43.1085 +96.4559 0.706817 43.9518 +96.0686 0.720324 44.7917 +96.4864 0.740007 46.0157 +96.0811 0.753518 46.8558 +96.4739 0.773428 48.0939 +96.6742 0.792046 49.2516 +96.2407 0.805581 50.0932 +96.6828 0.826603 51.4005 +96.1426 0.839372 52.1945 +96.558 0.860626 53.5161 +96.7836 0.880476 54.7504 +96.302 0.894023 55.5928 +96.5025 0.914031 56.837 +96.6885 0.934162 58.0888 +96.9452 0.955255 59.4004 +96.4231 0.968822 60.244 +96.484 0.988363 61.4592 +96.7826 1.01062 62.8432 +96.147 1.02328 63.6301 +96.2513 1.04392 64.9139 +96.4228 1.06558 66.2609 +96.578 1.08737 67.616 +95.9842 1.10088 68.456 +96.0303 1.12187 69.7611 +96.1413 1.14391 71.1316 +95.5168 1.15736 71.9678 +96.0751 1.1854 73.7115 +96.2161 1.20874 75.1626 +96.1825 1.2302 76.4971 +95.589 1.24466 77.3964 +95.6043 1.26723 78.7999 +96.1386 1.29713 80.6594 +96.1914 1.32102 82.1446 +95.4708 1.33447 82.9808 +96.0161 1.36592 84.9369 +95.94 1.38903 86.3736 +95.8461 1.41221 87.8153 +95.6611 1.43438 89.1939 +95.6043 1.45882 90.7134 +96.1038 1.49229 92.7944 +95.7895 1.5136 94.1199 +96.2372 1.54745 96.2248 +95.3938 1.5609 97.0608 +95.2377 1.58579 98.6087 +95.6125 1.62009 100.742 +96.0254 1.65579 102.962 +95.6636 1.67867 104.385 +95.3511 1.70279 105.884 +95.5498 1.73658 107.985 +95.1942 1.76084 109.494 +95.339 1.79493 111.614 +95.5825 1.83164 113.896 +95.5389 1.86359 115.883 +95.0903 1.88817 117.412 +95.1825 1.92409 119.646 +95.1813 1.95891 121.81 +95.2103 1.99515 124.064 +95.147 2.03027 126.248 +94.9932 2.06423 128.359 +94.8685 2.09959 130.558 +94.8288 2.1377 132.928 +94.8695 2.17859 135.47 +94.5898 2.21301 137.611 +94.895 2.2622 140.67 +94.5468 2.29688 142.827 +94.5493 2.34107 145.574 +94.7797 2.39222 148.755 +94.4846 2.43134 151.187 +94.1542 2.47056 153.626 +94.252 2.52227 156.842 +94.3006 2.57419 160.07 +94.3 2.6263 163.311 +94.2499 2.67863 166.564 +94.1985 2.73254 169.917 +94.0003 2.7838 173.105 +93.8943 2.83949 176.567 +94.012 2.90389 180.572 +94.1576 2.97142 184.771 +93.3 3.00898 187.107 +116.431 3.83851 238.689 +116.927 3.94177 245.11 +116.6 4.02069 250.018 +116.861 4.12323 256.394 +116.733 4.21586 262.154 +115.717 4.27927 266.097 +112.687 4.2687 265.44 +110.06 4.27246 265.674 +107.4 4.27433 265.79 +104.709 4.27427 265.786 +101.705 4.26028 264.916 +99.0737 4.26084 264.951 +96.4839 4.26248 265.053 +94.1002 4.27283 265.697 +93.1125 4.3482 270.383 +92.7164 4.45564 277.064 +92.427 4.574 284.424 +92.467 4.71562 293.23 +92.331 4.85604 301.962 +92.1914 5.00449 311.193 +91.8148 5.14861 320.155 +91.636 5.31315 330.386 +91.7772 5.50752 342.473 +91.3136 5.67742 353.037 +91.1804 5.88036 365.657 +90.997 6.09463 378.981 +90.6553 6.31397 392.62 +90.6449 6.57449 408.82 +90.4416 6.84175 425.439 +90.2539 7.13308 443.555 +90.1954 7.46115 463.955 +89.751 7.78657 484.19 +89.724 8.18208 508.784 +89.3568 8.58608 533.906 +89.5431 9.09062 565.28 +95.0119 10.2224 635.657 +93.3016 10.6748 663.79 +88.2096 10.7736 669.931 +87.9775 11.5213 716.426 +87.54 12.3544 768.23 +89.7272 13.7271 853.588 +86.3474 14.4194 896.636 +86.2232 15.847 985.408 +84.8143 17.3284 1077.53 +82.9614 19.0768 1186.25 +84.2714 22.1549 1377.65 +80.7544 24.7768 1540.69 +71.2392 26.2362 1631.44 +60.589 27.8987 1734.82 +85.7635 52.6634 3274.76 +54.3485 50.0658 3113.23 +27.1675 50.0569 3112.68 +1.58096e-13 50.0508 3112.3 +-27.164 50.0505 3112.28 +-54.3224 50.0416 3111.73 +-81.5124 50.0529 3112.43 +-108.649 50.0283 3110.9 +-135.887 50.0449 3111.93 +-133.546 40.9739 2547.87 +-135.216 35.5482 2210.48 +-130.842 30.0869 1870.89 +-120.984 24.7183 1537.05 +-134.229 24.6699 1534.04 +-115.762 19.3315 1202.08 +-125.622 19.2186 1195.07 +-139.432 19.6778 1223.62 +-157.906 20.6789 1285.87 +-113.714 13.8887 863.635 +-120.44 13.7798 856.867 +-128.003 13.7719 856.377 +-149.88 15.2161 946.182 +-379.824 36.4964 2269.45 +-399.564 36.4369 2265.75 +-144.677 12.5518 780.505 +-152.666 12.6289 785.298 +-173.869 13.7415 854.482 +-111.358 8.42401 523.828 +-115.146 8.35154 519.322 +-119.112 8.29591 515.862 +-124.146 8.31483 517.039 +-129.815 8.37199 520.594 +-820.32 51.0034 3171.53 +-392.24 23.5382 1463.67 +-405.721 23.5241 1462.79 +-903.071 50.6406 3148.97 +-930.633 50.5181 3141.35 +-957.897 50.3795 3132.73 +-163.674 8.34702 519.041 +-142.982 7.07587 439.997 +-145.294 6.98233 434.181 +-146.668 6.84918 425.901 +-151.749 6.89049 428.47 +-1120.56 49.5043 3078.31 +-1147.38 49.3452 3068.42 +-1174.26 49.1883 3058.66 +-144.951 5.91695 367.932 +-144.074 5.73389 356.549 +-143.659 5.57677 346.779 +-146.133 5.53569 344.224 +-150.807 5.5769 346.787 +-1332.75 48.1327 2993.02 +-1358.83 47.9439 2981.28 +-491.251 16.9396 1053.35 +-1410.66 47.5553 2957.12 +-509.08 16.7834 1043.64 +-143.14 4.61636 287.058 +-144.006 4.54451 282.59 +-142.034 4.38722 272.81 +-142.813 4.31885 268.558 +-145.486 4.30853 267.916 +-149.127 4.32593 268.998 +-409.155 11.6284 723.086 +-109.8 3.05799 190.154 +-108.867 2.97181 184.795 +-110.167 2.94815 183.324 +-111.292 2.92024 181.589 +-112.661 2.89906 180.272 +-114.928 2.90077 180.378 +-116.008 2.8724 178.614 +-117.618 2.85735 177.678 +-119.164 2.84074 176.645 +-121.494 2.84246 176.752 +-125.957 2.89249 179.863 +-414.796 9.35063 581.448 +-416.034 9.2075 572.548 +-417.149 9.06477 563.672 +-417.961 8.91855 554.58 +-419.071 8.78175 546.073 +-419.881 8.64152 537.354 +-421.567 8.52187 529.913 +-422.463 8.38867 521.631 +-423.819 8.26703 514.067 +-431.31 8.26515 513.95 +-427.337 8.04535 500.282 +-430.834 7.96931 495.554 +-433.022 7.87002 489.38 +-162.733 2.90611 180.71 +-436.229 7.65483 475.998 +-438.32 7.55805 469.98 +-440.547 7.46477 464.18 +-441.803 7.35639 457.441 +-442.414 7.23908 450.146 +-443.002 7.12327 442.945 +-426.024 6.73175 418.599 +-425.777 6.6114 411.115 +-427.971 6.53037 406.076 +-422.942 6.34177 394.349 +-381.172 5.61626 349.235 +-420.843 6.09301 378.88 +-422.186 6.00602 373.471 +-382.864 5.35158 332.776 +-420.124 5.76966 358.774 +-380.954 5.13996 319.617 +-380.797 5.04745 313.864 +-418.26 5.44614 338.656 +-382.774 4.89577 304.433 +-382.343 4.80327 298.68 +-381.206 4.70343 292.472 +-140.48 1.70216 105.845 +-142.926 1.70056 105.745 +-143.196 1.67288 104.025 +-142.796 1.63778 101.842 +-142.123 1.60016 99.5026 +-143.068 1.58107 98.3154 +-144.087 1.56273 97.1751 +-147.431 1.56908 97.5699 +-491.88 5.13631 319.39 +-494.565 5.06622 315.031 +-496.108 4.98471 309.963 +-498.794 4.91491 305.622 +-500.329 4.83396 300.589 +-503.536 4.76927 296.567 +-2837.53 26.3423 1638.04 +-2851.72 25.9432 1613.22 +-2865.69 25.542 1588.27 +-405.838 3.54316 220.324 +-2892.98 24.7339 1538.02 +-405.719 3.39606 211.177 +-405.675 3.32367 206.675 +-404.868 3.24582 201.834 +-385.852 3.02606 188.169 +-379.176 2.90811 180.835 +-379.562 2.84597 176.97 +-379.818 2.78326 173.071 +-378.391 2.70892 168.448 +-380.121 2.65764 165.26 +-379.34 2.58913 160.999 +-380.361 2.53335 157.531 +-380.609 2.47265 153.756 +-379.61 2.40442 149.514 +-380.901 2.35106 146.195 +-379.446 2.28119 141.851 +-380.106 2.22456 138.329 +-380.827 2.16846 134.841 +-380.004 2.10394 130.829 +-380.752 2.0485 127.382 +-380.423 1.98754 123.591 +-382.345 1.93844 120.537 +-379.844 1.86732 116.115 +-380.076 1.8103 112.569 +-380.179 1.75291 109.001 +-379.767 1.69348 105.305 +-379.995 1.6372 101.806 +-379.804 1.5794 98.2114 +-380.356 1.52488 94.8211 +-379.613 1.46544 91.1253 +-378.933 1.4067 87.4722 +-380.951 1.35799 84.4438 +-380.108 1.29914 80.7841 +-380.211 1.24383 77.3448 +-380.184 1.18828 73.8907 +-379.635 1.13137 70.352 +-381.121 1.08057 67.1931 +-379.621 1.02148 63.5186 +-380.26 0.968428 60.2195 +-380.079 0.91337 56.7959 +-380.758 0.86045 53.5052 +-381.607 0.807828 50.233 +-380.344 0.75092 46.6943 +-380.935 0.697886 43.3965 +-379.51 0.641383 39.8829 +-380.44 0.589029 36.6275 +-380.347 0.535065 33.2718 +-379.526 0.480286 29.8655 +-381.269 0.428695 26.6575 +-379.391 0.373118 23.2015 +-379.879 0.320121 19.906 +-379.738 0.266594 16.5776 +-3274.5 1.83866 114.333 +-143.851 0.0605694 3.76637 +-144.778 0.0406348 2.52678 +-146.294 0.0205286 1.27652 +95.2 5.32907e-15 -1.7053e-13 +96.1963 0.0210705 0.839229 +95.9854 0.0420517 1.6749 +96.0671 0.0631391 2.51481 +95.9415 0.0840906 3.34929 +96.1084 0.10532 4.19487 +95.8684 0.126104 5.02267 +96.0206 0.147403 5.87102 +95.7661 0.168079 6.69451 +96.9004 0.191411 7.62382 +96.7305 0.212409 8.46015 +96.653 0.233587 9.30369 +96.4686 0.254487 10.1361 +96.7739 0.276742 11.0225 +96.3762 0.297009 11.8298 +96.3684 0.318434 12.6831 +96.155 0.339181 13.5094 +96.0334 0.360229 14.3478 +96.5959 0.383998 15.2945 +95.6697 0.401826 16.0046 +95.4279 0.422329 16.8212 +96.064 0.446873 17.7988 +95.8068 0.467419 18.6171 +95.7386 0.488884 19.4721 +95.4672 0.509315 20.2858 +96.2628 0.535636 21.3342 +96.1703 0.557266 22.1957 +96.0701 0.578894 23.0571 +95.5741 0.598093 23.8218 +96.4275 0.625915 24.9299 +96.013 0.645713 25.7185 +95.9776 0.668059 26.6085 +96.5107 0.694591 27.6653 +96.3614 0.716414 28.5345 +96.013 0.73676 29.3449 +96.7069 0.76531 30.482 +96.342 0.785685 31.2935 +96.16 0.807554 32.1646 +96.5374 0.834305 33.23 +96.338 0.856256 34.1044 +96.6944 0.883333 35.1828 +96.4772 0.905357 36.06 +96.999 0.934548 37.2227 +96.8565 0.957599 38.1408 +96.4271 0.977836 38.9468 +97.0074 1.00852 40.1691 +96.561 1.02875 40.9748 +97.2084 1.06087 42.2541 +96.8358 1.08212 43.1005 +96.5469 1.10433 43.9851 +96.0686 1.12437 44.7834 +96.5766 1.15618 46.0502 +96.0811 1.17619 46.8471 +96.4739 1.20727 48.0849 +95.9614 1.22721 48.8794 +96.4181 1.25977 50.1763 +96.6828 1.29027 51.3909 +96.3184 1.31259 52.2801 +96.4706 1.34216 53.4577 +96.0873 1.36447 54.3465 +96.302 1.39551 55.5825 +96.5886 1.42801 56.8772 +96.0027 1.44782 57.6661 +96.9452 1.49109 59.3894 +96.4231 1.51226 60.2328 +96.6527 1.54546 61.5551 +95.9439 1.56384 62.2871 +96.3138 1.60003 63.7286 +96.2513 1.62949 64.9018 +96.5052 1.66472 66.3053 +95.8408 1.68436 67.0873 +96.0656 1.71986 68.5013 +96.0303 1.75116 69.7481 +96.3021 1.78855 71.2374 +95.5168 1.80656 71.9544 +96.3924 1.85644 73.9412 +96.2949 1.8883 75.2101 +96.3391 1.92338 76.6075 +96.2884 1.95704 77.9482 +95.6814 1.97965 78.8489 +95.6023 2.01344 80.1946 +96.3434 2.06528 82.2592 +96.2255 2.09947 83.6211 +96.091 2.13377 84.9874 +96.0143 2.16985 86.4245 +95.9198 2.20606 87.8666 +95.7342 2.24068 89.2455 +96.3297 2.29439 91.3847 +96.0319 2.32761 92.7077 +96.0748 2.36966 94.3828 +95.6715 2.40126 95.6414 +95.5339 2.44003 97.1854 +95.8629 2.49155 99.2376 +95.7501 2.53249 100.868 +95.3434 2.5662 102.211 +95.7987 2.624 104.513 +95.9533 2.67473 106.533 +95.6823 2.71444 108.115 +95.8502 2.7675 110.228 +95.5338 2.80748 111.821 +95.5825 2.85906 113.875 +95.6026 2.91086 115.938 +95.2162 2.9512 117.545 +95.307 3.00729 119.779 +95.0581 3.05377 121.631 +95.1494 3.11231 123.962 +95.147 3.16911 126.224 +95.1716 3.22816 128.576 +94.9861 3.28137 130.696 +94.9449 3.34088 133.066 +94.6975 3.39444 135.199 +94.5898 3.45436 137.586 +95.0069 3.53527 140.809 +94.8228 3.59574 143.217 +94.4949 3.65214 145.463 +94.8334 3.73622 148.812 +94.5906 3.79942 151.329 +94.2065 3.8585 153.683 +94.252 3.93709 156.813 +94.4529 4.02461 160.298 +94.35 4.10166 163.368 +94.3484 4.18552 166.707 +94.1985 4.26531 169.885 +94.1434 4.35195 173.336 +94.3168 4.45217 177.328 +94.1044 4.53723 180.716 +94.203 4.64041 184.826 +93.5677 4.71029 187.609 +116.388 5.98938 238.555 +116.582 6.13471 244.343 +116.643 6.2783 250.062 +116.736 6.42922 256.073 +117.018 6.59671 262.744 +115.996 6.69575 266.689 +113.039 6.68392 266.218 +110.787 6.71306 267.379 +107.362 6.66959 265.647 +105.039 6.69286 266.574 +102.027 6.67107 265.706 +99.7391 6.69552 266.68 +96.4839 6.65343 265.003 +94.4006 6.69088 266.495 +93.0148 6.78013 270.05 +92.5578 6.94305 276.539 +92.427 7.1397 284.371 +92.3167 7.34877 292.699 +92.2725 7.57514 301.715 +92.1346 7.80683 310.943 +91.8975 8.04387 320.384 +91.6093 8.29104 330.229 +91.7514 8.59444 342.313 +91.3637 8.86691 353.166 +91.2046 9.18125 365.686 +90.8102 9.49376 378.133 +90.7902 9.87035 393.132 +90.3852 10.2329 407.573 +90.3376 10.6672 424.871 +90.0346 11.1072 442.395 +90.0237 11.6242 462.986 +87.9469 11.91 474.37 +89.6372 12.7593 508.198 +89.3898 13.4072 534.004 +89.4179 14.17 564.385 +90.6959 15.2316 606.669 +93.3852 16.6776 664.261 +88.301 16.8342 670.501 +87.8678 17.9615 715.401 +87.257 19.222 765.604 +89.7481 21.432 853.627 +85.619 22.3177 888.907 +86.0663 24.691 983.432 +84.7515 27.0284 1076.53 +80.4153 28.8636 1149.63 +76.854 31.5382 1256.15 +79.2419 37.9502 1511.54 +71.466 41.0831 1636.32 +60.6309 43.578 1735.69 +85.774 82.2139 3274.55 +54.3765 78.1893 3114.25 +28.5942 82.239 3275.55 +1.49214e-13 78.1935 3114.42 +-28.5942 82.239 3275.55 +-52.3328 75.2504 2997.2 +-85.774 82.2139 3274.55 +-108.754 78.1659 3113.32 +-142.928 82.1637 3272.55 +-133.624 63.995 2548.9 +-200.038 82.0887 3269.56 +-130.968 47.0087 1872.34 +-121.494 38.7461 1543.24 +-134.394 38.5554 1535.65 +-314.039 81.8585 3260.39 +-125.633 30.0014 1194.94 +-139.863 30.8106 1227.17 +-158.113 32.3208 1287.32 +-113.975 21.729 865.457 +-120.566 21.5317 857.599 +-128.565 21.5913 859.975 +-149.974 23.7662 946.599 +-540.745 81.1043 3230.35 +-399.825 56.9126 2266.81 +-145.132 19.6542 782.817 +-152.838 19.7349 786.035 +-174.646 21.5454 858.144 +-111.565 13.1738 524.709 +-115.341 13.0582 520.104 +-119.292 12.9689 516.545 +-124.59 13.0252 518.791 +-129.936 13.0803 520.982 +-820.42 79.6224 3171.33 +-392.577 36.7731 1464.66 +-875.66 79.251 3156.54 +-903.071 79.0464 3148.39 +-930.633 78.8552 3140.77 +-957.897 78.6388 3132.15 +-164.065 13.0602 520.184 +-142.982 11.0449 439.915 +-145.262 10.8966 434.006 +-146.961 10.7124 426.673 +-152.383 10.8005 430.18 +-1120.56 77.2727 3077.74 +-1147.38 77.0244 3067.85 +-1174.26 76.7795 3058.1 +-145.648 9.28032 369.632 +-144.074 8.95019 356.483 +-144.004 8.72583 347.546 +-146.29 8.65006 344.528 +-151.206 8.72817 347.639 +-1332.59 75.1227 2992.11 +-1358.83 74.8371 2980.73 +-492.266 26.4963 1055.34 +-1410.66 74.2304 2956.57 +-509.387 26.2134 1044.07 +-143.676 7.23276 288.078 +-144.187 7.10263 282.895 +-142.68 6.8793 274 +-142.813 6.74143 268.508 +-145.867 6.74296 268.569 +-149.224 6.75686 269.123 +-409.45 18.1642 723.473 +-109.95 4.77984 190.379 +-109.527 4.66692 185.881 +-110.167 4.60186 183.29 +-111.762 4.57756 182.323 +-112.767 4.5295 180.408 +-114.821 4.52368 180.176 +-115.572 4.46678 177.91 +-118.115 4.47897 178.396 +-119.555 4.44875 177.192 +-121.947 4.45342 177.378 +-125.556 4.50056 179.256 +-416.422 14.6529 583.618 +-415.976 14.3702 572.361 +-418.339 14.1898 565.175 +-417.961 13.9212 554.477 +-421.628 13.7913 549.304 +-420.62 13.5125 538.199 +-425.613 13.4297 534.9 +-422.463 13.0941 521.534 +-426.872 12.9972 517.674 +-432.275 12.9301 515.003 +-429.35 12.6174 502.546 +-429.915 12.413 494.405 +-434.149 12.3165 490.561 +-2192.41 61.1139 2434.14 +-437.377 11.9801 477.163 +-438.73 11.8086 470.332 +-441.029 11.6647 464.601 +-442.289 11.4955 457.86 +-443.886 11.3373 451.56 +-441.8 11.0888 441.661 +-426.096 10.5095 418.591 +-445.271 10.7924 429.859 +-2376.69 56.6081 2254.68 +-423.015 9.90077 394.344 +-2415.69 55.5585 2212.87 +-423.295 9.56617 381.017 +-423.01 9.39327 374.13 +-381.506 8.3238 331.534 +-421.721 9.04027 360.071 +-381.72 8.03925 320.2 +-382.88 7.92181 315.523 +-383.211 7.78868 310.22 +-382.539 7.63726 304.189 +-383.052 7.51146 299.179 +-382.555 7.3677 293.453 +-141.039 2.66755 106.248 +-142.765 2.65149 105.608 +-143.358 2.61422 104.123 +-142.877 2.55792 101.881 +-142.205 2.49918 99.5415 +-142.821 2.46368 98.1273 +-144.335 2.44353 97.3248 +-148.515 2.46724 98.269 +-492.132 8.0215 319.493 +-495.83 7.92823 315.778 +-496.871 7.79275 310.382 +-2793.68 42.9688 1711.43 +-501.1 7.55709 300.996 +-505.087 7.46744 297.425 +-2837.53 41.1185 1637.73 +-2851.72 40.4955 1612.92 +-405.211 5.63755 224.541 +-404.959 5.51865 219.806 +-406.332 5.42267 215.983 +-406.074 5.30566 211.322 +-406.744 5.2017 207.182 +-405.137 5.06986 201.93 +-386.212 4.72786 188.309 +-380.71 4.55773 181.533 +-379.018 4.43598 176.683 +-380.455 4.35175 173.328 +-379.03 4.23559 168.702 +-380.03 4.14742 165.19 +-378.42 4.03166 160.579 +-381.193 3.96301 157.845 +-379.682 3.85022 153.353 +-380.541 3.76232 149.852 +-380.341 3.66443 145.953 +-381.413 3.57922 142.559 +-380.2 3.47323 138.337 +-380.544 3.3823 134.716 +-381.044 3.29309 131.163 +-381.131 3.20075 127.485 +-380.518 3.10319 123.599 +-380.819 3.01369 120.034 +-379.844 2.91475 116.093 +-380.747 2.83072 112.746 +-381.044 2.7424 109.229 +-379.574 2.64205 105.232 +-379.705 2.55363 101.71 +-379.901 2.46596 98.2181 +-380.647 2.38205 94.8761 +-380.877 2.29507 91.4117 +-380.394 2.20422 87.7932 +-380.658 2.1181 84.3632 +-379.913 2.02682 80.7275 +-380.015 1.94053 77.2905 +-380.282 1.85531 73.8961 +-381.011 1.7724 70.5941 +-380.037 1.68191 66.9897 +-381.199 1.60109 63.7708 +-379.569 1.5089 60.0989 +-380.178 1.42607 56.8 +-379.867 1.33996 53.37 +-380.616 1.25769 50.0932 +-379.847 1.1706 46.6247 +-379.544 1.08537 43.23 +-380.604 1.00404 39.9904 +-380.241 0.918954 36.6016 +-380.347 0.835198 33.2656 +-380.224 0.751071 29.9149 +-380.67 0.668114 26.6107 +-379.79 0.583026 23.2217 +-379.879 0.499687 19.9023 +-380.537 0.41701 16.6094 +-3274.5 2.87002 114.312 +-147.449 0.0969099 3.85988 +-146.378 0.0641288 2.55423 +-146.694 0.0321313 1.27978 +96.1 1.77636e-15 1.13687e-13 +95.2964 0.0283726 0.831155 +97.0852 0.0578148 1.69364 +96.167 0.0859128 2.51675 +96.0415 0.114421 3.35189 +96.1084 0.143159 4.19375 +96.0682 0.171767 5.03179 +96.0206 0.200362 5.86945 +96.9632 0.231321 6.77638 +96.9004 0.26018 7.62178 +96.8301 0.289019 8.46661 +96.7525 0.317836 9.31079 +96.6675 0.34663 10.1543 +96.5752 0.375397 10.997 +96.674 0.404966 11.8632 +96.3684 0.432839 12.6797 +96.2541 0.461514 13.5197 +96.0334 0.48965 14.3439 +96.7935 0.523026 15.3217 +95.6697 0.546191 16.0003 +96.4127 0.579987 16.9903 +96.064 0.607424 17.794 +96.1013 0.637303 18.6693 +95.7386 0.664528 19.4669 +95.565 0.693008 20.3012 +95.3841 0.721434 21.1339 +96.2678 0.758246 22.2123 +95.8757 0.785283 23.0043 +95.8652 0.815449 23.888 +95.4594 0.842251 24.6731 +96.3994 0.881232 25.8151 +95.9776 0.908075 26.6014 +96.6068 0.945081 27.6855 +96.3614 0.973804 28.5269 +96.1086 1.00246 29.3663 +96.7069 1.04027 30.4738 +96.4371 1.06902 31.3161 +96.16 1.09769 32.156 +96.7266 1.13627 33.2862 +96.338 1.16389 34.0952 +97.0702 1.20536 35.3101 +96.4772 1.23063 36.0504 +96.1588 1.2593 36.8904 +96.8565 1.30164 38.1306 +97.3543 1.34193 39.3108 +97.0074 1.37086 40.1584 +96.653 1.39969 41.0029 +96.383 1.42977 41.8841 +96.9272 1.47229 43.1297 +97.3659 1.51382 44.3464 +96.9749 1.54275 45.1939 +96.5766 1.57157 46.0379 +96.89 1.61222 47.2289 +96.5634 1.64253 48.1167 +96.8524 1.68361 49.3201 +96.4181 1.71238 50.1629 +96.6828 1.75383 51.3772 +96.3184 1.78418 52.2662 +96.558 1.82602 53.4918 +96.8706 1.86981 54.7748 +96.3886 1.89858 55.6176 +96.5886 1.94106 56.862 +96.8599 1.98556 58.1654 +96.9452 2.0268 59.3735 +96.5079 2.05739 60.2697 +96.737 2.10254 61.5924 +96.1116 2.1294 62.3793 +96.3138 2.17488 63.7116 +96.3342 2.21683 64.9404 +96.5052 2.26282 66.2876 +95.9227 2.29146 67.1267 +96.0656 2.33776 68.483 +96.1112 2.38232 69.7883 +96.3021 2.43113 71.2183 +96.3154 2.47614 72.5366 +96.3924 2.52341 73.9214 +95.6645 2.54991 74.6978 +96.3391 2.6144 76.587 +95.7444 2.64513 77.4872 +95.6814 2.69089 78.8278 +95.7556 2.74121 80.3017 +96.3434 2.80728 82.2372 +96.3009 2.856 83.6644 +96.091 2.90039 84.9647 +96.0886 2.95171 86.4682 +95.9198 2.99864 87.8431 +96.4656 3.06897 89.9032 +95.6769 3.09757 90.7411 +95.6003 3.14964 92.2664 +96.0035 3.21863 94.2875 +95.813 3.2688 95.7572 +95.604 3.3191 97.2308 +95.8629 3.38671 99.2111 +95.6813 3.43986 100.768 +96.1618 3.51813 103.061 +95.7311 3.56422 104.411 +95.9533 3.63569 106.505 +95.6823 3.68966 108.086 +95.3254 3.74118 109.595 +95.5338 3.81613 111.791 +95.6468 3.88884 113.921 +95.7298 3.96191 116.061 +95.1532 4.00882 117.436 +95.307 4.08773 119.747 +95.0581 4.15092 121.598 +95.2712 4.2359 124.088 +95.147 4.30768 126.19 +94.9932 4.37974 128.301 +95.1037 4.46581 130.823 +94.8869 4.53838 132.949 +94.8695 4.62237 135.409 +94.5898 4.69542 137.549 +94.951 4.80261 140.689 +94.7124 4.8819 143.012 +94.5493 4.96712 145.508 +94.7797 5.07565 148.687 +94.5376 5.16155 151.204 +94.6245 5.26803 154.323 +94.3035 5.35448 156.856 +94.4021 5.46761 160.17 +94.4 5.57825 163.411 +93.9052 5.66255 165.88 +94.2955 5.80369 170.015 +94.1434 5.91549 173.29 +93.9413 6.02763 176.575 +94.1505 6.17038 180.757 +94.1576 6.30456 184.687 +93.7015 6.41172 187.827 +108.891 7.61685 223.13 +116.496 8.33261 244.098 +116.6 8.53083 249.904 +116.695 8.73597 255.914 +116.774 8.94804 262.126 +116.355 9.1295 267.442 +113.429 9.11671 267.067 +110.749 9.12176 267.215 +108.037 9.12275 267.244 +105.039 9.09743 266.503 +102.708 9.12834 267.408 +99.7741 9.10426 266.703 +97.0995 9.10156 266.624 +94.434 9.09795 266.518 +92.4939 9.16444 268.466 +92.5895 9.44075 276.56 +92.427 9.70481 284.295 +92.2265 9.97924 292.335 +92.0678 10.2738 300.965 +92.1914 10.6182 311.052 +91.8424 10.9272 320.106 +91.6093 11.2698 330.141 +91.4667 11.6459 341.159 +91.0882 12.0162 352.007 +90.9868 12.4501 364.716 +90.8336 12.9079 378.129 +90.6553 13.3966 392.442 +90.4068 13.9127 407.562 +90.3168 14.4963 424.66 +89.5959 15.0241 440.122 +88.6308 15.556 455.701 +87.6371 16.1319 472.572 +87.5187 16.9335 496.054 +89.3898 18.2241 533.861 +89.2771 19.2306 563.346 +90.5776 20.6769 605.716 +93.7331 22.7539 666.558 +88.1835 22.8519 669.43 +87.7581 24.3841 714.316 +87.257 26.1279 765.399 +89.445 29.0335 850.517 +85.619 30.3359 888.669 +85.5695 33.3681 977.495 +84.8535 36.7834 1077.54 +81.1547 39.5946 1159.89 +76.3778 42.6036 1248.04 +79.9484 52.045 1524.62 +71.5096 55.8773 1636.89 +114.341 111.708 3272.39 +85.774 111.751 3273.67 +57.1863 111.772 3274.29 +28.5942 111.785 3274.67 +1.51879e-13 111.789 3274.79 +-28.5942 111.785 3274.67 +-32.8768 64.2587 1882.41 +-85.774 111.751 3273.67 +-114.355 111.721 3272.79 +-142.928 111.683 3271.67 +-171.489 111.636 3270.31 +-200.038 111.581 3268.69 +-130.305 63.5744 1862.37 +-121.431 52.6393 1542.03 +-134.856 52.5875 1540.51 +-157.35 55.7511 1633.19 +-126.124 40.9394 1199.29 +-139.885 41.8869 1227.05 +-158.747 44.1089 1292.14 +-114.315 29.6236 867.802 +-121.053 29.3857 860.834 +-128.52 29.3384 859.448 +-150.693 32.4598 950.886 +-540.745 110.243 3229.49 +-568.993 110.091 3225.04 +-145.132 26.7154 782.608 +-154.059 27.0396 792.105 +-175.125 29.3663 860.265 +-112.002 17.9769 526.621 +-115.514 17.7764 520.746 +-119.494 17.6582 517.284 +-124.566 17.7016 518.555 +-130.517 17.8591 523.17 +-820.42 108.229 3170.48 +-394.518 50.2317 1471.5 +-875.66 107.724 3155.69 +-903.181 107.459 3147.94 +-930.633 107.186 3139.93 +-957.897 106.892 3131.32 +-164.336 17.7817 520.903 +-143.291 15.0455 440.748 +-145.23 14.8082 433.795 +-147.417 14.6063 427.882 +-152.316 14.6744 429.877 +-1120.56 105.035 3076.92 +-401.513 36.6374 1073.26 +-1174.26 104.364 3057.28 +-145.354 12.5891 368.789 +-144.373 12.1911 357.129 +-144.08 11.8671 347.639 +-146.837 11.8018 345.725 +-151.405 11.8796 348.005 +-1332.75 102.125 2991.67 +-1358.83 101.724 2979.93 +-1384.71 101.31 2967.79 +-1410.66 100.9 2955.78 +-511.623 35.7875 1048.37 +-143.274 9.80382 287.196 +-144.142 9.65138 282.73 +-142.68 9.35085 273.926 +-143.705 9.22066 270.113 +-146.058 9.17754 268.849 +-149.661 9.21128 269.838 +-409.598 24.699 723.541 +-110.1 6.50598 190.588 +-109.578 6.34655 185.918 +-110.321 6.26396 183.498 +-111.919 6.2309 182.53 +-113.297 6.18576 181.207 +-115.036 6.16041 180.465 +-116.008 6.09447 178.533 +-118.115 6.08815 178.348 +-120.171 6.07819 178.056 +-122.344 6.07311 177.907 +-126.416 6.15942 180.436 +-415.609 19.8784 582.323 +-417.151 19.5883 573.825 +-418.577 19.2988 565.345 +-420.067 19.0182 557.123 +-421.993 18.7625 549.633 +-423.637 18.499 541.914 +-425.053 18.2307 534.054 +-426.239 17.9576 526.055 +-427.445 17.6905 518.23 +-437.738 17.7978 521.372 +-430.194 17.1842 503.4 +-431.949 16.9525 496.612 +-434.347 16.7491 490.654 +-2192.41 83.0706 2433.49 +-437.985 16.3069 477.699 +-439.957 16.096 471.521 +-441.235 15.863 464.694 +-442.775 15.6426 458.24 +-444.096 15.4178 451.652 +-443.497 15.1306 443.239 +-428.592 14.369 420.931 +-426.569 14.0537 411.692 +-2376.69 76.946 2254.08 +-423.746 13.4811 394.92 +-424.008 13.2553 388.306 +-422.255 12.9711 379.979 +-421.587 12.7251 372.772 +-383.619 11.377 333.281 +-421.189 12.2727 359.52 +-382.256 10.9429 320.564 +-383.806 10.7939 316.201 +-383.444 10.5934 310.326 +-382.93 10.3917 304.419 +-383.052 10.2101 299.099 +-382.872 10.023 293.617 +-141.678 3.64234 106.7 +-142.765 3.6041 105.58 +-142.872 3.54139 103.743 +-142.959 3.47889 101.912 +-142.451 3.40295 99.6868 +-142.574 3.34302 97.9313 +-145.33 3.34432 97.9694 +-148.015 3.34235 97.9118 +-493.809 10.9406 320.496 +-495.745 10.7748 315.641 +-497.465 10.6051 310.67 +-2793.68 58.4064 1710.97 +-501.871 10.288 301.379 +-505.432 10.1572 297.549 +-2837.53 55.8913 1637.3 +-403.845 7.7951 228.352 +-405.649 7.67126 224.724 +-2879.44 53.3381 1562.5 +-2892.98 52.4787 1537.32 +-2906.29 51.6155 1512.04 +-405.764 7.05348 206.627 +-406.39 6.91261 202.5 +-387.74 6.45187 189.003 +-380.169 6.18638 181.225 +-379.562 6.03838 176.89 +-380.182 5.91099 173.158 +-379.121 5.75873 168.698 +-380.672 5.64699 165.425 +-380.813 5.51476 161.551 +-380.361 5.37509 157.459 +-381.443 5.25779 154.023 +-380.355 5.11154 149.739 +-379.874 4.97487 145.735 +-381.788 4.86996 142.662 +-380.576 4.72575 138.437 +-380.639 4.5986 134.713 +-380.666 4.47178 130.998 +-379.993 4.33771 127.07 +-379.757 4.20963 123.318 +-380.819 4.09643 120.002 +-380.036 3.96396 116.121 +-379.788 3.83804 112.433 +-380.371 3.72108 109.007 +-379.574 3.59127 105.204 +-380.575 3.47903 101.916 +-380.772 3.3596 98.4172 +-380.453 3.23621 94.8024 +-380.099 3.11326 91.2007 +-380.394 2.99614 87.7698 +-380.755 2.87982 84.3623 +-380.01 2.75571 80.7267 +-380.309 2.63975 77.3297 +-380.675 2.52447 73.9526 +-379.831 2.40172 70.3566 +-380.431 2.28854 67.0413 +-381.002 2.1752 63.7208 +-380.062 2.05368 60.161 +-380.376 1.93944 56.8144 +-380.659 1.82517 53.467 +-380.021 1.70687 50.0016 +-380.443 1.59367 46.6853 +-380.836 1.48034 43.3655 +-380.902 1.36583 40.0111 +-379.943 1.24813 36.563 +-379.949 1.13407 33.2218 +-380.523 1.02171 29.9304 +-381.468 0.910054 26.6594 +-380.09 0.793116 23.2338 +-380.877 0.680996 19.9493 +-379.538 0.565344 16.5614 +-3274.5 3.90115 114.281 +-147.649 0.131906 3.86409 +-146.778 0.0874068 2.56052 +-146.394 0.0435859 1.27682 +96.2 -1.77636e-15 -2.27374e-13 +96.1963 0.0362083 0.838712 +96.0854 0.0723387 1.67562 +96.0671 0.108501 2.51326 +96.0415 0.144655 3.35072 +96.0085 0.180798 4.18792 +95.9683 0.216928 5.02481 +96.0206 0.253304 5.8674 +95.9657 0.289435 6.70433 +96.8007 0.32859 7.61129 +96.8301 0.365387 8.46366 +96.653 0.401405 9.29796 +96.6675 0.438221 10.1507 +96.7739 0.475564 11.0157 +96.4755 0.510919 11.8347 +96.3684 0.547209 12.6753 +96.2541 0.583461 13.515 +96.1323 0.61967 14.3537 +95.9045 0.655154 15.1757 +96.5574 0.696922 16.1432 +96.4127 0.733238 16.9844 +96.064 0.767924 17.7878 +95.905 0.804051 18.6247 +95.7386 0.840117 19.4601 +96.4454 0.884193 20.481 +95.3841 0.91206 21.1265 +95.3908 0.949864 22.0022 +96.0701 0.994794 23.0429 +95.8652 1.03092 23.8797 +95.4594 1.0648 24.6645 +96.3994 1.11408 25.8061 +96.1703 1.15033 26.6456 +95.7417 1.1841 27.428 +96.3614 1.23111 28.5169 +96.1086 1.26734 29.3561 +96.7069 1.31514 30.4632 +96.4371 1.35148 31.3051 +96.16 1.38773 32.1448 +96.7266 1.43651 33.2746 +96.4322 1.47286 34.1166 +96.7883 1.51943 35.1953 +96.4772 1.5558 36.0378 +97.0924 1.60751 37.2356 +96.7634 1.64399 38.0806 +97.3543 1.69651 39.2971 +97.0074 1.73309 40.1444 +96.7451 1.77122 41.0276 +97.2084 1.82304 42.2281 +96.9272 1.86132 43.1146 +95.7279 1.88163 43.5851 +96.9749 1.9504 45.1781 +95.7643 1.97011 45.6347 +96.171 2.0231 46.8621 +96.5634 2.07654 48.0999 +96.1396 2.11281 48.94 +97.2164 2.18276 50.5605 +96.7711 2.21927 51.4062 +97.1093 2.27413 52.6769 +96.558 2.30851 53.4732 +96.9576 2.366 54.805 +96.3886 2.40025 55.5982 +96.5886 2.45395 56.8422 +96.0885 2.49021 57.6821 +96.2631 2.54431 58.9352 +96.4231 2.59873 60.1957 +96.6527 2.65578 61.5172 +96.1116 2.69206 62.3575 +96.2304 2.74717 63.6342 +96.3342 2.80258 64.9177 +96.5052 2.86073 66.2645 +95.9227 2.89694 67.1033 +96.0656 2.95547 68.4591 +96.1112 3.0118 69.7639 +96.3021 3.07352 71.1935 +96.3154 3.13041 72.5114 +96.3924 3.19017 73.8957 +96.4525 3.25023 75.2869 +95.713 3.28373 76.0627 +96.2884 3.36306 77.9002 +96.2987 3.42386 79.3087 +96.2152 3.48215 80.659 +95.507 3.51824 81.4948 +96.2255 3.60781 83.5697 +96.091 3.66676 84.9351 +96.1629 3.73453 86.5049 +95.9198 3.79098 87.8125 +95.8073 3.85341 89.2587 +96.2572 3.9398 91.2597 +96.1757 4.00584 92.7894 +96.0035 4.0691 94.2546 +95.7423 4.12948 95.6532 +96.0947 4.21765 97.6956 +95.8629 4.28158 99.1765 +95.6813 4.34878 100.733 +96.0936 4.44458 102.952 +96.3392 4.53464 105.038 +95.4849 4.57393 105.948 +95.6823 4.66459 108.048 +95.3254 4.72972 109.557 +95.5338 4.82448 111.752 +95.6468 4.91639 113.881 +95.3481 4.98885 115.559 +95.1532 5.06808 117.395 +95.4315 5.17462 119.862 +95.2428 5.2579 121.792 +95.2103 5.35171 123.965 +95.147 5.44591 126.147 +94.9932 5.537 128.257 +94.9273 5.63534 130.534 +94.8869 5.73756 132.902 +94.8122 5.84022 135.28 +94.9863 5.96098 138.077 +94.3358 6.03228 139.729 +94.7676 6.17543 143.045 +94.5493 6.27959 145.458 +94.8334 6.42046 148.72 +94.5376 6.5254 151.151 +94.6245 6.66001 154.269 +94.3035 6.76931 156.801 +94.4021 6.91233 160.114 +94 7.02231 162.661 +94.3484 7.19255 166.605 +94.2955 7.33721 169.956 +94.0957 7.47476 173.142 +94.3168 7.65078 177.219 +94.1044 7.79695 180.605 +93.8398 7.94351 184 +93.7462 8.10978 187.851 +104.639 9.25344 214.342 +116.539 10.5382 244.103 +116.558 10.7811 249.727 +116.321 11.009 255.006 +116.652 11.3006 261.761 +116.275 11.5339 267.166 +113.429 11.5256 266.974 +110.749 11.532 267.122 +108.074 11.5373 267.244 +105.003 11.4973 266.317 +102.35 11.5001 266.383 +99.7391 11.5058 266.516 +97.0995 11.5065 266.531 +94.4006 11.4979 266.331 +92.5265 11.59 268.466 +92.7482 11.9557 276.937 +92.3343 12.2568 283.912 +92.1363 12.6037 291.947 +92.3602 13.0298 301.816 +91.9074 13.3825 309.985 +91.6494 13.7856 319.323 +91.6895 14.2601 330.314 +91.4667 14.7232 341.04 +91.2134 15.2122 352.368 +90.9626 15.7356 364.491 +90.8336 16.3186 377.997 +90.5428 16.9153 391.819 +90.3852 17.5846 407.322 +90.1297 18.2888 423.632 +89.4165 18.956 439.087 +88.0393 19.5351 452.502 +87.7464 20.4199 472.996 +87.4666 21.3951 495.586 +89.2082 22.9927 532.591 +89.1676 24.2821 562.458 +90.2672 26.0509 603.43 +93.8027 28.7875 666.82 +88.301 28.9286 670.088 +87.6484 30.7887 713.175 +87.1552 32.9932 764.239 +89.5391 36.7437 851.114 +85.5807 38.3345 887.962 +85.5434 42.1721 976.855 +84.8064 46.4768 1076.57 +81.2175 50.0951 1160.38 +81.9943 57.8212 1339.34 +79.8019 65.6762 1521.29 +71.5271 70.6592 1636.72 +114.355 141.242 3271.65 +85.7635 141.262 3272.13 +57.1863 141.306 3273.15 +14.2888 70.6204 1635.82 +1.53655e-13 141.328 3273.65 +-14.2888 70.6204 1635.82 +-32.8193 81.0956 1878.46 +-42.8438 70.5686 1634.62 +-114.355 141.242 3271.65 +-71.4965 70.629 1636.02 +-171.489 141.134 3269.16 +-100.113 70.5988 1635.32 +-129.698 79.9984 1853.04 +-123.581 67.7263 1568.78 +-134.943 66.5259 1540.97 +-157.455 70.5298 1633.72 +-126.187 51.7828 1199.47 +-140.066 53.0233 1228.21 +-159.003 55.8535 1293.76 +-114.432 37.4896 868.391 +-121.053 37.1504 860.533 +-128.668 37.1332 860.137 +-150.725 41.0452 950.752 +-540.745 139.373 3228.36 +-568.993 139.181 3223.92 +-145.351 33.8253 783.514 +-154.231 34.2224 792.711 +-174.985 37.0962 859.28 +-112.002 22.727 526.438 +-115.492 22.4693 520.467 +-119.674 22.3577 517.883 +-124.566 22.3789 518.374 +-130.735 22.6157 523.86 +-820.42 136.826 3169.38 +-848.072 136.512 3162.1 +-875.66 136.188 3154.59 +-903.071 135.836 3146.45 +-930.633 135.508 3138.84 +-957.897 135.136 3130.22 +-164.215 22.4638 520.34 +-143.26 19.017 440.5 +-145.516 18.7578 434.496 +-147.775 18.5106 428.772 +-152.683 18.5966 430.763 +-1120.56 132.788 3075.85 +-1147.38 132.362 3065.96 +-1174.26 131.941 3056.21 +-145.244 15.9035 368.381 +-144.074 15.3804 356.263 +-144.425 15.0386 348.348 +-147.032 14.94 346.064 +-151.525 15.0305 348.159 +-1332.75 129.109 2990.62 +-1358.83 128.603 2978.9 +-1384.62 128.071 2966.58 +-1410.66 127.56 2954.75 +-511.623 45.2437 1048 +-143.765 12.4368 288.08 +-143.733 12.167 281.83 +-142.68 11.8216 273.831 +-143.705 11.6571 270.018 +-146.011 11.5987 268.668 +-149.418 11.6263 269.307 +-409.45 31.2141 723.028 +-110.1 8.22507 190.522 +-109.578 8.02352 185.853 +-110.27 7.91543 183.349 +-111.762 7.86626 182.21 +-112.767 7.78366 180.297 +-114.928 7.7809 180.233 +-116.389 7.73014 179.057 +-118.059 7.69322 178.202 +-120.059 7.67709 177.828 +-122.287 7.67428 177.763 +-126.76 7.80816 180.865 +-415.319 25.1133 581.713 +-417.151 24.7641 573.625 +-418.22 24.3774 564.666 +-420.428 24.064 557.408 +-421.993 23.7201 549.441 +-423.637 23.387 541.725 +-424.866 23.0376 533.633 +-425.672 22.6724 525.173 +-426.872 22.3349 517.355 +-438.895 22.56 522.568 +-430.519 21.7412 503.604 +-431.949 21.4319 496.439 +-434.679 21.191 490.858 +-436.608 20.9144 484.451 +-437.985 20.6157 477.532 +-439.957 20.3491 471.357 +-441.648 20.0732 464.967 +-443.748 19.8194 459.086 +-444.096 19.4916 451.494 +-442.649 19.092 442.237 +-426.809 18.0902 419.034 +-427.863 17.8211 412.798 +-2376.69 97.2776 2253.29 +-2396.28 96.3796 2232.49 +-422.681 16.7054 386.956 +-422.255 16.3985 379.846 +-2453.95 93.6408 2169.05 +-384.298 14.4086 333.754 +-420.504 15.4903 358.811 +-382.486 13.8427 320.645 +-384.038 13.6543 316.281 +-382.978 13.3762 309.84 +-382.93 13.1376 304.313 +-382.658 12.8947 298.687 +-382.079 12.6452 292.907 +-141.997 4.61516 106.903 +-142.685 4.55383 105.483 +-143.601 4.49996 104.235 +-142.959 4.39813 101.876 +-142.451 4.30211 99.6521 +-142.986 4.23856 98.1801 +-145.994 4.24729 98.3823 +-147.848 4.22075 97.7673 +-493.474 13.8221 320.168 +-495.83 13.6242 315.584 +-498.313 13.4302 311.091 +-2793.68 73.8392 1710.38 +-2808.51 72.7847 1685.95 +-506.81 12.8761 298.256 +-2837.53 70.6596 1636.73 +-2851.72 69.5891 1611.93 +-2865.69 68.513 1587 +-2879.44 67.4317 1561.96 +-2892.98 66.3452 1536.79 +-2906.29 65.254 1511.51 +-406.121 8.92509 206.736 +-2932.25 63.0565 1460.61 +-388.279 8.16801 189.2 +-379.627 7.80989 180.904 +-379.562 7.63391 176.828 +-379.363 7.45677 172.725 +-380.035 7.29788 169.045 +-381.038 7.14597 165.526 +-379.984 6.9568 161.144 +-380.916 6.80523 157.633 +-379.867 6.6196 153.333 +-380.541 6.46532 149.76 +-381.368 6.3141 146.257 +-380.008 6.12803 141.947 +-379.73 5.96116 138.081 +-380.733 5.81516 134.7 +-380.666 5.65337 130.952 +-379.993 5.48387 127.026 +-381.088 5.34063 123.708 +-381.964 5.19441 120.321 +-380.896 5.02271 116.344 +-379.788 4.85217 112.393 +-380.756 4.70906 109.078 +-379.574 4.5402 105.167 +-380.478 4.39718 101.854 +-380.192 4.24084 98.2327 +-380.55 4.09236 94.7935 +-379.127 3.92581 90.9356 +-380.004 3.78393 87.6493 +-379.096 3.62489 83.9653 +-379.326 3.47759 80.5532 +-379.623 3.33124 77.1632 +-379.89 3.18494 73.7744 +-380.126 3.03869 70.3867 +-380.234 2.89175 66.9832 +-380.706 2.74782 63.6491 +-381.248 2.60442 60.3275 +-381.76 2.46082 57.0013 +-380.461 2.30624 53.4205 +-381.012 2.16351 50.1145 +-380.145 2.01319 46.6326 +-380.439 1.86954 43.3052 +-380.604 1.72538 39.9658 +-379.843 1.57751 36.5407 +-380.945 1.43749 33.2974 +-381.819 1.29608 30.0218 +-379.872 1.14571 26.5386 +-380.289 1.00321 23.2379 +-380.178 0.859358 19.9058 +-380.438 0.716421 16.5948 +-3274.5 4.93196 114.242 +-148.049 0.167211 3.8732 +-144.278 0.108621 2.51604 +-146.094 0.0549901 1.27376 +96.2 -1.77636e-15 -2.27374e-13 +96.0963 0.0437276 0.837479 +96.0854 0.087452 1.6749 +96.0671 0.131169 2.51218 +96.0415 0.174877 3.34928 +96.1084 0.218799 4.19048 +96.0682 0.262522 5.02787 +96.0206 0.306225 5.86488 +95.8659 0.349541 6.69448 +96.8007 0.39724 7.60802 +95.8339 0.437181 8.37297 +96.653 0.485269 9.29396 +96.6675 0.529776 10.1464 +96.5752 0.573743 10.9884 +96.674 0.618934 11.854 +96.3684 0.661535 12.6698 +96.2541 0.70536 13.5092 +96.9236 0.755297 14.4656 +95.9045 0.792031 15.1691 +96.5574 0.842526 16.1362 +96.2157 0.884615 16.9423 +96.064 0.928363 17.7802 +95.905 0.972037 18.6166 +95.7386 1.01564 19.4517 +95.565 1.05917 20.2854 +95.5794 1.10486 21.1606 +95.196 1.14597 21.9478 +96.0701 1.20263 23.033 +95.6712 1.24378 23.8211 +95.653 1.28987 24.7038 +96.2062 1.34415 25.7433 +96.1703 1.39066 26.6341 +96.6068 1.44443 27.6639 +96.3614 1.48832 28.5047 +96.1086 1.53212 29.3434 +95.8486 1.57579 30.1798 +96.4371 1.63384 31.2917 +96.16 1.67766 32.1309 +96.7266 1.73663 33.2603 +96.338 1.77884 34.0687 +96.7883 1.83687 35.1802 +96.3836 1.87902 35.9873 +97.1857 1.94523 37.2554 +96.7634 1.98746 38.0642 +96.5198 2.03337 38.9435 +97.0074 2.09517 40.1271 +96.653 2.13923 40.971 +96.383 2.18521 41.8515 +96.9272 2.25019 43.0961 +96.5469 2.29421 43.9391 +96.0686 2.33585 44.7366 +96.5766 2.40192 46.002 +96.171 2.44577 46.8419 +96.5634 2.51038 48.0792 +96.9415 2.57553 49.327 +96.4181 2.61713 50.1238 +96.6828 2.68049 51.3372 +96.3184 2.72687 52.2255 +96.6455 2.79334 53.4986 +96.8706 2.85775 54.7321 +96.3886 2.90172 55.5743 +96.5886 2.96664 56.8177 +96.8599 3.03465 58.1201 +97.0305 3.1004 59.3794 +96.4231 3.14167 60.1698 +96.6527 3.21064 61.4907 +96.1116 3.25449 62.3307 +96.2304 3.32113 63.6069 +96.4171 3.39103 64.9456 +95.8459 3.43477 65.7834 +95.9227 3.50218 67.0744 +96.0656 3.57294 68.4297 +96.1112 3.64104 69.7339 +96.3021 3.71565 71.1629 +96.3154 3.78443 72.4802 +96.3131 3.8535 73.8031 +95.6645 3.89718 74.6396 +96.3391 3.99575 76.5274 +96.3661 4.06896 77.9295 +95.6043 4.10934 78.7029 +96.2918 4.21302 80.6885 +96.3434 4.29054 82.1732 +96.2255 4.36157 83.5337 +96.1659 4.43629 84.9647 +96.0886 4.51128 86.4009 +95.9198 4.58301 87.7747 +95.8073 4.65849 89.2203 +96.2572 4.76292 91.2204 +96.1757 4.84276 92.7495 +96.0035 4.91923 94.2141 +95.8837 4.9996 95.7533 +95.604 5.07279 97.1551 +95.3766 5.14986 98.631 +95.6125 5.2536 100.618 +96.0936 5.37316 102.908 +95.8663 5.45513 104.478 +96.0202 5.56051 106.496 +95.6823 5.63914 108.002 +95.1942 5.71 109.359 +95.4039 5.82451 111.552 +95.1326 5.91163 113.221 +95.2209 6.02306 115.355 +95.7196 6.16343 118.043 +94.809 6.21489 119.029 +95.3044 6.36053 121.818 +95.2103 6.46982 123.911 +95.0868 6.57953 126.012 +94.5768 6.66447 127.639 +94.4571 6.77897 129.832 +94.8869 6.93628 132.845 +94.8695 7.06466 135.304 +94.6465 7.18057 137.524 +94.5595 7.30983 139.999 +94.326 7.43085 142.317 +94.3859 7.57847 145.144 +94.7797 7.75742 148.572 +95.0675 7.93293 151.933 +94.6245 8.05145 154.203 +94.3035 8.18358 156.733 +94.4021 8.35648 160.045 +94.45 8.53007 163.369 +94.3976 8.69979 166.62 +94.2955 8.87014 169.883 +94.1434 9.04101 173.155 +94.3168 9.24921 177.143 +93.6888 9.38426 179.729 +93.8398 9.6031 183.92 +93.5231 9.78075 187.323 +101.877 10.8915 208.596 +116.539 12.7399 243.998 +116.643 13.0429 249.801 +116.28 13.3043 254.806 +116.53 13.6473 261.375 +116.554 13.9771 267.692 +113.429 13.9336 266.859 +110.749 13.9413 267.007 +107.662 13.8945 266.111 +105.369 13.9478 267.131 +102.672 13.9466 267.107 +99.7391 13.9097 266.401 +97.0995 13.9105 266.416 +94.7344 13.9492 267.158 +92.4288 13.9967 268.068 +92.4308 14.4042 275.871 +92.4579 14.8374 284.169 +92.1062 15.232 291.727 +91.7462 15.6473 299.68 +91.9642 16.1884 310.044 +91.5943 16.6557 318.992 +91.449 17.1941 329.305 +91.4667 17.7992 340.894 +91.3136 18.4106 352.603 +90.8175 18.9928 363.753 +90.8336 19.728 377.834 +90.4303 20.424 391.164 +90.3852 21.2585 407.146 +90.1921 22.125 423.743 +89.576 22.9572 439.681 +87.9248 23.5857 451.719 +87.5277 24.6246 471.615 +87.3624 25.8343 494.783 +89.2082 27.7964 532.362 +89.152 29.3501 562.118 +90.1046 31.4368 602.084 +93.8166 34.8071 666.632 +88.2096 34.9363 669.107 +87.6484 37.2212 712.868 +86.8721 39.7568 761.43 +89.2359 44.27 847.868 +85.6669 46.3902 888.475 +85.3342 50.8583 974.047 +84.83 56.2026 1076.4 +81.1547 60.5148 1158.99 +81.5364 69.5114 1331.3 +79.6501 79.2464 1517.74 +71.5271 85.4216 1636.01 +57.2003 85.4091 1635.77 +42.9093 85.4425 1636.41 +28.5853 85.3909 1635.42 +14.3028 85.4581 1636.71 +7.81597e-14 85.3778 1635.17 +-14.3045 85.4686 1636.91 +-28.5923 85.4117 1635.82 +-42.9171 85.4581 1636.71 +-57.1689 85.3622 1634.87 +-71.5402 85.4373 1636.31 +-85.8048 85.37 1635.02 +-100.205 85.4268 1636.11 +-114.568 85.43 1636.17 +-123.793 82.0167 1570.8 +-135.022 80.4712 1541.2 +-157.072 85.0577 1629.04 +-126.375 62.6949 1200.74 +-140.146 64.1371 1228.37 +-159.064 67.5488 1293.71 +-114.432 45.3221 868.018 +-121.192 44.9636 861.152 +-128.801 44.9377 860.656 +-150.897 49.6772 951.428 +-273.847 85.3283 1634.22 +-288.343 85.2668 1633.05 +-145.296 40.8769 782.883 +-154.403 41.4184 793.252 +-175.185 44.8977 859.889 +-112.168 27.5161 526.993 +-115.687 27.2094 521.12 +-119.831 27.0643 518.341 +-124.777 27.1 519.025 +-130.71 27.3357 523.538 +-820.42 165.413 3168.01 +-848.072 165.033 3160.74 +-875.66 164.641 3153.23 +-903.071 164.216 3145.1 +-930.519 163.799 3137.11 +-957.897 163.369 3128.88 +-164.065 27.1321 519.64 +-143.291 22.995 440.405 +-145.23 22.6323 433.458 +-147.808 22.3829 428.681 +-152.45 22.4475 429.918 +-1120.56 160.531 3074.52 +-401.198 55.9513 1071.59 +-1174.26 159.506 3054.9 +-145.391 19.2456 368.595 +-144.411 18.6372 356.943 +-144.272 18.1613 347.829 +-146.993 18.0566 345.823 +-151.166 18.1276 347.184 +-1332.75 156.083 2989.34 +-1358.83 155.471 2977.61 +-1384.62 154.828 2965.3 +-1410.66 154.211 2953.48 +-511.93 54.7291 1048.18 +-143.72 15.0304 287.866 +-143.733 14.709 281.709 +-142.634 14.2869 273.625 +-143.752 14.0971 269.991 +-146.631 14.0816 269.693 +-149.661 14.0782 269.628 +-409.696 37.7581 723.151 +-110.2 9.95251 190.612 +-109.578 9.69983 185.773 +-110.27 9.56916 183.27 +-111.919 9.52306 182.388 +-113.403 9.46289 181.235 +-115.304 9.43734 180.746 +-116.389 9.34515 178.98 +-118.115 9.3049 178.209 +-120.059 9.28102 177.752 +-122.23 9.2733 177.604 +-127.047 9.46081 181.195 +-415.609 30.3813 581.869 +-417.151 29.938 573.378 +-418.22 29.4704 564.423 +-420.609 29.1041 557.407 +-422.176 28.6882 549.443 +-423.821 28.2855 541.729 +-425.427 27.8875 534.106 +-425.924 27.4254 525.257 +-426.872 27.0012 517.133 +-439.667 27.3212 523.261 +-430.779 26.2994 503.691 +-432.409 25.9371 496.752 +-434.679 25.6183 490.647 +-436.206 25.2607 483.797 +-438.593 24.9574 477.989 +-440.298 24.6196 471.52 +-441.648 24.267 464.767 +-443.47 23.9452 458.602 +-443.465 23.5305 450.66 +-442.154 23.0549 441.553 +-445.068 22.8053 436.772 +-428.439 21.5733 413.176 +-2376.69 117.601 2252.32 +-2396.28 116.516 2231.53 +-2415.69 115.421 2210.56 +-383.017 17.9823 344.401 +-424.209 19.5694 374.797 +-383.921 17.4018 333.283 +-423.318 18.8519 361.056 +-383.788 16.7918 321.599 +-382.88 16.4573 315.193 +-381.89 16.1249 308.827 +-381.521 15.8239 303.063 +-382.737 15.592 298.62 +-383.269 15.3347 293.693 +-142.157 5.58564 106.977 +-142.685 5.50524 105.437 +-143.601 5.44011 104.19 +-143.04 5.32008 101.891 +-142.451 5.20093 99.6092 +-142.739 5.11524 97.9681 +-145.911 5.13174 98.2841 +-148.432 5.12271 98.1112 +-493.558 16.7127 320.084 +-495.071 16.4454 314.966 +-498.567 16.2444 311.116 +-500.244 15.9842 306.133 +-2808.51 87.9912 1685.22 +-505.259 15.5186 297.215 +-2837.53 85.4221 1636.02 +-2851.72 84.128 1611.24 +-405.649 11.7245 224.549 +-2879.44 81.5198 1561.28 +-2892.98 80.2063 1536.13 +-405.896 11.0175 211.009 +-405.408 10.7708 206.285 +-405.674 10.5464 201.986 +-385.852 9.81282 187.937 +-378.996 9.42587 180.526 +-379.834 9.23539 176.878 +-380 9.0298 172.94 +-380.309 8.82895 169.094 +-380.03 8.6161 165.017 +-380.537 8.42244 161.308 +-380.546 8.21904 157.413 +-380.794 8.02215 153.642 +-380.541 7.81608 149.695 +-379.594 7.59776 145.514 +-380.851 7.42475 142.2 +-379.448 7.20127 137.92 +-379.225 7.00219 134.107 +-380.666 6.8345 130.896 +-380.847 6.6445 127.257 +-380.232 6.44192 123.377 +-381.582 6.27335 120.148 +-380.896 6.07208 116.294 +-379.788 5.86591 112.345 +-380.371 5.68716 108.922 +-381.598 5.51801 105.682 +-379.995 5.30908 101.68 +-380.482 5.13077 98.2654 +-381.423 4.95871 94.9701 +-378.933 4.74358 90.8499 +-381.661 4.59443 87.9934 +-380.072 4.39351 84.1453 +-380.402 4.21607 80.7469 +-381.191 4.04385 77.4486 +-380.282 3.85433 73.8188 +-379.536 3.66784 70.2472 +-380.136 3.49501 66.937 +-380.312 3.31846 63.5558 +-380.26 3.14039 60.1454 +-380.474 2.96493 56.7849 +-379.57 2.78153 53.2724 +-381.31 2.61757 50.1321 +-380.443 2.4357 46.649 +-380.439 2.26013 43.2865 +-379.51 2.07986 39.8338 +-380.64 1.91109 36.6015 +-379.949 1.73327 33.196 +-380.822 1.56278 29.9306 +-381.768 1.39198 26.6595 +-380.689 1.21408 23.2522 +-379.979 1.03835 19.8867 +-381.037 0.86746 16.6138 +-3274.5 5.96237 114.192 +-146.85 0.200508 3.84016 +-144.378 0.131405 2.5167 +-146.994 0.0668882 1.28105 +95.3 -1.77636e-15 -2.27374e-13 +96.0963 0.051281 0.837051 +96.1853 0.102665 1.67578 +95.9671 0.153667 2.50829 +96.0415 0.205085 3.34756 +96.0085 0.256327 4.18398 +96.0682 0.307869 5.0253 +97.0187 0.362855 5.92282 +95.9657 0.410346 6.69801 +95.8038 0.46106 7.52581 +96.8301 0.518028 8.45569 +95.6576 0.563232 9.19354 +96.6675 0.621288 10.1412 +96.5752 0.672849 10.9828 +96.4755 0.724355 11.8235 +96.3684 0.775806 12.6634 +96.2541 0.827202 13.5023 +96.0334 0.877632 14.3254 +96.7935 0.937454 15.3019 +96.5574 0.988062 16.128 +96.2157 1.03742 16.9337 +96.064 1.08873 17.7711 +95.905 1.13994 18.6071 +95.7386 1.19108 19.4417 +95.565 1.24212 20.275 +95.5794 1.29572 21.1497 +95.196 1.34392 21.9366 +95.8757 1.40751 22.9746 +95.6712 1.45862 23.8089 +95.653 1.51268 24.6912 +96.3994 1.57949 25.7818 +95.9776 1.6276 26.5671 +96.7991 1.6973 27.7048 +96.3614 1.74541 28.4901 +96.1086 1.79677 29.3284 +95.7532 1.84615 30.1344 +97.2931 1.93307 31.5532 +97.0135 1.98492 32.3996 +96.7266 2.03661 33.2433 +97.4691 2.1106 34.451 +96.7883 2.15417 35.1622 +96.4772 2.20574 36.0039 +96.1588 2.25713 36.8428 +96.7634 2.33077 38.0448 +96.5198 2.38461 38.9235 +96.915 2.45474 40.0684 +96.653 2.50876 40.95 +96.383 2.56267 41.8301 +96.8358 2.63639 43.0334 +96.5469 2.69051 43.9167 +96.1593 2.74192 44.7559 +96.5766 2.81682 45.9785 +96.171 2.86825 46.8179 +96.4739 2.94128 48.0101 +96.0505 2.99266 48.8486 +96.4181 3.06921 50.0982 +96.7711 3.14638 51.3578 +96.3184 3.1979 52.1987 +96.558 3.27289 53.4228 +96.0873 3.32429 54.2619 +96.302 3.3999 55.496 +96.5886 3.47909 56.7886 +96.7742 3.55569 58.039 +97.0305 3.63595 59.349 +96.5079 3.68759 60.1919 +96.6527 3.76523 61.4593 +96.1116 3.81667 62.2988 +96.3138 3.89818 63.6294 +96.3342 3.97337 64.8566 +96.5052 4.0558 66.2021 +96.0046 4.11065 67.0974 +96.0656 4.19012 68.3947 +96.1112 4.26998 69.6982 +96.3021 4.35748 71.1264 +96.3154 4.43814 72.4431 +96.3924 4.52287 73.8261 +96.3737 4.60426 75.1545 +96.3391 4.68596 76.4882 +96.2884 4.76798 77.8269 +95.6043 4.81918 78.6626 +95.6023 4.90539 80.0698 +96.2674 5.0277 82.0662 +96.15 5.11097 83.4255 +96.091 5.19855 84.8551 +96.1629 5.29464 86.4235 +95.9198 5.37467 87.7298 +95.7342 5.45901 89.1065 +96.2572 5.58566 91.1738 +96.1757 5.67928 92.702 +96.0035 5.76897 94.1659 +95.7423 5.85457 95.5631 +95.5339 5.94468 97.0341 +95.9323 6.07461 99.1549 +95.6813 6.16549 100.638 +95.4116 6.25654 102.125 +95.7311 6.38838 104.276 +95.418 6.48011 105.774 +95.7486 6.61781 108.021 +95.3254 6.70556 109.454 +95.4039 6.83061 111.495 +95.004 6.92338 113.009 +95.2209 7.06347 115.296 +95.1532 7.18528 117.284 +95.4315 7.33632 119.749 +95.2428 7.4544 121.677 +95.0885 7.57773 123.69 +95.0266 7.71122 125.869 +95.0527 7.85499 128.216 +94.9273 7.98951 130.411 +94.8869 8.13444 132.777 +94.7548 8.27496 135.071 +94.5898 8.41591 137.371 +94.4477 8.56236 139.762 +94.8228 8.76036 142.994 +94.4949 8.89776 145.237 +94.7797 9.09742 148.496 +94.5376 9.25139 151.009 +94.729 9.45269 154.295 +94.3035 9.59719 156.653 +94.4529 9.80522 160.049 +94 9.95589 162.508 +94.3484 10.1972 166.448 +94.2955 10.4023 169.796 +94.0957 10.5973 172.979 +93.9413 10.8037 176.347 +93.6888 11.0053 179.637 +93.8398 11.2619 183.826 +93.6569 11.4867 187.495 +100.387 12.586 205.439 +116.539 14.9406 243.873 +116.643 15.2959 249.673 +116.653 15.6525 255.493 +116.489 15.999 261.149 +116.475 16.3802 267.372 +113.742 16.3855 267.458 +110.749 16.3495 266.871 +108.037 16.3513 266.9 +105.332 16.3514 266.902 +102.672 16.3556 266.97 +100.019 16.3583 267.013 +97.3731 16.3593 267.029 +94.7344 16.3588 267.021 +92.5265 16.4318 268.213 +92.526 16.9097 276.014 +92.1489 17.3422 283.074 +92.1363 17.869 291.672 +92.0386 18.4087 300.482 +91.737 18.9379 309.119 +91.7321 19.5621 319.309 +91.6895 20.2173 330.003 +91.2078 20.8147 339.755 +91.2385 21.573 352.133 +90.8175 22.2735 363.567 +90.8102 23.1298 377.544 +90.4753 23.9639 391.159 +90.3635 24.9247 406.841 +90.0258 25.899 422.745 +89.7355 26.9707 440.239 +87.7531 27.6058 450.605 +87.2179 28.776 469.705 +87.3103 30.2787 494.234 +89.2082 32.5979 532.089 +89.1676 34.4259 561.928 +89.8977 36.7824 600.393 +93.9558 40.8801 667.279 +88.2096 40.9711 668.764 +87.6484 43.6507 712.503 +86.8721 46.6243 761.04 +89.2359 51.9171 847.434 +85.5232 54.3123 886.53 +85.247 59.5825 972.555 +84.9006 65.9653 1076.74 +81.929 71.6449 1169.45 +81.4204 81.4025 1328.72 +79.1267 92.3249 1507 +71.5271 100.177 1635.17 +57.2282 100.211 1635.73 +42.8805 100.134 1634.48 +28.6115 100.233 1636.08 +14.301 100.208 1635.67 +7.99361e-14 100.236 1636.13 +-14.2914 100.14 1634.58 +-28.6115 100.233 1636.08 +-42.8805 100.134 1634.48 +-57.2352 100.224 1635.93 +-71.3831 99.9753 1631.88 +-85.9252 100.257 1636.48 +-100.065 100.043 1632.98 +-114.631 100.242 1636.23 +-123.722 96.129 1569.1 +-135.1 94.4266 1541.31 +-156.267 99.2385 1619.85 +-126.375 73.5246 1200.13 +-140.247 75.271 1228.64 +-159.174 79.2714 1293.93 +-114.354 53.1145 866.98 +-121.317 52.7851 861.602 +-128.89 52.7364 860.808 +-150.818 58.2281 950.448 +-540.811 197.62 3225.71 +-288.36 100.002 1632.31 +-145.187 47.9018 781.893 +-154.593 48.6328 793.826 +-175.205 52.6591 859.546 +-112.231 32.287 527.016 +-115.687 31.9095 520.853 +-120.034 31.793 518.951 +-124.963 31.8288 519.536 +-130.759 32.0694 523.464 +-820.42 193.986 3166.39 +-848.072 193.54 3159.13 +-875.66 193.081 3151.62 +-903.181 192.606 3143.88 +-930.633 192.116 3135.88 +-957.897 191.589 3127.28 +-164.516 31.9064 520.803 +-143.322 26.9729 440.275 +-145.262 26.5475 433.331 +-148.003 26.284 429.029 +-152.216 26.2847 429.041 +-1120.56 188.261 3072.95 +-401.758 65.7079 1072.54 +-1174.26 187.059 3053.34 +-145.721 22.6212 369.242 +-143.999 21.7941 355.742 +-144.348 21.3097 347.835 +-147.462 21.2432 346.749 +-151.405 21.2927 347.556 +-1332.75 183.045 2987.81 +-1358.83 182.327 2976.09 +-445.566 58.4293 953.732 +-1410.66 180.849 2951.97 +-512.105 64.2049 1048.01 +-143.542 17.6049 287.361 +-143.779 17.2552 281.654 +-142.588 16.7493 273.396 +-143.705 16.5268 269.764 +-146.535 16.5033 269.38 +-150.291 16.5795 270.625 +-410.189 44.3336 723.649 +-109.8 11.6293 189.823 +-109.679 11.3859 185.85 +-110.321 11.2273 183.261 +-111.867 11.1628 182.208 +-113.35 11.0923 181.058 +-114.875 11.0262 179.98 +-116.389 10.9594 178.889 +-118.556 10.953 178.784 +-120.338 10.9096 178.075 +-122.684 10.9155 178.172 +-127.162 11.1051 181.266 +-415.958 35.6592 582.06 +-417.151 35.1094 573.085 +-417.506 34.502 563.171 +-420.609 34.1314 557.121 +-422.541 33.6729 549.637 +-423.821 33.1714 541.452 +-425.053 32.676 533.365 +-425.672 32.1438 524.678 +-427.445 31.7078 517.562 +-441.788 32.1952 525.517 +-431.363 30.8842 504.117 +-431.949 30.3851 495.971 +-434.679 30.0435 490.396 +-436.206 29.6241 483.549 +-437.782 29.2144 476.862 +-440.298 28.8723 471.278 +-441.648 28.4589 464.529 +-443.053 28.055 457.936 +-445.428 27.7172 452.423 +-443.992 27.1498 443.161 +-445.568 26.7747 437.039 +-2356.92 139.179 2271.79 +-2376.69 137.915 2251.17 +-2396.28 136.642 2230.39 +-2415.69 135.358 2209.43 +-2434.91 134.064 2188.31 +-421.662 22.812 372.357 +-382.713 20.3436 332.065 +-423.47 22.1163 361.001 +-382.256 19.6137 320.151 +-381.646 19.2378 314.015 +-382.9 18.9603 309.486 +-382.226 18.5916 303.467 +-382.658 18.2815 298.406 +-382.555 17.9501 292.996 +-142.477 6.56523 107.163 +-142.685 6.4562 105.383 +-142.872 6.34747 103.609 +-143.04 6.23906 101.839 +-142.369 6.09582 99.501 +-142.162 5.97459 97.5223 +-145.828 6.01476 98.1779 +-147.598 5.97384 97.51 +-493.558 19.5996 319.92 +-495.83 19.3157 315.287 +-497.804 19.0213 310.481 +-500.5 18.7549 306.133 +-502.814 18.4745 301.556 +-2823.13 101.688 1659.84 +-518.23 18.2958 298.64 +-2851.72 98.66 1610.41 +-406.173 13.7675 224.725 +-406.101 13.4831 220.082 +-405.979 13.1999 215.459 +-405.896 12.9206 210.901 +-403.626 12.5758 205.273 +-405.405 12.36 201.75 +-388.549 11.5883 189.153 +-381.613 11.1304 181.679 +-380.377 10.8462 177.041 +-379.636 10.5794 172.686 +-381.405 10.3839 169.495 +-380.03 10.1044 164.933 +-378.512 9.82479 160.368 +-379.992 9.62477 157.103 +-380.794 9.40787 153.563 +-380.076 9.15502 149.436 +-380.527 8.93213 145.798 +-380.008 8.68802 141.813 +-379.73 8.45144 137.951 +-380.073 8.23014 134.339 +-380.382 8.00908 130.731 +-380.847 7.79225 127.192 +-380.518 7.56037 123.407 +-379.865 7.3239 119.547 +-380.418 7.11196 116.087 +-379.405 6.87226 112.175 +-380.371 6.66955 108.866 +-379.574 6.43687 105.068 +-379.995 6.22615 101.628 +-379.32 5.99867 97.9153 +-379.871 5.79159 94.5352 +-380.488 5.58581 91.1763 +-380.394 5.37018 87.6566 +-379.877 5.14979 84.0591 +-380.01 4.93925 80.6225 +-380.015 4.72775 77.1702 +-379.497 4.51078 73.6288 +-380.028 4.30698 70.3022 +-380.628 4.10403 66.9894 +-380.41 3.89269 63.5398 +-380.853 3.68859 60.2082 +-380.376 3.47618 56.7411 +-379.867 3.26456 53.2869 +-380.12 3.06013 49.95 +-379.252 2.84749 46.4792 +-380.041 2.64777 43.2192 +-380.405 2.44487 39.9073 +-380.64 2.2412 36.5828 +-380.248 2.03427 33.205 +-380.224 1.82985 29.8683 +-380.77 1.62816 26.5762 +-380.689 1.42379 23.2403 +-380.078 1.21804 19.8818 +-379.738 1.01384 16.5487 +-3274.5 6.99229 114.134 +-148.349 0.237544 3.87739 +-145.778 0.155598 2.5398 +-146.094 0.0779622 1.27256 +96.1 1.77636e-15 1.13687e-13 +96.0963 0.0588302 0.836554 +95.9854 0.117533 1.6713 +96.0671 0.176472 2.5094 +96.0415 0.235276 3.34558 +96.0085 0.294061 4.18149 +95.9683 0.352825 5.0171 +96.9189 0.415843 5.91321 +96.8635 0.475158 6.75666 +96.8007 0.534438 7.59961 +96.8301 0.594288 8.45067 +96.5534 0.652198 9.27414 +96.6675 0.71275 10.1352 +96.5752 0.771901 10.9763 +96.4755 0.83099 11.8165 +96.3684 0.890015 12.6558 +96.2541 0.948977 13.4943 +96.0334 1.00683 14.3169 +95.9045 1.06558 15.1524 +95.6697 1.12309 15.9702 +95.5264 1.18162 16.8024 +96.064 1.249 17.7605 +95.905 1.30776 18.5961 +95.7386 1.36642 19.4302 +95.565 1.42498 20.263 +95.5794 1.48646 21.1372 +96.0729 1.55597 22.1256 +96.0701 1.61799 23.0076 +95.6712 1.67335 23.7947 +95.653 1.73536 24.6766 +96.2062 1.80838 25.7149 +95.9776 1.86721 26.5513 +95.7417 1.9259 27.3859 +96.3614 2.00236 28.4732 +96.1086 2.06128 29.311 +96.6115 2.13691 30.3865 +96.4371 2.19814 31.2571 +96.0652 2.25487 32.0638 +96.7266 2.33643 33.2235 +96.338 2.39321 34.0311 +96.7883 2.47129 35.1413 +96.4772 2.53045 35.9825 +96.1588 2.58941 36.821 +96.7634 2.67389 38.0222 +96.5198 2.73565 38.9004 +97.0074 2.8188 40.0828 +96.653 2.87808 40.9257 +96.383 2.93993 41.8053 +96.8358 3.0245 43.0079 +96.5469 3.08658 43.8906 +96.1593 3.14556 44.7293 +96.5766 3.23149 45.9512 +96.171 3.29049 46.7901 +96.5634 3.37741 48.0261 +96.8524 3.46188 49.2272 +96.4181 3.52103 50.0684 +96.7711 3.60957 51.3273 +96.3184 3.66867 52.1678 +96.558 3.7547 53.3911 +96.8706 3.84475 54.6717 +96.302 3.9004 55.463 +96.5886 3.99126 56.7549 +96.0885 4.05023 57.5936 +96.2631 4.13822 58.8448 +96.5079 4.23045 60.1562 +96.6527 4.31952 61.4228 +96.1116 4.37853 62.2618 +96.2304 4.46817 63.5366 +96.4171 4.56222 64.8739 +96.5052 4.65286 66.1628 +96.6599 4.74797 67.5153 +96.0656 4.80696 68.3541 +96.1112 4.89858 69.6569 +96.3021 4.99896 71.0842 +96.2356 5.08727 72.34 +96.3131 5.18442 73.7215 +96.3737 5.28206 75.1099 +95.713 5.34085 75.9459 +96.2884 5.46988 77.7807 +95.6043 5.52862 78.6159 +96.2152 5.66359 80.5352 +96.2674 5.76784 82.0175 +96.2255 5.86797 83.4414 +96.091 5.96385 84.8048 +96.0886 6.06938 86.3055 +95.9198 6.16589 87.6778 +95.8073 6.26743 89.1217 +95.6769 6.36931 90.5703 +96.1757 6.51535 92.647 +95.9322 6.61331 94.04 +95.7423 6.71643 95.5064 +96.2348 6.86985 97.688 +95.9323 6.96887 99.0961 +95.6813 7.07313 100.579 +96.0936 7.22894 102.794 +95.7987 7.33402 104.288 +95.418 7.43406 105.711 +95.6823 7.58678 107.883 +95.3254 7.69271 109.389 +95.4039 7.83617 111.429 +95.6468 7.99632 113.706 +95.6026 8.13578 115.689 +95.1532 8.24304 117.215 +95.4315 8.41632 119.678 +95.1813 8.54624 121.526 +95.1494 8.69881 123.696 +95.0266 8.84641 125.794 +94.9932 9.00573 128.06 +94.9273 9.16567 130.334 +94.7707 9.32056 132.537 +94.7548 9.49314 134.991 +95.0996 9.70689 138.03 +95.0069 9.881 140.506 +94.8228 10.05 142.909 +94.3859 10.1959 144.984 +94.7259 10.4308 148.324 +94.5376 10.6133 150.919 +94.6245 10.8323 154.033 +94.3035 11.01 156.56 +94.4021 11.2426 159.868 +94.4 11.4701 163.103 +93.9544 11.6496 165.655 +94.344 11.9398 169.782 +94.0957 12.1574 172.876 +93.8943 12.388 176.155 +94.0582 12.6752 180.239 +93.7944 12.9136 183.628 +93.7015 13.1839 187.473 +99.9048 14.3694 204.33 +116.539 17.14 243.728 +116.643 17.5477 249.525 +116.239 17.8929 254.434 +116.449 18.3479 260.904 +116.634 18.8173 267.579 +113.742 18.7976 267.299 +111.093 18.8147 267.541 +107.999 18.7519 266.648 +105.332 18.7586 266.743 +102.637 18.7568 266.718 +100.019 18.7664 266.855 +97.4073 18.7741 266.965 +94.7678 18.7736 266.957 +92.2009 18.7844 267.111 +92.5578 19.4056 275.944 +92.3652 19.9419 283.571 +92.1062 20.4928 291.404 +92.0678 21.1253 300.398 +91.8222 21.7459 309.222 +91.484 22.3812 318.257 +91.5559 23.1597 329.327 +91.4408 23.9399 340.421 +91.2385 24.7488 351.924 +90.8901 25.5729 363.642 +90.7869 26.528 377.223 +90.2954 27.437 390.148 +90.212 28.5459 405.918 +90.0466 29.7186 422.592 +89.6757 30.9205 439.684 +87.6958 31.6491 450.045 +87.4913 33.1156 470.898 +87.2061 34.6947 493.352 +89.1917 37.3898 531.676 +89.1364 39.48 561.399 +89.5725 42.0447 597.867 +93.9279 46.8843 666.685 +88.3271 47.0652 669.258 +87.6362 50.0697 711.982 +86.8495 53.474 760.39 +89.0687 59.4483 845.344 +85.4944 62.2867 885.706 +85.1424 68.2699 970.785 +84.9712 75.7394 1077 +82.487 82.7517 1176.71 +81.2678 93.2113 1325.45 +81.7121 109.377 1555.32 +142.91 229.617 3265.12 +56.9839 114.473 1627.79 +85.7635 229.758 3267.11 +21.5712 86.6935 1232.77 +28.5907 229.828 3268.11 +8.26006e-14 114.641 1630.17 +-28.5907 229.828 3268.11 +-28.4719 114.427 1627.13 +-85.774 229.786 3267.51 +-56.8966 114.298 1625.3 +-142.91 229.617 3265.12 +-85.3181 114.204 1623.96 +-200.013 229.408 3262.13 +-112.754 113.116 1608.49 +-121.918 108.672 1545.29 +-133.967 107.419 1527.48 +-314.019 228.778 3253.19 +-126.385 84.3554 1199.52 +-140.349 86.4143 1228.8 +-159.259 90.9903 1293.86 +-114.602 61.0658 868.344 +-121.275 60.5348 860.794 +-129.067 60.5832 861.481 +-151.006 66.8832 951.067 +-540.811 226.712 3223.8 +-568.993 226.372 3218.97 +-145.351 55.0156 782.312 +-154.918 55.9093 795.02 +-175.444 60.4937 860.21 +-112.106 36.9989 526.118 +-115.73 36.6207 520.739 +-120.034 36.4733 518.643 +-124.963 36.5144 519.228 +-130.904 36.8313 523.734 +-820.42 222.543 3164.51 +-847.969 222.005 3156.86 +-875.66 221.504 3149.75 +-903.181 220.96 3142.01 +-930.633 220.398 3134.02 +-957.897 219.793 3125.42 +-142.083 31.6123 449.521 +-143.477 30.9771 440.488 +-145.262 30.4556 433.073 +-148.199 30.1931 429.34 +-153.918 30.4913 433.581 +-1120.56 215.975 3071.13 +-1147.38 215.281 3061.26 +-1174.26 214.597 3051.52 +-145.721 25.9513 369.023 +-144.036 25.009 355.624 +-144.501 24.4727 347.998 +-147.384 24.3575 346.359 +-151.684 24.4722 347.991 +-1332.75 209.991 2986.04 +-1358.83 209.168 2974.32 +-446.454 67.1644 955.065 +-1410.66 207.472 2950.21 +-1436.32 206.588 2937.64 +-143.765 20.2279 287.638 +-143.643 19.7766 281.219 +-142.634 19.2213 273.323 +-143.705 18.9598 269.604 +-146.917 18.9821 269.921 +-149.03 18.8607 268.196 +-409.795 50.8112 722.526 +-109.85 13.3474 189.797 +-109.73 13.068 185.825 +-110.733 12.9282 183.837 +-111.971 12.8181 182.271 +-113.35 12.7252 180.95 +-114.821 12.6436 179.789 +-116.389 12.5728 178.782 +-118.004 12.5069 177.846 +-119.891 12.4691 177.308 +-122.57 12.5108 177.902 +-127.047 12.7284 180.995 +-415.958 40.9087 581.714 +-417.445 40.3063 573.148 +-418.755 39.6996 564.521 +-420.849 39.1784 557.11 +-421.993 38.5798 548.598 +-424.375 38.1044 541.838 +-424.866 37.4698 532.814 +-425.484 36.8594 524.134 +-427.445 36.3756 517.255 +-443.009 37.0369 526.657 +-431.818 35.468 504.348 +-432.146 34.874 495.902 +-434.878 34.4821 490.329 +-436.608 34.0164 483.707 +-437.985 33.5306 476.799 +-440.094 33.1074 470.78 +-441.648 32.6484 464.253 +-443.47 32.2153 458.096 +-445.498 31.8025 452.225 +-446.962 31.3549 445.861 +-447.636 30.8589 438.807 +-447.357 30.3059 430.944 +-2376.69 158.218 2249.83 +-2396.28 156.758 2229.06 +-2415.69 155.285 2208.12 +-423.593 26.7559 380.464 +-383.99 23.8321 338.888 +-382.713 23.3385 331.868 +-383.245 22.962 326.516 +-383.558 22.5777 321.051 +-383.883 22.1993 315.669 +-381.656 21.6808 308.298 +-382.382 21.3372 303.412 +-383.446 21.016 298.843 +-383.269 20.631 293.368 +-141.918 7.50218 106.68 +-142.604 7.40249 105.262 +-143.601 7.31901 104.075 +-143.122 7.16159 101.836 +-142.369 6.9932 99.442 +-142.574 6.87399 97.7469 +-145.911 6.90414 98.1755 +-147.765 6.86101 97.5622 +-493.809 22.4963 319.893 +-496.252 22.1781 315.368 +-498.228 21.84 310.561 +-500.5 21.5159 305.951 +-502.814 21.1941 301.377 +-2823.13 116.658 1658.85 +-2837.53 114.925 1634.21 +-2851.72 113.184 1609.46 +-2865.69 111.434 1584.57 +-2879.44 109.675 1559.56 +-2892.98 107.908 1534.43 +-405.807 14.8194 210.73 +-406.032 14.5131 206.373 +-406.748 14.2264 202.297 +-388.998 13.3096 189.26 +-380.44 12.7296 181.013 +-380.831 12.4577 177.146 +-379.818 12.1427 172.667 +-379.213 11.844 168.42 +-381.222 11.6283 165.352 +-379.708 11.3068 160.78 +-379.992 11.0417 157.01 +-380.794 10.7928 153.472 +-381.192 10.5336 149.786 +-379.594 10.2219 145.353 +-380.851 9.98911 142.043 +-381.233 9.73404 138.416 +-380.356 9.44873 134.359 +-380.666 9.19499 130.751 +-381.7 8.95936 127.4 +-379.947 8.6603 123.148 +-382.154 8.45272 120.196 +-381.757 8.18769 116.427 +-379.405 7.88394 112.108 +-380.756 7.6591 108.911 +-379.574 7.38446 105.006 +-379.899 7.14097 101.543 +-380.192 6.89756 98.082 +-380.55 6.65607 94.648 +-379.808 6.39665 90.9592 +-380.589 6.1639 87.6494 +-380.17 5.91245 84.074 +-380.402 5.67221 80.6577 +-380.015 5.42373 77.1244 +-379.89 5.18018 73.6612 +-381.798 4.96404 70.5878 +-379.742 4.69723 66.7937 +-380.706 4.46922 63.5514 +-380.458 4.22721 60.1101 +-380.178 3.98584 56.6779 +-380.461 3.751 53.3386 +-381.012 3.51887 50.0376 +-379.847 3.27181 46.5245 +-379.942 3.03677 43.1823 +-381.499 2.81286 39.9983 +-380.739 2.57181 36.5707 +-380.248 2.33374 33.1853 +-380.224 2.09922 29.8506 +-380.471 1.86638 26.5396 +-381.287 1.63596 23.263 +-380.078 1.39735 19.87 +-381.037 1.16706 16.5954 +-3274.5 8.02165 114.066 +-148.349 0.272513 3.87509 +-145.578 0.178259 2.53481 +-145.494 0.0890716 1.26658 +95.2 5.32907e-15 -1.7053e-13 +96.0963 0.0663746 0.835989 +96.0854 0.132744 1.67192 +96.0671 0.199103 2.50771 +96.0415 0.265448 3.34332 +96.1084 0.332118 4.18303 +96.0682 0.398485 5.01893 +95.9208 0.464339 5.84836 +95.8659 0.530572 6.68257 +95.9034 0.597386 7.52409 +96.8301 0.6705 8.44496 +96.653 0.736595 9.27742 +96.6675 0.804153 10.1283 +96.5752 0.87089 10.9689 +96.4755 0.937556 11.8085 +96.3684 1.00415 12.6473 +96.155 1.06957 13.4713 +96.0334 1.13595 14.3073 +95.9045 1.20223 15.1421 +95.6697 1.26712 15.9594 +96.2157 1.34277 16.9122 +96.064 1.40917 17.7485 +95.905 1.47547 18.5835 +95.7386 1.54165 19.4171 +95.565 1.60772 20.2493 +95.3841 1.67367 21.0799 +96.0729 1.75551 22.1106 +96.0701 1.82549 22.992 +95.6712 1.88794 23.7787 +95.4594 1.95395 24.6101 +96.3994 2.04439 25.7491 +95.9776 2.10666 26.5334 +95.7417 2.17287 27.3674 +96.3614 2.25914 28.454 +96.1086 2.32562 29.2912 +95.8486 2.39191 30.1261 +96.4371 2.48003 31.236 +96.16 2.54654 32.0738 +96.632 2.63348 33.1687 +96.4322 2.70276 34.0413 +96.7883 2.78821 35.1176 +96.4772 2.85496 35.9582 +97.0924 2.94985 37.1534 +96.7634 3.01679 37.9965 +96.5198 3.08647 38.8742 +97.0074 3.18028 40.0557 +96.7451 3.25025 40.937 +96.383 3.31695 41.777 +96.9272 3.41559 43.0194 +96.5469 3.48241 43.861 +96.1593 3.54895 44.6991 +96.5766 3.6459 45.9202 +96.171 3.71246 46.7586 +96.5634 3.81053 47.9937 +96.8524 3.90583 49.194 +96.4181 3.97257 50.0346 +96.6828 4.06874 51.2458 +96.3184 4.13914 52.1325 +96.558 4.23621 53.3551 +96.7836 4.33391 54.5857 +96.3886 4.40455 55.4754 +96.5886 4.5031 56.7166 +96.7742 4.60225 57.9654 +97.0305 4.70613 59.2738 +96.5079 4.77297 60.1156 +96.6527 4.87346 61.3813 +96.1116 4.94003 62.2198 +96.3138 5.04554 63.5487 +96.4171 5.14728 64.8301 +96.5052 5.24955 66.1181 +95.9227 5.316 66.9551 +96.0656 5.42341 68.3079 +96.1112 5.52678 69.6098 +95.4982 5.59294 70.4432 +96.3154 5.74443 72.3512 +96.3924 5.8541 73.7325 +96.3737 5.95943 75.0592 +96.3391 6.06519 76.3912 +95.6667 6.13149 77.2263 +95.6814 6.24265 78.6263 +95.6023 6.3492 79.9682 +95.583 6.46125 81.3795 +95.6217 6.57895 82.8619 +96.091 6.72865 84.7475 +96.1629 6.85302 86.3139 +95.9935 6.96195 87.6859 +95.7342 7.06577 88.9935 +95.6769 7.18611 90.5092 +95.4564 7.2959 91.892 +95.9322 7.46141 93.9766 +95.2473 7.53858 94.9485 +96.1648 7.74521 97.551 +95.9323 7.86257 99.0292 +95.7501 7.98597 100.583 +96.0936 8.15598 102.725 +95.7987 8.27454 104.218 +96.0202 8.44036 106.306 +95.6823 8.55971 107.81 +95.9158 8.73304 109.993 +95.5338 8.85311 111.505 +95.6468 9.02177 113.629 +95.6026 9.17912 115.611 +95.6567 9.34937 117.755 +95.307 9.4832 119.441 +95.1813 9.64221 121.444 +95.2103 9.82061 123.691 +94.6053 9.93664 125.152 +94.9932 10.1606 127.973 +94.9273 10.3411 130.246 +94.8869 10.5287 132.609 +94.7548 10.7105 134.899 +94.5898 10.893 137.197 +95.0069 11.1481 140.411 +94.8228 11.3388 142.813 +94.4949 11.5167 145.053 +94.7797 11.7751 148.307 +94.4846 11.9676 150.733 +94.6245 12.2214 153.929 +94.3035 12.4219 156.455 +94.4021 12.6844 159.76 +94.4 12.9411 162.993 +93.9052 13.1366 165.456 +94.2955 13.4641 169.58 +94.1434 13.7234 172.847 +93.8474 13.9696 175.947 +94.5199 14.3709 181.001 +93.7944 14.5696 183.505 +93.7462 14.8818 187.436 +98.6773 16.013 201.684 +116.582 19.3452 243.653 +116.6 19.7908 249.266 +116.156 20.1731 254.08 +116.367 20.6864 260.545 +116.395 21.187 266.85 +113.781 21.2155 267.21 +110.749 21.1617 266.532 +107.999 21.1567 266.468 +105.332 21.1642 266.563 +102.637 21.1622 266.538 +100.019 21.173 266.675 +97.4073 21.1817 266.784 +94.7344 21.1737 266.683 +92.2009 21.1934 266.931 +92.6212 21.9093 275.948 +92.3034 22.4843 283.19 +91.8656 23.0605 290.447 +91.9509 23.8042 299.814 +91.8506 24.5422 309.109 +91.7321 25.3199 318.904 +91.2886 26.0534 328.143 +91.3372 26.9794 339.806 +91.1634 27.8997 351.397 +90.6723 28.7833 362.526 +90.5768 29.8607 376.096 +90.4528 31.0095 390.565 +90.1904 32.199 405.547 +90.0881 33.5451 422.501 +89.7156 34.9013 439.583 +87.6386 35.6845 449.447 +87.309 37.2845 469.599 +87.0498 39.0738 492.135 +89.0597 42.1222 530.53 +89.1207 44.5351 560.921 +89.5282 47.413 597.168 +94.0671 52.9751 667.222 +88.3401 53.1087 668.905 +87.4047 56.3414 709.621 +87.1438 60.536 762.453 +88.8492 66.9068 842.692 +85.504 70.2823 885.207 +84.9943 76.8908 968.441 +84.9712 85.4523 1076.27 +82.2847 93.1351 1173.04 +80.9748 104.786 1319.78 +79.9275 120.708 1520.33 +142.928 259.095 3263.31 +114.355 259.184 3264.43 +85.774 259.254 3265.3 +21.5223 97.5895 1229.14 +28.5907 259.301 3265.9 +1.67866e-13 259.342 3266.42 +-28.5942 259.333 3266.3 +-57.1793 259.271 3265.52 +-85.774 259.254 3265.3 +-114.355 259.184 3264.43 +-142.928 259.095 3263.31 +-171.489 258.987 3261.94 +-200.038 258.859 3260.33 +-228.543 258.679 3258.07 +-120.929 121.614 1531.73 +-133.479 120.753 1520.88 +-314.019 258.117 3250.99 +-126.511 95.2673 1199.89 +-140.44 97.5595 1228.76 +-159.344 102.714 1293.68 +-114.393 68.7713 866.176 +-121.401 68.3684 861.101 +-129.067 68.3524 860.9 +-151.163 75.5385 951.409 +-540.811 255.785 3221.62 +-568.993 255.402 3216.8 +-145.46 62.1176 782.372 +-154.746 63.0092 793.603 +-175.384 68.2282 859.336 +-112.168 41.767 526.056 +-115.73 41.3169 520.387 +-120.034 41.1506 518.293 +-125.173 41.2663 519.749 +-131.049 41.6006 523.96 +-820.42 251.082 3162.38 +-330.641 97.6655 1230.1 +-875.553 249.879 3147.24 +-903.181 249.296 3139.89 +-930.633 248.662 3131.9 +-136.216 35.2635 444.144 +-142.144 35.6814 449.408 +-143.6 34.9797 440.57 +-145.008 34.3012 432.024 +-148.427 34.1174 429.71 +-152.783 34.1479 430.094 +-1120.56 243.672 3069.05 +-402.353 85.1737 1072.76 +-1174.26 242.117 3049.46 +-145.684 29.272 368.681 +-144.336 28.2749 356.123 +-144.616 27.633 348.039 +-147.579 27.5176 346.584 +-151.804 27.6323 348.03 +-1332.75 236.921 2984.02 +-1358.83 235.991 2972.32 +-446.116 75.7202 953.697 +-1410.66 234.078 2948.22 +-512.807 83.2164 1048.11 +-143.943 22.8503 287.8 +-143.733 22.3269 281.208 +-142.588 21.6792 273.05 +-144.034 21.4401 270.038 +-146.917 21.4163 269.739 +-149.564 21.3556 268.974 +-409.549 57.2928 721.604 +-109.9 15.0659 189.755 +-109.73 14.7439 185.7 +-110.785 14.593 183.799 +-111.919 14.4552 182.063 +-113.827 14.4176 181.59 +-114.821 14.265 179.668 +-116.335 14.1785 178.578 +-118.501 14.1702 178.473 +-120.282 14.114 177.767 +-122.627 14.1217 177.863 +-126.76 14.3283 180.465 +-416.596 46.2257 582.214 +-417.034 45.4304 572.197 +-418.577 44.7716 563.899 +-420.609 44.1774 556.415 +-422.176 43.5462 548.465 +-424.191 42.9722 541.236 +-425.053 42.2936 532.689 +-426.616 41.697 525.174 +-427.445 41.0405 516.905 +-444.231 41.9017 527.752 +-433.052 40.1308 505.448 +-432.54 39.3822 496.019 +-434.679 38.8863 489.774 +-436.608 38.3787 483.381 +-438.255 37.854 476.772 +-440.094 37.3531 470.462 +-441.855 36.8525 464.157 +-443.748 36.3693 458.072 +-445.778 35.9034 452.204 +-446.679 35.3535 445.278 +-448.492 34.8828 439.349 +-449.012 34.3188 432.246 +-451.183 33.8875 426.814 +-2396.28 176.86 2227.56 +-421.575 30.5748 385.09 +-2434.91 173.524 2185.53 +-2453.95 171.835 2164.26 +-383.921 26.4144 332.69 +-385.146 26.0351 327.913 +-382.486 25.4019 319.937 +-382.88 24.9807 314.632 +-382.2 24.4961 308.529 +-382.93 24.108 303.64 +-382.422 23.6477 297.844 +-384.221 23.3345 293.898 +-142.077 8.47376 106.727 +-142.524 8.34704 105.131 +-143.601 8.25761 104.005 +-142.063 8.02024 101.015 +-142.287 7.88547 99.3177 +-142.574 7.75552 97.6809 +-145.828 7.7851 98.0534 +-148.598 7.78456 98.0467 +-493.809 25.3812 319.677 +-496.336 25.0265 315.209 +-498.567 24.6576 310.563 +-500.5 24.2751 305.745 +-2808.51 133.563 1682.23 +-506.724 23.6242 297.547 +-2837.53 129.663 1633.11 +-2851.72 127.699 1608.37 +-403.724 17.7122 223.086 +-2879.44 123.74 1558.51 +-2892.98 121.746 1533.39 +-2906.29 119.744 1508.17 +-405.497 16.3527 205.963 +-2932.25 115.711 1457.38 +-389.178 15.0234 189.22 +-377.371 14.2463 179.432 +-380.377 14.0386 176.817 +-380.182 13.713 172.715 +-380.857 13.4209 169.037 +-379.571 13.0626 164.524 +-380.721 12.7907 161.099 +-380.916 12.4879 157.285 +-381.073 12.1858 153.48 +-379.238 11.8235 148.917 +-379.874 11.5413 145.363 +-380.851 11.2701 141.947 +-381.703 10.9959 138.493 +-380.921 10.6763 134.468 +-381.233 10.3896 130.857 +-380.183 10.0681 126.808 +-381.374 9.80763 123.527 +-380.819 9.50339 119.695 +-380.896 9.21687 116.087 +-380.651 8.92419 112.4 +-380.948 8.64567 108.892 +-380.441 8.35053 105.175 +-379.995 8.05871 101.5 +-381.063 7.79994 98.2404 +-380.065 7.50007 94.4635 +-380.683 7.23359 91.1072 +-380.297 6.94901 87.523 +-380.267 6.67238 84.0387 +-380.402 6.39961 80.6032 +-380.505 6.12716 77.1717 +-380.086 5.8475 73.6494 +-380.028 5.57467 70.213 +-379.84 5.30098 66.766 +-380.312 5.03713 63.4427 +-380.062 4.76436 60.0072 +-379.584 4.48998 56.5513 +-380.659 4.23424 53.3303 +-380.021 3.9598 49.8737 +-379.847 3.69139 46.4931 +-380.836 3.43427 43.2547 +-379.112 3.15373 39.7213 +-379.644 2.89328 36.4409 +-379.65 2.62889 33.1109 +-381.52 2.3765 29.9321 +-379.174 2.09855 26.4312 +-380.988 1.84431 23.2291 +-380.278 1.57737 19.867 +-379.538 1.31155 16.519 +-3274.5 9.05035 113.989 +-147.449 0.305596 3.84899 +-145.478 0.200981 2.53136 +-146.394 0.101116 1.27355 +96.1 1.77636e-15 1.13687e-13 +96.0963 0.0739136 0.835356 +96.0854 0.147822 1.67065 +96.0671 0.221718 2.50581 +96.0415 0.295598 3.34079 +96.1084 0.36984 4.17986 +96.0682 0.443746 5.01513 +96.0206 0.517618 5.85001 +95.9657 0.591451 6.68445 +95.8038 0.664547 7.51058 +96.8301 0.746658 8.43857 +96.653 0.820259 9.2704 +96.5681 0.894566 10.1102 +96.7739 0.971801 10.9831 +96.4755 1.04405 11.7996 +96.3684 1.11821 12.6377 +96.2541 1.19228 13.475 +96.1323 1.26628 14.3112 +95.8058 1.3374 15.115 +95.4724 1.40813 15.9144 +95.5264 1.48457 16.7783 +96.064 1.56923 17.7351 +95.905 1.64305 18.5695 +95.7386 1.71675 19.4024 +95.565 1.79033 20.2339 +95.3841 1.86377 21.0639 +96.0729 1.9549 22.0939 +96.0701 2.03283 22.9746 +95.8652 2.10665 23.8089 +96.4275 2.19795 24.8408 +96.3994 2.27659 25.7296 +96.1703 2.35065 26.5666 +96.6068 2.44154 27.5938 +96.3614 2.51574 28.4324 +96.9693 2.61296 29.5311 +95.8486 2.66359 30.1033 +96.342 2.75899 31.1816 +96.16 2.83579 32.0495 +96.7266 2.93546 33.176 +96.4322 3.00974 34.0155 +97.0702 3.11395 35.1932 +96.4772 3.17923 35.931 +97.1857 3.28805 37.1609 +96.7634 3.35945 37.9678 +96.4271 3.43375 38.8075 +97.0074 3.54151 40.0254 +96.653 3.61599 40.8671 +96.383 3.6937 41.7454 +96.8358 3.79996 42.9463 +96.5469 3.87795 43.8278 +96.1593 3.95205 44.6653 +96.5766 4.06001 45.8854 +96.89 4.16505 47.0725 +96.4739 4.23941 47.9129 +96.8524 4.34946 49.1568 +97.2164 4.46041 50.4107 +96.6828 4.53088 51.207 +96.3184 4.60928 52.0931 +96.558 4.71737 53.3147 +96.0873 4.79145 54.152 +96.3886 4.90483 55.4334 +96.5886 5.01457 56.6737 +96.0885 5.08867 57.5111 +97.0305 5.24066 59.2289 +96.4231 5.31042 60.0173 +96.737 5.43175 61.3885 +96.1116 5.50114 62.1727 +96.3138 5.61863 63.5006 +96.4171 5.73192 64.781 +96.5876 5.85079 66.1245 +95.9227 5.9198 66.9044 +96.0656 6.03942 68.2562 +96.1112 6.15452 69.5572 +96.3021 6.28064 70.9825 +96.2356 6.39159 72.2365 +96.3924 6.51902 73.6767 +95.6645 6.58749 74.4504 +95.713 6.71019 75.8372 +95.6667 6.82793 77.1678 +96.3759 7.00216 79.137 +96.2918 7.12134 80.484 +96.2674 7.24665 81.9001 +95.6217 7.3262 82.7992 +95.5667 7.45203 84.2213 +96.1629 7.6314 86.2485 +95.9198 7.74676 87.5522 +95.8073 7.87433 88.9941 +96.3297 8.05693 91.0578 +96.1038 8.1797 92.4452 +96.0035 8.31507 93.9753 +95.7423 8.43846 95.3697 +95.5339 8.56834 96.8377 +95.8629 8.74928 98.8826 +95.7501 8.89304 100.507 +95.4798 9.02437 101.992 +95.7987 9.21439 104.139 +95.3511 9.33355 105.486 +95.6823 9.53195 107.728 +95.3254 9.66504 109.232 +95.5338 9.85867 111.421 +95.1326 9.99255 112.934 +95.6026 10.2217 115.524 +95.2791 10.3702 117.202 +95.307 10.5603 119.351 +95.3044 10.7513 121.509 +95.1494 10.9291 123.518 +95.0868 11.1215 125.693 +94.9337 11.3076 127.797 +94.8685 11.5085 130.067 +94.9449 11.7318 132.59 +94.8122 11.9343 134.879 +95.043 12.1883 137.75 +94.5595 12.356 139.644 +94.7676 12.6193 142.621 +94.3859 12.81 144.776 +94.7259 13.1051 148.111 +94.5376 13.3345 150.703 +94.102 13.5343 152.962 +94.355 13.8404 156.422 +94.4021 14.1251 159.639 +94.4 14.411 162.87 +94.3976 14.7054 166.198 +93.9076 14.9317 168.755 +94.1434 15.2822 172.716 +93.8943 15.5641 175.903 +94.1044 15.9328 180.069 +93.7944 16.2245 183.366 +93.88 16.5957 187.561 +98.4143 17.7842 200.994 +116.496 21.5266 243.29 +116.6 22.0387 249.077 +116.57 22.5446 254.795 +116.327 23.028 260.257 +116.355 23.5853 266.557 +113.742 23.6172 266.916 +111.093 23.6386 267.158 +108.336 23.6333 267.098 +105.662 23.6418 267.195 +102.672 23.5741 266.43 +99.9842 23.5696 266.379 +97.4073 23.5876 266.582 +94.7344 23.5786 266.481 +92.2986 23.6256 267.012 +92.3991 24.3393 275.077 +92.3034 25.0381 282.975 +92.0761 25.7385 290.892 +92.0971 26.5501 300.064 +91.8222 27.3213 308.78 +91.484 28.1196 317.801 +91.6093 29.1146 329.047 +91.3372 30.0438 339.548 +91.1634 31.0686 351.131 +90.7207 32.0697 362.445 +90.5301 33.2352 375.618 +90.2279 34.4458 389.299 +90.1687 35.8476 405.142 +90.0881 37.3553 422.182 +89.5959 38.8137 438.664 +87.5241 39.6857 448.52 +87.2361 41.4848 468.852 +87.1019 43.538 492.058 +89.0597 46.9066 530.129 +88.9643 49.5065 559.512 +89.5282 52.7983 596.716 +94.0532 58.9834 666.619 +88.2357 59.071 667.609 +87.5266 62.8283 710.073 +86.8495 67.1842 759.302 +88.6819 74.3659 840.468 +85.5136 78.2739 884.636 +85.1773 85.8087 969.792 +84.8614 95.0357 1074.07 +82.2917 103.722 1172.25 +80.4986 116.001 1311.02 +78.7813 132.491 1497.39 +142.928 288.524 3260.84 +114.355 288.623 3261.96 +85.774 288.7 3262.83 +21.5415 108.771 1229.31 +28.5942 288.789 3263.83 +1.63425e-13 288.799 3263.95 +-28.5942 288.789 3263.83 +-57.1863 288.755 3263.45 +-85.774 288.7 3262.83 +-114.355 288.623 3261.96 +-142.928 288.524 3260.84 +-171.489 288.403 3259.48 +-200.038 288.261 3257.86 +-228.571 288.096 3256 +-257.087 287.909 3253.89 +-132.817 133.801 1512.19 +-314.019 287.435 3248.53 +-126.511 106.088 1198.99 +-140.53 108.71 1228.62 +-159.405 114.424 1293.2 +-114.719 76.8011 867.99 +-121.526 76.2124 861.337 +-129.067 76.1161 860.248 +-151.21 84.1446 950.985 +-540.811 284.838 3219.18 +-568.993 284.412 3214.36 +-145.552 69.2164 782.27 +-154.918 70.2438 793.881 +-175.504 76.0296 859.271 +-112.418 46.6143 526.826 +-115.925 46.0873 520.869 +-120.034 45.8246 517.901 +-124.987 45.8848 518.581 +-130.928 46.283 523.08 +-820.42 279.6 3159.98 +-847.969 278.924 3152.34 +-875.553 278.261 3144.85 +-903.181 277.612 3137.51 +-930.633 276.906 3129.53 +-141.83 40.8871 462.098 +-164.246 45.9124 518.893 +-143.384 38.8941 439.573 +-145.294 38.2724 432.547 +-148.427 37.9926 429.384 +-152.917 38.0598 430.143 +-1120.56 271.349 3066.73 +-1147.38 270.477 3056.88 +-1174.26 269.617 3047.16 +-145.684 32.5967 368.402 +-144.336 31.4865 355.854 +-144.693 30.788 347.96 +-147.775 30.6836 346.78 +-152.043 30.8194 348.314 +-1332.75 263.831 2981.76 +-1358.83 262.796 2970.07 +-446.454 84.3847 953.698 +-1410.66 260.666 2945.99 +-1436.32 259.555 2933.44 +-143.765 25.4142 287.226 +-143.688 24.855 280.907 +-142.68 24.1572 273.019 +-144.081 23.8832 269.922 +-147.347 23.9186 270.323 +-150.097 23.866 269.728 +-409.401 63.7773 720.798 +-109.5 16.7161 188.922 +-109.73 16.4185 185.559 +-110.785 16.2505 183.659 +-111.815 16.082 181.755 +-113.35 15.9878 180.691 +-114.713 15.8703 179.363 +-116.335 15.7889 178.443 +-118.059 15.7209 177.674 +-120.282 15.7172 177.632 +-123.08 15.7839 178.386 +-126.646 15.9413 180.165 +-416.19 51.426 581.206 +-417.445 50.6405 572.328 +-419.41 49.9561 564.593 +-420.849 49.2234 556.313 +-422.176 48.4923 548.05 +-424.375 47.874 541.062 +-425.613 47.1595 532.987 +-426.616 46.4331 524.777 +-427.826 45.7428 516.975 +-443.845 46.6205 526.895 +-432.662 44.6487 504.611 +-432.868 43.8885 496.019 +-435.275 43.3625 490.074 +-437.21 42.7969 483.681 +-438.39 42.1665 476.557 +-440.571 41.6408 470.615 +-441.855 41.0383 463.806 +-443.47 40.475 457.44 +-445.778 39.9814 451.862 +-447.033 39.4002 445.293 +-448.492 38.8449 439.017 +-449.012 38.2168 431.919 +-452.561 37.8517 427.793 +-452.415 37.1837 420.242 +-453.426 36.6199 413.871 +-382.348 30.3428 342.928 +-423.01 32.9852 372.792 +-382.864 29.3337 331.524 +-382.56 28.7977 325.465 +-382.869 28.3154 320.015 +-383.112 27.8349 314.584 +-382.667 27.3117 308.671 +-382.774 26.8353 303.287 +-383.21 26.3879 298.231 +-382.555 25.8722 292.403 +-142.636 9.47334 107.066 +-142.685 9.30561 105.17 +-143.601 9.19553 103.926 +-142.877 8.98233 101.516 +-143.188 8.83672 99.8708 +-142.491 8.63142 97.5505 +-145.745 8.66442 97.9235 +-147.931 8.62983 97.5326 +-493.809 28.2641 319.435 +-496.252 27.8643 314.917 +-498.567 27.4583 310.328 +-500.244 27.0185 305.357 +-502.043 26.5873 300.484 +-505.862 26.2628 296.816 +-2837.53 144.391 1631.87 +-2851.72 142.203 1607.15 +-405.649 19.8181 223.98 +-2879.44 137.795 1557.33 +-2892.98 135.574 1532.23 +-2906.29 133.345 1507.03 +-404.606 18.1701 205.355 +-403.973 17.7521 200.63 +-387.38 16.6525 188.203 +-379.627 15.9593 180.368 +-380.015 15.6183 176.514 +-380.273 15.2742 172.626 +-380.309 14.9237 168.665 +-381.222 14.6096 165.115 +-380.353 14.2297 160.822 +-380.546 13.8928 157.014 +-380.145 13.5369 152.991 +-380.541 13.2117 149.316 +-380.527 12.8743 145.503 +-379.352 12.5008 141.282 +-379.73 12.1814 137.672 +-380.639 11.8801 134.266 +-380.571 11.5496 130.531 +-381.131 11.2397 127.029 +-380.898 10.9079 123.279 +-381.105 10.5907 119.694 +-380.609 10.256 115.911 +-380.651 9.93782 112.315 +-380.371 9.61312 108.646 +-379.574 9.27776 104.855 +-380.478 8.9855 101.552 +-380.579 8.67485 98.0414 +-380.162 8.35408 94.4161 +-380.099 8.04285 90.8987 +-381.174 7.75615 87.6584 +-381.341 7.45123 84.2123 +-380.597 7.13016 80.5836 +-380.015 6.81432 77.014 +-379.399 6.49991 73.4607 +-380.028 6.20785 70.1599 +-379.742 5.90155 66.6981 +-379.523 5.59762 63.2631 +-379.569 5.29861 59.8838 +-380.771 5.01559 56.6851 +-380.857 4.71763 53.3177 +-380.913 4.41992 49.953 +-380.443 4.11711 46.5307 +-381.333 3.82933 43.2783 +-380.405 3.52391 39.8265 +-379.644 3.22191 36.4133 +-379.949 2.92979 33.1118 +-381.52 2.64643 29.9094 +-380.471 2.3449 26.5016 +-380.289 2.05003 23.169 +-381.476 1.76207 19.9145 +-380.637 1.46475 16.5543 +-3274.5 10.0783 113.903 +-147.749 0.340998 3.85389 +-145.778 0.22427 2.53466 +-146.094 0.112371 1.26999 +95.2 5.32907e-15 -1.7053e-13 +96.1963 0.0815312 0.835524 +96.1853 0.163056 1.67098 +96.0671 0.244314 2.50371 +96.0415 0.325724 3.33799 +96.0085 0.407108 4.172 +96.0682 0.48897 5.01092 +95.9208 0.569778 5.83903 +96.8635 0.657825 6.74133 +96.8007 0.739894 7.58237 +96.7305 0.821906 8.42281 +96.653 0.903855 9.26262 +96.6675 0.986755 10.1122 +95.5816 1.05764 10.8386 +96.4755 1.15045 11.7897 +96.3684 1.23217 12.6271 +96.2541 1.3138 13.4637 +96.0334 1.39389 14.2845 +95.8058 1.4737 15.1024 +96.5574 1.56928 16.0818 +95.5264 1.63587 16.7643 +95.1791 1.71323 17.557 +95.905 1.8105 18.5539 +95.7386 1.89172 19.3861 +95.565 1.97279 20.217 +95.3841 2.05371 21.0462 +96.0729 2.15413 22.0753 +96.0701 2.24001 22.9554 +95.6712 2.31664 23.7407 +95.4594 2.39764 24.5708 +96.3994 2.50861 25.708 +96.1703 2.59022 26.5443 +95.7417 2.66627 27.3237 +96.3614 2.77213 28.4086 +96.1086 2.8537 29.2445 +96.7069 2.96133 30.3475 +96.4371 3.04318 31.1862 +96.16 3.12479 32.0226 +96.7266 3.23463 33.1482 +96.4322 3.31648 33.987 +96.7883 3.42134 35.0616 +96.4772 3.50324 35.9009 +97.1857 3.62315 37.1297 +96.7634 3.70182 37.9359 +97.3543 3.82007 39.1478 +97.0074 3.90244 39.9918 +96.653 3.98451 40.8329 +96.383 4.07014 41.7104 +96.9272 4.19118 42.9508 +96.5469 4.27317 43.791 +96.1593 4.35482 44.6278 +96.5766 4.47379 45.8469 +96.89 4.58952 47.033 +96.4739 4.67146 47.8727 +96.8524 4.79274 49.1155 +96.4181 4.87464 49.9548 +96.7711 4.9972 51.2109 +96.4062 5.08366 52.0969 +96.558 5.19813 53.27 +96.8706 5.32281 54.5476 +96.3886 5.40471 55.3869 +96.5886 5.52563 56.6261 +96.8599 5.65229 57.9242 +96.3483 5.73417 58.7632 +96.5079 5.85678 60.0197 +96.737 5.98532 61.337 +96.0278 6.0565 62.0664 +96.2304 6.18589 63.3924 +96.3342 6.31066 64.671 +95.7635 6.39206 65.5053 +95.9227 6.52312 66.8483 +96.0656 6.65492 68.199 +96.1112 6.78176 69.4988 +96.3021 6.92073 70.9229 +96.3154 7.04884 72.2358 +95.6784 7.13019 73.0695 +96.4525 7.31864 75.0008 +96.3391 7.44243 76.2693 +96.3661 7.5788 77.6668 +96.2987 7.70961 79.0073 +96.2152 7.84087 80.3524 +96.2674 7.98519 81.8314 +96.2255 8.12381 83.2521 +96.091 8.25655 84.6123 +96.0886 8.40265 86.1096 +96.5833 8.59531 88.0839 +95.7342 8.67022 88.8516 +96.3297 8.87805 90.9814 +96.1757 9.02006 92.4367 +95.9322 9.15569 93.8266 +95.7423 9.29846 95.2897 +95.4638 9.43466 96.6855 +95.8629 9.64096 98.7996 +95.7501 9.79937 100.423 +95.4798 9.94408 101.906 +95.7987 10.1535 104.052 +95.418 10.292 105.471 +95.7486 10.5107 107.712 +95.3254 10.65 109.141 +95.5338 10.8634 111.327 +95.7754 11.0853 113.601 +95.3481 11.2335 115.12 +95.2791 11.4271 117.104 +95.2447 11.629 119.173 +95.2428 11.8394 121.329 +95.1494 12.0429 123.415 +95.0266 12.2473 125.509 +94.9932 12.4678 127.769 +94.9861 12.6971 130.119 +94.8288 12.9116 132.317 +94.6975 13.1347 134.603 +95.043 13.4305 137.634 +94.5595 13.6152 139.527 +94.7676 13.9054 142.501 +94.4404 14.1236 144.738 +94.7259 14.4407 147.987 +94.5376 14.6934 150.577 +94.102 14.9137 152.834 +94.3035 15.2426 156.205 +94.4529 15.573 159.591 +94.4 15.8796 162.733 +94.3484 16.1957 165.972 +94.2955 16.5214 169.31 +94.1434 16.8397 172.571 +93.8943 17.1504 175.755 +94.1044 17.5566 179.918 +93.8398 17.8866 183.3 +93.9693 18.3044 187.582 +97.6253 19.4396 199.215 +116.496 23.7205 243.085 +116.6 24.2848 248.868 +116.529 24.8334 254.49 +116.693 25.4547 260.857 +116.514 26.0247 266.698 +113.742 26.0241 266.692 +111.093 26.0477 266.934 +108.336 26.0419 266.874 +105.699 26.0603 267.064 +102.959 26.0492 266.95 +100.019 25.9809 266.249 +97.4073 25.9915 266.359 +94.7344 25.9816 266.257 +92.1032 25.9782 266.223 +92.4626 26.8382 275.036 +92.3652 27.6083 282.927 +91.9258 28.3153 290.173 +91.9217 29.2002 299.241 +91.8222 30.1057 308.521 +91.4565 30.976 317.439 +91.2886 31.9695 327.62 +91.3372 33.1057 339.264 +91.1884 34.2443 350.932 +90.7207 35.338 362.141 +90.5301 36.6224 375.302 +90.3178 37.9942 389.361 +88.9567 38.97 399.361 +90.0466 41.1434 421.633 +89.5959 42.7693 438.296 +87.4859 43.7112 447.948 +87.1268 45.6554 467.872 +86.9283 47.8795 490.664 +89.0432 51.6775 529.586 +89.0894 54.6287 559.83 +89.3508 58.0639 595.034 +94.1784 65.0812 666.946 +88.2488 65.1008 667.147 +87.5266 69.2314 709.477 +86.7476 73.9444 757.775 +87.7935 81.1239 831.35 +85.4177 86.1545 882.903 +85.0291 94.3894 967.294 +84.932 104.808 1074.06 +82.2778 114.274 1171.07 +79.8942 126.863 1300.08 +77.8445 144.258 1478.34 +142.928 317.929 3258.1 +114.355 318.038 3259.22 +32.428 120.271 1232.53 +21.5502 119.905 1228.77 +28.5942 318.22 3261.09 +1.69642e-13 318.232 3261.21 +-28.5942 318.22 3261.09 +-57.1863 318.183 3260.71 +-85.774 318.123 3260.1 +-114.355 318.038 3259.22 +-142.928 317.929 3258.1 +-171.468 317.757 3256.34 +-200.013 317.6 3254.73 +-228.571 317.457 3253.27 +-257.056 317.212 3250.76 +-285.548 316.982 3248.4 +-314.019 316.728 3245.8 +-126.605 116.986 1198.87 +-140.734 119.963 1229.37 +-159.478 126.144 1292.71 +-114.719 84.6282 867.262 +-121.526 83.9795 860.614 +-129.156 83.931 860.117 +-151.35 92.8064 951.071 +-540.811 313.867 3216.48 +-568.993 313.397 3211.67 +-145.624 76.3087 782.005 +-155.109 77.4981 794.193 +-175.683 83.8638 859.428 +-112.231 51.2796 525.508 +-115.925 50.7842 520.432 +-120.214 50.5705 518.241 +-125.197 50.6461 519.017 +-131.17 51.0941 523.607 +-820.42 308.096 3157.33 +-848.072 307.388 3150.09 +-875.66 306.658 3142.6 +-903.071 305.867 3134.49 +-930.633 305.127 3126.91 +-957.897 304.289 3118.33 +-164.666 50.7212 519.786 +-143.631 42.9318 439.961 +-145.294 42.1729 432.184 +-148.687 41.938 429.777 +-152.45 41.8104 428.469 +-1120.56 299.003 3064.16 +-402.283 104.497 1070.87 +-1174.26 297.095 3044.6 +-145.611 35.9008 367.908 +-144.336 34.6954 355.555 +-144.348 33.8449 346.84 +-147.618 33.775 346.123 +-151.724 33.889 347.291 +-1332.75 290.719 2979.26 +-1358.83 289.579 2967.57 +-446.496 92.9934 952.988 +-1410.66 287.231 2943.52 +-1436.32 286.008 2930.98 +-143.631 27.9781 286.717 +-143.643 27.3794 280.581 +-142.634 26.6106 272.703 +-144.034 26.3085 269.607 +-147.299 26.3477 270.009 +-408.016 71.4878 732.6 +-409.696 70.3278 720.713 +-110.1 18.5206 189.798 +-109.679 18.0835 185.318 +-110.785 17.9066 183.505 +-111.919 17.7375 181.773 +-113.297 17.6091 180.456 +-115.251 17.5696 180.052 +-116.771 17.4632 178.961 +-118.556 17.396 178.272 +-120.282 17.319 177.483 +-123.023 17.3844 178.154 +-126.818 17.5898 180.259 +-416.712 56.7382 581.447 +-417.386 55.7936 571.767 +-418.934 54.9849 563.48 +-420.609 54.2089 555.527 +-422.541 53.4806 548.064 +-423.821 52.6842 539.903 +-426.049 52.0189 533.085 +-427.057 51.2181 524.878 +-428.271 50.457 517.079 +-443.009 51.2751 525.462 +-433.831 49.332 505.55 +-433.065 48.3834 495.829 +-434.878 47.7382 489.216 +-436.608 47.0935 482.61 +-438.863 46.514 476.671 +-440.094 45.8349 469.712 +-441.648 45.1995 463.2 +-443.748 44.6278 457.342 +-445.778 44.0561 451.483 +-447.316 43.4432 445.201 +-448.492 42.8037 438.649 +-449.228 42.1319 431.763 +-452.996 41.7495 427.845 +-454.024 41.119 421.384 +-454.974 40.4899 414.936 +-2434.91 212.926 2182.05 +-2453.95 210.854 2160.81 +-382.411 32.285 330.854 +-385.146 31.947 327.39 +-383.022 31.2137 319.875 +-384.115 30.752 315.143 +-381.19 29.9791 307.223 +-382.695 29.5642 302.971 +-381.791 28.9696 296.878 +-384.221 28.6331 293.429 +-141.997 10.3921 106.497 +-142.524 10.2424 104.963 +-143.601 10.1327 103.839 +-142.877 9.89775 101.431 +-142.369 9.68162 99.2163 +-142.162 9.48908 97.2432 +-145.662 9.54202 97.7857 +-148.182 9.52542 97.6156 +-494.312 31.1764 319.492 +-495.83 30.678 314.385 +-498.567 30.2566 310.067 +-501.267 29.8329 305.725 +-502.3 29.3119 300.385 +-507.327 29.0231 297.426 +-2837.53 159.106 1630.51 +-2851.72 156.696 1605.8 +-2865.69 154.273 1580.97 +-2879.44 151.838 1556.02 +-2892.98 149.391 1530.95 +-2906.29 146.934 1505.77 +-405.497 20.066 205.634 +-404.6 19.5916 200.772 +-2944.9 139.495 1429.53 +-379.808 17.5941 180.303 +-380.377 17.2264 176.535 +-380.728 16.851 172.688 +-379.395 16.4053 168.119 +-379.755 16.0366 164.341 +-380.537 15.6875 160.764 +-380.916 15.3235 157.034 +-381.443 14.9674 153.384 +-380.262 14.5475 149.081 +-378.754 14.1202 144.703 +-380.008 13.7987 141.407 +-380.294 13.4429 137.762 +-382.335 13.1492 134.752 +-380.382 12.7203 130.357 +-381.226 12.3882 126.953 +-381.088 12.0256 123.238 +-380.247 11.6438 119.324 +-380.418 11.2955 115.755 +-380.268 10.9396 112.108 +-380.756 10.6035 108.664 +-379.959 10.2337 104.874 +-380.478 9.90125 101.467 +-381.45 9.58082 98.1834 +-379.871 9.19843 94.2647 +-379.808 8.85574 90.7527 +-380.784 8.53787 87.4953 +-379.291 8.16648 83.6893 +-379.815 7.84067 80.3505 +-380.309 7.5146 77.0089 +-380.282 7.17902 73.57 +-380.126 6.8423 70.1193 +-379.84 6.50469 66.6595 +-380.016 6.17611 63.2922 +-379.865 5.84317 59.8803 +-380.178 5.51813 56.5493 +-379.867 5.18491 53.1344 +-379.723 4.85516 49.7552 +-381.336 4.54735 46.6009 +-379.942 4.2042 43.0843 +-379.609 3.87493 39.7099 +-379.843 3.55212 36.4018 +-380.546 3.23345 33.1361 +-379.626 2.90166 29.736 +-381.069 2.58795 26.521 +-380.489 2.26014 23.1617 +-379.979 1.93402 19.8197 +-379.838 1.61064 16.5057 +-3274.5 11.1054 113.807 +-146.25 0.371938 3.81159 +-145.778 0.247127 2.53253 +-145.794 0.123568 1.26632 +96.1 1.77636e-15 1.13687e-13 +95.1964 0.0881396 0.826077 +96.0854 0.177939 1.66771 +96.0671 0.266891 2.5014 +96.0415 0.355823 3.33491 +96.0085 0.444728 4.16816 +96.0682 0.534155 5.0063 +95.9208 0.62243 5.83365 +96.8635 0.718614 6.73512 +95.9034 0.800776 7.50517 +96.8301 0.898782 8.42373 +96.653 0.98738 9.25409 +96.6675 1.07794 10.1029 +96.7739 1.1698 10.9638 +96.4755 1.25676 11.7788 +96.3684 1.34603 12.6155 +96.2541 1.4352 13.4513 +96.9236 1.53681 14.4035 +95.8058 1.60989 15.0885 +95.6697 1.69853 15.9192 +96.2157 1.79993 16.8696 +96.064 1.88895 17.7039 +95.905 1.97781 18.5368 +95.7386 2.06653 19.3683 +95.565 2.15509 20.1984 +95.3841 2.24349 21.0269 +96.0729 2.35319 22.055 +96.0701 2.447 22.9342 +95.6712 2.53072 23.7189 +96.4275 2.64576 24.7971 +96.2062 2.73494 25.6329 +95.9776 2.8239 26.4667 +95.7417 2.91266 27.2986 +95.4984 3.00119 28.1282 +96.1086 3.11741 29.2176 +96.7069 3.23499 30.3195 +96.4371 3.32439 31.1575 +96.16 3.41355 31.9931 +96.7266 3.53354 33.1176 +96.4322 3.62295 33.9557 +97.0702 3.74839 35.1313 +96.4772 3.82697 35.8678 +97.0924 3.95417 37.0599 +96.7634 4.0439 37.901 +96.5198 4.13731 38.7764 +97.0074 4.26306 39.955 +96.653 4.35271 40.7952 +96.383 4.44625 41.672 +96.105 4.53964 42.5472 +96.5469 4.66804 43.7507 +96.1593 4.75725 44.5867 +96.4864 4.88263 45.7619 +96.0811 4.97178 46.5974 +96.4739 5.10315 47.8286 +96.0505 5.19228 48.664 +96.4181 5.3251 49.9088 +96.7711 5.45899 51.1637 +96.3184 5.54837 52.0014 +96.558 5.67849 53.2209 +96.0873 5.76767 54.0568 +96.302 5.89885 55.2862 +96.5886 6.03625 56.574 +96.8599 6.17462 57.8708 +96.2631 6.25852 58.6572 +96.4231 6.39238 59.9117 +96.737 6.53841 61.2805 +96.1116 6.62194 62.0633 +96.3138 6.76338 63.3889 +96.4171 6.89975 64.6671 +95.7635 6.98275 65.4449 +95.9227 7.12591 66.7867 +96.0656 7.26989 68.1362 +96.1112 7.40845 69.4348 +96.3021 7.56026 70.8576 +96.3154 7.70021 72.1693 +95.6784 7.78909 73.0022 +96.3737 7.98842 74.8704 +96.2608 8.12357 76.1371 +96.3661 8.27915 77.5953 +95.6043 8.36131 78.3653 +96.2152 8.56543 80.2784 +96.1914 8.7162 81.6915 +96.15 8.86757 83.1102 +95.5667 8.97031 84.0731 +96.0886 9.17913 86.0303 +95.9198 9.32509 87.3982 +95.8073 9.47866 88.8376 +96.2572 9.69116 90.8292 +96.1757 9.8536 92.3516 +95.9322 10.0018 93.7402 +95.7423 10.1577 95.2019 +95.5339 10.3141 96.6673 +95.9323 10.5395 98.7801 +95.6813 10.6972 100.258 +95.4116 10.8551 101.739 +95.7311 11.0839 103.882 +95.418 11.243 105.374 +95.6823 11.474 107.539 +95.391 11.6423 109.116 +95.5338 11.8673 111.225 +95.6468 12.0934 113.344 +95.2209 12.2552 114.86 +95.2791 12.4831 116.996 +95.307 12.7119 119.141 +95.3044 12.9418 121.296 +95.1494 13.1558 123.301 +95.0266 13.379 125.393 +94.8148 13.5944 127.412 +94.9273 13.8619 129.919 +94.8869 14.1133 132.275 +94.8122 14.3658 134.642 +94.5898 14.6017 136.852 +94.951 14.935 139.976 +94.7676 15.1904 142.37 +94.4404 15.4288 144.604 +94.7259 15.7752 147.851 +94.6436 16.0692 150.606 +94.2065 16.31 152.863 +94.3035 16.6512 156.061 +94.4021 17.003 159.358 +94.4 17.3471 162.583 +94.2991 17.6831 165.732 +94.2955 18.0481 169.154 +94.0957 18.3865 172.325 +93.8474 18.7258 175.505 +93.6426 19.0849 178.871 +93.8398 19.5395 183.132 +94.0585 20.0149 187.587 +97.3184 21.1692 198.406 +116.496 25.9125 242.862 +116.22 26.4424 247.828 +116.114 27.0317 253.351 +116.327 27.7197 259.799 +116.674 28.4685 266.818 +113.742 28.4289 266.447 +111.055 28.445 266.597 +108.336 28.4483 266.629 +105.699 28.4685 266.818 +102.637 28.3672 265.868 +100.019 28.3817 266.004 +97.3731 28.3834 266.02 +95.0014 28.4626 266.762 +92.3637 28.4592 266.73 +92.6847 29.3887 275.442 +92.1489 30.0889 282.004 +91.9258 30.9319 289.906 +91.6878 31.8174 298.204 +91.6234 32.8166 307.569 +91.484 33.8487 317.242 +91.3955 34.9647 327.702 +91.2078 36.1137 338.471 +91.1133 37.378 350.321 +90.7933 38.6345 362.097 +90.6235 40.0479 375.344 +90.0254 41.3707 387.742 +88.1775 42.1983 395.498 +89.9426 44.8935 420.759 +89.8352 46.8464 439.062 +87.4668 47.7401 447.438 +87.1633 49.8952 467.637 +86.9804 52.3353 490.506 +88.8781 56.3483 528.117 +88.9643 59.593 558.528 +89.3212 63.4086 594.289 +94.1645 71.0848 666.233 +88.3662 71.2114 667.42 +87.2828 75.4184 706.85 +86.0684 80.145 751.15 +87.6994 88.5255 829.695 +85.4177 94.116 882.09 +84.942 103.006 965.411 +84.9712 114.546 1073.57 +82.0894 124.547 1167.3 +81.2007 140.853 1320.13 +171.468 347.121 3253.34 +142.91 347.266 3254.71 +114.341 347.385 3255.82 +32.4647 131.534 1232.78 +57.1793 347.544 3257.31 +28.5907 347.584 3257.69 +1.59872e-13 347.639 3258.21 +-28.5942 347.627 3258.09 +-57.1863 347.586 3257.71 +-85.7635 347.478 3256.7 +-114.355 347.427 3256.22 +-142.91 347.266 3254.71 +-171.468 347.121 3253.34 +-200.013 346.949 3251.73 +-228.543 346.75 3249.87 +-109.584 147.725 1384.53 +-285.583 346.316 3245.81 +-314.019 345.997 3242.81 +-126.574 127.766 1197.47 +-140.836 131.143 1229.12 +-159.698 137.989 1293.29 +-114.719 92.4486 866.463 +-121.651 91.8345 860.708 +-129.156 91.6869 859.325 +-151.413 101.424 950.588 +-540.811 342.871 3213.52 +-568.993 342.358 3208.71 +-145.716 83.4125 781.774 +-155.624 84.9407 796.096 +-175.563 91.5511 858.052 +-112.397 56.1013 525.803 +-115.903 55.4669 519.856 +-120.214 55.2436 517.764 +-125.15 55.3057 518.346 +-131.17 55.8156 523.125 +-820.42 336.566 3154.43 +-848.072 335.794 3147.19 +-875.66 334.996 3139.71 +-903.181 334.173 3131.99 +-930.633 333.323 3124.03 +-161.097 55.9037 523.95 +-164.606 55.3881 519.119 +-143.353 46.8083 438.705 +-145.04 45.9897 431.032 +-148.589 45.7834 429.099 +-152.55 45.7041 428.356 +-1120.56 326.634 3061.33 +-402.178 114.123 1069.6 +-1174.26 324.549 3041.79 +-145.428 39.169 367.106 +-144.336 37.9016 355.228 +-144.54 37.0215 346.98 +-147.97 36.984 346.628 +-151.525 36.9721 346.516 +-1332.75 317.584 2976.52 +-1358.83 316.338 2964.84 +-446.919 101.683 953.011 +-1410.66 313.774 2940.81 +-1436.32 312.437 2928.28 +-143.497 30.5351 286.187 +-143.688 29.919 280.412 +-142.588 29.0602 272.363 +-144.034 28.7397 269.359 +-147.49 28.8197 270.109 +-408.307 78.1496 732.448 +-408.909 76.6789 718.664 +-109.6 20.1402 188.762 +-109.679 19.7546 185.147 +-110.836 19.5704 183.421 +-111.919 19.3766 181.605 +-113.35 19.2452 180.373 +-115.036 19.1575 179.551 +-116.716 19.068 178.713 +-118.501 18.9946 178.025 +-120.226 18.9106 177.237 +-123.023 18.9909 177.99 +-126.76 19.2066 180.011 +-416.48 61.9468 580.589 +-417.974 61.0352 572.045 +-418.934 60.0659 562.961 +-420.97 59.2692 555.493 +-422.907 58.4732 548.032 +-424.745 57.6781 540.581 +-426.236 56.8509 532.828 +-427.246 55.9758 524.626 +-428.017 55.0869 516.296 +-442.238 55.9159 524.064 +-433.182 53.8101 504.328 +-433.065 52.8545 495.372 +-435.076 52.1734 488.989 +-436.608 51.4454 482.165 +-438.593 50.781 475.939 +-440.912 50.1635 470.151 +-442.543 49.4764 463.711 +-444.373 48.8206 457.565 +-446.059 48.1576 451.351 +-447.033 47.4277 444.51 +-449.205 46.8335 438.942 +-450.594 46.1653 432.678 +-452.996 45.6075 427.451 +-453.586 44.8753 420.588 +-456.006 44.3318 415.495 +-456.885 43.6452 409.059 +-458.885 43.0729 403.696 +-383.242 35.345 331.267 +-384.233 34.8166 326.314 +-384.248 34.2072 320.602 +-382.88 33.4857 313.841 +-383.444 32.943 308.755 +-382.93 32.3159 302.877 +-382.5 31.7054 297.155 +-136.853 11.1411 104.418 +-141.918 11.346 106.339 +-142.443 11.1827 104.808 +-143.601 11.069 103.743 +-142.877 10.8124 101.338 +-142.369 10.5763 99.125 +-142.739 10.408 97.5479 +-146.242 10.4653 98.0849 +-147.765 10.3764 97.2512 +-494.312 34.0573 319.198 +-496.252 33.5414 314.363 +-498.991 33.0806 310.044 +-500.244 32.5232 304.82 +-502.3 32.0205 300.109 +-2823.13 176.43 1653.56 +-2837.53 173.809 1629 +-2851.72 171.176 1604.32 +-2865.69 168.529 1579.51 +-2879.44 165.869 1554.59 +-2892.98 163.196 1529.54 +-2906.29 160.512 1504.38 +-404.25 21.8528 204.812 +-402.989 21.3168 199.789 +-2944.9 152.385 1428.21 +-378.183 19.1377 179.366 +-381.193 18.8586 176.75 +-379.363 18.3422 171.91 +-379.121 17.9083 167.843 +-378.929 17.4804 163.833 +-380.537 17.1372 160.616 +-380.916 16.7396 156.89 +-380.516 16.3108 152.871 +-380.541 15.9034 149.053 +-379.594 15.4592 144.89 +-380.195 15.0812 141.347 +-379.73 14.6633 137.43 +-380.544 14.2971 133.997 +-381.044 13.92 130.463 +-380.657 13.5128 126.647 +-381.374 13.1468 123.217 +-380.438 12.7262 119.275 +-380.896 12.3549 115.795 +-379.788 11.9354 111.863 +-381.621 11.6097 108.81 +-379.574 11.168 104.671 +-380.478 10.8162 101.374 +-379.901 10.4237 97.6946 +-380.55 10.0664 94.3463 +-379.224 9.65922 90.5299 +-380.784 9.32685 87.4147 +-380.267 8.94409 83.8274 +-381.086 8.5939 80.5452 +-379.721 8.19633 76.8191 +-380.675 7.85053 73.5781 +-380.028 7.47265 70.0365 +-379.742 7.10394 66.5808 +-380.41 6.75385 63.2996 +-380.26 6.38978 59.8874 +-380.376 6.0312 56.5267 +-380.56 5.67437 53.1823 +-381.012 5.32182 49.8781 +-380.443 4.95593 46.4489 +-380.836 4.60352 43.1459 +-380.305 4.24077 39.7461 +-380.64 3.88851 36.4445 +-380.546 3.53225 33.1056 +-379.626 3.1698 29.7086 +-380.471 2.82265 26.4549 +-380.09 2.46641 23.1161 +-380.877 2.11774 19.8482 +-379.339 1.75717 16.4688 +-3274.5 12.1317 113.703 +-146.25 0.406308 3.80808 +-145.178 0.268853 2.51979 +-146.394 0.135542 1.27035 +96.2 -1.77636e-15 -2.27374e-13 +96.0963 0.096492 0.83305 +96.1853 0.193177 1.66777 +96.0671 0.289446 2.49889 +96.0415 0.385894 3.33157 +96.1084 0.482815 4.16832 +96.0682 0.579297 5.00128 +95.9208 0.675032 5.8278 +96.8635 0.779344 6.72836 +96.8007 0.876574 7.56778 +96.7305 0.973736 8.40661 +96.653 1.07082 9.24481 +96.6675 1.16904 10.0927 +96.5752 1.26606 10.9303 +96.4755 1.36297 11.767 +96.3684 1.45978 12.6028 +96.2541 1.55649 13.4378 +96.1323 1.65308 14.2717 +96.7935 1.76395 15.2288 +95.6697 1.84207 15.9033 +96.2157 1.95205 16.8527 +96.064 2.04858 17.6862 +95.905 2.14496 18.5182 +95.7386 2.24117 19.3488 +95.565 2.33722 20.1781 +96.2628 2.45549 21.1992 +96.0729 2.55206 22.0329 +96.0701 2.6538 22.9112 +95.8652 2.75016 23.7432 +95.653 2.84631 24.5732 +96.2062 2.96607 25.6072 +95.9776 3.06255 26.4401 +95.7417 3.15881 27.2712 +96.3614 3.28423 28.3539 +96.1086 3.38087 29.1883 +95.8486 3.47723 30.0202 +96.4371 3.60534 31.1262 +96.16 3.70203 31.961 +96.632 3.82842 33.0521 +96.4322 3.92913 33.9216 +96.7883 4.05336 34.9941 +96.4772 4.15039 35.8318 +97.0924 4.28834 37.0228 +96.7634 4.38565 37.863 +97.3543 4.52575 39.0725 +96.915 4.61893 39.8769 +96.7451 4.72505 40.7931 +96.383 4.82201 41.6302 +96.105 4.92329 42.5045 +96.5469 5.06254 43.7068 +96.9749 5.20306 44.9199 +96.5766 5.30022 45.7588 +96.89 5.43734 46.9425 +95.6685 5.48821 47.3817 +96.0505 5.63108 48.6152 +96.4181 5.77512 49.8587 +96.8594 5.92573 51.159 +96.2305 6.01178 51.9019 +96.558 6.15838 53.1675 +96.7836 6.30042 54.3938 +96.302 6.39736 55.2307 +96.5886 6.54637 56.5172 +96.7742 6.69051 57.7616 +96.3483 6.79343 58.6502 +96.4231 6.9326 59.8516 +96.737 7.09098 61.219 +96.0278 7.17531 61.947 +96.8975 7.37941 63.7091 +96.3342 7.47642 64.5466 +96.5052 7.63152 65.8857 +95.9227 7.72813 66.7197 +96.0656 7.88427 68.0678 +96.1112 8.03454 69.3651 +96.3021 8.19918 70.7865 +96.3154 8.35096 72.0969 +96.3924 8.51039 73.4733 +96.2949 8.65643 74.7341 +96.2608 8.8101 76.0608 +96.2884 8.97158 77.4549 +95.6814 9.07524 78.3499 +95.679 9.23753 79.751 +96.2674 9.46028 81.674 +95.6217 9.56413 82.5706 +96.091 9.78177 84.4496 +96.0886 9.95487 85.944 +95.8461 10.1054 87.2434 +95.8073 10.2797 88.7484 +95.6043 10.4389 90.1225 +96.1757 10.6863 92.259 +96.0035 10.8551 93.7158 +95.6715 11.008 95.0361 +95.5339 11.1857 96.5703 +95.9323 11.4302 98.681 +95.6813 11.6012 100.157 +95.4116 11.7725 101.636 +95.1907 11.9527 103.192 +95.9533 12.2616 105.859 +95.7486 12.4523 107.505 +95.3254 12.6174 108.931 +95.5338 12.8702 111.113 +94.9397 13.0185 112.394 +95.2209 13.2909 114.745 +95.1532 13.5201 116.724 +95.2447 13.7772 118.944 +95.1813 14.0174 121.017 +95.1494 14.2676 123.177 +95.0266 14.5097 125.267 +95.0527 14.7802 127.603 +94.9273 15.0333 129.788 +94.8869 15.306 132.143 +94.7548 15.5704 134.425 +95.043 15.9115 137.37 +95.0069 16.2066 139.918 +94.878 16.4933 142.393 +94.4404 16.7327 144.459 +94.8334 17.1278 147.87 +94.5376 17.4077 150.287 +94.2065 17.6884 152.71 +94.3035 18.0584 155.905 +94.4529 18.4498 159.284 +94.4 18.8131 162.42 +94.2991 19.1775 165.566 +94.247 19.5633 168.897 +94.0957 19.9403 172.152 +93.8943 20.3185 175.417 +94.012 20.7793 179.396 +94.1576 21.2626 183.568 +94.0139 21.6961 187.311 +96.7485 22.8238 197.047 +116.453 28.0919 242.527 +116.6 28.7709 248.389 +116.529 29.4208 254.001 +116.327 30.0623 259.539 +116.475 30.8216 266.094 +113.742 30.8315 266.179 +111.399 30.9445 267.155 +108.336 30.8525 266.361 +105.699 30.8744 266.55 +102.959 30.8613 266.437 +100.334 30.8773 266.575 +97.681 30.8795 266.594 +95.0014 30.8679 266.494 +92.266 30.8316 266.18 +92.3991 31.7742 274.318 +92.1489 32.6317 281.721 +92.1964 33.6448 290.468 +91.8924 34.5834 298.571 +91.5381 35.5569 306.976 +91.484 36.7092 316.924 +91.3955 37.9195 327.373 +91.3631 39.2324 338.707 +91.0632 40.5145 349.776 +90.7691 41.8883 361.637 +89.8064 43.0408 371.587 +88.8107 44.2616 382.126 +88.2641 45.8095 395.49 +89.7971 48.6087 419.656 +89.7156 50.7377 438.037 +87.3142 51.6843 446.21 +86.9081 53.9534 465.8 +86.772 56.6222 488.84 +88.6801 60.9741 526.411 +88.9486 64.6179 557.87 +89.3064 68.7559 593.594 +94.2619 77.1721 666.254 +88.4707 77.3207 667.538 +87.1853 81.7007 705.352 +85.1628 86.0035 742.5 +87.3231 95.595 825.306 +85.3986 102.047 881.008 +84.9943 111.78 965.037 +85.0497 124.341 1073.48 +82.1941 135.245 1167.62 +77.0982 145.038 1252.17 +171.468 376.456 3250.08 +54.3105 143.125 1235.65 +43.3522 142.841 1233.19 +85.7635 376.844 3253.43 +57.1793 376.915 3254.04 +28.5907 376.959 3254.42 +1.66089e-13 376.972 3254.54 +-28.5907 376.959 3254.42 +-57.1793 376.915 3254.04 +-85.7635 376.844 3253.43 +-114.341 376.742 3252.55 +-58.8077 154.977 1337.97 +-71.8625 157.773 1362.11 +-82.2995 154.824 1336.65 +-228.543 376.054 3246.61 +-105.708 154.543 1334.23 +-285.548 375.538 3242.15 +-314.019 375.237 3239.56 +-126.793 138.804 1198.35 +-141.04 142.432 1229.67 +-160.234 150.154 1296.33 +-114.654 100.204 865.101 +-121.651 99.5955 859.844 +-129.259 99.5151 859.15 +-151.538 110.087 950.42 +-540.811 371.848 3210.3 +-568.993 371.291 3205.49 +-145.861 90.5522 781.77 +-155.776 92.2094 796.077 +-175.823 99.4348 858.456 +-112.397 60.8425 525.275 +-116.12 60.2667 520.304 +-120.214 59.9123 517.245 +-125.384 60.0915 518.791 +-131.364 60.622 523.372 +-820.42 365.01 3151.26 +-848.072 364.172 3144.03 +-875.66 363.307 3136.56 +-903.181 362.414 3128.85 +-930.633 361.492 3120.89 +-161.038 60.6061 523.235 +-154.954 56.5464 488.186 +-143.415 50.7859 438.454 +-145.04 49.8763 430.6 +-148.785 49.7178 429.232 +-152.75 49.6317 428.488 +-1120.56 354.238 3058.26 +-1147.52 353.142 3048.81 +-1174.26 351.977 3038.74 +-145.391 42.4685 366.646 +-144.373 41.1153 354.964 +-144.731 40.2034 347.09 +-148.282 40.1943 347.012 +-151.764 40.1599 346.715 +-1332.75 344.423 2973.53 +-1358.83 343.072 2961.87 +-446.834 110.255 951.875 +-1410.66 340.291 2937.86 +-513.026 121.027 1044.87 +-143.72 33.1671 286.344 +-143.37 32.3757 279.511 +-142.634 31.5263 272.178 +-144.409 31.2498 269.791 +-147.537 31.2654 269.925 +-408.452 84.7842 731.973 +-407.579 82.8887 715.609 +-109.3 21.7824 188.056 +-109.73 21.4339 185.047 +-110.836 21.2243 183.237 +-112.337 21.0926 182.1 +-113.35 20.8716 180.192 +-115.143 20.7959 179.539 +-116.335 20.6119 177.95 +-118.556 20.6095 177.929 +-120.226 20.5087 177.059 +-122.967 20.5864 177.73 +-127.506 20.9522 180.888 +-417.351 67.3224 581.219 +-417.034 66.0445 570.186 +-419.41 65.2161 563.035 +-421.511 64.3607 555.649 +-422.907 63.4147 547.483 +-424.375 62.4981 539.568 +-425.862 61.6013 531.826 +-427.057 60.6795 523.868 +-428.017 59.7424 515.778 +-439.86 60.3151 520.722 +-435.26 58.6376 506.239 +-433.065 57.3213 494.875 +-435.275 56.6085 488.721 +-437.21 55.87 482.346 +-438.593 55.0725 475.461 +-440.571 54.3608 469.316 +-442.13 53.6076 462.814 +-444.095 52.9133 456.82 +-446.339 52.2602 451.181 +-447.669 51.509 444.696 +-448.777 50.743 438.083 +-450.019 50.0027 431.692 +-451.908 49.3431 425.997 +-454.024 48.7149 420.573 +-456.743 48.156 415.748 +-457.629 47.4108 409.314 +-458.361 46.6596 402.83 +-383.845 38.3924 331.456 +-383.777 37.714 325.599 +-382.256 36.9057 318.621 +-382.34 36.2644 313.084 +-382.978 35.6836 308.069 +-382.382 34.9969 302.141 +-382.264 34.3636 296.673 +-139.63 12.3278 106.43 +-142.716 12.3741 106.83 +-142.524 12.1345 104.762 +-143.601 12.0045 103.639 +-142.877 11.7262 101.236 +-142.205 11.4569 98.9116 +-142.409 11.2615 97.225 +-146.491 11.3691 98.1532 +-147.931 11.266 97.2633 +-494.564 36.9544 319.041 +-496.589 36.4007 314.261 +-499.076 35.8824 309.786 +-500.5 35.2898 304.67 +-503.071 34.78 300.268 +-511.205 34.6473 299.123 +-2837.53 188.498 1627.37 +-2851.72 185.642 1602.71 +-405.386 25.8551 223.217 +-2879.44 179.887 1553.03 +-2892.98 176.988 1528 +-407.848 24.4287 210.902 +-2919.38 171.152 1477.62 +-2932.25 168.215 1452.26 +-383.336 21.5123 185.723 +-380.079 20.8591 180.084 +-380.649 20.4232 176.321 +-380.273 19.94 172.149 +-379.761 19.4544 167.957 +-379.296 18.9761 163.828 +-379.432 18.5315 159.989 +-380.084 18.1147 156.39 +-379.589 17.6461 152.345 +-380.913 17.2644 149.049 +-380.527 16.807 145.101 +-379.352 16.3195 140.892 +-379.73 15.9025 137.292 +-380.073 15.4861 133.697 +-381.044 15.0964 130.333 +-380.183 14.6365 126.362 +-380.518 14.2258 122.817 +-379.865 13.7809 118.976 +-380.131 13.3721 115.446 +-380.651 12.9735 112.005 +-381.236 12.5782 108.592 +-381.309 12.1672 105.044 +-379.995 11.7153 101.143 +-379.901 11.3046 97.5966 +-379.58 10.8893 94.0112 +-379.808 10.4916 90.5782 +-380.004 10.0944 87.1482 +-380.658 9.70993 83.8293 +-380.793 9.31299 80.4024 +-379.721 8.889 76.742 +-380.97 8.52057 73.5612 +-380.716 8.11885 70.093 +-381.318 7.73627 66.79 +-380.312 7.32272 63.2197 +-380.853 6.94057 59.9205 +-380.376 6.5409 56.4699 +-380.461 6.15232 53.1152 +-380.021 5.75655 49.6984 +-379.847 5.36635 46.3296 +-380.935 4.99386 43.1138 +-380.604 4.60276 39.7373 +-381.535 4.22706 36.4937 +-380.248 3.82775 33.0464 +-380.224 3.4431 29.7256 +-379.274 3.05156 26.3453 +-380.289 2.67625 23.105 +-380.078 2.2919 19.7868 +-380.737 1.91268 16.5129 +-381.168 1.53153 13.2223 +-147.749 0.445163 3.84325 +-144.678 0.290569 2.50859 +-145.494 0.146093 1.26128 +95.2 5.32907e-15 -1.7053e-13 +96.0963 0.104003 0.832146 +96.0854 0.207999 1.66423 +96.0671 0.311978 2.49618 +96.0415 0.415934 3.32795 +96.0085 0.519858 4.15946 +95.9683 0.623743 4.99066 +95.9208 0.727579 5.82147 +96.8635 0.840011 6.72106 +95.8038 0.935079 7.48171 +95.7343 1.03873 8.31101 +96.7525 1.15537 9.24429 +96.6675 1.26004 10.0818 +96.5752 1.36461 10.9185 +96.4755 1.46907 11.7543 +96.3684 1.57342 12.5892 +96.2541 1.67765 13.4232 +96.1323 1.78177 14.2562 +95.8058 1.88185 15.057 +95.6697 1.98546 15.886 +95.3294 2.08462 16.6793 +96.064 2.20805 17.667 +95.905 2.31193 18.4981 +95.7386 2.41563 19.3278 +95.565 2.51916 20.1562 +95.3841 2.62249 20.983 +95.196 2.72561 21.808 +96.0701 2.86038 22.8863 +95.8652 2.96425 23.7174 +95.653 3.06787 24.5465 +96.2062 3.19696 25.5794 +95.9776 3.30095 26.4114 +96.6068 3.43547 27.4877 +96.3614 3.53988 28.3231 +96.1086 3.64405 29.1566 +96.7069 3.78148 30.2562 +96.4371 3.88599 31.0924 +96.16 3.99021 31.9263 +96.632 4.12643 33.0162 +96.338 4.23086 33.8517 +97.0702 4.38161 35.0579 +96.4772 4.47347 35.7929 +97.0924 4.62216 36.9826 +96.7634 4.72705 37.8218 +97.3543 4.87805 39.03 +97.0074 4.98323 39.8716 +96.7451 5.09286 40.7488 +96.383 5.19737 41.585 +96.8358 5.34689 42.7813 +96.5469 5.45663 43.6593 +96.9749 5.60808 44.8711 +96.5766 5.71281 45.7091 +96.9799 5.86604 46.935 +96.4739 5.96524 47.7288 +96.9415 6.12573 49.0129 +96.4181 6.22468 49.8046 +96.6828 6.37536 51.0102 +96.2305 6.47976 51.8455 +96.558 6.63777 53.1098 +96.8706 6.79697 54.3836 +96.302 6.89535 55.1708 +96.5886 7.05597 56.4559 +96.8599 7.21771 57.75 +96.2631 7.31578 58.5347 +96.5079 7.47883 59.8393 +96.6527 7.63629 61.0991 +96.0278 7.73386 61.8798 +96.3138 7.90593 63.2566 +96.4171 8.06534 64.532 +96.5052 8.22559 65.8142 +95.9227 8.32971 66.6473 +96.0656 8.49801 67.9939 +96.1112 8.65998 69.2898 +96.3021 8.83744 70.7097 +95.6765 8.94131 71.5408 +96.3131 9.16531 73.3331 +96.3737 9.33792 74.7141 +96.2608 9.49591 75.9782 +96.3661 9.67776 77.4333 +95.6814 9.78169 78.2648 +96.2152 10.0124 80.1108 +96.2674 10.1967 81.5854 +96.2255 10.3737 83.0017 +95.4919 10.4775 83.8319 +96.0143 10.7215 85.7843 +96.5833 10.9758 87.8191 +95.8073 11.0799 88.6521 +96.2572 11.3283 90.6395 +96.1757 11.5182 92.1588 +95.3616 11.6218 92.9882 +95.7423 11.8737 95.0032 +95.5339 12.0564 96.4655 +95.9323 12.32 98.5739 +95.6125 12.4953 99.9772 +95.3434 12.6799 101.454 +95.1231 12.8741 103.008 +95.418 13.1423 105.154 +95.6823 13.4123 107.314 +95.3254 13.5996 108.812 +95.4039 13.8532 110.842 +95.004 14.0413 112.347 +95.2209 14.3255 114.62 +95.2791 14.5919 116.752 +95.307 14.8594 118.892 +95.2428 15.1183 120.964 +95.2103 15.388 123.122 +95.0868 15.649 125.21 +94.9932 15.9208 127.385 +94.8098 16.1835 129.487 +94.9449 16.5077 132.08 +94.7548 16.7825 134.279 +94.7031 17.0888 136.73 +94.8391 17.4374 139.52 +94.7676 17.7565 142.073 +94.5493 18.056 144.469 +94.7259 18.4401 147.542 +94.5376 18.7628 150.124 +94.2065 19.0653 152.544 +94.2005 19.4429 155.566 +94.4021 19.8754 159.026 +94.4 20.2775 162.244 +93.8559 20.5732 164.609 +94.247 21.0861 168.713 +94.0957 21.4925 171.965 +93.8474 21.8891 175.138 +94.012 22.3969 179.201 +94.1576 22.9177 183.368 +94.1031 23.4072 187.285 +96.617 24.5671 196.565 +116.453 30.2787 242.264 +116.685 31.0331 248.3 +116.156 31.6095 252.912 +116.327 32.4025 259.257 +116.395 33.1981 265.623 +113.742 33.2315 265.89 +111.399 33.3533 266.865 +108.336 33.2542 266.072 +105.699 33.2778 266.26 +102.959 33.2636 266.147 +100.334 33.2809 266.285 +97.681 33.2832 266.304 +95.0014 33.2708 266.205 +92.2986 33.2434 265.986 +92.4626 34.2711 274.209 +92.118 35.1601 281.321 +91.9558 36.1692 289.396 +91.8632 37.2636 298.151 +91.7938 38.4318 307.499 +91.484 39.5668 316.58 +91.3154 40.8355 326.731 +91.1819 42.2025 337.669 +90.9631 43.6203 349.013 +90.7933 45.1611 361.341 +88.7092 45.8245 366.648 +88.3158 47.4413 379.585 +88.0693 49.2664 394.188 +89.6515 52.3076 418.521 +89.7355 54.6995 437.659 +87.4859 55.8171 446.601 +86.6894 58.007 464.123 +86.8241 61.0665 488.603 +88.3665 65.4881 523.98 +88.933 69.6357 557.166 +89.1586 73.9854 591.968 +94.4011 83.3022 666.514 +88.4968 83.3643 667.011 +87.4291 88.3068 706.556 +84.6647 92.1561 737.355 +87.1454 102.827 822.732 +85.3219 109.892 879.261 +84.9943 120.481 963.989 +85.034 133.996 1072.12 +81.6848 144.871 1159.13 +76.213 154.534 1236.45 +66.4457 157.236 1258.07 +142.91 405.93 3247.91 +114.341 406.069 3249.02 +85.7635 406.178 3249.9 +57.1793 406.255 3250.51 +28.5907 406.302 3250.89 +7.28306e-14 164.819 1318.74 +-28.5907 406.302 3250.89 +-57.1793 406.255 3250.51 +-85.7635 406.178 3249.9 +-46.3151 164.483 1316.05 +-56.6921 161.031 1288.44 +-69.5074 164.481 1316.04 +-200.013 405.56 3244.94 +-92.6366 164.294 1314.54 +-257.056 405.065 3240.99 +-285.548 404.771 3238.63 +-314.019 404.447 3236.04 +-126.835 149.658 1197.43 +-140.836 153.298 1226.56 +-399.281 403.289 3226.78 +-114.915 108.251 866.13 +-121.832 107.508 860.189 +-129.392 107.372 859.1 +-151.569 118.681 949.583 +-540.811 400.794 3206.81 +-568.993 400.193 3202.01 +-145.825 97.5768 780.727 +-155.967 99.5091 796.188 +-175.743 107.126 857.135 +-112.584 65.6878 525.578 +-116.12 64.9581 519.739 +-120.416 64.6849 517.553 +-125.36 64.7572 518.132 +-131.654 65.4854 523.959 +-820.42 393.423 3147.84 +-848.072 392.52 3140.62 +-875.66 391.588 3133.15 +-903.181 390.625 3125.45 +-930.633 389.632 3117.51 +-161.594 65.5493 524.47 +-153.781 60.487 483.966 +-143.415 54.7393 437.978 +-145.389 53.8882 431.168 +-148.785 53.5881 428.766 +-1093.65 383.012 3064.54 +-1120.7 381.86 3055.32 +-1147.52 380.632 3045.5 +-1174.26 379.376 3035.44 +-145.281 45.7398 365.971 +-144.336 44.3044 354.486 +-144.884 43.3788 347.081 +-148.243 43.3117 346.544 +-151.963 43.343 346.794 +-1332.75 371.234 2970.3 +-1358.83 369.778 2958.65 +-447.384 118.984 952.01 +-1410.66 366.781 2934.67 +-1436.32 365.218 2922.17 +-143.72 35.7489 286.033 +-143.234 34.8628 278.943 +-142.634 33.9804 271.883 +-144.363 33.6714 269.41 +-147.537 33.6992 269.632 +-408.355 91.3624 731.005 +-409.499 89.7621 718.2 +-109.8 23.5855 188.711 +-109.781 23.1131 184.931 +-110.836 22.8764 183.038 +-111.919 22.65 181.226 +-113.774 22.5805 180.67 +-115.519 22.4879 179.929 +-116.825 22.3101 178.506 +-118.556 22.2138 177.736 +-120.618 22.1771 177.443 +-123.42 22.2706 178.191 +-127.908 22.6543 181.261 +-416.596 72.4317 579.537 +-418.209 71.3862 571.172 +-419.112 70.2431 562.025 +-421.331 69.3411 554.809 +-422.907 68.3512 546.888 +-425.114 67.4803 539.92 +-426.049 66.4257 531.482 +-426.49 65.3164 522.606 +-428.844 64.5173 516.213 +-437.995 64.7348 517.953 +-434.741 63.1267 505.086 +-433.196 61.8021 494.488 +-435.474 61.043 488.414 +-437.411 60.2468 482.044 +-438.863 59.3961 475.238 +-440.912 58.6378 469.17 +-442.543 57.8345 462.743 +-444.373 57.068 456.61 +-446.059 56.293 450.409 +-447.599 55.5099 444.144 +-449.205 54.7453 438.025 +-450.954 54.0071 432.119 +-452.996 53.3121 426.558 +-454.829 52.6 420.861 +-455.711 51.7873 414.358 +-457.926 51.1345 409.135 +-459.185 50.3822 403.116 +-383.242 41.3159 330.575 +-382.864 40.5532 324.473 +-382.486 39.8026 318.466 +-382.417 39.0952 312.806 +-382.2 38.3833 307.111 +-382.461 37.7289 301.874 +-382.658 37.0768 296.657 +-142.09 13.5215 108.187 +-142.636 13.3299 106.654 +-142.604 13.0865 104.707 +-142.872 12.8734 103.002 +-142.877 12.639 101.126 +-142.942 12.4128 99.3163 +-143.068 12.1944 97.569 +-147.071 12.3026 98.435 +-146.681 12.0403 96.3362 +-494.564 39.8311 318.695 +-496.336 39.2143 313.76 +-498.567 38.6363 309.135 +-501.267 38.0952 304.806 +-503.071 37.4874 299.942 +-824.665 60.2432 482.015 +-2837.53 203.171 1625.6 +-405.412 28.4459 227.6 +-2865.69 196.999 1576.22 +-2879.44 193.89 1551.34 +-405.096 26.7125 213.731 +-2906.29 187.628 1501.24 +-403.893 25.522 204.205 +-2932.25 181.309 1450.68 +-2944.9 178.128 1425.23 +-379.988 22.4775 179.846 +-379.199 21.9291 175.458 +-381.911 21.5848 172.703 +-379.669 20.9639 167.735 +-380.213 20.5026 164.045 +-380.721 20.0419 160.358 +-380.361 19.539 156.335 +-380.516 19.0663 152.552 +-380.076 18.5673 148.56 +-379.594 18.0708 144.587 +-380.851 17.6593 141.295 +-380.857 17.1914 137.551 +-381.393 16.7495 134.015 +-381.517 16.2918 130.353 +-382.649 15.8782 127.044 +-381.374 15.3677 122.959 +-380.724 14.8873 119.115 +-380.036 14.4094 115.292 +-380.747 13.9869 111.911 +-380.371 13.5265 108.228 +-380.441 13.0846 104.692 +-379.899 12.6242 101.008 +-380.482 12.2032 97.6397 +-380.938 11.779 94.2453 +-379.808 11.3084 90.4799 +-380.589 10.8969 87.1876 +-380.267 10.455 83.6524 +-380.206 10.0225 80.1914 +-381.093 9.61557 76.9356 +-380.282 9.16727 73.3487 +-381.306 8.7644 70.1253 +-380.234 8.3148 66.528 +-379.819 7.8825 63.0691 +-380.26 7.46922 59.7623 +-380.573 7.05373 56.438 +-381.253 6.64504 53.168 +-381.409 6.22732 49.8258 +-380.542 5.79466 46.364 +-380.24 5.37278 42.9885 +-379.907 4.95199 39.6216 +-380.938 4.54897 36.397 +-381.244 4.13653 33.097 +-380.424 3.71307 29.7089 +-381.069 3.30468 26.4413 +-379.89 2.88155 23.0557 +-381.177 2.47744 19.8224 +-380.737 2.06157 16.495 +-3274.5 14.1811 113.465 +-145.35 0.472025 3.77675 +-145.178 0.314271 2.51453 +-145.594 0.157574 1.26077 +95.3 -1.77636e-15 -2.27374e-13 +96.0963 0.111506 0.831174 +95.9854 0.222771 1.66055 +96.0671 0.334484 2.49326 +96.0415 0.445939 3.32406 +96.0085 0.55736 4.1546 +96.0682 0.669435 4.99002 +95.9208 0.780066 5.81467 +96.8635 0.90061 6.71321 +95.8038 1.00254 7.47297 +96.7305 1.12525 8.38768 +96.7525 1.23872 9.23349 +95.673 1.33703 9.96632 +96.5752 1.46305 10.9057 +96.4755 1.57505 11.7405 +96.3684 1.68692 12.5744 +96.2541 1.79868 13.4075 +96.1323 1.9103 14.2395 +95.9045 2.01969 15.0549 +95.6697 2.1287 15.8674 +96.2157 2.25578 16.8148 +96.064 2.36734 17.6463 +95.905 2.47871 18.4765 +95.7386 2.58989 19.3053 +95.565 2.70089 20.1326 +95.3841 2.81168 20.9584 +95.196 2.92224 21.7826 +96.0701 3.06673 22.8596 +95.6712 3.17165 23.6417 +95.653 3.28919 24.5179 +96.2062 3.42759 25.5495 +95.9776 3.53908 26.3806 +95.7417 3.65032 27.2097 +96.3614 3.79525 28.2901 +96.1086 3.90693 29.1225 +96.7069 4.05428 30.2209 +96.4371 4.16633 31.0561 +96.16 4.27807 31.889 +96.632 4.42412 32.9777 +96.338 4.53607 33.8122 +96.7883 4.68406 34.9153 +96.4772 4.79619 35.7511 +96.1588 4.90794 36.5842 +96.7634 5.06806 37.7777 +96.5198 5.18512 38.6502 +97.0074 5.34272 39.825 +96.653 5.45508 40.6625 +96.383 5.57231 41.5364 +96.9272 5.73802 42.7716 +96.5469 5.85027 43.6083 +96.1593 5.96207 44.4417 +96.5766 6.12494 45.6557 +96.171 6.23676 46.4892 +96.4739 6.39557 47.673 +96.1396 6.51331 48.5507 +96.4181 6.67373 49.7464 +96.7711 6.84153 50.9972 +96.2305 6.94721 51.785 +96.558 7.11662 53.0478 +96.8706 7.2873 54.3201 +96.3886 7.39943 55.1559 +96.5886 7.56499 56.3899 +96.8599 7.7384 57.6825 +96.2631 7.84355 58.4663 +96.5079 8.01835 59.7693 +96.6527 8.18718 61.0278 +96.0278 8.29178 61.8075 +96.3138 8.47627 63.1827 +96.3342 8.63975 64.4013 +96.5052 8.81898 65.7373 +95.9227 8.93062 66.5694 +96.0656 9.11106 67.9145 +96.1112 9.28471 69.2089 +96.3021 9.47497 70.6271 +96.3154 9.65036 71.9345 +96.3131 9.8265 73.2474 +95.6645 9.93788 74.0777 +96.2608 10.1809 75.8894 +95.6667 10.3006 76.7814 +95.6814 10.4873 78.1734 +95.679 10.6749 79.5713 +96.2674 10.9323 81.4901 +96.15 11.1134 82.8398 +95.4919 11.2333 83.734 +96.0143 11.4949 85.6841 +96.5833 11.7676 87.7165 +95.8073 11.8792 88.5485 +96.2572 12.1455 90.5336 +95.4564 12.2568 91.3627 +95.3616 12.4602 92.8795 +95.7423 12.7303 94.8922 +95.5339 12.9262 96.3528 +95.3071 13.1226 97.8171 +95.6125 13.3968 99.8604 +95.4116 13.6043 101.408 +95.1231 13.8028 102.887 +95.3511 14.0806 104.958 +95.6823 14.3799 107.189 +95.3254 14.5807 108.685 +95.4039 14.8526 110.712 +95.6468 15.1561 112.975 +95.2209 15.3589 114.486 +95.2791 15.6445 116.615 +95.307 15.9313 118.753 +95.0581 16.1776 120.589 +95.2103 16.4981 122.978 +95.0266 16.7674 124.985 +94.9932 17.0694 127.236 +94.8685 17.3617 129.416 +94.9449 17.6985 131.926 +94.8122 18.0041 134.204 +94.7031 18.3216 136.571 +94.4477 18.6181 138.781 +94.7676 19.0375 141.907 +94.3859 19.3252 144.051 +94.7259 19.7704 147.37 +94.5376 20.1164 149.949 +94.2065 20.4407 152.366 +94.3035 20.8683 155.553 +94.4021 21.3092 158.84 +94.4 21.7404 162.054 +93.8559 22.0574 164.417 +93.9076 22.5259 167.91 +94.0957 23.043 171.764 +93.8943 23.4801 175.022 +94.012 24.0126 178.991 +94.1576 24.571 183.154 +94.1031 25.0958 187.066 +95.9594 26.1601 194.999 +116.453 32.463 241.981 +116.558 33.2356 247.741 +116.156 33.8898 252.617 +116.245 34.7156 258.773 +116.395 35.5931 265.313 +114.406 35.8369 267.131 +111.399 35.7594 266.553 +108.673 35.7641 266.588 +105.699 35.6784 265.949 +103.317 35.7873 266.761 +100.334 35.6818 265.974 +97.9888 35.7968 266.832 +95.0014 35.671 265.894 +92.6893 35.7924 266.799 +92.4626 36.7435 273.888 +92.118 37.6966 280.993 +91.9558 38.7785 289.057 +91.7755 39.9136 297.519 +91.7938 41.2043 307.139 +91.3738 42.37 315.829 +91.3154 43.7814 326.349 +91.4667 45.3882 338.327 +90.9631 46.7671 348.605 +88.6886 47.2965 352.552 +88.7092 49.1302 366.22 +88.2483 50.8247 378.851 +88.0693 52.8205 393.728 +89.402 55.925 416.868 +89.7355 58.6455 437.148 +87.2379 59.6741 444.815 +86.6894 62.1917 463.581 +86.6852 65.3671 487.251 +88.3665 70.2124 523.368 +88.8548 74.5936 556.026 +89.1586 79.3227 591.277 +94.6238 89.5222 667.305 +88.4968 89.3782 666.231 +87.295 94.532 704.648 +84.6647 98.8043 736.494 +86.4659 109.385 815.364 +85.3219 117.819 878.234 +84.698 128.722 959.506 +85.034 143.662 1070.87 +81.9918 155.905 1162.13 +76.213 165.682 1235.01 +171.468 435.032 3242.76 +142.91 435.214 3244.12 +114.341 435.363 3245.23 +85.7635 435.48 3246.1 +57.1793 435.563 3246.71 +28.5907 435.613 3247.09 +1.82077e-13 435.629 3247.21 +-28.5907 435.613 3247.09 +-57.1793 435.563 3246.71 +-85.7635 435.48 3246.1 +-42.8322 163.087 1215.66 +-56.6921 172.648 1286.93 +-64.0854 162.591 1211.96 +-200.013 434.817 3241.15 +-85.647 162.855 1213.93 +-257.056 434.286 3237.2 +-107.036 162.672 1212.57 +-314.019 433.624 3232.26 +-125.852 159.211 1186.77 +-140.836 164.356 1225.12 +-150.094 162.538 1211.57 +-114.915 116.06 865.118 +-122.041 115.461 860.656 +-129.392 115.118 858.097 +-151.96 127.571 950.921 +-540.811 429.707 3203.06 +-568.993 429.063 3198.27 +-145.825 104.616 779.815 +-156.864 107.301 799.831 +-175.743 114.855 856.134 +-112.647 70.4655 525.254 +-116.12 69.6442 519.132 +-120.619 69.4678 517.818 +-125.36 69.4288 517.527 +-131.63 70.1966 523.25 +-820.42 421.805 3144.16 +-848.072 420.837 3136.95 +-875.66 419.837 3129.49 +-903.181 418.805 3121.8 +-930.633 417.74 3113.86 +-161.623 70.2906 523.951 +-153.781 64.8505 483.4 +-143.538 58.7389 437.844 +-145.389 57.7757 430.664 +-148.915 57.5042 428.64 +-1093.65 410.643 3060.96 +-1120.7 409.407 3051.75 +-1147.52 408.091 3041.94 +-1174.26 406.744 3031.9 +-145.281 49.0394 365.543 +-144.336 47.5005 354.072 +-144.884 46.5082 346.675 +-148.712 46.5831 347.233 +-151.963 46.4698 346.389 +-1332.59 397.967 2966.47 +-1358.83 396.454 2955.2 +-448.694 127.941 953.683 +-1410.66 393.24 2931.24 +-1436.32 391.565 2918.75 +-143.72 38.3279 285.699 +-142.871 37.283 277.91 +-142.634 36.4318 271.565 +-144.691 36.1826 269.708 +-147.537 36.1302 269.317 +-408.452 97.9766 730.324 +-409.499 96.2376 717.361 +-109.6 25.2409 188.147 +-109.781 24.7805 184.715 +-111.197 24.6065 183.419 +-111.919 24.284 181.014 +-113.774 24.2095 180.459 +-115.519 24.1102 179.719 +-116.825 23.9195 178.298 +-118.556 23.8163 177.529 +-120.506 23.755 177.072 +-123.42 23.8772 177.983 +-129.227 24.5391 182.916 +-416.596 77.6569 578.86 +-419.032 76.6866 571.627 +-419.112 75.3104 561.369 +-421.511 74.3751 554.397 +-422.907 73.282 546.249 +-425.668 72.4428 539.993 +-426.049 71.2176 530.861 +-426.805 70.0799 522.38 +-428.844 69.1716 515.61 +-433.303 68.6613 511.806 +-434.741 67.6807 504.496 +-433.721 66.3408 494.509 +-435.474 65.4466 487.844 +-437.812 64.6523 481.923 +-438.863 63.681 474.682 +-440.707 62.8388 468.405 +-442.543 62.0067 462.202 +-444.929 61.2613 456.646 +-446.059 60.354 449.883 +-447.599 59.5144 443.625 +-449.205 58.6946 437.513 +-451.026 57.9125 431.684 +-452.996 57.1581 426.06 +-454.39 56.3402 419.964 +-455.711 55.5233 413.874 +-458.149 54.8501 408.856 +-459.185 54.0168 402.645 +-384.525 44.4447 331.294 +-382.864 43.4787 324.094 +-382.792 42.7081 318.349 +-382.417 41.9155 312.441 +-382.2 41.1523 306.752 +-382.461 40.4506 301.522 +-382.658 39.7515 296.31 +-142.09 14.4969 108.061 +-142.716 14.2995 106.589 +-142.604 14.0306 104.585 +-143.601 13.8724 103.406 +-142.877 13.5507 101.008 +-142.205 13.2396 98.6888 +-143.068 13.0741 97.455 +-147.071 13.1901 98.32 +-146.681 12.9089 96.2237 +-495.067 42.7478 318.645 +-496.336 42.0433 313.393 +-499.076 41.4657 309.088 +-501.267 40.8434 304.45 +-503.071 40.1918 299.592 +-824.665 64.5891 481.452 +-506.798 38.9052 290.002 +-405.412 30.498 227.334 +-2865.69 211.21 1574.38 +-2879.44 207.877 1549.53 +-2892.98 204.528 1524.56 +-2906.29 201.164 1499.49 +-405.141 27.4476 204.596 +-2932.25 194.389 1448.99 +-385.673 25.0111 186.435 +-379.988 24.099 179.636 +-378.655 23.4774 175.002 +-381.911 23.1419 172.502 +-380.492 22.5249 167.902 +-380.213 21.9817 163.853 +-379.432 21.415 159.629 +-380.361 20.9486 156.152 +-380.794 20.4566 152.485 +-380.076 19.9068 148.387 +-381.274 19.4602 145.057 +-380.851 18.9332 141.13 +-380.294 18.4043 137.187 +-381.393 17.9578 133.859 +-380.855 17.4367 129.975 +-382.649 17.0236 126.895 +-381.088 16.464 122.724 +-380.724 15.9612 118.976 +-380.896 15.4839 115.418 +-380.747 14.9959 111.781 +-382.005 14.5646 108.565 +-380.441 14.0285 104.569 +-380.768 13.5658 101.12 +-380.482 13.0835 97.5256 +-379.58 12.5837 93.7995 +-379.808 12.1241 90.3742 +-380.784 11.689 87.1303 +-380.267 11.2093 83.5547 +-380.402 10.751 80.139 +-381.093 10.3092 76.8458 +-380.675 9.83875 73.3387 +-381.306 9.39667 70.0434 +-380.136 8.91232 66.433 +-379.819 8.45115 62.9954 +-380.26 8.00805 59.6925 +-380.573 7.56259 56.3721 +-380.857 7.11702 53.0507 +-381.409 6.67656 49.7676 +-380.145 6.20622 46.2616 +-380.24 5.76038 42.9382 +-379.311 5.30089 39.5132 +-380.938 4.87714 36.3545 +-380.945 4.43147 33.0325 +-380.424 3.98093 29.6742 +-380.77 3.54029 26.3896 +-379.89 3.08943 23.0288 +-379.979 2.64781 19.737 +-380.737 2.2103 16.4757 +-3274.5 15.2041 113.333 +-145.35 0.506077 3.77233 +-144.878 0.336245 2.5064 +-145.594 0.168941 1.2593 +95.2 5.32907e-15 -1.7053e-13 +95.9963 0.118876 0.82927 +96.0854 0.237991 1.66021 +96.0671 0.356962 2.49014 +96.0415 0.475908 3.3199 +96.0085 0.594817 4.1494 +95.9683 0.713682 4.9786 +95.9208 0.832491 5.80739 +95.8659 0.951238 6.63577 +95.8038 1.06991 7.46362 +95.7343 1.1885 8.29092 +96.7525 1.32197 9.22194 +96.6675 1.44173 10.0574 +96.5752 1.56138 10.8921 +96.4755 1.6809 11.7258 +96.3684 1.80029 12.5587 +96.2541 1.91956 13.3907 +96.1323 2.03868 14.2217 +95.9045 2.15543 15.0361 +95.6697 2.27175 15.8476 +96.2157 2.40738 16.7937 +96.064 2.52644 17.6242 +95.905 2.64529 18.4534 +95.7386 2.76395 19.2811 +95.565 2.88241 20.1075 +96.2628 3.02826 21.125 +96.0729 3.14736 21.9558 +96.0701 3.27283 22.831 +95.8652 3.39167 23.66 +95.653 3.51024 24.4872 +96.2062 3.65794 25.5175 +95.9776 3.77693 26.3476 +96.6068 3.93084 27.4213 +96.3614 4.05031 28.2547 +96.1086 4.16949 29.0861 +95.8486 4.28833 29.9151 +96.4371 4.44632 31.0172 +96.16 4.56558 31.8491 +96.7266 4.72605 32.9686 +96.338 4.84092 33.7699 +97.0702 5.01341 34.9732 +96.4772 5.11852 35.7064 +97.1857 5.29372 36.9286 +96.8565 5.41386 37.7667 +96.5198 5.53359 38.6019 +97.0074 5.70178 39.7752 +96.7451 5.82722 40.6503 +96.4747 5.95246 41.5239 +96.8358 6.11787 42.6778 +96.5469 6.24344 43.5538 +96.0686 6.35674 44.3442 +96.4864 6.53044 45.5559 +96.0811 6.64968 46.3877 +96.4739 6.82538 47.6134 +96.0505 6.94459 48.445 +96.4181 7.12224 49.6842 +96.7711 7.30131 50.9334 +96.3184 7.42086 51.7674 +96.558 7.59489 52.9814 +96.8706 7.77705 54.2521 +96.3886 7.89671 55.0869 +96.5886 8.07339 56.3194 +96.7742 8.25115 57.5594 +96.2631 8.37067 58.3932 +96.5079 8.55722 59.6946 +96.6527 8.73739 60.9514 +96.1116 8.85675 61.784 +96.2304 9.03808 63.049 +96.3342 9.22038 64.3207 +96.5876 9.41969 65.7111 +95.9227 9.5308 66.4862 +96.0656 9.72337 67.8295 +96.1112 9.90869 69.1223 +95.4982 10.0273 69.9498 +95.6765 10.2306 71.3679 +95.6784 10.4178 72.6737 +96.3737 10.6844 74.5335 +96.3391 10.874 75.8562 +95.6667 10.9929 76.6854 +95.6043 11.1831 78.0126 +95.6023 11.3832 79.4082 +95.507 11.5748 80.7453 +96.15 11.8602 82.7361 +96.0161 12.0541 84.0883 +95.3455 12.182 84.9808 +95.9198 12.4722 87.0049 +95.7342 12.6679 88.3702 +95.6769 12.8836 89.8753 +96.1038 13.1692 91.8673 +95.9322 13.3772 93.3184 +95.7423 13.5858 94.7735 +96.1648 13.886 96.8678 +95.2377 13.9943 97.6236 +95.6813 14.3073 99.8067 +95.3434 14.5082 101.208 +95.7311 14.8245 103.415 +95.418 15.0374 104.9 +95.6823 15.3463 107.055 +95.3254 15.5606 108.549 +95.4039 15.8507 110.574 +95.1326 16.0879 112.228 +95.2209 16.3911 114.343 +95.1532 16.6738 116.315 +95.307 17.002 118.605 +95.1197 17.276 120.516 +95.2712 17.6182 122.904 +95.0868 17.9055 124.907 +94.4579 18.1138 126.36 +94.9861 18.5515 129.414 +94.8869 18.8763 131.68 +94.7548 19.2024 133.955 +94.5898 19.5295 136.236 +94.3918 19.8577 138.526 +94.6572 20.2932 141.564 +94.6038 20.6715 144.203 +94.8871 21.1349 147.436 +94.5376 21.4683 149.761 +94.6245 21.9111 152.851 +94.3035 22.2707 155.359 +94.4021 22.7412 158.641 +93.9 23.0785 160.994 +93.8559 23.5397 164.211 +93.8591 24.0273 167.613 +93.714 24.4919 170.853 +93.8943 25.058 174.803 +94.012 25.6263 178.768 +93.749 26.1085 182.131 +94.1477 26.795 186.92 +93.1539 27.102 189.061 +116.496 34.6575 241.769 +116.431 35.4306 247.161 +116.487 36.2707 253.022 +116.083 36.9969 258.088 +116.475 38.0111 265.162 +115.422 38.5849 269.165 +111.705 38.2675 266.951 +109.984 38.628 269.466 +105.992 38.1819 266.354 +104.249 38.5369 268.831 +100.65 38.1994 266.476 +98.9122 38.5625 269.009 +95.3019 38.1886 266.401 +93.5032 38.5332 268.805 +92.3674 39.1724 273.264 +92.0562 40.203 280.453 +92.016 41.4115 288.884 +90.5768 42.0396 293.265 +91.5665 43.8644 305.995 +91.3462 45.2038 315.338 +91.1817 46.6553 325.464 +91.0008 48.1919 336.183 +88.5093 48.5637 338.777 +87.7693 49.9519 348.461 +88.1023 52.0732 363.259 +87.7084 53.9086 376.063 +87.8528 56.2318 392.269 +87.011 58.0873 405.213 +89.6956 62.559 436.407 +86.9326 63.4616 442.704 +86.6894 66.3712 463.001 +85.9906 69.2011 482.742 +87.8053 74.4553 519.395 +88.495 79.2842 553.081 +88.9665 84.4712 589.265 +95.5423 96.466 672.94 +88.6273 95.5255 666.379 +86.7222 100.223 699.149 +85.5816 106.586 743.539 +85.5043 115.438 805.287 +85.0823 125.384 874.672 +82.0571 133.09 928.426 +83.1588 149.935 1045.94 +65.3827 132.678 925.556 +74.4609 172.753 1205.11 +48.976 132.608 925.062 +142.91 464.463 3240.06 +32.5682 132.34 923.195 +31.3731 170.008 1185.97 +16.2604 132.188 922.132 +10.4334 169.648 1183.45 +4.88498e-14 132.094 921.48 +-10.4361 169.691 1183.75 +-16.2238 131.89 920.053 +-85.7635 464.747 3242.04 +-32.3902 131.617 918.149 +-52.147 169.479 1182.27 +-48.5468 131.446 916.956 +-72.8431 168.998 1178.92 +-64.7549 131.405 916.668 +-93.79 169.103 1179.65 +-80.8544 131.139 914.818 +-114.756 169.114 1179.73 +-97.2115 131.244 915.546 +-135.493 168.748 1177.18 +-113.302 130.941 913.433 +-115.137 124.099 865.704 +-123.321 124.514 868.598 +-129.718 123.163 859.177 +-147.455 132.108 921.574 +-540.811 458.585 3199.06 +-568.924 457.843 3193.88 +-146.08 111.842 780.201 +-161.31 117.758 821.471 +-176.341 122.99 857.972 +-113.707 75.909 529.536 +-116.271 74.4215 519.159 +-122.013 74.9936 523.15 +-125.78 74.343 518.612 +-792.705 451.151 3147.2 +-820.42 450.152 3140.23 +-848.072 449.119 3133.02 +-875.66 448.052 3125.58 +-903.181 446.951 3117.9 +-930.633 445.814 3109.97 +-162.91 75.6116 527.461 +-150.353 67.6659 472.033 +-145.145 63.3881 442.191 +-145.103 61.5373 429.28 +-150.771 62.1336 433.439 +-1093.65 438.24 3057.13 +-1120.7 436.921 3047.93 +-140.433 53.2983 371.805 +-144.745 53.5065 373.257 +-145.977 52.5858 366.835 +-144.973 50.9164 355.189 +-145.381 49.8042 347.43 +-150.392 50.2753 350.717 +-151.365 49.3975 344.593 +-1332.75 424.764 2963.12 +-1358.66 423.047 2951.14 +-447.341 136.128 949.62 +-1410.48 419.617 2927.22 +-469.715 136.657 953.313 +-144.925 41.2467 287.734 +-142.281 39.6242 276.415 +-142.403 38.8172 270.786 +-146.24 39.0278 272.255 +-148.206 38.733 270.199 +-409.567 104.847 731.402 +-108.776 27.2819 190.317 +-109.35 26.8758 187.483 +-109.882 26.4704 184.655 +-111.506 26.3333 183.699 +-112.389 26.0248 181.547 +-114.251 25.9448 180.989 +-115.412 25.7065 179.327 +-117.914 25.765 179.735 +-118.942 25.4996 177.884 +-121.848 25.6337 178.819 +-123.646 25.5287 178.087 +-417.047 84.5161 589.578 +-416.829 82.9221 578.459 +-420.09 82.0469 572.353 +-419.647 80.4742 561.382 +-424.34 79.9062 557.42 +-423.82 78.3758 546.744 +-426.407 77.4454 540.253 +-426.236 76.0372 530.43 +-428.253 75.0433 523.497 +-429.098 73.8641 515.271 +-429.896 72.6995 507.147 +-2128.05 353.56 2466.41 +-435.558 71.0991 495.982 +-435.673 69.8767 487.455 +-439.15 69.2081 482.791 +-439.809 68.1072 475.111 +-442.549 67.342 469.773 +-442.818 66.215 461.911 +-446.457 65.603 457.642 +-445.428 64.3189 448.684 +-449.72 63.8151 445.169 +-449.562 62.6888 437.313 +-452.321 61.9819 432.381 +-453.432 61.058 425.936 +-456.072 60.349 420.99 +-456.006 59.2932 413.625 +-458.595 58.5932 408.742 +-462.555 58.0701 405.093 +-383.392 47.292 329.906 +-382.484 46.3546 323.366 +-383.022 45.6057 318.142 +-383.343 44.8408 312.806 +-382.978 44.0072 306.991 +-381.443 43.0543 300.344 +-382.973 42.4579 296.183 +-141.455 15.4021 107.444 +-142.556 15.2434 106.337 +-142.443 14.9566 104.336 +-142.549 14.6963 102.52 +-142.714 14.4449 100.767 +-143.27 14.2352 99.3039 +-142.327 13.8804 96.8286 +-147.817 14.148 98.6952 +-2732.23 256.614 1790.12 +-496.577 45.7599 319.218 +-496.589 44.8916 313.161 +-500.857 44.4103 309.803 +-501.267 43.5883 304.069 +-505.557 43.1047 300.695 +-845.861 70.7014 493.208 +-513.12 42.0377 293.252 +-2851.72 228.945 1597.1 +-2865.69 225.405 1572.41 +-406.98 31.3558 218.736 +-2892.98 218.273 1522.65 +-2906.29 214.683 1497.61 +-405.319 29.3051 204.43 +-2932.25 207.453 1447.18 +-381.179 26.381 184.032 +-381.433 25.8164 180.093 +-381.193 25.2231 175.954 +-379.454 24.5383 171.177 +-379.395 23.9694 167.209 +-378.929 23.3798 163.096 +-379.708 22.8709 159.546 +-380.546 22.3672 156.032 +-380.794 21.8314 152.294 +-380.913 21.2915 148.528 +-381.368 20.7731 144.912 +-379.071 20.1113 140.295 +-380.294 19.6412 137.015 +-380.921 19.141 133.526 +-380.666 18.5993 129.748 +-380.562 18.0686 126.046 +-381.088 17.5704 122.57 +-380.724 17.0339 118.827 +-380.896 16.5245 115.274 +-380.651 15.9997 111.613 +-379.891 15.4574 107.83 +-380.441 14.9713 104.438 +-379.995 14.4481 100.789 +-380.192 13.9522 97.3293 +-380.938 13.4774 94.0174 +-380.975 12.9787 90.5384 +-380.394 12.4617 86.9322 +-379.682 11.9442 83.3217 +-380.206 11.4677 79.9975 +-381.681 11.019 76.868 +-380.282 10.4891 73.1714 +-379.831 9.98939 69.6853 +-380.431 9.51866 66.4015 +-381.199 9.0519 63.1454 +-380.458 8.55067 59.6488 +-380.573 8.07083 56.3016 +-379.669 7.57162 52.8191 +-380.517 7.1086 49.5891 +-380.741 6.63368 46.276 +-380.836 6.15713 42.9517 +-380.802 5.67937 39.6189 +-380.938 5.2049 36.309 +-380.546 4.72433 32.9566 +-380.822 4.25293 29.6681 +-381.069 3.7812 26.3774 +-381.287 3.30917 23.0845 +-380.078 2.82651 19.7175 +-380.438 2.35699 16.4422 +-3274.5 16.2259 113.191 +-145.45 0.54046 3.77021 +-146.578 0.363053 2.53263 +-144.794 0.179304 1.25081 +95.3 -1.77636e-15 -2.27374e-13 +95.9963 0.126352 0.828164 +96.0854 0.252959 1.65799 +95.9671 0.379019 2.48424 +96.0415 0.505839 3.31547 +96.0085 0.632226 4.14387 +95.9683 0.758567 4.97196 +96.9189 0.894055 5.86 +95.9657 1.01211 6.63381 +95.9034 1.13838 7.46143 +96.7305 1.27639 8.36601 +96.653 1.40366 9.20016 +96.5681 1.53082 10.0336 +96.5752 1.65957 10.8775 +96.4755 1.78661 11.7102 +96.3684 1.91352 12.542 +96.155 2.03819 13.3591 +96.1323 2.1669 14.2027 +95.8058 2.28862 15.0005 +95.6697 2.41463 15.8265 +96.2157 2.55879 16.7713 +96.064 2.68533 17.6007 +95.905 2.81166 18.4287 +95.7386 2.93778 19.2554 +95.565 3.06368 20.0806 +95.3841 3.18935 20.9043 +95.196 3.31476 21.7263 +96.0701 3.47866 22.8006 +95.8652 3.60498 23.6285 +96.4275 3.76121 24.6525 +96.2062 3.888 25.4835 +95.9776 4.01446 26.3124 +96.6068 4.17806 27.3847 +96.3614 4.30504 28.217 +96.9693 4.4714 29.3074 +96.7069 4.59886 30.1428 +96.4371 4.72596 30.9759 +96.16 4.85271 31.8066 +96.7266 5.02328 32.9246 +96.338 5.14537 33.7248 +95.9426 5.26681 34.5208 +96.4772 5.44043 35.6588 +96.0654 5.56179 36.4543 +96.8565 5.75435 37.7164 +96.5198 5.8816 38.5504 +96.915 6.0546 39.6843 +96.7451 6.1937 40.596 +96.4747 6.32682 41.4685 +96.8358 6.50263 42.6209 +96.5469 6.6361 43.4957 +96.1593 6.76291 44.3269 +96.5766 6.94765 45.5378 +96.171 7.0745 46.3691 +96.5634 7.26137 47.594 +96.8524 7.44297 48.7843 +96.4181 7.57016 49.6179 +95.9764 7.69678 50.4478 +96.3184 7.88757 51.6984 +96.558 8.07254 52.9107 +96.0873 8.19932 53.7417 +96.3886 8.39334 55.0134 +96.6748 8.58878 56.2944 +96.0027 8.70017 57.0244 +96.2631 8.89711 58.3153 +96.5079 9.0954 59.615 +95.9779 9.22208 60.4452 +96.0278 9.40555 61.6478 +96.3138 9.61482 63.0195 +96.3342 9.80026 64.2349 +95.7635 9.92668 65.0635 +95.9227 10.1302 66.3975 +96.0656 10.3349 67.739 +96.1112 10.5319 69.0301 +96.3021 10.7477 70.4446 +95.6765 10.874 71.2727 +95.5991 11.0638 72.5167 +95.6645 11.2728 73.8863 +96.3391 11.5579 75.755 +95.6667 11.6842 76.5831 +95.6814 11.896 77.9714 +95.679 12.1088 79.3658 +95.507 12.3028 80.6376 +96.15 12.6061 82.6258 +96.0161 12.8122 83.9762 +96.0143 13.039 85.4627 +95.8461 13.2464 86.822 +95.8073 13.4749 88.3198 +95.5318 13.6731 89.6193 +95.4564 13.9031 91.1267 +95.2903 14.1234 92.5703 +95.7423 14.4402 94.6471 +95.604 14.6733 96.1745 +95.3071 14.8853 97.5644 +95.6125 15.1963 99.6024 +95.4116 15.4317 101.146 +95.7311 15.7569 103.277 +95.3511 15.9719 104.687 +95.0197 16.1985 106.171 +95.3254 16.5392 108.405 +95.4039 16.8476 110.426 +95.1326 17.0996 112.078 +95.2209 17.422 114.191 +95.0903 17.7108 116.084 +95.2447 18.0595 118.369 +95.1813 18.3743 120.432 +94.5406 18.5827 121.799 +94.6053 18.9353 124.11 +95.0527 19.3742 126.987 +94.4571 19.6085 128.522 +94.9449 20.0759 131.585 +94.7548 20.4101 133.776 +94.5898 20.7577 136.055 +94.3918 21.1066 138.341 +94.1053 21.4438 140.552 +94.1136 21.8577 143.264 +94.3498 22.337 146.406 +94.1667 22.7288 148.974 +94.2065 23.1863 151.972 +93.8399 23.5551 154.389 +94.3006 24.1455 158.26 +94.4 24.6606 161.636 +93.8559 25.0202 163.992 +93.8107 25.5253 167.303 +93.7617 26.0455 170.713 +93.8943 26.634 174.57 +93.5964 27.1177 177.74 +93.7944 27.7639 181.976 +93.7462 28.3588 185.875 +92.9785 28.7521 188.453 +110.727 35.013 229.489 +116.051 37.5358 246.025 +116.031 38.4008 251.694 +116.53 39.4753 258.737 +115.478 40.0559 262.543 +115.735 41.1227 269.535 +112.7 41.0366 268.971 +109.984 41.0574 269.107 +107.275 41.0743 269.218 +104.572 41.0873 269.303 +101.875 41.0962 269.361 +99.1858 41.1011 269.394 +96.2365 40.9885 268.655 +93.8287 41.0992 269.381 +92.526 41.7075 273.368 +92.1798 42.7887 280.455 +91.3544 43.6995 286.425 +90.1967 44.496 291.645 +91.1405 46.4062 304.165 +91.2084 47.9742 314.442 +90.9145 49.4441 324.077 +90.7678 51.0916 334.875 +89.1854 52.0122 340.909 +87.6483 53.0203 347.517 +87.472 54.9522 360.179 +87.2585 57.0051 373.634 +87.2468 59.356 389.043 +86.9071 61.6667 404.189 +89.3966 66.2717 434.372 +87.0852 67.5713 442.89 +86.1063 70.0709 459.273 +85.6433 73.2562 480.151 +85.3461 76.9213 504.174 +88.5263 84.3004 552.539 +88.5378 89.3512 585.644 +95.6537 102.652 672.825 +89.5801 102.625 672.645 +86.8441 106.676 699.197 +86.0571 113.919 746.673 +84.7203 121.573 796.839 +83.9896 131.558 862.288 +80.2879 138.41 907.197 +72.5433 139.022 911.206 +63.4505 136.855 897.004 +56.299 138.83 909.95 +47.4478 136.55 895.001 +40.108 138.551 908.117 +31.612 136.533 894.893 +24.0252 138.379 906.99 +15.7525 136.113 892.139 +7.99351 138.149 905.487 +4.9738e-14 136.164 892.473 +-7.98827 138.059 904.894 +-15.7438 136.037 891.645 +-23.9336 137.851 903.532 +-31.4759 135.945 891.04 +-39.8899 137.797 903.179 +-47.1809 135.781 889.967 +-55.8167 137.641 902.156 +-62.8994 135.667 889.214 +-71.7744 137.548 901.548 +-78.7452 135.751 889.766 +-87.6989 137.369 900.369 +-94.4415 135.523 888.272 +-103.921 137.566 901.665 +-110.267 135.448 887.783 +-117.474 134.58 882.093 +-123.28 132.299 867.145 +-131.196 132.401 867.808 +-144.123 137.243 899.548 +-147.553 132.987 871.652 +-150.379 128.629 843.088 +-147.501 120.033 786.743 +-162.684 126.23 827.361 +-178.693 132.47 868.26 +-113.811 80.7568 529.313 +-117.375 79.8529 523.388 +-122.216 79.8424 523.319 +-127.158 79.8838 523.591 +-792.705 479.525 3143 +-820.42 478.463 3136.04 +-848.072 477.365 3128.84 +-875.66 476.231 3121.41 +-903.181 475.06 3113.74 +-930.633 473.852 3105.82 +-163.436 80.6265 528.459 +-143.527 68.6564 450.002 +-145.392 67.4894 442.353 +-146.5 66.0368 432.832 +-150.933 66.1124 433.328 +-1093.78 465.857 3053.42 +-1120.7 464.4 3043.87 +-1147.52 462.907 3034.08 +-144.709 56.8576 372.668 +-145.208 55.5983 364.414 +-144.935 54.1046 354.623 +-146.759 53.4381 350.255 +-150.627 53.5206 350.796 +-1306.58 453.215 2970.56 +-1332.75 451.477 2959.17 +-453.799 150.186 984.38 +-451.863 146.152 957.939 +-435.634 137.751 902.878 +-419.653 129.771 850.573 +-144.613 43.7461 286.73 +-142.825 42.2776 277.104 +-141.988 41.1381 269.636 +-145.348 41.2293 270.234 +-149.78 41.6064 272.705 +-410.488 111.691 732.07 +-110.254 29.3915 192.644 +-109.35 28.566 187.233 +-110.745 28.3559 185.856 +-112.021 28.1187 184.301 +-112.912 27.7902 182.148 +-114.781 27.7044 181.586 +-116.11 27.4887 180.172 +-117.914 27.3854 179.495 +-119.936 27.3297 179.13 +-122.407 27.3709 179.4 +-126.139 27.6811 181.434 +-417.392 89.9056 589.278 +-418.455 88.4811 579.941 +-420.09 87.2069 571.59 +-422.384 86.0931 564.289 +-424.099 84.8833 556.36 +-426.255 83.7835 549.151 +-426.961 82.4229 540.234 +-427.73 81.1025 531.579 +-428.567 79.8214 523.182 +-436.477 79.8595 523.432 +-430.796 77.4334 507.53 +-433.766 76.5996 502.065 +-435.951 75.6389 495.768 +-437.594 74.599 488.952 +-439.552 73.628 482.588 +-441.025 72.5907 475.789 +-442.753 71.6104 469.364 +-444.402 70.6311 462.945 +-446.387 69.718 456.96 +-448.372 68.8158 451.047 +-449.72 67.8285 444.576 +-451.202 66.8745 438.323 +-453.4 66.0371 432.834 +-454.447 65.0434 426.321 +-456.072 64.1445 420.429 +-457.407 63.2157 414.341 +-459.264 62.3691 408.793 +-382.941 51.0988 334.922 +-383.77 50.3157 329.79 +-382.864 49.3189 323.256 +-383.252 48.503 317.908 +-383.652 47.6992 312.64 +-381.967 46.6515 305.773 +-381.678 45.7901 300.127 +-383.367 45.1746 296.093 +-141.217 16.3433 107.12 +-142.477 16.193 106.136 +-143.167 15.978 104.726 +-142.468 15.6116 102.325 +-142.796 15.3622 100.69 +-143.106 15.1131 99.0577 +-146.694 15.2061 99.6667 +-148.481 15.1052 99.0053 +-495.578 49.4726 324.264 +-496.912 48.6707 319.008 +-498.36 47.885 313.858 +-501.366 47.2513 309.704 +-503.569 46.5424 305.058 +-506.414 45.8933 300.803 +-520.079 46.2049 302.846 +-2837.53 247.087 1619.51 +-2851.72 243.344 1594.97 +-2865.69 239.581 1570.31 +-2879.44 235.799 1545.53 +-2892.98 232 1520.62 +-2906.29 228.184 1495.61 +-2919.38 224.35 1470.48 +-386.522 29.0657 190.508 +-380.46 27.9873 183.44 +-380.259 27.3555 179.299 +-381.646 26.8414 175.929 +-379.454 26.0815 170.949 +-380.674 25.5627 167.548 +-380.58 24.9585 163.588 +-380.353 24.3505 159.603 +-380.823 23.7912 155.938 +-380.794 23.2044 152.091 +-380.541 22.6083 148.184 +-380.807 22.0471 144.506 +-380.008 21.4289 140.454 +-379.354 20.8248 136.495 +-381.581 20.3801 133.579 +-380.949 19.7837 129.67 +-380.847 19.2195 125.972 +-380.518 18.6476 122.224 +-381.105 18.1233 118.787 +-380.418 17.5416 114.975 +-380.651 17.006 111.464 +-380.371 16.4504 107.822 +-379.092 15.8564 103.929 +-380.575 15.3803 100.808 +-379.611 14.807 97.051 +-381.326 14.3396 93.9877 +-380.975 13.7949 90.4176 +-380.784 13.2591 86.9053 +-380.658 12.728 83.4244 +-380.01 12.1826 79.8497 +-380.211 11.6669 76.4699 +-380.773 11.1632 73.1681 +-380.716 10.6424 69.7544 +-380.727 10.1252 66.3644 +-380.805 9.61123 62.9959 +-380.458 9.08843 59.5693 +-381.068 8.58957 56.2995 +-380.164 8.0583 52.8174 +-380.318 7.55172 49.497 +-380.741 7.05088 46.2143 +-380.24 6.53412 42.8273 +-380.902 6.03814 39.5764 +-380.241 5.52213 36.1943 +-380.945 5.02672 32.9471 +-380.224 4.5133 29.582 +-379.872 4.00638 26.2594 +-380.389 3.50901 22.9995 +-380.877 3.01058 19.7326 +-380.138 2.50325 16.4073 +-3274.5 17.2464 113.04 +-145.25 0.57366 3.76 +-145.578 0.383254 2.512 +-146.194 0.192424 1.26123 +96.1 1.77636e-15 1.13687e-13 +95.9963 0.133818 0.82699 +96.0854 0.267906 1.65564 +96.0671 0.401831 2.4833 +96.0415 0.535728 3.31078 +96.0085 0.669584 4.138 +96.0682 0.804225 4.97007 +95.9208 0.937131 5.79143 +95.9657 1.07192 6.6244 +95.8038 1.20439 7.44311 +96.7305 1.35182 8.35416 +96.653 1.4866 9.18712 +96.6675 1.62295 10.0297 +96.5752 1.75764 10.8621 +96.4755 1.89218 11.6936 +96.3684 2.02658 12.5242 +96.2541 2.16084 13.3539 +96.1323 2.29494 14.1826 +95.6082 2.41886 14.9485 +95.6697 2.55731 15.804 +96.2157 2.70998 16.7476 +96.064 2.844 17.5758 +95.905 2.97779 18.4026 +95.7386 3.11137 19.2281 +95.565 3.24471 20.0522 +95.3841 3.3778 20.8747 +95.196 3.51062 21.6955 +95.8757 3.67675 22.7221 +95.8652 3.81799 23.595 +95.653 3.95146 24.4199 +96.2062 4.11773 25.4474 +96.1703 4.26022 26.3279 +95.7417 4.38531 27.101 +95.4984 4.51859 27.9247 +96.1086 4.69358 29.0061 +95.8486 4.82736 29.8329 +96.4371 5.00521 30.932 +96.16 5.13945 31.7616 +96.7266 5.3201 32.8779 +96.338 5.4494 33.6771 +96.7883 5.62719 34.7758 +96.7582 5.77867 35.7119 +97.0924 5.9534 36.7917 +96.8565 6.09437 37.6629 +97.2616 6.27701 38.7916 +96.915 6.41235 39.628 +96.7451 6.55968 40.5385 +96.383 6.69429 41.3704 +96.105 6.83489 42.2393 +96.5469 7.02821 43.434 +96.0686 7.15576 44.2223 +96.4864 7.3513 45.4307 +96.171 7.49252 46.3034 +96.5634 7.69043 47.5265 +96.0505 7.8175 48.3118 +96.4181 8.01747 49.5476 +95.9764 8.15157 50.3763 +96.2305 8.34602 51.578 +96.558 8.54954 52.8358 +96.0873 8.68381 53.6656 +96.3886 8.8893 54.9354 +96.6748 9.09628 56.2146 +96.0885 9.22247 56.9945 +96.2631 9.42283 58.2327 +96.5079 9.63283 59.5305 +96.6527 9.83565 60.7839 +96.1116 9.97 61.6142 +96.2304 10.1741 62.8757 +96.3342 10.3793 64.1439 +96.5052 10.5947 65.4746 +95.9227 10.7288 66.3034 +96.0656 10.9456 67.6431 +96.1112 11.1542 68.9323 +95.4982 11.2877 69.7575 +96.3154 11.5934 71.647 +96.3131 11.805 72.9547 +95.7433 11.9487 73.8424 +95.713 12.1612 75.1559 +95.589 12.3646 76.4125 +95.6814 12.599 77.8609 +95.6023 12.814 79.1899 +95.507 13.0298 80.5233 +95.6217 13.2777 82.0554 +96.0161 13.5692 83.8572 +95.2712 13.7025 84.681 +95.9198 14.0399 86.7657 +95.7342 14.2602 88.1273 +95.6043 14.492 89.5602 +96.1038 14.8245 91.6147 +95.9322 15.0587 93.0618 +95.7423 15.2935 94.513 +95.5339 15.5289 95.9677 +95.3071 15.7649 97.4262 +95.6125 16.0942 99.4613 +95.4116 16.3435 101.002 +95.7987 16.6997 103.204 +95.418 16.9275 104.611 +95.6823 17.2753 106.76 +95.3254 17.5165 108.251 +95.5338 17.8674 110.42 +95.1326 18.11 111.919 +95.2209 18.4514 114.029 +95.0903 18.7573 115.919 +95.307 19.1391 118.279 +95.1197 19.4475 120.185 +95.0885 19.7948 122.331 +95.0266 20.1435 124.486 +94.9932 20.5062 126.728 +94.5159 20.78 128.42 +94.8869 21.249 131.318 +94.7548 21.6161 133.586 +94.5898 21.9843 135.862 +94.3358 22.3405 138.063 +94.7124 22.8574 141.258 +94.6038 23.2698 143.806 +94.3498 23.6569 146.198 +94.0607 24.0449 148.596 +94.2065 24.5563 151.757 +94.3035 25.0701 154.932 +94.3006 25.5723 158.035 +93.9 25.9794 160.552 +93.8559 26.4986 163.76 +93.8107 27.0335 167.066 +93.714 27.5704 170.384 +93.5187 28.0948 173.625 +93.6426 28.7342 177.576 +93.749 29.3903 181.63 +93.7015 30.0201 185.523 +93.3731 30.5803 188.985 +101.773 34.083 210.631 +116.009 39.7392 245.587 +116.114 40.6989 251.517 +116.286 41.7203 257.829 +115.757 42.5253 262.805 +115.969 43.6408 269.698 +113.006 43.5794 269.319 +110.322 43.6168 269.55 +107.275 43.5013 268.836 +104.572 43.5151 268.921 +101.875 43.5245 268.979 +99.22 43.5448 269.105 +96.5369 43.5459 269.112 +93.8287 43.5277 268.999 +92.7482 44.278 273.636 +91.9326 45.1955 279.306 +91.5048 46.3579 286.49 +90.0212 47.0336 290.665 +91.2257 49.1943 304.019 +91.236 50.8244 314.093 +91.0481 52.4427 324.093 +90.7937 54.126 334.496 +89.4357 55.2401 341.382 +87.5031 56.0602 346.45 +87.542 58.2459 359.957 +87.2585 60.3734 373.105 +87.0953 62.7541 387.818 +86.6576 65.123 402.457 +89.3368 70.1406 433.466 +87.1997 71.6581 442.844 +85.7236 73.8815 456.584 +85.5565 77.5062 478.985 +85.6597 81.7659 505.309 +88.4011 89.1554 550.976 +88.257 94.3305 582.958 +95.7928 108.876 672.85 +89.6845 108.816 672.475 +86.7222 112.821 697.227 +85.1967 119.444 738.161 +83.8841 127.486 787.856 +84.7852 140.652 869.221 +78.4053 143.152 884.67 +70.7544 143.606 887.476 +62.2856 142.281 879.288 +54.8948 143.367 885.999 +46.5738 141.954 877.269 +39.0132 142.732 882.076 +30.9349 141.504 874.485 +23.4074 142.787 882.416 +15.4489 141.377 873.701 +7.79105 142.607 881.303 +4.44089e-14 141.398 873.834 +-7.78232 142.447 880.316 +-15.4157 141.073 871.825 +-23.3158 142.228 878.962 +-30.8442 141.089 871.921 +-38.8605 142.173 878.624 +-46.2755 141.045 871.65 +-54.4248 142.139 878.411 +-61.7484 141.054 871.706 +-69.9306 141.934 877.143 +-77.159 140.876 870.607 +-85.4752 141.796 876.296 +-92.5809 140.703 869.538 +-101.17 141.838 876.553 +-108.244 140.82 870.259 +-116.743 141.645 875.362 +-122.556 139.294 860.833 +-128.166 136.986 846.565 +-140.212 141.408 873.898 +-147.949 141.223 872.754 +-147.879 133.964 827.893 +-147.775 127.361 787.083 +-161.692 132.873 821.15 +-173.929 136.556 843.909 +-113.936 85.6224 529.142 +-117.548 84.6961 523.418 +-122.193 84.5446 522.482 +-127.555 84.8681 524.481 +-792.705 507.859 3138.55 +-820.42 506.735 3131.6 +-848.072 505.572 3124.41 +-875.66 504.37 3116.99 +-903.181 503.131 3109.33 +-930.633 501.851 3101.42 +-163.173 85.2532 526.861 +-143.647 72.7742 449.741 +-145.609 71.5837 442.384 +-146.626 69.9994 432.593 +-151.129 70.1096 433.274 +-1093.78 493.384 3049.09 +-1120.7 491.841 3039.55 +-1147.52 490.259 3029.78 +-144.888 60.2918 372.601 +-145.208 58.8836 363.898 +-144.935 57.3015 354.121 +-146.759 56.5957 349.759 +-150.627 56.683 350.299 +-1306.58 479.995 2966.35 +-1332.75 478.155 2954.97 +-1358.66 476.222 2943.03 +-446.623 152.993 945.488 +-1410.57 472.39 2919.35 +-1436.32 470.406 2907.09 +-144.791 46.3882 286.677 +-142.825 44.7757 276.712 +-143.604 44.0647 272.318 +-144.597 43.4398 268.456 +-149.208 43.8963 271.277 +-411.119 118.473 732.155 +-110.303 31.1421 192.457 +-109.5 30.2955 187.225 +-110.745 30.0314 185.593 +-112.021 29.7802 184.04 +-113.33 29.5412 182.563 +-114.728 29.3278 181.245 +-116.54 29.2208 180.583 +-117.86 28.9901 179.158 +-119.936 28.9446 178.876 +-122.295 28.9619 178.983 +-126.762 29.4615 182.071 +-417.392 95.218 588.443 +-418.687 93.7612 579.44 +-420.09 92.3599 570.78 +-422.562 91.2187 563.727 +-424.099 89.899 555.572 +-425.707 88.6201 547.668 +-426.777 87.2555 539.235 +-427.356 85.8196 530.361 +-428.756 84.5753 522.672 +-439.212 85.1083 525.966 +-431.632 82.1679 507.794 +-433.701 81.1137 501.279 +-435.558 80.0359 494.618 +-437.594 79.0069 488.259 +-439.351 77.9429 481.684 +-441.228 76.9153 475.333 +-443.163 75.9119 469.132 +-444.402 74.8046 462.289 +-446.179 73.803 456.099 +-448.091 72.8365 450.126 +-449.72 71.8364 443.946 +-451.559 70.8821 438.048 +-453.688 69.9836 432.495 +-455.463 69.0407 426.668 +-456.072 67.9347 419.833 +-457.702 66.9941 414.021 +-459.709 66.1185 408.609 +-383.241 54.1605 334.709 +-421.958 58.5916 362.093 +-383.016 52.2539 322.927 +-383.558 51.41 317.711 +-382.88 50.4161 311.569 +-383.444 49.5991 306.52 +-382.695 48.6252 300.501 +-383.84 47.903 296.038 +-142.169 17.4256 107.689 +-142.317 17.1305 105.866 +-143.087 16.9125 104.519 +-142.468 16.5341 102.18 +-142.796 16.2699 100.547 +-142.205 15.9054 98.2944 +-146.118 16.0413 99.1345 +-148.398 15.9889 98.8107 +-495.328 52.3695 323.641 +-497.416 51.5986 318.877 +-499.119 50.7918 313.891 +-501.366 50.0433 309.265 +-502.802 49.2173 304.161 +-505.986 48.564 300.123 +-516.461 48.5945 300.312 +-2837.53 261.687 1617.21 +-2851.72 257.722 1592.71 +-2865.69 253.737 1568.08 +-2879.44 249.733 1543.34 +-2892.98 245.709 1518.47 +-404.477 33.6335 207.853 +-2919.38 237.607 1468.4 +-386.433 30.776 190.194 +-379.83 29.592 182.877 +-380.44 28.9857 179.13 +-380.831 28.3665 175.304 +-379.818 27.6491 170.87 +-379.121 26.9628 166.629 +-380.58 26.4332 163.356 +-378.512 25.6646 158.606 +-378.513 25.0442 154.772 +-381.629 24.6293 152.208 +-380.262 23.9267 147.866 +-380.527 23.3328 144.195 +-380.851 22.7454 140.566 +-380.294 22.11 136.639 +-380.544 21.5257 133.028 +-381.233 20.9684 129.583 +-380.847 20.3551 125.794 +-381.088 19.779 122.233 +-379.961 19.1365 118.263 +-380.896 18.6016 114.957 +-380.651 18.0108 111.306 +-380.756 17.44 107.778 +-381.019 16.8786 104.309 +-380.768 16.2972 100.716 +-379.901 15.6939 96.9876 +-379.58 15.1174 93.4246 +-380.488 14.5914 90.1743 +-380.394 14.0281 86.6933 +-380.267 13.4662 83.2207 +-380.402 12.9157 79.8187 +-381.191 12.3882 76.5583 +-379.89 11.7954 72.8949 +-380.52 11.2654 69.6195 +-380.628 10.7207 66.2532 +-379.917 10.1554 62.76 +-380.853 9.63544 59.5466 +-380.771 9.09002 56.1759 +-381.55 8.56558 52.9349 +-380.913 8.01046 49.5043 +-379.847 7.44998 46.0405 +-380.538 6.92563 42.8001 +-380.305 6.38491 39.4585 +-380.241 5.84842 36.143 +-380.546 5.31816 32.866 +-380.523 4.78373 29.5633 +-381.069 4.25648 26.3048 +-378.992 3.70269 22.8825 +-380.278 3.18345 19.6736 +-380.637 2.65465 16.4056 +-3274.5 18.2655 112.88 +-146.85 0.614246 3.79601 +-145.578 0.4059 2.50844 +-145.194 0.2024 1.25082 +95.3 -1.77636e-15 -2.27374e-13 +96.0963 0.14142 0.82661 +96.0854 0.282831 1.65316 +95.9671 0.423777 2.477 +96.0415 0.565574 3.30581 +96.1084 0.707623 4.13609 +95.9683 0.848147 4.95746 +96.0206 0.99037 5.78876 +96.8635 1.14222 6.67635 +95.9034 1.27282 7.43968 +96.7305 1.42713 8.34162 +96.653 1.56942 9.17334 +96.6675 1.71336 10.0147 +96.5752 1.85556 10.8458 +96.4755 1.9976 11.6761 +96.3684 2.13949 12.5054 +96.2541 2.28122 13.3339 +96.0334 2.4203 14.1468 +95.8058 2.55888 14.9568 +95.6697 2.69977 15.7803 +95.3294 2.8346 16.5684 +96.064 3.00244 17.5494 +95.905 3.14369 18.375 +95.7386 3.2847 19.1992 +95.565 3.42548 20.0221 +95.3841 3.56598 20.8434 +96.0729 3.74035 21.8625 +96.0701 3.88946 22.7341 +95.8652 4.03069 23.5596 +95.653 4.1716 24.3832 +96.2062 4.34713 25.4092 +95.9776 4.48853 26.2357 +95.7417 4.62961 27.0603 +96.3614 4.81343 28.1347 +96.1086 4.95506 28.9626 +95.8486 5.09629 29.7881 +96.4371 5.28405 30.8855 +96.16 5.42577 31.7139 +96.632 5.611 32.7966 +96.338 5.75299 33.6265 +97.0702 5.95798 34.8247 +96.3836 6.07697 35.5202 +96.1588 6.22463 36.3833 +96.7634 6.4277 37.5702 +96.4271 6.56986 38.4012 +97.0074 6.77605 39.6063 +96.653 6.91854 40.4392 +96.383 7.06723 41.3083 +96.105 7.21566 42.1759 +96.5469 7.41976 43.3689 +96.1593 7.56155 44.1976 +96.5766 7.76811 45.405 +96.0811 7.90255 46.1908 +96.5634 8.11887 47.4552 +96.0505 8.25302 48.2393 +96.5068 8.47191 49.5187 +96.7711 8.67695 50.7172 +96.2305 8.81098 51.5006 +96.558 9.02584 52.7565 +96.0873 9.16759 53.585 +96.302 9.37609 54.8037 +96.5886 9.59449 56.0803 +96.8599 9.81442 57.3658 +96.2631 9.94778 58.1453 +96.4231 10.1605 59.3889 +96.6527 10.3836 60.6927 +96.1116 10.5254 61.5217 +96.2304 10.7409 62.7813 +95.7538 10.8916 63.6618 +95.7635 11.0989 64.8738 +95.9227 11.3265 66.2039 +96.0656 11.5553 67.5416 +96.1112 11.7756 68.8289 +95.4982 11.9166 69.6529 +95.6765 12.1581 71.0649 +95.6784 12.3806 72.3652 +95.6645 12.604 73.6709 +95.713 12.8388 75.0432 +95.6667 13.064 76.3598 +95.7586 13.3116 77.8068 +95.679 13.5387 79.1344 +95.583 13.7666 80.4665 +95.6217 14.0174 81.9323 +95.4919 14.247 83.2742 +96.0143 14.5788 85.2136 +95.8461 14.8106 86.5689 +95.8073 15.0661 88.0623 +95.6043 15.2994 89.4258 +95.4564 15.545 90.861 +96.0035 15.9094 92.9913 +95.813 16.1574 94.4408 +95.604 16.406 95.8941 +95.9323 16.7523 97.9181 +95.6813 17.0029 99.383 +95.4116 17.254 100.851 +95.7987 17.6301 103.049 +95.418 17.8706 104.454 +95.7486 18.2503 106.674 +95.3254 18.4923 108.089 +94.9493 18.7473 109.579 +95.1326 19.119 111.751 +95.2209 19.4793 113.858 +95.0903 19.8023 115.745 +94.6845 20.0734 117.33 +95.1197 20.5309 120.004 +94.4798 20.7637 121.365 +94.5451 21.1579 123.669 +94.5173 21.5402 125.904 +95.0449 22.0605 128.945 +94.9449 22.4466 131.202 +94.7548 22.8203 133.386 +94.5898 23.209 135.658 +94.3918 23.5991 137.938 +94.1604 23.9901 140.224 +94.6038 24.5662 143.591 +94.4573 25.0031 146.145 +94.5376 25.5131 149.125 +94.2065 25.9244 151.529 +94.3035 26.4667 154.699 +94.4021 27.0259 157.968 +93.9 27.4268 160.311 +93.8559 27.9748 163.514 +94.247 28.6723 167.591 +93.714 29.1064 170.128 +93.9413 29.7941 174.148 +93.5964 30.32 177.222 +93.7944 31.0426 181.446 +93.7015 31.6925 185.244 +93.3292 32.2688 188.613 +100.955 35.6926 208.625 +115.966 41.9379 245.129 +116.156 42.9816 251.23 +116.164 43.9983 257.172 +115.797 44.9098 262.5 +116.008 46.0875 269.384 +113.006 46.0073 268.915 +110.322 46.0467 269.145 +107.275 45.9248 268.433 +104.572 45.9393 268.518 +101.875 45.9493 268.576 +99.22 45.9707 268.701 +96.5369 45.9719 268.708 +93.8287 45.9526 268.595 +92.3357 46.5368 272.01 +91.9635 47.7294 278.981 +91.4747 48.9245 285.966 +90.2551 49.7828 290.983 +91.3677 52.0157 304.035 +91.3462 53.7206 314 +91.0214 55.3481 323.513 +90.742 57.1088 333.804 +89.4357 58.3176 340.869 +87.479 59.167 345.834 +87.6821 61.5891 359.992 +87.326 63.7861 372.833 +87.2468 66.3654 387.909 +86.8239 68.8829 402.624 +89.2969 74.0151 432.622 +87.1806 75.6335 442.082 +85.9423 78.1964 457.062 +85.6086 81.8739 478.557 +85.8248 86.4875 505.524 +88.4011 94.1223 550.15 +88.257 99.5857 582.084 +95.9042 115.075 672.621 +89.8151 115.045 672.443 +86.7344 119.123 696.278 +85.4797 126.518 739.501 +83.4973 133.967 783.047 +84.4976 147.984 864.973 +77.9172 150.186 877.843 +70.0954 150.194 877.891 +62.0135 149.551 874.133 +54.205 149.452 873.552 +46.3121 149.02 871.031 +38.5944 149.066 871.298 +30.7848 148.662 868.938 +23.1273 148.938 870.548 +15.3773 148.561 868.349 +7.70117 148.814 869.828 +4.88498e-14 148.348 867.101 +-7.6968 148.73 869.335 +-15.3581 148.376 867.265 +-23.0593 148.499 867.987 +-30.6836 148.173 866.08 +-38.433 148.443 867.654 +-46.019 148.077 865.519 +-53.7899 148.307 866.862 +-61.4066 148.088 865.58 +-69.1852 148.244 866.492 +-76.6796 147.8 863.9 +-84.5839 148.135 865.857 +-92.1 147.77 863.724 +-100.14 148.215 866.327 +-107.684 147.895 864.454 +-115.933 148.5 867.99 +-122.444 146.921 858.761 +-128.239 144.7 845.781 +-139.305 148.32 866.94 +-147.52 148.659 868.917 +-147.618 141.178 825.195 +-147.775 134.456 785.902 +-162.149 140.673 822.24 +-174.347 144.511 844.671 +-113.936 90.3924 528.348 +-117.765 89.5793 523.595 +-122.373 89.386 522.466 +-127.765 89.7437 524.556 +-792.705 536.152 3133.84 +-820.42 534.965 3126.9 +-848.072 533.737 3119.72 +-875.66 532.469 3112.31 +-903.181 531.161 3104.66 +-930.633 529.81 3096.77 +-163.173 90.0027 526.07 +-143.527 76.7641 448.69 +-145.516 75.5236 441.439 +-146.849 74.0111 432.599 +-151.324 74.1111 433.183 +-1093.78 520.871 3044.51 +-1120.7 519.242 3034.99 +-1147.52 517.572 3025.23 +-144.673 63.5561 371.488 +-145.208 62.164 363.352 +-144.935 60.4938 353.59 +-146.453 59.624 348.505 +-150.51 59.7942 349.5 +-1306.58 506.736 2961.9 +-1332.75 504.793 2950.54 +-1358.66 502.752 2938.61 +-444.13 160.614 938.799 +-1410.57 498.707 2914.97 +-143.523 49.6233 290.051 +-144.657 48.9274 285.983 +-142.825 47.2702 276.297 +-143.65 46.5346 271.997 +-145.583 46.1725 269.881 +-144.961 45.023 263.161 +-411.07 125.058 730.969 +-110.007 32.7888 191.652 +-109.85 32.0855 187.541 +-110.745 31.7045 185.314 +-112.072 31.4538 183.849 +-113.382 31.2013 182.373 +-114.728 30.9617 180.973 +-116.54 30.8487 180.312 +-117.86 30.6052 178.889 +-119.826 30.5291 178.444 +-122.295 30.5753 178.714 +-127.158 31.2001 182.366 +-417.219 100.481 587.318 +-418.455 98.9299 578.25 +-419.032 97.2598 568.488 +-422.384 96.2599 562.644 +-424.4 94.9748 555.132 +-426.255 93.6776 547.55 +-427.515 92.2761 539.358 +-427.045 90.5348 529.18 +-429.511 89.4442 522.806 +-439.784 89.9668 525.861 +-431.632 86.7455 507.032 +-433.831 85.6582 500.676 +-435.951 84.5712 494.323 +-437.594 83.4084 487.526 +-439.552 82.3228 481.181 +-442.039 81.3496 475.492 +-443.367 80.1779 468.644 +-445.021 79.0821 462.239 +-446.596 77.9875 455.841 +-448.652 76.9905 450.014 +-449.72 75.8384 443.279 +-450.917 74.7246 436.769 +-453.688 73.8824 431.846 +-455.172 72.8404 425.756 +-456.072 71.7193 419.203 +-458.365 70.829 413.999 +-459.041 69.7005 407.403 +-382.267 57.0324 333.357 +-386.109 56.6006 330.833 +-384.233 55.3402 323.466 +-384.937 54.4692 318.375 +-384.809 53.493 312.669 +-382.744 52.2667 305.501 +-383.4 51.4285 300.602 +-383.604 50.5405 295.412 +-142.566 18.4476 107.827 +-142.956 18.1662 106.182 +-143.087 17.8547 104.362 +-142.63 17.4751 102.143 +-142.877 17.1861 100.453 +-142.205 16.7915 98.1469 +-146.118 16.935 98.9858 +-148.398 16.8797 98.6625 +-496.162 55.3802 323.7 +-497.416 54.4732 318.399 +-499.962 53.712 313.949 +-501.366 52.8312 308.801 +-503.228 52.0034 303.963 +-506.072 51.2781 299.723 +-515.168 51.1734 299.111 +-2837.53 276.266 1614.79 +-2851.72 272.08 1590.32 +-2865.69 267.873 1565.73 +-2879.44 263.645 1541.02 +-404.92 36.3071 212.217 +-406.162 35.6553 208.407 +-2919.38 250.844 1466.2 +-387.775 32.6035 190.569 +-380.46 31.2924 182.905 +-380.981 30.6441 179.117 +-380.015 29.8828 174.666 +-380.182 29.2175 170.778 +-380.857 28.5952 167.141 +-379.296 27.8117 162.561 +-381.181 27.2854 159.485 +-381.193 26.6266 155.634 +-380.516 25.9257 151.537 +-380.076 25.2473 147.572 +-380.527 24.6326 143.979 +-380.289 23.9772 140.148 +-380.294 23.3417 136.434 +-381.204 22.7642 133.058 +-380.855 22.1146 129.261 +-381.226 21.5104 125.729 +-380.518 20.8497 121.867 +-381.678 20.2938 118.619 +-380.036 19.5935 114.525 +-380.651 19.0142 111.139 +-380.371 18.393 107.508 +-380.73 17.8055 104.074 +-379.899 17.166 100.336 +-380.772 16.6062 97.0642 +-380.162 15.984 93.4275 +-380.683 15.4122 90.085 +-380.784 14.8248 86.6519 +-380.072 14.2091 83.0532 +-380.597 13.6423 79.7398 +-380.701 13.0615 76.3451 +-380.282 12.4654 72.8608 +-381.011 11.9084 69.605 +-380.431 11.3121 66.1196 +-380.41 10.7351 62.7472 +-379.865 10.1459 59.3031 +-381.859 9.62385 56.2519 +-380.857 9.02634 52.7594 +-381.706 8.47433 49.5329 +-380.145 7.8712 46.0075 +-379.942 7.30001 42.6689 +-380.604 6.7459 39.4301 +-380.241 6.17424 36.0887 +-380.945 5.62033 32.8511 +-379.826 5.04098 29.4648 +-380.471 4.48654 26.2241 +-379.79 3.91722 22.8963 +-380.877 3.3661 19.675 +-378.839 2.7893 16.3036 +-3274.5 19.283 112.71 +-145.45 0.642288 3.7542 +-145.578 0.428513 2.50468 +-146.394 0.215441 1.25926 +95.2 5.32907e-15 -1.7053e-13 +95.9963 0.148716 0.824441 +96.0854 0.297732 1.65054 +96.0671 0.446568 2.47565 +96.0415 0.595371 3.30057 +96.0085 0.744129 4.12524 +96.0682 0.89376 4.95476 +96.0206 1.04255 5.77959 +95.8659 1.19002 6.59713 +96.8007 1.35241 7.49738 +95.7343 1.48684 8.24264 +96.653 1.6521 9.15881 +96.6675 1.80363 9.99883 +96.5752 1.95332 10.8286 +96.4755 2.10284 11.6576 +96.3684 2.25221 12.4856 +96.2541 2.40141 13.3127 +96.1323 2.55044 14.1389 +96.6947 2.71869 15.0717 +95.6697 2.84201 15.7553 +95.3294 2.98394 16.5421 +95.1791 3.13151 17.3602 +95.905 3.30931 18.3459 +95.7386 3.45776 19.1688 +95.565 3.60595 19.9904 +95.3841 3.75386 20.8103 +96.2678 3.9454 21.8722 +96.0701 4.09438 22.6981 +95.6712 4.23446 23.4746 +95.4594 4.38251 24.2954 +96.3994 4.58534 25.4198 +95.9776 4.72501 26.1942 +95.7417 4.87353 27.0175 +96.3614 5.06702 28.0902 +96.1086 5.21612 28.9167 +96.7069 5.41285 30.0073 +97.2931 5.61181 31.1103 +96.16 5.71163 31.6637 +96.632 5.90662 32.7446 +96.338 6.05609 33.5733 +96.0366 6.2051 34.3993 +96.4772 6.40337 35.4985 +96.1588 6.55258 36.3256 +96.8565 6.77286 37.5468 +96.5198 6.92263 38.3771 +96.915 7.12625 39.5059 +96.653 7.28305 40.3752 +96.383 7.43957 41.2429 +96.105 7.59582 42.1091 +96.5469 7.81067 43.3002 +96.1593 7.95993 44.1276 +96.4864 8.16972 45.2907 +96.9799 8.3967 46.5489 +96.5634 8.54661 47.38 +96.9415 8.76842 48.6097 +96.4181 8.91007 49.3949 +96.7711 9.1341 50.6369 +96.2305 9.27519 51.419 +96.558 9.50137 52.6729 +96.8706 9.72925 53.9362 +96.302 9.87007 54.7169 +96.5025 10.091 55.9415 +96.0885 10.2492 56.8188 +96.2631 10.4719 58.0532 +96.5079 10.7053 59.347 +96.737 10.9402 60.6495 +96.1116 11.08 61.4243 +96.3138 11.3166 62.7362 +96.3342 11.5349 63.9462 +95.7635 11.6837 64.7711 +95.9227 11.9232 66.099 +96.0656 12.1641 67.4346 +96.1112 12.396 68.7198 +95.4982 12.5444 69.5426 +95.6765 12.7987 70.9523 +95.6784 13.0329 72.2505 +95.7433 13.279 73.6148 +95.713 13.5152 74.9243 +95.6667 13.7523 76.2389 +95.6814 14.0016 77.621 +95.679 14.252 79.0091 +96.2674 14.5957 80.9142 +96.2255 14.849 82.319 +95.4919 14.9976 83.1423 +95.3455 15.2399 84.486 +95.8461 15.5909 86.4318 +95.8073 15.8599 87.9228 +95.5318 16.0932 89.2164 +96.1038 16.4749 91.3324 +95.9322 16.7352 92.775 +95.7423 16.9961 94.2217 +95.5339 17.2577 95.6719 +95.3071 17.52 97.1259 +95.6813 17.8987 99.2256 +95.3434 18.1501 100.619 +95.7311 18.5458 102.813 +95.418 18.8121 104.289 +95.0197 19.0656 105.694 +95.3254 19.4666 107.917 +94.9493 19.735 109.405 +95.1326 20.1263 111.574 +95.3481 20.5331 113.83 +95.1532 20.8592 115.638 +95.2447 21.256 117.837 +95.2428 21.6405 119.969 +95.0885 21.9985 121.954 +94.5451 22.2726 123.473 +94.5768 22.6893 125.783 +94.5746 23.1079 128.104 +94.9449 23.6292 130.994 +94.8122 24.0372 133.255 +94.6465 24.4464 135.524 +94.3918 24.8424 137.719 +94.1604 25.2541 140.002 +94.6038 25.8605 143.363 +94.3498 26.2906 145.748 +94.0607 26.7218 148.138 +94.2065 27.2902 151.289 +93.8399 27.7243 153.696 +94.4021 28.4498 157.718 +93.8 28.8409 159.886 +93.8559 29.4487 163.255 +93.8107 30.0432 166.551 +94.1434 30.7803 170.637 +93.9413 31.3638 173.872 +93.6426 31.9332 177.029 +93.7944 32.6781 181.158 +93.7462 33.3782 185.04 +93.3731 33.9848 188.402 +100.137 37.2686 206.607 +116.051 44.1796 244.919 +116.114 45.23 250.742 +116.205 46.3325 256.855 +115.797 47.2759 262.084 +115.93 48.483 268.776 +113.006 48.4312 268.489 +110.322 48.4727 268.719 +107.605 48.4931 268.832 +104.572 48.3596 268.092 +101.875 48.3701 268.15 +99.1858 48.376 268.183 +96.5369 48.3939 268.282 +93.8287 48.3737 268.17 +92.526 49.0896 272.139 +91.9635 50.244 278.539 +91.5048 51.5189 285.607 +90.2259 52.3888 290.429 +91.3961 54.7732 303.647 +91.2911 56.5168 313.313 +91.0481 58.2812 323.095 +90.7161 60.1004 333.18 +89.4608 61.4073 340.425 +87.5031 62.3015 345.382 +87.7054 64.8512 359.517 +87.236 67.0776 371.86 +87.2901 69.8965 387.486 +86.72 72.4252 401.505 +89.2969 77.9146 431.937 +87.3333 79.7578 442.155 +85.8329 82.2115 455.758 +85.296 85.8728 476.055 +85.7422 90.9565 504.237 +88.2603 98.9233 548.403 +88.2718 104.85 581.259 +95.9042 121.138 671.556 +89.8151 121.106 671.378 +86.6247 125.24 694.297 +85.5816 133.342 739.21 +83.3092 140.708 780.045 +84.4209 155.639 862.82 +77.281 156.807 869.296 +69.8443 157.541 873.361 +61.7484 156.757 869.019 +54.0402 156.847 869.516 +46.0609 156.021 864.935 +38.4723 156.423 867.166 +30.6522 155.82 863.824 +23.0383 156.181 865.824 +15.304 155.643 862.841 +7.67412 156.105 865.4 +5.06262e-14 155.294 860.906 +-7.67673 156.158 865.696 +-15.2674 155.27 860.775 +-22.9991 155.915 864.349 +-30.5161 155.128 859.988 +-38.3327 155.856 864.02 +-45.773 155.046 859.529 +-53.625 155.642 862.837 +-61.016 154.898 858.71 +-68.9891 155.611 862.666 +-76.3571 154.933 858.904 +-84.258 155.339 861.155 +-91.6506 154.796 858.147 +-99.7207 155.371 861.336 +-107.099 154.841 858.396 +-115.477 155.708 863.2 +-122.528 154.767 857.985 +-128.166 152.236 843.955 +-139.023 155.819 863.818 +-147.47 156.438 867.249 +-147.306 148.302 822.143 +-147.921 141.68 785.432 +-161.94 147.893 819.875 +-174.108 151.915 842.176 +-113.936 95.1548 527.511 +-117.765 94.2988 522.766 +-122.396 94.1127 521.735 +-127.788 94.4891 523.821 +-792.705 564.4 3128.87 +-820.42 563.15 3121.94 +-848.072 561.857 3114.78 +-875.66 560.523 3107.38 +-903.181 559.145 3099.74 +-930.633 557.723 3091.86 +-163.699 95.0501 526.931 +-143.707 80.9099 448.542 +-145.578 79.5363 440.927 +-146.849 77.9104 431.913 +-151.422 78.0661 432.776 +-1093.78 548.313 3039.69 +-1120.7 546.598 3030.19 +-1147.52 544.84 3020.44 +-144.781 66.9542 371.176 +-145.501 65.5714 363.509 +-144.935 63.681 353.029 +-146.759 62.8965 348.681 +-150.744 63.0426 349.491 +-1306.58 533.433 2957.2 +-1332.75 531.388 2945.87 +-1358.66 529.24 2933.96 +-441.425 168.047 931.603 +-440.025 163.767 907.88 +-142.558 51.8868 287.646 +-144.747 51.5369 285.706 +-142.825 49.7606 275.859 +-143.696 49.0021 271.654 +-146.193 48.8089 270.583 +-142.384 46.5525 258.074 +-411.943 131.926 731.361 +-110.451 34.6555 192.12 +-109.9 33.7912 187.329 +-110.745 33.3749 185.021 +-112.072 33.1109 183.558 +-113.382 32.8452 182.084 +-114.728 32.5929 180.686 +-116.594 32.4889 180.109 +-118.296 32.3367 179.266 +-120.377 32.2854 178.981 +-122.24 32.1715 178.35 +-127.158 32.8439 182.077 +-418.137 106.008 587.677 +-418.338 104.113 577.174 +-419.855 102.585 568.703 +-422.8 101.431 562.306 +-424.701 100.049 554.646 +-426.255 98.613 546.683 +-426.961 97.0116 537.805 +-427.917 95.4992 529.421 +-429.322 94.1152 521.748 +-439.912 94.7342 525.18 +-431.889 91.3701 506.53 +-434.026 90.2116 500.108 +-435.951 89.0268 493.54 +-437.395 87.7631 486.534 +-439.552 86.66 480.419 +-442.647 85.7532 475.392 +-443.367 84.4021 467.902 +-445.021 83.2486 461.507 +-446.874 82.1472 455.401 +-448.372 80.996 449.019 +-450.356 79.9469 443.203 +-451.559 78.7735 436.698 +-453.4 77.7256 430.889 +-454.447 76.5559 424.405 +-455.633 75.4253 418.137 +-457.407 74.4047 412.479 +-459.264 73.4083 406.955 +-382.641 60.0961 333.156 +-384.6 59.3497 329.018 +-384.461 58.2904 323.146 +-384.248 57.2361 317.301 +-384.346 56.2436 311.799 +-383.91 55.1879 305.946 +-383.165 54.1049 299.942 +-384.155 53.2798 295.368 +-141.852 19.3224 107.118 +-142.317 19.0377 105.54 +-143.89 18.901 104.782 +-142.63 18.3958 101.981 +-142.877 18.0915 100.294 +-141.877 17.6354 97.7656 +-146.942 17.9277 99.386 +-148.149 17.7391 98.3407 +-495.578 58.2292 322.806 +-497.416 57.3432 317.894 +-499.962 56.5419 313.452 +-501.366 55.6147 308.312 +-502.802 54.6967 303.223 +-506.072 53.9797 299.248 +-515.168 53.8695 298.637 +-2837.53 290.821 1612.23 +-2851.72 286.415 1587.8 +-2865.69 281.986 1563.25 +-404.08 38.9474 215.913 +-2892.98 273.064 1513.79 +-2906.29 268.573 1488.89 +-405.853 36.7098 203.509 +-388.223 34.3608 190.487 +-380.46 32.941 182.616 +-382.155 32.3579 179.383 +-380.831 31.5246 174.763 +-380.455 30.7788 170.629 +-379.395 29.9862 166.235 +-379.755 29.3123 162.499 +-379.064 28.5634 158.347 +-379.53 27.9071 154.709 +-381.443 27.358 151.665 +-381.192 26.6556 147.771 +-381.368 25.9876 144.068 +-379.821 25.2093 139.754 +-380.576 24.5896 136.318 +-380.921 23.9458 132.749 +-381.233 23.3028 129.184 +-380.562 22.6042 125.312 +-381.374 21.9975 121.948 +-381.296 21.3417 118.313 +-380.896 20.6725 114.602 +-380.268 19.9958 110.851 +-380.371 19.362 107.338 +-379.574 18.6866 103.593 +-379.995 18.0748 100.202 +-379.611 17.4278 96.6147 +-380.744 16.8519 93.4225 +-380.488 16.2159 89.8964 +-380.881 15.6099 86.5368 +-381.048 14.9962 83.1347 +-379.619 14.3241 79.4089 +-381.093 13.7638 76.3027 +-380.773 13.1391 72.8392 +-380.421 12.5163 69.3871 +-380.628 11.9142 66.049 +-380.41 11.3007 62.6478 +-379.569 10.6721 59.163 +-380.771 10.102 56.0028 +-380.164 9.48461 52.58 +-379.723 8.87446 49.1975 +-380.145 8.28589 45.9347 +-379.942 7.68462 42.6014 +-380.604 7.1013 39.3676 +-379.943 6.49442 36.0032 +-380.248 5.90559 32.7389 +-380.822 5.3205 29.4954 +-380.471 4.72292 26.1825 +-381.287 4.13984 22.9501 +-380.278 3.53787 19.613 +-379.738 2.94322 16.3164 +-3274.5 20.299 112.532 +-145.95 0.678449 3.76113 +-145.178 0.44985 2.49384 +-146.394 0.226792 1.25727 +96.2 -1.77636e-15 -2.27374e-13 +95.9963 0.156148 0.823066 +96.0854 0.31261 1.64779 +96.0671 0.468883 2.47152 +96.1414 0.625774 3.2985 +96.0085 0.781315 4.11836 +95.9683 0.937448 4.94135 +96.0206 1.09465 5.76995 +96.9632 1.26379 6.66151 +95.9034 1.40683 7.4155 +96.7305 1.57739 8.31452 +96.653 1.73466 9.14353 +96.8664 1.89766 10.0027 +96.5752 2.05093 10.8106 +96.4755 2.20792 11.6381 +96.3684 2.36475 12.4648 +96.2541 2.52141 13.2905 +96.1323 2.67789 14.1153 +95.9045 2.83123 14.9236 +95.6697 2.98403 15.729 +95.5264 3.13954 16.5487 +96.064 3.31857 17.4924 +95.905 3.47469 18.3153 +95.7386 3.63055 19.1369 +95.7607 3.7939 19.9979 +95.3841 3.94145 20.7756 +96.0729 4.13417 21.7915 +95.195 4.25982 22.4538 +95.8652 4.45508 23.483 +95.653 4.61083 24.304 +96.2062 4.80484 25.3267 +96.1703 4.9711 26.203 +95.7417 5.11707 26.9724 +96.3614 5.32023 28.0433 +96.1086 5.47678 28.8685 +95.8486 5.63288 29.6913 +96.4371 5.84041 30.7852 +97.0135 6.05028 31.8915 +96.632 6.20178 32.69 +96.338 6.35872 33.5173 +96.1306 6.52155 34.3756 +96.4772 6.72336 35.4393 +97.1857 6.95349 36.6523 +96.7634 7.10447 37.4481 +96.5198 7.26857 38.3131 +97.0074 7.4895 39.4776 +96.7451 7.65427 40.3462 +96.383 7.81134 41.1741 +96.105 7.9754 42.0389 +96.5469 8.20099 43.228 +96.1593 8.3577 44.054 +96.5766 8.58601 45.2575 +96.171 8.74277 46.0837 +96.5634 8.9737 47.301 +96.1396 9.13044 48.1272 +96.4181 9.35532 49.3125 +96.8594 9.59929 50.5985 +96.2305 9.73869 51.3333 +96.558 9.97617 52.5851 +96.0873 10.1328 53.4109 +96.3886 10.3726 54.6748 +95.8132 10.5196 55.4493 +96.7742 10.8382 57.1288 +96.3483 11.0049 58.0076 +96.5079 11.2402 59.248 +95.9779 11.3968 60.0732 +96.1116 11.6337 61.3218 +96.3138 11.8821 62.6316 +96.3342 12.1113 63.8395 +96.5052 12.3626 65.1639 +95.9227 12.5191 65.9888 +96.0656 12.772 67.3221 +96.1112 13.0154 68.6052 +95.4982 13.1713 69.4266 +96.2356 13.5168 71.2479 +96.3131 13.7749 72.6085 +95.6645 13.9311 73.4315 +95.713 14.1905 74.7993 +95.7444 14.4513 76.1736 +95.6814 14.7013 77.4915 +95.679 14.9642 78.8773 +95.583 15.2161 80.205 +95.6217 15.4933 81.666 +96.091 15.8458 83.5244 +96.1629 16.1387 85.0682 +95.9198 16.3826 86.354 +95.7342 16.6397 87.7091 +95.6043 16.9103 89.1352 +95.4564 17.1817 90.5658 +95.3616 17.4669 92.0694 +95.7423 17.8454 94.0645 +95.4638 18.1068 95.4423 +96.0018 18.5296 97.6707 +95.6813 18.7932 99.0601 +96.0936 19.2071 101.242 +95.7987 19.4864 102.714 +95.418 19.7522 104.115 +95.0197 20.0183 105.518 +95.391 20.4535 107.812 +95.5338 20.8489 109.896 +95.004 21.1033 111.237 +95.2209 21.5303 113.488 +95.2791 21.9307 115.598 +94.809 22.216 117.102 +95.2428 22.7219 119.769 +95.0885 23.0979 121.75 +94.485 23.3707 123.189 +94.9932 23.928 126.126 +94.8098 24.3228 128.207 +94.8869 24.7948 130.695 +94.8695 25.2536 133.114 +94.5898 25.6527 135.217 +94.3918 26.0838 137.49 +94.1604 26.5161 139.768 +94.6038 27.1528 143.124 +94.4573 27.6357 145.67 +94.0607 28.0571 147.891 +94.2065 28.654 151.037 +94.3035 29.2534 154.197 +94.3006 29.8394 157.286 +93.9 30.3145 159.79 +93.8559 30.9203 162.983 +93.8591 31.5607 166.359 +93.714 32.171 169.575 +93.9413 32.9311 173.582 +94.012 33.6612 177.43 +93.749 34.2945 180.769 +93.7462 35.0462 184.731 +93.6799 35.8004 188.706 +99.4911 38.8786 204.932 +116.051 46.3873 244.511 +116.156 47.5072 250.413 +116.123 48.6138 256.246 +116.156 49.7923 262.459 +116.125 50.9915 268.78 +113.006 50.8514 268.041 +110.621 51.0331 268.999 +107.605 50.9164 268.384 +104.894 50.9328 268.47 +101.875 50.7873 267.703 +99.4937 50.9511 268.567 +96.5369 50.8122 267.835 +94.1218 50.9496 268.559 +92.0184 51.2599 270.195 +91.9635 52.7548 278.074 +91.5048 54.0934 285.13 +90.5475 55.2028 290.978 +91.1973 57.3853 302.482 +91.043 59.1798 311.941 +91.0481 61.1936 322.556 +90.7678 63.1397 332.814 +89.4357 64.4579 339.762 +87.5515 65.4509 344.996 +87.8688 68.2188 359.586 +87.1235 70.3388 370.761 +87.0953 73.2257 385.977 +86.6992 76.0264 400.74 +89.2969 81.8082 431.216 +87.4668 83.8715 442.092 +85.9423 86.4297 455.577 +85.296 90.1641 475.261 +85.3791 95.0974 501.265 +88.2603 103.867 547.489 +88.2274 110.034 579.999 +96.0434 127.376 671.408 +89.9325 127.324 671.135 +86.4176 131.184 691.48 +85.7741 140.32 739.636 +83.581 148.221 781.284 +84.1238 162.842 858.349 +75.8691 161.635 851.99 +69.0597 163.555 862.11 +60.4649 161.17 849.536 +53.5884 163.308 860.809 +45.2287 160.858 847.892 +38.0623 162.489 856.492 +30.0729 160.515 846.084 +22.8001 162.29 855.444 +14.9969 160.141 844.113 +7.59558 162.228 855.114 +4.79616e-14 159.997 843.357 +-7.57463 161.781 852.757 +-14.9654 159.805 842.344 +-22.719 161.713 852.399 +-29.9193 159.695 841.764 +-37.8398 161.54 851.486 +-44.9095 159.722 841.907 +-53.0084 161.541 851.492 +-59.8301 159.478 840.617 +-68.2123 161.548 851.531 +-74.7796 159.314 839.756 +-83.2037 161.06 848.96 +-89.8422 159.325 839.812 +-98.5434 161.21 849.747 +-104.966 159.341 839.899 +-113.975 161.364 850.559 +-120.524 159.843 842.544 +-128.062 159.715 841.867 +-135.394 159.335 839.864 +-146.463 163.134 859.892 +-147.514 155.933 821.933 +-147.921 148.76 784.122 +-160.547 153.947 811.467 +-174.148 159.543 840.964 +-114.123 100.074 527.496 +-117.786 99.0292 521.989 +-122.396 98.8157 520.864 +-127.975 99.3559 523.712 +-792.705 592.604 3123.65 +-820.42 591.291 3116.74 +-848.072 589.935 3109.58 +-875.66 588.533 3102.2 +-903.181 587.087 3094.57 +-930.633 585.594 3086.7 +-163.523 99.6929 525.488 +-143.527 84.8465 447.232 +-145.454 83.4398 439.817 +-146.753 81.7508 430.914 +-151.585 82.0552 432.518 +-1093.78 575.713 3034.62 +-1120.7 573.912 3025.13 +-1147.52 572.067 3015.4 +-144.996 70.4046 371.108 +-145.501 68.8481 362.903 +-144.935 66.8632 352.441 +-146.912 66.1083 348.462 +-150.979 66.2959 349.45 +-1306.58 560.09 2952.27 +-1332.75 557.943 2940.95 +-1358.83 555.754 2929.42 +-1384.62 553.456 2917.3 +-1410.57 551.216 2905.5 +-144.093 55.066 290.257 +-144.657 54.0789 285.054 +-142.78 52.2307 275.311 +-143.696 51.4508 271.201 +-146.71 51.429 271.086 +-142.527 48.928 257.903 +-135.698 45.6295 240.516 +-110.254 36.3224 191.458 +-109.95 35.496 187.102 +-110.796 35.0589 184.798 +-112.072 34.7655 183.251 +-113.487 34.5182 181.948 +-114.728 34.2216 180.385 +-116.54 34.0967 179.726 +-118.296 33.9527 178.967 +-120.377 33.8988 178.683 +-122.631 33.8872 178.622 +-126.988 34.4391 181.531 +-417.908 111.244 586.375 +-418.455 109.346 576.371 +-420.09 107.772 568.071 +-423.157 106.59 561.843 +-424.701 105.049 553.72 +-426.255 103.541 545.771 +-427.515 101.992 537.606 +-427.356 100.14 527.845 +-429.7 98.9052 521.336 +-440.675 99.6409 525.214 +-432.789 96.136 506.739 +-434.805 94.8898 500.171 +-436.148 93.5178 492.939 +-437.992 92.2744 486.384 +-440.154 91.1152 480.274 +-442.241 89.9561 474.164 +-443.163 88.579 466.906 +-445.297 87.4627 461.022 +-447.221 86.3194 454.995 +-448.372 85.0436 448.27 +-449.72 83.8234 441.839 +-451.844 82.7621 436.245 +-454.119 81.7392 430.853 +-455.535 80.5741 424.712 +-456.072 79.2707 417.841 +-458.07 78.2362 412.388 +-459.041 77.0392 406.079 +-381.818 62.9634 331.884 +-2472.81 400.661 2111.91 +-383.929 61.1185 322.16 +-384.248 60.0963 316.772 +-383.42 58.9118 310.528 +-382.2 57.6878 304.076 +-383.948 56.9247 300.054 +-384.155 55.9422 294.875 +-142.169 20.3333 107.178 +-142.157 19.9667 105.246 +-143.89 19.8455 104.607 +-142.63 19.3151 101.811 +-142.063 18.8875 99.5572 +-142.041 18.538 97.7153 +-146.118 18.7181 98.6641 +-148.066 18.6152 98.1217 +-495.078 61.0773 321.943 +-497.919 60.2697 317.686 +-500.468 59.4276 313.247 +-501.366 58.3938 307.798 +-502.802 57.43 302.717 +-507.1 56.7926 299.357 +-513.531 56.3818 297.192 +-2837.53 305.354 1609.54 +-2851.72 300.728 1585.16 +-2865.69 296.077 1560.64 +-2879.44 291.404 1536.01 +-404.655 40.1035 211.389 +-405.364 39.3319 207.321 +-2919.38 277.256 1461.43 +-2932.25 272.497 1436.35 +-379.83 34.5299 182.01 +-380.44 33.8224 178.28 +-380.377 33.0606 174.265 +-379.363 32.2243 169.856 +-379.669 31.5074 166.078 +-380.672 30.8515 162.62 +-380.629 30.1145 158.736 +-381.1 29.423 155.091 +-380.794 28.6763 151.155 +-380.355 27.9261 147.2 +-380.527 27.2262 143.511 +-380.289 26.5017 139.692 +-380.294 25.7994 135.99 +-381.393 25.1735 132.691 +-381.044 24.4552 128.905 +-380.847 23.7517 125.197 +-381.944 23.1312 121.926 +-381.678 22.4306 118.233 +-380.896 21.7055 114.411 +-381.035 21.0375 110.89 +-380.756 20.3501 107.267 +-379.574 19.6204 103.42 +-379.899 18.9734 100.01 +-380.482 18.3407 96.6749 +-381.423 17.7256 93.433 +-380.877 17.0436 89.8381 +-380.881 16.3899 86.3924 +-381.048 15.7456 82.996 +-380.402 15.0709 79.4399 +-380.309 14.4219 76.0188 +-379.497 13.7494 72.4741 +-380.421 13.1418 69.2713 +-380.727 12.5128 65.956 +-381.594 11.9023 62.7379 +-380.556 11.2345 59.2179 +-380.771 10.6068 55.9094 +-381.253 9.98709 52.6426 +-380.913 9.34714 49.2694 +-379.847 8.69313 45.8221 +-380.041 8.07074 42.5414 +-379.609 7.43669 39.1993 +-380.64 6.83146 36.0091 +-380.945 6.21209 32.7443 +-379.327 5.56444 29.3305 +-381.069 4.96674 26.18 +-380.689 4.33989 22.8759 +-380.478 3.71662 19.5906 +-381.037 3.10086 16.3449 +-148.31 0.965332 5.08833 +-145.05 0.707962 3.73172 +-147.078 0.47851 2.52226 +-144.794 0.235523 1.24146 +95.3 -1.77636e-15 -2.27374e-13 +96.1963 0.163908 0.823336 +96.3853 0.328484 1.65003 +96.167 0.491673 2.46976 +96.3413 0.656868 3.29956 +96.3082 0.820992 4.12398 +96.2679 0.985054 4.94809 +97.0187 1.15857 5.81972 +97.1627 1.32656 6.66352 +95.9034 1.47367 7.40251 +96.8301 1.65404 8.3085 +96.9516 1.8227 9.15571 +96.8664 1.98782 9.98516 +96.7739 2.15278 10.8138 +96.674 2.31759 11.6417 +96.6659 2.48476 12.4814 +96.4521 2.64666 13.2946 +96.3301 2.81088 14.1195 +96.0033 2.96879 14.9128 +95.7683 3.12903 15.7177 +96.5112 3.3226 16.69 +96.2607 3.48337 17.4975 +96.1013 3.64724 18.3207 +95.9346 3.81083 19.1425 +95.8585 3.9782 19.9832 +95.5794 4.13715 20.7816 +96.2678 4.33938 21.7975 +96.1674 4.50778 22.6434 +96.0593 4.6762 23.4894 +96.4275 4.86901 24.4579 +96.496 5.04828 25.3584 +96.1703 5.20729 26.1571 +95.9339 5.37095 26.9792 +96.3614 5.57301 27.9942 +96.1086 5.73699 28.8179 +95.8486 5.90051 29.6393 +96.6273 6.12997 30.7919 +96.16 6.28198 31.5555 +96.7266 6.50279 32.6646 +96.4322 6.66734 33.4912 +97.0702 6.89818 34.6507 +96.7582 7.0633 35.4802 +96.4389 7.22789 36.3069 +96.8565 7.44919 37.4185 +96.6126 7.62124 38.2828 +97.0074 7.84534 39.4085 +96.7451 8.01794 40.2755 +96.383 8.18247 41.1019 +96.105 8.35433 41.9652 +96.5469 8.59063 43.1522 +96.1593 8.7548 43.9768 +96.5766 8.99395 45.1782 +96.171 9.15815 46.003 +96.5634 9.40006 47.2181 +96.1396 9.56425 48.0428 +96.4181 9.79981 49.2261 +96.8594 10.0554 50.5098 +96.3184 10.2107 51.2901 +96.7329 10.4691 52.5879 +96.0873 10.6143 53.3173 +96.3886 10.8654 54.579 +96.6748 11.1184 55.8498 +96.8599 11.3632 57.0792 +96.3483 11.5278 57.906 +96.5927 11.7846 59.1962 +96.737 12.0327 60.4422 +96.1955 12.197 61.2678 +96.3138 12.4467 62.5218 +96.3342 12.6867 63.7276 +96.5876 12.961 65.1052 +95.9227 13.1139 65.8731 +96.147 13.3902 67.2611 +96.1112 13.6338 68.485 +96.3021 13.9132 69.8884 +95.6765 14.0767 70.7098 +95.6784 14.3343 72.0036 +96.4525 14.7132 73.9067 +95.7912 14.8769 74.7294 +95.7444 15.1379 76.0401 +95.6814 15.3998 77.3557 +95.679 15.6752 78.7391 +95.6591 15.9517 80.1282 +95.6217 16.2294 81.5229 +95.4919 16.4952 82.8581 +95.4198 16.7748 84.2629 +95.9198 17.161 86.2027 +95.8073 17.4436 87.6224 +95.6769 17.7272 89.0466 +96.1757 18.1336 91.0883 +95.9322 18.4063 92.458 +95.813 18.7071 93.969 +95.5339 18.981 95.345 +95.3071 19.2695 96.794 +95.7501 19.7003 98.9581 +95.4116 19.9768 100.347 +95.7987 20.4122 102.534 +95.4849 20.7053 104.006 +95.6823 21.1157 106.068 +95.391 21.4253 107.623 +95.5338 21.8394 109.703 +95.1326 22.136 111.193 +95.1573 22.5382 113.213 +95.1532 22.9422 115.243 +95.307 23.3938 117.511 +94.7503 23.6785 118.941 +94.6015 24.0713 120.914 +94.6655 24.5278 123.207 +94.5173 24.9394 125.275 +94.9861 25.5259 128.221 +95.003 26.0046 130.626 +94.7548 26.4215 132.72 +94.5898 26.8715 134.98 +94.5036 27.3553 137.411 +94.2708 27.8085 139.687 +94.2226 28.3283 142.298 +94.3498 28.9159 145.25 +94.5376 29.5392 148.38 +94.2065 30.0154 150.772 +94.3035 30.6433 153.926 +93.9454 31.1394 156.419 +93.9 31.7548 159.51 +93.8559 32.3894 162.697 +93.8591 33.0602 166.067 +93.714 33.6995 169.278 +93.5187 34.3405 172.498 +93.6426 35.122 176.424 +94.1576 36.0805 181.238 +93.7015 36.6938 184.319 +93.8553 37.5716 188.729 +97.1664 39.7742 199.792 +116.051 48.5913 244.082 +116.197 49.7821 250.064 +116.123 50.9235 255.797 +116.156 52.158 261.999 +116.047 53.3783 268.128 +113.351 53.4297 268.386 +110.958 53.6208 269.347 +107.605 53.3356 267.914 +105.217 53.5168 268.824 +102.191 53.3649 268.061 +99.4937 53.3719 268.096 +96.8374 53.392 268.197 +94.1218 53.3703 268.088 +92.2405 53.8251 270.372 +91.9326 55.2427 277.494 +91.595 56.7194 284.911 +91.4539 58.4044 293.375 +91.1973 60.1118 301.952 +91.0155 61.9729 311.3 +91.0748 64.1198 322.085 +90.742 66.1209 332.136 +89.636 67.6717 339.926 +87.3096 68.3713 343.441 +87.542 71.1943 357.621 +87.2585 73.7948 370.684 +87.052 76.6665 385.109 +86.5952 79.5429 399.557 +89.3168 85.7142 430.557 +87.5813 87.9714 441.896 +85.6507 90.2291 453.236 +85.1397 94.2748 473.558 +85.2141 99.423 499.419 +88.4011 108.975 547.401 +88.0796 115.069 578.012 +95.7928 133.08 668.484 +90.0761 133.587 671.028 +86.4054 137.398 690.172 +85.5137 146.541 736.099 +84.3858 156.759 787.426 +82.1877 166.653 837.125 +73.0975 163.13 819.428 +66.9727 166.148 834.591 +58.2048 162.516 816.348 +51.9218 165.747 832.576 +43.5802 162.359 815.555 +37.0459 165.665 832.162 +29.0154 162.229 814.903 +22.1326 165.024 828.943 +14.4733 161.893 813.216 +7.36956 164.879 828.216 +3.90799e-14 161.82 812.849 +-7.36171 164.703 827.333 +-14.4506 161.639 811.941 +-22.0776 164.614 826.885 +-28.9177 161.682 812.158 +-36.745 164.319 825.401 +-43.376 161.598 811.735 +-51.4456 164.227 824.94 +-57.7863 161.348 810.478 +-66.2352 164.319 825.401 +-72.1998 161.126 809.366 +-80.913 164.068 824.141 +-86.7064 161.069 809.079 +-95.7133 164.019 823.897 +-101.347 161.156 809.516 +-110.608 164.036 823.981 +-116.446 161.773 812.611 +-126.614 165.411 830.886 +-130.372 160.715 807.297 +-142.304 166.032 834.009 +-146.854 162.611 816.823 +-148.212 156.135 784.291 +-156.139 156.835 787.807 +-653.189 626.843 3148.74 +-114.164 104.867 526.764 +-117.981 103.906 521.937 +-122.778 103.834 521.576 +-128.045 104.134 523.08 +-792.705 620.76 3118.18 +-820.42 619.385 3111.28 +-848.072 617.964 3104.14 +-875.66 616.495 3096.76 +-903.181 614.98 3089.15 +-930.633 613.416 3081.29 +-163.904 104.672 525.786 +-143.828 89.064 447.384 +-145.732 87.5714 439.886 +-147.071 85.82 431.089 +-151.975 86.1754 432.874 +-1093.78 603.066 3029.3 +-1120.7 601.18 3019.83 +-1147.52 599.247 3010.12 +-145.103 73.8044 370.732 +-145.208 71.9738 361.536 +-144.973 70.0582 351.914 +-146.989 69.2854 348.032 +-151.565 69.7154 350.192 +-1306.58 586.701 2947.1 +-1332.75 584.452 2935.8 +-1358.83 582.159 2924.29 +-1384.79 579.822 2912.55 +-435.247 178.165 894.952 +-144.136 57.6997 289.835 +-144.613 56.6307 284.466 +-142.825 54.7296 274.916 +-144.019 54.0166 271.334 +-147.038 53.9932 271.217 +-150.687 54.1866 272.189 +-412.137 145.168 729.205 +-110.303 38.0652 191.208 +-110.15 37.25 187.113 +-110.796 36.7246 184.474 +-112.124 36.4339 183.014 +-113.434 36.1416 181.545 +-115.151 35.9801 180.734 +-116.54 35.7168 179.411 +-118.405 35.5986 178.818 +-120.267 35.477 178.207 +-122.967 35.5943 178.796 +-127.498 36.2203 181.941 +-417.564 116.434 584.866 +-418.687 114.605 575.68 +-420.619 113.034 567.791 +-423.871 111.842 561.804 +-425.242 110.18 553.455 +-426.803 108.6 545.515 +-428.069 106.976 537.359 +-428.166 105.097 527.918 +-429.889 103.65 520.651 +-438.958 103.968 522.25 +-433.239 100.808 506.377 +-434.741 99.3834 499.22 +-436.738 98.0936 492.741 +-438.191 96.7023 485.752 +-440.355 95.4878 479.652 +-442.039 94.1869 473.117 +-443.367 92.8303 466.303 +-445.641 91.6889 460.569 +-447.846 90.5469 454.833 +-448.932 89.1956 448.045 +-450.356 87.9302 441.689 +-451.844 86.6943 435.48 +-454.407 85.6771 430.371 +-456.115 84.5097 424.507 +-456.73 83.1569 417.711 +-458.365 82.0061 411.931 +-459.412 80.7649 405.696 +-383.84 66.3042 333.057 +-382.713 64.956 326.285 +-383.929 64.0224 321.595 +-384.018 62.914 316.027 +-382.88 61.624 309.548 +-382.744 60.5146 303.975 +-382.461 59.3984 298.368 +-140.818 21.4808 107.902 +-142.486 21.347 107.23 +-142.237 20.9271 105.12 +-143.89 20.7884 104.424 +-142.711 20.2441 101.69 +-142.714 19.8755 99.8378 +-142.123 19.43 97.6003 +-146.694 19.6847 98.8796 +-147.9 19.4778 97.84 +-495.829 64.0763 321.866 +-497.919 63.1332 317.129 +-499.625 62.1461 312.17 +-501.366 61.1683 307.259 +-503.996 60.3016 302.905 +-509.072 59.7221 299.994 +-2823.13 324.684 1630.95 +-2837.53 319.862 1606.72 +-513.597 56.7344 284.987 +-2865.69 310.145 1557.91 +-2879.44 305.25 1533.32 +-2892.98 300.331 1508.62 +-2906.29 295.392 1483.8 +-2919.38 290.429 1458.87 +-2932.25 285.444 1433.83 +-379.561 36.1447 181.561 +-380.44 35.4294 177.968 +-380.377 34.6314 173.959 +-379.363 33.7553 169.559 +-380.035 33.036 165.946 +-380.855 32.3328 162.413 +-380.353 31.5225 158.343 +-380.361 30.7612 154.519 +-379.404 29.9291 150.339 +-379.424 29.1813 146.583 +-380.527 28.5198 143.26 +-380.851 27.8019 139.654 +-379.918 26.9984 135.618 +-381.393 26.3695 132.459 +-380.855 25.6044 128.615 +-381.131 24.8988 125.071 +-379.186 24.0553 120.834 +-380.819 23.4436 117.761 +-380.418 22.7081 114.067 +-380.268 21.9925 110.472 +-380.371 21.2955 106.971 +-379.574 20.5526 103.239 +-380.478 19.9051 99.9869 +-379.32 19.1534 96.2109 +-379.871 18.4922 92.8896 +-380.099 17.8169 89.4976 +-380.297 17.1423 86.1087 +-381.341 16.5064 82.9142 +-380.793 15.8032 79.3823 +-381.093 15.1382 76.042 +-380.773 14.4511 72.5903 +-380.028 13.752 69.0784 +-380.628 13.1039 65.8233 +-379.819 12.4098 62.3365 +-380.853 11.7775 59.1602 +-379.98 11.0877 55.6955 +-380.956 10.4535 52.5095 +-379.723 9.76065 49.0294 +-381.336 9.14185 45.9211 +-380.041 8.45419 42.4669 +-380.604 7.81043 39.2331 +-379.943 7.14294 35.8802 +-380.546 6.50043 32.6527 +-380.523 5.84719 29.3714 +-380.471 5.19454 26.0931 +-380.09 4.53894 22.7999 +-381.177 3.90035 19.5921 +-380.138 3.24054 16.2778 +-3274.5 22.326 112.147 +-145.95 0.746197 3.74828 +-144.678 0.493067 2.47676 +-145.794 0.248417 1.24784 +96 1.77636e-15 -2.27374e-13 +96.0963 0.171151 0.82097 +96.0854 0.342289 1.64188 +96.0671 0.513399 2.46265 +95.9415 0.68376 3.27984 +96.1084 0.856384 4.10787 +96.0682 1.02752 4.92875 +95.9208 1.19732 5.74328 +95.9657 1.36953 6.56933 +95.9034 1.54039 7.38891 +95.8339 1.71113 8.20791 +95.7571 1.88175 9.0263 +96.6675 2.07355 9.94636 +96.5752 2.24564 10.7718 +96.674 2.42252 11.6203 +96.3684 2.58926 12.4201 +96.2541 2.76079 13.2429 +96.1323 2.93212 14.0647 +95.9045 3.10003 14.8701 +95.6697 3.26734 15.6726 +96.2157 3.4624 16.6083 +96.064 3.63363 17.4297 +95.905 3.80457 18.2496 +95.7386 3.97523 19.0682 +95.565 4.1456 19.8855 +95.3841 4.31564 20.7011 +96.0729 4.52667 21.7134 +95.195 4.66424 22.3733 +95.6712 4.86817 23.3515 +95.653 5.04858 24.2168 +96.2062 5.26101 25.2358 +95.9776 5.43214 26.0567 +96.6068 5.65351 27.1186 +96.3614 5.82533 27.9427 +96.1086 5.99674 28.765 +96.7069 6.22291 29.8498 +96.342 6.38859 30.6446 +97.0135 6.62469 31.7771 +96.632 6.79057 32.5728 +96.338 6.96241 33.3971 +96.0366 7.13372 34.2188 +96.4772 7.36167 35.3122 +96.1588 7.5332 36.135 +96.8565 7.78645 37.3498 +97.2616 8.0198 38.4691 +97.0074 8.20054 39.3361 +96.653 8.373 40.1633 +96.383 8.55294 41.0265 +96.105 8.73257 41.8881 +96.5469 8.97958 43.073 +96.1593 9.15118 43.8961 +96.5766 9.40116 45.0952 +96.89 9.64437 46.2618 +96.4739 9.81656 47.0877 +96.8524 10.0714 48.3102 +96.4181 10.2435 49.1357 +96.7711 10.5011 50.3711 +96.2305 10.6633 51.1492 +96.558 10.9233 52.3965 +96.0873 11.0949 53.2194 +96.302 11.3472 54.4298 +95.8993 11.5286 55.3001 +96.7742 11.8672 56.924 +96.2631 12.0391 57.7485 +96.5079 12.3074 59.0356 +95.9779 12.4788 59.8578 +96.1116 12.7382 61.1019 +96.3138 13.0102 62.407 +96.3342 13.2611 63.6106 +95.8459 13.4438 64.4866 +95.9227 13.7076 65.7522 +96.0656 13.9846 67.0807 +96.1112 14.2511 68.3592 +96.3021 14.5431 69.76 +96.2356 14.8001 70.9924 +95.5991 14.9709 71.8119 +95.6645 15.2537 73.1682 +95.7912 15.5505 74.5921 +96.2884 15.9132 76.3317 +95.6814 16.097 77.2136 +95.679 16.3849 78.5945 +95.583 16.6607 79.9174 +96.15 17.0579 81.8227 +96.0161 17.3367 83.16 +96.0143 17.6436 84.6321 +95.8461 17.9242 85.9782 +95.7342 18.2195 87.3947 +95.6043 18.5157 88.8156 +95.4564 18.8129 90.2411 +95.8609 19.2254 92.2195 +95.6715 19.5252 93.6579 +95.5339 19.8404 95.1699 +95.8629 20.2594 97.1796 +95.6125 20.5627 98.6344 +95.3434 20.8664 100.091 +95.6636 21.3062 102.201 +95.3511 21.6123 103.669 +95.0197 21.9188 105.14 +95.3254 22.3799 107.351 +95.5338 22.8282 109.502 +95.1326 23.1383 110.989 +94.7757 23.4642 112.552 +95.1532 23.9809 115.031 +95.307 24.453 117.295 +94.7503 24.7505 118.723 +95.1494 25.3069 121.391 +95.0266 25.7363 123.451 +95.1716 26.2489 125.91 +94.9273 26.6651 127.906 +94.5965 27.0657 129.828 +94.8695 27.6512 132.636 +94.7031 28.1218 134.894 +94.3918 28.5602 136.997 +94.7676 29.2206 140.165 +94.6038 29.7306 142.611 +94.3498 30.2251 144.983 +94.0607 30.7209 147.361 +94.2065 31.3743 150.495 +94.2005 31.9958 153.476 +94.3006 32.6723 156.722 +93.9 33.1925 159.217 +93.8559 33.8558 162.399 +94.2955 34.7179 166.534 +93.714 35.2252 168.967 +93.5187 35.8953 172.181 +93.6426 36.7122 176.1 +93.749 37.5504 180.12 +93.7462 38.3735 184.069 +93.5484 39.1443 187.766 +96.2623 41.1882 197.57 +116.009 50.7727 243.545 +116.197 52.036 249.605 +116.083 53.2105 255.238 +115.199 54.0703 259.363 +112.843 54.2546 260.247 +113.313 55.83 267.803 +110.958 56.0485 268.852 +107.935 55.9212 268.241 +105.504 56.0922 269.061 +102.471 55.9339 268.302 +99.8015 55.9608 268.431 +97.1044 55.9632 268.443 +94.4148 55.9604 268.429 +91.9866 56.1071 269.133 +91.9326 57.7439 276.984 +91.6251 59.307 284.482 +91.5123 61.0876 293.023 +91.2825 62.8922 301.679 +91.043 64.7983 310.822 +91.155 67.0818 321.776 +90.7678 69.1341 331.62 +90.0366 71.0517 340.819 +87.2612 71.4272 342.62 +87.542 74.4177 356.964 +87.326 77.1955 370.289 +86.8572 79.9584 383.542 +86.4497 83.0046 398.154 +89.2371 89.515 429.382 +87.9629 92.355 443.006 +85.4685 94.1137 451.441 +84.9487 98.3221 471.628 +85.0655 103.743 497.633 +88.4011 113.909 546.396 +88.1831 120.42 577.628 +92.6475 134.538 645.346 +88.1704 136.681 655.625 +86.4419 143.679 689.196 +83.9062 150.296 720.935 +84.6367 164.343 788.316 +79.0344 167.515 803.529 +70.4567 164.355 788.374 +64.4071 167.018 801.145 +56.2098 164.052 786.919 +49.9988 166.835 800.267 +42.099 163.942 786.391 +35.6414 166.6 799.141 +27.9894 163.577 784.642 +21.3499 166.396 798.161 +13.9829 163.489 784.218 +7.10864 166.242 797.425 +4.52971e-14 163.371 783.652 +-7.10165 166.079 796.642 +-13.9741 163.387 783.728 +-21.2897 165.926 795.909 +-27.9231 163.19 782.784 +-35.4756 165.825 795.425 +-41.8897 163.127 782.48 +-49.6264 165.592 794.307 +-55.8122 162.891 781.352 +-63.8422 165.553 794.119 +-69.7159 162.627 780.085 +-78.0089 165.341 793.102 +-83.8214 162.76 780.722 +-92.2946 165.322 793.01 +-97.7758 162.518 779.56 +-106.849 165.636 794.515 +-112.229 162.973 781.745 +-121.632 166.098 796.732 +-125.961 162.307 778.549 +-135.471 165.216 792.505 +-142.009 164.366 788.425 +-147.356 162.261 778.326 +-147.858 155.241 744.653 +-653.189 655.224 3142.96 +-114.559 109.994 527.616 +-118.176 108.79 521.839 +-123.093 108.814 521.953 +-128.278 109.047 523.071 +-792.705 648.865 3112.45 +-820.42 647.428 3105.56 +-848.072 645.942 3098.44 +-875.66 644.408 3091.07 +-903.181 642.824 3083.48 +-930.633 641.189 3075.64 +-164.079 109.528 525.383 +-143.918 93.1549 446.842 +-145.949 91.6722 439.73 +-147.325 89.8605 431.04 +-152.398 90.3279 433.282 +-1093.78 630.371 3023.74 +-1120.7 628.399 3014.28 +-1147.52 626.379 3004.59 +-145.354 77.2792 370.69 +-145.244 75.2514 360.963 +-145.01 73.2491 351.359 +-146.644 72.2528 346.58 +-151.877 73.022 350.269 +-1306.58 613.264 2941.69 +-1332.75 610.913 2930.41 +-1358.83 608.517 2918.91 +-1384.79 606.074 2907.2 +-1410.48 603.511 2894.9 +-143.873 60.2021 288.775 +-144.211 59.0304 283.155 +-142.735 57.171 274.236 +-144.481 56.6433 271.704 +-147.743 56.7082 272.016 +-150.496 56.5684 271.345 +-414.561 152.633 732.146 +-109.761 39.5931 189.919 +-109.75 38.7953 186.092 +-110.846 38.4049 184.219 +-112.072 38.0661 182.594 +-113.539 37.8129 181.379 +-114.992 37.5571 180.153 +-116.916 37.4543 179.659 +-118.786 37.3302 179.064 +-120.653 37.2022 178.45 +-123.302 37.3075 178.956 +-127.611 37.8939 181.768 +-419.17 122.173 586.036 +-418.919 119.86 574.942 +-420.913 118.235 567.144 +-423.573 116.824 560.378 +-424.701 115.022 551.735 +-426.559 113.452 544.203 +-428.069 111.82 536.372 +-427.605 109.711 526.26 +-430.518 108.502 520.456 +-434.696 107.62 516.229 +-2105.97 512.213 2456.97 +-435.26 104.007 498.898 +-437.263 102.658 492.427 +-438.787 101.218 485.52 +-440.957 99.9474 479.425 +-442.647 98.5866 472.897 +-444.595 97.3019 466.734 +-445.434 95.7959 459.511 +-447.846 94.6465 453.997 +-449.283 93.3069 447.571 +-450.993 92.0414 441.501 +-452.557 90.7626 435.367 +-454.767 89.627 429.92 +-455.825 88.2799 423.458 +-456.73 86.9219 416.944 +-458.365 85.719 411.174 +-462.385 84.9677 407.57 +-385.188 69.5495 333.612 +-384.449 68.2047 327.162 +-384.917 67.0935 321.832 +-384.401 65.8281 315.762 +-382.88 64.414 308.979 +-383.444 63.3701 303.972 +-382.226 62.0495 297.637 +-141.527 22.5664 108.246 +-142.486 22.3135 107.033 +-142.796 21.9607 105.34 +-143.167 21.6205 103.708 +-142.468 21.1247 101.33 +-142.552 20.7517 99.5409 +-141.877 20.2746 97.2525 +-146.777 20.5876 98.7538 +-148.564 20.4508 98.0979 +-496.079 67.011 321.436 +-498.17 66.0251 316.707 +-500.215 65.0365 311.965 +-502.129 64.035 307.161 +-503.996 63.0318 302.349 +-2808.34 344.379 1651.9 +-2823.13 339.385 1627.95 +-527.496 62.1544 298.14 +-2851.72 329.278 1579.47 +-2865.69 324.187 1555.05 +-2879.44 319.07 1530.5 +-2892.98 313.929 1505.85 +-2906.29 308.766 1481.08 +-2919.38 303.578 1456.19 +-2932.25 298.368 1431.2 +-379.92 37.8169 181.399 +-379.988 36.9896 177.43 +-379.834 36.1475 173.391 +-380.182 35.3597 169.612 +-380.035 34.5318 165.641 +-379.755 33.6991 161.647 +-380.261 32.9417 158.014 +-380.546 32.1695 154.309 +-381.351 31.4448 150.833 +-381.471 30.6672 147.103 +-380.807 29.8329 143.101 +-379.633 28.9678 138.952 +-380.294 28.2488 135.503 +-381.581 27.5771 132.281 +-381.517 26.8102 128.602 +-380.847 26.0067 124.748 +-381.469 25.2958 121.338 +-380.247 24.4681 117.368 +-380.036 23.7125 113.744 +-380.651 23.0115 110.381 +-380.756 22.2821 106.882 +-380.827 21.5541 103.39 +-380.478 20.8064 99.8033 +-380.482 20.0819 96.3283 +-380.162 19.3443 92.7901 +-380.488 18.6427 89.4246 +-380.394 17.923 85.9725 +-380.267 17.2051 82.5289 +-380.597 16.5102 79.1957 +-380.701 15.8074 75.8242 +-379.89 15.0703 72.2889 +-380.913 14.4081 69.1121 +-381.022 13.7114 65.7705 +-380.805 13.0054 62.3837 +-380.26 12.2915 58.9597 +-380.771 11.6138 55.7089 +-381.253 10.9353 52.4539 +-380.219 10.2159 49.0033 +-379.847 9.51845 45.6578 +-380.24 8.8416 42.4111 +-380.604 8.16405 39.1611 +-380.938 7.48592 35.9082 +-379.949 6.78406 32.5416 +-380.523 6.11193 29.3175 +-380.471 5.42973 26.0451 +-380.988 4.75565 22.8118 +-380.278 4.06733 19.51 +-380.637 3.39171 16.2692 +-3274.5 23.3368 111.941 +-147.15 0.786394 3.77215 +-144.678 0.515391 2.47221 +-145.194 0.258595 1.24042 +96.1 1.77636e-15 1.13687e-13 +96.0963 0.17855 0.819392 +96.0854 0.357087 1.63873 +96.0671 0.535595 2.45792 +96.0415 0.714064 3.27694 +96.0085 0.892478 4.09571 +96.0682 1.07194 4.91928 +96.0206 1.25039 5.73822 +95.8659 1.42726 6.5499 +95.9034 1.60699 7.37471 +95.8339 1.78511 8.19214 +96.7525 1.98351 9.10261 +95.8719 2.14538 9.84547 +96.5752 2.34273 10.7511 +96.4755 2.52206 11.5741 +96.3684 2.7012 12.3962 +96.155 2.87719 13.2039 +96.0334 3.05574 14.0232 +95.8058 3.23071 14.8262 +95.6697 3.40859 15.6425 +96.2157 3.61209 16.5764 +95.9657 3.78685 17.3784 +95.905 3.96906 18.2146 +95.7386 4.14709 19.0316 +95.565 4.32483 19.8473 +95.3841 4.50222 20.6614 +95.196 4.67926 21.4738 +95.8757 4.90068 22.4899 +95.8652 5.08894 23.3539 +96.4275 5.30949 24.366 +96.2062 5.48846 25.1874 +95.9776 5.66699 26.0066 +96.6068 5.89793 27.0665 +96.3614 6.07718 27.8891 +96.1086 6.256 28.7097 +95.8486 6.43431 29.528 +96.4371 6.67136 30.6159 +96.16 6.85029 31.437 +96.7266 7.09107 32.542 +96.338 7.26342 33.3329 +95.9426 7.43486 34.1196 +96.4772 7.67994 35.2444 +97.0924 7.93519 36.4158 +96.7634 8.11527 37.2422 +96.5198 8.30272 38.1024 +97.0074 8.55508 39.2605 +96.7451 8.74329 40.1242 +96.383 8.92271 40.9476 +96.105 9.11011 41.8076 +96.5469 9.3678 42.9902 +96.1593 9.54681 43.8117 +96.5766 9.8076 45.0085 +96.171 9.98666 45.8302 +96.5634 10.2505 47.0408 +96.8524 10.5068 48.2173 +96.4181 10.6864 49.0413 +96.7711 10.9551 50.2744 +96.2305 11.1243 51.0509 +96.4706 11.3852 52.2484 +96.8706 11.6689 53.5501 +96.3886 11.8484 54.3741 +96.5886 12.1135 55.5906 +96.7742 12.3802 56.8146 +97.0305 12.6597 58.097 +96.5079 12.8395 58.9221 +95.9779 13.0183 59.7428 +96.1116 13.2889 60.9845 +96.2304 13.5609 62.2331 +96.3342 13.8345 63.4884 +96.5052 14.1215 64.8055 +96.6599 14.4101 66.1302 +96.0656 14.5892 66.9518 +96.1112 14.8672 68.2279 +95.4982 15.0452 69.0447 +96.3154 15.4527 70.9148 +95.5991 15.6181 71.6739 +95.6645 15.9131 73.0276 +95.713 16.2095 74.3879 +95.6667 16.4939 75.6931 +95.6814 16.7929 77.0653 +95.679 17.0933 78.4434 +95.507 17.3672 79.7004 +95.5462 17.6836 81.1528 +95.4919 17.9875 82.547 +96.0886 18.4206 84.5349 +95.9198 18.7135 85.8791 +95.7342 19.0072 87.2267 +96.1846 19.4335 89.183 +95.4564 19.6262 90.0677 +95.9322 20.0715 92.1108 +95.7423 20.3844 93.5471 +95.4638 20.683 94.9174 +95.8629 21.1353 96.9929 +95.6125 21.4517 98.4449 +96.0254 21.9243 100.614 +95.7311 22.2431 102.077 +95.418 22.5624 103.542 +95.6823 23.0259 105.669 +95.9158 23.4922 107.809 +95.5338 23.8152 109.291 +95.1326 24.1386 110.776 +95.1573 24.5772 112.788 +95.0903 25.0013 114.735 +94.6845 25.3437 116.306 +94.8119 25.8374 118.572 +95.0885 26.3841 121.081 +94.5451 26.7129 122.589 +94.6363 27.2298 124.962 +94.5159 27.6974 127.107 +95.1191 28.3919 130.295 +94.8695 28.8467 132.382 +94.6465 29.32 134.554 +94.3918 29.795 136.733 +94.7124 30.4663 139.814 +94.0592 30.8374 141.517 +94.2961 31.5138 144.621 +94.0607 32.049 147.078 +94.2065 32.7308 150.206 +93.8399 33.2513 152.595 +94.4021 34.1215 156.588 +93.9 34.6276 158.911 +93.8559 35.3195 162.086 +93.8107 36.0326 165.359 +94.0957 36.8978 169.33 +93.8943 37.5977 172.541 +93.5964 38.2805 175.675 +93.7944 39.1928 179.861 +93.7462 40.0325 183.715 +93.6361 40.8748 187.58 +95.4013 42.5846 195.427 +116.051 52.9872 243.166 +116.156 54.2663 249.036 +114.903 54.947 252.16 +115.518 56.564 259.581 +110.616 55.4831 254.62 +112.203 57.6731 264.67 +110.958 58.4717 268.335 +108.191 58.4775 268.362 +105.504 58.5173 268.544 +102.821 58.5516 268.702 +100.075 58.5403 268.65 +97.1044 58.3827 267.927 +94.7078 58.5609 268.745 +91.701 58.3512 267.782 +92.2416 60.4428 277.381 +91.6551 61.8912 284.028 +91.5123 63.7287 292.46 +91.2825 65.6112 301.099 +91.043 67.5998 310.225 +91.0748 69.9205 320.875 +90.7161 72.0819 330.795 +90.4122 74.4327 341.582 +87.2612 74.5153 341.962 +87.0051 77.1588 354.093 +86.9886 80.2219 368.15 +86.7923 83.3529 382.519 +86.3873 86.5306 397.102 +89.277 93.4267 428.749 +88.1538 96.5569 443.114 +85.6325 98.3707 451.438 +85.0876 102.741 471.492 +84.983 108.123 496.194 +88.2916 118.687 544.67 +88.1831 125.627 576.518 +90.2677 136.749 627.562 +87.5439 141.577 649.716 +85.601 148.433 681.179 +84.0987 157.154 721.201 +82.6925 167.51 768.727 +76.6574 169.501 777.865 +68.6526 167.071 766.711 +62.375 168.741 774.377 +54.8704 167.067 766.693 +48.4481 168.65 773.958 +41.0262 166.671 764.877 +34.5553 168.506 773.3 +27.3054 166.479 763.995 +20.6772 168.119 771.524 +13.6164 166.087 762.195 +6.88611 168 770.978 +3.81917e-14 165.878 761.237 +-6.87215 167.66 769.415 +-13.6059 165.959 761.609 +-20.6353 167.779 769.962 +-27.1902 165.777 760.773 +-34.3808 167.655 769.395 +-40.7906 165.714 760.486 +-48.1795 167.715 769.667 +-54.3752 165.558 759.772 +-61.7708 167.107 766.877 +-68.0076 165.501 759.508 +-75.6127 167.191 767.263 +-81.6158 165.329 758.719 +-89.4305 167.117 766.925 +-95.2653 165.191 758.084 +-103.494 167.372 768.093 +-108.903 164.98 757.118 +-117.523 167.425 768.337 +-122.66 164.887 756.689 +-131.031 166.711 765.059 +-137.443 165.957 761.603 +-146.736 168.564 773.564 +-147.056 161.074 739.194 +-156.105 163.361 749.689 +-114.643 114.833 526.985 +-118.544 113.846 522.457 +-123.296 113.705 521.807 +-128.722 114.155 523.872 +-792.705 676.917 3106.47 +-820.42 675.419 3099.59 +-848.072 673.869 3092.48 +-875.66 672.268 3085.13 +-903.181 670.615 3077.55 +-930.633 668.91 3069.73 +-164.254 114.386 524.934 +-143.858 97.1416 445.797 +-146.196 95.7975 439.629 +-147.325 93.7455 430.212 +-152.398 94.233 432.449 +-1093.78 657.624 3017.93 +-1120.7 655.567 3008.49 +-1147.52 653.459 2998.82 +-145.426 80.6601 370.161 +-144.915 78.3266 359.452 +-144.86 76.3369 350.321 +-147.371 75.7502 347.629 +-151.994 76.2377 349.866 +-1306.58 639.778 2936.03 +-1332.75 637.325 2924.78 +-1358.83 634.825 2913.31 +-1384.79 632.277 2901.61 +-417.467 186.346 855.17 +-144.093 62.9006 288.66 +-144.167 61.5634 282.523 +-142.78 59.6619 273.797 +-144.804 59.2243 271.789 +-147.743 59.1598 271.493 +-409.593 160.614 737.081 +-415.046 159.418 731.594 +-110.007 41.3974 189.979 +-109.8 40.4909 185.819 +-110.948 40.1019 184.033 +-112.587 39.8943 183.081 +-113.957 39.5928 181.697 +-115.522 39.3614 180.635 +-116.916 39.0735 179.314 +-119.113 39.0512 179.212 +-120.874 38.8817 178.434 +-123.638 39.0263 179.097 +-129.367 40.0759 183.914 +-420.317 127.804 586.512 +-419.674 125.268 574.871 +-420.795 123.312 565.896 +-423.871 121.96 559.694 +-425.363 120.182 551.534 +-426.62 118.374 543.234 +-428.069 116.654 535.342 +-427.294 114.371 524.865 +-430.896 113.292 519.912 +-431.261 111.386 511.166 +-704.11 178.658 819.886 +-435.26 108.504 497.939 +-437.067 107.048 491.26 +-438.787 105.594 484.587 +-441.359 104.363 478.939 +-442.647 102.849 471.988 +-444.39 101.462 465.624 +-446.26 100.123 459.478 +-447.429 98.6466 452.704 +-449.563 97.4015 446.99 +-450.993 96.0206 440.653 +-453.271 94.8358 435.215 +-454.767 93.5019 429.094 +-456.115 92.155 422.913 +-457.169 90.7669 416.542 +-458.365 89.4249 410.384 +-2434.91 466.785 2142.14 +-2453.95 462.241 2121.29 +-382.713 70.8324 325.06 +-383.016 69.6484 319.627 +-382.792 68.3867 313.836 +-384.809 67.5374 309.939 +-383.444 66.1098 303.388 +-381.913 64.6791 296.822 +-141.763 23.5812 108.218 +-142.566 23.291 106.886 +-142.716 22.8971 105.078 +-144.051 22.6944 104.148 +-142.306 22.0129 101.02 +-142.47 21.6365 99.293 +-142.451 21.2366 97.4579 +-147.024 21.5138 98.7302 +-494.604 71.0295 325.965 +-496.079 69.9081 320.819 +-498.674 68.949 316.417 +-499.962 67.814 311.208 +-501.875 66.7696 306.416 +-503.996 65.7568 301.768 +-2808.34 359.267 1648.73 +-506.983 63.5824 291.789 +-2837.53 348.799 1600.69 +-2851.72 343.514 1576.44 +-2865.69 338.202 1552.06 +-2879.44 332.865 1527.56 +-2892.98 327.501 1502.95 +-2906.29 322.115 1478.23 +-2919.38 316.703 1453.39 +-384.106 40.7738 187.117 +-381.538 39.6201 181.822 +-381.523 38.7446 177.805 +-380.015 37.7284 173.141 +-380.182 36.8885 169.287 +-380.035 36.0247 165.323 +-379.755 35.156 161.336 +-379.432 34.291 157.366 +-380.916 33.5928 154.162 +-380.794 32.7563 150.323 +-381.471 31.993 146.821 +-380.154 31.0692 142.581 +-381.788 30.3917 139.472 +-380.576 29.4918 135.342 +-381.487 28.7623 131.995 +-381.233 27.9484 128.259 +-381.7 27.1917 124.787 +-381.469 26.3895 121.105 +-380.247 25.5259 117.142 +-380.036 24.7377 113.525 +-381.418 24.0547 110.391 +-380.371 23.222 106.569 +-380.152 22.4462 103.009 +-379.609 21.6563 99.3839 +-379.901 20.9181 95.9964 +-380.453 20.1961 92.6827 +-379.613 19.4039 89.0475 +-379.907 18.6739 85.6974 +-381.927 18.0273 82.7299 +-380.988 17.2417 79.1249 +-380.505 16.4823 75.6396 +-380.97 15.7666 72.3551 +-380.421 15.0116 68.8903 +-381.121 14.3079 65.661 +-380.41 13.5536 62.1993 +-380.853 12.8429 58.9381 +-379.683 12.0813 55.443 +-380.659 11.3902 52.2715 +-380.021 10.652 48.8836 +-380.443 9.94553 45.6415 +-380.836 9.23831 42.3959 +-380.902 8.5237 39.1165 +-379.943 7.78914 35.7455 +-380.248 7.08292 32.5045 +-381.221 6.38788 29.3149 +-381.069 5.67339 26.036 +-380.689 4.95736 22.75 +-381.077 4.2521 19.5135 +-381.037 3.54204 16.255 +-3274.5 24.3458 111.726 +-148.849 0.829867 3.80838 +-146.178 0.543247 2.49304 +-146.694 0.272562 1.25083 +95.3 -1.77636e-15 -2.27374e-13 +95.9963 0.185741 0.816897 +95.9854 0.371468 1.63373 +96.0671 0.557747 2.45299 +95.9415 0.742824 3.26696 +96.0085 0.929391 4.08749 +95.9683 1.11511 4.90431 +96.0206 1.30211 5.7267 +95.9657 1.48784 6.54355 +95.8038 1.67172 7.35226 +95.8339 1.85895 8.1757 +96.7525 2.06555 9.08434 +95.673 2.22948 9.80533 +96.5752 2.43962 10.7295 +95.4829 2.59935 11.432 +96.3684 2.81292 12.3713 +96.155 2.99619 13.1774 +96.0334 3.18212 13.9951 +95.8058 3.36433 14.7964 +95.6697 3.54957 15.6111 +96.2157 3.76149 16.5432 +96.064 3.94751 17.3613 +95.905 4.13322 18.178 +95.7386 4.31861 18.9934 +95.565 4.5037 19.8074 +95.3841 4.68844 20.6199 +96.0729 4.91769 21.6282 +95.8757 5.10338 22.4448 +95.8652 5.29942 23.307 +95.653 5.48468 24.1218 +96.2062 5.71547 25.1368 +95.9776 5.90137 25.9544 +95.7417 6.08686 26.7702 +96.3614 6.32853 27.8331 +96.1086 6.51475 28.6521 +95.8486 6.70044 29.4687 +96.4371 6.94729 30.5544 +96.16 7.13362 31.3739 +96.632 7.37715 32.445 +96.2437 7.55643 33.2335 +96.0366 7.74995 34.0845 +96.4772 7.99758 35.1736 +96.1588 8.18393 35.9932 +96.7634 8.45092 37.1674 +96.4271 8.63783 37.9895 +97.0074 8.90892 39.1817 +96.653 9.09627 40.0057 +96.383 9.29176 40.8655 +96.9272 9.56808 42.0807 +96.5469 9.75525 42.9039 +96.1593 9.94167 43.7238 +96.5766 10.2132 44.9182 +96.171 10.3997 45.7383 +96.5634 10.6744 46.9464 +96.0505 10.8508 47.7221 +96.5068 11.1386 48.9878 +96.7711 11.4082 50.1735 +96.2305 11.5844 50.9485 +96.558 11.8669 52.1909 +96.0873 12.0532 53.0106 +96.3886 12.3385 54.265 +96.5886 12.6145 55.4791 +96.0885 12.8009 56.2988 +96.2631 13.079 57.5219 +96.4231 13.3587 58.7522 +95.8936 13.5448 59.5705 +96.1116 13.8385 60.8622 +96.2304 14.1218 62.1083 +96.3342 14.4067 63.361 +96.5052 14.7055 64.6754 +95.9227 14.8917 65.4941 +96.0656 15.1926 66.8175 +96.1112 15.4821 68.091 +96.3021 15.7994 69.4862 +96.2356 16.0785 70.7138 +96.3924 16.3991 72.1236 +95.7433 16.5849 72.9412 +95.713 16.88 74.2386 +95.6667 17.1761 75.5412 +95.6043 17.4734 76.8486 +95.679 17.8002 78.286 +95.583 18.0999 79.6038 +96.2255 18.5459 81.5656 +96.0161 18.8342 82.8337 +95.2712 19.0193 83.6475 +95.9198 19.4875 85.7067 +95.7342 19.7933 87.0517 +95.5318 20.0999 88.4 +95.4564 20.438 89.8869 +95.7895 20.8705 91.7893 +95.7423 21.2275 93.3594 +95.5339 21.5543 94.7964 +95.2377 21.8659 96.167 +95.6125 22.3389 98.2474 +95.4116 22.685 99.7695 +95.7311 23.163 101.872 +95.3511 23.4792 103.262 +95.6823 23.9783 105.457 +95.1942 24.2796 106.783 +95.4039 24.7665 108.924 +95.004 25.1028 110.403 +95.2209 25.6108 112.637 +95.1532 26.0524 114.579 +94.6845 26.3919 116.072 +95.1813 27.0107 118.794 +94.5406 27.3171 120.142 +95.0266 27.9594 122.966 +94.5768 28.3381 124.632 +95.0449 29.0044 127.562 +94.4223 29.3496 129.08 +94.7548 30.0034 131.956 +94.6465 30.5326 134.284 +94.5036 31.0639 136.62 +94.8228 31.7634 139.696 +94.5493 32.2802 141.969 +94.7259 32.9668 144.989 +94.0607 33.3746 146.783 +94.102 34.0466 149.738 +93.7369 34.5885 152.121 +93.9454 35.3609 155.519 +93.9 36.0598 158.592 +93.8559 36.7803 161.761 +94.247 37.6974 165.794 +94.048 38.4044 168.904 +93.8474 39.133 172.108 +93.5964 39.8637 175.322 +93.749 40.7941 179.414 +93.7462 41.6882 183.346 +93.6361 42.5653 187.204 +94.7124 44.0258 193.627 +115.502 54.9175 241.529 +115.948 56.4099 248.093 +114.171 56.8549 250.05 +111.45 56.8296 249.939 +115.227 60.1862 264.701 +114.001 61.0214 268.374 +111.595 61.2395 269.334 +108.521 61.0819 268.64 +105.79 61.1032 268.734 +102.786 60.9524 268.071 +100.109 60.9823 268.202 +97.1044 60.7974 267.389 +94.7078 60.983 268.205 +91.7645 60.8065 267.429 +91.8399 62.6687 275.619 +91.6251 64.43 283.365 +91.6585 66.4707 292.34 +91.2257 68.2823 300.308 +91.2084 70.5234 310.164 +90.7809 72.5774 319.198 +90.7161 75.0633 330.131 +90.5875 77.6615 341.558 +86.9467 77.3174 340.045 +86.9817 80.3286 353.288 +87.0561 83.6046 367.696 +86.6624 86.6705 381.18 +86.2418 89.9579 395.638 +89.1573 97.1605 427.315 +88.4972 100.942 443.948 +85.5778 102.374 450.245 +84.8792 106.728 469.393 +84.95 112.552 495.007 +88.1195 123.355 542.518 +88.0205 130.581 574.301 +88.1522 139.068 611.625 +86.9957 146.509 644.352 +84.6626 152.878 672.361 +85.9665 167.288 735.739 +80.9468 170.756 750.99 +74.8268 172.296 757.765 +67.0053 169.806 746.813 +60.9706 171.764 755.423 +53.6009 169.951 747.45 +47.3615 171.686 755.08 +40.0998 169.645 746.107 +33.7483 171.378 753.726 +26.6911 169.465 745.311 +20.2374 171.349 753.6 +13.3354 169.387 744.97 +6.74125 171.269 753.245 +3.9968e-14 169.169 744.01 +-6.73078 171.003 752.075 +-13.3057 169.01 743.312 +-20.2008 171.039 752.236 +-26.5725 168.711 741.997 +-33.6044 170.647 750.511 +-39.8695 168.671 741.822 +-47.0684 170.624 750.409 +-53.2521 168.845 742.586 +-60.4998 170.438 749.591 +-66.4737 168.459 740.888 +-74.0408 170.487 749.806 +-79.8702 168.485 741.001 +-87.5174 170.306 749.012 +-93.1326 168.172 739.626 +-101.053 170.184 748.473 +-106.662 168.269 740.052 +-114.641 170.074 747.989 +-119.985 167.962 738.703 +-128.209 169.867 747.079 +-133.605 167.996 738.853 +-144.094 172.375 758.11 +-147.247 167.954 738.668 +-148.908 162.275 713.69 +-114.663 119.604 526.022 +-118.609 118.62 521.694 +-123.566 118.667 521.9 +-128.979 119.113 523.863 +-792.705 704.915 3100.24 +-820.42 703.354 3093.38 +-848.072 701.74 3086.28 +-875.66 700.073 3078.94 +-903.181 698.352 3071.38 +-930.633 696.576 3063.57 +-164.781 119.499 525.559 +-144.068 101.307 445.554 +-146.134 99.7176 438.561 +-147.547 97.7698 429.995 +-152.626 98.2773 432.227 +-1093.78 684.823 3011.88 +-1120.7 682.681 3002.46 +-1147.52 680.486 2992.8 +-145.569 84.0789 369.782 +-144.915 81.5662 358.731 +-145.085 79.6175 350.161 +-147.869 79.1495 348.102 +-152.229 79.5135 349.703 +-1306.58 666.239 2930.14 +-1332.75 663.685 2918.91 +-1358.83 661.082 2907.46 +-1384.79 658.428 2895.79 +-480.321 223.27 981.947 +-143.873 65.4025 287.642 +-143.765 63.9312 281.171 +-142.825 62.1492 273.334 +-144.943 61.7329 271.503 +-148.165 61.7827 271.723 +-408.83 166.945 734.231 +-1588.38 635.33 2794.2 +-109.761 43.0132 189.174 +-109.95 42.2232 185.699 +-111.049 41.7987 183.832 +-112.536 41.5253 182.63 +-113.905 41.2116 181.25 +-115.522 40.9894 180.273 +-117.024 40.7271 179.119 +-119.167 40.685 178.934 +-120.764 40.4528 177.913 +-123.973 40.7508 179.224 +-418.631 135.049 593.952 +-419.973 132.981 584.855 +-421.416 130.99 576.1 +-422.97 129.076 567.68 +-423.335 126.844 557.866 +-425.543 125.206 550.66 +-427.107 123.41 542.764 +-428.624 121.636 534.959 +-428.166 119.344 524.881 +-430.896 117.977 518.869 +-429.734 115.582 508.335 +-2105.97 556.459 2447.32 +-435.52 113.059 497.237 +-437.591 111.609 490.862 +-438.92 109.995 483.761 +-441.158 108.631 477.761 +-442.647 107.103 471.041 +-444.595 105.707 464.903 +-446.26 104.264 458.556 +-448.471 102.966 452.848 +-449.283 101.367 445.815 +-451.7 100.149 440.458 +-452.985 98.6959 434.068 +-454.767 97.3692 428.233 +-456.115 95.9666 422.064 +-456.95 94.4758 415.508 +-459.103 93.2734 410.22 +-2434.91 486.091 2137.84 +-382.192 74.9697 329.719 +-384.223 74.0529 325.687 +-383.777 72.673 319.618 +-384.248 71.4859 314.397 +-383.883 70.1616 308.573 +-384.143 68.9696 303.331 +-382.695 67.4924 296.834 +-140.896 24.4064 107.34 +-142.566 24.2543 106.671 +-142.157 23.7508 104.457 +-142.926 23.4484 103.127 +-142.225 22.9105 100.761 +-142.633 22.5571 99.2069 +-142.532 22.1277 97.3184 +-148.095 22.5668 99.2498 +-494.189 73.9055 325.039 +-496.079 72.7995 320.175 +-498.925 71.8371 315.942 +-500.722 70.7261 311.056 +-502.129 69.5665 305.956 +-504.337 68.5229 301.366 +-2808.34 374.127 1645.42 +-505.69 66.0432 290.46 +-2837.53 363.225 1597.48 +-2851.72 357.722 1573.27 +-2865.69 352.19 1548.95 +-2879.44 346.632 1524.5 +-2892.98 341.047 1499.94 +-2906.29 335.437 1475.27 +-527.565 59.5988 262.118 +-384.464 42.4999 186.916 +-380.729 41.1712 181.072 +-380.44 40.2325 176.944 +-380.831 39.3731 173.164 +-379.636 38.359 168.704 +-380.309 37.5417 165.11 +-379.755 36.6101 161.012 +-379.708 35.7354 157.166 +-381.377 35.0248 154.04 +-380.887 34.1193 150.058 +-381.192 33.2919 146.419 +-380.154 32.3542 142.295 +-380.195 31.5166 138.611 +-379.448 30.6207 134.671 +-381.204 29.9296 131.631 +-381.517 29.1261 128.097 +-380.373 28.2179 124.103 +-380.518 27.4124 120.561 +-382.154 26.7151 117.494 +-380.896 25.8192 113.554 +-381.035 25.0246 110.059 +-380.371 24.1825 106.355 +-379.959 23.3626 102.749 +-379.609 22.552 99.1844 +-381.063 21.85 96.0968 +-379.871 20.9992 92.3551 +-380.975 20.2789 89.1875 +-381.661 19.5361 85.9203 +-380.658 18.7105 82.2895 +-379.326 17.8765 78.6215 +-380.897 17.1817 75.5656 +-381.558 16.4441 72.3216 +-380.421 15.6325 68.7521 +-381.022 14.8958 65.5124 +-380.016 14.0995 62.0101 +-381.248 13.388 58.8808 +-381.365 12.6367 55.5768 +-379.867 11.8367 52.0581 +-381.111 11.1244 48.9255 +-380.542 10.3596 45.5618 +-380.836 9.6204 42.3109 +-380.305 8.86234 38.9769 +-380.938 8.13256 35.7673 +-379.65 7.3643 32.3884 +-380.523 6.63989 29.2024 +-381.468 5.91423 26.011 +-379.79 5.15022 22.6509 +-380.478 4.421 19.4437 +-380.438 3.68276 16.1969 +-146.711 1.1359 4.99574 +-146.55 0.850841 3.74203 +-145.878 0.564556 2.48294 +-146.294 0.283062 1.24492 +96.1 1.77636e-15 1.13687e-13 +96.0963 0.193305 0.816037 +95.9854 0.386192 1.63031 +95.9671 0.579252 2.44532 +96.0415 0.773071 3.26353 +96.0085 0.966228 4.07894 +96.0682 1.16052 4.89914 +95.9208 1.35231 5.70878 +96.8635 1.56128 6.59095 +95.8038 1.73798 7.33688 +96.7305 1.95071 8.23493 +96.653 2.14521 9.05601 +96.6675 2.34196 9.8866 +96.5752 2.53632 10.7071 +96.4755 2.73047 11.5267 +96.3684 2.92442 12.3455 +96.2541 3.11816 13.1633 +96.0334 3.30825 13.9658 +95.8058 3.49768 14.7655 +95.6697 3.69026 15.5785 +96.2157 3.91058 16.5085 +96.064 4.10397 17.325 +95.905 4.29704 18.14 +95.7386 4.48979 18.9537 +95.565 4.68221 19.766 +95.3841 4.87427 20.5768 +96.0729 5.11261 21.5829 +95.8757 5.30565 22.3979 +95.6712 5.49831 23.2112 +95.4594 5.69055 24.0227 +96.2062 5.942 25.0842 +95.9776 6.13528 25.9001 +96.6068 6.38531 26.9556 +96.3614 6.57937 27.7749 +96.1086 6.77297 28.5922 +96.7069 7.02841 29.6705 +96.4371 7.22266 30.4905 +96.16 7.41637 31.3083 +96.632 7.66956 32.3771 +96.338 7.86364 33.1964 +96.0366 8.05712 34.0132 +96.4772 8.31457 35.1001 +97.0924 8.59092 36.2667 +96.7634 8.78588 37.0897 +96.4271 8.9802 37.91 +97.0074 9.26203 39.0998 +96.7451 9.4658 39.96 +96.383 9.66004 40.78 +96.105 9.86293 41.6365 +96.5469 10.1419 42.8142 +96.1593 10.3357 43.6323 +96.5766 10.6181 44.8242 +96.0811 10.8018 45.6 +96.5634 11.0975 46.8482 +96.8524 11.3751 48.0199 +96.4181 11.5694 48.8405 +95.8881 11.7521 49.6117 +96.3184 12.0545 50.8883 +96.558 12.3372 52.0817 +96.0873 12.531 52.8997 +96.302 12.816 54.1028 +96.5886 13.1145 55.363 +96.0027 13.2964 56.131 +96.1778 13.5854 57.3507 +96.4231 13.8882 58.6293 +95.8936 14.0817 59.4459 +96.0278 14.3745 60.6819 +96.3138 14.6943 62.032 +96.4171 14.9906 63.2828 +96.5052 15.2884 64.5401 +95.9227 15.4819 65.3571 +96.0656 15.7947 66.6777 +96.1112 16.0958 67.9485 +95.4982 16.2885 68.762 +95.6765 16.6187 70.1559 +95.6784 16.9228 71.4396 +96.3737 17.3558 73.2678 +96.3391 17.6638 74.568 +95.6667 17.8569 75.3832 +95.6043 18.166 76.6879 +95.679 18.5058 78.1223 +96.2674 18.952 80.006 +95.6217 19.1601 80.8843 +96.0161 19.5808 82.6604 +95.2712 19.7731 83.4725 +95.9198 20.2599 85.5274 +95.8073 20.5936 86.936 +95.6043 20.9124 88.282 +95.4564 21.2481 89.6989 +95.2903 21.5847 91.1199 +95.7423 22.0689 93.1641 +95.4638 22.3922 94.5287 +95.3071 22.7491 96.0357 +95.6813 23.2409 98.1119 +95.3434 23.5673 99.4898 +95.7311 24.0811 101.659 +95.3511 24.4098 103.046 +95.0197 24.756 104.508 +95.3254 25.2768 106.706 +94.8194 25.5902 108.029 +95.004 26.0978 110.172 +95.1573 26.6081 112.327 +95.1532 27.0851 114.34 +94.6845 27.438 115.83 +95.1197 28.0633 118.47 +95.1494 28.5826 120.662 +94.6053 28.9388 122.165 +95.1716 29.6466 125.154 +94.5746 30.0048 126.666 +94.8869 30.6629 129.444 +94.9269 31.2493 131.919 +94.6465 31.7428 134.003 +94.5036 32.2951 136.334 +94.2156 32.8108 138.511 +94.5493 33.5597 141.672 +94.1886 34.0792 143.866 +94.0607 34.6974 146.475 +94.2065 35.4355 149.591 +93.7369 35.9594 151.803 +94.4021 36.9411 155.947 +93.9 37.489 158.26 +93.9052 38.2582 161.507 +93.9076 39.0505 164.852 +94.0957 39.9469 168.636 +93.9413 40.7248 171.92 +93.5964 41.4438 174.955 +93.7944 42.4315 179.125 +93.7462 43.3406 182.963 +93.6361 44.2525 186.812 +93.9375 45.3962 191.641 +115.924 57.3031 241.906 +115.865 58.6038 247.397 +116.001 60.056 253.527 +113.484 60.1602 253.967 +116.203 63.1021 266.386 +114.001 63.44 267.813 +111.558 63.6454 268.68 +108.484 63.4815 267.988 +105.79 63.5251 268.172 +103.136 63.5843 268.422 +100.383 63.5728 268.373 +97.4048 63.4029 267.656 +94.7078 63.4001 267.644 +91.828 63.2605 267.055 +92.118 65.35 275.876 +91.5649 66.9397 282.587 +91.3369 68.8628 290.705 +91.2825 71.033 299.867 +91.1808 73.2966 309.422 +91.0481 75.6763 319.468 +90.8714 78.1722 330.005 +90.7628 80.896 341.503 +87.0677 80.4938 339.805 +86.9117 83.4452 352.265 +87.0561 86.9184 366.927 +86.5326 89.9707 379.812 +86.2834 93.5684 395 +88.7187 100.515 424.323 +88.5735 105.034 443.4 +85.5596 106.409 449.207 +84.9313 111.026 468.698 +84.8345 116.854 493.3 +88.1352 128.267 541.479 +88.1683 135.985 574.062 +87.9852 144.306 609.189 +86.9696 152.27 642.811 +83.8461 157.404 664.483 +85.8307 173.644 733.04 +79.3371 173.994 734.515 +73.2645 175.386 740.392 +65.7154 173.138 730.904 +59.778 175.079 739.097 +52.5476 173.215 731.229 +46.3114 174.534 736.795 +39.3723 173.17 731.038 +33.0809 174.647 737.275 +26.1537 172.634 728.775 +19.8343 174.592 737.043 +13.0561 172.413 727.844 +6.59901 174.3 735.808 +3.90799e-14 172.439 727.955 +-6.59639 174.231 735.517 +-13.0474 172.298 727.357 +-19.7793 174.109 735.001 +-26.1013 172.288 727.317 +-32.9108 173.749 733.484 +-39.1996 172.41 727.832 +-46.1405 173.889 734.075 +-52.2057 172.088 726.473 +-59.2523 173.539 732.598 +-65.2274 171.852 725.475 +-72.5265 173.619 732.933 +-78.2918 171.701 724.838 +-85.6948 173.369 731.88 +-91.5239 171.818 725.329 +-98.9258 173.204 731.182 +-104.644 171.629 724.533 +-112.128 172.939 730.063 +-117.826 171.478 723.894 +-125.618 173.03 730.448 +-130.948 171.182 722.646 +-140.868 175.195 739.589 +-146.37 173.57 732.729 +-146.854 166.38 702.376 +-114.871 124.57 525.874 +-118.912 123.637 521.933 +-123.746 123.55 521.567 +-129.189 124.036 523.62 +-792.705 732.855 3093.75 +-820.32 731.142 3086.52 +-847.969 729.464 3079.44 +-875.66 727.821 3072.5 +-903.181 726.032 3064.95 +-930.633 724.186 3057.16 +-164.488 124.015 523.529 +-144.038 105.301 444.528 +-146.32 103.801 438.198 +-147.547 101.645 429.095 +-152.919 102.369 432.151 +-1093.78 711.967 3005.57 +-1120.7 709.74 2996.17 +-1147.52 707.458 2986.54 +-145.927 87.6267 369.917 +-144.915 84.7991 357.98 +-144.973 82.7092 349.158 +-147.907 82.3079 347.463 +-152.229 82.6651 348.972 +-1306.58 692.646 2924.01 +-1332.75 689.991 2912.8 +-1358.83 687.285 2901.38 +-523.962 259.003 1093.38 +-478.642 231.308 976.468 +-144.487 68.285 288.266 +-143.319 66.2588 279.712 +-142.916 64.6536 272.936 +-144.62 64.0366 270.331 +-148.306 64.2926 271.412 +-409.307 173.765 733.549 +-110.537 45.9653 194.043 +-109.86 44.7582 188.947 +-110.35 44.0565 185.985 +-111.455 43.6144 184.119 +-112.639 43.2106 182.414 +-113.905 42.845 180.871 +-115.522 42.6141 179.896 +-117.4 42.4774 179.319 +-119.167 42.2976 178.56 +-121.205 42.21 178.19 +-124.868 42.6717 180.139 +-418.064 140.212 591.908 +-417.908 137.572 580.762 +-421.765 136.295 575.369 +-423.617 134.397 567.358 +-424.406 132.206 558.107 +-425.784 130.242 549.819 +-427.716 128.485 542.4 +-427.515 126.13 532.46 +-428.539 124.183 524.239 +-431.084 122.707 518.01 +-428.59 119.843 505.92 +-2105.97 578.515 2442.21 +-436.234 117.733 497.011 +-437.788 116.086 490.056 +-439.317 114.458 483.186 +-441.158 112.936 476.761 +-443.187 111.484 470.63 +-444.39 109.846 463.717 +-446.26 108.396 457.597 +-448.471 107.047 451.9 +-449.914 105.532 445.506 +-451.7 104.118 439.536 +-452.985 102.608 433.16 +-455.702 101.437 428.216 +-456.115 99.7703 421.181 +-457.827 98.409 415.434 +-459.324 97.0172 409.559 +-383.686 79.6324 336.169 +-2453.95 500.439 2112.61 +-2472.81 495.485 2091.7 +-382.56 75.3139 317.938 +-384.248 74.3193 313.74 +-385.118 73.1772 308.918 +-383.444 71.5729 302.146 +-383.4 70.2966 296.758 +-140.818 25.3597 107.056 +-142.566 25.2157 106.448 +-143.195 24.8724 104.999 +-142.765 24.3506 102.796 +-142.225 23.8186 100.55 +-142.633 23.4512 98.9993 +-142.614 23.018 97.1706 +-147.848 23.4221 98.8767 +-494.77 76.9249 324.739 +-496.913 75.8123 320.042 +-498.925 74.6844 315.281 +-500.722 73.5294 310.405 +-502.384 72.3605 305.471 +-504.337 71.2389 300.736 +-525.015 72.7148 306.966 +-506.035 68.7077 290.05 +-2837.53 377.622 1594.13 +-2851.72 371.901 1569.98 +-517.075 66.0666 278.901 +-2879.44 360.371 1521.31 +-2892.98 354.565 1496.8 +-2906.29 348.733 1472.18 +-2919.38 342.874 1447.44 +-384.195 44.1536 186.395 +-380.37 42.7627 180.523 +-380.71 41.8571 176.7 +-380.377 40.885 172.597 +-381.092 40.0324 168.997 +-380.035 39.0016 164.646 +-381.589 38.2449 161.451 +-380.353 37.2147 157.102 +-380.823 36.36 153.494 +-380.516 35.4373 149.599 +-380.541 34.5522 145.862 +-381.648 33.769 142.556 +-380.851 32.8223 138.56 +-380.576 31.9288 134.788 +-381.77 31.1622 131.551 +-381.895 30.3105 127.956 +-381.7 29.4387 124.276 +-380.518 28.499 120.309 +-380.438 27.6493 116.722 +-381.279 26.8695 113.43 +-380.268 25.9639 109.607 +-380.083 25.1219 106.052 +-379.959 24.2886 102.534 +-380.478 23.4996 99.2037 +-380.966 22.7102 95.8714 +-381.035 21.8984 92.4444 +-380.877 21.0773 88.9782 +-380.881 20.2689 85.5655 +-380.755 19.4571 82.1383 +-380.206 18.6282 78.6391 +-379.721 17.8075 75.1747 +-380.381 17.0431 71.9475 +-381.306 16.2899 68.7678 +-380.234 15.4542 65.2402 +-381.002 14.6964 62.041 +-380.853 13.9042 58.6967 +-380.771 13.1172 55.3742 +-380.659 12.3315 52.0575 +-380.913 11.5593 48.7978 +-380.641 10.773 45.4783 +-380.538 9.99388 42.1893 +-380.604 9.22082 38.9258 +-380.938 8.4549 35.6925 +-380.248 7.66822 32.3715 +-379.327 6.88137 29.0498 +-379.673 6.1197 25.8344 +-380.389 5.3628 22.6391 +-380.278 4.59381 19.3928 +-380.138 3.82571 16.1503 +-3274.5 26.3576 111.269 +-148.049 0.893617 3.77241 +-146.078 0.587737 2.48114 +-147.194 0.296093 1.24996 +95.3 -1.77636e-15 -2.27374e-13 +95.9963 0.20045 0.813413 +95.9854 0.400884 1.62676 +95.9671 0.601289 2.43999 +96.0415 0.802481 3.25642 +96.0085 1.00299 4.07006 +95.9683 1.20342 4.8834 +96.9189 1.41836 5.75562 +96.9632 1.62235 6.58338 +95.9034 1.80597 7.32853 +95.8339 2.00615 8.14083 +96.653 2.22682 9.03629 +96.5681 2.42854 9.85488 +96.5752 2.63281 10.6838 +96.4755 2.83435 11.5016 +96.5667 3.04194 12.344 +96.2541 3.23678 13.1347 +96.0334 3.43411 13.9354 +95.8058 3.63074 14.7333 +95.4724 3.82276 15.5125 +95.5264 4.03028 16.3546 +96.064 4.2601 17.2872 +95.905 4.46052 18.1005 +95.7386 4.6606 18.9124 +95.565 4.86034 19.723 +95.3841 5.0597 20.532 +96.0729 5.30711 21.5359 +95.8757 5.5075 22.3491 +95.6712 5.70748 23.1606 +95.4594 5.90704 23.9704 +96.2062 6.16806 25.0296 +95.9776 6.36869 25.8437 +95.7417 6.56886 26.656 +96.3614 6.82967 27.7144 +96.1086 7.03064 28.5299 +95.8486 7.23103 29.3431 +96.342 7.49004 30.3941 +96.16 7.69852 31.2401 +96.5374 7.95353 32.2749 +96.4322 8.17077 33.1565 +96.0366 8.36365 33.9392 +96.4772 8.63089 35.0236 +97.0924 8.91775 36.1877 +96.8565 9.12891 37.0446 +97.2616 9.4025 38.1547 +97.0074 9.6144 39.0146 +96.653 9.81658 39.8351 +96.383 10.0275 40.6912 +96.105 10.2382 41.5458 +96.5469 10.5277 42.7209 +96.1593 10.7289 43.5373 +96.5766 11.022 44.7266 +96.171 11.2232 45.5432 +96.5634 11.5197 46.7462 +96.0505 11.71 47.5186 +96.4181 12.0096 48.7341 +96.6828 12.3003 49.9139 +96.2305 12.5017 50.7312 +95.7709 12.7022 51.5447 +96.8706 13.1137 53.2147 +96.302 13.3035 53.985 +96.5886 13.6134 55.2424 +96.0885 13.8146 56.0587 +96.3483 14.1272 57.3273 +96.5079 14.4293 58.5531 +95.8936 14.6174 59.3165 +96.0278 14.9213 60.5498 +96.3138 15.2533 61.897 +96.3342 15.5475 63.0907 +95.7635 15.748 63.9046 +96.6599 16.1944 65.716 +95.3329 16.2706 66.0251 +96.0303 16.6941 67.7435 +96.3021 17.0505 69.1899 +95.6765 17.2509 70.0031 +96.3131 17.6831 71.7569 +95.6645 17.8835 72.5703 +96.3391 18.3358 74.4056 +95.6667 18.5363 75.219 +95.6814 18.8723 76.5826 +95.6023 19.1944 77.8897 +96.2674 19.673 79.8318 +95.5462 19.8733 80.6445 +96.0161 20.3257 82.4804 +95.2712 20.5254 83.2907 +95.33 20.9014 84.8164 +95.8073 21.377 86.7466 +95.6769 21.7245 88.1567 +95.5283 22.073 89.5709 +95.9322 22.5568 91.5339 +95.7423 22.9085 92.9612 +95.5339 23.2611 94.3921 +95.8629 23.7523 96.3854 +95.5436 24.0904 97.7574 +95.4116 24.4814 99.344 +95.7311 24.9973 101.437 +95.3511 25.3385 102.822 +95.0197 25.6979 104.28 +95.1942 26.2022 106.327 +95.4039 26.7277 108.459 +95.004 27.0907 109.932 +95.1573 27.6204 112.082 +95.0903 28.097 114.016 +95.2447 28.6502 116.261 +94.7503 29.0178 117.752 +94.4798 29.4611 119.551 +94.6655 30.0586 121.976 +94.5768 30.5821 124.1 +94.5746 31.1463 126.39 +94.9449 31.8491 129.242 +94.8695 32.4185 131.552 +94.6465 32.9504 133.711 +94.4477 33.5039 135.957 +94.2156 34.059 138.209 +94.4949 34.8163 141.282 +94.2424 35.3958 143.634 +94.0607 36.0174 146.157 +94.2065 36.7836 149.265 +94.2005 37.5122 152.222 +94.3006 38.3054 155.441 +93.9 38.9153 157.916 +93.9052 39.7137 161.156 +93.8107 40.4942 164.323 +94.0957 41.4666 168.269 +93.8943 42.2531 171.46 +93.5964 43.0205 174.574 +93.749 44.0244 178.648 +93.7462 44.9894 182.564 +93.6799 45.9575 186.493 +93.464 46.8857 190.259 +116.051 59.5482 241.643 +115.99 60.8987 247.123 +116.001 62.3407 252.975 +116.116 63.8972 259.291 +116.243 65.5247 265.895 +114.384 66.0746 268.127 +111.558 66.0667 268.095 +108.851 66.1191 268.307 +106.113 66.1428 268.403 +103.101 65.9808 267.746 +100.691 66.1937 268.61 +97.7053 66.0179 267.896 +94.9682 65.9932 267.796 +92.4308 66.0983 268.223 +92.0562 67.7907 275.09 +91.5348 69.4634 281.878 +91.3369 71.4826 290.072 +91.2257 73.6894 299.027 +90.9603 75.901 308.002 +90.8343 78.3708 318.024 +90.9231 81.1923 329.473 +90.8379 84.043 341.041 +86.8983 83.3936 338.406 +86.725 86.4336 350.742 +86.8536 90.0152 365.276 +86.5326 93.3935 378.985 +86.1378 96.9644 393.476 +88.2402 103.776 421.117 +88.8597 109.382 443.865 +85.3773 110.222 447.274 +84.775 115.038 466.817 +84.7519 121.181 491.747 +87.3061 131.894 535.217 +87.8875 140.709 570.987 +87.4981 148.967 604.498 +86.565 157.328 638.427 +84.4189 164.509 667.566 +84.9137 178.324 723.63 +77.6856 176.853 717.659 +71.7597 178.318 723.605 +64.2948 175.84 713.546 +58.6403 178.281 723.453 +51.3198 175.604 712.59 +45.5056 178.021 722.398 +38.4355 175.481 712.091 +32.4397 177.777 721.41 +25.5604 175.136 710.693 +19.4416 177.647 720.879 +12.7664 175.001 710.144 +6.47771 177.605 720.711 +3.81917e-14 174.908 709.766 +-6.47073 177.414 719.934 +-12.7525 174.81 709.367 +-19.4024 177.288 719.423 +-25.4627 174.467 707.976 +-32.3002 177.013 718.306 +-38.2471 174.621 708.599 +-45.2553 177.042 718.424 +-50.978 174.434 707.844 +-58.1774 176.874 717.742 +-63.8067 174.505 708.129 +-71.0984 176.675 716.937 +-76.5253 174.212 706.94 +-83.9968 176.399 715.815 +-89.4399 174.293 707.271 +-97.1115 176.496 716.209 +-102.306 174.177 706.801 +-109.985 176.087 714.55 +-115.245 174.102 706.494 +-123.192 176.144 714.78 +-128.135 173.877 705.581 +-137.351 177.32 719.552 +-143.412 176.533 716.36 +-147.074 172.968 701.892 +-114.996 129.449 525.298 +-119.107 128.551 521.65 +-123.971 128.483 521.377 +-129.329 128.894 523.045 +-792.609 760.642 3086.64 +-820.32 758.958 3079.8 +-847.969 757.216 3072.73 +-875.553 755.416 3065.43 +-903.071 753.56 3057.9 +-930.633 751.736 3050.5 +-165.219 129.305 524.71 +-143.948 109.238 443.283 +-146.35 107.773 437.336 +-147.959 105.807 429.358 +-153.017 106.331 431.485 +-1093.78 739.053 2999.03 +-1120.7 736.741 2989.65 +-1147.52 734.372 2980.04 +-145.641 90.7816 368.386 +-145.281 88.248 358.105 +-145.085 85.9222 348.667 +-148.558 85.815 348.232 +-152.737 86.0962 349.373 +-1306.58 718.997 2917.64 +-1332.75 716.24 2906.46 +-1358.83 713.431 2895.06 +-517.581 265.583 1077.72 +-476.016 238.791 969 +-145.101 71.1838 288.859 +-143.453 68.8437 279.363 +-142.78 67.0494 272.082 +-144.804 66.5577 270.087 +-148.588 66.8654 271.336 +-409.116 180.291 731.611 +-110.44 47.6722 193.451 +-109.958 46.5026 188.705 +-110.45 45.774 185.748 +-111.506 45.2943 183.801 +-112.639 44.8545 182.017 +-113.957 44.4953 180.559 +-115.522 44.2352 179.504 +-117.293 44.0529 178.764 +-119.548 44.0472 178.741 +-121.15 43.7959 177.721 +-124.924 44.3149 179.827 +-417.838 145.468 590.298 +-418.367 142.963 580.134 +-421.126 141.266 573.247 +-422.382 139.103 564.473 +-425.06 137.447 557.75 +-425.784 135.197 548.622 +-427.168 133.202 540.525 +-427.7 130.985 531.529 +-428.539 128.907 523.098 +-431.651 127.543 517.56 +-428.971 124.514 505.268 +-2105.97 600.523 2436.89 +-436.429 122.267 496.15 +-438.182 120.61 489.429 +-439.715 118.92 482.57 +-441.894 117.428 476.517 +-442.984 115.672 469.39 +-445.004 114.183 463.346 +-446.88 112.676 457.234 +-448.471 111.12 450.916 +-450.194 109.616 444.814 +-451.417 108.012 438.304 +-453.913 106.73 433.102 +-455.126 105.163 426.743 +-456.406 103.632 420.532 +-458.486 102.3 415.126 +-459.766 100.805 409.06 +-2434.91 524.583 2128.73 +-2453.95 519.477 2108.01 +-2472.81 514.335 2087.14 +-382.636 78.1947 317.309 +-382.563 76.8084 311.684 +-384.809 75.9001 307.998 +-382.978 74.2053 301.121 +-382.695 72.8369 295.568 +-140.108 26.192 106.285 +-142.566 26.175 106.216 +-143.355 25.8476 104.888 +-143.328 25.3765 102.976 +-142.225 24.7247 100.331 +-142.877 24.385 98.9527 +-143.597 24.0584 97.6273 +-148.095 24.3539 98.8265 +-494.77 79.8514 324.032 +-497.413 78.7756 319.667 +-499.261 77.5779 314.806 +-500.722 76.3267 309.729 +-503.486 75.2782 305.474 +-505.104 74.0615 300.537 +-524.501 75.4072 305.998 +-506.466 71.3824 289.665 +-2837.53 391.988 1590.66 +-2851.72 386.049 1566.56 +-2865.69 380.079 1542.34 +-2879.44 374.081 1518 +-2892.98 368.054 1493.54 +-2906.29 362 1468.97 +-2919.38 355.918 1444.29 +-383.121 45.7051 185.468 +-378.662 44.1903 179.321 +-381.342 43.5215 176.608 +-379.562 42.3495 171.852 +-381.365 41.5851 168.75 +-379.669 40.4466 164.13 +-380.03 39.5378 160.442 +-380.353 38.6305 156.76 +-380.916 37.7524 153.197 +-380.516 36.7855 149.273 +-381.843 35.9894 146.043 +-380.527 34.9508 141.828 +-380.289 34.0207 138.054 +-381.421 33.2172 134.793 +-382.053 32.3716 131.362 +-381.895 31.4636 127.677 +-381.131 30.5132 123.821 +-380.613 29.5906 120.077 +-380.724 28.7227 116.555 +-380.896 27.8637 113.069 +-381.035 27.0062 109.589 +-381.236 26.1568 106.143 +-380.441 25.2447 102.441 +-380.188 24.3749 98.9119 +-380.579 23.5502 95.5654 +-380.162 22.6794 92.0317 +-380.488 21.8569 88.6938 +-380.394 21.0131 85.2699 +-380.267 20.1714 81.8544 +-380.402 19.3468 78.5082 +-380.309 18.5136 75.1272 +-379.497 17.6504 71.6241 +-380.028 16.8529 68.3881 +-380.628 16.0588 65.1655 +-379.128 15.1805 61.6014 +-381.248 14.4482 58.6297 +-380.376 13.602 55.1962 +-380.956 12.8106 51.9847 +-380.318 11.9803 48.6154 +-380.939 11.1916 45.4148 +-379.942 10.3578 42.0315 +-380.902 9.57913 38.8715 +-380.938 8.77656 35.6147 +-380.248 7.95995 32.301 +-380.224 7.16006 29.0551 +-381.069 6.37589 25.873 +-381.287 5.57995 22.6431 +-379.579 4.75982 19.3151 +-379.538 3.96498 16.0897 +-145.211 1.21333 4.9236 +-146.95 0.920723 3.73623 +-145.778 0.608843 2.47065 +-145.794 0.304433 1.23537 +96.1 1.77636e-15 1.13687e-13 +96.0963 0.207995 0.812417 +96.0854 0.415975 1.62478 +96.0671 0.62392 2.437 +96.0415 0.831821 3.24905 +96.0085 1.03966 4.06085 +95.9683 1.24742 4.87234 +95.9208 1.45508 5.68345 +95.8659 1.66263 6.49414 +95.9034 1.872 7.31194 +95.8339 2.0795 8.12241 +96.653 2.30823 9.01583 +95.673 2.49399 9.74141 +96.5752 2.72907 10.6596 +96.674 2.94403 11.4992 +96.3684 3.14666 12.2907 +97.1453 3.3862 13.2263 +95.9345 3.55599 13.8895 +96.6947 3.79841 14.8364 +95.6697 3.97071 15.5094 +96.2157 4.20777 16.4353 +96.064 4.41585 17.2481 +95.905 4.6236 18.0595 +95.7386 4.83099 18.8696 +95.565 5.03804 19.6783 +95.3841 5.24469 20.4855 +95.196 5.45092 21.291 +95.8757 5.70886 22.2985 +95.6712 5.91615 23.1082 +95.4594 6.123 23.9161 +96.2062 6.39357 24.9729 +95.9776 6.60153 25.7852 +95.7417 6.80903 26.5957 +95.4984 7.01598 27.404 +96.1086 7.28768 28.4653 +95.8486 7.4954 29.2766 +96.4371 7.77155 30.3553 +96.16 7.97998 31.1694 +96.7266 8.26047 32.265 +96.338 8.46124 33.0492 +97.0702 8.76273 34.2268 +96.4772 8.94644 34.9443 +96.1588 9.1549 35.7586 +96.8565 9.46267 36.9607 +96.5198 9.67193 37.778 +96.915 9.95641 38.8892 +96.653 10.1755 39.7449 +96.2913 10.3843 40.5605 +96.0136 10.6024 41.4123 +96.5469 10.9126 42.6242 +96.1593 11.1212 43.4388 +96.5766 11.425 44.6254 +96.0811 11.6227 45.3977 +96.4739 11.9298 46.5972 +96.0505 12.1382 47.4111 +96.4181 12.4487 48.6238 +96.6828 12.75 49.8009 +96.3184 12.9706 50.6626 +95.7709 13.1666 51.428 +96.0873 13.4833 52.665 +96.3886 13.8023 53.9112 +96.5025 14.0985 55.0682 +96.0885 14.3197 55.9318 +96.2631 14.6307 57.1469 +96.5079 14.9568 58.4206 +96.6527 15.2717 59.6506 +96.0278 15.4668 60.4127 +96.3138 15.811 61.7569 +95.6709 16.005 62.5146 +95.7635 16.3238 63.76 +95.9227 16.6585 65.0672 +96.0656 16.9951 66.3819 +96.1112 17.319 67.6471 +95.4982 17.5263 68.457 +95.6765 17.8816 69.8447 +96.3131 18.3296 71.5945 +96.3737 18.6748 72.9428 +95.713 18.8827 73.7547 +95.6667 19.214 75.0488 +95.6814 19.5623 76.4093 +95.7556 19.9281 77.838 +95.507 20.2312 79.022 +95.5462 20.5999 80.462 +95.4919 20.9538 81.8444 +95.3455 21.2924 83.1671 +95.33 21.6655 84.6244 +95.7342 22.1417 86.4842 +95.6769 22.5188 87.9571 +95.5283 22.88 89.3682 +95.9322 23.3815 91.3267 +95.7423 23.746 92.7508 +95.604 24.1293 94.2476 +95.3071 24.478 95.6097 +95.6813 25.0072 97.6766 +95.3434 25.3583 99.0484 +95.1231 25.7467 100.565 +95.3511 26.2649 102.589 +95.5498 26.786 104.625 +95.3254 27.1977 106.233 +95.4039 27.7049 108.214 +95.004 28.0811 109.683 +95.2209 28.6493 111.903 +95.1532 29.1434 113.833 +95.2447 29.6977 115.998 +94.6887 30.0591 117.409 +94.5406 30.5581 119.358 +94.6053 31.138 121.623 +94.5173 31.6804 123.742 +94.5746 32.2851 126.104 +94.4804 32.852 128.318 +94.9269 33.6241 131.334 +94.6465 34.1551 133.408 +94.5036 34.7494 135.729 +94.2156 35.3042 137.896 +94.4949 36.0892 140.963 +94.2961 36.7107 143.39 +94.0607 37.3343 145.826 +94.102 38.086 148.762 +93.8399 38.7348 151.296 +94.3006 39.7058 155.089 +93.9 40.338 157.558 +93.8559 41.1441 160.707 +93.4228 41.8011 163.273 +93.714 42.8083 167.207 +93.8943 43.7979 171.072 +93.5964 44.5933 174.179 +93.7944 45.6561 178.33 +93.3446 46.4344 181.37 +93.6361 47.6155 185.983 +92.9043 48.3089 188.692 +115.544 61.4557 240.043 +115.907 63.08 246.387 +115.513 64.3481 251.341 +115.757 66.0287 257.905 +116.086 67.8291 264.937 +114.69 68.6736 268.236 +111.932 68.7123 268.387 +109.107 68.6979 268.331 +106.399 68.7463 268.519 +103.346 68.5558 267.775 +100.691 68.6139 268.002 +97.7053 68.4316 267.29 +95.2612 68.6171 268.015 +92.3674 68.4678 267.432 +92.1489 70.3398 274.744 +91.6251 72.0742 281.518 +91.3077 74.0723 289.322 +91.3961 76.5262 298.907 +91.1257 78.8191 307.863 +90.7542 81.1644 317.024 +90.7161 83.969 327.979 +90.6626 86.9475 339.612 +87.1887 86.7315 338.769 +86.7716 89.642 350.137 +86.8536 93.3063 364.449 +86.4893 96.7597 377.938 +86.1586 100.534 392.679 +87.6222 106.817 417.22 +88.8788 113.405 442.955 +84.6484 113.276 442.452 +84.8098 119.293 465.952 +84.5209 125.269 489.296 +88.1352 138.014 539.077 +87.9023 145.878 569.791 +87.1224 153.75 600.539 +85.5208 161.113 629.298 +86.3322 174.388 681.151 +82.9553 180.581 705.34 +75.3755 177.868 694.743 +70.0632 180.468 704.9 +62.482 177.129 691.858 +57.283 180.521 705.107 +49.8759 176.903 690.972 +44.5044 180.47 704.905 +37.3731 176.869 690.839 +31.659 179.842 702.453 +24.8833 176.731 690.302 +18.9914 179.877 702.59 +12.4209 176.489 689.358 +6.32499 179.758 702.126 +3.55271e-14 176.343 688.785 +-6.31888 179.585 701.448 +-12.4087 176.316 688.68 +-18.9495 179.48 701.041 +-24.8066 176.186 688.171 +-31.6197 179.619 701.582 +-37.1952 176.027 687.55 +-44.2663 179.504 701.134 +-49.5759 175.839 686.817 +-56.8907 179.285 700.279 +-61.9677 175.671 686.163 +-69.584 179.234 700.078 +-74.3511 175.45 685.3 +-82.2874 179.127 699.661 +-86.8563 175.447 685.286 +-94.8795 178.744 698.163 +-99.2583 175.167 684.192 +-107.768 178.845 698.56 +-111.757 175.004 683.558 +-120.518 178.621 697.684 +-124.245 174.763 682.614 +-133.797 179.047 699.35 +-138.298 176.462 689.253 +-653.229 796.324 3110.4 +-115.225 134.449 525.151 +-119.302 133.468 521.32 +-124.42 133.664 522.085 +-129.889 134.186 524.123 +-792.609 788.452 3079.65 +-820.32 786.706 3072.83 +-847.969 784.9 3065.78 +-875.66 783.132 3058.87 +-903.181 781.207 3051.35 +-930.633 779.221 3043.6 +-165.395 134.175 524.079 +-144.158 113.398 442.926 +-146.258 111.643 436.07 +-148.245 109.887 429.214 +-153.636 110.664 432.249 +-1093.78 766.073 2992.24 +-1120.7 763.677 2982.88 +-1147.52 761.222 2973.29 +-145.641 94.1007 367.552 +-144.951 91.2665 356.482 +-145.685 89.4317 349.316 +-148.787 89.0899 347.981 +-152.229 88.9473 347.424 +-1306.58 745.284 2911.04 +-1332.75 742.427 2899.88 +-1358.83 739.515 2888.51 +-1384.79 736.546 2876.91 +-474.983 246.984 964.707 +-145.189 73.831 288.38 +-143.14 71.2054 278.125 +-142.916 69.567 271.725 +-144.666 68.9249 269.217 +-149.057 69.529 271.577 +-410.786 187.646 732.935 +-110.876 49.6105 193.776 +-109.663 48.0733 187.772 +-110.5 47.4691 185.412 +-111.557 46.9716 183.469 +-113.102 46.6859 182.353 +-113.957 46.1221 180.151 +-115.893 45.9998 179.673 +-117.83 45.8729 179.177 +-119.821 45.7617 178.743 +-121.978 45.7074 178.531 +-126.042 46.3463 181.026 +-418.518 151.031 589.92 +-418.94 148.393 579.615 +-419.616 145.905 569.899 +-421.148 143.768 561.549 +-424.406 142.253 555.631 +-426.266 140.299 547.999 +-427.107 138.052 539.225 +-428.254 135.95 531.013 +-428.913 133.737 522.369 +-433.035 132.63 518.046 +-429.544 129.238 504.797 +-433.625 128.17 500.627 +-436.429 126.737 495.027 +-438.182 125.02 488.321 +-439.913 123.324 481.696 +-442.295 121.832 475.871 +-443.795 120.12 469.184 +-445.618 118.521 462.936 +-446.88 116.796 456.199 +-449.097 115.343 450.522 +-449.914 113.552 443.53 +-452.619 112.259 438.477 +-453.627 110.562 431.85 +-455.414 109.076 426.047 +-456.406 107.421 419.58 +-458.12 105.955 413.856 +-459.987 104.541 408.331 +-2434.91 543.762 2123.91 +-2453.95 538.47 2103.23 +-2472.81 533.14 2082.42 +-381.496 80.812 315.647 +-383.482 79.8078 311.725 +-383.883 78.4858 306.561 +-383.91 77.1056 301.17 +-383.165 75.5924 295.26 +-140.739 27.2716 106.521 +-142.486 27.1171 105.918 +-142.956 26.718 104.359 +-143.006 26.2453 102.513 +-142.306 25.6431 100.161 +-142.877 25.2765 98.7287 +-145.399 25.251 98.6289 +-148.013 25.2304 98.5485 +-495.516 82.8959 323.787 +-496.662 81.5327 318.463 +-499.512 80.4546 314.251 +-501.481 79.2371 309.496 +-502.977 77.9516 304.475 +-505.189 76.7822 299.907 +-524.415 78.1512 305.255 +-509.74 74.4706 290.878 +-2837.53 406.319 1587.06 +-515.251 72.3017 282.407 +-2865.69 393.975 1538.85 +-2879.44 387.758 1514.56 +-2892.98 381.51 1490.16 +-2906.29 375.235 1465.65 +-2919.38 368.93 1441.02 +-381.063 47.1216 184.055 +-379.201 45.8711 179.17 +-381.072 45.0807 176.083 +-381.646 44.1389 172.404 +-380.455 43.0025 167.966 +-380.035 41.9655 163.915 +-379.755 40.9536 159.963 +-379.984 40.0042 156.254 +-379.992 39.0379 152.48 +-381.073 38.186 149.152 +-380.913 37.2145 145.358 +-381.368 36.3084 141.819 +-381.975 35.421 138.353 +-380.294 34.33 134.091 +-381.393 33.4971 130.838 +-380.666 32.509 126.979 +-380.373 31.5658 123.294 +-381.469 30.7414 120.074 +-381.296 29.8175 116.466 +-380.418 28.846 112.671 +-379.788 27.9018 108.983 +-379.025 26.9558 105.288 +-380.441 26.1676 102.209 +-381.83 25.3752 99.1143 +-379.127 24.3181 94.9852 +-379.677 23.4786 91.7062 +-380.683 22.6676 88.5383 +-380.004 21.7591 84.9897 +-381.048 20.9519 81.8369 +-380.206 20.0438 78.2902 +-380.309 19.1905 74.9571 +-380.086 18.324 71.5728 +-380.126 17.4736 68.251 +-380.727 16.6502 65.0348 +-380.805 15.8051 61.7338 +-380.853 14.9609 58.4364 +-380.079 14.0884 55.0284 +-380.956 13.279 51.867 +-380.318 12.4183 48.5054 +-379.847 11.5675 45.1821 +-380.836 10.7618 42.035 +-379.609 9.89564 38.6519 +-381.137 9.10217 35.5526 +-380.248 8.25097 32.2279 +-380.424 7.42573 29.0045 +-380.77 6.60379 25.7941 +-380.389 5.77034 22.5387 +-379.979 4.93903 19.2916 +-380.138 4.11644 16.0786 +-148.709 1.28798 5.03079 +-145.75 0.946595 3.69735 +-145.178 0.628506 2.45491 +-145.594 0.31513 1.23088 +96.1 1.77636e-15 1.13687e-13 +95.9963 0.215091 0.809664 +96.0854 0.430616 1.62096 +96.0671 0.64588 2.43127 +96.1414 0.861994 3.24479 +96.0085 1.07625 4.0513 +95.9683 1.29132 4.86089 +95.9208 1.50629 5.67009 +95.9657 1.72294 6.48562 +95.8038 1.93587 7.28717 +96.8301 2.17507 8.18756 +96.653 2.38947 8.99464 +96.6675 2.60863 9.81961 +96.5752 2.82512 10.6345 +96.4755 3.04138 11.4486 +96.3684 3.25741 12.2618 +96.2541 3.47321 13.0741 +96.0334 3.68495 13.8712 +95.8058 3.89595 14.6654 +95.6697 4.11046 15.4729 +96.4127 4.3648 16.4303 +96.064 4.57128 17.2076 +95.905 4.78633 18.0171 +95.7386 5.00103 18.8252 +95.565 5.21536 19.6321 +95.3841 5.42928 20.4373 +96.0729 5.69476 21.4367 +95.8757 5.90979 22.2461 +95.6712 6.12438 23.0539 +95.653 6.35135 23.9082 +96.3994 6.63188 24.9642 +95.9776 6.83389 25.7246 +95.7417 7.04868 26.5332 +96.3614 7.32854 27.5867 +96.1086 7.54419 28.3984 +96.7069 7.82872 29.4695 +96.4371 8.04508 30.2839 +96.16 8.26085 31.0961 +95.8756 8.47598 31.9059 +96.338 8.75905 32.9715 +97.0702 9.07115 34.1463 +96.4772 9.26133 34.8622 +97.1857 9.57834 36.0555 +96.7634 9.78631 36.8384 +96.4271 10.0027 37.6531 +96.915 10.3068 38.7978 +96.7451 10.5436 39.6892 +96.383 10.76 40.5036 +96.9272 11.08 41.7082 +96.5469 11.2967 42.5241 +96.1593 11.5126 43.3367 +96.5766 11.8271 44.5205 +96.171 12.043 45.3333 +96.4739 12.3497 46.4877 +96.0505 12.5654 47.2996 +96.4181 12.8868 48.5096 +95.9764 13.1024 49.3209 +96.2305 13.4149 50.4974 +96.558 13.742 51.7288 +96.0873 13.9578 52.5412 +96.3886 14.2881 53.7845 +96.5886 14.6078 54.9879 +96.7742 14.9294 56.1986 +96.2631 15.1457 57.0126 +96.5079 15.4833 58.2833 +95.9779 15.6989 59.095 +96.1116 16.0252 60.3233 +96.2304 16.3533 61.5584 +96.3342 16.6831 62.8 +96.5052 17.0292 64.1028 +95.9227 17.2448 64.9143 +96.0656 17.5932 66.2259 +96.1112 17.9286 67.4881 +96.3021 18.2959 68.871 +95.6765 18.511 69.6805 +95.6784 18.8497 70.9555 +95.7433 19.2056 72.2953 +96.2608 19.6592 74.0025 +95.589 19.8741 74.8116 +95.6043 20.2345 76.1682 +95.679 20.613 77.5929 +95.583 20.9599 78.899 +95.6217 21.3417 80.3363 +95.417 21.6743 81.5879 +95.2712 22.0246 82.9069 +95.9198 22.5669 84.9479 +95.8073 22.9385 86.3469 +95.6769 23.3114 87.7504 +95.4564 23.6675 89.0911 +95.8609 24.1864 91.0443 +95.7423 24.5818 92.5328 +95.3938 24.9236 93.8193 +95.2377 25.3211 95.3155 +95.0618 25.7197 96.816 +95.4116 26.2696 98.8862 +95.6636 26.8042 100.898 +95.3511 27.1893 102.348 +95.6823 27.7672 104.524 +95.3254 28.1549 105.983 +94.9493 28.5431 107.444 +95.004 29.0695 109.426 +95.2209 29.6577 111.64 +95.0903 30.1494 113.491 +95.1825 30.723 115.65 +94.8119 31.1576 117.286 +94.6015 31.6539 119.154 +94.7257 32.2747 121.491 +95.2311 33.0429 124.383 +94.6922 33.463 125.964 +95.0611 34.2173 128.803 +94.8122 34.7655 130.867 +94.7031 35.3786 133.175 +94.3918 35.9301 135.251 +94.1604 36.5255 137.492 +94.4949 37.3594 140.631 +94.3498 38.0247 143.135 +94.0607 38.6483 145.483 +94.2065 39.4704 148.578 +93.8399 40.0982 150.941 +93.9454 40.9485 154.142 +93.9 41.7578 157.188 +93.8559 42.5922 160.329 +93.8591 43.4744 163.65 +94.1434 44.5181 167.579 +93.4718 45.1354 169.902 +93.6426 46.1857 173.856 +93.7944 47.263 177.911 +93.7462 48.2757 181.723 +93.2415 49.0837 184.764 +92.7321 49.9165 187.9 +109.331 60.1981 226.602 +115.575 65.1133 245.105 +115.717 66.7303 251.191 +116.036 68.5173 257.918 +116.203 70.2873 264.581 +115.035 71.3041 268.408 +112.232 71.321 268.472 +109.474 71.3549 268.6 +106.686 71.3577 268.61 +103.661 71.1852 267.961 +101.238 71.4147 268.825 +98.0057 71.0581 267.482 +95.5543 71.2507 268.207 +92.7482 71.1698 267.903 +92.1489 72.8156 274.098 +91.5649 74.562 280.672 +91.3077 76.6794 288.642 +91.1973 79.0474 297.556 +91.0981 81.5687 307.047 +90.7809 84.0458 316.372 +90.6125 86.8254 326.835 +90.5875 89.9333 338.534 +87.5515 90.1577 339.379 +86.5149 92.5224 348.28 +86.6511 96.3652 362.745 +86.2945 99.9396 376.201 +85.9507 103.821 390.811 +87.5823 110.526 416.05 +89.1269 117.724 443.148 +84.7577 117.415 441.982 +84.393 122.885 462.573 +86.1549 132.185 497.582 +88.1352 142.872 537.81 +87.9466 151.088 568.737 +86.3012 157.661 593.48 +84.2547 164.314 618.525 +84.9307 177.595 668.518 +80.4196 181.223 682.172 +72.6995 177.591 668.503 +67.6383 180.354 678.903 +60.3031 176.969 666.161 +55.1803 180.016 677.629 +48.111 176.649 664.956 +42.9171 180.159 678.167 +36.0019 176.376 663.929 +30.5816 179.836 676.953 +23.9969 176.434 664.145 +18.337 179.792 676.786 +11.9881 176.335 663.772 +6.0981 179.41 675.349 +3.81917e-14 176.002 662.521 +-6.09112 179.205 674.575 +-11.9584 175.898 662.13 +-18.2846 179.278 674.854 +-23.9271 175.92 662.213 +-30.442 179.015 673.863 +-35.8344 175.556 660.841 +-42.6607 179.082 674.115 +-47.7413 175.292 659.846 +-54.7801 178.71 672.715 +-59.754 175.358 660.096 +-66.977 178.591 672.266 +-71.7274 175.217 659.564 +-79.2649 178.621 672.378 +-83.6633 174.945 658.542 +-91.4467 178.34 671.321 +-95.6815 174.798 657.987 +-103.762 178.259 671.015 +-107.783 174.723 657.705 +-116.045 178.045 670.211 +-119.852 174.517 656.929 +-128.348 177.801 669.292 +-132.135 174.533 656.989 +-111.746 141.019 530.836 +-115.62 139.659 525.714 +-119.691 138.617 521.794 +-124.78 138.769 522.365 +-130.309 139.358 524.582 +-792.609 816.203 3072.41 +-820.32 814.395 3065.61 +-847.969 812.526 3058.57 +-875.553 810.595 3051.31 +-903.071 808.603 3043.81 +-930.633 806.647 3036.44 +-165.395 138.897 522.847 +-144.008 117.267 441.424 +-146.196 115.523 434.862 +-149.101 114.412 430.679 +-1066.66 795.36 2993.96 +-1093.65 792.941 2984.85 +-1120.7 790.556 2975.87 +-1147.52 788.014 2966.3 +-145.927 97.6045 367.41 +-144.988 94.5027 355.734 +-146.059 92.8174 349.39 +-149.208 92.4867 348.146 +-1280.31 774.414 2915.11 +-1306.58 771.516 2904.2 +-1332.75 768.558 2893.06 +-1358.83 765.544 2881.72 +-496.45 273.346 1028.95 +-472.873 254.542 958.166 +-145.364 76.5217 288.049 +-143.229 73.7576 277.644 +-143.37 72.2443 271.948 +-145.22 71.6242 269.614 +-149.48 72.1804 271.707 +-410.118 193.934 730.022 +-110.682 51.2668 192.982 +-109.663 49.7653 187.33 +-110.7 49.2287 185.311 +-111.557 48.6248 183.037 +-113.102 48.3291 181.924 +-114.375 47.9206 180.386 +-116.317 47.7932 179.907 +-117.776 47.4656 178.674 +-120.202 47.5231 178.89 +-122.309 47.4446 178.594 +-126.601 48.1904 181.402 +-135.428 50.5923 190.443 +-135.593 49.7191 187.157 +-420.313 151.292 569.504 +-422.147 149.181 561.558 +-422.919 146.743 552.383 +-423.497 144.293 543.161 +-427.655 143.095 538.648 +-428.993 140.978 530.679 +-430.593 138.986 523.183 +-437.504 138.715 522.161 +-431.388 134.361 505.773 +-434.974 133.095 501.005 +-436.624 131.256 494.084 +-439.297 129.75 488.413 +-441.106 128.01 481.867 +-442.496 126.178 474.968 +-444.201 124.462 468.51 +-446.436 122.917 462.695 +-447.293 121.019 455.547 +-448.888 119.347 449.255 +-450.895 117.806 443.453 +-452.69 116.228 437.515 +-453.984 114.544 431.174 +-456.133 113.094 425.717 +-457.131 111.378 419.259 +-458.778 109.842 413.477 +-460.43 108.324 407.763 +-2434.91 562.901 2118.92 +-2453.95 557.422 2098.29 +-384.449 85.8048 322.993 +-383.777 84.1565 316.788 +-383.252 82.5674 310.807 +-384.115 81.2973 306.026 +-382.744 79.5771 299.55 +-383.087 78.2371 294.506 +-142.709 28.6266 107.758 +-142.804 28.1339 105.904 +-142.876 27.643 104.056 +-142.845 27.1385 102.157 +-142.63 26.6062 100.153 +-142.959 26.181 98.5527 +-146.219 26.2868 98.9509 +-147.766 26.0748 98.1526 +-496.013 85.8995 323.35 +-497.413 84.5298 318.194 +-499.512 83.2863 313.513 +-501.734 82.0675 308.925 +-503.741 80.8177 304.22 +-506.042 79.6189 299.708 +-516.872 79.7383 300.157 +-514.479 77.8083 292.892 +-513.986 76.1905 286.802 +-2851.72 414.248 1559.34 +-2865.69 407.842 1535.23 +-2879.44 401.405 1511 +-2892.98 394.938 1486.66 +-2906.29 388.442 1462.2 +-386.34 50.5412 190.251 +-381.868 48.8834 184.011 +-381.898 47.8233 180.02 +-379.357 46.4574 174.878 +-381.646 45.6925 171.999 +-380.182 44.4842 167.451 +-379.761 43.4113 163.412 +-378.929 42.3029 159.24 +-381.181 41.5426 156.378 +-379.899 40.4019 152.084 +-380.516 39.4725 148.585 +-380.076 38.4396 144.697 +-380.527 37.5037 141.174 +-380.008 36.4788 137.316 +-380.012 35.5119 133.676 +-381.77 34.7105 130.66 +-380.666 33.6532 126.68 +-380.847 32.7176 123.158 +-381.374 31.8154 119.762 +-381.105 30.8516 116.134 +-380.896 29.899 112.548 +-380.556 28.9424 108.947 +-380.371 28.0037 105.414 +-381.309 27.1503 102.201 +-380.575 26.1821 98.5566 +-379.901 25.2254 94.9556 +-380.453 24.3547 91.6778 +-380.099 23.4294 88.1948 +-379.907 22.5191 84.7682 +-380.072 21.6337 81.4353 +-380.793 20.7813 78.2267 +-380.113 19.8557 74.7424 +-379.203 18.9249 71.2386 +-380.913 18.126 68.2314 +-380.628 17.2318 64.8652 +-380.312 16.3402 61.509 +-380.853 15.4874 58.299 +-381.068 14.6222 55.0419 +-380.659 13.7356 51.7047 +-380.616 12.8655 48.4292 +-380.741 12.0028 45.182 +-380.439 11.129 41.8925 +-380.604 10.2708 38.662 +-380.739 9.41271 35.432 +-379.949 8.53468 32.1269 +-381.221 7.70322 28.997 +-381.069 6.84161 25.7537 +-379.79 5.96404 22.4503 +-379.679 5.10884 19.2311 +-380.438 4.26469 16.0535 +-146.511 1.3136 4.94476 +-3275.38 22.0211 82.8936 +-143.778 0.644355 2.42553 +-145.594 0.326221 1.22799 +96.1 1.77636e-15 1.13687e-13 +96.0963 0.222619 0.808532 +96.0854 0.445222 1.61701 +96.0671 0.667787 2.42535 +96.1414 0.891232 3.23688 +96.0085 1.11275 4.04143 +95.9683 1.33512 4.84904 +95.9208 1.55738 5.65627 +95.9657 1.78138 6.46981 +95.9034 2.00362 7.27697 +96.7305 2.24653 8.15919 +96.653 2.47052 8.97272 +95.673 2.66934 9.69483 +96.5752 2.92095 10.6086 +96.4755 3.14454 11.4207 +96.3684 3.3679 12.2319 +96.2541 3.59102 13.0423 +96.1323 3.81387 13.8516 +95.9045 4.03226 14.6448 +95.6697 4.24988 15.4352 +96.2157 4.50361 16.3567 +96.064 4.72633 17.1656 +95.905 4.94868 17.9732 +95.7386 5.17065 18.7794 +95.565 5.39226 19.5842 +95.3841 5.61344 20.3875 +95.196 5.83417 21.1892 +95.8757 6.11024 22.1919 +95.6712 6.33211 22.9977 +95.4594 6.55351 23.8018 +96.2062 6.8431 24.8535 +95.9776 7.06568 25.6619 +95.7417 7.28777 26.4685 +95.4984 7.50926 27.273 +96.1086 7.80007 28.3292 +95.8486 8.0224 29.1366 +96.4371 8.31796 30.2101 +96.16 8.54105 31.0203 +96.7266 8.84126 32.1107 +96.4322 9.06498 32.9232 +96.0366 9.27897 33.7004 +96.4772 9.57546 34.7772 +97.1857 9.90322 35.9676 +96.8565 10.128 36.784 +96.4271 10.342 37.5613 +96.1759 10.5752 38.408 +96.653 10.8909 39.5549 +96.383 11.125 40.4049 +96.0136 11.3478 41.2143 +96.5469 11.6799 42.4204 +96.1593 11.9031 43.2311 +96.5766 12.2283 44.412 +96.171 12.4515 45.2228 +96.4739 12.7686 46.3744 +96.0505 12.9916 47.1843 +96.4181 13.3239 48.3913 +95.9764 13.5468 49.2007 +96.3184 13.8826 50.4203 +96.558 14.2081 51.6027 +96.8706 14.5489 52.8404 +96.302 14.7595 53.6052 +96.5886 15.1033 54.8538 +96.7742 15.4358 56.0616 +96.2631 15.6594 56.8737 +96.4231 15.9944 58.0901 +95.8936 16.2171 58.8992 +96.1116 16.5688 60.1763 +96.2304 16.908 61.4083 +96.3342 17.249 62.6469 +95.7635 17.4715 63.4551 +95.9227 17.8297 64.756 +96.0656 18.19 66.0645 +96.1112 18.5367 67.3236 +95.4982 18.7586 68.1296 +95.6765 19.1389 69.5107 +96.3131 19.6183 71.2521 +96.3737 19.9878 72.594 +95.713 20.2103 73.402 +95.6667 20.5649 74.6899 +95.6043 20.9208 75.9826 +95.6023 21.2951 77.3418 +95.507 21.6536 78.6441 +95.6217 22.0656 80.1404 +95.417 22.4094 81.3891 +96.0143 22.9493 83.35 +95.9198 23.3323 84.7409 +95.8073 23.7165 86.1364 +95.6769 24.102 87.5365 +95.4564 24.4703 88.8739 +95.3616 24.8765 90.3494 +95.813 25.4344 92.3754 +95.5339 25.8068 93.7281 +95.3766 26.2181 95.2219 +95.6125 26.7463 97.1401 +95.2752 27.1219 98.5044 +95.7311 27.733 100.724 +95.3511 28.1115 102.099 +95.0197 28.5102 103.547 +95.3254 29.1099 105.725 +94.8194 29.4709 107.036 +95.6468 30.2588 109.897 +94.7757 30.5203 110.847 +95.0274 31.1513 113.139 +95.2447 31.7857 115.443 +94.7503 32.1935 116.924 +94.4798 32.6854 118.71 +94.6053 33.3273 121.042 +94.4579 33.8863 123.072 +94.4571 34.512 125.345 +94.8869 35.3129 128.253 +94.9269 35.9882 130.706 +94.5898 36.5348 132.691 +94.5036 37.1926 135.08 +94.2156 37.7864 137.237 +94.5493 38.6489 140.369 +94.3498 39.3144 142.787 +94.0607 39.9592 145.128 +94.102 40.7638 148.051 +93.8399 41.4583 150.573 +94.3006 42.4975 154.347 +93.9 43.1742 156.805 +93.8559 44.0369 159.938 +93.8591 44.949 163.251 +93.6185 45.7714 166.238 +93.5187 46.6896 169.573 +93.5964 47.7286 173.346 +93.749 48.8425 177.392 +93.7015 49.8892 181.193 +93.2415 50.7485 184.314 +92.9904 51.7533 187.963 +98.2587 55.9366 203.157 +115.699 67.3943 244.77 +115.717 68.9937 250.579 +115.916 70.7683 257.024 +115.852 72.4516 263.138 +115.341 73.9188 268.467 +112.532 73.9371 268.533 +109.767 73.9727 268.662 +107.295 74.1994 269.486 +104.257 74.0223 268.843 +101.546 74.0616 268.985 +98.5398 73.8686 268.284 +95.8473 73.8933 268.374 +93.0972 73.8606 268.255 +92.0562 75.2097 273.155 +91.5048 77.0403 279.804 +91.3077 79.2803 287.939 +91.1405 81.6776 296.646 +91.0706 84.3099 306.206 +90.7809 86.8965 315.601 +90.7678 89.9241 326.596 +90.6626 93.0607 337.988 +88.1563 93.8598 340.89 +86.5382 95.6866 347.526 +86.4712 99.427 361.11 +86.2728 103.304 375.19 +85.8052 107.161 389.199 +86.7849 113.234 411.257 +88.9933 121.535 441.405 +84.5573 121.11 439.862 +85.4175 128.595 467.047 +88.3335 140.125 508.922 +88.1352 147.718 536.499 +87.7544 155.872 566.112 +84.5198 159.644 579.813 +86.5389 174.493 633.745 +82.1034 177.506 644.687 +77.5216 180.617 655.987 +70.0863 177.015 642.903 +65.1559 179.628 652.393 +58.1329 176.387 640.623 +53.1403 179.241 650.987 +46.4718 176.418 640.733 +41.2627 179.089 650.434 +34.7929 176.235 640.07 +29.4256 178.908 649.778 +23.1837 176.237 640.076 +17.6433 178.858 649.596 +11.5587 175.786 638.441 +5.8747 178.7 649.022 +3.81917e-14 175.734 638.249 +-5.8747 178.7 649.022 +-11.5448 175.574 637.67 +-17.6066 178.486 648.247 +-23.0616 175.308 636.703 +-29.3166 178.245 647.37 +-34.5941 175.228 636.411 +-41.0429 178.135 646.97 +-46.0742 174.908 635.251 +-52.7794 178.023 646.565 +-57.671 174.985 635.532 +-64.4659 177.725 645.483 +-69.1978 174.771 634.752 +-76.3103 177.795 645.737 +-80.8725 174.845 635.023 +-87.8833 177.204 643.59 +-92.3553 174.444 633.565 +-99.8453 177.348 644.111 +-104.013 174.33 633.153 +-111.704 177.198 643.569 +-115.789 174.319 633.11 +-123.647 177.097 643.203 +-127.46 174.068 632.201 +-117.807 153.711 558.263 +-116.098 144.993 526.602 +-120.016 143.708 521.933 +-125.185 143.941 522.783 +-132.27 146.253 531.178 +-792.609 843.887 3064.93 +-820.32 842.019 3058.14 +-847.969 840.086 3051.12 +-875.553 838.09 3043.87 +-903.181 836.133 3036.76 +-930.519 833.906 3028.67 +-149.811 130.078 472.431 +-144.369 121.548 441.452 +-145.578 118.937 431.968 +-149.926 118.947 432.007 +-1066.66 822.337 2986.66 +-148.21 111.103 403.517 +-1120.7 817.371 2968.62 +-1147.52 814.743 2959.07 +-145.999 100.965 366.695 +-145.244 97.8809 355.495 +-146.621 96.3349 349.88 +-150.203 96.2614 349.613 +-1280.31 800.681 2908 +-1306.58 797.684 2897.12 +-1332.75 794.626 2886.01 +-1358.83 791.51 2874.69 +-492.9 280.598 1019.11 +-468.353 260.66 946.694 +-141.199 76.8508 279.115 +-142.828 76.0454 276.19 +-143.87 74.9549 272.23 +-146.097 74.5009 270.581 +-150.278 75.0271 272.492 +-408.639 199.789 725.617 +-110.537 52.9359 192.259 +-109.81 51.5226 187.126 +-110.8 50.9444 185.026 +-112.014 50.4801 183.339 +-113.566 50.173 182.224 +-114.793 49.727 180.604 +-116.794 49.6169 180.204 +-118.421 49.3442 179.214 +-120.474 49.2463 178.858 +-122.53 49.1425 178.481 +-127.496 50.1772 182.239 +-419.48 162.022 588.45 +-419.801 159.152 578.027 +-135.884 50.5706 183.668 +-135.72 49.5882 180.1 +-423.454 151.913 551.734 +-423.497 149.188 541.837 +-425.098 147.064 534.123 +-425.73 144.651 525.359 +-430.407 143.638 521.682 +-436.874 143.214 520.139 +-434.632 139.963 508.334 +-435.874 137.894 500.818 +-437.728 136.051 494.126 +-439.1 134.09 487.004 +-440.907 132.293 480.475 +-442.898 130.576 474.24 +-444.403 128.742 467.581 +-446.709 127.164 461.85 +-447.912 125.297 455.067 +-449.722 123.624 448.993 +-451.245 121.896 442.716 +-453.538 120.396 437.266 +-454.911 118.671 431.001 +-456.853 117.114 425.35 +-457.203 115.174 418.304 +-459.583 113.767 413.192 +-460.872 112.106 407.159 +-2434.91 581.994 2113.75 +-2453.95 576.329 2093.18 +-2472.81 570.624 2072.46 +-2491.47 564.875 2051.58 +-384.248 85.5897 310.854 +-383.652 83.9534 304.911 +-384.687 82.694 300.338 +-2564.22 541.448 1966.49 +-142.236 29.4996 107.14 +-142.486 29.0236 105.411 +-143.435 28.6924 104.208 +-142.926 28.0746 101.965 +-142.63 27.5087 99.9091 +-142.226 26.9305 97.8092 +-146.137 27.1633 98.6548 +-147.601 26.9289 97.8035 +-496.511 88.9023 322.886 +-498.163 87.5288 317.897 +-500.267 86.2414 313.221 +-502.324 84.951 308.535 +-503.995 83.6011 303.632 +-506.809 82.4443 299.43 +-510.186 81.3766 295.553 +-522.406 81.6872 296.681 +-513.986 78.7748 286.103 +-516.904 77.6333 281.958 +-518.999 76.3687 277.364 +-2879.44 415.021 1507.32 +-2892.98 408.334 1483.03 +-2906.29 401.618 1458.64 +-2919.38 394.87 1434.13 +-381.153 50.4467 183.218 +-378.213 48.9683 177.849 +-381.794 48.3416 175.572 +-380.015 47.0403 170.846 +-380.182 45.9931 167.043 +-379.395 44.8407 162.858 +-379.204 43.7696 158.967 +-380.076 42.8272 155.545 +-379.345 41.7115 151.493 +-381.073 40.8708 148.439 +-381.843 39.9281 145.016 +-380.807 38.8042 140.933 +-380.195 37.7347 137.049 +-381.421 36.8525 133.845 +-380.733 35.7904 129.988 +-380.666 34.7947 126.371 +-380.847 33.8274 122.858 +-381.374 32.8946 119.47 +-379.865 31.7942 115.474 +-379.653 30.8123 111.908 +-379.788 29.8636 108.462 +-381.621 29.0486 105.502 +-380.827 28.0359 101.824 +-380.478 27.0632 98.2913 +-380.192 26.101 94.7966 +-380.744 25.2 91.5243 +-381.363 24.3047 88.2724 +-380.394 23.3128 84.6701 +-379.877 22.356 81.1952 +-380.01 21.4421 77.8757 +-380.309 20.5398 74.5987 +-380.773 19.6479 71.3593 +-380.028 18.6973 67.907 +-381.318 17.8485 64.8243 +-381.002 16.9251 61.4704 +-380.458 15.9962 58.0967 +-380.969 15.1142 54.8935 +-380.461 14.1941 51.5519 +-381.012 13.3157 48.3615 +-381.038 12.4196 45.107 +-379.544 11.4794 41.6921 +-381.2 10.6358 38.6283 +-381.137 9.74214 35.3826 +-381.244 8.85424 32.1578 +-380.822 7.95616 28.8961 +-379.573 7.04588 25.59 +-381.287 6.19063 22.4838 +-380.278 5.29046 19.2145 +-380.637 4.41166 16.0227 +-146.511 1.35816 4.93271 +-3275.38 22.7681 82.6916 +-144.778 0.670843 2.43644 +-145.594 0.337286 1.22499 +96.1 1.77636e-15 1.13687e-13 +96.0963 0.229904 0.806491 +95.9854 0.459312 1.61124 +95.9671 0.688925 2.41671 +96.0415 0.91944 3.22535 +96.1084 1.15037 4.03543 +95.9683 1.37881 4.8368 +95.9208 1.60835 5.64199 +96.8635 1.85688 6.51385 +95.8038 2.06704 7.25105 +95.8339 2.29854 8.06316 +96.7525 2.554 8.95929 +96.6675 2.78537 9.77094 +96.5752 3.01653 10.5818 +96.4755 3.24745 11.3919 +96.3684 3.47811 12.201 +96.2541 3.70853 13.0093 +96.0334 3.93462 13.8024 +95.8058 4.15991 14.5928 +95.6697 4.38896 15.3962 +96.4127 4.66053 16.3489 +96.064 4.881 17.1223 +95.905 5.11062 17.9278 +95.7386 5.33986 18.732 +95.565 5.56872 19.5348 +95.3841 5.79714 20.3361 +95.196 6.02509 21.1357 +96.0701 6.323 22.1808 +95.8652 6.5526 22.9862 +95.4594 6.76797 23.7417 +96.3994 7.08121 24.8405 +96.1703 7.31157 25.6486 +95.7417 7.52625 26.4017 +96.3614 7.82507 27.4499 +96.1086 8.05533 28.2577 +95.8486 8.28492 29.0631 +96.4371 8.59016 30.1338 +96.16 8.82055 30.942 +95.8756 9.05026 31.7478 +96.338 9.3525 32.8081 +97.0702 9.68575 33.9771 +96.4772 9.88881 34.6894 +96.0654 10.1094 35.4633 +96.8565 10.4594 36.6911 +96.4271 10.6805 37.4665 +97.0074 11.0157 38.6424 +96.7451 11.258 39.4925 +96.4747 11.5 40.3413 +96.105 11.7303 41.1494 +95.7279 11.9598 41.9543 +96.0686 12.281 43.0812 +95.7643 12.5222 43.9272 +96.171 12.859 45.1087 +96.4739 13.1864 46.2573 +96.0505 13.4167 47.0652 +96.3294 13.7473 48.2247 +96.6828 14.093 49.4376 +96.3184 14.3369 50.293 +95.8583 14.5668 51.0994 +96.0873 14.9035 52.2808 +96.3886 15.2562 53.5179 +96.5025 15.5836 54.6665 +96.0027 15.8139 55.4743 +96.2631 16.1719 56.7301 +96.5079 16.5323 57.9944 +96.6527 16.8804 59.2155 +96.1955 17.1259 60.0768 +96.3138 17.4764 61.3064 +96.3342 17.8135 62.4888 +95.7635 18.0433 63.2949 +95.9227 18.4132 64.5926 +96.0656 18.7852 65.8977 +95.464 19.0144 66.7014 +95.4982 19.3725 67.9576 +95.6765 19.7652 69.3352 +95.5991 20.1102 70.5454 +96.2949 20.625 72.3515 +95.713 20.8717 73.2167 +96.3661 21.3931 75.046 +95.6814 21.6229 75.8519 +95.6023 21.9919 77.1465 +95.6591 22.3979 78.5705 +95.6217 22.7877 79.9381 +95.4919 23.1609 81.2474 +96.0143 23.7003 83.1396 +95.4037 23.9662 84.0721 +95.8073 24.4927 85.919 +95.6769 24.8908 87.3155 +95.5283 25.2901 88.7163 +95.2903 25.6714 90.0539 +95.7423 26.2473 92.0742 +95.5339 26.6513 93.4915 +95.3071 27.0564 94.9123 +95.6813 27.6413 96.9641 +95.2752 28.0094 98.2557 +95.1231 28.4588 99.8319 +95.3511 29.0315 101.841 +95.0197 29.4432 103.285 +95.3254 30.0625 105.458 +95.4039 30.6232 107.424 +95.1326 31.0813 109.031 +95.1573 31.646 111.012 +95.1532 32.2132 113.002 +94.6222 32.6113 114.399 +94.5656 33.182 116.401 +94.6624 33.8202 118.64 +94.5451 34.3959 120.659 +94.4579 34.9952 122.761 +94.5746 35.6858 125.184 +94.3642 36.2678 127.226 +94.9269 37.1659 130.376 +94.5898 37.7304 132.356 +94.5036 38.4097 134.739 +94.2156 39.023 136.891 +94.4404 39.8676 139.854 +94.2961 40.5777 142.344 +94.0607 41.2669 144.762 +94.102 42.0978 147.677 +93.8399 42.815 150.193 +94.4021 43.9354 154.123 +93.9 44.587 156.409 +93.8559 45.478 159.534 +93.9076 46.4441 162.923 +93.6663 47.2934 165.903 +93.4718 48.1934 169.06 +93.5964 49.2905 172.909 +93.749 50.4409 176.944 +93.3446 51.3255 180.047 +93.2415 52.4092 183.849 +93.464 53.7191 188.444 +96.2302 56.5743 198.46 +115.741 69.6247 244.24 +115.473 71.1013 249.42 +115.837 73.034 256.2 +115.774 74.7721 262.297 +115.723 76.5911 268.677 +112.906 76.6108 268.747 +110.06 76.5974 268.7 +107.295 76.6275 268.805 +104.572 76.6758 268.975 +101.785 76.6656 268.939 +98.8068 76.4926 268.332 +96.1077 76.5187 268.424 +93.351 76.4858 268.308 +92.0562 77.6709 272.466 +91.5348 79.5875 279.189 +91.2784 81.8483 287.12 +91.1121 84.3242 295.805 +90.9879 86.9897 305.155 +90.8076 89.7668 314.897 +90.509 92.602 324.843 +90.5875 96.0266 336.856 +88.5676 97.3833 341.616 +86.5149 98.7911 346.554 +86.2912 102.467 359.448 +86.4027 106.845 374.805 +85.7636 110.614 388.028 +85.6485 115.409 404.848 +88.9552 125.459 440.102 +84.8124 125.451 440.075 +88.2827 137.258 481.494 +88.3335 144.71 507.637 +87.9944 152.308 534.29 +86.9858 159.563 559.737 +85.5775 166.932 585.587 +86.2517 179.606 630.047 +80.0316 178.689 626.833 +74.9632 180.372 632.736 +68.2466 178.009 624.446 +63.1719 179.858 630.931 +56.7035 177.68 623.293 +51.5241 179.477 629.594 +45.2789 177.514 622.711 +40.0539 179.531 629.787 +33.8771 177.211 621.648 +28.5925 179.531 629.787 +22.559 177.1 621.256 +17.1197 179.23 628.729 +11.276 177.099 621.253 +5.69756 178.983 627.862 +3.37508e-14 176.879 620.481 +-5.70017 179.065 628.151 +-11.2446 176.605 619.521 +-17.0648 178.654 626.71 +-22.4753 176.442 618.95 +-28.4442 178.6 626.52 +-33.7515 176.554 619.343 +-39.8586 178.656 626.715 +-45.0208 176.503 619.162 +-51.2259 178.438 625.95 +-56.2329 176.206 618.12 +-62.5777 178.166 624.995 +-67.5254 176.128 617.847 +-73.9443 177.921 624.137 +-78.7398 175.805 616.715 +-85.4555 177.948 624.231 +-90.1285 175.809 616.729 +-96.9038 177.756 623.558 +-101.448 175.595 615.977 +-108.288 177.4 622.31 +-112.958 175.622 616.074 +-119.893 177.34 622.1 +-124.293 175.297 614.934 +-116.67 157.209 551.482 +-116.181 149.845 525.648 +-120.535 149.053 522.869 +-125.68 149.24 523.525 +-132.83 151.679 532.081 +-158.991 174.817 613.247 +-820.32 869.573 3050.42 +-847.969 867.577 3043.42 +-875.553 865.516 3036.18 +-903.181 863.495 3029.1 +-930.519 861.195 3021.03 +-146.946 131.765 462.225 +-144.7 125.813 441.347 +-145.949 123.142 431.975 +-150.466 123.282 432.466 +-1066.79 849.352 2979.48 +-147.943 114.532 401.773 +-1120.7 844.119 2961.12 +-144.636 106.052 372.025 +-145.677 104.038 364.961 +-145.538 101.288 355.314 +-146.658 99.5126 349.085 +-150.548 99.6393 349.529 +-1280.31 826.883 2900.66 +-1306.58 823.788 2889.81 +-1332.75 820.63 2878.73 +-1358.83 817.412 2867.44 +-487.617 286.674 1005.64 +-136.343 78.3642 274.898 +-138.394 77.7885 272.878 +-141.266 77.6753 272.481 +-144.369 77.6764 272.485 +-146.744 77.2794 271.092 +-150.419 77.5547 272.058 +-435.503 219.891 771.366 +-110.634 54.7162 191.941 +-110.007 53.304 186.988 +-111.3 52.849 185.391 +-112.115 52.1792 183.042 +-113.566 51.8149 181.764 +-114.741 51.331 180.067 +-116.635 51.1706 179.504 +-118.475 50.9823 178.843 +-120.855 51.0188 178.971 +-123.358 51.0933 179.233 +-127.384 51.7738 181.62 +-420.047 167.55 587.757 +-420.948 164.81 578.144 +-421.997 162.189 568.952 +-135.602 51.1665 179.489 +-136.155 50.4436 176.954 +-136.311 49.5905 173.961 +-424.915 151.811 532.545 +-426.715 149.73 525.245 +-430.593 148.403 520.591 +-433.35 146.707 514.641 +-2083.98 693.059 2431.22 +-436.389 142.574 500.143 +-437.728 140.503 492.879 +-439.888 138.727 486.646 +-441.437 136.786 479.838 +-443.232 134.951 473.4 +-444.809 133.077 466.826 +-446.436 131.246 460.402 +-447.912 129.397 453.918 +-449.722 127.67 447.859 +-451.876 126.061 442.216 +-453.892 124.432 436.503 +-454.626 122.477 429.644 +-456.133 120.756 423.607 +-457.784 119.095 417.778 +-459.875 117.565 412.411 +-461.904 116.034 407.041 +-2434.91 601.039 2108.41 +-2453.95 595.189 2087.89 +-383.845 91.4747 320.888 +-2491.47 583.36 2046.4 +-384.401 88.4259 310.193 +-384.346 86.8578 304.693 +-382.978 85.0205 298.247 +-141.574 30.8724 108.299 +-142.236 30.465 106.87 +-142.486 29.9734 105.145 +-143.435 29.6313 103.945 +-142.283 28.8631 101.25 +-142.387 28.3604 99.4866 +-142.714 27.9072 97.897 +-146.71 28.1624 98.7923 +-146.447 27.5927 96.7939 +-496.511 91.8116 322.07 +-498.914 90.5294 317.573 +-501.022 89.1979 312.902 +-502.071 87.6865 307.6 +-504.758 86.4677 303.324 +-508.088 85.3571 299.428 +-508.472 83.7572 293.816 +-2823.13 455.89 1599.24 +-514.679 81.4623 285.766 +-517.252 80.2279 281.435 +-2865.69 435.475 1527.62 +-522.017 77.7016 272.573 +-2892.98 421.696 1479.29 +-2906.29 414.76 1454.96 +-529.792 74.0037 259.601 +-380.079 51.9506 182.24 +-380.819 50.9192 178.622 +-381.342 49.8646 174.922 +-379.562 48.5218 170.212 +-379.363 47.3959 166.262 +-380.492 46.4419 162.916 +-380.947 45.4095 159.294 +-381.181 44.3573 155.603 +-379.992 43.15 151.368 +-380.794 42.1776 147.957 +-380.913 41.1344 144.297 +-380.994 40.0938 140.647 +-381.132 39.0655 137.04 +-379.918 37.9086 132.981 +-382.43 37.1262 130.237 +-381.044 35.969 126.177 +-381.131 34.9604 122.639 +-381.374 33.971 119.169 +-381.105 32.9419 115.558 +-380.418 31.8845 111.849 +-380.268 30.8798 108.325 +-380.371 29.9011 104.891 +-380.73 28.9459 101.541 +-379.995 27.9132 97.9181 +-379.998 26.9414 94.5091 +-379.289 25.9252 90.9443 +-380.683 25.0552 87.8924 +-380.589 24.088 84.4996 +-379.291 23.052 80.8653 +-380.402 22.1666 77.7591 +-380.309 21.2119 74.4103 +-381.166 20.3117 71.2525 +-380.126 19.3142 67.7531 +-380.234 18.3803 64.477 +-379.72 17.4201 61.1088 +-380.556 16.5239 57.965 +-380.573 15.5926 54.698 +-381.253 14.6892 51.5288 +-379.723 13.7049 48.0762 +-380.443 12.806 44.9229 +-380.538 11.8861 41.6957 +-379.907 10.9466 38.4001 +-380.938 10.0557 35.2749 +-381.044 9.13922 32.0599 +-379.726 8.19287 28.7401 +-381.468 7.3128 25.6529 +-380.389 6.37816 22.3743 +-380.078 5.46073 19.156 +-380.138 4.55005 15.9613 +-3274.5 31.348 109.967 +-3275.38 23.5131 82.4828 +-144.778 0.692796 2.43029 +-146.194 0.34976 1.22694 +96.1 1.77636e-15 1.13687e-13 +96.0963 0.23717 0.804384 +95.9854 0.473829 1.60703 +95.9671 0.710699 2.4104 +96.1414 0.949487 3.22027 +96.1084 1.18673 4.02488 +95.9683 1.42239 4.82417 +95.9208 1.65918 5.62725 +95.9657 1.89782 6.43662 +95.8038 2.13237 7.23211 +96.8301 2.39584 8.1257 +96.7525 2.63472 8.93588 +96.6675 2.87341 9.74542 +96.5752 3.11187 10.5542 +96.4755 3.35009 11.3621 +96.3684 3.58804 12.1692 +96.2541 3.82574 12.9753 +96.0334 4.05898 13.7664 +95.9045 4.29583 14.5697 +95.6697 4.52768 15.356 +96.2157 4.79799 16.2728 +96.064 5.03527 17.0776 +95.905 5.27215 17.881 +95.7386 5.50863 18.683 +95.565 5.74472 19.4837 +95.3841 5.98036 20.2829 +95.3908 6.22824 21.1236 +95.0005 6.45022 21.8765 +95.8652 6.7597 22.9261 +95.4594 6.98188 23.6797 +96.2062 7.2904 24.726 +95.9776 7.52753 25.5303 +96.6068 7.8343 26.5707 +96.3614 8.07239 27.3782 +96.1086 8.30993 28.1838 +96.7069 8.62334 29.2468 +96.4371 8.86166 30.0551 +97.0135 9.1801 31.1351 +96.7266 9.41916 31.9459 +96.338 9.6481 32.7224 +97.0702 9.99188 33.8884 +96.3836 10.1914 34.5651 +96.0654 10.4289 35.3707 +96.7634 10.7796 36.56 +96.5198 11.0286 37.4045 +97.0074 11.3638 38.5414 +96.7451 11.6138 39.3893 +96.4747 11.8634 40.2359 +96.105 12.1011 41.0419 +96.5469 12.4434 42.2028 +96.1593 12.6812 43.0093 +96.5766 13.0276 44.1841 +96.171 13.2654 44.9908 +96.4739 13.6032 46.1365 +96.1396 13.8536 46.9858 +96.4181 14.1948 48.1431 +96.6828 14.5385 49.3085 +96.3184 14.79 50.1616 +96.558 15.1369 51.338 +96.7836 15.486 52.5221 +96.302 15.7242 53.3302 +95.8132 15.9613 54.1343 +96.0885 16.3283 55.3788 +96.2631 16.683 56.5819 +96.5079 17.0548 57.8429 +95.8936 17.2772 58.597 +96.1116 17.6518 59.8675 +96.3138 18.0288 61.1462 +96.3342 18.3765 62.3255 +95.7635 18.6136 63.1295 +95.9227 18.9952 64.4238 +96.0656 19.379 65.7255 +95.464 19.6153 66.5272 +96.3021 20.153 68.3507 +95.6765 20.3899 69.1541 +96.3924 20.9179 70.945 +95.6645 21.1376 71.6901 +95.713 21.5313 73.0254 +95.7444 21.9269 74.3671 +95.6814 22.3063 75.6538 +95.679 22.7052 77.0067 +95.507 23.069 78.2406 +95.6217 23.5079 79.7293 +95.4919 23.893 81.0351 +95.2712 24.2602 82.2805 +95.8461 24.8383 84.2413 +95.8073 25.2668 85.6945 +95.6769 25.6775 87.0874 +95.5283 26.0894 88.4846 +95.2903 26.4828 89.8187 +95.7423 27.0769 91.8337 +95.5339 27.4937 93.2472 +95.3071 27.9115 94.6643 +94.9929 28.3099 96.0154 +95.2752 28.8947 97.999 +95.1231 29.3582 99.5711 +95.3511 29.949 101.575 +95.086 30.395 103.087 +95.3254 31.0127 105.182 +95.4039 31.591 107.144 +95.004 32.0201 108.599 +95.1573 32.6462 110.722 +94.9644 33.1654 112.484 +94.4977 33.5979 113.95 +94.6272 34.2531 116.173 +94.6624 34.8892 118.33 +94.7257 35.5507 120.573 +94.5768 36.1468 122.595 +94.4571 36.7679 124.701 +95.0611 37.6904 127.83 +94.9843 38.3638 130.114 +94.5898 38.9229 132.01 +94.5036 39.6237 134.387 +94.1053 40.2094 136.374 +94.4404 41.1277 139.488 +94.2424 41.8364 141.892 +94.0607 42.5711 144.384 +94.102 43.4283 147.291 +94.3035 44.3862 150.54 +94.4021 45.324 153.72 +93.9 45.9963 156 +93.9052 46.94 159.201 +93.8591 47.8871 162.413 +93.6663 48.7882 165.469 +93.8943 49.9415 169.381 +93.5964 50.8484 172.457 +93.749 52.0351 176.482 +93.3446 52.9477 179.577 +93.2415 54.0657 183.369 +93.6792 55.5448 188.385 +95.7653 58.0805 196.985 +115.658 71.7738 243.427 +115.92 73.6325 249.731 +115.876 75.3684 255.618 +115.656 77.057 261.346 +115.685 78.9858 267.887 +113.244 79.2683 268.845 +110.427 79.2816 268.891 +107.582 79.2607 268.82 +104.887 79.3376 269.08 +102.127 79.3543 269.137 +99.1073 79.1501 268.445 +96.4007 79.1778 268.539 +93.6366 79.1444 268.425 +91.6544 79.776 270.567 +91.4747 82.0492 278.277 +91.3077 84.4624 286.462 +91.1121 86.9893 295.032 +91.043 89.7937 304.543 +90.7007 92.4948 313.704 +90.6902 95.7199 324.643 +90.5875 99.0616 335.976 +88.8095 100.736 341.655 +86.4682 101.859 345.463 +86.0438 105.403 357.482 +86.2945 110.084 373.358 +85.7636 114.11 387.014 +86.4061 120.109 407.361 +88.8216 129.229 438.293 +85.4685 130.417 442.321 +88.2827 141.596 480.236 +88.383 149.368 506.594 +87.9787 157.094 532.799 +86.0103 162.76 552.013 +86.8718 174.812 592.891 +84.7898 182.142 617.751 +78.5692 180.969 613.772 +73.333 182.027 617.36 +66.8878 179.979 610.415 +61.7534 181.376 615.152 +55.6402 179.859 610.008 +50.4021 181.117 614.275 +44.3721 179.457 608.645 +39.1321 180.943 613.685 +33.2438 179.395 608.433 +27.9251 180.883 613.48 +22.1123 179.079 607.364 +16.7323 180.71 612.895 +11.0526 179.077 607.354 +5.57277 180.596 612.507 +3.37508e-14 179.189 607.734 +-5.57102 180.539 612.315 +-11.0421 178.907 606.779 +-16.7114 180.484 612.128 +-22.0809 178.825 606.501 +-27.8292 180.261 611.372 +-33.1234 178.745 606.231 +-38.949 180.096 610.813 +-44.1489 178.554 605.583 +-50.1275 180.13 610.928 +-55.2044 178.45 605.23 +-61.1496 179.602 609.137 +-66.2292 178.207 604.405 +-72.3708 179.638 609.259 +-77.2895 178.021 603.775 +-83.4976 179.366 608.335 +-88.5698 178.229 604.479 +-94.7606 179.318 608.173 +-99.508 177.681 602.62 +-106.109 179.325 608.197 +-110.735 177.608 602.374 +-117.451 179.219 607.837 +-121.908 177.368 601.559 +-115.713 160.848 545.529 +-116.431 154.913 525.401 +-120.665 153.929 522.065 +-125.815 154.122 522.717 +-132.223 155.758 528.266 +-137.46 155.919 528.815 +-820.32 897.057 3042.45 +-847.969 894.998 3035.47 +-875.553 892.871 3028.25 +-903.181 890.787 3021.18 +-162.883 155.513 527.435 +-145.63 134.712 456.889 +-145.03 130.086 441.2 +-146.32 127.357 431.941 +-150.751 127.42 432.156 +-1066.79 876.197 2971.7 +-1093.78 873.53 2962.65 +-1120.7 870.798 2953.39 +-144.741 109.483 371.323 +-145.677 107.326 364.007 +-145.538 104.49 354.386 +-147.071 102.946 349.152 +-151.122 103.18 349.946 +-1280.31 853.018 2893.09 +-1306.58 849.825 2882.26 +-1332.75 846.567 2871.21 +-1358.83 843.247 2859.95 +-485.588 294.504 998.838 +-136.946 81.1982 275.391 +-138.832 80.5014 273.027 +-142.292 80.7126 273.744 +-144.414 80.1566 271.858 +-147.298 80.0228 271.405 +-150.888 80.2556 272.194 +-435.407 226.791 769.183 +-110.1 56.1735 190.517 +-110.204 55.0875 186.834 +-111.35 54.5439 184.99 +-112.115 53.8284 182.564 +-113.926 53.6222 181.865 +-115.211 53.1703 180.332 +-117.059 52.98 179.686 +-118.958 52.8083 179.104 +-121.182 52.7735 178.986 +-123.689 52.8499 179.245 +-128.447 53.8556 182.656 +-420.387 172.985 586.695 +-421.751 170.343 577.733 +-421.068 166.947 566.216 +-422.97 164.643 558.402 +-135.501 51.7879 175.643 +-136.311 51.1578 173.506 +-426.62 157.237 533.285 +-427.207 154.641 524.478 +-430.842 153.182 519.531 +-430.833 150.465 510.314 +-2083.98 714.964 2424.86 +-436.581 147.145 499.056 +-438.312 145.138 492.247 +-440.084 143.175 485.591 +-441.968 141.279 479.159 +-443.433 139.279 472.377 +-445.011 137.345 465.819 +-447.05 135.58 459.831 +-448.394 133.63 453.219 +-450.139 131.827 447.103 +-452.157 130.126 441.334 +-453.538 128.265 435.023 +-455.624 126.626 429.462 +-456.853 124.77 423.167 +-458.219 122.976 417.082 +-460.314 121.396 411.726 +-466.107 120.791 409.672 +-2434.91 620.036 2102.91 +-2453.95 614.001 2082.44 +-2472.81 607.923 2061.83 +-382.56 92.4046 313.398 +-383.558 91.0208 308.705 +-384.115 89.549 303.713 +-384.998 88.1703 299.037 +-141.026 31.7248 107.597 +-142.236 31.4279 106.59 +-142.486 30.9208 104.871 +-143.435 30.5678 103.673 +-142.042 29.7248 100.814 +-142.306 29.24 99.1702 +-142.307 28.7072 97.3631 +-147.529 29.2146 99.0838 +-494.888 96.1914 326.242 +-497.34 94.8715 321.765 +-498.414 93.2971 316.425 +-501.022 92.0171 312.084 +-503.083 90.6404 307.415 +-504.758 89.2006 302.532 +-2793.85 484.191 1642.18 +-506.929 86.1423 292.159 +-528.006 87.9596 298.323 +-514.332 83.9805 284.827 +-516.991 82.722 280.559 +-520.311 81.5661 276.639 +-2879.44 442.148 1499.59 +-2892.98 435.024 1475.42 +-2906.29 427.869 1451.16 +-2919.38 420.68 1426.77 +-379.81 53.5546 181.635 +-381.268 52.5905 178.365 +-380.981 51.392 174.3 +-379.199 50.0074 169.604 +-381.092 49.1168 166.584 +-381.679 48.0594 162.998 +-380.672 46.811 158.764 +-381.181 45.7593 155.197 +-380.823 44.6111 151.302 +-382.278 43.68 148.145 +-381.471 42.4968 144.132 +-380.807 41.3406 140.21 +-380.476 40.2309 136.447 +-381.703 39.2905 133.257 +-381.393 38.1958 129.544 +-381.517 37.1519 126.004 +-381.7 36.1191 122.501 +-381.374 35.0447 118.857 +-381.582 34.0255 115.4 +-380.036 32.8594 111.446 +-379.693 31.8077 107.879 +-380.371 30.8461 104.617 +-379.959 29.8003 101.07 +-381.348 28.8981 98.0105 +-380.192 27.8071 94.3102 +-380.55 26.8335 91.0083 +-380.488 25.8339 87.618 +-380.881 24.8685 84.3436 +-381.048 23.8908 81.0277 +-380.01 22.8436 77.4762 +-380.015 21.8654 74.1586 +-380.381 20.9106 70.92 +-380.421 19.9401 67.6285 +-380.628 18.9808 64.3751 +-380.312 17.9987 61.0443 +-380.26 17.0329 57.7686 +-380.178 16.0687 54.4984 +-380.857 15.1377 51.3408 +-380.021 14.1492 47.9882 +-380.741 13.2211 44.8406 +-380.836 12.2714 41.6194 +-379.907 11.2926 38.2998 +-379.843 10.3437 35.0816 +-380.148 9.40587 31.9008 +-380.523 8.46954 28.7252 +-379.872 7.51237 25.4789 +-380.689 6.58492 22.3334 +-379.679 5.62739 19.0858 +-381.337 4.70865 15.9698 +-3274.5 32.3388 109.68 +-3275.38 24.2563 82.2674 +-145.478 0.718148 2.43566 +-145.594 0.359333 1.21871 +96.1 1.77636e-15 1.13687e-13 +96.0963 0.244417 0.802212 +96.0854 0.488817 1.60437 +95.9671 0.732416 2.40389 +96.0415 0.977483 3.20823 +96.0085 1.22171 4.00983 +96.0682 1.46738 4.81614 +95.9208 1.70988 5.61206 +95.8659 1.95378 6.41257 +96.8007 2.22039 7.28763 +96.8301 2.46905 8.10375 +96.653 2.71243 8.90258 +96.6675 2.96121 9.7191 +96.5752 3.20696 10.5257 +96.4755 3.45245 11.3314 +96.3684 3.69768 12.1363 +96.2541 3.94265 12.9403 +96.0334 4.18301 13.7292 +95.8058 4.42252 14.5153 +95.6697 4.66603 15.3146 +95.3294 4.89904 16.0793 +96.064 5.18913 17.0314 +95.905 5.43325 17.8327 +95.7386 5.67696 18.6326 +95.565 5.92026 19.4311 +95.3841 6.1631 20.2281 +95.196 6.40544 21.0235 +95.8757 6.70855 22.0184 +95.6712 6.95215 22.8179 +95.653 7.20979 23.6635 +96.2062 7.51316 24.6592 +95.9776 7.75755 25.4613 +95.7417 8.00138 26.2616 +95.4984 8.24456 27.0598 +96.1086 8.56385 28.1077 +95.8486 8.80794 28.9089 +96.4371 9.13244 29.9739 +96.16 9.37738 30.7779 +95.8756 9.62159 31.5794 +96.338 9.94291 32.634 +95.9426 10.1776 33.4043 +96.4772 10.5131 34.5054 +96.1588 10.758 35.3094 +96.7634 11.109 36.4613 +96.5198 11.3656 37.3035 +97.0074 11.7111 38.4373 +96.653 11.9573 39.2456 +96.383 12.2143 40.0891 +96.0136 12.459 40.8921 +96.5469 12.8236 42.0888 +96.1593 13.0686 42.8931 +96.5766 13.4256 44.0648 +96.171 13.6708 44.8693 +96.5634 14.0319 46.0545 +96.0505 14.2637 46.8155 +96.4181 14.6286 48.013 +96.7711 14.9964 49.2202 +96.2305 15.228 49.9805 +96.558 15.5994 51.1993 +96.1743 15.8587 52.0505 +96.302 16.2047 53.1862 +96.5886 16.5822 54.425 +96.7742 16.9473 55.6233 +96.3483 17.208 56.479 +96.4231 17.5605 57.636 +96.6527 17.946 58.9013 +96.1955 18.207 59.758 +96.3138 18.5797 60.9811 +96.4171 18.9543 62.2107 +95.7635 19.1823 62.959 +96.0046 19.5923 64.3047 +96.0656 19.9711 65.548 +96.1112 20.3518 66.7973 +95.4982 20.5954 67.597 +95.6765 21.0129 68.9673 +95.6784 21.3974 70.2293 +96.2949 21.927 71.9676 +95.713 22.1893 72.8282 +96.3661 22.7437 74.6478 +95.6043 22.9694 75.3886 +95.679 23.399 76.7987 +95.583 23.7929 78.0914 +95.5462 24.2072 79.4512 +95.4919 24.6231 80.8163 +95.3455 25.021 82.1224 +95.33 25.4594 83.5614 +95.8073 26.0388 85.4631 +95.6043 26.442 86.7863 +95.5283 26.8866 88.2456 +95.2903 27.292 89.5761 +95.7423 27.9043 91.5857 +95.5339 28.3338 92.9954 +95.3071 28.7644 94.4087 +95.6125 29.3652 96.3808 +95.3434 29.7989 97.8042 +95.1231 30.2553 99.3022 +95.3511 30.8642 101.3 +95.086 31.3238 102.809 +95.3254 31.9603 104.898 +94.8194 32.3567 106.199 +95.004 32.9985 108.306 +95.0937 33.6213 110.35 +95.0903 34.2243 112.329 +94.56 34.6472 113.717 +94.6272 35.2998 115.859 +94.6015 35.9322 117.935 +94.5451 36.5673 120.019 +94.6958 37.2983 122.418 +94.5159 37.915 124.442 +94.5384 38.6285 126.784 +94.7548 39.4404 129.449 +94.6465 40.1361 131.732 +94.4477 40.8103 133.945 +94.2156 41.4864 136.164 +94.4404 42.3844 139.111 +94.1886 43.0903 141.428 +94.0607 43.872 143.994 +94.102 44.7554 146.893 +93.8399 45.5178 149.396 +93.9454 46.4831 152.564 +93.9 47.4017 155.579 +93.8559 48.349 158.688 +93.8591 49.3504 161.975 +93.714 50.3046 165.107 +93.4718 51.2358 168.163 +93.5964 52.4022 171.991 +93.7036 53.5992 175.92 +93.3446 54.5656 179.092 +93.2415 55.7177 182.873 +93.4209 57.0841 187.358 +94.9623 59.3533 194.806 +115.699 73.9935 242.857 +115.879 75.8559 248.97 +115.916 77.6979 255.015 +115.656 79.4116 260.64 +115.685 81.3993 267.164 +113.543 81.9064 268.828 +110.757 81.9481 268.965 +107.582 81.6826 268.094 +104.817 81.7074 268.175 +102.127 81.7791 268.41 +99.3743 81.7884 268.441 +96.6612 81.8175 268.537 +93.9222 81.8117 268.517 +91.6235 82.1859 269.746 +91.2943 84.3893 276.977 +91.4539 87.1826 286.145 +91.1121 89.6474 294.235 +90.9879 92.4812 303.536 +90.6473 95.2648 312.672 +90.4831 98.4198 323.027 +90.5374 102.032 334.883 +88.9305 103.955 341.196 +86.6549 105.198 345.274 +86.1338 108.737 356.889 +86.0997 113.191 371.51 +85.6596 117.454 385.501 +88.3997 126.636 415.635 +88.8788 133.264 437.391 +88.5118 139.188 456.834 +88.2827 145.923 478.939 +88.2179 153.645 504.283 +87.4938 161.002 528.431 +84.9165 165.6 543.522 +86.9693 180.356 591.953 +83.093 183.951 603.753 +76.8142 182.333 598.442 +71.8954 183.911 603.622 +65.6021 181.913 597.064 +60.7279 183.814 603.302 +54.5072 181.58 595.972 +49.5077 183.339 601.745 +43.5838 181.656 596.219 +38.4789 183.359 601.811 +32.6053 181.326 595.136 +27.4322 183.12 601.024 +21.7319 181.377 595.303 +16.4077 182.619 599.382 +10.8484 181.139 594.523 +5.47677 182.908 600.33 +3.64153e-14 180.817 593.466 +-5.47416 182.821 600.043 +-10.8327 180.877 593.662 +-16.4208 182.765 599.86 +-21.6621 180.794 593.391 +-27.3057 182.275 598.252 +-32.4849 180.656 592.939 +-38.2591 182.312 598.374 +-43.3397 180.638 592.879 +-49.1703 182.09 597.644 +-54.1237 180.303 591.779 +-60.0953 181.899 597.017 +-64.9435 180.087 591.07 +-71.1143 181.913 597.064 +-75.9124 180.192 591.416 +-82.0879 181.726 596.45 +-86.7744 179.952 590.626 +-93.1347 181.627 596.124 +-97.6307 179.656 589.655 +-104.145 181.384 595.327 +-108.704 179.677 589.725 +-115.246 181.228 594.814 +-119.809 179.64 589.605 +-115.554 165.534 543.306 +-116.555 159.818 524.544 +-120.946 159.003 521.869 +-126.153 159.257 522.704 +-131.943 160.177 525.723 +-136.783 159.892 524.788 +-160.494 180.87 593.641 +-847.969 922.346 3027.27 +-875.553 920.155 3020.07 +-903.181 918.007 3013.02 +-162.684 160.069 525.368 +-144.198 137.463 451.174 +-145.241 134.256 440.646 +-146.659 131.553 431.775 +-151.196 131.7 432.258 +-1066.79 902.971 2963.67 +-1093.78 900.222 2954.65 +-1120.7 897.407 2945.41 +-145.056 113.075 371.126 +-145.712 110.633 363.114 +-145.538 107.682 353.429 +-147.108 106.119 348.298 +-151.313 106.468 349.443 +-1280.31 879.083 2885.27 +-1306.58 875.793 2874.47 +-1332.75 872.435 2863.45 +-1358.83 869.013 2852.22 +-482.672 301.679 990.152 +-137.032 83.7321 274.82 +-139.314 83.2495 273.236 +-142.203 83.1268 272.833 +-144.732 82.7878 271.721 +-147.575 82.6234 271.181 +-151.217 82.8881 272.05 +-435.503 233.772 767.273 +-110.052 57.8646 189.92 +-110.303 56.8215 186.496 +-110.95 56.0086 183.828 +-112.623 55.7244 182.895 +-113.926 55.2607 181.373 +-115.629 54.9938 180.497 +-117.059 54.5989 179.201 +-118.851 54.3727 178.459 +-121.019 54.3129 178.263 +-124.351 54.7562 179.718 +-419.003 181.049 594.229 +-420.217 178.199 584.875 +-421.751 175.548 576.172 +-422.752 172.737 566.945 +-423.852 170.028 558.055 +-424.466 167.186 548.728 +-135.589 52.4418 172.121 +-135.632 51.5168 169.085 +-429.424 160.193 525.776 +-431.154 157.977 518.502 +-429.322 154.519 507.152 +-2083.98 736.811 2418.32 +-436.774 151.709 497.929 +-438.507 149.639 491.136 +-440.281 147.616 484.497 +-442.166 145.661 478.08 +-443.433 143.535 471.101 +-445.619 141.735 465.195 +-447.323 139.808 458.869 +-446.673 137.185 450.26 +-448.471 135.352 444.244 +-452.157 134.102 440.142 +-454.175 132.37 434.457 +-455.624 130.495 428.303 +-457.14 128.663 422.289 +-457.929 126.653 415.692 +-460.607 125.185 410.875 +-2415.69 645.149 2117.47 +-2434.91 638.982 2097.23 +-383.99 99.0135 324.976 +-2472.81 626.499 2056.26 +-2491.47 620.186 2035.54 +-383.712 93.8394 307.994 +-384.886 92.4707 303.502 +-383.91 90.6077 297.387 +-140.948 32.6761 107.248 +-142.236 32.3882 106.302 +-142.566 31.8831 104.645 +-143.195 31.4491 103.22 +-142.122 30.6505 100.599 +-142.306 30.1335 98.9023 +-142.389 29.6013 97.1556 +-147.284 30.0571 98.6517 +-494.476 99.0482 325.09 +-497.588 97.8194 321.057 +-498.664 96.196 315.729 +-501.022 94.8288 311.241 +-503.083 93.41 306.585 +-504.758 91.9263 301.715 +-2793.85 498.986 1637.74 +-506.243 88.6541 290.975 +-527.834 90.6176 297.42 +-514.679 86.6049 284.249 +-516.991 85.2497 279.801 +-520.311 84.0585 275.892 +-522.808 82.7321 271.538 +-2892.98 448.317 1471.44 +-2906.29 440.943 1447.24 +-388.212 57.6504 189.216 +-379.542 55.152 181.017 +-380.549 54.0952 177.548 +-380.71 52.9248 173.706 +-379.562 51.585 169.309 +-380.182 50.4967 165.737 +-380.035 49.3142 161.856 +-380.672 48.2414 158.335 +-381.181 47.1575 154.777 +-379.16 45.7734 150.235 +-380.145 44.7638 146.921 +-380.355 43.6671 143.321 +-380.994 42.6248 139.901 +-380.851 41.501 136.212 +-381.045 40.4212 132.668 +-380.356 39.256 128.843 +-381.517 38.2872 125.664 +-381.7 37.2228 122.17 +-381.374 36.1156 118.536 +-381.296 35.0389 115.003 +-379.653 33.8294 111.033 +-379.788 32.7878 107.614 +-380.371 31.7887 104.335 +-380.441 30.7499 100.926 +-380.478 29.7132 97.5229 +-380.482 28.6787 94.1273 +-380.938 27.6817 90.8551 +-380.099 26.5961 87.2921 +-380.004 25.5693 83.9221 +-380.365 24.5767 80.664 +-380.402 23.5659 77.3465 +-380.015 22.5336 73.9583 +-380.282 21.544 70.7102 +-380.421 20.5494 67.4459 +-379.84 19.5203 64.0684 +-380.312 18.5487 60.8794 +-380.26 17.5534 57.6126 +-379.386 16.5252 54.2381 +-380.956 15.6043 51.2155 +-380.318 14.5929 47.896 +-380.641 13.6216 44.7078 +-380.439 12.6331 41.4637 +-380.604 11.659 38.2663 +-381.237 10.6989 35.1152 +-380.945 9.71363 31.8815 +-381.221 8.74437 28.7002 +-380.77 7.7602 25.47 +-378.992 6.75588 22.1737 +-380.877 5.81764 19.0943 +-380.737 4.84489 15.9016 +-3274.5 33.3269 109.384 +-3275.38 24.9975 82.0452 +-145.378 0.739583 2.42741 +-145.194 0.369296 1.21208 +96.1 1.77636e-15 1.13687e-13 +96.0963 0.251645 0.799974 +96.0854 0.503271 1.59989 +96.0671 0.754856 2.39967 +96.0415 1.00639 3.19929 +96.1084 1.25915 4.00282 +96.0682 1.51077 4.80271 +95.9208 1.76044 5.5964 +95.8659 2.01155 6.39468 +95.8038 2.2625 7.19246 +95.8339 2.5159 7.998 +95.6576 2.76388 8.78632 +96.6675 3.04877 9.69199 +96.5752 3.30179 10.4963 +96.674 3.56186 11.3231 +96.3684 3.80702 12.1024 +96.2541 4.05923 12.9042 +96.0334 4.30669 13.6909 +95.9045 4.558 14.4898 +95.6697 4.804 15.2718 +96.2157 5.09081 16.1836 +96.064 5.34256 16.9839 +95.905 5.5939 17.7829 +95.7386 5.84482 18.5806 +95.565 6.09532 19.3769 +95.3841 6.34534 20.1717 +96.0729 6.65561 21.1581 +95.8757 6.90692 21.957 +95.8652 7.17224 22.8004 +95.653 7.42298 23.5975 +96.2062 7.73532 24.5905 +95.9776 7.98693 25.3903 +95.7417 8.23797 26.1884 +96.3614 8.56504 27.2281 +96.1086 8.81707 28.0293 +96.7069 9.14961 29.0865 +96.4371 9.40248 29.8903 +96.16 9.65466 30.692 +96.7266 9.99401 31.7708 +96.338 10.2369 32.543 +96.0366 10.4888 33.3437 +96.4772 10.8239 34.4091 +97.1857 11.1944 35.5869 +96.7634 11.4375 36.3596 +96.5198 11.7017 37.1994 +96.915 12.0459 38.2936 +96.7451 12.3226 39.1734 +96.383 12.5755 39.9772 +96.105 12.8396 40.8169 +96.5469 13.2028 41.9714 +96.1593 13.4551 42.7735 +95.674 13.6934 43.5312 +96.171 14.075 44.7442 +96.5634 14.4468 45.9261 +96.0505 14.6855 46.6849 +96.5068 15.075 47.9231 +96.6828 15.4257 49.0381 +96.3184 15.6926 49.8866 +96.558 16.0606 51.0565 +96.0873 16.3129 51.8584 +96.3886 16.6989 53.0855 +96.5025 17.0573 54.2248 +96.0885 17.3248 55.0752 +96.3483 17.7168 56.3215 +96.5079 18.0957 57.5258 +96.6527 18.4767 58.737 +96.1116 18.729 59.5393 +96.3138 19.1291 60.811 +96.4171 19.5148 62.0371 +96.5052 19.9025 63.2697 +95.9227 20.1544 64.0706 +96.0656 20.5617 65.3652 +96.1112 20.9535 66.611 +95.4982 21.2044 67.4085 +95.6765 21.6343 68.775 +95.6784 22.0301 70.0334 +95.6645 22.4276 71.297 +95.713 22.8454 72.6251 +95.6667 23.2462 73.8993 +95.6814 23.6676 75.239 +95.679 24.0909 76.5845 +95.583 24.4964 77.8736 +95.6217 24.9426 79.2922 +95.4919 25.3511 80.5908 +95.3455 25.7608 81.8933 +95.8461 26.3541 83.7794 +95.8805 26.8292 85.2897 +96.2572 27.4098 87.1353 +95.4564 27.6608 87.9332 +95.9322 28.2883 89.928 +95.7423 28.7294 91.3302 +95.4638 29.1502 92.668 +95.3071 29.6149 94.1453 +95.6813 30.2551 96.1806 +95.4116 30.7019 97.601 +95.6636 31.3267 99.5871 +95.3511 31.7768 101.018 +95.6823 32.4523 103.165 +95.3254 32.9054 104.606 +94.9493 33.3591 106.048 +95.004 33.9742 108.003 +95.2209 34.6617 110.189 +95.1532 35.2594 112.089 +94.56 35.6717 113.4 +94.6887 36.3673 115.611 +94.6015 36.9947 117.606 +94.6053 37.6726 119.76 +94.5768 38.3528 121.923 +94.6334 39.0847 124.25 +94.5965 39.795 126.508 +94.9269 40.6805 129.323 +94.6465 41.3229 131.365 +94.4477 42.017 133.571 +94.2708 42.7384 135.865 +94.3859 43.6128 138.644 +94.2961 44.4148 141.194 +94.0077 45.1437 143.511 +94.102 46.0787 146.484 +93.8399 46.8637 148.979 +93.9961 47.8833 152.22 +93.9 48.8034 155.145 +93.9052 49.8047 158.328 +93.8107 50.7835 161.44 +93.714 51.7921 164.646 +93.8943 52.9893 168.452 +93.6426 53.9784 171.596 +93.7036 55.184 175.429 +93.7462 56.4209 179.361 +93.2415 57.3653 182.363 +93.464 58.799 186.921 +93.5254 60.1838 191.323 +115.741 76.2087 242.266 +115.554 77.8795 247.578 +115.597 79.7754 253.605 +115.656 81.7597 259.913 +115.762 83.8617 266.595 +113.581 84.3562 268.167 +110.72 84.3433 268.126 +107.94 84.3778 268.236 +105.132 84.3763 268.231 +102.401 84.4229 268.379 +99.6747 84.4616 268.502 +96.9542 84.4922 268.599 +94.2078 84.4868 268.582 +91.3145 84.3307 268.086 +91.2943 86.8846 276.205 +91.1323 89.4448 284.344 +91.1405 92.327 293.506 +90.8501 95.0717 302.232 +90.8076 98.2555 312.353 +90.4831 101.33 322.126 +90.5624 105.078 334.042 +89.5111 107.728 342.465 +86.4915 108.104 343.661 +85.9988 111.777 355.336 +86.143 116.597 370.66 +86.8447 122.6 389.744 +88.8384 131.027 416.532 +88.8407 137.146 435.984 +88.4936 143.274 455.466 +88.4217 150.474 478.355 +88.251 158.247 503.064 +86.7898 164.429 522.717 +85.3008 171.268 544.459 +86.4822 184.649 586.996 +81.6311 186.058 591.476 +75.7052 185.014 588.157 +70.5482 185.801 590.66 +64.5045 184.159 585.437 +59.5969 185.724 590.415 +53.7577 184.379 586.137 +48.5819 185.23 588.845 +42.9002 184.093 585.23 +37.7768 185.337 589.183 +32.1447 184.05 585.093 +26.9306 185.087 588.388 +21.3899 183.801 584.3 +16.1355 184.9 587.793 +10.6844 183.675 583.899 +5.37293 184.746 587.305 +3.28626e-14 183.343 582.843 +-5.36944 184.626 586.923 +-10.6634 183.315 582.755 +-16.0988 184.48 586.458 +-21.3061 183.081 582.012 +-26.8303 184.397 586.196 +-31.9616 183.002 581.759 +-37.551 184.229 585.66 +-42.6212 182.896 581.424 +-48.2602 184.004 584.946 +-53.2783 182.735 580.911 +-59.041 183.992 584.908 +-63.961 182.607 580.504 +-69.8464 183.953 584.784 +-74.6328 182.393 579.824 +-80.6391 183.797 584.289 +-85.2853 182.093 578.871 +-91.3314 183.377 582.951 +-96.0977 182.063 578.777 +-102.247 183.344 582.847 +-107.002 182.094 578.874 +-113.114 183.134 582.181 +-117.786 181.83 578.034 +-115.175 169.87 540.015 +-116.742 164.807 523.92 +-121.271 164.144 521.811 +-126.625 164.58 523.198 +-131.873 164.826 523.979 +-138.355 166.512 529.34 +-153.884 178.549 567.604 +-847.969 949.619 3018.82 +-164.779 178.294 566.794 +-903.071 945.034 3004.25 +-162.826 164.946 524.36 +-144.227 141.556 450.006 +-145.481 138.455 440.145 +-146.876 135.643 431.206 +-151.481 135.851 431.867 +-1066.79 929.67 2955.41 +-1093.78 926.841 2946.41 +-1120.7 923.942 2937.2 +-145.511 116.783 371.252 +-145.712 113.905 362.101 +-145.538 110.867 352.443 +-146.958 109.146 346.972 +-151.543 109.782 348.996 +-1280.31 905.077 2877.22 +-1306.58 901.689 2866.45 +-1332.75 898.232 2855.47 +-1358.83 894.709 2844.27 +-481.066 309.567 984.109 +-137.505 86.5059 275.001 +-139.621 85.8998 273.074 +-143.051 86.0948 273.694 +-144.959 85.3693 271.388 +-148.129 85.3858 271.44 +-151.78 85.657 272.302 +-435.407 240.632 764.966 +-109.858 59.4705 189.056 +-110.401 58.5538 186.142 +-111.45 57.9246 184.141 +-112.623 57.3722 182.385 +-114.493 57.1777 181.767 +-116.151 56.8758 180.807 +-117.589 56.4677 179.51 +-119.173 56.1323 178.444 +-121.509 56.1452 178.485 +-124.572 56.4755 179.535 +-419.451 186.602 593.204 +-419.48 183.147 582.221 +-420.948 180.395 573.472 +-422.868 177.893 565.519 +-425.145 175.589 558.196 +-423.633 171.792 546.124 +-426.025 169.646 539.301 +-136.18 53.2543 169.295 +-135.63 52.0918 165.599 +-432.399 163.118 518.549 +-429.7 159.228 506.182 +-2084.24 758.691 2411.87 +-437.353 156.402 497.198 +-438.118 153.927 489.331 +-440.872 152.185 483.793 +-442.564 150.103 477.176 +-444.035 147.98 470.425 +-445.822 145.993 464.108 +-447.323 143.942 457.589 +-447.912 141.633 450.25 +-449.097 139.548 443.622 +-452.086 138.046 438.847 +-454.882 136.496 433.92 +-455.91 134.438 427.375 +-457.5 132.572 421.443 +-458.872 130.666 415.386 +-460.168 128.764 409.338 +-2415.69 664.226 2111.56 +-2434.91 657.876 2091.38 +-2453.95 651.473 2071.02 +-2472.81 645.024 2050.52 +-2491.47 638.525 2029.86 +-383.558 96.5757 307.013 +-384.346 95.0714 302.231 +-383.91 93.2869 296.558 +-140.322 33.4929 106.473 +-142.945 33.5121 106.534 +-142.645 32.8441 104.411 +-142.796 32.289 102.646 +-142.283 31.5926 100.432 +-142.468 31.0599 98.739 +-143.203 30.6509 97.4388 +-147.939 31.0836 98.8144 +-495.217 102.13 324.67 +-497.34 100.661 320.001 +-499.414 99.1896 315.322 +-501.022 97.6328 310.373 +-503.842 96.3173 306.191 +-505.606 94.8035 301.379 +-524.544 96.4548 306.628 +-507.7 91.5384 290.999 +-529.299 93.5561 297.413 +-515.112 89.2408 283.695 +-517.775 87.9034 279.443 +-2865.69 476.655 1515.28 +-2879.44 469.132 1491.36 +-2892.98 461.573 1467.33 +-2906.29 453.982 1443.2 +-384.113 58.7282 186.696 +-381.421 57.0643 181.406 +-380.46 55.6819 177.012 +-380.71 54.4897 173.222 +-380.831 53.2876 169.4 +-379.636 51.9151 165.037 +-379.669 50.7238 161.25 +-379.755 49.5481 157.513 +-381.181 48.5519 154.346 +-380.269 47.2649 150.254 +-381.073 46.1997 146.868 +-380.913 45.0243 143.131 +-380.154 43.7883 139.202 +-380.851 42.7281 135.832 +-380.294 41.5345 132.037 +-382.053 40.5971 129.057 +-381.044 39.3704 125.158 +-381.226 38.2757 121.678 +-380.232 37.0721 117.852 +-379.865 35.9397 114.252 +-379.653 34.8297 110.723 +-381.035 33.8683 107.667 +-379.891 32.6872 103.912 +-380.441 31.6592 100.644 +-381.058 30.6383 97.3988 +-380.482 29.5267 93.8648 +-380.453 28.4639 90.4863 +-380.975 27.4456 87.249 +-380.589 26.3659 83.8168 +-380.658 25.3228 80.5009 +-380.304 24.2565 77.1109 +-380.113 23.2058 73.771 +-379.497 22.1352 70.3674 +-380.421 21.157 67.2577 +-380.136 20.1131 63.9394 +-380.312 19.0972 60.7096 +-380.853 18.1005 57.5413 +-380.771 17.076 54.2842 +-380.461 16.0448 51.0062 +-381.409 15.0675 47.8994 +-380.145 14.0061 44.525 +-379.942 12.9897 41.294 +-381.2 12.0225 38.2195 +-380.64 10.998 34.9624 +-380.546 9.99038 31.7592 +-381.221 9.00294 28.6202 +-380.172 7.97712 25.3591 +-379.79 6.97032 22.1585 +-380.078 5.97712 19.0012 +-379.538 4.97246 15.8074 +-3274.5 34.3124 109.079 +-144.85 1.13818 3.61825 +-144.378 0.756215 2.404 +-145.894 0.382049 1.21453 +96.1 1.77636e-15 1.13687e-13 +96.1963 0.259121 0.798502 +96.0854 0.517684 1.59529 +96.0671 0.776474 2.39277 +96.1414 1.03628 3.1934 +96.1084 1.29521 3.9913 +96.0682 1.55403 4.78888 +96.0206 1.81274 5.58611 +96.9632 2.09284 6.44926 +95.8038 2.3273 7.17176 +96.0332 2.59333 7.99156 +96.7525 2.87557 8.86131 +96.6675 3.13608 9.66409 +96.5752 3.39635 10.4661 +96.674 3.66387 11.2905 +96.3684 3.91604 12.0676 +95.2638 4.13254 12.7348 +96.0334 4.43003 13.6515 +95.9045 4.68854 14.4481 +95.6697 4.94158 15.2279 +95.5264 5.1991 16.0214 +96.064 5.49557 16.935 +95.905 5.7541 17.7317 +95.7386 6.01221 18.5271 +95.565 6.26988 19.3211 +95.3841 6.52706 20.1137 +96.2678 6.86011 21.14 +95.195 7.05429 21.7384 +95.8652 7.37764 22.7348 +95.653 7.63556 23.5296 +96.3994 7.97281 24.5689 +96.1703 8.23218 25.3681 +95.7417 8.47389 26.113 +95.4984 8.73144 26.9066 +96.1086 9.06958 27.9486 +96.7069 9.41164 29.0027 +96.4371 9.67175 29.8043 +96.16 9.93115 30.6037 +95.8756 10.1898 31.4006 +96.338 10.5301 32.4493 +96.1306 10.7997 33.2802 +96.7582 11.1663 34.41 +96.1588 11.3934 35.1095 +96.7634 11.765 36.2549 +96.5198 12.0368 37.0924 +97.0074 12.4027 38.2198 +96.7451 12.6755 39.0606 +96.383 12.9356 39.8622 +96.9272 13.3203 41.0476 +96.5469 13.5809 41.8506 +96.3405 13.8665 42.7307 +96.5766 14.2185 43.8154 +96.171 14.4781 44.6154 +96.4739 14.8467 45.7514 +96.1396 15.1201 46.5937 +96.4181 15.4925 47.7413 +96.7711 15.882 48.9417 +96.3184 16.142 49.743 +96.558 16.5206 50.9095 +96.0873 16.7801 51.7091 +96.3886 17.1771 52.9327 +96.6748 17.5771 54.1652 +96.8599 17.964 55.3575 +96.2631 18.2081 56.1097 +96.5079 18.6139 57.3602 +95.8936 18.8566 58.108 +96.1955 19.2822 59.4198 +96.2304 19.6599 60.5834 +96.4171 20.0736 61.8586 +96.5052 20.4725 63.0876 +95.9227 20.7316 63.8862 +96.0656 21.1505 65.177 +96.1112 21.5536 66.4192 +96.3021 21.9953 67.7803 +95.6765 22.2538 68.577 +95.5991 22.6423 69.7739 +95.7433 23.0889 71.1504 +95.713 23.4996 72.416 +95.7444 23.9314 73.7465 +95.6814 24.3454 75.0224 +95.679 24.7808 76.364 +95.583 25.1979 77.6494 +95.6217 25.6569 79.0639 +96.091 26.2408 80.8631 +95.2712 26.4779 81.5939 +95.9198 27.1298 83.6025 +95.8073 27.5765 84.9794 +95.6043 28.0035 86.2951 +95.4564 28.453 87.6801 +95.2903 28.9037 89.0691 +95.813 29.574 91.1346 +95.5339 30.007 92.4691 +95.3071 30.463 93.8743 +95.6813 31.1216 95.9038 +95.2752 31.5361 97.1812 +95.6636 32.2238 99.3004 +95.3511 32.6868 100.727 +95.086 33.1736 102.227 +95.1942 33.8011 104.161 +94.9493 34.3144 105.743 +95.004 34.9472 107.693 +95.2209 35.6543 109.872 +95.1532 36.2692 111.766 +94.56 36.6933 113.073 +94.6887 37.4088 115.278 +94.6624 38.0786 117.342 +94.7257 38.8005 119.567 +94.5768 39.4512 121.572 +94.6334 40.204 123.892 +94.5384 40.9096 126.066 +94.3533 41.5927 128.171 +94.5898 42.481 130.909 +94.3358 43.1694 133.03 +94.2708 43.9623 135.473 +93.9502 44.6546 137.607 +94.2961 45.6868 140.788 +94.1667 46.515 143.34 +94.102 47.3984 146.062 +93.8914 48.2324 148.632 +93.9454 49.2281 151.7 +93.9 50.201 154.699 +93.9052 51.231 157.873 +93.8107 52.2379 160.975 +93.6185 53.221 164.005 +93.8943 54.5069 167.967 +93.6426 55.5242 171.102 +93.6582 56.737 174.84 +93.3446 57.788 178.078 +93.2415 59.0081 181.838 +93.464 60.4829 186.383 +93.5254 61.9074 190.773 +115.699 78.3632 241.482 +115.554 80.1099 246.865 +115.597 82.06 252.875 +115.656 84.1012 259.165 +115.723 86.2347 265.739 +113.88 87.0011 268.101 +111.05 87.0175 268.151 +108.227 87.0249 268.174 +105.167 86.8218 267.548 +102.709 87.1017 268.411 +99.7081 86.9094 267.818 +97.2472 87.1746 268.636 +94.176 86.877 267.719 +91.3763 86.8045 267.495 +91.5649 89.638 276.227 +91.1907 92.0653 283.707 +91.1405 94.9711 292.661 +90.8776 97.8241 301.453 +90.6473 100.891 310.903 +90.5608 104.321 321.474 +90.5624 108.087 333.08 +89.6804 111.023 342.126 +86.4215 111.11 342.394 +86.0213 115.008 354.405 +86.078 119.846 369.314 +88.0506 127.863 394.019 +88.8384 134.779 415.333 +88.8407 141.073 434.729 +88.4571 147.316 453.967 +88.248 154.48 476.041 +88.251 162.779 501.616 +86.3518 168.285 518.582 +86.3503 178.34 549.571 +85.675 188.164 579.843 +80.7957 189.428 583.738 +74.9253 188.352 580.421 +69.7671 189.006 582.438 +63.9505 187.806 578.738 +58.8972 188.8 581.804 +53.165 187.568 578.007 +48.0327 188.381 580.512 +42.4538 187.395 577.472 +37.3556 188.519 580.936 +31.7522 187.01 576.285 +26.634 188.291 580.233 +21.1177 186.658 575.203 +15.9313 187.788 578.684 +10.5517 186.59 574.991 +5.30748 187.722 578.481 +3.28626e-14 186.618 575.078 +-5.30399 187.599 578.1 +-10.5447 186.466 574.61 +-15.9103 187.541 577.924 +-21.1177 186.658 575.203 +-26.5119 187.427 577.572 +-31.6423 186.362 574.29 +-37.0748 187.102 576.569 +-42.2096 186.317 574.152 +-47.6953 187.058 576.435 +-52.6944 185.908 572.89 +-58.2934 186.865 575.839 +-63.3129 185.933 572.968 +-69.02 186.982 576.202 +-73.8894 185.748 572.397 +-79.621 186.674 575.25 +-84.5059 185.597 571.931 +-90.2672 186.43 574.5 +-95.1278 185.387 571.286 +-101.191 186.646 575.166 +-105.804 185.211 570.744 +-111.893 186.346 574.24 +-116.756 185.401 571.329 +-114.876 174.282 537.063 +-117.054 169.98 523.807 +-121.336 168.935 520.587 +-126.85 169.594 522.618 +-131.943 169.636 522.748 +-138.355 171.281 527.816 +-150.078 179.12 551.972 +-160.08 184.403 568.254 +-875.553 974.494 3002.98 +-903.071 972.098 2995.6 +-162.94 169.788 523.216 +-144.315 145.699 448.983 +-145.722 142.655 439.604 +-146.938 139.586 430.145 +-151.83 140.063 431.616 +-1066.79 956.295 2946.9 +-1093.78 953.384 2937.93 +-1120.7 950.402 2928.74 +-145.616 120.215 370.451 +-145.748 117.195 361.147 +-145.244 113.812 350.72 +-147.071 112.357 346.238 +-151.772 113.098 348.52 +-1280.31 930.997 2868.94 +-1306.58 927.512 2858.2 +-1332.75 923.956 2847.25 +-1358.83 920.332 2836.08 +-479.629 317.482 978.346 +-137.505 88.9833 274.209 +-139.84 88.4984 272.715 +-143.319 88.7262 273.417 +-145.005 87.8416 270.691 +-148.314 87.9407 270.996 +-152.015 88.2463 271.938 +-435.598 247.632 763.098 +-109.906 61.2005 188.594 +-110.106 60.0696 185.109 +-111.55 59.6369 183.776 +-112.674 59.0418 181.942 +-114.493 58.8152 181.244 +-116.099 58.4784 180.206 +-117.483 58.0324 178.832 +-119.173 57.7398 177.93 +-121.4 57.7015 177.812 +-124.793 58.196 179.336 +-419.339 191.895 591.338 +-419.311 188.316 580.311 +-420.546 185.384 571.275 +-423.391 183.214 564.589 +-424.675 180.418 555.974 +-425.477 177.481 546.923 +-424.58 173.912 535.925 +-428.203 172.248 530.796 +-135.753 53.6321 165.272 +-138.385 53.6994 165.479 +-430.266 164.004 505.391 +-555.678 208.067 641.176 +-437.16 160.81 495.548 +-438.702 158.546 488.573 +-440.872 156.543 482.401 +-442.564 154.402 475.803 +-444.838 152.493 469.92 +-446.16 150.288 463.123 +-447.323 148.064 456.272 +-447.706 145.622 448.746 +-448.68 143.412 441.935 +-450.965 141.647 436.497 +-454.104 140.165 431.931 +-455.624 138.201 425.878 +-457.788 136.454 420.495 +-459.235 134.515 414.518 +-460.899 132.662 408.809 +-2415.69 683.248 2105.48 +-2434.91 676.717 2085.36 +-2453.95 670.13 2065.06 +-2472.81 663.497 2044.62 +-2491.47 656.811 2024.02 +-383.865 99.4208 306.373 +-383.42 97.5583 300.634 +-383.832 95.9391 295.644 +-141.026 34.6249 106.7 +-142.157 34.2817 105.642 +-142.883 33.8412 104.285 +-142.636 33.1764 102.236 +-142.283 32.4973 100.143 +-143.439 32.1671 99.1254 +-144.017 31.7078 97.71 +-148.021 31.9914 98.5842 +-495.135 105.037 323.681 +-497.34 103.544 319.08 +-499.414 102.03 314.414 +-501.777 100.58 309.947 +-503.842 99.0757 305.31 +-506.115 97.6167 300.814 +-524.203 99.1526 305.547 +-509.157 94.4303 290.995 +-533.004 96.9089 298.633 +-516.151 91.9817 283.449 +-517.775 90.4208 278.639 +-520.574 89.0676 274.469 +-2879.44 482.567 1487.07 +-2892.98 474.792 1463.11 +-2906.29 466.983 1439.05 +-383.044 60.2421 185.641 +-381.511 58.7121 180.926 +-380.729 57.3169 176.627 +-379.627 55.8906 172.231 +-381.193 54.8658 169.074 +-380.182 53.4787 164.799 +-380.035 52.2265 160.94 +-380.213 51.0285 157.249 +-381.181 49.9424 153.901 +-380.823 48.6892 150.04 +-381.629 47.5922 146.659 +-380.913 46.3137 142.719 +-380.341 45.0646 138.87 +-380.008 43.8546 135.141 +-380.576 42.7554 131.754 +-382.618 41.8214 128.876 +-380.855 40.4778 124.736 +-381.131 39.3623 121.298 +-381.944 38.3054 118.041 +-379.961 36.9782 113.951 +-379.653 35.8272 110.404 +-380.268 34.7678 107.14 +-379.891 33.6233 103.613 +-379.863 32.5161 100.201 +-381.637 31.5636 97.2658 +-380.192 30.3491 93.5232 +-380.55 29.2865 90.2488 +-380.391 28.1883 86.8646 +-380.784 27.1349 83.6183 +-380.365 26.028 80.2074 +-380.597 24.9704 76.9482 +-380.309 23.8827 73.5966 +-379.89 22.7927 70.2374 +-381.405 21.8192 67.2375 +-378.757 20.6141 63.5241 +-379.917 19.6237 60.472 +-381.544 18.6527 57.4799 +-380.771 17.565 54.1279 +-380.461 16.5043 50.8594 +-381.111 15.487 47.7244 +-380.741 14.4297 44.4664 +-380.24 13.3722 41.2075 +-380.902 12.3572 38.0796 +-380.938 11.3218 34.8892 +-380.945 10.2873 31.701 +-380.224 9.23654 28.4631 +-379.573 8.19264 25.2463 +-380.09 7.17559 22.1122 +-380.578 6.15635 18.9713 +-380.238 5.12428 15.7909 +-3274.5 35.295 108.765 +-3275.38 26.4737 81.5808 +-145.078 0.781641 2.40869 +-146.494 0.394608 1.21602 +96.2 -1.77636e-15 -2.27374e-13 +96.1963 0.266314 0.796132 +96.1853 0.532607 1.5922 +96.167 0.79886 2.38815 +96.3413 1.06727 3.19054 +96.3082 1.33393 3.98772 +96.2679 1.60049 4.7846 +96.0206 1.86306 5.56952 +96.1652 2.13323 6.37719 +96.9004 2.41928 7.23231 +96.0332 2.66532 7.96784 +96.7525 2.9554 8.83501 +96.8664 3.22977 9.65523 +95.8797 3.46547 10.3598 +96.7732 3.76944 11.2686 +96.5667 4.03306 12.0566 +96.4521 4.30024 12.8553 +96.1323 4.5577 13.625 +96.0033 4.82364 14.42 +95.7683 5.08399 15.1983 +95.6248 5.34891 15.9903 +95.3757 5.60764 16.7638 +96.1013 5.92595 17.7153 +95.9346 6.19176 18.51 +95.565 6.44393 19.2638 +96.458 6.78375 20.2797 +96.2678 7.05054 21.0772 +96.1674 7.32415 21.8952 +95.8652 7.58244 22.6673 +95.653 7.84752 23.4598 +95.5301 8.12025 24.2751 +96.2667 8.46917 25.3181 +95.7417 8.70912 26.0355 +96.5531 9.07293 27.123 +96.2999 9.33988 27.9211 +96.0393 9.60613 28.717 +95.5812 9.85202 29.4521 +96.16 10.2068 30.5128 +96.7266 10.5656 31.5853 +96.4322 10.833 32.3846 +96.1306 11.0995 33.1815 +96.7582 11.4763 34.3078 +96.4389 11.7437 35.1073 +96.8565 12.1033 36.1821 +97.447 12.4898 37.3376 +97.0997 12.7591 38.1426 +96.8371 13.0398 38.9818 +96.4747 13.3074 39.7817 +96.105 13.5739 40.5786 +96.5469 13.9579 41.7264 +96.3405 14.2514 42.6039 +96.5766 14.6132 43.6854 +96.171 14.88 44.4829 +96.5634 15.273 45.6579 +96.1396 15.5398 46.4554 +96.4181 15.9225 47.5996 +95.9764 16.1888 48.3957 +96.3184 16.5901 49.5954 +96.6455 16.9946 50.8044 +96.1743 17.2615 51.6023 +96.4752 17.6698 52.823 +95.8993 17.9201 53.5712 +96.1742 18.332 54.8025 +96.3483 18.7301 55.9926 +96.5079 19.1306 57.1899 +95.8936 19.38 57.9355 +96.1955 19.8175 59.2434 +96.2304 20.2056 60.4036 +96.4171 20.6309 61.675 +95.7635 20.8791 62.4169 +96.0046 21.3253 63.751 +96.147 21.7561 65.0387 +96.1921 22.1706 66.2779 +95.4982 22.4172 67.0149 +95.6765 22.8716 68.3734 +95.6784 23.2901 69.6245 +95.7433 23.7299 70.9392 +95.7912 24.1717 72.2601 +95.7444 24.5957 73.5276 +95.7586 25.0414 74.86 +96.3684 25.6522 76.686 +95.583 25.8974 77.419 +95.6217 26.3692 78.8292 +95.5667 26.822 80.1831 +96.1629 27.4677 82.1132 +95.9935 27.9043 83.4184 +95.8805 28.3637 84.7918 +95.6769 28.8027 86.1043 +95.5283 29.2648 87.4857 +95.9322 29.9062 89.4029 +95.7423 30.3725 90.797 +95.5339 30.84 92.1946 +95.3071 31.3087 93.5957 +95.6125 31.9627 95.5508 +95.3434 32.4347 96.9619 +95.7311 33.1418 99.0758 +95.3511 33.5942 100.428 +95.0197 34.0707 101.853 +95.3254 34.7873 103.995 +94.9493 35.267 105.429 +95.004 35.9173 107.373 +95.2209 36.6441 109.546 +95.1532 37.276 111.435 +95.2447 37.985 113.554 +94.8119 38.4974 115.086 +94.5406 39.0855 116.844 +94.5451 39.8018 118.985 +94.5768 40.5464 121.211 +94.4571 41.243 123.294 +94.5965 42.071 125.769 +94.9843 43.0331 128.645 +94.6465 43.6863 130.598 +94.5595 44.4727 132.949 +94.2708 45.1827 135.071 +94.4404 46.1334 137.914 +94.2424 46.9284 140.29 +94.1667 47.8062 142.914 +94.102 48.7141 145.628 +93.8399 49.544 148.109 +93.9454 50.5947 151.25 +93.9 51.5946 154.239 +93.8559 52.6256 157.321 +93.8591 53.7156 160.58 +93.714 54.7542 163.685 +93.4718 55.7678 166.715 +93.6426 57.0656 170.595 +93.7036 58.3402 174.405 +93.7462 59.6478 178.314 +93.2415 60.6462 181.299 +93.464 62.1619 185.83 +92.9338 63.2234 189.003 +115.741 80.5674 240.852 +115.676 82.4206 246.392 +115.597 84.338 252.124 +115.656 86.4358 258.395 +116.03 88.863 265.651 +114.255 89.7103 268.184 +111.013 89.4032 267.266 +108.585 89.737 268.264 +105.482 89.4993 267.554 +103.016 89.7877 268.416 +99.9418 89.5314 267.649 +97.2472 89.5945 267.838 +94.4616 89.5596 267.734 +91.5617 89.3953 267.243 +91.3845 91.9449 274.864 +91.1323 94.5605 282.684 +91.1973 97.6684 291.975 +90.8776 100.54 300.558 +90.7007 103.753 310.163 +90.6643 107.34 320.887 +90.3621 110.842 331.357 +89.9466 114.443 342.122 +86.4215 114.194 341.378 +85.9763 118.138 353.169 +85.9482 122.987 367.662 +89.1525 133.057 397.766 +88.8384 138.521 414.1 +88.5926 144.585 432.229 +88.4936 151.468 452.807 +88.1959 158.674 474.349 +88.2014 167.204 499.847 +85.1629 170.575 509.925 +87.7692 186.303 556.944 +84.1301 189.9 567.697 +79.7646 192.202 574.578 +73.341 189.487 566.462 +68.7483 191.416 572.229 +62.738 189.359 566.08 +58.0538 191.263 571.769 +52.1017 188.919 564.765 +47.3893 191.017 571.036 +41.6865 189.116 565.352 +36.8184 190.966 570.882 +31.1451 188.526 563.588 +26.2283 190.57 569.699 +20.7478 188.479 563.45 +15.7219 190.464 569.382 +10.3685 188.439 563.328 +5.23243 190.205 568.608 +3.28626e-14 188.277 562.845 +-5.23505 190.3 568.892 +-10.3528 188.153 562.475 +-15.7036 190.242 568.719 +-20.678 187.845 561.554 +-26.1411 189.936 567.804 +-31.0457 187.924 561.789 +-36.6047 189.858 567.569 +-41.3586 187.629 560.906 +-47.0205 189.531 566.593 +-51.6746 187.371 560.136 +-57.5266 189.526 566.578 +-62.0795 187.372 560.139 +-68.0238 189.399 566.199 +-72.4757 187.251 559.779 +-78.381 188.868 564.611 +-82.9054 187.136 559.433 +-89.1439 189.221 565.666 +-93.3601 186.993 559.006 +-99.6392 188.886 564.666 +-103.859 186.854 558.59 +-110.344 188.867 564.609 +-114.409 186.718 558.182 +-114.138 177.969 532.03 +-117.262 175.009 523.18 +-121.639 174.058 520.338 +-126.94 174.426 521.437 +-132.27 174.777 522.488 +-139.299 177.236 529.838 +-147.649 181.113 541.428 +-153.583 181.831 543.574 +-875.553 1001.55 2994.07 +-903.071 999.084 2986.71 +-163.508 175.11 523.481 +-144.461 149.895 448.104 +-146.023 146.918 439.204 +-146.567 143.099 427.787 +-152.211 144.312 431.414 +-1066.79 982.841 2938.15 +-1093.78 979.85 2929.21 +-1120.7 976.785 2920.05 +-145.336 123.314 368.641 +-145.426 120.182 359.279 +-145.574 117.237 350.473 +-147.595 115.888 346.441 +-152.423 116.735 348.974 +-1280.31 956.841 2860.43 +-1306.58 953.259 2849.72 +-1332.75 949.605 2838.79 +-1358.83 945.881 2827.66 +-477.432 324.801 970.976 +-137.376 91.3675 273.138 +-140.323 91.2689 272.844 +-143.586 91.3596 273.115 +-145.095 90.3368 270.057 +-148.591 90.5507 270.696 +-153.799 91.7606 274.313 +-110.415 64.5116 192.854 +-110.1 63.0105 188.367 +-110.549 61.9855 185.302 +-111.6 61.32 183.313 +-113.08 60.8993 182.055 +-114.441 60.4209 180.625 +-116.047 60.0745 179.59 +-117.96 59.8858 179.025 +-119.549 59.5301 177.962 +-122.217 59.7024 178.477 +-125.566 60.1817 179.91 +-420.289 197.669 590.92 +-419.707 193.726 579.135 +-420.546 190.53 569.58 +-421.648 187.525 560.596 +-424.44 185.324 554.016 +-425.893 182.587 545.833 +-427.529 179.982 538.046 +-426.742 176.426 527.415 +-428.993 174.188 520.725 +-135.272 53.9488 161.277 +-135.744 53.1776 158.972 +-436.859 168.118 502.579 +-437.738 165.492 494.73 +-439.287 163.165 487.772 +-441.659 161.176 481.827 +-442.564 158.688 474.39 +-444.838 156.726 468.525 +-446.768 154.67 462.378 +-448.005 152.406 455.611 +-447.912 149.734 447.621 +-449.305 147.598 441.237 +-451.175 145.647 435.405 +-453.892 143.989 430.448 +-455.91 142.127 424.88 +-458.148 140.352 419.576 +-459.96 138.467 413.941 +-460.899 136.345 407.595 +-2415.69 702.215 2099.23 +-2434.91 695.502 2079.17 +-2453.95 688.732 2058.93 +-2472.81 681.915 2038.55 +-2491.47 675.044 2018.01 +-384.018 102.221 305.585 +-384.115 100.448 300.285 +-382.045 98.1433 293.394 +-141.339 35.6651 106.619 +-142.551 35.3311 105.62 +-143.2 34.8578 104.205 +-142.556 34.0783 101.875 +-142.283 33.3994 99.8459 +-143.115 32.9854 98.6083 +-144.994 32.8091 98.081 +-148.267 32.9341 98.4546 +-495.382 108.007 322.881 +-498.334 106.631 318.769 +-499.414 104.863 313.481 +-502.028 103.424 309.181 +-503.842 101.826 304.404 +-506.37 100.377 300.072 +-524.288 101.922 304.689 +-511.815 97.558 291.645 +-2823.3 527.572 1577.15 +-516.151 94.5351 282.608 +-517.775 92.9308 277.812 +-521.186 91.6476 273.976 +-523.951 90.2467 269.788 +-2892.98 487.972 1458.77 +-2906.29 479.946 1434.77 +-381.974 61.7416 184.573 +-380.347 60.1579 179.839 +-380.729 58.908 176.103 +-381.342 57.7016 172.496 +-380.377 56.2684 168.211 +-380.455 55.0026 164.427 +-380.035 53.6763 160.462 +-381.864 52.6729 157.463 +-380.813 51.2789 153.296 +-379.899 49.9193 149.231 +-380.516 48.7709 145.798 +-381.471 47.6692 142.504 +-380.341 46.3155 138.458 +-381.132 45.2052 135.139 +-380.576 43.9423 131.363 +-382.053 42.9189 128.304 +-381.517 41.6738 124.582 +-381.7 40.5153 121.118 +-380.518 39.2219 117.252 +-380.724 38.0811 113.842 +-381.757 37.0257 110.686 +-381.035 35.8053 107.038 +-380.371 34.6005 103.436 +-380.73 33.4952 100.132 +-380.768 32.3659 96.7562 +-380.192 31.1916 93.2456 +-380.162 30.0688 89.8892 +-379.808 28.9264 86.474 +-381.174 27.9167 83.4555 +-381.341 26.8192 80.1746 +-379.326 25.5778 76.4636 +-380.309 24.5457 73.3781 +-380.086 23.4375 70.0651 +-380.52 22.3728 66.8823 +-380.628 21.291 63.6484 +-379.72 20.158 60.2612 +-381.544 19.1705 57.3092 +-381.068 18.0667 54.0094 +-380.659 16.9713 50.7348 +-380.913 15.9086 47.5579 +-381.038 14.8419 44.369 +-380.538 13.7542 41.1173 +-380.604 12.6902 37.9368 +-379.345 11.5875 34.6401 +-379.949 10.5452 31.5242 +-381.52 9.5253 28.4754 +-380.77 8.44661 25.2507 +-380.689 7.38639 22.0812 +-380.578 6.32725 18.915 +-379.538 5.25685 15.7151 +-3274.5 36.2748 108.442 +-3275.38 27.2086 81.3387 +-145.478 0.805556 2.40817 +-146.194 0.404731 1.20992 +96.6 3.55271e-15 -1.7053e-13 +96.3963 0.274052 0.795347 +96.3853 0.548083 1.59063 +97.1667 0.828896 2.4056 +96.6411 1.09941 3.19068 +96.3082 1.36985 3.97552 +96.5675 1.6487 4.78481 +96.2202 1.9172 5.56404 +96.3647 2.19521 6.37088 +97.0997 2.48953 7.22504 +97.129 2.76831 8.03412 +96.9516 3.04121 8.82612 +96.0708 3.28946 9.54657 +96.7739 3.59197 10.4245 +96.8725 3.87487 11.2455 +96.5667 4.14165 12.0198 +96.5511 4.42054 12.8292 +96.3301 4.69002 13.6112 +96.8922 4.99937 14.509 +96.656 5.26928 15.2923 +96.6096 5.54951 16.1056 +96.2607 5.81208 16.8676 +96.1995 6.09172 17.6792 +95.9346 6.35847 18.4534 +95.9563 6.64449 19.2835 +95.677 6.91 20.054 +95.5857 7.18906 20.8639 +96.1674 7.52134 21.8282 +96.0593 7.80236 22.6438 +96.6211 8.14038 23.6248 +96.5926 8.43162 24.47 +96.2667 8.69719 25.2407 +96.03 8.97054 26.034 +96.5531 9.3172 27.0401 +96.3955 9.60088 27.8634 +96.0393 9.86476 28.6292 +96.7224 10.2381 29.7126 +96.3497 10.5023 30.4795 +96.8211 10.8607 31.5195 +96.4322 11.1246 32.2855 +96.2245 11.4095 33.1123 +96.7582 11.7853 34.2029 +96.5322 12.0716 35.0338 +96.9495 12.4411 36.1061 +96.7053 12.7284 36.9401 +97.0997 13.1026 38.0259 +96.9292 13.4036 38.8995 +96.4747 13.6656 39.66 +96.1963 13.9527 40.493 +96.5469 14.3337 41.5988 +96.4311 14.6489 42.5136 +96.7571 15.0347 43.6332 +96.4406 15.3234 44.4712 +96.5634 15.6842 45.5183 +96.2287 15.973 46.3563 +96.5068 16.3662 47.4976 +96.153 16.6553 48.3365 +96.3184 17.0368 49.4437 +96.9079 17.4995 50.7865 +96.1743 17.7262 51.4445 +96.4752 18.1455 52.6615 +96.761 18.5679 53.8873 +96.1742 18.8255 54.6349 +96.3483 19.2344 55.8214 +96.6775 19.6802 57.1153 +95.9779 19.9193 57.8091 +96.2794 20.3688 59.1138 +96.3138 20.7676 60.2711 +96.5829 21.2228 61.5922 +95.8459 21.4596 62.2795 +96.1684 21.9369 63.6645 +96.147 22.3418 64.8398 +96.273 22.7866 66.1307 +95.5786 23.0401 66.8662 +96.3953 23.6638 68.6765 +96.3924 24.0956 69.9296 +95.8221 24.3888 70.7804 +96.4173 24.9848 72.51 +95.8221 25.2784 73.3622 +96.2987 25.8607 75.0521 +95.7556 26.1754 75.9653 +95.6591 26.6158 77.2437 +95.7726 27.1219 78.7122 +96.091 27.6953 80.3765 +96.1629 28.2072 81.8621 +95.9198 28.6336 83.0995 +95.9536 29.1496 84.597 +95.7494 29.6006 85.9061 +95.6003 30.0754 87.2839 +95.3616 30.5287 88.5995 +95.8837 31.2363 90.6531 +95.5339 31.6703 91.9127 +95.3766 32.1751 93.3776 +95.1306 32.6577 94.7783 +95.4798 33.3559 96.8044 +95.1907 33.8419 98.215 +95.4849 34.5472 100.262 +95.6823 35.232 102.249 +95.391 35.7487 103.749 +94.9493 36.2165 105.106 +95.1326 36.9345 107.19 +95.2209 37.6307 109.211 +95.2791 38.3304 111.241 +94.56 38.7272 112.393 +94.8119 39.5338 114.734 +94.6015 40.1635 116.561 +94.6053 40.8995 118.697 +94.6958 41.6904 120.993 +94.751 42.4853 123.3 +94.5384 43.1773 125.308 +94.9269 44.165 128.174 +94.3066 44.7016 129.732 +94.5036 45.643 132.464 +94.2708 46.3992 134.658 +94.0592 47.1843 136.937 +94.1886 48.1645 139.782 +94.2196 49.121 142.558 +93.8407 49.8869 144.78 +93.9429 50.9336 147.818 +94.4021 52.2093 151.52 +93.95 53.0117 153.849 +93.9052 54.0708 156.923 +93.9076 55.1905 160.172 +93.714 56.2284 163.184 +93.9413 57.5569 167.04 +93.5964 58.573 169.989 +93.7944 59.9689 174.04 +93.7462 61.2538 177.769 +93.6799 62.5718 181.594 +93.507 63.8651 185.348 +92.9338 64.9255 188.425 +115.326 82.4401 239.255 +115.595 84.5804 245.467 +115.637 86.6383 251.439 +115.656 88.763 257.605 +115.953 91.1952 264.664 +114.63 92.4276 268.241 +111.636 92.3256 267.945 +108.908 92.4266 268.238 +105.833 92.2139 267.62 +103.358 92.5113 268.484 +100.276 92.2491 267.723 +97.8658 92.5921 268.718 +94.7789 92.2797 267.811 +92.1798 92.4217 268.224 +91.4747 94.5135 274.294 +91.4831 97.4803 282.905 +91.1405 100.235 290.9 +90.9879 103.372 300.002 +90.6473 106.483 309.032 +90.742 110.324 320.18 +90.3872 113.858 330.435 +90.2853 117.967 342.36 +86.0947 116.825 339.047 +86.1563 121.573 352.826 +87.6797 128.842 373.923 +89.0278 136.448 395.994 +88.8782 142.314 413.019 +88.7262 148.701 431.556 +88.3113 155.226 450.492 +88.248 163.042 473.177 +87.4422 170.227 494.029 +86.5239 177.966 516.489 +87.4293 190.578 553.09 +81.7503 189.496 549.951 +77.7414 192.37 558.292 +71.1595 188.801 547.933 +67.1182 191.909 556.953 +60.8042 188.464 546.954 +56.6161 191.548 555.906 +50.5503 188.229 546.273 +46.1575 191.061 554.492 +40.396 188.195 546.175 +35.8965 191.197 554.886 +30.2606 188.104 545.909 +25.5828 190.884 553.978 +20.0951 187.466 544.057 +15.3266 190.674 553.37 +10.0543 187.649 544.589 +5.10415 190.537 552.972 +3.4639e-14 187.613 544.484 +-5.09891 190.342 552.405 +-10.0282 187.16 543.171 +-15.3057 190.414 552.614 +-20.0672 187.205 543.302 +-25.4868 190.168 551.9 +-30.0722 186.933 542.51 +-35.6707 189.994 551.395 +-40.11 186.863 542.308 +-45.875 189.892 551.1 +-50.1494 186.736 541.94 +-56.1656 190.024 551.482 +-60.292 186.876 542.347 +-66.2918 189.546 550.096 +-70.2942 186.505 541.27 +-76.5536 189.431 549.761 +-80.456 186.496 541.244 +-86.8972 189.418 549.723 +-90.513 186.171 540.301 +-97.1305 189.088 548.765 +-100.716 186.077 540.029 +-107.446 188.859 548.102 +-110.936 185.924 539.584 +-113.959 182.473 529.569 +-117.699 180.39 523.522 +-121.899 179.126 519.855 +-127.705 180.201 522.975 +-135.188 183.442 532.381 +-141.863 185.359 537.942 +-146.197 184.16 534.463 +-146.776 178.451 517.895 +-160.183 188.166 546.091 +-161.965 184.009 534.024 +-164.161 180.543 523.965 +-144.929 154.429 448.18 +-146.293 151.153 438.672 +-146.845 147.23 427.288 +-148.594 144.676 419.873 +-150.705 142.585 413.805 +-1093.78 1006.23 2920.25 +-1120.7 1003.08 2911.12 +-145.896 127.122 368.931 +-145.497 123.479 358.357 +-145.281 120.151 348.698 +-149.131 120.247 348.976 +-152.767 120.149 348.694 +-1280.31 982.602 2851.68 +-1306.58 978.924 2841.01 +-1332.75 975.171 2830.11 +-1358.83 971.347 2819.01 +-473.84 331.034 960.717 +-137.591 93.9744 272.73 +-141.156 94.2825 273.624 +-143.81 93.9649 272.702 +-145.504 93.0303 269.99 +-149.006 93.2485 270.623 +-436.89 267.678 776.847 +-110.271 66.1628 192.016 +-109.955 64.6216 187.543 +-110.746 63.7677 185.065 +-111.9 63.14 183.243 +-112.775 62.3705 181.01 +-115.008 62.3545 180.963 +-116.099 61.7199 179.122 +-118.49 61.7743 179.28 +-120.086 61.4075 178.215 +-122.435 61.4189 178.248 +-126.89 62.4539 181.252 +-420.01 202.855 588.721 +-420.5 199.318 578.454 +-422.095 196.38 569.929 +-422.752 193.078 560.344 +-424.322 190.261 552.169 +-426.547 187.79 545 +-428.191 185.114 537.231 +-428.994 182.132 528.577 +-431.702 180.007 522.41 +-436.445 178.747 518.755 +-2061.97 829.522 2407.41 +-137.52 54.347 157.724 +-136.849 53.1306 154.194 +-439.871 167.78 486.928 +-442.315 165.761 481.068 +-443.69 163.375 474.143 +-445.574 161.212 467.864 +-446.768 158.834 460.965 +-448.346 156.629 454.564 +-450.253 154.568 448.584 +-451.667 152.369 442.2 +-452.297 149.941 435.153 +-454.245 147.981 429.465 +-455.696 145.885 423.382 +-2356.92 741.475 2151.89 +-459.96 142.195 412.675 +-461.484 140.193 406.865 +-2415.69 721.121 2092.82 +-2434.91 714.227 2072.81 +-2453.95 707.275 2052.63 +-2472.81 700.275 2032.32 +-2491.47 693.218 2011.84 +-384.401 105.078 304.955 +-383.42 102.966 298.825 +-2546.32 671.734 1949.49 +-141.887 36.7674 106.705 +-142.157 36.182 105.006 +-143.2 35.7962 103.887 +-142.796 35.0548 101.735 +-142.524 34.3566 99.7088 +-142.549 33.7396 97.9182 +-146.215 33.9761 98.6046 +-148.676 33.9142 98.4249 +-496.454 111.155 322.59 +-498.417 109.521 317.847 +-499.915 107.794 312.836 +-502.699 106.351 308.648 +-504.854 104.778 304.083 +-507.048 103.218 299.555 +-517.553 103.321 299.855 +-520.815 101.946 295.866 +-513.789 98.5935 286.135 +-517.19 97.2757 282.311 +-518.645 95.5931 277.428 +-521.798 94.2255 273.459 +-2879.44 509.316 1478.12 +-2892.98 501.11 1454.31 +-2906.29 492.868 1430.39 +-380.816 63.2116 183.451 +-380.974 61.8792 179.584 +-380.999 60.5371 175.689 +-380.44 59.1147 171.561 +-380.559 57.8107 167.776 +-380.182 56.4431 163.807 +-381.04 55.2674 160.395 +-382.047 54.117 157.057 +-380.445 52.6087 152.679 +-381.1 51.4255 149.246 +-379.775 49.9862 145.069 +-381.192 48.9167 141.965 +-380.901 47.6325 138.238 +-381.413 46.4565 134.825 +-381.327 45.2147 131.221 +-382.053 44.0744 127.912 +-381.611 42.8062 124.231 +-382.174 41.6579 120.898 +-381.564 40.3887 117.215 +-380.247 39.0572 113.351 +-380.514 37.8988 109.989 +-380.651 36.7322 106.603 +-381.333 35.6216 103.38 +-380.73 34.397 99.8261 +-379.995 33.1699 96.2646 +-381.45 32.1374 93.2682 +-380.938 30.9414 89.7972 +-380.683 29.7736 86.4082 +-380.102 28.5877 82.9663 +-380.658 27.4919 79.7862 +-379.521 26.28 76.269 +-380.309 25.2066 73.1538 +-380.086 24.0685 69.8508 +-380.028 22.9455 66.5917 +-381.416 21.9095 63.5851 +-381.002 20.7706 60.2798 +-380.161 19.6153 56.9269 +-380.573 18.529 53.7743 +-381.055 17.4464 50.6323 +-380.318 16.3114 47.3384 +-381.138 15.2454 44.2449 +-380.538 14.1245 40.9916 +-380.405 13.0251 37.801 +-380.64 11.94 34.652 +-380.447 10.8433 31.4691 +-380.523 9.75618 28.3141 +-380.371 8.66494 25.1471 +-380.289 7.57731 21.9906 +-381.077 6.50614 18.8819 +-380.438 5.41118 15.7042 +-3274.5 37.2515 108.11 +-148.149 1.26381 3.66779 +-144.478 0.821557 2.3843 +-146.994 0.417901 1.21282 +96.3 0 -1.7053e-13 +96.3963 0.281217 0.792842 +96.2853 0.561829 1.58398 +96.267 0.842689 2.37582 +96.3413 1.12465 3.17076 +96.3082 1.40565 3.963 +96.2679 1.68655 4.75494 +96.2202 1.96732 5.54652 +96.1652 2.24793 6.33766 +96.0031 2.52576 7.12094 +95.9335 2.80572 7.91025 +96.8521 3.11751 8.78928 +96.767 3.39992 9.58549 +96.8733 3.68965 10.4023 +95.88 3.93545 11.0953 +96.4676 4.24554 11.9696 +96.3531 4.52677 12.7625 +96.1323 4.80276 13.5406 +96.0033 5.083 14.3306 +95.7683 5.35735 15.1041 +95.6248 5.63651 15.8912 +95.4741 5.91528 16.6771 +96.0031 6.2382 17.5875 +95.8366 6.51803 18.3765 +95.6628 6.79736 19.164 +95.677 7.09063 19.9908 +96.1703 7.42212 20.9254 +96.1674 7.71796 21.7595 +95.7682 7.98205 22.504 +95.7498 8.27786 23.338 +96.3028 8.62609 24.3198 +96.074 8.90669 25.1109 +95.8378 9.18659 25.9 +96.4573 9.55127 26.9282 +96.2043 9.83231 27.7205 +95.9439 10.1126 28.5107 +96.5322 10.485 29.5608 +96.2549 10.7662 30.3536 +96.8211 11.1446 31.4203 +96.4322 11.4154 32.1839 +96.1306 11.6963 32.9758 +96.7582 12.0934 34.0952 +97.2791 12.483 35.1936 +96.9495 12.7663 35.9924 +96.5198 13.0361 36.7531 +96.3606 13.3428 37.6177 +96.7451 13.7278 38.7033 +96.4747 14.0229 39.5351 +96.1963 14.3174 40.3655 +96.6379 14.7222 41.5068 +96.2499 15.0036 42.3001 +96.6669 15.4133 43.4552 +96.2608 15.6947 44.2485 +96.6529 16.1092 45.4171 +96.9415 16.5119 46.5526 +96.5068 16.7941 47.348 +96.0647 17.075 48.14 +96.4941 17.5141 49.3779 +96.7329 17.9245 50.5352 +96.2613 18.206 51.3288 +96.3886 18.6032 52.4485 +96.6748 19.0363 53.6697 +96.1742 19.3177 54.4628 +96.3483 19.7372 55.6456 +96.6775 20.1947 56.9354 +96.737 20.6017 58.0829 +96.1955 20.8831 58.8762 +96.3972 21.3289 60.1333 +96.4171 21.7402 61.2927 +95.8459 22.0206 62.0834 +96.0865 22.4911 63.4099 +96.147 22.9259 64.6356 +96.273 23.3823 65.9224 +96.3824 23.8412 67.2163 +95.7564 24.1215 68.0064 +96.3924 24.7255 69.7094 +95.8221 25.0263 70.5575 +95.7912 25.4714 71.8123 +95.7444 25.9182 73.0719 +95.7586 26.3879 74.3961 +95.7556 26.8596 75.7261 +95.7351 27.3333 77.0616 +95.7726 27.8309 78.4644 +95.4919 28.2421 79.6238 +96.0886 28.9222 81.5412 +95.4037 29.224 82.3921 +95.8805 29.8888 84.2663 +95.6769 30.3514 85.5707 +95.6003 30.8616 87.009 +95.4329 31.3502 88.3865 +95.813 32.0292 90.3009 +95.604 32.5221 91.6905 +95.3766 33.0162 93.0835 +95.7501 33.7297 95.0953 +95.4798 34.2278 96.4996 +95.7987 34.9486 98.5315 +95.418 35.4253 99.8755 +95.086 35.9277 101.292 +95.2598 36.6327 103.28 +94.8844 37.1378 104.704 +95.1326 37.9 106.853 +95.2845 38.6401 108.939 +95.405 39.3842 111.037 +94.809 39.8442 112.334 +94.8119 40.5673 114.373 +94.7233 41.2666 116.344 +94.6053 41.9686 118.323 +94.6958 42.7803 120.612 +94.5159 43.4876 122.606 +94.4804 44.2789 124.837 +94.9843 45.347 127.848 +94.3633 45.8975 129.4 +94.5036 46.8362 132.047 +94.2708 47.6121 134.234 +94.6038 48.6982 137.296 +94.4035 49.5363 139.659 +94.2196 50.4051 142.109 +93.893 51.2194 144.404 +93.8914 52.2366 147.272 +93.9961 53.3438 150.394 +94 54.4266 153.446 +93.9052 55.4843 156.428 +93.9076 56.6332 159.668 +93.714 57.6983 162.67 +93.4718 58.7663 165.682 +93.6888 60.1633 169.62 +93.749 61.5068 173.408 +93.3446 62.5856 176.449 +93.3292 63.9672 180.345 +93.1196 65.2629 183.998 +93.3141 66.8955 188.601 +100.812 73.9487 208.486 +115.554 86.7607 244.607 +115.677 88.9339 250.734 +115.617 91.0526 256.707 +115.685 93.3632 263.222 +115.379 95.4639 269.144 +112.003 95.0504 267.978 +109.446 95.3108 268.713 +106.428 95.157 268.279 +103.632 95.1811 268.347 +100.576 94.9441 267.679 +98.1262 95.2653 268.584 +95.35 95.2626 268.577 +92.7051 95.3783 268.903 +91.5048 97.016 273.52 +91.22 99.7408 281.202 +91.1689 102.888 290.075 +90.9879 106.074 299.057 +90.7542 109.396 308.423 +90.5349 112.95 318.443 +90.3121 116.737 329.121 +90.2369 120.986 341.099 +86.0713 119.847 337.888 +88.6532 128.367 361.908 +89.6276 135.148 381.026 +89.1733 140.244 395.393 +88.8583 146.001 411.626 +88.688 152.523 430.012 +88.3478 159.349 449.259 +87.7618 166.383 469.088 +85.6432 171.084 482.341 +87.8536 185.425 522.775 +85.3895 190.997 538.484 +79.2869 188.591 531.7 +75.3267 191.268 539.247 +69.0146 187.897 529.743 +64.8994 190.416 536.845 +59.184 188.237 530.703 +54.7758 190.167 536.142 +49.121 187.688 529.155 +44.808 190.324 536.585 +39.2589 187.679 529.13 +34.8099 190.256 536.394 +29.3657 187.312 528.096 +24.7976 189.862 535.285 +19.5437 187.088 527.462 +14.858 189.677 534.763 +9.7716 187.14 527.609 +4.94882 189.568 534.454 +3.19744e-14 186.867 526.841 +-4.94533 189.434 534.077 +-9.75066 186.739 526.478 +-14.8449 189.51 534.292 +-19.4983 186.654 526.238 +-24.6973 189.094 533.119 +-29.2244 186.411 525.555 +-34.5718 188.955 532.726 +-39.0357 186.612 526.122 +-44.4942 188.991 532.828 +-48.7985 186.456 525.681 +-54.3829 188.802 532.296 +-58.5255 186.143 524.799 +-64.1975 188.357 531.04 +-68.1981 185.674 523.476 +-74.2041 188.417 531.21 +-77.9648 185.446 522.834 +-84.074 188.055 530.189 +-87.9631 185.656 523.427 +-94.1101 187.997 530.027 +-97.7466 185.312 522.457 +-104.184 187.913 529.788 +-107.712 185.239 522.25 +-113.7 186.818 526.701 +-117.824 185.302 522.427 +-122.526 184.755 520.886 +-123.543 178.886 504.339 +-134.908 187.848 529.605 +-135.549 181.738 512.381 +-146.272 189.071 533.054 +-145.922 182.05 513.259 +-150.028 180.844 509.86 +-156.948 182.97 515.854 +-164.7 185.871 524.033 +-140.163 153.256 432.079 +-144.91 153.638 433.156 +-144.682 148.854 419.668 +-146.214 146.08 411.848 +-146.408 142.14 400.739 +-151.815 143.314 404.049 +-1120.7 1029.31 2901.95 +-146.177 130.696 368.475 +-145.497 126.707 357.228 +-145.574 123.54 348.301 +-149.843 123.979 349.538 +-152.652 123.197 347.334 +-1280.31 1008.29 2842.7 +-1306.58 1004.51 2832.06 +-1332.75 1000.66 2821.2 +-1358.66 996.619 2809.8 +-471.515 338.023 952.998 +-138.237 96.8836 273.147 +-141.769 97.1677 273.948 +-143.854 96.4514 271.928 +-146.548 96.1472 271.071 +-149.837 96.22 271.276 +-436.468 274.41 773.652 +-111.083 68.3918 192.819 +-110.246 66.4864 187.447 +-110.943 65.551 184.81 +-112.35 65.0513 183.401 +-113.232 64.26 181.17 +-115.472 64.2426 181.121 +-116.517 63.5614 179.2 +-118.861 63.5874 179.274 +-120.463 63.21 178.21 +-123.688 63.6693 179.505 +-127.442 64.3653 181.467 +-415.872 206.107 581.085 +-421.463 204.997 577.953 +-422.382 201.651 568.521 +-424.029 198.724 560.268 +-424.792 195.451 551.041 +-425.239 192.108 541.616 +-426.145 189.045 532.98 +-429.42 187.078 527.436 +-431.579 184.66 520.617 +-434.826 182.74 515.203 +-435.741 179.88 507.14 +-438.131 177.673 500.918 +-148.227 59.0521 166.487 +-138.073 54.0418 152.362 +-442.446 170.145 479.695 +-443.823 167.696 472.791 +-445.909 165.551 466.742 +-447.511 163.258 460.277 +-448.55 160.797 453.339 +-449.771 158.44 446.693 +-452.362 156.592 441.485 +-453.909 154.408 435.328 +-455.66 152.322 429.446 +-456.266 149.886 422.577 +-458.363 147.968 417.171 +-2376.69 753.952 2125.64 +-465.36 145.067 408.991 +-2415.69 739.972 2086.22 +-2434.91 732.898 2066.28 +-2453.95 725.765 2046.17 +-2472.81 718.581 2025.92 +-382.636 109.246 308.001 +-2509.94 704.042 1984.93 +-383.729 105.743 298.124 +-141.674 38.3513 108.125 +-142.748 37.9575 107.015 +-142.788 37.2926 105.14 +-143.835 36.8948 104.019 +-142.956 36.0113 101.528 +-142.363 35.215 99.2827 +-142.306 34.5625 97.443 +-146.704 34.981 98.623 +-2683.95 628.236 1771.2 +-497.113 114.212 322.001 +-499.578 112.645 317.584 +-501.082 110.87 312.579 +-502.951 109.185 307.83 +-505.023 107.552 303.226 +-509.507 106.429 300.059 +-510.817 104.642 295.021 +-528.444 106.144 299.254 +-514.565 101.324 285.665 +-517.797 99.9357 281.752 +-519.515 98.2569 277.019 +-522.935 96.8996 273.192 +-524.566 95.2108 268.431 +-2892.98 514.21 1449.73 +-530.078 92.244 260.066 +-380.46 64.8032 182.702 +-381.153 63.5269 179.103 +-380.639 62.0607 174.97 +-380.259 60.6313 170.94 +-381.374 59.4493 167.607 +-379.818 57.8631 163.135 +-381.497 56.78 160.081 +-379.938 55.2252 155.698 +-380.721 54.0231 152.309 +-380.638 52.706 148.596 +-381.536 51.531 145.283 +-381.006 50.1707 141.448 +-380.527 48.8299 137.668 +-380.383 47.5422 134.037 +-381.421 46.408 130.839 +-380.827 45.0815 127.1 +-381.044 43.86 123.656 +-382.174 42.7469 120.517 +-381.944 41.4856 116.962 +-380.342 40.0883 113.022 +-380.131 38.8504 109.532 +-381.227 37.7496 106.428 +-380.756 36.4977 102.899 +-380.634 35.2872 99.4863 +-379.995 34.037 95.9614 +-379.804 32.8352 92.5733 +-379.386 31.6209 89.1497 +-381.363 30.6066 86.2901 +-381.271 29.4252 82.9594 +-381.146 28.2467 79.6369 +-381.478 27.106 76.4208 +-380.505 25.8788 72.961 +-380.871 24.7487 69.7748 +-380.716 23.588 66.5022 +-381.121 22.4648 63.3357 +-380.016 21.2584 59.9343 +-379.667 20.1019 56.674 +-381.859 19.0776 53.786 +-380.758 17.8885 50.4336 +-380.417 16.7422 47.2017 +-381.138 15.644 44.1056 +-380.637 14.4975 40.8733 +-380.106 13.3551 37.6525 +-381.336 12.2746 34.6061 +-380.447 11.1267 31.3699 +-380.723 10.0165 28.2397 +-380.271 8.88914 25.0614 +-380.888 7.78763 21.9559 +-380.777 6.67097 18.8077 +-381.237 5.56431 15.6876 +-380.068 4.43678 12.5088 +-148.349 1.2986 3.66118 +-143.578 0.837785 2.36199 +-146.494 0.427368 1.20489 +96.3 0 -1.7053e-13 +96.2963 0.288058 0.789453 +96.2853 0.576096 1.57885 +96.267 0.864088 2.36812 +96.3413 1.15321 3.16049 +96.3082 1.44135 3.95016 +96.168 1.72758 4.73461 +96.2202 2.01727 5.52854 +96.1652 2.30502 6.31713 +96.9004 2.6141 7.1642 +96.8301 2.90386 7.9583 +95.9562 3.16711 8.67977 +96.6675 3.48269 9.54466 +96.8733 3.78334 10.3686 +96.7732 4.07299 11.1624 +96.4676 4.35335 11.9308 +96.3531 4.64172 12.7211 +96.2312 4.9298 13.5106 +96.0033 5.21207 14.2842 +95.7683 5.49339 15.0552 +96.3142 5.82133 15.9539 +96.1623 6.10919 16.7428 +96.0031 6.39661 17.5305 +95.8366 6.68355 18.3169 +95.6628 6.96997 19.1019 +95.4817 7.25585 19.8854 +95.4883 7.5566 20.7096 +96.1674 7.91395 21.689 +95.7682 8.18474 22.4311 +95.5562 8.47089 23.2153 +96.496 8.86286 24.2896 +96.2667 9.15117 25.0797 +95.8378 9.41988 25.8161 +96.4573 9.79381 26.8409 +96.2043 10.082 27.6307 +96.8023 10.4621 28.6725 +96.4371 10.7407 29.436 +96.2549 11.0396 30.2552 +95.9701 11.3272 31.0432 +96.4322 11.7053 32.0796 +96.1306 11.9933 32.869 +96.7582 12.4005 33.9847 +97.2791 12.8 35.0796 +96.9495 13.0905 35.8758 +96.6126 13.38 36.6692 +97.0997 13.7865 37.7833 +96.8371 14.0898 38.6146 +96.4747 14.379 39.407 +96.105 14.667 40.1964 +96.6379 15.0961 41.3723 +96.2499 15.3846 42.163 +96.6669 15.8047 43.3143 +96.2608 16.0932 44.1051 +96.6529 16.5183 45.2699 +96.9415 16.9312 46.4017 +96.5955 17.2364 47.238 +96.8594 17.6534 48.3809 +96.4062 17.9425 49.1731 +95.9458 18.2302 49.9616 +96.2613 18.6684 51.1625 +96.3886 19.0756 52.2785 +96.6748 19.5198 53.4958 +96.0885 19.7905 54.238 +96.4336 20.2563 55.5144 +96.5927 20.6893 56.7011 +96.737 21.1248 57.8946 +96.1116 21.3947 58.6342 +96.3972 21.8706 59.9384 +95.8367 22.1581 60.7264 +95.8459 22.5798 61.8822 +96.0865 23.0623 63.2044 +96.147 23.508 64.4261 +96.273 23.9761 65.7088 +95.659 24.2631 66.4956 +95.7564 24.734 67.786 +95.7577 25.1865 69.026 +95.8221 25.6619 70.3289 +95.7912 26.1182 71.5796 +95.8221 26.5979 72.8942 +95.7586 27.0579 74.155 +95.7556 27.5417 75.4807 +95.6591 28.0051 76.7509 +95.6217 28.4926 78.0868 +95.5667 28.982 79.4279 +96.0886 29.6567 81.277 +95.9935 30.1513 82.6328 +95.2954 30.4607 83.4807 +95.7494 31.1457 85.358 +95.6003 31.6453 86.727 +95.4329 32.1463 88.1001 +95.8837 32.8668 90.0747 +95.604 33.348 91.3934 +95.3766 33.8546 92.7818 +95.1306 34.3624 94.1737 +95.4116 35.0716 96.1173 +95.7311 35.8107 98.1427 +95.418 36.3248 99.5518 +95.086 36.84 100.964 +95.391 37.6147 103.087 +95.5988 38.3678 105.151 +95.1326 38.8624 106.506 +95.2845 39.6213 108.586 +95.405 40.3844 110.677 +94.809 40.856 111.97 +94.8734 41.6242 114.075 +94.6015 42.26 115.818 +94.6053 43.0344 117.94 +94.6958 43.8666 120.221 +94.751 44.703 122.513 +94.4804 45.4033 124.432 +94.9843 46.4985 127.434 +94.3633 47.063 128.981 +94.3918 47.969 131.464 +94.326 48.8496 133.877 +94.5493 49.906 136.772 +94.3498 50.7654 139.128 +94.1137 51.6268 141.488 +93.893 52.5201 143.936 +93.8914 53.5631 146.795 +93.9961 54.6984 149.906 +93.95 55.7789 152.867 +93.9544 56.923 156.003 +93.9561 58.1012 159.232 +93.714 59.1634 162.143 +93.5187 60.2888 165.227 +93.6426 61.6609 168.988 +93.749 63.0687 172.846 +93.3446 64.1748 175.878 +93.3292 65.5915 179.76 +93.1196 66.9202 183.401 +93.3986 68.6563 188.159 +96.1259 72.3018 198.15 +115.595 88.9954 243.901 +115.637 91.1607 249.835 +115.617 93.3648 255.875 +115.647 95.7022 262.281 +115.454 97.9515 268.446 +112.662 98.0379 268.683 +109.768 98.0194 268.632 +106.708 97.8301 268.113 +104.145 98.0811 268.801 +101.143 97.9042 268.316 +98.3541 97.9114 268.336 +95.6356 97.9744 268.509 +92.8287 97.9306 268.388 +91.5048 99.4796 272.634 +91.1615 102.208 280.111 +91.2257 105.566 289.315 +90.9603 108.735 297.998 +90.8076 112.24 307.604 +90.6125 115.917 317.683 +90.4373 119.868 328.509 +90.1885 123.992 339.811 +86.7483 123.857 339.442 +89.823 133.363 365.495 +89.7142 138.714 380.158 +89.1941 143.838 394.203 +88.619 149.306 409.188 +88.8025 156.598 429.172 +88.2202 163.16 447.157 +86.5115 168.177 460.907 +85.5607 175.259 480.314 +87.2591 188.848 517.556 +83.2019 190.83 522.989 +77.422 188.831 517.511 +73.3166 190.891 523.156 +67.5278 188.517 516.651 +63.2806 190.381 521.759 +57.7102 188.211 515.811 +53.4915 190.424 521.875 +48.0054 188.084 515.462 +43.6468 190.099 520.986 +38.3172 187.829 514.765 +33.8697 189.818 520.216 +28.7167 187.824 514.751 +24.1913 189.924 520.504 +19.1179 187.659 514.299 +14.4916 189.697 519.883 +9.53599 187.265 513.219 +4.83101 189.755 520.041 +3.28626e-14 187.225 513.109 +-4.82054 189.343 518.914 +-9.53774 187.3 513.313 +-14.4523 189.183 518.474 +-19.0726 187.214 513.078 +-24.0648 188.931 517.783 +-28.6016 187.071 512.688 +-33.7049 188.895 517.684 +-38.101 186.769 511.859 +-43.3879 188.972 517.896 +-47.6568 186.718 511.718 +-53.0027 188.683 517.106 +-57.2293 186.643 511.513 +-62.6353 188.44 516.438 +-66.76 186.374 510.777 +-72.4159 188.546 516.73 +-76.3225 186.15 510.162 +-82.049 188.186 515.742 +-85.9295 185.97 509.668 +-91.6674 187.768 514.596 +-95.5412 185.731 509.014 +-101.323 187.393 513.57 +-105.212 185.535 508.477 +-111.467 187.8 514.684 +-115.204 185.783 509.156 +-118.717 183.557 503.056 +-122.441 181.792 498.22 +-126.621 180.785 495.46 +-135.089 185.721 508.988 +-143.393 190.056 520.867 +-146.414 187.302 513.32 +-146.153 180.647 495.081 +-149.561 178.786 489.982 +-930.519 1076.8 2951.06 +-139.637 156.557 429.061 +-141.091 153.388 420.374 +-143.446 151.33 414.734 +-146.404 149.985 411.048 +-146.506 145.846 399.706 +-148.377 143.625 393.619 +-151.002 142.21 389.739 +-146.177 134.015 367.281 +-145.82 130.212 356.86 +-146.051 127.092 348.308 +-150.255 127.477 349.362 +-1253.94 1037.68 2843.88 +-1280.31 1033.89 2833.49 +-147.697 116.434 319.1 +-1332.75 1026.07 2812.06 +-494.397 371.866 1019.14 +-137.266 100.903 276.535 +-138.969 99.87 273.704 +-142.164 99.9125 273.82 +-144.256 99.1766 271.803 +-147.275 99.0775 271.532 +-150.345 98.998 271.314 +-436.796 281.59 771.725 +-110.462 69.7368 191.121 +-110.294 68.2045 186.921 +-111.091 67.3051 184.456 +-112.8 66.9702 183.539 +-113.79 66.2168 181.474 +-115.42 65.8445 180.453 +-116.935 65.4092 179.26 +-119.285 65.4349 179.331 +-120.731 64.9598 178.029 +-123.851 65.3725 179.16 +-128.657 66.6288 182.603 +-435.444 221.288 606.461 +-417.498 208.225 570.661 +-418.768 205.003 561.83 +-424.494 203.993 559.064 +-424.851 200.442 549.33 +-426.072 197.372 540.919 +-426.867 194.174 532.153 +-428.507 191.421 524.609 +-432.625 189.808 520.188 +-431.029 185.744 509.049 +-2062.09 872.873 2392.2 +-437.749 182.026 498.86 +-439.281 179.449 491.799 +-138.008 55.3881 151.797 +-135.804 53.5505 146.76 +-444.088 172.057 471.54 +-446.243 169.882 465.578 +-447.511 167.403 458.786 +-448.55 164.88 451.87 +-449.496 162.363 444.972 +-450.903 160.051 438.635 +-454.54 158.549 434.521 +-456.65 156.529 428.985 +-457.265 154.028 422.13 +-458.579 151.797 416.016 +-460.178 149.688 410.236 +-2396.28 765.961 2099.19 +-459.471 144.319 395.521 +-2434.91 751.509 2059.59 +-2453.95 744.194 2039.54 +-2472.81 736.828 2019.35 +-2491.47 729.404 1999 +-2509.94 721.921 1978.5 +-2528.23 714.387 1957.85 +-140.819 39.088 107.124 +-142.669 38.8998 106.609 +-142.945 38.2818 104.915 +-143.28 37.6857 103.281 +-142.716 36.8637 101.029 +-142.926 36.2518 99.3518 +-142.953 35.6016 97.5697 +-147.925 36.1679 99.1216 +-495.833 119.008 326.152 +-498.102 117.345 321.596 +-499.578 115.506 316.555 +-501.582 113.799 311.877 +-504.209 112.238 307.6 +-506.035 110.505 302.849 +-2778.8 595.196 1631.19 +-508.941 106.905 292.984 +-528.358 108.821 298.236 +-514.565 103.897 284.739 +-517.537 102.422 280.698 +-520.125 100.87 276.444 +-522.673 99.3103 272.17 +-2879.44 535.902 1468.69 +-527.914 96.2167 263.691 +-530.344 94.6337 259.353 +-381.351 66.6045 182.536 +-380.347 65.0023 178.145 +-381.448 63.7721 174.774 +-380.62 62.2303 170.548 +-381.012 60.901 166.905 +-381.456 59.5881 163.307 +-379.761 57.9569 158.837 +-380.763 56.7506 155.531 +-382.194 55.6095 152.403 +-380.638 54.0444 148.114 +-380.609 52.711 144.46 +-379.238 51.2062 140.336 +-380.621 50.0822 137.255 +-380.851 48.8095 133.767 +-379.918 47.399 129.902 +-381.11 46.2606 126.782 +-381.611 45.0407 123.438 +-380.562 43.6473 119.62 +-382.42 42.5922 116.728 +-381.773 41.2612 113.08 +-381.852 40.0172 109.671 +-380.651 38.6496 105.923 +-380.756 37.4245 102.565 +-381.694 36.2841 99.4401 +-381.444 35.0346 96.0159 +-380.579 33.7377 92.4615 +-381.229 32.5814 89.2926 +-381.072 31.3598 85.9446 +-380.394 30.103 82.5004 +-379.682 28.8528 79.0739 +-381.282 27.7801 76.1341 +-380.211 26.5155 72.6684 +-380.479 25.351 69.477 +-381.11 24.2119 66.3552 +-380.727 23.0115 63.0653 +-381.199 21.8661 59.9262 +-381.346 20.7035 56.7401 +-380.573 19.4962 53.4313 +-381.055 18.3571 50.3093 +-380.12 17.1539 47.0119 +-381.138 16.0412 43.9626 +-380.935 14.8773 40.7727 +-381.001 13.7265 37.6188 +-381.336 12.5863 34.494 +-380.746 11.4182 31.2928 +-381.022 10.2789 28.1704 +-379.773 9.10291 24.9474 +-380.888 7.98538 21.8847 +-380.678 6.83859 18.7418 +-381.237 5.7056 15.6368 +-380.468 4.55421 12.4813 +-146.15 1.31183 3.59521 +-143.578 0.859059 2.35434 +-145.594 0.435527 1.1936 +96.4 3.55271e-15 -1.7053e-13 +96.2963 0.295169 0.786822 +96.3853 0.590928 1.57522 +96.267 0.885417 2.36023 +97.1408 1.19148 3.1761 +96.3082 1.47693 3.937 +97.1667 1.78861 4.76784 +96.2202 2.06707 5.51012 +96.1652 2.36191 6.29607 +96.1028 2.65658 7.08156 +96.8301 2.97553 7.93178 +96.7525 3.27221 8.72264 +96.767 3.57231 9.52259 +95.979 3.84094 10.2387 +96.5747 4.16495 11.1024 +96.4676 4.4608 11.891 +96.3531 4.7563 12.6787 +96.1323 5.04628 13.4517 +95.9045 5.33525 14.222 +95.7683 5.62899 15.005 +96.3142 5.96502 15.9008 +96.1623 6.25999 16.687 +96.0031 6.5545 17.4721 +95.8366 6.84852 18.2559 +95.6628 7.14202 19.0383 +96.3604 7.50337 20.0015 +95.4883 7.74313 20.6406 +96.1674 8.10929 21.6167 +95.9622 8.40377 22.4017 +95.5562 8.67999 23.138 +96.496 9.08163 24.2086 +96.074 9.3583 24.9461 +95.8378 9.65239 25.7301 +96.4573 10.0356 26.7515 +96.2043 10.3308 27.5386 +95.9439 10.6253 28.3236 +96.5322 11.0167 29.3668 +96.2549 11.3121 30.1544 +96.7266 11.6982 31.1836 +96.4322 11.9942 31.9727 +96.1306 12.2894 32.7594 +96.7582 12.7066 33.8715 +97.1857 13.1033 34.9292 +96.8565 13.4007 35.7219 +96.6126 13.7103 36.547 +97.0997 14.1268 37.6574 +96.8371 14.4376 38.4859 +96.4747 14.7339 39.2757 +96.1963 15.0433 40.1006 +95.8189 15.3376 40.885 +96.2499 15.7643 42.0225 +96.6669 16.1948 43.17 +96.2608 16.4905 43.9582 +96.5634 16.9103 45.0772 +96.1396 17.2056 45.8645 +96.5068 17.6456 47.0373 +96.9476 18.1057 48.2637 +96.4941 18.4021 49.0539 +96.7329 18.8334 50.2036 +96.2613 19.1292 50.992 +96.3886 19.5464 52.1043 +95.9855 19.859 52.9374 +96.1742 20.2971 54.1054 +96.3483 20.7379 55.2805 +96.5927 21.2 56.5122 +96.0623 21.4952 57.2992 +96.1955 21.9419 58.4899 +96.3138 22.391 59.687 +96.4171 22.8425 60.8905 +95.8459 23.1371 61.676 +96.0865 23.6315 62.9938 +96.147 24.0883 64.2114 +96.273 24.5679 65.4898 +95.659 24.862 66.274 +95.6765 25.3234 67.5038 +95.7577 25.8081 68.7959 +95.8221 26.2953 70.0945 +95.7912 26.7629 71.3411 +95.8221 27.2544 72.6513 +95.7586 27.7258 73.9079 +95.679 28.1989 75.169 +95.8112 28.742 76.6167 +96.3009 29.4033 78.3794 +96.2408 29.9068 79.7217 +95.4941 30.2007 80.505 +95.4037 30.7058 81.8514 +95.8805 31.4043 83.7133 +95.7494 31.9145 85.0736 +95.6003 32.4264 86.438 +95.3616 32.9151 87.7409 +95.813 33.6532 89.7084 +95.604 34.1711 91.0888 +95.3071 34.6649 92.4052 +95.6813 35.4143 94.4029 +95.4798 35.9633 95.8663 +95.7311 36.6946 97.8157 +95.418 37.2215 99.2201 +95.086 37.7494 100.627 +95.391 38.5432 102.743 +95.0142 39.0743 104.159 +95.1326 39.8217 106.151 +94.712 40.3556 107.575 +95.2791 41.3268 110.163 +94.809 41.8645 111.597 +94.8119 42.6242 113.622 +94.6015 43.3032 115.432 +94.6655 44.1244 117.621 +94.7553 44.9775 119.895 +94.6334 45.7495 121.953 +94.5965 46.5809 124.169 +94.8695 47.5886 126.856 +94.6465 48.3694 128.937 +94.4477 49.1819 131.103 +94.326 50.0554 133.431 +94.0047 50.8436 135.532 +94.3498 52.0185 138.664 +94.0607 52.8716 140.938 +93.893 53.8164 143.457 +93.8914 54.8853 146.306 +94.0469 56.0788 149.487 +93.55 56.9123 151.709 +93.462 58.0225 154.669 +93.9076 59.5048 158.62 +93.7617 60.6547 161.685 +93.5187 61.7769 164.677 +93.6426 63.1829 168.425 +93.7944 64.6567 172.353 +93.3446 65.7589 175.291 +93.3292 67.2106 179.161 +93.507 68.8575 183.551 +93.6099 70.5101 187.957 +95.6697 73.7348 196.553 +115.595 91.1921 243.088 +115.637 93.4109 249.002 +115.227 95.3462 254.161 +115.609 98.0321 261.321 +115.454 100.369 267.551 +112.992 100.752 268.572 +110.091 100.734 268.523 +107.023 100.541 268.009 +104.145 100.502 267.905 +101.377 100.553 268.04 +98.582 100.561 268.061 +95.8577 100.626 268.236 +93.354 100.916 269.008 +91.4747 101.902 271.636 +91.0738 104.63 278.909 +91.2257 108.172 288.351 +91.0155 111.486 297.186 +90.7809 114.976 306.489 +90.509 118.643 316.262 +90.4873 122.895 327.596 +90.2369 127.12 338.861 +87.8922 128.587 342.771 +89.778 136.587 364.094 +89.6493 142.035 378.617 +89.0486 147.148 392.249 +88.8384 153.37 408.833 +88.5926 160.084 426.731 +88.3113 167.36 446.126 +85.5738 170.461 454.392 +87.6733 184.019 490.534 +85.9764 190.664 508.248 +81.7386 192.102 512.079 +76.1834 190.397 507.535 +71.698 191.285 509.902 +66.4188 189.998 506.473 +62.0127 191.172 509.601 +56.8635 190.027 506.549 +52.3797 191.068 509.325 +47.2297 189.612 505.443 +42.823 191.115 509.449 +37.7871 189.802 505.95 +33.2165 190.752 508.483 +28.23 189.199 504.341 +23.6941 190.611 508.106 +18.8073 189.167 504.257 +14.2036 190.517 507.855 +9.40161 189.184 504.3 +4.72629 190.224 507.073 +3.19744e-14 189.212 504.377 +-4.72629 190.224 507.073 +-9.38416 188.832 503.364 +-14.1853 190.271 507.199 +-18.7794 188.886 503.508 +-23.6068 189.91 506.236 +-28.141 188.602 502.751 +-33.0395 189.736 505.773 +-37.4871 188.296 501.934 +-42.5405 189.855 506.09 +-46.9508 188.492 502.458 +-51.9676 189.565 505.317 +-56.2781 188.071 501.335 +-61.4127 189.322 504.67 +-65.7241 188.011 501.175 +-70.9671 189.335 504.704 +-75.1952 187.927 500.952 +-80.4527 189.079 504.022 +-84.6623 187.75 500.479 +-90.05 189.008 503.831 +-94.152 187.548 499.942 +-99.6464 188.841 503.389 +-103.8 187.563 499.981 +-109.274 188.649 502.876 +-113.686 187.86 500.773 +-118.955 188.465 502.385 +-122.508 186.382 496.833 +-127.928 187.161 498.908 +-132.839 187.136 498.843 +-140.413 190.701 508.344 +-144.654 189.618 505.46 +-145.538 184.328 491.356 +-146.97 180.026 479.889 +-157.714 187.011 498.51 +-143.057 164.352 438.107 +-139.437 155.331 414.062 +-141.901 153.395 408.899 +-144.12 151.289 403.286 +-146.375 149.313 398.02 +-146.141 144.952 386.394 +-148.334 143.146 381.579 +-146.597 137.718 367.109 +-145.82 133.426 355.671 +-146.784 130.883 348.89 +-150.929 131.209 349.761 +-1253.94 1063.3 2834.4 +-1280.31 1059.41 2824.04 +-147.896 119.47 318.466 +-1332.75 1051.4 2802.69 +-492.697 379.731 1012.24 +-137.266 103.394 275.614 +-139.399 102.652 273.636 +-142.383 102.536 273.328 +-144.747 101.971 271.82 +-147.729 101.836 271.461 +-150.576 101.597 270.824 +-436.421 288.293 768.492 +-110.51 71.489 190.566 +-110.391 69.9495 186.462 +-111.632 69.3029 184.739 +-112.8 68.6233 182.927 +-114.247 68.1238 181.595 +-115.781 67.6805 180.414 +-117.405 67.2931 179.381 +-119.126 66.9605 178.494 +-120.946 66.6816 177.751 +-124.995 67.6047 180.212 +-435.699 231.21 616.328 +-437.177 227.653 606.846 +-426.334 217.88 580.797 +-419.801 210.581 561.338 +-421.59 207.599 553.39 +-424.087 205.02 546.516 +-426.309 202.357 539.417 +-427.83 199.416 531.576 +-428.142 195.979 522.415 +-432.872 194.604 518.749 +-430.469 190.081 506.694 +-2061.84 894.31 2383.93 +-437.558 186.438 496.982 +-439.731 184.067 490.662 +-441.3 181.484 483.775 +-2149.58 868.547 2315.26 +-135.837 53.9278 143.754 +-137.439 53.6138 142.917 +-448.051 171.742 457.808 +-448.55 168.95 450.364 +-449.289 166.295 443.286 +-452.57 164.608 438.79 +-453.839 162.213 432.405 +-456.296 160.269 427.224 +-458.263 158.175 421.641 +-459.298 155.788 415.279 +-460.903 153.625 409.513 +-474.722 155.488 414.48 +-2415.69 777.492 2072.53 +-2434.91 770.059 2052.72 +-2453.95 762.564 2032.74 +-2472.81 755.016 2012.62 +-2491.47 747.408 1992.34 +-383.175 112.931 301.037 +-2528.23 732.02 1951.32 +-140.819 40.0528 106.767 +-142.669 39.86 106.253 +-143.182 39.2917 104.739 +-142.724 38.4663 102.538 +-142.796 37.795 100.749 +-143.006 37.1677 99.0768 +-143.601 36.6454 97.6846 +-147.843 37.0402 98.737 +-496.816 122.187 325.71 +-498.102 120.242 320.524 +-499.827 118.416 315.657 +-501.916 116.685 311.044 +-503.957 114.951 306.422 +-505.782 113.176 301.689 +-524.433 115.102 306.823 +-506.809 109.085 290.785 +-529.215 111.689 297.725 +-515.857 106.728 284.503 +-518.576 105.161 280.324 +-520.386 103.412 275.661 +-523.46 101.915 271.672 +-2879.44 549.13 1463.8 +-528.444 98.6907 263.077 +-2906.29 531.396 1416.53 +-380.905 68.1688 181.715 +-381.421 66.7951 178.053 +-380.37 65.1615 173.699 +-381.072 63.8419 170.181 +-380.559 62.3298 166.15 +-380.819 60.9571 162.491 +-381.04 59.5877 158.841 +-381.864 58.3193 155.46 +-381.641 56.8996 151.676 +-381.008 55.4321 147.764 +-381.165 54.0911 144.189 +-381.936 52.8435 140.863 +-381.554 51.4442 137.133 +-380.195 49.9282 133.092 +-381.045 48.7129 129.853 +-381.298 47.426 126.422 +-381.422 46.1296 122.966 +-380.183 44.68 119.102 +-380.708 43.4482 115.819 +-380.342 42.1209 112.28 +-380.992 40.9126 109.06 +-380.364 39.5737 105.49 +-380.852 38.3581 102.25 +-380.827 37.0954 98.884 +-379.995 35.7628 95.3317 +-381.45 34.6496 92.3643 +-379.774 33.2582 88.6552 +-381.072 32.1338 85.6582 +-380.492 30.854 82.2465 +-380.755 29.6486 79.0332 +-381.086 28.4512 75.8414 +-381.289 27.247 72.6315 +-380.97 26.0103 69.3348 +-380.028 24.7391 65.9464 +-380.727 23.5795 62.8551 +-381.298 22.4116 59.742 +-381.346 21.2146 56.551 +-381.068 20.0034 53.3224 +-381.055 18.8102 50.1417 +-380.715 17.6048 46.9286 +-380.244 16.3987 43.7134 +-381.234 15.2564 40.6686 +-379.808 14.0212 37.376 +-381.734 12.9104 34.4149 +-379.849 11.6725 31.1151 +-381.022 10.5326 28.0765 +-380.67 9.34966 24.9231 +-380.489 8.17392 21.789 +-381.676 7.02576 18.7283 +-380.438 5.83418 15.552 +-380.568 4.66786 12.443 +-147.05 1.35249 3.60529 +-145.578 0.892522 2.37917 +-145.594 0.446277 1.18963 +95.3 -1.77636e-15 -2.27374e-13 +95.3964 0.29943 0.776799 +96.2853 0.604488 1.5682 +95.2673 0.897257 2.32772 +96.2413 1.20879 3.13591 +96.2083 1.51082 3.91945 +96.3678 1.81649 4.71244 +96.1204 2.1145 5.48554 +96.2649 2.42113 6.28102 +97.0001 2.74575 7.12319 +96.8301 3.04697 7.90462 +96.7525 3.35077 8.69276 +96.6675 3.65433 9.48027 +96.8733 3.9698 10.2987 +96.674 4.26933 11.0757 +96.4676 4.5679 11.8503 +96.5511 4.88052 12.6613 +96.2312 5.17275 13.4195 +96.0033 5.46894 14.1878 +95.7683 5.76413 14.9536 +95.5264 6.05826 15.7167 +96.1623 6.41027 16.6299 +96.1013 6.71873 17.4301 +95.8366 7.01294 18.1934 +95.8585 7.32841 19.0118 +95.4817 7.61345 19.7512 +96.2678 7.99376 20.7379 +95.9729 8.28722 21.4992 +95.8652 8.59682 22.3024 +96.5243 8.97843 23.2924 +96.3994 9.29034 24.1015 +96.2667 9.60218 24.9105 +95.9339 9.89405 25.6677 +96.4573 10.2765 26.6598 +96.2043 10.5789 27.4443 +95.9439 10.8804 28.2266 +96.5322 11.2812 29.2662 +96.2549 11.5837 30.0511 +96.7266 11.9791 31.0768 +96.4322 12.2822 31.8632 +97.0702 12.7074 32.9663 +96.7582 13.0116 33.7554 +97.1857 13.4179 34.8095 +96.8565 13.7225 35.5996 +97.447 14.1607 36.7364 +96.2682 14.3421 37.2071 +96.7451 14.7702 38.3176 +96.4747 15.0876 39.1412 +96.1963 15.4045 39.9632 +96.6379 15.8401 41.0932 +96.2499 16.1428 41.8786 +96.6669 16.5836 43.0221 +96.2608 16.8864 43.8076 +96.5634 17.3163 44.9228 +96.2287 17.635 45.7498 +96.5068 18.0692 46.8762 +96.0647 18.3715 47.6603 +96.4941 18.8439 48.8859 +96.7329 19.2855 50.0316 +96.2613 19.5884 50.8174 +96.3886 20.0157 51.9259 +96.6748 20.4818 53.1349 +96.1742 20.7844 53.9201 +96.3483 21.2358 55.0911 +96.5079 21.6899 56.2692 +96.0623 22.0113 57.103 +96.2794 22.4883 58.3404 +96.3972 22.9484 59.5341 +95.8367 23.2501 60.3168 +96.67 23.8964 61.9933 +96.1684 24.2195 62.8316 +96.147 24.6666 63.9915 +95.6258 24.9886 64.8268 +96.3824 25.6515 66.5466 +95.8363 25.9747 67.3849 +95.7577 26.4277 68.5603 +95.8221 26.9266 69.8544 +95.7912 27.4054 71.0967 +95.7444 27.8861 72.3438 +95.6814 28.3686 73.5954 +95.7556 28.899 74.9715 +95.7351 29.4087 76.2937 +95.6972 29.9204 77.6213 +95.5667 30.4103 78.8921 +96.0886 31.1182 80.7287 +95.9198 31.613 82.0123 +95.8805 32.1582 83.4266 +95.822 32.7055 84.8464 +95.6003 33.2049 86.142 +95.3616 33.7054 87.4403 +95.7423 34.4357 89.3351 +95.604 34.9915 90.7768 +95.3766 35.5231 92.1559 +95.7501 36.2908 94.1477 +95.4798 36.8267 95.538 +95.1907 37.3634 96.9301 +95.418 38.1151 98.8803 +95.086 38.6557 100.283 +95.391 39.4685 102.391 +95.5988 40.2587 104.441 +95.1968 40.805 105.859 +95.2845 41.574 107.854 +94.7127 42.0671 109.133 +94.809 42.8696 111.215 +94.8734 43.6756 113.306 +94.7233 44.4 115.185 +94.6655 45.1837 117.218 +94.6363 45.9998 119.335 +94.5746 46.8187 121.46 +94.5384 47.6701 123.668 +94.8695 48.7311 126.421 +94.7031 49.5605 128.573 +94.3918 50.3331 130.577 +94.326 51.2571 132.974 +94.4949 52.3354 135.771 +94.2961 53.2367 138.11 +94.0607 54.1409 140.455 +93.893 55.1084 142.965 +93.8914 56.2029 145.805 +94.0469 57.4251 148.975 +93.55 58.2786 151.19 +93.9052 59.6971 154.87 +93.8591 60.9017 157.995 +93.7617 62.1109 161.132 +93.5187 63.26 164.113 +93.6426 64.6998 167.848 +93.7944 66.209 171.763 +93.3446 67.3376 174.691 +93.3292 68.8241 178.547 +93.507 70.5106 182.923 +93.2719 71.9421 186.636 +94.7159 74.7522 193.927 +115.595 93.3814 242.255 +115.637 95.6535 248.15 +115.617 97.9661 254.149 +115.877 100.618 261.03 +115.304 102.645 266.289 +112.992 103.171 267.652 +110.091 103.152 267.603 +107.339 103.258 267.878 +104.487 103.253 267.865 +101.644 103.238 267.825 +98.9402 103.349 268.114 +96.1433 103.349 268.113 +93.3231 103.304 267.998 +91.7453 104.657 271.506 +91.3369 107.452 278.757 +91.2825 110.838 287.542 +90.7398 113.817 295.27 +90.7542 117.702 305.349 +90.5349 121.526 315.27 +90.7127 126.158 327.287 +89.9949 129.823 336.795 +89.7131 134.403 348.675 +89.8005 139.901 362.939 +89.5627 145.304 376.956 +89.2149 150.962 391.635 +88.7785 156.946 407.158 +88.7643 164.245 426.093 +88.038 170.847 443.222 +85.2092 173.809 450.906 +88.35 189.892 492.628 +85.5853 194.353 504.202 +80.9109 194.721 505.157 +75.8633 194.149 503.671 +71.1368 194.344 504.177 +66.1872 193.881 502.978 +61.3788 193.76 502.664 +56.4767 193.266 501.381 +51.843 193.651 502.379 +46.9769 193.125 501.016 +42.2345 193.014 500.729 +37.5778 193.283 501.426 +32.8991 193.465 501.899 +28.1044 192.879 500.377 +23.4629 193.283 501.426 +18.7096 192.702 499.919 +14.0413 192.861 500.332 +9.34053 192.466 499.307 +4.6783 192.812 500.205 +3.28626e-14 192.496 499.384 +-4.67568 192.705 499.925 +-9.33529 192.359 499.028 +-14.0335 192.754 500.052 +-18.6538 192.127 498.427 +-23.3713 192.528 499.468 +-27.9736 191.981 498.047 +-32.7098 192.352 499.012 +-37.3546 192.135 498.447 +-42.0384 192.118 498.402 +-46.6109 191.62 497.112 +-51.4117 192.04 498.2 +-56.0691 191.871 497.762 +-60.8354 192.045 498.214 +-65.4073 191.597 497.051 +-70.1839 191.741 497.424 +-74.9169 191.727 497.388 +-79.6249 191.627 497.129 +-84.2087 191.227 496.093 +-89.0102 191.311 496.309 +-93.6485 191.024 495.565 +-98.6259 191.395 496.527 +-103.151 190.866 495.155 +-108.217 191.31 496.308 +-113.042 191.28 496.229 +-117.808 191.129 495.836 +-122.306 190.541 494.313 +-127.368 190.815 495.022 +-132.428 191.036 495.596 +-139.136 193.503 501.997 +-143.955 193.233 501.295 +-146.019 189.377 491.292 +-146.336 183.552 476.182 +-154.504 187.604 486.692 +-143.467 168.779 437.856 +-139.858 159.541 413.89 +-141.839 157.009 407.322 +-143.739 154.511 400.842 +-146.213 152.728 396.215 +-146.207 148.5 385.247 +-147.992 146.244 379.395 +-146.247 140.687 364.978 +-145.82 136.63 354.453 +-146.747 133.992 347.608 +-150.929 134.359 348.563 +-1253.94 1088.83 2824.69 +-1280.31 1084.85 2814.37 +-147.577 122.074 316.691 +-1332.75 1076.64 2793.09 +-490.25 386.92 1003.77 +-137.266 105.876 274.67 +-139.658 105.311 273.205 +-142.646 105.192 272.896 +-144.791 104.451 270.972 +-147.956 104.441 270.947 +-151.176 104.451 270.973 +-436.468 295.245 765.942 +-110.224 73.0158 189.422 +-110.44 71.6602 185.905 +-111.583 70.9354 184.025 +-112.8 70.2707 182.3 +-114.095 69.6661 180.732 +-115.729 69.2745 179.716 +-117.301 68.8475 178.608 +-119.55 68.8123 178.517 +-121.376 68.5253 177.772 +-124.831 69.1371 179.359 +-436.085 236.97 614.762 +-437.624 233.356 605.386 +-437.209 228.802 593.572 +-422.439 216.991 562.931 +-420.371 211.968 549.899 +-423.147 209.476 543.436 +-425.655 206.897 536.744 +-427.409 204.002 529.234 +-427.959 200.598 520.403 +-432.995 199.333 517.12 +-430.344 194.588 504.812 +-452.733 201.085 521.665 +-438.194 191.191 495.999 +-439.731 188.486 488.981 +-441.82 186.059 482.686 +-443.168 183.362 475.689 +-135.638 55.1415 143.051 +-135.566 54.1524 140.485 +-448.119 175.892 456.309 +-449.164 173.243 449.436 +-449.909 170.522 442.377 +-451.736 168.249 436.482 +-454.119 166.209 431.19 +-455.942 163.989 425.43 +-457.978 161.871 419.936 +-459.658 159.653 414.182 +-460.685 157.239 407.918 +-475.16 159.368 413.442 +-460.282 151.699 393.546 +-2434.91 788.547 2045.69 +-2453.95 780.871 2025.78 +-2472.81 773.142 2005.73 +-2491.47 765.351 1985.52 +-2509.94 757.5 1965.15 +-2528.23 749.594 1944.64 +-140.275 40.8558 105.99 +-142.669 40.8169 105.89 +-142.63 40.08 103.978 +-142.486 39.3243 102.017 +-142.796 38.7024 100.404 +-142.443 37.9104 98.3493 +-143.762 37.5673 97.4592 +-148.169 38.0129 98.6153 +-496.816 125.12 324.594 +-499.091 123.373 320.061 +-500.324 121.379 314.889 +-502.249 119.566 310.185 +-504.209 117.77 305.525 +-505.782 115.893 300.656 +-525.027 117.998 306.118 +-507.577 111.873 290.228 +-529.558 114.444 296.897 +-515.857 109.291 283.528 +-518.749 107.722 279.457 +-521.169 106.054 275.131 +-2865.69 571.33 1482.18 +-2879.44 562.313 1458.79 +-528.444 101.06 262.176 +-2906.29 544.154 1411.67 +-379.747 69.5931 180.542 +-379.452 68.0455 176.527 +-380.819 66.8046 173.308 +-381.072 65.3745 169.598 +-379.652 63.6744 165.188 +-381.183 62.4803 162.09 +-381.04 61.0182 158.297 +-379.846 59.404 154.109 +-380.997 58.1675 150.901 +-380.546 56.6939 147.078 +-380.887 55.3491 143.59 +-381.099 53.9935 140.073 +-380.527 52.5375 136.296 +-380.383 51.1521 132.702 +-380.2 49.7716 129.12 +-381.298 48.5646 125.989 +-380.382 47.1083 122.211 +-382.174 45.9926 119.317 +-381.088 44.5356 115.537 +-381.201 43.2296 112.149 +-381.374 41.9369 108.795 +-379.788 40.4623 104.97 +-380.852 39.279 101.9 +-379.67 37.8705 98.2458 +-379.995 36.6214 95.0052 +-380.385 35.3824 91.791 +-380.647 34.1349 88.5548 +-380.78 32.8801 85.2995 +-380.102 31.5624 81.8809 +-381.439 30.4149 78.904 +-379.815 29.037 75.3294 +-380.897 27.8725 72.3083 +-380.871 26.6279 69.0795 +-381.11 25.4052 65.9076 +-381.416 24.1893 62.7532 +-379.523 22.8428 59.2601 +-380.655 21.6845 56.2552 +-380.573 20.4571 53.0708 +-380.362 19.2267 49.8791 +-380.12 17.9993 46.6947 +-381.435 16.845 43.7002 +-380.339 15.5861 40.4342 +-380.703 14.3917 37.3358 +-380.44 13.1755 34.1807 +-381.343 11.9998 31.1305 +-381.022 10.7855 27.9803 +-381.468 9.59419 24.8898 +-380.589 8.37235 21.72 +-381.077 7.18314 18.6349 +-380.338 5.97266 15.4946 +-380.768 4.78244 12.4069 +-147.749 1.39155 3.61004 +-145.778 0.915205 2.37428 +-146.294 0.459189 1.19125 +96.3 0 -1.7053e-13 +96.4963 0.309959 0.782992 +96.2853 0.618611 1.56268 +96.267 0.927856 2.34387 +96.2413 1.23703 3.12488 +96.4082 1.54932 3.91376 +96.168 1.85508 4.68613 +96.1204 2.1639 5.46625 +96.2649 2.47769 6.25892 +96.0031 2.78103 7.02518 +96.8301 3.11816 7.87681 +96.7525 3.42906 8.66218 +96.6675 3.73971 9.44692 +96.8733 4.06255 10.2624 +96.674 4.36908 11.0368 +96.5667 4.67944 11.8208 +96.4521 4.98943 12.6039 +96.1323 5.28816 13.3585 +96.0033 5.59672 14.1379 +95.7683 5.89879 14.901 +96.4127 6.25734 15.8067 +96.2607 6.56678 16.5884 +96.0031 6.86867 17.351 +95.9346 7.18411 18.1479 +95.7607 7.492 18.9256 +95.5794 7.79927 19.7018 +95.3908 8.10599 20.4766 +96.1674 8.49799 21.4669 +95.8652 8.79767 22.2239 +95.653 9.10524 23.0008 +95.5301 9.42167 23.8002 +96.1703 9.81669 24.798 +95.9339 10.1252 25.5774 +96.5531 10.527 26.5925 +96.2043 10.826 27.3477 +96.8023 11.2342 28.3789 +96.5322 11.5447 29.1632 +96.2549 11.8543 29.9454 +96.7266 12.2589 30.9674 +96.5265 12.5814 31.7821 +97.0702 13.0043 32.8504 +96.7582 13.3156 33.6367 +97.2791 13.7446 34.7204 +96.9495 14.0565 35.5084 +96.6126 14.3674 36.2937 +96.2682 14.6772 37.0762 +96.8371 15.1297 38.2192 +96.5664 15.4548 39.0406 +96.1963 15.7644 39.8226 +96.7289 16.2254 40.9872 +96.2499 16.5199 41.7312 +96.6669 16.9711 42.8708 +96.2608 17.2809 43.6535 +96.5634 17.7208 44.7648 +96.2287 18.047 45.5888 +96.5068 18.4914 46.7113 +96.9476 18.9735 47.9291 +96.4941 19.2841 48.7139 +96.8204 19.754 49.9007 +96.2613 20.0461 50.6386 +96.4752 20.5017 51.7897 +96.6748 20.9603 52.948 +96.1742 21.27 53.7304 +97.1157 21.9051 55.3346 +96.5079 22.1966 56.0712 +96.0623 22.5256 56.9021 +96.1955 22.9936 58.0845 +96.3972 23.4846 59.3246 +96.5 23.958 60.5205 +95.9283 24.267 61.3012 +96.1684 24.7853 62.6105 +96.2285 25.2643 63.8204 +95.6258 25.5724 64.5987 +95.659 26.0537 65.8146 +95.8363 26.5815 67.1479 +95.8371 27.0676 68.3757 +95.8221 27.5557 69.6086 +95.7912 28.0457 70.8466 +95.6667 28.5145 72.0307 +96.3759 29.2421 73.8688 +95.8322 29.5978 74.7674 +95.7351 30.0958 76.0253 +95.6972 30.6195 77.3482 +95.5667 31.1208 78.6146 +96.1629 31.8699 80.5069 +95.9198 32.3516 81.7238 +95.8073 32.8844 83.0697 +95.7494 33.4443 84.4839 +95.5283 33.9551 85.7743 +96.0035 34.725 87.7192 +95.1059 35.006 88.4291 +95.604 35.809 90.4575 +95.3071 36.3265 91.7648 +95.1306 36.8983 93.2093 +95.4116 37.6599 95.133 +95.7311 38.4535 97.1377 +95.4849 39.0332 98.6021 +95.086 39.5588 99.9299 +95.391 40.3906 102.031 +95.0142 40.9472 103.437 +95.1968 41.7584 105.486 +95.2845 42.5453 107.474 +94.7757 43.0787 108.822 +94.8712 43.8998 110.896 +94.8119 44.6673 112.835 +94.7233 45.4373 114.78 +94.6655 46.2393 116.806 +94.6363 47.0745 118.915 +94.6922 47.9722 121.183 +94.5384 48.7838 123.233 +94.4107 49.6282 125.366 +94.7031 50.7184 128.12 +94.4477 51.5392 130.194 +94.326 52.4546 132.506 +94.4949 53.5581 135.294 +94.3498 54.5118 137.703 +94.1137 55.4368 140.039 +94.2065 56.5844 142.939 +93.8914 57.516 145.292 +94.0469 58.7667 148.451 +93.95 59.8953 151.302 +93.9052 61.0919 154.325 +93.8591 62.3245 157.439 +93.7617 63.562 160.565 +93.5187 64.738 163.535 +93.6426 66.2114 167.257 +93.749 67.7231 171.076 +93.7015 69.1744 174.742 +93.3292 70.4321 177.919 +93.507 72.158 182.279 +93.2719 73.6229 185.98 +94.6745 76.4652 193.16 +115.595 95.5631 241.403 +115.677 97.9221 247.362 +115.539 100.187 253.084 +115.494 102.629 259.252 +115.304 105.044 265.352 +113.286 105.855 267.402 +110.126 105.596 266.748 +107.304 105.636 266.848 +104.487 105.665 266.922 +101.678 105.685 266.972 +98.9402 105.764 267.17 +96.1433 105.763 267.17 +93.3231 105.718 267.055 +91.6852 107.032 270.374 +91.103 109.681 277.065 +91.2257 113.357 286.352 +90.9603 116.759 294.946 +90.5671 120.203 303.647 +90.5608 124.401 314.25 +90.4873 128.785 325.326 +90.1885 133.142 336.332 +89.7364 137.578 347.538 +89.7555 143.098 361.481 +89.5411 148.663 375.539 +89.0278 154.165 389.439 +88.7785 160.613 405.726 +88.7834 168.118 424.685 +87.9104 174.586 441.023 +85.2092 177.87 449.319 +88.1849 193.965 489.977 +85.5853 198.894 502.428 +80.7335 198.834 502.276 +75.7519 198.393 501.163 +71.0454 198.629 501.758 +66.1507 198.301 500.932 +61.2995 198.031 500.248 +56.5081 197.891 499.895 +51.7567 197.845 499.779 +47.0641 198.004 500.179 +42.2659 197.67 499.337 +37.6197 198.019 500.217 +32.8075 197.434 498.741 +28.1724 197.863 499.823 +23.4236 197.468 498.826 +18.7201 197.315 498.439 +14.0518 197.515 498.944 +9.35624 197.294 498.388 +4.67044 196.986 497.608 +3.28626e-14 197.325 498.464 +-4.67306 197.096 497.887 +-9.34576 197.074 497.83 +-14.0178 197.036 497.735 +-18.6782 196.873 497.324 +-23.3713 197.026 497.711 +-28.0416 196.944 497.502 +-32.6915 196.736 496.977 +-37.3546 196.624 496.694 +-42.0384 196.606 496.649 +-46.698 196.464 496.289 +-51.4117 196.526 496.447 +-56.1004 196.463 496.288 +-60.7222 196.166 495.537 +-65.4926 196.329 495.948 +-70.1448 196.111 495.397 +-74.8334 195.987 495.086 +-79.6249 196.104 495.38 +-84.2712 195.841 494.715 +-89.0597 195.889 494.838 +-93.77 195.74 494.462 +-98.3525 195.323 493.409 +-103.399 195.795 494.6 +-108.217 195.78 494.561 +-113.104 195.857 494.756 +-117.981 195.881 494.818 +-122.396 195.136 492.936 +-127.368 195.273 493.28 +-132.307 195.32 493.401 +-138.911 197.703 499.42 +-144.188 198.067 500.339 +-145.698 193.376 488.488 +-146.501 188.053 475.043 +-154.22 191.634 484.088 +-143.467 172.722 436.315 +-139.407 162.741 411.103 +-141.808 160.642 405.8 +-143.739 158.121 399.432 +-146.506 156.609 395.613 +-146.207 151.969 383.892 +-148.197 149.868 378.584 +-146.212 143.939 363.607 +-145.856 139.856 353.292 +-146.71 137.088 346.299 +-150.817 137.396 347.078 +-1253.94 1114.26 2814.75 +-1280.31 1110.19 2804.47 +-147.936 125.23 316.344 +-1332.75 1101.8 2783.26 +-489.379 395.257 998.462 +-137.055 108.183 273.282 +-139.83 107.905 272.579 +-142.602 107.617 271.852 +-144.791 106.891 270.018 +-148.228 107.078 270.491 +-151.731 107.283 271.01 +-436.045 301.851 762.509 +-110.271 74.754 188.837 +-110.003 73.0447 184.519 +-111.189 72.3362 182.729 +-112.75 71.8809 181.579 +-114.145 71.3254 180.176 +-115.832 70.9563 179.243 +-117.771 70.7384 178.693 +-119.126 70.17 177.257 +-121.376 70.1262 177.147 +-124.886 70.7833 178.806 +-435.589 242.231 611.902 +-437.345 238.656 602.871 +-437.492 234.3 591.867 +-421.177 221.398 559.275 +-420.661 217.07 548.343 +-423.205 214.4 541.599 +-425.715 211.76 534.93 +-427.409 208.768 527.372 +-429.055 205.811 519.9 +-432.995 203.99 515.301 +-430.656 199.278 503.399 +-452.293 205.582 519.324 +-438.003 195.573 494.039 +-440.245 193.115 487.831 +-441.82 190.406 480.987 +-443.168 187.646 474.016 +-135.307 56.2922 142.2 +-135.633 55.4449 140.06 +-448.119 180.002 454.704 +-448.55 177.048 447.242 +-450.322 174.666 441.226 +-451.945 172.259 435.147 +-454.329 170.171 429.872 +-456.579 168.055 424.526 +-458.406 165.808 418.849 +-460.018 163.511 413.047 +-460.685 160.912 406.483 +-2396.28 822.488 2077.7 +-2415.69 814.758 2058.17 +-2434.91 806.97 2038.49 +-2453.95 799.115 2018.65 +-2472.81 791.205 1998.67 +-2491.47 783.233 1978.53 +-383.865 118.557 299.488 +-2528.23 767.107 1937.8 +-140.275 41.8103 105.617 +-142.591 41.7477 105.459 +-142.63 41.0164 103.612 +-142.486 40.243 101.658 +-142.796 39.6066 100.051 +-143.087 38.971 98.445 +-143.843 38.4667 97.1712 +-147.843 38.8156 98.0526 +-496.078 127.854 322.972 +-498.596 126.13 318.619 +-500.324 124.215 313.781 +-501.916 122.278 308.889 +-504.209 120.521 304.45 +-505.951 118.64 299.698 +-525.281 120.814 305.189 +-507.577 114.487 289.207 +-529.815 117.175 295.996 +-515.599 111.788 282.389 +-518.316 110.146 278.242 +-520.56 108.405 273.843 +-523.11 106.729 269.608 +-525.972 105.115 265.531 +-2892.98 566.179 1430.23 +-2906.29 556.867 1406.71 +-380.103 71.2857 180.076 +-380.974 69.9142 176.611 +-380.999 68.3978 172.78 +-381.613 66.9969 169.242 +-379.109 65.0685 164.37 +-380.819 63.8789 161.365 +-381.314 62.4887 157.853 +-380.121 60.8357 153.678 +-381.641 59.6269 150.624 +-380.638 58.0328 146.597 +-381.073 56.6698 143.154 +-381.564 55.3223 139.75 +-379.594 53.6328 135.482 +-380.383 52.3472 132.235 +-381.515 51.1108 129.112 +-380.733 49.6256 125.36 +-381.328 48.3289 122.084 +-381.321 46.9619 118.631 +-380.137 45.4623 114.843 +-382.154 44.3504 112.034 +-380.131 42.7769 108.059 +-379.884 41.4183 104.627 +-380.467 40.1558 101.438 +-381.116 38.9029 98.273 +-380.092 37.4865 94.6951 +-381.16 36.2828 91.6543 +-379.871 34.8612 88.0632 +-380.975 33.6655 85.0428 +-380.686 32.3495 81.7183 +-381.341 31.1175 78.6062 +-379.815 29.7154 75.0644 +-380.799 28.5163 72.0354 +-380.479 27.2219 68.7655 +-381.11 25.9987 65.6757 +-381.121 24.7353 62.484 +-380.509 23.4373 59.2052 +-380.458 22.1796 56.0282 +-381.266 20.9731 52.9803 +-381.451 19.7323 49.8459 +-380.12 18.4198 46.5305 +-380.443 17.1937 43.4331 +-381.234 15.9877 40.3867 +-380.007 14.701 37.1363 +-380.142 13.4728 34.0338 +-381.841 12.2962 31.0615 +-379.925 11.0057 27.8017 +-380.571 9.79523 24.7438 +-380.289 8.56122 21.6266 +-380.478 7.3394 18.5401 +-380.837 6.12023 15.4604 +-380.768 4.89417 12.3632 +-149.549 1.4414 3.64115 +-146.378 0.940441 2.37566 +-146.394 0.470237 1.18787 +96.3 0 -1.7053e-13 +96.2963 0.316353 0.778546 +96.2853 0.632684 1.55704 +96.167 0.947977 2.33297 +96.2413 1.26517 3.11359 +97.1075 1.59606 3.92791 +96.168 1.89728 4.6692 +96.1204 2.21312 5.4465 +96.2649 2.53406 6.23632 +96.2025 2.8502 7.01434 +96.8301 3.18909 7.84836 +96.9516 3.51428 8.64865 +96.6675 3.82478 9.4128 +96.7739 4.15071 10.2149 +96.674 4.46847 10.9969 +96.5667 4.78589 11.7781 +96.4521 5.10293 12.5583 +96.1323 5.40846 13.3102 +96.0033 5.72403 14.0869 +95.6697 6.02677 14.8319 +96.4127 6.39968 15.7496 +96.1623 6.70927 16.5115 +96.0031 7.02492 17.2884 +95.9346 7.34754 18.0823 +95.7607 7.66244 18.8573 +95.5794 7.97669 19.6307 +95.3908 8.29039 20.4027 +96.0701 8.68253 21.3677 +95.8652 8.99781 22.1436 +95.653 9.31237 22.9178 +95.5301 9.636 23.7142 +96.1703 10.04 24.7085 +95.9339 10.3555 25.485 +96.4573 10.7558 26.4701 +96.2043 11.0723 27.2489 +96.0393 11.3992 28.0536 +96.5322 11.8073 29.0579 +96.2549 12.124 29.8372 +96.7266 12.5378 30.8556 +96.4322 12.8551 31.6364 +97.0702 13.3002 32.7317 +96.7582 13.6185 33.5152 +97.2791 14.0573 34.595 +96.8565 14.3625 35.3462 +96.6126 14.6942 36.1626 +97.0997 15.1407 37.2613 +96.8371 15.4738 38.0811 +96.4747 15.7914 38.8626 +96.1963 16.123 39.6788 +95.8189 16.4384 40.455 +96.2499 16.8958 41.5805 +96.6669 17.3571 42.7159 +96.2608 17.674 43.4958 +96.6529 18.1408 44.6445 +96.2287 18.4576 45.4242 +95.7085 18.7556 46.1576 +96.9476 19.4051 47.756 +96.4941 19.7228 48.5379 +96.8204 20.2033 49.7204 +96.2613 20.5021 50.4557 +96.4752 20.9681 51.6026 +95.8993 21.2651 52.3336 +96.1742 21.7539 53.5363 +96.3483 22.2263 54.699 +96.5079 22.7016 55.8687 +96.0623 23.038 56.6965 +96.1955 23.5167 57.8747 +96.3972 24.0188 59.1104 +96.5 24.503 60.3019 +96.7524 25.0323 61.6045 +96.1684 25.3492 62.3844 +96.2285 25.839 63.5899 +95.6258 26.1541 64.3654 +95.659 26.6464 65.5769 +95.8363 27.1862 66.9053 +95.7577 27.6604 68.0723 +95.8221 28.1825 69.3572 +95.8695 28.7071 70.6483 +95.6667 29.1631 71.7705 +95.7586 29.7157 73.1305 +95.8322 30.2712 74.4974 +95.8112 30.8049 75.8109 +95.6972 31.316 77.0688 +95.5667 31.8287 78.3306 +96.1629 32.5949 80.2161 +95.4037 32.9096 80.9905 +95.8073 33.6325 82.7696 +95.6769 34.1792 84.115 +95.5283 34.7275 85.4645 +95.3616 35.2775 86.818 +95.1059 35.8024 88.1097 +95.604 36.6236 90.1307 +95.3071 37.1529 91.4333 +95.0618 37.7102 92.805 +95.4116 38.5166 94.7894 +95.1907 39.1061 96.2402 +95.4849 39.9211 98.246 +95.086 40.4587 99.5689 +95.391 41.3095 101.663 +95.0142 41.8786 103.063 +95.1968 42.7083 105.105 +95.2209 43.4842 107.015 +94.7757 44.0587 108.428 +94.809 44.8691 110.423 +94.8119 45.6834 112.427 +94.7233 46.4709 114.365 +94.6655 47.2912 116.384 +94.101 47.8728 117.815 +94.6922 49.0635 120.745 +94.4804 49.8631 122.713 +94.4107 50.7572 124.913 +94.1934 51.5929 126.97 +94.4477 52.7117 129.724 +94.2156 53.585 131.873 +94.4949 54.7765 134.805 +94.3498 55.7519 137.205 +94.1137 56.6979 139.534 +93.7885 57.6149 141.79 +93.8914 58.8244 144.767 +93.4886 59.7467 147.037 +93.95 61.2578 150.756 +93.5112 62.2196 153.123 +93.8591 63.7423 156.87 +93.714 64.9748 159.903 +93.5187 66.2107 162.945 +93.227 67.4168 165.913 +93.749 69.2637 170.458 +93.3446 70.4785 173.448 +93.3292 72.0343 177.277 +93.1196 73.4935 180.868 +93.2719 75.2978 185.308 +93.3474 77.1085 189.764 +115.595 97.737 240.531 +115.318 99.8391 245.704 +115.539 102.466 252.17 +115.341 104.824 257.973 +115.304 107.433 264.393 +115.411 110.295 271.435 +110.126 107.999 265.785 +110.21 110.966 273.087 +104.487 108.069 265.958 +104.482 111.07 273.343 +98.9402 108.17 266.205 +98.5866 110.918 272.969 +93.3231 108.123 266.091 +92.7978 110.795 272.666 +91.103 112.176 276.065 +90.7997 115.394 283.986 +90.9603 119.415 293.881 +90.5671 122.938 302.551 +90.5608 127.231 313.115 +90.3121 131.46 323.522 +90.1885 136.171 335.117 +89.9232 141.001 347.004 +89.7555 146.353 360.175 +89.5194 152.008 374.092 +89.0278 157.672 388.032 +85.7681 158.697 390.553 +88.7834 171.943 423.151 +87.4548 177.632 437.153 +85.2092 181.916 447.697 +78.9258 177.548 436.947 +85.5853 203.419 500.614 +70.4607 177.481 436.782 +75.7519 202.906 499.353 +61.8825 176.947 435.467 +66.1507 202.813 499.122 +53.5451 176.915 435.388 +56.5081 202.393 498.089 +45.2392 176.865 435.266 +47.0641 202.508 498.373 +36.9464 176.722 434.914 +37.6197 202.523 498.411 +28.6684 176.45 434.244 +28.1724 202.364 498.018 +20.4444 176.273 433.808 +18.7201 201.803 496.638 +12.2639 176.305 433.887 +9.35624 201.783 496.587 +4.08315 176.133 433.464 +3.37508e-14 201.813 496.663 +-4.07966 175.982 433.093 +-9.34576 201.557 496.032 +-12.2246 175.741 432.498 +-18.6782 201.352 495.528 +-20.3921 175.822 432.697 +-28.0416 201.424 495.705 +-28.5402 175.661 432.302 +-37.3546 201.097 494.899 +-36.7032 175.559 432.052 +-46.698 200.933 494.496 +-44.8942 175.516 431.946 +-56.1004 200.933 494.496 +-53.0244 175.194 431.154 +-65.4926 200.795 494.156 +-61.2559 175.155 431.058 +-74.8334 200.446 493.298 +-69.5443 175.173 431.101 +-84.2712 200.296 492.928 +-77.7539 174.912 430.459 +-93.77 200.193 492.676 +-86.0152 174.708 429.956 +-103.399 200.249 492.813 +-94.4605 174.78 430.134 +-113.104 200.312 492.969 +-102.917 174.758 430.079 +-122.396 199.575 491.156 +-111.237 174.421 429.25 +-132.307 199.764 491.619 +-119.732 174.283 428.911 +-144.188 202.573 498.532 +-128.408 174.304 428.963 +-146.501 192.331 473.327 +-138.884 176.502 434.372 +-143.467 176.651 434.739 +-143.467 171.29 421.546 +-141.808 164.297 404.335 +-143.295 161.218 396.759 +-146.506 160.172 394.184 +-142.736 151.736 373.423 +-148.197 153.278 377.217 +-144.531 145.521 358.129 +-145.856 143.038 352.016 +-145.867 139.401 343.066 +-150.817 140.522 345.824 +-147.027 133.622 328.844 +-1280.31 1135.45 2794.34 +-1306.58 1131.2 2783.88 +-1332.75 1126.86 2773.21 +-144.811 119.619 294.383 +-137.055 110.644 272.295 +-143.188 113.01 278.117 +-142.602 110.065 270.87 +-149.03 112.523 276.92 +-148.228 109.514 269.514 +-109.989 79.5381 195.743 +-436.045 308.718 759.755 +-110.653 76.7192 188.806 +-110.003 74.7064 183.853 +-113.356 75.4235 185.617 +-112.75 73.516 180.923 +-116.379 74.3755 183.038 +-115.832 72.5704 178.596 +-120.018 73.7276 181.444 +-119.126 71.7663 176.617 +-126.964 75.0233 184.633 +-124.886 72.3935 178.161 +-438.348 249.311 613.554 +-437.345 244.085 600.693 +-440.437 241.243 593.699 +-421.177 226.434 557.255 +-442.844 233.715 575.173 +-423.205 219.278 539.643 +-445.701 226.746 558.021 +-427.409 213.518 525.467 +-448.109 219.84 541.028 +-432.995 208.63 513.439 +-450.95 213.416 525.217 +-452.293 210.259 517.448 +-452.124 206.47 508.124 +-440.245 197.508 486.069 +-439.222 193.593 476.433 +-443.168 191.915 472.304 +-447.269 190.311 468.356 +-135.633 56.7062 139.554 +-450.956 185.262 455.931 +-448.55 181.075 445.627 +-454.314 180.223 443.529 +-451.945 176.178 433.575 +-456.993 175.063 430.83 +-456.579 171.878 422.992 +-134.804 49.8687 122.727 +-460.018 167.231 411.555 +-467.576 167.035 411.073 +-2396.28 841.198 2070.19 +-2415.69 833.293 2050.74 +-2434.91 825.327 2031.13 +-472.816 157.472 387.54 +-2472.81 809.204 1991.45 +-477.383 153.486 377.73 +-383.865 121.254 298.407 +-142.751 44.2981 109.018 +-140.275 42.7614 105.236 +-143.217 42.8849 105.54 +-142.63 41.9494 103.238 +-142.486 41.1585 101.291 +-142.796 40.5076 99.6894 +-146.784 40.8878 100.625 +-143.843 39.3418 96.8202 +-497.669 133.633 328.871 +-496.078 130.762 321.806 +-501.81 129.831 319.515 +-500.324 127.041 312.648 +-505.418 125.933 309.92 +-504.209 123.263 303.35 +-513.457 123.139 303.045 +-525.281 123.562 304.087 +-514.909 118.783 292.325 +-529.815 119.84 294.927 +-519.476 115.191 283.485 +-518.316 112.652 277.237 +-523.867 111.575 274.587 +-523.11 109.157 268.635 +-529.839 108.296 266.517 +-2892.98 579.059 1425.07 +-380.882 74.6401 183.689 +-380.103 72.9073 179.425 +-379.9 71.3033 175.478 +-380.999 69.9537 172.156 +-381.613 68.521 168.63 +-379.109 66.5488 163.777 +-380.364 65.2541 160.591 +-381.314 63.9102 157.283 +-381.038 62.3698 153.492 +-381.641 60.9834 150.08 +-382.117 59.5833 146.635 +-381.073 57.959 142.637 +-381.564 56.5808 139.245 +-379.594 54.8529 134.993 +-381.132 53.6434 132.016 +-381.515 52.2735 128.645 +-382.524 50.9932 125.494 +-381.328 49.4283 121.643 +-380.467 47.9229 117.938 +-380.137 46.4965 114.428 +-380.819 45.2008 111.239 +-380.131 43.75 107.669 +-380.651 42.446 104.46 +-380.467 41.0693 101.072 +-380.538 39.7272 97.7689 +-380.092 38.3393 94.3531 +-380.192 37.0139 91.0913 +-379.871 35.6542 87.7452 +-380.78 34.4138 84.6924 +-380.686 33.0854 81.4232 +-380.755 31.7765 78.2019 +-379.815 30.3914 74.7933 +-380.995 29.1801 71.8122 +-380.479 27.8411 68.5171 +-378.258 26.3912 64.9489 +-381.121 25.2979 62.2583 +-380.903 23.9953 59.0525 +-380.458 22.6842 55.8259 +-380.573 21.4112 52.6931 +-381.451 20.1812 49.6659 +-381.012 18.8831 46.4712 +-380.443 17.5848 43.2762 +-380.339 16.313 40.1464 +-380.007 15.0354 37.0022 +-380.142 13.7793 33.9109 +-381.841 12.5759 30.9493 +-379.626 11.2472 27.6794 +-380.571 10.0181 24.6545 +-380.289 8.75598 21.5485 +-380.478 7.50636 18.4732 +-380.637 6.25618 15.3965 +-380.768 5.00551 12.3186 +-145.15 1.43084 3.52129 +-146.378 0.961834 2.36708 +-146.594 0.481593 1.1852 +96.5 -3.55271e-15 -1.7053e-13 +96.4963 0.324036 0.777272 +96.4853 0.648048 1.55449 +96.4669 0.97201 2.33158 +97.1408 1.3053 3.13104 +96.4082 1.61968 3.88517 +96.3678 1.94335 4.66156 +97.2183 2.28801 5.4883 +96.3647 2.5929 6.21965 +96.3022 2.91638 6.99559 +97.0294 3.26647 7.83535 +96.1553 3.56265 8.54582 +96.0708 3.88538 9.31994 +96.8733 4.24704 10.1875 +95.9792 4.53467 10.8774 +96.6659 4.89695 11.7464 +96.5511 5.22137 12.5246 +96.3301 5.53967 13.2881 +96.2008 5.86293 14.0635 +95.867 6.17303 14.8074 +96.5112 6.54816 15.7072 +96.359 6.872 16.484 +96.1995 7.1953 17.2595 +95.9346 7.51037 18.0153 +95.8585 7.84021 18.8065 +95.677 8.16182 19.5779 +96.4626 8.56935 20.5555 +96.3619 8.90188 21.3531 +96.0593 9.21583 22.1062 +95.9434 9.54768 22.9022 +96.5926 9.95909 23.8891 +96.2667 10.2728 24.6415 +96.03 10.5957 25.416 +96.649 11.016 26.4244 +96.2999 11.3289 27.1749 +96.0393 11.6519 27.9496 +96.6273 12.0809 28.9787 +96.4445 12.4171 29.7853 +96.9157 12.8407 30.8013 +96.5265 13.1528 31.5499 +96.2245 13.4765 32.3263 +96.7582 13.9203 33.391 +96.5322 14.2585 34.2021 +96.9495 14.6949 35.249 +96.6126 15.0199 36.0285 +97.1921 15.491 37.1586 +96.1007 15.6965 37.6515 +96.5664 16.1567 38.7554 +96.2877 16.4959 39.5692 +96.8199 16.9782 40.7261 +96.5218 17.3189 41.5433 +96.0351 17.6258 42.2795 +96.4406 18.0994 43.4155 +95.937 18.4054 44.1495 +96.3178 18.8841 45.2977 +96.6842 19.3667 46.4554 +96.9476 19.8352 47.579 +96.4941 20.1599 48.358 +96.8204 20.6511 49.5362 +96.3484 20.9754 50.3142 +96.6484 21.4713 51.5036 +96.0717 21.7755 52.2333 +96.2599 22.2558 53.3855 +96.4336 22.739 54.5446 +96.5927 23.2251 55.7105 +96.1466 23.5692 56.536 +96.2794 24.0588 57.7105 +96.4806 24.5723 58.9422 +96.6658 25.089 60.1816 +96.0931 25.4127 60.958 +96.2504 25.933 62.2061 +96.3099 26.434 63.4078 +96.3539 26.9373 64.6151 +95.7394 27.2598 65.3888 +95.8363 27.7887 66.6573 +96.3924 28.4608 68.2695 +95.8221 28.8071 69.1002 +95.9478 29.3673 70.444 +95.8998 29.8821 71.6788 +95.9901 30.4477 73.0356 +95.7556 30.9173 74.162 +95.8112 31.4876 75.5299 +95.7726 32.0353 76.8437 +95.6416 32.5596 78.1015 +96.2373 33.343 79.9805 +95.4774 33.6648 80.7526 +95.9536 34.4303 82.5888 +95.822 34.9896 83.9302 +95.6003 35.5238 85.2118 +95.4329 36.0863 86.5609 +95.2473 36.6502 87.9137 +95.6741 37.4626 89.8625 +95.4461 38.0316 91.2272 +95.1306 38.574 92.5284 +95.548 39.4267 94.5738 +95.2582 40.0012 95.9518 +95.5519 40.8343 97.9501 +95.1522 41.3842 99.2691 +95.4566 42.2538 101.355 +95.0142 42.8067 102.681 +95.3254 43.7137 104.857 +94.7757 44.2401 106.12 +94.8386 45.0651 108.099 +94.809 45.8635 110.014 +94.7503 46.6654 111.937 +94.6624 47.47 113.867 +94.7859 48.4008 116.1 +94.6958 49.2431 118.121 +94.6334 50.1197 120.223 +94.4804 50.9681 122.258 +94.4107 51.882 124.45 +94.6465 52.9898 127.108 +94.0003 53.6247 128.631 +94.2708 54.8049 131.462 +94.1681 55.7968 133.841 +93.8125 56.6626 135.918 +94.0607 57.922 138.939 +93.7885 58.8917 141.265 +93.9944 60.1938 144.388 +94.0469 61.4356 147.367 +93.6 62.3821 149.637 +93.5112 63.5985 152.555 +93.4713 64.886 155.643 +93.8094 66.4821 159.472 +93.6126 67.7461 162.504 +93.6888 69.2522 166.117 +93.4312 70.5585 169.25 +93.3892 72.075 172.888 +93.2854 73.5961 176.537 +93.2057 75.1918 180.364 +92.9338 76.6875 183.952 +93.3889 78.8523 189.145 +92.2885 79.7604 191.323 +115.358 102.087 244.878 +115.383 104.596 250.896 +115.532 107.325 257.443 +115.266 109.778 263.328 +115.411 112.739 270.429 +113.28 113.553 272.383 +110.595 113.821 273.026 +107.702 113.863 273.125 +104.515 113.567 272.416 +101.675 113.623 272.549 +98.8721 113.705 272.746 +95.7644 113.41 272.039 +93.0985 113.617 272.536 +91.1615 114.735 275.218 +91.0553 118.284 283.73 +90.9603 122.062 292.792 +90.6473 125.774 301.696 +90.4573 129.902 311.598 +90.4623 134.596 322.859 +89.9466 138.815 332.979 +89.9465 144.163 345.807 +89.508 149.184 357.851 +89.5627 155.452 372.885 +88.0922 159.473 382.531 +85.2896 161.309 386.934 +88.3446 174.884 419.499 +86.8535 180.32 432.537 +82.726 180.529 433.038 +78.2161 179.851 431.413 +74.2751 180.449 432.847 +69.9139 180.007 431.786 +65.9541 180.577 433.155 +61.3995 179.457 430.467 +57.437 180 431.769 +53.1489 179.498 430.565 +49.1702 180.014 431.803 +44.9133 179.483 430.529 +40.9196 179.971 431.701 +36.6404 179.143 429.714 +32.7018 179.95 431.65 +28.4608 179.054 429.502 +24.4932 179.835 431.374 +20.3135 179.026 429.434 +16.2841 179.434 430.412 +12.1592 178.674 428.589 +8.1241 179.092 429.593 +4.05697 178.882 429.088 +3.19744e-14 179.12 429.658 +-4.04911 178.536 428.257 +-8.11362 178.862 429.039 +-12.154 178.597 428.404 +-16.2701 179.28 430.042 +-20.2394 178.372 427.866 +-24.3467 178.759 428.793 +-28.3265 178.21 427.476 +-32.4995 178.837 428.98 +-36.405 177.992 426.954 +-40.6059 178.591 428.391 +-44.5874 178.18 427.404 +-48.6998 178.292 427.672 +-52.6961 177.968 426.897 +-56.9252 178.396 427.921 +-60.8513 177.855 426.624 +-65.0913 178.215 427.488 +-68.9974 177.647 426.126 +-73.3521 178.207 427.468 +-77.2423 177.612 426.042 +-81.5799 178.028 427.04 +-85.4502 177.407 425.549 +-89.9283 178.02 427.02 +-93.7827 177.372 425.465 +-98.1551 177.689 426.228 +-102.181 177.353 425.421 +-106.649 177.753 426.381 +-110.466 177.051 424.697 +-115.034 177.533 425.852 +-118.931 176.953 424.462 +-123.612 177.514 425.806 +-127.633 177.092 424.794 +-132.389 177.655 426.145 +-138.003 179.27 430.019 +-139.432 175.488 420.947 +-143.136 174.683 419.015 +-143.538 169.987 407.752 +-143.358 164.864 395.464 +-142.957 159.756 383.21 +-143.036 155.425 372.822 +-144.161 152.408 365.583 +-144.531 148.746 356.801 +-144.816 145.166 348.213 +-146.014 142.633 342.137 +-145.685 138.748 332.819 +-146.491 136.085 326.431 +-151.643 137.465 329.741 +-1306.58 1156.27 2773.56 +-1332.67 1151.76 2762.76 +-144.686 122.165 293.04 +-144.789 119.478 286.594 +-143.532 115.792 277.752 +-145.539 114.821 275.424 +-149.387 115.292 276.554 +-437.556 330.439 792.632 +-111.051 82.0857 196.901 +-110.326 79.8412 191.517 +-111.273 78.8588 189.16 +-112.185 77.8765 186.804 +-113.356 77.095 184.929 +-114.75 76.4782 183.45 +-116.277 75.9571 182.2 +-118.304 75.7617 181.731 +-120.384 75.5912 181.322 +-122.623 75.5104 181.128 +-127.394 76.9457 184.571 +-437.018 258.944 621.135 +-438.514 254.932 611.511 +-439.637 250.802 601.604 +-440.721 246.748 591.879 +-441.769 242.768 582.333 +-442.96 238.957 573.192 +-444.601 235.468 564.823 +-445.998 231.925 556.324 +-447.149 228.329 547.698 +-448.596 224.957 539.609 +-449.925 221.592 531.538 +-451.634 218.477 524.065 +-452.985 215.248 516.319 +-453.969 211.907 508.306 +-442.174 202.77 486.388 +-439.417 197.971 474.877 +-441.921 195.616 469.229 +-445.745 193.866 465.031 +-449.054 191.904 460.324 +-450.484 189.169 453.765 +-453.665 187.199 449.038 +-455.209 184.58 442.756 +-456.321 181.826 436.151 +-457.764 179.244 429.957 +-459.832 176.939 424.427 +-133.663 50.5422 121.237 +-134.588 50.0115 119.964 +-466.053 170.18 408.215 +-472.089 169.396 406.334 +-2415.69 851.759 2043.13 +-469.965 162.827 390.577 +-2453.95 835.406 2003.91 +-474.863 158.838 381.009 +-478.447 157.238 377.17 +-140.416 45.3371 108.751 +-143.522 45.5249 109.202 +-142.839 44.5083 106.763 +-143.53 43.9311 105.378 +-143.103 43.0211 103.196 +-142.566 42.0937 100.971 +-142.397 41.2895 99.042 +-146.302 41.6566 99.9226 +-147.403 41.2087 98.8482 +-498.32 136.773 328.08 +-499.437 134.565 322.784 +-501.975 132.752 318.435 +-503.475 130.674 313.45 +-506.085 128.893 309.18 +-508.989 127.189 305.091 +-511.854 125.475 300.98 +-518.751 124.73 299.194 +-515.08 121.455 291.338 +-517.386 119.622 286.941 +-519.821 117.822 282.622 +-522.473 116.072 278.424 +-525.086 114.313 274.205 +-527.92 112.601 270.1 +-530.19 110.769 265.705 +-381.168 77.9858 187.066 +-381.06 76.3296 183.094 +-380.816 74.6631 179.096 +-379.273 72.7634 174.539 +-380.639 71.4362 171.356 +-382.064 70.1222 168.204 +-379.743 68.1374 163.443 +-381.365 66.8757 160.416 +-381.131 65.2954 156.626 +-380.855 63.7212 152.849 +-379.708 62.0193 148.767 +-380.823 60.6975 145.597 +-380.98 59.2292 142.074 +-381.75 57.8628 138.797 +-380.994 56.2755 134.989 +-380.945 54.8052 131.463 +-381.609 53.445 128.2 +-380.827 51.892 124.474 +-381.611 50.561 121.282 +-381.036 49.058 117.677 +-381.279 47.6697 114.346 +-380.152 46.1213 110.632 +-380.322 44.7418 107.323 +-380.46 43.3647 104.02 +-380.66 42.0006 100.748 +-381.019 40.6592 97.5302 +-381.541 39.3386 94.3624 +-379.32 37.7475 90.5457 +-380.647 36.5189 87.5986 +-381.558 35.2483 84.5509 +-381.076 33.8532 81.2044 +-382.22 32.6056 78.2118 +-381.38 31.1929 74.8231 +-380.505 29.7884 71.454 +-381.166 28.5095 68.3864 +-380.323 27.1233 65.0614 +-380.727 25.8319 61.9635 +-380.608 24.508 58.7879 +-380.951 23.217 55.6911 +-381.068 21.9142 52.566 +-381.055 20.607 49.4304 +-381.111 19.3066 46.3111 +-380.741 17.9886 43.1496 +-380.637 16.6876 40.029 +-381.001 15.4089 36.9616 +-381.336 14.1289 33.8913 +-380.646 12.8144 30.7381 +-380.424 11.5206 27.6347 +-380.67 10.2428 24.5695 +-380.988 8.96645 21.508 +-381.576 7.69488 18.4579 +-380.438 6.39148 15.3314 +-3274.5 44 105.544 +-145.95 1.4706 3.52757 +-146.778 0.985836 2.36475 +-146.694 0.4926 1.18161 +96.5 -3.55271e-15 -1.7053e-13 +95.5964 0.327947 0.767095 +96.4853 0.662045 1.54858 +96.267 0.990945 2.3179 +96.4412 1.32389 3.09668 +96.4082 1.65467 3.8704 +96.3678 1.98533 4.64384 +96.32 2.31583 5.41691 +96.2649 2.64616 6.18958 +96.3022 2.97937 6.96899 +97.0294 3.33702 7.80557 +96.9516 3.66975 8.58384 +96.9659 4.00629 9.37104 +96.8733 4.33878 10.1487 +96.8725 4.6757 10.9368 +96.6659 5.00272 11.7018 +96.5511 5.33415 12.477 +96.3301 5.65932 13.2376 +96.2008 5.98956 14.0101 +95.7683 6.29988 14.7359 +95.6248 6.62816 15.5038 +96.2607 7.01328 16.4046 +96.1013 7.34321 17.1764 +96.0326 7.68045 17.9652 +95.8585 8.00955 18.735 +95.677 8.33811 19.5035 +96.4626 8.75444 20.4773 +96.2646 9.085 21.2505 +96.0593 9.41489 22.0222 +95.8466 9.74403 22.7921 +95.6267 10.0725 23.5603 +96.2667 10.4947 24.5479 +96.03 10.8245 25.3194 +96.5531 11.2428 26.2978 +96.2999 11.5736 27.0716 +96.0393 11.9035 27.8433 +96.6273 12.3418 28.8686 +96.3497 12.6729 29.6429 +96.0647 13.0029 30.4148 +96.5265 13.4369 31.43 +97.2582 13.9154 32.5493 +96.7582 14.221 33.264 +96.5322 14.5664 34.0721 +96.9495 15.0123 35.115 +96.6126 15.3443 35.8916 +97.1921 15.8256 37.0173 +96.1007 16.0355 37.5083 +96.5664 16.5056 38.608 +97.2012 17.0122 39.7928 +95.9099 17.1819 40.1899 +97.2468 17.8259 41.6963 +96.8474 18.1588 42.475 +96.3507 18.4732 43.2102 +96.7424 18.9608 44.3509 +96.3178 19.292 45.1255 +96.5955 19.7669 46.2363 +96.2413 20.1159 47.0528 +96.582 20.6141 48.2181 +96.1207 20.9447 48.9913 +97.0447 21.5833 50.4851 +95.7824 21.7385 50.8481 +96.6748 22.3855 52.3614 +96.1742 22.7163 53.1351 +96.4336 23.2302 54.3372 +96.6775 23.7476 55.5474 +96.8213 24.2473 56.7163 +96.2794 24.5785 57.4911 +96.4806 25.1031 58.7181 +96.6658 25.6309 59.9528 +96.0931 25.9616 60.7262 +96.2504 26.4931 61.9696 +96.2285 26.9821 63.1133 +96.3539 27.5191 64.3694 +96.4628 28.059 65.6324 +95.7564 28.3652 66.3486 +96.4718 29.0995 68.066 +95.8221 29.4293 68.8375 +95.8695 29.9771 70.1189 +95.8998 30.5275 71.4063 +95.9129 31.0803 72.6994 +95.8322 31.6103 73.9391 +95.8872 32.1932 75.3024 +95.7726 32.7272 76.5516 +95.7165 33.2889 77.8654 +95.6427 33.8527 79.1843 +96.0672 34.6045 80.9426 +96.0267 35.2008 82.3375 +95.822 35.7453 83.6112 +95.6003 36.2911 84.8879 +95.4329 36.8657 86.2318 +95.8837 37.692 88.1646 +95.7442 38.2998 89.5864 +95.4461 38.8531 90.8804 +95.1994 39.4355 92.2428 +95.548 40.2783 94.2142 +95.2582 40.8652 95.587 +95.5519 41.7163 97.5778 +95.1522 42.278 98.8917 +95.391 43.137 100.901 +94.9493 43.7014 102.221 +95.3254 44.6579 104.458 +94.9029 45.2562 105.858 +94.7757 46.0078 107.616 +94.8712 46.8848 109.667 +94.7503 47.6733 111.512 +94.7233 48.5268 113.508 +94.6655 49.3833 115.512 +94.5768 50.2434 117.523 +94.6334 51.2022 119.766 +94.5384 52.1008 121.868 +94.4107 53.0026 123.977 +94.25 53.9079 126.095 +94.5036 55.0762 128.828 +94.2708 55.9886 130.962 +94.0592 56.936 133.178 +94.3498 58.2183 136.177 +94.0607 59.1731 138.411 +94.1542 60.3984 141.277 +93.9944 61.494 143.839 +94.0469 62.7625 146.807 +94.05 64.0358 149.785 +93.5605 65.0064 152.055 +93.4713 66.2875 155.052 +93.714 67.8493 158.705 +93.6126 69.2094 161.886 +93.3194 70.4693 164.833 +93.4312 72.0826 168.607 +93.3892 73.6318 172.231 +93.3292 75.2211 175.948 +93.2057 76.8159 179.679 +92.976 78.3797 183.336 +93.0572 80.2693 187.756 +92.4106 81.5913 190.849 +115.039 104.004 243.273 +115.344 106.819 249.857 +115.149 109.28 255.615 +115.229 112.113 262.242 +115.411 115.174 269.401 +113.638 116.373 272.206 +110.911 116.611 272.763 +107.668 116.285 272 +104.815 116.354 272.16 +101.675 116.077 271.513 +99.0942 116.421 272.319 +95.9807 116.121 271.617 +93.3692 116.409 272.289 +91.103 117.138 273.996 +90.7997 120.499 281.857 +90.9603 124.698 291.679 +90.674 128.528 300.638 +90.509 132.783 310.591 +90.1869 137.085 320.653 +89.8982 141.737 331.535 +89.7131 146.895 343.599 +89.6655 152.674 357.117 +89.5627 158.809 371.468 +87.51 161.841 378.558 +84.9906 164.215 384.112 +88.3636 178.701 417.995 +85.9605 182.321 426.463 +82.1703 183.189 428.495 +77.6384 182.379 426.599 +73.8996 183.415 429.022 +69.3078 182.301 426.416 +65.3418 182.765 427.502 +60.9296 181.93 425.548 +57.108 182.834 427.664 +52.6621 181.695 425 +48.8252 182.612 427.143 +44.5299 181.794 425.231 +40.6059 182.449 426.763 +36.3736 181.68 424.964 +32.4716 182.543 426.982 +28.2288 181.431 424.382 +24.2734 182.07 425.877 +20.1303 181.244 423.943 +16.155 181.856 425.375 +12.0571 181 423.374 +8.06999 181.742 425.11 +4.02031 181.095 423.595 +3.28626e-14 181.691 424.991 +-4.01246 180.741 422.767 +-8.07174 181.782 425.202 +-12.0283 180.568 422.364 +-16.1096 181.345 424.181 +-20.0562 180.576 422.381 +-24.2054 181.56 424.684 +-28.0701 180.411 421.995 +-32.2624 181.366 424.23 +-36.1461 180.543 422.306 +-40.3618 181.352 424.198 +-44.2136 180.503 422.21 +-48.4385 181.165 423.759 +-52.2546 180.289 421.711 +-56.5839 181.156 423.739 +-60.2509 179.903 420.808 +-64.5763 180.624 422.493 +-68.3619 179.812 420.596 +-72.7264 180.503 422.21 +-76.4335 179.549 419.979 +-80.9548 180.479 422.156 +-84.5573 179.345 419.501 +-89.1269 180.244 421.605 +-92.6862 179.084 418.892 +-97.4898 180.297 421.729 +-101.034 179.15 419.046 +-105.952 180.405 421.982 +-109.673 179.576 420.043 +-114.26 180.147 421.378 +-118.004 179.367 419.555 +-122.784 180.133 421.345 +-126.297 179.023 418.749 +-131.424 180.17 421.432 +-135.845 180.277 421.683 +-139.491 179.354 419.522 +-141.963 176.994 414.003 +-143.384 173.472 405.764 +-143.358 168.425 393.96 +-142.957 163.207 381.753 +-142.736 158.449 370.625 +-143.614 155.109 362.812 +-144.531 151.959 355.445 +-144.243 147.714 345.515 +-145.831 145.531 340.409 +-145.984 142.037 332.236 +-145.688 138.262 323.406 +-150.158 139.06 325.271 +-1306.42 1181.1 2762.68 +-484.342 427.635 1000.27 +-145.267 125.305 293.097 +-144.493 121.809 284.921 +-143.532 118.293 276.696 +-145.846 117.549 274.956 +-149.164 117.607 275.092 +-437.919 337.857 790.274 +-110.773 83.6496 195.663 +-110.42 81.6349 190.951 +-110.844 80.2512 187.714 +-112.185 79.5586 186.094 +-113.799 79.068 184.946 +-115.25 78.4705 183.549 +-116.835 77.9704 182.379 +-118.716 77.6677 181.671 +-120.906 77.5593 181.417 +-123.1 77.4417 181.142 +-127.555 78.7071 184.102 +-437.672 264.933 619.699 +-438.514 260.438 609.186 +-439.246 255.991 598.784 +-441.117 252.304 590.159 +-442.285 248.302 580.797 +-443.251 244.279 571.387 +-444.601 240.554 562.676 +-446.355 237.124 554.652 +-447.329 233.355 545.836 +-448.779 229.909 537.776 +-450.726 226.781 530.46 +-452.257 223.504 522.793 +-453.174 219.988 514.571 +-455.178 217.061 507.722 +-453.551 212.479 497.006 +-444.352 204.519 478.386 +-441.068 199.456 466.544 +-443.16 196.905 460.577 +-448.251 195.699 457.755 +-450.619 193.313 452.175 +-453.393 191.127 447.062 +-455.484 188.681 441.339 +-456.529 185.839 434.691 +-458.745 183.508 429.241 +-459.761 180.733 422.748 +-462.329 178.597 417.753 +-135.308 51.3646 120.146 +-2376.69 886.596 2073.82 +-477.428 175.012 409.368 +-470.973 169.649 396.824 +-2434.91 861.839 2015.91 +-2453.95 853.45 1996.29 +-475.543 162.501 380.104 +-478.447 160.634 375.736 +-142.484 46.9984 109.933 +-142.751 46.2578 108.201 +-142.762 45.4449 106.299 +-143.374 44.8312 104.864 +-143.103 43.9503 102.803 +-142.486 42.9793 100.532 +-142.716 42.2757 98.8862 +-147.669 42.9538 100.472 +-148.455 42.3995 99.1758 +-498.564 139.795 326.993 +-500.42 137.742 322.189 +-501.728 135.552 317.068 +-504.221 133.694 312.721 +-506.335 131.742 308.156 +-509.492 130.065 304.232 +-510.842 127.932 299.242 +-522.652 128.383 300.297 +-515.762 124.243 290.615 +-517.9 122.328 286.134 +-520.596 120.546 281.968 +-523.253 118.756 277.78 +-525.086 116.782 273.163 +-527.92 115.034 269.073 +-530.542 113.237 264.871 +-380.021 79.4304 185.794 +-383.1 78.3958 183.374 +-380.014 76.115 178.039 +-381.153 74.7034 174.737 +-380.37 72.9277 170.584 +-381.162 71.4678 167.169 +-380.287 69.709 163.055 +-381.001 68.2549 159.654 +-380.309 66.5615 155.693 +-381.772 65.2544 152.635 +-379.984 63.4049 148.309 +-381.377 62.099 145.255 +-381.351 60.5675 141.672 +-381.378 59.0552 138.135 +-381.274 57.5331 134.575 +-381.319 56.044 131.092 +-381.609 54.5994 127.712 +-382.618 53.2621 124.584 +-380.855 51.5509 120.582 +-381.036 50.1176 117.229 +-381.659 48.7481 114.026 +-381.01 47.224 110.461 +-380.322 45.7082 106.915 +-380.939 44.3571 103.755 +-380.083 42.8429 100.213 +-380.152 41.4431 96.9387 +-380.671 40.0967 93.7894 +-381.644 38.799 90.754 +-381.229 37.3647 87.399 +-380.586 35.9178 84.0147 +-379.225 34.4164 80.5027 +-380.755 33.1822 77.6159 +-380.695 31.8094 74.4048 +-381.779 30.5336 71.4206 +-379.693 29.0128 67.8633 +-380.618 27.7307 64.8643 +-380.333 26.3625 61.664 +-381.199 25.0763 58.6554 +-380.161 23.6692 55.3643 +-381.463 22.4107 52.4205 +-381.55 21.0794 49.3065 +-381.111 19.7236 46.135 +-381.237 18.4011 43.0416 +-380.637 17.0481 39.8769 +-381.896 15.7786 36.9075 +-381.336 14.4341 33.7625 +-380.148 13.074 30.5811 +-381.321 11.7972 27.5946 +-381.568 10.4887 24.5339 +-380.489 9.14813 21.3982 +-379.879 7.82609 18.3059 +-380.837 6.53637 15.2891 +-3274.5 44.9503 105.142 +-146.55 1.50854 3.5286 +-146.778 1.00713 2.35576 +-146.694 0.50324 1.17712 +95.6 3.55271e-15 1.13687e-13 +96.2963 0.337305 0.769701 +96.4853 0.675986 1.54254 +96.4669 1.01391 2.31367 +96.4412 1.35176 3.08461 +96.4082 1.68951 3.85532 +96.3678 2.02713 4.62574 +96.32 2.36459 5.3958 +96.2649 2.70188 6.16546 +96.3022 3.04211 6.94184 +96.2324 3.3793 7.71128 +97.0511 3.75087 8.55916 +96.0708 4.05288 9.24833 +96.8733 4.43014 10.1092 +96.7732 4.7693 10.8831 +96.6659 5.10807 11.6562 +96.5511 5.44647 12.4284 +96.3301 5.77849 13.186 +96.0033 6.10312 13.9268 +95.867 6.43916 14.6936 +95.6248 6.76773 15.4434 +96.2607 7.16096 16.3407 +95.2178 7.42892 16.9522 +96.0326 7.84218 17.8952 +95.7607 8.1699 18.643 +95.677 8.51369 19.4275 +95.5857 8.85751 20.2121 +96.2646 9.2763 21.1677 +96.1563 9.62286 21.9585 +95.8466 9.94922 22.7033 +95.6267 10.2846 23.4685 +96.2667 10.7156 24.4522 +96.03 11.0524 25.2207 +95.6902 11.377 25.9613 +96.3955 11.8291 26.9929 +96.0393 12.1542 27.7348 +96.6273 12.6017 28.7561 +96.3497 12.9397 29.5274 +96.0647 13.2767 30.2963 +96.5265 13.7198 31.3075 +97.2582 14.2084 32.4225 +96.8519 14.5345 33.1665 +96.5322 14.8732 33.9393 +96.9495 15.3284 34.9781 +96.6126 15.6674 35.7517 +96.3606 16.0206 36.5576 +96.9292 16.5143 37.6843 +96.5664 16.8532 38.4576 +96.2877 17.2071 39.2652 +95.9099 17.5437 40.0333 +96.4311 18.0486 41.1855 +96.8474 18.5412 42.3095 +96.4406 18.8797 43.0819 +96.7424 19.3601 44.1781 +96.3178 19.6982 44.9497 +96.7729 20.2202 46.1407 +96.2413 20.5395 46.8694 +96.582 21.0482 48.0302 +96.8204 21.5414 49.1555 +96.3484 21.8797 49.9276 +96.6484 22.3969 51.1079 +96.761 22.8772 52.2039 +96.2599 23.2153 52.9753 +96.4336 23.7193 54.1255 +96.6775 24.2476 55.331 +96.0623 24.5637 56.0524 +96.2794 25.096 57.267 +96.4806 25.6317 58.4893 +96.6658 26.1707 59.7192 +96.0931 26.5083 60.4896 +96.2504 27.051 61.7281 +96.3099 27.5736 62.9206 +96.3539 28.0986 64.1186 +95.7394 28.435 64.8863 +96.3953 29.1558 66.531 +95.9164 29.5412 67.4105 +95.8221 30.049 68.5692 +95.8695 30.6083 69.8456 +96.5992 31.3977 71.6468 +95.8358 31.7093 72.3579 +95.7556 32.2502 73.5922 +95.8112 32.845 74.9496 +95.7726 33.4163 76.2533 +95.6416 33.9633 77.5014 +95.5684 34.5387 78.8144 +95.4774 35.1162 80.1321 +96.0267 35.942 82.0166 +95.7494 36.4704 83.2223 +96.2477 37.3063 85.1297 +96.0748 37.8952 86.4736 +95.9544 38.5141 87.8858 +95.6741 39.0777 89.172 +95.4461 39.6712 90.5263 +95.1306 40.237 91.8174 +95.548 41.1265 93.8471 +95.2582 41.7257 95.2146 +94.9496 42.3262 96.5848 +95.1522 43.1683 98.5064 +94.8661 43.8029 99.9544 +95.0142 44.6522 101.892 +95.2611 45.5677 103.982 +94.8393 46.1782 105.375 +94.7757 46.9766 107.197 +94.8712 47.872 109.24 +94.7503 48.6772 111.077 +94.7233 49.5486 113.066 +94.7257 50.4553 115.135 +94.0415 51.0112 116.403 +94.5746 52.2479 119.225 +94.3642 53.1 121.17 +94.9269 54.4149 124.17 +94.25 55.0431 125.604 +94.5036 56.236 128.326 +94.2708 57.1676 130.452 +94.1681 58.2023 132.813 +94.3498 59.4442 135.647 +94.1137 60.4529 137.948 +93.893 61.4989 140.335 +93.8914 62.7202 143.122 +93.9961 64.0496 146.156 +93.6 65.0715 148.488 +93.5605 66.3752 151.463 +93.9561 68.0341 155.248 +93.3323 68.9958 157.443 +93.6126 70.6667 161.255 +93.3194 71.9532 164.191 +93.4312 73.6004 167.95 +93.4338 75.218 171.641 +93.2854 76.7689 175.18 +93.2487 78.4695 179.061 +93.0183 80.0662 182.704 +93.0572 81.9595 187.025 +92.4919 83.3824 190.272 +108.659 100.304 228.886 +115.305 109.031 248.799 +115.149 111.581 254.619 +115.192 114.437 261.135 +115.375 117.562 268.266 +113.961 119.161 271.915 +111.156 119.33 272.301 +107.976 119.073 271.715 +105.082 119.107 271.791 +102.196 119.128 271.841 +99.3481 119.177 271.953 +96.2588 118.91 271.343 +93.5496 119.089 271.752 +91.103 119.605 272.928 +90.9701 123.267 281.286 +90.9328 127.285 290.454 +90.7542 131.351 299.731 +90.509 135.579 309.38 +90.3621 140.243 320.023 +90.0191 144.917 330.687 +89.9232 150.339 343.061 +89.6205 155.811 355.547 +89.2597 161.605 368.768 +87.1566 164.581 375.56 +85.6285 168.931 385.487 +88.4209 182.582 416.636 +85.2316 184.581 421.199 +81.3715 185.229 422.676 +76.8297 184.279 420.51 +73.0705 185.176 422.555 +68.5836 184.194 420.315 +64.7433 184.904 421.936 +60.2509 183.691 419.168 +56.5108 184.732 421.543 +52.1867 183.846 419.522 +48.3444 184.621 421.288 +44.0986 183.824 419.471 +40.1527 184.212 420.355 +35.9813 183.505 418.742 +32.1508 184.545 421.115 +27.9969 183.729 419.254 +24.0745 184.381 420.743 +19.9864 183.737 419.272 +16.0224 184.161 420.239 +11.9445 183.087 417.788 +7.99146 183.763 419.332 +3.98017 183.062 417.732 +3.10862e-14 183.671 419.121 +-3.97494 182.821 417.182 +-7.99146 183.763 419.332 +-11.9236 182.765 417.055 +-15.9595 183.439 418.591 +-19.8686 182.654 416.8 +-23.9646 183.539 418.821 +-27.8076 182.487 416.419 +-31.9415 183.344 418.375 +-35.7381 182.264 415.912 +-39.9348 183.212 418.074 +-43.7152 182.226 415.824 +-47.9681 183.184 418.009 +-51.7339 182.251 415.881 +-55.9258 182.82 417.179 +-59.8071 182.338 416.081 +-64.0335 182.877 417.31 +-67.7706 182.011 415.333 +-72.0694 182.639 416.766 +-75.7403 181.666 414.547 +-80.156 182.462 416.362 +-83.7372 181.345 413.815 +-88.1919 182.109 415.557 +-91.8488 181.203 413.489 +-96.5334 182.288 415.965 +-100.082 181.198 413.478 +-104.805 182.21 415.787 +-108.365 181.172 413.419 +-113.195 182.226 415.825 +-116.777 181.24 413.575 +-121.645 182.22 415.81 +-125.121 181.091 413.234 +-130.018 181.996 415.299 +-133.97 181.534 414.244 +-140.105 183.936 419.727 +-140.189 178.462 407.236 +-142.797 176.399 402.528 +-143.327 171.934 392.338 +-142.99 166.681 380.353 +-142.769 161.823 369.266 +-143.067 157.771 360.02 +-144.461 155.084 353.887 +-144.458 151.049 344.682 +-145.025 147.774 337.208 +-145.984 145.028 330.941 +-145.879 141.359 322.569 +-147.814 139.771 318.945 +-152.402 140.683 321.027 +-481.983 434.513 991.521 +-145.267 127.943 291.955 +-143.563 123.574 281.985 +-143.877 121.073 276.279 +-145.32 119.591 272.896 +-149.789 120.586 275.167 +-437.919 344.971 787.194 +-111.189 85.7313 195.632 +-110.279 83.2476 189.964 +-111.417 82.3645 187.949 +-112.233 81.2688 185.448 +-113.405 80.4536 183.588 +-115.2 80.0879 182.754 +-117.191 79.8543 182.221 +-118.768 79.3377 181.042 +-120.697 79.0556 180.398 +-123.418 79.2763 180.902 +-128.092 80.7032 184.158 +-437.672 270.512 617.284 +-438.79 266.09 607.194 +-439.805 261.714 597.21 +-441.457 257.815 588.312 +-442.113 253.431 578.309 +-444.005 249.847 570.131 +-445.247 245.977 561.298 +-446.355 242.117 552.491 +-447.329 238.269 543.709 +-449.144 234.941 536.116 +-450.295 231.335 527.887 +-452.008 228.084 520.469 +-453.803 224.933 513.277 +-454.987 221.538 505.531 +-456.701 218.46 498.508 +-457.406 214.96 490.52 +-441.2 203.717 464.864 +-442.431 200.721 458.028 +-445.641 198.656 453.316 +-450.821 197.472 450.615 +-453.393 195.152 445.32 +-455.828 192.799 439.952 +-457.571 190.185 433.986 +-459.166 187.544 427.96 +-460.327 184.765 421.619 +-461.616 182.077 415.483 +-134.732 52.2234 119.169 +-134.992 51.4178 117.331 +-480.499 179.847 410.396 +-469.719 172.761 394.226 +-2434.91 879.987 2008.05 +-2453.95 871.421 1988.51 +-2472.81 862.796 1968.83 +-478.067 163.886 373.974 +-141.105 47.5236 108.445 +-142.751 47.2318 107.779 +-142.839 46.4271 105.943 +-143.139 45.7002 104.284 +-142.945 44.8264 102.29 +-142.486 43.8843 100.14 +-142.956 43.2385 98.6666 +-148.07 43.9775 100.353 +-496.898 144.905 330.661 +-498.564 142.739 325.719 +-500.42 140.642 320.934 +-502.47 138.611 316.299 +-504.718 136.644 311.81 +-506.836 134.649 307.258 +-509.409 132.782 302.997 +-509.746 130.345 297.437 +-527.74 132.362 302.039 +-516.274 126.985 289.77 +-518.672 125.09 285.444 +-520.596 123.085 280.869 +-523.253 121.257 276.697 +-525.869 119.419 272.504 +-527.658 117.398 267.891 +-530.542 115.622 263.839 +-382.846 81.7059 186.446 +-381.326 79.6761 181.814 +-380.638 77.8454 177.637 +-379.81 76.0075 173.443 +-381.538 74.6922 170.441 +-380.71 72.8864 166.32 +-381.102 71.3294 162.768 +-381.365 69.7588 159.184 +-381.131 68.1104 155.422 +-380.855 66.4683 151.675 +-380.813 64.8809 148.053 +-380.823 63.3143 144.478 +-381.907 61.9327 141.325 +-380.82 60.2104 137.395 +-380.154 58.572 133.656 +-380.757 57.1399 130.388 +-381.139 55.6805 127.058 +-381.487 54.2231 123.732 +-381.611 52.7408 120.35 +-381.89 51.2878 117.034 +-381.659 49.7746 113.581 +-380.915 48.2064 110.003 +-379.749 46.6005 106.338 +-379.98 45.1772 103.09 +-380.66 43.8113 99.9736 +-381.019 42.4121 96.7808 +-380.961 40.9719 93.4945 +-380.772 39.5256 90.194 +-380.647 38.0933 86.9256 +-380.877 36.7023 83.7515 +-380.199 35.2314 80.395 +-380.755 33.8809 77.3134 +-380.597 32.4709 74.0958 +-381.191 31.1286 71.0327 +-380.282 29.6697 67.7037 +-380.618 28.3146 64.6116 +-380.628 26.9385 61.4714 +-380.41 25.5513 58.306 +-380.556 24.1928 55.2059 +-381.365 22.8767 52.2027 +-380.362 21.4563 48.9614 +-380.318 20.097 45.8595 +-380.244 18.7396 42.7622 +-380.637 17.4071 39.7215 +-381.499 16.0941 36.7254 +-379.943 14.6842 33.508 +-381.044 13.3808 30.5339 +-380.723 12.0267 27.4439 +-382.566 10.7375 24.5021 +-380.888 9.35056 21.3372 +-380.278 7.99928 18.2537 +-380.837 6.67401 15.2295 +-3274.5 45.8969 104.733 +-146.95 1.54451 3.52444 +-144.978 1.01573 2.31781 +-146.294 0.512436 1.16934 +96.5 -3.55271e-15 -1.7053e-13 +96.4963 0.34495 0.768219 +96.4853 0.689875 1.53638 +96.4669 1.03475 2.30443 +96.4412 1.37954 3.07229 +96.4082 1.72422 3.83992 +96.4676 2.07092 4.61204 +96.32 2.41318 5.37425 +97.1627 2.78311 6.19811 +96.3022 3.10461 6.91411 +97.0294 3.4773 7.7441 +96.1553 3.7926 8.44628 +96.8664 4.17044 9.28775 +96.8733 4.52116 10.0688 +95.9792 4.82735 10.7507 +96.6659 5.21301 11.6096 +96.5511 5.55837 12.3787 +96.3301 5.89721 13.1334 +96.0033 6.22852 13.8712 +95.867 6.57145 14.6349 +95.7233 6.9139 15.3976 +96.2607 7.30808 16.2754 +96.1013 7.65188 17.0411 +96.0326 8.0033 17.8237 +95.8585 8.34624 18.5874 +95.677 8.6886 19.3499 +96.4626 9.12244 20.3161 +96.2646 9.46689 21.0832 +96.1563 9.82056 21.8708 +95.8466 10.1536 22.6126 +96.496 10.5913 23.5872 +96.2667 10.9358 24.3545 +96.03 11.2795 25.12 +95.7861 11.6223 25.8835 +96.2999 12.0601 26.8584 +96.0393 12.4039 27.6241 +96.6273 12.8606 28.6412 +95.4962 13.0886 29.1489 +96.9157 13.6695 30.4425 +96.5265 14.0017 31.1825 +97.2582 14.5004 32.293 +96.8519 14.8331 33.034 +96.4389 15.1641 33.7711 +96.9495 15.6433 34.8384 +96.6126 15.9893 35.6089 +96.3606 16.3497 36.4116 +96.8371 16.8376 37.4981 +96.5664 17.1995 38.304 +96.2877 17.5606 39.1083 +96.8199 18.0741 40.2517 +96.4311 18.4195 41.021 +96.7571 18.9045 42.1012 +96.3507 19.2497 42.8699 +96.7424 19.7579 44.0017 +96.3178 20.1029 44.7701 +96.6842 20.6167 45.9143 +97.0359 21.1346 47.0676 +96.582 21.4806 47.8383 +96.9079 22.0038 49.0034 +96.3484 22.3292 49.7281 +96.6484 22.8571 50.9038 +96.761 23.3472 51.9954 +96.2599 23.6922 52.7637 +96.4336 24.2066 53.9093 +96.6775 24.7458 55.11 +96.8213 25.2665 56.2696 +96.2794 25.6117 57.0383 +96.4806 26.1583 58.2557 +96.6658 26.7083 59.4807 +96.0931 27.0529 60.248 +96.2504 27.6068 61.4815 +96.2285 28.1163 62.6163 +95.7067 28.4833 63.4336 +95.7394 29.0192 64.6272 +95.7564 29.5576 65.826 +95.8371 30.1232 67.0857 +95.8221 30.6664 68.2953 +95.8695 31.2372 69.5667 +95.9775 31.8365 70.9014 +95.9129 32.3868 72.1269 +95.8322 32.9391 73.3568 +95.8112 33.5198 74.6502 +95.7726 34.1029 75.9487 +95.6416 34.6611 77.1918 +95.5684 35.2483 78.4996 +95.4774 35.8377 79.8121 +96.0267 36.6805 81.689 +95.822 37.2479 82.9527 +95.6003 37.8166 84.2194 +95.5042 38.4441 85.6167 +95.8837 39.2764 87.4703 +95.6741 39.8806 88.8159 +95.4461 40.4863 90.1647 +95.1994 41.0932 91.5164 +95.4798 41.9415 93.4057 +95.7987 42.8247 95.3725 +95.4849 43.4395 96.7418 +95.1522 44.0552 98.1129 +94.8661 44.7028 99.5552 +95.0142 45.5696 101.486 +95.2611 46.5039 103.566 +94.7757 47.0954 104.884 +94.8386 47.9737 106.84 +94.9335 48.888 108.876 +94.7503 49.6773 110.634 +94.6015 50.5015 112.469 +94.6655 51.4592 114.602 +94.5768 52.3554 116.598 +94.6334 53.3545 118.823 +94.4223 54.2241 120.76 +94.4107 55.2306 123.001 +94.25 56.174 125.102 +94.5036 57.3914 127.813 +94.2708 58.3421 129.93 +94.0592 59.3293 132.129 +94.2961 60.6307 135.027 +94.1667 61.7297 137.475 +93.7885 62.6927 139.62 +93.9429 64.0437 142.628 +94.0469 65.4008 145.65 +93.6 66.4085 147.895 +93.5112 67.7033 150.778 +93.5198 69.1095 153.91 +93.7617 70.7374 157.535 +93.6126 72.1186 160.611 +93.735 73.7584 164.263 +93.7944 75.4046 167.93 +93.4338 76.7634 170.955 +93.3292 78.383 174.563 +93.2057 80.0449 178.264 +93.0183 81.7112 181.975 +93.0986 83.6807 186.361 +92.8173 85.395 190.178 +100.724 94.8893 211.323 +115.695 111.648 248.645 +115.532 114.252 254.445 +115.266 116.864 260.261 +115.228 119.825 266.855 +113.997 121.647 270.914 +111.436 122.088 271.896 +107.942 121.481 270.544 +105.416 121.94 271.565 +102.196 121.576 270.755 +99.6337 121.976 271.645 +96.5369 121.704 271.04 +93.8503 121.927 271.537 +90.9276 121.827 271.314 +90.9701 125.8 280.162 +90.9603 129.94 289.382 +90.7542 134.049 298.534 +90.5349 138.405 308.233 +90.3621 143.125 318.745 +89.8982 147.695 328.924 +89.7831 153.189 341.158 +89.5755 158.932 353.949 +88.9134 164.285 365.87 +86.8655 167.402 372.811 +87.064 175.292 390.384 +88.2682 186.011 414.255 +84.3568 186.441 415.211 +80.6248 187.3 417.124 +76.0374 186.126 414.512 +72.3979 187.241 416.993 +67.948 186.237 414.757 +64.117 186.878 416.185 +59.6896 185.719 413.605 +55.9624 186.698 415.784 +51.6999 185.873 413.948 +47.8949 186.662 415.705 +43.6577 185.725 413.619 +39.8563 186.609 415.586 +35.6361 185.478 413.069 +31.809 186.334 414.974 +27.7282 185.705 413.573 +23.8547 186.451 415.235 +19.7858 185.629 413.404 +15.8618 186.061 414.367 +11.8398 185.21 412.471 +7.92688 186.024 414.283 +3.94701 185.267 412.597 +3.28626e-14 186.052 414.346 +-3.94178 185.021 412.05 +-7.91641 185.778 413.735 +-11.8006 184.596 411.104 +-15.8304 185.693 413.547 +-19.6636 184.483 410.853 +-23.7396 185.551 413.231 +-27.5939 184.805 411.57 +-31.6625 185.476 413.063 +-35.4635 184.58 411.068 +-39.5861 185.344 412.769 +-43.3798 184.543 410.985 +-47.5395 185.277 412.621 +-51.2697 184.327 410.504 +-55.548 185.316 412.706 +-59.2067 184.216 410.258 +-63.4351 184.89 411.759 +-67.0907 183.887 409.524 +-71.3498 184.53 410.957 +-75.1792 184.025 409.833 +-79.3572 184.355 410.566 +-83.1176 183.702 409.112 +-87.505 184.403 410.673 +-91.1111 183.441 408.531 +-95.6602 184.35 410.556 +-99.3241 183.521 408.71 +-103.882 184.317 410.481 +-107.385 183.221 408.042 +-112.252 184.42 410.712 +-115.625 183.14 407.86 +-120.221 183.788 409.304 +-123.892 182.996 407.539 +-128.723 183.884 409.519 +-132.578 183.339 408.304 +-138.964 186.188 414.649 +-139.046 180.644 402.303 +-142.086 179.128 398.925 +-143.39 175.544 390.944 +-143.25 170.416 379.523 +-142.769 165.148 367.792 +-142.862 160.782 358.069 +-143.9 157.656 351.107 +-144.458 154.153 343.305 +-144.182 149.934 333.909 +-145.685 147.704 328.942 +-145.879 144.263 321.28 +-146.368 141.247 314.564 +-150.289 141.583 315.311 +-479.176 440.859 981.813 +-145.433 130.721 291.121 +-141.957 124.702 277.717 +-143.748 123.45 274.929 +-145.408 122.122 271.97 +-150.279 123.467 274.966 +-437.465 351.694 783.237 +-111.374 87.6381 195.174 +-110.42 85.0665 189.447 +-111.417 84.0568 187.198 +-112.33 83.0102 184.867 +-114.292 82.7484 184.284 +-115.65 82.0529 182.735 +-117.191 81.495 181.493 +-119.025 81.1431 180.709 +-121.533 81.2385 180.922 +-123.736 81.1136 180.644 +-127.662 82.0848 182.807 +-437.999 276.275 615.278 +-439.287 271.864 605.454 +-439.805 267.091 594.824 +-441.117 262.909 585.511 +-442.457 258.84 576.448 +-443.773 254.847 567.556 +-444.777 250.766 558.466 +-446.177 246.993 550.064 +-448.051 243.557 542.412 +-449.144 239.768 533.975 +-451.034 236.475 526.641 +-452.257 232.899 518.676 +-453.803 229.554 511.227 +-454.796 225.995 503.301 +-457.022 223.106 496.866 +-458.77 220.031 490.018 +-448.613 211.395 470.787 +-443.227 205.212 457.017 +-443.701 201.855 449.54 +-447.241 199.929 445.251 +-452.438 198.742 442.607 +-455.484 196.612 437.864 +-457.224 193.945 431.924 +-459.796 191.66 426.836 +-460.114 188.474 419.741 +-462.186 186.047 414.336 +-474.045 187.518 417.612 +-134.702 52.3612 116.611 +-480.719 183.626 408.943 +-469.793 176.338 392.713 +-2434.91 898.067 2000.03 +-2453.95 889.325 1980.57 +-2472.81 880.522 1960.96 +-478.447 167.386 372.777 +-141.105 48.5 108.012 +-142.828 48.2285 107.407 +-143.073 47.4584 105.692 +-142.748 46.5117 103.584 +-143.024 45.7728 101.938 +-142.566 44.8106 99.7951 +-143.115 44.176 98.382 +-148.07 44.881 99.952 +-496.898 147.882 329.34 +-498.564 145.672 324.418 +-500.911 143.673 319.966 +-503.211 141.668 315.501 +-504.718 139.452 310.565 +-507.586 137.619 306.484 +-2748.07 731.026 1628.03 +-507.553 132.451 294.975 +-527.91 135.125 300.93 +-516.188 129.573 288.565 +-518.672 127.66 284.304 +-520.941 125.697 279.932 +-524.032 123.932 276.002 +-526.652 122.054 271.82 +-528.445 119.988 267.219 +-531.333 118.173 263.176 +-383.199 83.4616 185.873 +-381.592 81.3696 181.214 +-380.638 79.4448 176.927 +-378.736 77.35 172.262 +-380.729 76.065 169.4 +-380.891 74.4191 165.735 +-381.465 72.8641 162.272 +-381.365 71.1921 158.548 +-381.131 69.5097 154.801 +-380.03 67.6873 150.743 +-381.089 66.2622 147.569 +-382.486 64.8973 144.529 +-382.185 63.2515 140.864 +-380.262 61.3574 136.646 +-381.834 60.0396 133.711 +-380.476 58.2708 129.772 +-381.985 56.9506 126.832 +-380.356 55.1728 122.872 +-381.8 53.851 119.929 +-381.89 52.3415 116.567 +-379.947 50.5691 112.62 +-381.01 49.2091 109.591 +-380.609 47.6656 106.154 +-381.323 46.2684 103.042 +-380.275 44.6664 99.474 +-381.212 43.3056 96.4435 +-380.768 41.7924 93.0736 +-380.772 40.3376 89.8337 +-380.938 38.9056 86.6445 +-381.169 37.4851 83.4809 +-381.661 36.0934 80.3817 +-380.951 34.5948 77.0441 +-381.38 33.2062 73.9517 +-381.191 31.7681 70.749 +-380.97 30.334 67.5551 +-381.208 28.9411 64.4532 +-381.515 27.556 61.3685 +-380.903 26.1101 58.1483 +-380.655 24.6962 54.9996 +-381.365 23.3467 51.9942 +-380.362 21.8971 48.7658 +-381.012 20.5473 45.7597 +-380.741 19.1496 42.647 +-380.24 17.7462 39.5215 +-380.504 16.382 36.4834 +-380.739 15.0173 33.4441 +-380.248 13.6271 30.3482 +-380.025 12.2513 27.2842 +-380.072 10.8867 24.2452 +-379.591 9.51019 21.1796 +-381.177 8.18292 18.2237 +-380.837 6.81113 15.1687 +-146.811 2.10004 4.67689 +-146.55 1.57195 3.50081 +-146.478 1.04732 2.33243 +-146.894 0.525111 1.16945 +96.5 -3.55271e-15 -1.7053e-13 +96.4963 0.351866 0.765076 +96.5853 0.704434 1.53168 +96.4669 1.05549 2.295 +96.5412 1.40865 3.06289 +96.4082 1.7588 3.82421 +96.4676 2.11245 4.59317 +96.32 2.46156 5.35226 +96.2649 2.81268 6.11571 +96.3022 3.16686 6.88582 +96.2324 3.51788 7.64906 +97.0511 3.90468 8.4901 +96.8664 4.25406 9.24975 +96.8733 4.61181 10.0276 +96.7732 4.96488 10.7953 +96.6659 5.31754 11.5621 +96.5511 5.66982 12.3281 +96.3301 6.01545 13.0796 +96.0033 6.3534 13.8144 +95.867 6.70322 14.575 +95.6248 7.04526 15.3188 +95.4741 7.39369 16.0764 +95.316 7.74155 16.8327 +96.0326 8.16377 17.7508 +95.8585 8.51359 18.5114 +95.677 8.86281 19.2707 +95.5857 9.22074 20.049 +96.2646 9.65671 20.9969 +96.0593 10.0074 21.7594 +95.9434 10.3677 22.5429 +96.5926 10.8145 23.5143 +96.1703 11.1439 24.2306 +96.03 11.5057 25.0172 +95.7861 11.8554 25.7776 +96.3955 12.3142 26.7751 +96.1347 12.6651 27.5383 +96.6273 13.1185 28.524 +96.3497 13.4704 29.2891 +96.0647 13.8211 30.0518 +96.5265 14.2825 31.0549 +96.1306 14.6196 31.788 +96.9456 15.1452 32.9307 +96.4389 15.4681 33.6329 +97.0426 15.9723 34.7292 +96.6126 16.3099 35.4632 +96.3606 16.6776 36.2626 +96.7451 17.1589 37.3092 +96.5664 17.5443 38.1473 +96.1963 17.8958 38.9114 +96.7289 18.4191 40.0493 +96.4311 18.7888 40.8531 +96.8474 19.3015 41.9681 +96.3507 19.6357 42.6945 +96.7424 20.154 43.8216 +96.3178 20.506 44.587 +96.6842 21.0301 45.7264 +97.0359 21.5583 46.8751 +96.4941 21.8914 47.5992 +96.8204 22.4247 48.7589 +96.3484 22.7769 49.5247 +96.6484 23.3154 50.6955 +96.761 23.8154 51.7826 +96.1742 24.1458 52.501 +96.4336 24.692 53.6887 +96.6775 25.242 54.8845 +96.9057 25.7956 56.0882 +96.2794 26.1252 56.8049 +96.4806 26.6828 58.0174 +95.9196 27.0336 58.7801 +96.0931 27.5953 60.0015 +96.2504 28.1603 61.23 +96.2285 28.6801 62.3601 +95.7067 29.0544 63.174 +96.4628 29.8248 64.8491 +95.8363 30.1754 65.6114 +95.8371 30.7272 66.8112 +95.8221 31.2812 68.0159 +95.7912 31.8375 69.2255 +95.8998 32.4485 70.554 +95.9129 33.0362 71.8318 +95.8322 33.5995 73.0567 +95.8112 34.1919 74.3448 +95.8481 34.8141 75.6975 +95.7165 35.3837 76.9361 +95.5684 35.9551 78.1784 +95.4774 36.5562 79.4855 +95.9536 37.3874 81.2929 +95.822 37.9947 82.6133 +95.6003 38.5749 83.8748 +95.4329 39.1856 85.2027 +95.8837 40.0639 87.1124 +95.6741 40.6802 88.4525 +95.4461 41.298 89.7958 +95.2683 41.9476 91.2083 +95.4798 42.7825 93.0235 +95.2582 43.4368 94.4462 +95.4849 44.3105 96.346 +95.1522 44.9385 97.7115 +95.4566 45.8828 99.7647 +95.0792 46.515 101.139 +95.2611 47.4364 103.143 +94.8393 48.0719 104.524 +95.342 49.1955 106.967 +94.7467 49.77 108.217 +94.7503 50.6734 110.181 +94.7233 51.5805 112.153 +94.7257 52.5244 114.206 +94.6363 53.439 116.194 +94.5746 54.3905 118.263 +94.4223 55.3114 120.266 +94.8122 56.5778 123.019 +94.1367 57.2313 124.44 +94.6154 58.6115 127.441 +93.7741 59.1981 128.717 +94.1136 60.554 131.665 +94.511 61.9876 134.782 +94.2196 63.0029 136.99 +93.7885 63.9498 139.048 +93.8914 65.2923 141.967 +93.9961 66.6762 144.976 +93.6 67.74 147.289 +93.5112 69.0608 150.161 +93.9076 70.7877 153.916 +93.7617 72.1557 156.891 +93.5657 73.5275 159.873 +93.3656 74.941 162.947 +93.3858 76.5814 166.514 +93.4338 78.3025 170.256 +93.2854 79.9171 173.767 +93.2057 81.6498 177.534 +93.0183 83.3496 181.23 +93.0986 85.3586 185.598 +92.98 87.2597 189.732 +97.534 93.7266 203.793 +115.344 113.541 246.875 +115.188 116.196 252.649 +115.192 119.13 259.028 +115.301 122.305 265.932 +114.606 124.749 271.247 +111.506 124.614 270.954 +108.523 124.584 270.888 +105.683 124.7 271.139 +102.456 124.33 270.335 +99.6337 124.421 270.534 +96.7532 124.422 270.536 +93.9104 124.452 270.599 +90.8399 124.15 269.943 +90.9701 128.322 279.016 +90.9052 132.465 288.023 +90.6473 136.576 296.962 +90.6125 141.301 307.236 +90.3621 145.994 317.441 +89.8982 150.657 327.578 +89.7831 156.26 339.762 +89.5305 162.037 352.324 +88.0476 165.947 360.826 +86.221 169.491 368.531 +88.4197 181.591 394.841 +87.8485 188.838 410.598 +83.5003 188.248 409.313 +79.8955 189.327 411.66 +75.3772 188.21 409.232 +71.7252 189.22 411.428 +67.3272 188.235 409.286 +63.4769 188.721 410.344 +59.2067 187.91 408.579 +55.4262 188.616 410.116 +51.1339 187.524 407.741 +47.4768 188.743 410.39 +43.1785 187.37 407.405 +39.5077 188.685 410.266 +35.2438 187.114 406.849 +31.5509 188.528 409.923 +27.4596 187.593 407.891 +23.6559 188.604 410.089 +19.5633 187.222 407.084 +15.7118 187.996 408.767 +11.7168 186.961 406.515 +7.84486 187.79 408.319 +3.90076 186.767 406.094 +2.75335e-14 187.818 408.38 +-3.90338 186.892 406.366 +-7.83264 187.498 407.683 +-11.7011 186.71 405.97 +-15.6734 187.537 407.768 +-19.4979 186.596 405.723 +-23.5564 187.811 408.365 +-27.3192 186.634 405.805 +-31.3765 187.486 407.657 +-35.1261 186.49 405.491 +-39.2288 187.353 407.369 +-42.9581 186.413 405.325 +-47.0483 187.039 406.685 +-50.7037 185.947 404.311 +-54.9753 187.082 406.78 +-58.6193 186.046 404.526 +-62.8088 186.735 406.025 +-66.4255 185.714 403.805 +-70.8492 186.909 406.403 +-74.2879 185.49 403.317 +-78.7668 186.652 405.845 +-82.1518 185.207 402.703 +-86.6082 186.173 404.802 +-90.1741 185.194 402.675 +-94.7661 186.289 405.055 +-98.3069 185.284 402.869 +-103.005 186.425 405.349 +-106.404 185.189 402.662 +-111.163 186.294 405.065 +-114.724 185.355 403.025 +-119.16 185.818 404.03 +-123.037 185.376 403.07 +-127.648 186.005 404.437 +-131.101 184.932 402.103 +-137.59 188.043 408.868 +-139.738 185.183 402.649 +-141.622 182.123 395.996 +-143.104 178.707 388.569 +-142.957 173.477 377.197 +-142.803 168.498 366.372 +-142.793 163.927 356.433 +-143.165 159.995 347.884 +-144.422 157.205 341.816 +-144.365 153.134 332.965 +-145.872 150.859 328.017 +-145.841 147.117 319.881 +-145.469 143.195 311.354 +-148.056 142.276 309.355 +-150.899 141.616 307.921 +-145.765 133.646 290.591 +-141.957 127.202 276.58 +-144.221 126.34 274.706 +-146.109 125.171 272.164 +-150.636 126.242 274.492 +-437.329 358.634 779.79 +-110.958 89.0619 193.65 +-110.561 86.8828 188.912 +-111.56 85.852 186.671 +-112.379 84.7113 184.191 +-114.341 84.4439 183.609 +-115.65 83.6981 181.988 +-117.647 83.4532 181.455 +-119.025 82.7701 179.97 +-121.376 82.7604 179.949 +-124.319 83.1298 180.752 +-436.986 286.608 623.182 +-438.162 281.92 612.988 +-439.287 277.315 602.977 +-440.141 272.654 592.842 +-441.457 268.388 583.565 +-442.457 264.03 574.089 +-444.296 260.263 565.9 +-445.6 256.267 557.211 +-446.355 252.046 548.033 +-448.593 248.741 540.845 +-449.692 244.874 532.439 +-451.034 241.217 524.487 +-453.004 237.961 517.407 +-453.614 234.059 508.924 +-455.623 230.946 502.153 +-457.665 227.899 495.529 +-458.835 224.474 488.082 +-459.635 220.932 480.381 +-454.292 214.553 466.511 +-443.165 205.654 447.161 +-445.619 203.198 441.821 +-452.097 202.574 440.464 +-454.314 200.039 434.952 +-457.571 197.984 430.484 +-460.077 195.623 425.35 +-461.387 192.785 419.18 +-462.186 189.778 412.64 +-476.778 192.381 418.301 +-133.324 52.8649 114.946 +-135.3 52.7187 114.628 +-470.825 180.269 391.965 +-471.748 177.483 385.907 +-2453.95 907.157 1972.46 +-2472.81 898.177 1952.94 +-2491.47 889.127 1933.26 +-140.569 49.2849 107.162 +-143.214 49.3283 107.256 +-143.15 48.4363 105.317 +-143.217 47.6002 103.499 +-142.394 46.4845 101.073 +-143.121 45.8874 99.7747 +-143.675 45.2381 98.3629 +-148.874 46.0295 100.084 +-497.303 150.97 328.26 +-499.297 148.811 323.565 +-501.649 146.769 319.125 +-503.459 144.58 314.365 +-504.967 142.317 309.446 +-507.169 140.263 304.98 +-524.085 142.209 309.211 +-508.987 135.488 294.597 +-528.928 138.1 300.276 +-516.188 132.171 287.384 +-518.672 130.219 283.141 +-521.716 128.408 279.201 +-523.253 126.229 274.464 +-526.217 124.398 270.484 +-529.232 122.576 266.522 +-531.772 120.642 262.316 +-381.433 84.7427 184.259 +-381.769 83.04 180.557 +-380.905 81.0945 176.327 +-381.153 79.4044 172.652 +-381.718 77.7915 169.145 +-380.71 75.8753 164.978 +-381.465 74.3251 161.608 +-381.82 72.706 158.087 +-382.867 71.226 154.869 +-380.03 69.0445 150.126 +-379.064 67.2315 146.184 +-381.932 66.1025 143.729 +-380.424 64.2222 139.641 +-381.657 62.8174 136.586 +-380.061 60.9593 132.546 +-381.226 59.5562 129.495 +-381.891 58.0783 126.282 +-381.393 56.4324 122.703 +-380.855 54.7949 119.143 +-381.416 53.3246 115.945 +-381.279 51.7639 112.552 +-380.628 50.1456 109.033 +-380.322 48.5846 105.639 +-380.556 47.1013 102.414 +-380.66 45.6079 99.1669 +-380.634 44.1066 95.9026 +-380.961 42.6521 92.74 +-380.772 41.1464 89.4662 +-380.162 39.6048 86.1142 +-381.461 38.2659 83.2029 +-381.466 36.7983 80.0119 +-380.658 35.2613 76.6699 +-381.086 33.8459 73.5924 +-380.799 32.3718 70.3871 +-381.362 30.9741 67.348 +-380.323 29.4529 64.0405 +-381.318 28.094 61.0859 +-380.114 26.5784 57.7904 +-380.951 25.211 54.8173 +-381.068 23.7963 51.7412 +-380.065 22.3187 48.5283 +-381.31 20.9757 45.6081 +-380.244 19.5081 42.4171 +-380.637 18.1209 39.4009 +-381.001 16.7323 36.3816 +-381.336 15.3424 33.3595 +-380.248 13.9004 30.2241 +-379.826 12.4904 27.1583 +-380.77 11.1254 24.1903 +-379.591 9.70087 21.093 +-379.879 8.31858 18.0874 +-380.038 6.93311 15.0749 +-146.811 2.14215 4.65775 +-146.75 1.60566 3.49125 +-146.178 1.06613 2.31813 +-146.394 0.533814 1.16069 +96.5 -3.55271e-15 -1.7053e-13 +96.4963 0.358754 0.76187 +96.4853 0.717482 1.52368 +96.267 1.07392 2.28064 +96.5412 1.43623 3.05006 +97.3073 1.80995 3.84371 +96.4676 2.1538 4.57392 +96.32 2.50975 5.32984 +96.3647 2.87071 6.0964 +96.3022 3.22885 6.85697 +96.1328 3.58303 7.60913 +96.9516 3.97704 8.44586 +96.8664 4.33733 9.21099 +96.8733 4.70209 9.98561 +96.7732 5.06207 10.7501 +96.5667 5.41609 11.5019 +96.5511 5.7808 12.2764 +96.3301 6.13321 13.0248 +96.2008 6.4911 13.7849 +95.867 6.83443 14.514 +95.6248 7.18317 15.2546 +96.359 7.60829 16.1574 +96.1995 7.96623 16.9175 +96.0326 8.32358 17.6764 +95.9563 8.6891 18.4527 +95.677 9.0363 19.19 +95.4883 9.39165 19.9446 +96.2646 9.84574 20.909 +96.0593 10.2033 21.6682 +95.8466 10.56 22.4257 +96.496 11.0151 23.3923 +96.2667 11.3734 24.1533 +96.03 11.7309 24.9124 +96.5531 12.1842 25.8751 +96.2999 12.5427 26.6364 +96.0393 12.9003 27.3958 +96.6273 13.3753 28.4045 +96.3497 13.734 29.1664 +96.0647 14.0917 29.9259 +96.5265 14.5621 30.9248 +96.2245 14.9204 31.6857 +96.8519 15.4267 32.761 +96.4389 15.7709 33.492 +96.9495 16.2694 34.5505 +96.7053 16.6452 35.3486 +96.3606 17.004 36.1107 +96.7451 17.4948 37.1528 +96.5664 17.8878 37.9874 +96.2877 18.2634 38.7851 +95.9099 18.6207 39.5439 +96.3405 19.1385 40.6437 +96.8474 19.6794 41.7922 +96.3507 20.02 42.5156 +96.8319 20.5675 43.6784 +96.3178 20.9074 44.4001 +96.6842 21.4417 45.5348 +96.153 21.7804 46.254 +96.4941 22.3199 47.3998 +96.8204 22.8637 48.5546 +96.2613 23.2018 49.2726 +95.869 23.5801 50.076 +96.6748 24.2599 51.5197 +96.1742 24.6184 52.281 +96.4336 25.1753 53.4638 +95.9142 25.5329 54.2231 +96.0623 26.0716 55.3671 +96.2794 26.6366 56.5669 +96.4806 27.2051 57.7743 +95.8367 27.5389 58.4832 +96.0107 28.1113 59.6988 +96.2504 28.7116 60.9734 +96.2285 29.2415 62.0988 +96.3539 29.8235 63.3347 +96.4628 30.4086 64.5774 +95.8363 30.7661 65.3365 +95.9164 31.3546 66.5864 +95.8221 31.8936 67.7309 +95.7912 32.4608 68.9355 +95.8998 33.0837 70.2584 +95.9901 33.71 71.5884 +95.7556 34.2299 72.6925 +95.1268 34.6122 73.5045 +95.8481 35.4956 75.3804 +95.6416 36.0482 76.5539 +95.5684 36.6589 77.8509 +95.4037 37.2431 79.0914 +96.0267 38.1484 81.014 +95.7494 38.7092 82.2049 +95.6003 39.33 83.5234 +95.3616 39.9228 84.7823 +95.318 40.6072 86.2356 +95.6741 41.4765 88.0819 +95.3766 42.0758 89.3545 +95.1994 42.7377 90.7601 +95.548 43.6511 92.6998 +95.2582 44.2871 94.0505 +95.4849 45.1779 95.9423 +95.1522 45.8182 97.3021 +94.8661 46.4917 98.7324 +95.0792 47.4256 100.716 +94.7469 48.1038 102.156 +94.8393 49.0129 104.087 +94.7127 49.827 105.815 +94.809 50.7775 107.834 +94.6887 51.6316 109.648 +94.7233 52.5902 111.683 +94.7257 53.5526 113.727 +94.5173 54.4165 115.562 +94.5746 55.4552 117.768 +94.4223 56.3941 119.762 +94.4107 57.4408 121.985 +94.25 58.4219 124.068 +94.0562 59.4056 126.157 +94.2708 60.6769 128.857 +94.0592 61.7036 131.037 +93.92 62.8057 133.378 +94.1667 64.2 136.339 +93.7885 65.2016 138.466 +93.8399 66.5337 141.295 +93.5393 67.6508 143.667 +93.6 69.066 146.672 +93.5605 70.4497 149.611 +93.4713 71.8381 152.559 +93.7617 73.5681 156.233 +93.5657 74.9668 159.204 +93.735 76.71 162.906 +93.3858 78.0805 165.816 +93.7908 80.1403 170.19 +93.0224 81.2518 172.551 +93.1626 83.2094 176.708 +93.0183 84.9812 180.471 +92.7254 86.6805 184.08 +93.1427 89.1238 189.268 +94.6232 92.7091 196.882 +115.266 115.685 245.674 +115.188 118.47 251.59 +114.929 121.185 257.355 +115.155 124.541 264.482 +114.427 126.992 269.688 +111.821 127.413 270.581 +108.797 127.344 270.434 +105.917 127.422 270.6 +103.01 127.448 270.656 +100.205 127.584 270.945 +97.0313 127.223 270.177 +94.3013 127.416 270.588 +91.0153 126.825 269.332 +91.0837 130.997 278.193 +90.9879 135.181 287.077 +90.7274 139.373 295.98 +90.4831 143.861 305.511 +90.2119 148.605 315.586 +89.9708 153.73 326.469 +89.7364 159.236 338.163 +89.418 165.002 350.407 +87.42 167.99 356.753 +85.2438 170.851 362.828 +88.5991 185.522 393.984 +87.2379 191.197 406.036 +82.2611 189.084 401.55 +78.9752 190.81 405.214 +74.3374 189.247 401.895 +70.8805 190.652 404.88 +66.2038 188.717 400.771 +62.781 190.306 404.145 +58.3452 188.801 400.948 +54.7803 190.067 403.638 +50.4207 188.529 400.37 +46.9437 190.277 404.082 +42.613 188.535 400.384 +38.9586 189.705 402.869 +34.8201 188.484 400.275 +31.1742 189.923 403.332 +27.075 188.587 400.493 +23.3628 189.914 403.311 +19.319 188.503 400.316 +15.5582 189.803 403.076 +11.5624 188.108 399.476 +7.76807 189.592 402.627 +3.84753 187.824 398.873 +2.66454e-14 189.407 402.236 +-3.84055 187.483 398.15 +-7.74363 188.995 401.36 +-11.544 187.809 398.843 +-15.5163 189.292 401.991 +-19.2318 187.652 398.509 +-23.2581 189.063 401.504 +-26.9224 187.523 398.235 +-31.0137 188.946 401.256 +-34.6083 187.337 397.839 +-38.732 188.602 400.525 +-42.268 187.009 397.143 +-46.5779 188.794 400.933 +-50.0132 187.005 397.134 +-54.2806 188.334 399.956 +-57.8101 187.069 397.27 +-62.1686 188.45 400.203 +-65.4648 186.611 396.297 +-69.8636 187.917 399.072 +-73.3472 186.726 396.541 +-77.8291 188.04 399.333 +-81.1677 186.571 396.213 +-85.6351 187.684 398.576 +-89.0377 186.44 395.934 +-93.5187 187.435 398.048 +-96.8784 186.165 395.351 +-101.678 187.625 398.45 +-104.84 186.038 395.081 +-109.808 187.625 398.452 +-112.996 186.138 395.293 +-118.099 187.768 398.755 +-121.059 185.967 394.931 +-126.214 187.517 398.221 +-129.284 185.938 394.867 +-135.134 188.302 399.888 +-139.046 187.873 398.978 +-142.055 186.255 395.542 +-143.39 182.569 387.713 +-142.924 176.833 375.532 +-142.769 171.757 364.752 +-142.759 167.096 354.854 +-143.025 162.968 346.087 +-144.279 160.123 340.045 +-144.328 156.092 331.486 +-145.123 153.022 324.965 +-145.611 149.761 318.04 +-145.391 145.92 309.883 +-146.142 143.186 304.077 +-151.875 145.322 308.615 +-145.682 136.185 289.209 +-142.127 129.846 275.749 +-144.48 129.044 274.045 +-146.942 128.349 272.569 +-150.993 129.018 273.989 +-436.966 365.35 775.878 +-110.589 90.5028 192.197 +-110.608 88.6211 188.201 +-111.607 87.5701 185.969 +-112.864 86.7419 184.21 +-114.341 86.0969 182.84 +-115.6 85.2994 181.147 +-117.546 85.0131 180.539 +-119.489 84.7192 179.914 +-121.742 84.6348 179.735 +-124.849 85.1183 180.762 +-437.362 292.47 621.106 +-438.489 287.653 610.876 +-439.287 282.744 600.45 +-440.644 278.31 591.034 +-441.457 273.641 581.12 +-442.457 269.198 571.684 +-444.528 265.496 563.823 +-445.6 261.283 554.876 +-447.426 257.596 547.046 +-448.412 253.507 538.362 +-449.875 249.769 530.423 +-451.403 246.14 522.716 +-452.817 242.519 515.026 +-454.243 238.972 507.494 +-456.259 235.795 500.747 +-457.986 232.523 493.8 +-459.42 229.16 486.656 +-460.553 225.707 479.323 +-461.912 222.423 472.349 +-446.979 211.484 449.119 +-445.822 207.27 440.17 +-447.868 204.608 434.516 +-451.079 202.502 430.045 +-457.363 201.768 428.485 +-459.867 199.361 423.374 +-461.387 196.559 417.424 +-462.614 193.672 411.292 +-480.087 197.508 419.439 +-472.146 190.877 405.357 +-134.569 53.4601 113.531 +-134.701 52.5834 111.669 +-473.309 181.556 385.561 +-475.212 179.111 380.371 +-2472.81 915.759 1944.76 +-479.36 174.417 370.401 +-141.259 50.4959 107.236 +-142.673 50.1044 106.404 +-143.228 49.4112 104.932 +-142.513 48.2934 102.558 +-142.315 47.3681 100.593 +-143.042 46.7597 99.3015 +-146.07 46.8926 99.5838 +-148.312 46.7533 99.2879 +-497.707 154.05 327.149 +-499.786 151.873 322.525 +-501.649 149.642 317.788 +-503.211 147.337 312.894 +-505.713 145.318 308.605 +-508.087 143.268 304.251 +-524.337 145.062 308.063 +-512.951 139.217 295.648 +-530.115 141.12 299.689 +-516.956 134.959 286.606 +-519.015 132.856 282.141 +-522.233 131.051 278.307 +-524.032 128.892 273.721 +-526.652 126.938 269.573 +-529.582 125.058 265.581 +-2879.44 666.04 1414.44 +-380.904 86.2814 183.232 +-380.262 84.3311 179.09 +-381.173 82.7399 175.711 +-380.705 80.8637 171.727 +-378.482 78.642 167.009 +-381.974 77.617 164.832 +-380.649 75.6181 160.587 +-381.001 73.9703 157.087 +-379.03 71.8926 152.675 +-380.855 70.5485 149.821 +-380.537 68.8138 146.137 +-380.916 67.2171 142.746 +-380.331 65.4636 139.022 +-381.936 64.0939 136.113 +-380.341 62.1982 132.087 +-380.757 60.6475 128.794 +-381.985 59.2297 125.783 +-380.639 57.4234 121.947 +-381.611 55.9783 118.879 +-381.131 54.3279 115.374 +-381.659 52.83 112.193 +-380.152 51.0629 108.44 +-381.183 49.6477 105.435 +-381.323 48.12 102.19 +-380.948 46.536 98.8265 +-381.019 45.0156 95.5976 +-380.188 43.3989 92.1642 +-380.966 41.9732 89.1366 +-382.102 40.5862 86.1911 +-381.752 39.0448 82.9177 +-379.615 37.3366 79.29 +-381.341 36.0161 76.4858 +-381.086 34.5085 73.2841 +-380.799 33.0055 70.0922 +-380.282 31.491 66.876 +-381.208 30.0993 63.9205 +-380.628 28.5922 60.7199 +-380.016 27.0917 57.5333 +-380.062 25.6446 54.4602 +-380.672 24.2369 51.4709 +-380.065 22.7556 48.325 +-380.318 21.3306 45.2989 +-380.344 19.8952 42.2505 +-381.532 18.519 39.328 +-380.405 17.0331 36.1724 +-380.739 15.6182 33.1677 +-380.447 14.1799 30.1133 +-381.321 12.785 27.151 +-381.568 11.367 24.1395 +-380.489 9.91416 21.0543 +-381.177 8.51039 18.0731 +-380.837 7.08369 15.0433 +-148.31 2.20638 4.6856 +-145.85 1.62706 3.4553 +-145.378 1.08105 2.29579 +-146.394 0.544263 1.15583 +96.5 -3.55271e-15 -1.7053e-13 +96.4963 0.365613 0.758603 +96.4853 0.731199 1.51715 +96.4669 1.09673 2.27558 +96.5412 1.46369 3.03697 +96.4082 1.82751 3.79186 +96.3678 2.1927 4.54959 +96.32 2.55773 5.30698 +97.1627 2.94982 6.12052 +97.0997 3.31783 6.88411 +97.129 3.68937 7.655 +97.0511 4.05723 8.41826 +96.9659 4.42476 9.18086 +96.8733 4.79198 9.94278 +96.7732 5.15885 10.704 +96.6659 5.52528 11.4643 +96.5511 5.89132 12.2238 +96.3301 6.25046 12.969 +96.0033 6.60161 13.6976 +95.7683 6.95793 14.4369 +95.6248 7.3205 15.1892 +95.4741 7.68254 15.9404 +96.1995 8.11853 16.845 +95.9346 8.47402 17.5826 +95.8585 8.84619 18.3548 +95.677 9.20906 19.1077 +95.5857 9.58096 19.8793 +95.2923 9.93259 20.6089 +96.1563 10.4088 21.5971 +95.8466 10.7618 22.3295 +95.6267 11.1246 23.0822 +96.2667 11.5909 24.0497 +96.03 11.9552 24.8056 +95.6902 12.3062 25.5339 +96.2999 12.7825 26.5222 +96.1347 13.1599 27.3053 +96.6273 13.631 28.2827 +96.2549 13.9828 29.0126 +96.8211 14.4742 30.0322 +96.5265 14.8404 30.7922 +96.2245 15.2056 31.5498 +96.8519 15.7216 32.6205 +96.4389 16.0724 33.3484 +97.0426 16.5963 34.4354 +96.7053 16.9634 35.197 +97.0997 17.462 36.2316 +96.8371 17.8462 37.0287 +96.5664 18.2297 37.8245 +96.2877 18.6125 38.6188 +95.9099 18.9767 39.3743 +96.4311 19.5228 40.5075 +96.8474 20.0556 41.613 +96.4406 20.4218 42.3727 +96.7424 20.9414 43.4509 +96.3178 21.3071 44.2097 +96.6842 21.8516 45.3395 +96.2413 22.2171 46.0979 +96.582 22.7673 47.2395 +96.8204 23.3008 48.3464 +96.3484 23.6668 49.1057 +96.5618 24.2045 50.2215 +96.761 24.7458 51.3445 +96.1742 25.0891 52.0568 +96.5189 25.6793 53.2815 +96.5927 26.2051 54.3724 +96.0623 26.57 55.1296 +96.2794 27.1458 56.3243 +96.4806 27.7252 57.5265 +96.6658 28.3082 58.7361 +96.0931 28.6734 59.4938 +96.2504 29.2605 60.7119 +96.2285 29.8005 61.8325 +96.3539 30.3936 63.0631 +95.7394 30.7575 63.8182 +95.7564 31.3281 65.0021 +95.8371 31.9276 66.2459 +95.8221 32.5033 67.4404 +95.8695 33.1083 68.6959 +95.8998 33.7162 69.9571 +95.9129 34.3268 71.224 +95.7556 34.8843 72.3807 +95.7351 35.4995 73.6572 +95.7726 36.1457 74.998 +95.6416 36.7373 76.2256 +95.5684 37.3598 77.517 +96.0672 38.219 79.2999 +95.4417 38.6408 80.175 +95.7494 39.4492 81.8524 +95.6722 40.1121 83.2278 +95.4329 40.7165 84.4818 +95.8837 41.6291 86.3754 +95.6741 42.2695 87.7041 +95.3766 42.8802 88.9713 +95.1994 43.5547 90.3708 +95.6162 44.5173 92.368 +95.2582 45.1338 93.6472 +95.4849 46.0416 95.5308 +95.1522 46.6942 96.8848 +95.391 47.6428 98.8531 +95.0792 48.3322 100.284 +95.3254 49.3226 102.338 +94.7757 49.9165 103.571 +94.7127 50.7796 105.362 +94.809 51.7482 107.371 +94.6887 52.6187 109.178 +94.1754 53.2856 110.561 +94.6655 54.5416 113.167 +94.1604 55.2476 114.632 +94.5746 56.5153 117.263 +94.5384 57.543 119.395 +94.296 58.4682 121.315 +94.25 59.5388 123.536 +94.1122 60.5774 125.691 +94.2708 61.8369 128.304 +94.0592 62.8832 130.475 +94.2961 64.2625 133.337 +94.0607 65.354 135.602 +93.893 66.5219 138.025 +93.8399 67.8057 140.689 +93.4886 68.9068 142.973 +93.6 70.3864 146.043 +93.5605 71.7965 148.969 +93.4713 73.2115 151.905 +93.7617 74.9746 155.563 +93.5657 76.4 158.521 +93.2732 77.7915 161.408 +93.7944 79.9215 165.827 +93.3892 81.3229 168.735 +93.3731 83.1173 172.458 +93.1626 84.8001 175.95 +92.976 86.5667 179.616 +93.0986 88.6933 184.028 +93.3867 91.0655 188.95 +92.7092 92.5703 192.072 +115.344 117.976 244.787 +115.188 120.735 250.511 +115.266 123.864 257.003 +115.008 126.76 263.012 +114.749 129.785 269.288 +112.732 130.906 271.615 +109.139 130.186 270.121 +106.484 130.554 270.884 +103.27 130.213 270.177 +100.744 130.723 271.235 +97.3095 130.026 269.789 +94.9028 130.68 271.145 +91.6293 130.121 269.986 +90.9133 133.252 276.482 +90.9603 137.723 285.759 +90.7274 142.037 294.711 +90.6902 146.947 304.897 +90.1118 151.278 313.883 +89.9949 156.711 325.156 +89.7131 162.239 336.626 +89.2606 167.86 348.29 +86.6191 169.633 351.969 +85.618 174.881 362.857 +88.3599 188.558 391.235 +85.6923 191.4 397.132 +80.8215 189.327 392.831 +77.7076 191.336 396.999 +72.9345 189.225 392.62 +69.7228 191.124 396.559 +64.9918 188.804 391.746 +61.7511 190.763 395.811 +57.1835 188.579 391.279 +53.9394 190.728 395.738 +49.5038 188.639 391.403 +46.0971 190.417 395.092 +41.8367 188.639 391.404 +38.3224 190.175 394.59 +34.0983 188.105 390.296 +30.6789 190.48 395.222 +26.5317 188.335 390.772 +22.965 190.249 394.745 +18.9177 188.117 390.32 +15.293 190.134 394.505 +11.3451 188.101 390.288 +7.64241 190.091 394.415 +3.77772 187.942 389.957 +3.10862e-14 189.859 393.935 +-3.77772 187.942 389.957 +-7.61798 189.483 393.155 +-11.3137 187.581 389.207 +-15.265 189.787 393.785 +-18.8828 187.77 389.6 +-22.8446 189.252 392.676 +-26.373 187.208 388.435 +-30.4557 189.093 392.346 +-33.9728 187.413 388.859 +-38.1219 189.18 392.526 +-41.5012 187.127 388.266 +-45.8148 189.251 392.673 +-49.1076 187.129 388.27 +-53.4153 188.875 391.893 +-56.6353 186.771 387.528 +-61.1248 188.828 391.796 +-64.2675 186.7 387.381 +-68.8468 188.723 391.577 +-71.8782 186.484 386.933 +-76.5962 188.6 391.322 +-79.5458 186.339 386.63 +-84.2994 188.289 390.677 +-87.383 186.473 386.909 +-92.0633 188.046 390.173 +-95.0819 186.207 386.356 +-99.9907 188.039 390.158 +-102.879 186.049 386.028 +-107.946 187.969 390.013 +-110.718 185.871 385.661 +-115.899 187.793 389.649 +-118.868 186.092 386.118 +-124.257 188.139 390.365 +-126.699 185.704 385.313 +-132.532 188.206 390.506 +-135.979 187.242 388.504 +-142.148 189.94 394.103 +-144.501 187.5 389.041 +-142.924 180.213 373.921 +-142.969 175.286 363.697 +-143.067 170.657 354.094 +-142.745 165.758 343.928 +-143.598 162.414 336.99 +-144.145 158.874 329.645 +-144.036 154.78 321.149 +-144.96 151.942 315.262 +-145.391 148.709 308.554 +-145.504 145.286 301.451 +-148.011 144.332 299.473 +-145.267 138.393 287.149 +-142.718 132.88 275.709 +-145.297 132.256 274.415 +-148.301 132.012 273.91 +-438.122 381.514 791.596 +-437.011 372.374 772.631 +-110.543 92.1944 191.292 +-110.889 90.5454 187.871 +-112.228 89.7405 186.201 +-112.864 88.4002 183.42 +-114.833 88.1206 182.84 +-116 87.231 180.994 +-118.358 87.2371 181.007 +-120.158 86.8225 180.146 +-122.839 87.0304 180.578 +-126.386 87.8132 182.202 +-437.416 298.098 618.518 +-438.652 293.261 608.482 +-439.949 288.583 598.776 +-440.644 283.63 588.499 +-442.307 279.409 579.741 +-443.317 274.878 570.339 +-444.528 270.572 561.405 +-446.129 266.595 553.152 +-447.783 262.73 545.134 +-448.954 258.666 536.701 +-450.423 254.854 528.792 +-451.588 250.948 520.688 +-454 247.801 514.157 +-455.376 244.148 506.578 +-456.704 240.537 499.086 +-458.05 237.002 491.75 +-460.394 234.036 485.597 +-461.472 230.481 478.22 +-463.105 227.26 471.537 +-464.176 223.819 464.398 +-465.617 220.612 457.743 +-448.073 208.615 432.85 +-449.358 205.586 426.567 +-455.696 204.876 425.092 +-458.254 202.46 420.08 +-461.67 200.44 415.888 +-465.61 198.653 412.181 +-466.708 195.674 406.001 +-480.198 197.844 410.502 +-475.526 192.523 399.462 +-2415.69 961.049 1994.06 +-136.367 53.3086 110.609 +-476.71 183.111 379.934 +-2472.81 933.267 1936.42 +-142.424 52.8124 109.579 +-142.714 51.9914 107.876 +-142.519 51.0071 105.834 +-143.694 50.5196 104.822 +-142.513 49.2166 102.119 +-142.315 48.2736 100.162 +-143.28 47.7327 99.0396 +-146.789 48.0244 99.6449 +-148.07 47.5694 98.7009 +-498.759 157.327 326.435 +-500.518 155.003 321.612 +-502.14 152.652 316.735 +-504.612 150.572 312.419 +-506.874 148.436 307.987 +-509.254 146.342 303.643 +-515.279 145.282 301.443 +-522.144 144.421 299.655 +-515.952 139.975 290.432 +-518.235 137.879 286.083 +-520.215 135.709 281.58 +-522.923 133.733 277.48 +-524.898 131.573 272.998 +-527.784 129.643 268.995 +-530.02 127.555 264.661 +-383.955 90.5102 187.798 +-381.345 88.0329 182.658 +-381.592 86.2437 178.945 +-380.638 84.2036 174.712 +-381.153 82.5065 171.191 +-381.538 80.7928 167.635 +-381.974 79.1009 164.125 +-381.465 77.2288 160.24 +-381.82 75.5464 156.75 +-380.766 73.6027 152.717 +-380.855 71.8973 149.178 +-379.984 70.0278 145.299 +-380.454 68.4192 141.962 +-380.424 66.7312 138.459 +-382.309 65.3827 135.661 +-381.274 63.5427 131.843 +-381.319 61.8981 128.431 +-381.421 60.273 125.059 +-382.335 58.7821 121.966 +-381.139 56.9782 118.223 +-380.562 55.2836 114.707 +-381.659 53.84 111.712 +-380.152 52.0391 107.975 +-380.801 50.546 104.877 +-379.98 48.8671 101.393 +-380.852 47.414 98.3784 +-381.79 45.9691 95.3804 +-380.961 44.3184 91.9554 +-380.772 42.7539 88.7092 +-380.938 41.2361 85.5599 +-380.683 39.6798 82.3308 +-380.589 38.1481 79.1526 +-380.365 36.6107 75.9628 +-381.673 35.2223 73.0821 +-381.583 33.7057 69.9353 +-381.166 32.1676 66.7438 +-379.143 30.5086 63.3017 +-380.628 29.1388 60.4595 +-381.495 27.7171 57.5096 +-380.951 26.196 54.3535 +-382.452 24.8158 51.4898 +-380.56 23.2208 48.1804 +-380.219 21.7328 45.0929 +-381.435 20.3337 42.1901 +-380.637 18.8288 39.0676 +-381.001 17.386 36.0738 +-380.739 15.9168 33.0255 +-380.646 14.4586 29.9998 +-381.321 13.0295 27.0346 +-381.568 11.5843 24.036 +-380.988 10.1169 20.9914 +-380.178 8.65038 17.9485 +-380.837 7.21912 14.9788 +-3274.5 49.6456 103.009 +-146.45 1.66498 3.45463 +-146.278 1.10854 2.30009 +-145.394 0.550882 1.14302 +96.5 -3.55271e-15 -1.7053e-13 +96.4963 0.372442 0.755274 +96.2853 0.743312 1.50736 +96.4669 1.11721 2.26559 +96.4412 1.48948 3.02052 +96.2083 1.85778 3.76739 +96.3678 2.23366 4.52963 +96.32 2.6055 5.28369 +96.2649 2.97715 6.03736 +96.3022 3.35204 6.7976 +96.2324 3.72359 7.55106 +96.0557 4.09062 8.29536 +95.9714 4.46119 9.04684 +96.8733 4.88148 9.89915 +95.88 5.20669 10.5586 +96.5667 5.62273 11.4023 +96.5511 6.00136 12.1701 +96.3301 6.36721 12.912 +96.0033 6.72491 13.6374 +95.7683 7.08789 14.3735 +95.5264 7.44958 15.107 +96.2607 7.89052 16.0012 +95.316 8.19423 16.6171 +96.0326 8.64114 17.5234 +95.8585 9.01141 18.2742 +95.677 9.38106 19.0238 +95.4883 9.74996 19.7719 +96.2646 10.2214 20.7279 +96.0593 10.5925 21.4806 +96.7179 11.0625 22.4337 +96.496 11.4354 23.1898 +96.2667 11.8074 23.9441 +96.7991 12.276 24.8945 +96.649 12.6617 25.6765 +96.3955 13.0342 26.4321 +96.0393 13.3925 27.1586 +96.6273 13.8856 28.1586 +95.591 14.1457 28.6861 +95.9701 14.6149 29.6376 +96.6208 15.1324 30.687 +96.1306 15.4745 31.3807 +96.8519 16.0153 32.4773 +96.5322 16.3885 33.2341 +96.9495 16.8901 34.2514 +96.6126 17.2636 35.0089 +96.2682 17.6358 35.7637 +96.8371 18.1795 36.8662 +96.5664 18.5702 37.6585 +96.1963 18.9422 38.4129 +96.9109 19.5328 39.6106 +96.4311 19.8874 40.3297 +96.0351 20.2589 41.0829 +96.3507 20.7838 42.1475 +96.8319 21.3522 43.3002 +96.2287 21.685 43.975 +96.6842 22.2598 45.1406 +96.9476 22.7982 46.2324 +96.4941 23.1715 46.9894 +96.8204 23.736 48.1342 +96.2613 24.087 48.8459 +96.5618 24.6566 50.0011 +96.761 25.208 51.1192 +96.1742 25.5577 51.8283 +96.4336 26.1359 53.0008 +96.6775 26.718 54.1813 +96.8213 27.2802 55.3214 +96.2794 27.6528 56.0771 +96.4806 28.2431 57.274 +96.6658 28.8369 58.4784 +96.0107 29.1839 59.1819 +96.2504 29.807 60.4455 +96.3099 30.3828 61.6132 +95.6258 30.7273 62.3119 +95.7394 31.332 63.5381 +95.8363 31.9399 64.7708 +95.8371 32.5239 65.9552 +95.8221 33.1104 67.1445 +95.8695 33.7267 68.3944 +95.9775 34.3738 69.7066 +95.9901 34.9961 70.9685 +95.8322 35.5642 72.1206 +95.8112 36.1913 73.3922 +95.7726 36.8208 74.6689 +95.6416 37.4235 75.891 +95.4941 38.028 77.1168 +95.4774 38.6938 78.4672 +95.9536 39.5737 80.2513 +95.7494 40.186 81.4931 +95.6003 40.8305 82.8002 +95.5042 41.508 84.1739 +95.318 42.1564 85.4889 +95.6741 43.059 87.3192 +95.5155 43.7447 88.7098 +95.1306 44.3364 89.9097 +95.548 45.3165 91.8971 +95.1907 45.944 93.1698 +95.4849 46.9016 95.1116 +95.1522 47.5663 96.4596 +95.4566 48.5658 98.4865 +95.0792 49.235 99.8435 +95.3254 50.2438 101.889 +94.8393 50.8829 103.185 +95.1532 51.9687 105.387 +94.809 52.7148 106.9 +94.7503 53.6365 108.769 +94.6624 54.5613 110.645 +94.6053 55.5254 112.6 +94.5768 56.528 114.633 +94.5159 57.5351 116.675 +94.4223 58.5457 118.725 +94.4107 59.6323 120.928 +94.25 60.6509 122.994 +94.0003 61.6354 124.99 +94.326 63.0285 127.815 +94.0592 64.0577 129.902 +94.2961 65.4628 132.752 +94.2726 66.7246 135.311 +93.7885 67.6892 137.267 +93.8914 69.1102 140.148 +93.5393 70.2318 142.423 +93.6 71.701 145.402 +94.0037 73.4838 149.018 +93.5198 74.6174 151.316 +93.714 76.3361 154.802 +93.5657 77.827 157.825 +93.3656 79.3232 160.859 +93.3858 81.0595 164.38 +93.4338 82.8812 168.075 +93.0224 84.3518 171.057 +93.2057 86.4243 175.26 +92.976 88.1836 178.827 +93.0572 90.3096 183.139 +93.0613 92.4431 187.465 +92.2307 93.8129 190.243 +114.953 119.773 242.887 +115.188 122.99 249.412 +114.929 125.809 255.127 +114.935 129.046 261.691 +115 132.498 268.693 +113.467 134.221 272.187 +109.994 133.657 271.042 +107.352 134.076 271.893 +104.084 133.691 271.111 +101.188 133.752 271.235 +98.1129 133.548 270.822 +95.3538 133.754 271.238 +92.214 133.397 270.516 +91.0269 135.911 275.613 +90.6847 139.871 283.643 +90.4869 144.307 292.639 +90.4573 149.307 302.779 +90.1618 154.189 312.68 +89.8014 159.295 323.033 +89.643 165.14 334.886 +87.8659 168.324 341.343 +85.3421 170.254 345.258 +88.7991 184.766 374.687 +86.8247 188.742 382.75 +83.8415 190.764 386.849 +79.0538 188.645 382.552 +75.9363 190.467 386.247 +71.1685 188.092 381.431 +68.1272 190.238 385.783 +63.4546 187.782 380.802 +60.3733 189.99 385.28 +55.813 187.497 380.226 +52.7694 190.076 385.454 +48.3038 187.504 380.239 +45.1667 190.059 385.419 +40.8207 187.496 380.223 +37.4944 189.541 384.37 +33.3922 187.65 380.536 +30.0441 190.022 385.346 +25.9456 187.615 380.463 +22.494 189.828 384.951 +18.4859 187.256 379.737 +14.9789 189.707 384.707 +11.0859 187.238 379.699 +7.47487 189.396 384.076 +3.6922 187.118 379.456 +2.66454e-14 189.115 383.506 +-3.68522 186.764 378.739 +-7.44869 188.733 382.731 +-11.0571 186.751 378.713 +-14.8916 188.602 382.466 +-18.4161 186.549 378.303 +-22.3318 188.459 382.175 +-25.7869 186.467 378.136 +-29.7093 187.905 381.052 +-33.1333 186.195 377.585 +-37.1894 187.999 381.243 +-40.5715 186.352 377.902 +-44.7068 188.123 381.495 +-47.9076 185.966 377.121 +-52.2332 188.144 381.538 +-55.3692 186.007 377.202 +-59.6496 187.713 380.662 +-62.7008 185.551 376.278 +-67.1886 187.617 380.468 +-70.1452 185.387 375.947 +-74.8771 187.81 380.86 +-77.6141 185.209 375.585 +-82.4295 187.551 380.334 +-85.2697 185.362 375.895 +-90.005 187.275 379.775 +-92.7444 185.021 375.204 +-97.8312 187.414 380.057 +-100.638 185.395 375.963 +-105.623 187.36 379.947 +-108.415 185.404 375.98 +-113.492 187.328 379.881 +-116.115 185.178 375.521 +-121.391 187.231 379.686 +-124.03 185.187 375.539 +-129.404 187.196 379.614 +-131.95 185.087 375.337 +-138.718 188.819 382.905 +-141.613 187.186 379.593 +-143.315 184.081 373.297 +-143.07 178.685 362.354 +-142.999 173.762 352.371 +-142.71 168.812 342.334 +-142.63 164.333 333.25 +-142.716 160.237 324.945 +-143.999 157.63 319.657 +-143.774 153.513 311.309 +-145.625 151.731 307.695 +-145.902 148.405 300.95 +-145.327 144.362 292.751 +-144.645 140.374 284.665 +-143.141 135.762 275.312 +-145.685 135.085 273.939 +-149.265 135.352 274.481 +-437.943 388.482 787.801 +-108.867 94.497 191.63 +-110.496 93.8774 190.374 +-111.124 92.4321 187.443 +-112.371 91.5329 185.619 +-113.494 90.5542 183.635 +-115.129 89.9974 182.505 +-116.8 89.4733 181.443 +-119.17 89.4764 181.449 +-120.982 89.0509 180.586 +-124.146 89.5984 181.696 +-127.764 90.4286 183.38 +-437.953 304.039 616.559 +-439.197 299.11 606.564 +-440.28 294.195 596.597 +-440.812 289.038 586.139 +-443.213 285.212 578.38 +-443.489 280.121 568.056 +-445.806 276.418 560.547 +-446.658 271.896 551.377 +-448.437 268.029 543.535 +-449.496 263.815 534.991 +-450.97 259.93 527.111 +-452.45 256.123 519.392 +-454.56 252.74 512.532 +-455.376 248.708 504.355 +-458.231 245.849 498.557 +-459.207 242.038 490.829 +-461.173 238.811 484.284 +-461.734 234.919 476.392 +-463.967 231.936 470.342 +-465.18 228.492 463.359 +-467.103 225.45 457.189 +-468.396 222.15 450.498 +-470.009 219.051 444.213 +-452.292 207.143 420.065 +-453.909 204.286 414.27 +-460.821 203.808 413.302 +-463.47 201.433 408.485 +-461.672 197.179 399.858 +-480.633 201.722 409.071 +-470.407 194.007 393.427 +-472.595 191.527 388.397 +-134.658 53.6236 108.743 +-135.411 52.985 107.448 +-478.637 184.017 373.168 +-140.903 53.2243 107.933 +-143.174 53.1332 107.749 +-142.365 51.9032 105.254 +-143.073 51.2407 103.911 +-142.591 50.1633 101.726 +-142.157 49.1209 99.6121 +-143.676 48.7591 98.8785 +-147.588 49.1872 99.7466 +-497.266 162.737 330.014 +-499.163 160.396 325.267 +-500.681 157.949 320.305 +-503.369 155.884 316.117 +-505.437 153.635 311.556 +-507.205 151.307 306.836 +-2732.06 799.764 1621.84 +-511.254 146.839 297.775 +-528.722 148.972 302.099 +-515.952 142.59 289.157 +-519.002 140.662 285.249 +-520.558 138.335 280.529 +-523.698 136.433 276.672 +-525.591 134.207 272.159 +-529.002 132.37 268.432 +-530.894 130.151 263.933 +-381.319 91.5674 185.689 +-381.698 89.7603 182.025 +-382.302 88.0182 178.492 +-379.301 85.4752 173.335 +-381.153 84.0475 170.44 +-380.37 82.0498 166.389 +-381.433 80.4642 163.173 +-381.465 78.6712 159.537 +-380.546 76.7009 155.542 +-380.583 74.9411 151.973 +-380.305 73.1345 148.309 +-381.089 71.5432 145.082 +-380.823 69.7648 141.476 +-381.351 68.1434 138.188 +-380.82 66.3447 134.54 +-382.114 64.8724 131.555 +-381.413 63.0697 127.899 +-381.609 61.4289 124.571 +-380.921 59.6584 120.981 +-380.477 57.9415 117.5 +-381.89 56.513 114.603 +-381.279 54.7908 111.11 +-381.01 53.131 107.744 +-381.183 51.5419 104.522 +-380.651 49.8679 101.127 +-380.564 48.2629 97.8722 +-380.923 46.7211 94.7456 +-381.251 45.1807 91.6218 +-380.772 43.5525 88.3199 +-379.871 41.8886 84.9458 +-381.169 40.4725 82.0741 +-381.466 38.9501 78.9868 +-381.829 37.4381 75.9205 +-380.695 35.7883 72.5749 +-380.799 34.2647 69.4853 +-380.97 32.7515 66.4167 +-381.208 31.2477 63.3671 +-380.333 29.66 60.1475 +-381.002 28.1983 57.1833 +-381.346 26.7129 54.171 +-380.672 25.1616 51.0252 +-381.055 23.6853 48.0314 +-380.318 22.1444 44.9067 +-380.741 20.6758 41.9284 +-381.532 19.2255 38.9874 +-381.001 17.7107 35.9155 +-379.943 16.1802 32.8118 +-380.148 14.7093 29.829 +-380.922 13.2589 26.8878 +-379.174 11.7266 23.7803 +-379.69 10.2708 20.8282 +-380.678 8.82354 17.8932 +-380.038 7.33852 14.8818 +-3274.5 50.5729 102.557 +-148.749 1.7227 3.49347 +-144.978 1.11921 2.26965 +-145.994 0.563485 1.14269 +95.6 3.55271e-15 1.13687e-13 +95.5964 0.375703 0.74487 +96.4853 0.758452 1.50371 +96.4669 1.13761 2.25542 +96.4412 1.51667 3.00696 +96.4082 1.89562 3.75827 +96.4676 2.27679 4.51396 +96.4198 2.65581 5.26542 +96.3647 3.03464 6.01648 +96.2025 3.40969 6.76007 +97.0294 3.82296 7.57942 +97.0511 4.20845 8.34369 +96.9659 4.58969 9.09953 +96.8733 4.97059 9.85471 +96.7732 5.35113 10.6092 +96.5667 5.72537 11.3511 +96.5511 6.11091 12.1155 +96.3301 6.48343 12.8541 +96.0033 6.84767 13.5762 +95.7683 7.21727 14.309 +95.6248 7.59335 15.0546 +96.359 8.04275 15.9456 +96.1995 8.42113 16.6958 +96.0326 8.79888 17.4447 +95.7607 9.16659 18.1737 +95.5794 9.54253 18.9191 +96.4626 10.0293 19.8841 +96.2646 10.408 20.6349 +96.0593 10.7859 21.3841 +95.8466 11.163 22.1317 +96.496 11.6441 23.0857 +96.2667 12.0229 23.8366 +96.03 12.4008 24.5858 +95.6902 12.7649 25.3077 +96.2999 13.259 26.2873 +96.0393 13.6369 27.0366 +95.7714 14.0138 27.7839 +96.3497 14.5183 28.784 +96.0647 14.8964 29.5336 +96.5265 15.3936 30.5194 +96.2245 15.7724 31.2704 +96.8519 16.3076 32.3315 +96.5322 16.6876 33.0849 +96.9495 17.1984 34.0976 +96.6126 17.5788 34.8517 +96.3606 17.975 35.6373 +96.9292 18.529 36.7356 +96.5664 18.9092 37.4895 +96.1963 19.288 38.2404 +96.8199 19.8707 39.3958 +96.4311 20.2505 40.1486 +96.7571 20.7838 41.206 +96.4406 21.183 41.9974 +96.7424 21.7219 43.066 +96.3178 22.1013 43.8181 +96.6842 22.6661 44.9379 +96.9476 23.2144 46.0249 +96.582 23.6159 46.821 +96.0332 23.9728 47.5285 +96.2613 24.5267 48.6267 +96.6484 25.1292 49.8213 +96.761 25.6681 50.8897 +96.1742 26.0242 51.5957 +96.4336 26.6129 52.7629 +96.6775 27.2057 53.9381 +96.0623 27.5604 54.6413 +96.2794 28.1576 55.8254 +96.4806 28.7586 57.0169 +96.6658 29.3633 58.2158 +96.0931 29.7421 58.9668 +96.2504 30.3511 60.1741 +96.2285 30.9113 61.2847 +95.7067 31.3147 62.0847 +95.8197 31.9307 63.306 +95.8363 32.5229 64.48 +95.8371 33.1176 65.6591 +95.8221 33.7148 66.843 +95.7912 34.3144 68.0318 +95.8998 34.9729 69.3374 +95.9129 35.6063 70.5931 +95.8322 36.2134 71.7969 +95.8112 36.8519 73.0628 +95.7726 37.493 74.3336 +95.6416 38.1066 75.5503 +95.5684 38.7522 76.8303 +95.4037 39.3698 78.0546 +96.0267 40.3267 79.9519 +95.822 40.9506 81.1887 +95.6003 41.5759 82.4284 +95.4329 42.2341 83.7334 +95.318 42.926 85.1051 +95.6741 43.845 86.9272 +95.4461 44.5109 88.2474 +95.1994 45.1781 89.5703 +95.548 46.1437 91.4846 +95.1907 46.7827 92.7515 +95.4849 47.7577 94.6846 +95.086 48.4008 95.9596 +94.8661 49.1466 97.4381 +95.0142 50.0995 99.3274 +94.6826 50.816 100.748 +94.712 51.7424 102.585 +94.6498 52.6376 104.36 +94.7467 53.6419 106.351 +94.6887 54.58 108.21 +94.4798 55.45 109.935 +94.5451 56.5029 112.023 +94.5173 57.5239 114.047 +94.5746 58.6218 116.224 +94.3642 59.5779 118.119 +94.8695 61.0163 120.971 +94.6465 62.0174 122.956 +94.0003 62.7605 124.429 +93.7741 63.8035 126.497 +94.0047 65.1896 129.245 +94.3498 66.696 132.232 +93.6367 67.4842 133.794 +93.8407 68.9631 136.726 +93.9429 70.41 139.595 +93.5393 71.5138 141.784 +93.55 72.9707 144.672 +93.5112 74.4334 147.572 +93.5198 75.9795 150.637 +93.7617 77.7691 154.185 +93.1901 78.9297 156.486 +93.3656 80.7711 160.137 +93.4312 82.5793 163.722 +93.4338 84.3941 167.32 +92.9785 85.851 170.208 +93.2057 88.0019 174.473 +92.9338 89.7523 177.943 +93.0572 91.9581 182.316 +93.0207 94.0896 186.542 +92.8288 96.145 190.617 +105.81 112.259 222.565 +115.188 125.235 248.292 +114.929 128.105 253.981 +114.971 131.443 260.599 +115 134.917 267.487 +114.203 137.557 272.722 +110.507 136.731 271.084 +107.853 137.16 271.934 +104.703 136.94 271.498 +101.982 137.261 272.134 +98.8545 137.014 271.645 +96.0154 137.14 271.894 +92.9742 136.952 271.522 +90.6577 137.83 273.263 +90.7123 142.467 282.456 +90.4869 146.941 291.325 +90.509 152.119 301.592 +90.1118 156.916 311.103 +89.8014 162.202 321.583 +88.3357 165.702 328.521 +87.416 170.519 338.071 +88.5887 179.957 356.783 +88.6535 187.831 372.394 +84.8909 187.907 372.545 +81.9143 189.781 376.261 +77.2861 187.793 372.319 +74.2693 189.686 376.072 +69.5676 187.217 371.177 +66.6254 189.44 375.585 +62.1686 187.334 371.41 +59.0094 189.088 374.887 +54.7427 187.259 371.26 +51.5751 189.165 375.04 +47.3529 187.168 371.08 +44.0587 188.78 374.277 +39.9868 187.019 370.784 +36.6403 188.604 373.928 +32.6468 186.811 370.371 +29.3047 188.729 374.175 +25.3901 186.949 370.645 +21.9916 188.975 374.663 +18.0977 186.67 370.093 +14.6264 188.625 373.968 +10.8451 186.514 369.783 +7.31081 188.621 373.96 +3.60842 186.21 369.181 +2.66454e-14 188.244 373.213 +-3.61017 186.3 369.36 +-7.29685 188.26 373.245 +-10.8294 186.244 369.247 +-14.5636 187.814 372.362 +-17.9974 185.635 368.041 +-21.8817 188.031 372.791 +-25.1886 185.465 367.704 +-29.1722 187.875 372.482 +-32.4585 185.733 368.236 +-36.4398 187.573 371.882 +-39.6514 185.45 367.673 +-43.7974 187.661 372.057 +-46.9454 185.557 367.887 +-51.0876 187.377 371.495 +-54.2467 185.562 367.895 +-58.397 187.125 370.995 +-61.4592 185.197 367.171 +-65.6712 186.727 370.206 +-68.7918 185.129 367.038 +-73.1927 186.936 370.62 +-75.9558 184.561 365.911 +-80.4832 186.465 369.687 +-83.4554 184.73 366.245 +-88.009 186.465 369.687 +-90.883 184.617 366.023 +-95.6717 186.623 369.999 +-98.4439 184.663 366.113 +-103.543 187.022 370.791 +-106.111 184.777 366.339 +-111.137 186.789 370.328 +-113.737 184.696 366.178 +-119.02 186.926 370.6 +-121.445 184.637 366.062 +-126.831 186.823 370.396 +-129.364 184.771 366.328 +-135.319 187.554 371.845 +-138.377 186.246 369.253 +-144.292 188.719 374.154 +-143.57 182.583 361.99 +-142.999 176.934 350.789 +-142.99 172.231 341.466 +-142.63 167.332 331.754 +-142.752 163.204 323.569 +-143.961 160.465 318.139 +-143.812 156.357 309.994 +-144.063 152.842 303.026 +-145.504 150.701 298.78 +-145.612 147.285 292.007 +-142.323 140.642 278.838 +-143.563 138.649 274.886 +-146.718 138.526 274.643 +-150.931 139.361 276.298 +-437.542 395.21 783.545 +-111.182 98.2684 194.827 +-110.635 95.7109 189.757 +-111.359 94.3179 186.995 +-112.848 93.5996 185.571 +-114.318 92.8768 184.138 +-115.966 92.3067 183.008 +-117.2 91.4182 181.246 +-119.424 91.3033 181.018 +-121.497 91.0624 180.541 +-125.661 92.3477 183.089 +-130.254 93.8743 186.116 +-438.813 310.197 614.997 +-439.197 304.57 603.841 +-440.777 299.903 594.589 +-441.986 295.098 585.062 +-443.213 290.418 575.783 +-444.006 285.566 566.165 +-445.864 281.501 558.104 +-447.128 277.151 549.48 +-448.972 273.247 541.741 +-449.977 268.919 533.159 +-451.579 265.032 525.454 +-453.004 261.118 517.693 +-454.934 257.566 510.65 +-456.131 253.668 502.923 +-458.04 250.233 496.112 +-459.4 246.56 488.831 +-461.563 243.376 482.517 +-462.915 239.819 475.466 +-464.563 236.473 468.832 +-466.116 233.132 462.209 +-468.049 230.03 456.058 +-469.624 226.798 449.651 +-471.454 223.735 443.578 +-472.507 220.351 436.869 +-472.203 216.398 429.032 +-455.942 205.331 407.09 +-460.047 203.595 403.647 +-462.823 201.278 399.055 +-468.809 200.351 397.217 +-471.284 197.917 392.392 +-473.48 195.388 387.378 +-475.092 192.646 381.941 +-132.266 52.6989 104.481 +-134.414 52.6201 104.325 +-135.58 52.1486 103.39 +-141.259 53.3794 105.83 +-140.513 52.1634 103.419 +-142.839 52.0909 103.276 +-142.591 51.079 101.269 +-142.866 50.267 99.6596 +-146.612 50.6633 100.445 +-148.626 50.4377 99.998 +-498.552 166.136 329.382 +-500.296 163.694 324.54 +-502.635 161.46 320.112 +-504.024 158.937 315.108 +-506.096 156.643 310.562 +-507.205 154.069 305.458 +-522.846 155.848 308.985 +-508.989 148.857 295.125 +-521.553 149.634 296.665 +-516.97 145.479 288.427 +-519.343 143.324 284.155 +-521.758 141.185 279.914 +-524.043 139.015 275.611 +-527.15 137.062 271.74 +-529.35 134.875 267.403 +-531.944 132.789 263.268 +-381.055 93.1745 184.728 +-380.727 91.166 180.746 +-382.302 89.6249 177.691 +-380.103 87.2192 172.921 +-379.542 85.2196 168.957 +-379.111 83.271 165.093 +-381.162 81.8749 162.325 +-380.649 79.9362 158.482 +-381.274 78.2501 155.139 +-380.766 76.346 151.364 +-380.855 74.5771 147.857 +-379.984 72.6379 144.012 +-380.176 70.9176 140.601 +-381.351 69.3873 137.567 +-380.541 67.5062 133.838 +-380.061 65.7017 130.26 +-380.476 64.0633 127.012 +-381.703 62.5659 124.043 +-382.807 61.0483 121.035 +-381.611 59.1748 117.32 +-381.036 57.4158 113.833 +-381.279 55.791 110.611 +-380.628 54.0468 107.153 +-381.183 52.4827 104.052 +-380.747 50.7908 100.698 +-380.564 49.1439 97.4328 +-380.73 47.5501 94.273 +-381.251 46.0054 91.2105 +-381.837 44.4715 88.1693 +-381.617 42.8494 84.9533 +-380.197 41.1062 81.4972 +-380.589 39.5699 78.4515 +-380.951 38.0337 75.4058 +-381.478 36.5165 72.3977 +-380.799 34.8902 69.1734 +-380.871 33.3408 66.1015 +-381.798 31.8673 63.1803 +-380.924 30.2483 59.9705 +-381.002 28.713 56.9265 +-381.742 27.2287 53.9837 +-381.068 25.6476 50.849 +-381.055 24.1177 47.8158 +-381.111 22.5957 44.7984 +-380.741 21.0532 41.7402 +-381.035 19.551 38.7619 +-381.399 18.0528 35.7916 +-381.436 16.5403 32.7929 +-381.642 15.0367 29.8119 +-381.52 13.5222 26.8091 +-379.773 11.9595 23.7109 +-380.988 10.494 20.8055 +-380.278 8.97514 17.7941 +-3273.38 64.3628 127.606 +-380.568 5.98495 11.8658 +-147.15 1.73529 3.44039 +-145.878 1.14672 2.27349 +-145.194 0.570627 1.13133 +95.6 3.55271e-15 1.13687e-13 +95.3964 0.381607 0.739899 +96.2853 0.770388 1.49371 +96.5669 1.1591 2.24739 +96.4412 1.54374 2.99315 +96.5081 1.93145 3.74489 +96.3678 2.31502 4.48859 +96.32 2.70041 5.23582 +96.2649 3.08559 5.98266 +96.2025 3.47054 6.72904 +97.0294 3.89118 7.54462 +96.9516 4.27916 8.29687 +96.8664 4.66683 9.04851 +96.8733 5.05929 9.80946 +96.7732 5.44662 10.5605 +96.6659 5.8335 11.3106 +96.5511 6.21996 12.0599 +96.3301 6.59913 12.7951 +96.0033 6.96987 13.5139 +95.867 7.35363 14.258 +96.5112 7.8005 15.1244 +95.4741 8.1111 15.7266 +96.1995 8.57141 16.6191 +96.0326 8.9559 17.3646 +95.8585 9.33965 18.1087 +95.677 9.72277 18.8515 +95.4883 10.1051 19.5928 +96.1674 10.583 20.5193 +96.1563 10.9895 21.3075 +95.8466 11.3622 22.0301 +96.496 11.8519 22.9797 +96.2667 12.2374 23.7272 +96.03 12.6221 24.473 +96.649 13.1229 25.4439 +96.3955 13.509 26.1926 +96.1347 13.894 26.9392 +96.7224 14.4055 27.9309 +96.2549 14.7628 28.6236 +96.9157 15.2965 29.6584 +96.6208 15.6836 30.409 +96.2245 16.0538 31.1268 +96.8519 16.5986 32.1831 +96.5322 16.9854 32.933 +96.2052 17.3709 33.6805 +96.7053 17.9096 34.725 +96.3606 18.2958 35.4737 +96.8371 18.8417 36.5322 +96.5664 19.2466 37.3173 +96.2877 19.6508 38.101 +95.9099 20.0352 38.8464 +96.3405 20.5925 39.9267 +96.0351 20.9968 40.7107 +96.4406 21.561 41.8046 +96.8319 22.13 42.9079 +96.2287 22.4749 43.5766 +96.6842 23.0706 44.7316 +96.153 23.435 45.4381 +96.4941 24.0155 46.5637 +96.1207 24.4228 47.3534 +96.2613 24.9644 48.4034 +96.6484 25.5777 49.5926 +96.0717 25.94 50.2951 +96.2599 26.5122 51.4046 +96.4336 27.0879 52.5207 +95.9142 27.4726 53.2666 +96.1466 28.0769 54.4382 +96.2794 28.6601 55.5691 +95.7301 29.0441 56.3137 +95.9196 29.6566 57.5012 +96.0931 30.2729 58.6961 +96.1684 30.8664 59.8469 +96.2285 31.4629 61.0034 +95.6258 31.8466 61.7474 +95.659 32.446 62.9096 +95.7564 33.0757 64.1305 +95.8371 33.7086 65.3577 +95.5857 34.2318 66.372 +95.7912 34.9267 67.7195 +95.8998 35.597 69.0191 +95.9129 36.2417 70.269 +95.8322 36.8597 71.4672 +95.8112 37.5096 72.7273 +95.7726 38.162 73.9924 +95.6416 38.7867 75.2035 +95.4941 39.4131 76.4181 +96.0672 40.351 78.2366 +95.9536 41.0151 79.5243 +95.7494 41.6498 80.7548 +95.6722 42.3497 82.1118 +95.4329 42.9878 83.349 +95.318 43.692 84.7144 +95.6741 44.6274 86.5281 +95.4461 45.3052 87.8422 +95.1306 45.9513 89.0951 +95.548 46.9671 91.0646 +95.2582 47.6515 92.3915 +95.4849 48.61 94.2499 +95.1522 49.2989 95.5857 +95.3254 50.2656 97.4601 +95.0142 50.9935 98.8714 +95.1968 52.0038 100.83 +94.8393 52.7363 102.25 +94.5869 53.5412 103.811 +94.7467 54.5992 105.862 +94.7503 55.5902 107.784 +94.6624 56.5487 109.642 +94.6655 57.5841 111.65 +94.5173 58.5504 113.523 +94.6334 59.7051 115.762 +94.4223 60.6782 117.649 +94.3533 61.7673 119.761 +94.1367 62.7845 121.733 +94.4477 64.1844 124.447 +94.1604 65.2098 126.435 +93.9502 66.3145 128.577 +93.8662 67.5379 130.949 +94.2196 69.1161 134.009 +93.8407 70.1937 136.099 +93.9429 71.6665 138.954 +93.9961 73.1457 141.822 +93.6 74.3128 144.085 +93.462 75.7218 146.817 +93.4713 77.2954 149.868 +93.3323 78.7944 152.774 +93.5657 80.6618 156.395 +93.3656 82.2125 159.402 +93.4312 84.0529 162.97 +93.3892 85.8594 166.473 +93.3292 87.7126 170.066 +93.2057 89.5723 173.672 +93.2296 91.6446 177.69 +93.0157 93.5574 181.399 +93.0613 95.8104 185.767 +93.3073 98.3649 190.72 +94.9086 102.49 198.718 +115.188 127.47 247.152 +114.929 130.391 252.815 +114.935 133.746 259.32 +115 137.325 266.259 +114.623 140.527 272.468 +111.157 139.99 271.426 +108.42 140.343 272.11 +105.159 139.991 271.428 +102.489 140.406 272.234 +99.1018 139.808 271.074 +96.4363 140.199 271.832 +93.2373 139.791 271.04 +90.3737 139.85 271.156 +90.9052 145.318 281.757 +90.5671 149.695 290.244 +90.3537 154.568 299.693 +90.1118 159.717 309.674 +89.7046 164.919 319.762 +87.5654 167.188 324.161 +85.5039 169.765 329.158 +89.1731 184.377 357.488 +87.8011 189.344 367.12 +83.6548 188.475 365.435 +80.3878 189.568 367.554 +76.0287 188.034 364.58 +72.8454 189.37 367.169 +68.5608 187.8 364.126 +65.2801 188.927 366.311 +61.2374 187.821 364.167 +57.9517 189.013 366.477 +53.8421 187.465 363.475 +50.527 188.628 365.732 +46.5265 187.184 362.93 +43.2539 188.639 365.752 +39.3926 187.527 363.597 +35.9605 188.408 365.305 +32.1996 187.54 363.621 +28.7606 188.53 365.542 +25.0055 187.403 363.355 +21.5205 188.228 364.955 +17.8272 187.162 362.889 +14.3507 188.372 365.234 +10.675 186.864 362.31 +7.15374 187.862 364.246 +3.55345 186.645 361.887 +3.01981e-14 187.936 364.39 +-3.55432 186.691 361.976 +-7.13978 187.495 363.535 +-10.6619 186.634 361.866 +-14.3088 187.822 364.168 +-17.7618 186.475 361.556 +-21.463 187.725 363.979 +-24.8651 186.35 361.315 +-28.6002 187.478 363.502 +-31.9721 186.215 361.052 +-35.76 187.358 363.269 +-39.1434 186.341 361.297 +-42.888 187.043 362.659 +-46.2548 186.09 360.811 +-50.137 187.172 362.908 +-53.333 185.692 360.038 +-57.228 186.652 361.9 +-60.6462 186.008 360.651 +-64.4979 186.664 361.923 +-67.7355 185.54 359.743 +-71.7167 186.436 361.48 +-74.9717 185.42 359.511 +-78.9949 186.283 361.185 +-82.1994 185.197 359.078 +-86.4705 186.475 361.556 +-89.6276 185.316 359.31 +-93.9621 186.558 361.718 +-96.8798 184.972 358.643 +-101.365 186.357 361.327 +-104.684 185.545 359.753 +-109.015 186.491 361.588 +-112.106 185.297 359.273 +-116.567 186.34 361.295 +-119.656 185.164 359.014 +-124.258 186.3 361.217 +-127.289 185.052 358.798 +-132.105 186.367 361.348 +-136.504 187.005 362.585 +-141.199 187.969 364.453 +-142.202 184.07 356.893 +-143.135 180.263 349.513 +-143.025 175.348 339.982 +-142.666 170.361 330.313 +-142.752 166.116 322.083 +-142.575 161.756 313.629 +-144.08 159.444 309.146 +-144.023 155.528 301.553 +-143.829 151.625 293.986 +-145.734 150.039 290.91 +-142.779 143.611 278.447 +-144.324 141.871 275.073 +-147.536 141.785 274.906 +-153.167 143.95 279.104 +-437.542 402.263 779.948 +-111.046 99.8996 193.695 +-110.912 97.6627 189.358 +-111.781 96.3655 186.843 +-113.277 95.6325 185.422 +-114.754 94.895 183.992 +-116.015 93.9938 182.245 +-118.05 93.7247 181.723 +-120.236 93.5648 181.413 +-122.013 93.0803 180.473 +-126.706 94.7772 183.764 +-437.925 321.246 622.864 +-438.974 315.848 612.398 +-440.232 310.735 602.485 +-441.274 305.599 592.526 +-442.154 300.478 582.597 +-443.553 295.827 573.579 +-445.095 291.376 564.948 +-446.561 286.972 556.41 +-447.892 282.579 547.892 +-449.567 278.492 539.968 +-451.06 274.376 531.989 +-452.127 270.089 523.676 +-453.312 265.958 515.667 +-455.183 262.305 508.584 +-456.761 258.551 501.305 +-458.676 255.052 494.52 +-460.429 251.522 487.676 +-462.732 248.346 481.518 +-463.506 244.41 473.886 +-465.159 241.002 467.278 +-466.451 237.463 460.416 +-468.927 234.574 454.815 +-470.033 231.047 447.976 +-472.487 228.227 442.509 +-473.201 224.613 435.503 +-475.357 221.731 429.914 +-454.811 208.477 404.216 +-460.189 207.292 401.919 +-462.248 204.615 396.729 +-464.53 202.065 391.783 +-471.284 201.449 390.59 +-473.774 198.999 385.839 +-2434.91 1004.96 1948.52 +-478.882 194.206 376.547 +-135.018 53.7997 104.312 +-136.949 53.615 103.954 +-140.646 54.0963 104.887 +-141.825 53.5898 103.905 +-142.14 52.7611 102.298 +-142.826 52.0762 100.971 +-142.63 51.0797 99.0385 +-146.612 51.5674 99.9841 +-148.386 51.2548 99.378 +-498.954 169.238 328.135 +-501.024 166.858 323.52 +-502.635 164.342 318.642 +-504.27 161.852 313.814 +-506.426 159.543 309.338 +-509.029 157.382 305.149 +-513.674 155.846 302.171 +-516.705 153.811 298.224 +-516.324 150.778 292.343 +-517.733 148.294 287.527 +-520.111 146.097 283.268 +-522.872 144.011 279.223 +-525.249 141.821 274.977 +-527.15 139.508 270.493 +-529.873 137.417 266.437 +-2865.69 728.129 1411.77 +-382.198 95.1214 184.431 +-380.815 92.8144 179.958 +-381.858 91.1184 176.67 +-382.42 89.317 173.177 +-379.631 86.761 168.221 +-380.999 85.1791 165.154 +-381.523 83.4148 161.733 +-381.465 81.5369 158.092 +-381.001 79.5896 154.316 +-381.405 77.8391 150.922 +-382.047 76.1458 147.639 +-380.445 74.0235 143.524 +-380.269 72.201 139.991 +-380.98 70.5568 136.803 +-382.309 69.0299 133.842 +-380.621 66.9727 129.853 +-380.757 65.2547 126.522 +-381.327 63.6196 123.352 +-380.921 61.8315 119.885 +-381.422 60.201 116.724 +-381.89 58.5715 113.564 +-380.423 56.6591 109.856 +-380.915 55.0525 106.741 +-380.801 53.3657 103.471 +-380.556 51.6715 100.186 +-381.14 50.0965 97.1321 +-380.345 48.3496 93.7451 +-380.768 46.7668 90.6762 +-381.644 45.2421 87.72 +-380.744 43.5142 84.3698 +-381.072 41.936 81.3098 +-380.589 40.2761 78.0913 +-381.732 38.7918 75.2135 +-380.499 37.0728 71.8804 +-379.623 35.4031 68.6431 +-381.853 34.0232 65.9676 +-380.323 32.3107 62.6472 +-380.924 30.7881 59.6951 +-381.002 29.2254 56.6652 +-381.149 27.6716 53.6525 +-381.068 26.1053 50.6155 +-381.55 24.58 47.6581 +-380.715 22.975 44.5463 +-380.741 21.4289 41.5485 +-380.637 19.8792 38.5437 +-381.399 18.375 35.6273 +-380.54 16.7959 32.5656 +-380.148 15.2451 29.5588 +-380.424 13.7239 26.6093 +-380.97 12.2113 23.6765 +-381.787 10.7037 20.7534 +-380.278 9.13531 17.7125 +-3273.38 65.5114 127.02 +-381.068 6.09977 11.8268 +-3275.38 39.3148 76.2275 +-144.478 1.15598 2.24133 +-145.694 0.582813 1.13002 +96.3 0 -1.7053e-13 +96.4963 0.392744 0.744918 +96.4853 0.785459 1.48978 +96.267 1.17567 2.2299 +96.4412 1.57068 2.9791 +96.5081 1.96515 3.72731 +96.3678 2.35542 4.46752 +96.32 2.74753 5.21124 +96.2649 3.13944 5.95458 +96.2025 3.53111 6.69745 +97.0294 3.95909 7.50921 +96.9516 4.35384 8.25793 +96.9659 4.75312 9.01524 +96.8733 5.14758 9.76342 +96.7732 5.54167 10.5109 +96.6659 5.9353 11.2575 +95.6599 6.27007 11.8924 +96.429 6.7212 12.7481 +96.0033 7.0915 13.4505 +95.867 7.48196 14.191 +95.6248 7.86373 14.9152 +95.4741 8.25265 15.6528 +96.1013 8.71208 16.5242 +95.9346 9.10286 17.2654 +95.8585 9.50264 18.0237 +95.677 9.89244 18.763 +95.5857 10.2919 19.5207 +96.2646 10.7786 20.4437 +96.0593 11.17 21.1861 +95.8466 11.5605 21.9267 +96.496 12.0587 22.8718 +96.2667 12.451 23.6158 +96.03 12.8423 24.3581 +95.7861 13.2327 25.0984 +96.2999 13.7311 26.0438 +96.1347 14.1365 26.8127 +96.7224 14.6569 27.7998 +96.3497 15.0353 28.5174 +96.9157 15.5634 29.5192 +96.5265 15.9417 30.2367 +96.2245 16.334 30.9807 +96.8519 16.8883 32.032 +97.2791 17.4155 33.0321 +96.2052 17.674 33.5224 +96.7053 18.2222 34.562 +96.3606 18.6151 35.3072 +96.8371 19.1705 36.3607 +96.5664 19.5825 37.1422 +96.2877 19.9937 37.9221 +96.8199 20.5783 39.0309 +96.4311 20.9715 39.7767 +96.7571 21.5238 40.8243 +96.4406 21.9372 41.6084 +96.7424 22.4954 42.667 +96.3178 22.8883 43.4122 +96.5955 23.4517 44.4808 +96.9476 24.041 45.5985 +96.4941 24.4346 46.3451 +96.8204 25.0299 47.4742 +96.2613 25.4 48.1762 +96.6484 26.024 49.3598 +96.761 26.5821 50.4183 +96.2599 26.9749 51.1633 +96.4336 27.5606 52.2742 +96.6775 28.1744 53.4384 +96.8213 28.7673 54.5629 +96.3632 29.1856 55.3564 +96.4806 29.7826 56.4888 +95.9196 30.1742 57.2314 +96.0107 30.7747 58.3704 +96.2504 31.4318 59.6167 +96.2285 32.0119 60.7171 +95.6258 32.4023 61.4576 +95.7394 33.04 62.667 +95.7564 33.6529 63.8295 +95.7577 34.2685 64.997 +95.7433 34.8866 66.1695 +95.7912 35.5362 67.4016 +95.8998 36.2182 68.6951 +95.9129 36.8741 69.9392 +95.8322 37.5029 71.1318 +95.7351 38.1338 72.3285 +95.7726 38.828 73.6451 +95.6416 39.4635 74.8505 +95.4941 40.1009 76.0595 +95.4037 40.7716 77.3316 +95.9536 41.7309 79.151 +95.7494 42.3766 80.3758 +95.6722 43.0887 81.7264 +95.5042 43.7706 83.0198 +95.318 44.4545 84.3168 +95.6741 45.4062 86.122 +95.4461 46.0958 87.4299 +95.6813 47.0237 89.19 +95.548 47.7867 90.6372 +95.2582 48.483 91.9578 +95.4849 49.4583 93.8075 +95.1522 50.1592 95.137 +94.8005 50.8616 96.4692 +95.0142 51.8834 98.4073 +95.1968 52.9113 100.357 +94.7757 53.6207 101.702 +94.6498 54.5119 103.393 +94.7467 55.552 105.365 +94.6887 56.5234 107.208 +94.7233 57.5728 109.198 +94.7859 58.6637 111.267 +94.5768 59.6095 113.061 +94.5159 60.6714 115.076 +94.5384 61.8131 117.241 +94.3533 62.8452 119.199 +94.1934 63.9184 121.234 +93.8885 64.9178 123.13 +94.0501 66.2699 125.694 +94.0592 67.5496 128.121 +94.2961 69.0313 130.932 +93.6897 69.9268 132.63 +93.8407 71.4187 135.46 +93.9944 72.9573 138.378 +93.4378 73.9801 140.318 +93.6 75.6096 143.409 +93.5112 77.0838 146.205 +93.4713 78.6443 149.165 +93.38 80.2104 152.135 +93.6126 82.1109 155.74 +93.3656 83.6472 158.654 +93.4312 85.5197 162.205 +93.3892 87.3577 165.691 +92.9347 88.866 168.552 +93.1626 91.093 172.776 +92.8915 92.9058 176.214 +92.9742 95.1477 180.467 +93.0613 97.4824 184.895 +92.9883 99.7392 189.175 +93.502 102.733 194.854 +114.805 129.264 245.175 +114.929 132.667 251.629 +114.935 136.08 258.103 +115.179 139.939 265.422 +114.553 142.892 271.023 +111.43 142.783 270.817 +108.754 143.232 271.667 +105.452 142.83 270.907 +102.521 142.9 271.039 +99.658 143.046 271.316 +96.707 143.046 271.315 +93.7051 142.944 271.122 +90.5441 142.559 270.393 +90.6847 147.495 279.754 +90.5938 152.353 288.968 +90.3537 157.266 298.286 +90.1118 162.504 308.221 +89.6079 167.616 317.918 +87.7755 170.514 323.414 +85.4589 172.637 327.44 +89.0865 187.412 355.464 +87.2397 191.417 363.061 +83.2959 190.942 362.16 +79.5864 190.953 362.182 +75.5366 190.078 360.52 +72.1508 190.837 361.961 +68.2802 190.295 360.933 +64.6857 190.474 361.272 +60.8384 189.854 360.096 +57.4228 190.556 361.428 +53.6071 189.904 360.19 +50.0883 190.253 360.854 +46.368 189.801 359.997 +42.794 189.89 360.165 +39.1434 189.593 359.601 +35.5857 189.698 359.801 +31.9878 189.557 359.533 +28.5025 190.099 360.561 +24.8407 189.416 359.266 +21.3426 189.929 360.239 +17.74 189.496 359.418 +14.225 189.981 360.337 +10.6278 189.286 359.018 +7.08742 189.368 359.175 +3.53686 189.017 358.509 +2.57572e-14 189.49 359.407 +-3.53861 189.11 358.686 +-7.08044 189.182 358.821 +-10.5912 188.633 357.78 +-14.1517 189.002 358.48 +-17.6528 188.565 357.651 +-21.2222 188.858 358.207 +-24.7124 188.439 357.412 +-28.356 189.122 358.708 +-31.8309 188.627 357.769 +-35.4201 188.816 358.127 +-38.8846 188.339 357.223 +-42.6163 189.102 358.67 +-46.0511 188.504 357.536 +-49.6861 188.726 357.957 +-53.1111 188.147 356.858 +-56.727 188.247 357.047 +-60.2619 188.055 356.684 +-63.9035 188.171 356.904 +-67.4385 187.949 356.484 +-71.1263 188.127 356.821 +-74.6619 187.877 356.346 +-78.3462 187.977 356.537 +-81.8605 187.651 355.919 +-85.5349 187.676 355.966 +-89.2381 187.731 356.069 +-92.9723 187.815 356.228 +-96.483 187.429 355.497 +-100.349 187.708 356.027 +-103.983 187.519 355.667 +-107.953 187.899 356.388 +-111.519 187.542 355.712 +-115.575 187.978 356.538 +-119.116 187.545 355.717 +-122.942 187.544 355.714 +-126.537 187.17 355.005 +-130.776 187.712 356.034 +-135.362 188.677 357.863 +-139.994 189.618 359.648 +-140.7 185.304 351.466 +-143.17 183.453 347.956 +-142.99 178.364 338.303 +-142.595 173.247 328.598 +-142.789 169.059 320.654 +-142.425 164.406 311.829 +-143.851 161.967 307.204 +-144.023 158.242 300.138 +-143.869 154.314 292.687 +-146.1 153.041 290.273 +-142.654 145.99 276.899 +-144.747 144.769 274.584 +-148.225 144.932 274.893 +-151.808 145.162 275.329 +-437.72 409.45 776.604 +-110.501 101.144 191.841 +-110.589 99.0774 187.92 +-111.828 98.0882 186.044 +-113.421 97.4245 184.785 +-114.754 96.551 183.128 +-116.458 95.9993 182.082 +-118.4 95.643 181.406 +-120.185 95.1575 180.485 +-122.322 94.9443 180.081 +-126.81 96.5109 183.052 +-438.243 327.089 620.391 +-438.813 321.242 609.3 +-440.232 316.158 599.657 +-441.274 310.932 589.745 +-442.657 306.07 580.523 +-443.893 301.22 571.325 +-445.095 296.46 562.297 +-446.561 291.98 553.798 +-448.186 287.698 545.678 +-449.567 283.352 537.434 +-451.06 279.165 529.492 +-452.492 275.025 521.639 +-454.112 271.078 514.153 +-455.183 266.883 506.197 +-457.201 263.317 499.434 +-458.676 259.502 492.199 +-460.429 255.911 485.387 +-462.407 252.503 478.922 +-464.096 248.992 472.264 +-465.491 245.382 465.416 +-467.321 242.057 459.11 +-469.265 238.84 453.007 +-470.647 235.385 446.456 +-472.487 232.209 440.432 +-474.243 229.036 434.413 +-475.567 225.7 428.086 +-463.933 216.369 410.388 +-459.761 210.713 399.66 +-466.06 209.903 398.124 +-464.24 205.463 389.701 +-470.772 204.742 388.334 +-473.037 202.157 383.431 +-476.356 200.037 379.41 +-479.107 197.688 374.956 +-141.131 57.217 108.523 +-140.219 55.8528 105.936 +-141.412 55.3402 104.964 +-142.21 54.6733 103.699 +-142.373 53.7695 101.985 +-142.826 52.985 100.497 +-142.157 51.7985 98.2463 +-147.564 52.8083 100.161 +-147.508 51.8405 98.326 +-499.275 172.301 326.804 +-501.024 169.769 322.002 +-503.123 167.372 317.454 +-505.253 164.997 312.95 +-506.838 162.459 308.136 +-509.444 160.26 303.964 +-511.589 157.922 299.532 +-520.227 157.562 298.848 +-516.24 153.384 290.923 +-518.073 150.98 286.365 +-520.622 148.793 282.216 +-522.872 146.524 277.912 +-525.594 144.39 273.866 +-527.929 142.153 269.621 +-530.134 139.884 265.318 +-382.121 98.7854 187.366 +-381.055 96.4923 183.017 +-382.14 94.7624 179.736 +-381.592 92.6437 175.717 +-381.262 90.6005 171.842 +-380.884 88.5666 167.984 +-379.291 86.2771 163.642 +-381.613 84.8906 161.012 +-380.649 82.7825 157.014 +-382.639 81.327 154.253 +-381.131 79.1406 150.106 +-380.03 77.0656 146.17 +-380.169 75.2607 142.747 +-380.176 73.4428 139.299 +-380.98 71.7881 136.161 +-380.82 69.9613 132.696 +-381.554 68.3084 129.561 +-381.413 66.5077 126.145 +-380.763 64.6343 122.592 +-381.393 62.9884 119.47 +-380.76 61.1453 115.974 +-381.416 59.5195 112.891 +-381.279 57.7775 109.587 +-380.628 55.9713 106.161 +-381.374 54.379 103.141 +-382.377 52.8246 100.192 +-380.564 50.8938 96.5303 +-380.634 49.2307 93.3758 +-380.092 47.4985 90.0905 +-381.644 46.0317 87.3083 +-380.259 44.2172 83.8667 +-381.752 42.7441 81.0727 +-380.784 40.9999 77.7646 +-381.341 39.4284 74.7839 +-381.478 37.8167 71.727 +-380.799 36.1325 68.5326 +-381.755 34.608 65.6411 +-380.716 32.9086 62.4177 +-380.825 31.3174 59.3997 +-381.002 29.7354 56.3992 +-380.556 28.1107 53.3176 +-381.365 26.5815 50.4171 +-381.55 25.0089 47.4344 +-381.111 23.4003 44.3834 +-381.138 21.8256 41.3966 +-381.134 20.2525 38.4129 +-381.001 18.6762 35.4231 +-380.341 17.0801 32.3959 +-381.642 15.5722 29.5357 +-380.424 13.9634 26.4845 +-380.67 12.4146 23.5468 +-381.387 10.8791 20.6343 +-381.177 9.3167 17.671 +-3273.38 66.6546 126.424 +-380.068 6.18994 11.7405 +-3275.38 40.0009 75.8697 +-146.478 1.19243 2.26169 +-145.394 0.591762 1.1224 +96.5 -3.55271e-15 -1.7053e-13 +96.4963 0.399447 0.741345 +96.2853 0.797209 1.47956 +96.4669 1.19822 2.22381 +96.4412 1.59748 2.96481 +96.4082 1.99663 3.7056 +96.4676 2.3981 4.4507 +96.32 2.79442 5.18625 +96.2649 3.19302 5.92602 +96.3022 3.5951 6.67224 +96.1328 3.98945 7.40414 +96.9516 4.42815 8.21832 +96.0708 4.7896 8.88916 +96.8733 5.23544 9.71659 +96.7732 5.63625 10.4605 +96.6659 6.0366 11.2035 +96.5511 6.43651 11.9457 +96.3301 6.82889 12.6739 +96.0033 7.21253 13.3859 +95.867 7.60965 14.123 +95.5264 7.98974 14.8284 +96.359 8.47129 15.7221 +96.1995 8.86983 16.4618 +95.9346 9.25822 17.1826 +95.8585 9.66482 17.9372 +95.677 10.0613 18.673 +95.4883 10.4569 19.4073 +96.2646 10.9625 20.3457 +96.0593 11.3606 21.0844 +95.8466 11.7578 21.8216 +95.6267 12.1541 22.5571 +96.2667 12.6635 23.5026 +96.03 13.0615 24.2413 +95.7861 13.4585 24.978 +96.2999 13.9654 25.9188 +96.0393 14.3635 26.6577 +96.6273 14.8924 27.6393 +96.3497 15.2919 28.3806 +96.9157 15.8291 29.3776 +96.6208 16.2296 30.1211 +96.2245 16.6128 30.8321 +96.8519 17.1765 31.8784 +96.4389 17.5598 32.5897 +96.2052 17.9757 33.3616 +96.5198 18.4976 34.3302 +97.0997 19.078 35.4073 +96.9292 19.5163 36.2208 +96.5664 19.9167 36.964 +96.2877 20.335 37.7402 +95.9099 20.7328 38.4786 +96.4311 21.3295 39.586 +96.0351 21.7278 40.3253 +96.3507 22.2909 41.3702 +96.8319 22.9005 42.5017 +96.4069 23.3004 43.244 +96.6842 23.8738 44.3081 +96.2413 24.2731 45.0492 +96.4941 24.8516 46.1229 +96.0332 25.2501 46.8624 +96.3484 25.8569 47.9886 +96.5618 26.4445 49.079 +96.761 27.0358 50.1765 +96.1742 27.4108 50.8726 +96.4336 28.0309 52.0234 +96.6775 28.6553 53.1821 +96.1466 29.0544 53.9229 +96.2794 29.6579 55.043 +96.4806 30.2909 56.2178 +95.9196 30.6891 56.9569 +96.0107 31.3 58.0905 +96.1684 31.9411 59.2804 +96.2285 32.5583 60.4259 +95.6258 32.9554 61.1628 +95.7394 33.6039 62.3664 +95.7564 34.2273 63.5233 +95.7577 34.8533 64.6853 +95.8221 35.5112 65.9062 +95.8695 36.1722 67.1331 +95.8998 36.8364 68.3657 +95.8358 37.4733 69.5478 +95.8322 38.143 70.7906 +95.7351 38.7847 71.9816 +95.7726 39.4907 73.2919 +95.5667 40.1056 74.4331 +95.5684 40.8171 75.7536 +95.4037 41.4675 76.9607 +95.9536 42.4431 78.7714 +95.822 43.1325 80.0509 +95.6722 43.8241 81.3344 +95.4329 44.4844 82.5599 +95.8837 45.4815 84.4104 +95.6741 46.1811 85.7089 +95.4461 46.8825 87.0106 +95.6813 47.8263 88.7622 +95.548 48.6023 90.2024 +95.2582 49.3105 91.5168 +95.4849 50.3024 93.3576 +95.1522 51.0153 94.6807 +94.7349 51.6936 95.9396 +95.0142 52.7689 97.9354 +94.6826 53.5236 99.336 +94.712 54.4993 101.147 +94.5869 55.4053 102.828 +94.6845 56.4631 104.791 +94.7503 57.5256 106.763 +94.6624 58.5175 108.604 +94.6655 59.589 110.593 +94.6958 60.7032 112.661 +94.5746 61.7453 114.595 +94.4804 62.8297 116.607 +94.4107 63.9562 118.698 +94.1934 65.0093 120.653 +93.9444 66.0652 122.612 +94.1604 67.4801 125.238 +94.0047 68.6631 127.434 +94.2424 70.1696 130.23 +94.2196 71.5224 132.741 +93.8407 72.6376 134.81 +93.9944 74.2025 137.714 +93.4886 75.2835 139.721 +93.6 76.9 142.721 +93.5112 78.3994 145.504 +93.5198 80.0278 148.526 +93.4277 81.6207 151.482 +93.1901 83.1352 154.293 +93.3194 85.0326 157.814 +93.4312 86.9793 161.427 +93.3892 88.8487 164.897 +92.9347 90.3827 167.744 +93.1626 92.6477 171.947 +93.2296 94.8353 176.008 +93.0157 96.8147 179.681 +92.6953 98.7562 183.284 +93.0282 101.485 188.349 +93.502 104.486 193.919 +114.843 131.514 244.08 +114.892 134.887 250.34 +114.935 138.403 256.865 +114.785 141.84 263.245 +114.588 145.375 269.806 +111.841 145.755 270.51 +108.721 145.631 270.281 +105.777 145.717 270.44 +102.807 145.744 270.491 +99.658 145.488 270.015 +96.9776 145.895 270.77 +93.7344 145.428 269.905 +90.7713 145.356 269.771 +90.6847 150.012 278.412 +90.6473 155.044 287.751 +90.3537 159.95 296.856 +90.1618 165.369 306.913 +89.5837 170.431 316.308 +87.6354 173.147 321.349 +85.6839 176.046 326.728 +89.1298 190.703 353.932 +86.8447 193.802 359.683 +82.9371 193.364 358.87 +79.2239 193.328 358.803 +75.2086 192.482 357.233 +71.7167 192.927 358.058 +67.9666 192.654 357.553 +64.5292 193.256 358.67 +60.7201 192.719 357.672 +57.1723 192.963 358.125 +53.3983 192.392 357.067 +49.8933 192.747 357.725 +46.153 192.145 356.608 +42.6999 192.706 357.649 +38.9805 192.026 356.387 +35.4898 192.416 357.111 +31.8779 192.131 356.581 +28.3769 192.492 357.251 +24.7918 192.27 356.84 +21.2432 192.271 356.841 +17.7007 192.304 356.903 +14.1622 192.37 357.025 +10.5833 191.71 355.8 +7.05775 191.794 355.956 +3.52988 191.864 356.085 +2.75335e-14 191.871 356.098 +-3.52378 191.531 355.469 +-7.06473 191.984 356.308 +-10.5729 191.521 355.448 +-14.1203 191.801 355.97 +-17.6091 191.309 355.056 +-21.1856 191.75 355.874 +-24.6575 191.229 354.907 +-28.2444 191.593 355.582 +-31.6896 190.995 354.474 +-35.2806 191.282 355.007 +-38.7984 191.129 354.721 +-42.4281 191.48 355.373 +-45.8699 190.967 354.421 +-49.479 191.147 354.755 +-52.8762 190.511 353.575 +-56.6295 191.131 354.725 +-60.0106 190.467 353.492 +-63.7783 191.008 354.497 +-67.1579 190.362 353.299 +-70.7964 190.45 353.462 +-74.3339 190.244 353.079 +-77.9836 190.301 353.185 +-81.5016 190.017 352.659 +-85.3685 190.508 353.569 +-88.8701 190.147 352.9 +-92.7473 190.558 353.662 +-96.2729 190.213 353.021 +-100.156 190.543 353.635 +-103.582 189.984 352.597 +-107.488 190.281 353.148 +-111.011 189.875 352.394 +-115.189 190.548 353.643 +-118.69 190.064 352.745 +-122.621 190.246 353.082 +-125.996 189.55 351.791 +-130.251 190.149 352.903 +-134.379 190.502 353.558 +-139.636 192.361 357.008 +-140.099 187.662 348.287 +-143.238 186.673 346.452 +-142.99 181.408 336.68 +-142.63 176.248 327.104 +-142.789 171.944 319.116 +-142.725 167.564 310.987 +-143.545 164.381 305.08 +-143.984 160.899 298.617 +-143.709 156.773 290.96 +-145.815 155.349 288.317 +-142.779 148.611 275.811 +-144.874 147.369 273.506 +-148.096 147.277 273.336 +-151.15 147 272.821 +-437.095 415.844 771.776 +-110.774 103.124 191.392 +-110.681 100.852 187.175 +-111.875 99.804 185.229 +-113.277 98.9621 183.667 +-114.657 98.1163 182.097 +-116.409 97.5964 181.132 +-118.4 97.2753 180.536 +-120.388 96.9447 179.922 +-122.734 96.8902 179.821 +-127.49 98.6836 183.15 +-438.508 332.873 617.789 +-439.672 327.364 607.565 +-440.232 321.554 596.781 +-441.77 316.595 587.577 +-442.657 311.293 577.738 +-443.553 306.126 568.149 +-444.923 301.403 559.383 +-446.386 296.847 550.927 +-448.186 292.609 543.061 +-450.102 288.531 535.492 +-451.06 283.929 526.952 +-452.492 279.718 519.137 +-454.112 275.704 511.687 +-455.93 271.883 504.596 +-457.39 267.922 497.243 +-458.676 263.931 489.838 +-460.622 260.388 483.261 +-462.732 256.992 476.959 +-464.096 253.242 469.999 +-465.756 249.712 463.448 +-467.856 246.47 457.432 +-469.265 242.916 450.834 +-470.647 239.403 444.315 +-472.693 236.276 438.511 +-474.243 232.945 432.33 +-475.567 229.552 426.033 +-471.923 223.852 415.453 +-459.761 214.31 397.744 +-465.773 213.354 395.97 +-463.514 208.643 387.226 +-469.602 207.719 385.511 +-474.069 206.056 382.425 +-477.025 203.736 378.12 +-479.107 201.062 373.157 +-140.904 58.1 107.83 +-140.827 57.0527 105.886 +-140.569 55.9494 103.838 +-141.207 55.2142 102.474 +-142.995 54.9262 101.939 +-142.669 53.83 99.9047 +-142.551 52.8287 98.0463 +-147.405 53.6517 99.5737 +-149.664 53.4961 99.2849 +-499.436 175.299 325.342 +-501.024 172.667 320.458 +-503.123 170.228 315.932 +-505.253 167.813 311.449 +-507.827 165.554 307.257 +-509.526 163.021 302.556 +-511.339 160.539 297.95 +-521.821 160.742 298.325 +-515.987 155.925 289.386 +-517.733 153.457 284.805 +-520.622 151.333 280.862 +-522.872 149.025 276.58 +-525.594 146.855 272.552 +-528.275 144.674 268.504 +-529.873 142.201 263.915 +-383.346 100.794 187.066 +-381.319 98.2069 182.265 +-380.992 96.0904 178.337 +-380.971 94.0716 174.59 +-380.282 91.9096 170.578 +-378.736 89.5701 166.236 +-381.538 88.2695 163.822 +-380.801 86.1558 159.899 +-380.831 84.2352 156.335 +-381.274 82.4195 152.965 +-382.045 80.6838 149.743 +-381.405 78.6646 145.996 +-380.629 76.6377 142.234 +-380.731 74.8054 138.833 +-381.907 73.1907 135.837 +-381.75 71.3289 132.381 +-382.768 69.6953 129.349 +-383.38 67.9919 126.188 +-381.985 65.948 122.395 +-381.393 64.0634 118.897 +-381.139 62.251 115.533 +-382.269 60.671 112.601 +-381.659 58.8225 109.17 +-381.01 56.9834 105.757 +-380.609 55.1961 102.44 +-380.747 53.497 99.2867 +-380.083 51.6969 95.9458 +-381.598 50.1975 93.163 +-381.251 48.4567 89.9322 +-381.644 46.8173 86.8895 +-381.617 45.1325 83.7627 +-381.072 43.3961 80.54 +-381.076 41.7317 77.451 +-380.658 40.0295 74.2919 +-381.478 38.4622 71.383 +-380.799 36.7492 68.2039 +-380.282 35.0629 65.0743 +-381.601 33.548 62.2627 +-380.431 31.8189 59.0536 +-381.397 30.2742 56.1868 +-382.038 28.7018 53.2685 +-380.573 26.9791 50.0713 +-381.847 25.4555 47.2436 +-380.318 23.7501 44.0785 +-380.741 22.175 41.1552 +-381.035 20.5927 38.2186 +-380.007 18.9453 35.1611 +-380.739 17.3898 32.2742 +-379.849 15.7635 29.256 +-380.025 14.1869 26.3298 +-381.768 12.6629 23.5014 +-380.489 11.0387 20.487 +-380.777 9.46579 17.5678 +-3273.38 67.7922 125.818 +-380.568 6.30384 11.6995 +-3275.38 40.6836 75.5058 +-146.778 1.21526 2.25544 +-146.394 0.605998 1.12469 +96.5 -3.55271e-15 -1.7053e-13 +96.2963 0.405277 0.736182 +95.5854 0.804632 1.46161 +96.4669 1.21823 2.21291 +96.4412 1.62416 2.95028 +96.4082 2.02997 3.68743 +96.3678 2.43563 4.4243 +96.32 2.8411 5.16083 +96.2649 3.24635 5.89697 +96.3022 3.65514 6.63954 +97.129 4.09812 7.44419 +96.1553 4.46513 8.11087 +96.8664 4.90997 8.91891 +96.8733 5.32288 9.66897 +96.7732 5.73039 10.4092 +96.6659 6.13742 11.1486 +96.5511 6.54402 11.8872 +96.429 6.95008 12.6248 +96.0033 7.333 13.3203 +95.7683 7.72879 14.0393 +95.6248 8.13153 14.7709 +95.4741 8.53369 15.5014 +96.1013 9.00877 16.3644 +96.0326 9.4225 17.1159 +95.8585 9.82625 17.8493 +96.6533 10.3337 18.7711 +96.4626 10.7401 19.5093 +96.2646 11.1456 20.2459 +96.0593 11.5503 20.9811 +95.9434 11.9662 21.7366 +96.496 12.4694 22.6505 +96.363 12.8879 23.4108 +95.9339 13.2664 24.0983 +96.649 13.8066 25.0795 +96.3955 14.2128 25.8175 +96.0393 14.6035 26.527 +96.6273 15.1412 27.5038 +95.4962 15.4096 27.9913 +96.0647 15.9521 28.9769 +95.7724 16.3558 29.7103 +96.1306 16.8738 30.651 +96.8519 17.4634 31.7221 +96.5322 17.8703 32.4613 +96.9495 18.4173 33.4549 +96.7053 18.8427 34.2277 +96.3606 19.249 34.9656 +96.9292 19.8422 36.0432 +96.5664 20.2494 36.7829 +96.2877 20.6746 37.5553 +96.0009 21.099 38.3262 +96.5218 21.7061 39.4289 +96.7571 22.2568 40.4293 +96.3507 22.6632 41.1675 +96.8319 23.283 42.2933 +96.3178 23.6677 42.9922 +96.6842 24.2726 44.0909 +96.153 24.6559 44.7873 +96.4941 25.2667 45.8968 +96.7329 25.8589 46.9725 +96.2613 26.265 47.7102 +95.869 26.6933 48.4881 +96.761 27.4873 49.9305 +96.2599 27.8935 50.6683 +96.4336 28.4991 51.7684 +96.5927 29.1083 52.875 +96.1466 29.5397 53.6586 +96.2794 30.1533 54.7732 +95.7301 30.5573 55.5071 +95.9196 31.2017 56.6777 +96.0931 31.8501 57.8554 +96.1684 32.4746 58.9898 +95.6586 32.9061 59.7736 +95.7067 33.5342 60.9145 +95.7394 34.1651 62.0607 +95.7564 34.7989 63.212 +96.2338 35.6116 64.6883 +95.7433 36.0747 65.5293 +95.9478 36.8064 66.8586 +95.8998 37.4516 68.0306 +95.9129 38.1299 69.2626 +95.8322 38.7801 70.4437 +95.7351 39.4325 71.6287 +95.6972 40.1186 72.8752 +95.6416 40.8074 74.1264 +95.5684 41.4988 75.3823 +95.4037 42.1601 76.5835 +96.0267 43.1849 78.445 +95.7494 43.8198 79.5982 +95.6722 44.5561 80.9357 +95.5042 45.2612 82.2167 +95.2473 45.9342 83.4392 +95.6741 46.9525 85.2888 +95.5155 47.7002 86.6471 +95.1994 48.3801 87.8821 +94.866 49.0611 89.1191 +95.2582 50.1341 91.0682 +94.8827 50.8199 92.3139 +95.1522 51.8674 94.2167 +94.8661 52.6298 95.6017 +95.0792 53.687 97.5219 +95.0683 54.6394 99.2521 +94.712 55.4096 100.651 +94.6498 56.3683 102.393 +94.6845 57.4062 104.278 +94.6887 58.4483 106.171 +94.7842 59.5715 108.211 +94.1841 60.2761 109.491 +94.5768 61.6395 111.968 +94.0456 62.4256 113.396 +94.4223 63.8396 115.964 +94.4107 65.0245 118.116 +94.25 66.1351 120.134 +94.0003 67.2086 122.084 +94.2156 68.6472 124.697 +94.1136 69.8905 126.956 +94.2961 71.3821 129.665 +93.6897 72.3081 131.347 +93.893 73.8918 134.224 +93.4794 75.0285 136.289 +93.9961 76.9566 139.791 +93.6 78.1845 142.021 +93.462 79.6669 144.714 +93.4713 81.3225 147.722 +93.3323 82.8995 150.586 +93.6126 84.9072 154.233 +93.3656 86.4958 157.119 +93.4312 88.4321 160.636 +93.4338 90.3756 164.166 +93.2854 92.239 167.551 +93.1626 94.1951 171.105 +92.8915 96.0697 174.51 +93.0572 98.4757 178.88 +92.6953 100.406 182.386 +92.9883 103.136 187.345 +92.6033 105.21 191.114 +114.843 133.71 242.884 +114.929 137.185 249.195 +114.971 140.759 255.688 +115.036 144.524 262.527 +114.518 147.713 268.32 +111.806 148.144 269.103 +109.021 148.473 269.7 +105.875 148.288 269.363 +103.092 148.59 269.913 +99.9052 148.285 269.358 +97.2182 148.699 270.111 +93.9975 148.273 269.336 +90.9133 148.015 268.868 +90.6847 152.518 277.048 +90.4602 157.309 285.75 +90.2502 162.435 295.062 +90.1618 168.131 305.409 +89.4385 172.996 314.246 +87.2619 175.289 318.411 +86.2687 180.208 327.346 +88.9134 193.417 351.341 +86.4705 196.19 356.378 +82.2193 194.893 354.021 +78.7469 195.373 354.894 +74.8988 194.891 354.018 +71.543 195.674 355.44 +67.3724 194.16 352.69 +64.1068 195.198 354.576 +60.2028 194.268 352.886 +56.7965 194.896 354.027 +52.9414 193.932 352.277 +49.6739 195.105 354.407 +45.836 194.013 352.423 +42.5013 195.014 354.241 +38.645 193.553 351.588 +35.3417 194.813 353.877 +31.5798 193.512 351.514 +28.2514 194.84 353.926 +24.5659 193.7 351.855 +21.149 194.615 353.517 +17.5481 193.83 352.09 +14.0994 194.716 353.699 +10.4943 193.273 351.079 +7.02634 194.13 352.635 +3.50021 193.428 351.361 +2.39808e-14 194.255 352.863 +-3.49498 193.139 350.835 +-7.01936 193.937 352.284 +-10.4813 193.032 350.641 +-14.0331 193.8 352.036 +-17.5001 193.3 351.127 +-21.0862 194.038 352.468 +-24.4438 192.738 350.107 +-28.1258 193.975 352.354 +-31.4307 192.599 349.854 +-35.1412 193.709 351.87 +-38.4725 192.689 350.018 +-42.2295 193.767 351.976 +-45.4511 192.384 349.464 +-49.2596 193.478 351.45 +-52.5629 192.546 349.758 +-56.2538 193.033 350.644 +-59.5968 192.312 349.334 +-63.4029 193.055 350.682 +-66.5802 191.877 348.543 +-70.5012 192.824 350.263 +-73.6778 191.714 348.247 +-77.6593 192.675 349.992 +-80.9234 191.821 348.44 +-84.9527 192.746 350.122 +-88.026 191.487 347.835 +-92.14 192.472 349.624 +-95.4325 191.702 348.225 +-99.6718 192.79 350.202 +-102.681 191.476 347.815 +-106.866 192.341 349.387 +-110.102 191.466 347.797 +-114.472 192.525 349.72 +-117.639 191.527 347.908 +-122.211 192.777 350.178 +-125.184 191.474 347.811 +-129.664 192.453 349.59 +-133.046 191.763 348.336 +-138.822 194.433 353.187 +-139.097 189.432 344.102 +-143.067 189.565 344.342 +-143.06 184.529 335.195 +-142.881 179.507 326.074 +-142.459 174.412 316.818 +-142.388 169.961 308.732 +-142.511 165.924 301.4 +-143.984 163.586 297.153 +-143.709 159.392 289.534 +-145.083 157.151 285.464 +-143.235 151.576 275.336 +-145.296 150.268 272.96 +-148.655 150.303 273.025 +-438.81 433.889 788.155 +-436.962 422.66 767.758 +-110.456 104.546 189.907 +-111.189 103.007 187.112 +-111.875 101.471 184.321 +-113.373 100.7 182.92 +-115.239 100.261 182.123 +-116.803 99.5622 180.854 +-118.4 98.9001 179.651 +-120.794 98.8967 179.645 +-123.094 98.7978 179.465 +-127.49 100.332 182.252 +-438.667 338.555 614.983 +-439.457 332.67 604.292 +-440.232 326.925 593.856 +-441.77 321.883 584.697 +-442.993 316.733 575.343 +-444.062 311.597 566.014 +-445.612 306.912 557.502 +-447.083 302.277 549.083 +-448.363 297.613 540.612 +-449.924 293.234 532.657 +-451.602 289.018 524.999 +-452.675 284.505 516.801 +-454.112 280.309 509.179 +-455.743 276.311 501.917 +-457.201 272.284 494.602 +-459.312 268.712 488.113 +-461.264 265.106 481.563 +-463.316 261.615 475.222 +-464.096 257.471 467.695 +-466.087 254.063 461.504 +-467.655 250.48 454.994 +-469.333 247.009 448.689 +-471.261 243.719 442.713 +-473.313 240.537 436.933 +-474.243 236.836 430.211 +-476.829 234.006 425.069 +-477.368 230.217 418.187 +-462.4 219.14 398.066 +-465.341 216.716 393.664 +-463.877 212.294 385.63 +-467.262 210.136 381.71 +-472.521 208.813 379.307 +-476.876 207.075 376.149 +-2453.95 1047.03 1901.91 +-140.753 59.0073 107.186 +-142.272 58.6007 106.448 +-137.582 55.6748 101.133 +-141.825 56.3818 102.417 +-143.15 55.9044 101.55 +-143.53 55.0595 100.015 +-142.788 53.8003 97.7278 +-148.278 54.8709 99.6725 +-497.63 180.844 328.502 +-499.677 178.313 323.904 +-501.429 175.693 319.144 +-504.182 173.436 315.045 +-505.007 170.533 309.772 +-506.838 167.991 305.155 +-510.273 165.987 301.513 +-510.588 162.981 296.054 +-525.008 164.425 298.676 +-516.409 158.659 288.203 +-518.497 156.25 283.826 +-520.878 153.935 279.622 +-523.644 151.738 275.63 +-525.594 149.308 271.216 +-527.929 146.994 267.013 +-530.917 144.861 263.139 +-381.597 102.009 185.299 +-380.967 99.7551 181.204 +-382.581 98.1029 178.203 +-380.705 95.5763 173.614 +-381.44 93.7292 170.258 +-379.273 91.1954 165.656 +-379.291 89.2153 162.059 +-381.613 87.7815 159.454 +-378.655 85.1532 154.68 +-381.365 83.8163 152.252 +-380.583 81.7175 148.439 +-380.488 79.7861 144.931 +-379.524 77.6916 141.126 +-380.454 75.9993 138.052 +-381.907 74.4132 135.171 +-380.82 72.3438 131.412 +-379.781 70.3062 127.711 +-380.476 68.6038 124.618 +-381.609 66.9834 121.675 +-381.958 65.2304 118.49 +-381.611 63.3689 115.109 +-382.269 61.6843 112.049 +-380.803 59.6704 108.391 +-380.628 57.8773 105.134 +-380.227 56.0616 101.835 +-380.747 54.3906 98.8 +-380.948 52.68 95.6928 +-381.212 50.9848 92.6135 +-381.251 49.266 89.4914 +-381.644 47.5993 86.4636 +-380.938 45.8046 83.2037 +-380.877 44.0984 80.1043 +-381.368 42.4612 77.1305 +-380.951 40.7294 73.9846 +-380.499 39.0043 70.8509 +-380.309 37.3149 67.7823 +-380.479 35.667 64.7888 +-380.716 34.0292 61.8138 +-381.81 32.4676 58.9771 +-380.016 30.6684 55.709 +-380.556 29.068 52.8018 +-381.661 27.5081 49.9683 +-381.451 25.8539 46.9633 +-381.508 24.2224 43.9997 +-381.535 22.5924 41.0389 +-380.24 20.893 37.952 +-380.802 19.302 35.062 +-381.336 17.708 32.1664 +-381.642 16.1025 29.25 +-380.922 14.4579 26.2626 +-380.77 12.8407 23.3251 +-380.489 11.2231 20.3866 +-379.879 9.60118 17.4405 +-148.359 3.12385 5.67444 +-380.068 6.40074 11.6269 +-3275.38 41.3631 75.1357 +-144.478 1.2162 2.20923 +-146.394 0.61612 1.11918 +96.6 3.55271e-15 -1.7053e-13 +96.4963 0.412758 0.734018 +96.2853 0.823774 1.46494 +96.4669 1.23815 2.20183 +96.4412 1.65071 2.93551 +96.5081 2.0653 3.67277 +96.3678 2.47544 4.40215 +96.4198 2.89054 5.14031 +96.2649 3.29942 5.86745 +96.3022 3.71489 6.60629 +97.0294 4.16084 7.39933 +96.1553 4.53812 8.07025 +96.1703 4.95435 8.81045 +96.8733 5.40989 9.62055 +96.7732 5.82407 10.3571 +96.6659 6.23775 11.0928 +96.5511 6.65099 11.8276 +96.3301 7.05644 12.5487 +96.0033 7.45287 13.2536 +95.867 7.86322 13.9834 +95.6248 8.26446 14.6969 +96.2607 8.74465 15.5508 +96.1995 9.16539 16.2991 +95.9346 9.56673 17.0128 +95.9563 9.99707 17.7781 +95.677 10.3965 18.4884 +95.4883 10.8054 19.2155 +96.2646 11.3278 20.1446 +96.1563 11.751 20.8971 +95.8466 12.1496 21.6059 +96.496 12.6732 22.5371 +96.2667 13.0855 23.2703 +96.03 13.4968 24.0017 +95.7861 13.907 24.7311 +96.2999 14.4308 25.6627 +96.0393 14.8422 26.3942 +96.6273 15.3887 27.3661 +96.3497 15.8014 28.1001 +96.0647 16.2129 28.8319 +96.5265 16.7541 29.7942 +96.1306 17.1496 30.4976 +96.8519 17.7489 31.5633 +96.5322 18.1625 32.2988 +97.0426 18.7364 33.3194 +96.6126 19.1324 34.0236 +96.3606 19.5637 34.7906 +96.8371 20.1474 35.8287 +96.5664 20.5804 36.5987 +96.2877 21.0126 37.3672 +95.9099 21.4237 38.0983 +96.5218 22.0609 39.2315 +96.0351 22.4518 39.9267 +96.4406 23.0551 40.9995 +95.937 23.4449 41.6926 +96.3178 24.0546 42.777 +95.9746 24.4883 43.5482 +96.2413 25.082 44.6039 +96.4941 25.6797 45.667 +96.8204 26.3054 46.7795 +96.3484 26.7185 47.5142 +96.6484 27.3502 48.6375 +96.1578 27.7625 49.3708 +96.2599 28.3495 50.4146 +96.4336 28.965 51.5092 +96.6775 29.6101 52.6565 +96.1466 30.0225 53.3899 +96.2794 30.6462 54.499 +96.4806 31.3003 55.6622 +95.9196 31.7118 56.3939 +96.0931 32.3707 57.5657 +96.2504 33.0335 58.7444 +95.6586 33.444 59.4743 +96.4348 34.3416 61.0706 +95.7394 34.7236 61.75 +95.7564 35.3678 62.8955 +95.8371 36.0446 64.099 +95.8221 36.6945 65.2548 +95.8695 37.3776 66.4695 +95.8998 38.0638 67.6899 +95.9129 38.7532 68.9158 +95.8322 39.414 70.0909 +95.8112 40.1089 71.3267 +95.7726 40.8066 72.5674 +95.0425 41.2147 73.2932 +95.5684 42.1772 75.0048 +95.4774 42.8824 76.2588 +96.0267 43.8908 78.0522 +95.822 44.5698 79.2596 +95.6003 45.2504 80.4699 +95.4329 45.9668 81.7439 +95.2473 46.6851 83.0214 +95.6741 47.72 84.8618 +95.4461 48.4447 86.1506 +95.1994 49.171 87.4421 +95.548 50.2219 89.3109 +95.2582 50.9537 90.6122 +95.4849 51.9785 92.4348 +95.1522 52.7152 93.7449 +95.391 53.7862 95.6494 +94.9493 54.4901 96.9011 +95.1968 55.6076 98.8884 +94.712 56.3154 100.147 +94.5869 57.2515 101.812 +94.7467 58.3828 103.824 +94.8119 59.4812 105.777 +94.7842 60.5453 107.669 +94.1841 61.2614 108.943 +94.2199 62.4108 110.987 +94.5746 63.8028 113.462 +94.5384 64.963 115.525 +94.3533 66.0477 117.454 +94.1934 67.1755 119.46 +93.8326 68.1857 121.256 +94.2708 69.8106 124.146 +94.0592 70.9918 126.247 +94.2424 72.5078 128.943 +93.7957 73.5734 130.838 +93.893 75.0997 133.552 +93.9944 76.6751 136.353 +93.9961 78.2146 139.091 +93.55 79.4199 141.234 +93.462 80.9692 143.99 +93.4713 82.6519 146.982 +93.3323 84.2547 149.832 +93.6126 86.2952 153.461 +93.3194 87.8661 156.255 +93.3858 89.834 159.754 +93.4338 91.8529 163.344 +93.3292 93.791 166.791 +93.1196 95.6908 170.169 +92.8915 97.6401 173.636 +93.0572 100.085 177.985 +93.0613 102.45 182.189 +93.068 104.912 186.568 +92.0172 106.253 188.953 +114.537 135.534 241.023 +115.004 139.518 248.108 +114.935 143.014 254.326 +115 146.841 261.131 +114.833 150.541 267.711 +112.593 151.625 269.639 +109.322 151.316 269.088 +106.428 151.499 269.415 +103.378 151.438 269.305 +100.122 151.035 268.589 +97.5189 151.597 269.59 +94.2606 151.118 268.738 +91.5097 151.422 269.278 +90.8225 155.247 276.08 +90.5938 160.117 284.74 +90.4055 165.374 294.09 +89.9615 170.5 303.204 +88.6402 174.255 309.882 +86.0713 175.724 312.494 +88.2933 187.452 333.35 +88.3939 195.431 347.539 +85.4517 197.048 350.416 +81.1427 195.485 347.635 +77.9073 196.45 349.352 +73.9147 195.474 347.617 +70.7269 196.604 349.625 +66.5472 194.916 346.625 +63.4498 196.356 349.184 +59.4489 194.971 346.723 +56.3094 196.383 349.233 +52.3802 195.013 346.797 +49.1499 196.203 348.912 +45.3266 194.993 346.761 +42.1041 196.349 349.173 +38.2425 194.668 346.183 +34.9495 195.801 348.198 +31.2503 194.623 346.104 +28.0072 196.314 349.111 +24.3034 194.763 346.352 +20.9606 196.035 348.613 +17.3213 194.452 345.799 +13.9493 195.792 348.183 +10.3896 194.472 345.835 +6.95304 195.244 347.208 +3.45745 194.189 345.331 +2.66454e-14 195.47 347.61 +-3.45833 194.238 345.418 +-6.94606 195.048 346.86 +-10.353 193.786 344.615 +-13.883 194.862 346.528 +-17.2907 194.109 345.19 +-20.8245 194.762 346.351 +-24.1386 193.442 344.003 +-27.8189 194.994 346.764 +-31.1012 193.695 344.453 +-34.8362 195.166 347.069 +-38.0412 193.644 344.361 +-41.7905 194.887 346.573 +-44.9643 193.435 343.99 +-48.7477 194.597 346.057 +-51.8711 193.118 343.426 +-55.6553 194.102 345.176 +-58.8429 192.984 343.188 +-62.6989 194.032 345.052 +-65.854 192.886 343.015 +-69.7545 193.9 344.818 +-72.7484 192.39 342.132 +-76.9723 194.092 345.159 +-79.9067 192.507 342.34 +-83.8716 193.404 343.936 +-86.8789 192.081 341.583 +-91.1052 193.422 343.967 +-94.1252 192.167 341.735 +-98.5832 193.802 344.643 +-101.604 192.566 342.445 +-105.883 193.686 344.437 +-108.846 192.376 342.107 +-113.259 193.599 344.282 +-116.134 192.167 341.736 +-120.662 193.445 344.008 +-123.59 192.127 341.664 +-128.397 193.688 344.441 +-131.301 192.341 342.046 +-137.26 195.388 347.463 +-139.298 192.806 342.872 +-142.109 191.374 340.325 +-142.92 187.361 333.19 +-142.881 182.442 324.441 +-142.789 177.674 315.962 +-142.763 173.193 307.994 +-142.358 168.455 299.568 +-143.945 166.215 295.585 +-143.709 161.997 288.084 +-143.985 158.511 281.884 +-143.401 154.232 274.275 +-145.296 152.724 271.593 +-150.162 154.309 274.411 +-438.459 440.629 783.582 +-110.88 109.004 193.845 +-110.365 106.168 188.801 +-110.958 104.474 185.789 +-112.438 103.649 184.322 +-113.707 102.647 182.541 +-115.094 101.772 180.983 +-117.197 101.531 180.556 +-118.75 100.814 179.28 +-120.997 100.682 179.045 +-123.764 100.959 179.538 +-128.064 102.432 182.157 +-438.508 343.965 611.682 +-439.833 338.397 601.78 +-440.722 332.639 591.54 +-442.267 327.512 582.424 +-442.657 321.666 572.028 +-444.402 316.933 563.61 +-445.612 311.929 554.711 +-447.083 307.218 546.334 +-448.656 302.677 538.258 +-450.4 298.342 530.55 +-451.963 293.978 522.788 +-453.771 289.856 515.458 +-454.666 285.239 507.248 +-456.303 281.173 500.018 +-457.956 277.192 492.938 +-460.075 273.559 486.476 +-461.907 269.816 479.82 +-462.797 265.593 472.311 +-464.687 262.013 465.945 +-466.683 258.547 459.781 +-467.722 254.61 452.78 +-470.346 251.588 447.406 +-471.261 247.703 440.496 +-473.794 244.718 435.188 +-474.868 241.025 428.621 +-476.829 237.831 422.941 +-477.933 234.257 416.586 +-479.162 230.796 410.43 +-469.225 222.098 394.963 +-473.452 220.217 391.618 +-466.896 213.404 379.502 +-470.088 211.133 375.464 +-476.95 210.492 374.324 +-479.257 207.827 369.585 +-140.98 60.0684 106.821 +-142.804 59.7812 106.31 +-141.488 58.1916 103.484 +-138.507 55.9629 99.5204 +-142.451 56.5403 100.547 +-143.296 55.8679 99.3513 +-143.103 54.8003 97.4529 +-148.516 55.8571 99.3321 +-497.869 183.889 327.014 +-499.999 181.344 322.489 +-502.48 178.939 318.212 +-504.914 176.527 313.923 +-505.99 173.658 308.82 +-507.827 171.071 304.22 +-2716.51 898.1 1597.11 +-508.337 164.915 293.273 +-528.698 168.287 299.269 +-516.409 161.253 286.76 +-518.836 158.908 282.59 +-522.413 156.913 279.043 +-523.644 154.218 274.25 +-526.886 152.122 270.522 +-529.488 149.838 266.46 +-531.7 147.447 262.209 +-380.285 103.32 183.737 +-381.319 101.479 180.464 +-380.55 99.1772 176.369 +-380.262 97.0254 172.543 +-380.103 94.9276 168.812 +-381.153 93.1455 165.643 +-380.1 90.8668 161.591 +-380.44 88.942 158.168 +-381.465 87.1872 155.047 +-382.366 85.41 151.887 +-381.04 83.1533 147.874 +-379.938 80.9732 143.997 +-381.457 79.364 141.135 +-381.377 77.4294 137.695 +-381.907 75.6296 134.494 +-381.75 73.7058 131.073 +-381.928 71.8594 127.789 +-381.413 69.8968 124.299 +-381.609 68.0784 121.066 +-382.335 66.3619 118.013 +-381.139 64.3253 114.391 +-381.036 62.4902 111.128 +-380.803 60.6458 107.848 +-379.77 58.6906 104.371 +-380.609 57.0354 101.428 +-380.651 55.266 98.2809 +-380.948 53.5411 95.2136 +-381.501 51.8575 92.2195 +-380.961 50.0332 88.9753 +-381.257 48.3282 85.9434 +-380.744 46.5297 82.745 +-381.461 44.8879 79.8253 +-381.953 43.2215 76.8619 +-381.341 41.4376 73.6896 +-381.086 39.703 70.6049 +-380.799 37.9738 67.5298 +-380.97 36.2968 64.5476 +-380.323 34.5498 61.4408 +-380.825 32.9132 58.5305 +-380.903 31.2426 55.5596 +-381.346 29.6045 52.6465 +-380.672 27.8853 49.5892 +-380.659 26.2219 46.6311 +-381.012 24.5863 43.7225 +-380.741 22.9139 40.7484 +-381.929 21.3289 37.9297 +-381.101 19.633 34.9138 +-381.336 17.9974 32.0053 +-380.646 16.323 29.0275 +-380.424 14.675 26.0969 +-380.271 13.0336 23.178 +-380.988 11.4215 20.3111 +-381.576 9.80175 17.4307 +-147.36 3.15353 5.60801 +-380.168 6.50708 11.5717 +-148.649 1.9079 3.39287 +-146.278 1.25149 2.22555 +-146.594 0.627049 1.1151 +96.6 3.55271e-15 -1.7053e-13 +95.6964 0.415886 0.72421 +96.4853 0.838695 1.46047 +96.5669 1.25926 2.19284 +96.4412 1.67713 2.9205 +96.5081 2.09835 3.65399 +96.4676 2.51766 4.38417 +96.4198 2.93679 5.11403 +96.3647 3.35569 5.84349 +96.4019 3.77824 6.57931 +96.2324 4.1927 7.30102 +97.0511 4.6537 8.10379 +96.1703 5.03363 8.7654 +96.0784 5.4514 9.49288 +96.7732 5.91727 10.3041 +96.765 6.34409 11.0474 +96.5511 6.75742 11.7672 +96.429 7.17673 12.4973 +96.0033 7.57214 13.1859 +95.867 7.98905 13.9119 +95.7233 8.40537 14.6368 +96.4573 8.90271 15.5029 +96.1995 9.31206 16.2157 +96.1306 9.73969 16.9604 +95.8585 10.1467 17.6691 +95.9699 10.5952 18.4502 +96.4626 11.0903 19.3123 +96.3619 11.5207 20.0618 +96.1563 11.9391 20.7903 +96.1371 12.3814 21.5605 +96.5926 12.8889 22.4443 +96.363 13.3082 23.1744 +96.03 13.7127 23.8789 +95.7861 14.1295 24.6047 +96.3955 14.6763 25.5568 +96.1347 15.0946 26.2853 +96.6273 15.6349 27.2262 +96.4445 16.0701 27.9839 +96.0647 16.4724 28.6844 +96.6208 17.0388 29.6708 +96.2245 17.441 30.3713 +96.8519 18.0329 31.4019 +96.5322 18.4531 32.1336 +97.0426 19.0362 33.149 +96.7053 19.4572 33.8821 +96.453 19.8958 34.6459 +96.9292 20.4893 35.6794 +96.6581 20.9296 36.4461 +96.2877 21.3488 37.1761 +96.0009 21.7871 37.9393 +96.4311 22.3929 38.9943 +96.1253 22.8325 39.7598 +96.4406 23.424 40.7899 +96.8319 24.0423 41.8664 +96.3178 24.4396 42.5582 +96.8616 25.1101 43.7259 +97.0359 25.6937 44.7422 +96.582 26.1144 45.4748 +96.0332 26.509 46.162 +96.4354 27.1706 47.3139 +96.735 27.8127 48.4322 +96.8471 28.409 49.4704 +96.2599 28.8031 50.1568 +96.5189 29.4545 51.2911 +95.9142 29.8465 51.9736 +96.0623 30.4762 53.0702 +96.3632 31.1637 54.2674 +96.4806 31.8012 55.3775 +96.6658 32.4699 56.542 +96.0931 32.8887 57.2714 +96.1684 33.5336 58.3943 +96.3099 34.2105 59.573 +95.6258 34.5984 60.2486 +95.8197 35.3089 61.4858 +95.7564 35.9338 62.5738 +95.9164 36.6517 63.8241 +95.9009 37.3124 64.9745 +95.9478 38.0067 66.1837 +95.8998 38.6729 67.3438 +95.9901 39.405 68.6185 +95.8322 40.0447 69.7325 +95.8872 40.7831 71.0183 +95.7726 41.4596 72.1964 +95.7165 42.1712 73.4355 +95.5684 42.8521 74.6213 +95.4774 43.5686 75.8689 +96.0267 44.5932 77.6531 +95.822 45.283 78.8543 +95.6003 45.9745 80.0584 +95.5042 46.7372 81.3867 +95.8837 47.7491 83.1487 +95.1134 48.1995 83.933 +95.5155 49.2558 85.7724 +95.1994 49.9578 86.9949 +94.9342 50.6974 88.2827 +95.2582 51.769 90.1489 +94.8827 52.4772 91.382 +95.1522 53.5588 93.2655 +94.8661 54.3461 94.6365 +95.0792 55.4377 96.5374 +95.2611 56.5358 98.4495 +94.8393 57.2932 99.7685 +94.6498 58.2066 101.359 +94.6845 59.2782 103.225 +94.7503 60.3937 105.168 +94.7842 61.5142 107.119 +94.1239 62.2024 108.317 +94.6958 63.7298 110.977 +94.5159 64.7835 112.812 +94.5384 66.0026 114.935 +94.4107 67.145 116.924 +94.25 68.2918 118.921 +94.0003 69.4004 120.851 +94.2708 70.9277 123.511 +94.0047 72.0865 125.529 +94.4035 73.7941 128.503 +94.1667 75.0461 130.683 +93.8407 76.2592 132.795 +93.9429 77.8592 135.581 +93.5393 79.0798 137.707 +93.6 80.7341 140.588 +93.5112 82.3083 143.329 +93.9076 84.3665 146.913 +93.38 85.6468 149.142 +93.6126 87.6761 152.676 +93.735 89.6696 156.148 +93.3858 91.2716 158.937 +93.3892 93.2785 162.432 +92.9347 94.889 165.236 +93.1626 97.2669 169.377 +93.2296 99.5636 173.377 +93.3889 102.05 177.706 +93.0207 104.044 181.179 +92.7092 106.179 184.897 +92.2125 108.183 188.386 +111.399 133.93 233.221 +114.967 141.705 246.759 +114.935 145.303 253.026 +115 149.191 259.796 +114.903 153.043 266.504 +112.935 154.52 269.076 +109.923 154.582 269.184 +106.656 154.253 268.612 +103.917 154.664 269.326 +100.678 154.304 268.7 +98 154.783 269.534 +94.7869 154.394 268.856 +91.9074 154.513 269.064 +90.8776 157.827 274.835 +90.6205 162.727 283.367 +90.1208 167.491 291.664 +90.0617 173.421 301.99 +87.7935 175.352 305.352 +85.441 177.228 308.619 +89.3056 192.635 335.448 +87.6148 196.808 342.715 +84.5369 198.058 344.892 +80.106 196.076 341.439 +77.0296 197.345 343.65 +72.9853 196.105 341.491 +69.8239 197.2 343.397 +65.8045 195.826 341.004 +62.652 196.989 343.031 +58.7542 195.777 340.919 +55.5718 196.912 342.896 +51.7797 195.862 341.068 +48.6015 197.118 343.254 +44.6926 195.343 340.163 +41.5083 196.669 342.472 +37.7728 195.354 340.184 +34.4788 196.255 341.752 +30.8501 195.206 339.925 +27.6166 196.674 342.482 +24.0104 195.494 340.427 +20.7041 196.735 342.588 +17.0988 195.026 339.612 +13.7713 196.387 341.982 +10.2509 194.946 339.473 +6.86403 195.83 341.011 +3.4208 195.205 339.923 +3.01981e-14 196.108 341.497 +-3.41382 194.806 339.229 +-6.87276 196.079 341.445 +-10.2195 194.349 338.432 +-13.7155 195.591 340.596 +-17.0726 194.727 339.092 +-20.6151 195.889 341.115 +-23.8944 194.55 338.782 +-27.4701 195.631 340.665 +-30.701 194.263 338.283 +-34.3481 195.511 340.456 +-37.5236 194.066 337.939 +-41.2783 195.579 340.575 +-44.4436 194.254 338.267 +-48.2237 195.586 340.587 +-51.2315 193.789 337.457 +-55.0847 195.186 339.891 +-58.1482 193.757 337.403 +-62.0732 195.17 339.862 +-65.0453 193.566 337.07 +-68.9731 194.797 339.212 +-71.9648 193.363 336.716 +-75.9611 194.607 338.883 +-79.0693 193.538 337.02 +-82.936 194.307 338.36 +-85.9915 193.161 336.365 +-90.1379 194.43 338.574 +-92.9813 192.869 335.856 +-97.301 194.342 338.421 +-100.327 193.189 336.412 +-104.537 194.284 338.32 +-107.537 193.103 336.263 +-111.826 194.208 338.187 +-114.771 192.951 335.998 +-119.141 194.064 337.936 +-122.237 193.064 336.195 +-126.821 194.372 338.474 +-129.619 192.916 335.938 +-135.501 195.971 341.258 +-138.663 194.999 339.565 +-140.604 192.377 335 +-143.06 190.546 331.811 +-142.63 185.036 322.215 +-142.752 180.471 314.265 +-142.425 175.549 305.695 +-142.358 171.151 298.036 +-143.281 168.096 292.717 +-143.869 164.772 286.929 +-143.903 160.956 280.284 +-144.023 157.38 274.056 +-145.507 155.394 270.597 +-151.195 157.857 274.887 +-438.459 447.68 779.575 +-111.773 111.64 194.406 +-110.728 108.221 188.453 +-111.512 106.676 185.762 +-112.532 105.396 183.533 +-114.184 104.728 182.369 +-115.53 103.792 180.74 +-117.542 103.459 180.161 +-119.4 102.988 179.339 +-121.302 102.551 178.578 +-124.845 103.471 180.181 +-437.802 355.777 619.539 +-438.667 349.596 608.774 +-440.317 344.19 599.361 +-441.049 338.212 588.952 +-442.543 332.961 579.807 +-443.664 327.557 570.396 +-444.912 322.374 561.372 +-446.128 317.287 552.513 +-447.896 312.701 544.528 +-449.185 307.883 536.137 +-450.578 303.237 528.047 +-452.144 298.801 520.323 +-453.771 294.494 512.822 +-455.22 290.156 505.268 +-456.863 286.023 498.072 +-458.523 281.976 491.024 +-460.075 277.936 483.989 +-461.907 274.133 477.367 +-463.966 270.525 471.083 +-465.277 266.544 464.151 +-467.28 263.02 458.015 +-468.525 259.129 451.239 +-470.616 255.761 445.374 +-471.875 251.995 438.815 +-473.794 248.634 432.963 +-475.563 245.24 427.053 +-477.249 241.85 421.149 +-479.136 238.605 415.499 +-481.444 235.606 410.276 +-482.461 232.017 404.027 +-484.985 229.192 399.107 +-468.505 217.566 378.862 +-470.088 214.512 373.544 +-473.235 212.194 369.508 +-477.834 210.526 366.603 +-142.414 61.6501 107.356 +-142.576 60.6412 105.599 +-143.327 59.8912 104.293 +-140.821 57.8087 100.666 +-141.363 57.0064 99.269 +-143.139 56.7001 98.7357 +-146.57 57.0263 99.3037 +-147.643 56.4178 98.244 +-498.508 187.071 325.76 +-500.803 184.543 321.356 +-502.48 181.803 316.585 +-504.914 179.352 312.318 +-506.809 176.723 307.739 +-508.403 174.006 303.008 +-524.449 176.161 306.762 +-513.007 169.093 294.454 +-530.04 171.414 298.495 +-517.927 164.315 286.132 +-519.345 161.609 281.421 +-522.413 159.424 277.616 +-524.415 156.917 273.249 +-527.145 154.632 269.271 +-529.488 152.236 265.098 +-532.223 149.953 261.123 +-381.334 105.264 183.303 +-381.758 103.222 179.748 +-380.992 100.881 175.671 +-381.503 98.8998 172.221 +-379.301 96.2435 167.595 +-380.168 94.3915 164.37 +-381.987 92.7795 161.563 +-382.064 90.7512 158.031 +-381.737 88.6457 154.365 +-381.365 86.5496 150.715 +-380.126 84.2813 146.765 +-381.222 82.5468 143.744 +-379.708 80.2645 139.77 +-380.546 78.4966 136.691 +-380.98 76.6536 133.482 +-380.82 74.703 130.085 +-381.554 72.9381 127.012 +-381.226 70.9805 123.603 +-381.891 69.2191 120.536 +-381.77 67.3242 117.236 +-381.139 65.3547 113.806 +-381.036 63.4902 110.56 +-381.279 61.6935 107.431 +-381.773 59.9445 104.385 +-380.322 57.9043 100.833 +-381.227 56.2355 97.9266 +-381.525 54.4801 94.8698 +-381.212 52.6475 91.6786 +-380.382 50.7566 88.3859 +-379.804 48.9146 85.1783 +-380.744 47.2743 82.3218 +-380.294 45.4667 79.1742 +-380.589 43.7563 76.1958 +-381.732 42.1438 73.3879 +-381.086 40.3384 70.2439 +-380.799 38.5815 67.1845 +-380.086 36.7921 64.0685 +-381.503 35.2116 61.3162 +-380.825 33.4399 58.2312 +-381.495 31.7919 55.3613 +-380.951 30.0471 52.323 +-380.672 28.3315 49.3356 +-380.065 26.5999 46.3202 +-381.111 24.9863 43.5103 +-380.741 23.2806 40.54 +-380.24 21.5744 37.5689 +-381.001 19.942 34.7263 +-380.739 18.2568 31.7918 +-380.845 16.5928 28.8942 +-380.025 14.8942 25.9362 +-381.568 13.2873 23.1381 +-380.888 11.6012 20.202 +-379.279 9.89864 17.2372 +-3273.38 71.1722 123.937 +-380.968 6.62511 11.5367 +-3275.38 42.712 74.3772 +-146.278 1.27151 2.21417 +-147.094 0.639255 1.11318 +96.5 -3.55271e-15 -1.7053e-13 +96.2963 0.425051 0.724945 +96.4853 0.851836 1.45285 +96.4669 1.27767 2.17914 +97.3407 1.7193 2.93235 +96.5081 2.13122 3.63491 +97.2665 2.57829 4.3974 +96.32 2.97972 5.08206 +96.3647 3.40828 5.81298 +96.3022 3.83348 6.53819 +96.2324 4.25839 7.2629 +97.0511 4.72661 8.06148 +96.9659 5.15479 8.79175 +95.979 5.53105 9.43348 +96.7732 6.00998 10.2503 +96.6659 6.43687 10.9784 +96.5511 6.86331 11.7057 +96.3301 7.2817 12.4193 +96.0033 7.69078 13.117 +95.867 8.11423 13.8392 +95.6248 8.52828 14.5454 +96.359 9.03301 15.4062 +96.1995 9.45797 16.131 +96.0326 9.88223 16.8546 +95.8585 10.3057 17.5769 +95.677 10.7284 18.2979 +95.5857 11.1617 19.0368 +96.2646 11.6894 19.9369 +96.0593 12.1139 20.6608 +95.9434 12.5501 21.4048 +96.3994 13.0647 22.2825 +96.2667 13.5032 23.0304 +96.03 13.9276 23.7542 +96.649 14.4802 24.6967 +96.2999 14.8915 25.3981 +96.8976 15.4528 26.3556 +96.6273 15.8799 27.084 +96.3497 16.3059 27.8104 +96.8211 16.8622 28.7594 +96.5265 17.2889 29.4871 +96.2245 17.7143 30.2127 +95.8216 18.1206 30.9056 +96.5322 18.7423 31.9659 +96.9495 19.3159 32.9443 +96.6126 19.7431 33.6729 +96.3606 20.1882 34.4319 +96.8371 20.7906 35.4593 +96.5664 21.2374 36.2214 +96.2877 21.6833 36.982 +96.0009 22.1285 37.7412 +96.4311 22.7438 38.7907 +96.0351 23.1686 39.5151 +96.3507 23.7689 40.5391 +96.8319 24.419 41.6478 +96.3178 24.8225 42.336 +96.6842 25.4569 43.4179 +96.153 25.8589 44.1037 +96.4941 26.4995 45.1962 +96.0332 26.9244 45.9209 +96.3484 27.5714 47.0244 +96.6484 28.2232 48.1361 +96.0717 28.6231 48.8181 +96.3456 29.2805 49.9394 +96.4336 29.8896 50.9782 +96.6775 30.5554 52.1137 +96.1466 30.9809 52.8395 +96.3632 31.652 53.9841 +95.7301 32.0483 54.6599 +96.6658 32.9787 56.2467 +96.0931 33.4041 56.9723 +96.2504 34.088 58.1388 +96.2285 34.7172 59.2119 +95.6258 35.1406 59.934 +95.8197 35.8622 61.1647 +95.8363 36.5273 62.299 +95.9164 37.226 63.4908 +95.8221 37.8659 64.5821 +95.8695 38.5708 65.7843 +95.8221 39.2471 66.9379 +95.9129 39.9903 68.2054 +95.8322 40.6722 69.3684 +95.7351 41.3564 70.5354 +95.7726 42.1092 71.8194 +95.5667 42.7649 72.9377 +95.4941 43.4897 74.1739 +95.4037 44.2171 75.4145 +95.9536 45.2574 77.1888 +95.822 45.9926 78.4426 +95.6003 46.6949 79.6404 +95.4329 47.4341 80.9012 +95.318 48.2112 82.2265 +95.6741 49.2433 83.987 +95.4461 49.9912 85.2625 +95.1306 50.7042 86.4786 +95.548 51.8251 88.3902 +95.1907 52.5428 89.6143 +95.4849 53.6378 91.482 +95.1522 54.398 92.7785 +95.3254 55.4647 94.5979 +94.9493 56.2295 95.9022 +95.1968 57.3827 97.8691 +94.6484 58.0741 99.0483 +94.7127 59.1575 100.896 +94.809 60.286 102.821 +94.7503 61.34 104.618 +94.6015 62.3577 106.354 +94.1239 63.1771 107.752 +94.6958 64.7283 110.397 +94.5746 65.8396 112.293 +94.4223 66.9543 114.194 +94.296 68.1146 116.173 +94.25 69.3619 118.3 +93.9444 70.4458 120.149 +94.2708 72.0391 122.866 +94.0047 73.2161 124.874 +94.2961 74.8649 127.686 +93.6367 75.7931 129.269 +93.8407 77.4541 132.102 +93.9944 79.1227 134.948 +93.5393 80.3189 136.988 +93.6 81.9991 139.854 +93.462 83.554 142.505 +93.4713 85.2903 145.467 +93.2845 86.8998 148.212 +93.6126 89.0499 151.879 +93.3194 90.671 154.644 +93.3858 92.7017 158.107 +93.4338 94.7851 161.661 +92.9347 96.3758 164.374 +93.1196 98.7454 168.415 +92.9338 100.803 171.925 +92.9742 103.188 175.993 +92.98 105.628 180.153 +92.6294 107.751 183.774 +92.6033 110.344 188.197 +95.2882 116.356 198.45 +115.004 143.971 245.55 +114.678 147.25 251.143 +115 151.528 258.439 +114.938 155.489 265.194 +113.619 157.891 269.292 +110.724 158.148 269.73 +107.34 157.674 268.921 +104.679 158.238 269.883 +101.265 157.636 268.856 +98.7217 158.366 270.102 +95.3132 157.683 268.937 +92.6742 158.244 269.893 +90.6847 159.96 272.819 +90.5136 165.082 281.555 +90.4573 170.751 291.225 +88.7847 173.641 296.154 +87.9144 178.345 304.176 +87.5654 184.481 314.641 +89.1931 195.407 333.276 +86.0131 196.238 334.693 +83.435 198.539 338.619 +78.7703 195.827 333.992 +75.9229 197.557 336.944 +71.7643 195.846 334.025 +68.8515 197.5 336.846 +64.8637 196.05 334.374 +61.8855 197.628 337.065 +57.9265 196.043 334.361 +54.7785 197.143 336.237 +50.8922 195.521 333.471 +47.8215 196.994 335.983 +43.9342 195.036 332.644 +40.9333 196.984 335.965 +37.2169 195.495 333.426 +34.0343 196.761 335.585 +30.3872 195.29 333.076 +27.2608 197.182 336.304 +23.638 195.478 333.397 +20.3901 196.787 335.63 +16.8807 195.556 333.53 +13.5689 196.532 335.196 +10.1017 195.119 332.785 +6.77851 196.42 335.004 +3.36059 194.773 332.195 +2.84217e-14 196.197 334.624 +-3.36233 194.874 332.368 +-6.78201 196.521 335.177 +-10.0834 194.765 332.181 +-13.5375 196.078 334.42 +-16.8065 194.696 332.064 +-20.343 196.332 334.854 +-23.522 194.518 331.761 +-27.1143 196.123 334.497 +-30.246 194.382 331.529 +-33.9123 196.055 334.381 +-36.9485 194.085 331.022 +-40.6407 195.575 333.563 +-43.6625 193.83 330.587 +-47.4072 195.287 333.071 +-50.4484 193.816 330.563 +-54.2636 195.29 333.076 +-57.2614 193.792 330.522 +-61.1346 195.23 332.975 +-64.088 193.706 330.375 +-67.9659 194.96 332.514 +-70.8349 193.309 329.699 +-75.0261 195.224 332.964 +-77.7336 193.25 329.597 +-81.7509 194.532 331.784 +-84.6062 193.028 329.218 +-88.8782 194.717 332.1 +-91.6273 193.038 329.237 +-95.922 194.59 331.882 +-98.6497 192.935 329.06 +-103.165 194.739 332.138 +-105.933 193.204 329.52 +-110.42 194.771 332.192 +-113.038 193.016 329.198 +-117.592 194.541 331.8 +-120.342 193.05 329.256 +-124.843 194.339 331.455 +-127.652 192.966 329.112 +-132.311 194.355 331.483 +-136.56 195.051 332.67 +-138.313 192.207 327.819 +-139.207 188.32 321.19 +-142.63 187.935 320.532 +-142.459 182.922 311.982 +-142.725 178.675 304.739 +-142.397 173.879 296.56 +-142.226 169.473 289.045 +-143.59 167.03 284.877 +-142.317 161.677 275.748 +-144.355 160.214 273.253 +-146.184 158.562 270.435 +-154.037 163.343 278.59 +-1436.32 1489.51 2540.43 +-111.282 112.891 192.542 +-110.774 109.962 187.546 +-111.651 108.482 185.021 +-113.096 107.583 183.488 +-114.518 106.68 181.948 +-116.306 106.126 181.003 +-118.329 105.785 180.421 +-119.7 104.864 178.851 +-122.824 105.465 179.876 +-126.081 106.133 181.015 +-438.951 362.301 617.922 +-439.462 355.717 606.693 +-440.854 350.01 596.96 +-441.212 343.639 586.094 +-443.316 338.768 577.786 +-443.831 332.815 567.633 +-445.479 327.842 559.151 +-446.873 322.798 550.547 +-447.954 317.642 541.755 +-449.714 313.075 533.965 +-451.47 308.598 526.329 +-452.505 303.726 518.019 +-454.319 299.47 510.761 +-455.528 294.902 502.97 +-457.237 290.743 495.876 +-459.152 286.788 489.131 +-461.029 282.876 482.46 +-462.486 278.777 475.469 +-464.161 274.879 468.82 +-465.671 270.95 462.118 +-467.545 267.293 455.881 +-469.127 263.528 449.46 +-471.157 260.067 443.557 +-472.761 256.424 437.344 +-474.414 252.86 431.265 +-476.397 249.519 425.568 +-478.511 246.289 420.058 +-479.772 242.665 413.878 +-482.443 239.794 408.98 +-483.252 236.039 402.576 +-486.001 233.271 397.855 +-487.008 229.702 391.769 +-2415.69 1119.61 1909.55 +-472.417 215.147 366.944 +-141.253 63.2089 107.806 +-142.867 62.8154 107.135 +-142.424 61.5257 104.935 +-143.327 60.8297 103.748 +-142.596 59.4544 101.403 +-137.477 56.3084 96.0368 +-142.435 57.3053 97.7371 +-147.043 58.1065 99.1035 +-497.829 193.212 329.532 +-498.748 190.094 324.214 +-501.205 187.584 319.935 +-503.209 184.919 315.388 +-505.647 182.427 311.138 +-507.301 179.666 306.429 +-510.793 177.563 302.843 +-515.827 175.981 300.144 +-521.095 174.45 297.534 +-515.95 169.472 289.043 +-518.939 167.215 285.194 +-520.871 164.623 280.773 +-522.924 162.08 276.436 +-524.929 159.532 272.089 +-527.92 157.286 268.259 +-529.575 154.646 263.757 +-2851.72 816.061 1391.83 +-380.722 106.742 182.053 +-382.198 104.96 179.015 +-381.345 102.557 174.916 +-381.06 100.333 171.122 +-382.687 98.6241 168.208 +-381.242 96.1411 163.973 +-380.01 93.7452 159.887 +-381.162 91.9557 156.835 +-381.465 89.9704 153.449 +-381.365 87.9058 149.928 +-381.131 85.8285 146.385 +-380.03 83.5782 142.547 +-380.813 81.7589 139.444 +-381.377 79.9011 136.275 +-380.424 77.7409 132.591 +-381.936 76.096 129.786 +-380.994 73.9722 126.163 +-379.914 71.8448 122.535 +-381.139 70.1651 119.67 +-381.487 68.3286 116.538 +-380.76 66.3125 113.099 +-381.416 64.5493 110.092 +-381.279 62.6602 106.87 +-380.915 60.7467 103.607 +-381.374 58.9744 100.584 +-381.323 57.1308 97.4395 +-381.909 55.3899 94.4702 +-380.73 53.4046 91.0843 +-380.092 51.5125 87.8571 +-381.644 49.9217 85.1439 +-381.229 48.0762 81.9963 +-381.558 46.3327 79.0226 +-380.979 44.4875 75.8756 +-380.755 42.6947 72.8179 +-380.695 40.9284 69.8053 +-381.093 39.2162 66.8853 +-380.97 37.4555 63.8822 +-380.618 35.6804 60.8546 +-381.318 34.0078 58.002 +-381.495 32.29 55.0722 +-380.951 30.5179 52.0498 +-380.178 28.7381 49.0142 +-381.055 27.0871 46.1985 +-381.905 25.4306 43.3732 +-380.741 23.6454 40.3283 +-381.532 21.9868 37.4996 +-380.703 20.2385 34.5178 +-380.739 18.5429 31.6258 +-381.244 16.8705 28.7734 +-380.424 15.1434 25.8279 +-380.072 13.4426 22.927 +-380.489 11.7707 20.0754 +-380.678 10.0908 17.2104 +-3273.38 72.2874 123.29 +-3274.5 57.8364 98.6429 +-3275.38 43.3812 73.9889 +-144.978 1.27996 2.18303 +-145.794 0.643535 1.09758 +96.4 3.55271e-15 -1.7053e-13 +96.3963 0.432022 0.72183 +96.3853 0.86401 1.4436 +96.367 1.29593 2.16527 +96.3413 1.72776 2.88677 +96.5081 2.16393 3.61553 +97.1667 2.61517 4.36947 +96.4198 3.02858 5.06021 +96.4644 3.46416 5.78798 +97.1994 3.92857 6.56393 +96.332 4.32822 7.23167 +97.0511 4.79915 8.01851 +97.0653 5.23929 8.7539 +96.9726 5.67406 9.48033 +96.8725 6.10843 10.2061 +96.765 6.54238 10.9311 +96.5511 6.96863 11.6433 +96.429 7.40104 12.3658 +96.1021 7.81687 13.0606 +95.9656 8.24723 13.7796 +95.8218 8.67702 14.4977 +96.4573 9.18097 15.3397 +96.2976 9.61292 16.0615 +96.2286 10.0543 16.799 +96.0541 10.4852 17.5189 +95.8723 10.9153 18.2375 +96.6575 11.46 19.1476 +95.4867 11.7729 19.6704 +96.2533 12.3246 20.5922 +95.9434 12.7427 21.2907 +95.7232 13.1722 22.0083 +96.363 13.7241 22.9305 +96.1262 14.1555 23.6512 +96.649 14.7024 24.5651 +96.3955 15.135 25.2879 +96.1347 15.5664 26.0086 +96.7224 16.1395 26.9662 +96.4445 16.5724 27.6894 +96.1592 17.004 28.4105 +96.715 17.5885 29.3872 +97.3522 18.1969 30.4038 +96.9456 18.6146 31.1016 +96.7189 19.0667 31.857 +97.2286 19.6688 32.8631 +96.8907 20.1038 33.5898 +96.5454 20.5373 34.314 +97.0212 21.1498 35.3374 +96.7498 21.6042 36.0967 +96.4704 22.0579 36.8547 +96.9109 22.681 37.8959 +96.5218 23.1145 38.6201 +96.9377 23.7452 39.6739 +96.4406 24.1562 40.3606 +96.0265 24.5875 41.0812 +97.2088 25.4366 42.4999 +95.9746 25.6578 42.8695 +97.1242 26.5209 44.3117 +96.582 26.9307 44.9962 +96.1207 27.3625 45.7178 +96.4354 28.0198 46.816 +96.735 28.682 47.9225 +96.9333 29.323 48.9934 +96.2599 29.7034 49.629 +96.5189 30.3751 50.7513 +96.0838 30.8338 51.5176 +96.9057 31.7047 52.9727 +96.3632 32.1377 53.6963 +96.564 32.8235 54.8421 +96.0026 33.255 55.563 +96.0931 33.9167 56.6686 +96.2504 34.6111 57.8289 +95.6586 35.0412 58.5474 +96.4348 35.9817 60.1189 +95.8197 36.4125 60.8387 +95.8363 37.0878 61.967 +96.6304 38.0786 63.6224 +95.9009 38.4786 64.2908 +95.8695 39.1627 65.4337 +95.9775 39.914 66.6891 +95.8358 40.5713 67.7873 +95.9088 41.3293 69.0538 +95.8112 42.0244 70.2152 +95.8481 42.7891 71.4929 +95.6416 43.4553 72.6059 +95.6427 44.2258 73.8934 +95.5511 44.9651 75.1285 +96.0999 46.022 76.8944 +95.8945 46.7337 78.0836 +95.7441 47.4828 79.3351 +95.5042 48.198 80.5302 +96.0251 49.3141 82.395 +95.8143 50.0723 83.6617 +95.5155 50.7953 84.8697 +95.9566 51.9291 86.7641 +95.6162 52.6578 87.9817 +95.8663 53.7281 89.7699 +94.9496 54.1554 90.4838 +95.2185 55.2713 92.3484 +94.9317 56.0833 93.705 +95.0792 57.1705 95.5215 +95.2611 58.3028 97.4135 +94.7757 59.0444 98.6525 +94.8386 60.1455 100.492 +94.809 61.2111 102.273 +94.8119 62.3219 104.129 +94.7842 63.4368 105.991 +94.6655 64.5153 107.793 +94.7553 65.7627 109.878 +94.6922 66.9331 111.833 +94.4804 68.0239 113.656 +94.3533 69.202 115.624 +94.25 70.4263 117.67 +94.4477 71.91 120.149 +94.326 73.1872 122.283 +94.1136 74.4254 124.351 +93.8662 75.6672 126.426 +93.6897 76.9998 128.653 +93.893 78.6863 131.471 +93.5309 79.941 133.567 +93.5901 81.5956 136.332 +93.55 83.2128 139.034 +93.5112 84.8808 141.82 +93.5198 86.6439 144.766 +93.8094 88.7294 148.251 +93.6126 90.4164 151.069 +93.3656 92.1081 153.896 +93.4766 94.2157 157.417 +93.1215 95.9182 160.262 +92.9785 97.901 163.575 +93.2057 100.354 167.673 +92.9338 102.35 171.008 +93.0157 104.819 175.133 +93.0613 107.343 179.35 +93.0282 109.875 183.581 +92.9549 112.462 187.904 +92.2267 114.346 191.051 +114.967 146.134 244.163 +114.715 149.558 249.884 +114.678 153.422 256.341 +114.693 157.538 263.218 +114.235 161.183 269.307 +109.656 159.026 265.704 +108.024 161.114 269.192 +103.6 159.011 265.678 +101.976 161.179 269.3 +97.6993 159.132 265.88 +95.9272 161.135 269.227 +91.5949 158.801 265.327 +90.6571 162.365 271.282 +90.4067 167.417 279.723 +90.3796 173.223 289.423 +88.3341 175.411 293.08 +86.1 177.345 296.311 +89.3862 191.207 319.472 +88.7432 197.405 329.828 +84.4331 195.589 326.794 +81.7717 197.567 330.099 +77.3548 195.259 326.243 +74.6636 197.262 329.589 +70.434 195.165 326.086 +67.6881 197.142 329.389 +63.5598 195.058 325.906 +60.6809 196.755 328.742 +56.7588 195.039 325.875 +53.8878 196.913 329.006 +50.0176 195.111 325.995 +46.9928 196.551 328.401 +43.1983 194.713 325.33 +40.3166 196.993 329.139 +36.4981 194.661 325.244 +33.4678 196.455 328.24 +29.7752 194.293 324.629 +26.7865 196.725 328.692 +23.1862 194.684 325.282 +20.097 196.935 329.042 +16.5579 194.76 325.409 +13.3665 196.572 328.436 +9.92106 194.57 325.092 +6.66333 196.045 327.556 +3.29776 194.065 324.248 +2.57572e-14 196.281 327.949 +-3.29863 194.116 324.333 +-6.67031 196.251 327.9 +-9.89489 194.057 324.234 +-13.3072 195.699 326.978 +-16.4881 193.939 324.037 +-20.0028 196.012 327.5 +-23.0702 193.71 323.655 +-26.6679 195.854 327.236 +-29.6654 193.576 323.431 +-33.3371 195.687 326.957 +-36.316 193.69 323.621 +-40.0658 195.767 327.091 +-42.9946 193.794 323.795 +-46.7247 195.429 326.527 +-49.5869 193.43 323.187 +-53.4842 195.438 326.542 +-56.3006 193.464 323.244 +-60.1178 194.929 325.692 +-62.8501 192.88 322.267 +-66.8198 194.614 325.164 +-69.7051 193.145 322.711 +-73.5569 194.338 324.703 +-76.2582 192.491 321.618 +-80.5658 194.654 325.231 +-83.1777 192.681 321.935 +-87.3485 194.302 324.644 +-89.8531 192.206 321.141 +-94.1318 193.888 323.952 +-96.8219 192.266 321.242 +-101.276 194.107 324.317 +-103.902 192.408 321.48 +-108.381 194.107 324.318 +-110.709 191.94 320.697 +-115.516 194.039 324.205 +-118.027 192.241 321.2 +-122.742 194 324.14 +-125.208 192.177 321.093 +-129.934 193.793 323.793 +-132.555 192.235 321.19 +-138.689 195.687 326.958 +-138.542 190.297 317.951 +-141.555 189.38 316.42 +-142.862 186.254 311.197 +-142.763 181.465 303.194 +-142.435 176.595 295.058 +-142.265 172.121 287.583 +-142.114 167.85 280.447 +-142.927 164.861 275.453 +-145.474 163.934 273.904 +-147.959 162.95 272.26 +-176.251 189.768 317.067 +-1436.32 1512.37 2526.89 +-111.505 114.853 191.899 +-110.774 111.65 186.547 +-112.343 110.83 185.177 +-113.565 109.688 183.268 +-115.043 108.814 181.808 +-116.791 108.204 180.789 +-119.117 108.123 180.654 +-120.45 107.141 179.013 +-124.398 108.455 181.209 +-127.575 109.038 182.183 +-439.578 368.386 615.506 +-440.045 361.655 604.26 +-440.908 355.425 593.85 +-441.866 349.429 583.833 +-443.647 344.224 575.136 +-445.006 338.817 566.101 +-446.781 333.847 557.798 +-447.16 327.962 547.965 +-448.593 322.977 539.635 +-450.008 318.087 531.466 +-452.303 313.912 524.49 +-453.347 308.961 516.217 +-455.475 304.839 509.331 +-456.759 300.237 501.641 +-454.436 293.396 490.211 +-459.656 291.508 487.056 +-461.793 287.693 480.683 +-463.643 283.764 474.118 +-465.524 279.918 467.692 +-466.589 275.65 460.561 +-468.87 272.164 454.737 +-470.198 268.182 448.084 +-472.305 264.702 442.269 +-473.511 260.772 435.703 +-475.791 257.486 430.212 +-476.952 253.644 423.793 +-479.282 250.471 418.492 +-480.974 247.006 412.703 +-483.441 243.978 407.642 +-484.835 240.446 401.742 +-487.234 237.451 396.738 +-488.252 233.822 390.675 +-490.363 230.758 385.555 +-488.469 225.872 377.391 +-141.777 64.4172 107.63 +-143.244 63.9478 106.845 +-143.337 62.8699 105.044 +-143.097 61.6641 103.029 +-142.056 60.1383 100.48 +-142.529 59.2729 99.0343 +-143.374 58.5683 97.8571 +-148.146 59.4409 99.3149 +-499.178 196.708 328.664 +-500.345 193.629 323.519 +-502.893 191.104 319.301 +-504.179 188.119 314.313 +-506.787 185.644 310.177 +-508.448 182.835 305.485 +-523.732 184.855 308.858 +-510.687 176.901 295.569 +-542.276 184.328 307.978 +-517.124 172.464 288.156 +-519.866 170.085 284.181 +-521.719 167.422 279.732 +-524.544 165.078 275.815 +-526.644 162.509 271.523 +-529.643 160.221 267.7 +-530.787 157.379 262.952 +-382.782 111.22 185.828 +-381.247 108.529 181.332 +-382.988 106.792 178.429 +-382.669 104.492 174.588 +-381.858 102.086 170.567 +-382.064 99.9742 167.039 +-378.647 96.9519 161.989 +-381.718 95.6116 159.75 +-381.703 93.4993 156.22 +-380.831 91.1991 152.377 +-381.092 89.1911 149.022 +-380.492 86.9993 145.36 +-381.038 85.0857 142.163 +-380.721 82.9935 138.667 +-381.562 81.1663 135.614 +-381.351 79.1265 132.206 +-381.657 77.2073 128.999 +-382.488 75.4016 125.982 +-381.132 73.181 122.272 +-382.643 71.5233 119.502 +-381.581 69.3941 115.945 +-381.328 67.4308 112.665 +-381.605 65.5722 109.559 +-381.469 63.6536 106.354 +-381.105 61.7098 103.106 +-380.705 59.7742 99.8718 +-381.418 58.0219 96.9441 +-380.948 56.0982 93.7298 +-381.309 54.3064 90.7361 +-380.285 52.3297 87.4334 +-380.869 50.5849 84.5182 +-380.744 48.7519 81.4555 +-380.294 46.8878 78.341 +-381.758 45.2626 75.6255 +-379.584 43.2165 72.2069 +-381.086 41.5992 69.5047 +-380.897 39.7976 66.4945 +-381.657 38.0988 63.6562 +-381.208 36.284 60.624 +-381.416 34.5386 57.7077 +-381.594 32.794 54.7928 +-381.544 31.0344 51.8529 +-381.266 29.2626 48.8925 +-380.758 27.4814 45.9164 +-380.814 25.7471 43.0188 +-382.031 24.0896 40.2493 +-380.737 22.2777 37.2221 +-381.101 20.5706 34.3697 +-381.436 18.8619 31.5148 +-381.742 17.1518 28.6575 +-381.121 15.404 25.7373 +-380.97 13.6811 22.8586 +-380.689 11.9576 19.9789 +-380.478 10.2403 17.1097 +-380.637 8.53477 14.26 +-3274.5 58.724 98.1171 +-3275.38 44.047 73.5945 +-142.978 1.28167 2.14144 +-146.394 0.656097 1.09622 +95.7 0 -1.7053e-13 +96.3963 0.438516 0.717903 +96.3853 0.876998 1.43575 +96.5669 1.31814 2.15796 +96.3413 1.75373 2.87106 +96.5081 2.19646 3.59587 +96.4676 2.63538 4.31444 +96.4198 3.07411 5.03268 +96.4644 3.51623 5.75649 +96.4019 3.95491 6.47465 +97.2286 4.43417 7.25927 +97.1507 4.87629 7.98307 +97.0653 5.31805 8.70627 +96.0784 5.70629 9.34188 +96.8725 6.20025 10.1505 +96.765 6.64073 10.8717 +96.6502 7.08063 11.5918 +96.429 7.5123 12.2985 +96.2996 7.95069 13.0162 +95.9656 8.3712 13.7047 +96.7081 8.88893 14.5522 +96.4573 9.31899 15.2563 +96.2976 9.75743 15.9741 +96.2286 10.2055 16.7076 +96.0541 10.6428 17.4236 +95.8723 11.0794 18.1383 +95.6831 11.5151 18.8515 +96.4591 12.0716 19.7626 +96.2533 12.5099 20.4802 +95.9434 12.9342 21.1749 +96.5926 13.4916 22.0873 +96.363 13.9304 22.8058 +96.1262 14.3683 23.5226 +96.649 14.9234 24.4314 +96.4911 15.3778 25.1752 +96.0393 15.7848 25.8416 +95.8665 16.2371 26.5821 +96.5393 16.838 27.5658 +96.9157 17.3953 28.4782 +96.6208 17.8355 29.1989 +96.2245 18.2566 29.8882 +97.0392 18.9126 30.9622 +96.7189 19.3533 31.6837 +97.2286 19.9645 32.6843 +96.798 20.3865 33.3751 +96.5454 20.846 34.1274 +97.0212 21.4677 35.1452 +96.7498 21.929 35.9004 +96.5618 22.4107 36.689 +96.1829 22.8491 37.4067 +96.4311 23.44 38.374 +96.1253 23.9001 39.1274 +96.5305 24.5422 40.1785 +96.0265 24.9571 40.8577 +96.4069 25.606 41.92 +96.7729 26.2602 42.991 +96.2413 26.6749 43.67 +96.582 27.3355 44.7515 +96.2082 27.7991 45.5105 +96.4354 28.441 46.5613 +95.869 28.8526 47.2351 +96.1578 29.5257 48.3371 +96.3456 30.1768 49.4029 +96.5189 30.8317 50.4752 +96.6775 31.4906 51.5539 +96.231 31.9572 52.3178 +96.4471 32.6493 53.4507 +95.8135 33.058 54.1199 +96.0026 33.7549 55.2608 +96.1755 34.4561 56.4087 +96.2504 35.1314 57.5143 +96.3099 35.8101 58.6254 +95.7067 36.2468 59.3404 +95.8197 36.9599 60.5077 +95.9161 37.6767 61.6812 +95.9958 38.3972 62.8607 +95.9797 39.0891 63.9936 +95.9478 39.7838 65.1309 +96.0552 40.5468 66.38 +95.9901 41.2475 67.527 +95.2959 41.6826 68.2394 +95.8872 42.69 69.8886 +95.8481 43.4324 71.1039 +95.7165 44.143 72.2674 +95.6427 44.8907 73.4914 +95.5511 45.641 74.7197 +95.4417 46.3939 75.9523 +95.822 47.4004 77.6 +95.7441 48.1965 78.9035 +95.5042 48.9226 80.0921 +95.9544 50.0186 81.8864 +95.7442 50.7878 83.1457 +95.4461 51.5214 84.3467 +95.2683 52.3318 85.6734 +95.6844 53.4875 87.5654 +95.3933 54.2668 88.8412 +95.6188 55.3568 90.6256 +95.2848 56.1413 91.91 +95.5222 57.2808 93.7755 +94.9493 57.9506 94.8721 +94.6826 58.8196 96.2947 +94.7757 59.932 98.1158 +94.6498 60.9282 99.7467 +94.8712 62.1719 101.783 +94.935 63.3406 103.696 +94.2363 64.0183 104.806 +94.2442 65.1938 106.73 +94.7553 66.7513 109.28 +94.2808 67.6437 110.741 +94.4804 69.0465 113.037 +94.3533 70.2423 114.995 +94.7598 71.8713 117.662 +94.5036 73.0342 119.566 +93.7741 73.8526 120.906 +94.0592 75.5004 123.603 +93.8662 76.8046 125.738 +94.1137 78.5108 128.531 +93.9452 79.914 130.829 +93.5309 81.1427 132.84 +93.5901 82.8222 135.59 +93.65 84.5544 138.426 +93.6097 86.2475 141.197 +93.5198 87.9464 143.979 +93.38 89.6514 146.77 +93.2371 91.4071 149.644 +93.3656 93.4927 153.059 +93.4766 95.632 156.561 +93.4338 97.6864 159.924 +92.9785 99.3727 162.685 +92.8612 101.486 166.145 +92.9338 103.889 170.078 +92.7254 106.062 173.636 +93.0207 108.909 178.297 +92.7092 111.144 181.956 +92.9549 114.153 186.882 +91.7675 115.486 189.065 +114.705 147.992 242.281 +114.715 151.806 248.525 +114.714 155.777 255.026 +113.537 158.295 259.148 +111.499 159.687 261.427 +107.519 158.272 259.11 +105.484 159.691 261.434 +101.347 157.892 258.487 +99.5035 159.635 261.342 +95.444 157.795 258.329 +93.325 159.12 260.499 +90.4305 159.139 260.529 +90.8225 165.106 270.299 +90.4602 170.034 278.366 +89.3702 173.863 284.634 +86.8318 175.02 286.529 +86.608 181.073 296.438 +89.0361 193.321 316.49 +87.0111 196.461 321.63 +82.8747 194.865 319.017 +80.1292 196.509 321.709 +75.8396 194.312 318.112 +73.2897 196.543 321.764 +69.1402 194.46 318.354 +66.4031 196.307 321.378 +62.355 194.237 317.989 +59.5702 196.058 320.97 +55.6502 194.104 317.771 +52.8719 196.105 321.047 +49.0778 194.322 318.129 +46.0788 195.625 320.261 +42.3493 193.755 317.2 +39.4386 195.6 320.22 +35.7984 193.8 317.273 +32.8316 195.617 320.249 +29.2417 193.68 317.077 +26.2633 195.782 320.518 +22.7406 193.813 317.294 +19.694 195.887 320.69 +16.2133 193.573 316.903 +13.0734 195.151 319.485 +9.71427 193.379 316.584 +6.5464 195.5 320.058 +3.23318 193.125 316.169 +2.57572e-14 195.165 319.509 +-3.23405 193.177 316.254 +-6.53418 195.136 319.46 +-9.68285 192.753 315.56 +-13.0629 194.994 319.229 +-16.1348 192.636 315.368 +-19.5946 194.898 319.071 +-22.6429 192.98 315.931 +-26.1098 194.638 318.645 +-29.1005 192.745 315.547 +-32.6224 194.371 318.208 +-35.6163 192.814 315.659 +-39.2086 194.459 318.352 +-42.0663 192.46 315.081 +-45.7985 194.435 318.313 +-48.6341 192.565 315.252 +-52.3152 194.04 317.667 +-55.059 192.042 314.395 +-58.9601 194.05 317.683 +-61.7773 192.437 315.043 +-65.448 193.484 316.756 +-68.229 191.897 314.159 +-72.2403 193.729 317.157 +-74.8228 191.707 313.847 +-78.9441 193.603 316.951 +-81.4029 191.404 313.352 +-85.5714 193.211 316.309 +-88.1723 191.445 313.419 +-92.4867 193.364 316.559 +-95.0192 191.523 313.545 +-99.3606 193.299 316.453 +-101.845 191.433 313.399 +-106.451 193.518 316.811 +-108.835 191.527 313.552 +-113.265 193.118 316.157 +-115.712 191.303 313.185 +-120.455 193.248 316.37 +-122.86 191.407 313.357 +-127.72 193.355 316.545 +-129.851 191.145 312.927 +-136.158 195.005 319.246 +-138.787 193.499 316.781 +-143.562 194.953 319.161 +-143.045 189.297 309.901 +-142.763 184.192 301.545 +-142.397 179.202 293.375 +-142.265 174.708 286.018 +-142.991 171.425 280.644 +-143.375 167.864 274.813 +-145.474 166.398 272.414 +-149.649 167.29 273.873 +-174.4 190.597 312.031 +-111.653 119.332 195.36 +-110.836 115.88 189.71 +-111.545 114.117 186.824 +-112.944 113.097 185.154 +-113.988 111.751 182.95 +-116.284 111.64 182.769 +-117.566 110.56 181 +-120.201 110.747 181.306 +-121.45 109.654 179.517 +-125.768 111.298 182.209 +-130.305 113.045 185.068 +-440.153 374.413 612.959 +-440.734 367.667 601.914 +-441.607 361.339 591.555 +-442.737 355.382 581.802 +-444.475 350.051 573.075 +-445.677 344.429 563.871 +-447.121 339.123 555.185 +-448.193 333.66 546.241 +-449.464 328.468 537.742 +-451.36 323.839 530.163 +-453.136 319.217 522.597 +-454.009 314.063 514.159 +-456.023 309.794 507.17 +-457.129 304.997 499.316 +-458.918 300.744 492.353 +-458.145 294.917 482.815 +-461.22 291.656 477.475 +-463.643 288.029 471.538 +-466.628 284.8 466.251 +-467.18 280.148 458.636 +-469.864 276.841 453.222 +-471.068 272.717 446.471 +-473.521 269.373 440.996 +-474.262 265.111 434.019 +-477.03 262.036 428.985 +-478.203 258.132 422.593 +-480.824 255.055 417.555 +-482.247 251.383 411.544 +-484.939 248.412 406.681 +-486.274 244.785 400.742 +-488.467 241.631 395.578 +-489.276 237.835 389.365 +-2415.69 1153.88 1889.04 +-493.82 231.778 379.448 +-143.2 66.0419 108.118 +-142.867 64.7382 105.984 +-143.489 63.8827 104.584 +-142.484 62.3226 102.029 +-142.828 61.3739 100.476 +-142.995 60.361 98.8182 +-147.052 60.974 99.8218 +-136.483 55.5851 90.9994 +-135.663 54.2637 88.8361 +-501.543 197.011 322.53 +-503.375 194.163 317.869 +-505.312 191.376 313.306 +-507.601 188.737 308.985 +-509.267 185.882 304.312 +-514.172 184.209 301.571 +-513.672 180.609 295.679 +-517.51 178.553 292.313 +-517.46 175.17 286.775 +-521.132 173.062 283.323 +-523.246 170.436 279.024 +-525.312 167.804 274.715 +-527.586 165.247 270.529 +-530.074 162.762 266.46 +-533.039 160.422 262.63 +-380.52 112.224 183.724 +-381.247 110.16 180.346 +-2879.44 814.966 1334.2 +-380.727 105.525 172.757 +-380.882 103.356 169.206 +-381.351 101.288 165.82 +-379.452 98.6189 161.451 +-379.471 96.4775 157.945 +-381.884 94.9497 155.444 +-382.099 92.8787 152.053 +-381.456 90.6179 148.352 +-381.497 88.5401 144.951 +-380.855 86.3231 141.321 +-381.825 84.4856 138.313 +-382.394 82.5663 135.171 +-380.516 80.1403 131.199 +-381.006 78.234 128.078 +-381.928 76.4231 125.114 +-381.507 74.3541 121.727 +-381.609 72.4019 118.531 +-381.864 70.4894 115.4 +-381.328 68.4444 112.052 +-381.226 66.4917 108.855 +-380.993 64.5296 105.643 +-381.01 62.6218 102.519 +-381.183 60.7488 99.4531 +-380.556 58.7612 96.1991 +-379.794 56.7689 92.9375 +-380.441 54.9976 90.0376 +-382.12 53.3728 87.3776 +-380.385 51.28 83.9515 +-380.453 49.4469 80.9504 +-380.683 47.6413 77.9945 +-381.563 45.9195 75.1757 +-381.829 44.1257 72.2389 +-381.673 42.2895 69.233 +-381.779 40.4893 66.2859 +-380.773 38.582 63.1634 +-381.798 36.8865 60.3876 +-381.022 35.0216 57.3345 +-381.101 33.244 54.4244 +-380.951 31.4521 51.4908 +-382.65 29.8104 48.8032 +-380.758 27.8945 45.6666 +-380.616 26.1206 42.7625 +-381.336 24.4072 39.9575 +-380.339 22.589 36.9809 +-380.604 20.8526 34.1381 +-380.341 19.0905 31.2534 +-381.343 17.3914 28.4718 +-381.52 15.652 25.6241 +-379.872 13.8468 22.6688 +-381.188 12.1532 19.8962 +-379.879 10.3779 16.9898 +-380.637 8.66307 14.1825 +-3274.5 59.6067 97.5833 +-3275.38 44.7091 73.1941 +-146.978 1.33733 2.18937 +-145.894 0.663687 1.08653 +96.6 3.55271e-15 -1.7053e-13 +96.5963 0.445898 0.715399 +96.5853 0.891761 1.43074 +96.5669 1.33756 2.14598 +96.5412 1.78325 2.86105 +96.5081 2.22881 3.5759 +96.4676 2.6742 4.29048 +96.4198 3.11939 5.00474 +97.2625 3.59754 5.7719 +96.4019 4.01316 6.43871 +97.129 4.49487 7.21157 +97.1507 4.94811 7.93875 +97.0653 5.39637 8.65794 +96.9726 5.84418 9.37641 +96.8725 6.29157 10.0942 +96.765 6.73854 10.8113 +96.6502 7.18492 11.5275 +96.2312 7.60734 12.2052 +96.1021 8.05124 12.9174 +95.9656 8.4945 13.6286 +95.7233 8.92798 14.324 +95.5724 9.36949 15.0324 +96.2976 9.90114 15.8854 +96.2286 10.3558 16.6148 +96.0541 10.7996 17.3268 +96.7509 11.3456 18.2029 +96.5601 11.7917 18.9186 +95.4867 12.1259 19.4547 +96.1563 12.6814 20.346 +96.0402 13.138 21.0786 +96.5926 13.6903 21.9647 +96.363 14.1356 22.6792 +96.1262 14.5799 23.392 +95.7861 15.008 24.0789 +96.3955 15.5888 25.0107 +96.0393 16.0173 25.6981 +96.7224 16.6234 26.6706 +96.4445 17.0692 27.3859 +96.0647 17.4965 28.0714 +96.715 18.1159 29.0651 +96.2245 18.5254 29.7222 +97.0392 19.1912 30.7903 +96.7189 19.6384 31.5078 +97.1356 20.2391 32.4717 +96.8907 20.7066 33.2217 +96.5454 21.153 33.9379 +97.0212 21.7839 34.9501 +96.7498 22.252 35.7011 +96.4704 22.7192 36.4508 +96.8199 23.3392 37.4454 +96.5218 23.8075 38.1968 +96.9377 24.4571 39.239 +96.5305 24.9037 39.9554 +96.8319 25.5371 40.9717 +96.496 26.0071 41.7258 +96.7729 26.6469 42.7523 +96.3296 27.0926 43.4673 +96.582 27.7381 44.503 +96.1207 28.1829 45.2167 +96.3484 28.8339 46.2611 +96.735 29.542 47.3972 +96.1578 29.9606 48.0687 +96.3456 30.6212 49.1287 +96.5189 31.2858 50.195 +96.7623 31.9825 51.3127 +96.1466 32.3995 51.9818 +96.3632 33.1013 53.1078 +95.8135 33.5449 53.8194 +96.7487 34.5183 55.3811 +96.0931 34.9336 56.0475 +96.3323 35.6792 57.2437 +96.3099 36.3375 58.3 +95.7067 36.7807 59.011 +95.8197 37.5043 60.1719 +95.9161 38.2316 61.3388 +95.9958 38.9627 62.5118 +95.9009 39.6323 63.5861 +95.9478 40.3698 64.7693 +95.9775 41.1108 65.9581 +95.9129 41.8214 67.0982 +95.9088 42.5685 68.2969 +95.8872 43.3188 69.5007 +95.7726 44.0374 70.6535 +95.7165 44.7932 71.8662 +95.6427 45.5518 73.0834 +95.5511 46.3132 74.305 +95.4417 47.0772 75.5307 +95.822 48.0985 77.1692 +95.6722 48.8697 78.4066 +95.5042 49.6431 79.6475 +95.3887 50.4561 80.9518 +95.7442 51.5358 82.6841 +95.5155 52.3183 83.9394 +95.1994 53.064 85.1359 +95.0024 53.8886 86.4589 +95.3933 55.0661 88.348 +95.5519 56.133 90.0597 +95.2185 56.9285 91.3361 +95.4566 58.0843 93.1904 +95.0142 58.8444 94.4099 +94.7469 59.7267 95.8255 +94.7757 60.8147 97.5712 +94.7757 61.9075 99.3245 +94.7467 63.0051 101.085 +94.8119 64.1905 102.987 +94.7842 65.3388 104.83 +94.2442 66.154 106.137 +94.6363 67.6498 108.537 +94.1632 68.5549 109.989 +94.4804 70.0634 112.41 +94.4107 71.3197 114.425 +94.3066 72.5813 116.449 +93.9444 73.6714 118.198 +93.8293 74.9848 120.306 +94.0047 76.5685 122.847 +93.8125 77.8914 124.969 +94.1667 79.7121 127.89 +93.893 81.0456 130.03 +93.4794 82.2923 132.03 +93.5901 84.0421 134.837 +93.6 85.7538 137.583 +93.6097 87.5178 140.414 +93.5198 89.2417 143.179 +93.8094 91.3898 146.626 +93.2371 92.7534 148.814 +93.3656 94.8697 152.209 +93.4766 97.0405 155.692 +93.4338 99.1252 159.036 +92.9347 100.789 161.705 +93.2057 103.363 165.835 +92.976 105.467 169.211 +93.0157 107.961 173.213 +92.6546 110.078 176.609 +92.749 112.83 181.024 +92.6033 115.396 185.142 +92.8773 118.605 190.29 +98.3342 128.74 206.55 +114.715 154.042 247.145 +114.785 158.171 253.769 +111.681 158.001 253.496 +109.583 159.256 255.51 +105.683 157.861 253.272 +103.4 158.843 254.847 +99.9192 157.959 253.43 +97.5567 158.817 254.807 +94.0608 157.799 253.172 +91.717 158.682 254.59 +90.9417 162.396 260.548 +90.6571 167.233 268.309 +90.193 172.029 276.003 +88.1538 174.022 279.201 +85.7301 175.345 281.323 +89.5837 190.053 304.921 +88.289 194.522 312.092 +85.5939 196.108 314.636 +81.5977 194.688 312.358 +78.7777 196.04 314.527 +74.763 194.375 311.856 +71.8968 195.647 313.897 +68.065 194.256 311.664 +65.1354 195.396 313.493 +61.4637 194.281 311.704 +58.5534 195.549 313.74 +54.7929 193.929 311.139 +51.842 195.117 313.046 +48.2816 193.985 311.23 +45.2866 195.094 313.008 +41.6814 193.508 310.465 +38.7592 195.061 312.956 +35.2137 193.443 310.359 +32.2215 194.809 312.552 +28.7945 193.527 310.495 +25.7541 194.814 312.559 +22.3865 193.605 310.62 +19.3172 194.969 312.808 +15.9778 193.571 310.565 +12.8535 194.695 312.368 +9.57815 193.478 310.416 +6.419 194.519 312.086 +3.18693 193.166 309.916 +2.30926e-14 194.707 312.389 +-3.18868 193.272 310.085 +-6.41027 194.255 311.662 +-9.56767 193.266 310.076 +-12.8186 194.166 311.52 +-15.9385 193.095 309.802 +-19.2125 193.912 311.113 +-22.3132 192.971 309.603 +-25.6704 194.181 311.543 +-28.669 192.684 309.142 +-32.0907 194.019 311.285 +-35.1083 192.863 309.43 +-38.4769 193.641 310.678 +-41.4663 192.51 308.862 +-44.982 193.781 310.903 +-47.8117 192.098 308.201 +-51.3688 193.336 310.189 +-54.1574 191.679 307.53 +-57.8808 193.303 310.135 +-60.787 192.141 308.272 +-64.4235 193.26 310.067 +-67.2631 191.967 307.992 +-70.9046 192.948 309.565 +-73.5867 191.317 306.949 +-77.4679 192.781 309.298 +-80.2558 191.487 307.221 +-84.2217 192.964 309.591 +-86.8183 191.282 306.893 +-90.8175 192.67 309.12 +-93.567 191.373 307.04 +-97.5489 192.569 308.958 +-100.241 191.194 306.752 +-104.604 192.961 309.587 +-107.131 191.305 306.929 +-111.306 192.573 308.964 +-113.937 191.144 306.671 +-118.415 192.774 309.287 +-121.21 191.618 307.432 +-125.409 192.652 309.091 +-128.048 191.268 306.87 +-132.328 192.31 308.542 +-136.581 193.227 310.014 +-141.376 194.812 312.556 +-144.548 194.103 311.419 +-142.763 186.905 299.871 +-142.397 181.841 291.746 +-142.265 177.282 284.431 +-142.314 173.126 277.763 +-143.944 171.012 274.372 +-146.967 170.582 273.682 +-151.255 171.575 275.275 +-172.463 191.256 306.852 +-111.828 121.279 194.581 +-110.969 117.729 188.884 +-111.818 116.081 186.241 +-113.359 115.185 184.803 +-114.363 113.77 182.533 +-116.713 113.703 182.425 +-118.391 112.975 181.257 +-120.398 112.562 180.595 +-122.45 112.186 179.99 +-127.494 114.487 183.683 +-438.709 386.207 619.63 +-440.466 380.198 609.99 +-441.211 373.485 599.22 +-442.09 367.062 588.915 +-443.227 361.015 579.213 +-445.027 355.647 570.601 +-446.683 350.291 562.007 +-448.141 344.903 553.362 +-449.11 339.268 544.322 +-450.219 333.866 535.655 +-451.889 328.994 527.837 +-453.671 324.302 520.31 +-454.972 319.365 512.389 +-456.571 314.735 504.96 +-458.237 310.239 497.748 +-465.828 309.768 496.992 +-460.348 300.7 482.443 +-458.294 294.074 471.813 +-464.864 293.041 470.155 +-466.499 288.914 463.533 +-468.426 285.033 457.307 +-470.659 281.394 451.468 +-472.005 277.284 444.875 +-473.791 273.496 438.798 +-475.216 269.558 432.479 +-477.649 266.241 427.158 +-479.523 262.657 421.406 +-481.875 259.377 416.145 +-483.52 255.759 410.34 +-485.367 252.294 404.78 +-487.569 249.051 399.578 +-489.7 245.808 394.375 +-490.592 241.987 388.244 +-493.239 239.071 383.565 +-141.718 67.4959 108.29 +-143.35 67.0844 107.63 +-142.489 65.5182 105.117 +-142.576 64.4116 103.342 +-142.484 63.2405 101.463 +-142.828 62.2778 99.9185 +-142.917 61.2167 98.2161 +-148.226 62.3656 100.059 +-498.102 205.847 330.261 +-133.839 54.3224 87.1548 +-138.164 55.0714 88.3565 +-503.857 197.212 316.407 +-506.445 194.63 312.265 +-508.334 191.793 307.713 +-510.414 189.045 303.304 +-510.629 185.633 297.83 +-522.128 186.286 298.878 +-517.343 181.125 290.597 +-518.885 178.24 285.968 +-521.638 175.781 282.024 +-524.009 173.199 277.88 +-527.102 170.856 274.122 +-528.358 167.926 269.421 +-531.367 165.562 265.627 +-2837.53 866.556 1390.3 +-384.262 114.997 184.501 +-382.384 112.116 179.879 +-540.648 155.273 249.12 +-542.483 152.573 244.788 +-383.189 105.513 169.285 +-379.925 102.396 164.284 +-381.153 100.52 161.274 +-381.718 98.4782 157.999 +-380.801 96.0752 154.143 +-381.012 93.9784 150.779 +-381.456 91.9526 147.529 +-381.588 89.8658 144.181 +-380.121 87.4258 140.266 +-380.997 85.5443 137.247 +-380.638 83.3978 133.803 +-382 81.6375 130.979 +-381.564 79.5026 127.554 +-381.181 77.3974 124.176 +-381.788 75.5053 121.141 +-381.045 73.3599 117.699 +-381.864 71.5276 114.759 +-381.895 69.5557 111.595 +-382.459 67.6895 108.601 +-382.705 65.7742 105.528 +-381.01 63.5441 101.95 +-380.705 61.5664 98.7771 +-380.843 59.6716 95.7372 +-380.948 57.7801 92.7024 +-380.827 55.8642 89.6286 +-379.995 53.8574 86.4088 +-381.837 52.234 83.8043 +-381.714 50.3415 80.7679 +-381.655 48.4665 77.7596 +-380.881 46.5126 74.6248 +-381.439 44.7298 71.7645 +-381.478 42.8904 68.8134 +-381.779 41.0857 65.9179 +-381.558 39.2311 62.9424 +-381.208 37.3719 59.9595 +-380.431 35.4823 56.9278 +-381.594 33.7773 54.1923 +-380.161 31.8491 51.0987 +-381.266 30.14 48.3566 +-380.362 28.2759 45.3659 +-380.913 26.526 42.5583 +-381.237 24.7603 39.7254 +-381.134 22.9697 36.8525 +-381.797 21.2261 34.0551 +-381.038 19.4072 31.1369 +-381.244 17.6429 28.3063 +-380.623 15.8451 25.4219 +-381.768 14.1208 22.6554 +-382.485 12.3742 19.8532 +-379.779 10.528 16.8911 +-380.637 8.79066 14.1037 +-3274.5 60.4846 97.0416 +-3275.38 45.3676 72.7878 +-145.178 1.34041 2.15056 +-145.594 0.672076 1.07828 +96.4 3.55271e-15 -1.7053e-13 +96.3963 0.451397 0.709875 +96.5853 0.904632 1.42264 +96.5669 1.35686 2.13382 +96.3413 1.80524 2.83896 +96.3082 2.2563 3.54829 +96.4676 2.7128 4.26619 +96.4198 3.16441 4.9764 +96.3647 3.61578 5.68623 +96.3022 4.06687 6.39563 +97.129 4.55974 7.17073 +97.0511 5.01438 7.8857 +97.0653 5.47426 8.60891 +96.0784 5.87391 9.2374 +96.8725 6.38238 10.037 +96.765 6.8358 10.7501 +96.6502 7.28862 11.4622 +96.429 7.73297 12.161 +96.1021 8.16744 12.8442 +95.9656 8.6171 13.5514 +95.7233 9.05684 14.2429 +96.5556 9.60249 15.101 +96.2976 10.044 15.7954 +96.1306 10.4946 16.5039 +96.0541 10.9554 17.2287 +95.7746 11.3932 17.9171 +95.6831 11.8533 18.6407 +95.4867 12.3009 19.3446 +95.3801 12.7605 20.0674 +95.9434 13.3142 20.9381 +96.5926 13.8879 21.8403 +96.363 14.3396 22.5507 +96.1262 14.7903 23.2595 +96.649 15.3618 24.1582 +96.3955 15.8138 24.869 +96.0393 16.2484 25.5526 +96.7224 16.8633 26.5195 +96.4445 17.3156 27.2308 +96.1592 17.7666 27.94 +96.715 18.3774 28.9005 +96.2245 18.7928 29.5539 +97.0392 19.4682 30.616 +97.5592 20.0949 31.6016 +97.2286 20.551 32.3188 +96.8907 21.0054 33.0335 +97.2845 21.6226 34.0041 +97.1133 22.1192 34.7851 +96.6581 22.5518 35.4653 +96.4704 23.0472 36.2443 +96.0919 23.498 36.9533 +97.3375 24.3553 38.3015 +96.1253 24.6022 38.6898 +96.5305 25.2631 39.7292 +96.8319 25.9057 40.7397 +96.4069 26.3581 41.4512 +96.7729 27.0315 42.5102 +96.3296 27.4836 43.2212 +96.582 28.1385 44.251 +96.1207 28.5897 44.9606 +96.4354 29.2765 46.0406 +95.869 29.7001 46.7068 +96.761 30.5836 48.0963 +96.3456 31.0632 48.8504 +96.6041 31.7655 49.9549 +96.6775 32.4156 50.9774 +96.231 32.8959 51.7327 +96.3632 33.5791 52.807 +96.564 34.2956 53.9338 +96.0026 34.7464 54.6428 +96.1755 35.4682 55.7778 +96.3323 36.1942 56.9195 +95.74 36.6439 57.6268 +95.7876 37.3431 58.7264 +95.8197 38.0456 59.8311 +95.9161 38.7834 60.9914 +95.9164 39.4924 62.1064 +95.9009 40.2043 63.2259 +95.9478 40.9525 64.4025 +95.8998 41.6703 65.5314 +95.9901 42.4591 66.7719 +95.9088 43.1829 67.9101 +95.1268 43.5955 68.559 +95.8481 44.7082 70.3087 +95.7165 45.4397 71.4592 +95.5684 46.1734 72.613 +96.2147 47.3079 74.3972 +95.3685 47.7201 75.0453 +95.8945 48.8297 76.7903 +95.7441 49.6123 78.0211 +95.5042 50.3597 79.1964 +95.9544 51.4879 80.9706 +95.7442 52.2797 82.2158 +95.5155 53.0734 83.464 +95.1994 53.8299 84.6537 +95.1388 54.7447 86.0924 +95.3258 55.8211 87.7852 +94.9496 56.5842 88.9851 +95.2185 57.7502 90.8188 +94.9317 58.5985 92.1529 +95.0792 59.7345 93.9394 +94.6826 60.5474 95.2178 +94.712 61.6512 96.9536 +94.7127 62.7592 98.6961 +94.9335 64.0406 100.711 +94.8119 65.117 102.404 +94.845 66.3243 104.303 +94.6655 67.4087 106.008 +94.6363 68.6263 107.923 +94.2808 69.6307 109.502 +94.4223 71.0307 111.704 +94.468 72.3931 113.847 +94.3066 73.6289 115.79 +93.9444 74.7348 117.529 +93.7741 76.022 119.553 +93.8958 77.5835 122.009 +93.8125 79.0156 124.261 +94.1137 80.817 127.094 +93.893 82.2153 129.293 +93.4794 83.4801 131.282 +93.5901 85.2551 134.073 +93.6 86.9915 136.804 +93.5605 88.7343 139.545 +93.5198 90.5297 142.368 +93.38 92.2849 145.129 +93.1901 94.0449 147.896 +93.3656 96.239 151.347 +93.4312 98.3934 154.735 +93.3892 100.508 158.061 +92.9347 102.243 160.79 +93.2057 104.854 164.896 +92.9338 106.94 168.176 +93.0572 109.568 172.309 +93.0207 112.108 176.303 +92.6693 114.36 179.844 +92.6033 117.062 184.093 +93.1069 120.614 189.679 +93.277 123.881 194.818 +114.642 156.166 245.588 +114.104 159.502 250.835 +110.701 158.874 249.847 +108.044 159.285 250.495 +104.782 158.773 249.69 +102.196 159.258 250.452 +98.9039 158.611 249.434 +96.4442 159.272 250.474 +93.0083 158.285 248.922 +90.6352 159.073 250.161 +90.8281 164.534 258.749 +90.6571 169.647 266.789 +89.4447 173.064 272.163 +88.4126 177.052 278.435 +86.7817 180.057 283.161 +89.4869 192.587 302.866 +87.4486 195.452 307.371 +84.4916 196.376 308.824 +80.5372 194.931 306.552 +77.8006 196.403 308.867 +73.9655 195.077 306.782 +70.9237 195.785 307.895 +67.2631 194.738 306.247 +64.3714 195.891 308.061 +60.754 194.809 306.36 +57.7087 195.51 307.462 +54.2608 194.818 306.373 +51.2435 195.649 307.68 +47.8117 194.87 306.456 +44.7748 195.672 307.717 +41.2513 194.276 305.521 +38.2992 195.529 307.491 +34.9358 194.686 306.166 +31.9251 195.804 307.924 +28.4885 194.234 305.456 +25.4472 195.27 307.084 +22.1545 194.364 305.66 +19.0922 195.479 307.413 +15.812 194.328 305.603 +12.6895 194.984 306.636 +9.48129 194.285 305.536 +6.33871 194.859 306.438 +3.15464 193.969 305.038 +3.01981e-14 195.049 306.738 +-3.15552 194.022 305.123 +-6.32824 194.537 305.932 +-9.44464 193.534 304.355 +-12.686 194.931 306.551 +-15.7379 193.417 304.17 +-19.0294 194.836 306.402 +-22.0752 193.668 304.566 +-25.3425 194.467 305.822 +-28.3708 193.432 304.193 +-31.6898 194.36 305.654 +-34.7633 193.724 304.653 +-38.0065 194.034 305.141 +-41.0588 193.369 304.096 +-44.4214 194.128 305.289 +-47.368 193.061 303.611 +-50.8678 194.214 305.424 +-53.7435 192.96 303.452 +-57.1768 193.708 304.628 +-60.1599 192.904 303.363 +-63.6247 193.619 304.488 +-66.5889 192.785 303.177 +-70.1032 193.52 304.333 +-73.0484 192.658 302.977 +-76.5739 193.307 303.997 +-79.4983 192.417 302.598 +-83.2094 193.396 304.138 +-85.9779 192.165 302.201 +-89.7772 193.213 303.849 +-92.6907 192.317 302.441 +-96.4877 193.223 303.866 +-99.2791 192.092 302.087 +-103.143 193.012 303.534 +-106.279 192.522 302.763 +-109.99 193.044 303.583 +-112.885 192.112 302.118 +-116.778 192.851 303.281 +-119.783 192.094 302.09 +-123.846 192.997 303.51 +-126.947 192.359 302.507 +-131.233 193.472 304.257 +-134.585 193.151 303.753 +-139.548 195.069 306.768 +-142.789 194.508 305.886 +-143.287 190.299 299.268 +-142.397 184.466 290.094 +-142.343 179.939 282.975 +-142.712 176.116 276.963 +-144.554 174.216 273.975 +-148.004 174.265 274.051 +-153.537 176.678 277.846 +-170.913 192.273 302.372 +-111.565 122.741 193.024 +-111.192 119.669 188.193 +-112.363 118.33 186.088 +-113.359 116.848 183.757 +-114.88 115.933 182.319 +-117.142 115.769 182.06 +-118.73 114.934 180.747 +-121.185 114.934 180.747 +-123.6 114.873 180.651 +-127.95 116.556 183.297 +-439.43 392.425 617.133 +-440.466 385.686 606.536 +-441.529 379.149 596.256 +-442.574 372.768 586.221 +-443.717 366.631 576.57 +-445.027 360.781 567.369 +-446.683 355.347 558.824 +-448.311 350.014 550.437 +-449.454 344.429 541.654 +-450.742 339.078 533.239 +-452.124 333.916 525.121 +-454.147 329.328 517.906 +-455.454 324.317 510.026 +-457.667 320.044 503.305 +-458.852 315.14 495.594 +-467.633 315.457 496.092 +-477.402 316.341 497.483 +-466.881 303.908 477.93 +-461.264 294.969 463.873 +-465.265 292.308 459.689 +-468.229 289.025 454.525 +-470.659 285.455 448.911 +-472.272 281.446 442.607 +-474.129 277.641 436.623 +-476.171 273.998 430.893 +-477.925 270.24 424.983 +-479.523 266.448 419.02 +-482.296 263.35 414.149 +-483.732 259.564 408.195 +-486.009 256.274 403.02 +-487.569 252.646 397.315 +-489.7 249.356 392.142 +-491.25 245.809 386.564 +-493.681 242.739 381.734 +-141.123 68.183 107.226 +-142.676 67.7328 106.518 +-142.942 66.6752 104.854 +-142.652 65.3756 102.811 +-142.561 64.1881 100.943 +-143.214 63.3473 99.621 +-144.627 62.8435 98.8286 +-148.774 63.4997 99.8606 +-498.732 209.082 328.806 +-499.892 205.825 323.683 +-134.969 54.5746 85.8249 +-2633.84 1045.78 1644.6 +-507.173 197.723 310.943 +-508.822 194.748 306.264 +-2683.79 1008.36 1585.76 +-508.403 187.492 294.853 +-528.926 191.435 301.054 +-517.843 183.917 289.23 +-519.724 181.105 284.809 +-522.397 178.578 280.834 +-524.518 175.869 276.574 +-526.591 173.154 272.305 +-528.872 170.516 268.155 +-531.625 168.033 264.251 +-383.216 118.72 186.701 +-380.345 115.468 181.586 +-381.684 113.526 178.533 +-541.439 157.745 248.072 +-543.189 154.977 243.718 +-545.955 152.501 239.826 +-381.262 104.239 163.928 +-381.69 102.114 160.586 +-382.167 100.017 157.288 +-380.891 97.485 153.306 +-381.012 95.3349 149.925 +-380.273 92.9905 146.238 +-380.492 90.9011 142.952 +-380.397 88.752 139.573 +-381.917 86.9883 136.799 +-381.562 84.8065 133.368 +-381.165 82.6349 129.953 +-381.843 80.7091 126.924 +-382.021 78.6873 123.745 +-380.289 76.2941 119.981 +-382.173 74.6392 117.379 +-381.204 72.4344 113.911 +-382.179 70.6122 111.046 +-382.459 68.6665 107.986 +-380.993 66.4252 104.461 +-380.724 64.413 101.297 +-381.279 62.5494 98.3662 +-381.418 60.6241 95.3385 +-381.525 58.7026 92.3166 +-381.116 56.7135 89.1885 +-380.768 54.7458 86.0941 +-381.257 52.9073 83.2028 +-381.229 51.0032 80.2084 +-382.044 49.2161 77.3981 +-380.686 47.1598 74.1642 +-381.048 45.3289 71.285 +-381.086 43.4648 68.3535 +-381.975 41.7001 65.5782 +-381.558 39.7973 62.5859 +-381.208 37.9113 59.6199 +-381.81 36.1249 56.8105 +-381.101 34.2205 53.8157 +-381.544 32.4263 50.9941 +-382.057 30.6385 48.1825 +-381.352 28.7587 45.2264 +-380.417 26.8738 42.2622 +-380.84 25.0915 39.4593 +-381.234 23.3072 36.6533 +-381.101 21.4932 33.8005 +-380.54 19.6615 30.92 +-380.646 17.8695 28.1019 +-381.819 16.1243 25.3574 +-380.87 14.2909 22.4741 +-380.689 12.4938 19.648 +-380.278 10.6939 16.8174 +-380.637 8.91754 14.0239 +-3274.5 61.3576 96.492 +-3275.38 46.0224 72.3756 +-143.278 1.34197 2.1104 +-146.594 0.686461 1.07954 +95.7 0 -1.7053e-13 +96.4963 0.458257 0.706507 +96.5853 0.917427 1.41442 +96.5669 1.37605 2.1215 +96.5412 1.83458 2.82841 +96.5081 2.29296 3.53511 +96.4676 2.75117 4.24154 +96.4198 3.20917 4.94765 +96.3647 3.66692 5.65339 +96.4019 4.12866 6.36526 +96.332 4.5863 7.07081 +97.0511 5.08531 7.84015 +97.0653 5.55169 8.55918 +96.9726 6.01239 9.26945 +96.7732 6.46607 9.9689 +96.765 6.93248 10.688 +96.5511 7.38415 11.3843 +96.429 7.84234 12.0907 +96.2008 8.29145 12.7831 +96.0642 8.74796 13.487 +96.6096 9.26999 14.2918 +95.5724 9.63916 14.8609 +96.2976 10.1861 15.7042 +96.2286 10.6538 16.4253 +96.0541 11.1104 17.1292 +95.8723 11.5661 17.8318 +96.5601 12.1311 18.7028 +96.3619 12.5892 19.4091 +96.3504 13.0726 20.1544 +95.9434 13.5025 20.8171 +96.5926 14.0843 21.7142 +96.363 14.5425 22.4205 +96.1262 14.9995 23.1251 +96.649 15.5791 24.0186 +96.3955 16.0375 24.7254 +96.1347 16.4946 25.4301 +96.7224 17.1018 26.3663 +96.4445 17.5605 27.0735 +96.9157 18.1595 27.997 +96.6208 18.6191 28.7056 +96.3185 19.0772 29.4119 +97.0392 19.7435 30.4391 +97.4658 20.3596 31.3889 +97.2286 20.8416 32.1321 +96.8907 21.3025 32.8427 +96.453 21.741 33.5187 +97.0212 22.4109 34.5514 +96.7498 22.8924 35.2938 +96.4704 23.3731 36.035 +96.9109 24.0334 37.053 +96.5218 24.4927 37.7611 +96.9377 25.161 38.7914 +96.4406 25.5965 39.4628 +96.8319 26.2721 40.5043 +96.496 26.7556 41.2498 +96.7729 27.4139 42.2647 +96.2413 27.8468 42.9322 +95.8789 28.3287 43.6751 +96.2082 29.0204 44.7416 +96.4354 29.6905 45.7747 +96.735 30.3923 46.8565 +96.244 30.8504 47.5629 +96.3456 31.5025 48.5683 +96.6041 32.2148 49.6663 +96.6775 32.8741 50.6829 +96.1466 33.332 51.3888 +96.3632 34.054 52.502 +95.8135 34.5104 53.2055 +96.0026 35.2379 54.3271 +96.1755 35.9698 55.4556 +96.2504 36.6749 56.5426 +96.3099 37.3834 57.6349 +95.7067 37.8393 58.3378 +95.8197 38.5837 59.4855 +95.9161 39.332 60.6391 +95.9958 40.0841 61.7987 +95.9797 40.8065 62.9124 +95.9478 41.5317 64.0305 +95.8998 42.2597 65.1529 +95.9129 43.025 66.3328 +95.8322 43.7587 67.4639 +95.8872 44.5655 68.7079 +95.7726 45.3048 69.8476 +95.7165 46.0824 71.0464 +95.5684 46.8265 72.1936 +95.5511 47.6462 73.4573 +95.4417 48.4321 74.6691 +95.3867 49.2581 75.9425 +95.6722 50.2762 77.5122 +95.5042 51.0719 78.7389 +95.3887 51.9083 80.0283 +95.7442 53.0191 81.7409 +95.585 53.8632 83.0423 +95.2683 54.631 84.226 +95.6162 55.7977 86.0247 +95.3258 56.6107 87.2781 +95.6188 57.7888 89.0945 +95.2185 58.567 90.2942 +95.5222 59.7974 92.1911 +95.0792 60.5793 93.3967 +94.6183 61.3624 94.604 +94.7757 62.565 96.4582 +94.7757 63.6893 98.1915 +94.7467 64.8185 99.9323 +94.2578 65.6516 101.217 +94.7842 67.2194 103.634 +94.2442 68.058 104.927 +94.101 69.2029 106.692 +94.6922 70.9241 109.346 +93.9577 71.6811 110.513 +94.4107 73.3724 113.12 +94.3066 74.6703 115.121 +94.3358 76.108 117.338 +93.8293 77.143 118.933 +94.0047 78.7723 121.445 +93.8662 80.1789 123.614 +94.1137 81.96 126.36 +93.8407 83.3319 128.475 +93.4794 84.6608 130.524 +93.5901 86.4609 133.299 +93.6 88.2219 136.014 +93.6097 90.0367 138.812 +93.5198 91.8102 141.546 +93.4754 93.6854 144.437 +93.1901 95.3751 147.042 +93.3194 97.5518 150.398 +93.4312 99.7851 153.841 +93.3892 101.93 157.148 +92.9347 103.69 159.861 +93.2487 106.386 164.019 +92.9338 108.453 167.204 +92.6839 110.672 170.627 +92.736 113.345 174.748 +92.8288 116.177 179.114 +92.6033 118.718 183.03 +93.1069 122.32 188.584 +92.2281 124.221 191.514 +114.861 158.678 244.638 +113.029 160.233 247.036 +109.755 159.745 246.282 +106.915 159.851 246.446 +103.747 159.429 245.796 +101.447 160.327 247.181 +98.0471 159.461 245.845 +95.3626 159.714 246.235 +92.4069 159.486 245.883 +90.5475 161.168 248.476 +90.8281 166.861 257.254 +90.602 171.942 265.087 +88.8033 174.253 268.65 +87.5844 177.874 274.234 +89.1603 187.609 289.241 +89.4143 195.153 300.873 +86.6082 196.311 302.658 +83.6593 197.192 304.016 +79.8662 196.041 302.242 +76.8857 196.839 303.472 +73.2478 195.917 302.05 +70.2559 196.684 303.233 +66.7529 195.994 302.169 +63.7636 196.786 303.389 +60.2919 196.061 302.273 +57.2863 196.824 303.448 +53.8617 196.12 302.363 +50.7147 196.368 302.746 +47.3157 195.576 301.525 +44.2995 196.334 302.693 +40.9456 195.563 301.505 +37.902 196.238 302.545 +34.5907 195.489 301.39 +31.5155 196.025 302.217 +28.2139 195.082 300.763 +25.196 196.078 302.298 +21.9408 195.212 300.964 +18.8985 196.233 302.537 +15.6724 195.336 301.155 +12.5673 195.839 301.93 +9.38444 195.02 300.668 +6.28985 196.091 302.319 +3.12323 194.753 300.256 +2.22045e-14 195.795 301.862 +-3.12323 194.753 300.256 +-6.28112 195.819 301.899 +-9.37135 194.748 300.248 +-12.5603 195.73 301.762 +-15.6245 194.738 300.233 +-18.8409 195.635 301.616 +-21.8676 194.56 299.959 +-25.1054 195.372 301.21 +-28.0962 194.269 299.509 +-31.3674 195.104 300.796 +-34.3224 193.972 299.052 +-37.6512 194.939 300.542 +-40.64 194.103 299.254 +-43.9826 194.929 300.528 +-47.0155 194.335 299.612 +-50.3667 195.021 300.669 +-53.2114 193.752 298.712 +-56.7388 194.943 300.549 +-59.5492 193.646 298.549 +-62.9822 194.374 299.672 +-65.9146 193.533 298.374 +-69.5499 194.708 300.186 +-72.3506 193.517 298.351 +-75.8046 194.071 299.205 +-78.6974 193.172 297.819 +-82.4221 194.276 299.52 +-85.1142 192.925 297.437 +-88.9305 194.097 299.245 +-91.7142 192.982 297.526 +-95.5819 194.116 299.274 +-98.5842 193.445 298.24 +-102.399 194.33 299.604 +-105.284 193.419 298.199 +-108.908 193.849 298.862 +-111.802 192.961 297.492 +-115.912 194.13 299.295 +-118.767 193.16 297.799 +-122.609 193.771 298.742 +-125.612 193.028 297.596 +-129.728 193.958 299.03 +-132.659 193.08 297.676 +-138.402 196.202 302.49 +-141.616 195.638 301.621 +-142.912 192.487 296.762 +-142.779 187.577 289.192 +-142.226 182.334 281.109 +-143.111 179.106 276.133 +-145.042 177.276 273.312 +-149.082 178.017 274.453 +-158.947 185.489 285.973 +-1410.57 1609.3 2481.11 +-111.259 124.134 191.381 +-111.46 121.653 187.556 +-112.363 120.004 185.013 +-113.729 118.887 183.291 +-115.255 117.958 181.859 +-117.429 117.693 181.45 +-118.972 116.798 180.07 +-121.382 116.749 179.995 +-124.3 117.158 180.625 +-128.762 118.954 183.395 +-439.585 398.115 613.784 +-440.623 391.28 603.246 +-441.529 384.512 592.812 +-442.789 378.224 583.117 +-444.262 372.273 573.943 +-445.744 366.473 565.002 +-447.354 360.914 556.431 +-448.48 355.098 547.465 +-449.454 349.3 538.525 +-451.613 344.539 531.184 +-452.771 339.123 522.835 +-454.504 334.248 515.319 +-455.454 328.904 507.08 +-457.971 324.786 500.731 +-459.714 320.198 493.657 +-470.808 322.091 496.576 +-479.29 322.084 496.565 +-488.508 322.483 497.181 +-460.75 298.808 460.68 +-463.121 295.077 454.928 +-469.541 293.935 453.167 +-471.785 290.185 447.386 +-472.607 285.629 440.362 +-474.737 281.93 434.658 +-476.512 278.073 428.712 +-478.406 274.338 422.955 +-480.148 270.569 417.143 +-482.506 267.192 411.936 +-484.863 263.851 406.786 +-486.651 260.241 401.221 +-488 256.446 395.37 +-490.571 253.333 390.569 +-491.835 249.583 384.789 +-140.967 70.2929 108.372 +-142.312 69.7302 107.505 +-142.451 68.5826 105.735 +-143.395 67.8321 104.579 +-142.88 66.4064 102.38 +-142.408 65.0258 100.252 +-142.828 64.0702 98.7787 +-147.58 65.0334 100.264 +-148.069 64.0931 98.814 +-496.92 211.269 325.719 +-501.399 209.365 322.783 +-134.73 55.2481 85.1774 +-134.887 54.315 83.7388 +-507.415 200.616 309.294 +-511.509 198.546 306.104 +-524.503 199.855 308.121 +-513.843 192.178 296.286 +-529.838 194.478 299.831 +-518.677 186.818 288.023 +-520.311 183.874 283.483 +-523.24 181.396 279.663 +-525.62 178.731 275.555 +-528.125 176.115 271.521 +-529.387 173.096 266.867 +-532.487 170.686 263.151 +-382.523 120.181 185.287 +-381.39 117.422 181.033 +-381.334 115.026 177.339 +-541.527 160.001 246.678 +-544.514 157.552 242.901 +-547.197 155.01 238.983 +-383.4 106.306 163.895 +-380.258 103.17 159.06 +-379.92 100.835 155.46 +-382.155 99.1914 152.926 +-381.827 96.8901 149.378 +-382.548 94.8701 146.264 +-382.319 92.6292 142.809 +-380.305 89.9856 138.733 +-380.997 88.0064 135.682 +-382.024 86.1105 132.759 +-381.165 83.8037 129.202 +-381.843 81.8507 126.191 +-381.928 79.7806 123 +-382.35 77.7927 119.935 +-381.797 75.6204 116.586 +-381.581 73.5318 113.366 +-381.895 71.5576 110.322 +-381.795 69.5169 107.176 +-381.183 67.3984 103.91 +-380.533 65.2914 100.661 +-380.609 63.3225 97.626 +-381.514 61.4974 94.8121 +-380.371 59.3533 91.5065 +-381.212 57.5303 88.696 +-381.348 55.605 85.7277 +-380.385 53.533 82.5332 +-380.744 51.6588 79.6437 +-380.975 49.7725 76.7355 +-381.174 47.888 73.8302 +-380.658 45.9229 70.8006 +-382.064 44.1927 68.1331 +-380.897 42.1706 65.0155 +-382.147 40.4225 62.3203 +-380.913 38.4178 59.2297 +-380.628 36.5224 56.3075 +-380.706 34.6686 53.4495 +-380.853 32.8253 50.6076 +-381.365 31.0155 47.8174 +-380.857 29.1276 44.9068 +-380.616 27.2681 42.04 +-381.237 25.4729 39.2722 +-380.439 23.5876 36.3656 +-379.708 21.7175 33.4825 +-380.54 19.9396 30.7414 +-380.048 18.0938 27.8957 +-380.922 16.314 25.1517 +-381.768 14.5272 22.397 +-381.287 12.6905 19.5652 +-380.278 10.8452 16.7203 +-380.238 9.03414 13.9282 +-3274.5 62.2255 95.9346 +-3275.38 46.6734 71.9575 +-148.277 1.40843 2.17142 +-146.694 0.696644 1.07403 +96.6 3.55271e-15 -1.7053e-13 +96.4963 0.464612 0.702344 +96.5853 0.93015 1.40609 +96.5669 1.39514 2.109 +96.5412 1.86002 2.81175 +96.5081 2.32476 3.51428 +96.5675 2.79221 4.22092 +96.4198 3.25367 4.9185 +96.4644 3.72162 5.62589 +97.1994 4.22055 6.38011 +96.332 4.6499 7.02915 +97.0511 5.15583 7.79395 +97.0653 5.62868 8.50875 +96.0784 6.0396 9.12993 +95.9792 6.50195 9.82885 +95.8727 6.96379 10.527 +96.5511 7.48655 11.3173 +96.429 7.9511 12.0195 +96.2996 8.4151 12.7209 +96.0642 8.86928 13.4075 +95.7233 9.31231 14.0772 +95.4741 9.76279 14.7582 +96.2976 10.3274 15.6117 +96.1306 10.7906 16.3119 +96.0541 11.2645 17.0283 +95.8723 11.7265 17.7268 +96.5601 12.2993 18.5926 +96.3619 12.7638 19.2947 +96.1563 13.2273 19.9954 +97.0084 13.8417 20.9242 +96.5926 14.2796 21.5862 +96.363 14.7441 22.2884 +96.1262 15.2075 22.9889 +96.7449 15.8108 23.9008 +96.3955 16.2599 24.5797 +96.23 16.7399 25.3054 +95.8665 17.1856 25.979 +96.3497 17.7866 26.8875 +96.0647 18.2497 27.5877 +96.6208 18.8773 28.5364 +96.3185 19.3418 29.2386 +95.9152 19.7854 29.9092 +96.7189 20.4838 30.9649 +96.3913 20.9486 31.6676 +96.798 21.5773 32.6179 +96.5454 22.0636 33.3531 +97.0212 22.7217 34.3478 +96.7498 23.2099 35.0859 +96.4704 23.6973 35.8226 +96.8199 24.3439 36.8001 +96.5218 24.8324 37.5386 +96.1253 25.2962 38.2397 +96.5305 25.9757 39.2669 +96.116 26.4394 39.9679 +96.4069 27.1016 40.9689 +96.7729 27.794 42.0156 +96.3296 28.2589 42.7183 +96.582 28.9322 43.7361 +96.1207 29.3961 44.4375 +96.4354 30.1023 45.505 +96.6484 30.7861 46.5387 +96.244 31.2783 47.2827 +96.3456 31.9394 48.2821 +96.4336 32.6038 49.2865 +96.6775 33.33 50.3843 +96.1466 33.7942 51.086 +96.3632 34.5263 52.1926 +96.564 35.263 53.3063 +96.7487 36.0042 54.4268 +96.1755 36.4687 55.1289 +96.3323 37.2152 56.2573 +96.3099 37.9018 57.2953 +95.7067 38.3641 57.9941 +95.8197 39.1188 59.135 +95.9161 39.8774 60.2818 +95.9958 40.64 61.4345 +95.8221 41.3044 62.439 +95.9478 42.1077 63.6532 +95.2781 42.568 64.3491 +95.9129 43.6217 65.942 +95.9088 44.401 67.12 +95.8872 45.1836 68.303 +95.7726 45.9331 69.436 +95.6416 46.6849 70.5726 +95.5684 47.4759 71.7682 +95.5511 48.3069 73.0245 +96.0999 49.4424 74.741 +95.3142 49.9032 75.4376 +95.6722 50.9735 77.0555 +95.5756 51.8188 78.3334 +95.3887 52.6281 79.5568 +95.7442 53.7544 81.2593 +95.5155 54.5705 82.493 +95.1994 55.3483 83.6688 +95.0706 56.2487 85.0299 +95.3933 57.4366 86.8256 +95.0165 58.2217 88.0124 +95.2848 59.4206 89.8248 +94.8661 60.2101 91.0182 +95.1441 61.4614 92.9098 +95.2611 62.636 94.6855 +94.8393 63.4752 95.954 +94.8386 64.6156 97.678 +94.7467 65.7174 99.3435 +94.8119 66.9538 101.213 +94.2363 67.7577 102.428 +94.2442 69.0018 104.308 +94.5173 70.4732 106.533 +94.1632 71.5061 108.094 +94.19 72.855 110.133 +94.5828 74.5256 112.659 +94.4766 75.842 114.649 +93.8885 76.7971 116.092 +94.1053 78.4429 118.58 +93.9502 79.8183 120.66 +93.9737 81.3841 123.027 +93.6897 82.7226 125.05 +93.8407 84.4875 127.718 +93.9944 86.3077 130.469 +93.6408 87.708 132.586 +93.65 89.4933 135.285 +93.6097 91.2853 137.994 +93.5683 93.1319 140.785 +93.4277 94.9361 143.513 +93.1901 96.6977 146.176 +93.3656 98.9537 149.586 +93.4312 101.169 152.935 +93.4784 103.442 156.371 +93.3292 105.574 159.594 +92.8182 107.364 162.299 +92.976 110.007 166.295 +92.6839 112.207 169.621 +92.858 115.068 173.946 +92.0712 116.827 176.604 +92.5642 120.313 181.875 +92.7242 123.507 186.702 +91.4415 124.869 188.762 +114.348 160.16 242.11 +112.169 161.22 243.712 +108.669 160.358 242.409 +106.06 160.772 243.035 +102.913 160.34 242.382 +100.308 160.725 242.964 +97.1904 160.26 242.262 +94.4356 160.354 242.404 +91.3845 159.909 241.73 +90.4306 163.191 246.693 +90.8849 169.281 255.898 +90.7123 174.538 263.845 +88.4292 175.925 265.942 +86.5491 178.21 269.396 +89.9365 191.867 290.041 +89.0514 197.057 297.886 +85.8145 197.21 298.117 +82.9395 198.206 299.624 +79.1303 196.929 297.693 +76.366 198.22 299.644 +72.6696 197.066 297.9 +69.7216 197.896 299.155 +66.0968 196.759 297.437 +63.1211 197.505 298.563 +59.6977 196.822 297.531 +56.7388 197.646 298.778 +53.1818 196.33 296.787 +50.325 197.562 298.649 +46.8459 196.32 296.772 +43.873 197.14 298.012 +40.5494 196.357 296.828 +37.6198 197.477 298.522 +34.2361 196.168 296.543 +31.2715 197.205 298.111 +27.9864 196.193 296.58 +25.0007 197.256 298.187 +21.7699 196.378 296.86 +18.7101 196.971 297.756 +15.5459 196.447 296.965 +12.4766 197.121 297.983 +9.31114 196.181 296.562 +6.22876 196.88 297.619 +3.09879 195.909 296.151 +2.22045e-14 196.469 296.997 +-3.09094 195.413 295.402 +-6.21655 196.494 297.036 +-9.29543 195.85 296.061 +-12.4347 196.459 296.983 +-15.4631 195.4 295.382 +-18.6578 196.419 296.923 +-21.6478 195.276 295.195 +-24.8403 195.99 296.274 +-27.8765 195.423 295.417 +-31.0623 195.886 296.116 +-34.0636 195.18 295.049 +-37.3376 195.996 296.282 +-40.3343 195.315 295.254 +-43.6536 196.154 296.522 +-46.5065 194.897 294.622 +-49.8518 195.704 295.841 +-52.7975 194.91 294.642 +-56.1756 195.685 295.812 +-58.955 194.373 293.829 +-62.496 195.548 295.606 +-65.295 194.372 293.828 +-68.882 195.512 295.552 +-71.593 194.146 293.487 +-75.2224 195.251 295.157 +-78.1131 194.397 293.865 +-81.6122 195.035 294.83 +-84.4605 194.098 293.413 +-88.1563 195.076 294.892 +-91.0882 194.323 293.754 +-94.8054 195.21 295.095 +-97.4618 193.895 293.107 +-101.49 195.275 295.193 +-104.347 194.355 293.803 +-108.148 195.165 295.026 +-110.96 194.163 293.513 +-114.831 194.986 294.756 +-117.625 193.955 293.197 +-121.697 194.998 294.774 +-124.543 194.041 293.327 +-128.668 195.041 294.839 +-131.223 193.639 292.719 +-137.506 197.635 298.761 +-140.333 196.555 297.128 +-143.774 196.332 296.791 +-143.047 190.535 288.028 +-142.773 185.573 280.527 +-143.111 181.59 274.506 +-145.571 180.39 272.692 +-149.746 181.289 274.051 +-160.51 189.912 287.086 +-111.416 128.876 194.82 +-111.215 125.806 190.178 +-111.549 123.439 186.6 +-112.499 121.815 184.146 +-114.19 121.025 182.951 +-115.678 120.032 181.449 +-117.858 119.761 181.041 +-119.263 118.707 179.446 +-122.121 119.088 180.023 +-125.15 119.595 180.789 +-438.767 410.966 621.249 +-440.049 404.062 610.812 +-441.041 397.083 600.261 +-442.165 390.405 590.167 +-443.595 384.167 580.737 +-444.262 377.436 570.561 +-446.517 372.2 562.647 +-447.466 366.011 553.29 +-448.82 360.296 544.652 +-450.143 354.687 536.172 +-451.613 349.317 528.054 +-453.006 344.004 520.024 +-455.039 339.282 512.885 +-456.537 334.259 505.291 +-457.971 329.29 497.781 +-461.992 326.246 493.18 +-473.547 328.457 496.522 +-481.241 327.88 495.649 +-484.755 324.443 490.454 +-471.87 310.263 469.018 +-463.446 299.379 452.565 +-468.164 297.136 449.175 +-471.785 294.21 444.75 +-472.942 289.795 438.077 +-475.345 286.205 432.65 +-476.171 281.727 425.88 +-479.095 278.543 421.068 +-481.398 275.035 415.764 +-483.207 271.29 410.104 +-484.863 267.51 404.389 +-487.293 264.199 399.383 +-488.863 260.463 393.736 +-491.006 257.074 388.613 +-492.494 253.383 383.034 +-141.262 71.4167 107.959 +-142.758 70.9185 107.206 +-143.125 69.863 105.61 +-143.47 68.8092 104.017 +-142.88 67.3273 101.777 +-143.02 66.2112 100.09 +-142.133 64.6432 97.7197 +-147.191 65.7615 99.4102 +-2564.22 1125.33 1701.14 +-494.634 213.214 322.311 +-498.702 211.126 319.155 +-502.741 209.016 315.965 +-134.968 55.101 83.2949 +-507.496 203.43 307.521 +-516.312 203.19 307.157 +-518.032 200.126 302.527 +-518.375 196.562 297.139 +-519.558 193.349 292.282 +-518.093 189.196 286.003 +-521.401 186.815 282.403 +-524.336 184.297 278.598 +-525.62 181.21 273.931 +-528.125 178.557 269.921 +-530.158 175.752 265.68 +-533.262 173.304 261.981 +-381.571 121.545 183.736 +-381.477 119.078 180.007 +-381.072 116.542 176.173 +-542.582 162.536 245.703 +-545.132 159.918 241.745 +-547.374 157.211 237.652 +-381.173 107.154 161.982 +-380.526 104.675 158.234 +-381.448 102.645 155.167 +-382.155 100.567 152.025 +-381.284 98.0941 148.287 +-380 95.5452 144.434 +-380.674 93.5099 141.357 +-381.038 91.4095 138.182 +-381.181 89.2699 134.947 +-381.1 87.0933 131.657 +-381.165 84.9659 128.441 +-382.402 83.1071 125.631 +-381.928 80.887 122.275 +-380.945 78.5814 118.79 +-381.233 76.556 115.728 +-382.147 74.6619 112.865 +-381.895 72.5499 109.672 +-381.795 70.481 106.545 +-380.518 68.2139 103.117 +-381.582 66.3789 100.344 +-380.705 64.2167 97.075 +-381.323 62.3188 94.2059 +-380.083 60.1306 90.8981 +-382.079 58.4606 88.3735 +-381.348 56.3762 85.2226 +-381.45 54.4273 82.2766 +-381.229 52.4419 79.2752 +-380.294 50.3726 76.1471 +-381.661 48.6141 73.4889 +-381.536 46.6673 70.5459 +-381.38 44.7253 67.6103 +-381.779 42.8544 64.782 +-381.558 40.9199 61.8577 +-381.896 39.0511 59.0327 +-381.318 37.096 56.0772 +-381.199 35.1949 53.2034 +-380.853 33.2805 50.3095 +-381.661 31.4701 47.5727 +-381.847 29.6083 44.7582 +-381.31 27.6967 41.8685 +-381.733 25.8598 39.0916 +-382.128 24.0209 36.3119 +-380.604 22.0706 33.3636 +-380.839 20.232 30.5843 +-380.048 18.3447 27.7313 +-381.121 16.5489 25.0166 +-381.369 14.7133 22.2418 +-381.387 12.8698 19.455 +-380.278 10.9956 16.6217 +-380.737 9.17146 13.8643 +-380.368 7.32837 11.0781 +-3275.38 47.3206 71.5335 +-146.078 1.40678 2.1266 +-144.894 0.697637 1.0546 +96.6 3.55271e-15 -1.7053e-13 +96.4963 0.470929 0.698124 +96.5853 0.942797 1.39764 +96.5669 1.41411 2.09632 +96.6411 1.88726 2.79775 +96.5081 2.35637 3.49317 +96.4676 2.82724 4.19122 +96.4198 3.29791 4.88895 +96.3647 3.76832 5.58631 +96.3022 4.23845 6.28324 +97.129 4.75211 7.04471 +96.9516 5.22058 7.73918 +97.0653 5.70521 8.45762 +96.0784 6.12172 9.07507 +96.8725 6.65164 9.86065 +96.765 7.12419 10.5612 +96.5511 7.58834 11.2493 +96.429 8.05921 11.9473 +96.2996 8.52952 12.6445 +96.0642 8.98987 13.3269 +95.7233 9.43893 13.9926 +96.5556 10.0076 14.8357 +96.3958 10.4784 15.5336 +96.2286 10.9484 16.2304 +96.0541 11.4176 16.9259 +95.8723 11.886 17.6202 +95.6831 12.3534 18.3131 +96.3619 12.9373 19.1788 +96.3504 13.4341 19.9153 +96.1371 13.9038 20.6116 +96.5926 14.4738 21.4565 +96.363 14.9446 22.1545 +96.3184 15.4452 22.8965 +95.882 15.8828 23.5453 +96.3955 16.481 24.432 +96.1347 16.9507 25.1284 +96.7224 17.5748 26.0535 +96.4445 18.0461 26.7523 +96.1592 18.5161 27.449 +96.6208 19.134 28.365 +97.3522 19.8152 29.3748 +96.9456 20.2699 30.0489 +96.7189 20.7623 30.7788 +97.1356 21.3974 31.7204 +96.8907 21.8916 32.453 +97.2845 22.5349 33.4065 +96.1928 22.8339 33.8499 +96.7498 23.5255 34.875 +97.2012 24.2015 35.8772 +96.0919 24.4893 36.3039 +96.5218 25.17 37.313 +96.1253 25.6401 38.0099 +96.4406 26.3044 38.9946 +96.9214 27.0235 40.0607 +96.4069 27.4701 40.7228 +96.7729 28.172 41.7632 +96.2413 28.6169 42.4227 +96.582 29.3256 43.4734 +96.2082 29.823 44.2107 +96.4354 30.5116 45.2315 +96.6484 31.2047 46.2591 +96.8471 31.9023 47.2931 +96.3456 32.3737 47.992 +96.6041 33.1056 49.077 +96.0838 33.5758 49.774 +96.3153 34.3138 50.8681 +96.3632 34.9957 51.879 +95.8135 35.4647 52.5742 +96.0026 36.2123 53.6825 +96.1755 36.9645 54.7976 +96.2504 37.6891 55.8717 +96.3099 38.4172 56.9511 +96.4348 39.1815 58.0842 +95.8197 39.6507 58.7796 +95.8363 40.386 59.8697 +95.9958 41.1926 61.0654 +96.5313 42.1759 62.5231 +95.9478 42.6802 63.2708 +95.9775 43.4636 64.432 +95.9901 44.2504 65.5985 +95.8322 44.9688 66.6634 +95.8872 45.7979 67.8926 +95.7726 46.5576 69.0188 +95.7165 47.3567 70.2034 +95.5684 48.1214 71.337 +95.5511 48.9638 72.5857 +96.0999 50.1147 74.2919 +95.822 50.8512 75.3838 +95.6722 51.6666 76.5925 +95.5042 52.4842 77.8047 +95.318 53.3042 79.0202 +95.8143 54.5251 80.8301 +95.5155 55.3125 81.9973 +95.2683 56.1417 83.2266 +95.6162 57.3407 85.004 +95.3933 58.2175 86.3039 +95.0165 59.0133 87.4836 +95.2848 60.2285 89.285 +94.9317 61.0707 90.5335 +95.0792 62.2546 92.2886 +95.2611 63.4877 94.1165 +94.8393 64.3382 95.3775 +94.7757 65.4505 97.0264 +94.7467 66.6109 98.7466 +94.8119 67.8642 100.604 +94.2363 68.679 101.812 +94.2442 69.94 103.682 +94.2199 71.2066 105.559 +94.1044 72.433 107.377 +94.4804 74.0732 109.809 +94.468 75.4472 111.846 +94.4766 76.8733 113.96 +93.9444 77.8877 115.464 +93.6637 79.1359 117.314 +94.0047 80.9506 120.004 +94.0274 82.5382 122.358 +94.0607 84.1795 124.791 +93.893 85.6839 127.021 +93.5309 87.05 129.046 +93.6408 88.9005 131.79 +93.65 90.7102 134.472 +93.659 92.5752 137.237 +93.5198 94.349 139.867 +93.4277 96.2269 142.65 +93.2371 98.0617 145.37 +93.3194 100.249 148.614 +93.4312 102.544 152.016 +93.4338 104.798 155.357 +92.9347 106.557 157.964 +93.2487 109.328 162.073 +92.976 111.503 165.296 +93.0986 114.242 169.356 +92.1665 115.765 171.614 +91.5927 117.8 174.631 +92.6033 122 180.858 +92.7625 125.237 185.656 +91.7786 127.033 188.319 +111.966 158.956 235.642 +110.879 161.532 239.461 +107.444 160.705 238.235 +105.171 161.591 239.548 +101.744 160.675 238.19 +99.4936 161.588 239.544 +96.175 160.742 238.29 +93.8485 161.524 239.45 +90.6327 160.749 238.301 +90.9276 166.32 246.559 +90.6577 171.154 253.725 +90.1885 175.89 260.746 +88.5895 178.64 264.823 +85.7209 178.904 265.215 +89.7112 193.988 287.575 +88.6402 198.813 294.728 +85.1609 198.369 294.069 +82.1971 199.104 295.159 +78.3079 197.532 292.828 +75.6383 199 295.005 +71.9718 197.827 293.267 +69.0347 198.61 294.428 +65.4408 197.455 292.715 +62.5307 198.317 293.993 +59.1035 197.512 292.799 +56.1756 198.345 294.035 +52.7975 197.561 292.871 +49.8379 198.309 293.982 +46.5065 197.547 292.852 +43.5317 198.266 293.917 +40.2211 197.415 292.656 +37.2435 198.16 293.76 +33.9677 197.277 292.45 +30.949 197.825 293.264 +27.6961 196.798 291.741 +24.7356 197.818 293.253 +21.5379 196.927 291.931 +18.5688 198.141 293.732 +15.3976 197.218 292.364 +12.3754 198.18 293.79 +9.2169 196.835 291.796 +6.16419 197.488 292.764 +3.0665 196.504 291.305 +2.4869e-14 197.574 292.891 +-3.06825 196.616 291.471 +-6.16768 197.6 292.93 +-9.20382 196.556 291.383 +-12.337 197.566 292.879 +-15.3017 195.989 290.542 +-18.4641 197.024 292.076 +-21.4219 195.866 290.36 +-24.6729 197.316 292.508 +-27.5941 196.073 290.666 +-30.8096 196.934 291.942 +-33.7185 195.829 290.305 +-36.9613 196.659 291.534 +-39.9155 195.915 290.432 +-43.2027 196.768 291.696 +-46.0366 195.551 289.893 +-49.3229 196.26 290.944 +-52.2654 195.57 289.92 +-55.5812 196.247 290.923 +-58.5094 195.526 289.856 +-61.8708 196.225 290.891 +-64.6207 194.98 289.046 +-68.1761 196.14 290.765 +-70.8554 194.758 288.717 +-74.474 195.937 290.464 +-77.3122 195.02 289.105 +-80.9824 196.161 290.796 +-83.8302 195.269 289.474 +-87.1403 195.45 289.742 +-90.2119 195.071 289.181 +-93.9513 196.082 290.679 +-96.6601 194.915 288.949 +-100.47 195.941 290.471 +-103.24 194.907 288.938 +-107.125 195.947 290.479 +-109.968 195.043 289.139 +-113.78 195.829 290.304 +-116.546 194.789 288.762 +-120.46 195.64 290.025 +-123.208 194.571 288.439 +-127.403 195.749 290.185 +-129.927 194.333 288.087 +-135.535 197.451 292.709 +-138.721 196.938 291.949 +-143.25 198.276 293.932 +-143.085 193.178 286.374 +-142.851 188.2 278.995 +-143.669 184.777 273.921 +-145.408 182.639 270.751 +-150.658 184.874 274.064 +-161.567 193.761 287.238 +-111.804 131.083 194.322 +-111.478 127.818 189.482 +-111.728 125.318 185.776 +-113.044 124.07 183.926 +-114.652 123.166 182.587 +-116.053 122.059 180.945 +-118.145 121.685 180.39 +-120.039 121.103 179.528 +-122.81 121.389 179.952 +-126.6 122.626 181.785 +-439.274 417.036 618.23 +-440.049 409.556 607.142 +-441.355 402.768 597.078 +-442.483 395.998 587.043 +-443.595 389.39 577.247 +-444.807 383.037 567.828 +-446.517 377.261 559.266 +-448.193 371.59 550.86 +-449.5 365.748 542.199 +-450.315 359.646 533.154 +-452.31 354.613 525.692 +-453.535 349.089 517.503 +-455.515 344.255 510.337 +-456.838 339.027 502.586 +-458.58 334.211 495.447 +-463.901 332.049 492.242 +-475.912 334.586 496.004 +-482.563 333.251 494.024 +-487.936 331.012 490.705 +-494.239 329.39 488.3 +-480.267 314.463 466.172 +-465.605 299.53 444.035 +-470.261 297.247 440.65 +-474.414 294.65 436.8 +-475.953 290.468 430.601 +-477.126 286.13 424.17 +-479.37 282.493 418.778 +-481.607 278.895 413.445 +-483.838 275.338 408.172 +-484.863 271.147 401.959 +-487.293 267.791 396.983 +-489.511 264.354 391.888 +-491.659 260.916 386.792 +-493.152 257.171 381.24 +-140.525 72.0097 106.75 +-142.907 71.9577 106.673 +-143.35 70.9237 105.14 +-143.168 69.5978 103.174 +-142.88 68.2428 101.166 +-142.178 66.7161 98.9024 +-143.908 66.3403 98.3453 +-147.813 66.9375 99.2307 +-501.104 222.905 330.442 +-494.319 215.975 320.169 +-497.115 213.316 316.228 +-504.418 212.565 315.114 +-134.405 55.6174 82.4493 +-135.025 54.8607 81.3276 +-521.36 207.966 308.296 +-513.281 200.987 297.951 +-528.182 203.004 300.941 +-516.49 194.821 288.81 +-520.011 192.478 285.337 +-521.485 189.385 280.752 +-523.999 186.683 276.745 +-526.129 183.852 272.549 +-528.978 181.277 268.732 +-530.929 178.401 264.469 +-2823.13 929.963 1378.61 +-382.35 123.449 183.005 +-380.345 120.339 178.395 +-382.559 118.587 175.798 +-2879.44 874.298 1296.09 +-544.867 162.014 240.175 +-2906.29 846.062 1254.24 +-380.727 108.484 160.821 +-381.421 106.348 157.654 +-380.639 103.82 153.907 +-381.342 101.718 150.791 +-382.099 99.6404 147.711 +-381.092 97.1228 143.979 +-380.674 94.7813 140.507 +-381.222 92.6971 137.418 +-381.457 90.5491 134.233 +-382.024 88.4917 131.184 +-381.073 86.0999 127.638 +-381.285 83.9911 124.512 +-381.368 81.8666 121.362 +-382.069 79.8853 118.425 +-382.643 77.8838 115.458 +-382.147 75.6771 112.187 +-382.368 73.6275 109.148 +-382.933 71.6523 106.22 +-380.898 69.2102 102.6 +-381.964 67.3491 99.8409 +-381.279 65.1883 96.6376 +-381.323 63.1661 93.6399 +-380.852 61.0718 90.5352 +-381.116 59.1061 87.6212 +-380.575 57.0269 84.5389 +-381.934 55.2374 81.886 +-382.102 53.2767 78.9794 +-379.419 50.94 75.5154 +-381.076 49.1997 72.9355 +-380.951 47.2292 70.0143 +-380.891 45.2753 67.1178 +-382.073 43.4706 64.4424 +-381.558 41.4763 61.4861 +-381.208 39.5107 58.5722 +-381.613 37.6295 55.7834 +-381.002 35.655 52.8563 +-381.544 33.7943 50.0979 +-380.87 31.8319 47.1888 +-380.461 29.9019 44.3277 +-380.616 28.0222 41.5412 +-381.733 26.2114 38.8567 +-381.333 24.2969 36.0186 +-380.604 22.3707 33.1631 +-381.436 20.5393 30.4482 +-380.646 18.6234 27.6081 +-381.121 16.7739 24.8663 +-380.67 14.8861 22.0677 +-380.689 13.0209 19.3027 +-381.576 11.1832 16.5783 +-381.437 9.31327 13.8064 +-380.368 7.42801 11.0116 +-147.25 2.15629 3.19657 +-146.078 1.42591 2.11383 +-146.794 0.7164 1.06202 +96.5 -3.55271e-15 -1.7053e-13 +96.4963 0.477208 0.693847 +96.5853 0.955367 1.38908 +96.5669 1.43296 2.08348 +96.5412 1.91045 2.77773 +96.5081 2.38778 3.47177 +96.4676 2.86494 4.16554 +96.5196 3.34534 4.86402 +96.3647 3.81857 5.55209 +97.1994 4.33497 6.30292 +96.2324 4.77102 6.93693 +97.1507 5.30105 7.70756 +96.1703 5.72795 8.32828 +96.0784 6.20334 9.01948 +96.8725 6.74033 9.80024 +96.765 7.21918 10.4965 +96.6502 7.6974 11.1918 +96.429 8.16667 11.8741 +96.2008 8.63435 12.5541 +95.867 9.09104 13.2181 +95.7233 9.56478 13.9069 +95.4741 10.0275 14.5797 +96.3958 10.6181 15.4384 +96.1306 11.0831 16.1146 +95.9563 11.5581 16.8051 +95.8723 12.0445 17.5123 +96.4626 12.6201 18.3492 +96.3619 13.1098 19.0613 +96.1563 13.5859 19.7535 +95.9434 14.0609 20.4441 +95.7232 14.5348 21.1332 +96.363 15.1439 22.0187 +96.1262 15.6198 22.7108 +95.882 16.0946 23.4011 +96.3955 16.7007 24.2823 +96.1347 17.1767 24.9744 +96.7224 17.8091 25.8939 +96.4445 18.2867 26.5884 +96.1592 18.763 27.2808 +96.6208 19.3891 28.1912 +96.2245 19.8468 28.8567 +97.0392 20.56 29.8937 +96.7189 21.0391 30.5902 +97.1356 21.6827 31.5261 +96.8907 22.1835 32.2542 +96.5454 22.6618 32.9496 +97.0212 23.3377 33.9323 +96.6581 23.8166 34.6286 +96.4704 24.3397 35.3893 +96.1829 24.8394 36.1157 +96.5218 25.5056 37.0844 +96.9377 26.2016 38.0963 +96.4406 26.6551 38.7557 +96.8319 27.3586 39.7785 +96.4069 27.8364 40.4733 +96.6842 28.5214 41.4693 +96.3296 29.025 42.2015 +96.6699 29.7437 43.2464 +96.1207 30.1931 43.8999 +96.3484 30.8905 44.9139 +96.6484 31.6208 45.9757 +96.244 32.1263 46.7107 +96.3456 32.8053 47.698 +96.6041 33.547 48.7763 +96.0838 34.0235 49.4691 +96.1466 34.7105 50.468 +96.3632 35.4623 51.5612 +96.564 36.219 52.6614 +96.7487 36.9804 53.7683 +96.1755 37.4574 54.4619 +96.2504 38.1916 55.5294 +96.3913 38.9623 56.65 +95.7067 39.4042 57.2925 +96.5432 40.4827 58.8606 +95.8363 40.9245 59.5029 +95.9164 41.7073 60.6412 +95.9009 42.4591 61.7343 +95.9478 43.2493 62.8831 +95.9775 44.0431 64.0373 +95.9901 44.8404 65.1966 +95.9088 45.6048 66.308 +95.8872 46.4086 67.4767 +95.7726 47.1784 68.596 +95.7165 47.9881 69.7733 +95.5684 48.763 70.9 +95.4774 49.5783 72.0854 +96.0267 50.7442 73.7806 +95.822 51.5292 74.9219 +95.6722 52.3554 76.1232 +95.5756 53.2237 77.3857 +95.318 54.0149 78.5361 +95.7442 55.2117 80.2762 +95.5155 56.05 81.495 +95.2683 56.8902 82.7167 +95.0706 57.7737 84.0012 +95.3258 58.9518 85.7142 +95.0165 59.8001 86.9476 +95.2185 60.989 88.6763 +94.9317 61.885 89.9789 +95.0792 63.0846 91.7232 +95.1968 64.2905 93.4765 +94.7757 65.1524 94.7297 +94.7757 66.3232 96.432 +94.7467 67.4991 98.1416 +94.8119 68.769 99.9881 +94.6624 69.9092 101.646 +94.3646 70.9632 103.178 +94.1604 72.1107 104.847 +94.6922 73.8572 107.386 +94.5965 75.1527 109.27 +94.4107 76.4067 111.093 +94.3633 77.8047 113.126 +94.3358 79.2554 115.235 +94.1604 80.6166 117.214 +94.1136 82.1245 119.407 +94.0274 83.6387 121.608 +94.2196 85.4459 124.236 +93.4227 86.3916 125.611 +93.4794 88.162 128.185 +93.5901 90.0365 130.91 +93.65 91.9196 133.648 +93.659 93.8095 136.396 +93.5198 95.607 139.01 +93.4277 97.5099 141.777 +93.1901 99.3193 144.407 +92.95 101.184 147.118 +93.4766 103.962 151.158 +93.4338 106.195 154.405 +92.9347 107.978 156.996 +93.2057 110.735 161.006 +92.9338 112.938 164.208 +92.7669 115.352 167.719 +91.3937 116.325 169.133 +91.473 119.215 173.335 +92.5642 123.575 179.674 +92.8007 126.96 184.596 +92.4904 129.726 188.617 +96.6464 139.036 202.154 +109.983 162.363 236.071 +106.288 161.096 234.229 +104.248 162.308 235.99 +100.71 161.161 234.324 +98.3541 161.867 235.35 +95.001 160.897 233.939 +92.8596 161.953 235.475 +90.4824 162.622 236.448 +90.8984 168.483 244.969 +90.6577 173.436 252.17 +89.5546 176.982 257.327 +87.6809 179.166 260.502 +86.7561 183.479 266.773 +89.7112 196.574 285.813 +87.8902 199.76 290.444 +84.2504 198.864 289.143 +81.3648 199.715 290.38 +77.6802 198.561 288.702 +74.8482 199.547 290.136 +71.0547 197.91 287.756 +68.3478 199.256 289.712 +64.7301 197.914 287.762 +62.0098 199.288 289.758 +58.4764 198.022 287.917 +55.5968 198.919 289.222 +52.1176 197.617 287.329 +49.3369 198.933 289.243 +45.9191 197.653 287.381 +43.093 198.885 289.172 +39.7004 197.458 287.098 +36.8567 198.717 288.928 +33.5364 197.369 286.968 +30.6527 198.543 288.676 +27.4136 197.388 286.996 +24.4845 198.42 288.498 +21.3182 197.516 287.183 +18.3752 198.689 288.888 +15.1926 197.187 286.704 +12.2183 198.274 288.285 +9.12528 197.478 287.127 +6.10136 198.082 288.005 +3.03683 197.198 286.719 +2.75335e-14 198.168 288.131 +-3.03683 197.198 286.719 +-6.08914 197.685 287.428 +-9.08602 196.628 285.891 +-12.1799 197.651 287.379 +-15.149 196.621 285.881 +-18.2705 197.557 287.243 +-21.1961 196.384 285.537 +-24.4148 197.855 287.675 +-27.3195 196.71 286.011 +-30.5132 197.64 287.363 +-33.3735 196.41 285.574 +-36.5745 197.195 286.716 +-39.5192 196.557 285.788 +-42.7518 197.31 286.883 +-45.5536 196.08 285.094 +-48.8358 196.913 286.306 +-51.7185 196.104 285.129 +-55.0336 196.904 286.293 +-57.7502 195.562 284.342 +-61.2283 196.776 286.106 +-63.9282 195.463 284.197 +-67.4891 196.753 286.073 +-70.1376 195.356 284.043 +-73.7047 196.498 285.703 +-76.5114 195.573 284.358 +-79.9476 196.237 285.322 +-82.7797 195.393 284.095 +-86.4629 196.516 285.728 +-88.9851 194.984 283.5 +-92.7349 196.123 285.157 +-95.511 195.166 283.766 +-99.2846 196.211 285.285 +-102.189 195.495 284.244 +-106.043 196.554 285.784 +-108.765 195.482 284.225 +-112.637 196.446 285.626 +-115.435 195.505 284.258 +-119.321 196.374 285.521 +-122.006 195.241 283.875 +-125.966 196.122 285.156 +-128.631 194.961 283.467 +-133.17 196.592 285.839 +-137.511 197.824 287.631 +-141.901 199.028 289.381 +-143.43 196.225 285.305 +-142.695 190.5 276.981 +-144.307 188.072 273.452 +-146.059 185.902 270.296 +-151.487 188.37 273.884 +-160.637 195.215 283.837 +-111.933 132.984 193.355 +-111.302 129.319 188.026 +-112.219 127.546 185.449 +-113.361 126.077 183.313 +-115.437 125.663 182.711 +-116.898 124.587 181.146 +-118.813 124.004 180.298 +-120.718 123.412 179.437 +-123.648 123.846 180.068 +-127.35 124.997 181.742 +-439.731 423.036 615.082 +-440.512 415.454 604.057 +-441.355 408.138 593.42 +-442.642 401.423 583.657 +-444.078 395.012 574.336 +-445.297 388.571 564.971 +-447.069 382.764 556.527 +-448.361 376.685 547.689 +-449.896 370.951 539.352 +-450.888 364.906 530.562 +-452.89 359.802 523.142 +-454.064 354.156 514.933 +-456.289 349.438 508.072 +-457.199 343.818 499.902 +-460.041 339.746 493.981 +-467.41 339.021 492.927 +-479.15 341.353 496.318 +-485.961 340.072 494.455 +-483.292 332.234 483.058 +-485.305 327.748 476.536 +-493.97 327.748 476.537 +-468.361 305.32 443.927 +-467.81 299.64 435.668 +-474.146 298.41 433.879 +-476.291 294.55 428.267 +-477.74 290.318 422.114 +-479.99 286.629 416.751 +-482.232 282.981 411.446 +-484.609 279.454 406.317 +-485.712 275.244 400.196 +-487.935 271.719 395.071 +-490.158 268.233 390.002 +-492.312 264.745 384.932 +-493.517 260.793 379.186 +-142.073 73.7739 107.265 +-143.278 73.1064 106.295 +-143.125 71.7571 104.333 +-142.716 70.303 102.218 +-142.88 69.1526 100.546 +-142.944 67.97 98.8263 +-146.994 68.6664 99.839 +-148.279 68.0436 98.9335 +-512.452 230.992 335.856 +-495.422 219.343 318.918 +-496.719 215.988 314.04 +-501.144 214.001 311.151 +-506.028 212.189 308.516 +-135.834 55.9252 81.3136 +-134.818 54.4945 79.2334 +-509.84 202.302 294.141 +-528.759 205.935 299.424 +-517.568 197.831 287.64 +-520.011 195.045 283.589 +-521.821 192.033 279.211 +-524.421 189.324 275.272 +-526.892 186.573 271.272 +-529.575 183.902 267.387 +-532.129 181.188 263.442 +-382.822 127.786 185.797 +-383.13 125.35 182.255 +-380.084 121.86 177.18 +-2865.69 900.161 1308.81 +-2879.44 885.955 1288.15 +-545.308 164.307 238.897 +-2906.29 857.343 1246.55 +-380.727 109.93 159.836 +-381.69 107.841 156.798 +-380.37 105.13 152.856 +-382.696 103.44 150.399 +-381.012 100.682 146.388 +-381.092 98.4177 143.096 +-380.126 95.9068 139.446 +-381.864 94.0911 136.806 +-381.457 91.7564 133.411 +-381.1 89.4546 130.064 +-382 87.4604 127.165 +-381.564 85.1733 123.839 +-381.648 83.0193 120.708 +-381.413 80.811 117.497 +-382.173 78.8253 114.61 +-381.864 76.6294 111.417 +-381.517 74.4432 108.238 +-381.795 72.3918 105.256 +-381.849 70.3081 102.226 +-381.391 68.1445 99.0801 +-380.896 65.9911 95.9491 +-381.035 63.9601 92.9962 +-381.236 61.9484 90.0712 +-380.923 59.8636 87.0399 +-381.348 57.9046 84.1916 +-380.385 55.7468 81.0543 +-381.617 53.9185 78.3959 +-381.169 51.8573 75.399 +-381.174 49.8684 72.5072 +-381.341 47.9079 69.6567 +-381.38 45.9379 66.7923 +-382.073 44.0501 64.0476 +-381.951 42.0725 61.1722 +-380.323 39.9446 58.0783 +-382.499 38.2198 55.5705 +-381.495 36.1771 52.6005 +-381.248 34.2183 49.7524 +-380.87 32.2563 46.8997 +-380.857 30.3322 44.1021 +-381.31 28.4476 41.362 +-381.038 26.5125 38.5484 +-381.134 24.608 35.7793 +-380.802 22.6808 32.9772 +-381.834 20.8348 30.2932 +-381.244 18.9014 27.482 +-379.925 16.9442 24.6364 +-380.172 15.0648 21.9037 +-381.387 13.2187 19.2197 +-381.476 11.3293 16.4724 +-381.037 9.42753 13.7074 +-380.868 7.53697 10.9585 +-146.95 2.18059 3.17052 +-145.678 1.44097 2.09512 +-145.294 0.718534 1.04473 +96.6 3.55271e-15 -1.7053e-13 +96.4963 0.483448 0.689513 +96.5853 0.96786 1.3804 +96.5669 1.4517 2.07047 +96.5412 1.93543 2.76038 +95.7088 2.39898 3.42152 +96.4676 2.9024 4.13952 +96.4198 3.38558 4.82865 +96.4644 3.8725 5.52312 +96.4019 4.35562 6.21216 +96.2324 4.83341 6.8936 +96.2548 5.32084 7.58879 +97.0653 5.85688 8.35331 +96.9726 6.3429 9.0465 +95.9792 6.76555 9.64929 +96.765 7.31357 10.4309 +96.5511 7.79007 11.1105 +96.429 8.27346 11.7999 +96.2996 8.75627 12.4885 +96.0642 9.22886 13.1626 +95.9203 9.70977 13.8485 +96.4573 10.2632 14.6378 +96.3958 10.757 15.342 +96.1306 11.2281 16.0139 +95.9563 11.7092 16.7002 +95.8723 12.202 17.4029 +95.6831 12.6818 18.0873 +96.3619 13.2813 18.9423 +96.3504 13.7913 19.6697 +96.1371 14.2735 20.3574 +96.5926 14.8586 21.1919 +96.5558 15.3726 21.925 +96.1262 15.8241 22.5689 +95.7861 16.2887 23.2317 +96.4911 16.9359 24.1546 +96.0393 17.3841 24.7939 +95.8665 17.8823 25.5045 +96.4445 18.5259 26.4223 +96.1592 19.0083 27.1104 +96.6208 19.6426 28.0151 +96.2245 20.1063 28.6765 +97.0392 20.8289 29.707 +96.6256 21.2937 30.3699 +96.3913 21.7979 31.0891 +96.798 22.4521 32.022 +97.3769 23.1558 33.0258 +96.9292 23.6204 33.6884 +96.8415 24.1738 34.4776 +96.4704 24.658 35.1682 +96.9109 25.3546 36.1618 +96.6124 25.8634 36.8875 +96.9377 26.5442 37.8584 +96.4406 27.0036 38.5137 +96.9214 27.7419 39.5666 +96.4069 28.2004 40.2205 +95.9746 28.6823 40.9078 +96.2413 29.3776 41.8995 +96.582 30.1052 42.9372 +96.8204 30.8105 43.9432 +96.3484 31.2944 44.6334 +96.6484 32.0343 45.6886 +96.1578 32.5173 46.3774 +96.3456 33.2343 47.4001 +96.6041 33.9857 48.4717 +96.0838 34.4684 49.1602 +96.1466 35.1643 50.1528 +96.3632 35.926 51.2392 +96.564 36.6926 52.3325 +96.0026 37.175 53.0204 +96.1755 37.9472 54.1218 +96.3323 38.7239 55.2296 +96.3913 39.4717 56.2962 +95.7067 39.9194 56.9347 +95.8197 40.7047 58.0547 +95.9161 41.4941 59.1806 +95.9164 42.2527 60.2625 +95.9009 43.0143 61.3488 +95.8695 43.779 62.4394 +95.9775 44.619 63.6374 +95.9129 45.3902 64.7373 +95.9854 46.238 65.9465 +95.8872 47.0154 67.0553 +95.9236 47.8706 68.275 +95.6416 48.5776 69.2834 +95.6427 49.4391 70.5119 +95.5511 50.2654 71.6905 +96.0999 51.4469 73.3757 +95.822 52.203 74.454 +95.7441 53.0799 75.7046 +95.5042 53.8795 76.8451 +95.318 54.7212 78.0456 +95.7442 55.9337 79.7749 +94.8903 56.4112 80.4559 +95.2683 57.6341 82.2001 +95.0706 58.5292 83.4766 +95.3258 59.7227 85.1789 +95.0165 60.5821 86.4046 +95.2848 61.8296 88.1838 +94.8661 62.6511 89.3555 +95.0142 63.8659 91.0881 +94.6826 64.7793 92.3908 +94.8393 66.0486 94.2011 +94.6498 67.1015 95.7028 +94.7467 68.3817 97.5287 +94.7503 69.6229 99.2989 +94.7233 70.8692 101.077 +94.2442 71.7993 102.403 +94.6363 73.4228 104.719 +94.1632 74.4051 106.119 +94.3642 75.9488 108.321 +94.4107 77.4058 110.399 +94.25 78.728 112.285 +93.8326 79.8635 113.905 +93.7741 81.3355 116.004 +94.1136 83.1984 118.661 +93.9737 84.6836 120.779 +93.7427 86.1251 122.835 +93.7885 87.8641 125.315 +93.8914 89.7086 127.946 +93.5901 91.2139 130.093 +93.65 93.1216 132.814 +93.659 95.0362 135.544 +93.5198 96.8572 138.142 +93.4277 98.785 140.891 +93.1901 100.618 143.505 +93.3194 102.914 146.781 +93.4312 105.27 150.141 +93.3892 107.533 153.368 +92.9785 109.441 156.089 +92.8182 111.716 159.334 +92.976 114.467 163.257 +91.8131 115.659 164.958 +92.0038 118.632 169.198 +91.1939 120.405 171.727 +92.7596 125.455 178.929 +92.7625 128.567 183.367 +92.7151 131.741 187.895 +92.9814 135.512 193.273 +108.514 162.289 231.463 +105.097 161.374 230.158 +102.845 162.219 231.363 +99.608 161.483 230.313 +97.3449 162.301 231.481 +94.0174 161.313 230.071 +91.8399 162.269 231.435 +91.0838 165.844 236.533 +90.8399 170.576 243.283 +90.6009 175.593 250.438 +88.7277 177.641 253.359 +86.1844 178.411 254.457 +89.422 191.59 273.253 +89.1854 197.978 282.364 +86.9225 200.144 285.453 +83.0365 198.562 283.197 +80.285 199.642 284.737 +76.5114 198.131 282.582 +73.8918 199.574 284.64 +70.2772 198.304 282.829 +67.4891 199.326 284.286 +64.074 198.47 283.066 +61.211 199.293 284.239 +57.7337 198.063 282.486 +54.8616 198.855 283.615 +51.4525 197.646 281.89 +48.7106 198.976 283.788 +45.3187 197.619 281.853 +42.5202 198.807 283.547 +39.1796 197.416 281.562 +36.3864 198.746 283.46 +33.0955 197.321 281.427 +30.3302 199.024 283.855 +27.0527 197.336 281.449 +24.2334 198.954 283.755 +21.0434 197.52 281.711 +18.1867 199.223 284.14 +15.0312 197.643 281.887 +12.0892 198.744 283.457 +9.00225 197.362 281.486 +6.02283 198.088 282.522 +2.99669 197.135 281.162 +2.30926e-14 198.119 282.565 +-2.98884 196.619 280.425 +-6.02632 198.203 282.685 +-8.9944 197.19 281.24 +-12.0508 198.113 282.557 +-14.9571 196.669 280.497 +-18.0873 198.134 282.586 +-20.9458 196.603 280.403 +-24.1078 197.922 282.285 +-26.8879 196.135 279.735 +-30.1123 197.594 281.816 +-32.9326 196.349 280.041 +-36.1982 197.719 281.994 +-38.9985 196.503 280.261 +-42.313 197.839 282.165 +-44.9793 196.139 279.742 +-48.3348 197.441 281.599 +-51.0534 196.113 279.704 +-54.2984 196.814 280.704 +-57.0074 195.572 278.932 +-60.4469 196.805 280.692 +-63.254 195.93 279.444 +-66.5923 196.677 280.508 +-69.2205 195.323 278.577 +-72.9354 196.99 280.955 +-75.5591 195.665 279.065 +-79.1378 196.789 280.668 +-81.5658 195.045 278.181 +-85.5436 196.969 280.925 +-87.8333 194.976 278.083 +-91.7514 196.581 280.371 +-94.255 195.117 278.284 +-98.2372 196.68 280.513 +-100.683 195.135 278.309 +-104.728 196.654 280.475 +-107.202 195.191 278.389 +-111.555 197.103 281.117 +-113.69 195.067 278.212 +-117.888 196.553 280.331 +-120.271 194.981 278.089 +-124.666 196.637 280.451 +-127.02 195.037 278.169 +-131.521 196.697 280.538 +-135.129 196.939 280.882 +-140.215 199.235 284.157 +-142.971 198.154 282.615 +-142.695 192.991 275.252 +-143.59 189.584 270.392 +-147.117 189.696 270.552 +-150.368 189.422 270.162 +-159.665 196.57 280.357 +-111.632 134.36 191.63 +-111.522 131.268 187.219 +-112.754 129.831 185.17 +-113.77 128.186 182.825 +-115.76 127.663 182.078 +-117.274 126.622 180.593 +-119.528 126.383 180.252 +-121.348 125.678 179.247 +-125.273 127.114 181.295 +-128.55 127.824 182.308 +-440.696 429.508 612.581 +-440.821 421.181 600.706 +-442.086 414.16 590.692 +-443.118 407.11 580.636 +-444.508 400.565 571.302 +-446.114 394.375 562.473 +-447.842 388.439 554.007 +-448.92 382.087 544.948 +-450.916 376.654 537.198 +-451.577 370.242 528.053 +-453.239 364.787 520.274 +-454.593 359.205 512.313 +-456.586 354.238 505.228 +-457.921 348.865 497.565 +-462.72 346.193 493.754 +-470.796 345.943 493.397 +-480.768 346.985 494.884 +-482.563 342.11 487.931 +-483.801 336.933 480.547 +-487.362 333.441 475.566 +-491.437 330.331 471.132 +-494.8 326.774 466.058 +-482.586 313.146 446.621 +-470.466 299.965 427.823 +-477.169 298.952 426.377 +-478.149 294.366 419.837 +-480.609 290.752 414.682 +-482.371 286.764 408.995 +-485.029 283.354 404.13 +-486.136 279.086 398.044 +-489.076 275.916 393.522 +-490.59 271.98 387.908 +-492.964 268.563 383.036 +-140.932 75.4476 107.606 +-142.442 74.9327 106.872 +-143.501 74.1777 105.795 +-143.425 72.8476 103.898 +-142.489 71.1092 101.419 +-142.576 69.9082 99.7059 +-142.791 68.7853 98.1043 +-147.612 69.8565 99.6322 +-147.658 68.6446 97.9037 +-513.782 234.62 334.625 +-511.261 229.315 327.059 +-506.08 222.936 317.96 +-499.307 216.005 308.074 +-501.848 213.188 304.057 +-136.886 57.0952 81.4315 +-136.202 55.7739 79.5469 +-514.1 206.66 294.746 +-524.556 206.97 295.189 +-518.148 200.643 286.164 +-521.179 198.039 282.451 +-522.659 194.857 277.913 +-525.939 192.355 274.344 +-527.656 189.287 269.969 +-530.513 186.636 266.188 +-532.558 183.705 262.008 +-381.357 128.962 183.93 +-382.264 126.702 180.707 +-382.086 124.104 177.001 +-383.346 121.99 173.987 +-2879.44 897.54 1280.11 +-545.662 166.563 237.558 +-382.213 114.225 162.912 +-381.173 111.498 159.023 +-379.094 108.508 154.759 +-381.089 106.706 152.188 +-381.072 104.348 148.825 +-381.284 102.071 145.578 +-381.092 99.7047 142.203 +-381.223 97.441 138.974 +-380.58 95.0012 135.494 +-380.076 92.6198 132.098 +-381.285 90.6679 129.314 +-382 88.6041 126.371 +-380.355 86.0138 122.676 +-381.368 84.0429 119.865 +-381.507 81.8878 116.792 +-381.797 79.7774 113.782 +-381.204 77.4971 110.529 +-380.949 75.3041 107.402 +-382.649 73.502 104.832 +-380.518 70.9795 101.234 +-381.105 68.9839 98.3876 +-381.47 66.9545 95.4932 +-381.61 64.8941 92.5546 +-381.236 62.7585 89.5086 +-381.212 60.6929 86.5626 +-381.83 58.7358 83.7714 +-380.966 56.562 80.671 +-381.326 54.5819 77.8468 +-381.169 52.5354 74.9281 +-380.589 50.443 71.9439 +-381.829 48.5965 69.3103 +-381.086 46.5027 66.3241 +-380.113 44.3972 63.3211 +-380.282 42.4365 60.5246 +-380.028 40.4355 57.6708 +-381.81 38.6498 55.1238 +-381.495 36.6502 52.272 +-381.149 34.6568 49.4289 +-380.672 32.6611 46.5825 +-381.352 30.7688 43.8836 +-380.616 28.7671 41.0288 +-380.939 26.8522 38.2977 +-381.333 24.9428 35.5744 +-381.101 22.9954 32.7969 +-380.042 21.0082 29.9628 +-381.244 19.1485 27.3104 +-381.52 17.2378 24.5853 +-380.87 15.2898 21.8069 +-381.088 13.3811 19.0846 +-380.877 11.4594 16.3438 +-381.037 9.55081 13.6217 +-380.568 7.6295 10.8815 +-146.95 2.20911 3.15072 +-145.678 1.45981 2.08204 +-147.194 0.737449 1.05178 +95.7 0 -1.7053e-13 +96.4963 0.489649 0.685124 +96.5853 0.980274 1.37161 +96.5669 1.47032 2.05729 +96.5412 1.96025 2.74281 +96.608 2.45257 3.43167 +96.5675 2.94268 4.11743 +96.4198 3.429 4.79791 +96.3647 3.91812 5.48229 +96.4019 4.41149 6.17262 +96.332 4.90047 6.85681 +97.1507 5.43924 7.61067 +96.1703 5.87728 8.22358 +96.9726 6.42426 8.98891 +96.8725 6.91605 9.67703 +96.765 7.40738 10.3645 +96.6502 7.89807 11.0511 +96.429 8.37957 11.7248 +96.2008 8.85945 12.3963 +97.0505 9.44323 13.2131 +95.7233 9.81414 13.7321 +95.5724 10.2995 14.4112 +96.3958 10.8949 15.2444 +96.2286 11.3837 15.9282 +95.9563 11.8594 16.5938 +95.7746 12.3458 17.2745 +95.6831 12.8444 17.9721 +95.6812 13.3566 18.6887 +96.1563 13.9401 19.5052 +96.1371 14.4565 20.2278 +96.5926 15.0491 21.057 +96.363 15.5387 21.7419 +96.03 16.011 22.4029 +95.882 16.5142 23.1069 +96.3955 17.1361 23.9771 +96.1347 17.6245 24.6605 +96.7224 18.2734 25.5683 +96.4445 18.7635 26.2541 +96.9157 19.4035 27.1497 +96.6208 19.8946 27.8368 +96.2245 20.3642 28.4939 +97.0392 21.096 29.5179 +96.7189 21.5876 30.2057 +97.1356 22.248 31.1297 +96.798 22.74 31.8182 +96.453 23.2304 32.5043 +97.0212 23.9461 33.5057 +96.7498 24.4606 34.2256 +96.4704 24.9743 34.9444 +96.0919 25.4628 35.6279 +96.5218 26.1706 36.6182 +96.0351 26.6343 37.2671 +96.5305 27.3755 38.3042 +96.0265 27.8383 38.9517 +96.4069 28.5621 39.9645 +96.8616 29.3186 41.023 +96.2413 29.7544 41.6328 +96.6699 30.5191 42.7027 +96.1207 30.9802 43.348 +96.4354 31.7244 44.3893 +96.6484 32.4452 45.3977 +96.244 32.9638 46.1234 +96.3456 33.6606 47.0983 +96.6041 34.4216 48.1631 +96.8471 35.1878 49.2352 +96.3153 35.6778 49.9209 +96.3632 36.3868 50.913 +95.8135 36.8744 51.5952 +96.7487 37.9444 53.0924 +96.1755 38.4339 53.7772 +96.2504 39.1872 54.8313 +95.74 39.7079 55.5599 +95.7876 40.4656 56.6201 +95.8197 41.2268 57.6851 +95.9161 42.0264 58.8039 +95.2024 42.4761 59.4331 +95.9009 43.566 60.9582 +95.9478 44.3768 62.0926 +95.8998 45.1546 63.181 +96.0673 46.0464 64.4287 +95.9088 46.7937 65.4744 +95.8872 47.6184 66.6284 +95.8481 48.4465 67.787 +95.6416 49.2007 68.8423 +95.5684 50.0343 70.0086 +95.5511 50.9101 71.2341 +95.3685 51.7102 72.3537 +95.8945 52.9126 74.0361 +95.6722 53.7203 75.1662 +95.5756 54.6112 76.4128 +95.318 55.4231 77.5487 +95.7442 56.6511 79.267 +95.5155 57.5112 80.4705 +95.2683 58.3734 81.6768 +95.6162 59.62 83.4211 +95.3258 60.4887 84.6366 +95.0165 61.3591 85.8546 +95.351 62.6662 87.6835 +94.8661 63.4547 88.7867 +94.9493 64.6409 90.4464 +95.1968 65.9666 92.3014 +94.6484 66.7614 93.4135 +94.6498 67.9621 95.0936 +94.7467 69.2588 96.9078 +94.935 70.6531 98.8588 +94.7233 71.7782 100.433 +94.2442 72.7202 101.751 +94.6958 74.411 104.117 +94.0456 75.2652 105.312 +94.0158 76.6386 107.234 +94.4107 78.3987 109.696 +94.1934 79.6895 111.503 +93.9444 80.9838 113.314 +93.8845 82.4758 115.401 +93.6235 83.8265 117.291 +93.9737 85.7697 120.01 +93.7427 87.2298 122.053 +93.893 89.0899 124.656 +93.4794 90.4603 126.573 +93.6408 92.4344 129.335 +93.7 94.366 132.038 +93.6097 96.2045 134.611 +93.5198 98.0995 137.262 +93.38 100.001 139.923 +93.1901 101.909 142.592 +93.3194 104.234 145.846 +93.4766 106.672 149.258 +93.4338 108.964 152.464 +92.9785 110.845 155.096 +92.8182 113.149 158.32 +93.0605 116.04 162.365 +91.8131 117.143 163.908 +91.3124 119.251 166.858 +91.2737 122.056 170.782 +91.7827 125.726 175.918 +92.418 129.732 181.523 +92.6777 133.377 186.623 +91.4421 134.978 188.863 +107.009 162.09 226.799 +103.521 160.993 225.264 +101.443 162.059 226.755 +98.206 161.252 225.626 +96.01 162.129 226.853 +92.526 160.79 224.98 +90.5111 161.972 226.634 +90.9034 167.639 234.562 +90.6352 172.374 241.189 +89.6352 175.95 246.192 +88.8379 180.143 252.059 +86.5585 181.484 253.934 +90.0173 195.339 273.321 +88.3341 198.603 277.888 +85.6162 199.664 279.373 +81.7993 198.112 277.201 +79.2728 199.653 279.357 +75.3426 197.607 276.494 +72.9146 199.46 279.087 +69.2205 197.828 276.804 +66.5733 199.142 278.643 +63.0717 197.872 276.865 +60.2733 198.757 278.103 +56.8424 197.507 276.354 +54.1576 198.821 278.194 +50.7725 197.536 276.395 +48.0565 198.822 278.195 +44.7052 197.444 276.267 +41.9718 198.76 278.108 +38.5683 196.828 275.405 +35.916 198.693 278.015 +32.693 197.421 276.234 +29.938 198.97 278.401 +26.6447 196.853 275.44 +23.8637 198.431 277.648 +20.7199 196.978 275.614 +17.8989 198.585 277.862 +14.7957 197.042 275.703 +11.9356 198.736 278.075 +8.86613 196.871 275.465 +5.94429 198.013 277.063 +2.9487 196.466 274.898 +2.39808e-14 198.101 277.186 +-2.94957 196.524 274.979 +-5.93207 197.606 276.493 +-8.85043 196.522 274.977 +-11.8658 197.574 276.448 +-14.7259 196.112 274.403 +-17.8047 197.54 276.4 +-20.6161 195.991 274.233 +-23.7381 197.387 276.186 +-26.527 195.984 274.223 +-29.7114 197.464 276.294 +-32.4246 195.801 273.967 +-35.7174 197.594 276.477 +-38.3985 195.962 274.192 +-41.6549 197.26 276.008 +-44.2875 195.599 273.686 +-47.5554 196.75 275.295 +-50.137 195.063 272.935 +-53.5944 196.754 275.301 +-56.2812 195.556 273.625 +-59.6655 196.753 275.299 +-62.1059 194.841 272.625 +-65.7337 196.631 275.129 +-68.3035 195.207 273.136 +-71.8959 196.673 275.187 +-74.4119 195.166 273.079 +-77.9455 196.31 274.68 +-80.7021 195.455 273.483 +-84.3098 196.618 275.11 +-86.8318 195.226 273.162 +-90.4314 196.237 274.578 +-93.0257 195.043 272.907 +-96.9417 196.576 275.052 +-99.4054 195.129 273.027 +-103.353 196.563 275.034 +-105.518 194.589 272.272 +-109.856 196.59 275.072 +-112.199 194.977 272.815 +-116.065 195.995 274.239 +-118.668 194.851 272.638 +-122.58 195.826 274.002 +-125.129 194.597 272.283 +-129.335 195.909 274.118 +-131.757 194.488 272.13 +-138.267 198.988 278.426 +-140.636 197.419 276.231 +-143.437 196.483 274.922 +-143.948 192.496 269.343 +-144.758 189.049 264.52 +-147.423 188.095 263.185 +-155.862 194.349 271.936 +-111.459 135.874 190.116 +-111.828 133.317 186.539 +-113.29 132.12 184.865 +-114.269 130.4 182.458 +-116.499 130.125 182.073 +-117.978 129.016 180.521 +-120.196 128.719 180.105 +-122.414 128.409 179.672 +-126.996 130.516 182.62 +-439.55 442.675 619.396 +-441 435.317 609.102 +-440.976 426.733 597.091 +-442.87 420.216 587.972 +-443.86 413.022 577.906 +-445.045 406.193 568.351 +-446.822 400.067 559.779 +-448.394 393.906 551.158 +-449.759 387.711 542.49 +-451.086 381.628 533.98 +-452.093 375.419 525.292 +-454.342 370.365 518.221 +-454.946 364.094 509.446 +-457.657 359.622 503.188 +-457.921 353.339 494.397 +-467.59 354.324 495.775 +-475.598 353.953 495.256 +-482.262 352.528 493.262 +-485.017 348.26 487.29 +-484.374 341.658 478.053 +-487.04 337.495 472.227 +-488.515 332.579 465.348 +-490.535 328.112 459.099 +-495.441 325.611 455.599 +-477.023 308.048 431.024 +-478.115 303.386 424.502 +-479.854 299.205 418.652 +-481.848 295.24 413.105 +-483.968 291.404 407.737 +-485.73 287.403 402.138 +-487.692 283.571 396.776 +-489.718 279.821 391.53 +-491.453 275.953 386.117 +-493.762 272.448 381.213 +-141.224 76.574 107.143 +-142.737 76.0507 106.411 +-143.278 75.0123 104.958 +-142.302 73.2039 102.428 +-142.414 71.9829 100.719 +-143.108 71.0688 99.4405 +-142.714 69.6297 97.4269 +-147.92 70.9002 99.2046 +-511.751 240.959 337.153 +-514.017 237.738 332.646 +-515.674 234.262 327.782 +-517.822 231.034 323.267 +-500.505 219.3 306.847 +-501.928 215.956 302.169 +-508.224 214.7 300.412 +-508.659 210.965 295.185 +-136.225 55.4625 77.6039 +-519.694 207.682 290.591 +-519.724 203.833 285.207 +-522.763 201.188 281.506 +-524.169 197.926 276.941 +-527.457 195.384 273.385 +-528.504 192.023 268.681 +-531.365 189.334 264.918 +-533.329 186.331 260.717 +-2823.13 966.929 1352.94 +-380.705 127.804 178.825 +-381.303 125.438 175.514 +-380.372 122.596 171.538 +-383.164 120.966 169.258 +-2892.98 894.405 1251.46 +-381.06 115.341 161.387 +-380.282 112.664 157.642 +-379.094 109.9 153.774 +-380.549 107.921 151.005 +-381.884 105.911 148.193 +-382.099 103.601 144.96 +-380.819 100.911 141.196 +-380.4 98.478 137.792 +-380.672 96.2429 134.664 +-380.353 93.8758 131.352 +-380.916 91.7419 128.367 +-381.073 89.5225 125.261 +-381.843 87.4577 122.372 +-382.208 85.3087 119.365 +-380.945 82.816 115.877 +-382.643 80.9797 113.308 +-380.356 78.3167 109.582 +-380.949 76.2699 106.718 +-380.752 74.0761 103.648 +-380.898 71.9614 100.689 +-382.536 70.131 98.1282 +-381.183 67.7621 94.8137 +-381.323 65.677 91.8962 +-381.717 63.6437 89.0511 +-380.923 61.4243 85.9457 +-381.348 59.4142 83.1331 +-381.063 57.3021 80.1779 +-381.811 55.3523 77.4497 +-380.877 53.1685 74.3941 +-381.174 51.1685 71.5957 +-380.853 49.094 68.693 +-381.771 47.1838 66.0202 +-381.583 45.1406 63.1613 +-380.773 43.0362 60.2169 +-382.191 41.1873 57.6298 +-381.318 39.095 54.7023 +-380.312 37.0051 51.7781 +-380.853 35.074 49.076 +-380.376 33.0542 46.2499 +-381.154 31.1472 43.5816 +-381.31 29.1892 40.842 +-380.939 27.1967 38.0539 +-381.631 25.2824 35.3756 +-380.902 23.2782 32.5711 +-381.137 21.339 29.8578 +-380.845 19.3738 27.1081 +-380.224 17.3996 24.3458 +-381.169 15.498 21.6851 +-381.587 13.5705 18.988 +-380.278 11.5881 16.2142 +-381.037 9.67331 13.535 +-379.269 7.70101 10.7754 +-145.95 2.22222 3.10936 +-145.678 1.47853 2.06879 +-146.594 0.74386 1.04082 +95.7 0 -1.7053e-13 +96.5963 0.496323 0.681383 +96.5853 0.992608 1.36271 +96.5669 1.48882 2.04394 +96.5412 1.98492 2.72501 +96.608 2.48343 3.4094 +96.5675 2.9797 4.09072 +96.4198 3.47215 4.76678 +96.4644 3.97152 5.45235 +96.4019 4.467 6.13257 +96.332 4.96213 6.81232 +96.2548 5.45689 7.49155 +96.2697 5.95741 8.17871 +96.9726 6.50509 8.93059 +96.0785 6.94572 9.53552 +96.8642 7.50824 10.3078 +96.6502 7.99745 10.9794 +96.5279 8.49372 11.6607 +96.2008 8.97092 12.3158 +96.0642 9.46484 12.9939 +95.9203 9.95805 13.671 +95.5724 10.4291 14.3177 +96.3958 11.032 15.1454 +96.2286 11.5269 15.8248 +96.0541 12.0209 16.503 +95.8723 12.514 17.1799 +96.5601 13.1252 18.0191 +96.3619 13.6209 18.6995 +96.1563 14.1155 19.3786 +96.1371 14.6384 20.0965 +95.7232 15.1014 20.7321 +96.363 15.7342 21.6009 +96.1262 16.2287 22.2797 +95.882 16.722 22.9569 +96.4911 17.3689 23.8451 +96.1347 17.8463 24.5005 +95.8665 18.3396 25.1777 +96.3497 18.9809 26.0581 +96.9157 19.6477 26.9735 +96.715 20.1646 27.6832 +96.3185 20.6406 28.3367 +97.0392 21.3615 29.3263 +97.5592 22.0492 30.2704 +97.1356 22.5279 30.9278 +96.8907 23.0482 31.642 +96.5454 23.5452 32.3243 +96.2848 24.0633 33.0356 +96.8415 24.7919 34.0358 +96.5618 25.3125 34.7505 +96.0919 25.7832 35.3968 +96.5218 26.4998 36.3806 +96.1253 26.9948 37.0601 +96.5305 27.72 38.0557 +96.8319 28.425 39.0236 +96.496 28.9482 39.7419 +95.9746 29.4157 40.3837 +96.3296 30.1564 41.4006 +96.582 30.8749 42.387 +96.9079 31.6269 43.4194 +96.4354 32.1236 44.1013 +96.6484 32.8534 45.1032 +96.1578 33.3487 45.7832 +96.4313 34.1144 46.8344 +96.6041 34.8547 47.8507 +96.0838 35.3497 48.5303 +96.1466 36.0635 49.5102 +96.3632 36.8447 50.5826 +96.564 37.6308 51.6619 +96.0026 38.1255 52.3411 +96.0931 38.8842 53.3826 +96.3323 39.7141 54.522 +96.3099 40.4469 55.528 +95.7067 40.9402 56.2052 +95.8197 41.7455 57.3108 +95.9161 42.5551 58.4223 +96.5511 43.6198 59.884 +95.3493 43.8605 60.2143 +95.9478 44.9351 61.6897 +95.2004 45.3893 62.3132 +95.9901 46.5883 63.9593 +95.8322 47.3446 64.9976 +95.8112 48.1794 66.1436 +95.8481 49.0561 67.3472 +95.6416 49.8198 68.3956 +95.6427 50.7032 69.6085 +95.5511 51.5507 70.7719 +95.4417 52.401 71.9394 +95.8945 53.5784 73.5557 +95.7441 54.4371 74.7346 +95.5042 55.2572 75.8604 +95.9544 56.4951 77.56 +95.7442 57.3639 78.7527 +95.5155 58.2348 79.9483 +95.2683 59.1078 81.1469 +95.0706 60.0257 82.407 +95.3258 61.2498 84.0875 +95.0165 62.1312 85.2975 +95.2848 63.4106 87.0539 +95.4566 64.6529 88.7595 +95.0142 65.4989 89.921 +94.6183 66.3909 91.1456 +94.7757 67.6921 92.9319 +94.7757 68.9085 94.6019 +94.7467 70.1302 96.2791 +94.6887 71.3566 97.9628 +94.7842 72.7279 99.8453 +94.2442 73.6352 101.091 +94.6958 75.3473 103.441 +93.9281 76.1168 104.498 +94.4804 77.9868 107.065 +94.468 79.4334 109.051 +94.1367 80.6439 110.713 +94.3358 82.3448 113.048 +94.3812 83.9551 115.259 +93.7324 84.9802 116.666 +93.9737 86.8489 119.232 +93.7957 88.3774 121.33 +93.893 90.2108 123.847 +93.4279 91.5479 125.683 +93.6408 93.5974 128.496 +93.65 95.5027 131.112 +93.1665 96.9534 133.104 +93.5683 99.3856 136.443 +93.8094 101.725 139.654 +93.2371 103.243 141.738 +93.3656 105.598 144.972 +93.4312 107.962 148.217 +93.4784 110.388 151.547 +92.9347 112.187 154.017 +93.2057 115.052 157.95 +93.0183 117.447 161.238 +92.4766 119.474 164.021 +91.231 120.644 165.627 +91.3933 123.754 169.897 +91.5874 127.037 174.404 +92.418 131.365 180.346 +92.4529 134.728 184.963 +92.2484 137.882 189.293 +105.181 161.327 221.479 +102.155 160.868 220.849 +100.075 161.885 222.245 +96.8374 161.005 221.038 +94.6101 161.775 222.095 +91.3203 160.692 220.608 +90.8201 164.571 225.933 +90.8733 169.691 232.963 +90.8399 174.938 240.165 +88.4708 175.849 241.417 +87.8732 180.429 247.704 +89.9792 191.029 262.256 +89.9396 197.626 271.313 +87.2074 198.537 272.564 +84.4065 199.32 273.639 +80.5853 197.628 271.316 +78.058 199.067 273.291 +74.3687 197.506 271.148 +71.7919 198.86 273.007 +68.3035 197.663 271.364 +65.7337 199.105 273.344 +62.1059 197.293 270.856 +59.4745 198.59 272.637 +56.0832 197.321 270.894 +53.3129 198.182 272.077 +50.0039 196.993 270.444 +47.4024 198.583 272.628 +44.157 197.477 271.109 +41.3137 198.105 271.971 +38.0702 196.731 270.084 +35.3829 198.207 272.111 +32.1658 196.682 270.017 +29.3802 197.719 271.441 +26.2995 196.748 270.107 +23.5498 198.285 272.218 +20.4513 196.87 270.275 +17.6215 197.968 271.782 +14.6081 196.991 270.442 +11.7193 197.588 271.262 +8.74572 196.641 269.961 +5.85179 197.385 270.982 +2.9103 196.347 269.558 +2.66454e-14 197.474 271.104 +-2.90594 196.053 269.153 +-5.85354 197.444 271.063 +-8.73787 196.464 269.718 +-11.7053 197.353 270.939 +-14.5383 196.051 269.15 +-17.5796 197.497 271.136 +-20.3475 195.871 268.904 +-23.4242 197.227 270.766 +-26.1818 195.867 268.898 +-29.3105 197.25 270.797 +-32.0317 195.861 268.89 +-35.1947 197.153 270.664 +-37.8099 195.385 268.237 +-41.009 196.645 269.966 +-43.7132 195.492 268.384 +-46.9709 196.776 270.146 +-49.5753 195.305 268.126 +-52.8905 196.612 269.921 +-55.39 194.881 267.545 +-58.8667 196.561 269.851 +-61.3223 194.804 267.438 +-64.6842 195.926 268.98 +-67.2867 194.721 267.325 +-70.8563 196.268 269.449 +-73.2432 194.517 267.045 +-76.8658 196.026 269.117 +-79.3714 194.651 267.229 +-83.1727 196.407 269.639 +-85.63 194.945 267.633 +-89.189 195.977 269.049 +-91.8231 194.944 267.631 +-95.4532 195.993 269.071 +-98.0421 194.874 267.535 +-101.775 195.996 269.075 +-104.435 195.016 267.73 +-108.125 195.928 268.982 +-110.771 194.918 267.596 +-114.535 195.844 268.867 +-117.166 194.805 267.44 +-121.007 195.744 268.73 +-123.518 194.509 267.033 +-127.722 195.9 268.944 +-130.291 194.743 267.356 +-136.357 198.707 272.797 +-139.105 197.727 271.451 +-143.516 199.064 273.287 +-144.108 195.134 267.892 +-143.822 190.191 261.105 +-144.935 187.247 257.065 +-117.192 147.969 203.141 +-111.373 137.477 188.737 +-112.135 135.365 185.838 +-113.87 134.468 184.605 +-114.996 132.881 182.427 +-116.915 132.233 181.537 +-118.729 131.471 180.491 +-121.246 131.477 180.499 +-123.433 131.106 179.991 +-129.064 134.31 184.389 +-439.95 448.652 615.938 +-441 440.795 605.15 +-441.697 432.809 594.187 +-443.183 425.804 584.57 +-444.337 418.668 574.773 +-445.851 412.049 565.686 +-447.312 405.545 556.757 +-448.89 399.304 548.188 +-450.262 393.028 539.574 +-451.936 387.158 531.514 +-453.125 381.011 523.075 +-454.516 375.169 515.055 +-456.239 369.724 507.579 +-458.37 364.715 500.703 +-460.088 359.478 493.513 +-471.486 361.771 496.662 +-479.354 361.237 495.929 +-487.304 360.696 495.186 +-484.073 351.956 483.187 +-485.519 346.775 476.074 +-487.104 341.786 469.225 +-488.645 336.853 462.452 +-489.617 331.619 455.267 +-498.688 331.869 455.61 +-477.224 312.055 428.408 +-479.331 307.985 422.82 +-481.082 303.745 417 +-483.087 299.724 411.48 +-484.385 295.325 405.44 +-487.202 291.901 400.739 +-488.116 287.388 394.544 +-490.574 283.837 389.669 +-492.1 279.793 384.117 +-142.173 79.4351 109.053 +-142.833 78.4207 107.661 +-142.368 76.8086 105.448 +-143.576 76.1139 104.494 +-142.751 74.3588 102.084 +-142.489 72.9275 100.119 +-142.5 71.6575 98.3758 +-146.851 72.5495 99.6004 +-147.843 71.7552 98.51 +-512.528 244.362 335.475 +-515.426 241.389 331.393 +-516.856 237.753 326.401 +-519.408 234.658 322.153 +-520.63 230.988 317.115 +-507.555 221.125 303.574 +-504.179 215.671 296.087 +-509.311 213.893 293.646 +-134.914 55.62 76.3585 +-135.981 55.0247 75.5413 +-520.055 206.53 283.537 +-523.263 203.915 279.947 +-525.008 200.738 275.585 +-528.3 198.159 272.045 +-530.03 195.001 267.709 +-532.133 191.993 263.579 +-534.187 188.979 259.442 +-536.967 186.227 255.664 +-382.004 129.853 178.271 +-382.521 127.422 174.932 +-382.559 124.852 171.405 +-382.813 122.376 168.005 +-382.051 119.603 164.198 +-381.858 117.038 160.676 +-379.034 113.708 156.105 +-380.258 111.624 153.245 +-380.549 109.279 150.025 +-381.342 107.092 147.023 +-379.562 104.208 143.063 +-380 101.961 139.978 +-380.674 99.7889 136.996 +-380.855 97.5004 133.855 +-383.206 95.77 131.479 +-381.562 93.054 127.75 +-381.351 90.7154 124.54 +-381.843 88.5581 121.578 +-382.301 86.4032 118.62 +-381.226 83.9198 115.21 +-382.079 81.8774 112.406 +-381.581 79.5576 109.222 +-380.949 77.2296 106.026 +-381.226 75.1012 103.104 +-380.898 72.8668 100.036 +-381.01 70.7302 97.1027 +-381.279 68.6324 94.2228 +-381.035 66.4533 91.2312 +-380.852 64.2984 88.2729 +-380.73 62.1659 85.3452 +-381.058 60.1158 82.5307 +-382.225 58.2 79.9005 +-381.811 56.0488 76.9472 +-380.391 53.7688 73.8171 +-380.589 51.7328 71.022 +-381.536 49.8009 68.3698 +-382.554 47.8755 65.7264 +-380.897 45.6264 62.6387 +-380.773 43.5777 59.8262 +-380.126 41.4802 56.9466 +-381.515 39.6074 54.3754 +-381.495 37.5873 51.6022 +-381.248 35.5521 48.8082 +-381.068 33.5311 46.0335 +-381.352 31.5555 43.3213 +-381.31 29.5565 40.577 +-380.046 27.4743 37.7184 +-381.134 25.5672 35.1003 +-379.112 23.4603 32.2078 +-380.241 21.5567 29.5944 +-379.949 19.5714 26.8689 +-381.52 17.6786 24.2703 +-380.87 15.6807 21.5275 +-381.088 13.7232 18.8401 +-380.278 11.7339 16.109 +-380.737 9.78731 13.4366 +-381.168 7.83695 10.759 +-3275.38 50.4981 69.3269 +-144.178 1.48172 2.0342 +-146.994 0.755275 1.03689 +96.6 3.55271e-15 -1.7053e-13 +96.6963 0.502971 0.677579 +96.6853 1.0059 1.35511 +96.6669 1.50876 2.03253 +96.6411 2.0115 2.7098 +96.7079 2.51669 3.39037 +96.5675 3.01649 4.06367 +96.5196 3.51865 4.74016 +96.4644 4.02055 5.4163 +96.5016 4.52682 6.09832 +96.332 5.02339 6.76728 +97.2502 5.58138 7.51898 +96.2697 6.03096 8.12463 +97.072 6.59219 8.88069 +96.0785 7.03147 9.47247 +96.8642 7.60092 10.2396 +96.6502 8.09617 10.9068 +96.5279 8.59857 11.5836 +96.2996 9.09102 12.247 +96.1628 9.59151 12.9212 +95.7233 10.0603 13.5528 +96.5556 10.6664 14.3693 +96.3958 11.1682 15.0453 +96.4246 11.693 15.7522 +96.0541 12.1693 16.3939 +96.0675 12.6942 17.1011 +95.878 13.1934 17.7736 +95.6812 13.6916 18.4447 +96.1563 14.2897 19.2505 +96.1371 14.8191 19.9637 +96.5926 15.4266 20.782 +96.5558 15.9603 21.501 +96.9913 16.5769 22.3316 +96.9367 17.1146 23.0561 +96.3955 17.5659 23.664 +96.23 18.0845 24.3626 +96.7224 18.7317 25.2345 +96.4445 19.2341 25.9113 +96.1592 19.735 26.5861 +95.9609 20.2543 27.2856 +96.3185 20.8954 28.1493 +97.1329 21.646 29.1605 +96.7189 22.1291 29.8113 +97.2286 22.8279 30.7527 +96.8907 23.3328 31.4328 +96.6378 23.8586 32.1413 +97.1133 24.57 33.0995 +96.8415 25.0979 33.8108 +96.4704 25.6007 34.4881 +96.0919 26.1015 35.1627 +96.5218 26.827 36.1401 +97.0279 27.5846 37.1607 +96.5305 28.0621 37.804 +96.116 28.5631 38.4789 +96.4069 29.2785 39.4426 +96.8616 30.054 40.4874 +96.3296 30.5287 41.1268 +96.582 31.2561 42.1068 +96.9079 32.0173 43.1323 +96.5224 32.5495 43.8493 +96.735 33.2888 44.8451 +96.244 33.7906 45.5212 +96.3456 34.5048 46.4834 +96.6041 35.2849 47.5343 +96.8471 36.0703 48.5923 +96.3153 36.5727 49.269 +96.3632 37.2995 50.2482 +96.564 38.0954 51.3204 +96.0026 38.5962 51.995 +96.1755 39.3979 53.0751 +96.3323 40.2043 54.1615 +96.3913 40.9807 55.2074 +96.5157 41.7959 56.3055 +95.8197 42.2609 56.9319 +95.996 43.1164 58.0844 +95.9958 43.9043 59.1458 +95.9797 44.6955 60.2117 +96.026 45.5269 61.3318 +95.9775 46.3248 62.4066 +96.0673 47.2013 63.5874 +95.9088 47.9674 64.6195 +95.9632 48.8515 65.8105 +95.8481 49.6616 66.9019 +95.7165 50.4742 67.9965 +95.6427 51.3291 69.1482 +95.5511 52.187 70.304 +95.4417 53.0479 71.4637 +95.8945 54.2398 73.0694 +95.7441 55.1091 74.2405 +95.5756 55.981 75.4151 +95.3887 56.8553 76.5929 +95.7442 58.072 78.232 +95.5155 58.9537 79.4197 +95.2683 59.8375 80.6103 +95.0706 60.7667 81.8622 +95.3258 62.0059 83.5315 +94.9496 62.8535 84.6733 +95.2848 64.1933 86.4783 +94.8005 65.0016 87.5672 +95.0142 66.3075 89.3264 +94.7469 67.3017 90.6658 +94.6484 68.4359 92.1938 +94.7757 69.7592 93.9763 +94.6845 70.9494 95.5798 +94.8119 72.3317 97.4419 +94.2363 73.2001 98.6118 +94.2442 74.5442 100.422 +94.1604 75.8465 102.177 +94.5746 77.5869 104.522 +93.9577 78.5126 105.769 +94.468 80.4139 108.33 +94.1367 81.6394 109.981 +93.8885 82.9656 111.767 +93.9949 84.644 114.029 +94.2226 86.4792 116.501 +94.1349 88.0718 118.646 +93.7427 89.4177 120.459 +93.8407 91.2738 122.96 +93.5309 92.7805 124.99 +93.5393 94.6497 127.508 +93.7 96.7329 130.314 +93.659 98.6694 132.923 +93.5683 100.612 135.541 +93.4277 102.562 138.166 +93.2371 104.517 140.801 +93.3194 106.849 143.942 +93.4766 109.348 147.309 +93.0769 111.27 149.898 +92.9785 113.625 153.071 +92.8182 115.987 156.253 +92.976 118.843 160.1 +92.9328 121.545 163.74 +91.0683 121.916 164.239 +91.3534 125.226 168.699 +92.7596 130.251 175.468 +92.7625 133.482 179.82 +92.4904 136.446 183.814 +92.7615 140.361 189.087 +94.7166 147.07 198.125 +101.28 161.458 217.509 +98.9122 161.979 218.21 +96.0362 161.644 217.76 +93.5357 161.912 218.121 +90.527 161.262 217.245 +91.2527 167.396 225.508 +90.8132 171.673 231.27 +90.4013 176.242 237.425 +88.9536 178.992 241.129 +86.2745 179.333 241.589 +90.1662 193.789 261.064 +89.3961 198.857 267.891 +86.2058 198.679 267.652 +83.4389 199.467 268.713 +79.955 198.503 267.414 +77.0457 198.911 267.964 +73.7626 198.315 267.161 +71.0226 199.157 268.296 +67.7452 198.468 267.367 +64.8369 198.813 267.832 +61.5956 198.087 266.854 +58.8494 198.928 267.987 +55.489 197.64 266.251 +52.7341 198.451 267.344 +49.6048 197.834 266.512 +46.7065 198.084 266.85 +43.661 197.669 266.291 +40.875 198.421 267.304 +37.7872 197.679 266.304 +34.9857 198.401 267.277 +31.9262 197.626 266.233 +29.0926 198.201 267.007 +26.017 197.037 265.44 +23.2429 198.116 266.893 +20.2925 197.754 266.405 +17.4279 198.209 267.018 +14.4555 197.339 265.847 +11.5936 197.884 266.58 +8.65933 197.102 265.527 +5.78896 197.676 266.3 +2.88237 196.864 265.206 +2.4869e-14 197.766 266.421 +-2.88237 196.864 265.206 +-5.78373 197.497 266.059 +-8.62792 196.387 264.564 +-11.5622 197.347 265.857 +-14.4206 196.863 265.204 +-17.3546 197.376 265.896 +-20.1338 196.207 264.321 +-23.1173 197.046 265.452 +-25.9778 196.74 265.039 +-28.9183 197.013 265.407 +-31.6866 196.143 264.235 +-34.7348 196.979 265.361 +-37.5269 196.317 264.469 +-40.6191 197.179 265.631 +-43.3347 196.192 264.301 +-46.3307 196.49 264.702 +-49.1023 195.829 263.812 +-52.2178 196.508 264.727 +-54.9609 195.759 263.717 +-58.1374 196.522 264.746 +-60.9031 195.861 263.855 +-64.0737 196.472 264.678 +-66.8082 195.723 263.669 +-70.0454 196.417 264.604 +-72.7237 195.521 263.398 +-75.921 196.007 264.052 +-78.6011 195.141 262.885 +-82.0599 196.171 264.272 +-84.7536 195.333 263.143 +-88.0502 195.863 263.858 +-90.8878 195.34 263.154 +-94.4334 196.292 264.436 +-97.1048 195.393 263.225 +-100.722 196.363 264.531 +-103.323 195.32 263.126 +-106.796 195.909 263.92 +-109.724 195.459 263.313 +-113.363 196.234 264.357 +-116.031 195.299 263.098 +-119.707 196.032 264.086 +-122.608 195.458 263.313 +-126.11 195.815 263.793 +-128.972 195.151 262.899 +-133.023 196.242 264.368 +-137.843 198.35 267.208 +-141.757 199.052 268.154 +-144.467 198.034 266.783 +-143.7 192.375 259.159 +-144.147 188.529 253.977 +-112.29 143.53 193.357 +-111.632 139.497 187.924 +-112.661 137.679 185.475 +-114.227 136.554 183.96 +-115.813 135.477 182.509 +-117.746 134.817 181.619 +-119.34 133.778 180.219 +-121.914 133.833 180.294 +-124.742 134.133 180.697 +-129.212 136.124 183.38 +-440.7 454.965 612.908 +-441.761 447.006 602.186 +-442.624 439.072 591.497 +-443.654 431.518 581.322 +-444.973 424.443 571.79 +-446.496 417.738 562.758 +-447.639 410.851 553.48 +-449.387 404.68 545.167 +-450.765 398.325 536.605 +-452.955 392.822 529.191 +-453.297 385.861 519.814 +-455.387 380.528 512.63 +-457.062 374.963 505.133 +-458.727 369.505 497.78 +-463.578 366.676 493.97 +-474.53 368.602 496.563 +-482.063 367.763 495.433 +-485.997 364.169 490.592 +-484.451 356.578 480.366 +-485.837 351.285 473.236 +-487.426 346.234 466.431 +-489.879 341.872 460.555 +-491.585 337.062 454.075 +-482.189 324.85 437.623 +-477.023 315.774 425.396 +-479.939 312.182 420.558 +-481.695 307.887 414.771 +-483.087 303.424 408.759 +-485.01 299.356 403.279 +-487.412 295.632 398.261 +-488.894 291.4 392.56 +-491.002 287.592 387.431 +-493.683 284.158 382.804 +-141.303 79.9234 107.669 +-142.614 79.2672 106.785 +-143.032 78.1198 105.239 +-143.576 77.0535 103.803 +-142.077 74.9214 100.931 +-142.187 73.6716 99.2469 +-143.184 72.8901 98.1943 +-147.617 73.8283 99.4581 +-511.587 251.361 338.623 +-513.227 247.715 333.711 +-516.13 244.702 329.652 +-517.802 241.128 324.837 +-519.884 237.772 320.316 +-522.148 234.521 315.937 +-515.513 227.365 306.296 +-2650.74 1147.9 1546.4 +-508.822 216.326 291.424 +-515.492 215.141 289.829 +-136.063 55.7378 75.0874 +-521.63 209.713 282.515 +-524.848 207.057 278.938 +-525.763 203.508 274.156 +-528.722 200.765 270.462 +-529.691 197.282 265.769 +-533.241 194.768 262.383 +-535.73 191.864 258.471 +-537.743 188.798 254.34 +-382.437 131.605 177.293 +-381.39 128.613 173.262 +-381.334 125.989 169.726 +-381.934 123.602 166.511 +-381.698 120.968 162.962 +-381.592 118.399 159.502 +-380.282 115.49 155.583 +-381.421 113.349 152.698 +-380.549 110.628 149.033 +-382.155 108.645 146.361 +-381.284 105.973 142.762 +-382.821 103.985 140.084 +-381.862 101.336 136.515 +-381.038 98.7517 133.034 +-381.917 96.6262 130.17 +-380.916 94.043 126.69 +-381.629 91.902 123.806 +-382.122 89.7169 120.863 +-381.368 87.2559 117.547 +-382.35 85.2067 114.787 +-381.327 82.7254 111.444 +-380.733 80.3609 108.259 +-382.179 78.4357 105.665 +-381.795 76.1421 102.575 +-381.849 73.9505 99.6227 +-381.868 71.7648 96.6783 +-382.139 69.6364 93.8109 +-381.898 67.4257 90.8328 +-381.14 65.141 87.755 +-381.212 63.0132 84.8885 +-381.348 60.9044 82.0476 +-381.257 58.7692 79.1711 +-381.811 56.7407 76.4384 +-379.516 54.3073 73.1603 +-380.784 52.3983 70.5886 +-380.658 50.2996 67.7613 +-381.38 48.3177 65.0915 +-382.171 46.3441 62.4326 +-380.577 44.0929 59.3999 +-381.11 42.1009 56.7164 +-380.924 40.0342 53.9322 +-380.312 37.9333 51.102 +-380.655 35.935 48.41 +-380.87 33.9273 45.7054 +-380.857 31.9036 42.979 +-381.31 29.9214 40.3087 +-381.237 27.9006 37.5864 +-381.333 25.8963 34.8863 +-380.604 23.8433 32.1206 +-380.54 21.8399 29.4217 +-381.244 19.8806 26.7822 +-381.121 17.8781 24.0846 +-381.169 15.8868 21.4019 +-381.287 13.8999 18.7253 +-380.877 11.8975 16.0277 +-381.037 9.91594 13.3583 +-380.168 7.91289 10.6599 +-147.549 2.30293 3.1024 +-144.778 1.50625 2.02916 +-147.194 0.765641 1.03144 +96.8 5.32907e-15 1.13687e-13 +95.7964 0.504325 0.66675 +96.6853 1.01809 1.34598 +96.7668 1.52861 2.02093 +96.741 2.03797 2.69433 +96.7079 2.54717 3.36753 +96.6673 3.05618 4.04046 +96.6194 3.56495 4.7131 +96.664 4.07766 5.39093 +96.5016 4.58165 6.05723 +96.4316 5.0895 6.72864 +96.3544 5.59695 7.39953 +96.2697 6.10401 8.06989 +97.072 6.67203 8.82086 +96.9718 7.18275 9.49606 +96.8642 7.69299 10.1706 +95.8579 8.12709 10.7445 +96.6268 8.71165 11.5174 +96.3984 9.21054 12.1769 +96.0642 9.69774 12.821 +95.9203 10.2031 13.4891 +96.7523 10.8176 14.3016 +96.5921 11.3265 14.9744 +96.4246 11.8346 15.6461 +96.2497 12.3418 16.3166 +96.0675 12.848 16.9859 +95.9755 13.3668 17.6718 +96.5563 13.9842 18.488 +96.4474 14.5065 19.1786 +96.2339 15.0138 19.8492 +96.7858 15.6447 20.6833 +96.5558 16.1536 21.3561 +96.3184 16.6613 22.0273 +96.9367 17.322 22.9007 +95.6305 17.6376 23.318 +96.23 18.3036 24.1985 +96.7224 18.9586 25.0645 +96.4445 19.4671 25.7367 +97.0102 20.1508 26.6407 +96.6208 20.6406 27.2882 +96.4125 21.1691 27.9869 +97.1329 21.9082 28.9641 +96.8123 22.4188 29.639 +96.4843 22.9275 30.3117 +96.9834 23.6379 31.2509 +96.6378 24.1476 31.9247 +97.2053 24.8912 32.9077 +97.1167 25.4741 33.6784 +96.5618 25.9353 34.2882 +97.0019 26.6678 35.2566 +96.5218 27.1519 35.8966 +97.0279 27.9187 36.9104 +96.8001 28.4814 37.6542 +96.2054 28.9361 38.2553 +96.4069 29.6331 39.1769 +96.7729 30.3902 40.1778 +96.3296 30.8985 40.8497 +96.6699 31.6635 41.8612 +96.2082 32.1712 42.5324 +96.5224 32.9438 43.5538 +95.9556 33.4205 44.1841 +96.9333 34.4449 45.5384 +96.4313 34.9539 46.2113 +96.6041 35.7123 47.214 +96.8471 36.5072 48.2649 +96.3153 37.0157 48.9371 +96.531 37.817 49.9966 +96.7308 38.6234 51.0626 +96.1684 39.1312 51.7339 +96.3404 39.9435 52.8078 +96.3323 40.6913 53.7966 +96.3913 41.4771 54.8354 +95.7876 41.983 55.5043 +95.9001 42.8086 56.5958 +95.996 43.6386 57.693 +95.9958 44.4361 58.7473 +95.9009 45.1997 59.7569 +96.026 46.0784 60.9186 +95.9775 46.8859 61.9862 +95.9901 47.7347 63.1083 +95.9088 48.5484 64.1841 +95.8872 49.4041 65.3154 +95.8481 50.2632 66.4511 +95.7165 51.0856 67.5384 +95.5684 51.9105 68.629 +95.6249 52.8599 69.8842 +95.4417 53.6905 70.9822 +95.8945 54.8968 72.5771 +95.6722 55.7348 73.685 +95.6469 56.7014 74.9629 +95.318 57.5014 76.0205 +95.7442 58.7754 77.7049 +95.585 59.7112 78.9421 +95.2683 60.5623 80.0672 +95.0706 61.5028 81.3106 +95.3258 62.7569 82.9687 +95.0165 63.66 84.1626 +95.351 65.0161 85.9555 +94.9317 65.8794 87.0968 +95.0792 67.1565 88.7852 +95.2611 68.4867 90.5438 +94.6484 69.2649 91.5726 +94.7757 70.6041 93.3432 +94.7467 71.8559 94.9981 +94.8119 73.2078 96.7854 +94.9059 74.6134 98.6437 +94.7257 75.8326 100.256 +94.2199 76.8135 101.552 +94.6334 78.5756 103.882 +94.3642 79.8074 105.511 +94.4107 81.3385 107.535 +94.25 82.7278 109.371 +93.9444 84.0206 111.081 +93.8845 85.5685 113.127 +94.2226 87.5267 115.716 +93.9737 88.986 117.645 +93.7427 90.5008 119.648 +93.9452 92.4825 122.268 +93.9944 94.3695 124.763 +93.6408 95.9005 126.787 +93.65 97.8527 129.368 +93.659 99.8646 132.027 +93.5683 101.831 134.627 +93.4277 103.804 137.235 +93.1901 105.73 139.782 +93.3194 108.143 142.972 +93.4766 110.673 146.316 +93.0769 112.618 148.888 +92.9347 114.947 151.968 +93.1626 117.828 155.776 +92.976 120.282 159.021 +92.8913 122.963 162.565 +91.5564 124.053 164.007 +91.4332 126.854 167.71 +92.6033 131.607 173.993 +92.7625 135.098 178.609 +92.4529 138.043 182.502 +92.4316 141.555 187.145 +92.889 145.979 192.993 +100.65 162.397 214.699 +98.2966 162.921 215.392 +95.402 162.522 214.864 +92.9823 162.904 215.369 +90.5587 163.273 215.857 +91.1291 169.194 223.685 +91.0838 174.27 230.396 +90.0212 177.627 234.834 +88.6696 180.582 238.741 +86.0815 181.099 239.425 +90.193 196.195 259.382 +89.0338 200.449 265.007 +85.7802 200.093 264.536 +82.8341 200.42 264.968 +79.5582 199.91 264.294 +76.6408 200.262 264.76 +73.4163 199.775 264.115 +70.3365 199.622 263.914 +67.2468 199.394 263.612 +64.3408 199.681 263.992 +61.2676 199.419 263.645 +58.3805 199.734 264.061 +55.2084 199.023 263.121 +52.4525 199.782 264.125 +49.324 199.096 263.218 +46.4977 199.587 263.867 +43.4913 199.286 263.469 +40.5703 199.328 263.524 +37.6061 199.114 263.242 +34.7453 199.424 263.652 +31.7729 199.059 263.169 +28.866 199.039 263.142 +25.9543 198.942 263.015 +23.0615 198.952 263.027 +20.1277 198.523 262.46 +17.3023 199.164 263.307 +14.3813 198.705 262.7 +11.5064 198.773 262.791 +8.61222 198.404 262.303 +5.75929 199.045 263.15 +2.87103 198.464 262.382 +2.13163e-14 198.713 262.712 +-2.8719 198.524 262.462 +-5.74184 198.442 262.353 +-8.61222 198.404 262.303 +-11.5029 198.713 262.711 +-14.3551 198.343 262.223 +-17.2342 198.381 262.272 +-20.1155 198.403 262.301 +-23.0196 198.59 262.549 +-25.813 197.86 261.584 +-28.805 198.618 262.586 +-31.562 197.738 261.423 +-34.578 198.465 262.383 +-37.3457 197.735 261.419 +-40.3144 198.07 261.861 +-43.165 197.791 261.492 +-46.0245 197.556 261.182 +-48.8806 197.306 260.852 +-51.858 197.518 261.132 +-54.6968 197.178 260.682 +-57.7033 197.417 260.999 +-60.5933 197.224 260.743 +-63.6348 197.49 261.095 +-66.5091 197.207 260.72 +-69.5049 197.262 260.794 +-72.5073 197.301 260.845 +-75.5611 197.441 261.03 +-78.2275 196.566 259.873 +-81.5035 197.201 260.712 +-84.328 196.706 260.057 +-87.6361 197.303 260.847 +-90.4869 196.834 260.227 +-93.7718 197.278 260.814 +-96.9344 197.413 260.993 +-100.02 197.357 260.919 +-103.202 197.456 261.05 +-106.271 197.306 260.852 +-109.438 197.312 260.859 +-112.614 197.299 260.841 +-115.731 197.153 260.649 +-119.126 197.443 261.033 +-122.117 197.035 260.493 +-125.465 197.173 260.676 +-128.532 196.841 260.237 +-131.974 197.052 260.516 +-137.115 199.694 264.008 +-140.624 199.853 264.219 +-144.267 200.156 264.619 +-144.107 195.256 258.141 +-143.94 190.538 251.903 +-111.909 144.776 191.403 +-111.675 141.241 186.73 +-112.749 139.455 184.369 +-114.227 138.208 182.72 +-115.858 137.172 181.35 +-117.792 136.503 180.466 +-119.715 135.825 179.569 +-122.2 135.772 179.5 +-125.663 136.759 180.804 +-439.882 469.027 620.083 +-440.7 460.476 608.779 +-441.761 452.421 598.129 +-442.572 444.338 587.444 +-444.124 437.208 578.017 +-445.291 429.891 568.343 +-446.496 422.798 558.967 +-448.347 416.486 550.621 +-449.387 409.582 541.494 +-451.492 403.8 533.849 +-452.955 397.58 525.626 +-453.814 390.979 516.9 +-1902.67 1609.16 2127.41 +-457.591 379.944 502.31 +-459.441 374.562 495.196 +-465.323 372.515 492.489 +-477.208 375.172 496.002 +-482.74 372.741 492.787 +-488.736 370.657 490.033 +-484.325 360.804 477.006 +-486.663 356.145 470.847 +-487.747 350.659 463.594 +-489.684 345.876 457.27 +-491.126 340.826 450.594 +-478.213 326.074 431.09 +-478.094 320.316 423.479 +-479.939 315.964 417.724 +-481.695 311.616 411.976 +-483.431 307.318 406.294 +-485.636 303.372 401.078 +-487.412 299.212 395.578 +-490.025 295.612 390.817 +-491.929 291.625 385.547 +-493.611 287.558 380.17 +-141.521 81.0164 107.109 +-143.272 80.5971 106.555 +-143.253 79.1879 104.691 +-143.055 77.7045 102.73 +-142.751 76.1885 100.726 +-142.867 74.9198 99.0488 +-143.793 74.0867 97.9474 +-148.459 75.1491 99.3519 +-513.053 255.135 337.305 +-514.548 251.361 332.316 +-516.365 247.779 327.58 +-518.511 244.383 323.09 +-520.598 240.983 318.595 +-522.627 237.58 314.096 +-523.07 233.492 308.691 +-2650.74 1161.8 1535.98 +-2667.45 1147.8 1517.47 +-512.216 216.363 286.045 +-133.344 55.2853 73.0907 +-134.884 54.8848 72.5613 +-524.681 209.499 276.971 +-527.021 206.466 272.961 +-529.228 203.392 268.897 +-530.878 200.118 264.569 +-533.753 197.316 260.865 +-535.73 194.188 256.729 +-538.863 191.483 253.152 +-2837.53 988.288 1306.58 +-382.173 130.438 172.448 +-381.859 127.69 168.815 +-381.495 124.956 165.2 +-380.815 122.15 161.49 +-381.681 119.861 158.464 +-379.48 116.643 154.21 +-381.153 114.641 151.562 +-382.527 112.55 148.799 +-381.072 109.649 144.964 +-381.012 107.18 141.699 +-382.548 105.17 139.042 +-381.588 102.49 135.498 +-382.139 100.237 132.519 +-381.457 97.6789 129.138 +-382.024 95.4596 126.204 +-381.351 92.9476 122.883 +-381.006 90.5382 119.697 +-379.874 87.9671 116.298 +-381.788 86.1121 113.846 +-381.233 83.7069 110.666 +-381.581 81.5152 107.768 +-381.517 79.2482 104.771 +-381.226 76.9492 101.732 +-381.183 74.7159 98.7793 +-381.868 72.6341 96.0269 +-380.322 70.1444 92.7355 +-381.514 68.1742 90.1307 +-380.948 65.8969 87.1199 +-382.561 64.0021 84.6148 +-381.83 61.7199 81.5977 +-381.257 59.481 78.6377 +-381.811 57.4279 75.9234 +-380.877 55.1622 72.928 +-381.076 53.0737 70.1668 +-381.536 51.0263 67.4601 +-381.478 48.9155 64.6695 +-380.309 46.6769 61.7099 +-380.577 44.627 58.9997 +-382.584 42.7757 56.5522 +-380.037 40.4248 53.4442 +-381.495 38.5122 50.9157 +-381.149 36.4175 48.1463 +-381.365 34.3829 45.4564 +-381.352 32.332 42.745 +-380.814 30.2444 39.9851 +-380.344 28.1723 37.2456 +-380.737 26.169 34.5971 +-380.604 24.1321 31.9042 +-381.834 22.1796 29.3229 +-381.244 20.1214 26.6017 +-380.623 18.071 23.891 +-381.668 16.1002 21.2855 +-381.387 14.072 18.604 +-380.877 12.0416 15.9197 +-380.837 10.0308 13.2614 +-380.868 8.02345 10.6075 +-148.049 2.33872 3.09193 +-145.378 1.53082 2.02384 +-146.794 0.77281 1.0217 +96.7 5.32907e-15 -1.7053e-13 +95.8963 0.510851 0.662866 +96.6853 1.03019 1.33674 +96.6669 1.54518 2.00498 +96.741 2.06219 2.67583 +96.7079 2.57744 3.34441 +96.6673 3.0925 4.01273 +96.6194 3.60732 4.68075 +96.664 4.12612 5.35393 +96.5016 4.6361 6.01566 +96.4316 5.14998 6.68246 +97.2502 5.71612 7.41707 +97.1648 6.23393 8.08896 +97.1713 6.75822 8.76927 +96.9718 7.26811 9.43089 +96.9633 7.79241 10.1112 +96.7492 8.3001 10.77 +96.5279 8.80615 11.4266 +96.3984 9.32 12.0934 +96.2615 9.83313 12.7592 +96.0188 10.335 13.4103 +96.7523 10.9462 14.2034 +95.6105 11.3447 14.7205 +96.4246 11.9752 15.5387 +96.2497 12.4884 16.2046 +96.1652 13.0139 16.8864 +95.9755 13.5257 17.5505 +96.5563 14.1504 18.3611 +96.4474 14.6789 19.047 +96.2339 15.1922 19.7129 +96.7858 15.8306 20.5414 +96.6521 16.3619 21.2307 +96.3184 16.8593 21.8762 +96.9367 17.5278 22.7436 +96.4911 18.0078 23.3664 +96.23 18.5211 24.0324 +96.8176 19.2028 24.9169 +96.5393 19.7178 25.5852 +97.0102 20.3903 26.4578 +96.715 20.9063 27.1274 +96.4125 21.4207 27.7948 +97.1329 22.1686 28.7653 +96.8123 22.6852 29.4356 +97.2286 23.379 30.3359 +96.9834 23.9189 31.0364 +97.4693 24.6448 31.9784 +97.2053 25.187 32.6819 +96.8415 25.7038 33.3525 +96.5618 26.2435 34.0529 +97.0019 26.9847 35.0146 +96.6124 27.5004 35.6837 +96.1253 27.9877 36.316 +96.6204 28.7663 37.3263 +96.9214 29.4978 38.2755 +96.5851 30.0407 38.9799 +96.8616 30.7795 39.9386 +96.3296 31.2657 40.5694 +96.6699 32.0398 41.5739 +96.2082 32.5535 42.2405 +96.6095 33.3653 43.2939 +96.735 34.0924 44.2372 +96.244 34.6063 44.9042 +96.4313 35.3693 45.8941 +96.6041 36.1367 46.89 +96.8471 36.9411 47.9337 +97.0744 37.7508 48.9843 +96.531 38.2665 49.6534 +96.7308 39.0824 50.7122 +96.1684 39.5962 51.3789 +96.1755 40.349 52.3557 +96.3323 41.1749 53.4273 +96.3913 41.97 54.4591 +95.7876 42.4819 55.1233 +95.9001 43.3174 56.2074 +95.9161 44.1205 57.2494 +96.0751 45.0013 58.3924 +95.9797 45.7745 59.3956 +96.026 46.626 60.5005 +95.9775 47.4431 61.5607 +96.0673 48.3408 62.7256 +95.2959 48.8115 63.3363 +95.9632 50.0308 64.9185 +95.8481 50.8605 65.9951 +95.7914 51.7332 67.1274 +95.6427 52.5682 68.211 +95.5511 53.4469 69.3511 +96.0999 54.7032 70.9812 +95.8945 55.5492 72.079 +95.8161 56.4819 73.2893 +95.5042 57.2897 74.3374 +95.4594 58.271 75.6108 +95.1835 59.1256 76.7197 +95.585 60.4208 78.4003 +95.2683 61.282 79.5177 +95.6844 62.6353 81.2738 +95.3933 63.5479 82.4579 +95.6188 64.8243 84.1141 +95.2848 65.743 85.3062 +94.9317 66.6623 86.4991 +95.0792 67.9546 88.1759 +94.7469 68.9264 89.4369 +94.8393 70.229 91.1271 +94.7757 71.4432 92.7026 +94.7467 72.7098 94.3461 +94.935 74.1736 96.2455 +94.9059 75.5001 97.9667 +94.2442 76.3437 99.0613 +94.2199 77.7263 100.855 +94.6334 79.5094 103.169 +94.4804 80.8554 104.916 +94.3533 82.2557 106.733 +94.25 83.7109 108.621 +94.0562 85.1204 110.45 +93.9949 86.6874 112.483 +94.277 88.6182 114.988 +94.0812 90.1467 116.972 +93.7957 91.6282 118.894 +93.475 93.1127 120.82 +93.4794 94.9678 123.227 +93.5393 96.9346 125.78 +93.65 99.0156 128.48 +93.659 101.051 131.121 +93.5683 103.041 133.703 +93.4277 105.037 136.293 +93.1901 106.987 138.823 +93.735 109.915 142.623 +93.4766 111.988 145.312 +93.5231 114.503 148.575 +92.9347 116.313 150.925 +93.1626 119.228 154.707 +93.0183 121.767 158.001 +92.8498 124.368 161.377 +91.5971 125.583 162.953 +91.3933 128.306 166.486 +92.6033 133.171 172.799 +92.418 136.197 176.725 +92.4529 139.683 181.249 +92.4316 143.237 185.861 +91.8855 146.118 189.598 +100.404 163.927 212.706 +98.0572 164.455 213.392 +95.135 163.993 212.793 +92.6893 164.32 213.217 +90.5905 165.271 214.45 +91.2218 171.379 222.376 +90.9635 176.108 228.512 +89.8751 179.446 232.844 +88.4708 182.318 236.57 +86.3847 183.897 238.619 +90.193 198.526 257.602 +88.7749 202.242 262.424 +85.6049 202.058 262.184 +82.447 201.854 261.92 +79.138 201.217 261.093 +76.3034 201.75 261.785 +73.0267 201.076 260.91 +70.1286 201.398 261.328 +66.8879 200.687 260.406 +64.1691 201.515 261.48 +60.9578 200.769 260.512 +58.2416 201.627 261.625 +55.0764 200.906 260.69 +52.1709 201.071 260.904 +49.191 200.918 260.706 +46.3446 201.294 261.193 +43.0997 199.839 259.305 +40.3631 200.666 260.379 +37.425 200.51 260.176 +34.6616 201.309 261.212 +31.6099 200.392 260.023 +28.7963 200.918 260.705 +25.813 200.212 259.789 +23.0475 201.194 261.063 +20.0789 200.395 260.027 +17.2552 200.982 260.788 +14.3421 200.517 260.185 +11.475 200.586 260.275 +8.59651 200.395 260.027 +5.73661 200.617 260.315 +2.85445 199.663 259.077 +2.39808e-14 200.281 259.879 +-2.8562 199.786 259.236 +-5.72439 200.19 259.76 +-8.5651 199.663 259.077 +-11.4889 200.83 260.591 +-14.3115 200.091 259.632 +-17.1871 200.19 259.76 +-19.9995 199.603 258.999 +-22.929 200.158 259.72 +-25.7424 199.664 259.078 +-28.6917 200.188 259.758 +-31.4757 199.541 258.919 +-34.4317 199.974 259.48 +-37.1986 199.297 258.602 +-40.2169 199.939 259.435 +-42.9953 199.355 258.677 +-45.9271 199.48 258.84 +-48.6441 198.685 257.808 +-51.7016 199.262 258.557 +-54.5812 199.1 258.346 +-57.5991 199.403 258.739 +-60.2653 198.488 257.552 +-63.4631 199.298 258.603 +-66.1503 198.474 257.534 +-69.3385 199.129 258.384 +-72.1393 198.632 257.74 +-75.2011 198.836 258.003 +-78.0641 198.487 257.551 +-81.3099 199.07 258.307 +-84.1778 198.689 257.812 +-87.1703 198.587 257.68 +-90.2731 198.703 257.831 +-93.6064 199.27 258.567 +-96.4232 198.706 257.835 +-99.4941 198.652 257.765 +-102.661 198.754 257.898 +-106.055 199.245 258.535 +-108.867 198.615 257.717 +-112.288 199.066 258.302 +-115.197 198.576 257.666 +-118.544 198.814 257.976 +-121.417 198.233 257.221 +-124.927 198.661 257.777 +-127.909 198.215 257.199 +-131.674 198.941 258.14 +-136.618 201.334 261.245 +-140.312 201.779 261.822 +-143.709 201.751 261.786 +-143.741 197.075 255.718 +-143.525 192.247 249.454 +-111.275 145.667 189.013 +-111.718 142.975 185.52 +-112.793 141.167 183.175 +-114.673 140.397 182.175 +-116.267 139.292 180.741 +-118.069 138.45 179.649 +-120.138 137.924 178.966 +-122.534 137.761 178.755 +-125.954 138.705 179.979 +-439.783 474.494 615.69 +-440.9 466.159 604.875 +-442.218 458.27 594.638 +-442.778 449.828 583.684 +-444.124 442.403 574.05 +-445.45 435.155 564.644 +-446.872 428.184 555.598 +-448.565 421.64 547.107 +-449.884 414.907 538.372 +-451.492 408.599 530.186 +-453.125 402.455 522.214 +-454.502 396.226 514.131 +-456.084 390.311 506.456 +-457.767 384.607 499.055 +-459.501 379.062 491.86 +-466.948 378.258 490.816 +-478.121 380.357 493.54 +-486.742 380.297 493.462 +-484.379 371.718 482.33 +-484.828 365.471 474.224 +-487.172 360.755 468.104 +-488.904 355.667 461.503 +-490.333 350.451 454.734 +-491.716 345.291 448.04 +-477.086 329.172 427.123 +-478.428 324.35 420.867 +-479.939 319.719 414.857 +-482.309 315.721 409.67 +-483.707 311.148 403.736 +-485.636 306.978 398.325 +-488.113 303.204 393.429 +-490.237 299.254 388.303 +-492.357 295.348 383.235 +-494.546 291.527 378.276 +-141.883 82.1891 106.646 +-142.98 81.3889 105.608 +-143.327 80.1705 104.027 +-142.684 78.4234 101.76 +-142.826 77.1348 100.088 +-142.867 75.8102 98.3691 +-145.998 76.1166 98.7667 +-148.689 76.16 98.8229 +-512.436 257.857 334.587 +-514.315 254.233 329.885 +-516.834 250.952 325.628 +-518.511 247.287 320.872 +-521.312 244.181 316.842 +-522.627 240.403 311.94 +-524.838 237.066 307.609 +-508.548 225.542 292.656 +-2667.45 1161.44 1507.05 +-511.806 218.759 283.856 +-134.745 56.5301 73.3518 +-136.045 56.015 72.6834 +-525.348 212.258 275.419 +-527.021 208.919 271.088 +-529.565 205.94 267.221 +-531.641 202.788 263.131 +-534.179 199.82 259.281 +-536.072 196.622 255.13 +-538.863 193.758 251.415 +-2837.53 1000.03 1297.61 +-381.651 131.808 171.031 +-382.821 129.533 168.079 +-381.758 126.528 164.179 +-382.493 124.146 161.088 +-381.237 121.145 157.195 +-382.42 118.944 154.338 +-381.69 116.166 150.734 +-382.796 113.968 147.881 +-381.884 111.189 144.275 +-381.284 108.532 140.827 +-380.546 105.863 137.365 +-381.588 103.708 134.568 +-381.222 101.184 131.294 +-380.997 98.7207 128.097 +-379.992 96.08 124.671 +-380.794 93.9148 121.861 +-381.843 91.8156 119.137 +-382.208 89.5594 116.21 +-381.788 87.1354 113.064 +-382.643 85.0148 110.313 +-382.524 82.6879 107.293 +-382.368 80.3688 104.284 +-381.226 77.8637 101.034 +-381.469 75.6606 98.175 +-382.059 73.5339 95.4154 +-382.426 71.3705 92.6083 +-380.843 68.8629 89.3545 +-380.371 66.5793 86.3913 +-381.79 64.632 83.8646 +-380.092 62.169 80.6686 +-381.934 60.2949 78.2369 +-381.811 58.1104 75.4024 +-382.044 55.9888 72.6494 +-381.758 53.8005 69.8099 +-380.658 51.5138 66.8428 +-381.086 49.4461 64.1598 +-381.485 47.3776 61.4758 +-381.558 45.2739 58.746 +-382.29 43.2507 56.1209 +-381.81 41.096 53.325 +-381.89 39.0102 50.6185 +-381.742 36.9076 47.8902 +-381.068 34.7644 45.1093 +-381.847 32.7586 42.5066 +-380.913 30.6118 39.721 +-381.535 28.5964 37.1059 +-381.631 26.5422 34.4404 +-381.499 24.4764 31.7598 +-381.834 22.4432 29.1216 +-380.845 20.3392 26.3915 +-380.922 18.3001 23.7457 +-380.471 16.2405 21.0732 +-380.788 14.2168 18.4474 +-380.877 12.1847 15.8105 +-381.636 10.1713 13.198 +-381.168 8.12521 10.543 +-145.45 2.32496 3.01681 +-146.978 1.56605 2.03206 +-146.794 0.781994 1.01469 +96.6 3.55271e-15 -1.7053e-13 +96.5963 0.520582 0.663034 +96.5853 1.04112 1.32602 +96.5669 1.56159 1.9889 +97.4406 2.10133 2.67634 +96.608 2.60481 3.31759 +97.3664 3.1512 4.01349 +96.5196 3.64563 4.64321 +96.4644 4.16564 5.30552 +96.4019 4.68533 5.96742 +97.2286 5.25311 6.69057 +97.1507 5.77688 7.35766 +97.0653 6.30022 8.02421 +96.9726 6.82304 8.69009 +96.8725 7.34536 9.35534 +96.8642 7.87522 10.0302 +96.6502 8.38834 10.6837 +96.429 8.89973 11.335 +96.2996 9.41909 11.9965 +96.0642 9.92746 12.644 +96.7081 10.5306 13.4122 +96.5556 11.0513 14.0754 +96.3958 11.5712 14.7376 +96.2286 12.0903 15.3987 +96.0541 12.6084 16.0586 +95.8723 13.1256 16.7173 +96.7549 13.7945 17.5693 +95.4867 14.1569 18.0307 +96.3504 14.8352 18.8947 +97.0084 15.4931 19.7326 +96.5926 15.9833 20.357 +96.5558 16.5363 21.0612 +96.1262 17.0219 21.6798 +96.7449 17.6971 22.5398 +96.3955 18.1998 23.18 +96.1347 18.7186 23.8407 +95.8665 19.2359 24.4996 +96.4445 19.9282 25.3813 +96.1592 20.4472 26.0423 +96.5265 21.1089 26.8851 +96.2245 21.6283 27.5467 +97.0392 22.4056 28.5366 +96.7189 22.9276 29.2015 +97.2286 23.6517 30.1237 +96.798 24.1516 30.7604 +96.5454 24.696 31.4538 +97.0212 25.4325 32.3919 +96.8415 26.0037 33.1193 +96.4704 26.5246 33.7827 +97.0019 27.2995 34.7697 +96.6124 27.8212 35.4342 +96.9377 28.5535 36.3669 +96.5305 29.0748 37.0308 +96.8319 29.8144 37.9727 +96.4069 30.3351 38.6359 +96.7729 31.1101 39.623 +96.2413 31.6014 40.2488 +96.6699 32.4136 41.2832 +96.1207 32.9033 41.907 +96.4354 33.6937 42.9136 +96.6484 34.4592 43.8886 +96.244 35.01 44.5901 +96.3456 35.75 45.5326 +96.6041 36.5583 46.5621 +96.8471 37.372 47.5985 +96.3153 37.8925 48.2614 +96.3632 38.6455 49.2205 +96.564 39.4701 50.2707 +96.0026 39.989 50.9316 +96.1755 40.8197 51.9895 +96.3323 41.6552 53.0537 +96.3099 42.4238 54.0326 +95.7876 42.9775 54.7378 +95.9001 43.8227 55.8143 +95.996 44.6723 56.8964 +95.9958 45.4886 57.9361 +95.9009 46.2704 58.9318 +95.8695 47.093 59.9794 +95.9775 47.9965 61.1302 +95.9129 48.8261 62.1869 +95.9088 49.6984 63.2978 +95.9632 50.6144 64.4645 +95.8481 51.4538 65.5336 +95.7165 52.2957 66.6058 +95.6427 53.1814 67.734 +95.4774 54.0286 68.8129 +96.0267 55.2992 70.4312 +95.2417 55.8146 71.0877 +95.6722 57.055 72.6675 +95.5756 58.0012 73.8726 +95.3887 58.9071 75.0264 +95.1134 59.7713 76.1271 +95.5155 61.0812 77.7954 +95.2683 61.9969 78.9616 +95.6162 63.3209 80.648 +95.3258 64.2435 81.823 +95.0165 65.168 83.0005 +95.2848 66.5099 84.7096 +94.8005 67.3473 85.7762 +95.0142 68.7004 87.4995 +95.1968 70.0614 89.233 +94.7757 71.0007 90.4293 +94.6498 72.1809 91.9324 +94.8712 73.6543 93.809 +94.8119 74.9419 95.4489 +94.6624 76.1844 97.0315 +94.2442 77.2343 98.3686 +94.2199 78.633 100.15 +94.1044 79.9873 101.875 +94.3642 81.6979 104.054 +94.296 83.1646 105.922 +94.25 84.6874 107.861 +94.0562 86.1134 109.677 +93.8845 87.5955 111.565 +93.7868 89.1857 113.59 +94.0274 91.1464 116.088 +93.8487 92.7489 118.129 +93.893 94.6201 120.512 +93.4794 96.0757 122.366 +93.5393 98.0654 124.9 +93.6 100.117 127.513 +93.659 102.23 130.204 +93.5683 104.243 132.768 +93.4754 106.317 135.41 +93.1901 108.235 137.852 +93.3194 110.705 140.998 +93.4766 113.294 144.296 +93.4338 115.728 147.396 +93.0224 117.781 150.011 +93.1626 120.619 153.625 +92.976 123.132 156.825 +92.7669 125.707 160.105 +91.8411 127.387 162.245 +92.4699 131.331 167.269 +92.6033 134.724 171.59 +92.7625 138.299 176.143 +92.4154 141.255 179.908 +92.395 144.851 184.488 +91.3122 146.9 187.097 +99.4589 164.277 209.23 +97.4415 165.329 210.569 +94.5007 164.8 209.896 +91.9079 164.836 209.941 +91.0664 168.077 214.07 +91.1291 173.202 220.597 +91.0537 178.339 227.139 +89.2318 180.24 229.561 +87.6471 182.728 232.729 +86.9636 187.289 238.538 +89.8723 200.128 254.891 +88.3867 203.707 259.449 +84.7787 202.442 257.837 +82.0115 203.13 258.714 +78.5077 201.943 257.203 +75.921 203.081 258.651 +72.7021 202.517 257.934 +69.7752 202.72 258.192 +66.569 202.06 257.351 +63.8256 202.774 258.261 +60.648 202.078 257.375 +57.7901 202.398 257.782 +54.6473 201.666 256.849 +51.9206 202.441 257.837 +48.8214 201.736 256.938 +46.0802 202.48 257.887 +42.904 201.251 256.322 +40.2534 202.456 257.855 +37.142 201.315 256.403 +34.4108 202.183 257.509 +31.3895 201.316 256.404 +28.6568 202.277 257.628 +25.609 200.946 255.933 +22.9011 202.247 257.59 +19.9262 201.192 256.245 +17.1296 201.846 257.079 +14.2374 201.376 256.48 +11.4226 202.001 257.276 +8.54939 201.622 256.794 +5.70345 201.784 257 +2.83874 200.881 255.85 +2.57572e-14 201.444 256.567 +-2.84049 201.004 256.007 +-5.69297 201.413 256.528 +-8.51798 200.881 255.85 +-11.3877 201.383 256.489 +-14.1937 200.759 255.694 +-17.0929 201.415 256.529 +-19.8896 200.822 255.774 +-22.7825 201.2 256.256 +-25.6012 200.885 255.855 +-28.5261 201.355 256.453 +-31.3032 200.762 255.699 +-34.2331 201.139 256.179 +-36.9835 200.456 255.309 +-40.0463 201.414 256.529 +-42.7604 200.578 255.464 +-45.7044 200.829 255.784 +-48.4076 200.026 254.76 +-51.4982 200.794 255.739 +-54.1356 199.778 254.445 +-57.2518 200.512 255.38 +-59.9737 199.832 254.513 +-63.1196 200.531 255.405 +-65.7715 199.639 254.268 +-68.798 199.881 254.576 +-71.5982 199.443 254.018 +-74.7962 200.072 254.819 +-77.6439 199.721 254.373 +-80.681 199.835 254.517 +-83.652 199.751 254.41 +-86.9632 200.426 255.27 +-89.5516 199.414 253.982 +-92.8622 199.992 254.718 +-95.6848 199.484 254.071 +-99.0555 200.083 254.834 +-101.849 199.483 254.069 +-105.22 199.984 254.707 +-107.947 199.233 253.751 +-111.67 200.279 255.083 +-114.262 199.262 253.788 +-118.031 200.263 255.063 +-120.576 199.157 253.654 +-124.282 199.941 254.653 +-126.956 199.034 253.497 +-131.037 200.289 255.096 +-135.049 201.344 256.439 +-139.608 203.109 258.688 +-142.553 202.463 257.864 +-144.31 200.163 254.936 +-124.284 168.415 214.499 +-111.275 147.366 187.691 +-111.976 144.977 184.648 +-113.275 143.424 182.671 +-115.03 142.477 181.464 +-116.222 140.861 179.407 +-118.439 140.503 178.95 +-120.373 139.805 178.062 +-122.821 139.694 177.92 +-126.923 141.403 180.096 +-440.177 480.459 611.931 +-441.15 471.865 600.985 +-442.37 463.776 590.683 +-442.778 455.075 579.602 +-444.124 447.564 570.035 +-445.927 440.702 561.295 +-447.517 433.803 552.509 +-448.837 426.817 543.611 +-450.657 420.469 535.525 +-451.996 413.826 527.065 +-453.635 407.608 519.146 +-454.846 401.152 510.923 +-456.084 394.864 502.914 +-458.12 389.394 495.947 +-460.809 384.577 489.812 +-468.453 383.904 488.955 +-479.948 386.264 491.961 +-486.496 384.539 489.763 +-484.005 375.764 478.588 +-485.206 370.022 471.275 +-487.3 365.059 464.953 +-489.226 360.053 458.577 +-490.398 354.586 451.614 +-492.504 349.878 445.618 +-476.755 332.781 423.842 +-478.428 328.134 417.924 +-480.547 323.858 412.478 +-482.036 319.224 406.576 +-484.946 315.583 401.939 +-486.261 310.959 396.049 +-488.744 307.138 391.182 +-490.874 303.138 386.089 +-492.999 299.182 381.05 +-494.043 294.627 375.248 +-142.754 83.658 106.55 +-142.687 82.1697 104.655 +-143.695 81.3144 103.565 +-142.758 79.3796 101.101 +-142.751 77.9932 99.3352 +-142.867 76.6945 97.6811 +-147.671 77.887 99.1999 +-148.383 76.8897 97.9297 +-512.745 261.021 332.447 +-515.248 257.665 328.172 +-517.069 253.994 323.497 +-519.22 250.514 319.064 +-521.312 247.03 314.627 +-523.585 243.654 310.327 +-525.32 240.051 305.739 +-2650.74 1189.32 1514.77 +-2667.45 1174.99 1496.51 +-511.151 221.028 281.51 +-514.255 218.264 277.99 +-136.128 56.703 72.2191 +-525.265 214.7 273.45 +-527.524 211.558 269.449 +-529.565 208.342 265.353 +-532.489 205.48 261.708 +-2793.68 1057.22 1346.52 +-536.587 199.106 253.589 +-538.863 196.018 249.657 +-541.266 192.984 245.792 +-381.564 133.315 169.795 +-382.559 130.955 166.789 +-381.231 127.827 162.805 +-382.758 125.681 160.072 +-381.415 122.615 156.168 +-380.282 119.658 152.401 +-380.079 117.025 149.048 +-381.987 115.054 146.537 +-382.155 112.565 143.368 +-381.827 109.954 140.041 +-381.638 107.405 136.795 +-382.958 105.294 134.107 +-381.497 102.439 130.47 +-382.378 100.234 127.662 +-382.024 97.7208 124.461 +-381.629 95.2185 121.274 +-381.006 92.6828 118.044 +-381.368 90.4047 115.143 +-382.256 88.26 112.411 +-382.643 86.0065 109.541 +-381.204 83.3634 106.175 +-381.517 81.1254 103.325 +-381.226 78.772 100.327 +-381.849 76.6192 97.5852 +-381.296 74.2429 94.5586 +-381.47 72.0228 91.731 +-381.802 69.8416 88.953 +-381.044 67.4751 85.939 +-381.309 65.3032 83.1727 +-381.83 63.182 80.471 +-380.966 60.8436 77.4928 +-381.811 58.7883 74.875 +-380.683 56.4401 71.8843 +-381.076 54.3309 69.1979 +-381.341 52.2083 66.4945 +-380.891 49.9972 63.6784 +-382.073 48.0042 61.1401 +-381.264 45.7666 58.2901 +-381.896 43.7102 55.6711 +-381.318 41.5218 52.8838 +-381.495 39.4245 50.2126 +-381.149 37.2802 47.4815 +-382.057 35.2613 44.9101 +-382.144 33.1666 42.2423 +-382.301 31.0817 39.5869 +-380.344 28.8397 36.7313 +-380.737 26.7889 34.1194 +-380.305 24.6844 31.4391 +-381.834 22.705 28.918 +-381.742 20.6249 26.2687 +-380.623 18.4991 23.5612 +-381.169 16.4601 20.9642 +-380.09 14.3563 18.2848 +-380.877 12.3268 15.6999 +-380.038 10.2469 13.0508 +-380.168 8.19844 10.4419 +-147.349 2.3828 3.03482 +-145.978 1.57354 2.00413 +-147.194 0.793271 1.01034 +96.6 3.55271e-15 -1.7053e-13 +96.5963 0.526543 0.658311 +96.6853 1.05414 1.31794 +96.5669 1.57947 1.97473 +96.5412 2.10577 2.63274 +96.5081 2.63191 3.29055 +96.4676 3.15785 3.94811 +96.4198 3.68356 4.60537 +96.4644 4.21333 5.26772 +96.4019 4.73898 5.92491 +96.332 5.26426 6.58165 +97.1507 5.84303 7.30525 +97.0653 6.37236 7.96705 +96.9726 6.90116 8.62818 +96.8725 7.42946 9.28869 +96.765 7.95727 9.94858 +96.6502 8.48438 10.6076 +96.5279 9.01087 11.2659 +96.2996 9.52693 11.9111 +96.1628 10.0514 12.5668 +95.7233 10.5427 13.181 +96.4573 11.1665 13.9609 +96.3958 11.7037 14.6326 +96.2286 12.2287 15.289 +95.2716 12.6489 15.8143 +95.8723 13.2759 16.5982 +95.878 13.8261 17.286 +96.3619 14.4502 18.0663 +96.3504 15.0051 18.7601 +95.9434 15.4985 19.377 +96.7858 16.1987 20.2524 +96.5558 16.7256 20.9112 +96.3184 17.2513 21.5684 +96.649 17.882 22.357 +96.3955 18.4082 23.0149 +96.1347 18.9329 23.6708 +95.9616 19.4755 24.3492 +96.4445 20.1564 25.2005 +97.0102 20.8643 26.0856 +96.6208 21.3715 26.7197 +96.3185 21.8973 27.3771 +97.0392 22.6621 28.3333 +96.7189 23.1902 28.9935 +96.3913 23.7165 29.6515 +96.8907 24.4516 30.5706 +96.5454 24.9787 31.2297 +97.1133 25.7481 32.1916 +96.7498 26.2765 32.8522 +96.4704 26.8282 33.542 +97.0019 27.6121 34.522 +96.5218 28.1133 35.1487 +96.9377 28.8804 36.1078 +96.5305 29.4077 36.767 +96.116 29.9327 37.4234 +96.496 30.7107 38.3961 +96.7729 31.4663 39.3408 +97.1242 32.2565 40.3287 +96.6699 32.7847 40.9891 +96.9079 33.5526 41.9491 +97.1317 34.3256 42.9156 +96.735 34.885 43.6149 +96.1578 35.3792 44.2329 +96.3456 36.1594 45.2083 +96.6041 36.9769 46.2303 +95.9142 37.4358 46.8042 +96.3153 38.3263 47.9175 +96.3632 39.088 48.8698 +96.564 39.9221 49.9126 +96.1684 40.5168 50.6561 +96.1755 41.287 51.6192 +96.3323 42.1322 52.6758 +95.74 42.6556 53.3303 +95.7876 43.4696 54.3479 +95.8197 44.2873 55.3702 +95.9161 45.1462 56.4441 +95.2817 45.6672 57.0955 +95.9797 46.8387 58.5601 +95.9478 47.6711 59.6008 +95.9775 48.546 60.6947 +95.9901 49.4249 61.7935 +95.8322 50.2273 62.7967 +95.2028 50.7883 63.4981 +95.7726 52.0019 65.0155 +95.6416 52.8531 66.0796 +95.5684 53.7486 67.1992 +95.4774 54.6472 68.3227 +96.0267 55.9323 69.9295 +95.822 56.7976 71.0112 +95.6722 57.7083 72.1498 +95.5042 58.6216 73.2917 +95.318 59.5374 74.4367 +95.7442 60.8566 76.086 +95.5155 61.7805 77.2412 +95.1994 62.6611 78.3421 +95.0024 63.6349 79.5596 +95.3258 64.9791 81.2401 +95.6188 66.3314 82.9309 +95.2848 67.2714 84.1062 +94.8661 68.1653 85.2237 +95.0792 69.5344 86.9355 +95.1968 70.8636 88.5973 +94.7757 71.8137 89.7851 +94.6498 73.0073 91.2774 +94.7467 74.4002 93.0189 +94.8119 75.8 94.769 +94.6624 77.0567 96.3402 +94.2442 78.1186 97.6678 +94.1604 79.4833 99.3741 +94.1044 80.9031 101.149 +94.3642 82.6333 103.312 +94.3533 84.168 105.231 +94.25 85.6571 107.093 +94.0562 87.0993 108.896 +94.2708 88.9632 111.226 +94.1136 90.521 113.174 +94.0812 92.2424 115.326 +93.8487 93.8108 117.287 +93.9975 95.8103 119.787 +93.4794 97.1757 121.494 +93.5901 99.2419 124.077 +93.65 101.318 126.672 +93.1665 102.857 128.597 +93.5683 105.437 131.823 +93.38 107.425 134.308 +93.1901 109.474 136.87 +93.3656 112.028 140.063 +93.4766 114.591 143.268 +93.4338 117.053 146.345 +92.9785 119.074 148.872 +93.1626 122 152.53 +92.976 124.541 155.708 +93.0986 127.601 159.533 +92.2072 129.359 161.731 +92.9085 133.465 166.865 +92.6033 136.267 170.368 +92.4563 139.421 174.311 +92.4154 142.873 178.627 +92.3217 146.393 183.028 +91.4913 148.873 186.129 +99.2138 165.748 207.227 +96.8601 166.224 207.822 +93.8665 165.568 207.002 +91.4521 165.896 207.412 +91.4789 170.772 213.508 +91.2836 175.482 219.396 +90.8432 179.964 225 +88.9102 181.647 227.104 +87.1643 183.802 229.798 +88.7552 193.336 241.718 +89.8723 202.42 253.075 +87.6361 204.289 255.413 +84.4532 203.973 255.017 +81.3825 203.88 254.901 +78.2042 203.466 254.383 +75.2911 203.702 254.678 +72.1177 203.19 254.038 +69.2554 203.514 254.443 +66.25 203.394 254.293 +63.3867 203.686 254.659 +60.32 203.287 254.159 +57.4949 203.669 254.638 +54.3337 202.804 253.556 +51.4982 203.093 253.917 +48.6293 203.242 254.104 +45.7601 203.376 254.271 +42.6951 202.565 253.257 +39.9366 203.162 254.003 +37.0401 203.062 253.878 +34.2122 203.318 254.198 +31.2936 202.999 253.8 +28.4041 202.789 253.537 +25.4757 202.188 252.786 +22.7755 203.441 254.353 +19.8225 202.435 253.095 +17.0354 203.035 253.844 +14.1589 202.558 253.249 +11.3633 203.252 254.116 +8.48133 202.307 252.935 +5.65458 202.346 252.983 +2.82303 202.057 252.621 +2.04281e-14 202.564 253.256 +-2.82303 202.057 252.621 +-5.66331 202.658 253.373 +-8.47348 202.12 252.7 +-11.2935 202.004 252.555 +-14.1196 201.997 252.546 +-16.9359 201.85 252.363 +-19.7858 202.061 252.627 +-22.6639 202.445 253.106 +-25.46 202.064 252.631 +-28.2995 202.042 252.603 +-31.1307 201.942 252.479 +-34.0449 202.324 252.956 +-36.7797 201.634 252.093 +-39.7294 202.108 252.685 +-42.3949 201.14 251.476 +-45.4679 202.077 252.647 +-48.1563 201.265 251.632 +-51.2166 201.982 252.529 +-53.8385 200.956 251.245 +-56.8177 201.27 251.638 +-59.6457 201.014 251.318 +-62.6044 201.172 251.516 +-65.4924 201.068 251.385 +-68.4653 201.192 251.541 +-71.2736 200.811 251.064 +-74.2114 200.781 251.026 +-77.2471 200.975 251.27 +-80.2697 201.092 251.416 +-83.001 200.466 250.632 +-86.2644 201.092 251.415 +-89.0706 200.614 250.818 +-92.3661 201.202 251.552 +-95.2019 200.75 250.988 +-98.2661 200.761 251.002 +-101.398 200.873 251.142 +-104.664 201.204 251.555 +-107.471 200.626 250.832 +-110.823 201.037 251.346 +-113.628 200.425 250.581 +-117.313 201.324 251.705 +-120.156 200.735 250.969 +-123.673 201.239 251.599 +-126.37 200.383 250.529 +-129.951 200.902 251.178 +-133.327 201.052 251.366 +-138.67 204.055 255.12 +-141.835 203.749 254.738 +-144.229 202.341 252.977 +-118.602 162.556 203.236 +-111.444 149.279 186.637 +-112.062 146.75 183.474 +-113.757 145.684 182.142 +-115.03 144.108 180.171 +-116.676 143.031 178.824 +-118.854 142.611 178.3 +-120.748 141.847 177.345 +-124.061 142.72 178.436 +-128.184 144.442 180.589 +-440.473 486.286 607.98 +-441.15 477.267 596.704 +-442.573 469.302 586.745 +-443.087 460.607 575.874 +-445.012 453.594 567.107 +-445.927 445.748 557.297 +-447.517 438.77 548.573 +-448.837 431.704 539.738 +-450.988 425.595 532.101 +-452.555 419.082 523.957 +-453.975 412.584 515.833 +-454.846 405.745 507.283 +-456.433 399.69 499.713 +-458.708 394.357 493.046 +-461.761 389.783 487.327 +-470.86 390.294 487.966 +-480.739 391.33 489.261 +-484.341 387.219 484.12 +-485.063 380.897 476.217 +-485.584 374.55 468.282 +-487.236 369.19 461.58 +-489.804 364.606 455.849 +-490.593 358.788 448.575 +-491.979 353.507 441.973 +-477.351 337.012 421.349 +-479.031 332.308 415.468 +-481.155 327.98 410.058 +-482.65 323.289 404.193 +-484.67 319.015 398.849 +-486.608 314.744 393.509 +-488.744 310.654 388.396 +-490.661 306.476 383.172 +-492.999 302.608 378.336 +-142.429 85.9113 107.411 +-142.754 84.6158 105.791 +-143.199 83.4084 104.281 +-143.917 82.3716 102.985 +-143.055 80.4559 100.59 +-142.751 78.8862 98.6275 +-142.64 77.4496 96.8314 +-147.671 78.7788 98.4932 +-148.076 77.6095 97.0313 +-513.825 264.566 330.774 +-515.481 260.733 325.982 +-517.695 257.214 321.581 +-519.929 253.728 317.224 +-522.026 250.2 312.813 +-524.065 246.669 308.398 +-526.044 243.134 303.979 +-2650.74 1202.94 1503.98 +-2667.45 1188.44 1485.85 +-2683.95 1173.86 1467.62 +-513.843 220.587 275.789 +-134.967 56.8632 71.0932 +-134.422 55.5737 69.4811 +-527.44 213.946 267.486 +-530.325 211.03 263.84 +-533.253 208.131 260.216 +-383.688 146.863 183.615 +-2808.51 1054.06 1317.83 +-539.38 198.453 248.116 +-541.612 195.318 244.197 +-382.957 135.334 169.201 +-382.121 132.302 165.411 +-382.198 129.618 162.055 +-381.257 126.621 158.309 +-380.173 123.615 154.55 +-379.48 120.773 150.997 +-382.226 119.034 148.823 +-381.987 116.371 145.493 +-382.516 113.962 142.481 +-381.012 110.975 138.747 +-381.638 108.635 135.821 +-379.761 105.611 132.04 +-381.314 103.562 129.478 +-380.629 100.918 126.173 +-381.1 98.6004 123.275 +-381.351 96.2387 120.323 +-381.471 93.8589 117.347 +-382.208 91.6415 114.575 +-382.724 89.3798 111.747 +-382.643 86.9913 108.761 +-381.581 84.4016 105.523 +-381.517 82.0543 102.588 +-380.942 79.6145 99.5381 +-381.849 77.4964 96.89 +-381.105 75.0554 93.8381 +-381.183 72.7924 91.0088 +-381.514 70.5882 88.2529 +-380.852 68.2134 85.2838 +-380.441 65.901 82.3928 +-381.058 63.7761 79.7361 +-380.966 61.5402 76.9407 +-380.938 59.3253 74.1716 +-381.85 57.2613 71.591 +-382.83 55.2059 69.0212 +-381.341 52.8061 66.0208 +-381.673 50.6735 63.3546 +-380.897 48.4044 60.5176 +-381.264 46.2906 57.8749 +-382.191 44.2448 55.3171 +-381.318 41.9972 52.5071 +-381.89 39.9171 49.9064 +-380.853 37.6777 47.1066 +-382.057 35.665 44.5902 +-381.847 33.5202 41.9087 +-380.814 31.3153 39.152 +-380.741 29.2004 36.5078 +-381.929 27.1805 33.9824 +-381.698 25.0585 31.3293 +-381.137 22.9231 28.6596 +-380.845 20.812 26.0203 +-379.925 18.6766 23.3504 +-380.172 16.605 20.7604 +-381.088 14.5588 18.2021 +-381.476 12.4876 15.6126 +-380.438 10.3751 12.9715 +-380.868 8.30755 10.3865 +-146.25 2.3921 2.99072 +-144.778 1.57848 1.9735 +-147.194 0.802354 1.00314 +96.5 -3.55271e-15 -1.7053e-13 +95.6964 0.5275 0.647445 +96.5853 1.06488 1.30702 +96.5669 1.59722 1.9604 +96.5412 2.12944 2.61364 +96.5081 2.66149 3.26667 +96.5675 3.19665 3.92352 +96.4198 3.72495 4.57195 +96.3647 4.25628 5.2241 +97.2991 4.83684 5.93666 +96.332 5.32342 6.53389 +97.0511 5.90264 7.2448 +96.9659 6.43734 7.90109 +96.9726 6.97872 8.56557 +96.8725 7.51296 9.22129 +96.765 8.04669 9.87639 +96.6502 8.57973 10.5306 +96.5279 9.11214 11.1841 +96.2008 9.62408 11.8125 +96.0642 10.154 12.4628 +96.7081 10.7709 13.22 +96.5556 11.3035 13.8737 +96.3958 11.8353 14.5264 +96.2286 12.3662 15.178 +96.0541 12.8961 15.8285 +95.8723 13.4251 16.4778 +95.878 13.9814 17.1606 +96.3619 14.6126 17.9352 +96.3504 15.1737 18.624 +95.9434 15.6727 19.2364 +96.7858 16.3807 20.1054 +96.363 16.8798 20.718 +96.1262 17.4103 21.3691 +95.882 17.9395 22.0186 +96.3955 18.6151 22.8479 +96.1347 19.1457 23.4991 +95.9616 19.6944 24.1726 +96.4445 20.3829 25.0177 +96.1592 20.9137 25.6692 +96.6208 21.6116 26.5258 +96.3185 22.1434 27.1785 +97.0392 22.9168 28.1277 +96.7189 23.4508 28.7831 +97.2286 24.1914 29.6921 +96.8907 24.7264 30.3488 +96.5454 25.2595 31.0031 +97.0212 26.0128 31.9277 +96.7498 26.5718 32.6138 +96.4704 27.1298 33.2986 +96.0919 27.6605 33.95 +96.5218 28.4293 34.8937 +96.1253 28.9602 35.5454 +96.5305 29.7382 36.5002 +96.116 30.2691 37.1519 +96.4069 31.0272 38.0823 +96.7729 31.8199 39.0553 +96.3296 32.3521 39.7084 +96.582 33.1229 40.6546 +96.1207 33.6541 41.3065 +96.3484 34.4314 42.2606 +95.9556 34.9928 42.9496 +96.1578 35.7768 43.9119 +96.3456 36.5657 44.8802 +96.6041 37.3924 45.8949 +96.8471 38.2247 46.9164 +96.1466 38.6892 47.4866 +96.3632 39.5273 48.5152 +96.564 40.3707 49.5504 +96.0026 40.9014 50.2018 +96.0931 41.7153 51.2007 +96.3323 42.6056 52.2935 +96.3099 43.3918 53.2584 +96.4348 44.2551 54.318 +95.8197 44.785 54.9684 +95.9161 45.6536 56.0345 +95.9164 46.4881 57.0588 +95.9009 47.3261 58.0874 +95.8695 48.1675 59.12 +95.9775 49.0916 60.2543 +95.9901 49.9803 61.3451 +95.9854 50.873 62.4407 +95.9632 51.7693 63.5408 +95.7726 52.5864 64.5437 +95.7914 53.5308 65.7029 +95.5684 54.3526 66.7116 +94.9613 54.9626 67.4603 +95.4417 56.2163 68.999 +95.2417 57.0881 70.0691 +95.6722 58.3568 71.6263 +95.5756 59.3246 72.8141 +95.318 60.2065 73.8965 +95.7442 61.5405 75.5339 +95.5155 62.4748 76.6807 +95.2683 63.4114 77.8302 +95.6162 64.7657 79.4924 +95.3258 65.7093 80.6506 +95.6188 67.0768 82.3291 +95.2848 68.0275 83.4958 +94.8005 68.884 84.5471 +95.0792 70.3159 86.3046 +95.3254 71.7566 88.073 +94.7757 72.6207 89.1336 +94.7757 73.9257 90.7353 +94.6845 75.1871 92.2835 +94.8119 76.6518 94.0813 +94.1145 77.4717 95.0876 +94.2442 78.9965 96.9591 +94.1604 80.3766 98.653 +94.0456 81.7612 100.352 +94.4804 83.6649 102.689 +94.2386 85.0103 104.34 +94.25 86.6197 106.316 +94.1681 88.183 108.234 +93.8845 89.5941 109.966 +93.7324 91.1675 111.898 +94.0812 93.2791 114.489 +93.7427 94.7584 116.305 +93.475 96.3482 118.256 +93.4794 98.2678 120.612 +93.1333 99.8677 122.576 +93.65 102.456 125.753 +93.659 104.563 128.339 +93.5683 106.622 130.866 +93.4277 108.687 133.401 +93.1901 110.704 135.877 +93.735 113.735 139.596 +93.4766 115.879 142.228 +93.4338 118.368 145.284 +93.3292 120.866 148.349 +93.2057 123.428 151.494 +92.6379 125.483 154.016 +93.0572 128.977 158.305 +92.2479 130.87 160.628 +92.6294 134.56 165.157 +92.6033 137.798 169.131 +92.4563 140.987 173.046 +92.378 144.42 177.259 +92.285 147.98 181.628 +91.8855 151.195 185.575 +97.6028 164.89 202.383 +96.5523 167.558 205.658 +93.299 166.416 204.257 +91.094 167.104 205.101 +91.352 172.451 211.664 +91.3454 177.574 217.951 +90.5726 181.444 222.702 +88.7056 183.265 224.937 +86.5679 184.595 226.569 +89.968 198.18 243.243 +89.7654 204.451 250.94 +87.4291 206.097 252.961 +83.9023 204.92 251.516 +80.9955 205.191 251.848 +77.8073 204.708 251.256 +74.9762 205.13 251.773 +71.7714 204.487 250.984 +69.0891 205.306 251.99 +65.8512 204.442 250.929 +63.0624 204.921 251.517 +59.9919 204.454 250.943 +57.1997 204.901 251.492 +54.1026 204.211 250.646 +51.4513 205.188 251.845 +48.3337 204.277 250.726 +45.5096 204.536 251.044 +42.5776 204.278 250.727 +39.7538 204.505 251.006 +36.8363 204.214 250.649 +34.0449 204.598 251.12 +31.1211 204.149 250.569 +28.343 204.627 251.157 +25.4051 203.894 250.257 +22.6499 204.593 251.115 +19.7126 203.576 249.866 +16.9935 204.812 251.383 +14.076 203.636 249.939 +11.297 204.337 250.8 +8.43421 203.444 249.705 +5.64062 204.115 250.527 +2.81518 203.759 250.091 +2.22045e-14 204.335 250.798 +-2.81518 203.759 250.091 +-5.63189 203.799 250.139 +-8.44468 203.696 250.014 +-11.269 203.832 250.18 +-14.0411 203.131 249.32 +-16.915 203.866 250.222 +-19.6943 203.386 249.633 +-22.5453 203.648 249.955 +-25.3266 203.264 249.484 +-28.221 203.746 250.075 +-30.9582 203.08 249.257 +-33.9404 203.969 250.349 +-36.7005 203.461 249.725 +-39.4979 203.188 249.39 +-42.2905 202.9 249.036 +-45.2313 203.285 249.508 +-47.8902 202.403 248.426 +-50.9351 203.129 249.318 +-53.5579 202.156 248.123 +-56.6614 202.973 249.125 +-59.2994 202.093 248.046 +-62.4136 202.813 248.929 +-65.0737 202.028 247.966 +-68.2574 202.835 248.957 +-70.8623 201.896 247.804 +-74.1214 202.791 248.902 +-76.6868 201.76 247.638 +-80.0036 202.678 248.764 +-82.7756 202.168 248.138 +-86.0315 202.803 248.917 +-88.5895 201.772 247.652 +-91.8699 202.37 248.386 +-94.6907 201.916 247.828 +-98.0615 202.595 248.662 +-100.827 201.986 247.914 +-104.077 202.324 248.329 +-106.9 201.802 247.689 +-110.27 202.28 248.276 +-113.06 201.665 247.521 +-116.389 201.983 247.911 +-119.421 201.748 247.623 +-122.992 202.38 248.398 +-125.71 201.577 247.412 +-129.352 202.223 248.206 +-132.447 201.97 247.894 +-138.006 205.36 252.055 +-140.998 204.823 251.396 +-143.985 204.269 250.716 +-116.197 161.049 197.67 +-111.191 150.614 184.862 +-112.062 148.399 182.143 +-113.757 147.321 180.82 +-115.431 146.237 179.489 +-117.039 145.088 178.079 +-119.223 144.662 177.555 +-121.03 143.776 176.469 +-124.3 144.602 177.483 +-129.977 148.11 181.788 +-440.325 491.586 603.366 +-441.35 482.85 592.643 +-442.878 474.902 582.888 +-443.705 466.433 572.493 +-445.012 458.692 562.991 +-446.245 451.079 553.647 +-447.732 443.914 544.853 +-449.109 436.821 536.147 +-450.767 430.168 527.981 +-452.555 423.791 520.155 +-453.975 417.22 512.09 +-454.846 410.305 503.602 +-457.013 404.696 496.718 +-458.708 398.789 489.468 +-463.426 395.586 485.536 +-472.365 395.942 485.973 +-483.417 397.933 488.417 +-489.759 395.951 485.984 +-484.005 384.338 471.731 +-485.709 378.857 465.004 +-488.444 374.265 459.367 +-489.804 368.704 452.541 +-491.567 363.54 446.203 +-492.307 357.718 439.058 +-477.351 340.799 418.292 +-478.83 335.901 412.28 +-482.101 332.318 407.882 +-483.059 327.2 401.6 +-485.083 322.875 396.292 +-487.511 318.872 391.378 +-489.375 314.55 386.074 +-491.298 310.323 380.885 +-493.569 306.363 376.025 +-141.494 86.3064 105.931 +-142.681 85.5232 104.97 +-143.199 84.3458 103.525 +-143.253 82.9133 101.766 +-142.907 81.2754 99.7562 +-142.451 79.6054 97.7064 +-142.414 78.1956 95.976 +-148.507 80.1151 98.3321 +-148.383 78.644 96.5265 +-513.593 267.419 328.226 +-515.481 263.664 323.617 +-517.695 260.104 319.248 +-520.402 256.813 315.209 +-522.265 253.128 310.685 +-524.065 249.441 306.16 +-526.767 246.204 302.188 +-526.751 241.732 296.699 +-2667.45 1201.8 1475.07 +-2683.95 1187.05 1456.97 +-514.502 223.352 274.138 +-134.221 57.1843 70.1871 +-137.091 57.3139 70.3461 +-528.279 216.695 265.968 +-531.084 213.707 262.301 +-533.253 210.47 258.328 +-383.176 148.316 182.04 +-2808.51 1065.9 1308.27 +-539.811 200.844 246.513 +-542.478 197.829 242.812 +-2851.72 1019.1 1250.83 +-382.121 133.789 164.211 +-382.11 131.045 160.843 +-381.257 128.044 157.16 +-382.656 125.821 154.431 +-379.48 122.13 149.901 +-382.226 120.372 147.743 +-382.257 117.762 144.539 +-381.884 115.052 141.213 +-381.012 112.223 137.74 +-380.273 109.463 134.353 +-382.958 107.697 132.185 +-382.139 104.952 128.817 +-382.102 102.447 125.741 +-381.562 99.8292 122.529 +-381.351 97.3203 119.449 +-381.006 94.7975 116.353 +-382.768 92.8073 113.91 +-381.788 90.1632 110.665 +-381.797 87.7744 107.733 +-382.053 85.4556 104.887 +-380.949 82.8526 101.692 +-380.752 80.4695 98.767 +-380.328 78.0553 95.8039 +-381.105 75.8989 93.1572 +-381.566 73.6844 90.4391 +-381.514 71.3814 87.6125 +-381.525 69.1012 84.8138 +-381.79 66.8779 82.0849 +-380.382 64.3785 79.0171 +-381.934 62.39 76.5765 +-383.073 60.3283 74.046 +-381.558 57.8606 71.0172 +-380.784 55.5279 68.1541 +-380.755 53.3175 65.4411 +-382.26 51.3218 62.9916 +-380.603 48.9106 60.0321 +-381.558 46.847 57.4993 +-380.913 44.5924 54.732 +-381.022 42.4363 52.0857 +-380.608 40.2302 49.378 +-381.742 38.1901 46.8739 +-381.365 36.0004 44.1864 +-381.352 33.853 41.5507 +-380.616 31.6508 38.8477 +-380.145 29.4824 36.1862 +-381.631 27.4645 33.7095 +-380.802 25.2806 31.0291 +-381.436 23.1989 28.4739 +-380.347 21.0185 25.7977 +-381.121 18.9459 23.2539 +-381.668 16.8577 20.6908 +-381.088 14.7224 18.0701 +-380.278 12.5882 15.4506 +-380.438 10.4917 12.8774 +-381.767 8.42075 10.3355 +-146.95 2.43055 2.98322 +-145.078 1.59952 1.96323 +-147.194 0.811371 0.995864 +96.6 3.55271e-15 -1.7053e-13 +96.5963 0.538335 0.648704 +96.6853 1.07774 1.2987 +96.5669 1.61484 1.94591 +96.5412 2.15293 2.59432 +96.608 2.69364 3.24588 +96.5675 3.23192 3.89452 +96.5196 3.76994 4.54286 +96.4644 4.30769 5.19085 +96.4019 4.8451 5.83844 +96.332 5.38215 6.4856 +96.1553 5.91267 7.12488 +97.0653 6.51507 7.85078 +96.9726 7.05571 8.50227 +96.8725 7.59584 9.15314 +96.765 8.13547 9.80339 +96.5511 8.66551 10.4421 +96.429 9.20322 11.0901 +96.2996 9.74028 11.7372 +96.0642 10.266 12.3707 +95.7233 10.7788 12.9886 +96.5556 11.4282 13.7712 +95.4142 11.844 14.2722 +96.2286 12.5026 15.0658 +96.0541 13.0384 15.7115 +96.7509 13.6976 16.5059 +95.878 14.1357 17.0338 +96.3619 14.7738 17.8027 +96.1563 15.3103 18.4492 +95.9434 15.8456 19.0942 +96.5926 16.5284 19.917 +96.363 17.066 20.5649 +96.1262 17.6024 21.2112 +95.882 18.1374 21.8559 +96.3955 18.8204 22.679 +96.23 19.3761 23.3486 +96.7224 20.0695 24.1841 +95.591 20.4254 24.613 +96.1592 21.1445 25.4795 +96.6208 21.8501 26.3297 +96.2245 22.3659 26.9513 +97.0392 23.1696 27.9198 +96.7189 23.7095 28.5704 +96.3913 24.2476 29.2188 +96.8907 24.9992 30.1245 +96.5454 25.5381 30.7739 +97.0212 26.2998 31.6918 +96.7498 26.8649 32.3727 +96.4704 27.429 33.0525 +96.1829 27.9921 33.731 +96.5218 28.7429 34.6358 +96.9377 29.5272 35.5808 +96.4406 30.0383 36.1967 +96.8319 30.831 37.152 +96.4069 31.3695 37.8009 +96.7729 32.171 38.7666 +96.3296 32.709 39.415 +96.582 33.4883 40.3541 +96.1207 34.0253 41.0012 +96.5224 34.8742 42.0241 +96.735 35.6662 42.9784 +96.8471 36.4308 43.8998 +96.3456 36.9691 44.5485 +96.6041 37.8049 45.5557 +96.8471 38.6464 46.5697 +96.3153 39.1846 47.2183 +96.3632 39.9634 48.1566 +95.8135 40.4989 48.802 +96.0026 41.3527 49.8307 +96.1755 42.2116 50.8658 +96.3323 43.0757 51.907 +96.3913 43.9075 52.9094 +96.4348 44.7433 53.9166 +95.8197 45.2791 54.5621 +95.8363 46.1188 55.574 +95.9958 47.0398 56.6839 +95.9009 47.8482 57.6581 +95.8695 48.6989 58.6831 +95.9775 49.6332 59.809 +95.9901 50.5317 60.8917 +95.9088 51.3931 61.9297 +95.8872 52.2989 63.0212 +95.7726 53.1665 64.0667 +95.6416 54.0367 65.1153 +95.7171 55.0377 66.3215 +95.5511 55.9142 67.3776 +95.3685 56.793 68.4366 +95.3142 57.7618 69.6041 +95.7441 59.0449 71.1503 +95.5042 59.9344 72.2221 +95.318 60.8707 73.3504 +95.6741 62.1739 74.9208 +95.585 63.2101 76.1693 +95.2683 64.111 77.255 +95.0024 65.06 78.3985 +95.3258 66.4343 80.0546 +94.9496 67.3423 81.1488 +95.351 68.8258 82.9365 +95.391 70.0775 84.4447 +95.0142 71.0431 85.6083 +94.6183 72.0106 86.7741 +94.7757 73.4219 88.4748 +94.7757 74.7412 90.0646 +94.7467 76.0664 91.6614 +94.7503 77.447 93.3252 +94.7233 78.8334 94.9958 +94.6053 80.1745 96.6118 +94.2199 81.3144 97.9854 +94.1632 82.7666 99.7354 +93.9577 84.1198 101.366 +94.296 86.0005 103.632 +94.1934 87.5223 105.466 +94.0562 89.0499 107.307 +93.7741 90.4759 109.025 +93.6235 92.066 110.941 +93.9737 94.2002 113.513 +93.7427 95.8038 115.445 +93.893 97.8467 117.907 +93.4279 99.2969 119.655 +93.5901 101.464 122.267 +93.65 103.586 124.824 +93.659 105.716 127.39 +93.5683 107.798 129.899 +93.8571 110.391 133.024 +93.6126 112.433 135.484 +93.3656 114.537 138.019 +92.9773 116.532 140.423 +93.3892 119.617 144.141 +92.9785 121.74 146.699 +93.1626 124.732 150.304 +92.976 127.331 153.436 +92.7254 129.935 156.575 +92.736 133.014 160.285 +92.6294 136.044 163.936 +92.6424 139.377 167.952 +92.5329 142.661 171.909 +92.4529 146.132 176.092 +92.395 149.79 180.5 +92.3156 153.579 185.065 +93.8556 160.308 193.174 +95.6972 167.906 202.33 +92.4645 166.748 200.934 +90.4103 167.68 202.057 +91.0664 173.809 209.443 +91.0982 179.047 215.755 +90.1817 182.654 220.102 +88.7933 185.471 223.496 +86.0851 185.591 223.64 +90.2712 201.042 242.259 +89.3111 205.66 247.824 +86.5491 206.274 248.564 +83.051 205.079 247.124 +80.5358 206.277 248.568 +77.2237 205.414 247.528 +74.5938 206.334 248.637 +71.2303 205.184 247.25 +68.5485 205.947 248.171 +65.4126 205.32 247.415 +62.7762 206.241 248.525 +59.427 204.762 246.742 +56.7482 205.526 247.663 +53.69 204.89 246.896 +51.0289 205.749 247.931 +47.8016 204.257 246.134 +45.2869 205.78 247.969 +42.1077 204.252 246.128 +39.5344 205.62 247.776 +36.5533 204.88 246.885 +33.8359 205.585 247.734 +30.8719 204.748 246.725 +28.099 205.103 247.153 +25.2011 204.488 246.412 +22.4546 205.067 247.109 +19.6027 204.674 246.636 +16.8522 205.35 247.45 +13.9582 204.159 246.016 +11.2307 205.378 247.485 +8.36353 203.965 245.782 +5.61095 205.281 247.367 +2.79075 204.219 246.088 +2.13163e-14 204.801 246.789 +-2.78289 203.644 245.395 +-5.59699 204.77 246.752 +-8.35045 203.646 245.397 +-11.1923 204.677 246.639 +-13.9277 203.713 245.478 +-16.7894 204.584 246.528 +-19.5233 203.846 245.638 +-22.4197 204.748 246.725 +-25.1226 203.852 245.645 +-27.9944 204.34 246.234 +-30.709 203.668 245.423 +-33.6791 204.632 246.585 +-36.2703 203.294 244.973 +-39.2785 204.289 246.172 +-41.9381 203.429 245.136 +-44.9807 204.389 246.293 +-47.4764 202.867 244.459 +-50.497 203.604 245.347 +-53.0958 202.622 244.164 +-56.1752 203.451 245.162 +-58.8256 202.691 244.246 +-62.1274 204.11 245.957 +-64.5952 202.755 244.324 +-67.6545 203.261 244.934 +-70.3212 202.565 244.095 +-73.4465 203.161 244.813 +-76.0565 202.309 243.787 +-79.3988 203.365 245.059 +-81.9494 202.358 243.846 +-85.3585 203.436 245.144 +-87.9749 202.583 244.117 +-91.4013 203.558 245.292 +-93.9523 202.552 244.079 +-97.2721 203.181 244.837 +-99.714 201.961 243.367 +-103.397 203.22 244.884 +-105.98 202.272 243.742 +-109.684 203.425 245.131 +-111.959 201.903 243.297 +-115.74 203.072 244.705 +-118.335 202.12 243.559 +-122.132 203.182 244.838 +-124.574 201.959 243.364 +-128.528 203.152 244.802 +-131.299 202.427 243.929 +-137.264 206.508 248.846 +-139.682 205.15 247.21 +-143.822 206.289 248.582 +-113.211 158.642 191.167 +-111.318 152.449 183.704 +-112.708 150.901 181.838 +-114.196 149.521 180.175 +-115.878 148.421 178.85 +-117.402 147.144 177.311 +-119.454 146.541 176.585 +-121.311 145.701 175.572 +-125.016 147.039 177.185 +-131.286 151.252 182.262 +-440.916 497.676 599.71 +-441.8 488.675 588.862 +-443.639 480.967 579.574 +-444.169 472.071 568.855 +-445.482 464.242 559.421 +-446.722 456.543 550.143 +-448.323 449.404 541.541 +-449.872 442.39 533.088 +-451.484 435.606 524.913 +-452.89 428.785 516.694 +-454.881 422.666 509.32 +-455.362 415.302 500.447 +-1902.67 1703.45 2052.69 +-458.943 403.395 486.099 +-466.698 402.773 485.349 +-475.855 403.268 485.946 +-483.539 402.425 484.93 +-485.264 396.645 477.965 +-489.483 392.976 473.544 +-487.031 384.079 462.823 +-489.335 379.084 456.803 +-489.547 372.575 448.96 +-492.541 368.279 443.784 +-479.645 352.363 424.604 +-478.809 345.611 416.468 +-479.499 340.082 409.806 +-482.439 336.22 405.152 +-483.878 331.37 399.307 +-486.185 327.179 394.257 +-487.233 322.206 388.264 +-490.006 318.43 383.715 +-491.722 314.017 378.396 +-494.425 310.28 373.893 +-141.566 87.3033 105.202 +-143.044 86.687 104.46 +-143.126 85.2329 102.707 +-143.179 83.7852 100.963 +-142.312 81.8304 98.6072 +-142.976 80.7799 97.3413 +-143.697 79.7709 96.1255 +-148.811 81.165 97.8054 +-512.407 274.576 330.869 +-514.211 270.695 326.192 +-515.947 266.814 321.516 +-518.869 263.57 317.607 +-520.402 259.647 312.879 +-523.455 256.503 309.092 +-525.023 252.654 304.453 +-527.009 249.035 300.092 +-528.935 245.413 295.727 +-531.536 242.122 291.762 +-2683.95 1200.15 1446.2 +-2700.25 1185.15 1428.12 +-518.397 223.297 269.077 +-135.423 57.2413 68.9768 +-528.279 219.086 264.002 +-531.59 216.271 260.61 +-532.913 212.657 256.255 +-382.665 149.751 180.453 +-383.411 147.12 177.283 +-2823.13 1061.97 1279.7 +-542.911 200.171 241.21 +-544.843 196.855 237.214 +-380.897 134.832 162.475 +-382.549 132.643 159.837 +-380.462 129.187 155.673 +-382.479 127.15 153.219 +-381.262 124.058 149.492 +-382.137 121.671 146.616 +-380.909 118.642 142.965 +-381.884 116.322 140.17 +-381.827 113.703 137.015 +-381.092 110.909 133.648 +-381.497 108.469 130.708 +-381.314 105.881 127.589 +-382.102 103.577 124.812 +-381.47 100.906 121.594 +-382 98.5613 118.768 +-381.843 96.0541 115.747 +-381.928 93.6248 112.82 +-381.413 91.0679 109.739 +-381.797 88.7427 106.937 +-382.335 86.4622 104.189 +-380.666 83.7047 100.866 +-381.605 81.5392 98.2563 +-380.232 78.8967 95.072 +-381.964 76.9093 92.6772 +-380.896 74.367 89.6137 +-380.651 72.0055 86.768 +-380.852 69.741 84.0392 +-382.079 67.6668 81.5398 +-381.348 65.2541 78.6325 +-380.966 62.9184 75.8179 +-381.229 60.7003 73.145 +-382.433 58.6331 70.654 +-381.953 56.3128 67.8581 +-380.951 53.9333 64.9907 +-381.673 51.8083 62.43 +-382.171 49.6539 59.8339 +-380.773 47.2663 56.9569 +-380.323 45.0146 54.2434 +-381.515 42.9599 51.7675 +-381.495 40.7689 49.1273 +-382.137 38.6513 46.5756 +-381.365 36.3976 43.8598 +-380.857 34.1821 41.19 +-381.31 32.0583 38.6309 +-380.939 29.8699 35.9938 +-380.737 27.7024 33.382 +-380.902 25.5662 30.8078 +-380.54 23.3997 28.1971 +-381.244 21.3004 25.6674 +-381.121 19.1549 23.0821 +-381.768 17.0481 20.5433 +-380.389 14.8576 17.9037 +-380.278 12.7271 15.3364 +-380.438 10.6074 12.7822 +-380.868 8.4936 10.2349 +-147.749 2.47074 2.97729 +-145.778 1.62497 1.95812 +-146.794 0.818093 0.985818 +96.7 5.32907e-15 -1.7053e-13 +95.6964 0.539095 0.637822 +96.5853 1.08829 1.28759 +96.5669 1.63233 1.93126 +96.5412 2.17625 2.57479 +96.608 2.72281 3.22145 +96.5675 3.26692 3.86521 +96.4198 3.80684 4.504 +96.4644 4.35434 5.15178 +96.4019 4.89758 5.79449 +96.2324 5.43481 6.43012 +97.0511 6.03239 7.13713 +96.9659 6.57885 7.78366 +96.8733 7.12483 8.42964 +96.8725 7.67811 9.08424 +96.765 8.22358 9.7296 +96.6502 8.76833 10.3741 +96.429 9.30289 11.0066 +96.2008 9.83564 11.6369 +95.867 10.3559 12.2524 +95.9203 10.9179 12.9174 +96.4573 11.5402 13.6536 +96.3958 12.0954 14.3105 +96.2286 12.638 14.9524 +96.0541 13.1796 15.5932 +95.8723 13.7202 16.2329 +95.6831 14.2597 16.8712 +96.3619 14.9338 17.6687 +96.1563 15.4761 18.3103 +95.9434 16.0172 18.9505 +96.5926 16.7074 19.7671 +96.363 17.2508 20.4101 +96.3184 17.8286 21.0937 +95.7861 18.3155 21.6697 +96.3955 19.0243 22.5083 +96.1347 19.5665 23.1498 +95.9616 20.1273 23.8133 +96.3497 20.8105 24.6216 +96.1592 21.3735 25.2877 +96.6208 22.0867 26.1315 +96.2245 22.6081 26.7484 +97.0392 23.4205 27.7097 +96.6256 23.9432 28.328 +96.3913 24.5102 28.9989 +96.8907 25.2699 29.8977 +96.5454 25.8147 30.5423 +96.2848 26.3828 31.2145 +96.7498 27.1559 32.129 +97.2012 27.9362 33.0523 +96.9109 28.5094 33.7305 +96.5218 29.0542 34.3751 +96.2156 29.6247 35.05 +96.5305 30.3919 35.9578 +96.7424 31.1362 36.8383 +96.4069 31.7093 37.5163 +96.8616 32.5491 38.51 +96.2413 33.033 39.0825 +96.582 33.851 40.0503 +96.1207 34.3939 40.6926 +96.4354 35.2201 41.6701 +96.6484 36.0202 42.6167 +96.1578 36.5633 43.2593 +96.3456 37.3695 44.2132 +96.6041 38.2144 45.2128 +96.8471 39.065 46.2192 +96.1466 39.5397 46.7808 +96.3632 40.3962 47.7941 +96.564 41.2582 48.814 +96.7487 42.1254 49.84 +96.1755 42.6688 50.483 +95.595 43.209 51.1221 +96.3099 44.3456 52.4669 +95.7067 44.8864 53.1067 +95.8197 45.7695 54.1514 +95.9161 46.6571 55.2017 +95.9164 47.51 56.2108 +95.9009 48.3665 57.224 +95.9478 49.2665 58.2889 +95.9775 50.1708 59.3588 +95.2956 50.7095 59.9962 +95.9088 51.9498 61.4636 +95.2789 52.5299 62.15 +95.8481 53.7847 63.6345 +95.7165 54.6647 64.6757 +95.6427 55.5906 65.7711 +95.5511 56.5197 66.8705 +96.0267 57.8043 68.3902 +95.822 58.6984 69.4482 +95.6722 59.6396 70.5617 +95.5756 60.6287 71.7319 +95.3887 61.5756 72.8522 +95.7442 62.8933 74.4113 +95.5155 63.8482 75.541 +95.2683 64.8053 76.6735 +95.0024 65.7646 77.8084 +95.3258 67.1538 79.452 +95.6188 68.5513 81.1055 +94.6884 69.0877 81.7401 +94.9317 70.495 83.4051 +95.0792 71.8616 85.0219 +94.6183 72.7905 86.1209 +94.7757 74.2171 87.8088 +94.7757 75.5507 89.3867 +94.7467 76.8902 90.9715 +94.935 78.4381 92.8029 +94.6624 79.6356 94.2197 +94.1239 80.6303 95.3966 +94.2199 82.1951 97.2479 +94.5159 83.9761 99.355 +94.4804 85.504 101.163 +94.1239 86.7731 102.664 +94.1367 88.4173 104.61 +93.9444 89.9072 106.372 +93.8293 91.51 108.269 +93.6235 93.0631 110.106 +93.9737 95.2205 112.659 +93.8487 96.9505 114.705 +93.8407 98.8515 116.955 +93.4794 100.428 118.82 +93.5393 102.508 121.281 +93.7 104.764 123.95 +93.659 106.861 126.431 +93.1319 108.457 128.319 +93.4277 111.076 131.418 +93.1901 113.138 133.857 +93.3656 115.777 136.98 +93.522 118.484 140.182 +93.0322 120.451 142.509 +92.9785 123.059 145.595 +93.2057 126.142 149.243 +92.976 128.71 152.281 +93.0572 131.813 155.952 +92.6546 134.337 158.939 +92.6693 137.577 162.772 +92.6033 140.827 166.618 +92.4946 144.147 170.545 +92.4529 147.714 174.766 +92.1018 150.932 178.573 +92.5664 155.664 184.172 +91.264 157.57 186.427 +94.7054 167.966 198.726 +91.4631 166.728 197.262 +90.8986 170.411 201.619 +91.2251 175.997 208.229 +91.0673 180.925 214.058 +88.9788 182.17 215.531 +88.267 186.368 220.498 +87.9596 191.685 226.79 +90.2161 203.095 240.289 +88.2154 205.337 242.941 +85.695 206.45 244.258 +82.0746 204.863 242.38 +79.6165 206.131 243.881 +76.2199 204.94 242.472 +73.6265 205.864 243.565 +70.1914 204.381 241.81 +67.8624 206.094 243.837 +64.5155 204.698 242.185 +61.9175 205.624 243.28 +58.6434 204.251 241.656 +56.1578 205.591 243.242 +52.9308 204.18 241.573 +50.4814 205.746 243.425 +47.3138 204.362 241.788 +44.7998 205.771 243.455 +41.5465 203.712 241.019 +39.0835 205.476 243.106 +36.0439 204.213 241.612 +33.4805 205.628 243.286 +30.4502 204.138 241.523 +27.8114 205.203 242.783 +24.848 203.807 241.131 +22.2035 204.97 242.507 +19.3219 203.927 241.273 +16.6585 205.189 242.766 +13.8012 204.049 241.418 +11.105 205.28 242.874 +8.24836 203.335 240.572 +5.53416 204.664 242.146 +2.75148 203.526 240.798 +2.4869e-14 204.76 242.259 +-2.74624 203.138 240.34 +-5.54114 204.923 242.451 +-8.2405 203.141 240.343 +-11.0562 204.377 241.806 +-13.7663 203.533 240.807 +-16.6062 204.544 242.003 +-19.2486 203.154 240.358 +-22.1756 204.712 242.202 +-24.7617 203.099 240.293 +-27.6894 204.302 241.717 +-30.2681 202.918 240.079 +-33.3028 204.537 241.995 +-35.7609 202.61 239.715 +-38.8276 204.131 241.514 +-41.3638 202.816 239.959 +-44.4658 204.238 241.641 +-46.8408 202.319 239.371 +-49.9339 203.514 240.785 +-52.4026 202.143 239.162 +-55.7411 204.065 241.436 +-58.0238 202.093 239.103 +-61.2497 203.406 240.656 +-63.6981 202.104 239.117 +-66.9684 203.379 240.625 +-69.3905 202.049 239.051 +-72.7042 203.286 240.514 +-75.006 201.676 238.609 +-78.6246 203.563 240.843 +-80.8978 201.925 238.905 +-84.5044 203.582 240.865 +-86.799 202.04 239.041 +-90.2712 203.219 240.436 +-92.731 202.084 239.093 +-96.3072 203.344 240.584 +-98.7518 202.178 239.204 +-102.439 203.517 240.788 +-104.52 201.647 238.576 +-108.447 203.309 240.542 +-110.624 201.656 238.586 +-114.543 203.148 240.352 +-116.724 201.528 238.435 +-120.34 202.369 239.43 +-122.741 201.143 237.979 +-126.992 202.898 240.055 +-129.232 201.399 238.283 +-134.763 204.942 242.474 +-138.167 205.122 242.687 +-142.114 206.046 243.781 +-111.47 157.894 186.809 +-111.656 154.569 182.875 +-113.267 153.292 181.366 +-114.546 151.604 179.368 +-116.636 151.011 178.666 +-118.083 149.601 176.998 +-120.886 149.903 177.355 +-122.767 149.045 176.341 +-128.069 152.263 180.147 +-440.304 512.758 606.662 +-441.655 503.909 596.193 +-442.35 494.582 585.158 +-443.335 485.842 574.817 +-444.89 477.959 565.49 +-446.214 470.041 556.122 +-447.623 462.418 547.103 +-449.29 455.251 538.624 +-450.144 447.451 529.395 +-452.312 441.13 521.917 +-453.17 433.696 513.121 +-1855.83 1743.07 2062.29 +-456.452 420.804 497.868 +-459.104 415.484 491.574 +-460.412 409.07 483.985 +-472.468 412.169 487.652 +-479.406 410.677 485.887 +-484.939 407.961 482.673 +-488.589 403.687 477.617 +-490.293 397.889 470.756 +-487.597 388.691 459.874 +-489.208 383.089 453.247 +-490.897 377.649 446.81 +-493.386 372.906 441.198 +-477.611 354.669 419.621 +-479.273 349.693 413.734 +-481.306 345.06 408.253 +-483.452 340.575 402.947 +-485.105 335.809 397.307 +-487.149 331.377 392.064 +-488.484 326.531 386.331 +-490.987 322.524 381.589 +-492.429 317.874 376.088 +-141.58 89.8116 106.259 +-142.861 89.0557 105.365 +-143.334 87.8034 103.883 +-143.272 86.2438 102.038 +-142.516 84.3001 99.7384 +-142.461 82.8025 97.9666 +-142.601 81.4411 96.3558 +-147.697 82.8793 98.0575 +-2491.47 1373.62 1625.18 +-513.173 277.964 328.869 +-516.448 274.817 325.145 +-517.268 270.394 319.913 +-520.278 267.148 316.073 +-521.269 262.896 311.041 +-524.407 259.753 307.322 +-526.221 255.973 302.851 +-528.456 252.423 298.651 +-530.149 248.64 294.175 +-532.757 245.306 290.231 +-2683.95 1213.14 1435.31 +-2700.25 1197.98 1417.37 +-518.978 225.969 267.351 +-521.012 222.609 263.376 +-135.529 56.8149 67.2197 +-531.843 218.717 258.771 +-2778.63 1120.81 1326.07 +-382.494 151.306 179.016 +-381.697 148.048 175.161 +-381.443 145.041 171.603 +-543.777 202.662 239.776 +-546.496 199.591 236.143 +-383.696 137.294 162.437 +-381.758 133.803 158.307 +-380.815 130.707 154.645 +-380.971 128.021 151.466 +-380.282 125.078 147.985 +-381.69 122.845 145.342 +-381.898 120.238 142.257 +-381.342 117.415 138.918 +-381.284 114.771 135.79 +-380 111.789 132.262 +-382.227 109.854 129.973 +-382.139 107.259 126.902 +-381.825 104.623 123.783 +-382.394 102.246 120.971 +-381.073 99.3867 117.588 +-381.471 97.0002 114.764 +-382.208 94.7086 112.053 +-381.788 92.1452 109.02 +-381.797 89.7038 106.132 +-382.053 87.3341 103.328 +-380.949 84.6739 100.181 +-379.804 82.0337 97.0569 +-381.849 80.09 94.7573 +-381.868 77.7229 91.9567 +-380.418 75.0776 88.8269 +-380.268 72.7117 86.0278 +-382.005 70.7093 83.6586 +-380.923 68.1924 80.6808 +-381.348 65.9608 78.0406 +-381.257 63.6483 75.3045 +-381.617 61.4202 72.6683 +-380.683 58.9969 69.8013 +-381.661 56.8792 67.2957 +-381.829 54.6432 64.6503 +-381.086 52.2889 61.8648 +-382.073 50.1788 59.3683 +-381.558 47.8768 56.6447 +-382.191 45.7256 54.0995 +-380.431 43.3019 51.232 +-381.495 41.2104 48.7575 +-381.149 38.969 46.1056 +-381.661 36.8204 43.5635 +-380.956 34.5612 40.8906 +-380.913 32.3718 38.3002 +-380.443 30.154 35.6762 +-381.333 28.0463 33.1826 +-381.996 25.9174 30.6637 +-381.436 23.7088 28.0507 +-381.443 21.5423 25.4875 +-381.52 19.3827 22.9323 +-380.471 17.1742 20.3194 +-381.587 15.0658 17.8249 +-381.277 12.8988 15.261 +-381.636 10.7561 12.7259 +-380.368 8.57429 10.1445 +-147.25 2.48905 2.94488 +-146.378 1.64933 1.95138 +-146.494 0.825262 0.976397 +96.6 3.55271e-15 -1.7053e-13 +96.4963 0.549382 0.638224 +96.5853 1.09986 1.27772 +96.4669 1.64798 1.91448 +96.5412 2.19939 2.55505 +97.4072 2.77453 3.22321 +96.4676 3.29824 3.83161 +96.4198 3.84731 4.46947 +96.3647 4.3961 5.107 +97.2991 4.99572 5.8036 +97.129 5.54377 6.44027 +96.2548 6.0465 7.0243 +97.0653 6.65565 7.73195 +96.8733 7.20059 8.36502 +96.8725 7.75975 9.0146 +95.8727 8.23436 9.56596 +96.6502 8.86157 10.2946 +96.429 9.40181 10.9222 +96.2008 9.94022 11.5477 +95.867 10.466 12.1585 +96.7081 11.1247 12.9237 +95.4741 11.5441 13.4109 +96.3958 12.224 14.2008 +96.2286 12.7724 14.8378 +96.0541 13.3197 15.4737 +95.8723 13.8661 16.1084 +96.5601 14.5434 16.8953 +96.3619 15.0926 17.5332 +96.1563 15.6406 18.1699 +95.9434 16.1875 18.8052 +95.9164 16.7668 19.4782 +96.363 17.4343 20.2536 +96.03 17.9643 20.8693 +96.649 18.677 21.6973 +96.3955 19.2266 22.3357 +96.1347 19.7746 22.9724 +95.8665 20.3211 23.6073 +96.3497 21.0318 24.4329 +96.1592 21.6007 25.0938 +96.6208 22.3215 25.9312 +96.3185 22.8708 26.5693 +97.0392 23.6696 27.4972 +96.7189 24.2211 28.138 +97.1356 24.9621 28.9988 +96.8907 25.5386 29.6685 +97.2845 26.289 30.5402 +97.1133 26.8928 31.2417 +96.7498 27.4446 31.8828 +96.4704 28.0209 32.5523 +96.0919 28.5691 33.189 +96.5218 29.3631 34.1115 +96.9377 30.1643 35.0423 +96.4406 30.6865 35.6488 +96.116 31.2634 36.3191 +96.496 32.076 37.2631 +96.7729 32.8652 38.1799 +96.3296 33.4148 38.8184 +96.4941 34.1799 39.7072 +96.1207 34.7596 40.3806 +96.3484 35.5625 41.3134 +95.9556 36.1422 41.9869 +96.8471 37.2169 43.2354 +96.3456 37.7669 43.8743 +96.6041 38.6207 44.8662 +96.8471 39.4804 45.8648 +96.3153 40.0302 46.5036 +96.3632 40.8257 47.4278 +95.8135 41.3728 48.0633 +96.0026 42.245 49.0765 +96.0931 43.0856 50.0531 +96.3323 44.0052 51.1214 +96.3913 44.855 52.1086 +95.7876 45.4021 52.7442 +95.8197 46.2561 53.7363 +95.9161 47.1532 54.7785 +95.9958 48.0549 55.826 +95.9009 48.8807 56.7854 +95.9478 49.7904 57.8421 +95.8998 50.6631 58.856 +95.9129 51.5806 59.9219 +95.8322 52.4602 60.9437 +95.8112 53.3851 62.0182 +95.8481 54.3565 63.1467 +95.7165 55.2459 64.1799 +95.6427 56.1817 65.267 +95.5511 57.1207 66.3579 +95.4417 58.063 67.4525 +95.2417 58.9634 68.4985 +95.6722 60.2738 70.0208 +95.5042 61.2277 71.129 +95.318 62.1842 72.2402 +95.1134 63.1433 73.3544 +94.8903 64.1047 74.4713 +95.1994 65.4468 76.0304 +95.0024 66.4639 77.2119 +95.3258 67.8678 78.8429 +95.0165 68.8444 79.9775 +95.2185 70.2131 81.5675 +94.9317 71.2446 82.7657 +95.1441 72.6752 84.4278 +94.6826 73.614 85.5184 +94.2032 74.5535 86.6097 +94.8386 76.4049 88.7606 +94.7467 77.7078 90.2741 +94.8119 79.1698 91.9725 +94.2363 80.1203 93.0768 +94.1239 81.4877 94.6653 +94.2199 83.0691 96.5024 +93.9281 84.3412 97.9803 +94.4223 86.3597 100.325 +94.2386 87.8028 102.002 +94.1367 89.3574 103.808 +93.9444 90.8631 105.557 +94.1604 92.8092 107.818 +94.0592 94.4904 109.771 +93.9737 96.2329 111.795 +93.7957 97.9265 113.763 +93.893 99.9581 116.123 +93.4794 101.496 117.909 +93.5393 103.598 120.351 +93.7 105.878 123 +93.1665 107.429 124.802 +93.6167 110.181 127.999 +92.9505 111.685 129.746 +93.1901 114.341 132.831 +93.3656 117.008 135.93 +93.4766 119.686 139.04 +93.0322 121.731 141.417 +92.9347 124.308 144.411 +92.8182 126.953 147.482 +92.976 130.078 151.113 +93.0572 133.214 154.757 +92.6546 135.766 157.721 +92.6693 139.04 161.524 +92.6033 142.325 165.34 +92.4563 145.619 169.167 +92.4904 149.346 173.497 +92.1018 152.537 177.204 +92.2439 156.771 182.123 +92.0695 160.651 186.63 +93.3373 167.299 194.354 +90.5952 166.902 193.892 +91.5498 173.457 201.507 +91.1616 177.745 206.488 +90.6347 181.98 211.409 +88.8586 183.858 213.59 +86.7174 185.043 214.967 +90.3169 198.916 231.083 +89.8853 204.502 237.572 +86.6654 203.874 236.843 +84.2715 205.179 238.359 +80.7225 203.63 236.56 +78.552 205.538 238.776 +74.7959 203.249 236.117 +72.6142 205.193 238.376 +69.0659 203.242 236.109 +66.6773 204.649 237.743 +63.4588 203.486 236.392 +61.1161 205.12 238.291 +57.6775 203.023 235.854 +55.3764 204.885 238.018 +52.0725 203.005 235.834 +49.6367 204.454 237.517 +46.5008 202.986 235.812 +44.0622 204.536 237.612 +40.8678 202.515 235.264 +38.5838 205.006 238.158 +35.342 202.366 235.091 +32.916 204.311 237.351 +29.923 202.738 235.523 +27.4192 204.46 237.524 +24.4243 202.462 235.202 +21.8826 204.155 237.17 +18.9861 202.514 235.263 +16.4126 204.308 237.347 +13.5307 202.178 234.873 +10.9166 203.942 236.922 +8.12271 202.366 235.092 +5.45388 203.84 236.803 +2.70784 202.428 235.163 +2.30926e-14 204.067 237.067 +-2.70086 201.906 234.557 +-5.44864 203.644 236.576 +-8.10438 201.91 234.561 +-10.8956 203.551 236.468 +-13.5002 201.721 234.342 +-16.3655 203.721 236.666 +-18.9434 202.058 234.733 +-21.8059 203.44 236.338 +-24.3772 202.072 234.749 +-27.3059 203.615 236.542 +-29.7984 201.894 234.542 +-32.7592 203.338 236.22 +-35.2062 201.588 234.188 +-38.2913 203.452 236.353 +-40.6981 201.674 234.288 +-43.8256 203.437 236.335 +-46.1461 201.438 234.013 +-49.2612 202.907 235.72 +-51.4783 200.689 233.142 +-54.7686 202.637 235.406 +-57.0215 200.713 233.171 +-60.391 202.687 235.464 +-62.5218 200.481 232.901 +-66.012 202.607 235.371 +-68.33 201.077 233.593 +-71.6694 202.523 235.274 +-73.9555 200.966 233.465 +-77.4634 202.689 235.467 +-79.5207 200.599 233.038 +-83.1586 202.47 235.211 +-85.3559 200.794 233.265 +-89.0033 202.495 235.241 +-91.0269 200.48 232.9 +-95.0208 202.761 235.55 +-96.9475 200.595 233.033 +-100.74 202.269 234.978 +-103.124 201.069 233.584 +-106.689 202.139 234.828 +-108.721 200.295 232.685 +-112.525 201.691 234.307 +-114.903 200.493 232.915 +-118.871 202.024 234.694 +-121.019 200.429 232.841 +-124.856 201.607 234.21 +-124.257 195.706 227.354 +-131.051 201.416 233.987 +-132.783 199.227 231.444 +-119.865 175.637 204.04 +-111.635 159.81 185.653 +-112.374 157.217 182.641 +-114.085 156.041 181.275 +-115.072 153.92 178.81 +-117.439 153.668 178.518 +-119.173 152.586 177.261 +-122.04 152.944 177.677 +-124.41 152.646 177.331 +-1563.41 1878.51 2182.29 +-1588.48 1869.54 2171.87 +-167.621 193.282 224.538 +-1638.25 1851.17 2150.52 +-177.943 197.078 228.948 +-445.611 483.824 562.064 +-446.893 475.762 552.698 +-448.365 468.109 543.808 +-450.365 461.192 535.773 +-451.125 453.194 526.482 +-453.306 446.8 519.053 +-454.512 439.606 510.696 +-456.58 433.399 503.485 +-458.173 426.882 495.914 +-460.149 420.858 488.916 +-464.703 417.272 484.751 +-479.665 422.897 491.285 +-483.137 418.275 485.915 +-485.792 413.023 479.815 +-488.958 408.288 474.314 +-493.405 404.672 470.113 +-489.485 394.344 458.115 +-492.325 389.63 452.638 +-492.311 382.764 444.662 +-477.344 364.618 423.581 +-478.201 358.883 416.919 +-481.128 354.779 412.151 +-482.711 349.748 406.307 +-484.804 345.158 400.975 +-486.197 340.143 395.148 +-489.007 336.179 390.543 +-489.734 330.848 384.351 +-492.249 326.791 379.637 +-493.419 321.9 373.955 +-143.007 91.6812 106.507 +-143.005 90.0933 104.663 +-143.552 88.8714 103.243 +-142.98 86.9834 101.05 +-142.811 85.3726 99.1785 +-142.684 83.8141 97.3679 +-147.32 85.0301 98.7806 +-148.225 84.06 97.6536 +-513.122 285.907 332.142 +-514.782 281.8 327.371 +-517.374 278.236 323.231 +-518.59 273.967 318.27 +-521.139 270.435 314.168 +-522.688 266.414 309.496 +-526.231 263.428 306.028 +-526.94 259.048 300.94 +-2633.84 1271.46 1477.07 +-531.605 251.974 292.721 +-534.223 248.597 288.798 +-2683.95 1226.04 1424.31 +-2700.25 1210.72 1406.51 +-2716.34 1195.3 1388.6 +-2732.23 1179.79 1370.58 +-135.529 57.419 66.7044 +-135.786 56.4349 65.5611 +-535.203 218.179 253.461 +-383.688 153.392 178.197 +-381.697 149.622 173.818 +-382.563 147.013 170.787 +-384.255 144.732 168.137 +-547.28 202.002 234.669 +-549.524 198.721 230.857 +-2879.44 1019.95 1184.89 +-381.875 132.465 153.886 +-381.149 129.442 150.374 +-380.549 126.497 146.953 +-382.495 124.413 144.533 +-382.796 121.802 141.499 +-381.884 118.832 138.048 +-381.284 115.992 134.749 +-381.092 113.303 131.625 +-383.05 111.261 129.254 +-382.139 108.4 125.93 +-382.102 105.812 122.923 +-381.193 103.009 119.666 +-380.794 100.37 116.602 +-381.843 98.1268 113.995 +-381.928 95.6451 111.112 +-382.256 93.2391 108.317 +-382.643 90.8586 105.552 +-382.053 88.2627 102.536 +-382.368 85.8933 99.7833 +-381.511 83.2785 96.7457 +-381.088 80.7805 93.8437 +-381.868 78.5493 91.2518 +-381.47 76.0859 88.39 +-381.514 73.7262 85.6487 +-381.14 71.2994 82.8294 +-381.79 69.0747 80.245 +-382.7 66.8984 77.7167 +-381.257 64.3251 74.7273 +-380.744 61.9312 71.9463 +-381.752 59.7916 69.4607 +-381.758 57.4986 66.7969 +-381.536 55.1819 64.1055 +-380.206 52.7228 61.2488 +-381.779 50.6733 58.8678 +-380.577 48.2614 56.0658 +-381.601 46.1405 53.602 +-381.81 43.9209 51.0235 +-380.312 41.5195 48.2337 +-380.951 39.3629 45.7284 +-380.573 37.1059 43.1064 +-381.847 35.0104 40.672 +-380.814 32.7075 37.9967 +-381.237 30.5382 35.4767 +-381.333 28.3445 32.9282 +-380.802 26.1111 30.3336 +-381.137 23.9421 27.8139 +-381.244 21.76 25.2789 +-381.52 19.5888 22.7565 +-381.768 17.416 20.2324 +-381.587 15.226 17.6882 +-380.578 13.012 15.1162 +-380.737 10.8448 12.5986 +-3274.5 74.5991 86.6628 +-147.849 2.52576 2.93421 +-146.778 1.67142 1.94171 +-146.794 0.835747 0.970898 +96.6 3.55271e-15 -1.7053e-13 +96.5963 0.555692 0.633898 +96.5853 1.11134 1.26775 +96.5669 1.66691 1.9015 +96.5412 2.22235 2.53511 +96.608 2.78049 3.1718 +96.4676 3.33267 3.8017 +96.5196 3.8915 4.43917 +97.3623 4.48797 5.11958 +96.3022 4.99616 5.69929 +97.129 5.60165 6.39 +97.1507 6.1665 7.03434 +96.9659 6.71821 7.6637 +96.9726 7.28321 8.30821 +96.9718 7.8488 8.9534 +96.765 8.39778 9.57964 +96.6502 8.95408 10.2142 +96.429 9.49996 10.8369 +96.2008 10.044 11.4575 +96.0642 10.597 12.0884 +95.7233 11.1263 12.6922 +96.4573 11.7847 13.4432 +96.3958 12.3516 14.09 +96.1306 12.8926 14.707 +96.2497 13.4862 15.3842 +95.8723 14.0108 15.9827 +95.6831 14.5618 16.6112 +96.5563 15.2809 17.4315 +96.1563 15.8039 18.0281 +95.9434 16.3565 18.6584 +96.5926 17.0613 19.4624 +96.363 17.6163 20.0955 +96.03 18.1518 20.7064 +96.649 18.872 21.5279 +96.3955 19.4273 22.1614 +96.1347 19.981 22.793 +96.7224 20.7166 23.6322 +96.4445 21.2722 24.266 +96.9157 21.9979 25.0938 +95.7724 22.3566 25.5029 +96.3185 23.1096 26.3619 +96.9456 23.8936 27.2563 +96.6256 24.4504 27.8914 +97.1356 25.2227 28.7724 +96.8907 25.8052 29.4369 +96.5454 26.3616 30.0716 +97.0212 27.1478 30.9684 +96.7498 27.7311 31.6339 +96.4704 28.3135 32.2982 +96.1829 28.8947 32.9612 +96.5218 29.6697 33.8453 +96.9377 30.4793 34.7688 +96.5305 31.0357 35.4036 +96.0265 31.5604 36.0021 +96.4069 32.381 36.9381 +96.6842 33.1778 37.8471 +96.3296 33.7636 38.5154 +96.582 34.5681 39.4331 +96.1207 35.1224 40.0654 +96.3484 35.9337 40.9909 +96.6484 36.7832 41.9599 +96.1578 37.3378 42.5925 +96.3456 38.1611 43.5318 +96.6041 39.0239 44.5159 +96.0838 39.5782 45.1482 +96.3153 40.4481 46.1406 +96.3632 41.2519 47.0575 +96.564 42.1321 48.0616 +96.0026 42.686 48.6934 +96.1755 43.5727 49.7049 +96.3323 44.4646 50.7223 +96.3913 45.3233 51.7018 +96.4348 46.186 52.686 +95.9001 46.7782 53.3616 +95.9161 47.6455 54.3509 +95.9958 48.5566 55.3902 +95.9009 49.391 56.3421 +95.9478 50.3102 57.3906 +95.9775 51.2336 58.4439 +95.9129 52.1191 59.4541 +95.8322 53.0079 60.4679 +95.8872 53.9852 61.5829 +95.8481 54.924 62.6537 +95.6416 55.7791 63.6291 +95.6427 56.7682 64.7575 +95.4774 57.6725 65.789 +95.3685 58.6242 66.8746 +95.822 59.9419 68.3778 +95.6003 60.8572 69.4219 +95.5756 61.913 70.6264 +95.3887 62.88 71.7294 +95.7442 64.2256 73.2644 +95.5155 65.2007 74.3767 +95.1994 66.13 75.4369 +95.0024 67.1577 76.6092 +95.2582 68.5275 78.1718 +95.5519 69.9547 79.7998 +95.2185 70.9461 80.9308 +94.9317 71.9883 82.1196 +95.0142 73.3337 83.6544 +94.8112 74.484 84.9666 +94.8393 75.84 86.5134 +94.6498 77.049 87.8925 +94.8712 78.6218 89.6867 +94.8119 79.9963 91.2545 +94.7233 81.3753 92.8277 +94.1841 82.3905 93.9857 +94.0415 83.7774 95.5678 +94.5746 85.8084 97.8847 +94.4223 87.2613 99.542 +94.2386 88.7194 101.205 +94.1367 90.2903 102.997 +93.8326 91.7029 104.609 +93.8845 93.5032 106.662 +93.7324 95.1453 108.536 +93.8125 97.0708 110.732 +93.7427 98.8928 112.811 +93.475 100.552 114.703 +93.4794 102.555 116.988 +93.4378 104.566 119.282 +93.65 106.926 121.975 +93.1665 108.551 123.828 +93.5683 111.274 126.934 +93.4277 113.429 129.393 +93.1901 115.534 131.794 +93.3194 118.171 134.802 +93.4766 120.935 137.955 +92.9876 122.943 140.245 +92.9785 125.665 143.351 +92.8612 128.338 146.4 +92.976 131.436 149.934 +93.0157 134.545 153.48 +92.736 137.303 156.626 +92.7092 140.551 160.332 +92.5642 143.75 163.981 +92.7625 147.626 168.402 +92.4904 150.905 172.142 +92.395 154.62 176.381 +92.3156 158.53 180.841 +92.3497 162.822 185.737 +91.1826 165.143 188.385 +91.8303 170.944 195.002 +91.2893 174.768 199.364 +91.1616 179.6 204.876 +89.4913 181.56 207.112 +87.8362 183.64 209.485 +86.9806 187.542 213.936 +90.2885 200.929 229.207 +88.9482 204.482 233.26 +85.7301 203.78 232.459 +82.9256 204.01 232.722 +79.7711 203.331 231.947 +77.0279 203.654 232.315 +74.1422 203.577 232.227 +71.377 203.803 232.485 +68.3516 203.24 231.843 +65.6585 203.625 232.283 +62.6215 202.897 231.452 +60.1048 203.832 232.519 +56.9668 202.614 231.129 +54.5082 203.778 232.457 +51.3958 202.459 230.952 +48.964 203.788 232.468 +45.9539 202.693 231.219 +43.4498 203.799 232.48 +40.4501 202.538 231.042 +37.8526 203.221 231.821 +34.9911 202.448 230.94 +32.477 203.691 232.357 +29.5301 202.164 230.616 +26.9747 203.245 231.849 +24.1105 201.947 230.368 +21.5338 202.999 231.568 +18.748 202.062 230.499 +16.1404 203.018 231.589 +13.3737 201.917 230.334 +10.756 203.041 231.616 +8.018 201.843 230.249 +5.36836 202.738 231.271 +2.67119 201.772 230.169 +2.39808e-14 202.374 230.855 +-2.67207 201.838 230.244 +-5.37185 202.87 231.421 +-8.01538 201.777 230.174 +-10.749 202.909 231.465 +-13.3693 201.852 230.259 +-16.0985 202.491 230.989 +-18.6809 201.338 229.673 +-21.471 202.407 230.892 +-24.0399 201.355 229.693 +-26.8614 202.391 230.875 +-29.463 201.705 230.091 +-32.2261 202.117 230.562 +-34.7647 201.138 229.446 +-37.6942 202.37 230.851 +-40.1499 201.034 229.327 +-43.0462 201.906 230.321 +-45.5696 200.999 229.286 +-48.479 201.77 230.167 +-50.9832 200.834 229.098 +-53.883 201.442 229.791 +-56.2379 200.022 228.172 +-59.4179 201.503 229.861 +-61.9237 200.637 228.873 +-64.8684 201.175 229.488 +-67.3993 200.409 228.613 +-70.6346 201.683 230.067 +-73.1618 200.885 229.156 +-76.2296 201.543 229.907 +-78.6694 200.523 228.743 +-81.7868 201.209 229.526 +-84.3137 200.413 228.618 +-87.6802 201.567 229.935 +-90.1465 200.613 228.846 +-93.4712 201.537 229.9 +-95.8951 200.488 228.704 +-99.349 201.56 229.926 +-101.696 200.355 228.552 +-105.126 201.258 229.582 +-107.653 200.397 228.6 +-110.951 200.947 229.227 +-113.712 200.486 228.702 +-117.079 201.056 229.352 +-116.657 195.223 222.697 +-120.211 196.133 223.736 +-123.645 196.774 224.467 +-125.386 194.72 222.124 +-128.118 194.233 221.569 +-112.137 166.028 189.394 +-111.884 161.838 184.615 +-113.008 159.755 182.238 +-114.559 158.325 180.607 +-116.212 157.067 179.172 +-118.599 156.806 178.874 +-120.217 155.53 177.419 +-123.148 155.944 177.89 +-126.663 157.033 179.133 +-164.238 199.4 227.463 +-163.526 194.469 221.838 +-167.375 195.013 222.458 +-1638.25 1870.49 2133.74 +-172.056 192.546 219.644 +-446.383 489.722 558.644 +-448.043 481.965 549.794 +-449.319 474.003 540.711 +-451.17 466.841 532.542 +-452.323 459.142 523.759 +-454.355 452.509 516.193 +-1832.2 1790.6 2042.61 +-457.316 438.629 500.36 +-458.861 431.987 492.782 +-463.517 428.364 488.65 +-472.05 428.295 488.571 +-483.948 431.127 491.802 +-488.313 427.169 487.286 +-486.948 418.329 477.202 +-486.003 410.058 467.767 +-488.736 405.028 462.03 +-490.681 399.435 455.649 +-499.067 399.089 455.255 +-496.425 389.992 444.877 +-478.254 369.126 421.075 +-479.514 363.625 414.799 +-481.924 359.075 409.609 +-483.982 354.33 404.197 +-486.29 349.831 399.064 +-487.629 344.706 393.219 +-489.627 340.119 387.986 +-491.61 335.582 382.811 +-493.65 331.143 377.746 +-141.563 93.318 106.451 +-143.007 92.6383 105.676 +-142.645 90.8051 103.585 +-143.624 89.8447 102.489 +-142.907 87.846 100.209 +-143.106 86.4419 98.6073 +-142.089 84.3364 96.2055 +-148.218 86.4426 98.6081 +-149.055 85.4135 97.4342 +-513.806 289.277 329.988 +-515.854 285.336 325.492 +-518.3 281.645 321.282 +-520.377 277.781 316.875 +-522.704 274.08 312.653 +-524.342 270.048 308.053 +-526.231 266.178 303.639 +-528.297 262.427 299.36 +-2633.84 1284.74 1465.54 +-532.333 254.953 290.834 +-535.688 251.881 287.33 +-537.528 248.109 283.027 +-2700.25 1223.36 1395.53 +-2716.34 1207.78 1377.76 +-2732.23 1192.11 1359.88 +-533.478 228.376 260.516 +-135.533 56.9178 64.9281 +-137.214 56.5202 64.4746 +-538.783 217.645 248.276 +-382.811 151.626 172.965 +-381.96 148.314 169.187 +-381.657 145.254 165.697 +-383.827 143.151 163.297 +-549.961 200.955 229.236 +-552.6 197.784 225.619 +-381.433 133.693 152.509 +-380.173 130.458 148.819 +-380.192 127.698 145.67 +-381.958 125.536 143.203 +-382.257 122.9 140.197 +-382.786 120.356 137.295 +-381.012 117.119 133.602 +-381.547 114.622 130.753 +-382.41 112.235 128.03 +-382.597 109.663 125.096 +-380.997 106.608 121.612 +-382.024 104.311 118.992 +-381.629 101.64 115.945 +-381.843 99.1512 113.105 +-380.527 96.2896 109.841 +-380.851 93.8658 107.076 +-382.173 91.6944 104.599 +-381.487 89.0523 101.585 +-380.949 86.4676 98.6366 +-381.226 84.0846 95.9183 +-381.849 81.7866 93.2969 +-380.438 79.0721 90.2003 +-381.566 76.8993 87.7218 +-380.556 74.3087 84.7665 +-382.005 72.2072 82.3693 +-380.923 69.637 79.4373 +-381.348 67.3581 76.8378 +-380.772 64.9141 74.0499 +-381.617 62.7213 71.5483 +-381.558 60.3851 68.8834 +-381.953 58.1286 66.3093 +-381.536 55.758 63.6051 +-380.206 53.2732 60.7707 +-381.485 51.1629 58.3633 +-380.97 48.8156 55.6856 +-380.716 46.514 53.0602 +-381.515 44.3451 50.586 +-381.495 42.0834 48.0061 +-381.248 39.8048 45.4067 +-381.068 37.542 42.8254 +-380.659 35.2658 40.229 +-381.31 33.092 37.7492 +-381.336 30.8651 35.2089 +-380.439 28.5732 32.5945 +-381.499 26.4319 30.1518 +-381.436 24.2111 27.6184 +-380.347 21.9355 25.0226 +-380.822 19.7571 22.5376 +-380.471 17.538 20.0062 +-381.088 15.3648 17.5271 +-380.877 13.1582 15.01 +-381.037 10.9667 12.5101 +-149.409 3.43934 3.92338 +-146.85 2.53487 2.89162 +-145.478 1.67392 1.9095 +-146.794 0.844472 0.963318 +96.6 3.55271e-15 -1.7053e-13 +96.5963 0.561388 0.628859 +96.5853 1.12273 1.25767 +96.5669 1.68399 1.88638 +96.5412 2.24513 2.51496 +96.608 2.80899 3.14659 +96.4676 3.36683 3.77148 +96.5196 3.93139 4.40388 +96.4644 4.49216 5.03205 +96.3022 5.04737 5.65399 +96.332 5.61264 6.28719 +97.1507 6.22971 6.97842 +96.1703 6.7314 7.54042 +96.9726 7.35787 8.24217 +96.8725 7.92113 8.87313 +96.765 8.48386 9.50349 +96.6502 9.04586 10.133 +96.429 9.59734 10.7508 +96.2008 10.147 11.3665 +96.0642 10.7056 11.9923 +96.7081 11.3561 12.7209 +96.4573 11.9055 13.3363 +96.2976 12.4656 13.9638 +96.1306 13.0247 14.5901 +96.0541 13.5967 15.2308 +95.8723 14.1545 15.8556 +95.6831 14.7111 16.4791 +96.5563 15.4376 17.2929 +96.1563 15.9659 17.8848 +95.9434 16.5241 18.5101 +96.5926 17.2362 19.3077 +96.363 17.7968 19.9357 +96.03 18.3379 20.5418 +96.649 19.0654 21.3568 +96.3955 19.6264 21.9852 +96.1347 20.1858 22.6118 +95.8665 20.7438 23.2368 +96.4445 21.4903 24.0731 +96.9157 22.2234 24.8943 +95.7724 22.5857 25.3002 +96.2245 23.3237 26.1268 +96.9456 24.1385 27.0396 +96.7189 24.7248 27.6964 +97.1356 25.4812 28.5437 +96.8907 26.0697 29.2029 +96.5454 26.6318 29.8325 +97.1133 27.452 30.7514 +96.7498 28.0154 31.3824 +97.2926 28.8475 32.3145 +96.1829 29.1909 32.6992 +96.5218 29.9738 33.5762 +96.9377 30.7917 34.4924 +96.4406 31.3246 35.0894 +96.0265 31.8839 35.7159 +96.496 32.7431 36.6784 +96.6842 33.5179 37.5462 +96.2413 34.0785 38.1742 +96.582 34.9225 39.1196 +96.9079 35.773 40.0724 +96.3484 36.302 40.665 +96.6484 37.1603 41.6264 +96.1578 37.7205 42.254 +96.3456 38.5523 43.1857 +96.6041 39.4239 44.1621 +96.0838 39.9838 44.7893 +96.3153 40.8627 45.7738 +96.3632 41.6748 46.6835 +96.564 42.564 47.6796 +96.0026 43.1236 48.3064 +96.1755 44.0193 49.3098 +96.3323 44.9204 50.3191 +96.3913 45.7878 51.2908 +96.5157 46.6986 52.3111 +95.9001 47.2577 52.9374 +95.9161 48.1339 53.9188 +95.9958 49.0543 54.9499 +95.9009 49.8973 55.8942 +95.9478 50.8259 56.9344 +95.9775 51.7587 57.9793 +95.9129 52.6534 58.9815 +95.8322 53.5512 59.9873 +95.8872 54.5386 61.0933 +95.7726 55.4433 62.1068 +95.6416 56.3508 63.1233 +95.6427 57.3501 64.2427 +95.4774 58.2636 65.266 +96.0267 59.6338 66.8009 +95.822 60.5563 67.8343 +95.6722 61.5273 68.9219 +95.5756 62.5477 70.0649 +95.318 63.4775 71.1065 +95.7442 64.884 72.682 +95.5155 65.869 73.7855 +95.1994 66.8079 74.8372 +95.0706 67.8947 76.0547 +95.2582 69.23 77.5504 +95.0165 70.2762 78.7223 +95.2185 71.6734 80.2874 +94.9317 72.7262 81.4668 +95.0142 74.0854 82.9894 +94.6826 75.145 84.1763 +94.8393 76.6174 85.8257 +94.7757 77.942 87.3094 +94.8712 79.4277 88.9738 +94.8119 80.8163 90.5291 +94.7233 82.2094 92.0898 +94.2442 83.2883 93.2983 +94.0415 84.6362 94.8082 +94.4571 86.5801 96.9857 +94.4223 88.1557 98.7507 +94.3533 89.738 100.523 +94.1367 91.2158 102.179 +94.0003 92.8081 103.962 +93.8845 94.4617 105.815 +93.7324 96.1206 107.673 +93.8125 98.0658 109.852 +93.6897 99.8499 111.85 +93.475 101.583 113.791 +93.4794 103.607 116.058 +93.4378 105.638 118.334 +93.6 107.965 120.94 +93.1665 109.663 122.843 +93.5683 112.414 125.925 +93.4277 114.592 128.364 +93.1901 116.719 130.746 +93.3194 119.382 133.73 +93.0227 121.581 136.194 +92.9876 124.203 139.131 +92.9785 126.954 142.211 +92.8612 129.653 145.236 +92.9338 132.723 148.674 +93.0157 135.924 152.26 +93.0207 139.137 155.859 +92.7092 141.992 159.057 +92.5642 145.223 162.677 +92.7625 149.139 167.063 +92.4904 152.452 170.774 +92.395 156.205 174.978 +92.1722 159.907 179.125 +92.3497 164.491 184.26 +91.1142 166.711 186.747 +91.8303 172.696 193.451 +91.387 176.749 197.992 +91.1616 181.441 203.248 +89.4604 183.358 205.395 +87.8362 185.522 207.819 +90.6645 197.489 221.224 +90.2885 202.989 227.385 +87.6802 203.634 228.107 +85.7301 205.869 230.611 +81.5798 202.757 227.125 +79.7711 205.415 230.103 +75.9877 202.963 227.356 +74.1422 205.663 230.381 +70.2072 202.517 226.857 +68.3516 205.323 230 +64.5774 202.326 226.642 +62.6215 204.977 229.612 +59.1699 202.719 227.082 +56.9668 204.691 229.292 +53.6052 202.457 226.789 +51.3958 204.534 229.116 +48.088 202.194 226.494 +45.9539 204.771 229.381 +42.7957 202.788 227.16 +40.4501 204.614 229.205 +37.2676 202.131 226.424 +34.9911 204.523 229.104 +31.9125 202.202 226.504 +29.5301 204.236 228.782 +26.5738 202.277 226.588 +24.1105 204.017 228.537 +21.206 201.957 226.229 +18.748 204.133 228.667 +15.8892 201.907 226.173 +13.3737 203.987 228.503 +10.5571 201.329 225.525 +8.018 203.912 228.419 +5.28633 201.687 225.927 +2.67119 203.841 228.339 +2.39808e-14 201.651 225.886 +-2.67207 203.907 228.414 +-5.28459 201.62 225.852 +-8.01538 203.845 228.345 +-10.5815 201.794 226.047 +-13.3693 203.921 228.429 +-15.8369 201.241 225.428 +-18.6809 203.402 227.848 +-21.185 201.758 226.006 +-24.0399 203.419 227.867 +-26.4431 201.281 225.472 +-29.463 203.772 228.262 +-31.7244 201.01 225.168 +-34.7647 203.2 227.622 +-37.0848 201.14 225.314 +-40.1499 203.095 227.504 +-42.4478 201.14 225.314 +-45.5696 203.059 227.463 +-47.8377 201.142 225.316 +-50.9832 202.892 227.277 +-52.9974 200.161 224.218 +-56.2379 202.072 226.358 +-58.4639 200.3 224.373 +-61.9237 202.693 227.054 +-63.9328 200.306 224.38 +-67.3993 202.463 226.796 +-69.5774 200.701 224.822 +-73.1618 202.944 227.334 +-74.9958 200.314 224.389 +-78.6694 202.578 226.925 +-80.6998 200.57 224.675 +-84.3137 202.467 226.8 +-86.4123 200.689 224.809 +-90.1465 202.669 227.027 +-92.2433 200.928 225.076 +-95.8951 202.543 226.886 +-97.7421 200.332 224.409 +-101.696 202.409 226.735 +-103.335 199.858 223.878 +-107.653 202.452 226.783 +-109.378 200.129 224.181 +-113.712 202.541 226.884 +-115.287 200.008 224.046 +-116.657 197.224 220.927 +-118.263 194.933 218.361 +-123.645 198.791 222.682 +-124.565 195.429 218.917 +-128.118 196.224 219.807 +-111.446 166.696 186.73 +-111.884 163.497 183.147 +-113.811 162.539 182.074 +-114.559 159.948 179.171 +-117.527 160.473 179.76 +-118.599 158.413 177.452 +-121.533 158.845 177.936 +-123.148 157.542 176.476 +-133.424 167.111 187.195 +-164.238 201.444 225.654 +-162.799 195.589 219.096 +-167.375 197.012 220.69 +-169.15 195.109 218.558 +-172.056 194.52 217.898 +-174.186 193.056 216.259 +-448.043 486.905 545.424 +-450.431 480.047 537.742 +-451.17 471.626 528.309 +-453.358 464.909 520.784 +-454.355 457.148 512.09 +-456.917 451.122 505.34 +-457.316 443.126 496.383 +-460.467 437.942 490.576 +-463.517 432.755 484.766 +-479.104 439.15 491.93 +-483.948 435.546 487.892 +-491.262 434.153 486.332 +-486.948 422.617 473.409 +-487.542 415.573 465.519 +-488.736 409.18 458.357 +-490.933 403.736 452.259 +-499.067 403.18 451.636 +-478.427 379.705 425.34 +-478.254 372.91 417.728 +-481.285 368.709 413.022 +-481.924 362.755 406.353 +-485.187 358.852 401.981 +-486.29 353.417 395.892 +-488.72 349.019 390.966 +-489.627 343.605 384.901 +-492.999 339.98 380.84 +-493.65 334.537 374.743 +-142.977 95.2162 106.66 +-143.007 93.5879 104.836 +-143.652 92.3832 103.486 +-143.624 90.7656 101.674 +-142.907 88.7464 99.4124 +-143.106 87.328 97.8235 +-147.589 88.498 99.1342 +-148.218 87.3286 97.8242 +-513.353 297.183 332.9 +-513.806 292.242 327.365 +-517.386 289.117 323.864 +-518.3 284.532 318.728 +-522.009 281.509 315.342 +-522.704 276.889 310.167 +-525.84 273.595 306.477 +-526.231 268.906 301.225 +-530.454 266.199 298.193 +-2633.84 1297.91 1453.89 +-2650.74 1282.55 1436.69 +-535.688 254.463 285.046 +-539.002 251.34 281.547 +-2700.25 1235.9 1384.43 +-2716.34 1220.16 1366.81 +-2732.23 1204.33 1349.07 +-383.105 165.684 185.596 +-135.533 57.5012 64.412 +-135.942 56.5702 63.3691 +-538.783 219.876 246.302 +-381.868 152.803 171.167 +-381.96 149.834 167.842 +-382.004 146.876 164.529 +-383.827 144.618 161.999 +-551.623 203.628 228.101 +-552.6 199.811 223.825 +-556.345 196.999 220.675 +-380.173 131.796 147.636 +-380.994 129.279 144.816 +-381.958 126.822 142.065 +-381.987 124.073 138.984 +-382.786 121.59 136.203 +-381.646 118.517 132.761 +-381.547 115.797 129.714 +-382.045 113.277 126.891 +-382.597 110.787 124.102 +-383.022 108.273 121.286 +-382.024 105.381 118.046 +-382 102.782 115.135 +-381.843 100.168 112.206 +-381.461 97.5151 109.235 +-380.851 94.8279 106.225 +-382.173 92.6343 103.768 +-381.487 89.9651 100.778 +-380.949 87.3539 97.8526 +-381.226 84.9465 95.1558 +-381.849 82.625 92.5553 +-380.438 79.8826 89.4833 +-380.896 77.5517 86.8723 +-380.556 75.0704 84.0927 +-381.621 72.8741 81.6324 +-380.923 70.3508 78.8059 +-381.83 68.1345 76.3232 +-380.772 65.5795 73.4612 +-381.811 63.3964 71.0157 +-381.558 61.0041 68.3359 +-380.297 58.4697 65.4969 +-381.536 56.3295 63.0995 +-381.38 53.9855 60.4737 +-381.485 51.6873 57.8994 +-381.951 49.443 55.3853 +-380.716 46.9908 52.6384 +-380.727 44.7071 50.0803 +-381.495 42.5148 47.6244 +-380.161 40.0982 44.9174 +-381.068 37.9268 42.485 +-380.659 35.6273 39.9092 +-381.31 33.4312 37.4491 +-381.237 31.1733 34.9199 +-380.439 28.8661 32.3354 +-380.802 26.6541 29.8575 +-381.436 24.4592 27.3989 +-381.742 22.2416 24.9147 +-380.822 19.9596 22.3584 +-380.87 17.7364 19.868 +-381.088 15.5223 17.3878 +-381.476 13.314 14.9141 +-381.037 11.0791 12.4106 +-148.11 3.44439 3.85835 +-146.85 2.56086 2.86863 +-146.378 1.70153 1.90603 +-146.794 0.853128 0.955661 +96.5 -3.55271e-15 -1.7053e-13 +95.5964 0.561168 0.617313 +96.4853 1.13286 1.2462 +96.267 1.69566 1.86531 +96.5412 2.26772 2.4946 +96.4082 2.83139 3.11467 +96.4676 3.40071 3.74095 +96.4198 3.96685 4.36373 +96.3647 4.53268 4.98617 +96.3022 5.09816 5.60823 +96.1328 5.65739 6.22342 +96.0557 6.22148 6.84393 +96.9659 6.85538 7.54125 +95.979 7.35576 8.09171 +96.7732 7.9927 8.79237 +96.6659 8.56042 9.41689 +96.5511 9.12754 10.0407 +96.3301 9.68396 10.6528 +96.0033 10.228 11.2513 +95.867 10.7912 11.8708 +95.6248 11.3418 12.4765 +95.4741 11.9027 13.0936 +96.1995 12.5782 13.8366 +95.9346 13.129 14.4425 +95.8585 13.7056 15.0768 +95.677 14.2678 15.6953 +95.5857 14.844 16.3291 +95.2923 15.3888 16.9284 +96.0593 16.1103 17.7221 +96.6211 16.8083 18.4899 +95.6267 17.2355 18.9599 +96.2667 17.958 19.7547 +95.9339 18.5038 20.3551 +95.6902 19.0662 20.9738 +96.2043 19.7846 21.764 +96.0393 20.3688 22.4067 +95.7714 20.9317 23.0259 +95.4962 21.4931 23.6435 +96.8211 22.4251 24.6688 +95.7724 22.813 25.0954 +96.2245 23.5584 25.9154 +96.8519 24.3578 26.7948 +96.5322 24.9254 27.4192 +96.2052 25.4911 28.0415 +96.6126 26.2565 28.8834 +96.3606 26.8483 29.5345 +96.9292 27.6758 30.4447 +96.5664 28.2437 31.0695 +96.2877 28.8368 31.7219 +95.9099 29.4009 32.3425 +96.4311 30.2471 33.2733 +96.8474 31.0725 34.1813 +96.4406 31.6399 34.8054 +96.8319 32.4749 35.724 +96.3178 33.0115 36.3143 +95.8859 33.5756 36.9349 +96.2413 34.4214 37.8653 +96.4941 35.2418 38.7677 +95.9458 35.7743 39.3535 +96.2613 36.6342 40.2994 +96.6484 37.5342 41.2895 +96.8471 38.3732 42.2124 +96.1742 38.871 42.76 +96.4336 39.7503 43.7274 +96.5927 40.6 44.6621 +96.1466 41.2017 45.3239 +96.2794 42.0576 46.2654 +95.7301 42.6211 46.8853 +96.6658 43.8585 48.2465 +96.0931 44.4242 48.8689 +96.2504 45.3338 49.8694 +96.3099 46.2096 50.8329 +95.7067 46.7731 51.4528 +95.7394 47.6532 52.4209 +95.8363 48.5777 53.4379 +95.8371 49.4661 54.4151 +95.8221 50.358 55.3963 +95.8695 51.2954 56.4275 +95.2004 51.8562 57.0444 +95.2185 52.7982 58.0806 +95.8322 54.0901 59.5018 +95.8112 55.0438 60.5509 +95.7726 56.0012 61.6042 +95.6416 56.9179 62.6125 +95.4941 57.8372 63.6238 +95.4037 58.8045 64.6879 +95.2954 59.7752 65.7557 +95.7494 61.1194 67.2344 +95.6003 62.0997 68.3127 +95.5042 63.13 69.4461 +95.8837 64.4968 70.9496 +95.1134 65.1051 71.6189 +94.8209 66.048 72.6561 +95.1306 67.4318 74.1783 +94.9342 68.4791 75.3304 +95.1907 69.8769 76.868 +94.8827 70.8832 77.975 +95.1522 72.3442 79.5822 +94.8005 73.3572 80.6966 +95.0142 74.831 82.3178 +94.7469 75.953 83.552 +94.712 77.2848 85.0172 +94.6498 78.6221 86.4882 +94.809 80.1746 88.196 +94.2578 81.1519 89.2712 +94.6624 82.9829 91.2853 +94.0637 83.9656 92.3664 +93.9225 85.3796 93.9218 +93.9281 86.9617 95.6621 +93.8416 88.4953 97.3492 +94.3533 90.6411 99.7097 +94.1367 92.1337 101.352 +94.2799 94.0212 103.428 +93.8845 95.4122 104.958 +92.861 96.1851 105.808 +93.8125 99.0527 108.963 +93.6897 100.855 110.945 +93.8407 103.007 113.312 +93.3249 104.476 114.929 +93.5393 106.816 117.503 +93.6 109.051 119.962 +93.5112 111.177 122.301 +93.0834 112.957 124.258 +93.2845 115.568 127.131 +93.1901 117.893 129.688 +93.227 120.464 132.516 +92.8865 122.625 134.894 +92.9876 125.453 138.005 +92.8908 128.11 140.927 +92.7751 130.836 143.926 +92.9338 134.058 147.471 +92.9742 137.231 150.96 +92.6546 139.984 153.989 +92.6294 143.298 157.635 +92.5642 146.685 161.361 +92.3798 150.019 165.029 +92.4154 153.861 169.254 +92.1384 157.339 173.081 +91.9572 161.139 177.261 +91.9645 165.453 182.007 +91.7982 169.653 186.626 +91.5298 173.863 191.258 +89.4336 174.712 192.192 +88.3693 177.654 195.428 +87.9462 182.069 200.284 +90.4824 193.034 212.347 +88.8225 195.423 214.975 +86.7383 196.97 216.677 +83.2976 195.402 214.952 +80.8931 196.208 215.838 +77.8528 195.44 214.994 +75.4896 196.346 215.991 +72.3346 195.15 214.674 +70.0103 196.156 215.781 +66.9229 194.986 214.495 +64.6289 196.094 215.713 +61.7706 195.479 215.037 +59.3518 196.23 215.863 +56.4413 195.316 214.857 +53.9235 195.706 215.286 +51.1047 194.955 214.46 +48.7055 195.779 215.366 +45.9604 195.193 214.722 +43.5742 196.121 215.743 +40.8056 195.304 214.844 +38.3878 196.136 215.759 +35.598 195.018 214.53 +33.1572 195.754 215.34 +30.4491 194.871 214.368 +28.0349 195.846 215.44 +25.31 194.596 214.065 +22.8316 195.14 214.663 +20.2294 194.595 214.065 +17.8018 195.781 215.368 +15.1931 195.004 214.514 +12.6802 195.355 214.9 +10.0964 194.481 213.939 +7.60702 195.407 214.957 +5.04549 194.435 213.888 +2.5307 195.063 214.579 +2.22045e-14 194.465 213.921 +-2.53331 195.265 214.801 +-5.04724 194.503 213.962 +-7.59655 195.138 214.662 +-10.0685 193.943 213.347 +-12.654 194.952 214.457 +-15.1146 193.997 213.406 +-17.7285 194.975 214.482 +-20.1875 194.192 213.621 +-22.7531 194.469 213.925 +-25.2316 193.993 213.402 +-27.8336 194.44 213.894 +-30.2819 193.801 213.191 +-32.9648 194.618 214.09 +-35.4152 194.017 213.428 +-38.1528 194.935 214.438 +-40.4576 193.638 213.012 +-43.2047 194.457 213.913 +-45.5381 193.399 212.749 +-48.3094 194.186 213.615 +-50.7226 193.498 212.857 +-53.559 194.384 213.832 +-55.7735 193.005 212.315 +-58.7936 194.384 213.832 +-61.2092 193.703 213.083 +-63.828 193.664 213.041 +-66.3381 193.282 212.62 +-69.3333 194.259 213.695 +-71.6573 193.323 212.665 +-74.5882 194.001 213.411 +-77.0763 193.492 212.85 +-80.0112 194.069 213.485 +-82.1951 192.816 212.107 +-85.4318 194.003 213.413 +-87.77 193.108 212.429 +-90.7831 193.676 213.053 +-93.2922 193.136 212.459 +-96.5558 194.112 213.533 +-98.9076 193.22 212.551 +-102.078 193.9 213.299 +-104.59 193.293 212.632 +-107.654 193.68 213.058 +-110.27 193.229 212.562 +-113.432 193.701 213.08 +-116.016 193.153 212.477 +-119.321 193.769 213.156 +-111.788 177.148 194.872 +-111.729 172.846 190.139 +-113.398 171.323 188.464 +-114.621 169.182 186.108 +-117.15 168.991 185.898 +-118.391 166.961 183.665 +-121.166 167.106 183.825 +-123.954 167.231 183.962 +-138.331 182.619 200.89 +-144.158 186.275 204.912 +-146.334 185.125 203.647 +-151.689 187.924 206.726 +-1588.48 1927.62 2120.48 +-1613.43 1918.23 2110.15 +-167.35 194.975 214.483 +-449.222 512.986 564.311 +-450.864 504.737 555.236 +-451.961 496.107 545.742 +-454.035 488.757 537.657 +-455.146 480.57 528.651 +-1784.51 1848.39 2033.32 +-458.273 465.73 512.326 +-461.278 460.011 506.035 +-468.588 458.617 504.501 +-481.231 462.296 508.548 +-487.849 460.055 506.083 +-486.627 450.535 495.611 +-485.851 441.659 485.847 +-488.132 435.728 479.323 +-489.87 429.431 472.396 +-491.667 423.306 465.658 +-493.343 417.193 458.933 +-477.843 396.926 436.638 +-479.73 391.458 430.624 +-482.798 387.03 425.752 +-483.774 381.01 419.13 +-485.68 375.821 413.422 +-487.755 370.839 407.942 +-490.071 366.113 402.742 +-491.019 360.445 396.507 +-493.903 356.27 391.914 +-142.145 100.757 110.838 +-142.752 99.4347 109.383 +-142.845 97.7773 107.56 +-143.401 96.4596 106.11 +-142.507 94.2001 103.625 +-142.861 92.799 102.083 +-142.391 90.892 99.9857 +-147.514 92.5299 101.787 +-148.783 91.7059 100.881 +-514.182 311.42 342.578 +-515.806 306.964 337.676 +-518.033 302.91 333.216 +-520.042 298.766 328.657 +-522.289 294.794 324.288 +-524.01 290.561 319.632 +-526.827 286.966 315.677 +-528.495 282.774 311.065 +-530.725 278.916 306.821 +-532.737 274.97 302.481 +-534.846 271.105 298.229 +-537.218 267.394 294.147 +-539.453 263.637 290.014 +-2667.45 1279.84 1407.89 +-384.674 181.181 199.308 +-383.796 177.43 195.182 +-381.855 173.252 190.586 +-2732.23 1216.44 1338.15 +-381.595 166.692 183.369 +-384.08 164.59 181.057 +-382.809 160.903 177.002 +-383.688 158.158 173.981 +-135.518 54.7727 60.2527 +-134.156 53.1558 58.474 +-2837.53 1101.98 1212.23 +-382.608 145.609 160.177 +-382.209 142.51 156.768 +-382.988 139.876 153.871 +-383.464 137.149 150.87 +-562.631 197.012 216.723 +-565.165 193.702 213.082 +-379.631 127.318 140.057 +-382.347 125.439 137.989 +-382.155 122.61 134.878 +-383.096 120.164 132.186 +-381.547 116.962 128.664 +-381.04 114.116 125.533 +-381.222 111.499 122.655 +-380.905 108.758 119.64 +-382.024 106.441 117.091 +-382.741 104.018 114.425 +-382.029 101.225 111.352 +-381.648 98.5448 108.404 +-381.507 95.947 105.546 +-378.414 92.6463 101.916 +-603.385 143.726 158.106 +-377.546 87.4446 96.1934 +-381.321 85.8229 94.4094 +-381.849 83.4564 91.8062 +-381.773 80.9696 89.0706 +-381.374 78.4304 86.2773 +-381.227 75.9597 83.5594 +-381.813 73.6444 81.0125 +-380.634 71.0049 78.1089 +-380.865 68.6459 75.5139 +-380.772 66.2395 72.8667 +-381.423 63.9693 70.3694 +-381.558 61.618 67.7829 +-381.563 59.2548 65.1832 +-380.755 56.7798 62.4607 +-381.184 54.5008 59.9535 +-381.387 52.1941 57.4161 +-381.362 49.8635 54.8524 +-381.503 47.5618 52.3203 +-381.219 45.2154 49.7392 +-381.791 42.9759 47.2757 +-381.248 40.6175 44.6812 +-381.068 38.3084 42.1412 +-380.56 35.9765 39.5759 +-380.715 33.7149 37.0881 +-379.847 31.3723 34.5111 +-380.737 29.1795 32.0989 +-382.195 27.0208 29.7242 +-380.739 24.6602 27.1275 +-381.941 22.4771 24.726 +-381.321 20.1868 22.2065 +-381.468 17.943 19.7382 +-380.289 15.6456 17.211 +-380.977 13.4304 14.7741 +-380.338 11.1701 12.2876 +-147.81 3.47201 3.81938 +-148.749 2.62008 2.88222 +-147.178 1.72805 1.90094 +-147.394 0.865231 0.951797 +96.5 -3.55271e-15 -1.7053e-13 +96.4963 0.57205 0.617989 +96.4853 1.14406 1.23593 +96.4669 1.71598 1.85378 +96.2413 2.28302 2.46636 +96.4082 2.85938 3.089 +96.4676 3.43432 3.71012 +96.4198 4.00605 4.32777 +96.2649 4.57274 4.93996 +96.2025 5.14322 5.55625 +96.1328 5.71331 6.17212 +96.0557 6.28297 6.78753 +96.9659 6.92313 7.4791 +96.7739 7.49001 8.0915 +96.7732 8.0717 8.71991 +96.5667 8.6362 9.32974 +97.3434 9.29336 10.0397 +96.3301 9.77967 10.565 +96.2008 10.3504 11.1816 +95.867 10.8978 11.773 +95.7233 11.4657 12.3865 +95.4741 12.0204 12.9857 +96.1013 12.6895 13.7086 +95.9346 13.2587 14.3235 +95.8585 13.841 14.9526 +95.677 14.4088 15.5659 +95.4883 14.9754 16.178 +96.2646 15.6995 16.9602 +96.0593 16.2695 17.5761 +95.8466 16.8383 18.1905 +96.496 17.5641 18.9746 +95.4958 17.9902 19.4349 +95.9339 18.6867 20.1874 +96.5531 19.4283 20.9885 +96.2999 19.9999 21.6061 +96.0393 20.5701 22.222 +95.7714 21.1386 22.8362 +96.3497 21.8995 23.6582 +95.9701 22.4477 24.2504 +96.4322 23.1972 25.06 +96.2245 23.7912 25.7018 +96.8519 24.5986 26.574 +96.5322 25.1718 27.1932 +96.9495 25.9422 28.0255 +96.7053 26.5414 28.6729 +96.3606 27.1137 29.2911 +96.1007 27.7104 29.9357 +96.5664 28.5228 30.8134 +96.2877 29.1218 31.4604 +96.8199 29.9732 32.3803 +96.4311 30.546 32.999 +96.7571 31.3504 33.8681 +96.4406 31.9526 34.5186 +95.937 32.4928 35.1021 +96.3178 33.3378 36.015 +96.5955 34.1584 36.9015 +96.153 34.7298 37.5188 +96.4941 35.5901 38.4482 +96.0332 36.1608 39.0647 +96.2613 36.9963 39.9673 +95.869 37.5995 40.619 +96.0717 38.4422 41.5293 +96.2599 39.2901 42.4454 +96.4336 40.1432 43.367 +96.5927 41.0013 44.294 +96.0623 41.5723 44.9109 +96.2794 42.4732 45.8841 +95.7301 43.0423 46.4989 +95.9196 43.95 47.4795 +96.0931 44.8633 48.4661 +96.2504 45.7818 49.4584 +96.3099 46.6663 50.4139 +95.6258 47.1955 50.9856 +95.7394 48.1242 51.9889 +95.8363 49.0579 52.9975 +95.9164 49.9963 54.0113 +95.8221 50.8557 54.9397 +95.7912 51.7601 55.9168 +95.8221 52.7107 56.9438 +95.8358 53.6656 57.9753 +95.7556 54.5811 58.9643 +95.7351 55.5437 60.0042 +95.7726 56.5547 61.0964 +95.6416 57.4804 62.0965 +95.5684 58.4543 63.1485 +95.4037 59.3857 64.1548 +95.3685 60.4123 65.2638 +95.1691 61.3494 66.2761 +95.5283 62.6662 67.6987 +95.5042 63.7539 68.8738 +95.2473 64.7019 69.8979 +95.6741 66.1362 71.4473 +95.4461 67.1406 72.5324 +95.1994 68.1471 73.6198 +94.866 69.1063 74.656 +95.3258 70.668 76.3431 +94.8827 71.5837 77.3324 +94.5559 72.6013 78.4317 +94.8661 74.1332 80.0865 +95.0142 75.5706 81.6394 +95.1968 77.0677 83.2568 +95.2845 78.5201 84.8258 +94.6498 79.3991 85.7754 +94.7467 80.914 87.4119 +94.1962 81.901 88.4782 +94.6624 83.803 90.533 +94.0637 84.7955 91.6051 +93.9225 86.2234 93.1477 +93.8693 87.7661 94.8143 +94.3642 89.8679 97.0848 +94.296 91.4812 98.8278 +94.1934 93.1 100.577 +94.0003 94.6685 102.271 +93.0566 95.5054 103.175 +89.9744 94.1162 101.674 +90.2126 96.1929 103.918 +93.3718 101.506 109.657 +93.893 104.082 112.441 +93.3764 105.567 114.044 +93.4886 107.814 116.472 +93.6 110.129 118.973 +93.0681 111.744 120.717 +92.9865 113.955 123.106 +93.3323 116.77 126.148 +93.1901 119.058 128.619 +92.9038 121.233 130.969 +93.295 124.382 134.371 +93.0322 126.754 136.933 +92.8908 129.376 139.766 +92.7321 132.068 142.674 +92.8915 135.321 146.189 +93.0157 138.649 149.783 +92.6139 141.305 152.652 +92.5895 144.652 156.268 +92.5251 148.072 159.963 +92.418 151.564 163.736 +92.378 155.319 167.792 +92.1018 158.831 171.586 +91.9931 162.795 175.869 +91.9645 167.088 180.507 +91.8324 171.393 185.157 +90.929 174.429 188.437 +89.8243 177.209 191.44 +87.6713 177.993 192.287 +90.2021 188.584 203.728 +90.3922 194.748 210.387 +88.2963 196.186 211.941 +85.8294 196.832 212.639 +82.6912 195.897 211.629 +80.3586 196.838 212.645 +77.2057 195.732 211.451 +74.7134 196.248 212.008 +71.8992 195.892 211.624 +69.3333 196.179 211.933 +66.518 195.722 211.44 +64.0228 196.175 211.929 +61.1884 195.551 211.255 +58.8534 196.505 212.286 +55.9643 195.579 211.285 +53.6319 196.572 212.358 +50.7921 195.678 211.392 +48.3424 196.239 211.999 +45.5694 195.445 211.141 +43.2047 196.379 212.15 +40.4437 195.485 211.183 +38.0484 196.323 212.089 +35.3543 195.598 211.305 +32.8629 195.934 211.669 +30.2923 195.784 211.506 +27.7761 195.956 211.693 +25.1444 195.233 210.912 +22.6825 195.782 211.504 +20.1178 195.434 211.128 +17.6125 195.614 211.323 +15.0414 194.964 210.621 +12.5755 195.657 211.37 +10.0336 195.181 210.855 +7.53634 195.504 211.205 +5.01582 195.202 210.878 +2.51586 195.836 211.563 +2.22045e-14 195.232 210.91 +-2.50888 195.293 210.976 +-5.00186 194.659 210.291 +-7.52587 195.233 210.911 +-10.0057 194.638 210.268 +-12.5493 195.25 210.93 +-15.0518 195.1 210.768 +-17.6125 195.614 211.323 +-20.062 194.892 210.543 +-22.6433 195.443 211.138 +-25.0573 194.557 210.181 +-27.6515 195.077 210.743 +-30.0728 194.365 209.974 +-32.7723 195.394 211.086 +-35.1959 194.721 210.358 +-37.8395 195.246 210.925 +-40.1932 194.274 209.875 +-42.8647 194.835 210.481 +-45.3191 194.371 209.981 +-47.9298 194.564 210.189 +-50.4274 194.273 209.874 +-53.0488 194.435 210.049 +-55.4682 193.846 209.413 +-58.2752 194.574 210.2 +-60.7726 194.222 209.819 +-63.4601 194.451 210.066 +-65.7757 193.538 209.08 +-68.703 194.395 210.006 +-71.1734 193.915 209.487 +-74.1125 194.67 210.303 +-76.3775 193.632 209.182 +-79.2896 194.219 209.816 +-81.7816 193.742 209.3 +-84.6934 194.227 209.824 +-87.3022 193.977 209.555 +-90.332 194.619 210.248 +-92.5197 193.429 208.963 +-95.7308 194.355 209.963 +-98.3541 194.037 209.62 +-101.31 194.344 209.951 +-103.872 193.863 209.432 +-106.743 193.94 209.515 +-109.302 193.426 208.96 +-112.443 193.909 209.481 +-115.192 193.676 209.229 +-117.713 193.048 208.551 +-111.593 178.586 192.928 +-112.328 175.489 189.582 +-113.846 173.699 187.648 +-114.953 171.348 185.109 +-117.488 171.153 184.898 +-119.036 169.531 183.145 +-122.218 170.223 183.893 +-125.114 170.465 184.154 +-143.279 191.022 206.362 +-143.281 186.971 201.986 +-145.02 185.275 200.154 +-150.162 187.871 202.958 +-157.418 192.915 208.407 +-163.435 196.231 211.99 +-163.7 192.608 208.076 +-449.882 518.817 560.482 +-450.864 509.725 550.66 +-452.85 501.994 542.308 +-454.459 494.048 533.724 +-1760.46 1877.17 2027.92 +-1784.51 1866.66 2016.56 +-459.488 471.58 509.451 +-463.459 466.754 504.237 +-473.232 467.74 505.302 +-483.468 469.034 506.701 +-484.713 461.616 498.686 +-488.097 456.362 493.011 +-486.862 446.953 482.846 +-488.614 440.469 475.842 +-490.662 434.376 469.26 +-492.406 428.132 462.514 +-481.64 411.321 444.353 +-478.913 401.746 434.009 +-480.303 395.799 427.585 +-482.541 390.647 422.019 +-484.099 385.034 415.955 +-486.271 379.997 410.513 +-488.351 374.962 405.074 +-490.673 370.185 399.914 +-491.424 364.308 393.564 +-494.517 360.238 389.168 +-141.113 101.014 109.126 +-142.544 100.271 108.324 +-143.827 99.4223 107.407 +-143.048 97.1731 104.977 +-142.721 95.2738 102.925 +-142.645 93.5748 101.09 +-143.334 92.3983 99.8185 +-148.538 94.0931 101.649 +-512.629 319.095 344.72 +-514.851 314.908 340.197 +-516.854 310.628 335.574 +-518.938 306.438 331.047 +-520.574 302.027 326.282 +-523.208 298.231 322.181 +-524.936 293.951 317.557 +-527.294 290.059 313.352 +-529.591 286.161 309.142 +-531.907 282.299 304.97 +-533.847 278.267 300.614 +-535.805 274.275 296.301 +-537.941 270.4 292.115 +-540.666 266.842 288.271 +-2667.45 1292.49 1396.29 +-2683.95 1276.63 1379.15 +-382.807 178.722 193.075 +-549.072 251.582 271.786 +-551.532 247.981 267.895 +-380.924 168.043 181.538 +-382.562 165.559 178.855 +-382.639 162.422 175.465 +-383.944 159.827 172.663 +-563.159 229.863 248.322 +-135.534 54.2328 58.588 +-546.202 214.219 231.422 +-383.74 147.484 159.328 +-382.209 143.919 155.476 +-380.704 140.416 151.692 +-381.522 137.803 148.869 +-563.429 199.242 215.242 +-565.967 195.894 211.626 +-381.868 129.335 139.721 +-381.898 126.53 136.691 +-381.794 123.705 133.64 +-380.921 120.662 130.352 +-382.093 118.287 127.786 +-381.862 115.493 124.767 +-382.506 112.981 122.054 +-381.273 109.939 118.768 +-382.301 107.571 116.209 +-381.536 104.715 113.125 +-382.309 102.3 110.515 +-381.648 99.5188 107.511 +-381.694 96.9435 104.729 +-378.884 93.6781 101.201 +-603.95 145.283 156.95 +-375.56 87.8449 94.8994 +-381.795 86.7791 93.748 +-381.564 84.2188 90.9821 +-380.438 81.4839 88.0276 +-381.087 79.1457 85.5016 +-380.46 76.5556 82.7035 +-381.044 74.2228 80.1834 +-381.79 71.9247 77.7008 +-381.541 69.448 75.0251 +-381.257 66.9791 72.358 +-380.647 64.47 69.6474 +-380.586 62.0684 67.0529 +-380.004 59.596 64.3819 +-381.048 57.3852 61.9936 +-380.988 55.0111 59.4289 +-381.681 52.7506 56.9868 +-380.479 50.2397 54.2743 +-382.29 48.1309 51.9961 +-380.037 45.5207 49.1763 +-380.41 43.2438 46.7165 +-381.248 41.0189 44.313 +-381.463 38.7272 41.8372 +-380.56 36.332 39.2497 +-381.805 34.1456 36.8877 +-380.641 31.7486 34.2982 +-381.035 29.4909 31.8592 +-381.001 27.2027 29.3872 +-380.64 24.8975 26.8969 +-381.244 22.6579 24.4774 +-380.324 20.333 21.9659 +-381.468 18.1204 19.5756 +-380.19 15.7961 17.0647 +-380.178 13.5347 14.6216 +-380.837 11.2953 12.2023 +-146.311 3.47076 3.74949 +-148.749 2.64598 2.85847 +-146.878 1.74157 1.88143 +-146.094 0.866079 0.935631 +95.7 0 -1.7053e-13 +95.5964 0.572214 0.607088 +96.4853 1.15516 1.22556 +96.4669 1.73263 1.83822 +96.4412 2.30996 2.45074 +96.4082 2.88713 3.06308 +96.3678 3.46407 3.67518 +96.32 4.04074 4.287 +96.2649 4.61712 4.8985 +96.2025 5.19313 5.50962 +97.0294 5.82256 6.17741 +96.9516 6.40311 6.79334 +96.0708 6.92578 7.34786 +95.979 7.50056 7.95767 +96.7732 8.15003 8.64673 +96.6659 8.72893 9.26091 +96.5511 9.30721 9.87443 +96.3301 9.87459 10.4764 +96.0033 10.4293 11.0649 +95.867 11.0036 11.6742 +95.6248 11.565 12.2699 +96.359 12.2495 12.996 +96.1995 12.8258 13.6075 +95.9346 13.3874 14.2033 +95.8585 13.9754 14.8271 +95.677 14.5486 15.4353 +95.4883 15.1207 16.0423 +96.2646 15.8518 16.8179 +96.0593 16.4274 17.4286 +95.8466 17.0017 18.0379 +96.5926 17.7523 18.8342 +96.2667 18.3115 19.4274 +95.9339 18.8681 20.018 +95.6902 19.4415 20.6264 +96.2999 20.194 21.4248 +96.0393 20.7697 22.0355 +95.7714 21.3437 22.6445 +96.3497 22.1121 23.4597 +96.0647 22.6879 24.0706 +96.5265 23.4452 24.874 +96.2245 24.0221 25.4861 +96.8519 24.8373 26.351 +96.5322 25.4161 26.965 +96.9495 26.194 27.7904 +96.7053 26.799 28.4323 +96.3606 27.3768 29.0453 +96.1007 27.9793 29.6845 +96.6581 28.827 30.5839 +96.2877 29.4044 31.1964 +95.9099 29.9797 31.8068 +96.5218 30.8714 32.7528 +96.8474 31.6842 33.6152 +95.5418 31.962 33.91 +96.7424 33.0836 35.0998 +96.3178 33.6614 35.7128 +96.5955 34.4899 36.5919 +96.2413 35.099 37.2381 +96.4941 35.9355 38.1256 +96.1207 36.545 38.7722 +96.3484 37.3891 39.6678 +95.7824 37.9301 40.2417 +96.761 39.0938 41.4763 +96.1742 39.6361 42.0517 +96.3483 40.4969 42.965 +96.6775 41.4356 43.9609 +96.1466 42.0127 44.5731 +96.2794 42.8854 45.4991 +96.4806 43.8008 46.4702 +95.9196 44.3766 47.0811 +96.0931 45.2987 48.0594 +96.2504 46.2262 49.0434 +96.3099 47.1192 49.9909 +95.6258 47.6535 50.5577 +95.7394 48.5913 51.5526 +95.8363 49.534 52.5528 +95.9164 50.4815 53.5581 +95.9009 51.3915 54.5235 +95.8695 52.3051 55.4928 +95.8221 53.2223 56.4659 +95.8358 54.1865 57.4888 +95.8322 55.1548 58.5162 +95.7351 56.0827 59.5006 +95.7726 57.1036 60.5837 +95.6416 58.0383 61.5754 +95.5684 59.0216 62.6186 +95.4037 59.9621 63.6164 +95.9536 61.3728 65.1132 +95.1691 61.9448 65.72 +95.5283 63.2744 67.1306 +95.4329 64.3246 68.2448 +95.2473 65.3298 69.3113 +95.0433 66.3378 70.3807 +94.8209 67.3482 71.4526 +95.1306 68.7591 72.9496 +94.866 69.777 74.0295 +95.1907 71.2524 75.5948 +94.8827 72.2785 76.6834 +95.086 73.7168 78.2094 +94.8005 74.8012 79.3599 +95.0142 76.304 80.9543 +94.5541 77.2903 82.0007 +94.7757 78.859 83.665 +94.6498 80.1697 85.0556 +94.7467 81.6993 86.6784 +94.7503 83.1822 88.2516 +94.1754 84.1815 89.3119 +94.0637 85.6185 90.8364 +93.982 87.1151 92.4243 +93.8693 88.6179 94.0187 +93.8997 90.2929 95.7957 +93.8945 91.9754 97.5807 +94.25 94.0605 99.7929 +94.0562 95.6442 101.473 +92.3391 95.6888 101.52 +90.1378 95.2025 101.005 +88.4395 95.2176 101.021 +92.6299 101.677 107.873 +93.4227 104.566 110.939 +93.4279 106.65 113.15 +93.4886 108.86 115.494 +93.55 111.138 117.911 +93.0681 112.828 119.704 +93.4713 115.661 122.71 +93.3323 117.904 125.089 +93.0962 120.093 127.412 +93.3194 122.957 130.451 +93.3858 125.711 133.373 +93.0322 127.984 135.784 +92.8908 130.632 138.593 +92.7321 133.35 141.477 +92.9338 136.697 145.028 +92.6425 139.433 147.93 +92.8986 143.115 151.837 +92.5895 146.056 154.957 +92.4861 149.445 158.553 +92.3798 152.972 162.295 +92.4154 156.889 166.451 +92.1018 160.372 170.146 +92.2797 164.888 174.937 +91.9645 168.71 178.992 +91.7982 172.992 183.535 +90.8288 175.928 186.65 +89.5964 178.475 189.352 +87.2271 178.809 189.707 +90.6347 191.328 202.988 +90.5124 196.9 208.9 +88.0039 197.434 209.467 +85.3182 197.558 209.598 +82.5258 197.403 209.433 +79.9577 197.756 209.809 +77.0504 197.234 209.254 +74.5131 197.621 209.665 +71.754 197.394 209.424 +68.9131 196.883 208.882 +66.3606 197.154 209.169 +63.6765 197.007 209.014 +61.1884 197.449 209.482 +58.5145 197.269 209.292 +55.8307 197.006 209.012 +53.3039 197.265 209.288 +50.6532 197.036 209.045 +48.1609 197.4 209.43 +45.5537 197.274 209.297 +43.0569 197.607 209.65 +40.3184 196.771 208.763 +37.7873 196.868 208.866 +35.2812 197.087 209.098 +32.6704 196.678 208.664 +30.1983 197.07 209.08 +27.6803 197.175 209.192 +25.0573 196.445 208.417 +22.5884 196.861 208.859 +20.048 196.647 208.631 +17.5576 196.896 208.896 +15.0571 197.062 209.072 +12.497 196.322 208.287 +10.0022 196.458 208.431 +7.50493 196.579 208.56 +4.99837 196.411 208.381 +2.50015 196.502 208.478 +2.13163e-14 196.578 208.558 +-2.50277 196.708 208.696 +-4.98964 196.068 208.017 +-7.50231 196.511 208.487 +-10.0057 196.527 208.504 +-12.51 196.528 208.505 +-14.9733 195.966 207.909 +-17.5026 196.28 208.242 +-20.0201 196.373 208.341 +-22.5648 196.656 208.641 +-24.9788 195.83 207.764 +-27.5557 196.287 208.25 +-30.0624 196.183 208.139 +-32.5912 196.2 208.157 +-35.0862 195.998 207.943 +-37.5785 195.78 207.712 +-40.2071 196.227 208.186 +-42.7169 196.047 207.995 +-45.1783 195.648 207.572 +-47.7813 195.844 207.78 +-50.2711 195.551 207.468 +-52.7936 195.377 207.284 +-55.4682 195.727 207.655 +-57.9563 195.387 207.295 +-60.4399 195.033 206.92 +-63.0921 195.199 207.096 +-65.7757 195.416 207.326 +-68.4695 195.615 207.537 +-71.1734 195.797 207.73 +-73.6618 195.363 207.27 +-76.3775 195.512 207.427 +-78.8086 194.915 206.794 +-81.5335 195.029 206.915 +-84.2674 195.125 207.017 +-87.0683 195.335 207.24 +-89.7607 195.265 207.165 +-92.5815 195.437 207.348 +-95.2549 195.266 207.166 +-97.7681 194.753 206.622 +-100.876 195.389 207.297 +-103.769 195.551 207.469 +-106.533 195.437 207.348 +-109.266 195.24 207.139 +-112.113 195.217 207.114 +-114.892 195.046 206.933 +-115.8 191.754 203.44 +-111.671 180.446 191.443 +-112.487 177.444 188.258 +-113.886 175.448 186.14 +-115.741 174.197 184.814 +-117.403 172.69 183.214 +-119.682 172.105 182.593 +-122.525 172.306 182.807 +-126.185 173.592 184.171 +-143.37 192.998 204.76 +-143.188 188.664 200.162 +-144.926 186.952 198.346 +-149.542 188.91 200.423 +-155.866 192.867 204.622 +-162.795 197.36 209.388 +-165.3 196.378 208.346 +-449.882 523.853 555.778 +-451.637 515.555 546.975 +-453.059 507.1 538.005 +-454.936 499.367 529.8 +-456.114 491.071 520.999 +-458.096 483.836 513.323 +-459.322 475.985 504.994 +-464.969 472.82 501.635 +-475.895 474.936 503.881 +-485.475 475.553 504.535 +-489.416 470.619 499.301 +-487.098 459.847 487.872 +-487.219 451.621 479.145 +-489.215 445.292 472.43 +-490.479 438.429 465.149 +-492.652 432.503 458.862 +-479.212 413.22 438.403 +-478.913 405.645 430.367 +-480.939 400.17 424.558 +-483.119 394.911 418.979 +-484.943 389.449 413.184 +-486.927 384.202 407.617 +-488.947 379.064 402.166 +-490.473 373.625 396.396 +-492.708 368.804 391.281 +-140.151 103.086 109.368 +-142.489 102.989 109.265 +-143.1 101.639 107.833 +-144.247 100.681 106.817 +-143.189 98.2129 104.198 +-142.864 96.2945 102.163 +-143.436 95.007 100.797 +-145.945 94.9947 100.784 +-148.977 95.2869 101.094 +-512.481 322.099 341.729 +-515.148 318.147 337.536 +-516.854 313.643 332.758 +-519.467 309.727 328.603 +-521.486 305.492 324.11 +-523.668 301.39 319.758 +-524.936 296.804 314.893 +-527.993 293.262 311.135 +-529.591 288.938 306.547 +-531.907 285.039 302.41 +-533.609 280.843 297.958 +-536.284 277.184 294.077 +-538.343 273.229 289.881 +-541.394 269.795 286.237 +-386.705 189.194 200.724 +-2683.95 1289.02 1367.58 +-385.361 181.661 192.732 +-2716.34 1256.7 1333.29 +-551.782 250.501 265.768 +-381.427 169.898 180.252 +-384.08 167.829 178.058 +-384.929 164.979 175.033 +-383.603 161.235 171.062 +-563.845 232.376 246.538 +-136.224 55.0376 58.3918 +-545.683 216.092 229.261 +-381.477 148.036 157.058 +-381.072 144.883 153.713 +-381.758 142.171 150.836 +-381.61 139.173 147.654 +-564.316 201.492 213.772 +-565.433 197.608 209.651 +-383.032 130.988 138.971 +-380.729 127.367 135.129 +-381.342 124.759 132.362 +-381.193 121.92 129.351 +-382.093 119.435 126.714 +-381.862 116.613 123.72 +-381.589 113.803 120.739 +-382.286 111.301 118.084 +-382.856 108.772 115.401 +-382.463 105.988 112.448 +-382.122 103.243 109.535 +-382.208 100.632 106.765 +-381.413 97.8117 103.773 +-381.139 95.1497 100.949 +-605.082 146.968 155.925 +-376.978 89.0322 94.4582 +-381.89 87.6432 92.9846 +-380.518 84.8029 89.9712 +-380.915 82.3776 87.3981 +-381.566 80.014 84.8904 +-381.227 77.4549 82.1754 +-381.14 74.9617 79.5302 +-380.634 72.4026 76.8151 +-381.154 70.0507 74.3199 +-382.031 67.7666 71.8965 +-382.005 65.3281 69.3094 +-381.461 62.8149 66.6431 +-380.004 60.1744 63.8416 +-381.732 58.046 61.5836 +-380.01 55.4024 58.7789 +-381.093 53.1805 56.4215 +-380.184 50.688 53.7771 +-381.503 48.498 51.4537 +-381.416 46.1293 48.9406 +-381.397 43.7766 46.4446 +-381.544 41.4492 43.9753 +-381.167 39.0726 41.4539 +-381.055 36.7324 38.971 +-381.012 34.4054 36.5022 +-380.344 32.0316 33.9837 +-380.637 29.7461 31.559 +-380.504 27.4308 29.1026 +-380.64 25.1391 26.6712 +-380.945 22.8599 24.253 +-380.125 20.5196 21.7702 +-380.571 18.2532 19.3656 +-379.89 15.9369 16.9081 +-380.078 13.6625 14.4951 +-381.237 11.4169 12.1127 +-147.01 3.5212 3.7358 +-147.749 2.6537 2.81543 +-146.778 1.75728 1.86437 +-145.794 0.872687 0.925873 +95.6 3.55271e-15 1.13687e-13 +96.4963 0.583106 0.607567 +96.4853 1.16617 1.21509 +96.4669 1.74914 1.82252 +96.4412 2.33198 2.4298 +96.4082 2.91464 3.03691 +96.3678 3.49708 3.64378 +96.32 4.07925 4.25038 +96.2649 4.66112 4.85665 +96.3022 5.24806 5.46821 +97.0294 5.87805 6.12463 +96.9516 6.46414 6.7353 +96.0708 6.99178 7.28508 +95.979 7.57204 7.88968 +95.9792 8.1602 8.50251 +96.6659 8.81212 9.18178 +96.5511 9.39592 9.79007 +96.3301 9.9687 10.3869 +96.0033 10.5287 10.9704 +95.7683 11.097 11.5625 +95.6248 11.6753 12.165 +95.4741 12.2527 12.7667 +95.2178 12.8159 13.3535 +96.0326 13.5288 14.0964 +95.8585 14.1086 14.7004 +95.677 14.6873 15.3034 +95.4883 15.2648 15.9052 +96.2646 16.0029 16.6742 +96.0593 16.584 17.2797 +95.9434 17.1812 17.9019 +96.496 17.9036 18.6546 +96.2667 18.486 19.2615 +96.03 19.067 19.8668 +96.5531 19.8038 20.6346 +96.2999 20.3865 21.2417 +96.0393 20.9677 21.8472 +96.6273 21.7397 22.6517 +96.3497 22.3228 23.2593 +96.8211 23.0845 24.0529 +96.4322 23.6455 24.6374 +96.1306 24.2274 25.2437 +96.9456 25.0983 26.1512 +96.4389 25.6335 26.7088 +96.9495 26.4436 27.5529 +96.6126 27.0285 28.1623 +96.3606 27.6377 28.7971 +96.1007 28.246 29.4309 +96.5664 29.0741 30.2938 +96.2877 29.6847 30.9299 +96.8199 30.5525 31.8342 +96.4311 31.1364 32.4426 +96.8474 31.9862 33.328 +96.3507 32.5398 33.9049 +96.7424 33.3989 34.7999 +96.3178 33.9822 35.4077 +95.8859 34.5628 36.0127 +96.2413 35.4335 36.9199 +96.4062 36.245 37.7654 +96.0332 36.8597 38.406 +96.2613 37.7113 39.2933 +96.5618 38.6032 40.2226 +95.9855 39.1501 40.7924 +96.1742 40.0139 41.6924 +96.3483 40.8829 42.5979 +96.6775 41.8305 43.5853 +96.1466 42.4131 44.1923 +96.2794 43.2942 45.1103 +96.4806 44.2182 46.0731 +95.9196 44.7995 46.6788 +96.0931 45.7304 47.6488 +95.5131 46.3093 48.2519 +95.5772 47.2064 49.1866 +96.4348 48.5147 50.5499 +95.7394 49.0544 51.1122 +95.8363 50.0061 52.1038 +95.9164 50.9627 53.1005 +95.9009 51.8813 54.0577 +95.8695 52.8036 55.0187 +95.8221 53.7296 55.9835 +95.8358 54.7029 56.9977 +95.2193 55.3244 57.6453 +95.7351 56.6172 58.9923 +95.7726 57.6478 60.0661 +95.6416 58.5914 61.0493 +95.4941 59.5378 62.0353 +96.0672 60.9546 63.5115 +95.8805 61.9105 64.5076 +95.7494 62.9165 65.5558 +95.6003 63.9256 66.6072 +95.3616 64.8891 67.6111 +95.2473 65.9525 68.7191 +95.1134 67.0194 69.8308 +95.5155 68.4881 71.3611 +95.1306 69.4144 72.3263 +94.866 70.442 73.397 +95.1907 71.9314 74.9489 +95.4849 73.4306 76.5109 +95.1522 74.4713 77.5953 +94.8661 75.566 78.736 +95.0792 77.0838 80.3174 +94.6183 78.0803 81.3557 +94.712 79.5572 82.8946 +94.7127 80.9871 84.3844 +94.809 82.5319 85.9941 +94.2578 83.538 87.0424 +94.2363 85.0385 88.6058 +94.1239 86.4899 90.118 +93.9225 87.89 91.5769 +93.9869 89.5747 93.3322 +93.8997 91.1534 94.9772 +94.4107 93.3623 97.2787 +94.25 94.957 98.9403 +94.0003 96.4983 100.546 +92.2287 96.4852 100.533 +90.1378 96.1099 100.142 +87.7948 95.4243 99.4273 +92.3119 102.293 106.584 +93.8407 106.035 110.483 +93.3764 107.607 112.121 +93.5393 109.957 114.57 +93.55 112.197 116.904 +93.5112 114.446 119.247 +92.9865 116.157 121.03 +93.3323 119.027 124.02 +93.1432 121.299 126.387 +93.3194 124.129 129.336 +92.9319 126.292 131.59 +92.9876 129.142 134.559 +92.8908 131.877 137.409 +93.1196 135.183 140.854 +92.8915 137.937 143.723 +92.9742 141.266 147.192 +92.5326 143.91 149.947 +92.5895 147.448 153.633 +92.5251 150.934 157.266 +92.418 154.494 160.975 +92.378 158.321 164.962 +92.1384 161.965 168.759 +91.9572 165.877 172.836 +92.0345 170.448 177.598 +91.7982 174.641 181.967 +90.7955 177.539 184.986 +89.3685 179.718 187.257 +86.9097 179.857 187.402 +90.6347 193.151 201.254 +90.3922 198.512 206.839 +88.0039 199.316 207.677 +85.3182 199.441 207.807 +82.3053 198.751 207.089 +79.7439 199.107 207.46 +76.9987 198.98 207.327 +74.2877 198.901 207.245 +71.7782 199.343 207.705 +69.1232 199.365 207.728 +66.3831 199.1 207.453 +63.6332 198.75 207.087 +61.0429 198.856 207.198 +58.5743 199.353 207.716 +55.8307 198.884 207.227 +53.2674 199.009 207.357 +50.6705 198.983 207.33 +48.1444 199.213 207.57 +45.4129 198.539 206.867 +42.9239 198.874 207.217 +40.2906 198.509 206.836 +37.8134 198.882 207.225 +35.269 198.897 207.24 +32.6931 198.69 207.025 +30.0937 198.26 206.577 +27.6898 199.123 207.476 +25.0747 198.455 206.78 +22.4942 197.909 206.211 +20.041 198.452 206.776 +17.5576 198.773 207.111 +15.0047 198.249 206.565 +12.5057 198.332 206.652 +10.0057 198.4 206.722 +7.48137 197.83 206.129 +4.99837 198.283 206.6 +2.50103 198.444 206.769 +2.39808e-14 197.898 206.199 +-2.5019 198.513 206.841 +-4.98615 197.798 206.095 +-7.50493 198.453 206.778 +-9.97428 197.777 206.074 +-12.51 198.401 206.724 +-14.9524 197.557 205.844 +-17.4843 197.943 206.247 +-20.0062 198.106 206.416 +-22.5021 197.978 206.283 +-24.9876 197.765 206.061 +-27.5652 198.227 206.543 +-29.9683 197.433 205.715 +-32.6025 198.139 206.451 +-35.0862 197.866 206.166 +-37.5785 197.646 205.937 +-40.0679 197.412 205.693 +-42.7169 197.916 206.218 +-45.0375 196.897 205.157 +-47.7813 197.711 206.004 +-50.1149 196.801 205.056 +-52.7572 197.103 205.371 +-55.2964 196.981 205.244 +-57.9563 197.25 205.524 +-60.4815 197.027 205.292 +-63.1354 197.196 205.468 +-65.6182 196.806 205.062 +-68.2594 196.874 205.132 +-70.9557 197.058 205.325 +-73.7119 197.36 205.639 +-76.1704 196.84 205.097 +-78.8353 196.839 205.096 +-81.7816 197.486 205.771 +-84.2674 196.985 205.248 +-87.0391 197.13 205.4 +-89.7306 197.059 205.326 +-92.2416 196.575 204.821 +-95.0645 196.733 204.986 +-97.8332 196.74 204.993 +-100.843 197.186 205.458 +-103.393 196.699 204.95 +-106.603 197.429 205.711 +-109.016 196.648 204.897 +-112.149 197.142 205.411 +-114.892 196.905 205.165 +-115.341 192.813 200.901 +-111.671 182.166 189.807 +-112.487 179.135 186.649 +-113.846 177.056 184.483 +-115.699 175.794 183.169 +-117.784 174.901 182.237 +-119.725 173.807 181.098 +-122.481 173.886 181.18 +-126.452 175.618 182.985 +-143.325 194.775 202.946 +-143.558 190.954 198.964 +-144.973 188.795 196.715 +-149.351 190.468 198.458 +-156.303 195.25 203.441 +-162.352 198.698 207.033 +-165.5 198.489 206.815 +-450.085 529.084 551.279 +-451.688 520.528 542.363 +-453.059 511.933 533.408 +-455.095 504.303 525.458 +-456.275 495.927 516.731 +-1784.51 1902.74 1982.56 +-459.598 480.81 500.98 +-465.975 478.359 498.426 +-476.574 480.148 500.289 +-486.278 480.88 501.052 +-490.404 476.063 496.033 +-486.51 463.67 483.12 +-487.219 455.926 475.051 +-489.637 449.923 468.797 +-491.088 443.156 461.746 +-492.775 436.735 455.055 +-478.901 416.887 434.375 +-479.165 409.726 426.914 +-480.366 403.503 420.429 +-483.183 398.728 415.455 +-484.943 393.161 409.653 +-486.927 387.864 404.134 +-488.947 382.676 398.729 +-490.941 377.546 393.384 +-492.708 372.319 387.938 +-141.31 104.929 109.33 +-142.971 104.322 108.698 +-143.1 102.608 106.912 +-143.546 101.147 105.39 +-143.331 99.2473 103.411 +-142.864 97.2122 101.29 +-142.645 95.3835 99.3847 +-147.396 96.8535 100.916 +-148.538 95.9118 99.9352 +-512.703 325.309 338.955 +-515.594 321.458 334.943 +-517.603 317.091 330.393 +-519.542 312.725 325.843 +-521.334 308.315 321.248 +-523.974 304.44 317.211 +-525.708 300.073 312.661 +-528.071 296.101 308.522 +-529.669 291.735 303.973 +-532.222 287.927 300.005 +-533.847 283.646 295.545 +-536.603 279.993 291.738 +-538.825 276.08 287.662 +-540.747 272.041 283.453 +-385.972 190.635 198.632 +-2683.95 1301.31 1355.89 +-383.796 182.647 190.309 +-549.818 256.794 267.566 +-551.782 252.889 263.497 +-380.421 171.064 178.24 +-384.08 169.429 176.536 +-384.929 166.551 173.538 +-384.37 163.097 169.939 +-2808.51 1168.5 1217.51 +-135.448 55.2459 57.5634 +-545.856 218.221 227.375 +-381.477 149.447 155.717 +-381.422 146.398 152.539 +-381.407 143.394 149.409 +-382.758 140.921 146.833 +-563.784 203.22 211.745 +-566.235 199.775 208.155 +-383.837 132.514 138.073 +-381.538 128.854 134.26 +-382.425 126.306 131.604 +-380.921 122.994 128.154 +-381.274 120.315 125.362 +-382.319 117.865 122.81 +-382.506 115.164 119.995 +-380.905 111.956 116.653 +-382.671 109.756 114.36 +-382.463 106.998 111.487 +-382.96 104.455 108.837 +-381.554 101.417 105.672 +-381.226 98.6954 102.836 +-382.831 96.4831 100.53 +-604.893 148.322 154.544 +-375.844 89.61 93.369 +-379.329 87.8851 91.5718 +-380.328 85.5682 89.1577 +-381.201 83.225 86.7163 +-381.087 80.6755 84.0598 +-380.843 78.1142 81.391 +-382.198 75.8859 79.0693 +-381.983 73.3516 76.4287 +-380.865 70.6643 73.6286 +-380.676 68.1697 71.0294 +-381.423 65.8501 68.6125 +-381.947 63.4943 66.1579 +-380.979 60.9037 63.4585 +-381.244 58.5243 60.9794 +-380.597 56.0168 58.3667 +-381.583 53.7564 56.0114 +-380.773 51.2504 53.4003 +-381.503 48.9602 51.0141 +-380.136 46.4126 48.3596 +-382.284 44.2967 46.1549 +-380.359 41.7142 43.4641 +-380.277 39.3529 41.0037 +-380.263 37.0054 38.5578 +-381.012 34.7333 36.1904 +-381.237 32.4128 33.7725 +-380.637 30.0296 31.2893 +-381.001 27.7285 28.8916 +-380.839 25.392 26.4571 +-381.144 23.0898 24.0584 +-380.922 20.7586 21.6294 +-381.169 18.4561 19.2303 +-379.89 16.0888 16.7637 +-380.777 13.818 14.3977 +-380.837 11.5136 11.9966 +-149.309 3.61034 3.76179 +-149.149 2.70437 2.81782 +-144.778 1.74986 1.82326 +-145.794 0.881005 0.917962 +95.7 0 -1.7053e-13 +96.4963 0.588564 0.602282 +96.4853 1.17708 1.20452 +96.4669 1.76551 1.80666 +96.4412 2.35381 2.40867 +96.5081 2.94497 3.01361 +96.3678 3.52981 3.61209 +96.32 4.11743 4.2134 +96.3647 4.70962 4.81939 +96.2025 5.29169 5.41503 +96.1328 5.87824 6.01525 +96.0557 6.46435 6.61502 +96.9659 7.12299 7.28901 +96.9726 7.72203 7.90201 +95.9792 8.23657 8.42855 +95.7736 8.81248 9.01788 +96.4521 9.47414 9.69496 +96.3301 10.062 10.2965 +96.0033 10.6273 10.875 +95.7683 11.2009 11.4619 +96.5112 11.8938 12.171 +96.359 12.482 12.7729 +96.1995 13.0692 13.3738 +96.0326 13.6555 13.9737 +95.8585 14.2406 14.5725 +95.677 14.8248 15.1703 +95.3908 15.392 15.7507 +96.1674 16.1363 16.5124 +96.0593 16.7392 17.1294 +95.9434 17.342 17.7462 +95.6267 17.9084 18.3258 +96.2667 18.659 19.0939 +96.03 19.2455 19.694 +96.5531 19.9892 20.4551 +96.2999 20.5773 21.0569 +96.0393 21.1639 21.6572 +96.6273 21.9432 22.4546 +96.3497 22.5318 23.0569 +96.0647 23.1185 23.6573 +96.5265 23.8902 24.447 +96.2245 24.478 25.0486 +96.8519 25.3087 25.8986 +96.5322 25.8984 26.5021 +96.9495 26.6911 27.3132 +96.7053 27.3076 27.9441 +97.1921 28.1371 28.7929 +96.1007 28.5103 29.1749 +96.5664 29.3462 30.0302 +96.2877 29.9625 30.6608 +95.9099 30.5487 31.2607 +96.3405 31.3983 32.1301 +96.0351 32.0148 32.761 +96.4406 32.875 33.6412 +95.937 33.4308 34.21 +96.2287 34.2685 35.0672 +96.6842 35.1768 35.9967 +96.2413 35.7651 36.5988 +96.4941 36.6175 37.471 +96.0332 37.2047 38.0719 +96.2613 38.0643 38.9515 +95.869 38.6849 39.5866 +96.1578 39.5874 40.5101 +96.2599 40.4244 41.3666 +96.3483 41.2655 42.2273 +95.9142 41.8887 42.865 +96.1466 42.8101 43.8079 +96.2794 43.6994 44.7179 +95.7301 44.2849 45.3171 +95.9196 45.2188 46.2728 +96.0931 46.1584 47.2343 +96.1684 47.0635 48.1604 +95.6586 47.6888 48.8003 +95.6258 48.5579 49.6897 +95.7394 49.5135 50.6676 +95.8363 50.4741 51.6505 +95.9164 51.4396 52.6386 +95.9009 52.3669 53.5874 +95.8695 53.2978 54.5401 +95.8998 54.2764 55.5415 +95.9129 55.2593 56.5473 +95.7556 56.1568 57.4656 +95.8112 57.1925 58.5256 +95.0934 57.7747 59.1213 +95.6416 59.1398 60.5182 +95.5684 60.1418 61.5435 +95.4037 61.1001 62.5242 +95.2954 62.1086 63.5563 +95.1691 63.1205 64.5917 +95.6722 64.5725 66.0775 +95.3616 65.4964 67.023 +95.1766 66.5203 68.0708 +95.0433 67.5968 69.1723 +94.8903 68.6766 70.2773 +95.1306 70.0641 71.6972 +94.866 71.1013 72.7585 +95.1907 72.6047 74.2969 +94.8827 73.6502 75.3669 +95.1522 75.1683 76.9203 +94.8005 76.2208 77.9974 +95.0792 77.8053 79.6188 +94.6183 78.811 80.6479 +94.7757 80.3556 82.2285 +94.7127 81.7451 83.6504 +94.809 83.3043 85.246 +94.1962 84.2654 86.2294 +94.1754 85.7792 87.7785 +94.0637 87.2434 89.2769 +93.982 88.7685 90.8375 +93.9869 90.413 92.5203 +93.8997 92.0065 94.151 +94.468 94.2934 96.4912 +94.25 95.8457 98.0796 +93.7766 97.1701 99.4349 +92.1735 97.3302 99.5987 +89.9744 96.8332 99.0902 +87.6873 96.1993 98.4415 +91.623 102.48 104.869 +93.8407 107.028 109.522 +93.4794 108.734 111.269 +93.5393 110.986 113.573 +93.6 113.308 115.949 +93.5112 115.517 118.21 +93.4713 117.856 120.603 +93.38 120.203 123.005 +93.1432 122.434 125.287 +93.2732 125.229 128.148 +92.9319 127.474 130.446 +92.943 130.288 133.325 +93.2854 133.677 136.792 +92.7321 135.881 139.048 +92.5534 138.721 141.955 +92.601 142.015 145.325 +92.5733 145.32 148.708 +92.5895 148.828 152.296 +92.4861 152.282 155.831 +92.418 155.94 159.574 +92.0408 159.219 162.93 +92.0651 163.351 167.158 +91.9572 167.43 171.332 +92.0695 172.108 176.12 +91.8324 176.341 180.451 +90.7955 179.2 183.377 +89.1731 181.004 185.222 +86.8146 181.341 185.568 +90.6038 194.892 199.435 +90.302 200.17 204.835 +87.7407 200.579 205.255 +84.9206 200.37 205.04 +82.0021 199.872 204.531 +79.45 200.23 204.897 +76.5846 199.762 204.418 +74.3128 200.83 205.511 +71.3428 199.987 204.649 +69.0064 200.891 205.574 +66.2031 200.419 205.09 +63.4817 200.133 204.798 +60.8973 200.238 204.906 +58.3949 200.603 205.278 +55.659 200.128 204.793 +53.0852 200.185 204.85 +50.4101 199.813 204.47 +47.9133 200.113 204.777 +45.3191 199.983 204.644 +42.7908 200.113 204.777 +40.1654 199.744 204.399 +37.709 200.189 204.855 +35.1106 199.857 204.515 +32.6025 199.994 204.655 +30.031 199.698 204.353 +27.6323 200.57 205.245 +24.9178 199.059 203.699 +22.455 199.413 204.061 +19.9364 199.263 203.908 +17.5148 200.145 204.81 +14.9576 199.476 204.125 +12.4664 199.56 204.211 +9.94287 198.999 203.637 +7.46305 199.192 203.835 +4.9687 198.951 203.588 +2.49143 199.532 204.183 +1.5099e-14 199.121 203.762 +-2.48619 199.113 203.754 +-4.97045 199.021 203.66 +-7.48399 199.751 204.407 +-9.94287 198.999 203.637 +-12.4708 199.63 204.283 +-14.8948 198.639 203.268 +-17.4416 199.307 203.953 +-19.8876 198.776 203.409 +-22.4315 199.204 203.847 +-24.9353 199.198 203.841 +-27.479 199.456 204.105 +-29.916 198.934 203.57 +-32.5006 199.368 204.015 +-34.8668 198.469 203.095 +-37.5002 199.08 203.72 +-39.8592 198.221 202.841 +-42.5691 199.077 203.717 +-44.8967 198.119 202.737 +-47.5337 198.527 203.154 +-49.9586 198.023 202.638 +-52.6478 198.535 203.163 +-55.1247 198.207 202.826 +-57.7569 198.411 203.035 +-60.2944 198.256 202.877 +-62.919 198.358 202.982 +-65.3708 197.899 202.512 +-68.2361 198.648 203.278 +-70.5444 197.75 202.359 +-73.5116 198.665 203.296 +-75.9116 198.007 202.622 +-78.7551 198.479 203.105 +-81.1476 197.789 202.399 +-84.0401 198.293 202.914 +-86.4836 197.706 202.314 +-89.5201 198.437 203.062 +-92.0871 198.083 202.7 +-95.001 198.441 203.067 +-97.4751 197.854 202.466 +-100.609 198.57 203.198 +-103.153 198.08 202.697 +-106.218 198.557 203.185 +-108.765 198.032 202.648 +-111.49 197.816 202.427 +-114.292 197.712 202.32 +-113.963 192.293 196.775 +-111.788 184.063 188.354 +-112.846 181.388 185.616 +-114.578 179.863 184.055 +-115.741 177.503 181.641 +-118.08 176.981 181.106 +-119.983 175.813 179.911 +-123.138 176.456 180.569 +-127.88 179.263 183.441 +-143.552 196.909 201.499 +-143.465 192.617 197.106 +-144.738 190.254 194.688 +-148.73 191.452 195.914 +-155.333 195.855 200.42 +-162.204 200.375 205.046 +-1638.25 1983.19 2029.42 +-450.085 534.036 546.483 +-451.791 525.519 537.768 +-453.372 517.082 529.134 +-455.413 509.378 521.251 +-1760.46 1931.36 1976.38 +-458.205 493.136 504.63 +-460.426 486.185 497.517 +-468.604 485.559 496.876 +-478.33 486.427 497.765 +-484.615 483.72 494.995 +-489.416 479.551 490.729 +-485.805 467.331 478.224 +-487.933 460.867 471.609 +-489.276 453.799 464.376 +-491.088 447.304 457.73 +-493.145 441.153 451.435 +-478.153 420.132 429.925 +-479.542 413.887 423.534 +-481.193 407.98 417.489 +-483.762 402.942 412.334 +-485.527 397.318 406.579 +-487.517 391.969 401.105 +-488.749 386.101 395.101 +-491.945 381.859 390.759 +-492.911 375.959 384.722 +-142.197 106.575 109.059 +-142.834 105.197 107.649 +-142.961 103.467 105.879 +-143.476 102.043 104.421 +-143.118 100.027 102.359 +-142.721 98.0242 100.309 +-142.213 95.9848 98.222 +-147.614 97.904 100.186 +-148.757 96.9521 99.2118 +-513.366 328.779 336.442 +-515.594 324.466 332.029 +-517.603 320.059 327.519 +-519.844 315.835 323.196 +-522.247 311.745 319.011 +-523.974 307.29 314.452 +-525.708 302.882 309.941 +-528.77 299.268 306.244 +-530.374 294.857 301.729 +-532.695 290.879 297.659 +-534.403 286.598 293.278 +-536.603 282.613 289.2 +-539.147 278.831 285.33 +-541.475 274.957 281.365 +-386.298 192.582 197.07 +-385.001 188.414 192.806 +-384.372 184.634 188.937 +-384.673 181.345 185.571 +-2732.23 1263.93 1293.39 +-2747.9 1247.22 1276.29 +-384.08 171.015 175.001 +-383.657 167.554 171.46 +-383.176 164.113 167.938 +-383.925 161.23 164.988 +-135.707 55.8694 57.1716 +-135.187 54.5503 55.8217 +-382.957 151.431 154.961 +-382.209 148.073 151.525 +-380.967 144.569 147.939 +-381.963 141.945 145.253 +-2906.29 1057.4 1082.05 +-570.155 203.041 207.773 +-381.779 133.037 136.138 +-381.808 130.152 133.185 +-381.072 127.036 129.997 +-380.921 124.145 127.039 +-382.457 121.818 124.657 +-382.319 118.969 121.741 +-381.222 115.852 118.552 +-382.102 113.358 116.001 +-381.1 110.329 112.9 +-382 107.869 110.383 +-382.867 105.407 107.864 +-382.768 102.692 105.086 +-381.413 99.668 101.991 +-383.207 97.4818 99.7539 +-604.893 149.71 153.2 +-377.262 90.7904 92.9066 +-381.226 89.1508 91.2287 +-381.183 86.5634 88.581 +-381.01 83.962 85.919 +-381.087 81.4306 83.3285 +-380.843 78.8453 80.683 +-381.044 76.3655 78.1454 +-380.923 73.8327 75.5535 +-380.671 71.29 72.9516 +-381.547 68.9653 70.5727 +-381.52 66.4834 68.0329 +-380.488 63.8439 65.332 +-381.271 61.5208 62.9547 +-380.267 58.9208 60.2941 +-381.478 56.6719 57.9928 +-381.093 54.1898 55.4528 +-381.068 51.7701 52.9767 +-380.52 49.291 50.4399 +-381.416 47.0047 48.1003 +-380.903 44.5498 45.5882 +-380.359 42.1047 43.086 +-380.573 39.7522 40.6788 +-380.857 37.4101 38.2821 +-379.823 34.949 35.7635 +-380.344 32.6395 33.4003 +-380.935 30.3344 31.0414 +-381.3 28.0098 28.6627 +-381.336 25.6631 26.2613 +-380.646 23.2754 23.8179 +-381.221 20.9694 21.4582 +-380.271 18.585 19.0182 +-381.687 16.3162 16.6965 +-379.279 13.8925 14.2163 +-380.837 11.6213 11.8922 +-148.41 3.62218 3.70661 +-148.849 2.7242 2.78769 +-145.978 1.78087 1.82238 +-147.394 0.899007 0.919961 +95.6 3.55271e-15 1.13687e-13 +96.4963 0.593973 0.596948 +96.4853 1.1879 1.19385 +96.4669 1.78174 1.79066 +96.4412 2.37544 2.38733 +96.5081 2.97204 2.98692 +96.3678 3.56226 3.58009 +96.32 4.15528 4.17608 +96.3647 4.75291 4.77671 +96.2025 5.34033 5.36707 +96.2324 5.93841 5.96815 +96.0557 6.52376 6.55643 +96.9659 7.18846 7.22446 +96.7739 7.77706 7.81601 +96.7732 8.38104 8.42301 +95.7736 8.89347 8.93801 +96.5511 9.57102 9.61895 +96.3301 10.1545 10.2053 +96.0033 10.725 10.7787 +95.867 11.3155 11.3721 +95.7233 11.9051 11.9647 +96.359 12.5967 12.6598 +96.1995 13.1893 13.2554 +96.0326 13.781 13.85 +95.9563 14.3862 14.4582 +95.677 14.961 15.0359 +96.3652 15.6922 15.7707 +95.195 16.12 16.2007 +96.1563 16.9101 16.9948 +95.8466 17.4836 17.5712 +96.496 18.2372 18.3286 +96.2667 18.8305 18.9248 +95.9339 19.4029 19.5 +95.7861 20.0126 20.1129 +96.2999 20.7664 20.8704 +96.0393 21.3584 21.4654 +95.7714 21.9487 22.0586 +96.3497 22.7388 22.8527 +96.0647 23.331 23.4478 +96.5265 24.1097 24.2305 +96.2245 24.703 24.8267 +96.8519 25.5413 25.6692 +96.5322 26.1365 26.2673 +96.8565 26.9106 27.0454 +96.7053 27.5586 27.6966 +96.2682 28.1258 28.2666 +96.8371 28.9929 29.1381 +96.5664 29.616 29.7643 +96.1963 30.2092 30.3605 +95.8189 30.8002 30.9544 +96.4311 31.7167 31.8755 +96.7571 32.5519 32.7149 +96.4406 33.1771 33.3433 +95.937 33.738 33.907 +96.3178 34.6155 34.7888 +96.6842 35.5001 35.6779 +97.0359 36.3919 36.5741 +96.4941 36.9541 37.1391 +96.9079 37.8886 38.0783 +96.3484 38.4489 38.6415 +96.6484 39.3579 39.555 +96.0717 39.9155 40.1153 +96.1742 40.7596 40.9637 +96.4336 41.6817 41.8904 +95.9142 42.2737 42.4854 +96.0623 43.1656 43.3817 +96.2794 44.101 44.3219 +96.4806 45.0423 45.2678 +95.9196 45.6344 45.8629 +96.0931 46.5827 46.8159 +96.1684 47.496 47.7339 +95.6586 48.1271 48.3681 +95.6258 49.0042 49.2496 +95.659 49.9266 50.1766 +95.8363 50.938 51.1931 +95.8371 51.8695 52.1292 +95.8221 52.8047 53.0692 +95.9478 53.8316 54.1012 +95.8998 54.7752 55.0495 +95.9129 55.7672 56.0465 +95.7556 56.6729 56.9567 +95.8112 57.7182 58.0072 +95.7726 58.7222 59.0162 +95.6416 59.6833 59.9822 +95.5684 60.6945 60.9985 +95.4774 61.7093 62.0183 +95.2954 62.6795 62.9934 +95.6769 64.0405 64.3612 +95.6003 65.1169 65.443 +95.5042 66.1973 66.5288 +95.2473 67.1816 67.518 +95.0433 68.2181 68.5597 +95.4461 69.7138 70.0629 +95.1306 70.7081 71.0622 +94.866 71.7548 72.1141 +95.2582 73.3242 73.6914 +95.4849 74.799 75.1736 +95.1522 75.8592 76.239 +94.8005 76.9214 77.3066 +95.0792 78.5204 78.9136 +94.6826 79.589 79.9875 +94.8393 81.1485 81.5549 +94.7127 82.4964 82.9095 +94.809 84.07 84.491 +94.1962 85.0398 85.4657 +94.2363 86.6233 87.0571 +94.1239 88.1017 88.5429 +93.9225 89.5279 89.9762 +94.1044 91.3583 91.8158 +93.8416 92.795 93.2597 +93.8945 94.5824 95.056 +94.3633 96.8423 97.3272 +92.3227 96.5425 97.026 +91.4008 97.4009 97.8887 +89.2663 96.9544 97.4399 +88.1171 97.5596 98.0481 +89.0264 100.491 100.994 +93.7885 107.951 108.492 +93.4279 109.673 110.222 +93.4378 111.885 112.445 +93.6 114.349 114.922 +93.0681 116.026 116.607 +93.4713 118.939 119.535 +93.2845 121.184 121.79 +93.1432 123.559 124.178 +93.3194 126.443 127.076 +92.8865 128.583 129.227 +92.943 131.486 132.144 +92.8908 134.335 135.007 +92.7321 137.13 137.817 +92.9338 140.572 141.276 +92.6839 143.449 144.167 +92.6546 146.785 147.52 +92.5895 150.195 150.948 +92.4861 153.681 154.451 +92.4563 157.438 158.226 +92.0783 160.748 161.553 +92.3583 165.377 166.205 +91.9214 168.902 169.748 +91.9645 173.492 174.361 +91.6614 177.631 178.521 +90.1946 179.651 180.551 +88.2941 180.866 181.772 +86.6876 182.741 183.656 +90.8819 197.287 198.275 +89.911 201.135 202.142 +87.0098 200.737 201.742 +84.523 201.265 202.273 +81.5887 200.692 201.697 +79.0224 200.983 201.99 +76.2222 200.644 201.649 +73.9623 201.72 202.731 +70.8589 200.457 201.461 +68.5862 201.503 202.512 +65.7532 200.886 201.892 +63.2004 201.076 202.083 +60.4191 200.492 201.496 +58.0759 201.34 202.349 +55.1629 200.167 201.169 +52.8119 200.984 201.991 +50.167 200.677 201.681 +47.6657 200.908 201.914 +45.0844 200.776 201.781 +42.6874 201.464 202.473 +39.8313 199.904 200.905 +37.4871 200.84 201.846 +34.7571 199.663 200.663 +32.4893 201.131 202.138 +29.8429 200.271 201.274 +27.3831 200.588 201.592 +24.7784 199.765 200.765 +22.2981 199.839 200.84 +19.8108 199.828 200.829 +17.4171 200.858 201.864 +14.8268 199.549 200.548 +12.3879 200.126 201.128 +9.88703 199.7 200.7 +7.44734 200.6 201.605 +4.93903 199.58 200.58 +2.47746 200.238 201.241 +2.04281e-14 199.681 200.681 +-2.48008 200.449 201.453 +-4.9303 199.228 200.225 +-7.43949 200.389 201.392 +-9.8626 199.207 200.205 +-12.3835 200.055 201.057 +-14.8058 199.267 200.264 +-17.35 200.083 201.085 +-19.7062 198.773 199.768 +-22.3216 200.05 201.052 +-24.7348 199.413 200.412 +-27.2777 199.815 200.816 +-29.6652 199.078 200.075 +-32.2856 199.87 200.871 +-34.6718 199.173 200.17 +-37.2652 199.652 200.652 +-39.5947 198.716 199.711 +-42.1848 199.092 200.089 +-44.5995 198.616 199.611 +-47.3687 199.656 200.656 +-49.6286 198.523 199.517 +-52.3016 199.042 200.039 +-54.6668 198.367 199.36 +-57.4379 199.128 200.126 +-59.7538 198.285 199.278 +-62.551 199.011 200.008 +-64.8759 198.206 199.198 +-67.9093 199.513 200.513 +-69.9396 197.856 198.847 +-73.0859 199.33 200.328 +-75.3163 198.259 199.252 +-78.2474 199.012 200.009 +-80.6239 198.319 199.312 +-83.6141 199.101 200.098 +-86.1035 198.646 199.641 +-89.0691 199.252 200.25 +-91.2527 198.092 199.084 +-94.5568 199.329 200.327 +-97.0519 198.806 199.802 +-100.042 199.265 200.263 +-102.059 197.78 198.77 +-105.307 198.664 199.658 +-107.94 198.337 199.33 +-111.123 198.978 199.975 +-113.393 197.96 198.951 +-112.624 191.78 192.741 +-111.944 186.015 186.947 +-112.846 183.055 183.972 +-114.944 182.096 183.008 +-116.363 180.098 180.999 +-118.798 179.694 180.594 +-120.931 178.829 179.724 +-124.717 180.36 181.263 +-132.61 187.602 188.541 +-144.051 199.41 200.409 +-143.465 194.387 195.36 +-143.987 191.006 191.962 +-147.347 191.414 192.373 +-150.097 190.993 191.949 +-160.826 200.498 201.502 +-449.85 549.574 552.326 +-450.999 540.038 542.743 +-452.718 531.437 534.099 +-454.051 522.616 525.233 +-1736.28 1959.87 1969.69 +-1760.46 1949.11 1958.87 +-459.349 498.911 501.409 +-460.923 491.182 493.642 +-473.357 494.992 497.471 +-480.822 493.456 495.927 +-489.547 493.135 495.604 +-486.977 481.547 483.958 +-487.156 472.939 475.307 +-488.112 465.273 467.603 +-490.6 459.209 461.509 +-491.94 452.199 454.463 +-484.033 436.981 439.169 +-478.714 424.491 426.617 +-480.612 418.623 420.719 +-481.893 412.329 414.394 +-484.855 407.564 409.605 +-486.437 401.721 403.733 +-488.698 396.529 398.515 +-489.941 390.601 392.557 +-492.547 385.841 387.773 +-493.992 380.246 382.15 +-141.583 107.091 107.627 +-142.971 106.266 106.798 +-143.933 105.129 105.655 +-144.037 103.384 103.901 +-142.765 100.698 101.202 +-142.222 98.5788 99.0725 +-143.94 98.0428 98.5337 +-147.759 98.9012 99.3964 +-512.533 337.112 338.8 +-514.03 332.229 333.893 +-516.709 328.157 329.8 +-518.577 323.608 325.228 +-520.901 319.386 320.985 +-522.703 314.885 316.462 +-525.2 310.839 312.396 +-527.097 306.473 308.008 +-529.47 302.418 303.933 +-531.313 298.094 299.586 +-534.035 294.291 295.765 +-535.593 289.876 291.328 +-537.961 285.932 287.364 +-540.111 281.896 283.308 +-543.579 278.561 279.956 +-2667.45 1342.03 1348.75 +-2683.95 1325.56 1332.19 +-2700.25 1308.99 1315.54 +-384.342 182.853 183.769 +-2732.23 1275.55 1281.94 +-555.535 254.464 255.739 +-381.972 171.639 172.499 +-383.403 168.982 169.828 +-382.835 165.474 166.302 +-382.897 162.276 163.088 +-135.276 56.2038 56.4853 +-135.879 55.3338 55.6109 +-384.697 153.518 154.286 +-381.422 149.126 149.873 +-381.758 146.201 146.933 +-382.051 143.282 144 +-384.164 141.056 141.762 +-577.194 207.437 208.475 +-584.303 205.481 206.51 +-381.808 131.348 132.006 +-380.169 127.9 128.54 +-381.646 125.526 126.154 +-381.729 122.704 123.318 +-383.232 120.349 120.952 +-382.597 117.339 117.926 +-382.378 114.483 115.057 +-382.856 111.855 112.416 +-381.443 108.702 109.246 +-382.029 106.143 106.674 +-382.768 103.636 104.155 +-380.757 100.411 100.914 +-3078.9 790.424 794.382 +-606.024 151.368 152.126 +-377.64 91.7166 92.1759 +-381.795 90.1049 90.5561 +-381.564 87.4465 87.8844 +-380.628 84.6491 85.073 +-380.801 82.1169 82.5281 +-380.843 79.5699 79.9684 +-381.621 77.1838 77.5703 +-381.212 74.5684 74.9418 +-381.154 72.0362 72.397 +-381.45 69.5814 69.9299 +-381.132 67.0261 67.3618 +-382.239 64.7271 65.0512 +-381.563 62.1338 62.445 +-381.048 59.5845 59.8828 +-380.988 57.1194 57.4055 +-380.211 54.5613 54.8345 +-380.871 52.219 52.4805 +-380.52 49.7441 49.9932 +-381.219 47.4123 47.6497 +-380.41 44.9011 45.1259 +-380.359 42.4916 42.7044 +-381.167 40.1801 40.3813 +-381.055 37.7736 37.9627 +-380.12 35.2977 35.4745 +-380.641 32.9653 33.1304 +-379.644 30.5093 30.6621 +-380.007 28.1714 28.3125 +-380.938 25.872 26.0015 +-381.642 23.5508 23.6688 +-380.922 21.1455 21.2514 +-379.972 18.741 18.8348 +-380.788 16.4273 16.5096 +-379.779 14.0386 14.1089 +-381.237 11.7405 11.7993 +-381.867 9.40576 9.45286 +-3275.38 60.496 60.799 +-146.878 1.80832 1.81737 +-146.594 0.902347 0.906865 +95.7 0 -1.7053e-13 +96.4963 0.599335 0.591565 +96.4853 1.19862 1.18309 +96.4669 1.79782 1.77452 +96.5412 2.39936 2.36826 +96.4082 2.99576 2.95692 +96.3678 3.59441 3.54781 +96.32 4.19278 4.13843 +96.2649 4.79084 4.72873 +96.3022 5.39412 5.32419 +96.2324 5.99201 5.91434 +96.9516 6.64404 6.5579 +96.1703 7.19384 7.10058 +96.8733 7.8553 7.75347 +96.8725 8.4653 8.35556 +96.6659 9.05737 8.93995 +96.5511 9.65741 9.53221 +96.3301 10.2461 10.1133 +96.0033 10.8218 10.6815 +95.7683 11.4059 11.258 +95.6248 12.0002 11.8446 +96.359 12.7104 12.5456 +96.1995 13.3084 13.1359 +95.1507 13.7776 13.599 +95.8585 14.5012 14.3132 +95.677 15.096 14.9003 +95.5857 15.7057 15.5021 +96.2646 16.4483 16.2351 +96.0593 17.0455 16.8246 +94.9753 17.4811 17.2545 +95.6267 18.2361 17.9997 +96.2667 19.0005 18.7541 +95.9339 19.578 19.3242 +96.5531 20.355 20.0911 +96.2999 20.9539 20.6822 +96.0393 21.5512 21.2718 +96.6273 22.3448 22.0551 +96.3497 22.9441 22.6466 +95.9701 23.5184 23.2135 +96.5265 24.3274 24.012 +96.2245 24.926 24.6028 +96.8519 25.7718 25.4377 +96.4389 26.3469 26.0053 +97.0426 27.2057 26.853 +96.7053 27.8074 27.4469 +96.453 28.4342 28.0656 +96.1007 29.0321 28.6557 +96.5664 29.8833 29.4959 +96.2877 30.5108 30.1153 +95.9099 31.1077 30.7044 +96.4311 32.0029 31.5881 +96.0351 32.6006 32.178 +96.4406 33.4766 33.0426 +95.937 34.0426 33.6012 +96.3178 34.9279 34.4751 +96.6842 35.8205 35.3562 +96.2413 36.4196 35.9475 +95.7911 37.016 36.5361 +96.1207 37.9201 37.4285 +96.3484 38.796 38.293 +95.869 39.3929 38.8822 +95.9855 40.2397 39.718 +95.5742 40.8709 40.341 +96.4336 42.0579 41.5127 +96.6775 42.9947 42.4373 +96.0623 43.5552 42.9906 +96.2794 44.4991 43.9222 +96.4806 45.4488 44.8597 +95.9196 46.0463 45.4494 +96.0931 47.0031 46.3938 +96.2504 47.9655 47.3437 +96.2285 48.8508 48.2175 +95.5449 49.4047 48.7642 +95.7394 50.4196 49.766 +95.8363 51.3978 50.7315 +95.8371 52.3376 51.6592 +95.8221 53.2814 52.5906 +95.8695 54.2732 53.5696 +95.8221 55.2249 54.509 +95.9129 56.2706 55.5411 +95.8322 57.2301 56.4882 +95.8112 58.2392 57.4842 +95.7726 59.2522 58.4841 +95.6416 60.222 59.4414 +95.5684 61.2423 60.4484 +95.4037 62.2182 61.4117 +95.9536 63.6821 62.8565 +95.1691 64.2756 63.4423 +95.6003 65.7047 64.8529 +95.4329 66.7449 65.8796 +95.2473 67.788 66.9092 +95.0433 68.8338 67.9415 +95.4461 70.343 69.4311 +95.1994 71.3975 70.4719 +94.9342 72.4544 71.5151 +95.2582 73.986 73.0269 +94.9496 75.0507 74.0778 +95.1522 76.5439 75.5516 +94.8005 77.6157 76.6095 +95.0142 79.175 78.1486 +94.7469 80.3622 79.3204 +94.712 81.7713 80.7113 +94.3351 82.9093 81.8345 +94.3732 84.4388 83.3442 +94.2578 85.8629 84.7498 +94.1754 87.349 86.2166 +94.1239 88.8969 87.7445 +93.9225 90.336 89.1649 +93.9281 92.0099 90.8171 +93.8416 93.6326 92.4188 +94.0092 95.5528 94.3141 +94.0801 97.4231 96.1602 +90.9807 95.9976 94.7531 +90.5177 97.3306 96.0689 +88.2315 96.6958 95.4423 +88.0634 98.3804 97.105 +88.4965 100.794 99.4878 +92.43 107.348 105.956 +93.4794 110.724 109.289 +93.4378 112.895 111.431 +93.55 115.32 113.825 +93.1173 117.135 115.617 +93.4713 120.013 118.457 +93.3323 122.34 120.754 +93.1901 124.737 123.12 +93.227 127.457 125.805 +92.9319 129.807 128.124 +92.9876 132.736 131.015 +92.8908 135.547 133.79 +92.7751 138.432 136.637 +92.5534 141.26 139.429 +92.6425 144.679 142.803 +92.6139 148.045 146.125 +92.5895 151.551 149.586 +92.4861 155.068 153.058 +92.418 158.793 156.735 +92.1532 162.331 160.226 +92.0285 166.274 164.119 +92.1722 170.892 168.677 +91.9645 175.058 172.789 +90.909 177.763 175.458 +89.6271 180.132 177.797 +87.7081 181.288 178.937 +88.2742 187.765 185.331 +90.7583 198.797 196.22 +89.1292 201.186 198.578 +86.0158 200.235 197.639 +83.6425 200.966 198.36 +80.5688 199.973 197.38 +78.5414 201.563 198.95 +75.2905 199.981 197.388 +73.136 201.267 198.658 +69.8912 199.504 196.917 +67.7925 200.968 198.363 +64.8084 199.787 197.197 +62.7242 201.363 198.753 +59.5459 199.378 196.793 +57.5775 201.414 198.803 +54.4569 199.388 196.804 +52.3563 201.049 198.442 +49.4029 199.404 196.819 +47.2366 200.896 198.292 +44.3961 199.495 196.909 +42.1996 200.96 198.355 +39.3582 199.312 196.728 +37.1347 200.748 198.145 +34.355 199.134 196.553 +32.2176 201.249 198.641 +29.3934 199.035 196.455 +27.201 201.052 198.445 +24.421 198.661 196.086 +22.1333 200.153 197.558 +19.5527 199.005 196.425 +17.2218 200.398 197.8 +14.6279 198.649 196.074 +12.2919 200.368 197.77 +9.75092 198.729 196.153 +7.3819 200.632 198.031 +4.88318 199.104 196.523 +2.4539 200.124 197.529 +1.95399e-14 198.637 196.062 +-2.45652 200.337 197.74 +-4.86922 198.536 195.962 +-7.35049 199.778 197.189 +-9.74743 198.658 196.083 +-12.2876 200.297 197.7 +-14.6122 198.435 195.863 +-17.1852 199.971 197.379 +-19.49 198.366 195.794 +-22.0627 199.514 196.928 +-24.4472 198.874 196.296 +-27.0573 199.989 197.396 +-29.2993 198.398 195.826 +-32.0025 199.906 197.314 +-34.2818 198.71 196.134 +-36.9259 199.619 197.031 +-39.1355 198.183 195.614 +-41.8005 199.06 196.479 +-43.9737 197.597 195.035 +-46.956 199.703 197.114 +-48.9688 197.652 195.09 +-51.7913 198.88 196.301 +-53.9417 197.502 194.942 +-56.9195 199.113 196.532 +-58.839 197.011 194.457 +-62.0099 199.07 196.49 +-63.9986 197.29 194.733 +-67.2089 199.238 196.655 +-69.1171 197.294 194.736 +-72.3849 199.2 196.617 +-74.4364 197.712 195.149 +-77.5526 199.025 196.445 +-79.7695 197.988 195.422 +-82.9041 199.191 196.609 +-84.8755 197.58 195.019 +-88.2572 199.218 196.635 +-90.2639 197.714 195.151 +-93.7001 199.306 196.722 +-95.3589 197.101 194.546 +-99.174 199.319 196.735 +-100.999 197.492 194.931 +-104.432 198.791 196.214 +-106.543 197.536 194.975 +-109.95 198.655 196.079 +-112.045 197.371 194.812 +-112.011 192.459 189.964 +-112.491 188.611 186.166 +-113.643 186.013 183.601 +-115.473 184.585 182.192 +-117.317 183.213 180.838 +-119.981 183.122 180.748 +-122.394 182.627 180.26 +-128.311 187.233 184.806 +-141.4 201.843 199.226 +-144.006 201.147 198.539 +-143.465 196.142 193.599 +-143.189 191.661 189.177 +-144.579 189.514 187.057 +-148.74 190.974 188.498 +-158.166 198.963 196.384 +-1638.25 2019.48 1993.3 +-451.658 545.71 538.635 +-454.315 538.125 531.149 +-454.783 528.183 521.336 +-1736.28 1977.56 1951.93 +-458.155 511.83 505.195 +-460.274 504.428 497.889 +-465.007 500.008 493.526 +-480.738 507.249 500.673 +-483.201 500.373 493.886 +-490.58 498.635 492.171 +-485.874 484.792 478.507 +-488.567 478.59 472.385 +-489.42 470.731 464.628 +-491.863 464.548 458.525 +-492.732 457.014 451.09 +-478.307 435.71 430.062 +-479.648 429.158 423.595 +-482.311 423.895 418.4 +-483.229 417.204 411.795 +-485.883 412.115 406.772 +-487.411 406.159 400.894 +-489.879 401.076 395.876 +-491.134 395.086 389.964 +-493.551 390.117 385.059 +-141.604 109.982 108.556 +-142.674 108.89 107.479 +-142.834 107.122 105.734 +-143.377 105.668 104.298 +-142.565 103.251 101.912 +-142.765 101.607 100.289 +-142.365 99.5682 98.2775 +-147.393 101.301 99.988 +-149.21 100.774 99.4675 +-514.142 341.223 336.8 +-515.357 336.094 331.737 +-517.749 331.785 327.484 +-519.625 327.189 322.948 +-521.882 322.876 318.69 +-523.92 318.467 314.338 +-526.579 314.468 310.392 +-527.791 309.647 305.633 +-530.868 305.954 301.988 +-532.252 301.316 297.41 +-535.453 297.736 293.876 +-536.545 293.012 289.214 +-539.878 289.541 285.787 +-540.755 284.779 281.088 +-543.983 281.285 277.639 +-545.539 276.945 273.355 +-384.51 191.617 189.133 +-383.548 187.609 185.177 +-385.171 184.902 182.505 +-381.753 179.831 177.5 +-2747.9 1270.04 1253.58 +-380.538 172.539 170.302 +-383.827 170.696 168.483 +-382.835 166.967 164.803 +-381.954 163.337 161.22 +-2823.13 1183.53 1168.19 +-134.927 55.4418 54.7231 +-555.635 223.734 220.833 +-382.559 150.921 148.965 +-382.901 147.962 146.044 +-382.405 144.71 142.834 +-381.149 141.211 139.381 +-384.202 139.324 137.518 +-576.069 204.414 201.764 +-383.426 133.095 131.37 +-381.072 129.361 127.684 +-380.921 126.417 124.778 +-382.457 124.047 122.439 +-381.497 120.885 119.318 +-381.222 117.972 116.443 +-381.273 115.183 113.69 +-381.1 112.348 110.891 +-381.814 109.79 108.366 +-382.122 107.127 105.738 +-382.021 104.367 103.014 +-381.413 101.492 100.176 +-3078.9 797.558 787.219 +-606.118 152.759 150.779 +-378.775 92.8227 91.6194 +-376.864 89.7438 88.5804 +-380.993 88.1034 86.9612 +-381.773 85.6701 84.5595 +-381.087 82.9207 81.8458 +-381.802 80.4903 79.4468 +-380.275 77.6057 76.5997 +-381.116 75.2222 74.2471 +-381.444 72.7419 71.7989 +-380.676 70.0669 69.1586 +-381.132 67.6311 66.7544 +-381.363 65.1618 64.317 +-380.979 62.5986 61.7871 +-380.755 60.076 59.2972 +-380.304 57.5314 56.7856 +-381.583 55.2524 54.5362 +-381.362 52.7582 52.0742 +-381.405 50.3098 49.6576 +-381.219 47.8402 47.22 +-380.903 45.3651 44.777 +-380.458 42.8863 42.3304 +-380.87 40.5112 39.9861 +-381.946 38.2037 37.7084 +-381.012 35.7 35.2372 +-381.634 33.3496 32.9173 +-380.141 30.825 30.4254 +-380.007 28.4257 28.0572 +-380.938 26.1055 25.7671 +-380.148 23.6703 23.3635 +-380.324 21.3028 21.0267 +-380.87 18.9548 18.7091 +-380.19 16.5496 16.335 +-380.078 14.1765 13.9927 +-379.938 11.8061 11.6531 +-3274.5 81.382 80.327 +-151.948 2.8318 2.79509 +-146.578 1.82091 1.79731 +-145.594 0.904278 0.892555 +96.5 -3.55271e-15 -1.7053e-13 +96.4963 0.604647 0.586134 +96.4853 1.20925 1.17222 +96.267 1.81 1.75458 +96.4412 2.41813 2.34409 +96.5081 3.02544 2.93281 +96.3678 3.62627 3.51524 +96.32 4.22995 4.10043 +96.3647 4.83832 4.69018 +96.2025 5.43629 5.26985 +96.2324 6.04513 5.86004 +96.1553 6.64787 6.44433 +96.1703 7.25761 7.03539 +96.8733 7.92493 7.68228 +96.7732 8.53165 8.27043 +96.6659 9.13765 8.85788 +96.5511 9.74301 9.4447 +96.1323 10.3158 9.99992 +96.0033 10.9177 10.5834 +95.7683 11.507 11.1546 +95.7233 12.1191 11.748 +95.4741 12.7053 12.3163 +96.1013 13.4126 13.002 +96.0326 14.0286 13.5991 +95.7607 14.6149 14.1674 +95.5794 15.2143 14.7484 +95.4883 15.8287 15.3441 +96.2646 16.5941 16.086 +96.0593 17.1966 16.6701 +95.8466 17.7978 17.2529 +96.496 18.565 17.9965 +96.2667 19.1689 18.582 +95.9339 19.7515 19.1468 +95.7861 20.3723 19.7485 +96.2999 21.1396 20.4924 +96.0393 21.7422 21.0765 +95.7714 22.3431 21.659 +96.3497 23.1475 22.4387 +95.9701 23.7269 23.0004 +96.5265 24.543 23.7915 +96.2245 25.1469 24.377 +96.8519 26.0003 25.2042 +96.4389 26.5804 25.7666 +97.0426 27.4468 26.6065 +96.7053 28.0539 27.1949 +96.3606 28.6587 27.7812 +96.8371 29.5139 28.6102 +96.4747 30.1195 29.1973 +96.2877 30.7812 29.8388 +95.9099 31.3834 30.4225 +96.4311 32.2866 31.2981 +96.7571 33.1369 32.1223 +96.4406 33.7733 32.7393 +96.0265 34.3763 33.3238 +96.4069 35.2701 34.1902 +95.7972 35.8065 34.7102 +96.153 36.7088 35.5848 +96.4062 37.5839 36.4332 +96.0332 38.2214 37.0511 +96.2613 39.1044 37.9071 +95.7824 39.7061 38.4904 +95.9855 40.5963 39.3534 +96.2599 41.529 40.2575 +96.4336 42.4307 41.1316 +95.9142 43.0333 41.7158 +96.0623 43.9413 42.5959 +96.2794 44.8935 43.519 +95.7301 45.495 44.1021 +95.9196 46.4545 45.0321 +96.0931 47.4198 45.9679 +96.1684 48.3495 46.8692 +95.6586 48.9919 47.4919 +95.6258 49.8848 48.3575 +95.7394 50.8665 49.3091 +95.8363 51.8533 50.2657 +95.8371 52.8016 51.1849 +95.8221 53.7536 52.1078 +95.8695 54.7543 53.0778 +95.2004 55.3529 53.6581 +95.9129 56.7694 55.0312 +95.7556 57.6913 55.9249 +95.8112 58.7554 56.9564 +95.7726 59.7774 57.9472 +95.0425 60.3752 58.5267 +95.4941 61.7372 59.8469 +95.4037 62.7697 60.8479 +95.2954 63.8058 61.8522 +95.7494 65.2407 63.2432 +95.5283 66.2372 64.2091 +95.3616 67.2862 65.226 +95.2473 68.3888 66.2949 +94.9732 69.3927 67.268 +95.4461 70.9665 68.7937 +95.1994 72.0304 69.825 +94.866 73.0442 70.8078 +94.6502 74.1658 71.895 +94.8827 75.6628 73.3462 +95.1522 77.2223 74.858 +94.8005 78.3037 75.9062 +95.0792 79.9314 77.4841 +94.6183 80.9646 78.4857 +94.7757 82.5514 80.0239 +94.7127 83.9788 81.4076 +94.809 85.5807 82.9604 +94.2578 86.624 83.9718 +94.6624 88.5784 85.8664 +94.0035 89.57 86.8276 +94.5768 91.7714 88.9616 +94.1044 93 90.1525 +94.0158 94.6377 91.7401 +93.8945 96.282 93.3341 +92.9473 97.1034 94.1303 +89.8623 95.658 92.7292 +88.6411 96.1578 93.2136 +87.6869 96.9505 93.9821 +87.9022 99.0708 96.0374 +88.7615 101.992 98.8696 +88.25 103.402 100.236 +91.8313 109.736 106.376 +93.4886 113.957 110.468 +93.55 116.342 112.78 +93.0681 118.111 114.495 +93.4713 121.076 117.369 +93.3323 123.424 119.645 +93.1432 125.779 121.928 +92.9038 128.142 124.218 +92.9319 130.958 126.948 +92.9876 133.912 129.812 +92.4963 136.168 131.999 +92.7751 139.659 135.383 +92.5534 142.512 138.149 +92.6425 145.961 141.492 +92.6546 149.423 144.848 +92.5895 152.894 148.213 +92.5251 156.51 151.718 +92.4563 160.267 155.36 +92.1532 163.77 158.755 +92.0285 167.748 162.612 +92.1722 172.407 167.128 +92.0345 176.744 171.332 +90.1907 177.922 172.474 +89.5938 181.661 176.099 +86.6662 180.722 175.188 +91.003 195.285 189.305 +90.0167 198.921 192.83 +88.0166 200.436 194.299 +84.7293 198.988 192.895 +82.7053 200.475 194.337 +79.4662 198.984 192.892 +77.4724 200.581 194.44 +74.1775 198.771 192.685 +72.1345 200.27 194.139 +68.8268 198.207 192.138 +66.8588 199.957 193.835 +63.8411 198.549 192.47 +61.7935 200.134 194.006 +58.6311 198.055 191.991 +56.7002 200.104 193.977 +53.8081 198.76 192.674 +51.518 199.583 193.472 +48.6562 198.131 192.064 +46.5599 199.774 193.657 +43.7234 198.214 192.145 +41.564 199.687 193.573 +38.7597 198.021 191.958 +36.5995 199.608 193.497 +33.965 198.619 192.538 +31.7309 199.965 193.843 +29.0276 198.3 192.229 +26.7793 199.69 193.576 +24.116 197.918 191.858 +21.8195 199.064 192.969 +19.2458 197.617 191.567 +17.0142 199.737 193.621 +14.4447 197.9 191.841 +12.1131 199.203 193.104 +9.62528 197.907 191.848 +7.27196 199.396 193.291 +4.80465 197.639 191.588 +2.41812 198.954 192.862 +2.13163e-14 197.741 191.686 +-2.42074 199.169 193.071 +-4.80988 197.854 191.796 +-7.2641 199.18 193.082 +-9.62179 197.836 191.778 +-12.1044 199.059 192.964 +-14.429 197.685 191.632 +-16.9227 198.662 192.579 +-19.2388 197.546 191.497 +-21.7724 198.635 192.553 +-24.0288 197.203 191.165 +-26.5876 198.26 192.19 +-28.9021 197.443 191.398 +-31.5384 198.753 192.667 +-33.7212 197.194 191.156 +-36.3776 198.399 192.324 +-38.5092 196.741 190.717 +-41.2979 198.409 192.334 +-43.4106 196.796 190.771 +-46.0978 197.791 191.735 +-48.3437 196.858 190.83 +-51.0624 197.818 191.762 +-53.1212 196.222 190.214 +-56.0423 197.782 191.726 +-58.0905 196.229 190.221 +-61.0793 197.821 191.764 +-63.0988 196.241 190.232 +-66.2051 198.002 191.94 +-68.222 196.465 190.45 +-71.1079 197.421 191.376 +-73.2458 196.274 190.264 +-76.3767 197.745 191.691 +-78.5291 196.637 190.617 +-81.6544 197.928 191.868 +-83.5598 196.242 190.233 +-86.7536 197.559 191.51 +-88.9042 196.462 190.447 +-92.1135 197.668 191.615 +-94.1869 196.405 190.391 +-97.505 197.702 191.649 +-99.6647 196.611 190.591 +-103.311 198.4 192.325 +-105.217 196.807 190.781 +-108.668 198.078 192.013 +-110.471 196.324 190.313 +-112.203 194.496 188.541 +-113.586 192.134 186.251 +-114.6 189.242 183.448 +-117.14 188.91 183.126 +-118.271 186.34 180.634 +-122.263 188.26 182.495 +-124.289 187.097 181.369 +-134.799 198.444 192.368 +-139.749 201.254 195.092 +-142.235 200.435 194.298 +-143.327 197.689 191.636 +-143.142 193.297 187.379 +-144.388 190.941 185.095 +-145.055 187.894 182.141 +-150.583 191.103 185.252 +-157.95 196.432 190.418 +-452.876 552.032 535.13 +-455.036 543.757 527.108 +-1711.97 2005.9 1944.48 +-459.281 527.742 511.584 +-459.552 517.941 502.083 +-467.627 517.029 501.199 +-474.003 514.199 498.455 +-485.1 516.388 500.577 +-487.336 509.127 493.539 +-486.622 498.997 483.719 +-486.861 490.083 475.078 +-490.154 484.4 469.569 +-490.431 475.885 461.314 +-493.248 469.984 455.594 +-481.53 450.584 436.788 +-480.216 441.325 427.813 +-481.328 434.479 421.176 +-484.514 429.605 416.452 +-485.073 422.508 409.572 +-487.554 417.198 404.424 +-489.359 411.397 398.801 +-491.388 405.876 393.449 +-492.989 400.094 387.844 +-141.856 113.121 109.657 +-142.144 111.38 107.97 +-142.879 110.013 106.645 +-143.453 108.541 105.217 +-143.308 106.553 103.291 +-142.845 104.37 101.175 +-142.765 102.507 99.3686 +-145.788 102.867 99.7173 +-148.903 103.246 100.085 +-512.695 349.334 338.638 +-516.116 345.57 334.989 +-517.348 340.383 329.961 +-520.424 336.455 326.154 +-521.123 331.041 320.905 +-524.372 327.292 317.271 +-525.517 322.269 312.402 +-528.724 318.548 308.795 +-529.952 313.671 304.067 +-533.511 310.202 300.704 +-534.365 305.194 295.849 +-537.345 301.436 292.207 +-538.132 296.484 287.407 +-541.475 292.972 284.002 +-542.684 288.329 279.501 +-546.167 284.918 276.194 +-546.76 280.025 271.451 +-550.552 276.795 268.32 +-383.548 189.272 183.477 +-2716.34 1315.54 1275.26 +-383.254 182.138 176.562 +-383.356 178.753 173.28 +-383.237 175.302 169.935 +-381.282 171.068 165.83 +-382.835 168.447 163.29 +-383.154 165.302 160.241 +-382.822 161.911 156.954 +-383.303 158.896 154.031 +-135.688 55.121 53.4333 +-576.199 229.328 222.307 +-380.176 148.212 143.674 +-381.522 145.655 141.196 +-382.213 142.861 138.487 +-380.46 139.19 134.928 +-566.404 202.766 196.558 +-585.744 205.126 198.846 +-382.064 130.847 126.841 +-381.193 127.629 123.721 +-382.548 125.176 121.344 +-381.497 121.957 118.223 +-382.506 119.419 115.762 +-381.825 116.372 112.809 +-382.024 113.618 110.14 +-382.463 110.951 107.554 +-382.122 108.077 104.768 +-381.648 105.19 101.969 +-379.259 101.814 98.6963 +-381.891 99.8017 96.746 +-607.815 154.544 149.813 +-378.302 93.5284 90.6648 +-377.338 90.6535 87.8779 +-379.662 88.5741 85.8622 +-381.773 86.4294 83.7831 +-380.801 83.5925 81.0331 +-380.46 80.918 78.4404 +-380.564 78.3532 75.9542 +-381.405 75.9464 73.6211 +-381.541 73.4054 71.1579 +-381.547 70.8498 68.6806 +-381.132 68.2306 66.1415 +-380.586 65.6052 63.5965 +-381.856 63.2988 61.3608 +-381.732 60.764 58.9035 +-380.988 58.1459 56.3656 +-381.289 55.6992 53.9938 +-381.755 53.2806 51.6493 +-380.618 50.6511 49.1003 +-380.825 48.2145 46.7382 +-381.397 45.8264 44.4233 +-380.458 43.2665 41.9418 +-380.573 40.8385 39.5881 +-381.352 38.4824 37.3041 +-381.805 36.0914 34.9863 +-380.641 33.5577 32.5303 +-380.637 31.1389 30.1855 +-381.896 28.8203 27.9379 +-381.336 26.3644 25.5572 +-380.945 23.9302 23.1975 +-381.221 21.5424 20.8828 +-380.371 19.0978 18.5131 +-380.788 16.7225 16.2105 +-381.077 14.3397 13.9007 +-380.338 11.9233 11.5582 +-3274.5 82.1034 79.5896 +-151.048 2.83999 2.75303 +-144.778 1.8145 1.75894 +-146.094 0.915431 0.887403 +96.5 -3.55271e-15 -1.7053e-13 +96.4963 0.60991 0.580655 +96.5853 1.22104 1.16247 +96.4669 1.82955 1.74179 +96.4412 2.43917 2.32218 +96.4082 3.04862 2.90239 +96.4676 3.66162 3.48599 +96.4198 4.27119 4.06632 +96.3647 4.88043 4.64634 +96.3022 5.4893 5.226 +96.1328 6.09144 5.79926 +96.0557 6.6988 6.37749 +96.0708 7.31318 6.96239 +96.8733 7.99391 7.61048 +96.7732 8.60591 8.19312 +96.6659 9.21719 8.77508 +96.5511 9.82782 9.35642 +96.3301 10.4269 9.92679 +96.0033 11.0127 10.4845 +95.867 11.6191 11.0617 +95.6248 12.2119 11.6262 +96.359 12.9347 12.3143 +96.1013 13.5294 12.8804 +96.0326 14.1507 13.472 +95.7607 14.7421 14.035 +95.5794 15.3467 14.6106 +95.4883 15.9665 15.2007 +95.2923 16.5694 15.7746 +96.0593 17.3463 16.5143 +95.7498 17.9346 17.0744 +96.496 18.7266 17.8283 +96.2667 19.3357 18.4083 +96.03 19.9435 18.9869 +96.5531 20.7141 19.7206 +96.2999 21.3236 20.3008 +96.0393 21.9315 20.8795 +95.7714 22.5376 21.4566 +96.3497 23.3489 22.229 +95.9701 23.9334 22.7854 +96.5265 24.7566 23.5692 +96.1306 25.341 24.1255 +96.8519 26.2266 24.9686 +96.4389 26.8118 25.5257 +96.9495 27.6592 26.3325 +96.7053 28.2981 26.9407 +96.2682 28.8804 27.4952 +96.9292 29.7991 28.3698 +96.5664 30.4106 28.9519 +96.2877 31.0492 29.5599 +96.0009 31.6866 30.1667 +95.6155 32.2921 30.7432 +96.7571 33.4253 31.8221 +96.3507 34.0356 32.4031 +96.8319 34.9664 33.2892 +95.5159 35.2483 33.5576 +96.6842 36.4526 34.7041 +96.2413 37.0623 35.2846 +96.582 37.9802 36.1584 +95.9458 38.5189 36.6713 +96.3484 39.4805 37.5868 +96.5618 40.3777 38.4409 +96.0717 40.9864 39.0205 +96.2599 41.8905 39.8812 +96.4336 42.8001 40.7471 +96.6775 43.7533 41.6547 +96.1466 44.3627 42.2348 +96.2794 45.2843 43.1122 +95.7301 45.8911 43.6899 +95.9196 46.8588 44.6112 +96.0931 47.8325 45.5382 +96.2504 48.8119 46.4706 +95.6586 49.4184 47.048 +95.7067 50.3617 47.946 +95.7394 51.3093 48.8482 +95.9161 52.3483 49.8374 +95.9164 53.3053 50.7484 +95.8221 54.2215 51.6208 +95.8695 55.2309 52.5817 +95.8998 56.2449 53.5471 +95.9129 57.2635 54.5168 +95.2193 57.8676 55.0919 +95.7351 59.2198 56.3792 +95.7726 60.2977 57.4055 +95.6416 61.2847 58.3451 +95.4941 62.2746 59.2875 +95.4037 63.3161 60.2791 +95.2954 64.3612 61.2741 +95.7494 65.8086 62.652 +95.0248 66.4616 63.2737 +95.4329 67.9226 64.6647 +95.1766 68.9329 65.6265 +95.0433 70.0484 66.6885 +94.8209 71.1153 67.7042 +95.1306 72.6052 69.1227 +94.7978 73.6272 70.0956 +95.1907 75.2379 71.6291 +95.4849 76.806 73.1219 +95.1522 77.8945 74.1582 +94.8661 79.0396 75.2484 +95.0792 80.6272 76.7598 +94.6183 81.6694 77.752 +94.7757 83.27 79.2759 +94.5869 84.5976 80.5398 +94.311 85.8723 81.7534 +94.2578 87.378 83.1869 +94.2363 88.9475 84.6811 +94.1841 90.5228 86.1808 +94.0415 92.0466 87.6315 +94.1044 93.8095 89.3098 +94.3062 95.7563 91.1633 +92.1737 95.3406 90.7675 +90.7949 95.6803 91.0909 +88.5762 95.1103 90.5482 +87.758 96.0286 91.4225 +87.8503 97.9769 93.2774 +88.547 100.666 95.8376 +88.4965 102.573 97.6531 +87.832 103.808 98.8287 +87.4535 105.414 100.358 +93.5393 115.012 109.495 +93.1 116.79 111.188 +93.5112 119.707 113.965 +92.9865 121.497 115.669 +93.3323 124.499 118.527 +93.1432 126.874 120.789 +92.9038 129.257 123.057 +92.9319 132.098 125.761 +92.9876 135.078 128.599 +92.9785 138.069 131.447 +92.7751 140.874 134.117 +92.6379 143.884 136.983 +92.6425 147.232 140.17 +92.6546 150.724 143.494 +92.6294 154.292 146.891 +92.4861 157.805 150.235 +92.418 161.595 153.844 +92.1158 165.128 157.208 +92.0285 169.208 161.092 +92.1364 173.841 165.502 +91.5092 177.265 168.762 +89.9171 178.926 170.343 +88.3253 180.648 171.983 +90.0847 189.485 180.397 +91.003 196.984 187.536 +88.9042 198.172 188.667 +87.0844 200.039 190.444 +83.7353 198.366 188.851 +81.2852 198.748 189.215 +78.474 198.21 188.703 +76.1362 198.838 189.3 +73.2717 198.053 188.553 +71.0578 198.999 189.453 +68.0042 197.543 188.068 +66.0884 199.374 189.811 +63.0988 197.949 188.454 +60.8628 198.835 189.298 +58.0697 197.867 188.376 +55.8629 198.865 189.326 +53.1212 197.93 188.436 +50.8802 198.828 189.291 +48.1874 197.93 188.436 +45.9658 198.941 189.399 +43.2698 197.865 188.374 +41.0023 198.704 189.173 +38.3979 197.88 188.388 +36.2341 199.335 189.774 +33.5019 197.616 188.137 +31.2328 198.539 189.016 +28.5676 196.857 187.415 +26.3768 198.4 188.883 +23.7848 196.9 187.455 +21.5056 197.909 188.416 +19.0435 197.242 187.781 +16.7822 198.728 189.196 +14.2877 197.453 187.982 +11.943 198.114 188.612 +9.49615 196.952 187.505 +7.18034 198.597 189.071 +4.74007 196.68 187.246 +2.38671 198.079 188.578 +1.95399e-14 196.71 187.275 +-2.38845 198.224 188.716 +-4.74531 196.898 187.453 +-7.16725 198.235 188.727 +-9.48917 196.807 187.367 +-11.9255 197.825 188.336 +-14.2144 196.44 187.018 +-16.7151 197.933 188.439 +-18.9598 196.375 186.956 +-21.4743 197.62 188.141 +-23.7064 196.25 186.837 +-26.233 197.318 187.854 +-28.5363 196.64 187.208 +-31.1196 197.82 188.332 +-33.2825 196.322 186.905 +-35.9208 197.612 188.134 +-38.1195 196.445 187.022 +-40.6476 196.984 187.536 +-42.8318 195.862 186.467 +-45.5036 196.941 187.495 +-47.7012 195.933 186.535 +-50.3881 196.905 187.461 +-52.4343 195.371 186 +-55.3445 197.019 187.569 +-57.5292 196.024 186.622 +-60.3217 197.068 187.615 +-62.244 195.267 185.901 +-65.248 196.838 187.397 +-67.4236 195.856 186.462 +-70.2066 196.615 187.184 +-72.3917 195.674 186.288 +-75.4147 196.954 187.507 +-77.3438 195.356 185.985 +-80.4047 196.595 187.166 +-82.5073 195.456 186.081 +-85.7012 196.861 187.419 +-87.7917 195.692 186.306 +-90.7491 196.435 187.013 +-93.1125 195.854 186.46 +-96.0696 196.487 187.062 +-98.0914 195.192 185.829 +-101.56 196.735 187.299 +-103.819 195.883 186.487 +-107.238 197.173 187.716 +-109.273 195.884 186.489 +-112.318 196.391 186.97 +-114.484 195.34 185.97 +-115.916 193.081 183.819 +-118.726 193.135 183.871 +-120.22 191.059 181.895 +-124.292 193.049 183.789 +-128.077 194.478 185.15 +-131.511 195.289 185.922 +-138.009 200.478 190.862 +-139.829 198.76 189.226 +-143.281 199.346 189.784 +-143.33 195.235 185.871 +-143.148 190.948 181.789 +-143.746 187.82 178.811 +-148.86 190.56 181.42 +-155.4 194.943 185.593 +-1662.95 2044.69 1946.61 +-456.272 549.98 523.6 +-457.395 540.591 514.661 +-460.5 533.749 508.147 +-461.594 524.771 499.6 +-477.104 532.098 506.576 +-482.503 527.976 502.651 +-487.001 522.925 497.842 +-489.262 515.589 490.858 +-488.056 504.823 480.609 +-488.836 496.354 472.546 +-491.8 490.257 466.742 +-492.692 482.24 459.109 +-479.165 460.54 438.45 +-478.608 451.748 430.079 +-482.309 447.108 425.662 +-483.071 439.848 418.75 +-486.213 434.864 414.006 +-486.727 427.639 407.127 +-489.804 422.771 402.493 +-490.268 415.749 395.807 +-493.75 411.377 391.645 +-494.778 405.041 385.613 +-142.123 114.321 108.837 +-142.144 112.35 106.961 +-142.674 110.812 105.496 +-142.283 108.592 103.384 +-141.849 106.386 101.283 +-141.864 104.556 99.541 +-147.502 106.83 101.706 +-148.499 105.691 100.621 +-513.896 359.426 342.186 +-515.161 354.07 337.087 +-518.091 349.912 333.128 +-519.633 344.862 328.321 +-522.802 340.935 324.581 +-523.146 335.218 319.139 +-526.485 331.471 315.572 +-527.57 326.344 310.69 +-530.792 322.578 307.105 +-531.881 317.553 302.321 +-535.22 313.905 298.848 +-535.852 308.707 293.9 +-539.157 305.086 290.452 +-536.466 298.139 283.838 +-542.194 295.914 281.72 +-544.774 291.959 277.954 +-548.271 288.505 274.666 +-549.854 284.061 270.436 +-552.518 280.201 266.761 +-385.856 192.068 182.855 +-382.518 186.869 177.905 +-382.754 183.484 174.683 +-385.537 181.335 172.637 +-2763.37 1275.04 1213.88 +-380.519 172.212 163.951 +-382.835 169.914 161.764 +-383.411 166.854 158.85 +-381.874 162.917 155.102 +-382.09 159.772 152.109 +-135.166 55.3869 52.7302 +-135.041 54.2144 51.614 +-382.11 150.262 143.055 +-383.111 147.535 140.459 +-381.149 143.703 136.81 +-381.796 140.895 134.136 +-384.643 138.896 132.234 +-577.565 204.023 194.237 +-381.342 131.737 125.418 +-380.921 128.648 122.477 +-381.274 125.845 119.809 +-383.232 123.578 117.651 +-382.139 120.343 114.571 +-381.273 117.216 111.593 +-381.1 114.33 108.846 +-382.185 111.836 106.471 +-382.029 108.991 103.763 +-601.973 167.36 159.332 +-380.008 102.903 97.9668 +-380.2 100.224 95.4169 +-609.983 156.445 148.941 +-379.909 94.7431 90.1986 +-376.579 91.2586 86.8813 +-378.52 89.0764 84.8038 +-380.915 86.9855 82.8131 +-381.087 84.3839 80.3364 +-381.802 81.9106 77.9817 +-381.333 79.1946 75.3959 +-381.405 76.6075 72.933 +-381.734 74.0813 70.5279 +-381.45 71.4484 68.0213 +-381.52 68.8946 65.59 +-381.072 66.2608 63.0826 +-381.368 63.7683 60.7096 +-381.048 61.1832 58.2485 +-381.478 58.7273 55.9104 +-381.877 56.2707 53.5716 +-381.068 53.6477 51.0745 +-382.093 51.2899 48.8298 +-379.348 48.4455 46.1217 +-381.397 46.2253 44.0081 +-380.359 43.6317 41.5389 +-381.463 41.2903 39.3098 +-380.263 38.7064 36.8499 +-379.823 36.2165 34.4793 +-380.244 33.8145 32.1925 +-380.935 31.4345 29.9268 +-381.399 29.0333 27.6407 +-380.64 26.5453 25.272 +-381.642 24.1827 23.0228 +-380.324 21.6787 20.6389 +-381.169 19.3044 18.3785 +-379.89 16.8283 16.0211 +-380.078 14.4267 13.7347 +-380.837 12.0428 11.4652 +-380.168 9.61518 9.15398 +-380.27 7.212 6.86607 +-144.078 1.82144 1.73408 +-145.794 0.921502 0.877301 +96.6 3.55271e-15 -1.7053e-13 +96.4963 0.615123 0.57513 +96.6853 1.23275 1.1526 +96.5669 1.84709 1.727 +96.5412 2.46257 2.30247 +96.4082 3.07467 2.87477 +96.5675 3.69674 3.4564 +96.4198 4.30769 4.02763 +96.4644 4.92724 4.60689 +96.3022 5.53621 5.17628 +96.332 6.15623 5.75598 +96.1553 6.76305 6.32335 +96.1703 7.38335 6.90332 +95.979 7.9878 7.46847 +96.8725 8.6883 8.12343 +96.6659 9.29597 8.69159 +96.6502 9.92196 9.27689 +96.429 10.5269 9.84245 +96.2996 11.1412 10.4168 +95.867 11.7184 10.9565 +95.7233 12.329 11.5275 +95.3757 12.9121 12.0726 +95.316 13.5335 12.6537 +96.0326 14.2717 13.3438 +95.8585 14.8832 13.9156 +95.5794 15.4779 14.4716 +95.4883 16.103 15.0561 +95.2923 16.711 15.6245 +96.0593 17.4946 16.3572 +95.8466 18.1062 16.929 +96.496 18.8866 17.6587 +95.3994 19.3253 18.0689 +96.1262 20.134 18.825 +96.5531 20.8912 19.5329 +96.4911 21.5486 20.1476 +96.1347 22.1408 20.7014 +96.7224 22.956 21.4635 +96.3497 23.5485 22.0175 +95.9701 24.138 22.5686 +96.5265 24.9682 23.3449 +96.1306 25.5576 23.896 +95.8216 26.1694 24.468 +96.5322 27.0671 25.3073 +97.0426 27.9224 26.107 +96.7053 28.5399 26.6844 +96.453 29.1832 27.2859 +96.8371 30.0252 28.0731 +96.5664 30.6705 28.6764 +96.379 31.3443 29.3064 +95.8189 31.8968 29.8231 +96.5218 32.8768 30.7393 +96.0351 33.4594 31.2841 +96.3507 34.3265 32.0947 +96.0265 34.9719 32.6982 +96.2287 35.8149 33.4863 +95.8859 36.4606 34.0901 +96.2413 37.379 34.9488 +96.4941 38.2699 35.7818 +96.0332 38.8836 36.3555 +96.2613 39.7819 37.1955 +96.4752 40.6862 38.041 +96.0717 41.3367 38.6492 +96.0885 42.1733 39.4314 +96.4336 43.1658 40.3594 +96.4231 44.0111 41.1497 +96.1466 44.7419 41.833 +96.0278 45.5519 42.5904 +96.2304 46.5251 43.5003 +95.6709 47.1368 44.0722 +96.0931 48.2413 45.1049 +96.0046 49.1034 45.9109 +95.3329 49.671 46.4417 +95.3831 50.6203 47.3293 +95.4982 51.6174 48.2615 +95.4369 52.5319 49.1166 +94.9644 53.2272 49.7666 +95.5069 54.5051 50.9615 +95.5565 55.521 51.9113 +95.589 56.5418 52.8657 +95.5271 57.5206 53.7809 +94.9129 58.1743 54.3921 +95.507 59.5836 55.7098 +95.3953 60.5735 56.6353 +95.3421 61.6148 57.6089 +95.1969 62.6112 58.5406 +95.1088 63.6598 59.521 +95.0028 64.712 60.5048 +95.4593 66.1699 61.8679 +95.3125 67.2325 62.8614 +95.1476 68.2983 63.8579 +94.9644 69.367 64.8571 +94.7629 70.4387 65.8591 +94.9598 71.8282 67.1583 +94.8553 73.0136 68.2666 +94.6614 74.1498 69.3289 +94.8529 75.6121 70.6962 +94.5482 76.702 71.7152 +94.8209 78.2871 73.1972 +94.4725 79.3842 74.223 +94.7545 81.0387 75.7699 +94.1684 81.9758 76.6462 +94.3304 83.5872 78.1528 +94.2722 85.0364 79.5078 +93.6262 85.9773 80.3874 +93.7037 87.6069 81.9111 +94.1145 89.5915 83.7667 +93.4017 90.5382 84.6519 +93.4467 92.246 86.2486 +93.8693 94.3746 88.2388 +93.8416 96.0992 89.8513 +91.1413 95.078 88.8965 +90.002 95.6558 89.4367 +87.9051 95.1963 89.0071 +88.1995 97.3365 91.0082 +88.0681 99.0589 92.6186 +88.4395 101.403 94.8103 +88.2316 103.14 96.4343 +87.623 104.446 97.6555 +87.608 106.503 99.5787 +91.1539 113.037 105.688 +93.35 118.105 110.426 +93.265 120.412 112.583 +93.1319 122.726 114.747 +93.046 125.177 117.039 +92.9554 127.701 119.398 +93.1347 130.685 122.189 +92.7957 133.032 124.383 +92.8538 136.037 127.192 +92.847 139.053 130.012 +92.689 141.947 132.718 +92.4689 144.849 135.432 +92.4766 148.224 138.587 +92.5733 151.878 142.004 +92.4699 155.343 145.243 +92.4079 159.019 148.68 +92.265 162.706 152.128 +91.8535 166.065 155.268 +91.9918 170.586 159.496 +91.8497 174.781 163.417 +90.7387 177.275 165.75 +89.0962 178.808 167.182 +86.8232 179.093 167.449 +90.8986 192.832 180.295 +90.4953 197.56 184.715 +88.1007 198.059 185.183 +86.0319 199.31 186.352 +82.7412 197.685 184.833 +80.7456 199.116 186.17 +77.5368 197.517 184.675 +75.3345 198.425 185.525 +72.547 197.769 184.911 +70.3568 198.719 185.799 +67.3994 197.459 184.621 +65.2713 198.592 185.681 +62.4689 197.648 184.798 +60.3001 198.68 185.763 +57.5084 197.628 184.78 +55.1452 197.987 185.115 +52.4534 197.112 184.297 +50.2606 198.086 185.207 +47.5796 197.103 184.289 +45.3551 197.975 185.104 +42.863 197.68 184.828 +40.618 198.524 185.617 +37.869 196.822 184.026 +35.7381 198.287 185.396 +33.1728 197.347 184.517 +30.9271 198.277 185.386 +28.3481 197.013 184.205 +26.0988 197.986 185.114 +23.5321 196.472 183.699 +21.2781 197.488 184.649 +18.8273 196.669 183.883 +16.5503 197.656 184.806 +14.0993 196.515 183.738 +11.8165 197.691 184.838 +9.39843 196.591 183.81 +7.08348 197.593 184.746 +4.70517 196.9 184.099 +2.36315 197.799 184.939 +2.30926e-14 196.711 183.922 +-2.35704 197.288 184.461 +-4.69644 196.535 183.757 +-7.06516 197.082 184.269 +-9.38447 196.299 183.537 +-11.7772 197.035 184.224 +-14.0888 196.368 183.602 +-16.4892 196.927 184.124 +-18.7784 196.159 183.406 +-21.2703 197.415 184.58 +-23.471 195.962 183.222 +-25.8975 196.46 183.687 +-28.254 196.36 183.593 +-30.712 196.898 184.097 +-32.9413 195.97 183.229 +-35.3987 196.404 183.635 +-37.7437 196.171 183.417 +-40.2042 196.501 183.725 +-42.4094 195.588 182.871 +-45.058 196.679 183.892 +-47.2149 195.593 182.876 +-49.9143 196.721 183.931 +-52.0909 195.75 183.023 +-54.7664 196.627 183.843 +-56.9678 195.77 183.042 +-59.5209 196.113 183.363 +-61.8615 195.726 183.001 +-64.6177 196.603 183.821 +-66.7221 195.475 182.766 +-69.5055 196.315 183.552 +-71.667 195.371 182.669 +-74.4793 196.173 183.419 +-76.5721 195.059 182.377 +-79.6663 196.455 183.682 +-81.7471 195.311 182.613 +-84.6186 196.036 183.291 +-86.9574 195.489 182.779 +-89.8924 196.244 183.485 +-92.2335 195.663 182.942 +-95.2017 196.376 183.608 +-97.5441 195.761 183.034 +-100.58 196.501 183.725 +-102.708 195.443 182.736 +-105.992 196.548 183.77 +-107.999 195.255 182.561 +-111.208 196.111 183.361 +-113.507 195.328 182.629 +-116.714 196.07 183.323 +-118.93 195.119 182.434 +-122.044 195.617 182.899 +-124.334 194.765 182.102 +-127.69 195.547 182.834 +-130.196 194.989 182.311 +-135.823 198.989 186.051 +-138.467 198.506 185.6 +-142.265 199.624 186.646 +-143.33 196.904 184.102 +-143.1 192.516 180 +-142.873 188.274 176.034 +-145.807 188.247 176.008 +-149.55 189.208 176.906 +-158.809 196.933 184.129 +-457.817 556.559 520.374 +-458.545 546.581 511.045 +-462.09 540.169 505.05 +-469.116 537.88 502.91 +-482.714 542.956 507.656 +-486.808 537.239 502.31 +-486.386 526.728 492.482 +-487.562 518.189 484.499 +-489.318 510.455 477.267 +-490.752 502.558 469.885 +-493.034 495.688 463.461 +-492.87 486.537 454.905 +-479.225 464.534 434.332 +-480.313 457.232 427.505 +-483.417 451.965 422.58 +-484.939 445.322 416.37 +-487.346 439.603 411.022 +-489.144 433.436 405.256 +-491.475 427.84 400.024 +-492.606 421.302 393.911 +-494.734 415.72 388.692 +-141.668 116.965 109.361 +-142.257 115.406 107.903 +-142.55 113.634 106.246 +-142.197 111.385 104.143 +-142.145 109.415 102.301 +-142.266 107.611 100.615 +-143.266 106.491 99.5678 +-149.129 108.932 101.85 +-512.97 368.217 344.277 +-515.263 363.462 339.831 +-517.192 358.504 335.196 +-519.773 354.048 331.029 +-520.444 348.352 325.704 +-523.471 344.289 321.905 +-524.494 338.954 316.917 +-527.844 335.167 313.376 +-529.471 330.319 308.843 +-532.171 326.18 304.974 +-533.27 321.103 300.226 +-536.386 317.277 296.65 +-537.26 312.164 291.868 +-562.482 321.004 300.134 +-537.418 301.221 281.637 +-540.037 297.256 277.93 +-546.703 295.497 276.285 +-549.97 291.872 272.896 +-550.993 287.083 268.418 +-553.993 283.35 264.928 +-554.884 278.566 260.455 +-383.43 188.915 176.633 +-385.088 186.181 174.076 +-382.685 181.531 169.729 +-383.827 178.614 167.001 +-377.297 172.212 161.016 +-383.091 171.48 160.332 +-380.754 167.113 156.248 +-382.133 164.42 153.73 +-382.61 161.357 150.866 +-384.958 159.092 148.749 +-134.954 54.6424 51.0898 +-582.656 231.083 216.059 +-383.023 148.762 139.09 +-381.681 145.134 135.698 +-381.173 141.866 132.643 +-380.795 138.682 129.665 +-578.913 206.247 192.838 +-580.814 202.36 189.204 +-382.009 130.119 121.659 +-382.548 127.345 119.066 +-381.497 124.07 116.003 +-381.68 121.225 113.344 +-382.286 118.531 110.825 +-381.747 115.503 107.993 +-382.185 112.791 105.458 +-380.634 109.521 102.401 +-604.4 169.47 158.452 +-379.54 103.654 96.9151 +-380.294 101.106 94.533 +-381.487 98.6784 92.2628 +-380.098 95.6003 89.3848 +-379.045 92.6412 86.6181 +-380.423 90.2891 84.419 +-383.585 88.3439 82.6002 +-380.992 85.0839 79.5522 +-381.994 82.6522 77.2786 +-381.14 79.8312 74.641 +-382.272 77.4375 72.4029 +-382.024 74.7714 69.9101 +-381.16 72.0041 67.3228 +-381.423 69.4657 64.9494 +-381.363 66.8783 62.5302 +-382.148 64.4448 60.2549 +-381.244 61.7377 57.7238 +-380.01 59.0014 55.1654 +-380.701 56.5768 52.8985 +-381.657 54.1898 50.6666 +-3221.63 436.15 407.794 +-381.219 49.1005 45.9082 +-381.397 46.6204 43.5893 +-380.359 44.0046 41.1437 +-381.463 41.6432 38.9358 +-382.243 39.2405 36.6893 +-380.12 36.5546 34.178 +-381.435 34.2103 31.9862 +-380.935 31.7032 29.642 +-380.305 29.1975 27.2992 +-380.64 26.7721 25.0315 +-380.048 24.2875 22.7084 +-380.025 21.8468 20.4265 +-380.571 19.4389 18.1751 +-381.088 17.0256 15.9187 +-380.678 14.5729 13.6254 +-381.437 12.1649 11.374 +-380.068 9.69479 9.06449 +-3275.38 62.6501 58.5769 +-147.078 1.87526 1.75334 +-146.394 0.933198 0.872526 +96.6 3.55271e-15 -1.7053e-13 +96.5963 0.620928 0.570148 +96.6853 1.2431 1.14143 +96.5669 1.86259 1.71027 +95.6417 2.4601 2.25891 +96.608 3.10691 2.85282 +96.5675 3.72777 3.42291 +96.5196 4.34835 3.99273 +96.3647 4.96346 4.55754 +96.4019 5.58846 5.13142 +97.129 6.25926 5.74737 +97.0511 6.88336 6.32042 +96.1703 7.44533 6.83643 +96.1778 8.07157 7.41146 +96.8725 8.76123 8.04472 +96.765 9.38365 8.61623 +96.6502 10.0053 9.187 +96.429 10.6152 9.74708 +96.1021 11.2116 10.2947 +95.867 11.8167 10.8503 +95.7233 12.4325 11.4158 +96.359 13.1547 12.0789 +96.1995 13.7736 12.6472 +96.1306 14.4061 13.228 +95.9563 15.0235 13.7948 +95.7746 15.6397 14.3606 +95.5857 16.2547 14.9254 +96.3619 17.0404 15.6468 +96.2533 17.6771 16.2314 +96.7179 18.4242 16.9174 +95.7232 18.8927 17.3476 +96.363 19.6843 18.0745 +96.03 20.2827 18.624 +96.649 21.0875 19.3629 +96.3955 21.708 19.9326 +96.1347 22.3267 20.5008 +96.8176 23.1714 21.2764 +96.4445 23.7695 21.8256 +96.1592 24.3885 22.394 +96.5265 25.1778 23.1187 +96.1306 25.7721 23.6644 +95.8216 26.389 24.2309 +96.1588 27.1887 24.9652 +96.8565 28.1028 25.8045 +96.5198 28.7242 26.3751 +96.1759 29.3435 26.9438 +96.8371 30.2772 27.8011 +96.5664 30.9279 28.3986 +96.379 31.6074 29.0224 +96.0009 32.2257 29.5902 +96.5218 33.1528 30.4415 +96.1253 33.772 31.01 +96.3507 34.6146 31.7838 +96.116 35.2983 32.4115 +96.496 36.2158 33.254 +95.8859 36.7666 33.7598 +96.153 37.6583 34.5785 +95.7032 38.2749 35.1447 +96.0332 39.21 36.0033 +96.1743 40.0796 36.8018 +95.6958 40.6963 37.3681 +96.1578 41.7211 38.3091 +96.0885 42.5273 39.0493 +96.3483 43.4897 39.933 +95.8294 44.1074 40.5002 +95.8936 44.9987 41.3186 +96.1116 45.9744 42.2145 +95.5633 46.5905 42.7802 +95.6709 47.5325 43.6452 +95.8459 48.5211 44.5529 +96.0046 49.5156 45.4661 +96.0656 50.4729 46.3451 +96.1112 51.4349 47.2284 +95.4982 52.0507 47.7939 +95.5967 53.0616 48.7221 +95.5197 53.9879 49.5727 +95.5069 54.9626 50.4677 +95.5565 55.9871 51.4083 +95.589 57.0164 52.3534 +95.6043 58.0503 53.3028 +95.5257 59.0414 54.2129 +94.7466 59.6053 54.7307 +95.4708 61.1303 56.1309 +94.7429 61.7416 56.6922 +95.1969 63.1368 57.9733 +95.1088 64.1942 58.9442 +95.0028 65.2552 59.9185 +95.5318 66.7761 61.315 +95.3125 67.7969 62.2523 +95.1476 68.8716 63.2392 +94.9644 69.9493 64.2287 +95.3938 71.5028 65.6551 +95.1682 72.5901 66.6535 +94.8553 73.6265 67.6052 +95.3434 75.3106 69.1516 +94.988 76.3551 70.1106 +94.5482 77.3458 71.0203 +94.8209 78.9442 72.488 +94.4725 80.0506 73.5038 +94.7545 81.7189 75.0358 +94.2327 82.7199 75.9549 +94.2668 84.2322 77.3435 +94.0834 85.5786 78.5798 +94.2487 87.2757 80.1381 +93.7652 88.4005 81.1709 +93.6884 89.9348 82.5797 +93.4619 91.3571 83.8857 +93.3872 92.9614 85.3588 +94.2808 95.5837 87.7666 +92.5641 95.5866 87.7693 +90.5104 95.2124 87.4257 +88.1895 94.5156 86.7859 +88.2966 96.4226 88.537 +88.1443 98.0925 90.0702 +87.9047 99.7049 91.5508 +88.9231 102.813 94.4049 +88.1786 103.943 95.4425 +87.6753 105.385 96.7667 +87.6595 107.46 98.672 +88.0579 110.114 101.109 +91.75 117.055 107.482 +92.8218 120.846 110.963 +92.7441 123.242 113.163 +92.7119 125.775 115.489 +92.9554 128.773 118.241 +93.1347 131.782 121.005 +92.7957 134.148 123.177 +92.8538 137.179 125.96 +92.847 140.22 128.752 +92.7321 143.205 131.493 +92.4689 146.065 134.119 +92.5595 149.603 137.368 +92.1258 152.413 139.948 +92.4699 156.647 143.836 +92.4861 160.489 147.364 +92.3798 164.277 150.842 +91.8535 167.459 153.764 +91.662 171.401 157.384 +91.6705 175.904 161.518 +90.1434 177.59 163.066 +88.7884 179.685 164.99 +86.723 180.388 165.636 +91.1265 194.938 178.995 +90.2732 198.729 182.477 +87.4209 198.181 181.973 +84.9795 198.524 182.289 +82.2442 198.148 181.943 +79.8651 198.598 182.356 +77.2887 198.538 182.301 +74.6664 198.317 182.098 +72.107 198.22 182.009 +69.7058 198.533 182.297 +67.0124 197.973 181.783 +64.641 198.325 182.105 +62.109 198.159 181.953 +59.759 198.55 182.312 +57.2173 198.278 182.063 +54.8661 198.639 182.393 +52.2244 197.899 181.714 +49.8961 198.3 182.082 +47.406 198.033 181.837 +45.0745 198.403 182.177 +42.6127 198.175 181.968 +40.2189 198.223 182.012 +37.7437 197.818 181.64 +35.3857 197.98 181.789 +32.9413 197.615 181.453 +30.6215 197.965 181.775 +28.16 197.349 181.209 +25.9071 198.183 181.975 +23.4536 197.461 181.312 +21.1369 197.825 181.646 +18.7854 197.879 181.696 +16.4465 198.066 181.868 +14.047 197.428 181.282 +11.7511 198.247 182.034 +9.36702 197.579 181.42 +7.03375 197.853 181.672 +4.6755 197.301 181.165 +2.33958 197.471 181.321 +1.95399e-14 196.889 180.787 +-2.33958 197.471 181.321 +-4.66677 196.933 180.827 +-7.0128 197.263 181.131 +-9.34609 197.137 181.015 +-11.6944 197.291 181.156 +-14.0365 197.281 181.147 +-16.3793 197.257 181.125 +-18.7226 197.218 181.089 +-21.0663 197.163 181.039 +-23.3926 196.947 180.841 +-25.8208 197.523 181.369 +-28.0659 196.69 180.604 +-30.4969 197.16 181.036 +-32.7341 196.372 180.312 +-35.3073 197.542 181.386 +-37.4932 196.505 180.434 +-39.9529 196.912 180.808 +-42.1434 195.993 179.964 +-44.7609 197.022 180.909 +-46.9197 196.002 179.972 +-49.5498 196.924 180.819 +-51.7283 196.019 179.988 +-54.2281 196.329 180.273 +-56.5728 196.045 180.012 +-59.1313 196.465 180.397 +-61.4341 196.005 179.975 +-64.1741 196.892 180.79 +-66.4076 196.186 180.142 +-69.0798 196.751 180.66 +-71.227 195.801 179.788 +-74.025 196.614 180.534 +-76.3515 196.13 180.09 +-78.9279 196.267 180.216 +-81.2501 195.753 179.743 +-84.1074 196.488 180.418 +-86.463 196.01 179.98 +-89.0674 196.074 180.039 +-91.68 196.122 180.082 +-94.3004 196.15 180.108 +-96.9627 196.228 180.18 +-99.8441 196.701 180.615 +-102.027 195.777 179.766 +-105.369 197.033 180.919 +-107.287 195.596 179.6 +-110.634 196.737 180.648 +-112.921 195.951 179.925 +-115.837 196.231 180.182 +-118.564 196.152 180.11 +-121.547 196.455 180.388 +-123.996 195.866 179.848 +-127.044 196.192 180.147 +-129.407 195.434 179.451 +-132.878 196.308 180.253 +-137.65 198.991 182.717 +-140.972 199.47 183.157 +-143.658 199.012 182.736 +-143.1 194.132 178.256 +-142.97 189.984 174.446 +-144.231 187.775 172.419 +-147.85 188.628 173.201 +-156.17 195.286 179.315 +-458.281 561.798 515.853 +-459.485 552.3 507.132 +-465.11 548.264 503.425 +-474.973 549.167 504.255 +-484.783 549.861 504.892 +-489.458 544.697 500.151 +-488.343 533.287 489.673 +-488.072 523.086 480.307 +-489.949 515.403 473.252 +-492.088 508.156 466.598 +-493.034 499.849 458.97 +-480.617 478.424 439.297 +-480.068 469.258 430.881 +-481.165 461.887 424.113 +-484.341 456.63 419.285 +-486.122 450.156 413.341 +-487.912 443.808 407.512 +-489.526 437.415 401.642 +-492.054 431.938 396.614 +-493.97 426.015 391.174 +-141.84 120.187 110.358 +-141.999 118.223 108.554 +-142.19 116.32 106.807 +-142.414 114.479 105.116 +-142.128 112.266 103.084 +-141.732 110.013 101.016 +-142.197 108.461 99.5912 +-147.191 110.328 101.305 +-148.987 109.742 100.767 +-514.111 372.134 341.7 +-516.27 367.229 337.196 +-518.207 362.224 332.6 +-521.163 357.974 328.698 +-522.287 352.521 323.691 +-524.437 347.819 319.374 +-526.216 342.922 314.877 +-528.9 338.657 310.961 +-530.459 333.713 306.422 +-533.397 329.675 302.714 +-534.659 324.642 298.092 +-537.086 320.358 294.158 +-538.356 315.426 289.63 +-567.683 326.692 299.975 +-558.6 315.722 289.901 +-540.037 299.751 275.237 +-545.98 297.583 273.246 +-550.698 294.711 270.609 +-552.215 290.134 266.406 +-555.139 286.32 262.904 +-556.368 281.656 258.622 +-383.098 190.336 174.77 +-383.754 187.093 171.792 +-383.943 183.657 168.637 +-383.827 180.113 165.383 +-380.35 175.063 160.746 +-381.045 171.996 157.93 +-381.354 168.781 154.978 +-381.616 165.576 152.035 +-381.138 162.085 148.83 +-381.39 158.94 145.942 +-132.33 54.0297 49.6111 +-135.25 54.0909 49.6672 +-382.405 149.768 137.52 +-379.552 145.536 133.634 +-382.331 143.492 131.757 +-381.868 140.241 128.771 +-385.313 138.426 127.106 +-581.897 204.44 187.72 +-382.824 131.491 120.737 +-380.819 127.834 117.379 +-381.497 125.111 114.879 +-380.947 122.008 112.03 +-381.733 119.353 109.592 +-381.562 116.416 106.895 +-381.814 113.628 104.335 +-380.355 110.36 101.334 +-604.587 170.946 156.966 +-378.416 104.215 95.692 +-376.911 101.048 92.7837 +-378.471 98.7193 90.6458 +-376.505 95.4916 87.6821 +-378.097 93.1846 85.5638 +-379.472 90.8194 83.392 +-622.682 144.614 132.788 +-380.992 85.7981 78.7814 +-381.994 83.346 76.5298 +-382.102 80.7046 74.1044 +-381.983 78.0286 71.6473 +-381.444 75.2849 69.1279 +-382.031 72.7745 66.8228 +-381.423 70.0488 64.3201 +-381.072 67.3881 61.8769 +-381.368 64.8532 59.5494 +-381.732 62.3356 57.2377 +-381.478 59.7264 54.8419 +-380.995 57.0959 52.4264 +-380.871 54.5322 50.0725 +-380.913 52.0014 47.7486 +-381.219 49.5126 45.4634 +-380.706 46.9266 43.0889 +-381.248 44.4777 40.8402 +-380.969 41.9383 38.5085 +-381.451 39.4879 36.2585 +-381.805 37.0249 33.9969 +-381.435 34.4975 31.6762 +-381.532 32.0193 29.4007 +-381.001 29.4965 27.0842 +-380.64 26.9969 24.789 +-380.646 24.5299 22.5238 +-380.623 22.0649 20.2604 +-380.571 19.6021 17.999 +-380.788 17.1551 15.7521 +-380.977 14.7068 13.504 +-380.038 12.222 11.2225 +-380.368 9.78383 8.98369 +-150.548 2.9038 2.66632 +-146.278 1.88071 1.72691 +-146.394 0.941031 0.864072 +96.6 3.55271e-15 -1.7053e-13 +96.5963 0.626047 0.564523 +96.6853 1.25334 1.13017 +96.5669 1.87795 1.69339 +96.5412 2.50371 2.25766 +96.5081 3.12928 2.82175 +96.4676 3.75461 3.38563 +96.4198 4.37966 3.94925 +96.5642 5.01474 4.52192 +96.3022 5.6287 5.07555 +97.129 6.31086 5.69066 +97.0511 6.94009 6.25806 +96.2697 7.5145 6.77602 +96.0784 8.12971 7.33077 +95.9792 8.75206 7.89196 +96.765 9.461 8.53123 +96.6502 10.0877 9.09636 +96.429 10.7027 9.65092 +96.1021 11.304 10.1932 +95.9656 11.9264 10.7543 +96.6096 12.6511 11.4078 +95.4741 13.1414 11.8499 +96.2976 13.9013 12.5352 +96.1306 14.5249 13.0975 +95.9563 15.1473 13.6587 +95.7746 15.7686 14.219 +95.5857 16.3887 14.7781 +96.3619 17.1809 15.4925 +96.1563 17.8048 16.0551 +95.9434 18.4273 16.6164 +95.7232 19.0484 17.1764 +96.363 19.8466 17.8962 +96.8952 20.6341 18.6063 +95.882 21.0926 19.0197 +96.3955 21.8869 19.736 +96.1347 22.5107 20.2985 +95.8665 23.1329 20.8596 +96.4445 23.9654 21.6103 +96.1592 24.5896 22.1731 +96.5265 25.3853 22.8906 +96.1306 25.9846 23.431 +96.4772 26.7887 24.156 +97.1857 27.7056 24.9829 +96.2052 28.1439 25.378 +96.5198 28.961 26.1149 +96.3606 29.6423 26.7292 +96.0087 30.2657 27.2914 +96.5664 31.1829 28.1184 +96.1963 31.8075 28.6817 +96.0009 32.4913 29.2982 +96.6124 33.4575 30.1695 +96.1253 34.0504 30.7041 +97.1596 35.1929 31.7344 +96.116 35.5893 32.0918 +96.496 36.5143 32.9259 +95.8859 37.0697 33.4267 +96.153 37.9687 34.2373 +96.4941 38.9093 35.0855 +95.8583 39.4611 35.5831 +96.3484 40.4832 36.5047 +96.6484 41.4402 37.3677 +95.9855 41.9896 37.8632 +96.0885 42.8779 38.6641 +96.3483 43.8481 39.539 +95.8294 44.4709 40.1006 +96.0623 45.4494 40.9829 +96.0278 46.3129 41.7616 +96.2304 47.3024 42.6538 +95.7538 47.9658 43.252 +95.8459 48.921 44.1133 +96.0046 49.9237 45.0175 +96.0656 50.889 45.8879 +95.3831 51.466 46.4082 +95.4982 52.4797 47.3223 +95.5967 53.499 48.2414 +95.5197 54.4329 49.0836 +95.5069 55.4157 49.9698 +95.4782 56.4024 50.8595 +95.5112 57.4396 51.7948 +95.5271 58.4816 52.7344 +95.5257 59.5281 53.678 +95.4309 60.5307 54.5821 +95.4708 61.6342 55.5771 +95.3421 62.6442 56.4879 +95.1969 63.6572 57.4014 +95.1088 64.7233 58.3627 +95.0028 65.7931 59.3274 +95.4593 67.2754 60.664 +95.3125 68.3557 61.6381 +95.1476 69.4393 62.6153 +94.9644 70.5259 63.5951 +95.3237 72.0392 64.9596 +95.0987 73.135 65.9478 +94.9241 74.2872 66.9867 +94.6614 75.3885 67.9798 +94.988 76.9845 69.4189 +95.0835 78.4253 70.7181 +94.6221 79.4278 71.6222 +94.4725 80.7104 72.7787 +94.105 81.8281 73.7865 +94.3612 83.5154 75.308 +94.394 85.0408 76.6835 +94.0205 86.2269 77.753 +93.8752 87.6461 79.0328 +93.5805 88.9539 80.212 +93.6884 90.6761 81.765 +93.5822 92.229 83.1653 +93.6846 94.0255 84.7852 +93.9281 96.0114 86.5759 +91.9833 95.77 86.3583 +90.2236 95.6935 86.2893 +88.2461 95.3563 85.9853 +88.0729 96.9709 87.4412 +87.8684 98.5914 88.9024 +87.8503 100.465 90.592 +88.4932 103.16 93.0222 +88.4965 105.178 94.8417 +87.6753 106.254 95.8121 +87.6595 108.346 97.6985 +87.8041 110.702 99.8227 +91.15 117.248 105.725 +92.8218 121.842 109.868 +93.1804 124.842 112.573 +93.1891 127.464 114.938 +93.0023 129.9 117.134 +92.7653 132.341 119.336 +92.7503 135.188 121.903 +92.8538 138.309 124.717 +92.7593 141.242 127.362 +92.689 144.318 130.135 +92.8492 147.875 133.343 +92.5595 150.836 136.013 +92.4919 154.279 139.118 +92.4699 157.938 142.417 +92.4079 161.676 145.787 +92.265 165.424 149.168 +91.9285 168.977 152.371 +92.0285 173.505 156.454 +91.6347 177.285 159.862 +89.548 177.871 160.391 +88.4464 180.469 162.734 +86.8899 182.226 164.318 +90.801 195.842 176.596 +89.9876 199.734 180.105 +87.1737 199.25 179.668 +84.7389 199.594 179.979 +82.0395 199.284 179.699 +79.6379 199.665 180.043 +77.0406 199.532 179.923 +74.4793 199.451 179.85 +71.8482 199.137 179.567 +69.5305 199.667 180.045 +66.7704 198.885 179.34 +64.4776 199.454 179.853 +62.019 199.503 179.897 +59.5858 199.607 179.991 +56.8638 198.678 179.153 +54.6468 199.475 179.872 +52.0527 198.874 179.33 +49.7503 199.351 179.76 +47.2497 199.007 179.449 +44.7939 198.793 179.257 +42.425 198.929 179.379 +39.9677 198.609 179.091 +37.6324 198.86 179.317 +35.3073 199.17 179.597 +32.8438 198.654 179.131 +30.5083 198.86 179.317 +28.0763 198.385 178.889 +25.7442 198.559 179.046 +23.3665 198.349 178.856 +21.082 198.937 179.387 +18.6599 198.176 178.701 +16.3366 198.364 178.87 +13.9999 198.388 178.892 +11.6682 198.471 178.967 +9.33213 198.465 178.961 +6.98925 198.222 178.742 +4.66154 198.333 178.842 +2.33173 198.43 178.93 +1.86517e-14 198.438 178.937 +-2.3326 198.505 178.997 +-4.66328 198.407 178.909 +-6.99186 198.295 178.808 +-9.32864 198.391 178.894 +-11.6638 198.397 178.9 +-13.9842 198.166 178.691 +-16.3183 198.141 178.669 +-18.6529 198.103 178.634 +-20.9957 198.122 178.652 +-23.2532 197.387 177.989 +-25.6579 197.894 178.446 +-27.9823 197.72 178.29 +-30.4177 198.269 178.785 +-32.6488 197.475 178.068 +-35.0724 197.844 178.401 +-37.3958 197.61 178.19 +-39.8199 197.874 178.428 +-41.987 196.875 177.528 +-44.4638 197.328 177.935 +-46.7635 196.959 177.603 +-49.24 197.305 177.915 +-51.5757 197.052 177.687 +-54.0486 197.293 177.904 +-56.4064 197.079 177.712 +-58.9365 197.432 178.029 +-61.2317 196.97 177.613 +-63.7072 197.071 177.704 +-66.1656 197.083 177.715 +-68.6542 197.15 177.775 +-70.9682 196.698 177.367 +-73.544 196.946 177.591 +-76.131 197.175 177.798 +-78.7007 197.316 177.925 +-81.0454 196.869 177.522 +-83.8668 197.541 178.128 +-86.1848 196.99 177.631 +-88.7818 197.057 177.692 +-91.4521 197.247 177.862 +-94 197.137 177.763 +-96.4155 196.729 177.396 +-99.4239 197.488 178.08 +-101.669 196.698 177.367 +-104.746 197.482 178.075 +-106.95 196.589 177.27 +-109.945 197.124 177.752 +-112.57 196.95 177.595 +-115.597 197.44 178.036 +-117.913 196.683 177.354 +-120.925 197.06 177.694 +-123.278 196.336 177.041 +-126.355 196.736 177.402 +-129.056 196.511 177.199 +-131.941 196.531 177.217 +-137.332 200.167 180.496 +-140.418 200.324 180.637 +-143.095 199.865 180.224 +-143.148 195.798 176.556 +-142.97 191.55 172.725 +-144.379 189.517 170.892 +-147.6 189.861 171.202 +-153.429 193.44 174.43 +-458.744 567.003 511.281 +-460.582 558.182 503.327 +-467.336 555.428 500.844 +-478.895 558.266 503.403 +-485.709 555.452 500.866 +-487.471 546.958 493.206 +-488.511 537.867 485.008 +-488.922 528.315 476.396 +-490.465 520.199 469.077 +-491.739 511.982 461.668 +-494.151 505.111 455.472 +-478.654 480.398 433.187 +-481.151 474.193 427.592 +-482.261 466.756 420.886 +-484.649 460.686 415.413 +-486.184 453.924 409.315 +-488.919 448.39 404.325 +-490.862 442.224 398.765 +-493.018 436.352 393.47 +-494.295 429.809 387.57 +-141.84 121.178 109.269 +-142.662 119.753 107.985 +-142.792 117.776 106.201 +-143.158 116.024 104.622 +-141.787 112.919 101.822 +-141.595 110.812 99.9218 +-143.516 110.371 99.5241 +-147.822 111.714 100.736 +-512.44 380.567 343.167 +-514.325 375.358 338.47 +-517.349 371.03 334.567 +-517.99 365.056 329.18 +-521.455 361.128 325.638 +-522.951 355.878 320.904 +-524.809 350.935 316.447 +-526.89 346.192 312.17 +-529.202 341.644 308.069 +-530.459 336.464 303.399 +-533.703 332.584 299.899 +-534.967 327.506 295.321 +-537.785 323.419 291.636 +-547.043 323.158 291.4 +-565.792 328.288 296.025 +-562.567 320.585 289.08 +-547.305 306.289 276.189 +-543.89 298.887 269.514 +-550.455 297.01 267.821 +-552.703 292.784 264.011 +-555.877 289.063 260.656 +-557.109 284.356 256.412 +-385.585 193.151 174.169 +-384.338 188.923 170.357 +-385.537 185.94 167.667 +-384.671 181.997 164.111 +-379.756 176.231 158.912 +-382.153 173.918 156.827 +-382.125 170.517 153.76 +-381.702 166.978 150.569 +-382.61 164.053 147.931 +-382.347 160.653 144.865 +-135.304 55.6992 50.2254 +-135.953 54.8203 49.4329 +-383.111 151.282 136.415 +-382.213 147.764 133.243 +-380.994 144.169 130.001 +-380.705 140.966 127.113 +-382.617 138.591 124.971 +-582.709 206.412 186.127 +-2969.52 1028.36 927.302 +-381.001 128.949 116.277 +-381.497 126.142 113.746 +-381.956 123.34 111.219 +-382.102 120.453 108.616 +-381.47 117.347 105.815 +-382 114.62 103.356 +-378.959 110.861 99.966 +-605.427 172.595 155.633 +-381.694 105.985 95.569 +-380.012 102.719 92.6244 +-380.544 100.079 90.2437 +-377.924 96.6419 87.1445 +-379.614 94.33 85.0598 +-620.659 149.767 135.049 +-623.254 145.94 131.598 +-381.948 86.7222 78.1997 +-380.843 83.7798 75.5464 +-381.813 81.3083 73.3178 +-381.405 78.553 70.8333 +-381.251 75.8668 68.4111 +-381.45 73.2628 66.063 +-382.297 70.7879 63.8313 +-381.947 68.0996 61.4072 +-380.297 65.204 58.7962 +-381.244 62.7691 56.6005 +-381.967 60.2959 54.3704 +-381.877 57.6997 52.0293 +-380.871 54.9818 49.5785 +-380.913 52.4301 47.2775 +-381.121 49.9079 45.0032 +-381.693 47.436 42.7743 +-381.248 44.8443 40.4373 +-380.672 42.2511 38.0989 +-380.56 39.7204 35.8169 +-380.715 37.2235 33.5654 +-380.244 34.6732 31.2657 +-380.24 32.174 29.0122 +-380.504 29.7008 26.7819 +-380.64 27.2194 24.5444 +-380.347 24.7127 22.2841 +-380.125 22.2177 20.0343 +-381.169 19.7947 17.8494 +-379.89 17.2557 15.5599 +-380.178 14.7969 13.3428 +-380.837 12.3487 11.1351 +-380.468 9.86708 8.8974 +-148.749 2.89274 2.60846 +-144.678 1.87547 1.69116 +-146.394 0.948788 0.855547 +95.8 -1.77636e-15 -1.7053e-13 +96.6963 0.631768 0.55943 +96.7853 1.26479 1.11997 +96.6669 1.89511 1.67812 +96.741 2.5292 2.23961 +96.608 3.15787 2.7963 +96.6673 3.79284 3.35856 +96.6194 4.42425 3.91768 +96.5642 5.05533 4.47649 +96.5016 5.68601 5.03496 +96.332 6.30974 5.58728 +96.3544 6.94604 6.15072 +97.1648 7.64569 6.77026 +97.072 8.28026 7.33218 +96.0785 8.83203 7.82077 +96.8642 9.54731 8.45415 +96.7492 10.1798 9.0142 +96.5279 10.8004 9.56378 +96.2996 11.419 10.1115 +96.1628 12.0476 10.6682 +96.0188 12.6755 11.2241 +95.5724 13.2614 11.743 +96.3958 14.0281 12.4219 +96.1306 14.6424 12.9659 +96.0541 15.2855 13.5353 +95.8723 15.9125 14.0905 +95.6831 16.5382 14.6446 +96.4591 17.3375 15.3524 +96.2533 17.9671 15.9098 +96.0402 18.5952 16.466 +95.8198 19.2219 17.021 +96.4594 20.0273 17.7342 +96.2223 20.6567 18.2915 +95.882 21.2633 18.8286 +96.5868 22.1078 19.5764 +96.3254 22.738 20.1345 +96.8176 23.5515 20.8549 +96.5393 24.1832 21.4142 +96.2538 24.8129 21.9719 +96.5265 25.5908 22.6607 +96.2245 26.2205 23.2183 +96.9456 27.1366 24.0295 +96.6256 27.7689 24.5894 +97.0426 28.6186 25.3418 +96.7053 29.2516 25.9023 +96.453 29.9109 26.4861 +96.9292 30.8032 27.2762 +96.5664 31.4353 27.836 +96.4704 32.1563 28.4744 +96.0919 32.7854 29.0314 +96.5218 33.6966 29.8384 +96.3058 34.3904 30.4527 +96.6204 35.2809 31.2412 +96.116 35.8774 31.7694 +96.496 36.8099 32.5952 +95.8859 37.3697 33.0909 +96.153 38.276 33.8934 +96.582 39.2599 34.7647 +96.8204 40.1798 35.5792 +96.4354 40.8477 36.1706 +96.6484 41.7757 36.9924 +96.1578 42.4055 37.5501 +96.1742 43.2635 38.3098 +96.4336 44.2422 39.1765 +95.9142 44.8706 39.7329 +96.6527 46.0988 40.8205 +96.1116 46.7285 41.3781 +95.7301 47.4374 42.0058 +95.7538 48.3541 42.8175 +95.9283 49.3594 43.7078 +96.0046 50.3278 44.5653 +96.0656 51.3009 45.4269 +96.1921 52.3227 46.3317 +95.5786 52.9491 46.8864 +95.6765 53.977 47.7966 +95.5197 54.8735 48.5905 +95.6645 55.9564 49.5494 +95.4782 56.8589 50.3486 +95.589 57.9517 51.3162 +95.6043 59.0026 52.2468 +95.5257 60.0099 53.1388 +95.4309 61.0207 54.0338 +95.4708 62.1331 55.0188 +95.3421 63.1512 55.9204 +95.2712 64.2226 56.8691 +95.1825 65.2978 57.8212 +95.7342 66.8363 59.1835 +95.4593 67.8199 60.0546 +94.6651 68.441 60.6045 +95.2189 70.0539 62.0327 +94.9644 71.0968 62.9562 +94.7629 72.1951 63.9288 +95.1682 73.7809 65.333 +94.9929 74.9431 66.3622 +94.6614 75.9988 67.2969 +94.988 77.6076 68.7216 +95.2842 79.227 70.1555 +94.7547 80.1831 71.0021 +94.5381 81.4206 72.098 +94.2999 82.6611 73.1965 +94.4255 84.2491 74.6026 +94.3304 85.6715 75.8622 +94.0834 86.9825 77.023 +93.813 88.2971 78.1871 +93.9499 90.0273 79.7192 +93.6275 91.3509 80.8913 +93.5822 92.9755 82.3299 +93.7441 94.8472 83.9872 +93.9281 96.7885 85.7063 +91.5188 96.0578 85.0592 +90.2236 96.4681 85.4225 +88.3594 96.2517 85.2309 +88.1847 97.8801 86.6728 +87.8132 99.3265 87.9536 +88.5038 102.031 90.3489 +88.2246 103.679 91.808 +88.5495 106.093 93.9453 +87.7275 107.178 94.9059 +87.6595 109.223 96.7171 +87.8549 111.662 98.877 +90.35 117.16 103.745 +92.9696 123.023 108.937 +93.1804 125.853 111.442 +93.1414 128.43 113.725 +92.9554 130.885 115.899 +93.1347 133.944 118.608 +92.8865 136.482 120.855 +92.8538 139.429 123.464 +92.847 142.52 126.202 +92.689 145.486 128.828 +92.8492 149.072 132.003 +92.5595 152.057 134.646 +92.5733 155.665 137.842 +92.43 159.148 140.926 +92.4861 163.122 144.445 +92.3032 166.833 147.731 +91.9285 170.345 150.841 +91.6986 174.282 154.327 +91.3122 178.09 157.699 +89.583 179.382 158.842 +88.1044 181.226 160.476 +87.7912 185.606 164.354 +90.9312 197.71 175.073 +89.702 200.711 177.73 +86.8647 200.15 177.233 +84.5885 200.853 177.856 +81.8641 200.467 177.514 +79.3539 200.564 177.599 +76.5169 199.779 176.904 +74.2388 200.416 177.469 +71.6152 200.098 177.187 +69.3052 200.63 177.658 +66.7704 200.495 177.538 +64.2442 200.34 177.402 +61.7266 200.169 177.25 +59.391 200.565 177.6 +56.8846 200.359 177.418 +54.4873 200.503 177.545 +51.9191 199.97 177.073 +49.5863 200.302 177.367 +47.1281 200.102 177.19 +44.7774 200.328 177.39 +42.2999 199.947 177.054 +39.9972 200.364 177.423 +37.4932 199.728 176.859 +35.1768 200.04 177.135 +32.7585 199.742 176.871 +30.4177 199.874 176.989 +28.0763 199.991 177.092 +25.6579 199.496 176.654 +23.3054 199.432 176.597 +20.9878 199.651 176.791 +18.6668 199.855 176.972 +16.3305 199.895 177.007 +13.9475 199.247 176.433 +11.6289 199.405 176.573 +9.30421 199.474 176.634 +6.96569 199.152 176.349 +4.64583 199.265 176.449 +2.32475 199.438 176.602 +1.77636e-14 199.52 176.675 +-2.32475 199.438 176.602 +-4.64758 199.34 176.515 +-6.99448 199.975 177.078 +-9.30421 199.474 176.634 +-11.6289 199.405 176.573 +-13.9475 199.247 176.433 +-16.3183 199.745 176.875 +-18.5971 199.109 176.311 +-20.9329 199.129 176.329 +-23.2619 199.059 176.267 +-25.6579 199.496 176.654 +-27.8882 198.65 175.905 +-30.3045 199.13 176.33 +-32.661 199.147 176.345 +-34.968 198.852 176.084 +-37.2706 198.542 175.809 +-39.6868 198.809 176.046 +-41.987 198.469 175.744 +-44.3153 198.261 175.56 +-46.6072 197.889 175.231 +-49.2583 198.976 176.194 +-51.4039 197.985 175.316 +-53.8892 198.303 175.597 +-56.2401 198.089 175.408 +-58.7417 198.372 175.659 +-61.0967 198.127 175.441 +-63.5672 198.229 175.532 +-65.9721 198.097 175.415 +-68.4289 198.094 175.412 +-70.9941 198.362 175.649 +-73.5974 198.684 175.935 +-75.6073 197.404 174.801 +-78.4734 198.339 175.629 +-80.7823 197.818 175.168 +-83.5962 198.497 175.769 +-86.2775 198.797 176.035 +-88.528 198.084 175.403 +-91.1265 198.136 175.449 +-93.7997 198.309 175.602 +-96.4155 198.321 175.614 +-98.9686 198.175 175.484 +-101.526 198.01 175.338 +-104.38 198.384 175.669 +-106.65 197.625 174.997 +-109.639 198.166 175.476 +-112.296 198.062 175.384 +-115.278 198.488 175.761 +-117.954 198.343 175.633 +-120.593 198.11 175.427 +-123.32 197.993 175.323 +-126.398 198.396 175.68 +-127.654 195.948 173.512 +-131.673 197.719 175.081 +-137.014 201.321 178.27 +-139.817 201.082 178.059 +-143.048 201.417 178.355 +-143.195 197.448 174.841 +-142.922 193.035 170.933 +-144.379 191.051 169.176 +-147.5 191.267 169.367 +-150.993 191.91 169.936 +-159.198 198.36 175.647 +-460.896 563.083 498.611 +-469.985 563.098 498.624 +-480.776 564.995 500.303 +-487.343 561.832 497.502 +-487.526 551.447 488.306 +-489.462 543.276 481.071 +-489.545 533.27 472.211 +-491.326 525.33 465.18 +-492.552 516.98 457.786 +-488.097 502.961 445.372 +-478.654 484.286 428.836 +-481.151 478.031 423.297 +-482.261 470.534 416.658 +-485.511 465.241 411.971 +-486.744 458.125 405.67 +-489.674 452.717 400.881 +-490.862 445.804 394.759 +-493.211 440.056 389.67 +-494.685 433.629 383.979 +-141.315 121.706 107.771 +-142.397 120.499 106.702 +-142.993 118.896 105.282 +-142.617 116.522 103.18 +-142.128 114.107 101.042 +-142.421 112.36 99.4949 +-144.558 112.072 99.2396 +-148.102 112.832 99.9125 +-512.582 383.754 339.814 +-514.824 378.763 335.395 +-517.349 374.033 331.206 +-519.15 368.835 326.603 +-521.163 363.847 322.186 +-522.951 358.759 317.681 +-525.775 354.427 313.845 +-526.89 348.994 309.034 +-529.882 344.851 305.365 +-531.144 339.625 300.738 +-534.776 335.95 297.484 +-535.662 330.586 292.734 +-538.484 326.461 289.081 +-549.469 327.219 289.752 +-562.324 328.917 291.256 +-564.471 324.273 287.144 +-552.895 311.923 276.208 +-543.568 301.128 266.649 +-550.941 299.678 265.365 +-553.191 295.415 261.59 +-555.877 291.403 258.038 +-557.769 286.997 254.136 +-2716.34 1371.71 1214.65 +-384.088 190.328 168.535 +-384.111 186.751 165.368 +-384.418 183.349 162.356 +-380.519 178.014 157.632 +-2793.68 1281.7 1134.94 +-381.439 171.589 151.942 +-382.994 168.9 149.561 +-382.264 165.231 146.312 +-382.608 162.063 143.507 +-2865.69 1189.24 1053.08 +-136.217 55.3712 49.0312 +-384.347 152.998 135.48 +-383.366 149.41 132.303 +-382.687 145.982 129.267 +-380.705 142.107 125.836 +-382.347 139.614 123.628 +-582.709 208.083 184.258 +-585.656 204.458 181.048 +-381.638 130.21 115.301 +-382.684 127.56 112.954 +-382.873 124.637 110.366 +-382.286 121.487 107.577 +-381.377 118.269 104.727 +-381.814 115.492 102.268 +-379.238 111.84 99.0348 +-606.734 174.367 154.402 +-608.275 170.266 150.77 +-378.602 103.166 91.3539 +-378.753 100.414 88.9169 +-377.356 97.2774 86.1392 +-377.907 94.666 83.8268 +-3116.14 758.019 671.226 +-624.017 147.302 130.436 +-381.566 87.3366 77.3366 +-381.994 84.7132 75.0136 +-381.044 81.8017 72.4354 +-381.116 79.1289 70.0687 +-381.444 76.5198 67.7583 +-380.869 73.7434 65.2998 +-380.841 71.0892 62.9495 +-381.072 68.4935 60.651 +-381.563 65.9507 58.3994 +-380.755 63.1961 55.9602 +-381.967 60.784 53.8242 +-381.681 58.1369 51.4802 +-381.755 55.5553 49.1943 +-380.913 52.8544 46.8026 +-381.711 50.3898 44.6202 +-381.397 47.7829 42.3118 +-381.05 45.1839 40.0103 +-381.463 42.6816 37.7946 +-380.857 40.0732 35.4848 +-380.715 37.5248 33.2282 +-381.435 35.0634 31.0487 +-381.234 32.5192 28.7958 +-381.001 29.9803 26.5476 +-379.744 27.3752 24.2407 +-379.849 24.8801 22.0313 +-380.922 22.4445 19.8746 +-381.668 19.981 17.6932 +-381.387 17.4639 15.4643 +-380.977 14.948 13.2365 +-380.238 12.429 11.0059 +-380.468 9.94695 8.80803 +-149.149 2.924 2.5892 +-146.278 1.91157 1.69269 +-145.794 0.952552 0.843485 +96.6 3.55271e-15 -1.7053e-13 +95.7964 0.630862 0.548555 +96.6853 1.27353 1.10738 +96.5669 1.90819 1.65924 +96.5412 2.54404 2.21212 +96.5081 3.17968 2.76483 +96.4676 3.81508 3.31734 +96.5196 4.4548 3.87359 +96.4644 5.09024 4.42612 +96.4019 5.72528 4.97831 +96.332 6.35989 5.53013 +96.2548 6.99401 6.08152 +97.0653 7.69861 6.69419 +96.1778 8.26918 7.19032 +96.8725 8.97573 7.80468 +96.765 9.61338 8.35914 +96.6502 10.2502 8.91288 +96.429 10.8751 9.45625 +96.2996 11.5097 10.0081 +95.867 12.106 10.5266 +95.7233 12.7369 11.0751 +96.4573 13.4905 11.7304 +95.4142 13.9956 12.1696 +96.1306 14.7588 12.8333 +95.8585 15.3756 13.3695 +95.7746 16.0226 13.9321 +95.5857 16.6527 14.48 +96.4591 17.4753 15.1953 +96.1563 18.0916 15.7312 +95.9434 18.7241 16.2812 +95.7232 19.3552 16.83 +96.4594 20.1865 17.5528 +96.03 20.7793 18.0683 +96.7449 21.6252 18.8038 +96.3955 22.2394 19.3379 +96.23 22.896 19.9088 +95.6763 23.4589 20.3982 +96.5393 24.3754 21.1952 +96.1592 24.9856 21.7258 +96.4322 25.769 22.407 +96.1306 26.4031 22.9583 +96.8519 27.3258 23.7606 +96.5322 27.9625 24.3143 +97.0426 28.8461 25.0826 +96.4271 29.3992 25.5636 +96.3606 30.1197 26.1901 +96.1007 30.7826 26.7665 +96.7498 31.7453 27.6035 +96.379 32.3812 28.1565 +96.0009 33.0146 28.7073 +96.3405 33.9007 29.4777 +96.2156 34.6313 30.113 +96.5305 35.5282 30.8929 +96.9214 36.4656 31.708 +96.496 37.1025 32.2618 +96.6842 37.9804 33.0251 +96.153 38.5802 33.5467 +96.582 39.5719 34.4091 +96.6455 40.426 35.1517 +96.3484 41.1352 35.7684 +96.6484 42.1077 36.614 +96.1578 42.7425 37.166 +96.1742 43.6073 37.918 +96.3483 44.5544 38.7415 +95.8294 45.1872 39.2917 +96.0623 46.1814 40.1562 +96.0278 47.0589 40.9192 +96.3138 48.1059 41.8296 +95.6709 48.6962 42.3429 +96.5876 50.0937 43.558 +96.0865 50.7711 44.1471 +96.0656 51.7086 44.9623 +95.2213 52.2062 45.395 +95.4982 53.325 46.3678 +95.5967 54.3606 47.2683 +95.6784 55.4015 48.1734 +95.5069 56.3082 48.9618 +95.5565 57.3578 49.8744 +95.589 58.4123 50.7913 +95.6043 59.4715 51.7124 +95.4491 60.4383 52.5531 +95.4309 61.5057 53.4811 +95.3953 62.5774 54.413 +95.3421 63.6532 55.3485 +95.1969 64.6825 56.2435 +95.1825 65.8168 57.2298 +95.076 66.9043 58.1754 +95.4593 68.359 59.4403 +95.3125 69.4567 60.3948 +95.1476 70.5578 61.3522 +94.9644 71.6618 62.3123 +95.3938 73.2533 63.6961 +95.1682 74.3673 64.6647 +94.9241 75.4837 65.6355 +95.2752 77.0993 67.0403 +94.8529 78.1135 67.9222 +95.1504 79.7443 69.3402 +94.7547 80.8203 70.2759 +94.5381 82.0677 71.3605 +94.6895 83.6622 72.747 +94.4255 84.9187 73.8395 +94.3304 86.3524 75.0862 +94.0834 87.6738 76.2351 +93.6885 88.8812 77.285 +93.7037 90.5051 78.6971 +93.6884 92.1366 80.1157 +93.5822 93.7145 81.4877 +93.6846 95.5399 83.075 +93.8105 97.4355 84.7233 +91.9833 97.3125 84.6163 +90.2236 97.2348 84.5488 +87.9062 96.5187 83.9261 +87.8492 98.283 85.4602 +87.8132 100.116 87.054 +88.1226 102.399 89.0395 +87.9559 104.185 90.592 +88.2845 106.616 92.7062 +87.7275 108.03 93.9352 +87.608 110.026 95.6714 +87.8549 112.55 97.8656 +89.8 117.372 102.058 +92.9696 124.001 107.823 +92.7441 126.259 109.786 +93.046 129.318 112.446 +93.0023 131.992 114.771 +92.7191 134.407 116.871 +92.7957 137.433 119.502 +92.8091 140.469 122.142 +92.847 143.653 124.911 +92.689 146.643 127.51 +92.8492 150.257 130.653 +92.5595 153.265 133.269 +92.4919 156.764 136.312 +92.43 160.413 139.484 +92.0563 163.655 142.303 +92.265 168.089 146.159 +91.9659 171.769 149.359 +92.0651 176.37 153.359 +91.2405 179.365 155.964 +90.1784 182.009 158.262 +87.8992 182.241 158.464 +88.7592 189.143 164.466 +90.7033 198.782 172.847 +89.4165 201.663 175.352 +86.8647 201.741 175.42 +84.4382 202.09 175.723 +81.6887 201.628 175.322 +79.1267 201.579 175.279 +76.2689 200.714 174.527 +74.2388 202.009 175.653 +71.4082 201.105 174.867 +69.0798 201.568 175.269 +66.5769 201.502 175.212 +64.0341 201.272 175.013 +61.5466 201.172 174.926 +59.2179 201.57 175.271 +56.6767 201.214 174.962 +54.248 201.21 174.958 +51.7283 200.818 174.618 +49.5681 201.819 175.488 +46.9371 200.875 174.667 +44.6454 201.325 175.058 +42.1278 200.716 174.529 +39.8346 201.136 174.894 +37.3541 200.568 174.401 +35.0332 200.807 174.608 +32.6366 200.58 174.411 +30.3271 200.863 174.657 +27.9823 200.905 174.693 +25.6579 201.082 174.847 +23.2793 200.792 174.595 +20.9172 200.561 174.394 +18.618 200.917 174.704 +16.2878 200.956 174.738 +13.9528 200.906 174.694 +11.6333 201.065 174.832 +9.26931 200.304 174.171 +6.96307 200.66 174.48 +4.63187 200.245 174.12 +2.31777 200.419 174.271 +1.95399e-14 200.276 174.146 +-2.31602 200.268 174.139 +-4.63187 200.245 174.12 +-6.94736 200.207 174.086 +-9.26931 200.304 174.171 +-11.5897 200.311 174.177 +-13.9004 200.152 174.038 +-16.2694 200.731 174.542 +-18.5413 200.089 173.984 +-20.9329 200.712 174.525 +-23.1834 199.965 173.876 +-25.5812 200.48 174.324 +-27.8882 200.229 174.105 +-30.2026 200.038 173.939 +-32.5391 199.981 173.89 +-34.8374 199.685 173.632 +-37.1314 199.373 173.361 +-39.5686 199.793 173.726 +-41.8306 199.301 173.298 +-44.3318 199.91 173.828 +-46.6072 199.462 173.439 +-48.9302 199.222 173.23 +-51.2131 198.818 172.879 +-53.7097 199.213 173.222 +-56.0322 198.926 172.972 +-58.5686 199.36 173.349 +-60.9167 199.113 173.135 +-63.5672 199.805 173.737 +-65.8028 199.159 173.175 +-68.4789 199.814 173.744 +-70.7352 199.21 173.22 +-73.2768 199.39 173.376 +-75.6073 198.973 173.013 +-78.2178 199.264 173.266 +-80.5192 198.741 172.811 +-83.3256 199.427 173.408 +-85.6286 198.871 172.924 +-88.5915 199.802 173.734 +-90.8986 199.211 173.22 +-93.6996 199.671 173.62 +-96.0051 199.047 173.078 +-98.6884 199.184 173.197 +-101.275 199.091 173.116 +-104.05 199.329 173.323 +-106.276 198.496 172.599 +-109.256 199.044 173.075 +-111.944 199.012 173.047 +-114.959 199.512 173.482 +-117.262 198.748 172.817 +-120.261 199.135 173.155 +-121.08 195.942 170.378 +-122.954 194.524 169.145 +-125.067 193.504 168.258 +-131.494 199.021 173.055 +-136.515 202.182 175.804 +-139.864 202.748 176.296 +-142.579 202.352 175.951 +-143.195 199.018 173.052 +-143.358 195.163 169.701 +-143.935 191.979 166.932 +-146 190.827 165.93 +-150.282 192.524 167.406 +-157.241 197.478 171.714 +-461.157 567.88 493.79 +-471.84 569.814 495.471 +-482.28 571.267 496.735 +-167.041 194.103 168.779 +-169.997 193.814 168.527 +-172.958 193.5 168.254 +-489.828 537.819 467.651 +-491.154 529.319 460.26 +-492.959 521.519 453.477 +-482.689 501.342 435.933 +-479.368 488.863 425.082 +-481.693 482.373 419.439 +-483.052 475.052 413.073 +-485.757 469.176 407.964 +-487.055 462.062 401.778 +-490.052 456.668 397.087 +-490.671 449.172 390.569 +-493.211 443.554 385.684 +-495.464 437.764 380.65 +-142.562 123.756 107.61 +-142.132 121.23 105.413 +-143.261 120.065 104.4 +-142.55 117.393 102.077 +-142.128 115.014 100.009 +-141.87 112.815 98.0966 +-146.503 114.482 99.546 +-148.873 114.32 99.405 +-513.501 387.497 336.941 +-515.038 381.933 332.103 +-517.349 377.006 327.818 +-519.586 372.078 323.534 +-521.821 367.202 319.294 +-523.614 362.069 314.83 +-526.444 357.698 311.03 +-527.864 352.418 306.439 +-529.882 347.591 302.242 +-531.828 342.766 298.046 +-534.393 338.377 294.23 +-536.125 333.501 289.99 +-538.484 329.056 286.124 +-556.826 334.235 290.628 +-561.615 331.113 287.913 +-569.152 329.561 286.563 +-563.757 320.578 278.752 +-544.05 303.791 264.156 +-549.484 301.262 261.957 +-554.168 298.289 259.372 +-556.368 293.979 255.624 +-558.51 289.663 251.871 +-560.678 285.383 248.15 +-384.672 192.133 167.065 +-384.782 188.564 163.962 +-383.574 184.401 160.343 +-382.046 180.149 156.645 +-379.851 175.655 152.737 +-381.354 172.913 150.354 +-381.529 169.591 147.465 +-382.783 166.771 145.012 +-383.044 163.538 142.201 +-381.859 159.728 138.889 +-135.865 55.6672 48.4044 +-2892.98 1160.77 1009.33 +-383.011 150.458 130.828 +-380.638 146.354 127.26 +-381.868 143.674 124.929 +-381.987 140.591 122.249 +-583.521 210.029 182.627 +-585.656 206.083 179.196 +-380.819 130.963 113.877 +-381.862 128.297 111.558 +-381.864 125.296 108.949 +-381.733 122.275 106.322 +-382.856 119.67 104.057 +-380.98 116.155 101.001 +-380.355 113.061 98.3105 +-606.267 175.618 152.705 +-3069.01 865.886 752.916 +-381.139 104.683 91.0251 +-383.749 102.547 89.1681 +-376.789 97.9034 85.1301 +-379.045 95.7059 83.2194 +-621.801 152.459 132.568 +-3124.85 743.497 646.494 +-381.279 87.9651 76.4884 +-381.706 85.3224 74.1905 +-381.429 82.5348 71.7667 +-381.983 79.9389 69.5095 +-381.734 77.1861 67.1158 +-381.16 74.3862 64.6811 +-381.229 71.7273 62.3691 +-380.586 68.9498 59.9541 +-381.856 66.5258 57.8463 +-382.122 63.9271 55.5866 +-381.478 61.1887 53.2055 +-381.681 58.599 50.9537 +-380.871 55.8673 48.5784 +-380.913 53.2745 46.3239 +-381.121 50.7117 44.0954 +-381.693 48.2 41.9115 +-380.359 45.4604 39.5292 +-380.672 42.9316 37.3304 +-381.055 40.4127 35.1401 +-381.905 37.9412 32.9911 +-380.641 35.2685 30.6671 +-380.935 32.752 28.4789 +-381.896 30.2895 26.3377 +-380.64 27.6578 24.0493 +-380.646 25.1304 21.8517 +-381.52 22.6584 19.7022 +-380.87 20.0977 17.4756 +-381.088 17.5889 15.2941 +-380.078 15.0313 13.0702 +-381.137 12.5574 10.9191 +-380.468 10.026 8.71793 +-3275.38 64.7227 56.2784 +-147.178 1.93861 1.68568 +-145.394 0.957489 0.832568 +95.7 0 -1.7053e-13 +96.5963 0.641094 0.547374 +96.5853 1.28214 1.09471 +96.6669 1.92508 1.64366 +96.6411 2.56654 2.19135 +96.5081 3.20449 2.73604 +96.4676 3.84486 3.28278 +96.4198 4.48493 3.82929 +96.4644 5.12996 4.38002 +96.3022 5.764 4.92137 +97.129 6.46254 5.5178 +97.1507 7.1142 6.07419 +97.0653 7.75869 6.62446 +96.9726 8.40254 7.17419 +96.8725 9.04577 7.72339 +96.765 9.6884 8.27207 +96.5511 10.3196 8.81102 +95.5389 10.8588 9.27139 +96.1021 11.5758 9.88352 +95.9656 12.2131 10.4277 +95.7233 12.8363 10.9598 +95.5724 13.4711 11.5018 +96.2976 14.2355 12.1544 +95.1507 14.7223 12.5701 +95.9563 15.5114 13.2438 +95.7746 16.1476 13.787 +95.5857 16.7826 14.3292 +95.4867 17.4341 14.8854 +96.1563 18.2328 15.5674 +95.9434 18.8702 16.1116 +95.7232 19.5062 16.6547 +96.363 20.3236 17.3526 +96.8952 21.1301 18.0411 +95.7861 21.5779 18.4235 +96.3955 22.413 19.1365 +96.1347 23.0518 19.6819 +95.8665 23.689 20.2259 +96.4445 24.5415 20.9538 +96.1592 25.1806 21.4995 +96.715 26.0463 22.2386 +96.1306 26.6091 22.7192 +95.9152 27.2727 23.2858 +96.6256 28.208 24.0844 +96.8565 29.0155 24.7738 +96.5198 29.6571 25.3216 +96.3606 30.3548 25.9173 +96.8371 31.2606 26.6906 +96.5664 31.9324 27.2643 +96.1963 32.5721 27.8104 +96.9109 33.5876 28.6775 +96.5218 34.2295 29.2256 +96.2156 34.9016 29.7994 +96.5305 35.8055 30.5712 +95.937 36.3769 31.059 +96.3178 37.3229 31.8668 +96.0633 38.031 32.4713 +96.2413 38.917 33.2278 +96.582 39.8808 34.0507 +96.0332 40.4834 34.5652 +96.3484 41.4562 35.3958 +96.6484 42.4363 36.2326 +96.6748 43.3077 36.9766 +96.0885 43.9085 37.4896 +95.581 44.5445 38.0326 +96.4231 45.8219 39.1233 +95.8936 46.4601 39.6682 +96.1116 47.4675 40.5283 +95.4799 48.0616 41.0356 +95.6709 49.0762 41.9018 +95.8459 50.0969 42.7733 +95.9227 51.08 43.6128 +95.3329 51.7147 44.1546 +95.464 52.7478 45.0367 +95.4982 53.7411 45.8848 +95.5967 54.7849 46.776 +95.6784 55.8338 47.6716 +95.6645 56.8413 48.5318 +95.5565 57.8054 49.3549 +95.5112 58.8203 50.2214 +95.6043 59.9356 51.1738 +95.5257 60.9589 52.0474 +95.507 62.0351 52.9663 +95.3953 63.0657 53.8463 +95.3421 64.1499 54.772 +95.2712 65.2382 55.7011 +95.1825 66.3304 56.6337 +95.076 67.4264 57.5695 +95.4593 68.8924 58.8212 +95.2406 69.9459 59.7207 +95.1476 71.1084 60.7132 +94.8937 72.1673 61.6173 +95.3938 73.825 63.0327 +95.1682 74.9476 63.9912 +94.9241 76.0727 64.9518 +94.6614 77.2006 65.9148 +94.8529 78.7231 67.2147 +94.682 79.9711 68.2803 +94.7547 81.451 69.5439 +94.5381 82.7082 70.6172 +94.7545 84.3729 72.0386 +94.3612 85.5228 73.0204 +94.1396 86.8499 74.1535 +94.2093 88.4766 75.5424 +94.1865 90.0509 76.8865 +93.6421 91.1513 77.8261 +93.7493 92.9157 79.3325 +93.5822 94.4458 80.639 +93.9225 96.5304 82.4188 +93.164 97.519 83.2629 +91.1704 97.2049 82.9948 +89.1911 96.8718 82.7103 +87.7363 97.084 82.8915 +87.8492 99.0499 84.57 +88.3099 101.468 86.6349 +87.7958 102.816 87.7855 +88.0634 105.126 89.7582 +88.5495 107.771 92.0159 +87.6753 108.808 92.9016 +87.6595 110.95 94.7307 +87.3474 112.773 96.2865 +87.95 115.851 98.915 +92.8218 124.77 106.53 +92.6956 127.177 108.585 +93.1891 130.528 111.446 +93.0023 133.022 113.576 +93.1347 136.062 116.172 +92.7503 138.437 118.199 +92.8538 141.634 120.929 +92.847 144.774 123.61 +92.689 147.787 126.182 +92.4689 150.809 128.762 +92.5595 154.461 131.881 +92.5733 158.127 135.011 +92.4699 161.734 138.09 +92.4861 165.702 141.478 +92.3032 169.471 144.697 +91.9659 173.11 147.803 +91.8086 177.251 151.339 +90.9179 180.125 153.793 +90.0033 183.073 156.31 +87.5914 183.02 156.264 +90.1612 193.63 165.324 +90.7358 200.406 171.109 +89.0991 202.515 172.909 +86.5248 202.52 172.914 +84.0172 202.651 173.026 +81.1331 201.82 172.316 +78.8711 202.496 172.893 +76.0759 201.769 172.272 +73.7043 202.119 172.572 +71.227 202.16 172.607 +68.8795 202.551 172.941 +66.1656 201.82 172.317 +63.8006 202.104 172.559 +61.3217 202.001 172.47 +58.9798 202.326 172.748 +56.3233 201.519 172.059 +54.0486 202.035 172.5 +51.5566 201.714 172.226 +49.24 202.048 172.511 +46.6419 201.169 171.76 +44.4803 202.146 172.594 +41.987 201.607 172.135 +39.7016 202.029 172.494 +37.2427 201.531 172.07 +34.9288 201.771 172.274 +32.5513 201.617 172.143 +30.2139 201.674 172.192 +27.8255 201.338 171.905 +25.5908 202.121 172.573 +23.1486 201.222 171.806 +20.8701 201.671 172.189 +18.4855 201.043 171.653 +16.2389 201.918 172.4 +13.8586 201.106 171.707 +11.594 201.95 172.428 +9.24139 201.26 171.838 +6.94736 201.769 172.273 +4.61791 201.2 171.787 +2.30817 201.146 171.741 +2.04281e-14 201.002 171.618 +-2.3073 201.07 171.676 +-4.61791 201.2 171.787 +-6.92642 201.161 171.754 +-9.2379 201.184 171.773 +-11.5504 201.191 171.779 +-13.8481 200.954 171.577 +-16.1534 200.854 171.492 +-18.4715 200.892 171.524 +-20.7917 200.913 171.542 +-23.0963 200.768 171.418 +-25.5046 201.439 171.991 +-27.7209 200.581 171.259 +-30.1007 200.919 171.547 +-32.3197 200.183 170.919 +-34.733 200.639 171.308 +-37.034 200.401 171.105 +-39.4356 200.674 171.338 +-41.7211 200.33 171.044 +-44.0347 200.121 170.865 +-46.312 199.746 170.545 +-48.912 200.702 171.362 +-51.0605 199.772 170.568 +-53.5104 200.022 170.782 +-55.8451 199.808 170.598 +-58.3738 200.247 170.973 +-60.6918 199.926 170.699 +-63.1937 200.181 170.917 +-65.4399 199.606 170.426 +-68.1785 200.49 171.181 +-70.2435 199.368 170.223 +-73.063 200.361 171.071 +-75.4144 200.014 170.774 +-77.9338 200.089 170.839 +-80.2268 199.565 170.391 +-83.1151 200.475 171.168 +-85.3505 199.771 170.567 +-88.2424 200.568 171.247 +-90.3126 199.471 170.311 +-93.1655 200.083 170.833 +-95.492 199.528 170.359 +-98.3733 200.098 170.846 +-100.988 200.076 170.828 +-103.72 200.248 170.974 +-105.976 199.481 170.319 +-108.912 199.965 170.732 +-111.241 199.305 170.169 +-114.321 199.953 170.722 +-116.53 199.048 169.95 +-119.598 199.582 170.406 +-119.516 194.921 166.426 +-122.394 195.15 166.621 +-124.454 194.057 165.688 +-127.791 194.925 166.429 +-132.52 197.796 168.881 +-139.679 204.06 174.229 +-142.062 203.192 173.488 +-143.386 200.838 171.478 +-143.358 196.686 167.933 +-143.344 192.683 164.515 +-144.75 190.67 162.796 +-149.927 193.568 165.271 +-157.344 199.15 170.037 +-462.098 573.479 489.643 +-469.985 572.003 488.383 +-482.334 575.79 491.616 +-164.644 192.811 164.625 +-167.347 192.282 164.173 +-170.778 192.551 164.403 +-492.037 544.461 464.867 +-492.071 534.447 456.317 +-493.365 526.022 449.124 +-478.692 501.07 427.819 +-479.903 493.228 421.124 +-482.595 487.048 415.848 +-484.209 479.905 409.749 +-486.619 473.677 404.431 +-487.927 466.501 398.304 +-490.052 460.231 392.951 +-491.816 453.734 387.403 +-494.882 448.53 382.961 +-143.073 127.398 108.774 +-142.168 124.378 106.195 +-141.999 122.062 104.218 +-143.127 120.889 103.217 +-142.144 117.972 100.726 +-141.515 115.411 98.5397 +-142.421 114.137 97.4514 +-148.379 116.853 99.7702 +-148.593 114.995 98.1845 +-514.349 391.166 333.982 +-515.466 385.232 328.916 +-519.004 381.163 325.442 +-520.601 375.715 320.79 +-522.772 370.741 316.543 +-524.278 365.357 311.946 +-527.113 360.947 308.181 +-528.688 355.722 303.72 +-531.24 351.202 299.861 +-533.197 346.329 295.7 +-535.465 341.703 291.75 +-536.511 336.346 287.176 +-544.857 335.549 286.495 +-559.721 338.594 289.096 +-563.27 334.68 285.754 +-571.928 333.753 284.962 +-568.229 325.642 278.037 +-544.05 306.162 261.405 +-547.785 302.673 258.426 +-554.168 300.617 256.67 +-557.105 296.665 253.296 +-559.252 292.311 249.578 +-561.839 288.205 246.073 +-385.756 194.177 165.791 +-383.272 189.29 161.618 +-382.731 185.432 158.324 +-383.063 182.039 155.427 +-381.471 177.781 151.791 +-382.211 174.654 149.122 +-383.511 171.802 146.687 +-381.484 167.502 143.015 +-381.912 164.327 140.304 +-384.833 162.228 138.512 +-135.865 56.1016 47.9002 +-2892.98 1169.83 998.812 +-382.745 151.527 129.376 +-380.638 147.496 125.934 +-379.721 143.981 122.932 +-382.707 141.955 121.203 +-584.334 211.963 180.977 +-587.378 208.302 177.851 +-381.82 132.332 112.987 +-381.862 129.298 110.396 +-382.139 126.365 107.892 +-382.102 123.348 105.316 +-381.747 120.255 102.675 +-380.424 116.891 99.8027 +-379.889 113.804 97.167 +-607.014 177.206 151.301 +-609.118 173.198 147.878 +-379.072 104.928 89.5887 +-378.471 101.925 87.0251 +-378.869 99.2119 84.7083 +-379.519 96.573 82.4552 +-622.276 153.767 131.288 +-378.626 90.7893 77.517 +-381.087 88.6067 75.6534 +-381.706 85.9882 73.4178 +-381.333 83.1576 71.001 +-382.272 80.6236 68.8374 +-381.154 77.6706 66.3161 +-382.031 75.138 64.1537 +-381.423 72.3238 61.751 +-381.072 69.5766 59.4054 +-380.589 66.8226 57.054 +-380.755 64.1954 54.8108 +-380.891 61.5712 52.5703 +-380.407 58.8591 50.2546 +-381.657 56.4193 48.1715 +-381.11 53.718 45.8651 +-381.121 51.1074 43.6361 +-380.41 48.413 41.3356 +-380.062 45.7795 39.0871 +-380.969 43.3004 36.9704 +-380.263 40.6434 34.7018 +-380.12 38.0586 32.4949 +-381.435 35.6179 30.411 +-381.83 33.0851 28.2484 +-380.305 30.3988 25.9548 +-380.341 27.8518 23.7802 +-380.945 25.3465 21.6411 +-381.221 22.8173 19.4817 +-381.468 20.2864 17.3208 +-380.788 17.7122 15.1229 +-380.078 15.1486 12.9341 +-379.938 12.6157 10.7714 +-380.468 10.1042 8.62713 +-148.849 2.96427 2.53093 +-146.278 1.94179 1.65793 +-145.594 0.966285 0.825026 +96.6 3.55271e-15 -1.7053e-13 +95.7964 0.640657 0.537083 +96.5853 1.29196 1.08309 +96.6669 1.93983 1.62622 +96.5412 2.58353 2.16586 +96.5081 3.22905 2.70702 +96.4676 3.87432 3.24797 +97.418 4.56608 3.82789 +96.3647 5.16392 4.32909 +96.4019 5.81417 4.87421 +96.332 6.45863 5.41448 +96.1553 7.09525 5.94818 +96.2697 7.75407 6.50049 +96.9726 8.46692 7.09809 +95.9792 9.03109 7.57106 +96.765 9.76263 8.18433 +96.6502 10.4093 8.72649 +96.429 11.0439 9.2585 +96.1021 11.6644 9.77868 +95.9656 12.3066 10.3171 +95.7233 12.9346 10.8435 +95.5724 13.5743 11.3798 +96.1995 14.3299 12.0132 +96.1306 14.988 12.5649 +95.8585 15.6143 13.09 +95.7746 16.2713 13.6408 +95.5857 16.9112 14.1772 +95.3895 17.5498 14.7126 +96.2533 18.391 15.4178 +96.0402 19.034 15.9568 +95.8198 19.6755 16.4946 +95.4958 20.295 17.014 +96.1262 21.123 17.7081 +95.5943 21.6997 18.1916 +95.6305 22.4055 18.7832 +96.1347 23.2284 19.4731 +95.8665 23.8705 20.0114 +96.4445 24.7295 20.7316 +96.8211 25.5482 21.4179 +96.715 26.2459 22.0028 +96.2245 26.8392 22.5002 +96.8519 27.75 23.2637 +96.5322 28.3967 23.8058 +97.0426 29.294 24.5581 +96.5198 29.8843 25.053 +96.3606 30.5874 25.6424 +96.1007 31.2605 26.2067 +96.5664 32.1771 26.9751 +96.379 32.8839 27.5677 +96.9109 33.845 28.3733 +95.6155 34.1679 28.6441 +96.9377 35.4329 29.7046 +96.3507 36.0126 30.1906 +96.9214 37.0317 31.0449 +96.496 37.6785 31.5871 +96.5955 38.5346 32.3048 +96.153 39.1792 32.8452 +96.582 40.1863 33.6895 +96.0332 40.7936 34.1986 +96.1743 41.6984 34.9571 +96.4752 42.6848 35.7841 +95.9855 43.3284 36.3236 +96.1742 44.2844 37.125 +95.581 44.8858 37.6292 +96.5927 46.2542 38.7764 +96.0623 46.8984 39.3165 +96.1116 47.8312 40.0984 +96.2304 48.8105 40.9194 +95.6709 49.4522 41.4574 +95.8459 50.4807 42.3196 +96.0046 51.5154 43.187 +95.4143 52.1555 43.7236 +95.3831 53.1069 44.5212 +95.3374 54.0618 45.3218 +95.5967 55.2046 46.2798 +95.6784 56.2616 47.166 +95.5069 57.1824 47.9379 +95.4782 58.2006 48.7915 +95.5112 59.2709 49.6888 +95.6043 60.3948 50.631 +94.9129 61.0319 51.165 +95.4309 62.4606 52.3627 +95.4708 63.5992 53.3173 +95.2672 64.5907 54.1485 +95.2712 65.738 55.1103 +95.1088 66.7868 55.9896 +95.076 67.943 56.9588 +95.4593 69.4203 58.1973 +95.3125 70.535 59.1318 +95.1476 71.6532 60.0692 +94.9644 72.7744 61.0092 +95.3938 74.3906 62.3641 +95.1682 75.5219 63.3125 +94.8553 76.6001 64.2164 +94.5932 77.7361 65.1687 +94.8529 79.3263 66.5018 +94.682 80.5838 67.5561 +94.6221 81.9602 68.7099 +94.4725 83.2836 69.8194 +94.6895 84.9611 71.2257 +94.3612 86.1781 72.2459 +94.1396 87.5153 73.3669 +94.2093 89.1545 74.7411 +94.3732 90.9201 76.2213 +93.7037 91.9102 77.0514 +94.2363 94.1142 78.899 +93.8831 95.4752 80.04 +94.2794 97.6394 81.8543 +91.6945 96.7167 81.0808 +90.9962 97.7627 81.9577 +88.5602 96.9236 81.2542 +87.9062 98.0172 82.171 +88.0729 100.063 83.8857 +88.1995 102.118 85.6087 +88.1771 104.054 87.2315 +88.2783 106.19 89.0226 +87.9666 107.881 90.4405 +88.1455 110.229 92.4089 +87.608 111.735 93.6707 +87.5504 113.901 95.4869 +87.75 116.473 97.6429 +90.7044 122.859 102.996 +93.1319 128.755 107.939 +92.7119 130.855 109.7 +92.8615 133.838 112.201 +92.7653 136.561 114.483 +92.7503 139.498 116.946 +92.8091 142.65 119.588 +92.7593 145.745 122.183 +92.689 148.919 124.844 +92.8492 152.589 127.921 +92.601 155.714 130.54 +92.5733 159.338 133.579 +92.4699 162.973 136.626 +92.4079 166.83 139.859 +92.265 170.699 143.102 +91.9285 174.365 146.176 +91.9552 178.894 149.973 +90.237 180.147 151.023 +89.7231 183.901 154.17 +87.0099 183.198 153.581 +90.9957 196.92 165.085 +90.5731 201.579 168.99 +88.528 202.758 169.979 +85.8758 202.541 169.797 +83.6564 203.327 170.455 +80.6361 202.12 169.444 +78.4166 202.872 170.074 +75.5246 201.842 169.21 +73.5974 203.373 170.494 +70.4764 201.563 168.977 +68.4038 202.694 169.925 +65.6576 201.805 169.18 +63.6139 203.056 170.229 +60.8268 201.906 169.264 +58.5469 202.38 169.661 +56.0322 202.014 169.355 +53.7097 202.306 169.6 +51.1941 201.83 169.201 +48.912 202.24 169.544 +46.3293 201.352 168.8 +44.1502 202.183 169.496 +41.6898 201.714 169.103 +39.4356 202.212 169.521 +37.0061 201.785 169.163 +34.733 202.176 169.491 +32.2954 201.565 168.978 +30.1234 202.61 169.855 +27.6269 201.432 168.867 +25.4279 202.373 169.656 +22.9568 201.084 168.576 +20.7132 201.688 169.082 +18.339 200.979 168.487 +16.1595 202.47 169.737 +13.7487 201.04 168.538 +11.5155 202.12 169.444 +9.1681 201.193 168.667 +6.88977 201.63 169.033 +4.57602 200.902 168.423 +2.29682 201.691 169.084 +1.86517e-14 201.316 168.77 +-2.29944 201.921 169.277 +-4.57428 200.825 168.359 +-6.90286 202.013 169.354 +-9.17159 201.27 168.731 +-11.5024 201.89 169.251 +-13.712 200.504 168.089 +-16.0924 201.629 169.032 +-18.3599 201.208 168.679 +-20.7289 201.842 169.21 +-22.9481 201.008 168.511 +-25.3033 201.381 168.824 +-27.5223 200.671 168.229 +-29.897 201.088 168.578 +-32.1979 200.956 168.468 +-34.5894 201.341 168.791 +-36.7417 200.343 167.954 +-39.1547 200.772 168.314 +-41.2987 199.822 167.517 +-43.9357 201.2 168.673 +-45.8605 199.314 167.092 +-48.4564 200.356 167.965 +-50.717 199.95 167.624 +-53.2113 200.428 168.026 +-55.3253 199.465 167.218 +-58.0275 200.584 168.156 +-60.0619 199.367 167.136 +-62.7735 200.373 167.979 +-65.077 200.021 167.684 +-67.7278 200.691 168.245 +-69.8294 199.712 167.425 +-72.6087 200.64 168.203 +-74.6426 199.484 167.234 +-77.3942 200.226 167.856 +-79.7298 199.848 167.539 +-82.5137 200.55 168.127 +-84.578 199.48 167.23 +-87.6395 200.724 168.273 +-89.7591 199.767 167.471 +-92.598 200.388 167.992 +-94.9106 199.833 167.527 +-97.7429 200.339 167.951 +-100.271 200.179 167.816 +-103.06 200.498 168.084 +-105.264 199.66 167.381 +-108.185 200.152 167.794 +-110.538 199.562 167.299 +-113.524 200.08 167.733 +-115.839 199.383 167.149 +-118.851 199.856 167.546 +-118.333 194.469 163.03 +-121.447 195.123 163.578 +-123.445 193.959 162.602 +-126.363 194.223 162.824 +-129.024 194.054 162.682 +-138.386 203.72 170.785 +-140.701 202.786 170.003 +-143.338 202.31 169.603 +-142.97 197.657 165.702 +-142.852 193.492 162.21 +-144.7 192.065 161.014 +-149.216 194.127 162.743 +-154.202 196.669 164.874 +-462.568 578.461 484.943 +-466.912 572.616 480.043 +-163.715 196.933 165.096 +-162.738 192.039 160.993 +-167.237 193.627 162.324 +-170.666 193.899 162.552 +-174.057 194.077 162.701 +-495.111 541.868 454.266 +-494.352 531.113 445.249 +-479.045 505.281 423.594 +-481.033 498.178 417.638 +-483.919 492.127 412.566 +-484.513 483.886 405.658 +-487.173 477.85 400.597 +-488.487 470.616 394.532 +-492.003 465.604 390.331 +-493.151 458.452 384.336 +-495.654 452.671 379.489 +-141.71 127.151 106.595 +-142.234 125.388 105.117 +-142.861 123.744 103.738 +-142.391 121.189 101.597 +-142.077 118.819 99.6101 +-142.06 116.744 97.8704 +-144.141 116.401 97.5825 +-148.657 117.969 98.897 +-512.785 399.884 335.236 +-515.693 395.193 331.303 +-516.964 389.312 326.373 +-520.083 384.882 322.659 +-521.689 379.385 318.051 +-524.161 374.575 314.018 +-526.047 369.399 309.679 +-528.45 364.636 305.686 +-529.212 358.803 300.796 +-532.599 354.798 297.439 +-533.197 348.983 292.564 +-536.461 344.961 289.192 +-537.977 339.849 284.907 +-559.701 347.331 291.179 +-561.991 342.573 287.19 +-563.743 337.527 282.96 +-565.502 332.531 278.772 +-577.493 333.487 279.573 +-557.877 316.348 265.205 +-548.271 305.263 255.912 +-554.413 303.054 254.06 +-558.334 299.598 251.163 +-560.241 295.071 247.368 +-562.585 290.799 243.786 +-383.838 194.692 163.217 +-384.782 191.491 160.534 +-383.743 187.346 157.059 +-384.081 183.92 154.186 +-379.681 178.302 149.476 +-382.382 176.071 147.606 +-382.391 172.614 144.708 +-379.925 168.095 140.92 +-382.26 165.737 138.942 +-381.946 162.245 136.015 +-133.668 55.6173 46.6258 +-136.415 55.5848 46.5985 +-381.858 152.334 127.707 +-381.44 148.939 124.861 +-382.674 146.212 122.574 +-379.92 142.001 119.044 +-2957.32 1080.97 906.21 +-588.194 210.189 176.209 +-381.365 133.187 111.655 +-381.497 130.164 109.121 +-381.956 127.272 106.696 +-381.733 124.174 104.099 +-381.008 120.942 101.39 +-380.702 117.872 98.816 +-379.889 114.676 96.1364 +-607.948 178.839 149.926 +-610.71 174.981 146.692 +-3078.9 858.777 719.94 +-378.753 102.784 86.167 +-379.815 100.222 84.0193 +-380.467 97.5566 81.7849 +-623.513 155.253 130.154 +-376.909 91.0703 76.3472 +-381.661 89.4204 74.9641 +-381.227 86.5382 72.5478 +-380.756 83.6683 70.1419 +-381.405 81.0574 67.9531 +-381.541 78.3454 65.6795 +-382.322 75.7713 63.5216 +-381.132 72.8223 61.0493 +-381.363 70.1635 58.8203 +-381.271 67.4552 56.5499 +-381.732 64.8532 54.3686 +-381.478 62.1386 52.0928 +-380.701 59.3559 49.76 +-381.755 56.8663 47.6728 +-381.405 54.1715 45.4138 +-381.711 51.5789 43.2402 +-381.693 48.9483 41.035 +-380.655 46.2021 38.7327 +-381.463 43.6888 36.6257 +-381.451 41.0828 34.441 +-381.508 38.4903 32.2676 +-380.641 35.8161 30.0258 +-380.935 33.2605 27.8834 +-380.504 30.6477 25.693 +-380.64 28.0872 23.5464 +-381.642 25.5874 21.4508 +-380.922 22.9741 19.2599 +-381.169 20.4258 17.1236 +-379.291 17.7777 14.9036 +-380.478 15.2807 12.8103 +-380.537 12.7323 10.6739 +-380.068 10.171 8.52669 +-148.749 2.98497 2.5024 +-146.278 1.95667 1.64034 +-146.094 0.977037 0.819082 +96.6 3.55271e-15 -1.7053e-13 +95.6964 0.644802 0.530727 +96.5853 1.30168 1.07139 +96.5669 1.9524 1.60699 +96.5412 2.60297 2.14246 +96.3082 3.2466 2.67223 +96.5675 3.90751 3.21621 +96.4198 4.55329 3.74775 +96.4644 5.20815 4.28675 +96.3022 5.85185 4.81657 +96.2324 6.50048 5.35045 +96.1553 7.14863 5.88393 +96.9659 7.86884 6.47673 +96.9726 8.53061 7.02142 +96.9718 9.19307 7.56668 +95.8727 9.74535 8.02125 +96.5511 10.4769 8.62339 +96.429 11.127 9.15849 +96.1021 11.7522 9.67305 +95.9656 12.3992 10.2056 +95.7233 13.0319 10.7264 +95.5724 13.6764 11.2569 +96.1995 14.4377 11.8835 +96.1306 15.1007 12.4292 +95.9563 15.7478 12.9618 +95.7746 16.3937 13.4934 +95.4883 17.0211 14.0098 +96.4591 17.8801 14.7169 +96.1563 18.5107 15.2359 +96.0402 19.1771 15.7844 +95.7232 19.8036 16.3 +96.363 20.6334 16.9831 +96.1262 21.2819 17.5168 +95.7861 21.9068 18.0312 +96.3955 22.7546 18.729 +96.993 23.6122 19.4348 +95.8665 24.05 19.7952 +96.2549 24.8665 20.4673 +96.1592 25.5644 21.0417 +96.715 26.4433 21.7651 +96.1306 27.0147 22.2354 +96.4772 27.8507 22.9235 +96.5322 28.6103 23.5487 +96.8565 29.4577 24.2462 +96.5198 30.1091 24.7824 +96.3606 30.8175 25.3654 +96.0087 31.4656 25.8988 +96.5664 32.4191 26.6837 +96.4704 33.1627 27.2957 +96.0009 33.7794 27.8033 +96.5218 34.7512 28.6032 +96.2156 35.4335 29.1648 +96.5305 36.3512 29.9202 +96.7424 37.2414 30.6528 +96.496 37.9619 31.2459 +95.8859 38.5393 31.7211 +96.2413 39.5101 32.5202 +95.7911 40.1571 33.0527 +96.0332 41.1004 33.8292 +96.3484 42.0881 34.6421 +95.6958 42.6584 35.1115 +95.8993 43.6151 35.8989 +96.0885 44.5777 36.6913 +95.581 45.2234 37.2227 +96.4231 46.5203 38.2902 +96.0623 47.2512 38.8918 +96.1116 48.191 39.6653 +96.2304 49.1777 40.4774 +95.6709 49.8242 41.0096 +95.8459 50.8604 41.8625 +96.0046 51.9029 42.7205 +95.3329 52.5029 43.2144 +95.3831 53.5063 44.0403 +95.3374 54.4685 44.8322 +95.5967 55.6199 45.7799 +95.5197 56.5909 46.5791 +95.4281 57.565 47.3809 +95.5565 58.6864 48.3039 +95.589 59.7654 49.192 +94.8327 60.358 49.6798 +94.8363 61.4414 50.5715 +95.4309 62.9304 51.7971 +95.4708 64.0776 52.7413 +95.2672 65.0765 53.5636 +95.2712 66.2325 54.515 +95.1825 67.3414 55.4277 +95.0028 68.4014 56.3002 +95.5318 69.9956 57.6123 +95.3125 71.0656 58.4931 +95.2189 72.2463 59.4649 +94.9644 73.3219 60.3502 +95.3938 74.9502 61.6904 +95.1682 76.09 62.6286 +94.9241 77.2322 63.5687 +94.6614 78.3773 64.5112 +94.988 80.0365 65.8769 +95.0835 81.5344 67.1097 +94.7547 82.6925 68.063 +94.4725 83.9101 69.0652 +94.17 85.1308 70.0699 +94.7469 87.1815 71.7578 +94.2668 88.2933 72.6729 +94.2722 89.8846 73.9827 +94.1865 91.4234 75.2493 +93.7037 92.6016 76.219 +93.384 93.9644 77.3407 +93.5822 95.8854 78.9218 +93.8036 97.8774 80.5614 +91.6357 97.3817 80.1534 +90.4155 97.8697 80.5551 +89.1911 98.3484 80.9491 +88.6426 99.5822 81.9646 +88.017 100.752 82.9274 +87.8132 102.435 84.3128 +88.1226 104.771 86.2358 +87.9022 106.533 87.6861 +87.8606 108.562 89.3555 +87.623 110.401 90.8693 +87.8655 112.906 92.9315 +88.0072 115.356 94.948 +87.9 117.55 96.7534 +88.0453 120.154 98.897 +90.6594 126.28 103.939 +92.7597 131.907 108.571 +92.392 134.163 110.428 +93.0885 138.067 113.641 +92.7049 140.479 115.626 +92.7645 143.654 118.24 +92.7155 146.772 120.806 +92.689 150.04 123.495 +92.3844 152.967 125.905 +92.601 156.886 129.13 +92.4512 160.325 131.962 +92.5497 164.341 135.267 +92.4861 168.227 138.465 +92.265 171.983 141.556 +92.2656 176.32 145.127 +91.8819 180.097 148.235 +89.5203 180.06 148.204 +88.7075 183.187 150.779 +87.694 186.027 153.116 +90.929 198.256 163.182 +90.0522 201.927 166.203 +87.8299 202.673 166.817 +85.0106 202.009 166.27 +82.8444 202.868 166.978 +79.9052 201.794 166.094 +77.8486 202.917 167.018 +75.0009 201.949 166.222 +72.6888 202.372 166.57 +70.0106 201.736 166.046 +67.6777 202.05 166.305 +64.956 201.15 165.564 +62.8902 202.256 166.474 +60.1744 201.243 165.64 +58.2006 202.696 166.836 +55.45 201.419 165.785 +53.3309 202.39 166.584 +50.698 201.377 165.751 +48.6022 202.47 166.65 +45.982 201.346 165.725 +43.8862 202.485 166.663 +41.3143 201.4 165.77 +39.1843 202.435 166.621 +36.6443 201.315 165.7 +34.485 202.243 166.464 +31.9541 200.936 165.387 +29.8064 201.986 166.252 +27.4074 201.335 165.716 +25.2074 202.127 166.368 +22.7999 201.213 165.615 +20.5641 201.743 166.052 +18.1995 200.949 165.399 +16.0008 201.989 166.255 +13.6178 200.624 165.131 +11.4283 202.098 166.344 +9.08085 200.777 165.257 +6.84265 201.757 166.063 +4.53239 200.483 165.015 +2.27588 201.356 165.733 +2.13163e-14 200.746 165.231 +-2.2785 201.587 165.923 +-4.54461 201.024 165.46 +-6.8348 201.526 165.873 +-9.08434 200.854 165.32 +-11.3934 201.48 165.835 +-13.6283 200.779 165.258 +-15.952 201.373 165.747 +-18.1646 200.565 165.082 +-20.5092 201.204 165.608 +-22.7041 200.366 164.919 +-25.1691 201.82 166.115 +-27.261 200.26 164.831 +-29.7272 201.45 165.81 +-31.7592 199.709 164.378 +-34.3023 201.172 165.582 +-36.4077 200.015 164.63 +-38.8295 200.602 165.113 +-41.0484 200.104 164.703 +-43.5726 201.038 165.472 +-45.5826 199.597 164.285 +-48.1284 200.497 165.026 +-50.2209 199.482 164.191 +-52.8325 200.499 165.027 +-54.9303 199.531 164.231 +-57.5946 200.585 165.099 +-59.702 199.663 164.34 +-62.3533 200.529 165.053 +-64.1819 198.753 163.591 +-67.1018 200.332 164.89 +-69.0529 198.977 163.775 +-72.1009 200.736 165.223 +-73.9259 199.055 163.839 +-76.9682 200.622 165.129 +-78.8819 199.21 163.967 +-81.7018 200.07 164.675 +-83.7127 198.924 163.732 +-86.878 200.476 165.009 +-88.7824 199.08 163.86 +-92.0973 200.803 165.278 +-94.0213 199.45 164.164 +-97.1125 200.544 165.065 +-99.3038 199.738 164.401 +-101.924 199.78 164.436 +-104.365 199.443 164.159 +-107.611 200.587 165.1 +-109.483 199.143 163.912 +-112.487 199.744 164.407 +-114.74 198.978 163.776 +-116.487 197.355 162.44 +-117.15 193.974 159.657 +-120.156 194.501 160.091 +-122.086 193.267 159.075 +-124.311 192.507 158.449 +-127.98 193.932 159.622 +-132.106 195.939 161.274 +-139.574 202.676 166.82 +-143.1 203.492 167.491 +-143.552 199.954 164.579 +-143.098 195.283 160.735 +-143.4 191.771 157.844 +-147.237 192.993 158.85 +-149.928 192.655 158.571 +-463.717 584.261 480.897 +-466.488 576.4 474.426 +-1760.46 2133.59 1756.13 +-162.411 193.096 158.934 +-1808.42 2109.55 1736.34 +-168.708 193.118 158.953 +-494.812 555.878 457.535 +-173.908 191.764 157.838 +-479.254 518.765 426.988 +-480.75 510.894 420.509 +-482.52 503.477 414.404 +-485.003 496.938 409.022 +-486.4 489.425 402.838 +-488.897 483.148 397.672 +-490.044 475.666 391.514 +-493.576 470.606 387.349 +-494.742 463.39 381.41 +-141.863 130.536 107.442 +-142.489 128.811 106.023 +-143.021 127.031 104.557 +-142.993 124.79 102.713 +-141.99 121.756 100.216 +-142.414 119.998 98.7686 +-145.47 120.446 99.1372 +-147.996 120.413 99.1099 +-513.63 410.664 338.011 +-514.397 404.159 332.657 +-517.885 399.858 329.117 +-518.39 393.323 323.739 +-521.377 388.742 319.968 +-523.067 383.248 315.446 +-526.282 378.92 311.883 +-526.711 372.647 306.72 +-529.862 368.36 303.192 +-531.234 362.883 298.684 +-534.334 358.632 295.185 +-535.63 353.213 290.724 +-538.529 348.896 287.171 +-545.153 346.973 285.588 +-561.099 350.818 288.753 +-562.304 345.342 284.246 +-566.737 341.873 281.391 +-568.12 336.584 277.037 +-571.184 332.325 273.532 +-575.963 329.061 270.846 +-575.13 322.627 265.549 +-551.97 303.988 250.208 +-558.334 301.852 248.45 +-562.219 298.34 245.56 +-564.823 294.153 242.113 +-565.625 289.057 237.919 +-383.44 192.259 158.246 +-384.418 189.088 155.635 +-383.063 184.813 152.117 +-380.619 180.087 148.227 +-379.897 176.243 145.063 +-380.582 173.089 142.467 +-381.484 170.055 139.97 +-382.26 166.983 137.441 +-381.772 163.391 134.485 +-2879.44 1207.11 993.552 +-135.532 55.6404 45.7968 +-384.342 154.478 127.149 +-380.994 149.884 123.368 +-381.063 146.692 120.74 +-381.538 143.679 118.26 +-382.877 141.003 116.057 +-589.825 212.358 174.789 +-386.006 135.822 111.793 +-381.314 131.081 107.891 +-382.597 128.445 105.721 +-381.733 125.108 102.974 +-382.671 122.383 100.732 +-378.476 118.065 97.1773 +-3048.51 927.167 763.137 +-610.095 180.82 148.83 +-612.115 176.703 145.442 +-614.841 172.783 142.215 +-379.319 103.711 85.3633 +-378.397 100.598 82.801 +-3107.18 802.712 660.701 +-3116.14 781.742 643.44 +-379.007 92.2658 75.9426 +-381.279 90.0027 74.0799 +-381.706 87.2989 71.8544 +-381.813 84.5317 69.5768 +-381.116 81.6054 67.1682 +-382.024 79.0343 65.052 +-381.547 76.1867 62.7081 +-380.259 73.202 60.2515 +-381.072 70.6371 58.1404 +-380.979 67.9106 55.8962 +-380.755 65.1739 53.6437 +-379.717 62.3171 51.2923 +-381.289 59.8948 49.2986 +-381.068 57.191 47.073 +-381.208 54.5508 44.9 +-381.121 51.8864 42.7069 +-380.706 49.1892 40.4869 +-381.248 46.6222 38.374 +-380.573 43.9147 36.1456 +-381.055 41.3488 34.0336 +-380.12 38.6387 31.8029 +-381.435 36.1608 29.7634 +-380.637 33.4845 27.5606 +-381.001 30.9186 25.4487 +-380.042 28.2541 23.2555 +-381.642 25.7799 21.2191 +-380.623 23.1287 19.0369 +-380.271 20.531 16.8988 +-381.687 18.0246 14.8358 +-380.078 15.3795 12.6586 +-381.736 12.8686 10.5919 +-381.867 10.296 8.4745 +-148.149 2.99529 2.46538 +-146.278 1.97139 1.62262 +-145.794 0.982364 0.808569 +95.7 0 -1.7053e-13 +96.5963 0.655672 0.529825 +96.3853 1.30858 1.05741 +96.5669 1.96682 1.58931 +96.3413 2.61676 2.11451 +96.5081 3.27736 2.64832 +96.5675 3.93636 3.18083 +96.5196 4.59166 3.71035 +96.3647 5.24119 4.23521 +96.4019 5.90116 4.76851 +97.2286 6.61628 5.34637 +97.1507 7.27597 5.87944 +96.9659 7.92695 6.40548 +96.0784 8.51442 6.88019 +96.8725 9.25147 7.47577 +95.8727 9.81732 7.93301 +96.6502 10.5651 8.53726 +96.429 11.2092 9.05773 +96.1021 11.839 9.56664 +96.7546 12.5935 10.1764 +95.7233 13.1282 10.6084 +96.359 13.8908 11.2247 +96.1995 14.5443 11.7527 +96.0326 15.1967 12.2799 +95.9563 15.8641 12.8192 +95.7746 16.5148 13.345 +95.5857 17.1643 13.8698 +95.4867 17.8305 14.4082 +96.2533 18.6662 15.0835 +95.9434 19.2993 15.5951 +96.5926 20.1309 16.2671 +96.363 20.7858 16.7962 +96.1262 21.4391 17.3241 +95.882 22.0907 17.8507 +96.3955 22.9226 18.5229 +96.1347 23.576 19.0509 +95.8665 24.2276 19.5774 +96.4445 25.0995 20.282 +95.9701 25.7026 20.7693 +96.5265 26.5866 21.4837 +96.1306 27.2142 21.9908 +96.8519 28.1652 22.7593 +96.1588 28.7101 23.1996 +96.8565 29.6753 23.9795 +96.7053 30.3898 24.5569 +97.0074 31.2534 25.2547 +96.8371 31.9714 25.8349 +96.5664 32.6585 26.3901 +96.4704 33.4076 26.9955 +96.0919 34.0611 27.5235 +96.3405 34.9421 28.2354 +96.9377 35.9631 29.0604 +96.5305 36.6197 29.591 +96.116 37.2734 30.1193 +96.3178 38.1716 30.8451 +96.5955 39.1112 31.6043 +96.2413 39.8019 32.1624 +95.7911 40.4536 32.6891 +96.0332 41.4039 33.457 +96.3484 42.3989 34.261 +96.6484 43.4013 35.0709 +96.6748 44.2925 35.7911 +96.1742 44.947 36.32 +96.3483 45.9231 37.1088 +96.4231 46.8639 37.869 +95.8093 47.4747 38.3626 +96.1116 48.5469 39.2289 +95.5633 49.1974 39.7546 +95.7538 50.2356 40.5936 +95.8459 51.236 41.4019 +95.2674 51.8846 41.9261 +95.4958 52.981 42.812 +95.3831 53.9015 43.5558 +95.4982 54.9632 44.4137 +95.5967 56.0306 45.2763 +95.5197 57.0088 46.0667 +95.5069 58.038 46.8984 +95.5565 59.1198 47.7725 +95.589 60.2067 48.6508 +95.5271 61.249 49.4931 +95.4491 62.295 50.3383 +95.507 63.4457 51.2681 +95.3953 64.4998 52.1199 +95.3421 65.6086 53.0159 +95.2712 66.7216 53.9153 +95.1088 67.7861 54.7755 +95.0028 68.9066 55.6809 +95.4593 70.459 56.9353 +95.3125 71.5904 57.8496 +95.1476 72.7253 58.7667 +94.9644 73.8633 59.6862 +95.3237 75.4483 60.9669 +95.1682 76.6519 61.9396 +94.9241 77.8026 62.8694 +94.5932 78.8993 63.7556 +94.988 80.6275 65.1521 +95.1504 82.194 66.418 +94.7547 83.3032 67.3142 +94.4725 84.5298 68.3054 +94.6895 86.2324 69.6812 +94.3612 87.4675 70.6793 +94.3304 89.0052 71.9218 +94.2722 90.5484 73.1688 +93.9375 91.8551 74.2247 +93.8884 93.4698 75.5295 +93.8101 95.0907 76.8393 +94.0035 97.0282 78.4049 +92.138 96.8493 78.2604 +89.8724 96.2131 77.7463 +88.4991 96.5024 77.9801 +88.3308 98.1187 79.2861 +88.2461 99.8688 80.7003 +88.1847 101.689 82.171 +88.3099 103.776 83.8573 +88.1771 105.61 85.3399 +87.8485 107.255 86.6686 +88.0196 109.562 88.5328 +88.1455 111.879 90.4051 +87.3505 113.073 91.3705 +88.667 117.08 94.608 +87.6 118.014 95.3628 +87.4052 120.161 97.0975 +87.3627 122.586 99.0572 +93.1891 133.496 107.873 +93.0023 136.047 109.934 +93.1347 139.156 112.447 +93.1589 142.209 114.914 +92.8091 144.784 116.995 +92.6717 147.786 119.42 +92.6029 151.007 122.023 +92.8492 154.872 125.147 +92.5595 157.974 127.653 +92.4919 161.58 130.567 +92.111 164.77 133.145 +92.4079 169.326 136.826 +92.265 173.253 139.999 +91.9659 177.046 143.064 +91.3321 180.341 145.727 +89.9145 182.188 147.219 +88.0071 183.083 147.943 +91.1484 194.783 157.397 +90.9624 199.794 161.446 +89.1406 201.359 162.711 +86.878 201.957 163.194 +84.1762 201.503 162.827 +81.822 201.844 163.103 +79.1743 201.425 162.764 +76.883 201.88 163.132 +74.0638 200.899 162.339 +71.8604 201.544 162.86 +69.1306 200.672 162.155 +67.0768 201.736 163.015 +64.3754 200.825 162.279 +62.3299 201.935 163.176 +59.657 200.986 162.409 +57.508 201.763 163.037 +54.8679 200.776 162.24 +52.8724 202.132 163.335 +50.2018 200.879 162.323 +48.0737 201.748 163.025 +45.5306 200.841 162.292 +43.4405 201.909 163.155 +40.7512 200.123 161.712 +38.7704 201.776 163.048 +36.1015 199.798 161.45 +34.1195 201.578 162.888 +31.6373 200.412 161.945 +29.4894 201.314 162.675 +27.1251 200.733 162.205 +24.8911 201.064 162.473 +22.521 200.219 161.79 +20.3444 201.062 162.471 +17.9623 199.796 161.448 +15.8299 201.307 162.669 +13.4922 200.242 161.808 +11.3149 201.569 162.881 +8.98662 200.161 161.743 +6.77198 201.148 162.54 +4.47654 199.475 161.189 +2.25406 200.898 162.338 +1.86517e-14 200.05 161.653 +-2.25668 201.131 162.527 +-4.48003 199.631 161.314 +-6.76936 201.07 162.477 +-8.96219 199.618 161.304 +-11.2843 201.026 162.441 +-13.4817 200.087 161.683 +-15.7933 200.841 162.292 +-17.9902 200.106 161.698 +-20.368 201.295 162.659 +-22.46 199.676 161.351 +-24.9007 201.142 162.536 +-26.9683 199.573 161.268 +-29.4102 200.774 162.238 +-31.4423 199.177 160.947 +-33.9368 200.498 162.015 +-36.018 199.335 161.076 +-38.4304 200.007 161.618 +-40.4383 198.586 160.47 +-42.9784 199.762 161.42 +-45.027 198.62 160.497 +-47.6364 199.913 161.542 +-49.7057 198.894 160.719 +-52.354 200.15 161.734 +-54.4105 199.102 160.887 +-56.9236 199.713 161.38 +-59.0721 199.016 160.817 +-61.723 199.969 161.587 +-63.698 198.712 160.572 +-66.3257 199.476 161.189 +-68.3282 198.342 160.273 +-71.1923 199.67 161.346 +-73.1817 198.506 160.406 +-75.9457 199.419 161.143 +-78.151 198.821 160.66 +-80.9199 199.619 161.304 +-83.002 198.692 160.556 +-86.053 200.039 161.644 +-87.8708 198.491 160.393 +-91.0959 200.087 161.683 +-93.1321 199.022 160.822 +-95.9918 199.694 161.365 +-98.157 198.89 160.715 +-101.264 199.952 161.574 +-103.054 198.392 160.313 +-106.271 199.553 161.252 +-108.467 198.753 160.605 +-111.41 199.293 161.042 +-113.642 198.53 160.424 +-116.985 199.661 161.339 +-119.474 199.283 161.033 +-119.036 194.112 156.855 +-121.21 193.297 156.196 +-124.088 193.58 156.425 +-126.391 192.938 155.906 +-129.844 194.004 156.768 +-138.4 202.456 163.597 +-141.859 203.217 164.212 +-143.746 201.703 162.989 +-143.148 196.793 159.021 +-142.75 192.311 155.4 +-144.445 190.732 154.124 +-148.279 191.944 155.103 +-156.906 199.154 160.929 +-468.078 582.635 470.806 +-163.232 199.29 161.039 +-165.352 198.043 160.032 +-164.422 193.217 156.132 +-166.416 191.9 155.068 +-170.771 193.263 156.169 +-172.532 191.651 154.866 +-480.009 523.419 422.956 +-483.336 517.435 418.121 +-484.245 509.008 411.311 +-487.109 502.782 406.28 +-488.348 495.014 400.002 +-491.359 489.167 395.278 +-492.845 481.918 389.42 +-495.149 475.592 384.308 +-142.291 134.258 108.489 +-142.377 131.976 106.645 +-142.424 129.704 104.809 +-142.299 127.324 102.885 +-142.132 124.954 100.971 +-141.923 122.598 99.0666 +-143.022 121.401 98.0994 +-148.471 123.838 100.069 +-148.478 121.697 98.3388 +-515.575 415.263 335.559 +-516.36 408.697 330.253 +-519.653 404.186 326.608 +-520.174 397.59 321.278 +-523.895 393.505 317.977 +-524.446 387.096 312.798 +-527.672 382.726 309.267 +-528.849 376.923 304.577 +-532.612 373.007 301.413 +-533.706 367.264 296.773 +-536.674 362.862 293.216 +-537.683 357.185 288.628 +-551.629 360.021 290.92 +-560.277 359.232 290.282 +-563.275 354.779 286.684 +-565.2 349.683 282.566 +-569.023 345.786 279.417 +-570.262 340.348 275.023 +-572.861 335.762 271.317 +-576.124 331.583 267.94 +-585.809 331.043 267.504 +-561.984 311.788 251.945 +-556.86 303.278 245.067 +-563.702 301.337 243.499 +-566.316 297.108 240.082 +-568.126 292.48 236.342 +-384.027 193.976 156.745 +-383.237 189.899 153.45 +-383.318 186.302 150.544 +-381.642 181.904 146.99 +-379.382 177.304 143.273 +-380.323 174.248 140.804 +-382.09 171.583 138.65 +-381.825 168.025 135.775 +-380.722 164.145 132.64 +-383.164 161.814 130.756 +-134.561 55.6497 44.9684 +-137.132 55.5243 44.8671 +-381.796 151.309 122.268 +-381.332 147.879 119.496 +-381.538 144.74 116.959 +-381.342 141.475 114.321 +-383.912 139.243 112.517 +-593.295 210.302 169.937 +-382.227 132.365 106.959 +-382.139 129.239 104.433 +-381.733 126.032 101.842 +-382.024 123.079 99.4557 +-381.814 119.986 96.9561 +-608.028 186.29 150.534 +-3058.88 913.285 737.992 +-612.865 178.226 144.018 +-616.908 174.644 141.123 +-380.639 104.84 84.7177 +-621.584 166.472 134.52 +-622.574 162.024 130.926 +-379.757 95.9728 77.5521 +-381.296 93.5087 75.5609 +-380.227 90.4169 73.0626 +-381.706 87.9435 71.0639 +-381.333 85.0486 68.7246 +-382.272 82.4569 66.6304 +-382.024 79.618 64.3363 +-380.676 76.574 61.8766 +-380.841 73.8555 59.6799 +-381.655 71.2677 57.5888 +-380.979 68.4121 55.2813 +-381.732 65.8236 53.1896 +-381.184 63.0199 50.924 +-380.113 60.151 48.6058 +-381.068 57.6133 46.5552 +-381.11 54.9395 44.3946 +-380.825 52.2291 42.2044 +-381.988 49.7192 40.1763 +-380.359 46.8569 37.8634 +-381.167 44.3079 35.8036 +-381.352 41.6867 33.6855 +-381.805 39.0966 31.5925 +-382.23 36.5036 29.4972 +-380.935 33.7582 27.2787 +-380.305 31.09 25.1227 +-379.744 28.4404 22.9817 +-380.945 25.9228 20.9473 +-380.324 23.2812 18.8127 +-379.972 20.6663 16.6997 +-380.589 18.1055 14.6304 +-381.277 15.5419 12.5589 +-380.537 12.9228 10.4425 +-380.468 10.334 8.35053 +-148.149 3.01741 2.43826 +-148.877 2.02124 1.63329 +-146.494 0.994371 0.803514 +96.6 3.55271e-15 -1.7053e-13 +96.5963 0.660425 0.523889 +96.3853 1.31806 1.04557 +96.5669 1.98107 1.57151 +96.5412 2.6412 2.09516 +96.5081 3.30112 2.61865 +96.4676 3.96079 3.14194 +96.4198 4.62016 3.66499 +96.3647 5.27918 4.18777 +96.3022 5.93779 4.71022 +96.332 6.60278 5.23773 +96.2548 7.26112 5.75996 +97.0653 7.99263 6.34024 +96.0784 8.57613 6.80311 +96.8725 9.31852 7.39202 +95.8727 9.88847 7.84414 +96.6502 10.6417 8.44162 +96.429 11.2904 8.95626 +96.1021 11.9248 9.45946 +95.867 12.5684 9.97 +95.7233 13.2233 10.4896 +96.359 13.9915 11.0989 +96.1995 14.6497 11.6211 +96.1306 15.3225 12.1547 +95.8585 15.9628 12.6626 +95.7746 16.6345 13.1955 +95.5857 17.2887 13.7144 +95.4867 17.9598 14.2468 +96.1563 18.7825 14.8994 +95.9434 19.4392 15.4204 +95.8198 20.1146 15.9561 +96.363 20.9364 16.6081 +96.03 21.5729 17.1129 +95.882 22.2508 17.6507 +96.3955 23.0888 18.3154 +96.1347 23.7469 18.8375 +95.8665 24.4032 19.3581 +96.4445 25.2815 20.0548 +95.9701 25.8889 20.5366 +96.4322 26.7531 21.2222 +96.2245 27.4383 21.7657 +96.4772 28.2597 22.4173 +96.1588 28.9182 22.9397 +95.833 29.5745 23.4603 +96.7053 30.6101 24.2818 +96.3606 31.27 24.8053 +96.0087 31.9277 25.327 +96.4747 32.864 26.0697 +96.379 33.6179 26.6677 +96.0919 34.308 27.2152 +96.5218 35.2616 27.9716 +96.1253 35.9201 28.4941 +96.5305 36.8851 29.2595 +96.7424 37.7883 29.976 +96.3178 38.4483 30.4995 +96.0633 39.1777 31.0781 +96.2413 40.0904 31.8021 +95.7911 40.7468 32.3229 +96.8204 42.0458 33.3533 +95.5651 42.359 33.6017 +96.4752 43.6375 34.6159 +96.6748 44.6135 35.3901 +96.1742 45.2727 35.9131 +96.4336 46.2969 36.7256 +96.5927 47.2866 37.5106 +95.8936 47.861 37.9663 +96.1116 48.8987 38.7895 +95.5633 49.554 39.3093 +95.6709 50.5559 40.1041 +95.8459 51.6074 40.9381 +96.0046 52.6652 41.7772 +95.4143 53.3195 42.2963 +96.1921 54.7526 43.4331 +95.5786 55.4082 43.9531 +95.5967 56.4367 44.7691 +95.6784 57.5173 45.6263 +95.5069 58.4587 46.373 +95.5565 59.5483 47.2374 +95.589 60.6431 48.1058 +95.6043 61.7428 48.9782 +94.9129 62.3941 49.4948 +95.507 63.9055 50.6938 +95.3953 64.9673 51.536 +95.2672 66.0323 52.3808 +95.1969 67.1528 53.2697 +95.1088 68.2774 54.1618 +94.9297 69.3526 55.0147 +95.4593 70.9696 56.2975 +95.3125 72.1093 57.2015 +95.0763 73.1975 58.0647 +94.8937 74.3433 58.9736 +95.3938 76.0509 60.3283 +95.1682 77.2075 61.2457 +94.8553 78.3098 62.1201 +94.6614 79.5283 63.0867 +94.988 81.2119 64.4223 +94.5482 82.2656 65.2581 +94.8209 83.9657 66.6067 +94.5381 85.202 67.5874 +94.6895 86.8574 68.9006 +94.2327 87.9816 69.7924 +94.394 89.7107 71.164 +94.2722 91.2047 72.3491 +93.813 92.3978 73.2956 +93.7652 94.0235 74.5852 +93.9319 95.9037 76.0767 +93.8831 97.6061 77.4271 +91.3053 96.6699 76.6845 +90.4014 97.4808 77.3277 +88.2668 96.9473 76.9045 +88.3308 98.8299 78.3979 +88.5293 100.915 80.0522 +88.5762 102.881 81.6115 +88.4755 104.724 83.0732 +87.7958 105.916 84.0191 +88.2783 108.56 86.1165 +88.0726 110.422 87.5938 +88.041 112.556 89.2867 +88.3805 115.236 91.4121 +87.9056 116.916 92.7445 +87.7 119.005 94.402 +87.7499 121.509 96.3882 +87.3142 123.406 97.8934 +91.7576 132.399 105.027 +92.8615 136.825 108.538 +93.0885 140.095 111.132 +92.7957 142.681 113.183 +92.8091 145.834 115.684 +92.6717 148.857 118.083 +92.5168 151.96 120.544 +92.4689 155.356 123.238 +92.601 159.19 126.279 +92.2072 162.251 128.707 +92.111 165.964 131.653 +92.3688 170.481 135.236 +92.2267 174.436 138.374 +91.891 178.183 141.346 +90.3426 179.68 142.533 +88.9111 181.461 143.946 +86.9915 182.282 144.597 +91.0116 195.9 155.4 +90.6286 200.503 159.051 +88.3266 200.967 159.419 +86.1799 201.786 160.069 +82.9402 199.983 158.639 +81.0703 201.439 159.794 +78.0925 200.113 158.742 +76.1445 201.39 159.755 +73.292 200.246 158.847 +71.3526 201.57 159.898 +68.587 200.537 159.078 +66.3257 200.922 159.384 +63.7222 200.228 158.833 +61.6763 201.265 159.656 +58.8922 199.847 158.531 +56.8154 200.778 159.269 +54.3481 200.316 158.903 +52.2942 201.37 159.739 +49.6867 200.259 158.858 +47.6181 201.285 159.671 +45.0617 200.214 158.822 +42.9619 201.132 159.55 +40.454 200.102 158.734 +38.3565 201.069 159.5 +35.8649 199.927 158.594 +33.7671 200.942 159.399 +31.3204 199.842 158.527 +29.2177 200.906 159.371 +26.7906 199.695 158.41 +24.6515 200.573 159.106 +22.3119 199.797 158.491 +20.1561 200.645 159.164 +17.8088 199.524 158.275 +15.6834 200.89 159.358 +13.3457 199.503 158.258 +11.1927 200.839 159.318 +8.89588 199.577 158.317 +6.70392 200.569 159.104 +4.43989 199.276 158.078 +2.23225 200.395 158.966 +2.04281e-14 199.463 158.226 +-2.23312 200.474 159.028 +-4.43815 199.198 158.016 +-6.69868 200.413 158.98 +-8.86796 198.95 157.819 +-11.1709 200.447 159.007 +-13.3509 199.581 158.32 +-15.6284 200.186 158.8 +-17.7809 199.212 158.027 +-20.0855 199.942 158.606 +-22.2334 199.094 157.934 +-24.6324 200.417 158.983 +-26.6652 198.76 157.669 +-29.2177 200.906 159.371 +-31.2229 199.22 158.034 +-33.6627 200.32 158.906 +-35.6283 198.608 157.548 +-38.12 199.829 158.517 +-40.0629 198.168 157.199 +-42.4833 198.891 157.773 +-44.6276 198.285 157.292 +-47.0714 198.974 157.838 +-49.0952 197.875 156.967 +-51.736 199.22 158.034 +-53.6204 197.633 156.775 +-56.3825 199.248 158.055 +-58.3748 198.091 157.138 +-60.9993 199.056 157.903 +-62.9965 197.947 157.024 +-65.6246 198.798 157.699 +-67.8106 198.267 157.277 +-70.3639 198.777 157.682 +-72.4099 197.836 156.936 +-75.3777 199.362 158.146 +-77.2738 198.015 157.077 +-80.108 199.048 157.897 +-82.0749 197.897 156.984 +-84.9742 198.963 157.829 +-86.9918 197.93 157.01 +-89.7607 198.583 157.528 +-91.935 197.888 156.977 +-94.8011 198.646 157.578 +-96.7593 197.479 156.652 +-100.275 199.433 158.203 +-102.193 198.16 157.192 +-105.2 198.973 157.837 +-107.06 197.597 156.746 +-110.334 198.798 157.699 +-112.178 197.392 156.583 +-115.616 198.756 157.665 +-117.192 196.893 156.187 +-120.629 198.134 157.172 +-123.577 198.5 157.462 +-123.82 194.562 154.338 +-128.162 197.059 156.319 +-130.998 197.148 156.39 +-136.381 200.949 159.405 +-140.666 202.969 161.007 +-142.583 201.521 159.858 +-143.197 198.287 157.294 +-143.2 194.316 154.143 +-144.293 191.912 152.236 +-145.189 189.306 150.169 +-150.218 192.047 152.344 +-157.227 197.125 156.372 +-470.674 578.812 459.149 +-473.564 571.301 453.191 +-167.016 197.688 156.818 +-169.044 196.344 155.752 +-170.715 194.6 154.368 +-481.517 538.753 427.372 +-482.1 529.509 420.039 +-485.511 523.531 415.296 +-486.327 514.901 408.451 +-489.396 508.804 403.614 +-490.601 500.901 397.345 +-493.884 495.244 392.858 +-494.339 486.882 386.225 +-141.157 136.564 108.331 +-142.418 135.352 107.37 +-142.892 133.413 105.831 +-142.749 130.941 103.871 +-142.102 128.069 101.592 +-141.933 125.684 99.7 +-146.004 127.038 100.774 +-148.292 126.785 100.574 +-513.477 431.389 342.204 +-514.958 425.135 337.243 +-517.868 420.132 333.275 +-518.673 413.502 328.015 +-521.562 408.611 324.135 +-523.027 402.669 319.422 +-526.197 398.098 315.796 +-526.984 391.789 310.791 +-529.866 387.103 307.074 +-530.692 380.978 302.215 +-534.47 377.021 299.076 +-535.354 371.068 294.354 +-538.787 366.932 291.073 +-543.006 363.336 288.22 +-561.204 368.925 292.654 +-562.514 363.281 288.177 +-567.161 359.816 285.428 +-567.86 353.876 280.716 +-571.387 349.739 277.434 +-572.008 343.864 272.774 +-575.577 339.799 269.549 +-576.767 334.359 265.234 +-581.036 330.726 262.352 +-587.466 328.288 260.418 +-584.055 320.395 254.157 +-560.241 301.657 239.293 +-566.979 299.612 237.67 +-570.128 295.637 234.517 +-574.238 292.155 231.755 +-382.225 190.77 151.331 +-383.318 187.652 148.857 +-382.835 183.796 145.798 +-382.125 179.88 142.692 +-380.84 175.75 139.416 +-379.146 171.494 136.04 +-381.651 169.166 134.193 +-381.422 165.638 131.394 +-381.846 162.426 128.846 +-382.669 159.405 126.45 +-135.801 55.3841 43.9341 +-601.429 240.08 190.446 +-380.705 148.707 117.963 +-381.089 145.617 115.512 +-381.974 142.736 113.227 +-381.374 139.325 110.521 +-595.479 212.605 168.652 +-598.92 208.909 165.719 +-381.589 129.987 103.114 +-381.549 126.884 100.652 +-381.747 123.881 98.27 +-382.185 120.973 95.9631 +-609.982 188.243 149.326 +-612.896 184.319 146.213 +-615.394 180.258 142.992 +-617.378 176.044 139.649 +-619.693 171.921 136.379 +-622.908 168.035 133.295 +-378.381 99.1871 78.6813 +-380.613 96.8869 76.8566 +-381.391 94.2099 74.7331 +-380.992 91.2556 72.3895 +-381.706 88.5809 70.2678 +-381.621 85.73 68.0063 +-382.272 83.0546 65.884 +-381.444 80.0736 63.5193 +-380.869 77.1682 61.2145 +-381.229 74.4666 59.0715 +-381.655 71.7843 56.9437 +-381.271 68.9608 54.7039 +-380.755 66.1311 52.4592 +-381.184 63.4766 50.3535 +-380.211 60.6027 48.0737 +-380.184 57.8963 45.9269 +-381.7 55.4233 43.9652 +-381.121 52.6484 41.7639 +-381.693 50.0408 39.6954 +-380.359 47.1965 37.4392 +-381.463 44.6639 35.4301 +-380.56 41.9015 33.2389 +-381.012 39.2982 31.1737 +-380.244 36.5772 29.0153 +-381.234 34.0295 26.9943 +-380.305 31.3153 24.8412 +-381.336 28.7667 22.8195 +-380.945 26.1107 20.7126 +-380.324 23.4499 18.6019 +-379.673 20.7997 16.4996 +-379.591 18.1889 14.4286 +-380.378 15.6177 12.3889 +-380.837 13.0268 10.3336 +-380.468 10.4089 8.25698 +-149.649 3.07005 2.43535 +-147.078 2.01128 1.59547 +-145.494 0.994738 0.789087 +95.7 0 -1.7053e-13 +96.5963 0.665124 0.51791 +96.5853 1.3302 1.03578 +96.5669 1.99517 1.55357 +96.5412 2.65999 2.07124 +96.5081 3.32461 2.58876 +96.4676 3.98897 3.10608 +96.5196 4.65785 3.62691 +96.4644 5.32224 4.14425 +96.3022 5.98004 4.65646 +96.2324 6.64288 5.17259 +97.0511 7.37329 5.74133 +97.0653 8.0495 6.26788 +96.0784 8.63716 6.72547 +96.8725 9.38483 7.30765 +96.765 10.0515 7.8268 +96.6502 10.7174 8.34527 +96.429 11.3708 8.85404 +96.1021 12.0096 9.3515 +95.867 12.6578 9.85621 +95.7233 13.3174 10.3698 +95.5724 13.976 10.8827 +95.316 14.6185 11.3829 +95.1507 15.2742 11.8935 +95.8585 16.0764 12.5181 +95.677 16.7358 13.0316 +95.6831 17.4294 13.5717 +95.3895 18.0692 14.0699 +96.2533 18.9353 14.7443 +95.9434 19.5775 15.2444 +96.5926 20.4211 15.9013 +96.363 21.0854 16.4185 +96.03 21.7264 16.9176 +96.4573 22.5436 17.5539 +96.3955 23.2531 18.1064 +96.1347 23.9158 18.6225 +95.8665 24.5769 19.1372 +96.4445 25.4613 19.8259 +96.1592 26.1244 20.3422 +96.715 27.0226 21.0416 +96.2245 27.6335 21.5173 +95.8216 28.2673 22.0108 +96.1588 29.1239 22.6778 +96.8565 30.103 23.4402 +96.5198 30.7687 23.9586 +96.3606 31.4926 24.5222 +96.1007 32.1856 25.0619 +95.9245 32.9091 25.6252 +96.379 33.8571 26.3634 +96.0919 34.5521 26.9046 +96.5218 35.5125 27.6524 +96.2156 36.2097 28.1953 +96.5305 37.1476 28.9256 +96.7424 38.0572 29.6339 +96.3178 38.7219 30.1514 +96.6842 39.7115 30.922 +96.2413 40.3757 31.4392 +95.7032 40.9991 31.9247 +96.0332 42.0008 32.7046 +96.3484 43.0101 33.4905 +95.6958 43.5929 33.9444 +95.9855 44.6106 34.7368 +96.1742 45.5949 35.5032 +96.3483 46.5851 36.2743 +95.8294 47.2468 36.7895 +96.0623 48.2863 37.5989 +96.0278 49.2038 38.3133 +95.4799 49.863 38.8267 +95.7538 50.9598 39.6807 +95.8459 51.9746 40.4709 +96.0046 53.0399 41.3004 +96.0656 54.0654 42.0989 +95.464 54.7249 42.6124 +95.4982 55.7555 43.4149 +95.4369 56.7433 44.1841 +95.6784 57.9266 45.1055 +95.5069 58.8747 45.8437 +95.5565 59.972 46.6982 +95.589 61.0746 47.5567 +95.5271 62.132 48.3801 +95.4491 63.193 49.2063 +95.4309 64.309 50.0753 +95.3953 65.4296 50.9478 +95.2672 66.5021 51.783 +95.1969 67.6307 52.6617 +95.1088 68.7633 53.5437 +95.5879 70.3303 54.7639 +95.4593 71.4746 55.6549 +95.3125 72.6224 56.5487 +95.0763 73.7184 57.402 +95.0352 74.9839 58.3875 +95.3237 76.5358 59.5959 +95.1682 77.7568 60.5467 +94.9241 78.9241 61.4556 +94.6614 80.0942 62.3667 +94.8529 81.6738 63.5967 +95.1504 83.3789 64.9243 +94.8209 84.5632 65.8465 +93.882 85.2125 66.3522 +94.7545 87.5354 68.1609 +94.1684 88.5477 68.9491 +94.5212 90.4705 70.4464 +94.2093 91.7929 71.4761 +93.8752 93.1169 72.507 +94.2578 95.1896 74.121 +93.9928 96.6493 75.2576 +94.1841 98.6155 76.7886 +93.2682 99.451 77.4392 +92.2235 100.153 77.986 +89.4283 98.9216 77.027 +88.5028 99.7272 77.6542 +88.3594 101.439 78.9868 +88.1847 103.155 80.3231 +88.4755 105.469 82.1251 +88.3949 107.397 83.6266 +88.0097 109 84.875 +88.0726 111.208 86.594 +87.9888 113.29 88.2154 +88.535 116.259 90.5267 +87.6011 117.34 91.3684 +87.55 119.647 93.1648 +87.5529 122.099 95.0743 +89.1565 126.907 98.8183 +93.1414 135.351 105.393 +92.8615 137.799 107.299 +93.1347 141.162 109.918 +92.7503 143.626 111.837 +92.8091 146.871 114.364 +92.6717 149.916 116.735 +92.5599 153.113 119.224 +92.7647 156.962 122.221 +92.601 160.323 124.838 +92.2479 163.477 127.294 +92.1908 167.29 130.263 +92.3298 171.622 133.636 +92.2267 175.678 136.794 +91.3665 178.427 138.935 +90.2693 180.812 140.792 +88.1585 181.205 141.099 +88.7776 187.348 145.881 +91.422 198.184 154.319 +90.228 201.037 156.541 +87.5127 200.531 156.147 +85.1963 200.902 156.436 +82.353 199.981 155.718 +80.2283 200.766 156.33 +77.5662 200.179 155.872 +75.3493 200.705 156.282 +72.5753 199.699 155.499 +70.6044 200.875 156.415 +67.9141 199.982 155.719 +65.7498 200.595 156.197 +63.0207 199.432 155.291 +60.9526 200.319 155.982 +58.3748 199.501 155.345 +56.3825 200.666 156.252 +53.7868 199.657 155.466 +51.6762 200.406 156.049 +49.2287 199.825 155.597 +47.1626 200.777 156.338 +44.6449 199.773 155.557 +42.4998 200.385 156.033 +40.0629 199.578 155.405 +37.854 199.847 155.614 +35.5309 199.474 155.324 +33.4278 200.337 155.996 +31.0036 199.229 155.133 +28.8781 199.983 155.72 +26.6129 199.782 155.563 +24.3927 199.879 155.639 +22.0765 199.096 155.03 +19.8815 199.319 155.203 +17.6554 199.212 155.12 +15.5124 200.114 155.822 +13.2515 199.504 155.347 +11.0662 199.982 155.719 +8.82259 199.341 155.22 +6.63586 199.946 155.691 +4.39626 198.722 154.738 +2.20869 199.691 155.493 +1.95399e-14 199.304 155.192 +-2.20956 199.77 155.554 +-4.40499 199.117 155.046 +-6.63062 199.788 155.568 +-8.78071 198.395 154.483 +-11.0488 199.667 155.474 +-13.2148 198.953 154.918 +-15.4575 199.405 155.27 +-17.5996 198.583 154.63 +-19.8737 199.241 155.142 +-21.9981 198.389 154.479 +-24.3832 199.801 155.578 +-26.5084 198.998 154.953 +-28.8781 199.983 155.72 +-30.8695 198.367 154.462 +-33.2972 199.555 155.387 +-35.3639 198.537 154.594 +-37.721 199.144 155.067 +-39.7656 198.097 154.252 +-42.1036 198.516 154.578 +-44.2629 198.063 154.225 +-46.5794 198.295 154.405 +-48.6563 197.502 153.788 +-51.1777 198.474 154.545 +-53.2878 197.805 154.024 +-55.7765 198.508 154.572 +-57.7899 197.502 153.789 +-60.369 198.401 154.488 +-62.4884 197.748 153.98 +-65.1238 198.685 154.709 +-67.1377 197.696 153.939 +-69.6156 198.063 154.225 +-71.8311 197.652 153.905 +-74.3836 198.133 154.279 +-76.5429 197.538 153.816 +-79.3262 198.508 154.572 +-81.4569 197.804 154.023 +-84.3078 198.807 154.805 +-86.4058 197.996 154.172 +-88.9929 198.285 154.398 +-91.08 197.442 153.742 +-94.0307 198.433 154.513 +-96.0784 197.484 153.774 +-99.0653 198.43 154.511 +-101.331 197.887 154.088 +-104.166 198.421 154.504 +-106.357 197.696 153.939 +-109.297 198.331 154.434 +-111.487 197.571 153.842 +-114.455 198.16 154.3 +-116.685 197.436 153.737 +-119.682 197.978 154.159 +-121.736 196.934 153.346 +-124.802 197.5 153.787 +-127.344 197.195 153.55 +-130.767 198.201 154.332 +-133.424 197.99 154.168 +-139.139 202.195 157.442 +-141.177 200.953 156.475 +-143.246 199.767 155.552 +-143.1 195.561 152.277 +-142.72 191.17 148.858 +-144.571 189.842 147.824 +-149.017 191.866 149.4 +-152.458 192.506 149.898 +-472.77 585.526 455.93 +-475.306 577.484 449.668 +-477.481 569.189 443.209 +-479.172 560.516 436.455 +-479.859 550.888 428.958 +-482.607 543.815 423.45 +-484.48 535.911 417.296 +-487.45 529.363 412.197 +-488.528 520.912 405.617 +-491.442 514.567 400.676 +-492.914 506.844 394.663 +-495.423 500.322 389.584 +-142.618 141.467 110.155 +-142.415 138.762 108.049 +-142.227 136.132 106.002 +-142.313 133.818 104.2 +-142.164 131.333 102.265 +-142.496 129.337 100.711 +-142.993 127.524 99.2988 +-149.417 130.932 101.952 +-148.427 127.804 99.5169 +-515.523 436.19 339.646 +-517.023 429.877 334.731 +-519.674 424.597 330.62 +-521.056 418.358 325.761 +-523.471 413.025 321.609 +-524.81 406.916 316.852 +-528.139 402.41 313.344 +-529.233 396.26 308.554 +-532.206 391.579 304.909 +-533.052 385.395 300.094 +-536.179 380.918 296.608 +-538.274 375.747 292.582 +-551.768 378.446 294.683 +-560.799 377.912 294.267 +-563.809 373.275 290.657 +-565.678 367.924 286.49 +-568.327 363.121 282.75 +-569.504 357.426 278.315 +-572.49 352.908 274.798 +-573.991 347.512 270.596 +-578.292 343.831 267.73 +-579.661 338.429 263.523 +-582.25 333.775 259.899 +-582.662 327.921 255.341 +-596.261 329.417 256.506 +-571.119 309.703 241.155 +-565.321 300.861 234.271 +-572.463 298.961 232.791 +-575.999 295.136 229.813 +-384.08 193.06 150.33 +-381.876 188.276 146.605 +-383.176 185.269 144.263 +-382.297 181.242 141.127 +-378.6 175.959 137.014 +-380.532 173.346 134.979 +-382.347 170.681 132.903 +-382.471 167.276 130.252 +-382.198 163.733 127.493 +-382.846 160.614 125.065 +-134.205 55.1224 42.922 +-136.057 54.6977 42.5913 +-382.047 150.293 117.028 +-381.628 146.86 114.355 +-381.794 143.684 111.882 +-381.465 140.349 109.285 +-595.206 214.02 166.651 +-599.925 210.748 164.103 +-381.13 130.755 101.815 +-382.102 127.971 99.6471 +-382.024 124.853 97.2191 +-381.629 121.656 94.7296 +-612.494 190.363 148.23 +-3058.88 926.45 721.396 +-617.08 182.039 141.747 +-619.445 177.891 138.518 +-621.012 173.513 135.109 +-623.664 169.436 131.934 +-380.088 100.343 78.1341 +-382.039 97.9417 76.2639 +-381.391 94.8803 73.8801 +-381.279 91.9744 71.6174 +-381.035 89.0542 69.3436 +-381.621 86.34 67.2301 +-381.501 83.4775 65.0011 +-381.444 80.6434 62.7943 +-381.16 77.7766 60.562 +-381.52 75.0538 58.4419 +-380.78 72.1293 56.1647 +-380.589 69.3273 53.9828 +-380.463 66.5504 51.8206 +-380.01 63.7314 49.6255 +-381.289 61.2069 47.6598 +-382.246 58.6244 45.6489 +-381.405 55.7746 43.4299 +-380.825 52.982 41.2553 +-380.41 50.2277 39.1106 +-381.248 47.6435 37.0984 +-381.958 45.04 35.0711 +-379.966 42.1338 32.8082 +-379.327 39.4027 30.6816 +-380.641 36.876 28.7141 +-380.637 34.218 26.6444 +-381.001 31.5959 24.6027 +-379.545 28.8352 22.453 +-381.642 26.3446 20.5137 +-380.324 23.6168 18.3896 +-380.271 20.9808 16.337 +-381.687 18.4195 14.3426 +-380.078 15.7164 12.2378 +-380.238 13.0988 10.1996 +-380.468 10.483 8.16274 +-146.75 3.032 2.36092 +-147.478 2.0311 1.58155 +-145.994 1.00526 0.78276 +96.6 3.55271e-15 -1.7053e-13 +96.5963 0.669769 0.511888 +96.5853 1.33949 1.02374 +96.5669 2.0091 1.53551 +96.5412 2.67857 2.04716 +97.4072 3.37902 2.5825 +96.5675 4.02099 3.07315 +96.4198 4.68553 3.58104 +96.4644 5.35941 4.09607 +96.4019 6.02804 4.60708 +96.2324 6.68928 5.11245 +96.2548 7.36386 5.62802 +97.0653 8.10572 6.19501 +96.9726 8.77836 6.70909 +96.8725 9.45037 7.22269 +96.765 10.1217 7.7358 +96.6502 10.7922 8.24825 +95.5389 11.3445 8.67034 +96.1021 12.0935 9.24278 +95.867 12.7462 9.74162 +96.6096 13.5346 10.3442 +95.5724 14.0736 10.7561 +95.316 14.7206 11.2506 +96.1306 15.5393 11.8763 +95.8585 16.1886 12.3726 +95.7746 16.8699 12.8932 +96.5601 17.712 13.5368 +95.3895 18.1954 13.9063 +95.186 18.856 14.4112 +95.9434 19.7143 15.0671 +95.7232 20.3787 15.575 +96.363 21.2327 16.2276 +96.1262 21.9 16.7376 +95.7861 22.5431 17.2291 +96.3955 23.4155 17.8959 +96.1347 24.0829 18.4059 +95.8665 24.7485 18.9147 +96.2549 25.5887 19.5568 +96.1592 26.3069 20.1057 +96.5265 27.1582 20.7564 +96.2245 27.8265 21.2671 +96.8519 28.7708 21.9888 +96.1588 29.3273 22.4142 +96.8565 30.3133 23.1677 +96.5198 30.9836 23.68 +96.1759 31.6516 24.1906 +96.8371 32.6588 24.9603 +96.5664 33.3607 25.4967 +96.379 34.0935 26.0569 +96.0009 34.7604 26.5666 +96.6124 35.7941 27.3566 +96.1253 36.4284 27.8413 +96.5305 37.407 28.5893 +95.937 38.0039 29.0455 +96.496 39.0645 29.856 +96.0633 39.732 30.3662 +96.2413 40.6576 31.0736 +96.4941 41.6266 31.8142 +96.0332 42.2941 32.3244 +96.3484 43.3105 33.1011 +95.6958 43.8974 33.5497 +95.9855 44.9222 34.3329 +96.1742 45.9133 35.0904 +95.581 46.5369 35.567 +95.8294 47.5767 36.3617 +95.8936 48.5382 37.0966 +96.1116 49.5906 37.9009 +95.7301 50.3429 38.4758 +95.7538 51.3157 39.2193 +95.8459 52.3376 40.0004 +96.0046 53.4104 40.8202 +95.4143 54.0739 41.3274 +95.464 55.1071 42.117 +95.4982 56.1449 42.9102 +95.5967 57.2353 43.7435 +95.4404 58.1861 44.4702 +95.5069 59.2859 45.3107 +95.5565 60.3909 46.1553 +95.5112 61.4512 46.9656 +95.7586 62.7175 47.9334 +95.4491 63.6344 48.6342 +95.4309 64.7581 49.4931 +95.4708 65.9386 50.3953 +95.2672 66.9666 51.1809 +95.1969 68.103 52.0495 +95.1088 69.2435 52.9211 +95.6611 70.8757 54.1686 +94.879 71.5363 54.6734 +95.3125 73.1296 55.8912 +95.2189 74.3446 56.8198 +94.9644 75.4514 57.6657 +95.4638 77.1837 58.9896 +95.1682 78.2999 59.8427 +94.9241 79.4753 60.7411 +94.6614 80.6536 61.6416 +94.8529 82.2442 62.8573 +94.682 83.548 63.8537 +94.8209 85.1538 65.081 +94.4725 86.3471 65.993 +94.4947 87.9052 67.1838 +94.1684 89.1661 68.1475 +94.3304 90.9188 69.487 +94.2093 92.434 70.645 +94.3732 94.2646 72.0441 +93.8884 95.4794 72.9726 +93.9928 97.3243 74.3826 +94.0035 99.1143 75.7507 +93.982 100.912 77.1242 +93.3991 102.138 78.0618 +90.9962 101.359 77.4661 +89.3632 101.4 77.4977 +88.3027 102.081 78.0181 +88.0729 103.743 79.2884 +88.2547 105.94 80.9674 +88.286 108.014 82.5523 +87.9022 109.627 83.7856 +88.4965 112.523 85.999 +88.668 114.962 87.8626 +88.535 117.071 89.4742 +88.0579 118.776 90.7773 +87.5 120.413 92.0288 +87.6514 123.09 94.0746 +91.3866 130.99 100.112 +93.1414 136.296 104.168 +92.8615 138.761 106.052 +92.7191 141.514 108.156 +92.7503 144.629 110.537 +92.7645 147.827 112.98 +92.6717 150.963 115.378 +92.9043 154.756 118.276 +92.7224 157.986 120.745 +92.9328 162.021 123.828 +92.2072 164.546 125.759 +92.111 168.312 128.637 +92.3688 172.894 132.138 +92.3032 177.051 135.316 +90.9545 178.863 136.701 +89.8295 181.187 138.477 +87.5851 181.284 138.551 +91.194 193.791 148.11 +91.3194 199.344 152.354 +89.7607 201.392 153.919 +86.8941 200.505 153.241 +84.6569 201.025 153.638 +82.1367 200.848 153.503 +79.687 200.804 153.469 +77.0399 200.209 153.015 +74.8096 200.659 153.359 +72.3824 200.559 153.282 +70.1501 200.977 153.602 +67.4482 199.997 152.853 +65.1739 200.227 153.029 +62.7545 199.977 152.838 +60.509 200.25 153.046 +58.1723 200.197 153.006 +56.0146 200.748 153.427 +53.5788 200.275 153.065 +51.3771 200.638 153.343 +49.0379 200.441 153.192 +46.8345 200.774 153.446 +44.3497 199.838 152.732 +42.2357 200.53 153.26 +39.8908 200.109 152.939 +37.721 200.535 153.264 +35.4196 200.238 153.037 +33.1928 200.318 153.098 +30.8817 199.831 152.726 +28.7763 200.669 153.367 +26.5084 200.387 153.151 +24.2298 199.931 152.802 +21.9981 199.775 152.683 +19.7638 199.523 152.491 +17.5438 199.335 152.347 +15.4025 200.084 152.919 +13.2044 200.183 152.995 +10.9964 200.108 152.938 +8.75977 199.304 152.323 +6.58612 199.834 152.728 +4.38404 199.554 152.514 +2.19472 199.815 152.713 +1.86517e-14 200.061 152.902 +-2.19734 200.053 152.896 +-4.37706 199.236 152.271 +-6.58612 199.834 152.728 +-8.78071 199.78 152.687 +-10.9834 199.87 152.756 +-13.1154 198.835 151.965 +-15.3598 199.529 152.495 +-17.5019 198.86 151.984 +-19.7403 199.285 152.309 +-21.9197 199.062 152.138 +-24.2298 199.931 152.802 +-26.3307 199.044 152.124 +-28.5612 199.169 152.22 +-30.7598 199.043 152.124 +-33.0623 199.531 152.497 +-35.169 198.822 151.955 +-37.4253 198.964 152.063 +-39.5936 198.618 151.799 +-41.9221 199.041 152.123 +-43.9677 198.117 151.416 +-46.306 198.508 151.714 +-48.4655 198.101 151.404 +-50.7989 198.38 151.617 +-53.0383 198.253 151.52 +-55.4085 198.577 151.767 +-57.61 198.262 151.527 +-59.9721 198.473 151.688 +-62.2707 198.435 151.659 +-64.4478 197.996 151.323 +-66.9306 198.462 151.68 +-69.188 198.221 151.495 +-71.5555 198.268 151.532 +-74.0996 198.755 151.903 +-76.309 198.31 151.563 +-78.6947 198.303 151.558 +-81.1788 198.506 151.713 +-83.6732 198.689 151.853 +-85.8523 198.101 151.404 +-88.6257 198.846 151.973 +-90.7721 198.149 151.441 +-93.3653 198.406 151.637 +-95.8993 198.492 151.703 +-98.3323 198.338 151.585 +-100.956 198.532 151.733 +-103.516 198.558 151.753 +-106.044 198.492 151.702 +-108.539 198.332 151.58 +-110.754 197.644 151.054 +-113.667 198.17 151.456 +-115.84 197.375 150.849 +-118.735 197.783 151.161 +-121.297 197.595 151.017 +-124.355 198.168 151.455 +-127.027 198.078 151.386 +-129.52 197.683 151.084 +-132.062 197.338 150.821 +-138.233 202.28 154.598 +-140.789 201.801 154.231 +-143.64 201.716 154.166 +-143.15 196.996 150.56 +-143.024 192.916 147.441 +-144.262 190.759 145.793 +-147.606 191.377 146.265 +-150.55 191.424 146.301 +-1760.46 2195.56 1678.01 +-475.797 582.117 444.898 +-477.315 572.965 437.903 +-479.899 565.287 432.035 +-481.049 556.11 425.022 +-483.64 548.784 419.422 +-485.816 541.141 413.581 +-487.685 533.316 407.601 +-489.837 525.955 401.975 +-492.044 518.795 396.502 +-494.619 512.149 391.423 +-144.865 147.32 112.593 +-141.933 141.771 108.352 +-142.038 139.361 106.51 +-142.736 137.574 105.144 +-142.442 134.874 103.081 +-141.839 131.949 100.845 +-142.758 130.48 99.7231 +-147.831 132.758 101.464 +-149.216 131.669 100.631 +-514.192 445.84 340.745 +-516.682 440.224 336.453 +-517.849 433.57 331.367 +-520.299 428.078 327.169 +-522.528 422.47 322.884 +-524.815 416.977 318.686 +-526.735 411.262 314.317 +-529.074 405.938 310.249 +-530.394 399.903 305.636 +-532.864 394.802 301.737 +-534.674 389.267 297.507 +-537.591 384.588 293.931 +-539.323 379.109 289.744 +-563.768 389.377 297.591 +-567.947 385.402 294.553 +-564.268 376.188 287.512 +-565.987 370.695 283.313 +-569.881 366.657 280.227 +-571.774 361.356 276.176 +-573.593 356.057 272.126 +-576.054 351.197 268.411 +-579.25 346.806 265.055 +-579.902 340.934 260.567 +-583.22 336.666 257.306 +-585.919 332.056 253.783 +-594.049 330.488 252.584 +-590.569 322.486 246.469 +-567.145 303.94 232.294 +-571.962 300.786 229.883 +-576.502 297.457 227.339 +-383.49 194.11 148.353 +-383.827 190.559 145.64 +-381.642 185.815 142.014 +-383.154 182.917 139.799 +-379.634 177.672 135.79 +-381.831 175.153 133.865 +-381.216 171.364 130.97 +-381.946 168.213 128.561 +-379.913 163.891 125.258 +-382.581 161.623 123.525 +-385.14 159.295 121.745 +-136.413 55.224 42.2064 +-383.479 151.91 116.101 +-381.089 147.677 112.866 +-381.523 144.585 110.503 +-381.918 141.497 108.143 +-384.095 139.075 106.292 +-599.651 212.123 162.121 +-382.597 132.175 101.018 +-381.457 128.648 98.3228 +-382.024 125.725 96.0888 +-381.629 122.506 93.6283 +-381.564 119.418 91.2685 +-615.883 187.837 143.559 +-617.454 183.421 140.184 +-619.821 179.241 136.99 +-622.615 175.176 133.882 +-3097.99 847.533 647.749 +-378.476 100.615 76.8977 +-381.564 98.5033 75.2837 +-381.391 95.5429 73.0212 +-381.852 92.7558 70.891 +-378.063 88.9762 68.0024 +-381.621 86.943 66.4484 +-381.116 83.9755 64.1804 +-381.444 81.2066 62.0642 +-380.869 78.2601 59.8123 +-379.774 75.2319 57.4979 +-380.488 72.5774 55.4692 +-381.271 69.9365 53.4508 +-381.732 67.2388 51.389 +-381.478 64.4244 49.238 +-381.583 61.6819 47.142 +-379.89 58.67 44.8401 +-381.405 56.1642 42.9249 +-380.431 53.2968 40.7335 +-381.002 50.6571 38.716 +-381.445 48.0011 36.6861 +-381.463 45.2958 34.6185 +-380.263 42.4613 32.4521 +-380.417 39.792 30.4121 +-380.542 37.1238 28.3728 +-381.035 34.4929 26.3621 +-380.604 31.7833 24.2912 +-380.64 29.1204 22.256 +-380.646 26.4594 20.2222 +-381.221 23.8379 18.2187 +-380.571 21.1439 16.1598 +-379.89 18.4608 14.1092 +-379.479 15.8012 12.0765 +-380.238 13.1903 10.081 +-380.468 10.5562 8.06784 +-145.95 3.03653 2.32075 +-145.278 2.01477 1.53984 +-145.994 1.01228 0.773659 +96.6 3.55271e-15 -1.7053e-13 +96.3963 0.672964 0.504778 +96.3853 1.34588 1.00952 +96.5669 2.02287 1.51732 +96.5412 2.69693 2.02292 +96.5081 3.37077 2.52835 +96.4676 4.04436 3.0336 +96.4198 4.71765 3.53862 +96.3647 5.39057 4.04337 +96.4019 6.06935 4.55251 +96.332 6.7421 5.05713 +96.2548 7.41433 5.56136 +97.0653 8.16128 6.12163 +96.1778 8.76614 6.57532 +96.8725 9.51515 7.13714 +95.8727 10.0971 7.57367 +96.6502 10.8662 8.15055 +96.429 11.5287 8.64744 +96.1021 12.1764 9.1333 +95.9656 12.8468 9.63613 +95.7233 13.5023 10.1279 +96.4573 14.3013 10.7271 +96.2976 14.9741 11.2318 +95.2487 15.5023 11.628 +95.8585 16.2996 12.226 +95.7746 16.9855 12.7405 +95.4883 17.6355 13.228 +96.4591 18.5255 13.8957 +96.1563 19.1788 14.3857 +96.7179 20.0096 15.0088 +95.7232 20.5184 15.3905 +96.363 21.3782 16.0354 +96.1262 22.0501 16.5394 +96.649 22.9021 17.1784 +96.4911 23.5993 17.7014 +96.23 24.272 18.206 +95.8665 24.9181 18.6906 +96.4445 25.8149 19.3633 +96.2538 26.5132 19.8871 +96.5265 27.3444 20.5105 +96.1306 27.9899 20.9947 +96.8519 28.968 21.7284 +96.5322 29.643 22.2347 +97.0426 30.5797 22.9373 +96.5198 31.196 23.3995 +96.3606 31.9299 23.95 +96.1007 32.6326 24.4771 +96.5664 33.5893 25.1947 +96.379 34.3272 25.7482 +96.0009 34.9987 26.2519 +96.6124 36.0395 27.0325 +96.1253 36.6781 27.5116 +96.5305 37.6634 28.2506 +96.7424 38.5857 28.9424 +96.496 39.3322 29.5024 +96.6842 40.2629 30.2005 +96.2413 40.9363 30.7056 +96.4941 41.912 31.4374 +96.0332 42.584 31.9415 +96.3484 43.6073 32.7091 +95.6958 44.1983 33.1523 +95.9855 45.2301 33.9262 +96.1742 46.228 34.6748 +96.3483 47.232 35.4279 +96.5927 48.2843 36.2172 +95.8936 48.8709 36.6572 +96.1116 49.9305 37.452 +95.5633 50.5996 37.9538 +95.7538 51.6674 38.7548 +95.7635 52.6511 39.4926 +95.2674 53.3634 40.0269 +95.4143 54.4446 40.8379 +95.464 55.4848 41.6181 +95.4982 56.5297 42.4019 +95.5967 57.6276 43.2254 +95.6784 58.731 44.053 +95.4281 59.6429 44.7371 +95.4782 60.7551 45.5713 +95.589 61.9227 46.4471 +95.6043 63.0456 47.2894 +95.4491 64.0705 48.0581 +95.4309 65.202 48.9068 +95.4708 66.3906 49.7984 +95.3421 67.4785 50.6144 +95.2712 68.6233 51.4731 +95.1825 69.7722 52.3349 +95.5879 71.307 53.4861 +95.4593 72.4672 54.3563 +95.3125 73.6309 55.2292 +95.1476 74.7981 56.1047 +95.6008 76.4776 57.3645 +95.3938 77.6557 58.2481 +95.0987 78.779 59.0907 +94.8553 79.9621 59.9781 +94.6614 81.2064 60.9115 +94.988 82.9255 62.2009 +94.682 84.1207 63.0974 +94.7547 85.6774 64.2651 +94.3413 86.8182 65.1207 +94.4947 88.5077 66.388 +94.1684 89.7773 67.3403 +94.394 91.6036 68.7102 +94.0834 92.9427 69.7147 +94.3732 94.9107 71.1908 +93.8884 96.1338 72.1082 +93.9928 97.9914 73.5015 +93.9433 99.7297 74.8054 +93.982 101.603 76.2107 +92.8701 102.256 76.7004 +91.2284 102.314 76.7442 +89.3632 102.095 76.5797 +88.3594 102.847 77.1438 +88.1288 104.521 78.3991 +88.4203 106.867 80.159 +87.7958 108.151 81.1221 +87.8485 110.312 82.7428 +87.9136 112.548 84.4205 +88.5113 115.545 86.6683 +88.535 117.873 88.4144 +88.0072 119.52 89.6499 +87.9 121.793 91.3546 +87.7006 124.003 93.0125 +91.4351 131.957 98.9787 +93.046 137.09 102.829 +92.8615 139.712 104.796 +92.7191 142.484 106.875 +92.7503 145.621 109.227 +92.7645 148.84 111.642 +92.6717 151.998 114.011 +92.9043 155.816 116.875 +92.7224 159.069 119.315 +92.601 162.549 121.925 +92.2479 165.747 124.324 +92.1908 169.613 127.223 +92.2516 173.858 130.408 +92.3798 178.413 133.824 +90.917 180.015 135.026 +89.7562 182.28 136.725 +87.4776 182.302 136.742 +91.2991 195.344 146.524 +91.251 200.56 150.437 +89.3601 201.868 151.418 +86.8941 201.879 151.426 +84.3713 201.719 151.306 +81.8586 201.54 151.172 +79.3262 201.265 150.965 +77.2738 202.193 151.661 +74.5256 201.267 150.967 +72.3548 201.857 151.409 +69.8561 201.506 151.146 +67.5 201.522 151.158 +65.224 201.754 151.332 +62.7545 201.348 151.028 +60.5791 201.856 151.409 +58.1274 201.414 151.077 +55.8198 201.422 151.083 +53.5996 201.725 151.31 +51.2176 201.386 151.056 +49.0188 201.736 151.319 +46.6705 201.442 151.098 +44.4887 201.838 151.395 +42.1036 201.273 150.971 +39.8751 201.402 151.068 +37.5879 201.198 150.915 +35.3917 201.452 151.106 +33.1014 201.136 150.869 +30.8817 201.201 150.917 +28.6744 201.33 151.014 +26.4143 201.045 150.8 +24.2202 201.222 150.933 +21.9981 201.144 150.875 +19.6697 199.934 149.967 +17.5438 200.702 150.543 +15.3537 200.817 150.629 +13.1991 201.475 151.123 +10.9572 200.761 150.587 +8.75977 200.67 150.519 +6.58612 201.203 150.919 +4.38579 201.002 150.768 +2.19298 201.024 150.785 +1.68754e-14 200.632 150.491 +-2.18949 200.704 150.545 +-4.37706 200.602 150.468 +-6.56256 200.483 150.379 +-8.75279 200.51 150.399 +-10.9485 200.601 150.467 +-13.1677 200.996 150.764 +-15.3598 200.897 150.689 +-17.5577 200.862 150.663 +-19.6854 200.094 150.087 +-21.9197 200.427 150.336 +-24.134 200.505 150.395 +-26.4248 201.124 150.86 +-28.5499 200.455 150.358 +-30.772 200.487 150.381 +-32.9448 200.185 150.155 +-35.169 200.185 150.155 +-37.3071 199.695 149.787 +-39.6092 200.059 150.06 +-41.7735 199.695 149.788 +-44.1414 200.263 150.213 +-46.306 199.868 149.917 +-48.6372 200.166 150.141 +-50.8588 199.975 149.998 +-53.0799 199.769 149.843 +-55.2137 199.235 149.442 +-57.61 199.621 149.732 +-59.762 199.134 149.367 +-62.3191 199.951 149.979 +-64.5229 199.586 149.706 +-66.9306 199.823 149.883 +-69.1613 199.503 149.643 +-71.5279 199.55 149.679 +-73.844 199.427 149.586 +-76.309 199.669 149.768 +-78.7548 199.815 149.877 +-81.1479 199.79 149.859 +-83.3559 199.292 149.485 +-85.8198 199.383 149.554 +-88.2919 199.455 149.608 +-90.7721 199.507 149.647 +-93.4003 199.84 149.896 +-95.8276 199.703 149.794 +-98.3689 199.771 149.845 +-100.657 199.299 149.491 +-103.248 199.403 149.568 +-105.966 199.705 149.795 +-108.181 199.031 149.289 +-111.12 199.657 149.759 +-113.253 198.8 149.116 +-116.305 199.525 149.66 +-118.778 199.211 149.424 +-121.297 198.949 149.228 +-123.954 198.883 149.178 +-127.027 199.435 149.593 +-129.52 199.038 149.295 +-132.109 198.761 149.087 +-137.66 202.823 152.134 +-140.692 203.044 152.3 +-143.64 203.098 152.34 +-143.2 198.416 148.828 +-142.923 194.1 145.591 +-144.262 192.067 144.066 +-147.188 192.144 144.123 +-150.55 192.736 144.568 +-1760.46 2210.61 1658.14 +-475.797 586.107 439.628 +-477.701 577.36 433.067 +-479.452 568.631 426.52 +-481.559 560.516 420.433 +-483.926 552.873 414.7 +-486.048 545.111 408.878 +-488.156 537.49 403.162 +-490.55 530.332 397.792 +-492.405 522.735 392.094 +-494.01 515.025 386.311 +-146.22 149.717 112.3 +-142.369 143.18 107.397 +-142.541 140.814 105.622 +-142.8 138.579 103.945 +-142.506 135.86 101.906 +-142.229 133.218 99.9244 +-142.758 131.375 98.5419 +-148.493 134.268 100.712 +-148.48 131.918 98.9493 +-514.8 449.426 337.107 +-516.682 443.242 332.468 +-518.675 437.239 327.965 +-520.924 431.529 323.682 +-522.528 425.366 319.059 +-524.603 419.666 314.784 +-526.949 414.249 310.721 +-528.643 408.387 306.324 +-531.047 403.139 302.388 +-532.864 397.508 298.163 +-534.895 392.097 294.105 +-537.294 387.01 290.289 +-539.098 381.548 286.192 +-563.164 391.625 293.751 +-570 389.446 292.116 +-564.728 379.076 284.338 +-566.835 373.796 280.377 +-569.881 369.17 276.908 +-571.226 363.484 272.643 +-573.829 358.646 269.014 +-577.006 354.188 265.67 +-579.41 349.28 261.988 +-580.143 343.414 257.588 +-583.22 338.974 254.258 +-585.756 334.24 250.707 +-593.476 332.432 249.351 +-589.662 324.198 243.175 +-567.145 306.023 229.542 +-571.962 302.847 227.16 +-576.502 299.496 224.647 +-385.177 196.3 147.241 +-382.3 191.103 143.343 +-383.518 188.009 141.022 +-382.039 183.634 137.741 +-379.634 178.89 134.182 +-381.224 176.073 132.069 +-381.042 172.46 129.359 +-381.772 169.289 126.98 +-381.582 165.739 124.318 +-382.051 162.506 121.893 +-383.366 159.648 119.749 +-135.878 55.3847 41.5431 +-383.3 152.88 114.672 +-382.886 149.391 112.055 +-381.974 145.748 109.323 +-382.734 142.772 107.091 +-383.549 139.829 104.883 +-600.199 213.772 160.347 +-382.139 132.922 99.7024 +-381.273 129.468 97.1114 +-382.024 126.587 94.9506 +-381.629 123.346 92.5193 +-381.192 120.12 90.0999 +-3058.88 939.315 704.563 +-617.829 184.79 138.608 +-619.069 180.251 135.203 +-622.992 176.483 132.377 +-3097.99 853.342 640.077 +-377.528 101.051 75.7967 +-380.708 98.9561 74.2252 +-381.678 96.2698 72.2102 +-381.566 93.3211 69.9985 +-377.2 89.3821 67.0439 +-381.909 87.6054 65.7112 +-381.405 84.6151 63.4682 +-382.313 81.9496 61.4689 +-382.418 79.117 59.3442 +-382.394 76.2701 57.2088 +-381.363 73.243 54.9382 +-382.148 70.5779 52.9392 +-381.048 67.5785 50.6894 +-381.184 64.816 48.6173 +-380.995 62.009 46.5118 +-380.871 59.2248 44.4234 +-380.52 56.4179 42.318 +-381.219 53.7732 40.3343 +-381.002 51.0043 38.2574 +-380.359 48.1924 36.1483 +-381.167 45.5708 34.1818 +-381.352 42.8748 32.1596 +-381.012 40.1274 30.0988 +-379.847 37.3101 27.9856 +-380.935 34.7203 26.0431 +-381.001 32.0347 24.0286 +-380.938 29.343 22.0097 +-380.646 26.6407 19.9827 +-381.52 24.0201 18.017 +-380.571 21.2888 15.9684 +-380.788 18.6313 13.975 +-381.277 15.9849 11.99 +-379.638 13.2598 9.94593 +-379.569 10.6034 7.95344 +-147.749 3.09504 2.32153 +-147.178 2.05511 1.5415 +-146.294 1.02131 0.766067 +95.7 0 -1.7053e-13 +96.5963 0.678896 0.499721 +96.3853 1.35493 0.997334 +96.367 2.03227 1.49591 +96.5412 2.71507 1.9985 +96.5081 3.39344 2.49784 +96.5675 4.07578 3.0001 +96.4198 4.74938 3.49592 +96.4644 5.43244 3.99871 +96.4019 6.11018 4.49757 +96.332 6.78745 4.9961 +96.2548 7.4642 5.49424 +96.1703 8.14039 5.99197 +96.0784 8.816 6.48927 +96.8725 9.57915 7.05101 +96.765 10.2597 7.55192 +96.6502 10.9393 8.05219 +96.429 11.6062 8.54309 +96.1021 12.2583 9.02308 +95.9656 12.9332 9.51984 +95.7233 13.5932 10.0056 +95.4741 14.2507 10.4897 +95.316 14.9212 10.9832 +96.1306 15.751 11.594 +95.8585 16.4092 12.0785 +95.7746 17.0997 12.5868 +95.5857 17.7722 13.0817 +95.4867 18.4621 13.5895 +96.1563 19.3078 14.2121 +95.9434 19.9829 14.709 +95.8198 20.6772 15.22 +96.363 21.522 15.8419 +96.1262 22.1984 16.3398 +96.649 23.0561 16.9711 +96.3955 23.7345 17.4705 +96.1347 24.411 17.9684 +95.8665 25.0857 18.4651 +96.2549 25.9374 19.092 +96.1592 26.6654 19.6278 +96.4322 27.5014 20.2432 +96.2245 28.2057 20.7616 +95.8216 28.8526 21.2378 +96.5322 29.8424 21.9663 +96.2052 30.5197 22.4649 +96.5198 31.4058 23.1171 +96.3606 32.1446 23.661 +96.8371 33.1038 24.367 +96.5664 33.8152 24.8907 +96.1963 34.4926 25.3893 +96.0009 35.2341 25.9351 +96.6124 36.2819 26.7063 +95.9448 36.8554 27.1285 +96.5305 37.9167 27.9097 +95.937 38.5218 28.3551 +96.496 39.5968 29.1463 +95.8859 40.199 29.5896 +96.2413 41.2117 30.335 +96.4941 42.1939 31.058 +96.0332 42.8704 31.556 +96.3484 43.9006 32.3143 +95.6958 44.4955 32.7522 +95.9855 45.5343 33.5168 +96.1742 46.539 34.2563 +96.3483 47.5497 35.0003 +95.8294 48.225 35.4974 +95.8936 49.1996 36.2148 +96.2794 50.3541 37.0646 +95.5633 50.94 37.4958 +95.7538 52.0149 38.2871 +95.8459 53.0508 39.0496 +95.2674 53.7224 39.5439 +95.4143 54.8108 40.3451 +95.464 55.858 41.1159 +95.3374 56.8142 41.8197 +95.5967 58.0152 42.7038 +95.5197 59.028 43.4493 +94.8765 59.697 43.9417 +95.5565 61.2138 45.0582 +95.5112 62.2885 45.8493 +95.6043 63.4697 46.7187 +95.4491 64.5015 47.4782 +95.3549 65.5883 48.2782 +95.3953 66.7843 49.1585 +95.3421 67.9324 50.0036 +95.1969 69.031 50.8123 +95.1825 70.2415 51.7033 +95.0028 71.3472 52.5172 +94.879 72.5111 53.3739 +95.3845 74.1821 54.6039 +95.1476 75.3012 55.4276 +94.9644 76.4795 56.295 +94.7629 77.661 57.1646 +95.1682 79.3668 58.4203 +94.8553 80.5 59.2543 +94.6614 81.7526 60.1764 +94.8529 83.3649 61.3632 +95.2842 85.2253 62.7325 +94.7547 86.2537 63.4895 +94.4725 87.5237 64.4244 +94.5596 89.1642 65.6319 +94.8112 90.998 66.9817 +94.5212 92.3438 67.9723 +94.2722 93.7555 69.0115 +93.813 94.9821 69.9143 +94.4425 97.3514 71.6583 +93.9928 98.6505 72.6145 +93.9433 100.4 73.9027 +93.982 102.287 75.291 +93.4579 103.595 76.2543 +91.2865 103.068 75.866 +89.8221 103.309 76.0439 +88.3594 103.539 76.2128 +88.0729 105.157 77.4038 +88.3651 107.518 79.1418 +88.3405 109.553 80.6398 +88.2783 111.596 82.1438 +88.3375 113.852 83.8042 +88.5113 116.322 85.6223 +88.3805 118.459 87.195 +87.4489 119.561 88.0066 +87.45 121.985 89.7903 +87.6514 124.767 91.8384 +91.3866 132.775 97.7327 +93.046 138.012 101.588 +92.8615 140.652 103.531 +93.0885 144.013 106.005 +92.7503 146.6 107.909 +92.7645 149.841 110.295 +92.584 152.875 112.528 +92.4307 156.065 114.876 +92.3844 159.555 117.445 +92.601 163.642 120.454 +92.2479 166.862 122.824 +92.111 170.606 125.579 +92.3298 175.176 128.943 +92.3798 179.613 132.209 +90.9545 181.3 133.451 +89.9394 183.881 135.351 +87.4776 183.529 135.092 +91.3341 196.734 144.812 +91.251 201.909 148.621 +89.3935 203.302 149.646 +86.9267 203.313 149.654 +84.5934 203.611 149.874 +82.1367 203.585 149.855 +79.6269 203.386 149.708 +77.3031 203.63 149.888 +74.838 203.471 149.77 +72.4099 203.369 149.696 +69.9096 203.017 149.437 +67.4741 202.801 149.277 +65.199 203.033 149.449 +62.7545 202.702 149.205 +60.5791 203.214 149.581 +58.1498 202.847 149.312 +55.8198 202.776 149.259 +53.5996 203.082 149.484 +51.3971 203.451 149.756 +49.0379 203.172 149.551 +46.707 202.954 149.39 +44.4713 203.116 149.51 +42.1036 202.627 149.149 +39.9064 202.915 149.361 +37.5732 202.471 149.035 +35.3917 202.807 149.282 +33.1928 203.048 149.459 +30.9914 203.273 149.625 +28.7083 202.924 149.368 +26.5084 203.118 149.511 +24.2298 202.655 149.17 +21.9894 202.416 148.994 +19.7717 202.322 148.925 +17.5577 202.213 148.845 +15.3903 202.65 149.166 +13.1573 202.187 148.826 +10.9921 202.755 149.243 +8.76326 202.1 148.762 +6.58874 202.637 149.157 +4.38579 202.354 148.948 +2.19298 202.376 148.965 +2.04281e-14 202.062 148.734 +-2.18949 202.054 148.728 +-4.37532 201.87 148.593 +-6.56256 201.832 148.564 +-8.75279 201.858 148.584 +-10.9441 201.87 148.592 +-13.173 202.429 149.003 +-15.3537 202.168 148.811 +-17.5507 202.132 148.785 +-19.7482 202.081 148.748 +-21.9197 201.775 148.522 +-24.2011 202.415 148.993 +-26.3203 201.676 148.45 +-28.5499 201.804 148.543 +-30.7598 201.755 148.508 +-32.9448 201.531 148.343 +-35.1551 201.452 148.284 +-37.4253 201.675 148.449 +-39.6248 201.483 148.307 +-41.7901 201.118 148.039 +-43.9851 200.896 147.875 +-46.306 201.212 148.108 +-48.4655 200.8 147.805 +-50.8388 201.241 148.13 +-53.0383 200.955 147.919 +-55.2354 200.654 147.697 +-57.6325 201.043 147.983 +-59.9955 201.256 148.14 +-62.2949 201.217 148.112 +-64.5229 200.928 147.899 +-66.9047 201.089 148.018 +-69.1613 200.844 147.837 +-71.583 201.047 147.987 +-73.7872 200.613 147.667 +-76.2505 200.857 147.847 +-78.7548 201.159 148.069 +-81.117 201.057 147.994 +-83.6098 201.243 148.131 +-85.8198 200.724 147.749 +-88.2585 200.72 147.746 +-90.7721 200.849 147.841 +-93.3303 201.034 147.977 +-95.5767 200.521 147.599 +-98.3323 201.04 147.981 +-100.956 201.237 148.127 +-103.248 200.744 147.763 +-105.615 200.381 147.496 +-108.141 200.296 147.434 +-110.754 200.337 147.464 +-113.667 200.87 147.856 +-115.924 200.21 147.37 +-118.778 200.55 147.621 +-121.297 200.287 147.427 +-123.954 200.22 147.378 +-126.663 200.203 147.365 +-129.52 200.377 147.493 +-132.109 200.098 147.288 +-137.803 204.399 150.454 +-140.74 204.48 150.513 +-143.64 204.464 150.502 +-143.2 199.751 147.032 +-142.923 195.406 143.834 +-144.623 193.842 142.683 +-147.188 193.436 142.384 +-150.179 193.555 142.472 +-474.113 599.348 441.168 +-475.797 590.05 434.323 +-477.701 581.243 427.841 +-479.676 572.723 421.569 +-481.559 564.286 415.359 +-483.64 556.262 409.453 +-486.048 548.777 403.943 +-488.156 541.105 398.296 +-490.193 533.51 392.705 +-492.044 525.864 387.077 +-493.827 518.297 381.507 +-145.235 149.708 110.197 +-142.245 144.017 106.008 +-142.604 141.823 104.393 +-142.736 139.449 102.645 +-142.57 136.836 100.722 +-141.71 133.624 98.3581 +-142.627 132.137 97.2632 +-148.228 134.929 99.3184 +-148.748 133.045 97.9312 +-514.192 451.915 332.645 +-516.887 446.399 328.585 +-518.469 440.004 323.878 +-520.716 434.258 319.648 +-522.528 428.227 315.209 +-524.815 422.659 311.111 +-526.735 416.866 306.846 +-529.074 411.47 302.874 +-531.047 405.851 298.738 +-533.157 400.401 294.727 +-535.116 394.897 290.676 +-537.294 389.613 286.786 +-539.323 384.275 282.857 +-563.466 394.471 290.362 +-570 392.065 288.591 +-564.039 381.16 280.564 +-567.376 376.668 277.258 +-570.347 371.957 273.79 +-570.678 365.579 269.095 +-573.593 360.909 265.658 +-576.53 356.276 262.247 +-578.372 350.999 258.363 +-580.465 345.915 254.621 +-583.625 341.491 251.364 +-586.489 336.908 247.991 +-593.476 334.668 246.342 +-589.662 326.379 240.241 +-567.145 308.082 226.772 +-572.546 305.195 224.648 +-576.502 301.511 221.936 +-384.671 197.361 145.273 +-382.554 192.516 141.707 +-383.176 189.105 139.196 +-383.24 185.451 136.507 +-379.892 180.216 132.653 +-382.523 177.861 130.92 +-380.694 173.461 127.681 +-381.684 170.389 125.419 +-382.285 167.162 123.044 +-382.405 163.75 120.533 +-384.608 161.242 118.687 +-135.878 55.7572 41.0417 +-383.837 154.123 113.447 +-382.976 150.431 110.729 +-381.794 146.659 107.953 +-381.918 143.425 105.572 +-382.912 140.536 103.445 +-599.925 215.112 158.339 +-383.423 134.265 98.8299 +-380.905 130.213 95.847 +-381.747 127.346 93.7366 +-381.629 124.175 91.4027 +-382.122 121.223 89.2295 +-615.416 190.252 140.041 +-617.923 186.061 136.956 +-620.197 181.794 133.815 +-381.958 108.931 80.1816 +-3097.99 859.082 632.352 +-380.562 102.548 75.4837 +-381.279 99.7707 73.4391 +-382.536 97.1356 71.4995 +-381.279 93.8788 69.1022 +-378.926 90.3948 66.5377 +-381.14 88.0166 64.7872 +-380.827 85.0554 62.6074 +-381.444 82.3131 60.589 +-380.676 79.2862 58.3609 +-381.714 76.6468 56.4181 +-380.488 73.5664 54.1507 +-381.856 70.9982 52.2603 +-381.048 68.033 50.0777 +-381.478 65.3022 48.0676 +-380.701 62.3778 45.915 +-380.773 59.6078 43.876 +-380.815 56.8414 41.8397 +-381.121 54.1209 39.8373 +-381.002 51.3474 37.7957 +-380.359 48.5166 35.712 +-380.277 45.7702 33.6905 +-381.352 43.1632 31.7715 +-381.211 40.4183 29.7511 +-381.634 37.7377 27.7779 +-380.935 34.9539 25.7288 +-381.896 32.3258 23.7944 +-380.341 29.4941 21.71 +-380.347 26.7989 19.7261 +-380.922 24.1437 17.7717 +-380.87 21.4489 15.7881 +-380.489 18.7418 13.7955 +-380.977 16.0798 11.836 +-380.238 13.37 9.84138 +-381.068 10.7169 7.88852 +-150.049 3.16435 2.32921 +-145.578 2.04645 1.50635 +-145.494 1.02256 0.752685 +95.7 0 -1.7053e-13 +97.4963 0.689743 0.498174 +96.3853 1.36387 0.98507 +97.4666 2.06902 1.49437 +96.5412 2.73298 1.97393 +96.608 3.41937 2.46968 +96.4676 4.09844 2.96014 +95.6213 4.74113 3.42433 +96.4644 5.4683 3.94954 +96.4019 6.1505 4.44227 +96.332 6.83225 4.93466 +96.2548 7.51347 5.42668 +96.1703 8.19412 5.91829 +96.9726 8.95671 6.46908 +95.9792 9.55352 6.90013 +96.765 10.3274 7.45906 +96.5511 11.0002 7.94503 +96.429 11.6828 8.43803 +96.991 12.4533 8.99456 +95.9656 13.0185 9.40278 +95.7233 13.6829 9.88261 +95.4741 14.3448 10.3607 +96.1995 15.1589 10.9486 +96.0326 15.8388 11.4398 +95.9563 16.5344 11.9421 +95.7746 17.2126 12.432 +95.5857 17.8895 12.9209 +95.4867 18.5839 13.4224 +96.1563 19.4353 14.0373 +95.9434 20.1148 14.5281 +95.7232 20.7927 15.0178 +96.363 21.664 15.6471 +96.1262 22.3449 16.1389 +95.7861 23.0011 16.6128 +96.3955 23.8912 17.2557 +96.1347 24.5721 17.7475 +95.8665 25.2513 18.238 +96.2549 26.1086 18.8572 +96.1592 26.8413 19.3864 +96.5265 27.71 20.0138 +97.1642 28.6691 20.7065 +96.8519 29.3553 21.2022 +96.5322 30.0393 21.6962 +97.0426 30.9885 22.3818 +96.5198 31.6131 22.8329 +96.1759 32.2947 23.3252 +96.0087 33.0373 23.8615 +96.5664 34.0384 24.5846 +96.379 34.7862 25.1247 +96.0009 35.4667 25.6162 +96.6124 36.5213 26.3779 +96.1253 37.1685 26.8453 +95.8114 37.8827 27.3612 +95.937 38.776 28.0064 +96.3178 39.7845 28.7348 +96.0633 40.5392 29.2799 +96.153 41.4456 29.9345 +96.4941 42.4723 30.6761 +96.0332 43.1534 31.168 +95.5651 43.8311 31.6575 +95.6958 44.7892 32.3495 +95.9855 45.8348 33.1047 +96.0885 46.8044 33.8049 +96.3483 47.8635 34.5699 +95.8294 48.5433 35.0609 +95.8936 49.5243 35.7695 +96.0278 50.554 36.5132 +95.5633 51.2761 37.0347 +95.6709 52.3129 37.7836 +95.8459 53.4009 38.5694 +96.0865 54.5419 39.3935 +95.9842 55.5021 40.087 +95.3831 56.179 40.5759 +95.5786 57.3338 41.4099 +95.4369 58.3005 42.1081 +95.5197 59.4176 42.915 +95.5069 60.4903 43.6898 +95.5565 61.6178 44.5041 +94.8895 62.2915 44.9907 +95.0641 63.5276 45.8835 +95.4491 64.9272 46.8943 +95.507 66.1265 47.7605 +95.4708 67.2783 48.5924 +95.3421 68.3808 49.3887 +95.1969 69.4866 50.1874 +95.1088 70.6503 51.0279 +95.0028 71.8181 51.8714 +95.4593 73.4361 53.04 +95.2406 74.5591 53.8511 +95.0763 75.7414 54.705 +94.9644 76.9843 55.6027 +95.3938 78.694 56.8375 +95.1682 79.8907 57.7019 +94.8553 81.0313 58.5257 +94.5932 82.233 59.3937 +94.988 84.0343 60.6947 +94.682 85.2454 61.5694 +94.7547 86.823 62.7088 +94.4725 88.1014 63.6322 +94.5596 89.7527 64.8249 +94.1684 90.9776 65.7096 +94.394 92.8284 67.0463 +94.0205 94.123 67.9813 +93.813 95.609 69.0546 +93.9499 97.4824 70.4077 +93.9319 99.2367 71.6747 +93.9433 101.063 72.9939 +94.3984 103.418 74.6948 +93.5166 104.345 75.3641 +91.1123 103.55 74.7903 +90.2809 104.523 75.4929 +88.3027 104.155 75.227 +88.1847 105.985 76.5491 +88.3651 108.228 78.1686 +88.1771 110.073 79.5013 +88.2246 112.265 81.0845 +88.7085 115.084 83.1209 +88.1978 116.676 84.2703 +88.8441 119.866 86.5742 +87.9564 121.048 87.4285 +87.8 123.281 89.041 +87.7006 125.661 90.7601 +92.0169 134.573 97.1966 +93.046 138.923 100.338 +92.8615 141.58 102.258 +92.7191 144.389 104.287 +92.7503 147.568 106.582 +92.7645 150.83 108.938 +92.6717 154.03 111.25 +92.5168 157.241 113.569 +92.3421 160.534 115.948 +92.1863 163.984 118.44 +92.5733 168.556 121.741 +92.111 171.732 124.035 +92.3688 176.406 127.411 +92.3032 180.648 130.475 +90.917 182.422 131.756 +89.7562 184.717 133.414 +87.4418 184.664 133.376 +91.6493 198.716 143.525 +91.251 203.242 146.793 +89.3601 204.567 147.751 +86.8941 204.578 147.759 +84.3078 204.263 147.531 +81.8277 204.158 147.455 +79.4164 204.188 147.477 +77.0107 204.199 147.485 +74.5256 203.958 147.311 +72.1343 203.932 147.292 +69.8828 204.279 147.542 +67.4741 204.139 147.442 +65.2991 204.687 147.837 +62.561 203.41 146.915 +60.3456 203.767 147.173 +57.9924 203.633 147.076 +55.8198 204.115 147.424 +53.4125 203.709 147.131 +51.1977 204 147.341 +48.8662 203.797 147.195 +46.6887 204.214 147.496 +44.2977 203.658 147.094 +42.0706 203.804 147.2 +39.7656 203.534 147.004 +37.5879 203.888 147.26 +35.2525 203.343 146.867 +33.1798 204.308 147.563 +30.9061 204.052 147.379 +28.5725 203.297 146.833 +26.4039 203.652 147.09 +24.2202 203.912 147.278 +21.911 203.025 146.637 +19.7168 203.092 146.685 +17.5577 203.547 147.014 +15.3598 203.583 147.04 +13.1468 203.36 146.879 +10.9964 204.174 147.467 +8.73534 202.786 146.464 +6.56256 203.164 146.737 +4.37008 202.96 146.59 +2.18687 203.144 146.723 +1.68754e-14 203.315 146.846 +-2.19036 203.469 146.957 +-4.37881 203.365 146.882 +-6.5678 203.326 146.854 +-8.72487 202.543 146.289 +-10.9441 203.202 146.765 +-13.1206 202.955 146.586 +-15.3049 202.854 146.514 +-17.4949 202.819 146.488 +-19.7482 203.415 146.919 +-21.8587 202.541 146.288 +-24.2202 203.912 147.278 +-26.3307 203.088 146.682 +-28.4593 202.491 146.251 +-30.6623 202.443 146.217 +-32.984 203.102 146.693 +-35.0577 202.219 146.055 +-37.3071 202.365 146.16 +-39.4684 202.013 145.906 +-41.7901 202.446 146.218 +-43.9504 202.062 145.942 +-46.306 202.54 146.287 +-48.5227 202.365 146.16 +-50.8189 202.49 146.251 +-52.8927 201.727 145.699 +-55.2137 201.898 145.823 +-57.4525 201.737 145.707 +-59.9955 202.584 146.319 +-62.1255 201.995 145.893 +-64.4979 202.176 146.024 +-66.6718 201.711 145.688 +-69.1346 202.091 145.963 +-71.3349 201.673 145.661 +-73.844 202.093 145.964 +-76.0166 201.563 145.581 +-78.4241 201.636 145.634 +-80.8697 201.767 145.728 +-83.3877 202.033 145.92 +-85.6244 201.589 145.6 +-88.2919 202.122 145.985 +-90.4301 201.414 145.473 +-93.3653 202.437 146.212 +-95.5051 201.693 145.675 +-98.3689 202.442 146.216 +-100.956 202.566 146.305 +-103.21 201.993 145.892 +-105.654 201.778 145.737 +-108.22 201.766 145.728 +-110.795 201.734 145.704 +-113.253 201.458 145.505 +-115.924 201.531 145.558 +-118.735 201.801 145.753 +-120.947 201.026 145.193 +-123.909 201.469 145.513 +-126.527 201.307 145.396 +-129.474 201.627 145.627 +-131.828 200.99 145.167 +-137.66 205.535 148.45 +-140.352 205.262 148.253 +-143.246 205.249 148.243 +-143.2 201.069 145.224 +-142.923 196.696 142.065 +-144.159 194.495 140.476 +-147.031 194.505 140.483 +-149.914 194.489 140.472 +-1760.46 2240.17 1617.98 +-476.287 594.555 429.424 +-477.922 585.35 422.775 +-480.235 577.174 416.87 +-481.559 568.01 410.251 +-484.156 560.531 404.849 +-486.339 552.729 399.214 +-488.508 545.07 393.682 +-490.193 537.031 387.876 +-492.766 530.112 382.879 +-494.436 522.361 377.281 +-142.218 147.565 106.581 +-141.933 144.651 104.476 +-142.478 142.633 103.018 +-142.863 140.494 101.473 +-142.442 137.614 99.3934 +-142.099 134.876 97.4156 +-143.283 133.621 96.5092 +-147.698 135.334 97.7464 +-148.48 133.682 96.5531 +-514.8 455.435 328.943 +-516.682 449.168 324.416 +-518.675 443.085 320.023 +-521.341 437.649 316.097 +-522.528 431.053 311.333 +-525.239 425.793 307.533 +-526.521 419.447 302.95 +-529.29 414.355 299.272 +-531.047 408.529 295.065 +-533.376 403.209 291.222 +-535.853 398.052 287.497 +-537.963 392.673 283.612 +-540.072 387.348 279.766 +-568.749 400.797 289.48 +-570 394.653 285.042 +-565.417 384.613 277.791 +-567.453 379.206 273.886 +-570.114 374.259 270.312 +-571.226 368.344 266.04 +-574.696 363.99 262.896 +-577.085 358.973 259.272 +-579.091 353.755 255.503 +-580.385 348.15 251.455 +-584.838 344.459 248.789 +-584.942 338.238 244.296 +-593.639 336.97 243.38 +-588.591 327.936 236.855 +-569.466 311.384 224.901 +-573.297 307.612 222.176 +-577.341 303.942 219.526 +-2763.37 1427.14 1030.77 +-382.554 193.787 139.965 +-382.921 190.226 137.393 +-383.411 186.758 134.888 +-380.409 181.652 131.2 +-381.051 178.346 128.812 +-380.694 174.606 126.111 +-381.684 171.513 123.877 +-382.11 168.188 121.475 +-381.257 164.336 118.694 +-384.874 162.419 117.309 +-135.7 56.0516 40.4839 +-383.837 155.14 112.052 +-381.358 150.784 108.906 +-382.335 147.837 106.777 +-382.281 144.509 104.373 +-383.003 141.497 102.197 +-600.199 216.631 156.464 +-382.047 134.667 97.2645 +-381.733 131.357 94.8739 +-381.747 128.186 92.5839 +-382.185 125.177 90.4105 +-381.471 121.815 87.9824 +-616.163 191.741 138.487 +-618.204 187.375 135.333 +-621.043 183.243 132.349 +-3088.56 886.64 640.385 +-3097.99 864.752 624.576 +-379.519 102.942 74.3511 +-381.183 100.404 72.5179 +-380.915 97.3624 70.321 +-381.566 94.5689 68.3034 +-377.775 90.715 65.5199 +-382.198 88.8431 64.1679 +-381.405 85.7464 61.9313 +-382.024 82.982 59.9347 +-381.741 80.0327 57.8045 +-381.132 77.0349 55.6393 +-380.78 74.1087 53.5258 +-381.271 71.3574 51.5386 +-380.755 68.4293 49.4238 +-380.891 65.632 47.4034 +-380.995 62.8381 45.3855 +-381.362 60.094 43.4035 +-381.405 57.3052 41.3893 +-380.825 54.436 39.3169 +-381.002 51.6863 37.331 +-380.951 48.9129 35.3279 +-380.87 46.1442 33.3281 +-381.649 43.4819 31.4052 +-381.012 40.6639 29.3699 +-381.435 37.967 27.4221 +-381.234 35.2121 25.4323 +-381.3 32.4884 23.4651 +-380.341 29.6887 21.443 +-379.849 26.9404 19.458 +-381.221 24.3222 17.567 +-380.571 21.5735 15.5817 +-380.489 18.8655 13.6258 +-380.977 16.1859 11.6904 +-381.137 13.4901 9.74337 +-380.468 10.7706 7.77922 +-145.95 3.09822 2.23772 +-147.478 2.08684 1.50724 +-145.494 1.02931 0.743429 +95.8 -1.77636e-15 -1.7053e-13 +96.5963 0.687801 0.487391 +96.4853 1.37413 0.973737 +96.5669 2.06319 1.46202 +96.4412 2.74783 1.94717 +96.608 3.44152 2.43873 +96.5675 4.12925 2.92607 +96.4198 4.81168 3.40966 +96.4644 5.5037 3.90004 +96.3022 6.18393 4.38207 +96.332 6.87649 4.87283 +96.2548 7.56212 5.35868 +96.8664 8.3069 5.88645 +96.1778 8.94086 6.33569 +96.674 9.68498 6.86298 +96.765 10.3943 7.36559 +95.7589 10.9806 7.78106 +95.6378 11.662 8.26395 +96.2008 12.4318 8.80946 +95.9656 13.1028 9.28495 +96.6096 13.899 9.84913 +96.359 14.5715 10.3257 +95.2178 15.1013 10.7011 +96.1306 15.9576 11.3079 +95.7607 16.6076 11.7685 +95.7746 17.324 12.2762 +95.3908 17.9686 12.7329 +96.3619 18.8757 13.3757 +96.2533 19.5809 13.8754 +96.0402 20.2654 14.3605 +95.7232 20.9274 14.8296 +96.4594 21.8262 15.4665 +96.1262 22.4896 15.9366 +96.649 23.3585 16.5524 +95.6305 23.855 16.9042 +96.1347 24.7312 17.5251 +95.7714 25.3896 17.9916 +96.2549 26.2776 18.6209 +95.9701 26.962 19.1059 +96.5265 27.8894 19.763 +96.2245 28.5757 20.2493 +96.8519 29.5454 20.9365 +96.1588 30.1169 21.3415 +97.0426 31.1892 22.1013 +96.7053 31.879 22.5901 +96.3606 32.5663 23.0772 +96.8371 33.538 23.7658 +96.5664 34.2588 24.2765 +96.1963 34.9451 24.7628 +96.7289 35.967 25.487 +96.6124 36.7578 26.0474 +96.1253 37.4092 26.5089 +96.4406 38.3783 27.1957 +96.116 39.0999 27.707 +96.3178 40.0421 28.3747 +95.8859 40.7263 28.8595 +96.2413 41.7523 29.5865 +96.582 42.7863 30.3193 +96.6455 43.7097 30.9736 +96.3484 44.4765 31.517 +95.6958 45.0792 31.9441 +95.9855 46.1316 32.6898 +96.1742 47.1494 33.4111 +96.3483 48.1734 34.1367 +96.5927 49.2468 34.8973 +95.8936 49.845 35.3212 +96.1116 50.9257 36.0871 +95.5633 51.6082 36.5707 +95.6709 52.6516 37.3101 +95.8459 53.7467 38.086 +96.0865 54.8951 38.8998 +95.9842 55.8614 39.5846 +95.3022 56.4948 40.0334 +95.4982 57.6565 40.8566 +95.5168 58.7271 41.6153 +95.6784 59.9016 42.4476 +95.5069 60.882 43.1423 +95.5565 62.0168 43.9464 +95.589 63.1569 44.7544 +95.5271 64.2503 45.5292 +95.4491 65.3476 46.3067 +95.507 66.5546 47.162 +95.3953 67.6604 47.9456 +95.2672 68.7695 48.7316 +95.1969 69.9365 49.5585 +95.1825 71.1629 50.4276 +95.6611 72.7839 51.5762 +95.3867 73.8554 52.3355 +95.3125 75.0985 53.2164 +95.1476 76.289 54.06 +94.823 77.3674 54.8242 +95.1835 79.0289 56.0016 +94.543 79.8797 56.6044 +94.9241 81.615 57.8341 +94.6614 82.825 58.6916 +94.988 84.5784 59.9341 +94.6151 85.737 60.7551 +94.7547 87.3852 61.923 +94.4725 88.6719 62.8348 +94.5596 90.3339 64.0125 +94.1684 91.5667 64.8861 +94.394 93.4295 66.2061 +94.1463 94.8589 67.2191 +93.8752 96.2917 68.2343 +93.9499 98.1136 69.5254 +93.9928 99.9445 70.8228 +93.823 101.587 71.9867 +93.7441 103.366 73.2477 +93.8105 105.35 74.6532 +92.0414 105.283 74.6058 +90.3956 105.333 74.6411 +88.3027 104.829 74.2843 +87.9051 106.334 75.3505 +88.0339 108.521 76.9 +88.1226 110.717 78.4565 +88.0097 112.717 79.8736 +88.4965 115.553 81.8833 +88.3545 117.639 83.3617 +88.5865 120.293 85.2419 +87.9056 121.762 86.2832 +87.8 124.079 87.9252 +88.0453 126.972 89.9754 +92.7926 136.586 96.7875 +92.7119 139.321 98.7255 +92.9084 142.569 101.027 +93.1347 145.975 103.441 +92.7503 148.523 105.247 +92.7645 151.806 107.573 +92.7155 155.101 109.908 +92.8182 158.774 112.511 +92.6379 162.092 114.862 +92.5595 165.715 117.429 +92.1665 168.901 119.687 +92.111 172.844 122.481 +92.3688 177.549 125.815 +92.0736 181.365 128.519 +90.3551 182.468 129.301 +89.4996 185.382 131.366 +87.1909 185.327 131.326 +91.3341 199.315 141.239 +91.251 204.558 144.954 +89.1932 205.507 145.627 +86.6011 205.209 145.415 +84.1809 205.276 145.463 +81.6114 204.936 145.222 +79.0856 204.654 145.022 +76.8353 205.053 145.305 +74.5824 205.436 145.576 +72.024 204.94 145.225 +69.669 204.972 145.248 +67.2671 204.83 145.147 +65.0738 205.302 145.481 +62.44 204.332 144.794 +60.3456 205.086 145.329 +57.7899 204.236 144.726 +55.625 204.719 145.068 +53.3086 204.629 145.004 +51.0382 204.681 145.041 +48.7326 204.556 144.953 +46.5794 205.055 145.307 +44.1587 204.335 144.796 +41.9551 204.561 144.956 +39.6561 204.288 144.763 +37.4845 204.643 145.014 +35.1969 204.337 144.797 +33.0492 204.822 145.141 +30.6867 203.916 144.499 +28.4706 203.883 144.476 +26.3203 204.322 144.787 +24.1148 204.339 144.799 +21.8674 203.934 144.512 +19.6932 204.163 144.674 +17.4391 203.482 144.191 +15.3049 204.168 144.678 +13.0683 203.455 144.172 +10.9136 203.947 144.521 +8.70393 203.365 144.109 +6.53638 203.663 144.32 +4.35438 203.539 144.232 +2.17902 203.725 144.364 +1.95399e-14 203.244 144.023 +-2.18338 204.133 144.653 +-4.34739 203.213 144.001 +-6.54424 203.908 144.494 +-8.73185 204.018 144.571 +-10.9048 203.784 144.406 +-13.084 203.699 144.345 +-15.2499 203.435 144.158 +-17.4182 203.238 144.018 +-19.6854 204.082 144.617 +-21.7802 203.121 143.936 +-24.0477 203.77 144.396 +-26.1112 202.699 143.637 +-28.3687 203.154 143.959 +-30.577 203.187 143.983 +-32.8273 203.446 144.166 +-34.9185 202.72 143.652 +-37.248 203.352 144.099 +-39.2025 201.951 143.107 +-41.6415 203.032 143.873 +-43.8462 202.888 143.771 +-45.9962 202.489 143.488 +-48.1793 202.233 143.307 +-50.6993 203.322 144.078 +-52.7264 202.394 143.421 +-55.0189 202.489 143.488 +-57.1826 202.09 143.205 +-59.5519 202.389 143.417 +-61.8352 202.353 143.392 +-64.2976 202.852 143.746 +-66.2836 201.836 143.025 +-68.8941 202.693 143.632 +-71.1144 202.351 143.391 +-73.6452 202.854 143.747 +-75.7827 202.244 143.314 +-78.2136 202.397 143.423 +-80.6843 202.608 143.573 +-83.4194 203.419 144.147 +-85.2663 202.046 143.174 +-88.0249 202.816 143.72 +-90.1907 202.181 143.27 +-93.0151 202.983 143.838 +-95.2184 202.389 143.417 +-98.0024 202.994 143.846 +-100.132 202.213 143.292 +-102.942 202.774 143.69 +-105.029 201.883 143.059 +-107.822 202.325 143.371 +-109.941 201.474 142.769 +-112.921 202.169 143.261 +-115.502 202.097 143.21 +-118.003 201.856 143.04 +-120.596 201.741 142.958 +-123.463 202.043 143.172 +-125.619 201.157 142.544 +-129.059 202.281 143.341 +-131.217 201.354 142.684 +-137.374 206.435 146.284 +-140.061 206.163 146.092 +-143.049 206.294 146.184 +-143.25 202.441 143.454 +-142.923 197.969 140.285 +-143.129 194.356 137.725 +-146.091 194.512 137.835 +-149.755 195.54 138.564 +-1760.46 2254.67 1597.71 +-477.267 599.637 424.916 +-478.198 589.48 417.718 +-480.906 581.724 412.222 +-482.521 572.831 405.92 +-484.615 564.695 400.155 +-486.861 556.905 394.635 +-489.801 550.051 389.778 +-490.907 541.296 383.574 +-493.729 534.587 378.82 +-495.593 526.973 373.425 +-142.095 148.393 105.154 +-142.556 146.226 103.619 +-142.982 144.064 102.087 +-142.8 141.341 100.157 +-142.699 138.756 98.3254 +-142.359 135.997 96.3706 +-145.579 136.641 96.8268 +-148.891 137.31 97.3009 +-513.625 465.428 329.812 +-515.408 458.926 325.205 +-517.91 453.15 321.112 +-519.226 446.427 316.348 +-522.175 441.187 312.635 +-524 435.066 308.297 +-526.512 429.588 304.415 +-527.805 423.192 299.883 +-530.369 417.888 296.124 +-531.699 411.681 291.726 +-534.985 407.045 288.441 +-536.148 400.849 284.05 +-538.408 395.543 280.29 +-547.711 395.371 280.168 +-563.919 399.967 283.425 +-566.655 394.877 279.818 +-570.627 390.669 276.837 +-568.764 382.544 271.079 +-570.891 377.196 267.289 +-572.791 371.745 263.426 +-576.036 367.201 260.207 +-577.482 361.545 256.199 +-579.809 356.487 252.615 +-582.314 351.569 249.129 +-584.191 346.306 245.4 +-586.57 341.375 241.906 +-592.738 338.637 239.965 +-588.096 329.782 233.69 +-573.943 315.864 223.828 +-573.63 309.784 219.519 +-578.683 306.621 217.278 +-579.747 301.35 213.543 +-382.639 195.085 138.241 +-381.727 190.861 135.248 +-382.982 187.757 133.049 +-381.443 183.325 129.908 +-378.28 178.196 126.273 +-379.649 175.254 124.189 +-381.422 172.505 122.24 +-381.319 168.926 119.705 +-381.787 165.63 117.369 +-382.834 162.604 115.225 +-135.7 56.4146 39.9766 +-382.853 155.744 110.364 +-382.167 152.082 107.769 +-382.335 148.794 105.439 +-381.465 145.135 102.846 +-381.547 141.872 100.533 +-600.017 217.967 154.456 +-383.515 136.059 96.4145 +-382.654 132.526 93.911 +-382.024 129.11 91.4902 +-382.185 125.988 89.2776 +-381.936 122.753 86.9857 +-616.163 192.982 136.751 +-618.204 188.588 133.637 +-621.513 184.569 130.79 +-381.958 110.36 78.2032 +-626.217 175.931 124.668 +-380.942 103.997 73.6946 +-381.944 101.256 71.7519 +-381.773 98.214 69.5965 +-380.801 94.9903 67.3122 +-377.391 91.2094 64.6329 +-381.429 89.2389 63.2366 +-382.272 86.4975 61.2939 +-381.444 83.3929 59.094 +-380.288 80.2445 56.863 +-381.423 77.593 54.984 +-382.53 74.9314 53.098 +-381.563 71.8745 50.9318 +-381.244 68.9608 48.8671 +-380.988 66.074 46.8214 +-381.583 63.3426 44.8859 +-381.068 60.4364 42.8265 +-381.798 57.7358 40.9128 +-381.121 54.8309 38.8543 +-381.002 52.0209 36.8631 +-381.248 49.2679 34.9123 +-381.562 46.5274 32.9703 +-381.649 43.7634 31.0117 +-380.715 40.8953 28.9793 +-380.84 38.1532 27.0362 +-381.234 35.4401 25.1136 +-381.598 32.7243 23.1892 +-381.635 29.9826 21.2463 +-380.945 27.1931 19.2696 +-380.922 24.4604 17.3332 +-379.673 21.6619 15.3501 +-381.088 19.0176 13.4762 +-380.977 16.2907 11.5439 +-380.238 13.5454 9.59855 +-379.868 10.8233 7.66965 +-150.548 3.21654 2.27931 +-146.478 2.08611 1.47826 +-146.294 1.04167 0.738149 +96.5 -3.55271e-15 -1.7053e-13 +96.4963 0.691454 0.480668 +96.4853 1.38286 0.961301 +96.4669 2.07416 1.44186 +96.4412 2.76529 1.92231 +96.608 3.46338 2.40758 +96.5675 4.15548 2.8887 +96.5196 4.84725 3.36959 +96.4644 5.53866 3.85023 +96.4019 6.22965 4.33057 +96.332 6.92017 4.81059 +96.2548 7.61015 5.29024 +96.1703 8.29956 5.76948 +96.9726 9.07197 6.30643 +95.9792 9.67646 6.72664 +96.765 10.4603 7.27152 +96.6502 11.1532 7.75321 +96.3301 11.821 8.21743 +96.1021 12.498 8.68804 +95.9656 13.1861 9.16637 +96.6096 13.9873 9.72334 +95.3757 14.5144 10.0897 +96.1013 15.3382 10.6625 +96.1306 16.059 11.1635 +95.7607 16.7131 11.6182 +95.7746 17.4341 12.1194 +95.5857 18.1197 12.596 +96.4591 19.0148 13.2182 +96.1563 19.6854 13.6844 +96.0402 20.3941 14.1771 +96.5926 21.2515 14.7731 +96.363 21.9428 15.2537 +96.1262 22.6325 15.7331 +95.6902 23.2737 16.1789 +96.2999 24.1746 16.8051 +95.9439 24.839 17.267 +96.5322 25.7539 17.9029 +96.3497 26.4707 18.4012 +95.9701 27.1333 18.8619 +96.5265 28.0666 19.5106 +96.1306 28.7291 19.9712 +96.8519 29.7331 20.6691 +96.1588 30.3082 21.0689 +96.8565 31.3271 21.7772 +96.7053 32.0815 22.3016 +96.453 32.8046 22.8043 +96.0087 33.4624 23.2616 +96.5664 34.4764 23.9665 +96.1963 35.1671 24.4466 +96.7289 36.1955 25.1615 +96.4311 36.9219 25.6665 +96.2156 37.6822 26.195 +96.4406 38.6221 26.8483 +96.8319 39.6414 27.5569 +96.3178 40.2965 28.0123 +95.7972 40.9472 28.4646 +96.2413 42.0175 29.2087 +96.4941 43.0189 29.9048 +96.1207 43.7485 30.412 +96.3484 44.759 31.1145 +95.869 45.4477 31.5932 +96.5886 46.7164 32.4751 +96.0885 47.4067 32.955 +95.581 48.0933 33.4323 +96.5927 49.5596 34.4516 +95.8936 50.1616 34.8701 +96.1116 51.2492 35.6262 +96.2304 52.2985 36.3556 +95.7538 53.032 36.8655 +95.6811 53.9951 37.535 +95.2674 54.7728 38.0756 +96.0656 56.2639 39.1122 +95.3022 56.8536 39.5221 +95.4178 57.9739 40.3009 +94.798 58.6553 40.7746 +95.5197 60.1822 41.836 +95.4281 61.2182 42.5561 +95.5565 62.4107 43.3851 +95.5112 63.5065 44.1469 +95.5271 64.6585 44.9477 +94.9129 65.3933 45.4585 +95.4309 66.924 46.5226 +95.3953 68.0902 47.3332 +95.2672 69.2064 48.1092 +95.1969 70.3808 48.9256 +95.1088 71.5595 49.7449 +95.0028 72.7422 50.5672 +94.879 73.9289 51.3921 +95.3845 75.6326 52.5764 +95.1476 76.7736 53.3696 +95.6008 78.4975 54.5679 +95.3938 79.7066 55.4085 +95.1682 80.9187 56.2511 +94.9241 82.1335 57.0955 +94.6614 83.3511 57.942 +94.9204 85.0549 59.1264 +94.6151 86.2816 59.9791 +94.8872 88.0626 61.2172 +94.5381 89.2975 62.0756 +94.6895 91.0325 63.2817 +94.2327 92.2108 64.1008 +94.2032 93.8333 65.2287 +94.2722 95.5888 66.449 +93.7507 96.7752 67.2738 +93.9499 98.7368 68.6374 +93.9928 100.579 69.9183 +93.7628 102.167 71.0216 +93.9225 104.221 72.4497 +94.1632 106.418 73.9772 +92.9125 106.954 74.3499 +91.1987 106.944 74.3425 +88.8125 106.105 73.7591 +87.961 107.078 74.4355 +87.9236 109.073 75.8225 +88.286 111.626 77.5977 +88.4932 114.056 79.2867 +88.5495 116.357 80.886 +88.5113 118.597 82.4431 +88.329 120.704 83.9083 +87.4996 121.97 84.7879 +87.6 124.583 86.6048 +87.9961 127.708 88.7766 +92.7926 137.453 95.5513 +93.0937 140.783 97.8659 +92.9084 143.474 99.7369 +93.0423 146.757 102.019 +92.7503 149.467 103.903 +92.8091 152.844 106.25 +92.7593 156.16 108.556 +92.4738 159.19 110.662 +92.3421 162.6 113.032 +92.4766 166.618 115.825 +92.5326 170.65 118.628 +92.43 174.545 121.336 +92.3688 178.676 124.208 +91.8058 181.987 126.509 +89.7183 182.333 126.75 +89.0598 185.643 129.05 +87.2268 186.58 129.702 +91.3691 200.658 139.488 +90.909 205.085 142.566 +88.5923 205.419 142.798 +85.8198 204.649 142.263 +83.5463 205.023 142.523 +80.9934 204.676 142.282 +78.7548 205.092 142.571 +76.309 204.942 142.467 +74.0428 205.245 142.677 +71.583 204.979 142.492 +69.3216 205.246 142.678 +66.8271 204.783 142.356 +64.6231 205.175 142.628 +62.1255 204.594 142.225 +60.0421 205.351 142.751 +57.3625 204.013 141.821 +55.4518 205.378 142.77 +52.8512 204.162 141.924 +50.8986 205.418 142.797 +48.3892 204.405 142.093 +46.3789 205.47 142.833 +43.8809 204.339 142.047 +41.8231 205.213 142.655 +39.4058 204.288 142.012 +37.3514 205.212 142.654 +34.9185 204.008 141.817 +32.8534 204.902 142.439 +30.577 204.478 142.144 +28.4027 204.689 142.29 +26.153 204.313 142.029 +23.9806 204.492 142.154 +21.7628 204.248 141.984 +19.5599 204.068 141.859 +17.3624 203.873 141.724 +15.2438 204.645 142.26 +12.9741 203.271 141.305 +10.8438 203.93 141.763 +8.6481 203.344 141.355 +6.51021 204.137 141.907 +4.32296 203.354 141.363 +2.17203 204.364 142.064 +2.04281e-14 203.714 141.613 +-2.1764 204.774 142.35 +-4.33518 203.929 141.762 +-6.52068 204.465 142.135 +-8.66555 203.754 141.641 +-10.8656 204.341 142.048 +-12.9898 203.517 141.476 +-15.195 203.99 141.805 +-17.3136 203.299 141.325 +-19.5285 203.741 141.632 +-21.6931 203.593 141.529 +-23.9614 204.329 142.04 +-26.038 203.414 141.405 +-28.3121 204.036 141.837 +-30.3333 202.848 141.011 +-32.6185 203.436 141.42 +-34.7933 203.276 141.309 +-37.0558 203.588 141.525 +-39.0617 202.504 140.772 +-41.5095 203.674 141.585 +-43.5162 202.641 140.867 +-45.814 202.967 141.093 +-47.874 202.228 140.58 +-50.3603 203.245 141.287 +-52.3522 202.234 140.584 +-54.9107 203.374 141.377 +-57.0476 202.893 141.042 +-59.4352 203.275 141.308 +-61.5691 202.762 140.951 +-63.9471 203.028 141.136 +-66.1024 202.562 140.812 +-68.7604 203.584 141.523 +-70.8112 202.768 140.955 +-73.3612 203.355 141.363 +-75.3734 202.429 140.72 +-77.973 203.056 141.156 +-80.0972 202.412 140.708 +-82.4992 202.453 140.736 +-84.9733 202.63 140.859 +-87.6911 203.33 141.346 +-89.8829 202.771 140.957 +-92.2796 202.657 140.878 +-94.7525 202.679 140.893 +-97.2694 202.756 140.947 +-99.6079 202.431 140.721 +-102.253 202.697 140.906 +-104.325 201.805 140.286 +-107.503 203.007 141.121 +-109.575 202.079 140.476 +-112.548 202.78 140.964 +-114.614 201.818 140.295 +-117.573 202.397 140.697 +-120.158 202.284 140.619 +-122.704 202.078 140.475 +-124.802 201.118 139.808 +-128.597 202.838 141.004 +-130.466 201.473 140.055 +-136.324 206.159 143.313 +-139.237 206.252 143.377 +-142.36 206.604 143.622 +-143.1 203.514 141.474 +-142.974 199.297 138.543 +-142.614 194.887 135.477 +-144.366 193.437 134.469 +-148.642 195.32 135.778 +-155.548 200.481 139.365 +-478.574 605.099 420.638 +-479.523 594.868 413.526 +-482.416 587.257 408.235 +-483.371 577.484 401.441 +-486.622 570.637 396.681 +-488.255 562.047 390.71 +-490.918 554.807 385.677 +-492.394 546.385 379.822 +-495.053 539.426 374.985 +-145.433 155.624 108.183 +-142.526 149.788 104.126 +-142.058 146.64 101.938 +-143.296 145.298 101.005 +-142.227 141.668 98.4812 +-142.12 139.071 96.6758 +-142.489 136.986 95.2265 +-148.86 140.608 97.7443 +-149.62 138.859 96.5285 +-515.164 469.788 326.576 +-516.218 462.568 321.557 +-519.683 457.59 318.096 +-521.153 450.931 313.467 +-523.425 445.053 309.381 +-524.981 438.65 304.93 +-527.148 432.839 300.891 +-528.447 426.399 296.413 +-531.88 421.74 293.175 +-533.078 415.37 288.746 +-535.863 410.302 285.224 +-537.18 404.172 280.963 +-545.171 403.055 280.186 +-564.638 410.178 285.137 +-565.957 403.962 280.816 +-568.86 398.931 277.319 +-571.699 393.89 273.815 +-569.073 385.183 267.762 +-572.523 380.677 264.629 +-574.513 375.231 260.844 +-577.533 370.493 257.551 +-578.513 364.492 253.379 +-582.605 360.481 250.59 +-583.198 354.339 246.321 +-585.405 349.23 242.769 +-589.501 345.26 240.01 +-589.134 338.715 235.46 +-580.102 327.365 227.57 +-574.772 318.329 221.288 +-576.632 313.383 217.85 +-579.857 309.195 214.938 +-581.603 304.234 211.49 +-382.554 196.281 136.446 +-381.471 191.944 133.431 +-383.24 189.077 131.438 +-382.563 185.032 128.626 +-378.626 179.492 124.775 +-380.345 176.691 122.828 +-379.672 172.805 120.126 +-382.549 170.547 118.557 +-382.051 166.798 115.95 +-383.011 163.713 113.806 +-136.235 56.9965 39.6214 +-135.583 55.5053 38.5848 +-382.077 153.013 106.368 +-380.71 149.103 103.65 +-381.646 146.126 101.581 +-381.365 142.705 99.2021 +-598.007 218.617 151.973 +-605.168 216.059 150.195 +-380.813 132.726 92.2653 +-381.1 129.616 90.1031 +-381.907 126.695 88.0728 +-380.634 123.112 85.5819 +-618.684 195.002 135.557 +-619.515 190.188 132.21 +-622.358 185.995 129.295 +-381.487 110.924 77.1091 +-383.408 108.4 75.3545 +-381.7 104.866 72.8984 +-382.42 102.026 70.924 +-382.536 99.0349 68.8446 +-379.079 95.1618 66.1522 +-376.912 91.6721 63.7264 +-380.756 89.6473 62.3188 +-380.827 86.7185 60.2828 +-381.251 83.8799 58.3096 +-381.547 81.0215 56.3225 +-381.423 78.0859 54.2818 +-380.975 75.1007 52.2066 +-381.563 72.331 50.2813 +-381.341 69.4166 48.2553 +-380.988 66.4937 46.2235 +-382.465 63.8922 44.415 +-381.068 60.8203 42.2796 +-380.52 57.9079 40.255 +-381.613 55.2505 38.4077 +-381.988 52.4869 36.4865 +-380.853 49.5294 34.4307 +-381.958 46.8715 32.583 +-381.352 44.0072 30.5918 +-381.012 41.1872 28.6315 +-381.634 38.4756 26.7465 +-381.432 35.6838 24.8058 +-382.195 32.9837 22.9288 +-380.64 30.0943 20.9202 +-381.543 27.4087 19.0533 +-380.822 24.6094 17.1074 +-380.571 21.8511 15.1899 +-380.788 19.1233 13.2937 +-380.078 16.3555 11.3696 +-380.737 13.6493 9.48841 +-379.868 10.8921 7.57169 +-147.649 3.17464 2.20687 +-146.178 2.09506 1.45639 +-146.294 1.04829 0.728721 +96.5 -3.55271e-15 -1.7053e-13 +96.3963 0.695041 0.473919 +96.4853 1.39147 0.948786 +96.4669 2.08708 1.42309 +96.6411 2.78829 1.90121 +96.608 3.48496 2.37624 +96.3678 4.17272 2.8452 +96.5196 4.87745 3.32573 +96.2649 5.56165 3.79225 +96.4019 6.26847 4.2742 +96.332 6.96328 4.74797 +97.1507 7.72885 5.26997 +97.0653 8.42902 5.74739 +96.9726 9.12849 6.22433 +96.9718 9.83738 6.70769 +96.765 10.5254 7.17685 +96.6502 11.2227 7.65227 +96.3301 11.8946 8.11045 +96.1021 12.5759 8.57494 +95.9656 13.2682 9.04703 +95.7233 13.9453 9.50871 +96.2607 14.7404 10.0508 +95.4142 15.3234 10.4484 +96.1306 16.1591 11.0182 +95.9563 16.8515 11.4903 +95.5794 17.5069 11.9372 +95.5857 18.2326 12.432 +96.4591 19.1333 13.0461 +96.2533 19.828 13.5199 +95.9434 20.5006 13.9785 +95.7232 21.1915 14.4496 +96.363 22.0795 15.0551 +96.1262 22.7735 15.5283 +96.5531 23.6299 16.1122 +96.2999 24.3252 16.5863 +96.23 25.0683 17.093 +95.7714 25.7101 17.5306 +96.3497 26.6356 18.1617 +95.9701 27.3024 18.6163 +96.5265 28.2414 19.2566 +97.2582 29.2472 19.9424 +96.8519 29.9183 20.4 +96.1588 30.4971 20.7946 +95.833 31.1892 21.2666 +96.7053 32.2814 22.0113 +96.1759 32.9141 22.4427 +96.1007 33.7031 22.9807 +96.5664 34.6913 23.6545 +96.2877 35.4197 24.1512 +95.9099 36.1127 24.6237 +96.4311 37.152 25.3323 +96.0351 37.8458 25.8054 +96.4406 38.8627 26.4988 +96.0265 39.5566 26.9719 +96.4069 40.585 27.6732 +95.8859 41.2404 28.1201 +96.2413 42.2793 28.8284 +95.7911 42.9716 29.3005 +96.0332 43.981 29.9888 +96.3484 45.0379 30.7094 +96.4752 46.02 31.3791 +95.9855 46.7139 31.8522 +96.1742 47.7446 32.555 +96.3483 48.7815 33.262 +95.6598 49.3868 33.6747 +95.8093 50.4297 34.3858 +96.1116 51.5685 35.1624 +95.5633 52.2596 35.6336 +95.6709 53.3162 36.354 +95.9283 54.4719 37.1421 +96.0865 55.588 37.9031 +95.2515 56.1347 38.2758 +95.3022 57.2079 39.0076 +95.4178 58.3351 39.7762 +95.5168 59.4684 40.5489 +95.7577 60.708 41.3942 +95.4281 61.5996 42.0021 +95.5565 62.7996 42.8203 +95.589 63.9541 43.6076 +95.6043 65.1139 44.3984 +95.4491 66.1724 45.1201 +95.507 67.3947 45.9536 +95.3953 68.5144 46.717 +95.3421 69.6923 47.5202 +95.2712 70.8746 48.3263 +95.1088 72.0053 49.0973 +95.6611 73.7026 50.2546 +95.4593 74.8445 51.0333 +95.3125 76.0464 51.8528 +95.1476 77.2519 52.6748 +94.9644 78.4608 53.499 +94.7629 79.6729 54.3255 +94.6125 80.9474 55.1946 +94.7864 82.5255 56.2706 +94.525 83.7498 57.1054 +94.9204 85.5849 58.3566 +94.6151 86.8192 59.1983 +94.7547 88.4882 60.3363 +94.6037 89.9159 61.3098 +94.6895 91.5997 62.4579 +94.2327 92.7853 63.2663 +94.3304 94.5451 64.4663 +93.9575 95.8638 65.3654 +94.1865 97.831 66.7067 +93.2727 98.6365 67.256 +93.6884 100.878 68.7844 +91.4157 100.23 68.3427 +93.7441 104.671 71.3708 +93.693 106.546 72.6491 +93.8997 108.764 74.1617 +93.0341 109.776 74.8512 +90.3984 108.673 74.0991 +89.6945 109.868 74.9143 +88.1995 110.097 75.0704 +88.1771 112.184 76.4934 +88.2783 114.487 78.0641 +88.1256 116.521 79.4505 +87.9888 118.632 80.8899 +88.432 121.599 82.9129 +88.0072 123.441 84.1692 +87.75 125.574 85.6232 +89.5226 130.732 89.1408 +92.7926 138.31 94.3074 +92.7597 141.152 96.2453 +92.9084 144.368 98.4385 +92.7191 147.158 100.341 +93.1589 151.061 103.002 +92.8538 153.87 104.918 +92.7155 157.059 107.092 +92.4738 160.182 109.221 +92.7647 164.363 112.072 +92.4766 167.656 114.317 +92.4512 171.562 116.981 +92.111 175.026 119.342 +92.4079 179.866 122.643 +91.3848 182.281 124.289 +90.3551 184.772 125.988 +88.62 185.877 126.742 +89.1619 191.908 130.854 +91.4391 202.063 137.778 +90.2591 204.888 139.705 +88.1918 205.765 140.302 +85.2337 204.518 139.452 +83.229 205.516 140.133 +80.3135 204.223 139.251 +78.3339 205.267 139.963 +75.7535 204.718 139.588 +73.7588 205.731 140.279 +71.0317 204.667 139.554 +68.8673 205.172 139.898 +66.3612 204.622 139.523 +64.3226 205.493 140.117 +61.5207 203.865 139.007 +59.5519 204.944 139.742 +57.1601 204.559 139.48 +55.0189 205.044 139.811 +52.7056 204.868 139.69 +50.5198 205.159 139.889 +48.0457 204.218 139.248 +46.0509 205.288 139.977 +43.6031 204.31 139.31 +41.4269 204.535 139.464 +39.1399 204.174 139.217 +37.0854 205.02 139.794 +34.6819 203.889 139.023 +32.6315 204.786 139.635 +30.3577 204.275 139.287 +28.2102 204.569 139.487 +25.9753 204.189 139.228 +23.8273 204.45 139.406 +21.5275 203.298 138.62 +19.4814 204.516 139.451 +17.2368 203.66 138.867 +15.1461 204.601 139.508 +12.9322 203.877 139.015 +10.8176 204.706 139.58 +8.58877 203.207 138.558 +6.47094 204.169 139.214 +4.28457 202.805 138.284 +2.15807 204.315 139.314 +1.95399e-14 203.579 138.812 +-2.15196 203.737 138.919 +-4.30376 203.713 138.903 +-6.47618 204.335 139.327 +-8.60622 203.62 138.84 +-10.7914 204.211 139.243 +-12.8851 203.135 138.509 +-15.0973 203.941 139.059 +-17.188 203.083 138.474 +-19.4029 203.693 138.889 +-21.4752 202.804 138.283 +-23.7889 204.122 139.182 +-25.8394 203.121 138.499 +-28.0744 203.584 138.815 +-30.1627 202.963 138.392 +-32.5141 204.049 139.132 +-34.5428 203.071 138.465 +-36.8045 203.467 138.736 +-38.827 202.541 138.104 +-41.0638 202.743 138.241 +-43.2558 202.683 138.201 +-45.5589 203.095 138.481 +-47.6641 202.596 138.141 +-50.0214 203.135 138.509 +-52.0195 202.201 137.872 +-54.5861 203.432 138.711 +-56.4852 202.144 137.834 +-59.0383 203.176 138.537 +-61.1337 202.582 138.132 +-63.6716 203.413 138.699 +-65.6883 202.548 138.109 +-68.3061 203.499 138.758 +-70.2324 202.363 137.983 +-72.9635 203.513 138.767 +-74.8179 202.189 137.864 +-77.552 203.219 138.566 +-79.6337 202.494 138.072 +-82.2136 203.009 138.423 +-84.4524 202.643 138.174 +-87.157 203.351 138.656 +-89.2673 202.637 138.169 +-91.7193 202.681 138.2 +-93.8207 201.935 137.691 +-96.683 202.789 138.273 +-98.9336 202.314 137.949 +-101.756 202.967 138.395 +-103.661 201.769 137.578 +-106.745 202.833 138.303 +-108.883 202.055 137.773 +-111.718 202.541 138.104 +-113.896 201.802 137.6 +-116.798 202.315 137.95 +-118.974 201.54 137.422 +-122.347 202.745 138.243 +-124.53 201.929 137.687 +-127.396 202.196 137.869 +-129.95 201.926 137.685 +-134.272 204.321 139.318 +-138.219 206.019 140.476 +-141.572 206.741 140.968 +-143.45 205.283 139.974 +-142.923 200.468 136.691 +-142.82 196.384 133.906 +-144.837 195.277 133.151 +-147.106 194.505 132.625 +-152.969 198.385 135.27 +-479.773 610.393 416.201 +-481.234 600.71 409.598 +-483.646 592.423 403.948 +-485.014 583.057 397.562 +-488.171 576.019 392.762 +-489.3 566.76 386.449 +-492.682 560.269 382.024 +-493.168 550.652 375.466 +-144.195 158.098 107.8 +-141.659 152.53 104.003 +-142.71 150.917 102.904 +-142.805 148.33 101.14 +-142.352 145.24 99.0328 +-142.291 142.614 97.2425 +-142.892 140.697 95.9355 +-145.282 140.541 95.829 +-149.188 141.795 96.6842 +-514.193 480.186 327.418 +-517.573 474.926 323.832 +-518.38 467.399 318.699 +-521.047 461.649 314.779 +-522.323 454.759 310.081 +-525.092 449.252 306.326 +-526.243 442.443 301.683 +-529.199 437.231 298.129 +-530.658 430.85 293.778 +-533.678 425.803 290.337 +-534.383 418.981 285.685 +-537.472 414.098 282.356 +-539.097 408.142 278.295 +-567.911 422.484 288.074 +-564.488 412.625 281.351 +-564.825 405.666 276.606 +-568.479 401.148 273.526 +-576.908 399.955 272.712 +-575.015 391.629 267.035 +-574.777 384.556 262.213 +-575.295 378.084 257.799 +-579.74 374.226 255.169 +-580.338 367.92 250.869 +-582.924 362.926 247.464 +-584.243 357.186 243.55 +-597.297 358.545 244.476 +-593.734 349.907 238.586 +-579.222 335.092 228.485 +-575.075 326.551 222.661 +-577.093 321.606 219.29 +-577.633 315.883 215.387 +-580.947 311.706 212.539 +-582.699 306.707 209.13 +-382.3 197.372 134.58 +-381.471 193.14 131.694 +-381.611 189.446 129.175 +-382.563 186.184 126.951 +-380.445 181.478 123.742 +-379.649 177.466 121.007 +-380.984 174.482 118.972 +-382.022 171.374 116.852 +-381.61 167.643 114.309 +-380.616 163.702 111.622 +-385.093 162.115 110.539 +-135.314 55.7405 38.0071 +-381.538 153.749 104.835 +-380.259 149.853 102.179 +-381.918 147.141 100.329 +-381.183 143.525 97.8639 +-384.146 141.31 96.3529 +-605.718 217.603 148.374 +-380.076 133.295 90.8884 +-381.1 130.423 88.9301 +-381.629 127.392 86.8632 +-381.192 124.061 84.5917 +-3058.88 970.13 661.49 +-620.358 191.633 130.667 +-3078.9 925.878 631.317 +-380.639 111.366 75.9357 +-381.422 108.51 73.9882 +-381.7 105.52 71.9494 +-380.993 102.278 69.7393 +-381.296 99.3289 67.7281 +-376.497 95.1028 64.8465 +-376.624 92.1731 62.8489 +-636.451 150.783 102.812 +-382.079 87.5455 59.6935 +-381.251 84.4026 57.5505 +-381.741 81.5677 55.6175 +-381.423 78.5724 53.5751 +-381.655 75.7036 51.619 +-380.589 72.5959 49.5 +-381.244 69.8312 47.6149 +-380.597 66.8393 45.5748 +-381.289 64.0927 43.702 +-380.773 61.1519 41.6969 +-381.011 58.3441 39.7823 +-381.121 55.523 37.8587 +-381.988 52.8139 36.0115 +-380.655 49.8122 33.9648 +-380.87 47.0292 32.0672 +-382.045 44.3618 30.2484 +-381.012 41.4438 28.2588 +-381.038 38.6548 26.3571 +-380.637 35.8313 24.4319 +-380.305 33.0251 22.5184 +-380.042 30.2343 20.6155 +-380.347 27.4931 18.7464 +-381.221 24.7887 16.9023 +-380.87 22.0045 15.0039 +-379.89 19.1971 13.0897 +-380.078 16.4574 11.2216 +-380.537 13.7272 9.35998 +-379.868 10.96 7.47312 +-147.649 3.19442 2.17814 +-145.778 2.10235 1.4335 +-145.794 1.05121 0.716778 +95.8 -1.77636e-15 -1.7053e-13 +96.4963 0.700013 0.468116 +96.4853 1.39998 0.936197 +96.6669 2.10418 1.40711 +96.6411 2.80532 1.87598 +96.608 3.50625 2.34471 +96.5675 4.20692 2.81327 +96.5196 4.90725 3.2816 +96.5642 5.61303 3.75357 +96.4019 6.30676 4.21748 +96.4316 7.01308 4.68981 +96.2548 7.70435 5.15209 +96.2697 8.41102 5.62465 +96.1778 9.10903 6.09143 +96.8725 9.88734 6.6119 +96.765 10.5898 7.08162 +96.7492 11.3028 7.55846 +96.3301 11.9673 8.00283 +96.3984 12.6917 8.48723 +95.9656 13.3493 8.92699 +95.8218 14.045 9.39221 +95.5724 14.7244 9.84653 +95.5123 15.4329 10.3204 +96.1306 16.2578 10.872 +96.0541 16.9718 11.3494 +95.7746 17.6499 11.8029 +95.6831 18.3627 12.2796 +95.3895 19.0367 12.7303 +96.2533 19.9492 13.3405 +95.9434 20.6258 13.793 +96.6892 21.5361 14.4017 +96.4594 22.2367 14.8702 +96.2223 22.9355 15.3376 +96.7449 23.8215 15.93 +96.5868 24.5467 16.415 +96.0393 25.1715 16.8328 +95.9616 25.9185 17.3323 +96.3497 26.7983 17.9207 +96.0647 27.4962 18.3874 +96.5265 28.414 19.0011 +96.2245 29.1131 19.4687 +96.8519 30.1011 20.1293 +96.5322 30.8025 20.5984 +96.8565 31.7149 21.2085 +96.7053 32.4786 21.7192 +96.3606 33.1788 22.1875 +96.1007 33.909 22.6758 +96.5664 34.9032 23.3406 +96.2877 35.6361 23.8307 +96.0919 36.4022 24.343 +96.6124 37.4492 25.0432 +96.2156 38.1486 25.5109 +95.8114 38.8451 25.9767 +95.937 39.7612 26.5892 +96.5851 40.9085 27.3565 +96.6842 41.8378 27.978 +96.3296 42.5766 28.472 +96.582 43.591 29.1504 +96.1207 44.29 29.6178 +96.3484 45.3131 30.3019 +95.9556 46.0518 30.796 +95.9855 46.9993 31.4295 +96.1742 48.0363 32.123 +96.3483 49.0795 32.8206 +95.8294 49.7766 33.2868 +96.0623 50.8718 34.0192 +96.2794 51.9742 34.7564 +95.5633 52.5789 35.1608 +95.9196 53.7814 35.9649 +95.8459 54.7576 36.6177 +96.0865 55.9276 37.4001 +95.4143 56.5742 37.8326 +95.5449 57.7039 38.588 +95.4178 58.6915 39.2484 +95.5168 59.8317 40.0109 +95.5197 60.9271 40.7434 +95.5857 62.0783 41.5132 +95.5565 63.1833 42.2522 +95.589 64.3449 43.029 +95.5271 65.4588 43.7739 +95.5257 66.6302 44.5572 +95.4309 67.7524 45.3077 +95.4708 68.9875 46.1336 +95.3421 70.118 46.8896 +95.2712 71.3076 47.6851 +95.1825 72.5014 48.4834 +95.076 73.6994 49.2845 +95.4593 75.3018 50.3561 +95.3125 76.511 51.1648 +95.1476 77.7239 51.9758 +95.0352 78.999 52.8285 +95.3938 80.6932 53.9615 +95.1682 81.9204 54.7821 +94.9241 83.1501 55.6045 +94.6614 84.3829 56.4289 +94.9204 86.1077 57.5823 +95.1504 87.8434 58.743 +94.8872 89.1526 59.6185 +94.4725 90.3397 60.4123 +94.6895 92.1593 61.6292 +94.3612 93.4794 62.5119 +94.5212 95.3148 63.7393 +94.3351 96.8368 64.7571 +94.1865 98.4287 65.8216 +92.0414 97.9291 65.4875 +90.5837 98.1311 65.6226 +88.8279 97.9881 65.527 +91.1863 102.437 68.5021 +93.8693 107.399 71.8202 +93.4932 108.956 72.8613 +94.1813 111.809 74.7691 +91.8711 111.117 74.3066 +90.8129 111.918 74.8419 +88.1995 110.77 74.0743 +87.9592 112.59 75.2917 +88.6007 115.608 77.3095 +87.8606 116.88 78.1606 +88.3545 119.852 80.1479 +88.535 122.484 81.9078 +88.1594 124.411 83.1963 +88.3 127.133 85.0168 +92.4279 135.8 90.8125 +92.7926 139.155 93.056 +92.7597 142.014 94.9683 +93.0023 145.397 97.2307 +92.7191 148.057 99.0095 +92.7503 151.317 101.189 +92.8091 154.736 103.476 +92.4086 157.496 105.321 +92.5599 161.311 107.873 +92.4266 164.764 110.182 +92.4351 168.604 112.75 +92.4512 172.61 115.429 +92.4699 176.781 118.218 +92.3298 180.812 120.913 +91.1552 182.934 122.332 +89.6808 184.513 123.388 +87.9236 185.543 124.077 +91.8497 198.901 133.01 +91.5792 203.609 136.158 +89.5409 204.5 136.754 +87.5575 205.533 137.445 +84.4198 203.803 136.288 +82.2771 204.407 136.692 +79.8191 204.206 136.557 +77.6723 204.777 136.939 +75.2272 204.537 136.779 +72.9635 204.757 136.926 +70.3978 204.079 136.473 +68.4397 205.143 137.184 +65.8177 204.187 136.544 +63.7217 204.818 136.966 +61.0853 203.659 136.191 +59.3185 205.387 137.347 +56.5302 203.542 136.113 +54.6726 204.999 137.088 +52.1443 203.924 136.369 +50.0812 204.62 136.835 +47.7022 203.997 136.418 +45.7229 205.071 137.136 +43.1863 203.594 136.148 +41.2619 204.965 137.065 +38.8583 203.943 136.382 +36.8045 204.71 136.895 +34.4453 203.734 136.242 +32.4097 204.636 136.845 +30.053 203.461 136.059 +27.9952 204.249 136.586 +25.7245 203.453 136.054 +23.6356 204.045 136.45 +21.4055 203.38 136.005 +19.2774 203.611 136.16 +17.0555 202.748 135.582 +15.0302 204.275 136.603 +12.7961 202.965 135.727 +10.7347 204.379 136.673 +8.52944 203.036 135.775 +6.40026 203.173 135.867 +4.26711 203.212 135.893 +2.138 203.651 136.186 +2.04281e-14 203.243 135.914 +-2.14324 204.15 136.52 +-4.25664 202.714 135.559 +-6.42121 203.838 136.312 +-8.5434 203.369 135.997 +-10.7042 203.797 136.284 +-12.8066 203.131 135.839 +-14.9874 203.694 136.215 +-17.0764 202.997 135.749 +-19.2617 203.445 136.049 +-21.3357 202.718 135.562 +-23.626 203.962 136.394 +-25.6722 203.039 135.777 +-27.9159 203.671 136.2 +-29.9311 202.635 135.507 +-32.1878 203.235 135.908 +-34.1809 202.171 135.196 +-36.4498 202.737 135.575 +-38.5767 202.465 135.393 +-40.8163 202.751 135.584 +-42.8216 201.875 134.999 +-45.1033 202.292 135.278 +-47.0535 201.222 134.562 +-49.7024 203.073 135.8 +-51.5205 201.485 134.738 +-54.0233 202.564 135.459 +-55.9228 201.354 134.651 +-58.6415 203.043 135.78 +-60.5289 201.803 134.951 +-63.0958 202.805 135.621 +-65.0153 201.698 134.88 +-67.8251 203.3 135.952 +-69.8189 202.402 135.351 +-72.3387 203.003 135.753 +-74.3209 202.074 135.131 +-76.9205 202.795 135.614 +-79.1084 202.387 135.341 +-81.7694 203.146 135.849 +-83.6385 201.916 135.026 +-86.2557 202.478 135.402 +-88.4122 201.922 135.03 +-91.159 202.675 135.533 +-93.1757 201.773 134.93 +-95.95 202.481 135.404 +-98.1844 202.009 135.088 +-101.373 203.439 136.045 +-102.919 201.548 134.78 +-105.708 202.09 135.143 +-107.826 201.315 134.624 +-111.055 202.568 135.462 +-112.797 201.077 134.465 +-116.109 202.351 135.317 +-118.185 201.427 134.699 +-121.098 201.901 135.016 +-123.213 201.014 134.423 +-126.704 202.325 135.3 +-128.682 201.178 134.533 +-131.839 201.844 134.978 +-136.813 205.17 137.202 +-140.39 206.267 137.936 +-142.7 205.458 137.394 +-142.923 201.693 134.877 +-142.82 197.584 132.129 +-144.053 195.407 130.673 +-144.509 192.24 128.555 +-149.584 195.18 130.521 +-156.366 200.152 133.847 +-482.779 606.321 405.462 +-486.554 599.626 400.984 +-487.109 589.155 393.982 +-490.465 582.262 389.373 +-491.333 572.591 382.905 +-494.739 566.047 378.529 +-495.19 556.288 372.003 +-142.57 157.272 105.172 +-142.694 154.583 103.373 +-142.772 151.904 101.582 +-142.992 149.431 99.9284 +-142.101 145.87 97.5465 +-142.672 143.87 96.2096 +-148.612 147.224 98.452 +-149.893 145.888 97.5587 +-514.81 492.29 329.206 +-516.181 484.988 324.323 +-519.446 479.556 320.691 +-520.407 472.093 315.7 +-523.297 466.477 311.944 +-523.907 458.924 306.893 +-527.524 454.09 303.661 +-528.696 447.222 299.068 +-531.532 441.841 295.47 +-532.37 434.881 290.816 +-535.836 430.136 287.643 +-536.342 423.086 282.928 +-543.396 421.22 281.68 +-554.875 422.653 282.638 +-563.007 421.393 281.796 +-564.713 415.311 277.728 +-568.07 410.49 274.504 +-574.563 407.918 272.785 +-573.384 399.942 267.451 +-575.246 394.18 263.598 +-583.714 392.923 262.757 +-578.504 382.515 255.797 +-581.394 377.587 252.502 +-582.559 371.585 248.488 +-585.24 366.594 245.15 +-590.192 363.027 242.765 +-590.582 356.68 238.52 +-587.222 348.182 232.838 +-574.389 334.326 223.572 +-575.652 328.876 219.927 +-579.331 324.827 217.219 +-580.218 319.235 213.48 +-582.96 314.698 210.446 +-584.217 309.384 206.893 +-587.443 305.135 204.051 +-382.665 194.928 130.353 +-382.039 190.817 127.604 +-379.978 186.056 124.42 +-381.484 183.085 122.433 +-380.432 178.919 119.647 +-380.285 175.225 117.177 +-381.67 172.262 115.196 +-382.405 169.018 113.027 +-380.971 164.856 110.243 +-381.262 161.483 107.988 +-135.672 56.2294 37.602 +-137.605 55.7897 37.3079 +-381.884 151.413 101.254 +-381.827 148.005 98.9745 +-381.183 144.402 96.5653 +-382.227 141.463 94.5997 +-604.251 218.402 146.051 +-383.206 135.214 90.4206 +-382.024 131.539 87.963 +-381.629 128.17 85.7106 +-381.936 125.062 83.6321 +-382.021 121.899 81.517 +-378.322 117.581 78.6292 +-379.072 114.69 76.6958 +-3088.56 909.166 607.981 +-381.611 109.227 73.0426 +-381.321 106.059 70.9241 +-381.944 103.16 68.9857 +-379.675 99.511 66.5454 +-376.21 95.6107 63.9372 +-377.679 92.9964 62.1889 +-640.393 152.644 102.077 +-380.345 87.6805 58.634 +-381.444 84.9614 56.8158 +-381.257 81.9619 54.8099 +-380.841 78.9317 52.7835 +-380.975 76.0303 50.8433 +-381.271 73.1703 48.9307 +-381.341 70.2758 46.9951 +-381.184 67.3514 45.0395 +-380.603 64.3682 43.0446 +-381.657 61.6683 41.2391 +-380.815 58.6702 39.2342 +-381.613 55.9344 37.4047 +-380.706 52.9583 35.4145 +-381.248 50.1946 33.5663 +-380.474 47.2674 31.6088 +-381.847 44.6097 29.8316 +-380.417 41.6319 27.8403 +-380.145 38.7999 25.9464 +-381.234 36.1067 24.1454 +-381.3 33.3137 22.2777 +-380.938 30.4908 20.3899 +-381.244 27.7263 18.5412 +-381.022 24.9271 16.6693 +-380.172 22.0984 14.7777 +-380.589 19.3499 12.9397 +-380.578 16.5796 11.0872 +-380.737 13.8183 9.24062 +-379.269 11.0095 7.36235 +-148.849 3.24004 2.1667 +-147.178 2.1355 1.42806 +-145.794 1.05764 0.707267 +95.9 3.55271e-15 -1.7053e-13 +96.6963 0.705667 0.462738 +96.7853 1.41274 0.926397 +96.7668 2.11898 1.38951 +96.741 2.82505 1.85251 +96.7079 3.53091 2.31538 +96.6673 4.2365 2.77807 +96.6194 4.94177 3.24054 +96.4644 5.64082 3.69895 +96.5016 6.35112 4.16472 +96.4316 7.0551 4.62635 +96.3544 7.75854 5.08763 +96.2697 8.46142 5.54854 +97.072 9.24883 6.06488 +97.071 9.96699 6.53581 +96.8642 10.6641 6.99293 +96.8482 11.3822 7.46381 +96.6268 12.0762 7.91889 +96.3984 12.7677 8.37239 +96.0642 13.4431 8.81525 +96.6096 14.2453 9.34129 +95.6707 14.8278 9.72328 +96.3958 15.669 10.2749 +96.2286 16.3718 10.7358 +96.0541 17.0735 11.1958 +95.9699 17.7919 11.6669 +95.6831 18.4727 12.1134 +95.584 19.1898 12.5836 +96.3504 20.0889 13.1732 +96.0402 20.7703 13.62 +96.7858 21.6868 14.2211 +96.5558 22.3923 14.6836 +96.2223 23.073 15.13 +95.882 23.7505 15.5743 +96.5868 24.6938 16.1929 +96.23 25.3726 16.638 +95.9616 26.0738 17.0978 +96.3497 26.9589 17.6782 +96.0647 27.6609 18.1385 +96.8093 28.668 18.7989 +96.2245 29.2876 19.2052 +97.0392 30.3401 19.8954 +96.6256 31.0171 20.3393 +97.0426 31.9662 20.9617 +96.798 32.7045 21.4458 +96.453 33.4097 21.9083 +96.9292 34.4063 22.5618 +95.8328 34.8456 22.8499 +96.2877 35.8497 23.5083 +96.0919 36.6203 24.0136 +96.6124 37.6736 24.7043 +96.2156 38.3772 25.1657 +96.6204 39.4078 25.8415 +96.2054 40.1114 26.3029 +96.5851 41.1536 26.9863 +95.9746 41.7796 27.3968 +96.3296 42.8317 28.0867 +96.582 43.8522 28.7559 +96.1207 44.5554 29.217 +96.4354 45.6257 29.9189 +96.6484 46.6623 30.5986 +96.8471 47.7053 31.2826 +96.1742 48.3241 31.6883 +96.4336 49.4173 32.4052 +95.9142 50.1192 32.8655 +96.0623 51.1766 33.5589 +96.2794 52.2856 34.2861 +96.4806 53.4016 35.0179 +95.7538 54.0101 35.4169 +95.9283 55.1331 36.1533 +96.0865 56.2627 36.8941 +95.4958 56.9618 37.3525 +95.464 58.0006 38.0337 +95.4178 59.0432 38.7174 +95.5168 60.1902 39.4695 +94.8851 60.885 39.9251 +94.9553 62.0384 40.6814 +95.5565 63.5619 41.6804 +95.6667 64.783 42.4812 +95.6043 65.9043 43.2165 +95.5257 67.0294 43.9543 +94.8226 67.724 44.4097 +95.4708 69.4009 45.5094 +95.3421 70.5382 46.2551 +95.2712 71.7349 47.0398 +95.1088 72.8793 47.7903 +95.6611 74.5972 48.9168 +94.9515 75.35 49.4105 +95.3845 77.0276 50.5105 +95.1476 78.1896 51.2725 +95.6008 79.9453 52.4238 +94.7629 80.64 52.8794 +95.2377 82.4714 54.0803 +94.9241 83.6484 54.8521 +94.7296 84.9496 55.7053 +94.9204 86.6237 56.8032 +95.1504 88.3698 57.9481 +94.8209 89.625 58.7712 +94.6037 91.0073 59.6777 +94.6895 92.7116 60.7952 +94.3612 94.0395 61.666 +94.394 95.7571 62.7924 +94.5869 97.6772 64.0514 +93.9375 98.7567 64.7593 +89.7634 96.0774 63.0024 +89.2444 97.2599 63.7778 +88.1057 97.7733 64.1145 +88.4501 99.9593 65.5479 +89.3434 102.833 67.4326 +93.7835 109.949 72.0986 +93.7224 111.93 73.3977 +94.1367 114.54 75.1091 +93.3852 115.777 75.9201 +90.2969 114.083 74.8097 +90.2467 116.211 76.2047 +87.7948 115.242 75.5697 +87.7016 117.368 76.9637 +87.832 119.858 78.5962 +87.814 122.214 80.1414 +88.1594 125.156 82.0706 +90.15 130.574 85.6234 +92.8218 137.195 89.9653 +92.7926 139.988 91.7969 +92.8074 142.939 93.7315 +92.9084 146.121 95.818 +92.7191 148.945 97.6698 +92.7957 152.298 99.8688 +92.8538 155.738 102.125 +92.7593 159.041 104.29 +92.5599 162.278 106.413 +92.7224 166.282 109.038 +92.4351 169.615 111.224 +92.4512 173.645 113.867 +92.3503 177.61 116.467 +91.6264 180.509 118.368 +90.3898 182.485 119.664 +88.9316 184.068 120.702 +87.4105 185.566 121.684 +92.0289 200.483 131.466 +91.4391 204.515 134.11 +88.8226 204.075 133.821 +86.723 204.794 134.293 +83.8012 203.521 133.458 +81.7377 204.284 133.958 +79.0774 203.52 133.458 +77.1912 204.728 134.249 +74.5255 203.844 133.67 +72.3955 204.38 134.021 +69.9016 203.856 133.677 +67.7717 204.358 134.007 +65.1706 203.391 133.373 +63.246 204.506 134.104 +60.6498 203.418 133.391 +58.4547 203.609 133.516 +56.0578 203.05 133.149 +54.0666 203.942 133.734 +51.6037 203.019 133.129 +49.7024 204.29 133.962 +47.2252 203.167 133.226 +45.2309 204.08 133.824 +42.8737 203.331 133.334 +40.8658 204.213 133.912 +38.4829 203.182 133.236 +36.4794 204.117 133.849 +34.0696 202.72 132.933 +32.0703 203.707 133.58 +29.8458 203.269 133.293 +27.814 204.144 133.867 +25.5468 203.258 133.285 +23.4822 203.936 133.73 +21.1963 202.6 132.854 +19.1676 203.664 133.552 +16.9369 202.545 132.818 +14.8775 203.411 133.386 +12.6705 202.176 132.576 +10.6213 203.431 133.399 +8.4387 202.08 132.513 +6.35838 203.054 133.152 +4.2165 202.005 132.464 +2.11706 202.865 133.028 +1.86517e-14 202.036 132.484 +-2.11793 202.948 133.082 +-4.22872 202.59 132.848 +-6.36623 203.304 133.316 +-8.42474 201.746 132.294 +-10.6082 203.181 133.235 +-12.6653 202.093 132.522 +-14.8287 202.744 132.949 +-16.888 201.961 132.435 +-19.1362 203.33 133.333 +-21.1876 202.517 132.8 +-23.3768 203.02 133.13 +-25.39 202.01 132.467 +-27.6216 202.732 132.94 +-29.6508 201.941 132.422 +-31.9528 202.961 133.091 +-33.8469 201.394 132.064 +-36.2281 202.712 132.927 +-38.1544 201.448 132.099 +-40.5357 202.564 132.831 +-42.5091 201.602 132.2 +-44.9028 202.599 132.854 +-46.7482 201.115 131.88 +-49.1841 202.159 132.565 +-51.1047 201.057 131.842 +-53.5688 202.063 132.502 +-55.5404 201.176 131.921 +-57.9878 201.983 132.45 +-60.166 201.796 132.327 +-62.4698 201.997 132.458 +-64.6012 201.614 132.207 +-67.1837 202.585 132.844 +-69.1298 201.604 132.201 +-71.7139 202.456 132.759 +-73.59 201.285 131.992 +-76.1688 202.017 132.472 +-78.2431 201.374 132.05 +-80.7858 201.905 132.398 +-82.792 201.07 131.851 +-85.6882 202.35 132.69 +-87.6256 201.324 132.018 +-90.6337 202.714 132.929 +-92.674 201.889 132.388 +-95.327 202.372 132.705 +-97.1355 201.048 131.837 +-100.187 202.263 132.633 +-101.785 200.524 131.493 +-104.951 201.844 132.358 +-106.687 200.383 131.4 +-109.562 201.042 131.833 +-111.656 200.235 131.304 +-114.903 201.451 132.1 +-117.045 200.679 131.595 +-120.34 201.839 132.355 +-122.487 201.027 131.823 +-125.411 201.461 132.107 +-127.415 200.39 131.405 +-130.742 201.364 132.043 +-133.71 201.718 132.276 +-139.159 205.684 134.877 +-141.65 205.168 134.538 +-143.075 203.117 133.193 +-143.284 199.413 130.765 +-142.747 194.795 127.736 +-144.615 193.533 126.908 +-148.778 195.292 128.062 +-150.919 194.339 127.437 +-485.208 613.022 401.987 +-488.958 606.2 397.513 +-489.375 595.441 390.458 +-492.989 588.765 386.08 +-494.062 579.222 379.822 +-142.42 163.924 107.493 +-141.687 160.123 105 +-142.871 158.548 103.967 +-142.937 155.774 102.148 +-142.526 152.55 100.034 +-142.68 150 98.3619 +-143.989 148.693 97.5048 +-146.68 148.798 97.5739 +-513.716 511.966 335.72 +-514.298 503.555 330.204 +-517.827 498.142 326.655 +-518.301 489.898 321.248 +-521.922 484.73 317.86 +-522.231 476.586 312.52 +-525.957 471.657 309.287 +-526.316 463.797 304.133 +-530.511 459.397 301.248 +-530.658 451.572 296.116 +-534.29 446.795 292.984 +-535.508 440.066 288.572 +-538.138 434.573 284.969 +-539.026 427.751 280.496 +-569.359 443.991 291.145 +-566.966 434.452 284.89 +-566.128 426.269 279.524 +-566.285 418.963 274.733 +-570.787 414.924 272.085 +-571.369 408.082 267.598 +-574.916 403.413 264.536 +-579.567 399.521 261.984 +-586.823 397.382 260.582 +-581.634 386.889 253.701 +-583.758 381.395 250.098 +-584.305 374.931 245.86 +-597.459 376.491 246.882 +-592.925 366.893 240.589 +-577.962 351.149 230.265 +-575.905 343.519 225.261 +-576.601 337.624 221.396 +-577.877 332.125 217.79 +-581.57 328.036 215.108 +-582.469 322.394 211.409 +-586.063 318.268 208.703 +-587.506 312.991 205.243 +-590.326 308.47 202.278 +-382.494 196.009 128.532 +-382.554 192.219 126.047 +-382.046 188.19 123.405 +-379.666 183.304 120.201 +-378.518 179.085 117.434 +-380.722 176.479 115.725 +-381.407 173.175 113.559 +-381.61 169.678 111.266 +-382.036 166.307 109.055 +-381.44 162.526 106.576 +-135.046 56.3051 36.9219 +-136.617 55.7208 36.5387 +-381.884 152.32 99.8836 +-381.918 148.927 97.6583 +-382.821 145.891 95.6678 +-382.684 142.48 93.431 +-603.334 219.377 143.856 +-609.834 216.469 141.948 +-382.671 132.55 86.9192 +-381.536 128.907 84.5305 +-381.099 125.536 82.3195 +-381.461 122.45 80.2961 +-624.292 195.19 127.995 +-380.294 115.749 75.9021 +-381.958 113.109 74.1709 +-382.462 110.126 72.2149 +-381.321 106.694 69.9644 +-380.898 103.494 67.8658 +-377.004 99.4032 65.1832 +-377.071 96.4036 63.2162 +-378.638 93.7911 61.5032 +-375.757 90.1025 59.0843 +-380.923 88.3397 57.9284 +-380.575 85.2757 55.9192 +-381.063 82.4112 54.0408 +-380.841 79.4047 52.0693 +-381.655 76.6225 50.2449 +-381.563 73.6652 48.3056 +-382.025 70.8236 46.4423 +-381.184 67.7549 44.43 +-381.289 64.8707 42.5387 +-381.068 61.9421 40.6183 +-380.52 58.976 38.6733 +-381.121 56.1969 36.8509 +-380.706 53.2756 34.9353 +-381.248 50.4953 33.1121 +-381.365 47.6618 31.254 +-380.956 44.7723 29.3592 +-380.12 41.8486 27.4421 +-381.435 39.1649 25.6822 +-380.637 36.2663 23.7815 +-380.604 33.4522 21.9361 +-380.938 30.6735 20.114 +-381.244 27.8924 18.2903 +-380.623 25.0502 16.4266 +-379.673 22.2016 14.5586 +-380.19 19.4455 12.7513 +-380.178 16.6615 10.9257 +-381.137 13.9157 9.12518 +-380.168 11.1018 7.27994 +-148.549 3.25289 2.13307 +-146.178 2.1337 1.39917 +-145.594 1.06251 0.696738 +96.8 5.32907e-15 1.13687e-13 +96.6963 0.709813 0.456353 +96.6853 1.41957 0.912673 +96.7668 2.13143 1.37034 +96.741 2.84165 1.82695 +96.7079 3.55166 2.28343 +96.6673 4.26139 2.73973 +96.6194 4.9708 3.19583 +97.462 5.73264 3.68563 +96.5016 6.38843 4.10725 +97.3282 7.16253 4.60494 +96.3544 7.80412 5.01743 +97.2642 8.59904 5.5285 +97.072 9.30317 5.9812 +96.1777 9.93327 6.38631 +96.8642 10.7267 6.89644 +96.8482 11.449 7.36082 +96.5279 12.1347 7.80162 +96.4972 12.8559 8.2653 +96.0642 13.5221 8.69361 +95.8218 14.2121 9.13728 +95.6707 14.9149 9.58911 +95.6105 15.6327 10.0506 +96.2286 16.468 10.5876 +96.0541 17.1738 11.0414 +95.9699 17.8964 11.506 +95.7806 18.6002 11.9584 +96.5563 19.4989 12.5362 +96.3504 20.2069 12.9914 +96.1371 20.9134 13.4456 +96.6892 21.7925 14.0108 +96.4594 22.5014 14.4666 +96.2223 23.2085 14.9212 +95.9779 23.9139 15.3748 +96.5868 24.8389 15.9694 +96.23 25.5216 16.4084 +95.9616 26.227 16.8619 +96.5393 27.1706 17.4686 +96.2538 27.8782 17.9235 +96.6208 28.7803 18.5034 +96.3185 29.4884 18.9587 +96.9456 30.4889 19.6019 +96.5322 31.1691 20.0393 +97.1356 32.1848 20.6923 +96.798 32.8966 21.1499 +96.453 33.606 21.606 +96.9292 34.6084 22.2505 +96.8415 35.4192 22.7718 +96.4704 36.1287 23.2279 +96.1829 36.8704 23.7047 +96.703 37.9305 24.3863 +97.0279 38.9285 25.028 +96.7102 39.6761 25.5086 +97.0109 40.6848 26.1571 +96.5851 41.3954 26.6139 +96.6842 42.3358 27.2186 +96.3296 43.0833 27.6992 +96.582 44.1099 28.3591 +96.1207 44.8172 28.8139 +96.3484 45.8524 29.4795 +96.735 46.9785 30.2034 +96.8471 47.9856 30.8509 +96.3456 48.6947 31.3068 +96.4336 49.7077 31.9581 +95.9142 50.4137 32.412 +96.0623 51.4773 33.0958 +96.2794 52.5928 33.813 +95.7301 53.2975 34.2661 +95.7538 54.3275 34.9282 +96.0931 55.5523 35.7157 +96.0865 56.5933 36.385 +95.4958 57.2965 36.8371 +95.5449 58.3907 37.5406 +95.5786 59.4901 38.2474 +95.6765 60.645 38.9899 +95.0437 61.345 39.44 +95.5857 62.8171 40.3864 +95.6347 63.9877 41.139 +95.6667 65.1636 41.895 +95.6043 66.2914 42.6201 +94.9129 66.9907 43.0697 +95.4309 68.5589 44.0779 +95.4708 69.8086 44.8814 +95.2672 70.8969 45.5811 +95.2712 72.1563 46.3908 +95.1825 73.3644 47.1675 +95.7342 75.0929 48.2788 +94.9515 75.7927 48.7287 +95.3125 77.4217 49.776 +95.2189 78.708 50.603 +94.9644 79.8797 51.3563 +95.3938 81.6537 52.4968 +95.2377 82.9559 53.3341 +94.9241 84.1398 54.0952 +94.6614 85.3872 54.8972 +95.0555 87.2571 56.0994 +94.6151 88.3893 56.8273 +94.8872 90.2138 58.0003 +94.6037 91.542 58.8542 +94.7545 93.3202 59.9975 +94.4255 94.6568 60.8568 +94.5212 96.4493 62.0092 +94.0205 97.663 62.7896 +92.3812 97.6908 62.8074 +90.4407 97.3712 62.6019 +89.6097 98.2317 63.1552 +88.3464 98.6169 63.4029 +87.9148 99.9375 64.2519 +88.4029 102.348 65.8018 +90.4155 106.623 68.5501 +92.0017 110.521 71.0562 +93.5703 114.52 73.6271 +94.0562 117.294 75.4107 +92.2287 117.208 75.3555 +91.1181 118.022 75.879 +88.8156 117.268 75.3939 +88.3905 118.985 76.4977 +87.623 120.275 77.3273 +87.608 122.644 78.8501 +87.5504 125.022 80.379 +92.85 135.275 86.9713 +92.9696 138.221 88.8651 +92.7926 140.811 90.5302 +93.0937 144.222 92.7232 +93.0023 147.128 94.5916 +93.1809 150.566 96.8018 +92.7957 153.193 98.4907 +93.2107 157.255 101.103 +92.7155 159.899 102.802 +92.6029 163.307 104.993 +92.3844 166.649 107.142 +92.4766 170.688 109.739 +92.6953 175.126 112.592 +92.43 178.808 114.96 +91.3529 181.028 116.387 +90.4281 183.635 118.063 +88.0325 183.277 117.833 +88.6566 189.317 121.716 +91.4913 200.483 128.895 +90.4936 203.59 130.892 +87.865 203.061 130.552 +85.8551 203.935 131.114 +83.2152 203.286 130.697 +80.9444 203.489 130.828 +78.3667 202.876 130.433 +76.4093 203.844 131.056 +73.8823 203.272 130.688 +71.7707 203.807 131.031 +69.1298 202.789 130.377 +67.1036 203.532 130.855 +64.5754 202.716 130.331 +62.62 203.672 130.945 +60.1176 202.817 130.396 +57.9411 203.006 130.517 +55.6979 202.932 130.469 +53.5688 203.251 130.674 +51.271 202.896 130.446 +49.1442 203.182 130.63 +46.7673 202.379 130.114 +44.8299 203.459 130.808 +42.5091 202.786 130.375 +40.4532 203.34 130.731 +38.2013 202.88 130.436 +36.1985 203.736 130.986 +33.8608 202.661 130.295 +31.7309 202.735 130.343 +29.5046 202.125 129.95 +27.531 203.254 130.676 +25.2541 202.109 129.94 +23.2426 203.041 130.539 +21.022 202.114 129.943 +18.9322 202.345 130.092 +16.7695 201.721 129.69 +14.7371 202.676 130.305 +12.5711 201.768 129.721 +10.5035 202.357 130.1 +8.37239 201.67 129.658 +6.29294 202.144 129.963 +4.18509 201.678 129.663 +2.0996 202.374 130.111 +2.04281e-14 201.961 129.845 +-2.10397 202.795 130.381 +-4.17462 201.174 129.339 +-6.30864 202.648 130.287 +-8.37937 201.838 129.766 +-10.5297 202.861 130.424 +-12.5816 201.937 129.829 +-14.7188 202.424 130.142 +-16.7625 201.637 129.637 +-18.9243 202.261 130.037 +-20.9522 201.444 129.512 +-23.1276 202.036 129.893 +-25.1182 201.022 129.241 +-27.3273 201.749 129.709 +-29.4314 201.625 129.629 +-31.6395 202.151 129.967 +-33.5964 201.079 129.278 +-35.9029 202.072 129.916 +-37.8415 200.97 129.208 +-40.0901 201.514 129.558 +-42.0229 200.466 128.884 +-44.4472 201.722 129.691 +-46.3857 200.728 129.052 +-48.8053 201.781 129.729 +-50.7928 201.003 129.229 +-53.0493 201.28 129.407 +-55.1355 200.883 129.152 +-57.3809 201.043 129.255 +-59.5128 200.778 129.084 +-62.0442 201.799 129.741 +-63.9024 200.604 128.973 +-66.5424 201.83 129.761 +-68.3305 200.445 128.87 +-70.9754 201.548 129.579 +-72.976 200.778 129.085 +-75.4772 201.358 129.457 +-77.4706 200.556 128.942 +-80.1512 201.496 129.546 +-82.2385 200.9 129.162 +-84.8203 201.477 129.534 +-86.9073 200.847 129.129 +-89.6531 201.699 129.676 +-91.6705 200.876 129.147 +-94.3741 201.526 129.565 +-96.4612 200.826 129.115 +-99.2681 201.586 129.604 +-101.356 200.85 129.131 +-103.874 200.947 129.193 +-105.955 200.177 128.698 +-109.106 201.382 129.472 +-111.233 200.649 129.001 +-113.698 200.508 128.911 +-116.256 200.498 128.904 +-118.733 200.314 128.786 +-121.215 200.11 128.655 +-124.164 200.63 128.989 +-126.147 199.562 128.303 +-129.405 200.476 128.89 +-131.868 200.108 128.654 +-137.928 205.062 131.839 +-140.4 204.552 131.511 +-143.532 204.963 131.775 +-142.872 200.008 128.589 +-143.06 196.37 126.25 +-143.396 193.03 124.103 +-146.683 193.672 124.516 +-149.503 193.646 124.499 +-159.344 202.502 130.193 +-491.363 612.76 393.956 +-492.264 602.475 387.344 +-495.341 595.049 382.569 +-496.327 585.296 376.299 +-142.832 165.363 106.316 +-142.817 162.348 104.377 +-143.593 160.285 103.051 +-142.755 156.489 100.61 +-142.71 153.646 98.7822 +-142.805 151.012 97.089 +-150.219 156.038 100.32 +-151.959 155.059 99.6908 +-516.287 517.551 332.744 +-517.155 509.328 327.458 +-519.992 503.164 323.495 +-521.151 495.485 318.558 +-524.665 490.141 315.121 +-525.879 482.736 310.361 +-528.753 476.95 306.641 +-529.551 469.39 301.781 +-532.595 463.912 298.258 +-533.462 456.625 293.573 +-536.977 451.68 290.395 +-538.219 444.891 286.03 +-553.1 449.28 288.851 +-564.414 450.53 289.655 +-565.044 443.214 284.952 +-564.976 435.47 279.972 +-569.323 431.193 277.223 +-570.33 424.434 272.877 +-574.032 419.734 269.856 +-574.563 412.774 265.381 +-578.287 408.162 262.416 +-585.895 406.256 261.19 +-583.947 397.757 255.726 +-583.826 390.629 251.143 +-592.82 389.591 250.476 +-595.65 384.456 247.175 +-589.074 373.387 240.059 +-582.877 362.795 233.248 +-576.101 352.075 226.356 +-576.964 346.172 222.561 +-580.533 341.924 219.83 +-581.091 335.934 215.979 +-584.554 331.656 213.229 +-585.471 325.96 209.566 +-588.327 321.375 206.618 +-589.784 316.05 203.195 +-592.616 311.486 200.261 +-593.523 305.937 196.693 +-381.868 193.002 124.085 +-381.788 189.167 121.619 +-382.87 185.937 119.543 +-378.866 180.303 115.921 +-379.148 176.781 113.656 +-381.319 174.152 111.966 +-382.934 171.267 110.111 +-381.415 167.013 107.376 +-382.064 163.748 105.277 +-382.674 160.487 103.181 +-135.988 55.7901 35.8686 +-381.523 153.071 98.4123 +-383.549 150.442 96.7223 +-382.821 146.749 94.3477 +-382.319 143.18 92.0536 +-384.248 140.537 90.3539 +-608.546 217.28 139.694 +-382.301 133.2 85.6371 +-381.629 129.696 83.3842 +-381.192 126.304 81.2037 +-381.461 123.169 79.1881 +-625.978 196.867 126.57 +-382.361 117.062 75.2614 +-380.733 113.409 72.9127 +-382.746 110.856 71.2714 +-382.459 107.642 69.205 +-378.045 103.322 66.4281 +-376.623 99.8862 64.2189 +-377.645 97.118 62.4392 +-378.254 94.2463 60.5929 +-376.622 90.8404 58.4032 +-381.309 88.9487 57.1869 +-379.995 85.6455 55.0632 +-382.322 83.1692 53.4712 +-380.841 79.8712 51.3508 +-382.239 77.1905 49.6274 +-381.271 74.0412 47.6026 +-381.341 71.1123 45.7195 +-380.597 68.048 43.7495 +-380.995 65.2015 41.9194 +-380.773 62.2579 40.0269 +-380.52 59.3225 38.1396 +-381.121 56.5271 36.3424 +-379.819 53.4636 34.3728 +-381.248 50.792 32.6552 +-381.562 47.9667 30.8388 +-380.758 45.0119 28.9391 +-381.211 42.2153 27.1411 +-381.237 39.3744 25.3146 +-380.935 36.5079 23.4717 +-381.3 33.7103 21.673 +-380.938 30.8537 19.8365 +-380.945 28.0343 18.0238 +-381.022 25.2238 16.2169 +-380.571 22.3849 14.3917 +-380.788 19.5905 12.5951 +-380.078 16.755 10.7722 +-380.537 13.9754 8.9851 +-379.669 11.1523 7.17003 +-148.549 3.272 2.10363 +-146.578 2.15211 1.38364 +-146.294 1.07389 0.690428 +96.5 -3.55271e-15 -1.7053e-13 +96.4963 0.712425 0.449001 +96.4853 1.4248 0.897969 +96.6669 2.14149 1.34966 +96.6411 2.85506 1.79938 +96.608 3.56841 2.24897 +96.5675 4.28151 2.69839 +96.5196 4.99426 3.1476 +96.4644 5.70664 3.59657 +96.2025 6.40531 4.0369 +96.332 7.13004 4.49366 +96.2548 7.84095 4.94171 +96.1703 8.55127 5.38938 +96.9726 9.3471 5.89095 +95.9792 9.96993 6.28348 +96.765 10.7775 6.79246 +96.6502 11.4915 7.24241 +96.3301 12.1795 7.67605 +96.2008 12.8902 8.12398 +95.9656 13.586 8.56247 +95.8218 14.294 9.00869 +96.4573 15.1242 9.53191 +96.2976 15.8357 9.98037 +96.1306 16.546 10.428 +95.9563 17.2551 10.8749 +95.8723 17.9812 11.3325 +95.6831 18.6883 11.7782 +95.3895 19.3742 12.2105 +95.283 20.0981 12.6667 +96.0402 21.0127 13.2431 +96.5926 21.8961 13.7998 +96.4594 22.631 14.263 +96.1262 23.3189 14.6965 +96.7449 24.2439 15.2795 +96.2999 24.9077 15.6979 +96.23 25.6686 16.1775 +96.6273 26.5611 16.7399 +95.4962 27.0319 17.0366 +96.0647 27.9837 17.6365 +96.5265 28.9178 18.2252 +96.2245 29.6293 18.6737 +96.8519 30.6348 19.3074 +96.5322 31.3487 19.7573 +97.0426 32.3392 20.3816 +96.7053 33.0544 20.8323 +96.3606 33.7671 21.2815 +96.8371 34.7747 21.9165 +96.5664 35.522 22.3875 +96.2877 36.268 22.8576 +96.0919 37.0476 23.349 +96.6124 38.1132 24.0206 +96.7571 39.0435 24.6069 +95.6317 39.4597 24.8692 +96.8319 40.8436 25.7414 +96.3178 41.5186 26.1668 +96.6842 42.5796 26.8355 +96.153 43.2521 27.2593 +96.582 44.3639 27.9601 +96.0332 45.0343 28.3826 +96.3484 46.1165 29.0646 +95.869 46.826 29.5118 +95.9855 47.8326 30.1462 +96.0885 48.8444 30.7839 +96.3483 49.9497 31.4805 +95.8294 50.6592 31.9276 +96.0623 51.7738 32.6301 +96.1116 52.8035 33.2791 +95.4799 53.4644 33.6956 +95.6709 54.5931 34.4069 +95.8459 55.7285 35.1225 +95.8408 56.7736 35.7812 +95.4143 57.5773 36.2877 +95.3022 58.5779 36.9183 +95.5786 59.8328 37.7092 +95.6765 60.9943 38.4412 +95.5197 62.0074 39.0797 +95.5069 63.1269 39.7853 +95.4782 64.2509 40.4937 +95.5112 65.4325 41.2384 +95.6814 66.727 42.0543 +95.4491 67.7571 42.7035 +95.4309 68.9537 43.4576 +95.5462 70.2662 44.2848 +95.2672 71.3053 44.9397 +95.1969 72.5153 45.7023 +95.1825 73.7869 46.5037 +95.0028 74.9484 47.2357 +95.4593 76.6369 48.2999 +95.3125 77.8676 49.0755 +95.1476 79.102 49.8535 +94.9644 80.3398 50.6336 +95.3938 82.124 51.7581 +95.1682 83.3728 52.5452 +94.9241 84.6244 53.334 +95.207 86.3739 54.4366 +94.9204 87.6345 55.231 +94.6151 88.8984 56.0276 +94.8209 90.6708 57.1446 +94.4725 91.9414 57.9455 +94.6895 93.7933 59.1126 +94.4255 95.2019 60.0004 +94.7757 97.2662 61.3013 +93.0765 97.2391 61.2843 +91.7587 97.591 61.5061 +89.0246 96.3982 60.7543 +89.0009 98.1257 61.8431 +89.2492 100.198 63.1494 +87.8553 100.445 63.305 +88.0502 102.527 64.6172 +88.0346 104.413 65.8057 +88.5602 106.999 67.4356 +93.8535 115.528 72.8107 +93.6648 117.479 74.0402 +93.9949 120.141 75.7181 +92.9699 121.114 76.3313 +90.1589 119.727 75.4569 +89.3974 121.034 76.2806 +87.9365 121.4 76.5115 +87.6595 123.423 77.7863 +88.0072 126.397 79.661 +92.85 136.054 85.7473 +92.7726 138.723 87.429 +93.1319 142.14 89.5825 +93.0937 145.052 91.4183 +92.9084 147.826 93.1661 +93.1347 151.358 95.3921 +92.7503 154 97.0573 +92.8091 157.479 99.2502 +92.7155 160.82 101.356 +92.5599 164.171 103.468 +92.7224 168.222 106.021 +92.4766 171.671 108.194 +92.3292 175.439 110.569 +92.2705 179.528 113.146 +90.4152 180.202 113.571 +90.1602 184.145 116.056 +87.2459 182.686 115.136 +91.4787 196.468 123.823 +91.778 202.27 127.479 +90.0033 203.653 128.351 +87.523 203.435 128.213 +85.1207 203.356 128.164 +82.6943 203.177 128.051 +80.405 203.298 128.127 +78.1504 203.481 128.243 +75.7779 203.325 128.144 +73.3561 202.986 127.931 +71.1742 203.277 128.114 +68.744 202.819 127.825 +66.6225 203.237 128.089 +64.0577 202.25 127.467 +62.1443 203.288 128.121 +59.6337 202.344 127.526 +57.5209 202.695 127.747 +55.2705 202.535 127.646 +53.1143 202.687 127.742 +50.8968 202.575 127.672 +48.8053 202.943 127.904 +46.5574 202.631 127.707 +44.4472 202.884 127.866 +42.1097 202.038 127.333 +40.1066 202.758 127.787 +37.8571 202.211 127.442 +35.7994 202.651 127.719 +33.5964 202.237 127.458 +31.6265 203.232 128.085 +29.3705 202.366 127.54 +27.3159 202.827 127.831 +25.1705 202.601 127.688 +23.0413 202.442 127.587 +20.9348 202.436 127.584 +18.791 201.992 127.304 +16.6857 201.87 127.227 +14.6089 202.07 127.353 +12.4978 201.748 127.15 +10.425 202.002 127.31 +8.34098 202.07 127.353 +6.26414 202.378 127.547 +4.16589 201.909 127.252 +2.0839 202.017 127.32 +1.86517e-14 201.094 126.738 +-2.08215 201.848 127.213 +-4.16414 201.825 127.199 +-6.26153 202.294 127.494 +-8.33051 201.817 127.194 +-10.4338 202.17 127.416 +-12.5031 201.832 127.204 +-14.6211 202.239 127.459 +-16.6718 201.701 127.121 +-18.791 201.992 127.304 +-20.8477 201.593 127.053 +-23.0221 202.273 127.481 +-25.045 201.59 127.051 +-27.2254 202.155 127.407 +-29.1877 201.107 126.746 +-31.3654 201.554 127.028 +-33.332 200.645 126.455 +-35.5186 201.061 126.717 +-37.4348 199.955 126.02 +-39.7765 201.09 126.735 +-41.8666 200.871 126.598 +-44.101 201.304 126.87 +-46.0422 200.389 126.294 +-48.2869 200.788 126.545 +-50.4186 200.672 126.472 +-52.7896 201.448 126.961 +-54.7306 200.556 126.399 +-56.9607 200.72 126.502 +-59.3434 201.36 126.905 +-61.6185 201.569 127.037 +-63.6177 200.861 126.591 +-65.9544 201.199 126.804 +-67.8344 200.135 126.134 +-70.4642 201.249 126.836 +-72.5082 200.64 126.452 +-74.8757 200.904 126.619 +-76.9452 200.343 126.265 +-79.7704 201.694 127.116 +-81.5874 200.457 126.337 +-84.3196 201.442 126.957 +-86.3259 200.652 126.46 +-88.9527 201.276 126.853 +-91.0971 200.769 126.533 +-93.861 201.585 127.047 +-95.8244 200.649 126.458 +-98.5793 201.34 126.893 +-100.77 200.838 126.577 +-103.156 200.707 126.494 +-105.589 200.634 126.448 +-107.986 200.463 126.34 +-110.43 200.348 126.268 +-112.88 200.212 126.182 +-115.335 200.056 126.084 +-118.242 200.635 126.449 +-120.398 199.905 125.989 +-123.241 200.284 126.228 +-125.678 199.964 126.026 +-128.594 200.367 126.28 +-130.608 199.337 125.631 +-136.845 204.623 128.963 +-139.4 204.265 128.736 +-142.466 204.612 128.956 +-143.232 201.667 127.1 +-143.008 197.429 124.428 +-142.866 193.424 121.904 +-144.319 191.648 120.785 +-148.795 193.839 122.166 +-158.185 202.187 127.427 +-492.873 618.183 389.606 +-494.359 608.524 383.518 +-143.509 173.389 109.277 +-142.388 168.879 106.435 +-143.067 166.59 104.992 +-142.995 163.487 103.036 +-142.63 160.128 100.92 +-142.146 156.72 98.7714 +-144.434 156.397 98.5683 +-148.345 157.775 99.4369 +-513.588 536.557 338.161 +-515.414 528.958 333.372 +-518.28 522.541 329.328 +-519.234 514.321 324.147 +-521.829 507.85 320.069 +-523.602 500.683 315.552 +-526.271 494.472 311.638 +-527.028 486.576 306.661 +-530.663 481.429 303.417 +-531.892 474.18 298.849 +-534.401 468.166 295.058 +-535.915 461.366 290.773 +-538.815 455.837 287.288 +-541.214 449.944 283.574 +-568.35 464.326 292.639 +-564.124 452.891 285.431 +-565.995 446.517 281.414 +-568.146 440.435 277.581 +-570.81 434.809 274.035 +-572.876 428.784 270.238 +-575.768 423.428 266.863 +-576.388 416.47 262.477 +-580.125 411.818 259.545 +-580.879 405.098 255.31 +-588.533 403.189 254.107 +-590.791 397.565 250.563 +-592.899 391.887 246.984 +-590.572 383.374 241.619 +-579.41 369.377 232.798 +-575.079 360.003 226.889 +-577.557 354.998 223.735 +-578.429 349.05 219.986 +-581.762 344.621 217.195 +-583.317 339.163 213.755 +-586.047 334.417 210.764 +-587.723 329.098 207.412 +-589.837 324.056 204.234 +-591.639 318.87 200.966 +-594.906 314.49 198.205 +-595.825 308.893 194.678 +-382.554 194.462 122.558 +-381.702 190.214 119.881 +-381.744 186.458 117.514 +-380.084 181.924 114.657 +-377.923 177.225 111.695 +-380.528 174.792 110.161 +-380.992 171.38 108.011 +-382.834 168.6 106.259 +-382.331 164.806 103.868 +-380.526 160.505 101.157 +-135.718 56 35.2936 +-135.298 54.5953 34.4083 +-381.827 150.629 94.933 +-383.367 147.804 93.1527 +-382.684 144.143 90.8451 +-383.973 141.245 89.0184 +-609.282 218.796 137.895 +-384.334 134.68 84.8809 +-382.185 130.633 82.3307 +-381.936 127.28 80.2171 +-381.741 123.97 78.1313 +-381.319 120.613 76.0156 +-382.737 117.852 74.2753 +-382.43 114.569 72.2066 +-383.597 111.742 70.4247 +-379.804 107.51 67.7577 +-376.428 103.473 65.2133 +-376.909 100.538 63.3632 +-378.505 97.8998 61.7007 +-375.186 94.0201 59.2555 +-376.622 91.3636 57.5813 +-379.574 89.0541 56.1257 +-381.83 86.555 54.5507 +-381.741 83.5211 52.6386 +-381.229 80.4131 50.6798 +-381.363 77.4574 48.817 +-380.394 74.2964 46.8248 +-381.439 71.5402 45.0877 +-381.184 68.5455 43.2003 +-381.681 65.695 41.4038 +-381.068 62.6649 39.4941 +-381.011 59.7413 37.6515 +-381.121 56.8526 35.831 +-381.397 53.9949 34.0299 +-380.853 51.0316 32.1623 +-380.079 48.0554 30.2866 +-380.758 45.2712 28.5318 +-380.417 42.3701 26.7034 +-381.435 39.6218 24.9714 +-381.234 36.7469 23.1595 +-380.604 33.8425 21.329 +-381.635 31.0882 19.5931 +-380.347 28.1515 17.7423 +-381.221 25.3823 15.997 +-380.172 22.4902 14.1743 +-379.89 19.6569 12.3886 +-380.378 16.8648 10.6289 +-380.737 14.0633 8.86329 +-379.868 11.2224 7.07286 +-148.249 3.2842 2.06985 +-146.578 2.1645 1.36416 +-145.994 1.07786 0.679315 +96.5 -3.55271e-15 -1.7053e-13 +96.4963 0.716447 0.442555 +96.4853 1.43284 0.885078 +96.6669 2.15357 1.33028 +96.6411 2.87118 1.77355 +96.608 3.58856 2.21668 +96.5675 4.30568 2.65965 +96.5196 5.02245 3.10241 +96.4644 5.73886 3.54494 +96.2025 6.44147 3.97895 +96.332 7.17029 4.42915 +96.2548 7.88522 4.87077 +97.1648 8.68845 5.36693 +96.7739 9.38064 5.79451 +96.8725 10.1195 6.25088 +96.765 10.8384 6.69495 +96.6502 11.5563 7.13845 +96.3301 12.2483 7.56586 +96.1021 12.9497 7.99916 +95.9656 13.6627 8.43956 +96.6096 14.4929 8.95237 +95.5724 15.07 9.30889 +96.1013 15.8926 9.81702 +96.1306 16.6394 10.2783 +95.7607 17.3172 10.697 +95.7746 18.0642 11.1584 +95.5857 18.7746 11.5973 +96.4591 19.7021 12.1701 +96.1563 20.3969 12.5993 +95.9434 21.11 13.0398 +95.7232 21.8215 13.4793 +96.363 22.7359 14.0442 +96.1262 23.4505 14.4856 +96.7449 24.3807 15.0602 +96.4911 25.0981 15.5033 +96.23 25.8135 15.9452 +95.7714 26.4744 16.3535 +96.3497 27.4274 16.9422 +96.0647 28.1417 17.3834 +96.5265 29.081 17.9636 +96.2245 29.7966 18.4056 +95.8216 30.48 18.8278 +96.1588 31.4037 19.3983 +96.8565 32.4594 20.0505 +96.7053 33.241 20.5333 +96.3606 33.9577 20.976 +96.1007 34.705 21.4376 +95.8328 35.4512 21.8985 +96.2877 36.4727 22.5295 +95.9099 37.1862 22.9703 +96.4311 38.2564 23.6313 +96.8474 39.3005 24.2763 +96.4406 40.018 24.7195 +96.0265 40.7325 25.1608 +96.3178 41.7529 25.7912 +96.6842 42.82 26.4503 +96.2413 43.5362 26.8927 +96.582 44.6144 27.5587 +96.0332 45.2885 27.9751 +96.3484 46.3768 28.6474 +96.4752 47.3881 29.2721 +95.9855 48.1026 29.7134 +96.0885 49.1201 30.342 +96.3483 50.2317 31.0286 +95.8294 50.9451 31.4693 +95.8936 51.9747 32.1052 +96.0278 53.0553 32.7727 +95.5633 53.8132 33.2409 +95.6709 54.9012 33.913 +95.9283 56.0913 34.6481 +96.0046 57.1918 35.3279 +95.4143 57.9023 35.7668 +95.3022 58.9086 36.3883 +95.4178 60.0694 37.1054 +95.4369 61.1851 37.7946 +95.5197 62.3574 38.5187 +95.5069 63.4833 39.2142 +95.4782 64.6136 39.9124 +95.589 65.8554 40.6795 +95.6043 67.0496 41.4172 +94.9129 67.7569 41.854 +95.4309 69.343 42.8338 +95.3953 70.5512 43.5801 +95.2672 71.7078 44.2945 +95.1969 72.9246 45.0462 +95.1088 74.1459 45.8006 +95.6611 75.8937 46.8802 +94.879 76.601 47.3171 +95.3125 78.3072 48.371 +95.1476 79.5485 49.1378 +94.9644 80.7933 49.9067 +95.3938 82.5876 51.0151 +95.1682 83.8435 51.7909 +94.9929 85.1642 52.6067 +94.6614 86.3638 53.3477 +94.8529 88.0671 54.3998 +94.5482 89.3364 55.1839 +94.8209 91.1826 56.3243 +94.3413 92.332 57.0343 +94.6895 94.3228 58.264 +94.4898 95.8049 59.1795 +94.5212 97.5523 60.259 +92.3842 97.0606 59.9552 +89.8911 96.1452 59.3897 +88.9015 96.8088 59.7996 +88.3313 97.9377 60.497 +89.3093 100.832 62.2849 +88.2717 101.491 62.6916 +88.0502 103.106 63.6896 +87.9184 104.864 64.7754 +87.8719 106.767 65.951 +91.1348 112.814 69.6865 +93.553 118.001 72.8901 +93.7189 120.465 74.412 +93.7324 122.797 75.8525 +91.6633 122.412 75.615 +90.2982 122.943 75.9429 +88.041 122.231 75.503 +87.814 124.338 76.8048 +89.479 129.237 79.8308 +93.4 137.633 85.0173 +92.7726 139.506 86.174 +93.1319 142.942 88.2966 +92.6642 145.198 89.6903 +92.9084 148.66 91.8287 +93.0423 152.061 93.9297 +92.7503 154.869 95.664 +92.8538 158.445 97.8728 +92.3648 161.116 99.523 +92.5599 165.098 101.982 +92.3421 168.477 104.07 +92.4766 172.64 106.641 +92.2885 176.351 108.934 +92.111 180.229 111.329 +90.4543 181.297 111.989 +89.3948 183.612 113.419 +87.4332 184.112 113.728 +91.7353 198.132 122.388 +91.348 202.459 125.061 +89.513 203.686 125.819 +86.9757 203.304 125.583 +84.7202 203.541 125.729 +82.206 203.116 125.467 +80.0877 203.639 125.79 +77.5324 203.012 125.402 +75.2667 203.093 125.452 +72.976 203.075 125.441 +70.7482 203.201 125.519 +68.3856 202.9 125.333 +66.382 203.646 125.794 +63.7989 202.57 125.129 +61.7187 203.036 125.417 +59.4402 202.826 125.288 +57.3575 203.259 125.555 +55.068 202.932 125.353 +53.0061 203.416 125.652 +50.7097 202.969 125.376 +48.4464 202.588 125.14 +46.3666 202.939 125.358 +44.3015 203.36 125.617 +41.8839 202.09 124.833 +39.958 203.148 125.486 +37.732 202.68 125.197 +35.6664 203.037 125.418 +33.4711 202.62 125.16 +31.3654 202.692 125.205 +29.1999 202.326 124.979 +27.1008 202.366 125.003 +25.0137 202.475 125.071 +22.9742 202.991 125.39 +20.7256 201.544 124.496 +18.7282 202.454 125.057 +16.616 202.161 124.877 +14.5601 202.531 125.105 +12.4612 202.292 124.958 +10.3858 202.376 125.01 +8.27816 201.681 124.58 +6.22226 202.16 124.876 +4.13797 201.688 124.584 +2.07081 201.881 124.704 +1.95399e-14 202.144 124.866 +-2.0743 202.221 124.914 +-4.13797 201.688 124.584 +-6.23011 202.415 125.033 +-8.27118 201.511 124.475 +-10.3771 202.207 124.905 +-12.4141 201.527 124.485 +-14.5296 202.107 124.843 +-16.602 201.991 124.772 +-18.7203 202.369 125.005 +-20.7431 201.714 124.6 +-22.8976 202.314 124.971 +-24.8778 201.375 124.391 +-27.0442 201.943 124.742 +-29.1146 201.735 124.613 +-31.2741 202.101 124.84 +-33.318 201.693 124.588 +-35.3856 201.438 124.43 +-37.3566 200.664 123.952 +-39.6279 201.469 124.449 +-41.7277 201.335 124.366 +-43.773 200.934 124.119 +-45.8323 200.602 123.913 +-48.0277 200.837 124.059 +-50.0028 200.14 123.628 +-52.4433 201.257 124.318 +-54.5506 201.025 124.175 +-56.8206 201.357 124.38 +-58.9322 201.092 124.217 +-61.3681 201.883 124.705 +-63.2036 200.68 123.962 +-65.6872 201.514 124.477 +-67.6138 200.61 123.919 +-70.1518 201.487 124.46 +-72.2158 200.959 124.134 +-74.2443 200.334 123.748 +-76.6671 200.746 124.003 +-79.2944 201.622 124.543 +-81.2944 200.864 124.076 +-83.7855 201.296 124.342 +-85.9839 200.986 124.151 +-88.7426 201.934 124.736 +-90.7746 201.188 124.275 +-93.1646 201.218 124.294 +-95.5247 201.15 124.252 +-97.8904 201.062 124.198 +-100.34 201.111 124.228 +-102.917 201.372 124.39 +-104.816 200.29 123.721 +-107.571 200.82 124.048 +-109.669 200.091 123.598 +-112.493 200.652 123.944 +-114.985 200.573 123.896 +-117.395 200.321 123.74 +-119.944 200.276 123.712 +-122.825 200.736 123.996 +-124.832 199.741 123.382 +-127.735 200.152 123.636 +-130.171 199.792 123.413 +-135.81 204.223 126.151 +-139.1 204.975 126.615 +-142.06 205.181 126.742 +-143.387 203.025 125.41 +-143.06 198.616 122.687 +-143.237 195.02 120.466 +-144.749 193.304 119.406 +-147.652 193.435 119.487 +-154.156 198.149 122.398 +-494.103 623.225 384.971 +-495.266 613.082 378.706 +-142.247 172.835 106.762 +-142.795 170.317 105.207 +-143.537 168.081 103.825 +-142.995 164.41 101.557 +-142.57 160.964 99.4289 +-142.937 158.481 97.8954 +-148.436 161.638 99.8451 +-150.337 160.796 99.3254 +-515.288 541.371 334.41 +-516.814 533.389 329.479 +-519.244 526.469 325.204 +-521.247 519.229 320.733 +-523.798 512.643 316.664 +-524.795 504.656 311.731 +-527.944 498.844 308.14 +-529.46 491.581 303.654 +-532.232 485.578 299.946 +-533.337 478.152 295.359 +-536.693 472.828 292.07 +-537.808 465.609 287.611 +-543.694 462.561 285.728 +-560.9 468.943 289.67 +-563.171 462.692 285.809 +-564.849 456.034 281.696 +-569.139 451.532 278.916 +-570.063 444.416 274.52 +-572.073 438.231 270.699 +-574.075 432.107 266.916 +-576.749 426.544 263.48 +-578.745 420.534 259.767 +-581.964 415.455 256.63 +-583.503 409.224 252.781 +-585.735 403.538 249.269 +-587.269 397.427 245.494 +-593.845 394.727 243.826 +-587.954 383.829 237.095 +-575.177 368.749 227.779 +-575.803 362.491 223.914 +-578.69 357.702 220.956 +-580.464 352.255 217.591 +-582.745 347.152 214.439 +-584.553 341.8 211.133 +-588.036 337.448 208.445 +-588.473 331.378 204.695 +-591.347 326.719 201.817 +-592.904 321.356 198.505 +-595.415 316.536 195.527 +-597.104 311.303 192.295 +-381.868 195.209 120.583 +-380.754 190.813 117.867 +-382.264 187.766 115.985 +-379.562 182.7 112.856 +-378.71 178.597 110.321 +-380.616 175.818 108.605 +-381.61 172.627 106.633 +-381.237 168.845 104.297 +-381.796 165.505 102.234 +-381.063 161.639 99.8462 +-133.651 55.4584 34.2572 +-136.11 55.2332 34.1181 +-381.737 151.444 93.5482 +-382.002 148.11 91.4886 +-382.319 144.818 89.4554 +-381.956 141.296 87.2797 +-609.927 220.264 136.059 +-3027.09 1066.75 658.942 +-381.351 131.084 80.9717 +-381.192 127.749 78.9116 +-380.901 124.395 76.84 +-381.413 121.324 74.9428 +-381.985 118.284 73.0651 +-381.016 114.791 70.9073 +-380.76 111.542 68.9003 +-378.097 107.631 66.4844 +-377.569 104.373 64.4721 +-377.481 101.258 62.5482 +-377.262 98.1292 60.6153 +-376.912 94.9856 58.6734 +-376.334 91.8088 56.7111 +-377.55 89.0795 55.0252 +-380.865 86.8232 53.6315 +-380.676 83.7582 51.7382 +-380.841 80.7847 49.9014 +-381.363 77.8946 48.1162 +-381.563 74.9454 46.2944 +-381.732 71.9993 44.4746 +-380.988 68.8971 42.5583 +-380.603 65.8793 40.6942 +-381.657 63.116 38.9873 +-379.831 59.8925 36.9961 +-381.121 57.1736 35.3166 +-381.002 54.2436 33.5068 +-381.544 51.4128 31.7582 +-380.277 48.3518 29.8673 +-380.758 45.5267 28.1223 +-380.814 42.6537 26.3476 +-380.84 39.7833 24.5745 +-381.532 36.9832 22.8448 +-381.001 34.0692 21.0448 +-380.938 31.2066 19.2766 +-380.746 28.3401 17.5059 +-380.623 25.4855 15.7426 +-381.768 22.7121 14.0295 +-380.19 19.7834 12.2204 +-381.077 16.9912 10.4956 +-381.437 14.1687 8.75214 +-380.768 11.3125 6.98783 +-148.849 3.31611 2.04839 +-147.378 2.1886 1.35192 +-145.994 1.08395 0.669563 +96.6 3.55271e-15 -1.7053e-13 +96.4963 0.72041 0.436074 +96.5853 1.44226 0.873017 +97.3666 2.18116 1.32029 +96.6411 2.88706 1.74758 +96.608 3.60841 2.18422 +96.5675 4.32949 2.6207 +96.5196 5.05024 3.05698 +96.4644 5.7706 3.49303 +96.4019 6.49052 3.9288 +97.129 7.2696 4.40039 +96.2548 7.92884 4.79943 +96.0708 8.63813 5.22878 +96.9726 9.45187 5.72135 +95.9792 10.0817 6.10257 +96.8642 10.9094 6.60363 +96.5511 11.6084 7.0267 +96.2312 12.3034 7.44744 +96.1021 13.0214 7.88201 +95.9656 13.7383 8.31595 +96.5112 14.5581 8.81225 +95.5724 15.1534 9.17256 +96.1995 15.9969 9.68314 +95.9346 16.6974 10.1071 +95.9563 17.4485 10.5618 +95.7746 18.1642 10.995 +95.5857 18.8785 11.4274 +96.4591 19.8111 11.9919 +96.2533 20.5304 12.4274 +95.7498 21.1839 12.8229 +95.8198 21.9643 13.2953 +96.363 22.8617 13.8385 +96.1262 23.5802 14.2734 +95.6902 24.2483 14.6779 +96.3955 25.212 15.2611 +96.0393 25.9049 15.6806 +95.8665 26.6473 16.13 +96.3497 27.5792 16.694 +95.9701 28.2695 17.1119 +96.5265 29.2419 17.7005 +96.2245 29.9614 18.1361 +96.8519 30.9782 18.7515 +96.1588 31.5774 19.1143 +95.833 32.2941 19.548 +96.5198 33.3608 20.1937 +96.3606 34.1456 20.6688 +96.8371 35.1645 21.2855 +96.5664 35.9202 21.743 +96.379 36.7093 22.2206 +95.9099 37.392 22.6339 +96.5218 38.5042 23.3071 +96.2156 39.2602 23.7647 +96.5305 40.277 24.3802 +95.937 40.9197 24.7693 +96.3178 41.9839 25.4134 +96.5955 43.0173 26.039 +96.153 43.7369 26.4745 +96.4941 44.8204 27.1304 +96.0332 45.539 27.5654 +96.3484 46.6334 28.2278 +95.869 47.3509 28.6621 +95.9855 48.3687 29.2783 +96.0885 49.3919 29.8976 +96.3483 50.5096 30.5741 +95.8294 51.227 31.0084 +95.8936 52.2622 31.635 +96.1116 53.3954 32.3209 +96.3138 54.5358 33.0113 +95.6709 55.205 33.4163 +95.8459 56.3531 34.1113 +95.9227 57.4591 34.7808 +95.4143 58.2227 35.243 +95.5449 59.3853 35.9467 +95.4178 60.4017 36.562 +95.4369 61.5235 37.241 +95.5197 62.7024 37.9546 +95.4281 63.7817 38.608 +94.8521 64.545 39.07 +95.5112 66.1659 40.0511 +95.5271 67.3661 40.7776 +94.9129 68.1317 41.2411 +95.4309 69.7266 42.2065 +95.3953 70.9415 42.9419 +95.2672 72.1045 43.6458 +95.1225 73.2708 44.3518 +95.1825 74.6139 45.1648 +95.0028 75.7884 45.8758 +95.3142 77.3781 46.838 +95.2406 78.681 47.6267 +95.1476 79.9886 48.4182 +94.9644 81.2402 49.1758 +94.7629 82.4953 49.9355 +95.1682 84.3073 51.0324 +94.9241 85.5729 51.7985 +94.5932 86.7791 52.5286 +94.9204 88.6167 53.6409 +94.5482 89.8306 54.3757 +94.8872 91.7503 55.5377 +94.4725 92.972 56.2772 +94.6895 94.8446 57.4107 +94.6183 96.4657 58.392 +94.076 97.63 59.0968 +92.3842 97.5975 59.0771 +90.4514 97.2793 58.8845 +89.394 97.8833 59.2501 +88.0269 98.1399 59.4054 +88.7075 100.706 60.9589 +88.1527 101.915 61.6906 +88.109 103.746 62.7988 +87.8604 105.375 63.7848 +87.8719 107.358 64.9851 +89.0957 110.9 67.1295 +92.3787 117.164 70.921 +93.4429 120.774 73.1063 +93.569 123.261 74.6117 +92.6305 124.388 75.2936 +90.9341 124.494 75.3579 +88.459 123.49 74.7504 +88.123 125.466 75.9461 +91.1031 132.31 80.0893 +92.85 137.579 83.2786 +93.265 141.022 85.3624 +93.1319 143.733 87.0034 +93.1891 146.829 88.8775 +93.0023 149.634 90.5755 +92.7191 152.371 92.2325 +92.7503 155.726 94.263 +92.8538 159.321 96.4394 +92.321 161.931 98.0188 +92.5599 166.011 100.489 +92.3421 169.409 102.546 +92.4766 173.595 105.079 +92.4106 177.562 107.481 +91.792 180.598 109.318 +90.1807 181.749 110.015 +89.0504 183.917 111.328 +87.3957 185.051 112.014 +91.6253 198.988 120.45 +91.0613 202.94 122.842 +89.1278 203.932 123.443 +86.7363 203.866 123.403 +84.353 203.781 123.351 +82.206 204.24 123.629 +79.8973 204.279 123.653 +77.5633 204.216 123.615 +75.1464 203.89 123.418 +72.5959 203.134 122.96 +70.4074 203.34 123.085 +67.917 202.625 122.652 +65.901 203.289 123.054 +63.6177 203.113 122.947 +61.4683 203.331 123.079 +59.2225 203.201 123 +57.1241 203.552 123.213 +54.8656 203.304 123.063 +52.8329 203.873 123.407 +50.5433 203.423 123.135 +48.267 202.954 122.851 +46.233 203.474 123.166 +43.9552 202.887 122.81 +41.9187 203.376 123.106 +39.8095 203.512 123.189 +37.5912 203.042 122.904 +35.5334 203.398 123.12 +33.332 202.894 122.814 +31.261 203.135 122.96 +29.1146 202.851 122.788 +27.0442 203.06 122.915 +24.9091 202.745 122.724 +22.8209 202.752 122.729 +20.7082 202.489 122.569 +18.6027 202.209 122.4 +16.5741 202.767 122.738 +14.5051 202.883 122.808 +12.3879 202.215 122.404 +10.3116 202.043 122.3 +8.25024 202.112 122.341 +6.20132 202.594 122.633 +4.124 202.119 122.346 +2.06295 202.228 122.411 +1.68754e-14 202.663 122.675 +-2.06819 202.741 122.722 +-4.13622 202.718 122.708 +-6.20394 202.68 122.685 +-8.27118 202.626 122.652 +-10.3334 202.471 122.558 +-12.4089 202.556 122.61 +-14.4685 202.371 122.498 +-16.5183 202.084 122.324 +-18.6419 202.636 122.658 +-20.7431 202.829 122.775 +-22.7921 202.497 122.574 +-24.8778 202.489 122.569 +-26.9424 202.296 122.452 +-28.9683 201.832 122.172 +-31.1827 202.626 122.652 +-33.2485 202.385 122.507 +-35.2821 201.96 122.249 +-37.3566 201.774 122.136 +-39.3804 201.319 121.861 +-41.5193 201.438 121.933 +-43.5543 201.036 121.69 +-45.8705 201.879 122.2 +-47.8882 201.361 121.887 +-50.0028 201.247 121.817 +-52.2485 201.618 122.042 +-54.3482 201.387 121.902 +-56.3537 200.807 121.551 +-58.7144 201.458 121.945 +-60.9675 201.674 122.076 +-62.9966 201.129 121.746 +-65.2863 201.393 121.906 +-67.6414 201.803 122.154 +-69.953 202.028 122.29 +-72.0404 201.58 122.019 +-74.2443 201.443 121.936 +-76.6671 201.857 122.187 +-79.0089 202.007 122.278 +-81.0014 201.248 121.818 +-83.4183 201.522 121.984 +-85.676 201.374 121.895 +-88.0421 201.448 121.939 +-90.5237 201.741 122.117 +-92.7981 201.536 121.992 +-95.2999 201.787 122.145 +-97.5077 201.384 121.901 +-100.34 202.224 122.409 +-102.558 201.781 122.141 +-104.897 201.554 122.003 +-107.198 201.23 121.808 +-109.669 201.198 121.788 +-112.062 200.989 121.662 +-114.634 201.068 121.709 +-116.993 200.74 121.511 +-119.445 200.545 121.393 +-122.41 201.164 121.767 +-124.832 200.846 121.575 +-127.211 200.433 121.325 +-129.784 200.299 121.244 +-134.136 202.822 122.771 +-138.65 205.443 124.357 +-141.096 204.916 124.038 +-143.541 204.368 123.707 +-143.06 199.715 120.89 +-143.131 195.955 118.614 +-144.265 193.724 117.264 +-147.325 194.074 117.476 +-150.292 194.251 117.583 +-495.221 628.091 380.192 +-143.697 178.865 108.269 +-142.993 174.702 105.75 +-142.969 171.468 103.792 +-143.126 168.526 102.011 +-142.52 164.769 99.737 +-142.329 161.581 97.807 +-143.911 160.445 97.1193 +-149.052 163.206 98.7909 +-513.512 552.275 334.3 +-516.043 545.164 329.995 +-518.022 537.594 325.413 +-520.465 530.626 321.195 +-522.221 523.077 316.626 +-524.191 515.866 312.261 +-525.988 508.601 307.863 +-528.546 502.176 303.974 +-530.338 495.121 299.703 +-532.368 488.39 295.629 +-534.645 481.976 291.747 +-537.527 476.182 288.24 +-538.999 469.223 284.027 +-550.553 470.988 285.095 +-568.532 477.953 289.311 +-564.754 466.559 282.414 +-566.735 460.087 278.497 +-568.847 453.797 274.689 +-571.169 447.742 271.024 +-573.411 441.686 267.358 +-575.498 435.574 263.659 +-579.013 430.587 260.641 +-580.114 423.86 256.568 +-581.428 417.369 252.639 +-583.348 411.379 249.014 +-590.864 409.324 247.769 +-597.443 406.548 246.089 +-589.984 394.33 238.694 +-580.973 381.37 230.849 +-575.417 370.943 224.537 +-577.169 365.361 221.158 +-579.499 360.184 218.024 +-581.197 354.652 214.676 +-584.055 349.857 211.774 +-586.036 344.563 208.569 +-589.197 339.983 205.797 +-589.974 334.061 202.212 +-592.605 329.225 199.284 +-594.422 323.961 196.098 +-596.178 318.695 192.91 +-597.871 313.428 189.722 +-383.325 197.039 119.27 +-382.563 192.78 116.692 +-379.925 187.65 113.587 +-382.26 185.017 111.993 +-378.798 179.626 108.73 +-382.022 177.445 107.41 +-380.815 173.22 104.853 +-381.06 169.699 102.721 +-382.331 166.654 100.878 +-381.063 162.534 98.3839 +-383.695 160.096 96.908 +-135.749 55.3914 33.5292 +-381.012 151.992 92.0031 +-383.731 149.603 90.5568 +-381.131 145.167 87.8718 +-382.597 142.316 86.1459 +-610.939 221.85 134.289 +-614.749 217.838 131.86 +-381.722 131.937 79.8635 +-382.402 128.863 78.0024 +-382.675 125.666 76.0673 +-381.6 122.055 73.8815 +-381.233 118.705 71.8537 +-381.581 115.597 69.9724 +-381.422 112.354 68.0093 +-377.528 108.063 65.4123 +-376.713 104.713 63.384 +-376.623 101.587 61.4923 +-377.071 98.6215 59.697 +-375.761 95.2202 57.6381 +-377.295 92.5528 56.0235 +-378.707 89.8469 54.3856 +-381.83 87.5251 52.9802 +-382.322 84.5858 51.2009 +-381.229 81.3144 49.2207 +-381.363 78.3255 47.4115 +-380.297 75.1099 45.465 +-380.755 72.2123 43.7111 +-381.478 69.3672 41.9889 +-381.289 66.3632 40.1705 +-381.657 63.4651 38.4163 +-381.405 60.4733 36.6053 +-379.939 57.3117 34.6915 +-381.002 54.5437 33.016 +-380.951 51.617 31.2445 +-381.76 48.8089 29.5447 +-380.758 45.7786 27.7104 +-380.616 42.8673 25.9482 +-380.84 40.0034 24.2146 +-380.24 37.0619 22.4341 +-381.3 34.2844 20.7528 +-381.934 31.4612 19.0439 +-381.244 28.5341 17.2721 +-381.221 25.6668 15.5365 +-381.468 22.8199 13.8132 +-380.788 19.9241 12.0604 +-379.779 17.027 10.3067 +-379.838 14.1874 8.58782 +-380.168 11.3572 6.87467 +-148.149 3.31877 2.0089 +-146.178 2.18279 1.32128 +-146.394 1.09293 0.661565 +96.6 3.55271e-15 -1.7053e-13 +96.5963 0.725065 0.430002 +96.5853 1.45007 0.85997 +96.5669 2.17497 1.28987 +96.6411 2.90271 1.72146 +96.608 3.62797 2.15158 +96.5675 4.35296 2.58154 +96.5196 5.07761 3.01129 +96.4644 5.80188 3.44082 +97.1994 6.57969 3.90211 +96.332 7.24904 4.29907 +96.2548 7.97181 4.72771 +97.0653 8.77492 5.204 +96.9726 9.5031 5.63584 +96.8725 10.2306 6.06728 +96.765 10.9574 6.49831 +96.6502 11.6832 6.92878 +96.429 12.3955 7.35119 +96.1021 13.0919 7.76422 +95.867 13.7985 8.18326 +95.7233 14.5176 8.6097 +95.5724 15.2355 9.03548 +96.1995 16.0836 9.53843 +95.1507 16.6507 9.87474 +95.8585 17.5252 10.3934 +95.7746 18.2626 10.8307 +95.5857 18.9808 11.2566 +95.3895 19.6976 11.6817 +96.2533 20.6417 12.2416 +96.8148 21.5356 12.7718 +95.7232 22.0612 13.0834 +96.363 22.9856 13.6317 +96.03 23.6844 14.0461 +95.7861 24.4042 14.473 +96.3955 25.3486 15.0331 +96.1347 26.0711 15.4616 +95.9616 26.8183 15.9047 +96.4445 27.7559 16.4607 +97.0102 28.7308 17.0389 +96.4322 29.3716 17.4189 +96.1306 30.0944 17.8476 +95.8216 30.8147 18.2748 +96.1588 31.7486 18.8286 +96.8565 32.8159 19.4616 +96.7053 33.6061 19.9302 +96.3606 34.3307 20.3599 +96.8371 35.3551 20.9674 +96.7498 36.1834 21.4587 +96.379 36.9083 21.8886 +96.9109 37.9869 22.5283 +96.5218 38.7129 22.9588 +96.1253 39.4359 23.3876 +96.5305 40.4953 24.0159 +95.937 41.1415 24.3991 +96.3178 42.2115 25.0337 +96.0633 43.0122 25.5086 +96.153 43.9739 26.0789 +95.7911 44.735 26.5302 +96.0332 45.7859 27.1535 +96.3484 46.8861 27.806 +95.869 47.6075 28.2338 +95.9855 48.6309 28.8407 +96.0885 49.6596 29.4508 +96.3483 50.7833 30.1172 +95.8294 51.5046 30.545 +95.8936 52.5454 31.1623 +96.1116 53.6848 31.8379 +95.5633 54.4042 32.2646 +95.6709 55.5042 32.9169 +95.8459 56.6585 33.6015 +96.0046 57.8199 34.2903 +95.3329 58.4883 34.6867 +95.464 59.6566 35.3796 +95.4982 60.7801 36.0459 +95.4369 61.857 36.6845 +95.4404 62.9899 37.3563 +95.5069 64.1804 38.0624 +95.5565 65.3767 38.7719 +95.5112 66.5245 39.4526 +95.6043 67.786 40.2007 +95.4491 68.8879 40.8542 +95.4309 70.1045 41.5757 +95.3953 71.326 42.3001 +95.2672 72.4953 42.9936 +95.1969 73.7255 43.7232 +95.1088 74.9602 44.4554 +95.0028 76.1992 45.1902 +95.4593 77.9159 46.2083 +95.2406 79.1074 46.9149 +95.1476 80.4221 47.6946 +94.9644 81.6806 48.4409 +95.3938 83.4945 49.5167 +95.0987 84.7023 50.233 +94.8553 85.9744 50.9874 +94.6614 87.3123 51.7808 +94.988 89.1607 52.877 +94.5482 90.3175 53.5631 +94.8209 92.184 54.67 +94.5381 93.5412 55.4749 +94.6895 95.3587 56.5528 +94.6826 97.054 57.5582 +94.6484 98.757 58.5682 +92.3842 98.1265 58.1943 +90.3891 97.7395 57.9647 +89.2093 98.2108 58.2443 +87.8443 98.4671 58.3963 +88.7075 101.252 60.0479 +87.9148 102.191 60.6045 +88.109 104.308 61.8603 +87.8023 105.875 62.7897 +87.9293 108.01 64.0558 +87.9629 110.084 65.2856 +91.5958 116.801 69.2689 +93.5533 121.572 72.099 +93.5145 123.857 73.4538 +93.3827 126.077 74.7703 +90.8812 125.096 74.1883 +89.295 125.333 74.3291 +87.814 125.704 74.5489 +91.4077 133.472 79.1561 +93.3 138.995 82.4315 +92.7726 141.038 83.6429 +92.7441 143.911 85.3467 +93.046 147.398 87.4146 +92.9554 150.369 89.177 +92.6729 153.121 90.8088 +92.7049 156.493 92.8088 +92.8091 160.107 94.9523 +92.7155 163.504 96.9666 +92.6029 166.988 99.033 +92.7224 171.029 101.429 +92.4766 174.536 103.509 +92.2885 178.288 105.734 +91.7522 181.499 107.638 +90.2589 182.893 108.465 +89.0122 184.834 109.616 +87.4332 186.134 110.387 +91.552 199.907 118.555 +91.3838 204.762 121.435 +89.0928 204.957 121.55 +86.7021 204.89 121.511 +84.3864 204.966 121.556 +81.9781 204.779 121.445 +79.8656 205.304 121.756 +77.2852 204.587 121.331 +75.1464 204.995 121.573 +72.5667 204.153 121.074 +70.4926 204.69 121.392 +68.1651 204.467 121.26 +65.8743 204.308 121.166 +63.5401 203.964 120.962 +61.4683 204.433 121.24 +59.1983 204.219 121.113 +57.1007 204.572 121.322 +54.7981 204.155 121.075 +52.8329 204.978 121.563 +50.5017 204.357 121.195 +48.267 204.054 121.015 +46.1949 204.409 121.225 +43.9734 204.071 121.025 +41.7971 203.885 120.915 +39.6939 204.022 120.996 +37.6225 204.311 121.168 +35.4151 203.82 120.876 +33.3459 204.078 121.029 +31.2088 203.894 120.92 +29.139 204.121 121.055 +27.0556 204.247 121.129 +24.9196 203.929 120.941 +22.84 204.022 120.996 +20.6995 203.5 120.687 +18.6183 203.476 120.672 +16.5114 203.094 120.445 +14.4685 203.468 120.667 +12.3932 203.396 120.625 +10.3509 203.912 120.93 +8.25373 203.294 120.564 +6.20394 203.778 120.851 +4.12575 203.301 120.568 +2.06383 203.41 120.633 +1.86517e-14 203.762 120.842 +-2.06906 203.926 120.939 +-4.11877 202.957 120.364 +-6.17776 202.918 120.341 +-8.23628 202.864 120.309 +-10.3334 203.568 120.727 +-12.4089 203.654 120.778 +-14.4685 203.468 120.667 +-16.5183 203.18 120.496 +-18.5791 203.048 120.418 +-20.6908 203.415 120.636 +-22.7921 203.594 120.742 +-24.8778 203.586 120.738 +-26.9537 203.477 120.673 +-28.9562 202.841 120.295 +-31.0652 202.957 120.364 +-33.1232 202.716 120.221 +-35.2821 203.055 120.422 +-37.2001 202.018 119.807 +-39.3804 202.41 120.04 +-41.3977 201.937 119.759 +-43.5907 202.295 119.972 +-45.6606 202.044 119.823 +-47.8882 202.453 120.065 +-50.0236 202.422 120.047 +-52.0754 202.039 119.82 +-54.1682 201.808 119.683 +-56.307 201.729 119.636 +-58.6903 202.467 120.073 +-60.7422 202.018 119.808 +-63.0224 202.302 119.976 +-65.2863 202.485 120.084 +-67.3658 202.069 119.838 +-69.6974 202.381 120.022 +-72.0112 202.59 120.147 +-74.2743 202.616 120.162 +-76.6671 202.951 120.361 +-78.7867 202.531 120.112 +-81.0339 202.42 120.046 +-83.4183 202.614 120.161 +-85.676 202.466 120.073 +-88.0071 202.46 120.069 +-90.5237 202.835 120.292 +-92.8348 202.708 120.217 +-95.2625 202.801 120.272 +-97.5843 202.634 120.173 +-99.9881 202.607 120.157 +-102.12 202.006 119.801 +-104.531 201.939 119.761 +-107.198 202.321 119.987 +-109.289 201.587 119.552 +-112.062 202.079 119.843 +-114.59 202.08 119.844 +-117.038 201.905 119.74 +-119.49 201.709 119.624 +-121.994 201.567 119.54 +-124.879 202.011 119.803 +-127.306 201.67 119.601 +-129.687 201.234 119.342 +-133.841 203.472 120.67 +-138.15 205.812 122.057 +-141.045 205.953 122.141 +-143.593 205.549 121.902 +-143.165 200.943 119.17 +-142.707 196.433 116.495 +-144.211 194.701 115.468 +-147.053 194.766 115.507 +-150.458 195.519 115.953 +-495.221 631.495 374.51 +-143.301 179.338 106.357 +-142.878 175.508 104.086 +-143.027 172.468 102.283 +-143.772 170.205 100.941 +-142.639 165.801 98.3286 +-142.811 163.006 96.6713 +-143.911 161.314 95.6679 +-149.729 164.836 97.7568 +-513.824 555.606 329.504 +-516.483 548.587 325.341 +-518.595 541.105 320.904 +-520.851 533.897 316.63 +-522.221 525.912 311.894 +-524.782 519.246 307.941 +-526.783 512.131 303.721 +-528.881 505.218 299.621 +-530.744 498.184 295.45 +-532.982 491.603 291.547 +-534.783 484.713 287.461 +-537.735 478.949 284.042 +-539.63 472.318 280.11 +-553.24 475.852 282.205 +-569.673 481.508 285.56 +-565.041 469.327 278.336 +-566.59 462.463 274.265 +-569.286 456.609 270.793 +-571.759 450.633 267.249 +-573.782 444.368 263.534 +-575.572 437.993 259.753 +-577.655 431.906 256.144 +-580.038 426.101 252.701 +-582.27 420.239 249.224 +-584.274 414.265 245.681 +-593.74 413.545 245.254 +-599.713 410.305 243.332 +-589.511 396.15 234.938 +-577.958 381.448 226.219 +-575.417 372.954 221.182 +-577.732 367.699 218.065 +-579.256 361.984 214.676 +-581.604 356.823 211.615 +-584.055 351.754 208.609 +-586.036 346.43 205.452 +-589.197 341.826 202.721 +-590.725 336.299 199.443 +-593.024 331.243 196.445 +-594.844 325.948 193.304 +-596.602 320.65 190.163 +-597.871 315.126 186.887 +-383.154 198.018 117.435 +-379.978 192.515 114.172 +-381.744 189.57 112.425 +-382.26 186.019 110.319 +-376.086 179.307 106.339 +-380.616 177.749 105.415 +-382.051 174.724 103.621 +-382.213 171.135 101.492 +-381.262 167.089 99.0927 +-382.137 163.875 97.1865 +-384.414 161.264 95.6383 +-136.29 55.9138 33.1599 +-382.281 153.325 90.9296 +-382.457 149.915 88.9076 +-382.045 146.303 86.7657 +-382.322 142.984 84.7973 +-387.533 141.488 83.9097 +-614.288 218.854 129.792 +-381.536 132.588 78.6318 +-381.843 129.372 76.7245 +-382.488 126.285 74.8938 +-381.038 122.536 72.6703 +-380.951 119.26 70.7273 +-382.147 116.395 69.0287 +-380.949 112.822 66.9098 +-377.528 108.649 64.4348 +-376.999 105.359 62.4837 +-376.051 101.982 60.481 +-376.21 98.9299 58.6707 +-377.008 96.0536 56.9649 +-376.911 92.9589 55.1296 +-376.972 89.9201 53.3274 +-381.541 87.9333 52.1491 +-381.45 84.8504 50.3208 +-381.714 81.8592 48.5469 +-381.363 78.7501 46.703 +-380.004 75.4589 44.7511 +-381.341 72.7155 43.1241 +-381.184 69.6895 41.3296 +-381.681 66.7914 39.6109 +-381.068 63.7107 37.7839 +-381.7 60.848 36.0861 +-381.416 57.8463 34.3059 +-380.805 54.8109 32.5058 +-381.346 51.9505 30.8094 +-380.87 48.9591 29.0354 +-380.758 46.0267 27.2963 +-380.12 43.0435 25.5271 +-380.84 40.2202 23.8527 +-381.234 37.3602 22.1566 +-381.996 34.5332 20.48 +-380.938 31.5493 18.7104 +-380.048 28.5988 16.9606 +-380.125 25.7317 15.2603 +-380.271 22.8716 13.5641 +-380.788 20.0321 11.8801 +-380.378 17.1463 10.1687 +-380.537 14.2905 8.47503 +-380.468 11.4277 6.77723 +-150.848 3.39755 2.01493 +-145.678 2.18712 1.29708 +-146.594 1.10036 0.65257 +95.7 0 -1.7053e-13 +96.3963 0.727405 0.422567 +96.5853 1.45777 0.846853 +96.5669 2.18652 1.2702 +96.6411 2.91812 1.6952 +96.5081 3.64346 2.11657 +96.5675 4.37607 2.54216 +96.5196 5.10457 2.96536 +96.4644 5.83269 3.38834 +96.4019 6.56035 3.81106 +96.332 7.28753 4.23349 +96.2548 8.01414 4.6556 +97.0653 8.82151 5.12462 +96.9726 9.55355 5.54988 +96.7732 10.2744 5.96866 +96.8642 11.0268 6.40573 +96.5511 11.7332 6.81612 +96.429 12.4613 7.23907 +96.0033 13.1479 7.63791 +95.867 13.8718 8.05844 +95.7233 14.5947 8.47838 +95.5724 15.3164 8.89766 +96.1995 16.169 9.39295 +96.0326 16.8943 9.81429 +95.9563 17.6362 10.2453 +95.7746 18.3596 10.6655 +95.5857 19.0816 11.0849 +95.3895 19.8021 11.5035 +96.1563 20.7304 12.0428 +95.9434 21.4552 12.4638 +95.7232 22.1783 12.8839 +96.363 23.1077 13.4238 +96.03 23.8101 13.8319 +95.7861 24.5338 14.2522 +96.3955 25.4832 14.8038 +96.1347 26.2095 15.2257 +95.8665 26.934 15.6466 +95.591 27.6563 16.0662 +97.0102 28.8833 16.779 +96.5265 29.5565 17.17 +96.1306 30.2542 17.5754 +96.8519 31.3114 18.1895 +96.5322 32.0411 18.6134 +96.8565 32.9901 19.1647 +96.5198 33.7197 19.5885 +96.3606 34.5129 20.0494 +96.8371 35.5428 20.6476 +96.7498 36.3755 21.1314 +96.379 37.1042 21.5547 +96.0919 37.8659 21.9972 +95.6155 38.553 22.3963 +96.2156 39.6825 23.0525 +96.6204 40.7482 23.6716 +95.937 41.3599 24.0269 +96.3178 42.4356 24.6518 +96.8616 43.5999 25.3282 +96.2413 44.248 25.7047 +96.582 45.3438 26.3413 +96.0332 46.029 26.7393 +96.3484 47.1351 27.3819 +95.869 47.8603 27.8032 +95.9855 48.8891 28.4008 +96.1742 49.9678 29.0274 +96.3483 51.053 29.6579 +95.6598 51.6864 30.0259 +95.8936 52.8244 30.6869 +95.3568 53.546 31.1061 +95.4799 54.6453 31.7447 +95.588 55.7504 32.3867 +95.8459 56.9594 33.089 +96.0046 58.1269 33.7672 +95.4143 58.849 34.1868 +95.3831 59.9225 34.8104 +95.4982 61.1028 35.4961 +94.8779 61.8211 35.9133 +95.5197 63.377 36.8172 +94.8765 64.0953 37.2344 +95.5565 65.7238 38.1805 +95.5112 66.8777 38.8508 +95.5271 68.0909 39.5556 +95.5257 69.3093 40.2634 +95.507 70.5329 40.9742 +95.3953 71.7047 41.655 +95.2672 72.8802 42.3378 +95.1969 74.117 43.0563 +95.1088 75.3582 43.7773 +95.6611 77.1345 44.8092 +95.4593 78.3296 45.5035 +95.3125 79.5875 46.2342 +95.1476 80.8491 46.9671 +94.9644 82.1142 47.7021 +95.3938 83.9379 48.7615 +95.1682 85.2143 49.503 +94.8553 86.4309 50.2097 +95.2752 88.3448 51.3216 +94.988 89.6341 52.0705 +94.5482 90.7971 52.7461 +94.7547 92.6086 53.7985 +94.4725 93.9722 54.5906 +94.6895 95.865 55.6902 +94.8112 97.7024 56.7576 +94.5212 99.1473 57.597 +92.3213 98.5801 57.2675 +90.3891 98.2584 57.0806 +89.2093 98.7323 57.3559 +88.2095 99.4015 57.7447 +88.3464 101.376 58.8915 +88.3312 103.22 59.9629 +88.0502 104.792 60.8761 +87.8604 106.508 61.8732 +87.9866 108.655 63.1199 +87.4531 110.027 63.9171 +90.9248 116.561 67.7131 +93.4981 122.145 70.9571 +93.5145 124.515 72.3334 +93.4364 126.82 73.6726 +91.5171 126.64 73.5681 +89.295 125.998 73.1954 +88.02 126.668 73.5842 +91.2046 133.883 77.776 +93.3 139.733 81.1742 +92.7726 141.787 82.3672 +92.7441 144.675 84.0449 +93.046 148.18 86.0813 +92.9554 151.168 87.8168 +92.7191 154.011 89.4684 +92.7049 157.324 91.3933 +92.8538 161.035 93.5492 +92.7155 164.372 95.4876 +92.5599 167.797 97.4773 +92.3844 171.31 99.5182 +92.4766 175.463 101.93 +92.2885 179.234 104.121 +91.7522 182.462 105.997 +90.4152 184.182 106.996 +88.9356 185.656 107.852 +87.5081 187.282 108.796 +91.5887 201.049 116.794 +91.2046 205.446 119.348 +89.0227 205.883 119.602 +86.7021 205.978 119.658 +84.0859 205.32 119.275 +81.9455 205.784 119.545 +79.6117 205.738 119.518 +77.2542 205.591 119.433 +74.8156 205.177 119.192 +72.5959 205.319 119.275 +70.237 205.031 119.107 +67.9446 204.888 119.024 +65.8475 205.31 119.269 +63.5401 205.047 119.117 +61.4683 205.518 119.39 +59.2225 205.387 119.314 +56.8673 204.817 118.983 +54.6631 204.733 118.934 +52.5948 205.138 119.169 +50.3146 204.681 118.904 +48.267 205.138 119.169 +46.0422 204.815 118.982 +43.9552 205.069 119.13 +41.7971 204.967 119.07 +39.7105 205.19 119.199 +37.4661 204.542 118.823 +35.4299 204.988 119.082 +33.332 205.076 119.134 +31.1697 204.72 118.927 +29.1268 205.12 119.159 +26.9537 204.558 118.832 +24.93 205.097 119.146 +22.84 205.106 119.151 +20.6646 204.237 118.646 +18.6183 204.557 118.832 +16.5114 204.172 118.608 +14.4624 204.462 118.776 +12.3932 204.476 118.785 +10.3116 204.217 118.634 +8.25373 204.373 118.725 +6.18038 204.082 118.556 +4.12924 204.553 118.83 +2.0647 204.577 118.843 +1.95399e-14 204.066 118.546 +-2.06819 204.922 119.044 +-4.11877 204.034 118.528 +-6.1987 204.687 118.908 +-8.23977 204.027 118.524 +-10.3334 204.649 118.885 +-12.3618 203.958 118.484 +-14.4685 204.548 118.827 +-16.5253 204.345 118.709 +-18.5713 204.04 118.531 +-20.6733 204.322 118.696 +-22.7921 204.675 118.901 +-24.7837 203.893 118.446 +-26.8631 203.871 118.433 +-28.8708 203.317 118.111 +-31.0652 204.034 118.528 +-33.1371 203.878 118.437 +-35.1491 203.363 118.139 +-37.2001 203.09 117.98 +-39.3473 203.313 118.109 +-41.4325 203.179 118.032 +-43.5725 203.284 118.092 +-45.6606 203.117 117.995 +-47.6888 202.68 117.742 +-50.0028 203.412 118.167 +-52.0537 203.027 117.943 +-54.1007 202.627 117.711 +-56.3537 202.967 117.908 +-58.6903 203.542 118.242 +-60.9675 203.844 118.418 +-63.0224 203.376 118.146 +-65.0725 202.893 117.865 +-67.5587 203.724 118.348 +-69.6974 203.455 118.192 +-72.0112 203.666 118.314 +-74.3345 203.857 118.425 +-76.1109 202.548 117.665 +-78.7867 203.606 118.28 +-80.7409 202.759 117.787 +-83.385 203.609 118.281 +-85.4024 202.89 117.864 +-88.0772 203.696 118.332 +-90.0937 202.943 117.894 +-92.8714 203.865 118.43 +-94.9628 203.236 118.065 +-97.5843 203.71 118.34 +-99.9099 203.523 118.231 +-102.16 203.158 118.019 +-104.491 202.933 117.888 +-106.908 202.845 117.837 +-109.247 202.579 117.683 +-111.675 202.449 117.608 +-114.152 202.376 117.565 +-116.636 202.281 117.51 +-119.445 202.703 117.755 +-121.994 202.637 117.717 +-124.457 202.396 117.576 +-127.258 202.666 117.733 +-129.687 202.302 117.522 +-133.25 203.649 118.304 +-138.15 206.904 120.196 +-141.096 207.12 120.321 +-143.129 205.974 119.655 +-143.217 202.085 117.396 +-142.76 197.549 114.761 +-144.157 195.663 113.665 +-146.835 195.51 113.577 +-149.851 195.765 113.724 +-1832.2 2348.78 1364.46 +-142.564 179.364 104.197 +-143.05 176.652 102.622 +-143.259 173.665 100.886 +-142.949 170.129 98.8321 +-142.639 166.681 96.8288 +-142.45 163.457 94.9562 +-144.763 163.131 94.7663 +-150.406 166.461 96.7012 +-514.259 559.03 324.753 +-517.238 552.305 320.847 +-518.404 543.778 315.893 +-520.851 536.732 311.8 +-523.065 529.56 307.633 +-525.372 522.59 303.585 +-526.452 514.526 298.9 +-529.148 508.157 295.2 +-530.744 500.83 290.944 +-533.596 494.782 287.43 +-535.058 487.538 283.222 +-537.943 481.679 279.818 +-539.209 474.456 275.622 +-561.584 485.593 282.092 +-569.174 483.641 280.958 +-564.898 471.698 274.021 +-567.098 465.335 270.324 +-570.09 459.682 267.04 +-571.832 453.084 263.207 +-574.154 447.016 259.682 +-576.321 440.891 256.124 +-579.315 435.447 252.961 +-580.57 428.757 249.075 +-582.5 422.637 245.52 +-584.12 416.355 241.87 +-597.392 418.299 243 +-597.678 411.083 238.808 +-587.935 397.189 230.736 +-576.768 382.683 222.31 +-575.896 375.246 217.989 +-577.732 369.652 214.739 +-580.308 364.567 211.785 +-582.662 359.371 208.767 +-584.793 354.068 205.686 +-586.036 348.27 202.318 +-588.782 343.4 199.489 +-590.725 338.085 196.401 +-593.359 333.191 193.558 +-594.422 327.447 190.221 +-596.941 322.536 187.369 +-598.639 317.206 184.272 +-385.554 200.316 116.368 +-382.563 194.854 113.195 +-382.783 191.095 111.012 +-381.129 186.454 108.315 +-378.798 181.559 105.472 +-380.44 178.611 103.759 +-378.343 173.948 101.05 +-381.947 171.924 99.8749 +-381.529 168.094 97.6496 +-381.868 164.63 95.6373 +-383.156 161.591 93.8717 +-135.749 55.9874 32.5244 +-381.737 153.92 89.4156 +-381.456 150.316 87.322 +-381.771 146.975 85.3811 +-381.772 143.537 83.3838 +-385.784 141.596 82.2567 +-613.918 219.883 127.735 +-381.536 133.292 77.4324 +-381.936 130.091 75.5728 +-382.208 126.863 73.6977 +-382.631 123.702 71.8612 +-381.327 120.011 69.7174 +-381.864 116.927 67.9256 +-380.382 113.253 65.7913 +-378.381 109.473 63.5956 +-376.713 105.839 61.4844 +-376.527 102.654 59.6344 +-376.115 99.4301 57.7612 +-376.241 96.3674 55.982 +-377.776 93.6669 54.4133 +-375.816 90.12 52.3528 +-381.734 88.4443 51.3793 +-381.741 85.3658 49.591 +-382.297 82.4193 47.8793 +-380.78 79.047 45.9203 +-381.271 76.1124 44.2155 +-381.341 73.1016 42.4664 +-380.597 69.9516 40.6365 +-381.289 67.0771 38.9667 +-381.068 64.049 37.2076 +-381.7 61.1711 35.5357 +-380.825 58.0634 33.7304 +-381.693 55.2303 32.0846 +-380.655 52.1317 30.2845 +-381.167 49.2574 28.6147 +-380.362 46.2229 26.852 +-379.823 43.2382 25.1181 +-380.244 40.3705 23.4521 +-380.637 37.4998 21.7845 +-381.001 34.6262 20.1152 +-381.934 31.7996 18.4731 +-380.746 28.8034 16.7326 +-380.125 25.8683 15.0275 +-380.87 23.0291 13.3782 +-380.489 20.1227 11.6897 +-380.977 17.2645 10.0293 +-380.537 14.3664 8.34577 +-380.968 11.5035 6.68265 +-3275.38 74.163 43.083 +-146.778 2.21533 1.28694 +-146.594 1.1062 0.642617 +95.7 0 -1.7053e-13 +96.3963 0.731188 0.415987 +96.5853 1.46535 0.833668 +96.5669 2.19789 1.25042 +96.6411 2.93329 1.66881 +96.608 3.6662 2.08577 +96.5675 4.39883 2.50258 +96.4198 5.12581 2.91618 +96.4644 5.86302 3.33559 +96.4019 6.59447 3.75172 +96.332 7.32542 4.16758 +96.1553 8.04749 4.57837 +97.0653 8.86738 5.04483 +96.0784 9.51475 5.41313 +96.7732 10.3279 5.87573 +96.765 11.0728 6.29956 +96.5511 11.7943 6.70999 +96.2312 12.5005 7.11177 +96.0033 13.2162 7.51898 +95.9656 13.9583 7.94113 +95.7233 14.6706 8.34637 +95.4741 15.3802 8.75012 +96.1995 16.2531 9.24669 +95.2487 16.8435 9.5826 +95.9563 17.7279 10.0858 +95.7746 18.4551 10.4994 +95.5857 19.1808 10.9123 +96.3619 20.108 11.4398 +96.1563 20.8382 11.8552 +95.9434 21.5667 12.2697 +95.7232 22.2936 12.6833 +96.363 23.2278 13.2148 +96.03 23.9339 13.6165 +95.7861 24.6614 14.0303 +96.3955 25.6157 14.5733 +96.1347 26.3458 14.9887 +95.8665 27.074 15.4029 +96.4445 28.0484 15.9573 +97.0102 29.0335 16.5177 +96.5265 29.7102 16.9027 +96.1306 30.4115 17.3017 +95.8216 31.1395 17.7158 +96.5322 32.2077 18.3236 +97.0426 33.2254 18.9026 +96.5198 33.895 19.2835 +96.453 34.7257 19.7561 +96.8371 35.7276 20.3261 +96.4747 36.4608 20.7432 +96.379 37.2972 21.2191 +96.0009 38.0268 21.6342 +95.6155 38.7535 22.0476 +96.1253 39.8514 22.6723 +96.6204 40.9601 23.303 +96.116 41.6525 23.6969 +96.3178 42.6563 24.268 +95.8859 43.3852 24.6827 +96.2413 44.4781 25.3045 +95.7911 45.2064 25.7188 +96.0332 46.2683 26.323 +96.3484 47.3802 26.9555 +95.869 48.1092 27.3703 +96.1578 49.2315 28.0088 +96.1742 50.2276 28.5755 +95.581 50.9098 28.9636 +95.6598 51.9552 29.5583 +96.0623 53.1925 30.2622 +95.3568 53.8245 30.6218 +95.5633 54.9774 31.2777 +95.588 56.0404 31.8825 +95.8459 57.2556 32.5738 +96.0046 58.4291 33.2415 +95.3329 59.1046 33.6257 +95.3831 60.2342 34.2684 +95.4982 61.4206 34.9434 +94.8779 62.1426 35.3542 +95.5197 63.7065 36.2439 +94.8765 64.4286 36.6547 +94.8521 65.5787 37.309 +95.5112 67.2255 38.2459 +95.6043 68.5002 38.9711 +95.5257 69.6697 39.6365 +95.4309 70.8432 40.3041 +95.3953 72.0776 41.0064 +95.2672 73.2592 41.6786 +95.1969 74.5024 42.3859 +95.1088 75.7501 43.0957 +95.6611 77.5356 44.1115 +95.3867 78.677 44.7609 +95.3125 80.0013 45.5143 +95.0763 81.2086 46.2012 +94.9644 82.5412 46.9593 +95.3237 84.3124 47.967 +95.1682 85.6574 48.7322 +94.8553 86.8804 49.428 +95.2752 88.8042 50.5225 +94.988 90.1002 51.2598 +94.5482 91.2692 51.9249 +94.9535 93.2848 53.0716 +94.4725 94.4608 53.7406 +94.4297 96.0993 54.6728 +94.8112 98.2105 55.8739 +90.832 95.7733 54.4873 +92.3213 99.0927 56.3758 +88.6461 96.8641 55.1079 +89.2093 99.2457 56.4628 +88.0269 99.7116 56.7279 +88.3464 101.903 57.9745 +88.5096 103.966 59.1484 +88.0502 105.337 59.9282 +87.9765 107.204 60.9904 +87.9866 109.22 62.1371 +88.0195 111.315 63.3294 +90.9248 117.167 66.6588 +87.8132 115.315 65.605 +93.5145 125.162 71.2072 +87.9022 119.929 68.2298 +91.5171 127.299 72.4226 +93.475 132.582 75.4287 +88.02 127.326 72.4384 +93.2348 137.575 78.269 +93.3 140.46 79.9103 +92.8218 142.6 81.1277 +92.7441 145.427 82.7363 +93.046 148.951 84.741 +92.9554 151.954 86.4494 +93.1347 155.505 88.4699 +92.7049 158.142 89.9702 +92.943 162.028 92.1811 +92.7155 165.227 94.0009 +92.689 168.905 96.0936 +92.3844 172.201 97.9687 +92.1863 175.821 100.028 +92.2885 180.166 102.5 +90.6755 181.258 103.121 +90.4152 185.14 105.33 +89.1652 187.103 106.447 +87.5081 188.256 107.102 +90.929 200.639 114.148 +91.2046 206.514 117.49 +86.2211 200.441 114.035 +86.7021 207.049 117.794 +81.9496 201.144 114.435 +81.9455 206.854 117.683 +77.4223 201.121 114.421 +77.2542 206.66 117.573 +72.44 199.694 113.61 +72.5959 206.387 117.418 +68.3057 200.43 114.028 +67.9446 205.953 117.171 +63.9501 200.431 114.029 +63.5401 206.113 117.262 +59.7407 200.781 114.228 +59.2225 206.455 117.456 +55.3032 200.219 113.909 +54.6631 205.798 117.082 +51.123 200.434 114.031 +50.3146 205.746 117.053 +46.8913 200.327 113.97 +46.0422 205.88 117.129 +42.6978 200.239 113.92 +41.7971 206.033 117.216 +38.5386 200.171 113.881 +37.4661 205.606 116.973 +34.41 200.123 113.854 +33.332 206.143 117.279 +30.2168 199.494 113.496 +29.1268 206.186 117.303 +26.2745 200.44 114.034 +24.93 206.164 117.291 +22.1404 199.857 113.702 +20.6646 205.299 116.799 +18.0456 199.295 113.383 +16.5114 205.234 116.761 +14.029 199.365 113.423 +12.3932 205.54 116.935 +10.0412 199.895 113.724 +8.25373 205.436 116.877 +6.00499 199.321 113.398 +4.12924 205.617 116.98 +2.00449 199.643 113.581 +1.86517e-14 205.127 116.701 +-2.0071 199.904 113.729 +-4.11877 205.095 116.683 +-6.0364 200.364 113.991 +-8.23977 205.088 116.679 +-10.0237 199.547 113.526 +-12.3618 205.019 116.639 +-14.0106 199.105 113.275 +-16.5253 205.407 116.86 +-18.0456 199.295 113.383 +-20.6733 205.385 116.847 +-22.1116 199.597 113.555 +-24.7837 204.954 116.602 +-26.2179 200.008 113.789 +-28.8708 204.374 116.272 +-30.256 199.753 113.643 +-33.1371 204.938 116.593 +-34.2622 199.263 113.365 +-37.2001 204.146 116.143 +-38.2085 198.456 112.905 +-41.4325 204.236 116.194 +-42.3333 198.53 112.947 +-45.6606 204.173 116.158 +-46.4926 198.623 113.001 +-50.0028 204.47 116.327 +-50.5603 198.228 112.776 +-54.1007 203.68 115.878 +-54.7663 198.276 112.803 +-58.6903 204.6 116.401 +-59.0146 198.34 112.84 +-63.0224 204.434 116.307 +-63.4424 198.839 113.123 +-67.5587 204.783 116.505 +-67.5957 198.346 112.843 +-72.0112 204.725 116.472 +-72.019 198.534 112.95 +-76.1109 203.601 115.833 +-76.3752 198.401 112.874 +-80.7409 203.813 115.953 +-80.848 198.441 112.897 +-85.4024 203.945 116.029 +-85.1704 197.999 112.645 +-90.0937 203.999 116.059 +-89.7928 198.132 112.721 +-94.9628 204.293 116.226 +-94.2932 197.864 112.569 +-99.9099 204.582 116.391 +-99.2486 198.396 112.871 +-104.491 203.988 116.053 +-103.881 198.125 112.717 +-109.247 203.633 115.851 +-108.919 198.481 112.92 +-114.152 203.428 115.734 +-113.736 198.277 112.804 +-119.445 203.757 115.921 +-118.439 197.754 112.506 +-124.457 203.448 115.746 +-123.298 197.379 112.293 +-129.687 203.354 115.692 +-128.916 198.051 112.675 +-138.15 207.98 118.324 +-136.782 201.832 114.826 +-143.129 207.045 117.792 +-142.015 201.431 114.598 +-142.76 198.577 112.974 +-142.868 194.921 110.894 +-146.835 196.527 111.808 +-143.724 188.737 107.376 +-1832.2 2360.99 1343.21 +-142.734 180.512 102.697 +-143.05 177.571 101.024 +-149.705 182.423 103.784 +-142.949 171.014 97.2932 +-517.198 607.518 345.629 +-142.45 164.307 93.4777 +-521.587 590.821 336.13 +-150.406 167.327 95.1956 +-525.402 574.112 326.624 +-517.238 555.177 315.851 +-529.408 558.208 317.576 +-520.851 539.523 306.945 +-534.431 543.88 309.424 +-525.372 525.308 298.858 +-537.981 528.529 300.691 +-529.148 510.799 290.604 +-558.578 529.836 301.434 +-533.596 497.355 282.955 +-566.172 518.571 295.025 +-537.943 484.183 275.461 +-570.61 504.696 287.131 +-561.584 488.118 277.7 +-574.381 490.602 279.113 +-564.898 474.151 269.754 +-579.211 477.746 271.799 +-570.09 462.072 262.882 +-583.85 465.012 264.554 +-574.154 449.34 255.639 +-597.442 459.425 261.376 +-579.315 437.712 249.023 +-589.01 437.252 248.761 +-582.5 424.835 241.697 +-576.635 413.157 235.053 +-597.392 420.474 239.216 +-580.617 401.426 228.379 +-587.935 399.254 227.143 +-584.701 389.964 221.858 +-575.896 377.198 214.595 +-588.504 378.502 215.337 +-580.308 366.462 208.488 +-593.165 367.75 209.22 +-584.793 355.909 202.483 +-597.079 356.678 202.921 +-588.782 345.186 196.383 +-601.315 345.936 196.81 +-593.359 334.923 190.544 +-604.965 334.987 190.581 +-596.941 324.213 184.451 +-609.126 324.442 184.581 +-385.554 201.358 114.556 +-614.342 314.535 178.945 +-382.783 192.089 109.283 +-382.26 187.98 106.945 +-378.798 182.503 103.829 +-381.407 179.996 102.403 +-378.343 174.852 99.4769 +-380.616 172.216 97.9771 +-381.529 168.968 96.1292 +-381.6 165.37 94.082 +-383.156 162.431 92.4101 +-381.523 158.171 89.9866 +-381.737 154.72 88.0234 +-384.004 152.108 86.537 +-381.771 147.739 84.0516 +-381.497 144.18 82.0267 +-385.784 142.333 80.9759 +-382.763 137.805 78.4001 +-381.536 133.985 76.2268 +-381.471 130.608 74.3057 +-382.208 127.523 72.5502 +-382.256 124.223 70.6731 +-381.327 120.635 68.6318 +-378.094 116.375 66.2078 +-380.382 113.842 64.7669 +-376.959 109.629 62.3701 +-376.713 106.389 60.5271 +-378.053 103.606 58.9437 +-376.115 99.9471 56.8619 +-377.391 97.164 55.2785 +-377.776 94.154 53.5661 +-378.418 91.2162 51.8947 +-381.734 88.9042 50.5793 +-381.837 85.8315 48.8312 +-382.297 82.8479 47.1338 +-381.655 79.6407 45.3092 +-381.271 76.5082 43.527 +-380.755 73.3688 41.7409 +-380.597 70.3153 40.0038 +-380.799 67.3393 38.3106 +-381.068 64.3821 36.6282 +-381.7 61.4892 34.9824 +-380.825 58.3653 33.2052 +-380.213 55.3024 31.4626 +-380.655 52.4027 29.813 +-380.969 49.4879 28.1546 +-380.362 46.4633 26.4339 +-380.417 43.5311 24.7657 +-380.244 40.5804 23.087 +-380.24 37.6554 21.4229 +-381.001 34.8063 19.802 +-380.44 31.84 18.1144 +-380.746 28.9532 16.472 +-380.623 26.0369 14.8129 +-380.87 23.1489 13.1699 +-381.088 20.2591 11.5258 +-380.977 17.3542 9.87317 +-379.738 14.4108 8.19856 +-380.968 11.5633 6.5786 +-380.27 8.65505 4.92403 +-146.778 2.22685 1.2669 +-145.694 1.10513 0.62873 +95.5 1.77636e-15 -2.27374e-13 +96.3963 0.73491 0.409375 +96.5853 1.47281 0.820417 +96.367 2.20451 1.228 +96.5412 2.94518 1.64059 +96.5081 3.68105 2.0505 +96.2679 4.40751 2.45516 +96.4198 5.15191 2.86982 +96.3647 5.88678 3.27918 +96.4019 6.62804 3.69209 +96.332 7.36271 4.10133 +96.2548 8.09682 4.51026 +96.0708 8.82115 4.91374 +96.0784 9.56319 5.32709 +96.8725 10.391 5.78822 +96.6659 11.1178 6.19305 +96.5511 11.8543 6.60333 +96.2312 12.5641 6.99872 +96.1021 13.2972 7.40711 +95.867 14.0149 7.80688 +95.7233 14.7452 8.2137 +95.5724 15.4744 8.6199 +96.0031 16.3024 9.08113 +96.0326 17.0686 9.50791 +95.9563 17.8182 9.92544 +95.7746 18.549 10.3326 +95.5857 19.2785 10.7389 +96.3619 20.2103 11.258 +96.2533 20.9654 11.6786 +95.9434 21.6765 12.0747 +95.7232 22.4071 12.4817 +96.363 23.3461 13.0047 +96.1262 24.0798 13.4134 +95.7861 24.7869 13.8073 +96.3955 25.7461 14.3416 +96.1347 26.48 14.7504 +95.6763 27.1579 15.128 +95.591 27.9417 15.5647 +95.9701 28.8685 16.0809 +96.5265 29.8614 16.634 +96.2245 30.5962 17.0433 +96.4772 31.5122 17.5536 +96.1588 32.2465 17.9626 +95.833 32.9783 18.3702 +96.7053 34.1331 19.0135 +96.3606 34.869 19.4235 +96.0087 35.6023 19.832 +96.5664 36.6812 20.4329 +96.379 37.487 20.8818 +96.0009 38.2203 21.2903 +96.5218 39.3199 21.9028 +96.1253 40.0543 22.3119 +96.3507 41.0537 22.8686 +96.116 41.8646 23.3203 +96.3178 42.8734 23.8823 +95.8859 43.606 24.2903 +96.2413 44.7045 24.9022 +95.7911 45.4365 25.31 +96.0332 46.5039 25.9046 +96.1743 47.5353 26.4791 +95.6958 48.2667 26.8865 +96.1578 49.4822 27.5636 +96.0885 50.4383 28.0962 +95.581 51.1689 28.5032 +95.8294 52.3123 29.1401 +95.8936 53.3695 29.729 +96.1116 54.5266 30.3736 +95.5633 55.2573 30.7806 +95.6709 56.3746 31.4029 +95.8459 57.547 32.0561 +96.0046 58.7266 32.7131 +95.9842 59.8113 33.3174 +95.3831 60.5408 33.7237 +95.4982 61.7333 34.388 +95.4369 62.827 34.9972 +94.8057 63.5522 35.4012 +95.5069 65.1869 36.3118 +95.5565 66.4019 36.9886 +95.589 67.6227 37.6686 +95.5271 68.7934 38.3207 +95.0661 69.6874 38.8188 +94.8226 70.75 39.4107 +95.3953 72.4445 40.3546 +95.3421 73.69 41.0483 +95.1969 74.8816 41.7121 +95.1825 76.1948 42.4436 +95.0028 77.3941 43.1117 +95.4593 79.1378 44.083 +95.3125 80.4086 44.7909 +95.1476 81.6833 45.5009 +94.9644 82.9615 46.2129 +95.3237 84.7416 47.2045 +94.9598 85.905 47.8526 +94.9241 87.3859 48.6775 +94.5932 88.6177 49.3637 +94.8529 90.4304 50.3735 +95.2842 92.4485 51.4976 +94.9535 93.7597 52.228 +94.9317 95.403 53.1434 +94.6246 96.7877 53.9147 +92.6257 96.4347 53.7181 +90.1323 95.5192 53.2081 +89.1747 96.2032 53.5891 +88.6461 97.3573 54.232 +88.4706 98.9245 55.105 +88.2095 100.427 55.942 +88.2261 102.282 56.9751 +88.0933 104.004 57.9343 +88.3441 106.226 59.1723 +88.4991 108.389 60.3772 +88.1587 109.99 61.2692 +87.8496 111.666 62.2026 +87.7933 113.708 63.3398 +87.9788 116.121 64.6839 +87.9047 118.252 65.8713 +87.7948 120.392 67.0631 +88.2845 123.427 68.7541 +92.5867 131.991 73.5246 +93.0159 135.238 75.3329 +93.3871 138.501 77.151 +92.8 140.418 78.2187 +92.8218 143.326 79.8382 +93.1804 146.855 81.8042 +93.1891 149.94 83.5225 +93.0493 152.881 85.161 +93.1347 156.297 87.0637 +92.7957 159.103 88.6268 +92.5414 162.149 90.3237 +92.3648 165.44 92.1568 +92.2155 168.898 94.0829 +92.5111 173.316 96.5439 +92.3937 177.114 98.6597 +91.1904 178.929 99.671 +90.0774 180.98 100.813 +88.2662 181.659 101.192 +92.1502 194.351 108.262 +91.7412 198.367 110.499 +90.2326 200.116 111.473 +88.0868 200.47 111.67 +85.6607 200.152 111.493 +83.8633 201.29 112.127 +81.3154 200.603 111.744 +79.1456 200.804 111.856 +76.5973 199.99 111.403 +74.5658 200.484 111.678 +72.0792 199.712 111.248 +70.2569 200.755 111.829 +67.7093 199.691 111.236 +65.7946 200.451 111.66 +63.3355 199.514 111.138 +61.5731 200.749 111.826 +59.0396 199.435 111.093 +57.1903 200.386 111.623 +54.8363 199.54 111.152 +53.1334 201.057 111.997 +50.6685 199.663 111.221 +48.7137 200.213 111.527 +46.5325 199.806 111.3 +44.5539 200.239 111.541 +42.388 199.798 111.296 +40.3732 200.028 111.424 +38.3075 199.983 111.399 +36.4336 200.958 111.942 +34.1883 199.845 111.322 +32.2882 200.704 111.8 +30.008 199.124 110.92 +28.1396 200.212 111.526 +26.0254 199.551 111.158 +24.1356 200.61 111.748 +22.0062 199.656 111.217 +20.0284 199.991 111.403 +17.8887 198.568 110.611 +15.9533 199.307 111.022 +13.9435 199.159 110.94 +11.9797 199.694 111.238 +9.93213 198.73 110.701 +7.98849 199.847 111.323 +5.95787 198.765 110.72 +3.9966 200.025 111.422 +1.98965 199.174 110.948 +1.86517e-14 199.706 111.245 +-1.98616 198.825 110.754 +-4.00009 200.2 111.52 +-5.96311 198.939 110.817 +-7.99547 200.021 111.42 +-9.94958 199.08 110.896 +-11.9902 199.869 111.335 +-13.9313 198.985 110.843 +-15.9882 199.743 111.265 +-17.8965 198.655 110.659 +-19.9674 199.381 111.064 +-21.8528 198.265 110.442 +-24.0206 199.655 111.216 +-25.9349 198.856 110.771 +-28.0299 199.432 111.092 +-29.9036 198.431 110.534 +-32.1212 199.666 111.222 +-33.9962 198.723 110.697 +-36.1207 199.232 110.98 +-37.9114 197.915 110.247 +-40.0433 198.393 110.513 +-41.9142 197.565 110.052 +-44.2104 198.696 110.682 +-46.0341 197.666 110.108 +-48.3395 198.675 110.67 +-50.1707 197.701 110.128 +-52.3461 198.078 110.337 +-54.3694 197.841 110.206 +-56.5855 198.267 110.443 +-58.5889 197.913 110.246 +-60.9519 198.724 110.698 +-63.0148 198.504 110.575 +-65.1882 198.604 110.63 +-67.2548 198.351 110.49 +-69.6429 199 110.851 +-71.5078 198.129 110.366 +-73.8551 198.573 110.613 +-75.6772 197.588 110.064 +-78.2991 198.655 110.659 +-80.147 197.721 110.139 +-82.7347 198.581 110.618 +-84.7152 197.942 110.262 +-87.2984 198.675 110.67 +-89.2797 198.003 110.296 +-91.8535 198.61 110.634 +-93.7192 197.66 110.105 +-96.3543 198.305 110.464 +-98.3714 197.644 110.096 +-101.074 198.322 110.474 +-102.968 197.385 109.952 +-105.781 198.177 110.392 +-107.8 197.441 109.983 +-110.864 198.575 110.614 +-112.754 197.566 110.052 +-115.631 198.255 110.436 +-117.515 197.211 109.855 +-120.419 197.851 110.211 +-122.344 196.849 109.653 +-125.614 197.971 110.278 +-127.538 196.93 109.698 +-130.75 197.842 110.206 +-134.345 199.246 110.988 +-138.957 202.034 112.541 +-141.597 201.86 112.444 +-143.343 200.403 111.632 +-143.405 196.65 109.542 +-143.295 192.765 107.378 +-142.841 188.533 105.021 +-142.986 185.191 103.159 +-148.568 188.846 105.195 +-148.327 185.059 103.085 +-515.664 631.56 351.805 +-516.487 621.032 345.94 +-520.708 614.753 342.443 +-520.51 603.434 336.138 +-524.509 597.156 332.64 +-524.79 586.801 326.872 +-528.141 580.044 323.108 +-529.447 571.175 318.168 +-532.906 564.757 314.593 +-533.642 555.587 309.485 +-537.223 549.505 306.097 +-537.968 540.641 301.159 +-549.047 542.147 301.998 +-552.501 536.058 298.606 +-566.55 540.134 300.877 +-565.445 529.724 295.078 +-569.82 524.57 292.207 +-569.898 515.555 287.185 +-574.115 510.381 284.303 +-574.383 501.784 279.514 +-578.161 496.345 276.485 +-578.637 488.156 271.923 +-582.693 483.065 269.087 +-582.596 474.613 264.379 +-591.518 473.517 263.768 +-590.206 464.255 258.609 +-591.525 457.19 254.674 +-590.56 448.48 249.821 +-576.084 429.833 239.435 +-576.065 422.28 235.227 +-580.03 417.706 232.679 +-580.062 410.354 228.584 +-584.139 405.917 226.112 +-584.31 398.812 222.155 +-587.795 394.023 219.487 +-587.876 387.004 215.577 +-592.443 382.975 213.333 +-592.848 376.287 209.607 +-596.014 371.399 206.884 +-596.588 364.937 203.285 +-600.211 360.375 200.743 +-600.638 353.928 197.153 +-604.15 349.336 194.594 +-604.765 343.099 191.12 +-608.76 338.804 188.728 +-609.492 332.715 185.336 +-612.451 327.874 182.639 +-613.475 322.022 179.38 +-616.323 317.156 176.669 +-381.831 192.586 107.279 +-381.912 188.764 105.149 +-381.247 184.618 102.84 +-381.319 180.87 100.752 +-377.195 175.209 97.5984 +-378.754 172.246 95.9482 +-381.529 169.828 94.6012 +-382.405 166.562 92.7817 +-382.077 162.798 90.6853 +-382.064 159.202 88.6818 +-133.771 54.4942 30.3555 +-136.858 54.4867 30.3513 +-382.319 148.704 82.8344 +-382.231 145.192 80.8781 +-381.365 141.419 78.7763 +-383.78 138.874 77.3588 +-633.359 223.55 124.527 +-382.402 131.593 73.3027 +-382.488 128.265 71.4491 +-382.912 125.07 69.669 +-381.609 121.339 67.5906 +-379.036 117.259 65.318 +-376.695 113.312 63.1194 +-376.959 110.187 61.3787 +-378.33 107.39 59.8205 +-378.816 104.343 58.1236 +-380.896 101.733 56.6695 +-378.542 97.9565 54.5658 +-375.757 94.1284 52.4334 +-377.069 91.353 50.8873 +-376.711 88.1809 49.1204 +-380.676 86.006 47.9088 +-380.55 82.8893 46.1727 +-380.197 79.7402 44.4186 +-380.979 76.8388 42.8024 +-381.048 73.7991 41.1091 +-382.456 71.0185 39.5602 +-380.799 67.6821 37.7017 +-380.577 64.6264 35.9995 +-380.815 61.6589 34.3465 +-380.431 58.6017 32.6436 +-381.693 55.8002 31.083 +-380.161 52.6012 29.301 +-380.87 49.7269 27.6999 +-381.154 46.7971 26.0679 +-380.814 43.7983 24.3975 +-380.84 40.8509 22.7556 +-381.83 38.0053 21.1705 +-380.604 34.9469 19.4668 +-380.042 31.9686 17.8078 +-380.048 29.0473 16.1805 +-380.125 26.1352 14.5584 +-381.269 23.2911 12.9741 +-380.19 20.3143 11.3159 +-380.078 17.4014 9.69332 +-379.638 14.4804 8.06616 +-380.468 11.6069 6.46552 +-380.57 8.70597 4.84958 +-145.678 2.22142 1.23742 +-146.594 1.11761 0.622556 +96.4 3.55271e-15 -1.7053e-13 +96.5963 0.740106 0.403564 +96.5853 1.48015 0.807096 +96.5669 2.22009 1.21057 +96.5412 2.95986 1.61395 +96.608 3.70323 2.01929 +96.4676 4.43866 2.42031 +96.5196 5.18294 2.82615 +96.3647 5.91612 3.22593 +96.4019 6.66108 3.63214 +96.332 7.39942 4.03474 +97.1507 8.21292 4.47833 +97.0653 8.95695 4.88404 +96.9726 9.70023 5.28933 +96.8725 10.4428 5.69424 +96.765 11.1847 6.09877 +96.5511 11.9134 6.49612 +96.429 12.6526 6.89922 +96.1021 13.3635 7.28685 +95.9656 14.0993 7.68802 +95.7233 14.8187 8.08035 +95.5724 15.5516 8.47995 +96.2976 16.434 8.96112 +96.0326 17.1537 9.35354 +95.9563 17.907 9.76429 +95.7746 18.6415 10.1648 +95.5857 19.3746 10.5645 +96.3619 20.3111 11.0752 +96.1563 21.0487 11.4774 +96.0402 21.8065 11.8906 +95.7232 22.5188 12.279 +96.363 23.4624 12.7936 +96.1262 24.1998 13.1957 +95.7861 24.9105 13.5831 +96.3955 25.8745 14.1088 +96.1347 26.6119 14.5109 +95.8665 27.3475 14.912 +96.4445 28.3317 15.4487 +96.1592 29.0695 15.851 +96.5265 30.0103 16.364 +96.2245 30.7487 16.7666 +96.8519 31.7922 17.3356 +96.1588 32.4072 17.671 +97.0426 33.561 18.3001 +96.7053 34.3032 18.7048 +96.453 35.0765 19.1264 +96.8371 36.0885 19.6783 +96.5664 36.8641 20.1012 +96.379 37.6739 20.5428 +96.0009 38.4109 20.9446 +96.5218 39.5159 21.5472 +96.1253 40.254 21.9496 +96.5305 41.3353 22.5393 +96.116 42.0733 22.9417 +96.3178 43.0871 23.4945 +95.8859 43.8234 23.896 +96.2413 44.9273 24.4979 +96.4941 45.9981 25.0818 +95.8583 46.6505 25.4375 +96.1743 47.7723 26.0492 +95.869 48.5951 26.4979 +96.1578 49.7288 27.1161 +96.1742 50.735 27.6647 +95.581 51.424 28.0404 +95.8294 52.5731 28.667 +95.8936 53.6355 29.2463 +96.1116 54.7984 29.8804 +95.4799 55.4843 30.2544 +95.6709 56.6556 30.8931 +95.8459 57.8339 31.5356 +95.2674 58.566 31.9348 +95.3329 59.7016 32.554 +95.3831 60.8426 33.1762 +95.4982 62.041 33.8296 +95.5967 63.2459 34.4866 +94.9644 63.9758 34.8847 +95.4281 65.4577 35.6927 +95.0086 66.3504 36.1794 +95.589 67.9598 37.057 +95.5271 69.1363 37.6986 +95.5257 70.3734 38.3731 +95.3549 71.5018 38.9884 +95.3953 72.8057 39.6994 +95.2672 73.9992 40.3502 +95.2712 75.3136 41.0669 +95.1088 76.5152 41.7221 +95.076 77.8398 42.4444 +94.879 79.0487 43.1036 +95.3125 80.8094 44.0637 +95.1476 82.0904 44.7622 +94.9644 83.375 45.4626 +95.1835 85.0387 46.3698 +95.0987 86.4594 47.1445 +94.8553 87.7579 47.8525 +94.5932 89.0594 48.5622 +94.988 91.0103 49.626 +94.5482 92.1911 50.2699 +94.9535 94.2271 51.38 +94.6037 95.5476 52.1001 +93.3906 96.0015 52.3476 +91.8543 96.1086 52.406 +89.369 95.1823 51.9009 +88.9859 96.4773 52.607 +88.2103 97.3623 53.0896 +88.6553 99.6257 54.3238 +88.3313 101.067 55.1099 +88.2261 102.792 56.0501 +88.2122 104.663 57.0707 +88.2266 106.613 58.134 +88.2088 108.572 59.2021 +88.5028 110.97 60.5095 +88.1895 112.656 61.4291 +87.6814 114.129 62.232 +87.8132 116.48 63.514 +87.7958 118.695 64.7219 +87.9559 121.214 66.0953 +88.0726 123.745 67.4755 +93.475 133.921 73.0245 +93.0159 135.912 74.1098 +93.2856 139.04 75.8155 +93.45 142.107 77.4878 +93.265 144.727 78.9168 +92.8895 147.126 80.2247 +93.1891 150.687 82.1664 +92.5328 152.791 83.3135 +92.7653 156.453 85.3103 +92.7957 159.896 87.1879 +92.5414 162.957 88.8572 +92.3648 166.265 90.6606 +92.5599 170.373 92.9011 +92.3844 173.941 94.8461 +92.1448 177.517 96.7965 +90.4582 178.378 97.2657 +89.3597 180.432 98.3859 +87.4847 180.949 98.6674 +92.1119 195.239 106.46 +91.9285 199.763 108.927 +89.4263 199.316 108.683 +87.5851 200.322 109.231 +85.0654 199.752 108.92 +83.0425 200.313 109.226 +80.2472 198.955 108.486 +78.5922 200.393 109.27 +76.0579 199.572 108.822 +74.0714 200.147 109.136 +71.6281 199.451 108.756 +69.7599 200.328 109.234 +67.2832 199.423 108.741 +65.3261 200.016 109.065 +63.1217 199.833 108.964 +61.1331 200.308 109.224 +58.7642 199.494 108.78 +56.6339 199.425 108.742 +54.4628 199.169 108.603 +52.706 200.434 109.292 +50.3006 199.201 108.62 +48.3187 199.58 108.827 +46.1337 199.082 108.555 +44.1723 199.514 108.791 +42.0782 199.327 108.689 +40.2864 200.592 109.379 +37.9609 199.162 108.599 +36.152 200.399 109.273 +33.9223 199.279 108.662 +32.0376 200.14 109.132 +29.7861 198.637 108.312 +27.9203 199.641 108.86 +25.7651 198.539 108.259 +23.9684 200.214 109.172 +21.7857 198.642 108.315 +19.7931 198.626 108.307 +17.7396 197.895 107.908 +15.8696 199.25 108.647 +13.8458 198.75 108.374 +11.8803 199.024 108.524 +9.85362 198.142 108.043 +7.9187 199.088 108.559 +5.92646 198.702 108.348 +3.9617 199.266 108.656 +1.97394 198.587 108.285 +1.86517e-14 199.648 108.864 +-1.97481 198.675 108.333 +-3.95995 199.178 108.608 +-5.92384 198.614 108.3 +-7.91521 199 108.511 +-9.85798 198.23 108.091 +-11.8907 199.2 108.619 +-13.8153 198.312 108.135 +-15.8487 198.987 108.503 +-17.8024 198.596 108.29 +-19.8018 198.713 108.354 +-21.7666 198.466 108.22 +-23.8116 198.904 108.458 +-25.6971 198.016 107.974 +-27.7862 198.683 108.338 +-29.773 198.55 108.265 +-31.7454 198.314 108.136 +-33.7005 197.977 107.952 +-35.8391 198.664 108.327 +-37.6143 197.343 107.607 +-39.7481 197.912 107.917 +-41.6955 197.514 107.7 +-43.8479 198.049 107.992 +-45.8148 197.705 107.804 +-48.0276 198.377 108.171 +-49.7811 197.144 107.499 +-51.9862 197.696 107.8 +-53.9259 197.205 107.532 +-56.3678 198.488 108.232 +-58.3135 197.964 107.946 +-60.5378 198.358 108.16 +-62.5338 197.971 107.95 +-64.7197 198.159 108.052 +-66.7152 197.74 107.824 +-69.029 198.229 108.09 +-70.9064 197.441 107.66 +-73.4842 198.56 108.271 +-75.4233 197.907 107.915 +-77.648 197.985 107.957 +-79.9134 198.128 108.035 +-82.1532 198.168 108.057 +-84.1198 197.531 107.71 +-86.7609 198.437 108.203 +-88.6933 197.682 107.792 +-91.1043 197.972 107.95 +-93.0303 197.186 107.521 +-95.7291 198.001 107.966 +-97.7334 197.34 107.605 +-100.586 198.349 108.155 +-102.305 197.091 107.469 +-105.105 197.891 107.906 +-106.982 196.919 107.376 +-109.68 197.434 107.657 +-112.04 197.294 107.58 +-114.86 197.914 107.918 +-117.146 197.572 107.732 +-119.574 197.442 107.661 +-121.532 196.518 107.157 +-124.645 197.423 107.65 +-126.651 196.536 107.167 +-129.5 196.927 107.38 +-132.163 196.986 107.412 +-137.876 201.46 109.852 +-140.448 201.22 109.721 +-143.449 201.551 109.901 +-143.19 197.334 107.602 +-143.458 193.947 105.755 +-143.614 190.497 103.874 +-146.341 190.481 103.865 +-149.531 191.017 104.158 +-1879.32 2356.4 1284.9 +-519.032 638.853 348.353 +-519.837 628.176 342.531 +-523.622 621.276 338.768 +-523.88 610.369 332.821 +-527.857 603.964 329.329 +-528.299 593.67 323.716 +-532.25 587.47 320.335 +-532.783 577.638 314.974 +-535.896 570.757 311.222 +-536.985 561.854 306.367 +-541.38 556.516 303.457 +-544.857 550.293 300.063 +-565.414 561.09 305.951 +-570.233 556.019 303.186 +-570.333 546.451 297.968 +-571.787 538.336 293.543 +-573.468 530.559 289.303 +-573.579 521.472 284.348 +-577.339 515.805 281.258 +-577.636 507.142 276.534 +-581.228 501.466 273.439 +-582.809 494.127 269.437 +-586.03 488.253 266.234 +-592.835 485.361 264.657 +-591.96 476.233 259.68 +-593.475 469.154 255.82 +-576.846 448.067 244.321 +-575.919 439.541 239.673 +-578.745 433.971 236.635 +-579.053 426.586 232.608 +-583.271 422.134 230.181 +-583.481 414.831 226.199 +-586.643 409.689 223.395 +-588.171 403.449 219.992 +-590.969 398.125 217.089 +-591.949 391.627 213.546 +-594.854 386.451 210.724 +-595.517 379.866 207.133 +-599.026 375.136 204.554 +-599.701 368.669 201.027 +-602.601 363.613 198.27 +-603.788 357.558 194.969 +-607.569 353.064 192.518 +-607.868 346.578 188.982 +-611.037 341.767 186.358 +-611.867 335.677 183.037 +-615.691 331.251 180.624 +-615.703 324.803 177.108 +-619.684 320.475 174.748 +-384.082 194.688 106.159 +-381.39 189.446 103.301 +-380.984 185.41 101.1 +-380.616 181.437 98.9336 +-378.343 176.618 96.3063 +-377.955 172.74 94.1912 +-380.46 170.196 92.8043 +-382.674 167.51 91.3394 +-381.538 163.379 89.087 +-381.703 159.844 87.1596 +-2969.52 1215.72 662.907 +-135.675 54.285 29.6005 +-381.405 149.089 81.2951 +-381.405 145.601 79.3931 +-381.641 142.227 77.5533 +-381.747 138.827 75.6997 +-653.479 231.802 126.397 +-630.73 218.13 118.942 +-381.461 128.559 70.1004 +-381.788 125.324 68.3368 +-381.703 121.974 66.5099 +-380.073 118.166 64.4332 +-377.546 114.134 62.2348 +-377.148 110.792 60.4123 +-377.284 107.627 58.6865 +-657.206 181.927 99.2012 +-659.276 176.963 96.4939 +-375.761 97.7223 53.2859 +-377.487 95.0331 51.8195 +-376.49 91.6678 49.9845 +-376.808 88.6433 48.3353 +-381.547 86.6326 47.2389 +-380.938 83.3874 45.4694 +-381.169 80.3427 43.8092 +-381.563 77.3402 42.172 +-380.267 74.0149 40.3587 +-381.478 71.1899 38.8184 +-382.269 68.282 37.2327 +-381.068 65.0324 35.4608 +-381.208 62.0303 33.8238 +-381.121 59.0005 32.1717 +-381.002 55.9769 30.523 +-381.544 53.0557 28.9301 +-379.485 49.7931 27.1511 +-379.966 46.8837 25.5647 +-381.012 44.0395 24.0138 +-381.237 41.0973 22.4095 +-379.743 37.9861 20.713 +-381.001 35.1578 19.1708 +-380.64 32.1785 17.5462 +-381.642 29.3146 15.9846 +-380.623 26.2999 14.3408 +-381.169 23.4011 12.7601 +-381.687 20.496 11.176 +-381.277 17.5433 9.566 +-380.837 14.5985 7.96023 +-380.368 11.6617 6.35887 +-379.67 8.72868 4.75957 +-145.978 2.23709 1.21984 +-146.294 1.12088 0.611194 +96.4 3.55271e-15 -1.7053e-13 +96.5963 0.743716 0.396871 +96.5853 1.48737 0.79371 +96.5669 2.23092 1.19049 +96.5412 2.9743 1.58718 +96.5081 3.71745 1.98375 +96.4676 4.46031 2.38017 +96.5196 5.20823 2.77928 +96.3647 5.94498 3.17243 +96.3022 6.68666 3.56821 +96.2324 7.42782 3.96372 +96.2548 8.17688 4.36344 +97.0653 9.00065 4.80303 +96.0784 9.65774 5.15368 +96.8725 10.4938 5.5998 +96.765 11.2393 5.99762 +96.6502 11.9838 6.39493 +96.429 12.7144 6.78479 +96.2996 13.4563 7.18073 +95.9656 14.168 7.56052 +95.7233 14.891 7.94633 +95.5724 15.6274 8.3393 +96.2976 16.5142 8.8125 +96.1306 17.2549 9.20777 +95.9563 17.9943 9.60235 +95.7746 18.7324 9.99621 +95.6831 19.4889 10.3999 +95.3895 20.2043 10.7816 +96.1563 21.1513 11.287 +96.0402 21.9129 11.6934 +96.6892 22.857 12.1972 +96.363 23.5769 12.5814 +96.1262 24.3179 12.9768 +95.882 25.057 13.3712 +96.3955 26.0007 13.8748 +96.1347 26.7418 14.2703 +95.8665 27.4809 14.6647 +96.4445 28.4699 15.1925 +95.9701 29.1539 15.5575 +96.5265 30.1567 16.0926 +96.1306 30.8686 16.4724 +96.8519 31.9473 17.0481 +96.5322 32.6917 17.4453 +96.2052 33.4337 17.8413 +96.7053 34.4706 18.3946 +96.1759 35.1462 18.7551 +96.0087 35.9543 19.1864 +96.5664 37.0439 19.7678 +96.1963 37.786 20.1638 +96.0009 38.5982 20.5973 +96.5218 39.7087 21.1898 +95.9448 40.3744 21.5451 +96.3507 41.4596 22.1242 +96.116 42.2785 22.5612 +96.3178 43.2973 23.1048 +96.5955 44.3631 23.6736 +96.2413 45.1465 24.0916 +96.582 46.2646 24.6883 +96.0332 46.9637 25.0613 +96.3484 48.0922 25.6636 +95.869 48.8322 26.0584 +95.21 49.4789 26.4035 +96.1742 50.9825 27.2059 +95.581 51.6749 27.5753 +95.8294 52.8295 28.1915 +96.0623 53.9919 28.8118 +96.0278 55.0178 29.3592 +95.5633 55.8037 29.7786 +95.6709 56.932 30.3807 +95.8459 58.116 31.0126 +95.9227 59.2566 31.6212 +95.3329 59.9928 32.0141 +95.3831 61.1394 32.6259 +95.4982 62.3437 33.2686 +95.5967 63.5544 33.9147 +95.5197 64.664 34.5067 +95.5069 65.8314 35.1297 +95.4782 67.0036 35.7552 +94.8895 67.7916 36.1758 +95.5271 69.4736 37.0733 +95.4491 70.66 37.7064 +95.4309 71.9079 38.3723 +95.3953 73.1608 39.041 +94.7429 73.9509 39.4625 +95.1969 75.622 40.3543 +95.1088 76.8885 41.0301 +95.6611 78.7009 41.9973 +94.879 79.4344 42.3887 +95.2406 81.1424 43.3002 +95.1476 82.4909 44.0198 +94.9644 83.7817 44.7086 +95.3237 85.5795 45.6679 +95.0987 86.8812 46.3626 +94.8553 88.1861 47.0589 +94.5932 89.4939 47.7568 +94.8529 91.3246 48.7337 +95.0835 93.1658 49.7162 +94.4896 94.2245 50.2812 +94.7349 96.1469 51.307 +91.832 94.8597 50.6202 +90.6973 95.3608 50.8876 +88.9873 95.2382 50.8221 +88.7342 96.6745 51.5886 +88.7083 98.3896 52.5038 +88.2859 99.6944 53.2001 +88.2095 101.42 54.121 +88.2261 103.293 55.1205 +88.5691 105.599 56.3511 +88.9319 107.99 57.627 +88.1507 109.03 58.182 +88.2161 111.15 59.3134 +88.6426 113.788 60.721 +88.0729 115.197 61.4729 +88.0339 117.343 62.6179 +88.1226 119.718 63.8852 +87.8485 121.657 64.92 +88.3905 124.797 66.5956 +93.057 133.973 71.4923 +93.0674 136.651 72.9212 +93.2348 139.642 74.5176 +93.35 142.647 76.1211 +92.9203 144.896 77.3212 +92.8895 147.844 78.8941 +93.1891 151.422 80.8037 +93.0023 154.315 82.3474 +92.7191 157.138 83.8539 +92.8865 160.833 85.8256 +92.8091 164.226 87.6363 +92.4525 167.235 89.2417 +92.1724 170.488 90.978 +92.3844 174.789 93.2731 +91.7716 177.661 94.8055 +90.6209 179.57 95.8243 +88.921 180.422 96.2791 +87.7191 182.318 97.2908 +92.0354 196.028 104.607 +91.2167 199.183 106.291 +89.3163 200.043 106.749 +86.9759 199.899 106.672 +84.7852 200.065 106.761 +82.5295 200.047 106.751 +80.0469 199.427 106.42 +78.0712 200.035 106.745 +75.8358 199.96 106.705 +73.7315 200.2 106.833 +71.2372 199.331 106.369 +69.2921 199.955 106.702 +67.0844 199.804 106.622 +65.0504 200.144 106.803 +62.5338 198.937 106.159 +60.8484 200.348 106.912 +58.3636 199.1 106.246 +56.3678 199.457 106.436 +54.206 199.196 106.298 +52.2336 199.607 106.517 +50.1058 199.399 106.405 +48.1316 199.776 106.607 +45.9742 199.361 106.386 +44.0578 199.968 106.709 +41.8777 199.345 106.377 +39.9391 199.833 106.637 +37.8289 199.437 106.426 +35.8704 199.808 106.624 +33.7597 199.291 106.348 +31.7871 199.543 106.483 +29.7078 199.081 106.236 +27.7253 199.214 106.307 +25.7537 199.421 106.417 +23.7698 199.523 106.472 +21.7282 199.084 106.237 +19.7844 199.507 106.463 +17.7318 198.772 106.071 +15.6952 198.021 105.67 +13.7542 198.399 105.872 +11.7808 198.321 105.831 +9.81436 198.316 105.828 +7.85937 198.56 105.958 +5.91075 199.143 106.269 +3.94075 199.181 106.289 +1.9626 198.409 105.877 +1.95399e-14 198.593 105.976 +-1.96434 198.585 105.971 +-3.93552 198.916 106.148 +-5.90028 198.79 106.081 +-7.86635 198.737 106.052 +-9.78383 197.699 105.499 +-11.8018 198.673 106.018 +-13.7664 198.575 105.966 +-15.7371 198.549 105.952 +-17.6847 198.245 105.79 +-19.6972 198.628 105.994 +-21.6803 198.645 106.003 +-23.6548 198.558 105.957 +-25.5839 198.105 105.715 +-27.6643 198.777 106.073 +-29.4728 197.506 105.396 +-31.5784 198.233 105.783 +-33.5527 198.07 105.696 +-35.5106 197.803 105.554 +-37.4493 197.436 105.358 +-39.5744 198.009 105.664 +-41.3492 196.829 105.034 +-43.4854 197.369 105.323 +-45.4758 197.2 105.232 +-47.6326 197.705 105.502 +-49.5863 197.331 105.302 +-51.7837 197.887 105.599 +-53.7625 197.567 105.428 +-55.884 197.744 105.523 +-57.8879 197.478 105.38 +-60.1237 197.962 105.639 +-61.9993 197.236 105.251 +-64.1959 197.515 105.4 +-66.4028 197.774 105.539 +-68.6781 198.184 105.757 +-70.726 197.9 105.606 +-72.9589 198.103 105.714 +-75.106 198.035 105.678 +-77.3876 198.284 105.811 +-79.3459 197.681 105.489 +-81.7086 198.058 105.69 +-83.5945 197.256 105.262 +-86.1517 198.005 105.662 +-87.9969 197.087 105.172 +-90.5799 197.793 105.549 +-92.8007 197.659 105.477 +-95.3775 198.236 105.785 +-97.2948 197.413 105.346 +-99.9352 198.027 105.673 +-101.932 197.33 105.301 +-104.429 197.578 105.434 +-106.25 196.527 104.873 +-109.023 197.208 105.236 +-111.237 196.835 105.037 +-113.952 197.308 105.29 +-116.314 197.127 105.193 +-119.058 197.548 105.418 +-121.103 196.779 105.008 +-123.82 197.074 105.165 +-126.159 196.727 104.98 +-128.9 196.971 105.11 +-130.894 196.047 104.617 +-137.515 201.914 107.748 +-139.716 201.148 107.339 +-142.389 201.038 107.28 +-143.19 198.297 105.817 +-142.913 194.153 103.606 +-142.952 190.543 101.68 +-144.999 189.655 101.206 +-148.965 191.222 102.042 +-1879.32 2367.9 1263.59 +-521.123 644.556 343.955 +-522.482 634.452 338.564 +-525.526 626.576 334.361 +-526.648 616.588 329.031 +-530.414 609.85 325.435 +-531.008 599.625 319.979 +-534.491 592.821 316.348 +-535.048 582.924 311.067 +-538.313 576.128 307.44 +-540.006 567.771 302.981 +-547.16 565.202 301.61 +-559.487 567.826 303.01 +-569.124 567.528 302.851 +-570.701 559.191 298.402 +-576.278 554.841 296.081 +-575.675 544.641 290.638 +-577.185 536.603 286.349 +-576.428 526.618 281.02 +-579.512 520.272 277.634 +-580.393 512.048 273.245 +-583.082 505.519 269.761 +-584.607 498.07 265.786 +-595.968 498.955 266.258 +-597.223 491.339 262.194 +-588.79 475.993 254.005 +-581.214 461.702 246.379 +-577.07 450.429 240.363 +-578.409 443.596 236.717 +-580.95 437.75 233.597 +-581.734 430.652 229.81 +-584.583 425.147 226.872 +-585.346 418.187 223.158 +-588.756 413.171 220.481 +-590.456 406.992 217.184 +-592.873 401.356 214.177 +-594.185 395.025 210.798 +-597.346 389.963 208.097 +-598.187 383.43 204.611 +-601.224 378.349 201.899 +-601.995 371.884 198.449 +-605.65 367.236 195.969 +-606.192 360.734 192.499 +-608.903 355.565 189.741 +-610.049 349.518 186.514 +-612.977 344.524 183.849 +-614.411 338.717 180.75 +-616.97 333.559 177.998 +-618.961 328.114 175.092 +-621.321 322.889 172.304 +-622.845 317.255 169.297 +-381.738 190.544 101.681 +-381.859 186.743 99.6519 +-381.407 182.701 97.4952 +-381.257 178.847 95.4383 +-376.536 172.93 92.2811 +-379.925 170.786 91.1371 +-382.853 168.405 89.8664 +-382.796 164.717 87.898 +-382.335 160.89 85.8562 +-381.737 157.046 83.8045 +-135.675 54.5498 29.1095 +-382.776 150.355 80.234 +-381.13 146.205 78.0199 +-381.365 142.818 76.212 +-381.285 139.335 74.3538 +-384.596 137.089 73.1552 +-635.661 220.908 117.884 +-380.994 129.028 68.8535 +-382.631 126.214 67.3517 +-383.489 123.142 65.7124 +-381.298 119.125 63.5689 +-377.451 114.663 61.1876 +-376.959 111.276 59.3807 +-377.474 108.206 57.7423 +-659.4 183.425 97.8817 +-660.711 178.213 95.1002 +-377.2 98.5748 52.6027 +-376.622 95.2779 50.8433 +-376.683 92.1618 49.1805 +-377.967 89.3501 47.6801 +-381.741 87.0993 46.479 +-380.938 83.7942 44.7152 +-381.655 80.8376 43.1375 +-381.271 77.658 41.4408 +-381.732 74.6624 39.8422 +-381.869 71.6106 38.2137 +-381.681 68.5096 36.5589 +-380.871 65.3159 34.8547 +-381.503 62.3811 33.2886 +-381.81 59.3956 31.6954 +-381.397 56.3082 30.0479 +-379.766 53.0662 28.3178 +-380.87 50.2185 26.7982 +-380.362 47.1616 25.1669 +-381.31 44.289 23.634 +-380.542 41.2226 21.9977 +-380.24 38.2214 20.3961 +-380.106 35.2463 18.8086 +-380.739 32.3439 17.2598 +-381.642 29.4576 15.7195 +-380.623 26.4282 14.1029 +-380.87 23.4968 12.5386 +-380.788 20.5475 10.9648 +-380.977 17.6151 9.39995 +-380.837 14.6697 7.82821 +-380.368 11.7186 6.25341 +-380.27 8.78513 4.68802 +-146.178 2.25108 1.20125 +-146.094 1.12482 0.600238 +96.6 3.55271e-15 -1.7053e-13 +96.3963 0.74572 0.389338 +96.3853 1.49138 0.778645 +96.5669 2.24157 1.17032 +96.5412 2.9885 1.56028 +96.5081 3.73519 1.95013 +96.5675 4.48625 2.34226 +96.5196 5.23309 2.73218 +96.3647 5.97336 3.11867 +96.3022 6.71857 3.50774 +96.2324 7.46328 3.89655 +96.2548 8.21591 4.2895 +97.0653 9.04361 4.72164 +96.0784 9.70384 5.06634 +96.8725 10.5438 5.50491 +95.8727 11.1887 5.8416 +96.5511 12.0287 6.28012 +96.429 12.7751 6.66981 +96.2996 13.5206 7.05904 +95.9656 14.2357 7.43239 +95.8218 14.9775 7.81972 +95.4741 15.6859 8.18956 +95.4142 16.4407 8.58364 +96.0326 17.3196 9.04252 +95.9563 18.0802 9.43962 +95.7746 18.8218 9.82681 +95.5857 19.562 10.2133 +96.3619 20.5076 10.7069 +96.1563 21.2523 11.0958 +95.9434 21.9953 11.4837 +95.7232 22.7367 11.8707 +96.363 23.6894 12.3682 +96.1262 24.434 12.7569 +95.882 25.1766 13.1446 +96.3955 26.1248 13.6397 +96.1347 26.8694 14.0284 +95.8665 27.6121 14.4162 +96.4445 28.6058 14.935 +95.9701 29.2931 15.2938 +96.5265 30.3006 15.8198 +96.2245 31.0462 16.2091 +96.8519 32.0998 16.7592 +96.1588 32.7207 17.0834 +95.833 33.4633 17.4711 +96.798 34.6683 18.1002 +96.1759 35.314 18.4373 +96.653 36.3684 18.9878 +96.5664 37.2207 19.4328 +96.379 38.0384 19.8597 +96.0009 38.7825 20.2482 +96.5218 39.8983 20.8307 +96.1253 40.6434 21.2198 +96.5305 41.7353 21.7898 +96.116 42.4803 22.1788 +96.3178 43.504 22.7133 +95.8859 44.2474 23.1014 +96.2413 45.362 23.6834 +96.582 46.4854 24.2699 +96.0332 47.1879 24.6366 +96.1743 48.2345 25.1831 +96.4752 49.3755 25.7788 +96.1578 50.21 26.2144 +96.0885 51.1802 26.721 +95.581 51.9215 27.108 +95.8294 53.0817 27.7138 +96.0623 54.2496 28.3235 +96.1116 55.3286 28.8869 +95.4799 56.0211 29.2484 +95.6709 57.2037 29.8659 +95.8459 58.3934 30.487 +96.0046 59.5903 31.1119 +95.4143 60.3307 31.4984 +95.3831 61.4312 32.073 +95.4982 62.6412 32.7048 +95.4369 63.7511 33.2842 +95.5197 64.9726 33.922 +95.5069 66.1457 34.5344 +95.5565 67.3786 35.1781 +95.589 68.6173 35.8248 +95.5271 69.8052 36.4451 +95.4491 70.9973 37.0675 +94.7466 71.733 37.4515 +95.3198 73.4519 38.349 +95.2672 74.7151 39.0085 +95.1969 75.983 39.6705 +95.1825 77.3154 40.3661 +95.6611 79.0766 41.2856 +95.4593 80.3017 41.9252 +95.3125 81.5913 42.5985 +95.1476 82.8847 43.2738 +94.8937 84.119 43.9182 +95.3938 86.0512 44.927 +95.0987 87.296 45.5769 +94.9241 88.6712 46.2949 +94.5932 89.9211 46.9475 +94.38 91.3031 47.669 +94.5482 93.0831 48.5983 +94.6221 94.8072 49.4985 +94.5381 96.4055 50.333 +91.7021 95.1778 49.692 +90.1831 95.2726 49.7415 +88.6693 95.3506 49.7822 +88.6712 97.0668 50.6782 +88.7083 98.8592 51.614 +88.2859 100.17 52.2986 +88.3922 102.115 53.314 +88.0455 103.573 54.0753 +88.2717 105.747 55.2101 +88.5205 108.004 56.3884 +88.2668 109.695 57.2715 +88.1587 111.608 58.2703 +88.2461 113.82 59.425 +87.6814 115.233 60.1627 +88.0891 117.977 61.5951 +87.9047 119.991 62.6471 +88.2783 122.835 64.1318 +90.5102 128.4 67.0374 +93.5272 135.293 70.6362 +93.1704 137.455 71.765 +93.2348 140.309 73.2548 +93.45 143.482 74.9112 +92.8218 145.434 75.9303 +92.841 148.472 77.5169 +92.7597 151.444 79.0682 +92.9554 154.974 80.9112 +92.7191 157.888 82.4329 +92.7957 161.443 84.2888 +92.8091 165.01 86.1512 +92.3648 167.873 87.646 +92.6029 172.102 89.8537 +92.3844 175.624 91.6924 +91.4399 177.864 92.862 +90.4989 180.184 94.0736 +88.4824 180.39 94.181 +88.3443 184.494 96.3238 +91.9588 196.8 102.749 +91.4789 200.709 104.79 +88.7666 199.76 104.294 +86.725 200.273 104.562 +84.365 200.023 104.431 +82.1874 200.169 104.507 +79.9467 200.129 104.486 +77.8759 200.488 104.674 +75.5185 200.074 104.458 +73.3915 200.229 104.539 +70.9666 199.521 104.169 +68.9705 199.977 104.407 +66.772 199.824 104.327 +64.7748 200.247 104.548 +62.3734 199.373 104.092 +60.3566 199.678 104.251 +58.3135 199.88 104.356 +56.1017 199.463 104.139 +54.1593 199.975 104.406 +51.9862 199.609 104.215 +49.8677 199.398 104.105 +47.9029 199.776 104.302 +45.8148 199.618 104.22 +43.867 200.052 104.446 +41.7502 199.686 104.256 +39.8002 200.089 104.466 +37.6969 199.69 104.257 +35.714 199.886 104.36 +33.671 199.717 104.271 +31.6619 199.706 104.266 +29.5903 199.24 104.023 +27.6156 199.373 104.092 +25.6405 199.491 104.154 +23.7175 200.035 104.437 +21.7091 199.857 104.345 +19.6972 199.576 104.198 +17.6847 199.191 103.997 +15.7022 199.055 103.926 +13.7481 199.257 104.032 +11.7704 199.091 103.945 +9.77947 198.554 103.665 +7.82098 198.533 103.653 +5.87934 199.03 103.913 +3.92854 199.511 104.164 +1.95474 198.558 103.666 +1.68754e-14 198.92 103.856 +-1.95911 199.001 103.898 +-3.91807 198.979 103.886 +-5.87672 198.941 103.866 +-7.85239 199.331 104.07 +-9.79255 198.819 103.803 +-11.7913 199.444 104.129 +-13.7054 198.638 103.708 +-15.7022 199.055 103.926 +-17.6768 199.102 103.951 +-19.6449 199.046 103.921 +-21.5845 198.71 103.746 +-23.6339 199.329 104.069 +-25.5839 199.051 103.924 +-27.5425 198.845 103.816 +-29.4859 198.537 103.655 +-31.5645 199.092 103.945 +-33.3754 197.963 103.356 +-35.3542 197.873 103.309 +-37.3173 197.679 103.207 +-39.4008 198.081 103.417 +-41.3492 197.769 103.254 +-43.2946 197.441 103.083 +-45.2964 197.359 103.041 +-47.4247 197.781 103.261 +-49.3915 197.494 103.111 +-51.5813 198.054 103.404 +-53.529 197.648 103.191 +-55.6662 197.914 103.33 +-57.8879 198.421 103.595 +-59.9425 198.307 103.535 +-61.9459 198.007 103.379 +-64.1959 198.458 103.614 +-66.1472 197.953 103.351 +-68.415 198.366 103.566 +-70.6358 198.591 103.684 +-72.5881 198.037 103.394 +-74.8204 198.225 103.492 +-77.1271 198.56 103.667 +-79.0455 197.873 103.309 +-81.3666 198.17 103.464 +-83.5945 198.197 103.478 +-85.8291 198.205 103.482 +-87.8503 197.698 103.217 +-90.3176 198.162 103.46 +-92.4563 197.865 103.304 +-95.0258 198.448 103.609 +-97.3745 198.518 103.646 +-99.6098 198.324 103.544 +-101.185 196.82 102.759 +-103.964 197.637 103.186 +-106.207 197.385 103.054 +-108.672 197.512 103.12 +-110.88 197.14 102.926 +-113.588 197.617 103.175 +-115.807 197.203 102.959 +-118.589 197.709 103.223 +-121.151 197.796 103.269 +-123.433 197.394 103.059 +-125.765 197.049 102.879 +-128.55 197.374 103.048 +-130.945 197.059 102.884 +-136.691 201.661 105.287 +-139.716 202.108 105.52 +-141.859 201.245 105.069 +-143.459 199.617 104.219 +-142.968 195.154 101.889 +-143.062 191.601 100.034 +-144.328 189.679 99.0308 +-148.115 191.039 99.7408 +-155.324 196.639 102.664 +-522.807 649.725 339.219 +-523.893 639.202 333.725 +-526.954 631.277 329.588 +-528.454 621.655 324.564 +-531.205 613.675 320.398 +-532.67 604.373 315.541 +-536.11 597.455 311.929 +-537.188 588.049 307.018 +-539.967 580.656 303.159 +-541.356 571.908 298.591 +-546.575 567.294 296.182 +-556.207 567.192 296.129 +-568.064 569.175 297.164 +-571.103 562.255 293.551 +-574.319 555.594 290.073 +-578.403 549.833 287.066 +-577.254 539.23 281.53 +-578.928 531.428 277.457 +-581.194 524.273 273.721 +-582.585 516.435 269.629 +-584.651 509.299 265.903 +-590.866 505.804 264.079 +-594.372 499.994 261.045 +-592.835 490.057 255.857 +-579.279 470.54 245.667 +-576.234 459.932 240.129 +-578.419 453.635 236.841 +-579.466 446.527 233.13 +-582.547 441.049 230.27 +-584.415 434.702 226.957 +-585.972 428.191 223.557 +-587.678 421.857 220.25 +-589.93 415.971 217.177 +-591.402 409.59 213.846 +-594.222 404.19 211.026 +-595.622 397.871 207.727 +-598.07 392.299 204.818 +-599.401 386.042 201.551 +-601.957 380.619 198.72 +-603.469 374.575 195.564 +-606.392 369.441 192.884 +-607.685 363.347 189.702 +-610.238 358.045 186.934 +-611.642 352.104 183.832 +-614.242 346.883 181.106 +-616.107 341.273 178.177 +-618.59 336.031 175.441 +-619.732 330.092 172.34 +-622.958 325.285 169.83 +-623.971 319.345 166.729 +-382.434 191.803 100.14 +-380.984 187.204 97.7387 +-380.264 183.024 95.556 +-381.875 179.991 93.9727 +-377.423 174.165 90.9311 +-380.371 171.803 89.6977 +-382.584 169.091 88.282 +-381.538 164.96 86.1248 +-381.974 161.505 84.3212 +-381.918 157.87 82.4232 +-135.22 54.6264 28.5202 +-383.05 151.18 78.9308 +-380.855 146.797 76.6422 +-382.286 143.846 75.1014 +-381.839 140.204 73.2002 +-383.298 137.278 71.6724 +-635.289 221.833 115.818 +-382.021 129.993 67.869 +-381.788 126.537 66.0645 +-383.019 123.578 64.5196 +-381.864 119.871 62.5842 +-376.978 115.065 60.0752 +-377.433 111.948 58.4475 +-378.045 108.887 56.8494 +-381.773 106.705 55.7104 +-3133.33 849.185 443.356 +-378.638 99.423 51.9084 +-377.295 95.9038 50.071 +-376.78 92.6257 48.3595 +-377.097 89.5701 46.7642 +-380.966 87.3375 45.5986 +-381.811 84.3872 44.0583 +-381.363 81.1614 42.3741 +-381.563 78.0885 40.7697 +-381.341 74.9421 39.127 +-381.869 71.9524 37.5661 +-380.407 68.6068 35.8194 +-381.46 65.7292 34.317 +-380.815 62.5658 32.6654 +-381.121 59.5714 31.102 +-380.706 56.4746 29.4852 +-381.643 53.5829 27.9755 +-380.079 50.3535 26.2894 +-379.966 47.3373 24.7146 +-380.417 44.3962 23.1791 +-379.847 41.3437 21.5854 +-380.041 38.3837 20.04 +-380.604 35.4609 18.514 +-381.336 32.5493 16.9939 +-381.244 29.5673 15.437 +-381.221 26.5961 13.8857 +-380.87 23.609 12.3262 +-380.788 20.6455 10.779 +-380.977 17.6991 9.24066 +-380.238 14.7165 7.68342 +-381.268 11.8024 6.16201 +-379.97 8.8201 4.60494 +-146.578 2.26801 1.18412 +-145.294 1.124 0.586835 +96.4 3.55271e-15 -1.7053e-13 +95.6964 0.743761 0.379816 +96.5853 1.50145 0.766746 +96.367 2.24738 1.14767 +96.5412 3.00245 1.53326 +96.608 3.75652 1.91834 +96.5675 4.5072 2.30169 +96.5196 5.25752 2.68486 +96.3647 6.00125 3.06465 +96.3022 6.74995 3.44699 +96.2324 7.49813 3.82906 +96.2548 8.25428 4.2152 +96.1703 9.00204 4.59706 +96.0784 9.74916 4.97859 +96.8725 10.5931 5.40956 +96.6659 11.334 5.78791 +96.3531 12.06 6.15866 +96.2312 12.8084 6.54087 +96.2996 13.5837 6.93678 +95.9656 14.3021 7.30366 +95.7233 15.032 7.67637 +95.5724 15.7754 8.05599 +96.1995 16.6535 8.50442 +96.0326 17.4005 8.88591 +95.8585 18.1461 9.26666 +95.7746 18.9097 9.65661 +95.5857 19.6534 10.0364 +96.3619 20.6034 10.5215 +96.1563 21.3515 10.9036 +95.9434 22.098 11.2848 +96.496 23.0272 11.7593 +95.4958 23.5859 12.0446 +96.03 24.5236 12.5234 +95.7861 25.2689 12.9041 +96.3955 26.2468 13.4034 +96.1347 26.9949 13.7855 +95.8665 27.741 14.1665 +96.5393 28.7676 14.6907 +96.1592 29.4878 15.0585 +96.5265 30.4421 15.5458 +96.2245 31.1912 15.9284 +95.8216 31.9066 16.2937 +96.1588 32.8735 16.7875 +97.0426 34.0439 17.3852 +96.7053 34.7968 17.7697 +96.3606 35.5471 18.1528 +96.8371 36.6078 18.6945 +96.5664 37.3945 19.0962 +96.379 38.216 19.5157 +96.0009 38.9636 19.8975 +96.5218 40.0846 20.47 +96.1253 40.8332 20.8523 +96.5305 41.9302 21.4124 +96.116 42.6787 21.7947 +96.3178 43.7072 22.3199 +95.8859 44.454 22.7013 +96.153 45.5321 23.2518 +95.7911 46.3201 23.6542 +96.0332 47.4082 24.2099 +96.3484 48.5474 24.7917 +95.6958 49.2053 25.1276 +95.8993 50.3088 25.6911 +96.0885 51.4192 26.2582 +96.3483 52.5827 26.8524 +95.6598 53.2352 27.1856 +95.8936 54.4073 27.7841 +96.1116 55.587 28.3865 +95.4799 56.2827 28.7418 +95.6709 57.4708 29.3486 +95.8459 58.6661 29.959 +95.9227 59.8175 30.5469 +95.4143 60.6124 30.9529 +95.3831 61.7181 31.5175 +95.4982 62.9337 32.1383 +95.4369 64.0488 32.7077 +94.9644 64.8964 33.1406 +95.5069 66.4545 33.9363 +95.5565 67.6932 34.5688 +95.5112 68.8817 35.1757 +95.5271 70.1312 35.8138 +94.8363 70.8709 36.1916 +95.4309 72.5885 37.0687 +95.3953 73.8533 37.7146 +95.3421 75.123 38.363 +95.1225 76.2782 38.9529 +95.1088 77.6163 39.6362 +95.6611 79.4458 40.5705 +94.9515 80.2475 40.9799 +95.3125 81.9722 41.8607 +95.0763 83.2093 42.4924 +94.9644 84.5747 43.1897 +95.3237 86.3895 44.1165 +94.543 87.191 44.5258 +94.9241 89.0852 45.4931 +94.5932 90.341 46.1343 +94.988 92.3199 47.1449 +94.5482 93.5177 47.7566 +94.6884 95.3167 48.6753 +94.0789 96.3846 49.2206 +90.9877 94.8777 48.4511 +89.9903 95.5127 48.7754 +88.9237 96.0711 49.0605 +88.4824 97.3126 49.6945 +88.1481 98.693 50.3995 +88.5321 100.919 51.536 +88.2704 102.45 52.3183 +88.1659 104.2 53.2115 +88.4501 106.456 54.3639 +88.8731 108.94 55.6324 +89.6025 111.875 57.1309 +88.7323 112.859 57.6335 +88.3594 114.498 58.4708 +88.2406 116.509 59.4977 +87.9788 118.379 60.4523 +88.0137 120.701 61.6384 +88.1171 123.183 62.906 +91.3051 130.133 66.4548 +93.5272 135.925 69.4128 +93.1704 138.097 70.522 +93.2348 140.964 71.986 +93.35 143.997 73.5351 +92.8218 146.113 74.6152 +92.841 149.166 76.1743 +92.7597 152.151 77.6988 +93.4248 156.484 79.9114 +92.7191 158.626 81.0051 +92.8865 162.355 82.9098 +92.8091 165.781 84.659 +92.7593 169.378 86.4959 +92.3016 172.342 88.01 +92.8915 177.412 90.5987 +91.5228 178.856 91.3364 +90.7429 181.514 92.6935 +88.3628 180.987 92.4247 +88.8913 186.504 95.2417 +92.0354 197.884 101.053 +90.917 200.409 102.342 +88.7666 200.693 102.488 +86.5817 200.876 102.581 +84.0848 200.29 102.282 +81.9138 200.434 102.355 +79.5462 200.055 102.162 +77.4852 200.413 102.345 +75.2329 200.248 102.261 +73.1134 200.401 102.339 +71.0568 200.707 102.495 +68.9705 200.911 102.599 +66.7436 200.671 102.477 +64.5543 200.497 102.388 +62.32 200.133 102.202 +60.3566 200.61 102.445 +58.3385 200.898 102.593 +56.1259 200.481 102.379 +53.9726 200.216 102.244 +51.8737 200.108 102.189 +49.8244 200.155 102.213 +47.9444 200.883 102.585 +45.7549 200.288 102.281 +43.6953 200.199 102.236 +41.7319 200.531 102.405 +39.6091 200.059 102.164 +37.4988 199.568 101.913 +35.5732 200.027 102.148 +33.6562 200.561 102.42 +31.6619 200.638 102.46 +29.5903 200.171 102.221 +27.6156 200.304 102.289 +25.55 199.715 101.988 +23.5921 199.906 102.086 +21.6324 200.082 102.176 +19.6188 199.71 101.985 +17.6219 199.411 101.833 +15.6464 199.274 101.763 +13.6871 199.299 101.776 +11.7285 199.309 101.781 +9.78383 199.571 101.915 +7.82796 199.638 101.949 +5.8584 199.246 101.749 +3.90934 199.463 101.859 +1.95649 199.663 101.962 +1.86517e-14 199.671 101.966 +-1.95911 199.93 102.098 +-3.92156 200.086 102.178 +-5.87411 199.781 102.022 +-7.82447 199.549 101.904 +-9.78383 199.571 101.915 +-11.7442 199.575 101.917 +-13.6871 199.299 101.776 +-15.7022 199.985 102.126 +-17.6141 199.322 101.788 +-19.6275 199.799 102.031 +-21.5845 199.638 101.949 +-23.5294 199.375 101.814 +-25.482 199.184 101.717 +-27.4572 199.156 101.703 +-29.3814 198.757 101.499 +-31.4253 199.14 101.694 +-33.3901 198.976 101.611 +-35.3385 198.708 101.474 +-37.3008 198.514 101.375 +-39.2619 198.304 101.268 +-41.1852 197.904 101.064 +-43.2946 198.363 101.298 +-45.2565 198.106 101.167 +-47.4247 198.705 101.472 +-49.3699 198.329 101.281 +-51.3563 198.112 101.17 +-53.4823 198.398 101.316 +-55.642 198.752 101.497 +-57.6375 198.485 101.36 +-59.7096 198.459 101.347 +-61.8657 198.674 101.457 +-64.003 198.785 101.513 +-66.1472 198.878 101.561 +-68.1226 198.441 101.338 +-70.3952 198.839 101.541 +-72.5881 198.961 101.603 +-74.4714 198.221 101.226 +-76.769 198.561 101.399 +-79.1122 198.964 101.605 +-81.4008 199.179 101.714 +-83.2443 198.288 101.26 +-85.8291 199.131 101.69 +-87.6671 198.207 101.218 +-90.0929 198.592 101.415 +-92.4563 198.789 101.515 +-94.7132 198.718 101.479 +-96.896 198.465 101.35 +-99.2437 198.518 101.377 +-101.144 197.658 100.938 +-104.049 198.721 101.481 +-105.863 197.664 100.941 +-108.322 197.794 101.007 +-110.88 198.06 101.143 +-113.134 197.747 100.983 +-115.853 198.203 101.216 +-118.682 198.789 101.515 +-120.721 198.016 101.12 +-123.433 198.316 101.274 +-125.716 197.892 101.057 +-128.1 197.601 100.909 +-130.945 197.979 101.102 +-136.176 201.84 103.073 +-139.141 202.217 103.266 +-141.859 202.184 103.249 +-143.513 200.624 102.453 +-142.913 195.99 100.086 +-142.841 192.199 98.1502 +-144.943 191.377 97.7304 +-147.889 191.637 97.8632 +-152.629 194.128 99.1353 +-523.504 653.629 333.788 +-525.362 643.988 328.865 +-527.489 634.869 324.208 +-529.537 625.837 319.596 +-531.936 617.388 315.281 +-534.394 609.16 311.079 +-536.732 600.942 306.882 +-538.258 591.972 302.302 +-540.73 584.192 298.329 +-542.513 575.807 294.047 +-546.186 569.536 290.844 +-554.829 568.429 290.279 +-566.341 570.098 291.131 +-573.713 567.462 289.785 +-576.414 560.224 286.089 +-576.561 550.642 281.196 +-579.113 543.491 277.544 +-579.762 534.678 273.044 +-581.825 527.293 269.272 +-583.292 519.476 265.281 +-586.221 513.051 261.999 +-589.643 507.114 258.968 +-591.76 500.122 255.397 +-589.252 489.369 249.906 +-576.33 470.331 240.183 +-576.903 462.616 236.243 +-579.317 456.462 233.101 +-581.051 449.839 229.719 +-583.231 443.629 226.548 +-585.028 437.19 223.259 +-586.666 430.7 219.945 +-588.766 424.611 216.836 +-590.791 418.522 213.726 +-593.057 412.654 210.73 +-595.412 406.89 207.786 +-596.82 400.532 204.539 +-599.516 395.084 201.757 +-600.938 388.84 198.568 +-603.422 383.327 195.753 +-604.944 377.243 192.646 +-607.628 371.922 189.929 +-609.011 365.841 186.824 +-611.238 360.308 183.998 +-612.397 354.185 180.871 +-615.844 349.412 178.434 +-617.888 343.858 175.597 +-619.443 338.065 172.639 +-621.275 332.459 169.776 +-622.958 326.804 166.888 +-625.097 321.415 164.137 +-381.477 192.216 98.1588 +-382.121 188.639 96.3323 +-381.582 184.515 94.2262 +-382.14 180.957 92.4092 +-377.689 175.102 89.4194 +-379.569 172.241 87.9581 +-382.853 169.999 86.8134 +-381.538 165.73 84.6331 +-382.606 162.528 82.9981 +-382.734 158.946 81.1689 +-135.493 54.9922 28.0828 +-135.296 53.6473 27.396 +-381.68 147.802 75.478 +-381.457 144.204 73.6406 +-381.839 140.859 71.9324 +-382.741 137.72 70.3292 +-633.056 222.085 113.412 +-380.901 130.217 66.498 +-382.069 127.221 64.968 +-381.985 123.82 63.2312 +-380.733 120.074 61.3183 +-376.978 115.603 59.0347 +-377.812 112.584 57.493 +-376.904 109.065 55.696 +-378.053 106.159 54.212 +-379.462 103.32 52.7626 +-377.391 99.5577 50.8411 +-376.718 96.2038 49.1283 +-377.55 93.2488 47.6193 +-376.228 89.7808 45.8483 +-381.257 87.8122 44.843 +-381.714 84.7597 43.2842 +-381.169 81.4988 41.6189 +-380.589 78.2529 39.9613 +-381.146 75.2534 38.4296 +-380.597 72.0476 36.7925 +-381.093 69.0515 35.2625 +-381.068 65.9682 33.6879 +-380.815 62.858 32.0996 +-381.711 59.9423 30.6107 +-380.509 56.7089 28.9595 +-380.655 53.6937 27.4197 +-381.167 50.7333 25.9079 +-380.758 47.6576 24.3372 +-381.31 44.7082 22.8311 +-380.84 41.6453 21.267 +-380.24 38.5831 19.7032 +-381.001 35.6638 18.2124 +-380.938 32.6672 16.6821 +-380.746 29.6665 15.1498 +-381.022 26.7063 13.6381 +-380.87 23.7192 12.1127 +-379.89 20.693 10.5673 +-380.078 17.7398 9.05919 +-381.137 14.8202 7.56822 +-380.668 11.8388 6.04573 +-380.27 8.86828 4.52876 +-147.977 2.30037 1.17473 +-146.094 1.13546 0.579846 +95.8 -1.77636e-15 -1.7053e-13 +96.5963 0.754184 0.376599 +95.6854 1.49426 0.746155 +96.5669 2.26232 1.12968 +96.5412 3.01616 1.50611 +96.5081 3.76977 1.88242 +96.5675 4.52778 2.26093 +96.4198 5.27607 2.63459 +96.3647 6.02865 3.01039 +96.4019 6.78778 3.38946 +96.2324 7.53236 3.76126 +96.2548 8.29197 4.14057 +96.1703 9.04314 4.51566 +96.0784 9.79367 4.89044 +95.9792 10.5434 5.26481 +96.765 11.3974 5.69128 +96.5511 12.14 6.06207 +96.2312 12.8669 6.42506 +96.1021 13.6177 6.79996 +95.867 14.3527 7.16697 +95.7233 15.1006 7.54045 +96.4573 15.9941 7.98661 +95.316 16.5759 8.27713 +96.0326 17.48 8.72857 +95.9563 18.2476 9.11188 +95.7746 18.9961 9.48562 +96.5601 19.9443 9.95913 +96.3619 20.6974 10.3352 +96.0593 21.4274 10.6997 +95.9434 22.199 11.085 +95.6267 22.924 11.447 +96.363 23.9087 11.9387 +96.03 24.6356 12.3017 +95.7861 25.3843 12.6756 +96.3955 26.3666 13.1661 +96.1347 27.1182 13.5414 +95.8665 27.8677 13.9156 +95.591 28.6151 14.2889 +96.1592 29.6225 14.7919 +96.5265 30.5811 15.2706 +96.2245 31.3336 15.6463 +96.8519 32.3969 16.1773 +96.5322 33.1518 16.5543 +95.833 33.7731 16.8645 +96.7053 34.9557 17.455 +97.1921 36.0175 17.9852 +96.8371 36.7749 18.3634 +96.5664 37.5653 18.7581 +96.1963 38.3178 19.1339 +96.0009 39.1415 19.5452 +96.3405 40.192 20.0697 +96.1253 41.0197 20.483 +95.7216 41.7686 20.857 +96.116 42.8736 21.4088 +96.3178 43.9067 21.9247 +95.8859 44.657 22.2993 +96.2413 45.7819 22.8611 +95.7911 46.5316 23.2354 +96.0332 47.6247 23.7812 +96.1743 48.681 24.3087 +96.4752 49.8326 24.8837 +95.9855 50.5839 25.2589 +96.0885 51.654 25.7932 +95.6662 52.4489 26.1902 +95.8294 53.5731 26.7516 +95.8936 54.6557 27.2922 +96.1116 55.8408 27.8839 +95.4799 56.5397 28.2329 +95.6709 57.7333 28.8289 +95.8459 58.934 29.4285 +96.0046 60.142 30.0317 +95.4143 60.8892 30.4048 +95.3831 61.9999 30.9595 +95.4982 63.2211 31.5693 +95.4369 64.3412 32.1286 +95.5197 65.5741 32.7442 +95.5069 66.758 33.3354 +95.4782 67.9466 33.9289 +95.589 69.2525 34.581 +95.5271 70.4514 35.1797 +95.5257 71.7121 35.8092 +95.507 72.9781 36.4414 +94.7161 73.6623 36.783 +95.2672 75.4068 37.6541 +95.1969 76.6864 38.2931 +95.1088 77.9707 38.9344 +94.9297 79.1984 39.5475 +95.4593 81.0451 40.4696 +95.2406 82.2845 41.0885 +95.1476 83.652 41.7713 +94.9644 84.9609 42.425 +94.7629 86.2735 43.0804 +95.1682 88.1685 44.0266 +94.9241 89.492 44.6876 +94.6614 90.8188 45.3501 +94.8529 92.6099 46.2445 +94.682 94.0781 46.9776 +94.6884 95.752 47.8134 +94.0133 96.7576 48.3156 +91.1825 95.5149 47.695 +89.2832 95.1955 47.5356 +88.3513 95.8889 47.8818 +88.5454 97.8258 48.849 +88.7083 99.7744 49.822 +88.5321 101.379 50.6235 +88.3313 102.99 51.4276 +88.1057 104.604 52.2335 +88.5096 107.014 53.4371 +89.2846 109.945 54.9006 +89.6605 112.458 56.1555 +88.5602 113.154 56.5031 +88.0762 114.653 57.2514 +88.2406 117.041 58.4442 +88.0339 118.994 59.4194 +87.9592 121.177 60.5095 +88.1171 123.746 61.7921 +91.835 131.486 65.6569 +93.1615 136.012 67.917 +93.2219 138.804 69.3113 +93.2348 141.608 70.7114 +93.35 144.655 72.233 +93.265 147.48 73.6438 +92.841 149.847 74.8255 +93.1414 153.475 76.637 +93.0023 156.487 78.1412 +93.0885 159.984 79.8876 +92.8865 163.097 81.4418 +92.8538 166.618 83.2002 +92.7155 170.071 84.9242 +92.3016 173.129 86.4516 +92.5111 177.493 88.6304 +91.4399 179.51 89.6378 +90.1735 181.198 90.4808 +88.6818 182.47 91.1156 +89.4384 188.509 94.1312 +92.1119 198.953 99.3465 +90.8046 201.074 100.406 +88.7666 201.609 100.673 +86.2592 201.042 100.39 +84.0848 201.205 100.471 +81.8796 201.265 100.501 +79.8132 201.644 100.69 +77.5178 201.413 100.575 +75.2012 201.078 100.407 +73.1752 201.487 100.612 +71.0267 201.538 100.638 +68.6781 200.973 100.355 +66.7436 201.588 100.662 +64.5267 201.326 100.532 +62.3734 201.219 100.478 +60.0978 200.662 100.2 +58.1132 201.037 100.387 +55.9323 200.701 100.219 +53.9492 201.044 100.391 +51.8287 200.847 100.292 +49.846 201.156 100.447 +47.7781 201.1 100.419 +45.7749 201.291 100.514 +43.6762 201.025 100.381 +41.7502 201.535 100.636 +39.6091 200.972 100.355 +37.4988 200.479 100.109 +35.5732 200.941 100.339 +33.6414 201.388 100.563 +31.6897 201.732 100.734 +29.5772 200.995 100.366 +27.6156 201.219 100.478 +25.55 200.627 100.182 +23.5816 200.73 100.234 +21.6036 200.728 100.233 +19.6275 200.711 100.224 +17.5278 199.251 99.4952 +15.6394 200.094 99.9165 +13.6932 200.298 100.018 +11.7285 200.219 99.9786 +9.77947 200.392 100.065 +7.83145 200.639 100.189 +5.85578 200.067 99.9027 +3.91108 200.463 100.101 +1.95649 200.575 100.156 +1.77636e-14 200.672 100.205 +-1.95125 200.038 99.8884 +-3.90585 200.195 99.9666 +-5.85055 199.888 99.8133 +-7.82796 200.55 100.144 +-9.74893 199.766 99.7526 +-11.7494 200.576 100.157 +-13.6871 200.209 99.9737 +-15.6394 200.094 99.9165 +-17.5905 199.965 99.8517 +-19.549 199.908 99.8236 +-21.4886 199.66 99.6994 +-23.4562 199.662 99.7007 +-25.482 200.094 99.9161 +-27.445 199.975 99.8571 +-29.3814 199.665 99.7021 +-31.3139 199.339 99.5395 +-33.4049 199.973 99.8558 +-35.3385 199.616 99.6775 +-37.3008 199.421 99.5801 +-39.2619 199.21 99.4747 +-41.1852 198.808 99.2741 +-43.2946 199.269 99.5042 +-45.2964 199.186 99.4631 +-47.2375 198.825 99.2826 +-49.3915 199.322 99.531 +-51.3113 198.842 99.2911 +-53.4823 199.304 99.5216 +-55.6662 199.746 99.7427 +-57.6625 199.477 99.6083 +-59.5543 198.847 99.2938 +-61.8924 199.668 99.7034 +-63.9754 199.607 99.673 +-65.8916 199.014 99.3769 +-68.0934 199.262 99.5006 +-70.3952 199.746 99.7427 +-72.31 199.104 99.422 +-74.7887 199.975 99.8567 +-76.769 199.467 99.6034 +-79.1122 199.873 99.8057 +-81.093 199.331 99.5354 +-83.2443 199.194 99.4666 +-85.5066 199.287 99.5136 +-87.6671 199.112 99.426 +-89.9805 199.25 99.4948 +-92.4946 199.78 99.7593 +-94.3616 198.885 99.3125 +-96.9758 199.535 99.6373 +-99.2437 199.424 99.5819 +-101.517 199.294 99.5167 +-103.668 198.898 99.3192 +-106.25 199.293 99.5162 +-108.322 198.697 99.2187 +-110.836 198.885 99.3125 +-113.18 198.729 99.2348 +-115.899 199.187 99.4635 +-118.26 198.985 99.3626 +-120.817 199.076 99.4081 +-123.384 199.143 99.4416 +-125.765 198.873 99.3067 +-128.05 198.426 99.0833 +-130.437 198.113 98.927 +-135.558 201.841 100.789 +-139.141 203.14 101.437 +-142.018 203.336 101.535 +-143.459 201.465 100.601 +-143.077 197.111 98.4266 +-142.786 193.002 96.3747 +-144.887 192.177 95.9628 +-147.662 192.218 95.9834 +-150.679 192.523 96.1357 +-523.562 656.687 327.915 +-526.068 647.797 323.475 +-527.31 637.552 318.36 +-530.079 629.338 314.258 +-532.179 620.491 309.84 +-534.209 611.731 305.466 +-537.23 604.246 301.728 +-538.887 595.37 297.296 +-540.73 586.86 293.047 +-543.091 579.052 289.148 +-545.991 571.933 285.593 +-554.829 571.024 285.139 +-566.01 572.366 285.809 +-575.118 571.449 285.351 +-576.684 563.046 281.155 +-579.835 556.297 277.785 +-579.939 546.752 273.019 +-580.595 537.892 268.594 +-581.825 529.701 264.504 +-584.424 522.861 261.089 +-586.221 515.394 257.36 +-590.65 510.3 254.817 +-591.76 502.406 250.875 +-587.716 490.322 244.841 +-576.551 472.66 236.021 +-577.349 465.088 232.24 +-579.991 459.08 229.24 +-581.051 451.893 225.651 +-583.231 445.655 222.536 +-585.718 439.703 219.564 +-587.283 433.122 216.278 +-589.698 427.226 213.334 +-591.026 420.601 210.026 +-593.057 414.538 206.998 +-595.65 408.912 204.189 +-597.459 402.792 201.133 +-599.275 396.728 198.105 +-601.666 391.088 195.289 +-603.178 384.922 192.209 +-605.681 379.427 189.466 +-606.887 373.165 186.339 +-609.757 367.961 183.74 +-610.988 361.804 180.666 +-613.739 356.582 178.058 +-615.844 351.008 175.275 +-617.633 345.285 172.417 +-619.699 339.749 169.653 +-621.018 333.838 166.701 +-623.475 328.569 164.07 +-625.097 322.883 161.231 +-381.477 193.094 96.4207 +-380.984 188.937 94.3452 +-382.373 185.742 92.7498 +-381.875 181.657 90.71 +-376.891 175.53 87.6502 +-381.173 173.758 86.7657 +-382.047 170.417 85.0971 +-383.426 167.31 83.5455 +-381.072 162.615 81.2014 +-382.281 159.482 79.6369 +-135.493 55.2433 27.5856 +-135.022 53.7832 26.8564 +-382.781 148.906 74.3555 +-381.641 144.932 72.3715 +-382.117 141.605 70.7101 +-382.371 138.214 69.0169 +-633.893 223.394 111.551 +-382.395 131.325 65.5769 +-381.507 127.614 63.7234 +-381.703 124.294 62.066 +-382.335 121.13 60.4858 +-376.316 115.927 57.8876 +-376.579 112.729 56.2909 +-377.189 109.646 54.7514 +-377.767 106.563 53.2119 +-379.844 103.897 51.8806 +-377.487 100.038 49.9538 +-376.622 96.6189 48.2463 +-378.418 93.8902 46.8838 +-378.45 90.7231 45.3023 +-381.837 88.3477 44.1161 +-381.52 85.1035 42.4961 +-380.197 81.662 40.7777 +-380.589 78.6102 39.2537 +-381.732 75.7133 37.8072 +-380.597 72.3766 36.141 +-381.093 69.3668 34.6381 +-382.049 66.4401 33.1767 +-381.503 63.2591 31.5882 +-381.81 60.2316 30.0765 +-380.509 56.9679 28.4467 +-380.359 53.897 26.9133 +-380.969 50.9386 25.436 +-381.154 47.9249 23.9312 +-381.31 44.9123 22.4268 +-380.542 41.8028 20.8741 +-380.24 38.7593 19.3543 +-381.3 35.8546 17.9039 +-380.64 32.7906 16.3739 +-380.945 29.8176 14.8893 +-380.623 26.8002 13.3826 +-380.97 23.8338 11.9013 +-380.788 20.8367 10.4047 +-379.279 17.7834 8.88006 +-379.938 14.8411 7.41085 +-380.368 11.8835 5.93399 +-380.57 8.9158 4.45207 +-147.478 2.30306 1.15003 +-145.594 1.13674 0.567626 +95.7 0 -1.7053e-13 +96.5963 0.757551 0.36978 +95.6854 1.50093 0.732644 +96.367 2.26772 1.10693 +96.5412 3.02963 1.47884 +96.5081 3.7866 1.84834 +96.4676 4.54328 2.21769 +96.5196 5.30511 2.58956 +96.4644 6.06183 2.95894 +96.3022 6.81104 3.32464 +96.332 7.57383 3.69698 +96.2548 8.32898 4.06559 +96.0708 9.07408 4.42929 +96.0784 9.83739 4.80189 +96.8725 10.689 5.21756 +96.765 11.4483 5.58822 +96.3531 12.1691 5.94007 +96.2312 12.9244 6.30872 +96.1021 13.6785 6.67684 +95.9656 14.4316 7.04443 +95.7233 15.168 7.40391 +96.359 16.0492 7.83401 +96.1995 16.8042 8.20257 +95.8366 17.5222 8.55301 +95.9563 18.3291 8.94688 +95.7746 19.0809 9.31386 +95.5857 19.8312 9.68014 +96.3619 20.7898 10.1481 +96.1563 21.5448 10.5166 +95.9434 22.2981 10.8843 +96.496 23.2356 11.3419 +96.363 24.0155 11.7226 +96.03 24.7455 12.0789 +95.7861 25.4976 12.446 +96.3955 26.4843 12.9277 +96.1347 27.2392 13.2962 +95.8665 27.9921 13.6637 +96.5393 29.028 14.1693 +96.1592 29.7547 14.5241 +96.5265 30.7176 14.9941 +96.2245 31.4735 15.363 +95.8216 32.1954 15.7154 +95.5053 32.9456 16.0816 +96.8565 34.2862 16.736 +96.7053 35.1118 17.139 +96.3606 35.8688 17.5085 +96.8371 36.9391 18.0309 +96.5664 37.733 18.4184 +96.1963 38.4888 18.7874 +96.0009 39.3162 19.1913 +96.3405 40.3714 19.7063 +96.1253 41.2028 20.1121 +96.5305 42.3097 20.6524 +96.116 43.065 21.0211 +96.3178 44.1027 21.5277 +95.8859 44.8564 21.8955 +96.2413 45.9863 22.4471 +96.582 47.1252 23.003 +96.0332 47.8373 23.3506 +96.1743 48.8983 23.8685 +96.4752 50.0551 24.4332 +95.9855 50.8098 24.8016 +96.0885 51.8846 25.3262 +96.3483 53.0586 25.8993 +95.8294 53.8123 26.2672 +96.0623 54.9962 26.8451 +95.3568 55.6496 27.164 +95.4799 56.7921 27.7217 +95.6709 57.991 28.3069 +95.8459 59.1971 28.8956 +96.0046 60.4104 29.4879 +95.4143 61.161 29.8543 +96.1112 62.7521 30.6309 +94.7747 63.0223 30.7628 +95.4369 64.6285 31.5468 +95.6784 65.9762 32.2047 +95.5069 67.056 32.7318 +94.8521 67.8024 33.0961 +95.589 69.5616 33.9548 +95.6043 70.8231 34.5706 +95.5257 72.0322 35.1608 +94.7466 72.7202 35.4966 +95.3953 74.5218 36.376 +95.2672 75.7434 36.9723 +95.1969 77.0287 37.5997 +95.1088 78.3188 38.2294 +95.0028 79.6133 38.8613 +94.879 80.912 39.4952 +95.2406 82.6518 40.3445 +95.1476 84.0254 41.015 +94.9644 85.3402 41.6568 +94.7629 86.6586 42.3003 +94.543 87.9802 42.9454 +94.8553 89.8265 43.8466 +94.5932 91.1586 44.4969 +94.8529 93.0233 45.4071 +94.682 94.498 46.1269 +94.6884 96.1794 46.9477 +94.3413 97.5283 47.6061 +91.0526 95.8047 46.7647 +89.7974 96.1704 46.9433 +88.3513 96.3169 47.0148 +88.5454 98.2625 47.9645 +88.7706 100.29 48.9541 +87.978 101.195 49.3958 +88.2704 103.378 50.4613 +88.1659 105.143 51.3228 +88.4501 107.42 52.4344 +88.7556 109.781 53.5872 +89.0798 112.228 54.7816 +88.2161 113.218 55.2646 +88.0195 115.09 56.1783 +87.7933 116.968 57.0951 +88.4755 120.125 58.6361 +88.0681 121.869 59.4875 +88.1171 124.298 60.6732 +91.835 132.073 64.468 +93.6317 137.308 67.0237 +93.2219 139.424 68.0563 +93.2348 142.24 69.431 +92.95 144.678 70.6211 +93.265 148.139 72.3104 +92.7441 150.358 73.3938 +92.7597 153.528 74.941 +93.0023 157.186 76.7263 +92.6729 159.981 78.091 +92.7957 163.665 79.889 +92.8091 167.281 81.6542 +92.321 170.103 83.0316 +92.3016 173.902 84.8862 +92.5111 178.285 87.0255 +91.4399 180.311 88.0147 +90.4989 182.664 89.1631 +88.3628 182.626 89.1442 +89.4384 189.35 92.4267 +91.9971 199.592 97.4261 +90.7672 201.889 98.5473 +88.7299 202.426 98.8092 +86.5459 202.611 98.8995 +84.0498 202.018 98.6104 +81.8796 202.163 98.6811 +79.8132 202.544 98.8671 +77.4852 202.227 98.7122 +75.1695 201.89 98.5477 +73.1752 202.386 98.7899 +71.0568 202.524 98.857 +68.6781 201.87 98.5381 +66.5448 201.884 98.5446 +64.5267 202.225 98.7113 +62.3467 202.031 98.6166 +60.3307 202.338 98.7666 +58.0882 201.847 98.5267 +56.1017 202.208 98.703 +53.9959 202.116 98.6578 +51.8512 201.831 98.5188 +49.846 202.054 98.628 +47.7573 201.911 98.5578 +45.7549 202.101 98.6508 +43.6953 202.011 98.6069 +41.7319 202.346 98.7701 +39.6091 201.869 98.5376 +37.4988 201.374 98.2959 +35.5576 201.75 98.4793 +33.5084 201.487 98.3512 +31.5366 201.654 98.4324 +29.6164 202.16 98.6798 +27.6034 202.028 98.6153 +25.55 201.522 98.3683 +23.5712 201.537 98.3753 +21.6324 201.893 98.549 +19.6013 201.338 98.2784 +17.5984 200.947 98.0876 +15.6324 200.898 98.0634 +13.7481 202 98.6012 +11.7233 201.023 98.1244 +9.78383 201.377 98.2972 +7.83145 201.535 98.3745 +5.8584 201.05 98.1376 +3.91108 201.358 98.288 +1.95649 201.47 98.3429 +1.77636e-14 201.478 98.3468 +-1.95911 201.74 98.4745 +-3.91981 201.807 98.5074 +-5.85055 200.78 98.006 +-7.82447 201.355 98.2867 +-9.78383 201.377 98.2972 +-11.739 201.292 98.256 +-13.6932 201.193 98.2073 +-15.6394 200.988 98.1073 +-17.5984 200.947 98.0876 +-19.5403 200.712 97.9726 +-21.4886 200.551 97.8941 +-23.5503 201.358 98.288 +-25.4934 201.076 98.1503 +-27.4206 200.69 97.9621 +-29.3814 200.556 97.8968 +-31.3 200.14 97.6937 +-33.2571 199.977 97.6138 +-35.3385 200.507 97.8726 +-37.3173 200.399 97.82 +-39.2619 200.099 97.6735 +-41.3492 200.491 97.8647 +-43.3327 200.335 97.7888 +-45.2765 199.988 97.6191 +-47.2375 199.713 97.4849 +-49.3699 200.124 97.6858 +-51.3338 199.817 97.5357 +-53.4823 200.193 97.7195 +-55.6662 200.638 97.9367 +-57.4372 199.585 97.4226 +-59.7096 200.255 97.7498 +-61.8924 200.559 97.8981 +-63.9754 200.498 97.8682 +-65.9484 200.075 97.6616 +-68.1226 200.237 97.741 +-70.3952 200.638 97.9367 +-72.5572 200.677 97.9555 +-74.5031 200.1 97.6739 +-76.769 200.358 97.7998 +-79.1122 200.765 97.9985 +-81.093 200.221 97.7331 +-83.2443 200.083 97.6656 +-85.5424 200.262 97.7529 +-87.6671 200.001 97.6257 +-90.018 200.222 97.7336 +-92.1502 199.924 97.5879 +-94.7523 200.6 97.9178 +-96.9758 200.426 97.8331 +-99.2437 200.315 97.7788 +-101.517 200.183 97.7147 +-103.626 199.705 97.4813 +-106.293 200.263 97.7538 +-108.365 199.665 97.4616 +-110.88 199.853 97.5533 +-113.588 200.337 97.7897 +-115.853 199.997 97.6235 +-118.213 199.794 97.5248 +-120.721 199.808 97.5314 +-122.899 199.246 97.2572 +-125.765 199.761 97.5085 +-128.5 200.013 97.6314 +-130.945 199.771 97.5134 +-135.764 203.05 99.114 +-139.194 204.123 99.6378 +-141.859 204.014 99.5847 +-143.459 202.364 98.7793 +-142.968 197.84 96.5707 +-142.841 193.939 94.6665 +-145.278 193.556 94.4796 +-147.889 193.372 94.3897 +-150.736 193.456 94.4309 +-523.852 659.985 322.156 +-525.891 650.471 317.512 +-527.846 641.049 312.913 +-530.079 632.148 308.568 +-532.179 623.261 304.23 +-534.394 614.674 300.038 +-536.732 606.381 295.99 +-538.635 597.748 291.776 +-541.112 589.896 287.943 +-542.898 581.431 283.811 +-546.381 574.896 280.622 +-555.026 573.777 280.075 +-566.143 575.056 280.7 +-574.516 573.399 279.891 +-576.616 565.493 276.032 +-577.925 556.94 271.857 +-579.526 548.802 267.885 +-579.901 539.647 263.415 +-581.404 531.681 259.527 +-583.929 524.751 256.144 +-586.221 517.694 252.7 +-590.003 512.017 249.929 +-591.543 504.463 246.241 +-588.813 493.431 240.856 +-577.214 475.316 232.014 +-577.349 467.164 228.035 +-579.767 460.951 225.002 +-581.504 454.264 221.738 +-583.231 447.644 218.507 +-585.488 441.494 215.505 +-587.052 434.884 212.278 +-588.766 428.454 209.14 +-591.026 422.478 206.223 +-593.057 416.389 203.25 +-595.65 410.737 200.492 +-597.459 404.591 197.491 +-599.275 398.499 194.518 +-601.909 392.993 191.83 +-603.178 386.64 188.729 +-605.681 381.121 186.035 +-607.134 374.983 183.039 +-609.011 369.152 180.193 +-611.238 363.569 177.467 +-613.236 357.88 174.691 +-615.591 352.43 172.03 +-617.633 346.827 169.295 +-619.443 341.125 166.512 +-621.875 335.791 163.908 +-623.733 330.172 161.166 +-625.357 324.459 158.377 +-381.912 194.177 94.7827 +-381.946 190.26 92.8706 +-382.637 186.7 91.1331 +-382.581 182.806 89.2324 +-375.56 175.691 85.7591 +-380.727 174.33 85.095 +-381.779 171.057 83.4974 +-381.538 167.23 81.6292 +-381.703 163.612 79.8631 +-381.918 160.042 78.1208 +-135.493 55.49 27.0861 +-136.392 54.5715 26.6378 +-382.231 149.356 72.9043 +-382.286 145.826 71.1812 +-381.285 141.927 69.2784 +-382.556 138.899 67.8001 +-633.428 224.227 109.451 +-380.994 131.428 64.1535 +-381.694 128.247 62.6007 +-382.173 125.003 61.0171 +-382.053 121.581 59.3467 +-377.546 116.824 57.0249 +-376.674 113.26 55.2852 +-377.569 110.247 53.8144 +-378.053 107.12 52.2879 +-377.358 103.678 50.6078 +-376.912 100.331 48.9743 +-377.007 97.1491 47.421 +-377.261 94.0209 45.894 +-378.45 91.1281 44.482 +-381.257 88.607 43.2514 +-380.938 85.3529 41.6629 +-380.78 82.1525 40.1008 +-380.979 79.042 38.5824 +-380.755 75.8567 37.0276 +-381.869 72.9426 35.6052 +-380.799 69.6227 33.9847 +-382.049 66.7367 32.5759 +-381.7 63.5743 31.0322 +-381.416 60.438 29.5014 +-381.002 57.2963 27.9678 +-381.05 54.236 26.474 +-380.277 51.073 24.93 +-380.56 48.0638 23.4612 +-381.012 45.0776 22.0035 +-380.84 42.0223 20.5122 +-380.24 38.9323 19.0039 +-380.703 35.9583 17.5522 +-381.934 33.0489 16.132 +-381.244 29.9742 14.6312 +-380.623 26.9198 13.1403 +-380.571 23.9151 11.6736 +-380.19 20.8968 10.2003 +-380.977 17.9427 8.75831 +-380.837 14.9426 7.29385 +-380.668 11.946 5.83115 +-380.57 8.9556 4.37146 +-144.078 2.26002 1.10317 +-145.394 1.14025 0.556585 +96.6 3.55271e-15 -1.7053e-13 +96.5963 0.760856 0.362931 +96.5853 1.52165 0.725833 +96.5669 2.28233 1.08868 +96.5412 3.04284 1.45145 +96.5081 3.80312 1.8141 +96.5675 4.56784 2.17887 +96.5196 5.32826 2.5416 +96.4644 6.08828 2.90413 +96.3022 6.84076 3.26306 +96.332 7.60687 3.6285 +96.2548 8.36532 3.99029 +97.0653 9.20808 4.39228 +96.0784 9.88031 4.71294 +96.8725 10.7356 5.12091 +96.6659 11.4864 5.47907 +96.3531 12.2222 5.83004 +96.429 13.0074 6.20456 +96.1021 13.7382 6.55316 +95.867 14.4797 6.90685 +95.6248 15.2185 7.25928 +95.4741 15.9712 7.6183 +96.1995 16.8775 8.05064 +96.0326 17.6346 8.41177 +95.9563 18.409 8.78116 +95.7746 19.1641 9.14135 +95.5857 19.9178 9.50084 +95.3895 20.6699 9.8596 +96.1563 21.6388 10.3218 +95.9434 22.3953 10.6826 +95.6267 23.1268 11.0316 +96.363 24.1202 11.5054 +96.03 24.8535 11.8552 +95.7861 25.6089 12.2155 +96.2043 26.5471 12.6631 +96.23 27.3852 13.0628 +95.8665 28.1142 13.4106 +96.4445 29.126 13.8932 +96.1592 29.8845 14.255 +96.4322 30.8215 14.702 +96.1306 31.5799 15.0637 +96.8519 32.6835 15.5901 +96.1588 33.3158 15.8917 +96.8565 34.4358 16.426 +96.7053 35.265 16.8215 +96.3606 36.0253 17.1842 +96.0087 36.7829 17.5456 +96.5664 37.8976 18.0773 +96.1963 38.6568 18.4394 +96.0009 39.4878 18.8358 +96.3405 40.5476 19.3413 +96.1253 41.3825 19.7396 +96.5305 42.4942 20.2699 +96.116 43.2529 20.6318 +96.3178 44.2952 21.1289 +95.8859 45.0521 21.49 +96.153 46.1446 22.0111 +96.582 47.3308 22.5769 +96.0332 48.046 22.9181 +96.3484 49.2006 23.4688 +95.6092 49.8222 23.7653 +95.9855 51.0314 24.3422 +96.0885 52.1109 24.8571 +95.6662 52.9129 25.2396 +95.8294 54.047 25.7806 +95.8936 55.1392 26.3016 +96.2794 56.4332 26.9188 +95.4799 57.0399 27.2082 +95.6709 58.244 27.7826 +95.9283 59.5065 28.3848 +96.0046 60.674 28.9417 +95.4143 61.4278 29.3013 +95.464 62.6015 29.8611 +95.4982 63.7804 30.4235 +95.5967 65.0191 31.0143 +94.9644 65.7695 31.3723 +94.8765 66.904 31.9134 +94.8521 68.0982 32.4831 +94.8118 69.2971 33.055 +94.9098 70.6153 33.6838 +95.4491 72.2884 34.4818 +95.507 73.6237 35.1188 +95.3953 74.8469 35.7022 +95.2672 76.0739 36.2875 +94.4537 76.7609 36.6152 +95.1825 78.7215 37.5504 +95.6611 80.5146 38.4057 +94.879 81.265 38.7637 +95.3125 83.075 39.6271 +95.0763 84.3287 40.2251 +94.8937 85.6487 40.8547 +95.3938 87.6161 41.7932 +95.0987 88.8835 42.3977 +94.8553 90.2184 43.0345 +95.2752 92.2161 43.9874 +95.0555 93.6287 44.6612 +94.5482 94.7758 45.2084 +94.7547 96.6667 46.1104 +93.6852 97.2733 46.3997 +91.4423 96.6343 46.0949 +89.926 96.729 46.1401 +88.3513 96.7371 46.1439 +87.979 98.0603 46.7751 +88.7706 100.727 48.0473 +88.5321 102.276 48.7861 +88.2095 103.757 49.4926 +88.1057 105.529 50.3377 +88.5691 108.033 51.532 +89.2258 110.844 52.8731 +88.6733 112.204 53.5215 +88.1013 113.564 54.1703 +88.1328 115.741 55.2088 +87.29 116.805 55.7164 +88.0891 120.122 57.2986 +87.9592 122.249 58.3133 +88.0634 124.765 59.5132 +91.835 132.649 63.2739 +93.057 137.061 65.3784 +93.2219 140.032 66.7957 +93.7423 143.639 68.5161 +93.45 146.091 69.6858 +93.2158 148.707 70.9335 +93.3259 151.961 72.486 +93.1891 154.912 73.8934 +92.5798 157.154 74.9629 +92.7191 160.76 76.6828 +92.8865 164.54 78.4859 +92.8538 168.092 80.1805 +92.321 170.845 81.4936 +92.7321 175.476 83.7026 +92.5111 179.063 85.4136 +91.4399 181.098 86.3844 +90.5396 183.543 87.5507 +88.2432 183.173 87.3742 +89.3602 190.009 90.6351 +91.9971 200.463 95.6215 +91.1418 203.607 97.121 +88.4001 202.553 96.6186 +86.2233 202.736 96.7056 +84.0848 202.985 96.8244 +81.8454 202.96 96.8128 +79.7798 203.342 96.9949 +77.4852 203.109 96.8838 +75.2329 202.942 96.8042 +73.1752 203.269 96.96 +71.0568 203.407 97.0259 +68.6781 202.751 96.7129 +66.5448 202.764 96.7193 +64.4991 203.021 96.8416 +62.32 202.826 96.7486 +60.0978 202.437 96.5631 +58.1382 202.903 96.7852 +56.1017 203.09 96.8748 +54.0193 203.085 96.8722 +51.8287 202.624 96.6522 +49.6512 202.143 96.4227 +47.7781 202.879 96.774 +45.7749 203.071 96.8657 +43.6762 202.803 96.7379 +41.5679 202.43 96.5596 +39.6091 202.75 96.7124 +37.4658 202.075 96.3904 +35.5888 202.808 96.74 +33.538 202.545 96.6147 +31.5227 202.444 96.5665 +29.5772 202.774 96.7236 +27.5059 202.193 96.4468 +25.5273 202.222 96.4606 +23.5607 202.326 96.5101 +21.6132 202.594 96.638 +19.6188 202.396 96.5437 +17.5905 201.734 96.2277 +15.6394 201.865 96.2901 +13.6871 201.98 96.3452 +11.739 202.171 96.436 +9.74457 201.443 96.089 +7.82796 202.324 96.5092 +5.85578 201.837 96.2768 +3.91108 202.236 96.4675 +1.95562 202.259 96.4782 +1.77636e-14 201.545 96.1377 +-1.95125 201.808 96.263 +-3.90236 201.785 96.2522 +-5.85317 201.746 96.2337 +-7.82447 202.234 96.4662 +-9.74893 201.533 96.1321 +-11.7494 202.35 96.5217 +-13.6993 202.16 96.4309 +-15.6394 201.865 96.2901 +-17.5984 201.824 96.2707 +-19.5316 201.497 96.1149 +-21.5078 201.606 96.1665 +-23.5398 202.146 96.4244 +-25.4934 201.953 96.3323 +-27.4328 201.655 96.1902 +-29.3814 201.431 96.0834 +-31.3 201.014 95.8841 +-33.2571 200.849 95.8058 +-35.3385 201.382 96.0598 +-37.3008 201.185 95.9659 +-39.2445 200.884 95.8221 +-41.167 200.477 95.6284 +-43.2946 201.032 95.8927 +-45.2366 200.683 95.7265 +-47.2167 200.495 95.637 +-49.3915 201.086 95.9185 +-51.3338 200.689 95.7291 +-53.529 201.242 95.993 +-55.6904 201.601 96.1644 +-57.6625 201.242 95.993 +-59.7613 201.303 96.0223 +-61.6252 200.564 95.6697 +-63.7549 200.679 95.7244 +-65.92 200.861 95.8113 +-68.0641 200.939 95.8484 +-70.0945 200.652 95.7119 +-72.5572 201.552 96.1411 +-74.5349 201.059 95.9056 +-76.769 201.232 95.9883 +-79.0788 201.556 96.1429 +-81.093 201.095 95.9229 +-83.2443 200.956 95.8566 +-85.5066 201.051 95.9018 +-87.7037 200.958 95.8574 +-90.018 201.096 95.9233 +-92.1502 200.796 95.7803 +-94.3616 200.644 95.708 +-96.9359 201.217 95.9814 +-99.2031 201.106 95.9285 +-101.268 200.564 95.6697 +-103.584 200.495 95.6366 +-105.863 200.323 95.5548 +-108.278 200.374 95.5789 +-110.479 199.998 95.3998 +-113.134 200.407 95.5948 +-115.899 200.949 95.8535 +-118.26 200.745 95.7562 +-120.339 200.045 95.4221 +-122.948 200.195 95.4936 +-125.716 200.554 95.665 +-128.1 200.26 95.5246 +-130.894 200.565 95.6701 +-135.558 203.626 97.1305 +-139.194 205.014 97.7922 +-142.124 205.287 97.9227 +-143.513 203.323 96.9858 +-143.022 198.779 94.8181 +-142.621 194.483 92.7692 +-144.831 193.802 92.4442 +-147.322 193.472 92.2866 +-150.621 194.152 92.6112 +-524.433 663.599 316.539 +-525.891 653.309 311.631 +-528.56 644.716 307.532 +-529.718 634.474 302.646 +-532.727 626.626 298.903 +-534.948 617.996 294.786 +-537.292 609.662 290.811 +-539.202 600.988 286.673 +-541.684 593.096 282.909 +-543.605 584.728 278.917 +-546.186 577.198 275.325 +-554.632 575.871 274.692 +-564.486 575.875 274.694 +-575.118 576.505 274.995 +-578.035 569.357 271.585 +-579.63 561.021 267.609 +-582.83 554.338 264.421 +-581.221 543.235 259.125 +-582.736 535.224 255.303 +-584.141 527.231 251.491 +-589.216 522.61 249.287 +-590.65 514.815 245.568 +-591.833 506.912 241.799 +-586.546 493.675 235.485 +-576.477 476.78 227.426 +-578.241 469.927 224.157 +-579.767 462.962 220.834 +-581.504 456.246 217.631 +-584.068 450.242 214.767 +-585.028 443.072 211.347 +-587.746 437.299 208.593 +-589.465 430.835 205.51 +-591.574 424.715 202.59 +-593.057 418.206 199.485 +-595.65 412.529 196.778 +-597.699 406.518 193.911 +-599.999 400.722 191.146 +-601.666 394.548 188.201 +-603.992 388.851 185.483 +-605.681 382.784 182.589 +-608.123 377.232 179.941 +-608.762 370.611 176.783 +-611.739 365.454 174.323 +-613.236 359.442 171.455 +-615.844 354.113 168.913 +-616.87 347.909 165.954 +-620.21 343.037 163.63 +-621.018 336.792 160.651 +-623.733 331.613 158.18 +-625.357 325.875 155.443 +-380.694 194.402 92.7305 +-380.809 190.521 90.8792 +-381.143 186.783 89.0959 +-382.14 183.392 87.4784 +-378.399 177.791 84.807 +-379.925 174.722 83.3432 +-383.479 172.569 82.3159 +-381.268 167.84 80.0604 +-381.974 164.442 78.4394 +-382.734 161.084 76.8378 +-136.312 56.0689 26.745 +-135.022 54.259 25.8817 +-381.68 149.791 71.4506 +-381.641 146.215 69.7448 +-381.008 142.444 67.9461 +-382.371 139.437 66.512 +-633.056 225.073 107.36 +-380.621 131.873 62.9037 +-382.631 129.122 61.5918 +-381.233 125.24 59.7397 +-381.581 121.961 58.1756 +-377.451 117.305 55.9549 +-378.097 114.184 54.4661 +-377.95 110.839 52.8706 +-375.383 106.827 50.9569 +-379.366 104.684 49.9348 +-377.775 101 48.1773 +-376.142 97.3491 46.4358 +-377.55 94.5033 45.0784 +-377.967 91.4092 43.6025 +-380.676 88.858 42.3856 +-380.647 85.6598 40.86 +-381.169 82.5952 39.3982 +-381.271 79.4477 37.8968 +-381.341 76.3049 36.3977 +-381.478 73.1859 34.9099 +-381.289 70.0165 33.3981 +-381.166 66.8728 31.8986 +-380.815 63.7036 30.3868 +-381.121 60.6547 28.9325 +-381.397 57.6059 27.4782 +-380.458 54.3879 25.9432 +-380.672 51.3491 24.4937 +-381.649 48.4117 23.0925 +-381.211 45.2978 21.6072 +-381.237 42.2496 20.1532 +-380.935 39.1737 18.686 +-381.598 36.2001 17.2676 +-380.938 33.1067 15.792 +-381.941 30.16 14.3864 +-381.52 27.101 12.9273 +-379.972 23.9816 11.4393 +-380.788 21.021 10.0271 +-379.879 17.969 8.57128 +-381.437 15.0314 7.17003 +-380.068 11.9793 5.71414 +-380.17 8.98522 4.28598 +-147.078 2.31714 1.10528 +-145.094 1.14286 0.545148 +96.4 3.55271e-15 -1.7053e-13 +96.5963 0.764099 0.356052 +96.5853 1.52814 0.712076 +96.367 2.28732 1.06584 +96.5412 3.05581 1.42394 +96.5081 3.81933 1.77972 +96.4676 4.58256 2.13536 +96.5196 5.35097 2.49342 +96.4644 6.11423 2.84909 +96.4019 6.87702 3.20453 +96.332 7.6393 3.55973 +96.2548 8.40098 3.91466 +96.1703 9.16203 4.26929 +96.0784 9.92243 4.62362 +96.8725 10.7814 5.02385 +96.765 11.5473 5.38076 +96.3531 12.2743 5.71954 +96.429 13.0628 6.08696 +96.1021 13.7968 6.42896 +95.9656 14.5563 6.78291 +95.7233 15.2991 7.12904 +96.359 16.1879 7.54317 +95.316 16.7938 7.82553 +96.1306 17.7278 8.26074 +95.9563 18.4875 8.61473 +95.7746 19.2458 8.96809 +95.5857 20.0027 9.32077 +96.3619 20.9695 9.77131 +96.1563 21.731 10.1261 +95.9434 22.4908 10.4802 +95.6267 23.2254 10.8225 +96.363 24.2231 11.2874 +96.03 24.9594 11.6305 +96.649 25.9497 12.0919 +96.3955 26.7133 12.4478 +96.1347 27.4747 12.8025 +95.8665 28.2341 13.1564 +96.5393 29.2789 13.6433 +96.1592 30.0119 13.9848 +96.4322 30.9529 14.4233 +96.2245 31.7456 14.7927 +96.8519 32.8228 15.2947 +96.5322 33.5877 15.6511 +96.8565 34.5826 16.1147 +96.7053 35.4153 16.5027 +97.0074 36.4217 16.9716 +96.8371 37.2584 17.3615 +96.5664 38.0592 17.7347 +96.1963 38.8215 18.0899 +96.9109 40.032 18.654 +96.5218 40.797 19.0104 +96.9377 41.9102 19.5291 +96.3507 42.5959 19.8487 +96.116 43.4372 20.2407 +96.3178 44.484 20.7285 +95.8859 45.2441 21.0827 +96.2413 46.3838 21.6138 +96.4941 47.4893 22.1289 +96.0332 48.2508 22.4837 +96.3484 49.4103 23.024 +96.6484 50.5784 23.5683 +95.9855 51.249 23.8808 +96.0885 52.333 24.386 +95.6662 53.1384 24.7612 +95.8294 54.2774 25.292 +96.0623 55.4716 25.8485 +96.2794 56.6737 26.4086 +95.4799 57.283 26.6925 +95.6709 58.4923 27.256 +95.8459 59.7088 27.8229 +96.0046 60.9326 28.3932 +95.4143 61.6897 28.7459 +95.3831 62.815 29.2703 +95.4982 64.0523 29.8468 +95.4369 65.1871 30.3756 +94.9644 66.0499 30.7777 +95.5069 67.6356 31.5166 +95.5565 68.8963 32.104 +95.5112 70.1059 32.6677 +95.5271 71.3776 33.2603 +95.5257 72.6549 33.8554 +95.4309 73.8786 34.4257 +95.3953 75.1659 35.0255 +95.2672 76.3981 35.5997 +95.1969 77.6946 36.2038 +95.1088 78.9957 36.8101 +95.0028 80.3014 37.4186 +94.879 81.6114 38.029 +95.3125 83.4292 38.876 +95.1476 84.7517 39.4923 +94.9644 86.0779 40.1103 +95.3237 87.9249 40.9709 +95.0987 89.2623 41.5941 +94.8553 90.6029 42.2188 +94.5932 91.9466 42.8449 +94.988 93.9607 43.7834 +94.682 95.3149 44.4145 +94.9535 97.2818 45.331 +94.2101 98.2345 45.7749 +90.8578 96.4262 44.9323 +89.7974 97.0017 45.2005 +88.6693 97.4985 45.432 +88.5454 99.1119 46.1838 +88.7706 101.157 47.1367 +88.4706 102.641 47.8281 +88.5139 104.559 48.7222 +88.2261 106.124 49.4512 +88.3312 108.202 50.4197 +89.2846 111.39 51.9052 +88.2668 112.166 52.2668 +88.7323 114.865 53.5242 +88.3594 116.533 54.3018 +87.7374 117.904 54.9404 +88.0891 120.634 56.2126 +87.9047 122.694 57.1726 +88.0097 125.221 58.3498 +92.5239 134.213 62.5401 +93.5272 138.341 64.4636 +93.1704 140.552 65.4938 +93.2348 143.47 66.8534 +93.3 146.478 68.2552 +92.7726 148.631 69.2584 +92.7441 151.658 70.6691 +92.7597 154.855 72.1588 +92.8615 158.304 73.7659 +93.0885 162.087 75.5289 +92.7957 165.08 76.9231 +92.8538 168.809 78.6608 +92.4525 171.818 80.063 +92.3446 175.488 81.7732 +92.6802 180.154 83.9476 +91.0666 181.128 84.4012 +90.2955 183.829 85.6599 +88.3628 184.204 85.8347 +90.1807 192.572 89.7341 +92.1119 201.568 93.9261 +90.8796 203.886 95.0061 +88.2168 202.995 94.5909 +86.1875 203.515 94.8334 +83.9447 203.51 94.8308 +81.8454 203.825 94.9778 +79.5796 203.697 94.9178 +77.5178 204.061 95.0876 +75.2012 203.721 94.9293 +73.1752 204.135 95.1223 +70.8162 203.583 94.8646 +68.7658 203.875 95.0011 +66.5448 203.629 94.8862 +64.2786 203.189 94.6813 +62.2665 203.515 94.8334 +60.1495 203.475 94.8144 +57.9379 203.065 94.6235 +55.9323 203.34 94.7514 +53.7858 203.07 94.6256 +51.6263 202.692 94.4499 +49.6512 203.004 94.5952 +47.591 202.946 94.5681 +45.6154 203.226 94.6986 +43.5045 202.867 94.5314 +41.5861 203.382 94.7713 +39.4529 202.81 94.5048 +37.5483 203.383 94.7717 +35.5732 203.583 94.8646 +33.4936 203.139 94.6581 +31.5227 203.307 94.7362 +29.4598 202.829 94.5136 +27.4815 202.875 94.5348 +25.5273 203.084 94.6323 +23.5503 203.099 94.6391 +21.527 202.645 94.4279 +19.549 202.537 94.3772 +17.5278 201.87 94.0668 +15.6464 202.816 94.5073 +13.6321 202.027 94.1398 +11.7337 202.942 94.566 +9.74021 202.211 94.2256 +7.79306 202.281 94.2581 +5.83746 202.063 94.1567 +3.89538 202.283 94.2589 +1.94864 202.396 94.3117 +1.86517e-14 202.404 94.3155 +-1.95125 202.668 94.4385 +-3.89887 202.464 94.3434 +-5.84793 202.425 94.3253 +-7.80353 202.553 94.3848 +-9.74893 202.392 94.3101 +-11.7023 202.399 94.313 +-13.6566 202.389 94.3084 +-15.6324 202.634 94.4228 +-17.5356 201.961 94.109 +-19.5403 202.447 94.3354 +-21.4982 202.374 94.3016 +-23.5398 203.008 94.5968 +-25.3915 202.004 94.1289 +-27.3231 201.705 93.9899 +-29.264 201.481 93.8856 +-31.3139 201.96 94.1086 +-33.2571 201.705 93.9899 +-35.1978 201.434 93.8636 +-37.1687 201.327 93.8138 +-39.2445 201.74 94.0059 +-41.0212 200.619 93.4839 +-43.161 201.266 93.785 +-45.2366 201.539 93.9122 +-47.2375 201.439 93.8657 +-49.1967 201.146 93.7293 +-51.3113 201.456 93.8737 +-53.2956 201.219 93.7631 +-55.4243 201.493 93.8911 +-57.4121 201.222 93.7648 +-59.4507 201.111 93.7128 +-61.545 201.157 93.7344 +-63.81 201.708 93.9912 +-65.9484 201.804 94.0359 +-68.1518 202.055 94.1529 +-70.0945 201.508 93.8978 +-72.2482 201.549 93.9172 +-74.3128 201.314 93.8074 +-76.5411 201.49 93.8894 +-78.745 201.56 93.9223 +-80.9904 201.696 93.9857 +-83.3143 201.982 94.1187 +-85.5066 201.907 94.0841 +-87.4472 201.224 93.7656 +-89.7557 201.365 93.8311 +-91.7675 200.814 93.5747 +-94.4006 201.583 93.9329 +-96.577 201.327 93.8138 +-99.1217 201.798 94.033 +-100.936 200.759 93.5489 +-103.626 201.432 93.8623 +-105.863 201.177 93.7437 +-108.278 201.228 93.7673 +-110.434 200.769 93.5536 +-113.18 201.342 93.8205 +-115.114 200.439 93.3998 +-118.166 201.442 93.867 +-120.339 200.898 93.6136 +-122.948 201.048 93.6837 +-125.322 200.778 93.5578 +-128.05 201.035 93.6773 +-130.437 200.717 93.5295 +-134.991 203.641 94.8917 +-138.723 205.192 95.6148 +-141.753 205.625 95.8162 +-143.029 203.502 94.827 +-142.913 199.474 92.95 +-142.786 195.539 91.1165 +-144.999 194.853 90.7968 +-147.096 193.998 90.3985 +-150.334 194.609 90.6832 +-525.246 667.46 311.02 +-526.949 657.414 306.339 +-529.809 648.994 302.416 +-531.162 638.916 297.719 +-533.579 630.303 293.706 +-536.118 621.987 289.831 +-538.413 613.538 285.894 +-540.334 604.818 281.831 +-542.956 597.024 278.199 +-543.991 587.637 273.825 +-546.965 580.486 270.493 +-553.911 577.574 269.136 +-563.095 576.905 268.824 +-575.653 579.501 270.033 +-577.697 571.451 266.282 +-582.154 565.865 263.68 +-584.964 558.74 260.359 +-582.679 546.919 254.851 +-584.068 538.734 251.037 +-585.131 530.376 247.143 +-594.423 529.476 246.723 +-596.836 522.424 243.437 +-589.874 507.388 236.431 +-582.377 492.256 229.379 +-577.214 479.425 223.401 +-578.687 472.293 220.077 +-581.19 466.076 217.18 +-581.806 458.429 213.617 +-585.208 453.044 211.108 +-585.794 445.543 207.612 +-589.058 440.143 205.096 +-591.097 433.869 202.173 +-593.139 427.654 199.277 +-594.397 420.936 196.146 +-597.078 415.281 193.511 +-599.136 409.234 190.693 +-600.963 403.077 187.824 +-602.394 396.71 184.857 +-605.458 391.456 182.409 +-606.173 384.728 179.274 +-609.112 379.457 176.818 +-610.006 372.951 173.786 +-612.573 367.512 171.252 +-614.494 361.714 168.55 +-616.435 355.963 165.87 +-618.481 350.305 163.234 +-620.21 344.5 160.529 +-622.132 338.834 157.889 +-624.509 333.44 155.375 +-626.656 327.944 152.814 +-382.26 196.034 91.3471 +-380.984 191.421 89.1977 +-381.407 187.708 87.4676 +-382.14 184.173 85.8204 +-377.423 178.089 82.985 +-380.371 175.673 81.8594 +-382.405 172.819 80.5293 +-382.347 169.032 78.7651 +-382.606 165.417 77.0803 +-381.102 161.081 75.0601 +-135.857 56.12 26.1506 +-137.215 55.375 25.8034 +-382.597 150.791 70.2649 +-382.102 147.015 68.5053 +-382.579 143.64 66.9328 +-382 139.895 65.188 +-639.29 228.258 106.363 +-382.768 133.182 62.0595 +-381.226 129.196 60.2023 +-382.173 126.083 58.7519 +-381.204 122.359 57.0163 +-376.978 117.657 54.8255 +-377.243 114.412 53.3134 +-377.665 111.228 51.8296 +-377.195 107.8 50.2322 +-377.836 104.706 48.7907 +-376.529 101.096 47.1084 +-378.353 98.3387 45.8235 +-378.225 95.0756 44.303 +-378.45 91.9158 42.8306 +-380.966 89.3049 41.6139 +-380.841 86.0687 40.106 +-381.655 83.0531 38.7008 +-380.589 79.6437 37.112 +-381.732 76.7087 35.7444 +-380.402 73.2905 34.1516 +-381.093 70.2788 32.7482 +-381.166 67.1579 31.294 +-381.208 64.0412 29.8417 +-381.121 60.9132 28.3841 +-380.509 57.7168 26.8947 +-380.655 54.6481 25.4647 +-380.969 51.6083 24.0482 +-380.758 48.5046 22.602 +-381.31 45.5028 21.2032 +-380.84 42.3855 19.7506 +-381.234 39.3715 18.3462 +-380.703 36.2692 16.9006 +-380.64 33.2217 15.4805 +-380.646 30.1859 14.0659 +-381.022 27.181 12.6657 +-380.87 24.1408 11.249 +-380.19 21.0774 9.82157 +-379.779 18.0409 8.40663 +-380.238 15.048 7.012 +-380.668 12.0493 5.61467 +-380.57 9.03301 4.20917 +-146.578 2.3191 1.08065 +-146.394 1.15801 0.539605 +96.6 3.55271e-15 -1.7053e-13 +96.5963 0.767279 0.349145 +96.6853 1.53609 0.698988 +96.367 2.29684 1.04516 +96.5412 3.06853 1.39632 +96.5081 3.83523 1.7452 +96.4676 4.60163 2.09394 +96.4198 5.36769 2.44253 +96.3647 6.13334 2.79093 +96.3022 6.89851 3.13912 +96.332 7.67109 3.49068 +96.2548 8.43595 3.83872 +96.1703 9.20017 4.18648 +96.0784 9.96373 4.53393 +96.8725 10.8262 4.92641 +96.765 11.5953 5.27639 +96.5511 12.3508 5.62015 +95.5389 12.9961 5.91381 +96.1021 13.8542 6.30425 +95.9656 14.6169 6.65134 +95.7233 15.3628 6.99075 +96.359 16.2553 7.39686 +96.0031 16.9853 7.72903 +96.1306 17.8016 8.1005 +95.8585 18.5455 8.43901 +95.677 19.3063 8.78518 +95.5857 20.0859 9.13997 +95.3895 20.8444 9.4851 +95.186 21.6012 9.82949 +95.8466 22.5616 10.2665 +95.7232 23.3456 10.6233 +95.4958 24.105 10.9688 +96.03 25.0633 11.4049 +95.7861 25.8251 11.7515 +96.3955 26.8245 12.2063 +96.1347 27.589 12.5542 +95.8665 28.3516 12.9012 +96.4445 29.3719 13.3655 +96.1592 30.1369 13.7136 +96.4322 31.0817 14.1435 +96.1306 31.8466 14.4916 +95.8216 32.6089 14.8384 +96.5322 33.7275 15.3475 +96.8565 34.7265 15.8021 +96.7053 35.5627 16.1826 +96.3606 36.3295 16.5315 +96.8371 37.4135 17.0248 +96.5664 38.2176 17.3907 +96.379 39.0571 17.7727 +96.0009 39.8212 18.1204 +96.5218 40.9668 18.6417 +96.1253 41.7319 18.9898 +96.5305 42.853 19.5 +96.116 43.618 19.8481 +96.3178 44.6691 20.3264 +95.8859 45.4324 20.6737 +96.2413 46.5769 21.1945 +96.4941 47.687 21.6996 +96.0332 48.4516 22.0476 +96.3484 49.6159 22.5774 +95.6958 50.2883 22.8834 +96.1578 51.5547 23.4596 +96.3456 52.6915 23.9769 +96.3483 53.74 24.4541 +95.8294 54.5033 24.8014 +95.8936 55.6048 25.3026 +95.3568 56.3643 25.6482 +95.5633 57.5717 26.1976 +95.6709 58.7357 26.7273 +95.8459 59.9573 27.2832 +95.2674 60.7163 27.6286 +95.4143 61.9465 28.1883 +95.3831 63.0765 28.7025 +95.4982 64.3189 29.2679 +95.4369 65.4584 29.7864 +94.9644 66.3248 30.1807 +95.5069 67.9172 30.9053 +95.5565 69.1831 31.4813 +95.5112 70.3977 32.034 +95.5271 71.6747 32.6151 +94.8363 72.4307 32.9591 +95.507 74.2453 33.7848 +95.3953 75.4788 34.3461 +95.2672 76.7161 34.9092 +95.1969 78.018 35.5016 +95.1088 79.3246 36.0961 +95.0028 80.6357 36.6927 +94.879 81.9511 37.2913 +95.2406 83.7132 38.0932 +95.1476 85.1045 38.7262 +94.8937 86.3718 39.3029 +95.3938 88.3558 40.2057 +95.1682 89.6994 40.8171 +94.8553 90.9801 41.3999 +94.5932 92.3293 42.0139 +94.8529 94.218 42.8733 +94.682 95.7116 43.5529 +94.4896 97.2098 44.2347 +93.6196 98.0253 44.6058 +90.9227 96.8967 44.0922 +89.6689 97.2662 44.2604 +88.7965 98.0454 44.6149 +88.923 99.9495 45.4814 +88.4593 101.222 46.0604 +88.1012 102.637 46.7044 +88.6965 105.211 47.8757 +88.0455 106.347 48.3926 +88.4501 108.799 49.5084 +89.1082 111.633 50.7978 +88.7314 113.226 51.5226 +89.0764 115.79 52.6893 +87.9062 116.418 52.9751 +87.6255 118.244 53.8059 +88.0339 121.061 55.0878 +87.9592 123.281 56.0984 +88.0634 125.818 57.2527 +93.1598 135.698 61.7486 +93.5272 138.917 63.2132 +93.1704 141.137 64.2234 +93.2348 144.067 65.5566 +93.3 147.088 66.9313 +93.2158 149.962 68.2392 +93.3259 153.244 69.7328 +92.7119 155.42 70.7226 +92.4859 158.32 72.0426 +93.0885 162.762 74.0638 +92.7957 165.767 75.431 +92.943 169.674 77.2091 +92.3648 172.369 78.4355 +92.3446 176.218 80.187 +92.3844 180.327 82.0566 +91.0252 181.799 82.7264 +90.0922 184.178 83.809 +87.9242 184.052 83.7519 +91.6264 196.473 89.4038 +91.9588 202.071 91.951 +90.6173 204.144 92.8945 +87.9236 203.162 92.4476 +86.0083 203.938 92.8004 +83.5945 203.505 92.6037 +81.5718 203.99 92.8245 +79.2457 203.686 92.6861 +77.1922 204.049 92.8514 +74.9474 203.878 92.7735 +72.928 204.293 92.962 +70.3952 203.215 92.4716 +68.5027 203.94 92.8017 +66.2892 203.692 92.6886 +64.2786 204.035 92.8448 +62.0795 203.748 92.7143 +60.1237 204.234 92.9355 +57.8879 203.735 92.7081 +55.6662 203.215 92.4716 +53.5991 203.207 92.4679 +51.6263 203.536 92.6178 +49.5214 203.317 92.518 +47.591 203.791 92.7338 +45.4758 203.448 92.5776 +43.5045 203.712 92.6977 +41.4039 203.334 92.5258 +39.4529 203.654 92.6716 +37.4493 203.691 92.6882 +35.4168 203.532 92.6157 +33.3606 203.175 92.4534 +31.3835 203.251 92.4881 +29.3292 202.772 92.2699 +27.4937 203.809 92.742 +25.4141 203.026 92.3854 +23.4666 203.219 92.4736 +21.5365 203.58 92.6377 +19.4706 202.564 92.1754 +17.4571 201.894 91.8706 +15.5766 202.752 92.2608 +13.6321 202.868 92.3138 +11.6919 203.059 92.4008 +9.70531 202.326 92.0669 +7.80004 203.305 92.5126 +5.83746 202.904 92.3303 +3.87967 202.306 92.0578 +1.94078 202.42 92.11 +1.95399e-14 203.156 92.4447 +-1.94078 202.42 92.11 +-3.90236 203.489 92.5962 +-5.81914 202.267 92.0404 +-7.79655 203.214 92.4712 +-9.71404 202.508 92.1498 +-11.6866 202.968 92.3593 +-13.5955 202.323 92.0657 +-15.5906 202.934 92.3436 +-17.4728 202.075 91.953 +-19.5577 203.471 92.588 +-21.4119 202.402 92.1017 +-23.4353 202.948 92.3502 +-25.3009 202.121 91.9737 +-27.3109 202.455 92.1257 +-29.2509 202.23 92.0234 +-31.1748 201.9 91.8731 +-33.2423 202.455 92.1257 +-35.1978 202.273 92.0429 +-37.1357 201.985 91.912 +-39.0882 201.772 91.8151 +-41.003 201.364 91.6296 +-43.1038 201.836 91.8441 +-45.117 201.842 91.847 +-47.2375 202.277 92.045 +-49.1751 201.894 91.8706 +-51.0864 201.407 91.649 +-53.0855 201.26 91.5819 +-55.4727 202.509 92.1502 +-57.1618 201.179 91.5451 +-59.606 202.476 92.1353 +-61.4916 201.819 91.8362 +-63.7549 202.373 92.0885 +-65.6643 201.771 91.8147 +-67.8887 202.113 91.97 +-69.884 201.739 91.8002 +-72.0319 201.782 91.8197 +-74.2176 201.893 91.8702 +-76.5736 202.415 92.1075 +-78.4112 201.541 91.7099 +-80.9562 202.45 92.1237 +-82.9291 201.885 91.8665 +-85.2199 202.068 91.9497 +-87.4472 202.062 91.9468 +-89.5684 201.781 91.8192 +-91.7675 201.65 91.7596 +-94.049 201.668 91.7679 +-96.2979 201.581 91.7281 +-98.837 202.056 91.9443 +-100.895 201.512 91.6967 +-103.33 201.692 91.7787 +-105.475 201.274 91.5886 +-108.146 201.82 91.8366 +-110.032 200.872 91.4055 +-112.726 201.369 91.6316 +-115.206 201.434 91.6614 +-117.743 201.556 91.7169 +-119.815 200.854 91.3972 +-122.56 201.248 91.5765 +-125.273 201.534 91.7066 +-127.6 201.162 91.5376 +-129.981 200.847 91.3939 +-134.528 203.786 92.7313 +-138.253 205.348 93.4424 +-141.17 205.631 93.5712 +-143.513 205.04 93.302 +-142.913 200.304 91.147 +-142.786 196.353 89.3491 +-144.551 195.06 88.761 +-147.322 195.105 88.7812 +-150.048 195.046 88.7543 +-526.872 672.313 305.932 +-528.066 661.549 301.034 +-531.058 653.232 297.249 +-532.606 643.319 292.738 +-535.345 635.021 288.962 +-536.487 625.007 284.405 +-539.782 617.659 281.062 +-541.09 608.184 276.75 +-544.419 601.123 273.537 +-545.148 591.338 269.084 +-548.329 584.356 265.907 +-552.533 578.535 263.259 +-561.769 577.942 262.989 +-575.051 581.305 264.519 +-578.846 574.97 261.636 +-580.449 566.556 257.808 +-581.935 558.16 253.987 +-583.652 550.112 250.325 +-585.189 542.015 246.64 +-588.525 535.673 243.754 +-594.138 531.424 241.821 +-592.592 520.869 237.018 +-582.185 502.859 228.822 +-576.087 488.966 222.501 +-578.542 482.527 219.571 +-579.43 474.868 216.086 +-582.538 469.102 213.462 +-583.541 461.71 210.098 +-586.197 455.699 207.363 +-587.556 448.743 204.197 +-590.216 442.843 201.513 +-591.486 435.962 198.382 +-594.313 430.284 195.798 +-595.421 423.418 192.673 +-598.188 417.785 190.11 +-599.616 411.266 187.144 +-602.089 405.512 184.526 +-603.608 399.164 181.637 +-606.19 393.56 179.087 +-607.155 386.956 176.082 +-609.853 381.5 173.599 +-612.244 375.878 171.041 +-614.324 370.096 168.41 +-615.249 363.666 165.484 +-617.953 358.325 163.053 +-620.093 352.68 160.485 +-622.598 347.265 158.021 +-623.503 340.995 155.167 +-625.37 335.29 152.571 +-627.695 329.855 150.098 +-381.216 196.313 89.3309 +-381.597 192.526 87.6079 +-382.637 189.098 86.0477 +-381.787 184.77 84.0783 +-377.867 179.04 81.471 +-379.391 175.949 80.0644 +-381.868 173.295 78.8567 +-381.808 169.497 77.1283 +-381.703 165.713 75.4066 +-382.915 162.521 73.9541 +-135.038 56.0139 25.4888 +-136.392 55.2724 25.1513 +-381.13 150.838 68.6377 +-382.378 147.734 67.2253 +-381.193 143.715 65.3967 +-383.112 140.886 64.1095 +-643.57 230.743 104.998 +-379.594 132.626 60.3508 +-382.256 130.085 59.1944 +-382.173 126.608 57.6122 +-382.147 123.172 56.0487 +-376.978 118.147 53.762 +-376.579 114.686 52.1873 +-377.189 111.55 50.7601 +-376.337 108.003 49.146 +-377.262 104.983 47.7718 +-377.2 101.698 46.277 +-377.487 98.5223 44.8319 +-377.069 95.1792 43.3107 +-380.865 92.8873 42.2678 +-381.837 89.8817 40.9001 +-380.841 86.427 39.328 +-380.78 83.2075 37.863 +-381.271 80.1184 36.4574 +-381.341 76.9491 35.0152 +-382.162 73.9362 33.6442 +-380.995 70.5532 32.1048 +-381.068 67.4201 30.6791 +-380.52 64.1916 29.21 +-380.825 61.1195 27.812 +-381.002 58.0322 26.4072 +-381.05 54.9325 24.9967 +-380.672 51.7827 23.5634 +-381.154 48.7571 22.1866 +-380.417 45.5852 20.7433 +-381.435 42.6285 19.3978 +-380.637 39.4735 17.9622 +-380.106 36.363 16.5468 +-379.744 33.2815 15.1445 +-380.447 30.2957 13.7859 +-380.623 27.2655 12.407 +-380.571 24.2222 11.0222 +-380.788 21.1985 9.64622 +-379.479 18.1017 8.23706 +-381.137 15.1464 6.89226 +-380.668 12.0994 5.50576 +-379.97 9.05632 4.12102 +-146.178 2.3224 1.05679 +-145.594 1.15648 0.526247 +95.7 0 -1.7053e-13 +96.5963 0.770398 0.342209 +96.5853 1.54074 0.684392 +96.5669 2.31096 1.02652 +96.5412 3.08101 1.36858 +96.5081 3.85082 1.71052 +96.4676 4.62033 2.05234 +96.5196 5.39508 2.39648 +96.4644 6.16463 2.73832 +96.4019 6.93371 3.07994 +96.332 7.70227 3.42133 +96.2548 8.47024 3.76246 +96.0708 9.22796 4.09904 +96.0784 10.0042 4.44386 +96.8725 10.8702 4.82854 +96.6659 11.6305 5.16625 +96.5511 12.401 5.5085 +96.429 13.1705 5.85031 +96.1021 13.9105 6.17901 +95.9656 14.6763 6.5192 +95.7233 15.4253 6.85187 +95.4741 16.1715 7.18333 +96.1995 17.0892 7.59099 +96.1306 17.874 7.93958 +95.8585 18.6209 8.27136 +95.7746 19.4045 8.61942 +95.5857 20.1676 8.95839 +95.3895 20.9291 9.29667 +96.2533 21.9323 9.74228 +95.9434 22.6762 10.0727 +95.7232 23.4405 10.4122 +96.363 24.4227 10.8485 +96.03 25.1652 11.1783 +95.7861 25.93 11.5181 +96.2043 26.88 11.9401 +96.1347 27.7012 12.3048 +95.9616 28.4951 12.6575 +95.591 29.2303 12.984 +95.9701 30.1998 13.4147 +96.715 31.2996 13.9032 +96.1306 31.976 14.2037 +96.8519 33.0934 14.7 +96.1588 33.7336 14.9844 +95.833 34.4992 15.3245 +96.7053 35.7073 15.8611 +96.1759 36.4071 16.172 +96.0087 37.2442 16.5438 +96.5664 38.3729 17.0452 +96.379 39.2159 17.4196 +96.0009 39.983 17.7604 +96.5218 41.1333 18.2713 +96.1253 41.9015 18.6126 +96.5305 43.0272 19.1126 +96.116 43.7953 19.4538 +96.3178 44.8507 19.9226 +95.8859 45.6171 20.263 +96.2413 46.7662 20.7735 +96.4941 47.8808 21.2686 +96.0332 48.6486 21.6096 +96.1743 49.7276 22.0889 +96.4752 50.904 22.6114 +96.1578 51.7642 22.9936 +96.0885 52.7645 23.4379 +95.6662 53.5765 23.7986 +95.6598 54.628 24.2656 +95.8936 55.8308 24.7999 +96.1116 57.0413 25.3376 +95.5633 57.8057 25.6772 +95.6709 58.9745 26.1963 +95.8459 60.201 26.7412 +96.0046 61.435 27.2893 +95.4143 62.1982 27.6283 +95.3831 63.3328 28.1323 +95.3374 64.4716 28.6382 +95.5967 65.8345 29.2436 +95.6784 67.0951 29.8035 +95.5069 68.1932 30.2913 +95.4782 69.4074 30.8306 +95.589 70.7413 31.4232 +94.9098 71.501 31.7606 +94.8363 72.7251 32.3044 +95.4309 74.4877 33.0873 +95.3953 75.7856 33.6638 +95.2672 77.0279 34.2157 +95.1969 78.3351 34.7963 +95.1825 79.7087 35.4065 +95.7342 81.5867 36.2407 +94.879 82.2842 36.5505 +95.3125 84.1169 37.3646 +95.0763 85.3863 37.9284 +95.0352 86.8522 38.5796 +94.7629 88.1283 39.1464 +95.1682 90.064 40.0063 +94.8553 91.3498 40.5774 +94.5932 92.7046 41.1792 +94.8529 94.6009 42.0216 +95.3511 96.7797 42.9893 +94.9535 98.0838 43.5686 +93.3572 98.1478 43.597 +90.8578 97.2211 43.1854 +89.7974 97.8014 43.4432 +88.7965 98.4439 43.7286 +88.923 100.356 44.5778 +88.4593 101.633 45.1453 +88.84 103.919 46.1606 +88.2704 105.131 46.6989 +88.2863 107.072 47.5612 +88.0933 108.8 48.3288 +88.7556 111.643 49.5917 +89.196 114.281 50.7633 +88.6749 115.737 51.41 +88.0762 117.117 52.0234 +88.017 119.255 52.9729 +88.3651 122.01 54.1964 +87.8503 123.63 54.9162 +88.3858 126.792 56.3207 +93.3188 136.482 60.625 +93.2137 139.013 61.7495 +93.5824 142.336 63.2256 +93.2348 144.652 64.2542 +93.2 147.527 65.5314 +93.1173 150.413 66.8129 +93.1319 153.547 68.2054 +92.8074 156.212 69.3891 +93.0023 159.851 71.0056 +92.6729 162.694 72.2685 +92.8865 166.603 74.0048 +92.943 170.364 75.6752 +92.4525 173.234 76.9503 +92.0002 176.274 78.3005 +92.173 180.646 80.2426 +90.4446 181.374 80.5661 +90.0922 184.927 82.1441 +87.326 183.543 81.5295 +92.0563 198.197 88.0389 +91.9971 202.977 90.162 +90.505 204.72 90.9361 +87.8137 203.733 90.4977 +86.0083 204.766 90.9568 +83.4894 204.076 90.6499 +81.2298 203.96 90.5988 +79.2124 204.428 90.8066 +77.1597 204.793 90.9686 +74.6618 203.927 90.5842 +72.5263 203.993 90.6134 +70.305 203.779 90.5184 +68.2688 204.07 90.6475 +65.9484 203.468 90.38 +64.003 203.986 90.6102 +61.8657 203.872 90.5594 +59.8907 204.269 90.736 +57.6124 203.589 90.434 +55.7146 204.218 90.7133 +53.5991 204.033 90.6309 +51.6038 204.274 90.738 +49.3049 203.25 90.2834 +47.3623 203.636 90.4547 +45.2964 203.469 90.3804 +43.3518 203.822 90.5375 +41.2399 203.352 90.3284 +39.3139 203.762 90.5107 +37.2347 203.347 90.3264 +35.276 203.546 90.4149 +33.2276 203.187 90.2554 +31.3835 204.077 90.6508 +29.1987 202.689 90.0341 +27.384 203.821 90.5371 +25.3236 203.124 90.2274 +23.4666 204.045 90.6365 +21.4503 203.588 90.4336 +19.4706 203.387 90.3443 +17.4807 202.988 90.1669 +15.5138 202.755 90.0633 +13.5955 203.145 90.2367 +11.65 203.154 90.2407 +9.66606 202.326 89.873 +7.76514 203.217 90.2688 +5.80866 202.724 90.0495 +3.88142 203.219 90.2696 +1.93293 202.42 89.9148 +2.04281e-14 203.159 90.2428 +-1.93031 202.146 89.793 +-3.88142 203.219 90.2696 +-5.79819 202.358 89.8872 +-7.76863 203.309 90.3094 +-9.67914 202.6 89.9947 +-11.6552 203.246 90.2813 +-13.5894 203.054 90.1961 +-15.5348 203.029 90.1851 +-17.4728 202.897 90.1263 +-19.4096 202.75 90.0613 +-21.3065 202.224 89.8275 +-23.268 202.319 89.8697 +-25.2104 202.216 89.8238 +-27.2378 202.733 90.0536 +-29.1465 202.327 89.8734 +-31.1748 202.72 90.0479 +-32.9763 201.65 89.5726 +-35.0413 202.192 89.8133 +-36.9707 201.905 89.6858 +-38.9319 201.783 89.6314 +-40.8572 201.465 89.4901 +-42.9511 201.938 89.7004 +-44.8977 201.677 89.5847 +-47.0504 202.295 89.8592 +-49.0019 202.001 89.7284 +-50.9064 201.514 89.5121 +-53.0388 201.9 89.6834 +-54.9647 201.469 89.4922 +-57.1117 201.819 89.6477 +-59.3472 202.416 89.9127 +-61.251 201.847 89.6598 +-63.4517 202.229 89.8295 +-65.3803 201.715 89.6014 +-67.6256 202.147 89.7934 +-69.6134 201.774 89.6278 +-72.0319 202.602 89.9956 +-73.9637 202.02 89.737 +-76.1829 202.2 89.8169 +-78.4446 202.447 89.9265 +-80.3747 201.814 89.6452 +-82.5789 201.849 89.6611 +-85.1482 202.719 90.0475 +-87.0074 201.862 89.6667 +-89.4561 202.347 89.8823 +-91.5379 201.964 89.7118 +-93.6973 201.73 89.6083 +-95.939 201.646 89.5709 +-98.1862 201.541 89.5242 +-100.19 200.917 89.247 +-102.823 201.518 89.5141 +-105.088 201.35 89.4394 +-107.357 201.162 89.3558 +-109.675 201.034 89.2989 +-112.272 201.373 89.4496 +-114.698 201.361 89.4443 +-117.368 201.73 89.6083 +-119.337 200.867 89.2247 +-122.56 202.066 89.7573 +-124.829 201.637 89.5669 +-127.55 201.9 89.6838 +-129.524 200.955 89.2636 +-133.343 202.813 90.0889 +-137.731 205.403 91.2398 +-140.694 205.77 91.4026 +-142.975 205.102 91.1058 +-142.859 201.041 89.3022 +-142.896 197.304 87.6419 +-144.104 195.247 86.7285 +-146.246 194.467 86.3818 +-149.589 195.24 86.7252 +-156.499 200.512 89.0671 +-530.241 666.973 296.268 +-532.961 658.238 292.388 +-533.87 647.467 287.604 +-536.745 639.27 283.962 +-538.519 629.923 279.811 +-541.899 622.6 276.558 +-543.103 612.928 272.262 +-546.646 606.035 269.2 +-547.398 596.191 264.827 +-550.602 589.163 261.705 +-551.942 580.266 257.753 +-559.848 578.306 256.883 +-571.571 580.135 257.695 +-581.48 579.935 257.606 +-583.518 571.866 254.022 +-588.199 566.461 251.621 +-588.167 556.622 247.25 +-592.689 551.193 244.839 +-590.293 539.466 239.63 +-591.713 531.406 236.05 +-588.852 519.684 230.842 +-576.455 499.933 222.069 +-576.746 491.515 218.33 +-580.385 486.032 215.895 +-581.437 478.45 212.526 +-583.961 472.159 209.732 +-585.655 465.266 206.67 +-588.63 459.45 204.087 +-589.548 452.094 200.819 +-592.453 446.329 198.258 +-592.885 438.769 194.9 +-596.347 433.512 192.565 +-596.997 426.264 189.345 +-600.41 421.042 187.026 +-601.053 413.927 183.865 +-604.018 408.465 181.44 +-605.468 402.021 178.577 +-608.389 396.593 176.166 +-609.203 389.839 173.166 +-612.161 384.5 170.794 +-613.239 378.019 167.915 +-616.325 372.812 165.602 +-617.094 366.239 162.683 +-620.314 361.157 160.425 +-621.365 354.84 157.619 +-623.962 349.441 155.221 +-625.132 343.275 152.482 +-627.525 337.812 150.056 +-628.301 331.515 147.259 +-383.479 198.281 88.0758 +-382.384 193.708 86.0448 +-382.461 189.779 84.2993 +-382.581 185.906 82.5792 +-379.286 180.443 80.1525 +-379.925 176.914 78.5847 +-381.6 173.877 77.2357 +-381.808 170.186 75.5961 +-381.703 166.386 73.9086 +-381.556 162.602 72.2275 +-382.093 159.137 70.6881 +-136.118 55.3855 24.6021 +-382.781 152.107 67.5656 +-381.641 148.048 65.7627 +-382.024 144.615 64.2376 +-381.629 140.912 62.5927 +-656.782 236.437 105.025 +-383.141 134.41 59.7048 +-381.507 130.357 57.9044 +-381.233 126.81 56.3289 +-382.618 123.825 55.003 +-377.262 118.717 52.7338 +-376.105 115.007 51.086 +-377.474 112.088 49.7894 +-377.1 108.661 48.2671 +-376.115 105.089 46.6802 +-377.2 102.111 45.3577 +-377.487 98.9227 43.9413 +-379.959 96.299 42.7758 +-381.734 93.4778 41.5226 +-382.128 90.3157 40.118 +-382.394 87.132 38.7039 +-381.072 83.6097 37.1393 +-381.271 80.4441 35.7331 +-381.146 77.2223 34.302 +-381.869 74.1797 32.9505 +-380.407 70.7305 31.4184 +-380.577 67.6069 30.0308 +-380.815 64.5025 28.6519 +-380.825 61.3679 27.2595 +-381.002 58.268 25.8825 +-381.05 55.1558 24.5001 +-380.672 51.9931 23.0952 +-381.649 49.0189 21.7741 +-381.012 45.8421 20.363 +-381.237 42.7794 19.0025 +-381.234 39.696 17.6329 +-380.604 36.5585 16.2392 +-380.64 33.4955 14.8787 +-380.347 30.4109 13.5084 +-379.726 27.3118 12.1319 +-380.571 24.3207 10.8032 +-380.788 21.2846 9.45459 +-380.977 18.247 8.10529 +-380.238 15.172 6.73939 +-380.368 12.139 5.39212 +-379.67 9.08595 4.03596 +-146.178 2.33184 1.0358 +-145.294 1.15879 0.514733 +96.6 3.55271e-15 -1.7053e-13 +95.6964 0.766248 0.332122 +96.5853 1.54685 0.670464 +96.5669 2.32012 1.00563 +96.5412 3.09323 1.34073 +96.5081 3.86609 1.67572 +96.4676 4.63866 2.01058 +96.5196 5.41648 2.34771 +96.4644 6.18909 2.68259 +96.4019 6.96122 3.01726 +96.332 7.73282 3.35171 +97.0511 8.57419 3.71639 +97.0653 9.36054 4.05723 +96.9726 10.1373 4.39391 +95.9792 10.8128 4.68669 +96.6659 11.6766 5.06111 +95.7589 12.348 5.3521 +96.2312 13.1957 5.71953 +96.1021 13.9657 6.05327 +95.867 14.7194 6.37997 +95.7233 15.4865 6.71244 +95.4741 16.2356 7.03715 +95.4142 17.0169 7.37578 +96.1306 17.9449 7.77801 +95.9563 18.7138 8.11131 +95.677 19.4616 8.43543 +95.5857 20.2476 8.77609 +96.3619 21.2263 9.2003 +95.283 21.7973 9.44778 +95.9434 22.7662 9.86774 +96.496 23.7234 10.2827 +96.2667 24.4951 10.6171 +96.03 25.265 10.9508 +95.7861 26.0329 11.2837 +96.2043 26.9867 11.6971 +96.1347 27.811 12.0544 +95.6763 28.523 12.363 +96.2549 29.55 12.8081 +96.1592 30.3794 13.1676 +96.5265 31.3625 13.5937 +96.1306 32.1028 13.9146 +96.8519 33.2247 14.4009 +96.5322 33.9989 14.7365 +96.8565 35.006 15.173 +96.7053 35.8489 15.5383 +96.3606 36.6218 15.8733 +96.1007 37.4278 16.2227 +96.5664 38.5251 16.6983 +96.379 39.3714 17.0651 +95.8189 40.0655 17.366 +96.5218 41.2965 17.8995 +96.1253 42.0677 18.2338 +96.5305 43.1979 18.7236 +96.7424 44.2557 19.1821 +96.496 45.1119 19.5533 +96.6842 46.1793 20.0159 +96.153 46.9087 20.3321 +95.7911 47.7205 20.6839 +96.0332 48.8415 21.1698 +96.3484 50.0152 21.6786 +95.869 50.7847 22.0121 +95.9855 51.8764 22.4853 +96.1742 53.021 22.9814 +95.581 53.7411 23.2935 +95.8294 54.9419 23.814 +95.8936 56.0522 24.2952 +96.1116 57.2676 24.822 +95.5633 58.035 25.1546 +95.6709 59.2084 25.6632 +95.9283 60.4918 26.2195 +95.1855 61.1524 26.5058 +95.3329 62.3916 27.043 +95.3831 63.5841 27.5598 +95.4982 64.8365 28.1027 +95.5967 66.0957 28.6485 +95.5197 67.2495 29.1486 +95.5069 68.4637 29.6749 +94.8521 69.2258 30.0052 +95.5112 70.9642 30.7587 +94.9098 71.7846 31.1143 +95.4491 73.4854 31.8514 +94.7466 74.2468 32.1815 +95.3953 76.0862 32.9787 +95.2672 77.3335 33.5194 +95.1969 78.6458 34.0882 +95.1088 79.9629 34.6591 +95.6611 81.8478 35.476 +94.879 82.6106 35.8067 +95.3125 84.4506 36.6042 +95.1476 85.7893 37.1845 +94.9644 87.1318 37.7663 +94.6928 88.4123 38.3214 +95.1682 90.4212 39.1921 +94.6488 91.5125 39.6651 +94.5932 93.0723 40.3412 +94.988 95.1111 41.2249 +94.7489 96.5497 41.8484 +94.6221 98.1297 42.5333 +92.0451 97.1525 42.1097 +90.6629 97.3975 42.2159 +89.4118 97.7682 42.3766 +88.9873 99.0463 42.9306 +88.6712 100.468 43.547 +88.3971 101.964 44.1952 +88.4706 103.897 45.0331 +88.1487 105.403 45.6857 +88.2863 107.497 46.5933 +88.5096 109.748 47.5692 +88.3441 111.566 48.357 +88.4991 113.838 49.3417 +88.3881 115.819 50.2007 +88.0195 117.506 50.9317 +88.4084 120.26 52.1255 +88.1995 122.264 52.9941 +87.9592 124.274 53.865 +89.5678 128.997 55.9123 +93.4778 137.257 59.4927 +93.6317 140.191 60.7641 +93.0674 142.115 61.5981 +93.0825 144.989 62.844 +93.2 148.113 64.1978 +93.2158 151.169 65.5225 +93.1804 154.237 66.8524 +93.2368 157.557 68.2916 +92.9554 160.405 69.5256 +93.0885 164.072 71.1152 +92.8865 167.264 72.4987 +92.8538 170.875 74.064 +92.4963 174.004 75.4202 +92.689 178.299 77.2818 +92.2153 181.445 78.6454 +90.569 182.344 79.0352 +89.7261 184.906 80.1455 +87.8045 185.281 80.3082 +92.4079 199.743 86.5765 +91.7675 203.273 88.1065 +89.943 204.256 88.5324 +87.5571 203.944 88.3972 +85.4708 204.294 88.5491 +82.8591 203.338 88.1347 +80.922 203.993 88.4186 +78.5114 203.422 88.1713 +76.8992 204.911 88.8163 +74.281 203.692 88.2882 +72.2173 203.93 88.3912 +69.9141 203.45 88.1832 +67.8887 203.739 88.3085 +65.7496 203.659 88.2739 +63.7549 204.001 88.4222 +61.6252 203.885 88.3717 +59.6319 204.193 88.5053 +57.3871 203.597 88.2468 +55.5211 204.316 88.5586 +53.1322 203.057 88.013 +51.1989 203.476 88.1943 +49.1101 203.251 88.0969 +47.196 203.726 88.3029 +45.0572 203.197 88.0734 +43.161 203.73 88.3045 +41.0212 203.076 88.021 +39.1577 203.757 88.3164 +37.0697 203.249 88.0961 +35.1665 203.719 88.2997 +33.065 202.995 87.986 +31.133 203.252 88.0973 +29.1987 203.493 88.2019 +27.2744 203.811 88.3395 +25.2443 203.292 88.1148 +23.3517 203.851 88.357 +21.3161 203.117 88.0388 +19.3747 203.189 88.0699 +17.3159 201.873 87.4996 +15.458 202.827 87.9132 +13.5345 203.034 88.0031 +11.5976 203.044 88.007 +9.66169 203.037 88.0042 +7.72675 203.015 87.9947 +5.77987 202.519 87.7796 +3.86396 203.108 88.0349 +1.92595 202.489 87.7668 +1.77636e-14 203.322 88.1279 +-1.93293 203.223 88.085 +-3.86745 203.291 88.1144 +-5.79819 203.161 88.0579 +-7.73024 203.107 88.0345 +-9.63552 202.488 87.766 +-11.6081 203.227 88.0866 +-13.4795 202.21 87.6459 +-15.465 202.919 87.9529 +-17.3787 202.604 87.8165 +-19.3311 202.732 87.8718 +-21.249 202.477 87.7617 +-23.2471 202.939 87.9617 +-25.0972 202.107 87.601 +-27.1281 202.718 87.8659 +-28.9507 201.765 87.4527 +-30.9521 202.071 87.5855 +-32.9024 201.997 87.5533 +-34.9475 202.451 87.7501 +-36.7066 201.258 87.2331 +-38.7583 201.679 87.4157 +-40.7114 201.542 87.356 +-42.7985 202.019 87.5628 +-44.6185 201.219 87.216 +-46.6762 201.482 87.3302 +-48.6556 201.369 87.2813 +-50.9064 202.313 87.6905 +-52.6653 201.274 87.2399 +-54.9647 202.268 87.671 +-56.7111 201.198 87.2073 +-58.8813 201.623 87.3914 +-61.0372 201.94 87.5286 +-63.1485 202.061 87.5811 +-65.1531 201.811 87.4729 +-67.304 201.984 87.5477 +-69.2525 201.525 87.3489 +-71.7228 202.533 87.7859 +-73.4243 201.342 87.2697 +-75.8574 202.135 87.6133 +-77.8104 201.607 87.3843 +-80.3747 202.614 87.8209 +-82.2287 201.791 87.4642 +-84.3957 201.724 87.4352 +-86.2744 200.955 87.1019 +-88.8567 201.788 87.463 +-91.1552 201.917 87.5187 +-93.5801 202.277 87.675 +-95.4605 201.436 87.3103 +-98.2269 202.424 87.7386 +-99.9825 201.297 87.2498 +-102.612 201.902 87.5123 +-104.7 201.404 87.2964 +-107.006 201.3 87.2514 +-109.229 201.01 87.1258 +-111.909 201.518 87.3457 +-114.237 201.346 87.2713 +-116.57 201.153 87.1878 +-119.003 201.099 87.1643 +-121.736 201.503 87.3393 +-123.943 201 87.1214 +-126.55 201.112 87.1699 +-129.169 201.198 87.2073 +-132.056 201.651 87.4033 +-137.26 205.514 89.078 +-140.217 205.886 89.2391 +-141.955 204.446 88.6147 +-142.859 201.839 87.4849 +-142.952 198.162 85.8913 +-143.657 195.413 84.6999 +-144.094 192.365 83.3787 +-149.474 195.864 84.8951 +-155.454 199.963 86.672 +-532.475 672.44 291.462 +-536.054 664.685 288.1 +-536.398 653.113 283.085 +-540.032 645.736 279.887 +-540.428 634.663 275.088 +-544.949 628.588 272.455 +-544.866 617.356 267.586 +-549.19 611.271 264.949 +-550.162 601.579 260.748 +-553.784 594.918 257.861 +-554.304 585.06 253.588 +-558.257 578.951 250.94 +-568.226 579.028 250.973 +-577.9 578.65 250.809 +-583.381 574.001 248.794 +-588.405 568.908 246.587 +-588.862 559.489 242.505 +-591.708 552.463 239.459 +-592.202 543.357 235.512 +-578.303 521.424 226.006 +-577.342 511.548 221.725 +-578.631 503.81 218.371 +-579.671 495.967 214.972 +-583.039 490.192 212.468 +-583.815 482.312 209.053 +-587.031 476.525 206.545 +-587.315 468.435 203.038 +-591.064 463.179 200.76 +-591.616 455.48 197.423 +-595.231 450.201 195.135 +-595.838 442.703 191.885 +-598.382 436.717 189.29 +-599.125 429.479 186.153 +-602.235 423.996 183.777 +-603.449 417.225 180.842 +-606.59 411.832 178.504 +-607.41 404.91 175.504 +-610.505 399.552 173.181 +-611.415 392.806 170.258 +-614.386 387.428 167.927 +-615.063 380.647 164.987 +-618.41 375.556 162.781 +-619.107 368.892 159.892 +-622.592 363.921 157.737 +-623.739 357.609 155.002 +-626.605 352.313 152.706 +-627.018 345.676 149.829 +-630.282 340.642 147.648 +-631.592 334.574 145.017 +-634.75 329.504 142.82 +-381.597 194.076 84.12 +-381.934 190.269 82.47 +-380.462 185.61 80.4505 +-380.616 181.794 78.7966 +-379.034 177.199 76.8049 +-381.242 174.402 75.5928 +-383.156 171.464 74.3194 +-382.606 167.442 72.5759 +-381.465 163.208 70.741 +-381.274 159.425 69.1009 +-136.21 55.6425 24.1176 +-381.497 152.198 65.9687 +-381.181 148.457 64.3469 +-381.747 145.083 62.8846 +-381.814 141.539 61.3487 +-383.89 138.746 60.1378 +-384.542 135.437 58.7037 +-381.132 130.746 56.6703 +-382.643 127.784 55.3866 +-382.335 124.225 53.8439 +-377.546 119.277 51.6992 +-376.105 115.463 50.0464 +-377.569 112.561 48.7885 +-377.1 109.092 47.2849 +-377.262 105.828 45.8699 +-376.529 102.334 44.3555 +-377.295 99.2647 43.0252 +-380.827 96.9021 42.0012 +-382.313 93.9917 40.7397 +-381.547 90.5361 39.2419 +-380.938 87.1447 37.7719 +-380.197 83.7486 36.2999 +-380.979 80.7013 34.9791 +-381.439 77.5883 33.6298 +-381.282 74.3595 32.2303 +-380.799 71.0843 30.8107 +-380.577 67.875 29.4197 +-381.208 64.8253 28.0978 +-380.431 61.5475 26.6771 +-380.706 58.4537 25.3361 +-381.346 55.4176 24.0202 +-381.167 52.2672 22.6546 +-380.362 49.0473 21.259 +-381.607 46.0958 19.9797 +-380.84 42.9044 18.5965 +-381.234 39.8535 17.2741 +-381.3 36.7707 15.9379 +-380.44 33.6108 14.5682 +-380.347 30.5315 13.2335 +-381.52 27.5497 11.9411 +-380.67 24.4236 10.5861 +-380.289 21.3411 9.25005 +-380.378 18.2906 7.92786 +-380.837 15.2563 6.61266 +-380.368 12.1871 5.28239 +-380.27 9.1364 3.96007 +-146.178 2.34109 1.01472 +-146.594 1.17379 0.508768 +96.6 3.55271e-15 -1.7053e-13 +96.3963 0.77484 0.327574 +96.5853 1.55283 0.656482 +96.5669 2.3291 0.984661 +96.5412 3.1052 1.31277 +96.5081 3.88105 1.64077 +96.5675 4.66144 1.97069 +96.4198 5.43182 2.29638 +96.4644 6.21304 2.62665 +96.3022 6.98093 2.95129 +96.332 7.76275 3.28181 +96.2548 8.53674 3.60903 +97.0653 9.39676 3.97261 +95.979 10.0723 4.2582 +95.9792 10.8546 4.58895 +96.6659 11.7218 4.95557 +96.5511 12.4984 5.28387 +96.2312 13.2467 5.60025 +96.1021 14.0197 5.92703 +95.867 14.7764 6.24692 +95.7233 15.5464 6.57245 +96.359 16.4495 6.95426 +96.1995 17.2234 7.28143 +96.1306 18.0143 7.6158 +95.8585 18.7671 7.93405 +95.677 19.5369 8.25951 +95.5857 20.3259 8.59307 +95.3895 21.0934 8.91755 +96.1563 22.0822 9.33557 +96.0402 22.8773 9.67169 +95.7232 23.6245 9.98761 +96.2667 24.5899 10.3957 +96.1262 25.3881 10.7332 +95.7861 26.1336 11.0484 +96.3955 27.145 11.4759 +96.1347 27.9187 11.803 +95.8665 28.6903 12.1292 +95.591 29.4598 12.4545 +96.1592 30.4969 12.893 +96.5265 31.4839 13.3102 +96.2245 32.2586 13.6378 +95.9152 33.0307 13.9642 +96.5322 34.1305 14.4291 +96.8565 35.1414 14.8565 +96.7053 35.9876 15.2143 +96.3606 36.7635 15.5423 +96.9292 37.8965 16.0213 +96.5664 38.6742 16.3501 +96.379 39.5238 16.7092 +96.0919 40.3352 17.0523 +96.5218 41.4563 17.5262 +95.9448 42.1512 17.82 +96.3507 43.2842 18.299 +95.937 44.057 18.6257 +96.3178 45.2028 19.1101 +96.0633 46.0603 19.4727 +96.153 47.0902 19.908 +95.7911 47.9052 20.2526 +96.0332 49.0305 20.7283 +96.1743 50.118 21.1881 +95.869 50.9813 21.553 +96.1578 52.1706 22.0559 +95.4884 52.8466 22.3417 +96.3483 54.3821 22.9908 +95.8294 55.1545 23.3174 +95.8093 56.2196 23.7676 +96.1116 57.4892 24.3044 +96.3138 58.7171 24.8235 +95.6709 59.4375 25.1281 +95.8459 60.6737 25.6507 +96.0046 61.9173 26.1764 +95.9842 63.061 26.6599 +95.3831 63.8301 26.9851 +96.0609 65.4709 27.6787 +95.4369 66.2405 28.0041 +95.5197 67.5098 28.5407 +95.5069 68.7286 29.056 +94.8521 69.4937 29.3794 +95.5112 71.2388 30.1172 +94.9098 72.0624 30.4654 +94.9129 73.3554 31.012 +95.4309 75.0725 31.738 +95.4708 76.441 32.3165 +95.2672 77.6327 32.8203 +95.2712 79.0117 33.4033 +95.1825 80.3346 33.9626 +95.0028 81.5991 34.4972 +94.879 82.9302 35.0599 +95.3125 84.7774 35.8408 +95.1476 86.1213 36.409 +94.9644 87.4689 36.9787 +94.6928 88.7545 37.5222 +95.1682 90.7711 38.3748 +94.6488 91.8667 38.8379 +94.5932 93.4325 39.4999 +94.8529 95.3437 40.3079 +94.682 96.8552 40.9469 +94.4896 98.3713 41.5878 +94.3413 99.961 42.2599 +94.2349 101.626 42.964 +90.6331 99.4867 42.0594 +89.8142 100.353 42.4258 +88.86 101.072 42.7296 +88.6461 102.647 43.3954 +88.3474 104.155 44.0329 +87.966 105.592 44.6403 +88.1659 107.765 45.5593 +88.5096 110.173 46.5772 +88.1678 111.775 47.2543 +87.8604 113.454 47.9642 +88.3881 116.268 49.1538 +87.7363 117.581 49.7091 +88.0729 120.267 50.8446 +88.1995 122.737 51.8889 +88.0681 124.909 52.8071 +92.2543 133.38 56.3884 +93.4778 137.788 58.252 +93.6317 140.733 59.4969 +93.1704 142.823 60.3805 +93.0825 145.55 61.5335 +93.2 148.686 62.859 +93.1173 151.593 64.0883 +93.1804 154.834 65.4582 +93.1891 158.086 66.8331 +93.0023 161.106 68.11 +92.7191 164.054 69.356 +92.7957 167.747 70.9175 +92.943 171.701 72.5892 +92.847 175.34 74.1273 +92.3877 178.407 75.424 +92.0885 181.897 76.8994 +90.569 183.05 77.3869 +89.0753 184.275 77.9048 +88.0039 186.42 78.8117 +92.0172 199.669 84.4128 +91.4996 203.464 86.0175 +89.6434 204.363 86.3972 +87.0074 203.447 86.0101 +85.2199 204.482 86.4478 +82.684 203.693 86.1141 +80.751 204.35 86.3917 +78.1442 203.254 85.9287 +76.2806 204.049 86.2648 +73.7099 202.908 85.7823 +71.8155 203.581 86.0666 +69.6134 203.359 85.9727 +67.684 203.911 86.2064 +65.5223 203.741 86.1343 +63.5344 204.083 86.2788 +61.2243 203.343 85.9661 +59.2178 203.56 86.058 +56.9865 202.958 85.8033 +55.0856 203.498 86.0315 +52.9221 203.037 85.8368 +51.0414 203.635 86.0895 +48.9586 203.407 85.9934 +46.988 203.613 86.0802 +44.9375 203.441 86.0078 +42.9511 203.523 86.0424 +40.9119 203.318 85.9556 +38.984 203.639 86.0911 +36.9046 203.126 85.8746 +35.1195 204.235 86.343 +32.9467 203.052 85.8431 +31.0217 203.309 85.9517 +28.9638 202.637 85.6678 +27.1647 203.777 86.1495 +25.1311 203.163 85.8902 +23.1844 203.174 85.8948 +21.1915 202.711 85.699 +19.2789 202.965 85.8064 +17.3159 202.654 85.6748 +15.3883 202.694 85.6916 +13.4368 202.349 85.5459 +11.561 203.185 85.8995 +9.5919 202.351 85.5467 +7.70232 203.157 85.8874 +5.75369 202.382 85.56 +3.84127 202.696 85.6927 +1.91984 202.628 85.6639 +1.86517e-14 202.728 85.706 +-1.92071 202.72 85.7029 +-3.84302 202.788 85.7317 +-5.75631 202.474 85.5989 +-7.68138 202.604 85.6538 +-9.60063 202.535 85.6246 +-11.561 203.185 85.8995 +-13.4368 202.349 85.5459 +-15.4162 203.061 85.8469 +-17.3081 202.562 85.6359 +-19.2178 202.323 85.535 +-21.1532 202.344 85.544 +-23.0903 202.35 85.5463 +-24.9273 201.516 85.1939 +-27.0306 202.771 85.7243 +-28.8593 201.906 85.3586 +-30.7433 201.484 85.1803 +-32.7546 201.867 85.3423 +-34.838 202.597 85.6507 +-36.558 201.219 85.0682 +-38.6367 201.825 85.3244 +-40.4381 200.963 84.9599 +-42.684 202.258 85.5074 +-44.479 201.365 85.1301 +-46.5514 201.721 85.2804 +-48.4608 201.34 85.1192 +-50.569 201.749 85.2924 +-52.4785 201.336 85.1176 +-54.5534 201.532 85.2005 +-56.4857 201.175 85.0495 +-58.6484 201.603 85.2305 +-60.5295 201.035 84.9903 +-62.7902 201.691 85.2679 +-64.6987 201.179 85.0514 +-67.0701 202.061 85.4241 +-69.0721 201.778 85.3045 +-71.2593 202.004 85.3999 +-73.3926 202.034 85.4128 +-75.5644 202.134 85.4548 +-77.51 201.605 85.2313 +-79.7933 201.926 85.3672 +-81.5633 200.932 84.9471 +-84.0731 201.731 85.2847 +-85.9812 201.048 84.9957 +-88.6319 202.057 85.4225 +-90.5046 201.252 85.0822 +-93.0331 201.873 85.3446 +-94.9422 201.118 85.0253 +-97.4948 201.693 85.2687 +-99.7337 201.573 85.2177 +-101.809 201.097 85.0168 +-104.011 200.853 84.9136 +-106.612 201.334 85.1168 +-108.738 200.882 84.9256 +-111.5 201.559 85.2118 +-113.452 200.737 84.8645 +-116.194 201.282 85.0946 +-118.479 200.987 84.97 +-121.251 201.477 85.1772 +-123.155 200.495 84.7621 +-125.85 200.774 84.8801 +-128.204 200.469 84.7512 +-131.489 201.562 85.2134 +-136.738 205.524 86.8882 +-139.687 205.901 87.0475 +-141.955 205.237 86.7667 +-143.676 203.779 86.1503 +-142.786 198.699 84.0028 +-143.153 195.482 82.643 +-145.113 194.476 82.2174 +-148.384 195.189 82.5188 +-150.518 194.363 82.1699 +-535.237 678.544 286.864 +-539.385 671.402 283.845 +-539.768 659.759 278.923 +-539.911 648.088 273.989 +-543.937 641.257 271.1 +-548.56 635.202 268.54 +-548.579 623.968 263.791 +-552.688 617.546 261.076 +-552.669 606.659 256.474 +-557.032 600.722 253.964 +-557.125 590.313 249.563 +-561.372 584.433 247.077 +-565.884 578.873 244.727 +-574.117 577.086 243.971 +-587.337 580.129 245.258 +-590.126 572.78 242.151 +-594.628 567.154 239.772 +-585.329 548.622 231.938 +-581.807 535.885 226.553 +-577.519 522.732 220.992 +-578.421 514.487 217.507 +-582.185 508.867 215.131 +-582.743 500.524 211.604 +-586.43 494.95 209.247 +-587.01 486.828 205.814 +-589.952 480.749 203.244 +-590.56 472.846 199.902 +-593.877 467.185 197.509 +-594.45 459.433 194.232 +-598.241 454.227 192.031 +-598.791 446.619 188.814 +-602.53 441.445 186.627 +-602.513 433.58 183.302 +-605.884 428.216 181.034 +-606.484 420.946 177.961 +-609.967 415.727 175.755 +-609.999 408.209 172.576 +-613.599 403.13 170.429 +-614.774 396.492 167.623 +-618.012 391.223 165.395 +-618.545 384.284 162.461 +-621.662 378.992 160.224 +-622.964 372.626 157.533 +-625.712 367.16 155.222 +-626.029 360.31 152.326 +-629.675 355.409 150.254 +-629.932 348.626 147.387 +-633.211 343.55 145.241 +-634.017 337.158 142.538 +-636.926 331.913 140.321 +-382.384 195.229 82.5359 +-381.934 191.005 80.7501 +-382.14 187.15 79.1201 +-382.213 183.263 77.4769 +-378.856 177.801 75.1678 +-380.079 174.543 73.7905 +-382.617 171.886 72.6671 +-381.703 167.693 70.8945 +-382.009 164.074 69.3646 +-381.729 160.233 67.7408 +-135.479 55.5581 23.488 +-136.275 54.5772 23.0733 +-381.457 149.139 63.0506 +-381.008 145.362 61.454 +-381.351 141.915 59.9965 +-384.355 139.452 58.9553 +-655.187 231.652 97.9342 +-382.631 131.768 55.7069 +-381.985 128.057 54.1381 +-382.43 124.736 52.7339 +-378.018 119.888 50.6845 +-378.002 116.495 49.25 +-377.284 112.911 47.7348 +-376.909 109.459 46.2754 +-376.784 106.102 44.856 +-377.487 102.991 43.5411 +-379.314 100.182 42.3534 +-382.369 97.6703 41.2915 +-382.024 94.2835 39.8597 +-380.966 90.748 38.365 +-381.52 87.6156 37.0408 +-381.169 84.2877 35.6338 +-381.563 81.1378 34.3022 +-381.146 77.8286 32.9032 +-382.064 74.8004 31.6229 +-380.799 71.3594 30.1682 +-381.068 68.2256 28.8434 +-381.7 65.16 27.5473 +-381.416 61.9456 26.1884 +-380.706 58.6799 24.8078 +-380.754 55.5456 23.4827 +-381.562 52.524 22.2052 +-381.352 49.3653 20.8699 +-380.417 46.1299 19.5021 +-380.84 43.0705 18.2086 +-380.637 39.9452 16.8874 +-381.3 36.913 15.6055 +-380.042 33.7056 14.2495 +-380.347 30.6496 12.9576 +-381.022 27.6202 11.6768 +-381.269 24.5566 10.3816 +-381.088 21.4686 9.07615 +-380.977 18.3903 7.77475 +-380.837 15.3153 6.47475 +-379.469 12.2054 5.16 +-380.57 9.17898 3.88055 +-145.678 2.34212 0.990163 +-145.594 1.17029 0.494758 +95.7 0 -1.7053e-13 +96.3963 0.777763 0.320571 +96.5853 1.55869 0.642447 +96.5669 2.33789 0.963609 +96.5412 3.11691 1.2847 +96.5081 3.89569 1.60569 +96.4676 4.67418 1.92656 +96.5196 5.45796 2.24961 +96.3647 6.23003 2.56784 +96.3022 7.00727 2.88819 +96.332 7.79204 3.21165 +96.2548 8.56895 3.53187 +96.1703 9.34522 3.85182 +96.8733 10.2045 4.20599 +96.8725 10.9969 4.5326 +96.765 11.7782 4.85461 +96.6502 12.5584 5.17619 +96.429 13.324 5.49176 +96.2996 14.1015 5.81224 +95.867 14.8321 6.11336 +95.7233 15.605 6.43193 +95.5724 16.3768 6.75001 +96.1995 17.2884 7.12575 +96.0326 18.0639 7.44539 +95.9563 18.8571 7.77235 +95.7746 19.6306 8.09115 +95.5857 20.4026 8.40935 +95.3895 21.173 8.72689 +96.1563 22.1655 9.13597 +95.8466 22.9173 9.44582 +95.7232 23.7137 9.77407 +96.2667 24.6827 10.1735 +96.03 25.4585 10.4932 +95.7861 26.2322 10.8121 +96.3955 27.2474 11.2306 +96.1347 28.024 11.5507 +95.8665 28.7986 11.8699 +96.2549 29.7763 12.2729 +96.1592 30.612 12.6174 +96.5265 31.6026 13.0257 +96.2245 32.3803 13.3462 +96.8519 33.4791 13.7991 +96.5322 34.2592 14.1206 +96.8565 35.274 14.5389 +96.5198 36.0541 14.8604 +96.1759 36.8314 15.1808 +96.0087 37.6783 15.5299 +96.5664 38.8201 16.0005 +96.379 39.6729 16.352 +96.0009 40.449 16.6719 +96.5218 41.6127 17.1515 +96.1253 42.3899 17.4718 +96.5305 43.5286 17.9412 +96.7424 44.5946 18.3805 +96.3178 45.3734 18.7016 +95.8859 46.1487 19.0211 +96.2413 47.3112 19.5003 +96.4941 48.4388 19.965 +96.0332 49.2155 20.2852 +96.4354 50.4437 20.7914 +95.6958 51.0812 21.0541 +95.9855 52.2736 21.5456 +96.1742 53.427 22.021 +95.581 54.1526 22.3201 +95.8294 55.3626 22.8188 +96.0623 56.5807 23.3209 +95.3568 57.253 23.598 +95.4799 58.4284 24.0824 +95.7538 59.7135 24.6121 +95.1042 60.4314 24.908 +96.0046 62.1509 25.6168 +95.3329 62.8694 25.9129 +95.464 64.1253 26.4305 +95.4982 65.333 26.9283 +95.5967 66.6018 27.4513 +95.5197 67.7645 27.9305 +95.5069 68.988 28.4348 +95.5565 70.2738 28.9648 +95.589 71.5658 29.4973 +95.5271 72.8048 30.008 +95.4491 74.0481 30.5204 +94.8226 74.8755 30.8614 +95.3953 76.6688 31.6006 +95.2672 77.9256 32.1186 +95.1969 79.248 32.6637 +95.1088 80.5752 33.2107 +95.0028 81.907 33.7596 +94.879 83.2432 34.3104 +95.2406 85.0331 35.0481 +95.1476 86.4463 35.6306 +94.9644 87.799 36.1881 +95.3938 89.7488 36.9918 +95.0987 91.0471 37.5269 +94.8553 92.4145 38.0905 +94.4568 93.6491 38.5994 +94.988 95.8394 39.5021 +94.5482 97.0829 40.0147 +94.8209 99.0891 40.8416 +94.9317 100.966 41.6152 +94.6246 102.431 42.2192 +93.4613 102.979 42.4448 +93.5671 104.942 43.2538 +89.3006 101.956 42.0233 +88.9573 103.397 42.617 +88.4706 104.693 43.1513 +88.0269 106.063 43.716 +88.2863 108.32 44.6462 +88.2717 110.291 45.4587 +88.2853 112.345 46.3054 +87.9765 114.033 47.0008 +88.044 116.252 47.9158 +88.2461 118.711 48.9291 +88.4084 121.181 49.9473 +87.758 122.584 50.5254 +88.0681 125.38 51.6781 +93.114 135.132 55.6972 +93.4778 138.308 57.0066 +93.6317 141.264 58.2249 +93.5309 143.917 59.3182 +93.0825 146.1 60.2179 +93.1 149.087 61.4491 +93.2158 152.326 62.7844 +93.1319 155.337 64.0252 +93.1891 158.683 65.4043 +93.0023 161.714 66.6538 +92.7191 164.673 67.8732 +92.7503 168.298 69.3674 +92.8091 172.101 70.9347 +92.4963 175.336 72.2685 +92.3877 179.08 73.8114 +91.7082 181.83 74.9447 +90.2787 183.152 75.4897 +88.5466 183.873 75.7869 +89.559 190.431 78.4898 +92.2125 200.847 82.7834 +91.0404 203.207 83.7558 +89.044 203.763 83.9849 +86.6409 203.355 83.8168 +84.5032 203.528 83.8881 +82.3688 203.682 83.9517 +80.1353 203.557 83.9003 +78.0107 203.673 83.9479 +75.8574 203.683 83.9521 +73.456 202.972 83.6591 +71.5992 203.733 83.9727 +69.4029 203.509 83.8805 +67.187 203.177 83.7437 +64.9827 202.825 83.5985 +63.2036 203.786 83.9944 +60.6898 202.328 83.3934 +58.959 203.435 83.85 +56.7611 202.918 83.637 +54.8679 203.458 83.8595 +52.5019 202.185 83.3348 +50.7939 203.412 83.8404 +48.569 202.55 83.4853 +46.6554 202.934 83.6434 +44.5787 202.578 83.4967 +42.8175 203.656 83.941 +40.5839 202.449 83.4434 +38.7062 202.951 83.6503 +36.6406 202.434 83.4373 +34.838 203.361 83.8195 +32.8137 202.995 83.6686 +30.8686 203.068 83.6987 +28.8332 202.485 83.4582 +27.0428 203.628 83.9292 +24.9387 202.368 83.4102 +23.1217 203.389 83.8309 +21.0957 202.556 83.4876 +19.1568 202.442 83.4407 +17.1825 201.852 83.1972 +15.3046 202.352 83.4034 +13.394 202.467 83.451 +11.472 202.383 83.4163 +9.53084 201.821 83.1846 +7.66742 202.999 83.6701 +5.72228 202.036 83.2734 +3.82557 202.63 83.5181 +1.905 201.821 83.1846 +1.86517e-14 202.753 83.5687 +-1.905 201.821 83.1846 +-3.82731 202.722 83.5562 +-5.71443 201.759 83.1591 +-7.64997 202.537 83.4796 +-9.52211 201.636 83.1084 +-11.472 202.383 83.4163 +-13.3208 201.36 82.9945 +-15.2836 202.074 83.289 +-17.1825 201.852 83.1972 +-19.183 202.718 83.5543 +-21.0286 201.912 83.222 +-23.0067 202.378 83.414 +-24.916 202.184 83.3344 +-26.8234 201.975 83.2483 +-28.7027 201.569 83.0806 +-30.7155 202.061 83.2837 +-32.5181 201.165 82.9144 +-34.5407 201.627 83.1046 +-36.4095 201.158 82.9114 +-38.5152 201.949 83.2372 +-40.2741 200.903 82.8062 +-42.3405 201.387 83.0059 +-44.2796 201.219 82.9365 +-46.3435 201.578 83.0844 +-48.3093 201.467 83.0387 +-50.389 201.79 83.172 +-52.2684 201.287 82.9644 +-54.384 201.664 83.1198 +-56.1352 200.681 82.7148 +-58.4413 201.649 83.1137 +-60.3424 201.17 82.9163 +-62.5146 201.564 83.0787 +-64.3863 200.963 82.831 +-66.8654 202.205 83.3428 +-68.5309 200.952 82.8264 +-70.9812 201.974 83.2479 +-72.8214 201.218 82.9362 +-75.076 201.585 83.0874 +-77.2429 201.668 83.1217 +-79.4855 201.907 83.2201 +-81.2831 200.998 82.8455 +-83.7506 201.716 83.1412 +-85.6513 201.032 82.8596 +-88.2199 201.876 83.2075 +-90.1219 201.157 82.911 +-92.7596 202.039 83.2746 +-94.663 201.283 82.9628 +-97.2507 201.948 83.2368 +-99.0287 200.903 82.8062 +-101.428 201.102 82.8881 +-103.237 200.109 82.4789 +-105.823 200.598 82.6805 +-108.069 200.398 82.5982 +-110.728 200.919 82.8127 +-112.667 200.1 82.4754 +-115.725 201.225 82.9388 +-117.62 200.283 82.5505 +-120.718 201.348 82.9895 +-122.712 200.528 82.6515 +-125.4 200.81 82.7681 +-127.646 200.349 82.578 +-130.562 200.896 82.8035 +-134.7 203.225 83.7635 +-138.892 205.502 84.7017 +-141.202 204.919 84.4616 +-142.859 203.384 83.829 +-143.228 200.065 82.461 +-143.321 196.449 80.9706 +-144.434 194.295 80.0827 +-147.524 194.789 80.2862 +-149.531 193.817 79.8857 +-539.352 686.34 282.889 +-552.59 690.435 284.577 +-556.559 682.849 281.45 +-550.077 662.783 273.179 +-547.138 647.464 266.866 +-551.921 641.506 264.41 +-552.04 630.274 259.78 +-556.25 623.871 257.141 +-556.718 613.409 252.829 +-560.733 606.997 250.186 +-560.602 596.239 245.752 +-564.817 590.239 243.279 +-564.947 580.094 239.098 +-571.549 576.674 237.688 +-583.109 578.125 238.286 +-589.163 574.003 236.587 +-588.028 562.975 232.042 +-577.83 543.637 224.071 +-577.636 534.051 220.12 +-581.299 528.139 217.683 +-581.73 519.382 214.074 +-585.232 513.46 211.633 +-586.034 505.251 208.249 +-589.896 499.754 205.984 +-589.685 490.892 202.331 +-593.323 485.32 200.035 +-593.353 476.875 196.554 +-597.375 471.709 194.424 +-597.591 463.603 191.084 +-601.25 458.235 188.871 +-601.2 450.108 185.521 +-605.113 445.01 183.42 +-605.744 437.55 180.345 +-609.375 432.308 178.185 +-609.918 424.927 175.142 +-613.021 419.385 172.858 +-613.639 412.195 169.895 +-617.507 407.228 167.847 +-616.985 399.421 164.629 +-620.979 394.584 162.636 +-621.447 387.543 159.734 +-625.081 382.514 157.661 +-625.732 375.694 154.85 +-628.748 370.333 152.64 +-629.167 363.482 149.817 +-632.574 358.393 147.719 +-633.018 351.657 144.942 +-636.313 346.536 142.832 +-636.962 340.002 140.139 +-640.147 334.85 138.015 +-382.821 196.19 80.8635 +-380.879 191.197 78.8057 +-382.14 187.856 77.4286 +-382.479 184.083 75.8734 +-377.074 177.632 73.2147 +-380.795 175.532 72.3489 +-381.718 172.128 70.9462 +-382.786 168.804 69.5758 +-382.281 164.81 67.9296 +-381.911 160.914 66.3242 +-135.205 55.6549 22.9393 +-136.275 54.7831 22.58 +-382.378 150.063 61.8515 +-381.747 146.194 60.2568 +-381.814 142.623 58.7851 +-381.471 138.928 57.2619 +-674.138 239.251 98.6123 +-380.383 131.488 54.1955 +-381.985 128.541 52.9806 +-381.581 124.929 51.4921 +-379.72 120.883 49.8242 +-378.097 116.963 48.2088 +-375.002 112.651 46.4315 +-377.481 110.039 45.3546 +-378.219 106.908 44.0643 +-380.46 104.194 42.9455 +-381.621 101.171 41.6998 +-381.79 97.8909 40.3477 +-382.41 94.7345 39.0468 +-381.257 91.1599 37.5734 +-381.52 87.9462 36.2488 +-381.752 84.7352 34.9253 +-381.271 81.3816 33.5431 +-380.755 78.0422 32.1667 +-380.695 74.8135 30.8359 +-381.681 71.7945 29.5916 +-381.657 68.5888 28.2703 +-380.815 65.2543 26.8959 +-380.431 62.0188 25.5623 +-380.509 58.8708 24.2648 +-381.05 55.7986 22.9985 +-381.76 52.7494 21.7417 +-380.362 49.4229 20.3707 +-380.814 46.3522 19.105 +-380.84 43.233 17.8193 +-379.942 40.0226 16.4961 +-381.3 37.0523 15.2719 +-380.44 33.8682 13.9594 +-380.746 30.7975 12.6938 +-380.623 27.6954 11.4152 +-380.87 24.6234 10.149 +-380.489 21.5158 8.86816 +-380.678 18.4452 7.60255 +-380.338 15.3529 6.32802 +-380.068 12.2709 5.05768 +-380.27 9.20636 3.79459 +-147.178 2.37515 0.978966 +-146.594 1.18278 0.487507 diff --git a/.svn/pristine/48/48e5eb3461ae86bdfc001d642ec8f50eb83983d6.svn-base b/.svn/pristine/48/48e5eb3461ae86bdfc001d642ec8f50eb83983d6.svn-base new file mode 100644 index 0000000..964f99b --- /dev/null +++ b/.svn/pristine/48/48e5eb3461ae86bdfc001d642ec8f50eb83983d6.svn-base @@ -0,0 +1,165 @@ +#include +#include +#include + + +#ifdef _MSC_VER +#include +#include +#include +#else +#include +#include +#include +#endif + +#ifndef __VIEWCULL_H__ +#define __VIEWCULL_H__ + +///////////////////////// Variable declarations... +/** The 6 planes of the viewing frustum */ +extern float frustum[6][4]; + +/** the modelview * projection matrix to map a model point to an onscreen coordinate */ +extern float matrix[16]; +/** some useful variables for faster calculation of the pixel coordinates */ +extern short VP[4]; +/** a unit vector pointing to the right of the screen */ +extern float right[3]; +/** how much detail is shown, 0 means everything is plotted */ +extern short DETAIL; + +extern double SX, SY, SZ, EX, EY, EZ; +extern float origin[3], dir[3]; /*ray */ +extern float dist; +extern int rayX,rayY; +extern float rayVP[4]; + +#define NUMDIM 3 +#define RIGHT 0 +#define LEFT 1 +#define MIDDLE 2 + +extern float minB[NUMDIM], maxB[NUMDIM]; /*box */ +extern float coord[NUMDIM]; /* hit point */ + + +template bool HitBoundingBox(const T center[3], T size ) +{ + minB[0] = center[0] - size; + minB[1] = center[1] - size; + minB[2] = center[2] - size; + + maxB[0] = center[0] + size; + maxB[1] = center[1] + size; + maxB[2] = center[2] + size; + + bool inside = true; + char quadrant[NUMDIM]; + register int i; + int whichPlane; + float maxT[NUMDIM]; + float candidatePlane[NUMDIM]; + + // Find candidate planes; this loop can be avoided if + // rays cast all from the eye(assume perpsective view) + for (i=0; i maxB[i]) { + quadrant[i] = RIGHT; + candidatePlane[i] = maxB[i]; + inside = false; + }else { + candidatePlane[i] = 0.0; + quadrant[i] = MIDDLE; + } + + // Ray origin inside bounding box + if(inside) { + return (true); + } + + + // Calculate T distances to candidate planes + for (i = 0; i < NUMDIM; i++) + if (quadrant[i] != MIDDLE && dir[i] !=0.) + maxT[i] = (candidatePlane[i]-origin[i]) / dir[i]; + else + maxT[i] = -1.; + + // Get largest of the maxT's for final choice of intersection + whichPlane = 0; + for (i = 1; i < NUMDIM; i++) + if (maxT[whichPlane] < maxT[i]) + whichPlane = i; + + // Check final candidate actually inside box + if (maxT[whichPlane] < 0.) return (false); + for (i = 0; i < NUMDIM; i++) + if (whichPlane != i) { + coord[i] = origin[i] + maxT[whichPlane] *dir[i]; + if (coord[i] < minB[i] || coord[i] > maxB[i]) + return (false); + } else { + coord[i] = candidatePlane[i]; + } + return (true); // ray hits box +} + +void calcRay(int x, int y, double znear, double zfar); + +#include +template +float RayDist(T *point) +{ + return point[0] * dir[0] + point[1] * dir[1] + point[2] * dir[2] - dist; +} + +template +short ScreenDist(T *point) { + float pn[3]; + // x coordinate on screen, not normalized + pn[0] = point[0] * matrix[0] + point[1] * matrix[4] + point[2] * matrix[8] + matrix[12]; + pn[1] = point[0] * matrix[1] + point[1] * matrix[5] + point[2] * matrix[9] + matrix[13]; + // normalization + pn[2] = point[0] * matrix[3] + point[1] * matrix[7] + point[2] * matrix[11] + matrix[15]; + + // normalized x coordinate on screen + pn[0] /= pn[2]; + pn[1] /= pn[2]; + + // true x coordinate in viewport coordinate system + //Xi = pn[0]*VP[0] + VP[1]; + //fTempo[4]*0.5+0.5)*viewport[2]+viewport[0]; + + float XX = ( (pn[0])*rayVP[0] + rayVP[1]); + float YY = ( (pn[1])*rayVP[2] + rayVP[3]); + + short dx, dy; + if (XX > rayX) dx = XX-rayX; + else dx = rayX-XX; + + if (YY > rayY) dy = YY-rayY; + else dy = rayY-YY; + + // for the benefit of visual studio's compiler cast to float + return sqrt((float)(dx*dx + dy*dy)); +} + +void ExtractFrustum(short detail); +void ExtractFrustum(float *frust[6]); + + +bool CubeInFrustum( float x, float y, float z, float size ); +int CubeInFrustum2( float x, float y, float z, float size ); +char PlaneAABB( float x, float y, float z, float size, float *plane ); + +void remViewport(); +bool LOD(float x, float y, float z, float size); +int LOD2(float x, float y, float z, float size); + + +#endif diff --git a/.svn/pristine/48/48e8fc6d8bd2db18c48c05874dee0465b51c11fe.svn-base b/.svn/pristine/48/48e8fc6d8bd2db18c48c05874dee0465b51c11fe.svn-base new file mode 100644 index 0000000..65ff4c4 --- /dev/null +++ b/.svn/pristine/48/48e8fc6d8bd2db18c48c05874dee0465b51c11fe.svn-base @@ -0,0 +1,35 @@ +/** + * @file + * @brief IO of a 3D scan in velodyne raw file format + * @author Liwei. Computer School of Wuhan University, China. + */ + +#ifndef __SCAN_IO_VELODYNE_H__ +#define __SCAN_IO_VELODYNE_H__ + +#include +using std::string; +#include +using std::vector; + +#include "scan_io.h" + +/** + * @brief 3D scan loader for VELODYNE scans + * + * The compiled class is available as shared object file + */ +class ScanIO_velodyne : public ScanIO { +public: + virtual int readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss); +}; + +// Since this shared object file is loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/.svn/pristine/48/48ea53d98fb338b11dddd30e55b728978dc11945.svn-base b/.svn/pristine/48/48ea53d98fb338b11dddd30e55b728978dc11945.svn-base new file mode 100644 index 0000000..e140757 --- /dev/null +++ b/.svn/pristine/48/48ea53d98fb338b11dddd30e55b728978dc11945.svn-base @@ -0,0 +1,139 @@ +/** + * @file + * @brief Implementation of reading 3D scans + * @author Sven Albrecht. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "slam6d/scan_io_leica_txt.h" +#include "slam6d/globals.icc" +#include +using std::ifstream; +#include +using std::cout; +using std::cerr; +using std::endl; + +#ifdef _MSC_VER +#include +#endif + +/** + * Reads specified scans from given directory. + * + * Scan poses will NOT be initialized after a call + * to this function. + * + * This function actually implements loading of 3D scan in the leica + * format. This resembles the UOS + reflectance file format (see + * scan_io_xyzr) but features a flipped y-axis (height) and will be + * compiled as shared lib. + * + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param dir The directory from which to read + * @param maxDist Reads only Points up to this Distance + * @param minDist Reads only Points from this Distance + * @param euler Initital pose estimates (will not be applied to the points + * @param ptss Vector containing the read points + */ +int ScanIO_leica_txt::readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss) +{ + static int fileCounter = start; + string scanFileName; + string poseFileName; + + ifstream scan_in, pose_in; + + double maxDist2 = sqr(maxDist); + + int my_fileNr = fileCounter; + + if (end > -1 && fileCounter > end) return -1; // 'nuf read + scanFileName = dir + "scan" + to_string(fileCounter,3) + ".3d"; + poseFileName = dir + "scan" + to_string(fileCounter,3) + ".pose"; + + scan_in.open(scanFileName.c_str()); + pose_in.open(poseFileName.c_str()); + + // read 3D scan + if (!pose_in.good() && !scan_in.good()) return -1; // no more files in the directory + if (!pose_in.good()) { cerr << "ERROR: Missing file " << poseFileName << endl; exit(1); } + if (!scan_in.good()) { cerr << "ERROR: Missing file " << scanFileName << endl; exit(1); } + cout << "Processing Scan " << scanFileName; + + for (unsigned int i = 0; i < 6; pose_in >> euler[i++]); + + cout << " @ pose (" << euler[0] << "," << euler[1] << "," << euler[2] + << "," << euler[3] << "," << euler[4] << "," << euler[5] << ")" << endl; + + // convert angles from deg to rad + for (unsigned int i = 3; i <= 5; i++) euler[i] = rad(euler[i]); + + // overread the first line + char dummy[255]; + scan_in.getline(dummy, 255); + double x, y, z; + + while (scan_in.good()) { + Point p; + try { + scan_in >> x >> z >> y; + x *= 100.0; + y *= 100.0; + z *= 100.0; + p = Point (x, y, z); + scan_in >> p.reflectance; + } catch (...) { + break; + } + // load points up to a certain distance only + // maxDist2 = -1 indicates no limitation + if (maxDist == -1 || sqr(p.x) + sqr(p.y) + sqr(p.z) < maxDist2) + ptss.push_back(p); + } + scan_in.close(); + scan_in.clear(); + pose_in.close(); + pose_in.clear(); + fileCounter++; + + return my_fileNr; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_leica_txt; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/.svn/pristine/49/49d0a1097336a1bee49c2bfa7137055d32349113.svn-base b/.svn/pristine/49/49d0a1097336a1bee49c2bfa7137055d32349113.svn-base new file mode 100644 index 0000000..14fbc73 --- /dev/null +++ b/.svn/pristine/49/49d0a1097336a1bee49c2bfa7137055d32349113.svn-base @@ -0,0 +1,104 @@ +/** + * @file + * @brief Serverside command structure for client-server interaction. + * + * @author Thomas Escher + */ + +#ifndef SCANSERVER_SERVERINTERFACE_H +#define SCANSERVER_SERVERINTERFACE_H + +#include "scanserver/clientInterface.h" +#include "scanserver/cache/cacheManager.h" + +// hide the boost namespace +namespace +{ + namespace ip = boost::interprocess; + // the segment manager providing the allocations + typedef ip::managed_shared_memory::segment_manager SegmentManager; +} + + + +/** + * @brief Central instance of the server management. + * + * This class handles all the serverside communication and relays cache management calls to the CacheManager. + * It derives ClientInterface and shares its mutexes and arguments, neccessary for the communication. It also holds the SharedScan and CacheManager instances. + * create will open the shared memory and place a ServerInterface instance in it, after which the main server loop run handles all communication. + */ +class ServerInterface : public ClientInterface +{ +private: + //! Container for all shared scans the server can hold + SharedScanVector m_scans; + + //! Cache manager for handling all cache objects inside the shared scans + CacheManager m_manager; + + //! Saved size of the CacheObject shared memory + std::size_t m_cache_size; + +private: + //! Read a directory of scans by letting the corresponding ScanIO reading it and creating a scan for each entry + SharedScanVector* readDirectory(const char * dir_path, IOType type, unsigned int start, unsigned int end); + + //! Cache miss from a CacheObject, relayed to CacheManager + bool loadCacheObject(CacheObject* obj); + + //! Allocate call from SharedScan, relayed to CacheManager + void allocateCacheObject(CacheObject* obj, unsigned int size); + + //! Invalidate call from SharedScan, relayed to CacheManager + void invalidateCacheObject(CacheObject* obj); + + //! Call from SharedScan, relayed to ScanIO + void getPose(SharedScan* scan); + + //! Allocate a new Frame in its vector + void addFrame(SharedScan* scan); + + //! Relayed to FrameIO + void loadFramesFile(SharedScan* scan); + + //! Relayed to FrameIO + void saveFramesFile(SharedScan* scan); + + //! Empties this SharedScan's FrameVector + void clearFrames(SharedScan* scan); + + //! Call from client + std::size_t getCacheSize(); + + //! Prints out caching related metrics + void printMetrics(); + + //! Find a scan by matching its identifier, path and io type to avoid placing the same scan multiple times into the scan vector + SharedScan* findScan(const SharedStringSharedPtr& dir_path, const char* identifier, IOType type) const; + +public: + /** + * Constructor + * @param sm SegmentManager for allocator objects to construct interprocess containers with + * @param shm_name Name of the cache shared memory that will be passed to CacheManager + * @param cache_size Size of cache shared memory + */ + ServerInterface(SegmentManager* sm, const char* shm_name, std::size_t cache_size); + ~ServerInterface(); + + //! Create the shared memory in the system and put all neccessary structures in it + static ServerInterface* create(std::size_t data_size, std::size_t cache_size); + + //! remove the shared memory from the system + static void destroy(); + + //! Main server loop for message handling and function dispatching + void run(); + +private: + //! Cleaning up internal data without destroying the instance + void cleanup(); +}; + +#endif //SCANSERVER_SERVERINTERFACE_H diff --git a/.svn/pristine/4a/4a0f0c635333464c8a3a3d08079464cf6e9708e2.svn-base b/.svn/pristine/4a/4a0f0c635333464c8a3a3d08079464cf6e9708e2.svn-base new file mode 100644 index 0000000..db5cb02 --- /dev/null +++ b/.svn/pristine/4a/4a0f0c635333464c8a3a3d08079464cf6e9708e2.svn-base @@ -0,0 +1,266 @@ +/// \ingroup newmat +///@{ + +/// \file precisio.h +/// Floating point precision constants. + +#ifndef PRECISION_LIB +#define PRECISION_LIB 0 + +#define WANT_MATH +#include "include.h" // in case being used as stand alone + +#ifdef _STANDARD_ // standard library available +#include +#endif + +#ifdef use_namespace +namespace NEWMAT { +#endif + +#ifdef _STANDARD_ // standard library available + +#ifdef OPT_COMPATIBLE +#include // for FLT_MAX +#endif + +using namespace std; + +/// Floating point precision. +class FloatingPointPrecision +{ +public: + static int Dig() // number of decimal digits or precision + { return numeric_limits::digits10 ; } + + static Real Epsilon() // smallest number such that 1+Eps!=Eps + { return numeric_limits::epsilon(); } + + static int Mantissa() // bits in mantisa + { return numeric_limits::digits; } + + static Real Maximum() // maximum value + { return numeric_limits::max(); } + + static int MaximumDecimalExponent() // maximum decimal exponent + { return numeric_limits::max_exponent10; } + + static int MaximumExponent() // maximum binary exponent + { return numeric_limits::max_exponent; } + + static Real LnMaximum() // natural log of maximum + { return (Real)log(Maximum()); } + + static Real Minimum() // minimum positive value + { return numeric_limits::min(); } + + static int MinimumDecimalExponent() // minimum decimal exponent + { return numeric_limits::min_exponent10; } + + static int MinimumExponent() // minimum binary exponent + { return numeric_limits::min_exponent; } + + static Real LnMinimum() // natural log of minimum + { return (Real)log(Minimum()); } + + static int Radix() // exponent radix + { return numeric_limits::radix; } + + static int Rounds() // addition rounding (1 = does round) + { + return numeric_limits::round_style == + round_to_nearest ? 1 : 0; + } + +}; + + +#else // _STANDARD_ not defined + +#ifndef SystemV // if there is float.h + +#ifdef USING_FLOAT + +/// Floating point precision (type float). +class FloatingPointPrecision +{ +public: + static int Dig() + { return FLT_DIG; } // number of decimal digits or precision + + static Real Epsilon() + { return FLT_EPSILON; } // smallest number such that 1+Eps!=Eps + + static int Mantissa() + { return FLT_MANT_DIG; } // bits in mantisa + + static Real Maximum() + { return FLT_MAX; } // maximum value + + static int MaximumDecimalExponent() + { return FLT_MAX_10_EXP; } // maximum decimal exponent + + static int MaximumExponent() + { return FLT_MAX_EXP; } // maximum binary exponent + + static Real LnMaximum() + { return (Real)log(Maximum()); } // natural log of maximum + + static Real Minimum() + { return FLT_MIN; } // minimum positive value + + static int MinimumDecimalExponent() + { return FLT_MIN_10_EXP; } // minimum decimal exponent + + static int MinimumExponent() + { return FLT_MIN_EXP; } // minimum binary exponent + + static Real LnMinimum() + { return (Real)log(Minimum()); } // natural log of minimum + + static int Radix() + { return FLT_RADIX; } // exponent radix + + static int Rounds() + { return FLT_ROUNDS; } // addition rounding (1 = does round) + +}; + +#endif // USING_FLOAT + + +#ifdef USING_DOUBLE + +/// Floating point precision (type double). +class FloatingPointPrecision +{ +public: + + static int Dig() + { return DBL_DIG; } // number of decimal digits or precision + + static Real Epsilon() + { return DBL_EPSILON; } // smallest number such that 1+Eps!=Eps + + static int Mantissa() + { return DBL_MANT_DIG; } // bits in mantisa + + static Real Maximum() + { return DBL_MAX; } // maximum value + + static int MaximumDecimalExponent() + { return DBL_MAX_10_EXP; } // maximum decimal exponent + + static int MaximumExponent() + { return DBL_MAX_EXP; } // maximum binary exponent + + static Real LnMaximum() + { return (Real)log(Maximum()); } // natural log of maximum + + static Real Minimum() + { +//#ifdef __BCPLUSPLUS__ +// return 2.225074e-308; // minimum positive value +//#else + return DBL_MIN; +//#endif + } + + static int MinimumDecimalExponent() + { return DBL_MIN_10_EXP; } // minimum decimal exponent + + static int MinimumExponent() + { return DBL_MIN_EXP; } // minimum binary exponent + + static Real LnMinimum() + { return (Real)log(Minimum()); } // natural log of minimum + + + static int Radix() + { return FLT_RADIX; } // exponent radix + + static int Rounds() + { return FLT_ROUNDS; } // addition rounding (1 = does round) + +}; + +#endif // USING_DOUBLE + +#else // if there is no float.h + +#ifdef OPT_COMPATIBLE +#define FLT_MAX MAXFLOAT +#endif + + +#ifdef USING_FLOAT + +/// Floating point precision (type float). +class FloatingPointPrecision +{ +public: + + static Real Epsilon() + { return pow(2.0,(int)(1-FSIGNIF)); } + // smallest number such that 1+Eps!=Eps + + static Real Maximum() + { return MAXFLOAT; } // maximum value + + static Real LnMaximum() + { return (Real)log(Maximum()); } // natural log of maximum + + static Real Minimum() + { return MINFLOAT; } // minimum positive value + + static Real LnMinimum() + { return (Real)log(Minimum()); } // natural log of minimum + +}; + +#endif // USING_FLOAT + + +#ifdef USING_DOUBLE + +/// Floating point precision (type double). +class FloatingPointPrecision +{ +public: + + static Real Epsilon() + { return pow(2.0,(int)(1-DSIGNIF)); } + // smallest number such that 1+Eps!=Eps + + static Real Maximum() + { return MAXDOUBLE; } // maximum value + + static Real LnMaximum() + { return LN_MAXDOUBLE; } // natural log of maximum + + static Real Minimum() + { return MINDOUBLE; } + + static Real LnMinimum() + { return LN_MINDOUBLE; } // natural log of minimum +}; + +#endif // USING_DOUBLE + +#endif // SystemV + +#endif // _STANDARD_ + + + + +#ifdef use_namespace +} +#endif // use_namespace + + + +#endif // PRECISION_LIB + + +///@} diff --git a/.svn/pristine/4a/4a7fea52bb9b39195ac6511a281cfc8ec6616670.svn-base b/.svn/pristine/4a/4a7fea52bb9b39195ac6511a281cfc8ec6616670.svn-base new file mode 100644 index 0000000..61e00b8 --- /dev/null +++ b/.svn/pristine/4a/4a7fea52bb9b39195ac6511a281cfc8ec6616670.svn-base @@ -0,0 +1,129 @@ +/** + * @file + * @brief Displaying of a matched 3D scene + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SHOW_H__ +#define __SHOW_H__ + + +#ifdef _MSC_VER +#define _USE_MATH_DEFINES +#include +#endif +#ifdef __APPLE__ +#include +#elif WITH_FREEGLUT +#include +#else +#include +#endif + +#include +using std::string; +#include +using std::vector; + +#include "show/PathGraph.h" +#include "show/colormanager.h" +#include "show/scancolormanager.h" + +/** for Glut display mode */ +#define RGBA 4 ///< colors for GLUT display +#define RGB 3 ///< colors for GLUT display + +/** float value "nearly" zero? */ +#define DIV_EPSILON 0.001 +/** comparing two floats/doubles */ +#define COMPARE_EPSILON 0.000001 + +#define BUFSIZE 1048576 ///< defining the buffer size + +// This defines the floating point precision of the show program +typedef float sfloat; + +#include "show/show1.icc" +#include "show/show.icc" + +void CallBackReshapeFunc(int width, int height); +void CallBackIdleFunc(void); +void DisplayItFunc(GLenum mode, bool interruptable = false); +void DrawPoints(GLenum mode, bool interruptable = false); +void DrawUrl(); +void glDumpWindowPPM(const char *filename, GLenum mode); +void glWriteImagePPM(const char *filename, int scale, GLenum mode); +void ProcessHitsFunc(GLint hits, GLuint buffer[]); +int parseArgs(int argc, char **argv, string &dir, int& start, int& end, int& maxDist, bool& wanim, bool &readInitial); +void usage(char * prog); +void myNewMenu(); +void topView(); +void resetView(int dummy); +void setView(double pos[3], double new_quat[4], + double newMouseRotX, double newMouseRotY, double newMouseRotZ, + double newCangle, + bool sTV, bool cNMM, double pzoom_new, + bool s_points, bool s_path, bool s_cameras, double ps, int + sf, double fD, bool invert); +void update_view_rotate(int); +void update_view_translation(int); +void startAnimation(int dummy); +void invertView(int dummy); +void callTopView(int dummy); +void drawCameras(void); +void callAddCamera(int dummy); +void callCameraUpdate(int dummy); +void callDeleteCamera(int dummy); + +void pathAnimate(int dummy); +void savePath(int dummy); +void loadPath(int dummy); +void savePose(int dummy); +void loadPose(int dummy); +void saveImage(int dummy); +void CallBackInterfaceFunc(unsigned char key, int x, int y); +void CallBackKeyboardFunc(unsigned char key, int x, int y); +void CallBackKeyboardUpFunc(unsigned char key, int x, int y); +void CallBackMouseFunc(int button, int state, int x, int y); +void CallBackMouseFuncMoving(int button, int state, int x, int y); +void CallBackMouseMotionFunc(int x, int y); +void CallBackSpecialFunc(int key, int x, int y); +void InterfaceFunc(unsigned char key); +void updateCamera(); +void drawRobotPath(int dummy); +int calcFrameNo(); +int calcNoOfPoints(vector, vector); +void calcInterpolatedCameras(vector, vector); +void calcPointSequence(vector &sequence, int frameNr); + +void createDisplayLists(bool reduced=false); + +void updatePointModeControls(); +void changePointMode(int dummy); +void mapColorToValue(int dummy); +void changeColorMap(int dummy); +void minmaxChanged(int dummy); +void resetMinMax(int dummy); +void setScansColored(int dummy); + +void saveSelection(int dummy); +void clearSelection(int dummy); + +void updateControls(); +void updateTopViewControls(); +void resetRotationButton(); +void updateCamControls(); +bool isInterrupted(); +void checkForInterrupt(); +void interruptDrawing(); +void cycleLOD(); + +enum { ROTATION_X, ROTATION_RX, ROTATION_Y, ROTATION_RY, ROTATION_Z, ROTATION_RZ }; + /** enumeration for translation */ +enum { TRANS_X, TRANS_RX, TRANS_Y, TRANS_RY, TRANS_Z, TRANS_RZ }; + /** enumeration for the menue */ +enum { MENU_SCREEN, MENU_LIST, MENU_QUIT }; + +#endif + diff --git a/.svn/pristine/4a/4ac9fb7173c12a23e39b53ce03f14981d140fdeb.svn-base b/.svn/pristine/4a/4ac9fb7173c12a23e39b53ce03f14981d140fdeb.svn-base new file mode 100644 index 0000000..41f93bc Binary files /dev/null and b/.svn/pristine/4a/4ac9fb7173c12a23e39b53ce03f14981d140fdeb.svn-base differ diff --git a/.svn/pristine/4b/4b27fd327b1d20021abb2011400cffc1f9cfa752.svn-base b/.svn/pristine/4b/4b27fd327b1d20021abb2011400cffc1f9cfa752.svn-base new file mode 100644 index 0000000..d7cdcca --- /dev/null +++ b/.svn/pristine/4b/4b27fd327b1d20021abb2011400cffc1f9cfa752.svn-base @@ -0,0 +1,117 @@ +/* + * feature implementation + * + * Copyright (C) HamidReza Houshiar + * + * Released under the GPL version 3. + * + */ + +#include "slam6d/fbr/feature.h" + +using namespace std; + +namespace fbr{ + + feature::feature(){ + fDetectorMethod = SIFT_DET; + fDescriptorMethod = SIFT_DES; + } + + void feature::featureDetection(cv::Mat pImage, feature_detector_method method){ + //Detect the keypoints using SURF Detector + if(fDetectorMethod == SURF_DET){ + double minHessian = 400; + cv::SurfFeatureDetector detector(minHessian); + detector.detect(pImage, keypoints); + } + + //Detect the keypoints using SIFT Detector + if(fDetectorMethod == SIFT_DET){ + cv::SiftFeatureDetector detector; + detector.detect(pImage, keypoints); + } + + //Detect the keypoints using ORB Detector + if(fDetectorMethod == ORB_DET){ + cv::OrbFeatureDetector detector; + detector.detect(pImage, keypoints); + } + + //Detect the keypoints using FAST Detector + if(fDetectorMethod == FAST_DET){ + cv::FastFeatureDetector detector; + detector.detect(pImage, keypoints); + } + + //Detect the keypoints using STAR Detector + if(fDetectorMethod == STAR_DET){ + cv::StarFeatureDetector detector; + detector.detect(pImage, keypoints); + } + } + + void feature::featureDetection(cv::Mat pImage){ + featureDetection(pImage, fDetectorMethod); + } + + void feature::featureDescription(cv::Mat pImage, feature_descriptor_method method){ + + if(keypoints.size() == 0) + featureDetection(pImage); + + //Create descriptor using SURF + if(fDescriptorMethod == SURF_DES){ + cv::SurfDescriptorExtractor extractor; + extractor.compute(pImage, keypoints, descriptors); + } + + //Create descriptor using SIFT + if(fDescriptorMethod == SIFT_DES){ + cv::SiftDescriptorExtractor extractor; + extractor.compute(pImage, keypoints, descriptors); + } + + //Create descriptor using ORB + if(fDescriptorMethod == ORB_DES){ + cv::OrbDescriptorExtractor extractor; + extractor.compute(pImage, keypoints, descriptors); + } + } + + void feature::featureDescription(cv::Mat pImage){ + featureDescription(pImage, fDescriptorMethod); + } + + feature_detector_method feature::getDetectorMethod(){ + return fDetectorMethod; + } + + feature_descriptor_method feature::getDescriptorMethod(){ + return fDescriptorMethod; + } + + //check for the keypoints vector not to be empty + vector feature::getFeatures(){ + return keypoints; + } + + //check for the descriptor Mat not to be empty + cv::Mat feature::getDescriptors(){ + return descriptors; + } + + void feature::getDescription(description_method method){ + if(method == FEATURE_DESCRIPTION) + cout<<"fDetectorMethod: "< allPoints_AfterRegstn; + cellArray cellArray_AfterRegstn; + cellFeatureArray cellFeatureArray_AfterRegstn; + float slashWide; + float slashMaxLength; + float slashAngleDefinition; + vector minCellDisList; + vector intersectionFeature; + + + /* clusterArray clusterArrayAfterRegstn; + clusterFeatureArray clusterFeatureArray_AfterRegstn; +*/ + + +}; \ No newline at end of file diff --git a/.svn/pristine/4b/4b85e02fbd1079b1ee3db0d7ec7645dbe7a4e395.svn-base b/.svn/pristine/4b/4b85e02fbd1079b1ee3db0d7ec7645dbe7a4e395.svn-base new file mode 100644 index 0000000..e7e5367 --- /dev/null +++ b/.svn/pristine/4b/4b85e02fbd1079b1ee3db0d7ec7645dbe7a4e395.svn-base @@ -0,0 +1,36 @@ +/** + * @file + * @brief IO of 3D scans in Riegl file format + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SCAN_IO_RIEGL_H__ +#define __SCAN_IO_RIEGL_H__ + +#include +using std::string; +#include +using std::vector; + +#include "scan_io.h" + +/** + * @brief 3D scan loader for Riegl scans + * + * The compiled class is available as shared object file + */ +class ScanIO_riegl_txt : public ScanIO { +public: + virtual int readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss); +}; + +// Since this shared object file is loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/.svn/pristine/4b/4b93ee0fff450c6eda6f3e16d2660222b6cae9e6.svn-base b/.svn/pristine/4b/4b93ee0fff450c6eda6f3e16d2660222b6cae9e6.svn-base new file mode 100644 index 0000000..b33b514 --- /dev/null +++ b/.svn/pristine/4b/4b93ee0fff450c6eda6f3e16d2660222b6cae9e6.svn-base @@ -0,0 +1,446 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: medsort.h +// Purpose: Macros of generic public domain median sorting algorithms +// Author: John Labenski & mostly others +// Created: 07/01/02 +// Copyright: see macro headers, rewritten by John Labenski, 2002 +// License: Public Domain +///////////////////////////////////////////////////////////////////////////// + +#ifndef __WX_MEDSORT_H__ +#define __WX_MEDSORT_H__ + +/* + Notes : + + code taken from http://ndevilla.free.fr/median/ + see the headers for each function taken from the files + see bottom for benchmark data + + Each of these functions are implemented as macros that can be used to either + DECLARE and DEFINE functions for the different element types required + or they can be used inline + + for example: + + in a header file declare the function with + DECLARE_WIRTHS_MEDIAN( wirths_median_int, int ) + and you'll get this code + int wirths_median_int( int *arr, int n, int &median ); + + in the c(pp) file define the function + DEFINE_WIRTHS_MEDIAN( wirths_median_int, int ) + and get + int withs_median_int( int *arr, int n, int &median ) + { the function itself } + + otherwise use the macro inline in some other function + IMPLEMENT_WIRTHS_MEDIAN(int, arr, n, &median) +*/ + + +/*--------------------------------------------------------------------------- + * This Quickselect routine is based on the algorithm described in + * "Numerical recipes in C", Second Edition, + * Cambridge University Press, 1992, Section 8.5, ISBN 0-521-43108-5 + * This code by Nicolas Devillard - 1998. Public domain. + ---------------------------------------------------------------------------- + + This does NOT fully sort the input array, but it does modify it + + QUICK_SELECT(elem_type, arr, n, median) + elem_type is a valid data type, int, long, unsigned char, float... + arr is an array delcared as elem_type *array and passed as array + n is the size of the array, ie. total element count + median contains the median value on exit + +---------------------------------------------------------------------------*/ + +#define DECLARE_QUICK_SELECT( name, elem_type ) \ + elem_type name( elem_type *arr, int n, elem_type &median ); + +#define DEFINE_QUICK_SELECT( name, elem_type ) \ + elem_type name( elem_type *arr, int n, elem_type &median ) \ + IMPLEMENT_QUICK_SELECT( elem_type, arr, n, median ) + +#define IMPLEMENT_QUICK_SELECT(elem_type, arr, n, median) \ +{ \ + int low=0, high=n-1, half=(low+high)/2, middle, ll, hh; \ + \ + for (;;) { \ + if (high <= low) /* One element only */ \ + break; /*return arr[half] ; */ \ + \ + if (high == low + 1) { /* Two elements only */ \ + if (arr[low] > arr[high]) \ + { register elem_type t=arr[low];arr[low]=arr[high];arr[high]=t; } \ + break; /* return arr[half] ; */ \ + } \ + \ + /* Find median of low, middle and high items; swap into low */ \ + middle = (low + high) / 2; \ + if (arr[middle] > arr[high]) { register elem_type t=arr[middle];arr[middle]=arr[high];arr[high]=t; } \ + if (arr[low] > arr[high]) { register elem_type t=arr[low]; arr[low] =arr[high];arr[high]=t; } \ + if (arr[middle] > arr[low] ) { register elem_type t=arr[middle];arr[middle]=arr[low]; arr[low] =t; } \ + \ + /* Swap low item (now in position middle) into position (low+1) */ \ + { register elem_type t=arr[middle];arr[middle]=arr[low+1];arr[low+1]=t; } \ + \ + /* Nibble from ends towards middle, swapping items when stuck */ \ + ll = low + 1; \ + hh = high; \ + for (;;) { \ + do ll++; while (arr[low] > arr[ll] ); \ + do hh--; while (arr[hh] > arr[low]); \ + \ + if (hh < ll) break; \ + \ + { register elem_type t=arr[ll];arr[ll]=arr[hh];arr[hh]=t;} \ + } \ + \ + /* Swap middle item (in position low) back into correct position */ \ + { register elem_type t=arr[low];arr[low]=arr[hh];arr[hh]=t; } \ + \ + /* Re-set active partition */ \ + if (hh <= half) low = ll; \ + if (hh >= half) high = hh - 1; \ + } \ + median = arr[half]; \ +} + + +/*--------------------------------------------------------------------------- + Function : kth_smallest() + In : array of elements, # of elements in the array, rank k + Out : one element + Job : find the kth smallest element in the array + Notice : use the median() macro defined below to get the median. + + Reference: + + Author: Wirth, Niklaus + Title: Algorithms + data structures = programs + Publisher: Englewood Cliffs: Prentice-Hall, 1976 + Physical description: 366 p. + Series: Prentice-Hall Series in Automatic Computation + --------------------------------------------------------------------------- + + This does NOT fully sort the input array, but it does modify it + + WIRTHS_KTH_SMALLEST(elem_type, arr, n, k, ksmallest) + elem_type is a valid data type, int, long, unsigned char, float... + arr is an array delcared as elem_type *array and passed as array + n is the size of the array, ie. total element count + k is the kth smallest value of the array that you want to find + ksmallest contains the kth smallest value of arr on exit + + WIRTHS_MEDIAN(elem_type, arr, n, median) finds median value + Calls WIRTHS_KTH_SMALLEST with (k = n/2) fills median + +---------------------------------------------------------------------------*/ + +#define DECLARE_WIRTHS_MEDIAN( name, elem_type ) \ + elem_type name( elem_type *arr, int n, elem_type &median ); + +#define DEFINE_WIRTHS_MEDIAN( name, elem_type ) \ + elem_type name( elem_type *arr, int n, elem_type &median ) \ + WIRTHS_MEDIAN( elem_type, arr, n, median ) + +#define IMPLEMENT_WIRTHS_MEDIAN(elem_type, arr, n, median) \ + IMPLEMENT_WIRTHS_KTH_SMALLEST(elem_type, arr, n, (((n)&1)?((n)/2):(((n)/2)-1)), median) + + +#define DECLARE_WIRTHS_KTH_SMALLEST( name, elem_type ) \ + elem_type name( elem_type *arr, int n, elem_type &median ); + +#define DEFINE_WIRTHS_KTH_SMALLEST( name, elem_type ) \ + elem_type name( elem_type *arr, int n, elem_type &median ) \ + IMPLEMENT_WIRTHS_MEDIAN( elem_type, arr, n, median ) + +#define IMPLEMENT_WIRTHS_KTH_SMALLEST(elem_type, arr, n, k, ksmallest) \ +{ \ + register int i, j, l=0, m=n-1; \ + register elem_type x; \ + \ + while (lmax) max=arr[i]; \ + } \ + \ + while (1) { \ + guess = (min+max)/2; \ + less = 0; greater = 0; equal = 0; \ + maxltguess = min; \ + mingtguess = max; \ + for (i=0; imaxltguess) maxltguess = arr[i]; \ + } else if (arr[i]>guess) { \ + greater++; \ + if (arr[i]greater) max = maxltguess; \ + else min = mingtguess; \ + } \ + if (less >= (n+1)/2) median = maxltguess; \ + else if (less+equal >= (n+1)/2) median = guess; \ + else median = mingtguess; \ +} + +/*---------------------------------------------------------------------------- + Function : pixel_qsort() + In : pixel array, size of the array + Out : void + Job : sort out the array of pixels + Notice : optimized implementation, unreadable. +--------------------------------------------------------------------------- + + This fully sorts the input array by modifying it + + DECLARE_PIXEL_QSORT(name, elem_type) + +----------------------------------------------------------------------------*/ + +#define PIXEL_QSORT_STACK_SIZE 50 +#define PIXEL_QSORT_THRESHOLD 7 + +#define DECLARE_PIXEL_QSORT( name, elem_type ) \ + void name( elem_type *arr, int n ); + +#define DEFINE_PIXEL_QSORT( name, elem_type ) \ + void name( elem_type *arr, int n ) \ + IMPLEMENT_PIXEL_QSORT( name, elem_type ) + +#define IMPLEMENT_PIXEL_QSORT( elem_type, arr, n ) \ +{ \ + int i, ir=n, j, k, l=1, j_stack=0; \ + int *i_stack ; \ + elem_type a ; \ + \ + i_stack = (int*)malloc(PIXEL_QSORT_STACK_SIZE * sizeof(elem_type)); \ + for (;;) { \ + if (ir-l < PIXEL_QSORT_THRESHOLD) { \ + for (j=l+1 ; j<=ir ; j++) { \ + a = arr[j-1]; \ + for (i=j-1 ; i>=1 ; i--) { \ + if (arr[i-1] <= a) break; \ + arr[i] = arr[i-1]; \ + } \ + arr[i] = a; \ + } \ + if (j_stack == 0) break; \ + ir = i_stack[j_stack-- -1]; \ + l = i_stack[j_stack-- -1]; \ + } else { \ + k = (l+ir) >> 1; \ + { elem_type t=arr[k-1];arr[k-1]=arr[l];arr[l]=t; } \ + if (arr[l] > arr[ir-1]) { \ + { elem_type t=arr[l];arr[l]=arr[ir-1];arr[ir-1]=t; } \ + } \ + if (arr[l-1] > arr[ir-1]) { \ + { elem_type t=arr[l-1];arr[l-1]=arr[ir-1];arr[ir-1]=t; } \ + } \ + if (arr[l] > arr[l-1]) { \ + { elem_type t=arr[l];arr[l]=arr[l-1];arr[l-1]=t; } \ + } \ + i = l+1; j = ir; a = arr[l-1]; \ + for (;;) { \ + do i++; while (arr[i-1] < a); \ + do j--; while (arr[j-1] > a); \ + if (j < i) break; \ + { elem_type t=arr[i-1];arr[i-1]=arr[j-1];arr[j-1]=t; } \ + } \ + arr[l-1] = arr[j-1]; \ + arr[j-1] = a; \ + j_stack += 2; \ + wxASSERT(!(j_stack>PIXEL_QSORT_STACK_SIZE)); \ + /* if (j_stack > PIXEL_QSORT_STACK_SIZE) { */ \ + /* printf("stack too small in pixel_qsort: aborting"); */ \ + /* exit(-2001); } */ \ + if (ir-i+1 >= j-l) { \ + i_stack[j_stack-1] = ir; \ + i_stack[j_stack-2] = i; \ + ir = j-1; \ + } else { \ + i_stack[j_stack-1] = j-1; \ + i_stack[j_stack-2] = l; \ + l = i; \ + } \ + } \ + } \ + free(i_stack); \ +} + + +/*------------------------------------------------------------------------- + Function : pixel_qsort2() + In : two pixel arrays, size of the arrays + Out : void + Job : sort out both arrays based on the first array + Notice : optimized implementation, unreadable. +--------------------------------------------------------------------------- + + This fully sorts the input arrays by modifying them + Uses the first array as the comparison array + + DECLARE_PIXEL_QSORT2(name, elem_type) + +----------------------------------------------------------------------------*/ + +#define PIXEL_QSORT2_STACK_SIZE 50 +#define PIXEL_QSORT2_THRESHOLD 7 + +#define DECLARE_PIXEL_QSORT2( name, elem_type ) \ + void name( elem_type *arr, elem_type *arr2, int n ); + +#define DEFINE_PIXEL_QSORT2( name, elem_type ) \ + void name( elem_type *arr, elem_type *arr2, int n ) \ + IMPLEMENT_PIXEL_QSORT2( name, elem_type ) + +#define IMPLEMENT_PIXEL_QSORT2( elem_type, arr, arr2, n ) \ +{ \ + int i, ir=n, j, k, l=1, j_stack=0; \ + int *i_stack ; \ + elem_type a, a2 ; \ + \ + i_stack = (int*)malloc(PIXEL_QSORT2_STACK_SIZE * sizeof(elem_type)); \ + for (;;) { \ + if (ir-l < PIXEL_QSORT2_THRESHOLD) { \ + for (j=l+1 ; j<=ir ; j++) { \ + a = arr[j-1]; a2 = arr2[j-1]; \ + for (i=j-1 ; i>=1 ; i--) { \ + if (arr[i-1] <= a) break; \ + arr[i] = arr[i-1]; \ + arr2[i] = arr2[i-1]; \ + } \ + arr[i] = a; arr2[i] = a2; \ + } \ + if (j_stack == 0) break; \ + ir = i_stack[j_stack-- -1]; \ + l = i_stack[j_stack-- -1]; \ + } else { \ + k = (l+ir) >> 1; \ + { elem_type t=arr[k-1];arr[k-1]=arr[l];arr[l]=t; t=arr2[k-1];arr2[k-1]=arr2[l];arr2[l]=t; } \ + if (arr[l] > arr[ir-1]) { \ + { elem_type t=arr[l];arr[l]=arr[ir-1];arr[ir-1]=t; t=arr2[l];arr2[l]=arr2[ir-1];arr2[ir-1]=t;} \ + } \ + if (arr[l-1] > arr[ir-1]) { \ + { elem_type t=arr[l-1];arr[l-1]=arr[ir-1];arr[ir-1]=t; t=arr2[l-1];arr2[l-1]=arr2[ir-1];arr2[ir-1]=t;} \ + } \ + if (arr[l] > arr[l-1]) { \ + { elem_type t=arr[l];arr[l]=arr[l-1];arr[l-1]=t; t=arr2[l];arr2[l]=arr2[l-1];arr2[l-1]=t; } \ + } \ + i = l+1; j = ir; a = arr[l-1]; a2 = arr2[l-1]; \ + for (;;) { \ + do i++; while (arr[i-1] < a); \ + do j--; while (arr[j-1] > a); \ + if (j < i) break; \ + { elem_type t=arr[i-1];arr[i-1]=arr[j-1];arr[j-1]=t; t=arr2[i-1];arr2[i-1]=arr2[j-1];arr2[j-1]=t;} \ + } \ + arr[l-1] = arr[j-1]; arr2[l-1] = arr2[j-1]; \ + arr[j-1] = a; arr2[j-1] = a2; \ + j_stack += 2; \ + wxASSERT(!(j_stack>PIXEL_QSORT_STACK_SIZE)); \ + /* if (j_stack > PIXEL_QSORT_STACK_SIZE) { */ \ + /* printf("stack too small in pixel_qsort: aborting"); */ \ + /* exit(-2001); } */ \ + if (ir-i+1 >= j-l) { \ + i_stack[j_stack-1] = ir; \ + i_stack[j_stack-2] = i; \ + ir = j-1; \ + } else { \ + i_stack[j_stack-1] = j-1; \ + i_stack[j_stack-2] = l; \ + l = i; \ + } \ + } \ + } \ + free(i_stack); \ +} + + + +/* +Abbreviated benchmark data from +http://ndevilla.free.fr/median/median/node13.html + +(QuickSelect, Wirth, Aho/Hopcroft/Ullman, Torben, pixel quicksort) +Pentium II 400 MHz running Linux 2.0 with glibc-2.0.7. + +The basic method using the libc qsort() function has not been represented here, +because it is so slow compared to the others that it would make the plot unreadable. +Furthermore, it depends on the local implementation of your C library. + +Ratios have been obtained for sets with increasing number of values, +from 1e4 to 1e6. The speed ratios have been computed to the fastest method +on average (QuickSelect), then averaged over all measure points. + +QuickSelect : 1.00 +WIRTH median : 1.33 +AHU median : 3.71 +Torben : 8.95 +fast pixel sort : 6.50 + + Elm Qselect Wirth AHU Torben pqsort +10000 0.000 0.000 0.010 0.010 0.010 +100000 0.010 0.020 0.050 0.140 0.100 +200000 0.040 0.040 0.180 0.310 0.220 +300000 0.070 0.060 0.190 0.470 0.340 +400000 0.080 0.140 0.150 0.630 0.450 +500000 0.110 0.080 0.510 0.800 0.580 +600000 0.090 0.140 0.320 0.940 0.730 +700000 0.120 0.100 0.450 1.100 0.810 +800000 0.120 0.160 0.590 1.270 0.940 +900000 0.180 0.250 0.760 1.430 1.070 +1000000 0.210 0.290 0.600 1.580 1.240 +*/ + +#endif //__WX_MEDSORT_H__ diff --git a/.svn/pristine/4b/4b9a00aedf7471ae6c0ec8454871fc99726e9b1d.svn-base b/.svn/pristine/4b/4b9a00aedf7471ae6c0ec8454871fc99726e9b1d.svn-base new file mode 100644 index 0000000..42e5eb0 --- /dev/null +++ b/.svn/pristine/4b/4b9a00aedf7471ae6c0ec8454871fc99726e9b1d.svn-base @@ -0,0 +1,21 @@ + + + + + + + + + + ... + + + + + ... + + + + ... + + diff --git a/.svn/pristine/4b/4bea8ee635a0be489b1f16e6e21ff50261f5a9ff.svn-base b/.svn/pristine/4b/4bea8ee635a0be489b1f16e6e21ff50261f5a9ff.svn-base new file mode 100644 index 0000000..14645d4 --- /dev/null +++ b/.svn/pristine/4b/4bea8ee635a0be489b1f16e6e21ff50261f5a9ff.svn-base @@ -0,0 +1,29 @@ +/** @file + * @brief Definition of the ICP error function minimization + * @author Flavia Grosan, Alex Tandrau. Jacobs University Bremen gGmbH, Germany. + * @author Andreas Nuechter. Jacobs University Bremen gGmbH, Germany. + */ + +#ifndef __ICP6DQUATSCALE_H__ +#define __ICP6DQUATSCALE_H__ + +#include "icp6Dquat.h" + +/** + * @brief Implementation of the ICP error function minimization via quaternions + */ +class icp6D_QUAT_SCALE : public icp6D_QUAT +{ +public: + /** constructor */ + icp6D_QUAT_SCALE(bool quiet = false) : icp6D_QUAT(quiet) {}; + /** destructor */ + virtual ~icp6D_QUAT_SCALE() {}; + + double Point_Point_Align(const vector& Pairs, double *alignxf, + const double centroid_m[3], const double centroid_d[3]); + inline int getAlgorithmID() { return 9; }; + +}; + +#endif diff --git a/.svn/pristine/4b/4bf1b18c6d10bddab8417bca4a084c618d997cdd.svn-base b/.svn/pristine/4b/4bf1b18c6d10bddab8417bca4a084c618d997cdd.svn-base new file mode 100644 index 0000000..79cf380 --- /dev/null +++ b/.svn/pristine/4b/4bf1b18c6d10bddab8417bca4a084c618d997cdd.svn-base @@ -0,0 +1,51 @@ +/** + * @file feature.h + * @brief detects features on images and create the descriptor for them + * @author HamidReza Houshiar. Jacobs University Bremen gGmbH, Germany. + * @date Date: 2012/5/24/ 2:00 + */ + +#ifndef FEATURE_H_ +#define FEATURE_H_ + +#include "fbr_global.h" + +using namespace std; + +namespace fbr{ + /** + * @class feature + * @brief class to detect and describe features + * @param fDetectorMethod feature_detector_method + * @param fDescriptorMethod feature_descriptor_method + * @param keypoints vector containing the detected features + * @param descriptors cv::Mat containig the descriptor of features + */ + class feature{ + feature_detector_method fDetectorMethod; + feature_descriptor_method fDescriptorMethod; + vector keypoints; + cv::Mat descriptors; + enum description_method{ + FEATURE_DESCRIPTION, + DESCRIPTOR_DESCRIPTION, + ALL, + }; + public: + /** + * constructor of feature class + */ + feature(); + void featureDetection(cv::Mat pImage, feature_detector_method method); + void featureDetection(cv::Mat pImage); + void featureDescription(cv::Mat pImage, feature_descriptor_method method); + void featureDescription(cv::Mat pImage); + feature_detector_method getDetectorMethod(); + feature_descriptor_method getDescriptorMethod(); + vector getFeatures(); + cv::Mat getDescriptors(); + void getDescription(description_method method=ALL); + unsigned int getNumberOfFeatures(); + }; +} +#endif /* FEATURE_H_ */ diff --git a/.svn/pristine/4c/4c0f6d151acd8ffe4591327d94b588f8ad75b234.svn-base b/.svn/pristine/4c/4c0f6d151acd8ffe4591327d94b588f8ad75b234.svn-base new file mode 100644 index 0000000..c8a7230 --- /dev/null +++ b/.svn/pristine/4c/4c0f6d151acd8ffe4591327d94b588f8ad75b234.svn-base @@ -0,0 +1,138 @@ +#include "slam6d/scan_io_iais.h" +#include "slam6d/globals.icc" +#include +using std::ifstream; +#include +using std::cerr; +using std::endl; + +#ifdef _MSC_VER +#include +#endif + +/** + * Reads specified scans from given directory. + * + * Scan poses will NOT be initialized after a call + * to this function. + * + * + * @param s 3D Scan to be read. The vector of points must be filled + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param maxDist Reads only Points up to this Distance + * @param dir The directory from which to read + */ +int ScanIO_iais::readScans(int start, int end, string &dir, + int maxDist, int minDist, + double *euler, vector &ptss) +{ + static int fileCounter = start; + static string poseFileName; + string scanFileName; + + double maxDist2 = sqr(maxDist); + + double matrix[16]; + + static ifstream pose_in; + ifstream scan_in; + + if (fileCounter > end) return -1; + + if (fileCounter == start) { + poseFileName = dir + "poses_abs_with_start.txt"; + pose_in.open(poseFileName.c_str()); + if (!pose_in.good()) { cerr << "ERROR: Missing file " << poseFileName << endl; exit(1); } + for (int i = 0; i < start; i++) { + pose_in >> matrix[0] >> matrix[1] >> matrix[2] >> matrix[12] + >> matrix[4] >> matrix[5] >> matrix[6] >> matrix[13] + >> matrix[8] >> matrix[9] >> matrix[10] >> matrix[14]; + // >> matrix[12] >> matrix[13] >> matrix[14]; + matrix[15] = 1.0; + matrix[3] = matrix[7] = matrix[11] = 0.0; + } + } + + pose_in >> matrix[0] >> matrix[1] >> matrix[2] >> matrix[12] + >> matrix[4] >> matrix[5] >> matrix[6] >> matrix[13] + >> matrix[8] >> matrix[9] >> matrix[10] >> matrix[14]; + // >> matrix[12] >> matrix[13] >> matrix[14]; + matrix[15] = 1.0; + matrix[3] = matrix[7] = matrix[11] = 0.0; + + Matrix4ToEuler(matrix, euler+3, euler); + euler[3] *= -1.0; + euler[5] *= -1.0; + + if (end > -1 && fileCounter > end) return -1; // 'nuf read + scanFileName = dir + "scan" + to_string(fileCounter,3) + ".3d"; + + scan_in.open(scanFileName.c_str()); + + // read 3D scan + // no more files in the directory + if (!scan_in.good()) { cerr << "ERROR: Missing file " << scanFileName << endl; exit(1); } + cout << "Processing Scan " << scanFileName; + + cout << " @ pose (" << euler[0] << "," << euler[1] << "," << euler[2] + << "," << deg(euler[3]) << "," << deg(euler[4]) << "," << deg(euler[5]) << ")" << endl; + + // overread the first line + char dummy[255]; + scan_in.getline(dummy, 255); + + while (scan_in.good()) { + Point p; + try { + scan_in >> p; + } catch (...) { + break; + } + // load points up to a certain distance only + // maxDist2 = -1 indicates no limitation + if (maxDist == -1 || sqr(p.x) + sqr(p.y) + sqr(p.z) < maxDist2) + ptss.push_back(p); + } + scan_in.close(); + scan_in.clear(); + fileCounter++; + + return fileCounter-1; +} + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_iais; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/.svn/pristine/4d/4d0579c4c295350708abb857216e3f56213450a6.svn-base b/.svn/pristine/4d/4d0579c4c295350708abb857216e3f56213450a6.svn-base new file mode 100644 index 0000000..027e046 --- /dev/null +++ b/.svn/pristine/4d/4d0579c4c295350708abb857216e3f56213450a6.svn-base @@ -0,0 +1,7 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = 18 +CMAKE_PROGRESS_3 = +CMAKE_PROGRESS_4 = 19 +CMAKE_PROGRESS_5 = 20 +CMAKE_PROGRESS_6 = + diff --git a/.svn/pristine/4d/4d169008a4dcff811c6ec2f36ff18531ea655b94.svn-base b/.svn/pristine/4d/4d169008a4dcff811c6ec2f36ff18531ea655b94.svn-base new file mode 100644 index 0000000..f4567de --- /dev/null +++ b/.svn/pristine/4d/4d169008a4dcff811c6ec2f36ff18531ea655b94.svn-base @@ -0,0 +1,27 @@ +/** + * @file + * @brief IO of a 3D scan in uos file format + * @author Thomas Escher + */ + +#ifndef __SCAN_IO_RIEGL_H__ +#define __SCAN_IO_RIEGL_H__ + +#include "scan_io.h" + + + +/** + * @brief 3D scan loader for Riegl scans + * + * The compiled class is available as shared object file + */ +class ScanIO_riegl_txt : public ScanIO { +public: + virtual std::list readDirectory(const char* dir_path, unsigned int start, unsigned int end); + virtual void readPose(const char* dir_path, const char* identifier, double* pose); + virtual void readScan(const char* dir_path, const char* identifier, PointFilter&& filter, std::vector* xyz, std::vector* rgb, std::vector* reflectance, std::vector* amplitude, std::vector* type, std::vector* deviation); + virtual bool supports(IODataType type); +}; + +#endif diff --git a/.svn/pristine/4d/4d2794f1acf89149d75ae986c8a70206f0b92196.svn-base b/.svn/pristine/4d/4d2794f1acf89149d75ae986c8a70206f0b92196.svn-base new file mode 100644 index 0000000..6b6b86d --- /dev/null +++ b/.svn/pristine/4d/4d2794f1acf89149d75ae986c8a70206f0b92196.svn-base @@ -0,0 +1,50 @@ +IF (WITH_THERMO) + find_package(OpenCV REQUIRED) + + include_directories(${CMAKE_SOURCE_DIR}/3rdparty/cvblob) + include_directories(${CMAKE_SOURCE_DIR}/3rdparty/gocr-0.48/src) + include_directories(${CMAKE_SOURCE_DIR}/3rdparty/gocr-0.48/include) + include_directories(${CMAKE_SOURCE_DIR}/include/shapes/) + include_directories(${CMAKE_SOURCE_DIR}/include/thermo/) + include_directories(/usr/include/) + include_directories(/usr/include/opencv) + +# # Compile gocr library +# SET(GOCR_DIR ${CMAKE_SOURCE_DIR}/3rdparty/gocr-0.48/src/) +# add_library(Pgm2asc SHARED ${GOCR_DIR}gocr.c ${GOCR_DIR}pgm2asc.c ${GOCR_DIR}box.c ${GOCR_DIR}database.c +# ${GOCR_DIR}detect.c ${GOCR_DIR}barcode.c ${GOCR_DIR}lines.c ${GOCR_DIR}list.c +# ${GOCR_DIR}ocr0.c ${GOCR_DIR}ocr0n.c ${GOCR_DIR}ocr1.c ${GOCR_DIR}otsu.c +# ${GOCR_DIR}output.c ${GOCR_DIR}pixel.c ${GOCR_DIR}unicode.c ${GOCR_DIR}remove.c +# ${GOCR_DIR}pnm.c ${GOCR_DIR}pcx.c ${GOCR_DIR}progress.c ${GOCR_DIR}job.c) + +# add_executable(shapes shapes.cc geom_math.cc numberrec.cc scan_ransac.cc ) +# +# IF(WIN32) +# target_link_libraries(shapes scan XGetopt netpbm Pgm2asc) +# ENDIF(WIN32) +# +# IF (UNIX) +# target_link_libraries(shapes scan newmat dl netpbm Pgm2asc ) +# ENDIF(UNIX) +# + + add_executable(caliboard caliboard.cc) +# add_executable(thermo thermo.cc) +# add_executable(thermo thermo.cc src/cvaux.cpp src/cvblob.cpp src/cvcolor.cpp src/cvcontour.cpp src/cvlabel.cpp src/cvtrack.cpp) + add_executable(thermo thermo.cc) + + IF(UNIX) + target_link_libraries(caliboard scan shape newmat dl ANN) + target_link_libraries(thermo scan shape newmat dl ANN) +# target_link_libraries(thermo scan shape newmat dl ANN) + target_link_libraries(thermo cv cvaux cxcore GL GLU highgui cvblob scan ANN) + ENDIF(UNIX) + + IF (WIN32) + target_link_libraries(caliboard scan shape newmat XGetopt ANN) +# target_link_libraries(thermo scan shape newmat XGetopt ANN) + target_link_libraries(thermo cv cvaux cxcore GL GLU highgui cvblob scan ANN) + ENDIF(WIN32) + + +ENDIF(WITH_THERMO) diff --git a/.svn/pristine/4e/4e4a30538fe876f9042244a782a9b8fe08cafcc0.svn-base b/.svn/pristine/4e/4e4a30538fe876f9042244a782a9b8fe08cafcc0.svn-base new file mode 100644 index 0000000..332d2bd --- /dev/null +++ b/.svn/pristine/4e/4e4a30538fe876f9042244a782a9b8fe08cafcc0.svn-base @@ -0,0 +1,334 @@ +/* +This is a Optical-Character-Recognition program +Copyright (C) 2000-2006 Joerg Schulenburg + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + see README for email address + + ***********************************IMPORTANT********************************* + Notes to the developers: read the following notes before using these + functions. + * Be careful when using for_each_data() recursively and calling list_del. + It may mangle with the current[] pointers, and possibly segfault or do an + unpredictable or just undesirable behavior. We have been working on a + solution for this problem, and solved some of the biggest problems. + In a few words, the problem is this: when you delete a node, it may be + the current node of a lower level loop. The current code takes care of + access to previous/next elements of the now defunct node. So, if you do + something like: + + for_each_data(l) { + for_each_data(l) { + list_del(l, header_data); + free(header_data); + } end_for_each(l); ++ tempnode = list_cur_next(l); + } end_for_each(l); + + It will work, even though the current node in the outer loop was deleted. + However, if you replace the line marked with + with the following code: + + tempnode = list_next(l, list_get_current(l)); + + it will break, since list_get_current is likely to return NULL or garbage, + since you deleted header_data(). + Conclusion: use list_del carefully. The best way to avoid this problem is + to not use list_del inside a big stack of loops. + * If you have two elements with the same data, the functions will assume + that the first one is the wanted one. Not a bug, a feature. ;-) + * avoid calling list_prev and list_next. They are intensive and slow + functions. Keep the result in a variable or, if you need something more, + use list_get_element_from_data. + + */ + +#include +#include +#include "list.h" +#include "progress.h" + +void list_init( List *l ) { + if ( !l ) + return; + + l->start.next = &l->stop; + l->stop.previous = &l->start; + l->start.previous = l->stop.next = NULL; + l->start.data = l->stop.data = NULL; + l->current = NULL; + l->level = -1; + l->n = 0; +} + +/* inserts data before data_after. If data_after == NULL, appends. + Returns 1 on error, 0 if OK. */ +int list_ins( List *l, void *data_after, void *data) { + Element *e, *after_element; + + /* test arguments */ + if ( !l || !data ) + return 1; + + if ( !data_after || !l->n ) + return list_app(l, data); + + /* get data_after element */ + if ( !(after_element = list_element_from_data(l, data_after)) ) + return 1; + + /* alloc a new element */ + if( !(e = (Element *)malloc(sizeof(Element))) ) + return 1; + e->data = data; + e->next = after_element; + e->previous = after_element->previous; + after_element->previous->next = e; + after_element->previous = e; + l->n++; + + return 0; +} + +/* appends data to the list. Returns 1 on error, 0 if OK. */ +/* same as list_ins(l,NULL,data) ??? */ +int list_app( List *l, void *data ) { + Element *e; + + if ( !l || !data ) + return 1; + if ( !(e = (Element *)malloc(sizeof(Element))) ) + return 1; + + e->data = data; + e->previous = l->stop.previous; + e->next = l->stop.previous->next; + l->stop.previous->next = e; + l->stop.previous = e; + l->n++; + return 0; +} + +/* returns element associated with data. */ +Element *list_element_from_data( List *l, void *data ) { + Element *temp; + + if ( !l || !data || !l->n) + return NULL; + + temp = l->start.next; + + while ( temp->data != data ) { + if ( !temp || temp==&l->stop ) + return NULL; + temp = temp->next; + } + return temp; +} + +/* deletes (first) element with data from list. User must free data. + Returns 0 if OK, 1 on error. + This is the internal version, that shouldn't be called usually. Use the + list_del() macro instead. + */ +int list_del( List *l, void *data ) { + Element *temp; + int i; + + if (!data) return 1; /* do not delete start or stop element */ + + /* find element associated with data */ + if ( !(temp = list_element_from_data(l, data)) ) + return 1; + + /* test if the deleted node is current in some nested loop, and fix it. */ + for ( i = l->level; i >= 0; i-- ) { + if ( l->current[i] == temp ) { + l->current[i] = temp->previous; + } + } + + temp->previous->next = temp->next; + temp->next->previous = temp->previous; + temp->previous = temp->next = NULL; /* mark as freed */ +/* + fprintf(stderr,"\n# list_del=%p start=%p stop=%p",temp,&l->start,&l->stop); +*/ + + /* and free stuff */ + free(temp); /* element pointing to data, fixed mem-leak 0.41 */ + l->n--; + return 0; +} + +/* frees list. See also list_and_data_free() */ +void list_free( List *l ) { + Element *temp, *temp2; + + if ( !l || !l->n ) + return; + + if ( l->current ) { + free(l->current); + } + l->current = NULL; + + temp = l->start.next; + while ( temp && temp!=&l->stop) { + temp2 = temp->next; + free(temp); + temp = temp2; + } + l->start.next = &l->stop; + l->stop.previous = &l->start; +} + +/* setup a new level of for_each */ +int list_higher_level( List *l ) { + Element **newcur; + + if ( !l ) return(1); + + /* + Security-check: NULL pointer passed to realloc. + ANSI allows this, but it may cause portability problems. + */ + newcur = (Element **)realloc(l->current, (l->level+2)*sizeof(Element *)); + if (newcur) { + l->current = newcur; + l->level++; + l->current[l->level] = l->start.next; + } + g_debug(fprintf(stderr, " level++=%d current[]=%p\n", + l->level, l->current);) + if ( !newcur ) { + fprintf(stderr, " realloc failed! abort\n"); return(1); + } + return 0; +} + +void list_lower_level( List *l ) { + if ( !l ) + return; + + if (!l->level) { + free(l->current); /* calm -lefence */ + l->current = NULL; /* could be important */ + } else { + l->current = (Element **)realloc(l->current, l->level*sizeof(Element *)); + } + l->level--; + g_debug(fprintf(stderr, " level--=%d current[]=%p\n", l->level, + l->current);) +} + +/* returns the next item data */ +void *list_next( List *l, void *data ) { + Element *temp; + + if ( !l || !(temp = list_element_from_data(l, data)) ) + return NULL; + if( !temp->next ) return NULL; + return (temp->next->data); +} + +/* returns the previous item data */ +void *list_prev( List *l, void *data ) { + Element *temp; + + if ( !l || !(temp = list_element_from_data(l, data)) ) + return NULL; + if( !temp->previous ) return NULL; + return (temp->previous->data); +} + +/* Similar to qsort. Sorts list, using the (*compare) function, which is + provided by the user. The comparison function must return an integer less + than, equal to, or greater than zero if the first argument is considered to + be respectively less than, equal to, or greater than the second. + Uses the bubble sort algorithm. + */ +void list_sort( List *l, int (*compare)(const void *, const void *) ) { + Element *temp, *prev; + int i, sorted; + progress_counter_t *pc = NULL; + + if ( !l ) + return; + + /* start progress meter, sorting is slow for huge number of elements */ + /* l->n is the worst case, real time is less or equal estimated time */ + pc = open_progress(l->n,"list_sort"); + + for (i = 0; i < l->n; i++ ) { + sorted = 1; /* Flag for early break */ + for ( temp = l->start.next->next; + temp != NULL && temp != &l->stop; temp = temp->next ) { + if ( temp->previous == &l->start ) continue; + if ( compare((const void *)temp->previous->data, + (const void *)temp->data) > 0 ) { + + sorted = 0; /* rest flag */ + /* swap with the previous node */ + prev = temp->previous; + prev->previous->next = temp; + temp->next->previous = prev; + temp->previous = prev->previous; + prev->next = temp->next; + prev->previous = temp; + temp->next = prev; + /* and make sure the node in the for loop is correct */ + temp = prev; + +#ifdef SLOWER_BUT_KEEP_BY_NOW +/* this is a slower version, but guaranteed to work */ + void *data; + + data = temp->data; + prev = temp->previous; + list_del(l, data); + list_ins(l, prev->data, data); + temp = prev; +#endif + } + } + if (sorted) break; + progress(i,pc); /* progress meter */ + } + + close_progress(pc); + g_debug(fprintf(stderr, "list_sort()\n");) +} + +/* calls free_data() for each data in list l, + * before free list with list_free() */ +int list_and_data_free( List *l, void (*free_data)(void *data)) { + void *data; + + if ( !l ) return 0; + if ( !free_data ) return 1; + + for_each_data(l) { + if ((data = list_get_current(l))) + free_data(data); + } end_for_each(l); + + list_free(l); + + g_debug(fprintf(stderr, "list_and_data_free()\n");) + + return 0; +} + diff --git a/.svn/pristine/4e/4e804d0103295031b87d4267c45d1fd00445ad1b.svn-base b/.svn/pristine/4e/4e804d0103295031b87d4267c45d1fd00445ad1b.svn-base new file mode 100644 index 0000000..b14902a --- /dev/null +++ b/.svn/pristine/4e/4e804d0103295031b87d4267c45d1fd00445ad1b.svn-base @@ -0,0 +1,187 @@ +/* + * pointfilter implementation + * + * Copyright (C) Thomas Escher, Dorit Borrmann, Kai Lingemann + * + * Released under the GPL version 3. + * + */ + +#include "scanserver/pointfilter.h" + +using std::string; +using std::map; +#include +using std::stringstream; +#include +using std::runtime_error; + +#include +using std::cout; +using std::endl; + + + +map PointFilter::factory; + + + +PointFilter::PointFilter() : + m_changed(true), m_checker(0) +{ +} + +PointFilter::PointFilter(const std::string& params) : + m_changed(true), m_checker(0) +{ + size_t start = 0, end = string::npos; + while((end = params.find(' ', start)) != string::npos) { + // extract the word (start-end+1) without the space (-1) + string key(params.substr(start, start-end)); + end++; + // get the second word position + start = params.find(' ', end); + // insert + m_params[key] = params.substr(end, (start-end)); + // advance to the character after space + if(start != string::npos) + start++; + else + break; + } +} + +PointFilter::~PointFilter() +{ + if(m_checker) + delete m_checker; +} + +PointFilter& PointFilter::setRange(float maxDist, float minDist) +{ + m_changed = true; + stringstream s_max; s_max << maxDist; + stringstream s_min; s_min << minDist; + m_params["rangemax"] = s_max.str(); + m_params["rangemin"] = s_min.str(); + return *this; +} + +PointFilter& PointFilter::setHeight(double top, double bottom) +{ + m_changed = true; + stringstream s_top; s_top << top; + stringstream s_bottom; s_bottom << bottom; + m_params["heighttop"] = s_top.str(); + m_params["heightbottom"] = s_bottom.str(); + return *this; +} + +std::string PointFilter::getParams() +{ + stringstream s; + for(map::iterator it = m_params.begin(); it != m_params.end(); ++it) { + s << (*it).first << " " << (*it).second << " "; + } + return s.str(); +} + +void PointFilter::createCheckers() +{ + // delete the outdated ones + if(m_checker) { + delete m_checker; + m_checker = 0; + } + + // create new ones + Checker** current = &m_checker; + for(map::iterator it = m_params.begin(); it != m_params.end(); ++it) { + *current = factory[it->first](it->second); + // if a Checker has been successfully created advance to its pointer in the chain + if(*current) { + current = &((*current)->m_next); + } + } +} + + + +Checker::Checker() : + m_next(0) +{ +} + +Checker::~Checker() +{ + if(m_next) + delete m_next; +} + + + +// create factory instaces for key string to factory function mapping +namespace { + CheckerFactory max("rangemax"); + CheckerFactory min("rangemin"); + CheckerFactory top("heighttop"); + CheckerFactory bottom("heightbottom"); +} + + + +CheckerRangeMax::CheckerRangeMax(const std::string& value) { + stringstream s(value); + s >> m_max; + // default value: no check + if(m_max <= 0.0) throw runtime_error("No range filter needed."); + m_max *= m_max; +} + +bool CheckerRangeMax::test(double* point) { + if(point[0]*point[0] + point[1]*point[1] + point[2]*point[2] < m_max) + return true; + return false; +} + + + +CheckerRangeMin::CheckerRangeMin(const std::string& value) { + stringstream s(value); + s >> m_min; + // default value: no check + if(m_min <= 0.0) throw runtime_error("No range filter needed."); + m_min *= m_min; +} + +bool CheckerRangeMin::test(double* point) { + if(point[0]*point[0] + point[1]*point[1] + point[2]*point[2] > m_min) + return true; + return false; +} + + + +CheckerHeightTop::CheckerHeightTop(const std::string& value) { + stringstream s(value); + s >> m_top; +} + +bool CheckerHeightTop::test(double* point) { + if(point[1] < m_top) + return true; + return false; +} + + + +CheckerHeightBottom::CheckerHeightBottom(const std::string& value) { + stringstream s(value); + s >> m_bottom; +} + +bool CheckerHeightBottom::test(double* point) { + if(point[1] > m_bottom) + return true; + return false; +} diff --git a/.svn/pristine/4e/4e8bef9897ef975bac25d283e4da5b1caefb5eeb.svn-base b/.svn/pristine/4e/4e8bef9897ef975bac25d283e4da5b1caefb5eeb.svn-base new file mode 100644 index 0000000..e33adb0 --- /dev/null +++ b/.svn/pristine/4e/4e8bef9897ef975bac25d283e4da5b1caefb5eeb.svn-base @@ -0,0 +1,84 @@ +/* +This is a Optical-Character-Recognition program +Copyright (C) 2000-2006 Joerg Schulenburg + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + see README for email address */ + +#include "pgm2asc.h" +#include "gocr.h" + +/* initialize job structure */ +void job_init(job_t *job) { + /* init source */ + job->src.fname = "-"; + /* FIXME jb: init pix */ + job->src.p.p = NULL; + + /* init results */ + list_init( &job->res.boxlist ); + list_init( &job->res.linelist ); + job->res.avX = 5; + job->res.avY = 8; + job->res.sumX = 0; + job->res.sumY = 0; + job->res.numC = 0; + job->res.lines.dy=0; + job->res.lines.num=0; + + /* init temporaries */ + list_init( &job->tmp.dblist ); + job->tmp.n_run = 0; + /* FIXME jb: init ppo */ + job->tmp.ppo.p = NULL; + job->tmp.ppo.x = 0; + job->tmp.ppo.y = 0; + + /* init cfg */ + job->cfg.cs = 0; + job->cfg.spc = 0; + job->cfg.mode = 0; + job->cfg.dust_size = -1; /* auto detect */ + job->cfg.only_numbers = 0; + job->cfg.verbose = 0; + job->cfg.out_format = UTF8; /* old: ISO8859_1; */ + job->cfg.lc = "_"; + job->cfg.db_path = (char*)NULL; + job->cfg.cfilter = (char*)NULL; + job->cfg.certainty = 95; + job->cfg.unrec_marker = "_"; +} + +/* free job structure */ +void job_free(job_t *job) { + + /* if tmp is just a copy of the pointer to the original image */ + if (job->tmp.ppo.p==job->src.p.p) job->tmp.ppo.p=NULL; + + /* FIMXE jb: free lists + * list_free( &job->res.linelist ); + * list_free( &job->tmp.dblist ); + */ + + list_and_data_free(&(job->res.boxlist), (void (*)(void *))free_box); + + /* FIXME jb: free pix */ + if (job->src.p.p) { free(job->src.p.p); job->src.p.p=NULL; } + + /* FIXME jb: free pix */ + if (job->tmp.ppo.p) { free(job->tmp.ppo.p); job->tmp.ppo.p=NULL; } + +} diff --git a/.svn/pristine/4e/4ec9266a1ec453d7f49412ff0fd31a7ab02aae77.svn-base b/.svn/pristine/4e/4ec9266a1ec453d7f49412ff0fd31a7ab02aae77.svn-base new file mode 100644 index 0000000..8d30bea --- /dev/null +++ b/.svn/pristine/4e/4ec9266a1ec453d7f49412ff0fd31a7ab02aae77.svn-base @@ -0,0 +1,846 @@ +/* +This is a Optical-Character-Recognition program +Copyright (C) 2000-2009 Joerg Schulenburg + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + see README for email address + + ToDo: + - transform special xml bar code symbols (<>&) to xml symbols (<>&) + +*/ + +#include +#include +#include +/* #include -- we do not want unnecessary dependencies */ +#include "pgm2asc.h" +#include "gocr.h" +#include "pnm.h" + +#ifndef DO_DEBUG /* can be defined outside (configure --with-debug) */ +#define DO_DEBUG 0 /* 0 is the default */ +#endif + +#undef g_debug +#if DO_DEBUG +# define g_debug(a) if (JOB->cfg.verbose&1) { a } +#else +# define g_debug(a) +#endif + +/* + detect barcode and add a XML-string to the box (obj-pointer, ToDo) + ToDo: barcode-output stderr->stdout +*/ + +double sqr(double x) { return(x*x); } + +/* ----------------------------- code128 ---------------------------- * + * "BSBSBS", B=Bar, S=Space, better using 2*6=12bit-integer? */ +#define Num128 107 +const char *code128[Num128+1]={ /* can be generated by an algorithm? */ +/* 00 */"212222","222122","222221","121223","121322","131222","122213","122312", +/* 08 */"132212","221213","221312","231212","112232","122132","122231","113222", +/* 16 */"123122","123221","223211","221132","221231","213212","223112","312131", +/* 24 */"311222","321122","321221","312212","322112","322211","212123","212321", +/* 32 */"232121","111323","131123","131321","112313","132113","132311","211313", +/* 40 */"231113","231311","112133","112331","132131","113123","113321","133121", +/* 48 */"313121","211331","231131","213113","213311","213131","311123","311321", +/* 56 */"331121","312113","312311","332111","314111","221411","431111","111224", +/* 64 */"111422","121124","121421","141122","141221","112214","112412","122114", +/* 72 */"122411","142112","142211","241211","221114","413111","241112","134111", +/* 80 */"111242","121142","121241","114212","124112","124211","411212","421112", +/* 88 */"421211","212141","214121","412121","111143","111341","131141","114113", +/* 96 */"114311","411113","411311","113141","114131","311141","411131","211412", +/*104 */"211214","211232","2331112","???"}; + +/* + code128: see code128.tex by Petr Olsak (108 codes) + quiet_zone: size=10 (before and after code128) + num_bars=3*(start+chars[N]+crc+stop)+1 + B=bar S=space char=BSBSBS (size=11), stop=BSBSBSB (size=11+2) + Width: Bar,Space=1,[2,3,4] char=11 code=11*(N+3)+2 sumB=even,sumS=odd + startA="211412"=103 startB="211214"=104 startC="211232"=105(2dec_digits) + mode/code 0..95 96 97 98 99 100 101 102 103 104 105 106 + 1=A x20-x5f,0-x20 F3 F2 uB mC mB F4 F1 ^A ^B ^C $ + 2=B x20-x7f F3 F2 uA mC F4 mA F1 ^A ^B ^C $ + 3=C "00"-"95" "96" "97" "98" "99" mB mA F1 ^A ^B ^C $ + uA,uB: switch mode for next char, mA,mB: switch mode permanently + crc=(start+1*char1+2*char2+3*char3+...+N*charN) mod 103 + $=stop="2331112"=106 (4bars, with=13) => start/end==211 + return num of chars or string + + size B+W even-variants odd-variants num_codes + 11 = 8+3 = (1+3+4,2+2+4,2+3+3)+(1+1+1) => (6+3+3)*(1) = 12 + = 6+5 = (1+1+4,1+2+3,2+2+2)+(1+1+3,1+2+2) => (3+6+1)*(3+3) = 60 + = 4+7 = (1+1+2)+(1+2+4,1+3+3,2+2+3) => (3)*(6+3+3) = 36 + sum = 108 + */ + /* example: barcode -E -e 128c -b 1434600120000884 >a.eps */ + /* example: barcode -E -e 128b -b 14Test41 >a.eps */ + /* example: barcode -E -e 128raw -b 105 17 14 30 >a.eps */ + +char *decode_code128(int *wb, int num_bars){ + int i, w, i1, i2, i3=0, i4, i5=0, crc, mode=1; + double dww, dw, err, min_err; char cc, *buf; + char *result=NULL; /* malloc and store the result */ + + for(w=i=0;i<2*num_bars-1;i++) w+=wb[i]; /* summ all bars and spaces */ + + /* test code128 characteristics, ToDo: look for correct start/stop 211 seq. */ + if ((num_bars-1)%3!=0 || num_bars<10 || w<11*(num_bars-1)/3+2) + return 0; + g_debug(fprintf(stderr," code128 b%d s%d b%d\n",wb[0],wb[1],wb[2]);) + if (3*wb[0]<4* wb[1] + || 3*wb[0]<4* wb[2] + || 4*wb[0]<3*(wb[1]+wb[2]) + || 3*wb[0]>4*(wb[1]+wb[2])) return 0; /* 211 */ + dw=3.0*w/((num_bars-1)*11+6); + /* get enough memory for all digits in longest mode C */ + buf =(char *) malloc( (num_bars-7)/3*2+1); if (!buf) return result; + result=(char *) malloc(256+(num_bars-7)/3*2+1); + + dww=crc=0; + for(i4=i1=0;i1<(num_bars-1)/3;i1++) { + for(min_err=1e8,i3=Num128,i5=0;i5102 && i3<106) mode=i3-103+1; crc=i3; } /* start */ + if(i1>0 && i1<(num_bars-1)/3-2){ + crc+=i3*(i1); cc=0; /* first * 1 + second * 2 + third * 3 ... */ + i5=((mode>3)?mode>>2:mode&3); mode&=3; /* mode can be modified now */ + switch (i5) { /* mode=1..3=modeA..modeC */ + case 1: if (i3>=64 && i3<96) cc=i3-64; /* modeA: x20-x5f,0-x20 */ + else cc=i3+32; + if (i3==101) mode=1; /* switch to mode A */ + if (i3== 99) mode=3; /* switch to mode C */ + if (i3== 98) mode|=2<<2; /* shift to mode B */ + break; + case 2: cc=i3+32; /* modeB: x20-x7f */ + if (i3==100) mode=2; /* switch to mode B */ + if (i3== 99) mode=3; /* switch to mode C */ + if (i3== 98) mode|=1<<2; /* shift to mode A */ + break; + case 3: + if (i3==101) mode=1; /* switch to mode A */ + if (i3==100) mode=2; /* switch to mode B */ + } + if (i5==3) { buf[i4]='0'+i3/10; i4++; + buf[i4]='0'+i3%10; i4++; } /* modeC: two digits */ + else { + if (cc>=0x20 && i3<=0x7f) { buf[i4]=cc; i4++; } /* modeA+B: one digit */ + if (cc>=0 && cc< 0x20) { buf[i4]='^'; i4++; + buf[i4]=cc+'@'; i4++; } + } + } + if(i1==(num_bars-1)/3-2){ crc=(crc+103-i3)%103; } + if(i1==(num_bars-1)/3-1){ if(i3!=106) i3=-1; } /* stop code */ + mode &= 3; /* remove shift */ + } + else fprintf(stderr," %s=%02d? ",buf,i5); + } + buf[i4]=0; /* end of string */ + if (result) + sprintf(result,"", + i4,buf,crc,dww/((num_bars-1))); + free(buf); + return result; +} + +/* -------------------------------------------------------------------- UPC + EAN 13 (UPC,(1+6+1+6+1)*2bars,size=3+6*7+5+6*7+3=95) + EAN 8 (UPC,(1+4+1+4+1)*2bars,size=3+4*7+5+4*7+3=67) + UPC: (10 codes) + BSB SBSB^n SBSBS BSBS^n BSB + bsb ...... sbsbs ...... bsb + 111 ...... 11111 ...... 111 + num_bars=2*(2*6+3) middle=SBSBS=11111 right/left=BSB=111="101" + char: left=SBSB right=BSBS (size=7) only_dec_digits + SS+BB = (S+S) + (B+B) => BB:SS = 5:2 or 3:4 + size ev+odd even + odd => variants + 7 = 2 + 5 = (1+1) + (1+4,2+3) => (1)*(2+2) = 4 codes + = 4 + 3 = (1+3,2+2) + (1+3) => (2+1)*(2) = 6 codes += 10 codes + ToDo: make it more robust + - return error as mean deviation + * -------------------------------------------------------------------- */ + /* example: barcode -E -e upc -b 12345678901 >a.eps # ok */ + /* example: barcode -E -e ean -b 123456789012 >a.eps # ok */ +#define NumUPC 20 +const char *codeUPC[NumUPC+1]={ /* 0..9, first n = SBSB, last n = BSBS */ + "3211","2221","2122","1411","1132", /* 0,1,2,3,4 normal (+0bit) */ + "1231","1114","1312","1213","3112", /* 5,6,7,8,9 */ + "1123","1222","2212","1141","2311", /* 0,1,2,3,4 mirrored (+1bit) */ + "1321","4111","2131","3121","2113", /* 5,6,7,8,9 */ + "????"}; /* not found */ + +char *decode_UPC(int *wb, int num_bars){ /* ToDo: char *dest, int len */ + int i, w, i1, i2, i3, i4, i5, crc, mirrored, ean; + double err, min_err, dw, dww=0.0; char digit; + char *result=NULL, *buf=NULL; /* malloc and store the result */ + for(w=i=0;i<2*num_bars-1;i++) w+=wb[i]; + + dw=2.0*w/((num_bars-6)*7+2*11); /* or min(wb[]) */ + crc=0; + if ((num_bars)%2!=0 || num_bars<10 || w<7*(num_bars-6)/2+11 + || ((num_bars-6)/2)%2!=0) return 0; /* should be balanced */ + /* check front BSB, middle SBSBS and end BSB */ + dww=0; + for (i=0;i<3;i++) { dww=sqr(wb[i ]/dw-1); if (dww>0.4) return 0; } + for (i=0;i<5;i++) { dww=sqr(wb[i+ num_bars-3]/dw-1); if (dww>0.4) return 0; } + for (i=0;i<3;i++) { dww=sqr(wb[i+2*num_bars-4]/dw-1); if (dww>0.4) return 0; } + buf =(char *)malloc( (num_bars-6)/2+1); if (!buf) return result; + result=(char *)malloc(256+(num_bars-6)/2+1); + + for(ean=i5=0,i1=3;i1<2*num_bars-4;i1+=4) { /* each digit (2bars+2spaces) */ + if (i1==num_bars-3) { i1++; continue; } /* skip middle sync SBSBS */ + for (i4=NumUPC,mirrored=0,digit='?',min_err=16e8,i2=0;i2 0yyyyy */ + switch (ean) { + case 11: ean=1; break; + case 13: ean=2; break; + case 14: ean=3; break; + case 19: ean=4; break; + case 25: ean=5; break; + case 28: ean=6; break; + case 21: ean=7; break; + case 22: ean=8; break; + case 26: ean=9; break; + default: ean=0; /* no or invalid EAN digit or UPC-extension */ + } crc+=ean*1; + /* ToDo: fix possible buffer OVL, complement crc */ + buf[i5]=0; + if (result) + sprintf(result,"", + i5+1,ean,buf,(10-crc%10)%10,dww/((num_bars-6)*2)); + free(buf); + return result; +} + + /* EAN/UPC add-on is either 2 or 5 digits. It always starts with a + * guard bar BSB, followed by ([digit + SB] * (N-1)) + digit. Digit is + * SBSB. Two digit add-on's have 7 bars, and 5 digit add ons have 16. + */ +char *decode_UPC_addon(int *wb, int num_bars){ /* ToDo: char *dest, int len */ + int i, w, i1, i2, i3, i4, i5, digits=num_bars/3; + double err, min_err, dw, dww=0.0; char digit; + char *result=NULL, *buf=NULL; /* malloc and store the result */ + if (num_bars!=7 && num_bars!=16) + return 0; + for(w=i=0;i<2*num_bars-1;i++) w+=wb[i]; + + dw=1.0*w/(digits*7+4 + (digits-1)*2); + /* check front BSB, and delineators SB */ + dww=0; + for (i=0;i<2;i++) { dww=sqr(wb[i]/dw-1); if (dww>0.4) return 0; } + dww=sqr(wb[i]*0.5/dw-1); if (dww>0.4) return 0; + for (i=1;i 0.4) return 0; + } + } + buf =(char *)malloc( digits+1); if (!buf) return result; + result=(char *)malloc(256+digits+1); + + for(i5=0,i1=3;i1<2*num_bars-1;i1+=6) { /* each digit (2bars+2spaces) */ + for (i4=NumUPC,digit='?',min_err=16e8,i2=0;i2", + i5, buf, dww/((num_bars-6)*2)); + free(buf); + return result; +} + + +/* --------------------------------------------------------- * + * code 3 of 9, 3 thick of 9 bars + * BSBSBSBSB size=7+3*aw aw=2(3), sumS/sumB=2/1? + * two widths: size=1 or size=2or3, digit_width=13(16) + * 5 bars and 4(+1) spaces per digit, last space is not used + * with 2 (or 0) wide bars, 1 (or 3) wide spaces per digit + * => 3 of 9 => max=9*8*7=504 + * evenBB=(0of5)+(2of5) oddSS=(1of4)+(3of4) max=44 + * ToDo: better code -...-.-.. as 046 or 083 (even,even,odd) + */ +#define Num39 (40+4) /* (3of9)=(2of5)(1of4)+(0of5)(3of4), (2of5)(.-..)=0..9 */ +const char *code39= /* rearranged to BBBBBSSSS (bars,spaces) */ + "0..--..-.." +"1-...-.-..""2.-..-.-..""3--....-..""4..-.-.-..""5-.-...-.." +"6.--...-..""7...--.-..""8-..-..-..""9.-.-..-.." +"A-...-..-.""B.-..-..-.""C--.....-.""D..-.-..-.""E-.-....-." +"F.--....-.""G...--..-.""H-..-...-.""I.-.-...-.""J..--...-." +"K-...-...-""L.-..-...-""M--......-""N..-.-...-""O-.-.....-" +"P.--.....-""Q...--...-""R-..-....-""S.-.-....-""T..--....-" +"U-...--...""V.-..--...""W--...-...""X..-.--...""Y-.-..-..." +"Z.--..-...""-...---..."".-..-.-..."" .-.-.-...""*..--.-..." +/* (0of5)(3of4)=(.....)(3of4) store only 3of4? */ +"$.....---.""/.....--.-""+.....-.--""%......---" +"?xxxxxxxxx"; + +/* example: barcode -E -e 39 -b 123abc | gs -sDEVICE=pnggray -r100 */ + +/* return index[] according to sorted values[], big first */ +void sort(int *value, int *idx, int len){ + int i,j; + for (j=0;jdw*2 || wb[ 1]<=dw*2 || wb[ 2]> dw*2) return 0; + if (wb[i-0]>dw*2 || wb[i-1]> dw*2 || wb[i-2]<=dw*2) return 0; +#endif + g_debug(fprintf(stderr," code39 base=%.3f chars=%2d\n ",dw,(num_bars)/5);) + buf =(char *)malloc( 1+(num_bars)/5); if (!buf) return result; + result=(char *)malloc(256+(num_bars)/5); + + for(i5=i1=0;i1<2*num_bars-3;i1+=10) { + /* ToDo: looking for three widest bars/gaps, 0 or 2 bars, 1 or 3 spaces */ + sort(wb+i1,idx,9); + for(err=0,i3=3;i3<9;i3++) // estimate error ?? + err+=sqr(wb[i1+idx[i3]]/dw-1.0); /* narrow=1, wide=2..3 */ + dww+=err; + for(i3=0;i30 && i5", + i5,buf,code39[(crc%44)*10],dww/((num_bars/5)*6)); + free(buf); + return result; +} + +/* code interleaved 2 of 5 numbers-only (10 bars+spaces = 2 decimal digits) + B B B B B <= digit1 bars=1,3,5,... + S S S S S <= digit2 spaces=2,4,6,... + 1122447700 <= weight digit=sum(bit*weight)%11 (except 7+4=11 means 0) + N = narrow bar, W = wide bar, n = narrow space, w = wide space + "NnNn"+interleaved+"WnN" (odd num W, even num w) + 18 digits/inch + see http://www.barcode-1.net/i25code.html (Jun 2009) + minN=0.19mm=0.0075inch + sizeN>0.02inch: sizeW=2..3*sizeN (but constant) + sizeN<0.02inch: sizeW=2.2..3*sizeN + quite zones 10*sizeN or 0.25inch + heigh=max(0.15*symbol_length,0.25inch) + Len = (numChars*(2*(sizeW/sizeN)+3) + 6 + (sizeW/sizeN)) * sizeN + */ +#define Num25 10 +const char *code25= /* is the code sorted randomly? */ +"1-...-2.-..-3--...4..-.-5-.-..6.--..7...--8-..-.9.-.-.0..--."; + +/* example: barcode -E -e i25 -b 123456 >a.eps */ + +/* + add i25, patch by: Chris Lee, 13 Jul 2009 + ToDo: check correctness + */ +char *decode_i25(int *wb, int num_bars){ /* ToDo: char *dest, int len */ + int i, w, i1, i3, i5, crc, idx[7], pos; + double dw, dww, err; char *buf; + char *result=NULL; /* malloc and store the result */ + + int *wb_temp; + int *wb_check; + int code_chars; + + if ((num_bars)%5!=4) return 0; /* chars*5bars + 4 start/stop bars */ + code_chars = ((num_bars - 4) / 5) * 2; +// dw=w*1.0/(9*(num_bars/3)); /* threshold = 1.5..2 */ + + wb_temp = (int *)malloc((code_chars * 5)*sizeof(int)); if (!wb_temp) { return NULL; } + wb_check = (int *)malloc( 7 *sizeof(int)); if (!wb_check) { return NULL; } + + for (i=0; i<(code_chars * 5)+7; i++) { + if (i<4) { wb_check[i] = wb[i]; } /* start sequence NnNn... */ + else if (i > ((code_chars*5)+3)) { /* end sequence ...WnN */ + wb_check[(int)(i-(code_chars*5))] = wb[i]; } + else { + pos = i - 4; + /* reinterleave 0,5,1,6,2,7,3,8,4,9,... to 0,1,2,3,4,5,6,7,8,9,... */ + // pos = (int)(10*(int)(pos/10) + 1.0*(pos%10)/2.0 + 4.5*(pos%2)); + pos = 10*(pos/10) + (pos%10)/2 + 5*(pos&1); + wb_temp[pos] = wb[i]; + } + } + wb = wb_temp; + + /* check start / finish codes */ + sort(wb_check,idx,7); + if (idx[0] != 4 /* widest bar W must be the 4th = 1st of end */ + || wb_check[idx[0]]==wb_check[idx[1]]) { /* exact 1 widest */ + free(wb_temp); + free(wb_check); + g_debug(fprintf(stderr," need exact 1 widest at start of end, abort\n");) + return 0; + } + + for(w=i=0; i<5*code_chars;i++ ) w+=wb[i]; /* summ width */ + dw=w*1.0/(16*(num_bars/5)); /* threshold = 1.5..2 */ + /* whats best and most rigorosely for dw=threshold_width? + * - (1.5..2)*mean_width of every 5th space + * - (1.5..2)*summ(5bars+5spaces)/(13..16) + * - 3/4*summ(three thickest)/3 + */ + dww=crc=0; /* error and checksum (not supported yet) */ +#if 0 /* should we exclude any non-standard code39? */ + /* check for correct start and end symbol * or NwNnWnWnN Narrow+Wide */ + i=2*num_bars-2; + if (wb[ 0]>dw*2 || wb[ 1]<=dw*2 || wb[ 2]> dw*2) return 0; + if (wb[i-0]>dw*2 || wb[i-1]> dw*2 || wb[i-2]<=dw*2) return 0; +#endif + g_debug(fprintf(stderr," code25 base=%.3f chars=%2d\n ",dw,code_chars);) + buf =malloc( code_chars); if (!buf) return result; + result=malloc(256+code_chars); + + for(i5=i1=0;i1<5*code_chars;i1+=5) { + /* ToDo: looking for three widest bars/gaps */ + sort(wb+i1,idx,5); + for(err=0,i3=2;i3<5;i3++) + err+=sqr(wb[i1+idx[i3]]/dw-1.0); /* narrow=1, wide=2..3 */ + dww+=err; + for(i3=0;i30 && i5 3th widest */ + if (wb[i1+idx[1]]==wb[i1+idx[2]]) { + free(buf); free(result); + g_debug(fprintf(stderr," need exact 2 widest, abort\n");) + return 0; + } + } + } + buf[i5]=0; + if (result) // ToDo: fix CRC (not defined?) + sprintf(result,"", i5,buf,code25[(crc%10)*10],dww/((num_bars/5)*6)); + + free(wb_temp); + free(wb_check); + free(buf); + return result; +} + +/* code codabar, numbers only, 4 bars per char (1*wide bar, 1*wide space) + robust code (dot-matrix printer) + characters have same length (distance between 1st bar to 4th space) + ??? codeproject: 6*n+2*w=12 or 5*n+3*w=14 + ??? suchymips.de: + variant 1: 18 different bar widths (Monarch code) + variant 2: 2 different bar widths (Codabar Matrix or ABC-Codabar) + 9..11 digits/inch, N=narrow bar, W=wide bar, n=narrow space, w=wide space + see http://www.barcodeman.com/info/codabar.php (Jul 2009) + minN=0.17mm=0.0065inch, 11 digits/inch = 0.0909 = 14*minN + 2of7 + extensions + extensions: 1 wide bar + 2 wide spaces (no narrow space between 2 wide) + 4 start/stop sets = a/t, b/m, c/ *, d/e + - mean wide = thickest of 4 bars + - mean narrow = thinnest of 4 bars, thinnest of 3 (4) spaces or every 4th + wiki-sample: a31117013206375b (wide spaces between chars) schraeg! + barcode: t1234567t n=N=1 w=W=3 c=12,14 (not const.) + */ +const char *code27= /* 4bars+3spaces, 12+12 chars */ +// 0..11: 3 nbar + 1 wbar + 2 nspace + 1 wspace +"0.....--1....--.2...-..-3--.....4..-..-." +"5-....-.6.-....-7.-..-..8.--....9-..-...-...--..$..--..." +// 12..15: 1 nbar + 3 wbar + 3 nspace + 0 wspace +":-...-.-/-.-...-.-.-.-..+..-.-.-" +// 16..23: 3 nbar + 1 wbar + 1 nspace + 2 wspace +"a..--.-.b.-.-..-c...-.--d...---.t..--.-.n.-.-..-*...-.--e...---." +// EOS +"????????"; + +/* example: barcode -E -e cbr -b 123456 >a.eps */ + +char *decode_27(int *wb, int num_bars){ /* ToDo: char *dest, int len */ + int i, i1, i2, i3, i4, i5, b_idx[4], s_idx[3], b_w[4], s_w[3], + max_wdiff, err=0; + // double dw, err; + char *buf, char27[8]="......"; + char *result=NULL; /* malloc and store the result */ + + int code_chars; +#if 0 // ToDo: verifications nb_max < wb_min etc. + int nb_min=99999, nb_max=0, nb_sum=0, nb_num=0; // narrow bar + int ns_min=99999, ns_max=0, ns_sum=0, ns_num=0; // narrow space + int wb_min=99999, wb_max=0, wb_sum=0, wb_num=0; // wide bar + int ws_min=99999, ws_max=0, ws_sum=0, ws_num=0; // wide space +#endif + + if ((num_bars)%4!=0) return 0; /* chars*4bars */ + code_chars = num_bars / 4; +// dw=w*1.0/(9*(num_bars/3)); /* threshold = 1.5..2 */ + + g_debug(fprintf(stderr," codabar chars= %d\n ", code_chars);) + buf =malloc( code_chars); if (!buf) return result; + result=malloc(256+code_chars); + i5=0; // index output string + for (i=0; i< code_chars; i++) { + b_w[0]=wb[i*8+0]; // 1st bar + b_w[1]=wb[i*8+2]; // 2nd bar + b_w[2]=wb[i*8+4]; // 3th bar + b_w[3]=wb[i*8+6]; // 4th bar + s_w[0]=wb[i*8+1]; // 1st space + s_w[1]=wb[i*8+3]; // 2nd space + s_w[2]=wb[i*8+5]; // 3th space + sort(b_w,b_idx,4); /* idx[0] points to widest bar */ + sort(s_w,s_idx,3); /* idx[0] points to widest space */ + g_debug(for(i3=0;i3<7;i3++)fprintf(stderr,"%02d ",wb[8*i+i3]);) + if (b_w[b_idx[0]]==b_w[b_idx[3]]) { err=__LINE__; break; } // min. 1 wide + narrow + // search max. diff between sorted widths + i2=b_w[b_idx[0]]-b_w[b_idx[1]]; i1=1; max_wdiff=i2; // diff widest - 2nd wides + i2=b_w[b_idx[1]]-b_w[b_idx[2]]; if (i2>max_wdiff) { i1=2; max_wdiff=i2; } + i2=b_w[b_idx[2]]-b_w[b_idx[3]]; if (i2>max_wdiff) { i1=3; max_wdiff=i2; } + if (i1==2) { err=__LINE__; break; } // 2 wide + 2 narrow bars not allowed + for (i3=0;i3<7;i3++) char27[i3]='.'; // reset char + if (i1==1) { // 1 wide bar (1 or 2 wspaces) + if (s_w[s_idx[0]]-s_w[s_idx[1]] + >s_w[s_idx[1]]-s_w[s_idx[2]]) { // 1 wspace + char27[2*b_idx[0]+0]='-'; + char27[2*s_idx[0]+1]='-'; + } else { // assume 2 wspaces + if (s_w[s_idx[2]]==s_w[s_idx[1]]) { err=__LINE__; break; } + char27[2*b_idx[0]+0]='-'; + char27[2*s_idx[0]+1]='-'; + char27[2*s_idx[1]+1]='-'; + } + } else { // assume 3 wbars + 0 wspaces + char27[2*s_idx[0]+0]='-'; + char27[2*s_idx[1]+0]='-'; + char27[2*s_idx[2]+0]='-'; + } + for(i4=24,i3=0;i3<24;i3++) { + if (code27[8*i3+1]==char27[0] + && code27[8*i3+2]==char27[1] + && code27[8*i3+3]==char27[2] + && code27[8*i3+4]==char27[3] + && code27[8*i3+5]==char27[4] + && code27[8*i3+6]==char27[5] + && code27[8*i3+7]==char27[6]) { + i4=i3; buf[i5++]=code27[8*i3]; break; } + } + g_debug(fprintf(stderr," %s c27= %c\n ", char27, ((i5)?buf[i5-1]:'?'));) + if (i4==24) { err=__LINE__; break; } + } // each char + if (i>=code_chars) { // else: inconsistent char + g_debug(fprintf(stderr," code27 base=%.3f chars=%2d\n ",0.0,code_chars);) + } else { + g_debug(fprintf(stderr," error %d at char %d, abort\n", err, i);) + free(result); result=0; + } + buf[i5]=0; + if (result) // ToDo: fix CRC (not defined?) + sprintf(result,"", i5,buf,'?',0.0); + + free(buf); + return result; // free at parent! +} + + +/* + decode barcode + - check main characteristics (num bars, min+max width, etc.) + - detect code type + - the current algorithm measures the width of bars and spaces + called by detect_barcode() + ToDo: - like storing sequence of widths for 1D code + store array of bits for 2D matrix code and decode later + */ +char *decode_barcode(struct box *bb){ /* ToDo: char *dest, int len */ + int i, num_bars, yy, w, ww, dx, xx, cs=JOB->cfg.cs, *wb; + char *result=NULL; /* store the result */ + yy=(bb->y0+bb->y1)/2; + w=ww=bb->x1-bb->x0+1; + num_bars = num_cross(bb->x0,bb->x1,yy,yy,bb->p,JOB->cfg.cs); + if(JOB->cfg.verbose) + fprintf(stderr,"\n# ... detect bars=%3d w=%4d",num_bars,ww); + + /* store width of bars and spaces to buffer wb */ + wb=(int *)malloc(2*num_bars*sizeof(int)); if(!wb) return NULL; + xx=bb->x0; + xx-=loop(bb->p,xx,yy, 8,cs,1,LE); + xx+=loop(bb->p,xx,yy,ww,cs,0,RI); /* start with a bar! */ + for (i=0;i<2*num_bars;i++) { + dx=loop(bb->p,xx,yy,w,cs,1^(i&1),RI); + xx+=dx; + w-=dx; + wb[i]=dx; + } wb[2*num_bars-1]=0; + + /* ToDo: what about probability? if not unique + * - add argument char *result which can be modified or not, + * - or add box2? (would reuse of this code more difficult) + */ + /* test code128 characteristics, ToDo: look for correct start/stop 211 seq. */ + if ((num_bars-1)%3==0 && num_bars>=10 && ww>=11*(num_bars-1)/3+2){ + if (!result) result=decode_code128(wb,num_bars); + } + /* test UPC/EAN characteristics */ + if ((num_bars)%2==0 && num_bars>=8 && ww>=7*(num_bars-6)/2+11 + && ((num_bars-6)/2)%2==0){ /* should be balanced */ + if (!result) result=decode_UPC(wb,num_bars); + } + /* test UPC_addon by Michael van Rooyen, often on books */ + if (num_bars==7 || num_bars==16) + if (!result) result=decode_UPC_addon(wb,num_bars); + + /* test code39 characteristics */ + if ((num_bars)%5==0 && num_bars>14){ + if (!result) result=decode_39(wb,num_bars); + } + /* test i2of5 chartacteristics */ + if ((num_bars)%5==4 && num_bars>3) { + if (!result) result=decode_i25(wb,num_bars); + } + + /* test codabar chartacteristics */ + if ((num_bars)%4==0 && num_bars>3) { + if (!result) result=decode_27(wb,num_bars); + } + + free(wb); + return result; +} + +/* + * taking the list of boxes and search for groups of bars (1D-barcodes) + */ +int detect_barcode(job_t *job) +{ + int j=0, j2=0, bx0, by0, bx1, by1, bdx, bdy, bbx, rm, + x0, y0, dx, dy, cs, y, yl0, yl1, yr0, yr1; + struct box *box2, *box3; + + if(JOB->cfg.verbose) + fprintf(stderr,"# barcode.c detect_barcode "); + x0=y0=0; rm=0; dx=job->src.p.x; dy=job->src.p.y; cs=JOB->cfg.cs; + for_each_data(&(JOB->res.boxlist)) { + box2 = (struct box *)list_get_current(&(JOB->res.boxlist)); + /* detect width (bdx) and height (bdy) of possible bar */ + /* ToDo: better check for a line */ + bdx=box2->x1-box2->x0+1 /* substract correction for skewed bars */ + -loop(box2->p,box2->x1,(box2->y0+box2->y1)/2,box2->x1-box2->x0,cs,0,LE) + -loop(box2->p,box2->x0,(box2->y0+box2->y1)/2,box2->x1-box2->x0,cs,0,RI); + bdy=box2->y1-box2->y0+1; + if (box2->c == PICTURE || box2->c == UNKNOWN) + if (box2->y0 >= y0 && box2->y1 <= y0 + dy /* within frame? */ + && box2->x0 >= x0 && box2->x1 <= x0 + dx + && box2->y1 - box2->y0 > 19 /* min. length */ + && box2->y1 - box2->y0 > 8 * bdx + ) { /* a bar? */ + j=1; /* number of bars */ + bx0=box2->x0; bx1=box2->x1; /* initial values for barcode frame */ + by0=box2->y0; by1=box2->y1; + bbx=bx1-bx0+2; /* width of bar */ + /* this is for scans which are not exactly horizontal */ + yl0=yr0=by0; /* left and right upper bound */ + yl1=yr1=by1; /* left and right lower bound */ + /* --- iteratively take into account next nearest bar --- + * this is important, because bar-boxes are not in right order */ + for (j2=1;j2;) { + j2=0; + /* expand a frame around the potential barcode (bx0,by0,bx1,by1) */ + for_each_data(&(JOB->res.boxlist)) { + box3 = (struct box *)list_get_current(&(JOB->res.boxlist)); + /* bdy=box3->y1-box3->y0+1; */ + if (box2!=box3) + if (box3->c == PICTURE || box3->c == UNKNOWN) + if (box3->y0 >= y0 && box3->y1 <= y0 + dy /* within image */ + && box3->x0 >= x0 && box3->x1 <= x0 + dx + && box3->y1 - box3->y0 > 19 /* min. length */ + && box3->y1 - box3->y0 > 4 * (bdx) /* height > 4*width2 */ + && box3->x1 - box3->x0 < 4 * (bdy) /* width < height/4 = bar */ + && (( abs(box3->y0-by0)y1-by1)y0-yl0)y1-yl1)x0 <= bx0 ) + ||( abs(box3->y0-yr0)y1-yr1)x0 >= bx1 ) ) + && box3->x0 > bx0 - 12*bbx /* startspace=5...10 */ + && box3->x1 < bx1 + 12*bbx + && box3->x0 > bx0 - bdy/2 /* dont glue two barcodes together */ + && box3->x1 < bx1 + bdy/2 /* ex: ean13a.jpg */ + /* dont check bars which already within the frame twice ? */ + && ( box3->x1 > bx1 || box3->x0 < bx0 ) + ) { /* a bar? -> extend barcode frame only in x direction */ + /* take minimum of y to have valid barcode for all y */ + if (box3->x0x0; yl0=box3->y0; yl1=box3->y1; } + if (box3->x1>bx1) { bx1=box3->x1; yr0=box3->y0; yr1=box3->y1; } + if (4*(box3->y1-box3->y0)>3*(by1-by0)) { /* carefull reduce */ + if (box3->y0>by0) by0=box3->y0; /* ToDo: fix for non-horizontal */ + if (box3->y1y1; + } + j++; /* found a near bar and count to num bars */ + j2=1; /* continue searching (endless loop?) */ + } + } end_for_each(&(JOB->res.boxlist)); + } + /* j is the num of bars found above, some inner bars are not counted */ + /* ToDo: better iterative add next nearest bars from sorted list near bars? */ + if (j>5) { + char *code=0; + box2->c=PICTURE; /* BARCODE */ + box2->x0=bx0; box2->y0=by0; + box2->x1=bx1; box2->y1=by1; + /* ToDo: add pointer to decoded text */ + + y=(box2->y0+box2->y1)/2; + if (JOB->cfg.verbose){ + int nbars; + nbars=num_cross(box2->x0,box2->x1,y,y,box2->p,JOB->cfg.cs); + fprintf(stderr,"\n# barcode at %3d %3d size %3d %3d nbars %d (%d)", + bx0,by0,bx1-bx0+1,by1-by0+1,nbars,j); + if (j!=nbars) + fprintf(stderr,"\n# ... trouble: num_found_bars != num_cross"); + /* this is because some far bars are detected before near bars */ + } + /* transport the info to the gocr-output (development) */ + /* ToDo: decode and print/store barcode bars=j */ + code=decode_barcode(box2); /* ToDo: char *dest, int len */ + if (!code) { /* failed */ + code=(char *)malloc(128); + /* ToDo: analyze and output num_bars, width of bars etc. */ + if(code) strncpy(code,"",128); + } + if (JOB->cfg.verbose) + fprintf(stderr,"\n# ... decoded as: %s", code); + setas(box2,code,99); /* ToDo: set a better weight */ + free(code); + + /* remove inner boxes, only if sure!? (ToDo: use cfg.certainty) */ + for_each_data(&(JOB->res.boxlist)) { + box3 = (struct box *)list_get_current(&(JOB->res.boxlist)); + /* bdy=box3->y1-box3->y0+1; */ + if (box2!=box3) + if (box3->c == PICTURE || box3->c == UNKNOWN) + if ( abs(box3->y0-by0)y1-by1)x1 <= bx1 + && box3->x0 >= bx0 + ) { + rm++; /* count removed boxes */ + list_del(&(JOB->res.boxlist),box3); + free_box(box3); + } + } end_for_each(&(JOB->res.boxlist)); + if (JOB->cfg.verbose) + fprintf(stderr,"\n# ... removed boxes: %d", rm); + rm=0; + } + } + } end_for_each(&(JOB->res.boxlist)); + + /* recalculate averages without bars */ + JOB->res.numC=JOB->res.sumX=JOB->res.sumY=j2=0; + for_each_data(&(JOB->res.boxlist)) { + j2++; + box3 = (struct box *)list_get_current(&(JOB->res.boxlist)); + if (box3->c==PICTURE) continue; + JOB->res.numC++; /* count remaining boxes */ + JOB->res.sumX+=box3->x1-box3->x0+1; + JOB->res.sumY+=box3->y1-box3->y0+1; + } end_for_each(&(JOB->res.boxlist)); + if(JOB->cfg.verbose) + fprintf(stderr,"\n# ... boxes %d nC %d\n", + j2, JOB->res.numC); + + /* ToDo: detect DataMatrix = iec16022 + * search square of 2 lines and 2 dottet lines (first no rotation) + * output characteristics pixel size, bytes, code type, etc. + */ + + return 0; +} + diff --git a/.svn/pristine/4f/4f0ae2b31f5b6e92b1f5adab458b612e1004d483.svn-base b/.svn/pristine/4f/4f0ae2b31f5b6e92b1f5adab458b612e1004d483.svn-base new file mode 100644 index 0000000..260188d --- /dev/null +++ b/.svn/pristine/4f/4f0ae2b31f5b6e92b1f5adab458b612e1004d483.svn-base @@ -0,0 +1,67 @@ +/* + * viewpointinfo implementation + * + * Copyright (C) Uwe Hebbelmann, Sebastian Stock, Andre Schemschat + * + * Released under the GPL version 3. + * + */ + +#include +using std::ofstream; + +#include "grid/viewpointinfo.h" +#include +#include +using std::cerr; +using std::endl; +using std::make_pair; + +/** + * CTor. + */ +viewpointinfo::viewpointinfo(string path) +{ + this->path = path; +} + +/** + * The method adds the viewpointinfos of the given grid + * to the internal list + * + * @param grid The grid with the new viewpointinfos + */ +void viewpointinfo::addGrid(const scanGrid *grid) +{ + this->viewpoints.push_back(make_pair(grid->getViewpointX(), + grid->getViewpointZ())); +} + +/** + * This methods writes the internal viewpointslist + * to the file specified by filename + * + * @param filename The path and name of the file + */ +void viewpointinfo::write(string filename) +{ + string tmp(this->path + "/" + filename); + + ofstream stream(tmp.c_str()); + if(!stream.good()) + { + cerr << " Unable to open file ! ("<< filename<<")"<< endl; + exit(1); + } + + + vector::iterator it = this->viewpoints.begin(); + vector::iterator end = this->viewpoints.end(); + + while(it != end) + { + stream << it->first << " " << it->second << endl; + ++it; + } +} + diff --git a/.svn/pristine/4f/4f14e08e25146a2af092af6ccd5a69a4be04c338.svn-base b/.svn/pristine/4f/4f14e08e25146a2af092af6ccd5a69a4be04c338.svn-base new file mode 100644 index 0000000..992bf88 --- /dev/null +++ b/.svn/pristine/4f/4f14e08e25146a2af092af6ccd5a69a4be04c338.svn-base @@ -0,0 +1,36 @@ +/** + * @file + * @brief IO of 3D scans in XYZ file format (i.e., pure 3D data points only) + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SCAN_IO_XYZ_RGB_H__ +#define __SCAN_IO_XYZ_RGB_H__ + +#include +using std::string; +#include +using std::vector; + +#include "scan_io.h" + +/** + * @brief 3D scan loader for XYZ scans (i.e., pure 3D data points only) + * + * The compiled class is available as shared object file + */ +class ScanIO_xyz_rgb : public ScanIO { +public: + virtual int readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss); +}; + +// Since this shared object file is loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/.svn/pristine/4f/4f45a0ae5155c1afa6270bbef96bb49203842960.svn-base b/.svn/pristine/4f/4f45a0ae5155c1afa6270bbef96bb49203842960.svn-base new file mode 100644 index 0000000..2432596 --- /dev/null +++ b/.svn/pristine/4f/4f45a0ae5155c1afa6270bbef96bb49203842960.svn-base @@ -0,0 +1,1250 @@ +/* + * veloslam implementation + * + * Copyright (C) Andreas Nuechter, Li Wei, Li Ming + * + * Released under the GPL version 3. + * + */ + +/** + * @file + * @brief Main programm for dynamic Velodyne SLAM + * + * @author Andreas Nuechter. Jacobs University Bremen, Germany + * @author Li Wei, Wuhan University, China + * @author Li Ming, Wuhan University, China + */ + +#ifdef _MSC_VER +#ifdef OPENMP +#define _OPENMP +#endif +#endif + +#ifdef _OPENMP +#include +#endif + +#ifdef _MSC_VER +#include +#else +#include +#endif + +#include "slam6d/icp6Dapx.h" +#include "slam6d/icp6Dsvd.h" +#include "slam6d/icp6Dquat.h" +#include "slam6d/icp6Dortho.h" +#include "slam6d/icp6Dhelix.h" +#include "slam6d/icp6Ddual.h" +#include "slam6d/icp6Dlumeuler.h" +#include "slam6d/icp6Dlumquat.h" +#include "slam6d/icp6Dquatscale.h" +#include "slam6d/icp6D.h" +#ifdef WITH_CUDA +#include "slam6d/cuda/icp6Dcuda.h" +#endif +#include "slam6d/lum6Deuler.h" +#include "slam6d/lum6Dquat.h" +#include "slam6d/ghelix6DQ2.h" +#include "slam6d/graphToro.h" +#include "slam6d/graphHOG-Man.h" +#include "slam6d/elch6Deuler.h" +#include "slam6d/elch6Dquat.h" +#include "slam6d/elch6DunitQuat.h" +#include "slam6d/elch6Dslerp.h" +#include "slam6d/loopToro.h" +#include "slam6d/loopHOG-Man.h" +#include "slam6d/graphSlam6D.h" +#include "slam6d/gapx6D.h" +#include "slam6d/graph.h" +#include "slam6d/globals.icc" + +#ifndef _MSC_VER +#include +#else +#include "XGetopt.h" +#endif + +#include +#include "veloslam/veloscan.h" +#include "veloslam/debugview.h" +#include "veloslam/tracker.h" +#include "veloslam/trackermanager.h" +#include "veloslam/intersection_detection.h" + +#ifdef _MSC_VER +#define strcasecmp _stricmp +#define strncasecmp _strnicmp +#else +#include +#endif + +#ifdef WITH_METRICS +#include "slam6d/metrics.h" +#endif //WITH_METRICS + +#include /* OpenGL header file */ +#include /* OpenGL utilities header file */ + +#ifdef _MSC_VER +#include +#else +#include +#endif + +#ifndef _MSC_VER +#include +void Sleep(unsigned int mseconds) +{ + clock_t goal = mseconds + clock(); + while (goal > clock()); +} + +#endif + +#define WANT_STREAM ///< define the WANT stream :) + +#include +using std::string; +#include +using std::cout; +using std::cerr; +using std::endl; +#include +using std::ifstream; + +#include +#include +#include + +using namespace boost; +extern boost::mutex keymutex; +extern boost::condition keycond; + + +extern void StartShow(); +extern TrackerManager trackMgr; +extern int sliding_window_size; +extern int current_sliding_window_pos; + +extern Trajectory VelodyneTrajectory; +extern VeloScan* g_pfirstScan; +extern bool g_pause; +extern float constant_static_or_moving; +extern bool DebugDrawFinished ; +extern bool ICPFinished; +extern bool save_animation; + +extern int anim_frame_rate; +extern int scanCount; + +// Handling Segmentation faults and CTRL-C +void sigSEGVhandler (int v) +{ + static bool segfault = false; + if(!segfault) { + segfault = true; + cout << endl + << "# **************************** #" << endl + << " Segmentation fault or Ctrl-C" << endl + << "# **************************** #" << endl + << endl; + + // save frames and close scans + for(ScanVector::iterator it = Scan::allScans.begin(); it != Scan::allScans.end(); ++it) { + (*it)->saveFrames(); + } + cout << "Frames saved." << endl; + Scan::closeDirectory(); + } + exit(-1); +} + + +/** + * Explains the usage of this program's command line parameters + */ +void usage(char* prog) +{ +#ifndef _MSC_VER + const string bold("\033[1m"); + const string normal("\033[m"); +#else + const string bold(""); + const string normal(""); +#endif + cout << endl + << bold << "USAGE " << normal << endl + << " " << prog << " [options] directory" << endl << endl; + cout << bold << "OPTIONS" << normal << endl + + << bold << " -a" << normal << " NR, " << bold << "--algo=" << normal << "NR [default: 1]" << endl + << " selects the minimizazion method for the ICP matching algorithm" << endl + << " 1 = unit quaternion based method by Horn" << endl + << " 2 = singular value decomposition by Arun et al. " << endl + << " 3 = orthonormal matrices by Horn et al." << endl + << " 4 = dual quaternion method by Walker et al." << endl + << " 5 = helix approximation by Hofer & Potmann" << endl + << " 6 = small angle approximation" << endl + << " 7 = Lu & Milios style, i.e., uncertainty based, with Euler angles" << endl + << " 8 = Lu & Milios style, i.e., uncertainty based, with Quaternion" << endl + << " 9 = unit quaternion with scale method by Horn" << endl + << endl + << bold << " -A" << normal << " NR, " << bold << "--anim=" << normal << "NR [default: first and last frame only]" << endl + << " if specified, use only every NR-th frame for animation" << endl + << endl + << bold << " -c" << normal << " NR, " << bold << "--cldist=" << normal << "NR [default: 500]" << endl + << " specifies the maximal distance for closed loops" << endl + << endl + << bold << " -C" << normal << " NR, " << bold << "--clpairs=" << normal << "NR [default: 6]" << endl + << " specifies the minimal number of points for an overlap. If not specified" << endl + << " cldist is used instead" << endl + << endl + << bold << " --cache" << normal << endl + << " turns on cached k-d tree search" << endl + << endl + << bold << " -d" << normal << " NR, " << bold << "--dist=" << normal << "NR [default: 25]" << endl + << " sets the maximal point-to-point distance for matching with ICP to 'units'" << endl + << " (unit of scan data, e.g. cm)" << endl + << endl + << bold << " -D" << normal << " NR, " << bold << "--distSLAM=" + << normal << "NR [default: same value as -d option]" << endl + << " sets the maximal point-to-point distance for matching with SLAM to 'units'" << endl + << " (unit of scan data, e.g. cm)" << endl + << endl + << bold << " --DlastSLAM" << normal << " NR [default not set]" << endl + << " sets the maximal point-to-point distance for the final SLAM correction," << endl + << " if final SLAM is not required don't set it." << endl + << endl + << bold << " -e" << normal << " NR, " << bold << "--end=" << normal << "NR" << endl + << " end after scan NR" << endl + << endl + << bold << " --exportAllPoints" << normal << endl + << " writes all registered reduced points to the file points.pts before" << endl + << " slam6D terminated" << endl + << endl + << bold << " --epsICP=" << normal << "NR [default: 0.00001]" << endl + << " stop ICP iteration if difference is smaller than NR" << endl + << endl + << bold << " --epsSLAM=" << normal << " NR [default: 0.5]" << endl + << " stop SLAM iteration if average difference is smaller than NR" << endl + << endl + << bold << " -f" << normal << " F, " << bold << "--format=" << normal << "F" << endl + << " using shared library F for input" << endl + << " (chose F from {uos, uos_map, uos_rgb, uos_frames, uos_map_frames, old, rts, rts_map, ifp, riegl_txt, riegl_rgb, riegl_bin, zahn, ply, wrl, xyz, zuf, iais, front, x3d, rxp, ais })" << endl + << endl + << bold << " -G" << normal << " NR, " << bold << "--graphSlam6DAlgo=" << normal << "NR [default: 0]" << endl + << " selects the minimizazion method for the SLAM matching algorithm" << endl + << " 0 = no global relaxation technique" << endl + << " 1 = Lu & Milios extension using euler angles due to Borrmann et al." << endl + << " 2 = Lu & Milios extension using using unit quaternions" << endl + << " 3 = HELIX approximation by Hofer and Pottmann" << endl + << " 4 = small angle approximation" << endl + << " 5 = TORO" << endl + << " 6 = HOG-Man" << endl + << endl + << bold << " -i" << normal << " NR, " << bold << "--iter=" << normal << "NR [default: 50]" << endl + << " sets the maximal number of ICP iterations to " << endl + << endl + << bold << " -I" << normal << " NR, " << bold << "--iterSLAM=" << normal << "NR [default: 0]" << endl + << " sets the maximal number of iterations for SLAM to " << endl + << " (if not set, graphSLAM is not executed)" << endl + << endl + << bold << " -l" << normal << " NR, " << bold << "--loopsize=" << normal << "NR [default: 20]" << endl + << " sets the size of a loop, i.e., a loop must exceed of scans" << endl + << endl + << bold << " -L" << normal << " NR, " << bold << "--loop6DAlgo=" << normal << "NR [default: 0]" << endl + << " selects the method for closing the loop explicitly" << endl + << " 0 = no loop closing technique" << endl + << " 1 = euler angles" << endl + << " 2 = quaternions " << endl + << " 3 = unit quaternions" << endl + << " 4 = SLERP (recommended)" << endl + << " 5 = TORO" << endl + << " 6 = HOG-Man" << endl + << endl + << bold << " --metascan" << normal << endl + << " Match current scan against a meta scan of all previous scans (default match against the last scan only)" << endl + << endl + << bold << " -m" << normal << " NR, " << bold << "--max=" << normal << "NR" << endl + << " neglegt all data points with a distance larger than NR 'units'" << endl + << endl + << bold << " -M" << normal << " NR, " << bold << "--min=" << normal << "NR" << endl + << " neglegt all data points with a distance smaller than NR 'units'" << endl + << endl + << bold << " -n" << normal << " FILE, " << bold << "--net=" << normal << "FILE" << endl + << " specifies the file that includes the net structure for SLAM" << endl + << endl + << bold << " -O" << normal << "NR (optional), " << bold << "--octree=" << normal << "NR (optional)" << endl + << " use randomized octree based point reduction (pts per voxel=)" << endl + << " requires " << bold << "-r" << normal <<" or " << bold << "--reduce" << endl + << endl + << bold << " -p, --trustpose" << normal << endl + << " Trust the pose file, do not extrapolate the last transformation." << endl + << " (just for testing purposes, or gps input.)" << endl + << endl + << bold << " -q, --quiet" << normal << endl + << " Quiet mode. Suppress (most) messages" << endl + << endl + << bold << " -Q, --veryquiet" << normal << endl + << " Very quiet mode. Suppress all messages, except in case of error." << endl + << endl + << bold << " -S, --scanserver" << normal << endl + << " Use the scanserver as an input method and handling of scan data" << endl + << endl + << bold << " -r" << normal << " NR, " << bold << "--reduce=" << normal << "NR" << endl + << " turns on octree based point reduction (voxel size=)" << endl + << endl + << bold << " -R" << normal << " NR, " << bold << "--random=" << normal << "NR" << endl + << " turns on randomized reduction, using about every -th point only" << endl + << endl + << bold << " -s" << normal << " NR, " << bold << "--start=" << normal << "NR" << endl + << " start at scan NR (i.e., neglects the first NR scans)" << endl + << " [ATTENTION: counting naturally starts with 0]" << endl + << endl + << bold << " -t" << normal << " NR, " << bold << "--nns_method=" << normal << "NR [default: 1]" << endl + << " selects the Nearest Neighbor Search Algorithm" << endl + << " 0 = simple k-d tree " << endl + << " 1 = cached k-d tree " << endl + << " 2 = ANNTree " << endl + << " 3 = BOCTree " << endl + << endl + << bold << " -u" << normal <<", "<< bold<<"--cuda" << normal << endl + << " this option activates icp running on GPU instead of CPU"< +class WriteOnce { +public: + WriteOnce(T& value) : value(value), written(false) {} + WriteOnce& operator=(const T& other) { if(!written) { value = other; written = true; } return *this; } + operator T() const { return value; } +private: + T& value; + bool written; +}; + +/** + * Parsing of a formats file in the scan directory for default type and scan + * index ranges without overwriting user set parameters. Does nothing if + * file doesn't exist. + * + * @param dir directory the scans and format file are contained in + * @param type which ScanIO to use for the scans in that directory + * @param start index for the first valid scan + * @param end index for the last valid scan + */ +void parseFormatFile(string& dir, WriteOnce& type, WriteOnce& start, WriteOnce& end) +{ + ifstream file((dir+"format").c_str()); + if(!file.good()) return; + + string line, key, value, format; + while(getline(file, line)) { + size_t pos = line.find('='); + key = trim(line.substr(0, pos - 0)); + value = trim(line.substr(pos+1)); + if(key == "format") { + try { + format = value; + type = formatname_to_io_type(format.c_str()); + } catch (...) { // runtime_error + cerr << "Error while parsing format file: Format '" << format << "' unknown." << endl; + break; + } + } else if(key == "start") { + stringstream str(value.c_str()); + int s; + str >> s; + start = s; + } else if(key == "end") { + stringstream str(value.c_str()); + int e; + str >> e; + end = e; + } else { + cerr << "Error while parsing format file: Unknown key '" << key << "'" << endl; + break; + } + } +} + +/** A function that parses the command-line arguments and sets the respective flags. + * @param argc the number of arguments + * @param argv the arguments + * @param dir the directory + * @param red using point reduction? + * @param rand use randomized point reduction? + * @param mdm maximal distance match + * @param mdml maximal distance match for SLAM + * @param mni maximal number of iterations + * @param start starting at scan number 'start' + * @param end stopping at scan number 'end' + * @param maxDist - maximal distance of points being loaded + * @param minDist - minimal distance of points being loaded + * @param quiet switches on/off the quiet mode + * @param veryQuiet switches on/off the 'very quiet' mode + * @param extrapolate_pose - i.e., extrapolating the odometry by the last transformation + * (vs. taking the pose file as exact) + * @param meta match against all scans (= meta scan), or against the last scan only??? + * @param anim selects the rotation representation for the matching algorithm + * @param mni_lum sets the maximal number of iterations for SLAM + * @param net specifies the file that includes the net structure for SLAM + * @param cldist specifies the maximal distance for closed loops + * @param epsilonICP stop ICP iteration if difference is smaller than this value + * @param epsilonSLAM stop SLAM iteration if average difference is smaller than this value + * @param algo specfies the used algorithm for rotation computation + * @param lum6DAlgo specifies the used algorithm for global SLAM correction + * @param loopsize defines the minimal loop size + * @param tracking select sematic algorithm of none/classification/tracking on/off the point classification mode + * @return 0, if the parsing was successful. 1 otherwise + */ +int parseArgs(int argc, char **argv, string &dir, double &red, int &rand, + double &mdm, double &mdml, double &mdmll, + int &mni, int &start, int &end, int &maxDist, int &minDist, bool &quiet, bool &veryQuiet, + bool &extrapolate_pose, bool &meta, int &algo,int &tracking, int &loopSlam6DAlgo, int &lum6DAlgo, int &anim, + int &mni_lum, string &net, double &cldist, int &clpairs, int &loopsize,int &trackingAlgo, + double &epsilonICP, double &epsilonSLAM, int &nns_method, bool &exportPts, double &distLoop, + int &iterLoop, double &graphDist, int &octree, bool &cuda_enabled, IOType &type, + bool& scanserver) +{ + int c; + // from unistd.h: + extern char *optarg; + extern int optind; + + WriteOnce w_type(type); + WriteOnce w_start(start), w_end(end); + + /* options descriptor */ + // 0: no arguments, 1: required argument, 2: optional argument + static struct option longopts[] = { + { "format", required_argument, 0, 'f' }, + { "algo", required_argument, 0, 'a' }, + { "tracking", required_argument, 0, 'b' }, + { "track_value", required_argument, 0, 'T' }, + { "nns_method", required_argument, 0, 't' }, + { "loop6DAlgo", required_argument, 0, 'L' }, + { "graphSlam6DAlgo", required_argument, 0, 'G' }, + { "net", required_argument, 0, 'n' }, + { "iter", required_argument, 0, 'i' }, + { "iterSLAM", required_argument, 0, 'I' }, + { "max", required_argument, 0, 'm' }, + { "loopsize", required_argument, 0, 'l' }, + { "cldist", required_argument, 0, 'c' }, + { "clpairs", required_argument, 0, 'C' }, + { "min", required_argument, 0, 'M' }, + { "dist", required_argument, 0, 'd' }, + { "distSLAM", required_argument, 0, 'D' }, + { "start", required_argument, 0, 's' }, + { "end", required_argument, 0, 'e' }, + { "reduce", required_argument, 0, 'r' }, + { "octree", optional_argument, 0, 'O' }, + { "random", required_argument, 0, 'R' }, + { "quiet", no_argument, 0, 'q' }, + { "veryquiet", no_argument, 0, 'Q' }, + { "trustpose", no_argument, 0, 'p' }, + { "anim", required_argument, 0, 'A' }, + { "metascan", no_argument, 0, '2' }, // use the long format only + { "DlastSLAM", required_argument, 0, '4' }, // use the long format only + { "epsICP", required_argument, 0, '5' }, // use the long format only + { "epsSLAM", required_argument, 0, '6' }, // use the long format only + { "exportAllPoints", no_argument, 0, '8' }, + { "distLoop", required_argument, 0, '9' }, // use the long format only + { "iterLoop", required_argument, 0, '1' }, // use the long format only + { "graphDist", required_argument, 0, '3' }, // use the long format only + { "cuda", no_argument, 0, 'u' }, // cuda will be enabled + { "trackingAlgo", required_argument, 0, 'y'},//tracking algorithm + { "scanserver", no_argument, 0, 'S' }, + { 0, 0, 0, 0} // needed, cf. getopt.h + }; + + cout << endl; + while ((c = getopt_long(argc, argv, "T:O:v:f:A:G:L:a:b:t:r:R:d:D:i:l:I:c:C:n:S:s:e:m:M:y:u:q:Q:p", longopts, NULL)) != -1) + switch (c) + { + case 'a': + algo = atoi(optarg); + if ((algo < 0) || (algo > 9)) { + cerr << "Error: ICP Algorithm not available." << endl; + exit(1); + } + break; + case 'b': + tracking = atoi(optarg); + break; + case 'v': + save_animation = true; + anim_frame_rate = atoi(optarg); + break; + case 'T': + constant_static_or_moving = atof(optarg); + if ((constant_static_or_moving < 0) || (constant_static_or_moving > 300)) { + cerr << "Error: constant_static_or_moving not available." << endl; + exit(1); + } + break; + case 't': + nns_method = atoi(optarg); + if ((nns_method < 0) || (nns_method > 3)) { + cerr << "Error: NNS Method not available." << endl; + exit(1); + } + break; + case 'L': + loopSlam6DAlgo = atoi(optarg); + if (loopSlam6DAlgo < 0 || loopSlam6DAlgo > 6) { + cerr << "Error: global loop closing algorithm not available." << endl; + exit(1); + } + break; + case 'G': + lum6DAlgo = atoi(optarg); + if ((lum6DAlgo < 0) || (lum6DAlgo > 6)) { + cerr << "Error: global relaxation algorithm not available." << endl; + exit(1); + } + break; + case 'c': + cldist = atof(optarg); + break; + case 'C': + clpairs = atoi(optarg); + break; + case 'l': + loopsize = atoi(optarg); + break; + case 'r': + red = atof(optarg); + break; + case 'O': + if (optarg) { + octree = atoi(optarg); + } else { + octree = 1; + } + break; + case 'R': + rand = atoi(optarg); + break; + case 'd': + mdm = atof(optarg); + break; + case 'D': + mdml = atof(optarg); + break; + case 'i': + mni = atoi(optarg); + break; + case 'I': + mni_lum = atoi(optarg); + break; + case 'n': + net = optarg; + break; + case 's': + w_start = atoi(optarg); + if (w_start < 0) { cerr << "Error: Cannot start at a negative scan number.\n"; exit(1); } + break; + case 'e': + w_end = atoi(optarg); + if (w_end < 0) { cerr << "Error: Cannot end at a negative scan number.\n"; exit(1); } + if (w_end < w_start) { cerr << "Error: cannot be smaller than .\n"; exit(1); } + break; + case 'm': + maxDist = atoi(optarg); + break; + case 'M': + minDist = atoi(optarg); + break; + case 'q': + quiet = true; + break; + case 'Q': + quiet = veryQuiet = true; + break; + case 'p': + extrapolate_pose = false; + break; + case 'y': + trackingAlgo=atoi(optarg);//choose tracking algorithm + break; + case 'A': + anim = atoi(optarg); + break; + case '2': // = --metascan + meta = true; + break; + case '4': // = --DlastSLAM + mdmll = atof(optarg); + break; + case '5': // = --epsICP + epsilonICP = atof(optarg); + break; + case '6': // = --epsSLAM + epsilonSLAM = atof(optarg); + break; + case '8': // not used + exportPts = true; + break; + case '9': // = --distLoop + distLoop = atof(optarg); + break; + case '1': // = --iterLoop + iterLoop = atoi(optarg); + break; + case '3': // = --graphDist + graphDist = atof(optarg); + break; + case 'f': + try { + w_type = formatname_to_io_type(optarg); + } catch (...) { // runtime_error + cerr << "Format " << optarg << " unknown." << endl; + abort(); + } + break; + case 'u': + cuda_enabled = true; + break; + case 'S': + scanserver = true; // maybe some errors. + break; + case '?': + usage(argv[0]); + return 1; + default: + abort (); + } + + scanserver = true; + if (optind != argc-1) + { + cerr << "\n*** Directory missing ***" << endl; + usage(argv[0]); + } + dir = argv[optind]; + +#ifndef _MSC_VER + if (dir[dir.length()-1] != '/') dir = dir + "/"; +#else + if (dir[dir.length()-1] != '\\') dir = dir + "\\"; +#endif + + parseFormatFile(dir, w_type, w_start, w_end); + + return 0; +} + +/** + * This function is does all the matching stuff + * it iterates over all scans using the algorithm objects to calculate new poses + * objects could be NULL if algorithm should not be used + * + * @param cldist maximal distance for closing loops + * @param loopsize minimal loop size + * @param allScans Contains all laser scans + * @param my_icp6D the ICP implementation + * @param meta_icp math ICP against a metascan + * @param nns_method Indicates the nearest neigbor search method to be used + * @param my_loopSlam6D used loopoptimizer + * @param my_graphSlam6D used global optimization + * @param nrIt The number of iterations the global SLAM-algorithm will run + * @param epsilonSLAM epsilon for global SLAM iteration + * @param mdml maximal distance match for global SLAM + * @param mdmll maximal distance match for global SLAM after all scans ar matched + */ +void matchGraph6Dautomatic(double cldist, int loopsize, vector allScans, icp6D *my_icp6D, + bool meta_icp, int nns_method, bool cuda_enabled, + loopSlam6D *my_loopSlam6D, graphSlam6D *my_graphSlam6D, int nrIt, + double epsilonSLAM, double mdml, double mdmll, double graphDist, + bool &eP, IOType type) +{ + double cldist2 = sqr(cldist); + + // list of scan for metascan + vector < Scan* > metas; + + // graph for loop optimization + graph_t g; + + int n = allScans.size(); + + int loop_detection = 0; + double dist, min_dist = -1; + int first = 0, last = 0; + + for(int i = 1; i < n; i++) { + cout << i << "/" << n << endl; + + add_edge(i-1, i, g); + + if(eP) { + allScans[i]->mergeCoordinatesWithRoboterPosition(allScans[i-1]); + } + + //Hack to get all icp transformations into the .frames Files + if(i == n-1 && my_icp6D != NULL && my_icp6D->get_anim() == -2) { + my_icp6D->set_anim(-1); + } + + /*if(i == 85 || i == 321 || i == 533) { + my_icp6D->set_anim(1); + }*/ + + if(my_icp6D != NULL){ + cout << "ICP" << endl; + // Matching strongly linked scans with ICPs + if(meta_icp) + { +// metas.push_back(allScans[i - 1]); +// MetaScan* meta_scan = new MetaScan(metas); +// my_icp6D->match(meta_scan, allScans[i]); + //delete meta_scan; + } else { + switch(type) { + case UOS_MAP: + case UOS_MAP_FRAMES: + my_icp6D->match(allScans[0], allScans[i]); + break; + case RTS_MAP: + //untested (and could not work) + //if(i < 220-22 && i > 250-22) match(allScans[0], CurrentScan); + my_icp6D->match(allScans[0], allScans[i]); + break; + default: + my_icp6D->match(allScans[i - 1], allScans[i]); + break; + } + } + } else { + double id[16]; + M4identity(id); + allScans[i]->transform(id, Scan::ICP, 0); + } + + /*if(i == 85 || i == 321 || i == 533) { + my_icp6D->set_anim(-2); + }*/ + + if(loop_detection == 1) { + loop_detection = 2; + } + + for(int j = 0; j < i - loopsize; j++) { + dist = Dist2(allScans[j]->get_rPos(), allScans[i]->get_rPos()); + if(dist < cldist2) { + loop_detection = 1; + if(min_dist < 0 || dist < min_dist) { + min_dist = dist; + first = j; + last = i; + } + } + } + + if(loop_detection == 2) { + loop_detection = 0; + min_dist = -1; + + if(my_loopSlam6D != NULL) { + cout << "Loop close: " << first << " " << last << endl; + my_loopSlam6D->close_loop(allScans, first, last, g); + add_edge(first, last, g); + } + + if(my_graphSlam6D != NULL && mdml > 0) { + int j = 0; + double ret; + do { + // recalculate graph + Graph *gr = new Graph(i + 1, cldist2, loopsize); + cout << "Global: " << j << endl; + ret = my_graphSlam6D->doGraphSlam6D(*gr, allScans, 1); + delete gr; + j++; + } while (j < nrIt && ret > epsilonSLAM); + } + } + } + + if(loop_detection == 1 && my_loopSlam6D != NULL) { + cout << "Loop close: " << first << " " << last << endl; + my_loopSlam6D->close_loop(allScans, first, last, g); + add_edge(first, last, g); + } + + if(my_graphSlam6D != NULL && mdml > 0.0) { + int j = 0; + double ret; + do { + // recalculate graph + Graph *gr = new Graph(n, cldist2, loopsize); + cout << "Global: " << j << endl; + ret = my_graphSlam6D->doGraphSlam6D(*gr, allScans, 1); + delete gr; + j++; + } while (j < nrIt && ret > epsilonSLAM); + } + + if(my_graphSlam6D != NULL && mdmll > 0.0) { + my_graphSlam6D->set_mdmll(mdmll); + int j = 0; + double ret; + do { + // recalculate graph + Graph *gr = new Graph(n, sqr(graphDist), loopsize); + cout << "Global: " << j << endl; + ret = my_graphSlam6D->doGraphSlam6D(*gr, allScans, 1); + delete gr; + j++; + } while (j < nrIt && ret > epsilonSLAM); + } +} + +icp6Dminimizer * CreateICPalgo( int algo , bool quiet ) +{ + icp6Dminimizer *my_icp6Dminimizer = 0; + switch (algo) { + case 1 : + my_icp6Dminimizer = new icp6D_QUAT(quiet); + break; + case 2 : + my_icp6Dminimizer = new icp6D_SVD(quiet); + break; + case 3 : + my_icp6Dminimizer = new icp6D_ORTHO(quiet); + break; + case 4 : + my_icp6Dminimizer = new icp6D_DUAL(quiet); + break; + case 5 : + my_icp6Dminimizer = new icp6D_HELIX(quiet); + break; + case 6 : + my_icp6Dminimizer = new icp6D_APX(quiet); + break; + case 7 : + my_icp6Dminimizer = new icp6D_LUMEULER(quiet); + break; + case 8 : + my_icp6Dminimizer = new icp6D_LUMQUAT(quiet); + break; + case 9 : + my_icp6Dminimizer = new icp6D_QUAT_SCALE(quiet); + break; + } + return my_icp6Dminimizer; + } + +int FinalSLAM( double &red, int &rand, + double &mdm, double &mdml, double &mdmll, + int &mni, int &start, int &end, int &maxDist, int &minDist, bool &quiet, bool &veryQuiet, + bool &eP, bool &meta, int &algo, int &loopSlam6DAlgo, int &lum6DAlgo, int &anim, + int &mni_lum, string &net, double &cldist, int &clpairs, int &loopsize, + double &epsilonICP, double &epsilonSLAM, int &nns_method, bool &exportPts, double &distLoop, + int &iterLoop, double &graphDist, int &octree, bool &cuda_enabled, IOType &type + ) +{ + + icp6Dminimizer *my_icp6Dminimizer = 0; + my_icp6Dminimizer= CreateICPalgo( algo, quiet); + + if (mni_lum == -1 && loopSlam6DAlgo == 0) + { + icp6D *my_icp = 0; + if (cuda_enabled) { +#ifdef WITH_CUDA + my_icp = new icp6Dcuda(my_icp6Dminimizer, mdm, mni, quiet, meta, rand, eP, + anim, epsilonICP, nns_method, cuda_enabled); +#else + cout << "slam6d was not compiled for excuting CUDA code" << endl; +#endif + } else { + my_icp = new icp6D(my_icp6Dminimizer, mdm, mni, quiet, meta, rand, eP, + anim, epsilonICP, nns_method, cuda_enabled); + } + + if (my_icp) my_icp->doICP(Scan::allScans); + delete my_icp; + } else if (clpairs > -1) { + //!!!!!!!!!!!!!!!!!!!!!!!! + icp6D *my_icp = 0; + if (cuda_enabled) { +#ifdef WITH_CUDA + my_icp = new icp6Dcuda(my_icp6Dminimizer, mdm, mni, quiet, meta, rand, eP, + anim, epsilonICP, nns_method, cuda_enabled); +#else + cout << "slam6d was not compiled for excuting CUDA code" << endl; +#endif + } else { + my_icp = new icp6D(my_icp6Dminimizer, mdm, mni, quiet, meta, rand, eP, + anim, epsilonICP, nns_method, cuda_enabled); + } + my_icp->doICP(Scan::allScans); + graphSlam6D *my_graphSlam6D = new lum6DEuler(my_icp6Dminimizer, mdm, mdml, mni, quiet, meta, + rand, eP, anim, epsilonICP, nns_method, epsilonSLAM); + my_graphSlam6D->matchGraph6Dautomatic(Scan::allScans, mni_lum, clpairs, loopsize); + //!!!!!!!!!!!!!!!!!!!!!!!! + } else { + graphSlam6D *my_graphSlam6D = 0; + switch (lum6DAlgo) { + case 1 : + my_graphSlam6D = new lum6DEuler(my_icp6Dminimizer, mdm, mdml, mni, quiet, meta, rand, eP, + anim, epsilonICP, nns_method, epsilonSLAM); + break; + case 2 : + my_graphSlam6D = new lum6DQuat(my_icp6Dminimizer, mdm, mdml, mni, quiet, meta, rand, eP, + anim, epsilonICP, nns_method, epsilonSLAM); + break; + case 3 : + my_graphSlam6D = new ghelix6DQ2(my_icp6Dminimizer, mdm, mdml, mni, quiet, meta, rand, eP, + anim, epsilonICP, nns_method, epsilonSLAM); + break; + case 4 : + my_graphSlam6D = new gapx6D(my_icp6Dminimizer, mdm, mdml, mni, quiet, meta, rand, eP, + anim, epsilonICP, nns_method, epsilonSLAM); + break; + case 5 : + my_graphSlam6D = new graphToro(my_icp6Dminimizer, mdm, mdml, mni, quiet, meta, rand, eP, + -2, epsilonICP, nns_method, epsilonSLAM); + break; + case 6 : + my_graphSlam6D = new graphHOGMan(my_icp6Dminimizer, mdm, mdml, mni, quiet, meta, rand, eP, + -2, epsilonICP, nns_method, epsilonSLAM); + break; + } + // Construct Network + if (net != "none") { + icp6D *my_icp = 0; + if (cuda_enabled) { +#ifdef WITH_CUDA + my_icp = new icp6Dcuda(my_icp6Dminimizer, mdm, mni, quiet, meta, rand, eP, + anim, epsilonICP, nns_method); +#else + cout << "slam6d was not compiled for excuting CUDA code" << endl; +#endif + } else { + my_icp = new icp6D(my_icp6Dminimizer, mdm, mni, quiet, meta, rand, eP, + anim, epsilonICP, nns_method); + } + my_icp->doICP(Scan::allScans); + + Graph* structure; + structure = new Graph(net); + my_graphSlam6D->doGraphSlam6D(*structure, Scan::allScans, mni_lum); + if(mdmll > 0.0) { + my_graphSlam6D->set_mdmll(mdmll); + my_graphSlam6D->doGraphSlam6D(*structure, Scan::allScans, mni_lum); + } + + } else { + icp6D *my_icp = 0; + if(algo > 0) { + if (cuda_enabled) { +#ifdef WITH_CUDA + my_icp = new icp6Dcuda(my_icp6Dminimizer, mdm, mni, quiet, meta, rand, eP, + anim, epsilonICP, nns_method); +#else + cout << "slam6d was not compiled for excuting CUDA code" << endl; +#endif + } else { + my_icp = new icp6D(my_icp6Dminimizer, mdm, mni, quiet, meta, rand, eP, + anim, epsilonICP, nns_method); + } + + loopSlam6D *my_loopSlam6D = 0; + switch(loopSlam6DAlgo) { + case 1: + my_loopSlam6D = new elch6Deuler(veryQuiet, my_icp6Dminimizer, distLoop, iterLoop, + rand, eP, 10, epsilonICP, nns_method); + break; + case 2: + my_loopSlam6D = new elch6Dquat(veryQuiet, my_icp6Dminimizer, distLoop, iterLoop, + rand, eP, 10, epsilonICP, nns_method); + break; + case 3: + my_loopSlam6D = new elch6DunitQuat(veryQuiet, my_icp6Dminimizer, distLoop, iterLoop, + rand, eP, 10, epsilonICP, nns_method); + break; + case 4: + my_loopSlam6D = new elch6Dslerp(veryQuiet, my_icp6Dminimizer, distLoop, iterLoop, + rand, eP, 10, epsilonICP, nns_method); + break; + case 5: + my_loopSlam6D = new loopToro(veryQuiet, my_icp6Dminimizer, distLoop, iterLoop, + rand, eP, 10, epsilonICP, nns_method); + break; + case 6: + my_loopSlam6D = new loopHOGMan(veryQuiet, my_icp6Dminimizer, distLoop, iterLoop, + rand, eP, 10, epsilonICP, nns_method); + break; + } + + matchGraph6Dautomatic(cldist, loopsize, Scan::allScans, my_icp, meta, + nns_method, cuda_enabled, my_loopSlam6D, my_graphSlam6D, + mni_lum, epsilonSLAM, mdml, mdmll, graphDist, eP, type); + delete my_icp; + if(loopSlam6DAlgo > 0) { + delete my_loopSlam6D; + } + } + if(my_graphSlam6D > 0) { + delete my_graphSlam6D; + } + } + } + delete my_icp6Dminimizer; + return 0; + } + +void MatchTwoScan(icp6D *my_icp, VeloScan* currentScan, int scanCount, bool eP ) +{ + Scan *PreviousScan = 0; + //////////////////////ICP////////////////////// + if (scanCount > 0) + { + PreviousScan =Scan::allScans[scanCount-1]; + // extrapolate odometry // 以前一帧的坐标为基准 + if (eP) + currentScan->mergeCoordinatesWithRoboterPosition(PreviousScan); + + my_icp->match(PreviousScan, currentScan); + } +} +/** + * Main program for 6D SLAM. + * Usage: bin/slam6D 'dir', + * with 'dir' the directory of a set of scans + * ... + */ +int main(int argc, char **argv) +{ + +#ifndef _MSC_VER + glutInit(&argc, argv); +#else + glutInit(&argc, argv); +#endif + + signal (SIGSEGV, sigSEGVhandler); + signal (SIGINT, sigSEGVhandler); + + cout << "slam6D - A highly efficient SLAM implementation based on scan matching" << endl + << " with 6 degrees of freedom" << endl + << "(c) Jacobs University Bremen gGmbH, Germany, since 2009" << endl + << " University of Osnabrueck, Germany, 2006 - 2009" << endl << endl; + + if (argc <= 1) { + usage(argv[0]); + } + + // parsing the command line parameters + // init, default values if not specified + string dir; + double red = -1.0, mdmll = -1.0, mdml = 25.0, mdm = 25.0; + int rand = -1, mni = 50; + int start = 0, end = -1; + bool quiet = false; + bool veryQuiet = false; + int maxDist = -1; + int minDist = -1; + bool eP = true; // should we extrapolate the pose?? + bool meta = false; // match against meta scan, or against LAST scan only? + int algo = 1; + int mni_lum = -1; + double cldist = 500; + int clpairs = -1; + int loopsize = 20; + string net = "none"; + int anim = -1; + double epsilonICP = 0.00001; + double epsilonSLAM = 0.5; + int nns_method = simpleKD; + bool exportPts = false; + int loopSlam6DAlgo = 0; + int lum6DAlgo = 0; + int tracking = 1; + double distLoop = 700.0; + int iterLoop = 100; + double graphDist = cldist; + int octree = 0; // employ randomized octree reduction? + bool cuda_enabled = false; + IOType type = UOS; + int trackingAlgo=0; + bool scanserver = false; + + parseArgs(argc, argv, dir, red, rand, mdm, mdml, mdmll, mni, start, end, + maxDist, minDist, quiet, veryQuiet, eP, meta, algo, tracking, + loopSlam6DAlgo, lum6DAlgo, anim, + mni_lum, net, cldist, clpairs, loopsize, trackingAlgo,epsilonICP, epsilonSLAM, + nns_method, exportPts, distLoop, iterLoop, graphDist, octree, cuda_enabled, type, + scanserver); + + + cout << "VeloSLAM will proceed with the following parameters:" << endl; + + //@@@ to do :-) + icp6Dminimizer *my_icp6Dminimizer = 0; + my_icp6Dminimizer= CreateICPalgo( algo, quiet); + icp6D *my_icp = 0; + my_icp = new icp6D(my_icp6Dminimizer, mdm, mni, quiet, meta, rand, eP, + anim, epsilonICP, nns_method, cuda_enabled); + + if (my_icp==0) + { + cerr<< "can not create ICP " << endl; + exit(0); + } + + VeloScan::openDirectory(scanserver, dir, type, start, end); + + if(VeloScan::allScans.size() == 0) { + cerr << "No scans found. Did you use the correct format?" << endl; + exit(-1); + } + + double eu[6] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}; + vector ptss; + veryQuiet =true; + + if(!veryQuiet) + StartShow(); + ICPFinished =true; + + //Main Loop for ICP with Moving Object Detection and Tracking + for(ScanVector::iterator it = Scan::allScans.begin(); + it != Scan::allScans.end(); + ++it) + { + while(DebugDrawFinished ==false && !veryQuiet) + { + Sleep(1); + } + VeloScan* currentScan =(VeloScan* ) *it; + currentScan->setRangeFilter(maxDist, minDist); + currentScan->setReductionParameter(red, octree); + currentScan->setSearchTreeParameter(nns_method, cuda_enabled); + currentScan->isTrackerHandled=false; + currentScan->scanid = scanCount; /// + + ICPFinished =false; + if(tracking ==1 ) + { + currentScan->FindingAllofObject(maxDist, minDist); + currentScan->ClassifiAllofObject(); + } + if(tracking ==2 ) + { + int windowsize =3; + currentScan->FindingAllofObject(maxDist, minDist); + currentScan->TrackingAllofObject(trackingAlgo); + currentScan->ClassifibyTrackingAllObject(scanCount, windowsize); + // trackMgr.ListTrackers(); + } + if( tracking ==0 || tracking ==1 ||tracking ==2 ) + { + currentScan->ExchangePointCloud(); + currentScan->calcReducedPoints_byClassifi(red, octree, PointType()); + } + + currentScan->createSearchTree(); +#ifdef NO_SLIDING_WINDOW + MatchTwoScan(my_icp, currentScan, scanCount, eP); +#else + if(current_sliding_window_pos > sliding_window_size ) + MatchTwoScan(my_icp, currentScan, sliding_window_size, eP); + else + MatchTwoScan(my_icp, currentScan, scanCount, eP); +#endif + + // update the cluster position in trakers. + /////////////////////////////////////////////////////////////////// + const double* p; + p = currentScan->get_rPos(); + Point x(p[0], p[1], p[2]); + VelodyneTrajectory.path.push_back(x); + ////////////////////////////////////////// + + scanCount++; + current_sliding_window_pos++; + +#ifdef NO_SLIDING_WINDOW + +#else + if(current_sliding_window_pos > sliding_window_size ) + { + vector ::iterator Iter = Scan::allScans.begin(); + VeloScan *deleteScan = (VeloScan*)(*Iter); + // cout << "delete scan " << deleteScan->scanid << endl; + delete deleteScan; + } +#endif + + ICPFinished =true; + if(!veryQuiet) + { + glutPostRedisplay(); + } + + while(DebugDrawFinished ==false && !veryQuiet) + { + Sleep(1); + } + //////////////////////////////////////// + } + + // long starttime = GetCurrentTimeInMilliSec(); + + // //Finall graph Matching + // FinalSLAM( red, rand, + // mdm, mdml, mdmll, + // mni, start, end, maxDist, minDist, quiet, veryQuiet, + // eP, meta, algo, loopSlam6DAlgo, lum6DAlgo, anim, + // mni_lum, net, cldist, clpairs, loopsize, + // epsilonICP, epsilonSLAM, nns_method, exportPts, distLoop, + // iterLoop, graphDist, octree, cuda_enabled, type + //); + + if (exportPts) + { + cout << "Export all 3D Points to file \"points.pts\"" << endl; + ofstream redptsout("points.pts"); + for(unsigned int i = 0; i < Scan::allScans.size(); i++) + { + DataXYZ xyz_r(Scan::allScans[i]->get("xyz reduced")); + for(unsigned int i = 0; i < xyz_r.size(); ++i) + redptsout << xyz_r[i][0] << ' ' << xyz_r[i][1] << ' ' << xyz_r[i][2] << '\n'; + redptsout << std::flush; + } + } + + for(ScanVector::iterator it = Scan::allScans.begin(); it != Scan::allScans.end(); ++it) + { + Scan* scan = *it; + scan->saveFrames(); + } + + Scan::closeDirectory(); + + delete my_icp6Dminimizer; + delete my_icp; + + cout << endl << endl; + cout << "Normal program end." << endl; + +} diff --git a/.svn/pristine/4f/4f62740a6597ec57c04b055b3478477d9e1e0614.svn-base b/.svn/pristine/4f/4f62740a6597ec57c04b055b3478477d9e1e0614.svn-base new file mode 100644 index 0000000..2482687 --- /dev/null +++ b/.svn/pristine/4f/4f62740a6597ec57c04b055b3478477d9e1e0614.svn-base @@ -0,0 +1,62 @@ +#ifndef __LINE_H_ +#define __LINE_H_ + +#include "grid/gridPoint.h" + +/** + * Class represents a line object starting at the gridPoint "start" + * and ending at the gridPoint "end" + * + * @author Sebastian Stock, Uwe Hebbelmann, Andre Schemschat + * @date 25.02.2008 + */ +class line +{ + private: + /** The starting point of the line */ + gridPoint* start; + + /** The ending point of the line */ + gridPoint* end; + + public: + /** @brief CTor */ + line(gridPoint* start, gridPoint* end); + + /** @brief Returns the length of the line */ + double getLength(); + + /** + * Getter for the start x-coordinate + * @return the start x-coordinate + */ + inline long getStartX() const{ + return start->getX(); + } + + /** + * Getter for the start z-coordinate + * @return the start z-coordinate + */ + inline long getStartZ() const{ + return start->getZ(); + } + + /** + * Getter for the end x-coordinate + * @return the end x-coordinate + */ + inline long getEndX() const{ + return end->getX(); + } + + /** + * Getter for the end z-coordinate + * @return the end z-coordinate + */ + inline long getEndZ() const{ + return end->getZ(); + } +}; + +#endif diff --git a/.svn/pristine/4f/4fa4a27daffbf05130200a4d5d6d8cee11d2fcb1.svn-base b/.svn/pristine/4f/4fa4a27daffbf05130200a4d5d6d8cee11d2fcb1.svn-base new file mode 100644 index 0000000..f968aed --- /dev/null +++ b/.svn/pristine/4f/4fa4a27daffbf05130200a4d5d6d8cee11d2fcb1.svn-base @@ -0,0 +1,119 @@ +//---------------------------------------------------------------------- +// File: ANNx.h +// Programmer: Sunil Arya and David Mount +// Last modified: 03/04/98 (Release 0.1) +// Description: Internal include file for ANN +// +// These declarations are of use in manipulating some of +// the internal data objects appearing in ANN, but are not +// needed for applications just using the nearest neighbor +// search. +// +// Typical users of ANN should not need to access this file. +//---------------------------------------------------------------------- +// Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +// David Mount. All Rights Reserved. +// +// This software and related documentation is part of the Approximate +// Nearest Neighbor Library (ANN). This software is provided under +// the provisions of the Lesser GNU Public License (LGPL). See the +// file ../ReadMe.txt for further information. +// +// The University of Maryland (U.M.) and the authors make no +// representations about the suitability or fitness of this software for +// any purpose. It is provided "as is" without express or implied +// warranty. +//---------------------------------------------------------------------- +// History: +// Revision 0.1 03/04/98 +// Initial release +// Revision 1.0 04/01/05 +// Changed LO, HI, IN, OUT to ANN_LO, ANN_HI, etc. +//---------------------------------------------------------------------- + +#ifndef ANNx_H +#define ANNx_H + +#include // I/O manipulators +#include // ANN includes + +//---------------------------------------------------------------------- +// Global constants and types +//---------------------------------------------------------------------- +enum {ANN_LO=0, ANN_HI=1}; // splitting indices +enum {ANN_IN=0, ANN_OUT=1}; // shrinking indices + // what to do in case of error +enum ANNerr {ANNwarn = 0, ANNabort = 1}; + +//---------------------------------------------------------------------- +// Maximum number of points to visit +// We have an option for terminating the search early if the +// number of points visited exceeds some threshold. If the +// threshold is 0 (its default) this means there is no limit +// and the algorithm applies its normal termination condition. +//---------------------------------------------------------------------- + +extern int ANNmaxPtsVisited; // maximum number of pts visited +extern int ANNptsVisited; // number of pts visited in search + +//---------------------------------------------------------------------- +// Global function declarations +//---------------------------------------------------------------------- + +void annError( // ANN error routine + char *msg, // error message + ANNerr level); // level of error + +void annPrintPt( // print a point + ANNpoint pt, // the point + int dim, // the dimension + std::ostream &out); // output stream + + + +//---------------------------------------------------------------------- +// Orthogonal (axis aligned) halfspace +// An orthogonal halfspace is represented by an integer cutting +// dimension cd, coordinate cutting value, cv, and side, sd, which is +// either +1 or -1. Our convention is that point q lies in the (closed) +// halfspace if (q[cd] - cv)*sd >= 0. +//---------------------------------------------------------------------- + +class ANNorthHalfSpace { +public: + int cd; // cutting dimension + ANNcoord cv; // cutting value + int sd; // which side +// + ANNorthHalfSpace() // default constructor + { cd = 0; cv = 0; sd = 0; } + + ANNorthHalfSpace( // basic constructor + int cdd, // dimension of space + ANNcoord cvv, // cutting value + int sdd) // side + { cd = cdd; cv = cvv; sd = sdd; } + + ANNbool in(ANNpoint q) const // is q inside halfspace? + { return (ANNbool) ((q[cd] - cv)*sd >= 0); } + + ANNbool out(ANNpoint q) const // is q outside halfspace? + { return (ANNbool) ((q[cd] - cv)*sd < 0); } + + ANNdist dist(ANNpoint q) const // (squared) distance from q + { return (ANNdist) ANN_POW(q[cd] - cv); } + + void setLowerBound(int d, ANNpoint p)// set to lower bound at p[i] + { cd = d; cv = p[d]; sd = +1; } + + void setUpperBound(int d, ANNpoint p)// set to upper bound at p[i] + { cd = d; cv = p[d]; sd = -1; } + + void project(ANNpoint &q) // project q (modified) onto halfspace + { if (out(q)) q[cd] = cv; } +}; + + // array of halfspaces +typedef ANNorthHalfSpace *ANNorthHSArray; + +#endif diff --git a/.svn/pristine/4f/4fe5a07694b3723077617fe1adbfc83ecff7d814.svn-base b/.svn/pristine/4f/4fe5a07694b3723077617fe1adbfc83ecff7d814.svn-base new file mode 100644 index 0000000..3f4b75c --- /dev/null +++ b/.svn/pristine/4f/4fe5a07694b3723077617fe1adbfc83ecff7d814.svn-base @@ -0,0 +1,125 @@ +//---------------------------------------------------------------------- +// File: pr_queue.h +// Programmer: Sunil Arya and David Mount +// Description: Include file for priority queue and related +// structures. +// Last modified: 01/04/05 (Version 1.0) +//---------------------------------------------------------------------- +// Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +// David Mount. All Rights Reserved. +// +// This software and related documentation is part of the Approximate +// Nearest Neighbor Library (ANN). This software is provided under +// the provisions of the Lesser GNU Public License (LGPL). See the +// file ../ReadMe.txt for further information. +// +// The University of Maryland (U.M.) and the authors make no +// representations about the suitability or fitness of this software for +// any purpose. It is provided "as is" without express or implied +// warranty. +//---------------------------------------------------------------------- +// History: +// Revision 0.1 03/04/98 +// Initial release +//---------------------------------------------------------------------- + +#ifndef PR_QUEUE_H +#define PR_QUEUE_H + +#include // all ANN includes +#include // performance evaluation + +//---------------------------------------------------------------------- +// Basic types. +//---------------------------------------------------------------------- +typedef void *PQinfo; // info field is generic pointer +typedef ANNdist PQkey; // key field is distance + +//---------------------------------------------------------------------- +// Priority queue +// A priority queue is a list of items, along with associated +// priorities. The basic operations are insert and extract_minimum. +// +// The priority queue is maintained using a standard binary heap. +// (Implementation note: Indexing is performed from [1..max] rather +// than the C standard of [0..max-1]. This simplifies parent/child +// computations.) User information consists of a void pointer, +// and the user is responsible for casting this quantity into whatever +// useful form is desired. +// +// Because the priority queue is so central to the efficiency of +// query processing, all the code is inline. +//---------------------------------------------------------------------- + +class ANNpr_queue { + + struct pq_node { // node in priority queue + PQkey key; // key value + PQinfo info; // info field + }; + int n; // number of items in queue + int max_size; // maximum queue size + pq_node *pq; // the priority queue (array of nodes) + +public: + ANNpr_queue(int max) // constructor (given max size) + { + n = 0; // initially empty + max_size = max; // maximum number of items + pq = new pq_node[max+1]; // queue is array [1..max] of nodes + } + + ~ANNpr_queue() // destructor + { delete [] pq; } + + ANNbool empty() // is queue empty? + { if (n==0) return ANNtrue; else return ANNfalse; } + + ANNbool non_empty() // is queue nonempty? + { if (n==0) return ANNfalse; else return ANNtrue; } + + void reset() // make existing queue empty + { n = 0; } + + inline void insert( // insert item (inlined for speed) + PQkey kv, // key value + PQinfo inf) // item info + { + if (++n > max_size) annError("Priority queue overflow.", ANNabort); + register int r = n; + while (r > 1) { // sift up new item + register int p = r/2; + ANN_FLOP(1) // increment floating ops + if (pq[p].key <= kv) // in proper order + break; + pq[r] = pq[p]; // else swap with parent + r = p; + } + pq[r].key = kv; // insert new item at final location + pq[r].info = inf; + } + + inline void extr_min( // extract minimum (inlined for speed) + PQkey &kv, // key (returned) + PQinfo &inf) // item info (returned) + { + kv = pq[1].key; // key of min item + inf = pq[1].info; // information of min item + register PQkey kn = pq[n--].key;// last item in queue + register int p = 1; // p points to item out of position + register int r = p<<1; // left child of p + while (r <= n) { // while r is still within the heap + ANN_FLOP(2) // increment floating ops + // set r to smaller child of p + if (r < n && pq[r].key > pq[r+1].key) r++; + if (kn <= pq[r].key) // in proper order + break; + pq[p] = pq[r]; // else swap with child + p = r; // advance pointers + r = p<<1; + } + pq[p] = pq[n+1]; // insert last item in proper place + } +}; + +#endif diff --git a/.svn/pristine/50/500522e4668a4d4931822d9256de78a7bda5f23b.svn-base b/.svn/pristine/50/500522e4668a4d4931822d9256de78a7bda5f23b.svn-base new file mode 100644 index 0000000..e2d61c9 --- /dev/null +++ b/.svn/pristine/50/500522e4668a4d4931822d9256de78a7bda5f23b.svn-base @@ -0,0 +1,354 @@ +/***************************************************************************** + * PMDSDK 2 + * + * Copyright (c) 2006-2007 PMD Technologies GmbH + * All Rights Reserved. + * + * File: pmddatadescription.h + * Author: Martin Profittlich + * Created: 20060808 + * + *****************************************************************************/ + +#ifndef DATADESCRIPTION_H_672861066752896024487934289650 +#define DATADESCRIPTION_H_672861066752896024487934289650 + +/// \addtogroup core +/// @{ + +#include "pmdsdk2common.h" + +BEGIN_EXTERN_C + + +/// \addtogroup DataCodes +/// @{ + +// TODO: move defines to separate file + +// raw data ID system: +// 0x00 0x00 0bORWWWWWW 0bRRRRDABD +// R = Reserved, must be 0 +// O = Byte order (1 = Big Endian) +// W = Bit width +// D = Difference +// A = Channel A +// B = Channel B + +/// A/B PMD data (e.g. PMD[vision] 3k-S) +#define PMD_RAW_L16_AB 0x00001006u +/// A/B PMD data (BigEndian) (e.g. CamCube) +#define PMD_RAW_B16_AB 0x00009006u +/// Difference and A/B PMD data +#define PMD_RAW_L16_DAB 0x0000100Eu +/// Difference and A/B PMD data (Big Endian) (e.g. USB-L) +#define PMD_RAW_B16_DAB 0x0000900Eu +/// A/B and difference PMD data +#define PMD_RAW_L16_ABD 0x00001007u +/// A/B and difference PMD data (Big Endian) (e.g. PMD[vision] A2 w/o addition information) +#define PMD_RAW_B16_ABD 0x00009007u +/// Packed PMD difference data (e.g. PMD[vision] 19k) +#define PMD_RAW_P12_D 0x00000C01u +/// PMD difference data (e.g. PMD[vision] 64) +#define PMD_RAW_L16_D 0x00001001u + +/// PMD difference data with saturation information +//#define PMD_RAW_L16D_SAT 1005u +/// A/B, difference and information PMD data (e.g. PMD[vision] A2 w/ additional information) +//#define PMD_RAW_L16ABD_AUX 1006u + +/// Unknown data +#define PMD_UNKNOWN_DATA 0x00000000u + +/// 32-bit floating point distances in meters +#define PMD_DISTANCE_LF32 0x00010001u +/// 32-bit floating point amplitudes +#define PMD_AMPLITUDE_LF32 0x00010002u +/// 32-bit floating point intensities +#define PMD_INTENSITY_LF32 0x00010004u +/// 32-bit floating point reflectivities +#define PMD_REFLECTIVITY_LF32 0x00010008u +/// 16-bit boolean information +#define PMD_FLAGS_16 0x00010010u + +/// Cartesian X coordinates +#define PMD_X_COORD_LF32 0x00010020u +/// Cartesian Y coordinates +#define PMD_Y_COORD_LF32 0x00010040u +/// Cartesian Z coordinates +#define PMD_Z_COORD_LF32 0x00010080u + +/// 16 bit distances in millimeters and amplitudes +#define PMD_DISTANCE_I16_AMPLITUDE_I16 0x00020003u +/// 16 bit distances in 100 micrometers and amplitudes +#define PMD_DISTANCE_100UM_I16_AMPLITUDE_I16 0x00020103u + +/// A3 camera data v2.31 +#define PMD_A3_DATA_2_31 0x00040003u +/// A3 camera data v4 +#define PMD_A3_DATA_4 0x00040005u +/// A3 camera raw data +#define PMD_A3_RAWDATA_2_31 0x00040007u +/// A3 sub type +#define PMD_A3_DISTANCE 0x00000001u +/// A3 sub type +#define PMD_A3_AMPLITUDE 0x00000002u +/// A3 sub type +#define PMD_A3_CONFIDENCE 0x00000004u +/// A3 sub type +#define PMD_A3_COORDINATES 0x00000008u +/// A3 sub type +#define PMD_A3_OBJECT_LIST 0x00000010u + +/// A3 camera data +#define PMD_O3D_DATA_1_7 0x00050003u +/// O3D sub type +#define PMD_O3D_DISTANCE 0x00000002u +/// O3D sub type +#define PMD_O3D_INTENSITY 0x00000004u +/// O3D sub type +#define PMD_O3D_STDDEV 0x00000010u +/// O3D sub type +#define PMD_O3D_VIEW_X 0x00000020u +/// O3D sub type +#define PMD_O3D_VIEW_Y 0x00000040u +/// O3D sub type +#define PMD_O3D_VIEW_Z 0x00000080u +/// O3D sub type +#define PMD_O3D_X 0x00000100u +/// O3D sub type +#define PMD_O3D_Y 0x00000200u +/// O3D sub type +#define PMD_O3D_Z 0x00000400u + +/// user defined data type +#define PMD_USER_DEFINED_0 0xFFFF0000u +/// user defined data type +#define PMD_USER_DEFINED_1 0xFFFF0001u +/// user defined data type +#define PMD_USER_DEFINED_2 0xFFFF0002u +/// user defined data type +#define PMD_USER_DEFINED_3 0xFFFF0003u +/// user defined data type +#define PMD_USER_DEFINED_4 0xFFFF0004u +/// user defined data type +#define PMD_USER_DEFINED_5 0xFFFF0005u +/// user defined data type +#define PMD_USER_DEFINED_6 0xFFFF0006u +/// user defined data type +#define PMD_USER_DEFINED_7 0xFFFF0007u +/// user defined data type +#define PMD_USER_DEFINED_8 0xFFFF0008u +/// user defined data type +#define PMD_USER_DEFINED_9 0xFFFF0009u +/// user defined data type +#define PMD_USER_DEFINED_10 0xFFFF000au +/// user defined data type +#define PMD_USER_DEFINED_11 0xFFFF000bu +/// user defined data type +#define PMD_USER_DEFINED_12 0xFFFF000cu +/// user defined data type +#define PMD_USER_DEFINED_13 0xFFFF000du +/// user defined data type +#define PMD_USER_DEFINED_14 0xFFFF000eu +/// user defined data type +#define PMD_USER_DEFINED_15 0xFFFF000fu + +// pixel origin values +/// The top-right pixel is the first pixel +#define PMD_ORIGIN_TOP_RIGHT 0x00000000u +/// The top-left pixel is the first pixel +#define PMD_ORIGIN_TOP_LEFT 0x00000001u +/// The bottom-right pixel is the first pixel +#define PMD_ORIGIN_BOTTOM_RIGHT 0x00000002u +/// The bottom-left pixel is the first pixel +#define PMD_ORIGIN_BOTTOM_LEFT 0x00000003u + +/// The pixel origin is on the right edge of the image +#define PMD_ORIGIN_RIGHT 0x00000000u +/// The pixel origin is on the left edge of the image +#define PMD_ORIGIN_LEFT 0x00000001u +/// The pixel origin is on the top edge of the image +#define PMD_ORIGIN_TOP 0x00000000u +/// The pixel origin is on the bottom edge of the image +#define PMD_ORIGIN_BOTTOM 0x00000002u + +// pixel direction values +/// The second pixel is on the right or the left of the first pixel +#define PMD_DIRECTION_HORIZONTAL 0x00000000u +/// The second pixel is aboce or below the first pixel +#define PMD_DIRECTION_VERTICAL 0x00010000u + +// sub header types +/// The PMDGenericData structure is used in the PMDDataDescription +#define PMD_GENERIC_DATA 0x00000001u +/// The PMDImageData structure is used in the PMDDataDescription +#define PMD_IMAGE_DATA 0x00000002u + +/// @} + +/// Generic data description +struct PMDGenericData +{ + /// Specific type of the data + unsigned subType; + /// Number of elements in the data + unsigned numElem; + /// Size of one element in bytes + unsigned sizeOfElem; +}; + +/// Standard PMD image data. +struct PMDImageData +{ + /// Specific type of the data + unsigned subType; + /// Number of columns in the image + unsigned numColumns; + /// Number of rows in the image + unsigned numRows; + /// Number of sub images + unsigned numSubImages; + + /// Integration times at which the data was captured + int integrationTime[4]; + /// Modulation frequencies at which the data was captured + int modulationFrequency[4]; + /// Offsets for up to four separate measurements in mm. + int offset[4]; + + /// Pixel aspect ratio. The ratio is pixelAspectRatio / 1000.0 + int pixelAspectRatio; + /// Position/direction of the first pixel. + int pixelOrigin; + + /// Time at which the data was captured. Most significant word. + int timeStampHi; + /// Time at which the data was captured. Least significant word. + unsigned timeStampLo; + + /// Reserved for future use. + char reserved[24]; + + /// Contains user-defined information. This will not be evaluated by the PMDSDK. + unsigned userData0; +}; + +/// Layout description of a data block. +struct PMDDataDescription +{ + /// Unique ID of the plugin that generated the data + unsigned PID; + /// Unique ID of the data + unsigned DID; + /// Interpretation of the data + unsigned type; + /// Size of the data block in bytes + unsigned size; + + /// Type of the sub header + unsigned subHeaderType; + /// Specific interpretation-dependent information + union + { + /// Generic data + struct PMDGenericData gen; + /// Standard PMD image data + struct PMDImageData std; + /// Ensure fixed size + char fillUpToSizeOfStructure[108]; + } +#ifdef PMD_ANSI_C + u +#endif + ; +}; + +#ifndef PMD_NO_DEPRECATED + +typedef struct PMDDataDescription DataDescription; +typedef struct PMDImageData StandardPMDData; +typedef struct PMDGenericData GenericData; +#define GENERIC_DATA PMD_GENERIC_DATA +#define STANDARD_PMD_DATA PMD_IMAGE_DATA + +#define RAW_L16_AB PMD_RAW_L16_AB +#define RAW_L16_DAB PMD_RAW_L16_DAB +#define RAW_B16_DAB PMD_RAW_B16_DAB +#define RAW_L16_ABD PMD_RAW_L16_ABD +#define RAW_B16_ABD PMD_RAW_B16_ABD +#define RAW_P12_D PMD_RAW_P12_D +#define RAW_L16_D PMD_RAW_L16_D + +#define UNKNOWN_DATA PMD_UNKNOWN_DATA + +#define DISTANCE_LF32 PMD_DISTANCE_LF32 +#define AMPLITUDE_LF32 PMD_AMPLITUDE_LF32 +#define INTENSITY_LF32 PMD_INTENSITY_LF32 +#define REFLECTIVITY_LF32 PMD_REFLECTIVITY_LF32 +#define FLAGS_16 PMD_FLAGS_16 + +#define X_COORD_LF32 PMD_X_COORD_LF32 +#define Y_COORD_LF32 PMD_Y_COORD_LF32 +#define Z_COORD_LF32 PMD_Z_COORD_LF32 + +#define DISTANCE_I16_AMPLITUDE_I16 PMD_DISTANCE_I16_AMPLITUDE_I16 +#define DISTANCE_100UM_I16_AMPLITUDE_I16 PMD_DISTANCE_100UM_I16_AMPLITUDE_I16 + +#define A3_DATA_2_31 PMD_A3_DATA_2_31 +#define A3_DATA_4 PMD_A3_DATA_4 +#define A3_RAWDATA_2_31 PMD_A3_RAWDATA_2_31 +#define A3_DISTANCE PMD_A3_DISTANCE +#define A3_AMPLITUDE PMD_A3_AMPLITUDE +#define A3_CONFIDENCE PMD_A3_CONFIDENCE +#define A3_COORDINATES PMD_A3_COORDINATES +#define A3_OBJECT_LIST PMD_A3_OBJECT_LIST + +#define O3D_DATA_1_7 PMD_O3D_DATA_1_7 +#define O3D_DISTANCE PMD_O3D_DISTANCE +#define O3D_INTENSITY PMD_O3D_INTENSITY +#define O3D_STDDEV PMD_O3D_STDDEV +#define O3D_VIEW_X PMD_O3D_VIEW_X +#define O3D_VIEW_Y PMD_O3D_VIEW_Y +#define O3D_VIEW_Z PMD_O3D_VIEW_Z +#define O3D_X PMD_O3D_X +#define O3D_Y PMD_O3D_Y +#define O3D_Z PMD_O3D_Z + +#define USER_DEFINED_0 PMD_USER_DEFINED_0 +#define USER_DEFINED_1 PMD_USER_DEFINED_1 +#define USER_DEFINED_2 PMD_USER_DEFINED_2 +#define USER_DEFINED_3 PMD_USER_DEFINED_3 +#define USER_DEFINED_4 PMD_USER_DEFINED_4 +#define USER_DEFINED_5 PMD_USER_DEFINED_5 +#define USER_DEFINED_6 PMD_USER_DEFINED_6 +#define USER_DEFINED_7 PMD_USER_DEFINED_7 +#define USER_DEFINED_8 PMD_USER_DEFINED_8 +#define USER_DEFINED_9 PMD_USER_DEFINED_9 +#define USER_DEFINED_10 PMD_USER_DEFINED_10 +#define USER_DEFINED_11 PMD_USER_DEFINED_11 +#define USER_DEFINED_12 PMD_USER_DEFINED_12 +#define USER_DEFINED_13 PMD_USER_DEFINED_13 +#define USER_DEFINED_14 PMD_USER_DEFINED_14 +#define USER_DEFINED_15 PMD_USER_DEFINED_15 + +#define ORIGIN_TOP_RIGHT PMD_ORIGIN_TOP_RIGHT +#define ORIGIN_TOP_LEFT PMD_ORIGIN_TOP_LEFT +#define ORIGIN_BOTTOM_RIGHT PMD_ORIGIN_BOTTOM_RIGHT +#define ORIGIN_BOTTOM_LEFT PMD_ORIGIN_BOTTOM_LEFT + +#define ORIGIN_RIGHT PMD_ORIGIN_RIGHT +#define ORIGIN_LEFT PMD_ORIGIN_LEFT +#define ORIGIN_TOP PMD_ORIGIN_TOP +#define ORIGIN_BOTTOM PMD_ORIGIN_BOTTOM + +#define DIRECTION_HORIZONTAL PMD_DIRECTION_HORIZONTAL +#define DIRECTION_VERTICAL PMD_DIRECTION_VERTICAL + +#endif + +END_EXTERN_C + +/// @} + +#endif diff --git a/.svn/pristine/50/50521c4a9fb6c139b190348779d45cc182dd55ee.svn-base b/.svn/pristine/50/50521c4a9fb6c139b190348779d45cc182dd55ee.svn-base new file mode 100644 index 0000000..9b30dfd --- /dev/null +++ b/.svn/pristine/50/50521c4a9fb6c139b190348779d45cc182dd55ee.svn-base @@ -0,0 +1,159 @@ +/* + * icp6Dortho implementation + * + * Copyright (C) Andreas Nuechter, Alexandru-Eugen Ichim + * + * Released under the GPL version 3. + * + */ + +/** @file + * @brief Implementation of the ICP error function minimization via + * orthonormal matrices + * + * @author Andreas Nuechter. Jacobs University Bremen gGmbH, Germany + * @author Alexandru-Eugen Ichim. Jacobs University Bremen gGmbH, Germany + * + */ + +#include "slam6d/icp6Dortho.h" + +#include "slam6d/globals.icc" +#include +using std::ios; +using std::resetiosflags; +using std::setiosflags; + +#include "newmat/newmat.h" +#include "newmat/newmatap.h" +using namespace NEWMAT; + +/** + * computes the rotation matrix consisting + * of a rotation and translation that + * minimizes the root-mean-square error of the + * point pairs using orthonormal matrices + * vector of point pairs, rotation matrix + * @param pairs Vector of point pairs (pairs of corresponding points) + * @param *alignfx The resulting transformation matrix + * @return Error estimation of the matching (rms) + */ +double icp6D_ORTHO::Point_Point_Align(const vector& pairs, double *alignfx, + const double centroid_m[3], const double centroid_d[3]) +{ + double error = 0; + double sum = 0.0; + + /// Get centered PtPairs + double** m = new double*[pairs.size()]; + double** d = new double*[pairs.size()]; + + for(unsigned int i = 0; i < pairs.size(); i++){ + m[i] = new double[3]; + d[i] = new double[3]; + m[i][0] = pairs[i].p1.x - centroid_m[0]; + m[i][1] = pairs[i].p1.y - centroid_m[1]; + m[i][2] = pairs[i].p1.z - centroid_m[2]; + d[i][0] = pairs[i].p2.x - centroid_d[0]; + d[i][1] = pairs[i].p2.y - centroid_d[1]; + d[i][2] = pairs[i].p2.z - centroid_d[2]; + + sum += sqr(pairs[i].p1.x - pairs[i].p2.x) + + sqr(pairs[i].p1.y - pairs[i].p2.y) + + sqr(pairs[i].p1.z - pairs[i].p2.z) ; + } + + error = sqrt(sum / (double)pairs.size()); + + if (!quiet) { + cout.setf(ios::basefield); + cout << "ORTHO RMS point-to-point error = " + << resetiosflags(ios::adjustfield) << setiosflags(ios::internal) + << resetiosflags(ios::floatfield) << setiosflags(ios::fixed) + << std::setw(10) << std::setprecision(7) + << error + << " using " << std::setw(6) << (int)pairs.size() << " points" << endl; + } + + + + +///////////////////////////////////////////////////////// +///////////////////////////////////////////////////////// + + /// generate matrix H + Matrix H (3, 3); H = 0.0; + for(unsigned int n = 0; n < pairs.size(); ++n) + for(int i = 0; i < 3; ++i) + for(int j = 0; j < 3; ++j) + H(i+1, j+1) += m[n][i] * d[n][j]; + Matrix HH = H.t() * H; + + /// create a new matrix HHs equal to HH, but is of type SymmetricMatrix - needed for calculating the eigenvalues + SymmetricMatrix HHs(3); + HHs(1, 2) = HH(2, 1); + HHs(1, 3) = HH(3, 1); + HHs(2, 3) = HH(3, 2); + HHs(1, 1) = HH(1, 1); + HHs(2, 2) = HH(2, 2); + HHs(3, 3) = HH(3, 3); + + /// get the eigenvalues of HH + DiagonalMatrix eigenvalues(3); + Matrix eigenvectorsMatrix(3, 3); + EigenValues(HHs, eigenvalues, eigenvectorsMatrix); + + /// extract the eigenvectors from the matrix to separate column vectors + ColumnVector ev1 = eigenvectorsMatrix.Column(1); + ColumnVector ev2 = eigenvectorsMatrix.Column(2); + ColumnVector ev3 = eigenvectorsMatrix.Column(3); + + + /// compute the rotation matrix as H * ( SUM ( 1/lambda_i * ev_i * ev_i^T )) + Matrix R(3, 3); + Matrix ev11 = ev1 * ev1.t() * 1/sqrt( eigenvalues(1)); + Matrix ev22 = ev2 * ev2.t() * 1/sqrt( eigenvalues(2)); + Matrix ev33 = ev3 * ev3.t() * 1/sqrt( eigenvalues(3)); + R = H * (ev11 + ev22 + ev33); + + /// calculate the translation based on the rotation matrix and the centroids + ColumnVector cm(3); cm << centroid_m; + ColumnVector cd(3); cd << centroid_d; + ColumnVector translation = cm - R * cd; + + + /// create the final transformation matrix (OpenGL column-wise ordering) + alignfx[0] = R(1, 1); + alignfx[1] = R(2, 1); + alignfx[2] = R(3, 1); + alignfx[3] = 0.0; + alignfx[4] = R(1, 2); + alignfx[5] = R(2, 2); + alignfx[6] = R(3, 2); + alignfx[7] = 0.0; + alignfx[8] = R(1, 3); + alignfx[9] = R(2, 3); + alignfx[10]= R(3, 3); + alignfx[11]= 0.0; + alignfx[12]= translation(1); + alignfx[13]= translation(2); + alignfx[14]= translation(3); + alignfx[15]= 1.0; + + +///////////////////////////////////////////////////////// +///////////////////////////////////////////////////////// + + + /// clean up memory used by centered point pairs + for(unsigned int i = 0; i < pairs.size(); i++){ + delete [] m[i]; + delete [] d[i]; + } + delete [] m; + delete [] d; + + return error; +} + + diff --git a/.svn/pristine/50/50bdd0e0d628bf1814ef227ad37878dbfd1d3388.svn-base b/.svn/pristine/50/50bdd0e0d628bf1814ef227ad37878dbfd1d3388.svn-base new file mode 100644 index 0000000..8ae60e7 --- /dev/null +++ b/.svn/pristine/50/50bdd0e0d628bf1814ef227ad37878dbfd1d3388.svn-base @@ -0,0 +1,276 @@ +%%This is a very basic article template. +%%There is just one section and two subsections. +\documentclass{article} + +\title{Documentation 2DGridder} +\author{Uwe Hebbelmann, Sebastian Stock, Andre Schemschat} +\date{28.02.2008} + +\begin{document} +\maketitle{} + +\section{} +\subsection{About} +The program was written to convert three dimensional scans to two dimensional +maps. The scanparser processes the scan in five steps. First, the scans are read +using the scanparser based on the $scan_ io$ libraries. \newline +Afterwards the scans are transformated using the transformationmatrix out of +the frame-files. Within this step the y-correction and the min/max-Distance +filter are applied.\newline +The next step convertes each scan to a scanGrid. The scanGrid ist divided into +cells, which are resolution cm in size. Each cell contains the probability of +it beeing free. During the process more filters (like taking the spotradius of +the laser into consideration) are applied.\newline +If the grids are converted, +each grid can be written to disk using a gridWriter (by default its the ppmWriter. +If you want to change that, just change the 2DGridder.cc) and then added to +the parcelmanager.\newline +The parcelmanager takes care of dividing the grid +into the corresponding parcels, creating new parcels if neccessary and saving/loading +them. If all scans are converted and added, the parcelmanager can write the +entire world (based on all created parcels) into a single 2dm file (see +formats), which can be viewed with the MapViewer. Furthermore it can export the +map as a huge grid (which takes a lot of memory!). This is especially needed +for the hough-method, but it also comes in handy for writing the map as a pgm +file. +The last step is to create polygon-maps out of the 2D-Map. The algorithm is +based on houghes. + +\subsection{Resume-function} +The programm creates parcels during runtime. These parcels store the +information at a given position of possibly several scans. These parcels +are managed using parcelinfos and parcel-files. Each time the program quits, +it saves the created parcelinfos to a file called parcelinfo.conf. + +This file contains the name of the parcel and the offset. If the resume-flag +is set, the program tries to load the old parcelinfo file and reads the +information of already created parcels. New scans now access the same parcels +as old scans, which means, that they are added to the same worldmap. + +This may be used, to iterativly call the 2DGridder with scans and add each +scan to the same worldmap, which is usefull for speeding up the process +( because the memory used by the scan is completly freed) or add new created +scans to an already processed batch of scans. + +If the flag is set to true however and the parameters do not match (e.g. +parcelsize, resolution etc), the behavior will most certainly result in +an error. + + +This feature isn't yet fully tested and my contain bugs. + + +\section{Parameters} + +\subsection{Usage} +The following text will give a short explanation the parameters used in the +2DGridder. Nearly all parameters are optional, the only parameter that is +required is scandir. \newline +Below there are a few samples how to invoke the programm using different +settings. +\newline +{\bf ./2DGridder ~/scans/terrainScan} \newline +This would process all Scans in the given folder with the standard arguments +(so the scantype must be uos, otherwise it will fail). However this might not +bring the best results. +\newline +\newline +{\bf ./2DGridder -fold -s1 -e3 -r1 -w dat/duj} \newline +This would process the scans one to three in the old scan format in the folder +./dat/duj with a resolution of one cell per cm without waypoints. + +\subsection{scandir} +{\bf Default: \ None} \newline +{\bf Flag: \ None} \newline +The flag specifies the folder in which the programm searchs for the scans. The +structur of the folder needs to be according to the scantype (see flag +scantype), in order to successfully read the scandata and the frames +information. + +\subsection{outputdir} +{\bf Default: \ './parcels'} \newline +{\bf Flag: \ -o Path} \newline +The outputdirectory specifies the folder where the worldmap, the viewpoints +and the polygon-file are saved to. The folder needs to exist, otherwise an +error is printed. + +\subsection{start} +{\bf Default: \ 0} \newline +{\bf Flag: \ -s Nr} \newline +Start specifies the first scan to be read. By setting start and end, the range +of processed scan can be limited. +If startscan is smaller than the first scan available (e.g. -s0 but the first +scan starts with 1) an error will be printed + +\subsection{end} +{\bf Default: \ -1} \newline +{\bf Flag: \ -e Nr} \newline +End specifies the last scan to be read. Similiar to start, it can reduce the +range of scans to process. +If the default value is used, all scans after start are processed, until no +more scans are found + +\subsection{maxDistance} +{\bf Default: \ 2500} \newline +{\bf Flag: \ -m Nr} \newline +The range of the laser is often limited, so all scans above a specified +distance are insecure. To avoid this, all found points further than +maxDistance are not processed. +MaxDistance is given in cm, which means the default is 25 meters. + +\subsection{minDistance} +{\bf Default: \ -1} \newline +{\bf Flag: \ -M nr} \newline +Similar to maxDistance, but ignoring Scans closer than the specified +distance. Per default the minimal distance is ignored. + + +\subsection{readInitial} +{\bf Default: false} \newline +{\bf Flag: \ -t} \newline +Read a file containing a initial transformation matrix. + + +\subsection{scantype} +{\bf Default: \ uos} \newline +{\bf Flag: \ -f {uos, uos_map, uos_frames, uos_map_frames, old, rts, rts_map, ifp, riegl, zahn, ply}} \newline +The scantype specifies the format of the scan to read. If the format does not +match the format of the scans to read, the process will fail (undetermined +abort) + +\subsection{correctYAxis} +{\bf Default: \ false} \newline +{\bf Flag: \ -y} \newline +If set to true, the origin of all scans will be transformed to start at a +z-offset of 0. If you encounter problems with partial scans not getting into +the worldmap, try settings this flag and adjust the min- and maxRelevantHeight +a bit. (So no scans are left out, because they are ignored because of incorrect +scanvalues) + +\subsection{maxRelevantHeigth} +{\bf Default: \ 50} \newline +{\bf Flag: \ -M Nr} \newline +Specifies the maximum height which is relevant for the robotor. All found +points with y-coordinates above this value are not processed. +The unit is cm, so the default is 0.5 meters. + + +\subsection{minRelevantHeight} +{\bf Default: \ 2} \newline +{\bf Flag: \ -m Nr} \newline +Specifies the minimum height which is relevant for the map. All points with an y-coordinate below this value are not processed. +This parameter is useful for eliminating interferences from the floor in front of the roboter; + +\subsection{resolution} +{\bf Default: \ 10} \newline +{\bf Flag: -r} \newline +The resolution specifies the scale of the grid. The minimum resolution is 1, which means, that each cm is represented by one cell. The default is 10, which means that 10 cm of scandata is aggregated to one cell. +The lower the resolution the higher the size of each grid and the longer it takes to convert the scan and the more memory is needed + +\subsection{createWaypoints} +{\bf Default: \ true} \newline +{\bf Flag: \ -w} \newline +If this flag is set, then waypoints will NOT be created. If the flag ist not set, +then the process will create for each found and relevant +(see minRelevant / maxRelevantHeight or maxDistance) point +free points on the direct line from the viewpoint of the roboter and the point. + + +\subsection{createNeighbours} +{\bf Default: \ true} \newline +{\bf Flag: \ -n} \newline +If this flag is set, then neighbours will NOT be created. If the flag is not set, +than the process will check how far away the found point is and create neighbours +based on the spotradius of the laser. + + +\subsection{parcelWidth} +{\bf Default: \ 100} \newline +{\bf Flag: \ -p Nr} \newline +The parcelwidth specifies the width of the parcels of the map. The finer the +scale is, the more often the parcels are written and read from the disk, but +the worldmap will be smaller (since there are not as much useless information +in the world-file). + +\subsection{parcelHeight} +{\bf Default: \ 100} \newline +{\bf Flag: -P Nr} \newline +See parcelWidth. + +\subsection{writeWorld} +{\bf Default: \ true} \newline +{\bf Flag: \ -d} \newline +If this flag is set, the world-file will NOT be created. By default the value is true, so all parcels are merged to one world-file. The world-file is written in the worldformat, which can be read by the MapViewer. + +\subsection{writeGrids} +{\bf Default: \ false} \newline +{\bf Flag: \ -g} \newline +By default the value is false, so the single grid files are not written. If set +to true, each converted scan is written as a ppm-file to the disk. + +\subsection{writeLines} +{\bf Default: \ false} \newline +{\bf Flag: \ -l} \newline +By default the value is false, so lines are not created. If the parameter is +set to true, the programm tries to extrapolate polygonlines out of the +worldmap using the hough-matrix. +This may take, dependend on the size of the map, very long. + +\subsection{spotradius} +{\bf Default: \ 15} \newline +{\bf Flag: \ -a Nr} \newline +The spotradius is the deflection-factor of the laser on longer ranges. The +value given relates to the deflection at 30 meter (3000 cm), so the default +results in a factor of 1/200. The method to calculate the probability of +neighbours for each point is based on the deflection. + +\subsection{count} +{\bf Default: \ 50} \newline +{\bf Flag: \ -c Nr} \newline +This flag specifies how many scans are loaded, process and added to the worldmap +until they are freed. Since the loaded scans and grids are not needed after +they are processed, they can be freed. This is achieved by processing count +scans in a row, and then freeing the not needed data. + +\subsection{resume} +{\bf Default: false} \newline +{\bf Flag: \ -R} \newline +If this flag is set, the programm will load the parcels it has created +during the last run. See Resume-function for more information. + +\section{formats} +This section is about the formats which can be written using the +2DGridder. For most formats it is only a short description, because most of +them are plain simple. + +\subsection{PPM} +The ppm is a greyscale-picture format which is quite simple. It only needs the +size of the image and a value for each pixel. For more information, try google. + +\subsection{gnuplot} +The gnuplot files are used to visualize the data in gnuplot (and maybe other +tools). The information is written as $x z value$ with value beeing -1 for no +information or $\in[0,1]$, each point a line. + +\subsection{world (2dm)} +The worldformat is used to transport data between the 2Dgridder and the +MapViewer. The first line is the Version of the file. Mostly this is 1. The +second line specifies the resolution used in the grid. The third line specifies +the minimal and maximal found x and z values, in the order of $minX maxX minZ +maxZ$. The next line contains the position of the roboter during the first +scan (x and z coordinate). The rest of the file is similar to the gnuplot +format, which means $x z value$. + +\subsection{Viewpoints} +The viewpoint-file contains a list of coordinates at which the roboter has +taken the scans. Each line contains a x and z value standing for the position. + +\subsection{parcel} +The parcelformat is used to store the information of the parcels during +runtime. The parcels are stored as binary, so they can be stored and loaded +faster + +\subsection{bor} +The bor-format is used to store the polygion-files created out of the map. + +\end{document} diff --git a/.svn/pristine/50/50d7e0f8f910e2c877782cc6424b906100b34002.svn-base b/.svn/pristine/50/50d7e0f8f910e2c877782cc6424b906100b34002.svn-base new file mode 100644 index 0000000..29752fd --- /dev/null +++ b/.svn/pristine/50/50d7e0f8f910e2c877782cc6424b906100b34002.svn-base @@ -0,0 +1,85 @@ +/* + * ann_kd implementation + * + * Copyright (C) Andreas Nuechter, Ulugbek Makhmudov + * + * Released under the GPL version 3. + * + */ + +/** @file + * @brief Encapsules the implementation of ANN k-d trees. + * @author Ulugbek Makhmudov, Jacobs University Bremen, Bremen, Germany. + * @author Andreas Nuechter, Jacobs University Bremen, Bremen, Germany. + */ + +#ifdef _MSC_VER +#define _USE_MATH_DEFINES +#endif + +#include "slam6d/ann_kd.h" +#include "slam6d/globals.icc" + +#include +using std::cout; +using std::cerr; +using std::endl; +#include +using std::swap; +#include +#include + + + +/** + * Constructor + * + * Create ANN KD tree from the points pointed to by the array pts + * + * @param pts 3D array of points + * @param n number of points + */ +ANNtree::ANNtree(double **_pts, int n) +{ + pts = _pts; + annkd = new ANNkd_tree(pts, n, 3, 1, ANN_KD_SUGGEST); // links to the constructor of ANNkd_tree + cout << "ANNkd_tree was generated with " << n << " points" << endl; + nn = new ANNdist[1]; + nn_idx = new ANNidx[1]; +} + +/** + * Destructor + * + * Cleans up the instance of ANN KD tree + * + * + */ +ANNtree::~ANNtree() +{ + delete annkd; //links to the destructor of ANNkd_tree + delete [] nn; + delete [] nn_idx; +} + + +/** + * Finds the closest point within the tree, + * wrt. the point given as first parameter. + * @param _p point + * @param maxdist2 maximal search distance. + * @param threadNum Thread number, for parallelization + * @return Pointer to the closest point + */ +double *ANNtree::FindClosest(double *_p, double maxdist2, int threadNum) const +{ + +#pragma omp critical + annkd->annkSearch(_p, 1, nn_idx, nn, 0.0); + int idx = nn_idx[0]; + + if (Dist2(_p, pts[idx]) > maxdist2) return 0; + + return pts[idx]; +} + diff --git a/.svn/pristine/51/514e28729de171bb5a6ca3cf53176a83b232a5ff.svn-base b/.svn/pristine/51/514e28729de171bb5a6ca3cf53176a83b232a5ff.svn-base new file mode 100644 index 0000000..84b0ba9 --- /dev/null +++ b/.svn/pristine/51/514e28729de171bb5a6ca3cf53176a83b232a5ff.svn-base @@ -0,0 +1,842 @@ +//$$ newmat3.cpp Matrix get and restore rows and columns + +// Copyright (C) 1991,2,3,4: R B Davies + +//#define WANT_STREAM + +#include "include.h" + +#include "newmat.h" +#include "newmatrc.h" + +#ifdef use_namespace +namespace NEWMAT { +#endif + + +#ifdef DO_REPORT +#define REPORT { static ExeCounter ExeCount(__LINE__,3); ++ExeCount; } +#else +#define REPORT {} +#endif + +//#define MONITOR(what,storage,store) +// { cout << what << " " << storage << " at " << (long)store << "\n"; } + +#define MONITOR(what,store,storage) {} + + +// Control bits codes for GetRow, GetCol, RestoreRow, RestoreCol +// +// LoadOnEntry: +// Load data into MatrixRow or Col dummy array under GetRow or GetCol +// StoreOnExit: +// Restore data to original matrix under RestoreRow or RestoreCol +// DirectPart: +// Load or restore only part directly stored; must be set with StoreOnExit +// Still have decide how to handle this with symmetric +// StoreHere: +// used in columns only - store data at supplied storage address; +// used for GetCol, NextCol & RestoreCol. No need to fill out zeros +// HaveStore: +// dummy array has been assigned (internal use only). + +// For symmetric matrices, treat columns as rows unless StoreHere is set; +// then stick to columns as this will give better performance for doing +// inverses + +// How components are used: + +// Use rows wherever possible in preference to columns + +// Columns without StoreHere are used in in-exact transpose, sum column, +// multiply a column vector, and maybe in future access to column, +// additional multiply functions, add transpose + +// Columns with StoreHere are used in exact transpose (not symmetric matrices +// or vectors, load only) + +// Columns with MatrixColX (Store to full column) are used in inverse and solve + +// Functions required for each matrix class + +// GetRow(MatrixRowCol& mrc) +// GetCol(MatrixRowCol& mrc) +// GetCol(MatrixColX& mrc) +// RestoreRow(MatrixRowCol& mrc) +// RestoreCol(MatrixRowCol& mrc) +// RestoreCol(MatrixColX& mrc) +// NextRow(MatrixRowCol& mrc) +// NextCol(MatrixRowCol& mrc) +// NextCol(MatrixColX& mrc) + +// The Restore routines assume StoreOnExit has already been checked +// Defaults for the Next routines are given below +// Assume cannot have both !DirectPart && StoreHere for MatrixRowCol routines + + +// Default NextRow and NextCol: +// will work as a default but need to override NextRow for efficiency + +void GeneralMatrix::NextRow(MatrixRowCol& mrc) +{ + REPORT + if (+(mrc.cw*StoreOnExit)) { REPORT this->RestoreRow(mrc); } + mrc.rowcol++; + if (mrc.rowcolGetRow(mrc); } + else { REPORT mrc.cw -= StoreOnExit; } +} + +void GeneralMatrix::NextCol(MatrixRowCol& mrc) +{ + REPORT // 423 + if (+(mrc.cw*StoreOnExit)) { REPORT this->RestoreCol(mrc); } + mrc.rowcol++; + if (mrc.rowcolGetCol(mrc); } + else { REPORT mrc.cw -= StoreOnExit; } +} + +void GeneralMatrix::NextCol(MatrixColX& mrc) +{ + REPORT // 423 + if (+(mrc.cw*StoreOnExit)) { REPORT this->RestoreCol(mrc); } + mrc.rowcol++; + if (mrc.rowcolGetCol(mrc); } + else { REPORT mrc.cw -= StoreOnExit; } +} + + +// routines for matrix + +void Matrix::GetRow(MatrixRowCol& mrc) +{ + REPORT + mrc.skip=0; mrc.storage=mrc.length=ncols; mrc.data=store+mrc.rowcol*ncols; +} + + +void Matrix::GetCol(MatrixRowCol& mrc) +{ + REPORT + mrc.skip=0; mrc.storage=mrc.length=nrows; + if ( ncols==1 && !(mrc.cw*StoreHere) ) // ColumnVector + { REPORT mrc.data=store; } + else + { + Real* ColCopy; + if ( !(mrc.cw*(HaveStore+StoreHere)) ) + { + REPORT + ColCopy = new Real [nrows]; MatrixErrorNoSpace(ColCopy); + MONITOR_REAL_NEW("Make (MatGetCol)",nrows,ColCopy) + mrc.data = ColCopy; mrc.cw += HaveStore; + } + else { REPORT ColCopy = mrc.data; } + if (+(mrc.cw*LoadOnEntry)) + { + REPORT + Real* Mstore = store+mrc.rowcol; int i=nrows; + //while (i--) { *ColCopy++ = *Mstore; Mstore+=ncols; } + if (i) for (;;) + { *ColCopy++ = *Mstore; if (!(--i)) break; Mstore+=ncols; } + } + } +} + +void Matrix::GetCol(MatrixColX& mrc) +{ + REPORT + mrc.skip=0; mrc.storage=nrows; mrc.length=nrows; + if (+(mrc.cw*LoadOnEntry)) + { + REPORT Real* ColCopy = mrc.data; + Real* Mstore = store+mrc.rowcol; int i=nrows; + //while (i--) { *ColCopy++ = *Mstore; Mstore+=ncols; } + if (i) for (;;) + { *ColCopy++ = *Mstore; if (!(--i)) break; Mstore+=ncols; } + } +} + +void Matrix::RestoreCol(MatrixRowCol& mrc) +{ + // always check StoreOnExit before calling RestoreCol + REPORT // 429 + if (+(mrc.cw*HaveStore)) + { + REPORT // 426 + Real* Mstore = store+mrc.rowcol; int i=nrows; + Real* Cstore = mrc.data; + // while (i--) { *Mstore = *Cstore++; Mstore+=ncols; } + if (i) for (;;) + { *Mstore = *Cstore++; if (!(--i)) break; Mstore+=ncols; } + } +} + +void Matrix::RestoreCol(MatrixColX& mrc) +{ + REPORT + Real* Mstore = store+mrc.rowcol; int i=nrows; Real* Cstore = mrc.data; + // while (i--) { *Mstore = *Cstore++; Mstore+=ncols; } + if (i) for (;;) + { *Mstore = *Cstore++; if (!(--i)) break; Mstore+=ncols; } +} + +void Matrix::NextRow(MatrixRowCol& mrc) { REPORT mrc.IncrMat(); } // 1808 + +void Matrix::NextCol(MatrixRowCol& mrc) +{ + REPORT // 632 + if (+(mrc.cw*StoreOnExit)) { REPORT RestoreCol(mrc); } + mrc.rowcol++; + if (mrc.rowcol= LoadOnEntry) + { REPORT *(mrc.data) = *(store+mrc.rowcol); } + +} + +void RowVector::NextCol(MatrixRowCol& mrc) +{ REPORT mrc.rowcol++; mrc.data++; } + +void RowVector::NextCol(MatrixColX& mrc) +{ + if (+(mrc.cw*StoreOnExit)) { REPORT *(store+mrc.rowcol)=*(mrc.data); } + + mrc.rowcol++; + if (mrc.rowcol < ncols) + { + if (+(mrc.cw*LoadOnEntry)) { REPORT *(mrc.data)=*(store+mrc.rowcol); } + } + else { REPORT mrc.cw -= StoreOnExit; } +} + +void RowVector::RestoreCol(MatrixColX& mrc) + { REPORT *(store+mrc.rowcol)=*(mrc.data); } // not accessed + + +// routines for band matrices + +void BandMatrix::GetRow(MatrixRowCol& mrc) +{ + REPORT + int r = mrc.rowcol; int w = lower+1+upper; mrc.length=ncols; + int s = r-lower; + if (s<0) { mrc.data = store+(r*w-s); w += s; s = 0; } + else mrc.data = store+r*w; + mrc.skip = s; s += w-ncols; if (s>0) w -= s; mrc.storage = w; +} + +// should make special versions of this for upper and lower band matrices + +void BandMatrix::NextRow(MatrixRowCol& mrc) +{ + REPORT + int r = ++mrc.rowcol; + if (r<=lower) { mrc.storage++; mrc.data += lower+upper; } + else { mrc.skip++; mrc.data += lower+upper+1; } + if (r>=ncols-upper) mrc.storage--; +} + +void BandMatrix::GetCol(MatrixRowCol& mrc) +{ + REPORT + int c = mrc.rowcol; int n = lower+upper; int w = n+1; + mrc.length=nrows; Real* ColCopy; + int b; int s = c-upper; + if (s<=0) { w += s; s = 0; b = c+lower; } else b = s*w+n; + mrc.skip = s; s += w-nrows; if (s>0) w -= s; mrc.storage = w; + if ( +(mrc.cw*(StoreHere+HaveStore)) ) + { REPORT ColCopy = mrc.data; } + else + { + REPORT + ColCopy = new Real [n+1]; MatrixErrorNoSpace(ColCopy); + MONITOR_REAL_NEW("Make (BMGetCol)",n+1,ColCopy) + mrc.cw += HaveStore; mrc.data = ColCopy; + } + + if (+(mrc.cw*LoadOnEntry)) + { + REPORT + Real* Mstore = store+b; + // while (w--) { *ColCopy++ = *Mstore; Mstore+=n; } + if (w) for (;;) + { *ColCopy++ = *Mstore; if (!(--w)) break; Mstore+=n; } + } +} + +void BandMatrix::GetCol(MatrixColX& mrc) +{ + REPORT + int c = mrc.rowcol; int n = lower+upper; int w = n+1; + mrc.length=nrows; int b; int s = c-upper; + if (s<=0) { w += s; s = 0; b = c+lower; } else b = s*w+n; + mrc.skip = s; s += w-nrows; if (s>0) w -= s; mrc.storage = w; + mrc.data = mrc.store+mrc.skip; + + if (+(mrc.cw*LoadOnEntry)) + { + REPORT + Real* ColCopy = mrc.data; Real* Mstore = store+b; + // while (w--) { *ColCopy++ = *Mstore; Mstore+=n; } + if (w) for (;;) + { *ColCopy++ = *Mstore; if (!(--w)) break; Mstore+=n; } + } +} + +void BandMatrix::RestoreCol(MatrixRowCol& mrc) +{ + REPORT + int c = mrc.rowcol; int n = lower+upper; int s = c-upper; + Real* Mstore = store + ((s<=0) ? c+lower : s*n+s+n); + Real* Cstore = mrc.data; + int w = mrc.storage; + // while (w--) { *Mstore = *Cstore++; Mstore += n; } + if (w) for (;;) + { *Mstore = *Cstore++; if (!(--w)) break; Mstore += n; } +} + +// routines for symmetric band matrix + +void SymmetricBandMatrix::GetRow(MatrixRowCol& mrc) +{ + REPORT + int r=mrc.rowcol; int s = r-lower; int w1 = lower+1; int o = r*w1; + mrc.length = ncols; + if (s<0) { w1 += s; o -= s; s = 0; } + mrc.skip = s; + + if (+(mrc.cw*DirectPart)) + { REPORT mrc.data = store+o; mrc.storage = w1; } + else + { + // do not allow StoreOnExit and !DirectPart + if (+(mrc.cw*StoreOnExit)) + Throw(InternalException("SymmetricBandMatrix::GetRow(MatrixRowCol&)")); + int w = w1+lower; s += w-ncols; Real* RowCopy; + if (s>0) w -= s; mrc.storage = w; int w2 = w-w1; + if (!(mrc.cw*HaveStore)) + { + REPORT + RowCopy = new Real [2*lower+1]; MatrixErrorNoSpace(RowCopy); + MONITOR_REAL_NEW("Make (SmBGetRow)",2*lower+1,RowCopy) + mrc.cw += HaveStore; mrc.data = RowCopy; + } + else { REPORT RowCopy = mrc.data; } + + if (+(mrc.cw*LoadOnEntry)) + { + REPORT + Real* Mstore = store+o; + while (w1--) *RowCopy++ = *Mstore++; + Mstore--; + while (w2--) { Mstore += lower; *RowCopy++ = *Mstore; } + } + } +} + +void SymmetricBandMatrix::GetCol(MatrixRowCol& mrc) +{ + // do not allow StoreHere + if (+(mrc.cw*StoreHere)) + Throw(InternalException("SymmetricBandMatrix::GetCol(MatrixRowCol&)")); + + int c=mrc.rowcol; int w1 = lower+1; mrc.length=nrows; + REPORT + int s = c-lower; int o = c*w1; + if (s<0) { w1 += s; o -= s; s = 0; } + mrc.skip = s; + + if (+(mrc.cw*DirectPart)) + { REPORT mrc.data = store+o; mrc.storage = w1; } + else + { + // do not allow StoreOnExit and !DirectPart + if (+(mrc.cw*StoreOnExit)) + Throw(InternalException("SymmetricBandMatrix::GetCol(MatrixRowCol&)")); + int w = w1+lower; s += w-ncols; Real* ColCopy; + if (s>0) w -= s; mrc.storage = w; int w2 = w-w1; + + if ( +(mrc.cw*HaveStore) ) { REPORT ColCopy = mrc.data; } + else + { + REPORT ColCopy = new Real [2*lower+1]; MatrixErrorNoSpace(ColCopy); + MONITOR_REAL_NEW("Make (SmBGetCol)",2*lower+1,ColCopy) + mrc.cw += HaveStore; mrc.data = ColCopy; + } + + if (+(mrc.cw*LoadOnEntry)) + { + REPORT + Real* Mstore = store+o; + while (w1--) *ColCopy++ = *Mstore++; + Mstore--; + while (w2--) { Mstore += lower; *ColCopy++ = *Mstore; } + } + } +} + +void SymmetricBandMatrix::GetCol(MatrixColX& mrc) +{ + int c=mrc.rowcol; int w1 = lower+1; mrc.length=nrows; + if (+(mrc.cw*DirectPart)) + { + REPORT + int b = c*w1+lower; + mrc.skip = c; c += w1-nrows; w1 -= c; mrc.storage = w1; + Real* ColCopy = mrc.data = mrc.store+mrc.skip; + if (+(mrc.cw*LoadOnEntry)) + { + REPORT + Real* Mstore = store+b; + // while (w1--) { *ColCopy++ = *Mstore; Mstore += lower; } + if (w1) for (;;) + { *ColCopy++ = *Mstore; if (!(--w1)) break; Mstore += lower; } + } + } + else + { + REPORT + // do not allow StoreOnExit and !DirectPart + if (+(mrc.cw*StoreOnExit)) + Throw(InternalException("SymmetricBandMatrix::GetCol(MatrixColX&)")); + int s = c-lower; int o = c*w1; + if (s<0) { w1 += s; o -= s; s = 0; } + mrc.skip = s; + + int w = w1+lower; s += w-ncols; + if (s>0) w -= s; mrc.storage = w; int w2 = w-w1; + + Real* ColCopy = mrc.data = mrc.store+mrc.skip; + + if (+(mrc.cw*LoadOnEntry)) + { + REPORT + Real* Mstore = store+o; + while (w1--) *ColCopy++ = *Mstore++; + Mstore--; + while (w2--) { Mstore += lower; *ColCopy++ = *Mstore; } + } + + } +} + +void SymmetricBandMatrix::RestoreCol(MatrixColX& mrc) +{ + REPORT + int c = mrc.rowcol; + Real* Mstore = store + c*lower+c+lower; + Real* Cstore = mrc.data; int w = mrc.storage; + // while (w--) { *Mstore = *Cstore++; Mstore += lower; } + if (w) for (;;) + { *Mstore = *Cstore++; if (!(--w)) break; Mstore += lower; } +} + +// routines for identity matrix + +void IdentityMatrix::GetRow(MatrixRowCol& mrc) +{ + REPORT + mrc.skip=mrc.rowcol; mrc.storage=1; mrc.data=store; mrc.length=ncols; +} + +void IdentityMatrix::GetCol(MatrixRowCol& mrc) +{ + REPORT + mrc.skip=mrc.rowcol; mrc.storage=1; mrc.length=nrows; + if (+(mrc.cw*StoreHere)) // should not happen + Throw(InternalException("IdentityMatrix::GetCol(MatrixRowCol&)")); + else { REPORT mrc.data=store; } +} + +void IdentityMatrix::GetCol(MatrixColX& mrc) +{ + REPORT + mrc.skip=mrc.rowcol; mrc.storage=1; mrc.length=nrows; + mrc.data = mrc.store+mrc.skip; *(mrc.data)=*store; +} + +void IdentityMatrix::NextRow(MatrixRowCol& mrc) { REPORT mrc.IncrId(); } + +void IdentityMatrix::NextCol(MatrixRowCol& mrc) { REPORT mrc.IncrId(); } + +void IdentityMatrix::NextCol(MatrixColX& mrc) +{ + REPORT + if (+(mrc.cw*StoreOnExit)) { REPORT *store=*(mrc.data); } + mrc.IncrDiag(); // must increase mrc.data so need IncrDiag + int t1 = +(mrc.cw*LoadOnEntry); + if (t1 && mrc.rowcol < ncols) { REPORT *(mrc.data)=*store; } +} + + + + +// *************************** destructors ******************************* + +MatrixRowCol::~MatrixRowCol() +{ + if (+(cw*HaveStore)) + { + MONITOR_REAL_DELETE("Free (RowCol)",-1,data) // do not know length + delete [] data; + } +} + +MatrixRow::~MatrixRow() { if (+(cw*StoreOnExit)) gm->RestoreRow(*this); } + +MatrixCol::~MatrixCol() { if (+(cw*StoreOnExit)) gm->RestoreCol(*this); } + +MatrixColX::~MatrixColX() { if (+(cw*StoreOnExit)) gm->RestoreCol(*this); } + +#ifdef use_namespace +} +#endif + diff --git a/.svn/pristine/51/51d04777c0a118faaf70a3381586bd2353892d3f.svn-base b/.svn/pristine/51/51d04777c0a118faaf70a3381586bd2353892d3f.svn-base new file mode 100644 index 0000000..d16d632 --- /dev/null +++ b/.svn/pristine/51/51d04777c0a118faaf70a3381586bd2353892d3f.svn-base @@ -0,0 +1,62 @@ +//---------------------------------------------------------------------- +// File: bd_pr_search.cpp +// Programmer: David Mount +// Description: Priority search for bd-trees +// Last modified: 01/04/05 (Version 1.0) +//---------------------------------------------------------------------- +// Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +// David Mount. All Rights Reserved. +// +// This software and related documentation is part of the Approximate +// Nearest Neighbor Library (ANN). This software is provided under +// the provisions of the Lesser GNU Public License (LGPL). See the +// file ../ReadMe.txt for further information. +// +// The University of Maryland (U.M.) and the authors make no +// representations about the suitability or fitness of this software for +// any purpose. It is provided "as is" without express or implied +// warranty. +//---------------------------------------------------------------------- +//History: +// Revision 0.1 03/04/98 +// Initial release +//---------------------------------------------------------------------- + +#include "bd_tree.h" // bd-tree declarations +#include "kd_pr_search.h" // kd priority search declarations + +//---------------------------------------------------------------------- +// Approximate priority searching for bd-trees. +// See the file kd_pr_search.cc for general information on the +// approximate nearest neighbor priority search algorithm. Here +// we include the extensions for shrinking nodes. +//---------------------------------------------------------------------- + +//---------------------------------------------------------------------- +// bd_shrink::ann_search - search a shrinking node +//---------------------------------------------------------------------- + +void ANNbd_shrink::ann_pri_search(ANNdist box_dist) +{ + ANNdist inner_dist = 0; // distance to inner box + for (int i = 0; i < n_bnds; i++) { // is query point in the box? + if (bnds[i].out(ANNprQ)) { // outside this bounding side? + // add to inner distance + inner_dist = (ANNdist) ANN_SUM(inner_dist, bnds[i].dist(ANNprQ)); + } + } + if (inner_dist <= box_dist) { // if inner box is closer + if (child[ANN_OUT] != KD_TRIVIAL) // enqueue outer if not trivial + ANNprBoxPQ->insert(box_dist,child[ANN_OUT]); + // continue with inner child + child[ANN_IN]->ann_pri_search(inner_dist); + } + else { // if outer box is closer + if (child[ANN_IN] != KD_TRIVIAL) // enqueue inner if not trivial + ANNprBoxPQ->insert(inner_dist,child[ANN_IN]); + // continue with outer child + child[ANN_OUT]->ann_pri_search(box_dist); + } + ANN_FLOP(3*n_bnds) // increment floating ops + ANN_SHR(1) // one more shrinking node +} diff --git a/.svn/pristine/51/51f8034e47c326f2f7d893942aeacdf616bbb23a.svn-base b/.svn/pristine/51/51f8034e47c326f2f7d893942aeacdf616bbb23a.svn-base new file mode 100644 index 0000000..1a5fb6a --- /dev/null +++ b/.svn/pristine/51/51f8034e47c326f2f7d893942aeacdf616bbb23a.svn-base @@ -0,0 +1,27 @@ +/** + * @file + * @brief IO of a 3D scan in uos file format + * @author Thomas Escher + */ + +#ifndef __SCAN_IO_KS_RGB_H__ +#define __SCAN_IO_KS_RGB_H__ + +#include "scan_io.h" + + + +/** + * @brief 3D scan loader for KS RGB scans + * + * The compiled class is available as shared object file + */ +class ScanIO_ks_rgb : public ScanIO { +public: + virtual std::list readDirectory(const char* dir_path, unsigned int start, unsigned int end); + virtual void readPose(const char* dir_path, const char* identifier, double* pose); + virtual void readScan(const char* dir_path, const char* identifier, PointFilter&& filter, std::vector* xyz, std::vector* rgb, std::vector* reflectance, std::vector* amplitude, std::vector* type, std::vector* deviation); + virtual bool supports(IODataType type); +}; + +#endif diff --git a/.svn/pristine/52/5259e414762fd1acb04d6c0db243561639a951b8.svn-base b/.svn/pristine/52/5259e414762fd1acb04d6c0db243561639a951b8.svn-base new file mode 100644 index 0000000..c3e0233 --- /dev/null +++ b/.svn/pristine/52/5259e414762fd1acb04d6c0db243561639a951b8.svn-base @@ -0,0 +1,96 @@ +#----------------------------------------------------------------------------- +# Makefile for the test and evaluation program +# +# ANN: Approximate Nearest Neighbors +# Version: 1.1.1 08/04/06 +#----------------------------------------------------------------------------- +# Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +# David Mount. All Rights Reserved. +# +# This software and related documentation is part of the Approximate +# Nearest Neighbor Library (ANN). This software is provided under +# the provisions of the Lesser GNU Public License (LGPL). See the +# file ../ReadMe.txt for further information. +# +# The University of Maryland (U.M.) and the authors make no +# representations about the suitability or fitness of this software for +# any purpose. It is provided "as is" without express or implied +# warranty. +#----------------------------------------------------------------------------- +# Revision 0.1 03/04/98 +# Initial release +# Revision 1.1.1 08/04/06 +# Added copyright/license +#----------------------------------------------------------------------------- +# Note: For full performance measurements, it is assumed that the library +# and this program have both been compiled with the -DANN_PERF flag. See +# the Makefile in the ANN base directory for this flag. +#----------------------------------------------------------------------------- + +#----------------------------------------------------------------------------- +# Basic definitions +# BASEDIR where include, src, lib, ... are +# INCDIR include directory +# LIBDIR library directory +# BINDIR bin directory +# LDFLAGS loader flags +# ANNLIBS ANN library +# OTHERLIBS other libraries +#----------------------------------------------------------------------------- + +BASEDIR = .. +INCDIR = $(BASEDIR)/include +LIBDIR = $(BASEDIR)/lib +BINDIR = $(BASEDIR)/bin +LDFLAGS = -L$(LIBDIR) +ANNLIBS = -lANN +OTHERLIBS = -lm + +#----------------------------------------------------------------------------- +# Some more definitions +# ANNTEST name of test program +#----------------------------------------------------------------------------- + +ANNTEST = ann_test + +HEADERS = rand.h +TESTSOURCES = ann_test.cpp rand.cpp +TESTOBJECTS = $(TESTSOURCES:.cpp=.o) + +#----------------------------------------------------------------------------- +# Make the program +#----------------------------------------------------------------------------- + +default: + @echo "Specify a target configuration" + +targets: $(BINDIR)/$(ANNTEST) + +$(BINDIR)/$(ANNTEST): $(TESTOBJECTS) $(LIBDIR)/$(ANNLIB) + $(C++) $(TESTOBJECTS) -o $(ANNTEST) $(LDFLAGS) $(ANNLIBS) $(OTHERLIBS) + mv $(ANNTEST) $(BINDIR) + +#----------------------------------------------------------------------------- +# configuration definitions +#----------------------------------------------------------------------------- + +include ../Make-config + +#----------------------------------------------------------------------------- +# Objects +#----------------------------------------------------------------------------- + +ann_test.o: ann_test.cpp + $(C++) -c -I$(INCDIR) $(CFLAGS) ann_test.cpp + +rand.o: rand.cpp + $(C++) -c -I$(INCDIR) $(CFLAGS) rand.cpp + +#----------------------------------------------------------------------------- +# Cleaning +#----------------------------------------------------------------------------- + +clean: + -rm -f *.o *.out core + +realclean: clean diff --git a/.svn/pristine/53/5355544dc020e61cbfa35516994a7abbfa2cf24a.svn-base b/.svn/pristine/53/5355544dc020e61cbfa35516994a7abbfa2cf24a.svn-base new file mode 100644 index 0000000..b71b79f --- /dev/null +++ b/.svn/pristine/53/5355544dc020e61cbfa35516994a7abbfa2cf24a.svn-base @@ -0,0 +1,690 @@ +/* + * quadtree implementation + * + * Copyright (C) Dorit Borrmann + * + * Released under the GPL version 3. + * + */ + +#include "shapes/quadtree.h" + +int QuadTree::anz; +double QuadTree::qSize; +double QuadTree::dist = 10.0; +//Plane *QuadTree::basePlane; +/* +QuadTree::QuadTree(double **pts, int n, double _qSize, Plane *_basePlane){ + basePlane = _basePlane; + + anz = 0; + qSize = _qSize; + double xmin = pts[0][0], xmax = pts[0][0]; + double ymin = pts[0][1], ymax = pts[0][1]; + for (int i=1; i < n; i++) { + xmin = min(xmin, pts[i][0]); + xmax = max(xmax, pts[i][0]); + ymin = min(ymin, pts[i][1]); + ymax = max(ymax, pts[i][1]); + } + center[0] = 0.5f * (xmin+xmax); + center[1] = 0.5f * (ymin+ymax); + + double m = max(0.5f * (xmax-xmin), 0.5f * (ymax-ymin)); + int count; + + //set up values + child[0] = child[1] = child[2] = child[3] = 0; + leaf = 0; + + x_size = m; + y_size = m; + + // calculate new buckets + double newcenter[4][2]; + double x_sizeNew, y_sizeNew; + + x_sizeNew = x_size / 2.0; + y_sizeNew = y_size / 2.0; + + newcenter[0][0] = center[0] - x_size / 2.0; + newcenter[0][1] = center[1] - y_size / 2.0; + + newcenter[1][0] = center[0] + x_size / 2.0; + newcenter[1][1] = center[1] - y_size / 2.0; + + newcenter[2][0] = center[0] - x_size / 2.0; + newcenter[2][1] = center[1] + y_size / 2.0; + + newcenter[3][0] = center[0] + x_size / 2.0; + newcenter[3][1] = center[1] + y_size / 2.0; + + // if bucket is _not_ approximately (nearly) empty don't build tree further + // ----------------------------------------------------------------------- + for (int i = 0; i < 4; i++) { + vector splitPoints; + count = countPointsAndQueue(pts, n, splitPoints, + newcenter[i], x_sizeNew, y_sizeNew); + if (count > MIN_PTS_IN_BUCKET) + child[i] = new QuadTree(splitPoints, + newcenter[i], x_sizeNew, y_sizeNew); + splitPoints.clear(); + } +}*/ + +bool QuadTree::close(double* p, double *p2) { + double stheta = sin(p[0]) * sin(p2[0]); + double myd2 = acos( + stheta * cos(p[1]) * cos(p2[1]) + + stheta * sin(p[1]) * sin(p2[1]) + + cos(p[0]) * cos(p2[0])); + if (myd2 < dist) { + return true; + } + return false; +/* + double dx = p2[0] - p[0]; + double dy = p2[1] - p[1]; + if ( sqrt(dx*dx + dy*dy) < dist ) { + return true; + } + return false;*/ +} + +bool QuadTree::close(double* p, set &cluster) { + for(set::iterator it = cluster.begin(); it != cluster.end(); it++) { + if ( close(p, (*it)) ) { + return true; + } + } + return false; +} +/* +bool QuadTree::close(double* p, set &cluster) { + double dx,dy; + for(set::iterator it = cluster.begin(); it != cluster.end(); it++) { + dx = (*it)[0] - p[0]; + dy = (*it)[1] - p[1]; + if ( sqrt(dx*dx + dy*dy) < dist ) { + return true; + } + } + return false; +}*/ +int QuadTree::where(double *p1, vector >& clusters) { + for (unsigned int i = 0; i < clusters.size(); i++) { + if (clusters[i].count(p1) > 0) return i; + } + // this shouldnt happen + //cout << "VERY BAD THINGS HAPPENED!" < >& QuadTree::clusterCells(vector > &clusters1, set border1, + vector > &clusters2, set border2, vector< set > &clusters) { + if (border1.size() <= 0 || border2.size() <= 0) { + clusters.insert( clusters.end(), clusters1.begin(), clusters1.end()); + clusters.insert( clusters.end(), clusters2.begin(), clusters2.end()); + return clusters; + } + // some clusters might not have a border connection, remember those? + set non_used_clusters; + for (unsigned int i = 0; i < clusters1.size(); i++) { + non_used_clusters.insert( -1 -i); + } + for (unsigned int i = 0; i < clusters2.size(); i++) { + non_used_clusters.insert( i); + } + + // contains the edges of the correspondence graph + // indices of cluster 1 are stored negated + vector cgraph; +//cout << "bordersizes: " << border1.size() << " " << border2.size() << endl; + for (set::iterator bit1 = border1.begin(); bit1 != border1.end(); bit1++) { + for (set::iterator bit2 = border2.begin(); bit2 != border2.end(); bit2++) { + if (close( *bit1, *bit2) ) { + int *edge = new int[3]; + int w1,w2; + w1 = where(*bit1, clusters1); + if (w1 == -1) { + continue; + } + w2 = where(*bit2, clusters2); + if (w2 == -1) { + continue; + } + + edge[0] = -1 - w1; + edge[1] = w2; + // label the edge + edge[2] = -1; + cgraph.push_back(edge); +// cout << "point to point " << edge[0] << " " << edge[1] << endl; + } + } + } + //cout << "borders connected" << endl; + vector< set > index_clusters; + int nr_cluster = 0; + for (unsigned int i = 0; i < cgraph.size(); i++) { + if (cgraph[i][2] != -1) {continue;} + // unlabeled edge + cgraph[i][2] = nr_cluster; + set index_cluster; + index_cluster.insert(cgraph[i][0]); + index_cluster.insert(cgraph[i][1]); + non_used_clusters.erase(cgraph[i][0]); + non_used_clusters.erase(cgraph[i][1]); + for (unsigned int j = i + 1; j < cgraph.size(); j++) { +// cout << j << " j " << cgraph.size() << endl; + if (cgraph[j][2] != -1) {continue;} + // if either of the nodes is already in my cluster, label edge and add + // nodes + if (index_cluster.count(cgraph[j][0]) > 0 + || index_cluster.count(cgraph[j][1]) > 0 ) { + index_cluster.insert(cgraph[j][0]); + index_cluster.insert(cgraph[j][1]); + + non_used_clusters.erase(cgraph[j][0]); + non_used_clusters.erase(cgraph[j][1]); + cgraph[j][2] = nr_cluster; + } + } + //non_used_clusters.erase(index_cluster.begin(), index_cluster.end()); + index_clusters.push_back(index_cluster); + nr_cluster++; + } +//cout << "cluster connections resolved" << endl; + for (unsigned int i = 0; i < index_clusters.size(); i++) { + set cluster; + for (set::iterator it = index_clusters[i].begin(); + it != index_clusters[i].end(); it++) { + if (*it < 0 ) { + int index = -1 - (*it); + cluster.insert( clusters1[index].begin(), clusters1[index].end() ); + } else { + cluster.insert( clusters2[*it].begin(), clusters2[*it].end() ); + } + } + clusters.push_back(cluster); + } +//cout << "clusters joined. add remaining " << non_used_clusters.size() << endl; + for (set::iterator it = non_used_clusters.begin(); it != non_used_clusters.end(); it++) { + set cluster; + if (*it < 0 ) { + int index = -1 - (*it); + cluster.insert( clusters1[index].begin(), clusters1[index].end() ); + } else { + cluster.insert( clusters2[*it].begin(), clusters2[*it].end() ); + } + clusters.push_back(cluster); + } +//cout << "done." << endl; + // cleanup + for (unsigned int i = 0; i < cgraph.size(); i++) { + delete[] cgraph[i]; + } + cgraph.clear(); +//cout << " cleanup done returning" << endl; + return clusters; +// return clusters1; +} + +vector >& QuadTree::getClusters() { + // if leaf node + if (leaf == 1) { + if (points.size() <= 0) return clusters; +// cout << "leaf clustering "; +// cout << center[0] << " " << center[1] << " " << points.size() << " " < ()); + clusters[0].insert(points[0]); + + for (unsigned int j = 1; j < points.size(); j++) { + bool found_cluster = false; + int oldindex = -1; + for (unsigned int i = 0; i < clusters.size(); i++) { + if ( close(points[j], clusters[i]) ) { + if (!found_cluster) { + clusters[i].insert(points[j]); + found_cluster = true; + oldindex = i; + //break; + } else { +// cout << " join cluster " << oldindex << " and " << i << endl; + clusters[oldindex].insert(clusters[i].begin(), clusters[i].end()); + clusters.erase(clusters.begin() + i); + i--; + //clusters[i] + } + } + } + if (!found_cluster) { // havent found a cose enough cluster -> new cluster + set cluster; + cluster.insert(points[j]); + clusters.push_back(cluster); + } + } +// cout << " this many cluster found in leaf " << clusters.size() << endl; + return clusters; + } + + //cout << "my leafs: "<< child[0] << " " << child[1] << " " << child[2] << " " << child[3] << endl; + vector< set > southclusters; + clusterCells(child[0]->getClusters(), child[0]->east, + child[1]->getClusters(), child[1]->west, southclusters); +// cout << "northern cluste: " << endl; + vector< set > northclusters; + clusterCells(child[2]->getClusters(), child[2]->east, + child[3]->getClusters(), child[3]->west, northclusters); +// cout << "south: " << southclusters.size() << endl; +// cout << "north: " << northclusters.size() << endl; + + // join borders + set nborders01; + nborders01.insert(child[0]->north.begin(), child[0]->north.end()); + nborders01.insert(child[1]->north.begin(), child[1]->north.end()); + + set sborders23; + sborders23.insert(child[2]->south.begin(), child[2]->south.end()); + sborders23.insert(child[3]->south.begin(), child[3]->south.end()); + + clusters = clusterCells(northclusters, sborders23, southclusters, nborders01, clusters); + if (clusters.size() > 0) { + //cout << "node clustered " << clusters.size() << endl; + //cout << center[0] << " " << center[1] << " " << points.size() << endl; + } + + return clusters; +} + +QuadTree::QuadTree(double **pts, int n, double _qSize, double min_d){ + dist = min_d; + anz = 0; + qSize = _qSize; + double xmin = pts[0][0], xmax = pts[0][0]; + double ymin = pts[0][1], ymax = pts[0][1]; + for (int i=1; i < n; i++) { + xmin = min(xmin, pts[i][0]); + xmax = max(xmax, pts[i][0]); + ymin = min(ymin, pts[i][1]); + ymax = max(ymax, pts[i][1]); + } + double eps = 0.00001; + xmin -= eps; + ymin -= eps; + xmax += eps; + ymax += eps; + center[0] = 0.5 * (xmin+xmax); + center[1] = 0.5 * (ymin+ymax); + + double m = max(0.5 * (xmax-xmin), 0.5 * (ymax-ymin)); + int count; + + //set up values + child[0] = child[1] = child[2] = child[3] = 0; + leaf = 0; + + x_size = m; + y_size = m; + + // calculate new buckets + double newcenter[4][2]; + double x_sizeNew, y_sizeNew; + + x_sizeNew = x_size / 2.0; + y_sizeNew = y_size / 2.0; + + newcenter[0][0] = center[0] - x_size / 2.0; + newcenter[0][1] = center[1] - y_size / 2.0; + + newcenter[1][0] = center[0] + x_size / 2.0; + newcenter[1][1] = center[1] - y_size / 2.0; + + newcenter[2][0] = center[0] - x_size / 2.0; + newcenter[2][1] = center[1] + y_size / 2.0; + + newcenter[3][0] = center[0] + x_size / 2.0; + newcenter[3][1] = center[1] + y_size / 2.0; + + // if bucket is _not_ approximately (nearly) empty don't build tree further + // ----------------------------------------------------------------------- + for (int i = 0; i < 4; i++) { + vector splitPoints; + set no,e,s,w; + count = countPointsAndQueue(pts, n, splitPoints, + newcenter[i], x_sizeNew, y_sizeNew, + no, e, s, w); + if (count > MIN_PTS_IN_BUCKET) + child[i] = new QuadTree(splitPoints, + newcenter[i], x_sizeNew, y_sizeNew, no,e,s,w); + splitPoints.clear(); + } +} + +QuadTree::QuadTree(vector &splitPoints, double _center[2], + double _x_size, double _y_size, set &n, + set &e, set &s, set &w) { + int count; + /* + this->north = n; + this->east = e; + this->south = s; + this->west = w; + */ + this->north.insert(n.begin(), n.end()); + this->south.insert(s.begin(), s.end()); + this->east.insert(e.begin(), e.end()); + this->west.insert(w.begin(), w.end()); + + //set up values + child[0] = child[1] = child[2] = child[3] = 0; + leaf = 0; + + center[0] = _center[0]; + center[1] = _center[1]; + x_size = _x_size; + y_size = _y_size; + + // if bucket is too small stop building tree + // ----------------------------------------- + if ((y_size <= qSize)) { + // copy points + for (unsigned int i = 0; i < splitPoints.size(); i++) { + points.push_back(splitPoints[i]); + } + leaf = 1; + anz++; + return; + } + + // calculate new buckets + double newcenter[4][3]; + double x_sizeNew, y_sizeNew; + + x_sizeNew = x_size / 2.0; + y_sizeNew = y_size / 2.0; + + newcenter[0][0] = center[0] - x_size / 2.0; + newcenter[0][1] = center[1] - y_size / 2.0; + + newcenter[1][0] = center[0] + x_size / 2.0; + newcenter[1][1] = center[1] - y_size / 2.0; + + newcenter[2][0] = center[0] - x_size / 2.0; + newcenter[2][1] = center[1] + y_size / 2.0; + + newcenter[3][0] = center[0] + x_size / 2.0; + newcenter[3][1] = center[1] + y_size / 2.0; + + // if bucket is _not_ approximately (nearly) empty don't build tree further + // ------------------------------------------------------------------------ + for (int i = 0; i < 4; i++) { + vector new_splitPoints; + set n,e,s,w; + count = countPointsAndQueue(splitPoints, new_splitPoints, + newcenter[i], x_sizeNew, y_sizeNew, + n, e, s, w); + if (count > MIN_PTS_IN_BUCKET) { + child[i] = new QuadTree(new_splitPoints, + newcenter[i], x_sizeNew, y_sizeNew, n,e,s,w); + } + new_splitPoints.clear(); + } +} + +int QuadTree::countPointsAndQueue(const vector &i_points, + vector &points, + double center[2], + double x_size, double y_size, + set &n, + set &e, + set &s, + set &w) +{ + int count = 0; + for (unsigned int i = 0; i < i_points.size(); i++) { + if (fabs(i_points[i][0] - center[0]) <= x_size) { + if (fabs(i_points[i][1] - center[1]) <= y_size) { + count++; + points.push_back(i_points[i]); + double top = asin(sin(i_points[i][0]) * sin( fabs( (center[1] + y_size) - i_points[i][1]) ) ); + double bottom = asin(sin(i_points[i][0]) * sin( fabs( i_points[i][1] - (center[1] - y_size) ) ) ); + + if ( fabs( (center[0] + x_size) - i_points[i][0]) < dist ) { + e.insert(i_points[i]); + } + if ( fabs( i_points[i][0] - (center[0] - x_size) ) < dist ) { + w.insert(i_points[i]); + } + if ( top < dist ) { + n.insert(i_points[i]); + } + if ( bottom < dist ) { + s.insert(i_points[i]); + } + } + } + } + return count; +} + +int QuadTree::countPointsAndQueue(double **pts, int n, + vector &points, + double center[2], + double x_size,double y_size, + set &no, + set &e, + set &s, + set &w) +{ + + int count = 0; + for (int i=0; i < n; i++) { + if (fabs(pts[i][0] - center[0]) <= x_size) { + if (fabs(pts[i][1] - center[1]) <= y_size) { + count++; + double *p = pts[i]; + points.push_back(p); + + double top = asin(sin(p[0]) * sin( fabs( (center[1] + y_size) - p[1]) ) ); + double bottom = asin(sin(p[0]) * sin( fabs( p[1] - (center[1] - y_size) ) ) ); + + if ( fabs( (center[0] + x_size) - p[0]) < dist ) { + e.insert(p); + } + if ( fabs( p[0] - (center[0] - x_size) ) < dist ) { + w.insert(p); + } + if ( top < dist ) { + no.insert(p); + } + if ( bottom < dist ) { + s.insert(p); + } + } + } + } + return count; +} + +int QuadTree::countPoints(double **pts, int n, double center[2], + double x_size, double y_size) +{ + int count = 0; + for (int i=0; i < n; i++) { + if (fabs(pts[i][0] - center[0]) <= x_size) { + if (fabs(pts[i][1] - center[1]) <= y_size) { + count++; + } + } + } + return count; +} +/* +void QuadTree::getQuadTreePoints(vector &quad_x, vector &quad_y, vector &quad_z) +{ + double x,y,z; + + if (leaf == 1) { + basePlane->projTo3D(center[0] - x_size, + center[1] - y_size, + x, y, z); + quad_x.push_back(x); + quad_y.push_back(y); + quad_z.push_back(z); + basePlane->projTo3D(center[0] + x_size, + center[1] - y_size, + x, y, z); + quad_x.push_back(x); + quad_y.push_back(y); + quad_z.push_back(z); + basePlane->projTo3D(center[0] + x_size, + center[1] + y_size, + x, y, z); + quad_x.push_back(x); + quad_y.push_back(y); + quad_z.push_back(z); + basePlane->projTo3D(center[0] - x_size, + center[1] + y_size, + x, y, z); + quad_x.push_back(x); + quad_y.push_back(y); + quad_z.push_back(z); + } else { + for( int i = 0; i < 4; i++){ + if (child[i] != 0) { + child[i]->getQuadTreePoints(quad_x, quad_y, quad_z); + } + } + } +} +*/ +/* +void QuadTree::getQuadTreeColor(double &colorR, double &colorG, double &colorB) +{ + switch (basePlane->getColor()) { + case 1: colorR = 0.6; colorG = 0.0; colorB = 0.0; break; + case 2: colorR = 0.0; colorG = 0.6; colorB = 0.0; break; + case 3: colorR = 0.0; colorG = 0.0; colorB = 0.6; break; + case 4: colorR = 0.6; colorG = 0.6; colorB = 0.0; break; + case 5: colorR = 0.6; colorG = 0.0; colorB = 0.6; break; + case 6: colorR = 0.0; colorG = 0.6; colorB = 0.6; break; + case 7: colorR = 0.6; colorG = 0.3; colorB = 0.3; break; + case 8: colorR = 0.3; colorG = 0.3; colorB = 0.3; break; + case 9: colorR = 0.3; colorG = 0.3; colorB = 0.6; break; + case 10: colorR = 0.6; colorG = 0.6; colorB = 0.6; break; + case 11: colorR = 0.1; colorG = 0.1; colorB = 0.6; break; + case 12: colorR = 0.1; colorG = 0.1; colorB = 0.1; break; + case 13: colorR = 0.1; colorG = 0.3; colorB = 0.1; break; + case 14: colorR = 0.1; colorG = 0.1; colorB = 0.3; break; + case 15: colorR = 0.3; colorG = 0.6; colorB = 0.3; break; + case 16: colorR = 0.3; colorG = 0.3; colorB = 0.1; break; + default: colorR = 0.3; colorG = 0.1; colorB = 0.1; + } +} +*/ +/* +int QuadTree::outputQuad(char *dir) +{ + cout << "writing "; + ofstream quadout; + char fname[64]; + strcpy(fname,dir);strcat(fname, "/quad.dat"); + + quadout.open(fname,ios::binary|ios::out|ios::app); + if (!quadout) { + cerr << "*** error: can't create file " << fname << " ***\n"; + exit(2); + } + int ret = _OutputQuad(quadout); + quadout.close(); + cout << ret << " quads from quadtree." << endl; + return ret; +} + +int QuadTree::_OutputQuad(ofstream &bBoxout) +{ + int ret = 0; + if (leaf == 1) { + + double x,y,z; + // cout << endl; + basePlane->projTo3D(center[0] - x_size, + center[1] - y_size, + x,y,z); + // cout << x << " " << y << " " << z << endl; + bBoxout.write((char*)&x, sizeof(double)); + bBoxout.write((char*)&y, sizeof(double)); + bBoxout.write((char*)&z, sizeof(double)); + basePlane->projTo3D(center[0] - x_size, + center[1] + y_size, + x,y,z); + // cout << x << " " << y << " " << z << endl; + bBoxout.write((char*)&x, sizeof(double)); + bBoxout.write((char*)&y, sizeof(double)); + bBoxout.write((char*)&z, sizeof(double)); + basePlane->projTo3D(center[0] + x_size, + center[1] + y_size, + x,y,z); + // cout << x << " " << y << " " << z << endl; + bBoxout.write((char*)&x, sizeof(double)); + bBoxout.write((char*)&y, sizeof(double)); + bBoxout.write((char*)&z, sizeof(double)); + basePlane->projTo3D(center[0] + x_size, + center[1] - y_size, + x,y,z); + // cout << x << " " << y << " " << z << endl; + bBoxout.write((char*)&x, sizeof(double)); + bBoxout.write((char*)&y, sizeof(double)); + bBoxout.write((char*)&z, sizeof(double)); + + +// float col = 0.0; +// for (int i = 0; i < points.size(); i++) { +// col = max(col, points[i][2]); +// } +// +// col = col / 3.0; +// + + float col = 0; //!!! + + double gcolorR, gcolorG, gcolorB; + getQuadTreeColor(gcolorR, gcolorG, gcolorB); + + float col_r = col + gcolorR; + float col_g = col + gcolorG; + float col_b = col + gcolorB; + bBoxout.write((char*)&col_r, sizeof(float)); + bBoxout.write((char*)&col_g, sizeof(float)); + bBoxout.write((char*)&col_b, sizeof(float)); + + return 1; + } + + for( int i = 0; i < 4; i++){ + if (child[i] != 0) { + ret += child[i]->_OutputQuad(bBoxout); + } + } + return ret; +} +*/ + +QuadTree::~QuadTree(){ + for(int i = 0; i < 4; i++) { + if (child[i] !=0) { + delete child[i]; + child[i] = 0; + } + } +} + + + + + + + + + diff --git a/.svn/pristine/53/5377a8e3c14b1c4d7a004e3809b8073580eaa683.svn-base b/.svn/pristine/53/5377a8e3c14b1c4d7a004e3809b8073580eaa683.svn-base new file mode 100644 index 0000000..4e7ab9e --- /dev/null +++ b/.svn/pristine/53/5377a8e3c14b1c4d7a004e3809b8073580eaa683.svn-base @@ -0,0 +1,280 @@ +/* + * kdMeta implementation + * + * Copyright (C) Andreas Nuechter, Kai Lingemann, Thomas Escher + * + * Released under the GPL version 3. + * + */ + +/** @file + * @brief An optimized k-d tree implementation. MetaScan variant. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Thomas Escher. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifdef _MSC_VER +#define _USE_MATH_DEFINES +#endif + +#include "slam6d/kdMeta.h" +#include "slam6d/globals.icc" +#include "slam6d/scan.h" + +#include +using std::cout; +using std::cerr; +using std::endl; +#include +using std::swap; +#include +#include + +// KDtree class static variables +KDParams KDtreeMeta::params[MAX_OPENMP_NUM_THREADS]; + +KDtreeMeta::KDtreeMeta() +{ +} + +/** + * Create a KD tree from the points pointed to by the array pts + * + * @param pts 3D array of points + * @param n number of points + */ +void KDtreeMeta::create(const DataXYZ* const* pts, Index* indices, unsigned int n) +{ + // Find bbox + double xmin = point(pts, indices[0])[0], xmax = point(pts, indices[0])[0]; + double ymin = point(pts, indices[0])[1], ymax = point(pts, indices[0])[1]; + double zmin = point(pts, indices[0])[2], zmax = point(pts, indices[0])[2]; + for(unsigned int i = 1; i < n; i++) { + xmin = min(xmin, point(pts, indices[i])[0]); + xmax = max(xmax, point(pts, indices[i])[0]); + ymin = min(ymin, point(pts, indices[i])[1]); + ymax = max(ymax, point(pts, indices[i])[1]); + zmin = min(zmin, point(pts, indices[i])[2]); + zmax = max(zmax, point(pts, indices[i])[2]); + } + + // Leaf nodes + if ((n > 0) && (n <= 10)) { + npts = n; + leaf.p = new Index[n]; + // fill leaf index array with indices + for(unsigned int i = 0; i < n; ++i) { + leaf.p[i] = indices[i]; + } + return; + } + + // Else, interior nodes + npts = 0; + + node.center[0] = 0.5 * (xmin+xmax); + node.center[1] = 0.5 * (ymin+ymax); + node.center[2] = 0.5 * (zmin+zmax); + node.dx = 0.5 * (xmax-xmin); + node.dy = 0.5 * (ymax-ymin); + node.dz = 0.5 * (zmax-zmin); + node.r2 = sqr(node.dx) + sqr(node.dy) + sqr(node.dz); + + // Find longest axis + if (node.dx > node.dy) { + if (node.dx > node.dz) { + node.splitaxis = 0; + } else { + node.splitaxis = 2; + } + } else { + if (node.dy > node.dz) { + node.splitaxis = 1; + } else { + node.splitaxis = 2; + } + } + + // Partition + double splitval = node.center[node.splitaxis]; + + if ( fabs(max(max(node.dx,node.dy),node.dz)) < 0.01 ) { + npts = n; + leaf.p = new Index[n]; + // fill leaf index array with indices + for(unsigned int i = 0; i < n; ++i) { + leaf.p[i] = indices[i]; + } + return; + } + + Index* left = indices, * right = indices + n - 1; + while(true) { + while(point(pts, *left)[node.splitaxis] < splitval) + left++; + while(point(pts, *right)[node.splitaxis] >= splitval) + right--; + if(right < left) + break; + swap(*left, *right); + } + + // Build subtrees + int i; +#ifdef WITH_OPENMP_KD // does anybody know the reason why this is slower ?? --Andreas + omp_set_num_threads(OPENMP_NUM_THREADS); +#pragma omp parallel for schedule(dynamic) +#endif + for (i = 0; i < 2; i++) { + if (i == 0) { + node.child1 = new KDtreeMeta(); + node.child1->create(pts, indices, left - indices); + } + if (i == 1) { + node.child2 = new KDtreeMeta(); + node.child2->create(pts, left, n - (left - indices)); + } + } +} + +KDtreeMeta::~KDtreeMeta() +{ + if (!npts) { +#ifdef WITH_OPENMP_KD + omp_set_num_threads(OPENMP_NUM_THREADS); +#pragma omp parallel for schedule(dynamic) +#endif + for (int i = 0; i < 2; i++) { + if (i == 0 && node.child1) delete node.child1; + if (i == 1 && node.child2) delete node.child2; + } + } else { + if (leaf.p) delete [] leaf.p; + } +} + +/** + * Wrapped function + */ +void KDtreeMeta::_FindClosest(const DataXYZ* const* pts, int threadNum) const +{ + // Leaf nodes + if (npts) { + for (int i = 0; i < npts; i++) { + double myd2 = Dist2(params[threadNum].p, point(pts, leaf.p[i])); + if (myd2 < params[threadNum].closest_d2) { + params[threadNum].closest_d2 = myd2; + params[threadNum].closest = point(pts, leaf.p[i]); + } + } + return; + } + + // Quick check of whether to abort + double approx_dist_bbox = max(max(fabs(params[threadNum].p[0]-node.center[0])-node.dx, + fabs(params[threadNum].p[1]-node.center[1])-node.dy), + fabs(params[threadNum].p[2]-node.center[2])-node.dz); + if (approx_dist_bbox >= 0 && sqr(approx_dist_bbox) >= params[threadNum].closest_d2) + return; + + // Recursive case + double myd = node.center[node.splitaxis] - params[threadNum].p[node.splitaxis]; + if (myd >= 0.0) { + node.child1->_FindClosest(pts, threadNum); + if (sqr(myd) < params[threadNum].closest_d2) { + node.child2->_FindClosest(pts, threadNum); + } + } else { + node.child2->_FindClosest(pts, threadNum); + if (sqr(myd) < params[threadNum].closest_d2) { + node.child1->_FindClosest(pts, threadNum); + } + } +} + +KDtreeMetaManaged::KDtreeMetaManaged(const vector& scans) : + m_count_locking(0) +{ + // create scan pointer and data pointer arrays + m_size = scans.size(); + m_scans = new Scan*[m_size]; + for(unsigned int i = 0; i < m_size; ++i) + m_scans[i] = scans[i]; + m_data = new DataXYZ*[m_size]; + + lock(); + create(m_data, prepareTempIndices(scans), getPointsSize(scans)); + unlock(); + + // allocate in prepareTempIndices, deleted here + delete[] m_temp_indices; +} + +KDtreeMetaManaged::~KDtreeMetaManaged() +{ + delete[] m_scans; + delete[] m_data; +} + +KDtreeMeta::Index* KDtreeMetaManaged::prepareTempIndices(const vector& scans) +{ + unsigned int n = getPointsSize(scans); + + m_temp_indices = new Index[n]; + unsigned int s = 0, j = 0; + unsigned int scansize = scans[s]->size("xyz reduced"); + for(unsigned int i = 0; i < n; ++i) { + m_temp_indices[i].set(s, j++); + // switch to next scan + if(j >= scansize) { + ++s; + j = 0; + if(s < scans.size()) + scansize = scans[s]->size("xyz reduced"); + } + } + return m_temp_indices; +} + +unsigned int KDtreeMetaManaged::getPointsSize(const vector& scans) +{ + unsigned int n = 0; + for(vector::const_iterator it = scans.begin(); it != scans.end(); ++it) { + n += (*it)->size("xyz reduced"); + } + return n; +} + +double* KDtreeMetaManaged::FindClosest(double *_p, double maxdist2, int threadNum) const +{ + params[threadNum].closest = 0; + params[threadNum].closest_d2 = maxdist2; + params[threadNum].p = _p; + _FindClosest(m_data, threadNum); + return params[threadNum].closest; +} + +void KDtreeMetaManaged::lock() +{ + boost::lock_guard lock(m_mutex_locking); + if(m_count_locking == 0) { + // lock all the contained scans, metascan uses the transformed points + for(unsigned int i = 0; i < m_size; ++i) { + m_data[i] = new DataXYZ(m_scans[i]->get("xyz reduced")); + } + } + ++m_count_locking; +} + +void KDtreeMetaManaged::unlock() +{ + boost::lock_guard lock(m_mutex_locking); + --m_count_locking; + if(m_count_locking == 0) { + // delete each locking object + for(unsigned int i = 0; i < m_size; ++i) { + delete m_data[i]; + } + } +} diff --git a/.svn/pristine/53/538903073c78f5e65ac5c42fda042ded396c6d98.svn-base b/.svn/pristine/53/538903073c78f5e65ac5c42fda042ded396c6d98.svn-base new file mode 100644 index 0000000..37bd7c3 --- /dev/null +++ b/.svn/pristine/53/538903073c78f5e65ac5c42fda042ded396c6d98.svn-base @@ -0,0 +1,198 @@ + +#define WANT_STREAM + +#define WANT_MATH + +#include "newmat.h" + +#include "tmt.h" + +#ifdef use_namespace +using namespace NEWMAT; +#endif + + + +// test maxima and minima + +Real TestMax(const GenericMatrix& GM) +{ + Matrix M = GM; + ColumnVector CV = GM.AsColumn(); + + int c, i, j, k; int n = CV.Nrows(), nr = M.Nrows(), nc = M.Ncols(); + Real x1, x2, x3; + + MatrixBandWidth mbw = GM.BandWidth(); + int u = mbw.Upper(); int l = mbw.Lower(); + bool IsBandMatrix = u > 0 && l > 0 && !(u == 0 && l == 0); + + x1 = GM.MaximumAbsoluteValue(); + x2 = GM.MaximumAbsoluteValue1(i); + if (fabs(CV(i)) != x2) return 1.1; + x3 = GM.MaximumAbsoluteValue2(i,j); + if (fabs(M(i,j)) != x3) return 1.2; + if (x3 != x1) return 1.3; + if (x2 != x1) return 1.4; + c = 0; + for (k = 1; k <= n; k++) + { + Real cvk = fabs(CV(k)); + if (x1 <= cvk) { if (x1 < cvk) return 1.5; else c++; } + } + if (c == 0) return 1.6; + + + x1 = GM.MinimumAbsoluteValue(); + x2 = GM.MinimumAbsoluteValue1(i); + if (fabs(CV(i)) != x2) return 2.1; + x3 = GM.MinimumAbsoluteValue2(i,j); + if (fabs(M(i,j)) != x3) return 2.2; + if (x3 != x1) return 2.3; + if (x2 != CV.MinimumAbsoluteValue()) return 2.4; + c = 0; + if (IsBandMatrix) + { + for (i = 1; i <= nr; i++) for (j = 1; j <= nc; j++) + if (i - j <= l && j - i <= u) + { + Real mij = fabs(M(i,j)); + if (x1 >= mij) { if (x1 > mij) return 2.51; else c++; } + } + } + else + { + for (k = 1; k <= n; k++) + { + Real cvk = fabs(CV(k)); + if (x1 >= cvk) { if (x1 > cvk) return 2.52; else c++; } + } + } + if (c == 0) return 2.6; + + x1 = GM.Maximum(); + x2 = GM.Maximum1(i); + if (CV(i) != x2) return 3.1; + x3 = GM.Maximum2(i,j); + if (M(i,j) != x3) return 3.2; + if (x3 != x1) return 3.3; + if (x2 != CV.Maximum()) return 3.4; + c = 0; + if (IsBandMatrix) + { + for (i = 1; i <= nr; i++) for (j = 1; j <= nc; j++) + if (i - j <= l && j - i <= u) + { + Real mij = M(i,j); + if (x1 <= mij) { if (x1 < mij) return 3.51; else c++; } + } + } + else + { + for (k = 1; k <= n; k++) + { + Real cvk = CV(k); + if (x1 <= cvk) { if (x1 < cvk) return 3.52; else c++; } + } + } + if (c == 0) return 3.6; + + x1 = GM.Minimum(); + x2 = GM.Minimum1(i); + if (CV(i) != x2) return 4.1; + x3 = GM.Minimum2(i,j); + if (M(i,j) != x3) return 4.2; + if (x3 != x1) return 4.3; + if (x2 != CV.Minimum()) return 4.4; + c = 0; + if (IsBandMatrix) + { + for (i = 1; i <= nr; i++) for (j = 1; j <= nc; j++) + if (i - j <= l && j - i <= u) + { + Real mij = M(i,j); + if (x1 >= mij) { if (x1 > mij) return 4.51; else c++; } + } + } + else + { + for (k = 1; k <= n; k++) + { + Real cvk = CV(k); + if (x1 >= cvk) { if (x1 > cvk) return 4.52; else c++; } + } + } + if (c == 0) return 4.6; + + return 0; + +} + + +void trymatl() +{ + Tracer et("Twenty first test of Matrix package"); + Tracer::PrintTrace(); + + Matrix M(4, 4); + M << 1.5 << 1.0 << -4.0 << 4.5 + << 3.5 << 7.0 << 2.0 << -1.0 + << -1.5 << 7.5 << -6.0 << 5.0 + << 0.5 << -8.0 << 5.5 << 4.0; + UpperTriangularMatrix UM; UM << M; + LowerTriangularMatrix LM; LM << -M; + SymmetricMatrix SM; SM << (UM + UM.t()); + BandMatrix BM(4, 1, 2); BM.Inject(M); + DiagonalMatrix DM; DM << M; + SymmetricBandMatrix SBM(4,1); SBM.Inject(M); + RowVector Test(28); int k = 0; + + // tests for different shapes + Test(++k) = TestMax(GenericMatrix(M)); + Test(++k) = TestMax(GenericMatrix(UM)); + Test(++k) = TestMax(GenericMatrix(LM)); + Test(++k) = TestMax(GenericMatrix(SM)); + Test(++k) = TestMax(GenericMatrix(DM)); + Test(++k) = TestMax(GenericMatrix(BM)); + Test(++k) = TestMax(GenericMatrix(SBM)); + + // tests for constant matrices - don't put non-zeros in corners of BM + Matrix MX(4,4); + MX = 1; Test(++k) = TestMax(GenericMatrix(MX)); + BM.Inject(MX); Test(++k) = TestMax(GenericMatrix(BM)); + MX = 0; Test(++k) = TestMax(GenericMatrix(MX)); + BM.Inject(MX); Test(++k) = TestMax(GenericMatrix(BM)); + MX = -1; Test(++k) = TestMax(GenericMatrix(MX)); + BM.Inject(MX); Test(++k) = TestMax(GenericMatrix(BM)); + + // test for non-square + MX = M | (2 * M).t(); Test(++k) = TestMax(GenericMatrix(MX)); + + // test on row and column vector + RowVector RV(6); + RV << 1 << 3 << -5 << 2 << -4 << 3; + Test(++k) = TestMax(GenericMatrix(RV)); + Test(++k) = TestMax(GenericMatrix(RV.t())); + + // test for function form + Test(++k) = (MaximumAbsoluteValue(RV) - 5); + Test(++k) = (MinimumAbsoluteValue(RV) - 1); + Test(++k) = (Maximum(RV) - 3); + Test(++k) = (Minimum(RV) + 5); + Test(++k) = (MaximumAbsoluteValue(-RV) - 5); + Test(++k) = (MinimumAbsoluteValue(-RV) - 1); + Test(++k) = (Maximum(-RV) - 5); + Test(++k) = (Minimum(-RV) + 3); + + // test formulae + RowVector RV2(6); + RV2 << 2 << 8 << 1 << 9 << 3 << -1; + Test(++k) = (MaximumAbsoluteValue(RV+RV2) - 11); + Test(++k) = (MinimumAbsoluteValue(RV+RV2) - 1); + Test(++k) = (Maximum(RV+RV2) - 11); + Test(++k) = (Minimum(RV+RV2) + 4); + + + Print(Test); +} + diff --git a/.svn/pristine/54/541f10eb816a3225f551e2c7ed4c04ce8e416110.svn-base b/.svn/pristine/54/541f10eb816a3225f551e2c7ed4c04ce8e416110.svn-base new file mode 100644 index 0000000..61d7151 --- /dev/null +++ b/.svn/pristine/54/541f10eb816a3225f551e2c7ed4c04ce8e416110.svn-base @@ -0,0 +1,172 @@ +/* + * loopToro implementation + * + * Copyright (C) Jochen Sprickerhof + * + * Released under the GPL version 3. + * + */ + + +/** + * @file TORO wrapper + * @author Jochen Sprickerhof. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "slam6d/loopToro.h" + +#include "slam6d/metaScan.h" +#include "slam6d/lum6Deuler.h" +#include "slam6d/globals.icc" + +#include +using std::ofstream; +using std::ifstream; + +#include +using boost::graph_traits; +using namespace NEWMAT; +/** + * @param allScans all laser scans + * @param first index of first laser scan in the loop + * @param last indes of last laser scan in the loop + * @param g graph for loop optimization + */ +void loopToro::close_loop(const vector &allScans, int first, int last, graph_t &g) +{ + int n = num_vertices(g); + Matrix C(6, 6); + double invers[16], rela[16], rPos[3], rPosTheta[3], rPosQuat[4]; + ofstream outFile("toro.graph"); + + for(int i = 0; i < n; i++) { + QuatRPYEuler(allScans[i]->get_rPosQuat(), rPosTheta); + outFile << "VERTEX3" << " " << i << + " " << (allScans[i]->get_rPos()[0]/100) << + " " << (allScans[i]->get_rPos()[1]/100) << + " " << (allScans[i]->get_rPos()[2]/100) << + " " << rPosTheta[0] << + " " << rPosTheta[1] << + " " << rPosTheta[2] << "\n"; + } + + graph_traits ::edge_iterator ei = edges(g).first; + int num_arcs = num_edges(g); + int li = 0; +#ifdef _OPENMP +#pragma omp parallel for firstprivate(li, ei) private(invers, rela, rPos, rPosTheta, rPosQuat, C) +#endif + for(int i = 0; i < num_arcs; i++) { + for(;i > li; li++, ei++) ; + for(;i < li; li--, ei--) ; + int from = source(*ei, g); + int to = target(*ei, g); + + M4inv(allScans[from]->get_transMat(), invers); + MMult(invers, allScans[to]->get_transMat(), rela); + Matrix4ToQuat(rela, rPosQuat, rPos); + QuatRPYEuler(rPosQuat, rPosTheta); + + lum6DEuler::covarianceEuler(allScans[from], allScans[to], my_icp6D->get_nns_method(), my_icp6D->get_rnd(), my_icp6D->get_max_dist_match2(), &C); + +#ifdef _OPENMP +#pragma omp critical +#endif + { + outFile << "EDGE3" << " " << from << " " << to << " " << + (rPos[0]/100) << " " << + (rPos[1]/100) << " " << + (rPos[2]/100) << " " << + rPosTheta[0] << " " << + rPosTheta[1] << " " << + rPosTheta[2] << " "; + for(int i = 1; i < 7; i++) + for(int j = i; j < 7; j++) + outFile << C(i, j) << " "; + outFile << endl; + } + } + + vector meta_start; + for(int i = first - 2; i <= first + 2; i++) { + if(i >= 0) { + meta_start.push_back(allScans[i]); + } + } + MetaScan *start = new MetaScan(meta_start, false, false); + + //static size of metascan + int offset_last_start = 2; + int offset_last_end = 0; + + vector meta_end; + for(int i = last - offset_last_start; i <= last + offset_last_end && i < n; i++) { + meta_end.push_back(allScans[i]); + } + MetaScan *end = new MetaScan(meta_end, false, false); + + my_icp6D->match(start, end); + + delete start; + delete end; + + M4inv(allScans[last]->get_transMat(), invers); + MMult(invers, allScans[first]->get_transMat(), rela); + Matrix4ToQuat(rela, rPosQuat, rPos); + QuatRPYEuler(rPosQuat, rPosTheta); + + lum6DEuler::covarianceEuler(allScans[first], allScans[last], my_icp6D->get_nns_method(), my_icp6D->get_rnd(), my_icp6D->get_max_dist_match2(), &C); + + outFile << "EDGE3" << " " << last << " " << first << " " << + (rPos[0]/100) << " " << + (rPos[1]/100) << " " << + (rPos[2]/100) << " " << + rPosTheta[0] << " " << + rPosTheta[1] << " " << + rPosTheta[2] << " " << + C(1, 1) << " " << C(1, 2) << " " << C(1, 3) << " " << C(1, 4) << " " << C(1, 5) << " " << C(1, 6) << " " << + C(1, 1) << " " << C(1, 2) << " " << C(1, 3) << " " << C(1, 4) << " " << C(1, 5) << " " << + C(1, 1) << " " << C(1, 2) << " " << C(1, 3) << " " << C(1, 4) << " " << + C(1, 1) << " " << C(1, 2) << " " << C(1, 3) << " " << + C(1, 1) << " " << C(1, 2) << " " << + C(1, 1) << " " << "\n"; + outFile.close(); + + system("sort toro.graph > toro2.graph && mv toro2.graph toro.graph && ./bin/toro3d -i 300 toro.graph"); + + ifstream inFile("toro-treeopt-final.graph"); + string tag; + int id; + double dd; + double rPosN[3], rPosThetaN[3]; + while(inFile) { + inFile >> tag; + if(tag == "VERTEX3") { + inFile >> id; + if(id == n-1) { + inFile >> rPosN[0] >> rPosN[1] >> rPosN[2] >> rPosThetaN[0] >> rPosThetaN[1] >> rPosThetaN[2]; + rPosN[0] *= 100; + rPosN[1] *= 100; + rPosN[2] *= 100; + } else { + inFile >> rPos[0] >> rPos[1] >> rPos[2] >> rPosTheta[0] >> rPosTheta[1] >> rPosTheta[2]; + rPos[0] *= 100; + rPos[1] *= 100; + rPos[2] *= 100; + RPYEulerQuat(rPosTheta, rPosQuat); + if(id != 0) { + allScans[id]->transformToQuat(rPos, rPosQuat, Scan::LOOPTORO, 1); + } + } + } + else if(tag == "EDGE3") { + inFile >> id >> id; + for(int i=0; i < 22; i++) { + inFile >> dd; + } + } + } + RPYEulerQuat(rPosThetaN, rPosQuat); + allScans[n-1]->transformToQuat(rPosN, rPosQuat, Scan::LOOPTORO, 2); + inFile.close(); +} diff --git a/.svn/pristine/54/54262a937565c728addc7bfc4322555f5b3b439b.svn-base b/.svn/pristine/54/54262a937565c728addc7bfc4322555f5b3b439b.svn-base new file mode 100644 index 0000000..f39082e --- /dev/null +++ b/.svn/pristine/54/54262a937565c728addc7bfc4322555f5b3b439b.svn-base @@ -0,0 +1,914 @@ +//---------------------------------------------------------------------- +// File: ANN.h +// Programmer: Sunil Arya and David Mount +// Last modified: 05/03/05 (Release 1.1) +// Description: Basic include file for approximate nearest +// neighbor searching. +//---------------------------------------------------------------------- +// Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +// David Mount. All Rights Reserved. +// +// This software and related documentation is part of the Approximate +// Nearest Neighbor Library (ANN). This software is provided under +// the provisions of the Lesser GNU Public License (LGPL). See the +// file ../ReadMe.txt for further information. +// +// The University of Maryland (U.M.) and the authors make no +// representations about the suitability or fitness of this software for +// any purpose. It is provided "as is" without express or implied +// warranty. +//---------------------------------------------------------------------- +// History: +// Revision 0.1 03/04/98 +// Initial release +// Revision 1.0 04/01/05 +// Added copyright and revision information +// Added ANNcoordPrec for coordinate precision. +// Added methods theDim, nPoints, maxPoints, thePoints to ANNpointSet. +// Cleaned up C++ structure for modern compilers +// Revision 1.1 05/03/05 +// Added fixed-radius k-NN searching +//---------------------------------------------------------------------- + +//---------------------------------------------------------------------- +// ANN - approximate nearest neighbor searching +// ANN is a library for approximate nearest neighbor searching, +// based on the use of standard and priority search in kd-trees +// and balanced box-decomposition (bbd) trees. Here are some +// references to the main algorithmic techniques used here: +// +// kd-trees: +// Friedman, Bentley, and Finkel, ``An algorithm for finding +// best matches in logarithmic expected time,'' ACM +// Transactions on Mathematical Software, 3(3):209-226, 1977. +// +// Priority search in kd-trees: +// Arya and Mount, ``Algorithms for fast vector quantization,'' +// Proc. of DCC '93: Data Compression Conference, eds. J. A. +// Storer and M. Cohn, IEEE Press, 1993, 381-390. +// +// Approximate nearest neighbor search and bbd-trees: +// Arya, Mount, Netanyahu, Silverman, and Wu, ``An optimal +// algorithm for approximate nearest neighbor searching,'' +// 5th Ann. ACM-SIAM Symposium on Discrete Algorithms, +// 1994, 573-582. +//---------------------------------------------------------------------- + +#ifndef ANN_H +#define ANN_H + +#ifdef WIN32 + //---------------------------------------------------------------------- + // For Microsoft Visual C++, externally accessible symbols must be + // explicitly indicated with DLL_API, which is somewhat like "extern." + // + // The following ifdef block is the standard way of creating macros + // which make exporting from a DLL simpler. All files within this DLL + // are compiled with the DLL_EXPORTS preprocessor symbol defined on the + // command line. In contrast, projects that use (or import) the DLL + // objects do not define the DLL_EXPORTS symbol. This way any other + // project whose source files include this file see DLL_API functions as + // being imported from a DLL, wheras this DLL sees symbols defined with + // this macro as being exported. + //---------------------------------------------------------------------- + #ifdef DLL_EXPORTS + #define DLL_API __declspec(dllexport) + #else + #define DLL_API __declspec(dllimport) + #endif + //---------------------------------------------------------------------- + // DLL_API is ignored for all other systems + //---------------------------------------------------------------------- +#else + #define DLL_API +#endif + +//---------------------------------------------------------------------- +// basic includes +//---------------------------------------------------------------------- + +#include // math includes +#include // I/O streams +#include // I/O manipulators + +//---------------------------------------------------------------------- +// Limits +// There are a number of places where we use the maximum double value as +// default initializers (and others may be used, depending on the +// data/distance representation). These can usually be found in limits.h +// (as LONG_MAX, INT_MAX) or in float.h (as DBL_MAX, FLT_MAX). +// +// Not all systems have these files. If you are using such a system, +// you should set the preprocessor symbol ANN_NO_LIMITS_H when +// compiling, and modify the statements below to generate the +// appropriate value. For practical purposes, this does not need to be +// the maximum double value. It is sufficient that it be at least as +// large than the maximum squared distance between between any two +// points. +//---------------------------------------------------------------------- +#ifdef ANN_NO_LIMITS_H // limits.h unavailable + #include // replacement for limits.h + const double ANN_DBL_MAX = MAXDOUBLE; // insert maximum double +#else + #include + #include + const double ANN_DBL_MAX = DBL_MAX; +#endif + +#define ANNversion "1.1.1" // ANN version and information +#define ANNversionCmt "" +#define ANNcopyright "David M. Mount and Sunil Arya" +#define ANNlatestRev "Aug 4, 2006" + +//---------------------------------------------------------------------- +// ANNbool +// This is a simple boolean type. Although ANSI C++ is supposed +// to support the type bool, some compilers do not have it. +//---------------------------------------------------------------------- + +enum ANNbool {ANNfalse = 0, ANNtrue = 1}; // ANN boolean type (non ANSI C++) + +//---------------------------------------------------------------------- +// ANNcoord, ANNdist +// ANNcoord and ANNdist are the types used for representing +// point coordinates and distances. They can be modified by the +// user, with some care. It is assumed that they are both numeric +// types, and that ANNdist is generally of an equal or higher type +// from ANNcoord. A variable of type ANNdist should be large +// enough to store the sum of squared components of a variable +// of type ANNcoord for the number of dimensions needed in the +// application. For example, the following combinations are +// legal: +// +// ANNcoord ANNdist +// --------- ------------------------------- +// short short, int, long, float, double +// int int, long, float, double +// long long, float, double +// float float, double +// double double +// +// It is the user's responsibility to make sure that overflow does +// not occur in distance calculation. +//---------------------------------------------------------------------- + +typedef double ANNcoord; // coordinate data type +typedef double ANNdist; // distance data type + +//---------------------------------------------------------------------- +// ANNidx +// ANNidx is a point index. When the data structure is built, the +// points are given as an array. Nearest neighbor results are +// returned as an integer index into this array. To make it +// clearer when this is happening, we define the integer type +// ANNidx. Indexing starts from 0. +// +// For fixed-radius near neighbor searching, it is possible that +// there are not k nearest neighbors within the search radius. To +// indicate this, the algorithm returns ANN_NULL_IDX as its result. +// It should be distinguishable from any valid array index. +//---------------------------------------------------------------------- + +typedef int ANNidx; // point index +const ANNidx ANN_NULL_IDX = -1; // a NULL point index + +//---------------------------------------------------------------------- +// Infinite distance: +// The code assumes that there is an "infinite distance" which it +// uses to initialize distances before performing nearest neighbor +// searches. It should be as larger or larger than any legitimate +// nearest neighbor distance. +// +// On most systems, these should be found in the standard include +// file or possibly . If you do not have these +// file, some suggested values are listed below, assuming 64-bit +// long, 32-bit int and 16-bit short. +// +// ANNdist ANN_DIST_INF Values (see or ) +// ------- ------------ ------------------------------------ +// double DBL_MAX 1.79769313486231570e+308 +// float FLT_MAX 3.40282346638528860e+38 +// long LONG_MAX 0x7fffffffffffffff +// int INT_MAX 0x7fffffff +// short SHRT_MAX 0x7fff +//---------------------------------------------------------------------- + +const ANNdist ANN_DIST_INF = ANN_DBL_MAX; + +//---------------------------------------------------------------------- +// Significant digits for tree dumps: +// When floating point coordinates are used, the routine that dumps +// a tree needs to know roughly how many significant digits there +// are in a ANNcoord, so it can output points to full precision. +// This is defined to be ANNcoordPrec. On most systems these +// values can be found in the standard include files or +// . For integer types, the value is essentially ignored. +// +// ANNcoord ANNcoordPrec Values (see or ) +// -------- ------------ ------------------------------------ +// double DBL_DIG 15 +// float FLT_DIG 6 +// long doesn't matter 19 +// int doesn't matter 10 +// short doesn't matter 5 +//---------------------------------------------------------------------- + +#ifdef DBL_DIG // number of sig. bits in ANNcoord + const int ANNcoordPrec = DBL_DIG; +#else + const int ANNcoordPrec = 15; // default precision +#endif + +//---------------------------------------------------------------------- +// Self match? +// In some applications, the nearest neighbor of a point is not +// allowed to be the point itself. This occurs, for example, when +// computing all nearest neighbors in a set. By setting the +// parameter ANN_ALLOW_SELF_MATCH to ANNfalse, the nearest neighbor +// is the closest point whose distance from the query point is +// strictly positive. +//---------------------------------------------------------------------- + +const ANNbool ANN_ALLOW_SELF_MATCH = ANNtrue; + +//---------------------------------------------------------------------- +// Norms and metrics: +// ANN supports any Minkowski norm for defining distance. In +// particular, for any p >= 1, the L_p Minkowski norm defines the +// length of a d-vector (v0, v1, ..., v(d-1)) to be +// +// (|v0|^p + |v1|^p + ... + |v(d-1)|^p)^(1/p), +// +// (where ^ denotes exponentiation, and |.| denotes absolute +// value). The distance between two points is defined to be the +// norm of the vector joining them. Some common distance metrics +// include +// +// Euclidean metric p = 2 +// Manhattan metric p = 1 +// Max metric p = infinity +// +// In the case of the max metric, the norm is computed by taking +// the maxima of the absolute values of the components. ANN is +// highly "coordinate-based" and does not support general distances +// functions (e.g. those obeying just the triangle inequality). It +// also does not support distance functions based on +// inner-products. +// +// For the purpose of computing nearest neighbors, it is not +// necessary to compute the final power (1/p). Thus the only +// component that is used by the program is |v(i)|^p. +// +// ANN parameterizes the distance computation through the following +// macros. (Macros are used rather than procedures for +// efficiency.) Recall that the distance between two points is +// given by the length of the vector joining them, and the length +// or norm of a vector v is given by formula: +// +// |v| = ROOT(POW(v0) # POW(v1) # ... # POW(v(d-1))) +// +// where ROOT, POW are unary functions and # is an associative and +// commutative binary operator mapping the following types: +// +// ** POW: ANNcoord --> ANNdist +// ** #: ANNdist x ANNdist --> ANNdist +// ** ROOT: ANNdist (>0) --> double +// +// For early termination in distance calculation (partial distance +// calculation) we assume that POW and # together are monotonically +// increasing on sequences of arguments, meaning that for all +// v0..vk and y: +// +// POW(v0) #...# POW(vk) <= (POW(v0) #...# POW(vk)) # POW(y). +// +// Incremental Distance Calculation: +// The program uses an optimized method of computing distances for +// kd-trees and bd-trees, called incremental distance calculation. +// It is used when distances are to be updated when only a single +// coordinate of a point has been changed. In order to use this, +// we assume that there is an incremental update function DIFF(x,y) +// for #, such that if: +// +// s = x0 # ... # xi # ... # xk +// +// then if s' is equal to s but with xi replaced by y, that is, +// +// s' = x0 # ... # y # ... # xk +// +// then the length of s' can be computed by: +// +// |s'| = |s| # DIFF(xi,y). +// +// Thus, if # is + then DIFF(xi,y) is (yi-x). For the L_infinity +// norm we make use of the fact that in the program this function +// is only invoked when y > xi, and hence DIFF(xi,y)=y. +// +// Finally, for approximate nearest neighbor queries we assume +// that POW and ROOT are related such that +// +// v*ROOT(x) = ROOT(POW(v)*x) +// +// Here are the values for the various Minkowski norms: +// +// L_p: p even: p odd: +// ------------------------- ------------------------ +// POW(v) = v^p POW(v) = |v|^p +// ROOT(x) = x^(1/p) ROOT(x) = x^(1/p) +// # = + # = + +// DIFF(x,y) = y - x DIFF(x,y) = y - x +// +// L_inf: +// POW(v) = |v| +// ROOT(x) = x +// # = max +// DIFF(x,y) = y +// +// By default the Euclidean norm is assumed. To change the norm, +// uncomment the appropriate set of macros below. +//---------------------------------------------------------------------- + +//---------------------------------------------------------------------- +// Use the following for the Euclidean norm +//---------------------------------------------------------------------- +#define ANN_POW(v) ((v)*(v)) +#define ANN_ROOT(x) sqrt(x) +#define ANN_SUM(x,y) ((x) + (y)) +#define ANN_DIFF(x,y) ((y) - (x)) + +//---------------------------------------------------------------------- +// Use the following for the L_1 (Manhattan) norm +//---------------------------------------------------------------------- +// #define ANN_POW(v) fabs(v) +// #define ANN_ROOT(x) (x) +// #define ANN_SUM(x,y) ((x) + (y)) +// #define ANN_DIFF(x,y) ((y) - (x)) + +//---------------------------------------------------------------------- +// Use the following for a general L_p norm +//---------------------------------------------------------------------- +// #define ANN_POW(v) pow(fabs(v),p) +// #define ANN_ROOT(x) pow(fabs(x),1/p) +// #define ANN_SUM(x,y) ((x) + (y)) +// #define ANN_DIFF(x,y) ((y) - (x)) + +//---------------------------------------------------------------------- +// Use the following for the L_infinity (Max) norm +//---------------------------------------------------------------------- +// #define ANN_POW(v) fabs(v) +// #define ANN_ROOT(x) (x) +// #define ANN_SUM(x,y) ((x) > (y) ? (x) : (y)) +// #define ANN_DIFF(x,y) (y) + +//---------------------------------------------------------------------- +// Array types +// The following array types are of basic interest. A point is +// just a dimensionless array of coordinates, a point array is a +// dimensionless array of points. A distance array is a +// dimensionless array of distances and an index array is a +// dimensionless array of point indices. The latter two are used +// when returning the results of k-nearest neighbor queries. +//---------------------------------------------------------------------- + +typedef ANNcoord* ANNpoint; // a point +typedef ANNpoint* ANNpointArray; // an array of points +typedef ANNdist* ANNdistArray; // an array of distances +typedef ANNidx* ANNidxArray; // an array of point indices + +//---------------------------------------------------------------------- +// Basic point and array utilities: +// The following procedures are useful supplements to ANN's nearest +// neighbor capabilities. +// +// annDist(): +// Computes the (squared) distance between a pair of points. +// Note that this routine is not used internally by ANN for +// computing distance calculations. For reasons of efficiency +// this is done using incremental distance calculation. Thus, +// this routine cannot be modified as a method of changing the +// metric. +// +// Because points (somewhat like strings in C) are stored as +// pointers. Consequently, creating and destroying copies of +// points may require storage allocation. These procedures do +// this. +// +// annAllocPt() and annDeallocPt(): +// Allocate a deallocate storage for a single point, and +// return a pointer to it. The argument to AllocPt() is +// used to initialize all components. +// +// annAllocPts() and annDeallocPts(): +// Allocate and deallocate an array of points as well a +// place to store their coordinates, and initializes the +// points to point to their respective coordinates. It +// allocates point storage in a contiguous block large +// enough to store all the points. It performs no +// initialization. +// +// annCopyPt(): +// Creates a copy of a given point, allocating space for +// the new point. It returns a pointer to the newly +// allocated copy. +//---------------------------------------------------------------------- + +DLL_API ANNdist annDist( + int dim, // dimension of space + ANNpoint p, // points + ANNpoint q); + +DLL_API ANNpoint annAllocPt( + int dim, // dimension + ANNcoord c = 0); // coordinate value (all equal) + +DLL_API ANNpointArray annAllocPts( + int n, // number of points + int dim); // dimension + +DLL_API void annDeallocPt( + ANNpoint &p); // deallocate 1 point + +DLL_API void annDeallocPts( + ANNpointArray &pa); // point array + +DLL_API ANNpoint annCopyPt( + int dim, // dimension + ANNpoint source); // point to copy + +//---------------------------------------------------------------------- +//Overall structure: ANN supports a number of different data structures +//for approximate and exact nearest neighbor searching. These are: +// +// ANNbruteForce A simple brute-force search structure. +// ANNkd_tree A kd-tree tree search structure. ANNbd_tree +// A bd-tree tree search structure (a kd-tree with shrink +// capabilities). +// +// At a minimum, each of these data structures support k-nearest +// neighbor queries. The nearest neighbor query, annkSearch, +// returns an integer identifier and the distance to the nearest +// neighbor(s) and annRangeSearch returns the nearest points that +// lie within a given query ball. +// +// Each structure is built by invoking the appropriate constructor +// and passing it (at a minimum) the array of points, the total +// number of points and the dimension of the space. Each structure +// is also assumed to support a destructor and member functions +// that return basic information about the point set. +// +// Note that the array of points is not copied by the data +// structure (for reasons of space efficiency), and it is assumed +// to be constant throughout the lifetime of the search structure. +// +// The search algorithm, annkSearch, is given the query point (q), +// and the desired number of nearest neighbors to report (k), and +// the error bound (eps) (whose default value is 0, implying exact +// nearest neighbors). It returns two arrays which are assumed to +// contain at least k elements: one (nn_idx) contains the indices +// (within the point array) of the nearest neighbors and the other +// (dd) contains the squared distances to these nearest neighbors. +// +// The search algorithm, annkFRSearch, is a fixed-radius kNN +// search. In addition to a query point, it is given a (squared) +// radius bound. (This is done for consistency, because the search +// returns distances as squared quantities.) It does two things. +// First, it computes the k nearest neighbors within the radius +// bound, and second, it returns the total number of points lying +// within the radius bound. It is permitted to set k = 0, in which +// case it effectively answers a range counting query. If the +// error bound epsilon is positive, then the search is approximate +// in the sense that it is free to ignore any point that lies +// outside a ball of radius r/(1+epsilon), where r is the given +// (unsquared) radius bound. +// +// The generic object from which all the search structures are +// dervied is given below. It is a virtual object, and is useless +// by itself. +//---------------------------------------------------------------------- + +class DLL_API ANNpointSet { +public: + virtual ~ANNpointSet() {} // virtual distructor + + virtual void annkSearch( // approx k near neighbor search + ANNpoint q, // query point + int k, // number of near neighbors to return + ANNidxArray nn_idx, // nearest neighbor array (modified) + ANNdistArray dd, // dist to near neighbors (modified) + double eps=0.0 // error bound + ) = 0; // pure virtual (defined elsewhere) + + virtual int annkFRSearch( // approx fixed-radius kNN search + ANNpoint q, // query point + ANNdist sqRad, // squared radius + int k = 0, // number of near neighbors to return + ANNidxArray nn_idx = NULL, // nearest neighbor array (modified) + ANNdistArray dd = NULL, // dist to near neighbors (modified) + double eps=0.0 // error bound + ) = 0; // pure virtual (defined elsewhere) + + virtual int theDim() = 0; // return dimension of space + virtual int nPoints() = 0; // return number of points + // return pointer to points + virtual ANNpointArray thePoints() = 0; +}; + +//---------------------------------------------------------------------- +// Brute-force nearest neighbor search: +// The brute-force search structure is very simple but inefficient. +// It has been provided primarily for the sake of comparison with +// and validation of the more complex search structures. +// +// Query processing is the same as described above, but the value +// of epsilon is ignored, since all distance calculations are +// performed exactly. +// +// WARNING: This data structure is very slow, and should not be +// used unless the number of points is very small. +// +// Internal information: +// --------------------- +// This data structure bascially consists of the array of points +// (each a pointer to an array of coordinates). The search is +// performed by a simple linear scan of all the points. +//---------------------------------------------------------------------- + +class DLL_API ANNbruteForce: public ANNpointSet { + int dim; // dimension + int n_pts; // number of points + ANNpointArray pts; // point array +public: + ANNbruteForce( // constructor from point array + ANNpointArray pa, // point array + int n, // number of points + int dd); // dimension + + ~ANNbruteForce(); // destructor + + void annkSearch( // approx k near neighbor search + ANNpoint q, // query point + int k, // number of near neighbors to return + ANNidxArray nn_idx, // nearest neighbor array (modified) + ANNdistArray dd, // dist to near neighbors (modified) + double eps=0.0); // error bound + + int annkFRSearch( // approx fixed-radius kNN search + ANNpoint q, // query point + ANNdist sqRad, // squared radius + int k = 0, // number of near neighbors to return + ANNidxArray nn_idx = NULL, // nearest neighbor array (modified) + ANNdistArray dd = NULL, // dist to near neighbors (modified) + double eps=0.0); // error bound + + int theDim() // return dimension of space + { return dim; } + + int nPoints() // return number of points + { return n_pts; } + + ANNpointArray thePoints() // return pointer to points + { return pts; } +}; + +//---------------------------------------------------------------------- +// kd- and bd-tree splitting and shrinking rules +// kd-trees supports a collection of different splitting rules. +// In addition to the standard kd-tree splitting rule proposed +// by Friedman, Bentley, and Finkel, we have introduced a +// number of other splitting rules, which seem to perform +// as well or better (for the distributions we have tested). +// +// The splitting methods given below allow the user to tailor +// the data structure to the particular data set. They are +// are described in greater details in the kd_split.cc source +// file. The method ANN_KD_SUGGEST is the method chosen (rather +// subjectively) by the implementors as the one giving the +// fastest performance, and is the default splitting method. +// +// As with splitting rules, there are a number of different +// shrinking rules. The shrinking rule ANN_BD_NONE does no +// shrinking (and hence produces a kd-tree tree). The rule +// ANN_BD_SUGGEST uses the implementors favorite rule. +//---------------------------------------------------------------------- + +enum ANNsplitRule { + ANN_KD_STD = 0, // the optimized kd-splitting rule + ANN_KD_MIDPT = 1, // midpoint split + ANN_KD_FAIR = 2, // fair split + ANN_KD_SL_MIDPT = 3, // sliding midpoint splitting method + ANN_KD_SL_FAIR = 4, // sliding fair split method + ANN_KD_SUGGEST = 5}; // the authors' suggestion for best +const int ANN_N_SPLIT_RULES = 6; // number of split rules + +enum ANNshrinkRule { + ANN_BD_NONE = 0, // no shrinking at all (just kd-tree) + ANN_BD_SIMPLE = 1, // simple splitting + ANN_BD_CENTROID = 2, // centroid splitting + ANN_BD_SUGGEST = 3}; // the authors' suggested choice +const int ANN_N_SHRINK_RULES = 4; // number of shrink rules + +//---------------------------------------------------------------------- +// kd-tree: +// The main search data structure supported by ANN is a kd-tree. +// The main constructor is given a set of points and a choice of +// splitting method to use in building the tree. +// +// Construction: +// ------------- +// The constructor is given the point array, number of points, +// dimension, bucket size (default = 1), and the splitting rule +// (default = ANN_KD_SUGGEST). The point array is not copied, and +// is assumed to be kept constant throughout the lifetime of the +// search structure. There is also a "load" constructor that +// builds a tree from a file description that was created by the +// Dump operation. +// +// Search: +// ------- +// There are two search methods: +// +// Standard search (annkSearch()): +// Searches nodes in tree-traversal order, always visiting +// the closer child first. +// Priority search (annkPriSearch()): +// Searches nodes in order of increasing distance of the +// associated cell from the query point. For many +// distributions the standard search seems to work just +// fine, but priority search is safer for worst-case +// performance. +// +// Printing: +// --------- +// There are two methods provided for printing the tree. Print() +// is used to produce a "human-readable" display of the tree, with +// indenation, which is handy for debugging. Dump() produces a +// format that is suitable reading by another program. There is a +// "load" constructor, which constructs a tree which is assumed to +// have been saved by the Dump() procedure. +// +// Performance and Structure Statistics: +// ------------------------------------- +// The procedure getStats() collects statistics information on the +// tree (its size, height, etc.) See ANNperf.h for information on +// the stats structure it returns. +// +// Internal information: +// --------------------- +// The data structure consists of three major chunks of storage. +// The first (implicit) storage are the points themselves (pts), +// which have been provided by the users as an argument to the +// constructor, or are allocated dynamically if the tree is built +// using the load constructor). These should not be changed during +// the lifetime of the search structure. It is the user's +// responsibility to delete these after the tree is destroyed. +// +// The second is the tree itself (which is dynamically allocated in +// the constructor) and is given as a pointer to its root node +// (root). These nodes are automatically deallocated when the tree +// is deleted. See the file src/kd_tree.h for further information +// on the structure of the tree nodes. +// +// Each leaf of the tree does not contain a pointer directly to a +// point, but rather contains a pointer to a "bucket", which is an +// array consisting of point indices. The third major chunk of +// storage is an array (pidx), which is a large array in which all +// these bucket subarrays reside. (The reason for storing them +// separately is the buckets are typically small, but of varying +// sizes. This was done to avoid fragmentation.) This array is +// also deallocated when the tree is deleted. +// +// In addition to this, the tree consists of a number of other +// pieces of information which are used in searching and for +// subsequent tree operations. These consist of the following: +// +// dim Dimension of space +// n_pts Number of points currently in the tree +// n_max Maximum number of points that are allowed +// in the tree +// bkt_size Maximum bucket size (no. of points per leaf) +// bnd_box_lo Bounding box low point +// bnd_box_hi Bounding box high point +// splitRule Splitting method used +// +//---------------------------------------------------------------------- + + +//---------------------------------------------------------------------- +// Orthogonal (axis aligned) rectangle +// Orthogonal rectangles are represented by two points, one +// for the lower left corner (min coordinates) and the other +// for the upper right corner (max coordinates). +// +// The constructor initializes from either a pair of coordinates, +// pair of points, or another rectangle. Note that all constructors +// allocate new point storage. The destructor deallocates this +// storage. +// +// BEWARE: Orthogonal rectangles should be passed ONLY BY REFERENCE. +// (C++'s default copy constructor will not allocate new point +// storage, then on return the destructor free's storage, and then +// you get into big trouble in the calling procedure.) +//---------------------------------------------------------------------- + +class ANNorthRect { +public: + ANNpoint lo; // rectangle lower bounds + ANNpoint hi; // rectangle upper bounds +// + ANNorthRect( // basic constructor + int dd, // dimension of space + ANNcoord l=0, // default is empty + ANNcoord h=0) + { lo = annAllocPt(dd, l); hi = annAllocPt(dd, h); } + + ANNorthRect( // (almost a) copy constructor + int dd, // dimension + const ANNorthRect &r) // rectangle to copy + { lo = annCopyPt(dd, r.lo); hi = annCopyPt(dd, r.hi); } + + ANNorthRect( // construct from points + int dd, // dimension + ANNpoint l, // low point + ANNpoint h) // hight point + { lo = annCopyPt(dd, l); hi = annCopyPt(dd, h); } + + ~ANNorthRect() // destructor + { annDeallocPt(lo); annDeallocPt(hi); } + + ANNbool inside(int dim, ANNpoint p);// is point p inside rectangle? +}; + +void annAssignRect( // assign one rect to another + int dim, // dimension (both must be same) + ANNorthRect &dest, // destination (modified) + const ANNorthRect &source); // source + +//---------------------------------------------------------------------- +// Some types and objects used by kd-tree functions +// See src/kd_tree.h and src/kd_tree.cpp for definitions +//---------------------------------------------------------------------- +class ANNkdStats; // stats on kd-tree +//class ANNkd_node; // generic node in a kd-tree + +//---------------------------------------------------------------------- +// Generic kd-tree node +// +// Nodes in kd-trees are of two types, splitting nodes which contain +// splitting information (a splitting hyperplane orthogonal to one +// of the coordinate axes) and leaf nodes which contain point +// information (an array of points stored in a bucket). This is +// handled by making a generic class kd_node, which is essentially an +// empty shell, and then deriving the leaf and splitting nodes from +// this. +//---------------------------------------------------------------------- + +class ANNkd_node{ // generic kd-tree node (empty shell) +public: + virtual ~ANNkd_node() {} // virtual distroyer + + virtual void ann_search(ANNdist) = 0; // tree search + virtual void ann_pri_search(ANNdist) = 0; // priority search + virtual void ann_FR_search(ANNdist) = 0; // fixed-radius search + + virtual void getStats( // get tree statistics + int dim, // dimension of space + ANNkdStats &st, // statistics + ANNorthRect &bnd_box) = 0; // bounding box + // print node + virtual void print(int level, std::ostream &out) = 0; + virtual void dump(std::ostream &out) = 0; // dump node + virtual bool isLeaf() {return false;} //Deyuan Qiu + + friend class ANNkd_tree; // allow kd-tree to access us +}; + +typedef ANNkd_node* ANNkd_ptr; // pointer to a kd-tree node + +class DLL_API ANNkd_tree: public ANNpointSet { +protected: + int dim; // dimension of space + int n_pts; // number of points in tree + int bkt_size; // bucket size + ANNpointArray pts; // the points + ANNidxArray pidx; // point indices (to pts array) + ANNkd_ptr root; // root of kd-tree + ANNpoint bnd_box_lo; // bounding box low point + ANNpoint bnd_box_hi; // bounding box high point + + void SkeletonTree( // construct skeleton tree + int n, // number of points + int dd, // dimension + int bs, // bucket size + ANNpointArray pa = NULL, // point array (optional) + ANNidxArray pi = NULL); // point indices (optional) + +public: + ANNkd_tree( // build skeleton tree + int n = 0, // number of points + int dd = 0, // dimension + int bs = 1); // bucket size + + ANNkd_tree( // build from point array + ANNpointArray pa, // point array + int n, // number of points + int dd, // dimension + int bs = 1, // bucket size + ANNsplitRule split = ANN_KD_SUGGEST); // splitting method + + ANNkd_tree( // build from dump file + std::istream& in); // input stream for dump file + + ~ANNkd_tree(); // tree destructor + + void annkSearch( // approx k near neighbor search + ANNpoint q, // query point + int k, // number of near neighbors to return + ANNidxArray nn_idx, // nearest neighbor array (modified) + ANNdistArray dd, // dist to near neighbors (modified) + double eps=0.0); // error bound + + void annkPriSearch( // priority k near neighbor search + ANNpoint q, // query point + int k, // number of near neighbors to return + ANNidxArray nn_idx, // nearest neighbor array (modified) + ANNdistArray dd, // dist to near neighbors (modified) + double eps=0.0); // error bound + + int annkFRSearch( // approx fixed-radius kNN search + ANNpoint q, // the query point + ANNdist sqRad, // squared radius of query ball + int k, // number of neighbors to return + ANNidxArray nn_idx = NULL, // nearest neighbor array (modified) + ANNdistArray dd = NULL, // dist to near neighbors (modified) + double eps=0.0); // error bound + + int theDim() // return dimension of space + { return dim; } + + int nPoints() // return number of points + { return n_pts; } + + ANNpointArray thePoints() // return pointer to points + { return pts; } + + virtual void Print( // print the tree (for debugging) + ANNbool with_pts, // print points as well? + std::ostream& out); // output stream + + virtual void Dump( // dump entire tree + ANNbool with_pts, // print points as well? + std::ostream& out); // output stream + + virtual void getStats( // compute tree statistics + ANNkdStats& st); // the statistics (modified) + + ANNkd_ptr getRoot() //Deyuan Qiu + { return root; } +}; + +//---------------------------------------------------------------------- +// Box decomposition tree (bd-tree) +// The bd-tree is inherited from a kd-tree. The main difference +// in the bd-tree and the kd-tree is a new type of internal node +// called a shrinking node (in the kd-tree there is only one type +// of internal node, a splitting node). The shrinking node +// makes it possible to generate balanced trees in which the +// cells have bounded aspect ratio, by allowing the decomposition +// to zoom in on regions of dense point concentration. Although +// this is a nice idea in theory, few point distributions are so +// densely clustered that this is really needed. +//---------------------------------------------------------------------- + +class DLL_API ANNbd_tree: public ANNkd_tree { +public: + ANNbd_tree( // build skeleton tree + int n, // number of points + int dd, // dimension + int bs = 1) // bucket size + : ANNkd_tree(n, dd, bs) {} // build base kd-tree + + ANNbd_tree( // build from point array + ANNpointArray pa, // point array + int n, // number of points + int dd, // dimension + int bs = 1, // bucket size + ANNsplitRule split = ANN_KD_SUGGEST, // splitting rule + ANNshrinkRule shrink = ANN_BD_SUGGEST); // shrinking rule + + ANNbd_tree( // build from dump file + std::istream& in); // input stream for dump file +}; + +//---------------------------------------------------------------------- +// Other functions +// annMaxPtsVisit Sets a limit on the maximum number of points +// to visit in the search. +// annClose Can be called when all use of ANN is finished. +// It clears up a minor memory leak. +//---------------------------------------------------------------------- + +DLL_API void annMaxPtsVisit( // max. pts to visit in search + int maxPts); // the limit + +DLL_API void annClose(); // called to end use of ANN + +#endif diff --git a/.svn/pristine/54/54291e817600411fbadfc4cd7263f11e07f46822.svn-base b/.svn/pristine/54/54291e817600411fbadfc4cd7263f11e07f46822.svn-base new file mode 100644 index 0000000..5fb13d9 --- /dev/null +++ b/.svn/pristine/54/54291e817600411fbadfc4cd7263f11e07f46822.svn-base @@ -0,0 +1,9 @@ +IF (WITH_DAVID_3D_SCANNER) + + FIND_PACKAGE(OpenCV REQUIRED ) + + add_executable(david_scanner david_scanner.cc ) + target_link_libraries(david_scanner ${OpenCV_LIBS} ) + + +ENDIF(WITH_DAVID_3D_SCANNER) diff --git a/.svn/pristine/54/544f0b181429254ad2d01b2e40e45f527cc26918.svn-base b/.svn/pristine/54/544f0b181429254ad2d01b2e40e45f527cc26918.svn-base new file mode 100644 index 0000000..157056b --- /dev/null +++ b/.svn/pristine/54/544f0b181429254ad2d01b2e40e45f527cc26918.svn-base @@ -0,0 +1,88 @@ +//$$ cholesky.cpp cholesky decomposition + +// Copyright (C) 1991,2,3,4: R B Davies + +#define WANT_MATH +//#define WANT_STREAM + +#include "include.h" + +#include "newmat.h" + +#ifdef use_namespace +namespace NEWMAT { +#endif + +#ifdef DO_REPORT +#define REPORT { static ExeCounter ExeCount(__LINE__,14); ++ExeCount; } +#else +#define REPORT {} +#endif + +/********* Cholesky decomposition of a positive definite matrix *************/ + +// Suppose S is symmetrix and positive definite. Then there exists a unique +// lower triangular matrix L such that L L.t() = S; + +inline Real square(Real x) { return x*x; } + +ReturnMatrix Cholesky(const SymmetricMatrix& S) +{ + REPORT + Tracer trace("Cholesky"); + int nr = S.Nrows(); + LowerTriangularMatrix T(nr); + Real* s = S.Store(); Real* t = T.Store(); Real* ti = t; + for (int i=0; i + +static inline CvMat *mat3D() { return cvCreateMat(3,1,CV_32FC1); } + +static CvMat *matFromP3D(CvPoint3D32f p) { + CvMat *m = mat3D(); + CV_MAT_ELEM(*m, float, 0, 0) = p.x; + CV_MAT_ELEM(*m, float, 1, 0) = p.y; + CV_MAT_ELEM(*m, float, 2, 0) = p.z; + return m; +} + + +// union vectors from point correspondaces (as in Horn method) +static void constructXYZ( CvMat *p1, CvMat *p2, CvMat *p3 + , CvMat *x, CvMat *y, CvMat *z) { + CvMat *p2Mp1 = mat3D(); + cvSub(p2, p1, p2Mp1, NULL); + cvConvertScale(p2Mp1, x, 1.0/cvNorm(p2Mp1, NULL, CV_L2, NULL), 0); + + CvMat *p3Mp1 = mat3D(); + cvSub(p3, p1, p3Mp1, NULL); + CvMat *ySndItem = mat3D(); + cvConvertScale(x, ySndItem, cvDotProduct(p3Mp1, x), NULL); + CvMat *ySub = mat3D(); + cvSub(p3Mp1, ySndItem, ySub); + cvConvertScale(ySub, y, 1.0/cvNorm(ySub, NULL, CV_L2, NULL), 0); + + cvCrossProduct(x, y, z); + + cvReleaseMat(&p2Mp1); + cvReleaseMat(&p3Mp1); + cvReleaseMat(&ySndItem); + cvReleaseMat(&ySub); +} + +static void fillM(CvMat *m, CvMat *x, CvMat *y, CvMat *z) { + CV_MAT_ELEM(*m, float, 0, 0) = CV_MAT_ELEM(*x, float, 0, 0); + CV_MAT_ELEM(*m, float, 1, 0) = CV_MAT_ELEM(*x, float, 1, 0); + CV_MAT_ELEM(*m, float, 2, 0) = CV_MAT_ELEM(*x, float, 2, 0); + CV_MAT_ELEM(*m, float, 0, 1) = CV_MAT_ELEM(*y, float, 0, 0); + CV_MAT_ELEM(*m, float, 1, 1) = CV_MAT_ELEM(*y, float, 1, 0); + CV_MAT_ELEM(*m, float, 2, 1) = CV_MAT_ELEM(*y, float, 2, 0); + CV_MAT_ELEM(*m, float, 0, 2) = CV_MAT_ELEM(*z, float, 0, 0); + CV_MAT_ELEM(*m, float, 1, 2) = CV_MAT_ELEM(*z, float, 1, 0); + CV_MAT_ELEM(*m, float, 2, 2) = CV_MAT_ELEM(*z, float, 2, 0); +} + + +// Horn's fast method +void estimatePose3D(CvPoint3D32f *prev, CvPoint3D32f *curr, CvMat *rot, CvMat *trn) { + CvMat *x1 = mat3D(); + CvMat *y1 = mat3D(); + CvMat *z1 = mat3D(); + CvMat *x2 = mat3D(); + CvMat *y2 = mat3D(); + CvMat *z2 = mat3D(); + CvMat *p1 = matFromP3D(prev[0]); + CvMat *p2 = matFromP3D(prev[1]); + CvMat *p3 = matFromP3D(prev[2]); + CvMat *c1 = matFromP3D(curr[0]); + CvMat *c2 = matFromP3D(curr[1]); + CvMat *c3 = matFromP3D(curr[2]); + + constructXYZ(p1, p2, p3, x1, y1, z1); + constructXYZ(c1, c2, c3, x2, y2, z2); + CvMat *m1 = cvCreateMat(3, 3, CV_32FC1); + CvMat *m2 = cvCreateMat(3, 3, CV_32FC1); + fillM(m2, x2, y2, z2); + fillM(m1, x1, y1, z1); + CvMat *rotM = cvCreateMat(3, 3, CV_32FC1); + cvGEMM(m1, m2, 1.0, NULL, 1.0, rotM, CV_GEMM_B_T); + + CvMat *rp1 = mat3D(); + cvGEMM(rotM, p1, 1.0, NULL, 1.0, rp1, 0); + CvMat *rp2 = mat3D(); + cvGEMM(rotM, p2, 1.0, NULL, 1.0, rp2, 0); + CvMat *rp3 = mat3D(); + cvGEMM(rotM, p3, 1.0, NULL, 1.0, rp3, 0); + CvMat *rp12 = mat3D(); + cvAdd(rp1, rp2, rp12, NULL); + CvMat *rp123 = mat3D(); + cvAdd(rp12, rp3, rp123, NULL); + CvMat *c12 = mat3D(); + cvAdd(c1, c2, c12, NULL); + CvMat *c123 = mat3D(); + cvAdd(c12, c3, c123, NULL); + CvMat *cg1 = mat3D(); + CvMat *cg2 = mat3D(); + cvConvertScale(c123, cg2, 1.0/3.0, 0.0); + cvConvertScale(rp123, cg1, 1.0/3.0, 0.0); + cvSub(cg2, cg1, trn, NULL); + cvRodrigues2(rotM, rot, NULL); + + cvReleaseMat(&x1); + cvReleaseMat(&y1); + cvReleaseMat(&z1); + cvReleaseMat(&x2); + cvReleaseMat(&y2); + cvReleaseMat(&z2); + cvReleaseMat(&p1); + cvReleaseMat(&p2); + cvReleaseMat(&p3); + cvReleaseMat(&c1); + cvReleaseMat(&c2); + cvReleaseMat(&c3); + cvReleaseMat(&m1); + cvReleaseMat(&m2); + cvReleaseMat(&rotM); + cvReleaseMat(&rp1); + cvReleaseMat(&rp2); + cvReleaseMat(&rp3); + cvReleaseMat(&rp12); + cvReleaseMat(&rp123); + cvReleaseMat(&c12); + cvReleaseMat(&c12); + cvReleaseMat(&cg1); + cvReleaseMat(&cg2); + //FIXME: mb missed smthg :P +} diff --git a/.svn/pristine/54/54f696f7cee5fc1d40ee5bbb83a55b6ad11eb807.svn-base b/.svn/pristine/54/54f696f7cee5fc1d40ee5bbb83a55b6ad11eb807.svn-base new file mode 100644 index 0000000..e283f30 --- /dev/null +++ b/.svn/pristine/54/54f696f7cee5fc1d40ee5bbb83a55b6ad11eb807.svn-base @@ -0,0 +1,240 @@ +#IncludeRegexLine: ^[ ]*#[ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvaux.cpp +cmath +- +cv.h +- +opencv/cv.h +- +cvblob.h +/home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvblob.h + +/home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvblob.cpp +cmath +- +iostream +- +cv.h +- +highgui.h +- +opencv/cv.h +- +opencv/highgui.h +- +cvblob.h +/home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvblob.h + +/home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvblob.h +cvblob.h +/home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvblob.h +iostream +- +map +- +list +- +vector +- +limits +- +cv.h +- +opencv/cv.h +- + +/home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvcolor.cpp +cmath +- +iostream +- +cv.h +- +opencv/cv.h +- +cvblob.h +/home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvblob.h + +/home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvcontour.cpp +climits +- +cmath +- +deque +- +iostream +- +fstream +- +sstream +- +cv.h +- +opencv/cv.h +- +cvblob.h +/home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvblob.h + +/home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvlabel.cpp +stdexcept +- +iostream +- +cv.h +- +opencv/cv.h +- +cvblob.h +/home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvblob.h + +/home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvtrack.cpp +cmath +- +iostream +- +sstream +- +cv.h +- +opencv/cv.h +- +cvblob.h +/home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvblob.h + +/usr/include/opencv/cv.h +chdl.h +- +cxcore.h +/usr/include/opencv/cxcore.h +cvtypes.h +/usr/include/opencv/cvtypes.h +cv.hpp +/usr/include/opencv/cv.hpp +cvcompat.h +/usr/include/opencv/cvcompat.h + +/usr/include/opencv/cv.hpp + +/usr/include/opencv/cvcompat.h +string.h +- + +/usr/include/opencv/cvtypes.h +assert.h +- +stdlib.h +- + +/usr/include/opencv/cvver.h + +/usr/include/opencv/cxcore.h +ipl.h +/usr/include/opencv/ipl.h +ipl/ipl.h +/usr/include/opencv/ipl/ipl.h +cxtypes.h +/usr/include/opencv/cxtypes.h +cxerror.h +/usr/include/opencv/cxerror.h +cvver.h +/usr/include/opencv/cvver.h +cxcore.hpp +/usr/include/opencv/cxcore.hpp + +/usr/include/opencv/cxcore.hpp +cxmisc.h +/usr/include/opencv/cxmisc.h +algorithm +- +cmath +- +complex +- +map +- +new +- +string +- +vector +- +cxoperations.hpp +/usr/include/opencv/cxoperations.hpp +cxmat.hpp +/usr/include/opencv/cxmat.hpp +cxflann.h +/usr/include/opencv/cxflann.h + +/usr/include/opencv/cxerror.h + +/usr/include/opencv/cxflann.h + +/usr/include/opencv/cxmat.hpp +limits.h +- + +/usr/include/opencv/cxmisc.h +limits.h +- +malloc.h +- +alloca.h +- +stdlib.h +- + +/usr/include/opencv/cxoperations.hpp +string.h +- +limits.h +- +ext/atomicity.h +- +bits/atomicity.h +- +windows.h +/usr/include/opencv/windows.h + +/usr/include/opencv/cxtypes.h +assert.h +- +stdlib.h +- +string.h +- +float.h +- +stdint.h +- +intrin.h +- +emmintrin.h +- +fastmath.h +- +math.h +- +ipl.h +- +ipl/ipl.h +- + +/usr/include/opencv/highgui.h +cxcore.h +/usr/include/opencv/cxcore.h +windows.h +- +chdl.h +- +highgui.hpp +/usr/include/opencv/highgui.hpp + +/usr/include/opencv/highgui.hpp + diff --git a/.svn/pristine/54/54fd85560098ca1f02266e7850b590632f060be5.svn-base b/.svn/pristine/54/54fd85560098ca1f02266e7850b590632f060be5.svn-base new file mode 100644 index 0000000..01ded9d --- /dev/null +++ b/.svn/pristine/54/54fd85560098ca1f02266e7850b590632f060be5.svn-base @@ -0,0 +1,209 @@ + +//#define WANT_STREAM + +#include "include.h" + +#include "newmatap.h" +//#include "newmatio.h" + +#include "tmt.h" + +#ifdef use_namespace +using namespace NEWMAT; +#endif + + +void WillNotConverge() +{ + Matrix A(10,10); + Throw(ConvergenceException(A)); +} + +void ReSizeMatrix(Matrix& A) +// for seeing if we can redimension a vector as a matrix +{ A.ReSize(4,5); } + +void trymati() +{ +#ifndef DisableExceptions + Tracer et("Eighteenth test of Matrix package"); + Matrix RUStillThere(10,20); RUStillThere = 1553; + Tracer::PrintTrace(); + + ColumnVector checks(23); checks = 1.0; checks(1) = 0.0; + + Try { WillNotConverge(); } + Catch(ConvergenceException) { checks(2) = 0; } + CatchAll { checks(1) = 1; } + + + Try { Matrix M(10,10); SymmetricMatrix S = M; } + Catch(ConvergenceException) { checks(1) = 1; } + Catch(InternalException) { checks(1) = 1; } + Catch(ProgramException) { checks(3) = 0; } + CatchAll { checks(1) = 1; } + + + Try { Matrix M(10,10); M(10,11) = 2.0; } + Catch(ConvergenceException) { checks(1) = 1; } + Catch(InternalException) { checks(1) = 1; } + Catch(IndexException) { checks(4) = 0; } + CatchAll { checks(1) = 1; } + + Try { Matrix M(10,10); M = 0.0; M = M.i(); } + Catch(ConvergenceException) { checks(1) = 1; } + Catch(InternalException) { checks(1) = 1; } + Catch(ProgramException) { checks(1) = 1; } + Catch(SingularException) { checks(5) = 0; } + Catch(Bad_alloc) { checks(1) = 1; } + CatchAndThrow; + + Try { ColumnVector A(30), B(50); A = 5; B = 3; FFT(A,B,A,B); } + Catch(ConvergenceException) { checks(1) = 1; } + Catch(InternalException) { checks(1) = 1; } + Catch(ProgramException) { checks(6) = 0; } + CatchAll { checks(1) = 1; } + + Try + { + ColumnVector A(30); A = 5; Matrix At = A.t(); + DiagonalMatrix D; + SVD(At,D); + } + Catch(ConvergenceException) { checks(1) = 1; } + Catch(InternalException) { checks(1) = 1; } + Catch(Logic_error) { checks(6) = 0; } + Catch(Bad_alloc) { checks(1) = 1; } + CatchAndThrow; + + Try { BandMatrix X(10,3,4); X(1,10) = 4.0; } + Catch(ConvergenceException) { checks(1) = 1; } + Catch(InternalException) { checks(1) = 1; } + Catch(IndexException) { checks(7) = 0; } + CatchAll { checks(1) = 1; } + + Try + { + SymmetricMatrix S(10); S = 5; + LowerTriangularMatrix L = Cholesky(S); + } + Catch(ConvergenceException) { checks(1) = 1; } + Catch(InternalException) { checks(1) = 1; } + Catch(ProgramException) { checks(1) = 1; } + Catch(NPDException) { checks(8) = 0; } + Catch(Bad_alloc) { checks(1) = 1; } + CatchAndThrow; + + Try { BandMatrix M(10,3,5); M = 0.0; Matrix XM = M.i(); } + Catch(ConvergenceException) { checks(1) = 1; } + Catch(InternalException) { checks(1) = 1; } + Catch(ProgramException) { checks(1) = 1; } + Catch(SingularException) { checks(9) = 0; } + Catch(Bad_alloc) { checks(1) = 1; } + CatchAndThrow; + + Try { ColumnVector X(10); ColumnVector Y; X = 5; X = X - Y; } + Catch(ConvergenceException) { checks(1) = 1; } + Catch(InternalException) { checks(1) = 1; } + Catch(IncompatibleDimensionsException) { checks(10) = 0; } + Catch(Bad_alloc) { checks(1) = 1; } + CatchAndThrow; + + Try + { + UpperTriangularMatrix U(3); RowVector RV(3); RV = 10; + U.Row(2) = RV; + } + Catch(ConvergenceException) { checks(1) = 1; } + Catch(InternalException) { checks(1) = 1; } + Catch(ProgramException) { checks(11) = 0; } + Catch(Bad_alloc) { checks(1) = 1; } + CatchAndThrow; + + Try { DiagonalMatrix D(3); D << 12 << 13 << 14 << 15; } + Catch(ConvergenceException) { checks(1) = 1; } + Catch(InternalException) { checks(1) = 1; } + Catch(ProgramException) { checks(12) = 0; } + CatchAndThrow; + + Try { ColumnVector D(3); D << 12 << 13; D << 1 << 2 << 3; } + Catch(ConvergenceException) { checks(1) = 1; } + Catch(InternalException) { checks(1) = 1; } + Catch(ProgramException) { checks(13) = 0; } + CatchAndThrow; + + + Try { { ColumnVector D(3); D << 12 << 13; } } + Catch(ConvergenceException) { checks(1) = 1; } + Catch(InternalException) { checks(1) = 1; } + Catch(ProgramException) { checks(14) = 0; } + CatchAndThrow; + + Try { ColumnVector CV; ReSizeMatrix(CV); } + Catch(ConvergenceException) { checks(1) = 1; } + Catch(InternalException) { checks(1) = 1; } + Catch(VectorException) { checks(15) = 0; } + CatchAndThrow; + + Try { RowVector RV(20); ReSizeMatrix(RV); } + Catch(ConvergenceException) { checks(1) = 1; } + Catch(InternalException) { checks(1) = 1; } + Catch(VectorException) { checks(16) = 0; } + CatchAndThrow; + + Try + { + UpperTriangularMatrix U(10); U = 5; + DiagonalMatrix D(10); D = 2; + D += U; // illegal conversion + } + Catch(ConvergenceException) { checks(1) = 1; } + Catch(InternalException) { checks(1) = 1; } + Catch(ProgramException) { checks(17) = 0; } + CatchAndThrow; + + Try { Matrix A(2,3), B(2,3); if (A < B) A = B; } + Catch(ConvergenceException) { checks(1) = 1; } + Catch(InternalException) { checks(1) = 1; } + Catch(NotDefinedException) { checks(18) = 0; } + CatchAndThrow; + + Try { SymmetricBandMatrix A(3,1); A = 1; A = A.Reverse(); } + Catch(ConvergenceException) { checks(1) = 1; } + Catch(InternalException) { checks(1) = 1; } + Catch(NotDefinedException) { checks(19) = 0; } + CatchAndThrow; + + Try + { + Matrix A(5,5); A = 1.0; + UpperTriangularMatrix B(10); + B.SubMatrix(3,7,3,7) = A; + } + Catch(ProgramException) { checks(20) = 0; } + CatchAndThrow; + + Try { { RowVector D(1); D << 12 << 13; } } + Catch(InternalException) { checks(1) = 1; } + Catch(ProgramException) { checks(21) = 0; } + CatchAndThrow; + + Try { { RowVector D(0); D << 12; } } + Catch(InternalException) { checks(1) = 1; } + Catch(ProgramException) { checks(22) = 0; } + CatchAndThrow; + + Try { Matrix M(10,10); Matrix XM(3,3); M = 0.0; XM = M.i(); } + Catch(SingularException) { checks(23) = 0; } + CatchAll { checks(1) = 1; } + + Print(checks); + Matrix RUStillThere1(10,20); RUStillThere1 = 1553; + RUStillThere = RUStillThere - RUStillThere1; + Print(RUStillThere); +#endif + +} + + + diff --git a/.svn/pristine/55/55c32b784ae23c7e76eb9fb6d0d3d9f6caceeddb.svn-base b/.svn/pristine/55/55c32b784ae23c7e76eb9fb6d0d3d9f6caceeddb.svn-base new file mode 100644 index 0000000..79dba27 --- /dev/null +++ b/.svn/pristine/55/55c32b784ae23c7e76eb9fb6d0d3d9f6caceeddb.svn-base @@ -0,0 +1,368 @@ +/** + * @file graphicsAlg.cc + * + * @auhtor Remus Claudiu Dumitru + * @date 18 Feb 2012 + * + */ + +//============================================================================== +// Includes +//============================================================================== +#include "model/graphicsAlg.h" + +#include "model/scene.h" + +#include +#include + +using namespace std; + +//============================================================================== +// Global Variables +//============================================================================== +extern bool quiet; + +template +void model::GraphicsAlg::alpha_edges(InputIterator begin, InputIterator end, + const Type& Alpha, + bool mode, + OutputIterator out) +{ + Alpha_shape_2 shape(begin, end); + + if (mode) { + shape.set_mode(Alpha_shape_2::GENERAL); + } + else { + shape.set_mode(Alpha_shape_2::REGULARIZED); + } + + shape.set_alpha(Alpha); + + for(Alpha_shape_edges_iterator it = shape.alpha_shape_edges_begin(); + it != shape.alpha_shape_edges_end(); ++it) + { + *out++ = shape.segment(*it); + } +} + +// to be used to sort the pairs in the clockwiseSort method +bool compare(pair left, pair right) { + // we want to order clockwise, so we should compare the other way around + return left.first > right.first; +} + +void model::GraphicsAlg::clockwiseSort(vector& planes) { + if (planes.size() <= 2) { + return; + } + + // to be returned at the end + vector result; + + // first compute the center of gravity of the given planes + Point3d cog; + for (unsigned int i = 0; i < planes.size(); ++i) { + cog += planes[i].pt; + } + cog /= planes.size(); + + // keep the angle of each plane wrt to the center of gravity + // also keep and index with the position of the plane in the original vector + vector > angles; + + // compute each angle and add it to the angles vector alongside the index + for (unsigned int i = 0; i < planes.size(); ++i) { + double angle = atan2(planes[i].pt.z - cog.z, planes[i].pt.x - cog.x); + angles.push_back(make_pair(angle, i)); + } + + // use stl sort + sort(angles.begin(), angles.end(), compare); + + // construct the result + for (unsigned int i = 0; i < angles.size(); ++i) { + result.push_back(planes[angles[i].second]); + } + + // copy result into planes + planes = result; +} + +vector model::GraphicsAlg::getConcaveHull(std::vector planes) { + if (planes.size() <= 3) { + return planes; + } + + const double eps = 0.1; + vector result; + vector verticalPlanes; + + // CGAL datatypes + list points; + vector segments; + + // keep vertical planes + for (vector::iterator it = planes.begin(); + it < planes.end(); ++it) + { + if (it->isVertical()) { + verticalPlanes.push_back(*it); + } + } + + // free a bit of memory + planes.clear(); + + // collect all the remaining planes as CGAL points + for (vector::iterator it = verticalPlanes.begin(); + it < verticalPlanes.end(); ++it) + { + Point toAdd(it->pt.x, it->pt.z); + points.push_back(toAdd); + } + + // XXX compute the concave hull, aka. the alpha edges + alpha_edges(points.begin(), points.end(), + Type(250000), Alpha_shape_2::GENERAL, + std::back_inserter(segments)); + + if (!quiet) cout << "** " << segments.size() << " concave hull segments found" << endl; + + // counts how many planes are rematched to make sure we find them again + unsigned int counter = 0; + + // XXX naive retrieval of planes + Point3d center; + vector possiblePoints; + for (vector::iterator it = segments.begin(); + it < segments.end(); ++it) + { + Point source = it->source(); + Point target = it->target(); + + center.x += source.x(); + center.z += source.y(); + center.x += target.x(); + center.z += target.y(); + + possiblePoints.push_back(source); + possiblePoints.push_back(target); + } + center /= possiblePoints.size(); + + // match the points found using alpha shapes, back to their planes + for (vector::iterator it = possiblePoints.begin(); it < possiblePoints.end(); ++it) { + for (vector::iterator jt = verticalPlanes.begin(); jt < verticalPlanes.end(); ++jt) { + // second coordinate is on the z axis in the left handed coord system + if ((it->x() >= jt->pt.x - eps) && (it->x() <= jt->pt.x + eps) && + (it->y() >= jt->pt.z - eps) && (it->y() <= jt->pt.z + eps)) + { + result.push_back(*jt); + verticalPlanes.erase(jt); + counter++; + break; + } + } + } + + // eliminate duplicate planes + result = Scene::getSignificantPlanes(result); + + // sort them clockwise, it is in place + clockwiseSort(result); + + // another threshold for deciding whether to keep a plane or not + double eps2 = 0.2; + + // discard internal walls that are not part of the external walls of the room + for (vector::iterator it = result.begin() + 1; + it < result.end(); ++it) + { + vector::iterator prev = it - 1; + vector::iterator curr = it; + + // normalize normals just to be sure + prev->normal.normalize(); + curr->normal.normalize(); + + if ((1.0 - fabs(prev->normal.dotProduct(curr->normal))) < eps2) { + if (fabs(center.distance(*prev)) < fabs(center.distance(*curr))) { + if (!quiet) cout << "** Discarding previous internal plane centered at " + << prev->pt.x << " " << prev->pt.y << " " << prev->pt.z + << endl; + result.erase(prev); + } else { + if (!quiet) cout << "** Discarding current internal plane centered at " + << curr->pt.x << " " << curr->pt.y << " " << curr->pt.z + << endl; + result.erase(curr); + } + } + } + + if (!quiet) cout << "** Added " << result.size() << " elements to concave hull result" << endl; + + return result; +} + +void model::GraphicsAlg::getDiscreteLine(Point3d src, Point3d dest, double precision, const double& extraDist, + vector& line) +{ + // clear the result just in case it contains something + line.clear(); + + // add the extra distance + double len = src.distance(dest); + double temp = (len + extraDist) / len; + dest.x = src.x + (dest.x - src.x) * temp; + dest.y = src.y + (dest.y - src.y) * temp; + dest.z = src.z + (dest.z - src.z) * temp; + + // round up the values + precision = round(precision); + + src.x = round(src.x); + src.y = round(src.y); + src.z = round(src.z); + + dest.x = round(dest.x); + dest.y = round(dest.y); + dest.z = round(dest.z); + + // adjust according to precision + const double coef = pow(10.0, precision); + src *= coef; + dest *= coef; + +// Point3d diff = dest - src; +// diff.x = fabs(diff.x); +// diff.y = fabs(diff.y); +// diff.z = fabs(diff.z); +// diff += Point3d(1.0, 1.0, 1.0); +// double temp[] = {diff.x, diff.y, diff.z}; +// +// double d = *max_element(temp, temp + 3); + + double x1 = src.x; + double y1 = src.y; + double z1 = src.z; + + double x2 = dest.x; + double y2 = dest.y; + double z2 = dest.z; + + double dx = x2 - x1; + double dy = y2 - y1; + double dz = z2 - z1; + + double ax = 2 * fabs(dx); + double ay = 2 * fabs(dy); + double az = 2 * fabs(dz); + + double sx = dx > 0 ? +1.0 : -1.0; + double sy = dy > 0 ? +1.0 : -1.0; + double sz = dz > 0 ? +1.0 : -1.0; + + double x = x1; + double y = y1; + double z = z1; + + if (ax >= max(ay, az)) { + // x dominant + double yd = ay - ax / 2.0; + double zd = az - ax / 2.0; + + while (1) { + line.push_back(Point3d(x, y, z)); + + if (x == x2) { + break; + } + + // move along y + if (yd >= 0) { + y += sy; + yd -= ax; + } + + // move along z + if (zd >= 0) { + z += sz; + zd -= ax; + } + + // move along x + x += sx; + yd += ay; + zd += az; + } + } else if (ay >= max(ax, az)) { + // y dominant + double xd = ax - ay / 2.0; + double zd = az - ay / 2.0; + + while (1) { + line.push_back(Point3d(x, y, z)); + + if (y == y2) { + break; + } + + // move along x + if (xd >= 0) { + x += sx; + xd -= ay; + } + + // move along z + if (zd >= 0) { + z += sz; + zd -= ay; + } + + // move along y + y += sy; + xd += ax; + zd += az; + } + } else if (az >= max(ax, ay)) { + // z dominant + double xd = ax - az / 2.0; + double yd = ay - az / 2.0; + + while (1) { + line.push_back(Point3d(x, y, z)); + + if (z == z2) { + break; + } + + // move along x + if (xd >= 0) { + x += sx; + xd -= az; + } + + // move along y + if (yd >= 0) { + y += sy; + yd -= az; + } + + // move along x + z += sz; + xd += ax; + yd += ay; + } + } else { + throw logic_error("invalid branch taken while computing discrete line"); + } + + for (vector::iterator it = line.begin(); it != line.end(); ++it) { + it->x /= coef; + it->y /= coef; + it->z /= coef; + } +} diff --git a/.svn/pristine/55/55cdb4c8f35086ef92bdd6432b628e418257ae5c.svn-base b/.svn/pristine/55/55cdb4c8f35086ef92bdd6432b628e418257ae5c.svn-base new file mode 100644 index 0000000..7758d29 --- /dev/null +++ b/.svn/pristine/55/55cdb4c8f35086ef92bdd6432b628e418257ae5c.svn-base @@ -0,0 +1,210 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: geometry.cpp +// Author: John Labenski +// Created: 07/01/02 +// Copyright: John Labenski, 2002 +// License: wxWidgets v2 +///////////////////////////////////////////////////////////////////////////// + +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) + #pragma implementation "geometry.h" +#endif + +// For compilers that support precompilation, includes "wx/wx.h". +#include + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#include "wx/things/geometry.h" + +/* +2.4 : How do I generate a circle through three points? +Let the three given points be a, b, c. Use _0 and _1 to represent x and y coordinates. The coordinates of the center p=(p_0,p_1) of the circle determined by a, b, and c are: +A = b_0 - a_0; B = b_1 - a_1; C = c_0 - a_0; D = c_1 - a_1; +E = A*(a_0 + b_0) + B*(a_1 + b_1); F = C*(a_0 + c_0) + D*(a_1 + c_1); +G = 2.0*(A*(c_1 - b_1)-B*(c_0 - b_0)); +p_0 = (D*E - B*F) / G; p_1 = (A*F - C*E) / G; +If G is zero then the three points are collinear and no finite-radius circle through them exists. Otherwise, the radius of the circle is: +r^2 = (a_0 - p_0)^2 + (a_1 - p_1)^2 +[O' Rourke (C)] p. 201. Simplified by Jim Ward. +*/ + +wxCircleDouble::wxCircleDouble(const wxPoint2DDouble &p1, + const wxPoint2DDouble &p2, + const wxPoint2DDouble &p3) +{ + wxDouble A = p2.m_x - p1.m_x, + B = p2.m_y - p1.m_y, + C = p3.m_x - p1.m_x, + D = p3.m_y - p1.m_y; + + wxDouble E = A*(p1.m_x + p2.m_x) + B*(p1.m_y + p2.m_y), + F = C*(p1.m_x + p3.m_x) + D*(p1.m_y + p3.m_y), + G = 2.0*(A*(p3.m_y - p2.m_y)-B*(p3.m_x - p2.m_x)); + + if (G == 0) + { + m_x = m_y = m_r = 0; + return; + } + + m_x = (D*E - B*F) / G, + m_y = (A*F - C*E) / G; + m_r = sqrt( (p1.m_x - m_x)*(p1.m_x - m_x) + (p1.m_y - m_y)*(p1.m_y - m_y) ); +} + +int wxCircleDouble::IntersectLine( const wxRay2DDouble &line, + wxPoint2DDouble *pt1, + wxPoint2DDouble *pt2 ) const +{ + //if (line.GetDistanceToPoint(m_origin) > m_r) return 0; + + wxDouble l1_x = m_x-m_r, l1_y = line.GetYFromX(l1_x); + wxDouble l2_x = m_x+m_r, l2_y = line.GetYFromX(l2_x); + + // quick check to see it it intersects at all + //wxDouble top = m_origin.m_y-m_r, bot = m_origin.m_y+m_r; + //if (((l1_y < top)&&(l2_y < top))||((l1_y > bot)&&(l2_y > bot))) return 0; + + wxDouble l2_l1_x = l2_x - l1_x, l2_l1_y = l2_y - l1_y; + + wxDouble a = l2_l1_x*l2_l1_x + l2_l1_y*l2_l1_y; + wxDouble b = 2.0 * (l2_l1_x * (l1_x - m_x) + l2_l1_y * (l1_y - m_y) ); + + wxDouble c = m_x*m_x + m_y*m_y + l1_x*l1_x + l1_y*l1_y - 2.0*(m_x*l1_x + m_y*l1_y) - m_r*m_r; + wxDouble det = b*b - 4.0*a*c; + + if ( det < 0 ) + { + return 0; + } + else if ( det == 0 ) + { + if (pt1) + { + wxDouble u = -b/(2.0*a); + pt1->m_x = l2_x + u*l2_l1_x; + pt1->m_y = l2_y + u*l2_l1_y; + } + return 1; + } + // else det > 0 so 2 points intersect + wxDouble e = sqrt(det); + + if (pt1) + { + wxDouble u1 = (-b - e)/( 2.0*a ); + pt1->m_x = l1_x + u1*l2_l1_x; + pt1->m_y = l1_y + u1*l2_l1_y; + } + if (pt2) + { + wxDouble u2 = (-b + e)/( 2.0*a ); + pt2->m_x = l1_x + u2*l2_l1_x; + pt2->m_y = l1_y + u2*l2_l1_y; + } + + return 2; +} + + + + + + + + +/* +int wxEllipseInt::IntersectLine( const wxLine2DInt &line, + wxPoint2DInt &pt1, + wxPoint2DInt &pt2 ) const +{ + + //Intersection.intersectEllipseLine = function(c, rx, ry, a1, a2) { + //var result; + //line.m_pt // var origin = new Vector2D(a1.x, a1.y); + wxPoint2DInt dir = pt2 - p21; // var dir = Vector2D.fromPoints(a1, a2); + //m_origin //var center = new Vector2D(c.x, c.y); + wxPoint2DInt diff = line.m_pt - m_origin; //var diff = origin.subtract(center); + + //var mDir = new Vector2D( dir.x/(rx*rx), dir.y/(ry*ry) ); + wxPoint2DDouble mDir = wxPoint2DDouble(wxDouble(dir.m_x)/(m_radius.m_x*m_radius.m_x), + wxDouble(dir.m_y)/(m_radius.m_y*m_radius.m_y)); + //var mDiff = new Vector2D( diff.x/(rx*rx), diff.y/(ry*ry) ); + wxPoint2DDouble mDiff = wxPoint2DDouble(wxDouble(diff.m_x)/(m_radius.m_x*m_radius.m_x), + wxDouble(diff.m_y)/(m_radius.m_y*m_radius.m_y)); + + wxDouble a = dir.GetDotProduct(mDir); //var a = dir.dot(mDir); + wxDouble b = dir.GetDotProduct(mDiff); //var b = dir.dot(mDiff); + wxDouble c = diff.GetDotProduct(m_diff); //var c = diff.dot(mDiff) - 1.0; + wxDouble d = b*b - a*c; //var d = b*b - a*c; + + if ( d < 0 ) + { + return 0; //result = new Intersection("Outside"); + } + else if ( d > 0 ) + { + wxDouble root = sqrt(d); //var root = Math.sqrt(d); + wxDouble t_a = (-b - root)/a; //var t_a = (-b - root) / a; + wxDouble t_b = (-b + root)/a; //var t_b = (-b + root) / a; + + if ( (t_a < 0 || 1 < t_a) && (t_b < 0 || 1 < t_b) ) + { + if ( (t_a < 0 && t_b < 0) || (t_a > 1 && t_b > 1) ) + result = new Intersection("Outside"); + else + result = new Intersection("Inside"); + } + else + { + result = new Intersection("Intersection"); + if ( 0 <= t_a && t_a <= 1 ) + result.appendPoint( a1.lerp(a2, t_a) ); + if ( 0 <= t_b && t_b <= 1 ) + result.appendPoint( a1.lerp(a2, t_b) ); + } + } + else + { + var t = -b/a; + if ( 0 <= t && t <= 1 ) + { + result = new Intersection("Intersection"); + result.appendPoint( a1.lerp(a2, t) ); + } else + { + result = new Intersection("Outside"); + } + } + + return result; +} +*/ +/* +> I am looking for the algorithm to calculate the intersection of a line +with +> an ellipse, that is not necessarily parrallel to x,y axis. +> +> I cannot find anything that is easy to understand. + +The ellipse can be represented by a quadratic polynomial, +a00+a10*x+a01*y+a20*x^2+a11*x*y+a02*y^2 = 0. +The line is b0+b1*x+b2*y = 0 where one of b1 or b2 is +not zero. For the sake of argument, suppose b2 is not +zero. Solve for y = -(b0+b1*x)/b2. Replace this in the +quadratic equation and multiply through by b2^2 to get +Q(x) = c0 + c1*x + c2*x^2 = 0 where + c0 = a02*b0^2-a01*b0*b2+a00*b2^2 + c1 = 2*a02*b0*b1-a11*b0*b2-a01*b1*b2+a10*b2^2 + c2 = a02*b1^2-a11*b1*b2+a02*b2^2 +If Q(x) has no real roots, the line and ellipse do not intersect. +If Q(x) has a single, repeated real root x0, the line and ellipse +are tangent. The y-value is y0 = -(b0+b1*x0)/b2. If Q(x) +has two distinct real roots x0 and x1, the line and ellipse +intersect in two points (x0,y0) and (x1,y1) where +y0 = -(b0+b1*x0)/b2 and y1 = -(b0+b1*x1)/b2. + +*/ diff --git a/.svn/pristine/55/55cfbdea3ef90bd77b1974683d36be08f3a2a12d.svn-base b/.svn/pristine/55/55cfbdea3ef90bd77b1974683d36be08f3a2a12d.svn-base new file mode 100644 index 0000000..9104034 --- /dev/null +++ b/.svn/pristine/55/55cfbdea3ef90bd77b1974683d36be08f3a2a12d.svn-base @@ -0,0 +1,85 @@ +// test routines - faster to compile +#include +#include +#include "pgm2asc.h" +#include "unicode.h" +#include "amiga.h" +#include "gocr.h" + +// for learn_mode/analyze_mode high, with, yoffset, num of pattern_i, +// - holes (center,radius in relative coordinates) etc. => cluster analyze +// num_hole => min-volume, tolerance border +// pattern: @@ @. @@ +// .@ @. .. +// regular filter for large resolutions to make edges more smooth (on boxes) +// extra-filter (only if not recognized?) +// map + same color to (#==change) +// - anti color +// . not used +// strongest neighbour pixels (3x3) => directions +// second/third run with more and more tolerance!? + +/* FIXME jb: following is unused */ +#if 0 +struct lobj { // line-object (for fitting to near lines) + int x0,y0; // starting point (left up) + int x1,y1; // end point (right down) + int mt; // minimum thickness + int q; // quality, overlapp +}; + +/* FIXME jb global */ +struct lobj obj1; +#endif + +// that is the first draft of feature extraction +// detect main lines and bows +// seems bad implemented, looking for better algorithms (ToDo: use autotrace) +#define MAXL 10 +void ocr2(pix *b,int cs){ + int x1,y1,x2,y2,l,i,j,xa[MAXL],ya[MAXL],xb[MAXL],yb[MAXL],ll[MAXL]; + for(i=0;ix;x1++) // very slowly, but simple to program + for(y1=0;y1y;y1++) // brute force + for(x2=0;x2x;x2++) + for(y2=y1+1;y2y;y2++) + { + if( get_line2(x1,y1,x2,y2,b,cs,100)>99 ) + { // line ??? + l=(x2-x1)*(x2-x1)+(y2-y1)*(y2-y1); // len + for(i=0;ix/2 + && abs(y1+y2-ya[i]-yb[i])<1+b->y/2 + && abs(y1-ya[i])<1+b->y/4 + && abs(x1-xa[i])<1+b->x/4 + ) + { + if( l>ll[i] ) + { + for(j=i;jll[i] ){ // insert if larger + for(j=MAXL-1;j>i;j--){ // shift table + xa[j]=xa[j-1];ya[j]=ya[j-1]; + xb[j]=xb[j-1];yb[j]=yb[j-1];ll[j]=ll[j-1]; + } + xa[i]=x1;ya[i]=y1;xb[i]=x2;yb[i]=y2;ll[i]=l; + break; + } + } + } + } + for(i=0;ih-local_y)-y_abs) ); */ + + return false; +} + + +/**************************** GLUI_Mouse_Interaction::mouse_up_handler() */ + +int GLUI_Mouse_Interaction::mouse_up_handler( int local_x, int local_y, int inside ) +{ + iaction_mouse_up_handler( local_x-x_abs, local_y-y_abs, inside ); + return false; +} + + +/****************************** GLUI_Mouse_Interaction::mouse_held_down_handler() ******/ + +int GLUI_Mouse_Interaction::mouse_held_down_handler( int local_x, int local_y, + int inside) +{ + iaction_mouse_held_down_handler( local_x-x_abs, local_y-y_abs , inside ); + + draw_active_area(); + + /** Tell the main graphics window to update iteself **/ + if( glui ) + glui->post_update_main_gfx(); + + execute_callback(); + + return false; +} + + + +/****************************** GLUI_Mouse_Interaction::draw() **********/ + +void GLUI_Mouse_Interaction::draw( int x, int y ) +{ + int orig; + int text_width = string_width( this->name ); + int x_left = this->w/2 - text_width/2; + + if ( NOT glui ) + return; + + if ( NOT draw_active_area_only ) { + orig = set_to_glut_window(); + draw_name( x_left, h-4 ); + restore_window(orig); + + draw_active_box( x_left-4, x_left+string_width( name.string )+4, + h, h-14 ); + } + + draw_active_area(); +} + + +/************************************ GLUI_Mouse_Interaction::update_size() **********/ + +void GLUI_Mouse_Interaction::update_size( void ) +{ + if ( NOT glui ) + return; + + int text_width = string_width( this->name ); + + if ( w < text_width+6 ) + w = text_width+6; + + if ( h - 18 > w ) + w = h - 18; + + iaction_init(); +} + + +/****************************** GLUI_Mouse_Interaction::special_handler() **********/ + +int GLUI_Mouse_Interaction::special_handler( int key,int modifiers ) +{ + int center_x, center_y; + int drag_x, drag_y; + + center_x = w/2; + center_y = (h-18)/2; + drag_x = 0; + drag_y = 0; + + + if ( key == GLUT_KEY_LEFT ) + drag_x = -6; + else if ( key == GLUT_KEY_RIGHT ) + drag_x = 6; + else if ( key == GLUT_KEY_UP ) + drag_y = -6; + else if ( key == GLUT_KEY_DOWN ) + drag_y = 6; + + if ( drag_x != 0 OR drag_y != 0 ) { + mouse_down_handler( center_x, center_y ); + mouse_held_down_handler( center_x + drag_x, center_y + drag_y,true ); + mouse_up_handler( center_x + drag_x, center_y + drag_y, true ); + } + + return false; +} + + +/****************************** GLUI_Mouse_Interaction::draw_active_area() **********/ + +void GLUI_Mouse_Interaction::draw_active_area( void ) +{ + int orig; + int win_h = glutGet( GLUT_WINDOW_HEIGHT ), win_w = glutGet(GLUT_WINDOW_WIDTH); + + if ( NOT glui ) + return; + + /*putchar( 'X' ); flushout; */ + + orig = set_to_glut_window(); + + int text_height = 18; /* what a kludge */ + + int viewport_size = h-text_height; /*MIN(w,h); */ + + glMatrixMode( GL_MODELVIEW ); + glPushMatrix(); + glLoadIdentity(); + glTranslatef( (float) win_w/2.0, (float) win_h/2.0, 0.0 ); + glRotatef( 180.0, 0.0, 1.0, 0.0 ); + glRotatef( 180.0, 0.0, 0.0, 1.0 ); + glTranslatef( (float) -win_w/2.0, (float) -win_h/2.0, 0.0 ); + + glTranslatef( (float) this->x_abs + .5, (float) this->y_abs + .5, 0.0 ); + + glTranslatef( (float)this->w/2.0, (float)viewport_size/2.0 + 2.0 , 0.0 ); + + /*** Draw the interaction control's orthographic elements ***/ + iaction_draw_active_area_ortho(); + + /*** Setup and draw the interaction control's perspective elements ***/ + + /*** Set the viewport to just the square of the drawing area ***/ + /* glViewport( this->x_abs , glui->main_panel->h - this->y_abs - this->h,*/ + /*glViewport( this->x_abs+1+(this->w/2-viewport_size/2), + this->h-this->y_abs-viewport_size-1, + viewport_size, viewport_size );*/ + + viewport_size -= 4; + int offset = 0; + if ( ((this->w-viewport_size) % 2) == 1 ) + offset = 1; + + glViewport( this->x_abs + (this->w-viewport_size)/2 + offset, + win_h - this->y_abs - this->h + text_height, + viewport_size, viewport_size ); + + glMatrixMode( GL_PROJECTION ); + glLoadIdentity(); + glFrustum( -1.0*.08, 1.0*.08, -.08, .08, .1, 8.0 ); + glMatrixMode( GL_MODELVIEW ); + glPushMatrix(); + glLoadIdentity(); + glTranslatef( 0.0, 0.0, -3.2f ); + + /* glutSolidTeapot( 1.0 ); */ + iaction_draw_active_area_persp(); + + glMatrixMode( GL_MODELVIEW ); + glPopMatrix(); + + glui->set_viewport(); + glui->set_ortho_projection(); + + glMatrixMode( GL_MODELVIEW ); + glPopMatrix(); + + restore_window(orig); +} + diff --git a/.svn/pristine/56/5616d822bf4258da2301e267a8cd78e96ff37897.svn-base b/.svn/pristine/56/5616d822bf4258da2301e267a8cd78e96ff37897.svn-base new file mode 100644 index 0000000..9c096f2 --- /dev/null +++ b/.svn/pristine/56/5616d822bf4258da2301e267a8cd78e96ff37897.svn-base @@ -0,0 +1,126 @@ + +//#define WANT_STREAM + + +#include "include.h" + +#include "newmatap.h" + +#include "tmt.h" + +#ifdef use_namespace +using namespace NEWMAT; +#endif + + +/**************************** test program ******************************/ + + +static void process(const GeneralMatrix& A, + const ColumnVector& X1, const ColumnVector& X2) +{ + Matrix B = A; + LinearEquationSolver L(A); + Matrix Y(4,2); + Y.Column(1) << L.i() * X1; Y.Column(2) << L.i() * X2; + Matrix Z(4,2); Z.Column(1) << X1; Z.Column(2) << X2; + Z = B * Y - Z; Clean(Z,0.00000001); Print(Z); +} + + + +void trymata() +{ +// cout << "\nTenth test of Matrix package\n"; + Tracer et("Tenth test of Matrix package"); + Tracer::PrintTrace(); + int i; int j; + UpperTriangularMatrix U(8); + for (i=1;i<=8;i++) for (j=i;j<=8;j++) U(i,j)=i+j*j+5; + Matrix X(8,6); + for (i=1;i<=8;i++) for (j=1;j<=6;j++) X(i,j)=i*j+1.0; + Matrix Y = U.i()*X; Matrix MU=U; + Y=Y-MU.i()*X; Clean(Y,0.00000001); Print(Y); + Y = U.t().i()*X; Y=Y-MU.t().i()*X; Clean(Y,0.00000001); Print(Y); + UpperTriangularMatrix UX(8); + for (i=1;i<=8;i++) for (j=i;j<=8;j++) UX(i,j)=i+j+1; + UX(4,4)=0; UX(4,5)=0; + UpperTriangularMatrix UY = U.i() * UX; + { X=UX; MU=U; Y=UY-MU.i()*X; Clean(Y,0.000000001); Print(Y); } + LowerTriangularMatrix LY = U.t().i() * UX.t(); + { Y=LY-MU.i().t()*X.t(); Clean(Y,0.000000001); Print(Y); } + DiagonalMatrix D(8); for (i=1;i<=8;i++) D(i,i)=i+1; + { X=D.i()*MU; } + { UY=U; UY=D.i()*UY; Y=UY-X; Clean(Y,0.00000001); Print(Y); } + { UY=D.i()*U; Y=UY-X; Clean(Y,0.00000001); Print(Y); } +// X=MU.t(); +// LY=D.i()*U.t(); Y=D*LY-X; Clean(Y,0.00000001); Print(Y); +// LowerTriangularMatrix L=U.t(); +// LY=D.i()*L; Y=D*LY-X; Clean(Y,0.00000001); Print(Y); + U.ReSize(8); + for (i=1;i<=8;i++) for (j=i;j<=8;j++) U(i,j)=i+j*j+5; + MU = U; + MU = U.i() - MU.i(); Clean(MU,0.00000001); Print(MU); + MU = U.t().i() - U.i().t(); Clean(MU,0.00000001); Print(MU); + + // test LINEQ + { + ColumnVector X1(4), X2(4); + X1(1)=1; X1(2)=2; X1(3)=3; X1(4)=4; + X2(1)=1; X2(2)=10; X2(3)=100; X2(4)=1000; + + + Matrix A(4,4); + A(1,1)=1; A(1,2)=3; A(1,3)=0; A(1,4)=0; + A(2,1)=3; A(2,2)=2; A(2,3)=5; A(2,4)=0; + A(3,1)=0; A(3,2)=5; A(3,3)=4; A(3,4)=1; + A(4,1)=0; A(4,2)=0; A(4,3)=1; A(4,4)=3; + process(A,X1,X2); + + BandMatrix B(4,1,1); B.Inject(A); + process(B,X1,X2); + + UpperTriangularMatrix U(4); + U(1,1)=1; U(1,2)=2; U(1,3)=3; U(1,4)=4; + U(2,2)=8; U(2,3)=7; U(2,4)=6; + U(3,3)=2; U(3,4)=7; + U(4,4)=1; + process(U,X1,X2); + + // check rowwise load + UpperTriangularMatrix U1(4); + U1.Row(1) << 1 << 2 << 3 << 4; + U1.Row(2) << 8 << 7 << 6; + U1.Row(3) << 2 << 7; + U1.Row(4) << 1; + + U1 -= U; + + Print(U1); + + LowerTriangularMatrix L = U.t(); + process(L,X1,X2); + } + + // test inversion of poorly conditioned matrix + // a user complained this didn't work under OS9 + { + Matrix M(4,4); + + M << 8.613057e+00 << 8.693985e+00 << -2.322050e-01 << 0.000000e+00 + << 8.693985e+00 << 8.793868e+00 << -2.346310e-01 << 0.000000e+00 + << -2.322050e-01 << -2.346310e-01 << 6.264000e-03 << 0.000000e+00 + << 0.000000e+00 << 0.000000e+00 << 0.000000e+00 << 3.282806e+03 ; + Matrix MI = M.i(); + DiagonalMatrix I(4); I = 1; + Matrix Diff = MI * M - I; + Clean(Diff,0.00000001); Print(Diff); + // Alternatively do Cholesky + SymmetricMatrix SM; SM << M; + LowerTriangularMatrix LT = Cholesky(SM).i(); + MI = LT.t() * LT; Diff = MI * M - I; + Clean(Diff,0.00000001); Print(Diff); + } + +// cout << "\nEnd of tenth test\n"; +} diff --git a/.svn/pristine/56/56817797754a9bce3cd6ab627783fcf8bb466192.svn-base b/.svn/pristine/56/56817797754a9bce3cd6ab627783fcf8bb466192.svn-base new file mode 100644 index 0000000..977f639 --- /dev/null +++ b/.svn/pristine/56/56817797754a9bce3cd6ab627783fcf8bb466192.svn-base @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.svn/pristine/56/5688bf6262c14960adc03234006515d0f7084b9f.svn-base b/.svn/pristine/56/5688bf6262c14960adc03234006515d0f7084b9f.svn-base new file mode 100644 index 0000000..16e017d --- /dev/null +++ b/.svn/pristine/56/5688bf6262c14960adc03234006515d0f7084b9f.svn-base @@ -0,0 +1,374 @@ +/* +This is a Optical-Character-Recognition program +Copyright (C) 2000-2009 Joerg Schulenburg + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + see README for EMAIL-address + + sometimes I have written comments in german language, sorry for that + + This file was retrieved from pgm2asc.cc of Joerg, in order to have + a library of the ocr-engine from Klaas Freitag + + */ +#include "config.h" +#include +#include +#include +#include +#ifdef HAVE_GETTIMEOFDAY +#include +#endif +#ifdef HAVE_UNISTD_H +#include +#endif + +#include "pnm.h" +#include "pgm2asc.h" +#include "pcx.h" +#include "ocr0.h" /* only_numbers */ +#include "progress.h" +#include "version.h" + +static void out_version(int v) { + fprintf(stderr, " Optical Character Recognition --- gocr " + version_string " " release_string "\n" + " Copyright (C) 2001-2009 Joerg Schulenburg GPG=1024D/53BDFBE3\n" + " released under the GNU General Public License\n"); + /* as recommended, (c) and license should be part of the binary */ + /* no email because of SPAM, see README for contacting the author */ + if (v) + fprintf(stderr, " use option -h for help\n"); + if (v & 2) + exit(1); + return; +} + +static void help(void) { + out_version(0); + /* output is shortened to essentials, see manual page for details */ + fprintf(stderr, + " using: gocr [options] pnm_file_name # use - for stdin\n" + " options (see gocr manual pages for more details):\n" + " -h, --help\n" + " -i name - input image file (pnm,pgm,pbm,ppm,pcx,...)\n" + " -o name - output file (redirection of stdout)\n" + " -e name - logging file (redirection of stderr)\n" + " -x name - progress output to fifo (see manual)\n" + " -p name - database path including final slash (default is ./db/)\n"); + fprintf(stderr, /* string length less than 509 bytes for ISO C89 */ + " -f fmt - output format (ISO8859_1 TeX HTML XML UTF8 ASCII)\n" + " -l num - threshold grey level 0<160<=255 (0 = autodetect)\n" + " -d num - dust_size (remove small clusters, -1 = autodetect)\n" + " -s num - spacewidth/dots (0 = autodetect)\n" + " -v num - verbose (see manual page)\n" + " -c string - list of chars (debugging, see manual)\n" + " -C string - char filter (ex. hexdigits: ""0-9A-Fx"", only ASCII)\n" + " -m num - operation modes (bitpattern, see manual)\n"); + fprintf(stderr, /* string length less than 509 bytes for ISO C89 */ + " -a num - value of certainty (in percent, 0..100, default=95)\n" + " -u string - output this string for every unrecognized character\n"); + fprintf(stderr, /* string length less than 509 bytes for ISO C89 */ + " examples:\n" + "\tgocr -m 4 text1.pbm # do layout analyzis\n" + "\tgocr -m 130 -p ./database/ text1.pbm # extend database\n" + "\tdjpeg -pnm -gray text.jpg | gocr - # use jpeg-file via pipe\n" + "\n"); + fprintf(stderr, " webpage: http://jocr.sourceforge.net/\n"); + exit(0); +} + +#ifdef HAVE_GETTIMEOFDAY +/* from the glibc documentation */ +static int timeval_subtract (struct timeval *result, struct timeval *x, + struct timeval *y) { + + /* Perform the carry for the later subtraction by updating Y. */ + if (x->tv_usec < y->tv_usec) { + int nsec = (y->tv_usec - x->tv_usec) / 1000000 + 1; + y->tv_usec -= 1000000 * nsec; + y->tv_sec += nsec; + } + if (x->tv_usec - y->tv_usec > 1000000) { + int nsec = (x->tv_usec - y->tv_usec) / 1000000; + y->tv_usec += 1000000 * nsec; + y->tv_sec -= nsec; + } + + /* Compute the time remaining to wait. + `tv_usec' is certainly positive. */ + result->tv_sec = x->tv_sec - y->tv_sec; + result->tv_usec = x->tv_usec - y->tv_usec; + + /* Return 1 if result is negative. */ + return x->tv_sec < y->tv_sec; +} +#endif + +static void process_arguments(job_t *job, int argn, char *argv[]) +{ + int i; + char *s1; + + assert(job); + + if (argn <= 1) { + out_version(1); + exit(0); + } +#ifdef HAVE_PGM_H + pnm_init(&argn, &argv); +#endif + + /* process arguments */ + for (i = 1; i < argn; i++) { + if (strcmp(argv[i], "--help") == 0) + help(); /* and quits */ + if (argv[i][0] == '-' && argv[i][1] != 0) { + s1 = ""; + if (i + 1 < argn) + s1 = argv[i + 1]; + switch (argv[i][1]) { + case 'h': /* help */ + help(); + break; + case 'i': /* input image file */ + job->src.fname = s1; + i++; + break; + case 'e': /* logging file */ + if (s1[0] == '-' && s1[1] == '\0') { +#ifdef HAVE_UNISTD_H + dup2(STDOUT_FILENO, STDERR_FILENO); /* -e /dev/stdout works */ +#else + fprintf(stderr, "stderr redirection not possible without unistd.h\n"); +#endif + } + else if (!freopen(s1, "w", stderr)) { + fprintf(stderr, "stderr redirection to %s failed\n", s1); + } + i++; + break; + case 'p': /* database path */ + job->cfg.db_path=s1; + i++; + break; + case 'o': /* output file */ + if (s1[0] == '-' && s1[1] == '\0') { /* default */ + } + else if (!freopen(s1, "w", stdout)) { + fprintf(stderr, "stdout redirection to %s failed\n", s1); + }; + i++; + break; + case 'f': /* output format */ + if (strcmp(s1, "ISO8859_1") == 0) job->cfg.out_format=ISO8859_1; else + if (strcmp(s1, "TeX") == 0) job->cfg.out_format=TeX; else + if (strcmp(s1, "HTML") == 0) job->cfg.out_format=HTML; else + if (strcmp(s1, "XML") == 0) job->cfg.out_format=XML; else + if (strcmp(s1, "SGML") == 0) job->cfg.out_format=SGML; else + if (strcmp(s1, "UTF8") == 0) job->cfg.out_format=UTF8; else + if (strcmp(s1, "ASCII") == 0) job->cfg.out_format=ASCII; else + fprintf(stderr,"Warning: unknown format (-f %s)\n",s1); + i++; + break; + case 'c': /* list of chars (_ = not recognized chars) */ + job->cfg.lc = s1; + i++; + break; + case 'C': /* char filter, default: NULL (all chars) */ + /* ToDo: UTF8 input, wchar */ + job->cfg.cfilter = s1; + i++; + break; + case 'd': /* dust size */ + job->cfg.dust_size = atoi(s1); + i++; + break; + case 'l': /* grey level 0<160<=255, 0 for autodetect */ + job->cfg.cs = atoi(s1); + i++; + break; + case 's': /* spacewidth/dots (0 = autodetect) */ + job->cfg.spc = atoi(s1); + i++; + break; + case 'v': /* verbose mode */ + job->cfg.verbose |= atoi(s1); + i++; + break; + case 'm': /* operation modes */ + job->cfg.mode |= atoi(s1); + i++; + break; + case 'n': /* numbers only */ + job->cfg.only_numbers = atoi(s1); + i++; + break; + case 'x': /* initialize progress output s1=fname */ + ini_progress(s1); + i++; + break; + case 'a': /* set certainty */ + job->cfg.certainty = atoi(s1);; + i++; + break; + case 'u': /* output marker for unrecognized chars */ + job->cfg.unrec_marker = s1; + i++; + break; + default: + fprintf(stderr, "# unknown option use -h for help\n"); + } + continue; + } + else /* argument can be filename v0.2.5 */ if (argv[i][0] != '-' + || argv[i][1] == '\0' ) { + job->src.fname = argv[i]; + } + } +} + +static void mark_start(job_t *job) { + assert(job); + + if (job->cfg.verbose) { + out_version(0); + /* insert some helpful info for support */ + fprintf(stderr, "# compiled: " __DATE__ ); +#if defined(__GNUC__) + fprintf(stderr, " GNUC-%d", __GNUC__ ); +#endif +#ifdef __GNUC_MINOR__ + fprintf(stderr, ".%d", __GNUC_MINOR__ ); +#endif +#if defined(__linux) + fprintf(stderr, " linux"); +#elif defined(__unix) + fprintf(stderr, " unix"); +#endif +#if defined(__WIN32) || defined(__WIN32__) + fprintf(stderr, " WIN32"); +#endif +#if defined(__WIN64) || defined(__WIN64__) + fprintf(stderr, " WIN64"); +#endif +#if defined(__VERSION__) + fprintf(stderr, " version " __VERSION__ ); +#endif + fprintf(stderr, "\n"); + fprintf(stderr, + "# options are: -l %d -s %d -v %d -c %s -m %d -d %d -n %d -a %d -C \"%s\"\n", + job->cfg.cs, job->cfg.spc, job->cfg.verbose, job->cfg.lc, job->cfg.mode, + job->cfg.dust_size, job->cfg.only_numbers, job->cfg.certainty, + job->cfg.cfilter); + fprintf(stderr, "# file: %s\n", job->src.fname); +#ifdef USE_UNICODE + fprintf(stderr,"# using unicode\n"); +#endif +#ifdef HAVE_GETTIMEOFDAY + gettimeofday(&job->tmp.init_time, NULL); +#endif + } +} + +static void mark_end(job_t *job) { + assert(job); + +#ifdef HAVE_GETTIMEOFDAY + /* show elapsed time */ + if (job->cfg.verbose) { + struct timeval end, result; + gettimeofday(&end, NULL); + timeval_subtract(&result, &end, &job->tmp.init_time); + fprintf(stderr,"Elapsed time: %d:%02d:%3.3f.\n", (int)result.tv_sec/60, + (int)result.tv_sec%60, (float)result.tv_usec/1000); + } +#endif +} + +static int read_picture(job_t *job) { + int rc=0; + assert(job); + + if (strstr(job->src.fname, ".pcx")) + readpcx(job->src.fname, &job->src.p, job->cfg.verbose); + else + rc=readpgm(job->src.fname, &job->src.p, job->cfg.verbose); + return rc; /* 1 for multiple images, 0 else */ +} + +/* subject of change, we need more output for XML (ToDo) */ +void print_output(job_t *job) { + int linecounter = 0; + const char *line; + + assert(job); + + linecounter = 0; + line = getTextLine(linecounter++); + while (line) { + /* notice: decode() is shiftet to getTextLine since 0.38 */ + fputs(line, stdout); + if (job->cfg.out_format==HTML) fputs("
",stdout); + if (job->cfg.out_format!=XML) fputc('\n', stdout); + line = getTextLine(linecounter++); + } + free_textlines(); +} + +/* FIXME jb: remove JOB; */ +job_t *JOB; + + +/* ------------------------------------------------------------- +// ------ MAIN - replace this by your own aplication! +// ------------------------------------------------------------- */ +int main(int argn, char *argv[]) { + int multipnm=1; + job_t job; + + JOB = &job; + setvbuf(stdout, (char *) NULL, _IONBF, 0); /* not buffered */ + + while (multipnm==1) { + + job_init(&job); + + process_arguments(&job, argn, argv); + + mark_start(&job); + + multipnm = read_picture(&job); + /* separation of main and rest for using as lib + this will be changed later => introduction of set_option() + for better communication to the engine */ + if (multipnm<0) break; /* read error */ + + /* call main loop */ + pgm2asc(&job); + + mark_end(&job); + + print_output(&job); + + job_free(&job); + + } + + return 0; +} + diff --git a/.svn/pristine/56/56f71c5873323b663713e59c4cbb63ec2a74564c.svn-base b/.svn/pristine/56/56f71c5873323b663713e59c4cbb63ec2a74564c.svn-base new file mode 100644 index 0000000..8972487 --- /dev/null +++ b/.svn/pristine/56/56f71c5873323b663713e59c4cbb63ec2a74564c.svn-base @@ -0,0 +1,50 @@ +#ifndef __GRIDLINES_H_ +#define __GRIDLINES_H_ + +#include +using std::vector; + +#include +using std::string; +#include "grid/grid.h" +#include "grid/line.h" + + +/** + * Class calculates all lines of a grid using hough transformation. + * Consideres all points with a percentage higher than "isSolidPoint" variable. + * Contains a method to write the lines to file (GnuPlot or own lin) + * + * @author Uwe Hebbelmann, Sebastian Stock, Andre Schemschat + * + * @date 25.02.2008 + */ +class gridlines +{ + private: + /** Minimal percentage for a solid point relevant for a line */ + double isSolidPoint; + + /** contains all lines of the grid */ + vector lines; + + public: + /** @brief CTOR */ + gridlines(grid* g, int max_distance, double isSolidPoint); + + /** + * @brief Creates the lines for the grid g and stores them in the vector "lines" + */ + void createLines(grid* g, int max_distance); + + /** @brief Returns the vector with the lines */ + vector* getLines(); + + /** @brief Writes the lines to a gnuplot file */ + void writeGnuPlot(string file); + + /** @brief Writes the lines to a lin file */ + void writeLin(string file); +}; + +#endif diff --git a/.svn/pristine/57/574f5472dde9dff620cd7a4b2b432c86dd1368fd.svn-base b/.svn/pristine/57/574f5472dde9dff620cd7a4b2b432c86dd1368fd.svn-base new file mode 100644 index 0000000..27fa470 --- /dev/null +++ b/.svn/pristine/57/574f5472dde9dff620cd7a4b2b432c86dd1368fd.svn-base @@ -0,0 +1,30 @@ +/** + * @file + * @brief Scan types and mapping functions. + * + * @author Thomas Escher + */ + +#ifndef IO_TYPES_H +#define IO_TYPES_H + +//! IO types for file formats, distinguishing the use of ScanIOs +enum IOType { + UOS, UOS_MAP, UOS_FRAMES, UOS_MAP_FRAMES, UOS_RGB, OLD, RTS, RTS_MAP, RIEGL_TXT, RIEGL_PROJECT, RIEGL_RGB, RIEGL_BIN, IFP, ZAHN, PLY, WRL, XYZ, ZUF, ASC, IAIS, FRONT, X3D, RXP, KIT, AIS, OCT, TXYZR, XYZR, XYZ_RGB, KS, KS_RGB, STL, LEICA, PCL, PCI, UOS_CAD, VELODYNE, VELODYNE_FRAMES +}; + +//! Data channels in the scans +enum IODataType { + DATA_XYZ = 1<<0, + DATA_RGB = 1<<1, + DATA_REFLECTANCE = 1<<2, + DATA_AMPLITUDE = 1<<3, + DATA_TYPE = 1<<4, + DATA_DEVIATION = 1<<5 +}; + +IOType formatname_to_io_type(const char * string); + +const char * io_type_to_libname(IOType type); + +#endif //IO_TYPES_H diff --git a/.svn/pristine/57/57b859b97631f549bc7173dcc8757c6c1c8709c4.svn-base b/.svn/pristine/57/57b859b97631f549bc7173dcc8757c6c1c8709c4.svn-base new file mode 100644 index 0000000..48f53bd --- /dev/null +++ b/.svn/pristine/57/57b859b97631f549bc7173dcc8757c6c1c8709c4.svn-base @@ -0,0 +1,38 @@ + + +int glui_img_checkbox_1[] = { 13, 13, /* width, height */ + 255,255,255, 255,255,255, 255,255,255, 255,255,255, 255,255,255, + 255,255,255, 255,255,255, 255,255,255, 255,255,255, 255,255,255, + 255,255,255, 255,255,255, 255,255,255, 128,128,128, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 255,255,255, 128,128,128, 0, 0, 0, 255,255,255, 255,255,255, + 255,255,255, 255,255,255, 255,255,255, 255,255,255, 255,255,255, + 255,255,255, 255,255,255, 192,192,192, 255,255,255, 128,128,128, + 0, 0, 0, 255,255,255, 255,255,255, 255,255,255, 0, 0, 0, + 255,255,255, 255,255,255, 255,255,255, 255,255,255, 255,255,255, + 192,192,192, 255,255,255, 128,128,128, 0, 0, 0, 255,255,255, + 255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255,255,255, + 255,255,255, 255,255,255, 255,255,255, 192,192,192, 255,255,255, + 128,128,128, 0, 0, 0, 255,255,255, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 255,255,255, 255,255,255, + 255,255,255, 192,192,192, 255,255,255, 128,128,128, 0, 0, 0, + 255,255,255, 0, 0, 0, 0, 0, 0, 255,255,255, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 255,255,255, 255,255,255, 192,192,192, + 255,255,255, 128,128,128, 0, 0, 0, 255,255,255, 0, 0, 0, + 255,255,255, 255,255,255, 255,255,255, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 255,255,255, 192,192,192, 255,255,255, 128,128,128, + 0, 0, 0, 255,255,255, 255,255,255, 255,255,255, 255,255,255, + 255,255,255, 255,255,255, 0, 0, 0, 0, 0, 0, 255,255,255, + 192,192,192, 255,255,255, 128,128,128, 0, 0, 0, 255,255,255, + 255,255,255, 255,255,255, 255,255,255, 255,255,255, 255,255,255, + 255,255,255, 0, 0, 0, 255,255,255, 192,192,192, 255,255,255, + 128,128,128, 0, 0, 0, 255,255,255, 255,255,255, 255,255,255, + 255,255,255, 255,255,255, 255,255,255, 255,255,255, 255,255,255, + 255,255,255, 192,192,192, 255,255,255, 128,128,128, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 192,192,192, + 255,255,255, 128,128,128, 128,128,128, 128,128,128, 128,128,128, + 128,128,128, 128,128,128, 128,128,128, 128,128,128, 128,128,128, + 128,128,128, 128,128,128, 128,128,128, 255,255,255, +}; diff --git a/.svn/pristine/57/57df41a64927263c6c0e517f1ba7602fc0ebd8e1.svn-base b/.svn/pristine/57/57df41a64927263c6c0e517f1ba7602fc0ebd8e1.svn-base new file mode 100644 index 0000000..e4f924e --- /dev/null +++ b/.svn/pristine/57/57df41a64927263c6c0e517f1ba7602fc0ebd8e1.svn-base @@ -0,0 +1,9035 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: frame3_final.eps +%%Creator: fig2dev Version 3.2 Patchlevel 3d +%%CreationDate: Mon Dec 15 08:28:19 2003 +%%For: root@rhum (root) +%%BoundingBox: 0 0 412 412 +%%Magnification: 1.0000 +%%EndComments +/$F2psDict 200 dict def +$F2psDict begin +$F2psDict /mtrx matrix put +/col-1 {0 setgray} bind def +/col0 {0.000 0.000 0.000 srgb} bind def +/col1 {0.000 0.000 1.000 srgb} bind def +/col2 {0.000 1.000 0.000 srgb} bind def +/col3 {0.000 1.000 1.000 srgb} bind def +/col4 {1.000 0.000 0.000 srgb} bind def +/col5 {1.000 0.000 1.000 srgb} bind def +/col6 {1.000 1.000 0.000 srgb} bind def +/col7 {1.000 1.000 1.000 srgb} bind def +/col8 {0.000 0.000 0.560 srgb} bind def +/col9 {0.000 0.000 0.690 srgb} bind def +/col10 {0.000 0.000 0.820 srgb} bind def +/col11 {0.530 0.810 1.000 srgb} bind def +/col12 {0.000 0.560 0.000 srgb} bind def +/col13 {0.000 0.690 0.000 srgb} bind def +/col14 {0.000 0.820 0.000 srgb} bind def +/col15 {0.000 0.560 0.560 srgb} bind def +/col16 {0.000 0.690 0.690 srgb} bind def +/col17 {0.000 0.820 0.820 srgb} bind def +/col18 {0.560 0.000 0.000 srgb} bind def +/col19 {0.690 0.000 0.000 srgb} bind def +/col20 {0.820 0.000 0.000 srgb} bind def +/col21 {0.560 0.000 0.560 srgb} bind def +/col22 {0.690 0.000 0.690 srgb} bind def +/col23 {0.820 0.000 0.820 srgb} bind def +/col24 {0.500 0.190 0.000 srgb} bind def +/col25 {0.630 0.250 0.000 srgb} bind def +/col26 {0.750 0.380 0.000 srgb} bind def +/col27 {1.000 0.500 0.500 srgb} bind def +/col28 {1.000 0.630 0.630 srgb} bind def +/col29 {1.000 0.750 0.750 srgb} bind def +/col30 {1.000 0.880 0.880 srgb} bind def +/col31 {1.000 0.840 0.000 srgb} bind def + +end +save +newpath 0 412 moveto 0 0 lineto 412 0 lineto 412 412 lineto closepath clip newpath +-73.7 527.2 translate +1 -1 scale + +/cp {closepath} bind def +/ef {eofill} bind def +/gr {grestore} bind def +/gs {gsave} bind def +/sa {save} bind def +/rs {restore} bind def +/l {lineto} bind def +/m {moveto} bind def +/rm {rmoveto} bind def +/n {newpath} bind def +/s {stroke} bind def +/sh {show} bind def +/slc {setlinecap} bind def +/slj {setlinejoin} bind def +/slw {setlinewidth} bind def +/srgb {setrgbcolor} bind def +/rot {rotate} bind def +/sc {scale} bind def +/sd {setdash} bind def +/ff {findfont} bind def +/sf {setfont} bind def +/scf {scalefont} bind def +/sw {stringwidth} bind def +/tr {translate} bind def +/tnt {dup dup currentrgbcolor + 4 -2 roll dup 1 exch sub 3 -1 roll mul add + 4 -2 roll dup 1 exch sub 3 -1 roll mul add + 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} + bind def +/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul + 4 -2 roll mul srgb} bind def +/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def +/$F2psEnd {$F2psEnteredState restore end} def + +$F2psBegin +10 setmiterlimit + 0.06299 0.06299 sc +% +% Fig objects follow +% +% Polyline +% +% pen to black in case this eps object doesn't set color first +0 0 0 setrgbcolor +% Begin Imported EPS File: frame3.eps +%%BeginDocument: frame3.eps +% +n gs +1170 1845 tr +12.500000 -12.500000 sc +0 -522 tr +-37 -160 tr +sa +n 37 160 m 559 160 l 559 682 l 37 682 l cp clip n +countdictstack +mark +/showpage {} def +% EPS file follows: +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: /home/scanner/docu/iav2004/frame3.eps +%%Creator: XV Version 3.10a Rev: 12/29/94 (PNG patch 1.2) - by John Bradley +%%BoundingBox: 37 160 559 682 +%%Pages: 1 +%%DocumentFonts: +%%EndComments +%%EndProlog + +%%Page: 1 1 + +% remember original state +/origstate save def + +% build a temporary dictionary +20 dict begin + +% define space for color conversions +/grays 600 string def % space for gray scale line +/npixls 0 def +/rgbindx 0 def + +% lower left corner +37 160 translate + +% size of image (on paper, in 1/72inch coords) +522.00000 522.00000 scale + +% define 'colorimage' if it isn't defined +% ('colortogray' and 'mergeprocs' come from xwd2ps +% via xgrab) +/colorimage where % do we know about 'colorimage'? + { pop } % yes: pop off the 'dict' returned + { % no: define one + /colortogray { % define an RGB->I function + /rgbdata exch store % call input 'rgbdata' + rgbdata length 3 idiv + /npixls exch store + /rgbindx 0 store + 0 1 npixls 1 sub { + grays exch + rgbdata rgbindx get 20 mul % Red + rgbdata rgbindx 1 add get 32 mul % Green + rgbdata rgbindx 2 add get 12 mul % Blue + add add 64 idiv % I = .5G + .31R + .18B + put + /rgbindx rgbindx 3 add store + } for + grays 0 npixls getinterval + } bind def + + % Utility procedure for colorimage operator. + % This procedure takes two procedures off the + % stack and merges them into a single procedure. + + /mergeprocs { % def + dup length + 3 -1 roll + dup + length + dup + 5 1 roll + 3 -1 roll + add + array cvx + dup + 3 -1 roll + 0 exch + putinterval + dup + 4 2 roll + putinterval + } bind def + + /colorimage { % def + pop pop % remove 'false 3' operands + {colortogray} mergeprocs + image + } bind def + } ifelse % end of 'false' case + + + +% define the colormap +/cmap 9 string def + + +% load up the colormap +currentfile cmap readhexstring +000000 ffffff 0000ff +pop pop % lose return values from readhexstring + + +% rlecmapimage expects to have 'w h bits matrix' on stack +/rlecmapimage { + /buffer 1 string def + /rgbval 3 string def + /block 384 string def + + % proc to read a block from file, and return RGB data + { currentfile buffer readhexstring pop + /bcount exch 0 get store + bcount 128 ge + { % it's a non-run block + 0 1 bcount 128 sub + { currentfile buffer readhexstring pop pop + + % look up value in color map + /rgbval cmap buffer 0 get 3 mul 3 getinterval store + + % and put it in position i*3 in block + block exch 3 mul rgbval putinterval + } for + block 0 bcount 127 sub 3 mul getinterval + } + + { % else it's a run block + currentfile buffer readhexstring pop pop + + % look up value in colormap + /rgbval cmap buffer 0 get 3 mul 3 getinterval store + + 0 1 bcount { block exch 3 mul rgbval putinterval } for + + block 0 bcount 1 add 3 mul getinterval + } ifelse + } % end of proc + false 3 colorimage +} bind def + + +600 600 8 % dimensions of data +[600 0 0 -600 0 600] % mapping matrix +rlecmapimage + +840100010001070181000132018300010001020181000182010001820100011901810001 +8401000100010a01850001000100010a0181000110018300010001070185000100010001 +820100010801810001820100010d018100012a0185000100010001820100010601810001 +01018100010801810001020183000100010a018300010001820100010801810001130185 +0001000100010901850001000100010d0183000100010901830001000101018100010901 +8100010101810001260181000102018300010001820100010c0185000100010001080185 +000100010001180183000100010d01810001820100018201000108018100011d01830001 +00010001 +0901810001270181000108018100012401810001820100010a01850001000100010c0181 +000182010001170183000100018201000108018100018601000100010001090183000100 +018401000100012701810001820100010801850001000100010201810001080181000101 +01810001080181000184010001000106018700010001000100011d018500010001000108 +018100018601000100010001080181000186010001000100010601810001860100010001 +00012c01810001840100010001070183000100018401000100010a018500010001000108 +018300010001180183000100018401000100010b01810001840100010001030181000117 +018100010601 +0301810001820100012d0181000182010001820100012e018100018401000100010c0183 +00010001820100011701810001820100010b018300010001090185000100010001820100 +0108018100012c01810001820100010e0183000100018201000106018700010001000100 +010a018100011f018100010a0183000100010d0183000100018401000100010801810001 +820100010101810001060181000186010001000100012a01810001840100010001090181 +0001820100010c0183000100011a018100010d018300010001820100010b018100011d01 +83000100010101 +010181000106018100018201000124018100010801810001820100010a01810001140181 +00018401000100010a018500010001000182010001070183000100018201000119018300 +0100018201000106018300010001820100010a01810001820100012c0183000100010401 +8100010101830001000186010001000100010601850001000100010b0187000100010001 +000108018100018201000115018500010001000109018700010001000100010d01810001 +0d018300010001820100013c0181000184010001000107018100018401000100010a0183 +0001000117018100018401000100010e018300010001080181000120010000 +08018100012c018100018201000182010001020181000102018100018301000100810001 +20018100018401000100010a01850001000100011a018100018401000100010901830001 +00010b01850001000100012f018300010001040181000101018100010a01810001840100 +0100010a0185000100010001080181000186010001000100012101870001000100010001 +080181000188010001000100010001040181000188010001000100010001090185000100 +010001820100012701830001000184010001000109018100018401000100010701810001 +84010001000107018100011d018300010001820100010b01830001000105018100011401 +8100010801 +810001820100018201000106018100012f01810001020181000108018100011901830001 +00010c018300010001070181000184010001000110018100010701870001000100010001 +090183000100018201000106018300010001010181000182010001230181000101018300 +010001020181000106018500010001000108018300010001840100010001080185000100 +0100010a01810001140187000100010001000108018100018401000100010d018100010f +01830001000130018100010901810001820100010c018500010001000107018100018401 +0001000115018300010001820100010a018100018201000182010001080183000100011d +0181000182010001 +0b018100012a018100010301810001070181000184010001000102018100011401810001 +08018500010001000182010001070183000100011a018500010001000109018300010001 +840100010001080181000182010001300181000108018300010001820100010a01830001 +00010a018300010001820100010a01850001000100011e01810001840100010001080183 +000100010b018700010001000100010401830001000102018300010001820100012c0183 +0001000109018300010001820100010c0183000100010a01810001190181000182010001 +820100010a018100018401000100011d018100010801 +030181000182010001820100010301810001240181000102018100010301830001000182 +01000107018100011c0183000100010c0183000100010a018100010f0181000109018300 +010001820100010801810001860100010001000109018300010001290181000186010001 +000100010801850001000100018201000108018500010001000108018500010001000182 +010001030181000115018100018401000100010801830001000108018100018601000100 +0100010b0183000100010101810001090181000125018100010601830001000182010001 +090181000186010001000100010701810001820100011901810001840100010001080181 +0001840100010001820100010801810001160181000103018100010601 +8201000109018100012a0181000184010001000106018100010201810001040181000114 +0181000182010001070185000100010001820100010701850001000100011a0183000100 +010b01830001000109018500010001000182010001030181000123018300010001080181 +000186010001000100010601890001000100010001000108018100018401000100010801 +830001000101018100011a01830001000108018100018601000100010001080181000184 +01000100010a018200010002008201000106018100012501810001090183000100018201 +00010c01810001090183000100011d0183000100010d0181000182010001050181000116 +018100010a01 +0701810001820100012a018100010a018100018401000100018401000100011f01850001 +000100010a01850001000100011a01830001000182010001060183000100018401000100 +010601850001000100010b01810001210181000106018700010001000100010801830001 +0001820100010c0185000100010001060185000100010001820100011b01810001080181 +00018401000100010a01830001000182010001080185000100010001820100010a018300 +01000104018100011d0101000501830001000182010001090183000100010a0183000100 +0182010001070181000111018100010b0183000100018401000100010801810001820100 +0102018100011a018100010401 +8100018401000100010901810001220181000105018300010001820100010c0181000182 +010001140183000100010c01830001000107018100018601000100010001170181000184 +010001000106018300010001840100010001080183000100018201000104018100012201 +83000100010f018100010c0181000184010001000105018100018401000100010c018300 +01000116018700010001000100010601850001000100010b018700010001000100010801 +8100018601000100010001080181000121018100010b0183000100010a01850001000100 +018201000107018100018201000119018300010001820100010d01830001000108018100 +01140181000103018100010701 +0801810001820100018201000129018100010a0181000182010001840100010001170181 +000107018500010001000182010001070183000100011a01850001000100010b01810001 +080181000186010001000100010401810001320185000100010001840100010001080185 +0001000100010601850001000100010a0181000186010001000100012201810001840100 +0100010601850001000100010d0187000100010001000109018500010001000105018100 +01210181000186010001000100010501850001000100010c018100018401000100010501 +83000100011101810001080181000184010001000182010001080183000100011c018100 +0182010001820100010501 +82010001840100010001060181000182010001820100011c018100010201810001080183 +000100010a0181000182010001110181000186010001000100010a018500010001000109 +01810001820100010e018100010a01830001000182010001060183000100010d01810001 +01018100018401000100011c018100010401850001000100010a01850001000100018201 +0001080183000100010a01850001000100010a01810001130183000100010d0185000100 +010001060183000100018201000122018100011e018100010b0181000182010001070183 +0001000184010001000109018100011c018300010001820100010a018100018201000108 +0181000116018100010e01 +0c0181000106018100011801810001030181000105018300010001050181000102018100 +012601850001000100010a01850001000100011701810001860100010001000106018100 +018401000100010801830001000184010001000104018100011e01830001000101018100 +010d01830001000108018700010001000100010801830001000182010001050181000123 +018900010001000100010001080181000182010001080187000100010001000182010001 +0301810001060181000182010001030181000103018100011a0183000100010201810001 +090183000100018201000109018300010001820100010501830001000182010001110181 +00010701810001840100010001820100010501810001820100011e018100018201000109 +01 +040181000184010001000106018100018201000116018100010301810001020183000100 +010501810001820100010201810001020181000102018100011701850001000100010a01 +8500010001000109018100010e0183000100010901850001000100010601810001020183 +000100010b0183000100011c018100010a01850001000100018401000100010801830001 +00010a018500010001000104018300010001010181000102018100010301810001150185 +000100010001080181000184010001000106018700010001000100010b0183000100010d +018100010301830001000101018100011501830001000103018100010101810001860100 +010001000107018100018401000100010901810001820100010201810001160181000182 +0100010c0181000108018100018201000182010001130181000103018100018401000100 +010401 +010181000106018100018201000182010001030181000113018100010301810001020181 +00010401810001820100010a01810001020181000116018100010a018500010001000107 +018100018601000100010001170185000100010001090183000100010201810001080183 +00010001070185000100010001170181000182010001010183000100010a018700010001 +0001000106018500010001000182010001030181000101018100010f0181000120018500 +01000100010201810001010183000100010a0181000186010001000100010b0181000110 +018100010401810001130181000101018100018201000109018300010001090181000184 +010001000107018100011501810001060183000100018201000182010001050183000100 +0182010001070181000111018100018201000109018100010101 +8100010301810001820100010b01810001820100010e0181000102018100010301810001 +040181000105018100018401000100018201000102018100011701810001040185000100 +0100010a0183000100011c01830001000108018300010001820100010801830001000184 +0100010001080181000106018100010f0183000100010a01810001060183000100010801 +850001000100010801830001000143018300010001010183000100018401000100010a01 +830001000101018100010901830001000101018500010001000104018100010201810001 +080181000186010001000100018201000105018500010001000107018100018401000100 +010901830001000108018100011001010082010001820100010a018100010b0183000100 +011c01820001008100010701 +81000182010001090181000184010001000101018100010b018300010001090181000102 +0183000100010201810001820100010a0181000102018300010001140183000100010a01 +850001000100010701830001000184010001000117018500010001000106018100018601 +000100010001080181000184010001000104018500010001000102018100010e01830001 +0001060181000101018100010a0185000100010001060185000100010001450181000106 +01810001080185000100010001090101000101850001000100010e018100018401000100 +01040183000100018401000100010201830001000111018100010b018300010001820100 +0107018300010001820100011b018100018201000107018100018401000100011e018100 +018201000106018100018301000100810001 +090183000100010901810001030181000184010001000108018100010d01810001080185 +000100010001260185000100010001070183000100018201000106018100011001830001 +000182010001080183000100010d01830001000106018300010001820100011101830001 +00010401850001000100010e018300010001040185000100010001100181000117018100 +010601810001220185000100010001840100010001040183000100010f01810001090181 +000106018100011201010082010001860100010001000107018300010001860100010001 +000107018100018201000109018100010f01850001000100010801810001840100010001 +08018100018401000100010201810001170183000100010901 +010183000100018201000109018300010001820100018201000101018100010701810001 +820100018401000100010301810001840100010001050183000100010801830001000183 +01000100810001150183000100010701810001840100010001090183000100011b018100 +018401000100010801830001000184010001000106018100010801810001840100010001 +0101830001000184010001000103018100010a0185000100010001040181000103018100 +01110181000117018100011f018100010201810001170185000100010001880100010001 +00010001020183000100010c018100010101830001000104018300010001820100010401 +830001000102018100010a01850001000100010c01850001000100010501830001000182 +0100011b01810001820100010a018300010001820100011e018300010001060181000184 +01000100010101 +0a01810001840100010001090181000103018300010001820100010b0181000109018100 +01050181000184010001000103018100011601830001000104018100018401000100010b +018100018201000119018500010001000106018100018601000100010001080181000184 +010001000101018100010d018100010a0181000102018100010101830001000110018100 +010201810001050181000126018100010101810001020181000112018100010201870001 +0001000100018801000100010001000101018100010b0183000100010101810001040183 +000100011001810001840100010001040185000100010001020183000100010301810001 +840100010001060181000186010001000100010a01830001000107018100011101830001 +000182010001050183000100018401000100010801810001820100011e01830001000103 +0181000182010001810100 +0401810001820100010c01820001008100010e0183000100010201810001030181000104 +018100010201810001820100010701810001020181000181010081000115018300010001 +0e018300010001070183000100010e018300010001060185000100010001090187000100 +010001000106018100010201830001000182010001030181000101018100018801000100 +010001000102018100010101810001030181000103018100018801000100010001000115 +018900010001000100010001820100010e018a0001000100010001000100810001010183 +000100010c01810001150181000102018700010001000100010a01810001820100010901 +810001010181000102018100010601830001000102018100010601810001820100010701 +830001000182010001090183000100010901830001000105018100011601810001820100 +010a018100010a018100012001010001018100010401 +810001820100010601810001840100010001820100010301810001820100018201000184 +010001000182010001050181000103018100010201810001040181000108018300010001 +080181000113018100010601810001860100010001000182010001040183000100018201 +000116018300010001820100010801850001000100010b01830001000102018300010001 +02018500010001000101018100010a018100010601830001000101018300010001190183 +000100018201000119018500010001000106018300010001030181000101018100010a01 +8100018c0100010001000100010001000102018100010c01830001000103018100010501 +830001000105018300010001020181000101018300010001060181000102018300010001 +840100010001030183000100010901830001000182010001060181000184010001000107 +01830001000111018100010a01830001000108018100018401000100011b018100018201 +000108018100018201000182010001 +08018100010c018100011301810001020181000103018100010201810001040181000184 +01000100010701810001820100018201000115018100018401000100010e018100010601 +810001820100010f018100010601810001020183000100010a0181000184010001000106 +018100010a0181000102018900010001000100010001880100010001000100010c018300 +0100010101850001000100018a01000100010001000100010c0183000100010c01810001 +04018900010001000100010001860100010001000101018100010a018100010f01810001 +0101850001000100010a018100010d018300010001030181000104018100010301810001 +840100010001010181000102018100010c018100010e0185000100010001070181000184 +010001000118018100018401000100010801830001000182010001080183000100010201 +81000117018300010001820100018201000102018100010001 +820100018201000182010001060183000100018201000103018100018201000184010001 +000182010001820100018201000102018100010201810001030183000100018401000100 +010a0183000100010601810001110101000a018100018601000100010001820100010201 +850001000100011301810001030183000100010201810001080185000100010001060183 +000100018201000106018500010001000102018100011201810001010102008201000182 +010001030181000113018900010001000100010001040183000100010501810001020183 +000100010101830001000104018100010101830001000103018100010401810001010181 +000117018100018401000100010a01850001000100010c01830001000102018100010801 +8100010601810001840100010001070181000186010001000100010c0185000100010001 +070183000100011101810001820100010501830001000182010001070181000182010001 +820100011a01810001820100010b010100820100010001 +070183000100018201000109018100011301810001140181000186010001000100010301 +8300010001020181000118018100018401000100010b0181000109018100010f01810001 +820100010a01830001000182010001040187000100010001000108018100010901810001 +010185000100010001020181000101018500010001000101010100130181000101018300 +0100010101830001000102018100010c0181000105018100010601830001000101018300 +010001820100010701810001020183000100010101810001060183000100010301810001 +820100010c01850001000100010101810001070185000100010001050181000101018100 +010201850001000100010401830001000182010001010181000103018300010001840100 +010001060181000186010001000100010a0183000100010a018100011001810001820100 +01070183000100010b0183000100010201810001170183000100018401000100010701 +040181000109018300010001820100010201810001040181000182010001020181000182 +0100010201810001840100010001820100018201000104018100010a0181000104018100 +0118018100010c0185000100010001040181000184010001000110018100010801850001 +00010001060183000100010d018100010201810001040183000100010101810001060181 +000101018100010101810001020181000101018100010101810001010189000100010001 +000100010201810001030181000108018500010001000106018500010001000103018100 +01860100010001000103018300010001020187000100010001000101018100010c018100 +010f01850001000100010f018100010d0181000102018100010101810001060183000100 +010701810001020181000109018300010001820100010901830001000109018100018401 +000100011b018100010a018100018401000100011c010100010181000109018300010001 +82010001810100 +830001000106018100018201000108018100010301810001060181000105018100010801 +8100010b0181000184010001000105018100010201010013018100010201830001000102 +018300010001070183000100010701810001820100010a01870001000100010001820100 +010601850001000100010801830001000184010001000101018100010201830001000108 +018100010201810001010181000101018100010a0181000101018100010e018100010101 +81000101018100018401000100010a018b00010001000100010001000104018700010001 +00010001010181000106018b0001000100010001000100010f01850001000100010c0181 +000184010001000103018100010201870001000100010001070181000106018300010001 +090183000100010201810001030185000100010001090185000100010001820100010401 +81000186010001000100010b018100010b01810001090181000184010001000182010001 +070181000182010001820100010101810001170183000100010d01 +050181000182010001050181000182010001820100010201810001040181000182010001 +020181000182010001050183000100010201810001050183000100010701810001820100 +010201810001820100011101810001010181000104018100010401830001000182010001 +0601810001820100011a0183000100018201000108018500010001000104018700010001 +000100010401810001820100010101810001040181000101018100010501810001880100 +010001000100010501810001030181000184010001000101018300010001010181000182 +010001030181000105018100018201000101018100010a01810001050181000101018100 +018601000100010001030183000100018601000100010001010183000100010a01830001 +00010201810001010181000106018100010e018100010101830001000101018100018401 +000100010401870001000100010001040181000102018100018201000104018100018401 +000100010b0183000100010a0185000100010001140183000100018401000100010a0181 +0001820100011e0101000a018100018401000100010501 +82010001820100010501810001820100010f018300010001030181000107018100010501 +81000102018100010a0183000100010501810001020101000a0181000106018100010901 +830001000106018100018401000100011501810001010185000100010001080183000100 +018201000103018100018401000100010801830001000182010001010181000101018100 +018201000105018300010001040181000103018100010301810001040181000101018100 +0101018100010c0181000105018100010401810001010189000100010001000100010601 +810001050185000100010001830100010081000182010001110183000100010501810001 +020181000101018100010701810001840100010001840100010001070183000100010601 +8100010a0181000182010001840100010001820100010101810001840100010001040183 +00010001820100010901850001000100018201000118018100010a018500010001000108 +018100018401000100011b01810001820100010b0183000100010001 +0601810001820100010801810001820100018401000100010f0183000100010201810001 +8201000109018100018401000100010d0181000103018100010101810001820100010a01 +8100010501810001040185000100010001090183000100010c0181000182010001070187 +000100010001000106018300010001080183000100018201000103018100018601000100 +010001040185000100010001010183000100010401830001000103018100010101830001 +00010201810001090183000100010601830001000103018100018c010001000100010001 +000100010101810001860100010001000101018700010001000100010401890001000100 +01000100010f0181000105018100010a0181000101018100010101810001090183000100 +018201000104018300010001040185000100010001020181000104010100020181000109 +018300010001820100010401850001000100010c018300010001820100010f0181000101 +018100010201830001000108018300010001820100010801810001030181000105018100 +018201000102018100010701810001820100018401000100010601 +010183000100010901810001820100010801810001820100010301810001840100010001 +0501810001820100010501850001000100010a0183000100018401000100010201810001 +0f0181000101018100010201820001008100010101810001820100010801810001840100 +01000105018100010e018500010001000104018300010001860100010001000106018500 +010001000106018100010b01830001000103018300010001040181000107018100010101 +810001040181000103018300010001050181000182010001070181000101018100010601 +870001000100010001080181000105018100018101000100860100010001000104018d00 +0100010001000100010001000111018100010e0183000100011201830001000106018100 +010201830001000105018100018401000100010b01830001000107018500010001000182 +0100010c0181000110018100010501830001000182010001070181000184010001000104 +018100010501810001060181000182010001820100018201000182010001080185000100 +010001 +0a0183000100010601810001840100010001060181000101018100010201810001840100 +010001050181000182010001060181000102018100018201000107018300010001060183 +000100018401000100010f01810001040181000186010001000100010601810001820100 +0182010001060183000100018101008100010401850001000100010d0183000100010e01 +82000100810001020183000100010301830001000106018b000100010001000100010001 +050181000102018100010301830001000114018300010001860100010001000101018100 +010301810001860100010001000101018900010001000100010001020102008801000100 +01000100010a018100010101810001820100010e01830001000104018300010001090189 +000100010001000100018401000100010101810001880100010001000100010401830001 +0001080183000100018401000100010601810001840100010001090183000100010f0181 +00010201850001000100018401000100010a0181000184010001000108018100010b0181 +00018401000100010d0181000107018100010201 +810001820100018401000100010601810001820100010b01810001820100010301810001 +050183000100010701810001820100010401810001020181000186010001000100010601 +8100010a0185000100010001060181000101018100018401000100010901850001000100 +010801850001000100010701810001820100010a01850001000100018201000105018100 +018801000100010001000106010100040181000106018500010001000103018300010001 +050181000103018100010a01810001120181000108018100010101870001000100010001 +040181000105018200010004000b018700010001000100010c0185000100010001040181 +000109010100060181000182010001040181000101018100010201810001060185000100 +0100018201000102018200010083000100010b0183000100018201000106018300010001 +840100010001050183000100010201810001840100010001020181000101018100010801 +8100010f0185000100010001090181000182010001080185000100010001820100010601 +83000100010701 +0b0181000182010001050181000184010001000182010001060181000182010001840100 +0100010501810001840100010001820100010601810001820100010e0181000101018300 +010001820100018201000101018100010601810001010181000107018500010001000182 +010001080181000101018300010001060183000100010701810001860100010001000108 +01850001000100010b018500010001000182010001010181000101018500010001000104 +018300010001010181000105018100010301810001840100010001160185000100010001 +080185000100010001080183000100010101850001000100010101810001030101008801 +000100010001000101018100010401830001000110018100010601810001040189000100 +010001000100010501810001010181000102018100010101850001000100010901810001 +07018100018401000100010b018500010001000109018100018401000100010301810001 +100183000100018201000101018100018201000184010001000182010001100181000184 +010001000182010001850100010001000100070181000182010001050181000102018100 +010001 +030181000184010001000109018100010b01810001820100010d01810001820100010b01 +8100010a0183000100018401000100011801830001000102018300010001820100010d01 +8300010001820100010501850001000100010501850001000100010b0185000100010001 +080187000100010001000104018100010201810001010183000100010601810001030181 +000101018b00010001000100010001000106018100011a01830001000188010001000100 +010001010187000100010001000105018100010201850001000100018101000100840100 +0100010301850001000100010a0181000119018100010201820001000100020182000100 +810001020181000101018100010101810001040181000104018300010001010181000101 +018100010901850001000100010c01850001000100010901810001070181000184010001 +000182010001090183000100018201000107018100018401000100010301810001140181 +00018201000182010001060183000100010801 +82010001090181000184010001000106018300010001820100010e018100018201000107 +01810001020181000182010001010181000186010001000100010a018100010301810001 +820100010101810001020181000106018300010001090187000100010001000182010001 +0101810001020101000701810001820100010b018700010001000100010b018300010001 +0d0183000100010101830001000102018500010001000101018300010001010181000102 +0181000102018100011f0189000100010001000100010401850001000100010101810001 +060102008101000100060181000101010100840100010001070101008601000100010001 +1d0181000108018100010401810001020181000101018500010001000106018100010701 +810001820100018601000100010001090185000100010001820100010901870001000100 +010001050181000182010001060101008401000100010c018100010d0181000105018100 +018401000100018201000104010100080181000182010001820100010201830001000182 +010001810100 +010181000182010001840100010001090183000100010901810001820100018401000100 +01820100010201810001820100010201810001020181000104018100010c018300010001 +820100010301810001020183000100010201810001050181000107018500010001000105 +018700010001000100010801850001000100010a01850001000100010e01810001820100 +011001810001020181000104018100010501810001030181000102018100010201830001 +000119018500010001000107018100018601000100010001010181000103018300010001 +820100010201810001020189000100010001000100010601870001000100010001030181 +000102018500010001000116018100010201810001820100010101810001020181000101 +018100010201810001030181000182010001010185000100010001020181000182010001 +82010001060183000100018401000100010901850001000100010c018100010401810001 +84010001000182010001010181000102018100018601000100010001820100010a018300 +01000184010001000101018100010b01850001000100018401000100010b018100010901 + +8100010e0183000100010801810001820100010601810001820100018401000100010501 +81000102018100010201810001040183000100018401000100010a018100018201000182 +010001020183000100018601000100010001050181000182010001040185000100010001 +0901870001000100010001080181000102018100010b0189000100010001000100010601 +830001000104018100010101820001008100010601810001010183000100010301810001 +040181000101018100012401870001000100010001080187000100010001000108018100 +01840100010001860100010001000181010001008201000109018300010001820100011e +018100010701810001060181000106018300010001010181000184010001000103018100 +010101810001040183000100018201000108018300010001820100010901850001000100 +018201000107018100010901810001010181000184010001000107018100018401000100 +010e0183000100018201000107018100018201000105018100018401000100010a018100 +0182010001 +080183000100018201000108018100018201000109018100010a01810001820100010201 +8100010201810001020183000100012b0183000100018201000101018100018201000106 +018300010001840100010001070181000186010001000100010901850001000100018201 +00010a01810001080183000100010301830001000182010001020181000101018d000100 +010001000100010001000110018100011601830001000101018100010101810001040185 +000100010001070181000183010001008200010082000100010004018300010001040187 +0001000100010001080185000100010001180181000106018100010b0183000100010401 +810001060183000100010101810001010181000109018500010001000109018500010001 +00010c018300010001820100010201850001000100018601000100010001070181000184 +010001000182010001070181000106018100010701810001820100018201000101018100 +01840100010001090183000100010a01 +81000182010001820100010b018100018201000103018300010001820100018201000103 +018100010301830001000105018100010201810001020181000106018100018401000100 +010901810001010181000184010001000184010001000102010200040181000101018100 +0104018100018401000100010b0183000100010901810001820100018401000100010801 +8300010001040181000108018300010001070101000301850001000100010e0181000101 +018500010001000116018700010001000100010501850001000100018401000100010101 +810001030183000100010701810001010181000101018200010089000100010001000100 +010401810001010187000100010001000106018500010001000110018100010a01810001 +030181000101018100010301810001040185000100010001040181000101018100010101 +810001820100010a0181000186010001000100010701850001000100010c018100010901 +810001020183000100018401000100010701810001840100010001030183000100010501 +810001840100010001820100010301810001070181000184010001000108018100010201 +8100010001 +090183000100018201000182010001050181000109018100018201000102018100010501 +810001820100010201810001020181000103018100018201000107018300010001840100 +01000110018100010201810001820100010401850001000100010b018500010001000104 +01870001000100010001820100010b018100010101810001060181000103018300010001 +820100010501810001820100010401830001000103018900010001000100010001020185 +0001000100010f018100011201850001000100010801810001010181000101018100010d +018100010101810001050181000103018500010001000109018100018101000100820100 +010a018100010b018100010c018100010101810001010181000103018300010001090181 +00010101810001820100010501850001000100010d018100018401000100010601810001 +8401000100010201810001070181000101018100010c0181000182010001040181000182 +010001840100010001120181000102018100018201000182010001080183000100018201 +000102018100010301 +010183000100018201000108018100018201000182010001050181000182010001060181 +000102018100018201000105018100011501810001090181000101018100018501000100 +0100830001000181010081000182010001020183000100010c01850001000100010a0181 +000108018100010701810001030181000104018300010001010181000111018100018201 +000105018100010a01810001050181000101018100011601870001000100010001050181 +000101018100010201830001000119018100010101810001010181000109018500010001 +00010a018700010001000100010e01810001820100010c01810001010181000102018300 +010001030181000186010001000100010201850001000100010101830001000109018500 +010001000102018100010601830001000184010001000104018100010201810001840100 +0100010201830001000186010001000100010a0183000100018401000100010501810001 +05018100018201000102018100010d018100018201000112010000 +0a0183000100018201000108018100018201000106018100018201000184010001000105 +018300010001030183000100018401000100010e01850001000100018201000102018500 +010001000106010100820100018401000100010901850001000100010901850001000100 +018201000182010001860100010001000101018100010301810001030181000102018700 +010001000100011301810001020187000100010001000101018100018801000100010001 +00010101810001010181000101018100010b018100010801810001090181000101018300 +0100011a0185000100010001030181000106018100010e0183000100010c018300010001 +050181000116018100010101810001040181000108018300010001050181000112018100 +01040183000100010b018300010001070183000100018201000102018100010701830001 +000184010001000107018100018401000100010d01810001020181000184010001000182 +01000108018100018401000100010201830001000101018100010101 +010181000182010001820100010801810001820100018201000108018200010081000108 +018100018201000105018100010901810001060183000100010501810001010181000185 +01000100010084000100010002000a0185000100010001820100010a0181000182010001 +070181000109018100010601850001000100018801000100010001000122018100018201 +0001050183000100010101810001010183000100010c0181000105018100010701830001 +000122018100010301890001000100010001000117018100010201830001000111018100 +010501810001060183000100010101810001010183000100010201870001000100010001 +020187000100010001000102018100011d018100010f0181000107018100018601000100 +010001820100010901810001820100010a01810001860100010001000182010001020181 +00010b018300010001820100011201810001 +810001090183000100018201000108018100018401000100010301810001010181000102 +0181000107018100010201810001820100018401000100010d0181000182010001010181 +000102018200010081000108018200010083000100018201000108018100018801000100 +010001000107018300010001030185000100010001820100010401810001010183000100 +010601810001010181000182010001100101000201810001030181000106018300010001 +030181000101018100010301810001080183000100010701850001000100010b01810001 +1e0183000100010501850001000100010f018100010a0181000124018100010101810001 +0301810001820100010a0183000100012601830001000102018100010801810001840100 +010001020181000182010001040183000100018201000107018300010001840100010001 +0d0181000102018100018201000182010001820100010701810001820100010401830001 +0001820100010301 +050181000182010001080181000184010001000109018200010081000103018100018401 +0001000184010001000102018100010e0183000100018401000100010701830001000104 +018300010001830100010087000100010001000102018100018601000100010001070181 +000101018100010201810001050181000108018100010201830001000106018300010001 +01018100011a018500010001000102018500010001000105018100010101810001010181 +00010101810001200181000103018100011c01810001030102008201000103018100010c +018100011101810001070181000101018100010301830001000107018100010201810001 +010183000100010401870001000100010001070181000112018100018201000114018300 +01000102018100010601810001820100010201810001090183000100010d018100010201 +830001000182010001080181000105018300010001030181000102018100010a01810001 +0001 +8201000182010001050181000182010001820100010a0181000182010001030101008201 +000182010001080183000100010201810001840100010001020181000106018100010201 +830001000182010001060181000184010001000104018100018201000101018100010901 +830001000182010001010181000108018100010101810001880100010001000100010601 +8100010201830001000108018700010001000100010d0181000106018300010001030187 +000100010001000101018100010101810001020181000107018100011501810001030181 +000114018100010501870001000100010001050183000100011b01810001260181000102 +0181000103018100010a0181000102018100010701810001090181000101018100010401 +810001820100011401850001000100010201010005018300010001820100010701830001 +000182010001110181000184010001000182010001820100018401000100010301810001 +0e018100010401 +060181000182010001080181000182010001840100010001050181000181010081000182 +010001020181000103018100010401810001020181000102018100010301810001820100 +010201810001090185000100010001020181000102018300010001840100010001090181 +00010d018100010101810001020181000105018100010401830001000102018100010301 +8300010001840100010001060183000100010e01810001820100010d0183000100010101 +810001020181000101018100010701830001000119018100010a01810001090185000100 +01000102018100018601000100010001010102002f018100011301810001020183000100 +010101870001000100010001860100010001000103018100011201850001000100018201 +000101018100011001810001090183000100010c01830001000102018100010501810001 +850100010001008100010201830001000102018100010301810001080183000100018201 +000104018100010201810001020181000101010000 +010181000182010001050181000182010001820100010801830001000182010001030181 +000108018100010501810001020181000105018100010d01850001000100018201000103 +018100018201000184010001000107018700010001000100018201000106018100010101 +810001820100010a0185000100010001020183000100010601850001000100010a018200 +0100010019018b0001000100010001000100010401810001010181000101018100012c01 +810001090185000100010001090182000100830001000101010100090181000137018500 +010001000101018100010401850001000100010301810001020183000100011101830001 +000104018100010201830001000112018500010001000184010001000184010001000102 +01810001820100010701810001020183000100010a018100010401810001050181000182 +010001820100010a01810001040181000102018100010301810001 +0701810001820100010501810001820100018401000100010b0181000103018100018201 +000184010001000182010001020181000102018300010001020181000104018500010001 +00010a018700010001000100018201000101010100850100010001008100010601810001 +020183000100010801810001080183000100010801810001840100010001080187000100 +010001000106018300010001080181000104018300010001010183000100010801810001 +010181000101018100010d01810001110181000101018100010a01870001000100010001 +0701860001000100010083000100018601000100010001810100020001018100010a0181 +0001820100011d0181000107018100010701810001010183000100010601830001000101 +01810001020183000100010c018100010401820001008700010001000100010201830001 +000102018100010601810001040181000104018100010a01830001000182010001090181 +000184010001000105018300010001820100018401000100018201000105018100018401 +000100010c0181000102018100010301 +0201810001820100010501810001820100010b0183000100018301000100830001000101 +0181000103018100010401810001820100010f0181000105018300010001860100010001 +000104018100018501000100010081000103018100018201000104018100012101870001 +000100010001060183000100018401000100010501810001860100010001000103018100 +010f01830001000103018100018601000100010001010181000101018100010101830001 +000119018100010901810001040181000105018900010001000100010001030185000100 +010001870100010001000100850001000100010201830001000101018100010a01010005 +018100010d01810001100183000100010101810001030183000100010601810001010181 +000103018100010b0181000181010001000701870001000100010001820100010d018300 +0100011b0183000100018201000109018100010301830001000108018300010001820100 +0108018300010001040181000102018100010601 +8100010601810001820100010b0183000100010501810001070183000100010501810001 +050183000100010201810001820100010501810001820100010b01830001000186010001 +00010001020181000184010001000104018100011a018100018201000105018300010001 +040183000100010801810001010181000108018500010001000106018100010401810001 +03018100018201000105018300010001010181000101018100010d018100010501810001 +0901810001030181000102018300010001030183000100010d0183000100010101880001 +0001000100010087000100010001000107018300010001010101000a018100010d018100 +010e01810001030181000101018100010501830001000182010001010181000102018100 +01820100010b01830001000102018500010001000106010100880100010001000100010b +018100018401000100010f01850001000100010501830001000182010001820100010201 +83000100010201810001840100010001820100010501810001820100010e018100010601 +82000100 +820100018201000182010001080183000100018201000182010001820100018401000100 +010501810001040181000102018100010201810001820100010201830001000182010001 +010181000101018100010901810001840100010001090183000100010201810001010181 +000124018500010001000104018300010001080183000100010101810001040185000100 +010001060181000103018100010401830001000182010001030185000100010001010183 +000100010101810001030181000115018100010101830001000101018300010001040187 +00010001000100010b018700010001000100010101830001000102018100010201810001 +0401870001000100010001080183000100010101810001090181000107018100010d0183 +0001000101018100010201830001000105018100018701000100010001008100010c0102 +00820100010801810001820100010801810001010181000102018300010001820100011f +018100010a01830001000184010001000105018100018401000100010801810001840100 +010001020181000107018100010401 +0c0183000100018201000182010001820100010801830001000182010001040181000102 +018100018401000100010501810001020181000101018100010701010001018300010001 +090183000100018201000101018100018401000100018201000118018100010801830001 +000104018100010601870001000100010001060185000100010001040183000100011001 +810001020183000100010101810001030181000103018100010101830001000119018500 +010001000103018300010001820100010b01870001000100010001070181000102010300 +81010084000100010001000a018900010001000100010001030182000100830001000101 +018100011701810001050181000101018100010401850001000100010901810001080181 +000104018100018401000100018201000106018700010001000100010401810001090181 +000101018100010501810001130181000184010001000184010001000184010001000184 +010001000182010001840100010001030183000100018201000107018100010101810001 +820100018401000100018201000182010001 +040181000184010001000182010001820100010b0183000100011c018100010701810001 +050183000100010e01810001020181000101018100018201000106018100011b01850001 +0001000103018100018201000101018100010c0183000100018201000109018100018401 +0001000101018100010d0181000101018300010001010183000100010101830001000101 +018100010101810001030181000109018700010001000100010101890001000100010001 +000182010001070187000100010001000105018900010001000100010001010183000100 +018201000102018300010001020183000100010e01020082010001090183000100010101 +830001000111018700010001000100010101830001000108018100010201810001090181 +00018401000100010b018500010001000106018200010002008201000103018100018201 +000102018100010b01810001190181000102018100010a018100010a0181000182010001 +820100010e018100010201 +830001000101018300010001820100010801810001840100010001080181000184010001 +000101018100018201000184010001000184010001000102018100018401000100010201 +830001000184010001000103018100018401000100010201810001040183000100010401 +810001840100010001010181000112018300010001820100010101810001030181000102 +018300010001010181000102018700010001000100010a01830001000186010001000100 +011101810001010181000105018100010101810001030181000101018100010901830001 +000101018100010301850001000100010601810001020181000186010001000100010701 +850001000100010701850001000100010101820001000400810100810001040187000100 +01000100010101810001010181000103010100860100010001000102018100010b018100 +0106018100010901830001000101018100018a0100010001000100010001120101008201 +000184010001000108018300010001820100010301810001820100010101810001010181 +000184010001000182010001070181000111018300010001050181000101018100018201 +000184010001000184010001000182010001840100010001820100010701810001010181 +00018201000184010001000103018100010001 +810001820100010801810001840100010001090183000100018201000105018100018201 +0001820100010a0181000102018100010201810001060183000100011201810001020183 +000100011b018100010601020081010087000100010001000103018100010f0183000100 +010101810001130181000108018100010301830001000101018100010101830001000101 +018100010101810001010185000100010001070183000100010501810001010184000100 +010001000701890001000100010001000101018f00010001000100010001000100010001 +010183000100018401000100018101008900010001000100010001050181000101018700 +010001000100010101810001040187000100010001000102018100010501810001040181 +000184010001000184010001000103018300010001040181000103018100010801810001 +020185000100010001060183000100018201000108018500010001000182010001140181 +000118018100010201820001008300010001020183000100010301810001820100010701 +8100018201000116010000 +050181000182010001820100010b01830001000108018300010001040181000102018100 +018201000184010001000107018100010201810001010181000104018100011201810001 +040183000100018201000116018400010001008100010101830001000101018100010201 +830001000101018300010001010181000182010001010181000119018100010801810001 +01018d000100010001000100010001000103018100010101810001070189000100010001 +000100010501870001000100010001020183000100010301830001000103018700010001 +000100010701810001010185000100010001010183000100010101010001010100820100 +01030185000100010001070189000100010001000100010a018100010101830001000115 +018100010501830001000101018100018401000100010d01810001820100010201830001 +000182010001030181000186010001000100010901810001050181000105018300010001 +0c0185000100010001110181000183010001008100018401000100010501810001840100 +010001050181000101018100010501810001030183000100010101 +820100018201000108018100018401000100018201000106018300010001820100010501 +810001820100018201000108018300010001840100010001020181000181010081000119 +0181000102018300010001020181000101018100010b0185000100010001820100010801 +850001000100010201810001030181000103018100011a01810001120181000101018100 +010c01810001010181000101018100018401000100010901810001010181000102018300 +010001880100010001000100018201000103018300010001070187000100010001000101 +010100850100010001008400010001000100010181000105018700010001000100010101 +8800010001000100010081000105010400820100010b0183000100018201000103018500 +010001000101018100010201830001000105018100012501830001000106018100018201 +00010a0181000101018100018201000129018100010d0181000108018200010085000100 +0100010101810001820100010201810001820100010201810001 +060181000182010001820100010b01830001000105018100010201810001030101000301 +8100018401000100010501810001020181000106018100010401850001000100010b0181 +00018201000104018100010f018100010401870001000100010001860100010001000103 +01810001040187000100010001000124018100010801810001010181000101018100018a +010001000100010001000101018100010101850001000100010201810001010181000101 +018500010001000103010200810100830001000103018700010001000100010301870001 +0001000100010b0185000100010001840100010001010185000100010001010181000107 +018500010001000105018200010001000401830001000186010001000100010c01810001 +07018100010101830001000102018500010001000103018100010e018300010001120181 +000102018100010401810001030183000100010201810001010181000182010001130181 +00010e018100010201010084010001000182010001820100010201810001840100010001 +0901810001050181000105018100010201 +04018100010b018300010001820100010801810001020181000106018100018201000184 +0100010001050181000102018100010201810001040101000d018100010d018300010001 +850100010001008100010801810001010185000100010001840100010001080181000101 +018500010001000122018500010001000109018100018401000100010201810001090183 +000100010101830001000104018500010001000107018500010001000182010001880100 +010001000100010601850001000100010901880001000100010001008600010001000100 +810001810100010004018300010001010183000100010901860001000100010081000101 +010100810100810001010181000107018700010001000100010801830001000101018100 +010301810001010181000186010001000100010101810001050181000122018300010001 +0a0183000100018401000100010201810001060181000117018100010101810001020181 +000113018100010201810001030181000184010001000182010001820100010301810001 + +830001000106018100018401000100010801810001840100010001060183000100018401 +000100010901810001840100010001820100010201810001010181000183010001008100 +011401010082010001840100010001080181000104018300010001820100010401830001 +000101018500010001000103010100820100010401830001000118018100010a01820001 +008100010101810001010181000102018100010101890001000100010001000101018300 +010001050101000301810001810100810001840100010001010187000100010001000102 +01010001018700010001000100010901850001000100010e018200010081000101010400 +820100010601890001000100010001000107018200010003008101008100010101850001 +000100010901830001000102018100010301810001010183000100010101810001060185 +0001000100010b0181000126018300010001820100010101810001820100018201000101 +018100010201810001160181000104018200010081000182010001010181000182010001 +82010001020181000105018100010101810001040181000108018100010301 +050181000182010001020181000105018100018201000108018300010001080181000101 +0181000184010001000102018100010201810001820100010101810001820100011a0181 +000109018700010001000100018401000100010501820001000100840100010001820100 +0109018100010201830001000103018100010e018100010a018100010201010008018100 +010301810001010183000100010701810001010187000100010001000188010001000100 +010001030185000100010001840100010001010103000f01850001000100010501810001 +030182000100050082010001020185000100010001030183000100010b01850001000100 +010101010007018500010001000104018700010001000100010401870001000100010001 +010181000103018300010001010185000100010001840100010001080181000102018100 +012601810001020181000102018100010101810001020181000184010001000116018500 +0100010001050183000100010b0181000182010001080181000105018100018201000103 +0182000100 +8401000100010b018100018201000105018100018401000100010e018100010101810001 +04018100010201810001040181000105018100010f018100010501810001840100010001 +86010001000100018201000101010200030182000100010008018100010e018300010001 +010185000100010001060181000109018100010201810001030183000100010101020081 +010083000100010201810001010181000103018700010001000100010101810001010181 +0001010183000100018801000100010001000105018400010001000100820100010a0187 +000100010001000103018100010301810001010183000100010401810001010182000100 +02008501000100010081000105018b000100010001000100010001050181000101010300 +010101008201000103018100010101810001050183000100010501830001000102018300 +01000103018100010501810001050181000105018100018201000101018100011e010100 +030181000102018300010001810100820001000200060181000110018100010701810001 +830100010081000107018100010801810001820100010801810001820100010201810001 +820100010101 +030181000182010001840100010001030181000184010001000182010001140101000201 +830001000182010001840100010001040181000102018100012001810001030181000182 +010001010181000101018100018101008100010301810001020183000100011401810001 +1b0181000101018100010101050003018100010701810001010185000100010001030183 +000100010501810001020181000108018100018201000182010001050181000101018700 +010001000100010301810001030181000101018300010001050184000100010001008101 +0001008101000200860100010001000186010001000100010c0185000100010001070101 +008101000300080187000100010001000103018300010001030183000100010201890001 +000100010001000104018100010101850001000100018201000102018100010901810001 +1901830001000184010001000182010001820100010701830001000104018100010c0181 +000101018300010001020181000102018100011501850001000100018201000105018100 +010501810001 +01018100010801810001820100010a018100018401000100010201810001820100018201 +000106018100010a01830001000102018100010201850001000100010601810001120183 +000100010401810001010185000100010001010183000100010201830001000112018300 +010001020183000100010b01850001000100018201000101018700010001000100010201 +810001050181000101018100010201830001000105018300010001030185000100010001 +0101830001000104018300010001010181000102018b0001000100010001000100010901 +810001010183000100010301890001000100010001000104010100080104000101810001 +040185000100010001820100010901860001000100010081000106018300010001010181 +000101018100010401810001050185000100010001010183000100010801810001020181 +000182010001050189000100010001000100010f018100010e0181000108010100840100 +010001820100010101810001830100010081000110018100010601810001030182000100 +830001000184010001000103018100010201810001060183000100018201000182010001 +0201810001820100010201 +07018100018201000105018300010001820100010d018100010701810001040181000184 +010001000182010001020183000100010201830001000115018100010501810001040101 +008301000100020004018500010001000182010001170181000101018100010701870001 +0001000100010401850001000100010b0185000100010001070181000101018700010001 +000100010101850001000100010101810001010181000101010100840100010001050187 +000100010001000104018100010301870001000100010001050185000100010001050183 +000100010601040084010001000104018900010001000100010001050183000100018401 +000100010801030083010001000100060101000201830001000103018300010001050181 +00010301870001000100010001860100010001000101018200010083000100010a018500 +01000100011201810001070187000100010001000102018100010e018100010401810001 +0a0183000100018401000100018201000102018100010801810001020181000102018100 +0101018100010a018100018201000102018100010001 +810001840100010001060181000115018100011101810001040181000182010001040183 +000100010201810001140181000102018100010101830001000105018100010301810001 +010101001501810001060181000101018500010001000105018300010001840100010001 +090187000100010001000101018100018401000100010101810001020181000101018100 +010301810001030183000100010101830001000106018500010001000102018500010001 +000103018100010101830001000105018700010001000100010301830001000107018300 +010001020181000106010700070185000100010001080187000100010001000104018100 +010301010002018100010801810001050185000100010001010185000100010001010183 +000100010f0187000100010001000109018700010001000100010f010100020181000182 +0100010201810001020185000100010001820100010601010009018100010c0181000184 +01000100010e01810001080181000184010001000108018100018301000100 +080183000100010e01830001000103018300010001820100018201000104018100010101 +810001030183000100010501830001000104018100010101810001190183000100010201 +82000100010001018100010401810001010181000109018100010a018100010201850001 +0001000182010001020183000100010a0187000100010001000104010200840100010001 +010181000101018100018201000102018100010101890001000100010001000103018100 +0102018200010083000100010a0187000100010001000103018900010001000100010001 +030183000100010101810001030183000100010101850001000100018201000101018700 +010001000100010301810001880100010001000100010501870001000100010001080189 +000100010001000100010701850001000100010601830001000182010001020181000105 +018100010301830001000182010001010181000182010001040181000102018100018201 +00010c018100018601000100010001090181000104018200010081000104018300010001 +020185000100010001020183000100018201000107018300010001840100010001050101 +000801810001050181000103018100010201810001820100018401000100010901 +820100018401000100010801810001030183000100010501810001820100018401000100 +010601810001030181000182010001060181000102018300010001820100010201830001 +000101018100011201810001820100010101010082010001010183000100018201000103 +0181000103018100010a0187000100010001000102018100010101810001040181000107 +018700010001000100010501810001840100010001030181000101018500010001000105 +0183000100010b0185000100010001820100010301810001030183000100010101850001 +000100010101850001000100010501830001000101018100010301810001030187000100 +010001000106018300010001010181000103018100010201850001000100010301870001 +000100010001050187000100010001000106018700010001000100010901820001008300 +010001020181000101018100010101810001840100010001030185000100010001820100 +01010183000100018801000100010001000106018700010001000100010d018100010401 +810001080181000103018100010201830001000106018100011301810001020181000182 +010001820100010501810001100181000105018100010201810001820100018201000181 +0100 +030181000105018100018201000102018100010301810001840100010001820100010201 +810001050181000106018100018401000100018401000100018401000100010201810001 +02018100011c01810001820100010101810001840100010001040102000a018100018601 +000100010001060185000100010001820100010101830001000103018500010001000103 +018100010101850001000100010201870001000100010001810100010005010100010181 +000103018d00010001000100010001000100010301810001010101008601000100010001 +030181000101018700010001000100010101830001000107018100010101890001000100 +010001000107018500010001000104018100010101830001000101018300010001040183 +000100010701870001000100010001050184000100010083000100010301810001010187 +000100010001000105018300010001010181000101018500010001000102018300010001 +03018200010001000501820001008d000100010001000100010001000106018100018401 +000100011001870001000100010001820100010501810001010185000100010001040181 +000104018100010701810001030183000100010201810001130181000182010001050181 +00010201810001050181000182010001 +010181000102018100010501810001820100010501810001820100018401000100018201 +000116018300010001820100010401810001070181000103018100011801810001820100 +018201000103018300010001030187000100010001000108018500010001000107018300 +010001030181000109018100010101810001020185000100010001090102008201000107 +018300010001010183000100010101830001000101018300010001010181000108018300 +010001010187000100010001000107018300010001010185000100010001030181000103 +018700010001000100010601830001000101018100010101830001000101010100820100 +010501890001000100010001000105018100010101830001000104018600010001000100 +810001820100010501830001000105018100010101810001050185000100010001840100 +010001010101000201810001010181000182010001030185000100010001020187000100 +010001000104018700010001000100010501810001080183000100010301810001070181 +000106018300010001090183000100010501810001160181000105018100010201810001 +030183000100010501 +0a0181000105018300010001820100010a01830001000103018100010301810001030181 +000182010001070183000100010201830001000117018100010501810001840100010001 +01018200010082000100010002018300010001060189000100010001000100010b018100 +010301830001000103018d00010001000100010001000100018201000107018600010001 +000100830001000104018500010001000103018100010301810001030181000103018100 +010101810001860100010001000101018700010001000100010101930001000100010001 +000100010001000100010001030181000101018300010001070185000100010001040181 +000101018100010301810001040187000100010001000107018500010001000101018100 +010301860001000100010081000103018100010101870001000100010001090181000101 +018500010001000103018300010001040101000401870001000100010001080185000100 +010001040183000100018201000106018100018201000101018500010001000182010001 +030181000183010001000100010181000186010001000100018101008100018201000182 +010001040181000184010001000184010001000103018100011501810001820100010201 +810001020181000182010001820100010501 +050181000107018100018201000108018100010d018100010e0185000100010001050181 +0001040183000100010b0183000100010701810001010101000101020001010300020181 +000104018300010001820100010a01890001000100010001000102018300010001820100 +018201000101018700010001000100010801870001000100010001070185000100010001 +820100010401830001000101018900010001000100010001010183000100010101810001 +01018100018201000102018100018e0100010001000100010001000100010d0183000100 +01090185000100010001060183000100010101870001000100010001010101000a018700 +010001000100010501890001000100010001000102018100018101008300010001010181 +000105018300010001010185000100010001010181000105018300010001030183000100 +018601000100010001820100010501830001000184010001000106018700010001000100 +01020185000100010001060181000106018100010b018300010001810100810001060181 +000102018100018101008100018201000184010001000102018100018201000114018100 +01040181000102018100010801810001820100010001 +8201000105018200010083000100010a018100011c018100018201000107018300010001 +020183000100011701810001030185000100010001830100010001008201000181010087 +00010001000100010a018100018401000100010801830001000106018100010b01870001 +000100010001070187000100010001000108018100018201000103018100010901810001 +030181000101018100018201000101018300010001810100870001000100010001010181 +000103018700010001000100010701890001000100010001000105018500010001000104 +018300010001050181000102018b00010001000100010001000105018700010001000100 +010301810001010184000100010001008101008300010001840100010001840100010001 +010181000182010001010181000102018300010001050183000100010101810001070187 +000100010001000108018700010001000100010601850001000100018201000102018300 +01000101018100018a010001000100010001000182010001050181000103010200010181 +00010201810001020102000101830001000102018100011e018100010201810001840100 +01000182010001820100010601 +030181000184010001000108018100011d01810001080181000184010001000105018100 +010301810001840100010001070181000101018100010401820001008500010001000181 +01008200010004000c018700010001000100010601870001000100010001820100018201 +000101018300010001010181000101018700010001000100010901850001000100010701 +010081010001008201000106018100010101890001000100010001000101018300010001 +010181000101018100018501000100010001000501810001820100010101830001000107 +018700010001000100010701870001000100010001060185000100010001010184000100 +010087000100010001000103018100010301850001000100010701830001000101018100 +010401810001040101000701810001010181000101018100010101810001040101000101 +8100010301830001000182010001010181000104018100010101850001000100010a0183 +000100018401000100010901810001030181000104018300010001040185000100010001 +010183000100010501010081010087000100010001000182010001020182000100830001 +000182010001160181000102018100010d01810001820100010101 +810100810001050181000105018100012601830001000107018300010001050181000112 +018500010001000185010001000100820001000500040181000103018500010001000108 +01850001000100010301810001820100010201830001000103018100010b018900010001 +00010001000106018700010001000100010a018500010001000102018100010601810001 +030181000101018100018201000106010500820100010701870001000100010001010181 +000103018700010001000100010701850001000100018201000103018100010301810001 +820100010301830001000101018100010701870001000100010001070184000100010002 +008201000102018100010301810001050185000100010001010183000100010801810001 +050181000102018700010001000100010601850001000100018401000100010801850001 +000100010401810001820100010101830001000104018500010001000105018500010001 +00018401000100010701820001008400010001008100010b018100010e01810001030181 +00010201810001840100010001820100018401000100018201000101010000 +390101000301810001840100010001040183000100010201830001000182010001020183 +000100018401000100010801810001010181000101018300010001830100010083000100 +018201000105018300010001840100010001010185000100010001820100010301810001 +8801000100010001000101018b0001000100010001000100010701830001000184010001 +000109018200010003000801810001010184000100010081000103018100010101830001 +000105010300030181000102018700010001000100010701810001010183000100010501 +890001000100010001000108018300010001010183000100018201000101018300010001 +070187000100010001000107018500010001000109010200880100010001000100010501 +810001050181000103018300010001010181000101018100010401810001020181000105 +0183000100018401000100010801850001000100010f018100018a010001000100010001 +000184010001000102018500010001000104018100018301000100020082010001030187 +000100010001000184010001000112018100010201830001000102018100018201000112 +01 +32018100010501810001840100010001050183000100018601000100010001820100010d +018300010001860100010001000104010200810100020082010001820100010101870001 +000100010001020187000100010001000106018500010001000102018100010601810001 +0a0183000100010201810001090186000100010001000100840100010001010185000100 +010001010183000100010801850001000100010401810001820100010401820001000100 +820100010701870001000100010001050187000100010001000107018700010001000100 +018201000106018300010001010181000103018900010001000100010001050187000100 +010001000105018a00010001000100010001008100010801810001050185000100010001 +0101830001000103018100010101810001020183000100010201850001000100010c0185 +000100010001080185000100010001100183000100010601830001000186010001000100 +018301000100850001000100010101810001810100020082010001840100010001020183 +000100018301000100810001070181000103018100010301810001820100010501830001 +0001020181000182010001810100810001 +3a0181000105018100018201000109018100010601810001860100010001000102018100 +010601820001000100820100010201020081010083000100010301810001840100010001 +050181000186010001000100010b01880001000100010001008100010101850001000100 +010401810001010189000100010001000100010101810001040181000184010001000103 +018500010001000101018900010001000100010001020185000100010001020182000100 +810001020101008201000102018700010001000100010301890001000100010001000107 +018700010001000100010501810001020187000100010001000102018100010101830001 +000101018100010501870001000100010001050187000100010001000105018100010301 +8700010001000100010b0183000100010101850001000100010101810001030181000102 +0182000100820001008100018a0100010001000100010001080183000100010b01810001 +0101810001020187000100010001000102018100010d0183000100018401000100018501 +000100010084000100010084000100010002008101008300010001060181000182010001 +0a0183000100010501830001000106018100010801 +260181000107010100840100010001060181000102018100010201850001000100018201 +000101018100010b01820001008600010001000100870001000100010001860100010001 +000102010400840100010001060185000100010001080187000100010001000181010081 +000101018300010001040181000108018500010001000103018100010301810001010187 +000100010001000181010083000100010301810001070181000101018500010001000105 +018100018201000103018200010085000100010001050185000100010001090187000100 +010001000105018700010001000100010601830001000184010001000107018100010101 +830001000101018100010501850001000100010701870001000100010001010181000101 +01850001000100010501850001000100018401000100010a018500010001000182010001 +0a018300010001030183000100018201000105018100018401000100010a018300010001 +0401810001040183000100018401000100010b0183000100010301840001000100010001 +018200010085000100010001020181000107018100018401000100010701810001820100 +010201810001840100010001050181000101018100010001 +280181000107018100010401810001020182000100810001020181000101018100010401 +810001020181000104018200010083000100010401810001010183000100018201000102 +01010081010001000a01850001000100010a018300010001090183000100010301850001 +000100010301890001000100010001000103018100010101850001000100010101830001 +00010b018100010101870001000100010001010181000101018600010001000100810001 +0201820001008700010001000100018a0100010001000100010001070187000100010001 +000105018700010001000100010a01830001000102018100010301810001010181000101 +018100010501810001010181000109018200010081000186010001000100010301010001 +0183000100010e0181000101018900010001000100010001840100010001030183000100 +018801000100010001000108018300010001020187000100010001000104018500010001 +000102018100010301830001000186010001000100018201000106018300010001840100 +010001060181000185010001000100840001000100840001000100830001000102018300 +010001820100010e01810001050181000102018100018201000184010001000182010001 +01018100010001 +1e0181000104018100018201000105018100010401810001820100010101810001020181 +000184010001000105018100010601810001010181000102018400010001008900010001 +000100010001860100010001000104018500010001000184010001000108018700010001 +000100010401810001010185000100010001020183000100010501850001000100010701 +830001000101018500010001000101018100010501810001010183000100010301830001 +0001010189000100010001000100010a0183000100018401000100010101810001090187 +000100010001000105018700010001000100010901870001000100010001040181000104 +018100010501810001010101008401000100010301890001000100010001000101018100 +010701830001000105018100018301000100010003018500010001000101018100010301 +850001000100010401820001008100018101008100010301850001000100018601000100 +01000103018100010201830001000101018500010001000182010001080183000100010b +018500010001000109018300010001840100010001050186000100010001008100010101 +81000184010001000105018200010083000100010501810001020181000104018100010e +0101000101 +1b0181000108018100010401810001840100010001820100010201810001040181000182 +010001040183000100010501830001000101018100018801000100010001000186010001 +000100018401000100010101810001020187000100010001000108018100018401000100 +010a01810001010181000104018300010001860100010001000101018100018201000101 +018300010001010187000100010001000107018300010001810100810001010101000501 +810001030181000109018100010101830001000101010200820100010401810001020187 +000100010001000105018700010001000100010901870001000100010001080183000100 +018201000105018100018401000100010901870001000100010001050181000101018300 +010001010181000105018900010001000100010001010181000103018100010101810001 +010183000100010501830001000184010001000101018200010002008201000108018500 +010001000101018100010801830001000102018100010101850001000100010201830001 +000184010001000108018100018401000100010b01830001000183010001008500010001 +000183010001000100010181000186010001000100010501810001050181000102018300 +0100010301830001000182010001020181000101018100010101 +040181000104018100010101830001000182010001070181000102018100010301830001 +0001050184000100010081000104018100010501830001000104018100010b0185000100 +010001840100010001060183000100018401000100010601890001000100010001000106 +018500010001000184010001000103018700010001000100010101810001030183000100 +018201000103018500010001000107018300010001840100010001070181000104018100 +010101830001000101018900010001000100010001010181000103018100010601020001 +018300010001050187000100010001000109018700010001000100010701870001000100 +010001020181000104018500010001000104018700010001000100010901890001000100 +010001000103018100010101870001000100010001010187000100010001000103018100 +010101810001010181000103018500010001000105018300010001820100010601870001 +000100010001060189000100010001000100018201000110018300010001810100810001 +030183000100018401000100010601830001000186010001000100010901010082010001 +040181000186010001000100018201000186010001000100010301810001020181000104 +018100010801810001820100018201000182010001 +070181000182010001070181000105018100010701810001050183000100010201810001 +050181000102018100018401000100010201830001000102018100010401850001000100 +010401830001000186010001000100018201000105018100018401000100010801870001 +000100010001060187000100010001000105018900010001000100010001010183000100 +018601000100010001030183000100018401000100010701870001000100010001010181 +000101018100018201000103018100010701830001000101018300010001010187000100 +010001000102018100018801000100010001000109018700010001000100010701870001 +000100010001050181000110018300010001070189000100010001000100010901870001 +000100010001040101008201000103018100010101830001000101018100010101810001 +010183000100010101890001000100010001000182010001010184000100010083000100 +010701830001000184010001000105018100018a01000100010001000100010301810001 +860100010001000186010001000100018201000106018500010001000182010001080181 +000184010001000104018100018401000100018401000100010701810001820100010701 +810001020183000100010301830001000184010001000104018100010201 +050181000102018100010301830001000105018400010001008100018401000100018401 +00010001820100010701830001000182010001020181000107018100010b018100010401 +870001000100010001090187000100010001000109018500010001000106018900010001 +000100010001030183000100018401000100018201000105018100010101810001020181 +000102018300010001070187000100010001000101018100010301830001000101018300 +010001010183000100018201000181010083000100010301810001030181000104010100 +820100010101810001070189000100010001000100010701870001000100010001050187 +000100010001000116018700010001000100010901870001000100010001010181000105 +01830001000101018100010101830001000101018100010b010100030181000105018100 +010201010082010001020181000102018700010001000100010801870001000100010001 +0c018100010d018100010201870001000100010001070185000100010001820100010601 +810001820100010401810001020182000100850001000100010a01810001020181000104 +018100010b01810001030101000001 +820100010d018100018401000100018201000102018100018401000100010a0183000100 +018201000104018100010101810001120183000100010401830001000106018400010001 +008500010001000106018700010001000100010401870001000100010001820100010301 +810001010183000100010401840001000100810001020101000501830001000108018700 +010001000100010101810001030181000101018300010001020101008201000107018100 +010801810001030181000101018200010002008201000104018700010001000100010701 +8900010001000100010001050181000101018300010001050183000100010e0181000103 +018100010501870001000100010001090181000101018300010001010181000183010001 +008900010001000100010001010181000104018300010001030183000100010101810001 +820100010101830001000102018300010001010181000108018700010001000100010801 +830001000184010001000105018500010001000183010001000100030181000104018100 +010101810001840100010001090181000102018100010401830001000184010001000182 +010001010181000103018300010001070181000102018300010001030183000100018201 +00018201000108010000 +840100010001010183000100018201000182010001070181000181010081000109018300 +010001820100010401810001840100010001070181000105018100010401810001060181 +000103018100018401000100018401000100010501810001840100010001060185000100 +010001060181000101018300010001060185000100010001040181000182010001030181 +000182010001030187000100010001000101018100010301810001010183000100010301 +850001000100010301850001000100010301880001000100010001008100010701810001 +040102008301000100810001090185000100010001070181000101018300010001010181 +000101018700010001000100011401830001000101018100010301810001050187000100 +0100010001090181000101018100010b0181000186010001000100010301830001000103 +018100010101810001840100010001810100820001008100010501830001000184010001 +00010701850001000100010d018300010001080181000101018100010201830001000102 +018100010401850001000100018401000100010201810001020183000100010401830001 +0001030183000100010c0181000102018100010501830001000184010001000103018100 +01820100010401 +06018100018201000105018300010001820100010a018300010001080183000100010501 +840001000100010004018300010001020181000182010001020183000100010501810001 +070187000100010001000102018100010101830001000184010001000108018300010001 +050185000100010001820100010301860001000100010081000186010001000100010101 +810001020181000101018100010301810001010183000100010301870001000100010001 +030181000181010085000100010001010181000103018100010101840001000100810001 +010183000100010101820001008100010501810001020187000100010001000105018100 +0103018100010101810001010187000100010001000103018700010001000100010e0183 +000100010101870001000100010001010183000100010101810001050189000100010001 +000100010601010086010001000100010101830001000104018100010101810001010187 +000100010001000101018100010101810001050189000100010001000100010301810001 +860100010001000106018700010001000100010701810001850100010001008500010001 +000102018500010001000104018300010001020181000106018100018401000100010401 +830001000182010001010181000102018100018201000186010001000100010501810001 +020183000100010b018100018201000182010001840100010001 +010181000182010001020181000184010001000105018100010301020001018100010201 +830001000184010001000184010001000184010001000119018100010c01830001000184 +010001000106018500010001000108018100010801870001000100010001040187000100 +01000100010d018300010001060181000101018300010001030187000100010001000109 +018100010201010002018300010001070181000106018300010001010181000104018500 +01000100010101010006018100010101830001000101018b000100010001000100010001 +050185000100010001160183000100010501810001010183000100010101810001010185 +000100010001070187000100010001000182010001060101000601850001000100010101 +810001070181000104018100010101810001840100010001050187000100010001000104 +01870001000100010001060181000101018100010d018100010101810001820100010101 +830001000184010001000104018300010001840100010001040183000100018201000104 +018300010001840100010001020181000114018300010001820100018201000108018100 +0182010001 +010181000182010001820100010801830001000184010001000105018100018201000101 +018100018201000182010001090181000183010001008100011c01010007018500010001 +000104010300840100010001060181000103018100010301810001860100010001000107 +018100018601000100010001840100010001010185000100010001820100010501850001 +000100010301810001030187000100010001000107018100010901850001000100010f01 +810001010181000101018100010301010082010001010181000101018700010001000100 +010301890001000100010001000109018300010001120187000100010001000105018100 +010101830001000101018100010101850001000100010601820001008900010001000100 +010001810100810001820100010301810001030187000100010001000101018100010401 +810001060181000101018300010001050181000184010001000105018300010001840100 +010001050187000100010001000105018100010301810001020181000104018300010001 +090183000100018401000100010201830001000184010001000105018300010001810100 +8100010a01810001820100010a01810001820100010801 +8100010a0181000182010001080183000100018201000102018100018401000100010501 +8300010001840100010001110183000100010d0101000201850001000100010201050082 +0100011401810001840100010001070187000100010001000107018100010c0187000100 +010001000101018100010301810001010183000100010401010084010001000182010001 +0201810001030183000100010b0183000100010201810001060181000101018100010401 +8700010001000100010501850001000100010b018700010001000100011e018900010001 +000100010001030181000101018700010001000100010101820001008100010801810001 +010101000c01810001070181000103010100020185000100010001020181000103018100 +010101830001000104018700010001000100010801830001000105010100860100010001 +000182010001040181000101018100010401830001000186010001000100010901810001 +020183000100010201810001820100010801810001050181000105018100010201810001 +020181000104018300010001820100010001 +020181000181010085000100010001820100010301830001000182010001020183000100 +018201000102018300010001840100010001020181000105018300010001820100010201 +810001020181000113010100810100020002018100010801830001000117018700010001 +000100010801870001000100010001010188000100010001000100810001080181000102 +018300010001030187000100010001000109018300010001020181000105018500010001 +0001010181000109018e0001000100010001000100010001008100010301890001000100 +010001000107018900010001000100010001050183000100010601810001070187000100 +01000100010d018500010001000109010100820100010101870001000100010001080181 +000109018300010001010181000108018100010601870001000100010001020181000103 +018700010001000100010401850001000100010501850001000100010101830001000106 +01850001000100010401810001820100010101810001070185000100010001820100010e +018300010001830100010081000103018100010c01810001020181000106018100010601 + +820100018201000105018300010001820100010501830001000108018100010901810001 +840100010001820100010301810001020181000112018300010001820100010601020001 +010200010183000100010101810001110185000100010001080187000100010001000103 +018300010001010181000105018100010201870001000100010001030187000100010001 +000107018900010001000100010001020183000100010201010006018300010001010181 +00010401810001840100010001030181000103018200010083000100010b018500010001 +0001050185000100010001010181000102018100010f0185000100010001010189000100 +010001000100010901820001008300010001010181000103018100010101810001010182 +000100010082010001040183000100010101810001110101000101850001000100010801 +850001000100010901810001020181000107018500010001000184010001000102018100 +010101810001820100010301810001840100010001060183000100010c01850001000100 +0102018100018201000102018100010d01810001130181000103018300010001810100 +010183000100018101000100040183000100018201000182010001050104000601810001 +840100010001020101000401810001840100010001180181000183010001000200820100 +01070183000100011d018300010001840100010001070183000100010701850001000100 +010101810001060185000100010001050189000100010001000100010701810001010101 +00030183000100010a018100010301810001070183000100010101830001000108018900 +010001000100010001030185000100010001050186000100010001008100011901830001 +000101018100010101840001000100830001000107018100010101830001000105018100 +010301810001030181000116018300010001090187000100010001000106018700010001 +000100010301810001020183000100010101830001000105010100820100010201810001 +040187000100010001000102018300010001820100010801810001820100010901850001 +000100018201000102018300010001820100010801810001820100010201810001020181 +000102010200820100010501810001 +040183000100018401000100010601820001008500010001000108018200010081000182 +01000103010200010183000100010101820001008100010d018100018201000101018300 +010001810100010082010001030183000100010a0181000113018500010001000104018b +000100010001000100010001050181000101018100010501830001000186010001000100 +0103018700010001000100010b0187000100010001000102018100018201000116010100 +010183000100010301810001070182000100810001050185000100010001070185000100 +0100011a0185000100010001050181000101018700010001000100010201830001000103 +01810001050181000101018700010001000100010101830001000108018100010e018300 +010001020183000100010901870001000100010001060187000100010001000106018100 +01010185000100010001040181000186010001000100010d01830001000112018100010c +01830001000107018100010e0181000105018100010401810001840100010001 +010181000106018200010085000100010001820100010701010081010001000601840001 +000100010003010400830100010082000100810001050181000106018200010001000201 +810001010181000109018300010001820100010101850001000100011501850001000100 +010901830001000184010001000103010100840100010001820100010301870001000100 +01000107018d000100010001000100010001000103010100010181000118018100010d01 +870001000100010001020187000100010001000105018700010001000100010701810001 +01010100820100011501890001000100010001000106018b000100010001000100010001 +010185000100010001820100010801810001020181000109018100010401810001820100 +0101018100010101810001820100010201850001000100010b0183000100010a01810001 +050183000100018201000101010100040181000104018300010001880100010001000100 +011a018100010401830001000184010001000104018100011a0183000100010801 +030101000101010082010001030181000181010001008101008200010002000301810001 +810100010081010081000182010001030102000701010084010001000184010001000101 +018200010087000100010001000101018100010201830001000101018100010201890001 +000100010001000182010001010181000111018300010001070187000100010001000104 +01850001000100010d018100010701870001000100010001030181000103018100010101 +850001000100010101810001010185000100010001010181000104018100010301810001 +010184000100010001008101000100820100010301850001000100010401890001000100 +010001000107018700010001000100010101810001140187000100010001000107010100 +820100010901870001000100010001030181000101018500010001000108018100010101 +810001040181000101018100010201850001000100010d018b0001000100010001000100 +010201810001820100018a01000100010001000100010b01810001030183000100010201 +01000301810001060183000100011c018100011001810001120181000101018300010001 +02018100018401000100010001 +010082010001010181000102018200010082000100010086010001000100018201000101 +010100840100010001020181000184010001000182010001020183000100018401000100 +018201000103018100018101000300040185000100010001840100010001030181000102 +0102000401810001820100011b0187000100010001000106018500010001000107018900 +0100010001000100010501850001000100010301810001030181000101018b0001000100 +010001000100010201810001040181000101018100010a01810001010181000109018700 +0100010001000103018400010001008100010b0185000100010001070182000100850001 +00010001170184000100010081000105018b000100010001000100010001050183000100 +01810100810001010181000101018300010001840100010001010181000101018100010d +018300010001810100010088010001000100010001010181000104018100010101870001 +0001000100010e0189000100010001000100018401000100018401000100010401810001 +010183000100010601810001820100011901830001000182010001020185000100010001 +020181000105010100100181000105018100010001 +030103008401000100010101810001040183000100018201000182010001050185000100 +010001020181000103018100010601830001000184010001000181010081000101018100 +018401000100018201000101018100010201010082010001030103000301810001830100 +010083000100018101008300010001030181000107018300010001030185000100010001 +84010001000103018d000100010001000100010001000106010100820100010101810001 +04018100018c010001000100010001000100010501830001000181010081000101018100 +010101810001010181000101018200010083000100010101810001010186000100010001 +008100010601850001000100010801890001000100010001000103018900010001000100 +010001180185000100010001080187000100010001000109018700010001000100010201 +8100018a0100010001000100010001040181000101010100040185000100010001010181 +000102010100010101000201870001000100010001010183000100010801810001010187 +000100010001000105018100010901810001060185000100010001060181000184010001 +000108018100010101810001030181000104018200010081000106018100010601010003 +0102000b0101000301010002010100820100010301 +810100810001070181000182010001840100010001070181000184010001000182010001 +020183000100010201810001050183000100010301010001018300010001810100010001 +018100010101810001820100010101830001000182010001820100010701890001000100 +010001000181010081000106018100010101810001020101000101850001000100010601 +8700010001000100010d01850001000100010401830001000101018b0001000100010001 +000100010701010082010001040181000104018100010101850001000100010101820001 +008300010001010181000103018600010001000100010082010001030181000103010100 +820100010701850001000100010b01010084010001000115018400010001008300010001 +0701890001000100010001000107018100010d0101008101008100018201000102018300 +0100010301830001000105018100018101008500010001000105018b0001000100010001 +000100018201000105018300010001020181000104018700010001000100018201000184 +010001000108018100018101000100820100010301010010018100018401000100010201 +830001000105018100010101010082010001010101000501020081010001008201000108 +01810001840100010001820100010101 +0601810001820100010a0183000100018201000104018100010301830001000105018200 +010001000101830001000181010001000501810001070181000182010001070101008201 +000103018100018401000100010a01830001000105018100010601830001000102018200 +010001008201000107018700010001000100018401000100010101810001010181000101 +01810001010187000100010001000107018700010001000100010a018100010101810001 +010181000105018100010601810001010183000100010401810001010181000184010001 +0001010183000100010201890001000100010001000105018c0001000100010001000100 +010081000113018500010001000108018700010001000100010901850001000100010101 +810001820100010201840001000100810001040181000101018100010501830001000103 +018300010001840100010001060187000100010001000105018300010001810100810001 +8601000100010001010181000105018100010f0184000100010083000100010701010082 +010001010181000182010001010181000184010001000106010300010184000100010081 +00010401810001040181000104018100010a010100030181000183010001008100010401 +810001 +830001000182010001040101008201000182010001810100810001010183000100018301 +000100810001040181000185010001000100850001000100010c01840001000100020082 +010001020183000100018501000100010002008201000101018300010001030181000184 +010001000188010001000100010001060181000105018100010201840001000100010082 +010001010187000100010001000103010100010101000201810001010181000105018100 +010101810001010189000100010001000100010901870001000100010001040183000100 +010101810001010181000105010100020183000100010101860001000100010081000182 +010001040101008601000100010001050101008e01000100010001000100010001000103 +01810001840100010001820100010c018600010001000100020086010001000100010501 +8700010001000100010501830001000109018100010401820001008b0001000100010001 +00010001050181000101018100018201000101018100010c018700010001000100010601 +850001000100010301820001008100010201870001000100010001830100010085000100 +010001060182000100010081010081000103018100010f01030001010200820100018201 +000104018500010001000184010001000182010001040181000105018100010301810001 +07018100018201000182010001 +010005018200010081000101010100840100010001010181000107018300010001860100 +010001000108018300010001040182000100810001030181000103018100018501000100 +010081000101018100010101810001010181000182010001010184000100010081000105 +018100010101810001860100010001000104018300010001010183000100010101870001 +000100010001010181000182010001010102008c01000100010001000100010001020102 +000101040082010001020101000501010085010001000100810001020182000100010085 +010001000100830001000101010100010185000100010001020182000100810001820100 +0101018100010401010086010001000100010501820001008d0001000100010001000100 +010001040181000102018100018201000101018100010801810001040181000103010100 +8d0100010001000100010001000100010005010100880100010001000100010801850001 +000100010201810001010181000101018100010301850001000100010101840001000100 +81000101018b0001000100010001000100010a0185000100010001060187000100010001 +000102018300010001080182000100810001810100010084010001000107018300010001 +1301020004018300010001820100010d0181000184010001000102018100010501810001 +8101008300010001820100010a01 +810001810100820001000100030101000501830001000181010084000100010085000100 +010001840100010001820100018601000100010001820100018601000100010001020183 +0001000185010001000100840001000100820001008a0001000100010001000100020086 +010001000100018901000100010001000100020088010001000100010001030181000182 +01000107018300010001020102008101008100018201000101018a000100010001000100 +010001008201000101018300010001010189000100010001000100018101008600010001 +000100010004010200840100010001820100018201000101018300010001830100010001 +008b01000100010001000100010081000101018e00010001000100010001000100010083 +000100018101000100870100010001000100840001000100810001020181000101018d00 +010001000100010001000100018201000102018100010301010086010001000100010101 +830001000186010001000100010101840001000100010002018200010001008201000101 +018300010001820100018101008100010301810001010181000182010001010181000101 +018100018101008300010001010102008401000100018201000107018300010001010183 +000100018301000100010005018100018301000100010084010001000101018300010001 +010187000100010001000101010200020181000106018100018601000100010001040181 +00010f018100010101010082010001030181000101018100018801000100010001000182 +010001010181000184010001000184010001000182010001810100810001050183000100 +01840100010001820100010001 +010181000182010001020101008101008200010084000100010083000100010201810001 +820100018401000100010401010084010001000182010001040181000184010001000184 +010001000101018100010301830001000181010001008201000108018300010001010181 +000188010001000100010001020181000103018100018101000100820100010101850001 +00010001810100010081010001008201000101018b000100010001000100010001070187 +000100010001000101018100010101810001010192000100010001000100010001000100 +010001008600010001000100050081010001000101860001000100010001008501000100 +010086000100010001000100860100010001000184010001000181010084000100010001 +008101000500020102000101020089010001000100010001008200010001008501000100 +010083000100010101830001000108018300010001820100010101860001000100010083 +000100010101050081010001008101008400010001000200820100010401880001000100 +010001008100010101040081010082000100010082010001020183000100010101820001 +008300010001830100010084000100010083000100010301040082010001820100010101 +810001010101000601810001010182000100010081010001008201000101018100018401 +0001000182010001030185000100010001050181000106018100010b0187000100010001 +000106010100030181000104018300010001820100018201000105018100018201000181 +010081000104018100010001 +820100018201000102018100018201000104018100018201000184010001000102018300 +010001820100018401000100018401000100018501000100010083000100010201830001 +000185010001000100840001000100810001010183000100018201000101010100880100 +010001000100018101000100020184000100010001000101850001000100010101010002 +018100010101850001000100010601a10001000100010001000100010001000100010001 +000100010001000100010001000101019500010001000100010001000100010001000100 +010001010186000100010001000400020182000100010001010100810100860001000100 +010002008301000100010002018200010002008101000300830100010001008101000100 +0501010083010001000100010101008101008a0001000100010001000100010001018600 +01000100010001000501820001008a000100010001000100010085000100010001010181 +000101010900830100010083000100010101040001010600860100010001000182010001 +010181000103018300010001820100010101810001820100010201810001820100010201 +840001000100820001000100010104008401000100018101000100830100010001008101 +008100010101830001000104018300010001820100010301810001810100010084010001 +000186010001000100010301810001820100010601810001070183000100018101000100 +820100010501810001010102000301810001020183000100018201000108018100018401 +0001000105018100018201000102010000 +0b0181000102018100010801830001000184010001000184010001000182010001020181 +000107018500010001000104018100010101810001030181000186010001000100018201 +000101018100010101810001840100010001010181000108018300010001010181000111 +018700010001000100010301880001000100010001008100010501820001008100010401 +820001008400010001008300010001820100010301870001000100010001010184000100 +010081000101010400810100010081010002008701000100010001000100830100010087 +000100010001000101018100018101000100830100010001000201010081010002000101 +010081010082000100010082010001010181000101018100010101820001000100810100 +850001000100018601000100010001010181000106018200010081000101018900010001 +000100010001030101000101020088010001000100010001010102008101008300010001 +0101880001000100010001000100810100020081010082000100070081010002008c0100 +01000100010001000100018101000a008301000100020001018400010001008100018101 +000200890100010001000100010082000100030086010001000100010201010001018200 +010002000101810001810100830001000101018100018401000100010201820001000100 +810100810001020182000100010081010005008201000184010001000181010001000301 +810001840100010001820100010201810001820100018101008400010001008300010001 +82010001810100 +0e018100010201810001820100018201000104018100010a018100010201850001000100 +0109018100010201810001010101000a0183000100010201810001010181000101018100 +010101810001860100010001000104018100010101810001140187000100010001000108 +018900010001000100010001010183000100010101810001820100010401820001000100 +820100010801860001000100010001000501810001820100010201010082010001010181 +000184010001000103018100018101000100810100810001020181000101018200010081 +000182010001810100020089010001000100010001000200890100010001000100010084 +000100010001008301000100890001000100010001000189010001000100010001008100 +010101880001000100010001008200010003000101010001018200010086000100010001 +000100020183000100010101810001810100820001008300010001010181000102018100 +018201000101018100010201010081010001008201000101010100850100010001008100 +010a01850001000100018101008100010201850001000100010201810001070181000108 +018200010004000501050002018300010001040183000100010301810001020102000101 +010007018100018201000186010001000100018301000100830001000102018100010201 +020082010001840100010001020181000103018300010001 +0c0183000100018201000102018100010501810001020181000182010001020185000100 +010001070183000100018401000100010201830001000105018300010001840100010001 +040181000101018100010101810001010181000102018100010401010003018300010001 +0f0101008201000106018900010001000100010001050183000100010101810001010181 +000103018500010001000101018500010001000181010002008301000100830001000103 +018500010001000184010001000190010001000100010001000100010001000181010001 +008401000100018101000200810100020087010001000100010001008201000184010001 +0001830100010002000a0184000100010001000101810001830100020182010201010184 +020102000105018200010085000100010001040101008501000100010081000102018300 +010001010102008101008200010001008101000100860100010001000101010200810100 +060001010600810100820001000200030183000100010101840001000100840001000100 +020002018500010001000181010082000100010004018200010082000100810001840100 +010001030182000100010081010085000100010001030103008401000100010201810001 +010181000184010001000104018400010001008500010001000182010001010104008201 +000186010001000100018601000100010001820100018301000100010001018100018301 +000100830001000182010001820100018301000100850001000100010001 +140181000102018100018201000102018300010001840100010001050183000100018401 +000100010701830001000104010100840100010001070183000100010101850001000100 +010a01810001840100010001010183000100011601810001860100010001000105018700 +010001000100010501830001000101018100010301810001010185000100010001010181 +000105018600010001000100830001000109018200010082000100810001040183000100 +010101810001010183000100010501010001018100018401000100010101020088010001 +000100010001030101008801000100010001000104010200830200010089000100010201 +00020001860102010001000102018b000100010001000100010001020183000100018301 +000100020082010001820100018201000103018100010101830001000101018300010001 +020101000601810001820100018201000103018100010101830001000104018700010001 +000100010601870001000100010001020181000102018200010001000101810001820100 +010701010006010100840100010001820100010401810001010183000100018401000100 +010401820001008100010301810001010181000182010001860100010001000182010001 +820100018601000100010001860100010001000182010001820100018201000103018100 +01020183000100018301000100010004018100010001 +0c0181000182010001820100010201810001840100010001820100010401810001840100 +010001820100010601810001860100010001000105018300010001840100010001020181 +000184010001000103018100010601810001810100830001000102018300010001010181 +000104018100011001830001000105018700010001000100010301870001000100010001 +010185000100010001010181000103018100010501890001000100010001000105018200 +010085000100010001030181000103018100010101810001010184000100010081000101 +018100010201810001840100010001030101008601000100010001050181000101010100 +840100010001050181000101018500010001000102010200810102850201020100018701 +020102010001028902010001000100010001010181000101018700010001000100010801 +870001000100010001090185000100010001820100010201850001000100010101830001 +000101018200010002000101840001000100830001000182010001040102008101000100 +820100010401890001000100010001000182010001050183000100010301810001010181 +000182010001010183000100010201870001000100010001820100011801850001000100 +018201000101018100018401000100010101810001820100010101810001820100010401 +81000184010001000101018200010001000a0183000100010301 +120181000182010001040181000182010001840100010001070183000100018401000100 +010401810001840100010001820100010401810001860100010001000182010001020102 +000201870001000100010001010181000101018100010401850001000100018201000114 +018700010001000100010301870001000100010001050181000107018100010101810001 +010187000100010001000109018a00010001000100010001008100010201810001020183 +000100010101810001010181000106018100010101820001008200010089000100010001 +000100010401870001000100010001010183000100010401870001000100010001010186 +000100010001008200020182010201840102010201840102010201010182020102830201 +000101018200020188010001000100010001050101008801000100010001000105018100 +010301850001000100010501830001000105018300010001820100010101810001050181 +00018101008f000100010001000100010001000100010501810001810100810001820100 +010501830001000186010001000100010101820001008100018801000100010001000104 +018500010001000182010001010183000100018101008100010e01850001000100010701 +820001008100018201000184010001000102018300010001020183000100010201810001 +8101000100050181000184010001000108018100010001 +0b0102000101810001020181000184010001000107018100018401000100018201000104 +018100018601000100010001090181000185010001000100830001000182010001010181 +000182010001010183000100010101810001010181000102018700010001000100010801 +810001140189000100010001000100010501870001000100010001030181000184010001 +000104018100010701890001000100010001000101018300010001090181000193010001 +000100010001000100010001000100010081000101018500010001000107018300010001 +840100010001030181000103018100010101010088010002010200010001010181000103 +0182000100870002000102010201010187020102010201020104018d0201000102010002 +000200010001010185000100010001060181000101018900010001000100010001070101 +000201810001020186000100010001008300010001010187000100010001000184010001 +000106018700010001000100010101830001000101018100010601850001000100010801 +830001000101018100010a01850001000100010601810001010181000119018500010001 +000107018100010101830001000104018100010501810001060183000100018201000105 +018300010001820100010301 +100181000182010001070181000184010001000107018100018401000100010901830001 +000184010001000104018100010801810001030183000100010201810001010183000100 +010c01850001000100010a01810001070181000107018700010001000100010c01810001 +03018200010081000183010001008d000100010001000100010001000101018100010301 +8b0001000100010001000100010401830001000107018300010001880100010001000100 +018101008500010001000101018100018201000103018100010101880001000100010002 +008100018401020002010201870001000100010001020183020102010201820201028102 +01030101028d010201020100010201000201020101018602010200010001010181000186 +0100010001000101018100010b0183000100010701830001000101018300010001040181 +000105018100018101008100018101008700010001000100010501870001000100010001 +010187000100010001000104018500010001000106018b00010001000100010001000108 +018500010001000102018100011601810001090185000100010001010181000102018500 +010001000102018100018401000100018301000100010003018100010201810001820100 +010701810001810100 +0e0181000102018100018201000184010001000102018100010201810001840100010001 +07018300010001840100010001040181000102018300010001050183000100018a010001 +000100010001000186010001000100010201810001860100010001000184010001000101 +018100010101830001000112018700010001000100010a01930001000100010001000100 +0100010001000100018a0100010001000100010001030181000101018700010001000100 +010101850001000100010401830001000103018700010001000100010301010006018100 +010301810001010181000102018e0001000100010001000200010201028b020102010001 +000200010001090101008501000100010201028701020102010201028102010101860201 +02010002018801000100020002000101018c020100020100010001000100010301850001 +000100010101810001010181000187010001000100010081000101018100010101810001 +8e0100010001000100010001000100010201830001000108018700010001000100010501 +870001000100010001010187000100010001000101018100018701000100010001000100 +0701850001000100010801810001020181000103018100010b0181000102018500010001 +0001820100010a0181000101018100010301850001000100018201000182010001030181 +000102018100010501830001000182010001820100010101 +0c018100018401000100010a018100010201810001070183000100018201000104018100 +010201830001000102018100010101810001820100010501830001000108018100010101 +83000100010201810001050185000100010001010181000102018100010f018100010801 +890001000100010001000103019100010001000100010001000100010001000104018100 +018301000100810001010181000101018700010001000100010501830001000184010001 +000184010001000102018900010001000100010001820100010101810001810100830001 +000101018300010001870100010001000102830201020187010201000100010082000102 +81020104018c00010001000100010001000201010183020102010301830201020102018e +020100010001000201020102010201020184000100010083000102010201810201880100 +010001000100010101820001008100010101810001030183000100018201000101018100 +018201000101018300010001030181000101018100010301890001000100010001000103 +018100010101870001000100010001050187000100010001000104018300010001010181 +000101018700010001000100018201000103018300010001860100010001000118018100 +010201810001040183000100018201000182010001020181000102018300010001820100 +01040181000182010001010183000100010201810001820100010a01810001 +140181000184010001000182010001020183000100018401000100018201000101018100 +010301830001000102018100010101830001000184010001000102018100010201810001 +050183000100010101810001070183000100018201000101018100010801830001000182 +010001110187000100010001000105018700010001000100010101830001000103018300 +010001020181000184010001000105010100840100010001070189000100010001000100 +010201810001040101008201000103018400010001008700010001000100010101870001 +000100010001010101028a010001000200020002000102018b0201020100010002000100 +010101810001060185000100010001810102850201020102010101010285010201000102 +9002010200010002000200010001000102018c0102010001000100010002000103018600 +010001000100820001008100018401000100010201840001000100830001000101018100 +010301830001000101018100010101010003010100050183000100010101810001030181 +000101018700010001000100010701010004018100010201010009018700010001000100 +010601830001000111018100018201000104018300010001060181000101018100018601 +000100010001050183000100010b01810001820100018401000100018401000100018201 +000182010001 +0d0181000102018100010701810001820100010401810001050181000101018100010201 +830001000184010001000102018300010001840100010001070181000102018500010001 +00010201870001000100010001050187000100010001000108018100010d018100018201 +000107018500010001000101018700010001000100010301830001000103018300010001 +030187000100010001000105010100860100010001000107018100010101020086010001 +000100010201830001000103018100018401000100010101810001040101028301020100 +850001020102010201870200010001000200820001028302000201020181000101018500 +010001000187010001000200010201028201020101010102850102010201028402000200 +018301020002880201020102010201008c00010001000100020102010201880100010001 +020100010101810001020187000100010001000104018100018801000100010001000103 +018500010001000104018100010301870001000100010001030183000100010201810001 +03018100010101850001000100010401010003018f000100010001000100010001000100 +010601850001000100018201000111018100010401830001000186010001000100018201 +000103018100010801810001840100010001020102000301830001000182010001070181 +000182010001820100010201 +100183000100018401000100018401000100010501810001020183000100018601000100 +0100018201000104018100018401000100010b0182000100840001000100810001030181 +00018201000101018100010301850001000100010c01830001000101018100010c018100 +0101018f0001000100010001000100010001000105018700010001000100018801000100 +01000100010201810001050187000100010001000108018b000100010001000100010001 +820100010601820001008100010301810001010181000102018e00010001000200020001 +00010201028e020100010002000200010201020102810201010101020101830001000101 +018600010001000100810001010101020701830201020104018700020001000200028802 +010001000100010086000102010201028c02010200020001000100010201840102010001 +010185000100010001060183000100018201000105018500010001000182010001010181 +000181010002008601000100010001050189000100010001000100010101830001000102 +018100010801810001020181000102018100010301890001000100010001000182010001 +01018300010001040181000111018300010001090183000100018101008100018a010001 +00010001000100018201000104018100010e018100018401000100018201000105018100 +010001 +01018100010a018300010001820100010901810001840100010001860100010001000105 +018300010001840100010001070185000100010001840100010001020181000102018100 +018401000100010301810001010185000100010001030181000182010001010181000108 +0101000f0189000100010001000100010501870001000100010001050181000107018b00 +010001000100010001000105018600010001000100850001000100010301810001020101 +008c01000100010001000100010001860100010001000102018500010002000102018602 +01020102000101010100820102018c010200020102000100010201008b00010002000200 +0100010001080186020100010001020102840102010201860102010201020102018d0201 +020001000100010001020102860201000100010283020002010101820200010101820001 +008300010001810100810001030185000100010001030181000101018500010001000182 +010001010181000101018100010d01890001000100010001000105018700010001000100 +010201830001000105018300010001010185000100010001820100010701840001000100 +810001030185000100010001010181000107018100010101810001040181000186010001 +000100010601810001010181000102018100010401830001000103010100030181000184 +01000100010a01810001820100018301000100 +010181000103018100010c01830001000184010001000184010001000105018500010001 +000182010001090185000100010001820100010101810001820100010101810001820100 +018201000102018100010101830001000101018100010201810001840100010001090102 +0084010001000101018100010d0181000105018100018301000100830001000107018100 +018c01000100010001000100010001820100010501870001000100010001030181000106 +018700010001000100018101000200820100010101810001060181000101018200020083 +000201028e02010001000100010002000100010281020087000100020102000288020100 +010002000200810001830102000105018400010001008400010201028102018101020102 +830102010202028901020102010002000201010101028701000102010002008600010001 +000201020183000200010101810002010282010001020101008601000100010001040101 +000201810001010182000100810001010181000101018100010101810001810100890001 +000100010001000105018100010101870001000100010001050185000100010001040181 +000103018300010001010185000100010001860100010001000106018700010001000100 +010a01810001040181000186010001000100010701810001050181000101018100010201 +830001000182010001010181000102010200010181000105018300010001820100010b01 + +02018100010c018300010001840100010001050183000100018401000100010a01850001 +000100018201000101018100018201000101018100010401810001820100010201810001 +820100010101810001040181000101018100010101810001010185000100010001060181 +0001030102001101870001000100010001020181000102018a0001000100010001000100 +010008018100018601000100010001030181000101018300010001010186000100010001 +008300010001020181000102018100010101850001000100010101010001019702000201 +02000102000100010001020100020002000102018e010201020100010002000200010201 +850102000201028102010201850001000100010401890001000100020002010282020102 +810201010181020186010201020002018601000200010001010182000201010182020102 +8d0201020002000200010001000100830001000101018100018101008100010101810001 +010183000100010301810001010181000104018d00010001000100010001000100010101 +850001000100010101850001000100010b018700010001000100010a0183000100010301 +810001030181000102018900010001000100010001820100010701810001030181000110 +018100018c01000100010001000100010001020185000100010001840100010001020183 +000100010c0183000100010501830001000182010001820100010101 +060183000100010e018300010001820100010c0185000100010001050185000100010001 +040181000186010001000100010301010008018100018801000100010001000101018100 +010c0183000100018101008700010001000100010a018100010701810001010183000100 +0103018100010b0187000100010001000104018100010101830001000101018100010101 +870001000100010001060183000100018101008100010101830001000101018600010001 +000100850002010200010101820001028902010001000201020102860201000100010087 +0001020102010002850201020102010101010083020002018c0100010001000100010001 +000183010201028302010201830102000101018502000200020198010201020002000200 +010001020102000100010201000200018301020002810201040188000100010002010001 +820100010101810001050183000100010101810001860100010001000103018100010f01 +870001000100010001010189000100010001000100010301810001010183000100010201 +810001840100010001880100010001000100010301810001040181000101018700010001 +000100018201000103018100010501810001030181000101018300010001820100010c01 +810001040181000104018100010201810001010181000184010001000184010001000103 +01810001020183000100010501810001 +020181000104018300010001020181000103018100010801830001000186010001000100 +010201810001020183000100010501850001000100010b01810001820100018601000100 +010001040181000103018100010201810001870100010001000100010001018300010001 +050181000102018300010001050181000101018300010001030187000100010001000101 +018b00010001000100010001000182010001020183000100010101810001820100010101 +870001000100010001070184000100010081000104018100010601810001050101008601 +000100020001930100020001000100010002000102010201020102820201028302000201 +8901000100010002000200810001830102000105018400010001008a0001000100020002 +010001810102830201020102018f02010200010002000102010201000200860001000100 +020101018202000285020100010001010183000201028102018201000101018100010101 +850001000100018201000102018200010083000100010301830001000101018600010001 +000100810001860100010001000107018700010001000100010301830001000101018100 +0101018100010201810001820100010a0189000100010001000100010201810001030183 +000100011101810001020185000100010001020185000100010001860100010001000101 +018300010001020183000100010201810001820100010401810001070184000100010081 +000105018100010201810001 +810001820100010101810001020181000101018100010101010006018300010001050181 +000102018300010001040181000186010001000100010701850001000100018401000100 +0107018100018601000100010001020101000301810001040181000106018b0001000100 +010001000100010301040084010001000102018700010001000100010501830001000109 +018100010201010008018200010081000105018900010001000100010001050182000100 +810001010187000100010001000101018500010001000102018300020102840201000102 +810201010183020102018201020193010001000201000100020002000200010001020183 +0102010281020188010001000100010001060101028201020101018a0002000102010200 +020002820200018101028c0201020100010001000200020101018d020100020002000100 +010001020081000189010001000201020100010201810001030181000103018100010201 +810001010189000100020001000100010301810001820100018201000103018200010081 +000181010081000106018700010001000100010301810001050181000101018900010001 +000100010001840100010001050181000186010001000100010701810001090181000102 +018100010501810001070181000103018100010301810001040181000182010001030102 +00020183000100018401000100010501810001850100010001008100010201 +020181000102018100010701870001000100010001820100010401810001820100010401 +830001000184010001000109018300010001820100010601830001000184010001000182 +010001060181000182010001030181000101018200010081000102018200010003008201 +000103018100018201000182010001010181000104018100010501890001000100010001 +000103018900010001000100010001020181000103018100010801010001010100080187 +000100010001000102018100018201000103018100018201000101018100010101830001 +000184010001000282020100890002000100010002010288020102010002000200810001 +850102010201028602010002000200840002000201060181000101010100880100020001 +00020102010283000100018a010200010001020002000101018202010281020101018800 +010001000200020185010201020102820200018a01000100020102000200010101810001 +010183000100010301840001000100810001010181000104010102870100010001000100 +810001030187000100010001000105018700010001000100010601870001000100010001 +05018100010101830001000101018100010401870001000100010001060183000100010f +018700010001000100018601000100010001080183000100010201830001000101018100 +0182010001040181000104018100010a0183000100018201000107018100010001 +820100010301010001018300010001820100010501810001840100010001030185000100 +010001820100010701850001000100018401000100010401830001000184010001000104 +018300010001030185000100010001040183000100010101830001000103018300010001 +070181000182010001010181000184010001000101018500010001000102018300010001 +070185000100010001050185000100010001040181000101010100020183000100010501 +010086010001000100010301830001020106018b00010001000100010001000101018100 +010101010088020102000100010201020183020100018701020002000102018301020002 +890200010001000100010281020101010102890102000100010001000101018100010301 +840200020001830100020086000200020002018101008900020001020100010001010183 +0002010202028b0102010200020001000100010601810001070181000102018100010901 +810001010184000100020081000102018402000102010101830001000103018100010101 +870001000100010001050189000100010001000100010501810001820100010101810001 +010102000201830001000102018100010301850001000100018201000107018100018201 +000104018100018201000182010001020183000100010501810001040181000104018100 +010401830001000109018300010001820100018201000107018300010001820100010301 + +03018100018201000101010200050181000104018100018401000100010a018500010001 +000107018100018601000100010001060181000187010001000100010081000184010001 +00018a010001000100010001000181010083000100010101810001050102000301870001 +000100010001020181000101018500010001000181010081000104018100018301000100 +810001040103008101008100018201000102018500010001000103018100010201870001 +000100010001040193000100010001000102010001000100010001000184010001000182 +010001020181000101018100018201020083000201028202010086000200010001028102 +018801000102010001000183010001028302010201830102010283020002008400020002 +010601840001000100850001000201020202810001030181020194010001020102000100 +0102010201000201000100018401020002018501020102010201028c0001000100020002 +010201020081000182010001010101000201010083010001008300010001010182000100 +890002010201020001000102010100820200010101830001000101018100010301810001 +010189000100010001000100010501810001040181000104018100010201830001000103 +018100010101810001820100010101810001040181000105018100010101810001030101 +000101810001010181000104018100010501850001000100018601000100010001860100 +010001000184010001000104018300010001080183000100018201000107018100018101 +00 +810100810001820100010601810001080181000105018300010001860100010001000105 +018300010001840100010001040183000100018801000100010001000186010001000100 +010101830001000102018100010a01810001010181000104018500010001000182010001 +07018200010083000100010b018300010001030187000100010001000101018100010101 +830001000182010001820100010301820001008100010101810001050194000100010001 +000102010200010001000100010001030181000103018100010101010084010001000101 +018c000201000200020001000102018d010201000200020102000102010281020102018d +020002000100010002010201020189010200010001000100010401830001020182010201 +01018202010086000200020001008c000200020001020100020002008400010001028202 +000101018700010001000200018201020101018100020102830001000181010084000100 +010081000107018300010001010181000103018502000100020102018f00010200010200 +020002000100010001010183000100010101810001030181000103018700010001000100 +0105018a0001000100010001000100810001010187000100010001000104018100010101 +830001000104018100010101830001000104010100040187000100010001000186010001 +000100010301810001010181000182010001010181000105018100010301010082010001 +840100010001860100010001000105018100018401000100010401 +810001050185000100010001020181000108018100018401000100010701830001000182 +010001040183000100018401000100010101810001840100010001060181000102018200 +010081000182010001010181000188010001000100010001010181000101010100010181 +000105018900010001000100010001020101000201860001000100010081000105018300 +010001010181000101018300010001010181000105018100010101870001000100010001 +040185000100010001020183020001008600010002010201020181000101018500010001 +000184010001000182010001010181000184010001000188010200010201020002820201 +00810001850100020100018a010200010001000200020083000201028a02010001000200 +020001008100010501810001050187020002000100010282020100860002000100010081 +00010101850201020102018401020002018d010200020002000200010001020186010001 +0001000183010200010c0181000102018300010001020181000101010100840100020102 +8702010001000102018a0100010001020001000102900201020001000100010001000100 +010001010183000100010101810001030181000101018100010301810001010183000100 +018801000100010001000101018300010001860100010001000101018100010a01810001 +040183000100018201000108018100010101810001030181000104018100010101810001 +820100010201010001018100010501830001000184010001000184010001000182010001 +05018300010001 +020183000100018201000104018100018401000100010301810001050185000100010001 +820100010701830001000104018500010001000106018100018401000100010201810001 +020181000102018100018401000100010301830001000101018100010501020084010001 +000103018300010001810100020084010001000108018900010001000100010001010181 +000105018900010001000100010001830100010081000103018100010201890001000200 +020002000183010201028802000200020002000283020100010101830001000103018500 +010001000182010001010186000100010002008100018501020001000102010102870102 +000102010201010182000200890001000100010201020101018502010200020102018100 +010101840001000100850002000200028d02010200010201020001000100028b02000100 +010001000200020101010102830102000283020102010101820002008500010001000181 +010285020100010001020181000101018100010701870001000100010001940100010001 +0001000100010002000201000102000101018800020002000100020106018b0001000100 +0100010001000101018300010001020181000182010001030183000100010a0187000100 +010001000104018100010401010082010001820100010101820001008300010001040184 +000100010001000601830001000102018300010001020183000100018401000100010101 +010002018100018401000100018201000105018300010001840100010001840100010001 +82010001 +810001050181000102018300010001030183000100010301830001000105018300010001 +880100010001000100018401000100018201000103018100018401000100018401000100 +010201830001000101018100018201000182010001040185000100010001030181000102 +018100018201000103018100010101850001000100010201830001000104018500010001 +00010e018900010001000100010001070181000102010100820100018901020100010201 +0201028a020102000200010002000101018a02010200020001000100010b018300010001 +880100010001000201028a02000200010201020001008300020102840200020100850001 +000201028502000201020197010201000200020001000102000100010001000100010001 +010188020102000102010200940002000100010001020001000100010002000200018a01 +000200020002010200010101010284000201020103018700020001000100018201000101 +01810001010181000102010100020181000102018e000100010201020100010002000201 +820100028b02010001000200020102000284020100010084000201000109018900010001 +000100010001810100010001018500010001000101018700010001000100018201000107 +018300010001820100010701810001020181000101010100020185000100010001840100 +010001010181000101018100010301810001040181000184010001000102018100018201 +000101018300010001020181000102018100018201000107018300010001820100010201 + +030183000100010901810001820100010201810001030185000100010001840100010001 +820100010801810001840100010001840100010001080181000104018300010001820100 +010301830001000106018500010001000102018100010101890001000100010001000182 +01000101018100018101000100840100010001010181000108018b000100010001000100 +010001050186000100010001000200820100018301020002820200019501020100010001 +000100020102010201020002000100810001810102810201030183000100010301830001 +00010101830001000104018a000100010201020001020181010082000100830002010284 +020100010281020102018702000200010001028502010200010085000200010001050181 +0001030101028401000102008f0002000200010001000201000100010299020002010001 +000200010001000100010001000201000100020182010001010185020102010201880100 +010001000100010b01010004018500010001020187010201020002000102018602010201 +020001010101008c02010201000201000100010001820100010e01850001000100010201 +810001010181000106018900010001000100010001090181000184010001000101018100 +018601000100010001020181000101018100018201000105018100010101850001000100 +010701810001040181000104018100010301810001040181000184010001000108018100 +01 +820100010501810001010181000103018100010101810001030181000184010001000182 +010001060181000186010001000100018201000108018100018601000100010001860100 +010001000108018100010801810001010181000101018300010001020183000100010601 +870001000100010001040181000182010001010181000182010001880100010001000100 +0105018b0001000100010001000100010101860001020102000195010200020102010002 +010201000102010002000100018101028c02010201020002000200010001070181000106 +010200820100010301010082020001820100010101860200010201020102018400020002 +008b00020002000100010002000281020182010201010181000103018100010101010086 +020001000100018201020184010201020101018202000101018700020002010201028402 +010200028602010201020102810200870001000100020001810102880201000100010001 +008100010101810001010182000100810001820100010101810001020181000104018102 +00830001000185010001020002850200020002008f000200020102010200010201000100 +010101810001010185000100010001810100810001010183000100010501010084010001 +000101018500010001000108018500010001000102018300010001030185000100010001 +820100010401810001010183000100018201000101018100018201000104018100010201 +850001000100010201810001040181000186010001000100010301830001000184010001 +00010201810001820100018401000100010001 +010183000100018201000101010100840100010001030181000182010001010181000105 +018100018601000100010001820100010301810001020181000186010001000100018401 +000100010801810001860100010001000101018300010001860100010001000101018100 +010101810001010183000100010301870001000100010001070181000101018100010101 +830001000101018100010a0101008601000100010001010181000104018a000200010002 +010200010086000100010002009700010201020100020002000200010002000100010200 +020104018100010301810001010183000100010601830001000182010002820201008100 +0101018d0201000200020102000100020002810201010185020001020102850201020001 +00830001000101018c000100010001000100010200028502010201020093000200010001 +000200020100010002000100010083000200010101880001020102010002010101010282 +010201890100010001020100020101018300010001080181000183010001008300010001 +0101860001000200020101018a0002010001000201020102910201020102010200010001 +000100010002018201000101018700010001000100010401810001020186000100010001 +0081000101018700010001000100010301850001000100010c0185000100010001070185 +000100010001820100010301810001030181000101018300010001020183000100010401 +810001020183000100018401000100010501830001000182010001040181000182010001 +84010001000102010000 +060181000183010001008100010101830001000186010001000100010301810001820100 +010601810001020181000182010001010181000184010001000109018700010001000100 +018201000103018100010601850001000100010101830001000101018100010301830001 +000107018300010001070189000100010001000100018101008100018501000100010081 +000182010001820100010401810001870100010001000100930001000100020002000201 +000102010002000200810001010182020102840201020001810102810201010186020001 +00010001030181000101018a000100010001000100010081000102018102008500020001 +000101018200020083000100028802010201020100020182010201880102010001000100 +028202010085000100010001030181000102018100018701020001000102008e00010001 +02010200010001020102018401020102008f000200020001000100010002010001028402 +01020001030101028400020100018101008a000100010001000100010081000182010001 +02018300010001010182000100880001000100020002018d010001000100010001000200 +020182010001010101028d01020102000100010001000100010301850002000102010501 +8300010001810100810001040181000101018b0001000100010001000100018401000100 +010101010001018100010401010081010081000182010001060187000100010001000103 +018100010401830001000101018300010001820100018201000101018100010501830001 +00010701810001840100010001820100010401810001810100 +010181000184010001000182010001840100010001010181000107010100030183000100 +018401000100010201830001000184010001000107018700010001000100018201000104 +018100010101850001000100018101008100018a01000100010001000100010201830001 +000101010100040187000100010001000103010100840100010001060187000100010001 +0001040181000103018f0001020100010001000100010001000101018800010201020100 +020182010001860100010201020184010201000101018e00010002010200020002000100 +010086000100010001008100010401810001010181000101010100860100020002000184 +0100010001020182020102820200018a01000201000201020001008c0002000100020002 +00010001028302010001030181000101018a000100010201020001000182010201910100 +010002000201000100010002000201028102018201000281020101018400020002008e00 +0100020002010200010001000102830201020181010081000103018a0001000100010001 +000100810001030183000100018901000100010002010200010083010001028502010201 +020183010001028902000200020102000201080187000100010001020186010200020100 +010201830001000101018300010001020181000103018100010601830001000101018100 +010301850001000100018101008100010101890001000100010001000107018100010201 +830001000104018300010001020185000100010001020181000182010001020183000100 +018401000100018201000107018300010001820100010101 +810001020183000100010301810001020183000100018201000101010100030181000102 +01850001000100018201000109018300010001840100010001040181000101018100018a +010001000100010001000103018100010b01810001010183000100010201830001000105 +018100018401000100010301820001008500010001000105018100018401000100010101 +8b0002000200020002000200010701020082010200810001010191000201020102010001 +000100010002010001010101028900020002000100010201020181000107018a00010001 +00010001000100850001000100028802010001020001000101010102820001028102008a +000100020001000200010282020102850201020002018301020001010183000100010101 +8400010001008400020001028102018201020081000101018102018b0100010201000200 +020102008a00010002010200010201028202000101018102018701000100020001028202 +000284020001000109018100010401810001010183000100010201810001820102010201 +820001009000020100020002000200010001000200018501020102000285020100010001 +010181000108018b02010201000100020001000189010001000100010001008100010101 +830001000101018300010001010181000104018100018201000106010100820100010101 +810001040181000182010001020181000101018300010001020185000100010001020181 +00010201830001000182010001020183000100010a018300010001840100010001820100 +0105010000 +020183000100010201810001020101008201000102018100010701810001820100010601 +810001860100010001000182010001040181000102018700010001000100018401000100 +010801820001008100018201000188010001000100010001010181000103018300010001 +020183000100010401870001000100010001820100010401890001000100010001000101 +018a00020002000100020102010101810201880100010001000100010101880001020102 +000200018101008900010001020102010201840102000200830001000187010201020102 +000281020104018100018101008100010101010001018100010701870200020001020001 +010186000100020002000100880100020100020102018301020002940201000200020102 +000100020100010001000100010601810201830102000181010291020100010002000201 +0002000200010002008f0002000200010201000200020100010284020102000281020101 +010102810102830200010001008801000100010001000183010001008300010001840100 +010001010101008801000100020001000282020102870201020002000201020101028100 +018901020001000100010001030181000101018a00010001000100020102018101008c00 +020102010201000200010001050183000100018401000100010301810001010181000103 +018100010101830001000184010001000102018100010201830001000104018100010201 +810001030183000100010401810001850100010001008300010001020183000100018401 +00010001840100010001820100010c01810001820100010101 +810001020181000182010001840100010001050183000100018201000182010001040183 +000100018401000100010701810001020187000100010001000184010001000106018300 +010001860100010001000104018300010001030185000100010001010185000100010001 +010181000101018300010001090184000100010001008801000100010001000186010001 +0200020102018b0001000100020002000200010101810001050181000286020001000201 +008d00020102010200010001000100010101010288010001020102010001880102000200 +010001008100018201000104018100010101860001000100010082000201930100010001 +02000102010002010200010201000101018b020002000200010200010201860102000200 +010081000107018400010001008500010001000101018102008300010201860102010001 +000183010200028402010201028a02010201000100020002008500020001000289020100 +010001000200028502010201000102018700010001000100010401830001000101010100 +010185020102010201870100010001020100010001028c01000100020002010201020102 +830201000101018200010083000100010301840201020102990201020102010200010001 +000102010201020001000100010001060187000100010001000102018100018601000100 +0100010301810001050183000100018601000100010001820100018a0100010001000100 +010001010181000182010001060101000201830001000102018100010301830001000186 +01000100010001840100010001820100010501810001 +840100010001050181000185010001000100810001040181000102018100018201000107 +018500010001000186010001000100018401000100010601830001000184010001000106 +018500010001000182010001820100018401000100010401010084010001000101018100 +010901870001000100010001030101000101810001030101028100010101850201000100 +018201020183010201028102010601850001000100018201020101018402010002010301 +01028801020102010001020183010200018a010001000200020001000182010201090101 +000101830001000104018400020002018101008500020001000188010200010001000100 +82000102850200020002008700020001000200028e020102010200010001000100010001 +06018700010002000201008f000100010001000201000200020102008800020002000100 +010281020103018902010002000200010001010104028300020001070181000102010200 +860100010001000102018f000100020001000102010002000201028a0201000100020002 +000200850002000200028302010201030181000101018800010001000100020101010100 +880200010201000102018501000100010285020102010201880100010001000100010e01 +86000100010001008100010f018100010401810001020181000101018100010401830001 +000181010081000182010001050181000102018300010001070181000184010001000102 +018100018401000100010001 +030183000100018201000109018100018201000106018100018201000184010001000184 +010001000184010001000106018300010001840100010001060183000100018401000100 +010601890001000100010001000188010001000100010001010183000100010401850001 +000100010501850001000100018201000102019500010201000100010201020102010001 +02010001020087000100010001000103018a000100010002010001000101018200020001 +009102000200010001020100010002000200020082000102860201020102000105010100 +0401020002018d0001000100010201020001000102810201010183000201028302010001 +880100010002010201028102018d01020100020001000100010002010701840001000100 +890001020100020001020081000201028e01020100020002000100010001020104018400 +020002008500020102010281020101018302010002860200010002000182010001860100 +010001000182010001050184000100010093000100010002000200010001000200020001 +0201020184020102000101018e0200010001000100010001000100010101810001030187 +000201020102010282020001810100810002850200020102018a01020001000200020002 +010601810001840100010001860100010001000106010100820100010101010002018300 +010001030185000100010001010181000102018900010001000100010001840100010001 +050185000100010001070181000184010001000182010001020181000186010001000100 +01820100010001 +820100010501810001840100010001810100830001000101018100018201000182010001 +020185000100010001820100010801810001840100010001060181000186010001000100 +010601810001860100010001000101018100010101830001000184010001000101018300 +010001010185000100010001040102008401000100010101810001020181000101018100 +018201000101019302010201000102000201020002010201020102008700010001000100 +01010181000188010201000102010201010101028d010201020002000100010001000187 +01020102010201028d020102000201020001000100010002008201000101018800010001 +000100010002008d02000102000200010001000100028f02010201000201000100020002 +000100820001028302010201920102010200010001000100010001000100010084000100 +010282020102880201020100020001008800020102010200010088000100020001000201 +010192020102010002000100010001000100010001020102830102000101018400010001 +008100010101810001010183000100010101810001020185000200010001840102000201 +8401000102008200010087000102010002010201028d0001020102010001000100010001 +01018700010002010200018101028402010001028e020102010200010001000100010201 +8c010201020100010001000100010d018300010001860100010001000182010001040181 +000101018100010701870001000100010001040183000100018201000104018100018201 +00010401830001000184010001000107018100010201810001820100010501 +01018300010001820100010701020004018100010e018300010001860100010001000104 +0181000186010001000100010601810001880100010001000100018a0100010001000100 +010001010181000106018100010301810001010181000101018100010401830001000181 +0100810001020181000104018100018301020001850100010200018c0102010001000100 +010002000184010201000107018100018901000100010001000100810001830100020084 +000102010294020102010001000200020100010002000200020001010181000101018100 +010101830001000102018500010001000101018902000200010002010201840102000102 +830200020082000102820201028502010201020189010002000200010001008900010001 +000100010001010181000102018f00010002000100010002000201020002940200020001 +0201020002000100010001000200020083000200028702010201020102018b0102010001 +000200020100010101810001030181000181010081000103018100018201000101018100 +010101870201000200020002880201020100020002008b00020002000200010201000182 +010201820100010301810001010189000100010201020100018701000100010001008300 +010201010101028a00020001000201000100010301850001000100010101820001008100 +018701000100010001008100018101000100820100010401830001000188010001000100 +010001020187000100010001000102018100018201000181010081000182010001010181 +000182010001020181000104018100018401000100018201000107018100018301000100 + +060181000184010001000182010001050181000101018100018201000182010001010181 +000182010001060181000186010001000100010901830001000182010001010185000100 +01000102018100010c018b000100010001000100010001010181000101018100018c0100 +010001000100010001020102018100010101810001010101009901000201000100010001 +0201000102010201020100010201020103018200010002008401000100018c0100010001 +000102010200020192010200020001000100010001000200020002018601020002010201 +820100010101010084010001000102010100840100010001010101008502000200010087 +0001000100020102820201028402010201028702000100010001008b0001000100020001 +000102018401020100010101830001000101010100830102010285020102000102840200 +0100028902000200020102000100850001020102018201020183010002008c0002000200 +0100010002000100830002010283020102018201000183010001008d0001000100010001 +000100010001820100010101940001020100010001000201020001020001020102019101 +000102010200010001000200020002000101018300010001010181000181010285020100 +010001830102010292020001000201000100020002010200020102010501870001000100 +010001020185020102010201020181000102018100010601810001010181000107018100 +010101810001040181000101010100820100018401000100010401830001000184010001 +00010201830001000103018100010401810001840100010001820100010301 +010181000182010001050183000100018201000182010001010181000182010001010181 +000105018300010001840100010001060181000184010001000188010001000100010001 +860100010001000108018300010001840100010001010185000100010001060183000100 +010101810001900100020102010201020002000100010001010181000103018100010101 +9f0001020100010201000100010201020100010201000100010001000100010001040101 +008202010083000100010101850001020001008a00020002000102010201028502000201 +020087000201020002000101018100010201810001020183000100018801000100010001 +0201020182000102830201020182010201810102820200018e0100010002000200010002 +00020102810201020182000102810200810001010181000105018100018a010002000100 +0200010001870102010002010201850102010201028a0201000100010002000201830102 +01028b020100010002000200010002860200020001000104018100010901810001860100 +0100010001010182000100810001010181000283020001008a0001000100020102010201 +940102010002010201020001000100010001000100010101850001000102018201020087 +000100010002000292020002000200020001020100010001000100010601820001008400 +010200018501000201000101018100018301000100010003018100010401810001840100 +010001010181000101018300010001020181000106010300820100010201810001040181 +0001840100010001820100010201830001000103018100010401810001810100 +810001840100010001840100010001020181000182010001840100010001820100010201 +810001040181000106018100018401000100018201000101018300010001820100010d01 +890001000100010001000182010001070183000100018601000100010001010183000100 +010101810001950100020002000102010201020100010001000100010001008201000185 +0102000200018101008d0001020100010002000100010001010181020103018100010501 +820002018c0100020102000102010201020186010201020002018401000100018e010200 +020102010002000200010001010181000103018100010101020003018200010083000200 +028202010087000100010001000284020100010087000100020102010281020189010001 +00020002000102820200028102018a010001000100010001000182010001850102010201 +020102840002000200880001000100020001008600010001000102850201020102008500 +02000200010101010204010102850001000100018c010001000100010001000100018101 +00810001010181000102018600010001000200a100010002010201000201000100020001 +000200010001000201020001020102010001050186000100010002008b00010201000201 +020102010288020100010201020001010187000200010001000101018500010001000104 +01850001020002018a010002010002010001000103010100040181000106018100010201 +810001030181000186010001000100010101010005018100010201830001000103018100 +01040183000100018401000100010301830001000103010000 +810001050181000184010001000105018100010401810001820100010201810001010181 +000184010001000102018300010001840100010001080181000186010001000100018601 +000100010001080183000100018101008100010801830001000101018700010001000100 +018201020089000100010001000100010501010001018300010001850102010200018101 +00850002000200018d010201020102000200020001000101018600010001000100880001 +000102010002008d00010201020102000100010200028b02010001000100020002000283 +020102018701000200010001008100018601000100010001960100010001000100010201 +020001020002000100010002010201018c00020100010002000100010001810102820201 +02860201000200020081000108018f000100010002000200010002000201028802010201 +02000100018401020102010101880002000200010001028a020102010002000200020083 +000100010101810001030183000100010201810001050182000100850001000100018401 +02010201030181000289020100010002010201028f020102010002000200010002000100 +010101010082010001820100010101010202010102890100010002000100020084000200 +0201010101028501020102000101018b0001000100010001000100018701020100020100 +028802010201000102010288020002000100010001040181000102018100010101830001 +000186010001000100010401810001040181000182010001010181000105018100010201 +8300010001020181000102018100018401000100018401000100010201 +840100010001820100010501830001000182010001020102008101008100010901850001 +000100018401000100010601810001850100010001008700010001000100010901870001 +000100010001050181000188010001000100010001030181000106018702010001020102 +01840102010201010185000100010001820100010101a100020001000200020002010201 +020102000200020002010200020001000100010001010101008901020100010001000102 +890200020102000200010085000200020002830201020186010200020001008300020001 +050181000101018100010301810001040182020100810002840201000102820200018301 +02000286020001020001028102018501000100010087000100020002000183010201028b +020001000100010001000100810001010185000200020002810201840102000200830002 +000284020100010089000100010002000200028f02010200020001000100020002010201 +890102010200010201000103018100010701010082010001820100010301820002008a00 +010001000200010200028902000100010001000102830201020101010102880100020001 +000100010401860001000100010284020002010295020102010201000200020001000200 +0100010001020182010001030181000105018d0201020102010201000100020100820002 +010301820200010101810001050181000101018300010001020181000103018100018201 +000104018500010001000182010001020183000100010201810001040181000102018100 +010501810001020181000182010001 +080183000100010501830001000101018300010001010101001301840001000100810001 +0101830001000109018700010001000100010b0182000100810001020183000100018301 +000100810001810100850001000100018201020101018a00020100010001000100010101 +8400010001008100018101008200020002008201020101018f0001000102000200020002 +000201020182010001030181000101018900010002010201020100810002860201020102 +01028c020102000200020001000100018401020102018201020186010001000100010101 +020085010001000100880001000100010001008600020001000100850001000100028502 +010201000184010002000281020101010102020189000200010001000200010201870001 +000100010001860100010201000101018600020002000100880001000100010001008600 +010001000201020182000100860001000102010281020183010002008500020001000283 +020102010101810001820100010101010003018100018b0100010001000100010002018f +01020001020100020102010201020102820201028c020001000200020001000100010401 +8a0001000100010001020102830201000188010200020002000100810002870201020102 +0100018101008a000201000100010001000105018500010201020001008f010200020001 +000201000100020002010701810001010183000100010301810001010183000100018201 +000184010001000101018100010701830001000184010001000102018100018401000100 +01820100010201830001000102018100010501 +820100018401000100018201000184010001000182010001020182000100020082010001 +820100018401000100010401850001000100018601000100010001020181000104018500 +0100010001820100010a0183000100018501000100020182010001010181000104018500 +010001000103018100018601000102010001010185000100010001010183000100010501 +810001890100010201020002000182010200820002010101880200020102000100010101 +830001000101018f000100010200020001000100010201028a0200020002000100010201 +02018a020102010001000200020087000100010001000105018100010401810001010182 +0002010101820001028c0200020100010201000200010081000183010201028602010001 +0002008200020187010201000200020083000100010a0101028701020002000200010101 +0100850200010001029a0201000100020102000200020001000201020100010002000200 +010201810201860102010200010085000100010001050181000101018100010201830001 +00018b010002000200010001020002810201010188020001000200010002840201020102 +8d020102010001000100010001000102018402000200028b020100010200020001000100 +860001000102010286020102010200010401930001000100010001000100020102010201 +0200018c010201000200020002000200018401000100010a018100018201000101018500 +010001000182010001020183000100010101810001820100010201810001060181000182 +01000107018300010001840100010001030183000100010001 +0601810001070183000100010c0101000301810001010183000100010901850001000100 +01820100010801830001000186010001000100018c010201000100010001000100010301 +810001820100010301850001000100010101820001008500010201000183010200010701 +8400010001008100018601000100020001840102010201880100020102000200028e0201 +00010200010001000100010001040183000200028d020100010200010201020102010284 +02010201008c000200010001000200010002008100010301830001000182010001870100 +010001000100860001000100020081000283020100018201000101018600020001020100 +8c0001000100020001020100020086000200020001028102018201020104018100010201 +8700010002000200018a0102000200020001000102820201000100820200018101028302 +01020183010201028b020100010001000200010002880200010002000100028302010001 +060181000182010001020181000184010001000102018300020001840102000102810200 +01008f020102000100020001000200010001008700010001000102010701890001000200 +020001020199010002000100010002010001000100020002000100010201000104018100 +010601890201000100020002010001008102010101830201000101018102018701000100 +010001008700010001000100010201010008018200010081000101018100010401810001 +020183000100010201810001020181000184010001000182010001070183000100018301 +000100 +010183000100018401000100018201000182010001040181000181010081000101018300 +01000103018100010201810001030185000100010001820100010b018500010001000104 +018700010001000200010101850201020002010301010082010001860100010001000103 +018300010001030185020102000201010198020002000100010001000100010001000100 +020102010200018101008200020189010002010200010002008200020106019d00010001 +000102000200010001000100010001000200020002000100010088000200010001020102 +830201020085000100010001050181000101018300010001020183000100028202010084 +000102010084000100010291020102000100020100020001000100020002810201040101 +02820002008b000100010001000100010001010182020102810201010181000101018200 +010085000100010200820001008700010002000200028702010200010201028402000201 +028202010002008401000102018101028202010089000100010001000100018101008200 +010083000100010101820001008500010002000101018200010088000100020100010201 +830102010282020100930002000100010002000100010001000100010001810102810201 +840100020002810201010187000200020102010283020102018c01000100010001000100 +01000101018300010001010101008b010001020102000200010200010083020002010101 +820002018201000182010001060181000101018300010001020187000100010001000101 +010100030183000100018401000100010401810001020181000182010001020181000102 +01830001000182010001820100010501 +010181000107018100018201000184010001000107018300010001820100010601810001 +820100010b01850001000100018201000101018100018801000100010001020101018200 +020184010201020189010201020001000100010701850001000100010101850001000100 +018b0100020002000200010002010801010003019a000200010002000200020002000200 +0201020102010201020002008300010001050189020002000200010001008a0002010001 +0002000200028e0201020102010200010001000200018201020103018100010201810001 +84010001000101018200010081000101018700010200010001008d000100010002000102 +010002010282020102830201020101018a02000200010201000200028102010801010087 +010001000100010286020001000100018501000100010084000102010283020102018501 +020100010085000100010001870102000100010201820102018701020002000200018601 +0001000100010a0184000100010087000201020102000101018200020001008301020102 +890200020002000100010283020102018b01020102000100010001000103018500010001 +00018b0102010002000200020001008d0002000200010001020102010201010187000100 +010001000104018b0200020102000100010201008100018101028a020002000200020001 +000102018100018401000100010101810001030183000100010401010082010001090181 +000101018100018601000100010001050181000102018100010a018300010001810100 +010181000182010001840100010001050183000100018401000100010701810001820100 +018401000100010601850001000100018201000101018100018a01000100010001020102 +018201000186010201020100018c01020002000100010001020001030187000100010001 +0001030183000100010101810001010101008e0102010001020102010001000100018101 +008d00010001000100010201000102010101820201028f02010200020002000200010002 +01020103018600010001000100870002010200020102850201020002018a010201020102 +000100010082000201830102010285020102000200830001000101018100010301810001 +010183000100018c01000100020001000102010201030182000102010281010282020102 +8b0200010001000200020001028302010201840102010200890001000100010001000103 +018102010201010201018100010101810001870100010002000200850002000100028102 +010101010282010201880102000100010001008500010002000201028801020100010001 +000101018800010001000100010081000101018100010201830002000101018300020102 +8402010001028402000200028e02010201020001000200020002000107018b0001000100 +010002010001008400010001028102008400010201028402010201028802000100020001 +000107018100018101008100028502000201000101018200010083000100018201000181 +010281020101018300010001070101000101850001000100010101810001830100020102 +010100840100010001820100010101810001050181000102018300010001840100010001 +020183000100010101850001000100010401 +810001070181000184010001000103018300010001820100018801000100010001000101 +018100010101850001000100018201000101018100018601000100010001040183000102 +01020181000183010200018e010001000200020002000102010201840102010001050181 +000186010001000100010101830001000181010083000102008900010201000100010201 +010181000101018300010001030186000100010001008600020100010001010182020102 +8b0201020002000200010001008600010001000100880001000201020002008b00020100 +010001000200020183010001008a00020001000100020002010301860001000100010001 +0084010001000101018300010001020182000100840001000100850001000100028b0201 +0201000201000201020101018402010201028a0200010001020100010201060183000100 +018f01000100010001020100010001000100810001820102008100018201000101010102 +850100010002008800010002000200020102018102018101028402000200028102000100 +0101810201820100010a018100018401000100028402010001008b000102000201000200 +010201830102010088000100010001000201010101028801000100010001000102018402 +000201029402010201000100020002010001000200010002000101018102010401870001 +000100010001020101028c00020001000201000201020102810201810102840200020001 +860100010001000101018100018201000103018100010401850001000102018b01000200 +0201020100010001840100010001020183000100010a0181000102018500010001000182 +010001040181000182010001 +810001820100018401000100010201810001840100010001080101000101810001060181 +000182010001860100010001000104018100010101860200010001020190010001000100 +0200020001020002010201020181020186010001000100010501010002018d0001000100 +010001000100010001890100020102010001000183010001008100010201810001010181 +000101018200010286020100010200019401020100010001000100010002000200020001 +00010401810001860102010200010083000100028c020002010001000200020002018501 +02010201028b020100010002000200010001030101008201000101018300010001010101 +008201000101010100020184020001000101018202010281020101018a00020002000100 +020002008400010201028d02010200010200010001000100010201810001030182020100 +8100018601000100010001820100018101008100018e0100020002000100010002010001 +0282020102840201000100850001000102018101028e0201020001000100020001000100 +010101820001008300010001010101008c01000200010001000100020002830200020082 +000200850002000200028302010201010189000200010001000100010301830001000183 +01000201830100010087000201020002010001008e020002000100010001000200010001 +08018c000102010200010201020102008300020100870001000200020001820102010301 +830001000182010001010183000100010101810001840100010001860102000102010283 +020100010101850200020102010101810001860100010001000186010001000100010f01 +810001820100010401 +0201810001820100018401000100010a0183000100018401000100018401000100018201 +00010201810001030181000104018a000102010200010001000187010001000100020102 +018302010201910100010200020001000100010001000200018301000100810001840100 +0100010901850001000100028202000101018d0201020100010001000100010001020101 +008301000100830002000283020102008a00010001000100010201028302010201880100 +010001000100018501000201020184010200020186010001020002018c01020102010200 +020001000100810001010101028400020002008300010001030183000100010301840001 +000100980001000102000100010002010002000200010001000201020181010281020183 +010201028902000200010002000201820100010d01850001000201008100028102010201 +81000101018100018201020184010201020183010201028c020001020002000200010201 +028102010101880002000200010201008100010c01810001010183000100018201020101 +01820002018801020002010002010082000100820002018e010201000200020002000100 +0102010301820001008b0001000100020102010201028a02010200010001020002010201 +820201028902010200020001000100010082010001820100018401000102010101850001 +000102018401020100020102890102010201000100010002000101010001018300010001 +0101830001000102018f0001000201020102010001000100010283020100018401020102 +018201000106018100018601000100010001840100010001820100010701810001820100 +01 +820100010a01810001840100010001820100010101810001820100010401810001020101 +008201000101018100010201850002000200018401000100010201830201020102019002 +010002000200010001000102000100010201840201020001060101000301890001000100 +010001000104018100028902010001000100010201070181000105018602010201020102 +91020102010201020102010001000100010001070101008a020102000200010201000181 +0100820002008a00010001000201020002008c0002000200010002000201020103018300 +010001010185000100010001010181000102018802010001020001020182010201810102 +810201810102900200010002000200010001000200010201010186020102000200018901 +000100010001000100860001000102010282020002010282000100820002018301000100 +02008b010001000100020002010001850102010200010201810200830001000201029000 +010201020001000100010001000100010101820001008500010001000191010001000100 +020100010002010002010001980102010201020001000200010002000102010201000100 +01008300010001030101028100018a010200010200010001020101010100890100020002 +0002000201070184000100010086000102010200028702000201020002008e0002010201 +00020002000200010001080181000102018300010001010181000101019c000201000100 +010001020102000201000100010001000102010200020104018100010401810001860100 +0100010001840100010001820100010501 +030181000184010001000182010001040181000184010001000107018100010201810001 +04018e000100020100020001020102010201010196020002010001000200020001020002 +000100010201020102018100018c01020001000201020100010001820100018801000100 +010001000101018500010001000101018400020102018101029002010201000100010001 +0001000100010001008b0100010001000100010200018301000200870002000102010201 +010189000100010001000100010301870200020102000200820002018201020087000100 +010002000284020102000283020102010101010282000200840001000100880001020001 +000100010101810001010101008b01000100010002010002000182010002810200850002 +010200028102018401020100010101010089020001000100010201008100010b01050201 +008301000200860001000100010083000100010201010289010001000200020100020102 +820001008100010201830201020183010201008500010001000101018100010501810001 +820100018501000100010283020001008500010002010284020002000287020102000102 +010284020002010288020100010001000100810001030187000100020002010289020102 +000100010002008600010001000201010101028a010201000100010001000106018d0201 +0001000102010200010201008b0001000100010201020102010201840001000100810001 +030183000100010201870001000100010201840100010200870002010002000102010283 +010201028602000100010001840100020001020181000105018100010401830001000184 +01000100018301000100 +010181000104018100018401000100018201000102018100010601830001000101018300 +01000182010001010181000101018302010201820100018401000100018e010001000100 +020002000102010201020181000186010201000100018f01020002010201000100020001 +000100810001820100010601810001040181000101018100028602000100020001890102 +00010001000100010301810001010181000101018c000100010001020100010001008700 +010001000102010301930001000100010001020002000200020001020002860201020102 +010284020102000101018102000100880102010002000200010201840002000201020183 +000100010101820001008100018101028202010082000102830201000183010201028302 +010201820102008800020001020102010082000102010201018202010281020102018500 +010001000102018202010203028600010200020102880200020002000102018101028102 +018301000102010281010201028300010001020101028a00010001000100020002010501 +810001010181000101010100040101008b01000100020102010001000283020002000100 +89010200010001000200028602010001000102810201040103008b010001000200010200 +020001010187000200020100010281020188010002000100010001070185000100010001 +880102010002000200018501000100020084000102010284020001000184010001000106 +018300010001030183000100010401880001020102010200018b01020102010001000102 +00018201000101018f020102010200020100010001000100010301830001000102018100 +01050182000100 +010183000100018201000102018100010a01830001000183010001008500010001000102 +018100010301870200020001020001010189000100020001020102010201880001020001 +000100010201810001870102000200010001870100020102010201820102010501810001 +840100010001010186000100010001008100010101840200020001870102010201020001 +03018200010081000182010001910102000100010200020100010201020102018a010001 +000100010001000103018900010002010002010201860100010201020185010200020102 +840200020002840201000102880201020100020102018101008600010002010200810001 +020187000100010001000184010002000201028101028902000201000100020002010288 +000102000200010002060201018802010001020001000103018100028202010201028300 +020102010284000201020083000201028102018401000100010101810001010101028100 +018301000102020283000200028102010101010281010287020100010001000101018300 +010001010102000101830001000182010001010182000100820002010101830200010286 +0201020102000183010201028a0201000100020002000100830001000107018502010201 +020083000200028402010201008a0001020002000200010001820102018a010001000100 +010001000104018202000185010002000201810102010283010001028e02010200020002 +010001000100010085000100010001010183000100010301830001000186010002000200 +018c01020100010200020002000201010183020100028402000200018201000281020186 +0102010001000184010001000184010001000102018100010601 +01018100010a018100018401000100018601000100010001020183000100010301810001 +820100010201810201820100018401000100018201020101018100018701020001020002 +018401000102018d01000100010001000201020102018b01020002000100010001000182 +01000103018100010301810001030181000103018102018a010200020102010200020184 +01000100010101810001010186000100020002018f010001020102010001000100010001 +028d02010001000100010001000100010201880002000200020102008300020100850001 +000102018301020102840201000100840001000102840200020001020185000100020001 +020181000106018100018301000200840001000200830002010281020183010201028502 +01000201028202010201028801020100010201000102018600010001000102820201028a +020102000100020001020085000100010201850100020002008300020102810201030181 +020188010002010200010201820102008a00010001000100010002008500010001000101 +018500010001000106010100030182020102880200020102000102009000020002000102 +010002000200010001028202010281020101010100880100010001000100010101820201 +028102018601000200010001880102000200010001028c02010200020001000100010001 +03018f000100010200020002000100010001000100880201020002010200018201020103 +010200040183000100010201830001000101018700010201020002008500010001000101 +010102820102019401000100010001020001000201020100010001000187010002010201 +020102018100018501000100010085000100010001 +040181000184010001000184010001000182010001060184000102000182010001810100 +810001020181000102018102008100010201810001020195000100020102000102010200 +010001020100020102018d01020002000100020100020002018201020101018602000200 +020001810100810001010183000100010101830001000101018400010001008100018201 +020189010201020002000100018601000100010001020190000200020002010002010002 +000200010001008701000100020100010701820001008700020102010201028502010201 +02018a0102010002000200020002820201028d0201020100010002000100010001010188 +020100010001000100850001000100010101020201008a01000201000100010001028102 +018d010001020102000200020002000184010001000101018d0001000102010201020002 +010200860001000200010201028501000200020085000200020002810201030181020185 +0100020001008a0002000102010002000201820102010201820201028302010201090181 +000101010100030184000100010089000100020102000200028202000188010001000200 +020002810201010101028700020001000100010a01820201028202010081000282020102 +8402010201008400010201028a020002000200010001000103018500010001000101018f +000201000100010001000201020100018d01000102010201020100010002010201010082 +010001010185000100010001020185000201020001a30100010201020102010200020100 +010001000102000201020102010201000102000200010101840201020001870100010001 +02000107018100010101 +810001840100010001820100010701810001880100010001020002018201000182010001 +040181000184010001000101018102018201000184010200020187010200020001000186 +010001020102018b01000100010002000201020184010201020188010001000100010200 +810001840100010001030187000100010001000103018100010101810001020101028800 +020002000201020102018100010101810001810100810001010184020102000185010201 +02010285020102010201010183020102018a010001000100010001000189010201000200 +020001008a00020100010001000201028902010201020001000100850001020102010301 +010081010081000105018100018201000101010100820200018301020102820200028102 +010101850201020102018401020001028402000100028302010001020184000102010082 +000201830102010201028101008700020002000200018101008800020001020102000282 +02000203028600020102000102830201000101018400020001008c000200020001000100 +010001008300010001030183000100010401830001000182010001010101008402000100 +02050281000283020102018101028d02010001000200020001020102018a010001000100 +010001000185010201020102020286010001000100028a02010001020001020102018201 +0201030187000100010001000187010001020102000184010002010201028c0102000102 +010002000201020102018302010001040183000100010501810001850100020002008200 +010001008202000186010001000100010101830201020101018700010001020002018301 +02010201028a0002010001000102010201020184020001000182010001840100010001 +810001050181000103018300010001010189020002000102000100018201020101018200 +01008100010201810001020102008a010001000200010200020184010201020189010001 +000100020102018201020198010002010002000200010001000100010002000201020102 +010301810001050181000183010001008300010001010102008401020102000300840200 +010001010181000183010001009200010002000200010201000102000100020102840201 +00010083000200010501810001010101000101850201020002018f010201020100020002 +0002010002000281020101018b0002010001000200010001008300010001010101000301 +810001010182000100850001020102018201000182010201810100810002820201028302 +000200830001000105010100860100010201000181010207028401020001028b02010200 +010201000102010084000200010082000100010001018202000281020182010001010185 +000100010002020285000100010001010101028201000103018102018401000100018201 +000102010100050101028200020101018302000100840002010001880102000200010001 +02820201028302000200010086010001000100010301830001000283020102008a000200 +020002000102010283020002000100830102010083000100010801810001810102950201 +02000201020002000102000200010001020102010201830001020104018b000100010001 +000100010001010181000186010201020100018901000200020100010201010188020001 +000100020102810201810102990201000200020002010001020102010200020100020100 +0100010901 +8201000184010001000102018a0002000201000200010201820102018201000186010201 +000100010501830001000184010001000184010201020187010200020001000184010001 +00019901020102010001000200020002000102000200010001000102018d010201020100 +0100020002000100820002018c0100010001000100010001000103018100018101020102 +8200010281020181010285020001000100030002018400010002008d0001000102000102 +010200020002830201020101018802000200010001000101018100018401000102008400 +020102008700020102010200028502010001000101018900020001000201020102820200 +010b01830001000105018700010001000100018701000201020100028202010281020189 +010001020001000200010101010084010002000284020102010283020100018401020001 +008200010283020002018301020002830200010084000102010088000102010002010201 +030190020100010001000100020100020002000101018100028102018401020100010501 +81000188010201000100010001830100010084000200010286020001000201028b020100 +010002000200010001840102010200830001000281020105018900010001000100020002 +820201028e0201020002000102000200010201028402010201028a020100010001000100 +010001000301920201020102010002010001020002000100010001000101820002010201 +81000102018100010201810001020186000100010001029c020102000102010201000102 +010201020002000201000100010001000189010002000200020100010101900201020002 +0100010002010001020102018201000185010001000100810001 +840100010001820100018201000103018202000102018400010200018801020100020002 +000181010081000101018100010201810001820100018501000102000101018202010294 +020100010002010001000100020002000100010201910100010201020100020002010001 +000102010201850200010200028202000184010001000103018600010001000100840001 +020002890201000100010001020107010200020187000100020001000290020002010201 +020002000200020001020104018800010001000200020085000200020001010183020100 +010101830002010288020002000102010201830102010281020186010001000100018201 +000182010001010101008501000100010083000100010201830001000182010200820001 +028f020001000102000100010001000100028102018101028a0200020102010201020102 +810201830100010082000201020188000100010001000100840002000100840001000102 +840200020102860201020001020103018202010086000200010001028702010002000100 +010101810001010101008501000102000182010001820100010301010088020001000100 +010002810200810001830102010282020102870200020001020102890201020100010001 +000106010102820102008600020002000100010001018202010288020002000200010001 +0a0181000101018102008e00020002000100020001020100010285020102000200850001 +000100010501830001000101018100010401870001000100010201820100028102018f01 +000100020100020001020102010201820100028602000100010002890201020001000102 +000184010201020101018402000100018401000100010301810001 +8201020185010201000201880102010002000102018a0100010002010001000201820102 +01820102010c0181000181010286020102000100018b0100010001000100020002018401 +020102019d01020102010200010201000100020102010201000100020002000200020181 +010084000200020182010001030181000101018600010001000100810002860200010201 +000101018b02010001000100010001000101018100018801020102010200020092000200 +0100020102000201020001000100010081000104018a0201020102010002010200850002 +010201028102010101840201020102010289010201020001000200010b01810001040181 +000104018200010081000201020201830001000201028100010301010285010002000200 +840002000102820201028302010201040182000100850001000100010101810001010181 +000102018100010101020281000181010282020102810201010101028600020001000100 +810001030101028200010082000201840100010001020181020101018402010001008a00 +010001000100010002010201020281000201028c00020002000100010002010201810102 +830201020103018d00010001000100010001000102018301020102830201020182010200 +970002000200020001000102010201000100010001000100010301860201000102010202 +028101028a02000201020102000102018401020100018201020101010100820100010101 +810001010181000182010001010101028401000102009600010001020002000201020102 +010002000102000200019b01020102010201020001000200020100010001020002000102 +010201060181000101010000 +0101830001000101018c02000102000200010200010001820102018d0102010002000201 +0002000100010201810001820100018201000102018b020002000100010002010001aa01 +020001020102000200010001020001000102010002000201000100010002010201020001 +000100010001820100018101008100010101870001000100010001070102028801000100 +010201000105018200010001000201850002010200020102900002010002000200020102 +000200010201040184000100010001008302000100870002000201020102830201020183 +0102000287020002000102010202028a0102010001000100010001030181000101018300 +01000105018b000200020002010002000201020181020102010100860200020001020181 +010283020102010101830201020101018302010201020182020102010284010001000101 +018100010101810001020101008401020100010101840201020102820201028302010201 +050187000100020002000184010201000101010200810100810001010181020081000106 +010100970100010001000100010201000201020001000100020102008900020002000100 +0100010901820201028b020102010200010001000200850002000200028d020102010201 +00020001000100010501810001010188020100010200010001820102008c000102000200 +010001000100010101820002010301810001010181000101018e00010001000100010001 +020002010283020002018101028a02010201000100010200018d01020102010201000100 +0102000186010001020102018b0102010002010001000200018401000100018201000104 +010000 +01018a020100020100010001020103018102018701000100020002010101830201020182 +0102018201000182010001010181000182010001020186000201020100018b0102010002 +000102010200010301810201860100010001000196010201020100010002000100020002 +010200010001020003000201830001000101018100010101890001000200010001000283 +020100028102018101028102010101830001000101018a00010001000100010001028402 +000200018401020102018501020002000186010200010001008500010001000101018202 +0102820200018101028102008c0002010001000100020102010288020001000100010001 +840100020102830201000103018500010001000101010100850100010001008700020102 +010001020102010186000100010001008100010201010281010283020001008600020001 +000201820100010101810201850100010001020102810001050183000100018401000100 +010101860200010001020104018a02010001000100010002008100010201810201020186 +02000100010001060101000101820201008700010001000100018f010001020100010201 +00020002000201810102830201020083000200028402010201028102018d010001000100 +010001000102010281020101010102880102000102010002010101890200010001000201 +020104018500010001000102018102018101028a02010201000200020100018301020102 +8102018201020101018100010301820200010101890001000100010001000101018f0002 +010001020002010201020002000285020001000102820201028402000200018401000200 +018201020181010290020100020100010001020002010201020186010201000100010801 + +010182000201820102018501020001000187010001000201020101018902000100010200 +010001850100010001008300010001040101000201830201000186010200020102010101 +96000200010001020001000102010001000201000100020101018c020102000100010001 +020102018201020103018100010401810001010101008202000183010200028202010281 +020188010002000201020001030186000100010001008100018601000100010201820102 +018d01000201000200020002000102010601840001000100010083020102008200020001 +008501020100010283020002008300020102840201020102870201000200020001010182 +000100830001000183010002018101008100010401840001000200850001000102010401 +810201820102008700020001000100010801810001830102000101018102010101830201 +000101018500010001000101018200010081000101010100010204018100018201020102 +0181020183010201028b0201020100010001000200028102010401840001000100810001 +8601020001000201010181000102018502010001000183010200028e0200010200010002 +000100010201020202880100020002000100010501920001020001020100020102000102 +010002010086000200010001028a02000200010001000100010101810001010181000186 +010201020001008400020102000100850102010002019001000200010001000102010002 +010200010301810001040181000198010200020102010002010001000100010200020102 +00020001860100010001020101018f020002010001000100010200020102010101860001 +020001000182010001020101000301810001 +83000200018601000200010201010183020102018b010002000201000200010001870100 +010002000201010181000182010001840100010001010103000102890100020002000102 +000285020102010201860100010001000194010201020100010002000200010001020102 +010201810102890200010001000100020181010089000200010001000100018101028302 +000201010190020002010001020002000200020001000103018100010201840002010200 +010081010201028200020104018c02010201020001000100010001020186020100020002 +01820100028802010200010201020183010201028a020002000100010001000283020102 +0184010001000101018300010001830102000102018d0001000100020100010001020002 +810201840100020002810200010082010201010186000100010001008300010001030181 +00018a010001000102010201000182010001020184020001000106010100850100010201 +008400020100010401840001000100870001000200010001020189000100010001000100 +018201000101018800020102010001000101010100880100020002000100020102020083 +010201028202010287020002000100010285020002000201880100010001000100018401 +000100018201020001008501000100020002008202010202028101028302010201010189 +00010001000100010001020181020181010201028201000101018b000200020001000102 +000201820100010101810201810100810001010183000100010201920001000100010001 +000102010001020102010283020102010101940001000100010200020102000201000100 +0100020183010201028b0201020002000201000100018201020102018100010301810001 +0201 +820102018201020182010201820100018b01000100020100020001000103018302010001 +860102010002000103018500010001000182010001880100020100020102018901020001 +0001000100018b0100010201000100020002000100840102010201910102010201020002 +00010001000100010201030181000102018b000102010201000200020002860200020002 +01028b020100010002010201020001010186000100010001008200010087000100010201 +020189010201020102010201028402000200010501820001008200010081000182010002 +0202820102018c0100020001000200020001000182010201010101020201830001000101 +018300010001880100020100020102008600010001000100810001010183000200020102 +010185000200020100840001000100810001050183000102010201830001000101010302 +810102810200820002018601000100010001010182000100830001000102018402010001 +02820200018401020100010e018400010002010701810001820100010101850002000201 +028402000100010101930201020001020002000201020100020002000100870002000100 +020002850201020100010101010003018300020102830201020196010201000201020001 +00010001000100010001000100010101810001050181000101018a000102010002000100 +020001008a01020102000102010200018501000100020186010201000100010301830001 +00010401830001020001008d010001020002000200020002010281020184010201020189 +010001000102000100028b02010200010001000201000101018302010201010183000100 +0182010001050182020102 +86000102000100018b010001000201000200010201840100010201820100018201000187 +010200010201020101018100010201810001070184020102000182010001010187000100 +010002010001008302000201020183020102019901000100010001000100020102010201 +000102010001000200018f01000100010001000100020102010201810100840001000102 +860200020100020184010001000186010001000100010101010002018102018101000200 +8b0201000100020102010201028a02000200010001000100010301010085020001000200 +840002000201020101028100018201020085000200010201010183000200028402000100 +010301810001880102000200020002010401850001000201028202000201028100010101 +820200018201000101018100010101830001000184010001000106018500020001020101 +0101008c0100010002000200010002000104010300830102010005000501820001008300 +01000105018b000201000100010001000100810001010184000201020083000100018101 +028b02000200010002010002000201020100040182020102810201010101028901020001 +000100010001840100010001010185000100020102880201000201020001000100840102 +000102830201020103018100010101010082010001020183020100018601000102010201 +8e0100010001000201020002000100018201000185010201020002870201000100020001 +030185000100010002860200020002010281020101019302010001000102000200020002 +000201020102010101970201020002000201000100010201020002000102000200010401 +82000100850001000100010001 +810001850100010002018501020100020187010200020001020182010001820102018a01 +020002010001000100018201020101018100018101008300010001020181000190010200 +020001000100010002010201020184010201020002008602000200010201010182020102 +8e0201000100010001020100020102010301020082010201900102010200010002000200 +020102000201820102018601020102010201070183000100019001000100020002010201 +020102010200018101008600010002000201840100010001010101008501000100010281 +020182010002820200010101840001000102830200020189010201020001000100018201 +000101018400010001008700010001020002018101028102008700010001000201028302 +000200810002010202010202020183000100018201000103018300010201050101028200 +010287020002000102010282020102830201020185010002010200810001010182000100 +840001000100850001020102018201020109018500010001000182010201030181000104 +018400010200010101010282000200850002000200020102020087020002000102010091 +000100020001000100020002000100010201020181000101018500010002000284020102 +000101018502000200010001008202010284020102010083000102018101008100010801 +820201028802000200020102000101010102890002000102010001000101018100010101 +8e0201020002010200020002000100010201030201008a02000200010002010002018101 +028102010201940200010001020001000200020002010201020102018101028102008a00 +020002000201000100018401000100010201810001840102000201 +8201020102018100018201000185010200010201820100018a0100010002010002000201 +820102018801000102000100020184010001000102010200020182000201860102010201 +020102018b0002000200020001020102018a010201000100010001000186010201020102 +0101018700020002000200028102018101008100018a0100020002000100010001010184 +000100010285020002010201010185020102010201020101000201810001030101008201 +0002010281000201028101020102840100010002820200010301820001008a0001000100 +010002000201820100018101028302010201810102810201810102010202018102010201 +010082010201010181020181010001000101860002000100010086000100010001008600 +020001020002850201000100010101030081010081000101018300010001010183020102 +018701000100020001028602010002000200870002000100010002010284010200020087 +000200010200020104010300840100010001040188000100010001000100860002000100 +010281020181010084000100010082000100010085020102000100890002000200010002 +000202028401020002010601820201028302010201010185020001000100830001000102 +018302010201010182020002940201020102010002010001000100020001000102018201 +000186010001000100010101810200820001028902010002000100020100810002870201 +02010201020184010200010084000102000101018f000201020102010001000200020002 +0081000281020184010002000283020102018b0100020002000201000100028202010203 +028101028702000100010002008300020001840102010201040181000182010001050185 +000201000102 +85010001000201820102018a010200020100010001020103018a00010002000102000200 +018701020100010002000100010284010001000103018100018b01020100010001000200 +020102018102018d01000102000100010001020102018f01020100010001000200020002 +010201840100010201840100020001010101029000010201020100010001020102010001 +028b02010201020002000201020101018100010201020089010001000102010201008800 +01020100010201028b020100010002000200010001060188000100010002000200810002 +01028c010200020001000100010001008500020001000102018400010001028102000100 +010182020001010182000200860002000100020084000200020083000100010101010001 +020401010082020001010181020103018702000200010002008100028302010201010182 +020102820201028602000100020001010185020102000100020084010002000102018300 +0100010c0185000100010201880100020001000100010401860201020002000201028200 +010283020100028202010201028200020082000100850001000100018d01020001000100 +010201000200010601830001000282020102010201008102000300870201000100020002 +87020102010201000101018300020001050182020102840200020102030202008c020100 +010001000100010002018201020102019102000201020001000200010201020001000202 +028a0002010201020100010002850200010001020102820102019f010002000201000100 +010201020102010201020100010001020001000100020107018100018601020102000102 + +8e0200020100020001020001020102018201000185010001000201820102018701020001 +000100018101008400020100028302010200820002018201000182010001010183020102 +018401020102018b0102000200020001000102018c010001020100010001000201008400 +020102010101900002010200010001020102010200010001010185000200010200810002 +810201880102000200020002008100028102018501000201020102018500010001000102 +010100010186020001000102010201890002000100010002010283020102018a01000100 +010001000100010201830001020102018500010200020102010102860102010201020186 +010201000100010201810002810201810100880001000200010001008100028502010002 +000283020002008100028402010001008400020002008100010101810201050101028201 +000285020100020102890200020001000200020086000200020002018501020100020083 +000200010101860200020001020182010200010001020101810001010181000104018100 +010201830002000106018800010001000102010086000100020001008300010002010201 +008502000200020081000288020002000100010001030183020100010201870001000100 +010001010182000102810201010185000201020102810200850001000201028402010001 +028102018a01000100010001000100010301890002000201020001020087000100020102 +00018401000100010301820001008b000201000102010001000102810201860100020002 +010281020002008402000100028302010201010182020102840200010001860100020001 +000101018d02010200020002010001000102018601020102010201850102000100010701 +820200028302010200 +8102019001020001020002000102000100010002018d0102000102000100010001000201 +8c0102010002010200010200010083000100010501830001000297020100010002000201 +020001020102000100010201000102870201020102010001950102000200020002000102 +010001000102010201020184010001000187010001020100010085000200020102830201 +000181010286020102010201028102000100020101028200010001008501000102010281 +020001000202810102850200020102008500010001000109018102008500020100010086 +000200010201028d020002000100010001000200010201028c0102010001000102010001 +000101018b00010001020102010200010284020100020182010002010281000102018300 +010201830100010082000102820201020102810102870201020001000102810200820002 +01810102820201028102018b010002000200010002010200840002000200830002000101 +018600020002000100840001000102810201020181020102018102010401810001030182 +000100830001000192010200010001020001020102000100020002008300020002810200 +0200010181000181010202020101820201028102010b0185000102010001840100020100 +930001000102010002010200010001000200010001040181020182010001020192020002 +010200010001000201020102000102010401830001020181010282020102930200010002 +000200020001000200020001020002910200010201000102000200010002000100010101 +920200020102010201000100010200010002010201028401020100028702000201020100 +010701830001000186010200020100010001 +850102000102010201810201840100010001010101008401020102018301020001010182 +000200850001000200010101810201020187000100010001000103018200020182010201 +880100020001020102008200020101018300010001a00102010002000200020002000200 +0102010201020102000201020001000100010001008102010101820001028d0201020001 +020001000201020002830201020101018500010201020093000100020001000102010001 +000100010002010201028b0100010201000201020102008e000100010001000102010001 +000100810001010181000282020001840100020001810102010283010200028402010200 +010101820200010201810001030101000101840001000100870002000100020002840200 +020002010283010001008400020002018301020102820201028202010281020187010201 +0002000102840201020002870200010002000200810002010201018a0001000100010200 +010002010201008901000100020002010002870201020100020002030206018200020101 +018100010101840200010001020181020186010200010001008500010002000102010102 +810002830200020181010283020102018401020002009500020002000200010001000100 +0100010001000100020102810102820201008c0001000200020002000102010285020102 +0102018a0100010001000100010001020187020102000102010288020002000100010201 +0101820002010401810001010186020002000200018a010201020002000102010201028b +000201020100010002010201010199020100010001020002000200010001020102000200 +020102010087000100020002000184010001020186010001000100010101810001020188 +000200010200010200 +930201020100010200010001000102010201000201820100018a01000100020100020102 +018201020187010201020001000182010001050183000100010201970200020002000102 +010200010001020100010002000200018701000201020102019701020100010200010002 +000102010001020100010201000201028b01000100010001000200020086000201020002 +018101028502000102010086000200020102010401830002000198010201000100010200 +010201000100010001000100020102010a01020089010002000100010002010101010281 +00020102820002008600020102010001020101008a010001000100020001020101018400 +010001008400020001008100018101020302010081010282020102880201020001000201 +028202010284020102010088000200020002000100810002030201010100840100020002 +830201000201028100020102820100018301000102030283010002000200010182020102 +010202018102010401810201050181000184010001000184010200020084000100020083 +000100018201020085000200020102830201000187010002010002000282020102870200 +0201020102010d0181000181010088000102000100020002820201028a02000200020001 +000100010101810001070102028701000100020002018301000100010002028201020184 +01000102018401020100028102018a010200020001000100010297020002000200020100 +010201020102000100020100020001910102010201020102010200010002000100018301 +000201860100020102010283020102010401810001040181000101018100018601020102 +000201 +880201000201020102018501020100020085000200010001820102018401020102010101 +8d0002010002000102000102010001840100010200010084010002010085000102010201 +940100010201000200020102010002010201020102018d01020102000200010001000102 +01010101028c01000100010001000102010001810100830002010001008402000200018c +01000102010001000100020002830201020101018d000100010001000100010201020088 +000200010001000102010203018402010201028702000100010001008800010001000200 +02008300010201810102840201020002830200020001008102008a000100010001000200 +020106018102010401870002010001000100860002000200010081000201020100020282 +000100810002010201018202010283020102018101028202010281020101018200010204 +028f010002000200010200020102000100020102820001008400010001008c0001000200 +010001000100010281020181010084000200010081000283020102010201810001010185 +000100010001860100010001000184010201020082000102030284010200020081000202 +02830002000101010100820100018101028202010201028b000200020001020100010001 +01018600010001000201030181000101018102018b010200010001000200010001820102 +0182010001010185000100010001010183020102018e0102000200020001000200020001 +0282020001010183000102018201020101018800010001020002010202028a0001000200 +02010201000186010001000102010101820200019b010200020001000102000201020102 +010201020102000100020002008b00010001020102000100020102018100010401810001 +85010001000100810002 +820100018901020002000200010201840102010201850102000100018701000100010002 +018a0102000102000100010001820102010101010001018100018f010200020100020002 +010201000200018401020102018f01020102000102000200020002010201930102010001 +020001000100010201020102010201010183000200010101810001010190020102000200 +010001000201020100010202028700010201000102010601020289010001020001000100 +028a02010200010201000100010801810001020185020002000200830002000281020085 +000201020102810200820002008200010001008601000100020001050181000101018a00 +010001000102010200020202810102010283000200020202830102000202028700020001 +000201028502010200010281020081000282020102830200010089000100020001000100 +028202000281020186010200020001028202010281020087000100020002000281020183 +010001008100020102020186020102000102018201020101018500010001000104018102 +010101840201000201840102000100830002000282020102010201008101028102018201 +000107018100028302000200840002010201030181000182010001010185020102010001 +8f0100010001000200010002000201020183010201028602000100010001050185020100 +010200860002000100010284020002010201028300010001080101008301020102010287 +000200020102010202029a00020102010201020102010001000201020002010001000100 +010285020100010002920200010002010201020102010201020002000188010001000100 +01020101018100018c01000102000200020102000200 +860201020002000182010201880102000102000100018201020183010200028302000200 +8a0002000102010201000201940100010001000100010001000100010201020001020202 +01018c020102010002000200020100018d01020102000200010001020002009900020102 +010201000102010001000100010002000200010001009400010001000100010001020100 +010001000201000201020101010081020089000100010001000100020102010185000201 +020002020285010201020001030181000101018500020001000185010001000102850201 +020001028802010001020100020001000601820001008400020102010301010081020103 +018902000100010001000100830002000205028100020102830001020001008202010283 +020102018101028202000201028100010101010282010002850201000201020102810102 +8e0201000100020001000102010001008a00020002010001000201028602010001000200 +820002000300810100830001020102010102810002810201030181000101018102018501 +000100010085000200020102820200028402010002000100010284000201000186010001 +0201000105018c0201020001000100010001000102018202010287020001000100020181 +010281020001008201000184010200010082000200820002010301830001000182010002 +020289000102000102010002000100850100010001028102010601810200890001020100 +01020102018401020102000100940201020002000200010201000102000200020102018e +01020102010201020002010001020183010002018401000200018a010001000102010201 +020104018100018201000102018500020002010001008302010201 +840200010201010186020002000102018201000181010001008301000201820102019401 +020102000102000100010001000201000100020188010001000100010001850100010201 +02010284010001000185010200020100a200010200020001020100010200020001000102 +010001000100010001000200020002010501820200019401000200010201020100010201 +020100010002010201028200010281020185010002000200860001000200010082000100 +860002000201000281020183010001008300010001840102000201040181000102010102 +820002008900020001000102010201020187000100010001000105018200020104018100 +0103018a0201000100010201020102820201008900010002000201000200010001028500 +02000200020302880100010002010200028202000202028c010200020001000100010001 +028202010287020102000200020084000200010088000200010001000102020281010282 +020102820200028102008600010002000102810201010187020100010001000106018102 +018701000201020002008600020001000100850001000200028502010001000101018202 +010283020100010101020081020181010002008101000100810102050287010002000200 +020001008401000200010101010281010289020002000100010002010201850200020100 +020102830100020082000100840001020102860200010001000189010201000201020100 +018901020002000200020002840201020002820200029702010201000102000100010001 +020100010001020001000281020181010297020002010200020100010201020002010200 +02010001000185010001000201040184000201020184010200020082000100 +820102018801000200010201000184010001020182010201920102010002000100010200 +010201000201000182010201840102010201810102810201030185000100010201830102 +010281020186010200020002019801020100010200010001000102010201020001000100 +01000104018302000201010187000100010001000102018100018c010201000100010201 +000100018401000200020102880102010001000102018401020102010101010282010001 +810102880200020100020102010201810201020182020102010283000100010201810001 +020101008101008400010200028102018401000100010201840001000100870001000102 +010201010181000102018100018101028102010101840201000100830001000181010202 +028200020083000200020102810002010203010402850100010002008a00020002000200 +010002018101028202010281020189010200010002000200020102810002020201008302 +000201850102010001008400020002000300820200028302010001830102010201028100 +010401810001050189020100010200020001028402010201020102810100810002010283 +000100010901010004018100010301810001010102008802010002000201020185010002 +000201030187000100010002000101018202010286020102000100028502010002010284 +020002010281020082000102810200880001020001000100010101900002000200020002 +000200010001020102820200020402840100010002010285000201020102960201020002 +000201000102010001000102000200020102810201890100020102010001000186010001 +0001020183010200018301020002890201020100010001000102010000 +010189000102010201000102018b01000100020100020001000184010201000183010201 +0283020102018f0102000201000200010001020001000101018500010001000184010002 +00028b020002000100010200020001010185020102010200860001000201020102018902 +000200020002000201830102000181010281020185010200010001010194000100010001 +0002000201020102000102000201028f0200020001020102010002000200010082000100 +020081020083000201008100028202010002008101000300810102810201050181000103 +018200010201028300010201010101008401000100010401810001820100018301020102 +81020109018b000100010201020002000100810002010281000202028101008100010101 +010281010282020102860200020002000282020102810200820002018101020302860001 +000100020081000289020100020102000100028802000200020002000287020001000200 +020183010201028302010200810002890200020002000100010283020102010301010084 +010001000101018902010200020001020002890201000200020002010084000201000101 +018100010201010205018a00010001000100010001000100030183020102008900020001 +000102000100010001010102060193000100020001000102010201000201020001020081 +000201028201020186010001020002018201000101018102018b01020102010201020001 +020101018500020002000283020002018401020102010201880201000100010200018401 +020102019a01020001000201000100010201000100010200020102010201020182010201 +83010200010401820200018d0100010002010001000100010201 +83020102018f010200020100010201000200010200010101810201820100018401020100 +018701000100020002018a01020001020102000100018201020181010088000102010201 +0002018401020102018d01020100020100010001000102018c0102010201000100010002 +0001950102010201020100010002000200020001000201020104018102018d0102010201 +020002000100020102820200020102860102010001000101018702010201000100018101 +008700020102010001028302000102830201020101018602010001020102810201060102 +000101010082020002010204018900010002000100010002830200020086000200010002 +010301810001820100010101860001000100010281020182010200810002040285000100 +020002010281010203028101020102810002010201008701000200010002008400020102 +010201010084010001000201028400020002008600010001020002880201020102010002 +000200860200020002010085000102010001810102820201028102010a01870001020001 +02010283020102000100030283000200020402820100010801850001000100010a010300 +0102880102010200010002008200020101018302000100010084010001000103018e0001 +000100010002010200020002000100870200020001000102880201020002000100018201 +020101018d02010001020100020002000201028202010001008c02000201000200010200 +0100010101010201018b0200010001000102000200018101028102018101029002000201 +020100010001000102000100018201020104010102010182000200010089010201020002 +01020100 +880201000201000102018401020002018c01020102000102000100010201820100018301 +020001020188020002000200010001020183020100010201810201880100010001000201 +028502010200020188010201020100010001860100010001000102018b02010200020002 +0100010001010101028c010200020001000200020002000100830200010003008e010002 +0102010200020001020002008b0001000100010001000100010401810001820102000100 +880102000100020100018401020100010201810001040101008401000100018101008100 +018a01000200020002000100010201820001028302010200830002000101010102080186 +000100010001028102008400020001028202010205028100018101028202010282020102 +020203008502000200010001000101840201020100870001000100010001020104028401 +000200020402030086010002000200028102010201860002000200020086000200010201 +028202010201020501850001000100018201020181010084000102010203028100020102 +820001020202020081010281020102018102000100050186000100010001008800010201 +00010002018f010002000100020002000102010200018501020102010281020101018300 +020001010181020101018502010002000205028900010201000200020001810102830201 +000184010001000283020002018c01020102000100020001000102020281000286020102 +000201028a02010200020002000201028202010201028201020101018e00010001020002 +00020102010201028702010001000100010401850201020001028f020102010201020102 +01020100020001 +8401000102018e01020002000102010201020001020102018100018f0100010002000102 +00020001020102018b0102010200010001000200018101008a0002000102010200010201 +810102010201018500010001000184010201020103018b00020002000200020102010293 +020102000200020002000201020102010201020102018300020001010181020101018602 +010001000102850200020002010501830201020103018102018201000101018102018701 +020002010002010801810001050183000100018101008100010101810200010083020002 +018201000182010200810002850201000200010101830200020001008102010201830002 +00018d010201000100010201020102000183010201028402000200020202830001000287 +020001000200010283020102018501020002000286020002000102010401810001010101 +008b0100010001020100020102008300020002030281010283020102018101008f000200 +010001000200010001000201028302010200850001000100028102010601010001018500 +020100020083000200020402810002020281010201028801020100020102000181010001 +008201000101018100010301810001030181000181010284020002010201020201810201 +01018a000100020001000200010289020002000102010201020302020003028900010001 +000100010001970102000100010200010200010201000100020002010201020202820002 +010201820200018501020001000182010002900201020100010200010002000200020102 +910201020102010201000102000200020002018201020189010001000102010201008700 +02010201000100860002010201000182010201 +01018a02000200010201020102018c010001020102000100010002018401020002018201 +0201890100010200010001000187010001000200020101018100018c0102010002010001 +000100010281020182010201850102000200018601000100020002010282010201820100 +028f020001000100020102010200020102018c0100010002010002000100010290020100 +010200020002000201000100010282020002810200880002000200010001028a02000100 +010002010201008400010002008100010f01820001000100810100010081010081000182 +0100028202000203028d0102000102000200010002000200810001870102000102010201 +010181020102018800020001020100010087000200020002000202028100020102010101 +028101020202840100010200010083020001028202000203028301000100830001000101 +018100018d01020100020002000100020002008400010002000200880100020001000200 +018301000102070286000100020002008200020184010201020186010001000100018401 +020002008100020102810102020282000200810002010281000201028101028102018101 +0081000284020102000201028b0002000100010001000100018701000100010002000100 +840200020002830201000109018102010201810001820102018101028202010201028500 +020002000201020200840100020001010193020100010201020102010200020100010002 +0002010286000100010200028b0201020002000100010201029202000201020100010001 +000201000200010201010186020002000200028502000100010285020102010201860100 +01000102010101880002010201000200028202010085000100010001010182020002 +910200010200020102000102010201020100018401020100018601020100020001860100 +020001000184010001000184010201000186010200010200010201830001020182010200 +820002018801020002010001000192010201020102010002000200020002010002010101 +8f0200020102000200020102000100020182010200840001020002810201040183020002 +008800010200020102010284020002010285020100020001010101028201020101018302 +000102030282010002830200020102018100010801810002820201008100018101008100 +018201000281020083000200028102008600020102000102810201010182000200820002 +000300010201018200020104018a00020001000102010201020402810002020282000102 +810200850001020100028b02010200010201020100020087000100010001020102018600 +01000100010082000102810201020106028200020002008401000100028402010200028c +020100020001000100020002018201020103018800010201000100020103018902010002 +0102010002008b0002000200020001020002008200020101010302840102000102830201 +000101018102010301820001008300010001020188020001020100020002010283000100 +0106018d0201000100010001000100020001020102028500020102000285020100010201 +01018a000100010201000201020188010201000200020102970201000100010002010002 +000201000102010002000200018301020002010201018202000183010201029202000100 +020002010001000102010201020002860200010001000101018902010002010201000102 +02028701020102010201028602010001020001 +8400020102018f010201020102010001000100020100018a010201000200010201020182 +010201020186000100020100018601020002010201010181000182010001850100010002 +01830102000201028f000102010001000100010002010201028f02010001020102000200 +020102000201840100020001010195000102000201020102000200020002010200020102 +018501020100010084000102010282020002820200010301010002010200820100018501 +020002010281020084000201020102018300010001810102830201000181010001000201 +870001000201020002010282010002010286000100020001008300020001010105020101 +810001010181000183010001008200010287020001020102010083000200028202010201 +028100020102020103028200010085000100020100830002010281020088000200020001 +020100810001080181000289020100010002000200020402810102020284010200010088 +000100020002010201870102000200010002820200020102030181020182010201030181 +020185010002000200830002010205028201000283020100020302810002810201840100 +0200018b0102000200010001000100010401830001020183010200028202010281020182 +0102018101028102010301810201040181020106018b0200020002000200010201028a02 +010200010001000100010101010202018402000200028502010001000102018202010288 +02010200020002000101018802000200020001020084000102000201028a000100010201 +02000201028102018101028b02000201000100010001020102018100010201820200028d +020002000102000200020002000186010002000200010001 +850201020102018c010201020002010201020002018401020002018a0102000102000100 +010001820100019101020102010201000201000200020001020182010001020184000200 +010082000102840201000201020101028501000201020185010200020100880002000100 +020002018a01000102010001000102008700010001020002010101910201020100010200 +010001020102000201028402010001020202810100830001000101018700010001000200 +020102840102000200820002008500020001000103010302020086020001000100010201 +020001028100020202010081020183010201028202010285020002000100840002000200 +010001028300010001030181000101018100028202010084000200010201028300020002 +850200010002008200010282020002820201008900010002000100020102820201020102 +8100010201830001000101010100010101028701020100020002008400020002008a0001 +000200020001020102830201020101018500010001020086000201020100018401000200 +010101030082010001010182020100830002010203028301000200020004028101020102 +010102028101008100018301020102830201020104018700010001000200028202000202 +028900020002000200020001810100820002010401850200010001008700020002010201 +020102880100010001000200028202010202028201020198010001020002010201020102 +0102010002010200020002000203028e0100010001020001000100010001028a02000200 +020100010001029202000201020100010001020002000201020102810201820100018401 +020100010101880001020100010200028e020102010001020102010201020102810201 +83020102018601020002010001010183000100018c010200020100010001020102018201 +02018c010001000100020100010002018701020102000100018401000100018401000100 +0101018102018101008d0002010201000200020002010200970002000200020002010200 +020001000100010001000102010101830200020101018802000100010001000281020181 +01028a020102010201020100010089000200010002000200010401810201020181000181 +010285020100010002030282000201020101020100030282000200810001830100010085 +000100020002010201000202830002000201028200020086000100020002008100028202 +010281020002008101000400880201000102010201008700020002000100020602830100 +010081000201028301020001010182020102820200028202000289020001000201020100 +010701020202018602000200020102820200020102870102010201020102810200850001 +000201028302010201020183000200028802000200010001000182010201050187020102 +010200010203028101028202010203028701000201000200028302010201820102008900 +020002000100010001820100010201820201028402010201028402000200020102010081 +010282020002850201020102010201810201050181000183010001028602000100020102 +83020100018201020101018400010200010101820200018f010201000100010002010200 +020001028402000201028c02000100020102000201000102020283000200018f01000200 +020102000200020100010002010285010201020100010001018300010001020181020185 +01000200010204028a010201020102000201000185010001000102 +9301020100010002000201020002000201020002018401020102018a0102000100010200 +010201910102010201000200010200020001020102018201020182010201810102960201 +000102000100020102000200020002000200020001990100020002000100010201020102 +010001000102010200020001010183000100010101860201000100010081000186010001 +000100028602010201020002830201020181010281020101010200840100010001010183 +000100010201860200020002000201028100028202010281020001008601000200020001 +060101028101020502010083020002008100028602010002000200850002000100018701 +0002000200020104018a0201000100010001020102820201028402010001020202010103 +028201000185010201020002010283000100028202010281020184010201020109010102 +810102820201008500020102010283020002008300020102850201020102018101028202 +01020102820001008c000100020001000200020102010401850001000100018601020001 +020002830201020181010287020002000200010201020101820200020102810100010083 +020002008200020102018200010001008101008900010002000200010200810002030284 +000200010082000100010087010002010201020181010281020104018500020002010201 +028300020002830201000104018102010201830002010089000102010002010201028902 +010001000200020002890200020002010200020186010201020002018201000283020102 +010101920200020001000102000201020002000201000201028300010201020181000182 +01020181010201028101029502000100010001020100020100020001020102010201 +87020002000201020184010201020101018c020102010200020001000102018201020186 +010001000200018501000201020198010200010201020102000100010001020100010001 +02010001880102010200020102018a01000100010201020102019f010201000100010001 +0001020102010200010001020100020001000100010001040181000102018102018d0102 +000100010001020002000102010281000102018800020001000100020101018202010083 +000200020302840002010002810200830002010281020102018400010001000200820200 +020102010083020001020202820002008400020001028102010201010285010001000200 +020088010001000102010201830102000287020102000102010203028100020102810102 +84020002010286020102000201020302810001030104020b010102810102840201020102 +010281000282020102020282010201010182020102830201020102010102810102880201 +020001000100028602000100010001040181000184010201020088000100020002010002 +820201020102810002020281010285020002000102850200020001028d02010002000100 +010001000100010101810201810102040286000200020102010101820201020102840100 +010001070101020401850200010001028502000201000182010001020101020101890201 +00010200020002008700020002010201028202010206028b000100020001000100010201 +850100010201028a02000100020100010001020102940102000100010001020002000201 +020100010002010301850201020100020302880002000201020102010101860200020100 +0200 +810201950102010201020102010001020002010002010201000189010001000100020102 +018f01020100020102010002000102010001870100010201000201020187020100010001 +00028102008100028102008700010001020102018c010002000100010001020102010101 +81000192010001000200010201000102010201020102010101850001000200018101008e +000100010002010201020002000102820201028102010101010083020102010501860201 +020100010201028300020102040285000201000100010088020002000100010001030182 +020002030283010200020102830100020101018600020002000100820001028402010201 +000100820100010401820200028102018101028502000200020085000200020002060281 +0102040201018300010002070201018102010b0103020200020201008302000200830002 +010282020102830201020102010102810102810201020182020001020184020102010282 +020001860100010001000188010201020102010001810102020282000200830002000281 +0200830002000202028101000100890201000100010002000106018b0001000102010200 +010200020302030086020001000100020302010101028201020185010002000100810002 +820200028302010002010201010300820100010101830002000101018202010292020102 +0002010200010001000201000100020084000200020182010201010101028100028c0200 +01000200010002010002018101028a020002000201000100010201028101028302010001 +870102010002010200810002880200010200020002008500020102010088000200020001 +0200018301020102 +860102010200020102018d000102010201000100010001020102018400020102018f0102 +010002010200010201020001000186010201000100018401020001008100018201020085 +000201020002030201018100018501000200020102018902010001000200010001830102 +010290020001020100010001000100010001000182010001010181020193010001000100 +010002000200020102010200010082000102820201028302010200850001000100018801 +0201020102000102820200028c0201000200020100010002000282020002010284000100 +010085000100010001810100820001008100020202820100010101010081010285020002 +0002008e0001000200020002010001020100018d01020002000100020002010201028202 +000203028100028102010101020203010102810002010201018202010201020301010207 +018400010001020102830102010081000202028100020102020082020102840201020102 +820201028302010201830102010283020102018401000200028302010201070181000184 +010200020084000100020086000200010002008100020202820102010101890201000200 +02000100020202030187000100010001000183010201028b020102010200020002000200 +8500020001020190010001020002000100020002000200020102018c0200020102010002 +0100020100870001000102000201020186020002000201008f0001000200010001000200 +0201020002850200020102018101008e00020002000200010001000102010202028b0102 +0100010200020001000202028c0102000200020100010001020101018100010101840201 +0200020102850102010201028d020001020102000100020102010082000200 +880201020102010001020102890100010002010201020101018300010001820102008a00 +01000201000200010201910100010201000100020100010002000201028f020002010001 +000200020002000200028e02010201020002000100010001000103018d02000200020001 +000102010001020102020181000108018500020001000101018a02010200020102000200 +028902000201020002010200840001020102850201020102018101000200880200020002 +000200020102830100010082000200010083020002010701860002000100010081000205 +028200010083000200018101028202010203020101810200010002010100010183000100 +018101020102010081010202028300020100810002010202010502810102010284000200 +020102010302810102820201008100010601880201020100010200028202000202028300 +010002010282010201010182000102020281010282020102830201020102010102010003 +018102018201020183010002010101870201000201020102820201020102810002020281 +00028102008400020002008200020183010200018c010001000200020001000100010101 +010084010002000282020002050281000202028901000200020001000102830200010281 +020185010002000200810002020286000200020002010301810001830102000104018b02 +010201020002000102010286020102010200020302020182000201820100010201840201 +00010201029b000100010001000201020100010201020100010200010001000102018701 +020100010002010201010283010201020102820002008f00010200020002010001020102 +00020182010200 +810201910102000200020102000200020102000200018401000100018401020100018301 +02000101018b020001000102000100010201840102010001020101008201020102019000 +010200020001020002010201020002018a01020100010001020001008500020102010286 +020102010200010101830001000182010001810100020082010001020101000101860001 +020001000181010087000102000100020081000283020002010201860001000100020082 +000102010284000102010281020001008702000200010201028e02010002000200020001 +000100010083000100018101008200020087000200020002000101010202830102000282 +020100830001000186010200010200010901870002000201020102820200028402000100 +020202810102810201860102010201020081000204028101020102010103020301890001 +000100010002010203020100810102040282010200010084020002000202020401840200 +010201880102010002010200028102010201810001030181020182010200010083020001 +008500020002000286020002000200028102018101028302010002010285000100020001 +840102010201050181000186010001000201028302010002010282000200870002000100 +020002820201028102009000010002010001000200010200010201008200010285020100 +020001010187000100010001000104018700020100010001028b02000200020002000100 +020002008501000100010288020100010001000201840100010002810201830100020194 +010002010201000100020002010001020102010001840100010001870100010001020102 +8402000200020102840102000201810102810201020188000102000100020102 +840002010001810102830201000199010201020002010201020002010200010001020002 +000102000101018100018401000100018401000100018401020002010201880200020001 +020102018101028802010201000201020184010001000181010202020101010201018700 +01000100020001020101000301010005018100018101000100010183000201008c000200 +020002010002000200018201020081000284020001000101018402010200018101020302 +830002000205028100028602000200020002840201020102860201000100010081000101 +018800010201020002000201028400010002018101008400020102018101028202010281 +020107010200890100010001000200020087000100020002000282020002020283010200 +020402810002010282000201810102040286000200010201008100010301830001000181 +0102820200018201000201020100830201000201028100028a0201020102000100020102 +020201010100010201018102018601020002000102810201820100010301840002010001 +8b0100020001020001000200028402000200020102840102000102820201028102018301 +020102860200020001000102018300010001010101028101028202000205028500010002 +010287020100010002000282020100830002000286020001020100020302010084020102 +000102018102010201020002018302010200820001028402000200028702010001000200 +020202810102820201028d0201020102010002000200020002850201000102018f010002 +000100010200020102010201028602000200020001820100010101830001020081000289 +02000200020102010002930200010002010001020002010201020102010200 +8f01000201020002000201020002000201810102880200020102000201028d0201020001 +000102000102000201820102018401020100018d01020002000102000200020102018101 +008a00020100020002000201020102830001000202028200020086000102000200010301 +8100010c0101008201000107018102010101830002000281020084000100010284020102 +000282020102010203018300020001810102820201008100028702010200020001000200 +010281010283020102008700010001000100010601870002010002010002020282010201 +83010201028202010282020102810201020101028101020202860102010001020102018d +000100020001000201000200020081000201020100840201020102010284010200020081 +000284020002000201028101028202010201028200010081000101018100010201810002 +810201010101028200010281020084000200020001008b02000102000100020002010285 +020102000102020284010002000202028401000102010201810001020186020102000201 +028702000200020002008300010002030203010102850100020102018101028102018201 +020102018100010401030281010287020002000100020082000102890200010001000200 +020002008301000102020285000200020002030283000200010101820201028302010201 +82010001030182020002850201020002018b010201000100020002000102820200028b02 +000200010002000200010201028101028502010001000289020001000102010201028e02 +010001000100010200020102010281020183010002018501020102010282020102840200 +01000101018700010001020102018a0102000100020100010001 +810201840102010201010189020102010201020102010101830201020185010002000201 +820102018b0102010002010001000100010101850200020002018b010200020001000102 +000201010182020102820201028a02010201020102010001028502010001000101018300 +010201820100010101840001000100820001008300010001050183000102008300010001 +84010001020103018102008b000100010002010200010002010282010200830002000282 +020002010282010002010284000200020082000200880002000201000201028402010201 +028302010001010186000102010201020102820001008500020002000282020102830201 +020181010282020102030281010284020102000103018100010401860201020100010203 +028100020102820002018501020002010081000282020001830102010201028101028102 +008700010001000102010201810001010187000100010200010201020100810102040281 +01008300020102850201020102018101028b020002000102010200010001810102020285 +00010001000283020100018c010001020002010002010002008500020002010288020002 +0001000201020302820100010101820201028202010201020b0181020181010282020102 +040282000102810201830100010282020102840201020102810200860002000200010289 +020002000200020001020202820001028302010201040183000200018501020002000289 +02010001000200020002810201010182020001820102018a010201020102010201000187 +010001000200020104018b02000200020100010002010201028901020002010001000102 +8f02000102010001020002000201000100810002020202018d0002000200020100010201 +020102 +840201000201010181020181010286020100020102018601020001020002840201020001 +860100010001000102018a0201000201020100020001850102010002018a010201020100 +010200010085000200020002830200020089000200010002000102010201810001060101 +000301810001030182000100060088020102010201000100810001880100010002010201 +028702000200020102008b00020002010001020102000201028300020002810200010002 +0286010002010200028d0201020002000102000100010201070181000202020100820200 +028102010101010281010282020102060284010200020101018300010002810201010187 +000200020001000201028401000200028202000284020002000101018302000200860002 +000200010281020182010002820201020302820001008500010001000102018200020183 +010201028202000201020100830200020086000200020001028402000201028302010201 +810102820201028402000100028402010002000200820100018201000103018202010085 +000100010002020201000202810002830200010202020101010281010283020102010301 +810201090101028101028702010200010200020102830002000288020100020102000100 +850001000100020202810102820200020102870001000200020001010181020101018102 +010601840201020102890201000100020102010287020100020002010083000100018501 +000100010001008402010201028d02010201020002000102000100010601850001000200 +028202000203020201890201020102010001000290020100010201000102000200020100 +01028202010285020002010001 +820002019c01000200010201000102010201000102010201000100010001020102018201 +000189010201000100020102008100018301020102860200020002000188010002000100 +010001870102010002000201830102010281020105018300010001040183000100010301 +010081020003008e01000201020002000200020002000101010200810100860002000200 +020089000102010001000200020202830100010201020101810002040202018900020002 +000200020102840200020102840201020102830201020106010302810002810201840100 +020102010283010201020102840102010001010182020002010282010201820100018101 +000100870200020001000200860002000200020085000200020002010284010201020002 +008202010082000102040201008601000100020001020181000101018100018201000284 +020100020001000202840100020102020281010286020100020102008300010002820201 +028402000100018301020102010283000100010101020081020102018102010101820001 +020102860001000200020084000200020081000201020101010281000281020183010201 +0203020c0101028400010001028102008300020001030101028101028202010283020102 +018401020002008300020102020281000203028400020001028202000181010281020101 +01010001018c000200010001000200020102008300020002870200020002010001820100 +0103018102010101060087010001000102010281020101018c0001000100010200020001 +020101018402000100020102810002010201000502890001020001020001020183010201 +028a0200010200020002010001 +920201020102010201000100010201000200020184010002000201028100018701000100 +010201008100018601020102010001860102000201000101018500010001000182010001 +040183020001028e02000200020001020100010001000104010300850100010001000200 +960100010200010002000200020102010201020102010201830100020103018600020002 +000200820001028202010201020100880201020102010201028202000201028200020001 +000101810002850201000200028402010201028302010201820102010a01010282000200 +81000201028200010282020002810201020104028100028c020100020002010001000100 +010101020201010202010182020102820200020102810002830200010201028100028102 +000100010281000102018200010203028101028202010085000100010001010182000102 +8b0201020102000201000200028302000200020083010201028202000282020102830201 +020193010201000200010001020100020001000200010281020182010201850102000200 +028302000200830002000202028100020202830102000282020002830201020181010282 +020102820201028102010201810001010181020181010204028101028602000200020102 +020282010201820102018101028202010282020102830201020181010201028100020102 +840002000200830002000282020102830201020102018800020102010201000201028601 +000200020102810201810102010205018900010001000100010001020181020103018700 +01000200020002840200010201020181020101018900010001020002000201a101020102 +01020100010200020102010200020002010001000102000200020102010201020101 +8e0201020100020002010201020002018301020102830201020182010201820102010101 +84000100020101018100018d010001000200020001020001000108018700020002010201 +0001000102820002010101850201000100018101000400020105008b0200020002000201 +0201020102018a0002010001000200010201040101008202010286020102000102008500 +010002000201028a01020001020102010201020202040182000102870200020002000201 +840102010201830102010283020102010601840001020102830201020081000281020102 +01040281010281020086000201020001020202810100020001018a000200010001000200 +010085000200020002840200020002820201020302010087010201000201000204028500 +010002000281020184010001000103018200010282020102020284000200020083000201 +020502810102810201810100810002820201028202000283020002018101028202010281 +02018401000100028302000201820102018b010201020100020001020102010201000202 +840002010002830201020101018202000282020102810200820002018401000100010601 +010201018500010001000201028201000281020183010201028202010281020105018202 +010282020102020282010002010281000281020001000202810102830201000102018602 +010201000200860001000201000185010001000200840002000200810001010181000103 +0181020102018c0001000100010001000200020182010201010188020002000100020001 +030181020181010282020102040283000201008200020183010002010101820201020102 +830002000183010002008600010001000102 +860102010002000198010200020002010200020002010200020002010201020001028202 +0001880100020002000102010201810201880100010001000100018c0100010001020102 +0102010001020105008d0200010001000100010002000100010087020102010200010281 +020101010100870102000200020001850102010200018201000201020101810001010101 +008e01000100020100010001000201020081000282020102870201020102000201010184 +000100010282020002020285000200020002850201020102010201010284010001000104 +01810200820001008c000200020002000200020001028302010201010182020002830201 +000101018800010200010001020101018500010002000282020102820201008100020202 +820002010201030281010201028100028102010201010281010202028401000100010201 +830001000101010202810002830200010201028900010200020001000201850102000200 +028202000281020103018902010200010002000200810001020101028201020101018102 +018301000100820001000200840200020002840200020002820201028202010285020100 +020002810201830102010281020104018100018201000282020102020281000201020100 +810200830002010201020101810201040182020102810201050187000200020002000201 +028300020002830201020182010201040182020102810201010183000201020102850001 +0002000284020102000202028d01020001000100010001000100010b0182000100030090 +010001000102000200010002000201000183010001009200020002000200020102000200 +0201000100018f01000201020102010201020002000201 +950200020102010200020102010200010201020100020183010201028102018401000200 +01820102018c010201020001020001000100010301810201820102018401000200018101 +000400010187020001020102000285020102010001050188020001000200010001020191 +000200020102010200020002000201020002010281000102018502010201000101018e02 +000100020001020001000100010282020102010287010201000200010281020102018302 +000200830001000201028400020102018301020102840200020102810201020187000100 +010001000201028100028902010200020002000201010187000200020102000102018300 +020001890102010001000102000102018402010001008400020002008500020002000201 +028101020102810102860201000100010282020102010281010081000181010283020102 +018a01000100010001000100018101028402010201008100020102010088010002000200 +02010282020102810201840102010002040289000200010201000102018a010001000100 +010001020101010102830100010287020102000200020002008102008100028202010283 +020100020202010101028600020002010001840100010001020182020102870201020002 +000200830002000281020102010102810102810201080184020102000201028100020102 +810002010286000200020001020102010181000103018102008b00020002010200020001 +000189010200010200010200020202020187000200020002000101018100018a01000100 +010001000100018201000101018802010201020002000282020102010282000201870102 +000200020102010282010001010193020102010201020102010201000102000200020181 +01028102010001 +980201020001020102010201020102010201000102010201020101018202010289020002 +010001000100010901870001000102000200860002010201000101018100018101000100 +810100880002000201020102019a01000200020002000102010201020100010201020002 +000200020101018502010201020102018100020102810102830201000101018500010002 +000185010200020002810201020183000201008200010203020801820001020102810002 +030281000202028100028202010287020102010201000105018202010201020100020281 +010201028300010001010182020002010281010287020002000200020101018300010201 +010186000100010201008100020202830002000185010002000102840201000102060201 +01010281010282020102010284010201000104018100018a010002000100020100010284 +020102000284020100020101010102840002000102820201028502000100010281020104 +018102008500010001000101018500020001000186010001020001008100020402830002 +000201020200810200820002008400010001028202010283020102010401830001000182 +0100020102810102010283000200028102008100020202860102000100020109018a0201 +020100020002000102820200018101020302830002000104018302000201880102010200 +010001028502010200010202020201010283010200028502010201020186010201000200 +018601000100010001060185000100010001870100010201000102010201018202010282 +020102820200020102850102010001000400810100850001000102010101880201020100 +01000100 +980102010200010200020102010201000100010200020002010281020181010287020102 +0102010201820102018e0100010002010001000200010201000100890100020100010001 +00010201010089010001000201000100028702000201020102018e010001020100010001 +02010201020101010202820102018e010002000201020102010201020102830201020182 +010001040181000101018202010084000100020181010281020001008201000282020001 +010183000100018101000100810102010284000200020086000200020102008100010101 +02028100010101850001000100020102820002008e000200020002010002000200020002 +850201000100028402010200028802000100010001020088000100010001000200850002 +000200020102810100840001000102040285010001020002010284000102010201020301 +820201008500010001000101018300020102840201020100810002010281000285020001 +000200830002000284020100010282020102820201028202010285020100020002830201 +020104018500010001000283020002000100820201028702010002000200020102010002 +028101020102830102000203020100010201008401000100010301810201810102010282 +010002840200020002820200028102018301020102830201020102018300010001010188 +020102000200020002010287000200020001000281020184010201020187010201000102 +01000200820100018a010200020002000200020081000201028400020102018101028902 +000201000100020001830102010288020102000100010001860100010001000102010100 +030182000102820200028102008500020001020003009101000200020102010201020102 +00020002008900010001000201020102 +8f0001020102010201020102010002000188010200010001020001830102000181010285 +020001000100830001000101018100018101000100850200010200010801840200010001 +830100010001008601020100010002820200010101900001000102010201020102010201 +02010201028a000100020102010201020101018802010201020100010281020081000284 +020102010001008301000100010081010082000102840200020002040284010201020106 +018500010001000201028100020202010181000282020002890201000200010001000102 +018100020102810002820200020102830002010201028300020102010281000201028500 +010001000281020102018100010101010201018200010084000201020181010083000200 +020202810002820200028202010282020102820201020102840102000102010283000200 +010401810001010185000100020002820200018101020202810100820001028302000201 +050101020100840100010002820201028102018301020102010201008701000100010001 +028102008500020001020186010001000200020202030002028200020081000282020002 +820201028202010282020102810201030188000100010001020102830201000201028100 +020102810102840200010002010285010200010001080183000200020302810002010283 +000100020302030089020100020001000102018601000100020002820201020102820002 +00830001020101010102840102010201020101028a010201020002000102000181010281 +020104018100010101810001020103008a01020100020001020001028402000102010101 +830201020101018a000100010200020002000283020102018601020002000200 +8102018f010200020102010200020102010200018f010201020002010200010002000100 +010401870201000200010001090187000100010001000101018502010200020181010086 +000200010002008100020102890102010001020102010201028300020001010101028c01 +020102010200020102010201900100020102010201020102010201020102820200010201 +81020104018102018701020002000201028b020102000100010001000100010081010001 +00810100010082020002830200020186010201000200028d020100010001000100010001 +000201028100028202000202028100028202010285020001020102820201020202810001 +840100010001010101008201000102018202010085000100020002010281010085000200 +010002010282010200820002008200010282020002810201890102010001020102010081 +000101018100010301820201020202010083020001008300020002010281000282020002 +850201020100028202010285020100020001870100010002000100810001060181020103 +010100880200020100020002000100810102010201008201000201020100010281010285 +020001020102890201000100010001000102018802010201000100020082000200810002 +8202010203020301830001000183010001008a0001020102010200020002020282010201 +810100040004028201020103018502010002010286020100010002000100010282010200 +830002010291020102010201020001020001000100010001930100020001000100010002 +010201000100010001820100010101810001830102000203020200810200010001018900 +01000100010201020101018e020102010200010002010001000201 +900002010001020002010002010201020102910200010201020100020102010200020102 +010301810001030181000189010001000100010002010201830201020187010200020102 +000188010002010201000200850001020102010101820201020102820102018301020102 +830201000289020102010201020102018101028702010201020102018701020100020002 +01010181000102018a000100010201020102010082000100010085020102010201010185 +020100010001010182000201810102830200020185010200020102840200020002010283 +000200010101830001000102018400020001028202000282020002810201810102020281 +01028702000200010002018a010201000201000102010081000184010001020187010001 +000100010084000200020101018400010001028202010285020102000201830102000282 +020100830002010201020101010089010001000100010002008100010101820201028302 +000100860001000200020081000181010203020101890200010001000100020181010203 +0202018e0001000100010002010001000100010201820002008300020002040281010082 +00010082000102820201028b020001020100020102010001050182020002010283010200 +020302830100020186010201020100020102830001000107018602010200020002010282 +000100810002820201028a02010001020001000200018201020184010001020189010200 +010001000200028102018201000201028200010284020102010283020102010201840201 +020102950201020102010201000200020100010001000200020102018100019301020102 +0102000100010002010002010001020182010201820102018401000100018f0100020002 +0100020102010001020102 +820102019d0102000200020102000200020102000201020102010201020102010201028b +02010001000100010001000107018102018b0102000201020100010002018a0102010201 +00010201000182010001010184000102010281020101018c020001000201020102010201 +020102870102010201000102900201020102000100020102010201020102020284010201 +020103018500020001020104010202810100830002010082000201810100010003018100 +018101028c0200020001020002000102010282020002850200020001008a000100010001 +000200010085000200020002040283000100028302000102030281010281020081000101 +018402010200018a01000102010200020102018301020102820201008600010201000102 +850201000100028302010002820200020602820001028102010801010281010281020181 +010081000202028300020002020283010200028502010001000282020002820201028702 +010001000200018201020085000100010001020181020101018100018901000102010001 +020002830201000202028100028202000287020001000100010204028201000101018800 +010001000102010203028200020087000200020002000282020102820201028102010301 +890001000102010001000202028200020081000202028100028102010101830002000182 +01020183010201028a02010201000200010001020102830102010202028d010201020001 +020102000102000286020002000201028602000200020002840201020102890201020102 +010201020182010002850200020001020102840002000200840002000100020001018500 +01020002000100010181020105018302010001020182000100 +9f0100010001020102010201020102010201020102010201020001020002010201040181 +000106018b02010002010201000200020102018502010200020184010201020183010201 +0201028c000201020001000201020102018101028102018a010201020102010201000101 +018202010285020001000102020281010201028201020001008502000200020183010002 +018501000100020101018302000100020003028501020100010282020100010083010001 +00810001890100010002000102010202028100028a020102010002010201000103018400 +010001020702010101028901000200010002010001020104020101830200010083000100 +018201000102018d00020001020002000102000102010101050281010282020002810201 +820100020302810102810201070182000100850002000100020302830002000202028200 +020103010102810102020203010102840002010002020207018300010001040181020181 +010283020100028402010001028102008100028202010082000102820201020202010101 +020100860102010001000103010102810102820201028702010200020001020102810102 +8a0200020001000100010001070102028200020001008102000100030281010201020301 +870001000100010201010183020102010101860002000100010201020101010281010285 +020102010201810102010283010201028102010101010202019302010200010001000102 +010200010001000102010101050281000202028500010001000184010001020101018302 +010201020181000184010002000188010001000102000201 +8101028102019001000102010201000200020102000100018a0102000102010201000102 +84020001000101018100018b010201000100020102010201840102000201860102010201 +0201020183020100020202820100018a0102010201020102010001010181020101018c00 +0100020102010200020102010101010201018b0001020100010201000102018601020102 +010201810100020082010201820102018101008100010101010081010283020102018801 +020100020002000103018100018101008100018101028602010200010201020101028301 +000102820200028102018401000100010101860002000200020083000200020102810102 +810201850100010201020302830001020186010201000100018301020102820201028102 +010101830001000283020102010101840001020102040202018102018101020402020186 +000100020002008500010001000101018200010085000100010200810002010281010285 +020002000100890002000100010001000183010201020202010182020102030201008902 +000100010001000201880102010001000100018701000200010001020202810100810002 +880201020001000100028202010283020102010501830001000201028101028502000200 +020082000200010004028101028302010201010184020100010083000200020202810002 +05028100018501000100020182010001020181000103018400010002018e010001000100 +0100010002000201028f0201020102010002010002010001020183010201020202850102 +010201028102010101820201020202850102010201028402010201008400020100028602 +010200020001030184000100010082000201810100010085020102010201030188020102 +010201020100 +820201020102920102010201000100010200020002010200020101018302000201820100 +0101018c0001000201020102010201000101018702010201020102018401020100018601 +02010201000103018402010002000200870102010001020002a202010201020002000201 +020102010201000102010201000100010201020102000201028102000200840102000201 +030182000102810201030182020102820201028202010202028101028b02010201000100 +010001000101018102008300020002840201020102830201000203020101020286010001 +000102010101810002890200020002000200010082000102020286000200010201028202 +010285020100010001010183000100028102008300020001040186020102000200020202 +010101020101010281010201028900010001000200010002850200020001008700010001 +000100018101020402810102010282000200810001010182000100850001000200020202 +860002000100010083000200018101028102018201020107018102010201010003018100 +0182010201840102010002810200820002000100820100028202000203028e0001000201 +000100010201000100018101028302010002020281010203028701000200020001020102 +880100010201000100010101820200020302010082020002820200028102018601000102 +010201010101020100890102010200010001000103010102890002010200010200020083 +000200028402010201028402010201028102010101820201028602010201020102830201 +020103010102820102010101910201020100010002010001000100010001028302010001 +82010001030101028301020100840002000200850002000100018301020102 +8102018701020001000100018d0102010200020102010201020102020284010200020104 +018100018901020102000102010201840100010201870102010201000102010201018402 +01000100860001020102010084000201000102018a020102010200020002010002008702 +010201000100010101830200020084000102010081000185010001000102020201008701 +000100010001000100840100020002010282000201830102010202028101020202010101 +028300010201010101008401000102018501020002000285020100020102860200020001 +000102018100010301010283000200028202000204020101840001000200860001000102 +01028c020002010201000100010002018201020183010200018601000200010002020284 +01020100028b020002000100010002000102010282000200830002000108018600010001 +000100830002010281020082000201010101028400020002008100010301820001008200 +010284020002000285020001000102810200870001000100010001830100020101010102 +830102000101018500020100020183010200028202010282020102820201028502010200 +010203020101810201020181020101018300020102010282000200020085020002000102 +820200028702010201000100010101810001830100010286020002010001028202010201 +028200020086000200020001020102860001000201020182010201020182020102810201 +010183000201020502880100010200010200028402000200028602010201020102860201 +020100010286020102010200028802010201020102010206028301020102810201850100 +020102010101860201020102000102018300010001820100010701840001000100 +81010201028a010200020102000200020183010201028602010201020001880102000201 +0001020103018402000201028a0201020102010201000200940001020100010001000201 +020102010001000200020102830102000191010002000100010002010201020102010201 +010102000102910100020001020100010001020102000200028602000201020100830001 +000103018200020103018102018301020002820201028202010284020002000202020401 +810001010101000101010201010802870100020002010200810001010184000100010285 +020100020002850201000201028302000201810102820201028202000285020100020002 +810201060185000100010002020201018202010201028100020202010181000282020102 +030201000202020188000100020002000100830001000103018200020084000200010282 +020102020281010281020102010102860002000200010081000102010102830102010282 +020102010282010001850100010001008100018401000201028302010201020182020102 +820201020202870001020001000100810002020281010201028c01020001020100010001 +000100810001870102000100020002830201000282020002030281000101010102010184 +000200020084000102010202028300010002010281000201028100028102008300010002 +820200018601000200020001810102810201820102018701000102010002018201000202 +020101850201020102018301020102810201010189020100020102010200028602000201 +0201028602010201020102870201020102010201010101028d0102010201020102010201 +0201028102010201010282010201070181000184010001000102010000 +820201020102810102910200010201020102010201020100010201028302000201830100 +02010101010081010281020101018a020002000100010001000201028201000285020100 +020002010201000101820200020202010189000100010001020102018601020100010002 +850200010200018101028302010001810102010281010202028101008300020102010282 +000201010181020082000200820002000100890201020001000100010282020102030281 +0102010201018c0200010201000100010001000101018400010201020102810001010101 +020100030284010001000102018600010001000200870002000200020001840100020002 +850201000200028302010201010183020102010501010001018100018301020002840201 +020002070281000203028101028302000100870001000200020002010285010001000100 +870001000100010001810102030281010203028101028202010283020002008600020001 +000102030289000200010001000201028202000281020106010100810201830102000282 +020102820201020102810102060203010502810102840201020002840200010002810201 +810102810201810102020282010002820201020102860002010002000286020100020002 +008100028302000201810102820201028202010284020102010282020002850201000200 +028202010284020001000283020100020102010101028100010201010281010202028100 +028202010286020100010201028402000200028402010201028502000201020104010102 +900102000201000200020102010201020102870201020102010201840100020102870201 +02010201000101018d02010201020100010201020102010b010000 +85010201020102840200020002820201028e020001020001020102010001020102810201 +820102018201020187010201020001000201028201000286020002000200028102008400 +020002008100028302000200880002000200010201020402810102040281010282020102 +820201020102830002000202028101008100018101020202010083010201020202810002 +030286000200020100028502000100010286020102000200028102018101028102008100 +020402860002010201020081000101018100018101008100028202010281020084000201 +020085000200010002020202008201000101018200020081000201028500010002010282 +0200028f0201020100010201020002000200010085000100010001810100010001010202 +010081010201028101008100020302020085020100010002050283010002000200030207 +018400010001000200810102810201820100018101020202810102820201028602000201 +000200020082010002010282000201840102010200830001000181010084000100020182 +010002850201020102008100020102830102000204028300020002870200010001000102 +850201000201028702010200010200020202810002820201028802000200020002000282 +02000283020100020202820100018b010001000100010001000102860200010002000285 +020100010002810200850001000100010101810002030282000201810100850002000200 +028c02000200020001000200020002830201020102018202010286020102010200028a02 +0102000200020001000101018a0201020001020102010201870102000201020102870201 +020102010201010184020102010201020201010288010201020102010201850102010002 +0102018100010201 +01008702000201020102018f010001020102010001020002000201028902010201020102 +010200810002040283000200020202010001028801020100020102000281020183010201 +020202010102028500010201020087000200020102010286020002000201020302830002 +01020a02850102010201020602810002010283000200020c028101020302810002020201 +018202010282020002030281010282020102810201810102040201010302850002010200 +028202010083000201028102018301020002820201028502010200020189010201000200 +010002008100028602010201020002850201020100018201020185010001020002010281 +000208028201000202028100020302810002820200020102810102010285010002000200 +830001000284020100010202028101020302810102030284010200010087000200010002 +000205028101028802010002000200010085000100010001840102010201850102000200 +028202010284020102010205028500010201000206028800010200010201000102018400 +010001028202010282020002870200020002000200890002000100010002000188010001 +00010001000101010102820102010101820201028a020100020002000200020103018402 +010201028402010201028202010281020183010201020402880102010002000201028402 +01020102890200020100010002000284020102010281020101018202010202028c000201 +000100020002010201028102010101870201020102000200810002030283010201008900 +0201000102010201008e0002010200020102010200020102010101810001 +020182020102020281000186010200020002018401000200028a02010201020001020102 +018101028c020102000102000200010002008a0002000200010201000200810002010281 +0102860200020100020085000200020102880200020001020002018b0102010200020100 +020002000200880200020002000200029802000201020100010002000200020002000200 +020002000102010281000208020200810102020201008402000200020302810002010201 +008402000100020302010082020002010201000302820100020102890002010002000200 +020002000102020081010281020086000200020002008100028a02000200020001000200 +028202000201028101028302000200840002000200840002000200840002000200010001 +020100830200020086000100020002000200010283000200020102810100840001000100 +820002000300010201000202010002020100010281010084000100020002008102008400 +020002008600020002000100840002000100820001000200810100010081020086000100 +020002008400020002008600020002000200880002000200010002008500020002000183 +010002008200010082000100030082020002030284000200010201028c00020002000100 +010001000100810001820102010101010281010283020102018501000100010201028401 +0001000103018f0200020102000100020102000200010283020002000100010283010200 +028402010001028202010202028101020202830102000181010284020002010001008102 +010101810201810100830002010085000102000200010082020002810201010182020100 +8800020102000200020082000201010104028e0001000201020102010002000100010201 + +810001010101020301830200020102010102810001910102000201020001020102010201 +00020102020281000202020101820200020102810002860201000100020181010202028e +010200020001020002000201000201850102000201000100820201028b02000201000201 +0201020102020289010001020102010201020602820002008100028202010202028b0002 +010200020102010200020302850002000200020502810002840201020001810102010281 +0002020281010201028101020902810102020281000205028101020a0281000202028301 +020002010283000200020302010182020102850200010200028302000200010004028300 +020002040281000201028200010207028101028202000202028401000201020102810102 +05028100020e02820100020f028400020001020202810102060281000282020002040281 +000205028100020102810102010283000200020102010002028200010006008202000282 +020102020284010200020001008101028302010201820102010a01820201028402010002 +018301020100850002000200018101000200810100820001020102810002840200020102 +810200810002840200020002010282010200880002000200010201028202000282020100 +010087020002010201020089000200020100020102000100010282010001810100010002 +018502010201020088000201020002000200020081010285020102010200970001020002 +000200010002010201020102010201000102010201 +030183020100028202010202029200020102010201020102010002010201020002860201 +000102000281020101010102880001020001000102018f01000102000200020001020100 +010001880102010201020100018601000100010001820102010401820201008800020001 +000100020001008201020090000100020002000100010002000201020001008a02000200 +020001000200010101860002000100020181010001008302000100040081010005008301 +020100830002000287020100020002000290020002000200010200010002000201020086 +000100020002008300020002820201008200020081000281020083000200028602000200 +020002860200020002000283020002008100020302010002020100030284000200020084 +00010002008100028202010002000102820002000100010203008101028102008a000200 +010200020002000283020002008100020102010082020002850200020001020102030002 +020100820200028702000200020002008500020001000283020001008600020002000200 +810002010201008502000200020083000200020102020084020100010081000281020002 +008302000102830200010201028601000100010002020282000200820002000100850200 +020002008200020101018302010001820100028302010001820100020102830100020001 +008401000200018201000101018102008100028202010282020100810002820201020102 +010086020002010002008a00020002010200010001028202010281020084000100010282 +020100010086020102010201000200820100010301030087010002010201020082000102 +8c0201020102010001020102000282020002820201020602850102010001020202850001 +020102010101 +8601000100010201840100020102010286000102010201028a0201020102010201020102 +830200020182010201010101028301020102830201020001008802000102010001000191 +010201020002000200010001020102010201840100010201020184000100020181010282 +020100850002000200028102008300020102840201020100810002010287010201000200 +010287020102000200020189010002000200010001020202810100810002850200020001 +028402010002008200010201028601000102010001010181000102018300020002040282 +00020001008f020100010002000201000200020002008300020002020285000200010002 +040201000102010081020084000201020081000203020100810102810200830002000202 +028100020a02830002000281020001008202000202028100020802810002040281000205 +028300020002820200020102810002020281000282020102020201000202810002020281 +000281020081000201028101008100028702010200020001020102830002000207028500 +020102000286020102000200020102810002810200010085020100010002820200020102 +810002080281010201020200830201000283020100028702000102010200020102810102 +820200028302010201850102010200020102840102000100810002860200020002000281 +020081000281020082000100010001028101000100010285010001000200010082020002 +86020102010002008a000201020002000100010287020002010201000288020100010201 +020001030184020001000187010200020100010284020002010201028100020102850102 +01020102010283010001020302830002010202020101810201 +810001820100018301020002020282010001890100010201020102010284020002000182 +010201850102000201028402010201028202010281020090000102000102010200010201 +020102000101018f02010201020102010200020002010201820100010101810201030181 +020103010102820102019201020002000102010001000102010201000102020292000100 +0200010002000102010201000100020001008a0201020002000200010002890201020102 +010200010201020201010082010001020184020102010286020002000201028702000200 +020002000200850100010001020102820102000100820201028302000200830002000283 +020002008200010283020002008700020002000100018101028202000282020002810200 +020002028300020002020282000200820001028202000203028100020402010002028500 +020002010201028100020102810102820200020402840001020002840200020002020282 +000200810002820201008100020202850002000201028402000200020202830002000202 +020100040201008302000200810002010281000284020002000202028500020002000284 +020002000201028201020088000100020002000200860002000200020001000202010084 +020002000201028200020001000102850002000200028102008700020002000201020102 +830002000203028200010203028201000282020002820200020302830002010283020100 +020202810002010283000200020202830102000282020002840201020102840200020102 +02028100028c020102010001020001020100028202010201020100020282010200010001 +028101020202840100020002810200830002010202028101028c02010201020002010001 +020102 +040186000102010201020102830001020187010200020102000282020102830200010284 +0201020102830200020182010201830102010283020002018b0102000200010201020100 +0201028101028802000102010001020181010201028a0100010001020001000201030182 +020100870002000102010002010281010284020102010287020001000100010282020002 +02028a010001000200010001000281020102018400010201028102000100010284000200 +010088000200010001000100020081010002000201840200020002850201020002008200 +020184010002000283020001000100850100010002008100020302010083010001000300 +810200010083020002010101830001000183010001000100010282000200830002010284 +020002000204028100020302810002020283000200028302010002820200020102830002 +000181010201028201000282020102010281000281020183010200028602010200010002 +010281010283020001020202010001028401020100020402890001020100010002010201 +020100020284010002000208028100028102008100020202820100028202010201028100 +020202830102000282020102010281010205028100028402000100020102810002860200 +010002000201028100020102810102860200020002010201028300020002050281000203 +028500010002000282020102820200020502810002010281000283020100020502810002 +020281010282020002050283010201028402000200020202810002860201020102010286 +02010201020102020283010201020b028101020302810002050284000201000286020001 +00020102010281010201020001 +8101028302000201860102010002010202028d0002000201020002010201020002840201 +0201028402010201028402000201028102018401020102018101008d0002010201020102 +0002010200028e0201020102010201020002010201028502010001000104018100018601 +0201020102018a0100010002000200020001050103028600010001000201010101028201 +020101018102010201010284000102010287020102010200010201028100028502000100 +010282020001810100010084010001000101010102050183000200020102820002018201 +00010701820200028402000200028202010206028a010200020001000200020086000100 +010001008200010087000201020102010283020001020302810002850200020001008200 +020183010001008300020002820200010301820200018101008700010001000100018201 +00018d010201000200020100010002010283020002008100020202010181000203028100 +020102810002840200020002010287010002000100010201028101020102810002040283 +000200020202810002010201008402000100028402000200020102010102008302000200 +030083020002008700010002000200028902000102000200020102010282010002860200 +020100010282020102030281010206028100028202000204028100020602810002820200 +020902810102010281000206020100030281010282020002020282000200830002010202 +028801020100020102010284020002000204028300020002010281000201028300020002 +0502830002000205028300020002030281010003008302010201 +8b0001000100020001020102018301020102820200018301020002830200010285020102 +000201880102010201020001028202000283020102018701020002010201020202820102 +018301020102830201020187010201020002000201028300010201030182020001030182 +000200010084020002010281020101018900010002000200020001010101028101020102 +840102010201020187000200020002000103010102880102010201000200020102810102 +010286010200010201008100010301810001050184020002000283020102010201010284 +000200010087000100010001000181010083000200020102910002000100020001000200 +010200010002008300020001010181000102018b00010201020102010002000204028101 +028302010200810002050289010201000100020002008600020102000201810100870001 +000100010002820200028202010282020102810201020184000100010081000288020100 +020002000102870201020100020002030201010502830002000183010201028202000283 +020001028202010081000202028800020001000200020086000200010001008900020001 +000100010001010103020100030201008102008500010002010202020701840001000201 +820102018401000201028702010001000200028502010001000102018300020102820200 +020d02810002060283010201020102830102010201028200010284020002000282020002 +810201810102010284000200010201028300020102840201020102820201020e02810102 +02028100020f028100020102810002010283000201020102 +810001840100010001820102018301020102820201020102010101028600020001020001 +8501020002000282020102890201020102010002010282020102850200010001028a0200 +01020102000200010201028c010200020102010201020001028802010001000201000182 +0100010201870201020002000102820200028a0201020102010201020102880201000100 +010001008e00020002000200010001000200010001000102840001020102020281010282 +020102820201020302010086020001000100010101810001010182020001010182000100 +020084020002000203020401840001000102830200020001000402840001000200020081 +010281020187010001020102000101010100010101008501020102010286020002010201 +020302890002000201000100010281020081000282020002810200820002008800020100 +010001000103018100010401820001008400010001008200010288020100010001000100 +040001020100810201010186000100010001008300010001010101008101008300010200 +830001000201028300020002010201000201830201020001008202010283020002008400 +020001000200830100010002008102010101820200020202810102820200028902000200 +010001000100020004018500010002010284020102010001008501020001000101018200 +020001008a01020001020102000102008100028502010002010284020100020001008501 +00010002000100820100018201000182010002840200020102840200020102020203008e +01000100010001000100010002010201028e000201020001020002000201020002020201 +00020281010282020102820200028202000204028a000200020102000201020082000102 + +010081020001008101008700010001020102018201020181010084000102010287020002 +010201020183010200018101028202010284020102010201020201010287000200010201 +02010201820001028c020100020002000200020002018101028702000100020102010301 +840001000200820001020102010181020181010295020002000200010001000201000200 +020002000100028b02010201020102010001000101018202010203028400020001028202 +010203028400010201028102010301830001000186010001020100020302810102810201 +020186000100020001008400010001000200060282000102820201028402000201028402 +000200028102000100860200010001000182010001810100830001020103010802010104 +020100880200020100010001028202010202028100010201890001000100010002000201 +028100028202010282020102010281000282020102060282010201020184000200020085 +000100010001030182020001840102000102810201810102840201020002070201008602 +000200020002860200010002000283020102010201810001020182020002820200028202 +000285020100010200890002000200020001020106018400010001028102018301020102 +8502000201020081000287020100010001000101018b0200010200020001000201028502 +010002010282020002830200020185010001000200010083010001000100820200028502 +000200010001008101028402000201028502010201020109018402010001028302010002 +840201020002840201000102010287000201020102010281020001000101920001020102 +01000102000201020002010200028302010201 +810001810100830001000104018202010201028201020083000100028602010201020102 +840201020102820200028402010001028102010101020201018c02010200010200020002 +00010201028c000201020102010200020001028302000102810201040101000301010201 +0189000100010002000200019e0100010002000100010002010201020002000200020001 +000100010001020103018402000100028102018101028402010002008100028202010282 +020100870001000100010001010181020189010001000200010002000100810100850002 +000200028202010081000101018100010101810002820200020102010087020001000200 +020089000200020002000100010101820200010201850001000102018101020b02840002 +000200810001820102010201810002040282000100830002000285020100010001080102 +028101008600020001020002020281010086000100020102000200020282000201030181 +0001010182000100810001850102000200010101820002018101020a0283000201028502 +010201000281020082000200010081010003000101870001000200020002020288000200 +0200020002008a0001000100020001000100850001000100010201820200028202010282 +020100820001008100020102820002010201810200830002010281020187010200020001 +0001850102000102008900020002000100020002810201820100028e0201020100020002 +000100010001000100870100010002000100830001000183010201008100018501000102 +00028602000201000102820200018701000100010201028402010001008a000200020002 +0100010200880001000102000100028b020002010201020100010200 +850102000201000100870100010001020102830201020182010201830100010286020102 +01020102840201020001820100028402010201028d020002010201020102010201020194 +01000200020001000100010201020002010201020102010102020101028b000100010002 +010002000200890002000100020002000202028d01000100010002000200020102018201 +00018d010200010001000100010001000186010001000201020102810002820201020402 +010182020102810201010188000100010201020001840102000100810002040202010102 +810102810201820100010101830001000284020102010203028101028202000282020102 +810201810102860201020001000101018300010201840100010200850002000100028102 +01820100020502830102000201028300020002860200010002000201020601820001008d +000100010001000200020102010281020184010201000185010001000100830001000101 +018202010282020102850200010002008400010002010201010002010102010182000102 +820201028102008100028402010201020202010084010002000282020102010201018100 +02810201030101008401000100020202820001020302820002018101028202010202028a +010001000100010001000186010201020002010101010281010203020101810201840100 +010201860102010200010202028100028202010204028801020002000100010291020102 +0001000200020100010002000201028402010201028402000200028c0200010001000100 +020002000103010202820102010101010293010201020100010001000100020102010001 +0201010185020002010002030284010200020101010102010101020101810002 +870001020102010201820100010201820200020102010101020101820201028202000286 +020102010201028202000285020002000102810201920100020001020001020102000201 +0201020102020284010201020101018d0201000200020001000100010001850100010200 +018501000200010201028500020001020094000100010001020102010001000200020002 +000201860100020102010287020100010001000102010102810100830001000201028100 +028202000201028301000200900001000100010001020001020100020002850200020100 +028602000200010002820201008600010001000100850001000200020202880002000102 +010001028102008300020001010181000202028400010001008900010001020100010002 +020281000202028400020001028602000201000102820201028902000100010001000100 +850001000100010201810001030181000282020102830200010083000200018501000200 +010205028400020001008800010001000200010281020101018300010001820100010101 +8a0201000102010200020002820201020202820100020102010084020001000182010200 +830002000289020100010001000100010101810201010181000282020002040282000200 +810002870201000100020001050182020102010281010282020002820201028102000100 +810100820002018101028402010200028202010285020100020002820201028502010200 +010284020102010282020102880200020002000102008300020102820201029002010001 +000100020002000102010201028102010101840001020001940100010201020100010201 +020001020002000201028b02010201020102010201020182010002890201000102000100 +020186010002010200028a0201000102010001020100 +8802010002000200020101018700010002010201028b0201020102000201020001008300 +020002870201000201020002840201020002010284000102010281020101019102010201 +02010201000100010002000200028102008b000100010200010002000201810102810201 +85010201020102010201000102920100010201000100010001000100010201020102018a +020102000200010002000101019002010201020102000200010002010201028202010282 +020002820200028102008500010001020102018200020184010201000205028600010200 +010002010201000201810001020181000201028300020102880200020002000200018301 +000102850200020002008100010101810201060182020001850102010201008200010205 +028100028c02000200020002000100020102820201028402010200020102850001000100 +018401000100018101020102010182000200810002820201008100010101820001008600 +020001000102020281010201028101028102008300020002840201000100810001050183 +000200028302010200810002060202018202010286020100020002008700010001000100 +010201830001000202028200010201028100020102820001028402010002008800020001 +00010001008c000100010200020001000100028202010203028700020001000102018901 +000201020001000201850102010201028202000201028101008900020001000200010002 +830201020183010201029b02000100020001000200020002000102010001000201000100 +020001040101008301020102880201000100010201028a02010001000102000200029202 +010201020102010201020102010201020002870201000102010001880102000201020002 +01 +930002010201020001020100020102010200020102820200020102880102010002010200 +01820100028402010201028202010284020102000201028b000201020002000200020001 +8101008100028b0200010001000200010001029302010201000200020001000100010201 +020002010101010283010200028f02010001020102010201020002000200880002000100 +0100020106018b0002000200010001000100010101820201028902010001000201000102 +810201810102020285000100010001820100028102010101850002000200028202000282 +020102020281010282020001010183000100010101820201028802010201020001000201 +028100028302010201010182020002870200020001000100020001018500020002010202 +028101020102860002000200020088000200010001000100860001000200020081000201 +028500010201000184010001000101018300020002040285000200010201850100010001 +0282020102070286000200010001008300010002010281000102018c0001020100020002 +010001000204028600020002000200850002000200010101820001020302030101008701 +000100020001028202010204028600020001000102010282010201820100010101830001 +00018201020185010002010201810100850001000100020102820001028102018e010200 +020100020102010002000102820201028302010200850002000102010201010290010001 +000200020001000100020100010284020102010285020100020001860100010001020103 +018400010201020102850001020102010101960200010001000102000200010001000100 +010200020002830200010281020101018402010002018a01000201020002010200028202 +0100 +860201020102000189010200020100010002018201020182010002010201010102820102 +018301020001810102010289010201000201020001028f02010201000102010201000200 +020001820102018e01020102000200020002000100010202028501020102010284020102 +010282020102820201029002000102000201000100010001000102018101020102020183 +020001009000020002000200010001000100020001028202010084000100010092000200 +020002000201000201020002000200028802010001000102010089000102010002010200 +028402000200028b02010002010001000100010084000100010207020101810201880100 +01000200020002820200018401020102018101008c000100010201000200010002008400 +02000200840002000102860201000200010203028101028202010202028a010201020102 +01000100010201820001028202000201028200010203020100810201010101028a010200 +010001000201000205028101028702010200010201008a00010001020100020102008100 +028202010083000200020102820002010101020281010282020002880200010001000200 +010401810001010102028300020002830200020084000200010287020100010001000101 +018500010001000183010200020102870002000200020102830200020003008102018201 +02018f010201000200020001020001000100028102000100900102010002000200010001 +000200020102840201020102820201028d02000200020001000100020102010301010282 +01020102018302010002810201a801000100020100010001000100020102010201020100 +010200010001020002010200020002010002018301000201830100020187010001020100 +0102 +890200020002010200020191010200010001000100020102000201020002860201020102 +010282020002820200028402010201020102830100010201028601020001020102840200 +01000286020002000100019401020002000200020002000102000200020102010201028b +000102000200020002010001830102010206028900020001000100020002020288000100 +020002000102030284010201000284020102010083000200018101020102010082020002 +030281010284020102000101018600010002000102040201008701000100010001008300 +010201070181020082000102030201008402000200028702010200010001008700020002 +000100010201820001008100018501000200020085000200020002890200020001020002 +000201020300860100010002000281020183010002010301810001010184000100020082 +000102010282010002010282010201020101020401820201020202860001000100020083 +000200010101820001008200010089000201000100020001020102010089020002000200 +020002008800020001000200020081000203020101820001008100010101830001000283 +020002018101020202810102820201028302000100870002000100010001020182020002 +0302810002040203019002010201000100010001020001000201028b0201000200020002 +0002010283020102008c0002000100010002000200020001008901000200020001020002 +8602010201020102840200010001840100010002ae020102000201000200020100020002 +000201000100020002010201000100010002000201000102010201020002000286020002 +01000102830201000287020002010201000182010001 +810102810201860102010201020184010002010001008301020102010201018102018401 +020002018101028702010200020001028102018301020002850201000201029a02010200 +01000201020001000102000200020002010201020102018d010200020002000200010001 +020103018202010201028a00010001000200010001000100830201000285020100010001 +85010201020102820201028402000200010101820001008100028102008b000100020002 +000200020002840200020102010285010200020001820102018201000185010001000102 +0102820100028a0200020102010201000102020286000100010001008400020100020102 +810002880200020100010001008100020302890102010002000200010081000101018700 +020001000201028502010200020081000201028100020302830102010201028101028102 +0103010102810102840200010001060182020102820201020a0283010001008100020302 +830001000187010201020102010201028501020001000104018102018901020001020001 +000200850002000200020102820001008700020002000200028102018901000100010001 +000100810001030182020002840200020002810201860100010002010283020100010601 +8300020102840201000102010282010200810002820201028a0201000100010001020102 +810200820002018c01000100020002000100020002830201000183010200028202010284 +020102010284020102010291020100020001000100010001000200020002810201020181 +020182010001830100010287020002000200010083000201020202820102018a01000201 +000200020002010101850201000100028802000100010201000189010200020102000201 +02870201020100010201 +840002010201860102000201020101018302010201840100020102010281010202028400 +020102018501020100020183010001028202010283020002018101028302010201010183 +000100020202820102010101940201020001000201000100020102010201020102010601 +8402010201028a0200020002000200020002860201000102010205020100880200010201 +0001000203028100028202000103018b0001020100010001000200020802840002000100 +830001000182010201010106028601000200020002840200010001030182000100810002 +070281010205028900010002000200020102010281010087000102010001020086000100 +010002008300020102020281000287020102000201020001008201000204028200020103 +018300010201820100010101840001000102810201830102010204028200020182010201 +050103028100028802010201000100010285020100010001830100010085000201000102 +8102008a0002000200020100020002010282000102860201000200020183010002008300 +0200010301820001008300010002020281000201028301020102820201028d0200020001 +02000100010001000101018402010001020402820002008300020002830201000104018b +020102010201000200010001810102840201000200830002010284020002000282020100 +8c0001020002000100020100010282020102930201020100010001000100020002000100 +01020101018100028202010202028e010001020102000100010001020002810201010181 +02010101820200028a02000200020100010001028702000201020002018e010201000102 +010201000102010002 +870201020102010001010181000101018102000100850201000100018301020001010182 +020002820201028402010201028502010200010282020102850200020100020102810002 +820201028c020002010002000200020002018101028102018e0102000200010001000200 +02000100020087010002000201000201028401020002010101880200010201020002008a +000200020001000100010203028201000185010200010002830201000102018500010201 +020185010200020002820200028302010201810102020286000100010001028602000200 +010002020282010201830100010087000100020001000102018300020102060283010201 +02820201008300020102820201008100018401020002008a000100010002000100010283 +020002008500020002000202028600010200020002040281000101018800010200010001 +0001010183020100018a0100010001020102000102020283000200020302810102840201 +000102820200028402010001008300020002840201020002010201010100030188020100 +020100020002820201028202000203028400020001000100010287010200010002000101 +018602000100010001860100020002010206028800020001000200010083000100010501 +830002000203028500010002010085000100020002810201820100010101010201008202 +0002820201028c0201020001000201020001000183010201028202010202028101028402 +000100028c02010200010001020001020102840201020102820200010101850001000100 +0181010284020001000201028a0100010200010001020102020294010001000102000200 +02000102010201020102010282020001010181000286020102010201028a020002000201 +0200020102 +8a0002010200020102000201020181000101018102018601000102010201810102010283 +010201028202010282020102820200018101028102018301020102820200020102810102 +840200020001010183020102018a01000200020001020001008b00010201020002000200 +020081000183010001008700010002000200020102830001020002000102880002000100 +010001020402870002000100020002010284000102000282020002810200010082010200 +850002000200028102018201000181010289020102000102000100010501850001020002 +000100820200028202000201028101028702000200010001008100010101820002008a00 +020002000200020102008600010001000100810002020281010201020501820200018601 +000102010001830100020083000200028302000102010283010001008100028602010002 +010201050181000104018100010101010286000201020001008300020002840200020001 +050181020186010201000201029002010200010001000201000100010002018301020100 +8300020102850200020001008e0002000200020001000102010201008500010002000288 +020102000100010001020181000202028701000200010002008900020002000200010001 +020184000100010284020001020086000200020002008900010002000102000201030183 +0201000283020002018d01000200020001000200020001008100028a0201020001000100 +020102020281010282020102810201870100010201020102870200010001000102820200 +018401020102019601020102010002010200020002000100010001000200018401000100 +02010202018a020102010001020002000286020002010200028402010001028e02010200 +0201020001000200010201 +870102000201020001820102010701810200020082020002820201028b02000201020002 +000102000282020102820201028102018101028502010200010282020102960200010200 +020002000200010001000100010001020102010288010201020102000201820100018801 +020100020002000202028200010201028601000102010002010288010200010001000102 +8c020102000200020001000100018301020102810201820100018a010201020102000100 +01008300020002810201010186000200020001008a00010001000200010002008a000201 +000201000102010081000203020100020182000100810002030201000201840001020102 +070284000200010089000100010001020100018301020002820200020402860002000102 +010282020102820201020102810102860200010200010287020001020100010086000100 +010001028202010282020102030282000200840002000102870200010002010002850201 +020001028402000102018601020102010001820100018401000100018601000200020002 +070287000200020002000282020102810201820102010201810201850100010001000100 +010285010201000200850002000200028102018201000287020102000100010001000201 +820201028602000200010002010201008302000102810201020182020102850201020001 +00850001000201028102018b010200020002000100020002820201028202010285020100 +010001830102010284020002000283020102010201010283010201020102010002018202 +0102860200020102000181010286020102010201028a0201000100010002000100010089 +020100020002000102018301020102860201020102010086000102010001028b02000201 +0200020102000200 +8402000200028f020100020002000201000201000100018d010001020001000102010200 +010083000201028102018801020102010002010283020001028502000100010201028600 +020001000100820001020102810102010202019402000200020102000100010002000100 +010002000188010002000100010201840100020002010281000292020100020002000200 +020001000200020102018401020100020302010082020001010104008302000100810002 +82020102020281000281020101018100018f010001000100010001020002000200028202 +010281020081000286020102010002008600010001000102810200840002000200810002 +070284000100010083000201020102050189020001000100020002008400020002000200 +010286000102010001028602000200020102830200010081000204020101810201010181 +000101010202810002840200020002830200020083000200028102018201000103018300 +02000282020002020283010001008100028f020100010002000102010001020102008400 +020002000200020283000102010201810002010283000200028202010081000103018100 +018101028202010283020002008400020001000200010288010201000100010001020187 +000102010002000203020100850201020100028102010201010083010200028b02010200 +010002000200020001008302000102820201028402010201028102018201000282020002 +870201000100010002820201020202810002860201020102000101018102010201810200 +81000183010200028f020102000201000100020102010201029802010201020102010002 +000201000100010001000100010002810200860001020100020183010002018201000283 +0201000282020100 +8701020102010002018d0102010201020102010001020100810001840102010201810102 +820200020102810102820201028202010284020102010201028101028202010201020201 +810002820201028202010201029600010001000100010200020102010001020102010201 +020102010182000100820001020202850102000200028302000102840200020002840201 +020102010292010201020100020002000200010201000200018101028402000100010201 +850201020102018401020001028502000201000283020001028202000103018402000100 +020202830002000201028101028202000282020102810201010181000102018700020002 +0002000286020002010002010101820201028a0201020100010001000100830001000102 +018502010200020089000100020001020102008200010202028100020102840102010201 +010182000201810102810201030101000201830002010282020002820200028202000285 +020100020102010201008301000201020182020102830201020181010290020102000201 +000100010001000200010087000100020102010205028a00020001000200020002008800 +010001000100020101018300010001010189000200010002000200028402010201028502 +010200010287020001000100010087000100010201000201028400020002008900010002 +000100020002810201860102000102010082000102820201028202010282020002810201 +010187000200020001020083000200028202010284020102010282020102890201000100 +010002000282020102810201850102010002010101870201020102000200010088010201 +000200020002810200010085020002000201820100028802000200020102010281020184 +01000200028802010001020100020183010002018201000288020100010201000102 +940102010201020102010001020001000102000100018401000102008200010201028a00 +020100020002010201028302000102850201000200028202010201028101028202010284 +02000200018301000102040282010201010184020102010201028c000200010201000100 +010201008c000200020001020001020100020102850102000201028d0201000200020002 +0002000201028f0201020100020002000200020001000190010002000200010002010200 +020002010201020100810201020189020002000100010001028302010200830002000201 +028101028902010201020002010200810001010184000100010204028301020102820201 +028602000200010001840100020102020281000103018700010001000200028202010284 +020102000201028100020402910102010001000100010002010002000201028302010001 +8a0100010001000100010201810102010201008302000102820201028202000281020182 +0102010101860002000102000203028300020002810201030183000102018e0102000200 +010200010002000201008100020102810102010204018202010284020102010085000100 +010001810102820201028202010203020100810200830002000283020102010701830002 +0102860201020002000288020002000200010001840102010001030101028b0102010002 +010002000200020102890001000200020001000183010201028402010001028a02000200 +01000201000102820201020202040181000182010001810102880201020102000100028b +020102010002000200020102930201020102010200010200020002000201000102860200 +010002000283020100018701020002010200028e020102010201000201020002010200 +8d0200020102000201020102010001890100010001020002000184010200010284020100 +020085000201020001810102850201020001028202010201028401000201020102820102 +010101820200028102010201860200020102010203028201020081000188010001000200 +0200018401020100010101850201020100028c0201020002000102010002000202028101 +028c02000200010002000100020001020183000100028102008300010001830100010201 +028400020001020102010181000204028500020002000103018400020001020302810002 +820201008300020002830201000289020001000100010001008400010002008300020001 +010182020102010281010281020102018702000200020100028202010001008102018301 +000200850001000100028202000285020002000102010281010283020102010101820001 +020202810102850200010001008900010001000100020102010281000203028101008300 +020102840200020102810201050184020001020181010281020187010001000100010001 +008502000102000282020102870201000200020002020289000200020001020001028602 +00010001000106018a000100020102000200020086000200020102010101820002018801 +000100010001000183010201028202000203028300020001010181000285020001000102 +820201028502010002010282020002850201000200028a02000200010201020001028f02 +0002000200010002000201000200028f0201020100020002000100010002000102018302 +00010284020100010202028a010002000100020102010286020100010200028502010200 +02010101810201890102010200020002010283020100018c010200020102000102010001 +0283020002018201000283020001020002 +8502010201000181010283020100010c0181020185010201020102870200010001020002 +850201020100020102830002010201028201000282020002820201020102830002000201 +028101020202870002000100010002040282010201840102010201010182020100870001 +00020001000283020100028c020002000100010001000100020102830002000282020100 +01008101028402000200028102018501000200020101018600010201020102820200028d +020100020002000200020100010281020189010001000200010001008500020001000202 +028900020001000200020001060188000201000200020102010201008401000100010101 +010082010001010183000102010201010284000100020081000202028101020102870002 +000201020102010288010200010001020102810201010101028100028202010283020100 +010301010281000203020100820200020202810001810102010286000201000100010201 +850201000200028502010200020182010001020183020001028402010201020702850002 +000102018401020100018201000186010201020102008700010001000100028202010207 +028401020001028b02010201000100010001000183010001020302840100020002860200 +020001020108018702000102010001020302810002020202018300020002870200010200 +02000282020002830201020103018d000100020002000200010201020101018100010401 +8902010002010001000102840201020102880201000102010200028f0201020102010001 +020001020102000192010201020001000201020002010200010201028802010200020100 +0102820200018301020002 +8a0102000201020002000102810201040183000100010501850200010200020102860001 +020102010201028301020002830200010283020001028502000102000201028100020102 +840102010201820100018101020402820100018c01000200010001020100010001010188 +020102010002010201810102840200010001010188020100010002000100860001020102 +000282020102830200010085000102010200810002840201020100010083020001000200 +040201018202010288020102010002000201010186020002000100020402010081020102 +0183000201028e0200010001000100010200020002000300810102820201028202010282 +020102820201028202000202028300020001860102000100010203028100020202810002 +040283000200018501000100010203028101020102810102020281010087000100010001 +020101018302010002010283000102008100020202810102010201010202050101028100 +028402010201008100010101820001028202000201028201000204028401020001020302 +840002000102820201028302000102810201050187000102010002010084000200020002 +000102810102820201028302010001040181000182010200030081020085000200020001 +8101028602000200010001010182020002820200028c0200020001000201000200020086 +000201000200018c01000201000200010201020002860200020002000101018100028702 +010201000200020102810002810201880102000200020002008800010001000102000284 +02010201029a020102010201020100020102010201000102000200010001000201820100 +028602010201020002840201000102820200018701020002010200010101 +820001028802000102010201020182010001820100010301850201000100010201830201 +000201028201000284020100010281020181010282020102820201020102010182020001 +830102010283020001028202010204028801000200020100010201028e01020100010002 +000100020001020184010001020083000100020102850102010001008100018b01020100 +020002010200010085000200020002820201028502000201020181010283020002010101 +840201020002030283010002008100020202830100010281020001008201000101018302 +0001028e0200020002000102000100010201000200040182000102060282010201010101 +008302000200010081010081000101018100018901000100010201000102010281010084 +000100010081000202028300010201030101028301000201820100020602850001020102 +01020182000102060281000282020002810201020101028101028d020002000200010001 +000102010284020100020102018102010201850200010200020202010103028101020102 +830002010202028601020001000201830100020085000100010001010182000102820201 +020502840100010200010082020001010185000100010001010183020100028902010002 +000200020100820001028902010201000200010201810102820201028202010282020102 +820201020102820002010101830002000287020102010001000282020002840200020002 +840201020002830201020081000186010001020100018101008100028402010201020202 +010001028101020202970100010001000201020100010002010201000102010201028502 +0100010201830100010286020002010200028b0201000201020002010200028702010201 +02010001 +890201020102010002010281020182010201030181020101018102010301810002010201 +010102810002850200010201028202010282020102810201810102820201020102810102 +810201810102820201020102930001000200020102000200020002010002000100850002 +010201020102820100028a02010200010001020102008800020100010002000201028700 +020001000200020202810102850201020102018601020001000102850200020102008200 +020001000101820001008100028602010200020102840200010002030202018200020002 +000202820102008200020181010206028401000100010101830200020002008f02000200 +020002010201020002010001010181000283020002010201020084010001000207028501 +0200020102010284010001000181010204028101028a0200010001000200020002830200 +010283020102018501000200020084000200010081000282020102820200020102810102 +050283010201028602010201000100830001000101018102008600010200010002820200 +0201028100020102820002008c0002000100020102010201020108018800010201020001 +020001008202000201020401010088020001000100010001830102000281020081000201 +028600020100020001820102010101840002010201820100010101010083020001020202 +810002820200028202010286020102010200018301020102820201028e02000100010201 +020100020002000287020100020002000103018300010002810200840001000102850201 +020100018801000100020002000103010202830002010286020002000200018101028102 +008200010283020002018601000102010001010181000288020102010201000102820200 +010101 +8c0002010201000100010001000182010001860100010002000182010001860100010001 +000183010201028202010283020100028202010283020100028302010201810102010281 +010282020102810201820100010101010286000200020001028802010200020102010082 +000201840102000200810002850201020002008100010101830002010201028701020102 +010001028402010201028302010201010182020100850002000200028a02010201020102 +010201028702000102010200020302850002000200028302000102020285000100010200 +830001000188010001020100010002050202018202010281020103018300010002030281 +010203028500010002000202020100830200020181010281020182010001830102010085 +000102010001830100020081000201028500020102010204028201020102018202010202 +028100028202010281020181010285020100020002820201020302840102000102820201 +028202010204028700010200020100010201820001028102010701830201000202028100 +018101028602000201020002850201020100018c01020102000200020001000200850001 +000100010101810001820100020202820102008400010001028202000283020102010601 +010282000102830200020001008202000282020102810201030182000102810200890002 +0002000100020102820200028502000200020101018f0200020001020100020002000100 +010282020102820201028102018201000285020100020102840200010201010101028101 +0202028100020202820001008100028b0201000100020002010200028802000200020001 +000186010002000201028102008200010282020002870201020102010001830102000284 +020100010288020002010200020102810201 +820200028302010002830201020102018100010701810001860102010001020182010002 +010281010285020102010002820201028302010002010281000181010202028100020102 +8101028b0200020102000200020002000100820201028102008100018101028902000200 +0200020102008200010201020100840201000102820201008400010001028e0200020002 +000200020102000200028d02010200020002000200020001028302010201820102010101 +820002008300010002020281010081000203028101008100028102010501010283010001 +020202820100028902010002000200010001850100010001008100010101010082020002 +830201000203028101020102860102010001020081000281020185010001000201810100 +810002810200840002000200810002010289000201020100010001028202010205028e00 +020002000200010001000201000181010203028300020002820200028802010002010002 +000283020100020202810002020207018202010083000100018301020001010101000202 +010084020002000201028500010001000181010001000102880002010200010001008100 +018101008100018201020184010200020081000282020102820201028102010101890001 +000100010001000182010002810200810002030201018300020002830201000101018502 +0100020002830200010287020100020002000203028101028c0200020002000100020002 +000282020102870200020001000102820200028402010201028102010201830001020181 +010282020102850200020002008100018201000286020102010201028b02010201020001 +0200020002850200020102010201810001010101028d0002010200010201000201020002 +820201008e000200010201000100010002000100 +850201020002018101028502000201000102018100018401000100010201810001010181 +000101018102008300010002840200020102820201028202000283020001028502000102 +000201028200010201028101020102810102010295000100020102000100010201020102 +010001000200020402820100010101040281000201028300010201810102820201028702 +000200020002008a00010200010201020102010201820001020202810002830200010001 +009102000201020001020102000100020002010203028100010101010282010002050202 +010102010182020102830201020105018102008300020002010281000282020102020285 +000201020102820200010101810201030184000102000182010002010283000200028402 +000200028302000102020201008102010101820201028202010286020100010201020102 +810002020282010001010181000284020102010206028100010201850201020001028202 +010282020102810201840100010201070101008402000201028302000200810002010283 +000102010401020281000204020300010185000100010001870100020002000200010081 +01028b020001020102000100010001040182020002010201018200020082000102010201 +008102018601020100020102880200020001000200028202000284020002000282020102 +820201028202010202028101028702010002000200028202010283020102018a01000100 +010201020100010101840001020102840200020002820201028202000283020102009000 +020002010201020001020002000201028e02010001020002000102010002000284020100 +0102860200020102000284020002010282020102850200020002018201000101010002 +830102010287020001020102000102018102010c01830001020083000201028202010286 +020102000201028202010281020181010282020102820200018101028602010200020102 +01028101028102008a000200020102010201020185010201020102020282010201860100 +020002000182010200850001000100020702870102010201020002890201020102010201 +020083000200020102810002020286000200020002010201810002850201000200020302 +840102000201010181000103010300820100020102010006028100028202000202020501 +820001008100020202810002020281010281020183010201020102830100020102018100 +018201000102018100020102820001020202830100020081000202020101830201020181 +010285020100010200810002820200020102810001030183020102018101028202010201 +028200020082000102810201010105028101028502000102010282020002810201020182 +000100860001020102000183010201020102840002000102010281000201028300020001 +820100028202000203028101028102010301850001000201028102018301020002010281 +010285020102010002850201020100010201850001020102010101010281000201028101 +02880200010001000100010101830002000282020102820201028d020102000200020002 +00010201028a020002000100020102000282020102820201028402010201028202000202 +028101028402000100010101860001000100010284020002000285020001020102860201 +02010201028b020102010002000200020102810200840001020002870201020100020002 +8302010001010184000201000183010200028a0201020100020001000201820102018401 +02000102 +890102010200010201000295020102000100020100020001020001000102000201028102 +010101870001020102000102830201000284020102010201028100020102860100020001 +000282020002870201000201000102810201840100020102020291000102010001000100 +01020102010201020185010001020102850200010201028c020102010201020102000100 +0181010002008202010204028100020102040101028a0102000200010200010201830102 +010281020182010201820100028a02000102000200020100010101810002830201000283 +020002018101028102010601810001820100010401860200020002000282020102820200 +0287020002000100010284020102000281020102018100028d0200010001000200020001 +020002040283000200028102018101020602810001950102010002010200020002010201 +000100010001000201028101028402010200028302000201830100010083000201020502 +810001040182020100830001000102010100820201028202000206028300010201810102 +810201840102010002020286000200010001000100030184020102000201020300010182 +000200840002010201820100010301810201830102000201028500010001000282020002 +840201000201830102000282020002010281010282020002820201020102010001020101 +830201020186010001000200028402010201028502000200010284020002010283020102 +018401020100018201020101010102820100020402840002010001830100010286020002 +000201028402000201020102030184020002000286020100020102018d01000102010002 +0100020102000286020102010002018301000201820100018601000102010001 +8302010201010183020102010f0101028601020002010201830102000201028101028302 +010002840200020002010282000102010281000201028401020100019201000102010201 +0201000102010201000100018101028b0201020102010201020100018f01020102000201 +020102010001020002030282010200860002010002000207028101028102010101820201 +028602000200010001050183020102018301020102820200028502000201000281020102 +010102820001008100018201020001008102008600020002000201810102820200020102 +040103008801020002000200020081000101018102018101020302870002000201020001 +030181020183010002018301020102010281010202028100028202000203028200020101 +01840201000100010001028a000200010001020002000201028a01020102000200020002 +0083000200028502000200010283020002018101028102008500010002010201020a0182 +000102870201000200020102010283010200028602010002000102050283000102010801 +810002010289000200020002000201028102010101830201020101018200010083000100 +018101028302000200830002000202028101028302010001010101008c01020001020102 +000100020102820201020102020185020100020002840201020102810201820102018501 +020102010282020102820200028102000200830200020182010001040181000285020002 +000200010085020001020102940200010002010200010201020002000200010200020202 +8b0100020102000102010200028302010001010181000289020100010002010200028c02 +000201020100010201020001 +8100028a0201000200020002010001840100010001840100010001860100020002000282 +020102810200900002010200020002010002010201000102010282010201810102010281 +000202028100020102810102010281010201028900020100010201000100010001018402 +010201020302810102860200010200020081000201020100820200020102010108028c01 +020100010002000201020001010182020102060284010201000101018500020001000202 +028200010201028500020001020002008701000100010001008100020102830002000282 +020102820201028102010101810001050182020002010281000284020002000201028300 +0200018201020181010283020102018201000101018a0001000100020001000100850001 +000200028b02000201020001000102000201028400020002008100020502810102810201 +8f0100010002000100020002000200020081000201028101028202010201028201020083 +000100020102820002008100028102010301840002010001820102018201000281020188 +010001000200020002020281010285020002010001010101028101028a02010001000100 +010001020302010081020181010283020001020202010183020100010401810201810102 +030283000200028202000182010201810102810200810001840102000102830201000284 +020102000187010200020002000283020100010101820201028702000200020001028702 +000200010001028202010285020102010201840100020001820100010101850201000200 +020102840102010201020101028301020102010291010001000200010001020002010200 +010001010181000284020102000287020100020102000287020100010002010284020102 +000283020102018201020181010282020002 +860002000200010282020001840100010001820100018601000100010001860100010002 +010282020102010281010282020002820201028802010201020002010202028100018301 +020002820200020102810002010281010201028601020102000201020182020002010288 +000100020002000200010090020002000201020102010200020002010281020083000200 +028a02010001000102010201028102018601000100010002010286010201020100018101 +028502010201000182010002870200020100010002010282010002020283010201028102 +010401830001000282020002040282010201010101028100010201010083010001020402 +020003018202000203028100020202820100010101850001020100010101810002030281 +000205028100020202020101020101830200020002008702000100020002008100028302 +010201820102010101020281000282020002010289010002000100010002008100028302 +010200820001028302010001820102018201000188010001020001000102820201008300 +020002010284000200020101018502010002000282020002840201000100810001040103 +028100020202840002000200840001020102810201030186000100020001028302000102 +880200020002000102000100010181020101018202000283020001028102008300020002 +830201000201028301000201930100010200020001000200010001000200020102820201 +028102018501000200010285020102010201020182020102840200020002820200028302 +000200870002010002000201870100010001020002020282010201010184020001000186 +010200020001028602010201000201820100028902010201000201000201830100020184 +010001020101018202000101010002 +0101850201020102011001010202018d0200010200010001020001020102820201028702 +010201020001028202000201028401020100020202810102010281010201020101820200 +019601020002000200020002000200010002010201020102018601020100020001820100 +018301020102820201028102018101028a02010201020100010001020702820100018501 +020102010201020100010287010001000102010282020102020285000200020102910201 +000201020100010001000102010200020202010181020182010201010181000182010200 +010004018300020002820200028402000200020202820100018101028202010282020100 +820002010501820200028102010601040201010102810102850200020001000100810102 +820201028202010201020101010083020001020202810002820200020702030101028101 +028102010201010283010002008100028302010001010181020102018102018601020001 +000201850102010200028302000102820201020202830001000282020102830201020181 +01008b000100010001020102000200830002000101018102010101810001810102870201 +000100010001850102000201020302810001010101028101028102010301010285010002 +010001810102820201020302860100010200010282020102810201020182000102820200 +028102018501000100010285020002000102020201018500010200010081000201028100 +020102830102000202028801020102010002010284020002000288020100010001000102 +83020102010101810002840201020002840201000201820100028c020100020002010002 +01020002850201000201028302010201020101020000 +010288010001020102010201820102010101810201820102010301820201028402000201 +028202010286020102000100028202010281020184010002000282020002010285000102 +000102830200010201028101028202000101018202010294020102010201020102010201 +020002000100020002010283000200020402010102000102810102010281000183010200 +020502810001010186000102010200028102008400010201020102830102010201020301 +860200020002010282020002820201020202830100010201020201870001000102000102 +010281000202020101050281010085000100010001840100020002060281010082000102 +830200010081000202028301000100810001030187000100010002000286020002000201 +028202000286020102010001028202010201028201000288020001000200010002010281 +010283020102010201030281000205028800020001000100010083000201028502010002 +000281020109018202000202028200020083000200020402810102020201000202880102 +010002000100018401000100018101020102010105028600020100010201820102010601 +810001010103028100028602000200020002810201820100018201020183010201028202 +010201028200020084000200010201028101028502000200010281020083000201028502 +010201000181010282020002810201010183000200028e02010201000100020102010201 +00020502860100020102010202028301020102810201010101028f010201020002000100 +010201000201028202000283020100010101810002850201000200018a01000201020001 +0201000101018b000200020002000102010201 +880102010001020100018401000100018901000100010200010002870200020001020102 +820201028702000201000100018201020183010200020102860100020102010285020002 +0102010101810001840100010002820200020102820001028c0201020102000100020002 +010206028801000100010001020101010102880001020002000200020102820102010101 +820001029102000200020001020102010201020102010202029201020102010001020100 +020102010201020102010281000202020101030282010001020181000101018202000206 +020200870100020002010201020185000102010002010281000201028100028202010203 +020301830200010001000501010286010201000201020302830002010203020100840200 +010200810002020281010282020102810201810100890001000200020002000203028200 +020081000284020001000282020102040282010001840102000200850002000100010101 +810201810100850002010200020402810102820201020202820102010101820201020302 +870100010001000100860001000100010283020100020502810102820201028302000201 +010185000100010001830102000203028200020081000282020102830200020184010201 +000282020002010281010282020102820200028402000201028702000100010201028302 +010201010182020002840201020102830200010083000201028302010201020181000102 +01810201810102020286010200010201028402010201028202010202028c010200020002 +000102010001028702010201000201028202000284020100010282020002820201008c00 +0102010002010200010201028402010200010301870002000201020002 +890200020102000201020107018102010201830201020183010200020302810002820200 +020102840100020102840201020002820201028202010201028101020202810002010281 +01020102810102020281010202028301020102030287000200010001000101018b020102 +010201020100010001840102000201020102028100020102840102010201870102010201 +020002820201028202000282020002010281000101010102820102010201810002880200 +010001000201028202010204028d01020100010001000100010200020402830002000204 +028401000100028502000100010083000100020702020184000100020087000200020001 +000106018300010002010281000205028300020001840102010201810102010281000282 +0201008a0001000200010002000102820201020402810102010281000204028100028902 +010200010002000100830002000201028300020002830201020102018102010201010082 +010002840200020002020287000200020001000202028200010083000100020102080185 +020102000102840200020002010286000200020002010801830001000202028700020002 +010001000300870201000100010200820001028202000287020100020102000282020102 +820201028202010287020001000102010282020002810201830102010202028101028602 +000100010200810001010188000201000200020002010283000201028b02010201000200 +020002000284020102000284020102010202028301000102810201840102010201830100 +0102820200028a0201000201020100020102810201010183000201028202010285020100 +0201020602 +810201820102008600010200020001820100018401000100018601000100020002810200 +810002820201020202810002010287000200020002010282020002820200028202000101 +010302810102830200010201028101020202810102010283010001028202010081000101 +018200010285020002010201010182020102010281000287020001000102010201028300 +020002850200010001020402810002860201020102010281020101010102010181000201 +028500020002000201028200020187010002010002000283020001028202000282020002 +810201070182020102820200028402000200020102010082020002830201020106010302 +820100028b02010201020102010201020101010102810100020004018202010282020002 +020281000205028100020102810100820001008200010081000181010281020181010204 +020100890200010001000100010201028301000200810002820200028302010201020101 +028101028102018301020102810200010002018100010101820200028902010201000102 +010002840200020002030281010282020102820201028202010287020102000100010086 +000100010201020102810102090281000282020002870201000100010201010102028100 +020602810102820201008100018101028202010289020100020002000200020302850001 +000200028202010282020102820201028302010201830102010282020002850201020100 +0181010285020102010201820102018201000283020100020102810100820001028e0201 +020100020102010201000200028b02010201020100020102010281020188010002010001 +020102820200028a02000201020001000201028602010201000201840100010201860100 +0201020002010281000282020002 +8a0102000201020102010201820102018201020182010201810102860201020002000201 +028100020102820001028702000100020001020302830100020182010002010202018200 +010201028101020102810102020282000201010182000102820201028102018b01020002 +010001020102000283020102010501010201018500010001000202028100028302000201 +010184020102010289020100010201020100028202010081000282020102830201020106 +018102008100020502010102028200010081000101018600010001000102830201000282 +020102030282010201830102010202028501000100010088000102000200010002820200 +018701020100020001028602010001000102810201050186020100020002008400010201 +020302810001020184020002010282020002010201008902000200020001000100830001 +00020102810002080282000200880002000100020002008b000200020001000201020001 +0a0181020084000100010282020102020281000202028600010201020002010283000201 +028402000100010401820201028102008300020002010201008202010288020002000200 +010001810102820201028402000200020102830001020081000285020100020002810201 +830102000286020102000200028202010283020102018301020102840201020102810201 +830102000282020002820201028202010282020102830201020185010201020002890201 +000100010201000282020102020284000102010285020100010002810200810002020281 +010288020002010201020002870201020102000102820200028502010201000283020102 +018601000100020102850201020100018101028102018201000101018402010201028202 +000282020002810200 +010201018202010281020103018102018201000186010001000200020202830102000282 +020002060281010001008701000201000200020202820001020102850102000201020102 +820102018201000182010002010281010201028701000102010201020202820102010301 +02028801020102010001000187010200010201000201028e010201020002000100020002 +0001028102018101020302810102850201020002008c0002000200010002000102000183 +010201000100010282010002010206018102018101028902010201020002000102820200 +020102810002010281000101018102018201000102018300020102020281010282020102 +810201020101028101028602000100010200010004018200010203028100028302000102 +010281000283020001000300810200820002008800010201000200010282020102010281 +010282020002820201028202010282020002030281010287020002010200010083000100 +020102810002810200820002008300010001020184000100010282020102010201000302 +820102018101028202000201020a01820001008300010001830102010283020102010301 +060201008302000200820002018101020102810102040282010201870102010002010002 +010284010201000283020102018101028202000202028101028502000102010283020002 +018301020102820200028202010282020102840200020102840200020001040181020101 +010102810102820200028902010200010001020102850201020102018301020002020281 +010202028601020001000102820200028802010201000201000101018202010282020102 +870201020100020102810201040183020100018301000102030282000200 +870201000102010002820200018401000100010101850201020002008600020002000102 +870200010200020002010288000102010001020102820201020102020102028201020182 +010001010181000181010201028101020102810102010201018100028802010200020001 +000201028601020102010201010105028600010002000102020201008202010281020181 +0102010282010002010288000200020001000102840200020102010201018c0200020002 +010200010200020101018102018101020302810102010201018302000102810201020182 +02010205028101028202000181010203028300010001010184000100010202028100028a +020002010002000200010083000200018101020202070184000102010282020102030281 +000283020100020102010002010402810102010287000100010002000281020182010001 +010102028100020302820001028102008800010001000102010283020102010201010201 +018300010001030184000102010284020002010282020102020281000201028101028702 +010200020002008900020002000100010001890102010201020100010201028100020102 +830001000284020102010001000102030182020002010286010200010201000100010183 +020102010201860001000201020181010282020102050284010201000282020102820200 +028202010287020102010002010282020002820201028402010201028402010201008200 +020189010002010200020002010101010283010201028b02000100020001020102000281 +020101018202010284020102010285020100020102830201000181010282020102870201 +020100020002880201000201000201020402020101028300020102010283000200020002 + +8a0102010001020100010001020188000102000200020102020289000200010002000200 +020402810001820100018301000102830200020184010201000181010202028200010201 +028101020202810002010281000281020183010201020102860002010201020103018402 +010201028902000200020002000201020181000101018100020202810001820100028502 +000201020185010201020102850201020102018401020102008100020302820100018201 +020103010602010105020101820201020202820102018401020001028202000201028300 +01020105010102850100010001008a000102000200020100020184010201020181010202 +028101028102000400830100010282020002860200010001000205028100018101028202 +000201028200020082000200810002010281010281020101010302810102820200028202 +010204028100020202010182020102850201020100028402000200028402010002000200 +050183000200018101028402000201020702820100028402010001028102010901010082 +01000181010201028100020202820102018101028b020102000100020100010002840201 +020002010281000281020186010201020102018201000183010001028202010201028101 +028202010282020002020202018300020002820201028102018301020102820200028202 +010283020102018801020100010002000284020100010281020182010002850201000200 +028402010201028902010201000201020102830201020102018400010201028402010201 +028402010002018201000102018100018301020002850201000200028302010001830100 +01028502000100020183010201028702000201000200020102820002000000 +8201000283020002010401810001020101028b0002000200020002000201008100028402 +010200020102020181000103018202010282020102810201830102000202028101020102 +810102010281010202020101820201028202010201028501000100010282020102010282 +0102018b0102010201020002000200028402010001028402000100018301020102010282 +000102010281010289020001000201020002000200010285000201020102020283010201 +008500020100010082000201010102028200010201028101020102850001000100010101 +840001020002020281010202020101820002008500020001000105018202010282020102 +020201008702000100020001008400010001020102810002840201000201020109028100 +028302000201010182020102820201028102018201020181010282020102860201000200 +010283020100020c02830001000202028500020001020102010202820102018601020100 +010001020181020181010282020002820201020802010087010001000200020087000200 +0100010001020182020102050283010200028a0201020100020002000100820001028202 +010209028801000200010001000102018202010201028500010201020101010502810002 +820201028202010284020002000282020102830201020181010284020002000282020102 +850200010201020202830102000202028201000286020102000201028702010002000200 +028502010001000201028101028202000103018400020001028202000285020100020002 +820200028502010002000282020001840102000102820200010101870001020102000102 +840200020102010285000200020102 +880201020002010200018401000100018701000100010002008300020102820200028802 +000200020002010201028501020102010085000100020100810001810102010282000201 +820100020102820001020102810002010281000186010201000201020102820100028402 +010200018501020102000201028101028802000201000102010289020102000102000100 +020102810002010281000283020001028202000288020102010201020102820200020602 +060101028100018201000185010002000102820201020102810102010202018902010201 +000100010002820200020102810002010281000102010302010184000100010001000502 +820002008400010001028202000282020102040288000100010001000100010081020083 +000200020202810102840200020102810201810102820201028202010283020002010201 +030281010282020102810201010182020002010282010002060201018102018101020302 +830002000103018802000100010001000184010002000203028500020002000202028401 +000200028202010285020102000100860001000100010004000102810002010281010201 +020801820201028502010200010282020002820200028202010283020102018301020001 +830100010283020100028202010285020100020102030281000184010201000282020102 +820200028202010287020002000102010287020002000102010282020002810201010101 +028300010002820200020302010181000284020102010289020100020100010200028302 +010201010101028600020002000102820200028202010082000102820200028502010002 +010282020001840102000102820200028202000186010002010200018a01000200020002 +010200028302010001 +830102010201020901820201020102810002010205008202000204028100028302010002 +850201000200010101820201020302830002010282020102020201018202000182010002 +010282000102010282000102010281000201028301020102020287010200020002000284 +020102010085000201000201820100010101830001000285020001020102020284000102 +010203028201020102018402010201028602000100020102810201010101000602810002 +030281010281020102018200010285020002000102050281010201028400010001008600 +010002000100860001000100010282020102060281000282020002890201000200010001 +020186010001000100020102810102810200810002040281010082000200820001028302 +010201010104028101020102030101028101028402010201020702010184020102010203 +028101020102010182020102010201018202010201020401850200010201028202000282 +020102030284010200010282020102820200028502010002000105018202010206020300 +890100020002000100010081000101018202010204028601020001020102860201020100 +020102018202010285020002000102010281000201020101820201028202010283020102 +010101820201028202000285020102010201010182020102020281010201028100010301 +810002820201020302820102018801020102010002010286020102010201028402010001 +028602000201020102010281000101010102810102870200010201000201810100810001 +840102000102830200020182010002810201810102850201020002018101028402000200 +0283020100020102 +820200028102010801860200020002000281020081000201028200010201028100028402 +010201020102810002820201020202020083010001020102010001018100028502010001 +000183010201028202000201028101020102840001020102040291010002000201000201 +020102010002000102820200010401810201020101028501020100010281020181010203 +020101910201000102010201020102010001020102018201020184010201020182010002 +820200020102820001028202010201028800020102000102010201028a00020001020001 +000201028102008400020100020102830001020106010302810002040282010201040104 +028c010201000100020102000201020a0282000201810102820201028202010283020102 +010101810201810102810201830102010201028101020102810102030281000202028201 +020183010201028302010201010182020102810201810102810201010187020100010001 +000182010002820200028202010209028300020001010186020102010201028902010001 +000100010002860201000201000201028100010101810002890200010001000200020081 +000282020102040201008501020102010281020102010100820102010101820200020102 +810102820200028202010001008701000100010001028202000285020100020002870201 +0001000200028d0201020100020001020102010201830102010204020101810002820201 +020202810001810102850200020102018301020102850201020102018401020100018101 +028102018401000100018601020001020100830002010282020102820200018201000183 +01020002810200860001020102010284020002000283020100020102810002 +870001020100010001860100010001000284020102010204028100020302810002820200 +028c020100020002000201000100018401000201028c0200010200020102010002000201 +0281010201028100020202850102000100028202000201028100018b0102010201020102 +010201020202030181020181010203028801020100020002000201028200010203028400 +010201028502000201020102018202010285020002000100830001020184010001020081 +000282020102830201000207028201000282020102810200010001028400010200020102 +010081010281020102018400010201028302010001010181000183010201028202010201 +028301020102030281010287020001000201020101018500020002000184010001000201 +028100020502820002008100028102010101820201028602010200020102040201010102 +01018b020102010002000100020002840201020002830200020183010201028302010201 +030181020101018100020102010186000100010200028602010200020002030281000202 +028101028702010200010002010801090284000100010086000100010201028102010201 +820001020102830002000201028200010281020182010201020181020181010204028101 +028202000282020002890201020102010002000286020100020002018101028202010282 +020102820201028302010201830102010281020106010502850002000200028302010201 +83010201028902010201020001020102860201020002000282020102820201028e020102 +000100020102000201020002840201020002010281000184010200010287020100010002 +0102820201020202810002870201000201020002810201 +830201000182010201820102010201810002010282000102860200020002010284020102 +010282020002820200028202010201028100028902010201000200010001820100020102 +840002010201810102820201028202000204028200010202028101028202000181010201 +028101020102890100010001020100010205028500020001000185010201020102820201 +008600020102010001840102010001010101028300020002850201000100010201810201 +010181020182010001810102010282010201810102030201010102010002020100820200 +020102810001010183020001020302850001020001020602070188000200020002000201 +010181000201028201020101018102018201020106018200010207020101050281010208 +028101020102830100020101010302860102000102000204020100020201018102010101 +040281000286020001020102010101850200020001028602010201020002010281010206 +028601020102000102820201028102010401830001000103018200020087000200020002 +000106018100010101860001000200020081000282020102810200810002880200020001 +000100018501000201000282020102810201820102018101020202810102020281010284 +020102010281020186010001000200028402000200028802010200010201000201028100 +010201810002010281010282020002820201028902010201000200020002840200010002 +860201020102010281020183010002018401000200028202000282020102820200028802 +010002010002000201028100018301020002880200010201000201028702010001000100 +028b020100020100020002010002 +810002010286000102010200018901000102000201020002820200020102830102000183 +010201028202000201020101820200020102810102840200010001810100880001020002 +010201020202810002010281010202028301000102010281010285020001020102010282 +000102810201810102050202018602010201020002030281000201028100028402000200 +02010283010200028502010201020104018102018e010201000102010001000200020002 +86020102000200010101810002010281000282020102030281000201028c010200020002 +010200010201020102850002000200028202010281020182010001040181000183010200 +020602820102010101070204018500020001000181010203028301020002040283000200 +020202020181020186010201020100020102830001000101018202000201028201000284 +020002010202028200020081000202028401000100028202010202028201020106010100 +830102010282020102820200020202010182020102820200020302010182020102810201 +080101020100010286000200010002018501020001000183010201028302010201820100 +020502810002830201020084000100010082000201830102010282020102040281010281 +020101018202010289020002000100020001020402020182020002020281010285020102 +010201010181020183010002018101000100030286000200010001028402000201028402 +010201028902010201000200020002850201020100010101810001840100020002850201 +000201028202000283020100018301020001840100020001880102010201000201020102 +8301020002850201000100020202810100 +850201020102010101810001020182020002860200020102000202028100028402000201 +028102018401020001028202010283020001028402010201028202000101018400010200 +010101830200010201028300020001830100010202028101020202810102020281000282 +0201028b0201000100010001020102018e01000100020102000100020102010207028100 +0106018a0201000200010001000100820002008100020102850100010002008100028202 +000103018100028302010002030282000102830201020181010284020102010201020101 +810002030282000200830002010282020102830201020105010402810002840200020102 +040281010282020102830201020101018600020100010002010281000282020102820201 +020402880100020001000200020102840100020002830201000282020102830201020101 +018b00010001000200020002010282020002870201020001000102820200028102000100 +840102010001020183000100018301020102010285000200020102020281000204020101 +830002010204020701010281010206028101028102010201810201030186020001000201 +028b02000200020102010002000281020101018100018301020002840200020002020281 +0102820200028902000100020001000100820001028d0200020001000100010002000102 +830201020101018802000200020001020183010201020102810002010201018202010202 +028101028202010286020102010200028402010201028402010201028202010282020102 +820201028102010301850002010002010201810001840102000201820102010201810002 +8202010284020102000282020002870201000100020102010282000200 +830001020107018100020102820002008100020302830102010201028100028302010201 +870102000201000102830200010202028401020100018201020083000201008200020181 +010083000201028402000201028202010201028401000200020102810102820201020102 +810102820201028102018101028102018f01020102010001020100020002010201010184 +02010201028a020002000100020001000101018600010002000201020184020102010281 +020102018102010101810002810201020101028101028102018401020102010101010286 +000200020100010101810201810102060281000101018202010283020102010501820201 +020102890002010201020102000201028401020102018301020001010185000100020001 +810102820201020402810102030201000102820102010101010281010201028101028102 +010501010281000201028201000205028100010401820201028402010201028202010281 +020182010201830100010002008101008500020002000204028100020202850002000200 +020102810102010283010200010501020201018400020002008100020102020101028201 +020107018102008400020100028402000200028202000283020100010101810201840100 +0201028502000100010206028201020183010201028102018301020102820201028d0201 +020002000100020002000102830201020102018500010002000202020100010283000200 +028902010001000200020102820201020202810102840200020002850201020100028202 +010282020102820200028102010101810001820100028102018701020002010002018a01 +00010002010200020102050288010002010201020001840102000201 +840100010001840100010001820100018101028602000201020002040281010283020002 +008100028202010282020102010284010002010201028101028102018601000200020102 +0202020184000201000282020102030281000182010002820201028102018e0102000102 +000100010001000100018c01000100010002000102010201010185000100020001850100 +010201020102880100020002010201028102010101010281010203020101010202010102 +810102830201000281020101018500010002000203028700010201000200028202000101 +018902010201020102010200830002000201028201020101010402030181000182010002 +020284010002010281020101018202010282020102810201840102000100020088020002 +000102010001840100020002030283010201028202000282020100880001000100010001 +020402820100028502010001000208028100028d02010200010201000100010001028202 +010283020102010301810001030101028600020001000100810002040281010286020002 +010002018401020102018201000101018100018101020802810102820201020102820102 +010501820002018101028202000203028400020001028202010281020183010201028602 +000100020102820200020202830100010291020001020100010001000100010001020102 +830200020184010201020004008102008500020002000202028101028102018501020102 +010284020102010283020102018501000102000282020102850200020102018201000181 +010282020002830201000288020102010002010002850201020100028302000102840201 +02010282020100840001020002030283010002018201000286020102010201020102 +850201020102010401820001008100028302010002010281000201028100020102840002 +010200840001020102010288000102010001020002010281000202028601020102000100 +81000204028100020202810001810102020284000200010201028301020002010201018b +020102010201020102010201810100010081020088000102000100010001010103028100 +028102010201820201020302020183020102018101028602010201000201020184020100 +010281020102010102840102010201020101008402000200018301020001010181020101 +010202830102010208020101820200010301820201020602850102010001028602000200 +020002010288010001000100020002010281010202028100020202010086010002000100 +010101820201028202010204020101810201060182020102020201010102820002010101 +010281010286020102010201028302010201020186000100010001008200020084000200 +02008200010207028e000200020002010002000102010200010004010102850102000201 +020202810002030201018100010301810201830102010203028101020302010181000183 +010201028102018101028502000200010201020101040284010002010283020100018201 +020184010201020101018202000102019002010201020100010201000201020100020102 +810002030203008a02000100010001000200020202810102830201020101010102810002 +8102018201020081000285020100020102820201028c0201000201020001000201000281 +020101018300020102820200020302810002870201000201020002820201028402000201 +0282020102 +820100018201000101018100010101850200010200020102810002810201820100028202 +000282020102820201020102810102820200020102810102830200010282020102820200 +018301020102820200028202010286020100010201020102820001020302810102030281 +010282020102010285000100010001810100040001018200020185010001020102010285 +010201020002010281000201028100020202020182020002820201020202820002010201 +820201028402010201020302810002960201020100010002000100020002010201020002 +010201010181000102010302810002020282000201810102030281010281020102010100 +81010282020002010282000200810002020281010281020181010201020101820201008a +000102010001000100010281020083000200020202020104028300020002860200010002 +00028e020100020002010001000100010002820200020502850001000200028402000100 +028202010282020002020208018202010281020187010201000200020002000602820102 +018101028302010201890100010001000100020102010202840002010201840102000102 +82020102820201028202000185010002000102060282010201820102010101010204018a +020002000100020002000102018502010002010281020187010200020100020186010201 +020100010501860201020102010081000201028101028202000201028201020101018b02 +000200010002000200020001008901000201000100020002820201028202000281020187 +010001020100010285020100020102840201000201820100018101028802000100020001 +0201810102820200020102880002010200020001028902000201000201020002 +840102010201010181000101010102830102000284020002010202028301020002820200 +020102810002820200018801020002000102000185010200020102810201860102000200 +010201028101028102010101810001020181000202028100028302000102830201020181 +010201020101820200018301020102010202010102860002010201020182010002840201 +020102870201000201020002010281000282020102020202018102018301020102810201 +810102010281000203028301020001820102010301810201020182020102820200028202 +010284020102010201028301020102020281010201028300020002880201000200010201 +028102000200030105020101840201000102010281000283020100028302010001040101 +028101020102810002860201020002000202028500010201000103018102011301020282 +0100028102010a0101028201020102018800010001000100010081000182010200820002 +008200010202028100028802000200020002010284020002000285020102010001040101 +028301020002820200020102810002820200028202000282020002810201020101028101 +0282020102010281010284020102010283020001028c0200020001000200020002000201 +028101028502010200010283020102010301010283010201028202010282020001030101 +028100018201000104010102830002010282020102020281010203028101028602010201 +0201028b0201020002000200010002018701000100020100028202010282020002810201 +820100010101810002810201830100010288020001000200020102830201000202028d01 +020001020100010201020001028402000201028302010001 +830201000184010001000186010002010201028202000281020081000282020102840201 +020002010281010282020002010281010284020002000285020001020001010181000201 +028100018401020100028502010200010201028101020302810102820200020102830102 +010202028201000281020101018402010001028302010201810102840201020102830201 +020101010102010102020100010282010201020101020101830002010202028100020102 +8b0002010201020102000201028b0201020102000200010002008a000100020002010201 +000201028100028402010001020102820100028502000200010202028301020102020281 +010281020102018300010002010281000201028300020102810201010182020102820201 +028402010201008500010001020081000104018100028302010002020281000101018102 +010101820001008a00010001000100010001008800010001000100010081000202028201 +000284020100010090000100010001000100010001000102000107018302000102010208 +010302810102830201020101018202010281020101018700010001000201020402810002 +010201010102810102810201020101028100028402010200020102830102000201028100 +010401810201010183020102010401010285010201000102820201028202010282020102 +820201028202010284020102010282020102820201028102010401010201010102830002 +000181010203020101830201020183010201020202810002820200018101028502010201 +020183010200028202010283020001028502010002010282020002840201000201840100 +020002010202018400020100010101050282000102820200028402000100028702010002 +01020002820201020002 +820102010701810002840201020102040281000282020102880201000201020001028202 +000185010002010200820001028202000201028401020100018201000101010202810102 +040282010002860200010200010201028301020002020283000102010301830201000201 +028100020102820002018601000201020002010281010201028201000101010302810002 +850201020100020302810102810201810100820001028102008800010200010200020087 +000200020001020182010201820102018101028202000183010201020302820001028102 +010101030283000200020302810002010284000100020083000100010201020281010204 +028101028802010200010001000283020102010501020201018102018301020102020284 +010200010285020100010001820102010401810201030181020103018102010201820200 +020102810102810201030181020103018102010201820002018801000100010001000181 +010204028200010283020002008600020002000100850001000200028202010282020001 +050181020101010802810102850200020001028202010283020102010101010281000202 +0281010287020001020102000102018c0002010002000100020001000202028101028802 +000102010002010282020102820201028202010285020102010201010182020102820201 +020102020105028101028302010201040189000200010002000201028302010002880200 +01000100020002820201028902000102000100020102820201028d020100020102000100 +020100020181010282020102820201028202000201028301000102820200018101028202 +000284020100020188010002000201020002 +810200860002010001000183010001008300020002040281000282020002820201028102 +008100028202010282020102820201020102830102000285020102000102010281010281 +020181010201028101020202830001020181010282020102820201020202830100010202 +020101020285010200020002810201860100010201000202028200020089000201020100 +020100028202010081000283020002008300020002010201008101008100020202010083 +020001020202850001000200018401000200020102860002000200020083000200020202 +810102840201000102820200018301020002810200010083020001008600020102010001 +820100028602010001020001010101008102008500020001000185010001020102820201 +02810201810102890201020100010001020086000100020001008200010201028101028c +020100010201000100010002008a00010002000200010002008800010001000100020084 +000200020081000282020002820201008c00010002000100010002000200850001000100 +01020181020105010102850102000201020202810102820201028202010281020105018c +000100010001000201020002008500020002000281020182010201830102010282020102 +820200028202010287020100020001000185010201000201830102010281020181010282 +020102830201020182010002840200010002010281010282020102840200020001010182 +000200010082020102880201000200020102010101840001000102810200870002000200 +010001010185000100010201060181000184010001000281020184010201020187010002 +000201000285020102010001860100010002010282020102860201000100020181010201 +028401020001020602810001840100020002870201000201020002820201028402000201 +00 +840102010201040181000286020100010200020202820001008300020002010283010201 +028102018101020102810002820201020102810002010283000100028202000201028400 +010200018401020002018101020102820002018101020102840102010002020281000181 +010281020181010081000201028501020002000282020102010201000101890201020002 +000200010282020002010202018302000200030084010200020001008101020102890001 +020100020002000204028300020102010201018902010201020102010001810102820201 +02020201010402810102030285010201020102820201028b020001020102000100010001 +020106028101020202810002890200010001000100010081000101010102010101028101 +020702830002010282020102830201020103018102010301810201010182020102810201 +010104028101020102030181020103018102010401820201028102018201020001008102 +010101830201020183010200020102820102008100028402010001008200010282020002 +820201028102010101810001040104028101028502000102010282020002820200010101 +010281010285020100020102830200020102018100010201810001810102880201000200 +010002008300020002010282010200010082020102830200020083000100028202010283 +020102010201040281010282020102830201020183010201028402010201028302010201 +840102010201030183020100010101830201020181010286020002000200028102018801 +000201020001000283020102010201820001028102008300010201810102830201000286 +020001020100028502000201000184010002000284020100020188010001020100020002 +8302010201 +020289000201000100010201028402010200028202000201028101020302820001028202 +000282020002820201020102820001028202000201028101020202810102870200020100 +010200840002000102030283000100020202830102010202020101040287010002010001 +000283020001028202010085000100020002830200020083000200028102000100810100 +810002830200010001008202000181010282020002810200020003020100820200018601 +020100020002010205008102008500020002000202028300020002010281010083000200 +018c01000200010002010002000200810002830200020088000201020001000100880002 +000100020001028202010289020001000102000200018101028102000100830201020083 +000201028502000200010090000200020001000201000200010002000281020001008302 +000200010081010281020087000200010201020001008302000200020086020100010002 +008a00020002000100020002008400010002018101000300010184020002000286020102 +00020002010201008d01000201020100020001000102000100010104008a010200010201 +000100010284020002000185010201000200840002000200840002000102850201000200 +0286020102010001028202010281020185010201020102090281010201028c0001000100 +010001000200020001008502000200010001008101008200020088000201000200020002 +030282000100870002000200020001840100020001010199000102000200010001000100 +010201000200020100010002010286020102000100028202010082000102010201008202 +010285020100020102010289010201000201000100028502010002010202028101008200 +01028202000182010200 +82020102010204018b020002010002010200020102820201028502000102000282020102 +810200830001000201028400010200018401020001020102810002030281010201028100 +010101010281010283020102008100020102820002018101020202820001020202850102 +010001020202840102010002010281010201028900020002000201020002010281000281 +020082000102810200810002830200010286020002000200020302830001000201028100 +020202810102840201000102040283010201028702000201020001008100020202860001 +000102010281020183010201028202010282020102820200010101830001000203020100 +840200020001810102040201018402010201028602010001020102010284000100020181 +010084000102000204028100028202000203028201020101018102010201810201020181 +020103018302010201820102010301810201010101020301810201020181020103018102 +01010101028201020101018a020102010201020100010203028101020302820001008600 +010001000102830200010081000105010302810002830200020001008401000100020102 +810102830201020182010201810102860201000201020101010100010285010002000200 +8100028102008400020001028c0200020002000200020002010205028601020102010201 +810102020284010201000202028101028402000200020602830102010282020102820201 +020202830002010204020301880201020102000201028202000281020101018202010285 +020100020102830201020181010081000101018602000201020102010201008602000102 +00010286020102000201028102010101010081010283020001028302000102 +830002000201028100018501000102000205028100020202810102820200028202000282 +020102010285000100020102010281010283020100020102850002000201020202810001 +850102010201028102018501020102000281020181010203028200010201020101010281 +010203028101028202000201028700010201000201020102820002008100020202010001 +028301020102820201020602810102860200020002000201028200010088000200020002 +000100880001000200020002000100870200010002000200820002000100810200010081 +020088000200020001000200020081020001008302000200020084020001020001008401 +000200028102000100010283010001008600010002000200020083020001000100840201 +000100840002000200860002000200020086000100020002000c00830100010086000100 +020001008600020001000100020081010082000100010081020086000100020001000200 +810100820002000100810100820002000100810200860002000200020082000200010081 +020082000200010083010001008400010001000600830102000202020100870200020001 +000200060081020004008101028702000100010001000300010101028200010282020102 +830201000282020002810201830102010282020102820201028202010282020002060283 +010201020302820102018101020202810102020286010002000200028502010002010289 +020102010200020100018201000282020002810201040101008902010200020002010001 +83010201028c020102000100010201020100018501020102010203028401020001028502 +00020001028302000201830102000201028600020102000102810200 +010284000200020102018302000100810002040281010282020102820201028602000102 +000102860200010200010282020102010282010002820200010101010081020182010001 +820100018101020202830102000203020101820200028202000181010205028301020002 +01028e010002010201020100020002010002820200028302010201030107028401000200 +020202810102820201020102010182020102030283010201020302820001020102820102 +018601020102010200860002000201020081000202028301020002820201020602810102 +010284010200010202020101820200020102830002010209028101028302000102020201 +0103028200010201028401000200020b0201010202040181020102018102010401810001 +1d0183000102010201810001010183000102018101020e02830102010205020101830201 +020184010201020183010201020802830002000203028101028202000285020102010201 +810102030282010201020182020102820200020102010007028401000201028102008300 +0200028502000102000282020102030284010002000202020100010202008a0200020001 +000100020102810200810002890200010002000200020081000201028500010002000201 +02880100020001020102010101820201028a020100020102000100010281020082000102 +010201008202010201028101020202810002820200020102810002820201028d02000102 +0102000102010002010282020102820200020002 +860201020102010282020102860200020102000282020002020287010201020102010201 +028401020001028202000201028101020202810102830200010201028301020002010281 +010281020182010201010182000102020285000201000200830002010202028400010201 +028202010201028100028702000201020100028502010201020101010802830100010204 +02810102810201030101028300020002030202008a020102010001000100010086000200 +020001000300830102010081000283020102010101840200010002830200020082000100 +01008101000d008102000100810200880001000100010001008600020002000100860001 +000100010082000100010081010086000100010002008500020001000285020002000200 +860002000100010088000102010200010002820201008400020001008700020002000100 +028502000100020085000200020002850200010002008200010281020082000102830200 +010086000200020002008600020002000200860002000200010086000200010002008600 +020002000100870002000200010002860200020002000202028b00010201000200020002 +00028902000200020002000200830002000201028c000100020001020100020002008500 +020001000186010200020002008100020202830001000201028501020002000202020100 +810200810002040283000201028202010203028201020182010002010281000202028400 +010201020202030181020183010200028202000282020002030201018400020002018201 +000282020102820201020102820100010601820201028402010200020302810002010287 +0002010200020001820100018101028b02010002010200010201000282020102 +810102020283010201028202010202028301020002820201028402000200020102810102 +820201028202010201028201020181010201020100030284010002010203028100028702 +010001020001008100010101840001000201810102010281010202028501020102000181 +0102810201810102820200028402000102018401020100020302040105028101028b0200 +010002000200010201028402010201028102018401020102018101020202860002000100 +010083000201008500020002000102018100018101020102810102820200020202890102 +000201000100010287020001020100020184010200010201028200010281020102018100 +0101010100020181000118010102020002020100820200028102012b018a000100010001 +00010001008b000100010001000100010001010101028301000200820001028202000283 +020002010101880001000100010001008c00010001020100010201020102010281010282 +020102840201020002040201010202810102880201020002010201028202000201020101 +8100018301020002820201028202000201028101020302820001028d0200020001000200 +020002000102050281010281020181010202028100020202810102820200020302850002 +000200020402880002000200020001020102830002010282020002810200820001020202 +810002820201028102010101810002010281000282020102010285010002010200010081 +020181010284020102010281020188010002010200010001810102880201020001000201 +028202010284020002010282020001 +010187020001020002000201028101020202830102000282020102840201020102010281 +010201028100028202010201028200010282020002010281010201028100020102830002 +010282020001810102810201840100020001810102010287010201020002010201028301 +020002040287010200020102010202028201020103018202010203028900020001020102 +010201830102010282020102030286010002000100020102860002000100010084000102 +010282020102870201020100010001010181000181010284020102010201028101020202 +880100010200020001000400820201000400810200010083020001000400020182000100 +810002010282000200010001018500010001000186010001000100018301000100010003 +020100850201020002008200020183010001008100010101010082010001010101008201 +000186010001000100018601000100010001830100010001000101850001000100018301 +000100810001010182000100810001010182000100010081020082000200860002010200 +020086000200010001008100010101820001008100010101860001000100010002008102 +0087000100010002000282020100840001000200030083020001008d0002000200010002 +000100010001850100020001008800010200010002000201020400020185000200020002 +840201000100010082010200050001028500010001000184010200010202028401000200 +020802030182020102020283010200028402010200018101028402010002010101820201 +02810200820002018b010001020102000100010001830102010201028401020102008d00 +0102010200010201000100010201028e0102000100020102000102010002008500020001 +0201 +850200020102008800020102000102000202028100028202000283020102018101028202 +000201028100028202000201028100028202000201028100020202820001020202810102 +020282010201850100020100018401000201028702010200010200028402010200028302 +0001028202010201028301020002830200020181010283020100028a0201000201020102 +010201830102010282020102830200020083000102008300010002850201020102018101 +028802010001000200020187010001000102000282020102870200020002000100810001 +0201010282000200830001020101018b0002010002000100020002018201000181010282 +020001810102850201000102010401810001020184000100020104018100010401830001 +020103018100018201020184010002000201028100020202820102010101810001040181 +000104018100010401810001050181000104018100010201830001000103018300010001 +020102000201830201000181010282020002090282010001810100830001000102018300 +010001020101000101840201020002010201018502000102010201028100020302830002 +000281020181010285020001000102810201830100020181010282020002860201000200 +020089000200020001000100028502000200010087000102000200010081000102010102 +880100010200010002008700020100010002000100030102028200010281020101018300 +020002030283000100018501020002000283020001028902010002000201020002850201 +0200010284020001020101018102018a0100020100010001020100830001020082000102 +820200028502010200010282020002010281010287020102010002010283020002018201 +0002 +880200020002000201028502000200010081000287020102000102000282020102820201 +020102840102010002010281010287020002010002010202028501020002010202028200 +020183010200020302010183000100028402010200020102830100010282020102010281 +000201020100020281000284020102000102010102020188000201020002000100840002 +01000181010202028f010200020001020100020002000100010201810002840201020002 +010281010285020001000201040183020002018101028502010201020184010001000202 +020101840001000102010204010202820102010e01010281000202028100010301810201 +0c0184000201000282020102010286010201020002011401880001000100010001008900 +010001000100010001820100010f01810201020182000200810002080202008201000113 +018400010201028402000102010301810001810102820201020202810102810201810102 +010201000102010001010102830001020083000200028202010201028101020402810102 +820201028402000200018501020102010282020102880201020001000200028c02010001 +0002000201000201028402010201008a0002000200020001000102820201020102030105 +028201020188010002010201020002010282010201010183000201028102008200020182 +010001880102000201000200020102830002010282020002890201000201020002000282 +02000285020100020002880201000201000200028302010001810102 +850002010201020102810002010285000201020002010283010201028202000201028100 +028202000201028100028202010201028101028102018101020102820001020102850002 +010200010101070201000101860200010201020181010283020001028202010201028100 +028402000201020102810102840201000201810100880002010001000201020102810102 +820200028d02010001000100020102000201028302010001010182000102820201020202 +010101028100010301810001030183000100010101010081010001008702010002000100 +0202028100028802000200010201000101018400010201028c0201000102010001000100 +01008b000100010001000100010201020188000100010001000100910001000100010001 +000100010001020100028202010089000100020102010001008800010001000100010089 +000100010001000100011001810001110181020103018802000201000100020085000100 +020102010216010302810102010206018100010101020281000205028301020002860200 +010001000184010002010281020184010002000201028400020100028502010002000282 +020102820201028202010281020081000102018102008100028502000201000181010282 +0201028f0201000100020001020100020002010282020002840201020001010181000289 +020001000200010201008100018101028302010001850100020001028202000281020182 +010002880201020002010200028702010001000200020202010001028501000201020081 +00020102810002890201000200010201000184010001000283020100020102810002 +840200020102820201028402010201028402000201028302000200810002850201020001 +028202000286020001020100020202810002870200020102000102010284000201020181 +010203028101020202880102010200010200028102008100020102820102018301020002 +010281000282020102010281010281020184010001000101018202000202029801020100 +020100020102010201020100010001000100020102050201018102010301010081020185 +010001000100820002000100010283010201028302010201820102018201020101018300 +010201810102010201018a00010001000100010201028302010201060181020109010202 +810102820200011101860001000100010205028400020002010101810001040181000109 +018100010501810001040181000119018800020100020002010206028300020001130181 +000201028100028102010c01810201010102028201020083000200018101008300020102 +860200020100010085000201020102830200020102018202010282020002850201020001 +028202010282020102820200028202000104018202010001008402010201008500020002 +010282020001010182020002880201000201000100010201010281010202028200010201 +028100010101830200020101018202000282020002810201810102840200020100810001 +01018100028202010203028100028602010200020102820201028d020100020102000200 +020102000181010282020002870201000102010002810201 +020281010083000201020102850102010201020302810102820200028602010200020102 +860201020002010282020002010281000201020101810001010186000102010200020102 +010002028800010200020001000202028400020102008100018101020102010181000282 +020002010282000201010181000184010201000182010201890102010200020002000103 +018602010201020102030284010201000101018200010084000102010001008601000100 +010001020181020182010201020181020102018102018201000187010001000102010083 +000201020102040185000100010201010101000401830001000103010100030184020002 +0102020283000100010301010004018300010001030101028a0002000100020102010001 +820100010401810001040181000131018300020002010281010082000100840002010001 +150101028101028202010281020104018102018201000105018200020101018102018201 +000185010001020102810201030101028601000200020002020281010281020102018102 +010101820200020302020083010001028202000282020002840200010201850100010200 +02830201020185010201000200860001020100010201028c010001000100020001000200 +02820201008300020102830201000284020002000182010002820200028d020001000102 +000201020002010203028201000184010001000184010200010281020087000201020001 +02018101028b02010200010002010200010282020002820201000000 +850201020100028402000201028502000200010201020200820201028102008300020002 +010281010201028201020181010201028101020302810002010281010202028101028402 +000201020102810102820201028102008100018301000201850102010001020302010102 +028100020102810102820201028502010201000101010102820102010401870201020002 +000201850100020002010201810001850100010002018101028302010201810102870201 +020102010001020183000102010301810201820100010101010287000102000102010284 +020002010202028e01000100010001000102010201020102018100010501810001050182 +02010282020102820200011301810002870201000200020102850200020102013f018200 +020183010201028602010002000102020215010502830100020113018302010200830001 +000183010001028202000281020101018500010002000288020102010201020001020101 +0081010284020002000102010302810102810201830100010283020002008100028c0200 +020002010001020001000284020102010286020102010002010301850001000102010101 +870200010201020102830201000282020102860200020100010201020201820201028202 +010201028101020402830002010283020100018201020082000102820200028902010002 +000102000102850201020001028502000102010082000102 +040182020102030285010200020002040286010002010201020102820100028202000282 +020102010282000102010281000201028100020202810002030281010201028301020002 +010201018402010001028202000201028b01020102000201020002010201028201020082 +0001028102018201000105018b0201020102010201000102010f01020281000285020102 +0102010301830001000104018102010d0183020102018201000183010200028402010201 +008100010801830201020114010502150181020183010201028202010281020182010002 +8102013e0184000200020084000102010201028300020102810201150104028201020182 +010001050181000106010102810102810201040184000201000282020102810201030182 +020102850200020100010801810201810102820201028802000200010201000181010282 +020102820201028402010201028202010282020102020284000200010001008202000287 +020100010001000103018300010201850102010002018101008200020184010001000285 +020002010001010181020185010201000200810002820200020302810002010284010002 +010283020102018201000101018300020002820200028302010002820201028202000282 +020100840001020100 +010182020100810002820201028402010200028202000202028501020102010282020102 +860201020002010201028101028202010202028100020202850102000201028202000288 +020002010001020102830200020082000102820201020102820102008500010201020181 +010282020002010281010281020189010200010002010002018801020002010201020113 +018502010201020102018102010201010205018100011501810201820102000100830102 +010201020201830001000103018100010401810001050181000106010200840200010001 +060183000100010201830001000103010202020081010284020002000144018902010200 +010001000102830201020114010102010101028201020112018102018101028802010001 +000201000201028300010200010082010001820100028102010101810001020101028400 +010001028202000283020100018301020102820201028202000287020102010002000203 +028100028102018501000102010282020102030286000100010002010301810001030184 +000102010281020181010282020002810201880100020102000200018801020001020002 +000282020002020282010002820200028202010282020002890200010002010200010201 +02810002850201000200028302010002840201020002840201000201 +010186000100010200028202010284020102000181010201028100028202010285020100 +020102010281010282020102870200020100020102030281010201028100020102820002 +010101020282000102010282000102040201018102010101820201028202010282020002 +010282000201840100010002840201020001820102018401020102010b01820002010301 +81000103018102010101820002011c018100010301810001010181000201020101850001 +00020001220102028300010002810201170101020101810201010101023f018300010001 +02010802140184000200010283020100011d018202010282020102820201028a02010201 +0201000201020105018100010a0101028301020002820201028202000282020102820200 +028502010201020101018100020302810002810201850100010201028402010200010601 +820001028502010001000201020100860102010002000183010002008500010200020181 +010282020102030281000285020102000201840100020002820201008200010283020001 +02810200810002850201000200028e0201000201020001000201000201020002 +010181000101018100028202000283020100020102810102820200028402010001020102 +810102010281000201028100028702010200020100020102010002028200010281020183 +010001020202810002010284010002010281020183010200028202010082000100830002 +010282020100860002000201020101010102820100018701000102010200010401830001 +00010101810201070181020101018102010e0183000100010b0181000182010001040181 +000182010201010187000200010201020107018100010501810001040181000101018100 +010101810001040181000201020101820200010501810001040181000102018502000100 +020102018402000102010201810001380181000107018300010002820200028102010201 +810001040181000105018100010301020205018100010401810001050181000105018100 +010301810001820102008300020102810200810002840201020100830001000102018300 +010001050181000102018100018401020102018401000200028502010201020081000282 +020002020201018400010001020302810102820200028502010201020107018200020181 +010082000102830200010201028200020101018202000181010282020102010281000282 +020002820201008700010201020100018501000200010282020002010201008602010200 +0201028802010002010200010288020100020102000102 +820102018201000201028100028502000200010081000201028300020002020283000201 +028202010283020001020102810002850200010201028202000201028101028202000282 +020002020283000201028402000201020102810102010201010102010082020102890200 +020100020102000201020101810201040182020100850001000100010601830001020103 +018100010501810001170181020104018102018201000181010083000100010201830201 +020102018302010201820102018201000104018100011801820201028102008100011301 +020203018402010201028102014001810201830102010204028201020116018500020001 +00020102210181020181010206028801020001000201020103018102010a018700010001 +000100010201830201000101018402010201028102010101830002000282020102010287 +010002000100010282020102810201820102010701010202018202000283020100028902 +010200020102010001820102010101030201010100810102820200028202010201020201 +820200028502010002000283020001028402000200028202000189010200020002010200 +0282020100 +020181000186010002000201020202810002010283010201020102840001020100830002 +010285020102000102010283000201028102018101020102810002010283010001028202 +000282020102820201020102810002030281010201028100010201850002010201020102 +8200010287020100010002010201028600020002010201010181020107018102012c0181 +00010d018202010283020001028302010201240101020301810201150182000201010101 +028201020101018102013101810001020187000100010001000101010102810102010201 +018102008a00010001000100010001008b00010001000100010001000101010102810102 +8b0200010001000100010001009400010001000100010001000100010001000100010081 +000181010281020181010203028100028202000283020001000100810100870002010001 +0002010f018a000100010001000100010281020081000181010202028201000102010102 +810102870201020102010002820201020102080184020100020181010201020201820201 +00820001008700020102010201028202010282020002810201880100020102000200028a +020002000201020002010282020002830201000281020101018100028502000200010282 +020002010282000200 +030184000102010202028101028402010200020102020101028601000201020002010281 +000181010202028200010201028200020105018200010202028100020102820102018101 +020202830102000296020102000200020100020102010201000200020100020187010201 +0201020102820201020302810001020181000101018b0001000100010001000100018301 +00010085000100010001040101000c018102010401820201008300010001020181020103 +018102010201890201000200010201000104018100011801010281000202021701810201 +820100010101830201020140010200830201020101018102018401020102011301810001 +03018102011f018500020001020102018202000202020201810201140185000100010001 +0d018d000102010001000102010201000186010200010201028302000102810201860102 +010201000102018102010101010281000181010283020002010101810201850102000201 +020202010181000282020100810001010183000100028202000285020102010001840100 +010001010181000103018100028502000102010282020002850201000200020002 +870100010001000102020281000282020102820200028202010282020102820201028202 +000181010081000201028100020102810102020281010202028101020202810102020281 +000201028201000282020002810201810102840201020002810201040182020102010281 +010284020002010282020001010182000102040281000282020102810200840001000201 +050181020124018100010201810001070181000182010201020181000182010001830102 +000104018100011a01810001820102018201000182010201160181000101018102010301 +8102014301830201000184010201020101018102010401830001000103018a0001000102 +010200020002810201010183000100010201830001000103018300010001030183000100 +010701010281000201028201020181010285020100020001880100020100010002018201 +00010e018f00010001000100010001000100010001090181000281020081000188010201 +020102010201010181020101018700010001020001028802010201020102000202028301 +000102820201028302010201010182020102010282000201010187000201020002000284 +020100020183010200018101028202010289020100020102000200028402010002018301 +020002 +020181000181010289020102000102000201020202830002000282020102830201020082 +000102020284010200010202028101020202810102010282000102020281010282020002 +010281010201028700020002010201028602010002010001060101000102010002018302 +000201810102820201020102820100028102010401890201000100010001000101018602 +000100010001010183000100010501810001020183000100028102010301880001000102 +010200010f01810201820100010201810201820102010b01810001050181000104018100 +010201810002840200010001010183000100010201830001000102018900010001020102 +000100870001000200010001860102010001000102018300010001020183000100010201 +830001000102018300010001020183000100010201830001000102018300010001020183 +0001000102018c0201000201020100010001020184010001000102018300010001020185 +000100010002820201008100010301830001000104018100010401810001050181000104 +018400010002010401810001830102010285020100020002830201020102018100010d01 +810001110185000100010001810100810001030101028500010201020182010002810201 +820100010201840200010001830100020101018c02010201000100020100020102010289 +0100020002010001000289020100020001020001028a02010200020100020001028f0200 +010201020002010200010002010282020102810200810002810201 +010181000181010282020002820200020202810002820201020302890002000201020102 +010201028101028402010200028202010282020002030282000102010282000102850201 +020001020202810102820201028702010200010002010101830200010286020002010201 +0281020181010281020104018502010201000201020d0181020105018302010201080181 +020102010102070181000101018200010081000103018300010001010188000100010001 +020100810001010187020100010001000186010001000100010301010004018300010001 +020183000100018201000101010202810002010281000111010100040181020145018102 +010201830001020118018700020001020102011901810001090183020100010201810001 +030183020100010201810201820100010101850001000100010e01830001000103018300 +010001090182000100010081010281020183010002018101028302010200810001070183 +020002010201840001020102040283000100018101028902010200020102000102010281 +00018a010200020001020002000285020100020102830200010201028701000201020001 +0281020085000201020001 +020182020102020281000284020002000282020002010285010201020100810002840201 +020102010285000201000102820201028302000102010283000201020202810102860201 +020002010201028101028202010282020102820201020102820102018401020102010201 +850002010200018201020186010001000201020102810102010201018100010301830002 +000181010083000100019201000100010001000102010001000100010201010186000100 +020001008300020002820200010201880201020001000102018901020002010201020100 +820002010301010004010100030101028100010101010281010086000102010201008400 +020102018101008300010201810102830200010281020185010200010001880102010001 +0001020188010001000201000100010082010201850100010001008d0001000100010200 +010001000100840001000100860001000100010086000100010001008600010001000200 +860001000200010086000100010001008600010001000100860001000100010086000100 +010001008300010001010182000100860001000100010089000100010001000200028602 +000200010001010101008201000101018500010001000186010001000100010301830001 +00018601000100020001030183000100010501810201010181020182010201820100010a +01830001000104018100010e018300010001060184020001020189010002000102010200 +010301810001820102010101810201040183000100028302000201010101028100028202 +01028302010002010201008a020102000100010200010201028501000201020082000102 +8502000200010201028101028102008200020183010001020002 +820001008400010201020202830102000202028101028402000201020302810102810201 +820102018101020202810002030281000202028101020102810002010281010284020102 +000285020102000102830201000288020001020100010001810100810001820102008300 +010002010201018102010201860002010002000281020106018102010501810201020101 +020201810201030104028100028202010201020101820200020202010101028101028102 +018401020102010401840201000201020184000100020185010200020001010182020100 +810001030183000100010401810001040181000101018402000100010401810001030183 +000200010101840200010001010181020182010001020181020001000102020181000102 +018202010081000103010100010186020100010002010101830001000102018300010001 +020184000100020101018300010201020183000100010201810001030181020182010001 +010101028701000102010001008100010101850001000100010101870002010002010200 +020003018300010001020182000100810001020183000100010301020003018300020001 +010181000101018b00010001000100010001000183010200028702010001000100010201 +810001050181000181010002008201000101018100010401810001020181020103018300 +010001020187000201020102000101018102018201020103018500010201000101018100 +02010283000201028d020100010002000102000100020184010002000283020001020102 +880100010200020001020102810002830201000282020102820200020102010084020102 +00020102810002 +010184000102000284020102010284020102000201028101028202000282020102860201 +020002010282020100840002000200810002820201020302810002010201018102008300 +020102030281010282020102820201020102010101028401020102018201020101018102 +010201840200020102010283000100010301810002810201020185000100010001810102 +820201028102008500020002010283020001008100028202010283020100028102018101 +008500020001000201028300020002020283010201020202890002000200010201000282 +020002840201020102840200020002820201028402010201028202000217028101020902 +810002030281010209028100020202810002820201028402010201008700010002000200 +020402810002040281000282020002010281000204028100020202850002000201020202 +810002040282000102010285010200020102020281000202028301020001040183000201 +028402010200028202010284020100010281020185010200020102820201028202000104 +018400010002010101830001000103018300010001020101000101810001820102018201 +000105018100010901010284010001000107018102010301810201030181020101018400 +0100020186010001000100010c0184000102010201020401010287010201020100020103 +010102020181000101018102018101028802010001020102000181010282020002010281 +000281020185010002000102820200020102880100020102000100028902010002010201 +000102840200010201 +810001830102000289020002010200010200028502000201020081000282020102820200 +028202000201028300020102820201020102810002010283000201028602000201020102 +810200810002010282000102820201028202010201028101020102850001000100018401 +000100018601020001020102830200010285020001020001830102000185010200010001 +060181020182010201030102028201020101010102020101028200010202028301020102 +820200028b02010201020100010002010285020100010002010285010001020102820201 +020102810002820201020402830102010285020001020102010282000102830201020083 +000201028702010002000102010201820002018301020102880201020102000200018101 +020102820100010401830001020181010201020101010284010200010281020101018100 +018201020101018100010401810001040181000104018100010501810001040181000105 +018102010801810002810201030181020101018300010201020185020102010001030101 +0001018102010b0181020105018102011001820002010301830201000105018100010401 +8100010301830201000106018100011d0184020100010081000101018100018201020183 +010002010101810001820100018401000100010101010084010200010289020001020002 +000100018701020102000100020102010084010201000286020102000102010101810001 +8a01000100020102000100018801020002010001000283020100028302010001 +840102000102820200028502000200020081000202020101810002840200020002010281 +000283020001020102830102000288020100020102010002010201000502810102810201 +810102820200028202000201028300020102010203018302010201050182020102010281 +000282020102810201860100020001020182010001860100010001000105018302010001 +810102830201020101010302810002020201008202000201028100010101820201028302 +000102890201020001000102010284020001000181010286020001000200028502010001 +000281020184010001000281020101018300010001020183000102010201830002000102 +018102008400010201028302000100820002018401000100028102018801020100010002 +010285020001020102810201010188000201000100020001880100010002000201028302 +000102020283010201028302010002010282000102020283010201028302010002020281 +000202028101028602010201020102830201000201020100810201840102010001860100 +010001000102010102820001028602010201020102810201810102810201020186020001 +000201028302000102810201010101028200020102018300010001030101000401810001 +8401000100011a0181000126018102010201020001018200010204020201850201020102 +010101810201020101020101810201860102010201020185010201000102810201840100 +020102830200010201028201000284020002000181010282020102850201000102018101 +02850201020001028102018401000201028102010101 +880100020102010201020302810002030285000201020002830200010282020102820201 +028402010200020202840102000201840102010001830102010201028101020102840102 +0001020302810102010283010200018a0100010001000100010001860100010002010282 +02000186010200020100018501020102010283020100010f018302010201810102020281 +010284020102010201028101020b0281000201028b000200010002000200020002010201 +00820200020202830102010202028100020202840001000102030281000201028100020c +028100020202820001020302810002020282000102820200028202010201028100020302 +820100028502010200010203028200010282020002020284000102010201028100020102 +840100020002010281010201028201000287020002000200020182010002010201010102 +850002000201028302000102010201010102880002000102010200018101028202010083 +000201028302010002010282010002830201000287020002000100010282020102820200 +028102010101010281000186010201000100018201020185010001000201010183020100 +010201810201820100018801020001000100020181010083000100010101840002000100 +850001020001000100810201010101008301020001020184020001000182010201850100 +010002010301830002000101010102050181000103018100018a01000100010200010001 +008200010201028300010002860200020001000186010001000200028302010002860201 +02000200028a020100010002010002000201028100028402000100020102830002000283 +020001028202010286020102010001000200 +8301000102020281000202028101020302810102820200028a0201020002000200020102 +010281010201020100010281000282020100010082020102830200010202028c01000201 +02010002010002010286020002000102010b010102830002000282020002840201020002 +820201020102810102820200020102840100010001070181000106018202010201028100 +020202840002010001010101008a02010201020102000201020302050181020104010102 +820100010101010204010202830102010202028101028202010202028101020202810102 +820201028202010283020100020102860102010001020183010201028202010282020102 +820201020302820100028202010201028100028202010201028100028202010201028100 +020402810002010281010282020002040282000102010283010200010401810001010181 +020182010002010281010286020001000201028402000200020102810102830200010287 +020100020002010286020001000201028302000102010281010201028101020102850102 +000200020102840100020002010281010284020001020181010201028200010202020100 +020201018200010284020100020182010201810102830201020101010102030101020401 +810201020181020103018102010901830201020109018102010d01820001008200010281 +020186010201000102010301810002810201020181020109018502010002000282020100 +810002890201000200020100010202028100028502000200010284020001000282020001 +8601020001020102010202010102810100 +010101028301020002840200020102820200020102810102840201020102810201010184 +020002000282020002010281010201028100028202010201028101020202010002028100 +0201028101020102810002820201028202010283020102018a0100010002000100010001 +840100020002010281010201028200010281020101018202010201028301000200830001 +02010f010302810102080281010203020201840002000201010182020002010281010201 +028300020002040281000205028300020102840200020002870201020100020002810201 +82010002830201020182010200820002018101028b020002000102010200010002860201 +020001000201028201000202020101010281000183010201028302000102850200020100 +020202830102000201028101028602000201020102830200010201028101028202010281 +020184010200020182010201820100010401850002010201028202000201020101830200 +020181010281020082000102020282010002010202018302000201010101020101030283 +010002010201010001020101820201028102018101028502010200020102018302000201 +010102028300020102810201820100018201020102018102018201020184010201000101 +010102820100018101028102010101810002830201020181010282020002820201020102 +830002010287020102010200010282020102010281000206028100028402010201028202 +0102810201840102010201820102008b00010200010001020102000201029a0102000200 +010001000201000100010002010001000102010201028602010201000102010281000287 +020100020002010201028101028202000201028801000201020002010284020102010201 +0281010082000102 +830102010201028400020002008100020602810102830201020084000102000284020002 +010285020001020002820201020302010003028301020002020281000202028101028202 +000282020102830201000281020186010201020102018501020102010202028100028102 +008100028102018301020102030281010288020102000200010001070181000101010102 +8401020102019001020102000200010001000200010201008100028a0201020100010201 +0200018401000200010201020282000201810102010283000201028c0201000100020102 +010002000284020102010081000203028100020202850102000200020202830002000203 +020100010102028300010002020282000200810002840201000100850002010201028302 +000102830200020081000201028200020081000284020100020081000201028200020086 +000201020002008100010101820001008100010101820001008100010101820002008900 +020102000200020002860200020002010201028101020202870100020002000102010285 +000200020002850201020002010101010281010201028101020102010001028101028502 +000102010201028100020202840102010002010201018202000201028401020001020402 +810102040281010282020102820201028202010282020102820201028202010282020102 +8202010282020102820201028202010282020102840201020102820201020a0281010287 +020102010201000281020103010102810001820102018101028302000102020201000102 +810102860201020102010286020102010201028502000200010201028b00020102000200 +020100020181010201028501020002000283020100028c02010200010002000102010201 +01018102018301020002 +820100020102830102010283020102008100028802000201020002010282020102820200 +028202010282020102010281010201028100028502000200010203028101020102840001 +000102050281010282020002010281010288020001000100010001880100010001000200 +020502820001020102820100018101020202840002000102810201030181020108018a02 +010201020102010001028c02000200020002000200020002860200020002000286020102 +010201020c028101020402810102820201020202810102030283010201020c0283000201 +020a02810002030281010203028100020402810002030281010201028101028202010201 +028501000201000204028100020402810002010281000201028101020102810102850201 +020100018601000200010001860100010002000282020002010281000205028101020a02 +810002010281000209028100020102810002820200020102810002010281000204028200 +010282020002820200020102810002010282000102830200020082000102820200020102 +8100028f0201000200020002000200010002000282020002810200860002010200010282 +020002010283000201008100020102810002850200020001028602000200020002010281 +000202028100028402010001028402000200028302010201010181020101010102840100 +020002010283010002008100020202870002000100020102880201020002010002010101 +010282010002010298010001020102000201020001000102000100020102000200020102 +8501000201020082000201880100010001020001020002 +010103028100028202010282020102820201028102010101820201028202000284020002 +010282020002010281000284020002010285020102000200810002820200020102850002 +010201020102840001000102820201020102820001028702010201020102018501020102 +010203028100028202010282020001810102810201010101028301020102810201010181 +00010d01810201810102830201020181010202028e000200020002000100010201000200 +850002010200028102009200010201000100010001000200020002000100020081020082 +000100820002000100810200020082020002830200020002008102000300850200020001 +008100028c02010002000200010001020002040281000202028101028202000283020100 +018201000281020101018202000181010202028200010203028100020102810102820200 +028202010282020002040284000201020101018400010201028302010002040281000203 +028301020002040282000102030282000102030281000201028101028202000201028101 +020202820102018101021502810102810201010182020102810201020101028101028202 +010282020102820201028202010282020102820201028202010282020102820201028202 +010284020102010282020102820201028102010401820201028502010201020102018102 +010401820201028102018201020181010281020104018b00020001000201020100010288 +02010200010002010284020102000281020182010201820100018201000102018d020100 +020001000201000200010281020082000102880200020002010200018101028302000102 +0102810002820201020102870100020100020002830200010282020002 +810102870201020001020002820201020302010181020181010282020102820201028302 +000102820200028202000282020002010283000200018201000282020102010283010200 +02030282000102060281010202028c000200010200020002000201020102810002050286 +010201020102010201010286010002000102010a01810001840102010201010102028501 +02000200020202850002000200028a020002000200020002000283020100020202810102 +050281010204028101028202010202028101020802830102010203020101040281010203 +020201010282010201810102820201028202000201028100018101028202000102018402 +010001028202010283020001028702010002000200028402000200020202850001020100 +02820200020102810002820200028a020100010200010001000186010001000200018601 +000100020001860100020002000284020001000202028500020001000286020002000200 +020102010001028601000200010002820200020102820002008a00010002000200020002 +008200010283020001028302000200830002000203028600020002000200820001028802 +000200020002000201028e0002000200020002000200020002008c000200020001000200 +020001028202000281020093000201000200020002000100020002000100010296020002 +000102000200020001000200020002000100020185010201020102810200830001000201 +028201000202028801020100020102010287020102010201020184010201020181010201 +028200010282020002010285010001020102010286010200010001028102008100028502 +01000200028202010087000100010201000282020002810201 +010002028200020083000200028202010201028101028102010101830201000282020002 +820200028202010284020002010201028101020302810100810002010284010200010201 +028100028202000202028100020102820100028102010701820001020802810002820200 +018101028302010201810102850200020102018401020100010101810001070181020181 +010202028801000201020102000196010200020002000200020002000200010002000200 +020090000200020002000200020002000200020004008702000100020002000100810200 +820002000300810200820002008200020001008502000200020002008d02000200020002 +000201000200028202010081000201020101010282000201810102010201000202830001 +000204028100020402810002010281010282020002820201028302000201810102010281 +000281020102018200010202028201000201020201810002010285010201000201810102 +020282000102010201018200010281020185010200010201810102010201010302810102 +090281010202028101020302810102820201020202020103020101010201018202010282 +020102030281010203028101020302010182020102820201028202010282020102820201 +028202010202028401020102010301010282010201810102010203010102020182020102 +840201020102020204010102850100020100028302010002850201000100020402820001 +02940200010001000100020100010001000102000100028a020102000102010200010284 +02000200028a020002000201020002000284020002010286020100020100018101020102 +810102010282010201 +030281010284020002010285020002010201010101028201020101018202010282020102 +010201010602850100020001020102020181000282020102020201018200010201028601 +0201020001028d0200010001020002000201020102020284000200010203028200020181 +0102830201020189010201020002000100010a0183000102018701020102010001020402 +89010200020102010201028402000200020402810102020281000201028100020c028300 +020002840201020102840200020002030201018202010283020102010b01010204018202 +010282020002010202018102010301810201030181020102010102030101020301810201 +020183020102018101028202000282020102010283010002018301020102020201018602 +010001000201010182020102810201810102830200020181010202028301020102830201 +000202028101020202810102040281000284020102000201028101028402000201020202 +810002040282010002020281010281020181010285020102000102020281010204028101 +028302010002850201020100020102830001000201020100040281000285020102010002 +010295000100010201000100020001000100020002010001029202000200020001000100 +0200020001000201008100018d0100020001000100010001020102010281000282020002 +840200010002830200020081000202028600020001000102810201010185020102010201 +810102860201000200010201028101020102830002000182010002820201028402000102 +0182010002010281000102010102810102820201020102810002820200020002 +810102820201028202010284020002010201020501820002010201020283010201028402 +000102018501020102010282020102010284010002010203028100028202000202020101 +010281010202028201020101018102018101028202010282020002010285010200020102 +02028301020002810201810102010289010201020001000100010c018102010401870201 +020102010201970100020002000100010002000200010002000200010001009200020001 +0001000102010001000200020001008a0002000200020001000200820002000100830200 +020001008102000200010201008102008800020002000200020088000200020001000200 +860002000200020002008502000100020086000200020002008400020002000200850200 +020002008600020002000200860002000100020084000200010086000200020002008600 +020001000100860001000200020084000200020002008502000200020088000200010002 +000200860002000200020086000200020002008500020002000201020100870200020002 +000200810002010285000200010002860200010001000281020082000200810002810200 +020084010001020001008202000285020100010002850201020001028202010282020102 +030281010202028301020102050281010203028101020202830102010201020201830201 +020181010202028201020181010281020183010201020102810102820201028102010101 +870200020001000102830201000201028101020102810102860200020002010202028d01 +000200020100010002000201008100018101028802010002010201000282020102010285 +010200020002820201008200020187010001020001020183010200028402000100028202 +010282020102 +810002840201000102820201028202000283020102010101810001010101020401010281 +010284020102000284020102010282020102010287000201020002010203020101050282 +000102820201020102890002010001000100020184010200020001008202010203028101 +020202840100010201810102010281000281020109018102018201000107010102a30100 +010200010201000100010201020100010002000200010001020102010001000200028b02 +010201020002000100010284020002000282020102840200020002820201020502810102 +030281010205028101020302810102030281010203028100020302810102080281010203 +028101020102810102820201020102810102820201020102810102010281010201028100 +028202010201028100020102810102010282010201020101008101008100018201000185 +0100010001008100028102018101028802010200010002000101018b0200020001000100 +020002008600020001020100010001028801020002000200010281020083000201028202 +000202028300020002010281010201028100020802810002010281000207028100020402 +810102820201028202000204028101028202000282020102820200028202010282020002 +820201028202000202028100028202010285020002000102020281000284020102000282 +020102020283000200028102018101028702010002000201028102008700020100010200 +020102870002000200020001010183020102010201820201028602000100020102830200 +010289020002000201000100028302010002820201028302010201020186000100010201 +02010284010200010201020001 +820201028202000285020002000102830201020108018102018101020102810102010281 +000284020102010202028101020102830102000201028801000201000102000201028101 +028202010286020102000201028302010201020103028101020702810002010281010081 +000281020102018500010201020184010001000104018102010401010285010201020102 +030289000201020002000100020102850001000100020102820002008200010282020100 +83000200028c020100010002000201020002008900010201000200020002010201008101 +008200020003008802010200020002000281020001008102008200020001008202000201 +028200020001008401020002008600020002000100810002010202008202000283020002 +000100810200040001028200020001000102050083010002008600010001000200020083 +010001000100840102000100010081020082000200810002010282000200810002810200 +820002008100020102850002000200028602000200020002020283000200020202830002 +000202028300020002030201000402850002000201028402000200020302850002000201 +028602000200020002820200028102008100020302810002010281000285020100020102 +010283010200020102810102010281000205028101020202810102840200010201830102 +010203028101020102010181020183010201020402040183000100028202010201028300 +0200020102830102010201028201000282020102020286010200010001028d0201000200 +010002010201020002010282010002010281010281020181010288020001020002010001 +8601000201000102820201020102820100028202010282020102810201 +810002010283010201028502000200010201028100018401000100010201810201030101 +028100020102810102820201028202000201028101020202860002010001000203028400 +010200020102810102010201018102018801000100020002010201028101000100020281 +000202028100020202820001028102018101028502000201020104018202000201020101 +810001030181020183010201028302010201040181020105018102010401810201040181 +020104018102010401810201110181020104018100010301810201040183000100010101 +860201000100010082000100010001020101020083010001000400810100090081020004 +008102000100810200820002008100028102008400010201008300010002820201008100 +028402010001000e00830200020001000102830001000281020001000202010086020002 +00010002820201008100028e020100010001020002000200020002810200020083020002 +0001008302000100810002810200010001028a0002000200020001000200020091010002 +0002000200020002000200020002008400020002000100a3020002000200020001000200 +0200010001000200020001000100020002000200020002008c0001000200010002000200 +0201820100028102008a00010001020002000200028202010283020001008f0002010001 +0201000201000200020102010281000282020002850201020102018c0100010201000102 +010001000282020100820002018201000284020102000181010201028200020184010201 +020103018400010201020102810102850201000200020102 +810002030283010201028202000201028201020107018302010201850102010200020102 +810102020281010203028301020002820200028b02010200020100020102010201028100 +020102820001028702010201020102018101020302810102840200020002820200020202 +820002018201020101018200010281020105018102010101840201020102010283010201 +02820201020302b301000200010001000100010001000100010002000200020001000100 +010001000100010002000100020001000100010002000200900002000200020001000100 +010001000200820002018c010001000100010002000100018f0102010002000102010201 +020102010201028400010002010301830201020181010283020102018101028202010282 +020102830201020106010102080183020102012101810201030101020301810201020181 +020102010102040181020103018202000202020401810201030181020103018102010701 +010203018102010301010204018102010301010201010102810102830201020081000282 +020002890201000200010201000282020102820200020602810102820201020202830102 +000201028101020202810002010285000200020002020282010201870100020002000102 +820201020202840001000201810102010284000200010201028100018501000100010284 +020100010285020002000201810100820001020102820100028302000200810001820100 +0182010001820102008200010284020002000201020100010281010205020001 +010281000282020102840200020102810201040181000106018202000284020102010282 +0201020202820100028202000203028100028b0201000200020100020100028402000201 +020202810102010287010200020002000201028101028402000201028402010201028402 +010001028202010201028101020202810001810102810201060183020102010201810200 +010081010201028901020100010001020102850200010001028f02000200010002000200 +010001000102860200010001000288020100010201000200840001000102860200010001 +00028c020100010002000201000100028102010101850002000200018201000283020100 +019101020001000100020100010001020102010086000100010001000100810200820001 +008200020001008101000400810100040081020002008302000200020083010001008600 +020001000100820002000100810100090083020002008600020002000200020083010002 +000200830100010002008701000200020001008600020002000200820002000100850100 +02000100040081020002008302000200010083020002008c000100010001000100020002 +00920002000100010002000100020002000100010004008102000100a502000100020002 +000100020002000100020002000100010001000100020001000100020002008f00010001 +0001000100010001000201008c0002000102000100010002000181010282020100850002 +010200028102018101028502010002010209028101028102010101820201020102010184 +020002010282020002010201010102810102010282010200820001000100890102010201 +0001020102010281010201028300020102820201020002 +810200850002000200020102810102010201018200020101018100018201000182010001 +010184020001000282020002010281010285020001020102020281000202028201000201 +028201000101010402010183000200010601810200810002830201000201028201000281 +02008400020102008d000102010201000100020100010283020102010401050282010201 +830102010202028400010201020102010182020102010202018202010201020101820201 +020202030102020201020203010202820100010101010201018100018101028102010101 +810002810201020181000281020102018202000102018302010001020101028201000181 +010281020183010001028102010101850001020102018501000201020181010283020002 +018101028302010001040182000102010201018102010301840201000201140181020181 +010201028101028202010201028301020102010281010201028101028202010282020102 +010281010282020102820201020102810102850201020001020102810102820201028202 +010282020102010281010282020102820201028202010282020102010281010282020102 +820201028102018301020102820201028202010282020102840201020102820201028102 +018101028602010200010001810102850201000100028502010002000286020102010201 +020202810102820201020202810102830201020181010202028201000202020101010283 +010201028502010001000201029201020100010001000102010200020102000200810002 +010283000201028202000187010001000102010201028101008500020102000281020183 +010002008100028202010281020189010001020002000201028102018201000282020102 +05028101020002 +050283010200020202010181020108018102010301830201020183010201028202010282 +020102810201810102030201010102810102030287000100020102010204028701000102 +010001020302810002840200020102840200020102830200020185010200020102020203 +01830201000101018102018301000102010281010281020186010200020001029f020002 +000100010001020100010001000102010001000100020001000100010286020002000100 +028602010001000102860201000100010286020002000100028202010284020002000284 +020002000282020102840200020002840201020002820201028202000282020102810200 +820001028202000282020102810200880001000100010201020102830002000201028300 +020002010283010201028302000100820001028c02000200010200010002000102820200 +028702000100010001000200830100010001008101008200010081000282020002810200 +810002820200028502010002000201028401000200028602010200020002890201020100 +020002010282020002830201000285020002000102810200020002028101000200830200 +010003008901000200020001000200040091010201000100010001000100010001000100 +01008a010001000201000100020181010284020002000282020102850200020001028102 +0184010001000103018100018201000101018d0001000100020002000200020001020181 +02008a00010002000200020102018101008a000201000102010201020081000185010200 +010002820200020302010001028501020102010201028900010001000201000102010283 +000201020102850102010002010101830200010201028200010201028101028202010203 +0281010282020002 +01028101028202000283020002008e000201000102010200010200010201840102010001 +820100018201020101010102810102810201810102820200028202010203028101020302 +830002010001000202810102870201020102010001010101028100028402000200028402 +000200028902000200010200020002020284000201020081000182010201810102810201 +8801000102010201020101018100010201010202007f0153018102010901810201020181 +020103018102010301010203010102030101020201830201020101018302010201010182 +020102810201830102010281020183010201028102018501020102010201020101820002 +010e0181020101018e02010200010002010200020001020102018c020102000200010200 +020100018101028102010201020281000202028101028102008b00020002000201020100 +010281020183010200020102810002810201900100010001020001000200020102010002 +830201000201028401000102000100010184020002000201028201000282020102020281 +01020502010101020001 +010281010284020102010282020102810201190182020102820201020102840102010200 +830002010204028101028502000102000205028300020001910102000200010200020002 +000201020100020102010103028a01020102010200020001028702010201020102010101 +820201020102870102010201020002010281000201028301020102830201000288020102 +010201020102880201020002000200028a02010201020102010201028402000200028402 +010200028402010201028602000200020002840201020102820200028402000200028402 +010201028202000282020002840201020102820200028202010087000100020002000288 +020102000100010002820201028202000282020002820201028202000282020002820201 +020102810100850001000200028202010083000200028202010282020002890200020001 +000100010088000100010001000100830002000201028100028202000282020102010281 +010282020002010281010282020002820200020102810002820201028202000201028101 +028202000282020102010281010282020102820200020102810002820201028202000282 +020002820201020102810102820200028202010282020002820201028202010282020002 +820201028202000282020102820200028202010284020002000201028201000196010002 +000100020002000100010002000200010201020105018100010301830001000184010200 +020183010200010101830200020002008202010087000102010201000181010284020001 +020182010200860002010200020086000100010001020102820002010501810201820102 +008200010288020002000102000100840001000102840200020002820200020102010101 +0281010203028101028202000202028101020002 +820200020302830102010202028300010201870102010200010201870102010200010001 +050181020183010201020102880102010002010201020302860001000201000184010201 +000284020001020102018200010282020102020285010201020002010281010202028501 +020102010201028100020102820100010401810201850100020001020102010184020102 +010203028101008700020002010201028a02010201020102010201028a02010201020102 +010201028602010201020102860201020102010282020102860201020102010284020102 +010284020102010282020102840201020102840201020102820201028402010201028202 +010282020102810201040101028101028302010201010182020102820201028102018401 +020102010101820201028202010283020102010501820201028102010101820201028102 +018301020102810201110182020102810201810102830201020182010201020181020103 +010102030181020102018102010301010203018102010201810201030181020109018102 +01080181020115018102010b0181000186010200020102010f0184000102010284020002 +000284020102010281020182010001010185000200010200850002000201028102018901 +000100010200020002810200890001020102000200010283020100028102018601000200 +010200820001028a02010001000201000100028202010201028100020202830100020104 +018100028202010202028100028202000207028201000282020102820201020102 +860201020002000283020001028102011e01010201010302840100020002020282000102 +0102830002000204028101028a0201020102010200020102850200010200020102830102 +000284020102000204028a00020102010001020001020602820100020202820102010301 +01022b018300010001020183000100010301850001000100010101850001000100018601 +000100010001010185000100010001860100010001000101010100820100010101850001 +000100019401000100010001000100020100010001020100010088000100010002000200 +88000100010001000100880001000100010201008a000100020001000100010088000100 +010001000100880001000100010201008500010001000285020102000102860200020001 +000283020001028502000200010286020002010001028502000102010281020087000200 +010201000201028100028202010285020100020002010281000285020102010002820201 +02820200028502000200010282020002820201028502000200010282020002820201029c +020002000201020100010200010201000200020001000200020001020101018102010c01 +810201010183020001028202010281020187010200010001000205028701000200020102 +008100018101028202010082000201840100020002020281000201028301000102810201 +010101028201020181010085000102010002820201028102018101000100810102840200 +020002010281010208028101028202000283020100020102810102 +010281010282020002820200020102940102000100020100020100010200010002010002 +010e0181020184010002010283020001020102810002030281010202028d000200020001 +0001020001020102020282000201810102040281000202028d0002000201020100010201 +0200010301010202010102010181020187010201000102010283020002008a0002010002 +000200020002950201020100020001020102010201000200020002000297020102010201 +000201020102000100010201020001000201880102010201000102018501020100010282 +02010284020102010201028b010200010201020102010201040182000201020101028100 +010101010203010102820102018101028102010201010203018102010201830201020103 +018102010101010203018102010f01810201010183020102010101830201020101010102 +030101020201830201020101010102030101020201830201020101010102030101020201 +830201020101018302010201010101020301010203010102030101020301010203010102 +030101020301010281010201028201000182010201030181020101018302010201020181 +020183010001028402000200028202010283020100018201000101018300010001830102 +000201028100028602010200020001810102820201028302010002010290010001000102 +010200020102010002000181010001000202850002000100018201000281020181010284 +020002010283020002010201860002010001000282020102010281010203028101020102 +81010202028101020102820102010001 +820201028202010282020001810102810201230101028100020102810102010281010203 +028100018101020102830102010282020001850102010001020302830002010201028301 +020002020285000201020102060281000201020101830201020182010201820102018201 +02010201810001010181020105018102010c0181020104018102010b0181020104018102 +0104018102010301810201040181020110018102010e0183020102010301810201010183 +020102018201000182010201010183020002010101010281000182010001010184000100 +010093000100020002000100020102010001000100010088000100010001000100830001 +000285020100010002870200010002000200820001028702000100020002008800010201 +02010001028102008c000102010201000102010201008100028502010001000290020100 +010201020001000200020001000285020100010002850201000100028502000100010285 +020001000102850200010001028502000100010289020001000102000200028302000102 +8e020002000102010201000102010201010101020b018102010301820001028502010002 +010201028401000100028202010281020186010200010002018101008600020102010200 +810002830201000281020181010283020001020102840001000201020181020185010200 +020002840201000201840102000201840102000201810102010281010283020100020202 +8301020102010281010282020102010282010201810100 +880200020002000201020202010181020190010201000201000201020100020100020184 +010201020109010302810102840200020002010281000201028100020602810001840102 +010201830102010282020002020283010201020202830102010201028900020001020002 +000201850102000201020102840102010201010185020100020102910200010201020102 +010201020102010201028a02000200020002000200028802010201020102010288020002 +000200020002860201020102010284020002000284020102000284020102010284020002 +000284020102010282020102840200020002820201028402000200028202000288020102 +010001000100840001020102820200028202010082000102820200028202010282020102 +820200028202010282020102820200020102830102000183010001028102010301010281 +010282020102820201028102011101010281010282020102010281010282020102010281 +010282020102010281010282020102820201020102810102820201020102810102820201 +028202010201028101028202010282020102010281010282020102820201028202010201 +028101028202010282020102820201028202010282020102820201028202010282020102 +820201028202010282020102820201028202010284020100020182010002820201028202 +010284020102010282020102820201028202000186010001000200028802010002000201 +000103018202000201028101008700020002000102018901000201020002000201810102 +81020186010201000200018b010201000100010200020002840201020002020281010288 +020002000201000201870102000201020102020201008101028102000100010282000102 +82020102860201020002010206028401020102010101 +010281000284020001000202020401810201820102010501810201140182020102820201 +028402000200028302000102030281010285020001020001020181000204028300020102 +020283010200020102010093020102010201020102000200020100020002010281020182 +01020103018402010001028102017f012a01810001040183000100010201830001000102 +01810001040181000101018100010101820001008100010101830001000102018c000100 +010001000100010001008e00010001000100010001000100010092000100010001000100 +01000100010001000100b700010001000100010001000100010001000100010001000100 +010001000100010200020002010201000100010001000100010001000100010201810201 +0c0181020101018102018801000201020001020185010200020102010201010102890001 +000102010200020198010200010002010201020002010201000200010200020002010301 +010284010001000181010282020001840102000102010281000202028400020001028502 +00020001020102820102018101028502010201000182010001810100 +010281010285020102000102880201020100020100018901000100020100010001830100 +0201820102010e0182020102840201020102010284010201020081000201028100028402 +010201020102840001020102030281000201028301020002020285000201020102820200 +028402000200020802840002010201810102010281000202028100028702010201000200 +028e02010201020102010201020102010286020002000200028802010201020102010286 +020002000200028402010201028602000200020002840200020002840201020102820200 +028602010201020102820201028202000284020102010282020002840200020002860201 +000100010084000102010282020002820201008200010282020002820201028202010282 +020002850201000200028202000282020102810200880001000102010001008100020102 +810002820201028202010286020001000100018601000100010001020183000100028202 +010282020002010281010282020002820201020102810102010281010282020102820201 +020102810102820200020102810102820201028202010201028101028202010282020102 +010281010282020102820201020102810102820201028202010282020102820201028202 +010201028101028202010282020102820201028202010282020102840201020102820201 +028802010001020100020181010281020183010201028102018601020102010201020183 +000200028402010201028502000200020104018b00010201020001020002000282020102 +0102850102000102018101028a0200010201020002000201850102000100028402000100 +020102010003028c01000200020001020002010201010102028400020102008300020102 +8102008100020102820100028902010200010002010201820102010901 +820201028202010201028501000201020182010201220181020101018202010201028500 +020002010201020101840201020102010286010001000200020202860001020002000284 +020002000282020002010290010200010201020002000201020102010204020201820201 +02820200028102017f017601820001008100010101850001000100010101860001000100 +01009f000100010001000100010001000100010001000100010001000100010001000185 +010001000102930201000100020001000100020001000100020001810102830201020102 +010102010183020102010201010288010002010200020102820200028502010001000281 +020187010001000201020083000102018501000200010288020100020102010200010085 +020100020002810201010182020102010281010086000200010200020102810002010282 +000102010202008202000282020100840002010201840102010201020181000182010001 +810100 +810102010283000200020202840100010001820100018401000100018401000100018201 +000113018102010101820201028202000283020102018101020102810002820201020102 +830002010204028300020002020281000204029701020102000200010200010002010201 +02000201020002010201850002010201029002000201020002000200020002000200028e +020102010201020102010201020102860200020002000286020102010201028602000200 +020002860201020102010284020002000282020002840201020102860200020002000282 +020102820201028402000200028202010284020002000289020002000100010001008600 +010201020102010281010084000102010282020002820201028802010001000100020083 +000200028202010281020088000100010201000100810002820201020102810102820201 +028702000100010001008800010001000102010085000100020002010281000201028101 +028202000201028101028202000282020102010281000282020102010281010282020002 +010281010282020002820201020102810002820201028202000201028100028202010282 +020102010281010282020102820201028202010282020102010281010282020102820201 +028202010282020102820201028202010282020102840201020102820201020102850100 +010201028202010282020102820201028202010297020102010201000100010201020100 +010002000102000201010181000181010282020102820200020102810002810201850102 +010201020102010181000181010289020001000102010200028102018401000100028502 +01020002018101028c020001020100010001000102008600010201020002010286010002 +0102010282020002820201020202820102018401020102010c01 +810002830201000204020101810201820102012601870201020002010200010084020002 +010207028101028402000201028602000201020102880201000100010200020302810002 +0a0285010201020002810201820102018101020302070181020105018102018201020101 +018102010401830201020102018102010301010282010201010101020301830201020186 +010201020102010301830201020102010102020101028101028102010101010203018102 +01090181020109018102010301810201090181020118018102017f010601850001020102 +0083000100018e0100010001000100010001000102010101010202010102030181020106 +018302000102820200028102018201020186010200010002018a01020002010201000100 +028702010200010001020102840002000201810100010085010200010002870201020102 +01020101018102018201000201028501020002000201028a010201020102000200010203 +02820102010a018300010001 +82020102010281010082000201060181000108018100011b018100028202000201028101 +020502840102000102820200028102018101020202810002020201008202010295020002 +010201000200020102010201020102000201020202010183020100018101020102810102 +a0020102000200020002000100020002000200010002000102000100020102000200a000 +010002000200010201020100010001000200010001020102010001000200010083000100 +02870201020100010002820201008f000102010001000100010201000100028b02000100 +01000100010001008400010001028302000200810002850201020100028b020102000100 +010001000100860001000100010281020088000100010201000100810002820201028202 +000201028701020100010001008a00010001000100010001008500010002000201028100 +028202000201028100028202000201028100028202010201028100028202010201028101 +028202000201028101028202000282020102010281000282020102820200020102810002 +820200028302010002820201028202000282020102820200020102810102820200028202 +010282020002820201028202000282020102820200028202010282020002820201028402 +000102008200010282020102820201028402010201028202010283020102010101890001 +000102010001000283020100018301000201010184020102000286020102000102018501 +020002010201028e00010201000200020102010001000281020183010001028102018101 +028102018101028202000289020102000201000100028802010201020102010285020100 +01000282020002820201020102830102000281020182010201020101020e01 +820201028402000201028802000102000102000105018300010001210185020102010002 +820201028302000102060281000205028401020001020102850001020102008200010201 +028100020302890102010201020002010281020103018202000101018102018601020102 +010201030183020102010301830201020102018302010201020183020102010201830201 +020102018302010201020183020102010201830201020102010102030189020102010201 +020102010201830201020181010283020102010e01810201030101020301010216018102 +010701010202018302010201120183020102010101010202018302010201010101020301 +010202018302010201010101020201830201020101018302010201010101020201830201 +020101018302010201010101020301010203010102020183020102010101830201020101 +0183020102010101830201020101018302010201010183020100028d0201020002010201 +000102010201880100020002000100010101010283010201028202010285020102010201 +010182000102820200018101008300020001820102018b0102000200010201020002018d +010200020002010201000200010288020100010001020100810002010284000200010281 +020101018b02010201020002010002000282020102010281010282020100830002010284 +0201000102810201030181020109018100010101 +840200020102820200028102013001850201000200020202840102000102010281000286 +020002000201020302810002020201000102010101028101020102810102010283000200 +0208028f0002000201020102010201020100010281020103018302010201010186000200 +0201000101018502000201000186010200020100019d0102000200010001020102010001 +000201020001000102010201000100028f020001000102010201000100010201008c0001 +020102010001000200010082000102890200010001000100010088000100010001000100 +930001000100010001000102000200010001000100880001000100010001008800010001 +0201000100880002000200010002008a0001000100010001000100880001000100010001 +00860001000100010281020083000100028a02010001020002000100028a020100010200 +0200010002850201000100028a0200010002000200010002850200010001028702000100 +020002008800010201020100010285020001000102ab0201000102010201000102010201 +000102010201000102010201000102010201000102010201000201020002810201010183 +020102010101830201020101018702010201020102018201000105018500010001020102 +010102830001020183010001020102810102810201840102000201810102840201000201 +8a0102000200020102010002810201810102830200020185010200020102850200010002 +018101028402010200020102810002030288000200010200010002830201000283020102 +011301810001 +010281000205028600010201020001020181000182010001260182020001810102810200 +820001028202000285020102010002820201028202010284020100010201028100020102 +95010201000102010201020102000200020102010201028102010d018e00010201020102 +01020102010201028c020102010201020102010201028802010201020102000286020102 +010200028402010201028402000201028402010201028402010201028402010201028402 +010201028202010284020102010282020102840201020102820201028202010283020102 +011501820201028302010201040181020182010201820102010401010203010102810102 +810201140101020201820201020102810102820201020102810102820201020102810102 +820201020102810102820201020102810102820201028202010201028101028202010201 +028101028202010201028201020181010281020101018202010282020102830201020101 +010102810102820201028302010201810102830201020181010281020102010102820102 +018101028302010201810102840201000201850102000201028202010282020102820201 +028202010289020102010001000201028402010200028202010281020101018302000102 +8c0201020001020100010001020184010002000286020001000102018401000200028702 +010200020002018801020002000201020082000102820200028802010201020001000281 +020182010002020281000284020102000282020102880201000200020102011701 +8802000102000200020105018102012b018300010001820100028c020102000200020002 +0100010203028100020102010103028501020102000209028f0002010201000102010200 +02010200028b0201000200020002000102014b01820001008c0001000100010001000100 +01008c000100010001000100010001008a00010001000100010001008800010001000100 +010088000100010001000100880001000100010001008800010001000100010088000100 +010001000100880001000100010001008a00010001000100010001008800010001000100 +0100880001000100010001008a0001000100010001000100880001000100010001008c00 +0100010001000100010001008c000100010001000100010002008300010002a202010001 +000100010001020102000100010001000100010201000100010201000100029102010001 +000102010001000102010001000201028100018601000100010001010185000100010001 +010181000183010201028102010a01830201020101018400010201028302010201870102 +00010001020182010201010186020001000102018c010002000102010200020002018f01 +020001020102000200010200010002810201850100020001020102810002040201008301 +0200028102011b01810001 +810102820200028802000201020001020182010001020181000182010001270186000100 +010200020102810102830201020181010282020102820200028202000282020102820201 +02030289000200020102010001020802820102010c018102019001000201020102010201 +020102000200028a02010201020102010201028802000200020002000286020002000200 +028402010201028402000200028602010201020102840200020002820200028402010201 +028402000201028202010284020102010282020102820201028402010201028102011701 +01020a018102010701010203010102820102011601810201030102020101820201028102 +018101028602010201020102820201020102810102820201020102810102820201028202 +010201028101028202010201028101028202010201028101028202010282020102010281 +010282020102820201028202010201028101028202010282020102820201028202010282 +0201028202010282020102820201028202010282020102820201028d0201000102010200 +0102010201028202010282020102820201028c0201020100010001000200010284020102 +01028202000102018102018a010001000100010002010292020102000100020100010002 +0102010001000181010201028a0100010201020002000102830201000203028100028102 +0184010201000201028201000202028300020002020281000201028101028102011b01 +8401000200028502000201020182010201820102012a0181020104018900010201020100 +010001820100020402810002850200010201020202970102000201020102000200020102 +010201020102000201029702000201020002000200020002000200020002010201020103 +018102010501810201040183020102010401810201020183020102010401810201020183 +020102010201010203018302010201020101020301810201040181020104018102010201 +810201140181000104018300010001020181000101018400010001008a00010001000100 +010001008600010001000100880001000100010001008a00010001000100010001008800 +010001000100010088000100010001000100880001000100010001009700010001000100 +01000102000100010001000100010001008c000100010001000100010001009000010001 +00010001000100010001000100a900010001000100010001000100010001000100010001 +000100010001000100010001000100010001020096000102000100010001000100010001 +000100010001020101018202010282020102820201028c02010201020102010201020102 +840201020102860200010201000201028401020102018401020100020102840100010201 +810102850200010001028302010002820201008300020002890200020002000201000201 +0281010283020001028602010002000201820100011d01810001 +830102010282020002810201840100010001820100010201810001820100012c01810002 +810201050101028101020102810002010281010284020102010203028300020002820200 +0204028701020102000200020102060183020102010101820201029e0200010001000201 +020100020002000200010002000200020001000102010287020001000200020085000100 +0200028b0201000102010201000100028c020100010002000201000100028c0201000100 +0200020001020002870201000200020002880201000201020100028402010201008a0001 +000100010001000100830001000101018200010081000103018300010001820100010701 +830201020101010102820102013101810201020181020104018202010201028101028202 +010282020102010281010282020102010281010282020102820201020102810102820201 +028202010282020102010281010282020102820201028202010282020102820201028202 +010201028101028202010284020102010282020102830201000201028201000282020102 +82020102820201028402010201028d020102010001000100010001000186010001000100 +01020181000188010001000100010001820102018401020002018d010200020002010201 +000200010202028201000201028401000200018101028302000102820201028202000282 +02010201028101020102010001028201000203022401 +02028200010201020101810201820102012c018102010601810200850002000102018101 +0282020102010285010002010002010281000202028101008d0002010201020102010200 +02000202028100020102850102010001029a020001020100010002000100010201020102 +010201020102010201890102010201020102010288020102010201020102870201020102 +010201020182020102840201020102810201020183020102010201820201028102018601 +020102010201830102010282020102840201020102820201028102018301020102840201 +0201020102820102011b0181020107010102050183020102010b01810001040181000104 +018300010001020185000100010001010101000401820001008100010101850001000100 +01870100010002000201820100028a020100010200020001000285020100010002810201 +86010002000200018701020002000100028502000100010281020186010001020100018e +010200020001000201020001000200810001830100010282020001960100020102000200 +020001000200010001000200020002810201010101028101028402010201028602010201 +020001850102010201028402010201028302000102880201020102010002018501020002 +000201028601000200020102010284010002010281020083000102008400020001028502 +0102010002850200010001020102830002000282020001820102012201 +810102820201020302840100010001820100010301830001000105018100012201820001 +020102010181020181010282020002840201020102010283010200020202830002010284 +02000200028e0200020002010200020002010201028102018b0102010201020102010201 +02820201020102010101000101a300010001000100010201000100010001000100010001 +000100010001000100010001000297020001000100010001000100020002000100010201 +0201008e0001000200010001000102010001009700010001000100010001000102000100 +01000100010001008a000100010001000100010088000100010001000100880001000100 +010001008a00010001000100010001008800010002000100020088000100010001000100 +850001000100018601000100010001010101008201000103018300010001040181000102 +018300010001040181000105018100010401810001030101020201860201020100010281 +020101018100028102010101830201000101010102820100018101028102010101810002 +810201810102830201000101018902010201000102010201010183020102010201810002 +810201830100020101018302010201810102830201020105018a02000200010001000100 +0184010001000102018100018a0102010201000100020102820201008100028802010200 +020001020185010001000201860102000100010288020100020002010201010102028300 +010002820201028102008600010200020002030201018102012401 +8101028402000201020102010183020102012d0183020102010301850200020102018601 +000100020102870200010201020002020283000200020102880100020102000201020202 +890002010201020102010291020100010001000100010002000100020002900201020102 +010201020102010201020102880201020102010201028602010201020102880201020102 +010201028402010201028602010201020102860201020102010282020102820201028602 +010201020102820201028202010284020102010282020102820201028202010284020102 +010282020102820201028102011b01810201070101028201020101010102820102014701 +820201020102810102820201020102810102820201028202010201028101028202010282 +02010201028101028202010283020102010b018202010282020102820201028202010282 +020102820201028202010282020001840100020002820201028202000285020102010002 +840201020001010182020102840201020102820201028302010201840102010201830100 +0102810201850100020002018201020183010002018c0102000200010201020002000286 +020102000200020102820100020102010001020101010287000200020002000203028800 +02000201020102012301 +820201020102830102000187010002010001000182010001820100010201810001020181 +0001200183000100028a0201020001000201020102060285010201000102830201020101 +010102840100020100860002010201000205028901000102010201020102810201810102 +01028300020001ab01000100010001000100010001000100010001000100010001000100 +010001000100010001000100010001009600010001000100010001000100010001000100 +010001008c000100010001000100010001008c000100010001000100010001008c000100 +0100010001000100010088000100010001000100880001000100010001008a0001000100 +010001000100880001000100010001008800010001000100010088000100010001000100 +8600010001000100880001000100010001008a0001000100010001000100880001000100 +01000100880001000100010001008a00010001000100010001008a000100010001000100 +01008c000100010001000100010001009000010001000100010001000100010001008f00 +0100010001000100020002000200028c0201000200020001000100010081000181010085 +000100010001010188000201020100010201090181020104018202000287020100010001 +000186010001000102010201010283010201028302010201830102010083000102018201 +000281020181010290020002000201020100010001020102000104010102810102840200 +010002820201020102020186000200020100012901 +820200028402000201028102013001830201020184010201020183010200020102850001 +000102018101028202000202028100020102820102018201020183010002010101040283 +000100010101840200020102810201870100010001000201850100020001028c02010201 +02010201020102010286020102010201028e020102010201020102010201020102860201 +020102010284020102010286020102010201028402010201028402010201028402010201 +028402010201028202010284020102010282020102820201028402010201028202010282 +020102820201028202010282020102810201240102020401830201020148018202010201 +028101028202010201028101028202010282020102010281010282020102820201020102 +810102820201028202010283020102010701010281010282020102820201028202010282 +020102820201028102018201020185010200010002010283000200028202010282020002 +840201020001820102010101820201028402010201028102010201830001000188010001 +000100010002010281010286020002000102018401000102018701020102010001028402 +010002010201020286000102000200028a02010200020002000200020102810102030284 +01020102012301 +81000282020002810201820102018401020100012b018102019201020102010002000200 +020102010001020102010281010282020002010284000102010201028200020101010102 +810002840200020002010283000200028602000200020002850201020102018801020100 +0100010001ad010001000100010001000100010001000100010001000100010001000100 +010001000100010001000100010001009600010001000100010001000100010001000100 +010001008e0001000100010001000100010001008c000200010001000100010001008a00 +0100010002000100010088000100010001000100880001000100010001008a0001000100 +010001000100880001000100010001008800010001000100010088000100010001000100 +860001000100010088000100010001000100880001000100010001008a00010001000100 +01000100880001000100010001008a00010001000100010001008a000100010001000100 +01008c000100010001000100010001009000010001000100010001000100010001008c00 +010001000100010001000102850200020001028702000100010001008f00010001000100 +0100010001000100028402000100028102010f0186020100010201028b02000200010201 +020001020101018402010201028402010201028102018201020086000201020100028202 +010286020100010002018701020001000100018101008200020181010284020001000185 +01000200010203028601020102010001820100012901 +810002020283000100018201000102018100018201000182010001020181000127018202 +010201028701000100020001020602810002810201840102000102010281000284020001 +000281020181010282020001810102850200020102018401020102018201000282020102 +900201020102010201020102010201020102810201810102880201020102010201028802 +010201020102010286020102010201028602010201020102840201020102840201020102 +860201020102010282020102840201020102850201020102018101028302010201010184 +020102010282020102810201020183020102010101830201020123010102050183020102 +014b01010281010282020102010281010282020102820201020102810102820201020102 +810102820201028202010282020102010281010282020102820201028202010282020102 +820201028202010282020102820201028202010284020102000283020100028802010002 +0002000102840200020002830201020101018102010d0186020001000100018801000100 +01000100018b010201020100020102010002010281010201028201000183010200018101 +028602000201000102820201028302000102820201008600020100020002050286010201 +020102012301 +01028100020202020101022f018902010201020100020002880201020001000100020102 +810102010281000185010201020002020281000183010201028202010284020102000201 +0285000200020102bd020001020100010002010201020100010001020102000100020002 +000200010002000200020001000102010201000200020002000102010201020100010283 +02000200910002000200020001020102010201000200028c020100020002010201000200 +028a02010002000200020100028d02010201000200010200010201028e02000102010200 +01000100010001008a000100010001000100010088000100010001000100880001000100 +010001009100010001000100020002010001000100010086000100010001008800010001 +00010001009c00010001000100010200010001000200010001000201000100010001008a +00010001000100010001008a000100010001000100010085000100010002860201020102 +01028302010002850201000100028c020100010201020001000200029502010002000100 +0100010001000100010201000100028b0200020001000200020001028b02000102000100 +02010201028202010282020102820201028402010201028402010001028402000200028a +02010002000201020102010101820201028402010201028102018101028202000201028b +010002000102010200010001010186020001000102018101028302000102020282010002 +8202000205028101020102850102000200018301020102810201820102012101 +820001020202820100018201000184010001000182010001820100010201810001270182 +000102860200010001020181010201020100010281000281020101010302830102010282 +020102040284010002000101018302000102820201028402010201020102010001018102 +010501810201040181020105018102010401810201040181020104018102010401810201 +040181020105018102010201810201040181020103018102010301810201040181020103 +0181020103018102014d0181020103018102010201810201030181020103018102011801 +810201030181020103018102010101010203010102020183020102010301840201020102 +820201028202010283020102018101028102010301810201030181020102010302940100 +02000100010001000100010001000100010001020101020301830001020102018102018e +010002000201000200020002000102810201850102000200020202830002000102018302 +010201810102010283010001020102840002000201850102000201028302000102860200 +01000200028102012c01 +84000200010283020102018401020102012b018302010201850102010201028202010201 +028101028202010201028100020202860001020102000203028600010201020002810201 +810102810201810102830201000202029901000200010001000100010201020002000200 +020102010201028e02000200020002000200020002000288020102010201020102880200 +0200020002000286020102010201028402010201028e0200020002000100010001000200 +028402010200028202010284020002000282020102820200028402000200028202010282 +020002820200028202010282020002820201008800010001000100010088000100010001 +0001008a0001000100010001000100880001000100010001009100010001000100010002 +010001000100010086000100010001008800010001000100010086000100010201028202 +000201028101020102810102820200020102810102820200020102890102010001000100 +01008a000100010001000100010085000100020002820201020102810102820201020102 +810102820200028202010201028101028202010282020002820201028302000102880200 +020001000200028202010282020002820200028202010282020002820201028802000201 +000200010282020102820201028202010282020102820201028702010201000100018101 +028302010001860102010201000103018302010201030188020102010200010201840100 +0100018101020102850102010001028c0201000201020100020002000284020002000284 +02000200020502810102850201000200028702010201020102012201 +0102810002840200010201870102010200010001820100018201000102018100011f0181 +020187010201020002000201020100010181000202028101020202030187020001020102 +010081000282020102820200020202820002010101010281000281020181010287020102 +01020102008100013f0101028101028102017f016f018900010201000102010001050184 +000100010282020001830102010282020002820201028402000200028c02010201000100 +020100020002860201020100020189010200020001020102009100020100010201020102 +0001020002000201830102010203020200030283000100018501000100010201022b01 +010281010281020133018102010701020203010102810102820200020102820100010401 +83020102008100028102018101008500020102000281020183010200029f020102010200 +02000100010002000102010201020102010201020102010201028e020102010201020102 +010201020102880201020102010201028602010201020102860201020102010284020102 +010283020102018201020103010102810102840201020102820201028202010284020102 +010282020102840201020102820201028202010285020002000102820201028302010001 +820100010101830001000189010001000100010001008800010001000100010088000100 +010001000100880001000100010001008800010001000100010086000100010001008800 +010001000100010088000100010001000200810002880201000200010002008800020001 +00020002008a000100010001000100010083000100010301820001008c00010002000200 +0100020001008e0001000200010002000200010002009800020001000200020002000200 +010002000200010002000200930002000100020002000100020002000100020002860200 +01000102018101028202000282020102820201028102010201850201020100010a018200 +0201020183000102010501030281010201028c0002000201020102010201000281020184 +01000102018d010002000201000200020002000283020001028202010291020102010201 +0002000102010201020102012201 +010281000289020001020001000102010301810001030181000102018100011a01830201 +020185010201020002820201000100810200820002008100028202010081000285020100 +010001010186000201020100020102010104028300020102850201020002018101028602 +01020102010285020100020001b501000102010001000100010002000100020002000200 +010002000200010001000100010001000200020002000100010001000100020092000200 +010001000100020002000200020001008e0002000100020002000100010002008e000100 +0200020001000200020001028a0201000200020002010001010181000102018100012301 +8102011d0101020101820201028102018101028602010201020102810201810102830201 +02010a018300010001070101028501020102010281020181010283020102018101028602 +010201020102810201830102010281020181010283020102018101028302010201010183 +020102010101890201020102010201020181010281020182010002830201000282020102 +010283010201028202010282020102830200020102018202000282020102840200020002 +810201040183020100028402010201028402000102018401000102018301020100840002 +010001860102010002000281020183010001028202010203028101028302000102010283 +00010002850200010001020102880102010201020102012201 +81000202023c018100018101028102018201020101018502000102010283020102010801 +830002010201028601020102010002040284000102010288020100010201020102010202 +018102010501810201050181020104018102010401810201050181020104018102010401 +810201040184020102010282020102810201020181020103018302010001010181020101 +018100018201020103018102010201810001050181000104018100010401830001000103 +010100040183000100010201830001000102018500010001000186010001000100010101 +010082010001010101008201000101018200010081000101018500010001000186010001 +000100010101010082010001010182000100810001010185000100010001840100010001 +030182000200810001880102000100010002018101008300010001010185000200010001 +820102009800010001020100010002000100010002000100010002000200930001020102 +0100010201000100010201000100028d0200010002010201000100010001010185000100 +010001010181020182010201010181020104018102018401020002018201020182010201 +020181020184010200020186010201000200018101020202830001000201028201000201 +02810102840201020102010283010001028502010002000202020201010283000100012a +01 +810002010287010201020001020182010001820100012501810201860102010201020182 +010002830201020083000200028202000201028100020202840100010001060183020001 +028202010286020102010200020102820102018201000281020103010102820001028202 +010093000201020102010001020102010201000102010288020002000200020002960201 +000102010201020100020002000200020001020102930200020002010001000100010001 +000100020002820200028402010001028202000284020100010282020102820200028402 +010201028202000282020002850201000201028402000100010101850001000100010201 +830001000102018300010001020183000100010301010006018100010401810001040181 +000104018100010401810001040181000105018100010401810001040181000104018100 +010301810001020101028101020102810102820201028302000102820201028302000102 +820201028302010002820201028202010282020102010281010282020102820201028202 +010282020102010281010282020102820201028202010282020102820201028302010002 +8702010002010201028202010282020102840201020102840201020001820100028b0201 +000100020002000102010101810201020189000102010201000201020102840100010201 +020186020100020002018501020002000201028200010201028501000201020102018200 +010201028300020002010284010001000203020101850201020102012001 +0102820002013d010102810102810201020183020100020202820002010d018202000201 +02850102000102018201020181010284020102000286020100010001028102013d018602 +010201020102820201028102017f01420198000100020001000100010001000100010001 +00010001000100870001000100010001050183000100019c010002000102000200010001 +000100010001000100010001020102010284020102010282020102860201020102000101 +018202010201028301020102850200010200010101870200010201020002020201000102 +010183020102018301000102880201020102010201020102810002020282010200890001 +00020102000200012801 +03028201020182010201080181000102018100011d018102018401020102018601000100 +010002010201008101020302830002000288020001000100010001850100010001000100 +0101870201020102010002020281010282020002810201040186020102010200020102b6 +000200020002000100010001000100010001000100020002000200020002000200010001 +000100020002000200020001000100010002009200010201000100010001000200020002 +0001008e0002000100010002000200010002008a00020002000200010002008a00020002 +000100020002008a00020001000100020001008800010001000100010088000100010001 +000100880001000100010001008800010001000100010088000100010001000100860001 +00010001008800010001000100010088000100010001000100880001000100010001008a +000100010001000100010088000100010001000100810001080101028101020102860002 +00010002008e000200010002000100020002000100830002000281020102010202810102 +820201028202010282020102820201020102810102820201028202010288020002000100 +020102830201020185010200010201810102810201830102010281020183010201028302 +0100018c0100010001000100010001000182010001820102018601000100020001040182 +020102820200018701020001020102018401000102018901000200010002000102810201 +020181000186010201020002018c01020002000102010200020002010288010201020102 +0102012101 +810002810201820102013101830201020187010201020102010282020102820201020102 +810102020281010201020101830201020108018100020302880002010201000200028402 +010201028702010002000100010301810201330181020104018402010201028102011801 +8102017f012a01820201020102810102850200020001028d020002000100020001000200 +020085000200010001090189020002000102000200028502010002000282020102820200 +028602010201020102820201028402010201028502010201020104018a02010200020100 +020001020202810002830200020081000181010201020100830201020188010201020100 +010201860102010201000101010202830002010281020081000203028100020102860102 +01020102012101 +01028100010e018100010201830001000123018200010081000281020002008301000102 +820201029102000201000100010001000201000100010001000401810002020282010201 +820100028402010201028402010201020302c30002000200020002000200020002000200 +020002000100010201000100020002000200020002000200010001000100020002000200 +01020100020002010201020102010289020002000200020002008e000200020001000200 +0200010001009300010002000200020001020001000200020001028102008a0002000200 +010002000200880001000100010001008800010001000100010088000100010001000100 +880001000100010001008800010001000100010086000100010001008800010001000100 +010088000100010001000100880001000100010001008a00010001000100010001008800 +010001000100010081000107010202810102010286000200010002008e00020001000200 +01000200020001008500020002000111018302010201010181020103018d020002000100 +020002000100010284020001020111019102000200010002000200010001000201000101 +018302010002810201010183020100028202010285020102010002020285000200020100 +0100850200010002008e0002000200010200020102010200028b02010200020002000201 +000182010201820102012801 +030234018102018601020102010201810102020285010201020102070284010201020101 +018102018201020107018502010201020181010284020002010203028701000100020001 +029602010201020102010201020102010201020102010201028902010201020102010201 +870102010201020102860201020102010286020102010201028602010201020102810201 +020181020185010201020102820201028402010201028402010201028202010282020102 +850201020102018101028302010201810102830201020181010283020102018201020103 +010102010181020101018102014801810201020181020103018102010c01810201010182 +020102010281010281020181010283020102018101020102010182020102810201810102 +820201028202010201028101028502000200010285020002000102830200010282020002 +820200028202010283020102018101028302010201010198000102010200020002000100 +020002000100020002000102010201810201030181020109018302010201830100010086 +000201000100028602010201020002840201020102810201850102000100018401020100 +0109018502010201000207028c000200020002010201020102012101 +02020f018100010201830001000123018400010200028102008800010002000102000201 +028a00020100010001000100018801000100010001000182010001840102010201010181 +02018101028d0201020102010201020102010201bb010001000200010001000100010001 +000100010001000100010001000100010001020100010001000100010001000100010001 +00010001000100010092000100010201020100020001000100010001008e000100010001 +00010001000100010087000100010002000102018a02010001000102010001008a000200 +010001000200010088000200010001000100880001000100010001008800010001000100 +010088000100010001000100880001000100010001008600010001000100880001000100 +0100010088000100010001000100880001000100010001008a0001000100010001000100 +8800010001000100010081000104010102810102810201030186000100010201008e0001 +020100010001020100010001008b00010001000100010001000182010201030181020101 +018102018201000104018f00010001000100010001000102010002810200860002010201 +020181010283020102018101028302010201820102019101000200010002000200010001 +000201000101018600020001020102810201820100010301830200020187010200020002 +000282020002020202018b02000100010200020002000283020100020102840100020002 +8702010001020001028502010201020101018102012101 +020235018102018401020102018501000102010202028101020402810102850201020102 +01040183020102010a010102010185020100020102010281000201028601000200010201 +820102018101028102010101850201020102010101850201020102018601020102010201 +010101028201020101018202010281020101018202010281020101010102820102010101 +010282010201860102010201020181010283020102018301020102810201010101028201 +020183010201028102018201020182010201830102010281020183010201028102018401 +020102010101820201028102018301020102810201840102010201440101028101020102 +8101028202010201020c0182020102010281010201028101028202010201028101028202 +010201028101028202010201028101028202010282020102010281010281020183010201 +028102018101028102018301020102820201028202010282020102820201028202010282 +020102840201020002810201950100010001020100010001000100010001000100020182 +0102010b0181020104018102018a01000100020002000102018201020183010201020102 +010181020181010201028201000101018102018201000108018202000282020102010281 +0002890200010002000200020101018102012301 +020233018102018401020102018201020001000102870002000100010002040281000188 +010001000100010001880100010001000100018201000105010102010184020102010289 +02010200020102010001bb01000200020001000100010001000100010001000100010001 +000100010001000100010001000100010001000100010001000100010001000100010092 +000100010001000100010001000100010001008e0001000100010001000100010001008a +00010001000100010001008a00010001000100010001008a000100010001000100010088 +000100010001000100880001000100010001008800010001000100010088000100010001 +000100880001000100010001008600010001000100880001000100010001008800010001 +0001000100880001000100010001008a0001000100010001000100880001000100010001 +008100010401810201070186000100010001008e00010001000100010001000100010087 +000100010001000282020102820200028502010002000201028400020001028202000282 +020002970201000100010001000100010001000201020002010201028202010282020102 +820201028202010283020102019101000100010002000200010001000201000102018202 +000282020102810201010183000102018501020002010283020002018101020102010183 +020102018101028d020001020100010200010001020083000200028b0200020002000102 +0102000201028701020102010201028102012001 +02020f018300010001020181000125010202020101028501020102000201028100011701 +840201020102820200020302810102810201840102010001020183020100010d01810201 +040181020105018102010401810201040181020104018102010301810201040181020103 +018102010401810201030181020104018102010301810201030181020103018102010301 +81020103018102010301810201030181020145018202010201028101028202010201020c +018202010201028101020102810102820201020102810102820201020102810102820201 +020102810102820201028102011d01820201028202010282020102850201020002019601 +020002000100010001000100010001000100010002018201020181010281020102018102 +010501830001020187010201000100020185010001020102010204018302010201010101 +028101028902010201020102000201870102010201020102010285010200020102820201 +0089000200010002000200012601 +820200013301810201840102010201830102010288020002000200010002840201020002 +8302010201040181000108018102010801810201810102010201018202010201020801b8 +020100010001000102010001000100010002000100010001000100010001000100020001 +000100020001000100010002000100010002000100920001000100010001000200020001 +0002000200820001028b0200020001000200020001008a00020001000100020001008a00 +010002000200010001008a00010002000100010002008800020001000200020088000200 +010001000100880001000100010001008800010001000100010088000100010001000100 +860001000100010088000100010001000100880001000100010001008800010001000100 +01008a00020002000200010002008800020002000100010081000105018102018101028b +0201020102000200010002008e0002000100020001000200020001008a00020002000100 +020001029302000200010002000200010002000100010002009100020001000200020001 +000200020001000201028600010201020102820201028202010282020102850201020102 +01880100010201000100028a020100020002010201020101018500020102010202028100 +020102830100020181010282020002810201820102010401810201810102810201020185 +000100010001810100830001000204028100020102840102010002890201020102010201 +02012001 +820102010c01810001840100010001020181000123010200830200020103018100028202 +010201028100018401000100010101810001860100010001000102018300010001060184 +020100020105018700010200010200010f01810201040181020104018102010501810201 +040181020103018102010401810201040181020103018102010a01810201030181020104 +01810201030181020103018102010f0181020103018102015e0181020105018102010301 +8102010201810201030181020102018102010301810201290186000102010200028b0201 +000200020001000200028402010001028402010201028202010284020102010285020102 +01020102018102018d010200010002010201000200010202028301020102810201820102 +0101018702010201020102018101028c0201020102010201020102010281020082000201 +810102910200020102010201020100010201020102012001 +01020101810201820102012e018502010201020185010201000200850001020001020502 +8100028102018401020102010601850201020102018201020108018a0200010001000200 +010001020101029601020102010201020102010201020102010201020102010201840201 +0201028a0201020102010201020102860200020102000284020102010284020002000284 +020102000284020102010284020002000282020102810200830001020181010284020102 +010282020102840200020002820201028502000200010282020102820200028202010083 +000100010101840001000100830002000201028300020102870200010001000100880001 +000100010001008800010001000100010088000100010001000100880001000100010001 +00860001000100010088000100010001000100880001000100010001008a000100010001 +000100010088000100010001000100830001000107018102018701020100020001028102 +008e0001020102010001000200010002009e000100010201000100010201000100010001 +000100010001000100010001009100010001000100010001000100010001000284020002 +0102810201820102010301810201030181020104018b0001000100010001000100018401 +000102010101810002810201860102010201000201028101020202840002000201830102 +010284020100010201020101830201020081000186010001000100010101810002040283 +0001020184010001000201022801 +01020d018100018401000100010201810001220182020102010289000201000100020001 +0201028300020001910102010001000102000100010001000100018401000100010d0181 +02010101810002820200018401000100010101a300010001000100010001000100010001 +000100010001000100010001000100010001000101018100010101810001010181000105 +018100010401810001050181000104018100010501810001040181000105018100010401 +81000104018100010c018100017f01050183020102018301020102810201810102830201 +0201810102830201020181010283020102010d0181000281020188010001020100020002 +850201000200028902010002000200020102820201028402010201028202010281020103 +018602010200020002020283010001028502010201020182010201090181020181010281 +02018d010201020102010201020102010281020081000201028101020202810002010283 +000200028702010201020102011e01 +0102350181020184010201020101018a0002000102010201020102010281000201021401 +81020109018c000100010201020102010201028102018601020102010201030183020102 +010301810201040183020102010201850201020102010101010282010201010101028201 +020186010201020102018601020102010201810102830201020186010201020102018201 +020182010201830102010281020186010201020102018101028102010201010282010201 +81010283020102010c01810201020183020102010b018100010801810001020183000100 +010201860001000100010081000101018200010089000100010001000100018701000100 +010001008a00010001000100010001008800010001000100010083000100010101810001 +03018b02010200020002000100020085000200010002880201000200020001009c000200 +020001000200010001000100010001000100010001000100010093000100010001000200 +020001000200020001000181010081000182010201130183000201028502010201020101 +018402000200010101820001028702010002000201020202020183020102018f01000102 +000100010001020002010201870100020100010200840001020001830100010201028300 +020002860201000102000201022801 +830201020182010201300181020184010201020181010201028101028602010201020102 +03028c000200020100010201000100018801000100010001000182010201090182020102 +8102010401810001820100028402000100010101b6000100010001000102010001000100 +010001000100010002000100010001020100010001000100020001000100010001000100 +0100010092000100010001000100010002000100010001008c0001000100020001000100 +0200850001000100010301010089010001000100010001008a0001000100010001000100 +880001000100010001008800010001000100010085000100010001010101008601000100 +0100018401000100010301010009018100010b01810001290181020103018102010d0181 +020103018202010281020181010283020102018101020102010182020102820201028202 +0102820201028202010281020109018c0002010201000102010002000288020100020002 +0001028502000200020101018a0001000100010002000201820102010301010281010082 +00010201028300010201820100010b018102018101028102018401020102010b01840200 +020002010201018302010002850201000100028702010201020102011e01 +01023c019100020002000200010001000201020102010281020121018100010101860001 +000201020103018102010301830201020104018102010501810201040181020104018102 +0102018102010601810201040181020104018102010a0181020110018102010301810201 +030181020131018100010c01810001040181000104018300010001020188000100010001 +000100830001000101018200010081000101018500010001000182010001010181000108 +0186020100010002008600010001000201880100020001000100029b0200010001000100 +01000100010001000100010001000100010001008100018101008f000100010201000200 +020001000200028402000100020102810102850201000201028202010286020100020102 +010101010281010284020102010282020102810201820100010101850002010201020102 +010101028400020102010201820201028502010001020182010002810201810102810201 +860100010001020089000102000102000201028402000200020102850102010201020102 +880102010201020102011e01 +010215018100011c01830201020185010201020102020282010201830102000206028100 +018801000100010001000188010001000200010001820100010901830201020105018402 +000200029302000201020001000200020102000100020002018b01000100010201020100 +010283020002018401000200028602010201020102840200020102860201020102010284 +020102010282020102840201020102840201020002820200010101820201028202000282 +020102840200020102820200028202010282020102820200028202010282020002820200 +028702010201000100018601000100010001010101008201000101018200010088000100 +010001000100890001000100010001000187010001000100010085000100010001010101 +00820100010101010082010001030101000d01810001040181000104018100010c018100 +018101028202010201028101028202010201020301840201020102820201028202010201 +028101028202010282020102010281010282020102820201028202010282020102820201 +020102810102820201028202010281020182010001010182000201100181000190010001 +000100010001000100010001020104018600010001020102820201028102010101810201 +06018b020102010201020102010201820102018201020106018402010200028202000202 +020100830201020081000283020100012401 +020201018102010201810201320185000200020001010184000200010204022401860200 +020001000182010201820102017f017f018101028102010b018500010001000103018300 +0100018101028102010101830001020102018100010a01010283000100018c0100010002 +000200010002000285020100020002810201010182020102820201028402010201028102 +018301000201820102018101028902010201020102010201060189020002010001000100 +018201000101018102018b01020100010201000201000182010002820201020102890002 +0002010201020102810201850102010201028102011f01 +010282010002810201840100020001820100012401810201840102010201830102000282 +02000201028600020100020002840201020002830201000186010001000100018c010002 +00010001000100010201820100010a018302010201020185020002010001010185000102 +010001010185000102010001010185000100010001010185020100010001010185020100 +010001810102860201000100010286020002000100028702010001000201028702000100 +0200010286020002000200019b0100010001000201020001000100020100020102000200 +020002000285020001000102830200010088000200020001000100880001000100010001 +008800010001000100010088000100010001000100880001000100010001008800010001 +000100010088000100010001000100860001000100010088000100010001000100870001 +000100010001020181000103018200010088000100010001000100850001000100010801 +860201000200010281020081000283020100028202010286020002000100028202000282 +020102010201018202010281020181010281020105018102018201020182010201810102 +010201018402010200018301020102010201018200020109018102010301010201018600 +020002000102840200020002830201020102018500010002000104018302010201040181 +000189010201020102010201020202020101028d01020100020102010201020102008400 +0200010282020102810200810002820200020102810001820102012101 +820200020102010081010283020002012901810201020181020188010001020100020002 +09020f0181020110018a0200010001000102010001050181000105018100017f017f0105 +018300010001010195000100010001000100010001000102000100010002010b01820002 +0101018e00010001000100010001000100010282020001020181020112018b0201020100 +010002000200010601810201010181000101018100010101810201810102850201000100 +0186010001000100018101028202000202028400020002018a0100010200020102010201 +01018102011f01 +0102840100020102830200010283020100012a0181020182010001810102020281000184 +010002000204028300010201930100010001000100010200020001000200010201820100 +010f018102018101028a0201020102010001020102850201020001028602010201020001 +020194020102000102010201020100020102010201020102840201020102860200020002 +01028702010002000201028602000200020002850201000200028102018d010001020100 +020102000200010287020100020102000285020100020002820200028202010281020083 +000200020102840002000100880001000100010001008800010001000100010089000100 +010001000100018701000100010001008800010001000100010088000100010001000100 +860001000100010089000100010001000100018901000100010001000100810001050101 +000201850001000100018401000100010801860201000100010287020100010201020101 +01850002000100018a0102010001020102010001120181000105018b0001000100020001 +000100028502010201020102010102030101028301020102010282010201910100020001 +000100020002000100010200010101830001000281020101010102010181020105019100 +02000201020100020102010200020102018101028f020102010201020102010201020102 +00810002040283010201020102880002000201020102011f01 +8100020302850102000200028802000200010201000121018102018f0102010201020002 +000200010002000208020a01850201020102018401020102010c0181000104018b020001 +020102010201000102830201020183010001028502010201020103018202010288020102 +010201020102860201020102010286020102010201028602010201020102820201028402 +010201028502010201020183010201028102018201020104010102820102018301020102 +810201860102010201020181010283020102018101028302010201810102870201020102 +010201730181020103010102020183020102010101010204018102010101010203010102 +020183020102010101820201028102010201010202018302010201010183020102010101 +85020102010001850102010200010601890001000100010001000101018102010b018102 +018201020181010281020186010201000100028102010801840201020102840201020102 +810201010187020100010001000184010001000185010002000102010282000200810002 +880200010200020102012501 +020282000102020285010200020102020281000184010201000182010001200181000181 +010201020100010181000201028100020202830001000186010001000100018a01000100 +01000100010001840100010001090188020102010201020102810201ac01000100010001 +020100010001000102010001000100020001000100010201000100010002000100010001 +02010101b000010002000100010001020100010001020001000100010201000100010201 +0001000102000100010002000100010002008c000100010201000100010201009c000102 +010001000102000100010201000100010200010001020100010088000100010001020100 +890001020100010001000187010001000100010088000100010001000100880001000100 +010001008600010001000100890001000100010001000184010001000101010100820100 +0106018100010301830001000113018100010401810001050181000104018100010f0181 +000104018100010501830001000103018800010001000102000101018202010283020102 +018101028202010282020102810201020189000102010002000200028202010283020100 +018a01020001000102010201028302010201070182020001860100010001000185010001 +020102810201870102010201020102810201840102010201810100810002020285010201 +0201020302880002010201020102011d01 +03028401000201020202840100020002810200810002010201001b018102018401020102 +0184010001000201028a010200020001020102000202020b018102018401020102018201 +0201080183020100018801020100010001000202029a0102010001020102010201000102 +010201020100020102010201020202810102010281010286020102010201028302010201 +810102010282010201810102020202010102820102018301020102850200010201028102 +018301020102810201010103020101830200020185010201020001830102010283020001 +028502010201000202028701020002010201020102020181020182010001040183000102 +018201020102018102015201010285010201020102810201810102860201020102010281 +020181010283020102010101010201010102820102018101028602010201020102810201 +830102010281020183010201028102018101028302010201810102830201020181010283 +020102010101830002010002000401860200010001000286020100010201028102018601 +020102010201810102830201020104010102880100010001000102010801820201028602 +010201020102010282010201840100020001840100010201020183000200020202890001 +02010002000200020102820102012401 +820200020102010002020100020201008202010282020002020281000281020116018102 +010501870001020002000200820001020502850102000100018801000100010001000188 +0100010001000100018401000100010a0181000182010201810102810201820100018401 +000100010101850001000100010101850001000100010101850001000100010101850001 +000100010101810001010181000101018500010001000101018600010001000100920001 +00010001000100010001000100010001008c000100010001000100010001008300010001 +01018600010001000100880001000100010001008a000100010001020100010088000100 +020001000100850001000100028202010089000102010201000100018701000100010001 +008800010001000100010088000100010001000100860001000100010088000100010001 +000100850001000100010101820001008100010301810001890100010001000100010081 +000101018100010a01860001000100010089000100010001000100010101830001000102 +018500010001000186010201020001008200020102010102820001008300010200850001 +000100018101008500010001000181010084000100010081000188010201020100010201 +030181020102019002010200010001020100010001020100018201000103018200020183 +010201028202010281020106018202000186010001000100018401000100018201020102 +018102018601000102000201010101020100810102010201010102850102010200020102 +86010201020102011d01 +810102820200020202810002020281000201028101020302010081010281020102018100 +0104018100010e018102018501020100010202028101028202010209020b018302010201 +8401020102010d0188020102010002000102020283000201028702010201000201020202 +83010001028302010201820100020302830102000202028101028202000201028c010201 +000200020102010200028202010286020100010201028702010200010201028702010001 +020102018201000202028401020001028202010282020102840201000102010283010201 +020102830102010201028301020102010201018302010201010183020102012301810201 +13018102010c018100011401010201010102850102010201028102018101028602010201 +020102810201810102830201020101010102810001010101020101830001000187010201 +020100020102018102018201020182010201840102010201010183020102010101020201 +018302010201850102010200018301020002890201000200020001020101010102810102 +820201028402010201028302010201820102018501020102010286020002000100010701 +8a0201020102010201020102010281010291020100020002010001000100010200010002 +0202880002000200020002008100020302810102810201820102011d01 +020102028101028202010202028300020002020281000284020002000202028100011401 +810201870102010201020102880200010001000100020102890002010201000201020103 +018800010002010201020183010200010a01820001028102018501020102010281020103 +018302010201030183020102010201830201020103018302010201020183020102010201 +830201020102018502010201020184010201020102010102820100010101010282010001 +890102010200010001020184010001000281020101010102830002000186010201020100 +018101028502000100010285020001000102870201000102010201010184020002000184 +010200020088000100010001000100890001000100010001000187010001000100010091 +000100010001000100020100010001000100860001000100010088000100010001020100 +850001000100010101820001008100010301810001020189000100010001000100010201 +010204018402010001028502000100020087000102010001000283020100020102810001 +8101028202000202028101020a028100020d028101028202000201028200010282020002 +0302010104020b0192020100020001000200020001000100020102010301820002010501 +010208018100018b01000100010002010001020102018102010b01010201000402810102 +8102018101020202820002011e018100010201 +010182020102020281010203028101020102810002850200020001020102820002018201 +00010401830001000111018a000200020102010200010202028100020202010181000184 +0100010001060183000100010f018e000102010200020002000100010001010185000200 +0200010101850002000200010101850001000100010101850001000100018a0102000200 +0100010201008b0001000102010001000100028102018401000100028102010101840002 +000201020182020001040181000104018100010201810201030181000103018102010301 +810201030181020103018102011b0181000126018100010a010100050181000104018100 +010701810201850102000102018801020102000102010283020100028602010201020001 +020101028200020102018302010001010181020107018102018201020109010102010182 +020102810201040181020102018102010401810201010181000283020102010401810201 +010183020102010401820200018c01020102010002000200020001070187020102010201 +02010101010281010201028401000201028b020102010201020102010002020284000200 +02000100810200010089020102010201020102011e01 +02010902810102030282000102030281000283020001028102010101010002018100010a +018102018501020102010202028800020001000102010203028100028102018201020106 +0183020102018101028102010a0185020100010001040103028301020102880201020102 +010201028102018501020102010283020102018101028602010201020102880201020102 +010201028602010201020102840201020102820201020202830102010202028101028202 +010202028301020102820201028402010201028302010201810102830201020183010201 +020102830102010201028301020102810201830102010281020183010201028102018301 +020102810201050182000102810201020101000301010205018100018201020101018100 +010401830201000103010100040184000201000101018202010081000101018100010101 +810001820100010501810001870100010001000100810001010181000101018102010301 +9a0200010001020100010200020001020100020002000100010200019201020002000102 +010201000200020001020102830200010202020100020283000200028502010002000283 +020100020202820002000100030182000201820102010201820201028202010281020181 +01028202010282020102820201028502000201020103018100028102010501010207018f +00010200020002000201000200010201810102820200018a010002000200020102010201 +02820001020b0287000200010201020119018100010201 +830201020183010201028202010202028101028402010001020102810002020281010205 +028401000100011301810002010285010002000102030281000286020002000100018601 +000100010001880100010001000100010e01010283010201028202010083000100010401 +830001000102018102018201000105018100010501810001050181000106018302010001 +050181020103018100010501810001020181020182010001040183000102010301810201 +040101000401810001060181020103018100010201830201000106018100010c01830001 +0001020181000104018100011a018100010a010100050183000100010201850001000100 +010701850001000100010101010082010001010182000100810001010185000100020001 +890100010001000100010085000100010001010185000100010001860100020001000182 +010201840100010001040181000102018402000102010101840002000100840002010001 +0101850001000100018201000103018100010501810001820102018b0102010200010002 +0002000281020107018102010a0189020102010201020102010701830001020184010002 +00028102008400010001020202220182000100 +0a01020286010002010200020102810002010281010201028100028a0200020002010201 +000201070183020102018401020102018101020102850001000100020602820002010101 +81020106018302010201820102010e018800010200020002010281020103010302850102 +010201020102880102010201020102010201020283010201020202850102010201028602 +010201020102840201020102840201020102820201020102810102050281010202028101 +020202820102018101028202010282020102840201020102030281010203028101028202 +0102820201020b0281010202028201020181010281020184010201020107010202040181 +020181010281020107018102010d01810201030102021201810001840100010001110102 +02830100010281020082000102890200010001020100010283020100019e010200010001 +020100010001020100010002000100010001000100010001009600020001000100020001 +000100020001020002000200010101830201020105018202010282020102810201010101 +028301020102820201028702010201020100010301830201020186010201020102010601 +880201020002000200028402000200020102010101028b01020002000200020100010203 +02810002030281010201028101028402000100011e0101000101 +810201820102010501010084010001000282020002820201020102810102020283000200 +020102820001020302810002830201020101018302010201820102018101020202a30002 +000200010200020002000201000200010002010001000100010002010201000100010801 +810201010184020102000187010201020100020093000100010200020002000200010002 +000200020186010002000100010101850201000102018701020002000200028502010201 +000184010001020001008301020102820200018301020102840200020102840201020102 +820201028302010201020101028101028402010201028202010282020102020282000102 +820201028202010282020102820201028202010282020102820201028202010281020103 +0101028101028302010201080101020101810001810102810201820102011b0182020102 +01028201020182010001040102000d018100011c01810001030183000100010401830001 +00018801020100010001000101018200010081000101018d000100010001020100010001 +000101018900010001000102000102810201010187020001000100020199010001000100 +010001000201020100010001000100010001000103018202000288020100020001000102 +8102010a018402010201028302010201820102018101028102010b010202010187020002 +0002000100010002028201020121010000 +0a0181020102018202010204028101020702880002000201000200020302810102010209 +010202870102010001000102820200020202820002012001810002020283000102010201 +810201820102010901810201050181020104018102010201830201020104018102010201 +020203010102030181020128018102012e01810201080181020108018102013e01810201 +030181020102018102010301810201020181020101018302010201030181020101019400 +010001000100010001000100010001000100010087000100010001000188010200010001 +000201010182000200010084020102000105018102010201010284010201020185010201 +020102820201028202010284020102000102018102018101028202010283020100010701 +880200020001000100019601000100020102010201020102000200020002010201028202 +000282020002030285010201020102010282010201180181000103010100810102 +810201820102010601840001000102820201020202810102040284010200010281020081 +000282020102010283000201028502010201020184010201020181010202028701020002 +000201028402000200020102840100010001880100010001000100018601000100010001 +0801810201880102010201000102010101a8020001000201020002000100010001000100 +010201000200010001000200020001000200020002000203028500020002000204028900 +010201000200020102840200020002890201020100020002010286020002000102010101 +840200020102020201008202010285020102000102820201028202000282020102820201 +008200010283020102008100028202010281020082000201020184000100010285020102 +010001020183000200028102010101010002028101028202000101018c00010001000201 +000100010001870100010001000201810100840001000102010281010083000100010101 +820001000200020183000100018401000100010101830001000102018300020102010281 +010201028401000200020102010001028101028802000200020002000284020002010282 +020102830200010282020102010281010282020102820201020402810102820201028202 +010283020100020202810102020286000100020102018101020202840001020001850100 +010001028402000200018101028402000200028202010282020002830200020102018900 +01020100010001000182010201080186020102010201028402010201020102010101028b +01020102010201020102010282020002020288000200020001000200850001020102011c +0185000100010200 +810201820102010801820201028402000102010201040281010203028101028602000200 +02010201028100028402000100020202040101028a010001000102010002000284020102 +0001200181000201020101850001000100015a0181020109018102010301810201030181 +020152018102014a01810201810102860201020002000282020102850200010001028102 +0181010286020002000102010b0185000200010001830102010204028201020107018302 +0102010c0181000102010102010182020102840201000201060182020001010181000184 +010001000101018102018101028202000184010001000184010001000101018602010200 +020102830201020183010201020102820100011101810001040185000100020102830200 +0200 +0b0186000100020002008300010201010182020102020281010201028201000205028300 +02010201028101020102810102820201028202000201020101830001000202028100028a +020001020100010001000186010001000100018601000200010001020181000106018102 +01070186020100010001008a0001000200010001000102a1020001000100020001000100 +010002000100010001000200020001000200020001008100020102060081020004008102 +000200810200010087010002000200010002008701000100010002008200020001000101 +810200820002008200020003008202010001008101008200010001008502000100010086 +000200010001000200830100010004008101000300830100010001008402010002000100 +010189000100010002010001000100010182000100010083020102000200020184000100 +020103018400010001008500010001000102018300010001010181000104018300020102 +010281010204028101020102830002000202028100020102810102010283000200020102 +810102010281010201028101020102010102020101010283010201028602010201020102 +830201000202028301020102850200010002010201820201028202000281020183010201 +028202010284020102000184010002000287020102010002000285020002010201880100 +020001000201028302010201020181020104018402000201029802010201020002010201 +02010201020102010201020102010205028300020002820201000200850201020102011a +010102820100020102 +840102010201080181000203020601010283010201020102810102010281000201028101 +028202010282020102040283000200020102870100010001000102050283000200010c01 +83020102010d018300010001010187000100010002000101018100010701830201020101 +018102018201020103018302010201890102010201020102010283020102010101810201 +810102010281010283020102018701020102010201028202010284020102010284020102 +010283020102010201010281010284020102010282020102820201028202010203028101 +028202010282020102820201028202010203028101020302810102010283010201020102 +08010102820102010101010281010282020102010208018102010c010102010181020105 +018102011401820002010201810001050101020101030201010202020101020201010202 +010202010101020201010201010202010181000201020301010281000181010287020100 +010201020101010102020183020102018101020102820102018401020100010101810201 +010184000200010286020002010201028102018601020102010201810102830201020104 +018b0201020100010001000200010b010102020181020181010281020183010200018401 +000100018101028402000201020202820001028202010281020183010201020202820002 +01100183000100010201840001000102840201000200 +0b0183000201028302010002810201090101020101010081010201028400010201020302 +81010206028f010002000201000100020102010200018101028102010101830001000188 +01000100010001000184010001000101018100010c018102018201020103018500010001 +000102018500010001000101018500010201000101018500010001000101018500010001 +000101018100018201020101010200820201008200010084000200010001008202010002 +008201000189010001000100010001000200870100010001000100860001000100010082 +0001000d0081010004008501000100010086000100010001008600010001000100820001 +000400810100020085010001000100840001000100860001000100010084000100010086 +000100010001008400010001000200020101008201000186010201000100010101010082 +010001030101008101008200010082000100810001010184000201020101018602010001 +000201840100010002010281010282020002010282010201820100028202010285020102 +010001030181000105018100010501810001010181000187010001000100020189010001 +02010001000102810201010182020002030284010201020104018100018c010201000200 +010001000200018501000100020101010102010182020102820201028102010101810201 +030185000200020001860100020001000281020181010281020186010201020102010501 +83000201028b020002000200010200020002010282010201060183000200018101028102 +01820100010201820001008100010101820001008100020002 +820102010801830002000201028101028102010d01840002000102010281010202028101 +02020281010202028100028a020102000100010002000204028100028102010f01810201 +0c018a02010001020102010001008100010e018102010101830201020104018102010301 +820201028502010201020186010201020102018101020102820102018601020102010201 +830102010281020181010203020101030201010102810102820201020302810102820201 +028202010204028101020b02810102010283010201020602810102010281010283020102 +0102018202010281020106010202010101020801810201180183020102010e0181000101 +010202020181020102018602010201020102820201020102810102010281010204028101 +020102830102010202028101028202010201028101028202010201028101020302810102 +820201020402810102820201028202010282020102820201028102010201040204018102 +010501820001028502000201020183010201028402010201028202010283020102010601 +890001000100010001000107018402010201029202010201020102010201020102000200 +020002830200010282020002020281000201028101028102010101810201810102820200 +0107010102860100020002000102018300010001020183000100018301020100 +820102010a01010283000200028102010d0189000200020002000201020d028301020102 +810201010182020102030281010281020105018700010001000100018601000100010001 +0a0183020102010301850201020100018201000102018100010101850001000100010101 +850001000100010101850001000100010101850001000100010101850001000100018201 +000283020100010101850001000100018601000100010001010182000100810001010185 +000100010001890100010001000100010082000100010081010084000100020005008101 +000300810100040085010001000100860001000100010086000100010001008100018101 +000200020102008201000181010001008201000186010001000100018601000100010001 +810100010082010001810100820001008100011001010007018200020003008101008100 +01010181000106018a0001020100010002000100a0000200010001020100010002000100 +010200020001020102010002000200020002010281000201028100020202820100028602 +000200010002810200870001020102010002010282010201040181000281020106018202 +010281020181010288020001020100010001870102010001000201820100028102018101 +02840201020102850201020102010501830001000188010001000100010001010101020c +018b00010201020002000100020085000102010001820102010301870201020001020002 +8402010201008100010301830001000101018100018101020002 +0b0101000202810102810201100103028601020001020102050281010207028900010001 +0002000201020302840102010201040181020186010201020102010e0181000101018502 +0100020001150181020102018a0201020102010201020102850201020102018601020102 +010201860102010201020186010201020102018301020102810201010101028201020186 +010201020102010301810201830102010281020183010201028102018601020102010201 +810102830201020181010283020102018101020102010182020102810201830102010281 +020181010283020102018201020104010102040181020101018302010201180181020106 +01830201020101018102010e018600020102010201830102010201020a01810201020181 +020103018102010201810201040181020101018102011b01810201020101020301010202 +010102810002010294010001000200020001000200010201020100010001030181020183 +010201028102018401020102010601810002870201000102010001070101020101010285 +010201020102010282010201840100020002890201020001000200010282020002820200 +028202010281020181010282020102010204018500020001000203028201000102018500 +01000100018401000100010301 +82010201080182020102850200010002010e018602010200020102810201040182020102 +030284010201000201020301820201020602010183020102010401830201020186010201 +020100010a0181020107018102010b0183000100010301830001020102018a0200020002 +010201020002860201020102010287020102010201000285020001020102840201020002 +840201020102840201020102840201020002840201020102820200010101010286010201 +000201028502000200010288020102000200020002020281000203020100820200020102 +840002000102030281000201028101028402000200018201020081000282020102830200 +010282020002810200010089020001020002000100028602000100020001810100010082 +010001810100820001008100018201000282020002030201010102850100010002010101 +81000102010502810002830200020108018102000100880102010001000200018e010002 +000100010201000200020001010184020001000101018200010001000201820001000300 +870100010001000100810001810100040081010004008101028102008100010101010282 +010001020181020101010102810102860201020002000282020102840200020002850200 +0200020101018400020102010401830201020107018d0001020102000200020002000201 +810102840201020102830201020104018100020502820100018601020100010002810201 +850102010201020402820001028102018101008100010501810001030182000100 +0901820001000100010283000200010e0181020181010282020102820200010501080289 +000200010002000200028702010201020002010e0183000100010c018100018101028402 +0102010282020001020183000100012c0101023501810201020181020103018102010201 +8102010301810201020181020102018102010301810201070101020c0183020102010101 +010284010201020105018102010e0181020181010201020b010100010281000202020100 +810201040101020101010202018302010201810102810201020101020201830201020182 +010201010181020103018102010c01810201160102028a00020102010201020102010101 +890201000100010001000110018102010201830201000287020102010002000107010102 +090181020181010201028500010001000105018500010200020084000102010281020101 +018102018901020002000201020100850002000201020202810001020185000100010001 +820100010501 +820102010601880002010200020001028102010e01830002010084000201020107010602 +810002010202018402010201028202000202028301000201060183020102018401020102 +010e0183020102018101028102011c018a02010201020102010201028802010201020102 +010284020102010286020102010201028402010201028402010201028402010200028902 +010201020001020102870201000100020102850201000200028502010200010284020102 +010086000100020102008400020001028102008400020001029202000200010002010002 +000200020100020002810201860100010002000184010002010282020100030081020002 +008501000100010086000100010001000200810100030081010004008702000200010002 +0101018a0001000100020100010001020181000201020200810102010206018102018301 +020002830201000201028300010002020283000100028802010201000200020101010102 +860001000100010087000201000100020081000186010001000100010101850001000100 +018401000100018201000103018600010002010201010102020201810201020182020102 +890201020002000200010289020002010002000200018201020102010202840102010201 +820102010601900200010201020002000200020002010201010181020182010201820100 +010301810002050289010002000201000200020202810002880201020102010200020202 +01010100820100010c01 +820102010801810002010281000201021001820201020302010181020103018102018101 +020102830102010283020001000100810102040281010201028201020106018102010201 +850001000100010d01810201040182000100810001820100010101010001018100010101 +850001000100010101850001000100010101850001000100010101860001000100020183 +010001008500020002000184010002000186010001000100018201000186010001000100 +028102010101810001040181000101018100018301020001830102010285020002010201 +830102000102018102018301000201030182000201030181000105018100010401810001 +04018300010201010181000102018102010301810201020101021b018102010101810201 +020181000105010100020281010081000202020501020281010202020101020201010202 +810102020281010202028101020202810102020281010203028101020502850102010201 +020202810102810201810102830201020101010102020182020102010282010201010183 +020100010101860201000200010282020002810201010183020102010101810201040101 +020101810201820102008500010001000184010200020113018102018101028302000201 +0b0185000102000201810102010281010203020100050283000201020202810002810201 +040183000100010801 +090186000100010201020102100184000102010202020901860201020002000283020102 +010201040281010202028201000285020102010201040181020110018300020102810201 +86010200020102010b01810201050181020103018a020102010201020102010287020102 +010201020102018102018101028202010281020105018302010201840102010201020181 +020104010102030182020102810201820102010801820201028102010201010203018102 +018201020181010281020101018202010281020183010201028102018101028302010201 +01010102010181020103010302820102018201020107018102010c010102850102010201 +028102018101028302010201070181020108018902010201020102010201010181020181 +010203028101020502810102040281010201028101020102810002040281010284020102 +010286020002010201028402010201028102018101020102010101028501020102010201 +02810102020283010201028502010002000101018202010281020101018102010a018700 +010201020100028602000200010001820100018201020181010284020102010281020107 +018c02010001000102000200020002830200010281020101018100010801830002000286 +020102000100028102018501000200010201028100020502860100010200020183010001 +008100010c01 +010181020105018702010200020100028102011101040205018302010201810102010283 +010201020102820001008600020100020102020281000201028101020202840102010201 +0101830001020101018100010c0181020182010201810100040001010500810100a60001 +000100010001000100010001000100020001000200020002000100010001000100010002 +000400820201001200850200010001008200010001008702000200010001028102008300 +01000282020100030081010082000100010083010001028102008a000100020001000100 +020088000100020002000100860002000200010002008301000100010083010002000200 +840200020100010082010001010101008201000101018200010081000181010087000200 +010001000288020001000102010201070181000106018400020002018401000200020102 +010181020183010201028102018101020102010101028201020181010201020101010282 +010201020181020183010201028102018101028302010201810102010201018202010281 +020181010283020102018101028302010201810102830201020181010283020102010201 +830201020102018402000200010201860200010002000286020102000201028202010282 +020102840201020102810201820102010101010084020001000184010001020109019102 +010201020102010201020102010201020104018100010301820201020402010187020102 +01020102008100020602010104020101810001020183000100010801 +0901840201000102020211018200010203020d0183000200020102010184020102010207 +0201010202810102010284000201020102018100010901810201830102000202028b0100 +0200020102010201020103018102010101840201020102810201820102010d0182020102 +87020102010201020183010201028202010281020101018102012d0101026a0101020701 +030201000502110181000104018100010401830201020103018100010501810001030183 +000100010301830001000103018300010001080101028101008200020102018102018201 +020182010201810102810201820102018701020102010200010a01810001820100010101 +010282010201010101028201020105018302010201020186000100010001028102018401 +02010201040183020102018c010201020002010201000100028602010200020002010287 +0102010201020102820201020302030183000100010b01 +090181020181010201028100028102010f01820201020102840100010201840102010201 +880102010201000200028402000200028102008100020202810102020281000282020002 +850200020001028702010200010002010a01810201040183020102018a01000200010002 +010001008600010002010001a30100010002000100010001000100010001000100020001 +000100020002000100010002018101008500020002000183010002000400820102000100 +84010002010001008501000200010002008a010001000102010001000284020002000202 +020200820201028202010282020002820201028102008300020002830201000202028300 +020002020288010200010201020100020084020001020086000200010002008600020002 +0002008f0001000100010200010001000100010084000102000282020002010281000201 +028101020102810102810201820102010201830200020105010302810002050202010202 +810102010282010002820201028202010201028101020102810102820201020202010082 +020102820201020102810102850201000201020102810102820201028202010201028101 +020302810102820201028202010282020102010201018302000201020101028501020001 +00028102010101870001000100020001820100018d010200010002010001000200020105 +010100850200010200028102010901870201020102010201030181000184010201000105 +0101028101020402810002020281010283020100028502000200020081000206020b0183 +000100010801 +070185000100020002020281000110018202010203020501810201840102010201830102 +010202028201020102018202010202028101028202010201028200010201028100028102 +0184010201020083000200010b01810001020183020100013a018102010d018102010401 +810201160101023c0181020138018100028202010083000200012a018102018101028302 +010201810102010201018202010281020181010285020102010002830201020183010200 +010501010201018100020102050101028301020001030182020102860201020102010282 +020102820201028402010201028402010200010201810201060183000200011c01020284 +010002000282020002020281000288020100010200020002030281010203020a01830001 +00010b01 +0a01020281000283020102010f01820201020102820100010b0183000200020102850100 +010001020402850102000200018201000202028100028202010285020102000102010284 +010201000109018302010201010185000200010201030181000103018400010002010201 +830001000103018300010001030183000100010301830002000102018300020001030183 +000100010201830001000103018200010081000101018200010081000101018100010101 +850001000100018601020100010001810102820201000100010182000100010002010300 +830102010281020083000201028c02010002000102000100010001820102008400010001 +028102000100820200028e02000100010002010001000100010088000100010001000100 +880001000100010002008b00010002000102010001020101018102010201830201020107 +018300010002010281000104018402010201028102018101020102010182020102810201 +81010201020101820201028302010200820002018c010201020102010200010201028202 +01008100028302000102840200010002860201020100010283020001028402000100028a +020102000200020001020103018302010201010192020102010001000200010200020001 +000100018a01000100010001000102010101820200020102830102000283020102018201 +020104018802010200020002000182010001010101008201000102018300010002860201 +020102000286020001020102018201020184010001000286020102010201028102010e01 +8300010001820100010501 +07018400010201020202820102010e018500020002000201028201020103018302010201 +820102018701000102010201028102018101020202810102020203010202810102820200 +028302010002010282010002830200020106018102018601000102010201820100028102 +0184010201020109010102820102010c0101020401830201020101010102850102010201 +028502010201020181010281020102018302010201020102020301010203018102010301 +830201020101010202020103020101020201018202010281020183010201028302010201 +810102830201020181010201020101830201020103018102010101010202010202020101 +020101010282010201820102010201810201090183020102018101020102010101028601 +020102010201010183020102010e01030206018402010201028102018101020102010182 +020102810201810102010201018202010283020102010101830201020182010201820102 +018201020184010201020182010201820102018201020182010201820102018201020182 +010201820102018201020104010102820001028102018201020181010283020102018201 +020182010201820102010301010281010282020102840201020102810201820100010301 +820200010101860200010002000109018b02010201000100010001020183010201008300 +020102020283000100020802810102010283000200020502840102010201090182000100 +8100010a01 +09018202010286020002010200010e0182020102010283000200010b0183000100020102 +850100010001020702860100010002010281020083000201020202810102020201018302 +0100010f018100018e010001000100010001000100010001010183000100018201000101 +0185000100010001030183000100010301810001060101001a0181020117018100013301 +830002000104018100010401810001040181000104018100010401810001040181000182 +010001010181000102018302010201070182000102840200020001230181020109010100 +810100820001000500970100010001000100010001000100010001000100010001000400 +020281000181010201028100010101020281010289020002000102000200028502010200 +010284020002000283020102010101840200020001820102018301020102830201020104 +018802010200010001000182010201010182020002810201010184020002000282020102 +8202010201028300020002010283010201020502880002000201020102010e0181000182 +0100010501 +0701830201000201028100028102010f0183000200020202810001050181020187010201 +020102000201028501020102010204028100028102010601050201010102810102850200 +02000201020181000103010100810102870201000100020001320183020102010d018102 +010301810201030181020103018102010301810201030181020103018202010281020182 +010201020181020103018102010201810201030181020102018102010201810201030181 +020102018102010201810201820102018201020101018102010201830201020184010201 +020106018102010d0181000181010201020101820002018101028102010a0102020d0101 +028301020102010201010202010102020101020281010202020101020201010202020183 +020102018401020102010101010202010102020183020102010101010202010102010186 +0200020102000182010201030183020100010d018102010801810001820102018101028a +020002000200020001000105018102010601010082010002020285000200020002020281 +0102030281010203029001020100020102010201000201020102010d0182000100810001 +0a01 +070185000200020002010282010201100186000200020002010801840201020102010281 +000201028300020002020281010202020101830001000185010200020002810201020101 +028501020102010283020002010201810201040181020102018500010001000103010100 +050101000501830001000103018300010001030183000100010301830001000184010002 +000182010001020181000107018100010101810001010181000101018100018201000101 +018100010101830001000102018100010201830002010081000103018300010001020183 +000100010301010004018300010001020183000100010201830001000103018300010001 +020183000100010201850001000100018601000100010001860100010001000101010100 +820100010101820001008300020102020203010102080187000100020002000281020109 +010102010103028101020202810102020281010202020101020281010202028101020202 +810002010281000284020002010201028200010282020102830200010201028101020102 +810102010288010002000100010002020285010201020002830200010281020183010201 +028602010200020102820200028702010002000200028302010201020181000281020106 +018102010601810001040181000183010201028102008100020202810102840201020102 +060281000203028201000284020002000201028100028302010201840102010201070181 +00010201810001820100010501 +0801820201020202820002010f0183000201020202820002010a01830001000202020301 +010281010202028401020102010501010282000201010182020102020202018102010101 +8100018201020101018100013b018102016c018102012a01020281010202028100010d01 +810002030223018102011901810201110183020102010101830002010284020102000202 +0201018602000100020002830201020101010102030101020301830201020101018e0201 +020102000200020001000200010501010206010100830102010286020100010002000100 +010202010102810102010281010202020100030283000100020502840102010201090182 +0001008100010801 +0701820001028202000283020102010f0182000102020281000109018102018301020102 +020286010200010001020402820002018401000100018201020001008102010101880201 +02010201020002820201008100010a018102010101850001000100010101a80001000100 +010001000100010001000100010001000100010001000100010001000100010001000100 +900001000100020002000100010001000100810001050184000100010085000100010001 +010182000100810001010185000100010001020183000100010201830002000104018100 +010401810001040181000104018100010401810001040181000107018300020001280103 +02020102020101010208018100018701020002000200010a018102010201010202010102 +020101020201010281010202028101020202810102010281010202028101020202810102 +010281010201028101020102810102010281010201028101020102810102010286010201 +000200010401840200010201810102810201060185020100010002890201000100020002 +000182010001010182000102870201020102010201080182020102810200840002000102 +860201000200010202028101020302810102010283010201020202860102010201020101 +010102010181000102018102010b01830001000103018100010501 +0601810201810102820200028202000110018202010203028100010b0185000102010201 +010181020181010201028601020102010201050186020102010002010301010282000201 +010181020102018102010301810001050181020133018102011801810201040181020103 +018102010301810201030181020101010102040181020102018102010301810201020181 +020103018102010201810201020181020103018102010201810201070181020102018102 +010201810201020181020111018102018201000281020101018102018301020002020206 +018500010001000201028100028102012101010203018102010201810201020181020101 +01010202010102020183020102010101010201010202010101028b010200020102010201 +020001850102000100018201020181010289020002000200010200018101028202010282 +02010284020102010283020102010101820201028c020100010001000100020002010301 +01000102890102010201020001000282020102880200020002000200028a020102010201 +020102010204028400010200020102810102030286010201020102010b01010001018100 +010501 +050183000100020202810102810201100182020102820200028102010901810201830102 +010201028200010285020100020002050206018200010202020701810201840100020001 +0f0181000115018100010501810001050183000100010301010002018700010001000100 +0101018200010081000105018400010001008a0001000100010001000100880001000100 +010001008800010001000100010086000100010001008800010001000100010086000100 +010001008600010001000100860001000100010086000100010001008400010001008600 +020001000100860001000100010084000100010086000100010001008600010001000100 +840001000100860001000100010089000100010001000102010501010281000105018100 +010101810001830102000281020159018300010001050182020001060101029201020102 +010201000100010001000100010001820100010101820002018101028202010282020102 +810201810100830001020101018302000200820001020202860100010002000281020181 +01020202820100010401020281010201028101020102830102010204028101028102010d +018100010b01 +08010202010001021101820201020102820002010c018200010202028201020181010201 +028100020102810102810201880100010001000201028202000108018300010201050182 +020102820200010401010209018102010401810201280181020104018102010301810201 +030101020301830201020101018302010201010183020102010101830201020101010102 +020183020102010101010203010102020101020301010202010102020101020201830201 +020102018102010301810201010181020102018102010201810201020181020111018102 +018101020102020183020102018101020202040182000100810001830100020083000102 +010801810201020181020102018102010101810201020181020102018202010283020102 +010201810201030181020102018102010201810201020181020102018102010301810201 +0b0184020102000101018400010002010201850002000200018501000100020183010201 +0282020102840201020102830201020104018b0201000100010001000102010201820001 +008200010282020102040282000102820201028a02010002000102010201028302010201 +81010203028301020102010285000100020102020202010102820102010b018500010001 +00010501 +0401810001840100020002810201820102010e018500010001000202020a018100010101 +820200028202000183010001020302810102830200020105018302010002810201070181 +020181010281020102018102010101820002010101840001000102940200020002000200 +020002010201020102010201028402000100010101820001008100010201010082010001 +010185000100010001010185000100010001010182000100820001028402000201028202 +010282020102840200020102820201028202000284020002000201028101028202000282 +020102810201870102000201020002830201000101018402000100010201830001000102 +018300010001020183000100010201830001000102018300010001020182000100870001 +000100010001020101000501810001040181000104018100010401810001010184000201 +0001040181000281020105018300010001830100010201028201020122018102010c0181 +000105018100010401810001050183000100010301830001000103018100010501830201 +000103018402010201028302010201010183000200028202010284020002000284020102 +000102010102010182020102820201028302000100890001020102010200010001008101 +028202000103010402840102000201820100010301060283010201020102810102820201 +02020281010201028201020109018100010b01 +060186020102000201020102110182020102010283000102010b01810002010281010201 +020101820201008100020202820102010201840001020102830201000108018400020102 +010701810201020181020101018402010201028102018501020102010281020183010201 +028302010201260181020185010201020102820201028202010284020102010201028301 +020102010286010201020102010201010282010201810102810201020101028201020186 +010201020001028602010201000201830102010284020102010283020102010101810201 +010182000201020182020001020181020102018102010201810201020183020100018201 +020101018100011201820201028302010201010181020102010102030106028301000200 +830001020108018102010201810201020181020101018102010201810201020181020184 +010201020102018102011201810201020181020108018102010801820200018101020102 +810102830201020101018100018601000100020001820102010d01810201880100020001 +000200028702010001020102018701020100020001020602060184020001000282020102 +880201020102010201020102810102020201018102018201020181010202021201850001 +000100010501 +0501820001020202810102820200010e018700020001000102010b018200010283020100 +02860200010200010204028300020001040184000100010201020b018100010701c50002 +010001000100010201000100010201000100010001020100010001000102010001000100 +010001000100010001000100010001000100010001000100010001000100010087000100 +010001000107018902000100010002000100880001020100010001009100010201000200 +0100010002010201020100880001000102010001008d0002000100010200010001000200 +86000100020001008d000102010001000201000100010086000100010001008400020001 +008600010201000100860001000100020086000100010001008400010001008600010001 +000100860001000100010283020100010101820200018101020102010181000181010203 +028101020302820102011f0181000181010281020102019d000100010001000102010001 +000201000100020001000100010001000100810001010183020100010301830001020101 +018200020109018402010201028202010281020103018300020002820201028402000200 +028402000200010301830201020104010102810100820002018101028202010287020002 +000200020107010202020082020102850201020102018101020202010182020102010281 +010282020102020283010201028102010c018100010901 +070101020100020211018202010202028100010c01820200020202820102010101010285 +000201020102810201050104028300010201820102010301010208018102010601020202 +018102018201020105018102011401810001180181020102018302010201030181020102 +010102040187020100010201020103018102010301870201020102010201020184020001 +000187010201000100020103018102010201810201840100010201850100010002018501 +020002000181010281020101010102020183000200010101840200010001020183000100 +010b01810001020186020100020102010501830200020181010201020201840001020102 +050208018102010201810201020181020101018102010201810201020182020102830201 +020182010201840102010201840102010201840102010201840102010201820102018401 +020102018201020185010201020102810201810102010202010202810002820201020102 +820102018101008100018601000100020002810201810102820201028102010501810201 +010181020101018b02000100020002000100020181010286020102010201028402000201 +028202000281020106018300020002830201020106010102810102010283010201028202 +0102010283010201020302820102010e018100010701 +05018200010205028100010e018500020002000201020701810201010185000201000200 +870002000100020102820201020102830001020104018500020002000281020186010201 +02010201030181020106018a000100010201000100010282020002930201020102010201 +000102010201020100010001010185000100010001010185000100010001010185000100 +010001010188000100010002000200870001000100010002840201020102820201028202 +010284020102000283020002008100028202010282020002820200028502010002000201 +028301000102820200028302000102010284010002000201028101028102008600020001 +0002008a0002000200020002010002830201000282020002010281000201028101028102 +008400020001008200010202020100020281000287020001000100010084000100010086 +000100010001008400020001020202810102030281000204028201000281020101010100 +010185020100020002810201050182020102020281010202028101020302810102020281 +010202020201010281010201028100020202810102840200020002010281010201028101 +020202810002010281000283020001028302000102860200010002000285020100010201 +010181000112018100010301010284010201020183010200010301820201028202010285 +020102010002830201020104018702000200010001028102010601030285010201020102 +840201020102020286010201020102010101010281010201021f01 +040184000201000203021201820201028402000200010c01810201810102810201010101 +020101030281010201020801810201820102010601850001000100010701810201810102 +01028101020502940102010201020102010201020102010201020100010c018300010001 +010181000101018100010401020206010102810102840201020102840201020102820201 +020302810102820201028202000282020102820201028202000282020102810201810102 +030281010201028100028202010205028100028202010201028101020902810102010281 +010201028100020202030101020101820001020102810002020281010202028801020100 +010001000102018400010001008200010282020002840200020002030281010207020701 +030281010281020105018202010202028101020202010102020101030281010202028101 +020202820102010201010202010102020101020701810201030181020181010282020102 +83020102010b018202010281020186010200020100018601000100020002810201810102 +8a0200020001000200020002850200020102010101840201020001040182020102010205 +010302840002000201080101008102018601020102010201830102010204028301020102 +86020102000200020502010183020102011501 +050181020181010203021101830001000202020501810201820102010101810002820200 +0201028601020100020102010281010202028200020103018a0002000200020102010201 +820102018201020102018102010401020081020001000702810001050183000100010301 +830001000103018300010001030185000100010201010184000200020102018500010002 +00028302000200010001018302000201060182000102010282000200820002018d010001 +000200020100010001000101010100830100010202020100020185000100010001860100 +010001000194010001000100010200020001000102000100010001860100010001000185 +010001000100840002000200810001010182000100810001010182000100810001010182 +000100810001010182000100810001010101008201000101018102010901010281010201 +020301010001018100020102010181020107010102070181020101018102010201810201 +02018202010284020102010201028f010200010001020100020002000100020102810102 +0102820100020102890001000200020002000282020002010281000201028c0002000200 +01000100020102010401820201028202010281020183010002010c018102010101810201 +810102820200028302000200810001820102010401840201000102040207010102010084 +010201000182010201010102028101020102830102010201028301020102040286010201 +020102011501 +050184000200010203021001810201810102020282000201020181020182010201850102 +010201028402010201028102018101028202000202028101028102010501850201020102 +010701820001008300010201020181020101010102020105028101028302010201030181 +000291020100010001020102010001000100010001050192000100010001000100010001 +000100010001020702820102018101028202010204028100020102810002050284010201 +000285020102010002830200020181010284020102010203028101028502010200010284 +020102010285020002010002840201020102850201020001020102010101028300020002 +840200020002810201010183020102018201000201020100020282000102010289000100 +010001000100010201840001000100850002000200028402000201028202010202028101 +020502080101028200020107018202010202028101020202810102020281010209028101 +02050281010202028101020102810102020281010201028100020e028101028202010201 +028101020102810102040201018402010201028102010101870001000100010001020189 +000200010002000200028402000200010201820001028102010601010282010201040186 +020102000100010901810002010285010201020102830201020181010202020101040284 +01000200020202820102011b01 +0601010281000201028100011001830001000201020d0184000100010201028401020100 +020402850002000200010401850002000200018401020102018201020182010201070182 +000100030083010200020402820102011e01810001810102860201020102010204028501 +020102010201020101820001028202010283020102018601020102000102070281010202 +02820102010e010202030181000111010102820002011401010082020001140181000103 +018100010401810002810201020181020101010502810102040203010100010181000202 +020a01020204018102010201810201020184020102010206028101028102010301860001 +000200020183010001008100010101860002000200010286020001000100010101850001 +000100018b01000100010001020100020001008201000105018202010282020102810201 +810102820201028202010284020102010285020102010201030184020002000288020002 +000200010001040101028100020502070181000201028101000100050101028301020102 +010281010201028101020602810102010201018102011501 +050184000200010202020101810201840102010201090103028400020102010201810201 +820102018501020102010202028601000201020002820201020302090102028401020102 +018601020100020100810001820102010301820201020102810102820201028102018101 +028102010801a40001000100010001000100010001000100010001000100010002000200 +020002000100010284020001000201028400010001020102810102860201020102010285 +020102010002040286010201020001028502000200010085000100010001820100010301 +8102018401020100010b0181020184010001020101018302010201010181000104018100 +0104018100010301810201820102010301810001040181000104018100010b0185000102 +010201810102810201820100020302810002010283010002010801840002000201090181 +020103010102020101020201010202010302810102020281010201028101020302810102 +840201020102840201020102030281010201020101030283010201028102018101020102 +010101028101020102810102840200010201010182000201010182020102820200028102 +018a01000100010001000100018601000100010001020183000100028402010201028502 +010201020107018800010002000201020106018100020102850102010201028302010201 +010184020102010205028a00020102010201020102018401020102011501 +070105028100010e0186000102000201028102010b018300020002010281000184010201 +0002040281010282020001040186000200020102010d0181020101018500010001020087 +0001000201020102810201060183000100012b0186020102010200010c01810002030285 +0102010201028102010f0187020001000100020101018300010201010182000200810001 +05018100010201830001000104018100010c018400020100012101840200010201860100 +0201000102010282010002020281010281020104010100830100010201022b0181020182 +01020110010102020181020103018102010b018402010200020202810002850201020102 +010901840201020102820201028402010201028502010201020182010201810102810200 +810001850100010001028202000104010202820002010b01010285010200020002860201 +020102010201028101020402820102018201020181010202028401020102011801 +840102010002840200020002020281000184010201020182010201050185000102010200 +830002000182010201820102018401020102018701020102010201028402010001020102 +810102820200020102070182020102010201018302010201880102010002000100010701 +030282010201040181020106018100010401810001030181000101018100010101880001 +000100010001029b02000200020002000200010201000100020002000200010201020102 +840201020102840201020102040201008b02000102010002000200010085000100010001 +130181000129018102011f01870002000100020102840200010002830201020086000200 +020100010601810001820100020202320181020105018100018201020119018102018101 +020202810102810201060182020102820201028102018401000200028202010284020102 +010285020002000201030186000102010201028302010201070182020102840200020002 +010205018802010001000201020107010102010101028101020302830002010203028301 +02010201021701 +860100010002010081000202028700020001020102018201020108018100020302010181 +0201820102018a0102010201020100020002040281010282020102030287010002010001 +000181010002000102010185020102010201010181020105018b02010001000100010001 +00018101008b000100010001000100010001010181000182010001010183000100010101 +810001010181000107018100018201020101018102018401020102010201810201040181 +020104018102010401810002040204018102010d01850201000201028302000102830200 +020081000286020102010201028902010002000200010002010284010002000283020001 +028202000186010001000100018201000181010084000100020105018100010401810001 +0401810001040181000103018202010201028d0102000200010200010201020102820201 +0283020100010201810001830100010201020f0181000104018100010c018100010e0181 +0001030101000401830001000105018100010f0102028700020001020002010101890001 +0001000100010201100182020001010101028a0100010001000102010001080101028201 +020109010202830002000288020102010201020102840201020102820201028102018301 +020102820201028302010201820102011701 +050182020102010283000200010d018400010201020102820102010f0101028400020100 +010101010281000202020801820201028302010201060185000100010001060103020201 +810201290183020102018201020101018102010201830201020186010201020102018601 +020102010201830102010281020181010203028200010283020102018401020102010901 +820201028202010282020102010281010282020102820201020102810102820201028202 +01020102810102010281010282020102010281010201021f018100010401810001040181 +000102018202000201028201000183010201028402000200028202000283020001008100 +010701010203018102012801810001020182020001280184000200010201028201020103 +018202010282020102810201840100020002840201020002820201028502000200020103 +01010201018102018301020102010206018b020102000200020002010201050181000201 +028401020102010301820201028202010202028101020202810102050284010201020182 +0102011501 +85000201000200810002050201018102010c018202010202028100010301810201840102 +0102018501020002000283020102010101010281010204028b0002010001000100010002 +008100028502010201020181010202020801850001000200029702010002000100010001 +0001000100010001000100010001a2010001000100010001000100010001000100010001 +000102010201000200020002000286020102010201028602000200020102820201028102 +018101028202010282020002050283000200028202010283020001008700010001000100 +010101840001000100880001000100010001008800010001000100010088000100010001 +000100860001000100010088000100010001000100860001000100010088000100010001 +000100830001000102018300010001040181000104018100010401820001020802030081 +01020302840002000201820100010101010002018200020103018102010a018100010401 +8200020114018102012c0181020181010281020081000183010002010101820201028202 +00028302010201820102010d0181020101018b0001020102010002000200010901820201 +020302080101008202000201028101028102010301840201020102020284010002000282 +0200020202830102010283020102011501 +030182020102010285000200020001030181020107018502010001000202020e01820201 +028202000182010002820201028102008300020102010207010102060181020101018600 +01000100020105018202010281020133018102011d010402820002011301820201028202 +010282020102820201020102810102820201020102810102820201020102810102820201 +0282020102010281010201028101020102820102012c0181000183010200020802010001 +028300020001810102810200810001010181000181010082000102810201820102010201 +810001030181000103018100010201820200012001810201220184020102010283020102 +010c018100018101028402000200028a0201000200020002010201010101028201020104 +018402010002010501820200028502010001020106018b00020102010201020002010282 +02010201028101020602820102010201850201020102010d018102010a01 +8900020100020001020102030201018102010a0181020181010201028201020107018902 +010200010200020002820201028102018301020102820201028202000281020183010001 +000200840200020002850201020102010201810201820102010501030283000100018201 +020181010081000190010001000100010001000100010001000196010001000100010001 +000100010001000100010001000290020100010001000200020001000102010283020001 +020102820102018101028202010281020181010081000205028300020002820201028302 +000100870001000100010001010182020100890001000100010002000289020001020100 +020001008800010001000200010086000100010001008500020001000289020102000100 +010001008800010001000100010086000100010001008600010001000100860001000100 +010086000100010001008100010101830002010202020100020283000200020202020002 +028501000100010081000102010102810002810201050182020001870102000201020102 +870200020002000102840201020102840201000102840201020102820201008e00020002 +000100010002000100020083000100028302010002950201000100020002000200020001 +000200010001000102010102820001028602000102000201010182020102890200020001 +020102010284020102010282020102850201020102010301860001000102010282020002 +810201820102010501810002850201020002018201020102018102018801020002000200 +020106010102810102820201020b02840102010201820102011501 +820102018101028202010202020101810201020181020108018300020002010281000281 +020106018102018401020102018101020402810002820201028202000201028101028102 +010501010287010201020102010281020182010201850100010002010301850001000200 +02850201000200012e018102018201020103018102018101028102010f01050285000201 +020102820201028102010301810201080181020183010201028102010301810201820102 +018501020102010281020101018202010282020102010286010201020102013001810001 +020101028201020181010202028100020102810002050281000105010100020184020100 +010001008101008200010082000100820001008200010084000100010083000100011a01 +83020102012101830200010201020301810201010182020102820201028402010200018c +010001000100010001000100018501000102000101018202010281020189010201020001 +020100010501890001000200010201000105018202000201028301020002830201020181 +010282020102820201028202010201028101020602830102010201028201020106018102 +010a01 +0201840001020102850201020102010f0182020102020286010001000102010501810001 +870102010002010201040102028300020002830201000181010002008402000200010801 +810201030181020102010102830102000105010100820100019201000100010001000100 +010001000100010001860100010001000101018f00010001000100010001000200010001 +010101028600010002000102820200018101028302010201020187020102010201000204 +028901000100010001000100890001000100010002000184010002010282020102820201 +028202010201028101028202010282020102820201020102810102010281010282020102 +010281010201028101028202010282020001060187000100010001000102018200010086 +000100010001008600010001000100860001000200010081000101018200010085000200 +010002100284000100010081000101018200010082000201060185020002010200810002 +820201028602000200020002820201020302810102020281010201028400020002008b00 +020002000100020001000201020100840200010002950201000200010002000100020001 +000200010002000103018402000200028402000200010201850001000100018201000183 +010201028402010201028202010285020102010201040182020001020181020183010001 +028102010401010083010201020202050181020101018800020002000201020182010201 +810102090281010087000200020102000103018102010d018100010601 +820102018101028202010286020002010200010d01830002000202020101810201820102 +010201830201020181010204028700020002010201020202810102810201050181020181 +010201028601020102010201880102010201000100010401850002000200028502010002 +00011e018100010901810201030184020001020103010102030183020102010201810201 +02010102810102030285000201020102820201028102010b018202010089000100010001 +000100018901000100010001000100860001000100010088000100010001000100810001 +030183000100018501000100010081000106018300010001130181020107010202810002 +110281000103018200010282020001840100020002830200010001008102008200020082 +000200820001008400020001008400020001020202810102020281010202028101020202 +810102020281010201020101020281010201028101020102810102010281010201028101 +020102810102010281010283020102010301820201020302820102010301010281010283 +020102010101010202010102820102018701020102010200018201020187010200010002 +000289020100010001000100018b01020002000200020002000101018100018201000202 +028301000200820002010201850001000201028502010200010202020101060282010201 +820100018201000104018100010701810001 +860102010201000282020102010213010202850102000200010701810001830102010201 +020301020286010201000201028102010201010086020002000200010601830001020103 +018102010301010281000201020401010084010001000192010001000100010001000100 +0100010001000184010001000101018f0001000100010001000100010001000181010288 +020100010201000102850200020102010201810201050182020002040289010001000100 +010001008900010001000100010001820100018101028202010282020102820201028202 +010201028101028202010201028101028202010282020102010281010201028101028202 +010201028101028102010701810001010183000100011901810001840100010001020101 +028101020a02810002030201018200010081000206028100020102820100020c02010081 +010082000100810001110181000105018500010002000102018100010301810001050183 +000100010501810001030101008402000102018301000201010185000100020002910200 +010002010001000100010001000200018401000102010201010081020104018a00010002 +000100010001000100880100020001000100018701000100010002000100940200020002 +000102000200010001020002000200028302000200900002000200020002010001000100 +01000184010001000184010001000182010001840100010001 +810001860100020002000283020102010f01830002000202020101810201810102810201 +010183020102018101020102810102880200010001020001020502060182020102010201 +0183020102018701020102010201008100018201020102018b0002000200010001000200 +011e01810001080181020103018202000201028201020102010202810102860201020102 +010281020102018202000204028200010282020102820201028102010901870201020102 +000102850200020001028202010285020002000200880002000200020002008500020002 +000201028100028202000201028100020102850100010001008100010101810001020186 +000100010001008600010001000100860001000100010085000100020001820100010301 +010281000211020200850100010201020c02010004028100020b02810102020281010202 +028101020202860002000200010201028400010002018301020102820200020102850100 +020001020102850100020001020102860100020001000281020102018102010201030282 +010201090184020102010201020101010281010286020102010201028102018c01020102 +010001000102000200830001020104018b02000200020002010201020105010302810002 +810201870102010201020102020281010203020101840201020102010282010201820102 +011601 +8201020183010201020202820002010e0181020181010201028500020001020182010201 +890102010201020001000203020101810201830102010201028101028302000201010182 +000100030084020001020102018502010001000109010202810102810201040185000100 +01000196010001000100010001000100010001000100010001000104018b000100010002 +0001000100018101028a0201000200010001000201820100010c01080281010282020002 +8f020102000200010001000100010002011a018102011c01810001010183000100011601 +810201030181000101010e02810002830200020084000102000184010001000282020002 +050281010215020100030281010202028101020202810102020281010201028101020202 +820100028202010202028101020102810102010281010201028101020102810102010281 +010283020102010101020284010002000285020002010201020182020102850200020001 +028202010282020002830201020186010201020102010201820001028402010201028b02 +010002010001000100010001008a01000100020002000200018501000100020005008902 +0001020001000100028702000200020002008c0002000100020100020002000286020001 +0001000184010001000182010001860100010001000182010001 +8100018a01000200020001020102010e01830200010289020102010201020102010b0188 +020001000100010200810002020281010281020105018402010201028102010201810201 +0101830201020107018302000200810001850100020001008100011d0183000100010b01 +820001020102010181020102010202810102840201020102830201020103018100020402 +81000111018402010001028c020001000200020001020001028902000200010200020002 +830201000286020002000200020102810002860200020002000287020001000100010081 +000101018100010201860001000100010086000100010001008600010001000100860001 +0001000100810001010182000100820001020c0281000201028100028302000100010081 +010283020100021e020d018400010001008a000100010001000100010287020001000100 +010097000100010001000100010001000100010001000100010001820102010501820200 +0182010201030182020102820201028102010b0181020106018202010282020001830100 +010081000204028101020202810102020281010205028101020302810002030281010203 +028101020702810102060281010282020102810201840102010201050181020105018102 +010101 +01018102018101020302810001100182020102850201020102010101010201018a020102 +010200010002000201028201020183010201028202010202028100010501900201020002 +0001020102010201000201008100010701820201020102820102010c0181000102018100 +0109018100010a0181020182010201030181020181010288020102000100020102820201 +0286020102010201028102010201070282000102820200028a0200020001000100010001 +010181000101018202010282020102820201028202010282020102010281010282020102 +820201020102810102820201020102810102820201020102810102010281010281020107 +018100012201810001010102028101020902810002830200020082000100810001020182 +000200810002030281000211028100020902810102020281010202028101020202810102 +010281010201020101840001020102020281010201028101020102810102010281010201 +0281010201028101028302010201030183000200020202020181020102018b0001000100 +010002010201028202000284020102010286020102010200010101810001850102010201 +02820201028902010002000200020002010289000200020002000201028c020002000100 +020002000200028f02000200010201000201000200020002020283000200028702000200 +020100020202010101028c000201020102010200020001028302010002 +8500010200010204020e0183000102018101020102010181020109018202010205028400 +020001028502000200010201020401820001000100020201018102010601820002010501 +880200010002000200020102810100850001000100018101008100010201810001010189 +000100010001000100010101810001920100010001000100010001000100010001000201 +02830001000102010102820100010c01070201018100010c0181000101018d0200010001 +000100010001000100880001000100010001008800010001000100010088000100010001 +000100860001000100010088000100010001000100810001010184000100010086000100 +010001008600010001000100860001000100010086000102010001008100010101860001 +0200020002050201000c0281000181010207028101021d02810102020281010202028300 +020002860201020002000201028200010201028301020102820200020102820100028202 +010201028101028a02000100010201000200010301820201028902010200020002010201 +010182020102820201028102011001810201030102028600010002000100890002000200 +0200010002010281000201028100028c0201020001000200020002000201028201000285 +0201020100028e0201020002000200020100020001028502010002000282020002010292 +0002010001000201000200020100020002010282020001 +0101010281010203028100010f0183020100020102830002000101010102820102018201 +020184010002000202020201820201020702810001030181020181010286020002000102 +0101018702010002000200010701830201020183010201028102012b0181020105010202 +010181020101010202810102890201020102010201020103018100020402810102820201 +02850201020102010b010102810102010281010282020102820201028202010201028101 +028202010282020102010281010201028101028202010201028101028202010201022d01 +810001030183000100028102018101028102018301020002010281000203028500020100 +01020702810102820200028302010001010184020100020181010281020081000206021b +018200020116018102010201810201030181020102018102010301820200010701850002 +010201028202000284020002000283020102018201000102018102010101810201020104 +028101020302810102010281000202028101028202010282020102820200020102810002 +8402010201020b0281000283020001028202010202028101020202940102010201020102 +010201020102010201020102010001 +830001000181010282020102820200010d01830001000281020181010201020601810201 +850102010201020202810002850200010001020102840100020102810201010186000100 +020001028402010201028102018201020101018102010901910201000200020001020100 +010001000100018501000100010081000190010001000100010001000100010001000183 +010001008100018c01000100020002000100020002820201028b02000100010002000102 +010287020102010201020103010902830002000295020002000200010001000100010001 +020001000200028202010286020002000201028602000200020002850200020001020102 +840002000102010282010002820200020102810002870200010001000100880001000100 +010001008600010001000100860001000100010086000100010001008200010283020001 +008100010101820001008200020001008102000100810200810002820200020702810100 +850002000200028202000282020002030281010082000100820002008400020001008100 +028402000200028202010202028101020202810102020281010287020002000200020081 +00028d020100010201020100010001000283020001020102810102830200010283020001 +028302000102010204018202000284020102000281020182010201010182020002820201 +028102010101820201028402010201028202010285020102010201850102010001028402 +00020002820201008a000200020002000200010283020002000100020281000201028401 +000200020102830002000288020002000100020002860200020002000284020002000201 +028401000200028602000200020002930200010002010002000201000102010200020002 + +02018202000203020f018100010101840001020102810201020181020106018300010002 +010203018102018101020402830002000106010102850102000100010101890201000100 +010001020103010102810102830201020182010201300181020181010281020103018202 +010201020a01810201020106027401810001010101028700010002000201020f02810100 +820001020b02840001020102820200020102810102070282000102020281010202028101 +020202810102020281010202028101020102020101028101020102810102010281010202 +028101020102810102010281010282020102010284010201000183010201028202010201 +0282010201820100018301020102820201028702010201000100018a0100010001000100 +010001820100010201010207018202000204028101020202810002050281010201028101 +028202000201028100020202810102080285010201020102860201020102010284020102 +010202028701020102010201028102018201020184010201020101010002 +830201000282020102020211018100010101820201028102010201810201820102018501 +020102010284020102010284020001000282020102820201020202020182000100870002 +0100020102018201020181010282020102010208018202000201028d0001020102010001 +00010001000183010001008700010001000100018c010001000100010001000100018301 +0001008b0001000100010200020100018901000200020002010001830100010201028101 +0289020102010201020102010101820200020502810102820200028e0200020002000100 +010001000100018601020100020002010282000200840002000102850200020002008800 +0200020001000200860002000100020081000201028100028b0201020002000100010001 +008800010001000100010086000100010001008600010001000100860001000100010086 +000100010001008100010101820001008400010001020102010081020081000208028300 +02010083000201020c020100840100010200830002000181010083000200020102820100 +01820102010a018a00010001000100010001008300010001900102000100010001000100 +0100010001008f0001000100010001000100010001000182010201010183000100018401 +000100018201020102018b00010001000100020102010284020102010282020102850201 +020102018a01020100020001000200028c02010200020002000100020002010281000202 +020100020282010002850201020100020102810002860200020002000201028601000200 +020002030281010282020102030281000201029500010200010001020102000102000200 +020100010001 +8800010002000102010281020104018302010201050186000100010002008100010b0181 +0201830102010203020101060281000282020001050102028500010201020104018a0002 +000100010002010001020188020102000200010201300182020102810201040183020102 +010f01070215018202010282020102820201028202010201028101028202010282020102 +010281010282020102820201020102810102010281010282020102010281010201022d01 +8100010101010281010214028400010200020f0285000201000200810002020201000402 +810102840201020102020281010202028101020202810102020207018202010201028101 +020102810102010281010202028101020102810102820201020102880102010200010201 +028202010201028501020102000183010201028202010281020101018100028202010282 +020102890200020002000102000103018202010285020102010200810002020282010002 +020281010201028100020202840100020102830201000201028300020102880200020002 +000200028302000102820200028402000200020102810102860200020102010201020101 +84020102010284020100020104018100010101 +010182020102010283000200011b01830201020182010201850102010201020302810001 +820100020102810002020282010201820100018101008100020102010184020001020101 +018502010201020101018102010301020281000285020102010001010101000101830001 +000181010089000100010001000100018a01000100010001000100018101008d00010001 +000100010201020100028302000102010283010001008200010202028101028402010201 +02810201860102010201000204020100810102820201028e020002000200010001000100 +0100018b0100010001000100010001008800010001000100010088000100010001000100 +880001000100010001008800010001000100010088000100010001000100880001000100 +010001008600010001000100860001000100010086000100010001008600010001000100 +81000101018500010002010204028100020c028500020001000203028100028202000211 +028400020002008200020081000201028101020202810102020281010202028100020102 +820001008300010001850100020100028202010284020001000282020102010281000201 +02810002010281000201028200020102018a020100020002000200020103018202000282 +020102840201000201100181020181010081000106010102830002000285020100020002 +010283000200020102810102840200010002820201028202010210028101020a02810102 +030201018600020102010201020183000100010201810001 +840001020102820200020102020181020182010201070184000100010081000101018102 +018201020184010201020182010201830102010201028101028102018301020102010281 +000284020002000106010102830001020101018102010201870002000100010001030101 +028101020302840102010001270188020102010201020102810201810102820201028602 +010201020102860201020102010284020102010284020100010203028301020102820201 +0283020102010b0182020102820201028202010282020102820201020102810102820201 +02010281010282020102010281010282020102010281010282020102010281010201022d +018100010101010281010214028100020602830002000212028101020202850102010001 +028402010201028402010201028102010101010286010201020102010801810201810102 +810201010181020111018102010701810201020182020001090185020100020102820201 +028902010201020100010001050185000100010001840100020002010285000200020002 +010281000281020081000282020002010287000200020002000201028101008100028202 +0002850200020001020302860001020102000282020102010281000201028b0002010002 +0002010001000184010001000182010001810100 +010102028400020002012601810201810102810201820100018401000100020502020186 +000100010002008100028102010501030206018102010101890001000200020001000184 +01000100018201000103018b000100010001000100010001880100010001000100010101 +8d000100010001000100010001000103018b0001000100010001000100010d0182000102 +040201009201000100010001000100010001000100010001820102010201810201040101 +028201020101018200010201020301020281010282020102810200850001000100028302 +010002850200010001008a00010001000100010001008600010001000100860001000100 +010086000100010001008600010001000100810001010182000100840001020102010281 +00020a0281000202028600010200020002030281000203028100020d0281000286020001 +020102010201810201020181020101018c00020001000100010001000100810001810100 +92000200010001000100010001000100020001008e000200020002000200020002010001 +830102010289020002000200020102010101850200020001028302010001020189000100 +01000100010001070181000107010102810102820201020a028101020202810102010283 +01020102070283010201020b028101028202010201028301020102820201028102018201 +02010f01 +01010102850001020102010e018100010301810001070183020102018201020102018302 +010201810102850201000100020102840002000201040182020102020282000201010183 +020102018801000100010001000103010302880102010001020100010501830001000114 +018100010601860201020102010288020002000201020102840201020102860201020102 +010284020102010284020102010207028101028202010283020102010d01010284000100 +010293020002010001000200020100010001000200010085000100010001010182020102 +8702010201000102011d018102010e018100010101820201021402840100010002070281 +010284020102010281020181010203028101020902830002000282020102020281010202 +028101020102810102020282010201060103028101020102810102010281010201028101 +020102810102010281010201028401020102010601010282010201820100011a01810001 +030185000100010001830100010203028801000200020002000281020081000201028100 +020102810102820200028202000282020102850200020001020202810102820200028202 +000201028100020102810102020282010002830201000184010001000184010001000184 +010001000182010001810100 +820201020302820002012501830001000182010001820100018101020202820100018201 +020187010001000100010081000284020001020105018302010201050182020001820100 +0203020601830001000106018b0001000100010001000100019601000100010001000100 +010001000200020002000200028802010201020102010286020002000200028402010201 +028602010201020102830201000206028100029102010002000200010001000100010001 +000183010201028202010282020102820201028202010201028101028202010282020102 +010281010282020102010281010282020102020281010282020102010208018600010001 +00010086000100010001008d000100010001020002000100010086000100010001008100 +010101820001008700020001000200020102010081020083000100020102010001020100 +01028100028202000202028100010701820001028402000100020c028101020202810102 +020286010200020001028b0200020002000100010001009a000200020001000100010001 +00010001000100010001000100010083000100018201020102018a000100010200010001 +0201020183000100018401000100018a0100010001000100010001840100010001040181 +000107010502830102010209028101020202810102060282010201810102820201028202 +010201028101020602880100020002010201028402000102011301 +820201020302820102011701810001070181000107018a00010002000100010002000200 +820200010301840201020102820200010201830201020183010201008300010001010181 +020183010200018201000184010001000182010001040185000100010001410105021801 +86000100010001008a000100010001000100010088000100010001000100880001000100 +0100010088000100010001000100860001000100010083000100012b0103028101020202 +810102030282010201040104020100040209018102018201020182010001010181000282 +020002040221018302010201010101028101020102810102010281010201028101020102 +82010201080101028401020102010a018100011501010001018500010001000201028500 +020002000202028100020202810002830200010201028101028202000202028100020102 +810002820201028202010201028101020402810102030285000201000201820100018401 +0001000184010001000184010001000182010001810100 +8102018101028402000100011a0181000111018500020002000202028100020102030189 +00010200020001000201020184020102010201020901830002000202022b018802010201 +020102010288020102010201020102840201020102860201020102010284020102010287 +0201020100020002070281010283020102010a0101028101028202010282020102820201 +028202010201028101028202010282020102010281010201028101028202010282020102 +010281010201028101020102080186000100010001008600010001000100860001000100 +010086000200010001008600010001000100860001000100010083000200020402010004 +028200010285020001000100810002010281000203028201000108018100028402000100 +020c028101020202810102020286010200020001029a0200020002000100010001000102 +0002000200020002000200010283020001028e0200010002000100020002000102010201 +840001000102830201020182010001010181000184010001000102018900010001000100 +01000186010001000100010c018202000284020002000289020100020001000200029002 +000200020002000100020002000102008100028202000282020002020283010001020202 +820102018d01000100010200010001000100018401000100018401000100018401000100 +0182010001810100 +010186000201020100012201810001830100010001008201000187010002000102010202 +028100028202000186010001000200020202080185020102010001040181000183010201 +028302010201050183000100019601000100010001000100010001000100010001000100 +01a201000100010001000100010001000100010001000100010001000100010001000100 +010d01810002060292000100010001000100010001000100010200018101028202010282 +020002880201020001000200020102820002008800020001000200010083000100028202 +01028202000284020001000282020102010284000100010083000100010b018102010501 +830201020110018202010201028101020402810102030281010281020182010001020101 +020200820200018201020109010202830102000282020100810002060281010202028101 +02020281010202028101020202820102010701010281010201028101020102820102010b +018102011c0181000114018b000100010001000100010002020281010201028101020702 +810102820201020702010101028101028202010284020102010202028101020702810102 +010201018102010f01810001010101000001 +86010001000100011801810001010181000104018100010a018600020001020102020283 +01020001020181000183010001008300020001040185000100010001080183020102012e +018802010201020102010286020102010201028602010201020102860201020102010284 +020102010287020102010002000202028301020102820201028302010201450181000101 +0183000100011c0183000100010401010201010102040181020107018100020102810002 +010281000182010001040181000101018402000100010101820001008100020202820102 +011101830001000105018100010e01020281010201028101028202010281020103018100 +010601010003018100010201810001820100010201010086010001000100018601000100 +010001820100010c01850200020001028a02000200020002000200028202000202028401 +000200020102810002820200020302830102010297020002000102000200020001020002 +0001020001000201000300820100018101008600010001000100820001000200 +040101001901810001040183000100010101010081010001008201000187010002000102 +010203028100010201850001000200028302000201070185020102010001040182000102 +82020002830201020107018100018501000100010081000184010001000101018b000100 +0100010001000100018c0100010001000200020002000288020102010201020102860200 +020002000286020102010201028402010201028202010282020002040286000200020001 +028902000200010001000100840001000201890102010002000200010088000100020002 +0002008a0002000200010002000100830001000282020102820200028402000100028202 +0002860201000100010083000100010101810001020186000100010002008d0001000100 +010200020001000100860001000100010081000103018402000200028202010201028300 +020002850200020001028102018201000181010208028201020105018200010081000201 +028101020802810102020281010202028101020202810102810200820001020102860100 +0200010001040101028d010200020002000200020002000201028b000200020002000100 +010001040185000100010001820100010a01010015018b00010001000100010001000282 +02010202028101020a028101028202010201028101020202020101020601010281010201 +02810102820201020102830102010201028401020102000900020102008101000200 +840100010001260183000100018e01000100010001000102000102000201020100820200 +010201840001020102010207018500010201020109018102018401020102015101810002 +040216018202010282020102820201028202010282020102010281010282020102820201 +020102810102820201020102810102820201020102810102010281010201020801810001 +010181000105018102010501830201020105018102010401810001010182020102020281 +010203028101020202810102010204018202000203028201000182010001040184000100 +010081000282020002030281000201020101020281010203028101020202810102010281 +010202028101020102070103028301020102010281010201028101020102840102010201 +060181000106018100010301810001020181000105010100840100010001880100010001 +00010001820100010c018200020087000200020002000204020200860200010002000201 +028100029102000200020002000200020100010001000286020002000200018801000100 +0102000200820002001500 +030183000100011801850001000100018401000100010201830001000104018700010001 +020102000200080185000102010201160102020d01830001000102018100018201000103 +018300010001030183000100010301860200020002010288020102010201020102860200 +0200020102840201020102860201020102010284020102000205028d0001000102010201 +0002000100018701000100010002018701000100010001008a0001000100010001000100 +880001000100010001008800010001000100010088000100010001000100880001000100 +010001008300010001010181000101010100850100010001008600010001000100860001 +000100010086000100010001008100010101820001008600010001000100880001000100 +0100010083000100018701020100010001020602820100010501820001008100020c0211 +0101008c0100010001000100010001000108019700010001000100010001000100010001 +000100010001000104018400010001008200010081000107018300010001160101000701 +820002008300020002840200010002010281000204028201000283020100029102000200 +020102000200020100010001000288020001000200010002880200010200010002008200 +01001500 +8101008100011e0185000100010001880100010001000100018501000100010085000100 +010200010001018300010001040186000100010002010501870001000100010001600181 +000203028100010501810001020183020100010601820201028202010282020102820201 +028202010201028101028202010282020102010281010282020102010281010201028101 +028202010201028101020102140181020105018302010201050181020104018100010301 +030281010203028101020202810102010282010201010182020002040284000201020104 +018200010081000202020100820200028202000284020002010201028101020202810102 +020281010202028101020202810102020208010102020102028101020102860102010201 +020109018100010501810001030181000108018400010001008100018a01000100010001 +000100018201000105018500010001000181010203028301020102030283000200028502 +010200010282020001020181020101018100010901050283010201028202010282020102 +0102830102010005008101000d00 +01018500010001000118018100010b0183000100010b0103005601860201020102010288 +020102010201020102860201020102010286020102010201028402010201028402010201 +020502010185000100010201010183000100010201810001820102018301020102830200 +02008a000200010002000200020086000200020001020102850002000100028b02010200 +020002000100020081000201028400010001008a00010001000100010001008600010001 +000200860001000100010086000200010001008600010001000100860001000100010082 +000102010281010202028101020302810002010284010201000282020002060282010001 +05010100820100020c028101020102810102020281010202028101020202860100020002 +010288020002000100010201060197000100010002000200010001000100010001000100 +010001040184000100010003000801810001820100011501810001070101008502000201 +0002ac020001020002000200020002000200020001000100010200020002000200020100 +0100010002000102000102008b0002010001020002000200028302000200820001008200 +010081000181010001008101000500 +820100011f01870001000100010001880100010001000100018401000100018101000400 +01018300010001060183000100010801820001008100013a018602010201020102880201 +020102010201028602010201020102860201020102010284020102010285020102010002 +030201008102010101010201018200010285020100010001010181020176018100018201 +02018101028202010282020002010281000182010201040101008d010001020002000200 +0200020002020218018200010281020102018102011f0181000106018100010e01010082 +010001130101008201000184010001000203028101020202810102020281010202028201 +020106010102860102010201020104018402010201028202010201020201820201020602 +8201020103018300010001020181000101010200 +0101850001000100012501810001820100010a018200010001006c018100010d01810002 +060202018e02010001020102000100010201000101018400010201028102008a00020002 +000100020002008500010002000284020100020085000200010002860201020001000284 +0201000200880002000100010001008a000100010001000100010086000100010002008d +000100010001020002000100010086000100010001008100010101820001008200010201 +028101020202810102020201000402830100020081000204028400020100010601820001 +008200020082000200820002008100020202810102010281010202028101020202810102 +010286000100020001008300020002850201000100010701010094010001000100010001 +000100010001000100010001090185000100010001070181000105018900010001000100 +010001840100010001020181000107018100020102810002010287000200020002000201 +028b00020002000100010001000186010001000100010201870001000100010002840200 +010002920200020001020002000200020100010002000184010001000184010001000183 +010001000200 +820100010201810001190181000186010001000100018601000100010001820100010101 +840001000100030001018300010001080181000148018402010201028802010201020102 +010288020102010201020102860201020102010284020102010284020102010204028100 +018201020183010201028802010002010201020101018500010201020183010201028202 +010281020183010201020102810102820201028202010201028101028202010201028101 +028202010201028501020102010281020114018102010601010206018102010401810001 +040102028101020202810102030283010200028202010201020101820201020402070101 +00820100020d028101020102810102020281010202028101020202810102010284010002 +000201022c018100010e0102001601890001000100010001000282020102080281000206 +020601010201018502010201020105010202810102010281010281020101018300010002 +81020182010001820102010e0101000001 +850001000100013101810001030185000100010001340181000145010402820002011501 +830001020106018102011d018102010c0186000100010001008600010001000100860001 +000100010086000100010001008600010001000100810001010184000100010086000100 +010001008600010001000100860001000201000201028200010282020002010285000201 +000201030184000100010082000200820002008200020001000302100187000100010001 +000202028500010001000109018400010001009100010001000100010001000100010001 +000106010300820100010d01890001000100010001000186010001000100010d01840200 +020002030281000201028100020102830001000283020100018401000100010801940001 +000100010200010002000102000200010201020102880002010201000100018201000186 +0100010001000183010001000200 +04018100010a018100010d01810001880100010001000100018401000100010401840001 +0001000100050181000101018100010c0183000100010301810001090183020102011101 +81000105018100010e018402010201028802010201020102010288020102010201020102 +840201020102860201020102010284020102010205020101820201028202010284020102 +010283020102010301840201020102810200830002000282020102820200020102840100 +020002820201020102810002820201020102810102820201020102810102010281000286 +0201000100010083000100010b0181020106010102070181020103018100010401020281 +010202028101020202810102020201010102010181000206020101810201040182000100 +8100020f0281010202028101020202810102020202018102018201000201028101028102 +012b018100010e0181000116018b00010001000100010001000202028100020202810002 +010285000200020002810201090183020102010101830001000186010002000200028b02 +00020002000102000200028b020002000200020100010001840100010001820100018101 +000100810100 +820001008100010601810001050101008201000124018200010081000102018100012601 +81020105018b000100010001000100010001160184020102010288020102010201020102 +880201020102010201028402010201028602010201020102840201020102050282010002 +840201020102820200028202000288020100010001000201390186000100010001008600 +010001000100870001000100010002850200010001008600010201000100810001010184 +000100010201028200010201028200010202028100020202820100028202010081000282 +020002010281000282020001040182000100840002000200820002008200020001008402 +000201028202010202028101020202810102020287000200010201000282020002010281 +000182010001060190000100010001000100010001000100010081000186010001000100 +010701850001000100010a018100010501810001040183000100010d0106028101020202 +810002050282010201080185020102010201070103028101020102870102010201020102 +8402010201028102010b01010002010100 +82000100830001000105018200010083000100010d018300010001880100010001000100 +018201000104018100010101010002018600010001000100810001110181000101018100 +0107018102010e0181020106018902010001000100010001330105021701880201020001 +000200028202010283020002008500010002000282020100830002000289020100020001 +020001020102810102010288000200010001000100830001000124018100011401810201 +01010102020181000207020601810001820100020d021701010281010201025601830001 +000101018400010201020402820001020202810002010281000283020102010c01810201 +8401000100018a010002000200010200020001008401020001008c000200020002010001 +000100018201000184010001000183010001000100 +020004018200010081000105018500010001000107018100011601850001000100018201 +00010301810001820100011a018100010d018a0201000200020002000201840102010001 +04018102010b018402010201028802010201020102010287020102010201020187010201 +020102010284020102010284020102010205028201000284020102010282020102820200 +028b02010001000100020102010282020102820201028202010282020102010281010282 +020102820201020102810102820201020102810102820201020102810102010281010283 +020102010601860001000100010086000100010001008600010001000100860001000100 +010089000100010001000100018c01000100010002010001000200870001000200010002 +020281000281020181010001008202000201028100028202000104018200010081000201 +028100028102008200020001000502810102020281010202028101028402010200020202 +820100028202000201021701810001050183000100013601810001840100020002050281 +000209028201020106018702010200020102010701010281010201028401020102010101 +82020102010203018102010a010200810100810001 +81010002008201000103018700010001000100010f018300010001860100010001000107 +018100018b010001000100010001000100830001000101018100010b0187000100010001 +000181010081000104018100010b01890201020102010201020182010201010186020100 +02000201310181000205021601820001008a00010001000100010001008a000100010001 +0001000100880001000100010001008a0001000100010001000100880001000100010001 +008300010001250181000112018102010101810201030108028100010501010081020082 +000200830002000282020002030281010282020102020281010202028101028102010101 +020203018202000201020301810001500181000101018100018301020002020281010282 +020002040281010281020084000200020106018702010201020102018201000188010001 +0001000100028a0200020002000102000200850002000200018401000100018401000100 +01830100010081000101010200 +010181000101010100840100010001030185000100010001090181000182010001020185 +000100010001040181000106018500010001000105018100011001830001000103018100 +01840100010001070181000183010201028a020001020002010201000102018102018401 +020102010b01820201028a02010201020102010201028502010201020187010201020102 +010286020102010201028402010201020402020101028301020002820201028502000200 +020182010001850102010201028202010282020102820201028202010201028101028202 +010282020102010281010282020102010281010282020102010281010201028101028302 +010201060186000100010001008600010001000100860001000100010086000100010001 +008900010001000100010001850100010001008100010101820001008800010001000102 +010282020102810201030183020100028102008100028302010201030101008301000102 +040281000283020002008100028102010f01880001000100010001020402550185020100 +010001810102820200020102810002840200020002020201000102810102010209018500 +010201020182010001860100010001000286020001000200028902000200020100020002 +86020001000100018401000100018701000100010001000200 +83010001008100010401010081010081000116018100010b018100018101009100010001 +000100010001000100010001000107018700010001000100010401820001008100010301 +8100011601810201010186020100020002010b0182020102880201020102010201028a02 +010201020102010201028402010201028402010201028602010201020102050201010102 +830102010282020102820201028102010301850002010200028202010287020002000100 +020084000200010282020002860201000201000284020100020085000200010002820201 +028202010201028301000100850001000100012d01810001090101028101020102030181 +000282020002010281000282020001060182000200820002008200020082000200810002 +040281010202028101028402010201020102010101028201020102010100020281000154 +018502000201000101018202010206028100020102010002028200010281020116010102 +830102010282020102880201020102010201028402010201028302010201080181000101 +010100 +040185000100010001050182000100810001110181000184010001000104018100011001 +0200110182000100010002018100010c0181000184010200010084000200020184010201 +0201820102010101820201028102013101060255018100011e0183000100011101030281 +0001030181000203028201020182010201030101008102008100020a0285000201020102 +0202810102810201030101028201020105010202830001020102018102014d0185000102 +00020082000100830002000204028500020002000201028101020202820102010a018402 +010201028802000100010001000286020002000200018401000100018b01000200020100 +01000100028e0200010001020002000100010001000000 +810100830001000101018600010001000100810001100183000100018101008100010e01 +8100018c0100010001000100010001000181010081000107018700010001000100010301 +010081010081000103018100010901810201820102018601020102010201010181020182 +010201100181020102018302010201040101020301010202010102820102010101010284 +010201020181010204020101010283010201028202010282020102810201040187020102 +0002000102850200020001008a0001000200010002000200850002000200028202010281 +020081000287020100020001000282020002840201000100890001000100010001000101 +010100850100010001008600010001000100860001000100010089000100010001000100 +010201820001008600010001000100840001000100010082020002810200830001000101 +018100020302820002018301020001040181000181010281020082000200820002008100 +02030210018b000100010001000100020002810201020101024f01820002008400010201 +028202010201028100020102830102000283020002008200010202020401810001040186 +020102010201028102010601030281010286020102010201020202030103020101020281 +01028102018101000100810100 +020185000100010001050182000100810001150181000182010001040181000110010100 +0301810001050101008201000103010100050101008201000108018e0201000200020002 +000100020102018201020103010102130183020102010101810201820102010101830201 +020104018102010701070201010102810102840201020102820201028102010401840201 +020102820201028202010282020102010281010282020102820201028202010201028101 +0282020102010281010282020102010281010201028101028102012d018100010f010100 +8101020202060107020101810201030101008102008100020c0283010201020202810102 +810201030181020182010201050101028101028202000101018100010101820001008300 +0100010101820001008100013e0181000201028200020001008402000200020402010001 +028100020102810102010284010201020107018102010201010287000100010001000197 +010002000100010200020100010002000102000100020002840200010002840200020100 +81000101010100 +8300010001030184000100010081000117018100010f018100018c010001000100010001 +000100018101008100010701810001030183000100010201850001000100010c01810201 +010185020102010201820102010501810201010181020114018102010401810201020101 +020201820201028102010101010283010201020502520186000100010001008600010001 +000100860001000100010086000100010001008900010001000100010001850100010001 +008800010001000100010084000102010281020082000200820001008200010082000200 +820002008200020181010281020102018200010002000102820002008100028202000282 +0200028202010203028201020107018a0001000100010001000200830001000182010001 +500182000200820002008100020302010081020081000203020100840100020102050201 +00060101028501020001000105018102010a018102010201010281010201020501810201 +020101008101000000 +85010001000100810001020184000100010083000100010f018300010001040181000104 +018100010d01820001000100030183000100010301010085010001000100820001008100 +011101870001020002010201820102010201810201820102011701010204010102040181 +020103018102010401810201010182020102050283010201028202010284020102010282 +020102810201050101028100028202010282020002860201020001000282020102820200 +028202000201028100028202010201028100028202010283020001028202010201028301 +0001008500010001000125018100010d0101020200110202018102010301810001820100 +020d0219018102018201020106018100014a010302810002010284000200020083000200 +02010203000a020901820201028102010101910001000100010001020001000201000100 +0186010001000100018e0100010001000102000100010200018401000100018101000000 + +020001010700110181000101018100010b01810001010181000101018300010001860100 +0100010001040101000201810001820100010b0187000100010001000109018100010201 +8102010601810201820102011b0181020104018102010201830201020102018302010201 +020101020301810201810102020216018102013801860001000100010086000100010001 +008600010001000100860001000100010089000100010001000100018501000100010088 +000100010001000100840001020002100282000201060182000100020081020082000200 +82000200810002820200028202010202028101028102010d018200010088000201000200 +010001230181020129018202000283020002008200020081000203020100810200810002 +010281000201028101020102010183020100010b01820001008300010002840200010201 +810102840200010001020183000100018201000102018300010001820100010201820001 +00820001000000 +8101000600810100820001008100010301810001010101000b0184000100010083000100 +0182010001020181000101018600010001000100860001000100010001000b018b000100 +010001000100010001070183000100010701820001008300010001820102018401020102 +011a01810201860102010201020101010102040101020301830201020101010102010182 +020102020283010201028202010282020102840201020102810201060182020002820201 +028202000289020002000200020001028202000282020002010281000286020102000200 +0282020102840200010002820200028402010001008500010001000125018100010e0181 +000213020801010081020082000200810002830200020081000202020101030282010201 +080183000100010401010204018102010201810001190181020181010201022a01010001 +02810002050202008202000202028100028202000202028101020202820102010c018100 +01040181020182010201810102850201020102010101810201130181000101010000 +020081010002008101000500020181000109010100010102000101820001008100010201 +8100018a0100010001000100010001030181000101018100018101000100030181000182 +010001820100010701010002018100010801850001000100010301010201018102018201 +020182010201190181020183010201028302010201810102010285010201020102830201 +020101018302010201050102028401020102010201830201020102010102050184020102 +010282020102820201028202010201028101028202010282020102820201020102810102 +820201020102810102820201020102810102010281010281020108018600010001000100 +860001000100010086000100010001008800010001000100010087000100010001000185 +010001000100880001000100010001008200010201028100020a02810002820200028102 +010601810001810100820001020c021101810201040104008b0200010200010001000100 +011a018102012a0107028200020083000200020202010081020081000205028101020302 +01000c018402000100018101008100010301810201810102810201020181020116010100 + +810100050081010082000100820001008100010a01810001080181000106018100010101 +81000101018c000100010001000100010001008100010201010082010001810100830001 +00018401000100010301810001070181000107018300010001840102010001060101022e +0181020106018302010201010103021a0186000100010001008a00010001000100010001 +008a00010001000100010001008a00010001000100010001008800010001000100010085 +000100010001360101028400010200020202810102810201830102000201028200020107 +01010081020083000200028302000200810002030201010302820102010a018300010201 +02010a028301020100820002010101010083010002008300010001810102010283010002 +010101810001810102010282010001260181020001008102008100020402810002010201 +000302810002030281010283020102018201020106018102010301810001030181020107 +01810201020181020118010000 +82000100020081010005008201000103010100090181000181010001000a018100018601 +000100010001050102000101020003018100018401000100011a01830001000104018100 +010801810201190101028a01020102010201020102018101028202010283020102010d01 +030203010102030183020102010101830201020102010102810102820201028202010282 +020102010281010282020102820201028202010201028101028202010201028101020102 +810102820201028202010201020901840001000100880001000100010001008600010001 +000100880001000100010001008800010001000100010084000100010088000100010001 +000100830001000282020002040284010200010001000202840102010201040185000100 +0100020d0281010201028101028102010201010207018402010201008100020102830102 +0102080281000203028100020302820102018101020702810002040281000204021f0182 +020002040201008102000100040281000201028300020002820200020102830102000283 +020100010401810201020101028100010b01010203018102010101810001070181000107 +01810001810100 +830001000185010001000100050006018100018101000100810100850001000100010201 +810001020185000100010001010181000101018300010001010181000137018202000103 +018102018201020181010283020102011401830201020101010102820102010101010285 +010201020102810201050184020102010205028301020102820201028202010284020102 +010282020102840201020102820200028202010281020087000200020002000282020102 +820200020102810102820200028302010002820200028402010002008100020102810002 +840201000100850001000100013601020281010203020101810201010101000102010083 +020102010701810001830102000203028100028202000201028201020107018100020102 +0501810001810102060282010002040281000201020100810200850002000200021b020b +018202000104018102010301840002010001810102820200028302000200810002040282 +000200010009028100020302020181000107018400020002018101008100010201010201 +01810001060101000801010006018300010001810100 +010101008301000100810001810100020001010100840100010001080184000100010081 +000107018100010401810001030182000100810001810100810001060181000182010001 +170185000100010001820100010101020082010001050182020102810201820102013901 +02020f018100010101820200013b01840001000100880001000100010001008600010001 +020100880001000100010001008800010001000100010081000103018100018401000100 +010201060282000201870102000100010002030207018400010001008100020c02810102 +010281010201020201030281010201028101028402010200020f02010025020a01010202 +018102010801820201020202010082020002020201008102008300020002020282000200 +830002000205028401000102010701010281010285020102000200830001000181010286 +02000100010001060101000801010006018300010001 +810001040105008101008100010201810001030182000100030001018100010101810001 +020183000100010501810001010182000100010033018100010301810201050182020102 +810201820102012601860201020102000104018102018501020102010203028601020100 +020002820200028402010201020202020081010203028201020001008902000100020002 +000102850201000200020102820002008a00020002000200010002008100020102810002 +820201008500010001000113018502010201020110018300010001820100010301010081 +010282020002040202018500010002000201028300020001080101000402810002070281 +010201028101020102010182020002810201810102840201020102110281000202028400 +02000200830002000204028100020b0281000206020b0105028100028502010201020182 +0100020a0201008202000202028200020001008202000205028100028102010101010201 +0001018a0201000200010001020002830201020101010202020101021001810001820100 +0104010100820100010001 +810100010083010001008200010007008101008100010901820001008100010501810001 +090183000100018301000100810001270183000100018401000100010101840001000100 +010004018102018101028102011901830001000102010100030183000100010101830001 +0001010181020081000201028300020002010201000a0201008102000200080284010200 +020081000202028101028202010282020102010281010282020102820201020102810102 +8202010201028101020102810102810201060181000125018100010f0182020102020282 +000201040105028201020106010100010181000202028100028402000200020202090182 +02010201028301020102820201020f028100020102010022028101028102010c01010282 +010201820102018201020101010402830001000207020100810200830002000204028100 +0203028200020182010001020186020102000200028e0201000200010200020001000200 +02010201008502000100020101018500010001000105018300010001040103000001 +8300010001020107000a0182000100810001820100010501810001100181000135018100 +010e01010213018100018501000100010081000112018102018601020102010201810102 +030201008102000100810200010083020100028202010283020001020702830002010203 +022d01840001000100880001000100010001008f00010001000100020100010001000100 +870001000100010001870100010001000100860001000100010085000100020002010281 +000281020101018500010002000281020084000200020107010100010283000200028202 +0002050281010201028101020e0281000202028100020402860102000100020081000202 +02810002010201008202000208028100020e02820102010e018202000281020101018102 +010101830002010201028100020202820002008200020082000200810002010201008102 +008300020002010283010200028102018301000200820002018201020181010001000302 +8101028102018101020b02050181020101018102010e01810001 +830100010082000100020081010002008201000184010001000151018100010201810001 +840100010001010182000100810001270184000100010084000100010082000200820002 +008b00010200020002000200020085000200020002080281000201028100021402810102 +820200028202010201028100028202010282020002820200020102840002000102010281 +000201028100028202010087000100010001000111018202010201020e018100010f0105 +028100028102010201070283000200010401020085020002000200820002008300020002 +0502810102020281010202028101020a020101020201010202810100830002010227020f +018202000281020105018202010203028100028102008200020081000204020100810200 +8100020b0286010001020102010101820001008100010101010001019200010001000100 +0100020002010002000200018401000200028202000186010001000100018b0100020100 +01020100010002 +0501020081010002000e0181000179018102018601000100010001810100820001008d00 +010001000102000200020100020102820002008200010081000286020002000200020202 +83000200020f028100028202000207022e01840001000100880001000100010001008600 +010001000100880001000100010001008700010001000100018701000100010001008900 +010001000100010002820200020402020183000100020702060181000183010001020d02 +080107028100028102008100020202820100010201010284000100010082000102050281 +00020b02810002080281000204028400020102010c010102820002010401820200028202 +000282020002060201000102810002050283000200020202880102010201000100020202 +8100018501020100010001008a0201000100010001000201010185000100010001020183 +0001000282020001860100010001000182010002030281010282020001 +85010001000100030081010083000100011a018100014b018100011e0185000100010001 +080181020181010281020183010201020102010101028101020102810102820201020702 +810102060281000206020100060281000202028401000200028902000200020002000102 +830200020082000102870200020002000200810002010281000282020100870001000100 +01000111018202010201020e018100010e010102810102040202010a0208010100840200 +020002820200020202810002020281010282020102020283010201028202010201028101 +0205028101028202010201020301810201830102010228020f0184000201020107010102 +810102060281000282020002030202008102008100020802830100010203028201020002 +000101020207018202000182010201040181000203020201810201070101028101020402 + +87010001000100010081000101018100017f010901810001040189020002000100010001 +008200020087000200010002010201028100028102008100028302000200010085010200 +020002020281000202020100820200028302010002010281000202028100020402810102 +820201028202010282020102010281010282020102820201020102810102820201020102 +810102820201020102810102810201080184000100010088000100010001000100860001 +000102010088000200010001000100870001000100010001870100010001000100890001 +000100010001000281020081000203020101820200028202000205020701810001810100 +8100020f0281010202028401020102018101008100018101020202810002850201000200 +0201028101028402010201008100020702810002820200021b0210010102080185020002 +00010001008202000208028100020f028401000200020102840100010001010181020001 +000101870001000100010001860100010001000184010001000288020001000100020001 +8c010001000102000102000200020302 +010081010001000101850001000100013701810001510183000100018101008a00010001 +000100010201028102018301020102810201810102820201020302810102010281010282 +0200028202000201020100160281000281020081000286020100020001008a0001000100 +0100010001008a00010001000100010001008a0001000100010001000100850001000100 +013c010202820002010501810002020281000109018100018101008100020b0208018102 +01830102010281020182010201820102010101010202010102080129020e010102080102 +0281000204028200020081000202028100020e0281010281020103010102030102008101 +0082000201130101020d01010201018202010202020000 +820100018101008100010201830001000114018100011101810001060181000155018300 +0100010a018a000100010200010002000282020002010282000200850002000201020102 +8101022c0281010282020102820201028202010201028101028202010201028101028202 +010201028101028102010601860001000100010088000100010001000100860001000100 +010201028600010001000100880001000100010001008600010001000100880001000100 +010001000300030283000201020202010104020b0101000d028301020102020281010202 +020101010085020100020102050283000200018301020102850201020100020402830002 +000202028100021b020e0101020801010003028100028102008300020002040281000201 +020100040281000206028101008100018201020181010002008301020102860200010001 +000181010081000186010001000100018401000100018601000100010001840100010001 +8b0100010002010002000201020102 +0301010003018100017f010f019400010001000100010001020001000100020100020088 +000200020102000200820002008100020102810002020201002202830002000289020001 +000200020001028202000201028701000200020002008300020002010281000282020100 +850001000100011401030223010502830102000283020100020302010181000103018100 +010101820002008300020002810200830002000204028101020202810102020281010202 +02810102810201820100028202010283020102010101820201028402010201021c028101 +020102810102070205018100010401810001830100020107018302010002840200020002 +050281000281020083000200020d02060183020100010201010081020085000100010001 +8801000100010001000186010001000100018401000100018401000100018c0100010001 +000201020102010201020000 +0201830001000103018100017f0109018100018801000100010001000103018102018201 +0201820102018201020182010201810102820201020f028100021e022c01860001000100 +010088000100010001000100860001000100010088000100010001000100880001000100 +010001008600010001000100880001000100010001000300040201018100010301030282 +0002010a0181000202028100020802090184020001000281020185010002000102030201 +018100018201020108010402810102010282000200810002040281010201028100020102 +810002030281010203021001010203018102010201810002050201008202000282020002 +060282000200810002830200010201028101028102018401000100018201020181010082 +00010081000102018102010f01810201100184020102010201028101020002 +8201000181010081000102018100011f0181000106018100010401810001070181000103 +01810001060181000106018100010c018100012801810001070184000100010085000100 +020002810200830002000283020002008200010081000282020002010281000201028300 +020002040281010210020100060281010282020102010281010282020102820201028202 +01020102810102820201020102810102820201028102011f0103021f0181020183010200 +028202000283020102008100018201000203028200020082000201010101000101010201 +008202000281020081000206028101020202810102010281010203028101028102018501 +000200010281020102018300020102870201000200020002030281000284020002000201 +028100020402810002060281000201028100028202000281020105018200010081000284 +020100010202020100010184020100010284020002000203028100020402010001028100 +020602820100020302820102010201010281010083000100018301000200830002000188 +0100010001000100018b01000100010002010001000186010001000100018e0100010001 +020002000102000200020002 +820001000100820100018101008100010301810001070181000106018100011001810001 +0e018100011d018100010d01810001040181000104018100010401810001030181000105 +018a00010001000100010001008300010001810102810201840102010201850102010201 +02010283000201020102810002020281000205028100021a0283010001008a0001000100 +0100010001008c0001000100010001000100010088000100010001000100890001000100 +010001000111018102011101810001110103028200020181010284020002010204028201 +020183010200028402000201028202010201020101820200020602810102020281010201 +028101020102010081010201020101050205010202010102020201820002008100028202 +01021c020a010202830102010282020102050201010a028100020c028100020a020a0101 +00820100020102050183000100010501820201028102010c018102018301020102840201 +0201020002 +810100820001000100840100010001820100018201000182010001010183000100010201 +010002018100010401010005018300010001040181000103018100018101008100010401 +810001050101000501010008018100010301810001030181000107018100010801010005 +0183000100010201810001820100010c0182000200850001020001008100028902000200 +02000102010201028101021e028100020602810102820201020102810102820201028202 +01020102810102820201020102810102820201020102820102010c018400010001008800 +010001000100010086000100010001008800010001000100010087000100010001000187 +0100010001000100880001000100010001008100018101022b0282000201090181020105 +018300010001810100820002010101830001000105018200010082000102020201000102 +810002110281000206020701860001000100020081000202028101008300020002820201 +02040281000205028100028102008100020a028201000203020301810001030102008601 +000100010001840100010001040185000100010002890200010201000102000181010081 +0001820100018b0102010002000201000201020002 +810100040081010001000701810001070181000106018100010601810001060181000106 +018100010601810001050181000105018100010501810001050181000104018100010201 +83000100010501810001860100010001000102018300010001050181000103018a000100 +010001000100010081000283020002018101008500010002010201028200020001000102 +810002020201002502810002850200020001028502000200010201028100028602010002 +000100820001020102850102010001008900010001000100010001110183020102012101 +830002000201028100020c02810002090281000202028100020102810002020281000282 +020102020281010201028101020202830102010283020100020502040103028101020102 +84010001000222020b010602810102040201010502810002070201008402000200020802 +810002030201018302010201010185020100010201810100880001020001000100019101 +000100010001000201000100010001000286020001000100028202000185010201000102 +8402010001020102 +040083010001008300010001840100010001860100010001000101010100010183000100 +018601000100010001860100010001000181010081000186010001000100018a01000100 +010001000100018101008300010001930100010001000100010001000100010001000100 +81000183010001008100018101008c000100010001000100010001008100010101830001 +000108018100018501000100010083000100010401850001000100010701010201018402 +0100020182010201810102860201020102010282020102040281010203028100021c022e +018400010001008600010001000100910001000100010201020001000100010001008800 +010001000100010088000100010001000100860001000100010083000100022e02810102 +020281010281020181010202028300020102840201000102020287000201000100010201 +02810102010281010201028101020102010001028100021b028201020103018100018101 +0210028101020f02810002820200020d028101020602010101008101008100010d018502 +01020102010401810201040101020c01810200 +020081010001008101008100016f01810001020184000100010083000100010101810001 +080181000109018100010401840200010201810102850201020102008100028502000200 +020085000200020002260281000282020002860201000200020081000201028800020001 +00020001008200010287020001020100010087000100010001000139018100022c028200 +0201070181020104010102820100010c0181020105010100250201018102010701220201 +00820200028202000205028100020c020100020181020087000100010001000188010001 +000100010001860100010001000186010001000100018401000100018301000102830201 +0002840200020002 +810100020083010001008100018601000100010001840100010001860100010001000101 +01010001018300010001860100010001000186010001000100018101008100018c010001 +0001000100010001000181010081000189010001000100010001008100018d0100010001 +000100010001000100830001000181010083000100018101008a00010001000100010001 +008800010001000100010086000100010001008400010001008300010001040183000100 +010801840001000100890001000102000201000201028301020102010281000201028100 +020202810102060281000202028101020b02810002050281010282020102820201028202 +0102010281010282020102820201020102810102820201020102820102010a0186000100 +010001008600010001000100910001000100010001020001000100010001008800010001 +000100010088000100010001000100860001000100010082000100810002110281010219 +028101020102810102010201010202010101020101850200010201020102860100010001 +00028302000102010285010201020102010281000282020002140281000203028100010b +01820201020502810002180201000c028101020502020185020102000100010082020001 +080187020102010201020105018302010201020181020103010102010181020181010281 +0200 +0200020183000100017f010b018100010101810001080181000181010002000101810201 +0201020284000200020081000209028101020b0281000212020200890100010001000100 +01008c000100010001000100010001008a00010001000100010001008700010001000100 +011301830201020121018100022502810002020281000201028101020202810102810201 +810102810201040183000100010201020282010201030181020181010201028401020002 +0081000222020c0181000223028100028202000201028100020102010182020102050285 +0100020002008100010201850001000100018f0100010002000200020100010001000184 +01000100018501000100010084000100010088000100010200010001 +820001008200010001008202000186010001000100018401000100018401000100018601 +00010001000184010001000186010001000100018a01000100010001000100018a010001 +000100010001000183010001008100018c01000100010001000100010001810100900001 +00010001000100010001000100010083000100018101008a00010001000100010001008a +000100010001000100010084000100010084000100010083000100018201000109018100 +018101000100810100010082020102010281010202020100810200840002010002820201 +020102810002820201022102810102820201028202010201028101028202010282020102 +010281010282020102820201020102810102810201090184000100010088000100010001 +000100880001000100010001008800010001000100010088000100010001000100880001 +000100010001008600010001000100030002028301000201010182020102030281010201 +028101020202810102830201020181010207028100020302060181020101018102010101 +010201018202000103018102008b00010001000100010001020182010201010105020100 +1a0201000c01050281000206028101022802820102010501010081010083000100019401 +000100010001000201000200010001020001000186010001000100018801000100020102 +0002820201020202 +03008101008300010001820102010c018100017f01020181000103010300820201020102 +0101810201810102060201000802820001022002820100013e0181020122010100040201 +018100020602810002020281000202020701110281010201028101028402010201020102 +820001028102018101020202820102010501020281010201028300010002220210012502 +8100020e020101010281010284020001000105018b020102010201020102010201810102 +01020b01840001000200010003028100020002 +090085010200020001860100010001000182010001020183000100018601000100010001 +86010001000100018a01000100010001000100018a010001000100010001000181010081 +0001a1010001000100010001000100010001000100010001000100010001000100010001 +008100018301000100880001000100010001008300010001810100860001000100010084 +000100010086000100010001008100018201000103018100010501030003028100018201 +020181010281020181010201020100010202000b02810102130281000205028200010282 +02000201028100028d020002000100020002000200020088000200010002000102810200 +8b000100010001000100010001020181000120018100010c018100010101820200020202 +810001010102028100020302810002030283010200010201830002010203028501020002 +000203020701020201010602040183020100010a01820201008100020202810002010281 +000282020002030281000201028101020102820100020302880100020002000102010c01 +810002820200020402810002190283000200020502810102010281000281020101018302 +010201020102000101900001000100010001000102000200010001840100010001840100 +0100018201000203028100028302000200820002000000 +020083010001000100850200010002010101830001000186010001000100018401000100 +0184010001000186010001000100018a0100010001000100010001020189000100010001 +000100018101008100010201890001000100010001000101018100010301830001000101 +018300010001020181000101018100010801830001000122018200010001000402020181 +0201060102020300830200010205028100021e0283000200020102810102820201028202 +010282020102820201020102810102820201020102810102820201020102820102010801 +830001000187010001000100010091000100010001000102000100010001000100870001 +000100010001890100010001000100010082000100030081010085000200020001010181 +000201028100020402810002020201000302810102070281010081000204020101820201 +028302010201020109028101028102008f00020002000100010001000100010201830100 +010081000283020001021402810102820201028202010281020110010102820102010201 +0302820100020a02810002020281000216020301010081010001001f0105020100810200 +8100020202 +04008201000101018102010301010226018100010f018100010901810001010183000100 +010201810001030183000100010101810001010182000100850001000100010301820001 +008400010001008600010001000100820001008300010001080181000103010302870100 +020100010001060105028100020502810102050281000219028b01000100010001000100 +01008c000100010001000100010001008a00010001000100010001008b00010001000100 +010001000111018102012401820200028402000200010201010283000200020102830002 +000283020102008100020302810002040285010201020002020206018202010281020181 +010288020002000200010002010281000201028100010401810001810102810201830100 +0102030281000282020002180283000200010e0181000285020002010002810200810002 +07028100028202000209028100028402000200020d020201820200028402010201028f02 +000200020002000200010200020002860200010001000184010001000185010001000102 +08028300020002 +060001018b00010200020001020001000184010001000186010001000100018401000100 +018601000100010001810100810001860100010001000181010081000186010001000100 +018c01000100010001000100010001810100810001810100980001000100010001000100 +010001000100010001000100010081000183010001008400010001008300010001830100 +010084000100010086000100010001008200010083000100010c01010002028200010085 +0001000100010501010284000102000202028100020a0281010219028300020002010281 +010282020102820201028202010201028101028202010282020102010281010282020102 +01020b018200010088000100010001000100880001000100010001008800010001000100 +010088000100010001000100880001000100010001008200010003008101008100020302 +010182000100820001020102810102060281010207028301020002820201008100020402 +84010001020102018102010101810201810102830201000281020101018f000100010001 +00020001000100010001020102002302110102020301820201020b028100028102008200 +020081000214028101020102030182000100020088010002000200020002860200020002 +0100810001820100018601000100010001850100010001020c02 +82000100040081020102018102017f010c01810001830100010081000202020d01010283 +010001020502810102050281000216028100020402840100020002850201000200028202 +000282020102010283010002008b0002000100020002000100028a020001000100010001 +000113018102011e01020202018202000284020002000182010201010181020001008102 +008200010082000100820002008400010002008200020181010203028301020002040201 +010202830102010282020102010286010002000201020602840102010201810100860001 +000201020081000204028300020002130281000202028400020100010401810001810100 +810001010101000302840002000102080281000210028500020002010201020100820200 +028202010203020101020082020102860201020102010286020102010201028202010281 +02010f010c02 +820002000100810100880002000100010200018401000100018401000100018601000100 +010001840100010001810100810001860100010001000186010001000100018101008100 +018601000100010001810100830001000196010001000100010001000100010001000100 +01000100018101008c000100010001000100010001008100018101008600010001000100 +8100018301000100840001000100860001000100010086000100010001008100010c0102 +028400010001008200010081000104018102010401010281000205028100020102810102 +1d022d018400010001008800010001000100010088000100010001000100880001000100 +010001008a00010001000100010001008800010001000100010081000201028200010081 +0002030284000100020081000203028101020f0201010202020006028100028402010201 +028202010201028101028202010201028101008100020302900001020100010001000100 +010201020102010281010221020b01810002840200020002020201000102810002080281 +01020e028201000207020101010281010202020201830201020001009601000100010002 +0100010001000100020100010001000184010001000184010001000183010001020902 +8400010001008100018201000103018102017f010b018100018301000102020281000108 +01810201820102010401810002810200810002010281000282020102010201001d020100 +850200020001028202010289020002000200020001028102008a00020002000200020001 +008b00020001000100010001000134010202010106028201020103018100020202810002 +0e0201010602810002050284010201020101018102010201810001010182000201020103 +028101020202820002008900020001020001000201860100020002010214028100020402 +820102010401820001000200810200830001000205020400860200020001000281020081 +000287020002000201000204020101010283000100020202810102060201010100810200 +01008101028602010201020102890201020102010201020113010802 +840102000100010001018302010001840100020001820100018401000100018801000100 +010001000186010001000100018601000100010001860100010001000181010081000186 +010001000100018101008100018301000100810001a10100010001000100010001000100 +010001000100010001000100010001000100010081000181010086000100010001008300 +010001810100860001000100010084000100010084000100010081000182010001060181 +000182010002010283010001008400010001008100018201020107018200010201028100 +020802810102150281010204022d01840001000100880001000100010001008800010001 +00010201008a000100010001000100010088000100010001000100880001000100010001 +008100020102820001008100020302810001810100010082010002130282010002010202 +000602810002820201020d02870100020002000200010033028401020102010301010005 +020100810200010081020082000200010007028101028602000100020002060285010200 +0100020e0204018102019401000200020001000102000200010001020002000186010001 +00010001860100010001000189010001000102000100020302 +040081010084000102000101018100028302010001840100010001840100010001860100 +0100010001840100010001860100010001000181010081000186010001000100018a0100 +010001000100010001810100830001000183010001008100018c01000100010001000100 +01000101010100030101000201830001000101018100010201830001000111018100010e +0181000201020200820100018301020102810201070181000101011d028100020d020100 +820201028102018301020102810201840102010201010102020101010283010201020202 +8401020102013b0102020201050284010201000101018100021302810102010283000201 +028202000205020a01820201020102850102010201020a02010082020002020281000203 +020100030281010208028101020b02810002810201050102020100020282000200810002 +080201008202000203028100020402810002040282010002020281000282020102070204 +018200020002008201000188010001000100010001860100010001000184010001000186 +0100010001000184010001000184010001000183010201020102 +830100020002000201810201020101024e01810001030181000103018100010201810001 +010183000100010201880001000100010001008400010001008300010001010101000101 +810001060182000102010202018700020002010201008100010c012c0282010001810100 +01008201000101018500010001000101010100820100010101850001000100018e010001 +00010001000100010001000104018300010001010101008701000100010001008a000100 +010001000100010083000100010101840001000100810001010184000100020082000200 +020004028100010101010082010002190201008202000203028100020a02010181020107 +0101028301000102320208010b0281000282020002820200020302810002820200020102 +830002000281020081000204028101028202010282020102020281000202028301000102 +810201010183020001028402010201028a02010201020102010201028302010201120183 +02010201820102018101020002 +060084010002000182010001840102010001840100010001860100010001000184010001 +000181010081000182010001810100810001840100010001860100010001000181010083 +000100019001000100010001000100010001000100018101008300010001810100830001 +000181010083000100018101009000010001000100010001000100010001008a00010001 +000100010001008400010001008600010001000100850001000100010801030281000281 +0201820100010d0181000102012f02810102010201010302810102010201010102830102 +010202028101020202810002020281010201020501820001008100010301810001180181 +000106018100010401810001020102028100028102010101810001010183000200020402 +83000200020a028500020002000207028101020a02810102010287010200020001000285 +02010002000202028100020502810002040281000201028100020f028101020102810002 +0102830002000106011e0283000200020202810002040282000200830002000201028300 +010201810102820200020102030181020002009002000201000100020002010001000200 +018601000100010001860100010001000184010001000183010201028402010001028102 +01 +8101000400010181020103018102017f010b018100020402040083010001008100010b01 +8202000209028100021e025a018100010101880001000100010201000100040281000101 +01860001020002000205020100820200020c028401000200020f02820102010901010282 +010001810102100282010002140281010201028101020202090120028101028402000201 +020202830002010202020101810201810102070203010100840200020102860201020102 +01028702010201020102011101850201020102018201020182010201 +810100040081010282020001820100028302010001010101000101830001000186010001 +000100018401000100018601000100010001860100010001000181010081000186010001 +000100018101008100018301000100810001860100010001000181010083000100018101 +00830001000181010083000100018101008c000100010001000100010001008c00010001 +000100010001000100860001000100010084000100010087000100010001000107018100 +020302010103008101008300010001070181000101018202010205028101022302010001 +028301020002020281010202028100020202810002020281010202028201000201028300 +0200028f0201020002000102010200010201020101010100820100010101820001008100 +010101850001000100018601000100010001010183000100010701810201020102028100 +0281020101010100830102010217020200010281010202020d0181000202028301020102 +820201020202830102010209028300020002010202010102810002140281010201028300 +02000109011b028100020a0283000200020c028100020202030101029201000100020100 +010001020002000100010001840100010001860100010001000184010001000182010002 +0202830001020182010201 +070082020001870100010200010001840100010001860100010001000102018100010201 +810001020183000100010101810001040181000108018100010301810001500104020300 +820100010e01810001830102000222028100020502630101028101008500020002000283 +02010001020182020002010281000206028100020c028401000200020e02820102018201 +02010101810201010181020182010201020103028100020a02820100021e020f01120281 +01020302810002020281000204028100020b028100020702830100020002008d02010200 +010200020002000200028602000100010001020181000182010001020181020187010201 +02010201028302010201 +010001018500010001020101010102110181000102018100010201810001040181000101 +018300010001020187000100010001000101018100018201000101019e00010001000100 +010001000100010001000100010001000100010001000100830001000181010086000100 +010001008100018501000100010084000100010084000100010084000100010081000182 +010001070104020101040081010083000100010b01820200022c02810102020283010201 +028402010201028402010201028402010201028202010284020102010282020102820201 +028402010201028202010282020102820201028202010283020102012501020281010081 +000204028201020104012d02810102890200020001020102010284020102010281020101 +010502810002020283000200020102810102840200020002110281000206020e01110283 +010201020f02810002070281010205028100020302010181000103018100011201810001 +04018300020102020284010201020183010201020002 +01008f010002000200010002000201000100018401000100010101010001018100018401 +000100018101008100018401000100018601000100010001830100010081000186010001 +000100018101008100018801000100010001000181010081000181010083000100018301 +00010081000181010083000100018101008c000100010001000100010001008100018101 +008500010001000101018400010001008400010001008600010001000100830001000108 +0104020200010101000e0181000183010201020702810102170281000207028101020202 +810102840201020102020281010284020102010202028401020102018501020102010202 +028101020602810102060281010202022401010003018202000201028200020082000200 +010083010002000100840200020002010282000200820002008400020002008400020002 +0001000d02810102030205010502040103028100020a02810002170281000205020c0127 +028101020102030082020002860200010200020081000202028101028102000200900200 +020100020002000201000100010001860100010001000185010201000102890201000200 +0201020102020282010200 +82000100810001830100010281020104018102016b018100011b01820001020102010101 +0081010001008401000100010b0101028100020402810102090281010217026401840001 +0001008100022d020e018102010101010201018402010201028102018101020502810002 +020283000200020602810002150281000203021001810201810102090281010282020102 +07028100020c028300020002820201020502040082010002070281010287020102010201 +02010a01820201020102810102020283010201028302010201810102 +030081010085000200010001870100020100010001840100010001840100010001860100 +01000100018401000100018a010001000100010001000186010001000100018101008100 +01860100010001000181010083000100018701000100010001008100018f010001000100 +010001000100010001008100018301000100810001810100860001000100010083000100 +018301000100840001000100880001000100010001008500010001000107018300020002 +01020100040101000c01830001020181010204028101021b028100020402850001020102 +010101010202010102020101020201010202010102010102020101020281010201028301 +020102010281010201020101010201010102030181020182010201010181020120018202 +000206028100020302810002020201000102810002130281010201028101020102810102 +040281010281020181010281020101010102820102010101040201000202810002820200 +020202010005028100020202850002000200020502810002040283000200010501810001 +06018100018101020c02820001020d028100020102810102080281000202020200020281 +01020102810002050281000208028c010201020102000200020001028702010002000201 +0284020102010282020102 +0200810100010081020182010001810102820200010401830001000107018100010c0181 +000117018100014901810001030182020102010281010004008101000100060183020100 +0181010282020102040281000204028300020002120281000202028c0102000201020102 +00010201028402000201028b020100010201020100020102010283000201020102820100 +02820201028302000102840201020002820201028302000102010282010002820201028a +020002010201020002010201028100028602010201000102010288010002010201020001 +03018200010281020081000206028101020502810102040281010209028101020e028100 +020302820100020302810002050281000203028200010204028100020302810002040281 +0002100281010209020e018102018101020a028201000183010200020202810102880200 +020002000200028302000201810102100282000200020008028101020202810102030201 +0102028101020202010102028401020102018401020102018301020102 +040081020182010001010101000301830001000182010001010181000184010001000103 +010100810100830001000188010001000100010001830100010001008201000183010001 +008100018c01000100010001000100010001810100830001000181010082000100820001 +008400010001000100010182000100860001000100010002008b01000100010001000100 +010086000100010001008600010001000100810001820100010701030281000103010200 +080181020184010201020081000217028100021302810102030281010201028101020102 +83010201028202010201028101020a028101020102810102010285010201020102170281 +000201028301020002030281000203028100010401810001810102010202008101028402 +010200028102018101020102810002040281000202028100028202000282020102010281 +000282020002810200810002040281000204028100020402810002040281000204028100 +020302810002040281000201028101020802810102820200020402810002090283010200 +010501010004018102008100028102018101020502810102010281000282020002060284 +0002010002050281010203028101020702820002008400010201020b0285010201020102 +0102810002030281010201028c00020002000102000200020102840201020100 +050002018200010083000100010301010001018100010201810001840100010001020103 +008201000101018400010001008100010101020082010001020182000100010002010100 +810100010002018500010001000101010100010181000101018400010001008100010101 +0300010183000100018401000100018401000100010201810001090183000100010a0103 +020500030181000103018102010101810002010281010223028200020001008202000281 +020087000102000102000298020002000200010002000200010001000100010001000100 +018101008200010082000100820001008200010082000100820001008200010082000100 +820001008200010082000100820001008300010001810100830001000181010083000100 +018301000100810001830100010081000101010200810201810100820001020402810001 +010102000101080282010201820100020502010003018300010001010101008201000101 +010200030102000301020003018300010002020201008202000286020002000100018201 +020085000200020102030281000202028301020002030201000402830001000104018300 +01000105018100010c010502810002010284000200020083000200020302810002050281 +0102080283000201020102830002000286020002000200028202000201028e0002010201 +0001020102000200010201028c00020002010002000201000201 +020083020001008100010701810001840100010001820100010201830001000102018300 +010001030183000100010201810001820100010501830001000182010001010101000501 +810001840100010001010185000100010001010185000100010001830100010081000102 +018300010001010182000100810001830100010082000100010081010087000100010001 +000105018100018201000104010202010003010200810100810001020181020103018402 +010200020b028100021d020101810001020183000100010b010202810102820201020702 +8101020102810102010281010201028101021b028101020c020801030202010402070102 +02830002000281020084000200020101013e020101820201028202010282020102010282 +010200820001028402010200020a020b0181000101010102830002000185010200010001 +8101008500020002010203028100020302810002060283010201020b0281000281020002 +000b02810102040201010102010101020101010282010201880102010201020102018401 +0201020182010201 +010081010081000182010001240181000102010100820100016501010201008102000100 +020181000101018100010101830201000101010102010023028200020082000200840002 +000200840001000200010083020001008200020082000200820002008200020082000200 +820002008200020082000200820001008200020082000200820002008200010082000200 +820002008200020082000200820002008200020082000200820002008200020082000100 +840002000200820002008200010082000200820001008200010082000100820002008500 +010002000203020100850100010001000100070282010201820100020702010083020002 +008400020002008200020086000200020002008600020002000200840002000200880002 +000200020002008600020002000200860002000200010083000200028302000200830002 +00018a010201020001000201020086000200020001008700020002010001008300010001 +820100010101850002000201020102810002810201030101028101020502810102810200 +850002000200020202850002010201021f02830102000284020100010201028500020002 +01028f0200010001020002000201000200010201028100020002 +050004018100010101850001000100010101820001008100018201000101018700010001 +000100018101008300010001010181000107018900010001000100010001810100830001 +000188010001000100010001830100010083000100018301000100830001000183010001 +008300010001810100880001000100010001008300010001830100010086000100010001 +00830001000109018100018a010001000100010001000205020101820200018101008400 +010001008200020084000102000206028100021b02810102010281010204028101020202 +810102200281010209028101021002810102080281010209020101810201820102010101 +0302020105020501010281010207028100018101022c0281010210020101020281010203 +028101028a02000200020102010200020102010186020001020102010101810001050101 +008301000102010201008201000281020187010001000200010216028101020102810002 +030281010203028200020081000281020081000203028101020202830102010284020102 +010201028c01020102010201020102010201810102010282010201850102010201020002 + +810001810100010082010001820100010201810001010181000102018100010901810001 +040181000184010001000182010001820100010101810001010183000100018201000182 +010001840100010001010181000182010001030183000100010301830001000102018100 +018201000102018300010001030183000100010201830001000103018300010001070181 +00010b010302030182000201010101028100010101020281010226028100028302000100 +810002880200020002000102008300020002810200830002000283020002008100028302 +000200810002830200020081000283020002008100028302000200810002830200020081 +000283020002008100028302000100810002830200020081000283020002008100028302 +000200810002010201008202000281020083000200028102008300020002810200860002 +000102000281020081000202028201000186010001000201020902840001020002820200 +020302810002010201008202000201020300010282000200810002010282000200860002 +010200020086000201020002000100010282000200810002020203000202820002008100 +028102018101028102008100028102018201020084000201020184010002000202028401 +000100010201820200010101810201820100028102010101010283010001020102010108 +028a00010200020002000200021102810002820201020902810002810201810102860200 +020002010201028501020002000290020001020102010200020001020002000282020002 + +820001000200040181000107010100050182000100810001040102000601810001060181 +000105018100010601810001050101000501830001000103010100050101000401830001 +0001030101000401830001000102018100010c0189000100010001000100020302840001 +0001008400020100028102008200010083000100020a028100021c028300020102840201 +020002820201028202000282020102840200020102830201000201028501020002010201 +028200010201028100020102850102000201020102810002030281000203028100020302 +810002030282000102020281000202028201000203028100020302810002870201020100 +02010283020100010101060203018102010201080281000281020181010242028101021a +020101860201020102010202028101020202810102040281010202028101020102810102 +180283000201020b02810002080281010284020100010285020002010002840201020002 +0102900002010201020100020100010200020002840200020001 +850001000100017f010b0181000102018700010001000100018301020102010208010302 +82010201810102030281010202028101021b028401000201028402010201028202010208 +028101020b02810102010281010205028101020102810102820200020302830002010201 +028100020902010003028100020302010003020100030201008202000281020083000200 +028102008700020001020002008200020084000100010086000102000100020702820002 +008600020002000200820002000100830200020082000200810002810200020001020100 +810200810002810200820002008100028102000100820100028102008200020083000201 +000100850200020102000100820200028302000100010081010281020083000100028302 +000200010002020300020201008102008100020102010081020081000201020100810100 +81000284020100020001000e020100820200028402000200028202010203028101020302 +810102010281000201028100020a02810102810201810102840201020102020283010201 +02820201028102018801020102010201020185010201020102810201 +010081010001008201000181010081000101010100030181000181010083000100018201 +000181010081000182010001820100018101008300010001830100010081000184010001 +000181010083000100018301000100810001840100010001810100830001000182010001 +820100018401000100018401000100018201000186010001000100018101008500010001 +000184010001000186010001000100018601000100010001840100010001120184000100 +010202020101020081010086000200020100020402810002820200020302810002020281 +010213028300010200820001009000010001000200010002000200020001000100830200 +020001008301000200010083020002000100810200820002008200010083000100028102 +008400020001028d02000200010002000100020002008100028102018701020001020001 +008200010285020102000102840201020002030281000203028100020302810002050281 +010203028201020102012202810102820201028202010218028101020402810102040281 +010282020102010281010201028101028102018101028202010207020201040281010201 +020101020284010201020181010201020101020201010902830102000203028100028202 +000204028100020d02010002028100028a02000200020002000201028e02000200020002 +010201020102000281020186010201000100020102870100010200010200 +82000100810001820100017f01090181000102018a000100010001000100010082000102 +03028200010084000100010081000203028100028202000203020100820200022e028101 +020702810102180281010220028100020302810002030201000302810002040283000200 +0203028100020a0281010207028100020802810002820200020302810002040281000204 +0281000203028100020b0281000202028401000200020102810002010281000282020102 +810200810002010282000200810002860201020002000202028300020002010285010200 +02000201028201020001000202820001008100028202010281020002000d028100020802 +01018202010204028101020602820001020f028101020202810102020281010208028101 +028202010283020102018101020102 +010101008101008300010001820100018101008100010301810001010183000100018201 +000101018100018201000182010001820100018201000182010001820100018401000100 +010101810001840100010001820100018201000184010001000182010001830100010083 +000100018301000100830001000183010001008300010001840100010001850100010001 +0083000100018101000100820100018101000100820100018101000100820100010d0183 +020102010301820201020302010101028101021202810102170283000200028102008300 +020002830200020085000102000200820002008100029802000100020002000200020002 +000200020002000200020002820200020102830002000203028100020302810002820200 +028202000202028100028202000282020002030281000203028100020302810002030281 +000202028100020902810002030284010002010203028100020102810002090281000203 +02810002040281000203028100020a02810002040281000204028100020f028101021002 +810102010283010200018101028202010283020001020102010101020101010201010202 +810102070281010208028101020402810002030201010502810102090281010206028600 +020001020002010283000200029c02000200020100010201020002000200010200020002 +01020100020102 +85000100010001820102017f010901810001840100010001830100010201028400010201 +020302810002840200010002030201008402000200020302820100028102008100022602 +81010205028101027f023a02810102820201028202010206028101028302010002110281 +0102820200028302000102830201000284020001000205028101020d0281010203028101 +020702010101028101028202010282020102060281000181010205028301020102040281 +0102020201010102830102010202028801020102010201020186010201020102010001 +820200018701000201000102008300010201010184000100020104018200020082000201 +020185020100010001020182000100810001030182000100810001030183000100010301 +820001008100010201820001008100010201820001008100010201820001008100010201 +020003018200010081000102010200030182000100810001010101008301000201830100 +010081000106018202010282020102810201010101028101028102010201820201020102 +810102840201020102050281010207028101021d02810002020281000207028101020602 +8100027f024c028101021e02810002200202010402830102010206020101050287000200 +020002010202028100020302960102010200020002010001000102000102010200020002 +8302000201 +020082010001020181020101010102040102028201020182010201820102010201010204 +0181020147018100010401830201020102018100010a0181000101018102018e01020100 +010001020100020001000183010001000100840201000200860002010201000282020102 +810200830002010281020083000201028202000203028100020202820100020202810002 +030281000203028200010201028100020302810002840201020002030281000202028100 +020302810002020281000202028100020302810002840201020002020281000203028100 +020202810002020281000203028100020202810002020281000203028100020202810002 +030281000202028100020302810002020281000204028100020202810002020281000203 +028100020302810002030281000202028100020302810002030281000204028100020302 +810002030281000204028100020302810002040281000204028100020402810002040281 +000204028100020402810002020281010284020002000201028100022502030182000201 +810102080283010201020502810002830201000206028100018101028702000201000200 +028e0200010001000102000102010200020002 +020002010102850100020102010201010281000185010201020102820200018101028102 +010201810002810201870102010201000201020181020182010001830102010283020100 +018201020102018100010501810001050181000104018100010401810001050181000103 +010302850102010200010401810201040181000106010102010181000103018100018201 +02010801810201820102018401020102018101020302810102210281010209028101024f +028100020e02810002030281000202028100020302810002030281000203020100020281 +000203028100020302810002030281000203028100020302810002040281000203028100 +020402810002030281000204028100020302810002040281000204028100020402810002 +05028100020402810002040281000205028100028402000200021f028501000100010282 +020102010281000204028301020102020282010201010101028101020702810102010281 +0102010281000202020101020284000201020188010201020001020102 +0100820100010101820200018501000200020101018100028402000200018a0102000102 +000100010201870100020002000102010285000100020001850102000201008a00020102 +0100010001000101019000010002000102010001000100020100018b0100020002010001 +00010001820100018b010001000201000100010002920200020001020002000100020002 +000201000281020081000195010001000100010200010002000200010001000200028102 +0083000100018101008d0001000102010002010002010002870200010200010200830002 +000281020083000200028102008300020002830200010082000200830002000282020002 +850200010200028202000283020002008500010200020084000200020081000283020002 +00840002000200810002830200020086000200020002008a000200020002000200020086 +000200020002008100028102008600020002000200810002810200010001020100820200 +028102000100020201000202030081020002000202010003020100020201000302810002 +030201000202010003028100020202010003020100030201000302810002020202000202 +020002028300020002010283000200020202020002028300020002010281000282020002 +010283000200020102810002820200020102810002820200020102810002820200020202 +820002008100020102820002008100020102810002020281000206028100020702810002 +0b0282010201010183000200020302810102820200018201020103018302010201020181 +000183010002008100018301020001010187020102010200020182010001040181000184 +0100010201010181000183010201028102010001 +8300020001820102018d0102010002010201020102010002010204018600020102010201 +850102010001028102018101028202000281020181010202028400010201028902010200 +010201020102840200020102010283010200020102810102830201000282020102010281 +000181010201028401020002018101020102810002040283000102018101028202000204 +028100020302830002010202028100020302820001020102830102000203028100020202 +8300010201840102000102010284010002010283020100020a0281010212028100020302 +810002020281000203028100020202810002020281000203028300020102820200020202 +810002020281000202028100020302810002020281000202028100020202810002020281 +000203028100020202810002020281000202028100027f022b0281000201028101020602 +01010d028200020101018200010203020101810201100101020801010281010282020102 +8102018201020101018102011101 +8a0200010200010200010002020288010002000200010201860100020001000202028100 +01810100830002010298020001000200010201020002000100020102000100010002018f +010002000200020102000100020001028602000200010002010201008202000201028900 +020002000201000200810002870201000200010002830200020081000201028200020086 +000201020002008200010281020001000202010082020002830200010081000283020002 +008100028102008300020002810200830002000283020002008100028102008600020002 +000200810002810200830002000281020083000200028102000100010282000200810002 +810200830002000281020083000200028102000100010201008502000200020083000201 +000100010201008502000200020084000200020081000281020001000102020001020100 +850200020002008400020002008100028102000100010202000102010083020002008600 +020002000200810002810200010001020100830200020083000200028102000100010201 +008502000200020081000281020001000102010082020002810200010001020100820200 +028102008600020002000200810002810200830002000281020098000200020002000200 +020002000200020002000200020002008100028602000200020002810200830002000286 +020002000200028102008300020002860200020002000286020002000200028302000200 +810002010285000200020002860200020002000284020002000282020002840200020002 +0b0285000100020002030282000102820200020502850102010001008300020102810201 +8101028202010283020102018e0102010001000100010201000100010301810201840100 +01020182010001830102000182010002820200018201000101018a000100020102010200 +0201 +860100020102000183010201028202010282020001030101028301000102010287010201 +020002010201028101028702000102010201020102810002010201010102830001020101 +010102820002018101028402010200028f02010201020100010201020102000102020284 +010200010281020183010200020202850102000201020202830002010283020100020402 +810002020282010002820201020102810002030281000203028100020302810002020281 +000201028301020002030281000284020102000203020100020281000202028100020202 +810002030281000202028100020202810002020281000202028100020202810002020281 +000202028100020202810002020281000202028100020102810002020281000202028100 +020202810002010281000202028100020202810002020281000202028100020102810002 +020281000202028100020202810002020281000202028100020202810002020281000202 +028100020202810002020281000202028100020202810002020281000203028100020202 +810002020281000203028100020202810002030281000282020002820200020302810002 +020281000203028100020302810002030201000402810002040281000204028100020302 +810002040281000205020100040281000205028100020402810002050281000205020100 +820201028202000103018200020182010201010182020001050181000101018100010201 +810001070181000102018100010201810002810201840100010201820100018401020001 +0201020000 +830201000182010002010281000202028201000282020102040284000102000203028200 +020182010002020289000201000102010200020602810002820200020202830002010201 +028301020002030283010200020202840102000102010283010200020502810002860200 +020102000282020002830201000202028101020202810002010281000203028100020302 +820100028602000201000102840201020002040283010200028202000209028100020b02 +810102820200021a028100020c0281000204028100020202810002020281000203028100 +02320281000202028100026b028100022c02810002050281000282020002010281000206 +028100020102810002820200028202000202028100020302830102000201028400020102 +010101810001060181000105010100010181000104018100010501830201000105010102 +810002010281010202028101020002 +010084020102000281020101018500020100010281020183010001028802000201020102 +0002820200028402010200018c0102000201020100020102000281020182010002820200 +020202840002010002020281000282020001840102010002860200010201000282020002 +020281000282020002010285000201000102820200028302000102820200028302000102 +850200020001028202000282020002010283000200020102830002000283020102008100 +018101028102008100020202010003020100030201000202010002028300010002010201 +000202830002000284020002000201020100030201000202010002020100030281000202 +028100028402010200020202810002020281000202028100020202810002010201000202 +010002020100020201000202810002010201000202010002020100020201000202010001 +028300020002840200020002840200020002840200020002840200020002840200020002 +840200020002840200020002840200020002840200020002840200020002820200028402 +000200028402000200028202000282020002840200020002840200020002010283000200 +028402000200020102830002000201028300020002010283000200020102830002000201 +028300020002010201000302830002000202020100030283000200020202830002000202 +020100040283000200020402810002040281000205028100020502810002050281000282 +020102020281000208028100020202810102010281000106018100010601810001070181 +00010201030282000102060281000204028101020002 +010001028700010201000100018301020001830100020081000284020100010281020082 +000201840100020100010001018100020102020081020184010002010082000102860200 +020002000201028100028102008400010200028c02000200020102000200010002860200 +020001000282020002810200840002010002810200810002820200028102008100020102 +820002008500020001020001008402010002008100028302000200010083020002000100 +830200020001008302000200010083020002000100830200020001008302000200840002 +000200010083020002008400020002000100810200020083020002008400020002008400 +020002000100810200020081020002008102000200810200020081020002008102000200 +810200020081020002008102000300810200020081020004008102000300810200030081 +020003008102000300810200030081020003008102000300810200020081020003008102 +000200810200020081020002008102000200810200020081010002008102000200810100 +010081010002008301000100840001000100020081010001008302000200840001000100 +010083010002008400020002000100830200020001008302000200010083020002000100 +830200020001008302000200010083020002000100820200028102000100830200020001 +000102820002000100820200028102008100028202000281020001000102820002000100 +010281000284020002000283020002008300020002010283000200020102810002810200 +010001028100028102000100030281000201028300020002820200020102010085020002 +010001810100830001000182010001810100830001000182010001010102008102018201 +0002010283000200020202830002010081000201028100020202 +8100012c0181020108018102010601010202018302010201010181020181010201020401 +010282010201010105020101030281010203020101810201810102810201010182020102 +04028101020702810102010281010206028101027f023b025d0162028101020202820102 +01010183020102018101028402010201022802 +010005018200010081000104018200010081000104010200050102000501020004010200 +040182000100810001030101000501010004010200030102000301020003018300010001 +020102000301020002018200010081000101018300010001010183000100010101840001 +000201830100010081000183010002008100028302000200830002000282020002830200 +020081000284020002000283020002008300020002820200028402000200028302000200 +840001000200020082020100010001020200010202000102020001020200010202000102 +020001020200010202000102020001020200010202008102008400020002000100010202 +008102000200810200020081020004008102000200810200030083020002008400020002 +008400020002000200810200020081010002008101000200810100020081010002008101 +000200810100010081010002008301000100810001810100020081010002008701000100 +010001008300010001810100840001000100010083010001008100018301000100830001 +000181010083000100018101008300010001810100810001830100010081000282020002 +810200810002830200020001008302000200010001028200020001000102840002000200 +860002000200020081000281020082000200810002850200020002008100028102008100 +020102810002810200810002820200020102010001020100020201000102830102000201 +028100028402000200028402000200028502000200020081000201028300020002820200 +020202010002028100020302010084020002000202020100820201008100020202 +010181000101018100010301810001010181000103018100010101810001020181000101 +018100010301830001000103018100018201000102018100018201000106018100010401 +810001050181000104018100010501810001040181000104018100010401810001030181 +00010401810001030181000103018100010401810001020181000103018100012f018102 +010201810201050181020181010264027a0166028101020a028101021b02 +810001030183000100010501830001000104018300010001040183000100010401830001 +000104018300010001030183000100010101810001860100010001000184010001000186 +010001000100010101820001008100010101850001000100018601000100010001860100 +010001000186010001000100018101008300010001860100010001000181010083000100 +018101008300010001810100830001000181010083000100018201000182010001840100 +010001810100830001000184010001000181010083000100018401000100018401000100 +018201000184010001000184010001000183010001008400010001008400010001008400 +010001008400010001000200830100010084000100010002008101000200810100030081 +020082000100020081020082000100840002000200820001008200020003008302000100 +030081020004008102000400810200040081020002008102000100820201000100010102 +008101000200810100010001010200010102000101020001010200020101000201010002 +010100020101000301810001020101000301810001020181000103018100010201010003 +010100030101000301010003010100030101000301020003010100030202000302020003 +020200030283000200020202820002008100020202820002008100020202030003028200 +020081000203020300030283000200028102008100028102008300020002820200028102 +008300020002820200028802000200020002000202020100840200020002010282000200 +810002820200020202850002000200020002 +060102000601020005010200050102000501020005010100050102000401020004010100 +040102000301020004010100040101000401010003010200030102000201020002018300 +010001010183000100010101020002010200010182000100810001830100010081000181 +010001000101820001008400010001008300010001810100840001000100840001000100 +010001010200010102000101020001010200820201000100820201008100018201020081 +000101010100010102008202010001000101010082020100010001010200820102000100 +810100010001010200810100020081020001008102000200830100020005008102000100 +830200020082000200840002000200010083020001008200010084000100010084000100 +010001008301000100840001000100840001000100820001008600010001000100860001 +00010001008400010001008400010001008600010001000100880001000100010001008a +00010001000100010001008a000100010001000100010081000183010001008100018301 +000100810001830100010081000183010001008100018201000181010081000183010001 +008100018201000181010081000182010002810200810002820200028102008100028202 +000281020081000282020002810200810002010281000281020081000282020002010201 +000102810002010201000102810002010201000202810002010201000202810002010201 +000102810002020281000202028100020202810002010281000202020100020281000202 +0281000202028100020202830002000283020100020102 +7f017f0127018100010a0181000101018100010101820200010101860001020102000101 +018100010201810001020181000101018100010201810001010181000102018100010201 +810001020181000102018100010201810001020181000102018100010201810001020181 +000102018100010301810001020181000103018100010301810001020181000103018100 +010301810001030181000103018100010401810001040181000103018100010401810002 +810201010184020002010281020183010200010101810201830100010201028401020100 +0202028101028f0200010201020102010200020102010201028100020202810102010282 +000102830201020101018100010601830001020102018602010201000201810102870201 +020102000201810102840201020102820200020002 +820100010201010002018100010201810001020181000101010100030181000101018100 +010201810001010181000102018100018101008100010101810001010181000101018100 +010101810001010181000101018100010101810001820100010101810001810100810001 +820100018101008100018201000181010081000101018200010081000182010001820100 +010101820001008100018201000182010001820100018201000182010001820100018201 +000182010001830100010081000183010001008100018401000100018301000100810001 +830100010084000100010084000100010081000184010001000184010001000181010001 +008301000100840001000100840001000100840001000100840001000100820001000300 +810100840001000100820001000300810100820001000300810100020081010001008101 +000500810100070081010006008101000700810100060081010006008101000300810100 +820001000300810100020081010082000100030081010084000100010084000100010084 +000100010082000100020081010002008301000100820001000200830100010084000100 +010084000100010081000183010001008400010001008100018301000100830001000181 +010083000100018201000182010001820100018301000100810001820100018201000101 +018300010001010182000100810001840100010200810002820200028102008d00010200 +020100020102000201008200020183010002008300020102840200020002810201840100 +010200840001020002840201000102830201000181010081000102018100018201000103 +018100018201000102018100010101810001030181000181010081000102018100010101 +0100040181000101018100010301810001010101000101 +040102000101810001020102008201000103010100820100010301020082010001020102 +008201000102018200010081000102010300040102000301010082010001020102000301 +010082010001010182000100810001010101008201000186010001000100018101000200 +010185000100010001810100020083010001000100830100010001008301000100010083 +010001000200010182000100820001000100850100010001008100018101008100010101 +020001010200010102000101020001010200020101000101020001010200010102008101 +000200810100010001010200810100030081010006008101000100010101000101020001 +010200810100010001010200810100010001010200810100010081010005008301000100 +010081010084000100010001008301000100820001000100010102008301000100820001 +000100010102008301000100840001000100820001008400010001008400010001008400 +0100010084000100010084000100010086000100010001008400010001008a0001000100 +0100010001008a0001000100010001000100830001000181010093000100010001000100 +0100010001000100010001010183000100014c0181020102018302010201010181020184 +010201020102018302010201820102010301830201020101018102010201810201010181 +02018201020104018102010d01 +820100018401000100010101810001020102000201810001830100010081000101018100 +018101008100010201810001810100010002018200010083000100010101820001000100 +01018100010101010002018100018101008100017f016001810001020181000101018100 +010101810001010181000102018100010101810001010181000101018100010201810001 +010181000102018100010101810001020181000101018100010201810001020181000101 +018100010201810001020181000102018100010201810001020181000102018100010201 +810001030181000102018100010301810001030181000102010100030101000101020085 +010001000100010083010001008600010001000100010001018300010001860100010001 +000185010001000100830001000186010001000100010101850001000100010101830001 +000182010001840100010001820100018301000100830001000101018200010083000100 +010101820001008100018201000101018300010001820100010101810001820100010101 +8100010101830001000101018100010101810001820100010101810001 +4b0181000101018100018101000100010181000181010081000182010001810100810001 +830100010001000101820001008100010101820001000100830100010081000182010001 +810100810001810100020083010001000100830100010081000183010001008400010001 +000100830100010081000181010002008301000100820001008600010001000100840001 +000100840001000100820001000200810100020081010003008101008200010003008101 +008200010003008101000200810100820001000100810100060081010001008101000700 +810100820001000f0081010010008101000e008101000a00810100060081010082000100 +060081010003008101008200010003008101000200810100820001000200830100010082 +000100030081010001008301000100820001000200830100010084000100010001008101 +000200830100010001008301000100010083010001008100018301000100010089010001 +000100010001000100820100018101008100018301000100010082010001810100810001 +820100018101008100018201000181010001000101810001810100810001820100018101 +000100010181000181010001000101810001840100010001820100018101000100020181 +000181010083000100018201000181010001000201810001830100010081000182010001 +010101008201000182010001010101008201000101018100010101010082010001010181 +0001 +820100010101870001000100010001020101008401000100010201020082010001030101 +000101810001010101008401000100010101020082010001020101008201000102018200 +010081000101010200820100010101010082010001010101008201000101010200820100 +018101000100030101008201000181010002000101030001010200830100010002000101 +030001010100870100010001000100820001000100810100020083010001000200810100 +020081010002008101008400010001000200010102008101000100010102000101020081 +010001000101020081010001000101020081010001000101020081010001008101000b00 +810100010081010001008101000100010102008101000100810100010081010001008101 +000f00810100010081010001008101000100810100020081010001008101000100810100 +020081010001008101000100830100010004008101000700810100030081010084000100 +010082000100010001010200830100010082000100020081010002008101000200810100 +010085010001000100840001000100820001000100870100010001000100010083010001 +000100810100010083010001008200010085000100010001030181000104018100010301 +8100017801 +820100018101008100010101810001860100010001000182010001830100010081000101 +01870001000100010001820100018301000100810001880100010001000100018d010001 +00010001000100010001008100018301000100850001000100018101008a000100010001 +000100010084000100010084000100010086000100010001008400010001000100850100 +010001000100830100010001008301000100010087010001000100010001008101008200 +010001008101008600010001000100010081010002008101000200810100020081010002 +008101000300810100020083010001000400830100010004008101008200010082000100 +040081010001008101008200010082000100010081010029008101002500810100810001 +010181000101018100017701870001000100010001830100010081000186010001000100 +018601000100010001820100018101008100018201000181010081000182010001840100 +010001820100018101000100010181000181010001000101810001810100010002018500 +010001000101018100018101000100020181000183010001008100018201000181010083 +000100010101810001010183000100010101810001010101008201000101018100010101 +82000100810001 +830001000102018100018401000100010201810001820100018201000101018100018401 +000100010101810001840100010001010181000182010001820100018301000100830001 +000185010001000100810001820100018101008100018201000181010086000100010001 +000100010181000181010001000101820001008100018501000100010084000100010001 +008301000100010001018200010081000183010001008400010001000100830100010001 +008501000100010082000100010081010002008301000100810001810100010087010001 +000100010001008501000100010003008101008200010082000100820001008200010003 +008101000100810100820001000100840100010001020181000101018100010101810001 +010181000101018100010101810001480181000181010001008101000100810100060081 +010001008101000100810100010081010001008101000200810100010081010001000101 +020081010001000101020081010001000101830001000181010001008101000200810100 +020081010001000101020002018300010001810100010001010300010102000201020001 +018200010081000101010200020183000100010101020003018300010001010102000301 +010082010001010101008201000102010300030102000301010082010001020101008201 +000102018200010001000401030004010200040101000101810001030101008201000105 +0182000100010006010100810100 +810001030181000181010001000301810001810100010003018100018101008300010001 +820100018101008300010001010181000181010081000102018200010001000201820001 +008300010001830100010001000201010081010081000182010001810100810001010182 +000100810001010185000100010001830100010081000101010200010182000100810001 +830100010001008301000100010001010200010182000100810001810100010002010200 +840100010001030181000134018100010101020081010001008101008200010082000100 +010081010082000100020081010084000100010082000100030081010001008101000100 +810100010081010028008101000100810100010081010001008101000100810100010081 +010001008101000100810100010081010001008101000100810100010001010100010102 +008101000100010102008101000100010102008101000100010102000101020001010200 +010102008401000100018301000100810001810100010001010100820100018101000100 +010103000101020002010200020103000101030001010300020103000201010082010001 +010103000301020003010300020182000100810001030103000301010082010001030101 +008201000103010300020181000184010001000104018200010081000103010200820100 +0105010200820100010201 +830001000182010001010187000100010001000102010100840100010001020102000101 +810001010101008401000100010101020005010100050101005401810001020181000102 +010100830100010082000100020083010001008200010002008101000100010102008101 +000300810100840001000100010081010082000100010081010006008101000100810100 +0100810100090081010001008101000100810100010081010002008101000f0081010021 +008101003200810100820001000100810100030081010082000100030081010082000100 +020081010001008301000100840001000100840001000100840001000100840001000100 +8a0001000100010001000100840001000100810001830100010084000100010001008301 +000100010001010300830100010001000101820001008100018301000100010001018100 +018101008100010101020082010001860100010001000182010001840100010001820100 +018401000100018201000181010081000102018500010001000101018100018401000100 +010401010006018100012101 +010003018100010201810001030181000101010100020101000201810001020181000101 +010100030181000101018400010001008100018101008200010001000201860001000100 +010001008501000100010002008301000100010081010082000100010083010001000500 +810100020001010200830100010001008201000181010083000100018101008400010001 +000100830100010001008301000100020001010200810100820001008200010084000100 +010084000100010002008101000100810100020081010002008101008200010003008301 +0001000400810100010081010001008101000a0081010001008101000100810100010081 +010001008101001600830100010026008101002500810100820001008200010008008101 +008200010082000100030081010082000100030081010002008101008200010084000100 +010002008101000200810100860001000100010088000100010001000100890001000100 +010001000102018100015e01810001030183000100010301810001010183000100010201 +81000181010001000201810001840100010001030181000103010100 +020183000100010101010002010100030181000102010100010101000201830001000182 +010001020101000101010002018100010101810001010101000101810001010185000100 +010001010183000100018201000181010081000181010081000182010001810100810001 +820100018101008100018201000182010001010182000100810001830100010081000182 +010001820100018101008200010084000100010081000181010002008301000100810001 +810100010001018200010084000100010084000100010082000100020081010002008401 +0001000185010001000100010083010001008a0001000100010001000100020081010001 +008101000100810100050081010001008101000100810100080081010001008101000200 +810100020081010003008101000800810100260081010004008101000100810100010081 +010001008101000100810100810001810100820001000100010101000101010001010100 +010101000101010001010200810100010001010100010101000201010001010100020101 +000201010002010100010101000201020002018100010201010002010100010182000100 +820001008200010001008401000100018101000300810100030083010001008200010082 +000100020083010001008300010001810100010082010001810100010001018500010001 +000182010001840100010001820100018401000100018201000183010001008100018201 +000183010001008100018201000183010001008500010001000181010081000102018100 +018601000100010001840100010001810100810001820100018201000101010100030181 +0001 +810001820100010201010001018300010001010101000101810001820100018601000100 +010001820100010101810001840100010001810100830001000182010001810100010082 +010001020101008101000100810100830001000182010001810100010081010082000100 +010081010082000100010081010082000100820001000100820100018101008100018301 +000100010083010001008100018201000181010082000100830001000182010001810100 +020081010083000100018401000100018201000181010001000101820001008700010001 +000100018101000100810100840001000100010081010002008101000600810100010081 +010086000100010001000100810100010085010001000100010081010001008101000100 +810100020083010001000100810100010081010004008101000100810100010081010082 +000100010081010004008101000400810100170081010004008101000100810100820001 +000100810100010081010001008101000100850100010001008200010001008101000100 +810100010081010001008101000100810100820001000100810100030081010001008101 +008200010084000100010004008301000100010001018300010001840100010001840100 +010001820100010201010002018300010001010101000201830001000101018300010001 +010183000100010101830001000101018300010001010182000100810001010182000100 +810001010181000181010081000101018200010081000101018100018201000104010200 +040101000601010006010100060101000501030005010100080101000201810001030101 +0002010000 +010181000182010001820100010101010082010001010181000101010100820100010101 +810001010183000100018201000101018300010001820100010101810001840100010001 +010185000100010001810100850001000100010101830001000188010001000100010001 +820100018101008100010101850001000100018301000100810001820100018201000101 +018100018201000182010001820100018101008400010001000100810100860001000100 +010088000100010001000100860001000100010082000100020083010001008200010084 +000100010001008101008400010001000100810100840001000100010081010082000100 +010081010082000100020081010001008101000100810100820001000300810100010081 +0100030081010002008101005600810100080081010001008101000c0081010001008101 +000100010101000101020081010001008101000100810100010081010084000100010001 +008101000200810100010081010002008101000200810100020081010002008301000100 +810001810100020001018200010082000100830001000183010001008100018101008300 +010001820100018201000181010083000100010101810001820100010101010082010001 +020181000182010001010181000182010001020181000182010001020181000182010001 +020181000181010081000101010100010181000102018100010101010003018100010101 +810001020181000101010100010101000201810001820100010101830001000181010001 +0003010100 +010002018100018201000181010081000182010001010185000100010001820100018401 +000100018601000100010001810100810001820100018801000100010001000182010001 +810100010001018100018201000182010001810100820001008100018301000100830001 +000186010001000100018301000100860001000100010083000100010101810001010186 +000100010001008400010001008100018101008100018301000100860001000100010081 +000183010001008400010001008200010001008301000100840001000100010081010002 +008101008400010001000100810100820001000300830100010004008101000100810100 +010081010001008101000100810100050081010007008101000800810100530081010008 +008101000800810100010081010001008101000100850100010001000100810100010081 +010001008101000100810100020081010001008101000100810100010001010200010102 +008101000100030181000102018100018201000184010001000102018100018201000181 +010001000201020002010200010182000100810001010102000201030002010300020103 +000101850001000100010101820001008100010201010082010001020101008201000102 +010100810100810001010181000181010081000103010100010181000102018500010001 +000103018500010001000103018100018401000100010201830001000101018100010101 +82000100 +810001840100010001010101000301010002010100020102000101010002010100020101 +000201810001010181000102018100010101810001010101000101010002018100010101 +810001010181000181010081000181010081000181010081000182010001010187000100 +010001000101010400810100840001000100010001010100830100010009008101008200 +010002008101000a00810100820001000100810100090081010002008101000b00810100 +040081010014008101007f001d0081010082000100010001018200010082000100810001 +840100010001010181000106010200010102000101010083010001000200010102000101 +820001008100018101000100020102000201030001010100820100018101000100820100 +018101008300010001010101008201000101010100820100010101820001000100020101 +008101008100010101820001000100020185000100010001020101008101008100010201 +850001000100010201840001000100810001020184000100010081000103018400010001 +0081000103018400010001008100010101810001 +810001010182000100820001008300010001820100018201000182010001840100010001 +840100010001830100010085000100010001020101000101810001010182000100830001 +000102018200010081000101018200010001000201020082010001020101008201000101 +01030002010100820100018c010001000100010001000100018101000200010103000201 +020001010300810100020001018200010082000100010001010100830100010001008101 +000200010184000100010001008101008400010001000100810100020083010001000300 +810100010081010001008101000100810100010081010023008101004200810100820001 +000100810100820001000100810100820001000100810100810001810100820001008100 +018101008100018101008200010081000101018100010101810001810100810001810100 +810001010181000101018100010101010081010002000101020081010002008101000900 +810100030081010082000100020083010001000100810100020081010082000100820001 +000300810100010083010001008200010082000100820001000100810100030085010001 +000100820001008100018101008600010001000100810001830100010083000100018101 +00850001000100018301000100810001820100018e010001000100010001000100010001 +820100018301000100810001820100018601000100010001820100010101830001000184 +01000100018201000186010001000100010201010082010001 +010102000701810001860100010001000102018200010083000100010201030082010001 +850100010001008800010001000100010083000100018101000200820100018101008200 +010001000101820001000200010182000100860001000100010002008301000100010001 +018200010003008101000100010104008101000200810100860001000100010003008101 +000200810100020081010002008301000100820001000200810100020081010001008101 +000200810100030081010082000100820001000200810100090081010001008101000100 +8101000f008101004d008101008200010082000100040081010007008101000400810100 +040081010004008101000200830100010001008101000100810100010081010001008301 +000100820001008200010001008101000100810100030081010082000100010081010002 +008101000100010102008101000200810100020081010002000101030081010002000101 +820001008100018101000200810100030081010082000100810001810100020001010400 +010183000100018301000100020083010001000200820100018101008500010001000181 +010001008201000101010100010181000102010100010181000103018100018201000103 +01010001018100010301010008010100080101000701 +830001000182010001020103008401000100010201010082010001820100010101010081 +010001000301030082010001010103008201000101010300820100010101850001000100 +010101040002018200010001000101820001000100010104000101040081010003000101 +020082010001810100020001010200010182000100810001810100010001010300810100 +020001010200810100010001010200010102008101000200810100010081010001000101 +020081010001008101000100010101000101010081010001008101000100810100810001 +810100820001000100810100810001810100820001008100018101008200010081000181 +010082000100820001008200010081000181010082000100820001008200010007008101 +008200010009008101008200010082000100820001008100018201000182010001810100 +820001003600810100130081010007008101008200010005008101000300810100820001 +00820001000200810100840001000100840001000100010083010001008a000100010001 +000100010001008601000100010001810100020083010001008600010001000100010082 +010001840100010001810100820001008100018301000100850001000100018301000100 +810001850100010001000100830100010002008201000183010001008300010001020183 +000100018201000101018100018201000182010001010181000181010083000100010301 +810001810100830001000102018100010101010082010001 +810001020181000186010001000100010101810001820100010101830001000184010001 +000101018200010001000101810001810100830001000182010001820100018201000101 +010200010181000183010001008300010001820100018101000100010182000100850001 +000100018201000181010081000181010084000100010001008201000181010001008301 +000100010083010001000100010105008101000800810100020081010002008101000700 +810100020081010006008101008200010007008101002a00810100820001000400810100 +07008101008200010010008101002c008101000a00810100040081010082000100010081 +010082000100040081010001008101000100810100820001000100810100010001010100 +010101000101010001010200810100810001810100010081010001000101020081010002 +008101008400010001008400010001000100010102000101820001008400010001008400 +010001000100010103008201000181010081000181010083000100010101010084010001 +000181010081000101010300010182000100010002018500010001000101018300010001 +030183000100010301830001000102018200010002000101810001810100830001000101 +018200010001008201000101018100018601000100010001820100010101850001000100 +01020181000186010001000100010101 +810001020181000184010001000101010400030101000101840001000100810001810100 +820001008200010086000100010001000100850100010001000200810100840001000100 +020001010400810100010001018200010084000100010084000100010003008101000500 +810100820001000200810100020081010003008301000100020001010100830100010081 +000183010001000200810100820001000200850100010001008200010084000100010001 +0083010001000400810100820001000100810100010081010001008101000a0081010007 +008101007f001500810100130081010014008101000e0083010001008100018101008200 +010002008201000181010001000201010082010001810100010001010300020103000101 +820001008100010101030002010300020101008101008100010101020083010001008100 +018901000100010001000100030001018200010002008501000100010002008201000184 +010001000184010001000184010001000182010001820100010301820001008300010001 +030181000181010001000101 +830100010001000101810001030102008201000103010100810100830001000103010200 +010181000185010001000100010003018200010001000301030082010001020182000100 +810001010185000100010001840100010001820100010101810001820100018601000100 +010001830100010081000183010001008100018101000100890100010001000100010003 +008101000300810100010085010001000100820001000100810100820001008200010002 +008101000100810100050081010002000101010081010082000100030081010007008101 +000100810100820001000200810100030081010008008101000d00810100840001000100 +8200010045008101000a0081010011008101000100810100080081010001008101000100 +810100020081010082000100010081010001008101000100810100010001010200830100 +010082000100020081010001000101020081010008008101000400810100030081010003 +008101000100810100040081010082000100020083010001008500010001000181010082 +000100810001810100850001000100018101008200010081000101018200010083000100 +018801000100010001000183010001008100018201000184010001000181010081000101 +018700010001000100010201820001000100010101000101010081010001008401000100 +0184010001000182010001 +010185000100010001010181000101010100830100010002000101010005018400010001 +008400010001008100018301000100020001018200010003000301040001010200810100 +810001010185000100010001830100010002000101010081010081000181010082000100 +010081010001008301000100830001000101018200010082000100830001000181010002 +000101030001010300810100010001010300810100020081010006008101000200810100 +010081010082000100020081010001008101001400810100180081010039008101008200 +010082000100820001008200010082000100820001000300810100810001820100018201 +000182010001820100018201000181010082000100810001820100018101008100018101 +008200010004008101008200010001008101000100810100010081010081000181010082 +000100010081010001000101020001010100010101000101010001010200010101000201 +010001018300010001010101000201020002010100020102000201020002018300010001 +010102000201040001010400010104000101020081010081000181010082000100010002 +010400020102008101008100018301000100010082010001810100810001810100010003 +018100018101008300010001010181000181010083000100010301870001000100010001 +020181000181010083000100010301 +810100820001000200030185000100010001010181000101010400810100020001018100 +018101008300010001020102000101020001018100018101000200010184000100010081 +000183010001000300810100820001000100010101008101000100010182000100010001 +018200010001008101000300010104008101000300810100030081010003008101000200 +8101000d008101000f008101000100810100010081010005008101000100810100010081 +010001008101008200010001008101000100810100820001000400810100820001000d00 +81010009008101000600810100060081010008008101008200010082000100820001003b +008101000900810100040081010001008101008200010001008101000100810100010081 +010001008101000100010101000101010001010200010184000100010082000100030001 +010200010102000101010083010001008300010001810100020001010100820100018101 +008300010001810100010002010300020102000201020082010001010181000182010001 +010181000182010001020182000100810001020102008201000101010200010181000102 +018200010083000100010101840001000100810001030182000100020006010300060185 +0001000100010501810001 +010002018100018101000200020182000100030002018100010101010003010200010103 +000401830001000182010001810100810001820100010101020001010100840100010001 +020182000100810001010181000181010081000183010001000200010105008301000100 +0a008101008200010082000100030081010082000100820001000d008101000500810100 +0300850100010001002f00810100070081010071008101001a0081010001008101000800 +810100010081010001008101000100810100010081010002008101000100810100060081 +010002008101000200810100010001010200840100010001850100010001008100018101 +008400010001000100820100018101000200010103000201820001008100018101000100 +820100018101008200010081000101010300030102008201000101010200820100010201 +010081010081000102010100820100010301040005010100810100810001040104000501 +010084010001000104010100810100 +040001018200010001008101000100810100810001810100010081010081000182010001 +810100810001010104000101810001830100010081000181010083000100018101000100 +010101008101000200810100820001000100810100010083010001008200010001008101 +000200810100030082010001810100030001010500810100020081010003008101000800 +810100030001010300810100820001008200010082000100020081010003008101000b00 +8101000a008101007f003c00810100120081010004008301000100040083010001000200 +810100020083010001000500810100030081010001008301000100010001010400810100 +010088010001000100010001810100010082010001810100010082010001830100010002 +008101000200810100810001810100010001018400010001000100810100810001810100 +020082010001010182000100810001820100010101820001008100018201000182010001 +010101000101810001010185000100010001820100010201810001010181000182010001 +01018100010001 +810001010184000100010082000100020082010001810100830001000101018600010001 +000100810001010183000100018201000104010100870100010001000100810001010181 +000182010001820100018101008200010001008101000600810100820001000100850100 +010001000200830100010084000100010082000100880001000100010001000300830100 +010001008101000100830100010004008101000100810100050081010082000100060081 +010005008501000100010002008101007f003c0081010001008101000e00810100140081 +010001000101840001000100020081010002008101008400010001008300010001810100 +020081010082000100820001000200010104008101000100810100020081010001008101 +000100810100010081010001008301000100020081010082000100020001018200010002 +000101020001010200810100880001000100010001008300010001810100010001010100 +010182000100810001810100010082010001020181000183010001008100018101008100 +010101020082010001010101000101 +810001810100030001018100018101008200010082000100810001850100010001008500 +010001000183010001000100810100850001000100018101008300010001810100030002 +018100010201820001008100018101008100010101820001000100010105000101030081 +010082000100010081010084000100010002008101000400810100020001010400810100 +03008101000200810100820001000e008101000a00810100820001000a00810100010081 +01001c008101007f00260081010033008101000500810100010081010002000101040083 +010001000800830100010002008301000100020081010001008101000100820100018101 +000400850100010001000200810100820001008900010001000100010001860100010001 +000182010001810100810001830100010081000102010100020102000101010001018500 +0100010001010183000100018101008300010001 +850001000100018101000200850100010001008200010081000185010001000100860001 +000100010084000100010085000100010001810100020001018100010301010081010002 +000101810001840100010001810100010081010001000101010081010004008201000181 +010001008101008200010004008101000300010102008101000f0001010c008101007f00 +710081010027008101000600810100060081010082000100020081010001008301000100 +840001000100820001008400010001000100810100880001000100010001008200010001 +008501000100010001008301000100010082010001810100840001000100810001010103 +00810100810001810100820001000200820100018101008300010001820100018101008e +000100010001000100010001000100820001008300010001810100010001010100010181 +00010101 +050001018400010001000400810100040081010081000101018200010001008101000200 +810100010002010100810100020001018300010001820100010101010084010001000101 +010200810100070081010001008101000200820100018101000200810100030081010084 +000100010004008101000e008101000100010103008101000f0081010009008301000100 +06008101000d0081010030008101007f0003008101000400830100010004008101008200 +0100080081010082000100010001010a0083010001000700830100010001008101008200 +010081000181010005008101008200010002008101008400010001000400810100020081 +010001008501000100010082000100020081010082000100010083010001008400010001 +008200010002008101008200010081000185010001000100010082010001830100010003 +008201000182010001830100010002008101008300010001820100018201000101018300 +010001820100010101 +0201820001008300010001010181000101010b0081010003008101000800010101008101 +000500810100070082010001830100010001008101008200010081000183010001008100 +018101008200010003008101000400010104008101000400810100070081010003008101 +00080081010021008101007f0068008101000a0081010003008101000800810100020081 +010001008101000300830100010001008301000100090081010004008101000200830100 +010003008301000100840001000100050081010082000100820001000100830100010002 +008201000182010001830100010081000101018100018401000100018101008100018201 +000101010100810100870001000100010001010181000182010001810100820001008100 +01840100010001820100010101 +820001008200010004008101000100010102000101040083010001000200830100010004 +008501000100010002008301000100820001000300810100010081010005008301000100 +010083010001000200810100820001000100810100020081010006008101001600810100 +0c008101000b00810100010081010002008101000200810100050081010002008101000b +008101000e008101005100810100820001008200010064008101001c008101000a008101 +008200010006008101000600810100820001000800810100010081010001008301000100 +010085010001000100030081010003008101008200010001008101008300010001010101 +008101000200830100010081000182010001840100010001830100010001008401000100 +018201000184010001000101018300010001820100018101008200010081000185010001 +000100 +840001000100820001008100018101000100020182000100010085010001000100020081 +01000400810100820001008200010001008101000a008101000200010101008101000500 +810100030001010700810100010081010001008101000200810100820001000b00810100 +080081010005008101007e00840100010001840100010001810100010082010001040181 +0001140182000100820001003e0083010001000f00830100010007008101003800810100 +100081010003008101000400810100070081010006008101000300810100010002010500 +820100018101000300820100018601000100010001820100010101010001010300860100 +0100010001010102000101820001008300010001 + +% +% Compression made this file 28.14% of the uncompressed size. +% + + +showpage + +% stop using temporary dictionary +end + +% restore original state +origstate restore + +%%Trailer + +cleartomark +countdictstack exch sub { end } repeat +restore grestore +% +% End Imported PIC File: frame3.eps +%%EndDocument +% +% Polyline +60.000 slw +n 2430 7110 m 4230 7110 l 4230 8280 l 2430 8280 l + cp gs col6 s gr +$F2psEnd +rs diff --git a/.svn/pristine/57/57ed52c79a6f3e77f2dac6a337335ea4d4bb12cd.svn-base b/.svn/pristine/57/57ed52c79a6f3e77f2dac6a337335ea4d4bb12cd.svn-base new file mode 100644 index 0000000..9c9c967 --- /dev/null +++ b/.svn/pristine/57/57ed52c79a6f3e77f2dac6a337335ea4d4bb12cd.svn-base @@ -0,0 +1,28 @@ +/** + * @file + * @brief IO for .frames files. + * + * @author Thomas Escher + */ + +#ifndef SCANSERVER_FRAME_IO_H +#define SCANSERVER_FRAME_IO_H + +#include "scanserver/frame.h" + + + +/** + * @brief This class handles the serialization of .frames files and saves/extracts the contained Frame instances. + */ +class FrameIO +{ +public: + //! Loads a frames file and fills the given shared vector + static void loadFile(const char* dir, const char* identifier, FrameVector& frames); + + //! Saves a frames file from a shared frames vector + static void saveFile(const char* dir, const char* identifier, const FrameVector& frames); +}; + +#endif //SCANSERVER_FRAME_IO_H diff --git a/.svn/pristine/57/57eefc462da226f100533b1216aca6be78873c03.svn-base b/.svn/pristine/57/57eefc462da226f100533b1216aca6be78873c03.svn-base new file mode 100644 index 0000000..05eb7ae --- /dev/null +++ b/.svn/pristine/57/57eefc462da226f100533b1216aca6be78873c03.svn-base @@ -0,0 +1,159 @@ +/* + * numberrec implementation + * + * Copyright (C) Jan Elseberg, Dorit Borrmann + * + * Released under the GPL version 3. + * + */ + +#include +#include +#include +#include +#ifdef HAVE_GETTIMEOFDAY +#include +#endif +#ifdef HAVE_UNISTD_H +#include +#endif + +extern "C" { +#include "gocr.h" +#include "pnm.h" +#include "pgm2asc.h" + +#include "pcx.h" +#include "ocr0.h" +#include "progress.h" +#include "version.h" +#include "config.h" + +} + + +char filter[] = "0-9"; +/*void my_test() { + int multipnm=1; + job_t job; + + while (multipnm==1) { + job_init(&job); + + job.cfg.out_format=XML; + job.cfg.cfilter = filter; + job.src.fname = "patch00000.pgm"; // TODO + + multipnm=readpgm(job.src.fname, &job.src.p, job.cfg.verbose); + + if (multipnm<0) break; + + pgm2asc(&job); + + int linecounter = 0; + const char *line; + + linecounter = 0; + line = getTextLine(linecounter++); + while (line) { + //fputs(line, stdout); + //Interpret line here + + line = getTextLine(linecounter++); + } + free_textlines(); + job_free(&job); + } + return; +}*/ +#include "math.h" +#include +using std::string; + +#include "shapes/sickday.h" + +bool gocr_recognizeNumber(string &filename, int &number, double &probability) { + int multipnm=1; + job_t job; + JOB = &job; + + double probabilities[1024]; // should be plenty + + probability = 0.0; + number = -1; + + // this while should be unnecessary + while (multipnm == 1) { + job_init(&job); + + job.cfg.out_format = XML; + job.cfg.cfilter = filter; + + //job.src.fname = filename.c_str(); + char fname[1024]; + strcpy(fname, filename.c_str() ); + job.src.fname = fname; + + multipnm = readpgm(job.src.fname, &job.src.p, job.cfg.verbose); + + if (multipnm<0) break; + + pgm2asc(&job); // recognize numbers + + int linecounter = 0; + const char *line; + linecounter = 0; + line = getTextLine(linecounter++); + while (line) { + //fputs(line, stdout); + //Interpret line here + int width = 0; + int height = 0; + char num; + int nr_alt_c = 0; + + int iprob = 0; + + sscanf(line, "%d %d %c %d", &width, &height, &num, &nr_alt_c); + + if (nr_alt_c > 0) { + sscanf(line, "%d %d %c %d %d", &width, &height, &num, &nr_alt_c, &iprob); + } + + + // check if this if a number, and if it is wether it is large enough +// if ( (fabs(width) < MIN_NR_WIDTH || fabs(height) < MIN_NR_HEIGHT || num < '0' || num > '9') + if ( num < '0' || num > '9') { + line = getTextLine(linecounter++); + continue; + } + if ( num == '1' && (fabs(width) < MIN_1_WIDTH || fabs(height) < MIN_NR_HEIGHT || + fabs(width) > MAX_NR_WIDTH || fabs(height) > MAX_NR_HEIGHT) ) { // 1 is a special case + line = getTextLine(linecounter++); + continue; + } + if (num != '1' && (fabs(width) < MIN_NR_WIDTH || fabs(height) < MIN_NR_HEIGHT || // other numbers should be bigger + fabs(width) > MAX_NR_WIDTH || fabs(height) > MAX_NR_HEIGHT) ) { + line = getTextLine(linecounter++); + continue; + } + + // num contains a number (we will disregard alternative interpretation)) + if (probability < (double)iprob / 100.0) { + //printf("WD: %d %d MIN %d %d \n", width, height, MIN_NR_WIDTH, MIN_NR_HEIGHT); + probability = (double)iprob / 100.0; + number = (int)(num - '0'); + } + ////////////////////// + line = getTextLine(linecounter++); + } + free_textlines(); + job_free(&job); + } + + + if (probability > 0.0) { + return true; + } + return false; +} diff --git a/.svn/pristine/58/581e4aca2e91dec50a9e7f51f5ffa220ec121a33.svn-base b/.svn/pristine/58/581e4aca2e91dec50a9e7f51f5ffa220ec121a33.svn-base new file mode 100644 index 0000000..a3cdf51 --- /dev/null +++ b/.svn/pristine/58/581e4aca2e91dec50a9e7f51f5ffa220ec121a33.svn-base @@ -0,0 +1,60 @@ +/**************************************************************************** + + GLUI User Interface Toolkit + --------------------------- + + glui_separator.cpp - GLUI_Separator control class + + + -------------------------------------------------- + + Copyright (c) 1998 Paul Rademacher + + This program is freely distributable without licensing fees and is + provided without guarantee or warrantee expressed or implied. This + program is -not- in the public domain. + +*****************************************************************************/ + +#include "glui.h" +#include "stdinc.h" + +/****************************** GLUI_Separator::draw() **********/ + +void GLUI_Separator::draw( int x, int y ) +{ + int width, indent, orig; + int cont_x, cont_y, cont_w, cont_h, cont_x_off, cont_y_off; + + if ( NOT can_draw() ) + return; + + orig = set_to_glut_window(); + + if ( parent() != NULL ) { + get_this_column_dims(&cont_x, &cont_y, &cont_w, &cont_h, + &cont_x_off, &cont_y_off); + + width = cont_w - cont_x_off*2; + } + else { + width = this->w; + } + + indent = (int) floor(width * .05); + + glLineWidth( 1.0 ); + glBegin( GL_LINES ); + glColor3f( .5, .5, .5 ); + glVertex2i( indent, GLUI_SEPARATOR_HEIGHT/2-1 ); + glVertex2i( width-indent, GLUI_SEPARATOR_HEIGHT/2-1 ); + + glColor3f( 1., 1., 1. ); + glVertex2i( indent, GLUI_SEPARATOR_HEIGHT/2 ); + glVertex2i( width-indent, GLUI_SEPARATOR_HEIGHT/2 ); + glEnd(); + + restore_window(orig); +} + + diff --git a/.svn/pristine/58/589440fbbbc264b4a7a931a476ba29162a8d3309.svn-base b/.svn/pristine/58/589440fbbbc264b4a7a931a476ba29162a8d3309.svn-base new file mode 100644 index 0000000..d3d7b2f --- /dev/null +++ b/.svn/pristine/58/589440fbbbc264b4a7a931a476ba29162a8d3309.svn-base @@ -0,0 +1,177 @@ +CXX = g++ +CXXFLAGS = -O2 -Wall + +DIFF = ./sdiff +PRE = ./ +MAJOR = 1 +MINOR = 0 + +%.o: %.cpp + $(CXX) $(CXXFLAGS) -c $*.cpp + +everything: tmt example test_exc nl_ex sl_ex garch + +newmat_lobj = newmat1.o newmat2.o newmat3.o newmat4.o newmat5.o newmat6.o newmat7.o newmat8.o newmatex.o bandmat.o submat.o myexcept.o cholesky.o evalue.o fft.o hholder.o jacobi.o newfft.o sort.o svd.o newmatrm.o newmat9.o + +libnewmat.a: $(newmat_lobj) + $(AR) -cr $@ $(newmat_lobj) + ranlib $@ + +tmt_obj = tmt.o tmt1.o tmt2.o tmt3.o tmt4.o tmt5.o tmt6.o tmt7.o tmt8.o tmt9.o tmta.o tmtb.o tmtc.o tmtd.o tmte.o tmtf.o tmtg.o tmth.o tmti.o tmtj.o tmtk.o tmtl.o tmtm.o + +tmt: $(tmt_obj) libnewmat.a + $(CXX) -o $@ $(tmt_obj) -L. -lnewmat -lm + +example_obj = example.o + +example: $(example_obj) libnewmat.a + $(CXX) -o $@ $(example_obj) -L. -lnewmat -lm + +test_exc_obj = test_exc.o + +test_exc: $(test_exc_obj) libnewmat.a + $(CXX) -o $@ $(test_exc_obj) -L. -lnewmat -lm + +nl_ex_obj = nl_ex.o newmatnl.o + +nl_ex: $(nl_ex_obj) libnewmat.a + $(CXX) -o $@ $(nl_ex_obj) -L. -lnewmat -lm + +sl_ex_obj = sl_ex.o solution.o myexcept.o + +sl_ex: $(sl_ex_obj) + $(CXX) -o $@ $(sl_ex_obj) -L. -lm + +garch_obj = garch.o newmatnl.o + +garch: $(garch_obj) libnewmat.a + $(CXX) -o $@ $(garch_obj) -L. -lnewmat -lm + +newmat1.o: newmat1.cpp newmat.h include.h boolean.h myexcept.h + +newmat2.o: newmat2.cpp include.h newmat.h newmatrc.h boolean.h myexcept.h controlw.h + +newmat3.o: newmat3.cpp include.h newmat.h newmatrc.h boolean.h myexcept.h controlw.h + +newmat4.o: newmat4.cpp include.h newmat.h newmatrc.h boolean.h myexcept.h controlw.h + +newmat5.o: newmat5.cpp include.h newmat.h newmatrc.h boolean.h myexcept.h controlw.h + +newmat6.o: newmat6.cpp include.h newmat.h newmatrc.h boolean.h myexcept.h controlw.h + +newmat7.o: newmat7.cpp include.h newmat.h newmatrc.h boolean.h myexcept.h controlw.h + +newmat8.o: newmat8.cpp include.h newmat.h newmatrc.h precisio.h boolean.h myexcept.h controlw.h + +newmatex.o: newmatex.cpp include.h newmat.h boolean.h myexcept.h + +bandmat.o: bandmat.cpp include.h newmat.h newmatrc.h boolean.h myexcept.h controlw.h + +submat.o: submat.cpp include.h newmat.h newmatrc.h boolean.h myexcept.h controlw.h + +myexcept.o: myexcept.cpp include.h myexcept.h + +cholesky.o: cholesky.cpp include.h newmat.h boolean.h myexcept.h + +evalue.o: evalue.cpp include.h newmatap.h newmatrm.h precisio.h newmat.h boolean.h myexcept.h + +fft.o: fft.cpp include.h newmatap.h newmat.h boolean.h myexcept.h + +hholder.o: hholder.cpp include.h newmatap.h newmat.h boolean.h myexcept.h + +jacobi.o: jacobi.cpp include.h newmatap.h precisio.h newmatrm.h newmat.h boolean.h myexcept.h + +newfft.o: newfft.cpp newmatap.h newmat.h include.h boolean.h myexcept.h + +sort.o: sort.cpp include.h newmatap.h newmat.h boolean.h myexcept.h + +svd.o: svd.cpp include.h newmatap.h newmatrm.h precisio.h newmat.h boolean.h myexcept.h + +newmatrm.o: newmatrm.cpp newmat.h newmatrm.h include.h boolean.h myexcept.h + +newmat9.o: newmat9.cpp include.h newmat.h newmatio.h newmatrc.h boolean.h myexcept.h controlw.h + +tmt.o: tmt.cpp include.h newmat.h tmt.h boolean.h myexcept.h + +tmt1.o: tmt1.cpp include.h newmat.h tmt.h boolean.h myexcept.h + +tmt2.o: tmt2.cpp include.h newmat.h tmt.h boolean.h myexcept.h + +tmt3.o: tmt3.cpp include.h newmat.h tmt.h boolean.h myexcept.h + +tmt4.o: tmt4.cpp include.h newmat.h tmt.h boolean.h myexcept.h + +tmt5.o: tmt5.cpp include.h newmat.h tmt.h boolean.h myexcept.h + +tmt6.o: tmt6.cpp include.h newmatap.h tmt.h newmat.h boolean.h myexcept.h + +tmt7.o: tmt7.cpp include.h newmat.h tmt.h boolean.h myexcept.h + +tmt8.o: tmt8.cpp include.h newmatap.h tmt.h newmat.h boolean.h myexcept.h + +tmt9.o: tmt9.cpp include.h newmatap.h tmt.h newmat.h boolean.h myexcept.h + +tmta.o: tmta.cpp include.h newmatap.h tmt.h newmat.h boolean.h myexcept.h + +tmtb.o: tmtb.cpp include.h newmat.h tmt.h boolean.h myexcept.h + +tmtc.o: tmtc.cpp include.h newmat.h tmt.h boolean.h myexcept.h + +tmtd.o: tmtd.cpp include.h newmatap.h tmt.h newmat.h boolean.h myexcept.h + +tmte.o: tmte.cpp include.h newmatap.h tmt.h newmat.h boolean.h myexcept.h + +tmtf.o: tmtf.cpp include.h newmatap.h tmt.h newmat.h boolean.h myexcept.h + +tmtg.o: tmtg.cpp include.h newmatap.h tmt.h newmat.h boolean.h myexcept.h + +tmth.o: tmth.cpp include.h newmatap.h tmt.h newmat.h boolean.h myexcept.h + +tmti.o: tmti.cpp include.h newmatap.h tmt.h newmat.h boolean.h myexcept.h + +tmtj.o: tmtj.cpp include.h newmatap.h tmt.h newmat.h boolean.h myexcept.h + +tmtk.o: tmtk.cpp include.h newmatap.h newmatio.h tmt.h newmat.h boolean.h myexcept.h + +tmtl.o: tmtl.cpp newmat.h tmt.h include.h boolean.h myexcept.h + +tmtm.o: tmtm.cpp newmat.h tmt.h include.h boolean.h myexcept.h + +example.o: example.cpp newmatap.h newmatio.h newmat.h include.h boolean.h myexcept.h + +test_exc.o: test_exc.cpp newmatap.h newmatio.h newmat.h include.h boolean.h myexcept.h + +nl_ex.o: nl_ex.cpp newmatnl.h newmatio.h newmat.h include.h boolean.h myexcept.h + +newmatnl.o: newmatnl.cpp newmatap.h newmatnl.h newmat.h include.h boolean.h myexcept.h + +sl_ex.o: sl_ex.cpp include.h solution.h boolean.h myexcept.h + +solution.o: solution.cpp include.h boolean.h myexcept.h solution.h + +garch.o: garch.cpp newmatap.h newmatio.h newmatnl.h newmat.h include.h boolean.h myexcept.h + +tmt.txx: tmt + $(PRE)tmt > tmt.txx + $(DIFF) tmt.txt tmt.txx + +example.txx: example + $(PRE)example > example.txx + $(DIFF) example.txt example.txx + +test_exc.txx: test_exc + $(PRE)test_exc > test_exc.txx + $(DIFF) test_exc.txt test_exc.txx + +nl_ex.txx: nl_ex + $(PRE)nl_ex > nl_ex.txx + $(DIFF) nl_ex.txt nl_ex.txx + +sl_ex.txx: sl_ex + $(PRE)sl_ex > sl_ex.txx + $(DIFF) sl_ex.txt sl_ex.txx + +garch.txx: garch + $(PRE)garch > garch.txx + $(DIFF) garch.txt garch.txx + diff --git a/.svn/pristine/58/58c519f980626fd1ee685e2a04667a401dc9c6f9.svn-base b/.svn/pristine/58/58c519f980626fd1ee685e2a04667a401dc9c6f9.svn-base new file mode 100644 index 0000000..be1f00b --- /dev/null +++ b/.svn/pristine/58/58c519f980626fd1ee685e2a04667a401dc9c6f9.svn-base @@ -0,0 +1,3644 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: GIMP PostScript file plugin V 1.16 by Peter Kirchgessner +%%Title: /home/publications/#stuff/stylish_kurt.eps +%%CreationDate: Thu Mar 30 11:56:25 2006 +%%DocumentData: Clean7Bit +%%LanguageLevel: 2 +%%Pages: 1 +%%BoundingBox: 14 14 759 1067 +%%EndComments +%%BeginProlog +% Use own dictionary to avoid conflicts +10 dict begin +%%EndProlog +%%Page: 1 1 +% Translate for offset +14.173228346456694 14.173228346456694 translate +% Translate to begin of first scanline +0 1052 translate +743.99999999999989 -1052 scale +% Image geometry +744 1052 8 +% Transformation matrix +[ 744 0 0 1052 0 0 ] +% Strings to hold RGB-samples per scanline +/rstr 744 string def +/gstr 744 string def +/bstr 744 string def +{currentfile /ASCII85Decode filter /RunLengthDecode filter rstr readstring pop} +{currentfile /ASCII85Decode filter /RunLengthDecode filter gstr readstring pop} +{currentfile /ASCII85Decode filter /RunLengthDecode filter bstr readstring pop} +true 3 +%%BeginData: 174212 ASCII Bytes +colorimage +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$NW0(0>Jl$lJcCi3J,~> +JcC<$NW0(0>Jl$lJcCi3J,~> +JcC<$NW0(0>Jl$lJcCi3J,~> +JcC<$O8fI_KEM8T/X5dVs+136s*t~> +JcC<$O8fI_KEM8T/X5dVs+136s*t~> +JcC<$O8fI_KEM8T/X5dVs+136s*t~> +JcC<$OT,@B62LW`$tde9s+138s*t~> +JcC<$OT,@B62LW`$tde9s+138s*t~> +JcC<$OT,@B62LW`$tde9s+138s*t~> +JcC<$OoGHe'__S/2kTeps+13;s*t~> +JcC<$OoGHe'__S/2kTeps+13;s*t~> +JcC<$OoGHe'__S/2kTeps+13;s*t~> +JcC<$Sc8]gq#:EiC]X/.!YKD'JcC<$Rf@m~> +JcC<$Sc8]gq#:EiC]X/.!YKD'JcC<$Rf@m~> +JcC<$Sc8]gq#:EiC]X/.!YKD'JcC<$Rf@m~> +JcC<$TDnu^Wp'9Y!S&gl!!<6fWVM,FJcD;@J,~> +JcC<$TDnu^Wp'9Y!S&gl!!<6fWVM,FJcD;@J,~> +JcC<$TDnu^Wp'9Y!S&gl!!<6fWVM,FJcD;@J,~> +JcC<$U&P5aJm\'DrrJPqli7)(HJjASJcDABJ,~> +JcC<$U&P5aJm\'DrrJPqli7)(HJjASJcDABJ,~> +JcC<$U&P5aJm\'DrrJPqli7)(HJjASJcDABJ,~> +JcC<$U]1JeJeN\5qYpTa<9O;a"&#uuJcC<$UAo`~> +JcC<$U]1JeJeN\5qYpTa<9O;a"&#uuJcC<$UAo`~> +JcC<$U]1JeJeN\5qYpTa<9O;a"&#uuJcC<$UAo`~> +JcC<$V>g\gK+SX!q>UK6+63D'+,&g.s+13Gs*t~> +JcC<$V>g\gK+SX!q>UK6+63D'+,&g.s+13Gs*t~> +JcC<$V>g\gK+SX!q>UK6+63D'+,&g.s+13Gs*t~> +JcC<$VuHqjK+\/4f_YULr.5(1!! +JcC<$VuHqjK+\/4f_YULr.5(1!! +JcC<$VuHqjK+\/4f_YULr.5(1!! +JcC<$WW*1mK+\.a:\";]!TQE"!!4L3o7?pms/H$K~> +JcC<$WW*1mK+\.a:\";]!TQE"!!4L3o7?pms/H$K~> +JcC<$WW*1mK+\.a:\";]!TQE"!!4L3o7?pms/H$K~> +JcC<$X8`FpK+\.a!eL@IrrK;:f`2'`D:jF>JcDeNJ,~> +JcC<$X8`FpK+\.a!eL@IrrK;:f`2'`D:jF>JcDeNJ,~> +JcC<$X8`FpK+\.a!eL@IrrK;:f`2'`D:jF>JcDeNJ,~> +JcC<$XoAImK+e.`!=uL4rrMh.eGo[P8$i/Fs+13Qs*t~> +JcC<$XoAImK+e.`!=uL4rrMh.eGo[P8$i/Fs+13Qs*t~> +JcC<$XoAImK+e.`!=uL4rrMh.eGo[P8$i/Fs+13Qs*t~> +JcC<$YQ"[oK+e+_!@c[trrLV$d/X4lN:)8sJcDtSJ,~> +JcC<$YQ"[oK+e+_!@c[trrLV$d/X4lN:)8sJcDtSJ,~> +JcC<$YQ"[oK+e+_!@c[trrLV$d/X4lN:)8sJcDtSJ,~> +JcC<$Z2XmqK+e(^!Dr=_rrJJnc2[nQB$u81JcE%UJ,~> +JcC<$Z2XmqK+e(^!Dr=_rrJJnc2[nQB$u81JcE%UJ,~> +JcC<$Z2XmqK+e(^!Dr=_rrJJnc2[nQB$u81JcE%UJ,~> +JcC<$Zi:*sK+e(^!WmuQqu6]b;TSn?5HOa5s+13Xs*t~> +JcC<$Zi:*sK+e(^!WmuQqu6]b;TSn?5HOa5s+13Xs*t~> +JcC<$Zi:*sK+e(^!WmuQqu6]b;TSn?5HOa5s+13Xs*t~> +JcC<$[Jp +JcC<$[Jp +JcC<$[Jp +JcC<$\,QO"K+e"\!@Zaurr_V_ +JcC<$\,QO"K+e"\!@Zaurr_V_ +JcC<$\,QO"K+e"\!@Zaurr_V_ +JcC<$\c2a-N=5R_![F63o`#$i]l57;!!5-Uq18Qss1JA^~> +JcC<$\c2a-N=5R_![F63o`#$i]l57;!!5-Uq18Qss1JA^~> +JcC<$\c2a-N=5R_![F63o`#$i]l57;!!5-Uq18Qss1JA^~> +JcC<$]Dhs%JJ%_Y![j]=mf*C?MEV0b!!4!djamG_s1\M`~> +JcC<$]Dhs%JJ%_Y![j]=mf*C?MEV0b!!4!djamG_s1\M`~> +JcC<$]Dhs%JJ%_Y![j]=mf*C?MEV0b!!4!djamG_s1\M`~> +JcC<$^&J0&Ih;GV!\C8IlMh"H?igB4aoDJE=PSK-JcEOcJ,~> +JcC<$^&J0&Ih;GV!\C8IlMh"H?igB4aoDJE=PSK-JcEOcJ,~> +JcC<$^&J0&Ih;GV!\C8IlMh"H?igB4aoDJE=PSK-JcEOcJ,~> +JcC<$^]+B'I1Q/S!\g_SlMgqPEsVaF"(/!*$H`>M7(N;Js+13fs*t~> +JcC<$^]+B'I1Q/S!\g_SlMgqPEsVaF"(/!*$H`>M7(N;Js+13fs*t~> +JcC<$^]+B'I1Q/S!\g_SlMgqPEsVaF"(/!*$H`>M7(N;Js+13fs*t~> +JcC<$_>aT(HOflP!]@7^lMgqaP77Ej#To^(k5Y(Q +JcC<$_>aT(HOflP!]@7^lMgqaP77Ej#To^(k5Y(Q +JcC<$_>aT(HOflP!]@7^lMgqaP77Ej#To^(k5Y(Q +JcC<$_uBf(Gn'TM!BR[QrrK2CrW!*DS'=.tG5_FCoVtn!bQ%\eOn=5)JcEdjJ,~> +JcC<$_uBf(Gn'TM!BR[QrrK2CrW!*DS'=.tG5_FCoVtn!bQ%\eOn=5)JcEdjJ,~> +JcC<$_uBf(Gn'TM!BR[QrrK2CrW!*DS'=.tG5_FCoVtn!bQ%\eOn=5)JcEdjJ,~> +JcC<$`W$#)G7= +JcC<$`W$#)G7= +JcC<$`W$#)G7= +JcC<$a8Z5*FU\*H!CXcfrsA49"TSN?OnP@_qu?_hq#:HaQT>/m!!3I?gO]BUs3(Fm~> +JcC<$a8Z5*FU\*H!CXcfrsA49"TSN?OnP@_qu?_hq#:HaQT>/m!!3I?gO]BUs3(Fm~> +JcC<$a8Z5*FU\*H!CXcfrsA49"TSN?OnP@_qu?_hq#:HaQT>/m!!3I?gO]BUs3(Fm~> +JcC<$ao;G+EsqgE!D1;ors4Jg!!!dnp<5Mm!!#1TrrUr(,0g/i"'!Bns+13ps*t~> +JcC<$ao;G+EsqgE!D1;ors4Jg!!!dnp<5Mm!!#1TrrUr(,0g/i"'!Bns+13ps*t~> +JcC<$ao;G+EsqgE!D1;ors4Jg!!!dnp<5Mm!!#1TrrUr(,0g/i"'!Bns+13ps*t~> +JcC<$bPqY,E=2RC!Wc'>kPkk=5QCctM"L%H!r2fs!SR,F"9-/K&'b.V5dgTBs+13ss*t~> +JcC<$bPqY,E=2RC!Wc'>kPkk=5QCctM"L%H!r2fs!SR,F"9-/K&'b.V5dgTBs+13ss*t~> +JcC<$bPqY,E=2RC!Wc'>kPkk=5QCctM"L%H!r2fs!SR,F"9-/K&'b.V5dgTBs+13ss*t~> +JcC<$c2Rk-E!cCA!Wl?JkPkk\G6S$ZKCSl*'(u;*GOb\8pSgdgcN""tU&'??JcF0uJ,~> +JcC<$c2Rk-E!cCA!Wl?JkPkk\G6S$ZKCSl*'(u;*GOb\8pSgdgcN""tU&'??JcF0uJ,~> +JcC<$c2Rk-E!cCA!Wl?JkPkk\G6S$ZKCSl*'(u;*GOb\8pSgdgcN""tU&'??JcF0uJ,~> +JcC<$ci4(-D@$+>!WuTTk5P^j*rle"n,L?^oDen0qsXOdk_:2*!!4.!nq$gls4%(!~> +JcC<$ci4(-D@$+>!WuTTk5P^j*rle"n,L?^oDen0qsXOdk_:2*!!4.!nq$gls4%(!~> +JcC<$ci4(-D@$+>!WuTTk5P^j*rle"n,L?^oDen0qsXOdk_:2*!!4.!nq$gls4%(!~> +JcC<$dJj:.C^Bn]-ci=+YGijSWJcF=$J,~> +JcC<$dJj:.C^Bn]-ci=+YGijSWJcF=$J,~> +JcC<$dJj:.C^Bn]-ci=+YGijSWJcF=$J,~> +JcC<$e,KL/C'XV9!X3&gk5Pb_KF&!-lMpaA&+BQ!:[7r]jb"Z%!!34/l@Jtds4I@%~> +JcC<$e,KL/C'XV9!X3&gk5Pb_KF&!-lMpaA&+BQ!:[7r]jb"Z%!!34/l@Jtds4I@%~> +JcC<$e,KL/C'XV9!X3&gk5Pb_KF&!-lMpaA&+BQ!:[7r]jb"Z%!!34/l@Jtds4I@%~> +JcC<$ec,^/BEn>6!X<5mjo5Uu-O=YRs8Te`mJm7kkNW!Kr3T3$d/X4SEpA5UJcFI(J,~> +JcC<$ec,^/BEn>6!X<5mjo5Uu-O=YRs8Te`mJm7kkNW!Kr3T3$d/X4SEpA5UJcFI(J,~> +JcC<$ec,^/BEn>6!X<5mjo5Uu-O=YRs8Te`mJm7kkNW!Kr3T3$d/X4SEpA5UJcFI(J,~> +JcC<$fDbp0Ad8,4!XEDsjo5V]=9iU%s8V+\lMppAk5PMCIiQi9!XsDCJcC<$h#Dm~> +JcC<$fDbp0Ad8,4!XEDsjo5V]=9iU%s8V+\lMppAk5PMCIiQi9!XsDCJcC<$h#Dm~> +JcC<$fDbp0Ad8,4!XEDsjo5V]=9iU%s8V+\lMppAk5PMCIiQi9!XsDCJcC<$h#Dm~> +JcC<$g&D-0A-Mi1!XNT$j8TA\>il"cpkK7B!!+MIjo5DZWB&?+!YC"TJcC<$hZ&*~> +JcC<$g&D-0A-Mi1!XNT$j8TA\>il"cpkK7B!!+MIjo5DZWB&?+!YC"TJcC<$hZ&*~> +JcC<$g&D-0A-Mi1!XNT$j8TA\>il"cpkK7B!!+MIjo5DZWB&?+!YC"TJcC<$hZ&*~> +JcC<$g]%?1@KlW/!XW`)h>[Ma-Kb@/`8^dua&`Dl!!3mop4<6ps5 +JcC<$g]%?1@KlW/!XW`)h>[Ma-Kb@/`8^dua&`Dl!!3mop4<6ps5 +JcC<$g]%?1@KlW/!XW`)h>[Ma-Kb@/`8^dua&`Dl!!3mop4<6ps5 +JcC<$h>[Q1?j-?,!X`o/h>[NC:ZVQV@c77fiH5^[!!4('q18Qss5O'/~> +JcC<$h>[Q1?j-?,!X`o/h>[NC:ZVQV@c77fiH5^[!!4('q18Qss5O'/~> +JcC<$h>[Q1?j-?,!X`o/h>[NC:ZVQV@c77fiH5^[!!4('q18Qss5O'/~> +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$iVru2>Qaj'!Xs8:g&D&)irB(Nh>[QTYsHe +JcC<$iVru2>Qaj'!Xs8:g&D&)irB(Nh>[QTYsHe +JcC<$iVru2>Qaj'!Xs8:g&D&)irB(Nh>[QTYsHe +JcC<$j8T23=p+X%!Y'G@fDbmL6KA+H7,%YBcrL4s!!4^Srdk*#s60K5~> +JcC<$j8T23=p+X%!Y'G@fDbmL6KA+H7,%YBcrL4s!!4^Srdk*#s60K5~> +JcC<$j8T23=p+X%!Y'G@fDbmL6KA+H7,%YBcrL4s!!4^Srdk*#s60K5~> +JcC<$jo5D3=9A@"!Y9\GeGfR=*T[8%"6\A;!n^i`df9D*[t4R1s69Q6~> +JcC<$jo5D3=9A@"!Y9\GeGfR=*T[8%"6\A;!n^i`df9D*[t4R1s69Q6~> +JcC<$jo5D3=9A@"!Y9\GeGfR=*T[8%"6\A;!n^i`df9D*[t4R1s69Q6~> +JcC<$kPkV3 +JcC<$kPkV3 +JcC<$kPkV3 +JcC<$l2Lh4 +JcC<$l2Lh4 +JcC<$l2Lh4 +JcC<$li.%4;??Xp!Y^:XbPqV)&a',p!T)?+!pb1Ddf9DDiIV#[s6ou<~> +JcC<$li.%4;??Xp!Y^:XbPqV)&a',p!T)?+!pb1Ddf9DDiIV#[s6ou<~> +JcC<$li.%4;??Xp!Y^:XbPqV)&a',p!T)?+!pb1Ddf9DDiIV#[s6ou<~> +JcC<$mJd74:]^Fn!YpO^aSu:S"6TXaL=6)'n:VM*!!3@EmXbChs7-,>~> +JcC<$mJd74:]^Fn!YpO^aSu:S"6TXaL=6)'n:VM*!!3@EmXbChs7-,>~> +JcC<$mJd74:]^Fn!YpO^aSu:S"6TXaL=6)'n:VM*!!3@EmXbChs7-,>~> +JcC<$n,EI5:'(4l!Z-de`W#pik5YK6d/O1 +JcC<$n,EI5:'(4l!Z-de`W#pik5YK6d/O1 +JcC<$n,EI5:'(4l!Z-de`W#pik5YK6d/O1 +JcC<$nc&[59EG"j!Z6sj_uBc5($>Pse'J$qluWQ`!!+OWJcC<$o`'F~> +JcC<$nc&[59EG"j!Z6sj_uBc5($>Pse'J$qluWQ`!!+OWJcC<$o`'F~> +JcC<$nc&[59EG"j!Z6sj_uBc5($>Pse'J$qluWQ`!!+OWJcC<$o`'F~> +JcC<$oD\j49)8Mh)Nja/rr@6*!!%>irrV7o"k3MQ9&kL&JcGHDJ,~> +JcC<$oD\j49)8Mh)Nja/rr@6*!!%>irrV7o"k3MQ9&kL&JcGHDJ,~> +JcC<$oD\j49)8Mh)Nja/rr@6*!!%>irrV7o"k3MQ9&kL&JcGHDJ,~> +JcC<$p&>'48GW;f*0^-2rrLjTkPtW-rlkBDgK=U.!!3Rhr.4m!s7lVE~> +JcC<$p&>'48GW;f*0^-2rrLjTkPtW-rlkBDgK=U.!!3Rhr.4m!s7lVE~> +JcC<$p&>'48GW;f*0^-2rrLjTkPtW-rlkBDgK=U.!!3Rhr.4m!s7lVE~> +JcC<$p\t947f!)d*gZT5rr>FL!!('^rrLJ?e,TM)b^oeFs7u\F~> +JcC<$p\t947f!)d*gZT5rr>FL!!('^rrLJ?e,TM)b^oeFs7u\F~> +JcC<$p\t947f!)d*gZT5rr>FL!!('^rrLJ?e,TM)b^oeFs7u\F~> +JcC<$q>UK47/?lb+IW&9rrB(^!!$rYrrL&%eGoXQE:\Y\JcGWIJ,~> +JcC<$q>UK47/?lb+IW&9rrB(^!!$rYrrL&%eGoXQE:\Y\JcGWIJ,~> +JcC<$q>UK47/?lb+IW&9rrB(^!!$rYrrL&%eGoXQE:\Y\JcGWIJ,~> +JcC<$qu6]46M^Z`,+SM=rrMp3kPtW$r5\gE>$s+14Is*t~> +JcC<$qu6]46M^Z`,+SM=rrMp3kPtW$r5\gE>$s+14Is*t~> +JcC<$qu6]46M^Z`,+SM=rrMp3kPtW$r5\gE>$s+14Is*t~> +JcC<$rVlo45l(H^-(k(Arr@<,!!'[OrrW"S&)%!b!FkJJs+14Hs*t~> +JcC<$rVlo45l(H^-(k(Arr@<,!!'[OrrW"S&)%!b!FkJJs+14Hs*t~> +JcC<$rVlo45l(H^-(k(Arr@<,!!'[OrrW"S&)%!b!FkJJs+14Hs*t~> +JcC<$s8N,24o,-[-_gLDrrLpWkPtTm`;]o'AHU`g!@5@0s+14Fs*t~> +JcC<$s8N,24o,-[-_gLDrrLpWkPtTm`;]o'AHU`g!@5@0s+14Fs*t~> +JcC<$s8N,24o,-[-_gLDrrLpWkPtTm`;]o'AHU`g!@5@0s+14Fs*t~> +JcC?%!rfJaq>^RGV>ROs!(Q/P!>5+ErrLG1huEf]GP6UfJcGKEJ,~> +JcC?%!rfJaq>^RGV>ROs!(Q/P!>5+ErrLG1huEf]GP6UfJcGKEJ,~> +JcC?%!rfJaq>^RGV>ROs!(Q/P!>5+ErrLG1huEf]GP6UfJcGKEJ,~> +JcCE'!r])Oq>^RJW;Wju!3G>`!3j<>!NRC(!!+n$JcC<$p&BO~> +JcCE'!r])Oq>^RJW;Wju!3G>`!3j<>!NRC(!!+n$JcC<$p&BO~> +JcCE'!r])Oq>^RJW;Wju!3G>`!3j<>!NRC(!!+n$JcC<$p&BO~> +JcCK)!rJZ>q>^RLX8T+!!W!\t!!$*9rrVqK%-ITl$B+e4s+14Bs*t~> +JcCK)!rJZ>q>^RLX8T+!!W!\t!!$*9rrVqK%-ITl$B+e4s+14Bs*t~> +JcCK)!rJZ>q>^RLX8T+!!W!\t!!$*9rrVqK%-ITl$B+e4s+14Bs*t~> +JcCQ+!r/-+q>^ROY5YC"!.*i/!=JG5rrM\-kl:`Ph1>TWs762?~> +JcCQ+!r/-+q>^ROY5YC"!.*i/!=JG5rrM\-kl:`Ph1>TWs762?~> +JcCQ+!r/-+q>^ROY5YC"!.*i/!=JG5rrM\-kl:`Ph1>TWs762?~> +JcCW-!qhWoq>^RQZ2UX#!T*tB!!&k/rrKYSm/R2#TDn?[!<.QLKE$H~> +JcCW-!qhWoq>^RQZ2UX#!T*tB!!&k/rrKYSm/R2#TDn?[!<.QLKE$H~> +JcCW-!qhWoq>^RQZ2UX#!T*tB!!&k/rrKYSm/R2#TDn?[!<.QLKE$H~> +JcC]/!qD$]q>^RT[/Qj#!(c;R!)1'*!qg^>n,NJkkj\TRfijPis+C?%~> +JcC]/!qD$]q>^RT[/Qj#!(c;R!)1'*!qg^>n,NJkkj\TRfijPis+C?%~> +JcC]/!qD$]q>^RT[/Qj#!(c;R!)1'*!qg^>n,NJkkj\TRfijPis+C?%~> +JcCc1!ptILq>^OV\"Na$YNPre#4/u%!REXp!!++HnG`XH?NU:.JcCB&J,~> +JcCc1!ptILq>^OV\"Na$YNPre#4/u%!REXp!!++HnG`XH?NU:.JcCB&J,~> +JcCc1!ptILq>^OV\"Na$YNPre#4/u%!REXp!!++HnG`XH?NU:.JcCB&J,~> +JcCi3!pFe:q>^OX\Xrg%q\nYu!1CFu!r[fUpAb6rD"@,r!oRSmrVup;JcCB&J,~> +JcCi3!pFe:q>^OX\Xrg%q\nYu!1CFu!r[fUpAb6rD"@,r!oRSmrVup;JcCB&J,~> +JcCi3!pFe:q>^OX\Xrg%q\nYu!1CFu!r[fUpAb6rD"@,r!oRSmrVup;JcCB&J,~> +JcCo5!oe&'q>^O[]USp$IHUY25e-gpeM-e!!@u.ZrrV4p#5\B#hgtf\s*t~> +JcCo5!oe&'q>^O[]USp$IHUY25e-gpeM-e!!@u.ZrrV4p#5\B#hgtf\s*t~> +JcCo5!oe&'q>^O[]USp$IHUY25e-gpeM-e!!@u.ZrrV4p#5\B#hgtf\s*t~> +JcCu7!o.>kq>^O^^R>*&hui3D!lrrVt;!rW*##CuX@rrV>##l+H#V1JZ"s*t~> +JcCu7!o.>kq>^O^^R>*&hui3D!lrrVt;!rW*##CuX@rrV>##l+H#V1JZ"s*t~> +JcCu7!o.>kq>^O^^R>*&hui3D!lrrVt;!rW*##CuX@rrV>##l+H#V1JZ"s*t~> +JcD&9!nLTZq>^Oa_Nt3%9BZ?UNOJij]c@(Q3n +JcD&9!nLTZq>^Oa_Nt3%9BZ?UNOJij]c@(Q3n +JcD&9!nLTZq>^Oa_Nt3%9BZ?UNOJij]c@(Q3n +JcD,;!mXaHq>^Od`K^B&Z02/f1q!>cn5bePoD\mYG74'D!&0!(K`?Q~> +JcD,;!mXaHq>^Od`K^B&Z02/f1q!>cn5bePoD\mYG74'D!&0!(K`?Q~> +JcD,;!mXaHq>^Od`K^B&Z02/f1q!>cn5bePoD\mYG74'D!&0!(K`?Q~> +JcD2=!lmq7q>^P(i0+*@r#Fo#!8==M!q(FGo)JdnnU^^os*t~> +JcD2=!lmq7q>^P(i0+*@r#Fo#!8==M!q(FGo)JdnnU^^os*t~> +JcD2=!lmq7q>^P(i0+*@r#Fo#!8==M!q(FGo)JdnnU^^os*t~> +JcD8?!PUqt!!30uc&_l)J*6k4JuJ\NnUV8@!!'T]s+UK'~> +JcD8?!PUqt!!30uc&_l)J*6k4JuJ\NnUV8@!!'T]s+UK'~> +JcD8?!PUqt!!30uc&_l)J*6k4JuJ\NnUV8@!!'T]s+UK'~> +JcDAB!rfVhq>^R!=43*.!TF4G!!"IJrrVeH'(,`"It@WRs*t~> +JcDAB!rfVhq>^R!=43*.!TF4G!!"IJrrVeH'(,`"It@WRs*t~> +JcDAB!rfVhq>^R!=43*.!TF4G!!"IJrrVeH'(,`"It@WRs*t~> +JcDGD!r]5Vq>^R"?It)7!);YW!7.eI!qhHdli7#SJcCH(J,~> +JcDGD!r]5Vq>^R"?It)7!);YW!7.eI!qhHdli7#SJcCH(J,~> +JcDGD!r]5Vq>^R"?It)7!);YW!7.eI!qhHdli7#SJcCH(J,~> +JcDMF!rSlFq>^R$ADE"@!3bSd!-YRG!r%cnl2Uhor.4m&s*t~> +JcDMF!rSlFq>^R$ADE"@!3bSd!-YRG!r%cnl2Uhor.4m&s*t~> +JcDMF!rSlFq>^R$ADE"@!3bSd!-YRG!r%cnl2Uhor.4m&s*t~> +JcDSH!r8?3q>^R&C>jpI!VmJp!!+2@Z2Xj3'B]>qc@Q"Ms*t~> +JcDSH!r8?3q>^R&C>jpI!VmJp!!+2@Z2Xj3'B]>qc@Q"Ms*t~> +JcDSH!r8?3q>^R&C>jpI!VmJp!!+2@Z2Xj3'B]>qc@Q"Ms*t~> +JcDYJ!qqj"q>^R(ETMiQ!,q'$!5l)A!0u[H!0i'7LAuc~> +JcDYJ!qqj"q>^R(ETMiQ!,q'$!5l)A!0u[H!0i'7LAuc~> +JcDYJ!qqj"q>^R(ETMiQ!,q'$!5l)A!0u[H!0i'7LAuc~> +JcD_L!qV^R+GNj\Y!7'd.!,Ae=!Ug?X!!$/Qs+^Q(~> +JcD_L!qV^R+GNj\Y!7'd.!,Ae=!Ug?X!!$/Qs+^Q(~> +JcD_L!qV^R+GNj\Y!7'd.!,Ae=!Ug?X!!$/Qs+^Q(~> +JcDeN!q1aTq>^R.II2Ucrr2sNkl:`"qm$/$>iu(e++aHHs*t~> +JcDeN!q1aTq>^R.II2Ucrr2sNkl:`"qm$/$>iu(e++aHHs*t~> +JcDeN!q1aTq>^R.II2Ucrr2sNkl:`"qm$/$>iu(e++aHHs*t~> +JcDkP!pY(Bq>^R1K^aQmr;QbWkPtUmZ2XgDAJcCN*J,~> +JcDkP!pY(Bq>^R1K^aQmr;QbWkPtUmZ2XgDAJcCN*J,~> +JcDkP!pY(Bq>^R1K^aQmr;QbWkPtUmZ2XgDAJcCN*J,~> +JcDqR!p+D0q>^R5MXuE!qYpT["mH!e?a9V3rZgS+!3(PLL];l~> +JcDqR!p+D0q>^R5MXuE!qYpT["mH!e?a9V3rZgS+!3(PLL];l~> +JcDqR!p+D0q>^R5MXuE!qYpT["mH!e?a9V3rZgS+!3(PLL];l~> +JcE"T!oI\tq>^R9OS48*p\t4fkl:_opTa_uL$&F9D1V_Bs*t~> +JcE"T!oI\tq>^R9OS48*p\t4fkl:_opTa_uL$&F9D1V_Bs*t~> +JcE"T!oI\tq>^R9OS48*p\t4fkl:_opTa_uL$&F9D1V_Bs*t~> +JcE(V!ngrbq>^R=QhZ.3p&>#okPtUaZ2Xjc"6]^b-\;;Qs*t~> +JcE(V!ngrbq>^R=QhZ.3p&>#okPtUaZ2Xjc"6]^b-\;;Qs*t~> +JcE(V!ngrbq>^R=QhZ.3p&>#okPtUaZ2Xjc"6]^b-\;;Qs*t~> +JcE.X!n(0Qq>^RBSbdp;oD\je'BoJs;m?9%9BQ9ThLY]_s*t~> +JcE.X!n(0Qq>^RBSbdp;oD\je'BoJs;m?9%9BQ9ThLY]_s*t~> +JcE.X!n(0Qq>^RBSbdp;oD\je'BoJs;m?9%9BQ9ThLY]_s*t~> +JcE4Z!m4:>q>^RGU\fWBnG`K*kl:_inZi)oXlfZaQ%Asks*t~> +JcE4Z!m4:>q>^RGU\fWBnG`K*kl:_inZi)oXlfZaQ%Asks*t~> +JcE4Z!m4:>q>^RGU\fWBnG`K*kl:_inZi)oXlfZaQ%Asks*t~> +JcE:\!Q%A&!!4dQrIP":rrC:,!!&[srrMs3kPtTWJcCQ+J,~> +JcE:\!Q%A&!!4dQrIP":rrC:,!!&[srrMs3kPtTWJcCQ+J,~> +JcE:\!Q%A&!!4dQrIP":rrC:,!!&[srrMs3kPtTWJcCQ+J,~> +JcE@^!P1Jj!!5!]rdk+8rr=V7!!#Tprr@0)!!*K&JcCT,J,~> +JcE@^!P1Jj!!5!]rdk+8rr=V7!!#Tprr@0)!!*K&JcCT,J,~> +JcE@^!P1Jj!!5!]rdk+8rr=V7!!#Tprr@0)!!*K&JcCT,J,~> +JcEIa!rfG_q#CFV[XnJBrrA#B!!*8jZ2XgTk5YLoJcCT,J,~> +JcEIa!rfG_q#CFV[XnJBrrA#B!!*8jZ2XgTk5YLoJcCT,J,~> +JcEIa!rfG_q#CFV[XnJBrrA#B!!*8jZ2XgTk5YLoJcCT,J,~> +JcEOc!rT#Mq#CF\]n-4GrrM9ckl:^SYl=\akPtU(JcCT,J,~> +JcEOc!rT#Mq#CF\]n-4GrrM9ckl:^SYl=\akPtU(JcCT,J,~> +JcEOc!rT#Mq#CF\]n-4GrrM9ckl:^SYl=\akPtU(JcCT,J,~> +JcEUe!rAQ;q#CFc_h%jJrr>^V!!#QorrASQ!!"L"s,$c+~> +JcEUe!rAQ;q#CFc_h%jJrr>^V!!#QorrASQ!!"L"s,$c+~> +JcEUe!rAQ;q#CFc_h%jJrr>^V!!#QorrASQ!!"L"s,$c+~> +JcE[g!r/-+q>^Qt:!%tdiVrnYkl:_fm'6Qko*jg_!9&M/MZ82~> +JcE[g!r/-+q>^Qt:!%tdiVrnYkl:_fm'6Qko*jg_!9&M/MZ82~> +JcE[g!r/-+q>^Qt:!%tdiVrnYkl:_fm'6Qko*jg_!9&M/MZ82~> +JcEai!r7Z_q>^Qu;pU$phu<`P''TArS?W"nA* +JcEai!r7Z_q>^Qu;pU$phu<`P''TArS?W"nA* +JcEai!r7Z_q>^Qu;pU$phu<`P''TArS?W"nA* +JcEgk!pkCMq>^R!>1A-'h#@@ikl:]RYl=^BkPtTZJcCW-J,~> +JcEgk!pkCMq>^R!>1A-'h#@@ikl:]RYl=^BkPtTZJcCW-J,~> +JcEgk!pkCMq>^R!>1A-'h#@@ikl:]RYl=^BkPtTZJcCW-J,~> +JcEmm!oe,+q>^R#@+g,2gA_/qkl:_fm'-Ki.Hpg5%JbSTMuS;~> +JcEmm!oe,+q>^R#@+g,2gA_/qkl:_fm'-Ki.Hpg5%JbSTMuS;~> +JcEmm!oe,+q>^R#@+g,2gA_/qkl:_fm'-Ki.Hpg5%JbSTMuS;~> +JcEso!nL`_q>^R$B&8+=fDbh#kl:^QYl=]^kPtUsJcCZ.J,~> +JcEso!nL`_q>^R$B&8+=fDbh#kl:^QYl=]^kPtUsJcCZ.J,~> +JcEso!nL`_q>^R$B&8+=fDbh#kl:^QYl=]^kPtUsJcCZ.J,~> +JcF$q!m"1>q>^R'D;p-Hec,W,kl:]PYl=ag"mH!eG(K[Os*t~> +JcF$q!m"1>q>^R'D;p-Hec,W,kl:]PYl=ag"mH!eG(K[Os*t~> +JcF$q!m"1>q>^R'D;p-Hec,W,kl:]PYl=ag"mH!eG(K[Os*t~> +JcF*s!OtGk!!3OLkCNZ^rrM6al2Uhfl`gBh;X"/]/qO%\s*t~> +JcF*s!OtGk!!3OLkCNZ^rrM6al2Uhfl`gBh;X"/]/qO%\s*t~> +JcF*s!OtGk!!3OLkCNZ^rrM6al2Uhfl`gBh;X"/]/qO%\s*t~> +JcF4!!rT#Qq#CI+H0Tt\d/O):kl:^PYl=^1kl:_bjFR>is*t~> +JcF4!!rT#Qq#CI+H0Tt\d/O):kl:^PYl=^1kl:_bjFR>is*t~> +JcF4!!rT#Qq#CI+H0Tt\d/O):kl:^PYl=^1kl:_bjFR>is*t~> +JcF:#!r/0/q#CI.JF8!gcMmm>kl:]OYl=b%)sI>&S:U^!s*t~> +JcF:#!r/0/q#CI.JF8!gcMmm>kl:]OYl=b%)sI>&S:U^!s*t~> +JcF:#!r/0/q#CI.JF8!gcMmm>kl:]OYl=b%)sI>&S:U^!s*t~> +JcF@%!qD-cq#CI2L@Kipbl7_8$L.Tl"R<5k!.3r1!*"OLN;nD~> +JcF@%!qD-cq#CI2L@Kipbl7_8$L.Tl"R<5k!.3r1!*"OLN;nD~> +JcF@%!qD-cq#CI2L@Kipbl7_8$L.Tl"R<5k!.3r1!*"OLN;nD~> +JcFF'!pP"Bq#CI6N:_]$ao;?Ckl:^OYl=aZ!U9Xc%JPGRNW4M~> +JcFF'!pP"Bq#CI6N:_]$ao;?Ckl:^OYl=aZ!U9Xc%JPGRNW4M~> +JcFF'!pP"Bq#CI6N:_]$ao;?Ckl:^OYl=aZ!U9Xc%JPGRNW4M~> +JcFL)!o@Yuq#CI:PP0S-a8Z.Fkl:]NYQ"Sgkl:^fJcC`0J,~> +JcFL)!o@Yuq#CI:PP0S-a8Z.Fkl:]NYQ"Sgkl:^fJcC`0J,~> +JcFL)!o@Yuq#CI:PP0S-a8Z.Fkl:]NYQ"Sgkl:^fJcC`0J,~> +JcFR+!n(9Uq#CI>RJDF6`W#u7'C#Pu"R3/j!2SiZ!*k*TNW4M~> +JcFR+!n(9Uq#CI>RJDF6`W#u7'C#Pu"R3/j!2SiZ!*k*TNW4M~> +JcFR+!n(9Uq#CI>RJDF6`W#u7'C#Pu"R3/j!2SiZ!*k*TNW4M~> +JcFX-!lIY3q#CICTDF-=_Z'UKkl:^MYl=at&F'5r&,:_UNrOV~> +JcFX-!lIY3q#CICTDF-=_Z'UKkl:^MYl=at&F'5r&,:_UNrOV~> +JcFX-!lIY3q#CICTDF-=_Z'UKkl:^MYl=at&F'5r&,:_UNrOV~> +JcFa0!rfMgp](@GVYl#F_#FDOkl:]MYQ"T;kl:^hJcCc1J,~> +JcFa0!rfMgp](@GVYl#F_#FDOkl:]MYQ"T;kl:^hJcCc1J,~> +JcFa0!rfMgp](@GVYl#F_#FDOkl:]MYQ"T;kl:^hJcCc1J,~> +JcFg2!rJcFp](@JXT!eN^Ae64*pN_+"6cuh!6j[-!+(6VNrOV~> +JcFg2!rJcFp](@JXT!eN^Ae64*pN_+"6cuh!6j[-!+(6VNrOV~> +JcFg2!rJcFp](@JXT!eN^Ae64*pN_+"6cuh!6j[-!+(6VNrOV~> +JcFm4!qqj%p](@X[JkaW]DhkTkl:^LYQ"SVl2Uhrq18R,s*t~> +JcFm4!qqj%p](@X[JkaW]DhkTkl:^LYQ"SVl2Uhrq18R,s*t~> +JcFm4!qqj%p](@X[JkaW]DhkTkl:^LYQ"SVl2Uhrq18R,s*t~> +JcFs6!q1gYq#CHs8]$&Y\GlQVkl:]LYQ"Tdkl:^jJcCf2J,~> +JcFs6!q1gYq#CHs8]$&Y\GlQVkl:]LYQ"Tdkl:^jJcCf2J,~> +JcFs6!q1gYq#CHs8]$&Y\GlQVkl:]LYQ"Tdkl:^jJcCf2J,~> +JcG$8!p=V6q#CHt +JcG$8!p=V6q#CHt +JcG$8!p=V6q#CHt +JcG*:!n(BYq#CI#@b?83Zi:#[kl:^KYQ"T*l2Uhsq18R-s*t~> +JcG*:!n(BYq#CI#@b?83Zi:#[kl:^KYQ"T*l2Uhsq18R-s*t~> +JcG*:!n(BYq#CI#@b?83Zi:#[kl:^KYQ"T*l2Uhsq18R-s*t~> +JcG0 +JcG0 +JcG0 +JcG9?!rJoPp](@,Hg61^Y5\J`l2UhekHOserZCD*!+CHYOT0h~> +JcG9?!rJoPp](@,Hg61^Y5\J`l2UhekHOserZCD*!+CHYOT0h~> +JcG9?!rJoPp](@,Hg61^Y5\J`l2UhekHOserZCD*!+CHYOT0h~> +JcG?A!q_X!p](@3M"-&rXT&9ckl:^JYQ"TXl2UhtqLS[/s*t~> +JcG?A!q_X!p](@3M"-&rXT&9ckl:^JYQ"TXl2UhtqLS[/s*t~> +JcG?A!q_X!p](@3M"-&rXT&9ckl:^JYQ"TXl2UhtqLS[/s*t~> +JcGEC!pP+Hp](@ +JcGEC!pP+Hp](@ +JcGEC!pP+Hp](@ +JcGKE!nq8np](@EU&'??VuH`hl2Uhdk-+db=R#kd@tFZBs*t~> +JcGKE!nq8np](@EU&'??VuH`hl2Uhdk-+db=R#kd@tFZBs*t~> +JcGKE!nq8np](@EU&'??VuH`hl2Uhdk-+db=R#kd@tFZBs*t~> +JcGQG!le+>p](@PXo3hNV>gOlkl:^IYQ"U +JcGQG!le+>p](@PXo3hNV>gOlkl:^IYQ"U +JcGQG!le+>p](@PXo3hNV>gOlkl:^IYQ"U +JcGZJ!r]AdpAb4[\q0mUrrMa"l2UfIYQ"Y&.d@!6\UjdDs*t~> +JcGZJ!r]AdpAb4[\q0mUrrMa"l2UfIYQ"Y&.d@!6\UjdDs*t~> +JcGZJ!r]AdpAb4[\q0mUrrMa"l2UfIYQ"Y&.d@!6\UjdDs*t~> +JcG`L!r/96p](?r9u_baTDnmpl2Uhdjfe[aP3N#IAV'lEs*t~> +JcG`L!r/96p](?r9u_baTDnmpl2Uhdjfe[aP3N#IAV'lEs*t~> +JcG`L!r/96p](?r9u_baTDnmpl2Uhdjfe[aP3N#IAV'lEs*t~> +Jc>iPmY2VS!!3:,dXhFhrrBFj!!&1crrMQqlMpquqgnd2s*t~> +Jc>iPmY2VS!!3:,dXhFhrrBFj!!&1crrMQqlMpquqgnd2s*t~> +Jc>iPmY2VS!!3:,dXhFhrrBFj!!&1crrMQqlMpquqgnd2s*t~> +K)Yo2E=M[C!XEAnJcD5>!W!Mq!!#-arr?Qo!!'3Rs-*J5~> +K)Yo2E=M[C!XEAnJcD5>!W!Mq!!#-arr?Qo!!'3Rs-*J5~> +K)Yo2E=M[C!XEAnJcD5>!W!Mq!!#-arr?Qo!!'3Rs-*J5~> +K`;,">6Xd%!Xs/3JcD,;!,:]u!crrC7-!!#iHs-*J5~> +K`;,">6Xd%!Xs/3JcD,;!,:]u!crrC7-!!#iHs-*J5~> +K`;,">6Xd%!Xs/3JcD,;!,:]u!crrC7-!!#iHs-*J5~> +LAq=e7KN8a!Y^+OJcD&9!5[n"!0OGa!&X!A!=%k@s-3P6~> +LAq=e7KN8a!Y^+OJcD&9!5[n"!0OGa!&X!A!=%k@s-3P6~> +LAq=e7KN8a!Y^+OJcD&9!5[n"!0OGa!&X!A!=%k@s-3P6~> +M>mYSV(q]E!ZI$hJcCu7!W +M>mYSV(q]E!ZI$hJcCu7!W +M>mYSV(q]E!ZI$hJcCu7!W +MuNkMO<=2s![=-/JcCl4!,Cd!! +MuNkMO<=2s![=-/JcCl4!,Cd!! +MuNkMO<=2s![=-/JcCl4!,Cd!! +NW0(MGR4$D!]R7[JcCf2!5Iau!0=;_!,_!$!7cZ#Q2c@~> +NW0(MGR4$D!]R7[JcCf2!5Iau!0=;_!,_!$!7cZ#Q2c@~> +NW0(MGR4$D!]R7[JcCf2!5Iau!0=;_!,_!$!7cZ#Q2c@~> +O8f:-?3^0)!Wbp/JcC]/!W3c!!!#'_rrLXNlMpp.JcD#8J,~> +O8f:-?3^0)!Wbp/JcC]/!W3c!!!#'_rrLXNlMpp.JcD#8J,~> +O8f:-?3^0)!Wbp/JcC]/!W3c!!!#'_rrLXNlMpp.JcD#8J,~> +P5bU^ZU4Bd!X2lXJcCT,!,1Wt!7K!!+&:JcD&9J,~> +P5bU^ZU4Bd!X2lXJcCT,!,1Wt!7K!!+&:JcD&9J,~> +P5bU^ZU4Bd!X2lXJcCT,!,1Wt!7K!!+&:JcD&9J,~> +PlCgXQRDM-!Xs#+JcCN*!57Us!045^!2f#]!4d[\QN)I~> +PlCgXQRDM-!Xs#+JcCN*!57Us!045^!2f#]!4d[\QN)I~> +PlCgXQRDM-!Xs#+JcCN*!57Us!045^!2f#]!4d[\QN)I~> +QN%$KHP?,R!Yp=SJcCH(!W*Vs!!#$^rrMp2lMpogJcD&9J,~> +QN%$KHP?,R!Yp=SJcCH(!W*Vs!!#$^rrMp2lMpogJcD&9J,~> +QN%$KHP?,R!Yp=SJcCH(!W*Vs!!#$^rrMp2lMpogJcD&9J,~> +R/[67?O$6)![ +R/[67?O$6)![ +R/[67?O$6)![ +S,WQhZpXNe!]$_PJcC<$!WTaq!!&"]rrLsXlMppTJcD):J,~> +S,WQhZpXNe!]$_PJcC<$!WTaq!!&"]rrLsXlMppTJcD):J,~> +S,WQhZpXNe!]$_PJcC<$!WTaq!!&"]rrLsXlMppTJcD):J,~> +Sc8cbQmhY.!CXMMs+14KrrN!2l2UfDXoAAmlMpoKJcD):J,~> +Sc8cbQmhY.!CXMMs+14KrrN!2l2UfDXoAAmlMpoKJcD):J,~> +Sc8cbQmhY.!CXMMs+14KrrN!2l2UfDXoAAmlMpoKJcD):J,~> +TDnuTHkc;T!WuNKJcC<$qYpP+l2Uhci3*([Z0MAj!Sr>,R/_[~> +TDnuTHkc;T!WuNKJcC<$qYpP+l2Uhci3*([Z0MAj!Sr>,R/_[~> +TDnuTHkc;T!WuNKJcC<$qYpP+l2Uhci3*([Z0MAj!Sr>,R/_[~> +U&P2@?jHE+!XWVsJcC<$q#:?(kl:^BY5\P#*U<\*J:[`fs*t~> +U&P2@?jHE+!XWVsJcC<$q#:?(kl:^BY5\P#*U<\*J:[`fs*t~> +U&P2@?jHE+!XWVsJcC<$q#:?(kl:^BY5\P#*U<\*J:[`fs*t~> +V#LPr[6juh!!3d\l%/kcs7ZHnq@i,o!&q%[!.sM:!@.Sps-`n;~> +V#LPr[6juh!!3d\l%/kcs7ZHnq@i,o!&q%[!.sM:!@.Sps-`n;~> +V#LPr[6juh!!3d\l%/kcs7ZHnq@i,o!&q%[!.sM:!@.Sps-`n;~> +VZ-_kR47h0!ZmEoJcC<$oD\f"l2Uhchlct[jTXrM!5a +VZ-_kR47h0!ZmEoJcC<$oD\f"l2Uhchlct[jTXrM!5a +VZ-_kR47h0!ZmEoJcC<$oD\f"l2Uhchlct[jTXrM!5a +W;cq^I2)AT!\L/CJcC<$nc&Ttkl:^AXoAB"lMpooJcD/ +W;cq^I2)AT!\L/CJcC<$nc&Ttkl:^AXoAB"lMpooJcD/ +W;cq^I2)AT!\L/CJcC<$nc&Ttkl:^AXoAB"lMpooJcD/ +WrE.J?jHB*!^=!jJcC<$n,EFa&aB>r26HlY]B]Ft$h/`IRf@m~> +WrE.J?jHB*!^=!jJcC<$n,EFa&aB>r26HlY]B]Ft$h/`IRf@m~> +WrE.J?jHB*!^=!jJcC<$n,EFa&aB>r26HlY]B]Ft$h/`IRf@m~> +XoAM&[R:/j!!34!a+=8As6K[b@-R^m!T(!Z!WFG3!!&:8s-it<~> +XoAM&[R:/j!!34!a+=8As6K[b@-R^m!T(!Z!WFG3!!&:8s-it<~> +XoAM&[R:/j!!34!a+=8As6K[b@-R^m!T(!Z!WFG3!!&:8s-it<~> +YQ"[tRORq1!XE8gJcC<$l2Lajkl:^@XoAB[lMpo +YQ"[tRORq1!XE8gJcC<$l2Lajkl:^@XoAB[lMpo +YQ"[tRORq1!XE8gJcC<$l2Lajkl:^@XoAB[lMpo +Z2XmnE!Q(:!YTkCJcC<$kPkSY&F'5q1p-cYlj2nW!69ZjS,\!~> +Z2XmnE!Q(:!YTkCJcC<$kPkSY&F'5q1p-cYlj2nW!69ZjS,\!~> +Z2XmnE!Q(:!YTkCJcC<$kPkSY&F'5q1p-cYlj2nW!69ZjS,\!~> +Zi:*H=9\Bu![X-)cMmq+rdk*;rr?Bj!!*,VXoAB-lMponJcD5>J,~> +Zi:*H=9\Bu![X-)cMmq+rdk*;rr?Bj!!*,VXoAB-lMponJcD5>J,~> +Zi:*H=9\Bu![X-)cMmq+rdk*;rr?Bj!!*,VXoAB-lMponJcD5>J,~> +[f6F)U,DTD!^3acc2RjM'XrYnRK!8mkl:^>XoAC@lMpqmmt(M/s*t~> +[f6F)U,DTD!^3acc2RjM'XrYnRK!8mkl:^>XoAC@lMpqmmt(M/s*t~> +[f6F)U,DTD!^3acc2RjM'XrYnRK!8mkl:^>XoAC@lMpqmmt(M/s*t~> +\GlWmIi.kZ!X)THbl7h?C]ON>JcD/~> +\GlWmIi.kZ!X)THbl7h?C]ON>JcD/~> +\GlWmIi.kZ!X)THbl7h?C]ON>JcD/~> +])MiR>6ad$!Y05.bPqUo0E(qP$M&cJRK!7lkl:_=XoABflMpo:JcD8?J,~> +])MiR>6ad$!Y05.bPqUo0E(qP$M&cJRK!7lkl:_=XoABflMpo:JcD8?J,~> +])MiR>6ad$!Y05.bPqUo0E(qP$M&cJRK!7lkl:_=XoABflMpo:JcD8?J,~> +^&J00V)\,J!Zm +^&J00V)\,J!Zm +^&J00V)\,J!Zm +^]+B!JJn+\!]6eOb5VM2XT&96lMpolJcD;@J,~> +^]+B!JJn+\!]6eOb5VM2XT&96lMpolJcD;@J,~> +^]+B!JJn+\!]6eOb5VM2XT&96lMpolJcD;@J,~> +_>aS[?3g0(!Wl-4aSu:Z+8Gm;!onk3RK!7jkl:_ +_>aS[?3g0(!Wl-4aSu:Z+8Gm;!onk3RK!7jkl:_ +_>aS[?3g0(!Wl-4aSu:Z+8Gm;!onk3RK!7jkl:_ +`;]o8W&jSO!X`VoaSu>>JctfJ!/Q4+RK!8ikl:^AJ,~> +`;]o8W&jSO!X`VoaSu>>JctfJ!/Q4+RK!8ikl:^AJ,~> +`;]o8W&jSO!X`VoaSu>>JctfJ!/Q4+RK!8ikl:^AJ,~> +`r?,*KH'Ra!Z-ISa8Z2#5P5!V.tR_grrMg%l2Uf=XT&9tlMpo8JcD>AJ,~> +`r?,*KH'Ra!Z-ISa8Z2#5P5!V.tR_grrMg%l2Uf=XT&9tlMpo8JcD>AJ,~> +`r?,*KH'Ra!Z-ISa8Z2#5P5!V.tR_grrMg%l2Uf=XT&9tlMpo8JcD>AJ,~> +aSu=e@0lN+!\9i:`r?(D'Cu2(c%5n_rr?0c!!(`TrrMp4lMpq&JcDABJ,~> +aSu=e@0lN+!\9i:`r?(D'Cu2(c%5n_rr?0c!!(`TrrMp4lMpq&JcDABJ,~> +aSu=e@0lN+!\9i:`r?(D'Cu2(c%5n_rr?0c!!(`TrrMp4lMpq&JcDABJ,~> +bPqY@X$-+U!s(j"rl4s>pM'a"!!$ths-`leXQ]]bKrk:SI-Ub4?%N$Js*t~> +bPqY@X$-+U!s(j"rl4s>pM'a"!!$ths-`leXQ]]bKrk:SI-Ub4?%N$Js*t~> +bPqY@X$-+U!s(j"rl4s>pM'a"!!$ths-`leXQ]]bKrk:SI-Ub4?%N$Js*t~> +c2Rk3LE6$f!X<#Z`;]kf/ar`@(]/d`Rf +c2Rk3LE6$f!X<#Z`;]kf/ar`@(]/d`Rf +c2Rk3LE6$f!X<#Z`;]kf/ar`@(]/d`Rf +ci4'n@gVf.!YTe?_uBb)$LRlo[XnIHrr?*a!!(]Rrr>p^!!&(2s.KCB~> +ci4'n@gVf.!YTe?_uBb)$LRlo[XnIHrr?*a!!(]Rrr>p^!!&(2s.KCB~> +ci4'n@gVf.!YTe?_uBb)$LRlo[XnIHrr?*a!!(]Rrr>p^!!&(2s.KCB~> +df0CHX[)LY![O!%_uBc*;sXJa=b6U@rrB(`!!%\RrrB^t!!+>DJcDGDJ,~> +df0CHX[)LY![O!%_uBc*;sXJa=b6U@rrB(`!!%\RrrB^t!!+>DJcDGDJ,~> +df0CHX[)LY![O!%_uBc*;sXJa=b6U@rrB(`!!%\RrrB^t!!+>DJcDGDJ,~> +eGfUAMAYsc!^!R__Z'YS*pWe,$Lr]IRf +eGfUAMAYsc!^!R__Z'YS*pWe,$Lr]IRf +eGfUAMAYsc!^!R__Z'YS*pWe,$Lr]IRf +ec,Zp-M7??"*!D=rrW+K"6fdcSq6p0rr?$_!!(ZQrrA2I!!#cFs.TIC~> +ec,Zp-M7??"*!D=rrW+K"6fdcSq6p0rr?$_!!(ZQrrA2I!!#cFs.TIC~> +ec,Zp-M7??"*!D=rrW+K"6fdcSq6p0rr?$_!!(ZQrrA2I!!#cFs.TIC~> +fDbpONX,7X!Yp(C_#FGp53DnG6%T'(rrB"_!!-![XT&=j%.!rp"5\V/UAo`~> +fDbpONX,7X!Yp(C_#FGp53DnG6%T'(rrB"_!!-![XT&=j%.!rp"5\V/UAo`~> +fDbpONX,7X!Yp(C_#FGp53DnG6%T'(rrB"_!!-![XT&=j%.!rp"5\V/UAo`~> +f`)!:8bN,c0V8$Qrr?is!!*/\JcD2=!V6Wb!!,*uWW)s2lMpp,JcDJEJ,~> +f`)!:8bN,c0V8$Qrr?is!!*/\JcD2=!V6Wb!!,*uWW)s2lMpp,JcDJEJ,~> +f`)!:8bN,c0V8$Qrr?is!!*/\JcD2=!V6Wb!!,*uWW)s2lMpp,JcDJEJ,~> +g&D)a)#+(4"B<4LrrLdSjo>C:JcD/ +g&D)a)#+(4"B<4LrrLdSjo>C:JcD/ +g&D)a)#+(4"B<4LrrLdSjo>C:JcD/ +g]%?OFoqI>!Y]e:\GlP+jo>B2JcD/gNXlMppSJcDMFJ,~> +g]%?OFoqI>!Y]e:\GlP+jo>B2JcD/gNXlMppSJcDMFJ,~> +g]%?OFoqI>!Y]e:\GlP+jo>B2JcD/gNXlMppSJcDMFJ,~> +h#@E12Yd=S/Xl@@rrC(#!!(5os-irgnd+jf!XNu +h#@E12Yd=S/Xl@@rrC(#!!(5os-irgnd+jf!XNu +h#@E12Yd=S/Xl@@rrC(#!!(5os-irgnd+jf!XNu +h>[MO%f65."&HW0Zi:"fjo>C"JcD/ +h>[MO%f65."&HW0Zi:"fjo>C"JcD/ +h>[MO%f65."&HW0Zi:"fjo>C"JcD/ +hu<`J?Ma^(&9H^4rrB=d!!*o5JcD2=!2T>h!C=r$rr@H4!!$#Ms.o[F~> +hu<`J?Ma^(&9H^4rrB=d!!*o5JcD2=!2T>h!C=r$rr@H4!!$#Ms.o[F~> +hu<`J?Ma^(&9H^4rrB=d!!*o5JcD2=!2T>h!C=r$rr@H4!!$#Ms.o[F~> +i;Wi%-2[`E.@0S.rrN'Ijo>CgJcD2=!V$Ek!!+RVSGrWL"RH*h"QY.6V>l&~> +i;Wi%-2[`E.@0S.rrN'Ijo>CgJcD2=!V$Ek!!+RVSGrWL"RH*h"QY.6V>l&~> +i;Wi%-2[`E.@0S.rrN'Ijo>CgJcD2=!V$Ek!!+RVSGrWL"RH*h"QY.6V>l&~> +ir9)ZN!B7]!s2-+ri?&!SE9eO=FpL?rr>gl!!4"*r0mWc; +ir9)ZN!B7]!s2-+ri?&!SE9eO=FpL?rr>gl!!4"*r0mWc; +ir9)ZN!B7]!s2-+ri?&!SE9eO=FpL?rr>gl!!4"*r0mWc; +j8T/D8,`Ji%W:"!rrMm4k5YMhnU^_/rrAem!!3OXo9fOX]B]Ft(ANI\VZ2/~> +j8T/D8,`Ji%W:"!rrMm4k5YMhnU^_/rrAem!!3OXo9fOX]B]Ft(ANI\VZ2/~> +j8T/D8,`Ji%W:"!rrMm4k5YMhnU^_/rrAem!!3OXo9fOX]B]Ft(ANI\VZ2/~> +jSoFo(B=F]P4>CK!/Tb;!1e]@Rf +jSoFo(B=F]P4>CK!/Tb;!1e]@Rf +jSoFo(B=F]P4>CK!/Tb;!1e]@Rf +k5PY]F9)D4[Jcm#!UgK\!!#98s-`lfK&2^k!0QRI!&fE.VZ2/~> +k5PY]F9)D4[Jcm#!UgK\!!#98s-`lfK&2^k!0QRI!&fE.VZ2/~> +k5PY]F9)D4[Jcm#!UgK\!!#98s-`lfK&2^k!0QRI!&fE.VZ2/~> +kPk\>1^n-Nm/I(b[Jp5Jk5YMaiIV#[s/Q)"n-eO^!6KflVuM8~> +kPk\>1^n-Nm/I(b[Jp5Jk5YMaiIV#[s/Q)"n-eO^!6KflVuM8~> +kPk\>1^n-Nm/I(b[Jp5Jk5YMaiIV#[s/Q)"n-eO^!6KflVuM8~> +kl1aZ09,GerrVIYUUC+&iW\KF!/6"(JcD_L!+tNs!*t0UVuM8~> +kl1aZ09,GerrVIYUUC+&iW\KF!/6"(JcD_L!+tNs!*t0UVuM8~> +kl1aZ09,GerrVIYUUC+&iW\KF!/6"(JcD_L!+tNs!*t0UVuM8~> +lMgtWT<\=[rrfqO!#b=7rr?Bg!!"I!s+13LrrCF3!!*>gJcD\KJ,~> +lMgtWT<\=[rrfqO!#b=7rr?Bg!!"I!s+13LrrCF3!!*>gJcD\KJ,~> +lMgtWT<\=[rrfqO!#b=7rr?Bg!!"I!s+13LrrCF3!!*>gJcD\KJ,~> +lMgkWlMgq^GQRjE!-,FH!R_#3!!(2ns+13Lrr>1I!!%S$s/>sJ~> +lMgkWlMgq^GQRjE!-,FH!R_#3!!(2ns+13Lrr>1I!!%S$s/>sJ~> +lMgkWlMgq^GQRjE!-,FH!R_#3!!(2ns+13Lrr>1I!!%S$s/>sJ~> +e,KI)2uEXV"OjdY!(l>R!,dAfKDtrKW;cjplMpr%pjrIEs*t~> +e,KI)2uEXV"OjdY!(l>R!,dAfKDtrKW;cjplMpr%pjrIEs*t~> +e,KI)2uEXV"OjdY!(l>R!,dAfKDtrKW;cjplMpr%pjrIEs*t~> +eGfQG%f-/+5lS4l!5@Ur!>bN_s+UIk`ZP9g'-8PX4\/LWBQANVP+8GT]Z/@Sk4/>brrMp3lMppW +JcD_LJ,~> +eGfQG%f-/+5lS4l!5@Ur!>bN_s+UIk`ZP9g'-8PX4\/LWBQANVP+8GT]Z/@Sk4/>brrMp3lMppW +JcD_LJ,~> +eGfQG%f-/+5lS4l!5@Ur!>bN_s+UIk`ZP9g'-8PX4\/LWBQANVP+8GT]Z/@Sk4/>brrMp3lMppW +JcD_LJ,~> +f)GdB@.sX$X0qs-2!4i=Z[r.3rrW.P"Qoap$lgi_:LA'lP+o;$e`HMNrr@E3!!"['s/H$K~> +f)GdB@.sX$X0qs-2!4i=Z[r.3rrW.P"Qoap$lgi_:LA'lP+o;$e`HMNrr@E3!!"['s/H$K~> +f)GdB@.sX$X0qs-2!4i=Z[r.3rrW.P"Qoap$lgi_:LA'lP+o;$e`HMNrr@E3!!"['s/H$K~> +fDblr-M@E?./^OR!3,,]!*4[NM#RM:6.Q#F"W8aM93Z4\NhEf)jo4*9!TF7J!!'Z_s/Q*L~> +fDblr-M@E?./^OR!3,,]!*4[NM#RM:6.Q#F"W8aM93Z4\NhEf)jo4*9!TF7J!!'Z_s/Q*L~> +fDblr-M@E?./^OR!3,,]!*4[NM#RM:6.Q#F"W8aM93Z4\NhEf)jo4*9!TF7J!!'Z_s/Q*L~> +g&D-QNX#+U!2$_"!W*f!!!*DqJcCW-!O3?[!"&cD01TAnO/KbEnE0`N; +g&D-QNX#+U!2$_"!W*f!!!*DqJcCW-!O3?[!"&cD01TAnO/KbEnE0`N; +g&D-QNX#+U!2$_"!W*f!!!*DqJcCW-!O3?[!"&cD01TAnO/KbEnE0`N; +gA_3<8b)i^+SiJG!.3l/!1\W?N;itRC]V0K$4.k9;/(TLZ-))%nc&U$lMpqefn'1(s*t~> +gA_3<8b)i^+SiJG!.3l/!1\W?N;itRC]V0K$4.k9;/(TLZ-))%nc&U$lMpqefn'1(s*t~> +gA_3<8b)i^+SiJG!.3l/!1\W?N;itRC]V0K$4.k9;/(TLZ-))%nc&U$lMpqefn'1(s*t~> +g]%;c)"7M*Q+$\nh?)m@!'c&7NW0%10!G<]!ZF.*I%A"/qt^6mr[7"3!,@)bX8d\~> +g]%;c)"7M*Q+$\nh?)m@!'c&7NW0%10!G<]!ZF.*I%A"/qt^6mr[7"3!,@)bX8d\~> +g]%;c)"7M*Q+$\nh?)m@!'c&7NW0%10!G<]!ZF.*I%A"/qt^6mr[7"3!,@)bX8d\~> +h>[QQFoq+4!>kIOP!!*,XJcCf2!La@n!"&iP6=PSC`9%!uOm;uJ$giNFXT*e~> +h>[QQFoq+4!>kIOP!!*,XJcCf2!La@n!"&iP6=PSC`9%!uOm;uJ$giNFXT*e~> +h>[QQFoq+4!>kIOP!!*,XJcCf2!La@n!"&iP6=PSC`9%!uOm;uJ$giNFXT*e~> +hZ!W32=(;CQF?enX60H_KRs/crrMRfSH&`t-q"7)!!%e*s/c6N~> +hZ!W32=(;CQF?enX60H_KRs/crrMRfSH&`t-q"7)!!%e*s/c6N~> +hZ!W32=(;CQF?enX60H_KRs/crrMRfSH&`t-q"7)!!%e*s/c6N~> +hu<_P%dO)q-iLOS!W!Vr!!"Bts-!B_`#jR2!?Cres/l +hu<_P%dO)q-iLOS!W!Vr!!"Bts-!B_`#jR2!?Cres/l +hu<_P%dO)q-iLOS!W!Vr!!"Bts-!B_`#jR2!?Cres/l +iVrrL?K_@h['ou7GNSr+aasJWrrW+M"G$OR!2Y8HXoEn~> +iVrrL?K_@h['ou7GNSr+aasJWrrW+M"G$OR!2Y8HXoEn~> +iVrrL?K_@h['ou7GNSr+aasJWrrW+M"G$OR!2Y8HXoEn~> +ir9&&-0G7.6am!qgB$L +ir9&&-0G7.6am!qgB$L +ir9&&-0G7.6am!qgB$L +jSo;\M[&;D!CL!!*i2JcD,;!O!/f!;lfs_h%ijs*t~> +jSo;\M[&;D!CL!!*i2JcD,;!O!/f!;lfs_h%ijs*t~> +jSo;\M[&;D!CL!!*i2JcD,;!O!/f!;lfs_h%ijs*t~> +jSo48irB'f[f6?*k5YLhJcD2=!VU8Z!;ZZq;M"kNs*t~> +jSo48irB'f[f6?*k5YLhJcD2=!VU8Z!;ZZq;M"kNs*t~> +jSo48irB'f[f6?*k5YLhJcD2=!VU8Z!;ZZq;M"kNs*t~> +jSo8L+QNM'#O&Ys!VdAm!!$/Qs.]Morn[MP!Rr]P!;QTq"5\V/YQ'+~> +jSo8L+QNM'#O&Ys!VdAm!!$/Qs.]Morn[MP!Rr]P!;QTq"5\V/YQ'+~> +jSo8L+QNM'#O&Ys!VdAm!!$/Qs.]Morn[MP!Rr]P!;QTq"5\V/YQ'+~> +j8T/!"QTO_I^]7VEp*K($M&cJV>gYkR@!dKrrJJnJH5EE!-!MhYQ'+~> +j8T/!"QTO_I^]7VEp*K($M&cJV>gYkR@!dKrrJJnJH5EE!-!MhYQ'+~> +j8T/!"QTO_I^]7VEp*K($M&cJV>gYkR@!dKrrJJnJH5EE!-!MhYQ'+~> +ir9"3j8]2rpUC/'f)b(8!24uDVuHk_INPBarrMOcJH5?C!=/+Fs02NR~> +ir9"3j8]2rpUC/'f)b(8!24uDVuHk_INPBarrMOcJH5?C!=/+Fs02NR~> +ir9"3j8]2rpUC/'f)b(8!24uDVuHk_INPBarrMOcJH5?C!=/+Fs02NR~> +ir9&X4lcSCS@8Ft4m2kG7=kK +ir9&X4lcSCS@8Ft4m2kG7=kK +ir9&X4lcSCS@8Ft4m2kG7=kK +iVrr7$0;-f/H3-Y!2J`X!<_J8s/l;*rjkW$!(cM)rt#,!k1nD*]sFT$IV2J<,7LUQ!B97os0DZT~> +iVrr7$0;-f/H3-Y!2J`X!<_J8s/l;*rjkW$!(cM)rt#,!k1nD*]sFT$IV2J<,7LUQ!B97os0DZT~> +iVrr7$0;-f/H3-Y!2J`X!<_J8s/l;*rjkW$!(cM)rt#,!k1nD*]sFT$IV2J<,7LUQ!B97os0DZT~> +i;We-j8]1l\,QL&&a02pNIh,5rs/=k/cYkPHi:b[$hW;rYaL,[O~> +i;We-j8]1l\,QL&&a02pNIh,5rs/=k/cYkPHi:b[$hW;rYaL,[O~> +i;We-j8]1l\,QL&&a02pNIh,5rs/=k/cYkPHi:b[$hW;rYaL,[O~> +i;WiP,38e)=18,/DWh'#14fJ1rrVP?)?'U:%^35=$2``+[@W.n?8)Ps!!+kFJcE+WJ,~> +i;WiP,38e)=18,/DWh'#14fJ1rrVP?)?'U:%^35=$2``+[@W.n?8)Ps!!+kFJcE+WJ,~> +i;WiP,38e)=18,/DWh'#14fJ1rrVP?)?'U:%^35=$2``+[@W.n?8)Ps!!+kFJcE+WJ,~> +hu<\_jT#;em^N2re)p]2eUdb-rrUkf$N0r*.G1U!#3a!uI9AE>_uKg)pjrIQs*t~> +hu<\_jT#;em^N2re)p]2eUdb-rrUkf$N0r*.G1U!#3a!uI9AE>_uKg)pjrIQs*t~> +hu<\_jT#;em^N2re)p]2eUdb-rrUkf$N0r*.G1U!#3a!uI9AE>_uKg)pjrIQs*t~> +hZ!RMjT#:G[f6=fkPtU/JcE1Y!l7Y6qu?arnt?!emE)2U?9/kE!!#fGs0_lW~> +hZ!RMjT#:G[f6=fkPtU/JcE1Y!l7Y6qu?arnt?!emE)2U?9/kE!!#fGs0_lW~> +hZ!RMjT#:G[f6=fkPtU/JcE1Y!l7Y6qu?arnt?!emE)2U?9/kE!!#fGs0_lW~> +hZ!W(!Tj@^1q*DaT'-.T+T?rl])Mj1OVmrq!X"5WR/[E]c)QM-4rXOM!!&UAs0hrX~> +hZ!W(!Tj@^1q*DaT'-.T+T?rl])Mj1OVmrq!X"5WR/[E]c)QM-4rXOM!!&UAs0hrX~> +hZ!W(!Tj@^1q*DaT'-.T+T?rl])Mj1OVmrq!X"5WR/[E]c)QM-4rXOM!!&UAs0hrX~> +h>[ILjT#;/\,QL'%Hmcl_L_a"rrVq],PhB@'=s8)"THZ0=Wl5p!=RP2s0r#Y~> +h>[ILjT#;/\,QL'%Hmcl_L_a"rrVq],PhB@'=s8)"THZ0=Wl5p!=RP2s0r#Y~> +h>[ILjT#;/\,QL'%Hmcl_L_a"rrVq],PhB@'=s8)"THZ0=Wl5p!=RP2s0r#Y~> +h>[JqjT#:#[f6>:kPtTqJcEIa!q:s^q#CFNhhh@9jf"\Gq'~> +h>[JqjT#:#[f6>:kPtTqJcEIa!q:s^q#CFNhhh@9jf"\Gq'~> +h>[JqjT#:#[f6>:kPtTqJcEIa!q:s^q#CFNhhh@9jf"\Gq'~> +h#@@@jo>Dsq7$A(]]]=r')7%X_>aT!Fq49I!FGJQrr_k`49=7 +h#@@@jo>Dsq7$A(]]]=r')7%X_>aT!Fq49I!FGJQrr_k`49=7 +h#@@@jo>Dsq7$A(]]]=r')7%X_>aT!Fq49I!FGJQrr_k`49=7 +h#@AejT#:`\,QL,)X%/$YCZ_krrUnc#P\9""dFT +h#@AejT#:`\,QL,)X%/$YCZ_krrUnc#P\9""dFT +h#@AejT#:`\,QL,)X%/$YCZ_krrUnc#P\9""dFT +g]%74jo>BU[f6>JkPtT]JcE^h!mFXHpAb43`6SAfrm6gU@s+@A\,QNf@g(ck!4%1U[Jta~> +g]%74jo>BU[f6>JkPtT]JcE^h!mFXHpAb43`6SAfrm6gU@s+@A\,QNf@g(ck!4%1U[Jta~> +g]%74jo>BU[f6>JkPtT]JcE^h!mFXHpAb43`6SAfrm6gU@s+@A\,QNf@g(ck!4%1U[Jta~> +g]%8Yjo>DbkI:Hkc0,-.#k*?EaSu:R7.pT^&q0&mrrhi!Hp\>>!!%YZrrL\%irB'GJcE.XJ,~> +g]%8Yjo>DbkI:Hkc0,-.#k*?EaSu:R7.pT^&q0&mrrhi!Hp\>>!!%YZrrL\%irB'GJcE.XJ,~> +g]%8Yjo>DbkI:Hkc0,-.#k*?EaSu:R7.pT^&q0&mrrhi!Hp\>>!!%YZrrL\%irB'GJcE.XJ,~> +g]% +g]% +g]% +gA_/Mjo>B1[f6>[kPtTJJcF!p!r/32pAb6s:qtHY"5]#"!qZHma0P^G`t%22!+1 +gA_/Mjo>B1[f6>[kPtTJJcF!p!r/32pAb6s:qtHY"5]#"!qZHma0P^G`t%22!+1 +gA_/Mjo>B1[f6>[kPtTJJcF!p!r/32pAb6s:qtHY"5]#"!qZHma0P^G`t%22!+1 +gA_3O,j#(,a1)'Lg]?X>!DekCNZBs*t~> +gA_3O,j#(,a1)'Lg]?X>!DekCNZBs*t~> +gA_3O,j#(,a1)'Lg]?X>!DekCNZBs*t~> +g&D&@jo>Bn[f6=fkPtU=JcF0u!qq0OpAb7@P4I-&"88W`"7Q:1!hcd'['mKU]Y;1u`5]m@bg+S` +eCN:+gtpuToZI17lR1fp!.BFu\,Us~> +g&D&@jo>Bn[f6=fkPtU=JcF0u!qq0OpAb7@P4I-&"88W`"7Q:1!hcd'['mKU]Y;1u`5]m@bg+S` +eCN:+gtpuToZI17lR1fp!.BFu\,Us~> +g&D&@jo>Bn[f6=fkPtU=JcF0u!qq0OpAb7@P4I-&"88W`"7Q:1!hcd'['mKU]Y;1u`5]m@bg+S` +eCN:+gtpuToZI17lR1fp!.BFu\,Us~> +g&D*G&*Eon&,!F3!0cUH!%`^$eGfU5EsqaC!s(cprRLoMrkrC[cN"gf&/lcE2*XW/>%;DmIu'8W +Uoh)@ajoD>roF([iuI7_!@GU5s0r#Y~> +g&D*G&*Eon&,!F3!0cUH!%`^$eGfU5EsqaC!s(cprRLoMrkrC[cN"gf&/lcE2*XW/>%;DmIu'8W +Uoh)@ajoD>roF([iuI7_!@GU5s0r#Y~> +g&D*G&*Eon&,!F3!0cUH!%`^$eGfU5EsqaC!s(cprRLoMrkrC[cN"gf&/lcE2*XW/>%;DmIu'8W +Uoh)@ajoD>roF([iuI7_!@GU5s0r#Y~> +f`(qajo>CV\,QKn"R#gcd"25KrrV4t$2=K%$"VN7rrV55)R9>V#o4^<4@rO^Dg[A+U9;,Le`#rn +p\t9A&*j2s(74oLs0hrX~> +f`(qajo>CV\,QKn"R#gcd"25KrrV4t$2=K%$"VN7rrV55)R9>V#o4^<4@rO^Dg[A+U9;,Le`#rn +p\t9A&*j2s(74oLs0hrX~> +f`(qajo>CV\,QKn"R#gcd"25KrrV4t$2=K%$"VN7rrV55)R9>V#o4^<4@rO^Dg[A+U9;,Le`#rn +p\t9A&*j2s(74oLs0hrX~> +f`(rpjo>BJ[f6>!kPtU*JcFF'!oIYrp](@7L$R:h"9,u3"IoH##o+X;4%N@\DL71W!U]ph#^Glj +s0VfV~> +f`(rpjo>BJ[f6>!kPtU*JcFF'!oIYrp](@7L$R:h"9,u3"IoH##o+X;4%N@\DL71W!U]ph#^Glj +s0VfV~> +f`(rpjo>BJ[f6>!kPtU*JcFF'!oIYrp](@7L$R:h"9,u3"IoH##o+X;4%N@\DL71W!U]ph#^Glj +s0VfV~> +fDbh(k5YMahm`UcUZ_[Y)uY?fh#@H1@KlN,!]R"Qec,^?Oskk]qZ$Zu=Q"c1ZN#F~> +fDbh(k5YMahm`UcUZ_[Y)uY?fh#@H1@KlN,!]R"Qec,^?Oskk]qZ$Zu=Q"c1ZN#F~> +fDbh(k5YMahm`UcUZ_[Y)uY?fh#@H1@KlN,!]R"Qec,^?Oskk]qZ$Zu=Q"c1ZN#F~> +fDbi6jo>C2\,QL#$g7Qj]n-4?rrUeW"Si$!!E-tfrrUS\%"SET!!,.$JcDtSJ,~> +fDbi6jo>C2\,QL#$g7Qj]n-4?rrUeW"Si$!!E-tfrrUS\%"SET!!,.$JcDtSJ,~> +fDbi6jo>C2\,QL#$g7Qj]n-4?rrUeW"Si$!!E-tfrrUS\%"SET!!,.$JcDtSJ,~> +fDbm=#j20g+T8eL!*SLc!+CHYi;Wl,WW%JKYQ'+~> +fDbm=#j20g+T8eL!*SLc!+CHYi;Wl,WW%JKYQ'+~> +fDbm=#j20g+T8eL!*SLc!+CHYi;Wl,WW%JKYQ'+~> +f)G_Qjo>Cog]%NSbEl]m.YHX?rrBFi!!*T'JcFd1!mORCq#CI4K^I=i!oePCJH5KG!Y:1`JcDkP +J,~> +f)G_Qjo>Cog]%NSbEl]m.YHX?rrBFi!!*T'JcFd1!mORCq#CI4K^I=i!oePCJH5KG!Y:1`JcDkP +J,~> +f)G_Qjo>Cog]%NSbEl]m.YHX?rrBFi!!*T'JcFd1!mORCq#CI4K^I=i!oePCJH5KG!Y:1`JcDkP +J,~> +f)G``jo>Bdi;WuWc^SQ'#5\B&!BQM4kl1\['^,MsWIb*2rrU88!Vl]s-COVZrr`83:]l7Kq#CI! +C?gBMX8d\~> +f)G``jo>Bdi;WuWc^SQ'#5\B&!BQM4kl1\['^,MsWIb*2rrU88!Vl]s-COVZrr`83:]l7Kq#CI! +C?gBMX8d\~> +f)G``jo>Bdi;WuWc^SQ'#5\B&!BQM4kl1\['^,MsWIb*2rrU88!Vl]s-COVZrr`83:]l7Kq#CI! +C?gBMX8d\~> +f)GdM,3Jq,$Lm3X"oQf@CGuOj!!3LIk3;mGC?PWt:4`H.rrL#,p](@UY5R,T!V=D3rrVYM-\29l +!!,aDJcD_LJ,~> +f)GdM,3Jq,$Lm3X"oQf@CGuOj!!3LIk3;mGC?PWt:4`H.rrL#,p](@UY5R,T!V=D3rrVYM-\29l +!!,aDJcD_LJ,~> +f)GdM,3Jq,$Lm3X"oQf@CGuOj!!3LIk3;mGC?PWt:4`H.rrL#,p](@UY5R,T!V=D3rrVYM-\29l +!!,aDJcD_LJ,~> +ec,W&k5YMkea!/;q7M#A"7-!h#]8VfrrC"$!!*;jJcG$8!PLep!!33s_qY1srOQ*crVt2T$\8 +ec,W&k5YMkea!/;q7M#A"7-!h#]8VfrrC"$!!*;jJcG$8!PLep!!33s_qY1srOQ*crVt2T$\8 +ec,W&k5YMkea!/;q7M#A"7-!h#]8VfrrC"$!!*;jJcG$8!PLep!!33s_qY1srOQ*crVt2T$\8 +ec,[2"6ojf$$u./rri5=KL,t,!!37rs.S:+V;!YXZq@: +q#CR%L@$4Tr.4mFs*t~> +ec,[2"6ojf$$u./rri5=KL,t,!!37rs.S:+V;!YXZq@: +q#CR%L@$4Tr.4mFs*t~> +ec,[2"6ojf$$u./rri5=KL,t,!!37rs.S:+V;!YXZq@: +q#CR%L@$4Tr.4mFs*t~> +eGfM?li7(g?/k>Q"T?Z+9+BeZ!Z%L/mf*95kPtTDJcG3=!rfJ`q#CI-Gimf]#lCeu!rst$Os>MX +p](F?a8c2;JcDPGJ,~> +eGfM?li7(g?/k>Q"T?Z+9+BeZ!Z%L/mf*95kPtTDJcG3=!rfJ`q#CI-Gimf]#lCeu!rst$Os>MX +p](F?a8c2;JcDPGJ,~> +eGfM?li7(g?/k>Q"T?Z+9+BeZ!Z%L/mf*95kPtTDJcG3=!rfJ`q#CI-Gimf]#lCeu!rst$Os>MX +p](F?a8c2;JcDPGJ,~> +eGfNFm/R/Qc1(`8fp>\Qg&M.:e*m;:e*$c4!Sr>,o)AdiX>0MN!Zd9kh#@H0GSpD[!`="NJH5EE +!EeiBs.KCB~> +eGfNFm/R/Qc1(`8fp>\Qg&M.:e*m;:e*$c4!Sr>,o)AdiX>0MN!Zd9kh#@H0GSpD[!`="NJH5EE +!EeiBs.KCB~> +eGfNFm/R/Qc1(`8fp>\Qg&M.:e*m;:e*$c4!Sr>,o)AdiX>0MN!Zd9kh#@H0GSpD[!`="NJH5EE +!EeiBs.KCB~> +eGfRA%.F5t.C/OE"8T3.$.T"W!cRu*rr=J2!!%V%s7H +eGfRA%.F5t.C/OE"8T3.$.T"W!cRu*rr=J2!!%V%s7H +eGfRA%.F5t.C/OE"8T3.$.T"W!cRu*rr=J2!!%V%s7H +e,KDRnc/_,QM^=S"7Dp^$d\kS1"Ggo!.*i/!%3?tpAY3kTdTX9!]RFah>[Q'D%Z[G!!_H`.KLS[ +Djd5hSt2FBS=>t9R@0G0Q^3r&Q'@JrP*1o]HuWb&;+ +e,KDRnc/_,QM^=S"7Dp^$d\kS1"Ggo!.*i/!%3?tpAY3kTdTX9!]RFah>[Q'D%Z[G!!_H`.KLS[ +Djd5hSt2FBS=>t9R@0G0Q^3r&Q'@JrP*1o]HuWb&;+ +e,KDRnc/_,QM^=S"7Dp^$d\kS1"Ggo!.*i/!%3?tpAY3kTdTX9!]RFah>[Q'D%Z[G!!_H`.KLS[ +Djd5hSt2FBS=>t9R@0G0Q^3r&Q'@JrP*1o]HuWb&;+ +e,KEXoDeq!HL^\."6>_9"j?rJ$'G5YrrC=,!!(2ns7uZrqOAf+!!,?sh>[QHR5Nn&"pce\IAP3\ +fDcH]n)W3K`4<(IR>ur<>=^Uq%ak=Y!H@gbs.'+>~> +e,KEXoDeq!HL^\."6>_9"j?rJ$'G5YrrC=,!!(2ns7uZrqOAf+!!,?sh>[QHR5Nn&"pce\IAP3\ +fDcH]n)W3K`4<(IR>ur<>=^Uq%ak=Y!H@gbs.'+>~> +e,KEXoDeq!HL^\."6>_9"j?rJ$'G5YrrC=,!!(2ns7uZrqOAf+!!,?sh>[QHR5Nn&"pce\IAP3\ +fDcH]n)W3K`4<(IR>ur<>=^Uq%ak=Y!H@gbs.'+>~> +e,KIH)#""3!aXgZrr^l.2Z^r!!A*F*rr=5+!!$qgs82ftpm*#u!!30m`81Fp`F0/8!!X)uA;mnN +r4i7@qWHAEY*t,f@88j2'Ed:o!>`(os-it<~> +e,KIH)#""3!aXgZrr^l.2Z^r!!A*F*rr=5+!!$qgs82ftpm*#u!!30m`81Fp`F0/8!!X)uA;mnN +r4i7@qWHAEY*t,f@88j2'Ed:o!>`(os-it<~> +e,KIH)#""3!aXgZrr^l.2Z^r!!A*F*rr=5+!!$qgs82ftpm*#u!!30m`81Fp`F0/8!!X)uA;mnN +r4i7@qWHAEY*t,f@88j2'Ed:o!>`(os-it<~> +df0;ep](=\c1q;@rlKF7_>jTT_t +df0;ep](=\c1q;@rlKF7_>jTT_t +df0;ep](=\c1q;@rlKF7_>jTT_t +df0^OFZM=G$gia[O!!*7bp&>$2k5YLkJc>iPo8=I^!!3:-e_gB/rOQ#7mJmLo)`Ui +df0^OFZM=G$gia[O!!*7bp&>$2k5YLkJc>iPo8=I^!!3:-e_gB/rOQ#7mJmLo)`Ui +df0^OFZM=G$gia[O!!*7bp&>$2k5YLkJc>iPo8=I^!!3:-e_gB/rOQ#7mJmLo)`Ui +dJj1qr;Zm7QM^OY!pc"+\GuY4oCr7cr>Ol"!*k-U!qCsYq>^R$ADH)B!onnVoDf0u'f&R$M5J2K +qM>.Xqr5]"P^6_,3R[^&!rf>TrVur[JcDVIJ,~> +dJj1qr;Zm7QM^OY!pc"+\GuY4oCr7cr>Ol"!*k-U!qCsYq>^R$ADH)B!onnVoDf0u'f&R$M5J2K +qM>.Xqr5]"P^6_,3R[^&!rf>TrVur[JcDVIJ,~> +dJj1qr;Zm7QM^OY!pc"+\GuY4oCr7cr>Ol"!*k-U!qCsYq>^R$ADH)B!onnVoDf0u'f&R$M5J2K +qM>.Xqr5]"P^6_,3R[^&!rf>TrVur[JcDVIJ,~> +dJjB'!!!=Onb`=gq6!Nu[K$=Yf_>CGCZka!%.o8R!q1XLq>^R'DW9US"8]2o"8)Wr!GLWlJcG-; +!OFQZ!!'$Ms/,gH~> +dJjB'!!!=Onb`=gq6!Nu[K$=Yf_>CGCZka!%.o8R!q1XLq>^R'DW9US"8]2o"8)Wr!GLWlJcG-; +!OFQZ!!'$Ms/,gH~> +dJjB'!!!=Onb`=gq6!Nu[K$=Yf_>CGCZka!%.o8R!q1XLq>^R'DW9US"8]2o"8)Wr!GLWlJcG-; +!OFQZ!!'$Ms/,gH~> +dJj=+"'sp`rrUA['X@]>%^#O+!5@[t!X*9/L]7GHK+RkZ!Y'A;i;Wl'E#8*G!=uDcs6Tad\2O0` +!,dAfVZ2/~> +dJj=+"'sp`rrUA['X@]>%^#O+!5@[t!X*9/L]7GHK+RkZ!Y'A;i;Wl'E#8*G!=uDcs6Tad\2O0` +!,dAfVZ2/~> +dJj=+"'sp`rrUA['X@]>%^#O+!5@[t!X*9/L]7GHK+RkZ!Y'A;i;Wl'E#8*G!=uDcs6Tad\2O0` +!,dAfVZ2/~> +d/O+#r;QiZM(7E`!sD#+-dr%s!Hn;9rrN!3lMpr^fSBJ.p5Ba_!!3CPp#5oPj+o5U!!+V'JcG-; +!PLSi!!"g+s/,gH~> +d/O+#r;QiZM(7E`!sD#+-dr%s!Hn;9rrN!3lMpr^fSBJ.p5Ba_!!3CPp#5oPj+o5U!!+V'JcG-; +!PLSi!!"g+s/,gH~> +d/O+#r;QiZM(7E`!sD#+-dr%s!Hn;9rrN!3lMpr^fSBJ.p5Ba_!!3CPp#5oPj+o5U!!+V'JcG-; +!PLSi!!"g+s/,gH~> +c2RnEX@E?O!!EQmJ\q6^rr_bqGrGrr?Qr!!,$qL]7GOPT'Au!Y9bKir9,PTgStP!!3@F +q18S6rrKr$p&G*qoR[%?s*t~> +c2RnEX@E?O!!EQmJ\q6^rr_bqGrGrr?Qr!!,$qL]7GOPT'Au!Y9bKir9,PTgStP!!3@F +q18S6rrKr$p&G*qoR[%?s*t~> +c2RnEX@E?O!!EQmJ\q6^rr_bqGrGrr?Qr!!,$qL]7GOPT'Au!Y9bKir9,PTgStP!!3@F +q18S6rrKr$p&G*qoR[%?s*t~> +ci4(+H55H?"9pu:^%_7#!mkZmf)Pgj`r#c9[dO1t,,kKsrrW(g+8Ps=%Xd^)rr`21>RU'%!s(TY +oR[&1rrL,-o)JcmJcDYJJ,~> +ci4(+H55H?"9pu:^%_7#!mkZmf)Pgj`r#c9[dO1t,,kKsrrW(g+8Ps=%Xd^)rr`21>RU'%!s(TY +oR[&1rrL,-o)JcmJcDYJJ,~> +ci4(+H55H?"9pu:^%_7#!mkZmf)Pgj`r#c9[dO1t,,kKsrrW(g+8Ps=%Xd^)rr`21>RU'%!s(TY +oR[&1rrL,-o)JcmJcDYJJ,~> +dJj9`;Zu.]!uGRUo^Mk^pREkg!!*:fr;Qfn&Fof&&rudDrrW.q-2ITC%=7C$rrUVk)t3h/)0jhc +s6]geb=V4(!*k*TVuM8~> +dJj9`;Zu.]!uGRUo^Mk^pREkg!!*:fr;Qfn&Fof&&rudDrrW.q-2ITC%=7C$rrUVk)t3h/)0jhc +s6]geb=V4(!*k*TVuM8~> +dJj9`;Zu.]!uGRUo^Mk^pREkg!!*:fr;Qfn&Fof&&rudDrrW.q-2ITC%=7C$rrUVk)t3h/)0jhc +s6]geb=V4(!*k*TVuM8~> +eGfUCRP*\%"9C9-bl6r.!r\i7fDkqVo_ndi>kA!t#^#KjrrW2&/G]>J%!V$urrVAD0^o&E"]2N% +JcG-;!maUBn,NJ#q18REs*t~> +eGfUCRP*\%"9C9-bl6r.!r\i7fDkqVo_ndi>kA!t#^#KjrrW2&/G]>J%!V$urrVAD0^o&E"]2N% +JcG-;!maUBn,NJ#q18REs*t~> +eGfUCRP*\%"9C9-bl6r.!r\i7fDkqVo_ndi>kA!t#^#KjrrW2&/G]>J%!V$urrVAD0^o&E"]2N% +JcG-;!maUBn,NJ#q18REs*t~> +f)Gg.F:mX8!sqVfjQ6CCp4j13!!+\*rr2u$p&G-p>2P,8!Oaf\!!3ONlK/$Joqk:`n,NM +f)Gg.F:mX8!sqVfjQ6CCp4j13!!+\*rr2u$p&G-p>2P,8!Oaf\!!3ONlK/$Joqk:`n,NM +f)Gg.F:mX8!sqVfjQ6CCp4j13!!+\*rr2u$p&G-p>2P,8!Oaf\!!3ONlK/$Joqk:`n,NM +g&D0R\kW@j!!=*LZ1[&T!Vgom!!Nn;s8Vd#p](=[bD6)u^,u/k!Xa#5k5PP^^L@]B!!3R;`I\'T +rrUeS!p]gdB7^)]s*t~> +g&D0R\kW@j!!=*LZ1[&T!Vgom!!Nn;s8Vd#p](=[bD6)u^,u/k!Xa#5k5PP^^L@]B!!3R;`I\'T +rrUeS!p]gdB7^)]s*t~> +g&D0R\kW@j!!=*LZ1[&T!Vgom!!Nn;s8Vd#p](=[bD6)u^,u/k!Xa#5k5PP^^L@]B!!3R;`I\'T +rrUeS!p]gdB7^)]s*t~> +g]%?GPUP\p"#kYNrnIGRZPhHs"9EcFs&Agp!@kF2rrL/-q>^R'ETcKa!nV`?mf3DKm'tcds/H$K~> +g]%?GPUP\p"#kYNrnIGRZPhHs"9EcFs&Agp!@kF2rrL/-q>^R'ETcKa!nV`?mf3DKm'tcds/H$K~> +g]%?GPUP\p"#kYNrnIGRZPhHs"9EcFs&Agp!@kF2rrL/-q>^R'ETcKa!nV`?mf3DKm'tcds/H$K~> +h>[QBGRis +h>[QBGRis +h>[QBGRis +hu +hu +hu +iVru6A-V?"!sqetm`kb4fdbkZ!XXYYrr3'p"(gVNrrUt\"8`'"!a+1?rrU5R&+0E%*PpK.!"m;' +s60I_K]W78%ebJRWrIS~> +iVru6A-V?"!sqetm`kb4fdbkZ!XXYYrr3'p"(gVNrrUt\"8`'"!a+1?rrU5R&+0E%*PpK.!"m;' +s60I_K]W78%ebJRWrIS~> +iVru6A-V?"!sqetm`kb4fdbkZ!XXYYrr3'p"(gVNrrUt\"8`'"!a+1?rrU5R&+0E%*PpK.!"m;' +s60I_K]W78%ebJRWrIS~> +j8T20=p+*k!tSV;oZ@+6nl+KI!CklBrrKmrM#RP8AHho1!D1T$rrU\r+mf77#)VVb"opRAJcFp5 +!Ts[L!!&pJs/Q*L~> +j8T20=p+*k!tSV;oZ@+6nl+KI!CklBrrKmrM#RP8AHho1!D1T$rrU\r+mf77#)VVb"opRAJcFp5 +!Ts[L!!&pJs/Q*L~> +j8T20=p+*k!tSV;oZ@+6nl+KI!CklBrrKmrM#RP8AHho1!D1T$rrU\r+mf77#)VVb"opRAJcFp5 +!Ts[L!!&pJs/Q*L~> +jo5D(:BBh_!u>IWq8N@8reCU;!!*k2Jc>f7D$Tn;!B\0`rrV/90C&TC373g#!!$R)JcFj3!*A:_ +!(qhBWrIS~> +jo5D(:BBh_!u>IWq8N@8reCU;!!*k2Jc>f7D$Tn;!B\0`rrV/90C&TC373g#!!$R)JcFj3!*A:_ +!(qhBWrIS~> +jo5D(:BBh_!u>IWq8N@8reCU;!!*k2Jc>f7D$Tn;!B\0`rrV/90C&TC373g#!!$R)JcFj3!*A:_ +!(qhBWrIS~> +kPkRt7I:'W+)o'o_#FGG'BfDt!FtMKrrVP1$Mj`'0=1!E"72@;!p]gk$&bl3!!!7dJcFd1!5IXr +! +kPkRt7I:'W+)o'o_#FGG'BfDt!FtMKrrVP1$Mj`'0=1!E"72@;!p]gk$&bl3!!!7dJcFd1!5IXr +! +kPkRt7I:'W+)o'o_#FGG'BfDt!FtMKrrVP1$Mj`'0=1!E"72@;!p]gk$&bl3!!!7dJcFd1!5IXr +! +lMgqb[6*dV""AQ?rk/73hD+9q!@Ya8rrV\=%f-/,,GkA+rr_nj9EjY\!]mnVrVuskidq-hrrN*K +jo>CBJcDeNJ,~> +lMgqb[6*dV""AQ?rk/73hD+9q!@Ya8rrV\=%f-/,,GkA+rr_nj9EjY\!]mnVrVuskidq-hrrN*K +jo>CBJcDeNJ,~> +lMgqb[6*dV""AQ?rk/73hD+9q!@Ya8rrV\=%f-/,,GkA+rr_nj9EjY\!]mnVrVuskidq-hrrN*K +jo>CBJcDeNJ,~> +li."&1%5/F!AfG\\,QL&>jVLm#CuUGrrrAsp@RnBOT,CSLD'F`!ZIF%mf*Cc[9F%&!!`gI=9/C% +'Vg6Zhu<\>jo>B:JcDeNJ,~> +li."&1%5/F!AfG\\,QL&>jVLm#CuUGrrrAsp@RnBOT,CSLD'F`!ZIF%mf*Cc[9F%&!!`gI=9/C% +'Vg6Zhu<\>jo>B:JcDeNJ,~> +li."&1%5/F!AfG\\,QL&>jVLm#CuUGrrrAsp@RnBOT,CSLD'F`!ZIF%mf*Cc[9F%&!!`gI=9/C% +'Vg6Zhu<\>jo>B:JcDeNJ,~> +mJd427I^?["$Ve(ZMsra!q60s5hQ(lYCgRf4!P11!!ilK.QU:FSAt2krrVqU(]"+5&r?5Lrr`8< +BbTV/#:EFU!!!1>l[f)mrrMTsjo>D2JcDhOJ,~> +mJd427I^?["$Ve(ZMsra!q60s5hQ(lYCgRf4!P11!!ilK.QU:FSAt2krrVqU(]"+5&r?5Lrr`8< +BbTV/#:EFU!!!1>l[f)mrrMTsjo>D2JcDhOJ,~> +mJd427I^?["$Ve(ZMsra!q60s5hQ(lYCgRf4!P11!!ilK.QU:FSAt2krrVqU(]"+5&r?5Lrr`8< +BbTV/#:EFU!!!1>l[f)mrrMTsjo>D2JcDhOJ,~> +n,EICcl)t$e]bBu;";4mO3X=mL"WBdHQbi!`rrW.i*;TX:$[V:1rrUVn+63D+%gE"6 +"('l9s4dPRA``smGCfdqs*t~> +n,EICcl)t$e]bBu;";4mO3X=mL"WBdHQbi!`rrW.i*;TX:$[V:1rrUVn+63D+%gE"6 +"('l9s4dPRA``smGCfdqs*t~> +n,EICcl)t$e]bBu;";4mO3X=mL"WBdHQbi!`rrW.i*;TX:$[V:1rrUVn+63D+%gE"6 +"('l9s4dPRA``smGCfdqs*t~> +nc&[QBEe#.!t/&(n>cKhh(A:"!>5Fj!!=!.QfY4H!Os`X!!3@@kOAKQhhNf@!!3:Al@JugrrC@, +!!+) +nc&[QBEe#.!t/&(n>cKhh(A:"!>5Fj!!=!.QfY4H!Os`X!!3@@kOAKQhhNf@!!3:Al@JugrrC@, +!!+) +nc&[QBEe#.!t/&(n>cKhh(A:"!>5Fj!!=!.QfY4H!Os`X!!3@@kOAKQhhNf@!!3:Al@JugrrC@, +!!+) +oD\m\H4'%@!!'Z_ +s/l +oD\m\H4'%@!!'Z_ +s/l +oD\m\H4'%@!!'Z_ +s/l +p&>*fM\>^`"!DNsqkF)lrdY$o!! +p&>*fM\>^`"!DNsqkF)lrdY$o!! +p&>*fM\>^`"!DNsqkF)lrdY$o!! +p\t"sV +s/uBP~> +p\t"sV +s/uBP~> +p\t"sV +s/uBP~> +q#:As*r,d<"$Vb%S,WQaNu#b9!s1upqS)t2qj82r!!+peo`#$l_.OG=!!Cg +JcDnQJ,~> +q#:As*r,d<"$Vb%S,WQaNu#b9!s1upqS)t2qj82r!!+peo`#$l_.OG=!!Cg +JcDnQJ,~> +q#:As*r,d<"$Vb%S,WQaNu#b9!s1upqS)t2qj82r!!+peo`#$l_.OG=!!Cg +JcDnQJ,~> +qYpTI7/?lc#YpuWRK!;]'uBqP)118WrrKPRq>^RFX8_el!ml*3hZ*a,Dn#Fks2t?AWoa9]@"J?\ +s*t~> +qYpTI7/?lc#YpuWRK!;]'uBqP)118WrrKPRq>^RFX8_el!ml*3hZ*a,Dn#Fks2t?AWoa9]@"J?\ +s*t~> +qYpTI7/?lc#YpuWRK!;]'uBqP)118WrrKPRq>^RFX8_el!ml*3hZ*a,Dn#Fks2t?AWoa9]@"J?\ +s*t~> +r;QifEWu:>!BT#'rrM"D^&S6:8?Vj0rrM.Uq>^Rp($6c!>5-Y +s0)HQ~> +r;QifEWu:>!BT#'rrM"D^&S6:8?Vj0rrM.Uq>^Rp($6c!>5-Y +s0)HQ~> +r;QifEWu:>!BT#'rrM"D^&S6:8?Vj0rrM.Uq>^Rp($6c!>5-Y +s0)HQ~> +rr3'!T,@A(!J13;rrW1f%CuN@&prfarrW._%f65-'or%_rr_ML3aLBjo>Ci +JcDqRJ,~> +rr3'!T,@A(!J13;rrW1f%CuN@&prfarrW._%f65-'or%_rr_ML3aLBjo>Ci +JcDqRJ,~> +rr3'!T,@A(!J13;rrW1f%CuN@&prfarrW._%f65-'or%_rr_ML3aLBjo>Ci +JcDqRJ,~> +s8N,C3;EOT#,.Fa!TZW:!!aVj,UFfe-k=T(!Y'kWc2Rgm3;W[W%"@dBrr_hd8-IuR":RVF\*nnJ +^&J)Cjo>BjJcDqRJ,~> +s8N,C3;EOT#,.Fa!TZW:!!aVj,UFfe-k=T(!Y'kWc2Rgm3;W[W%"@dBrr_hd8-IuR":RVF\*nnJ +^&J)Cjo>BjJcDqRJ,~> +s8N,C3;EOT#,.Fa!TZW:!!aVj,UFfe-k=T(!Y'kWc2Rgm3;W[W%"@dBrr_hd8-IuR":RVF\*nnJ +^&J)Cjo>BjJcDqRJ,~> +!pX:tq#CF-^6np$`"hkD"=IiZchmP<#QEo:]Sp/N"kEYT*iAqarrW.V"T/6$#&NN!rr`)$ +!pX:tq#CF-^6np$`"hkD"=IiZchmP<#QEo:]Sp/N"kEYT*iAqarrW.V"T/6$#&NN!rr`)$ +!pX:tq#CF-^6np$`"hkD"=IiZchmP<#QEo:]Sp/N"kEYT*iAqarrW.V"T/6$#&NN!rr`)$ +!"eo*!?p$]rrJr%r;Zm/)?Tj;!shf&q!J(bqU20_7iBt[!B9)grrL\(qu?d">2B&T"9#uG''B5t +">annidq-9rr?s!!!(T$s02NR~> +!"eo*!?p$]rrJr%r;Zm/)?Tj;!shf&q!J(bqU20_7iBt[!B9)grrL\(qu?d">2B&T"9#uG''B5t +">annidq-9rr?s!!!(T$s02NR~> +!"eo*!?p$]rrJr%r;Zm/)?Tj;!shf&q!J(bqU20_7iBt[!B9)grrL\(qu?d">2B&T"9#uG''B5t +">annidq-9rr?s!!!(T$s02NR~> +p](=RkaDGPrdb+L!!3d4.fKDM'k4HAjSo>ERnX4E!!3@TqUYZIRg],o!D(Q5rrUJf*9R;((h'K7 +JcDqR!6=4%!0r-8YlB4~> +p](=RkaDGPrdb+L!!3d4.fKDM'k4HAjSo>ERnX4E!!3@TqUYZIRg],o!D(Q5rrUJf*9R;((h'K7 +JcDqR!6=4%!0r-8YlB4~> +p](=RkaDGPrdb+L!!3d4.fKDM'k4HAjSo>ERnX4E!!3@TqUYZIRg],o!D(Q5rrUJf*9R;((h'K7 +JcDqR!6=4%!0r-8YlB4~> +q#CFTopPg\q+CVd#SVJp"99Wd_>W6j"8/m.(Yo&l0@&8N!Uj(e!!,!lqu6`QJgom`"9LK3bPm(m +XT&>#,Nf%, +q#CFTopPg\q+CVd#SVJp"99Wd_>W6j"8/m.(Yo&l0@&8N!Uj(e!!,!lqu6`QJgom`"9LK3bPm(m +XT&>#,Nf%, +q#CFTopPg\q+CVd#SVJp"99Wd_>W6j"8/m.(Yo&l0@&8N!Uj(e!!,!lqu6`QJgom`"9LK3bPm(m +XT&>#,Nf%, +q>^OSnX9Car)E^s'S`V%14mp*rr`5>GUhSN!WmQEh#@Do+T29A-`m=Grr_GH2Z`.C!s2AnmXbD9 +rr@H0!!*l7JcE"TJ,~> +q>^OSnX9Car)E^s'S`V%14mp*rr`5>GUhSN!WmQEh#@Do+T29A-`m=Grr_GH2Z`.C!s2AnmXbD9 +rr@H0!!*l7JcE"TJ,~> +q>^OSnX9Car)E^s'S`V%14mp*rr`5>GUhSN!WmQEh#@Do+T29A-`m=Grr_GH2Z`.C!s2AnmXbD9 +rr@H0!!*l7JcE"TJ,~> +qZ$XLm@!t[raPpCM"AuMnBh1:flRkb!!,a\hu +qZ$XLm@!t[raPpCM"AuMnBh1:flRkb!!,a\hu +qZ$XLm@!t[raPpCM"AuMnBh1:flRkb!!,a\hu +qu?aGl'VJQE>FH(ao;J5lL`b&W$,ZrrTT-#Nc!f'8uj@s.]Mn,Nf%,RXtLD +s*t~> +qu?aGl'VJQE>FH(ao;J5lL`b&W$,ZrrTT-#Nc!f'8uj@s.]Mn,Nf%,RXtLD +s*t~> +qu?aGl'VJQE>FH(ao;J5lL`b&W$,ZrrTT-#Nc!f'8uj@s.]Mn,Nf%,RXtLD +s*t~> +r;ZjBjI#rKR#CUTrrUns(#o8p"/k2Z#-\a@!"!f8rr3#Y53;hI#[5"BJcDDC!,(Hp!-WqnZ2]=~> +r;ZjBjI#rKR#CUTrrUns(#o8p"/k2Z#-\a@!"!f8rr3#Y53;hI#[5"BJcDDC!,(Hp!-WqnZ2]=~> +r;ZjBjI#rKR#CUTrrUns(#o8p"/k2Z#-\a@!"!f8rr3#Y53;hI#[5"BJcDDC!,(Hp!-WqnZ2]=~> +rVus/hO+ +rVus/hO+ +rVus/hO+ +rr<'%\ULp1`sq!A#/e!!3O;`e"/YrrMEekPtT< +JcE"TJ,~> +rr<'%\ULp1`sq!A#/e!!3O;`e"/YrrMEekPtT< +JcE"TJ,~> +rr<'%\ULp1`sq!A#/e!!3O;`e"/YrrMEekPtT< +JcE"TJ,~> +rr<%TQ2_*f_f6au!e(!`rrKDRjT# +rr<%TQ2_*f_f6au!e(!`rrKDRjT# +rr<%TQ2_*f_f6au!e(!`rrKDRjT# +!WZ:#Qi@-GF;XuW!>;iUrrW+L#3GmcBC5^%mSj0>[JTt)QO36`";bsti^3VE!Y9"jJcCu7!-IB( +!:>@;ZN#F~> +!WZ:#Qi@-GF;XuW!>;iUrrW+L#3GmcBC5^%mSj0>[JTt)QO36`";bsti^3VE!Y9"jJcCu7!-IB( +!:>@;ZN#F~> +!WZ:#Qi@-GF;XuW!>;iUrrW+L#3GmcBC5^%mSj0>[JTt)QO36`";bsti^3VE!Y9"jJcCu7!-IB( +!:>@;ZN#F~> +!A=#4rr`(r637#b!Ar]HrrM:\jo>C9n,EO.*[. +!A=#4rr`(r637#b!Ar]HrrM:\jo>C9n,EO.*[. +!A=#4rr`(r637#b!Ar]HrrM:\jo>C9n,EO.*[. +!9fmO!o8);qZ$Y1pppD*Wu't"!rs0DZT~> +!9fmO!o8);qZ$Y1pppD*Wu't"!rs0DZT~> +!9fmO!o8);qZ$Y1pppD*Wu't"!rs0DZT~> +SGr]jZUOum!!*G$[f6C%;s42^#/9a0"6)t&o)&Fgr-nhD!!<6aQL+SM"MZ'GVtbiCQ2_$M]p*;! +)<:bteq*k,s*t~> +SGr]jZUOum!!*G$[f6C%;s42^#/9a0"6)t&o)&Fgr-nhD!!<6aQL+SM"MZ'GVtbiCQ2_$M]p*;! +)<:bteq*k,s*t~> +SGr]jZUOum!!*G$[f6C%;s42^#/9a0"6)t&o)&Fgr-nhD!!<6aQL+SM"MZ'GVtbiCQ2_$M]p*;! +)<:bteq*k,s*t~> +T)SlhTI'C6!@H7$rrJ>hkl:_qe+WeC["%<9rrM(@p](@GL>Vq/"8In&gO]Blrrq8dMde[Wh>dQ3 +JcE%UJ,~> +T)SlhTI'C6!@H7$rrJ>hkl:_qe+WeC["%<9rrM(@p](@GL>Vq/"8In&gO]Blrrq8dMde[Wh>dQ3 +JcE%UJ,~> +T)SlhTI'C6!@H7$rrJ>hkl:_qe+WeC["%<9rrM(@p](@GL>Vq/"8In&gO]Blrrq8dMde[Wh>dQ3 +JcE%UJ,~> +T`5)iS0Re/!E8NnrrL7bkl:`*jn\oXpqtq`rrK25q>^R:FjKm`!QY.is.0/on&_;N<%SC.!!))2 +s0DZT~> +T`5)iS0Re/!E8NnrrL7bkl:`*jn\oXpqtq`rrK25q>^R:FjKm`!QY.is.0/on&_;N<%SC.!!))2 +s0DZT~> +T`5)iS0Re/!E8NnrrL7bkl:`*jn\oXpqtq`rrK25q>^R:FjKm`!QY.is.0/on&_;N<%SC.!!))2 +s0DZT~> +UAk;jQlu/(!X4S_YQ"Xs6g4RO,kUs5!;ZHj!VL+&!! +UAk;jQlu/(!X4S_YQ"Xs6g4RO,kUs5!;ZHj!VL+&!! +UAk;jQlu/(!X4S_YQ"Xs6g4RO,kUs5!;ZHj!VL+&!! +V#LMkPo]T!!?/kWrrMt'kl:^&o)Aa=/,]GM#ZIo$JcD8?#QE_pSp+!["O$iH!qh-EZN#F~> +V#LMkPo]T!!?/kWrrMt'kl:^&o)Aa=/,]GM#ZIo$JcD8?#QE_pSp+!["O$iH!qh-EZN#F~> +V#LMkPo]T!!?/kWrrMt'kl:^&o)Aa=/,]GM#ZIo$JcD8?#QE_pSp+!["O$iH!qh-EZN#F~> +V>gRs*;0@560P?K!WIE1!!*2Fp&> +V>gRs*;0@560P?K!WIE1!!*2Fp&> +V>gRs*;0@560P?K!WIE1!!*2Fp&> +VuHeK7.pT^!I4O?rrADN!!+hOp\tHa:B1AMN9#QiV>geT`2&&s6mMrO!!,mFJcDqRJ,~> +VuHeK7.pT^!I4O?rrADN!!+hOp\tHa:B1AMN9#QiV>geT`2&&s6mMrO!!,mFJcDqRJ,~> +VuHeK7.pT^!I4O?rrADN!!+hOp\tHa:B1AMN9#QiV>geT`2&&s6mMrO!!,mFJcDqRJ,~> +WW*%jF9V@)N3rr@rA!!%rPrrg+W,(.sms/H#&ro1GKANLO9!!,4$JcDkPJ,~> +WW*%jF9V@)N3rr@rA!!%rPrrg+W,(.sms/H#&ro1GKANLO9!!,4$JcDkPJ,~> +WW*%jF9V@)N3rr@rA!!%rPrrg+W,(.sms/H#&ro1GKANLO9!!,4$JcDkPJ,~> +X8`8#V&K",!AWE)rr?p%!!*Jaqu6frO`&/;JcDkP#6!>`M-i.M[K$=ZZ@W%Vs*t~> +X8`8#V&K",!AWE)rr?p%!!*Jaqu6frO`&/;JcDkP#6!>`M-i.M[K$=ZZ@W%Vs*t~> +X8`8#V&K",!AWE)rr?p%!!*Jaqu6frO`&/;JcDkP#6!>`M-i.M[K$=ZZ@W%Vs*t~> +XT&=N3V3:PA+lVr!W>s_!!#RerrLsSJcDqR"luG2=tg,c!!478r.4mJs*t~> +XT&=N3V3:PA+lVr!W>s_!!#RerrLsSJcDqR"luG2=tg,c!!478r.4mJs*t~> +XT&=N3V3:PA+lVr!W>s_!!#RerrLsSJcDqR"luG2=tg,c!!478r.4mJs*t~> +Y5\S%M$EVQ!?8&1rrMjVlMpp^JcDkP"Q?M28f+W1!Yg[iJcD\KJ,~> +Y5\S%M$EVQ!?8&1rrMjVlMpp^JcDkP"Q?M28f+W1!Yg[iJcD\KJ,~> +Y5\S%M$EVQ!?8&1rrMjVlMpp^JcDkP"Q?M28f+W1!Yg[iJcD\KJ,~> +YQ"Xa6M:B\$"(`BrrML9li7&%q18RQrrrDYXEd;MWrN2/Hh)afVZ2/~> +YQ"Xa6M:B\$"(`BrrML9li7&%q18RQrrrDYXEd;MWrN2/Hh)afVZ2/~> +YQ"Xa6M:B\$"(`BrrML9li7&%q18RQrrrDYXEd;MWrN2/Hh)afVZ2/~> +Yl=a+'DDJ."cE)BrrM!pli7$SJcE7["P]o!6kH9s!Y'A=JcDPGJ,~> +Yl=a+'DDJ."cE)BrrM!pli7$SJcE7["P]o!6kH9s!Y'A=JcDPGJ,~> +Yl=a+'DDJ."cE)BrrM!pli7$SJcE7["P]o!6kH9s!Y'A=JcDPGJ,~> +ZMsstAbH*)6/.\)!R:f7!!+YMJcEIa"S]ik:DK]+!Y0PCJcDJEJ,~> +ZMsstAbH*)6/.\)!R:f7!!+YMJcEIa"S]ik:DK]+!Y0PCJcDJEJ,~> +ZMsstAbH*)6/.\)!R:f7!!+YMJcEIa"S]ik:DK]+!Y0PCJcDJEJ,~> +Zi:'N-hdTB&Y/iarr@lA!!'W^s2+d=l*#4j#GV8#%t3hrs.KCB~> +Zi:'N-hdTB&Y/iarr@lA!!'W^s2+d=l*#4j#GV8#%t3hrs.KCB~> +Zi:'N-hdTB&Y/iarr@lA!!'W^s2+d=l*#4j#GV8#%t3hrs.KCB~> +[/U/p!quZq.-H`m!W"J:!!#`Es2Y-CrmdHF,ls\>!YKtOJcD>AJ,~> +[/U/p!quZq.-H`m!W"J:!!#`Es2Y-CrmdHF,ls\>!YKtOJcD>AJ,~> +[/U/p!quZq.-H`m!W"J:!!#`Es2Y-CrmdHF,ls\>!YKtOJcD>AJ,~> +[f6C,FS5\87IlN>!QkN4!!*/UJcEso"T>oc9+@Hm!Y^7VJcD8?J,~> +[f6C,FS5\87IlN>!QkN4!!*/UJcEso"T>oc9+@Hm!Y^7VJcD8?J,~> +[f6C,FS5\87IlN>!QkN4!!*/UJcEso"T>oc9+@Hm!Y^7VJcD8?J,~> +\,QL%;YC(k>5=0X!,q6)!,dAfd/O7HabN:lS,`U)L[p#rRf@m~> +\,QL%;YC(k>5=0X!,q6)!,dAfd/O7HabN:lS,`U)L[p#rRf@m~> +\,QL%;YC(k>5=0X!,q6)!,dAfd/O7HabN:lS,`U)L[p#rRf@m~> +\GlTn2td4P@K)5c!V7B#!!*Q!JcF:#"THf09b3Zm!\T-$JcD,;J,~> +\GlTn2td4P@K)5c!V7B#!!*Q!JcF:#"THf09b3Zm!\T-$JcD,;J,~> +\GlTn2td4P@K)5c!V7B#!!*Q!JcF:#"THf09b3Zm!\T-$JcD,;J,~> +\c2]\+SGd9=oO +\c2]\+SGd9=oO +\c2]\+SGd9=oO +])MfD&G?))2>2k+!*ARg!(_\@h#@K9TO&Vh!#5MH,W81tA78hO>Zt62<)#\ +])MfD&G?))2>2k+!*ARg!(_\@h#@K9TO&Vh!#5MH,W81tA78hO>Zt62<)#\ +])MfD&G?))2>2k+!*ARg!(_\@h#@K9TO&Vh!#5MH,W81tA78hO>Zt62<)#\ +]Dho8!VQKo)s)kT!TXCP!!*H$JcF^/"8B?F.+nS)'Kp#e[FOX0s!7U9l.se.]Wn?'OG.t$Ch@'X +;b]bI3^6)-;d*RADKLB)_rCXnrrVA!#6"T&."VDbs*t~> +]Dho8!VQKo)s)kT!TXCP!!*H$JcF^/"8B?F.+nS)'Kp#e[FOX0s!7U9l.se.]Wn?'OG.t$Ch@'X +;b]bI3^6)-;d*RADKLB)_rCXnrrVA!#6"T&."VDbs*t~> +]Dho8!VQKo)s)kT!TXCP!!*H$JcF^/"8B?F.+nS)'Kp#e[FOX0s!7U9l.se.]Wn?'OG.t$Ch@'X +;b]bI3^6)-;d*RADKLB)_rCXnrrVA!#6"T&."VDbs*t~> +]`/#B#PJ,u$-\,'!*8Lf!5*m_jSo>:P=c2!!*B(JcD,;J,~> +]`/#B#PJ,u$-\,'!*8Lf!5*m_jSo>:P=c2!!*B(JcD,;J,~> +]`/#B#PJ,u$-\,'!*8Lf!5*m_jSo>:P=c2!!*B(JcD,;J,~> +^&J,L$M=B!OG*W6`U3^+G(K\Wrr_r%D'[s<"W^?mWm^gUrrVkM');M-j+75ts*t~> +^&J,L$M=B!OG*W6`U3^+G(K\Wrr_r%D'[s<"W^?mWm^gUrrVkM');M-j+75ts*t~> +^&J,L$M=B!OG*W6`U3^+G(K\Wrr_r%D'[s<"W^?mWm^gUrrVkM');M-j+75ts*t~> +^Ae5U%J9]%2uJ=.!&X-E!&9')li.(=O%'E6!!NBL]!!5a +^Ae5U%J9]%2uJ=.!&X-E!&9')li.(=O%'E6!!NBL]!!5a +^Ae5U%J9]%2uJ=.!&X-E!&9')li.(=O%'E6!!NBL]!!5a +^]+>]&bQ,)"k&#&!2Ju_! +^]+>]&bQ,)"k&#&!2Ju_! +^]+>]&bQ,)"k&#&!2Ju_! +_#FGe(A%S,H@c(sq&/W$!2Y8HoD\p]Uf7c_!!F$;OMLgtrrKP^o)Jc>JcD,;J,~> +_#FGe(A%S,H@c(sq&/W$!2Y8HoD\p]Uf7c_!!F$;OMLgtrrKP^o)Jc>JcD,;J,~> +_#FGe(A%S,H@c(sq&/W$!2Y8HoD\p]Uf7c_!!F$;OMLgtrrKP^o)Jc>JcD,;J,~> +_>aPq&bH&(+o-]h!WR`>!!$AWs7ZHpjd&@>jT#Dd1Ms&KX8`4=54JUQ>_2pBs*t~> +_>aPq&bH&(+o-]h!WR`>!!$AWs7ZHpjd&@>jT#Dd1Ms&KX8`4=54JUQ>_2pBs*t~> +_>aPq&bH&(+o-]h!WR`>!!$AWs7ZHpjd&@>jT#Dd1Ms&KX8`4=54JUQ>_2pBs*t~> +_Z'Z32Y-nKVLedIrrM +_Z'Z32Y-nKVLedIrrM +_Z'Z32Y-nKVLedIrrM +_Z'UNo)Je>r.4nIrr>ja!!*?'JcG`L"9-Gh.HUU5%;_Narhobth-0sK!!!O\s-Wh:~> +_Z'UNo)Je>r.4nIrr>ja!!*?'JcG`L"9-Gh.HUU5%;_Narhobth-0sK!!!O\s-Wh:~> +_Z'UNo)Je>r.4nIrr>ja!!*?'JcG`L"9-Gh.HUU5%;_Narhobth-0sK!!!O\s-Wh:~> +_uB_4nc/ZbJcG]K!0lpP!9&M/"8f`I*9R;('NLIOV#LM^C'Eo'!9A_2RK%d~> +_uB_4nc/ZbJcG]K!0lpP!9&M/"8f`I*9R;('NLIOV#LM^C'Eo'!9A_2RK%d~> +_uB_4nc/ZbJcG]K!0lpP!9&M/"8f`I*9R;('NLIOV#LM^C'Eo'!9A_2RK%d~> +`;]kf$hF?!-2`>orVllNmf3@%K`;/IY$Mb)!!Ed*NmR`urrBUo!!'W^s-`n;~> +`;]kf$hF?!-2`>orVllNmf3@%K`;/IY$Mb)!!Ed*NmR`urrBUo!!'W^s-`n;~> +`;]kf$hF?!-2`>orVllNmf3@%K`;/IY$Mb)!!Ed*NmR`urrBUo!!'W^s-`n;~> +`W#u0..R? +`W#u0..R? +`W#u0..R? +`W#p=nc/\+qLS\Drr?Nt!!%;%rr_5C63QNQ"!)BprL!Tb([:u#BS$2Os*t~> +`W#p=nc/\+qLS\Drr?Nt!!%;%rr_5C63QNQ"!)BprL!Tb([:u#BS$2Os*t~> +`W#p=nc/\+qLS\Drr?Nt!!%;%rr_5C63QNQ"!)BprL!Tb([:u#BS$2Os*t~> +`r?%(nGiQ0JcGTH!2o;d!*5*Z"4Vu[!U9Xe"@.puPlC_Pl2UfKJcD/ +`r?%(nGiQ0JcGTH!2o;d!*5*Z"4Vu[!U9Xe"@.puPlC_Pl2UfKJcD/ +`r?%(nGiQ0JcGTH!2o;d!*5*Z"4Vu[!U9Xe"@.puPlC_Pl2UfKJcD/ +a8Z2'&+KW"dt.PqrrMBdnGiPGOT,C(FsH5O!tnh9mZIMLFQri+'nQCQs*t~> +a8Z2'&+KW"dt.PqrrMBdnGiPGOT,C(FsH5O!tnh9mZIMLFQri+'nQCQs*t~> +a8Z2'&+KW"dt.PqrrMBdnGiPGOT,C(FsH5O!tnh9mZIMLFQri+'nQCQs*t~> +a8Z-FnGiPHJcGNF!&=!D!"kCo!V9@V!!=Zn_Y]An!2A]X!:,49Rf@m~> +a8Z-FnGiPHJcGNF!&=!D!"kCo!V9@V!!=Zn_Y]An!2A]X!:,49Rf@m~> +a8Z-FnGiPHJcGNF!&=!D!"kCo!V9@V!!=Zn_Y]An!2A]X!:,49Rf@m~> +aSu:X!V$-iQ@])2rr@'.!!)t^rrL_#li7+l7$-2]rrCI2!!'les-it<~> +aSu:X!V$-iQ@])2rr@'.!!)t^rrL_#li7+l7$-2]rrCI2!!'les-it<~> +aSu:X!V$-iQ@])2rr@'.!!)t^rrL_#li7+l7$-2]rrCI2!!'les-it<~> +ao;D=/b&fA#P\n,NIaQ2^lc%IO2u(14-4L]7DN#3l0gR">:+s*t~> +ao;D=/b&fA#P\n,NIaQ2^lc%IO2u(14-4L]7DN#3l0gR">:+s*t~> +ao;D=/b&fA#P\n,NIaQ2^lc%IO2u(14-4L]7DN#3l0gR">:+s*t~> +ao;@%n,NGVJcGKE!4VFt!;)WX!rI$>n,NPCHH,o9rr=_;!!$qgs-it<~> +ao;@%n,NGVJcGKE!4VFt!;)WX!rI$>n,NPCHH,o9rr=_;!!$qgs-it<~> +ao;@%n,NGVJcGKE!4VFt!;)WX!rI$>n,NPCHH,o9rr=_;!!$qgs-it<~> +b5VM)%e'GuNIh-(rrC^@!!)MUrrM:Hnc/at8X87cs8W*!?0VCi7=kK-s*t~> +b5VM)%e'GuNIh-(rrC^@!!)MUrrM:Hnc/at8X87cs8W*!?0VCi7=kK-s*t~> +b5VM)%e'GuNIh-(rrC^@!!)MUrrM:Hnc/at8X87cs8W*!?0VCi7=kK-s*t~> +b5VHHmf3@QrrL"UoDesu@^,WYs8;lsMs:9B*.e-Ys*t~> +b5VHHmf3@QrrL"UoDesu@^,WYs8;lsMs:9B*.e-Ys*t~> +b5VHHmf3@QrrL"UoDesu@^,WYs8;lsMs:9B*.e-Ys*t~> +bPqUs!q60i++aIbrr=#.!!)2NrrJ2bp&G1+@(,o_s7uZp\`s.q!V(a@S,\!~> +bPqUs!q60i++aIbrr=#.!!)2NrrJ2bp&G1+@(,o_s7uZp\`s.q!V(a@S,\!~> +bPqUs!q60i++aIbrr=#.!!)2NrrJ2bp&G1+@(,o_s7uZp\`s.q!V(a@S,\!~> +bPqQXmf3?#JcGEC!'B]N!99UL!V9Ff!!<[6Z1rnMpAY-Ukl:_)JcD5>J,~> +bPqQXmf3?#JcGEC!'B]N!99UL!V9Ff!!<[6Z1rnMpAY-Ukl:_)JcD5>J,~> +bPqQXmf3?#JcGEC!'B]N!99UL!V9Ff!!<[6Z1rnMpAY-Ukl:_)JcD5>J,~> +bl7_3$h"&qY(?WGrr? +bl7_3$h"&qY(?WGrr? +bl7_3$h"&qY(?WGrr? +bl7[!mJm7KJcGEC!.FA;!8=%E!NZe.!!J,~> +bl7[!mJm7KJcGEC!.FA;!8=%E!NZe.!!J,~> +bl7[!mJm7KJcGEC!.FA;!8=%E!NZe.!!J,~> +c2Rh@*:Ek-)1hh[rrA>S!!(rMrrW(?!W +c2Rh@*:Ek-)1hh[rrA>S!!(rMrrW(?!W +c2Rh@*:Ek-)1hh[rrA>S!!(rMrrW(?!W +c2Rd?mJm5\JcGBB!133U!;<,d!U)fJ!!J,~> +c2Rd?mJm5\JcGBB!133U!;<,d!U)fJ!!J,~> +c2Rd?mJm5\JcGBB!133U!;<,d!U)fJ!!J,~> +c2Rc#mJm6:JcGBB!1EBX!"GY%#/qM]!^E"8JcFm4!6sd/!~> +c2Rc#mJm6:JcGBB!1EBX!"GY%#/qM]!^E"8JcFm4!6sd/!~> +c2Rc#mJm6:JcGBB!1EBX!"GY%#/qM]!^E"8JcFm4!6sd/!~> +cMmm`m/R-lJcGBB!1WNZ!$n<="Hj!NOl_/oj8T/S"R5sec[l+ds*t~> +cMmm`m/R-lJcGBB!1WNZ!$n<="Hj!NOl_/oj8T/S"R5sec[l+ds*t~> +cMmm`m/R-lJcGBB!1WNZ!$n<="Hj!NOl_/oj8T/S"R5sec[l+ds*t~> +cMmlcm/R.JJcGBB!1iZ\!'6qU"8%V3iIV$drr=P6!!&jHs.'+>~> +cMmlcm/R.JJcGBB!1iZ\!'6qU"8%V3iIV$drr=P6!!&jHs.'+>~> +cMmlcm/R.JJcGBB!1iZ\!'6qU"8%V3iIV$drr=P6!!&jHs.'+>~> +cMmkmmJm4pJcG?A!2&f^!)TKk!;h?Ih#@@Vl2Ug3JcD8?J,~> +cMmkmmJm4pJcG?A!2&f^!)TKk!;h?Ih#@@Vl2Ug3JcD8?J,~> +cMmkmmJm4pJcG?A!2&f^!)TKk!;h?Ih#@@Vl2Ug3JcD8?J,~> +ci4"#m/R,9JcG?A!28r`!,$l_JcG`L!/Bb=!)eCJSH"*~> +ci4"#m/R,9JcG?A!28r`!,$l_JcG`L!/Bb=!)eCJSH"*~> +ci4"#m/R,9JcG?A!28r`!,$l_JcG`L!/Bb=!)eCJSH"*~> +ci4!-m/R,XJcG?A!2K)b!.F)2!OeSNs-`le[-@Vk-\;;fs*t~> +ci4!-m/R,XJcG?A!2K)b!.F)2!OeSNs-`le[-@Vk-\;;fs*t~> +ci4!-m/R,XJcG?A!2K)b!.F)2!OeSNs-`le[-@Vk-\;;fs*t~> +ci3u8m/R-#JcG?A!2T/c!0c^J"3a+4?%N$DrrD$C!!*5tJcD;@J,~> +ci3u8m/R-#JcG?A!2T/c!0c^J"3a+4?%N$DrrD$C!!*5tJcD;@J,~> +ci3u8m/R-#JcG?A!2T/c!0c^J"3a+4?%N$DrrD$C!!*5tJcD;@J,~> +d/O.<#OMKkLk5TtrrAV\!!'4hrrq7_!<<*aJcD,;!"nJr!76;sSc=3~> +d/O.<#OMKkLk5TtrrAV\!!'4hrrq7_!<<*aJcD,;!"nJr!76;sSc=3~> +d/O.<#OMKkLk5TtrrAV\!!'4hrrq7_!<<*aJcD,;!"nJr!76;sSc=3~> +d/O*Mli7$`JcG?A!/0nC!8R#B!pjn3r;Zg@ec,[4eq*k@rr>7J!!&jHs.01?~> +d/O*Mli7$`JcG?A!/0nC!8R#B!pjn3r;Zg@ec,[4eq*k@rr>7J!!&jHs.01?~> +d/O*Mli7$`JcG?A!/0nC!8R#B!pjn3r;Zg@ec,[4eq*k@rr>7J!!&jHs.01?~> +d/O)Xli7%!JcG?A!,D**!=f"srrVnM&GlG.#6!6T"T=NJ<:b\@`r?$Tl2Ug1JcD;@J,~> +d/O)Xli7%!JcG?A!,D**!=f"srrVnM&GlG.#6!6T"T=NJ<:b\@`r?$Tl2Ug1JcD;@J,~> +d/O)Xli7%!JcG?A!,D**!=f"srrVnM&GlG.#6!6T"T=NJ<:b\@`r?$Tl2Ug1JcD;@J,~> +d/O)&li7%-JcG?A!)`=f!'9ZM!r\`3p]( +d/O)&li7%-JcG?A!)`=f!'9ZM!r\`3p]( +d/O)&li7%-JcG?A!)`=f!'9ZM!r\`3p]( +d/O(Uli7%:JcG?A!&sKL!,1s'!OaWS!!('qrs&(S)ZVh7h#.0P!eLBorrC.*!!"9qs.01?~> +d/O(Uli7%:JcG?A!&sKL!,1s'!OaWS!!('qrs&(S)ZVh7h#.0P!eLBorrC.*!!"9qs.01?~> +d/O(Uli7%:JcG?A!&sKL!,1s'!OaWS!!('qrs&(S)ZVh7h#.0P!eLBorrC.*!!"9qs.01?~> +dJj40lMpqEJcG?A!$:_3!13?X!R*n&!!'"Urs.qA'*&,Z^?#7ms7q6Gao;D6!p]ge"87 +dJj40lMpqEJcG?A!$:_3!13?X!R*n&!!'"Urs.qA'*&,Z^?#7ms7q6Gao;D6!p]ge"87 +dJj40lMpqEJcG?A!$:_3!13?X!R*n&!!'"Urs.qA'*&,Z^?#7ms7q6Gao;D6!p]ge"87 +dJj3_lMpqRJcGBB!WE;p!!("3rrV%\!V69kMrF[Aj`:h1!$/ALq>UBqnur%Ds2Y->-0bI1c%5nd +s*t~> +dJj3_lMpqRJcGBB!WE;p!!("3rrV%\!V69kMrF[Aj`:h1!$/ALq>UBqnur%Ds2Y->-0bI1c%5nd +s*t~> +dJj3_lMpqRJcGBB!WE;p!!("3rrV%\!V69kMrF[Aj`:h1!$/ALq>UBqnur%Ds2Y->-0bI1c%5nd +s*t~> +dJj39lMpq^JcGBB!:'.U!&E +T)X<~> +dJj39lMpq^JcGBB!:'.U!&E +T)X<~> +dJj39lMpq^JcGBB!:'.U!&E +T)X<~> +dJj2hli7"fJcG?A!7:<;!$h=>!qqE]mf3>fjo5DPHOB`P$4E00l2UeW[P\&3JcE^h!.a>7!-j(p +T)X<~> +dJj2hli7"fJcG?A!7:<;!$h=>!qqE]mf3>fjo5DPHOB`P$4E00l2UeW[P\&3JcE^h!.a>7!-j(p +T)X<~> +dJj2hli7"fJcG?A!7:<;!$h=>!qqE]mf3>fjo5DPHOB`P$4E00l2UeW[P\&3JcE^h!.a>7!-j(p +T)X<~> +dJj2BlMpq_JcGBB!3bto!)rdp!rSZ2m/R,RkPkVZOVRfp$STB7rr;o< +dJj2BlMpq_JcGBB!3bto!)rdp!rSZ2m/R,RkPkVZOVRfp$STB7rr;o< +dJj2BlMpq_JcGBB!3bto!)rdp!rSZ2m/R,RkPkVZOVRfp$STB7rr;o< +dJj1qlMpqYJcGBB!.FG=!0d?\!OaWH!!"b;rrJQ%qu@+8dG=j&e8lB*!&F4us2=p;e*6o5,(]cc +s*t~> +dJj1qlMpqYJcGBB!.FG=!0d?\!OaWH!!"b;rrJQ%qu@+8dG=j&e8lB*!&F4us2=p;e*6o5,(]cc +s*t~> +dJj1qlMpqYJcGBB!.FG=!0d?\!OaWH!!"b;rrJQ%qu@+8dG=j&e8lB*!&F4us2=p;e*6o5,(]cc +s*t~> +dJj1RlMpqRJcGBB!))n`!8.8M!+kBp!$CM+!T?cN!!`ad_=R][OY-P4!>FRGs24j;pB0^]! +dJj1RlMpqRJcGBB!))n`!8.8M!+kBp!$CM+!T?cN!!`ad_=R][OY-P4!>FRGs24j;pB0^]! +dJj1RlMpqRJcGBB!))n`!8.8M!+kBp!$CM+!T?cN!!`ad_=R][OY-P4!>FRGs24j;pB0^]! +dJj1NlMpqLJcGBB!#bD/!$;( +dJj1NlMpqLJcGBB!#bD/!$;( +dJj1NlMpqLJcGBB!#bD/!$;( +dJj1LlMpqEJcGEC!9NeP!+Pm+!.sG8!A3Q@1N59! +dJj1LlMpqEJcGEC!9NeP!+Pm+!.sG8!A3Q@1N59! +dJj1LlMpqEJcGEC!9NeP!+Pm+!.sG8!A3Q@1N59! +dJj1JlMpq;JcGEC!427s!2obp!2er[!9rtP!T,.#!!`Ne+F3OMB.*QV!.f_$^]+:Ql2Ug,JcDAB +J,~> +dJj1JlMpq;JcGEC!427s!2obp!2er[!9rtP!T,.#!!`Ne+F3OMB.*QV!.f_$^]+:Ql2Ug,JcDAB +J,~> +dJj1JlMpq;JcGEC!427s!2obp!2er[!9rtP!T,.#!!`Ne+F3OMB.*QV!.f_$^]+:Ql2Ug,JcDAB +J,~> +df0=Hl2Uh"JcGEC!.jbB!rsLFZ!?asli,Q9(B0Z4m!EoDQs1eR6Qg+PN8qI#7 +s*t~> +df0=Hl2Uh"JcGEC!.jbB!rsLFZ!?asli,Q9(B0Z4m!EoDQs1eR6Qg+PN8qI#7 +s*t~> +df0=Hl2Uh"JcGEC!.jbB!rsLFZ!?asli,Q9(B0Z4m!EoDQs1eR6Qg+PN8qI#7 +s*t~> +df0=Fl2Ug]JcGEC!)E.d!&FHO!:K%N!64L-$N8TUs8UkuV-lq%q>^OOpjrIZrrBh!!!"*ls.B=A~> +df0=Fl2Ug]JcGEC!)E.d!&FHO!:K%N!64L-$N8TUs8UkuV-lq%q>^OOpjrIZrrBh!!!"*ls.B=A~> +df0=Fl2Ug]JcGEC!)E.d!&FHO!:K%N!64L-$N8TUs8UkuV-lq%q>^OOpjrIZrrBh!!!"*ls.B=A~> +df0=Dl2UgBJcGEC!$(V2!-e;>!#+Ss!4;(l"O_9p7i_=)!>+1?s1SF4k3;pI!V1gAT`9N~> +df0=Dl2UgBJcGEC!$(V2!-e;>!#+Ss!4;(l"O_9p7i_=)!>+1?s1SF4k3;pI!V1gAT`9N~> +df0=Dl2UgBJcGEC!$(V2!-e;>!#+Ss!4;(l"O_9p7i_=)!>+1?s1SF4k3;pI!V1gAT`9N~> +df0=Bl2Ug(JcGHD!9NeP!5/1.!&s-B!3>Jd"2?r_0D>GHVLecZrr +df0=Bl2Ug(JcGHD!9NeP!5/1.!&s-B!3>Jd"2?r_0D>GHVLecZrr +df0=Bl2Ug(JcGHD!9NeP!5/1.!&s-B!3>Jd"2?r_0D>GHVLecZrr +df0=@l2UfbJcGHD!1WT\!>G>+rr?9f!!'"crr\uH3X#0W!*FgP])Mafl2UgTJcDDCJ,~> +df0=@l2UfbJcGHD!1WT\!>G>+rr?9f!!'"crr\uH3X#0W!*FgP])Mafl2UgTJcDDCJ,~> +df0=@l2UfbJcGHD!1WT\!>G>+rr?9f!!'"crr\uH3X#0W!*FgP])Mafl2UgTJcDDCJ,~> +df0@F!p]gd3J%5(rr>sh!!$^.rr@Q5!!&narrT/m%e]l'#2b"3])Mb8l2Ug)JcDDCJ,~> +df0@F!p]gd3J%5(rr>sh!!$^.rr@Q5!!&narrT/m%e]l'#2b"3])Mb8l2Ug)JcDDCJ,~> +df0@F!p]gd3J%5(rr>sh!!$^.rr@Q5!!&narrT/m%e]l'#2b"3])Mb8l2Ug)JcDDCJ,~> +dJj1elMpqprIP"DrrMs+oDem.q>UGckl:^Yn,EEQ"S;ZoBn?;prr@]:!!#]Ds.KCB~> +dJj1elMpqprIP"DrrMs+oDem.q>UGckl:^Yn,EEQ"S;ZoBn?;prr@]:!!#]Ds.KCB~> +dJj1elMpqprIP"DrrMs+oDem.q>UGckl:^Yn,EEQ"S;ZoBn?;prr@]:!!#]Ds.KCB~> +dJj21l2UhAb!%EL!T`9N~> +dJj21l2UhAb!%EL!T`9N~> +dJj21l2UhAb!%EL!T`9N~> +dJj2Sl2UgaJcGNF!-Ro6!-e5 +dJj2Sl2UgaJcGNF!-Ro6!-e5 +dJj2Sl2UgaJcGNF!-Ro6!-e5 +dJj2tl2Ug0JcGNF!%[[A!7CTA!:&eK!1WQZ!Pnj.!!$8Ts1&(0pB'U[!9&M/U&TW~> +dJj2tl2Ug0JcGNF!%[[A!7CTA!:&eK!1WQZ!Pnj.!!$8Ts1&(0pB'U[!9&M/U&TW~> +dJj2tl2Ug0JcGNF!%[[A!7CTA!:&eK!1WQZ!Pnj.!!$8Ts1&(0pB'U[!9&M/U&TW~> +dJj3@l2UfUJcGQG!9*PM!%msF!WE;g!!&GYrrM0snGiQ`JcE4Z!$UV-!5=$aU&TW~> +dJj3@l2UfUJcGQG!9*PM!%msF!WE;g!!&GYrrM0snGiQ`JcE4Z!$UV-!5=$aU&TW~> +dJj3@l2UfUJcGQG!9*PM!%msF!WE;g!!&GYrrM0snGiQ`JcE4Z!$UV-!5=$aU&TW~> +dJj3al2UhtrIP"FrrADX!!%fJrr=,*!!&>WrrMpUnGiRjkCNZBrr>UT!!&L>s.TIC~> +dJj3al2UhtrIP"FrrADX!!%fJrr=,*!!&>WrrMpUnGiRjkCNZBrr>UT!!&L>s.TIC~> +dJj3al2UhtrIP"FrrADX!!%fJrr=,*!!&>WrrMpUnGiRjkCNZBrr>UT!!&L>s.TIC~> +dJj4-kl:_)JcGTH!(una!"C!!&5Trr?g'!!"?ss0hq-Ds@<&GCfdfs*t~> +dJj4-kl:_)JcGTH!(una!"C!!&5Trr?g'!!"?ss0hq-Ds@<&GCfdfs*t~> +dJj4-kl:_)JcGTH!(una!"C!!&5Trr?g'!!"?ss0hq-Ds@<&GCfdfs*t~> +dJj7G#jMBiIt@XsrrM9co`+t\p&>"hl2UgHp&>#umf3>XJcE1Y!12sN!*"OLU&TW~> +dJj7G#jMBiIt@XsrrM9co`+t\p&>"hl2UgHp&>#umf3>XJcE1Y!12sN!*"OLU&TW~> +dJj7G#jMBiIt@XsrrM9co`+t\p&>"hl2UgHp&>#umf3>XJcE1Y!12sN!*"OLU&TW~> +d/O(rl2UfBJcGWI!0$OM!42@u!,Cd!!06dQ!VR]*!!$P\s0hq-^?P[u0nK@us*t~> +d/O(rl2UfBJcGWI!0$OM!42@u!,Cd!!06dQ!VR]*!!$P\s0hq-^?P[u0nK@us*t~> +d/O(rl2UfBJcGWI!0$OM!42@u!,Cd!!06dQ!VR]*!!$P\s0hq-^?P[u0nK@us*t~> +d/O)\l2Uhdl%/m4rr=YD!!+DEp&>#El2UgBpAY,?mJm6=JcE1Y!9NJG!"OS[U&TW~> +d/O)\l2Uhdl%/m4rr=YD!!+DEp&>#El2UgBpAY,?mJm6=JcE1Y!9NJG!"OS[U&TW~> +d/O)\l2Uhdl%/m4rr=YD!!+DEp&>#El2UgBpAY,?mJm6=JcE1Y!9NJG!"OS[U&TW~> +d/O*Kkl:^WJcG]K!6k'8!0[!S!0ZUI!/^IM!SI_G!!&[Cs0hq.rXS2n!:#.8UAo`~> +d/O*Kkl:^WJcG]K!6k'8!0[!S!0ZUI!/^IM!SI_G!!&[Cs0hq.rXS2n!:#.8UAo`~> +d/O*Kkl:^WJcG]K!6k'8!0[!S!0ZUI!/^IM!SI_G!!&[Cs0hq.rXS2n!:#.8UAo`~> +d/O.8"6ojd5_8t6rr?p/!!*W$o`"o_l2Ug=p\t4sm/R-qJcE.X!&Ws@!60TiUAo`~> +d/O.8"6ojd5_8t6rr?p/!!*W$o`"o_l2Ug=p\t4sm/R-qJcE.X!&Ws@!60TiUAo`~> +d/O.8"6ojd5_8t6rr?p/!!*W$o`"o_l2Ug=p\t4sm/R-qJcE.X!&Ws@!60TiUAo`~> +ci3u)l2Uhcf7Eu%rrMp0o`+u2oD\fkl2Ug:q#:BX#42BjZ%;q_rr?-c!!&dFs.]OD~> +ci3u)l2Uhcf7Eu%rrMp0o`+u2oD\fkl2Ug:q#:BX#42BjZ%;q_rr?-c!!&dFs.]OD~> +ci3u)l2Uhcf7Eu%rrMp0o`+u2oD\fkl2Ug:q#:BX#42BjZ%;q_rr?-c!!&dFs.]OD~> +ci3umkl:^&JcGcM!3Pno!<_0LrrBOn!!%TFrr@W:!!&sKs0_k,FQri+J:[`ps*t~> +ci3umkl:^&JcGcM!3Pno!<_0LrrBOn!!%TFrr@W:!!&sKs0_k,FQri+J:[`ps*t~> +ci3umkl:^&JcGcM!3Pno!<_0LrrBOn!!%TFrr@W:!!&sKs0_k,FQri+J:[`ps*t~> +ci4!\kl:_rp4<5Es%`4e!)N1c!5n(%!.ObD!W!`$!!&UAs0_k,Om2oH?%N$Ms*t~> +ci4!\kl:_rp4<5Es%`4e!)N1c!5n(%!.ObD!W!`$!!&UAs0_k,Om2oH?%N$Ms*t~> +ci4!\kl:_rp4<5Es%`4e!)N1c!5n(%!.ObD!W!`$!!&UAs0_k,Om2oH?%N$Ms*t~> +ci4%A%-[`lRt:S?j9"uS!5A%(!7:!2!.4PA!4_=p!0i'7[Jp60l2UfEJcDJEJ,~> +ci4%A%-[`lRt:S?j9"uS!5A%(!7:!2!.4PA!4_=p!0i'7[Jp60l2UfEJcDJEJ,~> +ci4%A%-[`lRt:S?j9"uS!5A%(!7:!2!.4PA!4_=p!0i'7[Jp60l2UfEJcDJEJ,~> +cMml:kl:_rh1GY,FnG_72t?nJh!+k>H27I?H0YG1Jq +cMml:kl:_rh1GY,FnG_72t?nJh!+k>H27I?H0YG1Jq +cMml:kl:_rh1GY,FnG_72t?nJh!+k>H27I?H0YG1Jq +cMmm)kPtW=pOrPIn.50l!5%e$!9rbK!.anF!'9EG!*"OL[Jp6ikl:_SJcDMFJ,~> +cMmm)kPtW=pOrPIn.50l!5%e$!9rbK!.anF!'9EG!*"OL[Jp6ikl:_SJcDMFJ,~> +cMmm)kPtW=pOrPIn.50l!5%e$!9rbK!.anF!'9EG!*"OL[Jp6ikl:_SJcDMFJ,~> +cMmq(!pBUaA;'s_MY-rL5k+dRp$)MWNV`YUo`j^^!%!3r[Jp:,#O29hc[l+ks*t~> +cMmq(!pBUaA;'s_MY-rL5k+dRp$)MWNV`YUo`j^^!%!3r[Jp:,#O29hc[l+ks*t~> +cMmq(!pBUaA;'s_MY-rL5k+dRp$)MWNV`YUo`j^^!%!3r[Jp:,#O29hc[l+ks*t~> +c2Rc7k5YLSLAq;M)ta12_sm[,rWDHd!1E]`!5n(%! +c2Rc7k5YLSLAq;M)ta12_sm[,rWDHd!1E]`!5n(%! +c2Rc7k5YLSLAq;M)ta12_sm[,rWDHd!1E]`!5n(%! +c2RdJk5YMhd"hW$TCi0a8FHKX&*j2qV>C2lXQ]]b`.@rrrr>:K!!%h+s.fUE~> +c2RdJk5YMhd"hW$TCi0a8FHKX&*j2qV>C2lXQ]]b`.@rrrr>:K!!%h+s.fUE~> +c2RdJk5YMhd"hW$TCi0a8FHKX&*j2qV>C2lXQ]]b`.@rrrr>:K!!%h+s.fUE~> +c2RhA*9R;&-1Hck!WFYD!!*,Dmf*8+lMppiqYpPakl:^;JcE.X!*ndh!+g`]U]5i~> +c2RhA*9R;&-1Hck!WFYD!!*,Dmf*8+lMppiqYpPakl:^;JcE.X!*ndh!+g`]U]5i~> +c2RhA*9R;&-1Hck!WFYD!!*,Dmf*8+lMppiqYpPakl:^;JcE.X!*ndh!+g`]U]5i~> +bl7Znjo>EZreg^U[IjM";!n8_.-gj5^A@j0M!4m>14fJ5rr@?0!!#?:s.fUE~> +bl7Znjo>EZreg^U[IjM";!n8_.-gj5^A@j0M!4m>14fJ5rr@?0!!#?:s.fUE~> +bl7Znjo>EZreg^U[IjM";!n8_.-gj5^A@j0M!4m>14fJ5rr@?0!!#?:s.fUE~> +bl7_("Qf[aMi.N75kY0Y!n$E8!&X!A!6Y0ml2Uf+JcDMFJ,~> +bl7_("Qf[aMi.N75kY0Y!n$E8!&X!A!6Y0ml2Uf+JcDMFJ,~> +bl7_("Qf[aMi.N75kY0Y!n$E8!&X!A!6Y0ml2Uf+JcDMFJ,~> +bPqQDaXc38[_Y!m/=mZ.g5jJCMf)#CHGN]#,Mh1o:rrB7f!!*9&JcDPGJ,~> +bPqQDaXc38[_Y!m/=mZ.g5jJCMf)#CHGN]#,Mh1o:rrB7f!!*9&JcDPGJ,~> +bPqQDaXc38[_Y!m/=mZ.g5jJCMf)#CHGN]#,Mh1o:rrB7f!!*9&JcDPGJ,~> +bPqROjT#;e^lJEqr\jHM!=RoRrr>dZ!!)'UrrA,D!!"s/s0hq-_W_%#l[f)3s*t~> +bPqROjT#;e^lJEqr\jHM!=RoRrr>dZ!!)'UrrA,D!!"s/s0hq-_W_%#l[f)3s*t~> +bPqROjT#;e^lJEqr\jHM!=RoRrr>dZ!!)'UrrA,D!!"s/s0hq-_W_%#l[f)3s*t~> +bPqVA+lr\)&($C;!35\l!/Tt@!*SUf!:Tda!3#&\!6]rn\,QHYkl:_4JcDPGJ,~> +bPqVA+lr\)&($C;!35\l!/Tt@!*SUf!:Tda!3#&\!6]rn\,QHYkl:_4JcDPGJ,~> +bPqVA+lr\)&($C;!35\l!/Tt@!*SUf!:Tda!3#&\!6]rn\,QHYkl:_4JcDPGJ,~> +b5VHsj8]2uh3%^ +b5VHsj8]2uh3%^ +b5VHsj8]2uh3%^ +b5VM7/E?d3-0^Tm!0m-V!4qIq!-7E+!!rE#!8?T9!3s1&(0qZ5s^!2S!A"7N@1[Jg+,l>ikT +s5 +b5VM7/E?d3-0^Tm!0m-V!4qIq!-7E+!!rE#!8?T9!3s1&(0qZ5s^!2S!A"7N@1[Jg+,l>ikT +s5 +b5VM7/E?d3-0^Tm!0m-V!4qIq!-7E+!!rE#!8?T9!3s1&(0qZ5s^!2S!A"7N@1[Jg+,l>ikT +s5 +ao;Cn%HIKi1\-e1!V.$"!!$!_rr@<1!!!c0rrMs)k5YL&JcE4Z!"eDq!0#G-#5Q)_2Zk,Arr3,f +G7+CPJcF[.J,~> +ao;Cn%HIKi1\-e1!V.$"!!$!_rr@<1!!!c0rrMs)k5YL&JcE4Z!"eDq!0#G-#5Q)_2Zk,Arr3,f +G7+CPJcF[.J,~> +ao;Cn%HIKi1\-e1!V.$"!!$!_rr@<1!!!c0rrMs)k5YL&JcE4Z!"eDq!0#G-#5Q)_2Zk,Arr3,f +G7+CPJcF[.J,~> +aSu7 +aSu7 +aSu7 +a8Z-UirB*Kp6Yd[k7%%a!/Ke +a8Z-UirB*Kp6Yd[k7%%a!/Ke +a8Z-UirB*Kp6Yd[k7%%a!/Ke +a8Z292WFc<3pi=7!+bd'!@7O*rr@6/!!#%SrrC.&!!*, +a8Z292WFc<3pi=7!+bd'!@7O*rr@6/!!#%SrrC.&!!*, +a8Z292WFc<3pi=7!+bd'!@7O*rr@6/!!#%SrrC.&!!*, +`r?(t'B9&n/*!)u!Q+s4!!*2@kPkO)li7#Tq#:Bl%H[Wk0Dg>#])Mb9l2Uf9j8T8[ab2k_pAb=Z +jn4KGpAb1DJcF^/J,~> +`r?(t'B9&n/*!)u!Q+s4!!*2@kPkO)li7#Tq#:Bl%H[Wk0Dg>#])Mb9l2Uf9j8T8[ab2k_pAb=Z +jn4KGpAb1DJcF^/J,~> +`r?(t'B9&n/*!)u!Q+s4!!*2@kPkO)li7#Tq#:Bl%H[Wk0Dg>#])Mb9l2Uf9j8T8[ab2k_pAb=Z +jn4KGpAb1DJcF^/J,~> +`W#tH!oj7]*nQq^!Vn5=!!%<,rr@0-!!#pkrr?!Z!!&15s1841E9[E'($>Mugm:qOo`,*qFn:Y2 +oDemLJcFa0J,~> +`W#tH!oj7]*nQq^!Vn5=!!%<,rr@0-!!#pkrr?!Z!!&15s1841E9[E'($>Mugm:qOo`,*qFn:Y2 +oDemLJcFa0J,~> +`W#tH!oj7]*nQq^!Vn5=!!%<,rr@0-!!#pkrr?!Z!!&15s1841E9[E'($>Mugm:qOo`,*qFn:Y2 +oDemLJcFa0J,~> +!:.W(!.3]*!>EPFrr@WD!!+eLk5PF&li7#lp\t6%jT#;ml%/lHrr@]:!!*,tli.(RWb*FF!! +!:.W(!.3]*!>EPFrr@WD!!+eLk5PF&li7#lp\t6%jT#;ml%/lHrr@]:!!*,tli.(RWb*FF!! +!:.W(!.3]*!>EPFrr@WD!!+eLk5PF&li7#lp\t6%jT#;ml%/lHrr@]:!!*,tli.(RWb*FF!! +!11\)!W?'Y!!*J:TDnrE#PS3!#Lhf7!-@K,!,M?/!W=)$!!$GYs1A:2PN`&ImI1&Xpq:r0!q60k +15-e=!!#ZCs5O'/~> +!11\)!W?'Y!!*J:TDnrE#PS3!#Lhf7!-@K,!,M?/!W=)$!!$GYs1A:2PN`&ImI1&Xpq:r0!q60k +15-e=!!#ZCs5O'/~> +!11\)!W?'Y!!*J:TDnrE#PS3!#Lhf7!-@K,!,M?/!W=)$!!$GYs1A:2PN`&ImI1&Xpq:r0!q60k +15-e=!!#ZCs5O'/~> +!'S:#!Vf"@!!*.VU&P/m5P>'WMram +!'S:#!Vf"@!!*.VU&P/m5P>'WMram +!'S:#!Vf"@!!*.VU&P/m5P>'WMram +!$!`SFup`55jRB!-.?*!0['U!TF4C!!+kQJcEF`!2A]X!7LT@"7qj`%I3up +#8lb,!4@CXj8XW~> +!$!`SFup`55jRB!-.?*!0['U!TF4C!!+kQJcEF`!2A]X!7LT@"7qj`%I3up +#8lb,!4@CXj8XW~> +!$!`SFup`55jRB!-.?*!0['U!TF4C!!+kQJcEF`!2A]X!7LT@"7qj`%I3up +#8lb,!4@CXj8XW~> +!<@qnrrM:,i;`m%a//e:kS!Ui!=muHrr@$)!!&qirr>^Q!!%\'s1SF4Wp'K``VTT:n??^WkPtSf +kl:]qJcFd1J,~> +!<@qnrrM:,i;`m%a//e:kS!Ui!=muHrr@$)!!&qirr>^Q!!%\'s1SF4Wp'K``VTT:n??^WkPtSf +kl:]qJcFd1J,~> +!<@qnrrM:,i;`m%a//e:kS!Ui!=muHrr@$)!!&qirr>^Q!!%\'s1SF4Wp'K``VTT:n??^WkPtSf +kl:]qJcFd1J,~> +!<=ahrrLjii;`o_L]+.N!(lka!3"oW!,q3(!5/")!5mjt!"O$iH +'Dd:[jSs`~> +!<=ahrrLjii;`o_L]+.N!(lka!3"oW!,q3(!5/")!5mjt!"O$iH +'Dd:[jSs`~> +!<=ahrrLjii;`o_L]+.N!(lka!3"oW!,q3(!5/")!5mjt!"O$iH +'Dd:[jSs`~> +rr<&K_Z'Y\%H%3e7H^ZM!1``_!.j,/!,q3(!7LN>!(u;P! +rr<&K_Z'Y\%H%3e7H^ZM!1``_!.j,/!,q3(!7LN>!(u;P! +rr<&K_Z'Y\%H%3e7H^ZM!1``_!.j,/!,q3(!7LN>!(u;P! +rr<%F_>aPI#2fI^'>:IH!S7_R!!$lorr?s'!!)3SrrLCGj8]2ga+=9+rrBk!!!!Pg!!4=K!p0I_ +?%N%:s*t~> +rr<%F_>aPI#2fI^'>:IH!S7_R!!$lorr?s'!!)3SrrLCGj8]2ga+=9+rrBk!!!!Pg!!4=K!p0I_ +?%N%:s*t~> +rr<%F_>aPI#2fI^'>:IH!S7_R!!$lorr?s'!!)3SrrLCGj8]2ga+=9+rrBk!!!!Pg!!4=K!p0I_ +?%N%:s*t~> +rr<'Crk\U8[g1dj!E7gWrrMmKpAb4trS[\UD=%<(!W2Kg!*8+[!>O.:s2"^8a2n;`:@A-Njo>Dl +p4<8*s*t~> +rr<'Crk\U8[g1dj!E7gWrrMmKpAb4trS[\UD=%<(!W2Kg!*8+[!>O.:s2"^8a2n;`:@A-Njo>Dl +p4<8*s*t~> +rr<'Crk\U8[g1dj!E7gWrrMmKpAb4trS[\UD=%<(!W2Kg!*8+[!>O.:s2"^8a2n;`:@A-Njo>Dl +p4<8*s*t~> +rVur;_#FGK%Gq-e#C,gDrr?s2!!,[fhu<[mm/R,!o)AaC"QKI_+6A(R_Z'V^bQ%\P;OROa!35,\ +!3CbOjo9i~> +rVur;_#FGK%Gq-e#C,gDrr?s2!!,[fhu<[mm/R,!o)AaC"QKI_+6A(R_Z'V^bQ%\P;OROa!35,\ +!3CbOjo9i~> +rVur;_#FGK%Gq-e#C,gDrr?s2!!,[fhu<[mm/R,!o)AaC"QKI_+6A(R_Z'V^bQ%\P;OROa!35,\ +!3CbOjo9i~> +rVuq6^]+>V'A`]j(nCQ2rrKG,p](=Np"o]KD!_3&-h73:@c@@g0(4Ak_uB_fci=1W8;b[jr;Qfn +(?PSs;h=u1s*t~> +rVuq6^]+>V'A`]j(nCQ2rrKG,p](=Np"o]KD!_3&-h73:@c@@g0(4Ak_uB_fci=1W8;b[jr;Qfn +(?PSs;h=u1s*t~> +rVuq6^]+>V'A`]j(nCQ2rrKG,p](=Np"o]KD!_3&-h73:@c@@g0(4Ak_uB_fci=1W8;b[jr;Qfn +(?PSs;h=u1s*t~> +rVus7qnN.3e/I-C!AVBtrrM3qp](=Pn_O3FC[D*%4n8OQjq6SQ!B0S$s2=p;hUDN.#=!dWqY1!i +G3/c*$1WTHk5Tr~> +rVus7qnN.3e/I-C!AVBtrrM3qp](=Pn_O3FC[D*%4n8OQjq6SQ!B0S$s2=p;hUDN.#=!dWqY1!i +G3/c*$1WTHk5Tr~> +rVus7qnN.3e/I-C!AVBtrrM3qp](=Pn_O3FC[D*%4n8OQjq6SQ!B0S$s2=p;hUDN.#=!dWqY1!i +G3/c*$1WTHk5Tr~> +r;Zi,^Ae5j,MW8"@)f_V!W>4W!!,(Jh#@@hm/R,anG`KXi;`m0j+76LrrD05!!EB]GImJ=rrLgS +jo>CUJcFm4J,~> +r;Zi,^Ae5j,MW8"@)f_V!W>4W!!,(Jh#@@hm/R,anG`KXi;`m0j+76LrrD05!!EB]GImJ=rrLgS +jo>CUJcFm4J,~> +r;Zi,^Ae5j,MW8"@)f_V!W>4W!!,(Jh#@@hm/R,anG`KXi;`m0j+76LrrD05!!EB]GImJ=rrLgS +jo>CUJcFm4J,~> +r;Zh'^&J,q/_^7,259lYrrN(-p](>/r7h5OB^Gd"BCPp%r^#KC!?K[@s2P'=jP0_ +r;Zh'^&J,q/_^7,259lYrrN(-p](>/r7h5OB^Gd"BCPp%r^#KC!?K[@s2P'=jP0_ +r;Zh'^&J,q/_^7,259lYrrN(-p](>/r7h5OB^Gd"BCPp%r^#KC!?K[@s2P'=jP0_ +r;Zj-otCA+oJtV*!Z6FL^]+?6B__W/%B.t[!+G6p!.=88!SRk=!!*\KJcEmm"6#VC$f:pd,%[\9 +lMgj]jo>Dcm",3"s*t~> +r;Zj-otCA+oJtV*!Z6FL^]+?6B__W/%B.t[!+G6p!.=88!SRk=!!*\KJcEmm"6#VC$f:pd,%[\9 +lMgj]jo>Dcm",3"s*t~> +r;Zj-otCA+oJtV*!Z6FL^]+?6B__W/%B.t[!+G6p!.=88!SRk=!!*\KJcEmm"6#VC$f:pd,%[\9 +lMgj]jo>Dcm",3"s*t~> +qu?_q]`/$/DV5!k#$]3drrN+9q#CFGf@^*'=R?(gP4&>MLu876#d&[Xci4+C]Q>[]!!=*CS_rT0 +!VdAk!!&C;s6'E4~> +qu?_q]`/$/DV5!k#$]3drrN+9q#CFGf@^*'=R?(gP4&>MLu876#d&[Xci4+C]Q>[]!!=*CS_rT0 +!VdAk!!&C;s6'E4~> +qu?_q]`/$/DV5!k#$]3drrN+9q#CFGf@^*'=R?(gP4&>MLu876#d&[Xci4+C]Q>[]!!=*CS_rT0 +!VdAk!!&C;s6'E4~> +qu?^m])Mf.$ePF]0Rq@Hd/O:?_3\hHec#LJEqo\9>4gGH!)Mt^!2o8b!W+S/!!*1eJcF4!"65bE +$/bdd&lOtFro3qXETR6$5_8sus*t~> +qu?^m])Mf.$ePF]0Rq@Hd/O:?_3\hHec#LJEqo\9>4gGH!)Mt^!2o8b!W+S/!!*1eJcF4!"65bE +$/bdd&lOtFro3qXETR6$5_8sus*t~> +qu?^m])Mf.$ePF]0Rq@Hd/O:?_3\hHec#LJEqo\9>4gGH!)Mt^!2o8b!W+S/!!*1eJcF4!"65bE +$/bdd&lOtFro3qXETR6$5_8sus*t~> +qu?a%mCN;udjEWG"!26hq:YcOk.Qsm58O1t!DrXlrr?[-!!*[iec,V=m/R.!mJd46"Q'1[GQ!*m +f`)'%K/ +qu?a%mCN;udjEWG"!26hq:YcOk.Qsm58O1t!DrXlrr?[-!!*[iec,V=m/R.!mJd46"Q'1[GQ!*m +f`)'%K/ +qu?a%mCN;udjEWG"!26hq:YcOk.Qsm58O1t!DrXlrr?[-!!*[iec,V=m/R.!mJd46"Q'1[GQ!*m +f`)'%K/ +qZ$Vb\c2^":t,II%p5b!ir92O_j>+%&buD-$^q"o!W6't!! +qZ$Vb\c2^":t,II%p5b!ir92O_j>+%&buD-$^q"o!W6't!! +qZ$Vb\c2^":t,II%p5b!ir92O_j>+%&buD-$^q"o!W6't!! +qZ$U]\GlX0L]c*+"U$GeQHK!irs&5DU39*K!VHEsB7JcFs6J,~> +qZ$U]\GlX0L]c*+"U$GeQHK!irs&5DU39*K!VHEsB7JcFs6J,~> +qZ$U]\GlX0L]c*+"U$GeQHK!irs&5DU39*K!VHEsB7JcFs6J,~> +qZ$Wuj1#$h`#6l$"U6esSC%0/rs/#C]V:3^.0B#>$luYRs2J:V*rl9PC +qZ$Wuj1#$h`#6l$"U6esSC%0/rs/#C]V:3^.0B#>$luYRs2J:V*rl9PC +qZ$Wuj1#$h`#6l$"U6esSC%0/rs/#C]V:3^.0B#>$luYRs2J:V*rl9PC +q>^MS[f6F%FTfng#RMFp/2TIS,6R63$j(57oU7H6-49i>U\;q3!$^h2!#"Mq!,:6h!@Q0Ds6BUd +g5A&qirB/d8X.lOrr?ou!!%7ps69Q6~> +q>^MS[f6F%FTfng#RMFp/2TIS,6R63$j(57oU7H6-49i>U\;q3!$^h2!#"Mq!,:6h!@Q0Ds6BUd +g5A&qirB/d8X.lOrr?ou!!%7ps69Q6~> +q>^MS[f6F%FTfng#RMFp/2TIS,6R63$j(57oU7H6-49i>U\;q3!$^h2!#"Mq!,:6h!@Q0Ds6BUd +g5A&qirB/d8X.lOrr?ou!!%7ps69Q6~> +q>^LN[/U0N0s:Qa.`L"W&-)kc)0jlWrr +q>^LN[/U0N0s:Qa.`L"W&-)kc)0jlWrr +q>^LN[/U0N0s:Qa.`L"W&-)kc)0jlWrr +q#CEG[/U4)L^CBf$3tsU6NI/e+'#TCa8Z,NmJm5OkPkSW5MQ5>1rb+Ho`#$g[V$N;!!3@ +q#CEG[/U4)L^CBf$3tsU6NI/e+'#TCa8Z,NmJm5OkPkSW5MQ5>1rb+Ho`#$g[V$N;!!3@ +q#CEG[/U4)L^CBf$3tsU6NI/e+'#TCa8Z,NmJm5OkPkSW5MQ5>1rb+Ho`#$g[V$N;!!3@ +q#CDCZMssZ5d^Rn+]fW^!!3[bm)8o(#OVQl +q#CDCZMssZ5d^Rn+]fW^!!3[bm)8o(#OVQl +q#CDCZMssZ5d^Rn+]fW^!!3[bm)8o(#OVQl +q#CF?riuJ(Wue_M!!3'!!X3H,_uB`8m/R-'jo5AN52-&=%ZC.6s8N$#qm^&HjT#Pm7uPans8UI6 +_>aQ.&*Eon'D[4Zli2J~> +q#CF?riuJ(Wue_M!!3'!!X3H,_uB`8m/R-'jo5AN52-&=%ZC.6s8N$#qm^&HjT#Pm7uPans8UI6 +_>aQ.&*Eon'D[4Zli2J~> +q#CF?riuJ(Wue_M!!3'!!X3H,_uB`8m/R-'jo5AN52-&=%ZC.6s8N$#qm^&HjT#Pm7uPans8UI6 +_>aQ.&*Eon'D[4Zli2J~> +p](<8Yl=e%SKP?@!E.XfrrD]Y!!%]5rrMgeg&M.%\:X__r4ZeXjT#B'BX@BArr?cq!!'9Ts6K]8~> +p](<8Yl=e%SKP?@!E.XfrrD]Y!!%]5rrMgeg&M.%\:X__r4ZeXjT#B'BX@BArr?cq!!'9Ts6K]8~> +p](<8Yl=e%SKP?@!E.XfrrD]Y!!%]5rrMgeg&M.%\:X__r4ZeXjT#B'BX@BArr?cq!!'9Ts6K]8~> +p](;3Y5\S!PoI:7!BA!3rrDBP!!&MKrrMt$f`2%Vh1u"4rPNFgjo>Md3ebr[[Jp6Pjo>B^JcG'9 +J,~> +p](;3Y5\S!PoI:7!BA!3rrDBP!!&MKrrMt$f`2%Vh1u"4rPNFgjo>Md3ebr[[Jp6Pjo>B^JcG'9 +J,~> +p](;3Y5\S!PoI:7!BA!3rrDBP!!&MKrrMt$f`2%Vh1u"4rPNFgjo>Md3ebr[[Jp6Pjo>B^JcG'9 +J,~> +p](=2qlTl"p5Tp&!!4UJrkAC4ip?^GZJtlbrGL6f!CXV[rr`8AE?+*@!t\P.l`gBh2!4i>$1WTH +m/MS~> +p](=2qlTl"p5Tp&!!4UJrkAC4ip?^GZJtlbrGL6f!CXV[rr`8AE?+*@!t\P.l`gBh2!4i>$1WTH +m/MS~> +p](=2qlTl"p5Tp&!!4UJrkAC4ip?^GZJtlbrGL6f!CXV[rr`8AE?+*@!t\P.l`gBh2!4i>$1WTH +m/MS~> +pAb3'X8`8!SKbrO!sDN8rk/72g$Jb>al*1!J_'l'2R!(ArrUJi+m&b,.CSJcG*: +J,~> +pAb3'X8`8!SKbrO!sDN8rk/72g$Jb>al*1!J_'l'2R!(ArrUJi+m&b,.CSJcG*: +J,~> +pAb3'X8`8!SKbrO!sDN8rk/72g$Jb>al*1!J_'l'2R!(ArrUJi+m&b,.CSJcG*: +J,~> +pAb2"W;cq?@gpEY!Z-7E\c2ZVm/R.Ehu<_H!nRDR.\Z^)rrUYs-Kb@2#=aj2WW*"c#3Psd7=kL* +s*t~> +pAb2"W;cq?@gpEY!Z-7E\c2ZVm/R.Ehu<_H!nRDR.\Z^)rrUYs-Kb@2#=aj2WW*"c#3Psd7=kL* +s*t~> +pAb2"W;cq?@gpEY!Z-7E\c2ZVm/R.Ehu<_H!nRDR.\Z^)rrUYs-Kb@2#=aj2WW*"c#3Psd7=kL* +s*t~> +pAb4(p8@olnsM>Y!!56Yq7$A(a6`j,pYPoN[hI +pAb4(p8@olnsM>Y!!56Yq7$A(a6`j,pYPoN[hI +pAb4(p8@olnsM>Y!!56Yq7$A(a6`j,pYPoN[hI +p&G)lV#LM[HRdJE!s1E4e$T,T^?tt$&)@0ci&0$b!s1f`oqVNirR70@,No+1!B#DNrhBDmV<.aX +O+I>us*t~> +p&G)lV#LM[HRdJE!s1E4e$T,T^?tt$&)@0ci&0$b!s1f`oqVNirR70@,No+1!B#DNrhBDmV<.aX +O+I>us*t~> +p&G)lV#LM[HRdJE!s1E4e$T,T^?tt$&)@0ci&0$b!s1f`oqVNirR70@,No+1!B#DNrhBDmV<.aX +O+I>us*t~> +p&G(gU&P5SRo9mP!! +p&G(gU&P5SRo9mP!! +p&G(gU&P5SRo9mP!! +p&G*um[sL^r5 +p&G*um[sL^r5 +p&G*um[sL^r5 +o`+u\S,W]kh6MfA1(*FL"pQY^KsBJ4WrE'imJm5df`)!$-dVhq(h0W<])Ms-adHg%$KM0h&6l7. +Qi@&kjo>C1JcG0 +o`+u\S,W]kh6MfA1(*FL"pQY^KsBJ4WrE'imJm5df`)!$-dVhq(h0W<])Ms-adHg%$KM0h&6l7. +Qi@&kjo>C1JcG0 +o`+u\S,W]kh6MfA1(*FL"pQY^KsBJ4WrE'imJm5df`)!$-dVhq(h0W<])Ms-adHg%$KM0h&6l7. +Qi@&kjo>C1JcG0 +o`+tWQ2_QtgVU1hPD+3p>"r+3Fb>jMYJ&*XV#LFWmJm6&fDbmGB[-S[#=Xa/_uBr?hQr/F.g+c2 +!uP[\q3:m[q%Dij!@7Yqs6ou<~> +o`+tWQ2_QtgVU1hPD+3p>"r+3Fb>jMYJ&*XV#LFWmJm6&fDbmGB[-S[#=Xa/_uBr?hQr/F.g+c2 +!uP[\q3:m[q%Dij!@7Yqs6ou<~> +o`+tWQ2_QtgVU1hPD+3p>"r+3Fb>jMYJ&*XV#LFWmJm6&fDbmGB[-S[#=Xa/_uBr?hQr/F.g+c2 +!uP[\q3:m[q%Dij!@7Yqs6ou<~> +o`,!oj+76+rr@fA!!%W$rrKJIbQ%bf=d.),ci47Ki4G:q9dg8(!!=Ec`;Pet!+t?n!6B`kn,In~> +o`,!oj+76+rr@fA!!%W$rrKJIbQ%bf=d.),ci47Ki4G:q9dg8(!!=Ec`;Pet!+t?n!6B`kn,In~> +o`,!oj+76+rr@fA!!%W$rrKJIbQ%bf=d.),ci47Ki4G:q9dg8(!!=Ec`;Pet!+t?n!6B`kn,In~> +oDelLJcDPG!.+&5!1D@:!qL./aoDPP5^B^%h#@]OgV^+XI:c8)!o!\V/Ul$)rrBgr!!$m6rrVrN +idq.(s*t~> +oDelLJcDPG!.+&5!1D@:!qL./aoDPP5^B^%h#@]OgV^+XI:c8)!o!\V/Ul$)rrBgr!!$m6rrVrN +idq.(s*t~> +oDelLJcDPG!.+&5!1D@:!qL./aoDPP5^B^%h#@]OgV^+XI:c8)!o!\V/Ul$)rrBgr!!$m6rrVrN +idq.(s*t~> +oDekGJcDPG!,q9*!3joO!Q?P.!$i-r-87GI9NGP8F+&e)RA6maUn=*@O,AXAH?F1BARJ_B3?eUV +!!<9_MVF!f!W>rrVQ;rdk+Ks*t~> +oDekGJcDPG!,q9*!3joO!Q?P.!$i-r-87GI9NGP8F+&e)RA6maUn=*@O,AXAH?F1BARJ_B3?eUV +!!<9_MVF!f!W>rrVQ;rdk+Ks*t~> +oDekGJcDPG!,q9*!3joO!Q?P.!$i-r-87GI9NGP8F+&e)RA6maUn=*@O,AXAH?F1BARJ_B3?eUV +!!<9_MVF!f!W>rrVQ;rdk+Ks*t~> +o)JdAJcDSH!+YEs!6 +o)JdAJcDSH!+YEs!6 +o)JdAJcDSH!+YEs!6 +o)Jc +o)Jc +o)Jc +o)Je4rdk*Hrr>a\!!)]:rrKbjK)buT4HefWs8W*"rYsr!#8`?kd:`q/[XnJSs*t~> +o)Je4rdk*Hrr>a\!!)]:rrKbjK)buT4HefWs8W*"rYsr!#8`?kd:`q/[XnJSs*t~> +o)Je4rdk*Hrr>a\!!)]:rrKbjK)buT4HefWs8W*"rYsr!#8`?kd:`q/[XnJSs*t~> +nc/[-JcDVI!($&R!"I-O!rf;OL]@MX3KN3Os82frB]f@$)NX?a49,V1o7?r:s*t~> +nc/[-JcDVI!($&R!"I-O!rf;OL]@MX3KN3Os82frB]f@$)NX?a49,V1o7?r:s*t~> +nc/[-JcDVI!($&R!"I-O!rf;OL]@MX3KN3Os82frB]f@$)NX?a49,V1o7?r:s*t~> +nc/Z%JcDVI!&a3F!$o\d!rSZ4N;s%]2N6UGs7lTo[cmbt*0]'%(B=G2gk#M!s*t~> +nc/Z%JcDVI!&a3F!$o\d!rSZ4N;s%]2N6UGs7lTo[cmbt*0]'%(B=G2gk#M!s*t~> +nc/Z%JcDVI!&a3F!$o\d!rSZ4N;s%]2N6UGs7lTo[cmbt*0]'%(B=G2gk#M!s*t~> +nc/\%pOW@Brr=M:!!#+$rrW"X(m+e"1Pst>s7QBmp^HKh#To>::'1Ir/%U<3o`'F~> +nc/\%pOW@Brr=M:!!#+$rrW"X(m+e"1Pst>s7QBmp^HKh#To>::'1Ir/%U<3o`'F~> +nc/\%pOW@Brr=M:!!#+$rrW"X(m+e"1Pst>s7QBmp^HKh#To>::'1Ir/%U<3o`'F~> +nGiQhJcDYJ!$:S/!)gf9!r8QIQ2gt?L>7@[nc&SfmJm>4Lkd8T!!3RarIP"?s*t~> +nGiQhJcDYJ!$:S/!)gf9!r8QIQ2gt?L>7@[nc&SfmJm>4Lkd8T!!3RarIP"?s*t~> +nGiQhJcDYJ!$:S/!)gf9!r8QIQ2gt?L>7@[nc&SfmJm>4Lkd8T!!3RarIP"?s*t~> +nGiP_JcDYJ!#"`#!,9=M!le=GS,`UBK@thUn,EFUB(,d&,\^KirW!!@PkTb/nc++~> +nGiP_JcDYJ!#"`#!,9=M!le=GS,`UBK@thUn,EFUB(,d&,\^KirW!!@PkTb/nc++~> +nGiP_JcDYJ!#"`#!,9=M!le=GS,`UBK@thUn,EFUB(,d&,\^KirW!!@PkTb/nc++~> +nGiRnl%/l5rr<;m!!%PbrrV8.'qt[1#=X1.JcG3="5o;."RuHn*^MOZ!!4@5q18S7s*t~> +nGiRnl%/l5rr<;m!!%PbrrV8.'qt[1#=X1.JcG3="5o;."RuHn*^MOZ!!4@5q18S7s*t~> +nGiRnl%/l5rr<;m!!%PbrrV8.'qt[1#=X1.JcG3="5o;."RuHn*^MOZ!!4@5q18S7s*t~> +n,NHNJcD_L!;c*`!11G""8e?N!ic5(!@M9Cdf"asn,EL:JM@2p!!3 +n,NHNJcD_L!;c*`!11G""8e?N!ic5(!@M9Cdf"asn,EL:JM@2p!!3 +n,NHNJcD_L!;c*`!11G""8e?N!ic5(!@M9Cdf"asn,EL:JM@2p!!3 +n,NGEJcD_L!:T=U!3Ws6"6Yh.!O2V-$UK*Fm",3)rr`27E$=BE!\C5HJcG'9J,~> +n,NGEJcD_L!:T=U!3Ws6"6Yh.!O2V-$UK*Fm",3)rr`27E$=BE!\C5HJcG'9J,~> +n,NGEJcD_L!:T=U!3Ws6"6Yh.!O2V-$UK*Fm",3)rr`27E$=BE!\C5HJcG'9J,~> +mf3@;JcDbM!9 +mf3@;JcDbM!9 +mf3@;JcDbM!9 +mf3?3JcDbM!8-]>!8P!^"7:e+"2Y$A"YEu;]'4eGlMgtPT25mV!!-6/JcFm4J,~> +mf3?3JcDbM!8-]>!8P!^"7:e+"2Y$A"YEu;]'4eGlMgtPT25mV!!-6/JcFm4J,~> +mf3?3JcDbM!8-]>!8P!^"7:e+"2Y$A"YEu;]'4eGlMgtPT25mV!!-6/JcFm4J,~> +mf3A.rIP!LrrC:2!!)Vrrrhr#E%:t6!!`ZS8Sa?kf)C7#kl1bQJ3O(r!!3pZfn'1as*t~> +mf3A.rIP!LrrC:2!!)Vrrrhr#E%:t6!!`ZS8Sa?kf)C7#kl1bQJ3O(r!!3pZfn'1as*t~> +mf3A.rIP!LrrC:2!!)Vrrrhr#E%:t6!!`ZS8Sa?kf)C7#kl1bQJ3O(r!!3pZfn'1as*t~> +mJm7!JcDeN!5S%'!"5q/"6cIb+kZi%!Z>N&^q#!!<9lX8.>Hir=N~> +mJm7!JcDeN!5S%'!"5q/"6cIb+kZi%!Z>N&^q#!!<9lX8.>Hir=N~> +mJm7!JcDeN!5S%'!"5q/"6cIb+kZi%!Z>N&^q#!!<9lX8.>Hir=N~> +mJm5nJcDeN!4D7q!$\EB./rM[];(=->#7aU3AN'/*#9M;-7^c.4$Z5,:fU\+A86+?S?^&emf%e; +hZ!]4Lbo.n!!4'chLY^as*t~> +mJm5nJcDeN!4D7q!$\EB./rM[];(=->#7aU3AN'/*#9M;-7^c.4$Z5,:fU\+A86+?S?^&emf%e; +hZ!]4Lbo.n!!4'chLY^as*t~> +mJm5nJcDeN!4D7q!$\EB./rM[];(=->#7aU3AN'/*#9M;-7^c.4$Z5,:fU\+A86+?S?^&emf%e; +hZ!]4Lbo.n!!4'chLY^as*t~> +mJm7ro7?qCrrB%e!!#$1s+14.rrUf)0]N-8"&,usJcFR+J,~> +mJm7ro7?qCrrB%e!!#$1s+14.rrUf)0]N-8"&,usJcFR+J,~> +mJm7ro7?qCrrB%e!!#$1s+14.rrUf)0]N-8"&,usJcFR+J,~> +m/R-\JcDhO!1rWZ!)S7HJcFd1!n)QKiW'#hF7"PYgAc[~> +m/R-\JcDhO!1rWZ!)S7HJcFd1!n)QKiW'#hF7"PYgAc[~> +m/R-\JcDhO!1rWZ!)S7HJcFd1!n)QKiW'#hF7"PYgAc[~> +m/R,SJcDhO!0ZdN!,$l_JcFm4!mZ*>iW'$-I*dHEfDg@~> +m/R,SJcDhO!0ZdN!,$l_JcFm4!mZ*>iW'$-I*dHEfDg@~> +m/R,SJcDhO!0ZdN!,$l_JcFm4!mZ*>iW'$-I*dHEfDg@~> +m/R.gj+764rr@iC!!%J!s+148rr`8BFs>oG![rHDJcF7"J,~> +m/R.gj+764rr@iC!!%J!s+148rr`8BFs>oG![rHDJcF7"J,~> +m/R.gj+764rr@iC!!%J!s+148rr`8BFs>oG![rHDJcF7"J,~> +li7$AJcDkP!.4/7!0r-8JcG-;"9$/X*o[/$."0Nps3^js~> +li7$AJcDkP!.4/7!0r-8JcG-;"9$/X*o[/$."0Nps3^js~> +li7$AJcDkP!.4/7!0r-8JcG-;"9$/X*o[/$."0Nps3^js~> +li7#9JcDkP!,q<+!3CbOJcG6>"9$)R)WC_u.=T`ss3CXp~> +li7#9JcDkP!,q<+!3CbOJcG6>"9$)R)WC_u.=T`ss3CXp~> +li7#9JcDkP!,q<+!3CbOJcG6>"9$)R)WC_u.=T`ss3CXp~> +lMpq/JcDnQ!+bNu!5O0cJcGBB"O<[BI1P? +lMpq/JcDnQ!+bNu!5O0cJcGBB"O<[BI1P? +lMpq/JcDnQ!+bNu!5O0cJcGBB"O<[BI1P? +lMpouJcDnQ!*J[i!6p)pJcGTH#6!Q!RS+5'iW''&BX.2\s2b4j~> +lMpouJcDnQ!*J[i!6p)pJcGTH#6!Q!RS+5'iW''&BX.2\s2b4j~> +lMpouJcDnQ!*J[i!6p)pJcGTH#6!Q!RS+5'iW''&BX.2\s2b4j~> +lMpqqo7?qFrr>d^!!(`(s+14Mrrr%E> +lMpqqo7?qFrr>d^!!(`(s+14Mrrr%E> +lMpqqo7?qFrr>d^!!(`(s+14Mrrr%E> +l2UgRJcDqR!($&R!9\q5Jc>fO\es9(!ub[OnU^_Vs*t~> +l2UgRJcDqR!($&R!9\q5Jc>fO\es9(!ub[OnU^_Vs*t~> +l2UgRJcDqR!($&R!9\q5Jc>fO\es9(!ub[OnU^_Vs*t~> +l2UfAJcDqR!&j9G!;(jBK)YoKG66_'"9^i@ci/Lq^Ai]~> +l2UfAJcDqR!&j9G!;(jBK)YoKG66_'"9^i@ci/Lq^Ai]~> +l2UfAJcDqR!&j9G!;(jBK)YoKG66_'"9^i@ci/Lq^Ai]~> +kl:_/JcDtS!%RI4AmXbDLs*t~> +kl:_/JcDtS!%RI4AmXbDLs*t~> +kl:_/JcDtS!%RI4AmXbDLs*t~> +kl:]tJcDtS!$C\1!"XY\KDttO&*3co!]PYPrIP!Xs*t~> +kl:]tJcDtS!$C\1!"XY\KDttO&*3co!]PYPrIP!Xs*t~> +kl:]tJcDtS!$C\1!"XY\KDttO&*3co!]PYPrIP!Xs*t~> +kl:_ooR[%Irr<`%!!"!is+UIRojHn^!sM`#n:CVGs*t~> +kl:_ooR[%Irr<`%!!"!is+UIRojHn^!sM`#n:CVGs*t~> +kl:_ooR[%Irr<`%!!"!is+UIRojHn^!sM`#n:CVGs*t~> +kPtUQJcE"T!!hun!%EL!LAq:h'^5T#!AAc;r.4mPs*t~> +kPtUQJcE"T!!hun!%EL!LAq:h'^5T#!AAc;r.4mPs*t~> +kPtUQJcE"T!!hun!%EL!LAq:h'^5T#!AAc;r.4mPs*t~> +kPtT@JcE%U!;l3b!&oK/M#RM04mE"L$r<>PJcDhOJ,~> +kPtT@JcE%U!;l3b!&oK/M#RM04mE"L$r<>PJcDhOJ,~> +kPtT@JcE%U!;l3b!&oK/M#RM04mE"L$r<>PJcDhOJ,~> +k5YM.JcE(V!:fLX!(;D +k5YM.JcE(V!:fLX!(;D +k5YM.JcE(V!:fLX!(;D +k5YKrJcE(V!:B4T!)\=INW0(Z[6O$Y!s)Jbk^ic1s*t~> +k5YKrJcE(V!:B4T!)\=INW0(Z[6O$Y!s)Jbk^ic1s*t~> +k5YKrJcE(V!:B4T!)\=INW0(Z[6O$Y!s)Jbk^ic1s*t~> +k5YMmoR[%LrrD9O!!$>Vs,[0]qOoJ.!! +k5YMmoR[%LrrD9O!!$>Vs,[0]qOoJ.!! +k5YMmoR[%LrrD9O!!$>Vs,[0]qOoJ.!! +jo>COJcE+W!9ESK!,I/cOoGLRN?.Hf!sqbtmt(M2s*t~> +jo>COJcE+W!9ESK!,I/cOoGLRN?.Hf!sqbtmt(M2s*t~> +jo>COJcE+W!9ESK!,I/cOoGLRN?.Hf!sqbtmt(M2s*t~> +jo>B?JcE+W!8m5F!-j(pPQ(^IGnBHF!t850o7?q3s*t~> +jo>B?JcE+W!8m5F!-j(pPQ(^IGnBHF!t850o7?q3s*t~> +jo>B?JcE+W!8m5F!-j(pPQ(^IGnBHF!t850o7?q3s*t~> +jT#;-JcE.X!8HrB!/6"(Q2^p +jT#;-JcE.X!8HrB!/6"(Q2^p +jT#;-JcE.X!8HrB!/6"(Q2^p +!"@ui!,@)b[Jp6Xmf3?NJcD):!le(=nc/b+A@D;bs-E\8~> +!"@ui!,@)b[Jp6Xmf3?NJcD):!le(=nc/b+A@D;bs-E\8~> +!"@ui!,@)b[Jp6Xmf3?NJcD):!le(=nc/b+A@D;bs-E\8~> +!,(Eo!>"gRs0hq-ddI/9T7R$2rrW2*4nAXV%6oTTrdk*5s*t~> +!,(Eo!>"gRs0hq-ddI/9T7R$2rrW2*4nAXV%6oTTrdk*5s*t~> +!,(Eo!>"gRs0hq-ddI/9T7R$2rrW2*4nAXV%6oTTrdk*5s*t~> +!7U$0!1e]@[f6?Pmf3?hJcD8?!rf)BoDeq8G3FMWNrOV~> +!7U$0!1e]@[f6?Pmf3?hJcD8?!rf)BoDeq8G3FMWNrOV~> +!7U$0!1e]@[f6?Pmf3?hJcD8?!rf)BoDeq8G3FMWNrOV~> +!WPFI!!"s/s0hq-amT30\q0mQrrV80(\Ib0%V<\3s,6o-~> +!WPFI!!"s/s0hq-amT30\q0mQrrV80(\Ib0%V<\3s,6o-~> +!WPFI!!"s/s0hq-amT30\q0mQrrV80(\Ib0%V<\3s,6o-~> +!WT4^!!(T$s0r".`:![+^k)NYrrU,?"n_is,*__Ns,$c+~> +!WT4^!!(T$s0r".`:![+^k)NYrrU,?"n_is,*__Ns,$c+~> +!WT4^!!(T$s0r".`:![+^k)NYrrU,?"n_is,*__Ns,$c+~> +!rr-;jo>BhJcE4Z!5S%'!5F*bU]1DiShfp +!rr-;jo>BhJcE4Z!5S%'!5F*bU]1DiShfp +!rr-;jo>BhJcE4Z!5S%'!5F*bU]1DiShfp +s8N(Ojo>DdjamHArrB\"!!'_2rrTns\q0m_rrV2*'_MG-#$oN*s+LE&~> +s8N(Ojo>DdjamHArrB\"!!'_2rrTns\q0m_rrV2*'_MG-#$oN*s+LE&~> +s8N(Ojo>DdjamHArrB\"!!'_2rrTns\q0m_rrV2*'_MG-#$oN*s+LE&~> +s8N,`#Nc!dG_,n)rrBOs!!p7;s2%&%!&OV*s0)G(^f(C/!!3g[kCNYbs*t~> +s8N,`#Nc!dG_,n)rrBOs!!p7;s2%&%!&OV*s0)G(^f(C/!!3g[kCNYbs*t~> +s8N,`#Nc!dG_,n)rrBOs!!p7;s2%&%!&OV*s0)G(^f(C/!!3g[kCNYbs*t~> +rr2t&jo>Doo7?qPrrB@n!!9aP7Jm,cW.FuSrrVk^0(],F.$sUXs+11Ms*t~> +rr2t&jo>Doo7?qPrrB@n!!9aP7Jm,cW.FuSrrVk^0(],F.$sUXs+11Ms*t~> +rr2t&jo>Doo7?qPrrB@n!!9aP7Jm,cW.FuSrrVk^0(],F.$sUXs+11Ms*t~> +rr2u=jT#:BJcE:\!3Ybj!&jZR!?CT[s0_k.hfTS)!!<6h[/PXVJcG`LJ,~> +rr2u=jT#:BJcE:\!3Ybj!&jZR!?CT[s0_k.hfTS)!!<6h[/PXVJcG`LJ,~> +rr2u=jT#:BJcE:\!3Ybj!&jZR!?CT[s0_k.hfTS)!!<6h[/PXVJcG`LJ,~> +rVljRjo>E)qgndYrrB%\!!$>Vs1&(2rk)#/o`,$u@*sQ*JcGWIJ,~> +rVljRjo>E)qgndYrrB%\!!$>Vs1&(2rk)#/o`,$u@*sQ*JcGWIJ,~> +rVljRjo>E)qgndYrrB%\!!$>Vs1&(2rk)#/o`,$u@*sQ*JcGWIJ,~> +rVlkijT#:ZJcE=]!2\cW!4IIY]Dhs(Q7DM,!Yp.HJcC<$q>Ys~> +rVlkijT#:ZJcE=]!2\cW!4IIY]Dhs(Q7DM,!Yp.HJcC<$q>Ys~> +rVlkijT#:ZJcE=]!2\cW!4IIY]Dhs(Q7DM,!Yp.HJcC<$q>Ys~> +rVlom']oAq21be=rrAbS!!*POJcEIa!o.c,oDeqBReD=4JcGKEJ,~> +rVlom']oAq21be=rrAbS!!*POJcEIa!o.c,oDeqBReD=4JcGKEJ,~> +rVlom']oAq21be=rrAbS!!*POJcEIa!o.c,oDeqBReD=4JcGKEJ,~> +r;Qb@jT#:rJcE@^!1i0N!>O(8s2+d;qQ*-X!!<6k\,LsYJcGECJ,~> +r;Qb@jT#:rJcE@^!1i0N!>O(8s2+d;qQ*-X!!<6k\,LsYJcGECJ,~> +r;Qb@jT#:rJcE@^!1i0N!>O(8s2+d;qQ*-X!!<6k\,LsYJcGECJ,~> +r;QfT"6KR`9nE>VrrAbQ!!+(sJcE^h!nME.oDepuA(-#/JcG<@J,~> +r;QfT"6KR`9nE>VrrAbQ!!+(sJcE^h!nME.oDepuA(-#/JcG<@J,~> +r;QfT"6KR`9nE>VrrAbQ!!+(sJcE^h!nME.oDepuA(-#/JcG<@J,~> +qu6Xljo>D`eq*k6rrAtV!!+D0JcEjl!q`'Go)Jh-J*DOaJcG6>J,~> +qu6Xljo>D`eq*k6rrAtV!!+D0JcEjl!q`'Go)Jh-J*DOaJcG6>J,~> +qu6Xljo>D`eq*k6rrAtV!!+D0JcEjl!q`'Go)Jh-J*DOaJcG6>J,~> +qu6Z-jT#9lJcEC_!3Y8\!@R;ds31KEa^u%S!!4^ApOW?qs6fo;~> +qu6Z-jT#9lJcEC_!3Y8\!@R;ds31KEa^u%S!!4^ApOW?qs6fo;~> +qu6Z-jT#9lJcEC_!3Y8\!@R;ds31KEa^u%S!!4^ApOW?qs6fo;~> +qu6]r,N\t,#j?j>^&J)?huEd%c%5oArrVSL/FriD!D'd#JcC<$m/MS~> +qu6]r,N\t,#j?j>^&J)?huEd%c%5oArrVSL/FriD!D'd#JcC<$m/MS~> +qu6]r,N\t,#j?j>^&J)?huEd%c%5oArrVSL/FriD!D'd#JcC<$m/MS~> +qYpP`jT#:.JcEF`!5.1h!=5'Ds4%&NpT%*qo)JgrE9VrRJcG!7J,~> +qYpP`jT#:.JcEF`!5.1h!=5'Ds4%&NpT%*qo)JgrE9VrRJcG!7J,~> +qYpP`jT#:.JcEF`!5.1h!=5'Ds4%&NpT%*qo)JgrE9VrRJcG!7J,~> +qYpTi($5Js'D6qV^Ae2Nh#II\oR[%qrr`56@hA22!\BT+JcC<$kPp&~> +qYpTi($5Js'D6qV^Ae2Nh#II\oR[%qrr`56@hA22!\BT+JcC<$kPp&~> +qYpTi($5Js'D6qV^Ae2Nh#II\oR[%qrr`56@hA22!\BT+JcC<$kPp&~> +q>UGFjT#:FJcEIa!6X's!@lZOs4mVUdWQZ%!!3@-_L_` +q>UGFjT#:FJcEIa!6X's!@lZOs4mVUdWQZ%!!3@-_L_` +q>UGFjT#:FJcEIa!6X's!@lZOs4mVUdWQZ%!!3@-_L_` +q>UK\$0D3g,lE5n^]+;]gAh9]Hh2ggiVru>M(\;u![*9_JcC<$ir=N~> +q>UK\$0D3g,lE5n^]+;]gAh9]Hh2ggiVru>M(\;u![*9_JcC<$ir=N~> +q>UK\$0D3g,lE5n^]+;]gAh9]Hh2ggiVru>M(\;u![*9_JcC<$ir=N~> +q#:>,jT#:^JcELb!8#m(!ZI^0JcFm4"7hg`!V-3m"&$$"JcC<$i;\<~> +q#:>,jT#:^JcELb!8#m(!ZI^0JcFm4"7hg`!V-3m"&$$"JcC<$i;\<~> +q#:>,jT#:^JcELb!8#m(!ZI^0JcFm4"7hg`!V-3m"&$$"JcC<$i;\<~> +q#:BI!p0I_3J%4FrrCp-!!+poJcG$8"6#>)!q?6l(O=nhs+14+s*t~> +q#:BI!p0I_3J%4FrrCp-!!+poJcG$8"6#>)!q?6l(O=nhs+14+s*t~> +q#:BI!p0I_3J%4FrrCp-!!+poJcG$8"6#>)!q?6l(O=nhs+14+s*t~> +p\t4gjo>Djm=G;QrrD02!!-`oJcG3="58Pg!Up'j5,\4-s+14)s*t~> +p\t4gjo>Djm=G;QrrD02!!-`oJcG3="58Pg!Up'j5,\4-s+14)s*t~> +p\t4gjo>Djm=G;QrrD02!!-`oJcG3="58Pg!Up'j5,\4-s+14)s*t~> +p\t60kPtYjI.Mph^]+<#df9G9Zi,ITp&>*AJ1^3i!Y9+sJcC<$f`-I~> +p\t60kPtYjI.Mph^]+<#df9G9Zi,ITp&>*AJ1^3i!Y9+sJcC<$f`-I~> +p\t60kPtYjI.Mph^]+<#df9G9Zi,ITp&>*AJ1^3i!Y9+sJcC<$f`-I~> +pAY+NlMpte>2b&4^&J*(d/X4rR.c+2qu6cr^j-R\!!4jBo7?pms474#~> +pAY+NlMpte>2b&4^&J*(d/X4rR.c+2qu6cr^j-R\!!4jBo7?pms474#~> +pAY+NlMpte>2b&4^&J*(d/X4rR.c+2qu6cr^j-R\!!4jBo7?pms474#~> +pAY,lli7&HaFXB'rrDoA!!3FEjFR=6s5KJF%dj;u!YWP)s+14!s*t~> +pAY,lli7&HaFXB'rrDoA!!3FEjFR=6s5KJF%dj;u!YWP)s+14!s*t~> +pAY,lli7&HaFXB'rrDoA!!3FEjFR=6s5KJF%dj;u!YWP)s+14!s*t~> +pAY0j+R]:3+/f*hs1/.0!mL]H16:XSrr`&/F=Z\X!t5D721bdYs3gpt~> +pAY0j+R]:3+/f*hs1/.0!mL]H16:XSrr`&/F=Z\X!t5D721bdYs3gpt~> +pAY0j+R]:3+/f*hs1/.0!mL]H16:XSrr`&/F=Z\X!t5D721bdYs3gpt~> +p&>#RnGiV"L%^)t\,QF6b5_VH9!8,Prr_)B9ap@g!ZH#WrVupYJcC<$df4g~> +p&>#RnGiV"L%^)t\,QF6b5_VH9!8,Prr_)B9ap@g!ZH#WrVupYJcC<$df4g~> +p&>#RnGiV"L%^)t\,QF6b5_VH9!8,Prr_)B9ap@g!ZH#WrVupYJcC<$df4g~> +p&>'a&G,r("(UMFs0_k,&'+_Q#YC?APlCj>SR<].!!Ea<]@JY6!!#-4s+13us*t~> +p&>'a&G,r("(UMFs0_k,&'+_Q#YC?APlCj>SR<].!!Ea<]@JY6!!#-4s+13us*t~> +p&>'a&G,r("(UMFs0_k,&'+_Q#YC?APlCj>SR<].!!Ea<]@JY6!!#-4s+13us*t~> +o`"o8o`,"Yc[l,&rr +o`"o8o`,"Yc[l,&rr +o`"o8o`,"Yc[l,&rr +o`"sQ#5A0!-*Vt#Z2XeE_#OQUB!_3,rri,8LIr*@!!Y?El2UeV@ep')6\58gs3gpt~> +o`"sQ#5A0!-*Vt#Z2XeE_#OQUB!_3,rri,8LIr*@!!Y?El2UeV@ep')6\58gs3gpt~> +o`"sQ#5A0!-*Vt#Z2XeE_#OQUB!_3,rri,8LIr*@!!Y?El2UeV@ep')6\58gs3gpt~> +oD\esq>^R/Nqn8+Yl=\B^&S6@:7Kh9rrr/=R:nPck5YQ.IbF]"!S&^r!!#K>s+13us*t~> +oD\esq>^R/Nqn8+Yl=\B^&S6@:7Kh9rrr/=R:nPck5YQ.IbF]"!S&^r!!#K>s+13us*t~> +oD\esq>^R/Nqn8+Yl=\B^&S6@:7Kh9rrr/=R:nPck5YQ.IbF]"!S&^r!!#K>s+13us*t~> +oD\j=!WIh#=e_"ms!_>V$$>!! +oD\j=!WIh#=e_"ms!_>V$$>!! +oD\j=!WIh#=e_"ms!_>V$$>!! +o)A\YrVuskeq*k'rrN*$[/^@A6$&mSrPJR]:`nZs!sho3q>:0mo3M%i!)8%EJcF0uJ,~> +o)A\YrVuskeq*k'rrN*$[/^@A6$&mSrPJR]:`nZs!sho3q>:0mo3M%i!)8%EJcF0uJ,~> +o)A\YrVuskeq*k'rrN*$[/^@A6$&mSrPJR]:`nZs!sho3q>:0mo3M%i!)8%EJcF0uJ,~> +o)Ag&!%b[3s/Z/"p$_q^65dW?#6d5(MQ"SWrmC`NroCneHWN$9hZ*`[6(RN@rrLLqo`+tgJcC<$ +df4g~> +o)Ag&!%b[3s/Z/"p$_q^65dW?#6d5(MQ"SWrmC`NroCneHWN$9hZ*`[6(RN@rrLLqo`+tgJcC<$ +df4g~> +o)Ag&!%b[3s/Z/"p$_q^65dW?#6d5(MQ"SWrmC`NroCneHWN$9hZ*`[6(RN@rrLLqo`+tgJcC<$ +df4g~> +nc&WMrIP!KrrD +nc&WMrIP!KrrD +nc&WMrIP!KrrD +JcD,;!8[,E"cE?[lt$7,!$).R*\''8:KqLSJW6%\O,A[CI!B^MC1UdW7PYtddf9IS8!`63rri;= +V=%IV!!$)Os+13us*t~> +JcD,;!8[,E"cE?[lt$7,!$).R*\''8:KqLSJW6%\O,A[CI!B^MC1UdW7PYtddf9IS8!`63rri;= +V=%IV!!$)Os+13us*t~> +JcD,;!8[,E"cE?[lt$7,!$).R*\''8:KqLSJW6%\O,A[CI!B^MC1UdW7PYtddf9IS8!`63rri;= +V=%IV!!$)Os+13us*t~> +JcD,;!7C99!1Efc!onJ:JH5-=!tSM3nG3(gq6suVK$5P2!!$5Ss+13us*t~> +JcD,;!7C99!1Efc!onJ:JH5-=!tSM3nG3(gq6suVK$5P2!!$5Ss+13us*t~> +JcD,;!7C99!1Efc!onJ:JH5-=!tSM3nG3(gq6suVK$5P2!!$5Ss+13us*t~> +OT,mWa/"8m4tn<&$l1B[>Dp]'RfV +s+13us*t~> +OT,mWa/"8m4tn<&$l1B[>Dp]'RfV +s+13us*t~> +OT,mWa/"8m4tn<&$l1B[>Dp]'RfV +s+13us*t~> +UAketk1IeeXIYB%EFVs:2^fRPn,NM#DWdPi!4_Lu!4hq*"9#Dt!J(7J!!E<[I`_Tbrr_V[:'pn" +!`e/WmJm5qJcC<$df4g~> +UAketk1IeeXIYB%EFVs:2^fRPn,NM#DWdPi!4_Lu!4hq*"9#Dt!J(7J!!E<[I`_Tbrr_V[:'pn" +!`e/WmJm5qJcC<$df4g~> +UAketk1IeeXIYB%EFVs:2^fRPn,NM#DWdPi!4_Lu!4hq*"9#Dt!J(7J!!E<[I`_Tbrr_V[:'pn" +!`e/WmJm5qJcC<$df4g~> +Y5\n)j34s(M/uok0Gt&M!!34>qk!ffXRH2iaS,W8ieK%8!!E9CA?"qjrr_;F63R5e!t(L>+mf70 +AV'l4s3gpt~> +Y5\n)j34s(M/uok0Gt&M!!34>qk!ffXRH2iaS,W8ieK%8!!E9CA?"qjrr_;F63R5e!t(L>+mf70 +AV'l4s3gpt~> +Y5\n)j34s(M/uok0Gt&M!!34>qk!ffXRH2iaS,W8ieK%8!!E9CA?"qjrr_;F63R5e!t(L>+mf70 +AV'l4s3gpt~> +\Glm4cE +\Glm4cE +\Glm4cE +^]+N)aJ=Am3YoX6!?gj(rrA;Q!!)6Qrr`8,D&A95"9UQ/_> +^]+N)aJ=Am3YoX6!?gj(rrA;Q!!)6Qrr`8,D&A95"9UQ/_> +^]+N)aJ=Am3YoX6!?gj(rrA;Q!!)6Qrr`8,D&A95"9UQ/_> +a8ZDDk/3g<=>UT%!!,[iU&P+Kn,NI_mJd:>Ma.H3!!E]tI^nqBrr`27D]\WQ!u/$?bNT!,Dh7q> +s3gpt~> +a8ZDDk/3g<=>UT%!!,[iU&P+Kn,NI_mJd:>Ma.H3!!E]tI^nqBrr`27D]\WQ!u/$?bNT!,Dh7q> +s3gpt~> +a8ZDDk/3g<=>UT%!!,[iU&P+Kn,NI_mJd:>Ma.H3!!E]tI^nqBrr`27D]\WQ!u/$?bNT!,Dh7q> +s3gpt~> +bl7k.["DC3"LJ./Q(e3XHgq(9#jM?kn#9V.SH&d5=H^r+pAY6hZXO[B!!GUKs8UF0!!%%js+13u +s*t~> +bl7k.["DC3"LJ./Q(e3XHgq(9#jM?kn#9V.SH&d5=H^r+pAY6hZXO[B!!GUKs8UF0!!%%js+13u +s*t~> +bl7k.["DC3"LJ./Q(e3XHgq(9#jM?kn#9V.SH&d5=H^r+pAY6hZXO[B!!GUKs8UF0!!%%js+13u +s*t~> +df0LMh5bin(Tm`=)u$*,!,qB-!#Oet"T?Ag0`e*N"#"JgiUm-PnY]CsoDepqK`1oM!7L*3!-Wqn +JcF0uJ,~> +df0LMh5bin(Tm`=)u$*,!,qB-!#Oet"T?Ag0`e*N"#"JgiUm-PnY]CsoDepqK`1oM!7L*3!-Wqn +JcF0uJ,~> +df0LMh5bin(Tm`=)u$*,!,qB-!#Oet"T?Ag0`e*N"#"JgiUm-PnY]CsoDepqK`1oM!7L*3!-Wqn +JcF0uJ,~> +f)GmI^k>2hVuQg^UAk4'nGiP:ir9/ON*e1=Y5e_>6?&RBq"+Lfl'k9Mnc/\5`r,i:f'*/7H%H!H +s3gpt~> +f)GmI^k>2hVuQg^UAk4'nGiP:ir9/ON*e1=Y5e_>6?&RBq"+Lfl'k9Mnc/\5`r,i:f'*/7H%H!H +s3gpt~> +f)GmI^k>2hVuQg^UAk4'nGiP:ir9/ON*e1=Y5e_>6?&RBq"+Lfl'k9Mnc/\5`r,i:f'*/7H%H!H +s3gpt~> +gA_ +gA_ +gA_ +h#@G./chUF!=ALqrr>^^!!#LArrrARVfkNE`W-5F*^=(cUqciqrrTic1@>,C$_7%m!8Qf=!.]Y# +JcF0uJ,~> +h#@G./chUF!=ALqrr>^^!!#LArrrARVfkNE`W-5F*^=(cUqciqrrTic1@>,C$_7%m!8Qf=!.]Y# +JcF0uJ,~> +h#@G./chUF!=ALqrr>^^!!#LArrrARVfkNE`W-5F*^=(cUqciqrrTic1@>,C$_7%m!8Qf=!.]Y# +JcF0uJ,~> +hZ!WE;k*gf]qbT-54JUQ +hZ!WE;k*gf]qbT-54JUQ +hZ!WE;k*gf]qbT-54JUQ +hu<_p*h*-0H_^T@1@Y>EB$:2ar85>cKlLR%8NedR(^pH9!"B,B+Z2eqDhF@T^!Pj8k5PP^`H!-f +!!31=q"Odgj66ODLOoJVs3gpt~> +hu<_p*h*-0H_^T@1@Y>EB$:2ar85>cKlLR%8NedR(^pH9!"B,B+Z2eqDhF@T^!Pj8k5PP^`H!-f +!!31=q"Odgj66ODLOoJVs3gpt~> +hu<_p*h*-0H_^T@1@Y>EB$:2ar85>cKlLR%8NedR(^pH9!"B,B+Z2eqDhF@T^!Pj8k5PP^`H!-f +!!31=q"Odgj66ODLOoJVs3gpt~> +iVruWJ-25?!'$bR!%.49!-PsS%J&Z8db!72j6,duo_A@Vs6rrD6H!!%n-s+13u +s*t~> +iVruWJ-25?!'$bR!%.49!-PsS%J&Z8db!72j6,duo_A@Vs6rrD6H!!%n-s+13u +s*t~> +iVruWJ-25?!'$bR!%.49!-PsS%J&Z8db!72j6,duo_A@Vs6rrD6H!!%n-s+13u +s*t~> +ir9&=5*u +ir9&=5*u +ir9&=5*u +j8T._'"n8F"PWnVe>3*E%e0N!Q&YeGorVF/kPt\o +j8T._'"n8F"PWnVe>3*E%e0N!Q&YeGorVF/kPt\o +j8T._'"n8F"PWnVe>3*E%e0N!Q&YeGorVF/kPt\o +jo5ATC!$Dk!>-D*4%WUgH]Ff-aP61_rT)>6G +jo5ATC!$Dk!>-D*4%WUgH]Ff-aP61_rT)>6G +jo5ATC!$Dk!>-D*4%WUgH]Ff-aP61_rT)>6G +k5PJ2/D1"6!?![g>\SD9PG,1nbLktLli.%NJ/72G!2?=i!;,a\!47si"72UP#Nu-i-?dB,m/I(X +kl:^MJcC<$df4g~> +k5PJ2/D1"6!?![g>\SD9PG,1nbLktLli.%NJ/72G!2?=i!;,a\!47si"72UP#Nu-i-?dB,m/I(X +kl:^MJcC<$df4g~> +k5PJ2/D1"6!?![g>\SD9PG,1nbLktLli.%NJ/72G!2?=i!;,a\!47si"72UP#Nu-i-?dB,m/I(X +kl:^MJcC<$df4g~> +kPkRK$/kjj%k0nQH'>DPj87R1!V'=S!!%kPrrD9P!!'s'rr_DL6NlWR!s(?8f'*,6puqbYRt:Tj +s3gpt~> +kPkRK$/kjj%k0nQH'>DPj87R1!V'=S!!%kPrrD9P!!'s'rr_DL6NlWR!s(?8f'*,6puqbYRt:Tj +s3gpt~> +kPkRK$/kjj%k0nQH'>DPj87R1!V'=S!!%kPrrD9P!!'s'rr_DL6NlWR!s(?8f'*,6puqbYRt:Tj +s3gpt~> +l2LeO; +l2LeO; +l2LeO; +lMgn$*UNh2'g6,g[bgu%rr@6*!!$)srrCC7!!)&Lrr^r/1]ch@!tJG2nDaHJrojC_S:U]ks3gpt~> +lMgn$*UNh2'g6,g[bgu%rr@6*!!$)srrCC7!!)&Lrr^r/1]ch@!tJG2nDaHJrojC_S:U]ks3gpt~> +lMgn$*UNh2'g6,g[bgu%rr@6*!!$)srrCC7!!)&Lrr^r/1]ch@!tJG2nDaHJrojC_S:U]ks3gpt~> +m/I.bIKT0A"p,u@F.:)5^&J'mkPtTHV>gP2n,NIZTDnu?IOs[_!ubj_q;2,O"6ojdRt:Tjs3gpt~> +m/I.bIKT0A"p,u@F.:)5^&J'mkPtTHV>gP2n,NIZTDnu?IOs[_!ubj_q;2,O"6ojdRt:Tjs3gpt~> +m/I.bIKT0A"p,u@F.:)5^&J'mkPtTHV>gP2n,NIZTDnu?IOs[_!ubj_q;2,O"6ojdRt:Tjs3gpt~> +mJd4G4SAaY-<#Gnd.t0N!6"($!%k&I!3ktn! +mJd4G4SAaY-<#Gnd.t0N!6"($!%k&I!3ktn! +mJd4G4SAaY-<#Gnd.t0N!6"($!%k&I!3ktn! +mf*ZmBHTj6KnIM,GkD?T^`!^';b^2rP*4Ykl:ee3f2PArr +mf*ZmBHTj6KnIM,GkD?T^`!^';b^2rP*4Ykl:ee3f2PArr +mf*ZmBHTj6KnIM,GkD?T^`!^';b^2rP*4Ykl:ee3f2PArr +nG`O^B)M]5">OS_fD_lO!0-4C!#_X5!0H^N!$\BA"8/j)'BoK!#>1EIeGfLXl2UgPJcC<$df4g~> +nG`O^B)M]5">OS_fD_lO!0-4C!#_X5!0H^N!$\BA"8/j)'BoK!#>1EIeGfLXl2UgPJcC<$df4g~> +nG`O^B)M]5">OS_fD_lO!0-4C!#_X5!0H^N!$\BA"8/j)'BoK!#>1EIeGfLXl2UgPJcC<$df4g~> +nc&jB.KCDcMS\t`rrCU6!!!P+rr@T>!!"dTrr_V\:^ZFe!t\Y9o$RI;&aB>rR=YBhs3gpt~> +nc&jB.KCDcMS\t`rrCU6!!!P+rr@T>!!"dTrr_V\:^ZFe!t\Y9o$RI;&aB>rR=YBhs3gpt~> +nc&jB.KCDcMS\t`rrCU6!!!P+rr@T>!!"dTrr_V\:^ZFe!t\Y9o$RI;&aB>rR=YBhs3gpt~> +o)AgDH`Q/"rr=,*!!!5"rr@$.!!#?grr_2A5m6EP!uu*fqTf*@'^>YuR">9gs3gpt~> +o)AgDH`Q/"rr=,*!!!5"rr@$.!!#?grr_2A5m6EP!uu*fqTf*@'^>YuR">9gs3gpt~> +o)AgDH`Q/"rr=,*!!!5"rr@$.!!#?grr_2A5m6EP!uu*fqTf*@'^>YuR">9gs3gpt~> +NrK)jkl:_\VZ-X(nGiPdZ2XpSJhdAk!!=d!bPo]b!#Xu$!1/9:JcF0uJ,~> +NrK)jkl:_\VZ-X(nGiPdZ2XpSJhdAk!!=d!bPo]b!#Xu$!1/9:JcF0uJ,~> +NrK)jkl:_\VZ-X(nGiPdZ2XpSJhdAk!!=d!bPo]b!#Xu$!1/9:JcF0uJ,~> +NrK*Zkl:_RVZ-WnnGiPt[Jp@,_K-sd!!< +NrK*Zkl:_RVZ-WnnGiPt[Jp@,_K-sd!!< +NrK*Zkl:_RVZ-WnnGiPt[Jp@,_K-sd!!< +NrK+'kl:_HVZ-W^nGiQ/\Gl[*ZXXd8!! +NrK+'kl:_HVZ-W^nGiQ/\Gl[*ZXXd8!! +NrK+'kl:_HVZ-W^nGiQ/\Gl[*ZXXd8!! +NrK+Bkl:_?VZ-WNnGiQ>]Di!%Uf7ce!!Xn9I0!$^\.!0r-8JcF0uJ,~> +NrK+Bkl:_?VZ-WNnGiQ>]Di!%Uf7ce!!Xn9I0!$^\.!0r-8JcF0uJ,~> +NrK+Bkl:_?VZ-WNnGiQ>]Di!%Uf7ce!!Xn9I0!$^\.!0r-8JcF0uJ,~> +NrK.Y"R5see>E6G+n5O4OM:_sjHW.;kl:f-DS>q]rr=A1!!&:8s+13us*t~> +NrK.Y"R5see>E6G+n5O4OM:_sjHW.;kl:f-DS>q]rr=A1!!&:8s+13us*t~> +NrK.Y"R5see>E6G+n5O4OM:_sjHW.;kl:f-DS>q]rr=A1!!&:8s+13us*t~> +NW/tul2Uh,VZ-W.nGiQ^_>aVgL,K(s!!=m'cMkHU!%I15!0i'7JcF0uJ,~> +NW/tul2Uh,VZ-W.nGiQ^_>aVgL,K(s!!=m'cMkHU!%I15!0i'7JcF0uJ,~> +NW/tul2Uh,VZ-W.nGiQ^_>aVgL,K(s!!=m'cMkHU!%I15!0i'7JcF0uJ,~> +NW/u:l2Uh"VuHer"7Z?kYJpMDrPj".kl:ef5EF[1rr=V8!!&46s+13us*t~> +NW/u:l2Uh"VuHer"7Z?kYJpMDrPj".kl:ef5EF[1rr=V8!!&46s+13us*t~> +NW/u:l2Uh"VuHer"7Z?kYJpMDrPj".kl:ef5EF[1rr=V8!!&46s+13us*t~> +NW/uUl2UgmVuHbdn,NI'aSuA<[q?TC!! +NW/uUl2UgmVuHbdn,NI'aSuA<[q?TC!! +NW/uUl2UgmVuHbdn,NI'aSuA<[q?TC!! +NW/uil2UgdVuHbTn,NI6bPq\BY?24t!! +NW/uil2UgdVuHbTn,NI6bPq\BY?24t!! +NW/uil2UgdVuHbTn,NI6bPq\BY?24t!! +NW/url2UgZVuHbDn,NIFcMn!pM*D1.!!=B`_#1A8!&j*B!0Mj4JcF0uJ,~> +NW/url2UgZVuHbDn,NIFcMn!pM*D1.!!=B`_#1A8!&j*B!0Mj4JcF0uJ,~> +NW/url2UgZVuHbDn,NIFcMn!pM*D1.!!=B`_#1A8!&j*B!0Mj4JcF0uJ,~> +NW0!&l2UgPVuHb4n,NIVdf0F@Y\,!@!!<6VJ^CFs!'0 +NW0!&l2UgPVuHb4n,NIVdf0F@Y\,!@!!<6VJ^CFs!'0 +NW0!&l2UgPVuHb4n,NIVdf0F@Y\,!@!!<6VJ^CFs!'0 +NW0!/l2UgFVuHb$nGiRjr71fLfT&B*kl:ed5`t3,rr>(E!!&+3s+13us*t~> +NW0!/l2UgFVuHb$nGiRjr71fLfT&B*kl:ed5`t3,rr>(E!!&+3s+13us*t~> +NW0!/l2UgFVuHb$nGiRjr71fLfT&B*kl:ed5`t3,rr>(E!!&+3s+13us*t~> +NW0!7l2Ug +NW0!7l2Ug +NW0!7l2Ug +NW0!@l2Ug3VuHaZnGiP1g]%B3PY)8G!!=0R\+lZs!''6D!0;^2JcF0uJ,~> +NW0!@l2Ug3VuHaZnGiP1g]%B3PY)8G!!=0R\+lZs!''6D!0;^2JcF0uJ,~> +NW0!@l2Ug3VuHaZnGiP1g]%B3PY)8G!!=0R\+lZs!''6D!0;^2JcF0uJ,~> +NW0!Il2Ug*VuHaJnGiP@hu +NW0!Il2Ug*VuHaJnGiP@hu +NW0!Il2Ug*VuHaJnGiP@hu +NW0!Rl2Ug!VuHa:nGiPPir9,?R847T!! +NW0!Rl2Ug!VuHa:nGiPPir9,?R847T!! +NW0!Rl2Ug!VuHa:nGiPPir9,?R847T!! +NW0![l2UfmVuHa*nGiP`k5PP\_07Ko!! +NW0![l2UfmVuHa*nGiP`k5PP\_07Ko!! +NW0![l2UfmVuHa*nGiP`k5PP\_07Ko!! +NW0!cl2UfdVuH`onGiPol2LkKT2cHc!!=*N[J.T="oFi5!!(^)rr=qA!!%t/s+13us*t~> +NW0!cl2UfdVuH`onGiPol2LkKT2cHc!!=*N[J.T="oFi5!!(^)rr=qA!!%t/s+13us*t~> +NW0!cl2UfdVuH`onGiPol2LkKT2cHc!!=*N[J.T="oFi5!!(^)rr=qA!!%t/s+13us*t~> +NW0!ll2Uf[VuH`_nGiQ*mJd=e`dBQCk5YT7H-#s$rrW+m,lI]Cg=ZE*2!P&@Mh1nZs3gpt~> +NW0!ll2Uf[VuH`_nGiQ*mJd=e`dBQCk5YT7H-#s$rrW+m,lI]Cg=ZE*2!P&@Mh1nZs3gpt~> +NW0!ll2Uf[VuH`_nGiQ*mJd=e`dBQCk5YT7H-#s$rrW+m,lI]Cg=ZE*2!P&@Mh1nZs3gpt~> +NW0!ul2UfRVuH`OnGiQ:nG`UVUfnGp!!< +NW0!ul2UfRVuH`OnGiQ:nG`UVUfnGp!!< +NW0!ul2UfRVuH`OnGiQ:nG`UVUfnGp!!< +NW0")l2UfIVuH`?nGiQIo)AdM8HIuS!t.u!lbEH$ri7RF!!(d+rr=k?!!%n-s+13us*t~> +NW0")l2UfIVuH`?nGiQIo)AdM8HIuS!t.u!lbEH$ri7RF!!(d+rr=k?!!%n-s+13us*t~> +NW0")l2UfIVuH`?nGiQIo)AdM8HIuS!t.u!lbEH$ri7RF!!(d+rr=k?!!%n-s+13us*t~> +NW0"1l2Uf@VuH`-nGiQYoD\ig%-RZn(hBuH^Ae96YV>eO!8H0+!&Eg>!/Z:,JcF0uJ,~> +NW0"1l2Uf@VuH`-nGiQYoD\ig%-RZn(hBuH^Ae96YV>eO!8H0+!&Eg>!/Z:,JcF0uJ,~> +NW0"1l2Uf@VuH`-nGiQYoD\ig%-RZn(hBuH^Ae96YV>eO!8H0+!&Eg>!/Z:,JcF0uJ,~> +NW0":l2Uf7W;cnp!V$-iWqHAmq.o3p""AH6rOi.2[5@OV!8Q6,!&Eg>!/Z:,JcF0uJ,~> +NW0":l2Uf7W;cnp!V$-iWqHAmq.o3p""AH6rOi.2[5@OV!8Q6,!&Eg>!/Z:,JcF0uJ,~> +NW0":l2Uf7W;cnp!V$-iWqHAmq.o3p""AH6rOi.2[5@OV!8Q6,!&Eg>!/Z:,JcF0uJ,~> +NW0"Cl2Uf.W;ck\n,NI"pAY0P2s^MH!CD_(])MfB3:d+Mgt;W,1$S`=Lk5SWs3gpt~> +NW0"Cl2Uf.W;ck\n,NI"pAY0P2s^MH!CD_(])MfB3:d+Mgt;W,1$S`=Lk5SWs3gpt~> +NW0"Cl2Uf.W;ck\n,NI"pAY0P2s^MH!CD_(])MfB3:d+Mgt;W,1$S`=Lk5SWs3gpt~> +NW0"Ll2Uf%W;ckHn,NI2p\t9('^br'&6GXn\c2]F4n/LPh:V`-0^8W +NW0"Ll2Uf%W;ckHn,NI2p\t9('^br'&6GXn\c2]F4n/LPh:V`-0^8W +NW0"Ll2Uf%W;ckHn,NI2p\t9('^br'&6GXn\c2]F4n/LPh:V`-0^8W +NW0"Vl2UeqW;ck4n,NIAq>UNpIff*>"!qs#qRHP+_a +NW0"Vl2UeqW;ck4n,NIAq>UNpIff*>"!qs#qRHP+_a +NW0"Vl2UeqW;ck4n,NIAq>UNpIff*>"!qs#qRHP+_a +N;ik_lMpnjW;ck!n,NIQqYpT^7e-N]"@.pu[f6BL8+$?X!VtCJ!&*U;!/?()JcF0uJ,~> +N;ik_lMpnjW;ck!n,NIQqYpT^7e-N]"@.pu[f6BL8+$?X!VtCJ!&*U;!/?()JcF0uJ,~> +N;ik_lMpnjW;ck!n,NIQqYpT^7e-N]"@.pu[f6BL8+$?X!VtCJ!&*U;!/?()JcF0uJ,~> +N;ikjlMpnfW;cjbn,NIaqu6];*V9=6&mD4$[Jp9O9C)WY&D-p^0'WE:Kn98Ts3gpt~> +N;ikjlMpnfW;cjbn,NIaqu6];*V9=6&mD4$[Jp9O9C)WY&D-p^0'WE:Kn98Ts3gpt~> +N;ikjlMpnfW;cjbn,NIaqu6];*V9=6&mD4$[Jp9O9C)WY&D-p^0'WE:Kn98Ts3gpt~> +N;ikulMpngW;cjNnGiOqqu6\\#5/$!. +N;ikulMpngW;cjNnGiOqqu6\\#5/$!. +N;ikulMpngW;cjNnGiOqqu6\\#5/$!. +N;il+lMpngW;cj;nGiP,rVloi=SMju#"4R.YQ"SXl2UfFfDbh&l2Ug:JcC<$df4g~> +N;il+lMpngW;cj;nGiP,rVloi=SMju#"4R.YQ"SXl2UfFfDbh&l2Ug:JcC<$df4g~> +N;il+lMpngW;cj;nGiP,rVloi=SMju#"4R.YQ"SXl2UfFfDbh&l2Ug:JcC<$df4g~> +N;il5lMpngW;cj'nGiP +N;il5lMpngW;cj'nGiP +N;il5lMpngW;cj'nGiP +N;il@lMpnhW;cihnGi\Os8Sr)qu?gNH,]]\rr?6f!!$T^rr=S7!!%S$s+13us*t~> +N;il@lMpnhW;cihnGi\Os8Sr)qu?gNH,]]\rr?6f!!$T^rr=S7!!%S$s+13us*t~> +N;il@lMpnhW;cihnGi\Os8Sr)qu?gNH,]]\rr?6f!!$T^rr=S7!!%S$s+13us*t~> +N;ilKlMpnhW;ciTnGiV]q/$$1!s_>[hkg>QDX%3%HIr/s/*[*7J:[`Os3gpt~> +N;ilKlMpnhW;ciTnGiV]q/$$1!s_>[hkg>QDX%3%HIr/s/*[*7J:[`Os3gpt~> +N;ilKlMpnhW;ciTnGiV]q/$$1!s_>[hkg>QDX%3%HIr/s/*[*7J:[`Os3gpt~> +N;ilVlMpnhW;ciAnGibg2ZO\(Y4JCf!.sJ9!0>b3!%R76!.TS"JcF0uJ,~> +N;ilVlMpnhW;ciAnGibg2ZO\(Y4JCf!.sJ9!0>b3!%R76!.TS"JcF0uJ,~> +N;ilVlMpnhW;ciAnGibg2ZO\(Y4JCf!.sJ9!0>b3!%R76!.TS"JcF0uJ,~> +N;il`lMpnhW;ci-nGiY2IEDG[rrAAM!!&nJrr=M5!!%J!s+13us*t~> +N;il`lMpnhW;ci-nGiY2IEDG[rrAAM!!&nJrr=M5!!%J!s+13us*t~> +N;il`lMpnhW;ci-nGiY2IEDG[rrAAM!!&nJrr=M5!!%J!s+13us*t~> +N;ilklMpniWW)ton,NH4SGrShl2Uh(fDbh"l2Ug4JcC<$df4g~> +N;ilklMpniWW)ton,NH4SGrShl2Uh(fDbh"l2Ug4JcC<$df4g~> +N;ilklMpniWW)ton,NH4SGrShl2Uh(fDbh"l2Ug4JcC<$df4g~> +N;im!lMpniWW)t\n,NHCSGrT'l2UhKfDbh!l2Ug4JcC<$df4g~> +N;im!lMpniWW)t\n,NHCSGrT'l2UhKfDbh!l2Ug4JcC<$df4g~> +N;im!lMpniWW)t\n,NHCSGrT'l2UhKfDbh!l2Ug4JcC<$df4g~> +N;im+lMpniWW)tHn,NHSSGrT;lMpnof)G^tl2Ug3JcC<$df4g~> +N;im+lMpniWW)tHn,NHSSGrT;lMpnof)G^tl2Ug3JcC<$df4g~> +N;im+lMpniWW)tHn,NHSSGrT;lMpnof)G^tl2Ug3JcC<$df4g~> +N;im6lMpniWW)t4n,NHcSGrTBlMpo=f)G^sl2Ug2JcC<$df4g~> +N;im6lMpniWW)t4n,NHcSGrTBlMpo=f)G^sl2Ug2JcC<$df4g~> +N;im6lMpniWW)t4n,NHcSGrTBlMpo=f)G^sl2Ug2JcC<$df4g~> +N;im +N;im +N;im +N;im>lMpnjWW)sbn,NI-SGrT3lMpp-f)G^rl2Ug0JcC<$df4g~> +N;im>lMpnjWW)sbn,NI-SGrT3lMpp-f)G^rl2Ug0JcC<$df4g~> +N;im>lMpnjWW)sbn,NI-SGrT3lMpp-f)G^rl2Ug0JcC<$df4g~> +N;im?lMpnnWW)sNn,NI=SGrT,lMppPf)G^ql2Ug/JcC<$df4g~> +N;im?lMpnnWW)sNn,NI=SGrT,lMppPf)G^ql2Ug/JcC<$df4g~> +N;im?lMpnnWW)sNn,NI=SGrT,lMppPf)G^ql2Ug/JcC<$df4g~> +N;imAlMpo"WW)s:n,NILSGrT%lMppsf)G^ql2Ug.JcC<$df4g~> +N;imAlMpo"WW)s:n,NILSGrT%lMppsf)G^ql2Ug.JcC<$df4g~> +N;imAlMpo"WW)s:n,NILSGrT%lMppsf)G^ql2Ug.JcC<$df4g~> +N;imBlMpo,WW)s'n,NI\SGrSslMpqAf)G^pl2Ug-JcC<$df4g~> +N;imBlMpo,WW)s'n,NI\SGrSslMpqAf)G^pl2Ug-JcC<$df4g~> +N;imBlMpo,WW)s'n,NI\SGrSslMpqAf)G^pl2Ug-JcC<$df4g~> +N;imDlMpo5WW)rhnGiOmS,WJjli7%ir7:lJ,3f..Fb0RDs3gpt~> +N;imDlMpo5WW)rhnGiOmS,WJjli7%ir7:lJ,3f..Fb0RDs3gpt~> +N;imDlMpo5WW)rhnGiOmS,WJjli7%ir7:lJ,3f..Fb0RDs3gpt~> +N;imElMpo>WW)rTnGiP'S,WJcli7#3ec,Uml2Ug+JcC<$df4g~> +N;imElMpo>WW)rTnGiP'S,WJcli7#3ec,Uml2Ug+JcC<$df4g~> +N;imElMpo>WW)rTnGiP'S,WJcli7#3ec,Uml2Ug+JcC<$df4g~> +N;imGlMpoGWW)r@nGiP7S,WJ\li7#Vec,Ull2Ug+JcC<$df4g~> +N;imGlMpoGWW)r@nGiP7S,WJ\li7#Vec,Ull2Ug+JcC<$df4g~> +N;imGlMpoGWW)r@nGiP7S,WJ\li7#Vec,Ull2Ug+JcC<$df4g~> +N;imIlMpoPWW)r-nGiPGS,WJSli7$$ec,Ukl2Ug*JcC<$df4g~> +N;imIlMpoPWW)r-nGiPGS,WJSli7$$ec,Ukl2Ug*JcC<$df4g~> +N;imIlMpoPWW)r-nGiPGS,WJSli7$$ec,Ukl2Ug*JcC<$df4g~> +N;imJlMpoYWrE(on,NGUS,WJ +N;imJlMpoYWrE(on,NGUS,WJ +N;imJlMpoYWrE(on,NGUS,WJ +N;imLlMpobWrE([n,NGeS,WJ#li7$jec,Ujl2Ug(JcC<$df4g~> +N;imLlMpobWrE([n,NGeS,WJ#li7$jec,Ujl2Ug(JcC<$df4g~> +N;imLlMpobWrE([n,NGeS,WJ#li7$jec,Ujl2Ug(JcC<$df4g~> +N;imMlMpokWrE(Hn,NGtS,WI_li7%8ec,Uil2Ug'JcC<$df4g~> +N;imMlMpokWrE(Hn,NGtS,WI_li7%8ec,Uil2Ug'JcC<$df4g~> +N;imMlMpokWrE(Hn,NGtS,WI_li7%8ec,Uil2Ug'JcC<$df4g~> +N;imOlMpotWrE(4n,NH/S,WIFm/R.fp!s'B*9mM(Dh7q>s3gpt~> +N;imOlMpotWrE(4n,NH/S,WIFm/R.fp!s'B*9mM(Dh7q>s3gpt~> +N;imOlMpotWrE(4n,NH/S,WIFm/R.fp!s'B*9mM(Dh7q>s3gpt~> +N;imPlMpp)WrE'un,NH?S,WI.m/R,)eGfLfl2Ug%JcC<$df4g~> +N;imPlMpp)WrE'un,NH?S,WI.m/R,)eGfLfl2Ug%JcC<$df4g~> +N;imPlMpp)WrE'un,NH?S,WI.m/R,)eGfLfl2Ug%JcC<$df4g~> +N;imNlMpp2WrE'an,NHNSGrWg"ml9i4k0K3)X7;&D1V_ +N;imNlMpp2WrE'an,NHNSGrWg"ml9i4k0K3)X7;&D1V_ +N;imNlMpp2WrE'an,NHNSGrWg"ml9i4k0K3)X7;&D1V_ +N;imGlMpp;WrE'Nn,NH^SGrTRli7#leGfLdl2Ug#JcC<$df4g~> +N;imGlMpp;WrE'Nn,NH^SGrTRli7#leGfLdl2Ug#JcC<$df4g~> +N;imGlMpp;WrE'Nn,NH^SGrTRli7#leGfLdl2Ug#JcC<$df4g~> +N;im?lMppGWrE':n,NHnSGrT9li7$6eGfLcl2Ug"JcC<$df4g~> +N;im?lMppGWrE':n,NHnSGrT9li7$6eGfLcl2Ug"JcC<$df4g~> +N;im?lMppGWrE':n,NHnSGrT9li7$6eGfLcl2Ug"JcC<$df4g~> +N;im7lMppXWrE'&n,NI(SGrSuli7$UeGfLbl2Ug"JcC<$df4g~> +N;im7lMppXWrE'&n,NI(SGrSuli7$UeGfLbl2Ug"JcC<$df4g~> +N;im7lMppXWrE'&n,NI(SGrSuli7$UeGfLbl2Ug"JcC<$df4g~> +N;im0lMppjWrE&gn,NI8SGrSYli7$ueGfLal2Ug!JcC<$df4g~> +N;im0lMppjWrE&gn,NI8SGrSYli7$ueGfLal2Ug!JcC<$df4g~> +N;im0lMppjWrE&gn,NI8SGrSYli7$ueGfLal2Ug!JcC<$df4g~> +N;im(lMpq&WrE&Tn,NIHSGrS8li7%?eGfLal2UfuJcC<$df4g~> +N;im(lMpq&WrE&Tn,NIHSGrS8li7%?eGfLal2UfuJcC<$df4g~> +N;im(lMpq&WrE&Tn,NIHSGrS8li7%?eGfLal2UfuJcC<$df4g~> +N;ilulMpq8WrE&@n,NIWSGrRlm/R.gq:,EE($Yc!BS$27s3gpt~> +N;ilulMpq8WrE&@n,NIWSGrRlm/R.gq:,EE($Yc!BS$27s3gpt~> +N;ilulMpq8WrE&@n,NIWSGrRlm/R.gq:,EE($Yc!BS$27s3gpt~> +N;ilmlMpqIWrE&,nGiRkrLElf2sgSF)q4fe'^>YuB7^)6s3gpt~> +N;ilmlMpqIWrE&,nGiRkrLElf2sgSF)q4fe'^>YuB7^)6s3gpt~> +N;ilmlMpqIWrE&,nGiRkrLElf2sgSF)q4fe'^>YuB7^)6s3gpt~> +N;ilflMpq[X8`1on,NG"S,WI(m/R,Je,KC]l2UfrJcC<$df4g~> +N;ilflMpq[X8`1on,NG"S,WI(m/R,Je,KC]l2UfrJcC<$df4g~> +N;ilflMpq[X8`1on,NG"S,WI(m/R,Je,KC]l2UfrJcC<$df4g~> +N;il^li7"mWrE(Zn,NG1SGrW^!UTje>1 +N;il^li7"mWrE(Zn,NG1SGrW^!UTje>1 +N;il^li7"mWrE(Zn,NG1SGrW^!UTje>1 +N;ilVli7#*WrE(Fn,NGASGrT +N;ilVli7#*WrE(Fn,NGASGrT +N;ilVli7#*WrE(Fn,NGASGrT +N;ilOli7#;WrE(2n,NGPSGrSpli7$@e,KCZl2UfoJcC<$df4g~> +N;ilOli7#;WrE(2n,NGPSGrSpli7$@e,KCZl2UfoJcC<$df4g~> +N;ilOli7#;WrE(2n,NGPSGrSpli7$@e,KCZl2UfoJcC<$df4g~> +N;ilGli7#MWrE'tn,NG\SGrSOli7$Re,KCYl2UfoJcC<$df4g~> +N;ilGli7#MWrE'tn,NG\SGrSOli7$Re,KCYl2UfoJcC<$df4g~> +N;ilGli7#MWrE'tn,NG\SGrSOli7$Re,KCYl2UfoJcC<$df4g~> +N;il?li7#^WrE'`n,NGhSGrS.li7$ce,KCXl2UfnJcC<$df4g~> +N;il?li7#^WrE'`n,NGhSGrS.li7$ce,KCXl2UfnJcC<$df4g~> +N;il?li7#^WrE'`n,NGhSGrS.li7$ce,KCXl2UfnJcC<$df4g~> +N;il5li7#pWrE'Ln,NGsSGrRcli7$ue,KCWl2UfmJcC<$df4g~> +N;il5li7#pWrE'Ln,NGsSGrRcli7$ue,KCWl2UfmJcC<$df4g~> +N;il5li7#pWrE'Ln,NGsSGrRcli7$ue,KCWl2UfmJcC<$df4g~> +N;il$li7$-WrE'9n,NH)SGrRCli7%2e,KCWl2UflJcC<$df4g~> +N;il$li7$-WrE'9n,NH)SGrRCli7%2e,KCWl2UflJcC<$df4g~> +N;il$li7$-WrE'9n,NH)SGrRCli7%2e,KCWl2UflJcC<$df4g~> +N;ikhli7$@WrE'%n,NH4SGrR$li7%Ce,KCVl2UfkJcC<$df4g~> +N;ikhli7$@WrE'%n,NH4SGrR$li7%Ce,KCVl2UfkJcC<$df4g~> +N;ikhli7$@WrE'%n,NH4SGrR$li7%Ce,KCVl2UfkJcC<$df4g~> +NW0%W!UKddTW8"l7IU9WJt;oAnEU&Sn^IL<$gI]l?@i--s3gpt~> +NW0%W!UKddTW8"l7IU9WJt;oAnEU&Sn^IL<$gI]l?@i--s3gpt~> +NW0%W!UKddTW8"l7IU9WJt;oAnEU&Sn^IL<$gI]l?@i--s3gpt~> +NW0"FlMpprWrE&Rn,NHJSc8]:li7%hrmUlI$L.Tk?\/6.s3gpt~> +NW0"FlMpprWrE&Rn,NHJSc8]:li7%hrmUlI$L.Tk?\/6.s3gpt~> +NW0"FlMpprWrE&Rn,NHJSc8]:li7%hrmUlI$L.Tk?\/6.s3gpt~> +NW0"5lMpq6WrE&?n,NHVSc8\oli7#"df0:Rl2Ufmnc'K<3AW9;-6XBI'G(]k,VM2I:g7OOI@.Cg +m",1fs8;nI~> +NW0"5lMpq6WrE&?n,NHVSc8\oli7#"df0:Rl2Ufmnc'K<3AW9;-6XBI'G(]k,VM2I:g7OOI@.Cg +m",1fs8;nI~> +NW0"5lMpq6WrE&?n,NHVSc8\oli7#"df0:Rl2Ufmnc'K<3AW9;-6XBI'G(]k,VM2I:g7OOI@.Cg +m",1fs8;nI~> +NW0"$lMpqPWrE&+n,NHaSc8\Pli7#"df0:Ql2UfooD\j_@HRUq"XH? +NW0"$lMpqPWrE&+n,NHaSc8\Pli7#"df0:Ql2UfooD\j_@HRUq"XH? +NW0"$lMpqPWrE&+n,NHaSc8\Pli7#"df0:Ql2UfooD\j_@HRUq"XH? +NW0!hli7%lri?&!p$Vk\YFY[nEU3Z*%at@W#O29hAb?!'c6qKL"p#rGJ$.T*JcCW-J,~> +NW0!hli7%lri?&!p$Vk\YFY[nEU3Z*%at@W#O29hAb?!'c6qKL"p#rGJ$.T*JcCW-J,~> +NW0!hli7%lri?&!p$Vk\YFY[nEU3Z*%at@W#O29hAb?!'c6qKL"p#rGJ$.T*JcCW-J,~> +NW0!Wli7#/WrE(Ymf3@!Sc8[eli7"ldf0:Ol2UfspAY3nNsF;;"9^bu[.](NNrOV~> +NW0!Wli7#/WrE(Ymf3@!Sc8[eli7"ldf0:Ol2UfspAY3nNsF;;"9^bu[.](NNrOV~> +NW0!Wli7#/WrE(Ymf3@!Sc8[eli7"ldf0:Ol2UfspAY3nNsF;;"9^bu[.](NNrOV~> +NW0!Fli7#IWrE(Cmf3@,Sc8[Ili7"gdf0:Nl2Ufup\t9Y9%!\B"?LqEpjrI.s*t~> +NW0!Fli7#IWrE(Cmf3@,Sc8[Ili7"gdf0:Nl2Ufup\t9Y9%!\B"?LqEpjrI.s*t~> +NW0!Fli7#IWrE(Cmf3@,Sc8[Ili7"gdf0:Nl2Ufup\t9Y9%!\B"?LqEpjrI.s*t~> +NW0!5li7#bWrE(.mf3@8Sc8[4lMpqae,KCOl2Ug"q#:B,)9i-`#=O?eJcD#8J,~> +NW0!5li7#bWrE(.mf3@8Sc8[4lMpqae,KCOl2Ug"q#:B,)9i-`#=O?eJcD#8J,~> +NW0!5li7#bWrE(.mf3@8Sc8[4lMpqae,KCOl2Ug"q#:B,)9i-`#=O?eJcD#8J,~> +NW0!$li7$'WrE'mmf3@CSc8ZtlMpq\e,KCNl2Ug$qYpWnG65hc![;p;JcD,;J,~> +NW0!$li7$'WrE'mmf3@CSc8ZtlMpq\e,KCNl2Ug$qYpWnG65hc![;p;JcD,;J,~> +NW0!$li7$'WrE'mmf3@CSc8ZtlMpq\e,KCNl2Ug$qYpWnG65hc![;p;JcD,;J,~> +NW/ugli7$AWrE'Wmf3@NT)Sf`l2UhVe,KCMl2Ug&qu6]P2T#Lr.YHH+s-s%=~> +NW/ugli7$AWrE'Wmf3@NT)Sf`l2UhVe,KCMl2Ug&qu6]P2T#Lr.YHH+s-s%=~> +NW/ugli7$AWrE'Wmf3@NT)Sf`l2UhVe,KCMl2Ug&qu6]P2T#Lr.YHH+s-s%=~> +NW/uVli7$ZWrE'Amf3@YT)SfLl2UhQe,KCLl2Ug(r;Qeo%_huF1lUFFs.97@~> +NW/uVli7$ZWrE'Amf3@YT)SfLl2UhQe,KCLl2Ug(r;Qeo%_huF1lUFFs.97@~> +NW/uVli7$ZWrE'Amf3@YT)SfLl2UhQe,KCLl2Ug(r;Qeo%_huF1lUFFs.97@~> +NW/uCli7$tWrE'+n,NIirLX#hbj#0.lI5b5!U9XbF8l1?o3]*0!s2-,rdk*Cs*t~> +NW/uCli7$tWrE'+n,NIirLX#hbj#0.lI5b5!U9XbF8l1?o3]*0!s2-,rdk*Cs*t~> +NW/uCli7$tWrE'+n,NIirLX#hbj#0.lI5b5!U9XbF8l1?o3]*0!s2-,rdk*Cs*t~> +NW/u(li7%8WrE&kn,NFpSc8]!l2Uh7e,SY4"EjbEbU'^u!\Bf6JcDMFJ,~> +NW/u(li7%8WrE&kn,NFpSc8]!l2Uh7e,SY4"EjbEbU'^u!\Bf6JcDMFJ,~> +NW/u(li7%8WrE&kn,NFpSc8]!l2Uh7e,SY4"EjbEbU'^u!\Bf6JcDMFJ,~> +NW/tcli7%VWrE&Un,NG'Sc8\al2UggeGfOJkl:g0rf%,h!!3j\jFR?-s*t~> +NW/tcli7%VWrE&Un,NG'Sc8\al2UggeGfOJkl:g0rf%,h!!3j\jFR?-s*t~> +NW/tcli7%VWrE&Un,NG'Sc8\al2UggeGfOJkl:g0rf%,h!!3j\jFR?-s*t~> +NrK+Ili7"tWW)r>n,NG2Sc8\Ll2UgBeGfOIkl:a%8?`'q"^9$!s/5mI~> +NrK+Ili7"tWW)r>n,NG2Sc8\Ll2UgBeGfOIkl:a%8?`'q"^9$!s/5mI~> +NrK+Ili7"tWW)r>n,NG2Sc8\Ll2UgBeGfOIkl:a%8?`'q"^9$!s/5mI~> +NrK+.li7#@WW)r(n,NG=Sc8\8l2UfreGfOHkl:\kX8i8ec@Q"ps*t~> +NrK+.li7#@WW)r(n,NG=Sc8\8l2UfreGfOHkl:\kX8i8ec@Q"ps*t~> +NrK+.li7#@WW)r(n,NG=Sc8\8l2UfreGfOHkl:\kX8i8ec@Q"ps*t~> +NrK*hli7#bWrE(hmf3>GSc8\3l2UfLeGfOHOoPOa +NrK*hli7#bWrE(hmf3>GSc8\3l2UfLeGfOHOoPOa +NrK*hli7#bWrE(hmf3>GSc8\3l2UfLeGfOHOoPOa +NrK*Nli7$.WrE(Smf3>RSc8\3l2Uf'eGfOGO8o=bBB=^EXoEn~> +NrK*Nli7$.WrE(Smf3>RSc8\3l2Uf'eGfOGO8o=bBB=^EXoEn~> +NrK*Nli7$.WrE(Smf3>RSc8\3l2Uf'eGfOGO8o=bBB=^EXoEn~> +NrK*3li7$OWrE(=mf3>]Sc8\3l2Uhco[WsAqW\%b#]lZC^Wt[6i;MUCio/G+Z_EV6E*l@&*5MUV +$@)#js0)HQ~> +NrK*3li7$OWrE(=mf3>]Sc8\3l2Uhco[WsAqW\%b#]lZC^Wt[6i;MUCio/G+Z_EV6E*l@&*5MUV +$@)#js0)HQ~> +NrK*3li7$OWrE(=mf3>]Sc8\3l2Uhco[WsAqW\%b#]lZC^Wt[6i;MUCio/G+Z_EV6E*l@&*5MUV +$@)#js0)HQ~> +NrK)mli7$pWrE('mf3>iSc8\3kl:_1ec,XFlMprUkN;dLp=$1%AjIF=`rH/PMYD]%Z2]=~> +NrK)mli7$pWrE('mf3>iSc8\3kl:_1ec,XFlMprUkN;dLp=$1%AjIF=`rH/PMYD]%Z2]=~> +NrK)mli7$pWrE('mf3>iSc8\3kl:_1ec,XFlMprUkN;dLp=$1%AjIF=`rH/PMYD]%Z2]=~> +NrK)Rli7%=WrE'fmf3>tSc8\3kl:^aec,XFm/R1lNW.f7"TH`6>pIGk!B0+ls0DZT~> +NrK)Rli7%=WrE'fmf3>tSc8\3kl:^aec,XFm/R1lNW.f7"TH`6>pIGk!B0+ls0DZT~> +NrK)Rli7%=WrE'fmf3>tSc8\3kl:^aec,XFm/R1lNW.f7"TH`6>pIGk!B0+ls0DZT~> +NrK)8m/R.gpo=>oK^Sm@DOpe-FQic+39\rn!;Ps^!@Q.DrrhMeF#aKM!!+1jJcE(VJ,~> +NrK)8m/R.gpo=>oK^Sm@DOpe-FQic+39\rn!;Ps^!@Q.DrrhMeF#aKM!!+1jJcE(VJ,~> +NrK)8m/R.gpo=>oK^Sm@DOpe-FQic+39\rn!;Ps^!@Q.DrrhMeF#aKM!!+1jJcE(VJ,~> +NrK(rm/R,+WW)s:mf3?5Sc8\2kPtYmO8RZ1!;Q!_!G(iNrr`2'I4EPC!=c\ms0VfV~> +NrK(rm/R,+WW)s:mf3?5Sc8\2kPtYmO8RZ1!;Q!_!G(iNrr`2'I4EPC!=c\ms0VfV~> +NrK(rm/R,+WW)s:mf3?5Sc8\2kPtYmO8RZ1!;Q!_!G(iNrr`2'I4EPC!=c\ms0VfV~> +O8f7W!posf5,nP^=ml=jKUr,CF63H'1sakT!;H!`!>2BVrrUc(1!ot%#/>`h[Jta~> +O8f7W!posf5,nP^=ml=jKUr,CF63H'1sakT!;H!`!>2BVrrUc(1!ot%#/>`h[Jta~> +O8f7W!posf5,nP^=ml=jKUr,CF63H'1sakT!;H!`!>2BVrrUc(1!ot%#/>`h[Jta~> +O8f4=li7#mWW)rcmf3?LSc8\2jT#>aM#5s,!;H$a!C#J`rr_&62Z_D.!>3n6s0hrX~> +O8f4=li7#mWW)rcmf3?LSc8\2jT#>aM#5s,!;H$a!C#J`rr_&62Z_D.!>3n6s0hrX~> +O8f4=li7#mWW)rcmf3?LSc8\2jT#>aM#5s,!;H$a!C#J`rr_&62Z_D.!>3n6s0hrX~> +O8f3uli7$9WW)rMmf3?WSc8\>irB,jFQ;3W!;?$b!X+,Q`;]o1O;-4F!?pZXs0r#Y~> +O8f3uli7$9WW)rMmf3?WSc8\>irB,jFQ;3W!;?$b!X+,Q`;]o1O;-4F!?pZXs0r#Y~> +O8f3uli7$9WW)rMmf3?WSc8\>irB,jFQ;3W!;?$b!X+,Q`;]o1O;-4F!?pZXs0r#Y~> +O8f3Qli7$ZWW)r7mf3?bSc8\]i;`o`?dmp4!;?'c!?oFtrr`2'635[ +O8f3Qli7$ZWW)r7mf3?bSc8\]i;`o`?dmp4!;?'c!?oFtrr`2'635[ +O8f3Qli7$ZWW)r7mf3?bSc8\]i;`o`?dmp4!;?'c!?oFtrr`2'635[ +O8f3-li7%(WrE+u"Rc +O8f3-li7%(WrE+u"Rc +O8f3-li7%(WrE+u"Rc +O8f2]li7%PWrE(bmJm7"Sc8]Eg].Ea +O8f2]li7%PWrE(bmJm7"Sc8]Eg].Ea +O8f2]li7%PWrE(bmJm7"Sc8]Eg].Ea +O8f29m/R,$WW)tKmJm7-Sc8`c!nmVV#$7#Ykl1YCq#CFQgU7%_rLXn]!!&XBs1&)Z~> +O8f29m/R,$WW)tKmJm7-Sc8`c!nmVV#$7#Ykl1YCq#CFQgU7%_rLXn]!!&XBs1&)Z~> +O8f29m/R,$WW)tKmJm7-Sc8`c!nmVV#$7#Ykl1YCq#CFQgU7%_rLXn]!!&XBs1&)Z~> +O8f1im/R,MWW)t5mJm79SGrR,ec5dsA#&)NrrCaL!!34GqQg,&qN;TM!!(>rs1&)Z~> +O8f1im/R,MWW)t5mJm79SGrR,ec5dsA#&)NrrCaL!!34GqQg,&qN;TM!!(>rs1&)Z~> +O8f1im/R,MWW)t5mJm79SGrR,ec5dsA#&)NrrCaL!!34GqQg,&qN;TM!!(>rs1&)Z~> +OT,=Fli7#uWW)stmJm7DSGrRKdJsFt;Lu(0rpp'hchmbD)niES!q:F@i;`j,JcE4ZJ,~> +OT,=Fli7#uWW)stmJm7DSGrRKdJsFt;Lu(0rpp'hchmbD)niES!q:F@i;`j,JcE4ZJ,~> +OT,=Fli7#uWW)stmJm7DSGrRKdJsFt;Lu(0rpp'hchmbD)niES!q:F@i;`j,JcE4ZJ,~> +OT,=!li7$HWW)s_mJm7OSGrRibl@nX4`$V1p@nRe`Vfc;:[>(]!odMfj8]2]["87ds*t~> +OT,=!li7$HWW)s_mJm7OSGrRibl@nX4`$V1p@nRe`Vfc;:[>(]!odMfj8]2]["87ds*t~> +OT,=!li7$HWW)s_mJm7OSGrRibl@nX4`$V1p@nRe`Vfc;:[>(]!odMfj8]2]["87ds*t~> +OT, +OT, +OT, +OT,<-li7%DWW)s3mf3@irg`uh_$.^V#S]UFT[0\>/_$Tr!Mp.e!!,XiJcE1YJ,~> +OT,<-li7%DWW)s3mf3@irg`uh_$.^V#S]UFT[0\>/_$Tr!Mp.e!!,XiJcE1YJ,~> +OT,<-li7%DWW)s3mf3@irg`uh_$.^V#S]UFT[0\>/_$Tr!Mp.e!!,XiJcE1YJ,~> +OT,;]m/R.pri,nt;XXSc$_%(rc6L(("ToE@Mn8ARrrLUll2UiVpOW@Ps*t~> +OT,;]m/R.pri,nt;XXSc$_%(rc6L(("ToE@Mn8ARrrLUll2UiVpOW@Ps*t~> +OT,;]m/R.pri,nt;XXSc$_%(rc6L(("ToE@Mn8ARrrLUll2UiVpOW@Ps*t~> +OT,;9m/R,BW;ci[mf3>(RK!OSBf!Tu?,!!,^eJcE+WJ,~> +OT,;9m/R,BW;ci[mf3>(RK!OSBf!Tu?,!!,^eJcE+WJ,~> +OT,;9m/R,BW;ci[mf3>(RK!OSBf!Tu?,!!,^eJcE+WJ,~> +OT,:im/R,jW;ciFmf3>3R/[6eM?L]p!>MT.rrMm`mJm8[pjrIOs*t~> +OT,:im/R,jW;ciFmf3>3R/[6eM?L]p!>MT.rrMm`mJm8[pjrIOs*t~> +OT,:im/R,jW;ciFmf3>3R/[6eM?L]p!>MT.rrMm`mJm8[pjrIOs*t~> +OoGFFli7$=W;ci0mf3>>QN%!%&]+MK9]r&J!VSG@!!,afJcE%UJ,~> +OoGFFli7$=W;ci0mf3>>QN%!%&]+MK9]r&J!VSG@!!,afJcE%UJ,~> +OoGFFli7$=W;ci0mf3>>QN%!%&]+MK9]r&J!VSG@!!,afJcE%UJ,~> +OoGEsli7$fWW*"p!Ug!g30jLFqjAAB!!*P!SGrWP)=db.9_a2=Z2]=~> +OoGEsli7$fWW*"p!Ug!g30jLFqjAAB!!*P!SGrWP)=db.9_a2=Z2]=~> +OoGEsli7$fWW*"p!Ug!g30jLFqjAAB!!*P!SGrWP)=db.9_a2=Z2]=~> +P5bRVP3`/KeZ&QKjR*!J6^.NOonF"!!!,:?Rf +P5bRVP3`/KeZ&QKjR*!J6^.NOonF"!!!,:?Rf +P5bRVP3`/KeZ&QKjR*!J6^.NOonF"!!!,:?Rf +Q2_!YT69%%m/R.hq5OAocL(Z4:6GPXnRi!L!!3FbrL*ZcSFcd^DZ,.dYQ'+~> +Q2_!YT69%%m/R.hq5OAocL(Z4:6GPXnRi!L!!3FbrL*ZcSFcd^DZ,.dYQ'+~> +Q2_!YT69%%m/R.hq5OAocL(Z4:6GPXnRi!L!!3FbrL*ZcSFcd^DZ,.dYQ'+~> +Qi@9/@h3k]s#'0D!&(;N!4hLt!*YH`"8&9O!RUlJ1=V]k!W4_H!!*.\JcDkPJ,~> +Qi@9/@h3k]s#'0D!&(;N!4hLt!*YH`"8&9O!RUlJ1=V]k!W4_H!!*.\JcDkPJ,~> +Qi@9/@h3k]s#'0D!&(;N!4hLt!*YH`"8&9O!RUlJ1=V]k!W4_H!!*.\JcDkPJ,~> +Rf<]XMCAND^&S-1$1.]m?E!l(U[A*^AW6WjgNspj!!3:OqNq3^GP2";#cWCTXT*e~> +Rf<]XMCAND^&S-1$1.]m?E!l(U[A*^AW6WjgNspj!!3:OqNq3^GP2";#cWCTXT*e~> +Rf<]XMCAND^&S-1$1.]m?E!l(U[A*^AW6WjgNspj!!3:OqNq3^GP2";#cWCTXT*e~> +Sc8rlYtkN'!)2_XrrC[;!!&%XrrA&H!!$tprr^,^0EKl-!@Q!TrrKP/pAb4,_L_`fs*t~> +Sc8rlYtkN'!)2_XrrC[;!!&%XrrA&H!!$tprr^,^0EKl-!@Q!TrrKP/pAb4,_L_`fs*t~> +Sc8rlYtkN'!)2_XrrC[;!!&%XrrA&H!!$tprr^,^0EKl-!@Q!TrrKP/pAb4,_L_`fs*t~> +TDnuFFrC8Z!XFkerVlkrli7%"W;cjAmJm66LAqA +TDnuFFrC8Z!XFkerVlkrli7%"W;cjAmJm66LAqA +TDnuFFrC8Z!XFkerVlkrli7%"W;cjAmJm66LAqA +UAk>eSN?lN!!+Loqu6YAli7%QW;cj+mJm6AKDu,Ret[1I%-7Hi*P@[;!W+kN!!+P4JcD_LJ,~> +UAk>eSN?lN!!+Loqu6YAli7%QW;cj+mJm6AKDu,Ret[1I%-7Hi*P@[;!W+kN!!+P4JcD_LJ,~> +UAk>eSN?lN!!+Loqu6YAli7%QW;cj+mJm6AKDu,Ret[1I%-7Hi*P@[;!W+kN!!+P4JcD_LJ,~> +V#LM7@LW,6!Ftcurr>^Z!!"(a\!!&15s8N$%rR[ib4q6fX!FG5[rrMd[pAb50q18REs*t~> +V#LM7@LW,6!Ftcurr>^Z!!"(a\!!&15s8N$%rR[ib4q6fX!FG5[rrMd[pAb50q18REs*t~> +V#LM7@LW,6!Ftcurr>^Z!!"(a\!!&15s8N$%rR[ib4q6fX!FG5[rrMd[pAb50q18REs*t~> +VuHh]M(&3#!>)7*rr=&+!!#`krr=tF!!&O?s7uZurR[ib5QgQW!>V`$rrMd[p](=$TRm-?s*t~> +VuHh]M(&3#!>)7*rr=&+!!#`krr=tF!!&O?s7uZurR[ib5QgQW!>V`$rrMd[p](=$TRm-?s*t~> +VuHh]M(&3#!>)7*rr=&+!!#`krr=tF!!&O?s7uZurR[ib5QgQW!>V`$rrMd[p](=$TRm-?s*t~> +WrE1uYYG>s!!,.mJm6^JcGBB"o[,PF[Hf:!!,jYPlCdW6MLN]+O,K;V>l&~> +WrE1uYYG>s!!,.mJm6^JcGBB"o[,PF[Hf:!!,jYPlCdW6MLN]+O,K;V>l&~> +WrE1uYYG>s!!,.mJm6^JcGBB"o[,PF[Hf:!!,jYPlCdW6MLN]+O,K;V>l&~> +XT&@RFVslR!X!fHp\t6-li7$eVuH`(mJm6cJcG3=$3&e_H:SeO!"PTarrMaXp](=`m",24s*t~> +XT&@RFVslR!X!fHp\t6-li7$eVuH`(mJm6cJcG3=$3&e_H:SeO!"PTarrMaXp](=`m",24s*t~> +XT&@RFVslR!X!fHp\t6-li7$eVuH`(mJm6cJcG3=$3&e_H:SeO!"PTarrMaXp](=`m",24s*t~> +YQ"[pS3$?D!?8cGrrA,H!!(fQrrDZX!!'0Qs69Obj0@O+rrMXKq#CHsGl3-mU]5i~> +YQ"[pS3$?D!?8cGrrA,H!!(fQrrDZX!!'0Qs69Obj0@O+rrMXKq#CHsGl3-mU]5i~> +YQ"[pS3$?D!?8cGrrA,H!!(fQrrDZX!!'0Qs69Obj0@O+rrMXKq#CHsGl3-mU]5i~> +Z2XmWCCTq:!D`"Rrr?Kp!!*T/W;ckSm/R-mJcC<$q>UKG,P_ +Z2XmWCCTq:!D`"Rrr?Kp!!*T/W;ckSm/R-mJcC<$q>UKG,P_ +Z2XmWCCTq:!D`"Rrr?Kp!!*T/W;ckSm/R-mJcC<$q>UKG,P_ +[/U7+Yse]d!!3Firq$-i0'rW=4K&2ZaR&s-\:O[2s8)`r[h&97!Cu=(s.KCB~> +[/U7+Yse]d!!3Firq$-i0'rW=4K&2ZaR&s-\:O[2s8)`r[h&97!Cu=(s.KCB~> +[/U7+Yse]d!!3Firq$-i0'rW=4K&2ZaR&s-\:O[2s8)`r[h&97!Cu=(s.KCB~> +[f6ErMBVQk!@lLfrrMZmm/R-&VuHb&m/R.#JcC<$qu6\Y"8W!!#EA_6s.B=A~> +[f6ErMBVQk!@lLfrrMZmm/R-&VuHb&m/R.#JcC<$qu6\Y"8W!!#EA_6s.B=A~> +[f6ErMBVQk!@lLfrrMZmm/R-&VuHb&m/R.#JcC<$qu6\Y"8W!!#EA_6s.B=A~> +\GlWV@gV]+!G1rorrB^u!!&XhrrASV!!'ofs+14KrrMt.q#CFDc@Q"ds*t~> +\GlWV@gV]+!G1rorrB^u!!&XhrrASV!!'ofs+14KrrMt.q#CFDc@Q"ds*t~> +\GlWV@gV]+!G1rorrB^u!!&XhrrASV!!'ofs+14KrrMt.q#CFDc@Q"ds*t~> +]Dhs/W''SM!>2C$rr@] +]Dhs/W''SM!>2C$rr@] +]Dhs/W''SM!>2C$rr@] +^&J/tJf=.Z!ZQdUmf*8Zm/R,/VZ-X9m/R.3JcC<$s8N,2(]"+4%^LZcRf@m~> +^&J/tJf=.Z!ZQdUmf*8Zm/R,/VZ-X9m/R.3JcC<$s8N,2(]"+4%^LZcRf@m~> +^&J/tJf=.Z!ZQdUmf*8Zm/R,/VZ-X9m/R.3JcC<$s8N,2(]"+4%^LZcRf@m~> +^]+AU>6aWu!sDE-r9aLbrY"Su!+Dc)!*egj!7QN!Jc>fKH33sD!Wc`sJcD/ +^]+AU>6aWu!sDE-r9aLbrY"Su!+Dc)!*egj!7QN!Jc>fKH33sD!Wc`sJcD/ +^]+AU>6aWu!sDE-r9aLbrY"Su!+Dc)!*egj!7QN!Jc>fKH33sD!Wc`sJcD/ +_Z']3TJZ0=!ZcjQlMgk9mJm:pDs!qs!(H8T!8)l&K)Yl34o,-Z,.iF+QiDR~> +_Z']3TJZ0=!ZcjQlMgk9mJm:pDs!qs!(H8T!8)l&K)Yl34o,-Z,.iF+QiDR~> +_Z']3TJZ0=!ZcjQlMgk9mJm:pDs!qs!(H8T!8)l&K)Yl34o,-Z,.iF+QiDR~> +`;]nuGnolM!s;9(r94.\T'u^]&Uiu@rr=_>!!(l,s+C=PZkN<:!X!K8JcD&9J,~> +`;]nuGnolM!s;9(r94.\T'u^]&Uiu@rr=_>!!(l,s+C=PZkN<:!X!K8JcD&9J,~> +`;]nuGnolM!s;9(r94.\T'u^]&Uiu@rr=_>!!(l,s+C=PZkN<:!X!K8JcD&9J,~> +`r?+T;ZuXk!ZZ^Ljo5 +`r?+T;ZuXk!ZZ^Ljo5 +`r?+T;ZuXk!ZZ^Ljo5 +ao;G7Qn7e.!s;0#qr@\V/G&oD,FJ4urr<;k!!)56s+^OSaX[/f!XOJUJcCr6J,~> +ao;G7Qn7e.!s;0#qr@\V/G&oD,FJ4urr<;k!!)56s+^OSaX[/f!XOJUJcCr6J,~> +ao;G7Qn7e.!s;0#qr@\V/G&oD,FJ4urr<;k!!)56s+^OSaX[/f!XOJUJcCr6J,~> +bPqXuE=h[@!ZHLFiVrrJ!qlTq/uJN +bPqXuE=h[@!ZHLFiVrrJ!qlTq/uJN +bPqXuE=h[@!ZHLFiVrrJ!qlTq/uJN +c2RjY>QOEr!s2#sqqqDR\b?(*41"pWrrCmA!!)VAs,$aV`[L]a!Y1OpJcCi3J,~> +c2RjY>QOEr!s2#sqqqDR\b?(*41"pWrrCmA!!)VAs,$aV`[L]a!Y1OpJcCi3J,~> +c2RjY>QOEr!s2#sqqqDR\b?(*41"pWrrCmA!!)VAs,$aV`[L]a!Y1OpJcCi3J,~> +d/O1FWAO/G!Z?=Ah#@A)q>^Qt8AUbp!6OR-!;M-FMuNkPEWc1=!DVU*s,R,0~> +d/O1FWAO/G!Z?=Ah#@A)q>^Qt8AUbp!6OR-!;M-FMuNkPEWc1=!DVU*s,R,0~> +d/O1FWAO/G!Z?=Ah#@A)q>^Qt8AUbp!6OR-!;M-FMuNkPEWc1=!DVU*s,R,0~> +df0CAPTo]!!s1roqV(rL8,N>g"'3^7rrBFm!!*"Ls,?sY_^50[!>_Sas,?u.~> +df0CAPTo]!!s1roqV(rL8,N>g"'3^7rrBFm!!*"Ls,?sY_^50[!>_Sas,?u.~> +df0CAPTo]!!s1roqV(rL8,N>g"'3^7rrBFm!!*"Ls,?sY_^50[!>_Sas,?u.~> +eGfU9J/.YU!Z-+;f`)!D$N:#,#%ZGRrrA_Z!!!.Qs,I$[oPXg.!!- +eGfU9J/.YU!Z-+;f`)!D$N:#,#%ZGRrrA_Z!!!.Qs,I$[oPXg.!!- +eGfU9J/.YU!Z-+;f`)!D$N:#,#%ZGRrrA_Z!!!.Qs,I$[oPXg.!!- +f)Gg-C^Te7!s(fiqUYZMU]:B'ETEAa!0$:F!""5VNrK-q,PqHA29(4IM>r)~> +f)Gg-C^Te7!s(fiqUYZMU]:B'ETEAa!0$:F!""5VNrK-q,PqHA29(4IM>r)~> +f)Gg-C^Te7!s(fiqUYZMU]:B'ETEAa!0$:F!""5VNrK-q,PqHA29(4IM>r)~> +f`)#s +f`)#s +f`)#s +g]%?S\3olg!s(`eq9o9EqiUT6rr?Qr!!!^as,m<^]cm:R!XEu@JcCK)J,~> +g]%?S\3olg!s(`eq9o9EqiUT6rr?Qr!!!^as,m<^]cm:R!XEu@JcCK)J,~> +g]%?S\3olg!s(`eq9o9EqiUT6rr?Qr!!!^as,m<^]cm:R!XEu@JcCK)J,~> +h>[QQUbD??!Yoh1JcFL)!)Mt^!#^@fPQ(^TB*%o1!E%[(s+LE&~> +h>[QQUbD??!Yoh1JcFL)!)Mt^!#^@fPQ(^TB*%o1!E%[(s+LE&~> +h>[QQUbD??!Yoh1JcFL)!)Mt^!#^@fPQ(^TB*%o1!E%[(s+LE&~> +hu.J!!"*ls-3Na^DZqL!A1s8s+:9$~> +hu.J!!"*ls-3Na^DZqL!A1s8s+:9$~> +hu.J!!"*ls-3Na^DZqL!A1s8s+:9$~> +iVruCHP5uO!Y]V,JcF=$!%7.6!$m-qQN%!H +iVruCHP5uO!Y]V,JcF=$!%7.6!$m-qQN%!H +iVruCHP5uO!Y]V,JcF=$!%7.6!$m-qQN%!H +j8T26AdJ)1!s(T]pOW@orr<]!!!"I!s-WffqMG^[!!3:@m=G:gs8W+L~> +j8T26AdJ)1!s(T]pOW@orr<]!!!"I!s-WffqMG^[!!3:@m=G:gs8W+L~> +j8T26AdJ)1!s(T]pOW@orr<]!!!"I!s-WffqMG^[!!3:@m=G:gs8W+L~> +jo5D&;?HOl!YTJ'JcF0u!W)rc!!"X&s-`lf^+0$\!CkUjs+14Ks*t~> +jo5D&;?HOl!YTJ'JcF0u!W)rc!!"X&s-`lf^+0$\!CkUjs+14Ks*t~> +jo5D&;?HOl!YTJ'JcF0u!W)rc!!"X&s-`lf^+0$\!CkUjs+14Ks*t~> +kl1_`ZT[s]![X]AJcF*s!9rhM!&0!(S,WNN=o87#-*i+%JcGWIJ,~> +kl1_`ZT[s]![X]AJcF*s!9rhM!&0!(S,WNN=o87#-*i+%JcGWIJ,~> +kl1_`ZT[s]![X]AJcF*s!9rhM!&0!(S,WNN=o87#-*i+%JcGWIJ,~> +lMgqaTcNh,!X2]FJcF!p!7gE9!&0!(Sc8cfN=Ggd!XXSYJcC<$qYu'~> +lMgqaTcNh,!X2]FJcF!p!7gE9!&0!(Sc8cfN=Ggd!XXSYJcC<$qYu'~> +lMgqaTcNh,!X2]FJcF!p!7gE9!&0!(Sc8cfN=Ggd!XXSYJcC<$qYu'~> +m/I._R3;2'!Z$1EJcEpn!5Rq$!&0!(T)Si,/H#PM$$P`fs+14Fs*t~> +m/I._R3;2'!Z$1EJcEpn!5Rq$!&0!(T)Si,/H#PM$$P`fs+14Fs*t~> +m/I._R3;2'!Z$1EJcEpn!5Rq$!&0!(T)Si,/H#PM$$P`fs+14Fs*t~> +mf*@`PofW!!]-MEJcEjl!3GMe!&0!(T`5)U>64^'!WuokJcC<$pA]X~> +mf*@`PofW!!]-MEJcEjl!3GMe!&0!(T`5)U>64^'!WuokJcC<$pA]X~> +mf*@`PofW!!]-MEJcEjl!3GMe!&0!(T`5)U>64^'!WuokJcC<$pA]X~> +nG`R`OW4#p!X2ZEJcEai!1<*Q!&0!(UAk;lNt2*g!DV'ps+14Bs*t~> +nG`R`OW4#p!X2ZEJcEai!1<*Q!&0!(UAk;lNt2*g!DV'ps+14Bs*t~> +nG`R`OW4#p!X2ZEJcEai!1<*Q!&0!(UAk;lNt2*g!DV'ps+14Bs*t~> +o)Ad`N>VBi!Z$1EJcE[g!/'V +o)Ad`N>VBi!Z$1EJcE[g!/'V +o)Ad`N>VBi!Z$1EJcE[g!/'V +o`#!aM&,gc!]-MEJcEUe!,q3(!&0!(V>gV\?31$*!@b4's+14>s*t~> +o`#!aM&,gc!]-MEJcEUe!,q3(!&0!(V>gV\?31$*!@b4's+14>s*t~> +o`#!aM&,gc!]-MEJcEUe!,q3(!&0!(V>gV\?31$*!@b4's+14>s*t~> +pAY3aKbX:^!X2ZEJcELb!*edi!&0!(VuHhrOq7Nl!ZRX+JcC<$n,In~> +pAY3aKbX:^!X2ZEJcELb!*edi!&0!(VuHhrOq7Nl!ZRX+JcC<$n,In~> +pAY3aKbX:^!X2ZEJcELb!*edi!&0!(VuHhrOq7Nl!ZRX+JcC<$n,In~> +q#:EaJJ%YW!Z$1EJcEF`!(ZAU!&0!(W;cn;/,fMM&;Tq0s+14;s*t~> +q#:EaJJ%YW!Z$1EJcEF`!(ZAU!&0!(W;cn;/,fMM&;Tq0s+14;s*t~> +q#:EaJJ%YW!Z$1EJcEF`!(ZAU!&0!(W;cn;/,fMM&;Tq0s+14;s*t~> +qYpWaI1Q)Q!]-MEJcE@^!&Em@!&0!(WrE+O9`>"n#]o?`s+149s*t~> +qYpWaI1Q)Q!]-MEJcE@^!&Em@!&0!(WrE+O9`>"n#]o?`s+149s*t~> +qYpWaI1Q)Q!]-MEJcE@^!&Em@!&0!(WrE+O9`>"n#]o?`s+149s*t~> +r;Qi`Gn'QL!Wl?"JcE7[!$:J,!&0!(XT&OlD$9n>!ajo;s+147s*t~> +r;Qi`Gn'QL!Wl?"JcE7[!$:J,!&0!(XT&OlD$9n>!ajo;s+147s*t~> +r;Qi`Gn'QL!Wl?"JcE7[!$:J,!&0!(XT&OlD$9n>!ajo;s+147s*t~> +rr3&`F:@sF!Xii#JcE1Y!"/&m!&0!(Y5\S!NY26j!DCjls+145s*t~> +rr3&`F:@sF!Xii#JcE1Y!"/&m!&0!(Y5\S!NY26j!DCjls+145s*t~> +rr3&`F:@sF!Xii#JcE1Y!"/&m!&0!(Y5\S!NY26j!DCjls+145s*t~> +"97M&$MaZ'(kq@.s0_k,p$2SX0nKA.rrK8KrVusX^k)N:s5j92~> +"97M&$MaZ'(kq@.s0_k,p$2SX0nKA.rrK8KrVusX^k)N:s5j92~> +"97M&$MaZ'(kq@.s0_k,p$2SX0nKA.rrK8KrVusX^k)N:s5j92~> +!Gi&;!!4[ApjrIOrrD!C!!"a)s0;S)bs;7.![k)KJcC<$jSs`~> +!Gi&;!!4[ApjrIOrrD!C!!"a)s0;S)bs;7.![k)KJcC<$jSs`~> +!Gi&;!!4[ApjrIOrrD!C!!"a)s0;S)bs;7.![k)KJcC<$jSs`~> +q#CI_[JkaWZ2XgJlMpo>JcE(V#N]=p!!!n(qgncus5O'/~> +q#CI_[JkaWZ2XgJlMpo>JcE(V#N]=p!!!n(qgncus5O'/~> +q#CI_[JkaWZ2XgJlMpo>JcE(V#N]=p!!!n(qgncus5O'/~> +qu?d%>0VWuY5\L3lMpo>JcE.X#PEWU!!!L^oR[$ns5 +qu?d%>0VWuY5\L3lMpo>JcE.X#PEWU!!!L^oR[$ns5 +qu?d%>0VWuY5\L3lMpo>JcE.X#PEWU!!!L^oR[$ns5 +rW!!0F5_]MXT&9qlMpo>JcE4Z#Q:>9!!!7Cl[f(es5*d+~> +rW!!0F5_]MXT&9qlMpo>JcE4Z#Q:>9!!!7Cl[f(es5*d+~> +rW!!0F5_]MXT&9qlMpo>JcE4Z#Q:>9!!!7Cl[f(es5*d+~> +!rs@"n:CV>rrA,G!!"a)s1&(5_DD5m!aOW6s+14*s*t~> +!rs@"n:CV>rrA,G!!"a)s1&(5_DD5m!aOW6s+14*s*t~> +!rs@"n:CV>rrA,G!!"a)s1&(5_DD5m!aOW6s+14*s*t~> +!MfLBs/>qtHg:Y30nKA9rrLnRrVusic[l+Is4[L'~> +!MfLBs/>qtHg:Y30nKA9rrLnRrVusic[l+Is4[L'~> +!MfLBs/>qtHg:Y30nKA9rrLnRrVusic[l+Is4[L'~> +JcDVI!,(Tt!&9')]`/3)F9_dG1;SPAJcFC&J,~> +JcDVI!,(Tt!&9')]`/3)F9_dG1;SPAJcFC&J,~> +JcDVI!,(Tt!&9')]`/3)F9_dG1;SPAJcFC&J,~> +JcDVI!)i+_!&9')^AeH8PS=)t+K#-hs+14%s*t~> +JcDVI!)i+_!&9')^AeH8PS=)t+K#-hs+14%s*t~> +JcDVI!)i+_!&9')^AeH8PS=)t+K#-hs+14%s*t~> +JcDVI!']]K!&9')^]+MG.0'>ZMYD]%JcF:#J,~> +JcDVI!']]K!&9')^]+MG.0'>ZMYD]%JcF:#J,~> +JcDVI!']]K!&9')^]+MG.0'>ZMYD]%JcF:#J,~> +JcDVI!%R:7!&9')_>a_f7K +JcDVI!%R:7!&9')_>a_f7K +JcDVI!%R:7!&9')_>a_f7K +JcDVI!#Fl#!&9')_uBr)B*/,6;;-U$JcF-tJ,~> +JcDVI!#Fl#!&9')_uBr)B*/,6;;-U$JcF-tJ,~> +JcDVI!#Fl#!&9')_uBr)B*/,6;;-U$JcF-tJ,~> +JcDYJ!W<,d!!"a)s2G!BpP04Y!&h]Fs+13rs*t~> +JcDYJ!W<,d!!"a)s2G!BpP04Y!&h]Fs+13rs*t~> +JcDYJ!W<,d!!"a)s2G!BpP04Y!&h]Fs+13rs*t~> +JcDYJ!:8tN!&B-*a8ZDDW#u'?+K#-hs+13qs*t~> +JcDYJ!:8tN!&B-*a8ZDDW#u'?+K#-hs+13qs*t~> +JcDYJ!:8tN!&B-*a8ZDDW#u'?+K#-hs+13qs*t~> +JcDYJ!8-Q:!*+UMaSuIc3WK-kMYD]%JcEsoJ,~> +JcDYJ!8-Q:!*+UMaSuIc3WK-kMYD]%JcEsoJ,~> +JcDYJ!8-Q:!*+UMaSuIc3WK-kMYD]%JcEsoJ,~> +JcDYJ!5n.'!Aq38s2k9FiE60]"`EXWs+13ms*t~> +JcDYJ!5n.'!Aq38s2k9FiE60]"`EXWs+13ms*t~> +JcDYJ!5n.'!Aq38s2k9FiE60]"`EXWs+13ms*t~> +JcDYJ!3bej!\^eWJcEmm#4d'H!!#pOJcC<$aT$b~> +JcDYJ!3bej!\^eWJcEmm#4d'H!!#pOJcC<$aT$b~> +JcDYJ!3bej!\^eWJcEmm#4d'H!!#pOJcC<$aT$b~> +JcDYJ!1WHX!\:>NJcEmm#5t#-!!"CZJcC<$`rCP~> +JcDYJ!1WHX!\:>NJcEmm#5t#-!!"CZJcC<$`rCP~> +JcDYJ!1WHX!\:>NJcEmm#5t#-!!"CZJcC<$`rCP~> +JcDYJ!/L+F![jlDJcEjl#.lJf!"+GUJcC<$`W(G~> +JcDYJ!/L+F![jlDJcEjl#.lJf!"+GUJcC<$`W(G~> +JcDYJ!/L+F![jlDJcEjl#.lJf!"+GUJcC<$`W(G~> +JcDYJ!-7]3![OK;JcEjl!S0pC!!,gOJcC<$_uG5~> +JcDYJ!-7]3![OK;JcEjl!S0pC!!,gOJcC<$_uG5~> +JcDYJ!-7]3![OK;JcEjl!S0pC!!,gOJcC<$_uG5~> +JcDYJ!+,@!![+$1JcEjl#4$%-!!".HJcC<$_>f#~> +JcDYJ!+,@!![+$1JcEjl#4$%-!!".HJcC<$_>f#~> +JcDYJ!+,@!![+$1JcEjl#4$%-!!".HJcC<$_>f#~> +JcDYJ!)!"d!Zd[(JcEjl#Pa2g!!!4Lon!-os1nYb~> +JcDYJ!)!"d!Zd[(JcEjl#Pa2g!!!4Lon!-os1nYb~> +JcDYJ!)!"d!Zd[(JcEjl#Pa2g!!!4Lon!-os1nYb~> +JcDYJ!&jZR!ZI9tJcEgk!NRIE!!,I=JcC<$^Ai]~> +JcDYJ!&jZR!ZI9tJcEgk!NRIE!!,I=JcC<$^Ai]~> +JcDYJ!&jZR!ZI9tJcEgk!NRIE!!,I=JcC<$^Ai]~> +JcGBB)>.\N'HADN2*OK)='oTZG^t[:U9;,Le`-#Brr=5?!!3ssp4<7brrL8)rVus:VLebus1JA^~> +JcGBB)>.\N'HADN2*OK)='oTZG^t[:U9;,Le`-#Brr=5?!!3ssp4<7brrL8)rVus:VLebus1JA^~> +JcGBB)>.\N'HADN2*OK)='oTZG^t[:U9;,Le`-#Brr=5?!!3ssp4<7brrL8)rVus:VLebus1JA^~> +JcGEC!R)tU!!`l^8S<^N^t@6 +JcGEC!R)tU!!`l^8S<^N^t@6 +JcGEC!R)tU!!`l^8S<^N^t@6 +JcGKE!rR`UhZ*fn6Z]$Oqq_8Up](:+K^s]oaSu>=M?a%[!BJJWs+13\s*t~> +JcGKE!rR`UhZ*fn6Z]$Oqq_8Up](:+K^s]oaSu>=M?a%[!BJJWs+13\s*t~> +JcGKE!rR`UhZ*fn6Z]$Oqq_8Up](:+K^s]oaSu>=M?a%[!BJJWs+13\s*t~> +JcGNF!T-#l!!NWbAX17+ir9,A%tF)"s2Y-?XrmWC!Xk7kJcC<$\Gq'~> +JcGNF!T-#l!!NWbAX17+ir9,A%tF)"s2Y-?XrmWC!Xk7kJcC<$\Gq'~> +JcGNF!T-#l!!NWbAX17+ir9,A%tF)"s2Y-?XrmWC!Xk7kJcC<$\Gq'~> +JcGQG!ML"O!!NBM +JcGQG!ML"O!!NBM +JcGQG!ML"O!!NBM +JcGWI!UWq2!!EBWC8Kj>s0;S*p4!AI!!3Usrdk*#s0_lW~> +JcGWI!UWq2!!EBWC8Kj>s0;S*p4!AI!!3Usrdk*#s0_lW~> +JcGWI!UWq2!!EBWC8Kj>s0;S*p4!AI!!3Usrdk*#s0_lW~> +JcGZJ!PBDk!!F6AOj*]Rs0r"/Zm,GK!Cl!us+13Vs*t~> +JcGZJ!PBDk!!F6AOj*]Rs0r"/Zm,GK!Cl!us+13Vs*t~> +JcGZJ!PBDk!!F6AOj*]Rs0r"/Zm,GK!Cl!us+13Vs*t~> +JcG`L!r-a:^]4KG6@HB5JcEF`!T-]O!!3\#rdk*#s0DZT~> +JcG`L!r-a:^]4KG6@HB5JcEF`!T-]O!!3\#rdk*#s0DZT~> +JcG`L!r-a:^]4KG6@HB5JcEF`!T-]O!!3\#rdk*#s0DZT~> +JcGcM!R`R1!!=ou](^dU_uBf5KF7YX!D2:%s+13Ss*t~> +JcGcM!R`R1!!=ou](^dU_uBf5KF7YX!D2:%s+13Ss*t~> +JcGcM!R`R1!!=ou](^dU_uBf5KF7YX!D2:%s+13Ss*t~> +Jc>fMN"IQJcDnQJ,~> +Jc>fMN"IQJcDnQJ,~> +Jc>fMN"IQJcDnQJ,~> +K)Yl36a$Il'j.$cJcF!p!r$j?r;ZjljFR>^s/l +K)Yl36a$Il'j.$cJcF!p!r$j?r;ZjljFR>^s/l +K)Yl36a$Il'j.$cJcF!p!r$j?r;ZjljFR>^s/l +KDttO&ukp6-YosUJcF0u!Qchi!!*_,JcC<$X8d\~> +KDttO&ukp6-YosUJcF0u!Qchi!!*_,JcC<$X8d\~> +KDttO&ukp6-YosUJcF0u!Qchi!!*_,JcC<$X8d\~> +L&V2D?DRW("@%n&JcF@%!r.!Cr;Zjok(3P`s/Q*L~> +L&V2D?DRW("@%n&JcF@%!r.!Cr;Zjok(3P`s/Q*L~> +L&V2D?DRW("@%n&JcF@%!r.!Cr;Zjok(3P`s/Q*L~> +LAq:k+J8]:.X8u3JcFO*!R!"l!!*b0JcC<$W;hA~> +LAq:k+J8]:.X8u3JcFO*!R!"l!!*b0JcC<$W;hA~> +LAq:k+J8]:.X8u3JcFO*!R!"l!!*b0JcC<$W;hA~> +#+Vg/c/.meO8f:XH39Z;!uGIOon!/%rrW"C"T8<$;s8f4JcDYJJ,~> +#+Vg/c/.meO8f:XH39Z;!uGIOon!/%rrW"C"T8<$;s8f4JcDYJJ,~> +#+Vg/c/.meO8f:XH39Z;!uGIOon!/%rrW"C"T8<$;s8f4JcDYJJ,~> +qZ%-.%j3Pk;.4HqP+o8"e)U%lrrM17QN.*o9q1VSbs+13Hs*t~> +qZ%-.%j3Pk;.4HqP+o8"e)U%lrrM17QN.*o9q1VSbs+13Hs*t~> +qZ%-.%j3Pk;.4HqP+o8"e)U%lrrM17QN.*o9q1VSbs+13Hs*t~> +lMq=o'dYq5?Zh:#[`mb,X8a%9m+TOhV3?R\GB%D0?Wg?%76WXb.O,u8X8i;&550X.l2Lh\I0KQL +!ESK:s+13Gs*t~> +lMq=o'dYq5?Zh:#[`mb,X8a%9m+TOhV3?R\GB%D0?Wg?%76WXb.O,u8X8i;&550X.l2Lh\I0KQL +!ESK:s+13Gs*t~> +lMq=o'dYq5?Zh:#[`mb,X8a%9m+TOhV3?R\GB%D0?Wg?%76WXb.O,u8X8i;&550X.l2Lh\I0KQL +!ESK:s+13Gs*t~> +h>doo,s+t9I$1GBeE["(rsA5OagRq)HV5Ra[K$=`fn'1frrLCur;Zj7XF^D&s.]OD~> +h>doo,s+t9I$1GBeE["(rsA5OagRq)HV5Ra[K$=`fn'1frrLCur;Zj7XF^D&s.]OD~> +h>doo,s+t9I$1GBeE["(rsA5OagRq)HV5Ra[K$=`fn'1frrLCur;Zj7XF^D&s.]OD~> +df9aX(+_dSDM4I_`S9pUrs&5FWI\2,$GHKA!HImcs6BUcqL8\I!!-9iJcC<$U&TW~> +df9aX(+_dSDM4I_`S9pUrs&5FWI\2,$GHKA!HImcs6BUcqL8\I!!-9iJcC<$U&TW~> +df9aX(+_dSDM4I_`S9pUrs&5FWI\2,$GHKA!HImcs6BUcqL8\I!!-9iJcC<$U&TW~> +`rHGK*]-JsH^:q\kPh=X#6*MhO(UWh`;foS[XnJCrrLJ#r;Zj9Y^uh*s.B=A~> +`rHGK*]-JsH^:q\kPh=X#6*MhO(UWh`;foS[XnJCrrLJ#r;Zj9Y^uh*s.B=A~> +`rHGK*]-JsH^:q\kPh=X#6*MhO(UWh`;foS[XnJCrrLJ#r;Zj9Y^uh*s.B=A~> +]`8?B*][2 +]`8?B*][2 +]`8?B*][2 +ZiCF6'.ujeJ"!dlli+$d"oHW7AM427!!3=\rIP"6rrLP'r;Zj;Z[r.-s.'+>~> +ZiCF6'.ujeJ"!dlli+$d"oHW7AM427!!3=\rIP"6rrLP'r;Zj;Z[r.-s.'+>~> +ZiCF6'.ujeJ"!dlli+$d"oHW7AM427!!3=\rIP"6rrLP'r;Zj;Z[r.-s.'+>~> +WW3>2,!B%LNiC"Uq6Br'ou)kn,QZNt!@,^;s6BUcqh,1P!!-KrJcC<$S,\!~> +WW3>2,!B%LNiC"Uq6Br'ou)kn,QZNt!@,^;s6BUcqh,1P!!-KrJcC<$S,\!~> +WW3>2,!B%LNiC"Uq6Br'ou)kn,QZNt!@,^;s6BUcqh,1P!!-KrJcC<$S,\!~> +TE#354&9dUYKu[Err_>N:^l+Z!F,)Fs6BUbe27+(!?JV"s+13 +TE#354&9dUYKu[Err_>N:^l+Z!F,)Fs6BUbe27+(!?JV"s+13 +TE#354&9dUYKu[Err_>N:^l+Z!F,)Fs6BUbe27+(!?JV"s+13 +QiI@%02HMIY0QIGrr`&-E$aHC!=b`Rs6BUcqh>@T!!313n:CUjs-Wh:~> +QiI@%02HMIY0QIGrr`&-E$aHC!=b`Rs6BUcqh>@T!!313n:CUjs-Wh:~> +QiI@%02HMIY0QIGrr`&-E$aHC!=b`Rs6BUcqh>@T!!313n:CUjs-Wh:~> +O8oLr02HJGY0QIKrr^u:70hrT!AiG\s6BUbeMd@+!?\k's+139s*t~> +O8oLr02HJGY0QIKrr^u:70hrT!AiG\s6BUbeMd@+!?\k's+139s*t~> +O8oLr02HJGY0QIKrr^u:70hrT!AiG\s6BUbeMd@+!?\k's+139s*t~> +L]@Yi/l$;EY0H@Nrr_ksAfU+:!WdB +L]@Yi/l$;EY0H@Nrr_ksAfU+:!WdB +L]@Yi/l$;EY0H@Nrr_ksAfU+:!WdB ++htk1`5K?tYGn7dQ&^ZOHZX+;?s-E%7R&jf.jZ5Q&IJW7!!`la:2Pumb5B9Z!lK*mmf3A)\:O\F +rrL_2r;ZjA]Rg*6s-*J5~> ++htk1`5K?tYGn7dQ&^ZOHZX+;?s-E%7R&jf.jZ5Q&IJW7!!`la:2Pumb5B9Z!lK*mmf3A)\:O\F +rrL_2r;ZjA]Rg*6s-*J5~> ++htk1`5K?tYGn7dQ&^ZOHZX+;?s-E%7R&jf.jZ5Q&IJW7!!`la:2Pumb5B9Z!lK*mmf3A)\:O\F +rrL_2r;ZjA]Rg*6s-*J5~> +hu=Gjp$_,'gXOH]YbI>8GA15S4te&m"L%k1(->lUVp"PPrr`/(;?l^m!Cu@)s6K[dr/1j[!!31: +o7?pms-!D4~> +hu=Gjp$_,'gXOH]YbI>8GA15S4te&m"L%k1(->lUVp"PPrr`/(;?l^m!Cu@)s6K[dr/1j[!!31: +o7?pms-!D4~> +hu=Gjp$_,'gXOH]YbI>8GA15S4te&m"L%k1(->lUVp"PPrr`/(;?l^m!Cu@)s6K[dr/1j[!!31: +o7?pms-!D4~> +ao;tGkLn"jY+Uo0F_4`J4"VNd"1nO;'ffQNV985PrrVSM0)#>I#)iJ3s6K[cfK/s2!@,@1s+133 +s*t~> +ao;tGkLn"jY+Uo0F_4`J4"VNd"1nO;'ffQNV985PrrVSM0)#>I#)iJ3s6K[cfK/s2!@,@1s+133 +s*t~> +ao;tGkLn"jY+Uo0F_4`J4"VNd"1nO;'ffQNV985PrrVSM0)#>I#)iJ3s6K[cfK/s2!@,@1s+133 +s*t~> +\,Qm.jjqM_V3$"7:HBa3_#OZQ2d:g.aR%CU!l@_7qZ$XBbCT]ZrrW.Y$2so+!cIX]s+132s*t~> +\,Qm.jjqM_V3$"7:HBa3_#OZQ2d:g.aR%CU!l@_7qZ$XBbCT]ZrrW.Y$2so+!cIX]s+132s*t~> +\,Qm.jjqM_V3$"7:HBa3_#OZQ2d:g.aR%CU!l@_7qZ$XBbCT]ZrrW.Y$2so+!cIX]s+132s*t~> +WrEJ%j3>*.NHeo,2^/[M!!X#n>(33cle)4=g1^on!!-BrJcG'9!STX6!!+C_JcC<$NW4M~> +WrEJ%j3>*.NHeo,2^/[M!!X#n>(33cle)4=g1^on!!-BrJcG'9!STX6!!+C_JcC<$NW4M~> +WrEJ%j3>*.NHeo,2^/[M!!X#n>(33cle)4=g1^on!!-BrJcG'9!STX6!!+C_JcC<$NW4M~> +T)T2li6/O$MKN +T)T2li6/O$MKN +T)T2li6/O$MKN +P5bj[hT3$kK4dh1'@$R^&3+'SZ.]#*s3(ECgHGK8!@Pj;s+13-s*t~> +P5bj[hT3$kK4dh1'@$R^&3+'SZ.]#*s3(ECgHGK8!@Pj;s+13-s*t~> +P5bj[hT3$kK4dh1'@$R^&3+'SZ.]#*s3(ECgHGK8!@Pj;s+13-s*t~> +M#ReSftF)5Bh^8q!R^rP"tEMtUW`4Zs3puLrK7Qf!!37FpOW?qs,$c+~> +M#ReSftF)5Bh^8q!R^rP"tEMtUW`4Zs3puLrK7Qf!!37FpOW?qs,$c+~> +M#ReSftF)5Bh^8q!R^rP"tEMtUW`4Zs3puLrK7Qf!!37FpOW?qs,$c+~> +JcGcM$23,gUPESZ1)9o@!!WHD6uA4&jamHcrrLq?r;ZjJaFXABs+gW)~> +JcGcM$23,gUPESZ1)9o@!!WHD6uA4&jamHcrrLq?r;ZjJaFXABs+gW)~> +JcGcM$23,gUPESZ1)9o@!!WHD6uA4&jamHcrrLq?r;ZjJaFXABs+gW)~> +JcGHD$2E>mUkih`1`-;G!!Wrl?\bi:qLS\,rrW1a%/p5."F9cns+13)s*t~> +JcGHD$2E>mUkih`1`-;G!!Wrl?\bi:qLS\,rrW1a%/p5."F9cns+13)s*t~> +JcGHD$2E>mUkih`1`-;G!!Wrl?\bi:qLS\,rrW1a%/p5."F9cns+13)s*t~> +JcG-;#lNPrVM]Fd-3Mp$"pHDOH(i@MJcG$8!T$-@!!+.dJcC<$K`?Q~> +JcG-;#lNPrVM]Fd-3Mp$"pHDOH(i@MJcG$8!T$-@!!+.dJcC<$K`?Q~> +JcG-;#lNPrVM]Fd-3Mp$"pHDOH(i@MJcG$8!T$-@!!+.dJcC<$K`?Q~> +JcFj3#Q3MoS9\0n'%m6g)FA5'\`\PDo)AdjQONin!WmE:JcC<$KE$H~> +JcFj3#Q3MoS9\0n'%m6g)FA5'\`\PDo)AdjQONin!WmE:JcC<$KE$H~> +JcFj3#Q3MoS9\0n'%m6g)FA5'\`\PDo)AdjQONin!WmE:JcC<$KE$H~> +JcFR+#Ofm:Lh/ps"5UKR7/[)d,/Jj1JcC<$J,~> +JcFR+#Ofm:Lh/ps"5UKR7/[)d,/Jj1JcC<$J,~> +JcFR+#Ofm:Lh/ps"5UKR7/[)d,/Jj1JcC<$J,~> +JcF=$#Q!2bQ?5tW%GUpe)b4q?b4L8b!reSsrW!!#B(LTRJcC<$!<7Q~> +JcF=$#Q!2bQ?5tW%GUpe)b4q?b4L8b!reSsrW!!#B(LTRJcC<$!<7Q~> +JcF=$#Q!2bQ?5tW%GUpe)b4q?b4L8b!reSsrW!!#B(LTRJcC<$!<7Q~> +JcF$q#O0:)Jm^_\!T*k]![:BcVU>3qrrM(Jr;Zj;[t4R1s+14Ls*t~> +JcF$q#O0:)Jm^_\!T*k]![:BcVU>3qrrM(Jr;Zj;[t4R1s+14Ls*t~> +JcF$q#O0:)Jm^_\!T*k]![:BcVU>3qrrM(Jr;Zj;[t4R1s+14Ls*t~> +JcEdj#5ZlVOE*c0hZ*ia.TV,&g&-s3!reZ!r;Zk%mXbChs+14Ks*t~> +JcEdj#5ZlVOE*c0hZ*ia.TV,&g&-s3!reZ!r;Zk%mXbChs+14Ks*t~> +JcEdj#5ZlVOE*c0hZ*ia.TV,&g&-s3!reZ!r;Zk%mXbChs+14Ks*t~> +JcEOc#4fs4HW)F!huErf0jTXDi;T)C!TZEB!!*e7JcC<$JcGWIJ,~> +JcEOc#4fs4HW)F!huErf0jTXDi;T)C!TZEB!!*e7JcC<$JcGWIJ,~> +JcEOc#4fs4HW)F!huErf0jTXDi;T)C!TZEB!!*e7JcC<$JcGWIJ,~> +JcE=]#5d)YM.&CVhuEoj3G";bkah_SU(I8'!D_j0s+13$s8)bG~> +JcE=]#5d)YM.&CVhuEoj3G";bkah_SU(I8'!D_j0s+13$s8)bG~> +JcE=]#5d)YM.&CVhuEoj3G";bkah_SU(I8'!D_j0s+13$s8)bG~> +JcE(V#3WafDatlMi;a#s7 +JcE(V#3WafDatlMi;a#s7 +JcE(V#3WafDatlMi;a#s7 +JcDkP#5$0:I8qj)iW',e0jp'VmAp6fY87':!CPgss+13$s7cPD~> +JcDkP#5$0:I8qj)iW',e0jp'VmAp6fY87':!CPgss+13$s7cPD~> +JcDkP#5$0:I8qj)iW',e0jp'VmAp6fY87':!CPgss+13$s7cPD~> +JcDYJ#5m5^Mdng^iW'-&9REemrNlM)mp>qm!Xb.jJcC<$JcGHDJ,~> +JcDYJ#5m5^Mdng^iW'-&9REemrNlM)mp>qm!Xb.jJcC<$JcGHDJ,~> +JcDYJ#5m5^Mdng^iW'-&9REemrNlM)mp>qm!Xb.jJcC<$JcGHDJ,~> +JcDDC"mWplCH`*c!!N`iAsL=*\c2]A*W5s=3SK&aJcC<$o`'F~> +JcDDC"mWplCH`*c!!N`iAsL=*\c2]A*W5s=3SK&aJcC<$o`'F~> +JcDDC"mWplCH`*c!!N`iAsL=*\c2]A*W5s=3SK&aJcC<$o`'F~> +JcD2="lcnE=Y'a;!!WHK;Lu(0rk\U9oP4L,!!3C\r.4m!s+14As*t~> +JcD2="lcnE=Y'a;!!WHK;Lu(0rk\U9oP4L,!!3C\r.4m!s+14As*t~> +JcD2="lcnE=Y'a;!!WHK;Lu(0rk\U9oP4L,!!3C\r.4m!s+14As*t~> +JcD#8"o-H=F[mA1!!NotD4JfCa8Z1Z-2dfE0[YIOJcC<$nc++~> +JcD#8"o-H=F[mA1!!NotD4JfCa8Z1Z-2dfE0[YIOJcC<$nc++~> +JcD#8"o-H=F[mA1!!NotD4JfCa8Z1Z-2dfE0[YIOJcC<$nc++~> +JcCf2"m`mb@l=\T!!NER=bs?XcMmt@GQ[pF!X*lGJcC<$JcG6>J,~> +JcCf2"m`mb@l=\T!!NER=bs?XcMmt@GQ[pF!X*lGJcC<$JcG6>J,~> +JcCf2"m`mb@l=\T!!NER=bs?XcMmt@GQ[pF!X*lGJcC<$JcG6>J,~> +JcCW-#6!8WIo.Hmj8]<%9n0G-eGfQq0)YbN-cgl=JcC<$mf.e~> +JcCW-#6!8WIo.Hmj8]<%9n0G-eGfQq0)YbN-cgl=JcC<$mf.e~> +JcCW-#6!8WIo.Hmj8]<%9n0G-eGfQq0)YbN-cgl=JcC<$mf.e~> +JcCE'"nTg(D*JZo!!O*-H)f[!h#@HQKa.MV!Wm<6JcC<$JcG-;J,~> +JcCE'"nTg(D*JZo!!O*-H)f[!h#@HQKa.MV!Wm<6JcC<$JcG-;J,~> +JcCE'"nTg(D*JZo!!O*-H)f[!h#@HQKa.MV!Wm<6JcC<$JcG-;J,~> +JcC<$rr3/^[YS->#3>gg&4(?4f)4P-!SBC1!!+4VJcC<$JcG'9J,~> +JcC<$rr3/^[YS->#3>gg&4(?4f)4P-!SBC1!!+4VJcC<$JcG'9J,~> +JcC<$rr3/^[YS->#3>gg&4(?4f)4P-!SBC1!!+4VJcC<$JcG'9J,~> +JcC<$q>UWobaN3&#iu$i$Ti0rd/*#,!re>ir;Zk.nU^^ks+148s*t~> +JcC<$q>UWobaN3&#iu$i$Ti0rd/*#,!re>ir;Zk.nU^^ks+148s*t~> +JcC<$q>UWobaN3&#iu$i$Ti0rd/*#,!re>ir;Zk.nU^^ks+148s*t~> +JcC<$o`#*kc^ei2$KV6k#W-.\b4kB)!T?BD!!*tDJcC<$JcFs6J,~> +JcC<$o`#*kc^ei2$KV6k#W-.\b4kB)!T?BD!!*tDJcC<$JcFs6J,~> +JcC<$o`#*kc^ei2$KV6k#W-.\b4kB)!T?BD!!*tDJcC<$JcFs6J,~> +JcC<$n,ERgd\(J>%-7Hm"YO2G_t3R$!M0i#!!-0fJcC<$JcFp5J,~> +JcC<$n,ERgd\(J>%-7Hm"YO2G_t3R$!M0i#!!-0fJcC<$JcFp5J,~> +JcC<$n,ERgd\(J>%-7Hm"YO2G_t3R$!M0i#!!-0fJcC<$JcFp5J,~> +JcC<$lMh%ceY@+J%cmZo![q61^ARp/!U*;W!!*b3JcC<$JcFj3J,~> +JcC<$lMh%ceY@+J%cmZo![q61^ARp/!U*;W!!*b3JcC<$JcFj3J,~> +JcC<$lMh%ceY@+J%cmZo![q61^ARp/!U*;W!!*b3JcC<$JcFj3J,~> +JcC<$jo5M_fqrjW&ENlr![q?;a/0RL!!,aTJcC<$JcFg2J,~> +JcC<$jo5M_fqrjW&ENlr![q?;a/0RL!!,aTJcC<$JcFg2J,~> +JcC<$jo5M_fqrjW&ENlr![q?;a/0RL!!,aTJcC<$JcFg2J,~> +JcC<$i;Wu[go5Kc'B&ol$^lSGJcC<$ir=N~> +JcC<$i;Wu[go5Kc'B&ol$^lSGJcC<$ir=N~> +JcC<$i;Wu[go5Kc'B&ol$^lSGJcC<$ir=N~> +JcC<$g]%HVhlM,o($,Du$pJa2h1>TWs+144s*t~> +JcC<$g]%HVhlM,o($,Du$pJa2h1>TWs+144s*t~> +JcC<$g]%HVhlM,o($,Du$pJa2h1>TWs+144s*t~> +JcC<$ec,d3YBW>>jT#Dt8Ue#0JcC<$JcG'9J,~> +JcC<$ec,d3YBW>>jT#Dt8Ue#0JcC<$JcG'9J,~> +JcC<$ec,d3YBW>>jT#Dt8Ue#0JcC<$JcG'9J,~> +JcC<$dJjCJd[Of#"6BLc+&n*2nU^^ks+14>s*t~> +JcC<$dJjCJd[Of#"6BLc+&n*2nU^^ks+14>s*t~> +JcC<$dJjCJd[Of#"6BLc+&n*2nU^^ks+14>s*t~> +JcC<$bl7h;^PG`*jT#Gc.USF^pjrHrs+14Cs*t~> +JcC<$bl7h;^PG`*jT#Gc.USF^pjrHrs+14Cs*t~> +JcC<$bl7h;^PG`*jT#Gc.USF^pjrHrs+14Cs*t~> +JcC<$a8Z1K*T@&&"uU.feGXsuJcC<$qYu'~> +JcC<$a8Z1K*T@&&"uU.feGXsuJcC<$qYu'~> +JcC<$a8Z1K*T@&&"uU.feGXsuJcC<$qYu'~> +JcC<$ao;G>JHc#Q"Tr1t@4D??!!E`rFfO>Ms+13$s8N%K~> +JcC<$ao;G>JHc#Q"Tr1t@4D??!!E`rFfO>Ms+13$s8N%K~> +JcC<$ao;G>JHc#Q"Tr1t@4D??!!E`rFfO>Ms+13$s8N%K~> +JcC<$b5VLn2>mLU-,oi_"Rs'X:)Dsk";XX\[H`>CJcCB&J,~> +JcC<$b5VLn2>mLU-,oi_"Rs'X:)Dsk";XX\[H`>CJcCB&J,~> +JcC<$b5VLn2>mLU-,oi_"Rs'X:)Dsk";XX\[H`>CJcCB&J,~> +JcC<$bl7bCNX>[b!Wd*/p\tBRW,Xj)j8]<+ +JcC<$bl7bCNX>[b!Wd*/p\tBRW,Xj)j8]<+ +JcC<$bl7bCNX>[b!Wd*/p\tBRW,Xj)j8]<+ +JcC<$c2Rh%5Q(Q_*P:kA"o?H.?7,d8!!NHU@@#+4JcC<$NW4M~> +JcC<$c2Rh%5Q(Q_*P:kA"o?H.?7,d8!!NHU@@#+4JcC<$NW4M~> +JcC<$c2Rh%5Q(Q_*P:kA"o?H.?7,d8!!NHU@@#+4JcC<$NW4M~> +JcC<$cMmp7%K-8-?h!C]"T5lZ5mcTP"U?u&U"90ns+135s*t~> +JcC<$cMmp7%K-8-?h!C]"T5lZ5mcTP"U?u&U"90ns+135s*t~> +JcC<$cMmp7%K-8-?h!C]"T5lZ5mcTP"U?u&U"90ns+135s*t~> +JcC<$d/O./9Dnhk(U3$$"T$9%<#O]r":dbBXPna1JcD&9J,~> +JcC<$d/O./9Dnhk(U3$$"T$9%<#O]r":dbBXPna1JcD&9J,~> +JcC<$d/O./9Dnhk(U3$$"T$9%<#O]r":dbBXPna1JcD&9J,~> +JcC<$dJj6G'E%n35O75,"Poeb/-=i3";jjb\*S\GJcD5>J,~> +JcC<$dJj6G'E%n35O75,"Poeb/-=i3";jjb\*S\GJcD5>J,~> +JcC<$dJj6G'E%n35O75,"Poeb/-=i3";jjb\*S\GJcD5>J,~> +JcC<$e,KI8=8`+"%@u2P"RidG5RQNO"T]iMNPb==s+13Cs*t~> +JcC<$e,KI8=8`+"%@u2P"RidG5RQNO"T]iMNPb==s+13Cs*t~> +JcC<$e,KI8=8`+"%@u2P"RidG5RQNO"T]iMNPb==s+13Cs*t~> +JcC<$eGfQV)>sO945JEd"T$6#;]+Ko"9^JqUYLG#JcDPGJ,~> +JcC<$eGfQV)>sO945JEd"T$6#;]+Ko"9^JqUYLG#JcDPGJ,~> +JcC<$eGfQV)>sO945JEd"T$6#;]+Ko"9^JqUYLG#JcDPGJ,~> +JcC<$f)GdAAGlK0"blm"rrh,NAh*rB!!F'4L;3A3s+13Ls*t~> +JcC<$f)GdAAGlK0"blm"rrh,NAh*rB!!F'4L;3A3s+13Ls*t~> +JcC<$f)GdAAGlK0"blm"rrh,NAh*rB!!F'4L;3A3s+13Ls*t~> +JcC<$fDble+oMBA.Eom5"R`XB4pg3K"U$PoU>#Tts+13Qs*t~> +JcC<$fDble+oMBA.Eom5"R`XB4pg3K"U$PoU>#Tts+13Qs*t~> +JcC<$fDble+oMBA.Eom5"R`XB4pg3K"U$PoU>#Tts+13Qs*t~> +JcC<$g&D-IE!Wd03_uBl8a,Ek3i;`uq9SL4PJcC<$ZN#F~> +JcC<$g&D-IE!Wd03_uBl8a,Ek3i;`uq9SL4PJcC<$ZN#F~> +JcC<$g&D-IE!Wd03_uBl8a,Ek3i;`uq9SL4PJcC<$ZN#F~> +JcC<$gA_2r.K'5I)S!H["5BJV-fG%/"#+D^g&?R&JcE4ZJ,~> +JcC<$gA_2r.K'5I)S!H["5BJV-fG%/"#+D^g&?R&JcE4ZJ,~> +JcC<$gA_2r.K'5I)S!H["5BJV-fG%/"#+D^g&?R&JcE4ZJ,~> +JcC<$h#@HQJ->fN!EAEprrhMaC+B>D!!Es.KY6l,s+13^s*t~> +JcC<$h#@HQJ->fN!EAEprrhMaC+B>D!!Es.KY6l,s+13^s*t~> +JcC<$h#@HQJ->fN!EAEprrhMaC+B>D!!Es.KY6l,s+13^s*t~> +JcC<$h>[N/2Z3UV&#$9."RE1.0EU25"TpAiT@j-os+13cs*t~> +JcC<$h>[N/2Z3UV&#$9."RE1.0EU25"TpAiT@j-os+13cs*t~> +JcC<$h>[N/2Z3UV&#$9."RE1.0EU25"TpAiT@j-os+13cs*t~> +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$i;Wi?8c8Vj#)W;Vrrhl#GW>rc!!NEUAY.NQJcC<$ao?k~> +JcC<$i;Wi?8c8Vj#)W;Vrrhl#GW>rc!!NEUAY.NQJcC<$ao?k~> +JcC<$i;Wi?8c8Vj#)W;Vrrhl#GW>rc!!NEUAY.NQJcC<$ao?k~> +JcC<$iVrq['`A"4/C:*j"SB +JcC<$iVrq['`A"4/C:*j"SB +JcC<$iVrq['`A"4/C:*j"SB +JcC<$j8T/L?Msj*!cdt)rri)2JO0_$!!NETA=_9LJcC<$df4g~> +JcC<$j8T/L?Msj*!cdt)rri)2JO0_$!!NETA=_9LJcC<$df4g~> +JcC<$j8T/L?Msj*!cdt)rri)2JO0_$!!NETA=_9LJcC<$df4g~> +JcC<$jSo7r+8l0?*5%U;"Soui7h"5S";"(R\F5"KJcF=$J,~> +JcC<$jSo7r+8l0?*5%U;"Soui7h"5S";"(R\F5"KJcF=$J,~> +JcC<$jSo7r+8l0?*5%U;"Soui7h"5S";"(R\F5"KJcF=$J,~> +JcC<$k5PMXF9;C@!EniQrri5?MG"K:!!NERA"2!HJcC<$g])d~> +JcC<$k5PMXF9;C@!EniQrri5?MG"K:!!NERA"2!HJcC<$g])d~> +JcC<$k5PMXF9;C@!EniQrri5?MG"K:!!NERA"2!HJcC<$g])d~> +JcC<$kPkS10)YbN&>kBc"T?T*?3]3c":mtO\*ehIJcFX-J,~> +JcC<$kPkS10)YbN&>kBc"T?T*?3]3c":mtO\*ehIJcFX-J,~> +JcC<$kPkS10)YbN&>kBc"T?T*?3]3c":mtO\*ehIJcFX-J,~> +JcC<$l2Lh`M?j([!CGe#rri8ALdha-!!NBP@[bdEJcC<$jSs`~> +JcC<$l2Lh`M?j([!CGe#rri8ALdha-!!NBP@[bdEJcC<$jSs`~> +JcC<$l2Lh`M?j([!CGe#rri8ALdha-!!NBP@[bdEJcC<$jSs`~> +JcC<$lMgnC5Q(Q`#`\e6rri/6Im""k!!E^!ICAQps+146s*t~> +JcC<$lMgnC5Q(Q`#`\e6rri/6Im""k!!E^!ICAQps+146s*t~> +JcC<$lMgnC5Q(Q`#`\e6rri/6Im""k!!E^!ICAQps+146s*t~> +JcC<$li.!Y&,cJ/0@PLPqu6fk\9Be4g].KY.V57*rdk*#s6]i:~> +JcC<$li.!Y&,cJ/0@PLPqu6fk\9Be4g].KY.V57*rdk*#s6]i:~> +JcC<$li.!Y&,cJ/0@PLPqu6fk\9Be4g].KY.V57*rdk*#s6]i:~> +JcC<$mJd4Q;uH[t!d49hs7ZHqn$$[\!S[SW'i0\(pOW?qs7-,>~> +JcC<$mJd4Q;uH[t!d49hs7ZHqn$$[\!S[SW'i0\(pOW?qs7-,>~> +JcC<$mJd4Q;uH[t!d49hs7ZHqn$$[\!S[SW'i0\(pOW?qs7-,>~> +JcC<$mf*sO9+2EI-nG`USVe.4.!!ENeF04VVs+14Cs*t~> +JcC<$mf*sO9+2EI-nG`USVe.4.!!ENeF04VVs+14Cs*t~> +JcC<$mf*sO9+2EI-nG`USVe.4.!!ENeF04VVs+14Cs*t~> +JcC<$nG`R^B`\/4!F>2Gs6K[eiLaBpf`2."?'s(=JcC<$qYu'~> +JcC<$nG`R^B`\/4!F>2Gs6K[eiLaBpf`2."?'s(=JcC<$qYu'~> +JcC<$nG`R^B`\/4!F>2Gs6K[eiLaBpf`2."?'s(=JcC<$qYu'~> +JcC<$nc&X2-N*oF&upN_jo5G8Q;eRO!!Eg&K"U]+s+14Ls*t~> +JcC<$nc&X2-N*oF&upN_jo5G8Q;eRO!!Eg&K"U]+s+14Ls*t~> +JcC<$nc&X2-N*oF&upN_jo5G8Q;eRO!!Eg&K"U]+s+14Ls*t~> +JcC<$oD\mhIg#]M!Cl.$s5Et\rQpQu%bUgb">XejiIV#\s*t~> +JcC<$oD\mhIg#]M!Cl.$s5Et\rQpQu%bUgb">XejiIV#\s*t~> +JcC<$oD\mhIg#]M!Cl.$s5Et\rQpQu%bUgb">XejiIV#\s*t~> +JcC<$o`"sE2Z3UW$'G4 +JcC<$o`"sE2Z3UW$'G4 +JcC<$o`"sE2Z3UW$'G4 +JcC<$pAY3nPm[Hi!A`2Vs472Qp:55r!S@AT$UB'HmXbCrs*t~> +JcC<$pAY3nPm[Hi!A`2Vs472Qp:55r!S@AT$UB'HmXbCrs*t~> +JcC<$pAY3nPm[Hi!A`2Vs472Qp:55r!S@AT$UB'HmXbCrs*t~> +JcC<$p\t9U8GrMi"*s]ns3^iKk+Pupf)PsU.V57*rdk*2s*t~> +JcC<$p\t9U8GrMi"*s]ns3^iKk+Pupf)PsU.V57*rdk*2s*t~> +JcC<$p\t9U8GrMi"*s]ns3^iKk+Pupf)PsU.V57*rdk*2s*t~> +JcC<$q#:Aq'E%n3+iAm2bl7hFcA4dlec5gf:Pm!`JcCu7J,~> +JcC<$q#:Aq'E%n3+iAm2bl7hFcA4dlec5gf:Pm!`JcCu7J,~> +JcC<$q#:Aq'E%n3+iAm2bl7hFcA4dlec5gf:Pm!`JcCu7J,~> +JcC<$qYpTc?2O['@If!La8Z86[;RME!!ENeF0=_Xs-Wh:~> +JcC<$qYpTc?2O['@If!La8Z86[;RME!!ENeF0=_Xs-Wh:~> +JcC<$qYpTc?2O['@If!La8Z86[;RME!!ENeF0=_Xs-Wh:~> +JcC<$qu6]3+8l0?'X!#e_>aVsS5p +JcC<$qu6]3+8l0?'X!#e_>aVsS5p +JcC<$qu6]3+8l0?'X!#e_>aVsS5p +JcC<$rVlroEru:?!D2I*s1SF8r5jRS"k3MT&4hDco7?q8s*t~> +JcC<$rVlroEru:?!D2I*s1SF8r5jRS"k3MT&4hDco7?q8s*t~> +JcC<$rVlroEru:?!D2I*s1SF8r5jRS"k3MT&4hDco7?q8s*t~> +JcC<$rr3#G/c>YN$C:[Bs1&(2nZZaSdf9LR12NiHJcDSHJ,~> +JcC<$rr3#G/c>YN$C:[Bs1&(2nZZaSdf9LR12NiHJcDSHJ,~> +JcC<$rr3#G/c>YN$C:[Bs1&(2nZZaSdf9LR12NiHJcDSHJ,~> +JcC<$"98=V#Q4W'2;!K[ZMt$`Qr4LD!!F9BOj!TPs/Q*L~> +JcC<$"98=V#Q4W'2;!K[ZMt$`Qr4LD!!F9BOj!TPs/Q*L~> +JcC<$"98=V#Q4W'2;!K[ZMt$`Qr4LD!!F9BOj!TPs/Q*L~> +JcC<$!T-*>!!3:OqLS[Lrri5 +JcC<$!T-*>!!3:OqLS[Lrri5 +JcC<$!T-*>!!3:OqLS[Lrri5 +JcC?%!M9l#!!+@cJcD\K"7E7&+OC)j0Pml[JcE%UJ,~> +JcC?%!M9l#!!+@cJcD\K"7E7&+OC)j0Pml[JcE%UJ,~> +JcC?%!M9l#!!+@cJcD\K"7E7&+OC)j0Pml[JcE%UJ,~> +JcCE'!UEY]!!-U(JcDMF"5/l4%FG.Y!\eW"n:CVJs*t~> +JcCE'!UEY]!!-U(JcDMF"5/l4%FG.Y!\eW"n:CVJs*t~> +JcCE'!UEY]!!-U(JcDMF"5/l4%FG.Y!\eW"n:CVJs*t~> +JcCH(!OWdC!!*e;JcD>A"T#o[1]l&)"9UN)\+>1N])R9~> +JcCH(!OWdC!!*e;JcD>A"T#o[1]l&)"9UN)\+>1N])R9~> +JcCH(!OWdC!!*e;JcD>A"T#o[1]l&)"9UN)\+>1N])R9~> +JcCN*!q^.,r;Zjfk(3Q#rr_Sb@N<_p"9gi5^%R$W^Ai]~> +JcCN*!q^.,r;Zjfk(3Q#rr_Sb@N<_p"9gi5^%R$W^Ai]~> +JcCN*!q^.,r;Zjfk(3Q#rr_Sb@N<_p"9gi5^%R$W^Ai]~> +JcCQ+!QQMb!!3Ferdk*6rr^f48IEfE":%2C_YJc__Z,,~> +JcCQ+!QQMb!!3Ferdk*6rr^f48IEfE":%2C_YJc__Z,,~> +JcCQ+!QQMb!!3Ferdk*6rr^f48IEfE":%2C_YJc__Z,,~> +JcCW-!r@?Kr;ZjLd=M=Yrri,0Ft`sD!!EKpMTYpLs2P(h~> +JcCW-!r@?Kr;ZjLd=M=Yrri,0Ft`sD!!EKpMTYpLs2P(h~> +JcCW-!r@?Kr;ZjLd=M=Yrri,0Ft`sD!!EKpMTYpLs2P(h~> +JcCZ.!S94-!!31=pOW@%rr_J[>o:lf!tnS#gk#LIs*t~> +JcCZ.!S94-!!31=pOW@%rr_J[>o:lf!tnS#gk#LIs*t~> +JcCZ.!S94-!!31=pOW@%rr_J[>o:lf!tnS#gk#LIs*t~> +JcC`0!reDkr;Zj8[t4R5rri>JMF7`r!!=EWWpG<:c2W:~> +JcC`0!reDkr;Zj8[t4R5rri>JMF7`r!!=EWWpG<:c2W:~> +JcC`0!reDkr;Zj8[t4R5rri>JMF7`r!!=EWWpG<:c2W:~> +JcCc1!TciL!!,gZJcC<$"on8)E@V(:!!E?[H+j!(s3^js~> +JcCc1!TciL!!,gZJcC<$"on8)E@V(:!!E?[H+j!(s3^js~> +JcCc1!TciL!!,gZJcC<$"on8)E@V(:!!E?[H+j!(s3^js~> +JcCf2!NHe2!!3Lordk*#s82fujI]QicN"(T7uP^mJcF:#J,~> +JcCf2!NHe2!!3Lordk*#s82fujI]QicN"(T7uP^mJcF:#J,~> +JcCf2!NHe2!!3Lordk*#s82fujI]QicN"(T7uP^mJcF:#J,~> +JcCl4!Uj:k!!+k,JcC<$pAY6ob_.gu!!=!>S`55#f`-I~> +JcCl4!Uj:k!!+k,JcC<$pAY6ob_.gu!!=!>S`55#f`-I~> +JcCl4!Uj:k!!+k,JcC<$pAY6ob_.gu!!=!>S`55#f`-I~> +JcCo5!PTWR!!34Fq18Qss7-*kiK-5*c2[r)FN"-/s4mX)~> +JcCo5!PTWR!!34Fq18Qss7-*kiK-5*c2[r)FN"-/s4mX)~> +JcCo5!PTWR!!34Fq18Qss7-*kiK-5*c2[r)FN"-/s4mX)~> +JcCu7!r$^:r;Zj=^4H<8s6Tafl'b-Ic2[q_A[V;as53j,~> +JcCu7!r$^:r;Zj=^4H<8s6Tafl'b-Ic2[q_A[V;as53j,~> +JcCu7!r$^:r;Zj=^4H<8s6Tafl'b-Ic2[q_A[V;as53j,~> +JcD#8!RE=p!!-*fJcC<$kl1bRUJ_HE!!<[2VXT0:ir=N~> +JcD#8!RE=p!!-*fJcC<$kl1bRUJ_HE!!<[2VXT0:ir=N~> +JcD#8!RE=p!!-*fJcC<$kl1bRUJ_HE!!<[2VXT0:ir=N~> +JcD):!rRiYr;Zj-T7R#ns5X+]orVF0c2[qN8!rFis5j92~> +JcD):!rRiYr;Zj-T7R#ns5X+]orVF0c2[qN8!rFis5j92~> +JcD):!rRiYr;Zj-T7R#ns5X+]orVF0c2[qN8!rFis5j92~> +JcD,;!T$!;!!,(7JcC<$hu +JcD,;!T$!;!!,(7JcC<$hu +JcD,;!T$!;!!,(7JcC<$hu +JcD/ +JcD/ +JcD/ +JcD5>!U +JcD5>!U +JcD5>!U +JcD8?!ON^A!!-ErJcC<$df0FH\RH,p!!4-aeq*kks*t~> +JcD8?!ON^A!!-ErJcC<$df0FH\RH,p!!4-aeq*kks*t~> +JcD8?!ON^A!!-ErJcC<$df0FH\RH,p!!4-aeq*kks*t~> +JcD>A!qU")r;Zj0W.Fu"s3:QGpp!s1bl@f&PjEu$o`'F~> +JcD>A!qU")r;Zj0W.Fu"s3:QGpp!s1bl@f&PjEu$o`'F~> +JcD>A!qU")r;Zj0W.Fu"s3:QGpp!s1bl@f&PjEu$o`'F~> +JcDAB!QQJ`!!,=CJcC<$ao;J9WDNrH!! +JcDAB!QQJ`!!,=CJcC<$ao;J9WDNrH!! +JcDAB!QQJ`!!,=CJcC<$ao;J9WDNrH!! +JcDGD!r@9Ir;Zm&L])f(JcE^h"7`'V"jR)L$[h;ls7u\F~> +JcDGD!r@9Ir;Zm&L])f(JcE^h"7`'V"jR)L$[h;ls7u\F~> +JcDGD!r@9Ir;Zm&L])f(JcE^h"7`'V"jR)L$[h;ls7u\F~> +JcDJE!S91+!!+IjJcC<$_#FN'R6^r$!!<6gXo!\Lr;V9~> +JcDJE!S91+!!+IjJcC<$_#FN'R6^r$!!<6gXo!\Lr;V9~> +JcDJE!S91+!!+IjJcC<$_#FN'R6^r$!!<6gXo!\Lr;V9~> +JcDPG!re>hqu?b0oR[$ns1J@5ooU3=!!40pl%/m6s*t~> +JcDPG!re>hqu?b0oR[$ns1J@5ooU3=!!40pl%/m6s*t~> +JcDPG!re>hqu?b0oR[$ns1J@5ooU3=!!40pl%/m6s*t~> +JcDSH!TZ`J!!*e`MJ,~> +JcDSH!TZ`J!!*e`MJ,~> +JcDSH!TZ`J!!*e`MJ,~> +JcDVI!N6Y/!!,ROJcC<$[/U7%UHnq,!!+OWK)^?~> +JcDVI!N6Y/!!,ROJcC<$[/U7%UHnq,!!+OWK)^?~> +JcDVI!N6Y/!!,ROJcC<$[/U7%UHnq,!!+OWK)^?~> +JcD\K!Uj7j!!3Ferdk*#s02M)h0^3i!!,dSK)^?~> +JcD\K!Uj7j!!3Ferdk*#s02M)h0^3i!!,dSK)^?~> +JcD\K!Uj7j!!3Ferdk*#s02M)h0^3i!!,dSK)^?~> +JcD_L!PKNO!!+Y!JcC<$XT&D#Yse]E!!*b/Jc>`MJ,~> +JcD_L!PKNO!!+Y!JcC<$XT&D#Yse]E!!*b/Jc>`MJ,~> +JcD_L!PKNO!!+Y!JcC<$XT&D#Yse]E!!*b/Jc>`MJ,~> +JcDeN!r$[9r;Zm"DYJ_^JcD\K!nM,rf`2%Pk^id6s*t~> +JcDeN!r$[9r;Zm"DYJ_^JcD\K!nM,rf`2%Pk^id6s*t~> +JcDeN!r$[9r;Zm"DYJ_^JcD\K!nM,rf`2%Pk^id6s*t~> +JcDhO!RE:o!!*qGJcC<$V#LMdOXAla!>hefs8DtJ~> +JcDhO!RE:o!!*qGJcC<$V#LMdOXAla!>hefs8DtJ~> +JcDhO!RE:o!!*qGJcC<$V#LMdOXAla!>hefs8DtJ~> +JcDnQ!rRfXqu?aml@Jtds.TGprjPN%i;`m_m",37s*t~> +JcDnQ!rRfXqu?aml@Jtds.TGprjPN%i;`m_m",37s*t~> +JcDnQ!rRfXqu?aml@Jtds.TGprjPN%i;`m_m",37s*t~> +JcDqR!Som9!!*FnJcC<$SGrZF@Kkin!?8@rs8)bG~> +JcDqR!Som9!!*FnJcC<$SGrZF@Kkin!?8@rs8)bG~> +JcDqR!Som9!!*FnJcC<$SGrZF@Kkin!?8@rs8)bG~> +JcDtS!M'\t!!+k,JcC<$RK!?JD@5V.!Wcg"JcGQGJ,~> +JcDtS!M'\t!!+k,JcC<$RK!?JD@5V.!Wcg"JcGQGJ,~> +JcDtS!M'\t!!+k,JcC<$RK!?JD@5V.!Wcg"JcGQGJ,~> +JcE%U!U +JcE%U!U +JcE%U!U +JcE(V!O!!++SJcC<$P5bUQKbj.X!Wm--JcGHDJ,~> +JcE(V!O!!++SJcC<$P5bUQKbj.X!Wm--JcGHDJ,~> +JcE(V!O!!++SJcC<$P5bUQKbj.X!Wm--JcGHDJ,~> +JcE.X!V9n"!!--gJcC<$O8f:XLC<\R!@5I3s7H>A~> +JcE.X!V9n"!!--gJcC<$O8f:XLC<\R!@5I3s7H>A~> +JcE.X!V9n"!!--gJcC<$O8f:XLC<\R!@5I3s7H>A~> +JcE1Y!QHD_!!*P%JcC<$MuNkLILPrN!X!K9JcG?AJ,~> +JcE1Y!QHD_!!*P%JcC<$MuNkLILPrN!X!K9JcG?AJ,~> +JcE1Y!QHD_!!*P%JcC<$MuNkLILPrN!X!K9JcG?AJ,~> +JcE7[!r@6Gqu?aVm",1fs+p[Vk@k+r!!+OhJcG9?J,~> +JcE7[!r@6Gqu?aVm",1fs+p[Vk@k+r!!+OhJcG9?J,~> +JcE7[!r@6Gqu?aVm",1fs+p[Vk@k+r!!+OhJcG9?J,~> +JcE:\!S0()!!37Nqgncus+UISfi/"O!!3:LpjrJ7s*t~> +JcE:\!S0()!!37Nqgncus+UISfi/"O!!3:LpjrJ7s*t~> +JcE:\!S0()!!37Nqgncus+UISfi/"O!!3:LpjrJ7s*t~> +JcE@^!re;gqu?a>_L_` +JcE@^!re;gqu?a>_L_` +JcE@^!re;gqu?a>_L_` +JcEC_!TZ]H!!-0iJcC<$JcG`L!Nc6Ns6]i:~> +JcEC_!TZ]H!!-0iJcC<$JcG`L!Nc6Ns6]i:~> +JcEC_!TZ]H!!-0iJcC<$JcG`L!Nc6Ns6]i:~> +JcEF`!N-P-!!*P%JcC<$JcC<$k5Tr~> +JcEF`!N-P-!!*P%JcC<$JcC<$k5Tr~> +JcEF`!N-P-!!*P%JcC<$JcC<$k5Tr~> +JcELb!Ua.g!!,"4JcC<$JcC<$jo9i~> +JcELb!Ua.g!!,"4JcC<$JcC<$jo9i~> +JcELb!Ua.g!!,"4JcC<$JcC<$jo9i~> +JcEOc!PBHN!!37KqLSZts+13$s5a31~> +JcEOc!PBHN!!37KqLSZts+13$s5a31~> +JcEOc!PBHN!!37KqLSZts+13$s5a31~> +JcEUe!VpL-!!++UJcC<$JcC<$ir=N~> +JcEUe!VpL-!!++UJcC<$JcC<$ir=N~> +JcEUe!VpL-!!++UJcC<$JcC<$ir=N~> +JcEXf!R3+k!!-*fJcC<$JcC<$iW"E~> +JcEXf!R3+k!!-*fJcC<$JcC<$iW"E~> +JcEXf!R3+k!!-*fJcC<$JcC<$iW"E~> +JcE^h!rR`Vqu?a+SUpfls+13$s53j,~> +JcE^h!rR`Vqu?a+SUpfls+13$s53j,~> +JcE^h!rR`Vqu?a+SUpfls+13$s53j,~> +JcEai!Sfa5!!+q1JcC<$JcC<$hZ&*~> +JcEai!Sfa5!!+q1JcC<$JcC<$hZ&*~> +JcEai!Sfa5!!+q1JcC<$JcC<$hZ&*~> +JcEdj!LaGp!!34GqLSZts+13$s5!^*~> +JcEdj!LaGp!!34GqLSZts+13$s5!^*~> +JcEdj!LaGp!!34GqLSZts+13$s5!^*~> +JcEjl!U*5S!!+(RJcC<$JcC<$g])d~> +JcEjl!U*5S!!+(RJcC<$JcC<$g])d~> +JcEjl!U*5S!!+(RJcC<$JcC<$g])d~> +JcEmm!O!78!!-!bJcC<$JcC<$gAc[~> +JcEmm!O!78!!-!bJcC<$JcC<$gAc[~> +JcEmm!O!78!!-!bJcC<$JcC<$gAc[~> +JcEso!V'Uq!!*IrJcC<$JcC<$f`-I~> +JcEso!V'Uq!!*IrJcC<$JcC<$f`-I~> +JcEso!V'Uq!!*IrJcC<$JcC<$f`-I~> +JcF!p!PooU!!+k-JcC<$JcC<$fDg@~> +JcF!p!PooU!!+k-JcC<$JcC<$fDg@~> +JcF!p!PooU!!+k-JcC<$JcC<$fDg@~> +JcF'r!r-p?qu?d"FnpUgJcC<$JcF=$J,~> +JcF'r!r-p?qu?d"FnpUgJcC<$JcF=$J,~> +JcF'r!r-p?qu?d"FnpUgJcC<$JcF=$J,~> +JcF*s!R`Ut!!+"MJcC<$JcC<$eGk%~> +JcF*s!R`Ut!!+"MJcC<$JcC<$eGk%~> +JcF*s!R`Ut!!+"MJcC<$JcC<$eGk%~> +JcF0u!r\#^qu?d!=RgtBJcC<$JcF4!J,~> +JcF0u!r\#^qu?d!=RgtBJcC<$JcF4!J,~> +JcF0u!r\#^qu?d!=RgtBJcC<$JcF4!J,~> +JcF4!!T-->!!46nj+75]s+13$s3^js~> +JcF4!!T-->!!46nj+75]s+13$s3^js~> +JcF4!!T-->!!46nj+75]s+13$s3^js~> +JcF7"!MBr%!! +JcF7"!MBr%!! +JcF7"!MBr%!! +JcF=$!UEY_!!4I'k^ibbs+13$s31Ln~> +JcF=$!UEY_!!4I'k^ibbs+13$s31Ln~> +JcF=$!UEY_!!4I'k^ibbs+13$s31Ln~> +JcF@%#.,3I#[5"BJcC<$JcC<$b5Zt~> +JcF@%#.,3I#[5"BJcC<$JcC<$b5Zt~> +JcF@%#.,3I#[5"BJcC<$JcC<$b5Zt~> +JcFF'"nZF./ +JcFF'"nZF./ +JcFF'"nZF./ +JcFI("3*!&`e"/@s+13$s2=qf~> +JcFI("3*!&`e"/@s+13$s2=qf~> +JcFI("3*!&`e"/@s+13$s2=qf~> +JcFO*"8]3jnU^^ks+13$s2+ed~> +JcFO*"8]3jnU^^ks+13$s2+ed~> +JcFO*"8]3jnU^^ks+13$s2+ed~> +JcFO*!;M-FJcC<$JcELbJ,~> +JcFO*!;M-FJcC<$JcELbJ,~> +JcFO*!;M-FJcC<$JcELbJ,~> +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +%%EndData +showpage +%%Trailer +end +%%EOF diff --git a/.svn/pristine/58/58feec60fe6444a303bae3273f04bd42801f8b24.svn-base b/.svn/pristine/58/58feec60fe6444a303bae3273f04bd42801f8b24.svn-base new file mode 100644 index 0000000..4c039e2 --- /dev/null +++ b/.svn/pristine/58/58feec60fe6444a303bae3273f04bd42801f8b24.svn-base @@ -0,0 +1,278 @@ +/* + * kalmanfilter implementation + * + * Copyright (C) YuanJun, Li Wei, Li Ming, Andreas Nuechter, + * + * Released under the GPL version 3. + * + */ + +/** + * @file + * @brief + * + * @author Andreas Nuechter. Jacobs University Bremen, Germany + * @author YuanJun, Wuhan University, China + * @author Li Wei, Wuhan University, China + * @author Li Ming, Wuhan University, China + */ +/***************By yuanjun**************************/ +#include "veloslam/kalmanfilter.h" +#include "math.h" +#define delta_t 0.1 + + +KalmanFilter::KalmanFilter() +{ + +} + +KalmanFilter::KalmanFilter(clusterFeature &glu,double rollAngle) +{ + X1.SetMatrixRowAndCol(4,1); + X2.SetMatrixRowAndCol(4,1); + A.SetMatrixRowAndCol(4,4); + H.SetMatrixRowAndCol(2,4); + Z.SetMatrixRowAndCol(2,1); + K.SetMatrixRowAndCol(4,2); + Q.SetMatrixRowAndCol(4,4); + R.SetMatrixRowAndCol(2,2); + P1.SetMatrixRowAndCol(4,4); + P2.SetMatrixRowAndCol(4,4); + CoordinateRoll.SetMatrixRowAndCol(4,4); + + X1.m_pTMatrix[0][0]=glu.avg_x; + X1.m_pTMatrix[1][0]=glu.avg_z; + X1.m_pTMatrix[2][0]=X1.m_pTMatrix[3][0]=25; + + + A.Eye(); + A.m_pTMatrix[0][2]=delta_t; + A.m_pTMatrix[1][3]=delta_t; + + H.m_pTMatrix[0][0]=1; + H.m_pTMatrix[1][1]=1; + + Q.Eye(); + + R.Eye(); + + P1.Eye(); + + angle=rollAngle; + + CalCoorRoll(angle); +} + +KalmanFilter::~KalmanFilter(void) +{ + +} + +void KalmanFilter::InitialKalmanFilter(clusterFeature &glu) +{ + X1.SetMatrixRowAndCol(4,1); + X2.SetMatrixRowAndCol(4,1); + A.SetMatrixRowAndCol(4,4); + H.SetMatrixRowAndCol(2,4); + Z.SetMatrixRowAndCol(2,1); + K.SetMatrixRowAndCol(4,2); + Q.SetMatrixRowAndCol(4,4); + R.SetMatrixRowAndCol(2,2); + P1.SetMatrixRowAndCol(4,4); + P2.SetMatrixRowAndCol(4,4); + + X1.m_pTMatrix[0][0]=glu.avg_x; + X1.m_pTMatrix[1][0]=glu.avg_z; + X1.m_pTMatrix[2][0]=X1.m_pTMatrix[3][0]=1; + + A.Eye(); + A.m_pTMatrix[0][2]=delta_t; + A.m_pTMatrix[1][3]=delta_t; + + H.m_pTMatrix[0][0]=1; + H.m_pTMatrix[1][1]=1; + + Q.Eye(); + + R.Eye(); + + P1.Eye(); + +} + +void KalmanFilter::timeUpdate() +{ + CMatrix T1,T2; + X2=A*X1; + T1= A.Transpose(); + P2= A * P1 * T1 + Q; +// X2=A*X1; +// P2=A*P1*A.Transpose()+Q; +} + +void KalmanFilter::stateUpdate(clusterFeature &glu,double rollangle,double *pos) +{ + CMatrix T1,T2; + //Z.m_pTMatrix[0][0]=glu.avg_x; + //Z.m_pTMatrix[1][0]=glu.avg_z; + + //CMatrix temp(2,2); + // T1= H.Transpose(); + //temp=H*P2*T1+R; + // T2= temp.Inverse(); + //K=P2*T1*T2; + + //CalCoorRoll(rollangle); + + //X2=CoordinateRoll*X2; + + // CMatrix T3,T4,T5; + + // T4=H*X2; + // T3=Z-T4; + // T5=K*T3; + //X1=X2+T5; + + //CMatrix I(4,4); + //I.Eye(); + + // CMatrix T6,T7,T8; + // T6=K*H; + // T7=I-T6; + //P1=T7*P2; + + Z.m_pTMatrix[0][0]=glu.avg_x; + Z.m_pTMatrix[1][0]=glu.avg_z; + +// CMatrix temp(2,2); +// temp=H*P2*H.Transpose()+R; + + CMatrix temp(2,2); + T1= H.Transpose(); + temp=H*P2*T1+R; + + T2= temp.Inverse(); + K=P2*T1*T2; + +// K=P2*H.Transpose()*temp.Inverse(); + + CalCoorRoll(rollangle); + + X2=CoordinateRoll*X2; + + X2.m_pTMatrix[0][0]+=pos[0]; + X2.m_pTMatrix[1][0]+=pos[2]; + + +// X1=X2+K*(Z-H*X2); + + CMatrix T3,T4,T5; + + T4=H*X2; + T3=Z-T4; + T5=K*T3; + X1=X2+T5; + + CMatrix I(4,4); + I.Eye(); + +// P1=(I-K*H)*P2; + + CMatrix T6,T7,T8; + T6=K*H; + T7=I-T6; + P1=T7*P2; + +} + +ObjectState KalmanFilter::GetCurrentState() +{ + ObjectState movestate; + movestate.x_position=X1.m_pTMatrix[0][0]; + movestate.z_positon=X1.m_pTMatrix[1][0]; + movestate.x_speed=X1.m_pTMatrix[2][0]; + movestate.z_speed=X1.m_pTMatrix[3][0]; + + return movestate; +} + +ObjectState KalmanFilter::GetPredictState() +{ + ObjectState movestate; + + movestate.x_position=X2.m_pTMatrix[0][0]; + movestate.z_positon=X2.m_pTMatrix[1][0]; + movestate.x_speed=X2.m_pTMatrix[2][0]; + movestate.z_speed=X2.m_pTMatrix[3][0]; + + return movestate; +} + +Measurement KalmanFilter::GetPredictMeasurement(double rollAngle,double *pos) +{ + Measurement predictMeasurement; + CMatrix temp(2,1); + CalCoorRoll(rollAngle); + X2=CoordinateRoll*X2; + X2.m_pTMatrix[0][0]+=pos[0]; + X2.m_pTMatrix[1][0]+=pos[2]; + temp=H*X2; + predictMeasurement.x_measurement=temp.m_pTMatrix[0][0]; + predictMeasurement.z_measurement=temp.m_pTMatrix[1][0]; + + return predictMeasurement; +} + +CMatrix KalmanFilter::CalMeasureDeviation() +{ + CMatrix Deviation(2,2),standardDeviation(2,2); + + CMatrix T6,T7,T8; + T6=H.Transpose(); + T7=P2*T6; + Deviation=H*T7+R; + +// Deviation=H*P2*H.Transpose()+R; + + for (int i=0;i<2;i++) + { + for(int j=0;j<2;j++) + { + standardDeviation.m_pTMatrix[i][j]=sqrt(Deviation.m_pTMatrix[i][j]); + } + } + + return standardDeviation; +} + +KalmanFilter& KalmanFilter::operator = (const KalmanFilter& anotherKF) +{ + A=anotherKF.A; + H=anotherKF.H; + X1=anotherKF.X1; + X2=anotherKF.X2; + K=anotherKF.K; + Z=anotherKF.Z; + P1=anotherKF.P1; + P2=anotherKF.P2; + Q=anotherKF.Q; + R=anotherKF.R; + CoordinateRoll=anotherKF.CoordinateRoll; + angle=anotherKF.angle; + return *this; +} + +void KalmanFilter::CalCoorRoll(double angle) +{ + CoordinateRoll.m_pTMatrix[0][0]=cos(angle);//angle is radian?? + CoordinateRoll.m_pTMatrix[0][1]=sin(angle); + CoordinateRoll.m_pTMatrix[1][0]=-sin(angle); + CoordinateRoll.m_pTMatrix[1][1]=cos(angle); + CoordinateRoll.m_pTMatrix[2][2]=cos(angle); + CoordinateRoll.m_pTMatrix[2][3]=sin(angle); + CoordinateRoll.m_pTMatrix[3][2]=-sin(angle); + CoordinateRoll.m_pTMatrix[3][3]=cos(angle); +} + + diff --git a/.svn/pristine/59/59ccfd928c45d0eb1d433de399c60a5e7fdc79e7.svn-base b/.svn/pristine/59/59ccfd928c45d0eb1d433de399c60a5e7fdc79e7.svn-base new file mode 100644 index 0000000..4b9f74b --- /dev/null +++ b/.svn/pristine/59/59ccfd928c45d0eb1d433de399c60a5e7fdc79e7.svn-base @@ -0,0 +1,317 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: genergdi.h +// Purpose: Generic gdi pen and colour +// Author: John Labenski +// Modified by: +// Created: 12/1/2000 +// Copyright: (c) John Labenski +// Licence: wxWidgets licence +///////////////////////////////////////////////////////////////////////////// + +#ifndef _WX_GENERGDI_H_ +#define _WX_GENERGDI_H_ + +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) + #pragma interface "genergdi.h" +#endif + +#include "wx/colour.h" +#include "wx/pen.h" +#include "wx/brush.h" +#include "wx/things/thingdef.h" + +class WXDLLIMPEXP_THINGS wxGenericColour; +class WXDLLIMPEXP_THINGS wxGenericPen; +class WXDLLIMPEXP_THINGS wxGenericBrush; + +// Uncreated and invalid versions of the generic colour, pen, and brush +WXDLLIMPEXP_DATA_THINGS(extern const wxGenericColour) wxNullGenericColour; +WXDLLIMPEXP_DATA_THINGS(extern const wxGenericPen) wxNullGenericPen; +WXDLLIMPEXP_DATA_THINGS(extern const wxGenericBrush) wxNullGenericBrush; + +// Arrays of the generic colours, pens, and brushes +WX_DECLARE_OBJARRAY_WITH_DECL(wxGenericColour, wxArrayGenericColour, class WXDLLIMPEXP_THINGS); +WX_DECLARE_OBJARRAY_WITH_DECL(wxGenericPen, wxArrayGenericPen, class WXDLLIMPEXP_THINGS); +WX_DECLARE_OBJARRAY_WITH_DECL(wxGenericBrush, wxArrayGenericBrush, class WXDLLIMPEXP_THINGS); + +//---------------------------------------------------------------------------- +// wxGenericColour - a RGBA colour that's converts from and to a wxColour. +// You can have thousands of them without using up resources. (on MSW) +//---------------------------------------------------------------------------- + +class WXDLLIMPEXP_THINGS wxGenericColour : public wxObject +{ +public: + wxGenericColour() : wxObject() {} + wxGenericColour( const wxGenericColour& c ) { Create(c); } + wxGenericColour( const wxColour& c ) { Create(c); } + wxGenericColour( unsigned char red, unsigned char green, + unsigned char blue, unsigned char alpha=255 ) + : wxObject() { Create(red, green, blue, alpha); } + wxGenericColour( unsigned long colABGR ) : wxObject() { CreateABGR(colABGR); } + + // Implicit conversion from the colour name + wxGenericColour( const wxString &colourName ) : wxObject() { Create(colourName); } + wxGenericColour( const char *colourName ) : wxObject() { Create(wxString::FromAscii(colourName)); } +#if wxUSE_UNICODE + wxGenericColour( const wxChar *colourName ) : wxObject() { Create(wxString(colourName)); } +#endif + + virtual ~wxGenericColour() {} + // Destroy the refed data + void Destroy() { UnRef(); } + // Is this colour valid, has refed data + bool Ok() const { return m_refData != NULL; } + + // ----------------------------------------------------------------------- + // (re)Create this colour, unrefing this colour first. + // Use these to detach this colour from it's refed copies. + void Create( const wxGenericColour& c ); + void Create( const wxColour& c); + void Create( unsigned char red = 0, unsigned char green = 0, + unsigned char blue = 0, unsigned char alpha=255 ); + void CreateABGR( unsigned long colABGR ); + void CreateARGB( unsigned long colARGB ); + void Create( const wxString& colourName ); + + // ----------------------------------------------------------------------- + // Set the colour values of the refed data. + // Use these to adjust the values of all the refed copies. + void Set( const wxGenericColour &c ); + void Set( const wxColour& c ); + void Set( unsigned char red, unsigned char green, + unsigned char blue, unsigned char alpha=255 ); + void SetABGR( unsigned long colABGR ); + void SetARGB( unsigned long colARGB ); + void Set( const wxString& colourName ); + + void SetRed ( unsigned char r ); + void SetGreen( unsigned char g ); + void SetBlue ( unsigned char b ); + void SetAlpha( unsigned char a ); + + // ----------------------------------------------------------------------- + // Get the colour values + inline wxColour GetColour() const { return wxColour(GetRed(), GetGreen(), GetBlue()); } + + unsigned char GetRed() const; + unsigned char GetGreen() const; + unsigned char GetBlue() const; + unsigned char GetAlpha() const; + + // wxWidgets wxColour compatibility functions + unsigned char Red() const { return GetRed(); } + unsigned char Green() const { return GetGreen(); } + unsigned char Blue() const { return GetBlue(); } + unsigned char Alpha() const { return GetAlpha(); } + + // ----------------------------------------------------------------------- + // Equivalency tests + bool IsSameAs( const wxGenericColour& c ) const; + bool IsSameAs( const wxColour& c ) const; + + // Get a "hot to cold" colour where i ranges from 0 to 255 + wxGenericColour GetHotColdColour(double i) const; + + // Read colour to and from string + //wxString WriteString(const wxString& format = wxT("%d,%d,%d,%d")) const; + //bool ReadString(const wxString& str, const wxString& format = wxT("%d,%d,%d,%d")); + + // operators + bool operator == (const wxGenericColour& c) const + { return m_refData == c.m_refData; } + bool operator != (const wxGenericColour& c) const + { return m_refData != c.m_refData; } + + wxGenericColour& operator = (const wxGenericColour& c) + { + if ( (*this) != c ) + Ref(c); + return *this; + } + wxGenericColour& operator = ( const wxColour& c ) { Create(c); return *this; } + +private: + // ref counting code + virtual wxObjectRefData *CreateRefData() const; + virtual wxObjectRefData *CloneRefData(const wxObjectRefData *data) const; + + DECLARE_DYNAMIC_CLASS(wxGenericColour) +}; + +//---------------------------------------------------------------------------- +// wxGenericPen - a pen structure that converts to and from wxPen +// You can have thousands of them without using up resources. (on MSW) +//---------------------------------------------------------------------------- + +class WXDLLIMPEXP_THINGS wxGenericPen : public wxObject +{ +public: + wxGenericPen() : wxObject() {} + wxGenericPen( const wxGenericPen &pen ) : wxObject() { Create(pen); } + wxGenericPen( const wxPen &pen ) : wxObject() { Create(pen); } + wxGenericPen( const wxGenericColour &colour, int width = 1, int style = wxSOLID, + int cap = wxCAP_ROUND, int join = wxJOIN_ROUND ) : wxObject() + { Create(colour, width, style, cap, join); } + wxGenericPen( const wxColour &colour, int width = 1, int style = wxSOLID, + int cap = wxCAP_ROUND, int join = wxJOIN_ROUND ) : wxObject() + { Create(colour, width, style, cap, join); } + + virtual ~wxGenericPen() {} + // Destroy the refed data + void Destroy() { UnRef(); } + // Is this colour valid, has refed data + bool Ok() const { return m_refData != NULL; } + + // ----------------------------------------------------------------------- + // (re)Create this pen, unrefing this pen first. + // Use these to detach this pen from it's refed copies. + void Create( const wxGenericPen &pen ); + void Create( const wxPen &pen ); + void Create( const wxGenericColour &colour, int width = 1, int style = wxSOLID, + int cap = wxCAP_ROUND, int join = wxJOIN_ROUND ); + void Create( const wxColour &colour, int width = 1, int style = wxSOLID, + int cap = wxCAP_ROUND, int join = wxJOIN_ROUND ); + + // ----------------------------------------------------------------------- + // Set the values of the refed data. + // Use these to adjust the values of all the refed copies. + void Set( const wxGenericPen& pen ); + void Set( const wxPen& pen ); + void SetColour( const wxGenericColour &colour ); + void SetColour( const wxColour &colour ); + void SetColour( int red, int green, int blue, int alpha=255 ); + void SetCap( int capStyle ); + void SetJoin( int joinStyle ); + void SetStyle( int style ); + void SetWidth( int width ); + void SetDashes( int number_of_dashes, const wxDash *dash ); + + // ----------------------------------------------------------------------- + // Get the pen values + wxPen GetPen() const; + + wxGenericColour GetGenericColour() const; + wxColour GetColour() const; + int GetWidth() const; + int GetStyle() const; + int GetCap() const; + int GetJoin() const; + int GetDashes(wxDash **ptr) const; + int GetDashCount() const; + wxDash* GetDash() const; + + // ----------------------------------------------------------------------- + // Equivalency tests + bool IsSameAs(const wxGenericPen& pen) const; + bool IsSameAs(const wxPen& pen) const; + + // Read pen to and from string + //wxString WriteString() const; + //bool ReadString(const wxString& str); + + // operators + bool operator == (const wxGenericPen& pen) const + { return m_refData == pen.m_refData; } + bool operator != (const wxGenericPen& pen) const + { return m_refData != pen.m_refData; } + + wxGenericPen& operator = (const wxGenericPen& pen) + { + if ( (*this) != pen ) + Ref(pen); + return *this; + } + wxGenericPen& operator = ( const wxPen& pen ) { Create(pen); return *this; } + +private: + // ref counting code + virtual wxObjectRefData *CreateRefData() const; + virtual wxObjectRefData *CloneRefData(const wxObjectRefData *data) const; + + DECLARE_DYNAMIC_CLASS(wxGenericPen) +}; + +//---------------------------------------------------------------------------- +// wxGenericBrush - a brush structure that converts to and from wxBrush +// You can have thousands of them without using up resources. (on MSW) +//---------------------------------------------------------------------------- + +class WXDLLIMPEXP_THINGS wxGenericBrush : public wxObject +{ +public: + wxGenericBrush() : wxObject() {} + wxGenericBrush( const wxGenericBrush &brush ) : wxObject() { Create(brush); } + wxGenericBrush( const wxBrush &brush ) : wxObject() { Create(brush); } + wxGenericBrush( const wxGenericColour &colour, int style = wxSOLID) + : wxObject() { Create(colour, style); } + wxGenericBrush( const wxColour &colour, int style = wxSOLID) + : wxObject() { Create(colour, style); } + wxGenericBrush( const wxBitmap& stipple ) : wxObject() { Create(stipple); } + + virtual ~wxGenericBrush() {} + // Destroy the refed data + void Destroy() { UnRef(); } + // Is this colour valid, has refed data + bool Ok() const { return m_refData != NULL; } + + // ----------------------------------------------------------------------- + // (re)Create this brush, unrefing this pen first. + // Use these to detach this pen from it's refed copies. + void Create( const wxGenericBrush &brush ); + void Create( const wxBrush &brush ); + void Create( const wxGenericColour &colour, int style = wxSOLID ); + void Create( const wxColour &colour, int style = wxSOLID ); + void Create( const wxBitmap &stipple ); + + // ----------------------------------------------------------------------- + // Set the values of the refed data. + // Use these to adjust the values of all the refed copies. + void Set( const wxGenericBrush& brush ); + void Set( const wxBrush& brush ); + void SetColour( const wxGenericColour &colour ); + void SetColour( const wxColour &colour ); + void SetColour( int red, int green, int blue, int alpha=255 ); + void SetStyle( int style ); + void SetStipple( const wxBitmap& stipple ); + + // ----------------------------------------------------------------------- + // Get the brush values + wxBrush GetBrush() const; + + wxGenericColour GetGenericColour() const; + wxColour GetColour() const; + int GetStyle() const; + wxBitmap* GetStipple() const; + + bool IsHatch() const + { return (GetStyle()>=wxFIRST_HATCH) && (GetStyle()<=wxLAST_HATCH); } + + // ----------------------------------------------------------------------- + // Equivalency tests + bool IsSameAs(const wxGenericBrush& brush) const; + bool IsSameAs(const wxBrush& brush) const; + + // operators + bool operator == (const wxGenericBrush& brush) const + { return m_refData == brush.m_refData; } + bool operator != (const wxGenericBrush& brush) const + { return m_refData != brush.m_refData; } + + wxGenericBrush& operator = (const wxGenericBrush& brush) + { + if ( (*this) != brush ) + Ref(brush); + return *this; + } + wxGenericBrush& operator = ( const wxBrush& brush ) { Create(brush); return *this; } + +private: + // ref counting code + virtual wxObjectRefData *CreateRefData() const; + virtual wxObjectRefData *CloneRefData(const wxObjectRefData *data) const; + + DECLARE_DYNAMIC_CLASS(wxGenericBrush) +}; + +#endif // _WX_GENERGDI_H_ diff --git a/.svn/pristine/59/59e7b58ae231a710825fa8db7e87125c4dec1291.svn-base b/.svn/pristine/59/59e7b58ae231a710825fa8db7e87125c4dec1291.svn-base new file mode 100644 index 0000000..c9fd84e --- /dev/null +++ b/.svn/pristine/59/59e7b58ae231a710825fa8db7e87125c4dec1291.svn-base @@ -0,0 +1,168 @@ +/* + * elch6Dslerp implementation + * + * Copyright (C) Jochen Sprickerhof + * + * Released under the GPL version 3. + * + */ + +/** + * @file ELCH implementation using SLERP + * @author Jochen Sprickerhof. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "slam6d/elch6Dslerp.h" + +#include "slam6d/metaScan.h" +#include "slam6d/lum6Dquat.h" +#include "slam6d/globals.icc" + +#include +using std::cout; +using std::cerr; +using std::endl; + +#include +using std::ofstream; + +#include + +#include +using boost::graph_traits; +using namespace NEWMAT; +/** + * ELCH loop closing function using SLERP + * matches first and last scan of a loop with ICP + * distributes the error + * + * @param allScans all laser scans + * @param first index of first laser scan in the loop + * @param last indes of last laser scan in the loop + * @param g graph for loop optimization + */ +void elch6Dslerp::close_loop(const vector &allScans, int first, int last, graph_t &g) +{ + int n = num_vertices(g); + graph_t grb[4]; + graph_traits ::edge_iterator ei = edges(g).first; + int num_arcs = num_edges(g); + int li = 0; +#ifdef _OPENMP +#pragma omp parallel for firstprivate(li, ei) +#endif + for(int i = 0; i < num_arcs; i++) { + for(;i > li; li++, ei++) ; + for(;i < li; li--, ei--) ; + Matrix C(7, 7); + int from = source(*ei, g); + int to = target(*ei, g); + lum6DQuat::covarianceQuat(allScans[from], allScans[to], my_icp6D->get_nns_method(), my_icp6D->get_rnd(), my_icp6D->get_max_dist_match2(), &C); + C = C.i(); + for(int j = 0; j < 3; j++) { +#ifdef _OPENMP +#pragma omp critical +#endif + add_edge(from, to, fabs(C(j + 1, j + 1)), grb[j]); + } +#ifdef _OPENMP +#pragma omp critical +#endif + add_edge(from, to, fabs(C(4, 4)) + fabs(C(5, 5)) + fabs(C(6, 6)) + fabs(C(7, 7)), grb[3]); + li++; + ei++; + } + + double *weights[4]; + for(int i = 0; i < 4; i++) { + weights[i] = new double[n]; + graph_balancer(grb[i], first, last, weights[i]); + } + + vector meta_start; + for(int i = first - 2; i <= first + 2; i++) { + if(i >= 0) { + meta_start.push_back(allScans[i]); + } + } + MetaScan *start = new MetaScan(meta_start, false, false); + + //static size of metascan + int offset_last_start = 2; + int offset_last_end = 0; + + vector meta_end; + for(int i = last - offset_last_start; i <= last + offset_last_end && i < n; i++) { + meta_end.push_back(allScans[i]); + } + MetaScan *end = new MetaScan(meta_end, false, false); + + double Pl0[16]; + memcpy(Pl0, allScans[last]->get_transMat(), 16 * sizeof(double)); + + my_icp6D->match(start, end); + + delete start; + delete end; + + // store ICP + double Pp0[16]; + memcpy(Pp0, allScans[last]->get_transMat(), 16 * sizeof(double)); + + //compute Delta + double Pf0[16], Pf0_inv[16], tmp1[16], tmp2[16], deltaf[16]; + memcpy(Pf0, allScans[first]->get_transMat(), 16 * sizeof(double)); + M4inv(Pf0, Pf0_inv); + + MMult(Pf0_inv, Pl0, tmp1); + M4inv(tmp1, tmp2); + MMult(Pp0, tmp2, tmp1); + MMult(Pf0_inv, tmp1, deltaf); + + double deltaT[3], deltaQ[4]; + Matrix4ToQuat(deltaf, deltaQ, deltaT); + + if(!quiet) { + double axisangle[4]; + axisangle[0] = deltaQ[0]; + axisangle[1] = deltaQ[1]; + axisangle[2] = deltaQ[2]; + axisangle[3] = deltaQ[3]; + QuatToAA(axisangle); + cout << "Delta: " << deltaT[0] << " " << deltaT[1] << " " << deltaT[2] << " " << axisangle[0] << " " << axisangle[1] << " " << axisangle[2] << " " << axisangle[3] << endl; + } + + //transform scans + double idQ[4] = {1, 0, 0, 0}, rPos[3], rPosQuat[4], delta0[16]; + + rPos[0] = deltaT[0] * weights[0][0]; + rPos[1] = deltaT[1] * weights[1][0]; + rPos[2] = deltaT[2] * weights[2][0]; + slerp(idQ, deltaQ, weights[3][0], rPosQuat); + QuatToMatrix4(rPosQuat, rPos, tmp1); + M4inv(tmp1, tmp2); + MMult(Pf0, tmp2, delta0); + +#ifdef _OPENMP +#pragma omp parallel for private(rPos, rPosQuat, tmp1, tmp2) +#endif + for(int i = 1; i < n; i++) { + if(i >= last - offset_last_start && i <= last + offset_last_end) { + MMult(delta0, Pf0_inv, tmp1); + } else { + rPos[0] = deltaT[0] * weights[0][i]; + rPos[1] = deltaT[1] * weights[1][i]; + rPos[2] = deltaT[2] * weights[2][i]; + slerp(idQ, deltaQ, weights[3][i], rPosQuat); + QuatToMatrix4(rPosQuat, rPos, tmp1); + MMult(delta0, tmp1, tmp2); + MMult(tmp2, Pf0_inv, tmp1); + } + allScans[i]->transform(tmp1, Scan::ELCH, i == n-1 ? 2 : 1); + } + + for(int i = 0; i < 4; i++) { + delete [] weights[i]; + } + +} diff --git a/.svn/pristine/5a/5a110ce034186e86c06d92f08aad92cd1242aaa5.svn-base b/.svn/pristine/5a/5a110ce034186e86c06d92f08aad92cd1242aaa5.svn-base new file mode 100644 index 0000000..749a908 --- /dev/null +++ b/.svn/pristine/5a/5a110ce034186e86c06d92f08aad92cd1242aaa5.svn-base @@ -0,0 +1,368 @@ +/* + * lap implementation + * + * Copyright (C) YuanJun, ZhangLiang, Li Wei, Li Ming, Andreas Nuechter, + * + * Released under the GPL version 3. + * + */ + +/** + * @file + * @brief + * + * @author Andreas Nuechter. Jacobs University Bremen, Germany + * @author YuanJun, Wuhan University, China + * @author ZhangLiang, Wuhan University, China + * @author Li Wei, Wuhan University, China + * @author Li Ming, Wuhan University, China + */ + +#include "veloslam/lap.h" + +cost lap(int dim, + cost **assigncost, + col *rowsol, + row *colsol, + cost *u, + cost *v) + + // input: + // dim - problem size + // assigncost - cost matrix + + // output: + // rowsol - column assigned to row in solution + // colsol - row assigned to column in solution + // u - dual variables, row reduction numbers + // v - dual variables, column reduction numbers + +{ + Boolean unassignedfound; + row i, imin, numfree = 0, prvnumfree, f, i0, k, freerow, *pred, *free; + col j, j1, j2, endofpath, last, low, up, *collist, *matches; + cost min, h, umin, usubmin, v2, *d; + + free = new row[dim]; // list of unassigned rows. + collist = new col[dim]; // list of columns to be scanned in various ways. + matches = new col[dim]; // counts how many times a row could be assigned. + d = new cost[dim]; // 'cost-distance' in augmenting path calculation. + pred = new row[dim]; // row-predecessor of column in augmenting/alternating path. + + // init how many times a row will be assigned in the column reduction. + for (i = 0; i < dim; i++) + matches[i] = 0; + + // COLUMN REDUCTION + for (j = dim-1; j >= 0; j--) // reverse order gives better results. + { + // find minimum cost over rows. + min = assigncost[0][j]; + imin = 0; + for (i = 1; i < dim; i++) + if (assigncost[i][j] < min) + { + min = assigncost[i][j]; + imin = i; + } + v[j] = min; + + if (++matches[imin] == 1) + { + // init assignment if minimum row assigned for first time. + rowsol[imin] = j; + colsol[j] = imin; + } + else + colsol[j] = -1; // row already assigned, column not assigned. + } + + // REDUCTION TRANSFER + for (i = 0; i < dim; i++) + if (matches[i] == 0) // fill list of unassigned 'free' rows. + free[numfree++] = i; + else + if (matches[i] == 1) // transfer reduction from rows that are assigned once. + { + j1 = rowsol[i]; + min = BIG; + for (j = 0; j < dim; j++) + if (j != j1) + if (assigncost[i][j] - v[j] < min) + min = assigncost[i][j] - v[j]; + v[j1] = v[j1] - min; + } + + // AUGMENTING ROW REDUCTION + int loopcnt = 0; // do-loop to be done twice. + do + { + loopcnt++; + + // scan all free rows. + // in some cases, a free row may be replaced with another one to be scanned next. + k = 0; + prvnumfree = numfree; + numfree = 0; // start list of rows still free after augmenting row reduction. + while (k < prvnumfree) + { + i = free[k]; + k++; + + // find minimum and second minimum reduced cost over columns. + umin = assigncost[i][0] - v[0]; + j1 = 0; + usubmin = BIG; + for (j = 1; j < dim; j++) + { + h = assigncost[i][j] - v[j]; + if (h < usubmin) + if (h >= umin) + { + usubmin = h; + j2 = j; + } + else + { + usubmin = umin; + umin = h; + j2 = j1; + j1 = j; + } + } + + i0 = colsol[j1]; + if (umin < usubmin) + // change the reduction of the minimum column to increase the minimum + // reduced cost in the row to the subminimum. + v[j1] = v[j1] - (usubmin - umin); + else // minimum and subminimum equal. + if (i0 >= 0) // minimum column j1 is assigned. + { + // swap columns j1 and j2, as j2 may be unassigned. + j1 = j2; + i0 = colsol[j2]; + } + + // (re-)assign i to j1, possibly de-assigning an i0. + rowsol[i] = j1; + colsol[j1] = i; + + if (i0 >= 0) // minimum column j1 assigned earlier. + if (umin < usubmin) + // put in current k, and go back to that k. + // continue augmenting path i - j1 with i0. + free[--k] = i0; + else + // no further augmenting reduction possible. + // store i0 in list of free rows for next phase. + free[numfree++] = i0; + } + } + while (loopcnt < 2); // repeat once. + + // AUGMENT SOLUTION for each free row. + for (f = 0; f < numfree; f++) + { + freerow = free[f]; // start row of augmenting path. + + // Dijkstra shortest path algorithm. + // runs until unassigned column added to shortest path tree. + for (j = 0; j < dim; j++) + { + d[j] = assigncost[freerow][j] - v[j]; + pred[j] = freerow; + collist[j] = j; // init column list. + } + + low = 0; // columns in 0..low-1 are ready, now none. + up = 0; // columns in low..up-1 are to be scanned for current minimum, now none. + // columns in up..dim-1 are to be considered later to find new minimum, + // at this stage the list simply contains all columns + unassignedfound = FALSE; + do + { + if (up == low) // no more columns to be scanned for current minimum. + { + last = low - 1; + + // scan columns for up..dim-1 to find all indices for which new minimum occurs. + // store these indices between low..up-1 (increasing up). + min = d[collist[up++]]; + for (k = up; k < dim; k++) + { + j = collist[k]; + h = d[j]; + if (h <= min) + { + if (h < min) // new minimum. + { + up = low; // restart list at index low. + min = h; + } + // new index with same minimum, put on undex up, and extend list. + collist[k] = collist[up]; + collist[up++] = j; + } + } + + // check if any of the minimum columns happens to be unassigned. + // if so, we have an augmenting path right away. + for (k = low; k < up; k++) + if (colsol[collist[k]] < 0) + { + endofpath = collist[k]; + unassignedfound = TRUE; + break; + } + } + + if (!unassignedfound) + { + // update 'distances' between freerow and all unscanned columns, via next scanned column. + j1 = collist[low]; + low++; + i = colsol[j1]; + h = assigncost[i][j1] - v[j1] - min; + + for (k = up; k < dim; k++) + { + j = collist[k]; + v2 = assigncost[i][j] - v[j] - h; + if (v2 < d[j]) + { + pred[j] = i; + if (v2 == min) // new column found at same minimum value + if (colsol[j] < 0) + { + // if unassigned, shortest augmenting path is complete. + endofpath = j; + unassignedfound = TRUE; + break; + } + // else add to list to be scanned right away. + else + { + collist[k] = collist[up]; + collist[up++] = j; + } + d[j] = v2; + } + } + } + } + while (!unassignedfound); + + // update column prices. + for (k = 0; k <= last; k++) + { + j1 = collist[k]; + v[j1] = v[j1] + d[j1] - min; + } + + // reset row and column assignments along the alternating path. + do + { + i = pred[endofpath]; + colsol[endofpath] = i; + j1 = endofpath; + endofpath = rowsol[i]; + rowsol[i] = j1; + } + while (i != freerow); + } + + // calculate optimal cost. + cost lapcost = 0; + for (i = 0; i < dim; i++) + { + j = rowsol[i]; + u[i] = assigncost[i][j] - v[j]; + lapcost = lapcost + assigncost[i][j]; + } + + // free reserved memory. + delete[] pred; + delete[] free; + delete[] collist; + delete[] matches; + delete[] d; + + return lapcost; +} + +void checklap(int dim, + cost **assigncost, + col *rowsol, + row *colsol, + cost *u, + cost *v) +{ + row i; + col j; + cost lapcost = 0, redcost = 0; + Boolean *matched; + char wait; + + matched = new Boolean[dim]; + + for (i = 0; i < dim; i++) + for (j = 0; j < dim; j++) + if ((redcost = assigncost[i][j] - u[i] - v[j]) < 0) + { + printf("\n"); + printf("negative reduced cost i %d j %d redcost %d\n", i, j, redcost); + printf("\n\ndim %5d - press key\n", dim); + scanf("%d", &wait); + break; + } + + for (i = 0; i < dim; i++) + if ((redcost = assigncost[i][rowsol[i]] - u[i] - v[rowsol[i]]) != 0) + { + printf("\n"); + printf("non-null reduced cost i %d soli %d redcost %d\n", i, rowsol[i], redcost); + printf("\n\ndim %5d - press key\n", dim); + scanf("%d", &wait); + break; + } + + for (j = 0; j < dim; j++) + matched[j] = FALSE; + + for (i = 0; i < dim; i++) + if (matched[rowsol[i]]) + { + printf("\n"); + printf("column matched more than once - i %d soli %d\n", i, rowsol[i]); + printf("\n\ndim %5d - press key\n", dim); + scanf("%d", &wait); + break; + } + else + matched[rowsol[i]] = TRUE; + + + for (i = 0; i < dim; i++) + if (colsol[rowsol[i]] != i) + { + printf("\n"); + printf("error in row solution i %d soli %d solsoli %d\n", i, rowsol[i], colsol[rowsol[i]]); + printf("\n\ndim %5d - press key\n", dim); + scanf("%d", &wait); + break; + } + + for (j = 0; j < dim; j++) + if (rowsol[colsol[j]] != j) + { + printf("\n"); + printf("error in col solution j %d solj %d solsolj %d\n", j, colsol[j], rowsol[colsol[j]]); + printf("\n\ndim %5d - press key\n", dim); + scanf("%d", &wait); + break; + } + + delete[] matched; + return; +} diff --git a/.svn/pristine/5a/5a681fb2d109cfa004a8a17f407531b2e7deb3d8.svn-base b/.svn/pristine/5a/5a681fb2d109cfa004a8a17f407531b2e7deb3d8.svn-base new file mode 100644 index 0000000..133f7c2 --- /dev/null +++ b/.svn/pristine/5a/5a681fb2d109cfa004a8a17f407531b2e7deb3d8.svn-base @@ -0,0 +1,94 @@ +/** @file + * @brief Representation of the optimized k-d tree. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Thomas Escher + */ + +#ifndef __KD_H__ +#define __KD_H__ + +#include "slam6d/kdparams.h" +#include "slam6d/searchTree.h" + +#ifdef _MSC_VER +#if !defined _OPENMP && defined OPENMP +#define _OPENMP +#endif +#endif + +#ifdef _OPENMP +#include +#endif + +/** + * @brief The optimized k-d tree. + * + * A kD tree for points, with limited + * capabilities (find nearest point to + * a given point, or to a ray). + **/ +class KDtree : public SearchTree { +public: + KDtree(double **pts, int n); + + virtual ~KDtree(); + + virtual double *FindClosest(double *_p, double maxdist2, int threadNum = 0) const; + +protected: + /** + * storing the parameters of the k-d tree, i.e., the current closest point, + * the distance to the current closest point and the point itself. + * These global variable are needed in this search. + * + * Padded in the parallel case. + */ +#ifdef _OPENMP +#ifdef __INTEL_COMPILER + __declspec (align(16)) static KDParams params[MAX_OPENMP_NUM_THREADS]; +#else + static KDParams params[MAX_OPENMP_NUM_THREADS]; +#endif //__INTEL_COMPILER +#else + static KDParams params[MAX_OPENMP_NUM_THREADS]; +#endif + + /** + * number of points. If this is 0: intermediate node. If nonzero: leaf. + */ + int npts; + + /** + * Cue the standard rant about anon unions but not structs in C++ + */ + union { + /** + * in case of internal node... + */ + struct { + double center[3]; ///< storing the center of the voxel (R^3) + double dx, ///< defining the voxel itself + dy, ///< defining the voxel itself + dz, ///< defining the voxel itself + r2; ///< defining the voxel itself + int splitaxis; ///< defining the kind of splitaxis + KDtree *child1; ///< pointers to the childs + KDtree *child2; ///< pointers to the childs + } node; + /** + * in case of leaf node ... + */ + struct { + /** + * store the value itself + * Here we store just a pointer to the data + */ + double **p; + } leaf; + }; + + void _FindClosest(int threadNum) const; +}; + +#endif diff --git a/.svn/pristine/5a/5a6dc29493e9507e979fada75647bbe0d3fa10b4.svn-base b/.svn/pristine/5a/5a6dc29493e9507e979fada75647bbe0d3fa10b4.svn-base new file mode 100644 index 0000000..06d6282 Binary files /dev/null and b/.svn/pristine/5a/5a6dc29493e9507e979fada75647bbe0d3fa10b4.svn-base differ diff --git a/.svn/pristine/5a/5aa77389e036f11e2cf192f2084f6636ae805b64.svn-base b/.svn/pristine/5a/5aa77389e036f11e2cf192f2084f6636ae805b64.svn-base new file mode 100644 index 0000000..d2861e9 --- /dev/null +++ b/.svn/pristine/5a/5aa77389e036f11e2cf192f2084f6636ae805b64.svn-base @@ -0,0 +1,55 @@ +BUGS + +Reporting +--------- +Please do not hesitate to report bugs, and if possible their fixes! If you +send an example file, please make sure it's small. To report bugs, do one +of the following: + +* go to http://sourceforge.net/bugs/?func=addbug&group_id=7147. + This is the preferred way to report bugs. + +* send it to one of the authors. Note that sometimes we may be busy, and +we won't reply it for days. If you post using the previous method, surely +one of the authors will read it. + +* use + diff -ru gocr_origin/ gocr_changed/ >patch + to create patches + +* if you have compiling problems, do not forget to send your configure-output + and the config.log file + + +Known bugs (see jocr.SF.net page too) +---------- + +v0.48 cutting of double melted chars will fail (example: serif MN) +v0.43 on dithered images gocr runs extremely long (seems to hang) +v0.41 linker error using g++ and netpbm under SuSE-9.3 +v0.3.5 + - segfault on some systems which do not support ifalpha(256+x) + - hexcode not read from database +v0.2.5 german umlauts and i-dots are not handled correctly + problems high resolution fonts +v0.2.4 I guess, there are still bugs. + Some systems do not handle stack in good manner (AmigaOS?). + gocr does extensively consume stack for recursive functions. + Therefore you can get memory protection failures or strange results. + The worst case is a huge black area. If that is a problem for you + request for changing it. + --- --- --- --- only for linux freaks --- --- --- + By mistake I programmed an endless rekursiv function and ... + SuSE6.4+linux2.2.12/13 got several "out of mem" and system CRASHED!!! + ulimit: stack=unlimited + - if text is framed, frame should be ignored, but it is not +v0.2.3 still problems with segmentation + - gcc 2.95.2 (SuSE6.4) error in load_db(), => fixed (thx to jasper) +v0.2.1 + - some people have problems running gocr on DOS/Win95 + I guess: stack overflow. Is someone able to analyze or fix this? + - large black areas on pbm-files cause a segfault on + Ultra/Sparc (64bit) machines running Linux (2.1.126). + There is a recursive function in the program which causes a + stack overflow, which is not detected by the linux-kernel (BUG?). + I look for a better solution. diff --git a/.svn/pristine/5a/5abf6fd2cd607c8a7607994133ee2d83222b24e4.svn-base b/.svn/pristine/5a/5abf6fd2cd607c8a7607994133ee2d83222b24e4.svn-base new file mode 100644 index 0000000..be1e651 --- /dev/null +++ b/.svn/pristine/5a/5abf6fd2cd607c8a7607994133ee2d83222b24e4.svn-base @@ -0,0 +1,100 @@ +/* + * ConfigFileHough implementation + * + * Copyright (C) Dorit Borrmann + * + * Released under the GPL version 3. + * + */ + +#include "shapes/ConfigFileHough.h" +#include +#include +#include "shapes/parascan.h" +#include + +using namespace std; + +ConfigFileHough::ConfigFileHough() { + + strcpy(CfgFileName, DEF_CfgFileName); + MaxDist = DEF_MaxDist; + MinDist = DEF_MinDist; + AccumulatorMax = DEF_AccumulatorMax; + MinSizeAllPoints = DEF_MinSizeAllPoints; + RhoNum = DEF_RhoNum; + ThetaNum = DEF_ThetaNum; + PhiNum = DEF_PhiNum; + RhoMax = DEF_RhoMax; + MaxPointPlaneDist = DEF_MaxPointPlaneDist; + MaxPlanes = DEF_MaxPlanes; + MinPlaneSize = DEF_MinPlaneSize; + MinPlanarity = DEF_MinPlanarity; + PlaneRatio = DEF_PlaneRatio; + PointDist = DEF_PointDist; + PeakWindow = DEF_PeakWindow; + WindowSize = DEF_WindowSize; + TrashMax = DEF_TrashMax; + AccumulatorType = DEF_AccumulatorType; + strcpy(PlaneDir, DEF_PlaneDir); + +} + +void ConfigFileHough::ShowConfiguration() { + cout << "MaxDist " << Get_MaxDist() << endl; + cout << "MinDist " << Get_MinDist() << endl; + cout << "AccumulatorMax " << Get_AccumulatorMax() << endl; + cout << "MinSizeAllPoints " << Get_MinSizeAllPoints() << endl; + cout << "RhoNum " << Get_RhoNum() << endl; + cout << "ThetaNum " << Get_ThetaNum() << endl; + cout << "PhiNum " << Get_PhiNum() << endl; + cout << "RhoMax " << Get_RhoMax() << endl; + cout << "MaxPointPlaneDist " << Get_MaxPointPlaneDist() << endl; + cout << "MaxPlanes " << Get_MaxPlanes() << endl; + cout << "MinPlaneSize " << Get_MinPlaneSize() << endl; + cout << "MinPlanarity " << Get_MinPlanarity() << endl; + cout << "PlaneRatio " << Get_PlaneRatio() << endl; + cout << "PointDist " << Get_PointDist() << endl; + cout << "PeakWindow " << Get_PeakWindow() << endl; + cout << "WindowSize " << Get_WindowSize() << endl; + cout << "TrashMax " << Get_TrashMax() << endl; + cout << "AccumulatorType " << Get_AccumulatorType() << endl; + cout << "PlaneDir " << Get_PlaneDir() << endl; +} + +unsigned int ConfigFileHough::LoadCfg(const char* CfgFile) { + + FILE *Cfg; + + /* Opens the configuration file */ + if ((Cfg = fopen(CfgFile, "r")) == NULL) { + printf("Could not open configuration file '%s'\n", CfgFile); + return 0; + } + + + MaxDist = paramtr_scan_double(Cfg, "MaxDist", DEF_MaxDist); + MinDist = paramtr_scan_double(Cfg, "MinDist", DEF_MinDist); + AccumulatorMax = paramtr_scan_int(Cfg, "AccumulatorMax", DEF_AccumulatorMax); + MinSizeAllPoints = paramtr_scan_int(Cfg, "MinSizeAllPoints", DEF_MinSizeAllPoints); + RhoNum = paramtr_scan_int(Cfg, "RhoNum", DEF_RhoNum); + ThetaNum = paramtr_scan_int(Cfg, "ThetaNum", DEF_ThetaNum); + PhiNum = paramtr_scan_int(Cfg, "PhiNum", DEF_PhiNum); + RhoMax = paramtr_scan_int(Cfg, "RhoMax", DEF_RhoMax); + MaxPlanes = paramtr_scan_int(Cfg, "MaxPlanes", DEF_MaxPlanes); + MinPlaneSize = paramtr_scan_int(Cfg, "MinPlaneSize", DEF_MinPlaneSize); + MinPlanarity = paramtr_scan_double(Cfg, "MinPlanarity", DEF_MinPlanarity); + PlaneRatio = paramtr_scan_double(Cfg, "PlaneRatio", DEF_PlaneRatio); + MaxPointPlaneDist = paramtr_scan_double(Cfg, "MaxPointPlaneDist", DEF_MaxPointPlaneDist); + PeakWindow = paramtr_scan_int(Cfg, "PeakWindow", DEF_PeakWindow); + WindowSize = paramtr_scan_int(Cfg, "WindowSize", DEF_WindowSize); + TrashMax = paramtr_scan_int(Cfg, "TrashMax", DEF_TrashMax); + PointDist = paramtr_scan_double(Cfg, "PointDist", DEF_PointDist); + + AccumulatorType = paramtr_scan_int(Cfg, "AccumulatorType", DEF_AccumulatorType); + paramtr_scan_str(Cfg, "PlaneDir", PlaneDir); + + fclose(Cfg); + return 1; + +} diff --git a/.svn/pristine/5b/5b85f12e4c65636a6bd2b4c7244511372d1e15d7.svn-base b/.svn/pristine/5b/5b85f12e4c65636a6bd2b4c7244511372d1e15d7.svn-base new file mode 100644 index 0000000..0644d17 --- /dev/null +++ b/.svn/pristine/5b/5b85f12e4c65636a6bd2b4c7244511372d1e15d7.svn-base @@ -0,0 +1,87 @@ +#----------------------------------------------------------------------------- +# Makefile for ann2fig +# +# ANN: Approximate Nearest Neighbors +# Version: 1.1.1 08/04/06 +#----------------------------------------------------------------------------- +# Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +# David Mount. All Rights Reserved. +# +# This software and related documentation is part of the Approximate +# Nearest Neighbor Library (ANN). This software is provided under +# the provisions of the Lesser GNU Public License (LGPL). See the +# file ../ReadMe.txt for further information. +# +# The University of Maryland (U.M.) and the authors make no +# representations about the suitability or fitness of this software for +# any purpose. It is provided "as is" without express or implied +# warranty. +#----------------------------------------------------------------------------- +# Revision 0.1 03/04/98 +# Initial release +# Revision 1.1.1 08/04/06 +# Added copyright/license +#----------------------------------------------------------------------------- + +#----------------------------------------------------------------------------- +# Basic definitions +# BASEDIR where include, src, lib, ... are +# INCDIR include directory +# LIBDIR library directory +# BINDIR bin directory +# LDFLAGS loader flags +# ANNLIB ANN library +# OTHERLIB other libraries +#----------------------------------------------------------------------------- + +BASEDIR = .. +INCDIR = $(BASEDIR)/include +LIBDIR = $(BASEDIR)/lib +BINDIR = $(BASEDIR)/bin +LDFLAGS = -L$(LIBDIR) +ANNLIBS = -lANN +OTHERLIBS = -lm + +#----------------------------------------------------------------------------- +# Some more definitions +# ANN2FIG name of executable +#----------------------------------------------------------------------------- + +ANN2FIG = ann2fig +SOURCES = ann2fig.cpp +OBJECTS = $(SOURCES:.cpp=.o) + +#----------------------------------------------------------------------------- +# Make the program +#----------------------------------------------------------------------------- + +default: + @echo "Specify a target configuration" + +targets: $(BINDIR)/$(ANN2FIG) + +$(BINDIR)/$(ANN2FIG): $(OBJECTS) + $(C++) $(OBJECTS) -o $(ANN2FIG) $(LDFLAGS) $(ANNLIBS) $(OTHERLIBS) + mv $(ANN2FIG) $(BINDIR) + +#----------------------------------------------------------------------------- +# configuration definitions +#----------------------------------------------------------------------------- + +include ../Make-config + +#----------------------------------------------------------------------------- +# Objects +#----------------------------------------------------------------------------- + +ann2fig.o: ann2fig.cpp + $(C++) -c -I$(INCDIR) ann2fig.cpp + +#----------------------------------------------------------------------------- +# Cleaning +#----------------------------------------------------------------------------- + +clean: + -rm -f *.o core + +realclean: clean diff --git a/.svn/pristine/5c/5c0a6b3cc1d208e8fc4b49cf1ab9fa37c438f828.svn-base b/.svn/pristine/5c/5c0a6b3cc1d208e8fc4b49cf1ab9fa37c438f828.svn-base new file mode 100644 index 0000000..4fc43e8 --- /dev/null +++ b/.svn/pristine/5c/5c0a6b3cc1d208e8fc4b49cf1ab9fa37c438f828.svn-base @@ -0,0 +1,123 @@ +//$$jacobi.cpp jacobi eigenvalue analysis + +// Copyright (C) 1991,2,3,4: R B Davies + + +//#define WANT_STREAM + + +#define WANT_MATH + +#include "include.h" +#include "newmatap.h" +#include "precisio.h" +#include "newmatrm.h" + +#ifdef use_namespace +namespace NEWMAT { +#endif + +#ifdef DO_REPORT +#define REPORT { static ExeCounter ExeCount(__LINE__,18); ++ExeCount; } +#else +#define REPORT {} +#endif + + +void Jacobi(const SymmetricMatrix& X, DiagonalMatrix& D, SymmetricMatrix& A, + Matrix& V, bool eivec) +{ + Real epsilon = FloatingPointPrecision::Epsilon(); + Tracer et("Jacobi"); + REPORT + int n = X.Nrows(); DiagonalMatrix B(n), Z(n); D.ReSize(n); A = X; + if (eivec) { REPORT V.ReSize(n,n); D = 1.0; V = D; } + B << A; D = B; Z = 0.0; A.Inject(Z); + bool converged = false; + for (int i=1; i<=50; i++) + { + Real sm=0.0; Real* a = A.Store(); int p = A.Storage(); + while (p--) sm += fabs(*a++); // have previously zeroed diags + if (sm==0.0) { REPORT converged = true; break; } + Real tresh = (i<4) ? 0.2 * sm / square(n) : 0.0; a = A.Store(); + for (p = 0; p < n; p++) + { + Real* ap1 = a + (p*(p+1))/2; + Real& zp = Z.element(p); Real& dp = D.element(p); + for (int q = p+1; q < n; q++) + { + Real* ap = ap1; Real* aq = a + (q*(q+1))/2; + Real& zq = Z.element(q); Real& dq = D.element(q); + Real& apq = A.element(q,p); + Real g = 100 * fabs(apq); Real adp = fabs(dp); Real adq = fabs(dq); + + if (i>4 && g < epsilon*adp && g < epsilon*adq) { REPORT apq = 0.0; } + else if (fabs(apq) > tresh) + { + REPORT + Real t; Real h = dq - dp; Real ah = fabs(h); + if (g < epsilon*ah) { REPORT t = apq / h; } + else + { + REPORT + Real theta = 0.5 * h / apq; + t = 1.0 / ( fabs(theta) + sqrt(1.0 + square(theta)) ); + if (theta<0.0) { REPORT t = -t; } + } + Real c = 1.0 / sqrt(1.0 + square(t)); Real s = t * c; + Real tau = s / (1.0 + c); h = t * apq; + zp -= h; zq += h; dp -= h; dq += h; apq = 0.0; + int j = p; + while (j--) + { + g = *ap; h = *aq; + *ap++ = g-s*(h+g*tau); *aq++ = h+s*(g-h*tau); + } + int ip = p+1; j = q-ip; ap += ip++; aq++; + while (j--) + { + g = *ap; h = *aq; + *ap = g-s*(h+g*tau); *aq++ = h+s*(g-h*tau); + ap += ip++; + } + if (q < n-1) // last loop is non-empty + { + int iq = q+1; j = n-iq; ap += ip++; aq += iq++; + for (;;) + { + g = *ap; h = *aq; + *ap = g-s*(h+g*tau); *aq = h+s*(g-h*tau); + if (!(--j)) break; + ap += ip++; aq += iq++; + } + } + if (eivec) + { + REPORT + RectMatrixCol VP(V,p); RectMatrixCol VQ(V,q); + Rotate(VP, VQ, tau, s); + } + } + } + } + B = B + Z; D = B; Z = 0.0; + } + if (!converged) Throw(ConvergenceException(X)); + if (eivec) SortSV(D, V, true); + else SortAscending(D); +} + +void Jacobi(const SymmetricMatrix& X, DiagonalMatrix& D) +{ REPORT SymmetricMatrix A; Matrix V; Jacobi(X,D,A,V,false); } + +void Jacobi(const SymmetricMatrix& X, DiagonalMatrix& D, SymmetricMatrix& A) +{ REPORT Matrix V; Jacobi(X,D,A,V,false); } + +void Jacobi(const SymmetricMatrix& X, DiagonalMatrix& D, Matrix& V) +{ REPORT SymmetricMatrix A; Jacobi(X,D,A,V,true); } + + +#ifdef use_namespace +} +#endif + diff --git a/.svn/pristine/5c/5c0c86ed5a252257c3c631c58d08babfa83e9e66.svn-base b/.svn/pristine/5c/5c0c86ed5a252257c3c631c58d08babfa83e9e66.svn-base new file mode 100644 index 0000000..f0d96ac --- /dev/null +++ b/.svn/pristine/5c/5c0c86ed5a252257c3c631c58d08babfa83e9e66.svn-base @@ -0,0 +1,1219 @@ +/**************************************************************************** + + GLUI User Interface Toolkit + --------------------------- + + glui_control.cpp - top-level GLUI_Control class + + + -------------------------------------------------- + + Copyright (c) 1998 Paul Rademacher + + This program is freely distributable without licensing fees and is + provided without guarantee or warrantee expressed or implied. This + program is -not- in the public domain. + +*****************************************************************************/ + +#include "glui.h" +#include "stdinc.h" + +int _glui_draw_border_only = 0; + + +/**************************************** GLUI_Control::align() **************/ + +void GLUI_Control::align( void ) +{ + int col_x, col_y, col_w, col_h, col_x_off, col_y_off; + int orig_x_abs; + + orig_x_abs = x_abs; + + /* Fix alignment bug relating to columns */ + /*return; */ + + if ( NOT parent() ) + return; /* Clearly this shouldn't happen, though */ + + get_this_column_dims(&col_x, &col_y, &col_w, &col_h, + &col_x_off, &col_y_off); + + if ( type == GLUI_CONTROL_COLUMN ) { + /* if ( this->prev() != NULL ) { + ((GLUI_Control*)prev())->get_this_column_dims(&col_x, &col_y, &col_w, &col_h, + &col_x_off, &col_y_off); + + x_abs = col_x + col_w; + } + else { + x_abs = ((GLUI_Control*)parent())->x_abs; + } + */ + return; + } + + if ( alignment == GLUI_ALIGN_LEFT ) { + x_abs = col_x + col_x_off; + } + else if ( alignment == GLUI_ALIGN_RIGHT ) { + x_abs = col_x + col_w - col_x_off - this->w; + } + else if ( alignment == GLUI_ALIGN_CENTER ) { + x_abs = col_x + (col_w - this->w) / 2; + } + + if ( this->is_container ) { + /*** Shift all child columns ***/ + int delta = x_abs - orig_x_abs; + + GLUI_Control *node; + + node = (GLUI_Control*) this->first_child(); + while( node != NULL ) { + if ( node->type == GLUI_CONTROL_COLUMN ) { + node->x_abs += delta; + } + + node = (GLUI_Control*) node->next(); + } + } + +} + + +/**************************************** GLUI_Control::pack() ************/ +/* Recalculate positions and offsets */ + +void GLUI_Control::pack_old( int x, int y ) +{ + GLUI_Control *node; + int max_w, curr_y, curr_x, max_y; + int x_in = x, y_in =y; + int x_margin, y_margin_top, y_margin_bot; + int y_top_column; + int column_x; + GLUI_Column *curr_column = NULL; + this->update_size(); + x_margin = this->x_off; + y_margin_top = this->y_off_top; + y_margin_bot = this->y_off_bot; + this->x_abs = x_in; + this->y_abs = y_in; + max_w = -1; + max_y = -1; + curr_x = this->x_abs + x_margin; + curr_y = this->y_abs + y_margin_top; + /*** Record start of this set of columns ***/ + y_top_column = curr_y; + column_x = 0; + if ( this == glui->main_panel ) { + x=x; + } + /*** Iterate over children, packing them first ***/ + node = (GLUI_Control*) this->first_child(); + while( node != NULL ) { + if ( node->type == GLUI_CONTROL_PANEL ) { /* Pad some space above panels */ + curr_y += GLUI_ITEMSPACING; + } + else if ( node->type == GLUI_CONTROL_COLUMN ) { + curr_column = (GLUI_Column*) node; + if ( 1 ) { + column_x += max_w + 2 * x_margin; + curr_x += max_w + 2 * x_margin; + } + else { + column_x += max_w + 0 * x_margin; + curr_x += max_w + 0 * x_margin; + } + /*node->pack( curr_x, curr_y ); */ + node->x_abs = curr_x; + node->y_abs = y_top_column; + node->w = 2; + node->h = curr_y - y_top_column; + curr_x += x_margin * 3 + 40; + curr_y = y_top_column; + max_w = 0; + node = (GLUI_Control*) node->next(); + continue; + } + node->pack( curr_x, curr_y ); + if ( node->type == GLUI_CONTROL_PANEL ) /* Pad some space below panels */ + curr_y += GLUI_ITEMSPACING; + curr_y += node->h; + if ( node->w > max_w ) { + max_w = node->w; + if ( curr_column != NULL ) + curr_column->w = max_w; + } + node = (GLUI_Control*) node->next(); + if ( node ) { + curr_y += GLUI_ITEMSPACING; + } + if ( curr_y > max_y ) + max_y = curr_y; + } + if ( this->is_container ) { + max_y += y_margin_bot; /*** Add bottom border inside box */ + if ( this->first_child() ) { + if ( this->type == GLUI_CONTROL_ROLLOUT ) { + /** We don't want the rollout to shrink in width when it's + closed **/ + this->w = MAX(this->w, column_x + max_w + 2 * x_margin ); + } + else { + this->w = column_x + max_w + 2 * x_margin; + } + this->h = (max_y - y_in); + } + else { /* An empty container, so just assign default w & h */ + this->w = GLUI_DEFAULT_CONTROL_WIDTH; + this->h = GLUI_DEFAULT_CONTROL_HEIGHT; + } + /** Expand panel if necessary (e.g., to include all the text in + a panel label) **/ + this->update_size(); + } +} + + +/********************************* GLUT_Control::draw_recursive() **********/ + +void GLUI_Control::draw_recursive( int x, int y ) +{ + GLUI_Control *node; + + /* printf( "%s %d\n", this->name.string, this->hidden );*/ + if ( NOT can_draw() ) + return; + + /*if ( 1 ) { -- Debugging to check control width + glColor3f( 1.0, 0.0, 0.0 ); + glBegin( GL_LINES ); + glVertex2i( x_abs, y_abs );00 + glVertex2i( x_abs+w, y_abs ); + + glEnd(); + }*/ + + glMatrixMode( GL_MODELVIEW ); + glPushMatrix(); + + glTranslatef( (float) this->x_abs + .5, + (float) this->y_abs + .5, + 0.0 ); + + if ( NOT _glui_draw_border_only ) { + if ( NOT strcmp( name.string, "Rollout" ) ) { + } + + this->draw( this->x_off, this->y_off_top ); + } + else + { + if ( this->type == GLUI_CONTROL_COLUMN ) { + /* printf( "%s w/h: %d/%d\n", (char*) name, w, h ); */ + /*w = 2; */ + } + + /* The following draws the area of each control */ + glColor3f( 1.0, 0.0, 0.0 ); + glBegin( GL_LINE_LOOP ); + glVertex2i( 0, 0 ); glVertex2i( w, 0 ); + glVertex2i( w, h ); glVertex2i( 0, h ); + glEnd(); + } + glPopMatrix(); + + node = (GLUI_Control*) first_child(); + while( node ) { + node->draw_recursive( node->x_abs, node->y_abs ); + node = (GLUI_Control*) node->next(); + } +} + + +/******************************** GLUI_Control::set_to_glut_window() *********/ +/* Sets the current window to the glut window associated with this control */ + +int GLUI_Control::set_to_glut_window( void ) +{ + int orig_window; + + if ( NOT glui) + return 1; + + orig_window = glutGetWindow(); + + glutSetWindow( glui->get_glut_window_id()); + glDrawBuffer( GL_FRONT ); + + return orig_window; +} + + +/************************************ GLUI_Control::restore_window() *********/ + +void GLUI_Control::restore_window( int orig ) +{ + if ( orig > 0 ) + glutSetWindow( orig ); +} + + +/************************************* GLUI_Control::enable() ****************/ + +void GLUI_Control::enable( void ) +{ + GLUI_Control *node; + + enabled = true; + + if ( NOT glui ) + return; + + translate_and_draw_front(); + + /*** Now recursively enable all buttons below it ***/ + node = (GLUI_Control*) first_child(); + while(node) { + node->enable(); + node = (GLUI_Control*) node->next(); + } +} + + +/************************************ GLUI_Control::disable() ****************/ + +void GLUI_Control::disable( void ) +{ + GLUI_Control *node; + + enabled = false; + + if ( NOT glui ) + return; + + if ( glui->active_control == this ) + glui->disactivate_current_control(); + + translate_and_draw_front(); + + /*** Now recursively disable all buttons below it ***/ + node = (GLUI_Control*) first_child(); + while(node) { + node->disable(); + node = (GLUI_Control*) node->next(); + } +} + + +/***************************************** GLUI_Control::set_font() **********/ + +void GLUI_Control::set_font( void *new_font ) +{ + int orig, state; + + font = new_font; + + /** Now redraw **/ + if ( NOT glui ) + return; + + orig = set_to_glut_window(); + state = glui->set_front_draw_buffer(); + glMatrixMode( GL_MODELVIEW ); + glPushMatrix(); + translate_to_origin(); + glDisable( GL_CULL_FACE ); + set_to_bkgd_color(); + glBegin( GL_QUADS ); + glVertex2i( 0,0 ); glVertex2i( w,0 ); + glVertex2i( w,h ); glVertex2i( 0,h ); + glEnd(); + glPopMatrix(); + glui->restore_draw_buffer(state); + restore_window(orig); + + translate_and_draw_front(); +} + + +/************************************ GLUI_Control::draw_string() ************/ + +void GLUI_Control::draw_string( char *text ) +{ + _glutBitmapString( get_font(), text ); +} + + +/****************************************** GLUI_Control::draw_char() ********/ + +void GLUI_Control::draw_char( char c ) +{ + glutBitmapCharacter( get_font(), c ); +} + + +/************************************* GLUI_Control::string_width() **********/ + +int GLUI_Control::string_width( char *text ) +{ + return _glutBitmapWidthString( get_font(), text ); +} + + +/*************************************** GLUI_Control::char_width() **********/ + +int GLUI_Control::char_width( char c ) +{ + return glutBitmapWidth( get_font(), c ); +} + + +/***************************************** GLUI_Control::get_font() **********/ + +void *GLUI_Control::get_font( void ) +{ + /*** Does this control have its own font? ***/ + if ( this->font != NULL ) + return this->font; + + /*** Does the parent glui have a font? ***/ + if ( glui ) + return glui->font; + + /*** Return the default font ***/ + return GLUT_BITMAP_HELVETICA_12; +} + + +/*************************************** GLUI_Control::draw_name() ***********/ +/* This draws the name of the control as either black (if enabled), or */ +/* embossed if disabled. */ + +void GLUI_Control::draw_name( int x, int y ) +{ + if ( NOT can_draw() ) + return; + + if ( enabled ) { + set_to_bkgd_color(); + glRasterPos2i(x+1, y+1); + draw_string(name); + glColor3b( 0, 0, 0 ); + glRasterPos2i(x, y); + draw_string(name); + } + else { /* Control is disabled - emboss the string */ + glColor3f( 1.0f, 1.0f, 1.0f ); + glRasterPos2i(x+1, y+1); + draw_string(name); + glColor3f( .4f, .4f, .4f ); + glRasterPos2i(x, y); + draw_string(name); + } +} + + +/*************************** GLUI_Control::translate_and_draw_front() ********/ + +void GLUI_Control::translate_and_draw_front( void ) +{ + int orig,state; + + if ( NOT can_draw() ) + return; + + orig = set_to_glut_window(); + state = glui->set_front_draw_buffer(); + glMatrixMode( GL_MODELVIEW ); + glPushMatrix(); + translate_to_origin(); + draw(0,0); + glPopMatrix(); + glui->restore_draw_buffer(state); + restore_window(orig); +} + + +/**************************************** GLUI_Control::set_w() **************/ + +void GLUI_Control::set_w( int new_w ) +{ + w = new_w; + update_size(); /* Make sure control is big enough to fit text */ + + if ( NOT glui ) + return; + + glui->pack_controls(); + + if ( glui->get_glut_window_id() != -1 ) { + int orig = set_to_glut_window(); + glutReshapeWindow( glui->main_panel->w, glui->main_panel->h ); + glutPostRedisplay(); + /* printf( "Requesting a reshape to window %d: %d %d\n", + glutGetWindow(), + glui->main_panel->w, glui->main_panel->h );*/ + restore_window(orig); + } +} + + +/**************************************** GLUI_Control::set_h() **************/ + +void GLUI_Control::set_h( int new_h ) +{ + h = new_h; + update_size(); /* Make sure control is big enough to fit text */ + + if ( NOT glui ) + return; + + glui->pack_controls(); + + if ( glui->get_glut_window_id() != -1 ) { + int orig = set_to_glut_window(); + glutReshapeWindow( glui->main_panel->w, glui->main_panel->h ); + glutPostRedisplay(); + restore_window(orig); + } +} + + +/**************************************** GLUI_Control::set_alignment() ******/ + +void GLUI_Control::set_alignment( int new_align ) +{ + alignment = new_align; + + if ( glui ) { + glui->align_controls( this ); + + if ( glui->get_glut_window_id() != -1 ) { + int orig = set_to_glut_window(); + glutPostRedisplay(); + restore_window(orig); + } + } +} + + +/************************************* GLUI_Control::sync_live() ************/ +/* Reads live variable and sets control to its current value */ +/* This function is recursive, and operates on control's children */ + +void GLUI_Control::sync_live( int recurse, int draw_it ) +{ + GLUI_Node *node; + int sync_it=true; + int i; + float *fp; + int changed = false; + + /*** If this is currently active control, and mouse button is down, + don't sync ***/ + if ( glui ) { + if ( this == glui->active_control AND glui->mouse_button_down ) + sync_it = false; + + /*** Actually, just disable syncing if button is down ***/ + /*** Nope, go ahead and sync if mouse is down - this allows syncing in + callbacks ***/ + if ( 0 ) { /* THIS CODE BELOW SHOULD NOT BE EXECUTED */ + if ( glui->mouse_button_down ) { + /* printf( "Can't sync\n" ); */ + return; + } + } + } + + /*** If this control has a live variable, we check its current value + against the stored value in the control ***/ + + if ( ptr_val != NULL ) { + if ( live_type == GLUI_LIVE_NONE OR NOT sync_it ) { + } + else if ( live_type == GLUI_LIVE_INT ) { + if ( *((int*)ptr_val) != last_live_int ) { + set_int_val( *((int*)ptr_val) ); + last_live_int = *((int*)ptr_val); + changed = true; + } + } + else if ( live_type == GLUI_LIVE_FLOAT ) { + if ( *((float*)ptr_val) != last_live_float ) { + set_float_val( *((float*)ptr_val) ); + last_live_float = *((float*)ptr_val); + changed = true; + } + } + else if ( live_type == GLUI_LIVE_TEXT ) { + if ( strncmp((char*)ptr_val,last_live_text,sizeof(GLUI_String)) != 0 ) { + set_text( (char*) ptr_val ); + strncpy( last_live_text, (char*) ptr_val, sizeof(GLUI_String)); + changed = true; + } + } + else if ( live_type == GLUI_LIVE_FLOAT_ARRAY ) { + /*** Step through the arrays, and see if they're the same ***/ + + fp = (float*) ptr_val; + for ( i=0; ifirst_child(); + while( node ) { + ((GLUI_Control*) node)->sync_live(true, true); + node = node->next(); + } + + if ( collapsible == true AND is_open == false ) { + /** Here we have a collapsed control (e.g., a rollout that is closed **/ + /** We need to go in and sync all the collapsed controls inside **/ + + node = this->collapsed_node.first_child(); + while( node ) { + ((GLUI_Control*) node)->sync_live(true, false); + node = node->next(); + } + } + } +} + + +/************************************ GLUI_Control::output_live() ************/ +/* Writes current value of control to live variable. */ + +void GLUI_Control::output_live( int update_main_gfx ) +{ + int i; + float *fp; + + if ( ptr_val == NULL ) + return; + + if ( NOT live_inited ) + return; + + if ( live_type == GLUI_LIVE_NONE ) { + } + else if ( live_type == GLUI_LIVE_INT ) { + *((int*)ptr_val) = int_val; + last_live_int = int_val; + } + else if ( live_type == GLUI_LIVE_FLOAT ) { + *((float*)ptr_val) = float_val; + last_live_float = float_val; + } + else if ( live_type == GLUI_LIVE_TEXT ) { + strncpy( (char*) ptr_val, text, sizeof(GLUI_String)); + strncpy( last_live_text, text, sizeof(GLUI_String)); + } + else if ( live_type == GLUI_LIVE_FLOAT_ARRAY ) { + fp = (float*) ptr_val; + + for( i=0; iglui != NULL ) { + this->glui->post_update_main_gfx(); + } +} + + +/******************************** GLUI_Control::execute_callback() **********/ + +void GLUI_Control::execute_callback( void ) +{ + int old_window; + + old_window = glutGetWindow(); + + if ( glui AND glui->main_gfx_window_id != -1 ) { + glutSetWindow( glui->main_gfx_window_id ); + + } + + if ( this->callback ) + this->callback( this->user_id ); + + glutSetWindow( old_window ); +} + + +/***************************** GLUI_Control::get_this_column_dims() **********/ +/* Gets the x,y,w,h,and x/y offsets of the column to which a control belongs */ + +void GLUI_Control::get_this_column_dims( int *col_x, int *col_y, + int *col_w, int *col_h, + int *col_x_off, int *col_y_off ) +{ + GLUI_Control *node, *parent_ptr; + int parent_h, parent_y_abs; + + parent_ptr = (GLUI_Control*) parent(); + + if ( parent_ptr==NULL ) + return; + + parent_h = parent_ptr->h; + parent_y_abs = parent_ptr->y_abs; + + if ( parent_ptr->type == GLUI_CONTROL_PANEL AND + parent_ptr->int_val == GLUI_PANEL_EMBOSSED AND + parent_ptr->name[0] != '\0' ) { + parent_h -= GLUI_PANEL_EMBOSS_TOP; + parent_y_abs += GLUI_PANEL_EMBOSS_TOP; + } + + if ( 0 ) { + GLUI_Node *first, *last, *curr; + + /** Look for first control in this column **/ + first = this; + while (first->prev() != NULL AND + ((GLUI_Control*)first->prev())->type != GLUI_CONTROL_COLUMN ) + first = first->prev(); + + /** Look for last control in this column **/ + last = this; + while ( last->next() != NULL AND + ((GLUI_Control*)first->next())->type != GLUI_CONTROL_COLUMN ) + last = last->next(); + + curr = first; + int max_w = -1; + do { + if ( ((GLUI_Control*)curr)->w > max_w ) + max_w = ((GLUI_Control*)curr)->w; + + if ( curr == last ) + break; + + curr = curr->next(); + } while( curr != NULL ); + + *col_x = ((GLUI_Control*)first)->x_abs; + *col_y = ((GLUI_Control*)first)->y_abs; + *col_w = max_w; + if ( parent() ) { + *col_h = ((GLUI_Control*)parent())->h; + *col_x_off = ((GLUI_Control*)parent())->x_off; + } + else { + *col_h = 10; + *col_x_off = 0; + } + *col_y_off = 0; + + return; + } + + if ( 1 ) { /* IS THIS WRONG? */ + /*** Look for preceding column ***/ + node = (GLUI_Control*) this->prev(); + while( node ) { + if ( node->type == GLUI_CONTROL_COLUMN ) { + *col_x = node->x_abs; + *col_y = parent_y_abs; + *col_w = node->w; + *col_h = parent_h; + *col_x_off = node->x_off; + *col_y_off = 0; + + return; + } + + node = (GLUI_Control*) node->prev(); + } + + /*** Nope, Look for next column ***/ + node = (GLUI_Control*) this->next(); + while( node ) { + if ( node->type == GLUI_CONTROL_COLUMN ) { + *col_x = parent_ptr->x_abs; + *col_y = parent_y_abs; + *col_w = node->x_abs - parent_ptr->x_abs; + *col_h = parent_h; + *col_x_off = node->x_off; + *col_y_off = 0; + + return; + } + + node = (GLUI_Control*) node->next(); + } + + /*** This is single-column panel, so return panel dims ***/ + *col_x = parent_ptr->x_abs; + *col_y = parent_y_abs; + *col_w = parent_ptr->w; + *col_h = parent_h; + *col_x_off = parent_ptr->x_off; + *col_y_off = 0; + } +} + + +/**************************************** GLUI_Control::init_live() **********/ +/* Reads in value of a live variable. Called once, when ctrl is created */ + +void GLUI_Control::init_live( void ) +{ + int i; + float *fp; + + if ( ptr_val == NULL ) + return; + + if ( live_type == GLUI_LIVE_NONE ) { + } + else if ( live_type == GLUI_LIVE_INT ) { + set_int_val( *((int*)ptr_val) ); + last_live_int = *((int*)ptr_val); + } + else if ( live_type == GLUI_LIVE_FLOAT ) { + set_float_val( *((float*)ptr_val) ); + last_live_float = *((float*)ptr_val); + } + else if ( live_type == GLUI_LIVE_TEXT ) { + set_text( (char*) ptr_val ); + strncpy( last_live_text, (char*) ptr_val, sizeof(GLUI_String)); + } + else if ( live_type == GLUI_LIVE_FLOAT_ARRAY ) { + set_float_array_val( (float*) ptr_val ); + + fp = (float*) ptr_val; + + for( i=0; iname ); */ + + node = (GLUI_Control*) this->first_child(); + while( node != NULL ) { + /* printf( "recursively destroying: '%s'\n", node->name ); */ + + node_tmp = node; + node = (GLUI_Control*) node->next(); + delete node_tmp; + } +} + + +/************************** GLUI_Control::draw_box_inwards_outline() ********/ + +void GLUI_Control::draw_box_inwards_outline( int x_min, int x_max, + int y_min, int y_max ) +{ + glBegin( GL_LINES ); + glColor3f( .5, .5, .5 ); + glVertex2i( x_min, y_min ); glVertex2i( x_max, y_min ); + glVertex2i( x_min, y_min ); glVertex2i( x_min, y_max ); + + glColor3f( 1., 1., 1. ); + glVertex2i( x_min, y_max ); glVertex2i( x_max, y_max ); + glVertex2i( x_max, y_max ); glVertex2i( x_max, y_min ); + + if ( enabled ) + glColor3f( 0., 0., 0. ); + else + glColor3f( .25, .25, .25 ); + glVertex2i( x_min+1, y_min+1 ); glVertex2i( x_max-1, y_min+1 ); + glVertex2i( x_min+1, y_min+1 ); glVertex2i( x_min+1, y_max-1 ); + + glColor3f( .75, .75, .75 ); + glVertex2i( x_min+1, y_max-1 ); glVertex2i( x_max-1, y_max-1 ); + glVertex2i( x_max-1, y_max-1 ); glVertex2i( x_max-1, y_min+1 ); + glEnd(); +} + + +/************************************* GLUI_Control::draw_box() **********/ + +void GLUI_Control::draw_box( int x_min, int x_max, int y_min, int y_max, + float r, float g, float b) +{ + if ( r == 1.0 AND g == 1.0 AND b == 1.0 AND NOT enabled AND glui ) { + draw_bkgd_box( x_min, x_max, y_min, y_max ); + return; + } + + glColor3f( r, g, b ); + glBegin( GL_QUADS ); + glVertex2i( x_min, y_min ); glVertex2i( x_max, y_min ); + glVertex2i( x_max, y_max ); glVertex2i( x_min, y_max ); + glEnd(); +} + + +/************************************* GLUI_Control::draw_bkgd_box() **********/ + +void GLUI_Control::draw_bkgd_box( int x_min, int x_max, int y_min, int y_max ) +{ + set_to_bkgd_color(); + + glBegin( GL_QUADS ); + glVertex2i( x_min, y_min ); glVertex2i( x_max, y_min ); + glVertex2i( x_max, y_max ); glVertex2i( x_min, y_max ); + glEnd(); +} + + +/***************************** GLUI_Control::draw_active_area() ********/ + +void GLUI_Control::draw_active_box( int x_min, int x_max, + int y_min, int y_max ) +{ + int orig; + + if ( NOT glui ) + return; + + orig = set_to_glut_window(); + + if ( active ) { + glEnable( GL_LINE_STIPPLE ); + glLineStipple( 1, 0x5555 ); + glColor3f( 0., 0., 0. ); + } else { + set_to_bkgd_color(); + } + + glBegin( GL_LINE_LOOP ); + glVertex2i(x_min, y_min); glVertex2i( x_max, y_min ); + glVertex2i(x_max, y_max); glVertex2i( x_min, y_max ); + glEnd(); + + glDisable( GL_LINE_STIPPLE ); + + restore_window(orig); +} + + +/************************************** GLUI_Control::set_to_bkgd_color() ********/ + +void GLUI_Control::set_to_bkgd_color( void ) +{ + if ( NOT glui ) + return; + + glColor3ub( glui->bkgd_color.r, glui->bkgd_color.g, glui->bkgd_color.b ); +} + + +/******************************* GLUI_Control::set_float_array_val() ********/ + +void GLUI_Control::set_float_array_val( float *array_ptr ) +{ + int i; + + if ( array_ptr == NULL ) + return; + + for( i=0; irefresh(); +}; + + + + + +void GLUI_Control::pack( int x, int y ) +{ + GLUI_Control *node; + int max_w, curr_y, curr_x, max_y; + int x_in = x, y_in =y; + int x_margin, y_margin_top, y_margin_bot; + int y_top_column; + int column_x; + GLUI_Column *curr_column = NULL; + + this->update_size(); + + x_margin = this->x_off; + y_margin_top = this->y_off_top; + y_margin_bot = this->y_off_bot; + + this->x_abs = x_in; + this->y_abs = y_in; + + max_w = 0; + max_y = 0; + curr_x = this->x_abs + x_margin; + curr_y = this->y_abs + y_margin_top; + + /*** Record start of this set of columns ***/ + + y_top_column = curr_y; + column_x = curr_x; + + /*** Iterate over children, packing them first ***/ + + node = (GLUI_Control*) this->first_child(); + while( node != NULL ) { + if ( node->type == GLUI_CONTROL_PANEL ) { /* Pad some space above panels */ + curr_y += GLUI_ITEMSPACING; + } + else if ( node->type == GLUI_CONTROL_COLUMN ) { + curr_column = (GLUI_Column*) node; + curr_x += max_w + 1 * x_margin; + column_x = curr_x; + + node->x_abs = curr_x; + node->y_abs = y_top_column; + node->w = 2; + node->h = curr_y - y_top_column; + + curr_x += x_margin * 1; + curr_y = y_top_column; + max_w = 0; + + node = (GLUI_Control*) node->next(); + continue; + } + + node->pack( curr_x, curr_y ); + + if ( node->type == GLUI_CONTROL_PANEL ) /* Pad some space below panels */ + curr_y += GLUI_ITEMSPACING; + + curr_y += node->h; + + if ( node->w > max_w ) { + max_w = node->w; + if ( curr_column != NULL ) + curr_column->w = max_w + x_margin; + } + + if ( curr_y > max_y ) { + max_y = curr_y; + if ( curr_column != NULL ) + curr_column->h = max_y - y_top_column; + } + + node = (GLUI_Control*) node->next(); + + if ( node ) { + curr_y += GLUI_ITEMSPACING; + } + + } + + if ( this->is_container ) { + max_y += y_margin_bot; /*** Add bottom border inside box */ + + if ( this->first_child() ) { + this->w = column_x + max_w + 2 * x_margin - x_in; + this->h = (max_y - y_in); + } + else { /* An empty container, so just assign default w & h */ + if ( this->type != GLUI_CONTROL_ROLLOUT ) { + this->w = GLUI_DEFAULT_CONTROL_WIDTH; + this->h = GLUI_DEFAULT_CONTROL_HEIGHT; + } + } + + /** Expand panel if necessary (e.g., to include all the text in + a panel label) **/ + this->update_size(); + + + /*** Now we step through the GLUI_Columns, setting the 'h' ***/ + node = (GLUI_Control*) this->first_child(); + while( node != NULL ) { + if ( node->type == GLUI_CONTROL_COLUMN ) { + node->h = this->h - y_margin_bot - y_margin_top; + } + + node = (GLUI_Control*) node->next(); + } + } +} + + +/****************************** GLUI_Control::draw_emboss_box() ********/ + +void GLUI_Control::draw_emboss_box(int x_min,int x_max,int y_min,int y_max) +{ + glLineWidth( 1.0 ); + glColor3f( 1.0, 1.0, 1.0 ); + + glBegin( GL_LINE_LOOP ); + glVertex2i( x_min, y_min ); glVertex2i( x_max, y_min ); + glVertex2i( x_max, y_max ); glVertex2i( x_min, y_max ); + glEnd(); + + glBegin( GL_LINE_LOOP ); + glVertex2i( x_min+1, y_min+1 ); glVertex2i( x_max-1, y_min+1 ); + glVertex2i( x_max-1, y_max-1 ); glVertex2i( x_min+1, y_max-1 ); + glEnd(); + + glColor3f( .5, .5, .5 ); + glBegin( GL_LINE_LOOP ); + glVertex2i( x_min, y_min ); + glVertex2i( x_max-1, y_min ); + glVertex2i( x_max-1, y_max-1 ); + glVertex2i( x_min, y_max-1 ); + glEnd(); +} + + +/*********************************** GLUI_Control::hide_internal() ********/ +/** Sets hidden==true for this control and all its siblings. */ +/** If recurse is true, we go to children as well */ + +void GLUI_Control::hide_internal( int recurse ) +{ + GLUI_Node *node; + + node = (GLUI_Node *) this; + while( node != NULL ) { + ((GLUI_Control*)node)->hidden = true; + + if ( recurse AND node->first_child() != NULL ) + ((GLUI_Control*) node->first_child())->hide_internal(true); + + node = node->next(); + } + + node = this->collapsed_node.first_child(); + while( node != NULL ) { + ((GLUI_Control*)node)->hidden = true; + + if ( recurse AND node->first_child() != NULL ) + ((GLUI_Control*) node->first_child())->hide_internal(true); + + node = node->next(); + } +} + + +/*********************************** GLUI_Control::unhide_internal() ********/ +/** Sets hidden==false for this control and all its siblings. */ +/** If recurse is true, we go to children as well */ + +void GLUI_Control::unhide_internal( int recurse ) +{ + GLUI_Node *node; + + node = (GLUI_Node *) this; + while( node != NULL ) { + /* printf( "unhide: %s [%d]\n", ((GLUI_Control*)node)->name.string, + ((GLUI_Control*)node)->hidden );*/ + ((GLUI_Control*)node)->hidden = false; + + if ( recurse AND node->first_child() != NULL ) + ((GLUI_Control*) node->first_child())->unhide_internal(true); + + node = node->next(); + } + + node = this->collapsed_node.first_child(); + while( node != NULL ) { + ((GLUI_Control*)node)->hidden = false; + + if ( recurse AND node->first_child() != NULL ) + ((GLUI_Control*) node->first_child())->unhide_internal(true); + + node = node->next(); + } +} diff --git a/.svn/pristine/5c/5c7cbce63088b2c6ff31435fdf8c15e14c5ec0d7.svn-base b/.svn/pristine/5c/5c7cbce63088b2c6ff31435fdf8c15e14c5ec0d7.svn-base new file mode 100644 index 0000000..3d2c62f --- /dev/null +++ b/.svn/pristine/5c/5c7cbce63088b2c6ff31435fdf8c15e14c5ec0d7.svn-base @@ -0,0 +1,585 @@ +//---------------------------------------------------------------------- +// File: ann2fig.cpp +// Programmer: David Mount +// Last modified: 05/03/05 +// Description: convert ann dump file to fig file +//---------------------------------------------------------------------- +// Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +// David Mount. All Rights Reserved. +// +// This software and related documentation is part of the Approximate +// Nearest Neighbor Library (ANN). This software is provided under +// the provisions of the Lesser GNU Public License (LGPL). See the +// file ../ReadMe.txt for further information. +// +// The University of Maryland (U.M.) and the authors make no +// representations about the suitability or fitness of this software for +// any purpose. It is provided "as is" without express or implied +// warranty. +//---------------------------------------------------------------------- +// History: +// Revision 0.1 03/04/98 +// Initial release +// Revision 1.0 04/01/05 +// Changed dump file suffix from .ann to .dmp. +// Revision 1.1 05/03/05 +// Fixed usage output string. +//---------------------------------------------------------------------- +// This program inputs an ann dump file of a search structure +// perhaps along with point coordinates, and outputs a fig (Ver 3.1) +// file (see fig2dev (1)) displaying the tree. The fig file may +// then be displayed using xfig, or converted to any of a number of +// other formats using fig2dev. +// +// If the dimension is 2 then the entire tree is display. If the +// dimension is larger than 2 then the user has the option of +// selecting which two dimensions will be displayed, and the slice +// value for each of the remaining dimensions. All leaf cells +// intersecting the slice are shown along with the points in these +// cells. See the procedure getArgs() below for the command-line +// arguments. +//---------------------------------------------------------------------- + +#include // C standard I/O +#include // file I/O +#include // string manipulation +#include // all ANN includes + +using namespace std; // make std:: accessible + +//---------------------------------------------------------------------- +// Globals and their defaults +//---------------------------------------------------------------------- + +const int STRING_LEN = 500; // string lengths +const int MAX_DIM = 1000; // maximum dimension +const double DEF_SLICE_VAL = 0; // default slice value +const char FIG_HEAD[] = {"#FIG 3.1"}; // fig file header +const char DUMP_SUFFIX[] = {".dmp"}; // suffix for dump file +const char FIG_SUFFIX[] = {".fig"}; // suffix for fig file + +char file_name[STRING_LEN]; // (root) file name (say xxx) +char infile_name[STRING_LEN];// input file name (xxx.dmp) +char outfile_name[STRING_LEN];// output file name (xxx.fig) +char caption[STRING_LEN]; // caption line (= command line) +ofstream ofile; // output file stream +ifstream ifile; // input file stream +int dim_x = 0; // horizontal dimension +int dim_y = 1; // vertical dimension +double slice_val[MAX_DIM]; // array of slice values +double u_per_in = 1200; // fig units per inch (version 3.1) +double in_size = 5; // size of figure (in inches) +double in_low_x = 1; // fig upper left corner (in inches) +double in_low_y = 1; // fig upper left corner (in inches) +double u_size = 6000; // size of figure (in units) +double u_low_x = 1200; // fig upper left corner (in units) +double u_low_y = 1200; // fig upper left corner (in units) +int pt_size = 10; // point size (in fig units) + +int dim; // dimension +int n_pts; // number of points +ANNpointArray pts = NULL; // point array + +double scale; // scale factor for transformation +double offset_x; // offsets for transformation +double offset_y; + + // transformations +#define TRANS_X(p) (offset_x + scale*(p[dim_x])) +#define TRANS_Y(p) (offset_y - scale*(p[dim_y])) + +//---------------------------------------------------------------------- +// Error handler +//---------------------------------------------------------------------- + +void Error(char *msg, ANNerr level) +{ + if (level == ANNabort) { + cerr << "ann2fig: ERROR------->" << msg << "<-------------ERROR\n"; + exit(1); + } + else { + cerr << "ann2fig: WARNING----->" << msg << "<-------------WARNING\n"; + } +} + +//---------------------------------------------------------------------- +// set_slice_val - set all slice values to given value +//---------------------------------------------------------------------- + +void set_slice_val(double val) +{ + for (int i = 0; i < MAX_DIM; i++) { + slice_val[i] = val; + } +} + +//---------------------------------------------------------------------- +// getArgs - get input arguments +// +// Syntax: +// ann2fig [-upi scale] [-x low_x] [-y low_y] +// [-sz size] [-dx dim_x] [-dy dim_y] [-sl dim value]* +// [-ps pointsize] +// file +// +// where: +// -upi scale fig units per inch (default = 1200) +// -x low_x x and y offset of upper left corner (inches) +// -y low_y ...(default = 1) +// -sz size maximum side length of figure (in inches) +// ...(default = 5) +// -dx dim_x horizontal dimension (default = 0) +// -dy dim_y vertical dimension (default = 1) +// -sv value default slice value (default = 0) +// -sl dim value each such pair defines the value along the +// ...given dimension at which to slice. This +// ...may be supplied for all dimensions except +// ...dim_x and dim_y. +// -ps pointsize size of points in fig units (def = 10) +// file file (input=file.dmp, output=file.fig) +// +//---------------------------------------------------------------------- + +void getArgs(int argc, char **argv) +{ + int i; + int sl_dim; // temp slice dimension + double sl_val; // temp slice value + + set_slice_val(DEF_SLICE_VAL); // set initial slice-values + + if (argc <= 1) { + cerr << "Syntax:\n\ + ann2fig [-upi scale] [-x low_x] [-y low_y]\n\ + [-sz size] [-dx dim_x] [-dy dim_y] [-sl dim value]*\n\ + file\n\ + \n\ + where:\n\ + -upi scale fig units per inch (default = 1200)\n\ + -x low_x x and y offset of upper left corner (inches)\n\ + -y low_y ...(default = 1)\n\ + -sz size maximum side length of figure (in inches)\n\ + ...(default = 5)\n\ + -dx dim_x horizontal dimension (default = 0)\n\ + -dy dim_y vertical dimension (default = 1)\n\ + -sv value default slice value (default = 0)\n\ + -sl dim value each such pair defines the value along the\n\ + ...given dimension at which to slice. This\n\ + ...may be supplied for each dimension except\n\ + ...dim_x and dim_y.\n\ + -ps pointsize size of points in fig units (def = 10)\n\ + file file (input=file.dmp, output=file.fig)\n"; + exit(0); + } + + ANNbool fileSeen = ANNfalse; // file argument seen? + + for (i = 1; i < argc; i++) { + if (!strcmp(argv[i], "-upi")) { // process -upi option + sscanf(argv[++i], "%lf", &u_per_in); + } + else if (!strcmp(argv[i], "-x")) { // process -x option + sscanf(argv[++i], "%lf", &in_low_x); + } + else if (!strcmp(argv[i], "-y")) { // process -y option + sscanf(argv[++i], "%lf", &in_low_y); + } + else if (!strcmp(argv[i], "-sz")) { // process -sz option + sscanf(argv[++i], "%lf", &in_size); + } + else if (!strcmp(argv[i], "-dx")) { // process -dx option + sscanf(argv[++i], "%d", &dim_x); + } + else if (!strcmp(argv[i], "-dy")) { // process -dy option + sscanf(argv[++i], "%d", &dim_y); + } + else if (!strcmp(argv[i], "-sv")) { // process -sv option + sscanf(argv[++i], "%lf", &sl_val); + set_slice_val(sl_val); // set slice values + } + else if (!strcmp(argv[i], "-sl")) { // process -sl option + sscanf(argv[++i], "%d", &sl_dim); + if (sl_dim < 0 || sl_dim >= MAX_DIM) { + Error("Slice dimension out of bounds", ANNabort); + } + sscanf(argv[++i], "%lf", &slice_val[sl_dim]); + } + if (!strcmp(argv[i], "-ps")) { // process -ps option + sscanf(argv[++i], "%i", &pt_size); + } + else { // must be file name + fileSeen = ANNtrue; + sscanf(argv[i], "%s", file_name); + strcpy(infile_name, file_name); // copy to input file name + strcat(infile_name, DUMP_SUFFIX); + strcpy(outfile_name, file_name); // copy to output file name + strcat(outfile_name, FIG_SUFFIX); + } + } + + if (!fileSeen) { // no file seen + Error("File argument is required", ANNabort); + } + + ifile.open(infile_name, ios::in); // open for reading + if (!ifile) { + Error("Cannot open input file", ANNabort); + } + ofile.open(outfile_name, ios::out); // open for writing + if (!ofile) { + Error("Cannot open output file", ANNabort); + } + + u_low_x = u_per_in * in_low_x; // convert inches to fig units + u_low_y = u_per_in * in_low_y; + u_size = u_per_in * in_size; + + strcpy(caption, argv[0]); // copy command line to caption + for (i = 1; i < argc; i++) { + strcat(caption, " "); + strcat(caption, argv[i]); + } +} + +//---------------------------------------------------------------------- +// Graphics utilities for fig output +// +// writeHeader write header for fig file +// writePoint write a point +// writeBox write a box +// writeLine write a line +//---------------------------------------------------------------------- + +void writeHeader() +{ + ofile << FIG_HEAD << "\n" // fig file header + << "Portrait\n" + << "Center\n" + << "Inches\n" + << (int) u_per_in << " 2\n"; +} + +void writePoint(ANNpoint p) // write a single point +{ + // filled black point object + ofile << "1 3 0 1 -1 7 0 0 0 0.000 1 0.0000 "; + int cent_x = (int) TRANS_X(p); // transform center coords + int cent_y = (int) TRANS_Y(p); + ofile << cent_x << " " << cent_y << " " // write center, radius, bounds + << pt_size << " " << pt_size << " " + << cent_x << " " << cent_y << " " + << cent_x + pt_size << " " << cent_y + pt_size << "\n"; +} + +void writeBox(const ANNorthRect &r) // write box +{ + // unfilled box object + ofile << "2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5\n"; + + int p0_x = (int) TRANS_X(r.lo); // transform endpoints + int p0_y = (int) TRANS_Y(r.lo); + int p1_x = (int) TRANS_X(r.hi); + int p1_y = (int) TRANS_Y(r.hi); + ofile << "\t" + << p0_x << " " << p0_y << " " // write vertices + << p1_x << " " << p0_y << " " + << p1_x << " " << p1_y << " " + << p0_x << " " << p1_y << " " + << p0_x << " " << p0_y << "\n"; +} + +void writeLine(ANNpoint p0, ANNpoint p1) // write line +{ + // unfilled line object + ofile << "2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2\n"; + + int p0_x = (int) TRANS_X(p0); // transform endpoints + int p0_y = (int) TRANS_Y(p0); + int p1_x = (int) TRANS_X(p1); + int p1_y = (int) TRANS_Y(p1); + ofile << "\t" + << p0_x << " " << p0_y << " " // write vertices + << p1_x << " " << p1_y << "\n"; +} + +void writeCaption( // write caption text + const ANNorthRect &bnd_box, // bounding box + char *caption) // caption +{ + if (!strcmp(caption, "\0")) return; // null string? + int px = (int) TRANS_X(bnd_box.lo); // put .5 in. lower left + int py = (int) (TRANS_Y(bnd_box.lo) + 0.50 * u_per_in); + ofile << "4 0 -1 0 0 0 20 0.0000 4 255 2000 "; + ofile << px << " " << py << " " << caption << "\\001\n"; +} + +//---------------------------------------------------------------------- +// overlap - test whether a box overlap slicing region +// +// The slicing region is a 2-dimensional plane in space +// which contains points (x1, x2, ..., xn) satisfying the +// n-2 linear equalities: +// +// xi == slice_val[i] for i != dim_x, dim_y +// +// This procedure returns true of the box defined by +// corner points box.lo and box.hi overlap this plane. +//---------------------------------------------------------------------- + +ANNbool overlap(const ANNorthRect &box) +{ + for (int i = 0; i < dim; i++) { + if (i != dim_x && i != dim_y && + (box.lo[i] > slice_val[i] || box.hi[i] < slice_val[i])) + return ANNfalse; + } + return ANNtrue; +} + +//---------------------------------------------------------------------- +// readTree, recReadTree - inputs tree and outputs figure +// +// readTree procedure initializes things and then calls recReadTree +// which does all the work. +// +// recReadTree reads in a node of the tree, makes any recursive +// calls as needed to input the children of this node (if internal) +// and maintains the bounding box. Note that the bounding box +// is modified within this procedure, but it is the responsibility +// of the procedure that it be restored to its original value +// on return. +// +// Recall that these are the formats. The tree is given in +// preorder. +// +// Leaf node: +// leaf ... +// Splitting nodes: +// split +// Shrinking nodes: +// shrink +// +// +// ... (repeated n_bnds times) +// +// On reading a leaf we determine whether we should output the +// cell's points (if dimension = 2 or this cell overlaps the +// slicing region). For splitting nodes we check whether the +// current cell overlaps the slicing plane and whether the +// cutting dimension coincides with either the x or y drawing +// dimensions. If so, we output the corresponding splitting +// segment. +//---------------------------------------------------------------------- + +void recReadTree(ANNorthRect &box) +{ + char tag[STRING_LEN]; // tag (leaf, split, shrink) + int n_pts; // number of points in leaf + int idx; // point index + int cd; // cut dimension + ANNcoord cv; // cut value + ANNcoord lb; // low bound + ANNcoord hb; // high bound + int n_bnds; // number of bounding sides + int sd; // which side + + ifile >> tag; // input node tag + if (strcmp(tag, "leaf") == 0) { // leaf node + + ifile >> n_pts; // input number of points + // check for overlap + if (dim == 2 || overlap(box)) { + for (int i = 0; i < n_pts; i++) { // yes, write the points + ifile >> idx; + writePoint(pts[idx]); + } + } + else { // input but ignore points + for (int i = 0; i < n_pts; i++) { + ifile >> idx; + } + } + } + else if (strcmp(tag, "split") == 0) { // splitting node + + ifile >> cd >> cv >> lb >> hb; + if (lb != box.lo[cd] || hb != box.hi[cd]) { + Error("Bounding box coordinates are fishy", ANNwarn); + } + + ANNcoord lv = box.lo[cd]; // save bounds for cutting dim + ANNcoord hv = box.hi[cd]; + + //-------------------------------------------------------------- + // The following code is rather fragile so modify at your + // own risk. We first decrease the high-end of the bounding + // box down to the cutting plane and then read the left subtree. + // Then we increase the low-end of the bounding box up to the + // cutting plane (thus collapsing the bounding box to a d-1 + // dimensional hyperrectangle). Then we draw the projection of + // its diagonal if it crosses the slicing plane. This will have + // the effect of drawing its intersection on the slicing plane. + // Then we restore the high-end of the bounding box and read + // the right subtree. Finally we restore the low-end of the + // bounding box, before returning. + //-------------------------------------------------------------- + box.hi[cd] = cv; // decrease high bounds + recReadTree(box); // read left subtree + // check for overlap + box.lo[cd] = cv; // increase low bounds + if (dim == 2 || overlap(box)) { // check for overlap + if (cd == dim_x || cd == dim_y) { // cut through slice plane + writeLine(box.lo, box.hi); // draw cutting line + } + } + box.hi[cd] = hv; // restore high bounds + + recReadTree(box); // read right subtree + box.lo[cd] = lv; // restore low bounds + } + else if (strcmp(tag, "shrink") == 0) { // splitting node + + ANNorthRect inner(dim, box); // copy bounding box + ifile >> n_bnds; // number of bounding sides + for (int i = 0; i < n_bnds; i++) { + ifile >> cd >> cv >> sd; // input bounding halfspace + ANNorthHalfSpace hs(cd, cv, sd); // create orthogonal halfspace + hs.project(inner.lo); // intersect by projecting + hs.project(inner.hi); + } + if (dim == 2 || overlap(inner)) { + writeBox(inner); // draw inner rectangle + } + recReadTree(inner); // read inner subtree + recReadTree(box); // read outer subtree + } + else { + Error("Illegal node type in dump file", ANNabort); + } +} + +void readTree(ANNorthRect &bnd_box) +{ + writeHeader(); // output header + writeBox(bnd_box); // draw bounding box + writeCaption(bnd_box, caption); // write caption + recReadTree(bnd_box); // do it +} + +//---------------------------------------------------------------------- +// readANN - read the ANN dump file +// +// This procedure reads in the dump file. See the format below. +// It first reads the header line with version number. If the +// points section is present it reads them (otherwise just leaves +// points = NULL), and then it reads the tree section. It inputs +// the bounding box and determines the parameters for transforming +// the image to figure units. It then invokes the procedure +// readTree to do all the real work. +// +// Dump File Format: = coordinate value (ANNcoord) +// +// #ANN [END_OF_LINE] +// points (point coordinates: this is optional) +// 0 ... (point indices and coordinates) +// 1 ... +// ... +// tree +// ... (lower end of bounding box) +// ... (upper end of bounding box) +// If the tree is null, then a single line "null" is +// output. Otherwise the nodes of the tree are printed +// one per line in preorder. Leaves and splitting nodes +// have the following formats: +// Leaf node: +// leaf ... +// Splitting nodes: +// split +// Shrinking nodes: +// shrink +// +// +// ... (repeated n_bnds times) +// +// Note: Infinite lo_ and hi_bounds are printed as the special +// values "-INF" and "+INF", respectively. We do not +// check for this, because the current version of ANN +// starts with a finite bounding box if the tree is +// nonempty. +//---------------------------------------------------------------------- + +void readANN() +{ + int j; + char str[STRING_LEN]; // storage for string + char version[STRING_LEN]; // storage for version + int bkt_size; // bucket size + + ifile >> str; // input header + if (strcmp(str, "#ANN") != 0) { // incorrect header + Error("Incorrect header for dump file", ANNabort); + } + ifile.getline(version, STRING_LEN); // get version (ignore) + ifile >> str; // get major heading + if (strcmp(str, "points") == 0) { // points section + ifile >> dim; // read dimension + ifile >> n_pts; // number of points + pts = annAllocPts(n_pts, dim); // allocate points + for (int i = 0; i < n_pts; i++) { // input point coordinates + int idx; // point index + ifile >> idx; // input point index + if (idx < 0 || idx >= n_pts) { + Error("Point index is out of range", ANNabort); + } + for (j = 0; j < dim; j++) { + ifile >> pts[idx][j]; // read point coordinates + } + } + ifile >> str; // get next major heading + } + if (strcmp(str, "tree") == 0) { // tree section + ifile >> dim; // read dimension + if (dim_x > dim || dim_y > dim) { + Error("Dimensions out of bounds", ANNabort); + } + ifile >> n_pts; // number of points + ifile >> bkt_size; // bucket size (ignored) + // read bounding box + ANNorthRect bnd_box(dim); // create bounding box + for (j = 0; j < dim; j++) { + ifile >> bnd_box.lo[j]; // read box low coordinates + } + for (j = 0; j < dim; j++) { + ifile >> bnd_box.hi[j]; // read box high coordinates + } + // compute scaling factors + double box_len_x = bnd_box.hi[dim_x] - bnd_box.lo[dim_x]; + double box_len_y = bnd_box.hi[dim_y] - bnd_box.lo[dim_y]; + // longer side determines scale + if (box_len_x > box_len_y) scale = u_size/box_len_x; + else scale = u_size/box_len_y; + // compute offsets + offset_x = u_low_x - scale*bnd_box.lo[dim_x]; + offset_y = u_low_y + scale*bnd_box.hi[dim_y]; + readTree(bnd_box); // read the tree and process + } + else if (strcmp(str, "null") == 0) return; // empty tree + else { + cerr << "Input string: " << str << "\n"; + Error("Illegal ann format. Expecting section heading", ANNabort); + } +} + +//---------------------------------------------------------------------- +// Main program +// +// Gets the command-line arguments and invokes the main scanning +// procedure. +//---------------------------------------------------------------------- + +main(int argc, char **argv) +{ + getArgs(argc, argv); // get input arguments + readANN(); // read the dump file +} diff --git a/.svn/pristine/5c/5cf3012e8582e4ae022c0642566732f071a25fae.svn-base b/.svn/pristine/5c/5cf3012e8582e4ae022c0642566732f071a25fae.svn-base new file mode 100644 index 0000000..035c2cb --- /dev/null +++ b/.svn/pristine/5c/5cf3012e8582e4ae022c0642566732f071a25fae.svn-base @@ -0,0 +1,293 @@ +#ifndef __COLORMANAGER_H__ +#define __COLORMANAGER_H__ + +#ifdef _MSC_VER +#define _USE_MATH_DEFINES +#include +#endif +#ifdef __APPLE__ +#include +#else +#include +#endif +#include +#include + +class ColorMap { + public: + enum CM { + SOLID = 0, + GREY = 1, + HSV = 2, + JET = 3, + HOT = 4, + SHSV = 5 + }; + + virtual ~ColorMap() {}; + + virtual void calcColor(float *d, unsigned int i, unsigned int buckets) { + d[0] = d[1] = d[2] = 1.0; + } + + static ColorMap getColorMap(CM map); + + /** + * hue is in [0,360], all others in [0,1] + */ + static void convert_hsv_to_rgb(float hue, float s, float v, + float &r, float &g, float &b); +}; + +class GreyMap : public ColorMap { + public: + virtual void calcColor(float *d, unsigned int i, unsigned int buckets) { + d[0] = (float)i/(float)buckets; + d[1] = (float)i/(float)buckets; + d[2] = (float)i/(float)buckets; + } +}; + +class HSVMap : public ColorMap { + public: + virtual void calcColor(float *d, unsigned int i, unsigned int buckets) { + float t = (float)i/(float)buckets; + convert_hsv_to_rgb(360.0*t, 1.0, 1.0, d[0], d[1], d[2]); + } +}; + +class SHSVMap : public ColorMap { + public: + virtual void calcColor(float *d, unsigned int i, unsigned int buckets) { + float t = (float)i/(float)buckets; + convert_hsv_to_rgb(240.0*(1.0-t), 1.0, 1.0, d[0], d[1], d[2]); + } +}; + +class JetMap : public ColorMap { + public: + virtual void calcColor(float *d, unsigned int i, unsigned int buckets) { + float t = (float)i/(float)buckets; + if (t <= 0.125) { + d[0] = d[1] = 0.0; d[2] = 0.5 + 0.5*(t/0.125); + } else if (t < 0.375) { + d[0] = 0.0; d[2] = 1.0; d[1] = (t-0.125)/0.25; + } else if (t < 0.625) { + d[1] = 1.0; d[0] = (t-0.375)/0.25;; d[2] = 1.0 - d[0]; + } else if (t < 0.875) { + d[0] = 1.0; d[2] = 0.0; d[1] = 1.0 - (t-0.625)/0.25; + } else { + d[1] = d[2] = 0.0; d[0] = 1.0 - 0.5*((t - 0.875)/0.125); + } + } +}; + +class HotMap : public ColorMap { + public: + virtual void calcColor(float *d, unsigned int i, unsigned int buckets) { + float t = (float)i/(float)buckets; + if (t <= 1.0/3.0) { + d[1] = d[2] = 0.0; d[0] = t/(1.0/3.0); + } else if (t <= 2.0/3.0) { + d[0] = 1.0; d[2] = 0.0; d[1] = (t-(1.0/3.0))/(1.0/3.0); + } else { + d[0] = 1.0; d[1] = 1.0; d[2] = (t-(2.0/3.0))/(1.0/3.0); + } + } +}; + +class DiffMap : public ColorMap { + public: + virtual void calcColor(float *d, unsigned int i, unsigned int buckets); + private: + static const float cmap[7][3]; +}; + +class ColorManager { + + public: + + ColorManager(unsigned int _buckets, unsigned int pointdim, float *_mins, float *_maxs, const float *_color = 0) : buckets(_buckets) { + if (_color) { + color[0] = _color[0]; + color[1] = _color[1]; + color[2] = _color[2]; + } else { + color[0] = 1; + color[1] = 1; + color[2] = 1; + } + + colormap = new float*[buckets + 1]; // allow a color more for values equal to max + for (unsigned int i = 0; i < buckets; i++) { + colormap[i] = new float[3]; + } + colormap[buckets] = new float[3]; + + mins = new float[pointdim]; + maxs = new float[pointdim]; + for (unsigned int i = 0; i < pointdim; i++) { + mins[i] = _mins[i]; + maxs[i] = _maxs[i]; + } + + setCurrentDim(0); + } + + virtual ~ColorManager() { + for (unsigned int i = 0; i < buckets; i++) { + delete[] colormap[i]; + } + delete[] colormap[buckets]; + delete[] colormap; + + delete[] mins; + delete[] maxs; + } + + virtual void load() { + glColor3f(color[0], color[1], color[2] ); + glEnable (GL_TEXTURE_1D); + glBindTexture (GL_TEXTURE_1D, 0); + } + + virtual void unload() { + glDisable (GL_TEXTURE_1D); + } + + virtual void setColor(float *val) { + glTexCoord1f( (float)((val[currentdim]-min)/extent) ); + } + virtual void setColor(double *val) { + glTexCoord1f( (float)((val[currentdim]-min)/extent) ); + } + virtual void setColor(short int *val) { + glTexCoord1f( (float)((val[currentdim]-min)/extent) ); + } + virtual void setColor(signed char *val) { + glTexCoord1f( (float)((val[currentdim]-min)/extent) ); + } + + virtual void setColorMap(ColorMap &cm) { + for (unsigned int i = 0; i < buckets; i++) { + cm.calcColor(colormap[i], i, buckets); + } + cm.calcColor(colormap[buckets], buckets-1, buckets); + convertToTexture1D(); + } + + + void setCurrentDim(unsigned int cdim) { + currentdim = cdim; + makeValid(); + } + + + void setMinMax(float _min, float _max) { + if (_min < _max) { + min = _min; + max = _max; + } + extent = max - min; + } + + protected: + + + void convertToTexture1D() { + unsigned char *imageData = new unsigned char[(buckets+1) * 3]; + for (unsigned int i = 0; i < buckets; i++) { + imageData[3*i+0] = colormap[i][0]*255; + imageData[3*i+1] = colormap[i][1]*255; + imageData[3*i+2] = colormap[i][2]*255; + } + + imageData[3*buckets+0] = colormap[buckets][0]*255; + imageData[3*buckets+1] = colormap[buckets][1]*255; + imageData[3*buckets+2] = colormap[buckets][2]*255; + + glBindTexture (GL_TEXTURE_1D, 0); + glPixelStorei (GL_UNPACK_ALIGNMENT, 1); + glTexParameteri (GL_TEXTURE_1D, GL_TEXTURE_WRAP_S, GL_CLAMP); + glTexParameteri (GL_TEXTURE_1D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + glTexParameteri (GL_TEXTURE_1D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + glTexEnvf (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); + glTexImage1D (GL_TEXTURE_1D, 0, GL_RGB, buckets+1, 0, GL_RGB, GL_UNSIGNED_BYTE, imageData); + delete[] imageData; + } + + void makeValid() { + min = mins[currentdim]; + max = maxs[currentdim]; + + extent = max - min; + } + + unsigned int buckets; + + unsigned int currentdim; + + /** stores minima and maxima for each point dimension */ + float *mins; + float *maxs; + /** maps color to value */ + float **colormap; + + float min; + float max; + + float extent; + + float color[3]; + +}; + +class CColorManager : public ColorManager { + public: + CColorManager(unsigned int buckets, unsigned int pointdim, float *mins, float *maxs, unsigned int _colordim) : ColorManager(buckets, pointdim, mins, maxs) { + colordim = _colordim; + } + + virtual void load() { + glGetBooleanv(GL_COLOR_LOGIC_OP, &color_state); + glDisable(GL_COLOR_LOGIC_OP); // this disables inversion of color, but also messes with fog behaviour + glColor3f(color[0], color[1], color[2] ); + glEnable (GL_TEXTURE_1D); + glBindTexture (GL_TEXTURE_1D, 0); + } + + virtual void unload() { + glDisable (GL_TEXTURE_1D); + if (color_state) { + glEnable(GL_COLOR_LOGIC_OP); + } + } + + void setColor(double *val) { + GLubyte color[3]; + memcpy(color, &val[colordim], 3); + glColor3ubv(color); + } + void setColor(float *val) { + GLubyte color[3]; + memcpy(color, &val[colordim], 3); + glColor3ubv(color); + } + void setColor(short *val) { + GLubyte color[3]; + memcpy(color, &val[colordim], 3); + glColor3ubv(color); + } + virtual void setColor(signed char *val) { + GLubyte color[3]; + memcpy(color, &val[colordim], 3); + glColor3ubv(color); + } + + private: + unsigned int colordim; + GLboolean color_state; +}; + + +#endif diff --git a/.svn/pristine/5c/5cfa3542518708216523f7b4a4fcf6baf7bb4c2e.svn-base b/.svn/pristine/5c/5cfa3542518708216523f7b4a4fcf6baf7bb4c2e.svn-base new file mode 100644 index 0000000..804180a --- /dev/null +++ b/.svn/pristine/5c/5cfa3542518708216523f7b4a4fcf6baf7bb4c2e.svn-base @@ -0,0 +1,36 @@ +/** + * @file + * @brief IO of a 3D scan in uos + reflectance file format + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SCAN_IO_XYZR_H__ +#define __SCAN_IO_XYZR_H__ + +#include +using std::string; +#include +using std::vector; + +#include "scan_io.h" + +/** + * @brief 3D scan loader for UOS + reflectance scans + * + * The compiled class is available as shared object file + */ +class ScanIO_xyzr : public ScanIO { +public: + virtual int readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss); +}; + +// Since this shared object file is loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/.svn/pristine/5d/5d07efb6a6480c3bbf860f46934c5c2f71ea858f.svn-base b/.svn/pristine/5d/5d07efb6a6480c3bbf860f46934c5c2f71ea858f.svn-base new file mode 100644 index 0000000..35641a4 --- /dev/null +++ b/.svn/pristine/5d/5d07efb6a6480c3bbf860f46934c5c2f71ea858f.svn-base @@ -0,0 +1,35 @@ +/* parascan.h */ + +#ifndef parascan +#define parascan + +/* dependencies */ +/* -------------------------------------------------------------------------- */ + +/* constant definitions */ +/* -------------------------------------------------------------------------- */ + +#define LF 0x0A /* line feed: zeilenvorschub */ +#define CR 0x20 /* carriage return: wagenruecklauf */ +#define COMMENT 0x3B /* ';' als kommentartrennzeichen */ +#define NAMELEN 80 /* maximale Laenge der Dateinamen */ + +/* typedefinitions */ +/* -------------------------------------------------------------------------- */ + +/* macros */ +/* -------------------------------------------------------------------------- */ + +/* prototyps */ +/* -------------------------------------------------------------------------- */ + +extern int paramtr_scan_int(FILE *stream, const char *search,int defaultval); +extern double paramtr_scan_double(FILE *stream, const char *search,double defaultval); +extern bool paramtr_scan_str(FILE *stream, const char *search, char *target); +extern int paramtr_scan_echo(const char *filename, const char *search); +/* descriptions */ +/* -------------------------------------------------------------------------- */ + + +#endif /* end of parascan.h */ + diff --git a/.svn/pristine/5d/5d349c54702145a5568fd48844c3df5cd57f4a63.svn-base b/.svn/pristine/5d/5d349c54702145a5568fd48844c3df5cd57f4a63.svn-base new file mode 100644 index 0000000..b13ec1f --- /dev/null +++ b/.svn/pristine/5d/5d349c54702145a5568fd48844c3df5cd57f4a63.svn-base @@ -0,0 +1,225 @@ +/** + * @file + * @brief Basic DataPointer class and its derivates SingleArray and TripleArray + * + * This file contains several classes for array-like access. The SingleArray + * and TripleArray classes and their typedefs to DataXYZ/... overload + * the operator[] and have a size function to act as their native arrays. + * Similar to the array classes, SingleObject represents a whole object with + * all its members in that allocated space. + * + * If an array of pointers to the elements of a TripleArray is required it can + * create a temporary class PointerArray which holds creates and deletes a + * native pointer array and follows the RAII-pattern. + */ + +#ifndef DATA_TYPES_H +#define DATA_TYPES_H + + +/** + * Representation of a pointer to a data field with no access methods. + * + * Type-specialized access is gained by deriving from this class and + * implementing access functions like operator[] and size(). + * + * The PrivateImplementation feature enables RAII-type locking mechanisms + * used in the scanserver for holding CacheObject-locks. It is protected so + * that scanserver-unaware code can only construct this class with a pointer + * and size. Initialization of a derived class with these locking mechanisms + * creates this class with the private implementation value, which will be + * deleted in this dtor when it completely falls out of scope. + */ +class DataPointer { +protected: + //! Subclass for storing further members and attaching an overloadable dtor + class PrivateImplementation { + public: + virtual ~PrivateImplementation() {} + }; +public: + // DataPointer& operator=(const DataPointer&) = delete; + // DataPointer(const DataPointer&) = delete; + + /** + * Ctor for the initial creation + * + * @param pointer base pointer to the data + * @param size of the pointed data in bytes + */ + DataPointer(unsigned char* pointer, unsigned int size, + PrivateImplementation* private_impl = 0) : + m_pointer(pointer), m_size(size), m_private_impl(private_impl) { + } + + /** + * Copy-Ctor for passing along via return by value + * + * The type-specialized classes (B) will be called with their + * B(DataPointer&&) temporary ctor and call this constructor, so the private + * imlementation has to be taken away. The temporary inside that constructor + * isn't seen as temporary anymore, so we need a simple reference-ctor. + */ + DataPointer(DataPointer& other) { + m_pointer = other.m_pointer; + m_size = other.m_size; + // take ownership of this value, other is a temporary and will deconstruct + m_private_impl = other.m_private_impl; + other.m_private_impl = 0; + }; + + /** + * Same as DataPointer(DataPointer&), except this is for functions returning + * DataPointer instead of derived classes, so the temporary-ctor is used. + */ + DataPointer(DataPointer&& other) { + m_pointer = other.m_pointer; + m_size = other.m_size; + // take ownership of this value, other is a temporary and will deconstruct + m_private_impl = other.m_private_impl; + other.m_private_impl = 0; + } + + //! Delete the private implementation with its derived dtor + ~DataPointer() { + if(m_private_impl != 0) + delete m_private_impl; + } + + //! Indicator for nullpointer / no data contained if false + inline bool valid() { + return m_size != 0; + } + + inline unsigned char* get_raw_pointer() const { return m_pointer; } + +protected: + unsigned char* m_pointer; + unsigned int m_size; + +private: + PrivateImplementation* m_private_impl; +}; + + + +template +class SingleArray : public DataPointer { +public: + //! Cast return-by-value temporary DataPointer to this type of array + SingleArray(DataPointer&& temp) : + DataPointer(temp) + { + } + + SingleArray(SingleArray&& temp) : + DataPointer(temp) + { + } + + //! Represent the pointer as an array of T + inline T& operator[](unsigned int i) const + { + return *(reinterpret_cast(m_pointer) + i); + } + + //! The number of T instances in this array + unsigned int size() { + return m_size / sizeof(T); + } +}; + + + +template +class TripleArray : public DataPointer { +public: + //! Cast return-by-value temporary DataPointer to this type of array + TripleArray(DataPointer&& temp) : + DataPointer(temp) + { + } + + TripleArray(TripleArray&& temp) : + DataPointer(temp) + { + } + + //! Represent the pointer as an array of T[3] + inline T* operator[](unsigned int i) const + { + return reinterpret_cast(m_pointer) + (i*3); + } + + //! The number of T[3] instances in this array + unsigned int size() const { + return m_size / (3 * sizeof(T)); + } +}; + + + +template +class SingleObject : public DataPointer { +public: + //! Cast return-by-value temporary DataPointer to this type of object + SingleObject(DataPointer&& temp) : + DataPointer(temp) + { + } + + SingleObject(SingleObject&& temp) : + DataPointer(temp) + { + } + + //! Type-cast + inline T& get() const + { + return *reinterpret_cast(m_pointer); + } + + //! There is only one object in here + unsigned int size() const { + return 1; + } +}; + + + +/** + * To simplify T** access patterns for an array of T[3] (points), this RAII- + * type class helps creating and managing this pointer array on the stack. + */ +template +class PointerArray { +public: + //! Create a temporary array and fill it sequentially with pointers to points + PointerArray(const TripleArray& data) { + unsigned int size = data.size(); + m_array = new T*[size]; + for(unsigned int i = 0; i < size; ++i) + m_array[i] = data[i]; + } + + //! Removes the temporary array on destruction (RAII) + ~PointerArray() { + delete[] m_array; + } + + //! Conversion operator to interface the TripleArray to a T** array + inline T** get() const { return m_array; } +private: + T** m_array; +}; + +// TODO: naming, see scan.h +typedef TripleArray DataXYZ; +typedef TripleArray DataXYZFloat; +typedef TripleArray DataRGB; +typedef SingleArray DataReflectance; +typedef SingleArray DataAmplitude; +typedef SingleArray DataType; +typedef SingleArray DataDeviation; + +#endif //DATA_TYPES_H diff --git a/.svn/pristine/5d/5d465b30b9cf9b8d85e18c6a9cc1eaceac691e50.svn-base b/.svn/pristine/5d/5d465b30b9cf9b8d85e18c6a9cc1eaceac691e50.svn-base new file mode 100644 index 0000000..97ff07e --- /dev/null +++ b/.svn/pristine/5d/5d465b30b9cf9b8d85e18c6a9cc1eaceac691e50.svn-base @@ -0,0 +1,24 @@ + + +int glui_img_spinup_0[] = { 12, 8, /* width, height */ + 255,255,255, 127,127,127, 127,127,127, 127,127,127, 127,127,127, + 127,127,127, 127,127,127, 127,127,127, 127,127,127, 127,127,127, + 127,127,127, 0, 0, 0, 255,255,255, 191,191,191, 191,191,191, + 191,191,191, 191,191,191, 191,191,191, 191,191,191, 191,191,191, + 191,191,191, 191,191,191, 127,127,127, 0, 0, 0, 255,255,255, + 191,191,191, 191,191,191, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 127,127,127, 191,191,191, 127,127,127, + 0, 0, 0, 255,255,255, 191,191,191, 191,191,191, 191,191,191, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 127,127,127, 191,191,191, + 191,191,191, 127,127,127, 0, 0, 0, 255,255,255, 191,191,191, + 191,191,191, 191,191,191, 191,191,191, 0, 0, 0, 127,127,127, + 191,191,191, 191,191,191, 191,191,191, 127,127,127, 0, 0, 0, + 255,255,255, 191,191,191, 191,191,191, 191,191,191, 191,191,191, + 191,191,191, 191,191,191, 191,191,191, 191,191,191, 191,191,191, + 127,127,127, 0, 0, 0, 255,255,255, 191,191,191, 191,191,191, + 191,191,191, 191,191,191, 191,191,191, 191,191,191, 191,191,191, + 191,191,191, 191,191,191, 191,191,191, 0, 0, 0, 255,255,255, + 255,255,255, 255,255,255, 255,255,255, 255,255,255, 255,255,255, + 255,255,255, 255,255,255, 255,255,255, 255,255,255, 255,255,255, + 255,255,255, +}; diff --git a/.svn/pristine/5d/5d4b410731ba367d05755ef9ea8032c9bbb80279.svn-base b/.svn/pristine/5d/5d4b410731ba367d05755ef9ea8032c9bbb80279.svn-base new file mode 100644 index 0000000..e216d0a --- /dev/null +++ b/.svn/pristine/5d/5d4b410731ba367d05755ef9ea8032c9bbb80279.svn-base @@ -0,0 +1,122 @@ +/* + * parcelinfo implementation + * + * Copyright (C) Uwe Hebbelmann, Sebastian Stock, Andre Schemschat + * + * Released under the GPL version 3. + * + */ + +#include "grid/parcelinfo.h" + +long parcelinfo::parcelwidth; +long parcelinfo::parcelheight; + +/** + * Ctor + * @param offsetX the x-offset + * @param offsetZ the z-offset + * @param filename the filename of the parcel + */ +parcelinfo::parcelinfo(long offsetX, long offsetZ, std::string filename) +{ + this->offsetX = offsetX; + this->offsetZ = offsetZ; + this->filename = filename; + this->used = true; +} + +/** + * Sets the parcelsize + * @param with the width of the parcel + * @param height the height of the parcel + */ +void parcelinfo::setParcelsize(long width, long height) +{ + parcelinfo::parcelwidth = width; + parcelinfo::parcelheight = height; +} + +/** + * Sets the used-flag true (Which means + * that the parcel was used during the last scan) + */ +void parcelinfo::setUsed() +{ + this->used = true; +} + +/** + * Resets the used-flag + */ +void parcelinfo::resetUsed() +{ + this->used = false; +} + +/** + * Returns whether the parcel was needed + * @return True if it was needed + */ +int parcelinfo::wasUsed() const +{ + return this->used; +} + +/** + * Operator <. Compares by offsets. + * + * @param parcel the parcel to be compared to this + * @return true if this < parcel + */ +bool parcelinfo::operator< (const parcelinfo& parcel) const +{ + if(getOffsetX() < parcel.getOffsetZ()) + { + return true; + } + else if(getOffsetX() == parcel.getOffsetX()) + { + if(getOffsetZ() < parcel.getOffsetZ()) + return true; + else + return false; + } + else + { + return false; + } +} + +/** + * Compares two parcels if they are equal (Offset-X and -Z equal) + * + * @param parcel the other parcel + * @return true if euqal + */ +bool parcelinfo::operator== (const parcelinfo &parcel) const +{ + return (getOffsetX() == parcel.getOffsetX() && + getOffsetZ() == parcel.getOffsetZ()); +} + +/** + * The methods checks if the coordinates given lie in + * the parcel represented by the parcelinfo + * + * @param x The absolute x coordinate + * @param z the absolute z coordinate + * @return true if the point lies within the parcel + */ +bool parcelinfo::contains(long x, long z) const +{ + bool xIn = (x >= getOffsetX() && + x <= getOffsetX() + parcelinfo::parcelwidth); + + bool zIn = (z >= getOffsetZ() && + z <= getOffsetZ() + parcelinfo::parcelheight); + + return xIn && zIn; +} + + diff --git a/.svn/pristine/5e/5e78feb428cbf36969530c51bbfa6c170dbb4ec9.svn-base b/.svn/pristine/5e/5e78feb428cbf36969530c51bbfa6c170dbb4ec9.svn-base new file mode 100644 index 0000000..6cca6ea --- /dev/null +++ b/.svn/pristine/5e/5e78feb428cbf36969530c51bbfa6c170dbb4ec9.svn-base @@ -0,0 +1,24 @@ +// ===================================================================================== +// +// Filename: numberrec.h +// +// Description: +// +// Version: 1.0 +// Created: 09/26/2010 01:26:59 AM +// Revision: none +// Compiler: g++ +// +// Author: Jan Elseberg (), jelseber@uos.de +// Company: Universitaet Osnabrueck +// +// ===================================================================================== +#ifndef __NUMBERREC_H__ +#define __NUMBERREC_H__ + + +//void my_test(); +bool gocr_recognizeNumber(string &filename, int &number, double &probability); + +#endif + diff --git a/.svn/pristine/5e/5eb726b20157ebeafa1cede25ee0cf5c4649f6cf.svn-base b/.svn/pristine/5e/5eb726b20157ebeafa1cede25ee0cf5c4649f6cf.svn-base new file mode 100644 index 0000000..3b23ef6 --- /dev/null +++ b/.svn/pristine/5e/5eb726b20157ebeafa1cede25ee0cf5c4649f6cf.svn-base @@ -0,0 +1,85 @@ +#ifndef __PARCELINFO_H_ +#define __PARCELINFO_H_ + +#include + +/** + * The class contains the information about an already created parcel, + * such as offset and filename, but not the actual data. + * It also contains the parcel height and width as static members. + * + * @author Uwe Hebbelmann, Sebastian Stock, Andre SChemschat + * @date 15.02.08 + */ +class parcelinfo +{ + private: + /** The x-offset of parcel (absolute coordiante) */ + long offsetX; + + /** The z-offset of parcel (absolute coordiante) */ + long offsetZ; + + /** The filename of the parcel */ + std::string filename; + + /** sets whether the parcel was needed for the last scan or not */ + bool used; + + /** The width of the parcel */ + static long parcelwidth; + + /** The height of the parcel */ + static long parcelheight; + + public: + /** @brief Sets the parcelsize */ + static void setParcelsize(long width, long height); + + /** @brief CTor */ + parcelinfo(long offsetX, long offsetZ, std::string filename); + + /** @brief < operator */ + bool operator< (const parcelinfo &parcel) const; + + /** @brief == operator */ + bool operator== (const parcelinfo &parcel) const; + + /** @brief Checks if the parcel contains a given point*/ + bool contains(long x, long z) const; + + /** @brief Sets the used flag (true) */ + void setUsed(); + + /** @brief Resets the used flag (false) */ + void resetUsed(); + + /** @brief Returns whether the parcel was needed */ + int wasUsed() const; + + /** + * Returns the x-offset + * @return the x-offset of the parcel + */ + inline int getOffsetX() const { + return this->offsetX; + } + + /** + * Returns the z-offset + * @return the z-offset of the parcel + */ + inline int getOffsetZ() const { + return this->offsetZ; + } + + /** + * Getter for the filename + * @return the filename of the parcel + */ + inline const std::string& getFilename() const { + return this->filename; + } +}; + +#endif diff --git a/.svn/pristine/5e/5ed8495e8d30d5132dc3c320ee00fb7b4724c43c.svn-base b/.svn/pristine/5e/5ed8495e8d30d5132dc3c320ee00fb7b4724c43c.svn-base new file mode 100644 index 0000000..d3142da --- /dev/null +++ b/.svn/pristine/5e/5ed8495e8d30d5132dc3c320ee00fb7b4724c43c.svn-base @@ -0,0 +1,367 @@ +/* + * managedScan implementation + * + * Copyright (C) Kai Lingemann, Thomas Escher + * + * Released under the GPL version 3. + * + */ + +#include "slam6d/managedScan.h" + +#include "scanserver/clientInterface.h" +#include "slam6d/Boctree.h" +#include "slam6d/kdManaged.h" + +#ifdef WITH_METRICS +#include "slam6d/metrics.h" +#endif //WITH_METRICS + +#include +using std::stringstream; + +#include +using namespace boost::filesystem; + + + +SharedScanVector* ManagedScan::shared_scans = 0; + + + +void ManagedScan::openDirectory(const std::string& path, IOType type, int start, int end) +{ + // start the client first + try { + ClientInterface::create(); + } catch(std::runtime_error& e) { + cerr << "ClientInterface could not be created: " << e.what() << endl; + cerr << "Start the scanserver first." << endl; + exit(-1); + } + +#ifdef WITH_METRICS + Timer t = ClientMetric::read_scan_time.start(); +#endif //WITH_METRICS + + ClientInterface* client = ClientInterface::getInstance(); + shared_scans = client->readDirectory(path.c_str(), type, start, end); + + for(SharedScanVector::iterator it = shared_scans->begin(); it != shared_scans->end(); ++it) { + // add a scan with reference on the shared scan + SharedScan* shared = it->get(); + ManagedScan* scan = new ManagedScan(shared); + Scan::allScans.push_back(scan); + } + +#ifdef WITH_METRICS + ClientMetric::read_scan_time.end(t); +#endif //WITH_METRICS +} + +void ManagedScan::closeDirectory() +{ + // clean up the scan vector + for(std::vector::iterator it = Scan::allScans.begin(); it != Scan::allScans.end(); ++it) + delete *it; + allScans.clear(); + // remove the shared scan vector + ClientInterface* client = ClientInterface::getInstance(); +#ifdef WITH_METRICS + ClientInterface::getInstance()->printMetrics(); +#endif //WITH_METRICS + client->closeDirectory(shared_scans); +} + +std::size_t ManagedScan::getMemorySize() +{ + ClientInterface* client = ClientInterface::getInstance(); + return client->getCacheSize(); +} + + + +ManagedScan::ManagedScan(SharedScan* shared_scan) : + m_shared_scan(shared_scan), + m_reduced_ready(false), + m_reset_frames_on_write(true) +{ + // request pose from the shared scan + double* euler = m_shared_scan->getPose(); + rPos[0] = euler[0]; + rPos[1] = euler[1]; + rPos[2] = euler[2]; + rPosTheta[0] = euler[3]; + rPosTheta[1] = euler[4]; + rPosTheta[2] = euler[5]; + + // write original pose matrix + EulerToMatrix4(euler, &euler[3], transMatOrg); + + // initialize transform matrices from the original one, could just copy transMatOrg to transMat instead + transformMatrix(transMatOrg); + + // reset the delta align matrix to represent only the transformations after local-to-global (transMatOrg) one + M4identity(dalignxf); +} + +ManagedScan::~ManagedScan() +{ + // TODO: something to do? +} + +void ManagedScan::setRangeFilter(double max, double min) +{ + m_shared_scan->setRangeParameters(max, min); +} + +void ManagedScan::setHeightFilter(double top, double bottom) +{ + m_shared_scan->setHeightParameters(top, bottom); +} + +void ManagedScan::setReductionParameter(double voxelSize, int nrpts, PointType pointtype) +{ + Scan::setReductionParameter(voxelSize, nrpts, pointtype); + + // set parameters to invalidate old cache data + stringstream s; + s << voxelSize << " " << nrpts << " " << transMatOrg; + m_shared_scan->setReductionParameters(s.str().c_str()); +} + +void ManagedScan::setShowReductionParameter(double voxelSize, int nrpts, PointType pointtype) +{ + show_reduction_voxelSize = voxelSize; + show_reduction_nrpts = nrpts; + show_reduction_pointtype = pointtype; + + // set parameters to invalidate old cache data + stringstream s; + s << voxelSize << " " << nrpts; + m_shared_scan->setShowReductionParameters(s.str().c_str()); +} + +void ManagedScan::setOcttreeParameter(double reduction_voxelSize, double octtree_voxelSize, PointType pointtype, bool loadOct, bool saveOct) +{ + Scan::setOcttreeParameter(reduction_voxelSize, octtree_voxelSize, pointtype, loadOct, saveOct); + + // set octtree parameters to invalidate cached ones with other parameters (changing range/height is already handled) + stringstream s; + s << reduction_voxelSize << " " << octtree_voxelSize << " " << pointtype.toFlags(); + m_shared_scan->setOcttreeParameters(s.str().c_str()); +} + +DataPointer ManagedScan::get(const std::string& identifier) +{ + if(identifier == "xyz") { + return m_shared_scan->getXYZ(); + } else + if(identifier == "rgb") { + return m_shared_scan->getRGB(); + } else + if(identifier == "reflectance") { + return m_shared_scan->getReflectance(); + } else + if(identifier == "amplitude") { + return m_shared_scan->getAmplitude(); + } else + if(identifier == "type") { + return m_shared_scan->getType(); + } else + if(identifier == "deviation") { + return m_shared_scan->getDeviation(); + } else + if(identifier == "xyz reduced") { + // if this is a fresh run, initialize reduced properly via original or creating it anew + if(!m_reduced_ready) { + calcReducedOnDemand(); + } + return m_shared_scan->getXYZReduced(); + } else + if(identifier == "xyz reduced original") { + // if reduction has completed, original will exist (either from last run or created in this run) + if(!m_reduced_ready) { + calcReducedOnDemand(); + } + return m_shared_scan->getXYZReducedOriginal(); + } else + if(identifier == "xyz reduced show") { + if(m_shared_scan->getXYZReducedShow().valid()) + return m_shared_scan->getXYZReducedShow(); + calcReducedShow(); + return m_shared_scan->getXYZReducedShow(); + } else + if(identifier == "octtree") { + if(m_shared_scan->getOcttree().valid()) + return m_shared_scan->getOcttree(); + createOcttree(); + return m_shared_scan->getOcttree(); + } + { + throw runtime_error(string("Identifier '") + identifier + "' not compatible with ManagedScan::get. Upgrade SharedScan for this data field."); + } +} + +void ManagedScan::get(unsigned int types) +{ + m_shared_scan->prefetch(types); +} + +DataPointer ManagedScan::create(const std::string& identifier, unsigned int size) +{ + // map identifiers to functions in SharedScan and scale back size from bytes to number of points + if(identifier == "xyz reduced") { + return m_shared_scan->createXYZReduced(size / (3*sizeof(double))); + } else + if(identifier == "xyz reduced original") { + return m_shared_scan->createXYZReducedOriginal(size / (3*sizeof(double))); + } else + { + throw runtime_error(string("Identifier '") + identifier + "' not compatible with ManagedScan::create. Upgrade SharedScan for this data field."); + } +} + +void ManagedScan::clear(const std::string& identifier) +{ + // nothing to do here + // TODO: mark CacheObjects with a low priority for faster removal by the manager +} + +void ManagedScan::createSearchTreePrivate() +{ + switch(searchtree_nnstype) + { + case simpleKD: + kd = new KDtreeManaged(this); + break; + case BOCTree: + kd = new BOctTree(PointerArray(get("xyz reduced original")).get(), size("xyz reduced original"), 10.0, PointType(), true); + break; + case -1: + throw runtime_error("Cannot create a SearchTree without setting a type."); + default: + throw runtime_error("SearchTree type not implemented for ManagedScan"); + } + + // TODO: look into CUDA compability +} + +void ManagedScan::calcReducedOnDemandPrivate() +{ + // either copy from original or create them like BasicScan + DataXYZ xyz_orig(m_shared_scan->getXYZReducedOriginal()); + if(xyz_orig.valid()) { + // set true to inform further get("xyz reduced original") calls to get the data instead of looping calcReducedOnDemand + m_reduced_ready = true; + copyOriginalToReduced(); + } else { + // create reduced points and transform to initial position, save a copy of this for SearchTree + calcReducedPoints(); + // set true to inform further get("xyz reduced") calls to get the data instead of looping calcReducedOnDemand + m_reduced_ready = true; + transformReduced(transMatOrg); + copyReducedToOriginal(); + } +} + +void ManagedScan::calcReducedShow() +{ + // create an octtree reduction from full points + DataXYZ xyz(get("xyz")); + BOctTree* oct = new BOctTree(PointerArray(xyz).get(), xyz.size(), show_reduction_voxelSize); + + vector center; + center.clear(); + + if(show_reduction_nrpts > 0) { + if(show_reduction_nrpts == 1) { + oct->GetOctTreeRandom(center); + } else { + oct->GetOctTreeRandom(center, show_reduction_nrpts); + } + } else { + oct->GetOctTreeCenter(center); + } + + unsigned int size = center.size(); + TripleArray xyz_r(m_shared_scan->createXYZReducedShow(size)); + for(unsigned int i = 0; i < size; ++i) { + for(unsigned int j = 0; j < 3; ++j) { + xyz_r[i][j] = center[i][j]; + } + } + + delete oct; +} + +void ManagedScan::createOcttree() +{ + string scanFileName = string(m_shared_scan->getDirPath()) + "scan" + getIdentifier() + ".oct"; + BOctTree* btree = 0; + + // if loadOct is given, load the octtree under blind assumption that parameters match + if(octtree_loadOct && exists(scanFileName)) { + btree = new BOctTree(scanFileName); + } else { + if(octtree_reduction_voxelSize > 0) { // with reduction, only xyz points + TripleArray xyz_r(get("xyz reduced show")); + btree = new BOctTree(PointerArray(xyz_r).get(), xyz_r.size(), octtree_voxelSize, octtree_pointtype, true); + } else { // without reduction, xyz + attribute points + float** pts = octtree_pointtype.createPointArray(this); + unsigned int nrpts = size("xyz"); + btree = new BOctTree(pts, nrpts, octtree_voxelSize, octtree_pointtype, true); + for(unsigned int i = 0; i < nrpts; ++i) delete[] pts[i]; delete[] pts; + } + // save created octtree + if(octtree_saveOct) { + cout << "Saving octree " << scanFileName << endl; + btree->serialize(scanFileName); + } + } + + // copy tree into cache + try { + unsigned int size = btree->getMemorySize(); + unsigned char* mem_ptr = m_shared_scan->createOcttree(size).get_raw_pointer(); + new(mem_ptr) BOctTree(*btree, mem_ptr, size); + delete btree; btree = 0; + } catch(runtime_error& e) { + // delete tree if copy to cache failed + delete btree; + throw e; + } +} + + +unsigned int ManagedScan::readFrames() +{ + // automatically read on getFrames + return m_shared_scan->getFrames().size(); +} + +void ManagedScan::saveFrames() +{ + m_shared_scan->saveFrames(); +} + +unsigned int ManagedScan::getFrameCount() +{ + return m_shared_scan->getFrames().size(); +} + +void ManagedScan::getFrame(unsigned int i, const double*& pose_matrix, AlgoType& type) +{ + const Frame& frame(m_shared_scan->getFrames().at(i)); + pose_matrix = frame.transformation; + type = static_cast(frame.type); +} + +void ManagedScan::addFrame(AlgoType type) +{ + if(m_reset_frames_on_write) { + m_shared_scan->clearFrames(); + m_reset_frames_on_write = false; + } + m_shared_scan->addFrame(transMat, static_cast(type)); +} diff --git a/.svn/pristine/5f/5f6d54b33eb10bc4108ab348a5a619f306feb326.svn-base b/.svn/pristine/5f/5f6d54b33eb10bc4108ab348a5a619f306feb326.svn-base new file mode 100644 index 0000000..409487c --- /dev/null +++ b/.svn/pristine/5f/5f6d54b33eb10bc4108ab348a5a619f306feb326.svn-base @@ -0,0 +1,619 @@ +/** + * @file + * @brief Implementation of reading 3D scans + * @author Andreas Nuechter. Jacobs University Bremen gGmbH + * @author Dorit Borrmann. Smart Systems Group, Jacobs University Bremen gGmbH, Germany. + */ + +#include "slam6d/scan_io_velodyne_frames.h" +#include "slam6d/globals.icc" +#include +using std::ifstream; +#include +using std::cerr; +using std::endl; + +#include +using std::swap; + +#include +#include +#include +#include +#include + +using namespace std; + + +#ifdef _MSC_VER +#include +#endif + +#ifdef _MSC_VER +#include "XGetopt.h" +#else +#include +#endif + + +#define BLOCK_OFFSET 42+16 + +#define BLOCK_SIZE 1206 +#define CIRCLELENGTH 260 +#define VELODYNE_NUM_LASERS 64 +#define CircleBufferSize CIRCLELENGTH*32*12 +#define CIRCLEROUND CIRCLELENGTH*6 + + +#define RADIANS_PER_LSB 0.0174532925 +#define METERS_PER_LSB 0.002 +#define METERS_PER_CM 0.01 + +#define TWOPI_INV (0.5/M_PI) +#define TWOPI (2*M_PI) + +typedef struct raw_packet + { + unsigned char dat[1200]; + unsigned short revolution; + unsigned char status[4]; + } raw_packet_t; + + +typedef unsigned char BYTE; + + + +struct velodyne_sample +{ + float xyz[3]; // calibrated, projected into velodyne coordinate system + float distance; + float corredistance; + + unsigned short rot; + float rotational; + BYTE intensity; + + float theta,phi; + int offset; + + + float normal; + float normal_theta; + float smooth; + + float scanline_drtZ; + float scanline_drtD; + float scanline_countZ; + float scanline_countD; + + /////////////////////////Type of Points cloud///////////////////////////////// + int classType; // 0 nused , 1 road , 2 build , 3 Tree , 4 person ,5 car , 6 ground +}; + + +long CountOfLidar = 0; + + +double velodyne_calibrated[VELODYNE_NUM_LASERS][5] = +{ + //vertCorrection rotCorrection distCorrection vertOffsetCorrection horizOffsetCorrection + { -7.158120, -4.954240, 0.000000 , 0.000000 , -4.000000 }, // laser 0 + { -6.817820, -2.814700, 0.000000 , 0.000000 , 4.000000 }, // laser 1 + { 0.317822, 2.814740, 0.000000 , 0.000000 , -4.000000 }, // laser 2 + { 0.658119, 4.954230, 0.000000 , 0.000000 , 4.000000 }, // laser 3 + { -6.477650, -0.679162, 0.000000 , 0.000000 , -4.000000 }, // laser 4 + { -6.137590, 1.455470, 0.000000 , 0.000000 , 4.000000 }, // laser 5 + { -8.520810, -1.455470, 0.000000 , 0.000000 , -4.000000 }, // laser 6 + { -8.179890, 0.679162, 0.000000 , 0.000000 , 4.000000 }, // laser 7 + { -5.797640, 3.592120, 0.000000 , 0.000000 , -4.000000 }, // laser 8 + { -5.457770, 5.733800, 0.000000 , 0.000000 , 4.000000 }, // laser 9 + { -7.839140, 2.814740, 0.000000 , 0.000000 , -4.000000 }, // laser 10 + { -7.498560, 4.954200, 0.000000 , 0.000000 , 4.000000 }, // laser 11 + { -3.080210, -4.954240, 0.000000 , 0.000000 , -4.000000 }, // laser 12 + { -2.740630, -2.814700, 0.000000 , 0.000000 , 4.000000 }, // laser 13 + { -5.117980, -5.733800, 0.000000 , 0.000000 , -4.000000 }, // laser 14 + { -4.778260, -3.592120, 0.000000 , 0.000000 , 4.000000 }, // laser 15 + { -2.401040, -0.679162, 0.000000 , 0.000000 , -4.000000 }, // laser 16 + { -2.061410, 1.455470, 0.000000 , 0.000000 , 4.000000 }, // laser 17 + { -4.438590, -1.455470, 0.000000 , 0.000000 , -4.000000 }, // laser 18 + { -4.098960, 0.679162, 0.000000 , 0.000000 , 4.000000 }, // laser 19 + { -1.721740, 3.592120, 0.000000 , 0.000000 , -4.000000 }, // laser 20 + { -1.382020, 5.733800, 0.000000 , 0.000000 , 4.000000 }, // laser 21 + { -3.759370, 2.814740, 0.000000 , 0.000000 , -4.000000 }, // laser 22 + { -3.419790, 4.954240, 0.000000 , 0.000000 , 4.000000 }, // laser 23 + { 0.998555, -4.954240, 0.000000 , 0.000000 , -4.000000 }, // laser 24 + { 1.339140, -2.814740, 0.000000 , 0.000000 , 4.000000 }, // laser 25 + { -1.042230, -5.733800, 0.000000 , 0.000000 , -4.000000 }, // laser 26 + { -0.702363, -3.592120, 0.000000 , 0.000000 , 4.000000 }, // laser 27 + { 1.679890, -0.679162, 0.000000 , 0.000000 , -4.000000 }, // laser 28 + { 2.020810, 1.455470, 0.000000 , 0.000000 , 4.000000 }, // laser 29 + { -0.362407, -1.455470, 0.000000 , 0.000000 , -4.000000 }, // laser 30 + { -0.022350, 0.679162, 0.000000 , 0.000000 , 4.000000 }, // laser 31 + { -22.737886, -7.443011, 0.000000 , 0.000000 , -4.000000 }, // laser 32 + { -22.226072, -4.224233, 0.000000 , 0.000000 , 4.000000 }, // laser 33 + { -11.513928, 4.224233, 0.000000 , 0.000000 , -4.000000 }, // laser 34 + { -11.002114, 7.443011, 0.000000 , 0.000000 , 4.000000 }, // laser 35 + { -21.714685, -1.018773, 0.000000 , 0.000000 , -4.000000 }, // laser 36 + { -21.203688, 2.183498, 0.000000 , 0.000000 , 4.000000 }, // laser 37 + { -24.790272, -2.183498, 0.000000 , 0.000000 , -4.000000 }, // laser 38 + { -24.276321, 1.018773, 0.000000 , 0.000000 , 4.000000 }, // laser 39 + { -20.693031, 5.3926148, 0.000000 , 0.000000 , -4.000000 }, // laser 40 + { -20.182682, 8.6188126, 0.000000 , 0.000000 , 4.000000 }, // laser 41 + { -23.762968, 4.2242332, 0.000000 , 0.000000 , -4.000000 }, // laser 42 + { -23.250172, 7.4430108, 0.000000 , 0.000000 , 4.000000 }, // laser 43 + { -16.615318, -7.4430108, 0.000000 , 0.000000 , -4.000000 }, // laser 44 + { -16.105938, -4.2242332, 0.000000 , 0.000000 , 4.000000 }, // laser 45 + { -19.672594, -8.6188126, 0.000000 , 0.000000 , -4.000000 }, // laser 46 + { -19.162729, -5.3926148, 0.000000 , 0.000000 , 4.000000 }, // laser 47 + { -15.596496, -1.018773, 0.000000 , 0.000000 , -4.000000 }, // laser 48 + { -15.086954, 2.1834979, 0.000000 , 0.000000 , 4.000000 }, // laser 49 + { -18.653046, -2.1834979, 0.000000 , 0.000000 , -4.000000 }, // laser 50 + { -18.143503, 1.018773, 0.000000 , 0.000000 , 4.000000 }, // laser 51 + { -14.577271, 5.3926148, 0.000000 , 0.000000 , -4.000000 }, // laser 52 + { -14.067405, 8.6188126, 0.000000 , 0.000000 , 4.000000 }, // laser 53 + { -17.634062, 4.2242332, 0.000000 , 0.000000 , -4.000000 }, // laser 54 + { -17.124681, 7.4430108, 0.000000 , 0.000000 , 4.000000 }, // laser 55 + { -10.489829, -7.4430108, 0.000000 , 0.000000 , -4.000000 }, // laser 56 + { -9.9770317, -4.2242332, 0.000000 , 0.000000 , 4.000000 }, // laser 57 + { -13.557318, -8.6188126, 0.000000 , 0.000000 , -4.000000 }, // laser 58 + { -13.046968, -5.3926148, 0.000000 , 0.000000 , 4.000000 }, // laser 59 + { -9.4636793, -1.018773, 0.000000 , 0.000000 , -4.000000 }, // laser 60 + { -8.949728, 2.1834979, 0.000000 , 0.000000 , 4.000000 }, // laser 61 + { -12.536313, -2.1834979, 0.000000 , 0.000000 , -4.000000 }, // laser 62 + { -12.025314, 1.018773, 0.000000 , 0.000000 , 4.000000 }, // laser 63 +}; + + + +double rotCorrection[VELODYNE_NUM_LASERS]; +double vertCorrection[VELODYNE_NUM_LASERS]; +double distCorrection[VELODYNE_NUM_LASERS]; +double vertoffsetCorrection[VELODYNE_NUM_LASERS]; +double horizdffsetCorrection[VELODYNE_NUM_LASERS]; + +int physical2logical[VELODYNE_NUM_LASERS]; +int logical2physical[VELODYNE_NUM_LASERS]; + +double absf ( double a ) +{ + if ( a < 0 ) + return -a; + return a; +} + + +int velodyne_physical_to_logical ( int phys ) +{ + return physical2logical[phys]; +} + +int velodyne_logical_to_physical ( int logical ) +{ + return logical2physical[logical]; +} + +int laser_phi_compare(const void *_a, const void *_b) +{ + int a = *((int*) _a); + int b = *((int*) _b); + + if (velodyne_calibrated[a][0] < velodyne_calibrated[b][0]) + return -1; + + return 1; +} + +/** valid only for v > 0 **/ +static inline double mod2pi_positive(double vin) +{ + double q = vin * TWOPI_INV + 0.5; + int qi = (int) q; + + return vin - qi*TWOPI; +} + +/** Map v to [-PI, PI] **/ +static inline double mod2pi(double vin) +{ + if (vin < 0) + return -mod2pi_positive(-vin); + else + return mod2pi_positive(vin); +} + +/** Return vin such that it is within PI degrees of ref **/ +static inline double mod2pi_ref(double ref, double vin) +{ + return ref + mod2pi(vin - ref); +} + + + + +int velodyne_calib_precompute() +{ + int i; + int logical; + for ( i = 0; i < VELODYNE_NUM_LASERS; i++ ) + logical2physical[i] = i; + + qsort ( logical2physical, VELODYNE_NUM_LASERS, sizeof ( int ), laser_phi_compare ); + + for ( logical = 0; logical < VELODYNE_NUM_LASERS; logical++ ) + { + physical2logical[logical2physical[logical]] = logical; + } + + //vertCorrection rotCorrection distCorrection vertOffsetCorrection horizOffsetCorrection + for ( i = 0; i < VELODYNE_NUM_LASERS; i++ ) + { + + vertCorrection[i] = ( velodyne_calibrated[i][0] ) * RADIANS_PER_LSB; + + rotCorrection[i] = ( velodyne_calibrated[i][1] ) * RADIANS_PER_LSB; + + distCorrection[i] = velodyne_calibrated[i][2] * METERS_PER_CM; + + vertoffsetCorrection[i] = velodyne_calibrated[i][3] * METERS_PER_CM; + + horizdffsetCorrection[i] = velodyne_calibrated[i][4] * METERS_PER_CM; + } + + return 0; +} + + + + + +int read_one_packet ( FILE *fp, vector &ptss, int maxDist, int minDist ) +{ + int maxDist2 = sqr(maxDist); + int minDist2 = sqr(minDist); + + int c, i, j; + unsigned char Head = 0; + BYTE buf[BLOCK_SIZE]; + Point point; + BYTE *p; + unsigned short *ps; + unsigned short *pshort; + short *pt; + + + double ctheta; + double theta, phi; + + double sin_ctheta, cos_ctheta; + double sin_theta, cos_theta; + double sin_phi, cos_phi; + + unsigned short physicalNO; + //unsigned short logicalNO; + + double rotational; + double distance; + double corredistance; + int intensity; + // int physical; + int size; + + + + //unsigned short rot; + + + double x, y, z; +/* + int circle_col = 0; + int circle_row = 0; + int circle_col_other = 0; + int circle_row_other = 0; + */ + + + for ( c = 0 ; c < CIRCLELENGTH; c++ ) + { + + fseek(fp , BLOCK_OFFSET, SEEK_CUR); + size=fread ( buf, 1, BLOCK_SIZE, fp ); + + if(size minDist2*1.0)) + { + ptss.push_back(point); + //printf("%f %f %f %f %f %f\n",point.x,point.y,point.z,point.reflectance,minDist2*1.0,minDist2*1.0); + } + } + p = p + 100; + ps = ( unsigned short * ) p; + } + + + } + + + + return 0; +} + + +/** + * Reads specified scans from given directory in + * the file format Riegl Laser Measurement GmbH + * uses. It will be compiled as shared lib. + * + * Scan poses will NOT be initialized after a call + * to this function. Initial pose estimation works + * only with the -p switch, i.e., trusting the initial + * estimations by Riegl. + * + * The scans have to be exported from the Riegl software + * as follows: + * 1. Export point cloud data to ASCII + * Use Scanners own Coordinate System (SOCS) + * X Y Z Range Theta Phi Reflectance + * 2. Export acqusition location (after you have registered + * with the Riegl software) + * Export SOP + * Write out as .dat file + * + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param dir The directory from which to read + * @param maxDist Reads only Points up to this Distance + * @param minDist Reads only Points from this Distance + * @param euler Initital pose estimates (will not be applied to the points + * @param ptss Vector containing the read points + */ +int ScanIO_velodyne_frame::readScans(int start, int end, string &dir, int maxDist, int minDist, + double *euler, vector &ptss) +{ + static int fileCounter = start; + string scanFileName; + string poseFileName; + string framesFileName; + + + FILE *scan_in = 0; + FILE *pose_in = 0; + ifstream frames_in; + // int my_fileNr = fileCounter; + double transMat[16]; + int type; + + if (end > -1 && fileCounter > end) return -1; // 'nuf read + + + scanFileName = dir + "scan" + ".bin"; + poseFileName = dir + "scan" + ".pose"; + framesFileName = dir + "scan" + to_string(fileCounter,3) + ".frames"; + + scan_in = fopen(scanFileName.c_str(),"rb"); + if(scan_in==NULL) + { + cerr << "ERROR: Missing file " << scanFileName <<" "<> transMat >> type; + } + catch(const exception &e) { + break; + } + } + Matrix4ToEuler(transMat, &euler[3], euler); + + cout << " @ pose (" << euler[0] << "," << euler[1] << "," << euler[2] + << "," << euler[3] << "," << euler[4] << "," << euler[5] << ")" << endl; + + velodyne_calib_precompute(); + cout << "Processing Scan " << scanFileName; + cout.flush(); + + + + + +#if 0 + raw_packet_t raw_tmp; + fseeko(scan_in, 0, SEEK_SET); + fread(&raw_tmp,sizeof(raw_packet_t),1,scan_in); + int revolution=raw_tmp.revolution+fileCounter+1; + int i=0; + + while(raw_tmp.revolution!=revolution) + { + printf("%d %d\n",i++,raw_tmp.revolution); + fread(&raw_tmp,sizeof(raw_packet_t),1,scan_in); + } +#else + + + + cout.flush(); + ptss.reserve(12*32*CIRCLELENGTH); + + #if 0 + fseeko(scan_in, 0, SEEK_SET); + fseeko(scan_in, BLOCK_SIZE*CIRCLELENGTH*fileCounter, SEEK_CUR); + #else + fseek(scan_in, 24, SEEK_SET); + fseek(scan_in, (BLOCK_SIZE+BLOCK_OFFSET)*CIRCLELENGTH*fileCounter, SEEK_CUR); + #endif + +#endif + read_one_packet(scan_in, ptss, maxDist, minDist); + cout << " with " << ptss.size() << " Points"; + + + cout << " done " << fileCounter< +using std::stringstream; +#include +using std::runtime_error; + +#include +using std::cout; +using std::endl; + + + +map* PointFilter::factory = new map; + + + +PointFilter::PointFilter() : + m_changed(true), m_checker(0) +{ +} + +PointFilter::PointFilter(const std::string& params) : + m_changed(true), m_checker(0) +{ + size_t start = 0, end = string::npos; + while((end = params.find(' ', start)) != string::npos) { + // extract the word (start-end+1) without the space (-1) + string key(params.substr(start, start-end)); + end++; + // get the second word position + start = params.find(' ', end); + // insert + m_params[key] = params.substr(end, (start-end)); + // advance to the character after space + if(start != string::npos) + start++; + else + break; + } +} + +PointFilter::~PointFilter() +{ + if(m_checker) + delete m_checker; +} + +PointFilter& PointFilter::setRange(double maxDist, double minDist) +{ + m_changed = true; + stringstream s_max; s_max << maxDist; + stringstream s_min; s_min << minDist; + m_params["rangemax"] = s_max.str(); + m_params["rangemin"] = s_min.str(); + return *this; +} + +PointFilter& PointFilter::setHeight(double top, double bottom) +{ + m_changed = true; + stringstream s_top; s_top << top; + stringstream s_bottom; s_bottom << bottom; + m_params["heighttop"] = s_top.str(); + m_params["heightbottom"] = s_bottom.str(); + return *this; +} + +std::string PointFilter::getParams() +{ + stringstream s; + for(map::iterator it = m_params.begin(); it != m_params.end(); ++it) { + s << (*it).first << " " << (*it).second << " "; + } + return s.str(); +} + +void PointFilter::createCheckers() +{ + // delete the outdated ones + if(m_checker) { + delete m_checker; + m_checker = 0; + } + + // create new ones + Checker** current = &m_checker; + for(map::iterator it = m_params.begin(); it != m_params.end(); ++it) { + *current = (*factory)[it->first](it->second); + // if a Checker has been successfully created advance to its pointer in the chain + if(*current) { + current = &((*current)->m_next); + } + } +} + + + +Checker::Checker() : + m_next(0) +{ +} + +Checker::~Checker() +{ + if(m_next) + delete m_next; +} + + + +// create factory instaces for key string to factory function mapping +namespace { + CheckerFactory max("rangemax"); + CheckerFactory min("rangemin"); + CheckerFactory top("heighttop"); + CheckerFactory bottom("heightbottom"); +} + + + +CheckerRangeMax::CheckerRangeMax(const std::string& value) { + stringstream s(value); + s >> m_max; + // default value: no check + if(m_max <= 0.0) throw runtime_error("No range filter needed."); + m_max *= m_max; +} + +bool CheckerRangeMax::test(double* point) { + if(point[0]*point[0] + point[1]*point[1] + point[2]*point[2] < m_max) + return true; + return false; +} + + + +CheckerRangeMin::CheckerRangeMin(const std::string& value) { + stringstream s(value); + s >> m_min; + // default value: no check + if(m_min <= 0.0) throw runtime_error("No range filter needed."); + m_min *= m_min; +} + +bool CheckerRangeMin::test(double* point) { + if(point[0]*point[0] + point[1]*point[1] + point[2]*point[2] > m_min) + return true; + return false; +} + + + +CheckerHeightTop::CheckerHeightTop(const std::string& value) { + stringstream s(value); + s >> m_top; +} + +bool CheckerHeightTop::test(double* point) { + if(point[1] < m_top) + return true; + return false; +} + + + +CheckerHeightBottom::CheckerHeightBottom(const std::string& value) { + stringstream s(value); + s >> m_bottom; +} + +bool CheckerHeightBottom::test(double* point) { + if(point[1] > m_bottom) + return true; + return false; +} diff --git a/.svn/pristine/60/606a71950c5ed95759602af00fda8e994c486c05.svn-base b/.svn/pristine/60/606a71950c5ed95759602af00fda8e994c486c05.svn-base new file mode 100644 index 0000000..ed0159b --- /dev/null +++ b/.svn/pristine/60/606a71950c5ed95759602af00fda8e994c486c05.svn-base @@ -0,0 +1,124 @@ +/** + * @file + * @brief Implementation of reading 3D scans + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "slam6d/scan_io_zahn.h" +#include "slam6d/globals.icc" +#include +using std::ifstream; +#include +using std::cerr; +using std::endl; + +#ifdef _MSC_VER +#include +#endif + +/** + * Reads specified scans from given directory in + * the tooth format. It will be compiled as + * shared lib. + * + * Scan poses will NOT be initialized after a call + * to this function. + * + * + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param dir The directory from which to read + * @param maxDist Reads only Points up to this Distance + * @param minDist Reads only Points from this Distance + * @param euler Initital pose estimates (will not be applied to the points + * @param ptss Vector containing the read points + */ +int ScanIO_zahn::readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss) +{ + static int fileCounter = start; + string scanFileName; + string poseFileName; + double maxDist2 = sqr(maxDist); + + ifstream scan_in, pose_in; + + int my_fileNr = fileCounter; + + euler[0] = 0; + euler[1] = 0; + euler[2] = 0; + euler[3] = 0; + euler[4] = 0; + euler[5] = 0; + + if (end > -1 && fileCounter > end) return -1; // 'nuf read + scanFileName = dir + "Element_" + to_string(fileCounter) + ".asc"; + + scan_in.open(scanFileName.c_str()); + // read 3D scan + + if (!scan_in.good()) { cerr << "ERROR: Missing file " << scanFileName << endl; exit(1); } + cout << "Processing Scan " << scanFileName; + + cout << " @ pose (" << euler[0] << "," << euler[1] << "," << euler[2] + << "," << deg(euler[3]) << "," << deg(euler[4]) << "," << deg(euler[5]) << ")" << endl; + + for (unsigned int i = 0; i < 3; i++) euler[i] *= 0.1; + + while (scan_in.good()) { + Point p; + scan_in >> p.x >> p.y >> p.z; + p.x *= 10; + p.y *= 10; + p.z *= -10; + // load points up to a certain distance only + // maxDist2 = -1 indicates no limitation + if (sqr(p.x) + sqr(p.y) + sqr(p.z) < maxDist2) + ptss.push_back(p); + } + + scan_in.close(); + scan_in.clear(); + fileCounter++; + + return my_fileNr; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_zahn; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/.svn/pristine/60/609f39aa96725d6a75c76ce1c87016ab532a11f4.svn-base b/.svn/pristine/60/609f39aa96725d6a75c76ce1c87016ab532a11f4.svn-base new file mode 100644 index 0000000..bf3c24a --- /dev/null +++ b/.svn/pristine/60/609f39aa96725d6a75c76ce1c87016ab532a11f4.svn-base @@ -0,0 +1,511 @@ +/* + * gapx6D implementation + * + * Copyright (C) Jan Elseberg, Andreas Nuechter + * + * Released under the GPL version 3. + * + */ + +/** + * @file + * @brief The implementation of globally consistent scan matching algorithm by using APX correction + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Jan Elseberg. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifdef _MSC_VER +#if !defined _OPENMP && defined OPENMP +#define _OPENMP +#endif +#endif + +#include "slam6d/gapx6D.h" +#include "slam6d/icp6Dapx.h" +#include "sparse/csparse.h" + +#include +#include +using std::flush; +#include + +#include "slam6d/globals.icc" + +using std::ofstream; +using namespace NEWMAT; +/** + * Constructor + * + * @param my_icp6Dminimizer Pointer to ICP minimization functor + * @param mdm Maximum PtoP distance to which point pairs are collected for ICP + * @param max_dist_match Maximum PtoP distance to which point pairs are collected for LUM + * @param max_num_iterations Maximal number of iterations for ICP + * @param quiet Suspesses all output to std out + * @param meta Indicates if metascan matching has to be used + * @param rnd Indicates if randomization has to be used + * @param eP Extrapolate odometry? + * @param anim Animate which frames? + * @param epsilonICP Termination criterion for ICP + * @param nns_method Specifies which NNS method to use + * @param epsilonLUM Termination criterion for LUM + */ +gapx6D::gapx6D(icp6Dminimizer *my_icp6Dminimizer, + double mdm, double max_dist_match, + int max_num_iterations, bool quiet, bool meta, int rnd, + bool eP, int anim, double epsilonICP, int nns_method, double epsilonLUM) + : graphSlam6D(my_icp6Dminimizer, + mdm, max_dist_match, + max_num_iterations, quiet, meta, rnd, + eP, anim, epsilonICP, nns_method, epsilonLUM) +{ } + + +/** + * Destructor + */ +gapx6D::~gapx6D() +{ + delete my_icp; +} + + + +double gapx6D::genBAtransForLinkedPair( int firstScanNum, int secondScanNum, + double *centroids_m, double *centroids_d, + SymmetricMatrix *B, ColumnVector *A, ColumnVector &X) +{ + + Point cm(centroids_m); + Point cd(centroids_d); + + double x[3], dx[3] = {0.0, 0.0, 0.0}; + unsigned int vectorOffset; + double alignxf[16]; + + vectorOffset = (firstScanNum-1) * 3; + + if (firstScanNum != 0) { + x[0] = X(vectorOffset + 1); + x[1] = X(vectorOffset + 2); + x[2] = X(vectorOffset + 3); + } else { + x[0] = x[1] = x[2] = 0.0; + } + + icp6D_APX::computeRt(x, dx, alignxf); + + cm.transform(alignxf); + + vectorOffset = (secondScanNum-1) * 3; + + x[0] = X(vectorOffset + 1); + x[1] = X(vectorOffset + 2); + x[2] = X(vectorOffset + 3); + + icp6D_APX::computeRt(x, dx, alignxf); + + cd.transform(alignxf); + + ColumnVector Ak1(3); + + Ak1(1) = cm.x - cd.x; + Ak1(2) = cm.y - cd.y; + Ak1(3) = cm.z - cd.z; + +#ifdef _OPENMP +#pragma omp critical (enterB) +#endif + { + if(firstScanNum != 0) { + A->Rows((firstScanNum-1)*3+1, (firstScanNum-1)*3+3) -= Ak1; + B->element(firstScanNum -1, firstScanNum - 1) += 1; + B->element(firstScanNum -1, secondScanNum - 1) -= 1; + } + A->Rows((secondScanNum-1)*3+1, (secondScanNum-1)*3+3) += Ak1; + B->element(secondScanNum - 1, secondScanNum - 1) += 1; + } // of pragma omp critical + + return 1.0; + +} + + +/** + * This function generates the matrices B and Bd that are used for solving B * c = Bd. + * This function has to be called once for every linked scan-pair. + * + * @param firstScanNum The number of the first scan of the linked scan-pair + * @param secondScanNum The number of the second scan of the linked scan-pair + * @param ptpairs Vector that holds all point-pairs for the actual scan-pair + * @param B Matrix with dimension (6*(number of scans-1)) x (6 * (number of scans-1)) + * @param Bd Vector with dimension (6*(number of scans-1)) + * @return returns the sum of square distance + */ +double gapx6D::genBArotForLinkedPair( int firstScanNum, int secondScanNum, vPtPair *ptpairs, + double *centroids_m, double *centroids_d, + Matrix *B, ColumnVector *A) +{ + Matrix Mk(3,3), Dk(3,3); + Matrix MkMkt(3,3), DkDkt(3,3), DkMkt(3,3), MkDkt(3,3); + ColumnVector Ak1(3), Ak2(3); + + double p1x, p1y, p1z, p2x, p2y, p2z; + double p1x2, p1y2, p1z2, p2x2, p2y2, p2z2; + + double p1xp1y, p1xp1z, p1yp1z, p1y2p1z2, p1x2p1z2, p1x2p1y2; + double p2xp2y, p2xp2z, p2yp2z, p2y2p2z2, p2x2p2z2, p2x2p2y2; + + double p2zp1x, p2zp1y, p2yp1x, p1yp2x, p1zp2x, p1zp2y; + + double p1xp2xp1yp2y, p1xp2xp1zp2z, p1yp2yp1zp2z; + + int n = (*ptpairs).size(); + + MkMkt = 0; + DkDkt = 0; + DkMkt = 0; + MkDkt = 0; + Ak1 = 0; + Ak2 = 0; + + for (int i = 0; i < n; i++) { + p1x = (*ptpairs)[i].p1.x - centroids_m[0]; // << korrekt + p1y = (*ptpairs)[i].p1.y - centroids_m[1]; // << korrekt + p1z = (*ptpairs)[i].p1.z - centroids_m[2]; // << korrekt + + p2x = (*ptpairs)[i].p2.x - centroids_m[0]; // << korrekt + p2y = (*ptpairs)[i].p2.y - centroids_m[1]; // << korrekt + p2z = (*ptpairs)[i].p2.z - centroids_m[2]; // << korrekt + + p1x2 = sqr(p1x); + p1y2 = sqr(p1y); + p1z2 = sqr(p1z); + p2x2 = sqr(p2x); + p2y2 = sqr(p2y); + p2z2 = sqr(p2z); + + p1x2p1z2 = p1x2 + p1z2; + p1x2p1y2 = p1x2 + p1y2; + p1y2p1z2 = p1y2 + p1z2; + + p2x2p2z2 = p2x2 + p2z2; + p2x2p2y2 = p2x2 + p2y2; + p2y2p2z2 = p2y2 + p2z2; + + p1xp2xp1yp2y = p1x * p2x + p1y + p2y; + p1xp2xp1zp2z = p1x * p2x + p1z + p2z; + p1yp2yp1zp2z = p1y * p2y + p1z + p2z; + + p1xp1y = p1x * p1y; + p1xp1z = p1x * p1z; + p1yp1z = p1y * p1z; + + //p2xp1y = p2x * p1y; + //p2xp1z = p2x * p1z; + p2yp1x = p2y * p1x; + //p2yp1z = p2y * p1z; + p2zp1x = p2z * p1x; + p2zp1y = p2z * p1y; + + /* + p1xp2y = p1x * p2y; + p1xp2z = p1x * p2z; + p1yp2z = p1y * p2z; + */ + p1yp2x = p1y * p2x; + p1zp2x = p1z * p2x; + p1zp2y = p1z * p2y; + + p2xp2y = p2x * p2y; + p2xp2z = p2x * p2z; + p2yp2z = p2y * p2z; + + MkMkt(1,1) += p1y2p1z2; + MkMkt(1,2) -= p1xp1y; + MkMkt(1,3) -= p1xp1z; + MkMkt(2,1) -= p1xp1y; + MkMkt(2,2) += p1x2p1z2; + MkMkt(2,3) -= p1yp1z; + MkMkt(3,1) -= p1xp1z; + MkMkt(3,2) -= p1yp1z; + MkMkt(3,3) += p1x2p1y2; + + DkDkt(1,1) += p2y2p2z2; + DkDkt(1,2) -= p2xp2y; + DkDkt(1,3) -= p2xp2z; + DkDkt(2,1) -= p2xp2y; + DkDkt(2,2) += p2x2p2z2; + DkDkt(2,3) -= p2yp2z; + DkDkt(3,1) -= p2xp2z; + DkDkt(3,2) -= p2yp2z; + DkDkt(3,3) += p2x2p2y2; + + MkDkt(1,1) += p1yp2yp1zp2z; + MkDkt(1,2) -= p1yp2x; + MkDkt(1,3) -= p1zp2x; + MkDkt(2,1) -= p1yp2x; + MkDkt(2,2) += p1xp2xp1zp2z; + MkDkt(2,3) -= p1zp2y; + MkDkt(3,1) -= p1zp2x; + MkDkt(3,2) -= p1zp2y; + MkDkt(3,3) += p1xp2xp1yp2y; + + DkMkt(1,1) += p1yp2yp1zp2z; + DkMkt(1,2) -= p2yp1x; + DkMkt(1,3) -= p2zp1x; + DkMkt(2,1) -= p2yp1x; + DkMkt(2,2) += p1xp2xp1zp2z; + DkMkt(2,3) -= p2zp1y; + DkMkt(3,1) -= p2zp1x; + DkMkt(3,2) -= p2zp1y; + DkMkt(3,3) += p1xp2xp1yp2y; + + Ak1(1) -= (p1z - p2z) * p2y - (p1y - p2y) * p2z; + Ak1(2) -= (p1x - p2x) * p2z - (p1z - p2z) * p2x; + Ak1(3) -= (p1y - p2y) * p2x - (p1x - p2x) * p2y; + + Ak2(1) += (p1z - p2z) * p1y - (p1y - p2y) * p1z; + Ak2(2) += (p1x - p2x) * p1z - (p1z - p2z) * p1x; + Ak2(3) += (p1y - p2y) * p1x - (p1x - p2x) * p1y; + } + +#ifdef _OPENMP +#pragma omp critical (enterB) +#endif + { + if(firstScanNum != 0) { + A->Rows((firstScanNum-1)*3+1, (firstScanNum-1)*3+3) += Ak1; + B->SubMatrix((firstScanNum-1)*3+1,(firstScanNum-1)*3+3, (firstScanNum-1)*3+1,(firstScanNum-1)*3+3) += MkMkt; + + B->SubMatrix((firstScanNum-1)*3+1,(firstScanNum-1)*3+3, (secondScanNum-1)*3+1,(secondScanNum-1)*3+3) += DkMkt; + + B->SubMatrix((secondScanNum-1)*3+1,(secondScanNum-1)*3+3, (firstScanNum-1)*3+1,(firstScanNum-1)*3+3) += MkDkt; + + } + A->Rows((secondScanNum-1)*3+1, (secondScanNum-1)*3+3) += Ak2; + B->SubMatrix((secondScanNum-1)*3+1,(secondScanNum-1)*3+3, (secondScanNum-1)*3+1,(secondScanNum-1)*3+3) += DkDkt; + + } // of pragma omp critical + + return 1.0; +} + + + +/** + * This function is used to match a set of laser scans with any minimally + * connected Graph, using the globally consistent LUM-algorithm in 3D. + * + * @param gr Some Graph with no real subgraphs except for itself + * @param allScans Contains all laser scans + * @param nrIt The number of iterations the LUM-algorithm will run + * @return Euclidian distance of all pose shifts + */ +double gapx6D::doGraphSlam6D(Graph gr, vector allScans, int nrIt) +{ + +#ifdef WRITE_GRAPH_NET + // for debug only: + static int d = 0; + cout << "writing graph.dat ....................................." << endl; + d++; + string gfilename = "graph_" + to_string(d, 3) + ".net"; + ofstream out(gfilename.c_str()); + for (int i=0; i < gr.getNrLinks(); i++) { + int from = gr.getLink(i,0); + int to = gr.getLink(i,1); + // shouldn't be necessary, just in case a (out of date) graph file is loaded: + if (from < (int)allScans.size() && to < (int)allScans.size()) { + out << allScans[from]->get_rPos()[0] << " " + << allScans[from]->get_rPos()[1] << " " + << allScans[from]->get_rPos()[2] << endl + << allScans[to ]->get_rPos()[0] << " " + << allScans[to ]->get_rPos()[1] << " " + << allScans[to ]->get_rPos()[2] << endl << endl; + } + } + out.close(); + out.clear(); +#endif + + // the IdentityMatrix to transform some Scans with + double id[16]; + M4identity(id); + + vPtPair **ptpairs = 0; // Contains sets of point pairs for all links + double **centroids_m = 0, **centroids_d = 0; // Contains centroids for all links + Matrix B ( 3 * (gr.getNrScans()-1), 3 * (gr.getNrScans()-1) ); + SymmetricMatrix Bt ( gr.getNrScans()-1 ); Bt = 0; + ColumnVector X( 3*(gr.getNrScans()-1) ); X = 0; + ColumnVector T( 3*(gr.getNrScans()-1) ); T = 0; + ColumnVector A( 3*(gr.getNrScans()-1) ); A = 0; + + B = 0.0; + A = 0.0; + + double sum_position_diff = 0; + double ret = DBL_MAX; + + for(int iteration = 0; + iteration < nrIt && ret > epsilonLUM; + iteration++) { + sum_position_diff = 0; + + if (nrIt > 1) cout << "Iteration match " << iteration << endl; + + // Transform first scan to zero, otherwise updating poses would yield incorrect values + // if (iteration == 0) { + // double* tin = allScans[0]->transMat; + // double tout[16]; + // M4inv(tin, tout); + + // for(unsigned int i = 0; i < allScans.size(); i++){ + // allScans[i]->transform(tout, Scan::INVALID); + // } + // } + + if (ptpairs != 0) { + delete [] ptpairs; + } + if (centroids_m != 0) { + delete [] centroids_m; + delete [] centroids_d; + } + + centroids_m = new double *[gr.getNrLinks()]; + centroids_d = new double *[gr.getNrLinks()]; + for (int i = 0; i < gr.getNrLinks(); i++){ + centroids_m[i] = new double[3]; + centroids_m[i][0] = centroids_m[i][1] = centroids_m[i][2] = 0.0; + centroids_d[i] = new double[3]; + centroids_d[i][0] = centroids_d[i][1] = centroids_d[i][2] = 0.0; + } + ptpairs = new vPtPair*[gr.getNrLinks()]; + for (int i = 0; i < gr.getNrLinks(); i++) { + ptpairs[i] = new vPtPair; + } + + // Get all point pairs after ICP + int end_loop = gr.getNrLinks(); +#ifdef _OPENMP + omp_set_num_threads(OPENMP_NUM_THREADS); +#pragma omp parallel for schedule(dynamic) +#endif + + for (int i = 0; i < end_loop; i++) { + cout << "P" << i << flush; + Scan * FirstScan = allScans[gr.getLink(i,0)]; + Scan * SecondScan = allScans[gr.getLink(i,1)]; +#ifdef _OPENMP + int thread_num = omp_get_thread_num(); +#else + int thread_num = 0; +#endif + + double dummy_sum; + Scan::getPtPairs(ptpairs[i], FirstScan, SecondScan, thread_num, + (int)my_icp->get_rnd(), (int)max_dist_match2_LUM, dummy_sum, + centroids_m[i], centroids_d[i]); + + // faulty network + if (ptpairs[i]->size() <= 1) { + cout << "Error: Link (" << gr.getLink(i,0) + << " - " << gr.getLink(i, 1) << " ) is empty with " + << ptpairs[i]->size() << " Corr. points. iteration = " + << iteration << endl; + // exit(1); + + } else + + sum_position_diff += genBArotForLinkedPair( gr.getLink(i,0), gr.getLink(i,1), ptpairs[i], + centroids_m[i], centroids_d[i], &B, &A); + + } + cout << " building rotation matrices done! " << endl; + + X = solveSparseCholesky(B, A); + + // TODO transformation bestimmen + Bt = 0.0; + A = 0.0; + for ( int i = 0; i < end_loop; i++) { + genBAtransForLinkedPair( gr.getLink(i,0), gr.getLink(i,1), + centroids_m[i], centroids_d[i], &Bt, &A, X); + } + cout << " building translation matrices done! "<clear(); + delete (ptpairs[i]); + } + // delete centroids + for (int i = 0; i < gr.getNrLinks(); i++){ + delete [] centroids_m[i]; + delete [] centroids_d[i]; + } + + ColumnVector t0(3), t(3), tlast(3); + int vectorOffset; + int loop_end = gr.getNrScans(); + double alignxf[16]; + + for(int i = 1; i < loop_end; i++) + { + vectorOffset = (i-1) * 3; + + // Interpret results + double x[3] = { X(vectorOffset + 1), X(vectorOffset + 2), X(vectorOffset + 3) }; + double dx[3] = { T(vectorOffset + 1), T(vectorOffset + 2), T(vectorOffset + 3) }; + + icp6D_APX::computeRt(x, dx, alignxf); + + // Update the Pose + cout << "Old pose estimate, Scan " << i << endl; + cout << "x: " << allScans[i]->get_rPos()[0] + << " y: " << allScans[i]->get_rPos()[1] + << " z: " << allScans[i]->get_rPos()[2] + << " tx: " << allScans[i]->get_rPosTheta()[0] + << " ty: " << allScans[i]->get_rPosTheta()[1] + << " tz: " << allScans[i]->get_rPosTheta()[2] + << endl; + + if (i < loop_end - 1) { + allScans[i]->transform(alignxf, Scan::LUM, 1); + } else { + allScans[i]->transform(alignxf, Scan::LUM, 2); + } + + cout << "x: " << allScans[i]->get_rPos()[0] + << " y: " << allScans[i]->get_rPos()[1] + << " z: " << allScans[i]->get_rPos()[2] + << " tx: " << allScans[i]->get_rPosTheta()[0] + << " ty: " << allScans[i]->get_rPosTheta()[1] + << " tz: " << allScans[i]->get_rPosTheta()[2] << endl << endl; + + sum_position_diff += Len(dx); + + } + cout << "Sum of Position differences = " << sum_position_diff << endl << endl; + ret = (sum_position_diff / (double)gr.getNrScans()); + } + + delete [] centroids_m; + delete [] centroids_d; + + delete [] ptpairs; + ptpairs = 0; + + return ret; +} + + diff --git a/.svn/pristine/61/61c5117709600ba97f484f0d2a8c9d468a3fcb0f.svn-base b/.svn/pristine/61/61c5117709600ba97f484f0d2a8c9d468a3fcb0f.svn-base new file mode 100644 index 0000000..0574682 --- /dev/null +++ b/.svn/pristine/61/61c5117709600ba97f484f0d2a8c9d468a3fcb0f.svn-base @@ -0,0 +1,586 @@ +/* + * scan_diff2d implementation + * + * Copyright (C) Dorit Borrmann + * + * Released under the GPL version 3. + * + */ + +/** + * @file + * @brief Main program calculating difference of 3D scans. + * + * Program for calculating the 2d-difference between scans after matching with slam6d + * Usage: bin/scan_diff2d -s -e -d 'dir', + * Use -s for the first scan, -e for the second scan + * 'dir' the directory of a set of scans + * The result is an image showing the color coded difference of the two scans + * ATTENTION: All scans between START and END will be loaded! + * @author Dorit Borrmann. Automation Group, Jacobs University Bremen gGmbH, Germany. + */ +#ifdef _MSC_VER +#ifdef OPENMP +#define _OPENMP +#endif +#endif + +#define WANT_STREAM ///< define the WANT stream :) +#include +using std::string; +#include +using std::cout; +using std::cerr; +using std::endl; +#include +using std::ofstream; +using std::ifstream; +#include + +#include "slam6d/scan.h" + +#include "slam6d/scan_io.h" +#include "slam6d/globals.icc" + +#ifdef _OPENMP +#include +#endif + + +#ifndef _MSC_VER +#include +#else +#include "XGetopt.h" +#endif +#include "show/colormanager.h" + +#ifdef _MSC_VER +#define strcasecmp _stricmp +#define strncasecmp _strnicmp +#include +#include +#else +#include +#include +#include +#include +#endif + +#include "slam6d/kd.h" +#include "slam6d/kdc.h" +#include +#include +using namespace std; + + + +int WIDTH=0; +int HEIGHT=0; +double MINTHETA; +double MAXTHETA; +double MINPHI; +double MAXPHI; + +double minphi,maxphi; +double mintheta,maxtheta; +bool **stencilImage1; +bool **stencilImage; +double **rangeImage; +double **rangeImage2; +Point **pointImage; + +void writeRI(const char *filename, double max, double shift) +{ + SHSVMap cmap; + float color[3]; + unsigned int buckets = 4096; + + ofstream fp; // The PPM File + unsigned char *ibuffer; // The PPM Output Buffer + // Allocate memory for the the frame buffer and output buffer + ibuffer = new unsigned char[WIDTH * HEIGHT * 3]; + + // Open the output file + fp.open(filename, ios::out); + + // Write a proper P6 PPM header + fp << "P6" << endl << "# CREATOR: 3D_Viewer by Andreas Nuechter, University of Osnabrueck" + << endl << WIDTH << " " << HEIGHT << " " << UCHAR_MAX << endl; + + // Loop through the frame buffer data, writing to the PPM file. Be careful + // to account for the frame buffer having 4 bytes per pixel while the + // output file has 3 bytes per pixel + int l = 0; + for (int i = 0; i < HEIGHT; i++) { // For each row + for (int jj = 0; jj < WIDTH; jj++) { // For each column + int j = (jj + (int)(WIDTH*shift))%WIDTH; + if(!stencilImage[j][i]) { + ibuffer[l++] = UCHAR_MAX; + ibuffer[l++] = UCHAR_MAX; + ibuffer[l++] = UCHAR_MAX; + } else { + cmap.calcColor(color, (max + rangeImage[j][i])/(max*2.0) * buckets, buckets); + ibuffer[l++] = (unsigned char)min( (int)((color[0])*UCHAR_MAX), UCHAR_MAX); + ibuffer[l++] = (unsigned char)min( (int)((color[1])*UCHAR_MAX), UCHAR_MAX); + ibuffer[l++] = (unsigned char)min( (int)((color[2])*UCHAR_MAX), UCHAR_MAX); + } + } // end column + } // end row + + // Write output buffer to the file */ + fp.write((const char*)ibuffer, sizeof(unsigned char) * (3 * WIDTH * HEIGHT)); + fp.close(); + fp.clear(); + delete [] ibuffer; +} + + +void toRI(double _x, double _y, double _z, int &X, int &Y, double &range) { + double x = _z/100.0; + double y = _x/(-100.0); + double z = _y/100.0; + + double phi = 0.0; + double theta = 0.0; + range = std::sqrt(x*x + y*y + z*z); + + if (range > 0.00000001) { + phi = atan2(y,x); + phi = ((phi<0.0)?(phi+2.0*M_PI):phi); + theta = std::acos(z/range); + + if (phi > maxphi) maxphi = phi; + if (phi < minphi) minphi = phi; + if (theta > maxtheta) maxtheta = theta; + if (theta < mintheta) mintheta = theta; + } + + + X = WIDTH * (phi/( MAXPHI - MINPHI )); + Y = HEIGHT * ((theta - MINTHETA)/( MAXTHETA - MINTHETA )); +} + +void toPoint(int X, int Y, double range, double &x, double &y, double &z) { + x = y = z = 0.0; + + if (range > 0.000000001) { + double _z = cos(((double)Y/(double)HEIGHT * (double)(MAXTHETA - MINTHETA)) + MINTHETA) * range; + double _y = sin((double)X/(double)WIDTH * (double)(MAXPHI - MINPHI)) * range; + double _x = cos((double)X/(double)WIDTH * (double)(MAXPHI - MINPHI)) * range; + x = _y*-100.0; + y = _z*100.0; + z = _x*100.0; + } +} + +/** + * Explains the usage of this program's command line parameters + */ +void usage(char* prog) +{ +#ifndef _MSC_VER + const string bold("\033[1m"); + const string normal("\033[m"); +#else + const string bold(""); + const string normal(""); +#endif + cout << endl + << bold << "USAGE " << normal << endl + << " " << prog << "-s -e [options] directory" << endl << endl; + cout << bold << "OPTIONS" << normal << endl + << endl + << bold << " -s" << normal << " NR, " << bold << "--start=" << normal << "NR" << endl + << " start at scan NR (i.e., neglects the first NR scans)" << endl + << " [ATTENTION: counting naturally starts with 0]" << endl + << endl + << bold << " -e" << normal << " NR, " << bold << "--end=" << normal << "NR" << endl + << " end after scan NR" << endl + << endl + << bold << " -f" << normal << " F, " << bold << "--format=" << normal << "F" << endl + << " using shared library F for input" << endl + << " (chose F from {uos, uos_map, uos_rgb, uos_frames, uos_map_frames, old, rts, rts_map, ifp, riegl_txt, riegl_rgb, riegl_bin, rxp,zahn, ply})" << endl + << endl + << bold << " -m" << normal << " NR, " << bold << "--max=" << normal << "NR" << endl + << " neglegt all data points with a distance larger than NR 'units'" << endl + << endl + << bold << " -M" << normal << " NR, " << bold << "--min=" << normal << "NR" << endl + << " neglegt all data points with a distance smaller than NR 'units'" << endl + << endl + << bold << " -d" << normal << " NR, " << bold << "--dist=" << normal << "NR" << endl + << " write all points that have no corresponding point closer than NR 'units'" << endl + << endl << endl; + + cout << bold << "EXAMPLES " << normal << endl + << " " << prog << " -m 500 -d 5 dat" << endl + << " " << prog << " --max=5000 -d 10.2 dat" << endl + << endl; + exit(1); +} + +/** A function that parses the command-line arguments and sets the respective flags. + * @param argc the number of arguments + * @param argv the arguments + * @param dir the directory + * @param start first scan number 'start' + * @param end last scan number 'end' + * @param maxDist - maximal distance of points being loaded + * @param minDist - minimal distance of points being loaded + * @param dist the maximal distance for a point pair + * @param type the scan format + * @param desc true if start is greater than end + * @return 0, if the parsing was successful. 1 otherwise + */ +int parseArgs(int argc, char **argv, string &dir, + int &start, int &end, int &maxDist, int &minDist, double &dist, + IOType &type, bool &desc, double &res, double &shift, int &mode) +{ + int c; + // from unistd.h: + extern char *optarg; + extern int optind; + + /* options descriptor */ + // 0: no arguments, 1: required argument, 2: optional argument + static struct option longopts[] = { + { "format", required_argument, 0, 'f' }, + { "max", required_argument, 0, 'm' }, + { "min", required_argument, 0, 'M' }, + { "start", required_argument, 0, 's' }, + { "end", required_argument, 0, 'e' }, + { "dist", required_argument, 0, 'd' }, + { "resolution", required_argument, 0, 'r' }, + { "shift", required_argument, 0, 'h' }, + { "mode", required_argument, 0, '0' }, + { 0, 0, 0, 0} // needed, cf. getopt.h + }; + + cout << endl; + while ((c = getopt_long(argc, argv, "h:r:f:d:s:e:m:M:", longopts, NULL)) != -1) + switch (c) + { + case '0': + mode = atoi(optarg); + break; + case 'h': + shift = atof(optarg); + break; + case 'r': + res = atof(optarg); + break; + case 'd': + dist = atof(optarg); + break; + case 's': + start = atoi(optarg); + if (start < 0) { cerr << "Error: Cannot start at a negative scan number.\n"; exit(1); } + break; + case 'e': + end = atoi(optarg); + if (end < 0) { cerr << "Error: Cannot end at a negative scan number.\n"; exit(1); } + break; + case 'f': + try { + type = formatname_to_io_type(optarg); + } catch (...) { // runtime_error + cerr << "Format " << optarg << " unknown." << endl; + abort(); + } + break; + case 'm': + maxDist = atoi(optarg); + break; + case 'M': + minDist = atoi(optarg); + break; + case '?': + usage(argv[0]); + return 1; + default: + abort (); + } + + if(start < 0 || end < 0 ) { + cerr << "\n*** You need two different scans for difference calculations ***" << endl; + usage(argv[0]); + } + if (optind != argc-1) { + cerr << "\n*** Directory missing ***" << endl; + usage(argv[0]); + } + dir = argv[optind]; + +#ifndef _MSC_VER + if (dir[dir.length()-1] != '/') dir = dir + "/"; +#else + if (dir[dir.length()-1] != '\\') dir = dir + "\\"; +#endif + if(start > end) { + double tmp = start; + start = end; + end = tmp; + desc = true; + } + + return 0; +} + + +/** + * Main program for calculating the difference of two scans. + * Usage: bin/scan_diff -d -s -e 'dir', + * Use -s and -e for the two scans, + * -d + * and 'dir' the directory of a set of scans + * Difference scans will be written to 'dir/diff/scan[00]s.3d' + * + */ +int main(int argc, char **argv) +{ + + cout << "(c) Jacobs University Bremen, gGmbH, 2010" << endl << endl; + + if (argc <= 1) { + usage(argv[0]); + } + + // parsing the command line parameters + // init, default values if not specified + string dir; + double dist = 0; + int start = -1, end = -1; + int maxDist = -1; + int minDist = -1; + IOType type = RIEGL_TXT; + bool desc = false; + double resolution = 0.25; + double shift = 0.5; + int mode = 0; + + parseArgs(argc, argv, dir, start, end, maxDist, minDist, dist, type, desc, resolution, shift, mode); + + resolution = rad(resolution); + + // Get Scans (all scans between start and end) + Scan::dir = dir; + + string scanFileName; + string framesFileName; + ifstream frames_in; + double inMatrix0[17]; + double inMatrix1[17]; + + cout << "Reading Scan No. " << start; + framesFileName = dir + "scan" + to_string(start,3) + ".frames"; + frames_in.open(framesFileName.c_str()); + + if(!frames_in.good()) { + cerr << "Couldn't read frames " << end << endl; + exit(1); + } + while(frames_in.good()) { + for (unsigned int i = 0; i < 17; frames_in >> inMatrix0[i++]); + } + frames_in.close(); + frames_in.clear(); + cout << "Reading Scan No. " << end; + framesFileName = dir + "scan" + to_string(end,3) + ".frames"; + frames_in.open(framesFileName.c_str()); + + if(!frames_in.good()) { + cerr << "Couldn't read frames " << end << endl; + exit(1); + } + while(frames_in.good()) { + for (unsigned int i = 0; i < 17; frames_in >> inMatrix1[i++]); + } + frames_in.close(); + frames_in.clear(); + + Scan::readScans(type, start, end, dir, maxDist, minDist, 0); + int endIndex = Scan::allScans.size() - 1; + + Scan *rangescan = Scan::allScans[0]; + Scan *targetscan = Scan::allScans[endIndex]; + Scan::allScans[endIndex]->calcReducedPoints(-1, 0); + + double tinv[16]; M4inv(inMatrix0, tinv); + double tmat[16]; + MMult(tinv, inMatrix1, tmat); + + Scan::allScans[endIndex]->transform(tmat, Scan::INVALID); + + string name; + int thread_num = 0; + vector diff; + double transMat[16]; + + + cout << "set up range image" << endl; + double x,y,z,r; + int X,Y; + // first subsample to RI + const vector *points = rangescan->get_points(); + maxphi = maxtheta = -DBL_MAX; + mintheta = minphi = DBL_MAX; + cout << "establish max and mins..." << endl; + double MINDIST = 40.0; + + for (unsigned int i = 0; i < points->size(); i++) { + Point p = (*points)[i]; + //////////////////////////// + if ( sqrt(p.x*p.x + p.z*p.z ) < MINDIST ) continue; + /////////////////////////// + toRI(p.x, p.y, p.z, X, Y, r); + } + MAXTHETA = maxtheta; + MINTHETA = mintheta; + MAXPHI = maxphi; + MINPHI = minphi; + HEIGHT = (MAXTHETA - MINTHETA)/resolution; + WIDTH = (MAXPHI - MINPHI)/resolution; + + switch (mode) { + case 0: + { + cout << "creating data structures " << WIDTH << " " << HEIGHT << endl; + stencilImage = new bool*[WIDTH+1]; + rangeImage = new double*[WIDTH+1]; + pointImage = new Point*[WIDTH+1]; + for (int i = 0; i <= WIDTH; i++) { + stencilImage[i] = new bool[HEIGHT+1]; + rangeImage[i] = new double[HEIGHT+1]; + pointImage[i] = new Point[HEIGHT+1]; + for (int j = 0; j <= HEIGHT; j++) { + rangeImage[i][j] = DBL_MAX; + stencilImage[i][j] = false; + } + } + cout << "thin out points " << points->size() << endl; + for (unsigned int i = 0; i < points->size(); i++) { + Point p = (*points)[i]; + //////////////////////////// + if ( sqrt(p.x*p.x + p.z*p.z ) < MINDIST ) continue; + /////////////////////////// + toRI(p.x, p.y, p.z, X, Y, r); + if (X >= 0 && X < WIDTH && Y >= 0 && Y < HEIGHT ) { + if (rangeImage[X][Y] > r) { + stencilImage[X][Y] = true; + rangeImage[X][Y] = r; + pointImage[X][Y] = p; + } + } + } + + + cout << "done setting up range image" << endl; + + targetscan->createTree(false, false); + const SearchTree *kd = targetscan->get_tree(); + + cout << " looking for closest points... " << endl; + double mdm2 = dist*dist; + for (int X = 0; X < WIDTH; X++) { + for (int Y = 0; Y < HEIGHT; Y++) { + if (!stencilImage[X][Y]) continue; + double p[3]; + p[0] = pointImage[X][Y].x; + p[1] = pointImage[X][Y].y; + p[2] = pointImage[X][Y].z; + + double *closest = kd->FindClosest(p, mdm2, 0); + + if (closest) { + rangeImage[X][Y] = sqrt(Dist2(closest, p)); + double v[3]; + for (int i = 0; i < 3; i++) + v[i] = closest[i] - p[i]; + + double d = v[0]*p[0] + v[1]*p[1] + v[2]*p[2]; + if (d <= 0) { + rangeImage[X][Y] *= -1.0; + } + + } else { + rangeImage[X][Y] = dist; + } + } + } + } + break; + case 1: + { + cout << "creating data structures " << WIDTH << " " << HEIGHT << endl; + stencilImage = new bool*[WIDTH+1]; + stencilImage1 = new bool*[WIDTH+1]; + rangeImage = new double*[WIDTH+1]; + rangeImage2 = new double*[WIDTH+1]; + for (int i = 0; i <= WIDTH; i++) { + stencilImage[i] = new bool[HEIGHT+1]; + stencilImage1[i] = new bool[HEIGHT+1]; + rangeImage[i] = new double[HEIGHT+1]; + rangeImage2[i] = new double[HEIGHT+1]; + for (int j = 0; j <= HEIGHT; j++) { + rangeImage[i][j] = DBL_MAX; + rangeImage2[i][j] = DBL_MAX; + stencilImage[i][j] = false; + stencilImage1[i][j] = false; + } + } + cout << "thin out points " << points->size() << endl; + for (unsigned int i = 0; i < points->size(); i++) { + Point p = (*points)[i]; + //////////////////////////// + if ( sqrt(p.x*p.x + p.z*p.z ) < MINDIST ) continue; + /////////////////////////// + toRI(p.x, p.y, p.z, X, Y, r); + if (X >= 0 && X < WIDTH && Y >= 0 && Y < HEIGHT ) { + if (rangeImage[X][Y] > r) { + stencilImage1[X][Y] = true; + rangeImage[X][Y] = fabs(r); + } + } + } + + for (unsigned int i = 0; i < Scan::allScans[endIndex]->get_points_red_size(); i++) { + Point p; + p.x = Scan::allScans[endIndex]->get_points_red()[i][0]; + p.y = Scan::allScans[endIndex]->get_points_red()[i][1]; + p.z = Scan::allScans[endIndex]->get_points_red()[i][2]; + //////////////////////////// + if ( sqrt(p.x*p.x + p.z*p.z ) < MINDIST ) continue; + /////////////////////////// + toRI(p.x, p.y, p.z, X, Y, r); + if (X >= 0 && X < WIDTH && Y >= 0 && Y < HEIGHT ) { + if (rangeImage2[X][Y] > r && stencilImage1[X][Y]) { + stencilImage[X][Y] = true; + rangeImage2[X][Y] = fabs(r); + } + } + } + + cout << "done setting up range image" << endl; + for (int X = 0; X < WIDTH; X++) { + for (int Y = 0; Y < HEIGHT; Y++) { + if (!stencilImage[X][Y]) continue; + if (rangeImage[X][Y] == DBL_MAX) continue; + rangeImage[X][Y] = 100.0 * (rangeImage[X][Y] - rangeImage2[X][Y]) ; // to meters + } + } + + } + break; + default: + break; + } + + + name = dir + "diff_" + to_string(start, 3) + "_" + to_string(end,3) + ".ppm"; + writeRI(name.c_str(), dist, shift); + + delete Scan::allScans[0]; + Scan::allScans.clear(); + + cout << endl << endl; + cout << "Normal program end." << endl << endl; +} diff --git a/.svn/pristine/61/61dba2dfb5388a94f80f4d66b22b747da8f6f9fa.svn-base b/.svn/pristine/61/61dba2dfb5388a94f80f4d66b22b747da8f6f9fa.svn-base new file mode 100644 index 0000000..c12ec30 --- /dev/null +++ b/.svn/pristine/61/61dba2dfb5388a94f80f4d66b22b747da8f6f9fa.svn-base @@ -0,0 +1,132 @@ +------------------------------------------------------------------- + +To compile the project simply call "make". This will configure slam6d +using the default settings. If you wish to configure the project using +custom settings do: "make config". This command requires ccmake be +installed on your system. Alternatively you may change into the build +directory ".build" and configure the project with your preferred cmake +configurator, i.e.: + +cd .build && cmake -i ../ + +For Microsoft Windows, use the cmake-gui application provided by cmake +to configure and generate project files for the appropriate version of +Microsoft Visual Studio C++ of your system. Use the INSTALL target to +built the entire project. Executables (and .dll's) will then reside +in the "windows" folder. For running the binaries you need to install +the proper redistributable package. + +Some Boost libraries (graph, regex, serialization, filesystem, +interprocess) are needed to compile the slam6D program. + +If you are using Debian just do: + + aptitude install libboost-graph-dev libboost-regex-dev libboost-serialization-dev freeglut3-dev libxmu-dev libxi-dev + +or, if you are still using Debian stable (lenny): + + aptitude install libboost-graph1.35-dev libboost-regex1.35-dev libboost-serialization1.35-dev freeglut3-dev libxmu-dev libxi-dev + +for Ubuntu this would be: + + sudo aptitude install libboost-graph-dev libboost-regex-dev libboost-serialization-dev libboost1.46-dev libboost-filesystem1.46-dev freeglut3-dev libxmu-dev libxi-dev + +SuSE users please use yast2 for installing the missing packages + + +Additionally for CAD matching support the following dependencies must +be satisfied (exemplarily for Ubuntu): + + sudo aptitude install libboost-program-options-dev + +------------------------------------------------------------------- + +For a detailed explanation of the programm, its usage, etc., please +refer to the high level documentation doc/documentation_HL.pdf +(esp. sections 4-6, for starters). + +IMPORTANT: +Take care to register scans first (bin/slam6D) before trying to +display them (bin/show), and think about using the point reduction +(see section 6) for a much faster scan matching result. Extremely +large scans might need to be reduced (using bin/scan_red) before +registration. This will write reduced scans in the uos format into a +directory "reduced" in the data directory. + +Three example scans are included in the dat directory, several +larger data sets can be downloaded from the data repository, +http://kos.informatik.uni-osnabrueck.de/3Dscans/ +(Alternatively, click on the "Data Repository" link on this project's +web site on Sourceforge, http://slam6d.sourceforge.net/) + +EXAMPLES: +(using the data set in the slam6d repository) +bin/slam6D -m 500 -R 5 -d 25.0 --metascan dat +bin/show dat + +(using the data set in the slam6d repository) +bin/slam6D --max=500 -r 10.2 -i 20 --metascan dat +bin/show dat + +(using hannover1.tgz from http://kos.informatik.uni-osnabrueck.de/3Dscans/) +bin/slam6D -s 1 -e 65 -r 10 -i 100 -d 75 -D 250 --epsICP=0.00001 + -I 50 --cldist=750 -L 0 -G 1 /home/nuechter/dat/dat_hannover1 +bin/show -s 1 -e 65 /home/nuechter/dat/dat_hannover1 + +(using hannover2.tgz from http://kos.informatik.uni-osnabrueck.de/3Dscans/) +bin/slam6D -q -r 10 -f rts -s 23 -d 75 -L 4 --cldist=1500 -G 1 -D -1 + --DlastSLAM 250 --graphDist 200 -I 50 hannover2 +bin/show -f rts -s 23 hannover2 + +(using kvarntorp_mine.tgz (dat_mine1) form http://kos.informatik.uni-osnabrueck.de/3Dscans/) +bin/slam6D -s 1 -e 76 -r 10 -m 3000 -d 50 -i 1000 --epsICP=0.000001 + -I 50 -D 75 --clpairs=5000 -f old /home/nuechter/dat/dat_mine1/ +bin/show -s 1 -e 76 -m 3000 -f old /home/nuechter/dat/dat_mine1/ + +(using bremen_city.zip from http://kos.informatik.uni-osnabrueck.de/3Dscans/) +bin/scan_red -s 0 -e 12 -r 10 /home/nuechter/dat/bremen_city +bin/slam6D -a 2 -q /home/nuechter/dat/bremen_city/reduced -f uos -d 150 + -s 0 -e 12 --anim=1 -n /home/nuechter/dat/bremen_city/bremen.net + -G 1 -D 100 -i 0 -I 50 -p --epsSLAM=0.0 +bin/show -s 0 -e 12 /home/nuechter/dat/bremen_city/reduced + +(using UniKoblenz_CampusTour3_OsnabrueckFormat.tar.gz from +http://kos.informatik.uni-osnabrueck.de/3Dscans/) +bin/slam6D -s 1 -e 320 -r 20 -i 300 --epsICP=0.000001 -d 45 -D 45 + -f uos --algo=2 -l 10 -L 4 -I 100 -G 1 + /home/nuechter/dat/UniKoblenz_CampusTour3_OsnabrueckFormat/ +bin/show -s 1 -e 320 -f uos /home/nuechter/dat/UniKoblenz_CampusTour3_OsnabrueckFormat/ +------------------------------------------------------------------- + +For detecting planes compile with the WITH_PLANE option. +Adapt the settings in bin/hough.cfg for your data set. + +EXAMPLE: (using the data set in the slam6d repository, no modification +of bin/hough.cfg necessary) + +bin/planes -s 0 dat +bin/show -s 0 -e 0 dat -l dat/planes/planes.list + +(using bremen_city.zip from http://kos.informatik.uni-osnabrueck.de/3Dscans/) +adapt these settings in bin/hough.cfg: +RhoNum 500 +RhoMax 5000 +MaxPointPlaneDist 50.0 +MinPlaneSize 50 +PointDist 100.0 +/bin/planes -f riegl_txt -s 0 /home/nuechter/dat/bremen_city/ -r 50 -O 1 -m 5000 +/bin/show -s 0 -e 0 /home/nuechter/dat/bremen_city/ -f riegl_txt -l dat/planes/planes.list -r 10 -O 1 -m 5000 + +------------------------------------------------------------------- +The IO relevant parameters -f(ormat), -s(tart), -e(nd) can be omitted +in slam6D and show if a 'format' file exists in the directory, which +contains key=value lines (spaces are trimmed automatically) for +format, start, end with the same values as in the commandline. These +format-file parameters will be overwritten by commandline parameters +so that the format-file will provide the right IO type and full index +range and the user can overwrite the index range as he sees fit. + +------------------------------------------------------------------- +A reference manual can be found in doc/refman.pdf resp. +doc/html/index.html (type in 'make docu' to compile the doxygen +documentation for the HTML files). diff --git a/.svn/pristine/62/62275c8f5e1a5a21dcde2af49b4afc850c268d5e.svn-base b/.svn/pristine/62/62275c8f5e1a5a21dcde2af49b4afc850c268d5e.svn-base new file mode 100644 index 0000000..fe32f42 --- /dev/null +++ b/.svn/pristine/62/62275c8f5e1a5a21dcde2af49b4afc850c268d5e.svn-base @@ -0,0 +1,84 @@ +/* + * temporaryHandler implementation + * + * Copyright (C) Thomas Escher, Kai Lingemann + * + * Released under the GPL version 3. + * + */ + +#include "scanserver/temporaryHandler.h" + +#include +#include +using namespace std; + +#include "scanserver/cache/cacheManager.h" + + + +TemporaryHandler::TemporaryHandler(CacheObject* obj, CacheManager* cm, SharedScan* scan, bool static_data) : + CacheHandler(obj, cm), + m_scan(scan), + m_written(false), m_static_data(static_data) +{ + m_id = CacheIO::getId(); +} + +bool TemporaryHandler::load() +{ + // INFO + //cout << "[" << m_scan->getIdentifier() << "][" << m_id << "] TemporaryHandler::load"; + + // if the file was not written (equals invalidated) or file doesn't exist we can't load anything + unsigned int size = 0; + if(!m_written || (size = CacheIO::check(m_id)) == 0) { + // INFO + //cout << ", no file found" << endl; + + return false; + } + + // INFO + //cout << endl; + + // get space + unsigned char* data_ptr; + try { + data_ptr = m_manager->allocateCacheObject(m_object, size); + } catch(runtime_error& e) { + // INFO + // cerr << "[" << m_scan->getIdentifier() << "][" << m_id << "] CacheManager error: " << e.what() << endl; + // rethrow + throw e; + } + + // write data into the CO + CacheIO::read(m_id, reinterpret_cast(data_ptr)); + // TODO: check errors + + // INFO + //cout << "[" << m_scan->getIdentifier() << "][" << m_id << "] TemporaryHandler::load successful" << endl; + + return true; +} + +void TemporaryHandler::save(unsigned char* data, unsigned int size) +{ + // INFO + //cout << "[" << m_scan->getIdentifier() << "][" << m_id << "] TemporaryHandler::save"; + + // save if the cached file doesn't exist yet or data is dynamic and file content has to be updated + if(!m_written || !m_static_data) { + // write to file and flag for cached reads from here on + CacheIO::write(m_id, reinterpret_cast(data), size); + m_written = true; + } else { + // INFO + //cout << ", file already cached"; + } + + // INFO + //cout << endl; + return; +} diff --git a/.svn/pristine/63/6302e2d0682fc2478f43e582ffba067d55efb8af.svn-base b/.svn/pristine/63/6302e2d0682fc2478f43e582ffba067d55efb8af.svn-base new file mode 100644 index 0000000..34e996a --- /dev/null +++ b/.svn/pristine/63/6302e2d0682fc2478f43e582ffba067d55efb8af.svn-base @@ -0,0 +1,175 @@ +/**************************************************************************** + + GLUI User Interface Toolkit + --------------------------- + + glui_node.cpp - linked-list tree structure + + + -------------------------------------------------- + + Copyright (c) 1998 Paul Rademacher + + This program is freely distributable without licensing fees and is + provided without guarantee or warrantee expressed or implied. This + program is -not- in the public domain. + +*****************************************************************************/ + + +#include "glui.h" +#include "stdinc.h" + +/********************************************* GLUI_Node::first() *******/ +/* Returns first sibling in 'this' node's sibling list */ + +GLUI_Node *GLUI_Node::first_sibling( void ) +{ + if ( parent_node == NULL ) + return this; /* root node has no siblings */ + else + return parent_node->child_head; +} + + +/******************************************** GLUI_Node::next() ********/ +/* Returns next sibling in 'this' node's sibling list */ + +GLUI_Node *GLUI_Node::next( void ) +{ + return next_sibling; +} + + +/******************************************** GLUI_Node::prev() ********/ +/* Returns prev sibling in 'this' node's sibling list */ + +GLUI_Node *GLUI_Node::prev( void ) +{ + return prev_sibling; +} + + +/********************************************* GLUI_Node::last() *******/ +/* Returns last sibling in 'this' node's sibling list */ + +GLUI_Node *GLUI_Node::last_sibling( void ) +{ + if ( parent_node == NULL ) + return this; /* root node has no siblings */ + else + return parent_node->child_tail; +} + + +/*************************** GLUI_Node::link_this_to_parent_last() *******/ +/* Links as last child of parent */ + +void GLUI_Node::link_this_to_parent_last( GLUI_Node *new_parent ) +{ + if ( new_parent->child_tail == NULL ) { /* parent has no children */ + new_parent->child_head = this; + new_parent->child_tail = this; + this->parent_node = new_parent; + this->parent_node = new_parent; + } + else { /* parent has children */ + new_parent->child_tail->next_sibling = this; + this->prev_sibling = new_parent->child_tail; + new_parent->child_tail = this; + this->parent_node = new_parent; + } +} + + +/*************************** GLUI_Node::link_this_to_parent_first() *******/ +/* Links as first child of parent */ + +void GLUI_Node::link_this_to_parent_first( GLUI_Node *new_parent ) +{ + if ( new_parent->child_head == NULL ) { /* parent has no children */ + new_parent->child_head = this; + new_parent->child_tail = this; + this->parent_node = new_parent; + } + else { /* parent has children */ + new_parent->child_head->prev_sibling = this; + this->next_sibling = new_parent->child_head; + new_parent->child_head = this; + this->parent_node = new_parent; + } +} + +/**************************** GLUI_Node::link_this_to_sibling_next() *****/ + +void GLUI_Node::link_this_to_sibling_next( GLUI_Node *sibling ) +{ + if ( sibling->next_sibling == NULL ) { /* node has no next sibling */ + sibling->next_sibling = this; + this->prev_sibling = sibling; + + /* This was the parent's last child, so update that as well */ + if ( sibling->parent_node != NULL ) { + sibling->parent_node->child_tail = this; + } + } + else { /* node already has a next sibling */ + sibling->next_sibling->prev_sibling = this; + this->next_sibling = sibling->next_sibling; + sibling->next_sibling = this; + this->prev_sibling = sibling; + } + + this->parent_node = sibling->parent_node; +} + + +/**************************** GLUI_Node::link_this_to_sibling_prev() *****/ + +void GLUI_Node::link_this_to_sibling_prev( GLUI_Node *sibling ) +{ + if ( sibling->prev_sibling == NULL ) { /* node has no prev sibling */ + sibling->prev_sibling = this; + this->next_sibling = sibling; + + /* This was the parent's first child, so update that as well */ + if ( sibling->parent_node != NULL ) { + sibling->parent_node->child_head = this; + } + } + else { /* node already has a prev sibling */ + sibling->prev_sibling->next_sibling = this; + this->prev_sibling = sibling->prev_sibling; + sibling->prev_sibling = this; + this->next_sibling = sibling; + } + + this->parent_node = sibling->parent_node; +} + +/**************************************** GLUI_Node::unlink() **************/ + +void GLUI_Node::unlink( void ) +{ + /* Unlink from prev sibling */ + if ( this->prev_sibling != NULL ) { + this->prev_sibling->next_sibling = this->next_sibling; + } + else { /* No prev sibling: this was parent's first child */ + this->parent_node->child_head = this->next_sibling; + } + + /* Unlink from next sibling */ + if ( this->next_sibling != NULL ) { + this->next_sibling->prev_sibling = this->prev_sibling; + } + else { /* No next sibling: this was parent's last child */ + this->parent_node->child_tail = this->prev_sibling; + } + + this->parent_node = NULL; + this->next_sibling = NULL; + this->prev_sibling = NULL; + this->child_head = NULL; + this->child_tail = NULL; +} diff --git a/.svn/pristine/63/63b16062b91251ae53ebfb2b561c38019f30c88d.svn-base b/.svn/pristine/63/63b16062b91251ae53ebfb2b561c38019f30c88d.svn-base new file mode 100644 index 0000000..9bf6204 --- /dev/null +++ b/.svn/pristine/63/63b16062b91251ae53ebfb2b561c38019f30c88d.svn-base @@ -0,0 +1,594 @@ +//---------------------------------------------------------------------- +// File: rand.cpp +// Programmer: Sunil Arya and David Mount +// Description: Routines for random point generation +// Last modified: 08/04/06 (Version 1.1.1) +//---------------------------------------------------------------------- +// Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +// David Mount. All Rights Reserved. +// +// This software and related documentation is part of the Approximate +// Nearest Neighbor Library (ANN). This software is provided under +// the provisions of the Lesser GNU Public License (LGPL). See the +// file ../ReadMe.txt for further information. +// +// The University of Maryland (U.M.) and the authors make no +// representations about the suitability or fitness of this software for +// any purpose. It is provided "as is" without express or implied +// warranty. +//---------------------------------------------------------------------- +// History: +// Revision 0.1 03/04/98 +// Initial release +// Revision 0.2 03/26/98 +// Changed random/srandom declarations for SGI's. +// Revision 1.0 04/01/05 +// annClusGauss centers distributed over [-1,1] rather than [0,1] +// Added annClusOrthFlats distribution +// Changed procedure names to avoid namespace conflicts +// Added annClusFlats distribution +// Added rand/srand option and fixed annRan0() initialization. +// Revision 1.1.1 08/04/06 +// Added planted distribution +//---------------------------------------------------------------------- + +#include "rand.h" // random generator declarations + +using namespace std; // make std:: accessible + +//---------------------------------------------------------------------- +// Globals +//---------------------------------------------------------------------- +int annIdum = 0; // used for random number generation + +//------------------------------------------------------------------------ +// annRan0 - (safer) uniform random number generator +// +// The code given here is taken from "Numerical Recipes in C" by +// William Press, Brian Flannery, Saul Teukolsky, and William +// Vetterling. The task of the code is to do an additional randomizing +// shuffle on the system-supplied random number generator to make it +// safer to use. +// +// Returns a uniform deviate between 0.0 and 1.0 using the +// system-supplied routine random() or rand(). Set the global +// annIdum to any negative value to initialise or reinitialise +// the sequence. +//------------------------------------------------------------------------ + +double annRan0() +{ + const int TAB_SIZE = 97; // table size: any large number + int j; + + static double y, v[TAB_SIZE]; + static int iff = 0; + const double RAN_DIVISOR = double(ANN_RAND_MAX + 1UL); + if (RAN_DIVISOR < 0) { + cout << "RAN_DIVISOR " << RAN_DIVISOR << endl; + exit(0); + } + + //-------------------------------------------------------------------- + // As a precaution against misuse, we will always initialize on the + // first call, even if "annIdum" is not set negative. Determine + // "maxran", the next integer after the largest representable value + // of type int. We assume this is a factor of 2 smaller than the + // corresponding value of type unsigned int. + //-------------------------------------------------------------------- + + if (annIdum < 0 || iff == 0) { // initialize + iff = 1; + ANN_SRAND(annIdum); // (re)seed the generator + annIdum = 1; + + for (j = 0; j < TAB_SIZE; j++) // exercise the system routine + ANN_RAND(); // (values intentionally ignored) + + for (j = 0; j < TAB_SIZE; j++) // then save TAB_SIZE-1 values + v[j] = ANN_RAND(); + y = ANN_RAND(); // generate starting value + } + + //-------------------------------------------------------------------- + // This is where we start if not initializing. Use the previously + // saved random number y to get an index j between 1 and TAB_SIZE-1. + // Then use the corresponding v[j] for both the next j and as the + // output number. + //-------------------------------------------------------------------- + + j = int(TAB_SIZE * (y / RAN_DIVISOR)); + y = v[j]; + v[j] = ANN_RAND(); // refill the table entry + return y / RAN_DIVISOR; +} + +//------------------------------------------------------------------------ +// annRanInt - generate a random integer from {0,1,...,n-1} +// +// If n == 0, then -1 is returned. +//------------------------------------------------------------------------ + +static int annRanInt( + int n) +{ + int r = (int) (annRan0()*n); + if (r == n) r--; // (in case annRan0() == 1 or n == 0) + return r; +} + +//------------------------------------------------------------------------ +// annRanUnif - generate a random uniform in [lo,hi] +//------------------------------------------------------------------------ + +static double annRanUnif( + double lo, + double hi) +{ + return annRan0()*(hi-lo) + lo; +} + +//------------------------------------------------------------------------ +// annRanGauss - Gaussian random number generator +// Returns a normally distributed deviate with zero mean and unit +// variance, using annRan0() as the source of uniform deviates. +//------------------------------------------------------------------------ + +static double annRanGauss() +{ + static int iset=0; + static double gset; + + if (iset == 0) { // we don't have a deviate handy + double v1, v2; + double r = 2.0; + while (r >= 1.0) { + //------------------------------------------------------------ + // Pick two uniform numbers in the square extending from -1 to + // +1 in each direction, see if they are in the circle of radius + // 1. If not, try again + //------------------------------------------------------------ + v1 = annRanUnif(-1, 1); + v2 = annRanUnif(-1, 1); + r = v1 * v1 + v2 * v2; + } + double fac = sqrt(-2.0 * log(r) / r); + //----------------------------------------------------------------- + // Now make the Box-Muller transformation to get two normal + // deviates. Return one and save the other for next time. + //----------------------------------------------------------------- + gset = v1 * fac; + iset = 1; // set flag + return v2 * fac; + } + else { // we have an extra deviate handy + iset = 0; // so unset the flag + return gset; // and return it + } +} + +//------------------------------------------------------------------------ +// annRanLaplace - Laplacian random number generator +// Returns a Laplacian distributed deviate with zero mean and +// unit variance, using annRan0() as the source of uniform deviates. +// +// prob(x) = b/2 * exp(-b * |x|). +// +// b is chosen to be sqrt(2.0) so that the variance of the Laplacian +// distribution [2/(b^2)] becomes 1. +//------------------------------------------------------------------------ + +static double annRanLaplace() +{ + const double b = 1.4142136; + + double laprand = -log(annRan0()) / b; + double sign = annRan0(); + if (sign < 0.5) laprand = -laprand; + return(laprand); +} + +//---------------------------------------------------------------------- +// annUniformPts - Generate uniformly distributed points +// A uniform distribution over [-1,1]. +//---------------------------------------------------------------------- + +void annUniformPts( // uniform distribution + ANNpointArray pa, // point array (modified) + int n, // number of points + int dim) // dimension +{ + for (int i = 0; i < n; i++) { + for (int d = 0; d < dim; d++) { + pa[i][d] = (ANNcoord) (annRanUnif(-1,1)); + } + } +} + +//---------------------------------------------------------------------- +// annGaussPts - Generate Gaussian distributed points +// A Gaussian distribution with zero mean and the given standard +// deviation. +//---------------------------------------------------------------------- + +void annGaussPts( // Gaussian distribution + ANNpointArray pa, // point array (modified) + int n, // number of points + int dim, // dimension + double std_dev) // standard deviation +{ + for (int i = 0; i < n; i++) { + for (int d = 0; d < dim; d++) { + pa[i][d] = (ANNcoord) (annRanGauss() * std_dev); + } + } +} + +//---------------------------------------------------------------------- +// annLaplacePts - Generate Laplacian distributed points +// Generates a Laplacian distribution (zero mean and unit variance). +//---------------------------------------------------------------------- + +void annLaplacePts( // Laplacian distribution + ANNpointArray pa, // point array (modified) + int n, // number of points + int dim) // dimension +{ + for (int i = 0; i < n; i++) { + for (int d = 0; d < dim; d++) { + pa[i][d] = (ANNcoord) annRanLaplace(); + } + } +} + +//---------------------------------------------------------------------- +// annCoGaussPts - Generate correlated Gaussian distributed points +// Generates a Gauss-Markov distribution of zero mean and unit +// variance. +//---------------------------------------------------------------------- + +void annCoGaussPts( // correlated-Gaussian distribution + ANNpointArray pa, // point array (modified) + int n, // number of points + int dim, // dimension + double correlation) // correlation +{ + double std_dev_w = sqrt(1.0 - correlation * correlation); + for (int i = 0; i < n; i++) { + double previous = annRanGauss(); + pa[i][0] = (ANNcoord) previous; + for (int d = 1; d < dim; d++) { + previous = correlation*previous + std_dev_w*annRanGauss(); + pa[i][d] = (ANNcoord) previous; + } + } +} + +//---------------------------------------------------------------------- +// annCoLaplacePts - Generate correlated Laplacian distributed points +// Generates a Laplacian-Markov distribution of zero mean and unit +// variance. +//---------------------------------------------------------------------- + +void annCoLaplacePts( // correlated-Laplacian distribution + ANNpointArray pa, // point array (modified) + int n, // number of points + int dim, // dimension + double correlation) // correlation +{ + double wn; + double corr_sq = correlation * correlation; + + for (int i = 0; i < n; i++) { + double previous = annRanLaplace(); + pa[i][0] = (ANNcoord) previous; + for (int d = 1; d < dim; d++) { + double temp = annRan0(); + if (temp < corr_sq) + wn = 0.0; + else + wn = annRanLaplace(); + previous = correlation * previous + wn; + pa[i][d] = (ANNcoord) previous; + } + } +} + +//---------------------------------------------------------------------- +// annClusGaussPts - Generate clusters of Gaussian distributed points +// Cluster centers are uniformly distributed over [-1,1], and the +// standard deviation within each cluster is fixed. +// +// Note: Once cluster centers have been set, they are not changed, +// unless new_clust = true. This is so that subsequent calls generate +// points from the same distribution. It follows, of course, that any +// attempt to change the dimension or number of clusters without +// generating new clusters is asking for trouble. +// +// Note: Cluster centers are not generated by a call to uniformPts(). +// Although this could be done, it has been omitted for +// compatibility with annClusGaussPts() in the colored version, +// rand_c.cc. +//---------------------------------------------------------------------- + +void annClusGaussPts( // clustered-Gaussian distribution + ANNpointArray pa, // point array (modified) + int n, // number of points + int dim, // dimension + int n_clus, // number of colors + ANNbool new_clust, // generate new clusters. + double std_dev) // standard deviation within clusters +{ + static ANNpointArray clusters = NULL;// cluster storage + + if (clusters == NULL || new_clust) {// need new cluster centers + if (clusters != NULL) // clusters already exist + annDeallocPts(clusters); // get rid of them + clusters = annAllocPts(n_clus, dim); + // generate cluster center coords + for (int i = 0; i < n_clus; i++) { + for (int d = 0; d < dim; d++) { + clusters[i][d] = (ANNcoord) annRanUnif(-1,1); + } + } + } + + for (int i = 0; i < n; i++) { + int c = annRanInt(n_clus); // generate cluster index + for (int d = 0; d < dim; d++) { + pa[i][d] = (ANNcoord) (std_dev*annRanGauss() + clusters[c][d]); + } + } +} + +//---------------------------------------------------------------------- +// annClusOrthFlats - points clustered along orthogonal flats +// +// This distribution consists of a collection points clustered +// among a collection of axis-aligned low dimensional flats in +// the hypercube [-1,1]^d. A set of n_clus orthogonal flats are +// generated, each whose dimension is a random number between 1 +// and max_dim. The points are evenly distributed among the clusters. +// For each cluster, we generate points uniformly distributed along +// the flat within the hypercube. +// +// This is done as follows. Each cluster is defined by a d-element +// control vector whose components are either: +// +// CO_FLAG indicating that this component is to be generated +// uniformly in [-1,1], +// x a value other than CO_FLAG in the range [-1,1], +// which indicates that this coordinate is to be +// generated as x plus a Gaussian random deviation +// with the given standard deviation. +// +// The number of zero components is the dimension of the flat, which +// is a random integer in the range from 1 to max_dim. The points +// are disributed between clusters in nearly equal sized groups. +// +// Note: Once cluster centers have been set, they are not changed, +// unless new_clust = true. This is so that subsequent calls generate +// points from the same distribution. It follows, of course, that any +// attempt to change the dimension or number of clusters without +// generating new clusters is asking for trouble. +// +// To make this a bad scenario at query time, query points should be +// selected from a different distribution, e.g. uniform or Gaussian. +// +// We use a little programming trick to generate groups of roughly +// equal size. If n is the total number of points, and n_clus is +// the number of clusters, then the c-th cluster (0 <= c < n_clus) +// is given floor((n+c)/n_clus) points. It can be shown that this +// will exactly consume all n points. +// +// This procedure makes use of the utility procedure, genOrthFlat +// which generates points in one orthogonal flat, according to +// the given control vector. +// +//---------------------------------------------------------------------- +const double CO_FLAG = 999; // special flag value + +static void genOrthFlat( // generate points on an orthog flat + ANNpointArray pa, // point array + int n, // number of points + int dim, // dimension + double *control, // control vector + double std_dev) // standard deviation +{ + for (int i = 0; i < n; i++) { // generate each point + for (int d = 0; d < dim; d++) { // generate each coord + if (control[d] == CO_FLAG) // dimension on flat + pa[i][d] = (ANNcoord) annRanUnif(-1,1); + else // dimension off flat + pa[i][d] = (ANNcoord) (std_dev*annRanGauss() + control[d]); + } + } +} + +void annClusOrthFlats( // clustered along orthogonal flats + ANNpointArray pa, // point array (modified) + int n, // number of points + int dim, // dimension + int n_clus, // number of colors + ANNbool new_clust, // generate new clusters. + double std_dev, // standard deviation within clusters + int max_dim) // maximum dimension of the flats +{ + static ANNpointArray control = NULL; // control vectors + + if (control == NULL || new_clust) { // need new cluster centers + if (control != NULL) { // clusters already exist + annDeallocPts(control); // get rid of them + } + control = annAllocPts(n_clus, dim); + + for (int c = 0; c < n_clus; c++) { // generate clusters + int n_dim = 1 + annRanInt(max_dim); // number of dimensions in flat + for (int d = 0; d < dim; d++) { // generate side locations + // prob. of picking next dim + double Prob = ((double) n_dim)/((double) (dim-d)); + if (annRan0() < Prob) { // add this one to flat + control[c][d] = CO_FLAG; // flag this entry + n_dim--; // one fewer dim to fill + } + else { // don't take this one + control[c][d] = annRanUnif(-1,1);// random value in [-1,1] + } + } + } + } + int offset = 0; // offset in pa array + for (int c = 0; c < n_clus; c++) { // generate clusters + int pick = (n+c)/n_clus; // number of points to pick + // generate the points + genOrthFlat(pa+offset, pick, dim, control[c], std_dev); + offset += pick; // increment offset + } +} + +//---------------------------------------------------------------------- +// annClusEllipsoids - points clustered around axis-aligned ellipsoids +// +// This distribution consists of a collection points clustered +// among a collection of low dimensional ellipsoids whose axes +// are alligned with the coordinate axes in the hypercube [-1,1]^d. +// The objective is to model distributions in which the points are +// distributed in lower dimensional subspaces, and within this +// lower dimensional space the points are distributed with a +// Gaussian distribution (with no correlation between the +// dimensions). +// +// The distribution is given the number of clusters or "colors" +// (n_clus), maximum number of dimensions (max_dim) of the lower +// dimensional subspace, a "small" standard deviation +// (std_dev_small), and a "large" standard deviation range +// (std_dev_lo, std_dev_hi). +// +// The algorithm generates n_clus cluster centers uniformly from +// the hypercube [-1,1]^d. For each cluster, it selects the +// dimension of the subspace as a random number r between 1 and +// max_dim. These are the dimensions of the ellipsoid. Then it +// generates a d-element std dev vector whose entries are the +// standard deviation for the coordinates of each cluster in the +// distribution. Among the d-element control vector, r randomly +// chosen values are chosen uniformly from the range [std_dev_lo, +// std_dev_hi]. The remaining values are set to std_dev_small. +// +// Note that annClusGaussPts is a special case of this in which +// max_dim = 0, and std_dev = std_dev_small. +// +// If the flag new_clust is set, then new cluster centers are +// generated. +// +// This procedure makes use of the utility procedure genGauss +// which generates points distributed according to a Gaussian +// distribution. +// +//---------------------------------------------------------------------- + +static void genGauss( // generate points on a general Gaussian + ANNpointArray pa, // point array + int n, // number of points + int dim, // dimension + double *center, // center vector + double *std_dev) // standard deviation vector +{ + for (int i = 0; i < n; i++) { + for (int d = 0; d < dim; d++) { + pa[i][d] = (ANNcoord) (std_dev[d]*annRanGauss() + center[d]); + } + } +} + +void annClusEllipsoids( // clustered around ellipsoids + ANNpointArray pa, // point array (modified) + int n, // number of points + int dim, // dimension + int n_clus, // number of colors + ANNbool new_clust, // generate new clusters. + double std_dev_small, // small standard deviation + double std_dev_lo, // low standard deviation for ellipses + double std_dev_hi, // high standard deviation for ellipses + int max_dim) // maximum dimension of the flats +{ + static ANNpointArray centers = NULL; // cluster centers + static ANNpointArray std_dev = NULL; // standard deviations + + if (centers == NULL || new_clust) { // need new cluster centers + if (centers != NULL) // clusters already exist + annDeallocPts(centers); // get rid of them + if (std_dev != NULL) // std deviations already exist + annDeallocPts(std_dev); // get rid of them + + centers = annAllocPts(n_clus, dim); // alloc new clusters and devs + std_dev = annAllocPts(n_clus, dim); + + for (int i = 0; i < n_clus; i++) { // gen cluster center coords + for (int d = 0; d < dim; d++) { + centers[i][d] = (ANNcoord) annRanUnif(-1,1); + } + } + for (int c = 0; c < n_clus; c++) { // generate cluster std dev + int n_dim = 1 + annRanInt(max_dim); // number of dimensions in flat + for (int d = 0; d < dim; d++) { // generate std dev's + // prob. of picking next dim + double Prob = ((double) n_dim)/((double) (dim-d)); + if (annRan0() < Prob) { // add this one to ellipse + // generate random std dev + std_dev[c][d] = annRanUnif(std_dev_lo, std_dev_hi); + n_dim--; // one fewer dim to fill + } + else { // don't take this one + std_dev[c][d] = std_dev_small;// use small std dev + } + } + } + } + + int offset = 0; // next slot to fill + for (int c = 0; c < n_clus; c++) { // generate clusters + int pick = (n+c)/n_clus; // number of points to pick + // generate the points + genGauss(pa+offset, pick, dim, centers[c], std_dev[c]); + offset += pick; // increment offset in array + } +} + +//---------------------------------------------------------------------- +// annPlanted - Generates points from a "planted" distribution +// In high dimensional spaces, interpoint distances tend to be +// highly clustered around the mean value. Approximate nearest +// neighbor searching makes little sense in this context, unless it +// is the case that each query point is significantly closer to its +// nearest neighbor than to other points. Thus, the query points +// should be planted close to the data points. Given a source data +// set, this procedure generates a set of query points having this +// property. +// +// We are given a source data array and a standard deviation. We +// generate points as follows. We select a random point from the +// source data set, and we generate a Gaussian point centered about +// this random point and perturbed by a normal distributed random +// variable with mean zero and the given standard deviation along +// each coordinate. +// +// Note that this essentially the same a clustered Gaussian +// distribution, but where the cluster centers are given by the +// source data set. +//---------------------------------------------------------------------- + +void annPlanted( // planted nearest neighbors + ANNpointArray pa, // point array (modified) + int n, // number of points + int dim, // dimension + ANNpointArray src, // source point array + int n_src, // source size + double std_dev) // standard deviation about source +{ + for (int i = 0; i < n; i++) { + int c = annRanInt(n_src); // generate source index + for (int d = 0; d < dim; d++) { + pa[i][d] = (ANNcoord) (std_dev*annRanGauss() + src[c][d]); + } + } +} diff --git a/.svn/pristine/64/6414bf615735d61af92e56661d9010afcd65faec.svn-base b/.svn/pristine/64/6414bf615735d61af92e56661d9010afcd65faec.svn-base new file mode 100644 index 0000000..ce61238 --- /dev/null +++ b/.svn/pristine/64/6414bf615735d61af92e56661d9010afcd65faec.svn-base @@ -0,0 +1,21 @@ +#ifndef __GLUT_H__ +#define __GLUT_H__ + +/* + * glut.h + * + * The freeglut library include file + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#include "freeglut_std.h" + +/*** END OF FILE ***/ + +#endif /* __GLUT_H__ */ diff --git a/.svn/pristine/64/649752ac5eca5dd2f407b7d130de6fee6d5eeda3.svn-base b/.svn/pristine/64/649752ac5eca5dd2f407b7d130de6fee6d5eeda3.svn-base new file mode 100644 index 0000000..34bb3ad --- /dev/null +++ b/.svn/pristine/64/649752ac5eca5dd2f407b7d130de6fee6d5eeda3.svn-base @@ -0,0 +1,18 @@ + +testfile size num_c quality time num_errors +-------- x y ------- p1 p1 p2 p3 +g300a1.pbm 703 580 469 + 2s 4 - 0 +g300a2.pbm 724 1252 1021 + 5s 2 0 0 +g300b1.pbm 1564 277 55 + 4s 0 1 1 +g300b2.pbm 599 1319 860 snowy 9s 76 - 40 +g300b3.pbm 592 1324 934 snowy 7s 36 2 15 +g300c1.pbm 750 2771 2182 + 15s 35 1 14 +liebfrau1 2289 3200 1927 + 19s 13 0 8 +meraji1 1912 1355 1246 thinn 15s 65 4 40 +paraguay1 2617 1375 3280 frame 78s 1000 1 55 + +p1=gocr0.2.4a3 on P400 +p2=recognita+4.0 +p3=gocr0.2.5 + +most errors: connected chars, like fi,ff, italic font diff --git a/.svn/pristine/65/650cd930b75f57aa7e5aea9106a21209b293ff78.svn-base b/.svn/pristine/65/650cd930b75f57aa7e5aea9106a21209b293ff78.svn-base new file mode 100644 index 0000000..83614d9 --- /dev/null +++ b/.svn/pristine/65/650cd930b75f57aa7e5aea9106a21209b293ff78.svn-base @@ -0,0 +1,15 @@ +FILE(REMOVE_RECURSE + "CMakeFiles/cvblob.dir/cvblob.cpp.o" + "CMakeFiles/cvblob.dir/cvlabel.cpp.o" + "CMakeFiles/cvblob.dir/cvaux.cpp.o" + "CMakeFiles/cvblob.dir/cvcontour.cpp.o" + "CMakeFiles/cvblob.dir/cvtrack.cpp.o" + "CMakeFiles/cvblob.dir/cvcolor.cpp.o" + "libcvblob.pdb" + "libcvblob.a" +) + +# Per-language clean rules from dependency scanning. +FOREACH(lang CXX) + INCLUDE(CMakeFiles/cvblob.dir/cmake_clean_${lang}.cmake OPTIONAL) +ENDFOREACH(lang) diff --git a/.svn/pristine/65/65919e6cb16b14a766728dafc454ac1b3f9ed128.svn-base b/.svn/pristine/65/65919e6cb16b14a766728dafc454ac1b3f9ed128.svn-base new file mode 100644 index 0000000..5004ef7 --- /dev/null +++ b/.svn/pristine/65/65919e6cb16b14a766728dafc454ac1b3f9ed128.svn-base @@ -0,0 +1,210 @@ +//---------------------------------------------------------------------- +// File: kd_search.cpp +// Programmer: Sunil Arya and David Mount +// Description: Standard kd-tree search +// Last modified: 01/04/05 (Version 1.0) +//---------------------------------------------------------------------- +// Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +// David Mount. All Rights Reserved. +// +// This software and related documentation is part of the Approximate +// Nearest Neighbor Library (ANN). This software is provided under +// the provisions of the Lesser GNU Public License (LGPL). See the +// file ../ReadMe.txt for further information. +// +// The University of Maryland (U.M.) and the authors make no +// representations about the suitability or fitness of this software for +// any purpose. It is provided "as is" without express or implied +// warranty. +//---------------------------------------------------------------------- +// History: +// Revision 0.1 03/04/98 +// Initial release +// Revision 1.0 04/01/05 +// Changed names LO, HI to ANN_LO, ANN_HI +//---------------------------------------------------------------------- + +#include "kd_search.h" // kd-search declarations + +//---------------------------------------------------------------------- +// Approximate nearest neighbor searching by kd-tree search +// The kd-tree is searched for an approximate nearest neighbor. +// The point is returned through one of the arguments, and the +// distance returned is the squared distance to this point. +// +// The method used for searching the kd-tree is an approximate +// adaptation of the search algorithm described by Friedman, +// Bentley, and Finkel, ``An algorithm for finding best matches +// in logarithmic expected time,'' ACM Transactions on Mathematical +// Software, 3(3):209-226, 1977). +// +// The algorithm operates recursively. When first encountering a +// node of the kd-tree we first visit the child which is closest to +// the query point. On return, we decide whether we want to visit +// the other child. If the box containing the other child exceeds +// 1/(1+eps) times the current best distance, then we skip it (since +// any point found in this child cannot be closer to the query point +// by more than this factor.) Otherwise, we visit it recursively. +// The distance between a box and the query point is computed exactly +// (not approximated as is often done in kd-tree), using incremental +// distance updates, as described by Arya and Mount in ``Algorithms +// for fast vector quantization,'' Proc. of DCC '93: Data Compression +// Conference, eds. J. A. Storer and M. Cohn, IEEE Press, 1993, +// 381-390. +// +// The main entry points is annkSearch() which sets things up and +// then call the recursive routine ann_search(). This is a recursive +// routine which performs the processing for one node in the kd-tree. +// There are two versions of this virtual procedure, one for splitting +// nodes and one for leaves. When a splitting node is visited, we +// determine which child to visit first (the closer one), and visit +// the other child on return. When a leaf is visited, we compute +// the distances to the points in the buckets, and update information +// on the closest points. +// +// Some trickery is used to incrementally update the distance from +// a kd-tree rectangle to the query point. This comes about from +// the fact that which each successive split, only one component +// (along the dimension that is split) of the squared distance to +// the child rectangle is different from the squared distance to +// the parent rectangle. +//---------------------------------------------------------------------- + +//---------------------------------------------------------------------- +// To keep argument lists short, a number of global variables +// are maintained which are common to all the recursive calls. +// These are given below. +//---------------------------------------------------------------------- + +int ANNkdDim; // dimension of space +ANNpoint ANNkdQ; // query point +double ANNkdMaxErr; // max tolerable squared error +ANNpointArray ANNkdPts; // the points +ANNmin_k *ANNkdPointMK; // set of k closest points + +//---------------------------------------------------------------------- +// annkSearch - search for the k nearest neighbors +//---------------------------------------------------------------------- + +void ANNkd_tree::annkSearch( + ANNpoint q, // the query point + int k, // number of near neighbors to return + ANNidxArray nn_idx, // nearest neighbor indices (returned) + ANNdistArray dd, // the approximate nearest neighbor + double eps) // the error bound +{ + + ANNkdDim = dim; // copy arguments to static equivs + ANNkdQ = q; + ANNkdPts = pts; + ANNptsVisited = 0; // initialize count of points visited + + if (k > n_pts) { // too many near neighbors? + annError("Requesting more near neighbors than data points", ANNabort); + } + + ANNkdMaxErr = ANN_POW(1.0 + eps); + ANN_FLOP(2) // increment floating op count + + ANNkdPointMK = new ANNmin_k(k); // create set for closest k points + // search starting at the root + root->ann_search(annBoxDistance(q, bnd_box_lo, bnd_box_hi, dim)); + + for (int i = 0; i < k; i++) { // extract the k-th closest points + dd[i] = ANNkdPointMK->ith_smallest_key(i); + nn_idx[i] = ANNkdPointMK->ith_smallest_info(i); + } + delete ANNkdPointMK; // deallocate closest point set +} + +//---------------------------------------------------------------------- +// kd_split::ann_search - search a splitting node +//---------------------------------------------------------------------- + +void ANNkd_split::ann_search(ANNdist box_dist) +{ + // check dist calc term condition + if (ANNmaxPtsVisited != 0 && ANNptsVisited > ANNmaxPtsVisited) return; + + // distance to cutting plane + ANNcoord cut_diff = ANNkdQ[cut_dim] - cut_val; + + if (cut_diff < 0) { // left of cutting plane + child[ANN_LO]->ann_search(box_dist);// visit closer child first + + ANNcoord box_diff = cd_bnds[ANN_LO] - ANNkdQ[cut_dim]; + if (box_diff < 0) // within bounds - ignore + box_diff = 0; + // distance to further box + box_dist = (ANNdist) ANN_SUM(box_dist, + ANN_DIFF(ANN_POW(box_diff), ANN_POW(cut_diff))); + + // visit further child if close enough + if (box_dist * ANNkdMaxErr < ANNkdPointMK->max_key()) + child[ANN_HI]->ann_search(box_dist); + + } + else { // right of cutting plane + child[ANN_HI]->ann_search(box_dist);// visit closer child first + + ANNcoord box_diff = ANNkdQ[cut_dim] - cd_bnds[ANN_HI]; + if (box_diff < 0) // within bounds - ignore + box_diff = 0; + // distance to further box + box_dist = (ANNdist) ANN_SUM(box_dist, + ANN_DIFF(ANN_POW(box_diff), ANN_POW(cut_diff))); + + // visit further child if close enough + if (box_dist * ANNkdMaxErr < ANNkdPointMK->max_key()) + child[ANN_LO]->ann_search(box_dist); + + } + ANN_FLOP(10) // increment floating ops + ANN_SPL(1) // one more splitting node visited +} + +//---------------------------------------------------------------------- +// kd_leaf::ann_search - search points in a leaf node +// Note: The unreadability of this code is the result of +// some fine tuning to replace indexing by pointer operations. +//---------------------------------------------------------------------- + +void ANNkd_leaf::ann_search(ANNdist box_dist) +{ + register ANNdist dist; // distance to data point + register ANNcoord* pp; // data coordinate pointer + register ANNcoord* qq; // query coordinate pointer + register ANNdist min_dist; // distance to k-th closest point + register ANNcoord t; + register int d; + + min_dist = ANNkdPointMK->max_key(); // k-th smallest distance so far + + for (int i = 0; i < n_pts; i++) { // check points in bucket + + pp = ANNkdPts[bkt[i]]; // first coord of next data point + qq = ANNkdQ; // first coord of query point + dist = 0; + + for(d = 0; d < ANNkdDim; d++) { + ANN_COORD(1) // one more coordinate hit + ANN_FLOP(4) // increment floating ops + + t = *(qq++) - *(pp++); // compute length and adv coordinate + // exceeds dist to k-th smallest? + if( (dist = ANN_SUM(dist, ANN_POW(t))) > min_dist) { + break; + } + } + + if (d >= ANNkdDim && // among the k best? + (ANN_ALLOW_SELF_MATCH || dist!=0)) { // and no self-match problem + // add it to the list + ANNkdPointMK->insert(dist, bkt[i]); + min_dist = ANNkdPointMK->max_key(); + } + } + ANN_LEAF(1) // one more leaf node visited + ANN_PTS(n_pts) // increment points visited + ANNptsVisited += n_pts; // increment number of points visited +} diff --git a/.svn/pristine/65/659ab1f367762ef26220738c7bdee95d3e31096e.svn-base b/.svn/pristine/65/659ab1f367762ef26220738c7bdee95d3e31096e.svn-base new file mode 100644 index 0000000..5d7dd30 --- /dev/null +++ b/.svn/pristine/65/659ab1f367762ef26220738c7bdee95d3e31096e.svn-base @@ -0,0 +1,53 @@ +# CLIENT LIBRARY + +# build by source +set(CLIENT_SRCS + clientInterface.cc sharedScan.cc cache/cacheObject.cc + cache/cacheDataAccess.cc +) + +if(WITH_METRICS) + set(CLIENT_SRCS ${CLIENT_SRCS} ../slam6d/metrics.cc) +endif(WITH_METRICS) + +add_library(scanclient STATIC ${CLIENT_SRCS}) + +# add libraries +# boost::interprocess +set(CLIENT_LIBS ${Boost_LIBRARIES} pointfilter) + +if(UNIX) + # boost::interprocess uses pthread, requiring librt + set(CLIENT_LIBS ${CLIENT_LIBS} rt) +endif(UNIX) + +target_link_libraries(scanclient ${CLIENT_LIBS}) + +# SERVER EXECUTABLE + +# build by source +set(SERVER_SRCS + scanserver.cc serverInterface.cc frame_io.cc serverScan.cc + cache/cacheManager.cc cache/cacheHandler.cc scanHandler.cc + temporaryHandler.cc cacheIO.cc +) + +add_executable(scanserver ${SERVER_SRCS}) + +# add libraries +# boost::interprocess/filesystem +# scanclient basic functionality +# scanio for ScanHandler input +set(SERVER_LIBS ${Boost_LIBRARIES} scanclient scanio) + +if(UNIX) + # boost::interprocess uses pthread, requiring librt + set(SERVER_LIBS ${SERVER_LIBS} rt) +endif(UNIX) + +if(WIN32) + # 3rd party getopt library + set(SERVER_LIBS ${SERVER_LIBS} XGetopt) +endif(WIN32) + +target_link_libraries(scanserver ${SERVER_LIBS}) diff --git a/.svn/pristine/65/65c797104b91af81ebca53301ab8e825def31f83.svn-base b/.svn/pristine/65/65c797104b91af81ebca53301ab8e825def31f83.svn-base new file mode 100644 index 0000000..84559c1 --- /dev/null +++ b/.svn/pristine/65/65c797104b91af81ebca53301ab8e825def31f83.svn-base @@ -0,0 +1,102 @@ +/** + * @file graphicsAlg.h + * + * @auhtor Remus Claudiu Dumitru + * @date 18 Feb 2012 + * + */ + +#ifndef GRAPHICSALG_H_ +#define GRAPHICSALG_H_ + +//============================================================================== +// Includes +//============================================================================== +#include "model/plane3d.h" +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace model { + +class GraphicsAlg { +private: + typedef double Type; + typedef CGAL::Simple_cartesian SC; + typedef CGAL::Filtered_kernel K; + + typedef CGAL::Alpha_shape_euclidean_traits_2 Gt; + typedef CGAL::Alpha_shape_vertex_base_2 Avb; + + typedef CGAL::Triangulation_hierarchy_vertex_base_2 Av; + typedef CGAL::Triangulation_face_base_2 Tf; + typedef CGAL::Alpha_shape_face_base_2 Af; + + typedef CGAL::Triangulation_default_data_structure_2 Tds; + typedef CGAL::Delaunay_triangulation_2 Dt; + typedef CGAL::Triangulation_hierarchy_2
Ht; + + /** + * Computes the alpha edges. + */ + template + static void alpha_edges(InputIterator begin, InputIterator end, + const Type& Alpha, + bool mode, + OutputIterator out); + +public: + typedef CGAL::Alpha_shape_2 Alpha_shape_2; + + typedef K::Point_2 Point; + typedef K::Segment_2 Segment; + typedef Alpha_shape_2::Face Face; + typedef Alpha_shape_2::Vertex Vertex; + typedef Alpha_shape_2::Edge Edge; + typedef Alpha_shape_2::Face_handle Face_handle; + typedef Alpha_shape_2::Vertex_handle Vertex_handle; + + typedef Alpha_shape_2::Face_circulator Face_circulator; + typedef Alpha_shape_2::Vertex_circulator Vertex_circulator; + typedef Alpha_shape_2::Locate_type Locate_type; + + typedef Alpha_shape_2::Face_iterator Face_iterator; + typedef Alpha_shape_2::Vertex_iterator Vertex_iterator; + typedef Alpha_shape_2::Edge_iterator Edge_iterator; + typedef Alpha_shape_2::Edge_circulator Edge_circulator; + + typedef Alpha_shape_2::Alpha_iterator Alpha_iterator; + typedef Alpha_shape_2::Alpha_shape_edges_iterator Alpha_shape_edges_iterator; + + /** + * Sort planes HORIZONTALLY in a clockwise order, around the center of mass. + * @warning in place sort + */ + static void clockwiseSort(std::vector& planes); + + /** + * Computes the HORIZONTAL convex hull of the given planes. + */ + static std::vector getConcaveHull(std::vector planes); + + /** + * Computes the discrete line between two points using Bresenham's algorithm. + * @param src the source point + * @param dest the destination point + * @param precision the precision at which the discrete line shall be drawn + */ + static void getDiscreteLine(model::Point3d src, model::Point3d dest, double precision, const double& extraDist, + std::vector& line); +}; + +} /* namespace model */ + +#endif /* GRAPHICSALG_H_ */ diff --git a/.svn/pristine/65/65edc04f099a0758effe0b2b539f4a9fa825dfa6.svn-base b/.svn/pristine/65/65edc04f099a0758effe0b2b539f4a9fa825dfa6.svn-base new file mode 100644 index 0000000..efa2997 --- /dev/null +++ b/.svn/pristine/65/65edc04f099a0758effe0b2b539f4a9fa825dfa6.svn-base @@ -0,0 +1,1475 @@ +/* ocr-engine numbers only */ +/* +This is a Optical-Character-Recognition program +Copyright (C) 2000-2009 Joerg Schulenburg + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + see README for EMAIL-address + + OCR engine (c) Joerg Schulenburg + first engine: rule based --- numbers 0..9 + +*/ + +#include +#include +/* #include "pgm2asc.h" */ +#include "ocr0.h" +#include "ocr1.h" +#include "amiga.h" +#include "pnm.h" +#include "gocr.h" + +/* only for debugging and development */ +#define IFV if(JOB->cfg.verbose&4) +#define MM {IFV fprintf(stderr,"\nDBG %c L%04d (%d,%d): ",(char)c_ask,__LINE__,box1->x0,box1->y0);} + +/* the old debug mode (0.40) was only for a special char, for another char + * code must be recompiled with C_ASK='char' + * new debug mode (0.41) explains why char is declined or accepted as ABC... + * the output can be filtered by external scripts + * ToDo: we could reduce output to filter string + */ +#ifndef DO_DEBUG /* can be defined outside */ +#define DO_DEBUG 0 /* 0 is the default */ +#endif + +/* this macro is for debugging output: "if char is declined, why?" */ +#if DO_DEBUG /* 0=Work mode, 1=debugging mode */ +// Setac: output, that char is choosen with a probability +// Break: output, why the char is not choosen +// MSG: debugging functions for char C_ASK, mostly messages +// DBG: definitions usefull only for debugging +#define Setac(box1,ac,ad) { MM;IFV fprintf(stderr,"setac %d",ad);setac(box1,ac,ad); } +#define Break { MM;IFV fprintf(stderr,"break"); break; } +#define MSG(x) { MM;IFV x } +#define DBG(x) x +#else +#define Setac(box1,ac,ad) setac(box1,ac,ad) +#define Break break +#define MSG(x) +#define DBG(x) +#endif + +/* extern "C"{ */ + +// OCR engine ;) +wchar_t ocr0n(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + pix *bp=sdata->bp; + int d,x,y,x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1; + int dx=x1-x0+1,dy=y1-y0+1,cs=sdata->cs; // size + int xa,xb,ya,yb, /* tmp-vars */ + i1,i2,i3,i4,i,j; + int (*aa)[4]=sdata->aa; /* corner-points, (x,y,dist^2,vector_idx) */ + wchar_t bc=UNKNOWN; // best char + int ad=0; // propability 0..100 + int hchar=sdata->hchar; // char is higher than 'e' + int gchar=sdata->gchar; // char has ink lower than m3 + int dots=box1->dots; + // --- test 5 near S --------------------------------------------------- + for(ad=d=100;dx>2 && dy>4;){ // min 3x4 + DBG( char c_ask='5'; ) + if (sdata->holes.num > 1) Break; /* be tolerant */ + if( num_cross( dx/2, dx/2,0,dy-1,bp,cs)!=3 + && num_cross(5*dx/8,3*dx/8,0,dy-1,bp,cs)!=3 ) Break; + + i1=loop(bp,dx-1,dy-1,dx,cs,0,LE); + i2=loop(bp,dx-1,dy-2,dx,cs,0,LE); + if (i2-i1 >= dx/4) Break; // ~{ 5x7font + + // get the upper and lower hole koords, y around dy/4 ??? + x=5*dx/8; + y =loop(bp,x,0,dy,cs,0,DO); if(y>dy/8) Break; + y +=loop(bp,x,y,dy,cs,1,DO); if(y>dy/4) Break; + i1 =loop(bp,x,y,dy,cs,0,DO)+y; if(i1>5*dy/8) Break; + i3=y=(y+i1)/2; // upper end can be shifted to the right for italic + x =loop(bp,0,y,dx,cs,0,RI); if(x>4*dx/8) Break; + x +=loop(bp,x,y,dx,cs,1,RI); if(x>5*dx/8) Break; + i1 =loop(bp,x,y,dx,cs,0,RI); i1=(i1+2*x)/2; // upper center (i1,i3) + y=11*dy/16; + x =loop(bp,dx-1 ,y,dx,cs,0,LE); if(x>dx/4) Break; + x +=loop(bp,dx-1-x,y,dx,cs,1,LE); if(x>dx/2) Break; + i2 =loop(bp,dx-1-x,y,dx,cs,0,LE); i2=dx-1-(i2+2*x)/2; // lower center x + + MSG( fprintf(stderr,"i1,i3=%d,%d i2=%d (upper+lower center)",i1,i3,i2);) + + y =loop(bp,i1,0,dy,cs,0,DO); + y +=loop(bp,i1,y,dy,cs,1,DO); + y =(3*y+i3)/4; + if( num_cross( i1, dx-1, y, y,bp,cs)>0 ){ /* S or serif5 ? */ + y =loop(bp,i1 ,i3,dy,cs,0,DO); + i =loop(bp,i1-1,i3,dy,cs,0,DO); + if (y>i ) ad=99*ad/100; /* looks like S */ + y =loop(bp,i1 ,i3,dy,cs,0,UP); + i =loop(bp,i1+1,i3,dy,cs,0,UP); + if (ii ) ad=99*ad/100; /* looks like S */ + if( num_cross( 0, dx/2, dy-1, dy-1,bp,cs)>1 + && num_cross( dx/2,dx-1, 0, 0,bp,cs)>1 ) ad=98*ad/100; /* serifs */ + if (loop(bp,0,dy-1,dx,cs,0,RI)==0) ad=98*ad/100; /* S or 7segment */ + ad=99*ad/100; + } + + for(y=dy/5;y<3*dy/4;y++) // right gap? + if( num_cross(i1,dx-1,y,y,bp,cs)==0 ) break; + if( y==3*dy/4 ) Break; + + for(y=dy/4;y<=11*dy/16;y++) // left gap? + if( num_cross(0,i2,y,y,bp,cs)==0 ) break; + if( y>11*dy/16 ) Break; + + // if( num_hole( x0, x1, y0, y1, box1->p,cs,NULL) > 0 ) break; + if (sdata->holes.num>0) Break; + + // sS5 \sl z left upper v-bow ? + for(x=dx,i=y=dy/4;yi2 ) i2=i; + i3=loop(bp,0, y ,dx,cs,0,RI); + i =loop(bp,0, y-1,dx,cs,0,RI); if( i=20 && dx<16 ) /* tall S */ + if( loop(bp,0, dy/5 ,dx,cs,0,RI) + ==loop(bp,0, dy/4 ,dx,cs,0,RI) + && + loop(bp,0, dy/10 ,dx,cs,0,RI) + >loop(bp,0, dy/4 ,dx,cs,0,RI) + && + loop(bp,0, 1 ,dx,cs,0,RI) + >loop(bp,0, dy/4 ,dx,cs,0,RI)+1 + && + loop(bp,dx-1, 0 ,dx,cs,0,LE) + >loop(bp,dx-1, 1 ,dx,cs,0,LE) ) Break; + + if( dy>=30 && dx>15 ) /* large S */ + if( loop(bp,dx/4,3*dy/10,dy,cs,1,DO)>0 ) // check start + if( loop(bp,dx-2,3*dy/4 ,dy,cs,1,UP)>0 ) // check end + if( num_cross(dx/4,dx-2,3*dy/10,3*dy/4,bp,cs)==1 ) Break; // connected? + MSG(fprintf(stderr,"~S ad=%d",ad);) + + // small fat s is very similar to rounded serif 5 + // but has a fat diagonal arrea (Oct08 JS) + if ( num_cross(dx/8,dx-1-dx/8,3*dy/10,3*dy/4,bp,cs)==1 ) ad=98*ad/100; + MSG(fprintf(stderr,"~S ad=%d",ad);) + + if( dy>17 && dx>9 ) /* S */ + if( loop(bp, 0,dy/2 ,dx,cs,0,RI)0 ) // check start + if( loop(bp,dx-2,2*dy/3 ,dy,cs,1,UP)>0 ) // check end + if( loop(bp, 0, dy/16,dx,cs,0,RI) + >= loop(bp,dx-1, dy-1-dy/16,dx,cs,0,LE) ) ad=ad*98/100; + MSG(fprintf(stderr,"~S ad=%d",ad);) + if( loop(bp,3*dx/4 , 0,dy,cs,1,DO) // ToDo: improve! + < loop(bp, dx/4 ,dy-1,dy,cs,1,UP) + && loop(bp,3*dx/4-1, 0,dy,cs,0,DO) + < loop(bp, dx/4+1,dy-1,dy,cs,0,UP) ) ad=ad*98/100; + MSG(fprintf(stderr,"~S ad=%d",ad);) + + if ( gchar) ad=99*ad/100; + if (!hchar) ad=99*ad/100; + Setac(box1,(wchar_t)'5',ad); + if (ad==100) return '5'; + break; + + } + // --- test 1 --------------------------------------------------- + for(ad=d=100;dy>4 && dy>dx && 2*dy>box1->m3-box1->m2;){ // min 3x4 + DBG( char c_ask='1'; ) + if( dots==1 ) Break; + if (sdata->holes.num > 1) Break; /* be tolerant */ + + if( num_cross(0, dx-1, 0 , 0 ,bp,cs) != 1 + && num_cross(0, dx-1, 1 , 1 ,bp,cs) != 1 ) Break; + if( num_cross(0, dx-1,dy/2,dy/2,bp,cs) != 1 ) Break; + if( num_cross(0, dx-1,dy-1,dy-1,bp,cs) != 1 + && num_cross(0, dx-1,dy-2,dy-2,bp,cs) != 1 ) Break; + /* 5x7 micr ocr-a + + ooo @@@.. + .$. ooo ..@.. + $@. oo ..@.. + .$. oo ..@.. + .@. ooooo ..@.@ + .$. ooooo ..@.@ + $@$ ooooo @@@@@ + + */ + i4=0; // human font + if( num_cross(0, dx-1,3*dy/4,3*dy/4,bp,cs) != 2 ) { // except ocr-a + for( y=1; y=dy/2) ad=98*ad/100; + for( i=dy/8,y=7*dy/16;y8 && !i ) Break; + } else { // ocr-a-1 + i= loop(bp,dx/2,0,dy,cs,0,DO); + if (loop(bp,dx/2,i,dy,cs,1,DO) 1 + && num_cross(0, dx-1, 1 , 1 ,bp,cs) > 1 ) Break; // ~/it_7 + + // calculate upper and lower mass center (without lower serif) + + x =loop(bp,0,7*dy/8-1,dx,cs,0,RI); i2=x; + x+=loop(bp,x,7*dy/8-1,dx,cs,1,RI)-1; i2=(i2+x)/2; + + i1=loop(bp,dx-1 ,1+0* dy/4,dx,cs,0,LE); i1=dx-1-i1-(x-i2)/2; + + x =(i1-i2+4)/8; i1+=x; i2-=x; + + if( get_line2(i1,0,i2,dy-1,bp,cs,100)<95 ) { // dont work for ocr-a-1 + i1=loop(bp,dx-1 ,1+0* dy/4,dx,cs,0,LE); i1=dx-1-i1; + if( get_line2(i1,0,i2,dy-1,bp,cs,100)<95 ) Break; + } + // upper and lower width + x =loop(bp,(i1+i2)/2,dy/2,dx,cs,1,RI); i=x; i3=0; + for(y=0;y<7*dy/8;y++) + if( loop(bp,i1+y*(i2-i1)/dy, y,dx,cs,1,RI)-i > 1+dx/8 ) break; + if(y<7*dy/8) ad=98*ad/100; // serif or ocr-a-1 ? + if(y<6*dy/8) ad=99*ad/100; /* MICR E-13B font Jan07 */ + if(y<4*dy/8) Break; + MSG(fprintf(stderr,"i12 %d %d ad= %d", i1,i2,ad);) +// out_x(box1); printf(" i12=%d %d\n",i1,i2); + x =loop(bp,i2,dy-1,dx,cs,1,LE); j=x; + x =loop(bp,i2,dy-2,dx,cs,1,LE); if(x>j)j=x; i=j; + x =loop(bp,i2,dy-1,dx,cs,1,RI); j=x; + x =loop(bp,i2,dy-2,dx,cs,1,RI); if(x>j)j=x; + if(abs(i-j)>1+dx/8) i3|=1; + if(i3) Break; +// out_x(box1);printf(" 11 i=%d j=%d i2=%d dx=%d\n",i,j,i1,dx); + // get most left upper point (i,j) + for(i=dx,j=y=0;y<7*dy/16;y++){ + x =loop(bp,0,y,dx,cs,0,RI); if(x 7*dx/16 MICR E-13B font + if ( i1-i<4*dx/16 ) Break; + MSG(fprintf(stderr,"i12 %d %d ad= %d", i1,i2,ad);) + x =loop(bp,0,dy/2,dx,cs,0,RI); // right distance + j =loop(bp,x,dy/2,dx,cs,1,RI); // thickness + if( j>x+(dy+16)/32 ) ad=98*ad/100; // ~l but MICR E-13B font + x =loop(bp,0,0,dx,cs,0,RI); // straight line ??? + j =loop(bp,0,1,dx,cs,0,RI); if( j>x ) Break; // ~l + if( x==j ) j =loop(bp,0,dy/8,dx,cs,0,RI); if( j>x && !i4) Break; + if( x==j ) if(loop(bp,0,dy/4,dx,cs,0,RI)>x) { // ~l + // check micr-1 first before taken as 'l' + if (loop(bp,dx-1,dy/8,dx,cs,0,LE)<=dx/4 + && loop(bp, 0,3*dy/4,dx,cs,1,RI)< dx-1) ad=97*ad/100; + } + MSG(fprintf(stderr,"1l check ad= %d", ad);) + x=j; +// j =loop(bp,0,2,dx,cs,0,RI); if( j>=x ) Break; x=j; // ~l +// j =loop(bp,0, 0,dx,cs,0,DO); if( !j ) Break; // ~7 + if( !hchar ) // ~ right part of n + /* look for upper right side, not going from nw to se */ + if( loop(bp,dx-1, 1,dx,cs,0,LE)-dy/6 + > loop(bp,dx-1,dy/4,dx,cs,0,LE) + // failes on small fonts with 1 point spaces between chars + // also do not know what the purpose of this line was (JS Oct08) + // || get_bw(x1+1,x1+2,y0,y0+dy/8,box1->p,cs,1)==1 + ) Break; // Mai00 + if( loop(bp,dx-1,3*dy/4,dx,cs,0,LE) > dx/2 + && get_bw(x1-dx/4,x1,y1-1,y1,box1->p,cs,1)==1 ) Break; // ~z Jun00 + + i=loop(bp, dx/8,0,dy,cs,0,DO); + for (y=dy,x=dx/2;x<3*dx/4;x++){ /* get upper end y */ + j=loop(bp,x,0,dy,cs,0,DO); if (j=i) ad=98*ad/100; // ~\tt l ??? ocr-a_1 + MSG(fprintf(stderr,"1l check i= %d y= %d ad= %d", i, y, ad);) + + if( loop(bp, 0, dy/8,dx,cs,0,RI) + -(dx-loop(bp,dx-1,7*dy/8,dx,cs,0,LE)) > dx/4 ) Break; // ~/ + + i= loop(bp, 0, 0,dy,cs,0,DO); // horizontal line? + if(dy>=12 && i>dy/8 && iloop(bp,dx-1, i,dx,cs,0,LE) + || loop(bp,dx-1,3*dy/16,dx,cs,0,LE)-dx/8 + >loop(bp,dx-1, i+1,dx,cs,0,LE) ) Break; // ~t,~f + i= loop(bp, 0,dy-1-dy/32,dx,cs,0,RI); + x= loop(bp, 0,dy-2-dy/32,dx,cs,0,RI); if (idx/8 + && loop(bp,dx-1, 3*dy/4,dx,cs,0,LE)-dx/8 + >loop(bp,dx-1,dy-1-dy/32,dx,cs,0,LE) ) Break; // ~t + if( loop(bp, 0,i-1,dx,cs,0,RI)>1 && dx<6) { + ad=99*ad/100; + if ( loop(bp,dx-1,i-1,dx,cs,0,LE)>1 ) Break; // ~t + } + } + + if (dx>8){ + if (loop(bp,0,3*dy/4,dx,cs,0,RI)- + loop(bp,0,dy/2-1,dx,cs,0,RI)>dx/4) ad=95*ad/100; // ~3 + if (loop(bp,dx-1,dy/2-1,dx,cs,0,LE)- + loop(bp,dx-1,3*dy/4,dx,cs,0,LE)>dx/8) ad=99*ad/100; // ~3 ocr-a? + if (loop(bp,dx-1, dy/16,dx,cs,0,LE)- + loop(bp,dx-1, dy/4,dx,cs,0,LE)>dx/8) ad=95*ad/100; // ~23 + MSG(fprintf(stderr,"23 check ad= %d", ad);) + } + /* font 5x9 "2" recognized as "1" */ + i=loop(bp,dx-1-dx/8,dy-1,dy,cs,0,UP); + if (i<=dy/4) { + i+=loop(bp,dx-1-dx/8,dy-1-i,dy,cs,1,UP); + if (i<=dy/4) { + i=loop(bp,dx-1-dx/8,dy-1-i,dy,cs,0,LE); + if (2*i>=dx && loop(bp,dx/4,0,dy,cs,0,DO)i+dx/8) { break; } + } if (y>=dy/2) ad=95*ad/100; // Feb07 care plates, right black border + MSG(fprintf(stderr,"ad= %d", ad);) + + if (sdata->holes.num > 0) Break; // mini holes should be filtered + if (!box1->m3 && ad>98) ad=98; else { + if (!hchar) ad=99*ad/100; + if (box1->y0>box1->m2) ad=98*ad/100; + if (box1->y1<(1*box1->m2+3*box1->m3)/4) ad=98*ad/100; + if (box1->y1-box1->y0<(box1->m3-box1->m1)/2) ad=98*ad/100; + if ( gchar) ad=99*ad/100; + } + + Setac(box1,(wchar_t)'1',ad); + break; + } + // --- test 2 old pixelbased - remove! ----------------------------- +#ifdef Old_pixel_based + for(ad=d=100;dx>2 && dy>4;){ // min 3x4 + DBG( char c_ask='2'; ) + if (sdata->holes.num > 1) Break; /* be tolerant */ + if( get_bw(x0+dx/2, x0+dx/2 , y1-dy/5, y1 ,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/2, x0+dx/2 , y0 , y0+dy/5,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/8, x1-dx/3 , y1-dy/3, y1-dy/3,box1->p,cs,1) != 1 ) Break; + + if( get_bw(x1-dx/3, x1 , y0+dy/3 , y0+dy/3,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0 , x0+dx/ 8, y1-dy/16, y1 ,box1->p,cs,1) != 1 ) Break; + if( num_cross(x0, x1-dx/8, y0+dy/2, y0+dy/2,box1->p,cs) != 1 ) Break; + if( get_bw(x0, x0+dx/9 , y0 , y0 ,box1->p,cs,1) == 1 + && get_bw(x0, x0+dx/2 ,y0+3*dy/16,y0+3*dy/16,box1->p,cs,1) == 1 ) Break; + if( get_bw(x0, x0+dx/9 , y0 , y0 ,box1->p,cs,1) + != get_bw(x1-dx/9, x1 , y0 , y0 ,box1->p,cs,1) ) + { if (dx<6 && dy<9) ad=99*ad/100; else Break; } + // out_x(box1); + + for( x=x0+dx/4;xp,cs) == 2 ) break; + if( x>=x1-dx/6 ) Break; + + for( x=x0+dx/4;xp,cs) == 2 ) break; + if( x>=x1-dx/6 ) Break; + + for(i=1,y=y0;yp,cs) == 2 ) i=0; + if( i ) ad=99*ad/100; // ToDo: ocr-a-2 should have 100% + + for(i=1,y=y0+dy/5;yp,cs,1) == 0 ) i=0; + if( i ) Break; + + x=x1-dx/3,y=y1; /* center bottom */ + turmite(box1->p,&x,&y,x0,x1,y0,y1,cs,UP,ST); if( yp,&x,&y,x0,x1,y0,y1,cs,ST,UP); if( yp,&x,&y,x0,x1,y0,y1,cs,UP,ST); if( yp,&x,&y,x0,x1,y0,y1,cs,RI,ST); + if( xp,&x,&y,x0,x1,y0,y1,cs,UP,ST); if( yp,&x,&y,x0,x1,y0,y1,cs,RI,ST); + if( xp,x1,y0+y,dx,cs,0,LE); // use p (not b) for broken chars + if( ix ) x=i; + } + if (y>dy/3 ) Break; // z + + // hole is only allowed in beauty fonts + // if( num_hole( x0, x1, y0, y1,box1->p,cs,NULL) > 0 ) // there is no hole + // if( num_hole( x0, x0+dx/2, y0, y0+dy/2,box1->p,cs,NULL) == 0 ) // except in some beauty fonts + if (sdata->holes.num>0) + if (sdata->holes.hole[0].x1 >= dx/2 || sdata->holes.hole[0].y1 >= dy/2) + Break; + + if (loop(bp,dx-1, 0,dx,cs,0,LE) + =i1 ) Break; // ~z + i1=loop(bp,dx-1,dy-3*dy/16,dx,cs,0,LE); + i2=loop(bp, 0,dy-3*dy/16,dx,cs,0,RI); if( i2>i1 ) ad=98*ad/100; // ~i + if (dots) ad=98*ad/100; // i + if (loop(bp,dx-1,dy-1-dy/16,dx,cs,0,LE)>dx/4) ad=96*ad/100; // \it i + + if ((!hchar) && box1->m4!=0) ad=80*ad/100; + Setac(box1,(wchar_t)'2',ad); + if (ad==100) return '2'; + break; + } +#endif + // --- test 2 new edge based v0.44 -------------------------------------- + for(ad=d=100;dx>2 && dy>4;){ // min 3x4 + // rewritten for vectors 0.42 + int ld, i1, i2, i3, i4, i5, i6, i7; // line derivation + corners + DBG( wchar_t c_ask='2'; ) + if (sdata->holes.num > 0) Break; /* no hole */ + /* half distance to the center */ + d=2*sq(128/4); + /* now we check for the lower ends, must be near to the corner */ + if (aa[1][2]>d/4) Break; /* [2] = distance, ~7... */ + if (aa[2][2]>d/2) Break; /* [2] = distance, ~r... */ + if (aa[0][2]>d/1) Break; /* [2] = distance, ~d... */ + if (aa[3][2]>d/1) Break; /* [2] = distance, ~bhk... */ + /* searching for 4 notches between neighbouring ends */ + +/* + type A B + + 1OOO OO + 2 1 2 <- 6 + 7-> OOOO O + O O <- 5 + 3OO4 3OO4 +*/ + + // ToDo: replace by vector code (get point on line at dy/4) + if (loop(bp,dx-1, 0,dx,cs,0,LE) + num_frame_vectors[0] - 1; + /* rightmost point on upper left side */ + i2=nearest_frame_vector(box1, aa[0][3], aa[1][3], x1+dx, y0+dy/4); + /* upper leftmost vector */ + i1=nearest_frame_vector(box1, aa[0][3], i2, x0-dx, (y0+y1)/2); + i3=aa[1][3]; + /* low leftmost vector */ + i5=nearest_frame_vector(box1, aa[2][3], aa[3][3], x0, y1); + /* low mostright vector */ + i4=nearest_frame_vector(box1, aa[1][3], i5, x1+dx, y1); + /* next local max_x-point after i5 */ + i6=i5; + for (i=i5;i!=aa[0][3];i=(i+1)%box1->num_frame_vectors[0]) { + if (box1->frame_vector[ i][0] + >box1->frame_vector[i6][0]) i6=i; // get next maximum + if (box1->frame_vector[ i][0]frame_vector[ i][1]frame_vector[i6][0]>x0+dx/2) break; // 5 + } + /* which type? ToDo: have a more sure algorithm */ + i7=nearest_frame_vector(box1, i2, i3, x0-dx/8, (y0+y1)/2); + if (box1->frame_vector[i7][0]<=x0+ dx/4 + && box1->frame_vector[i7][1]<=y0+2*dy/3) { + MSG(fprintf(stderr,"7-segment-type");) + } else { /* regular-book-type */ + MSG( fprintf(stderr,"upper bow not z-like? ad %d", ad); ) + if (aa[3][0]>=x1-dx/8 // x of upper right point + && aa[3][1]< y0+dy/8) ad=99*ad/100; // y of upper right point + if (aa[0][0]<=x0+dx/8 // x of upper left point + && aa[0][1]< y0+dy/8) ad=99*ad/100; // y of upper left point + if (aa[3][2]<=aa[1][2]) ad=97*ad/100; // dist to (maxx,0) <= (0,maxy) + } + // ToDo: output no=(x,y) + MSG( fprintf(stderr,"i1-7 %d %d %d %d %d %d %d ad %d", + i1,i2,i3,i4,i5,i6,i7,ad); ) + if (i5==i6) Break; // ~+ + + if (box1->frame_vector[i5][1] + -box1->frame_vector[i6][1]frame_vector[i1][1]>y0+dy/2) Break; // not to low + if (box1->frame_vector[i1][0]>x0+dx/8+dx/16) Break; // slanted ? + if (box1->frame_vector[i2][1]>(y0+ y1)/2) Break; + if (box1->frame_vector[i2][1]>(5*y0+3*y1)/8) ad=99*ad/100; + MSG( fprintf(stderr,"ad %d", ad); ) + if (box1->frame_vector[i2][0]<(x0+x1+1)/2) Break; // fat tiny fonts? + if (box1->frame_vector[i2][0]<(x0+2*x1)/3) ad=99*ad/100; + MSG( fprintf(stderr,"ad %d", ad); ) + if (box1->frame_vector[i3][0]>(3*x0+x1)/4) Break; + if (box1->frame_vector[i3][0]>(7*x0+x1)/8) ad=99*ad/100; + MSG( fprintf(stderr,"ad %d", ad); ) + /* check lowest left point */ + if (box1->frame_vector[i3][1]<(y0+3*y1)/4) Break; + if (box1->frame_vector[i3][1]<(y0+7*y1)/8) ad=99*ad/100; + MSG( fprintf(stderr,"ad %d", ad); ) + /* check lower leftmost point from right side */ + if (box1->frame_vector[i5][0]>(x0+2*x1)/3) Break; + if (box1->frame_vector[i5][0]>(x0+ x1)/2) ad=98*ad/100; + if (box1->frame_vector[i5][0]>(2*x0+2+x1)/3) ad=99*ad/100; /* 9x10 2 */ + MSG( fprintf(stderr,"ad %d", ad); ) + if (box1->frame_vector[i5][1]<(3*y0+5*y1)/8) Break; + if (box1->frame_vector[i5][1]<(y0+3*y1)/4) ad=99*ad/100; + MSG( fprintf(stderr,"ad %d", ad); ) + if (box1->frame_vector[i6][1]>(y0+2*y1)/3) Break; + if (box1->frame_vector[i6][1]>(y0+ y1)/2) ad=99*ad/100; + MSG( fprintf(stderr,"ad %d", ad); ) + if (box1->frame_vector[i6][0]<(x0+3*x1)/4) Break; + if (box1->frame_vector[i6][0]<(x0+7*x1)/8) ad=99*ad/100; + + /* check for zZ */ + + /* check if lower left and right points are joined directly */ + ld=line_deviation(box1, i3, i4); + MSG(fprintf(stderr,"i1-i2 %d %d dist= %d/%d",i1,i2,ld,2*sq(1024/4));) + if (ld >2*sq(1024/4)) Break; + if (ld > sq(1024/4)) ad=99*ad/100; + + if (box1->m3) { + if(!hchar){ ad=99*ad/100; } + if( gchar){ ad=99*ad/100; } + } else { if (ad==100) ad=99; } /* not 100% sure */ + Setac(box1,'2',ad); + if (ad==100) return '2'; + break; + } + // --- test 3 ------- + for(ad=d=100;dx>3 && dy>4;){ // dy<=dx nicht perfekt! besser mittleres + // min-suchen fuer m + int i1, i2, i3, i4, i5, i6, i7, i8; // line derivation + corners + DBG( char c_ask='3'; ) + if (sdata->holes.num > 1) Break; /* be tolerant */ + if (sdata->holes.num > 0) ad=98*ad/100; /* be tolerant */ + if (4*dxd/1) Break; /* [2] = distance, ~7... */ + if (aa[2][2]>d/1) Break; /* [2] = distance, ~r... */ + if (aa[0][2]>d/1) Break; /* [2] = distance, ~d... */ + if (aa[3][2]>d/1) Break; /* [2] = distance, ~bhk... */ +/* + type A B C + + 1OO8 1OO 1OO8 + O 8 2 <- 7,8 + 2 2 7 + 1-5-> 3OO7 37 3OO + 4 4 4 + O 6 6 <- 6 + 5OO6 5OO 5OO +*/ + /* rightmost point on upper left side */ + i2=nearest_frame_vector(box1, aa[0][3], aa[1][3], x1, y0+3*dy/16); + /* rightmost point on lower left side */ + i4=nearest_frame_vector(box1, aa[0][3], aa[1][3], x1, y1-dy/4); + /* leftmost point on middle left side */ + i3=nearest_frame_vector(box1, i2, i4, x0, y0+dy/2); + /* upper leftmost vector */ + i1=nearest_frame_vector(box1, aa[0][3], i2, x0-dx, (y0+y1)/2); + i5=aa[1][3]; // points to vector point in point list + i6=aa[2][3]; + i8=aa[3][3]; + /* leftmost point on middle right side */ + i7=nearest_frame_vector(box1, i6, i8, x0 , y0+dy/2); + /* which type? ToDo: have a more sure algorithm */ + if (box1->frame_vector[i7][0]>=x1- dx/4 + && box1->frame_vector[i6][0]>=x1- dx/8 // ToDo: ... + && box1->frame_vector[i6][1]>=y1- dy/8) { + MSG(fprintf(stderr,"7-segment-type");) + } else { /* regular-book-type */ + } + // ToDo: output no=(x,y) + MSG(fprintf(stderr,"i1-8 %d %d %d %d %d %d %d %d",i1,i2,i3,i4,i5,i6,i7,i8);) + // if (i5==i6) Break; // ~+ + + // i2 = upper left gap ) , i3 = middle left < + if (box1->frame_vector[i2][0] + -box1->frame_vector[i3][0]frame_vector[i4][0] + -box1->frame_vector[i3][0]frame_vector[i4][0] + -box1->frame_vector[i5][0]frame_vector[i2][0] + -box1->frame_vector[i1][0]frame_vector[i1][1]>y0+dy/2) Break; // not to low + if (box1->frame_vector[i1][0]>x0+dx/4+dx/16) Break; // slanted? + if (box1->frame_vector[i5][1]frame_vector[i5][0]>x0+dx/4) Break; + // ToDo .... + + // --- pixel based old code --- + // if( get_bw(x0+dx/2,x0+dx/2,y0,y0+dy/4,box1->p,cs,1) == 0 ) Break; // ~4 + // if( get_bw(x0+dx/2,x0+dx/2,y1-dy/8,y1,box1->p,cs,1) == 0 ) Break; // ~4 + // if( num_cross(x0+dx/2,x0+dx/2,y0 ,y1,box1->p,cs) < 2 ) Break; + // if( num_cross(x0+dx/4,x0+dx/4,y1-dy/2,y1,box1->p,cs) == 0 ) Break; + if( get_bw(dx/2,dx/2, 0,dy/6,bp,cs,1) == 0 ) Break; // ~4 + if( get_bw(dx/2,dx-1, dy/6,dy/6,bp,cs,1) == 0 ) Break; // ~j + if( get_bw(dx/2,dx/2,dy-1-dy/8,dy-1,bp,cs,1) == 0 ) Break; // ~4 + if( num_cross(dx/2,dx/2,0 ,dy-1,bp,cs) < 2 // normal + && num_cross(dx/3,dx/3,0 ,dy-1,bp,cs) < 2 ) Break; // fat LCD + if( num_cross(dx/4,dx/4,dy-1-dy/2,dy-1,bp,cs) == 0 ) Break; + if( loop(bp,dx/2, 0 ,dy,cs,0,DO)>dy/4 ) Break; + if( loop(bp,dx/2, dy-1,dy,cs,0,UP)>dy/4 ) Break; + if( loop(bp,dx-1, dy/3,dy,cs,0,LE)>dy/4 /* 3 with upper bow */ + && loop(bp,dx-1, dy/8,dy,cs,0,LE)>dy/4 /* 3 with horizontal line */ + && loop(bp,dx/4, dy/8,dy,cs,1,RI)dy/4 ) Break; + if( loop(bp,dx-1,3*dy/4,dy,cs,0,LE)>dy/2 ) Break; // ~2 Feb06 + if( loop(bp,dx-1,7*dy/8,dy,cs,0,LE)>dy/2 ) Break; // ~2 Feb06 + // search upper right half circle (may fail on 4x5 font) + for( i3=x=0,i1=y=dy/5;yx) { i3=x=i; i1=y; } + } i3--; + if( loop(bp,i3,i1,1,cs,0,UP)==1 ) { // find hidden gap in tiny fonts + i1--; i3+=loop(bp,i3,i1,dx,cs,0,RI)-1; + } + if (i31+dx/8) ad=ad*99/100; // ~1 with a pixel + // search lower right half circle + for( i4=x=0,i2=y=dy-1-dy/8;y>=dy/2;y-- ){ + i=loop(bp,0,y,dx,cs,0,RI); + if( i>x ) { i4=x=i;i2=y; } + } i4--; if(i41+dx/8) ad=ad*99/100; // ~1 with a pixel + + for( x=xa=0,ya=y=dy/4;y<3*dy/4;y++ ){ // right gap, not on LCD-font + i=loop(bp,dx-1,y,dx,cs,0,LE); + if (i>=xa) { xa=i;ya=y;x=xa+loop(bp,dx-1-xa,y,dx,cs,1,LE); } + } if (dy>3*dx) if (xa<2 && x-xa1+dx/8 // noLCD + && xa<=loop(bp,dx-1,i2,dx,cs,0,LE)) ad=ad*99/100; // ~1 with a pixel + if (xa>1+dx/8 // noLCD + && xa<=loop(bp,dx-1,i1,dx,cs,0,LE)) ad=ad*99/100; // ~1 with a pixel + + // upper left gap = (i3,i1) + // lower left gap = (i4,i2) + MSG(fprintf(stderr,"left white gaps (%d,%d) (%d,%d)",i3,i1,i4,i2);) + if( get_bw(i3,i3,i1,i2 ,bp,cs,1) != 1 ) Break; // no hor. middle line? + if( get_bw(i4,i4,i1,i2 ,bp,cs,1) != 1 ) Break; + if( get_bw(i3,i3,0 ,i1 ,bp,cs,1) != 1 ) Break; // no upper bow? + if( get_bw(i4,i4,i2,dy-1,bp,cs,1) != 1 ) Break; // no lower bow? + // hole is only allowed in beauty fonts + // if( num_hole( x0, x1, y0, y1,box1->p,cs,NULL) > 0 ) // there is no hole + // if( num_hole( x0, x0+dx/2, y0, y0+dy/2,box1->p,cs,NULL) == 0 ) // except in some beauty fonts + if (sdata->holes.num>0) + if (sdata->holes.hole[0].x1 >= dx/2 || sdata->holes.hole[0].y1 >= dy/2) + Break; + Setac(box1,(wchar_t)'3',ad); + if (ad==100) return '3'; + break; + } + // --- test 4 --------------------------------------------------- 25Nov06 + for(ad=d=100;dy>3 && dx>2;){ // min 3x4 ~holes.num > 1) Break; /* no or one hole */ + /* half distance to the center */ + d=2*sq(128/4); /* 2048 */ + /* now we check for the lower left end, must be far away */ + /* lowest is 144 for 9x10 screen font (Apr2009) */ + if (aa[1][2]num_frame_vectors[0] - 1; + /* leftmost upper point */ + i1=nearest_frame_vector(box1, 0, i, x0, y0-dy); + /* lowest from leftmost vector can be very low (20/23) */ + i2=nearest_frame_vector(box1, 0, i, x0-2*dx, (y0+7*y1)/8); + /* lowest vector */ + i4=nearest_frame_vector(box1, 0, i, (x0+2*x1)/3, y1+dy); + /* right center crossing point */ + i3=nearest_frame_vector(box1, i2, i4, x1, (3*y0+y1)/4); + /* get a point on the outer right side below top serif */ + /* next local max_y-point after i4 */ + i5=i4; + for (i=i4;i!=i2;i=(i+1)%box1->num_frame_vectors[0]) { + if (box1->frame_vector[ i][1] + frame_vector[i5][1]) i5=i; // get next maximum + if (box1->frame_vector[ i][1] + >box1->frame_vector[i5][1]+1) break; // break after maximum + if (box1->frame_vector[ i][0]num_frames>1) { // type C D + i = box1->num_frame_vectors[0] - 1; // end outer loop + j = box1->num_frame_vectors[1] - 1; // end inner loop + if (box1->num_frames>2) { // see font2.png, 2nd one pixel hole + j = box1->num_frame_vectors[2] - 1; // end inner loop + ad=99*ad/100; // little bit unsure + } + i6=nearest_frame_vector(box1, i+1, j, x1, y1); + i7=nearest_frame_vector(box1, i+1, j, x0, y1); + if (box1->frame_vector[i1][0] + -box1->frame_vector[i2][0]frame_vector[i ][0]-x0frame_vector[i ][1]-y07) ad=97*ad/100; // q + + } else { // type A B + i6=nearest_frame_vector(box1, i5, i1, (x0+3*x1)/4, y1-dy/8); + i7=nearest_frame_vector(box1, i5, i1, x0 , y1-dy/8); + MSG(fprintf(stderr,"open type");) + if (box1->frame_vector[i6][1]-y0>3*dy/4 + || box1->frame_vector[i7][1]-y0>3*dy/4) ad=96*ad/100; // ~uU + } + // ToDo: output no=(x,y) + MSG(fprintf(stderr,"i1-7 %d %d %d %d %d %d %d",i1,i2,i3,i4,i5,i6,i7);) + if (i5==i6) Break; // ~+ + + if (box1->frame_vector[i1][1]>y0+dy/8) Break; // not to low + if (box1->frame_vector[i2][1] + -box1->frame_vector[i1][1]frame_vector[i3][0] + -box1->frame_vector[i2][0]frame_vector[i3][1] + -box1->frame_vector[i2][1])>dy/4) Break; + if (box1->frame_vector[i2][0]>x0+dx/8) Break; + if (box1->frame_vector[i2][1]>y1-dy/8) Break; + if (box1->frame_vector[i4][1] + -box1->frame_vector[i2][1]frame_vector[i4][1] + -box1->frame_vector[i2][1]frame_vector[i4][1] + -box1->frame_vector[i3][1]<1+dy/16) Break; + if ((box1->frame_vector[i4][1] + -box1->frame_vector[i3][1])*2<= + (box1->frame_vector[i3][1] + -box1->frame_vector[i6][1])) Break; // 090728 gas_meter (flat-ulike) + if ((box1->frame_vector[i4][1] + -box1->frame_vector[i3][1])< + (box1->frame_vector[i3][1] + -box1->frame_vector[i6][1])) ad=99*ad/100; + if (box1->frame_vector[i4][1] + -box1->frame_vector[i3][1]frame_vector[i4][1] + -box1->frame_vector[i3][1]frame_vector[i4][1]frame_vector[i3][0]frame_vector[i3][0]frame_vector[i3][1]>y1-1) Break; + if (box1->frame_vector[i3][1]>y1-dy/16) Break; + if (box1->frame_vector[i3][1]>=y1) Break; // ~5x5# + if (box1->frame_vector[i5][0]frame_vector[i5][1]>y0+2*dy/3) Break; + if (box1->frame_vector[i6][1] + -box1->frame_vector[i5][1]<1+dy/16) Break; + if (box1->frame_vector[i6][0]frame_vector[i7][0]>x0+dx/2) Break; + if (box1->frame_vector[i7][0]>x0+dx/3) ad=ad*99/100; + if (box1->frame_vector[i6][1]frame_vector[i6][0]frame_vector[i6][0]=y1-1-dy/8) ad=96*ad/100; // ~ 42 + if (box1->frame_vector[i7][1]frame_vector[i3][1] + -box1->frame_vector[i2][1])>dy/4) Break; + + /* check if upper left and lower left points are joined directly */ + ld=line_deviation(box1, i1, i2); + MSG(fprintf(stderr," i1-i2 %d %d dist= %d/%d",i1,i2,ld,2*sq(1024/4));) + if (ld >2*sq(1024/4)) Break; + /* check if lower right and upper right points are joined directly */ + ld=line_deviation(box1, i2, i3); + MSG(fprintf(stderr," i2-i3 %d %d dist= %d/%d",i2,i3,ld,2*sq(1024/4));) + if (ld > sq(1024/4)) Break; + /* check if lower right and upper right points are joined directly */ + ld=line_deviation(box1, i3, i4); + MSG(fprintf(stderr," i3-i4 %d %d dist= %d/%d",i3,i4,ld,2*sq(1024/4));) + if (ld > sq(1024/4)) Break; + /* check if lower right and upper right points are joined directly */ + ld=line_deviation(box1, i6, i7); + MSG(fprintf(stderr," i6-i7 %d %d dist= %d/%d",i6,i7,ld,2*sq(1024/4));) + if (ld >2*sq(1024/4)) Break; + + // 4 exists as gchar and ~gchar + if(!hchar){ ad=99*ad/100; } + Setac(box1,'4',ad); + break; + } +#ifdef Old_pixel_based + // --- old test 4 pixelbased ------- remove! + for(ad=d=100;dx>3 && dy>5;){ // dy>dx, min 4x6 font + DBG( char c_ask='4'; ) + if (sdata->holes.num > 2) Break; /* be tolerant */ + if (sdata->holes.num > 1) ad=97*ad/100; + // upper raising or vertical line + if( loop(bp,0 ,3*dy/16,dx,cs,0,RI) + < loop(bp,0 ,2*dy/4 ,dx,cs,0,RI)-dx/8 ) Break; + // search for a vertical line on lower end + for (y=0;y= dx/2 ) break; + if (y>=dy/4) Break; + if( loop(bp,0 ,dy-1-dy/8,dx,cs,0,RI) < dx/4 ) Break; + // --- follow line from (1,0) to (0,.7) + y=0; x=loop(bp,0,0,dx,cs,0,RI); + if (x<=dx/4) { // ocr-a-4 + i=loop(bp,0,dy/4,dx,cs,0,RI); if (i>dx/4) Break; + i=loop(bp,i,dy/4,dx,cs,1,RI); if (i>dx/2) Break; + j=loop(bp,i,dy/4,dy,cs,0,DO)+dy/4; if (j>7*dy/8) Break; + } + turmite(bp,&x,&y,0,dx-1,0,dy-1,cs,DO,LE); if( x>=0 ) Break; + + y=loop(bp,0,0,dy,cs,0,DO); + if( (y+loop(bp,0,y,dy,cs,1,DO)) < dy/2 ) Break; + if( get_bw(x0 , x0+3*dx/8, y1-dy/7, y1-dy/7,box1->p,cs,1) == 1 ) Break; + if( get_bw(x0+dx/2, x1 , y1-dy/3, y1-dy/3,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/2, x0+dx/2, y0+dy/3, y1-dy/5,box1->p,cs,1) != 1 ) Break; + i=loop(bp,bp->x-1, bp->y/4,dx,cs,0,LE); + if( i > loop(bp,bp->x-1,2*bp->y/4,dx,cs,0,LE)+1 + && i > loop(bp,bp->x-1,3*bp->y/8,dx,cs,0,LE)+1 ) Break; + if (loop(bp,0,0,dx,cs,0,RI)>dx/4) { + for(i=dx/8+1,x=0;x15 && i ) Break; + for(i=dy/10+1,y=dy-1-dy/4;yp,cs,NULL); + // ToDo: + // - get start and endpoint of left edge of left vert. line + // and check if that is an streight line + // - check the right edge of the inner hole (if there) too + i4 = sdata->holes.num; + if (sdata->holes.num >0) { // ~q + i = loop(bp,0,dy/16,dx,cs,0,RI); + if (i < dx/3) Break; + if (i < dx/2) ad=98*ad/100; // hole? + if ( loop(bp, 0,dy-1,dy,cs,0,UP) + -loop(bp,dx/8+1,dy-1,dy,cs,0,UP)>dy/16) ad=97*ad/100; + } + // thickness of left vertical line + for (j=y=0;yj) j=i; + } + if (j>=dx/2) ad=98*ad/100; // ~q handwritten a (or very thinn 4) + // ToDo: check y of masscenter of the hole q4 + + if( i4 ) if( dx > 15 ) + if( loop(bp, dx/2, 0,dy,cs,0,DO)3*dx/4 + && i-loop(bp,dx-1,dy-1-dy/8,dx,cs,0,LE)>dx/4 ) Break; + + i =loop(bp,dx-1-dx/4,dy-1,dx,cs,0,UP); + if (i> dy/2) ad=97*ad/100; + if (i>3*dy/4) ad=97*ad/100; /* handwritten n */ + + if( num_cross(0 ,dx-1,dy/16 ,dy/16 , bp,cs) == 2 // ~9 + && loop(bp,dx-1,dy/16 ,dx,cs,0,LE)> + loop(bp,dx-1,dy/16+1+dy/32,dx,cs,0,LE) ) Break; + if ( !hchar) ad=99*ad/100; + if (gchar && !hchar) ad=98*ad/100; // ~q + Setac(box1,(wchar_t)'4',ad); + if (ad>99) bc='4'; + break; + } +#endif + // --- test 6 ------- ocr-a-6 looks like a b :( + for(ad=d=100;dx>3 && dy>4;){ // dy>dx + DBG( char c_ask='6'; ) + if (sdata->holes.num > 2) Break; /* be tolerant */ + if( loop(bp, 0, dy/4,dx,cs,0,RI)>dx/2 // ocr-a=6 + && loop(bp,dx-1, 0,dy,cs,0,DO)>dy/4 ) Break; // italic-6 + if( loop(bp, 0, dy/2,dx,cs,0,RI)>dx/4 ) Break; + if( loop(bp, 0,3*dy/4,dx,cs,0,RI)>dx/4 ) Break; + if( loop(bp,dx-1,3*dy/4,dx,cs,0,LE)>dx/2 ) Break; + if( num_cross(x0+ dx/2,x0+ dx/2,y0 ,y1 ,box1->p,cs) != 3 + && num_cross(x0+5*dx/8,x0+5*dx/8,y0 ,y1 ,box1->p,cs) != 3 ) { + if( num_cross(x0+ dx/2,x0+ dx/2,y0+dy/4,y1 ,box1->p,cs) != 2 + && num_cross(x0+5*dx/8,x0+5*dx/8,y0+dy/4,y1 ,box1->p,cs) != 2 ) Break; + // here we have the problem to decide between ocr-a-6 and b + if ( loop(box1->p,(x0+x1)/2,y0,dy,cs,0,DO)p,x0+dx/2,y0,dx,cs,0,DO)>dy/8 + && loop(box1->p,x1-dx/4,y0,dx,cs,0,DO)>dy/8 ) Break; + } + if( num_cross(x0 ,x1 ,y1-dy/4,y1-dy/4,box1->p,cs) != 2 ) Break; + for( y=y0+dy/6;yp,x1 ,y ,dx,cs,0,LE); if( x>dx/2 ) break; + x+=loop(box1->p,x1-x+1,y-1,dx,cs,0,LE); if( x>dx/2 ) break; + } if( y>=y0+dy/2 ) Break; + if (loop(box1->p,x0,y1-dy/3,dx,cs,0,RI)>dx/4 ) Break; + if (loop(box1->p,x1,y1-dy/3,dx,cs,0,LE)>dx/4 ) Break; + + if (sdata->holes.num != 1) Break; + if (sdata->holes.hole[0].y1 < dy/2) ad=95*ad/100; // whats good for? + if (sdata->holes.hole[0].y0 < dy/4) Break; + MSG( fprintf(stderr,"hole[0].x0,x1 %d %d", sdata->holes.hole[0].x0, + sdata->holes.hole[0].x1); ) + if (sdata->holes.hole[0].x0<1 + && dx-1-sdata->holes.hole[0].x1>2) ad=ad*99/100; // melted serif sS ? + if (loop(box1->p,x0,y0+dy/2,dx,cs,0,RI)>0 + && loop(box1->p,x0,y0+dy/4,dx,cs,0,RI)==0 + && loop(box1->p,x0,y1-dy/4,dx,cs,0,RI)==0) ad=97*ad/100; // molten serif sS +// if( num_hole ( x0, x1, y0, y0+dy/2,box1->p,cs,NULL) > 0 ) ad=95*ad/100; +// if( num_hole ( x0, x1, y0+dy/4, y1,box1->p,cs,NULL) != 1 ) Break; +// if( num_hole ( x0, x1, y0 , y1,box1->p,cs,NULL) != 1 ) Break; +// out_x(box1); printf(" x0 y0 %d %d\n",x0,y0); + /* check left vertical bow */ + i1=loop(bp,0,dy/8 ,dx,cs,0,RI); + i3=loop(bp,0,dy-1-dy/8,dx,cs,0,RI); + i2=loop(bp,0,dy/2 ,dx,cs,0,RI); + if(i1+i3-2*i2<-2-dx/16 && i1+i2+i3>0) Break; // convex from left + if(i1+i3-2*i2<1 && i1+i2+i3>0) ad=99*ad/100; // 7-segment-font + for( x=dx,y=0;ydx/2 && i2>dx/4) break; /* its a 6 (example: 7-segment) */ + if (i1x) break; /* may be serifen b */ + } if (y 1 ) i++; if( i>dy/8 ) break; + } if( ydots ) ad=98*ad/100; + Setac(box1,(wchar_t)'6',ad); + bc='6'; + break; + } + // --- test 7 --------------------------------------------------- + for(ad=d=100;dx>2 && dy>4;){ // dx>1 dy>2*dx + DBG( char c_ask='7'; ) + if (sdata->holes.num > 1) Break; /* be tolerant */ + if( loop(bp,dx/2,0,dy,cs,0,DO)>dy/8 ) Break; + if( num_cross(0,dx-1,3*dy/4,3*dy/4,bp,cs) != 1 ) Break; // preselect + for( yb=xb=y=0;y0 && j>dx/4) break; // gap after h-line + j=loop(bp,j,y,dx,cs,1,RI);if(j>xb){ xb=j;yb=y; } // h-line + } if( xbx ) x=j-1; + } if( yj) Break; + j=loop(bp, 0,j,dx,cs,0,RI); + if(j>dx/4 && j<=i+dx/16) Break; // tall T + } + + MSG( fprintf(stderr,"7: ad= %d",ad); ) + if( loop(bp, 0,3*dy/8,dx,cs,0,RI) + <=loop(bp,dx-1,3*dy/8,dx,cs,0,LE)+dx/8 ) ad=ad*98/100; // l + MSG( fprintf(stderr,"7: ad= %d",ad); ) + if( num_cross(0,dx-1,dy/4,dy/4,bp,cs) == 1 + && loop(bp,0,dy/4,dx,cs,0,RI) < dx/2 ) ad=ad*96/100; // J + MSG( fprintf(stderr,"7: ad= %d",ad); ) + + if (box1->m3 && dym3-box1->m2) ad=99*ad/100; // too small + if (box1->m3 && 2*dym3-box1->m2) ad=96*ad/100; // too small + if (dy>3*dx) ad=99*ad/100; // ) + if ( gchar) ad=99*ad/100; // J + if (!hchar) ad=99*ad/100; + Setac(box1,(wchar_t)'7',ad); + break; + } + // --- test 8 --------------------------------------------------- + // last change: May15th,2000 JS + for(ad=d=100;dx>2 && dy>4;){ // or we need large height + DBG( char c_ask='8'; ) + if (sdata->holes.num != 2) Break; + if( num_cross(x0,x1,y0 +dy/4,y0 +dy/4,box1->p,cs) != 2 ) Break; // ~gr (glued) + if( num_cross(x0,x1,y1 -dy/4,y1 -dy/4,box1->p,cs) != 2 + && num_cross(x0,x1,y1-3*dy/8,y1-3*dy/8,box1->p,cs) != 2 ) Break; + if( get_bw(x0,x0+dx/4,y1-dy/4,y1-dy/4,box1->p,cs,1) == 0 ) Break; // ~9 + if( get_bw(x0,x0+dx/2,y0+dy/4,y0+dy/4,box1->p,cs,1) == 0 ) Break; + if( get_bw(x0+dx/2,x0+dx/2,y0+dy/4,y1-dy/4,box1->p,cs,1) == 0 ) Break; // ~0 +// MSG( printf(" x0 y0 %d %d\n",x0,y0); ) + for( i2=i1=x=0,i=y=y0+dy/3;y<=y1-dy/3;y++){ // check left middle nick + j=loop(box1->p,x0,y,dx,cs,0,RI); + if (j>x || (abs(j-x)<=dx/8 /* care about MICR E-13B font */ + && (i1=loop(box1->p,x0+j,y,dx,cs,1,RI))>dx/2)) { + if (j>x) x=j; i=y; if (i1>i2) i2=i1; } + } if(i>=y1-dy/3 || (xdx/2) Break; // no gB + if (x< dx/4) ad=99*ad/100; // no B + if (x<=dx/8) ad=98*ad/100; // no B + j = loop(box1->p,x1,y1- dy/4,dx,cs,0,LE); + if( j>loop(box1->p,x1,y1- dy/5,dx,cs,0,LE) + && j>loop(box1->p,x1,y1-2*dy/5,dx,cs,0,LE) ) Break; // & + // check for upper hole + for (j=0;jholes.num;j++) { + if (sdata->holes.hole[j].y1 < i-y0+1 ) break; + if (sdata->holes.hole[j].y1 < i-y0+dy/8) break; + } if (j==sdata->holes.num) Break; // not found + // if( num_hole(x0,x1,y0,i+1 ,box1->p,cs,NULL)!=1 ) + // if( num_hole(x0,x1,y0,i+dy/8,box1->p,cs,NULL)!=1 ) Break; // upper hole + // check for lower hole + for (j=0;jholes.num;j++) { + if (sdata->holes.hole[j].y0 > i-y0-1 ) break; + } if (j==sdata->holes.num) Break; // not found + // if( num_hole(x0,x1,i-1,y1,box1->p,cs,NULL)!=1 ) Break; + i1=i; // left middle nick + /* find the middle right nick */ + for( x=0,i2=i=y=y0+dy/3;y<=y1-dy/3;y++){ + j=loop(box1->p,x1,y,dx,cs,0,LE); if( j>=x ) i2=y; + /* we care also for 7-segment and unusual fonts */ + if (j>x || (abs(j-x)<=(dx+4)/8 + && loop(box1->p,x1-j,y,dx,cs,1,LE)>dx/2)){ + if (j>x) x=j; i=y; } + // MSG(fprintf(stderr," yjix %d %d %d %d %d %d",y-y0,j,i-y0,x,loop(box1->p,x1-j,y,dx,cs,1,LE),dx/2);) + } + if( i>y0+dy/2+dy/10 ) Break; + // if( xdx/2 ) Break; + MSG(fprintf(stderr,"center bar at y= %d %d x=%d+%d i1=%d",i-y0,i2-y0,x,j,i1);) + if( num_cross(x0,x1, i , i ,box1->p,cs) != 1 + && num_cross(x0,x1, i+1 , i+1 ,box1->p,cs) != 1 + && num_cross(x0,x1,(i+i2)/2,(i+i2)/2,box1->p,cs) != 1 ) Break; // no g + if(abs(i1-i)>(dy+5)/10) ad=99*ad/100; // y-distance right-left-nick + if(abs(i1-i)>(dy+4)/8) ad=99*ad/100; // y-distance right-left-nick + if(abs(i1-i)>(dy+2)/4) Break; + // ~B ff + for(i=dx,y=0;yi+dx/16 ) break; + } if( yi+dx/16 ) break; + } if( y16 && num_cross(0,dx-1,dy-1,dy-1,bp,cs) > 1 + && loop(bp,0,dy-1,dx,cs,0,RI) 2 ) i++; if( i>dy/8 ) break; + } if( y 1) ad=98*ad/100; // & + if (num_cross(dx-1,dx-1,dy/2,dy-1,bp,cs) > 1) ad=98*ad/100; // & + if (num_cross( 0,dx-1, 0, 0,bp,cs) > 1) ad=98*ad/100; + if (dy>15) + if (num_cross( 0,dx-1, 1, 1,bp,cs) > 1) ad=98*ad/100; + /* if m1..4 is unsure ignore hchar and gchar ~ga */ + if (!hchar) { + if ((box1->m2-box1->y0)*8>=dy) ad=98*ad/100; + else ad=99*ad/100; + } + if ( gchar + && (box1->y1-box1->m3)*8>=dy) ad=99*ad/100; + Setac(box1,(wchar_t)'8',ad); + break; + } + // --- test 9 \it g --------------------------------------------------- + /* + * + * lcd micr round + * ooo ooo ooo + * o o o o o o + * ooo ooo ooo + * o o o + * ooo o o + */ + for(ad=d=100;dx>2 && dy>4;){ // dx>1 dy>2*dx + DBG( char c_ask='9'; ) + if (sdata->holes.num > 1) Break; + if( num_cross(x0+ dx/2,x0+ dx/2,y0,y1-dy/4,box1->p,cs) != 2 // pre select + && num_cross(x0+ dx/2,x0+ dx/2,y0, y1,box1->p,cs) != 3 // pre select + && num_cross(x0+3*dx/8,x0+3*dx/8,y0,y1,box1->p,cs) != 3 + && num_cross(x0+ dx/4,x1 -dx/4,y0,y1,box1->p,cs) != 3 ) Break; + if( num_cross(x0+ dx/2,x0 +dx/2,y0,y0+dy/4,box1->p,cs) < 1 ) Break; + if( num_cross(x0+ dx/2,x1, y0+dy/2 ,y0+dy/2,box1->p,cs) < 1 ) Break; + if( num_cross(x0,x1, y0+ dy/4 ,y0+ dy/4,box1->p,cs) != 2 + && num_cross(x0,x1, y0+3*dy/8 ,y0+3*dy/8,box1->p,cs) != 2 ) Break; + if( num_cross(x1-dx/8,x1,y0+dy/4,y0+dy/4,box1->p,cs) == 0) ad=ad*97/100; // ~4 + for( x=0,i=y=y0+dy/2;y<=y1-dy/4;y++){ // find notch (suche kerbe) + j=loop(box1->p,x0,y,dx,cs,0,RI); + if( j>x ) { x=j; i=y; } + } if (x<1 || xp,x0+x-1,y,dy/8+1,cs,0,DO)/2; y=i=y+j; + j=loop(box1->p,x0+x-1,y,dx/2 ,cs,0,RI); x+=j; + if (x5) + if( num_cross(x0+dx/2,x1,i,y1 ,box1->p,cs) != 1 /* fails on 5x8 */ + && num_cross(x0+dx/2,x1,i,y1-dy/8,box1->p,cs) != 1 ) Break; + if( num_cross(x0+dx/2,x0+dx/2,i,y1,box1->p,cs) > 1 ) Break; + if( num_cross(x0+dx/2,x1 ,i, i,box1->p,cs) != 1 ) Break; + + if (sdata->holes.num < 1) { /* happens for 5x7 font */ + if (dx<8) ad=98*ad/100; else Break; } + else { + if (sdata->holes.hole[0].y1 >= i+1) Break; + if (sdata->holes.hole[0].y0 > i-1) Break; + if (sdata->holes.num > 1) + if (sdata->holes.hole[1].y0 > i-1) Break; + // if( num_hole(x0,x1,y0,i+1,box1->p,cs,NULL)!=1 ) Break; + // if( num_hole(x0,x1,i-1,y1,box1->p,cs,NULL)!=0 ) Break; + } + if( loop(box1->p,x0,y1 ,dy,cs,0,RI)>dx/3 && + loop(box1->p,x0,y1-1,dy,cs,0,RI)>dx/3 + && (box1->m3==0 || (box1->m3!=0 && (!hchar || gchar)))) ad=98*ad/100; // no q OR ocr-a-9 + for( x=0,i=y=y0+dy/3;y<=y1-dy/3;y++){ // suche kerbe + j=loop(box1->p,x1,y,dx,cs,0,LE); + if( j>x ) { x=j; i=y; } + } if( x>dx/2 ) Break; // no g + i1=loop(bp,dx-1,dy/8 ,dx,cs,0,LE); if(i1>dx/2) Break; + i3=loop(bp,dx-1,dy-1-dy/8,dx,cs,0,LE); + i2=loop(bp,dx-1,dy/2 ,dx,cs,0,LE); if(i1+i3-2*i2<-1-dx/16) Break; // konvex + i1=loop(bp,dx-1,dy/4 ,dx,cs,0,LE); if(i1>dx/2) Break; + i3=loop(bp,dx-1,dy-1-dy/8,dx,cs,0,LE); + for(y=dy/4;yi1+(i3-i1)*(2*y-dy/2)/dy+dx/16) break; + // MSG(fprintf(stderr," y i2 %d %d %d",y,i2,i1+(i3-i1)*(2*y-dy/2)/dy);) + } if(y0){ + x--; // robust + y=loop(bp,dx-x-1, dy-1,dy,cs,0,UP); + if(y=16 && dx>9 + && loop(bp, 0,dy/ 4,dx,cs,0,RI) + -loop(bp, 0,dy/16,dx,cs,0,RI)>dx/6 + && loop(bp,dx-1,dy/ 4,dx,cs,0,LE) + -loop(bp,dx-1,dy/16,dx,cs,0,LE)>dx/6) Break; // ~ serif yY + + if (box1->m3) { + if ( gchar) ad=99*ad/100; /* unsure (italic g)? */ + if (box1->m2 && (!gchar) && y1 > box1->m3){ + ad=99*ad/100; + if (box1->m4-box1->m3<3) ad=99*ad/100; + // if (!hchar) ad = 99*ad/100; + } + if (!hchar) ad=99*ad/100; /* unsure */ + } else { if (ad==100) ad=99; } /* not 100% sure */ + Setac(box1,(wchar_t)'9',ad); + break; + } + // 0 is same as O !? + // --- test 0 (with one big hole in it ) ----------------------------- + for(d=ad=100;dx>2 && dy>3;){ // min 3x4 + DBG( char c_ask='0'; ) + if (sdata->holes.num > 1) Break; /* be tolerant */ + if( get_bw(x0 , x0+dx/3,y0+dy/2 , y0+dy/2,box1->p,cs,1) != 1 ) Break; + if( get_bw(x1-dx/3 , x1 ,y0+dy/2 , y0+dy/2,box1->p,cs,1) != 1 ) Break; + /* could be an O, unless we find a dot in the center */ + if( get_bw(x0 , x1 ,y0+dy/2 , y0+dy/2,box1->p,cs,1) != 3 ) ad=99; + if( get_bw(x0+dx/2 , x0+dx/2,y1-dy/3 , y1,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/2 , x0+dx/2,y0 , y0+dy/3,box1->p,cs,1) != 1 ) Break; + /* accept 0 with dot in center, accept \/0 too ... */ + if( get_bw(x0+dx/2 , x0+dx/2,y0+dy/3 , y1-dy/3,box1->p,cs,1) != 0 ) Break; + + if( num_cross(x0+dx/2,x0+dx/2,y0 , y1 ,box1->p,cs) != 2 ) Break; + if( num_cross(x0+dx/3,x1-dx/3,y0 , y0 ,box1->p,cs) != 1 ) // AND + if( num_cross(x0+dx/3,x1-dx/3,y0+1 , y0+1 ,box1->p,cs) != 1 ) Break; + if( num_cross(x0+dx/3,x1-dx/3,y1 , y1 ,box1->p,cs) != 1 ) // against "rauschen" + if( num_cross(x0+dx/3,x1-dx/3,y1-1 , y1-1 ,box1->p,cs) != 1 ) Break; + if( num_cross(x0 ,x0 ,y0+dy/3 , y1-dy/3,box1->p,cs) != 1 ) + if( num_cross(x0+1 ,x0+1 ,y0+dy/3 , y1-dy/3,box1->p,cs) != 1 ) Break; + if( num_cross(x1 ,x1 ,y0+dy/3 , y1-dy/3,box1->p,cs) != 1 ) + if( num_cross(x1-1 ,x1-1 ,y0+dy/3 , y1-dy/3,box1->p,cs) != 1 ) Break; + // if( num_hole(x0,x1,y0,y1,box1->p,cs,NULL) != 1 ) Break; + if (sdata->holes.num != 1) Break; + + i= loop(bp,0 ,0 ,x1-x0,cs,0,RI)- + loop(bp,0 ,2 ,x1-x0,cs,0,RI); + if (i<0) Break; + if (i==0) { + if (loop(bp,dx-1,0 ,x1-x0,cs,0,LE)> + loop(bp,dx-1,2 ,x1-x0,cs,0,LE) ) ad=98*ad/100; + ad=99*ad/100; /* LCD-type? */ + } + + x=loop(bp,dx-1,dy-1-dy/3,x1-x0,cs,0,LE); // should be minimum + for (y=dy-1-dy/3;yx) x=i; + } + if( ydx/8 ) + if( loop(bp,0 , dy/16,dx,cs,0,RI)dx/8 ) + if( loop(bp,0 ,dy-1-dy/16,dx,cs,0,RI)p,cs,1) == 0 + && get_bw(x1-dx/32,x1,y1-dy/32,y1,box1->p,cs,1) == 0 + && ( get_bw(x0,x0+dx/32,y0,y0+dy/32,box1->p,cs,1) == 1 + || get_bw(x0,x0+dx/32,y1-dy/32,y1,box1->p,cs,1) == 1 ) ) { + if (dx<32) ad=ad*99/100; else Break; // ~D + } + + // search lowest inner white point + for(y=dy,j=x=0;x 1 ) ad=99*ad/100; // ~a \it a + + if (loop(bp, 0, 0,x1-x0,cs,0,RI)>=dx/8) { // round, notLCD + if (loop(bp,dx-1,dy-1,x1-x0,cs,0,LE)dy/8 + || num_cross(0,dx-1, 0, 0,bp,cs) > 1 + || num_cross(0,dx-1,dy-1,dy-1,bp,cs) > 1 + ) ad=98*ad/100; // ~bq + + if (box1->m3) { + if (!hchar) ad=98*ad/100; else // ~o + if ( gchar) ad=99*ad/100; // wrong line detection? + } else { if (ad==100) ad=99; } /* not 100% sure */ + if (ad>99) ad=99; /* we can never be sure having a O, + let context correction decide, see below! */ + Setac(box1,(wchar_t)'0',ad); + break; + } + // --- test 0 with a straight line in it ------------------- + for(ad=100;dx>4 && dy>5;){ /* v0.3.1+ */ + DBG( char c_ask='0'; ) + if (sdata->holes.num > 3) Break; /* be tolerant */ + if (sdata->holes.num < 1) Break; + if (sdata->holes.num != 2) ad=95*ad/100; + if( get_bw(x0 , x0+dx/2,y0+dy/2 , y0+dy/2,box1->p,cs,1) != 1 ) Break; + if( get_bw(x1-dx/2 , x1 ,y0+dy/2 , y0+dy/2,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/2 , x0+dx/2,y1-dy/2 , y1,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/2 , x0+dx/2,y0 , y0+dy/2,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/2 , x0+dx/2,y0+dy/3 , y1-dy/3,box1->p,cs,1) != 1 ) Break; + // out_x(box1); printf(" x0 y0 %d %d\n",x0,y0); + if( num_cross(x0+dx/2,x0+dx/2,y0 , y1 ,box1->p,cs) != 3 ) Break; + if( num_cross(x0+dx/3,x1-dx/3,y0 , y0 ,box1->p,cs) != 1 ) // AND + if( num_cross(x0+dx/3,x1-dx/3,y0+1 , y0+1 ,box1->p,cs) != 1 ) Break; + if( num_cross(x0+dx/3,x1-dx/3,y1 , y1 ,box1->p,cs) != 1 ) // against "rauschen" + if( num_cross(x0+dx/3,x1-dx/3,y1-1 , y1-1 ,box1->p,cs) != 1 ) Break; + if( num_cross(x0 ,x0 ,y0+dy/3 , y1-dy/3,box1->p,cs) != 1 ) + if( num_cross(x0+1 ,x0+1 ,y0+dy/3 , y1-dy/3,box1->p,cs) != 1 ) Break; + if( num_cross(x1 ,x1 ,y0+dy/3 , y1-dy/3,box1->p,cs) != 1 ) + if( num_cross(x1-1 ,x1-1 ,y0+dy/3 , y1-dy/3,box1->p,cs) != 1 ) Break; + // if( num_hole(x0,x1,y0,y1,box1->p,cs,NULL) != 2 ) Break; + if (sdata->holes.num != 2) ad=85*ad/100; + + if( loop(bp,0 , 0,x1-x0,cs,0,RI)<= + loop(bp,0 , 2+dy/32,x1-x0,cs,0,RI) ) Break; + x= loop(bp,0 ,dy/2 ,x1-x0,cs,0,RI); + i= loop(bp,0 ,dy/2-1,x1-x0,cs,0,RI); if (i>x) x=i; + i= loop(bp,0 ,dy/2-2,x1-x0,cs,0,RI); if (i>x && dy>8) x=i; + if( loop(bp,0 , dy/4,x1-x0,cs,0,RI)x) x=i; + i= loop(bp,dx-1,dy/2-1,x1-x0,cs,0,LE); if(i>x && dy>8) x=i; + if( loop(bp,dx-1,3*dy/4,x1-x0,cs,0,LE)x) x=i; + } + if( ydy/4) Break; + y+=loop(bp,dx/2,dy-1-y,y1-y0,cs,1,UP); if(y>dy/3) Break; if (y>dy/4) ad=ad*99/100; + y+=loop(bp,dx/2,dy-1-y,y1-y0,cs,0,UP); if(3*y>2*dy) Break; + x =loop(bp,dx/2,dy-y,dx/2,cs,0,RI); if(x==0) Break; + // MM; fprintf(stderr," y=%d x=%d\n",y-1,x); + if( loop(bp,dx/2+x-1-dx/16,dy-y,y1-y0,cs,0,UP)==0 ) Break; + // $ + for(i=0,y=dy/4;y dx/4 + || loop(bp,dx-1,y,dx-1,cs,0,LE) > dx/4 ) break; + if( ydx/8 ) + if( loop(bp,0 , dy/16,dx,cs,0,RI)dx/8 ) + if( loop(bp,0 ,dy-1-dy/16,dx,cs,0,RI)p,cs,1) == 0 + && get_bw(x1-dx/32,x1,y1-dy/32,y1,box1->p,cs,1) == 0 + && ( get_bw(x0,x0+dx/32,y0,y0+dy/32,box1->p,cs,1) == 1 + || get_bw(x0,x0+dx/32,y1-dy/32,y1,box1->p,cs,1) == 1 ) ) Break; // ~D + + /* 5x9 font "9" is like "0" */ + if (dx<16) + if ( num_cross(x0,x0,y0,y1,box1->p,cs) != 1 ) ad=98*ad/100; + + // italic a + for(i=0,y=6*dy/8;y 2 ) i++; else i--; + if(i>0) ad=ad*98/100; // ~'a' \it a + if( !hchar ) ad=90*ad/100; + Setac(box1,(wchar_t)'0',ad); + break; + } + // --- test 0 with a straight dot in it ------------------- + for(ad=100;dx>4 && dy>5;){ /* v0.46+ */ + DBG( char c_ask='0'; ) + if (sdata->holes.num != 1) Break; /* do not be tolerant */ + if (sdata->box1->num_frames != 2) ad=85*ad/100; + if( get_bw(x0 , x0+dx/2,y0+dy/2 , y0+dy/2,box1->p,cs,1) != 1 ) Break; + if( get_bw(x1-dx/2 , x1 ,y0+dy/2 , y0+dy/2,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/2 , x0+dx/2,y1-dy/2 , y1,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/2 , x0+dx/2,y0 , y0+dy/2,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/2 , x0+dx/2,y0+dy/3 , y1-dy/3,box1->p,cs,1) != 1 ) Break; + // out_x(box1); printf(" x0 y0 %d %d\n",x0,y0); + if( num_cross(x0+dx/2,x0+dx/2,y0 , y1 ,box1->p,cs) != 3 ) Break; + if( num_cross(x0+dx/3,x1-dx/3,y0 , y0 ,box1->p,cs) != 1 ) // AND + if( num_cross(x0+dx/3,x1-dx/3,y0+1 , y0+1 ,box1->p,cs) != 1 ) Break; + if( num_cross(x0+dx/3,x1-dx/3,y1 , y1 ,box1->p,cs) != 1 ) // against "rauschen" + if( num_cross(x0+dx/3,x1-dx/3,y1-1 , y1-1 ,box1->p,cs) != 1 ) Break; + if( num_cross(x0 ,x0 ,y0+dy/3 , y1-dy/3,box1->p,cs) != 1 ) + if( num_cross(x0+1 ,x0+1 ,y0+dy/3 , y1-dy/3,box1->p,cs) != 1 ) Break; + if( num_cross(x1 ,x1 ,y0+dy/3 , y1-dy/3,box1->p,cs) != 1 ) + if( num_cross(x1-1 ,x1-1 ,y0+dy/3 , y1-dy/3,box1->p,cs) != 1 ) Break; + // if( num_hole(x0,x1,y0,y1,box1->p,cs,NULL) != 2 ) Break; + + if( loop(bp,0 , 0,x1-x0,cs,0,RI)<= + loop(bp,0 , 2+dy/32,x1-x0,cs,0,RI) ) Break; + x= loop(bp,0 ,dy/2 ,x1-x0,cs,0,RI); + i= loop(bp,0 ,dy/2-1,x1-x0,cs,0,RI); if (i>x) x=i; + i= loop(bp,0 ,dy/2-2,x1-x0,cs,0,RI); if (i>x && dy>8) x=i; + if( loop(bp,0 , dy/4,x1-x0,cs,0,RI)x) x=i; + i= loop(bp,dx-1,dy/2-1,x1-x0,cs,0,LE); if(i>x && dy>8) x=i; + if( loop(bp,dx-1,3*dy/4,x1-x0,cs,0,LE)x) x=i; + } + if( ydy/4) Break; + y+=loop(bp,dx/2,dy-1-y,y1-y0,cs,1,UP); if(y>dy/3) Break; if (y>dy/4) ad=ad*99/100; + y+=loop(bp,dx/2,dy-1-y,y1-y0,cs,0,UP); if(3*y>2*dy) Break; + x =loop(bp,dx/2,dy-y,dx/2,cs,0,RI); if(x==0) Break; + // MM; fprintf(stderr," y=%d x=%d\n",y-1,x); + if( loop(bp,dx/2+x-1-dx/16,dy-y,y1-y0,cs,0,UP)==0 ) Break; + // $ + for(i=0,y=dy/4;y dx/4 + || loop(bp,dx-1,y,dx-1,cs,0,LE) > dx/4 ) break; + if( ydx/8 ) + if( loop(bp,0 , dy/16,dx,cs,0,RI)dx/8 ) + if( loop(bp,0 ,dy-1-dy/16,dx,cs,0,RI)p,cs,1) == 0 + && get_bw(x1-dx/32,x1,y1-dy/32,y1,box1->p,cs,1) == 0 + && ( get_bw(x0,x0+dx/32,y0,y0+dy/32,box1->p,cs,1) == 1 + || get_bw(x0,x0+dx/32,y1-dy/32,y1,box1->p,cs,1) == 1 ) ) Break; // ~D + + /* 5x9 font "9" is like "0" */ + if (dx<16) + if ( num_cross(x0,x0,y0,y1,box1->p,cs) != 1 ) ad=98*ad/100; + + // italic a + for(i=0,y=6*dy/8;y 2 ) i++; else i--; + if(i>0) ad=ad*98/100; // ~'a' \it a + if( !hchar ) ad=90*ad/100; + Setac(box1,(wchar_t)'0',ad); + break; + } + return box1->c; +} diff --git a/.svn/pristine/66/6682313ede5ae04fd825d1c808f6ac248d23d676.svn-base b/.svn/pristine/66/6682313ede5ae04fd825d1c808f6ac248d23d676.svn-base new file mode 100644 index 0000000..90de1f1 --- /dev/null +++ b/.svn/pristine/66/6682313ede5ae04fd825d1c808f6ac248d23d676.svn-base @@ -0,0 +1,36 @@ +/** + * @file + * @brief IO of a 3D scan in uos file format + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SCAN_IO_UOS_RGB_H__ +#define __SCAN_IO_UOS_RGB_H__ + +#include +using std::string; +#include +using std::vector; + +#include "slam6d/scan_io.h" + +/** + * @brief 3D scan loader for UOS scans with color information + * + * The compiled class is available as shared object file + */ +class ScanIO_uos_rgb : public ScanIO { +public: + virtual int readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss); +}; + +// Since this shared object file is loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/.svn/pristine/67/677066d1e155e2dc9195aa9668e5d17ea7650426.svn-base b/.svn/pristine/67/677066d1e155e2dc9195aa9668e5d17ea7650426.svn-base new file mode 100644 index 0000000..2ed8875 --- /dev/null +++ b/.svn/pristine/67/677066d1e155e2dc9195aa9668e5d17ea7650426.svn-base @@ -0,0 +1,36 @@ +/** + * @file + * @brief IO of a 3D scan in IFP format + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SCAN_IO_IFP_H__ +#define __SCAN_IO_IFP_H__ + +#include +using std::string; +#include +using std::vector; + +#include "scan_io.h" + +/** + * @brief 3D scan loader for IFP (Stuttgart) scans + * + * The compiled class is available as shared object file + */ +class ScanIO_ifp : public ScanIO { +public: + virtual int readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss); +}; + +// Since this shared object file is loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/.svn/pristine/67/67b16845a4533699b4869e44b61c389c316a8d3d.svn-base b/.svn/pristine/67/67b16845a4533699b4869e44b61c389c316a8d3d.svn-base new file mode 100644 index 0000000..894d7e8 --- /dev/null +++ b/.svn/pristine/67/67b16845a4533699b4869e44b61c389c316a8d3d.svn-base @@ -0,0 +1,29 @@ +function output = recordingtime_gps(input, ref) + +[input_m, input_n] = size(input); +[ref_m, ref_n] = size(ref); + +output = zeros(ref_m, input_n); + +for i = 1 : ref_m + upper_index = find(input(:,1) > ref(i,1)); + + upper = input(upper_index(1),:); + + if(upper_index(1) > 1) + lower = input((upper_index(1)-1),:); + else + lower = upper; + end + + diff = upper - lower; + + if(diff(1) == 0) + rel_time = 0; + else + rel_time = (ref(i,1) - lower(1,1)) / diff(1); + end + + output(i,:) = lower + rel_time .* diff; + +end diff --git a/.svn/pristine/67/67dde7bb46c00cac257bcc8da589e6422509c22a.svn-base b/.svn/pristine/67/67dde7bb46c00cac257bcc8da589e6422509c22a.svn-base new file mode 100644 index 0000000..461dbe4 --- /dev/null +++ b/.svn/pristine/67/67dde7bb46c00cac257bcc8da589e6422509c22a.svn-base @@ -0,0 +1,121 @@ +/** + * @file + * @brief Inline helper functions for show program + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "slam6d/globals.icc" + +/** + * converts a quaterion to a 4x4 matrix + * in OpenGL style + */ +template +inline void QuaternionToMatrix4(const double *quat, T *mat) +{ + double xy = quat[0] * quat[1] * -1.0; + double xz = quat[0] * quat[2]; + double yz = quat[1] * quat[2] * -1.0; + double wx = quat[3] * quat[0]; + double wy = quat[3] * quat[1] * -1.0; + double wz = quat[3] * quat[2]; + double x2 = sqr(quat[0]); + double y2 = sqr(quat[1]); + double z2 = sqr(quat[2]); + + mat[0] = 1.0 - 2.0 * (y2 + z2); + mat[4] = 2.0 * (xy - wz); + mat[8] = 2.0 * (xz + wy); + + mat[1] = 2.0 * (xy + wz); + mat[5] = 1.0 - 2.0 * (x2 + z2); + mat[9] = 2.0 * (yz - wx); + + mat[2] = 2.0 * (xz - wy); + mat[6] = 2.0 * (yz + wx); + mat[10] = 1.0 - 2.0 * (x2 + y2); + + mat[11] = mat[7] = mat[3] = mat[12] = mat[13] = mat[14] = 0.0; + mat[15] = 1.0; +} + +/** + * converts a 4x4 matrix to a quaternion + */ +template +inline void Matrix4ToQuaternion(const T *mat, double *quat) +{ + double S; + double Trace = 1 + mat[0] + mat[5] + mat[10]; + if ( Trace > COMPARE_EPSILON ) { + S = sqrt(Trace) * 2; + quat[0] = -1.0 * ( mat[9] - mat[6] ) / S; // q_x + quat[1] = -1.0 * ( mat[2] - mat[8] ) / S; // q_y + quat[2] = -1.0 * ( mat[4] - mat[1] ) / S; // q_z + quat[3] = 0.25 * S; // q_0 + } else if ( mat[0] > mat[5] && mat[0] > mat[10] ) { // Column 0: + S = sqrt( 1.0 + mat[0] - mat[5] - mat[10] ) * 2; + quat[0] = -1.0 * 0.25 * S; + quat[1] = -1.0 * (mat[4] + mat[1] ) / S; + quat[2] = -1.0 * (mat[2] + mat[8] ) / S; + quat[3] = (mat[9] - mat[6] ) / S; + } else if ( mat[5] > mat[10] ) { // Column 1: + S = sqrt( 1.0 + mat[5] - mat[0] - mat[10] ) * 2; + quat[0] = -1.0 * (mat[4] + mat[1] ) / S; + quat[1] = -1.0 * 0.25 * S; + quat[2] = -1.0 * (mat[9] + mat[6] ) / S; + quat[3] = (mat[2] - mat[8] ) / S; + } else { // Column 2: + S = sqrt( 1.0 + mat[10] - mat[0] - mat[5] ) * 2; + quat[0] = -1.0 * (mat[2] + mat[8] ) / S; + quat[1] = -1.0 * (mat[9] + mat[6] ) / S; + quat[2] = -1.0 * 0.25 * S; + quat[3] = (mat[4] - mat[1] ) / S; + } +} + +/** + * normalizes a quaternion to gain a unit quaternion + */ +template +inline void QuatNormalize(T *q) +{ + T norm = sqrt(sqr(q[0]) + sqr(q[1]) + sqr(q[2]) + sqr(q[3])); + q[3] = q[3] / norm; + q[2] = q[2] / norm; + q[1] = q[1] / norm; + q[0] = q[0] / norm; +} + +/** + * multiplication of quaternions + */ +template +inline void QuatMult(const T *q, const T *q_new, T *qtemp) +{ + qtemp[3] = q_new[3] * q[3] - q_new[0] * q[0] - q_new[1] * q[1] - q_new[2] * q[2]; + qtemp[0] = q_new[3] * q[0] + q_new[0] * q[3] + q_new[1] * q[2] - q_new[2] * q[1]; + qtemp[1] = q_new[3] * q[1] + q_new[1] * q[3] + q_new[2] * q[0] - q_new[0] * q[2]; + qtemp[2] = q_new[3] * q[2] + q_new[2] * q[3] + q_new[0] * q[1] - q_new[1] * q[0]; +} + +/** + * converts a quaternion to an axis angle + */ +inline void QuaternionToAxisAngle(const double *quat, double *axis, double &angle) +{ + double quaternion_norm = sqrt( sqr(quat[0]) + sqr(quat[1]) + sqr(quat[2]) + sqr(quat[3]) ); + double normalized_quat[4]; + normalized_quat[0] = quat[0] / quaternion_norm; + normalized_quat[1] = quat[1] / quaternion_norm; + normalized_quat[2] = quat[2] / quaternion_norm; + normalized_quat[3] = quat[3] / quaternion_norm; + double cos_a = normalized_quat[3]; + angle = deg(acos( cos_a )) * 2.0; + double sin_a = sqrt( 1.0 - cos_a * cos_a ); + if ( fabs( sin_a ) < DIV_EPSILON ) sin_a = 1; + axis[0] = normalized_quat[0] / sin_a; + axis[1] = normalized_quat[1] / sin_a; + axis[2] = -1.0 * normalized_quat[2] / sin_a; +} diff --git a/.svn/pristine/68/6807985eb3a5333b9b1d7cbd2a3fb8db0935bb15.svn-base b/.svn/pristine/68/6807985eb3a5333b9b1d7cbd2a3fb8db0935bb15.svn-base new file mode 100644 index 0000000..0563554 --- /dev/null +++ b/.svn/pristine/68/6807985eb3a5333b9b1d7cbd2a3fb8db0935bb15.svn-base @@ -0,0 +1,1805 @@ +/* + * accumulator implementation + * + * Copyright (C) Dorit Borrmann + * + * Released under the GPL version 3. + * + */ + +#include "shapes/accumulator.h" +#include +#include "slam6d/globals.icc" +#include + + +#ifdef _MSC_VER +#define isnan(_X) ((_X) != (_X)) +#endif + +double* polar2normal(double theta, double phi) { + double * n = new double[4]; + n[0] = cos(theta)*sin(phi); + n[1] = sin(theta)*sin(phi); + n[2] = cos(phi); + Normalize3(n); + return n; +} + +AccumulatorSimple::AccumulatorSimple(ConfigFileHough myCfg) { + + count = 0; + myConfigFileHough = myCfg; + accumulator = new int**[myConfigFileHough.Get_RhoNum()]; + + for(unsigned int i = 0; i < myConfigFileHough.Get_RhoNum(); i++) { + accumulator[i] = new int*[myConfigFileHough.Get_PhiNum()]; + for(unsigned int j = 0; j < myConfigFileHough.Get_PhiNum(); j++) { + accumulator[i][j] = new int[myConfigFileHough.Get_ThetaNum()]; + for(unsigned int k = 0; k < myConfigFileHough.Get_ThetaNum(); k++) { + accumulator[i][j][k] = 0; + } + } + } +} + +AccumulatorSimple::~AccumulatorSimple() { + + for(unsigned int i = 0; i < myConfigFileHough.Get_RhoNum(); i++) { + for(unsigned int j = 0; j < myConfigFileHough.Get_PhiNum(); j++) { + delete[] accumulator[i][j]; + } + delete[] accumulator[i]; + + } + delete[] accumulator; + +} + +void AccumulatorSimple::printAccumulator() { + + for(unsigned int i = 0; i < myConfigFileHough.Get_PhiNum(); i++) { + for(unsigned int j = 0; j < myConfigFileHough.Get_ThetaNum(); j++) { + double phi1 = i * M_PI / (myConfigFileHough.Get_PhiNum()*0.99999999); + double phi2 = (i+1) * M_PI / (myConfigFileHough.Get_PhiNum()*0.99999999); + double theta1 = j * 2*M_PI / myConfigFileHough.Get_ThetaNum(); + double theta2 = (j+1) * 2*M_PI / myConfigFileHough.Get_ThetaNum(); + if(theta2 > 2*M_PI) theta2 = 2*M_PI; + if(phi2 > M_PI) { + phi2 = M_PI; + } + int rhosum = 0; + for(unsigned int k = 0; k < myConfigFileHough.Get_RhoNum(); k++) { + rhosum += accumulator[k][i][j]; + } + cout << phi1 << " " << theta1 << " " << " " << rhosum << " 40" << endl; + cout << phi2 << " " << theta1 << " " << " " << rhosum << " 40" << endl; + cout << phi2 << " " << theta2 << " " << " " << rhosum << " 40" << endl; + cout << phi1 << " " << theta2 << " " << " " << rhosum << " 40" << endl; + cout << endl; + } + + cout << endl; + } + + /* + for(unsigned int i = 0; i < myConfigFileHough.Get_PhiNum(); i++) { + for(unsigned int j = 0; j < myConfigFileHough.Get_ThetaNum(); j++) { + for(unsigned int k = 0; k < myConfigFileHough.Get_RhoNum(); k++) { + if( accumulator[i][j][k] > 20 ) cout << i << " " << j << " " << k << endl; + } + } + } + */ + +} + +void AccumulatorSimple::resetAccumulator() { + count = 0; + for(unsigned int i = 0; i < myConfigFileHough.Get_RhoNum(); i++) { + for(unsigned int j = 0; j < myConfigFileHough.Get_PhiNum(); j++) { + for(unsigned int k = 0; k < myConfigFileHough.Get_ThetaNum(); k++) { + accumulator[i][j][k] = 0; + } + } + } +} + +bool AccumulatorSimple::accumulate(double theta, double phi, double rho) { + count++; + //cout << phi << " " << theta << " " << rho << " "; + int rhoindex = myConfigFileHough.Get_RhoNum() - 1; + + if(rho < myConfigFileHough.Get_RhoMax()) { + rhoindex = (int)((rho*(double)myConfigFileHough.Get_RhoNum()/(double)myConfigFileHough.Get_RhoMax())); + } + //cout << (rhoindex + 0.5) * myConfigFileHough.Get_RhoMax()/myConfigFileHough.Get_RhoNum() << endl; + + int phiindex = (int)(phi*((myConfigFileHough.Get_PhiNum()*0.99999999)/(M_PI))); + int thetaindex = (int)(theta*((myConfigFileHough.Get_ThetaNum()*0.9999999)/(2*M_PI))); + + //thetaindex = thetaindex % ballNr[phiindex]; + accumulator[rhoindex][phiindex][thetaindex]++; + return ((unsigned int)accumulator[rhoindex][phiindex][thetaindex] >= myConfigFileHough.Get_AccumulatorMax()); +} + +void AccumulatorSimple::accumulate(Point p) { +// cout << p.x << " " << p.y << " " << p.z << endl; + + for(unsigned int i = 0; i < myConfigFileHough.Get_PhiNum(); i++) { + //TODO 0.99 vielleicht nicht gut + double phi = (i+0.5) * M_PI / (myConfigFileHough.Get_PhiNum()*0.99999999999); + + for(unsigned int j = 0; j < myConfigFileHough.Get_ThetaNum(); j++) { + double theta = (j+0.5) * 2*M_PI / myConfigFileHough.Get_ThetaNum(); + if(theta > 2*M_PI) theta = 2*M_PI; + if(phi > M_PI) { + phi = M_PI; + } + double n[3]; + n[0] = cos(theta)*sin(phi); + n[1] = sin(theta)*sin(phi); + n[2] = cos(phi); + Normalize3(n); + for(unsigned int k = 0; k < myConfigFileHough.Get_RhoNum(); k++) { + double rho = (k + 0.5) * myConfigFileHough.Get_RhoMax() / myConfigFileHough.Get_RhoNum(); + double distance = p.x * n[0] + p.y * n[1] + p.z * n[2]; + if(fabs(distance-rho) < myConfigFileHough.Get_MaxPointPlaneDist()) { + accumulator[k][i][j]++; + } + + } + } + } + +// cout << "fertig" << endl; + +} + +double* AccumulatorSimple::accumulateRet(Point p) { + count++; + // rho theta phi + double* angles = new double[3]; + for(unsigned int i = 0; i < myConfigFileHough.Get_PhiNum(); i++) { + double phi = (i+0.5) * M_PI / (myConfigFileHough.Get_PhiNum()*0.9999999); + + for(unsigned int j = 0; j < myConfigFileHough.Get_ThetaNum(); j++) { + double theta = (j+0.5) * 2*M_PI / myConfigFileHough.Get_ThetaNum(); + if(theta > 2*M_PI) theta = 2*M_PI; + if(phi > M_PI) { + phi = M_PI; + } + double n[3]; + n[0] = cos(theta)*sin(phi); + n[1] = sin(theta)*sin(phi); + n[2] = cos(phi); + Normalize3(n); + for(unsigned int k = 0; k < myConfigFileHough.Get_RhoNum(); k++) { + double rho = (k + 0.5) * myConfigFileHough.Get_RhoMax() / myConfigFileHough.Get_RhoNum(); + double distance = p.x * n[0] + p.y * n[1] + p.z * n[2]; + if(fabs(distance-rho) < myConfigFileHough.Get_MaxPointPlaneDist()) { + accumulator[k][i][j]++; + if(((unsigned int)accumulator[k][i][j] > myConfigFileHough.Get_AccumulatorMax() && (unsigned int)accumulator[k][i][j] > count*myConfigFileHough.Get_PlaneRatio()) + || (unsigned int)accumulator[k][i][j] > myConfigFileHough.Get_AccumulatorMax()) { + angles[0] = rho; + angles[1] = theta; + angles[2] = phi; + return angles; + } + } + + } + } + } + + angles[0] = -1; + return angles; + +} + +int* AccumulatorSimple::accumulateAPHT(Point p) { + + int tmpInt = 0; + // rho theta phi + int* angles = new int[3]; + for(unsigned int i = 0; i < myConfigFileHough.Get_PhiNum(); i++) { + double phi = (i+0.5) * M_PI / (myConfigFileHough.Get_PhiNum()*0.99999999); + + for(unsigned int j = 0; j < myConfigFileHough.Get_ThetaNum(); j++) { + double theta = (j+0.5) * 2*M_PI / myConfigFileHough.Get_ThetaNum(); + if(theta > 2*M_PI) theta = 2*M_PI; + if(phi > M_PI) { + phi = M_PI; + } + double n[3]; + n[0] = cos(theta)*sin(phi); + n[1] = sin(theta)*sin(phi); + n[2] = cos(phi); + Normalize3(n); + for(unsigned int k = 0; k < myConfigFileHough.Get_RhoNum(); k++) { + double rho = (k + 0.5) * myConfigFileHough.Get_RhoMax() / myConfigFileHough.Get_RhoNum(); + double distance = p.x * n[0] + p.y * n[1] + p.z * n[2]; + if(fabs(distance-rho) < myConfigFileHough.Get_MaxPointPlaneDist()) { + accumulator[k][i][j]++; + if(accumulator[k][i][j] > tmpInt) { + angles[0] = k; + angles[1] = j; + angles[2] = i; + tmpInt = accumulator[k][i][j]; + } + } + + } + } + } + + return angles; + +} + + +double* AccumulatorSimple::getMax(double &rho, double &theta, double &phi) { + int rhoindex = myConfigFileHough.Get_RhoNum() - 1; + + if(rho < myConfigFileHough.Get_RhoMax()) { + rhoindex = (int)(rho*((double)myConfigFileHough.Get_RhoNum()/(double)myConfigFileHough.Get_RhoMax())); + } + + int phiindex = (int)(phi*((double)(myConfigFileHough.Get_PhiNum())/(M_PI))); + int thetaindex = (int)(theta*(((double)myConfigFileHough.Get_ThetaNum())/(2*M_PI))); + thetaindex = thetaindex % myConfigFileHough.Get_ThetaNum(); + + phi = (0.5 + phiindex) * (double)(M_PI / (double)myConfigFileHough.Get_PhiNum()); + theta = (0.5 + thetaindex) * (double)(2.0 * M_PI / (double)myConfigFileHough.Get_ThetaNum()); + rho = (rhoindex + 0.5) * (double)myConfigFileHough.Get_RhoMax()/(double)myConfigFileHough.Get_RhoNum(); + return polar2normal(theta, phi); +} + +double* AccumulatorSimple::getMax(int* cell) { + double phi = (0.5 + cell[3]) * (double)(M_PI / (double)myConfigFileHough.Get_PhiNum()); + double theta = (0.5 + cell[2]) * (double)(2.0 * M_PI / + (double)myConfigFileHough.Get_ThetaNum()); + double rho = (cell[1] + 0.5) * + (double)myConfigFileHough.Get_RhoMax()/(double)myConfigFileHough.Get_RhoNum(); + double* polar = polar2normal(theta, phi); + polar[3] = rho; + return polar; +} + +multiset* AccumulatorSimple::getMax() { +//void AccumulatorSimple::getMax() { + multiset* maxlist = new multiset(); + for(unsigned int i = 0; i < myConfigFileHough.Get_RhoNum(); i++) { + for(unsigned int j = 0; j < myConfigFileHough.Get_PhiNum(); j++) { + for(unsigned int k = 0; k < myConfigFileHough.Get_ThetaNum(); k++) { + int* tmp = new int[4]; + tmp[0] = accumulator[i][j][k]; + tmp[1] = i; + tmp[2] = k; + tmp[3] = j; + maxlist->insert(tmp); + } + } + } + return maxlist; +} + +void AccumulatorSimple::peakWindow(int size) { + for(unsigned int i = 0; i < myConfigFileHough.Get_RhoNum() - size; i++) { + for(unsigned int j = 0; j < myConfigFileHough.Get_PhiNum() - size; j++) { + for(unsigned int k = 0; k < myConfigFileHough.Get_ThetaNum() - size; k++) { + int max = 0; + for(unsigned int ii = i; ii < i + size; ii++) { + for(unsigned int ji = j; ji < j + size; ji++) { + for(unsigned int ki = k; ki < k + size; ki++) { + if(accumulator[ii][ji][ki] > max) { + max = accumulator[ii][ji][ki]; + } + } + } + } + for(unsigned int ii = i; ii < i + size; ii++) { + for(unsigned int ji = j; ji < j + size; ji++) { + for(unsigned int ki = k; ki < k + size; ki++) { + if(accumulator[ii][ji][ki] < max) { + accumulator[ii][ji][ki] = 0; + } + } + } + } + } + } + } +} + +AccumulatorBall::AccumulatorBall(ConfigFileHough myCfg) { + count = 0; + int countCells = 0; + myConfigFileHough = myCfg; + + double c = 0.0; + int counter = 0; + ballNr = new int[myConfigFileHough.Get_PhiNum()]; + double step = 180.0/myConfigFileHough.Get_PhiNum(); + + //double MAX_A = M_PI * (2 * fabs(0 - cos(rad(90- step))) + sin(rad(90 - step)) * sin(rad(90 - step)) + 1 * 1); + + double MAX_A = 2 * M_PI * 1.0; + + double r = sin(rad(0.0)); + double z = cos(rad(0.0)); + double r_next = 0.0; + double z_next = 0.0; + + for(double phi = 0; phi < 180.0; phi+=step) { + r_next = sin(rad(phi+step)); + z_next = cos(rad(phi+step)); + // Flaecheninhalt der aktuellen Kreisscheibe + //double a = (M_PI * (2.0 * 1.0 * fabs(z - z_next) + r*r + r_next*r_next)); + // Umfang des aktuellen Kreises + double a = 2 * M_PI * (r + r_next)/2.0; + //a = (r*r - r_next*r_next) * PI; //Flaechenvergleich + + // Berechnung der Schrittgroesse in Grad + c = ((360.0 * (MAX_A / a)) / (myConfigFileHough.Get_ThetaNum() - 1)); + // Berechnung der Felder im Akkumulatorarray + int size = (int)(1.0 + 360.0/c); + //if(true) { + ballNr[counter] = size; + //} else { + // ballNr[counter] = myConfigFileHough.Get_ThetaNum(); + //} + + //cout << counter << endl; + r = r_next; + z = z_next; + counter++; + } + + + accumulator = new int**[myConfigFileHough.Get_RhoNum()]; + + for(unsigned int i = 0; i < myConfigFileHough.Get_RhoNum(); i++) { + accumulator[i] = new int*[myConfigFileHough.Get_PhiNum()]; + for(unsigned int j = 0; j < myConfigFileHough.Get_PhiNum(); j++) { + accumulator[i][j] = new int[ballNr[j]]; + for(int k = 0; k < ballNr[j]; k++) { + accumulator[i][j][k] = 0; + countCells++; + } + } + } + cout << "CountCells " << countCells << endl; +} + +AccumulatorBall::~AccumulatorBall() { + + for(unsigned int i = 0; i < myConfigFileHough.Get_RhoNum(); i++) { + for(unsigned int j = 0; j < myConfigFileHough.Get_PhiNum(); j++) { + delete[] accumulator[i][j]; + } + delete[] accumulator[i]; + + } + delete[] accumulator; + delete[] ballNr; + +} + +void AccumulatorBall::printAccumulator() { + int sum = 0; + for(unsigned int i = 0; i < myConfigFileHough.Get_PhiNum(); i++) { + sum += ballNr[i]; + } + for(unsigned int i = 0; i < myConfigFileHough.Get_PhiNum(); i++) { + for(int j = 0; j < ballNr[i]; j++) { + double phi1 = i * M_PI / (myConfigFileHough.Get_PhiNum()*0.9999999999); + double phi2 = (i+1) * M_PI / (myConfigFileHough.Get_PhiNum()*0.99999999); + double theta1 = j * 2*M_PI / ballNr[i]; + double theta2 = (j+1) * 2*M_PI / ballNr[i]; + if(theta2 > 2*M_PI) theta2 = 2*M_PI; + if(phi2 > M_PI) { + phi2 = M_PI; + } + int rhosum = 0; + /* + for(int k = 0; k < myConfigFileHough.Get_RhoNum(); k++) { + rhosum += accumulator[k][i][j]; + } + */ + rhosum = accumulator[33][i][j]; + cout << phi1 << " " << theta1 << " " << rhosum << " 40" << endl; + cout << phi2 << " " << theta1 << " " << rhosum << " 40" << endl; + cout << phi2 << " " << theta2 << " " << rhosum << " 40" << endl; + cout << phi1 << " " << theta2 << " " << rhosum << " 40" << endl; + cout << endl; + } + + //cout << endl; + } +} + +void AccumulatorBall::resetAccumulator() { + + count = 0; + for(unsigned int i = 0; i < myConfigFileHough.Get_RhoNum(); i++) { + for(unsigned int j = 0; j < myConfigFileHough.Get_PhiNum(); j++) { + int bNr = ballNr[j]; + for(int k = 0; k < bNr; k++) { + accumulator[i][j][k] = 0; + } + } + } +} + +bool AccumulatorBall::accumulate(double theta, double phi, double rho) { + count++; + int rhoindex = myConfigFileHough.Get_RhoNum() - 1; + + if(rho < myConfigFileHough.Get_RhoMax()) { + rhoindex = (int)((rho*(double)myConfigFileHough.Get_RhoNum()/(double)myConfigFileHough.Get_RhoMax())); + } + + int phiindex = (int)(phi*(((double)myConfigFileHough.Get_PhiNum()*0.9999999)/(M_PI))); + int bNr = ballNr[phiindex]; + int thetaindex = (int)(theta*((bNr*0.9999999999)/(2*M_PI))); + if(thetaindex >= bNr) { + cout << "duet"; + } + //thetaindex = thetaindex % ballNr[phiindex]; + accumulator[rhoindex][phiindex][thetaindex]++; + return ((unsigned int)accumulator[rhoindex][phiindex][thetaindex] >= myConfigFileHough.Get_AccumulatorMax()); +} + +void AccumulatorBall::accumulate(Point p) { + for(unsigned int i = 0; i < myConfigFileHough.Get_PhiNum(); i++) { + double phi = (i+0.5) * M_PI / (myConfigFileHough.Get_PhiNum()*0.999999999); + for(int j = 0; j < ballNr[i]; j++) { + double theta = (j+0.5) * 2*M_PI / ballNr[i]; + if(theta > 2*M_PI) theta = 2*M_PI; + if(phi > M_PI) { + phi = M_PI; + } + double n[3]; + n[0] = cos(theta)*sin(phi); + n[1] = sin(theta)*sin(phi); + n[2] = cos(phi); + Normalize3(n); + for(unsigned int k = 0; k < myConfigFileHough.Get_RhoNum(); k++) { + double rho = (k + 0.5) * myConfigFileHough.Get_RhoMax() / myConfigFileHough.Get_RhoNum(); + double distance = p.x * n[0] + p.y * n[1] + p.z * n[2]; + if(fabs(distance-rho) < myConfigFileHough.Get_MaxPointPlaneDist()) { + accumulator[k][i][j]++; + } + + } + } + } + +} +double* AccumulatorBall::accumulateRet(Point p) { + count++; + // rho theta phi + double* angles = new double[3]; + for(unsigned int i = 0; i < myConfigFileHough.Get_PhiNum(); i++) { + double phi = (i+0.5) * M_PI / (myConfigFileHough.Get_PhiNum()*0.99999999); + for(int j = 0; j < ballNr[i]; j++) { + double theta = (j+0.5) * 2*M_PI / ballNr[i]; + if(theta > 2*M_PI) theta = 2*M_PI; + if(phi > M_PI) { + phi = M_PI; + } + double n[3]; + n[0] = cos(theta)*sin(phi); + n[1] = sin(theta)*sin(phi); + n[2] = cos(phi); + Normalize3(n); + for(unsigned int k = 0; k < myConfigFileHough.Get_RhoNum(); k++) { + double rho = (k + 0.5) * myConfigFileHough.Get_RhoMax() / myConfigFileHough.Get_RhoNum(); + double distance = p.x * n[0] + p.y * n[1] + p.z * n[2]; + if(fabs(distance-rho) < myConfigFileHough.Get_MaxPointPlaneDist()) { + accumulator[k][i][j]++; + if( + ((unsigned int)accumulator[k][i][j] > myConfigFileHough.Get_AccumulatorMax() && + (unsigned int)accumulator[k][i][j] > count*myConfigFileHough.Get_PlaneRatio()) || + (unsigned int)accumulator[k][i][j] > 10*myConfigFileHough.Get_AccumulatorMax()) { + angles[0] = rho; + angles[0] = rho; + angles[1] = theta; + angles[2] = phi; + return angles; + } + } + + } + } + } + angles[0] = -1; + return angles; +} + +int* AccumulatorBall::accumulateAPHT(Point p) { + + // rho theta phi + int tmpMax = 0; + int* angles = new int[4]; + for(unsigned int i = 0; i < myConfigFileHough.Get_PhiNum(); i++) { + double phi = (i+0.5) * M_PI / (myConfigFileHough.Get_PhiNum()*0.9999999999); + for(int j = 0; j < ballNr[i]; j++) { + double theta = (j+0.5) * 2*M_PI / ballNr[i]; + if(theta > 2*M_PI) theta = 2*M_PI; + if(phi > M_PI) { + phi = M_PI; + } + double n[3]; + n[0] = cos(theta)*sin(phi); + n[1] = sin(theta)*sin(phi); + n[2] = cos(phi); + Normalize3(n); + for(unsigned int k = 0; k < myConfigFileHough.Get_RhoNum(); k++) { + double rho = (k + 0.5) * myConfigFileHough.Get_RhoMax() / myConfigFileHough.Get_RhoNum(); + double distance = p.x * n[0] + p.y * n[1] + p.z * n[2]; + if(fabs(distance-rho) < myConfigFileHough.Get_MaxPointPlaneDist()) { + accumulator[k][i][j]++; + if(accumulator[k][i][j] > tmpMax) { + angles[1] = k; + angles[2] = j; + angles[3] = i; + angles[0] = tmpMax = accumulator[k][i][j]; + } + } + + } + } + } + return angles; +} + +double* AccumulatorBall::getMax(double &rho, double &theta, double &phi) { + int rhoindex = myConfigFileHough.Get_RhoNum() - 1; + + double tmprho = rho; + if(rho < myConfigFileHough.Get_RhoMax()) { + rhoindex = (int)(rho*0.99999999*((double)myConfigFileHough.Get_RhoNum()/(double)myConfigFileHough.Get_RhoMax())); + } + + int phiindex = (int)(phi*0.99999999*(((double)myConfigFileHough.Get_PhiNum())/(M_PI))); + int bNr = ballNr[phiindex]; + int thetaindex = (int)(theta*((bNr + 1)/(2*M_PI))); + thetaindex = thetaindex % bNr; + + phi = (0.5 + phiindex) * (double)(M_PI / (double)myConfigFileHough.Get_PhiNum()); + theta = (0.5 + thetaindex) * (double)(2.0 * M_PI / bNr); + rho = (rhoindex + 0.5) * (double)myConfigFileHough.Get_RhoMax()/(double)myConfigFileHough.Get_RhoNum(); + if(fabs(rho - rho) > 0.01) cout << rho << " " << tmprho << " " << rhoindex << endl; + return polar2normal(theta, phi); +} +double* AccumulatorBall::getMax(int* cell) { + double phi = (0.5 + cell[3]) * (double)(M_PI / (double)myConfigFileHough.Get_PhiNum()); + int bNr = ballNr[cell[3]]; + double theta = (0.5 + cell[2]) * (double)(2.0 * M_PI / bNr); + double rho = (cell[1] + 0.5) * + (double)myConfigFileHough.Get_RhoMax()/(double)myConfigFileHough.Get_RhoNum(); + double* polar = polar2normal(theta, phi); + if(isnan(polar[0])) { + cout << cell[1] << " " << cell[2] << " " << cell[3] << endl; + cout << theta <<" bla " << phi << endl; + } + polar[3] = rho; + return polar; +} + +multiset* AccumulatorBall::getMax() { +//void AccumulatorBall::getMax() { + multiset* maxlist = new multiset(); + for(unsigned int i = 0; i < myConfigFileHough.Get_RhoNum(); i++) { + for(unsigned int j = 0; j < myConfigFileHough.Get_PhiNum(); j++) { + int bNr = ballNr[j]; + for(int k = 0; k < bNr; k++) { + int * tmp = new int[4]; + tmp[0] = accumulator[i][j][k]; + tmp[1] = i; + tmp[2] = k; + tmp[3] = j; + maxlist->insert(tmp); + } + } + } + cout << maxlist->size() << endl; + return maxlist; +} + +void AccumulatorBall::peakWindow(int size) { + //cout << "Wir haben " << sum << "Zellen!" << endl; + for(unsigned int i = 0; i < myConfigFileHough.Get_PhiNum() - size; i++) { + //cout << "Peak " << i << endl; + for(int j = 0; j < ballNr[i] - size; j++) { + + for(unsigned int k = 0; k < myConfigFileHough.Get_RhoNum() - size; k++) { + int max = 0; + for(unsigned int ii = i; (ii < (i + size)) && (ii < myConfigFileHough.Get_PhiNum()); ii++) { + for(int ji = j; (ji < (j + size)) && (ji < ballNr[ii]); ji++) { + for(unsigned int ki = k; (ki < (k + size)) && (ki < myConfigFileHough.Get_RhoNum()); ki++) { + if(accumulator[ki][ii][ji] > max) { + max = accumulator[ki][ii][ji]; + } + } + } + } + for(unsigned int ii = i; ii < i + size && ii < myConfigFileHough.Get_PhiNum(); ii++) { + for(int ji = j; ji < j + size && ji < ballNr[ii]; ji++) { + for(unsigned int ki = k; ki < k + size && ki < myConfigFileHough.Get_RhoNum(); ki++) { + if(accumulator[ki][ii][ji] < max) { + accumulator[ki][ii][ji] = 0; + } + } + } + } + } + } + } +} + +//BLUB + + + +AccumulatorCube::AccumulatorCube(ConfigFileHough myCfg) { + int countCells = 0; + count = 0; + myConfigFileHough = myCfg; + nrCells = myConfigFileHough.Get_ThetaNum()/4; + accumulator = new int***[6]; + for(int i = 0; i < 6; i++) { + accumulator[i] = new int**[nrCells]; + for(int j = 0; j < nrCells; j++) { + accumulator[i][j] = new int*[nrCells]; + for(int k = 0; k < nrCells; k++) { + accumulator[i][j][k] = new int[myConfigFileHough.Get_RhoNum()]; + for(unsigned int l = 0; l < myConfigFileHough.Get_RhoNum(); l++) { + accumulator[i][j][k][l] = 0; + countCells++; + } + } + } + } + cout << "countCells " << countCells << endl; +} + +AccumulatorCube::~AccumulatorCube() { + nrCells = myConfigFileHough.Get_ThetaNum()/4; + + for(unsigned int i = 0; i < 6; i++) { + for(int j = 0; j < nrCells; j++) { + for(int k = 0; k < nrCells; k++) { + delete[] accumulator[i][j][k]; + } + delete[] accumulator[i][j]; + } + delete[] accumulator[i]; + + } + delete[] accumulator; + +} + +void AccumulatorCube::printAccumulator2() { + + double **result; + result = new double*[4]; + result[0] = new double[3]; + result[1] = new double[3]; + result[2] = new double[3]; + result[3] = new double[3]; + + int j; + int k; + + for(int i = 0; i < 6; i+=1) { + + for(j = 1, k = 1; j <= nrCells; j++) { + + buffer_point bptmp; + bptmp.face = i + 1; + bptmp.i = j; + bptmp.j = k; + + coords_cube_for_print(bptmp, result, nrCells); + //double* tmp = coords_cube_to_s2(bptmp, nrCells); + double polar1[3]; + double polar2[3]; + double polar3[3]; + double polar4[3]; + //toPolar(tmp, polar1); + + Normalize3(result[0]); + Normalize3(result[1]); + Normalize3(result[2]); + Normalize3(result[3]); + + toPolar(result[0], polar1); + toPolar(result[1], polar2); + toPolar(result[2], polar3); + toPolar(result[3], polar4); + double phi1 = polar1[0]; + double theta1 = polar1[1]; + //double phi2 = polar2[0]; + //double theta2 = polar2[1]; + //double phi3 = polar3[0]; + //double theta3 = polar3[1]; + double phi4 = polar4[0]; + double theta4 = polar4[1]; + + cout << phi1 << " " << theta1 << " " << " 40" << endl; + cout << phi4 << " " << theta4 << " " << " 40" << endl; + //cout << phi1 << " " << theta1 << " " << rhosum << " 40" << endl; + } + for(j--; k <= nrCells; k++) { + + buffer_point bptmp; + bptmp.face = i + 1; + bptmp.i = j; + bptmp.j = k; + + coords_cube_for_print(bptmp, result, nrCells); + //double* tmp = coords_cube_to_s2(bptmp, nrCells); + double polar1[3]; + double polar2[3]; + double polar3[3]; + double polar4[3]; + //toPolar(tmp, polar1); + + Normalize3(result[0]); + Normalize3(result[1]); + Normalize3(result[2]); + Normalize3(result[3]); + + toPolar(result[0], polar1); + toPolar(result[1], polar2); + toPolar(result[2], polar3); + toPolar(result[3], polar4); + //double phi1 = polar1[0]; + //double theta1 = polar1[1]; + //double phi2 = polar2[0]; + //double theta2 = polar2[1]; + double phi3 = polar3[0]; + double theta3 = polar3[1]; + double phi4 = polar4[0]; + double theta4 = polar4[1]; + + cout << phi4 << " " << theta4 << " " << " 40" << endl; + cout << phi3 << " " << theta3 << " " << " 40" << endl; + //cout << phi1 << " " << theta1 << " " << rhosum << " 40" << endl; + } + for(k--; j > 0; j--) { + + buffer_point bptmp; + bptmp.face = i + 1; + bptmp.i = j; + bptmp.j = k; + + coords_cube_for_print(bptmp, result, nrCells); + //double* tmp = coords_cube_to_s2(bptmp, nrCells); + double polar1[3]; + double polar2[3]; + double polar3[3]; + double polar4[3]; + //toPolar(tmp, polar1); + + Normalize3(result[0]); + Normalize3(result[1]); + Normalize3(result[2]); + Normalize3(result[3]); + + toPolar(result[0], polar1); + toPolar(result[1], polar2); + toPolar(result[2], polar3); + toPolar(result[3], polar4); + //double phi1 = polar1[0]; + //double theta1 = polar1[1]; + double phi2 = polar2[0]; + double theta2 = polar2[1]; + double phi3 = polar3[0]; + double theta3 = polar3[1]; + //double phi4 = polar4[0]; + //double theta4 = polar4[1]; + + cout << phi3 << " " << theta3 << " " << " 40" << endl; + cout << phi2 << " " << theta2 << " " << " 40" << endl; + //cout << phi1 << " " << theta1 << " " << rhosum << " 40" << endl; + } + for(j++; k > 0; k--) { + + buffer_point bptmp; + bptmp.face = i + 1; + bptmp.i = j; + bptmp.j = k; + + coords_cube_for_print(bptmp, result, nrCells); + //double* tmp = coords_cube_to_s2(bptmp, nrCells); + double polar1[3]; + double polar2[3]; + double polar3[3]; + double polar4[3]; + //toPolar(tmp, polar1); + + Normalize3(result[0]); + Normalize3(result[1]); + Normalize3(result[2]); + Normalize3(result[3]); + + toPolar(result[0], polar1); + toPolar(result[1], polar2); + toPolar(result[2], polar3); + toPolar(result[3], polar4); + double phi1 = polar1[0]; + double theta1 = polar1[1]; + double phi2 = polar2[0]; + double theta2 = polar2[1]; + //double phi3 = polar3[0]; + //double theta3 = polar3[1]; + //double phi4 = polar4[0]; + //double theta4 = polar4[1]; + + cout << phi2 << " " << theta2 << " " << " 40" << endl; + cout << phi1 << " " << theta1 << " " << " 40" << endl; + //cout << phi1 << " " << theta1 << " " << rhosum << " 40" << endl; + } + + cout << 0.0 << " " << 0.0 << " " << " 0" << endl; + } + cout << 0.0 << " " << 0.0 << " " << " 0" << endl; +} + +void AccumulatorCube::printAccumulator() { + + //double norm[3]; + //double polar[3]; +// double *result; + + double **result; + result = new double*[4]; + result[0] = new double[3]; + result[1] = new double[3]; + result[2] = new double[3]; + result[3] = new double[3]; + + //buffer_point bp; + + /* + for(double o = -0.9; o < 1.0; o+=0.1) { + for(double p = -0.9; p < 1.0; p+=0.1) { + norm[2] = o; + norm[1] = p; + norm[0] = 1.0; + toPolar(norm, polar); + + bp = coords_s2_to_cell(norm, nrCells); + result = coords_cube_to_s2(bp, nrCells); + toPolar(result, polar); + + cout << polar[0] << " " << polar[1] << " " << 40 << endl; + //if(fabs(polar[1]) < 0.0001) + // cout << "STOP" << "-1.0 " << p << " " << o << endl; + delete[] result; + } + } + */ + + /* + norm[0] = 1.0; + norm[1] = 0.0; + norm[2] = 0.0; + toPolar(norm, polar); + cout << polar[0] << " " << polar[1] << endl; + bp = coords_s2_to_cell(norm, nrCells); + result = coords_cube_to_s2(bp, nrCells); + toPolar(result, polar); + cout << polar[0] << " " << polar[1] << endl << endl << endl; + delete[] result; + + norm[0] = -1.0; + norm[1] = 0.0; + norm[2] = 0.0; + + toPolar(norm, polar); + cout << polar[0] << " " << polar[1] << endl; + bp = coords_s2_to_cell(norm, nrCells); + result = coords_cube_to_s2(bp, nrCells); + toPolar(result, polar); + cout << polar[0] << " " << polar[1] << endl; + cout << endl << endl; + delete[] result; + + norm[0] = 0.0; + norm[1] = 1.0; + norm[2] = 0.0; + toPolar(norm, polar); + cout << polar[0] << " " << polar[1] << endl; + bp = coords_s2_to_cell(norm, nrCells); + result = coords_cube_to_s2(bp, nrCells); + toPolar(result, polar); + cout << polar[0] << " " << polar[1] << endl; + cout << endl << endl; + delete[] result; + + norm[0] = 0.0; + norm[1] = -1.0; + norm[2] = 0.0; + toPolar(norm, polar); + cout << polar[0] << " " << polar[1] << endl; + bp = coords_s2_to_cell(norm, nrCells); + result = coords_cube_to_s2(bp, nrCells); + toPolar(result, polar); + cout << polar[0] << " " << polar[1] << endl; + cout << endl << endl; + delete[] result; + + norm[0] = 0.0; + norm[1] = 0.0; + norm[2] = 1.0; + toPolar(norm, polar); + cout << polar[0] << " " << polar[1] << endl; + bp = coords_s2_to_cell(norm, nrCells); + result = coords_cube_to_s2(bp, nrCells); + toPolar(result, polar); + cout << polar[0] << " " << polar[1] << endl; + cout << endl << endl; + delete[] result; + + norm[0] = 0.0; + norm[1] = 0.0; + norm[2] = -1.0; + toPolar(norm, polar); + cout << polar[0] << " " << polar[1] << endl; + bp = coords_s2_to_cell(norm, nrCells); + result = coords_cube_to_s2(bp, nrCells); + toPolar(result, polar); + cout << polar[0] << " " << polar[1] << endl; + cout << endl << endl; + delete[] result; +*//* + norm[0] = 0.0; + norm[1] = 0.0; + norm[2] = -1.0; + toPolar(norm, polar); + cout << polar[0] << " " << polar[1] << endl; + bp = coords_s2_to_cell(norm, nrCells); + + int i = bp.face - 1; + int j = bp.i; + int k = bp.j; + */ + for(int i = 0; i < 6; i+=1) { + cout << 0.0 << " " << 0.0 << " " << 0 << " 0" << endl; + //for(int j = 1; j j <= nrCells j+= (nrCells-1)) { + for(int j = 1; j <= nrCells; j++) { + //cout << endl; + //for(int k = 1; j k <= nrCells k+= (nrCells-1)) { + for(int k = 1; k <= nrCells; k++) { + //cout << endl; + int rhosum = 0; + for(unsigned int l = 0; l < myConfigFileHough.Get_RhoNum(); l++) { + rhosum += accumulator[i][j-1][k-1][l]; + } + buffer_point bptmp; + bptmp.face = i + 1; + bptmp.i = j; + bptmp.j = k; + + coords_cube_for_print(bptmp, result, nrCells); + //double* tmp = coords_cube_to_s2(bptmp, nrCells); + double polar1[3]; + double polar2[3]; + double polar3[3]; + double polar4[3]; + //toPolar(tmp, polar1); + + Normalize3(result[0]); + Normalize3(result[1]); + Normalize3(result[2]); + Normalize3(result[3]); + /* + cout << result[0][0] << " " << result[0][1] << " " << result[0][2] << endl; + cout << result[1][0] << " " << result[1][1] << " " << result[1][2] << endl; + cout << result[2][0] << " " << result[2][1] << " " << result[2][2] << endl; + cout << result[3][0] << " " << result[3][1] << " " << result[3][2] << endl; + cout << result[0][0] << " " << result[0][1] << " " << result[0][2] << endl; + */ + toPolar(result[0], polar1); + toPolar(result[1], polar2); + toPolar(result[2], polar3); + toPolar(result[3], polar4); + double phi1 = polar1[0]; + double theta1 = polar1[1]; + double phi2 = polar2[0]; + double theta2 = polar2[1]; + double phi3 = polar3[0]; + double theta3 = polar3[1]; + double phi4 = polar4[0]; + double theta4 = polar4[1]; + + /* + cout << phi - 0.02 << " " << theta - 0.02 << " " << rhosum << endl; + cout << phi + 0.02 << " " << theta - 0.02 << " " << rhosum << endl; + cout << phi + 0.02 << " " << theta + 0.02 << " " << rhosum << endl; + cout << phi - 0.02 << " " << theta + 0.02 << " " << rhosum << endl; + */ + + /* + cout << (j+1+i*nrCells) << " " << k+1 << " " << rhosum << endl; + cout << (j+1+i*nrCells) << " " << k << " " << rhosum << endl; + cout << (j+i*nrCells) << " " << k << " " << rhosum << endl; + cout << (j+i*nrCells) << " " << k+1 << " " << rhosum << endl; + */ + /* + cout << phi1 << " " << theta2 << " " << rhosum << " 40" << endl; + cout << phi1 << " " << theta1 << " " << rhosum << " 40" << endl; + cout << phi2 << " " << theta1 << " " << rhosum << " 40" << endl; + cout << phi2 << " " << theta2 << " " << rhosum << " 40" << endl; + cout << phi1 << " " << theta2 << " " << rhosum << " 40" << endl; + */ + + if(phi1 < M_PI/nrCells && fabs(phi1-phi2) < 0.001 && fabs(phi1-phi3) < 0.001 && fabs(phi1 - phi4) < 0.001) { + //if(phi1 < M_PI/nrCells && phi2 < M_PI/nrCells && phi3 < M_PI/nrCells && phi4 < M_PI/nrCells) { + cout << phi1 << " " << 2*M_PI << " " << rhosum << " 40" << endl; + cout << 0.0 << " " << 2*M_PI << " " << rhosum << " 40" << endl; + cout << 0.0 << " " << 0.0 << " " << rhosum << " 40" << endl; + cout << phi1 << " " << 0.0 << " " << rhosum << " 40" << endl; + //cout << phi1 << " " << 2*M_PI << " " << rhosum << " 40" << endl; + + cout << endl; + //cout << endl; + + } //else if(M_PI - phi1 < M_PI/nrCells && M_PI - phi2 < M_PI/nrCells && M_PI - phi3 < M_PI/nrCells && M_PI - phi4 < M_PI/nrCells){ + else if(M_PI - phi1 < M_PI/nrCells && fabs(phi1-phi2) < 0.001 && fabs(phi1-phi3) < 0.001 && fabs(phi1 - phi4) < 0.001) { + cout << phi1 << " " << 0.0 << " " << rhosum << " 40" << endl; + cout << phi2 << " " << 2*M_PI << " " << rhosum << " 40" << endl; + cout << M_PI << " " << 2*M_PI << " " << rhosum << " 40" << endl; + cout << M_PI << " " << 0.0 << " " << rhosum << " 40" << endl; + //cout << phi1 << " " << 0.0 << " " << rhosum << " 40" << endl; + cout << endl; + //<< endl; + + + } else if(fabs(phi1 - phi2) < 2.0 && fabs(theta2 - theta3) < 3.0 && fabs(theta4 - theta3) < 3.0) { + cout << phi1 << " " << theta1 << " " << rhosum << " 40" << endl; + cout << phi2 << " " << theta2 << " " << rhosum << " 40" << endl; + cout << phi3 << " " << theta3 << " " << rhosum << " 40" << endl; + cout << phi4 << " " << theta4 << " " << rhosum << " 40" << endl; + //cout << phi1 << " " << theta1 << " " << rhosum << " 40" << endl; + + //cout << endl; + cout << endl; + } else if(fabs(phi1 - phi2) < 2.0) { + if(fabs(theta2 - theta3) < 3.0) { + if(theta3 < 1.0) { + cout << phi1 << " " << 0.0 << " " << rhosum << " 40" << endl; + cout << phi2 << " " << theta2 << " " << rhosum << " 40" << endl; + cout << phi3 << " " << theta3 << " " << rhosum << " 40" << endl; + cout << phi4 << " " << 0.0 << " " << rhosum << " 40" << endl; + // cout << phi1 << " " << 0.0 << " " << rhosum << " 40" << endl; + + // cout << endl; + cout << endl; + + cout << phi1 << " " << theta1 << " " << rhosum << " 40" << endl; + cout << phi2 << " " << 2*M_PI << " " << rhosum << " 40" << endl; + cout << phi3 << " " << 2*M_PI << " " << rhosum << " 40" << endl; + cout << phi4 << " " << theta4 << " " << rhosum << " 40" << endl; + // cout << phi1 << " " << theta1 << " " << rhosum << " 40" << endl; + + //cout << endl; + cout << endl; + } else { + cout << phi1 << " " << 2*M_PI << " " << rhosum << " 40" << endl; + cout << phi2 << " " << theta2 << " " << rhosum << " 40" << endl; + cout << phi3 << " " << theta3 << " " << rhosum << " 40" << endl; + cout << phi4 << " " << 2*M_PI << " " << rhosum << " 40" << endl; + // cout << phi1 << " " << 2*M_PI << " " << rhosum << " 40" << endl; + + // cout << endl; + cout << endl; + + cout << phi1 << " " << theta1 << " " << rhosum << " 40" << endl; + cout << phi2 << " " << 0.0 << " " << rhosum << " 40" << endl; + cout << phi3 << " " << 0.0 << " " << rhosum << " 40" << endl; + cout << phi4 << " " << theta4 << " " << rhosum << " 40" << endl; + // cout << phi1 << " " << theta1 << " " << rhosum << " 40" << endl; + + // cout << endl; + cout << endl; + + } + } else if(theta3 < 1.0) { + cout << phi1 << " " << 0.0 << " " << rhosum << " 40" << endl; + cout << phi2 << " " << 0.0 << " " << rhosum << " 40" << endl; + cout << phi3 << " " << theta3 << " " << rhosum << " 40" << endl; + cout << phi4 << " " << theta4 << " " << rhosum << " 40" << endl; + // cout << phi1 << " " << 0.0 << " " << rhosum << " 40" << endl; + + // cout << endl; + cout << endl; + + cout << phi1 << " " << theta1 << " " << rhosum << " 40" << endl; + cout << phi2 << " " << theta2 << " " << rhosum << " 40" << endl; + cout << phi3 << " " << 2*M_PI << " " << rhosum << " 40" << endl; + cout << phi4 << " " << 2*M_PI << " " << rhosum << " 40" << endl; + // cout << phi1 << " " << theta1 << " " << rhosum << " 40" << endl; + + // cout << endl; + cout << endl; + } else { + cout << phi1 << " " << 2*M_PI << " " << rhosum << " 40" << endl; + cout << phi2 << " " << 2*M_PI << " " << rhosum << " 40" << endl; + cout << phi3 << " " << theta3 << " " << rhosum << " 40" << endl; + cout << phi4 << " " << theta4 << " " << rhosum << " 40" << endl; + // cout << phi1 << " " << 2*M_PI << " " << rhosum << " 40" << endl; + + // cout << endl; + cout << endl; + + cout << phi1 << " " << theta1 << " " << rhosum << " 40" << endl; + cout << phi2 << " " << theta2 << " " << rhosum << " 40" << endl; + cout << phi3 << " " << 0.0 << " " << rhosum << " 40" << endl; + cout << phi4 << " " << 0.0 << " " << rhosum << " 40" << endl; + // cout << phi1 << " " << theta1 << " " << rhosum << " 40" << endl; + + // cout << endl; + cout << endl; + + } + } else if(phi1 < 1.0) { + cout << phi1 << " " << theta1 << " " << rhosum << " 40" << endl; + cout << 0.0 << " " << theta2 << " " << rhosum << " 40" << endl; + cout << 0.0 << " " << theta3 << " " << rhosum << " 40" << endl; + cout << phi4 << " " << theta4 << " " << rhosum << " 40" << endl; + // cout << phi1 << " " << theta1 << " " << rhosum << " 40" << endl; + + // cout << endl; + cout << endl; + + cout << M_PI << " " << theta1 << " " << rhosum << " 40" << endl; + cout << phi2 << " " << theta2 << " " << rhosum << " 40" << endl; + cout << phi3 << " " << theta3 << " " << rhosum << " 40" << endl; + cout << M_PI << " " << theta4 << " " << rhosum << " 40" << endl; + // cout << M_PI << " " << theta1 << " " << rhosum << " 40" << endl; + + // cout << endl; + cout << endl; + + + } else { + cout << phi1 << " " << theta1 << " " << rhosum << " 40" << endl; + cout << M_PI << " " << theta2 << " " << rhosum << " 40" << endl; + cout << M_PI << " " << theta3 << " " << rhosum << " 40" << endl; + cout << phi4 << " " << theta4 << " " << rhosum << " 40" << endl; + // cout << phi1 << " " << theta1 << " " << rhosum << " 40" << endl; + + // cout << endl; + cout << endl; + + cout << 0.0 << " " << theta1 << " " << rhosum << " 40" << endl; + cout << phi2 << " " << theta2 << " " << rhosum << " 40" << endl; + cout << phi3 << " " << theta3 << " " << rhosum << " 40" << endl; + cout << 0.0 << " " << theta4 << " " << rhosum << " 40" << endl; + // cout << 0.0 << " " << theta1 << " " << rhosum << " 40" << endl; + + // cout << endl; + cout << endl; + } + + // cout << endl; + // cout << endl; + //delete[] tmp; + + } + } + cout << endl; + } + + for(int i = 0; i < 3; i++) { + delete[] result[i]; + } + delete[] result; + +} + +void AccumulatorCube::resetAccumulator() { + count = 0; + for(int i = 0; i < 6; i++) { + for(int j = 0; j < nrCells; j++) { + for(int k = 0; k < nrCells; k++) { + for(unsigned int l = 0; l < myConfigFileHough.Get_RhoNum(); l++) { + accumulator[i][j][k][l] = 0; + } + } + } + } +} + +bool AccumulatorCube::accumulate(double theta, double phi, double rho) { + count++; + double n[3]; + n[0] = cos(theta)*sin(phi); + n[1] = sin(theta)*sin(phi); + n[2] = cos(phi); + + buffer_point bp = coords_s2_to_cell(n, nrCells); + + int rhoindex = myConfigFileHough.Get_RhoNum() - 1; + + if(rho < myConfigFileHough.Get_RhoMax()) { + rhoindex = (int)(rho*((double)myConfigFileHough.Get_RhoNum()/(double)myConfigFileHough.Get_RhoMax())); + } + + accumulator[bp.face - 1][bp.i - 1][bp.j - 1][rhoindex]++; + lastbp = bp; + + return accumulator[bp.face - 1][bp.i - 1][bp.j - 1][rhoindex] > (int)myConfigFileHough.Get_AccumulatorMax(); +} + +double* AccumulatorCube::getMax(double &rho, double &theta, double &phi) { + int rhoindex = myConfigFileHough.Get_RhoNum() - 1; + + if(rho < myConfigFileHough.Get_RhoMax()) { + rhoindex = (int)(rho*((double)myConfigFileHough.Get_RhoNum()/(double)myConfigFileHough.Get_RhoMax())); + } + + double* result; + result = coords_cube_to_s2(lastbp, nrCells); + //cout << "N: " << result[0] << " " << result[1] << " " << result[2] << endl; + return result; +} + +void AccumulatorCube::accumulate(Point p) { + for(int i = 0; i < 6; i++) { + for(int j = 1; j <= nrCells; j++) { + for(int k = 1; k <= nrCells; k++) { + buffer_point bptmp; + bptmp.face = i + 1; + bptmp.i = j; + bptmp.j = k; + + double* n = coords_cube_to_s2(bptmp, nrCells); + Normalize3(n); + for(unsigned int l = 0; l < myConfigFileHough.Get_RhoNum(); l++) { + double rho = (l + 0.5) * myConfigFileHough.Get_RhoMax() / myConfigFileHough.Get_RhoNum(); + double distance = p.x * n[0] + p.y * n[1] + p.z * n[2]; + if(fabs(distance-rho) < myConfigFileHough.Get_MaxPointPlaneDist()) { + accumulator[i][j-1][k-1][l]++; + } + + } + delete[] n; + } + } + } +} + +double* AccumulatorCube::accumulateRet(Point p) { + // rho theta phi + count++; + double * angles = new double[3]; + for(int i = 0; i < 6; i++) { + for(int j = 1; j <= nrCells; j++) { + for(int k = 1; k <= nrCells; k++) { + buffer_point bptmp; + bptmp.face = i + 1; + bptmp.i = j; + bptmp.j = k; + + double* n = coords_cube_to_s2(bptmp, nrCells); + Normalize3(n); + for(unsigned int l = 0; l < myConfigFileHough.Get_RhoNum(); l++) { + double rho = (l + 0.5) * myConfigFileHough.Get_RhoMax() / myConfigFileHough.Get_RhoNum(); + double distance = p.x * n[0] + p.y * n[1] + p.z * n[2]; + if(fabs(distance-rho) < myConfigFileHough.Get_MaxPointPlaneDist()) { + accumulator[i][j-1][k-1][l]++; + if(((unsigned int)accumulator[i][j-1][k-1][l] > myConfigFileHough.Get_AccumulatorMax() + && (unsigned int)accumulator[i][j-1][k-1][l] > + count*myConfigFileHough.Get_PlaneRatio()) || + (unsigned int)accumulator[i][j-1][k-1][l] > 10*myConfigFileHough.Get_AccumulatorMax() + ) { + double polar[3]; + toPolar(n, polar); + angles[0] = rho; + angles[1] = polar[1]; + angles[2] = polar[0]; + return angles; + } + } + + } + delete[] n; + } + } + } + angles[0] = -1.0; + return angles; +} + +int* AccumulatorCube::accumulateAPHT(Point p) { + // rho theta phi + int tmpMax = 0; + int * angles = new int[4]; + for(int i = 0; i < 6; i++) { + for(int j = 1; j <= nrCells; j++) { + for(int k = 1; k <= nrCells; k++) { + buffer_point bptmp; + bptmp.face = i + 1; + bptmp.i = j; + bptmp.j = k; + + double* n = coords_cube_to_s2(bptmp, nrCells); + Normalize3(n); + for(unsigned int l = 0; l < myConfigFileHough.Get_RhoNum(); l++) { + double rho = (l + 0.5) * myConfigFileHough.Get_RhoMax() / myConfigFileHough.Get_RhoNum(); + double distance = p.x * n[0] + p.y * n[1] + p.z * n[2]; + if(fabs(distance-rho) < myConfigFileHough.Get_MaxPointPlaneDist()) { + accumulator[i][j-1][k-1][l]++; + if(accumulator[i][j-1][k-1][l] > tmpMax) { + angles[0] = l; + angles[1] = i; + angles[2] = j; + angles[3] = k; + tmpMax = accumulator[i][j-1][k-1][l]; + } + } + + } + delete[] n; + } + } + } + return angles; +} + +double* AccumulatorCube::getMax(int* cell) { + buffer_point bp; + bp.face = cell[2] + 1; + bp.i = cell[3] + 1; + bp.j = cell[4] + 1; + + + double rho = (cell[1] + 0.5) * + (double)myConfigFileHough.Get_RhoMax()/(double)myConfigFileHough.Get_RhoNum(); + double* polar = coords_cube_to_s2(bp, nrCells); + double* polar2 = new double[4]; + for(int i = 0; i < 3; i++) { + polar2[i] = polar[i]; + } + delete[] polar; + polar2[3] = rho; + return polar2; +} + +//void AccumulatorCube::getMax() { +multiset* AccumulatorCube::getMax() { + multiset* maxlist = new multiset(); + for(int i = 0; i < 6; i++) { + for(int j = 0; j < nrCells; j++) { + for(int k = 0; k < nrCells; k++) { + for(unsigned int l = 0; l < myConfigFileHough.Get_RhoNum(); l++) { + int* tmp = new int[5]; + tmp[0] = accumulator[i][j][k][l]; + tmp[1] = l; + tmp[2] = i; + tmp[3] = j; + tmp[4] = k; + maxlist->insert(tmp); + } + } + } + } + return maxlist; +} + +void AccumulatorCube::peakWindow(int size) { + for(int i = 0; i < 6; i++) { + for(int j = 0; j < nrCells - size; j++) { + for(int k = 0; k < nrCells - size; k++) { + for(unsigned int l = 0; l < myConfigFileHough.Get_RhoNum() - size; l++) { + int max = 0; + for(int ji = j; ji < j + size; ji++) { + for(int ki = k; ki < k + size; ki++) { + for(unsigned int li = l; li < l + size; li++) { + if(accumulator[i][ji][ki][li] > max) { + max = accumulator[i][ji][ki][li]; + } + } + } + } + for(int ji = j; ji < j + size; ji++) { + for(int ki = k; ki < k + size; ki++) { + for(unsigned int li = l; li < l + size; li++) { + if(accumulator[i][ji][ki][li] < max) { + accumulator[i][ji][ki][li] = 0; + } + } + } + } + } + } + } + } +} + + +/*** HERE BEGINS THE ACCUMULATORBALL IMPROVED ***/ + +AccumulatorBallI::AccumulatorBallI(ConfigFileHough myCfg) { + count = 0; + int countCells = 0; + myConfigFileHough = myCfg; + + int counter = 0; + ballNr = new int[myConfigFileHough.Get_PhiNum()]; + step = 180.0/myConfigFileHough.Get_PhiNum(); + + //double MAX_A = M_PI * (2 * fabs(0 - cos(rad(90- step))) + sin(rad(90 - step)) * sin(rad(90 - step)) + 1 * 1); + + double h_0 = cos(rad(90 - step)); + double MAX_A = (2.0 * M_PI * h_0) / myConfigFileHough.Get_ThetaNum(); + double h_top = MAX_A /(2.0 * M_PI); + phi_top_rad = acos(1 - h_top); + phi_top_deg = deg(phi_top_rad); + step = (180.0 - 2.0 * phi_top_deg) / (double)(myConfigFileHough.Get_PhiNum() - 2.0); + + double phi; + ballNr[counter] = 1; + ballNr[myConfigFileHough.Get_PhiNum() - 1 - counter] = 1; + counter++; + + for(phi = phi_top_deg; phi < 90; phi+=step) { + double h_i = cos(rad(phi)) - cos(rad(phi + step)); + double a_i = 2 * M_PI * h_i; + ballNr[counter] = a_i / MAX_A; + ballNr[myConfigFileHough.Get_PhiNum() - 1 - counter] = a_i / MAX_A; + //cout << counter << " " << ballNr[counter] << " " << a_i << " " << MAX_A << endl; + //cout << myConfigFileHough.Get_PhiNum() - 1 - counter << " " << ballNr[myConfigFileHough.Get_PhiNum() - 1 - counter] << " " << a_i << " " << MAX_A << endl; + counter++; + } + /* + for(int i = 0; i < myConfigFileHough.Get_PhiNum(); i++) { + cout << i << ": " << ballNr[i] << endl; + } + cout << "BallNR erzeugt" << endl; + */ + + accumulator = new int**[myConfigFileHough.Get_RhoNum()]; + + for(unsigned int i = 0; i < myConfigFileHough.Get_RhoNum(); i++) { + accumulator[i] = new int*[myConfigFileHough.Get_PhiNum()]; + for(unsigned int j = 0; j < myConfigFileHough.Get_PhiNum(); j++) { + accumulator[i][j] = new int[ballNr[j]]; + for(int k = 0; k < ballNr[j]; k++) { + accumulator[i][j][k] = 0; + countCells++; + } + } + } + cout << "CountCells " << countCells << endl; +} + +AccumulatorBallI::~AccumulatorBallI() { + + for(unsigned int i = 0; i < myConfigFileHough.Get_RhoNum(); i++) { + for(unsigned int j = 0; j < myConfigFileHough.Get_PhiNum(); j++) { + delete[] accumulator[i][j]; + } + delete[] accumulator[i]; + + } + delete[] accumulator; + delete[] ballNr; + +} + +void AccumulatorBallI::printAccumulator() { +//TODO + int sum = 0; + for(unsigned int i = 0; i < myConfigFileHough.Get_PhiNum(); i++) { + sum += ballNr[i]; + } + //cout << "Wir haben " << sum << "Zellen!" << endl; + for(unsigned int i = 0; i < myConfigFileHough.Get_PhiNum(); i++) { + for(int j = 0; j < ballNr[i]; j++) { + double phi1 = i * M_PI / (myConfigFileHough.Get_PhiNum()*0.99999999); + double phi2 = (i+1) * M_PI / (myConfigFileHough.Get_PhiNum()*0.999999999); + double theta1 = j * 2*M_PI / ballNr[i]; + double theta2 = (j+1) * 2*M_PI / ballNr[i]; + if(theta2 > 2*M_PI) theta2 = 2*M_PI; + if(phi2 > M_PI) { + phi2 = M_PI; + } + int rhosum = 0; + /* + for(int k = 0; k < myConfigFileHough.Get_RhoNum(); k++) { + rhosum += accumulator[k][i][j]; + } + */ + rhosum = accumulator[33][i][j]; + cout << phi1 << " " << theta1 << " " << rhosum << " 40" << endl; + cout << phi2 << " " << theta1 << " " << rhosum << " 40" << endl; + cout << phi2 << " " << theta2 << " " << rhosum << " 40" << endl; + cout << phi1 << " " << theta2 << " " << rhosum << " 40" << endl; + cout << endl; + } + + //cout << endl; + } +} + +void AccumulatorBallI::resetAccumulator() { + +//TODO + count = 0; + for(unsigned int i = 0; i < myConfigFileHough.Get_RhoNum(); i++) { + for(unsigned int j = 0; j < myConfigFileHough.Get_PhiNum(); j++) { + int bNr = ballNr[j]; + for(int k = 0; k < bNr; k++) { + accumulator[i][j][k] = 0; + } + } + } +} + +bool AccumulatorBallI::accumulate(double theta, double phi, double rho) { +//TODO + count++; + int rhoindex = myConfigFileHough.Get_RhoNum() - 1; + + if(rho < myConfigFileHough.Get_RhoMax()) { + rhoindex = (int)((rho*(double)myConfigFileHough.Get_RhoNum()/(double)myConfigFileHough.Get_RhoMax())); + } + + int phiindex = (int)(phi*(((double)myConfigFileHough.Get_PhiNum()*0.9999999999)/(M_PI))); + int bNr = ballNr[phiindex]; + int thetaindex = (int)(theta*((bNr*0.9999999999)/(2*M_PI))); + if(thetaindex >= bNr) { + cout << "duet"; + } + //thetaindex = thetaindex % ballNr[phiindex]; + accumulator[rhoindex][phiindex][thetaindex]++; + return ((unsigned int)accumulator[rhoindex][phiindex][thetaindex] >= myConfigFileHough.Get_AccumulatorMax()); +} + +void AccumulatorBallI::accumulate(Point p) { + for(unsigned int i = 0; i < myConfigFileHough.Get_PhiNum(); i++) { + double phi = phi_top_rad + (i-0.5) * rad(step); + for(int j = 0; j < ballNr[i]; j++) { + double theta = (j+0.5) * 2*M_PI / ballNr[i]; + if(theta > 2*M_PI) theta = 2*M_PI; + if(phi > M_PI) { + phi = M_PI; + } + double n[3]; + if(i == 0) { + n[0] = 0.0; + n[1] = 0.0; + n[2] = 1.0; + } else if (i == myConfigFileHough.Get_RhoNum() - 1) { + n[0] = 0.0; + n[1] = 0.0; + n[2] = -1.0; + } else { + n[0] = cos(theta)*sin(phi); + n[1] = sin(theta)*sin(phi); + n[2] = cos(phi); + Normalize3(n); + } + for(unsigned int k = 0; k < myConfigFileHough.Get_RhoNum(); k++) { + double rho = (k + 0.5) * (double)myConfigFileHough.Get_RhoMax() / (double)myConfigFileHough.Get_RhoNum(); + double distance = p.x * n[0] + p.y * n[1] + p.z * n[2]; + if(fabs(distance-rho) < myConfigFileHough.Get_MaxPointPlaneDist()) { + accumulator[k][i][j]++; + } + + } + } + } + +} +double* AccumulatorBallI::accumulateRet(Point p) { + count++; +//TODO + // rho theta phi + double* angles = new double[3]; + for(unsigned int i = 0; i < myConfigFileHough.Get_PhiNum(); i++) { + double phi = (i+0.5) * M_PI / (myConfigFileHough.Get_PhiNum()*0.999999999); + for(int j = 0; j < ballNr[i]; j++) { + double theta = (j+0.5) * 2*M_PI / ballNr[i]; + if(theta > 2*M_PI) theta = 2*M_PI; + if(phi > M_PI) { + phi = M_PI; + } + double n[3]; + n[0] = cos(theta)*sin(phi); + n[1] = sin(theta)*sin(phi); + n[2] = cos(phi); + Normalize3(n); + for(unsigned int k = 0; k < myConfigFileHough.Get_RhoNum(); k++) { + double rho = (k + 0.5) * myConfigFileHough.Get_RhoMax() / myConfigFileHough.Get_RhoNum(); + double distance = p.x * n[0] + p.y * n[1] + p.z * n[2]; + if(fabs(distance-rho) < myConfigFileHough.Get_MaxPointPlaneDist()) { + accumulator[k][i][j]++; + if(((unsigned int)accumulator[k][i][j] > + myConfigFileHough.Get_AccumulatorMax() && (unsigned + int)accumulator[k][i][j] > count*myConfigFileHough.Get_PlaneRatio()) + || (unsigned int)accumulator[k][i][j] > 10*myConfigFileHough.Get_AccumulatorMax() ) { + angles[0] = rho; + angles[1] = theta; + angles[2] = phi; + return angles; + } + } + + } + } + } + angles[0] = -1; + return angles; +} + +int* AccumulatorBallI::accumulateAPHT(Point p) { + +//TODO + // rho theta phi + int tmpMax = 0; + int* angles = new int[4]; + for(unsigned int i = 0; i < myConfigFileHough.Get_PhiNum(); i++) { + double phi = (i+0.5) * M_PI / (myConfigFileHough.Get_PhiNum()*0.9999999); + for(int j = 0; j < ballNr[i]; j++) { + double theta = (j+0.5) * 2*M_PI / ballNr[i]; + if(theta > 2*M_PI) theta = 2*M_PI; + if(phi > M_PI) { + phi = M_PI; + } + double n[3]; + n[0] = cos(theta)*sin(phi); + n[1] = sin(theta)*sin(phi); + n[2] = cos(phi); + Normalize3(n); + for(unsigned int k = 0; k < myConfigFileHough.Get_RhoNum(); k++) { + double rho = (k + 0.5) * myConfigFileHough.Get_RhoMax() / myConfigFileHough.Get_RhoNum(); + double distance = p.x * n[0] + p.y * n[1] + p.z * n[2]; + if(fabs(distance-rho) < myConfigFileHough.Get_MaxPointPlaneDist()) { + accumulator[k][i][j]++; + if(accumulator[k][i][j] > tmpMax) { + angles[1] = k; + angles[2] = j; + angles[3] = i; + angles[0] = tmpMax = accumulator[k][i][j]; + } + } + + } + } + } + return angles; +} + +double* AccumulatorBallI::getMax(double &rho, double &theta, double &phi) { +//TODO was?? + + unsigned int rhoindex = myConfigFileHough.Get_RhoNum() - 1; + + if(rho < myConfigFileHough.Get_RhoMax()) { + rhoindex = + (int)(rho*((double)myConfigFileHough.Get_RhoNum()/(double)myConfigFileHough.Get_RhoMax())); + } + + unsigned int phiindex = (int)(phi*(((double)myConfigFileHough.Get_PhiNum())/(M_PI))); + if(phiindex == myConfigFileHough.Get_PhiNum()) phiindex--; + int bNr = ballNr[phiindex]; + int thetaindex = (int)(theta*((bNr + 1)/(2*M_PI))); + thetaindex = thetaindex % bNr; + + phi = (0.5 + phiindex) * (double)(M_PI / (double)myConfigFileHough.Get_PhiNum()); + theta = (0.5 + thetaindex) * (double)(2.0 * M_PI / bNr); + rho = (rhoindex + 0.5) * (double)myConfigFileHough.Get_RhoMax()/(double)myConfigFileHough.Get_RhoNum(); + return polar2normal(theta, phi); +} +double* AccumulatorBallI::getMax(int* cell) { + double * polar; + if(cell[3] == 0) { + polar = new double[4]; + polar[0] = 0.0; + polar[1] = 0.0; + polar[2] = 1.0; + } else if((unsigned int)cell[3] == myConfigFileHough.Get_PhiNum() - 1) { + polar = new double[4]; + polar[0] = 0.0; + polar[1] = 0.0; + polar[2] = -1.0; + } else { + double phi = phi_top_rad + (-0.5 + cell[3]) * rad(step); + double bNr = ballNr[cell[3]]; + double theta = (0.5 + cell[2]) * (double)(2.0 * M_PI / bNr); + polar = polar2normal(theta, phi); + } + + double rho = (cell[1] + 0.5) * + (double)myConfigFileHough.Get_RhoMax()/(double)myConfigFileHough.Get_RhoNum(); + if(isnan(polar[0])) { + cout << cell[1] << " " << cell[2] << " " << cell[3] << endl; + //cout << theta <<" bla " << phi << endl; + } + polar[3] = rho; + return polar; +} + +multiset* AccumulatorBallI::getMax() { +//void AccumulatorBallI::getMax() { + multiset* maxlist = new multiset(); + //for(unsigned int i = 0; i < 1; i++) { + for(unsigned int i = 0; i < myConfigFileHough.Get_RhoNum(); i++) { + for(unsigned int j = 0; j < myConfigFileHough.Get_PhiNum(); j++) { + int bNr = ballNr[j]; + for(int k = 0; k < bNr; k++) { + int * tmp = new int[4]; + tmp[0] = accumulator[i][j][k]; + tmp[1] = i; + tmp[2] = k; + tmp[3] = j; + maxlist->insert(tmp); + double * polar; + double phi; + double theta = 0.0; + if(tmp[3] == 0) { + polar = new double[4]; + polar[0] = 0.0; + polar[1] = 0.0; + polar[2] = 1.0; + phi = 0; + } else if((unsigned int)tmp[3] == myConfigFileHough.Get_PhiNum() - 1) { + polar = new double[4]; + polar[0] = 0.0; + polar[1] = 0.0; + polar[2] = -1.0; + phi = M_PI; + } else { + phi = phi_top_rad + (-0.5 + tmp[3]) * rad(step); + int bNr = ballNr[tmp[3]]; + theta = (0.5 + tmp[2]) * (double)(2.0 * M_PI / (double)bNr); + polar = polar2normal(theta, phi); + } + //cout << polar[0] << " " << polar[1] << " " << polar[2] << " " << phi << " " << theta << endl; + } + } + } + cout << "Maxlist Size:" << maxlist->size() << endl; + return maxlist; +} +void AccumulatorBallI::peakWindow(int size) { + //cout << "Wir haben " << sum << "Zellen!" << endl; + for(unsigned int i = 0; i < myConfigFileHough.Get_PhiNum() - size; i++) { + //cout << "Peak " << i << endl; + for(int j = 0; j < ballNr[i] - size; j++) { + + for(unsigned int k = 0; k < myConfigFileHough.Get_RhoNum() - size; k++) { + int max = 0; + for(unsigned int ii = i; (ii < (i + size)) && (ii < myConfigFileHough.Get_PhiNum()); ii++) { + for(int ji = j; (ji < (j + size)) && (ji < ballNr[ii]); ji++) { + for(unsigned int ki = k; (ki < (k + size)) && (ki < myConfigFileHough.Get_RhoNum()); ki++) { + if(accumulator[ki][ii][ji] > max) { + max = accumulator[ki][ii][ji]; + } + } + } + } + for(unsigned int ii = i; ii < i + size && ii < myConfigFileHough.Get_PhiNum(); ii++) { + for(int ji = j; ji < j + size && ji < ballNr[ii]; ji++) { + for(unsigned int ki = k; ki < k + size && ki < myConfigFileHough.Get_RhoNum(); ki++) { + if(accumulator[ki][ii][ji] < max) { + accumulator[ki][ii][ji] = 0; + } + } + } + } + } + } + } +} + diff --git a/.svn/pristine/68/688379589b8bbf3761896bafa6be9eb2f1202d97.svn-base b/.svn/pristine/68/688379589b8bbf3761896bafa6be9eb2f1202d97.svn-base new file mode 100644 index 0000000..0987f3e --- /dev/null +++ b/.svn/pristine/68/688379589b8bbf3761896bafa6be9eb2f1202d97.svn-base @@ -0,0 +1,313 @@ +/* + * serverInterface implementation + * + * Copyright (C) Thomas Escher, Kai Lingemann + * + * Released under the GPL version 3. + * + */ + +#include "scanserver/serverInterface.h" + +#include +using std::cout; +using std::cerr; +using std::endl; +#include +#include +#include + +#include +using namespace boost::filesystem; +using namespace boost::interprocess; + +#include "scanserver/defines.h" +#include "scanserver/frame_io.h" +#include "scanserver/serverScan.h" +#include "scanio/scan_io.h" + +#ifndef _MSC_VER +#include // mlock for avoiding swaps +#endif + +#ifdef WITH_METRICS +#include "slam6d/metrics.h" +#endif //WITH_METRICS + + + +SharedScanVector* ServerInterface::readDirectory(const char * dir_path, IOType type, unsigned int start, unsigned int end) +{ + // INFO + cout << "[Scanserver] Reading directory '" << dir_path << "' ... "; + + // create an instance of ScanIO + ScanIO* sio = ScanIO::getScanIO(type); + + // query available scans in the directory from the ScanIO + std::list identifiers(sio->readDirectory(dir_path, start, end)); + + // create a vector for returning + SharedScanVector* scans = segment_manager->construct(anonymous_instance)(allocator); + scans->reserve(identifiers.size()); + + // INFO + cout << identifiers.size() << " scans found." << endl; + + // share the directory path string between all scans because it's the same + // BUG: before boost-1.47, gcc -O2 and higher caused several boost::ipc:string instances having errors with garbage characters in between and/or more at the end, this is to avoid that problem + SharedStringSharedPtr dir_path_ptr = make_managed_shared_ptr( + segment_manager->construct(anonymous_instance)(dir_path, allocator), *segment_manager); + + // for each identifier, create a scan + for(std::list::iterator it = identifiers.begin(); it != identifiers.end(); ++it) { + // first try to get the scan by matching in the global scan vector + SharedScan* scan = findScan(dir_path_ptr, it->c_str(), type); + // otherwise create a new one and insert it into the global vector + if(!scan) { + // TODO: catch exceptions/errors + scan = static_cast( + segment_manager->construct(anonymous_instance) + (allocator, dir_path_ptr, it->c_str(), type, &m_manager) + ); + m_scans.push_back(offset_ptr(scan)); + } + // insert scan into return scan vector + scans->push_back(offset_ptr(scan)); + } + + return scans; +} + +bool ServerInterface::loadCacheObject(CacheObject* obj) +{ + // INFO + //cout << "ServerInterface::loadCacheObject..." << endl; + + // cache manager handles all the io and allocation issues by calling the cache handler + return m_manager.loadCacheObject(obj); +} + +void ServerInterface::allocateCacheObject(CacheObject* obj, unsigned int size) +{ + // INFO + //cout << "ServerInterface::allocateCacheObject (" << size << ")" << endl; + // allocate enough space for a cache object + m_manager.allocateCacheObject(obj, size); + + // INFO + //cout << endl; +} + +void ServerInterface::invalidateCacheObject(CacheObject* obj) +{ + m_manager.invalidateCacheObject(obj); +} + +void ServerInterface::getPose(SharedScan* scan) +{ + // INFO + //cout << "[" << scan->getIdentifier() << "] getPose()"; + + // TODO: catch exceptions + double* pose = segment_manager->construct(anonymous_instance)[6](); + ScanIO* sio = ScanIO::getScanIO(scan->getIOType()); + // TODO: catch more exceptions + sio->readPose(scan->getDirPath(), scan->getIdentifier(), pose); + static_cast(scan)->setPose(pose); + + // INFO + //cout << endl; +} + +void ServerInterface::addFrame(SharedScan* scan) +{ + static_cast(scan)->getFrames().push_back(Frame()); +} + +void ServerInterface::loadFramesFile(SharedScan* scan) +{ + FrameIO::loadFile(scan->getDirPath(), scan->getIdentifier(), static_cast(scan)->getFrames()); +} + +void ServerInterface::saveFramesFile(SharedScan* scan) +{ + FrameIO::saveFile(scan->getDirPath(), scan->getIdentifier(), static_cast(scan)->getFrames()); +} + +void ServerInterface::clearFrames(SharedScan* scan) +{ + static_cast(scan)->getFrames().clear(); +} + +std::size_t ServerInterface::getCacheSize() +{ + return m_cache_size; +} + +void ServerInterface::printMetrics() +{ +#ifdef WITH_METRICS + ServerMetric::print(); +#endif //WITH_METRICS +} + +SharedScan* ServerInterface::findScan(const SharedStringSharedPtr& dir_path, const char* identifier, IOType type) const +{ + // create a stack local scan to compare with all other scans + SharedScan scan(allocator, dir_path, identifier, type); + for(SharedScanVector::const_iterator it = m_scans.begin(); it != m_scans.end(); ++it) { + if(scan == *(*it)) + return it->get(); + } + return 0; +} + +ServerInterface* ServerInterface::create(std::size_t data_size, std::size_t cache_size) +{ + // remove any existing shared memory that wasn't cleaned up + shared_memory_object::remove(SHM_NAME_DATA); + // create the shared memory + if(m_msm != 0) + throw std::runtime_error("Could not create ServerInterface because shared memory already exists"); + try { + m_msm = new managed_shared_memory(create_only, SHM_NAME_DATA, data_size); +#ifndef WIN32 + cout << " Locking data memory... " << std::flush; + int ret = mlock(m_msm->get_address(), m_msm->get_size()); + if(ret == 0) + cout << "success."; + else if(ret == -EPERM) + cout << "unsuccessful, no permissions."; + else if(ret == -ENOMEM) + cout << "unsuccessful, RLIMIT_MEMLOCK too small."; + else + cout << "unsuccessful, error=" << ret << "."; + cout << endl; +#endif + } catch(interprocess_exception& e) { + throw std::runtime_error(std::string("Could not create shared memory: ") + e.what()); + } + // create server interface and set the client pointer to it + ServerInterface* server = m_msm->construct(unique_instance)(m_msm->get_segment_manager(), SHM_NAME_CACHE, cache_size); + offset_ptr *ptr = m_msm->construct >(unique_instance)(); + (*ptr) = reinterpret_cast(server); + return server; +} + +void ServerInterface::destroy() +{ + // delete the server instance first + try { + // send message to quit + ServerInterface* server = m_msm->find(unique_instance).first; + server->cleanup(); +/* resetting conditions and mutexes won't work, so just clean up manually + server->m_condition_server.notify_one(); + server->m_condition_client.notify_one(); + server->m_mutex_client.unlock(); + server->m_mutex_server.unlock(); + m_msm->destroy(unique_instance); +*/ + } catch(...) { + // whatever + } + // clean up the memory + if(m_msm != 0) { + delete m_msm; + m_msm = 0; + shared_memory_object::remove(SHM_NAME_DATA); + shared_memory_object::remove(SHM_NAME_CACHE); + } +} + +ServerInterface::ServerInterface(managed_shared_memory::segment_manager * sm, const char* shm_name, std::size_t cache_size) : + ClientInterface(sm), + m_scans(allocator), + m_manager(sm, shm_name, cache_size), + m_cache_size(cache_size) +{ +} + +ServerInterface::~ServerInterface() +{ +} + +void ServerInterface::cleanup() +{ + ScanIO::clearScanIOs(); +} + +void ServerInterface::run() +{ + // take ownership of the server mutex as long as the server is busy + scoped_lock lock(m_mutex_server); + + // run the shop + bool running = true; + while(running) { + // wait for input notification + m_condition_server.wait(lock); + + // clear the error message because the client isn't responsible for it + m_error_message.clear(); + + // process the input + // TEST: simple int pod for message type + try { + if(m_message == MESSAGE_STOP) { + running = false; + cout << "Stopping execution by MESSAGE_STOP request." << endl; + } else + if(m_message == MESSAGE_READ_DIRECTORY) { + m_scanvector_ptr = readDirectory(m_arg_string_1.c_str(), m_arg_io_type, m_arg_uint_1, m_arg_uint_2); + } else + if(m_message == MESSAGE_LOAD_CACHE_OBJECT) { + m_arg_uint_1 = (loadCacheObject(m_cacheobject_ptr.get()) == true? 1: 0); + } else + if(m_message == MESSAGE_ALLOCATE_CACHE_OBJECT) { + allocateCacheObject(m_cacheobject_ptr.get(), m_arg_uint_1); + } else + if(m_message == MESSAGE_INVALIDATE_CACHE_OBJECT) { + invalidateCacheObject(m_cacheobject_ptr.get()); + } else + if(m_message == MESSAGE_GET_POSE) { + getPose(m_sharedscan_ptr.get()); + } else + if(m_message == MESSAGE_ADD_FRAME) { + addFrame(m_sharedscan_ptr.get()); + } else + if(m_message == MESSAGE_LOAD_FRAMES_FILE) { + loadFramesFile(m_sharedscan_ptr.get()); + } else + if(m_message == MESSAGE_SAVE_FRAMES_FILE) { + saveFramesFile(m_sharedscan_ptr.get()); + } else + if(m_message == MESSAGE_CLEAR_FRAMES) { + clearFrames(m_sharedscan_ptr.get()); + } else + if(m_message == MESSAGE_GET_CACHE_SIZE) { + m_arg_size_t = getCacheSize(); + } else + if(m_message == MESSAGE_PRINT_METRICS) { + printMetrics(); + } else + { + cout << "WAH! I do not know thee: " << (unsigned int)m_message << endl; + } + } catch(bad_alloc& e) { + cerr << "Allocation error (you may need to increase the data_size): " << e.what() << endl; + m_error_message = e.what(); + } catch(std::runtime_error& e) { + // don't repeat this for the client + // cerr << "RUNTIME ERROR: " << e.what() << endl; + m_error_message = e.what(); + } + // clear message + m_message = MESSAGE_NONE; + + // notify client about completion + if(running) + m_condition_client.notify_one(); + } +} diff --git a/.svn/pristine/68/688d44b78f3e8319d07aa174a4cd5a7682d8712a.svn-base b/.svn/pristine/68/688d44b78f3e8319d07aa174a4cd5a7682d8712a.svn-base new file mode 100644 index 0000000..7d8ec9a --- /dev/null +++ b/.svn/pristine/68/688d44b78f3e8319d07aa174a4cd5a7682d8712a.svn-base @@ -0,0 +1,55 @@ +#ifndef __RANSAC_H__ +#define __RANSAC_H__ + +#include "shape.h" +#include "slam6d/scan.h" +#include "shapes/ransac_Boctree.h" + +// TODO implement some parameters to modify ransac (maybe in CollisionShape?) +template +void Ransac(CollisionShape &shape, Scan *scan, vector *best_points = 0) { + int best_score = 0; + CollisionShape *best = shape.copy(); + + // stores 3 sample points + vector ps; + // create octree from the points + DataXYZ xyz(scan->get("xyz reduced")); + RansacOctTree *oct = new RansacOctTree(PointerArray(xyz).get(), xyz.size(), 50.0 ); + + cout << "start 5000 iterations" << endl; + for(int i = 0; i < 5000; i++) { + ps.clear(); + // randomly select points from the octree + oct->DrawPoints(ps, shape.getNrPoints()); + // compute shape parameters from points + if ( shape.hypothesize(ps) ) { + // count number of points on the shape + int r = oct->PointsOnShape(shape); + if (r > best_score) { + if (best) delete best; + // remember this best fitted shape + best_score = r; + best = shape.copy(); + } + } + } + cout << "5000 iterations done" << endl; + if (best_points) { + best_points->clear(); + oct->PointsOnShape(*best, *best_points); + cout << "Nr points before refinement " << best_points->size() << endl; + best->refine(best_points); + best_points->clear(); + oct->PointsOnShape(*best, *best_points); + cout << "Nr points after refinement " << best_points->size() << endl; + } + shape = *best; + delete best; + + delete oct; + + +} + +#endif diff --git a/.svn/pristine/68/68b3f120e05611be41043de428e7dea84eddff6e.svn-base b/.svn/pristine/68/68b3f120e05611be41043de428e7dea84eddff6e.svn-base new file mode 100644 index 0000000..3357521 --- /dev/null +++ b/.svn/pristine/68/68b3f120e05611be41043de428e7dea84eddff6e.svn-base @@ -0,0 +1,36 @@ +/** + * @file + * @brief IO of a 3D scan in PLY format + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SCAN_IO_PLY_H__ +#define __SCAN_IO_PLY_H__ + +#include +using std::string; +#include +using std::vector; + +#include "scan_io.h" + +/** + * @brief 3D scan loader for PLY scans + * + * The compiled class is available as shared object file + */ +class ScanIO_ply : public ScanIO { +public: + virtual int readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss); +}; + +// Since this shared object file is loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/.svn/pristine/69/694ad0d54687a93ced5b14df8140ea5c2ee84763.svn-base b/.svn/pristine/69/694ad0d54687a93ced5b14df8140ea5c2ee84763.svn-base new file mode 100644 index 0000000..71b514d --- /dev/null +++ b/.svn/pristine/69/694ad0d54687a93ced5b14df8140ea5c2ee84763.svn-base @@ -0,0 +1,436 @@ +// Copyright (C) 2007 by Crist贸bal Carnero Li帽谩n +// grendel.ccl@gmail.com +// +// This file is part of cvBlob. +// +// cvBlob is free software: you can redistribute it and/or modify +// it under the terms of the Lesser GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// cvBlob is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// Lesser GNU General Public License for more details. +// +// You should have received a copy of the Lesser GNU General Public License +// along with cvBlob. If not, see . +// + +#include + +#define _USE_MATH_DEFINES +#include + +#include +#include +#include +#include +using namespace std; + +#if (defined(_WIN32) || defined(__WIN32__) || defined(__TOS_WIN__) || defined(__WINDOWS__) || (defined(__APPLE__) & defined(__MACH__))) +#include +#else +#include +#endif + +#include "cvblob.h" + +#ifdef M_PI +const double pi = M_PI; +#else +const double pi = std::atan(1.)*4.; +#endif // M_PI + +namespace cvb +{ + + void cvRenderContourChainCode(CvContourChainCode const *contour, IplImage const *img, CvScalar const &color) + { + CV_FUNCNAME("cvRenderContourChainCode"); + __CV_BEGIN__; + { + CV_ASSERT(img&&(img->depth==IPL_DEPTH_8U)&&(img->nChannels==3)); + + int stepDst = img->widthStep/(img->depth/8); + int img_width = img->width; + int img_height = img->height; + int img_offset = 0; + + if(img->roi) + { + img_width = img->roi->width; + img_height = img->roi->height; + img_offset = (img->nChannels * img->roi->xOffset) + (img->roi->yOffset * stepDst); + } + + unsigned char *imgData = (unsigned char *)img->imageData + img_offset; + + unsigned int x = contour->startingPoint.x; + unsigned int y = contour->startingPoint.y; + + for (CvChainCodes::const_iterator it=contour->chainCode.begin(); it!=contour->chainCode.end(); ++it) + { + imgData[img->nChannels*x+img->widthStep*y+0] = (unsigned char)(color.val[0]); // Blue + imgData[img->nChannels*x+img->widthStep*y+1] = (unsigned char)(color.val[1]); // Green + imgData[img->nChannels*x+img->widthStep*y+2] = (unsigned char)(color.val[2]); // Red + + x += cvChainCodeMoves[*it][0]; + y += cvChainCodeMoves[*it][1]; + } + } + __CV_END__; + } + + CvContourPolygon *cvConvertChainCodesToPolygon(CvContourChainCode const *cc) + { + CV_FUNCNAME("cvConvertChainCodesToPolygon"); + __CV_BEGIN__; + { + CV_ASSERT(cc!=NULL); + + CvContourPolygon *contour = new CvContourPolygon; + + unsigned int x = cc->startingPoint.x; + unsigned int y = cc->startingPoint.y; + contour->push_back(cvPoint(x, y)); + + if (cc->chainCode.size()) + { + CvChainCodes::const_iterator it=cc->chainCode.begin(); + CvChainCode lastCode = *it; + + x += cvChainCodeMoves[*it][0]; + y += cvChainCodeMoves[*it][1]; + + ++it; + + for (; it!=cc->chainCode.end(); ++it) + { + if (lastCode!=*it) + { + contour->push_back(cvPoint(x, y)); + lastCode=*it; + } + + x += cvChainCodeMoves[*it][0]; + y += cvChainCodeMoves[*it][1]; + } + } + + return contour; + } + __CV_END__; + } + + void cvRenderContourPolygon(CvContourPolygon const *contour, IplImage *img, CvScalar const &color) + { + CV_FUNCNAME("cvRenderContourPolygon"); + __CV_BEGIN__; + { + CV_ASSERT(img&&(img->depth==IPL_DEPTH_8U)&&(img->nChannels==3)); + + CvContourPolygon::const_iterator it=contour->begin(); + + if (it!=contour->end()) + { + unsigned int fx, x, fy, y; + fx = x = it->x; + fy = y = it->y; + + for (; it!=contour->end(); ++it) + { + cvLine(img, cvPoint(x, y), cvPoint(it->x, it->y), color, 1); + x = it->x; + y = it->y; + } + + cvLine(img, cvPoint(x, y), cvPoint(fx, fy), color, 1); + } + } + __CV_END__; + } + + double cvContourPolygonArea(CvContourPolygon const *p) + { + CV_FUNCNAME("cvContourPolygonArea"); + __CV_BEGIN__; + { + CV_ASSERT(p!=NULL); + + if (p->size()<=2) + return 1.; + + CvContourPolygon::const_iterator it=p->begin(); + CvPoint lastPoint = p->back(); + + double a = 0.; + + for (; it!=p->end(); ++it) + { + a += lastPoint.x*it->y - lastPoint.y*it->x; + lastPoint = *it; + } + + return a*0.5; + } + __CV_END__; + } + + double cvContourChainCodePerimeter(CvContourChainCode const *c) + { + CV_FUNCNAME("cvContourChainCodePerimeter"); + __CV_BEGIN__; + { + CV_ASSERT(c!=NULL); + + double perimeter = 0.; + + for(CvChainCodes::const_iterator it=c->chainCode.begin(); it!=c->chainCode.end(); ++it) + { + if ((*it)%2) + perimeter+=sqrt(1.+1.); + else + perimeter+=1.; + } + + return perimeter; + } + __CV_END__; + } + + double cvContourPolygonPerimeter(CvContourPolygon const *p) + { + CV_FUNCNAME("cvContourPolygonPerimeter"); + __CV_BEGIN__; + { + CV_ASSERT(p!=NULL); + + double perimeter = cvDistancePointPoint((*p)[p->size()-1], (*p)[0]); + + for (unsigned int i=0; isize()-1; i++) + perimeter+=cvDistancePointPoint((*p)[i], (*p)[i+1]); + + return perimeter; + } + __CV_END__; + } + + double cvContourPolygonCircularity(const CvContourPolygon *p) + { + CV_FUNCNAME("cvContourPolygonCircularity"); + __CV_BEGIN__; + { + CV_ASSERT(p!=NULL); + + double l = cvContourPolygonPerimeter(p); + double c = (l*l/cvContourPolygonArea(p)) - 4.*pi; + + if (c>=0.) + return c; + else // This could happen if the blob it's only a pixel: the perimeter will be 0. Another solution would be to force "cvContourPolygonPerimeter" to be 1 or greater. + return 0.; + } + __CV_END__; + } + + void simplifyPolygonRecursive(CvContourPolygon const *p, int const i1, int const i2, bool *pnUseFlag, double const delta) + { + CV_FUNCNAME("cvSimplifyPolygonRecursive"); + __CV_BEGIN__; + { + int endIndex = (i2<0)?p->size():i2; + + if (abs(i1-endIndex)<=1) + return; + + CvPoint firstPoint = (*p)[i1]; + CvPoint lastPoint = (i2<0)?p->front():(*p)[i2]; + + double furtherDistance=0.; + int furtherIndex=0; + + for (int i=i1+1; i=delta)&&(d>furtherDistance)) + { + furtherDistance=d; + furtherIndex=i; + } + } + + if (furtherIndex) + { + pnUseFlag[furtherIndex]=true; + + simplifyPolygonRecursive(p, i1, furtherIndex, pnUseFlag, delta); + simplifyPolygonRecursive(p, furtherIndex, i2, pnUseFlag, delta); + } + } + __CV_END__; + } + + CvContourPolygon *cvSimplifyPolygon(CvContourPolygon const *p, double const delta) + { + CV_FUNCNAME("cvSimplifyPolygon"); + __CV_BEGIN__; + { + CV_ASSERT(p!=NULL); + + double furtherDistance=0.; + unsigned int furtherIndex=0; + + CvContourPolygon::const_iterator it=p->begin(); + ++it; + for (unsigned int i=1; it!=p->end(); ++it, i++) + { + double d = cvDistancePointPoint(*it, p->front()); + + if (d>furtherDistance) + { + furtherDistance = d; + furtherIndex = i; + } + } + + if (furtherDistancepush_back(p->front()); + return result; + } + + bool *pnUseFlag = new bool[p->size()]; + for (unsigned int i=1; isize(); i++) pnUseFlag[i] = false; + + pnUseFlag[0] = pnUseFlag[furtherIndex] = true; + + simplifyPolygonRecursive(p, 0, furtherIndex, pnUseFlag, delta); + simplifyPolygonRecursive(p, furtherIndex, -1, pnUseFlag, delta); + + CvContourPolygon *result = new CvContourPolygon; + + for (unsigned int i=0; isize(); i++) + if (pnUseFlag[i]) + result->push_back((*p)[i]); + + delete[] pnUseFlag; + + return result; + } + __CV_END__; + } + + CvContourPolygon *cvPolygonContourConvexHull(CvContourPolygon const *p) + { + CV_FUNCNAME("cvPolygonContourConvexHull"); + __CV_BEGIN__; + { + CV_ASSERT(p!=NULL); + + if (p->size()<=3) + { + return new CvContourPolygon(p->begin(), p->end()); + } + + deque dq; + + if (cvCrossProductPoints((*p)[0], (*p)[1], (*p)[2])>0) + { + dq.push_back((*p)[0]); + dq.push_back((*p)[1]); + } + else + { + dq.push_back((*p)[1]); + dq.push_back((*p)[0]); + } + + dq.push_back((*p)[2]); + dq.push_front((*p)[2]); + + for (unsigned int i=3; isize(); i++) + { + int s = dq.size(); + + if ((cvCrossProductPoints((*p)[i], dq.at(0), dq.at(1))>=0) && (cvCrossProductPoints(dq.at(s-2), dq.at(s-1), (*p)[i])>=0)) + continue; // TODO Optimize. + + while (cvCrossProductPoints(dq.at(s-2), dq.at(s-1), (*p)[i])<0) + { + dq.pop_back(); + s = dq.size(); + } + + dq.push_back((*p)[i]); + + while (cvCrossProductPoints((*p)[i], dq.at(0), dq.at(1))<0) + dq.pop_front(); + + dq.push_front((*p)[i]); + } + + return new CvContourPolygon(dq.begin(), dq.end()); + } + __CV_END__; + } + + void cvWriteContourPolygonCSV(const CvContourPolygon& p, const string& filename) + { + ofstream f; + f.open(filename.c_str()); + + f << p << endl; + + f.close(); + } + + void cvWriteContourPolygonSVG(const CvContourPolygon& p, const string& filename, const CvScalar& stroke, const CvScalar& fill) + { + int minx=INT_MAX; + int miny=INT_MAX; + int maxx=INT_MIN; + int maxy=INT_MIN; + + stringstream buffer(""); + + for (CvContourPolygon::const_iterator it=p.begin(); it!=p.end(); ++it) + { + if (it->x>maxx) + maxx = it->x; + if (it->xx; + + if (it->y>maxy) + maxy = it->y; + if (it->yy; + + buffer << it->x << "," << it->y << " "; + } + + ofstream f; + f.open(filename.c_str()); + + f << "" << endl; + f << "" << endl; + f << "" << endl; + + f << "" << endl; + + f << "" << endl; + + f.close(); + } + +} + +ostream& operator<< (ostream& output, const cvb::CvContourPolygon& p) +{ + for (cvb::CvContourPolygon::const_iterator it=p.begin(); it!=p.end(); ++it) + output << it->x << ", " << it->y << endl; + + return output; +} diff --git a/.svn/pristine/69/69bc2adea40adf8c138ff740556ed4a30cb8af4e.svn-base b/.svn/pristine/69/69bc2adea40adf8c138ff740556ed4a30cb8af4e.svn-base new file mode 100644 index 0000000..7c7481e --- /dev/null +++ b/.svn/pristine/69/69bc2adea40adf8c138ff740556ed4a30cb8af4e.svn-base @@ -0,0 +1,33 @@ + GLUI User Interface Toolkit + --------------------------- + + (The ZLIB License) + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + + History of GLUI's License: + -------------------------- + Originally, GLUI was licensed under LGPL because Paul Rademacher + just wanted something that was very permissive, and LGPL was the + thing he had heard of. I discussed the license with Paul at + SIGGRAPH 2006, where he told me the above, and also told me he was + supportive of changing the license to one of the less restrictive + open source licenses. So after contacting all the authors to get + their OK, GLUI is now under the ZLIB license. + + Bill Baxter -- November 2007 diff --git a/.svn/pristine/69/69fa1da294976f7a032d69154c14548896fb1e5f.svn-base b/.svn/pristine/69/69fa1da294976f7a032d69154c14548896fb1e5f.svn-base new file mode 100644 index 0000000..e2a4877 --- /dev/null +++ b/.svn/pristine/69/69fa1da294976f7a032d69154c14548896fb1e5f.svn-base @@ -0,0 +1,89 @@ +/* + * pcddump implementation + * + * Copyright (C) YuanJun, ZhangLiang, Li Wei, Li Ming, Andreas Nuechter, + * + * Released under the GPL version 3. + * + */ + +/** + * @file + * @brief Main programm for dynamic Velodyne SLAM + * + * @author Andreas Nuechter. Jacobs University Bremen, Germany + * @author YuanJun, Wuhan University, China + * @author ZhangLiang, Wuhan University, China + * @author Li Wei, Wuhan University, China + * @author Li Ming, Wuhan University, China + */ + +#ifdef _MSC_VER +#ifdef OPENMP +#define _OPENMP +#endif +#endif + +#include +using std::ifstream; +using std::ofstream; + +#include +using std::cout; +using std::cerr; +using std::endl; + +#include +using std::stringstream; + +#include "veloslam/veloscan.h" +#include "veloslam/pcddump.h" + +#ifdef _OPENMP +#include +#endif + +#ifdef _MSC_VER +#include +#else +#include +#endif + +#ifdef _MSC_VER +#define strcasecmp _stricmp +#define strncasecmp _strnicmp +#else +#include +#endif + +#include +using std::flush; + +void DumpPointtoFile(cluster &gluData1, string filename) +{ + cell* pCell; + ofstream redptsout(filename.c_str()); + + for(int j=0; jpCell; + for(int k=0; ksize();++k) + { + redptsout <<(*pCell)[k]->x << " " + <<(*pCell)[k]->y<< " " + <<(*pCell)[k]->z<< endl; + } + } + redptsout.close(); + redptsout.clear(); +} + +void DumpFeaturetoFile(clusterFeature &glu, string filename) +{ + ofstream redptsout(filename.c_str(), ios::app); + redptsout < cluster; +typedef std::vector clusterArray; +typedef std::vector clusterFeatureArray; + +#endif //__GRID_CLUSTER_H__ diff --git a/.svn/pristine/6a/6a44751ea9f335689b77ab2f6ef584d6165af5d3.svn-base b/.svn/pristine/6a/6a44751ea9f335689b77ab2f6ef584d6165af5d3.svn-base new file mode 100644 index 0000000..f5d7c3c --- /dev/null +++ b/.svn/pristine/6a/6a44751ea9f335689b77ab2f6ef584d6165af5d3.svn-base @@ -0,0 +1,585 @@ +// Copyright (C) 2007 by Crist贸bal Carnero Li帽谩n +// grendel.ccl@gmail.com +// +// This file is part of cvBlob. +// +// cvBlob is free software: you can redistribute it and/or modify +// it under the terms of the Lesser GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// cvBlob is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// Lesser GNU General Public License for more details. +// +// You should have received a copy of the Lesser GNU General Public License +// along with cvBlob. If not, see . +// + +/// \file cvblob.h +/// \brief OpenCV Blob header file. + +#ifdef SWIG +%module cvblob +%{ +#include "cvblob.h" +%} +#endif + +#ifndef CVBLOB_H +#define CVBLOB_H + +#include +#include +#include +#include +#include + +#if (defined(_WIN32) || defined(__WIN32__) || defined(__TOS_WIN__) || defined(__WINDOWS__) || (defined(__APPLE__) & defined(__MACH__))) +#include +#else +#include +#endif + +#ifndef __CV_BEGIN__ +#define __CV_BEGIN__ __BEGIN__ +#endif +#ifndef __CV_END__ +#define __CV_END__ __END__ +#endif + +#ifdef __cplusplus +extern "C" { +#endif + + namespace cvb + { + + //////////////////////////////////////////////////////////////////////////////////////////////////////////// + // Contours + + // Chain code: + // 7 0 1 + // 6 2 + // 5 4 3 +#define CV_CHAINCODE_UP 0 ///< Up. +#define CV_CHAINCODE_UP_RIGHT 1 ///< Up and right. +#define CV_CHAINCODE_RIGHT 2 ///< Right. +#define CV_CHAINCODE_DOWN_RIGHT 3 ///< Down and right. +#define CV_CHAINCODE_DOWN 4 ///< Down. +#define CV_CHAINCODE_DOWN_LEFT 5 ///< Down and left. +#define CV_CHAINCODE_LEFT 6 ///< Left. +#define CV_CHAINCODE_UP_LEFT 7 ///< Up and left. + + /// \brief Move vectors of chain codes. + /// \see CV_CHAINCODE_UP + /// \see CV_CHAINCODE_UP_LEFT + /// \see CV_CHAINCODE_LEFT + /// \see CV_CHAINCODE_DOWN_LEFT + /// \see CV_CHAINCODE_DOWN + /// \see CV_CHAINCODE_DOWN_RIGHT + /// \see CV_CHAINCODE_RIGHT + /// \see CV_CHAINCODE_UP_RIGHT + const char cvChainCodeMoves[8][2] = { { 0, -1}, + { 1, -1}, + { 1, 0}, + { 1, 1}, + { 0, 1}, + {-1, 1}, + {-1, 0}, + {-1, -1} + }; + + /// \brief Direction. + /// \see CV_CHAINCODE_UP + /// \see CV_CHAINCODE_UP_LEFT + /// \see CV_CHAINCODE_LEFT + /// \see CV_CHAINCODE_DOWN_LEFT + /// \see CV_CHAINCODE_DOWN + /// \see CV_CHAINCODE_DOWN_RIGHT + /// \see CV_CHAINCODE_RIGHT + /// \see CV_CHAINCODE_UP_RIGHT + typedef unsigned char CvChainCode; + + /// \brief Chain code. + /// \see CvChainCode + typedef std::list CvChainCodes; + + /// \brief Chain code contour. + /// \see CvChainCodes + struct CvContourChainCode + { + CvPoint startingPoint; ///< Point where contour begin. + CvChainCodes chainCode; ///< Polygon description based on chain codes. + }; + + typedef std::list CvContoursChainCode; ///< List of contours (chain codes type). + + /// \brief Polygon based contour. + typedef std::vector CvContourPolygon; + + /// \fn void cvRenderContourChainCode(CvContourChainCode const *contour, IplImage const *img, CvScalar const &color=CV_RGB(255, 255, 255)) + /// \brief Draw a contour. + /// \param contour Chain code contour. + /// \param img Image to draw on. + /// \param color Color to draw (default, white). + /// \see CvContourChainCode + void cvRenderContourChainCode(CvContourChainCode const *contour, IplImage const *img, CvScalar const &color=CV_RGB(255, 255, 255)); + + /// \fn CvContourPolygon *cvConvertChainCodesToPolygon(CvContourChainCode const *cc) + /// \brief Convert a chain code contour to a polygon. + /// \param cc Chain code contour. + /// \return A polygon. + /// \see CvContourChainCode + /// \see CvContourPolygon + CvContourPolygon *cvConvertChainCodesToPolygon(CvContourChainCode const *cc); + + /// \fn void cvRenderContourPolygon(CvContourPolygon const *contour, IplImage *img, CvScalar const &color=CV_RGB(255, 255, 255)) + /// \brief Draw a polygon. + /// \param contour Polygon contour. + /// \param img Image to draw on. + /// \param color Color to draw (default, white). + /// \see CvContourPolygon + void cvRenderContourPolygon(CvContourPolygon const *contour, IplImage *img, CvScalar const &color=CV_RGB(255, 255, 255)); + + /// \fn double cvContourPolygonArea(CvContourPolygon const *p) + /// \brief Calculates area of a polygonal contour. + /// \param p Contour (polygon type). + /// \return Area of the contour. + double cvContourPolygonArea(CvContourPolygon const *p); + + /// \fn double cvContourChainCodePerimeter(CvContourChainCode const *c) + /// \brief Calculates perimeter of a chain code contour. + /// \param c Contour (chain code type). + /// \return Perimeter of the contour. + double cvContourChainCodePerimeter(CvContourChainCode const *c); + + /// \fn double cvContourPolygonPerimeter(CvContourPolygon const *p) + /// \brief Calculates perimeter of a polygonal contour. + /// \param p Contour (polygon type). + /// \return Perimeter of the contour. + double cvContourPolygonPerimeter(CvContourPolygon const *p); + + /// \fn double cvContourPolygonCircularity(const CvContourPolygon *p) + /// \brief Calculates the circularity of a polygon (compactness measure). + /// \param p Contour (polygon type). + /// \return Circularity: a non-negative value, where 0 correspond with a circumference. + double cvContourPolygonCircularity(const CvContourPolygon *p); + + /// \fn CvContourPolygon *cvSimplifyPolygon(CvContourPolygon const *p, double const delta=1.) + /// \brief Simplify a polygon reducing the number of vertex according the distance "delta". + /// Uses a version of the Ramer-Douglas-Peucker algorithm (http://en.wikipedia.org/wiki/Ramer-Douglas-Peucker_algorithm). + /// \param p Contour (polygon type). + /// \param delta Minimun distance. + /// \return A simplify version of the original polygon. + CvContourPolygon *cvSimplifyPolygon(CvContourPolygon const *p, double const delta=1.); + + /// \fn CvContourPolygon *cvPolygonContourConvexHull(CvContourPolygon const *p) + /// \brief Calculates convex hull of a contour. + /// Uses the Melkman Algorithm. Code based on the version in http://w3.impa.br/~rdcastan/Cgeometry/. + /// \param p Contour (polygon type). + /// \return Convex hull. + CvContourPolygon *cvPolygonContourConvexHull(CvContourPolygon const *p); + + /// \fn void cvWriteContourPolygonCSV(const CvContourPolygon& p, const std::string& filename) + /// \brief Write a contour to a CSV (Comma-separated values) file. + /// \param p Polygon contour. + /// \param filename File name. + void cvWriteContourPolygonCSV(const CvContourPolygon& p, const std::string& filename); + + /// \fn void cvWriteContourPolygonSVG(const CvContourPolygon& p, const std::string& filename, const CvScalar& stroke=cvScalar(0,0,0), const CvScalar& fill=cvScalar(255,255,255)) + /// \brief Write a contour to a SVG file (http://en.wikipedia.org/wiki/Scalable_Vector_Graphics). + /// \param p Polygon contour. + /// \param filename File name. + /// \param stroke Stroke color (black by default). + /// \param fill Fill color (white by default). + void cvWriteContourPolygonSVG(const CvContourPolygon& p, const std::string& filename, const CvScalar& stroke=cvScalar(0,0,0), const CvScalar& fill=cvScalar(255,255,255)); + + //////////////////////////////////////////////////////////////////////////////////////////////////////////// + // Blobs + + /// \brief Type of label. + /// \see IPL_DEPTH_LABEL + typedef unsigned int CvLabel; + //typedef unsigned char CvLabel; + + /// \def IPL_DEPTH_LABEL + /// \brief Size of a label in bits. + /// \see CvLabel +#define IPL_DEPTH_LABEL (sizeof(cvb::CvLabel)*8) + + /// \def CV_BLOB_MAX_LABEL + /// \brief Max label number. + /// \see CvLabel. +#define CV_BLOB_MAX_LABEL std::numeric_limits::max() + + /// \brief Type of identification numbers. + typedef unsigned int CvID; + + /// \brief Struct that contain information about one blob. + struct CvBlob + { + CvLabel label; ///< Label assigned to the blob. + + union + { + unsigned int area; ///< Area (moment 00). + unsigned int m00; ///< Moment 00 (area). + }; + + unsigned int minx; ///< X min. + unsigned int maxx; ///< X max. + unsigned int miny; ///< Y min. + unsigned int maxy; ///< y max. + + CvPoint2D64f centroid; ///< Centroid. + + double m10; ///< Moment 10. + double m01; ///< Moment 01. + double m11; ///< Moment 11. + double m20; ///< Moment 20. + double m02; ///< Moment 02. + + double u11; ///< Central moment 11. + double u20; ///< Central moment 20. + double u02; ///< Central moment 02. + + double n11; ///< Normalized central moment 11. + double n20; ///< Normalized central moment 20. + double n02; ///< Normalized central moment 02. + + double p1; ///< Hu moment 1. + double p2; ///< Hu moment 2. + + CvContourChainCode contour; ///< Contour. + CvContoursChainCode internalContours; ///< Internal contours. + }; + + /// \var typedef std::map CvBlobs + /// \brief List of blobs. + /// A map is used to access each blob from its label number. + /// \see CvLabel + /// \see CvBlob + typedef std::map CvBlobs; + + /// \var typedef std::pair CvLabelBlob + /// \brief Pair (label, blob). + /// \see CvLabel + /// \see CvBlob + typedef std::pair CvLabelBlob; + + /// \fn unsigned int cvLabel (IplImage const *img, IplImage *imgOut, CvBlobs &blobs); + /// \brief Label the connected parts of a binary image. + /// Algorithm based on paper "A linear-time component-labeling algorithm using contour tracing technique" of Fu Chang, Chun-Jen Chen and Chi-Jen Lu. + /// \param img Input binary image (depth=IPL_DEPTH_8U and num. channels=1). + /// \param imgOut Output image (depth=IPL_DEPTH_LABEL and num. channels=1). + /// \param blobs List of blobs. + /// \return Number of pixels that has been labeled. + unsigned int cvLabel (IplImage const *img, IplImage *imgOut, CvBlobs &blobs); + + //IplImage *cvFilterLabel(IplImage *imgIn, CvLabel label); + + /// \fn void cvFilterLabels(IplImage *imgIn, IplImage *imgOut, const CvBlobs &blobs) + /// \brief Draw a binary image with the blobs that have been given. + /// \param imgIn Input image (depth=IPL_DEPTH_LABEL and num. channels=1). + /// \param imgOut Output binary image (depth=IPL_DEPTH_8U and num. channels=1). + /// \param blobs List of blobs to be drawn. + /// \see cvLabel + void cvFilterLabels(IplImage *imgIn, IplImage *imgOut, const CvBlobs &blobs); + + /// \fn CvLabel cvGetLabel(IplImage const *img, unsigned int x, unsigned int y) + /// \brief Get the label value from a labeled image. + /// \param img Label image. + /// \param x X coordenate. + /// \param y Y coordenate. + /// \return Label value. + /// \see CvLabel + CvLabel cvGetLabel(IplImage const *img, unsigned int x, unsigned int y); + + /// \fn inline void cvReleaseBlob(CvBlob *blob) + /// \brief Clear a blob structure. + /// \param blob Blob. + /// \see CvBlob + inline void cvReleaseBlob(CvBlob *blob) + { + if (blob) + { + for (CvContoursChainCode::iterator jt=blob->internalContours.begin(); jt!=blob->internalContours.end(); ++jt) + { + CvContourChainCode *contour = *jt; + if (contour) + delete contour; + } + blob->internalContours.clear(); + + delete blob; + } + } + + /// \fn inline void cvReleaseBlobs(CvBlobs &blobs) + /// \brief Clear blobs structure. + /// \param blobs List of blobs. + /// \see CvBlobs + inline void cvReleaseBlobs(CvBlobs &blobs) + { + for (CvBlobs::iterator it=blobs.begin(); it!=blobs.end(); ++it) + { + cvReleaseBlob((*it).second); + } + blobs.clear(); + } + + /// \fn CvLabel cvGreaterBlob(const CvBlobs &blobs) + /// \brief Find greater blob. + /// \param blobs List of blobs. + /// \return Label of the greater blob or 0 if there are no blobs. + /// \see cvLabel + CvLabel cvGreaterBlob(const CvBlobs &blobs); + + /// \fn void cvFilterByArea(CvBlobs &blobs, unsigned int minArea, unsigned int maxArea) + /// \brief Filter blobs by area. + /// Those blobs whose areas are not in range will be erased from the input list of blobs. + /// \param blobs List of blobs. + /// \param minArea Minimun area. + /// \param maxArea Maximun area. + void cvFilterByArea(CvBlobs &blobs, unsigned int minArea, unsigned int maxArea); + + /// \fn void cvFilterByLabel(CvBlobs &blobs, CvLabel label) + /// \brief Filter blobs by label. + /// Delete all blobs except those with label l. + /// \param blobs List of blobs. + /// \param label Label to leave. + void cvFilterByLabel(CvBlobs &blobs, CvLabel label); + + /// \fn inline CvPoint2D64f cvCentroid(CvBlob *blob) + /// \brief Calculates centroid. + /// Centroid will be returned and stored in the blob structure. + /// \param blob Blob whose centroid will be calculated. + /// \return Centroid. + /// \see CvBlob + inline CvPoint2D64f cvCentroid(CvBlob *blob) + { + return blob->centroid=cvPoint2D64f(blob->m10/blob->area, blob->m01/blob->area); + } + + /// \fn double cvAngle(CvBlob *blob) + /// \brief Calculates angle orientation of a blob. + /// This function uses central moments so cvCentralMoments should have been called before for this blob. + /// \param blob Blob. + /// \return Angle orientation in radians. + /// \see cvCentralMoments + /// \see CvBlob + double cvAngle(CvBlob *blob); + + /// \fn cvSaveImageBlob(const char *filename, IplImage *img, CvBlob const *blob) + /// \brief Save the image of a blob to a file. + /// The function uses an image (that can be the original pre-processed image or a processed one, or even the result of cvRenderBlobs, for example) and a blob structure. + /// Then the function saves a copy of the part of the image where the blob is. + /// \param filename Name of the file. + /// \param img Image. + /// \param blob Blob. + /// \see CvBlob + /// \see cvRenderBlob + void cvSaveImageBlob(const char *filename, IplImage *img, CvBlob const *blob); + +#define CV_BLOB_RENDER_COLOR 0x0001 ///< Render each blog with a different color. \see cvRenderBlobs +#define CV_BLOB_RENDER_CENTROID 0x0002 ///< Render centroid. \see cvRenderBlobs +#define CV_BLOB_RENDER_BOUNDING_BOX 0x0004 ///< Render bounding box. \see cvRenderBlobs +#define CV_BLOB_RENDER_ANGLE 0x0008 ///< Render angle. \see cvRenderBlobs +#define CV_BLOB_RENDER_TO_LOG 0x0010 ///< Print blob data to log out. \see cvRenderBlobs +#define CV_BLOB_RENDER_TO_STD 0x0020 ///< Print blob data to std out. \see cvRenderBlobs + + /// \fn void cvRenderBlob(const IplImage *imgLabel, CvBlob *blob, IplImage *imgSource, IplImage *imgDest, unsigned short mode=0x000f, CvScalar const &color=CV_RGB(255, 255, 255), double alpha=1.) + /// \brief Draws or prints information about a blob. + /// \param imgLabel Label image (depth=IPL_DEPTH_LABEL and num. channels=1). + /// \param blob Blob. + /// \param imgSource Input image (depth=IPL_DEPTH_8U and num. channels=3). + /// \param imgDest Output image (depth=IPL_DEPTH_8U and num. channels=3). + /// \param mode Render mode. By default is CV_BLOB_RENDER_COLOR|CV_BLOB_RENDER_CENTROID|CV_BLOB_RENDER_BOUNDING_BOX|CV_BLOB_RENDER_ANGLE. + /// \param color Color to render (if CV_BLOB_RENDER_COLOR is used). + /// \param alpha If mode CV_BLOB_RENDER_COLOR is used. 1.0 indicates opaque and 0.0 translucent (1.0 by default). + /// \see CV_BLOB_RENDER_COLOR + /// \see CV_BLOB_RENDER_CENTROID + /// \see CV_BLOB_RENDER_BOUNDING_BOX + /// \see CV_BLOB_RENDER_ANGLE + /// \see CV_BLOB_RENDER_TO_LOG + /// \see CV_BLOB_RENDER_TO_STD + void cvRenderBlob(const IplImage *imgLabel, CvBlob *blob, IplImage *imgSource, IplImage *imgDest, unsigned short mode=0x000f, CvScalar const &color=CV_RGB(255, 255, 255), double alpha=1.); + + /// \fn void cvRenderBlobs(const IplImage *imgLabel, CvBlobs &blobs, IplImage *imgSource, IplImage *imgDest, unsigned short mode=0x000f, double alpha=1.) + /// \brief Draws or prints information about blobs. + /// \param imgLabel Label image (depth=IPL_DEPTH_LABEL and num. channels=1). + /// \param blobs List of blobs. + /// \param imgSource Input image (depth=IPL_DEPTH_8U and num. channels=3). + /// \param imgDest Output image (depth=IPL_DEPTH_8U and num. channels=3). + /// \param mode Render mode. By default is CV_BLOB_RENDER_COLOR|CV_BLOB_RENDER_CENTROID|CV_BLOB_RENDER_BOUNDING_BOX|CV_BLOB_RENDER_ANGLE. + /// \param alpha If mode CV_BLOB_RENDER_COLOR is used. 1.0 indicates opaque and 0.0 translucent (1.0 by default). + /// \see CV_BLOB_RENDER_COLOR + /// \see CV_BLOB_RENDER_CENTROID + /// \see CV_BLOB_RENDER_BOUNDING_BOX + /// \see CV_BLOB_RENDER_ANGLE + /// \see CV_BLOB_RENDER_TO_LOG + /// \see CV_BLOB_RENDER_TO_STD + void cvRenderBlobs(const IplImage *imgLabel, CvBlobs &blobs, IplImage *imgSource, IplImage *imgDest, unsigned short mode=0x000f, double alpha=1.); + + /// \fn void cvSetImageROItoBlob(IplImage *img, CvBlob const *blob) + /// \brief Set the ROI of an image to the bounding box of a blob. + /// \param img Image. + /// \param blob Blob. + /// \see CvBlob + inline void cvSetImageROItoBlob(IplImage *img, CvBlob const *blob) + { + cvSetImageROI(img, cvRect(blob->minx, blob->miny, blob->maxx-blob->minx, blob->maxy-blob->miny)); + }; + + //////////////////////////////////////////////////////////////////////////////////////////////////////////// + // Color + + /// \fn CvScalar cvBlobMeanColor(CvBlob const *blob, IplImage const *imgLabel, IplImage const *img) + /// \brief Calculates mean color of a blob in an image. + /// \param blob Blob. + /// \param imgLabel Image of labels. + /// \param img Original image. + /// \return Average color. + CvScalar cvBlobMeanColor(CvBlob const *blob, IplImage const *imgLabel, IplImage const *img); + + //////////////////////////////////////////////////////////////////////////////////////////////////////////// + // Aux + + /// \fn double cvDotProductPoints(CvPoint const &a, CvPoint const &b, CvPoint const &c) + /// \brief Dot product of the vectors ab and bc. + /// \param a First point. + /// \param b Middle point. + /// \param c Last point. + /// \return Dot product of ab and bc. + double cvDotProductPoints(CvPoint const &a, CvPoint const &b, CvPoint const &c); + + /// \fn double cvCrossProductPoints(CvPoint const &a, CvPoint const &b, CvPoint const &c) + /// \brief Cross product of the vectors ab and bc. + /// \param a Point. + /// \param b Point. + /// \param c Point. + /// \return Cross product of ab and bc. + double cvCrossProductPoints(CvPoint const &a, CvPoint const &b, CvPoint const &c); + + /// \fn double cvDistancePointPoint(CvPoint const &a, CvPoint const &b) + /// \brief Distance between two points. + /// \param a Point. + /// \param b Point. + /// \return Distance. + double cvDistancePointPoint(CvPoint const &a, CvPoint const &b); + + /// \fn double cvDistanceLinePoint(CvPoint const &a, CvPoint const &b, CvPoint const &c, bool isSegment=true) + /// \brief Distance between line ab and point c. + /// \param a First point of the segment. + /// \param b Second point of the segment. + /// \param c Point. + /// \param isSegment If false then the distance will be calculated from the line defined by the points a and b, to the point c. + /// \return Distance between ab and c. + double cvDistanceLinePoint(CvPoint const &a, CvPoint const &b, CvPoint const &c, bool isSegment=true); + + //////////////////////////////////////////////////////////////////////////////////////////////////////////// + // Tracking + + /// \brief Struct that contain information about one track. + /// \see CvID + /// \see CvLabel + struct CvTrack + { + CvID id; ///< Track identification number. + + CvLabel label; ///< Label assigned to the blob related to this track. + + unsigned int minx; ///< X min. + unsigned int maxx; ///< X max. + unsigned int miny; ///< Y min. + unsigned int maxy; ///< y max. + + CvPoint2D64f centroid; ///< Centroid. + + unsigned int lifetime; ///< Indicates how much frames the object has been in scene. + unsigned int active; ///< Indicates number of frames that has been active from last inactive period. + unsigned int inactive; ///< Indicates number of frames that has been missing. + }; + + /// \var typedef std::map CvTracks + /// \brief List of tracks. + /// \see CvID + /// \see CvTrack + typedef std::map CvTracks; + + /// \var typedef std::pair CvIDTrack + /// \brief Pair (identification number, track). + /// \see CvID + /// \see CvTrack + typedef std::pair CvIDTrack; + + /// \fn inline void cvReleaseTracks(CvTracks &tracks) + /// \brief Clear tracks structure. + /// \param tracks List of tracks. + /// \see CvTracks + inline void cvReleaseTracks(CvTracks &tracks) + { + for (CvTracks::iterator it=tracks.begin(); it!=tracks.end(); it++) + { + CvTrack *track = (*it).second; + if (track) delete track; + } + + tracks.clear(); + } + + /// \fn cvUpdateTracks(CvBlobs const &b, CvTracks &t, const double thDistance, const unsigned int thInactive, const unsigned int thActive=0) + /// \brief Updates list of tracks based on current blobs. + /// Tracking based on: + /// A.聽Senior,聽A.聽Hampapur,聽Y-L聽Tian,聽L.聽Brown,聽S.聽Pankanti,聽R.聽Bolle.聽Appearance聽Models聽for + /// Occlusion聽Handling.聽Second聽International聽workshop聽on聽Performance聽Evaluation聽of聽Tracking聽and + /// Surveillance聽Systems聽&聽CVPR'01.聽December,聽2001. + /// (http://www.research.ibm.com/peoplevision/PETS2001.pdf) + /// \param b List of blobs. + /// \param t List of tracks. + /// \param thDistance Max distance to determine when a track and a blob match. + /// \param thInactive Max number of frames a track can be inactive. + /// \param thActive If a track becomes inactive but it has been active less than thActive frames, the track will be deleted. + /// \see CvBlobs + /// \see Tracks + void cvUpdateTracks(CvBlobs const &b, CvTracks &t, const double thDistance, const unsigned int thInactive, const unsigned int thActive=0); + +#define CV_TRACK_RENDER_ID 0x0001 ///< Print the ID of each track in the image. \see cvRenderTracks +#define CV_TRACK_RENDER_BOUNDING_BOX 0x0002 ///< Draw bounding box of each track in the image. \see cvRenderTracks +#define CV_TRACK_RENDER_TO_LOG 0x0010 ///< Print track info to log out. \see cvRenderTracks +#define CV_TRACK_RENDER_TO_STD 0x0020 ///< Print track info to log out. \see cvRenderTracks + + /// \fn void cvRenderTracks(CvTracks const tracks, IplImage *imgSource, IplImage *imgDest, unsigned short mode=0x00ff, CvFont *font=NULL) + /// \brief Prints tracks information. + /// \param tracks List of tracks. + /// \param imgSource Input image (depth=IPL_DEPTH_8U and num. channels=3). + /// \param imgDest Output image (depth=IPL_DEPTH_8U and num. channels=3). + /// \param mode Render mode. By default is CV_TRACK_RENDER_ID|CV_TRACK_RENDER_BOUNDING_BOX. + /// \param font OpenCV font for print on the image. + /// \see CV_TRACK_RENDER_ID + /// \see CV_TRACK_RENDER_BOUNDING_BOX + /// \see CV_TRACK_RENDER_TO_LOG + /// \see CV_TRACK_RENDER_TO_STD + void cvRenderTracks(CvTracks const tracks, IplImage *imgSource, IplImage *imgDest, unsigned short mode=0x000f, CvFont *font=NULL); + } +#ifdef __cplusplus +} +#endif + +/// \fn std::ostream& operator<< (std::ostream& output, const cvb::CvBlob& b) +/// \brief Overload operator "<<" for printing blob structure. +/// \return Stream. +std::ostream& operator<< (std::ostream& output, const cvb::CvBlob& b); + +/// \fn std::ostream& operator<< (std::ostream& output, const cvb::CvContourPolygon& p) +/// \brief Overload operator "<<" for printing polygons in CSV format. +/// \return Stream. +std::ostream& operator<< (std::ostream& output, const cvb::CvContourPolygon& p); + +/// \fn std::ostream& operator<< (std::ostream& output, const cvb::CvTrack& t) +/// \brief Overload operator "<<" for printing track structure. +/// \return Stream. +std::ostream& operator<< (std::ostream& output, const cvb::CvTrack& t); +#endif diff --git a/.svn/pristine/6a/6a723ffc9b749b451dcd95c95db713042a156e25.svn-base b/.svn/pristine/6a/6a723ffc9b749b451dcd95c95db713042a156e25.svn-base new file mode 100644 index 0000000..44067b8 --- /dev/null +++ b/.svn/pristine/6a/6a723ffc9b749b451dcd95c95db713042a156e25.svn-base @@ -0,0 +1,848 @@ +/* + * compacttree implementation + * + * Copyright (C) Jan Elseberg, Kai Lingemann, Jan Elseberg + * + * Released under the GPL version 3. + * + */ + +/** + * @file + * @brief Efficient representation of an octree + * @author Jan Elsberg. Automation Group, Jacobs University Bremen gGmbH, Germany. + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include + +#include +using std::vector; +#include +using std::deque; +#include +using std::set; +#include +using std::list; +#include +#include +#include + +#include "slam6d/globals.icc" +#include "slam6d/point_type.h" + +#include "slam6d/Boctree.h" +#include "show/compacttree.h" +#include "show/colormanager.h" +#include "show/scancolormanager.h" +#include "show/viewcull.h" + +compactTree::~compactTree(){ + delete alloc; + + delete[] mins; + delete[] maxs; +} + + +void compactTree::AllPoints( cbitoct &node, vector &vp, double center[3], double size) { + double ccenter[3]; + cbitunion *children; + cbitoct::getChildren(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + childcenter(center, ccenter, size, i); // childrens center + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf get center + tshort *point = children->getPoints(); + lint length = children->getLength(); + + for(unsigned int iterator = 0; iterator < length; iterator++ ) { + double *p = new double[3]; + //cout << point[0] << " " << point[1] << " " << point[2] << endl; + for (unsigned int k = 0; k < 3; k++){ + p[k] = point[k] * precision + ccenter[k]; + } + + vp.push_back(p); + point+=POINTDIM; + } + } else { // recurse + AllPoints( children->node, vp, ccenter, size/2.0); + } + ++children; // next child + } + } +} + + + +void compactTree::GetOctTreeCenter(vector&c, cbitoct &node, double *center, double size) { + double ccenter[3]; + cbitunion *children; + cbitoct::getChildren(node, children); + + for (unsigned char i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + childcenter(center, ccenter, size, i); // childrens center + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf get center + double * cp = new double[POINTDIM]; + for (unsigned int iterator = 0; iterator < POINTDIM; iterator++) { + cp[iterator] = ccenter[iterator]; + } + c.push_back(cp); + } else { // recurse + GetOctTreeCenter(c, children->node, ccenter, size/2.0); + } + ++children; // next child + } + } +} +long compactTree::countNodes(cbitoct &node) { + long result = 0; + cbitunion *children; + cbitoct::getChildren(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf + // ++result; + } else { // recurse + result += countNodes(children->node) + 1; + } + ++children; // next child + } + } + return result; +} + +long compactTree::countLeaves(cbitoct &node) { + long result = 0; + cbitunion *children; + cbitoct::getChildren(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf + lint nrpts = children->getLength(); + result += POINTDIM*nrpts + 1; + } else { // recurse + result += countLeaves(children->node); + } + ++children; // next child + } + } + return result; +} + + +void compactTree::deletetNodes(cbitoct &node) { + cbitunion *children; + cbitoct::getChildren(node, children); + bool haschildren = false; + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf + tshort *points = children->getPoints(); + delete [] points; + // delete [] children->points; + } else { // recurse + deletetNodes(children->node); + } + ++children; // next child + haschildren = true; + } + } + // delete children + if (haschildren) { + cbitoct::getChildren(node, children); + delete[] children; + } +} + + +unsigned long compactTree::maxTargetPoints( cbitoct &node ) { + cbitunion *children; + cbitoct::getChildren(node, children); + + unsigned long max = 0; + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf get center + lint length = children->getLength(); + if (length > max) max = length; + } else { // recurse + unsigned long tp = maxTargetPoints( children->node); + if (tp > max) max = tp; + } + ++children; // next child + } + } + + return max*POPCOUNT(node.valid); +} + +void compactTree::displayOctTreeAll( cbitoct &node, double *center, double size) { + double ccenter[3]; + cbitunion *children; + cbitoct::getChildren(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + childcenter(center, ccenter, size, i); // childrens center + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf get center + tshort *point = children->getPoints(); + lint length = children->getLength(); + glBegin(GL_POINTS); + for(unsigned int iterator = 0; iterator < length; iterator++ ) { + if(cm) cm->setColor(point); + //cout << "C " << point[1] << " " << cm << endl; + //glVertex3f( point[0], point[1], point[2]); + glVertex3f( point[0] * precision + ccenter[0], point[1] * precision + ccenter[1], point[2] * precision + ccenter[2]); + point+=POINTDIM; + } + glEnd(); + } else { // recurse + displayOctTreeAll( children->node, ccenter, size/2.0); + } + ++children; // next child + } + } +} + +void compactTree::displayOctTreeAllCulled( cbitoct &node, double *center, double size ) { + int res = CubeInFrustum2(center[0], center[1], center[2], size); + if (res==0) return; // culled do not continue with this branch of the tree + + if (res == 2) { // if entirely within frustrum discontinue culling + displayOctTreeAll(node, center, size); + return; + } + + double ccenter[3]; + cbitunion *children; + cbitoct::getChildren(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + childcenter(center, ccenter, size, i); // childrens center + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf get center + // check if leaf is visible + if ( CubeInFrustum(ccenter[0], ccenter[1], ccenter[2], size/2.0) ) { + tshort *point = children->getPoints(); + lint length = children->getLength(); + glBegin(GL_POINTS); + for(unsigned int iterator = 0; iterator < length; iterator++ ) { + if(cm) cm->setColor(point); + //glVertex3f( point[0], point[1], point[2]); + glVertex3f( point[0] * precision + ccenter[0], point[1] * precision + ccenter[1], point[2] * precision + ccenter[2]); + point+=POINTDIM; + } + glEnd(); + } + } else { // recurse + displayOctTreeAllCulled( children->node, ccenter, size/2.0); + } + ++children; // next child + } + } +} + +void compactTree::displayOctTreeCulledLOD(long targetpts, cbitoct &node, double *center, double size ) { + if (targetpts <= 0) return; // no need to display anything + + int res = CubeInFrustum2(center[0], center[1], center[2], size); + if (res==0) return; // culled do not continue with this branch of the tree + + if (res == 2) { // if entirely within frustrum discontinue culling + displayOctTreeLOD(targetpts, node, center, size); + return; + } + + double ccenter[3]; + cbitunion *children; + cbitoct::getChildren(node, children); + + unsigned short nc = POPCOUNT(node.valid); + long newtargetpts = targetpts; + if (nc > 0) { + newtargetpts = newtargetpts/nc; + if (newtargetpts <= 0 ) return; + } + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + childcenter(center, ccenter, size, i); // childrens center + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf get center + // check if leaf is visible + if ( CubeInFrustum(ccenter[0], ccenter[1], ccenter[2], size/2.0) ) { + tshort *point = children->getPoints(); + lint length = children->getLength(); + glBegin(GL_POINTS); + if (length > 10 && !LOD(ccenter[0], ccenter[1], ccenter[2], size/2.0) ) { // only a single pixel on screen only paint one point + if(cm) cm->setColor(point); + //glVertex3f( point[0], point[1], point[2]); + glVertex3f( point[0] * precision + ccenter[0], point[1] * precision + ccenter[1], point[2] * precision + ccenter[2]); + } else if (length <= newtargetpts) { // more points requested than possible, plot all + for(unsigned int iterator = 0; iterator < length; iterator++ ) { + if(cm) cm->setColor(point); + //glVertex3f( point[0], point[1], point[2]); + glVertex3f( point[0] * precision + ccenter[0], point[1] * precision + ccenter[1], point[2] * precision + ccenter[2]); + point+=POINTDIM; + } + } else { // select points to show + // TODO smarter subselection of points here + double each = (double)POINTDIM * (double)((double)length/(double)newtargetpts); + tshort *p; + int index; + for(unsigned int iterator = 0; iterator < newtargetpts; iterator++ ) { + index = (double)iterator * each; + p = point + index - index%POINTDIM; + if(cm) cm->setColor(p); + //glVertex3f( p[0], p[1], p[2]); + glVertex3f( p[0] * precision + ccenter[0], p[1] * precision + ccenter[1], p[2] * precision + ccenter[2]); + //point += each; + } + } + glEnd(); + } + + } else { // recurse + displayOctTreeCulledLOD(newtargetpts, children->node, ccenter, size/2.0); + } + ++children; // next child + } + } +} + +void compactTree::displayOctTreeLOD(long targetpts, cbitoct &node, double *center, double size ) { + if (targetpts <= 0) return; // no need to display anything + + double ccenter[3]; + cbitunion *children; + cbitoct::getChildren(node, children); + + unsigned short nc = POPCOUNT(node.valid); + long newtargetpts = targetpts; + if (nc > 0) { + newtargetpts = newtargetpts/nc; + if (newtargetpts <= 0 ) return; + } + + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + childcenter(center, ccenter, size, i); // childrens center + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf get center + tshort *point = children->getPoints(); + lint length = children->getLength(); + glBegin(GL_POINTS); + /* if (length > 10 && !LOD(ccenter[0], ccenter[1], ccenter[2], size/2.0) ) { // only a single pixel on screen only paint one point + if(cm) cm->setColor(point); + //glVertex3f( point[0], point[1], point[2]); + glVertex3f( point[0] * precision + ccenter[0], point[1] * precision + ccenter[1], point[2] * precision + ccenter[2]); + } else*/ if (length <= newtargetpts) { // more points requested than possible, plot all + for(unsigned int iterator = 0; iterator < length; iterator++ ) { + if(cm) cm->setColor(point); + //glVertex3f( point[0], point[1], point[2]); + glVertex3f( point[0] * precision + ccenter[0], point[1] * precision + ccenter[1], point[2] * precision + ccenter[2]); + point+=POINTDIM; + } + } else { // select points to show + // TODO smarter subselection of points here + double each = (double)POINTDIM * (double)((double)length/(double)newtargetpts); + tshort *p; + int index; + for(unsigned int iterator = 0; iterator < newtargetpts; iterator++ ) { + index = (double)iterator * each; + p = point + index - index%POINTDIM; + if(cm) cm->setColor(p); + //glVertex3f( p[0], p[1], p[2]); + glVertex3f( p[0] * precision + ccenter[0], p[1] * precision + ccenter[1], p[2] * precision + ccenter[2]); + //point += each; + } + } + glEnd(); + } else { // recurse + displayOctTreeLOD(newtargetpts, children->node, ccenter, size/2.0); + } + ++children; // next child + } + } +} + +void compactTree::displayOctTreeCulledLOD2(float ratio, cbitoct &node, double *center, double size ) { + int res = CubeInFrustum2(center[0], center[1], center[2], size); + if (res==0) return; // culled do not continue with this branch of the tree + + if (res == 2) { // if entirely within frustrum discontinue culling + displayOctTreeLOD2(ratio, node, center, size); + return; + } + + double ccenter[3]; + cbitunion *children; + cbitoct::getChildren(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + childcenter(center, ccenter, size, i); // childrens center + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf get center + // check if leaf is visible + if ( CubeInFrustum(ccenter[0], ccenter[1], ccenter[2], size/2.0) ) { + tshort *point = children->getPoints(); + lint length = children->getLength(); + + int l = LOD2(ccenter[0], ccenter[1], ccenter[2], size/2.0); // only a single pixel on screen only paint one point + l = max((int)(l*l*ratio), 0); + if (l != 0) { + if ((int)length > l ) { + double each = (double)POINTDIM * (double)((double)length/(double)l); + tshort *p; + int index; + for(int iterator = 0; iterator < l; iterator++ ) { + index = (double)iterator * each; + p = point + index - index%POINTDIM; + if(cm) cm->setColor(p); + glVertex3f( p[0] * precision + ccenter[0], p[1] * precision + ccenter[1], p[2] * precision + ccenter[2]); + } + } else if ((int)length <= l) { + for(unsigned int iterator = 0; iterator < length; iterator++ ) { + if(cm) cm->setColor(point); + glVertex3f( point[0] * precision + ccenter[0], point[1] * precision + ccenter[1], point[2] * precision + ccenter[2]); + point+=POINTDIM; + } + } else if (l == 1) { + if(cm) cm->setColor(point); + glVertex3f( point[0] * precision + ccenter[0], point[1] * precision + ccenter[1], point[2] * precision + ccenter[2]); + } + } + } + } else { // recurse + int l = LOD2(ccenter[0], ccenter[1], ccenter[2], size/2.0); // only a single pixel on screen only paint one point + l = max((int)(l*l*ratio), 0); + if (l > 0) { + displayOctTreeCulledLOD2(ratio, children->node, ccenter, size/2.0); + } + } + ++children; // next child + } + } +} + +void compactTree::displayOctTreeLOD2(float ratio, cbitoct &node, double *center, double size ) { + double ccenter[3]; + cbitunion *children; + cbitoct::getChildren(node, children); + + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + childcenter(center, ccenter, size, i); // childrens center + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf get center + tshort *point = children->getPoints(); + lint length = children->getLength(); + + int l = LOD2(ccenter[0], ccenter[1], ccenter[2], size/2.0); // only a single pixel on screen only paint one point + l = max((int)(l*l*ratio), 0); + if (l > 1) { + if ((int)length > l ) { + double each = (double)POINTDIM * (double)((double)length/(double)l); + tshort *p; + int index; + for(int iterator = 0; iterator < l; iterator++ ) { + index = (double)iterator * each; + p = point + index - index%POINTDIM; + if(cm) cm->setColor(p); + glVertex3f( p[0] * precision + ccenter[0], p[1] * precision + ccenter[1], p[2] * precision + ccenter[2]); + } + } else if ((int)length <= l) { + for(unsigned int iterator = 0; iterator < length; iterator++ ) { + if(cm) cm->setColor(point); + glVertex3f( point[0] * precision + ccenter[0], point[1] * precision + ccenter[1], point[2] * precision + ccenter[2]); + point+=POINTDIM; + } + } + } else { + if(cm) cm->setColor(point); + glVertex3f( point[0] * precision + ccenter[0], point[1] * precision + ccenter[1], point[2] * precision + ccenter[2]); + } + } else { // recurse + int l = LOD2(ccenter[0], ccenter[1], ccenter[2], size/2.0); // only a single pixel on screen only paint one point + l = max((int)(l*l*ratio), 0); + if (l > 0) { + displayOctTreeLOD2(ratio, children->node, ccenter, size/2.0); + } + } + ++children; // next child + } + } +} + + +void compactTree::displayOctTreeCAllCulled( cbitoct &node, double *center, double size, double minsize ) { + int res = CubeInFrustum2(center[0], center[1], center[2], size); + if (res==0) return; // culled do not continue with this branch of the tree + + if (res == 2) { // if entirely within frustrum discontinue culling + displayOctTreeCAll(node, center, size, minsize); + return; + } + + double ccenter[3]; + cbitunion *children; + cbitoct::getChildren(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + childcenter(center, ccenter, size, i); // childrens center + if ( ( 1 << i ) & node.leaf || minsize > size ) { // if ith node is leaf get center + // check if leaf is visible + if ( CubeInFrustum(ccenter[0], ccenter[1], ccenter[2], size/2.0) ) { + showCube(ccenter, size/2.0); + } + } else { // recurse + displayOctTreeCAllCulled( children->node, ccenter, size/2.0, minsize); + } + ++children; // next child + } + } +} + +void compactTree::displayOctTreeCAll( cbitoct &node, double *center, double size, double minsize ) { + double ccenter[3]; + cbitunion *children; + cbitoct::getChildren(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + childcenter(center, ccenter, size, i); // childrens center + if ( ( 1 << i ) & node.leaf || minsize > size ) { // if ith node is leaf get center + showCube(ccenter, size/2.0); + } else { // recurse + displayOctTreeCAll( children->node, ccenter, size/2.0, minsize); + } + ++children; // next child + } + } +} + +void compactTree::showCube(double *center, double size) { + glLineWidth(1.0); + glBegin(GL_QUADS); // draw a cube with 6 quads + glColor3f(0.0f,1.0f,0.0f); // Set The Color To Green + glVertex3f(center[0] + size, center[1] + size, center[2] - size); + glVertex3f(center[0] - size, center[1] + size, center[2] - size); + glVertex3f(center[0] - size, center[1] + size, center[2] + size); + glVertex3f(center[0] + size, center[1] + size, center[2] + size); + glColor3f(1.0f,0.5f,0.0f); // Set The Color To Orange + + glVertex3f(center[0] + size, center[1] - size, center[2] + size); + glVertex3f(center[0] - size, center[1] - size, center[2] + size); + glVertex3f(center[0] - size, center[1] - size, center[2] - size); + glVertex3f(center[0] + size, center[1] - size, center[2] - size); + + glColor3f(1.0f,0.0f,0.0f); // Set The Color To Red + glVertex3f(center[0] + size, center[1] + size, center[2] + size); + glVertex3f(center[0] - size, center[1] + size, center[2] + size); + glVertex3f(center[0] - size, center[1] - size, center[2] + size); + glVertex3f(center[0] + size, center[1] - size, center[2] + size); + + glColor3f(1.0f,1.0f,0.0f); // Set The Color To Yellow + glVertex3f(center[0] + size, center[1] - size, center[2] - size); + glVertex3f(center[0] - size, center[1] - size, center[2] - size); + glVertex3f(center[0] - size, center[1] + size, center[2] - size); + glVertex3f(center[0] + size, center[1] + size, center[2] - size); + + glColor3f(0.0f,0.0f,1.0f); // Set The Color To Blue + glVertex3f(center[0] - size, center[1] + size, center[2] + size); + glVertex3f(center[0] - size, center[1] + size, center[2] - size); + glVertex3f(center[0] - size, center[1] - size, center[2] - size); + glVertex3f(center[0] - size, center[1] - size, center[2] + size); + + glColor3f(1.0f,0.0f,1.0f); // Set The Color To Violet + glVertex3f(center[0] + size, center[1] + size, center[2] - size); + glVertex3f(center[0] + size, center[1] + size, center[2] + size); + glVertex3f(center[0] + size, center[1] - size, center[2] + size); + glVertex3f(center[0] + size, center[1] - size, center[2] - size); + + + glEnd(); + +} + + + + +template +void compactTree::selectRay(vector &points) { + //selectRay(points, *root, center, size); +} + + +void compactTree::childcenter(double *pcenter, double *ccenter, double size, unsigned char i) { + switch (i) { + case 0: + ccenter[0] = pcenter[0] - size / 2.0; + ccenter[1] = pcenter[1] - size / 2.0; + ccenter[2] = pcenter[2] - size / 2.0; + break; + case 1: + ccenter[0] = pcenter[0] + size / 2.0; + ccenter[1] = pcenter[1] - size / 2.0; + ccenter[2] = pcenter[2] - size / 2.0; + break; + case 2: + ccenter[0] = pcenter[0] - size / 2.0; + ccenter[1] = pcenter[1] + size / 2.0; + ccenter[2] = pcenter[2] - size / 2.0; + break; + case 3: + ccenter[0] = pcenter[0] + size / 2.0; + ccenter[1] = pcenter[1] + size / 2.0; + ccenter[2] = pcenter[2] - size / 2.0; + break; + case 4: + ccenter[0] = pcenter[0] - size / 2.0; + ccenter[1] = pcenter[1] - size / 2.0; + ccenter[2] = pcenter[2] + size / 2.0; + break; + case 5: + ccenter[0] = pcenter[0] + size / 2.0; + ccenter[1] = pcenter[1] - size / 2.0; + ccenter[2] = pcenter[2] + size / 2.0; + break; + case 6: + ccenter[0] = pcenter[0] - size / 2.0; + ccenter[1] = pcenter[1] + size / 2.0; + ccenter[2] = pcenter[2] + size / 2.0; + break; + case 7: + ccenter[0] = pcenter[0] + size / 2.0; + ccenter[1] = pcenter[1] + size / 2.0; + ccenter[2] = pcenter[2] + size / 2.0; + break; + default: + break; + } +} + + +void compactTree::GetOctTreeCenter(vector&c) { GetOctTreeCenter(c, *root, center, size); } +void compactTree::AllPoints(vector &vp) { AllPoints(*compactTree::root, vp, center, size); } + +long compactTree::countNodes() { return 1 + countNodes(*root); } +long compactTree::countLeaves() { return 1 + countLeaves(*root); } + +void compactTree::setColorManager(ColorManager *_cm) { cm = _cm; } + +void compactTree::drawLOD(float ratio) { + switch (current_lod_mode) { + case 1: + glBegin(GL_POINTS); + displayOctTreeCulledLOD2(ratio , *root, center, size); + glEnd(); + break; + case 2: + /* +#ifdef WITH_GLEE + if (GLEE_ARB_point_parameters) { + glPointParameterfARB(GL_POINT_SIZE_MIN_ARB, 1.0); + glPointParameterfARB(GL_POINT_SIZE_MAX_ARB, 100000.0); + GLfloat p[3] = {0.0, 0.0000, 0.0000005}; + glPointParameterfvARB(GL_POINT_DISTANCE_ATTENUATION_ARB, p); + displayOctTreeCPAllCulled(*BOctTree::root, BOctTree::center, BOctTree::size, BOctTree::size/ pow(2, min( (int)(ratio * BOctTree::max_depth ), BOctTree::max_depth - 3) ) ); + p[0] = 1.0; + p[2] = 0.0; + glPointParameterfvARB(GL_POINT_DISTANCE_ATTENUATION_ARB, p); + } +#endif +*/ + //break; + case 0: + glBegin(GL_POINTS); + displayOctTreeCulledLOD(maxtargetpoints * ratio, *root, center, size); + glEnd(); + break; + default: + break; + } +} + +void compactTree::draw() { + displayOctTreeAllCulled(*root, center, size); +} + +void compactTree::displayOctTree(double minsize ) { + displayOctTreeCAllCulled(*root, center, size, minsize); +} + +shortpointrep* compactTree::createPoints(lint length) { + //shortpointrep *points = new shortpointrep[POINTDIM*length]; + shortpointrep *points = alloc->allocate (POINTDIM*length); + return points; +} +void compactTree::deserialize(std::string filename ) { + char buffer[sizeof(float) * 20]; + float *p = reinterpret_cast(buffer); + + std::ifstream file; + file.open (filename.c_str(), std::ios::in | std::ios::binary); + + // read magic bits + file.read(buffer, 2); + if ( buffer[0] != 'X' || buffer[1] != 'T') { + std::cerr << "Not an octree file!!" << endl; + file.close(); + return; + } + + // read header + pointtype = PointType::deserialize(file); + + file.read(buffer, 5 * sizeof(float)); + voxelSize = p[0]; + center[0] = p[1]; + center[1] = p[2]; + center[2] = p[3]; + size = p[4]; + + file.read(buffer, sizeof(int)); + int *ip = reinterpret_cast(buffer); + POINTDIM = *ip; + + float *fmins = new float[POINTDIM]; + float *fmaxs = new float[POINTDIM]; + mins = new double[POINTDIM]; + maxs = new double[POINTDIM]; + + file.read(reinterpret_cast(fmins), POINTDIM * sizeof(float)); + file.read(reinterpret_cast(fmaxs), POINTDIM * sizeof(float)); + + for (unsigned int i = 0; i < POINTDIM; i++) { + mins[i] = fmins[i]; + maxs[i] = fmaxs[i]; + } + + double vs = size; + while (vs > voxelSize) { + vs = vs * 0.5; + } +// precision = vs / 32768; // 2^15 + precision = vs / TSHORT_MAXP1; // 2^15 + + + // read root node + //root = new cbitoct(); + root = alloc->allocate(); + deserialize(file, *root ); + file.close(); +} + + + + +void compactTree::deserialize(std::ifstream &f, cbitoct &node) { + char buffer[2]; + f.read(buffer, 2); + node.valid = buffer[0]; + node.leaf = buffer[1]; + + unsigned short n_children = POPCOUNT(node.valid); + + // create children + //cbitunion *children = new cbitunion[n_children]; + cbitunion *children = alloc->allocate >(n_children); + cbitoct::link(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf read points + lint length; + f.read(reinterpret_cast(&length), sizeof(lint)); + shortpointrep *points = createPoints(length); + + f.read(reinterpret_cast(points), sizeof(shortpointrep) * length * POINTDIM); // read the points + children->linkPoints(points, length); + } else { // write child + deserialize(f, children->node); + } + ++children; // next child + } + } +} + + + +void compactTree::serialize(std::string filename) { + char buffer[sizeof(float) * 20]; + float *p = reinterpret_cast(buffer); + + std::ofstream file; + file.open (filename.c_str(), std::ios::out | std::ios::binary); + + // write magic bits + buffer[0] = 'X'; + buffer[1] = 'T'; + file.write(buffer, 2); + + // write header + pointtype.serialize(file); + + p[0] = voxelSize; + p[1] = center[0]; + p[2] = center[1]; + p[3] = center[2]; + p[4] = size; + + int *ip = reinterpret_cast(&(buffer[5 * sizeof(float)])); + *ip = POINTDIM; + + file.write(buffer, 5 * sizeof(float) + sizeof(int)); + + + for (unsigned int i = 0; i < POINTDIM; i++) { + p[i] = mins[i]; + } + for (unsigned int i = 0; i < POINTDIM; i++) { + p[i+POINTDIM] = maxs[i]; + } + + file.write(buffer, 2*POINTDIM * sizeof(float)); + + // write root node + serialize(file, *root); + + file.close(); +} + + +void compactTree::serialize(std::ofstream &of, cbitoct &node) { + char buffer[2]; + buffer[0] = node.valid; + buffer[1] = node.leaf; + of.write(buffer, 2); + + // write children + cbitunion *children; + cbitoct::getChildren(node, children); + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf write points + tshort *points = children->getPoints(); + lint length = children->getLength(); + + of.write(reinterpret_cast(&length), sizeof(lint) ); + + of.write(reinterpret_cast(points), POINTDIM*length*sizeof(tshort) ); + + } else { // write child + serialize(of, children->node); + } + ++children; // next child + } + } +} diff --git a/.svn/pristine/6a/6abed787d26b788f55ee1661d60813cb62896f1a.svn-base b/.svn/pristine/6a/6abed787d26b788f55ee1661d60813cb62896f1a.svn-base new file mode 100644 index 0000000..429114a --- /dev/null +++ b/.svn/pristine/6a/6abed787d26b788f55ee1661d60813cb62896f1a.svn-base @@ -0,0 +1,5978 @@ + + + + + + C++ + 1 + UTF-8 + connect + impl_virtual + + 1000 + none + 0 + MyProject1 + + . + + 1 + 0 + 0 + + + + + 1 + + + + 0 + wxID_ANY + + + Selection + + 229,1328 + wxDEFAULT_FRAME_STYLE + + Selection + + + wxFILTER_NONE + wxDefaultValidator + + + + wxTAB_TRAVERSAL + 1 + + + + OnClose + + + + + + + + + + + + + + + + + + + + + + + + + + + + bSizer1 + wxVERTICAL + public + + 5 + wxRIGHT|wxLEFT + 0 + + + 1 + + 1 + + + 0 + wxID_ANY + Draw Points + + + m_checkBox1 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnDrawPoints + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxRIGHT|wxLEFT + 0 + + + 1 + + 1 + + + 0 + wxID_ANY + Draw Cameras + + + m_checkBox2 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnDrawCameras + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxRIGHT|wxLEFT + 0 + + + 1 + + 1 + + + 0 + wxID_ANY + Draw Paths + + + m_checkBox3 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnDrawPaths + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT|wxEXPAND + 0 + + + + 1 + + + 0 + wxID_ANY + + + m_panel2 + protected + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + wxTAB_TRAVERSAL + + + + + + + + + + + + + + + + + + + + + + + + + + bSizer3 + wxHORIZONTAL + none + + 5 + wxALL + 0 + + + + 1 + + + 0 + wxID_ANY + Point Size: + + + m_staticText2 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + 0 + 10 + + 0 + + m_spinCtrl1 + protected + + + wxSP_ARROW_KEYS + + + + wxFILTER_NONE + wxDefaultValidator + + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + OnPointSize + + + + + + + + + 5 + wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT|wxEXPAND + 0 + + + + 1 + + + 0 + wxID_ANY + + + m_panel21 + protected + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + wxTAB_TRAVERSAL + + + + + + + + + + + + + + + + + + + + + + + + + + bSizer31 + wxHORIZONTAL + none + + 5 + wxALL + 0 + + + + 1 + + + 0 + wxID_ANY + Fog: + + + m_staticText21 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxRIGHT|wxLEFT + 0 + + + "None" "Black Exp" "Black Exp2" "Black Linear" "White Exp" "White Exp2" "White Linear" + + 1 + + + 0 + wxID_ANY + + + m_choice1 + protected + + 1 + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnFogChoice + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT|wxEXPAND + 0 + + + + 1 + + + 0 + wxID_ANY + + + m_panel3 + protected + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + wxTAB_TRAVERSAL + + + + + + + + + + + + + + + + + + + + + + + + + + bSizer6 + wxHORIZONTAL + none + + 5 + wxALL + 0 + + + + 1 + + + 0 + wxID_ANY + Fog Density: + + + m_staticText4 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + 7 + 10 + + 0 + + m_spinCtrl2 + protected + + + wxSP_ARROW_KEYS + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnFogDensity + + + + + + + + + 5 + wxALIGN_CENTER_HORIZONTAL + 0 + + wxID_ANY + Color: + + sbSizer3 + wxVERTICAL + none + + + 5 + wxRIGHT|wxLEFT|wxALIGN_RIGHT|wxEXPAND + 0 + + + + 1 + + + 0 + wxID_ANY + + + m_panel211 + protected + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + wxTAB_TRAVERSAL + + + + + + + + + + + + + + + + + + + + + + + + + + bSizer311 + wxHORIZONTAL + none + + 5 + wxALL + 0 + + + + 1 + + + 0 + wxID_ANY + value: + + + m_staticText211 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxRIGHT|wxLEFT + 0 + + + "height" "reflectance" "amplitude" "deviation" "type" + + 1 + + + 0 + wxID_ANY + + + m_choice11 + protected + + 4 + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnColorValue + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxRIGHT|wxLEFT|wxALIGN_RIGHT|wxEXPAND + 0 + + + + 1 + + + 0 + wxID_ANY + + + m_panel212 + protected + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + wxTAB_TRAVERSAL + + + + + + + + + + + + + + + + + + + + + + + + + + bSizer312 + wxHORIZONTAL + none + + 5 + wxALL + 0 + + + + 1 + + + 0 + wxID_ANY + map: + + + m_staticText212 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxRIGHT|wxLEFT + 0 + + + "Solid" "Grey" "HSV" "Jet" "Hot" "Rand" "SHSV" + + 1 + + + 0 + wxID_ANY + + + m_choice12 + protected + + 0 + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnColorMap + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxRIGHT|wxLEFT|wxALIGN_RIGHT|wxEXPAND + 0 + + + + 1 + + + 0 + wxID_ANY + + + m_panel213 + protected + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + wxTAB_TRAVERSAL + + + + + + + + + + + + + + + + + + + + + + + + + + bSizer313 + wxHORIZONTAL + none + + 5 + wxALL + 0 + + + + 1 + + + 0 + wxID_ANY + type: + + + m_staticText213 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxRIGHT|wxLEFT + 0 + + + "None" "Id Scans by Color" "Color by Points" + + 1 + + + 0 + wxID_ANY + + + m_choice13 + protected + + 0 + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnColorType + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxRIGHT|wxLEFT|wxALIGN_RIGHT|wxEXPAND + 0 + + + + 1 + + + 0 + wxID_ANY + + + m_panel411 + protected + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + wxTAB_TRAVERSAL + + + + + + + + + + + + + + + + + + + + + + + + + + bSizer51 + wxHORIZONTAL + none + + 5 + wxALL + 0 + + + + 1 + + + 0 + wxID_ANY + Min Val: + + + m_staticText411 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + 0 + 100 + + -100 + + m_spinCtrl61 + protected + + + wxSP_ARROW_KEYS + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnColorMinVal + + + + + + + + + 5 + wxRIGHT|wxLEFT|wxALIGN_RIGHT|wxEXPAND + 0 + + + + 1 + + + 0 + wxID_ANY + + + m_panel41 + protected + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + wxTAB_TRAVERSAL + + + + + + + + + + + + + + + + + + + + + + + + + + bSizer5 + wxHORIZONTAL + none + + 5 + wxALL + 0 + + + + 1 + + + 0 + wxID_ANY + Max Val: + + + m_staticText41 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + 6 + 10 + + 0 + + m_spinCtrl6 + protected + + + wxSP_ARROW_KEYS + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnColorMaxVal + + + + + + + + + 5 + wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT + 0 + + + + 0 + 1 + + + 0 + wxID_ANY + Reset Min/Max + + + m_button4 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnColorResetMinMax + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND | wxALL + 0 + + + + 1 + + + 0 + wxID_ANY + + + m_staticline1 + protected + + + wxLI_HORIZONTAL + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT + 0 + + + + 0 + 1 + + + 0 + wxID_ANY + Invert + + + m_button3 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnInvert + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + + + m_panel4 + protected + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + wxTAB_TRAVERSAL + + + + + + + + + + + + + + + + + + + + + + + + + + bSizer7 + wxHORIZONTAL + none + + 5 + wxALL + 0 + + + + 1 + + + 0 + wxID_ANY + Anim delay: + + + m_staticText6 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + 0 + 10 + + 0 + + m_spinCtrl3 + protected + + + wxSP_ARROW_KEYS + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnAnimDelay + + + + + + + + + 5 + wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT + 0 + + + + 0 + 1 + + + 0 + wxID_ANY + Animate + + + m_button5 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnAnimate + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND | wxALL + 0 + + + + 1 + + + 0 + wxID_ANY + + + m_staticline2 + protected + + + wxLI_HORIZONTAL + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_HORIZONTAL + 0 + + wxID_ANY + Camera Path: + + sbSizer2 + wxVERTICAL + none + + + 5 + wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + + + m_panel412 + protected + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + wxTAB_TRAVERSAL + + + + + + + + + + + + + + + + + + + + + + + + + + bSizer52 + wxHORIZONTAL + none + + 5 + wxALL + 0 + + + + 1 + + + 0 + wxID_ANY + File: + + + m_staticText412 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + + 0 + + m_textCtrl1 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnCameraFile + + + + + + + + + + + 5 + wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT + 0 + + + + 0 + 1 + + + 0 + wxID_ANY + Save Path + + + m_button51 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnCameraSavePath + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT + 0 + + + + 0 + 1 + + + 0 + wxID_ANY + Load Path + + + m_button6 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnCameraLoadPath + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT + 0 + + + + 0 + 1 + + + 0 + wxID_ANY + Load Robot Path + + + m_button14 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnCameraLoadRobotPath + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxALL + 0 + + + + 1 + + + 0 + wxID_ANY + + + m_staticline4 + protected + + + wxLI_HORIZONTAL + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxRIGHT|wxLEFT + 0 + + + 0 + + 1 + + + 0 + wxID_ANY + Save Animation + + + m_checkBox4 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnSaveAnimation + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT + 0 + + + + 0 + 1 + + + 0 + wxID_ANY + Animate path + + + m_button7 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnAnimatePath + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_HORIZONTAL + 0 + + wxID_ANY + Position: + + sbSizer21 + wxVERTICAL + none + + + 5 + wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + + + m_panel4121 + protected + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + wxTAB_TRAVERSAL + + + + + + + + + + + + + + + + + + + + + + + + + + bSizer521 + wxHORIZONTAL + none + + 5 + wxALL + 0 + + + + 1 + + + 0 + wxID_ANY + File: + + + m_staticText4121 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + + 0 + + m_textCtrl11 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnPositionFile + + + + + + + + + + + 5 + wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT + 0 + + + + 0 + 1 + + + 0 + wxID_ANY + Save Pose + + + m_button511 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnPositionSave + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT + 0 + + + + 0 + 1 + + + 0 + wxID_ANY + Load Pose + + + m_button61 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnPositionLoad + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + + + m_panel4131 + protected + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + wxTAB_TRAVERSAL + + + + + + + + + + + + + + + + + + + + + + + + + + bSizer531 + wxHORIZONTAL + none + + 5 + wxALL + 0 + + + + 1 + + + 0 + wxID_ANY + Factor + + + m_staticText4131 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + 0 + 10 + + 0 + + m_spinCtrl621 + protected + + + wxSP_ARROW_KEYS + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnFactor + + + + + + + + + 5 + wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT + 0 + + + + 0 + 1 + + + 0 + wxID_ANY + Save image + + + m_button71 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnSaveImage + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxEXPAND + 0 + + + + 1 + + + 0 + wxID_ANY + + + m_staticline3 + protected + + + wxLI_HORIZONTAL + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_HORIZONTAL + 0 + + wxID_ANY + Selection: + + sbSizer211 + wxVERTICAL + none + + + 5 + wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + + + m_panel41211 + protected + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + wxTAB_TRAVERSAL + + + + + + + + + + + + + + + + + + + + + + + + + + bSizer5211 + wxHORIZONTAL + none + + 5 + wxALL + 0 + + + + 1 + + + 0 + wxID_ANY + File: + + + m_staticText41211 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + + 0 + + m_textCtrl111 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnSelectionFile + + + + + + + + + + + 5 + wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT + 0 + + + + 0 + 1 + + + 0 + wxID_ANY + Save selected points + + + m_button5111 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnSelectionSave + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT + 0 + + + + 0 + 1 + + + 0 + wxID_ANY + Clear selected points + + + m_button611 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnSelectionClear + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT|wxEXPAND + 0 + + + 1 + + 1 + + + 0 + wxID_ANY + Select/Unselect + + + m_checkBox5 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnSelectionSU + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT|wxEXPAND + 0 + + + 0 + + 1 + + + 0 + wxID_ANY + Select Voxels + + + m_checkBox6 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnSelectionSV + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + + + m_panel41311 + protected + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + wxTAB_TRAVERSAL + + + + + + + + + + + + + + + + + + + + + + + + + + bSizer5311 + wxHORIZONTAL + none + + 5 + wxALL + 0 + + + + 1 + + + 0 + wxID_ANY + Depth: + + + m_staticText41311 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + 0 + 10 + + 0 + + m_spinCtrl6211 + protected + + + wxSP_ARROW_KEYS + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnSelectionDepth + + + + + + + + + 5 + wxEXPAND|wxRIGHT|wxLEFT + 1 + + + + 1 + + + 0 + wxID_ANY + + + m_panel413111 + protected + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + wxTAB_TRAVERSAL + + + + + + + + + + + + + + + + + + + + + + + + + + bSizer53111 + wxHORIZONTAL + none + + 5 + wxALL + 0 + + + + 1 + + + 0 + wxID_ANY + Brushsize: + + + m_staticText413111 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + 0 + 10 + + 0 + + m_spinCtrl62111 + protected + + + wxSP_ARROW_KEYS + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnSelectionBrushsize + + + + + + + + + + + 5 + wxALIGN_CENTER_HORIZONTAL + 0 + + wxID_ANY + Advanced: + + sbSizer2111 + wxVERTICAL + none + + + 5 + wxEXPAND|wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + + + m_panel413112 + protected + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + wxTAB_TRAVERSAL + + + + + + + + + + + + + + + + + + + + + + + + + + bSizer53112 + wxHORIZONTAL + none + + 5 + wxALL + 0 + + + + 1 + + + 0 + wxID_ANY + Frame #: + + + m_staticText413112 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + 0 + 10 + + 0 + + m_spinCtrl62112 + protected + + + wxSP_ARROW_KEYS + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnFrameSpinner + + + + + + + + + 5 + wxEXPAND|wxRIGHT|wxLEFT + 1 + + + + 1 + + + 0 + wxID_ANY + + + m_panel4131111 + protected + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + wxTAB_TRAVERSAL + + + + + + + + + + + + + + + + + + + + + + + + + + bSizer531111 + wxHORIZONTAL + none + + 5 + wxALL + 0 + + + + 1 + + + 0 + wxID_ANY + FPS: + + + m_staticText4131111 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + 20 + 100 + + 1 + + m_spinCtrl621111 + protected + + + wxSP_ARROW_KEYS + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnFramerateSpinner + + + + + + + + + 5 + wxEXPAND | wxALL + 1 + + + + 1 + + + 0 + wxID_ANY + + + farplane_panel + protected + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + wxTAB_TRAVERSAL + + + + + + + + + + + + + + + + + + + + + + + + + + farplane_sizer + wxHORIZONTAL + none + + 5 + wxALL + 0 + + + + 1 + + + 0 + wxID_ANY + farplane: + + + farplane_text + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + 40000 + 100000 + + 1 + + farplane_spinner + protected + + + wxSP_ARROW_KEYS + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnFarplaneSpinner + + + + + + + + + 5 + wxEXPAND | wxALL + 1 + + + + 1 + + + 0 + wxID_ANY + + + nearplane_panel + protected + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + wxTAB_TRAVERSAL + + + + + + + + + + + + + + + + + + + + + + + + + + nearplane_sizer + wxHORIZONTAL + none + + 5 + wxALL + 0 + + + + 1 + + + 0 + wxID_ANY + nearplane: + + + nearplane_text + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + 10 + 100000 + + 1 + + nearplane_spinner + protected + + + wxSP_ARROW_KEYS + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnNearplaneSpinner + + + + + + + + + 5 + wxEXPAND | wxALL + 1 + + + + 1 + + + 0 + wxID_ANY + + + lod_panel + protected + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + wxTAB_TRAVERSAL + + + + + + + + + + + + + + + + + + + + + + + + + + lod_sizer + wxHORIZONTAL + none + + 5 + wxALL + 0 + + + + 1 + + + 0 + wxID_ANY + lod speed: + + + lod_text + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + 10 + 100000 + + 1 + + lod_spinner + protected + + + wxSP_ARROW_KEYS + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnLODAdaption + + + + + + + + + 5 + wxALL|wxALIGN_CENTER_HORIZONTAL + 0 + + + + 0 + 1 + + + 0 + wxID_ANY + Cycle LOD + + + cycleLOD + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnCycleLOD + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT + 0 + + + + 0 + 1 + + + 0 + wxID_ANY + Quit + + + m_button31 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + + + + 0 + wxID_ANY + + + Controls + + -1,-1 + wxDEFAULT_FRAME_STYLE + + Controls + + + wxFILTER_NONE + wxDefaultValidator + + + + wxTAB_TRAVERSAL + 1 + + + + OnClose + + + + + + + + + + + + + + + + + + + + + + + + + + + + bSizer17 + wxHORIZONTAL + none + + 5 + + 0 + + wxID_ANY + Settings: + + sbSizer5 + wxVERTICAL + none + + + 5 + wxEXPAND + 1 + + + bSizer26 + wxHORIZONTAL + none + + 5 + wxALL + 0 + + + + 1 + + + 0 + wxID_ANY + Apex Angle + + + m_staticText21 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxALIGN_RIGHT|wxLEFT|wxRIGHT + 0 + + + + 1 + + + 0 + wxID_ANY + 0 + 10 + + 0 + + m_spinCtrl11 + protected + + + wxSP_ARROW_KEYS + + + + wxFILTER_NONE + wxDefaultValidator + + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + OnApexAngle + + + + + + + + 5 + wxEXPAND + 1 + + + bSizer261 + wxHORIZONTAL + none + + 5 + wxALL + 0 + + + + 1 + + + 0 + wxID_ANY + Parallel Zoom + + + m_staticText211 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + 0 + 10 + + 0 + + m_spinCtrl111 + protected + + + wxSP_ARROW_KEYS + + + + wxFILTER_NONE + wxDefaultValidator + + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + OnParallelZoom + + + + + + + + + + 5 + + 0 + + wxID_ANY + Mode: + + sbSizer51 + wxVERTICAL + none + + + 5 + wxRIGHT|wxLEFT|wxEXPAND + 0 + + + + 0 + 1 + + + 0 + wxID_ANY + Top View + + + m_button15 + protected + + + wxBU_EXACTFIT + + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnTopView + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxRIGHT|wxLEFT|wxEXPAND + 0 + + + + 0 + 1 + + + 0 + wxID_ANY + Reset Position + + + m_button16 + protected + + + wxBU_EXACTFIT + + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnResetPosition + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + + 0 + + wxID_ANY + Camera: + + sbSizer52 + wxVERTICAL + none + + + 5 + wxEXPAND + 1 + + + bSizer262 + wxHORIZONTAL + none + + 5 + wxALL + 0 + + + + 1 + + + 0 + wxID_ANY + Choose Camera + + + m_staticText212 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxALIGN_RIGHT|wxLEFT|wxRIGHT + 0 + + + + 1 + + + 0 + wxID_ANY + 0 + 10 + + 0 + + m_spinCtrl112 + protected + + + wxSP_ARROW_KEYS + + + + wxFILTER_NONE + wxDefaultValidator + + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + OnChooseCamera + + + + + + + + 5 + wxRIGHT|wxLEFT|wxALIGN_CENTER_HORIZONTAL + 0 + + + + 0 + 1 + + + 0 + wxID_ANY + Add Camera + + + m_button19 + protected + + + wxBU_EXACTFIT + + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnAddCamera + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxRIGHT|wxLEFT|wxALIGN_CENTER_HORIZONTAL + 0 + + + + 0 + 1 + + + 0 + wxID_ANY + Delete Camera + + + m_button20 + protected + + + wxBU_EXACTFIT + + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnDeleteCamera + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + + 0 + + wxID_ANY + Settings: + + sbSizer521 + wxVERTICAL + none + + + 5 + wxRIGHT|wxLEFT + 0 + + + 1 + + 1 + + + 0 + wxID_ANY + MouseNav + + + m_checkBox7 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnMouseNav + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxRIGHT|wxLEFT + 0 + + + 0 + + 1 + + + 0 + wxID_ANY + Always all Points + + + m_checkBox8 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnAlwaysAllPoints + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxRIGHT|wxLEFT + 0 + + + 1 + + 1 + + + 0 + wxID_ANY + Always reduce Points + + + m_checkBox9 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnAlwaysReducePoints + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.svn/pristine/6b/6b660605e2ca88cf70ec528124301384bc241492.svn-base b/.svn/pristine/6b/6b660605e2ca88cf70ec528124301384bc241492.svn-base new file mode 100644 index 0000000..da78c59 --- /dev/null +++ b/.svn/pristine/6b/6b660605e2ca88cf70ec528124301384bc241492.svn-base @@ -0,0 +1,24 @@ + + +int glui_img_spinup_1[] = { 12, 8, /* width, height */ + 0, 0, 0, 127,127,127, 255,255,255, 255,255,255, 255,255,255, + 255,255,255, 255,255,255, 255,255,255, 255,255,255, 255,255,255, + 255,255,255, 255,255,255, 0, 0, 0, 127,127,127, 191,191,191, + 191,191,191, 191,191,191, 191,191,191, 191,191,191, 191,191,191, + 191,191,191, 191,191,191, 191,191,191, 255,255,255, 0, 0, 0, + 127,127,127, 191,191,191, 127,127,127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 191,191,191, 191,191,191, + 255,255,255, 0, 0, 0, 127,127,127, 191,191,191, 191,191,191, + 127,127,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191,191,191, + 191,191,191, 191,191,191, 255,255,255, 0, 0, 0, 127,127,127, + 191,191,191, 191,191,191, 191,191,191, 127,127,127, 0, 0, 0, + 191,191,191, 191,191,191, 191,191,191, 191,191,191, 255,255,255, + 0, 0, 0, 127,127,127, 191,191,191, 191,191,191, 191,191,191, + 191,191,191, 191,191,191, 191,191,191, 191,191,191, 191,191,191, + 191,191,191, 255,255,255, 0, 0, 0, 127,127,127, 127,127,127, + 127,127,127, 127,127,127, 127,127,127, 127,127,127, 127,127,127, + 127,127,127, 127,127,127, 191,191,191, 255,255,255, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 255,255,255, +}; diff --git a/.svn/pristine/6b/6bcf65e8501feed37ee85a1f8605c1c59994b104.svn-base b/.svn/pristine/6b/6bcf65e8501feed37ee85a1f8605c1c59994b104.svn-base new file mode 100644 index 0000000..f541f00 --- /dev/null +++ b/.svn/pristine/6b/6bcf65e8501feed37ee85a1f8605c1c59994b104.svn-base @@ -0,0 +1,43 @@ +/************************************************************************ +* +* lap.cpp + version 1.0 - 4 September 1996 + author: Roy Jonker @ MagicLogic Optimization Inc. + e-mail: roy_jonker@magiclogic.com + + Code for Linear Assignment Problem, according to + + "A Shortest Augmenting Path Algorithm for Dense and Sparse Linear + Assignment Problems," Computing 38, 325-340, 1987 + + by + + R. Jonker and A. Volgenant, University of Amsterdam. +* +*************************************************************************/ + +#include +#include +#include +#include + +using namespace std; + +#define BIG 100000 + +#if !defined TRUE +#define TRUE 1 +#endif +#if !defined FALSE +#define FALSE 0 +#endif + +typedef int Boolean; +typedef int row; +typedef int col; +typedef double cost; + +cost lap(int dim, cost **assigncost,col *rowsol, row *colsol,cost *u,cost *v); + +void checklap(int dim,cost **assigncost,col *rowsol,row *colsol,cost *u,cost *v); + diff --git a/.svn/pristine/6c/6c4b261df103f00d074ab9280019a913f8c093ff.svn-base b/.svn/pristine/6c/6c4b261df103f00d074ab9280019a913f8c093ff.svn-base new file mode 100644 index 0000000..7db2319 --- /dev/null +++ b/.svn/pristine/6c/6c4b261df103f00d074ab9280019a913f8c093ff.svn-base @@ -0,0 +1,105 @@ +/* + * history implementation + * + * Copyright (C) Stanislav Serebryakov + * + * Released under the GPL version 3. + * + */ + +#include "history.h" +#include + +Frame *allocFrame3DData(CvSize pmdSz) { + Frame *f = (Frame*)cvAlloc(sizeof(Frame)); + + f->sz = pmdSz; + f->img = 0; + + f->trn = cvCreateMat(3, 1, CV_32FC1); + f->rot = cvCreateMat(3, 1, CV_32FC1); + + f->status = (CvPoint**) cvAlloc(pmdSz.height * sizeof(CvPoint*)); + f->pts = (CvPoint3D32f**) cvAlloc(pmdSz.height * sizeof(CvPoint3D32f*)); + for(int i = 0; i < pmdSz.height; i++) { + f->status[i] = (CvPoint*) cvAlloc(pmdSz.width * sizeof(CvPoint)); + f->pts[i] = (CvPoint3D32f*) cvAlloc(pmdSz.width * sizeof(CvPoint3D32f)); + } + + return f; +} + +void fillFrame(Frame *f, IplImage *img, CvSize pmdSz, CvPoint3D32f **pts, CvPoint **status + , CvMat *rot, CvMat *trn, double alignError) { + + assert(pmdSz.width == f->sz.width || pmdSz.height == f->sz.height); + + if(f->img) cvCopy(img, f->img, NULL); + else f->img = cvCloneImage(img); + f->alignError = alignError; + + for(int j = 0; j < pmdSz.width; j++) + for(int i = 0; i < pmdSz.height; i++) { + f->status[i][j] = status[i][j]; + f->pts[i][j] = pts[i][j]; + } + + cvCopy(rot, f->rot, NULL); + cvCopy(trn, f->trn, NULL); +} + +void releaseFrame(Frame **f) { + Frame *t = *f; + cvReleaseImage(&t->img); + cvReleaseMat(&t->rot); + cvReleaseMat(&t->trn); + for(int i = 0; i < t->sz.height; i++) { + cvFree(&t->pts[i]); + cvFree(&t->status[i]); + } + cvFree(&t->pts); + cvFree(&t->status); + *f = NULL; +} + + +History *createHistory() { + History *h = (History*)cvAlloc(sizeof(History)); + h->frame = 0; + h->prev = 0; // essential!!! + return h; +} + +History *addFrame(History *h, Frame *f) { + if(!h->frame) { // first frame, FIXME: should be out here + h->prev = 0; // ensure + h->frame = f; + return h; + } + // else + History *n = (History*)cvAlloc(sizeof(History)); + n->prev = h; + n->frame = f; + return n; +} + +void releaseTail(History *h) { + History *tmp = h->prev; + History *prev = 0; + h->prev = 0; + while(tmp) { + prev = tmp->prev; + releaseFrame(&tmp->frame); + cvFree(&tmp); + tmp = prev; + } +} + +void checkHistoryLen(History *h, int maxLen) { + History *histI = h; + for(int i = 0; histI->prev; i++) + if(i > maxLen-2) // -2 because I release *prev* elemnents + releaseTail(histI); + else histI = histI->prev; +} + diff --git a/.svn/pristine/6c/6ce9de5226968ae0ad95868e8e6183771277ece1.svn-base b/.svn/pristine/6c/6ce9de5226968ae0ad95868e8e6183771277ece1.svn-base new file mode 100644 index 0000000..7562a03 --- /dev/null +++ b/.svn/pristine/6c/6ce9de5226968ae0ad95868e8e6183771277ece1.svn-base @@ -0,0 +1,42 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: thingdef.h +// Purpose: Definitions for wxThings +// Author: John Labenski +// Modified by: +// Created: 1/08/1999 +// RCS-ID: $Id: thingdef.h,v 1.2 2006/03/21 05:33:19 jrl1 Exp $ +// Copyright: (c) John Labenski +// Licence: wxWidgets licence +///////////////////////////////////////////////////////////////////////////// + +#ifndef __WX_THINGDEF_H__ +#define __WX_THINGDEF_H__ + +#include "wx/defs.h" + +// ---------------------------------------------------------------------------- +// DLLIMPEXP macros +// ---------------------------------------------------------------------------- + +// These are our DLL macros (see the contrib libs like wxPlot) +#ifdef WXMAKINGDLL_THINGS + #define WXDLLIMPEXP_THINGS WXEXPORT + #define WXDLLIMPEXP_DATA_THINGS(type) WXEXPORT type +#elif defined(WXUSINGDLL) + #define WXDLLIMPEXP_THINGS WXIMPORT + #define WXDLLIMPEXP_DATA_THINGS(type) WXIMPORT type +#else // not making nor using DLL + #define WXDLLIMPEXP_THINGS + #define WXDLLIMPEXP_DATA_THINGS(type) type +#endif + +// ---------------------------------------------------------------------------- +// wxWidgets backwards compatibility macros +// ---------------------------------------------------------------------------- + +#include "wx/dynarray.h" +#ifndef WX_DECLARE_OBJARRAY_WITH_DECL // for wx2.4 backwards compatibility + #define WX_DECLARE_OBJARRAY_WITH_DECL(T, name, expmode) WX_DECLARE_USER_EXPORTED_OBJARRAY(T, name, WXDLLIMPEXP_THINGS) +#endif + +#endif // __WX_THINGDEF_H__ diff --git a/.svn/pristine/6c/6cecb853bf01e91724b83c758ccc07a391c2f2e0.svn-base b/.svn/pristine/6c/6cecb853bf01e91724b83c758ccc07a391c2f2e0.svn-base new file mode 100644 index 0000000..e16f894 --- /dev/null +++ b/.svn/pristine/6c/6cecb853bf01e91724b83c758ccc07a391c2f2e0.svn-base @@ -0,0 +1,38 @@ + + +int glui_img_checkbox_0[] = { 13, 13, /* width, height */ + 255,255,255, 255,255,255, 255,255,255, 255,255,255, 255,255,255, + 255,255,255, 255,255,255, 255,255,255, 255,255,255, 255,255,255, + 255,255,255, 255,255,255, 255,255,255, 128,128,128, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 255,255,255, 128,128,128, 0, 0, 0, 255,255,255, 255,255,255, + 255,255,255, 255,255,255, 255,255,255, 255,255,255, 255,255,255, + 255,255,255, 255,255,255, 192,192,192, 255,255,255, 128,128,128, + 0, 0, 0, 255,255,255, 255,255,255, 255,255,255, 255,255,255, + 255,255,255, 255,255,255, 255,255,255, 255,255,255, 255,255,255, + 192,192,192, 255,255,255, 128,128,128, 0, 0, 0, 255,255,255, + 255,255,255, 255,255,255, 255,255,255, 255,255,255, 255,255,255, + 255,255,255, 255,255,255, 255,255,255, 192,192,192, 255,255,255, + 128,128,128, 0, 0, 0, 255,255,255, 255,255,255, 255,255,255, + 255,255,255, 255,255,255, 255,255,255, 255,255,255, 255,255,255, + 255,255,255, 192,192,192, 255,255,255, 128,128,128, 0, 0, 0, + 255,255,255, 255,255,255, 255,255,255, 255,255,255, 255,255,255, + 255,255,255, 255,255,255, 255,255,255, 255,255,255, 192,192,192, + 255,255,255, 128,128,128, 0, 0, 0, 255,255,255, 255,255,255, + 255,255,255, 255,255,255, 255,255,255, 255,255,255, 255,255,255, + 255,255,255, 255,255,255, 192,192,192, 255,255,255, 128,128,128, + 0, 0, 0, 255,255,255, 255,255,255, 255,255,255, 255,255,255, + 255,255,255, 255,255,255, 255,255,255, 255,255,255, 255,255,255, + 192,192,192, 255,255,255, 128,128,128, 0, 0, 0, 255,255,255, + 255,255,255, 255,255,255, 255,255,255, 255,255,255, 255,255,255, + 255,255,255, 255,255,255, 255,255,255, 192,192,192, 255,255,255, + 128,128,128, 0, 0, 0, 255,255,255, 255,255,255, 255,255,255, + 255,255,255, 255,255,255, 255,255,255, 255,255,255, 255,255,255, + 255,255,255, 192,192,192, 255,255,255, 128,128,128, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 192,192,192, + 255,255,255, 128,128,128, 128,128,128, 128,128,128, 128,128,128, + 128,128,128, 128,128,128, 128,128,128, 128,128,128, 128,128,128, + 128,128,128, 128,128,128, 128,128,128, 255,255,255, +}; diff --git a/.svn/pristine/6d/6d1e252e410290ff63a7ab6a12dd8df6a2334f6a.svn-base b/.svn/pristine/6d/6d1e252e410290ff63a7ab6a12dd8df6a2334f6a.svn-base new file mode 100644 index 0000000..fcabf17 --- /dev/null +++ b/.svn/pristine/6d/6d1e252e410290ff63a7ab6a12dd8df6a2334f6a.svn-base @@ -0,0 +1,147 @@ +/* + * io_types implementation + * + * Copyright (C) Thomas Escher, Kai Lingemann + * + * Released under the GPL version 3. + * + */ + +#include "scanserver/io_types.h" + +#ifdef _MSC_VER +//#include // TODO: TEST +#define strcasecmp _stricmp +#define strncasecmp _strnicmp +#else +#include +#endif + +#include +#include + +#include "slam6d/globals.icc" + +IOType formatname_to_io_type(const char * string) +{ + if (strcasecmp(string, "uos") == 0) return UOS; + else if (strcasecmp(string, "uos_map") == 0) return UOS_MAP; + else if (strcasecmp(string, "uos_frames") == 0) return UOS_FRAMES; + else if (strcasecmp(string, "uos_map_frames") == 0) return UOS_MAP_FRAMES; + else if (strcasecmp(string, "uos_rgb") == 0) return UOS_RGB; + else if (strcasecmp(string, "old") == 0) return OLD; + else if (strcasecmp(string, "rts") == 0) return RTS; + else if (strcasecmp(string, "rts_map") == 0) return RTS_MAP; + else if (strcasecmp(string, "ifp") == 0) return IFP; + else if (strcasecmp(string, "riegl_txt") == 0) return RIEGL_TXT; + else if (strcasecmp(string, "riegl_project") == 0) return RIEGL_PROJECT; + else if (strcasecmp(string, "riegl_rgb") == 0) return RIEGL_RGB; + else if (strcasecmp(string, "riegl_bin") == 0) return RIEGL_BIN; + else if (strcasecmp(string, "zahn") == 0) return ZAHN; + else if (strcasecmp(string, "ply") == 0) return PLY; + else if (strcasecmp(string, "wrl") == 0) return WRL; + else if (strcasecmp(string, "xyz") == 0) return XYZ; + else if (strcasecmp(string, "zuf") == 0) return ZUF; + else if (strcasecmp(string, "asc") == 0) return ASC; + else if (strcasecmp(string, "iais") == 0) return IAIS; + else if (strcasecmp(string, "front") == 0) return FRONT; + else if (strcasecmp(string, "x3d") == 0) return X3D; + else if (strcasecmp(string, "rxp") == 0) return RXP; + else if (strcasecmp(string, "ais") == 0) return AIS; + else if (strcasecmp(string, "oct") == 0) return OCT; + else if (strcasecmp(string, "txyzr") == 0) return TXYZR; + else if (strcasecmp(string, "xyzr") == 0) return XYZR; + else if (strcasecmp(string, "xyz_rgb") == 0) return XYZ_RGB; + else if (strcasecmp(string, "ks") == 0) return KS; + else if (strcasecmp(string, "ks_rgb") == 0) return KS_RGB; + else if (strcasecmp(string, "stl") == 0) return STL; + else if (strcasecmp(string, "leica") == 0) return LEICA; + else if (strcasecmp(string, "pcl") == 0) return PCL; + else if (strcasecmp(string, "pci") == 0) return PCI; + else if (strcasecmp(string, "cad") == 0) return UOS_CAD; + else if (strcasecmp(string, "velodyne") == 0) return VELODYNE; + else if (strcasecmp(string, "velodyne_frames") == 0) return VELODYNE_FRAMES; + else throw std::runtime_error(std::string("Io type ") + string + std::string(" is unknown")); +} + +const char * io_type_to_libname(IOType type) +{ + switch (type) { + case UOS: + return "scan_io_uos"; + case UOS_MAP: + return "scan_io_uos_map"; + case UOS_FRAMES: + return "scan_io_uos_frames"; + case UOS_MAP_FRAMES: + return "scan_io_uos_map_frames"; + case UOS_RGB: + return "scan_io_uos_rgb"; + case OLD: + return "scan_io_old"; + case RTS: + return "scan_io_rts"; + case RTS_MAP: + return "scan_io_rts_map"; + case IFP: + return "scan_io_ifp"; + case RIEGL_TXT: + return "scan_io_riegl_txt"; + case RIEGL_PROJECT: + return "scan_io_riegl_project"; + case RIEGL_RGB: + return "scan_io_riegl_rgb"; + case RIEGL_BIN: + return "scan_io_riegl_bin"; + case ZAHN: + return "scan_io_zahn"; + case PLY: + return "scan_io_ply"; + case WRL: + return "scan_io_wrl"; + case XYZ: + return "scan_io_xyz"; + case ZUF: + return "scan_io_zuf"; + case ASC: + return "scan_io_asc"; + case IAIS: + return "scan_io_iais"; + case FRONT: + return "scan_io_front"; + case X3D: + return "scan_io_x3d"; + case RXP: + return "scan_io_rxp"; + case AIS: + return "scan_io_ais"; + case OCT: + return "scan_io_oct"; + case TXYZR: + return "scan_io_txyzr"; + case XYZR: + return "scan_io_xyzr"; + case XYZ_RGB: + return "scan_io_xyz_rgb"; + case KS: + return "scan_io_ks"; + case KS_RGB: + return "scan_io_ks_rgb"; + case STL: + return "stl"; + case LEICA: + return "leica_txt"; + case PCL: + return "pcl"; + case PCI: + return "pci"; + case UOS_CAD: + return "cad"; + case VELODYNE: + return "scan_io_velodyne"; + case VELODYNE_FRAMES: + return "velodyne_frames"; + default: + throw std::runtime_error(std::string("Io type ") + to_string(type) + std::string(" could not be matched to a library name")); + } +} diff --git a/.svn/pristine/6e/6e15dd5265bcec8ee09b08fccd5e6ae134c82f83.svn-base b/.svn/pristine/6e/6e15dd5265bcec8ee09b08fccd5e6ae134c82f83.svn-base new file mode 100644 index 0000000..c24fdf3 --- /dev/null +++ b/.svn/pristine/6e/6e15dd5265bcec8ee09b08fccd5e6ae134c82f83.svn-base @@ -0,0 +1,9097 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: frame1_final.eps +%%Creator: fig2dev Version 3.2 Patchlevel 3d +%%CreationDate: Thu Dec 4 14:21:18 2003 +%%For: root@rhum (root) +%%BoundingBox: 0 0 412 412 +%%Magnification: 1.0000 +%%EndComments +/$F2psDict 200 dict def +$F2psDict begin +$F2psDict /mtrx matrix put +/col-1 {0 setgray} bind def +/col0 {0.000 0.000 0.000 srgb} bind def +/col1 {0.000 0.000 1.000 srgb} bind def +/col2 {0.000 1.000 0.000 srgb} bind def +/col3 {0.000 1.000 1.000 srgb} bind def +/col4 {1.000 0.000 0.000 srgb} bind def +/col5 {1.000 0.000 1.000 srgb} bind def +/col6 {1.000 1.000 0.000 srgb} bind def +/col7 {1.000 1.000 1.000 srgb} bind def +/col8 {0.000 0.000 0.560 srgb} bind def +/col9 {0.000 0.000 0.690 srgb} bind def +/col10 {0.000 0.000 0.820 srgb} bind def +/col11 {0.530 0.810 1.000 srgb} bind def +/col12 {0.000 0.560 0.000 srgb} bind def +/col13 {0.000 0.690 0.000 srgb} bind def +/col14 {0.000 0.820 0.000 srgb} bind def +/col15 {0.000 0.560 0.560 srgb} bind def +/col16 {0.000 0.690 0.690 srgb} bind def +/col17 {0.000 0.820 0.820 srgb} bind def +/col18 {0.560 0.000 0.000 srgb} bind def +/col19 {0.690 0.000 0.000 srgb} bind def +/col20 {0.820 0.000 0.000 srgb} bind def +/col21 {0.560 0.000 0.560 srgb} bind def +/col22 {0.690 0.000 0.690 srgb} bind def +/col23 {0.820 0.000 0.820 srgb} bind def +/col24 {0.500 0.190 0.000 srgb} bind def +/col25 {0.630 0.250 0.000 srgb} bind def +/col26 {0.750 0.380 0.000 srgb} bind def +/col27 {1.000 0.500 0.500 srgb} bind def +/col28 {1.000 0.630 0.630 srgb} bind def +/col29 {1.000 0.750 0.750 srgb} bind def +/col30 {1.000 0.880 0.880 srgb} bind def +/col31 {1.000 0.840 0.000 srgb} bind def + +end +save +newpath 0 412 moveto 0 0 lineto 412 0 lineto 412 412 lineto closepath clip newpath +-73.7 527.2 translate +1 -1 scale + +/cp {closepath} bind def +/ef {eofill} bind def +/gr {grestore} bind def +/gs {gsave} bind def +/sa {save} bind def +/rs {restore} bind def +/l {lineto} bind def +/m {moveto} bind def +/rm {rmoveto} bind def +/n {newpath} bind def +/s {stroke} bind def +/sh {show} bind def +/slc {setlinecap} bind def +/slj {setlinejoin} bind def +/slw {setlinewidth} bind def +/srgb {setrgbcolor} bind def +/rot {rotate} bind def +/sc {scale} bind def +/sd {setdash} bind def +/ff {findfont} bind def +/sf {setfont} bind def +/scf {scalefont} bind def +/sw {stringwidth} bind def +/tr {translate} bind def +/tnt {dup dup currentrgbcolor + 4 -2 roll dup 1 exch sub 3 -1 roll mul add + 4 -2 roll dup 1 exch sub 3 -1 roll mul add + 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} + bind def +/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul + 4 -2 roll mul srgb} bind def +/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def +/$F2psEnd {$F2psEnteredState restore end} def + +$F2psBegin +10 setmiterlimit + 0.06299 0.06299 sc +% +% Fig objects follow +% +% Polyline +% +% pen to black in case this eps object doesn't set color first +0 0 0 setrgbcolor +% Begin Imported EPS File: frame1.eps +%%BeginDocument: frame1.eps +% +n gs +1170 1845 tr +12.500000 -12.500000 sc +0 -522 tr +-37 -160 tr +sa +n 37 160 m 559 160 l 559 682 l 37 682 l cp clip n +countdictstack +mark +/showpage {} def +% EPS file follows: +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: /home/scanner/docu/iav2004/frame1.eps +%%Creator: XV Version 3.10a Rev: 12/29/94 (PNG patch 1.2) - by John Bradley +%%BoundingBox: 37 160 559 682 +%%Pages: 1 +%%DocumentFonts: +%%EndComments +%%EndProlog + +%%Page: 1 1 + +% remember original state +/origstate save def + +% build a temporary dictionary +20 dict begin + +% define space for color conversions +/grays 600 string def % space for gray scale line +/npixls 0 def +/rgbindx 0 def + +% lower left corner +37 160 translate + +% size of image (on paper, in 1/72inch coords) +522.00000 522.00000 scale + +% define 'colorimage' if it isn't defined +% ('colortogray' and 'mergeprocs' come from xwd2ps +% via xgrab) +/colorimage where % do we know about 'colorimage'? + { pop } % yes: pop off the 'dict' returned + { % no: define one + /colortogray { % define an RGB->I function + /rgbdata exch store % call input 'rgbdata' + rgbdata length 3 idiv + /npixls exch store + /rgbindx 0 store + 0 1 npixls 1 sub { + grays exch + rgbdata rgbindx get 20 mul % Red + rgbdata rgbindx 1 add get 32 mul % Green + rgbdata rgbindx 2 add get 12 mul % Blue + add add 64 idiv % I = .5G + .31R + .18B + put + /rgbindx rgbindx 3 add store + } for + grays 0 npixls getinterval + } bind def + + % Utility procedure for colorimage operator. + % This procedure takes two procedures off the + % stack and merges them into a single procedure. + + /mergeprocs { % def + dup length + 3 -1 roll + dup + length + dup + 5 1 roll + 3 -1 roll + add + array cvx + dup + 3 -1 roll + 0 exch + putinterval + dup + 4 2 roll + putinterval + } bind def + + /colorimage { % def + pop pop % remove 'false 3' operands + {colortogray} mergeprocs + image + } bind def + } ifelse % end of 'false' case + + + +% define the colormap +/cmap 9 string def + + +% load up the colormap +currentfile cmap readhexstring +000000 ffffff 0000ff +pop pop % lose return values from readhexstring + + +% rlecmapimage expects to have 'w h bits matrix' on stack +/rlecmapimage { + /buffer 1 string def + /rgbval 3 string def + /block 384 string def + + % proc to read a block from file, and return RGB data + { currentfile buffer readhexstring pop + /bcount exch 0 get store + bcount 128 ge + { % it's a non-run block + 0 1 bcount 128 sub + { currentfile buffer readhexstring pop pop + + % look up value in color map + /rgbval cmap buffer 0 get 3 mul 3 getinterval store + + % and put it in position i*3 in block + block exch 3 mul rgbval putinterval + } for + block 0 bcount 127 sub 3 mul getinterval + } + + { % else it's a run block + currentfile buffer readhexstring pop pop + + % look up value in colormap + /rgbval cmap buffer 0 get 3 mul 3 getinterval store + + 0 1 bcount { block exch 3 mul rgbval putinterval } for + + block 0 bcount 1 add 3 mul getinterval + } ifelse + } % end of proc + false 3 colorimage +} bind def + + +600 600 8 % dimensions of data +[600 0 0 -600 0 600] % mapping matrix +rlecmapimage + +840100010001070181000132018300010001020181000182010001820100011901810001 +8401000100010a01850001000100010a0181000110018300010001070185000100010001 +820100010801810001820100010d018100012a0185000100010001820100010601810001 +01018100010801810001020183000100010a018300010001820100010801810001130185 +0001000100010901850001000100010d0183000100010901830001000101018100010901 +8100010101810001260181000102018300010001820100010c0185000100010001080185 +000100010001180183000100010d01810001820100018201000108018100011d01830001 +00010001 +0901810001270181000108018100012401810001820100010a01850001000100010c0181 +000182010001170183000100018201000108018100018601000100010001090183000100 +018401000100012701810001820100010801850001000100010201810001080181000101 +01810001080181000184010001000106018700010001000100011d018500010001000108 +018100018601000100010001080181000186010001000100010601810001860100010001 +00012c01810001840100010001070183000100018401000100010a018500010001000108 +018300010001180183000100018401000100010b01810001840100010001030181000117 +018100010601 +0301810001820100012d0181000182010001820100012e018100018401000100010c0183 +00010001820100011701810001820100010b018300010001090185000100010001820100 +0108018100012c01810001820100010e0183000100018201000106018700010001000100 +010a018100011f018100010a0183000100010d0183000100018401000100010801810001 +820100010101810001060181000186010001000100012a01810001840100010001090181 +0001820100010c0183000100011a018100010d018300010001820100010b018100011d01 +83000100010101 +010181000106018100018201000124018100010801810001820100010a01810001140181 +00018401000100010a018500010001000182010001070183000100018201000119018300 +0100018201000106018300010001820100010a01810001820100012c0183000100010401 +8100010101830001000186010001000100010601850001000100010b0187000100010001 +000108018100018201000115018500010001000109018700010001000100010d01810001 +0d018300010001820100013c0181000184010001000107018100018401000100010a0183 +0001000117018100018401000100010e018300010001080181000120010000 +08018100012c018100018201000182010001020181000102018100018301000100810001 +20018100018401000100010a01850001000100011a018100018401000100010901830001 +00010b01850001000100012f018300010001040181000101018100010a01810001840100 +0100010a0185000100010001080181000186010001000100012101870001000100010001 +080181000188010001000100010001040181000188010001000100010001090185000100 +010001820100012701830001000184010001000109018100018401000100010701810001 +84010001000107018100011d018300010001820100010b01830001000105018100011401 +8100010801 +810001820100018201000106018100012f01810001020181000108018100011901830001 +00010c018300010001070181000184010001000110018100010701870001000100010001 +090183000100018201000106018300010001010181000182010001230181000101018300 +010001020181000106018500010001000108018300010001840100010001080185000100 +0100010a01810001140187000100010001000108018100018401000100010d018100010f +01830001000130018100010901810001820100010c018500010001000107018100018401 +0001000115018300010001820100010a018100018201000182010001080183000100011d +0181000182010001 +0b018100012a018100010301810001070181000184010001000102018100011401810001 +08018500010001000182010001070183000100011a018500010001000109018300010001 +840100010001080181000182010001300181000108018300010001820100010a01830001 +00010a018300010001820100010a01850001000100011e01810001840100010001080183 +000100010b018700010001000100010401830001000102018300010001820100012c0183 +0001000109018300010001820100010c0183000100010a01810001190181000182010001 +820100010a018100018401000100011d018100010801 +030181000182010001820100010301810001240181000102018100010301830001000182 +01000107018100011c0183000100010c0183000100010a018100010f0181000109018300 +010001820100010801810001860100010001000109018300010001290181000186010001 +000100010801850001000100018201000108018500010001000108018500010001000182 +010001030181000115018100018401000100010801830001000108018100018601000100 +0100010b0183000100010101810001090181000125018100010601830001000182010001 +090181000186010001000100010701810001820100011901810001840100010001080181 +0001840100010001820100010801810001160181000103018100010601 +8201000109018100012a0181000184010001000106018100010201810001040181000114 +0181000182010001070185000100010001820100010701850001000100011a0183000100 +010b01830001000109018500010001000182010001030181000123018300010001080181 +000186010001000100010601890001000100010001000108018100018401000100010801 +830001000101018100011a01830001000108018100018601000100010001080181000184 +01000100010a018200010002008201000106018100012501810001090183000100018201 +00010c01810001090183000100011d0183000100010d0181000182010001050181000116 +018100010a01 +0701810001820100012a018100010a018100018401000100018401000100011f01850001 +000100010a01850001000100011a01830001000182010001060183000100018401000100 +010601850001000100010b01810001210181000106018700010001000100010801830001 +0001820100010c0185000100010001060185000100010001820100011b01810001080181 +00018401000100010a01830001000182010001080185000100010001820100010a018300 +01000104018100011d0101000501830001000182010001090183000100010a0183000100 +0182010001070181000111018100010b0183000100018401000100010801810001820100 +0102018100011a018100010401 +8100018401000100010901810001220181000105018300010001820100010c0181000182 +010001140183000100010c01830001000107018100018601000100010001170181000184 +010001000106018300010001840100010001080183000100018201000104018100012201 +83000100010f018100010c0181000184010001000105018100018401000100010c018300 +01000116018700010001000100010601850001000100010b018700010001000100010801 +8100018601000100010001080181000121018100010b0183000100010a01850001000100 +018201000107018100018201000119018300010001820100010d01830001000108018100 +01140181000103018100010701 +0801810001820100018201000129018100010a0181000182010001840100010001170181 +000107018500010001000182010001070183000100011a01850001000100010b01810001 +080181000186010001000100010401810001320185000100010001840100010001080185 +0001000100010601850001000100010a0181000186010001000100012201810001840100 +0100010601850001000100010d0187000100010001000109018500010001000105018100 +01210181000186010001000100010501850001000100010c018100018401000100010501 +83000100011101810001080181000184010001000182010001080183000100011c018100 +0182010001820100010501 +82010001840100010001060181000182010001820100011c018100010201810001080183 +000100010a0181000182010001110181000186010001000100010a018500010001000109 +01810001820100010e018100010a01830001000182010001060183000100010d01810001 +01018100018401000100011c018100010401850001000100010a01850001000100018201 +0001080183000100010a01850001000100010a01810001130183000100010d0185000100 +010001060183000100018201000122018100011e018100010b0181000182010001070183 +0001000184010001000109018100011c018300010001820100010a018100018201000108 +0181000116018100010e01 +0c0181000106018100011801810001030181000105018300010001050181000102018100 +012601850001000100010a01850001000100011701810001860100010001000106018100 +018401000100010801830001000184010001000104018100011e01830001000101018100 +010d01830001000108018700010001000100010801830001000182010001050181000123 +018900010001000100010001080181000182010001080187000100010001000182010001 +0301810001060181000182010001030181000103018100011a0183000100010201810001 +090183000100018201000109018300010001820100010501830001000182010001110181 +00010701810001840100010001820100010501810001820100011e018100018201000109 +01 +040181000184010001000106018100018201000116018100010301810001020183000100 +010501810001820100010201810001020181000102018100011701850001000100010a01 +8500010001000109018100010e0183000100010901850001000100010601810001020183 +000100010b0183000100011c018100010a01850001000100018401000100010801830001 +00010a018500010001000104018300010001010181000102018100010301810001150185 +000100010001080181000184010001000106018700010001000100010b0183000100010d +018100010301830001000101018100011501830001000103018100010101810001860100 +010001000107018100018401000100010901810001820100010201810001160181000182 +0100010c0181000108018100018201000182010001130181000103018100018401000100 +010401 +010181000106018100018201000182010001030181000113018100010301810001020181 +00010401810001820100010a01810001020181000116018100010a018500010001000107 +018100018601000100010001170185000100010001090183000100010201810001080183 +00010001070185000100010001170181000182010001010183000100010a018700010001 +0001000106018500010001000182010001030181000101018100010f0181000120018500 +01000100010201810001010183000100010a0181000186010001000100010b0181000110 +018100010401810001130181000101018100018201000109018300010001090181000184 +010001000107018100011501810001060183000100018201000182010001050183000100 +0182010001070181000111018100018201000109018100010101 +8100010301810001820100010b01810001820100010e0181000102018100010301810001 +040181000105018100018401000100018201000102018100011701810001040185000100 +0100010a0183000100011c01830001000108018300010001820100010801830001000184 +0100010001080181000106018100010f0183000100010a01810001060183000100010801 +850001000100010801830001000143018300010001010183000100018401000100010a01 +830001000101018100010901830001000101018500010001000104018100010201810001 +080181000186010001000100018201000105018500010001000107018100018401000100 +010901830001000108018100011001010082010001820100010a018100010b0183000100 +011c01820001008100010701 +81000182010001090181000184010001000101018100010b018300010001090181000102 +0183000100010201810001820100010a0181000102018300010001140183000100010a01 +850001000100010701830001000184010001000117018500010001000106018100018601 +000100010001080181000184010001000104018500010001000102018100010e01830001 +0001060181000101018100010a0185000100010001060185000100010001450181000106 +01810001080185000100010001090101000101850001000100010e018100018401000100 +01040183000100018401000100010201830001000111018100010b018300010001820100 +0107018300010001820100011b018100018201000107018100018401000100011e018100 +018201000106018100018301000100810001 +090183000100010901810001030181000184010001000108018100010d01810001080185 +000100010001260185000100010001070183000100018201000106018100011001830001 +000182010001080183000100010d01830001000106018300010001820100011101830001 +00010401850001000100010e018300010001040185000100010001100181000117018100 +010601810001220185000100010001840100010001040183000100010f01810001090181 +000106018100011201010082010001860100010001000107018300010001860100010001 +000107018100018201000109018100010f01850001000100010801810001840100010001 +08018100018401000100010201810001170183000100010901 +010183000100018201000109018300010001820100018201000101018100010701810001 +820100018401000100010301810001840100010001050183000100010801830001000183 +01000100810001150183000100010701810001840100010001090183000100011b018100 +018401000100010801830001000184010001000106018100010801810001840100010001 +0101830001000184010001000103018100010a0185000100010001040181000103018100 +01110181000117018100011f018100010201810001170185000100010001880100010001 +00010001020183000100010c018100010101830001000104018300010001820100010401 +830001000102018100010a01850001000100010c01850001000100010501830001000182 +0100011b01810001820100010a018300010001820100011e018300010001060181000184 +01000100010101 +0a01810001840100010001090181000103018300010001820100010b0181000109018100 +01050181000184010001000103018100011601830001000104018100018401000100010b +018100018201000119018500010001000106018100018601000100010001080181000184 +010001000101018100010d018100010a0181000102018100010101830001000110018100 +010201810001050181000126018100010101810001020181000112018100010201870001 +0001000100018801000100010001000101018100010b0183000100010101810001040183 +000100011001810001840100010001040185000100010001020183000100010301810001 +840100010001060181000186010001000100010a01830001000107018100011101830001 +000182010001050183000100018401000100010801810001820100011e01830001000103 +0181000182010001810100 +0401810001820100010c01820001008100010e0183000100010201810001030181000104 +018100010201810001820100010701810001020181000181010081000115018300010001 +0e018300010001070183000100010e018300010001060185000100010001090187000100 +010001000106018100010201830001000182010001030181000101018100018801000100 +010001000102018100010101810001030181000103018100018801000100010001000115 +018900010001000100010001820100010e018a0001000100010001000100810001010183 +000100010c01810001150181000102018700010001000100010a01810001820100010901 +810001010181000102018100010601830001000102018100010601810001820100010701 +830001000182010001090183000100010901830001000105018100011601810001820100 +010a018100010a018100012001010001018100010401 +810001820100010601810001840100010001820100010301810001820100018201000184 +010001000182010001050181000103018100010201810001040181000108018300010001 +080181000113018100010601810001860100010001000182010001040183000100018201 +000116018300010001820100010801850001000100010b01830001000102018300010001 +02018500010001000101018100010a018100010601830001000101018300010001190183 +000100018201000119018500010001000106018300010001030181000101018100010a01 +8100018c0100010001000100010001000102018100010c01830001000103018100010501 +830001000105018300010001020181000101018300010001060181000102018300010001 +840100010001030183000100010901830001000182010001060181000184010001000107 +01830001000111018100010a01830001000108018100018401000100011b018100018201 +000108018100018201000182010001 +08018100010c018100011301810001020181000103018100010201810001040181000184 +01000100010701810001820100018201000115018100018401000100010e018100010601 +810001820100010f018100010601810001020183000100010a0181000184010001000106 +018100010a0181000102018900010001000100010001880100010001000100010c018300 +0100010101850001000100018a01000100010001000100010c0183000100010c01810001 +04018900010001000100010001860100010001000101018100010a018100010f01810001 +0101850001000100010a018100010d018300010001030181000104018100010301810001 +840100010001010181000102018100010c018100010e0185000100010001070181000184 +010001000118018100018401000100010801830001000182010001080183000100010201 +81000117018300010001820100018201000102018100010001 +820100018201000182010001060183000100018201000103018100018201000184010001 +000182010001820100018201000102018100010201810001030183000100018401000100 +010a0183000100010601810001110101000a018100018601000100010001820100010201 +850001000100011301810001030183000100010201810001080185000100010001060183 +000100018201000106018500010001000102018100011201810001010102008201000182 +010001030181000113018900010001000100010001040183000100010501810001020183 +000100010101830001000104018100010101830001000103018100010401810001010181 +000117018100018401000100010a01850001000100010c01830001000102018100010801 +8100010601810001840100010001070181000186010001000100010c0185000100010001 +070183000100011101810001820100010501830001000182010001070181000182010001 +820100011a01810001820100010b010100820100010001 +070183000100018201000109018100011301810001140181000186010001000100010301 +8300010001020181000118018100018401000100010b0181000109018100010f01810001 +820100010a01830001000182010001040187000100010001000108018100010901810001 +010185000100010001020181000101018500010001000101010100130181000101018300 +0100010101830001000102018100010c0181000105018100010601830001000101018300 +010001820100010701810001020183000100010101810001060183000100010301810001 +820100010c01850001000100010101810001070185000100010001050181000101018100 +010201850001000100010401830001000182010001010181000103018300010001840100 +010001060181000186010001000100010a0183000100010a018100011001810001820100 +01070183000100010b0183000100010201810001170183000100018401000100010701 +040181000109018300010001820100010201810001040181000182010001020181000182 +0100010201810001840100010001820100018201000104018100010a0181000104018100 +0118018100010c0185000100010001040181000184010001000110018100010801850001 +00010001060183000100010d018100010201810001040183000100010101810001060181 +000101018100010101810001020181000101018100010101810001010189000100010001 +000100010201810001030181000108018500010001000106018500010001000103018100 +01860100010001000103018300010001020187000100010001000101018100010c018100 +010f01850001000100010f018100010d0181000102018100010101810001060183000100 +010701810001020181000109018300010001820100010901830001000109018100018401 +000100011b018100010a018100018401000100011c010100010181000109018300010001 +82010001810100 +830001000106018100018201000108018100010301810001060181000105018100010801 +8100010b0181000184010001000105018100010201010013018100010201830001000102 +018300010001070183000100010701810001820100010a01870001000100010001820100 +010601850001000100010801830001000184010001000101018100010201830001000108 +018100010201810001010181000101018100010a0181000101018100010e018100010101 +81000101018100018401000100010a018b00010001000100010001000104018700010001 +00010001010181000106018b0001000100010001000100010f01850001000100010c0181 +000184010001000103018100010201870001000100010001070181000106018300010001 +090183000100010201810001030185000100010001090185000100010001820100010401 +81000186010001000100010b018100010b01810001090181000184010001000182010001 +070181000182010001820100010101810001170183000100010d01 +050181000182010001050181000182010001820100010201810001040181000182010001 +020181000182010001050183000100010201810001050183000100010701810001820100 +010201810001820100011101810001010181000104018100010401830001000182010001 +0601810001820100011a0183000100018201000108018500010001000104018700010001 +000100010401810001820100010101810001040181000101018100010501810001880100 +010001000100010501810001030181000184010001000101018300010001010181000182 +010001030181000105018100018201000101018100010a01810001050181000101018100 +018601000100010001030183000100018601000100010001010183000100010a01830001 +00010201810001010181000106018100010e018100010101830001000101018100018401 +000100010401870001000100010001040181000102018100018201000104018100018401 +000100010b0183000100010a0185000100010001140183000100018401000100010a0181 +0001820100011e0101000a018100018401000100010501 +82010001820100010501810001820100010f018300010001030181000107018100010501 +81000102018100010a0183000100010501810001020101000a0181000106018100010901 +830001000106018100018401000100011501810001010185000100010001080183000100 +018201000103018100018401000100010801830001000182010001010181000101018100 +018201000105018300010001040181000103018100010301810001040181000101018100 +0101018100010c0181000105018100010401810001010189000100010001000100010601 +810001050185000100010001830100010081000182010001110183000100010501810001 +020181000101018100010701810001840100010001840100010001070183000100010601 +8100010a0181000182010001840100010001820100010101810001840100010001040183 +00010001820100010901850001000100018201000118018100010a018500010001000108 +018100018401000100011b01810001820100010b0183000100010001 +0601810001820100010801810001820100018401000100010f0183000100010201810001 +8201000109018100018401000100010d0181000103018100010101810001820100010a01 +8100010501810001040185000100010001090183000100010c0181000182010001070187 +000100010001000106018300010001080183000100018201000103018100018601000100 +010001040185000100010001010183000100010401830001000103018100010101830001 +00010201810001090183000100010601830001000103018100018c010001000100010001 +000100010101810001860100010001000101018700010001000100010401890001000100 +01000100010f0181000105018100010a0181000101018100010101810001090183000100 +018201000104018300010001040185000100010001020181000104010100020181000109 +018300010001820100010401850001000100010c018300010001820100010f0181000101 +018100010201830001000108018300010001820100010801810001030181000105018100 +018201000102018100010701810001820100018401000100010601 +010183000100010901810001820100010801810001820100010301810001840100010001 +0501810001820100010501850001000100010a0183000100018401000100010201810001 +0f0181000101018100010201820001008100010101810001820100010801810001840100 +01000105018100010e018500010001000104018300010001860100010001000106018500 +010001000106018100010b01830001000103018300010001040181000107018100010101 +810001040181000103018300010001050181000182010001070181000101018100010601 +870001000100010001080181000105018100018101000100860100010001000104018d00 +0100010001000100010001000111018100010e0183000100011201830001000106018100 +010201830001000105018100018401000100010b01830001000107018500010001000182 +0100010c0181000110018100010501830001000182010001070181000184010001000104 +018100010501810001060181000182010001820100018201000182010001080185000100 +010001 +0a0183000100010601810001840100010001060181000101018100010201810001840100 +010001050181000182010001060181000102018100018201000107018300010001060183 +000100018401000100010f01810001040181000186010001000100010601810001820100 +0182010001060183000100018101008100010401850001000100010d0183000100010e01 +82000100810001020183000100010301830001000106018b000100010001000100010001 +050181000102018100010301830001000114018300010001860100010001000101018100 +010301810001860100010001000101018900010001000100010001020102008801000100 +01000100010a018100010101810001820100010e01830001000104018300010001090189 +000100010001000100018401000100010101810001880100010001000100010401830001 +0001080183000100018401000100010601810001840100010001090183000100010f0181 +00010201850001000100018401000100010a0181000184010001000108018100010b0181 +00018401000100010d0181000107018100010201 +810001820100018401000100010601810001820100010b01810001820100010301810001 +050183000100010701810001820100010401810001020181000186010001000100010601 +8100010a0185000100010001060181000101018100018401000100010901850001000100 +010801850001000100010701810001820100010a01850001000100018201000105018100 +018801000100010001000106010100040181000106018500010001000103018300010001 +050181000103018100010a01810001120181000108018100010101870001000100010001 +040181000105018200010004000b018700010001000100010c0185000100010001040181 +000109010100060181000182010001040181000101018100010201810001060185000100 +0100018201000102018200010083000100010b0183000100018201000106018300010001 +840100010001050183000100010201810001840100010001020181000101018100010801 +8100010f0185000100010001090181000182010001080185000100010001820100010601 +83000100010701 +0b0181000182010001050181000184010001000182010001060181000182010001840100 +0100010501810001840100010001820100010601810001820100010e0181000101018300 +010001820100018201000101018100010601810001010181000107018500010001000182 +010001080181000101018300010001060183000100010701810001860100010001000108 +01850001000100010b018500010001000182010001010181000101018500010001000104 +018300010001010181000105018100010301810001840100010001160185000100010001 +080185000100010001080183000100010101850001000100010101810001030101008801 +000100010001000101018100010401830001000110018100010601810001040189000100 +010001000100010501810001010181000102018100010101850001000100010901810001 +07018100018401000100010b018500010001000109018100018401000100010301810001 +100183000100018201000101018100018201000184010001000182010001100181000184 +010001000182010001850100010001000100070181000182010001050181000102018100 +010001 +030181000184010001000109018100010b01810001820100010d01810001820100010b01 +8100010a0183000100018401000100011801830001000102018300010001820100010d01 +8300010001820100010501850001000100010501850001000100010b0185000100010001 +080187000100010001000104018100010201810001010183000100010601810001030181 +000101018b00010001000100010001000106018100011a01830001000188010001000100 +010001010187000100010001000105018100010201850001000100018101000100840100 +0100010301850001000100010a0181000119018100010201820001000100020182000100 +810001020181000101018100010101810001040181000104018300010001010181000101 +018100010901850001000100010c01850001000100010901810001070181000184010001 +000182010001090183000100018201000107018100018401000100010301810001140181 +00018201000182010001060183000100010801 +82010001090181000184010001000106018300010001820100010e018100018201000107 +01810001020181000182010001010181000186010001000100010a018100010301810001 +820100010101810001020181000106018300010001090187000100010001000182010001 +0101810001020101000701810001820100010b018700010001000100010b018300010001 +0d0183000100010101830001000102018500010001000101018300010001010181000102 +0181000102018100011f0189000100010001000100010401850001000100010101810001 +060102008101000100060181000101010100840100010001070101008601000100010001 +1d0181000108018100010401810001020181000101018500010001000106018100010701 +810001820100018601000100010001090185000100010001820100010901870001000100 +010001050181000182010001060101008401000100010c018100010d0181000105018100 +018401000100018201000104010100080181000182010001820100010201830001000182 +010001810100 +010181000182010001840100010001090183000100010901810001820100018401000100 +01820100010201810001820100010201810001020181000104018100010c018300010001 +820100010301810001020183000100010201810001050181000107018500010001000105 +018700010001000100010801850001000100010a01850001000100010e01810001820100 +011001810001020181000104018100010501810001030181000102018100010201830001 +000119018500010001000107018100018601000100010001010181000103018300010001 +820100010201810001020189000100010001000100010601870001000100010001030181 +000102018500010001000116018100010201810001820100010101810001020181000101 +018100010201810001030181000182010001010185000100010001020181000182010001 +82010001060183000100018401000100010901850001000100010c018100010401810001 +84010001000182010001010181000102018100018601000100010001820100010a018300 +01000184010001000101018100010b01850001000100018401000100010b018100010901 + +8100010e0183000100010801810001820100010601810001820100018401000100010501 +81000102018100010201810001040183000100018401000100010a018100018201000182 +010001020183000100018601000100010001050181000182010001040185000100010001 +0901870001000100010001080181000102018100010b0189000100010001000100010601 +830001000104018100010101820001008100010601810001010183000100010301810001 +040181000101018100012401870001000100010001080187000100010001000108018100 +01840100010001860100010001000181010001008201000109018300010001820100011e +018100010701810001060181000106018300010001010181000184010001000103018100 +010101810001040183000100018201000108018300010001820100010901850001000100 +018201000107018100010901810001010181000184010001000107018100018401000100 +010e0183000100018201000107018100018201000105018100018401000100010a018100 +0182010001 +080183000100018201000108018100018201000109018100010a01810001820100010201 +8100010201810001020183000100012b0183000100018201000101018100018201000106 +018300010001840100010001070181000186010001000100010901850001000100018201 +00010a01810001080183000100010301830001000182010001020181000101018d000100 +010001000100010001000110018100011601830001000101018100010101810001040185 +000100010001070181000183010001008200010082000100010004018300010001040187 +0001000100010001080185000100010001180181000106018100010b0183000100010401 +810001060183000100010101810001010181000109018500010001000109018500010001 +00010c018300010001820100010201850001000100018601000100010001070181000184 +010001000182010001070181000106018100010701810001820100018201000101018100 +01840100010001090183000100010a01 +81000182010001820100010b018100018201000103018300010001820100018201000103 +018100010301830001000105018100010201810001020181000106018100018401000100 +010901810001010181000184010001000184010001000102010200040181000101018100 +0104018100018401000100010b0183000100010901810001820100018401000100010801 +8300010001040181000108018300010001070101000301850001000100010e0181000101 +018500010001000116018700010001000100010501850001000100018401000100010101 +810001030183000100010701810001010181000101018200010089000100010001000100 +010401810001010187000100010001000106018500010001000110018100010a01810001 +030181000101018100010301810001040185000100010001040181000101018100010101 +810001820100010a0181000186010001000100010701850001000100010c018100010901 +810001020183000100018401000100010701810001840100010001030183000100010501 +810001840100010001820100010301810001070181000184010001000108018100010201 +8100010001 +090183000100018201000182010001050181000109018100018201000102018100010501 +810001820100010201810001020181000103018100018201000107018300010001840100 +01000110018100010201810001820100010401850001000100010b018500010001000104 +01870001000100010001820100010b018100010101810001060181000103018300010001 +820100010501810001820100010401830001000103018900010001000100010001020185 +0001000100010f018100011201850001000100010801810001010181000101018100010d +018100010101810001050181000103018500010001000109018100018101000100820100 +010a018100010b018100010c018100010101810001010181000103018300010001090181 +00010101810001820100010501850001000100010d018100018401000100010601810001 +8401000100010201810001070181000101018100010c0181000182010001040181000182 +010001840100010001120181000102018100018201000182010001080183000100018201 +000102018100010301 +010183000100018201000108018100018201000182010001050181000182010001060181 +000102018100018201000105018100011501810001090181000101018100018501000100 +0100830001000181010081000182010001020183000100010c01850001000100010a0181 +000108018100010701810001030181000104018300010001010181000111018100018201 +000105018100010a01810001050181000101018100011601870001000100010001050181 +000101018100010201830001000119018100010101810001010181000109018500010001 +00010a018700010001000100010e01810001820100010c01810001010181000102018300 +010001030181000186010001000100010201850001000100010101830001000109018500 +010001000102018100010601830001000184010001000104018100010201810001840100 +0100010201830001000186010001000100010a0183000100018401000100010501810001 +05018100018201000102018100010d018100018201000112010000 +0a0183000100018201000108018100018201000106018100018201000184010001000105 +018300010001030183000100018401000100010e01850001000100018201000102018500 +010001000106010100820100018401000100010901850001000100010901850001000100 +018201000182010001860100010001000101018100010301810001030181000102018700 +010001000100011301810001020187000100010001000101018100018801000100010001 +00010101810001010181000101018100010b018100010801810001090181000101018300 +0100011a0185000100010001030181000106018100010e0183000100010c018300010001 +050181000116018100010101810001040181000108018300010001050181000112018100 +01040183000100010b018300010001070183000100018201000102018100010701830001 +000184010001000107018100018401000100010d01810001020181000184010001000182 +01000108018100018401000100010201830001000101018100010101 +010181000182010001820100010801810001820100018201000108018200010081000108 +018100018201000105018100010901810001060183000100010501810001010181000185 +01000100010084000100010002000a0185000100010001820100010a0181000182010001 +070181000109018100010601850001000100018801000100010001000122018100018201 +0001050183000100010101810001010183000100010c0181000105018100010701830001 +000122018100010301890001000100010001000117018100010201830001000111018100 +010501810001060183000100010101810001010183000100010201870001000100010001 +020187000100010001000102018100011d018100010f0181000107018100018601000100 +010001820100010901810001820100010a01810001860100010001000182010001020181 +00010b018300010001820100011201810001 +810001090183000100018201000108018100018401000100010301810001010181000102 +0181000107018100010201810001820100018401000100010d0181000182010001010181 +000102018200010081000108018200010083000100018201000108018100018801000100 +010001000107018300010001030185000100010001820100010401810001010183000100 +010601810001010181000182010001100101000201810001030181000106018300010001 +030181000101018100010301810001080183000100010701850001000100010b01810001 +1e0183000100010501850001000100010f018100010a0181000124018100010101810001 +0301810001820100010a0183000100012601830001000102018100010801810001840100 +010001020181000182010001040183000100018201000107018300010001840100010001 +0d0181000102018100018201000182010001820100010701810001820100010401830001 +0001820100010301 +050181000182010001080181000184010001000109018200010081000103018100018401 +0001000184010001000102018100010e0183000100018401000100010701830001000104 +018300010001830100010087000100010001000102018100018601000100010001070181 +000101018100010201810001050181000108018100010201830001000106018300010001 +01018100011a018500010001000102018500010001000105018100010101810001010181 +00010101810001200181000103018100011c01810001030102008201000103018100010c +018100011101810001070181000101018100010301830001000107018100010201810001 +010183000100010401870001000100010001070181000112018100018201000114018300 +01000102018100010601810001820100010201810001090183000100010d018100010201 +830001000182010001080181000105018300010001030181000102018100010a01810001 +0001 +8201000182010001050181000182010001820100010a0181000182010001030101008201 +000182010001080183000100010201810001840100010001020181000106018100010201 +830001000182010001060181000184010001000104018100018201000101018100010901 +830001000182010001010181000108018100010101810001880100010001000100010601 +8100010201830001000108018700010001000100010d0181000106018300010001030187 +000100010001000101018100010101810001020181000107018100011501810001030181 +000114018100010501870001000100010001050183000100011b01810001260181000102 +0181000103018100010a0181000102018100010701810001090181000101018100010401 +810001820100011401850001000100010201010005018300010001820100010701830001 +000182010001110181000184010001000182010001820100018401000100010301810001 +0e018100010401 +060181000182010001080181000182010001840100010001050181000181010081000182 +010001020181000103018100010401810001020181000102018100010301810001820100 +010201810001090185000100010001020181000102018300010001840100010001090181 +00010d018100010101810001020181000105018100010401830001000102018100010301 +8300010001840100010001060183000100010e01810001820100010d0183000100010101 +810001020181000101018100010701830001000119018100010a01810001090185000100 +01000102018100018601000100010001010102002f018100011301810001020183000100 +010101870001000100010001860100010001000103018100011201850001000100018201 +000101018100011001810001090183000100010c01830001000102018100010501810001 +850100010001008100010201830001000102018100010301810001080183000100018201 +000104018100010201810001020181000101010000 +010181000182010001050181000182010001820100010801830001000182010001030181 +000108018100010501810001020181000105018100010d01850001000100018201000103 +018100018201000184010001000107018700010001000100018201000106018100010101 +810001820100010a0185000100010001020183000100010601850001000100010a018200 +0100010019018b0001000100010001000100010401810001010181000101018100012c01 +810001090185000100010001090182000100830001000101010100090181000137018500 +010001000101018100010401850001000100010301810001020183000100011101830001 +000104018100010201830001000112018500010001000184010001000184010001000102 +01810001820100010701810001020183000100010a018100010401810001050181000182 +010001820100010a01810001040181000102018100010301810001 +0701810001820100010501810001820100018401000100010b0181000103018100018201 +000184010001000182010001020181000102018300010001020181000104018500010001 +00010a018700010001000100018201000101010100850100010001008100010601810001 +020183000100010801810001080183000100010801810001840100010001080187000100 +010001000106018300010001080181000104018300010001010183000100010801810001 +010181000101018100010d01810001110181000101018100010a01870001000100010001 +0701860001000100010083000100018601000100010001810100020001018100010a0181 +0001820100011d0181000107018100010701810001010183000100010601830001000101 +01810001020183000100010c018100010401820001008700010001000100010201830001 +000102018100010601810001040181000104018100010a01830001000182010001090181 +000184010001000105018300010001820100018401000100018201000105018100018401 +000100010c0181000102018100010301 +0201810001820100010501810001820100010b0183000100018301000100830001000101 +0181000103018100010401810001820100010f0181000105018300010001860100010001 +000104018100018501000100010081000103018100018201000104018100012101870001 +000100010001060183000100018401000100010501810001860100010001000103018100 +010f01830001000103018100018601000100010001010181000101018100010101830001 +000119018100010901810001040181000105018900010001000100010001030185000100 +010001870100010001000100850001000100010201830001000101018100010a01010005 +018100010d01810001100183000100010101810001030183000100010601810001010181 +000103018100010b0181000181010001000701870001000100010001820100010d018300 +0100011b0183000100018201000109018100010301830001000108018300010001820100 +0108018300010001040181000102018100010601 +8100010601810001820100010b0183000100010501810001070183000100010501810001 +050183000100010201810001820100010501810001820100010b01830001000186010001 +00010001020181000184010001000104018100011a018100018201000105018300010001 +040183000100010801810001010181000108018500010001000106018100010401810001 +03018100018201000105018300010001010181000101018100010d018100010501810001 +0901810001030181000102018300010001030183000100010d0183000100010101880001 +0001000100010087000100010001000107018300010001010101000a018100010d018100 +010e01810001030181000101018100010501830001000182010001010181000102018100 +01820100010b01830001000102018500010001000106010100880100010001000100010b +018100018401000100010f01850001000100010501830001000182010001820100010201 +83000100010201810001840100010001820100010501810001820100010e018100010601 +82000100 +820100018201000182010001080183000100018201000182010001820100018401000100 +010501810001040181000102018100010201810001820100010201830001000182010001 +010181000101018100010901810001840100010001090183000100010201810001010181 +000124018500010001000104018300010001080183000100010101810001040185000100 +010001060181000103018100010401830001000182010001030185000100010001010183 +000100010101810001030181000115018100010101830001000101018300010001040187 +00010001000100010b018700010001000100010101830001000102018100010201810001 +0401870001000100010001080183000100010101810001090181000107018100010d0183 +0001000101018100010201830001000105018100018701000100010001008100010c0102 +00820100010801810001820100010801810001010181000102018300010001820100011f +018100010a01830001000184010001000105018100018401000100010801810001840100 +010001020181000107018100010401 +0c0183000100018201000182010001820100010801830001000182010001040181000102 +018100018401000100010501810001020181000101018100010701010001018300010001 +090183000100018201000101018100018401000100018201000118018100010801830001 +000104018100010601870001000100010001060185000100010001040183000100011001 +810001020183000100010101810001030181000103018100010101830001000119018500 +010001000103018300010001820100010b01870001000100010001070181000102010300 +81010084000100010001000a018900010001000100010001030182000100830001000101 +018100011701810001050181000101018100010401850001000100010901810001080181 +000104018100018401000100018201000106018700010001000100010401810001090181 +000101018100010501810001130181000184010001000184010001000184010001000184 +010001000182010001840100010001030183000100018201000107018100010101810001 +820100018401000100018201000182010001 +040181000184010001000182010001820100010b0183000100011c018100010701810001 +050183000100010e01810001020181000101018100018201000106018100011b01850001 +0001000103018100018201000101018100010c0183000100018201000109018100018401 +0001000101018100010d0181000101018300010001010183000100010101830001000101 +018100010101810001030181000109018700010001000100010101890001000100010001 +000182010001070187000100010001000105018900010001000100010001010183000100 +018201000102018300010001020183000100010e01020082010001090183000100010101 +830001000111018700010001000100010101830001000108018100010201810001090181 +00018401000100010b018500010001000106018200010002008201000103018100018201 +000102018100010b01810001190181000102018100010a018100010a0181000182010001 +820100010e018100010201 +830001000101018300010001820100010801810001840100010001080181000184010001 +000101018100018201000184010001000184010001000102018100018401000100010201 +830001000184010001000103018100018401000100010201810001040183000100010401 +810001840100010001010181000112018300010001820100010101810001030181000102 +018300010001010181000102018700010001000100010a01830001000186010001000100 +011101810001010181000105018100010101810001030181000101018100010901830001 +000101018100010301850001000100010601810001020181000186010001000100010701 +850001000100010701850001000100010101820001000400810100810001040187000100 +01000100010101810001010181000103010100860100010001000102018100010b018100 +0106018100010901830001000101018100018a0100010001000100010001120101008201 +000184010001000108018300010001820100010301810001820100010101810001010181 +000184010001000182010001070181000111018300010001050181000101018100018201 +000184010001000184010001000182010001840100010001820100010701810001010181 +00018201000184010001000103018100010001 +810001820100010801810001840100010001090183000100018201000105018100018201 +0001820100010a0181000102018100010201810001060183000100011201810001020183 +000100011b018100010601020081010087000100010001000103018100010f0183000100 +010101810001130181000108018100010301830001000101018100010101830001000101 +018100010101810001010185000100010001070183000100010501810001010184000100 +010001000701890001000100010001000101018f00010001000100010001000100010001 +010183000100018401000100018101008900010001000100010001050181000101018700 +010001000100010101810001040187000100010001000102018100010501810001040181 +000184010001000184010001000103018300010001040181000103018100010801810001 +020185000100010001060183000100018201000108018500010001000182010001140181 +000118018100010201820001008300010001020183000100010301810001820100010701 +8100018201000116010000 +050181000182010001820100010b01830001000108018300010001040181000102018100 +018201000184010001000107018100010201810001010181000104018100011201810001 +040183000100018201000116018400010001008100010101830001000101018100010201 +830001000101018300010001010181000182010001010181000119018100010801810001 +01018d000100010001000100010001000103018100010101810001070189000100010001 +000100010501870001000100010001020183000100010301830001000103018700010001 +000100010701810001010185000100010001010183000100010101010001010100820100 +01030185000100010001070189000100010001000100010a018100010101830001000115 +018100010501830001000101018100018401000100010d01810001820100010201830001 +000182010001030181000186010001000100010901810001050181000105018300010001 +0c0185000100010001110181000183010001008100018401000100010501810001840100 +010001050181000101018100010501810001030183000100010101 +820100018201000108018100018401000100018201000106018300010001820100010501 +810001820100018201000108018300010001840100010001020181000181010081000119 +0181000102018300010001020181000101018100010b0185000100010001820100010801 +850001000100010201810001030181000103018100011a01810001120181000101018100 +010c01810001010181000101018100018401000100010901810001010181000102018300 +010001880100010001000100018201000103018300010001070187000100010001000101 +010100850100010001008400010001000100010181000105018700010001000100010101 +8800010001000100010081000105010400820100010b0183000100018201000103018500 +010001000101018100010201830001000105018100012501830001000106018100018201 +00010a0181000101018100018201000129018100010d0181000108018200010085000100 +0100010101810001820100010201810001820100010201810001 +060181000182010001820100010b01830001000105018100010201810001030101000301 +8100018401000100010501810001020181000106018100010401850001000100010b0181 +00018201000104018100010f018100010401870001000100010001860100010001000103 +01810001040187000100010001000124018100010801810001010181000101018100018a +010001000100010001000101018100010101850001000100010201810001010181000101 +018500010001000103010200810100830001000103018700010001000100010301870001 +0001000100010b0185000100010001840100010001010185000100010001010181000107 +018500010001000105018200010001000401830001000186010001000100010c01810001 +07018100010101830001000102018500010001000103018100010e018300010001120181 +000102018100010401810001030183000100010201810001010181000182010001130181 +00010e018100010201010084010001000182010001820100010201810001840100010001 +0901810001050181000105018100010201 +04018100010b018300010001820100010801810001020181000106018100018201000184 +0100010001050181000102018100010201810001040101000d018100010d018300010001 +850100010001008100010801810001010185000100010001840100010001080181000101 +018500010001000122018500010001000109018100018401000100010201810001090183 +000100010101830001000104018500010001000107018500010001000182010001880100 +010001000100010601850001000100010901880001000100010001008600010001000100 +810001810100010004018300010001010183000100010901860001000100010081000101 +010100810100810001010181000107018700010001000100010801830001000101018100 +010301810001010181000186010001000100010101810001050181000122018300010001 +0a0183000100018401000100010201810001060181000117018100010101810001020181 +000113018100010201810001030181000184010001000182010001820100010301810001 + +830001000106018100018401000100010801810001840100010001060183000100018401 +000100010901810001840100010001820100010201810001010181000183010001008100 +011401010082010001840100010001080181000104018300010001820100010401830001 +000101018500010001000103010100820100010401830001000118018100010a01820001 +008100010101810001010181000102018100010101890001000100010001000101018300 +010001050101000301810001810100810001840100010001010187000100010001000102 +01010001018700010001000100010901850001000100010e018200010081000101010400 +820100010601890001000100010001000107018200010003008101008100010101850001 +000100010901830001000102018100010301810001010183000100010101810001060185 +0001000100010b0181000126018300010001820100010101810001820100018201000101 +018100010201810001160181000104018200010081000182010001010181000182010001 +82010001020181000105018100010101810001040181000108018100010301 +050181000182010001020181000105018100018201000108018300010001080181000101 +0181000184010001000102018100010201810001820100010101810001820100011a0181 +000109018700010001000100018401000100010501820001000100840100010001820100 +0109018100010201830001000103018100010e018100010a018100010201010008018100 +010301810001010183000100010701810001010187000100010001000188010001000100 +010001030185000100010001840100010001010103000f01850001000100010501810001 +030182000100050082010001020185000100010001030183000100010b01850001000100 +010101010007018500010001000104018700010001000100010401870001000100010001 +010181000103018300010001010185000100010001840100010001080181000102018100 +012601810001020181000102018100010101810001020181000184010001000116018500 +0100010001050183000100010b0181000182010001080181000105018100018201000103 +0182000100 +8401000100010b018100018201000105018100018401000100010e018100010101810001 +04018100010201810001040181000105018100010f018100010501810001840100010001 +86010001000100018201000101010200030182000100010008018100010e018300010001 +010185000100010001060181000109018100010201810001030183000100010101020081 +010083000100010201810001010181000103018700010001000100010101810001010181 +0001010183000100018801000100010001000105018400010001000100820100010a0187 +000100010001000103018100010301810001010183000100010401810001010182000100 +02008501000100010081000105018b000100010001000100010001050181000101010300 +010101008201000103018100010101810001050183000100010501830001000102018300 +01000103018100010501810001050181000105018100018201000101018100011e010100 +030181000102018300010001810100820001000200060181000110018100010701810001 +830100010081000107018100010801810001820100010801810001820100010201810001 +820100010101 +030181000182010001840100010001030181000184010001000182010001140101000201 +830001000182010001840100010001040181000102018100012001810001030181000182 +010001010181000101018100018101008100010301810001020183000100011401810001 +1b0181000101018100010101050003018100010701810001010185000100010001030183 +000100010501810001020181000108018100018201000182010001050181000101018700 +010001000100010301810001030181000101018300010001050184000100010001008101 +0001008101000200860100010001000186010001000100010c0185000100010001070101 +008101000300080187000100010001000103018300010001030183000100010201890001 +000100010001000104018100010101850001000100018201000102018100010901810001 +1901830001000184010001000182010001820100010701830001000104018100010c0181 +000101018300010001020181000102018100011501850001000100018201000105018100 +010501810001 +01018100010801810001820100010a018100018401000100010201810001820100018201 +000106018100010a01830001000102018100010201850001000100010601810001120183 +000100010401810001010185000100010001010183000100010201830001000112018300 +010001020183000100010b01850001000100018201000101018700010001000100010201 +810001050181000101018100010201830001000105018300010001030185000100010001 +0101830001000104018300010001010181000102018b0001000100010001000100010901 +810001010183000100010301890001000100010001000104010100080104000101810001 +040185000100010001820100010901860001000100010081000106018300010001010181 +000101018100010401810001050185000100010001010183000100010801810001020181 +000182010001050189000100010001000100010f018100010e0181000108010100840100 +010001820100010101810001830100010081000110018100010601810001030182000100 +830001000184010001000103018100010201810001060183000100018201000182010001 +0201810001820100010201 +07018100018201000105018300010001820100010d018100010701810001040181000184 +010001000182010001020183000100010201830001000115018100010501810001040101 +008301000100020004018500010001000182010001170181000101018100010701870001 +0001000100010401850001000100010b0185000100010001070181000101018700010001 +000100010101850001000100010101810001010181000101010100840100010001050187 +000100010001000104018100010301870001000100010001050185000100010001050183 +000100010601040084010001000104018900010001000100010001050183000100018401 +000100010801030083010001000100060101000201830001000103018300010001050181 +00010301870001000100010001860100010001000101018200010083000100010a018500 +01000100011201810001070187000100010001000102018100010e018100010401810001 +0a0183000100018401000100018201000102018100010801810001020181000102018100 +0101018100010a018100018201000102018100010001 +810001840100010001060181000115018100011101810001040181000182010001040183 +000100010201810001140181000102018100010101830001000105018100010301810001 +010101001501810001060181000101018500010001000105018300010001840100010001 +090187000100010001000101018100018401000100010101810001020181000101018100 +010301810001030183000100010101830001000106018500010001000102018500010001 +000103018100010101830001000105018700010001000100010301830001000107018300 +010001020181000106010700070185000100010001080187000100010001000104018100 +010301010002018100010801810001050185000100010001010185000100010001010183 +000100010f0187000100010001000109018700010001000100010f010100020181000182 +0100010201810001020185000100010001820100010601010009018100010c0181000184 +01000100010e01810001080181000184010001000108018100018301000100 +080183000100010e01830001000103018300010001820100018201000104018100010101 +810001030183000100010501830001000104018100010101810001190183000100010201 +82000100010001018100010401810001010181000109018100010a018100010201850001 +0001000182010001020183000100010a0187000100010001000104010200840100010001 +010181000101018100018201000102018100010101890001000100010001000103018100 +0102018200010083000100010a0187000100010001000103018900010001000100010001 +030183000100010101810001030183000100010101850001000100018201000101018700 +010001000100010301810001880100010001000100010501870001000100010001080189 +000100010001000100010701850001000100010601830001000182010001020181000105 +018100010301830001000182010001010181000182010001040181000102018100018201 +00010c018100018601000100010001090181000104018200010081000104018300010001 +020185000100010001020183000100018201000107018300010001840100010001050101 +000801810001050181000103018100010201810001820100018401000100010901 +820100018401000100010801810001030183000100010501810001820100018401000100 +010601810001030181000182010001060181000102018300010001820100010201830001 +000101018100011201810001820100010101010082010001010183000100018201000103 +0181000103018100010a0187000100010001000102018100010101810001040181000107 +018700010001000100010501810001840100010001030181000101018500010001000105 +0183000100010b0185000100010001820100010301810001030183000100010101850001 +000100010101850001000100010501830001000101018100010301810001030187000100 +010001000106018300010001010181000103018100010201850001000100010301870001 +000100010001050187000100010001000106018700010001000100010901820001008300 +010001020181000101018100010101810001840100010001030185000100010001820100 +01010183000100018801000100010001000106018700010001000100010d018100010401 +810001080181000103018100010201830001000106018100011301810001020181000182 +010001820100010501810001100181000105018100010201810001820100018201000181 +0100 +030181000105018100018201000102018100010301810001840100010001820100010201 +810001050181000106018100018401000100018401000100018401000100010201810001 +02018100011c01810001820100010101810001840100010001040102000a018100018601 +000100010001060185000100010001820100010101830001000103018500010001000103 +018100010101850001000100010201870001000100010001810100010005010100010181 +000103018d00010001000100010001000100010301810001010101008601000100010001 +030181000101018700010001000100010101830001000107018100010101890001000100 +010001000107018500010001000104018100010101830001000101018300010001040183 +000100010701870001000100010001050184000100010083000100010301810001010187 +000100010001000105018300010001010181000101018500010001000102018300010001 +03018200010001000501820001008d000100010001000100010001000106018100018401 +000100011001870001000100010001820100010501810001010185000100010001040181 +000104018100010701810001030183000100010201810001130181000182010001050181 +00010201810001050181000182010001 +010181000102018100010501810001820100010501810001820100018401000100018201 +000116018300010001820100010401810001070181000103018100011801810001820100 +018201000103018300010001030187000100010001000108018500010001000107018300 +010001030181000109018100010101810001020185000100010001090102008201000107 +018300010001010183000100010101830001000101018300010001010181000108018300 +010001010187000100010001000107018300010001010185000100010001030181000103 +018700010001000100010601830001000101018100010101830001000101010100820100 +010501890001000100010001000105018100010101830001000104018600010001000100 +810001820100010501830001000105018100010101810001050185000100010001840100 +010001010101000201810001010181000182010001030185000100010001020187000100 +010001000104018700010001000100010501810001080183000100010301810001070181 +000106018300010001090183000100010501810001160181000105018100010201810001 +030183000100010501 +0a0181000105018300010001820100010a01830001000103018100010301810001030181 +000182010001070183000100010201830001000117018100010501810001840100010001 +01018200010082000100010002018300010001060189000100010001000100010b018100 +010301830001000103018d00010001000100010001000100018201000107018600010001 +000100830001000104018500010001000103018100010301810001030181000103018100 +010101810001860100010001000101018700010001000100010101930001000100010001 +000100010001000100010001030181000101018300010001070185000100010001040181 +000101018100010301810001040187000100010001000107018500010001000101018100 +010301860001000100010081000103018100010101870001000100010001090181000101 +018500010001000103018300010001040101000401870001000100010001080185000100 +010001040183000100018201000106018100018201000101018500010001000182010001 +030181000183010001000100010181000186010001000100018101008100018201000182 +010001040181000184010001000184010001000103018100011501810001820100010201 +810001020181000182010001820100010501 +050181000107018100018201000108018100010d018100010e0185000100010001050181 +0001040183000100010b0183000100010701810001010101000101020001010300020181 +000104018300010001820100010a01890001000100010001000102018300010001820100 +018201000101018700010001000100010801870001000100010001070185000100010001 +820100010401830001000101018900010001000100010001010183000100010101810001 +01018100018201000102018100018e0100010001000100010001000100010d0183000100 +01090185000100010001060183000100010101870001000100010001010101000a018700 +010001000100010501890001000100010001000102018100018101008300010001010181 +000105018300010001010185000100010001010181000105018300010001030183000100 +018601000100010001820100010501830001000184010001000106018700010001000100 +01020185000100010001060181000106018100010b018300010001810100810001060181 +000102018100018101008100018201000184010001000102018100018201000114018100 +01040181000102018100010801810001820100010001 +8201000105018200010083000100010a018100011c018100018201000107018300010001 +020183000100011701810001030185000100010001830100010001008201000181010087 +00010001000100010a018100018401000100010801830001000106018100010b01870001 +000100010001070187000100010001000108018100018201000103018100010901810001 +030181000101018100018201000101018300010001810100870001000100010001010181 +000103018700010001000100010701890001000100010001000105018500010001000104 +018300010001050181000102018b00010001000100010001000105018700010001000100 +010301810001010184000100010001008101008300010001840100010001840100010001 +010181000182010001010181000102018300010001050183000100010101810001070187 +000100010001000108018700010001000100010601850001000100018201000102018300 +01000101018100018a010001000100010001000182010001050181000103010200010181 +00010201810001020102000101830001000102018100011e018100010201810001840100 +01000182010001820100010601 +030181000184010001000108018100011d01810001080181000184010001000105018100 +010301810001840100010001070181000101018100010401820001008500010001000181 +01008200010004000c018700010001000100010601870001000100010001820100018201 +000101018300010001010181000101018700010001000100010901850001000100010701 +010081010001008201000106018100010101890001000100010001000101018300010001 +010181000101018100018501000100010001000501810001820100010101830001000107 +018700010001000100010701870001000100010001060185000100010001010184000100 +010087000100010001000103018100010301850001000100010701830001000101018100 +010401810001040101000701810001010181000101018100010101810001040101000101 +8100010301830001000182010001010181000104018100010101850001000100010a0183 +000100018401000100010901810001030181000104018300010001040185000100010001 +010183000100010501010081010087000100010001000182010001020182000100830001 +000182010001160181000102018100010d01810001820100010101 +810100810001050181000105018100012601830001000107018300010001050181000112 +018500010001000185010001000100820001000500040181000103018500010001000108 +01850001000100010301810001820100010201830001000103018100010b018900010001 +00010001000106018700010001000100010a018500010001000102018100010601810001 +030181000101018100018201000106010500820100010701870001000100010001010181 +000103018700010001000100010701850001000100018201000103018100010301810001 +820100010301830001000101018100010701870001000100010001070184000100010002 +008201000102018100010301810001050185000100010001010183000100010801810001 +050181000102018700010001000100010601850001000100018401000100010801850001 +000100010401810001820100010101830001000104018500010001000105018500010001 +00018401000100010701820001008400010001008100010b018100010e01810001030181 +00010201810001840100010001820100018401000100018201000101010000 +390101000301810001840100010001040183000100010201830001000182010001020183 +000100018401000100010801810001010181000101018300010001830100010083000100 +018201000105018300010001840100010001010185000100010001820100010301810001 +8801000100010001000101018b0001000100010001000100010701830001000184010001 +000109018200010003000801810001010184000100010081000103018100010101830001 +000105010300030181000102018700010001000100010701810001010183000100010501 +890001000100010001000108018300010001010183000100018201000101018300010001 +070187000100010001000107018500010001000109010200880100010001000100010501 +810001050181000103018300010001010181000101018100010401810001020181000105 +0183000100018401000100010801850001000100010f018100018a010001000100010001 +000184010001000102018500010001000104018100018301000100020082010001030187 +000100010001000184010001000112018100010201830001000102018100018201000112 +01 +32018100010501810001840100010001050183000100018601000100010001820100010d +018300010001860100010001000104010200810100020082010001820100010101870001 +000100010001020187000100010001000106018500010001000102018100010601810001 +0a0183000100010201810001090186000100010001000100840100010001010185000100 +010001010183000100010801850001000100010401810001820100010401820001000100 +820100010701870001000100010001050187000100010001000107018700010001000100 +018201000106018300010001010181000103018900010001000100010001050187000100 +010001000105018a00010001000100010001008100010801810001050185000100010001 +0101830001000103018100010101810001020183000100010201850001000100010c0185 +000100010001080185000100010001100183000100010601830001000186010001000100 +018301000100850001000100010101810001810100020082010001840100010001020183 +000100018301000100810001070181000103018100010301810001820100010501830001 +0001020181000182010001810100810001 +3a0181000105018100018201000109018100010601810001860100010001000102018100 +010601820001000100820100010201020081010083000100010301810001840100010001 +050181000186010001000100010b01880001000100010001008100010101850001000100 +010401810001010189000100010001000100010101810001040181000184010001000103 +018500010001000101018900010001000100010001020185000100010001020182000100 +810001020101008201000102018700010001000100010301890001000100010001000107 +018700010001000100010501810001020187000100010001000102018100010101830001 +000101018100010501870001000100010001050187000100010001000105018100010301 +8700010001000100010b0183000100010101850001000100010101810001030181000102 +0182000100820001008100018a0100010001000100010001080183000100010b01810001 +0101810001020187000100010001000102018100010d0183000100018401000100018501 +000100010084000100010084000100010002008101008300010001060181000182010001 +0a0183000100010501830001000106018100010801 +260181000107010100840100010001060181000102018100010201850001000100018201 +000101018100010b01820001008600010001000100870001000100010001860100010001 +000102010400840100010001060185000100010001080187000100010001000181010081 +000101018300010001040181000108018500010001000103018100010301810001010187 +000100010001000181010083000100010301810001070181000101018500010001000105 +018100018201000103018200010085000100010001050185000100010001090187000100 +010001000105018700010001000100010601830001000184010001000107018100010101 +830001000101018100010501850001000100010701870001000100010001010181000101 +01850001000100010501850001000100018401000100010a018500010001000182010001 +0a018300010001030183000100018201000105018100018401000100010a018300010001 +0401810001040183000100018401000100010b0183000100010301840001000100010001 +018200010085000100010001020181000107018100018401000100010701810001820100 +010201810001840100010001050181000101018100010001 +280181000107018100010401810001020182000100810001020181000101018100010401 +810001020181000104018200010083000100010401810001010183000100018201000102 +01010081010001000a01850001000100010a018300010001090183000100010301850001 +000100010301890001000100010001000103018100010101850001000100010101830001 +00010b018100010101870001000100010001010181000101018600010001000100810001 +0201820001008700010001000100018a0100010001000100010001070187000100010001 +000105018700010001000100010a01830001000102018100010301810001010181000101 +018100010501810001010181000109018200010081000186010001000100010301010001 +0183000100010e0181000101018900010001000100010001840100010001030183000100 +018801000100010001000108018300010001020187000100010001000104018500010001 +000102018100010301830001000186010001000100018201000106018300010001840100 +010001060181000185010001000100840001000100840001000100830001000102018300 +010001820100010e01810001050181000102018100018201000184010001000182010001 +01018100010001 +1e0181000104018100018201000105018100010401810001820100010101810001020181 +000184010001000105018100010601810001010181000102018400010001008900010001 +000100010001860100010001000104018500010001000184010001000108018700010001 +000100010401810001010185000100010001020183000100010501850001000100010701 +830001000101018500010001000101018100010501810001010183000100010301830001 +0001010189000100010001000100010a0183000100018401000100010101810001090187 +000100010001000105018700010001000100010901870001000100010001040181000104 +018100010501810001010101008401000100010301890001000100010001000101018100 +010701830001000105018100018301000100010003018500010001000101018100010301 +850001000100010401820001008100018101008100010301850001000100018601000100 +01000103018100010201830001000101018500010001000182010001080183000100010b +018500010001000109018300010001840100010001050186000100010001008100010101 +81000184010001000105018200010083000100010501810001020181000104018100010e +0101000101 +1b0181000108018100010401810001840100010001820100010201810001040181000182 +010001040183000100010501830001000101018100018801000100010001000186010001 +000100018401000100010101810001020187000100010001000108018100018401000100 +010a01810001010181000104018300010001860100010001000101018100018201000101 +018300010001010187000100010001000107018300010001810100810001010101000501 +810001030181000109018100010101830001000101010200820100010401810001020187 +000100010001000105018700010001000100010901870001000100010001080183000100 +018201000105018100018401000100010901870001000100010001050181000101018300 +010001010181000105018900010001000100010001010181000103018100010101810001 +010183000100010501830001000184010001000101018200010002008201000108018500 +010001000101018100010801830001000102018100010101850001000100010201830001 +000184010001000108018100018401000100010b01830001000183010001008500010001 +000183010001000100010181000186010001000100010501810001050181000102018300 +0100010301830001000182010001020181000101018100010101 +040181000104018100010101830001000182010001070181000102018100010301830001 +0001050184000100010081000104018100010501830001000104018100010b0185000100 +010001840100010001060183000100018401000100010601890001000100010001000106 +018500010001000184010001000103018700010001000100010101810001030183000100 +018201000103018500010001000107018300010001840100010001070181000104018100 +010101830001000101018900010001000100010001010181000103018100010601020001 +018300010001050187000100010001000109018700010001000100010701870001000100 +010001020181000104018500010001000104018700010001000100010901890001000100 +010001000103018100010101870001000100010001010187000100010001000103018100 +010101810001010181000103018500010001000105018300010001820100010601870001 +000100010001060189000100010001000100018201000110018300010001810100810001 +030183000100018401000100010601830001000186010001000100010901010082010001 +040181000186010001000100018201000186010001000100010301810001020181000104 +018100010801810001820100018201000182010001 +070181000182010001070181000105018100010701810001050183000100010201810001 +050181000102018100018401000100010201830001000102018100010401850001000100 +010401830001000186010001000100018201000105018100018401000100010801870001 +000100010001060187000100010001000105018900010001000100010001010183000100 +018601000100010001030183000100018401000100010701870001000100010001010181 +000101018100018201000103018100010701830001000101018300010001010187000100 +010001000102018100018801000100010001000109018700010001000100010701870001 +000100010001050181000110018300010001070189000100010001000100010901870001 +000100010001040101008201000103018100010101830001000101018100010101810001 +010183000100010101890001000100010001000182010001010184000100010083000100 +010701830001000184010001000105018100018a01000100010001000100010301810001 +860100010001000186010001000100018201000106018500010001000182010001080181 +000184010001000104018100018401000100018401000100010701810001820100010701 +810001020183000100010301830001000184010001000104018100010201 +050181000102018100010301830001000105018400010001008100018401000100018401 +00010001820100010701830001000182010001020181000107018100010b018100010401 +870001000100010001090187000100010001000109018500010001000106018900010001 +000100010001030183000100018401000100018201000105018100010101810001020181 +000102018300010001070187000100010001000101018100010301830001000101018300 +010001010183000100018201000181010083000100010301810001030181000104010100 +820100010101810001070189000100010001000100010701870001000100010001050187 +000100010001000116018700010001000100010901870001000100010001010181000105 +01830001000101018100010101830001000101018100010b010100030181000105018100 +010201010082010001020181000102018700010001000100010801870001000100010001 +0c018100010d018100010201870001000100010001070185000100010001820100010601 +810001820100010401810001020182000100850001000100010a01810001020181000104 +018100010b01810001030101000001 +820100010d018100018401000100018201000102018100018401000100010a0183000100 +018201000104018100010101810001120183000100010401830001000106018400010001 +008500010001000106018700010001000100010401870001000100010001820100010301 +810001010183000100010401840001000100810001020101000501830001000108018700 +010001000100010101810001030181000101018300010001020101008201000107018100 +010801810001030181000101018200010002008201000104018700010001000100010701 +8900010001000100010001050181000101018300010001050183000100010e0181000103 +018100010501870001000100010001090181000101018300010001010181000183010001 +008900010001000100010001010181000104018300010001030183000100010101810001 +820100010101830001000102018300010001010181000108018700010001000100010801 +830001000184010001000105018500010001000183010001000100030181000104018100 +010101810001840100010001090181000102018100010401830001000184010001000182 +010001010181000103018300010001070181000102018300010001030183000100018201 +00018201000108010000 +840100010001010183000100018201000182010001070181000181010081000109018300 +010001820100010401810001840100010001070181000105018100010401810001060181 +000103018100018401000100018401000100010501810001840100010001060185000100 +010001060181000101018300010001060185000100010001040181000182010001030181 +000182010001030187000100010001000101018100010301810001010183000100010301 +850001000100010301850001000100010301880001000100010001008100010701810001 +040102008301000100810001090185000100010001070181000101018300010001010181 +000101018700010001000100011401830001000101018100010301810001050187000100 +0100010001090181000101018100010b0181000186010001000100010301830001000103 +018100010101810001840100010001810100820001008100010501830001000184010001 +00010701850001000100010d018300010001080181000101018100010201830001000102 +018100010401850001000100018401000100010201810001020183000100010401830001 +0001030183000100010c0181000102018100010501830001000184010001000103018100 +01820100010401 +06018100018201000105018300010001820100010a018300010001080183000100010501 +840001000100010004018300010001020181000182010001020183000100010501810001 +070187000100010001000102018100010101830001000184010001000108018300010001 +050185000100010001820100010301860001000100010081000186010001000100010101 +810001020181000101018100010301810001010183000100010301870001000100010001 +030181000181010085000100010001010181000103018100010101840001000100810001 +010183000100010101820001008100010501810001020187000100010001000105018100 +0103018100010101810001010187000100010001000103018700010001000100010e0183 +000100010101870001000100010001010183000100010101810001050189000100010001 +000100010601010086010001000100010101830001000104018100010101810001010187 +000100010001000101018100010101810001050189000100010001000100010301810001 +860100010001000106018700010001000100010701810001850100010001008500010001 +000102018500010001000104018300010001020181000106018100018401000100010401 +830001000182010001010181000102018100018201000186010001000100010501810001 +020183000100010b018100018201000182010001840100010001 +010181000182010001020181000184010001000105018100010301020001018100010201 +830001000184010001000184010001000184010001000119018100010c01830001000184 +010001000106018500010001000108018100010801870001000100010001040187000100 +01000100010d018300010001060181000101018300010001030187000100010001000109 +018100010201010002018300010001070181000106018300010001010181000104018500 +01000100010101010006018100010101830001000101018b000100010001000100010001 +050185000100010001160183000100010501810001010183000100010101810001010185 +000100010001070187000100010001000182010001060101000601850001000100010101 +810001070181000104018100010101810001840100010001050187000100010001000104 +01870001000100010001060181000101018100010d018100010101810001820100010101 +830001000184010001000104018300010001840100010001040183000100018201000104 +018300010001840100010001020181000114018300010001820100018201000108018100 +0182010001 +010181000182010001820100010801830001000184010001000105018100018201000101 +018100018201000182010001090181000183010001008100011c01010007018500010001 +000104010300840100010001060181000103018100010301810001860100010001000107 +018100018601000100010001840100010001010185000100010001820100010501850001 +000100010301810001030187000100010001000107018100010901850001000100010f01 +810001010181000101018100010301010082010001010181000101018700010001000100 +010301890001000100010001000109018300010001120187000100010001000105018100 +010101830001000101018100010101850001000100010601820001008900010001000100 +010001810100810001820100010301810001030187000100010001000101018100010401 +810001060181000101018300010001050181000184010001000105018300010001840100 +010001050187000100010001000105018100010301810001020181000104018300010001 +090183000100018401000100010201830001000184010001000105018300010001810100 +8100010a01810001820100010a01810001820100010801 +8100010a0181000182010001080183000100018201000102018100018401000100010501 +8300010001840100010001110183000100010d0101000201850001000100010201050082 +0100011401810001840100010001070187000100010001000107018100010c0187000100 +010001000101018100010301810001010183000100010401010084010001000182010001 +0201810001030183000100010b0183000100010201810001060181000101018100010401 +8700010001000100010501850001000100010b018700010001000100011e018900010001 +000100010001030181000101018700010001000100010101820001008100010801810001 +010101000c01810001070181000103010100020185000100010001020181000103018100 +010101830001000104018700010001000100010801830001000105010100860100010001 +000182010001040181000101018100010401830001000186010001000100010901810001 +020183000100010201810001820100010801810001050181000105018100010201810001 +020181000104018300010001820100010001 +020181000181010085000100010001820100010301830001000182010001020183000100 +018201000102018300010001840100010001020181000105018300010001820100010201 +810001020181000113010100810100020002018100010801830001000117018700010001 +000100010801870001000100010001010188000100010001000100810001080181000102 +018300010001030187000100010001000109018300010001020181000105018500010001 +0001010181000109018e0001000100010001000100010001008100010301890001000100 +010001000107018900010001000100010001050183000100010601810001070187000100 +01000100010d018500010001000109010100820100010101870001000100010001080181 +000109018300010001010181000108018100010601870001000100010001020181000103 +018700010001000100010401850001000100010501850001000100010101830001000106 +01850001000100010401810001820100010101810001070185000100010001820100010e +018300010001830100010081000103018100010c01810001020181000106018100010601 + +820100018201000105018300010001820100010501830001000108018100010901810001 +840100010001820100010301810001020181000112018300010001820100010601020001 +010200010183000100010101810001110185000100010001080187000100010001000103 +018300010001010181000105018100010201870001000100010001030187000100010001 +000107018900010001000100010001020183000100010201010006018300010001010181 +00010401810001840100010001030181000103018200010083000100010b018500010001 +0001050185000100010001010181000102018100010f0185000100010001010189000100 +010001000100010901820001008300010001010181000103018100010101810001010182 +000100010082010001040183000100010101810001110101000101850001000100010801 +850001000100010901810001020181000107018500010001000184010001000102018100 +010101810001820100010301810001840100010001060183000100010c01850001000100 +0102018100018201000102018100010d01810001130181000103018300010001810100 +010183000100018101000100040183000100018201000182010001050104000601810001 +840100010001020101000401810001840100010001180181000183010001000200820100 +01070183000100011d018300010001840100010001070183000100010701850001000100 +010101810001060185000100010001050189000100010001000100010701810001010101 +00030183000100010a018100010301810001070183000100010101830001000108018900 +010001000100010001030185000100010001050186000100010001008100011901830001 +000101018100010101840001000100830001000107018100010101830001000105018100 +010301810001030181000116018300010001090187000100010001000106018700010001 +000100010301810001020183000100010101830001000105010100820100010201810001 +040187000100010001000102018300010001820100010801810001820100010901850001 +000100018201000102018300010001820100010801810001820100010201810001020181 +000102010200820100010501810001 +040183000100018401000100010601820001008500010001000108018200010081000182 +01000103010200010183000100010101820001008100010d018100018201000101018300 +010001810100010082010001030183000100010a0181000113018500010001000104018b +000100010001000100010001050181000101018100010501830001000186010001000100 +0103018700010001000100010b0187000100010001000102018100018201000116010100 +010183000100010301810001070182000100810001050185000100010001070185000100 +0100011a0185000100010001050181000101018700010001000100010201830001000103 +01810001050181000101018700010001000100010101830001000108018100010e018300 +010001020183000100010901870001000100010001060187000100010001000106018100 +01010185000100010001040181000186010001000100010d01830001000112018100010c +01830001000107018100010e0181000105018100010401810001840100010001 +010181000106018200010085000100010001820100010701010081010001000601840001 +000100010003010400830100010082000100810001050181000106018200010001000201 +810001010181000109018300010001820100010101850001000100011501850001000100 +010901830001000184010001000103010100840100010001820100010301870001000100 +01000107018d000100010001000100010001000103010100010181000118018100010d01 +870001000100010001020187000100010001000105018700010001000100010701810001 +01010100820100011501890001000100010001000106018b000100010001000100010001 +010185000100010001820100010801810001020181000109018100010401810001820100 +0101018100010101810001820100010201850001000100010b0183000100010a01810001 +050183000100018201000101010100040181000104018300010001880100010001000100 +011a018100010401830001000184010001000104018100011a0183000100010801 +030101000101010082010001030181000181010001008101008200010002000301810001 +810100010081010081000182010001030102000701010084010001000184010001000101 +018200010087000100010001000101018100010201830001000101018100010201890001 +000100010001000182010001010181000111018300010001070187000100010001000104 +01850001000100010d018100010701870001000100010001030181000103018100010101 +850001000100010101810001010185000100010001010181000104018100010301810001 +010184000100010001008101000100820100010301850001000100010401890001000100 +010001000107018700010001000100010101810001140187000100010001000107010100 +820100010901870001000100010001030181000101018500010001000108018100010101 +810001040181000101018100010201850001000100010d018b0001000100010001000100 +010201810001820100018a01000100010001000100010b01810001030183000100010201 +01000301810001060183000100011c018100011001810001120181000101018300010001 +02018100018401000100010001 +010082010001010181000102018200010082000100010086010001000100018201000101 +010100840100010001020181000184010001000182010001020183000100018401000100 +018201000103018100018101000300040185000100010001840100010001030181000102 +0102000401810001820100011b0187000100010001000106018500010001000107018900 +0100010001000100010501850001000100010301810001030181000101018b0001000100 +010001000100010201810001040181000101018100010a01810001010181000109018700 +0100010001000103018400010001008100010b0185000100010001070182000100850001 +00010001170184000100010081000105018b000100010001000100010001050183000100 +01810100810001010181000101018300010001840100010001010181000101018100010d +018300010001810100010088010001000100010001010181000104018100010101870001 +0001000100010e0189000100010001000100018401000100018401000100010401810001 +010183000100010601810001820100011901830001000182010001020185000100010001 +020181000105010100100181000105018100010001 +030103008401000100010101810001040183000100018201000182010001050185000100 +010001020181000103018100010601830001000184010001000181010081000101018100 +018401000100018201000101018100010201010082010001030103000301810001830100 +010083000100018101008300010001030181000107018300010001030185000100010001 +84010001000103018d000100010001000100010001000106010100820100010101810001 +04018100018c010001000100010001000100010501830001000181010081000101018100 +010101810001010181000101018200010083000100010101810001010186000100010001 +008100010601850001000100010801890001000100010001000103018900010001000100 +010001180185000100010001080187000100010001000109018700010001000100010201 +8100018a0100010001000100010001040181000101010100040185000100010001010181 +000102010100010101000201870001000100010001010183000100010801810001010187 +000100010001000105018100010901810001060185000100010001060181000184010001 +000108018100010101810001030181000104018200010081000106018100010601010003 +0102000b0101000301010002010100820100010301 +810100810001070181000182010001840100010001070181000184010001000182010001 +020183000100010201810001050183000100010301010001018300010001810100010001 +018100010101810001820100010101830001000182010001820100010701890001000100 +010001000181010081000106018100010101810001020101000101850001000100010601 +8700010001000100010d01850001000100010401830001000101018b0001000100010001 +000100010701010082010001040181000104018100010101850001000100010101820001 +008300010001010181000103018600010001000100010082010001030181000103010100 +820100010701850001000100010b01010084010001000115018400010001008300010001 +0701890001000100010001000107018100010d0101008101008100018201000102018300 +0100010301830001000105018100018101008500010001000105018b0001000100010001 +000100018201000105018300010001020181000104018700010001000100018201000184 +010001000108018100018101000100820100010301010010018100018401000100010201 +830001000105018100010101010082010001010101000501020081010001008201000108 +01810001840100010001820100010101 +0601810001820100010a0183000100018201000104018100010301830001000105018200 +010001000101830001000181010001000501810001070181000182010001070101008201 +000103018100018401000100010a01830001000105018100010601830001000102018200 +010001008201000107018700010001000100018401000100010101810001010181000101 +01810001010187000100010001000107018700010001000100010a018100010101810001 +010181000105018100010601810001010183000100010401810001010181000184010001 +0001010183000100010201890001000100010001000105018c0001000100010001000100 +010081000113018500010001000108018700010001000100010901850001000100010101 +810001820100010201840001000100810001040181000101018100010501830001000103 +018300010001840100010001060187000100010001000105018300010001810100810001 +8601000100010001010181000105018100010f0184000100010083000100010701010082 +010001010181000182010001010181000184010001000106010300010184000100010081 +00010401810001040181000104018100010a010100030181000183010001008100010401 +810001 +830001000182010001040101008201000182010001810100810001010183000100018301 +000100810001040181000185010001000100850001000100010c01840001000100020082 +010001020183000100018501000100010002008201000101018300010001030181000184 +010001000188010001000100010001060181000105018100010201840001000100010082 +010001010187000100010001000103010100010101000201810001010181000105018100 +010101810001010189000100010001000100010901870001000100010001040183000100 +010101810001010181000105010100020183000100010101860001000100010081000182 +010001040101008601000100010001050101008e01000100010001000100010001000103 +01810001840100010001820100010c018600010001000100020086010001000100010501 +8700010001000100010501830001000109018100010401820001008b0001000100010001 +00010001050181000101018100018201000101018100010c018700010001000100010601 +850001000100010301820001008100010201870001000100010001830100010085000100 +010001060182000100010081010081000103018100010f01030001010200820100018201 +000104018500010001000184010001000182010001040181000105018100010301810001 +07018100018201000182010001 +010005018200010081000101010100840100010001010181000107018300010001860100 +010001000108018300010001040182000100810001030181000103018100018501000100 +010081000101018100010101810001010181000182010001010184000100010081000105 +018100010101810001860100010001000104018300010001010183000100010101870001 +000100010001010181000182010001010102008c01000100010001000100010001020102 +000101040082010001020101000501010085010001000100810001020182000100010085 +010001000100830001000101010100010185000100010001020182000100810001820100 +0101018100010401010086010001000100010501820001008d0001000100010001000100 +010001040181000102018100018201000101018100010801810001040181000103010100 +8d0100010001000100010001000100010005010100880100010001000100010801850001 +000100010201810001010181000101018100010301850001000100010101840001000100 +81000101018b0001000100010001000100010a0185000100010001060187000100010001 +000102018300010001080182000100810001810100010084010001000107018300010001 +1301020004018300010001820100010d0181000184010001000102018100010501810001 +8101008300010001820100010a01 +810001810100820001000100030101000501830001000181010084000100010085000100 +010001840100010001820100018601000100010001820100018601000100010001020183 +0001000185010001000100840001000100820001008a0001000100010001000100020086 +010001000100018901000100010001000100020088010001000100010001030181000182 +01000107018300010001020102008101008100018201000101018a000100010001000100 +010001008201000101018300010001010189000100010001000100018101008600010001 +000100010004010200840100010001820100018201000101018300010001830100010001 +008b01000100010001000100010081000101018e00010001000100010001000100010083 +000100018101000100870100010001000100840001000100810001020181000101018d00 +010001000100010001000100018201000102018100010301010086010001000100010101 +830001000186010001000100010101840001000100010002018200010001008201000101 +018300010001820100018101008100010301810001010181000182010001010181000101 +018100018101008300010001010102008401000100018201000107018300010001010183 +000100018301000100010005018100018301000100010084010001000101018300010001 +010187000100010001000101010200020181000106018100018601000100010001040181 +00010f018100010101010082010001030181000101018100018801000100010001000182 +010001010181000184010001000184010001000182010001810100810001050183000100 +01840100010001820100010001 +010181000182010001020101008101008200010084000100010083000100010201810001 +820100018401000100010401010084010001000182010001040181000184010001000184 +010001000101018100010301830001000181010001008201000108018300010001010181 +000188010001000100010001020181000103018100018101000100820100010101850001 +00010001810100010081010001008201000101018b000100010001000100010001070187 +000100010001000101018100010101810001010192000100010001000100010001000100 +010001008600010001000100050081010001000101860001000100010001008501000100 +010086000100010001000100860100010001000184010001000181010084000100010001 +008101000500020102000101020089010001000100010001008200010001008501000100 +010083000100010101830001000108018300010001820100010101860001000100010083 +000100010101050081010001008101008400010001000200820100010401880001000100 +010001008100010101040081010082000100010082010001020183000100010101820001 +008300010001830100010084000100010083000100010301040082010001820100010101 +810001010101000601810001010182000100010081010001008201000101018100018401 +0001000182010001030185000100010001050181000106018100010b0187000100010001 +000106010100030181000104018300010001820100018201000105018100018201000181 +010081000104018100010001 +820100018201000102018100018201000104018100018201000184010001000102018300 +010001820100018401000100018401000100018501000100010083000100010201830001 +000185010001000100840001000100810001010183000100018201000101010100880100 +010001000100018101000100020184000100010001000101850001000100010101010002 +018100010101850001000100010601a10001000100010001000100010001000100010001 +000100010001000100010001000101019500010001000100010001000100010001000100 +010001010186000100010001000400020182000100010001010100810100860001000100 +010002008301000100010002018200010002008101000300830100010001008101000100 +0501010083010001000100010101008101008a0001000100010001000100010001018600 +01000100010001000501820001008a000100010001000100010085000100010001010181 +000101010900830100010083000100010101040001010600860100010001000182010001 +010181000103018300010001820100010101810001820100010201810001820100010201 +840001000100820001000100010104008401000100018101000100830100010001008101 +008100010101830001000104018300010001820100010301810001810100010084010001 +000186010001000100010301810001820100010601810001070183000100018101000100 +820100010501810001010102000301810001020183000100018201000108018100018401 +0001000105018100018201000102010000 +0b0181000102018100010801830001000184010001000184010001000182010001020181 +000107018500010001000104018100010101810001030181000186010001000100018201 +000101018100010101810001840100010001010181000108018300010001010181000111 +018700010001000100010301880001000100010001008100010501820001008100010401 +820001008400010001008300010001820100010301870001000100010001010184000100 +010081000101010400810100010081010002008701000100010001000100830100010087 +000100010001000101018100018101000100830100010001000201010081010002000101 +010081010082000100010082010001010181000101018100010101820001000100810100 +850001000100018601000100010001010181000106018200010081000101018900010001 +000100010001030101000101020088010001000100010001010102008101008300010001 +0101880001000100010001000100810100020081010082000100070081010002008c0100 +01000100010001000100018101000a008301000100020001018400010001008100018101 +000200890100010001000100010082000100030086010001000100010201010001018200 +010002000101810001810100830001000101018100018401000100010201820001000100 +810100810001020182000100010081010005008201000184010001000181010001000301 +810001840100010001820100010201810001820100018101008400010001008300010001 +82010001810100 +0e018100010201810001820100018201000104018100010a018100010201850001000100 +0109018100010201810001010101000a0183000100010201810001010181000101018100 +010101810001860100010001000104018100010101810001140187000100010001000108 +018900010001000100010001010183000100010101810001820100010401820001000100 +820100010801860001000100010001000501810001820100010201010082010001010181 +000184010001000103018100018101000100810100810001020181000101018200010081 +000182010001810100020089010001000100010001000200890100010001000100010084 +000100010001008301000100890001000100010001000189010001000100010001008100 +010101880001000100010001008200010003000101010001018200010086000100010001 +000100020183000100010101810001810100820001008300010001010181000102018100 +018201000101018100010201010081010001008201000101010100850100010001008100 +010a01850001000100018101008100010201850001000100010201810001070181000108 +018200010004000501050002018300010001040183000100010301810001020102000101 +010007018100018201000186010001000100018301000100830001000102018100010201 +020082010001840100010001020181000103018300010001 +0c0183000100018201000102018100010501810001020181000182010001020185000100 +010001070183000100018401000100010201830001000105018300010001840100010001 +040181000101018100010101810001010181000102018100010401010003018300010001 +0f0101008201000106018900010001000100010001050183000100010101810001010181 +000103018500010001000101018500010001000181010002008301000100830001000103 +018500010001000184010001000190010001000100010001000100010001000181010001 +008401000100018101000200810100020087010001000100010001008201000184010001 +0001830100010002000a0184000100010001000101810001820100010801810001050182 +000100850001000100010401010085010001000100810001020183000100010101020081 +010082000100010081010001008601000100010001010102008101000600010106008101 +008200010002000301830001000101018400010001008400010001000200020185000100 +010001810100820001000100040182000100820001008100018401000100010301820001 +000100810100850001000100010301030084010001000102018100010101810001840100 +010001040184000100010085000100010001820100010101040082010001860100010001 +000186010001000100018201000183010001000100010181000183010001008300010001 +82010001820100018301000100850001000100010001 +140181000102018100018201000102018300010001840100010001050183000100018401 +000100010701830001000104010100840100010001070183000100010101850001000100 +010a01810001840100010001010183000100011601810001860100010001000105018700 +010001000100010501830001000101018100010301810001010185000100010001010181 +000105018600010001000100830001000109018200010082000100810001040183000100 +010101810001010183000100010501010001018100018401000100010101020088010001 +000100010001030101008801000100010001000104010200830100010083000100010101 +83000100010201830001000102018b000100010001000100010001020183000100018301 +000100020082010001820100018201000103018100010101830001000101018300010001 +020101000601810001820100018201000103018100010101830001000104018700010001 +000100010601870001000100010001020181000102018200010001000101810001820100 +010701010006010100840100010001820100010401810001010183000100018401000100 +010401820001008100010301810001010181000182010001860100010001000182010001 +820100018601000100010001860100010001000182010001820100018201000103018100 +01020183000100018301000100010004018100010001 +0c0181000182010001820100010201810001840100010001820100010401810001840100 +010001820100010601810001860100010001000105018300010001840100010001020181 +000184010001000103018100010601810001810100830001000102018300010001010181 +000104018100011001830001000105018700010001000100010301870001000100010001 +010185000100010001010181000103018100010501890001000100010001000105018200 +010085000100010001030181000103018100010101810001010184000100010081000101 +018100010201810001840100010001030101008601000100010001050181000101010100 +840100010001050181000101018500010001000102010200050181000104018100010201 +870001000100010001010181000101018700010001000100010801870001000100010001 +090185000100010001820100010201850001000100010101830001000101018200010002 +000101840001000100830001000182010001040102008101000100820100010401890001 +000100010001000182010001050183000100010301810001010181000182010001010183 +000100010201870001000100010001820100011801850001000100018201000101018100 +018401000100010101810001820100010101810001820100010401810001840100010001 +01018200010001000a0183000100010301 +120181000182010001040181000182010001840100010001070183000100018401000100 +010401810001840100010001820100010401810001860100010001000182010001020102 +000201870001000100010001010181000101018100010401850001000100018201000114 +018700010001000100010301870001000100010001050181000107018100010101810001 +010187000100010001000109018a00010001000100010001008100010201810001020183 +000100010101810001010181000106018100010101820001008200010089000100010001 +000100010401870001000100010001010183000100010401870001000100010001010186 +000100010001008100010101810001100181000101018100010101870001000100010001 +050101008801000100010001000105018100010301850001000100010501830001000105 +01830001000182010001010181000105018100018101008f000100010001000100010001 +000100010501810001810100810001820100010501830001000186010001000100010101 +820001008100018801000100010001000104018500010001000182010001010183000100 +018101008100010e01850001000100010701820001008100018201000184010001000102 +018300010001020183000100010201810001810100010005018100018401000100010801 +8100010001 +0b0102000101810001020181000184010001000107018100018401000100018201000104 +018100018601000100010001090181000185010001000100830001000182010001010181 +000182010001010183000100010101810001010181000102018700010001000100010801 +810001140189000100010001000100010501870001000100010001030181000184010001 +000104018100010701890001000100010001000101018300010001090181000193010001 +000100010001000100010001000100010081000101018500010001000107018300010001 +840100010001030181000103018100010101010082010001010183000100010101810001 +030182000100830001000114018100010101870001000100010001010185000100010001 +060181000101018900010001000100010001070101000201810001020186000100010001 +008300010001010187000100010001000184010001000106018700010001000100010101 +830001000101018100010601850001000100010801830001000101018100010a01850001 +000100010601810001010181000119018500010001000107018100010101830001000104 +018100010501810001060183000100018201000105018300010001820100010301 +100181000182010001070181000184010001000107018100018401000100010901830001 +000184010001000104018100010801810001030183000100010201810001010183000100 +010c01850001000100010a01810001070181000107018700010001000100010c01810001 +03018200010081000183010001008d000100010001000100010001000101018100010301 +8b0001000100010001000100010401830001000107018300010001880100010001000100 +018101008500010001000101018100018201000103018100010101880001000100010001 +008100010101810001030187000100010001000119018100010101810001070183000100 +010101810001860100010001000101018100010b01830001000107018300010001010183 +000100010401810001050181000181010081000181010087000100010001000105018700 +01000100010001010187000100010001000104018500010001000106018b000100010001 +000100010001080185000100010001020181000116018100010901850001000100010101 +810001020185000100010001020181000184010001000183010001000100030181000102 +01810001820100010701810001810100 +0e0181000102018100018201000184010001000102018100010201810001840100010001 +07018300010001840100010001040181000102018300010001050183000100018a010001 +000100010001000186010001000100010201810001860100010001000184010001000101 +018100010101830001000112018700010001000100010a01930001000100010001000100 +0100010001000100018a0100010001000100010001030181000101018700010001000100 +010101850001000100010401830001000103018700010001000100010301010006018100 +010301810001010181000102018b00010001000100010001000106018700010001000100 +010901010084010001000112018100010101870001000100010001030181000188010001 +000100010001030185000100010001010181000101018100018701000100010001008100 +01010181000101018100018e010001000100010001000100010001020183000100010801 +870001000100010001050187000100010001000101018700010001000100010101810001 +87010001000100010001000701850001000100010801810001020181000103018100010b +01810001020185000100010001820100010a018100010101810001030185000100010001 +8201000182010001030181000102018100010501830001000182010001820100010101 +0c018100018401000100010a018100010201810001070183000100018201000104018100 +010201830001000102018100010101810001820100010501830001000108018100010101 +83000100010201810001050185000100010001010181000102018100010f018100010801 +890001000100010001000103019100010001000100010001000100010001000104018100 +018301000100810001010181000101018700010001000100010501830001000184010001 +000184010001000102018900010001000100010001820100010101810001810100830001 +0001010183000100018601000100010001070184000100010081000107018b0001000100 +010001000100011301850001000100010901840001000100810001070187000100010001 +000101018200010081000101018100010301830001000182010001010181000182010001 +010183000100010301810001010181000103018900010001000100010001030181000101 +018700010001000100010501870001000100010001040183000100010101810001010187 +000100010001000182010001030183000100018601000100010001180181000102018100 +010401830001000182010001820100010201810001020183000100018201000104018100 +0182010001010183000100010201810001820100010a01810001 +140181000184010001000182010001020183000100018401000100018201000101018100 +010301830001000102018100010101830001000184010001000102018100010201810001 +050183000100010101810001070183000100018201000101018100010801830001000182 +010001110187000100010001000105018700010001000100010101830001000103018300 +010001020181000184010001000105010100840100010001070189000100010001000100 +010201810001040101008201000103018400010001008700010001000100010101870001 +000100010001040189000100010001000100010601870001000100010001010181000106 +01850001000100010e0181000103018b0001000100010001000100010401890001000100 +010001000103018600010001000100820001008100018401000100010201840001000100 +830001000101018100010301830001000101018100010101010003010100050183000100 +010101810001030181000101018700010001000100010701010004018100010201010009 +018700010001000100010601830001000111018100018201000104018300010001060181 +000101018100018601000100010001050183000100010b01810001820100018401000100 +018401000100018201000182010001 +0d0181000102018100010701810001820100010401810001050181000101018100010201 +830001000184010001000102018300010001840100010001070181000102018500010001 +00010201870001000100010001050187000100010001000108018100010d018100018201 +000107018500010001000101018700010001000100010301830001000103018300010001 +030187000100010001000105010100860100010001000107018100010101020086010001 +000100010201830001000103018100018401000100010101810001090101000801860001 +000100010081000101018100010301810001010185000100010001860100010001000110 +018300010001010181000107010100860100010001000105018300010001010181000101 +018100010201870001000100010001040181000188010001000100010001030185000100 +010001040181000103018700010001000100010301830001000102018100010301810001 +0101850001000100010401010003018f0001000100010001000100010001000106018500 +010001000182010001110181000104018300010001860100010001000182010001030181 +000108018100018401000100010201020003018300010001820100010701810001820100 +01820100010201 +100183000100018401000100018401000100010501810001020183000100018601000100 +0100018201000104018100018401000100010b0182000100840001000100810001030181 +00018201000101018100010301850001000100010c01830001000101018100010c018100 +0101018f0001000100010001000100010001000105018700010001000100018801000100 +01000100010201810001050187000100010001000108018b000100010001000100010001 +820100010601820001008100010301810001010181000102018b00010001000100010001 +000104018700010001000100010301810001060183000100010101860001000100010081 +000114018700010001000100010101860001000100010081000103018100010101870001 +000100010001040181000101018500010001000106018300010001820100010501850001 +000100018201000101018100018101000200860100010001000105018900010001000100 +010001010183000100010201810001080181000102018100010201810001030189000100 +010001000100018201000101018300010001040181000111018300010001090183000100 +018101008100018a01000100010001000100018201000104018100010e01810001840100 +0100018201000105018100010001 +01018100010a018300010001820100010901810001840100010001860100010001000105 +018300010001840100010001070185000100010001840100010001020181000102018100 +018401000100010301810001010185000100010001030181000182010001010181000108 +0101000f0189000100010001000100010501870001000100010001050181000107018b00 +010001000100010001000105018600010001000100850001000100010301810001020101 +008c01000100010001000100010001860100010001000102018500010001000107018100 +0101010100040181000101018300010001010101008a0100010001000100010001080185 +000100010001140187000100010001000104018300010001010181000103018100010101 +820001008300010001810100810001030185000100010001030181000101018500010001 +000182010001010181000101018100010d01890001000100010001000105018700010001 +000100010201830001000105018300010001010185000100010001820100010701840001 +000100810001030185000100010001010181000107018100010101810001040181000186 +010001000100010601810001010181000102018100010401830001000103010100030181 +00018401000100010a01810001820100018301000100 +010181000103018100010c01830001000184010001000184010001000105018500010001 +000182010001090185000100010001820100010101810001820100010101810001820100 +018201000102018100010101830001000101018100010201810001840100010001090102 +0084010001000101018100010d0181000105018100018301000100830001000107018100 +018c01000100010001000100010001820100010501870001000100010001030181000106 +018700010001000100018101000200820100010101810001060181000101018200010081 +000103018e00010001000100010001000100010083000100010101810001010186000100 +010001008100010101810001050184000100010081000114018300010001050181000101 +018200010085000100010001030183000100010101810001020181000102010100860100 +010001000104010100020181000101018200010081000101018100010101810001010181 +000181010089000100010001000100010501810001010187000100010001000105018500 +010001000104018100010301830001000101018500010001000186010001000100010601 +8700010001000100010a0181000104018100018601000100010001070181000105018100 +010101810001020183000100018201000101018100010201020001018100010501830001 +0001820100010b01 +02018100010c018300010001840100010001050183000100018401000100010a01850001 +000100018201000101018100018201000101018100010401810001820100010201810001 +820100010101810001040181000101018100010101810001010185000100010001060181 +0001030102001101870001000100010001020181000102018a0001000100010001000100 +010008018100018601000100010001030181000101018300010001010186000100010001 +008300010001020181000102018100010101850001000100010101010002018100010101 +810001860100010001000101018500010001000106018700010001000100010301810001 +06018500010001000104018700010001000100010e018100010101850001000100010101 +810001020181000103018a00010001000100010001008300010001010181000181010081 +00010101810001010183000100010301810001010181000104018d000100010001000100 +01000100010101850001000100010101850001000100010b018700010001000100010a01 +830001000103018100010301810001020189000100010001000100018201000107018100 +01030181000110018100018c010001000100010001000100010201850001000100018401 +00010001020183000100010c0183000100010501830001000182010001820100010101 +060183000100010e018300010001820100010c0185000100010001050185000100010001 +040181000186010001000100010301010008018100018801000100010001000101018100 +010c0183000100018101008700010001000100010a018100010701810001010183000100 +0103018100010b0187000100010001000104018100010101830001000101018100010101 +870001000100010001060183000100018101008100010101830001000101018600010001 +000100810001010181000101018100010201830001000105018400010001008100010301 +810001070101008201000101018b00010001000100010001000109018100010201830001 +000104018700010001000100010201830001000101018300010001010181000106018500 +010001000182010001820100010101810001050183000100010101810001860100010001 +000103018100010f01870001000100010001010189000100010001000100010301810001 +010183000100010201810001840100010001880100010001000100010301810001040181 +000101018700010001000100018201000103018100010501810001030181000101018300 +010001820100010c01810001040181000104018100010201810001010181000184010001 +00018401000100010301810001020183000100010501810001 +020181000104018300010001020181000103018100010801830001000186010001000100 +010201810001020183000100010501850001000100010b01810001820100018601000100 +010001040181000103018100010201810001870100010001000100010001018300010001 +050181000102018300010001050181000101018300010001030187000100010001000101 +018b00010001000100010001000182010001020183000100010101810001820100010101 +870001000100010001070184000100010081000104018100010601810001050101008601 +0001000100018c0100010001000100010001000105018100010201810001010188000100 +01000100010081000101018100010501840001000100870001000100010001820100010b +018500010001000103018200010085000100010001030181000101018300010001010181 +000104018100010101810001010185000100010001820100010201820001008300010001 +030183000100010101860001000100010081000186010001000100010701870001000100 +01000103018300010001010181000101018100010201810001820100010a018900010001 +000100010001020181000103018300010001110181000102018500010001000102018500 +010001000186010001000100010101830001000102018300010001020181000182010001 +0401810001070184000100010081000105018100010201810001 +810001820100010101810001020181000101018100010101010006018300010001050181 +000102018300010001040181000186010001000100010701850001000100018401000100 +0107018100018601000100010001020101000301810001040181000106018b0001000100 +010001000100010301040084010001000102018700010001000100010501830001000109 +018100010201010008018200010081000105018900010001000100010001050182000100 +8100010101870001000100010001010185000100010001020181000103018100010c0183 +000100018c0100010001000100010001000108018700010001000100010d018300010001 +020183000100018201000105018700010001000100010401890001000100010001000181 +010081000184010001000102018100010201810001030181000103018100010201810001 +010189000100010001000100010301810001820100018201000103018200010081000181 +010081000106018700010001000100010301810001050181000101018900010001000100 +010001840100010001050181000186010001000100010701810001090181000102018100 +010501810001070181000103018100010301810001040181000182010001030102000201 +83000100018401000100010501810001850100010001008100010201 +020181000102018100010701870001000100010001820100010401810001820100010401 +830001000184010001000109018300010001820100010601830001000184010001000182 +010001060181000182010001030181000101018200010081000102018200010003008201 +000103018100018201000182010001010181000104018100010501890001000100010001 +000103018900010001000100010001020181000103018100010801010001010100080187 +000100010001000102018100018201000103018100018201000101018100010101830001 +000184010001000101010100860100010001000105018400010001008100010701840001 +000100830001000107018100010101010086010001000100010301830001000101018300 +010001840100010001080187000100010001000107018100018401000100010101830001 +000101018100010101830001000103018400010001008100010101810001070186000100 +010001008100010301870001000100010001050187000100010001000106018700010001 +000100010501810001010183000100010101810001040187000100010001000106018300 +0100010f0187000100010001000186010001000100010801830001000102018300010001 +010181000182010001040181000104018100010a01830001000182010001070181000100 +01 +820100010301010001018300010001820100010501810001840100010001030185000100 +010001820100010701850001000100018401000100010401830001000184010001000104 +018300010001030185000100010001040183000100010101830001000103018300010001 +070181000182010001010181000184010001000101018500010001000102018300010001 +070185000100010001050185000100010001040181000101010100020183000100010501 +01008601000100010001030181000108018b000100010001000100010001010181000101 +010100020183000100010601810001010183000100010301810001880100010001000100 +010801870001000100010001010181000104018300010001830100010085000100010001 +010101008201000101018300010001010181000108018700010001000100010601810001 +070181000102018100010901810001010184000100010081000103018100010301830001 +000103018100010101870001000100010001050189000100010001000100010501810001 +820100010101810001010102000201830001000102018100010301850001000100018201 +000107018100018201000104018100018201000182010001020183000100010501810001 +040181000104018100010401830001000109018300010001820100018201000107018300 +010001820100010301 +03018100018201000101010200050181000104018100018401000100010a018500010001 +000107018100018601000100010001060181000187010001000100010081000184010001 +00018a010001000100010001000181010083000100010101810001050102000301870001 +000100010001020181000101018500010001000181010081000104018100018301000100 +810001040103008101008100018201000102018500010001000103018100010201870001 +000100010001040187000100010001000101018900010001000100010001840100010001 +820100010201810001010181000101010100040101008401000100010301810001010183 +000100018201000109018200010083000100010701840001000100830001000104018100 +010601810001020183000100010301810001840100010001010181000108018700010001 +000100010301010001018100010101010002010100830100010083000100010101820001 +008100010301830001000102010100820100010101830001000101018100010301810001 +010189000100010001000100010501810001040181000104018100010201830001000103 +018100010101810001820100010101810001040181000105018100010101810001030101 +000101810001010181000104018100010501850001000100018601000100010001860100 +010001000184010001000104018300010001080183000100018201000107018100018101 +00 +810100810001820100010601810001080181000105018300010001860100010001000105 +018300010001840100010001040183000100018801000100010001000186010001000100 +010101830001000102018100010a01810001010181000104018500010001000182010001 +07018200010083000100010b018300010001030187000100010001000101018100010101 +830001000182010001820100010301820001008100010101810001050187000100010001 +000102018900010001000100010001030181000103018100010101010084010001000101 +018100018801000100010001000104018300010001010181000108018700010001000100 +010601870001000100010001040181000108010100850100010001008500010001000101 +018400010001008300010001910102000201020001000100020002010201028302000201 +840100010001810100840001000100810001070183000100010101810001040183000100 +010301810001820100018a01000100010001000100010101830001000101018100010301 +810001030187000100010001000105018a00010001000100010001008100010101870001 +000100010001040181000101018300010001040181000101018300010001040101000401 +870001000100010001860100010001000103018100010101810001820100010101810001 +050181000103010100820100018401000100018601000100010001050181000184010001 +00010401 +810001050185000100010001020181000108018100018401000100010701830001000182 +010001040183000100018401000100010101810001840100010001060181000102018200 +010081000182010001010181000188010001000100010001010181000101010100010181 +000105018900010001000100010001020101000201860001000100010081000105018300 +010001010181000101018300010001010181000105018100010101870001000100010001 +040185000100010001030182000100830001000105018100010101850001000100018401 +000100018201000101018100018401000100010101810001020181000101010100010181 +000182010001010188000100010001000100810001030188000100010001000100810001 +050181000106018500010001000102010100850100010001008100010901810001020189 +000100010001000200010101860200010001000101018100028402010201028402010201 +028b02010200010201020002000101018502000102010083000100010301830001000102 +01830001000184010001000103018d000100010001000100010001000101018300010001 +010181000103018100010101810001030181000101018300010001880100010001000100 +0101018300010001860100010001000101018100010a0181000104018300010001820100 +010801810001010181000103018100010401810001010181000182010001020101000101 +810001050183000100018401000100018401000100018201000105018300010001 +020183000100018201000104018100018401000100010301810001050185000100010001 +820100010701830001000104018500010001000106018100018401000100010201810001 +020181000102018100018401000100010301830001000101018100010501020084010001 +000103018300010001810100020084010001000108018900010001000100010001010181 +000105018900010001000100010001830100010081000103018100010201890001000100 +010001000104018700010001000100010101810001010183000100010301850001000100 +018201000101018600010001000100810001010183000100010601810001050182000100 +850001000100010801810001030181000101018400010001008500010001000102018100 +010201850001000100018a01000100010001000100010101810201020184000201020102 +018200010086000100010001028f0201020002000102010200010201000183010201028b +0201020100010002000100018e0100010001000100010001000100018201000182010001 +01018800010001000100020106018b000100010001000100010001010183000100010201 +81000182010001030183000100010a018700010001000100010401810001040101008201 +000182010001010182000100830001000104018400010001000100060183000100010201 +830001000102018300010001840100010001010101000201810001840100010001820100 +010501830001000184010001000184010001000182010001 +810001050181000102018300010001030183000100010301830001000105018300010001 +880100010001000100018401000100018201000103018100018401000100018401000100 +010201830001000101018100018201000182010001040185000100010001030181000102 +018100018201000103018100010101850001000100010201830001000104018500010001 +00010e018900010001000100010001070181000102010100820100010201810001070187 +000100010001000104018700010001000100010b01830001000186010001000100010201 +830001000102018200010081000102018100018101008300010001020181000105018700 +010001000100018c01000100010001000100010001040181000102010100860100010001 +0001a0010001000100010001000100010200020002000102010002010201020001020102 +8b0201020100010001000200018201000183010200018401020002010101010002018100 +018101028402000200010301850001000100010101810001010185000100010001010181 +000101018200020081000183010001028402010201028d02010201000200020002000100 +018101000100010185000100010001010187000100010001000182010001070183000100 +018201000107018100010201810001010101000201850001000100018401000100010101 +810001010181000103018100010401810001840100010001020181000182010001010183 +00010001020181000102018100018201000107018300010001820100010201 +030183000100010901810001820100010201810001030185000100010001840100010001 +820100010801810001840100010001840100010001080181000104018300010001820100 +010301830001000106018500010001000102018100010101890001000100010001000182 +01000101018100018101000100840100010001010181000108018b000100010001000100 +010001050186000100010001000200820100010101810001820100010201870001000100 +010001050184000100010081000107018300010001030183000100010101830001000104 +018300010001020181000102010100810100810001030181000106018500010001000103 +018200010085000100010001050181000106018100018101008900010001000100010001 +84010001000101018100019c010002000200010002000100010002000201000200020102 +000102010281020101010102880002000100010001028402010201028102018401020102 +008300010201010183000100010501830001000107018100010101010092010201020001 +0200020001000102000102010283020102018d0102010201020102000100010001020181 +0001010181000103018c0201020002000200010001000109018100018401000100010101 +810001860100010001000102018100010101810001820100010501810001010185000100 +010001070181000104018100010401810001030181000104018100018401000100010801 +810001 +820100010501810001010181000103018100010101810001030181000184010001000182 +010001060181000186010001000100018201000108018100018601000100010001860100 +010001000108018100010801810001010181000101018300010001020183000100010601 +870001000100010001040181000182010001010181000182010001880100010001000100 +0105018b0001000100010001000100010101810001020181000101018100010201810001 +020189000100010001000100010601870001000100010001070181000106010200820100 +01030101008201000182010001020181000106018400010001008b000100010001000100 +010001060181000103018100010101010086010001000100010a01810001010183000100 +010201810201010185000201020102840201020100920001000100020002010200010001 +00020002008a000201020001020100020084000102000101018700020102010002010401 +010082010001820100018201000185010001000100830001000101018a02010001020100 +010002018301000102860200010001000181010082000102860200020001020103010100 +840100010001010185000100020001040190020102010001000200020102010001000103 +018500010001000182010001040181000101018300010001820100010101810001820100 +010401810001020185000100010001020181000104018100018601000100010001030183 +000100018401000100010201810001820100018401000100010001 +010183000100018201000101010100840100010001030181000182010001010181000105 +018100018601000100010001820100010301810001020181000186010001000100018401 +000100010801810001860100010001000101018300010001860100010001000101018100 +010101810001010183000100010301870001000100010001070181000101018100010101 +830001000101018100010a01010086010001000100010101810001040185000100010001 +010182000100860001000100010081000103018d00010001000100010001000100018201 +000105018100010301810001010183000100010601830001000182010001010101000401 +830001000101018500010001000104018100010501820001008300010001010189000100 +010001000100018201000104010100880100010001000100018901000100010001000100 +900001000102010002010201020001020102840201020102880200020001000100018801 +02010002000201028402010201028702010001020001008b000200010201000100010001 +02018100018401000100010a019700010001000100010002010200010201000100020002 +00028602010201020001010187020001000100010081000101018700010001000100028c +020102010001000200020102018201020103018802010200010001000107018500010001 +000182010001860102010200020102018100010101830001000102018300010001040181 +000102018300010001840100010001050183000100018201000104018100018201000184 +010001000102010000 +060181000183010001008100010101830001000186010001000100010301810001820100 +010601810001020181000182010001010181000184010001000109018700010001000100 +018201000103018100010601850001000100010101830001000101018100010301830001 +000107018300010001070189000100010001000100018101008100018501000100010081 +000182010001820100010401810001870100010001000100890001000100010001000182 +01000101018400010001008100010701810001060185000100010001030181000101018a +000100010001000100010081000103010100840100010001010182000100830001000105 +018100010601850001000100010101010084010001000103018100010201810001010183 +00010001810100830001000102018300010001070101008a010001000200010001000183 +0100020102018100010401850200010200028102008a0001000200020002000100810002 +820200010101890200010001020100010087000100010001000101018b00010001000100 +0100010001010181000181010281020102018a0200010001000100010001020185020001 +0001028402010201028502010001000181010081000104018100018d0102000100010001 +000100010001870100010002010200810001820100010101810201810100820001008100 +01820100010501890200010002000100020102018b000102010201020002000201840100 +010001820100018201000101018100010501830001000107018100018401000100018201 +00010401810001810100 +010181000184010001000182010001840100010001010181000107010100030183000100 +018401000100010201830001000184010001000107018700010001000100018201000104 +018100010101850001000100018101008100018a01000100010001000100010201830001 +000101010100040187000100010001000103010100840100010001060187000100010001 +00010401810001030181000101018b000100010001000100010001010181000103018100 +010101810001820100010601810001010183000100010101880001000100010001008600 +010001000100810001040181000101018100010101010086010001000100018401000100 +01060181000182010001820100010101820001008b000100010001000100010001020181 +000103018100010101830001000102018300010001030185000100010001880100010001 +0001000103018b0200010201020100020002008600010002000201880100010002000201 +0284020102010081000102018b0200020001000100020002008100018101028502010001 +000186010001000100010101020082010001070181000101018b00010001020100020102 +010284020102010289020002000200010201028c02000201000201020100010001010183 +000100010201810002940201020100020102010201020100020002010200028902010201 +00010001000181010081000101018b000100010001000100010201010101028d01020002 +010201000100010201028502010001000102018500010001000102018100018201000102 +0183000100018801000200020100020101018d0201020102000200020100010201 +810001020183000100010301810001020183000100018201000101010100030181000102 +01850001000100018201000109018300010001840100010001040181000101018100018a +010001000100010001000103018100010b01810001010183000100010201830001000105 +018100018401000100010301820001008500010001000105018100018401000100010101 +8b0001000100010001000100010701020001010100020181000104018700010001000100 +01820100010301870001000100010001040181000107018a000100010001000100010085 +000100010001010181000184010001000103018100010101010088010001000100010001 +060181000102018100010101830001000101018400010001008300010001040101008401 +020102018201000101018300010001010101008601000201020002820201028602000201 +0201028a0200020001000100010001840100020001030183020102010101850001020102 +018201000101018300020002810201820100010501820001008100018e01000100010001 +000100010001000182010201820100018501020002000284020100010284020102010281 +020101010102880100010002000200018901000100010001000100870002010200010001 +010184000100020182010001030182020002820200018201020103010100820100010101 +81000104018400010200028b020102000201020002000201870102000200010001020181 +000102018300010001820100010201830001000106019402010201000100010200020001 +0200020102010201810100 +020183000100010201810001020101008201000102018100010701810001820100010601 +810001860100010001000182010001040181000102018700010001000100018401000100 +010801820001008100018201000188010001000100010001010181000103018300010001 +020183000100010401870001000100010001820100010401890001000100010001000101 +018700010001000100010701870001000100010001010181000102018300010001810100 +830001000107018200010083000100010501810001060181000181010081000101010100 +010181000108018300010001820100010101860001000100010001008201000182010001 +04018100010101830001000101018300010001880100010001000100010a018100010201 +860200020001000189010001000100010001008600010001000201890100010001020001 +0201010185000201020102820201028102008200010001008c0200020001000200020100 +020088000100020100010001820102008900020001000100010001050183000100010501 +81000101018d000200010001000201020102000101018900010002000200010201010101 +008101028902010201000100010001050183000100018a01000100020102010200028602 +0100010201028d0200020102000200020100010001020181000102018600010001020102 +830201000101018a02000201020102000100010101810201820100018501000100010083 +00010001020183000100018401000100018e010001000102000201020102010201010185 +020102010001840100010201 +810001020181000182010001840100010001050183000100018201000182010001040183 +000100018401000100010701810001020187000100010001000184010001000106018300 +010001860100010001000104018300010001030185000100010001010185000100010001 +010181000101018300010001090184000100010001008801000100010001000182010001 +8201000103018b0001000100010001000100010101810001050181000184010001000181 +010081000103018700010001000100010401810001030181000101018600010001000100 +810001820100010401810001010186000100010001008100010101830001000182010001 +010181000101018100010101810001020185000100010001820100010301840001000100 +810001070184000100010085000100010001010181020082000201010185020100010001 +010181000105018902010200020002000100900002000100010201000200020001000102 +910201020001020102000100010002000201028602010200020001820102008100018201 +020104018300010001010102000201850001000100010401010282010001840102000200 +850002000201028102010201810201010101028801020100020001000104018d00010001 +000100020102010201028a02000200020002000102018201000288020002000200010201 +0101810001050183000100019b0100010002000201000102000200020001000100010201 +00010200010601010002018300010001020181000103019a000100010200010002000201 +000100010200020102010201020001 +840100010001050181000185010001000100810001040181000102018100018201000107 +018500010001000186010001000100018401000100010601830001000184010001000106 +018500010001000182010001820100018401000100010401010084010001000101018100 +0109018700010001000100010301010001018100010501810001030183000100010f0185 +00010001000106018100010b0181000103018100018a01000100010001000100010c0101 +000101830001000104018300010001010101008401000100010101860001000100010081 +000101018400010001008700010001000100010401890001000100010001000106018700 +010001020102008700010002000200018401000100010101010086010001000100018501 +02010201028e020102000200010002000201020102870200010001000102840201020102 +840201000102820201000100860200010002000201028801000100010001000101018300 +010001030188000100010001000100850001000100018201020104018100018d01020002 +00010001000201020100830001000101018200020101018300010001050101028c000200 +02000200010201020102870201020102010201010186000100020001008100010c018502 +010200020101018302010001020189000102010001020102018401000100018101008100 +018201000105018100010201830001000101018102010101830201000186010002000102 +018201000185010001000102 +030183000100018201000109018100018201000106018100018201000184010001000184 +010001000184010001000106018300010001840100010001060183000100018401000100 +010601890001000100010001000188010001000100010001010183000100010401850001 +000100010501850001000100018201000102018100010101830001000105018100010101 +810001810100870001000100010001030185000100010001840100010001010182000100 +010086010001000100010101880001000100010001008100010501810001050101000401 +020002018500010001000102018300010001040181000101018300010001840100010001 +080189000100010001000100010801840001000100810001830102000281020181010085 +0001020102018a0100010001000100010001040186020100010002008100010901820001 +00850001000200028c020002010002000200010200028402010201028502000200010091 +000200010001000100010001000100010001070181000102019300010001000100010001 +000200010201000201028402010001028402010201028402000201008400010200010401 +8d000100010001000201020102010283020100018401000100018b010001000100010201 +020102820201008300010001010101000201830001000103019600010001000201020002 +0102010001000100010001000184010001000105018500010001000107018100018c0100 +020002010001020102000189010002000200020100010001 +820100010501810001840100010001810100830001000101018100018201000182010001 +020185000100010001820100010801810001840100010001060181000186010001000100 +010601810001860100010001000101018100010101830001000184010001000101018300 +010001010185000100010001040102008401000100010101810001020181000101018100 +018201000105018100018201000101018100010501010086010001000100010101810001 +02018100010b0189000100010001000100010a0181000101018600010001000100020082 +0100010101880001000100010001000200820100018a0100010001000100010001030181 +000189010001000100010001008100010801910001000100010001000100010001000201 +02830201020189010201020100010002008100010301820001008a000100010001000102 +010293020102010002000200020001000100020002010284020102000286020100020001 +008100010101880001020100020002018201000102018500010001000101018100010101 +810001810100820001008100010101810001030181000102018902000100020001000102 +8402000200028402010001028402010200010101030287000100010001000106018a0001 +0001000100010201028102010101820201028e0201020100010002010001000100018201 +0001040181000101018300010201010101028d0102000200020002000201020102840200 +010001820100010401810001820100010401830001000188010001000102010201010183 +02010001010185020002010001810102810201810102 +01018300010001820100010701020004018100010e018300010001860100010001000104 +0181000186010001000100010601810001880100010001000100018a0100010001000100 +010001010181000106018100010301810001010181000101018100010401830001000181 +010081000102018100010401810001010181000182010001820100010201890001000100 +010001000102018100010701810001890100010001000100010081000183010001008100 +010601850001000100018a01000100010001000100010101810001010181000101018300 +010001020185000100010001020185000100010001040186000100010001008100010a01 +880001000100010001008900010001000100010001010101029201020102010002000200 +02000100010201000184010001000102018c000100010001000200010001008500010001 +020183010201028d02010201020001000200020100018301020002820201028402000201 +008700010201020100018801000201020001020101018500010001000103018400010001 +00870001000100010001010182000102810201820100028d020102010002010200020001 +02018b0102000201000200020001008100010501850001000100028402000200028e0201 +020100010001000201020002008900020100010001000100810001810100010082010001 +040197000100010200020002000100010201020001000100010001020181000182010001 +810100810001820100010101810001820100010201810001040197000102000200020100 +010201020102010201000102000200 +060181000184010001000182010001050181000101018100018201000182010001010181 +000182010001060181000186010001000100010901830001000182010001010185000100 +01000102018100010c018b000100010001000100010001010181000101018100018a0100 +010001000100010001040181000101018100010101010082010001860100010001000101 +018100010501810001070182000100020084010001000186010001000100010201810001 +02018f000100010001000100010001000100010201810001030181000101010100840100 +010001020101008401000100010101010085010001000100850001000100010a01860001 +000100010089000100010001000100010401810001010183000200028c02010200010201 +0201020100018a0102000200010200010001010182000100810001060183020001008c00 +020001000100020002000200810002840201020102870201000201000100900001000100 +020002000100010002010001830102000287020100010001000101018100018201000104 +0181000102018b0001000100010001000100018601020001000102820200018201020184 +010001000103018402000100028602000100010001010181000102010102910102010200 +010001000100020102010201028102010101880201000201020100010601810001010181 +000185010201020102870201000102010001010101028501000102010083000100018401 +000100010401830001000184010001000102018d00010001020102010001020102018a01 +000102000100020100010301 +010181000182010001050183000100018201000182010001010181000182010001010181 +000105018300010001840100010001060181000184010001000188010001000100010001 +860100010001000108018300010001840100010001010185000100010001060183000100 +010101810001820100010501870001000100010001010181000103018100010101810001 +010181000101018300010001030181000101018b00010001000100010001000104010100 +010101008201000101018100018301000100850001000100010501810001010101000201 +830001000101018100010201810001020183000100018601000100010001040181000108 +0183000100018c0100010001000100010001000106018100010101010002018200020101 +01810201850102010200028802010201000100020101018100010a018800010001000200 +02018e010201020102000100010002000200880002000200010001028202010282020001 +810102820201029202010201020001020002000200020102000200810001010181000183 +010001008500010001000107018100010101960201000100010002000200010002010200 +020001020102810200870001000200020002880200010001000100010101880001000200 +01000102880201020102010002008a000102000102000201000187010200020100010001 +000301810001020199020100010200010001020100010201000200020102010001020104 +010300820100010201810001040181000184010001000182010001860102010001000103 +0181000104018300010200 +810001840100010001840100010001020181000182010001840100010001820100010201 +810001040181000106018100018401000100018201000101018300010001820100010d01 +890001000100010001000182010001070183000100018601000100010001010183000100 +010101810001860100010001000105018800010001000100010001008201000101018300 +010001810100810001010189000100010001000100010701810001050181000101018100 +010101810001090181000101018300010001010181000102018700010001000100010101 +810001030181000101010200030182000100830001000101010100860100010001000101 +018200010083000100010601870001000100010001010181000102018b02010201000200 +020002010285020102010201870102010001000200880001000100010001008500010001 +000102018302010200870001000200020102820201028302010201010194000200020001 +0200010002000200020001000102008100028d0201000102010200010002000200830001 +000102018100018e01000100010001000100010001000101018700010201020102010301 +880201000100010001008100018601020001020102860201020102000102018100010101 +8f0001000100020001020100010001000104018100018201000101018900010200020100 +010001030101000401840002010201860102010200020101018100010201890200020100 +010001000101010100050181000102018300010001030197000102010201020001000201 +00010001020102010001000181010282020100 +810001050181000184010001000105018100010401810001820100010201810001010181 +000184010001000102018300010001840100010001080181000186010001000100018601 +000100010001080183000100018101008100010801830001000101018700010001000100 +010101010088010001000100010001050101000101830001000103018100018101008500 +010001000105018700010001000100010101860001000100010083000100010101820001 +008100010401830001000182010001010189000100010001000100010401860001000100 +010081000186010001000100018801000100010001000102018100018801000100010001 +000103018100018a01000100010001000100010601840001000100820002018701020102 +010201028602010201020102860200020002000101010102860102010001000106018a00 +010001000200020102018801020002000100010083000100028b02010001020102010002 +000284020102000282020102810201830100020086000200010001028202010281020102 +018100010101830001000107018e00010001000100010002000102010083000100018301 +000102820201020202810102890200020002000100010083000100010801810002970201 +000100020002000200020001020102000102000201028502010001020101018700010001 +000100010401830001020182010001850102000200028902000200020002010201010181 +000104018100018201000101018100010501810001020189000100010201020002010101 +8b00010200010002010001000101010002 +840100010001820100010501830001000182010001020102008101008100010901850001 +000100018401000100010601810001850100010001008700010001000100010901870001 +000100010001050181000188010001000100010001030181000108018100010a01850001 +000100018201000101018900010001000100010001050185000100010001010189000100 +010001000100010101010002018500010001000101018100010101840001000100850001 +000100010501840001000100830001000105018100010101810001030181000106010100 +020181000101018100010101810001820100018201000103018400010001008700010001 +000100010201010287000200020002000285020102000201830102010289020002010201 +020001008300010001010182000100960001000100010001000102010200010002000200 +020002850201020102018901000201020001020102840200020102820201028302010200 +880002000201000201028402010001008700010001000100018201000188010001000100 +010001090187000200010201000101018802010200010001000183010200028402010201 +029002010200020001000100010001000100010101820200010101010285000201020102 +8402010201028a0201020102000100010200810001050181000101018100010101010289 +010200020102000100028a02010200020102010200028202000104018500010001000182 +0100010201830001000102018100010101810201830100020101018200020101018c0201 +0200020102010001020002 +080183000100010501830001000101018300010001010101001301840001000100810001 +0101830001000109018700010001000100010b0182000100810001020183000100018301 +000100810001810100850001000100010401810001880100010001000100010101840001 +000100810001810100820001000200040183000100018801000100010001000103018100 +01030181000101018300010001040101000a018900010001000100010001080185000100 +010001010102008501000100010088000100010001000100860001000100010085000100 +010001030181000184010001000108018a00010001000200020002018701020001000100 +02810201820100028c020100010201000200020002008800020002000100010085000100 +010001030182000100850002000102018201020183010002008a00010001000100020102 +018601000102000102810200820001028f02010002010001000200020001000102830201 +000101018100010b018b0001000100010001000100028302010201880100010002000200 +028f02010201020001020100020001000100810001010181000101018100018101008100 +018c0100020001000100020102010287020100010201020001008e010200010001000102 +000100010001080187000201020002000293020102010001020100010001020001020001 +000101018100010701830001000184010001000102018100018401000200018e01000102 +010200020002010201000185010201020102 +820100018401000100018201000184010001000182010001020182000100020082010001 +820100018401000100010401850001000100018601000100010001020181000104018500 +0100010001820100010a0183000100018401000100010101810001010181000104018500 +010001000103018100018201000101018100010101850001000100010101830001000105 +018100018201000102018300010001010101000401810001010183000100010101830001 +000101018300010001880100010001000100010301870001000100010001080186000100 +010001008700010001000100010501810001040181000101018100010201810001010181 +0001820100010101840001000100810001050184000100010081000101018b0201000102 +01000201020102830201020102018c020102010201020001000100010101010084010002 +000102018300010001010195000100010002000102010200010001000200010201028402 +010201028302000200880002000200010201029802010200010201000201020100010001 +02000100010001000182010001040187000100010001000108018b000200020001000100 +01020186010200010001028a020002010002000200010083000200010701810001010101 +028f010001000100010001000100010201028402010200028c0201020002000100010001 +000184010001000102019902010201020102010002010001020100010001000102000102 +018401000100010101810001820100010201810001060181000184010001020101019502 +010201000100010200020002010201020001000201 +0601810001070183000100010c0101000301810001010183000100010901850001000100 +018201000108018300010001860100010001000102018900010001000100010001030181 +000182010001030185000100010001010182000100810001010181000101018100010701 +840001000100810001860100010001000105018100010101830001000101018100018a01 +00010001000100010001040183000100010101810001820100010a0101008b0100010001 +000100010001008100010301830001000182010001870100010001000100860001000100 +010081000101018100018201000101018300010001010101008601000100010001010183 +000100028d02000200020001020102010201028402010201028402010201028402000100 +0201028b00010002000200010201020001008201000106019d0001000201000200020001 +000100020100010002000200010001000201028602010201020001970100010201020001 +020001000102010200020002010200010101020002018c00010001000100010001000100 +850001000100010101010203018a02010002000200010001028902010001000200020001 +8c0100020001000100010001000101018200010289020102010002010201020202890102 +000200010001020001008101028102010101810001040186000100010002008700010001 +000100020102810100810001830102010286020102010001008100010101810001040181 +0001020183000100010201820001029b0201000102000200020100010201020102010201 +0001000102000100 +010183000100018401000100018201000182010001040181000181010081000101018300 +01000103018100010201810001030185000100010001820100010b018500010001000104 +018700010001000100010401810001040101008201000186010001000100010301830001 +000106018100010301910001000100010001000100010001000100010301810001810100 +810001010181000101018400010001008100010701850001000100019701000100010001 +000100010001000100010001000100010085000100010001050101008401000100010501 +810001010183000100010201830001000101010100020101008401000100010101830001 +00018b010001000100010001000201010181020182010201820100028b02000200010201 +020102010281020101010102820102018201000284020100010085000100010200820001 +008700010001000100010201830001020183010200028402010201000200850200020102 +018101028102008b00010002000200010001020082000100830002000284020100010086 +000100020002018301000100830001000182010001070101009601000100010001000100 +020001000100010002010201028702000200010201028402000100028102018201020103 +019100010001000100010002000201020001000101010100840100010201860100010002 +010001008201000102018100010101810001820100018e01020102010201000201020002 +00018b010201000200020002000201810100810001020183000100018401000100010401 +8100018101028c0200020100010201020002010290020001000102000201000102010201 +0201 +010181000107018100018201000184010001000107018300010001820100010601810001 +820100010b01850001000100018201000101018100018601000100010001030181000109 +01850001000100010701850001000100010101850001000100018a010001000100010001 +00010901010003018f000100010001000100010001000100010701820001008300010001 +060188000100010001000100810001880100010001000100010601870001000100010001 +060181000102018100018401000100010101820001008100010101810001850100010001 +008b000100010001000100010001820100010501820201028d0201020102010201000201 +0201028402010201028202010081000286020102010201028c0200020001000102000200 +01008100010901820001008600020001000201850100020001028402010201028f020002 +000100010200010002000201028102010201820201028502000200010081000101018302 +010002840201000100010004018700010001000100010801870001000200010002820201 +0288020002000200010201890100010001000200020087000200010001000107018a0002 +0002000100010201028b02010200020102000100010281020083000102018a0100010001 +0001000100010201860002010001000101018100018d0102010200020001020102010200 +830001000109018100010101810001860100010001000201028601020102000201010183 +00010201010183020102010101840200010001810100 +010181000182010001840100010001050183000100018401000100010701810001820100 +018401000100010601850001000100018201000101018100018601000100010001040181 +000104018100010101870001000100010001820100010301870001000100010001030183 +000100010101810001010101000201810001030185000100010001810100870001000100 +010001010181000109018900010001000100010001060186000100010001008100010101 +810001040181000106018400010001008100010701820001008300010001010181000103 +018100010101830001000188010001000100010001070181000108018b00010001020102 +01000102018401020102010101850002010201028a020002000102010201020182010201 +820102018301000201820100018701000100010001008500010001000106018a02010201 +000200020001009000020001000201020102010002000100018a01020002000100010002 +008500020102000281020189010001000201020002010201810001010183000100010401 +8c0001000100010001000102010281020102018b00010002000100010200010086000200 +010201008100028302010201040187000100010001000186010201020102018201000181 +01008100018a010001020001020100020083000100018201000105018300010001010183 +020102010101010087010200020002000286020100010200028102010101010084010001 +000182010001010181000105018100010201990001000102000200020102010001000102 +0100010001000102018101020002 +810001070181000184010001000103018300010001820100018801000100010001000101 +018100010101850001000100018201000101018100018601000100010001040181000104 +0181000101018100018a0100010001000100010001060181000105018100018601000100 +010001010183000100018101008100018101008100010101830001000103018100010101 +830001000103018600010001000100810001840100010001070188000100010001000100 +860001000100010083000100010101820001008100018801000100010001000101018200 +010089000100010001000100010401860001000100010001008401000100010101830001 +00010201820001008400010001008b000100010001000100010001820100010401810201 +8f0102010200020002000200010201020182010201870102000200020102820200028a02 +010201000200020002008400020102008100018201000104018400010001008b00020002 +000100020102010289020102000200010002000200010101028201000183010201028202 +01028f020102010002010002000102010001008400010200018401000100010401010086 +010001000100010501870001000100010002870201020100020102940201020100020002 +000102000200010002000100010801870002000100010001010101028a01000100020002 +010001028502010201020101018300010001860100010001000101018600010200020102 +860201000102010287020100010001020184010001000102018300010001840100010001 +020183000100010301950201020102010200020102010001000100010200020103018400 +01020002 +810001820100018401000100010201810001840100010001080101000101810001060181 +000182010001860100010001000104018100010201830001000102018900010001000100 +010001820100010801850001000100010501010002018d00010001000100010001000100 +018201000102018300010001830100010081000102018100010101810001010181000102 +018100018201000102019100010001000100010001000100010001000104018100010301 +820001008300010001820100018801000100010001000108018900010001000100010001 +030101008201000101018300010001010101008201000101010100030183000100010801 +880001000100010001028602000201020102810201850100010200028702010201020102 +01820102010101010281010289020002010001000200028402000201008100018a010001 +000100010001000184010002010281020184010200010083000100010101810201020190 +00010002000200010001000201020001008400020001028102008d000200010001000100 +02000100018301000100820001008500010001000105018b000100010001000100010201 +8801020001000102000184010200020087000201020001020001008e0100010001000100 +010001000100018201020183010201028402010001028602010001020102820201008100 +02810200870001000100010001060186000100010200028e020100010001020100010200 +010001010183000102010201810001020181000104018100018601000100010001870100 +01000200020101018102010101830201020104018900020100010201020102 +0201810001820100018401000100010a0183000100018401000100018401000100018201 +000102018100010301810001040181000102018500010001000186010001000100010801 +8100018e0100010001000100010001000100018301000100810001840100010001090185 +000100010001820100010501890001000100010001000102010100830100010083000100 +010201010086010001000100010701870001000100010001820100010401810001010181 +000182010001060186000100010001008100010301840001000100830001000103018300 +0100010301840001000100830001000186010001000100018a0100010001000100010001 +0b0186020100010201028102018201000284020102010286020102010201028502010201 +0001810100810002820201028302010001840102000201090183000100018a0100020002 +000100010201810102890200020001000100020085000201020102820201028102010101 +010282000201840100010001030182020001840102010001820100018101008200010081 +000103018900010001000100010001020101028301020100890002000100010201020183 +010201028402000200028202000285020102010201030186000100010001000100880100 +010200010200028702010201000200018301020102850200020102010301840001000100 +0200010101008501020001000101018b0001000201020100010001028902010201000100 +0100010201810001050181000106018100018b0100010001000102000100018f01000102 +010201020102010001020002 +820100010a01810001840100010001820100010101810001820100010401810001020101 +008201000101018100010201850001000100018401000100010b01890001000100010001 +000184010001000105018100010601010003018900010001000100010001040181000101 +018500010001000109018100011601870001000100010001070101000201830001000101 +018100018101008200010085000100010001010182000100890001000100010001000106 +01830001000101018500010001000101018100010401810001820100010a0101008d0100 +01000100010001020102010201020101010283000100018101028b020002000200010200 +010201010103028401020001008600020102000100020088010001000100010001820100 +0103018300020102820201008700010001000200028102018d0100010001000200020001 +00010283020002008c000200010001020001000100028402000200028202000182010001 +02018100018a0100010001000100010001030184000200010086000200010201028f0201 +020001020100020100020002010282020100890001000100010001000106010102840002 +00020083000201028a020002010002010200020081000102018900010001000100010001 +060199020100020102010002000201020002010200020100010001020102018100018801 +000100010001000102018100018201020102018100018101029502010200020100010001 +0001020002000201000102010101810201 +030181000184010001000182010001040181000184010001000107018100010201810001 +040183000100018401000100010801810001880100010001000100018601000100010001 +060181000101018300010001020183000100018201000188010001000100010001010185 +000100010001010181000108018c00010001000100010001000100010088010001000100 +010001820100018301000100830001000105018900010001000100010001040181000101 +018200010081000102010100860100010001000101010100080182000100840001000100 +810001860100010001000101018100010101010086010001000100018401000100018301 +000100010002018100010401820001028102008a00020002000200010201008500010201 +020183010201028402010201028302010201810100840002000200860002000100010083 +000200010301860001000100010084000100010283020002008100018101028202010285 +020102000200890002000100020102000282020102840201020002820200028902000100 +010201000200830002000281020186010001000100018201000103018100010301860001 +00010001008100018201020186010001000200028b020102010200010002000200850001 +000200010701870001000100010002840201020102880201020100020002010101810001 +010101008502000200020107018400010001009700010201020100010001020102000100 +020002010201000201028100018401000100010701850001000100018401000100019e01 +020100010201020102010001020102010200020002010001000102000100 +010181000104018100018401000100018201000102018100010601830001000101018300 +01000182010001010181000106018100018401000100018a010001000100010001000106 +018100010201830001000101018100010201880001000100010001008100018201000106 +018100010401810001010181000186010001000100010101870001000100010001030181 +000101018100010101850001000100010101840001000100850001000100010501870001 +000100010001880100010001000100018201000103018100010301810001020102008801 +000100010001000102018300010001030183000100010101820001008100010301010003 +018100010501810001010101008201000103018400020102018201020182010201040185 +020102010201810102840201020102890201020002010002010288020002000200010201 +82010001010181000106018400010001028102018b010200020001000100020002840201 +0201028a0201000201020001020100820001028302010200850002000100010201870001 +0002010001000100010187000100010001000101018300010001040183020102008e0002 +000100010002000201000200028a02010002000201000201028902010001000100010001 +060186020001000100018801020100010001000285020002000200830002010285020100 +01000184010001000106018d000200020102010200020001020101018202000287020102 +010200020103018300010001820100018201000102018502010201000188010001000100 +0100010101930201000100010201020002010201020102000200 +010183000100018201000102018100010a01830001000183010001008500010001000102 +018100010401830001000182010001010185000100010001060181000186010001000100 +010201810001010185000100010001820100010d01810001840100010001010186000100 +010001008100010201830001000105018100010301820001008100018201000101018300 +010001820100018201000106018900010001000100010001030183000100018201000103 +0181000105018100018a0100010001000100010001040181000103010100820100018101 +000100030187000100010001000184010001000104018100018601000100010001010181 +000190010001000100010002010201020102010283020002008500010002010282020102 +860201020102010282020102010282000102810200820001028702010201000200010101 +810001010183000100018201000101018502010002000202028101028202010287020100 +01000200028802010001000201020001008d020100010002010002010200010083000102 +010101820002010401810001050188000100010001000100850001000102018201020188 +01020100020102010084000100020101018102008100028802000100020001000103018c +000100010001000200010201028402010200028e02000200010201020102010002010285 +02010001000187010001000100010085000100010001010183000200028e020102010001 +000102000100010002820201028102018601000100010001040186000201020102018201 +000102018f0201000100010200020002010001000101018902000201020102010201 +01018100010a018100018401000100018601000100010001020183000100010301810001 +820100010501810001840100010001040181000101018100018201000101018100010201 +870001000100010001060189000100010001000100018201000103018100010301810001 +030181000107018100010301810001010183000100010101810001010185000100010001 +0101810001030187000100010001000102018b0001000100010001000100010201850001 +000100010101010001010100820100010701820001008300010001010183000100010201 +850001000100010201810001060181000183010001008400010001008100010901810001 +0601840201020002820201028a0201020100010002000201850102010201028202010284 +020002010084000100010286020100010002008200010281020107018100010101840001 +0201028102008a00010002000200010001008d0001000200020102000100010001010181 +020183010201008200010282020102810201880100010201000201008500010001000101 +01870001000100010001070101008b010001000200010001020102810201900102010002 +000200010201000200020002810201010189000100010001000100018101029102010001 +000201000100010002000200010001008402010200028302010001060102000301850200 +010001029002010001000102010002010201000100020102880102010201020102010101 +8a0001000200020102010201020189000200020002010001028102018101028a02010200 +0201000100010085000100010001 +040181000184010001000184010001000182010001060181000182010001820100018101 +008100010201810001030101000301810001020183000100010101810001020183000100 +010101810001040185000100010001840100010001060185000100010001810100810001 +010183000100010101830001000101018400010001008100010601850001000100018601 +000100010001020185000100010001820100018701000100010001000100830100010083 +000100010701820001008100010e01870001000100010001060189000100010001000100 +010101880001000100010001008500010001000103018102008300010001880100010001 +00010001010181000102018700010001000100018a010001020102010201000102010102 +840002010200810002860201020102010285020002000100860002000100010283020102 +010301840001000100830001000101018500020001020183010201028202010282020102 +840201020102820201028202010282020002010201008102018601020001000200830002 +000185010200010001820100018801000100010001000105018700010001000100010101 +010281010281020185010201000102820201008100010201820201028102008400020002 +018a01000100010001000100010301860002000200010294020002010002000200020001 +020102000102000201040183000100010301010083010002018c01000100010002010201 +000102870200020100010201820102010101940201020001020102010200020102010201 +0201000184010002000286020102010200018401000100018e0100020102010201020102 +00020102 +810001840100010001820100010701810001840100010001820100010101810001820100 +010401810001840100010001040181000101018100010201850001000100018201000104 +018700010001000100010801850001000100018101008100018401000100010301870001 +000100010001030181000101018100010201870001000100010001050181000101018100 +018101008100010401810001070181000108018900010001000100010001020186000100 +010001008100018601000100010001820100010301840001000100810001070101008101 +008100010501810001820100010101010084010001020102018100010b0181000101018c +000100010001000102010200028902010200010201020102830201020085000200020002 +830201020083000200028402010200028202000285020102010001010183000100018201 +000101018400010001008c00020001000100020002000200840002000102880201020002 +000102010201890001000102000102010085000100020002820201020202810001010181 +000103018700010001000100010401890201000200010002000181010282020102810201 +020189000100010001000100018301000102810201070187000100010001000187010001 +02010200028402000201028b020102010002000200020001070181000104018600020001 +020102810201880100020100010002008200010083000201028402010201029002000201 +0201020102010200020002010281020101018d020102010001020002000201020101018e +020102000200020100010200020002 +810001050181000103018300010001020183000100018401000100010401820001008100 +010201810001020102008601000100010001820100010601850001000100010601810001 +900100010001000100010001000100010001080181000105018100018301000100830001 +000101010200030104008401000100010101810001830100010087000100010001000101 +018100018401000100010101840001000100830001000105018100010101010004018100 +010501850001000100018401000100010301810001890100010001000100010083000100 +010101010003018100010101820001008300020102810201820100010301010082010001 +010182000100830001000105010100830200020182010002810201880102010201020102 +018301000102820201028102010101820001028102008400020001008900010002000102 +010001020181000101018700010001000200028702000200010001028202010282020001 +82010201820102018401000100028202000283020102008300020102820201028a020100 +020102010200010081000182010001010187000100010001000102018200010001008701 +020100020001020102850100020001028202010087000200010002000286020102010002 +000100830100010083000100010501010283010001028502010201000101018b00020001 +02000200010001028102010301830001000104018c000100010001000100020002018201 +000181010284020102000286020002000201028102010101880201000102010201028102 +018d01020102010001000200020100010101960201020002010001020002000201020102 +010201020102 +820100018401000100010201830001000184010001000105018100010201830001000105 +018300010001840100010001060185000100010001840100010001040189000100010001 +000100018801000100010001000106018800010001000100010081000101018b00010001 +000100010001000103018100010301810001050184000100010003000201840001000100 +830001000182010001020183000100010601870001000100010001010181000182010001 +810100810001010101000401810001010183000100010101840001000100870001000100 +0100010b01830001000101018b0201020100010002000200018101008100010101830001 +000103018100018601000100010001010185000201020102830200020182010201820100 +028202010202028301000102820201028602000201000100820001028102008500020002 +000281020106018700010001000100018601000100010002830201000182010201850102 +000102018601020102000201870102000100020002830200020083000200028502010002 +00028102018b010200010001000100010001030101008201000103018102018501020001 +000286020100020001028802010201020001000186010002000200028202010281020102 +018800010001000100010001008101028202010289020102010200010200028702000200 +0200010001000101810001030181000102018200010201028100018a0102010002000200 +020102830201000102010102010181020187010200020002010286020002000200018601 +0201000100019e0100020102010201000102000200020100010201020102000201000100 +0100810002 +840100010001820100018201000104018100010201810001820100010201850001000100 +018101008100010101810001020181000182010001820100018201000106018300010001 +8c0100010001000100010001000102018100010301830001000184010001000105018200 +010081000182010001840100010001030186000100010001008100018201000101018700 +010001000100010701020002018700010001000100018201000103018700010001000100 +010601880001000100010001008500010001000103018100010101010088010001000100 +010001080185000100010001820100018201000101010100850200020002008a00010001 +020102000100010101010002018400010001008900010001000100010001010101028301 +020102850201020102018201020183010201008100028402010201028702000200010001 +008400010002008800010002010200020103018100010601810200870001000200020002 +810200010089010002010200010201008c00010002010002010002010001840102010200 +8b000200010002000100010200810001070186000100010001008c000100010001020100 +01020102010201018102018201020086000200010001000100820201028a020102000100 +010001000107018502010200020101010100880100020001000100018a01020002000102 +010002008500010001000105018900020002010200020102880201020002000100010201 +810001010182020002860201020002000281020101018802010200020102010282020002 +8b02010200020002010001020101018e0201020100010001020001000201028302010001 + +050181000103018300010001020183000100018401000100011301810001040183000100 +018a01000100010001000100010b01810001010183000100010401890001000100010001 +000101010100820100010101810001030181000101018600010001000100810001820100 +010101810001030189000100010001000100010101810001050182000100850001000100 +010101810001010186000100010001008100010a01810001010101000101830001000108 +01840001000100850001000100010b018800020102010201000101018102018301000100 +810001820100010101870001000100010001060184000100010083000200028602010201 +020102810201850102010200028202000283020102018701020002010200028502010200 +010284020102010283020102010701860001000100010082000102830201020183010001 +00810001850102000200028202010282020102850201020002008b000200010001000200 +01020101018402010200028b0201000100010001000100010c018b020100020002000102 +0100028102010101010281010282020102810200890001000200020001000103018b0001 +000100010001000102018801020102000102010284020102010282020001810102830201 +0001020183000100010401010083020001028d0200020102000102000201020102840200 +02010081000282020102850201020102018c010201020102010200020002010401870201 +000100010001990100010001020002000102010201020102010201020002010200 +010183000100010201810001840100010001840100010001050183000100018601000100 +010001020181000182010001820100010301870001000100010001820100010101810001 +020185000100010001840100010001010183000100018601000100010001030187000100 +01000100018201000181010081000101018700010001000100010b018700010001000100 +010501820001000100020181000101018100010101810001860100010001000101018300 +010001060184000100010001008301000100830001000109010100840100010001040181 +00010101870001000100010001020189020001020100010001028a020102010200020002 +000184010001000108010100840100010001060101028101028302010201810102010281 +010284020102010284020102000285020102010001010183000102018101008100028202 +010281020111018e02000100020001000102010200010281020001008101008300010201 +810100810001020181020182010200950001000100020001000201020001020100010001 +000101010100880100010001000100010101030201019002010201000102010201000200 +020001008500020001000182010201020187000100010001000103018402010001028c02 +0102000102000200010201008c0001020001000100010002000101018100010401820002 +019101000201020002000100010001000201000181010285020001020102860201020102 +010287020100010201020101018e02000200020100010200020102010293020102000201 +000100010001020002000201000104010000 +03018100018401000100010801850001000100010a018100018201000101018100018201 +000102018100010201810001020183000100010201810001060185000100010001040189 +000100010001000100010101830001000181010003000201830001000101018100010101 +890001000100010001000101018100010301810001010183000100010101890001000100 +010001000101018300010001060183000100010101840001000100850001000100010501 +810001020101000101850001000100010401870001000100010001820100010301810001 +020186020002000200028202010086000200020002008600020102010001010181000187 +010001000100010081000107018200010089000102010002010200028302010201850100 +0100010283020102018101028c0201020100020002010002000287020102000200010281 +020105018800010001000100010085000102010201030101008701000100020102010201 +81020081000101018102008f000100010001000201000201020001028602000200020001 +050101008401000100010501820001028802000100020001020184010201020181010287 +020100020102000282020102880200020002000102010501850001000100010101810201 +83010201028f0201020001000102000102010200010283020102018201000104018d0001 +020100020002000200020001010181000182010001830100020181010201028101028d02 +010201000201020102010001028202010285020002010201810102880201000102000100 +018201000194010201020102010200020002010201020102010201 +010181000105018300010001840100010001050183000100018401000100018501000100 +010083000100010401010004018100010101810001040185000100010001840100010001 +010183000100018401000100010501870001000100010001080181000104018100010101 +010082010001010181000105018300010001010181000103018600010001000100810001 +840100010001050101008801000100010001000108018400010001000100020101008101 +000100020186000100010001008100010801850001000100010101860201020002000185 +010002010200850001020102018501000100010083000100010a01010086010001000100 +010401840201020102840201020002810201010101028b01020001020102010002000284 +02010002008400020102008100018101020202820100010d018c02010001000100010002 +010201030184000100020081000101018300010001810102820200010101010285010002 +000201850100010200018801000100010001000104018900010001000100010001020184 +020102000290020001020100020102000102010002010091000100020001000100010001 +000100010001010186000102010001028502010200020081000282020100010084020102 +000289020100020001000100010101810001010182000201020181000101010102820100 +019101020002010201000102000200010002010286020102000200028502000200020101 +018302010002860200020001000182010001010190020102000201000100010200020102 +0100810001840102010001 +830001000184010001000108018300010001860100010001000186010001000100010201 +810001820100018401000100010101030002018500010001000182010001060185000100 +010001040189000100010001000100010801870001000100010001010101008801000100 +010001000102018100010301810001820100018a01000100010001000100010301810001 +02018100010101020003018100010a018700010001000100010401830001000101018100 +0102018100010801890001000100010001000103018402000200028a0201000100010201 +000201910102000100010001020001000102000100018501000100010002000401860001 +00010001008300010002810201010101028b010002000100010201020102820201020202 +830002000101010102810102810200810002010282010200840002010001040184000100 +010089000100010002000102018a01000100010001000100018201000101010100890201 +02000100020102008c000200020001000200010201000100010205018500010001000101 +01830001000101018c000100010201000201000200010101020085020001000100020082 +0201020202810102830201020101018c0001000100010001000102010283020102010201 +820002018c01000200010001000201000201820100010401010001018402000100029102 +010200010001000100020002010200020183010201028102010101010285000200010002 +8b0200020102000201000100028102010101910201020102010001000102000200020102 +010201810001850102010200010201 +090181000184010001000186010001000100010501810001020183000100010301850001 +000100018201000182010001820100010401870001000100010001820100010101860001 +000100010001000a01020086010001000100010501810001020181000103018500010001 +000184010001000103018300010001030181000101018600010001000100820001008300 +01000108018900010001000100010001050182000100820001008100018201000106018b +000100010001000100010001090184020102010283020001028602010201020001820102 +008600020002000200870002010200020002820200018401000100018101008400010001 +008100010501810001010182020102840201020102020285010001000200830002010282 +020102870200020102000100840001000102810201850102000100028102010201810001 +0a0181020184010200010082000102810201040181000183010002018b01000100020102 +010002000282020102870201000201000100810001010186000100010001008700010001 +000100010301810001010101000201820200028102018401020102018301020002910201 +000200020001000100020002000100010101810001050181000283020100018801020002 +000100020001000102830102000289020102000201000100010301840001000201020183 +000100018601020102010002810200010086010002010001028202000283020102018601 +02010201020189010002000201020100028d020102000200020002010001020101010102 +01018f00020002010001020102010201020102 +810001840100010001840100010001840100010001020181000102018100018201000101 +01810001050181000102018100010a018100018201000101018500010001000181010001 +00820100010801890001000100010001000104018100010101850001000100018a010001 +000100010001000105010100860100010001000182010001010183000100018601000100 +010001010101000501030001018300010001060189000100010001000100010301010085 +01000100010083000100010501810001010101008201000103018400010201028a020102 +010201020100020188010002000200020102810201010184000200010284020100020182 +010001020181000182010001010181000101018300010001850100010001028302010201 +8301020002840201020102820200028c0200020002000100010002000282020102820201 +008100028202010281020005000501820001008300010001830102010201028b00010200 +010001000200010085000102010001010101008201000102018a00020001000102000200 +010101010083020102010b01870001000100010001840102010002900201000200010201 +020100020102000100010081020086000201000201028502010201000101010100820100 +01010101028201000283020001028f020102010002000100010201000100028102018201 +000103018100010101880001000100010201028b02000100020001020002000283020102 +018a01020102000200010200028b02010201020102010201020102018302000100930002 +000100020102010002000102000200010201010183020002008600010001000102 +810001840100010001030181000102018300010001020181000104018100018601000100 +010001040181000181010083000100010201810001010189000100010001000100010801 +030084010001000105018100018601000100010001010181000106010200060187000100 +010001000101018100010401850001000100010701830001000186010001000100010601 +010001010100840100010001010183000100010101010084010001000103018100018201 +00010101830001000101018100010401830001000284020102000183010200028c020102 +000200020100010201028102008b00010002000201020100010083000100010201830001 +000101018300010001820100010301810001020101028301020102820200028402010001 +028402010201028202010288020102010002010200810001840102000102840201020100 +83000102010e018500010002000285020001020102820200010101840201020001820100 +0182010201830100010088000100010002010200010081010001008101028102008f0001 +000100010001000100010001000104018100010101860002000100020101018300020102 +850200020001000100830201020102010100820200018101008100010c01830002000284 +02010001028c020102000100010002000200028302010001040181000101018f00010001 +0001000201020102010201008a0001000100020002010002840201020102810201010184 +020102010288020100020002000102810201010185020102010200850001000100018401 +000100018501000200020101018600010201000102 +050181000182010001010181000102018100018401000100018401000100010401810001 +840100010001010183000100010201020002018100010a01870001000100010001060187 +0001000100010001080189000100010001000100018101008100018a0100010001000100 +01000101018300010001010101000d010100020181000103010100820100010101810001 +020187000100010001000182010001030182000100890001000100010001000101018100 +011401820200028802000201020102010081000288020100020001000100860001000100 +010086000200010200028502010001000101010300810100810001010183000100010401 +89020102010002000201028d020001000102000102010002000286020102010001008800 +020001020002010284020102010002008401000100010401880001000200010001008a00 +0100020002000201020081000282020100820001000100850201020001008b0001000100 +010001000102018101028202000283020102010d01870001000102000102810201010101 +020301830200010281020102018100018a01000100020002000100018401020100018601 +000100010001010181020083000201028802000200010001020085000102010201050182 +000100820001008100010101810001810102010289010001000200010002000100870102 +010002000201830102010282020102890200020102010201020184010201020189010201 +000100010001008400020002018101020102950102010201000102000201020102010200 +0201000102 +840100010001050181000184010001000105018500010001000184010001000102018400 +010001000100020183000100010301810001020187000100010001000106018100018601 +000100010001060189000100010001000100010301810001020183000100010301810001 +030183000100010301810001050183000100010401810001020102008401000100010301 +010002018100010401890001000100010001000106018800010001000100010081000103 +018a00010001000100010001008500010002000187010201020102010281020082000201 +880102000201020001008600020002000200840002000100840002000201810100830001 +000103010100820100010801860001000100020082000102810201010101028101028402 +010201028502000200010286020102010002008500020002000281020102018300010001 +070182020102820201028f02000201020100010001000200020102820201028602010200 +010001010181000102018300020102830201020002008202000284020001000101018500 +010001000101018300010001010181020188010201000100020002810201810100820001 +00030001018e000200010002010200010002000201840100010001050101028501020001 +0201030102008b0102000100010002000200028102010501810001010186000100020002 +018501020002000185010002000201020182020002010284010201020185010201020102 +840200020001840102010201020198020102010201020001000102000200020002010201 +02010201010188000102010201000102 +820100018401000100018201000104018100018401000100010501850001000100018101 +0081000182010001020101000201810001820100010c0187000100010001000102018100 +010101850001000100018101008100010401810001010183000100010101810001840100 +010001010183000100018101008100010301860001000100010083000100018201000105 +018500010001000102010100020183000100010401870001000100010001060189000100 +0100010001000102018100010401810001820100010d018a02010201020102010200028c +020102000201000100020002008200010288020002000102000200860001000200010082 +00010002000d018100018301020002840201020002870201000100010002820200028202 +010202028200020083000200020302840100020102830201020081000102018100010101 +820001028102010101810002810201840100020002010281010288020102000100020002 +820201008600010001000200830001000101010100850100020001008100020202850001 +000100010501810001020187000100020001020184010200010201020101810001820102 +0101010100880100010201020100018101028b0201000100010001000100010301830001 +000101018300010200930002000102010002010001000201020102000100010083020002 +018601000100010201850102000200010101810200020087010002000102010201028301 +0201028402000200028f020002000200020102010201020100018701000100010201029a +020102010201020100010001020102010201020102000201020100 +030181000184010001000186010001000100010201810001880100010001000100010301 +810001010181000183010001008300010001050183000100010101850001000100010101 +8100010201830001000101018300010001040181000101018d0001000100010001000100 +010001060183000100018201000101018200010083000100010301810001050181000101 +010200020184000100010001008201000103010200050181000101010100840100010001 +0a010100010182000100830001000103018b00020001000100010001000101018d020102 +010201000201020002000288020100010001020102840201000102860201000102010085 +00010200020101018100010201820001008100010a018600020002000100810001010101 +020201030281000286020100020102008400020002008300020001010183000100028602 +010200010001020101028101028202010284020102010281020183010001028502010200 +020083000100020102870002000102000102880201000200020001008300010001810100 +020001028100010f01820201028102018b01020100020102000102000181010083000100 +01010181000101018a000100010002000200020106018100010301810001010185000100 +010001010181020082000102840201020102840200020002840201020102930200020002 +000100010002000200020002010002860200020102000201028601000200020002840201 +0201028f02010201020102000200020100010201850102010201028f0200020100010200 +0200020102010201010185020002000201820100018301000102 +010181000107018300010001010101000601810001010182000100850001000100010601 +870001000100010001030181000104018300010001020101000301830001000102018b00 +010001000100010001000106018100010101860001000100010001000301810001030181 +000184010001000101010100010181000101018400010001000100900100010001000100 +01000100010001000104018100010101810001030101008d010001000100010001000100 +010081000101018100018201000186010001020102010301810001020181000183010201 +028502010201020181010201020100860102000100010087000200020001000183010001 +0083000200028202010083000100010f018400010001028e020102000201000100010002 +000201820102018b01000200010002010002000182010200810002850201000100018301 +000201020183000100010301810201810102830201020081000283020100018101028402 +000102010201820001028502000200010085000100020002820201028202010083000100 +010201830201020101018200010095000100010001000100010001020102010201000100 +0182010201020101008c0100010001000100010201020102010202890001000100010001 +000105018200020102018500020002000102018302000201020183020100010101880200 +020001000102018701020001000201028b02010200010201020001000101010202010186 +000102010200028d0201020102010201020002000201010101008b010002000200020100 +0100018701000200010001028202000102018300020001840100010200 +810001010181000186010001000100010301810001010181000184010001000182010001 +090183000100018201000105018300010001030185000100010001020183000100010101 +870001000100010001820100010701810001860100010001000101018100010101810001 +010181000102018a00010001000100010001008100010101810001020101008301000100 +8300010001070102000301830001000182010001010189000100010001000100010d0102 +008f01000100010001000201020102010201010182000100810001020182000201010101 +028501020102010081000289020002010200020002008400020001008500020102010282 +020100820002010101810001010183000100010801010087010001020100020081000102 +010102810100810002820201028502010200010282020001810102820200018201000202 +028501020100010002000102810102820201028202010282020102810201010184000201 +020102010202840001000102830200010084000200020086000200010201008300020002 +010283000100018101008500010201000103018100010501010282010201040181020184 +01000102008100018701000200020001028c020102000200010002000200020102810001 +090187020100010001000284020100020001008202000103018300010201020184000201 +020188010001000100010001010182000100010083010200010101810201820100028402 +010200020202810102a40201020102010200020002000200020100020102000102010201 +020100010201020102000291020102010200020102000201020102000201 +010181000107018200010085000100010001090181000184010001000182010001010181 +000183010001000200820100018101008300010001020181000101018300010001840100 +0100010a0187000100010001000106018b00010001000100010001000181010081000181 +0100010084010001000182010001010187000100010001000105018b0001000100010001 +000100018101008700010001000100010c01860001000100010088000100010001000100 +810001060190000201020102000201020001000100010001000201010285010201020102 +020289010200020100010002008600010001000200810001820102008400010200028102 +008100011301870001020102010001890100020002000201000284020102010285020102 +000100840002000100850001000100028502010001000103010100830100010082000102 +020201018202000101018500020001000186010002000100018201000181010082000201 +05018200010081000102018300020001010181000286020002010200018a010001000100 +01000200028b0201020102010002000100010101010282010001020101028c0100010002 +0002000200020102010281000101018500010001000101018402010201028c0200020002 +000200020001000101018500020102000102018300020102910201020102000201000200 +02000200010002840201020001840100020001010102028d000102010201000200020102 +010201028201020103010102840001000100910002000201020100020001020102010002 +018101028902010001020002000200810001 +820100010101850001000100010801830001000186010001000100010201810001860100 +010001000104010100010181000101018100018401000100010201830001000108018100 +018601000100010001050181000188010001000100010001070183000100010101810001 +040187000100010001000102018100018101008700010001000100010901810001820100 +018601000100010001020181000101018300010001080181000103018400010001008300 +010002810200850002010201028302000200010081010001008b01000100010201020102 +0102820200018c0102000200010001020102000283020102018601000100010001830100 +01028202000102018500010001000104018100010101010002018400010001008100028a +020102010002000102000287020102010002000281020183010201008700020002000100 +010101830200010001000302820102018301000201050185000100010001050101020201 +810001010183020001008300010001040101008201000101018100010101020281010282 +02000186010001020001028a020102010201000201000105018e00020100010001000100 +020001000181010203028701020002000200010501850001000201008600010001000102 +820200018901000102000100020102850201020102018201000281020101018b02010002 +000201020102000184010001020184010201000183010200028402010201028402010201 +028402000201028502000200010283020100020202820102019d01020102000200020100 +01000200020102010200020100010200020002018301000200 +020183000100010401810001840100010001040181000183010001008300010001030181 +000101018d00010001000100010001000100010201810001090185000100010001820100 +010301850001000100018301000100810001040181000101018e00010001000100010001 +000100010089000100010001000100010101850001000100018201000103010100810100 +890001000100010001000103018100010101810001060181000103018100010101850001 +00010001860100010001000101018100028f020102000201020002000200020102010201 +820001000100020101028501020002010202028a01020002000200020001008600020001 +0001028a0201020002010200010200010009018100010101810001020187000100010002 +000201028301020102840201000102850200010201028302000200880002000102000200 +018201020185010001000100820001000300810100820001028102010301810001050181 +000181010287020102000100010083000100010201810001010182000100010001018400 +010200018401000100020102820102018101020102810102870201020102010002830201 +020103018602000100010001030102008201000101018200020082000100820001028102 +01010183000100018201000101018a020001020002010200010001008402000100028302 +010201830102010202028300020102820200020102810102810201810100020001028f01 +000100010002010200020100020002820200028202010286020102010200028702000201 +020102010101830002000184010001000101018102010301840201020001820100018601 +02010001000181010001008302010201 +820100010401830001000102018100018101000100820100010701810001880100010001 +000100018401000100010101870001000100010001820100010201810001840100010001 +01018100018101008100018401000100010101810001860100010001000101018d000100 +010001000100010001000106010100010183000100010301810001030183000100010301 +810001030184000100010086000100010001008200010083000100018201000102018200 +0100830001000101018100010501810001030183020002008b0001000100010201020102 +018801020100020001000105018100018401020102018e01020102010201000100020002 +010285020102010200850002000200028302000200820002018601000100010001040183 +000100010101010082010001020187020100020002000202020201820201028602010001 +000200840002000200870002000100010001810102820201028302010201840100020100 +850001020102010601850001000100010201810201810102840201020001010182000100 +860001000100010084000100010086000201000102018101028202010201028100028302 +010200810002820201028102008500020002000101018100010201870200010001000100 +010084010001000106018700010201000100010401810001820100010201820001008200 +010082000201020185000100010001810102860200020102010282020102870201000200 +010001020184000201000101018b00010002010001000102010289020001000201000200 +018101028402010200018301020001820100010201810001010186000102000200028c02 +00020002010201020102000187010201020100010082000100 +030183000100010101810001820100010701850001000100018601000100010001820100 +010f01830001000109018300010001030181000186010001000100010401870001000100 +010001050181000102018700010001000100010201810001020183000100010101830001 +000185010001000100810001010183000100010b018100010201810001820100010f0183 +000100010201850001020102008200010086000201000100018c01020102010201020001 +0001008500010001000101010202850102010200028a0201020102010201000200890001 +000201020100010002008202000183010200010b01840001000100880001000100010001 +028202010282020102810201010101028101028602000200010200830002010281020083 +000100010201010286010200020002000300830200010282020001050181000104018100 +010201810201840100010001840100010001820100010501010002018400010002010101 +010281010201028101028202010282020102830201020181010287020102010002000185 +010001000201020185000100010201020187000100010001000101018102010301830001 +000101018100010101840200010201810100810001010101008702010001000100018101 +028602000201000102870200010201000201020181000101018100010101880001000100 +010002018101028202010287020002000102000285020102010001850100020002010301 +810001860100010001000284020002000297020102010001020100010201020100010001 +000102010200 +010183000100010101830001000184010001000186010001000100018401000100010901 +810001860100010001000184010001000101018500010001000181010001000101850001 +000100018401000100010301810001810100830001000106018700010001000100010201 +810001050183000100010101890001000100010001000103018200010081000102018300 +010001030186000100010001008200010005000101010083010001000200810100030082 +0100010601830201020183010200028102018f0100020102010200020102010201020102 +018100018201000103018402010201029202010201020102000200010002010002000100 +850001020100018501000102000281020108018500010001000103010100040181020181 +010283020001020102810001010181000185010200020001870100010001000200830001 +000282020102820201028102010301010083010200028502010001000104018102010101 +010084010001000103010100860100010200020186010001000100018101008100018301 +000201820100018301020102010281010282020102010281000282020102860200020002 +000105010100840100010001830100010082000201820102010601870001020100010001 +010183020102010101810001810100810001050181000182010001010181000101018100 +028402010201028202010283020102010101850001000100018201000109018302000102 +820201028202010202028101028e02010201020002000200020002000184010001020102 +018102019a0102010201000102010201020100010200020002010002000100010101 +810001030181000182010001010183000100018201000104018100010201810001860100 +010001000102018100010201830001000103010100040181000101018100010201830001 +00018601000100010001060187000100010001000106018b000100010001000100010001 +070181000105018500010001000102018100010401830001000105018300010001810100 +010002018500010001000108018100010901010202000101010083010001008100028102 +018101028902010201020100010001830100010085000100010002880201020102000201 +028b020102000200020001020102820201008b0002000100010200010201028102010a01 +810001010101008901000100010201020002820201028202010202028800010201020100 +020002008301000100810001830102010204020200860200010201020085000102010001 +060183020102018101028202010284020100010081000201028301000100020082010001 +830100010081000103018202000102018202010201028101028202000282020102010281 +010284020102010281020002008102010301840001000100810001030182000200010084 +010001000103018700010001000102010101840001000100010086020002000100010301 +880001000100010201028402010201028202000285020102010001030102008201000184 +0100010001840100010001010101028101028402000200028102019b0102010201020102 +010201020001020001000100010002010001000186010001020102010101850201020002 +000100030281000202020000 +010181000182010001030181000104018100018401000100010201810001010181000103 +018700010001000100010401810001050185000100010001040181000105018300010001 +86010001000100010501830001000184010001000105018a000100010001000100010001 +0083010001000300820100010301830001000181010002008a0100010001000100010001 +040181000101010200810100830001000182010001020181000102018100010401010086 +010001000102008800010200020001000202028601020102000201020101008201000103 +01840201020102020289010201000100020002008400020002008c000100020102010002 +000201028302010201040103008501000100010001000301830001000286020001020102 +018201020102010102840100020002810201830100010001008202010284020001020104 +018f00010001000200020100010001000102810201840102010201010185000100010002 +81020101010100820201028a020102000200010002000281020081000281020081000104 +010202810002010281010285020100020002820201028202010201028201000101018400 +010002000100820100010201820002010801850001020102010301850201000100010301 +83000200018a010200020001000201000182010001870100010201020002820201028902 +010201000100010001030181000102018100010401820001028302000201810102840201 +0201028c0201020102010201020001020182010201010189020102000100020002010501 +8202000102018302010001030185000200010001 +820100010301830001000101018100018201000104018100018601000100010001840100 +010001070187000100010001000181010083000100010201810001020101000201850001 +00010001080187000100010001000106018700010001000100010b018300010001070183 +000100010101830001000111018100010101810001010181000182010001090181000105 +018500010001020084000201020002008102008800010200020102000286020102000100 +0102018200010001000101820201028b0201000102010200010001028502010201000187 +010201000100020082000102820200028802000200010001000106018200010085000100 +010001020182020102820200010101810002010282010002850201020102000100850100 +0200010281020102018102018101008e0001020100010201020100020002010301010086 +020001000100028202010282020102810200880002010002010002008300020002820201 +020102810001820102010101810201010183020001020102810102010281000282020102 +850200010201028502000201020182010001010182020002810201050101028a01000100 +010001000100010101820201028202000282020102810201010102008101008800010002 +000100010282020001010183000200018501000201000202028101028502000201020103 +0181000104018100010101830201020183010001020102820102019b0102010001020100 +020102010201020102010200010200010002000101018102018401000100018401020001 +00870002010001000100860002010201000282020102 +020183000100010301810001820100010201850001000100010201810001040181000186 +010001000100018601000100010001020181000102018100018601000100010001070183 +000100018601000100010001050181000186010001000100010301810001030183000100 +018801000100010001000182010001860100010001000187010001000100010082000100 +8f000100010001000100010001000100010201010083010001008100010f018200010001 +0081010001008102008e0001020002010001020102010201028a02010201020102010001 +0081000101018100010201860201020102010202028100020102820001008b0002000100 +010002010201008400010001028502010201020101018200010002008201000101018100 +010401820001008300010001010184000102010288020100010002000100020083010002 +000200880200010001000100018201000183010201028102018901000100010001000200 +840001020102820200028b02000200010002010200010082000102830201000101018200 +010081000201020100820200028102018201020082000102010281000282020102010281 +010282020002820201028802010201000100010001008801000200010002000281020101 +010202830102010282020102820200028202010282020102890201020100010001000101 +010200840100010002010283010200028502010002010201028101028202010284020002 +010283020100018201000101010100840100010001030181020102018600010201020102 +83020102018f010201020102010201020102000100010701830001000182010201820100 +0102018300010001010101008401000100010201810001 +820100018201000101018300010001030181000102018100010201830001000186010001 +000100018401000100010201810001010181000182010001020181000103010100030181 +000184010001000106018700010001000100018201000103018100010101830001000101 +018300010001020101000101830001000105018200010081000182010001040181000103 +018300010001090183000100018201000182010001820100010301850001020102010401 +810001010101000101870002010200020100820001008b00010002010201020102010284 +020100010082000100030002018202000283020102018901020002000200020001010183 +020102008500020001020182010002820201020202820100010201810001030182000100 +870001000100010001020185000100020002820200018201020104018702010200010001 +008700020001000100010201810001010182020102880200010001000201028102018a01 +020102000100020001008300020102850201000100028102018301000100880002000200 +010002008200020083000201028102010101810201810102820201020102810102820201 +020102830102000282020002830201020101018100018e01020002000100020002000102 +010203028701020001000200028502010002000283020102018e01020001020100020002 +000102010288020002000200020002840200020102840200020002820201028202000201 +028100018401000100018201000101018500010001000101018100010101010281010284 +020102010286020002000200018501020100010281020101018100018601000100010001 +03018200020101018100010d0181000182010001 +810001030183000100010101850001000100018201000102018300010001090183000100 +018201000101018100010401810001820100018401000100010201810001010181000101 +018700010001000100010501810001020183000100010101810001010183000100010101 +810001820100010301850001000100010101810001050182000100830001000101010100 +820100010301010002010200820100010101810001020101000401010282000102010202 +018100018101000100020183000100020102010081010292020002010200020002000102 +000200020102010601810001920102000201000100020100010002010200020085000200 +020002830201020083000201020502820001008300010001810100010002010100850100 +010002018301020001010182020102810201010182000201880100010001000100018201 +020106018402010001008300010002820201028302010200860002000100010082000102 +010202010102810102830201020101018602010002000200810002820201020302830102 +000201028100020202850100010201028302010201810102010281000282020102820200 +028202010285020102010001810100820001028102018901020100020102000102820201 +028202010283020102018101028202010282020102830201020086000200010001028202 +01028a020100010002000200010283020100010101810002820200028202010282020002 +01028101028a020102010200010001000102018500020002000284020002010282020102 +840200020002840201020002840201020102830201020186010201000100010401810001 +03018100018401000100018801000100010001000186010001000100010001 +010183000100010301810001030181000102018100010201810001860100010001000182 +010001060181000186010001000100010201810001020184000100010081000102018100 +010601810001040181000181010087000100010001000101018100010101830001000181 +010083000100018201000106018100018701000100010001008100010301810001040101 +008201000101018800010001000100010081000181010002008101008500010001000202 +028501000200010001008601000100010001010181020001008902010001020102000201 +870102010201020102020282000100840001000100020083010001028602010201020002 +840201000102810200890001000201000100010085000200020002860200020102000101 +010100860100010001000105018202000102018100028202010281020084000201020102 +018400020001008400020001008800010001000100020102010202810102850201000201 +000100890200010002010002000282020100020087020001020100020083000201020102 +010083010002000200830200010281020101010102860100020001000202028101020102 +810102820201028202010282020002830201020182010001890102010002000100010001 +008101028302000201030188020100020001020002820201028302010201010184000100 +010001000102830102010283020102018301000200820001020b02880002000200010200 +028502010001000188010001020100020001010183020102018101028302000201830102 +010282020102020281010283020001029802010201020100010200020001020100010201 +00010200020102018100010a01 +810001030181000182010001010183000100010101810001840100010001070185000100 +010001840100010001040183000100018401000100018401000100010401010003018500 +010001000101010100860100010001000101018b00010001000100010001000104018100 +010301870001000100010001090184000100010089000100010001000100010401810001 +020181000103018300010001030101008a01020102010200020102018101000200010182 +00010087000100010201020001008b020002000100010201020102010281000284020102 +0001030103008701020002000200028702000200010201008700020002000100018b0102 +010002010001020100020202010181000103018300010001820100018401000100010201 +810001820102018401020102010101810201020183000200018401000100010a01010081 +010281020184010201020181010284020002000188010001000200020002820201028202 +010283020102018601000201000200830002010282020102830201000202028100028202 +000281020181010282020102030281000282020102010281010282020102850201020102 +010301850200010002018201000281020182010002010282000102820201028202010206 +028101028202010284020002000282020102830200020103018100018201000181010289 +020001020002000200020302920002000200020001020002000100020102000183010002 +010101850200020001028202010281020185010201020102830201020181010204020200 +010285000100010201820100018801000100010001000101019002010201020100010200 +02010001000102 +020185000100010001010183000100010101810001070183000100018201000106018300 +0100018401000100010d0181000184010001000101018b00010001000100010001000188 +010001000100010001050183000100010201830001000101018300010001030184000100 +010081000186010001000100010401810001040181000102010200840100010001010183 +0001000103018e0001000100020102000102010201000100860100010001000107010102 +870102010201020100830002000288020002010200020002860200010001000188010001 +000100020102810201010101028b00020002000100010200010083000200028302000201 +830102010281020183010002010101010002018300010001060181020104010102010181 +020102018102018101008100010201840001000100810001040182020102820201028202 +010283020001008900010001000200020001830102010282020102860200010001000181 +010085000102000102820201028802000200010002000281020086000201020001028202 +010001008202000201028101020102810102820200028202010282020102840200010201 +810100810002030284000100010081000281020083000200028202010282020102820201 +020402810002820201028102018901000200010001000102010281010282020102010283 +000102008100028302010002050287000200020002000181010001008101028202000182 +010201830102000185010200010201820102018301020002840201020102870201020100 +02000186010002010200019f010201020100020100010200020102010200020001000102 +01000102000200010501 +840100010001030181000103018100010201850001000100010501850001000100018201 +000104018100010401850001000100010101830001000101018100010201010004018300 +010001080187000100010001000104018300010001010189000100010001000100010401 +810001060185000100010001860100010001000182010001020102008401000100010401 +010082010001820100018a01000102000201000201028102010301840001000100040083 +020102008600010001000201830102010284020102010285020102010201010184000100 +010002008402000200020202890102010002000201000184010201020182010200850002 +000201028202000285020102010001050181000106010102820102010201810201060181 +0201030183000100010a018202010283020102018101028202010283020102018f010002 +000100010200010002000201028102018201000203020100830100020083000200020302 +840100010002870201020100020001850102000200020102810102020283000200028202 +010282020102850201020102010101840200020001020181020181010282020102850200 +020001028102018301020102040281010285020100020001860102000102000282020002 +8202010202028101028202000289020001000200020102018101020202030102028b0102 +000200010002000200028402010200028102018301020002030283010201020202900102 +01020100020100010002010201000201028b010201020102010201000102940200020002 +00020102010201020102000201000200 +040183000100010101810001820100018201000102018100018601000100010001050181 +000102018300010001010181000182010001010181000105018500010001000181010081 +000181010083000100010401870001000100010001050181000186010001000100010101 +8100010901850001000100018101008500010001000103018300010001070101000d0181 +000102010100020194020102010200020001000200010001000100010001040184000102 +010282020100850002010201028802010201020102010201028100010401020083010001 +0282020102880201000102010201008400010001008a0001000200020100020102840201 +020102810201030183000100010801850201020102010a01820002000100810100020083 +010001008200020101010202820102018101028402010201028202010201028301000102 +820201028302010201820100018601000200020001830100010285020102000102820201 +028302000200830002000281020081000201028100020102020081010201028100020102 +810002010281010282020102820201028602000201000100810001810102820201000200 +860200010001000101018302010201810102820201020402810002840201000201820100 +018401000201000200830200020185010001000201850102010201020402810002040284 +000200020083000200020502880102000102000200028802010002010002010284020100 +010201028100020102030102028600020100010002010201008301020002850200020002 +00810001010181020085000100010001820100028302010201 +820100018201000103018100010301850001000100010401810001050181000101018100 +010201830001000102018300010001010182000100810001010101000201810001050181 +00018401000100010501870001000100010001040181000101018b000100010001000100 +0100018201000104018b0001000100010001000100010301820001008100010301810001 +810100850001000100010501850001000100010101030086020002000200018201000101 +018400010001008700010001000102008200010085000200020102020281010201028301 +0200028a0201020001000100010001820100010101840201020102880200020002000102 +01850100010001028602010200010201840102010201820102018401020100010b018202 +010281020105018300010001820102010201010003018400010201000100010281010281 +020183010201028202010282020102810201830102010285020100020002820201028202 +010281020102018302000102830200020084000200010086000100020001008500010201 +020181010284020102010286020002000200028202010201020101860201020102010282 +0201028102010101810201850100020002000200810102820201028f0200010200020001 +000200020002000203028101028102018301020001820100018101008400010001008100 +028202010287020100020002010083000200020102830002000203028100028202000284 +02010201008c000200010002000200020001020302810102820201028602010201020102 +82020102020283000100018a010002000201020102000104018100018201000102018402 +0102000181010284020002000202020100810200 +830001000101018300010001010183000100010601830001000101010100820100018401 +00010001020181000101018300010001860100010001000102018100018b010001000100 +010001000100810001030189000100010001000100010401870001000100010001010181 +000105018100010801850001000100010401810001010183000100018201000101018100 +0181010001000a0103008101000500010184020100010081000282020002820200010801 +860001000200020082000102880201020102000200028302000102850201020102010401 +020002010100880201000100020102018101008300020102810200830002010084000200 +010202028101028502010201020184010001000103018300010002840201020102810201 +060186000100010002000100810100020086020001000201028202010284020102010281 +020181010283020102018101028402010201028202010082000102810201830102010201 +028200020102018202000101010302010182020002860201020001020084000200010082 +000102010283000201028202000204028101028402010200020102810102830201000102 +018100018201000201020101920002000200020002000200020102010200010201028100 +020102890100020001000201020189010200010201000201028202010287020100010200 +010202028301020102010281000201020101850201020001028402000201028402010200 +028202010285020102010002820201028402010201028102018201000287020002000100 +02018c0102010200020001020102010083000201020202820002008a0001020002000201 +000102830201000102010000 +030183000100010101830001000101018300010001840100010001020181000101018100 +010201830001000184010001000104018100010201010005018100018401000100018201 +000103018100010301830001000183010001008100010801810001010183000100018201 +000181010002008201000102010100010181000184010001000181010081000185010001 +000100810001820100010301860001000100010081000102018100010101040081010001 +00010103028c000200010001000100010001008300010001810100820002008700010001 +000100010101010287010201020102010283020100010101810001820100010201820201 +028b02010201000200020102010282020002830200020083000201028102010101810201 +8101020102010001018300010001040101028101028c0201020102000100010001000102 +010102810100810001020184000201020081000285020102010002810201840102010201 +810102820201028202010282020002840201000201870102010200010201810102820201 +028102000100830100020002008402000102000100830200020102018300020001010186 +000200010001020202810102820201020102840001020002820201028902010200010001 +0002008900010002000100020102820201008a0001000201000200010002050282000201 +01018400010001028a020002000200010002010289020102000102000200020302830002 +000203020300860200020001000187010001000200020185010001000201860102000102 +010284020102010288020002000102000201810102820200029102000200020100010002 +0102010200020002960201020100010201020102010201000201000200010201 +810001820100010301810001030181000103018100010101830001000184010001000182 +010001010181000184010001000184010001000101018100010401830001000109018100 +01030183000100010a018700010001000100010201010003010100050181000181010001 +000101810001810100850001000100018601000100010001010101000101830001000104 +01810001030185000100010001050101008b020002000200020102010201010184000100 +0100810001010181000101018f0200020002000200010201020102000281020101018302 +010201090102008902000200020001000100870001000200010002820200018401000201 +028102010101010281010281020182010001020187000100020102010282020102830200 +020102018300010001840100010001820100018401000200028202000202028101020102 +010184020102000204028101028102018301020102830201020001000101810201840100 +02010282020100880001000201000200028b020002000100020100020002820201028202 +000282020002030281010203028500020002010201028101028202010282020102010281 +000105018100028102010201890200010001000200020087000200010200010201028500 +010201020001000101810002030281010282020100010081020181010282020100820001 +020202850002010200028302010201810100830001020181010291020102010201000200 +020002000102010002820201028702010201000201028202010288020102010200010002 +8202010201028301020002810200810002840200020001810102820200018b0100010001 +0200020100020181010285020102010200 +820100010101830001000101018300010001010183000100010101810001040183000100 +018201000182010001060181000101018300010001840100010001030101000101850001 +000100010301830001000102018200010081000184010001000103018100010c01010082 +0100010b0183000100018101008300010001030181000102018400020102018401000100 +010301010002010300810100020002018402010201008700020002000200010601810001 +820100018201000288020102010001020102020202018202010285020102010201060181 +00018c010201020100020001000100028502000100020084000100020082000102820201 +028502000201000201028500020001000101010502810102830200020101018100010201 +810001820102010101850200010201008400010002008100028402000201028202000282 +020102820201028302000102030283000100028102010101810001010101028201000181 +010282020102820200028902010200010001000200830001000182010001040184000102 +00018301020102030281010201028101028202010204028b010201020100010001000200 +810002010288000200020002000100020085020002000102040281000287020102010001 +000182010201030181020186010002010201028202000285020102000102020283000200 +020302840102000102010285000200020002020202010102840100010001820100028202 +01028402010201028602000102010201820100018301020102020283000201029c020102 +0102010201020002000102010001000102010201020100020001840100010002 +020183000100010101830001000101018300010001010181000102018300010001060181 +0001860100010001000102018300010001020185000100010001820100010c0181000101 +018100010201830001000101018300010001820100010101840001000100820001008300 +010001050181000181010083000100018201000106010100840100010001010188000200 +0201020102008300010001820100018b0100010001000100010001008200010087000100 +020102010205020101810001010183000100010401820002008200010001008302010201 +010182020102010281010285020102010201020181000103018400010201028902010201 +020100020002020281000285020100010201840102000100010082010002020281000282 +0201028202000284020002000282020102830201020101018a0001000100020102010200 +850001000102018101028102008200010281020181010202028101020102820100020202 +810002820201028102018e01020001000100020001000102000189010001020001020001 +008500010002010286020002000100020602810002810201810102040281010201028101 +02010282010201810102820201028b020102010201000102000102020283000102018101 +028202010283020102008700020001000200020102810002850201000100010101840001 +02010281020183010201028402000100028a020100020002010200010284020002000282 +020102840201000201830102010209028500020001000101018102018301020102840200 +020102820200028102010301860001020002000101018500010201000188010001000102 +0001008d0002010201020102000200020002870200020102010201 +010181000102018100010301810001040181000182010001020181000186010001000100 +010401810001020183000100010201810001050181000183010001008500010001000181 +010002008601000100010001040181000106010100030181000103018200010006000501 +820001008100018401000100010401840001000201810100860002000201020102018100 +018101008400010001000200030181000101018f00010201020002000201020102010201 +070181000102010100840200020102840201020102860201020102010202020201810001 +0201820001008d0001020102000100010002000201850102000100018201000284020001 +000101018302000100010002028101028202010282020102840201020102820200028602 +000200010001020181000204028501020100020084000200010002008202000203028101 +028102018301020102820201028302000102010282010200030082010002820200018101 +028402010001008600020001000201820102008200020189010001020002000201028202 +010283020102010101030281010201028101020402810102810201020183020100018801 +000201020002000288020100020102000100850001000100028102010101010283000200 +028702010201000100018201020101018202010282020102840201020102820201028402 +010200020302810102020281010282020100880001000201000100028102008100028402 +010201020202890100010002010001020182010201810102870201000100020001840100 +020102880201020102010201028602010001000102860200020102000188010001000102 +00020188010201020001020001 +810001010183000100010101830001000101018300010001010185000100010001040181 +000102018300010001010101000501850001000100018801000100010001000102018300 +0100010c0183000100010401830001000103010100810100030082010001010189000100 +0100010001000101010200810100860001000100010081000101018c0001000100020102 +010200020103018100010701840001000100010001018a02010201020102010201020302 +0a0181000181010286020002010201028802010201020102000284020102010201020501 +810001810100010087020001000100020086000100010001008900020002000102010201 +820102000200010182020002060281000284020102010203028200020182010001830102 +010284020001020082000201010181000281020183010201028202010203028100028502 +000200010282020002860201020102010284020001000101010200010201018202000285 +020100020102870200020001000200840002000100810001010181020101010100820102 +018101028402000201020202810102820201020102810102890201020002000102010083 +0001000206028101028202010282020102010282000200010004028100028c0201020100 +010002010200010282020102820201008100028102000100860100020001000282020102 +820201028c02010201000201000201000102810201010101028101008100028402000200 +02830201000183010201029002010200010002000201000100020102018a010200010001 +000100010281020081000101018102019901000102000201000102010201020102000201 +00020002010001 +010181000103018300010001010183000100010101830001000101018100018401000100 +010101010005018100010101810001820100010101850001000100018201000104010100 +020185000100010001010185000100010001040103008501000100010002008201000188 +0100010001000100010b0181000104018600010001000200880002010201020102008300 +010201820102010201010002010400010181000101018300010001010101028601020102 +0102010101810201080101008101008b0001020100020102000201020202850102010201 +028502010200010087000100010001000185010201020102860201020102010287020102 +000102010085000100020102810200020082020002010201018202010282020102820201 +028202010282020002840200020001010101028301020102830201000288020002000201 +000200810002840201020102830200010282020102820201020c02850001000100010201 +820201028502010002000283020002008500020001020184010002010287020102000102 +000205028101028202010203028501020002010282020102820201028202010286020102 +000100010101810201030183020102018101028202010282020102820201028202010202 +028100028402010201008400010001028202010284020102010282020002820201028502 +010002010202028100028302010201820102010301020289000100010002000100028302 +010201850102010201028302000100020082010001820102010501870001000102000200 +86000201020102010101850002010001028b0201020001000201000100018a0100010001 +0201020102010101 +810001010183000100010301810001030181000103018100010401830001000102018100 +018801000100010001000184010001000108018300010001020102000101810001040183 +000100018101000400020105008601000100010001070181000186010001000100010601 +0100020186020102000201008a000200010001020102010201020d018900010001000100 +01000103018b020102010201020102010201040183000100010201810200860001020102 +010288020102010001020102840201020102810201030103000101020087020002000200 +020085000100020002860200010002010283020102000200810102820200028202000282 +020102020281010282020002860201020001020181010284020100010205028400020001 +008300020102820201028202010282020102820201028202010283020001020202810102 +820201020102870102010001000100010082020102890201000201020001000285020102 +010200820001028702000102000200018301020102820200028302010002820200020302 +810002820201020102810102810201880102000200010002010101850002010201020102 +810102030281010201028301020102010281010202028100028402010201000200010282 +010201840102000102880201000200020001008300020002010281010282020102860200 +020100010081000101018100028302010201900102010201000200020001000200010002 +830201020102018800010001000200010202028201020103018100010101840200020100 +8100019301020001020102010201020100010002010001008600020002000201 +020183000100010101830001000101018300010001010183000100018201000182010001 +010181000186010001000100010701870001000100010001840100010001050181000102 +0107008b0100010001000100010001000100040181000104010100010185000100010001 +030181000182010001030181000101010100840100020001860100010001000282020100 +830001020181010282020001820100010201830001000101018100010201850001000100 +010201880201020102010201028302010001050101008101008c00020002000200010201 +020102020202018202000283020102010101810001840100010001010187020100010002 +000101018302010200810002020281000282020102010286000100020001008100020102 +8301020102820201028202010282020002820201028502010201000101018c0200010201 +020001020002000284020001000282020102830201000202028100028202010203028101 +0286020102010001028102010501810201010181020183010001008200010002008b0200 +020001020001000201020202840002010002030282010201810102010201010202810102 +010281000282020102820200028202010082000100810002020201010102030101020201 +020203018202000201028100028602010201000100810002820201028202010282020102 +820201020302830102000203028100028302010001840102010001830102010292020002 +000100010002000200010201020102010501820001000300840100010001820100020102 +830002000286020001020002008700020002000200028a02010001000102000200018301 +000201060183000100010001 +820100010301810001030183000100010101810001030181000101018300010001060181 +000186010001000100010901830001000181010004000101010003018700010001000100 +010601870001000100010001020183000100010301850001000100010101810001010181 +00010601910001020102000200020001020002000200028c020102010201020102000100 +010601030082010001010101008301000201010182020102930201020102010201000100 +010001000100010001010188020002000200020102840200020002860201020102010283 +020100018701000100010001008200010281020101018200010084000100010085000200 +020002820201028502000201020185010001000102820201020202010082020102820201 +028202010282020002850201020100020202810102810200810002010201008402000200 +028302000102050201018502010201000209028c01020001000100010002010201810102 +850201000201028602010002000200020081010085000100020002830200020101018802 +010201000102000201028101020102010182020102010201018502000200020084000100 +010283020102018201020181010283020102018101028102018301020102820200020302 +810102840201020100010084010002010288020102000102010201810100830001000101 +018500020002000101010102820102018501020102010202028b00010001000200020102 +00018b010002000200010001000102810201030181000188010001000201020102820200 +02880201020002000201028602010200020102010201018202010201028f010201000201 +00010001020102010201 +020183000100010101830001000103018100010101830001000101018100010101810001 +860100010001000109018300010001810100020001018300010001010181000181010001 +008101000200010183000100018801000100010001000105018100010201850001000100 +010b01810001050196000201020001000100010201000100020102010201000281020088 +00020102010201020106018100018101000100040183000102018a010002010201020102 +0102820200010a0101008501020102010285020002000201850102000201028802000200 +0200020001020183000100010101830001000101010100820102018a0100010002010001 +000100860001000200020101018100020502810002020281000282020102010283010201 +020102860100010002000282020002850200020100028402010002018101020502810002 +860200010002000205028101020102850002000100010101880001000200020100028302 +000200810002820201028802010002000201020001008101008900010200010002000201 +810102030281010283020100020102810102010281010202028300020001810100810002 +830201020187010002000102010282020102820201028202010284020002000201028100 +028302010201030101028300020001010181020101018200010281020185010200020002 +0102810102020283010002018401020102018201000201028a0102010201020100010002 +8202000202020701850201000100018201020101018a0001020102010200010201020181 +000101018102018301000100040081020084000100010284020102010201028300020002 +0002 +820100018201000182010001820100010101830001000184010001000101018100010101 +810001090183000100018601000100010001010102008201000186010001000100010201 +0100830100010084000100010083000100010501810001010183000100010e0183000100 +010a01810201850102000201028702010200020102018101008800010002010201020001 +008101008400020002018401000100018101000100030104008302010002820201020102 +81010202028200020186010001000100010101820002008a000100010001020002000284 +02010201020102820100028c020102000201000100010001000100870200010001000100 +860002000100020182010200830002000104010102820001008200010282020002820201 +0284020102010284020001000202028200020182010001810102030201008b0200020001 +020002000200028202000282020102820201028202010282020102840200020102060204 +018600010001000200820002000100810102880201020001000200028202010003008101 +028202010283020001020202020082020002040281010201028201020181010285020100 +020100010001028300020102810201830102010282020102010284000200010202028401 +000200028202010201028900020100010001000102810201830102010282020002820201 +00020088020002010200020002010281000201020201850002010201028c020100020100 +01000200020102010285010201020102820200018a010201000100010201020081000202 +02820001000100820102000200810200040086020002000201028a020102010201000200 +0200810002850201000102010101 +830001000101018300010001010183000100010101830001000182010001010181000102 +018400010001008300010001010181000181010001008301000100810001090183000100 +01830100010001000201830001000182010001010183000100010e0183000100010e0184 +000201020081000184010200020001008302000100010081010090000200010001000102 +010200020102010281020105018400010001008100018d01000100010201020002000201 +028902000200020002000201010182000100010001018100018501020002010284020102 +010288020102000200020002820201028102010301810001050182000200860002010201 +020083000200010201820001008300010001010101020201030281000284020002000201 +028101020302810102880200010001000201020502810100860002010200010203020301 +020281000281020183010201020502810102020287010001000100020084000200010286 +020100010002008100018201020002000201820001008200010085000100020002010201 +010502830102010201028101020102840102000102830200020102018c02000100020001 +020100020002820201028202010286020102000100020202810102820200020102810001 +810102820201000200940201000200020001000102000200020002010200028202000283 +020002010101010282010201010181020181010282020102860201020002000282020002 +820201028302010201830102000206020300010184020002000286020002010200028302 +01020101018702010201000200028702000100010001028902010201020002000200 +030181000103018100010301810001030181000101018700010001000100010601850001 +000100010901870001000100010001040181000101010100850100010001008100010401 +810001060183000100010901810001050181000101018102018101020102810102010201 +018302000201810102010285010201020102940201020001000201020002000201020100 +01000100010081010001008101000100820200020102820102010101850002000201028b +020100010201000100010001010181000184010002010201028801020100020002000202 +028101028802010201020001000182010200830001000185010201000200850002000200 +020102810100850001000100018301000100010081010081000205028101028202000285 +020102010002820201028302010201040183000102008400010002008300010002820201 +028502010002000282020102830201020181010282020102050281000201028201020104 +018102018101028202010089000100020100010002000100830200020001008202000201 +020100820201028302010002820201008300020002060281010202028501000200010003 +008101028202010203028101028802000200010200010085000100020102820200028202 +010282020102010281010004008202010282020102840201020102860200020001020181 +010201028400010200028402010201008100020202810102020282010002870200020002 +000102040281010282020002020284010200010284020002010287020102000102010002 +00810100020081020001008a010200020002000102010282020102060287000102000200 +0201 +810001820100018201000182010001840100010001010183000100010101810001030181 +000106018100010301810001880100010001000100010901810001010181000182010001 +02018200010081000113018100010f0102028a01020102000100010201028f0201020102 +000100010201020100010082000100010081020187010201020102010283020100010101 +01000101830001000101018b020002010201020100020002890201020102010201020102 +018300010001010181000189010001020102000201028202010282020102860200020102 +010281020187010001000102000184010001000287020002000200010083000100010201 +850001000100010201010281000281020181010201028101028202010282020102820201 +028202010282020002840201020100810002820201028502010200010085000100020002 +820200028202010201028201020181010285020001020102090291010201000100010001 +020002000100020102830200020084000100010281020183010001008200010082000102 +010287000200010002000284020102000201028101020102010001028101028202000281 +020188010201000201020002020286010002000200010101020205018300010002820201 +029302000200020102010200010200010002000201028502010002010285020100020002 +010282000201810102010286010200010201020302810102020283010201028202010281 +0201810102810201810102870200020100020002030203018d0001020001000102000200 +010001830100010201028501020102010201028101020302830002000201028101020102 +840002010201 +040183000100010101830001000101018100010201810001010183000100010101810001 +8a01000100010001000100010b0181000102018300010001050181000101018100018201 +000101018100010101810001030183000100010e0181000102018b020102000200010201 +020102880201020102000102010101870201020100010002810201840102010201810102 +020282000102030281010001000301810001020188000200010200020001030186020102 +000200028b0200010201000100010001008a000200010002010002010202028301020002 +860201020102010281020081000104018400020100018201020081000281020106010100 +020182000200810002820201028102018201000282020002020281000282020102820200 +028202010282020102010282010201030101020100010285010200010001810102820201 +02850201020100028202000201028400020001020b028201000102018502010201000286 +020002000200028302000201840100020002820200028302000200870002000100020002 +840201020002010281010201028100020102810002010201018302000200820002000100 +8202000281020101010202020101028b0002000100020002000200028202000282020002 +840201020002810201860102000200010281020103018a00010201000200010001020302 +020181020102018402000201028202000287020002010002000204028300020002010283 +01020102010282010201010102028100018c010002000200010200010001000200830200 +02008500020102010201020200100282000100 +840100010001030181000103018100010101830001000182010001820100018201000104 +0181000108018100010201830001000106018100010b0181000101018300010001110181 +000105018300010001030183020102018201020001008202000292020102010201020100 +02000201020102000200020092020102010201020002010201000200010001008100018e +010002000200020102010201020002850201000100018e01020102010201020100010001 +000101018302010201010182020002890200020002000201000281020103018b02000102 +010001000201000184010001020185010001000100830001000182010001020182020102 +820200028202010282020002820201020102810102810201820102018301020102820201 +020102810002880200010001000102018501020002000186010201000201028102018101 +028202010282020102820201028402010200020202810002820201020102820102018401 +000100018101028302010201810102850201020001028502000200010001000101010082 +020001830102010281020183010001028202010203028101020102810102010281010203 +028501000100010282020102010282000102880200020001000201028102018301020102 +810201840100010002820201028302000201820102010201870201020100020002020281 +010282020002020282010002860201000201020101018100018101028302010201030181 +020102010202820102018101020302810102010281010201028501020002000284020102 +010204028301020002020283000200020202830002010203028101020402820102008a00 +01020002000102000201 +040183000100010101830001000101018300010001010183000100010101810001010183 +0001000101018100010201830001000106018100010c0181000103018100010801810001 +050183000100010301810001820100010501840001000102020284000200020184010201 +020188010200020002010201840102010200840001020100820001028102018501020102 +010086000201020102010101810001940102000201020102010001020102010201020100 +010101890201020102000200020187010001000100010083000100018701020102010201 +028402010201028d02000200020001020102000100010101010205018402000100010401 +850200010201028302000201820102018401020102018101020702810002820201020102 +880002000102010001008500010002010081000202028701020001000200028802000200 +010201000201020101810201830102010282020102010281010201028100028502010001 +000101018702010002000100018601000100020001010101028101008200010289020100 +020001000200028802010201020102010201028100028202010201028601020001000200 +82000100030003010102820100010301820002008a000200010002010002010204028301 +020002810201830102000285020102000102020285000100020102010289000102010001 +000100010601840200020100840002000102030283010201020202010101020301820201 +028602010201020102810201020102028101020202850102010201020202830002000201 +0283000201028102008400010001020102850102010201020302810100 +820001008100010401830001000184010001000101018100010301810001010181000101 +01830001000106018100010c018100010401810001050182000100020002018200010001 +000401830001000102018100010101890001000100010001000102018102008500020102 +010202028a010200010201020102000201028101028a0201020102010201020002820201 +028102018c01020102010201020102010201820102000100830100010282020102810201 +840102010201820100018301020102870200020002000201820100018b01000100010001 +000102000284020102010289020002010201000100020202810002850201000200018101 +008300010001010181020103018300010002830201020181010282020102820201028202 +010282020102060281010201028101028202010282020002820201020102010182000102 +010283010002008200020181010282020002820200028202010285020100020002820201 +0201028300020102010281010201020101810201050182020100820001028d0201000201 +020102010200010200820002000100810200830002000282020102820200020202860002 +000200010282020002010283010200020202010182000102890201000100020002010201 +0287000200020002000201028a0100020002000200020002010283000100018301000201 +010101020201010082010002840200010002050201018100010101810001830100010085 +000200020102840201020102850201020001028402010201028202010282020102810201 +850102010201028402010201028202010207028100020302820001020402890002010201 +020102010281020084000100010085000200010001820102010001 +030185000100010001030181000102018100010101830001000101018100010501810001 +030181000104018300010001040181000106018200010081000103010100010181000107 +018300010001810100020003018300010001020103000101810200810002850200010002 +018c01020102000200020001000100010095010002000100010002010201020102010201 +020102018101020202810102830201020084000100010202028e00020001020102000200 +010002000201028301020102020201018a00010001000102000201028402000201028a02 +010001000201000102018101020402860002000100020104018100018601000200020002 +830201020183010200028202000282020102850200010201028202010204028101028202 +010282020102820201028202000201028600020102010200820002010101010284000200 +010282020102850201020001020102810002820201028102008300020002010281000282 +020002010281000182010001010183020102018301000201810100840001000102830201 +000282020102820201028202010288020102000100020002810201810102060282010002 +8202010283020002000200840200010001010189000200020001000200028a0201000201 +000100020001830100010283020100020302840001000102810200820001020302810102 +060286010002010201008300010001050181000182010001870100020100010001010184 +0001020102010283010200020302830102000205028101020d0284010201020101010202 +020181000189010201000200010200028c02010201020102010002000100 +050181000101018300010001010183000100018201000182010001010181000182010001 +060181000109018200010081000101018500010001000104018500010001000103018100 +01880100010001000100010a010300010183000100010101850001000102018b01000102 +010002000200020083000200018101020102880001020102010201020102810002010201 +018e02010200020002000200020102010296020102010200020102010201020102010201 +020102010285020001020102040282010201020184000100010286020002010201028302 +01020101018c000102010001020102000201020502850001000100010301010281010285 +020100020102830201020081000281020101010102810002010201010302810002820201 +028202000282020002820201020102860100020100010281020102010102010181020181 +010282020102820200028202010282020102810201810102020281010201028101020402 +830102010081000183010001020102810102820201028202010282020102820201028202 +000285020002000100890001000200010002010201028201000201028400020001020102 +95010200020002000100010001000201000100010002018101028502010200010002008c +020002000100020002000200028202010283020001000100020282010002820200020102 +850001020001028602010201000201820100010101850001000100018701000100020102 +018301020102020201010100820200020c02810102020281010284020102010205028701 +0201020102010284020102010204028501020102010201028101028c0201000102000100 +0201020100 +020181000102018300010001010183000100010101810001030181000101018100010201 +0100050101008a0100010001000100010001820100010101860001000100010081000101 +018500010001000186010001000100010101810001020184000100010081000182010001 +810102010281000188010001000100010001810100810001830102010286020102010201 +008700010200020002008f00020100010001000102010201020100840001020102010282 +010002860201020100010298020002010200020102010201000102010201020002010201 +020202830102010202028301020100950001000200010002010001000100010002000102 +010283020102010301840201020102820200028202000101018900010201020001000201 +010101028401000201028202010282020102820200028202000282020102820201028202 +000282020102820201020102810102820201028102010401020281010282020102030282 +000102030281010285020100020002850201000201028302000201810102020281010281 +020081000102010100810102820201028102018301020102810201810102810201080181 +020103010100010283010001028102018201020101018202010282020001860102010002 +00018b010001000200010002000100010081010081000281020102010102810102820201 +020102810002820201020102020184000200010201028401000200028202010282020002 +840201020102810201840100010001040184000102010283020001028802000100020002 +000282020102070281010282020102010281000207028101028402010201028902000201 +02010201020182010001010181020103018200020106018502010201020103010000 +020187000100010001000101018300010001820100010101830001000101018100010101 +810001030181000185010001000100830001000183010001000100010109008101008800 +010001000100010002000201810001020183000100010301010089010001000100020001 +008100010401010088010001000200020002870201020100020001870102010200020002 +830201020002008501020102010001008201000281020001008301020102810200810002 +0202810102830200010201028101008100028a0201020002000200010201810100010086 +0200020102000203028401000200028102018201000103018b0002010201000100010001 +008700010201000201020202030101008301020102810200010084010200010081000201 +028400020002018101028202010282020002010283000201028202010282020102010283 +010200020102030082010201830102000282020102820201028102018101028202000283 +0200020001008b0201000102010002010201020102810002010281010284020102000184 +010001020102010100820201028202010088000100020102000200890002000200010002 +010282020002830201020182010002820200028402010200018101028102008400010002 +000200910102010001000100010001000102000100020102830002000285020100020002 +040281010201028100028802000100020102000102018502000102010085000100020002 +920200010001000100020001000100020002010201028301020102180281000281020101 +010100880100020102010201028602010201020102020283010201020202850102010201 +0201028101020102810002850201020102010201 +040005018100010301810001840100010001010181000101018100010101020002018100 +018401000100018301000100010001018300010001010181000104010300040181000102 +010400880100010001000100018901000102000200010201820102018a01000100010001 +000100010201840200010201870102000200020002020286010201020002018901020002 +01020100010001008c010201000102000200020001028202010201028401020002019201 +020102010201020102010201020102010002820201028402010201020202810002010282 +010201820100010301810002860201000102000101018200010088000100010201020102 +020282000200810001010181000183010201028302010001840102000102850201020100 +028202010286020100020102018301020002010282000200810002850201020100020102 +810102810201020101028101028202010201028300010002010283010001020102030101 +028601020100020002010281000201028101020102830102000101018a00020002000201 +020100028502010002010001008501020100010082000201010183020002008500020001 +000181010284020002000181010281020182010001810100010083010001008900010001 +000200010002830200010286020001000201028402010201020202010185020102010002 +010281000103018302000102820201028402010201028202010282020102900201000201 +020001000100020001020102820201020202810002030283000200028202010202028101 +020302810102840201000102830200010202028301020102850201020102000300850102 +010201028102008400010200028402010201008800020102000201020185010001020102 +8302010001 +050101008201000101018300010001010183000100010101810001860100010001000103 +010100810100860001000100010085000100010001010104008201000181010081000183 +010001008200010082000100030001010100040181000189010001000200020002008800 +020001000100010001008701000100010001000100850100020002000100850100010001 +00010083020002000100830200010001008501000100010002008b020002000200020002 +000200840002000200010083020002000200830100010002008702000100020001008f00 +020001000102000200020002000200820002000200810100090085010001000100830002 +000287020002000200020002008102000500810200040081010084000100020084000200 +020082000200020083010002008400020002008400020002008400020002008400020001 +008400010002008400020002008400010002008400020002008400020002008400010002 +008400020001020302810002010281010281020082000100010081010082000100040081 +010002008502000200010088000100020002000100020084020001020002008401020001 +00070002018b000100020102010001000102010283010001028102008300020102820201 +028202010207028100028802010201000100010283020102008100028402010001020102 +830100010281020183010200020e02830002010287020102010002010282020102030201 +008302010201860102010200020187010200020100010001008902000201020102010200 +880002010200020001008300020102830201020101018500010001020187010201000100 +01028302010201 +810001080181000103018300010001010181000101018300010001010182000100810001 +020101000601850001000100010101830001000101010100820100018501000100010083 +000100018201000101010200810100010001018102008d00020100020102010002010201 +028402000100010301810001810100820001020102860102000201020187010201000102 +010081000282020100020085020102000200010084010200020082000102020283010001 +0203028b01000102010201020102010283020102018501000201020102018a0001020002 +00010002010201028101020302810100850001000102018a010001000100010001000201 +028101020702810102820201000100010282010200020081010281020083000100028402 +010201028302000201810102010202018300020002830201000288020002000200020002 +010201000201820201028202010286020102000100028102008300020102850201020001 +020302860001020001000209020201840001020002810200010087010002010002000283 +020002008400010002008600010001000100810001010182000100040081020001000801 +820001000100850201020102018101020202810102050281010201028101020202810102 +040282010201810100020084010200010288020102000100020102810200830002000205 +028101028202010282020002820201028202000201020100010282000201820102000100 +860100020102010281020001008402000100018101000100810201010184020102010001 +0086020100010001000200830100010283020102008a0001020002000100010001030101 +02860102010201020101010002 +050185000100010001010101000401810001010181000103018100010101810001840100 +010001010183000100018401000100010201810001860100010001000101018300010001 +040183000100018601000100010001030181020181010282020100880002000102010001 +000100820102008d00010001000100010001000100018201020001009202000200020002 +000100010201000100020001820102000100830200020004008201020004008301020100 +830002000287020100020002000287020002000200020088000100010002010200850001 +000100028402000200028202010086000200020001000300850100010001008200020004 +008101020402810102810200010081010003008201020004008302000200840002000100 +020081020002008102008400020002008100028102000100820100028602000200020002 +830200010084000200020083000100028102000100830100020003000102020081010087 +000100020001000204028100020102880102000100010001008100028202010086000200 +020001008600010002000200010001028200020081000281020002008602000200020002 +0302840001000200870001000200010002010201008202000201028100028b0201020102 +010001020002018701000201000201028202000201028100020102810001830100010201 +0283000200020b0281000285020001020002820200028202010282020002020284010200 +010087000200020002010001000502830002000202028101020102030086020002010001 +000100810201020181020182010001020181000181010001008201000106018602010001 +00010288020001020102010201 +860100010001000182010001030181000101018300010001820100010101830001000101 +018100010101810001020181000101018100010101020082010001010183000100010301 +890001000100010001000104018300010001010185020002000102840201020100820001 +028302000200840002010201820102018101008100018a01000100010001000200018101 +029302010001020100010002000200020002010001000100860200020002000183010001 +009000020102010200020102000201020001020102860002000100010284020100010002 +008602000200010001880100010001000200029002000200020102010001000100010001 +000200810100830001000201028101008100020202840002000201810100030081020005 +000102010082020102840200020002860200020001000283020002008100020102010089 +020001020001000200028102000200810201810100830002000187010001020100020101 +010200010281010282020002010284010002000283020002008300020002010281000201 +028501020001000185010002000200850002000100010201810001010181000101018902 +000100010002000100020001028400020001020202010001020501010281010281020002 +008302010002010201008101028302000200810002820201028302010002020281010209 +028101008100020102810102850200020100020302810102820200028202010282020002 +840201000100030089010002000100010002008100028702010001000200028302010001 +850102010001028302000102010283000201020102850100020001028202000286020001 +0002000283020001008200010201028101028a0201000100010001020001010183000102 +010201820201020002 +810001820100010101010003018100018401000100010101810001010183000100018201 +000101018100010101830001000182010001010101000101810001020185000100010001 +820100010501830001000184010001000103018400020102018201020184010201020182 +010201840102010201850102000200028502010001000103018300010001010183020100 +02010287000200020102010284020100020001008e010201000100010001000102010001 +810102820200020102820001029402000201020102010201020102010200020002010287 +020002000200010002000102820102018101020102810102010281010282020102810200 +880002000102000100020202830002000286020002000200020202010084020002010002 +008101028302000200810002860201000200020182010200810002830201020081000282 +02010282020002020282000200810002860201020002010201028d010002010201020100 +020100020002000102820102000200830201020081000286020102000100020102810002 +010281010201028100028202000181010001000101810001810100820001000300840102 +000100020084020001020001008202000281020002008302000100010087020001000200 +020082000200030081020081000201028800020002000200020003008801020002000200 +010283020002000200820200028302000102820201020302830002000202028101028202 +000282020102820201028102018201000181010004000201020081010201020101820002 +0083000200020102850002000201020202830001000201028e0001020002000100020001 +020001000100810201010103008901020102010002000100820001008100028a02010001 +02010200020002830200010283020102010001 +040183000100010401810001030181000101018300010001010181000182010001010183 +000100010101810001820100010101810001020183000100010301830001000184010001 +000101018100010201870001000100020002840200020001810102810201870102010002 +0102018701020001020102018b0102000200010001000100010101880002010200020001 +020102860100010201020189010201000200010001000100810100840002000200880001 +020102010001008400020002000200990102010200020002010201000100020102010001 +000102000100010087020001000102000289020102000200010001008200020081000281 +020085000100020102840200020002020281000201028101020102010002010300810100 +830002010081000283020002008100028102008300020002010282000100810002820201 +028302000102820201028302000102820200028402000102018501020002010284020002 +000101018502010200010286020002000201028502000200010282020102820200020602 +870102010200010001850100010002008b00020001000201020001020083000102010101 +8600010001000200020087010002010002010207028401000200028402000200028a0201 +000102000100010002010201008201020101018300010001810102830201000204028200 +020081000204028101028202000204028600020002000200810002010201000101990001 +000100010201000200020002000200020001000201000102010282010002010284000201 +00028a0201020102010201020102020282010001840100020002010281000204028a0002 +0100020001020001020102820102000100870100010200020002030281010282020002 +020181000101018300010001020185000100010001010181000103018100010101810001 +840100010001010181000101018100018201000102010100030181000182010001010187 +000100010001000102018100010201010285010201000201850102010200028302010201 +8e0102010200010201020100020002018201020101018900010001000102010201010183 +020102018401020102010101830201020091000100020002010201020002010201000100 +8b0001000201020002010200028302000102010281010281020181010288020102000200 +020002020282010201080101028101028502000201020181010281020101010102830102 +010203028301020002850201000200028202000284020102010285020001000102840201 +000200830002000282020100810002010281000282020002850201020001028202010282 +020002010285000100020002010284010002010284020002000184010002000102010202 +840001020102860201000200020185010001000102850201000200020102810102020281 +000201028200010082000100010082020102860200010001000285020002000100020083 +020002008400020001020202020083020001000100850200020002008300020002010285 +000102000102810200810002870200020002000200840001020002040281010208028101 +028202010282020002070285000200010001830100020101018100018201000105018800 +01000100020002000100820201028b020102010002000201000200810002050283000100 +010101890201020001000102010201028900010001000200020100020085010201020102 +8402000100018201000186010001000100010101830200010282020002840201020102 +870001000100010001040181000101018100010101810001840100010001010181000101 +018300010001820100010101810001010181000101018100010301850001000100018201 +000108018d000100010002000100020102010289020001020102010002008a0002010201 +020100020102020286010201000200010601830201020101018702010200020001020102 +880102010201020102018701000100020002008300010201810102860200020102000201 +029501020102010201020102010200020002010201020102840201020002820201008800 +010001000100010202028100020202810002030284010201000204028100028202000282 +0201028402010201028202010286020100010002008c0002000102000200010201000282 +020102830201020181010203028101020102820001020302810102820201028202000201 +028100020102010186020102010201020402820002018401020001028302000102820201 +028502000200010201020101820201028402010201020102820102018b01000100010200 +010002010084000100020002008502000100020086000200010002008900010002000100 +010002060281000202020100010281000208028101028202010202028100020802810102 +010281000204028101020102010182000102810200810002820201020202820002008100 +028602010200020001060182020102020282010201880100010002000100018501000100 +020183010201028202000205028201020103010202830001000286020002000100020102 +840102010002860200020001000283020001020402880100010001020100018701020002 +01020102 +810001840100010001080181000104018300010001820100010101830001000101018100 +018201000101018100010101870001000100010001010183000100018801000100010001 +000182010001050101028100028202000284020102000282020002010201010302810002 +850201020102018401020102018201020102019500010001000200020100010201020102 +0102010201029002000201000100010001000102010201008f0002010001020002000200 +020002000284020102010284020100010283020002000100840201020102840201020102 +810201020188000100010002000102860200020002000201028100028402000200028202 +010282020002020281000284020102000282020002820200028402010001008500010002 +000186010001000100028502000200010282020002850201000201028202010001000402 +830002010201028200020101018402010001008400020001008200020187010200020002 +000281020002000202010082020102850200010001028202000202028101020102810102 +820201000100810100010084010001000282020100820001028202010281020002000201 +820001008400010001000200020281000203020101080283000201020102830102010203 +028300020102030281000282020102010282010002020281000281020184010200020001 +008102008300020102830200020001008402000200028202010283020002000100850100 +0100010001008b0100010200010200020100020202820001020302830002000282020002 +850201000100020102820002018101028602000201020001850100010002018201000183 +010001008300010001050101008c01000102000200020002000102020285010200020102 + +010081010001008101008300010001070101000401810001820100010301810001010181 +0001820100010101810001030185000100010001060181000102018a0001000100010001 +0002018a0102010002000201000201870102010001000200810001850102010201028402 +01020102880200020002000100018a010201000200010201000102010202880102000200 +020102018101028902010001000200020001830102010083000200020102810102020289 +010200020002010001028602000201020102840201020102860201020102010202028301 +000100020086020102010201020902810102840201020102820200028402000200028202 +010202028100028202000281020102018102018401000201028202010282020102810200 +010084010200010283020001028202010282020102070281010282020002010201018200 +020104010102840002000102810201010181000204028101028502010201000201028101 +0282020102030202018300010001020182000100840002000102850200010201008f0002 +000200010002010002000200010201028101020102830002010282020102030201000102 +810102010281000204028200010205028101020102810002040281010282020002820201 +008200010286020002000200010201810002880200020002000201028502010002010001 +000102820002018501000100010001008301000200010082010002850200020002000100 +0201820001020202010182020102840201020102040283010001028e0201000102010200 +020001000200028202000204028200020001000102820002018701020100010200010101 +81020183010200020102810002 +810001810100830001000107018100010101010084010001000101018100018401000100 +010101810001010181000182010001010183000100010301810001860100010001000102 +018100018201000102018a00010001020100020102018201020182010200840002010201 +940102010200010201020100020002010002000200029402010002010201020001000100 +020002000200010203028c01020102000200020102010201830100020092000102010201 +020002010201020102010201028a02010001000200020002000100820200028602000200 +020002830200010282020001830102000282020002880200020002000200020102810002 +020287000200010201020182010201810102840200020002040283010002008400010002 +008800020002000102000282020102820201020102810102820201028202010283020102 +018101020102810002820201020102810102820201028302010200830001000183010001 +020102840102000102830201020001000102840001000102820201028202000183010200 +0288020001020100010001010101000201820201028d0201000200020001000201020102 +010201008102008100028102008400020002000100830201000201028100020102810002 +820200020802810002060283000200020502830002010201028101008200010081000282 +020102810201020181020083000201008100018b01020002000100020102000281020089 +0002000200010001000102018100028e0201020100020001000100020002000100850102 +010001028202000286020002010002008100018501000201000291020001020002000100 +010200020001020102840201000100850002000100018401000102008900020002010001 +0002008100028202000285020100020100 +010181000181010001008401000100010201810001050181000182010001010183000100 +010101810001820100010101810001010181000102018300010001040189000100010001 +00010001020181000101018102018201020184010201020181010202028b000100010200 +020001020002840201020102850200020102018f01020102010002000102010201020102 +8102018c0100010201020102010002000297020001000102010001000102010200020001 +00020102010281020181010202028a010201020002010200010083000201020202850102 +010200028502010201000282020102830200020183010001020202810102070281010282 +020002820200020202810102820200028302000102020281000283020100018601000100 +020102860200020100020181010282020002850200020001020102820102018101028102 +018301020102820201028702000102010002010301010201018600020100020002030201 +010102820102018101028202000201020100820100028402010201008100028302010201 +0101830001000183010001008a0002000100020102000100890001000200010001020101 +010a02810102060281010201028100020102810102080282010002010284000200020101 +018202000282020102820201028202010282020102020281010282020001020101000202 +8a000100010002000102010202028500010201000102018f020001000100020100020002 +000201028302010201840102000102060283010201028202000101010202020105028101 +0202028d0002000200010001020002000102030286000102000200028d02000201000102 +010200010201020202810001 +810001010183000100018201000103018100010401810001820100010101810001030181 +000101018100018601000100010001010183000100018401000100018201000111018302 +010002840201020102880200020100020100018f01000100020102010002000201020002 +83020102018501020102000288020100020002000201830100020101018b020002000200 +0200010201028102018101008a0001000100020002010002820201028e02010200020002 +0002000200020102850200010001008100028702000102000200028402010201028d0201 +0201000102000100010001020a0281010283020102018301020002850200020001028402 +000201020402810002840201020001010101008302000102820200020102830102010201 +028100028502010201000288020002000200020102850200020102018201000103018200 +010083000100018201000283020102018101020102850102010001028202010285020001 +00010201028e010200010002010002010200010001020183000100018801020100010001 +0002010201008401000200028202010282020102060281000201028101020a0281000283 +020001020402840102010001840102010201010101028101028502010200010282020100 +02008202000205028401000100018e010201000200020001000201020001830102010282 +0201028102018301000102040283000102018101028d0201020001000100020002000201 +810102010201018202010203028801000102010201000184010201000185010002000102 +010281010282020102010281010288020102000200020002880200020002010200010101 +8100028202010281020185010002010200 +010185000100010001020183000100018201000102018100018201000101018200010083 +00010001010181000101018300010001860100010001000101018100010a018900010001 +000100010001810102820201028802010002000200020181010202028701020001020002 +0083000201028b02010201020100020002000201020101020283010201020102a9010002 +000200010201020102010201020002000200020102010201020102000201000102000201 +020102810201810102020201018202000181010201028501020002010286020002000200 +028202010281020102018400020001008500010002000205028101028502000102010202 +028101028402010201028202010202028200010282020102010283000100010101010284 +010002000282020002820201028202000201028101028302010200810002840201020102 +010281010284020100020183010200018301000100840002000100810002850201000200 +028602000100020002010203010102810102820201028502000100020083000201028102 +010101840001000201010101008202010281020183010201020302830102010202028100 +020102810102010281010201028100020202810102010281000201028401000100020202 +82000200880002000200010002008100028b020102000200010002000102020201018302 +000102020281000282020001010184000200010282020102820201028202000283020102 +008300020002060283010201028102019001020002000100020002000200010002018301 +020102040281010282020102020201008101020302830002000204028800020001020002 +000282020102810201010185020102010201030181000183010200018c01020002010200 +020102000102 +810001820100018201000101010100030181000184010001000102018300010001010181 +000182010001010183000100018201000101018100010101810001010187000100010001 +00018101008100018a010001000100010001000183010201028502000200010202028200 +020181010082000201850102000201028402010201028402010201020202830002000282 +0200028a0201000200020102010201880102010201020100029502010001000201020102 +0102010002000102000201028702010002010200028802010201020002000101018d0002 +000200010200010201020102860201020102010284020001000103010502810002060203 +01870201000201020102820200028202000284020102000201028301020102010202018c +000200010001020001000200028302010002820200028202010282020102830200010282 +020002850200010002018101020102810001030183000200010101030282010002890201 +0201020001000102040281010282020102820200020102810102820200028f0201000100 +020100010201020102010206028100020602810102010281010206028100020a02810102 +01028100028302010002860201020102000101018a000100020102010200010283020102 +008700010002000201020202010102028400020001020102830002000282020102030201 +008601000201020102810201010192000200020001000200010002010002010201028202 +010282020002810201830102010281020181010287020102000201020187010200010201 +02010201850002000200028f020002000200020001000102000200018401000201020402 +810002830201000201028500020102000101010000 +040181000101018100018401000100010401810001060181000101018100018201000103 +018100010101810001820100010101810001010187000100010001000106018500010001 +000283020102018401020102018701020001020002019c01020102010002010200010200 +0201000200020001020102010201020181010287020102010002010201028c0102010002 +000200020002000281020084000100020089000200020002000102008a00010200020002 +000201028602010001020100840001000100870002010001020002020283010201028202 +010283020002008200010283020102008100020502810102020285000100010002820200 +020302830102000282020002870201000200020002010283010201008300010002820201 +028202010281020183010201020102810102830201020181010285020002000102820200 +010201810201830102000186010200020001028202010081000101010402810002830201 +000201028301020102820201020102830102010201028501020002000286020102010201 +020102820001020102810002010281000206028501020002010201028101020502010181 +000282020102010282000200840002000200860002000200010282020102820200028402 +010001028202000201028100028d02010002000200010200010002008100020102810002 +030201018500010001000188010001000100010200010088010002000200010002020281 +010281020101010102810102820201028a02000200020002000200028202010281020181 +0102820201028802010201020102000201028f0100010002010001000100020002010286 +020102010200028702000200020100020102860002000201000101018100028402010002 +0181010285020102000201 +840100010001010181000101010100850100010001008100018201000101018100010301 +810001010181000184010001000101018100010101810001820100010101810001030183 +00010001860100010001000101018c000100010002000200010200029302010201020100 +020001020002000100010200028402010201028d02010201020102010002000200020302 +8c010002000200020002010201028a020102010201000102010088000200020102010200 +860001000102010206020201850001000100010101810001820102008300020002010281 +000284020002010282020102810201010182020100840001000102010281000206028501 +020100010201028400010201028202010283020002008100020202810002010284010001 +000184010002000287020002000200020081000282020102850200010200028202010201 +028101020302010184000100010084000102000284020002000282020001810102830201 +020101010102810102820200028202000201028100028202000201028101028302010002 +0202810102010281000202028101020102810102010281010202028100020a0281010206 +028101028702000200010200020102820100020502810102890200020100010201000101 +010102820001028602000200010002820201028202010282020102020285010201020102 +850201000201028802010002000200020082000102830201020081000201028100020502 +0200890100010001000201000105010202820102018101028102008a0002010200010200 +020001860100020001000291020002000200020102010001000100010001820100010401 +83000100018201000182010002810201810102830201020184010201000282020002 +82010001010181000101018100018201000181010001000b018100010101810001010183 +000100018201000101018100010101810001820100010101830001000101018300010001 +860100010001000101010102010185020102000102860200020002000285020102010201 +820102018c01020002000102010201020102840200020102010284010002000201028101 +0202028601020100010001010186020102000102008e0002000100020002000100010200 +028b02000100020102010001020101018100018601000100010001010182000200830001 +020101018302000102820201020102810002880201000201020002018401000100020402 +830102000104018200010282020002850201020001028502000200010201028101028602 +010201020001860102000102000281020183010201020102810102060284010002000282 +020102020202018202010201028101028102008500020002000101018302000102820201 +028602000200020002020283010201028202010282020102820200020102810102030281 +010202028101020102810002060281010201028100028202010203028800010002000200 +010082000102820201028702000102000200020202810002010201010102810002820201 +0281020101018d0001020102010002000200010200810002820201028302010002010281 +000201028101029102000102010001000100020001000100010282020002850201000200 +020102810102810201010194020102000200020002000200010002000200010002820201 +0201028101028e02000201000200020002000100010081000108018a0002010002000200 +020102020288000200020100020002010285000201020001810102020282010002830201 +0001810102 +810001820100010101810001090181000182010001050181000182010001840100010001 +0101810001820100010101810001010181000182010001010183000100010a018a000100 +010200010201020182010201840102010201850102010201028902010201020100020002 +850201020102018701020002010201020302910100020102010002000200010002000100 +019a01020102010201000102010001000100010001020002010201020185010001000100 +830001000105018602010201020102020285010201020002820201028602010200020002 +880200020100020002018101028202000203028801000100010002010284020102000201 +028401020102008100020502810102010284000100010201028500010201020081000282 +020002850201000200028202010282020102810201810102840201020102820200020102 +850102000201028502010201000181010201020301030281010284020102010202028100 +020902810002010281000202028100020202010101028100020102810002020283000100 +020102820002000200040182000100890001000102010200010083000100028202010204 +028101028a02010201020100010201028202000282020102020203008202000201028100 +020302820102010301850002000200020302820002000100860100020002000203028301 +02000287020100010200010283020102018a010001000100010001000201028b00020002 +000201020002010281020181010201028101028b02010001000200020100010202028b01 +020102010002010001000188010001000102010001010181000181010285020102010201 +01018202010282020001 +010181000101018100010101810001020102000101830001000101018100010201840001 +000100810001010181000101018100018201000101018100018201000101018100010301 +81000188010001000100010001010101028301020102820200028a020102010201000200 +020088000200020001020002860201020102010285020102000201890102000200020102 +0102850200020002019a0102010201020102010201020102010001020102000201020102 +0184010002000281020081000281020105018d0001000100010001000200020001010184 +020102010286020102000200028502010201020182010002010281010206028101020402 +030101000102810102820200028202000282020102820200028202010201028100020202 +030183000201028202000282020102830201020181010282020102010281000283020102 +018101020102810102020281010282020002020201008702000100020100020202810002 +04028101020e0281000207028501000200020102018a0201020102010001000100010081 +010287020100020001000188010201000200010001840100020002820201028202010203 +028101020102820100028202000284020102010286020102000100020202840100020002 +810200850002000100020402810102010281000285020001020102020289000100020102 +000100028202000203028101028202010287020002000200010083000200028402000201 +028202010202028201000181010282020102820200020102860100020002000282020001 +840100010001020192020102010001000201000100020002010201020202840102010002 +01028100020102830001000181010202020101840200010201 +810001010181000101018100010301810001040181000101018100010201810001050181 +000101018100018201000101018100010101810001820100010101830001000106018500 +010001000184010002000289020002010002000200028602000201020100870001000200 +010002870201020102000200850002010201028702000200020102018301020102010281 +010283020002018101020302820100028102000100010101008902000200020102010001 +040181000184010001000102018802010200010200020001008401000201028402000201 +028702000200020002008100018401020001008500020001000202028101028602010201 +000200830001000282020102840201020102810201830102000282020002040282000200 +830001000182010002820201020102840100020102820200028202010281020102018202 +000284020102010202028101028202000203020100810102020281010201028101020602 +810102820201020a02810102060281000203028f00010001020001000100020002000102 +8302010200880002000100020001008500020002000286020102000102018b0102000100 +020002000200020102810102040288010201020100010001810100860001000100010088 +000200010001020001830102010282020002020281000101018c00020001000200020001 +000100810001860102010001000282020102020201010202910002010200010002000200 +020001000200020402020187020100010002000199010200010001000200020002000200 +01020002000102010201028a020102010001020001000282020001010182000201840100 +0200010101810001010103028300010001 +010181000101018100010b01030084010001000101018100010101830001000182010001 +010181000101018100018201000101018100018201000101018100018c01000100010001 +0001000100028202010283020102018201020183010201028702000201020002018a0102 +000200020001020102860201020102010202028c00020001020102010201020102860201 +020002000203029500020102010201020100010201020102010002000100820001008100 +010201860001000100010081000288020100010001000100880001020002010201020202 +880102010201000201028502000102000284020102010081000101010102830102010283 +020102010201810002820201028202010282020002870201000201020002020281010281 +020185010001000102820201028202000282020102810201810102820201028202010282 +020002830201000283020001020102810102040281000202028100020102810102820200 +020a02810102060281010203028600020100020002860200010001000106018f02000200 +020001000100020100010201020101020101840002000200010082020002840201000200 +860002000200010201028100020102810102830200020001008302010201880102010002 +000100028102000100840200010001810102060282010002880200010001020102010101 +8d00010002000200010002000200020202810102020283010001028a0200020001000200 +020102030285000201020102040202018500020102000204028101028c02010001000200 +020002000200010089020100020002000201028402010201028502000201020081000282 +02010201028b010201020100010201000100 +830100010081000186010001000100018201000184010001000182010001840100010001 +020182000100810001010181000182010001010181000101010100870100010001000100 +88000100010001000100810001060181020183010200028402010201029f020002000200 +01020102010002010001000200020102010002000201020002018c010201020102010201 +000200020702810002820201028102008100028102018201020003008301000100810001 +010181000181010081000101018302010002880200020002000200028602000100020002 +030281000287020002010200010088000100010201000100840002000100810002860201 +020102010285020002000100810001830102010201028301020102880200020001000200 +020302820100020102010183000100028202010201028100028502010201000282020002 +820201020102810102820201020a0281000208028101020a028101020102810002030281 +000281020184010002000281020183010200028102018101008400010001000200840102 +010002820201028402010002018701000100010002008100028202010282020002820201 +020202820002008600020002000200830002010201028100028202010201028801020001 +000200020082000102820201008100020102840100020002820201028202000203020101 +880001000200020002000100850100020102018101020402810102820201028a02010001 +000100020002018a01020102010001000200018201000201020201010281010081000201 +028100020102010086020100010001028202010284020102010288020002010200020002 +8e0200020002000100010001000102008200020183010001028302000102820200010101 +840002010200 +820100010101810001090181000101010100010181000104018100010201810001010181 +000186010001000100010601810001010181000102018100010201850001000100028202 +010288020002000102010201850102000201028502010200020081000182010201870102 +010001020102880201020102010201028802010201020102010201028200010282020002 +04028a010201020102000200020181010201028100010301810001010181000181010089 +0002000201020002010286020102000200028e0201020002000201020100010001028102 +010101010282000201010186000200010002008300020001810102810201040181000101 +018200010201028101028202010282020102820201028202000203028401020102018101 +008300010002820201028302010201810102020283010001028402010201020a02810102 +05028100028202010202028101020a028101028102018101028502010201000282020002 +0102810002840201000100830002000106018d0001020001000200020001000200880002 +000100010002010101830001000101018900010001000100010002060281010283020001 +028202000202028100020102830102000101018400010001008600010001000100010002 +010302810002020282010001020182020100820001028a02010002000200010200020602 +030101028101028d02000200020002000200020001020202810002020281000101018602 +000200020001010185000200010001810100010085010001000201820100018801000200 +010200020101018902000100010201000102830200020181010202028100020102860001 +0201000102 +020181000101018300010001840100010001840100010001820100018101008100010201 +810001840100010001820100010101810001020186000100010001008100010101810001 +010183000100018401000100018401000100018201020186010201020102018101029502 +000201020001020102010200020001000102000201900102010201020100020102010200 +020002020285010001020102060290000200020002000201020100010001000101010300 +840100010200860001020102010286020100010201020202820102008a00020002010201 +020102010101810001010101028101028802000102010201020102010302840102010002 +830201000182010001020103028101020202880100020001000201028202010283020002 +0182010001010101020101030281000201028300020102040281010201028101020c0281 +000201028101020402010181020181010282020102040281010283020001028202000281 +020185010201020001820102018501000100010085000100010001810100010001020101 +010281010282020102830201020102010100860200020002010282020102820201028202 +010281020081000203028101020102810102810201870102010201000201810102860201 +000200020087000100010002000285020002000102040284010001000192010002000200 +010002000200010002000100010101010283010200020302830001000184010002010284 +020102010282020102010281000181010201028300020102010283000100020102870102 +000100020002820200028202010202028800020100020002000182010002010285000200 +02000101018500010201000181010202028201000101018100028602010001020100 +820100010101810001040181000184010001000184010001000181010083000100018301 +000100810001010181000182010001010183000100018201000101018100018201000101 +0181000101010100050101000102810002830201020183010201028a0201020002000102 +010002810201820102018101028102018401020002019301020002000201020001020102 +010201020100020102850002000200020102850102010201020102840002010001830100 +010085000100010001820100010101810002880201020102000100028202010201028b01 +000100020102010201000202028300010001010190000102000100010001000102000100 +010085000200020102810201030183000102010201820001008300020002820201028302 +000201830100020081000201028100028202000189010001020102010201028202010212 +028100020802810102010282010200820002018101000100030204018102008100018301 +020102820201020102810002830201020084000200010083000200018b01000100010001 +000102010086000200020001008200010286020002000100010401860201000200020185 +010002000200830001000202028101020102810102820201020102820100010101020281 +000203028800010002010200010085000100010002020281010281020101018c00010001 +000100010200010001020183000201008100020202850100020001028202010201028e01 +020100020002000100020002000202028201000284020002000204028100020102840002 +010201020189000102000200010200028402010201020202840100020002010283010200 +020102810002010281000183010200020102810002830201000282020001810102 +810001010181000182010001820100011501830001000188010001000100010001010181 +000182010001010181000182010001010181000184010001000182010001030185020100 +02000283020102018501020102010286020002010201028f020102000200020002000102 +010201028702010201020100020102880002010200020002018101020702830002010202 +020301810001050182000102830200020001008402000201028802010201020002000284 +020100010086000200020002018101028602010201020102820200010401020287000100 +020002010202028100028302010001010101008201000101018300020102820201028602 +010002000200810002820201028202010282020002020282000102070281000282020102 +040281010201028101028202010208028201020083000200028502010200020185010001 +000102820201028202010282020102820201020102810102820201028302000102860201 +020001000189010201020001000100010101850001000201028802010200020100020182 +010201820102008800010002000100020183010201020102830102010203028100028502 +000200010203028301020001010101028601020001000100020083020102010301810201 +810102050282010001810102820200020502830002000288020002010001020102030281 +010281020101018b00010001000100010001020103010402810102880201000201000200 +028102019901020102000200020001020002000200010201000201000100018201000103 +0183000100010101870001020100020102030281000286020001020100020102810002 +010181000101018500010001000105018300010001060181000182010001010185000100 +010001820100010101810001820100010101810001010181000182010001010181000186 +010001000100018101028202010283020102018301020002010282010002870201020102 +0102018b0102010200020002010201028502010201020197010201020002000200010200 +020102010201020102010002820200020302810002840201000100010083010001000200 +850100010001020102810102860201020102010202028601020002000200860002010201 +020081000201020101810002880201020001000100020102850100020001000200820201 +02020209018100018301020102820200028402010001028502000102000203028101020a +028100020402810102820201020802810102830200010203028201000285020100010200 +810002010285000100010002820200018301020102010283010201020102830102010083 +0002010203028a0001020001000100010001020184000100010085000100020002820201 +028502010002010281020103018302000102820200028102008400020002000200020281 +010205028201020181010281020101010400810200850002000200018e01000100010001 +000201020102010282020102850201000100018501000100010001008e01000100010200 +020100020002000201020101850201000200029002010002010200010002000200020001 +028a02010200020002000100020402830100020102018102010601810001a20100010001 +000102000100010001000201020002010200010200010201000201020002830201000101 +018300010201 +810001010181000106018100018201000105018300010001040183000100018201000101 +018100018201000101018100018201000101018100010101810001820100010101810001 +07018c020100020002010002010201028902010201000200020002010286000102000201 +008300020002870201020102000200890002010201020102010203028600010201000102 +010286010201020102010101810001010181020101018200010281020184010200010083 +000200020102810002010201000202810102840201020102860200020002000282020002 +010201010300840201020102820201020402810102840201020102820200028202010001 +008101008100010101810001830102010203028101020b02810102830201020181010206 +028301020002010281010282020002010281010202028101020202810102820201020102 +810002830200010202020101810201010183000200028202010201028101028502010201 +000201028101028102010201820200018201000204028601000200010001810100820002 +018401020102008400020001028302000200850002000100010101810001840102010002 +820201028202000284020102000284020102010286020002000200028102010101860002 +010200020002008102008100020202860001000100010201028100028202010283020100 +0101018102010101820001028b0201000200020002000200020102810102850201000102 +018801020100020102010081000187010001000100010201028100018301020102020281 +00028d020002010201020100020002000286020002000200020202810002820201028702 +010201000102018601000102010001010182000201810102020281000201028500010201 +00010101810001 +010181000101018100011401810001820100018401000100018201000101018100018201 +000101018100018201000101018100018201000101018100010101880001000100010201 +028702000200010201028a02010201000201020102018501020102010201028700020001 +020102008200010286020100010201020102830102010281020085000100010201020184 +020102010285020100020002810201010105008402010001008700020102010001028602 +010201020102870201020102010200030001018202010001008801020102010201000101 +0101028101028202010283020002000200840100020002810201820102018101008b0001 +000201020002010201021202810102010281010282020002040201010302010102028100 +020102830002000201028101020302850100010001008400020001008300020002870201 +000200020102010201018202010281020181010282020002860201020001000281020181 +010081000201028101020202810102820200010101820001008700020001000201020102 +840100020102830201020102018100010201820001000200820200020202010102028100 +020102810002050282000100010083020001008500010002000281020101018902000102 +010201020102010282000102870201000201000100860002000200010285020102000102 +9e0201020102000200020002000100010002000200020102000100010002010201028400 +0200020001008402000201028202010201028b0100010002000200020102018201020182 +010001020186000100010001028202010081000201028100020102810002010281000288 +020100010201000201820100028402010001020002 +8100018a0100010001000100010001820100018601000100010001820100018601000100 +010001820100010501810001010181000182010001010181000182010001010181000182 +010001010181000101018a00010001000200010201028202000284020102000286020102 +010201028802010201020002000283020102008100028602010201020102020286000201 +020102018401020102010101010081010285020001000102850201020001020202890002 +00020002010201028c02000100020002010001020102880200020002000200028d020102 +000200020001000102010282020102020281010284020002010282020102820200028202 +01028102018201000202028101020302810002100283000200020a028100028102010201 +810200810002010283010201020102810102820200010101020281010282020102820200 +020502840002010002010283010201028102010301810002850200020100028202010201 +028100028202010281020181010203028400010200020202810102010201018100010101 +840001000201830102010003008301000200860002000100020182010001820100018301 +0201028202000284020002000202028101028102018101028102018a0102010200010201 +00010003008b010201000102010201020002010281000284020002000202020101820001 +0086000100020102018a0100010002010200010002010282000102010283010201020202 +8b0002000100010200010002018101020102830001000281020081000183010201020102 +89000100010001000100018101008a000102000100020001000288020001000102010200 +8a0002010200020102000102820200028802010001020100010282020001010181000101 +01810001 +820100010101810001060181000107018100010201810001020181000103018100010101 +810001010181000182010001010181000182010001010181000182010001010181000101 +018100028202010282020002830201020187010200020102010285020002000102810200 +86000200020102008700010002000201008d000200020102000200010201020101019100 +020002010201020100010001000102010201028500020102010283020001008800010001 +000102010081000288020002000200020102860201020102010285020102000200850002 +000200028402010201028402000200028402000200028202000282020100840002000102 +820200020702810102820200028202000202028101020602810002860200010002000286 +020002000201028502000100010201028101020102810102840200020002020281010282 +020002010201018202010201028400020002000100010201000502810100850001000200 +0204028101028202010283020001028402010002018b0100010201020002000200020202 +820002018801000100010002010001000102810002820201028302000200810002810200 +820002010301820002008100018101028202010201028301020102050281010285020100 +020100010090020102010201000200010001000102010284020002000201028101029802 +010201000100010200010201000200010001000100010002020281010201028101020102 +860100010002010285020102000201010181000181010201028f00010201000200020002 +010200020102820201028502000102000287020002010002000283020001020102840102 +010002010201018600020102000201820100018301020002010201008d02000201020001 +00010002000200 +020181000101018300010001820100010201810001840100010001020181000101018100 +010201010081010083000100010101810001010181000182010001010181000182010001 +010181000182010001010183000102018801020001020102010292020002000102010201 +000200020002010201028e02010201020102010201020002010290020102010201020100 +0100010001000100840002000201070101028101020102860102010200020003008b0201 +02000100010200020002820201020102850102010001028e020102010002010201020100 +02010282020102040283010201028202010282020102020283000200020b028101028402 +000201028102010101010281000282020001820100020102010082020002010284000201 +000285020100010002820201028302010201810102010285010002000102810200830002 +000201028200010284020001000286020102000200020202820001028102010101830200 +010283020102018101020102820100018101028102018101028202010281020083000200 +020202810002010281000282020001010103028101028202010082000100820001000300 +870102000100020001870100010001000100810002820200020202830102000282020102 +810201010101028201000101010102030001020101010003018202000202028100028202 +010286020001020001008700010001000201028a02010201020100010201020302820100 +020202890102010201000100020185010002000201830100020186010201000200028202 +01020502010084020002010283020100018a010001000201000102000285020002000201 +930100010002010200020102000201020002010002810201020189020001000201020002 +01810102 +820100010101810001020181000111018100018101008100010101810001820100018201 +000101018100018201000101018100010101810001820100010101810001820100010101 +830002000282020002870200020001020102840201020102880201020102010200029c02 +010201020102000200020002010201020102010002000201020100018501020102000102 +010100860102010002000283020100020302810102890201020002000200020094000102 +010002010001020102000102010201020002860201000100020087000100020102000282 +020102120281000202028101020502830102010081000102018200010204028200020186 +010002000201020402810102010203018202010281020181010286020002000201028202 +000282020102010201018202010282020002030282000200810001810102010285010002 +000200820001020102830102010282020001810102020286000102000200018201000184 +010201000282020002060288000100010001020002840200010201820102018201020182 +010201830100010081000181010284020102000102010202810102010283010200028202 +010201028100028402010201028202010082000102020289010001000100020001028602 +000100010002010281010281020181010001008e02000100020001000100020001000201 +028300020002040281010281020181010001008802000200010002000287020100020002 +0002010283000100020402810102820200028102018a0102010002000100020001830100 +01008100018401000200028602010002000102830200010286020002010001028c020002 +0001000100020001000288020100010201000100 +030181000101018100010201830001000184010001000184010001000182010001820100 +010201810001020181000102018100010101820001008500010001000186010001000100 +0182010001010181000182010002820201028402000201028b0201020001020102010201 +028902010201020002000102900201000200020002010201020102010201020184000102 +010283020002008f0001000100010002000201020102010201028b010200020102010200 +0200029b0200010002010201020100020100010200020002010002010200020181010283 +020100028202010217028200020101010302810002020202018302010001030182020002 +8b0200010001000200020001008300020002820200028502010201000183010001020102 +8101028202000285020102000102010284010002010201028a0100010002000100020102 +010282010002010281010203028100010101010281010201028100028102018101028302 +010200840001020102820201008100028402010200020202810102010281000108018400 +020002000200820100028202000206028100028202010002000102810002060281000204 +0284010201000101018402010002008800010001000100010201028f0001020002000201 +000102010002000181010083000200020102030188000100020002000102820200028702 +010002000200018101028202010282020102820200028502000201020183010200020202 +010188000102000102000201860100020002010284020002010202028201020184010001 +0002850201000201020102810001010184000201000286020100010201028d0200010201 +0001020100010200020102810002 +010181000101018100011501810001040181000103018300010001840100010001010181 +000184010001000104018100018201000101018100010101830201020186010200020001 +020102930100020002000102010201020102010201020102010286000102000100018b01 +020102000200020001000104018102018101020202010188020102010201020102820201 +02820201028a020102010201020102010088000200010200020102810201810102840200 +020002040283000200028402000200020b02830102000289020102000100020002008200 +010202028801020102000100010081000182010001030186000201000201028102018101 +020202810102030281000281020101018100010101810201810102810200010002028401 +020100020102810102060286000200010002008200020082000102010284010201000102 +010200850200020102018101028202010204020101830001000186010002000201020402 +8901020100010001020102850201000100010a0181000101018600010001000100820002 +010301820201028402010200028302000102030282000100840001000100820001020202 +820001028102008100028402000201020702010181000104018900010001000200010201 +020107028101028202000281020004008102018201000101010202810001860100020002 +000201028100028802010002000100010284020002010286020002000200028202000202 +0283010001028402000200018201000201028600020102000102850200020001028b0200 +020100020102010002018301020002 +810001010185000100010001820100018401000100018401000100018b01000100010001 +000100010001000101830001000182010001840100010001820100018201000101018200 +010087000100010001000182010001010182020102820201020202810102840200020002 +840201020102010201018802010201020102000201028300020100020081020102018302 +010201030190000100010201020102010201020102010201028b01020102000200020002 +00028a020100010002000102010201028100020702810002060281000201028101020d02 +810102900201020102010001000100020100020002870200020100020102810201820100 +010101820200010101030286000100020002008400020001020302810102020201018500 +010002000282020102010284000102010286020102010201028302000102890200020002 +000100020085000200020102840201020102820201008200010289020001000102000201 +028202010282020002010282010201010183000100028202000282020102020282000201 +020181000182010002850201020102008700020001000200020602010082020102840201 +00020183010201020b028301020100860002000100010081000104018102008100028602 +010002010002020281010282020102810200010086020002000200020202880102010002 +000200028202010282020002010282000201010189020102010201000200028302000201 +010187020001000201020181010284020102010201029701000201000201000100010002 +000201000201020001000296020100010002010001020100020102000200020002000201 +02810002890200010201000102010202020100 +850001000100010101810001840100010001820100018601000100010001840100010001 +010181000105018300010001050181000101018100018201000101018100018201000101 +01830001000182010001810102020282000201820102018d010201020100020002000200 +0200940002010201020102010201020100010200010001008a0001000100010001000201 +820102018b01020102000200020002000285020001020102020285000200010001810100 +820001008500010002000202028200010209028101020402850102000200020302810102 +820201020102810102820200028402000200028402010201000100010182020102820201 +028702000102010002018601000201020001010181000201028400010002000200820200 +020202810002010282010201030101028500010002000201028401000100028202000201 +028101028502010201020084000200020081000282020002020283010001028102008500 +010201020082000102820201020102810102820200028c02000201000100020102010002 +020281000282020102010201018400010002008800010001000200020081000282020102 +010285010201020001010189020002000100020102018101020302810102010281010289 +020102000102010001000100810100020001028101028202010085000102000102820200 +028602000100010201850100020001028302000100020089010001000100020001020502 +020188000100010200020002020281010201028800020002000200020183010201028302 +000102880200010201000100018201000184010001020101018e02010001000201020001 +00010200028402010001028f020002010201020002010001020100010101820002018201 +0201820100010201 +05018100011601810001840100010001820100010a018100010101810001820100010101 +810001820100010101010002018100018501020002010282020002880200020002000200 +028402010201028202010201028901020002000201020102010282010001040191000100 +010002000200020002000201020002010294000201020102010201020002010001020100 +010002020281000201028100020802850002000200028602010201020002030282010002 +010202010102810102020283010201028202000281020002008402000200020702010181 +000181010084000201020102018602010002000102820201028202010282020002030282 +010201860102000100010001000202810102070281000201028100028202010283020100 +028702000102000200020202810102020281010281020101010102820002008700010002 +000102010601810200850001000201020502810002020281010285020100020002830201 +020101018202010085000100010002810201830100010002008301020102810201830100 +010201028201000204028201000281020085000100010001020184020102010203028301 +020100850002000201020602830100020083000201020602850002000200020202810002 +010285000200010001020101028201000183010002008800020102000201000181010203 +02810102830200010201028d000200020002000200020002000284020002000201028e00 +020001020002010200010201000101018600010002010002010281000101018500010201 +000181010285020102000200 +860100010001000115018100018201000101018100018301000100810001820100010101 +830001000182010001010181000182010001010181000182010001020181000101018500 +0102000201850102010201028402010201028b0200020002000200010201028102018301 +020102850201000200028302010001820100018601020002000201910102010201020102 +010201020002000200020202810102820201020102810102060285000200020002010281 +010201028101028602010201020102020286010200010001008400020001020202810102 +820201020302830002000201028401000201028802010200020102000282020102040287 +010001000100020102018702000200010002008500020001000206028101020102020189 +000201020002010201020102810102010203018102018101020102870102000100010002 +820200020202810002010284000102000101018200010284020002010282020102820201 +028102010101820200020102860100020002000202028101020202820102000100810200 +900002000100020002000102000100020102820201028602010002000200010082020002 +820201020e0283010200018b010001000100010001020002810201830102000281020183 +010001028102000100030283010001028702000200010002000100820200018101028402 +000201028302000102020282000100010086010001000100010201830001000101018100 +02850201020001028502010201020181010201020301810201820102018c010001000100 +010201000102018201000101018100018c01020001020100020002010001010181000283 +020100028a02010002000200020001020202 +020181000101018100018401000100018401000100018401000100018401000100010101 +810001830100010085000100010001040181000102018100018201000101018100018201 +000101018100018401000100018a01000102010002010201028202010287020002000201 +020194010201020102010201020102010201020102010002860200010001000189010201 +020102010201020102870102010201020102010283010201020102830102000202028101 +020102840100020102050283000200020202850102010201028402000201020202810102 +8b02000200020001020001000201028300020002820201028202010203028e0001000100 +020102000200010201020202010185020100020002810201030101028900020002000102 +010200830002000203028101028402000100018101008100028202010201028101028602 +010201020002040285010002010002830200010082000102020285010201020102010201 +018100018301020002040281000281020102010100010181020081000281020101010402 +8100020302020102020101880201000100020001008d0001000200020102010001020100 +8e0002000102010200010002010201020102810102010283010001008500020100010001 +0081010285020100020102010286000201000200028202010205028a0002010001000100 +010201010184020102010201028301000102820200020402010101028601020102010001 +810102810201010181020184010002000285020001020001030190020102010001020001 +000200020002000204028400020102008100020102810002010281000201020100840201 +0200028402010001028302000201820100010101850201000100018301020002 +820100010101810001150187000100010001000181010001000101810001040101000101 +810001010181000182010001010181000182010001010183000100018201000202028301 +02010284020102000286020102010201028a020102000200020002010203028401020002 +01040183020001028202010201020101020285010200020102080281000201028f010201 +020102010200020102010201028202010284020102000283020001028202010286020002 +000100028402000200028602000200010002010285010200020002040283000200028102 +008400020001000100010105028201000202028100028502010201020102018600020001 +0201008a0002000102010200010002010281010202020101820001028102008100028202 +010282020002010281010201020101820201028102018101008100020202840001000201 +83010200028f020100010200010001020100020001020402050101008902000201000100 +020002060281000285020001000200850002000200010801890002010002000200010001 +008701000100020001020102820102018b01020102000100020001020002008301000100 +040084020001000181010081000101018300010002040204010302830001000201028100 +020302810102070286000200020002000100020185000102000100010001028201020181 +010206028b01000200020002010001000284020102010296020100010002010200020102 +010002010200010201000284020102000201028100010101810001010182000100870002 +000201020002820200020102 +030101000101830001000182010001840100010001860100010001000181010085000100 +010001010189000100010001000100010201010082010001820100010101810001820100 +028602010002010001010101000201020283000100028102008100028602010201020102 +82020102820201028f020102010200020102010201020100018101000100870102000200 +0200020a0281010208028101020102880102010201000102010101010083010001008900 +010001000200020102020283010201028102010101010282010200850002000200028402 +010200028202000284020102010201028101028202000286020102000201020202030101 +028101020102810102030281010281020103018802000100020100020083000100020602 +820002008200010083000201028202010282020102020284000201000285020100010002 +860200010200020081000201028101020202810102810201820102010201030201008502 +010201000185010201000201810102880200020001000200028202000205028301020102 +810201020101028501000200020084000200010282020102820201028202010289020102 +000200020002008100020302810002010286010201000200010a01010001018402000200 +01840100020002020283010002018a010201000200010002000281020183010201028102 +018301020002010282000201820100020102020101028101028202010201020100010102 +00820201028202010282020102820200018a010201000100010001020101018300020001 +880100010001020100018401000100020102810002820200020102830001000283020100 +020102820001028302000201890102000201020002010081000182010001 +010181000114018700010001000100010101810001010185000100010001010102008201 +000101018100018201000101018600020100020102810201820100010101010002018502 +010200010201028201020089000200020002010201029202000201020102010201020102 +000100020001010182020002080201010202810102030281010284020002010201028601 +020102010201020101020100820100010101860001020102010084000102000181010282 +020102860200020102010084000102010281020085000201020102870201000102010002 +010288000201020001000200840002000102820201028302000102820201020502040181 +020185010002000200820001028102008100028202010203028101028502010201000101 +018100020102810102850200010201020102810002820201028302000100030081020082 +000100810002020283010201028302010002840201000102830200020181010202028201 +020181010281020084000200010087000100020102000202028100020102850100010002 +008900020002000100020102830201020101018102000200830100010001008902000100 +01000102010202028101028a020100020002000200020001008601000200010002030283 +000200028602000100020002070281000181010281020103018200010081000201028400 +020100028202010203028a01020100020001000200020102810002010286000100020001 +020102890002000100010002000282020002840201020001820100028402000200020202 +870002010200020002010281000201028100028402000200020102810002010281000201 +02810002830200020102018100018501020002010082000100 +810001010181000109018100018601000100010001040181000182010001010181000103 +010200820100018401000100010201810001820100010101810201810102840201020001 +820100018f01000100010201000102000100020002020285010201020102970201020102 +010201020102010201020102010001000201020602850102010201020702890102010200 +020102010201028a00020002000102010002018401000102008800020002000102010202 +0283010201028402010201028e0201020002000100020002000200028202010201020101 +040281010201028101028202010282020102830201020101010202020101028100020302 +880102010201000100018501000200020083000200020702010081020001008101020202 +810102830200020181010283020102010101850001000200020102830002000201028301 +020102820201020102820100020102870100010002000200020082010002020283000100 +028302000200820002000100820200020402820102018101020102830102010201020201 +820002008500010001020101018202010203028101028202010283020002008100020102 +81000202028501020002000201028200020101018a020001000102000200020101018500 +01000100010101820200028c020102010001000100010002008100018801000200020002 +010204028100020402810002010202010202010181000101018200010202028101020702 +810102010285000100010001840100010002850200020001028402000200018301020002 +820200010101810002810201010181000183010200020102810002930201020102000200 +020100010200010001000100 +870001000100010001820100018401000100010401820001008500010001000101018100 +018c01000100010001000100010001010181000106018100010101830002010287020102 +000102000101018100010101010281010201028101029d02010001020100020002010201 +020102010201020102010201020102010207028101020902820100028502010201000281 +020083000201028802010201020002000201028100018201000101010102030181020087 +000200020002010284020102010284020102010284020102010283020002018201000282 +020002820200028202010203028101028502000200010083000200020102810102840200 +020002020281010205020101810201820100018801020001020002010285020001000102 +040284010201020103018902000200010001000200820001028202000283020102018101 +008300010002820200020302810102020281000202028201020181010282020001860100 +010002010283020100028502010002000283020102010101040281010203028400010001 +008b000100010001000100020102820201028402010002008e0001000200010002000200 +010201000100010281010202028400010200028502000100020001000102810102820201 +028502010002000282020102850201000201028f02010201020102010001000200020001 +060181000181010205028201020103018200010001000102010085010200020002820201 +020102810102010283010201028402000200028202000181010283020102010201830001 +0001820100018c0102010200010201000102000286020100010001028902000201000102 +010002010281000201028301020002820201028102000100810200 +020181000101018300010001020181000184010001000104018600010001000100010001 +018100010101810001820100018201000101018100010301810001820100018101028202 +010285020102010002820200010101010089010201000102000200018501020102010202 +028501020002000201028f00020002000201020102000201020002880201020002010201 +028d02010201020102010201020102010101860201020102000202028801020102010201 +020102018f00010001000100020102010002010201010101028101028502010201020082 +000200010001020100840200020102810201010105028701020002010002008400010002 +018101028102010101820201020702810002870200020001000100860001000200010082 +000102010284000201000205020100810100810001810102820201028202010283020102 +01010103028201020082000201810100810002820201020302810102820201028a020102 +010001000100010002000101810201860102000100020101010100850200010001020102 +810002040281000281020183010201028302010201020101008201000101018200020081 +00020502810102820201028202000282020002030202000101860002000201020101018b +020102000102000100020102830200020085000200010002010283000201028302010001 +03018b020100010001000100020002030281000201028100020102890002000200020102 +000288020100010001000102040281010201028301020102810201030185000200010001 +820100028102018301000102820200010201850001020100018501020001000101018400 +010200028702010001000102010201870200020100020001810100820002000000 +820100018201000105018100010401880001000100010001008200010001000201810001 +820100010101810001030181000182010001040181000182010201860102000102000286 +020100020100010201850001020102019a01020102010201020001020102010201020102 +010201020102010283020002018101020102810102840201020102830201020101010102 +840001020002010281000202028901020002010201020002860201020102000283020001 +008100018301020102870201000200020102020283000200028402010201028502010001 +000201028401000100028402000100020302010182020102820201028102008400020001 +028202000202028400010001028202010207028200020184010201000201028301020102 +840201000200810002060281010281020101018202010281020102018302010002010281 +010201028101020202820102018101008100020302010101028101020402820102010401 +020283010201020102880001020001000200020102810102030281010201028101028502 +000200010088000100020002000102820201028502010200010283020002008d00020001 +000200020001000200020302850102010002018401020001028a02000200010001000102 +018101020102850001000100028202010282020102060201018b02010002000200020001 +020103010102840002000102020285000200010002810201810100810001030184000100 +010202028201000282020102880200020002000200028902000100020002010201840100 +010001010181000189010200010001020002018401000100018201000101018100028802 +0100010201000201010184000102010087000102000200020082000102 +020181000101018100018401000100018701000100010001000100020181000183010001 +000100010181000101018100010101010081010082000100810001030181000101018100 +028502010002000286020002010200018401000100018f01000201020001020102000201 +020102010281000202028900020102010201020102820200020102870102010201020102 +84020002010202028d000200020102010201020102000283020100028802010201020102 +01028202010201028201000181010001008a020002010001000102000286020102010201 +028402010001028102000100810200810002840200020102010282010201810102010282 +010002810200820001008700010002000100028202000101018100028202010201028101 +020402830002000281020082000100840002000100810002010201000102820001020302 +810001020182000102820201028102018201020183010201028702010201020002008500 +01000100020302810102020281010202028101020102030101028b000200010002000102 +0001008400020001008b0002000100020002000200028202000202020101820001008600 +010002000200040082020100850001000201028202010282020102030281010205028400 +020001000100810201820102018201020189010001020001020001008200010283020102 +00830002000205029600010201000100010001000100010001000100010001020c028100 +020102820001000100820201028102018101020102810102820201028202000202028401 +020100028302010201010186000100010002018201000182010200820002018601000102 +010001020182000201860100020102000286020001020002018201000186010001000100 +01010185000200010001 +860100010001000108018100010201810001010107008401000100018201000101018100 +010101830001000105018100018301000201810102810201840102000201830102010281 +020184010200010284020102010285020102010201010185020102010201830102010283 +020001028302000102820201028202010284020002010202028301020002860201020102 +010202028900020002000201020102020201010102870002000201020102010201008e01 +020102010002000102000200010288020102010200020102830201020188010201020001 +000102820201028202000202028400010201028202010282020002820201028202010201 +028101020102880001020100010201020702810002810201850100010001000200830100 +020184010200020081000201028101028102010501010201018202010205028501020102 +010283020100018401000201020502010102028101028102010301030202018202010281 +020184010002010281020085000200010001840102000102820201020302880002000100 +020002010101820201028102010301810201010103008101000100850100020001008100 +018101020102010101028101028102008100028102018201020101018200010201028401 +000201008600010002000200810002080201018302000102820201028502010001000104 +010302810102820201020102810002030283000201028102000200020281010201028301 +000201810102030201018100020102860002000102000284020102000289020100010201 +020001028202000101010100020181000184010200020182010002850201020100018401 +0001020101018700010001020100010101 +820100010b01840001000100820001008700010001000100018201000101018300010001 +820100010101810001010102008201000183010001008100018101028102018301020102 +82020102870201020001020002010281010282020102810201850100020001028b020002 +01020002000200010202028a000200020102010201020101010102850102010200028402 +000201028602010201020102830200010283020001020202850002000201028202010201 +028801020102000201000205020101010286000201020001020302810002870201020001 +000102010202000302810102820201028202010282020102820201008600010002000200 +810002010282010201810102010202010c02810001810102020284000100010081000102 +010602820102010101810201040182020102070282000100810002010201000302810102 +810201810102010201010202820102010401860200020001000283020001008300010002 +020201018300010002030281000203028201020103018a00020002000100020002008700 +02000100020002820201028b020100020002000100020002890200020002000200020081 +000285020102010201020101028500020001020182010001040101000102810002870201 +0201000100028a0201000200020001000102900200010002000100010201020100020002 +820201028202010281020082000102820201020502820100028202010201028100020202 +8101028c0200010201020102010001000101018100018501000100020182010001820102 +008500010201000201028400020100020102810002810200850002000200028102008300 +0100028302010001810100810002 +810001010183000100018801000100010001000101018100010201010082010001010181 +000182010001010184000100010085000100010001810100820001000100010181000181 +010282020002820201028302010201890102010200010201000201028201020101018700 +020102010201028d02000102010201020102010201020102870102010201020002020283 +0002010286020002010201028402000200028c020102010201020102010201028c020002 +000200020102010200028202000202028801020102010001000281020183010201028302 +010201820100028202000282020102010203008101020202810102820201028502000201 +000282020102840201020102820201028102018101028402010200010301820001020302 +810102010281000289020102000100010001008300020001850100010002008100028202 +010203020201810001020106028201020181010282020100010086020002000201020102 +810102050281010201020101010203018a02000102010201000200028502000200020002 +008502000100010201028100020402840001000102810201830102010282020102810201 +830102010282020102870200020001020002820201028202000282020102840200020102 +8402000100028b0201000200020102010201028202010285020102000100880001000200 +020100020102820102018101028a02000100020002000102018201020182010001030183 +000201020102820102010301010201018502000200010202028501000100010282020102 +050288010001000100010200020083010001028402010200028c02000200020102000102 +010002010286010001020100010101810002020283000200018201020182010201010181 +0001010181000185010200020001 +010181000108018100010101810001010102000101810001820100010101810001820100 +010101810001820100010101870001000100010001820100010101810001820102018301 +020102830200020183010200028202000282020102010281010202028200020181010282 +020002820201029002000200020002000200020102010201028a02010201020102000200 +028402010201028202010282020002850201000200028602010201020102010281010202 +028501020102000202028101020202850102010201028302000102820201020202810002 +840201020002020282000100860002000200010282020102830201020181010203028c01 +020102010002000200010002820201020402010102028101020702810102010202018200 +020181010201028100018101028202010207020601820201028302010201810102010284 +000102000201020400820201028202010282020102820201020102810002010202018100 +010101840200020001810102810201810100810002820201028102018401020001028202 +010282020102060281010202028300010001810102840201000200890002000200010002 +010282020102010286000201020001020102860102000102010281020083000201028602 +000102010002810200850001000200028202010282020102820201020402810102810201 +020183020102018701000200020001008400020001020102810002890201020100020002 +0102810200830001000283020100018301020102820201028c0201020100010200010002 +000183010201028602010201000201840100020002830200010202028500020102000284 +020002000201028100020102840002010002010283000201020102850002000100028302 +0100028302000200820002000000 +810001010181000102018100018201000182010001010181000184010001000101018100 +018201000101018100018201000101018100018201000101018300010001810100810001 +820100018301020102810201860102000102010284020102010284020102010201028100 +01890102000201000100010201028201020101018c020102010201020102000201020202 +850102010201028402010201028602010200020002820201028202010201028101028a02 +010201020102010201028502000200010282020100810002820201028402010201028402 +00010201820100028202010285020102000200850002010001028b020001020002000100 +020102030283000201028502010200010285020002000200810002810201810102010281 +01028302010201830102010207028300020102850200010002008d000200010200010001 +000102010203020101010285000100020102050281010203028200010001000102010005 +020101020282010002010281010201020201840201020102010201008201000202028400 +010002008100028702010002000200020102810102030203010102810102810201820102 +018101008200010086000100010002018601020002000102820201028202010201028300 +020100850002000100028202010201028301020100810002820201028202010281020085 +000200010001830100020101018202010287020100010002000181010203028101020102 +890002000200020002010202020401840001020100010001010402820100028602010002 +010201050188000200020001000102840200020002830201000284020001000183010200 +010101010002018100010101810001840100020002850201020102008300020002020281 +000285020100020002010282000200 +010181000103018100010301810001820100010101010002018100018201000101018100 +010101810001820100010101810001820100010101830001000101018100018401000102 +018101028202010202028500010200020186010201020001028602010001020102010286 +010200020001028202000202020101010282000102830200010284020102010281020181 +010282020002840200020102820201020202810102860200020002000202028900020002 +010200020002020285010201020102010281010201028801020100010001020183010201 +020202010182020102820201000100820201008700010002010201028202010281020101 +010302010185000100020002820200020102010181020182010201020105028100020102 +860102010201000102010102840002000102040282010002020281000201028300010002 +020282010002820200020102850001020102008300010002010281010282020002030282 +010002040285000200020001010185020001000102010282010200840002000102830201 +020081000101010502810102810201830102010281020183010201028202010282020102 +820201028202010282020102820201028202010206028201000282020102010281000201 +028101028502000201020182010002010201008701000200010201028402000200028202 +000201028100028402010200028102008b00020002000200020001000202028301020102 +820200020302020102020101840001020102020282010201030183020100028802010200 +020001020183010201029602010002010201020001020001020102010001020001020202 +85000201020002040286010200020102008100028102008400020001028b020001000102 +010002000100 +810001090186000100010001008200010083000100010101810001820100010101810001 +010181000182010001010181000182010001010183000100010101810002840201020001 +840102000201830102010283020102018301020102020288000201000201020102010281 +01028802010201020102010201028b010201020102010201020102840201020102020281 +010289020102010201020100028402010201028a02000201020102010201028a02010201 +020102010201028402010201028202010281020181010281020182010201810102850201 +000100020102810102820201028502010002000287020002000102010282020102030202 +010102810102830200020083000200028202010203028101028302000201830100010203 +028201020182010201010182000100820001028102008200020001000101070205010602 +010104028100028502000200010081000281020101018202010201028101020702010188 +0200010200020001008500010002000201028b0100020001020002000100020302810102 +030281000203020101820201028602010002000200010081010283020102018201020102 +010202030102008302000200830001000202028400020001020302810002020284000200 +010282020002820201020202010182000201830102010287020100010001020087000200 +010001000206028101028602000200020002020201008701020002000200020102860001 +0002010001020101028101020102850100010001028d0200010001020002010200020002 +8e0201000102000100010201000201008d00020100010002010200020100028302010002 +01028100028202010286020001020100020002 +840100010001840100010001820100010201810001010101008201000182010001010182 +000100810001010181000182010001010181000182010001010181000101010300010101 +028101028202010282020102820201029002000201020001020002010201000201028202 +010289020102010002000200029202000100020002000201020102010200020002840201 +02000284020102010282020002820201028602010201020102820201028c020102010201 +020102010201028802010201020002010286020102010001028702000200020001028302 +000102030283010201028302010201810102810200850002000200028202010202020101 +820201028502010200010203028400020001028202010201028201020181010202028101 +028202010206028401000200018401000100010101010281010201028201000201028100 +020302830100010201028201000282020002830201000282020100010081020084000200 +010203028100020102810002020282010002040203018202000201020101010286000100 +020002008100018101028402000201020502810102820201028402010001028502000102 +010282020102820201028202010282020102820201028202010201028101028a02010002 +010200020001028202010282020102820201028602010201020001840102000100850001 +0001000181010283020100028202010203028b0100020001000200020001028202000282 +020102020283000200020102890002010002000201000281020101018102010201020201 +018102010301880201020001000200020402810102020282010002010283000201028602 +010001020002890201020100010200020183010201028302000100820001008500010200 +0201880100020102000200020102840001020100 +0a0182000100810001010184000100010001008601000100010001010101008401000100 +018201000101018100018201000101018100018201000181010283020100028302000201 +830102010283020102018301020102840200020102010201010302820002018101028502 +010201020101018102018701020102000200020202850102010201020202810102860201 +020102010282020102820201028202010284020102010204028501020102010281020181 +010202028301020102010202018402010201020202860001000100010284020002010282 +020102010287000201020100010203028101028202010285020001020102030283000200 +020202810102020281000202020200030282010002030281010201020201810001810102 +810200840002000102020202010402060182020102810201810102820201020102820002 +010101010282000201010101028101020102810102020281010201020101010284010001 +000283020002008400010002008300020102040201018500010002000282020002010281 +00028102000100830102010282020102820201008c000100020002000102000102018501 +000201020181010202028301020002820201028102008100020102830102010281020102 +010202830002000282020102820201028302000201820100028202010282020002810201 +010182020102810201830102000287020102000100010201028101028202000201028301 +000102860200010200020003008502000100010282020002020201018202010202028301 +020102010282000102810200810001010187000102010002000282020002850201000200 +01880100010201020100020102840100010002830201000201028b000201020002000201 +02000283020100010001 +820100018201000101018100010201810001810100810001810100810001010181000182 +010001010181000182010001010183000100018201000101018100018201000101018100 +010101820201028102018701020102010002018901020002000102000102010283010200 +028402010200028202000282020102870200020102000200820002018601000201020002 +880201020102010201028402010201028202010205028101028402000201020102850102 +000201028102018101028102018101028302010201930102000201020102000200010002 +000200020102840201020102820201028202000282020102820201000200010284010002 +010282020102820201020202810102010281000281020087000200020002000202028101 +028202010201028101020202840100020102820200020102810001010187020001000102 +000201020401820200020502870102010001000102010283000100020102010081020004 +000202820100020202810002030281000283020002010101810201010185020102010001 +8101028102018601020002000100020083020001020c0288000200010002000201810102 +820201028202000286020102010200020102030103028b01000200020002000200010203 +028201020181010282020102810201870102010001000100010085020001020102040281 +010281020189010002010002010201028502010002010282020102060202008302000100 +010083010002010401810002050281000202028201020184010001000287020102010201 +0001850102010001028402000200028c020002010200020001020100028a020001000100 +0200020002010201008501020100020185010001000201820100018601000102010002 +060181000101018100010101810001810100850001000100010101810001820100010101 +810001820100010101830001000182010001010181000182010001010101008601020102 +01000282020102820201028a020102010200010201020183010201020102820001020102 +010101028500020102010283020102018301020102880201020102010200020202830102 +010284020102010284020102000282020102820201028402010201028202010288020102 +010201020002010281010283020102010101010281010281020101010302850102000201 +028102010201010283010201028402010201028602000100010002010282000102020281 +000282020002030281010282020102020281010282020002020288000102010201000102 +840201020102020281010201028100028102018301000200880001000100010201020a02 +050103020101810201890102010200010002010203020101020281010201028101020202 +81010203028601000102000201810100820002008d000100020002000201000200010082 +000102030281010202028300010201820102018101028202010088000100010002000100 +010083010001008100028102018301020102820201020102810002010281010203028101 +0202028f0002000200020001000100010001020101018402000200018201020181010201 +020101830201020181010284020100020189010201020100010200020602820001028202 +010201028701000200020001020202850100010201028102018101020402820001028f02 +000200010200020001020100020102830200010283020002010101810002010286000100 +020002018401000100010201830201000101018700020102010001028302000102840200 +020002 +010181000184010001000182010001820100010101010081010081000101018100010101 +810001820100010101810001820100010101830001000182010001820100010101810001 +830102000281020182010200810002830200020185010201020102840200020102020283 +000200028402000201028202000286020102010200028602010201020102010289010201 +020102010201028202010284020102000202028101028202010282020102840200020102 +810201870102010201020102840201020102810201810102820201020102860001000200 +020084000200010282020102020201018200010284020002000282020102810200820001 +0282020002820201020202810102820201028102010101830200020001008a0200020002 +000201020102820201020302010181020183010200020402810102030281000101018100 +028102018401000201028102018101028202010205028800010001020001000201028200 +01008a000200010201020002010201028100020102850002000100020202810102810201 +810102810201040183000102010101020202010102810102890200010201020102010282 +020102810201880102000200010001020102810100850001000100018201020101018202 +010289020102000100020002008400020001028202000201028200010283020102018101 +028602010002010201810102830201020185010002000201810102070202018202010282 +020102840201020102820201028202010203020101010203008901020001000200010201 +860102010201020181010203028100020102810102820201028102018901000200020102 +000102010284000102010082000102830200010286020002000201028a02010200010200 +0201020186010001020100010101820002008d00010001020100010201000100010101 +0a0181000101018400010001008100018201000101018100018201000101018100010101 +810001820100010101010002018100018201000101018200010282020102820200028402 +010201028202010289020002010002010201028402010201020102830102000282020102 +010284010201020183010200028302010201830102000202028301020102020281010202 +028100028602010201020102820200020102810102830201020185010200020102040283 +010200028402000200020102010182020102840201020102850200020102010101010282 +010002830201020183010201028402000200028202010282020002820201028202000282 +020002830201020181010282020102840201020102850201020001020102810002020285 +010201020102820201020102810102830201020103018202010284020002010205028101 +020302810102810201020101020201030201018202000201028301020102010202010402 +020101028100020202860100010001020181010202028101008100020102820002008600 +010001000200830002000207028101028302010201010182020102920201020001000200 +020001000200010001020102010102010185020001020102060281010281020181010281 +020193010002000100010002000102010002010200010204028201020185010201020102 +820201028302010201810102810201020101028101028402010201028102010101040202 +018202000204028201020101018702010200010001028202000281020101018600020100 +02000201028c00010201020001020100010001850100010201008400010200028102008b +00010200020002010200010201028100028a020100010201000100020182010001 +810100810001840100010001830100010083000100018101000100820100018201000101 +018200010081000101018100018201000101018100010101010002018100018201000189 +010200010200020001028202010282020102860201020102000285020102000102010285 +01020102010202028101020102820002010101820001028a020002010201020102000286 +020102000201028302010200830002010282020002820200028202010284020102000201 +028300020002860201020102010284020002000202028400020002000300810200810002 +030282010201840102000201860100020102000281020001008301000100010001028201 +000182010002010281000283020001028102000300860200020002010201028101020102 +01010302810102820200020a028100028102010301020281010282020102830200010203 +028600020001000100830002000284020100020085000200010200010001028400010200 +028202010205028201000205020301020281010282020102860201000102010282020102 +85020102000102820201028202010204028a000100020001020100020004008302010201 +8101028c0201020100020002000100020087000200020002000183010201028102018201 +020182010201010103028601020102000100830001000103010202810102820200010101 +820001000100020182000100010002010202860001000201020002008a02000100020102 +000200010201820201020902810001010102028301000102840201000102840201020001 +920100020002010200010201020002000102010285020002010001810102010203018100 +0284020001000188010200020102000201840102010001810100 +820100010601810001010181000181010081000101018200010083000100010401810001 +0101810001820100010101810001880100010001000100018a0100020102000201000201 +830102010287020102010002010286020002010201028c02010201020102000201020002 +020283010200028302010201850100020002018701020102000200028202010284020002 +000284020102000284020002000282020102040281010284020102010285020002000200 +810002010283000200028402000201028202010281020181010202028301020102010203 +018202010282020102020281010282020102840201020102820200020102830002000282 +02000282020102820201028202010203028101020702880100020002000201020b020201 +070201010402810102050205010102820102018101028202010201020101820201028202 +010201028301020102040281010204028300020001810102010282010201810100820001 +028302010200820001028302000100850001000100020102810001810102840200020102 +81020103018d020102000100010002000100010083000102018101028502010201000202 +028300020102820201020102830102000281020101018600010002000200870002000102 +000100030005028100028402010201028202010203028101020202880102000102000102 +010201810201060181020103010202020182000201830102010202028601000200020002 +8402010200028b0201000100020102000201028202000182010200820002010101810201 +82010001820100028402010001008100028c020002010001000102010001028902000201 +02000200020182010001 +810001820100018401000100010101810001010181000181010081000101018100018801 +000100010001000182010001010181000182010001010181000182010001020185000102 +010002820200028202000283020002008300020102020281000287020102000201000201 +028701020102010201020102830002000284020002010201028600020001020102020281 +000284020102000202028100028202000282020002820200028202000284020002000201 +028100028702010200010001020102920002000102010002000200020002000200020081 +00020202810102820200018101008300020001850100020002008c000200010002000201 +02000200820001028e0200010001000201000100020001008c0002000200020001020002 +000202028200020082000102820200028202000201028100028802000200020001000186 +010002000200020102030083020001020302810100890001000200010200020001008102 +008500020002010281020001008202010284020001000287020102000200010201028200 +020081000281020083000200018501020100010081000181010085000200020102860200 +010201000282020002020204008902010001000100010001010183000100010201030083 +010001000200030283000100010101830001000181010281020104018802010002010002 +010201020101010281010203028100028602010001000100030083010002000100810100 +820002008800010200020002000282020102830200020088000200020002000102030281 +010282020102890201000200020001000101018300010001840100010001010181000184 +010001000182010200810001020101000101010285010001020002930201020100010200 +020001020100010201000102810200810001010181000101010000 +010101000601810001820100018101000100010181000101018100018201000101018200 +010083000100010101810001820100010101810001840100010001820100028202010285 +020100020102820200028402000201028502010201000201028301020102840201020102 +010288010200020102010002010289000201020100010200020102860001020102010284 +020002010284020102000282020002820201028402000200028102018101028202010203 +028101020202830002000282020002040281010286020102000201028402000200020102 +010183000200020202810102010282010201010105028301020002840201020102010281 +000202028101020102830102010282020102820201020102810102840201020002840200 +020001810102820200018301020102010281010201028201000181010201028101028302 +010201010182020102040281010281020104010102010101028101020302020182020102 +840201020102040283010201028202010207028101020102810002850200010201028702 +010200010002008500010002000202028101020202080181000183010001000100860100 +010001000105018102010301820200028102010201830200010282020002010201000101 +010085010001000100080001028301020102010201010202010182020102020288000200 +020002000200010084020002010203028200020181010283020102018901020002010001 +020102840201020102810201810102030283000201028202000203028100028402000200 +020102810002020201008101020102810001030182020100860001000102000103018100 +01010181000101010100020181000101018100010001 +830001000101018100018201000182010001010102008201000101018100010101810001 +820100010101810001840100010001820100010101810001820100010101870001000201 +000201820102018201020184010201020181010286020102000201028702000201020001 +028202000288020102010201020001820100020402010182020001810102010281000202 +028100028402000201028202010202028101020102810102840200020002820201020102 +840100020002890200020001000200020088000100020002000200010083020001000400 +050283000201008a00010002000200020002008800010002000200010002008502000200 +020086000100010002000200850200010002008600020001000200860002000200010002 +008401000100020302840002000102810200860001000200020007000302810002010201 +008501000100020086000200020001000200810200860001000200010086000200020002 +008400020002008200020001008101008200010004008502000100010082000200010081 +010082000100010082020002010281010201020600810100020081010001008701000100 +010001000d00880201020002000200020102810002810201810102830200010285020102 +0002008400020001028202010282020102020281010201028c0002000100010002000102 +010201028201020182010201010182020102010282000200810002010286000200010002 +00820002018101020202820001028a020102000102000201020101018202010087000102 +01000100018201000103018c000102000100010201020100018401000200028202010282 +020002830200010284020002000201028200010281020081000284020100010282020001 +01010000 +850001000100010401820001008300010001820100018201000101018100010101810001 +820100010101810001840100010001820100010101810001820100010101010081020182 +010201810102840201020002820201028402010201028202010288020002010201020002 +020283000201028602000102010001820100028202010202028301000102020287010201 +020102010284020102010282020002820201028202000284020102010201028101028202 +010282020102010281010284020002000288020002000200020102820201028302010200 +030083010200020402820102010301040281010285020100020102010283010001020102 +810002010281000285020102000102820201028202010202028200010201028100020102 +810102820200010101850001000100020302810002030283000102010101010203018402 +010201020502820100010101030282010201810102830201020181010201020101080281 +000201028101028202000283020100018201020101018400010002008300020001010189 +000102010002000200010101020281000201028401020100010701820201009100010001 +000100010200020001000201020104018100020c02820102000200010286010200010002 +008400010002000200060281000203028200010282020002040281000282020002880200 +020002000100020202010001028900020001000100020002010201009502000200020102 +010001000100010201020100020102820200020102830002000201020100020202000202 +010001028100028202000282020002010281000281020101018100018201020081000101 +018a0002010200010201000100 +010181000102018500010001000101018200010001008201000182010001010181000182 +010001010181000101018100018401000100018201000101018100018601000102010002 +820201028102018301020102820201028402000201028602010200020002880201020002 +01020102010281000282020002810201810102010201010302830102010201028a000200 +010002000102010282020102840201020102820201028202010201028101028402000200 +020102010082020102010286000200010001008600010001000200010082020002820201 +020402810102040281010282020100820001000100810200020083020002000100810200 +880002000100020002008800020002000200020082000200010081010086000200020001 +008600010002000200860001000100010083000100020702860002000200020084000100 +010089000100020002000201020302840001000100860002000200010084000200010086 +000200020001008400020002008600020002000200860002000200020004008102008600 +02000100010086000100020001008700010002000100028202000202028a000200010001 +0002000100860001000200010004008102000100850100010001008f0001000100020002 +000200020002000202028500010002000101018400010001008100010101010083010002 +018101020202860002010002000282020002050283000201028102018601020102010201 +010182000102840200010002020282000102010201010102810102050281000182010001 +810102870200010200010001010186000100010200028102010101810002010202018102 +010101010001018100018501000102000101018700010201000200028402000201020102 +81000201028100020102840002000102 +820100018201000102018100010101810001010181000101018400010001008500010001 +000182010001010181000182010001010182000100830001000101018100018201000283 +020001028702010200010200028202000286020102010201028502010200010201028400 +020102008100028402010201020102850002010201020402850102010201028602010201 +020102820201020202810002840201020102010283010201028202010201028101028202 +010282020102010281000201028300020002020285000200020002010281010204028301 +020102040281010201028100028c02010002000200020001020102010283010201020102 +850002010201020102830102000201028400020102018101020102810102810201810102 +010285010201020102810201030102000302810002020281010283020102010401010201 +010602010181020102018202010282020102820201020302020105028100020702820100 +0283020100028102010201820001008700010002000201008100018b0102000100010001 +000100028302000102820200028102010201810002820200028102010201820002018301 +020102850201000200028302000100840002010002030201010202020189020102010001 +00010001820100018c010201000201020001000100020602810102810201820102018f01 +020102010200020002000200010200840002010201860100020002000101018d00010200 +020002000100010001008800020102000200020087000102010001000283020100010201 +820002018401000200028202000185010002010200010082020102040281010201028100 +02850201000200020102870001020002000201820100028302010001840102010001 +020181000184010001000182010001010101008101008100010101810001820100010301 +810001820100010101810001820100010101810001020181000183010001028202000281 +020190010201020001020100020001020002010286020102000201029302000201020102 +010200020102000201020100018b01000100010201020102010284020102010284020001 +000281020181010201028301020102820201028102018101028402000200020102810002 +010283000200020102810102010283010201020202810002820201020202830102000281 +020101018202010202028301020002020205008302000200020081020001008702000100 +020002008100028402010001008200020005000102900002000200020100020001000201 +000100010082020102810200810002060201018200020082000201810100830001000284 +020102000201028d01020100010001020001000200028302000100010001028500010001 +000283020002008100028402010002008100028402010002000100810100820001008100 +018401020001008600010001000200810001010182000100810002030281000201020300 +8101008a0001000100010001000100840001000100030083010001008d00010001000100 +02000200020002850200010002008c000201000200020001020100028202000282020102 +820201020102810102820200028102008200010003000102810002870200020002000102 +8202000101018f0200010001000100010001000102000101010102030182020102020201 +01820200010301810002810201820100010101010002018d000201020100010002000201 +020187010201020002010086000100010200010101830001000101018100018401000200 +01010186000102010002008400010001020002 +820100010101010002018100018201000101010100010181000101018100018801000100 +010001000182010001010181000182010001010101000201810001850100010201028202 +010282020002820200028402000201028402010201020202850102010201028e02010200 +020002010201020102000182010001020186000100020001020102820102018901020102 +010200020102020281000282020102010283000200020102810102820201028202000282 +020102010281010201028101028302010201810102040283010200028402010200028202 +010284020102010201028101028502010201000281020101010202810102840201020102 +820200028202010201028101020102010185020002000201010181020181010205028100 +020102810102010281000201028501020002000202028100020402830102000104010102 +810102810201810102050281000102010902820001028202010282020002010281010205 +028101020102010102028100010201820002008600010001000201840100010001810100 +830002000284020102000202020101830200020182010200020001020101810001820102 +018d01020001000102010001000100018401020100020102810002010281000202028301 +000102040281000282020002860201000100010084000100010083000201020202010081 +020104018200010081000282020100010001028101020202820002010401830001020102 +018b00020001000102010201000101018800020001020001000184010001000101018300 +0102018301000201850100010001028a0201020100010200010001010101008201020082 +000102830200020101018600020102000201880102010001020100020102820100018301 +020002 +860100010001000187010001000100010002000101810001820100010101810001820100 +010101830001000182010001010181000182010001840100010001010184000201000284 +020102000288020100020102010002020282000201870102000201020102860201020102 +010201028801020002010201000102018200020103018102018101020102810102010284 +010200010284020102010282020102820200028202010282020002010281000282020102 +010284000102010201028101020102810002020283010201028402010200020402010185 +020102000102010281010202028801000200020002010284020102010201028301020102 +820201028302010201810102040201008602000200010201840102010201810102810201 +810102810201010101028400020100020102810102070205018202010282020102010281 +010206028600010001000200890002000200010002000283020001028302010201810102 +0102810102840201020102010281010201028b0100020102010001020102018101000100 +820100018101028102010301820201020302810102020283000102010101830002000102 +01820200010101810201040181020102018102000100820102008100020d020401810001 +070102000101810002810201840102010001810100860001000100010285020001020102 +83020100018401020102018a010200010001000100010284020001020185010002010201 +040101020101830200020102018100010201810001010101000201010002018100010101 +810001840100010001810100810001010101000201810001010187000100010200020188 +01000100020102000184010002000101018300010201 +810001820100018401000100010101810001010181000102018100010101810001010181 +000182010001010101000201810001820100010101810001840100010001830100020182 +010201810102840200020102820201028302000201830102010202028301020102010281 +000202028100028d02000102010200010200020002018b01020001020001020102000201 +020101010201018700010002000201028202010201028101028102018301020102820201 +020102810002820201028202010202028200020181010288020002000102010002010283 +000201028402010201020202810102820201020202870102000102010002010201000102 +810102820200020102820001020202840100020002820201028402010201028202000206 +02830002000201028d000200010002010200020002000207028600020100010002820201 +020302830001000202028201020102018102018101028102018101028302010002810201 +830102010282020102030282010201030101020101010281010284020100010085000100 +020102810201820102018301020102810201040181020102018102010401840001000201 +060181000188010201000100010001020101028201000202028100028502010200010201 +028101028702010001000100018201000101018500010001000104010102810002830201 +020101010200820100018201000182010201820100028702000200010002018401000100 +010201880001020102000201028802000102010001000101018202000101018300010001 +840100010001010181000102018300010001820100010101810001010185000100010001 +020101000201810001010101000201810001010183000100010101810001880100010001 +020100010101810002 +820100010101830001000182010001010181000185010001000100010002018100010101 +810001820100010101010002018100018201000101018100018301000102820201028202 +010285020001020102830201020183010201028402010201029802000201020102010201 +020102010201020100020102010201840102010201020181020182010201840102010201 +820100020102810102010286010201000200028202010282020102010281010282020102 +820201020102810002820201020102810002020283000200020502810102810201020102 +028301000102820201020202820100020102830001000201020101820201028302010201 +830102010208020101810200880002000200020102010101050281010282020102040282 +010002010281010203028301020002840201000102010201018302010201810102030281 +010202028201020101018300020102840201020001810102820201028102018101028402 +010201020502030103028201000281020102010102880102000100020001028102010201 +810201080181020186010001020100010201810201020181020102018602010201020102 +8102018201020083000100018201000201028101020a0201018100010501860001000100 +010083000100028402000201020102010181000106010200030101008302000102830201 +020102018100010101830002010202028601020102010201020186000102010200010201 +810001030181000182010001040181000181010081000101018100010301810001820100 +010201810001010181000102018100010101830001000101018100010101010002018100 +028302010001810102 +030101000201810001820100010101010005010100020181000182010001010181000188 +010001000100010001820100018201000101018300010201840102010002820200028402 +010201028402010201028302010200810002010289000201020002010201020102830002 +010282020001010181000102018100010401020282010002020201010102020102028101 +028202010204028101028202000282020002010281000286020100010201020102810102 +010281010284020102010284020102010202028100028602010201020002010282010002 +030283000200020102810102820200020602810102030282000102840201020002810201 +020101028200010205028101020602820102018701020001000200020602030101028300 +020102820201020702810102010206010102810102810201830102010283020102010101 +010201010c02810002010283010001008200020084000201020102018102010201810201 +030181020103018102010301830201000181010281020181010285020102000201040181 +000105018200010281020183010200020102810102820201028a02000200020001000100 +010a01840001020102010281000285020001000100830001000182010001020181000183 +0100010284020102010283020001008a0001000100010001000102040282000102020201 +010100810201840100020001870100010001020001820100018401000100018201000101 +018100010101010002018100018401000100010101810001010101000201810001030181 +00018401000100010101810001010181000101010100 +030181000182010001860100010001000102010300020101008401000100018201000101 +018100018201000101010100020181000183010001028202010282020102810201830102 +010288020102010201000201850102000201028f02000201020102010201020102000102 +02020101810001020181000103018e02010201020102010201020001020101018a020100 +010201020102010201028100020502830102010201028101020102810102820201020202 +810102010202018202010281020182010002840200020102840201020102830200010201 +028101028902000100010001020102020281010282020102010283010200020102020101 +028101008500010001000101018202010282020102010282010201810102010285010201 +000102010283010200020402810002020281010206028701020102010201020502080102 +028201020101018202010282020102810201040101028101020202810102810201810102 +010201018300010001840100010201090181020102018102010301010282010002010283 +000102011501010083010001028202010206028200010283020002010501810001020101 +008601000100010201830102010201020501860001000100010001008401000100018201 +000184010001000107018402000201028102018201000205020100010182020001020181 +000182010201820100018201000107010100020183000100010301810001030181000101 +010100020181000101018300010001820100010301810001010182000201810100810001 +0001 +040181000101010100020182000100810001040181000182010001010183000100018201 +000101018100018201000102018100010101860001020001020182010201830102010281 +0201850102010200028b0201020001020002010201028202010282020102890200020102 +000201020081000182010201840100010201820102018101020502810102020281010201 +020101810201030182020102820201020102010182020002810201810102820201020102 +810102820201020202810102010281010202028301020102010281010201028100028902 +010002010200020002820201020502010181020181010201028101028102010101810201 +810102820201028302010201020181020181010282020102820201028102018101020502 +810102810201840102010201810102840201020002090202010202820102018101028202 +010206020601830201020103010202820102010201020281010204028101020102820001 +020202820100018101028102008300010001820102010201810201020184020102010285 +020102010201860100010001000102018100010501810001090181000102018102018201 +0002010201010202010182020102020281010083000100010c0106028401000100010101 +830001000109018a00020001000100010001000300020182000102010281010202028500 +010002010282020002820201008100010101830001000185010001020001060182000100 +810001840100010001010181000184010001000101018100010201810001010183000100 +01820100010101830001000101018100010101010002010000 +030101008401000100010101810001820100018201000104018100018201000101010100 +020181000182010001010183000100018201000101010102820100028902010200010200 +0102018301020002860200020002010288020002000200020102070201018b0201020102 +000102010200010201810001810102020281010201028301020102850201020102018201 +020183010201028202000282020102010281010201028301020102020281010286020102 +010201020102810102010281010281020101010302010182020100810002820201028202 +010282020102860200010002010287020100020102010202028101028202010282020001 +030181020181010001008702000100020102018101028202010283020001020502820102 +018301020100020002010c02020182020102020201010902050101028101020102020101 +028101028102010101020283010201020102820102018101020202890100020100010001 +0201020101020101020201018102010a0181000101018300010001180187000100010200 +01028c020002000200020100020100010301810001040189000100010001000100020402 +040181000103018900010001000100010001020183000100010701860001000100010281 +020181010203028101028102010201830001020182010001840102010001010183000100 +010101810001840100010001820100010101830001000182010001030181000184010001 +0001010181000102018100010101830001000101018100010101010002018100010001 +010183000100018201000101018100010101810001820100018101008100010301810001 +820100010101010002018100018201000101010100020181000282020002820201028802 +01020100020100020202810002850201020002018701020102010201028202000201028b +000201020002010200010001020181000106018602010201020102820201020102810102 +810201830102010204028101028202010201028101028202010201028101028202010202 +020101820201020102810102020281010284020002010289020100010201000201028502 +010001000282020102820201020602810102020281010282020102810201020181020102 +010102820102018701020001000201020302830102010201028401020102018101020202 +810102830201020181010202028101020402810102820201028202010201028101028202 +01020a020301850201020102010101010202010302010101020101020281010206028101 +028602010201020102840200010201110184000100010083000100012001840201000201 +01010102810102820200028202000105018100010801020202018102008b000100010001 +000100010001070181000103018300010001840100010001030185000102010201810102 +840200010001840100020001010101000201830002000183010001008100018201000102 +018100018101008200010081000102018100010101830001000101010100020181000101 +0101000201830001000101018700010201000100018201000101010000 +010181000101018100018201000101018100018201000101018100010101810001030181 +000182010001010101000201810001820100010101010002018300020102830201000202 +028101028502010201000286020002010201028a02000200020102000201028202010285 +020100020102810201030181000182010001020182000102010281010282020102030284 +010201020187010201020102010284020102010282020102010281010201028101028202 +000201028101020102820102018101020202810002010281010284020102010201028401 +020102008500020102010204020101030281010284020102010283020102018301020001 +010181020181010281020101010202830002010201028201020183010201020602010181 +020101010c02810102070281010282020102810201820102018101028202010282020102 +010281010201028201020101018202010281020181010201028201020101018302010201 +850102010201020302810102070201018100010401810001040181000105018100010401 +010005018100010401810001050181000105018100010301840201020102870200010002 +000201810102820201008300010001020183000100010501810201810102020205018300 +010001040102008601000100010001840100010001050183000100010201810201870102 +010201020102820200010101010001028201000101018202000103018100010101810001 +840100010001820100010101010002018300010001840100010001830102000101010100 +02018100010301810001010183000102018201000101018100010001 +030181000101010100850100010001008700010001000100010201810001010181000101 +018100018401000100018201000101018200010083000100010101010281010282020102 +8c02000201000200020100020102850200020102018b0102000201020002010200020102 +830002000281020108010100820200020902810102030281010283020102018501020102 +010201028101020102810102820201020102810102820201020202810102010202018302 +010201820100018101008300020002820201028202010201028101020202010181000282 +020002080205018102010101840201020102030201018202010281020002000102810102 +020202010102810102010281010281020101010102820102018201020181010203028101 +020202010182020102840201020102010283010201020102810102040201018102010401 +010203010202810102860201020102010208028201020181010202021a01850001000100 +012201010202018202010282020001810102840200010001120101028101020102820100 +0104018100010a0183000100010301820001000100820100010401810201080101028200 +0201010181000101018b0002000102000201000100018201000103018100010101010081 +020182010001010183020100010201810001010183000100018201000101018300010001 +8201000185010200010001010181000101010000 +020181000184010001000182010001010181000182010001010101008202000101010100 +010181000101018100018401000100018201000101018100018401000100018401000201 +028502000102010284020102010284020102010284020102010201020101920201020102 +010201020102010200010001020088000200020001020102840201020102820201020502 +810102020281010284020102010201020101820201028202010281020181010201028101 +028202010202028101020102810102010283010001028202010201028101028202010201 +028101028202010201028301020102810201020101028101020302810102010203018202 +010282020102820201028102018101020202010182020102050283010201028102018301 +020102020283010201020102820100020102020181020182010201810102010281010283 +020102018101028302010201010103020101030281010201020101810201810102820201 +020102810102010204018100010201810002820201020102810102030284010201020181 +01008a00010001000100010001008b00010001000100010001000104018c000100010001 +000100010001009400010001000100010001000100010001000100010081000103010202 +810102820200028202000201028101000100810100010084010001000105010202810102 +81020103018c000100010001000100010001008100010501810001020181000107018100 +010f01810001840102010001010183020002008200010081000104018100010201810001 +020181000101018300010001840100010001010181000102018100010101870001000201 +0200018401000100010101810001010182000100 +030183000100010101810001820100010101810001820100010101840002010001010181 +000101018100018201000101018300010001820100010601820001028102018601020100 +020102820201020202890102000200010200010205028e01020102010201020002010201 +02010301810201820102018101020a028100028202010202028100020102810102880201 +020100010201028202010201028101028202010201028101020202810102010281010201 +028101020102820001028302010201810102820201028902010201020100010002010285 +000201020102010281010201020101010283010201020102010102028101028102018401 +020102008100028202000282020102810201810102020281010282020102020281010201 +028101028802010200020102010204028501020102010281020183010201020302820102 +018501020102010203028101028302010201110181020181010281020181010202028100 +020302820102011801810001250183000200010101810201010101028101028302010201 +12010102810102850201020100010d018d00010001000100010001000100010101810001 +030184000201020104018100010801810001010101000501010284000201000103018100 +01010101000201830001000182010001030186000201000100018d010200020102010200 +0201000102810201880100020102000100010001 +860100010001000182010001820100010101820001008100010101810001820100010101 +810001810100810001010181000185010001000100810001010181000184010001000182 +010201810102820201028402010201028202010284020102010202028301020102010281 +010286020102010201028102018401020102010101830001000285020102010002030281 +000207028101020202010101028201020101010102810102010281010284020102010202 +020201030281010201028100020202810002010281010202028201000281020101010102 +850001020001028202000283020102018301000201810102080281010201028101028402 +010201020102830102000282020102830200010282020102820201028202010282020102 +020201018102018101020202820100020202010181020181010201028101020102830102 +010201028101028202010202028101020802820102010f01810201040109028101020102 +830001020104018100010401830001000103018300010001020183000100010301830001 +000102018300010001030183000100010301830001000106019102000100010201020001 +0201000100010001810100840001000100810001820100010e018f000100010001000100 +0100010001000109018100018101008100010e0183000100018201000102018300010001 +820100010301810001020101000401810001020181000101018302000201840100010001 +01018100018a010201000201020002000282020002010283000200028302010001810102 +82020001 +020181000182010001010182000100810001010188020001000100020001820100018101 +008100010101810001010181000182010001010101000201810001840100010001860102 +0102010002820201028b020102000102010200020102840200020102060281010201028d +010200020102010002010201020185010201020002050281010203028101028302000201 +810102020282010002010285000200010201010182020102820201020102820100028202 +010201028101020202810102010281010202028101020102810102830201020101018502 +010200020102018102010101020201010202010183020100020202810102820200020302 +830100010201028100028402000200018501020002000288020102000100020102850200 +020001020102820002008900010201000100010201840100010002010286010002000201 +020202820001028602010001000102850201000200010201830001000102018300010001 +020183000100010201830002000286020102000100020202830002000102018300010001 +020183000100010201850001000100010101010004018300010001040181000104018100 +010501810001040183000102010101040201018102010201830001000106018100010401 +070282010001110185000100010001810100810001050184000100020101018100018401 +020100010301830001000182010001060183000100018201000104018300020001850100 +010002018701000100010200018101020102810002850200020002018401000200018201 +00028a02010002000102010001028102008100010101 +0101810001830100010083000100018f0100010001000201000102010001000182010001 +050181000101018100010301830001000101018100018801000100010200010284020102 +0102820201020202850102010201028b0201020102000200010201028502010002010283 +020102018201020103018402000200020502810102030283010201028202010201028101 +020402880102010201020102018101028202010201028101028202010202028101020102 +81000201028101028502000200010289020001000200010201008200020102018c000100 +010001020001000100020302010081010288020102000200020102840200010002830200 +010281020101018100020102830002010202028301020102060282010200820002018101 +020102010181020181010204028301020102010203018302010201860102010201020181 +01020402040181020103018102010f018202010281020184010201000181010281020116 +0183000100011d0181000106018202010202028201020182010201840102010201820100 +010501810001010184000100010202020101810201080183000100010301830001000109 +018200010001000401810001020183000102008100010801810001030182000201020188 +00010201000100020102010100860201020002010283020001028402000100018e010001 +0002010200020102010002018401000200020102810002820201008100020102810002 +020183000100010101810001830100010085000100010001820100010101010084010001 +000101010100010181000182010001010181000184010001000182010001020181000202 +028301020002020283000200028202000202028701020102010201028202010209028401 +000100018701020102010201021002810102840201020102840200020002850201000200 +028202010282020002010281000282020002020281000282020102030281010201028101 +028302000201010182020100810001810102020201008101020202010081020101018102 +008100028102018101028102008200010202020100010281010281020082000102830201 +020081000203028601000100020102840200020002860201020002000202028300020002 +010285010002000200860002000100010086000100020001008400020002008600010001 +000100860002000200020086000100010001008600010001000100860001000100010086 +000100010001008600010001000200860001000200010083000100010101820001008600 +010001000100880001000100010001008700010001000100010101010082010001010185 +000100010001860100010001000103018300010001870100010001000201020183000200 +010f0181000105010402830001000104018100010e018300010001070188000100010200 +010001020181000103018100018201000101018102010101810201850100010001008200 +020187010201020002000281020182010001820102008a00020102000200020100010301 +820001028102008700010201000100010101810002820201008100020102810002810201 + +820001008100010101810001820100018101008100018201000101018100018201000101 +018100018201000105018300010001820100018201000103018100018401000100018201 +020185010200020102840200020102840200020102040285000201020002010288000201 +020102010201040181000202028100028402010201020302810102820201028202010284 +020102010281020181010202028301020102820201028402010201020102810102010281 +01028102018101020102810102020281010201028101020202010184000200020101018b +020002000201020100020002840201020100810002010285010200010002010202018200 +010282020102830200020188010200020001020102850201000201020102840002000102 +010283000200020102860102010002010282020100010004018100010101020201000102 +830102010083000102018401000100010201830002000186010201000100010201830001 +00010201830001000102018300010001010183020001028102018c010002010002010201 +020100010101820001008100010101850001000100010101810001820100010101030003 +018300010001020182000100810001020183000100010301020003018300010001830102 +000101018b02010201000100010001000101018a00010001000100010001028502010001 +020103018100018101000200820100010101810201040181000108018300010001020181 +0001030181000182010201010181020102018e0200020102000102010002010200028102 +010101940001000200020100020002010200020002010001020202810002840200010001 +010101008501020100010201028501000102010081000184010200020182010002 +010181000182010001010181000182010001820100010401810001010181000101018100 +018101008200010084000100010081000101018100018401000100018201000101018100 +028c0201020001020001020102000202028400020102018501020102010201028c010200 +020102010200020102018901000100010201020102050281000203028301020102820201 +028202000204028101020102810102010282010001840102010002850200010201020202 +850001000100020102810002020287010201000100020090000200020001000100020002 +00010002008a00020002000200010001008a000200020001000200020088000200010002 +000200880001000200020001008200010202028100028702000200020001008600010001 +000100850002000100028302010201830100020086000100020002008600010002000200 +860002000100010086000100010001008200010202020100850200010001008900010001 +000100010001840100010001040183000201028502000200010201020101830001020102 +018100010401810001040181000104018100010501810001040183000100010201830001 +000103018300010001020183000201020102810102830201000105018100010c01830001 +000102010102030101020c01830002000101018500010001000106018102010301830201 +0001820100010101010281010282020102860201020001020101018d0201000201020001 +020102010201010191000201020100020102010001020100010001840100020002850201 +000201028202000101018300010001010181000202028100028402010002010001 +810001010181000182010001010182000100010082010001010101008201000101018100 +018201000101018100010601810001010181000184010001000182010001010101028401 +020100028202010281020181010202028501020102010204028c01020102010201020102 +010201010181000181010209028101020302810102020281010201028101028402010201 +020602010183020001028102010301030281010201028101020102810002010201018302 +010002860201020002000102018102018301000201810102810200830001020185010200 +020002020283000100020102820102008100020302830001000201028101028202000282 +020102010281000281020185010002000102820201028202000101018602010200020102 +810201830100020101018402010002018101020102810002810201850102010002010301 +8100010401820001028202010285020002010201020181000104018100010c0182020102 +830200020183010201028102010201810001080181000103010100290182020001060181 +000105018100010401810001050183020102018101028202010201028201020104018102 +018301020102810201060181020103018302000102810200810001830102000282020102 +840200020102820200018201000287020002000201020088000201000100020001860100 +0200020002820200028402000100018201020082000102840200010002820200028a0201 +020100010200010001010183000100020102810001840100020002840201000201820100 +02 +010184000100010086000100010001008100010401810001880100010001000100018201 +000182010001010101000101810001020181000101010100020101028101028302000102 +870201020102000102810200850002010201020502010102028701020102000201008100 +010101840201020002820201020802830002010282020102820201020102830102010201 +028101020102810102840201020102830200010201028201020101010202810102010202 +018300010201810102820201028402000201028602000200010002010283000200018101 +028402000200020102010183000200028702010200020001020102850002000201020102 +01008201000201028200020081000201028400020001028e020100010001000102000100 +010002030282010001860100010001000286020001000100018601000200010001860100 +010001000186010001000100018401000100028802010200020001000186010001000100 +018701000100010001008600010001000100830001020101018100018601000100020001 +020183000100010201810001060181000103018300010001020183000100010301010004 +018300010001030101000401810001840100010001050181020182010201060101028101 +028102010201810001060182020102810201840102010201010181020103018202010201 +020301010281010282020102860201020002000182010002810201830102010285020102 +010201040183000201028202010202028301020102830201020101018802000102010201 +000102018100010301810001890100010001020100010283020100010201850200020100 +010101830201000283020100010101 +810100810001010181000182010001010102008301000100820001008100018201000184 +010201000101018100018201000104018100010301810001020181000101018302000102 +8a0200010200020102010002820201028a02010200020002000200020102820100028202 +000201028100010101810001830102010208028101020202810102820201028202010204 +028101028202010282020102040281000186010201020102010101850001000200020102 +810002020281010202028100020102820001008500010001000201028600010002000200 +8a00020002000100020002008a00010002000200020001008a0002000100020002000200 +820001028c02000200010002010002000200880001000100020002008500020001000186 +01000200010002860200020002000286020002000100018d010001000200020100010001 +000186010001000100018501000102010201028500020002000101010100820100010101 +010082010001020183000100010101890200020001000201020082000201020101000401 +830001000187010001000100010085000100010001030101000401830001000102018300 +010001030183000100010201830001000101010102010182000201810102840200010001 +810102010281010287020102000100010085000102000200010001018302010002840201 +000102810201810102820200018101020102840002000102820201028802000100010201 +020181010282020102830200020102018602010200020002850200020002008400020102 +008a000200020100020002000286020002000200028a0201000100010200020001010188 +000200010200020001880102000201000100020102830001000182010001810102010282 +00010283020002000200 +820100018201000182010001010181000182010001820100010101810001020185000100 +010001820100010101810001810100810001820100010101020085010200010001810102 +820201028202000285020100020102850201020100020202870102010201020102010281 +010201028101020102010183000100018101020202810102050283010201028202000282 +020102820201028202010201028301020102010281010201028101020402830002000101 +018300020102030281010202028101020202810102020281010203020101010283000201 +020202810102820201020202810102830201020183010201028202010202020101820201 +028202010281020184010201000288020102010200010201830102010281020182010201 +040181020183010200020202830001000181010202028200010286020102010001028502 +010201000104018100010401810001040181000204028100010401810001040183000100 +01020186000200010200010101880002010201000100010201830001000102018100010c +018300010001020183000100010201810200810001030183000100010301010004018200 +010203020401810201060101028201020181010202028501020102010281020101018102 +010201070281010283020102010101810201810102040283010201020902810002820200 +028202010286020102000200028202010284020002010283020102018301020102020289 +010201020102000100010101010086020102000100018d01000201020102000102000200 +0201028600020002010002840201000102020281000285020102010200 +010181000101018100018201000101010100010183000100018401000200010301830001 +000182010001820100010201810001040183020001028102008100010101010288010201 +000201000201840102000102840201020102010295000200020002000201020102010200 +010201020001020402810102050281000282020102820201020302810102820201020102 +810102010281010282020102820201020102810002820201020202810102010283010001 +020202810002020281010202028100020202840001000102010284010002000287020102 +000100010281020185010002000102850201000100018101028202010082000102880201 +020002000201028402000200010201830001000281020184010001000102010102810002 +810201020182000201850100020100028102018401020100010301840200010201020181 +000104018100010401810001010101028301000201030181000104018100010401810001 +030101000201850002010002018201020101018100010b01810001030101000b01830201 +000104018300010201030181000103010102810102830201020102018102010301810001 +020101028700020102010201028202010281020183010201020102810102820201028302 +010201010181020183010001020102810102820200020402830102000208028101028102 +010201820200028b02010001000201020100020081000288020002000200020002860200 +010001000184010002000203029c00010201020001020102000201020002000201020002 +010201000102018601000102010002840201020102040201000101 +830100010086000100010001008100010501830201000101010100010181000182010001 +020181000182010001060101000102810002830201000283020102008100028202000282 +02010282020102040201018c020102010201020102010201020102840002010200810001 +810102010283010201020202810102010281000202028101028202010282020102040281 +010282020102820201020102810102820200020202810102020281000282020102820201 +028202000203028100020202810102850200010001020102830001000282020102860200 +020001020186010002000201028202010081000282020102860200020002010283020002 +008900020102000100010001820102008100028102010101830002000102018200020081 +000101018200010082000201030181000201028200020086000201020002008100010101 +820001008100010101820001008100010101820001008100010101820001008100020102 +820001008100010101820001008100010101850001000100018401000100018201020101 +01010202018500010001000102018500010001000102018100010c010100810201020181 +000102018302010201810102010281010201028101020302030188020001020102010201 +830102010201028101020102820102018101020402810102030203018102010101010281 +010209028101028202010208028501020102010203028100020602010001028101028402 +000200010201810200810002810201020104028301020102010201018300010001820102 +008200010284020002000282020001010101028600020100020002010283000200018601 +000200010002820201020102810102840201020002 +820100018201000101018100010101020089010001020100010200018601000100010001 +840100010001010181000182010001850100010001028202000289020100020100010201 +028502010002010282020102820200029902010201020100010002000201020102010201 +020102000200018201000187010201020002010204028300020102010201010202810102 +820201028202010282020102050281000282020102020281000285020102010001810102 +010281010282020002010281010202028101020202830002010202028100020102850102 +010200028202010284020100010283020102018301000102030281000282020102850201 +0002010282020100810002030201010100810201830100010081000101018c0001000100 +020100010001000186010002000200018601000200010001860100010002000186010001 +000100018601000100010001860100010001000186010001000100028602000200010001 +860100010001000186010001000100018d01000100010001020001000100018201020086 +000100010201008300010001010182000100880001000100010001008a00010001000100 +010001028202010201028101020102810102010289000100020002000200028202010201 +028100020102880002000100020001028502000102010201028101020102830002010084 +000201000206028200010284020001020082000102010281000203028700020002000100 +028202000203028100020102840002000201030182020102810201010184020002000285 +020102000200810002880201020002000100028102010101820200028202000205028200 +010283020100018401020100020102940002000102000200010201000200010200020001 +0281020082000201840100010002820200010101 +020181000182010001010181000182010001020181020186010201000100018201000101 +010100850100010001008100010101810001830100010085000201000201810102810201 +810102860201020001020181010202028601020100020102810201810102860201020102 +010201028101020102010183000100018101028202010208028101020602810102830201 +020181010204028101028202010202028101020102850102010201028202010201020100 +810102820200028202000202028100020102860001000100020081000201020400010201 +008101008100028102000400010283000102008100028102000300850100010002008b00 +020001000100010001000182010002010288000201000100010001010181000101018100 +018201000103018202000283020102018401000102010201810001040181000103018100 +010401810001040181000183010201028202000104018100010501810001040181000103 +018202000101018402010200010201830201000182010201020181020102018202010201 +028101020102810102810201080102028101028102010101040201018202010201028101 +020102810102820201020102820102010101810201810102820201020402810102820201 +028102018101020302810102040281010288020102010201020102820201028202010201 +028201020183010201028202010205028501020100010201028200010202028300010002 +0102820002008100020402880100010200010201028f0201000100010002010002000201 +0200820002018901000100010201000102010283000201028202000102018c0200010002 +01000100010200020102810002 +820100010101810001820100010101010004018302010201020181000101018200010002 +008201000189010001000100010001020102810102820201028202010283020001028202 +000282020002820201028402000201028a02010201020102000100028202010201028100 +020102830002000101018602010201020102030281010282020002820201028202010282 +020102820201028202000201020201030281010282020002010281010205028501020002 +000201028100020102810002010281000202020101040281010202028301020102010282 +010201820102010201010281010282020102020281010282020102810201020182020102 +010205018202010287020100020102000101018100010201810001040181000104018100 +018101028d02000200020001020001000200018601000100010001860100010001000186 +010001000100019401000100010002010001000100020100010001000186010001000100 +018601000100010001860100010001000186010001000200010101010085010001000102 +010281000206028500020001000282020102010281000201028100020102820002008600 +010201020102820200020102810002010288010201000100010002830201000282020102 +030281010285020002000100810002010281000206028201000181010081000206028100 +020202840100020002010284000200010203028300020002010281000282020102010283 +010201020202810002820200020202810002890200020102010002010282020102020283 +010201020202810102010281010081000185010200020001820100028a02010201000102 +00010001010101000101850200020002018101008c00020001020100020100020002 +010085010001000100830001000104018102018701020102010200018201000182010001 +010183000100010201810001020183000201028302010002820201028202010282020002 +830200010283020102018401020102018501020102010282020102060284010201020181 +010086000100010200028202010205028101028402010200020102810002840201020102 +010281010204028101020102810102010281000202028301020102020281000285020102 +010002840201000102030282000102890200020001000200010084000200020001008501 +0001000100040083020002000b0085020001000100020088020002000100010001870100 +020001000100020002018200010081000101018200010081000101018400020002018601 +020102000201030181000104018100010301810001040181000104018500010201020182 +010002810201020181000104018100010201810201820100010201830201000283020102 +018301000102820201020102810102810201040102028101020302020101020201810201 +810102810201010101020201840201020102810201010101028101020502810102040201 +010b028101020302850102010201020402810102010283010201020a0201010102830102 +010201028101020102010186020102010201028202000284020102000284020100010284 +020002000203020100020287000100020002000290020002000100020100020001020102 +00010201820002018f010001000102000200020102000200018201000101018702010001 +02000102830200010283020002010101 +810001820100010101810001810100010004018302010201010181020104018300010001 +040181000101018400010001020102810102820200028202010283020002018101028302 +010002840201020002820201020202840102000200840002010201810102050203018300 +02010202028101020302810002820201020c028101020102810102010281000282020102 +010281010282020002020283000200028402010201020102890102010201000200020181 +010203028101020202830102010202028200010281020186010001000100028202010286 +020102010201028202010281020182010201070101028201020181010281020182010001 +190184020102010281020182010201820102010601810001050101000401830001000102 +018300010001010104020301820002010301850201000102018501000102010201028300 +020001010181020101018100018101028402000200028502010200020181010283020100 +020102810102830201000283020102018201000182010001010181000103010102810002 +060281000285020100020002080285000100020002820201028202000201028100020202 +8e0100020002000200020002000200018401000100020102830001000287020100010002 +000201028101020302810102840200020002060281000282020002860200020002010003 +008801000200020002000202020301820201028802010201020002000201028300010001 +840100020001820100010301810001020181000101018100010101870201000201000201 +81010085000102000201 +010181000182010001010181000182010001030181020182010001030181020105018300 +010001840100010001020181020181010281020181010287020102010002010282020102 +810201810102820201028402000201028602010201020102860201020102010283020100 +028102018101008100010101010283010201020502810002820201020102810102820201 +028202010282020102820201020102810102040281010201028101020202830002000284 +020102010201028801000200020002000202028e0002000100020002000200020002008a +00010002000100010002008200010005008102000b008301000100040085010001000100 +040083010001000200850200010001000200830100010015008301000100020083010001 +008600010001000100860001000100010086000100010001008400020002000200830100 +010002008702000200020002008200010001008101008600020002000200860002000100 +0102810200830002000201028200020081000201028c0002000200020100010001000181 +010082000100810001820102000100820100018201020083000200020302810002820201 +02010281000281020181010208028101020102850102010201020b020201020281010281 +020101010402810102040281010202028101028202010282020102030286000100020001 +02830201000181010202028101028202010001008102018101028102018b010002000201 +00010001000181010081000187010201020001020182010001820102018a010001020002 +0002010200850001020100018201000102018702000102000200018201020101010002 +810001010181000182010001010181000102018102018201000109018300010001010183 +000100010201820001008100028102018201020082000201810102830201020181010202 +028201000282020002840201020002860200020002000203028101020302820002018301 +020102030281000206028101020202810102820201028202010201028101028202010205 +028101028202000201028101020202810002830201000203028300020002010281000282 +020102820200020102810002030282010002020283010201028202000289020100010001 +000100028202010281020108018102010401810201820102010a01810001040182000201 +030181000104018400020102010101810001030184020001020184010201000104018100 +010201830201000101018802010200010001020181010083000100028302010002030282 +010002830200020182010001820100020102820001020202840100020002820201028102 +0082000102020201008202010201028a0002000100010200020002020202008402010001 +000200820102018601000100020102010282000200810002840201000102010281010207 +02820001028302000102820200020102830002010202028a010001020100010001000201 +028100028202010201028101028502010002000203028100028202010285020001020002 +850201000200028402010001020202890102000102010200010081000183010001008b00 +010001000100020002000281020104010102870102010200010001010101000201880001 +000102000100010101810001020183020102010201870001000102010002020281000201 +02810001 +840001000100850001000100018201000102018d02010201020102010201020102010301 +810001010181000182010001010182000201840102000102820201028202010282020102 +820201028402010201028102018601000201020102020281010202028601020002010200 +820001028102008100010101010283010201020302810102820201020302810102820201 +020102810102820201020102810102820201028202010203028101028202010202028101 +020102810002050281000281020101010100820102018701020002000200020102820002 +008100028702010001000200010101010081010082000100040081010005008101000400 +810100010085010001000100030001018200010002008301000100010081010002008301 +00010004008101000c008101000300010282000100860001020100010002008302000200 +810002010282000200860002010200020001000102820002008100020102820001008900 +020002000200020002020283000200020202830002000287020102000200010201020200 +030202000202810100830001000102018300020002830201020002000102810102010281 +000201020100810100830002010282020102060281010281020181010202020100830102 +010201028100028202000203028101020402810002040281010284020102010201028301 +020001810102010201010102820102018601020100010001820102010101830001000285 +020102010201840100010001040101028f01000200020100010001000100020102850201 +000102018201000182010201820100010101820200028502000201000182010001820100 +0102018802000102000200010201028101020002 +830001000182010001810100850001000100018c01000102000100020102010201010185 +020102010001820100010201020001018100028202010282020002830200010283020102 +018301020102820201028302010201810102840200020102840200020002010281010203 +028501020100020101018402010201020802810102820201028202010282020102010281 +010282020002820201020102810102050281010201028101020102810102070281010281 +020101018202010202028201020184010201020181010201028101028202010285020102 +010201030101028101028102010501810001020181020105018300010001030184000100 +010082000100010003010200830100010004008101000400810200100083020002000200 +830100020086000200020002008600020001000100020083020002008200020003008102 +008200020001008102008400010002000200830200020002008701000200010002008800 +020002000200020088000200020002000100880002000200020002008400020001000600 +8b0100020001000200020001000100010283000200020202840102010002010282000200 +850002000200020102810002820201020102880102010002000200020302810002010286 +000200010002000200010284010001000286020100020002018101008200020083000100 +018701000100020001028502010200010084000201000101018a00020100010002010001 +008100028402000200020102850102010001028302000201840100010001010101000201 +8700010001020002010201810001090183000100018c01020002010001000100020102 +810001010181000182010001010181000102018502010201020101018502010201020103 +010100860100010001000101018100028202000201028101028202010282020102820201 +028202010202028100020202850002000201020202870102010200020002010281010203 +020100010184020002010282020102060281010282020102820201020102830102010208 +028101020102810102020281000282020102030281010202028100020102810002010288 +000102010002000102010281010201028101020102810102840200010002860200020001 +00020102860001000100010081000101018b000100010001000100010001020183000100 +010801850001000200010101810201020101020301810201010181020101018102010301 +810201050101028101020802040181020181010284020102010202028301020102810201 +81010201028101020502810102820201020102810102810201810102820201020a028101 +020b02810102810201810102820201020302810102810201060101028101020102810102 +0402010102028101028202010201028101020c0281000282020002070283000100020302 +810102010202010102010101020101850201000102018201020181010081000285020100 +02000202028201020102019a000100010002010201020001020002000102010200020001 +000100880002000201000100010201810001010186000100010201008200020184010001 +000283020002008400010200028502000201020081000101018300010001810100010002 +02870002000201020001 +010181000101018200010081000104018102018201000101010102030181000101018102 +010701810001830100010285020100020102820200028202010282020102820201028902 +01020002000102010281020181010202028d000201020102010200020102010281020101 +018402010201028202010201028301020102840201020102010281010282020102040281 +010282020002010281010282020102030281010282020002020281010202028100020302 +81000282020102830200010282020002840201000102820200020302820100018101028d +02010001000102010001000102018e010001000100010201020100010001860100010001 +000101018500010001000189010001000100010201008600020002000100860002010200 +010082000200010081010004008301000200860002000100020084000200020002008302 +000200860001000100020086000200020001008600020002000200820002000100810200 +860002000200020002008502000200020086000200020002008800020002000200020086 +00020002000200020087020002000200020002008302000200020081020008008b010002 +000100010002000200810002030281000201028100020102850002000200028202000201 +02810002820201028a020001000200020001000284020100010293020002000200010002 +00020001000100010002008c000200020001000200020001008200010084000100010087 +000200020001000182010201810100820001028a02000201020102000100018401000100 +010101020201008402000201028a02010201020102010200010201820002010201810001 +050101008101000100860102010001000105018102018101008600020100010002 +0600030183000100018201000102018e0001020002010001020102000200018401000100 +018501000100010282020002830201000282020102830200020183010200028202010284 +02000201028502000200020181010203028b010200020002000201020102840201000201 +810102080281000284020002000201028101028202010204028101028202010282020102 +060281010201020101020281010202028101020202810102050202018202010282020102 +050202018602010200010201830102010201028101020202820100010401810001050181 +000104018100010501810002810201020181000201020101010205018100018101028202 +010201028101028202010282020002810201840102010002850201020102018101020102 +810102850200010201020102810102820201020302810102810201810102020281010282 +020102080281010201028301020102010281010201028401020102018301020102010281 +010204028601000201020102010281010201028101020102830102010281020109010102 +010102028101020802810102060281010288020102010201020002960201000200010201 +020100020001000100020001000102820201028202010282020102810201020183020102 +018301020102820201028802010001000201020102018202010286020100010002010301 +8f0001000100010201020002010200010086000100010002010101810001880100020001 +000102018201020082000201840100010002830200020082000102830201020182010001 +8501000100020182010001860100010002000283020102018101020102 +820100018201000101010100820100010a018302010201010183020102010b0182000102 +820201028202010281020086000200020001028402010201028502010200010201028301 +02010204028b010201020102000201020102020283010201028202010206028101028202 +010282020102030281000282020102010281010205028100028202010203028101028202 +000203028100020102810002020281010204028f00020002000102010201000200020102 +890200020002000100010284020002000283020100028f02000102010001000102010001 +0002008c000200010001000100010001008800010002000200010201028100020a028500 +020001000285020001020102850200010001028802010002000200010282020102820200 +020102810002820200028602010201020002040281000204028100020402810002820200 +020102810002820200028402010001020302810002010281000284020100020087000100 +020002000202020100820201020102020086020100010002008400010001000300870100 +01000100010202028100028d020002000100010201000102010283020001028102000100 +840100010201850100020002018201020002008101028902010200010002010201850100 +010002019a01020100010200010201000100010001000100020002000102010281020087 +000200010001000103010100830102000285020102010200810001010183000100018401 +000200028202010083000201028102010101880201020001000100018201000102018100 +010101810201020181000182010201820100010201810001040181000284020100010284 +0200010002 +8100018301000100840001000100810001840100010001820100018c0100010001020001 +00020100010a010202810002820201028502000102010282020102820200028302000200 +870002010201020102860201020002010283020100028602000200020102020282010002 +0c0281010284020102010201028101028202000282020102010281010201028101020102 +810102820200020202810102010281010202028101020102810102030282010201830102 +010201020101840201020102010281010204028501020102010286020102010201028202 +010283020102010101810201020181020105018202010281020103010302810102820201 +020302810102080281010202020101020281010203028101020302810102820201020202 +830102010203028101028202010282020102030281010201028101020c02010182020102 +820201020102810102820201028102010201010281010281020181010202020101010201 +01010281010282020102030281010201028101020102020102020f010102010182020102 +810201820102018101028102018201020181010283020102018201020101018302000201 +840100020102830201020102010102010182020102820201028102010101830002000101 +018500020002010282020102820201028302010001820100018201000101018202010289 +020102010200010002010201010084010002000101018202000284020102010087000102 +010002000184010001000194010002000200010201020002010200010001020001810100 +0100910201020002000201000100010001000100018101028302000201010103020001 +020101000201810001820100011201810201010181020106018202010201028101028202 +000282020102820200028402010201028202010286020102010201020202860102010201 +020182010002820201020102810102860200020102010202028301020102040281010201 +028101028202010282020102820201020102810102820201028202000202028101020102 +810102020281000201028101020302810002020283010201020102810102010281010201 +028601000102010002830201000286020001000200028502010002000201028100028202 +01008e000100010001000100010001000100820001028402000100028202010282020002 +840200010002010283000200028502000100010284020002000282020002070281010285 +020002000200850002000200020102810002020285000200020002010284010002000202 +028100020102810002820201008300020002820201020702840001000200840001020102 +040282010002880201000200010001020302810002010281000282020100810002030281 +000201028100020102010095010001000100010001000100010001000200010201028502 +01000200028502010001000282020102850200010201020102820102019a010002000201 +000200020001000200010001000100010001020102820201028202010283020002010201 +830001000101018202010282020102860201020100020002000101010004018300020102 +830200020101018102008100010101820001008700010001000201028402000201028302 +010201040101000201830001000183010001008400020002018401000100018801000100 +0102010001020189000200010201000100020102810102 +010082010001840100010001820100018401000100018201000184010001000182010001 +8401000100010a0102028101028302000102820201020202810102820200020202860100 +020002010202028901020102010201020002010201010502830102010282020102860200 +020102010207028101028202010201028101020102810102820201028202010202028201 +000282020002060281010202028101020202810102040281010282020102030202010102 +810102810201040181020105010102010183020102010301810201020181020103010102 +810102030205010602010182020102820201020302810102030281010282020102820201 +020c02810102020281010202028101020802020182020102820201020102810102020201 +0181020102010802010181020102010e0202018102018101020802080101020301810201 +0d0101020401010201018202010282020102810201830102010282020102820201028202 +010281020184010001020103010102810102820201028202010281020190010001000100 +01000100010002000201028202010281020184010001000181010086000100010201028a +020100010001020001000181010081000102018800010001020102000286020102000200 +0281020083000100018401000100018b0100020002000102010200028102010101850001 +020102019601020002010201020002000201000100020100010001028302000201020182 +0201020002 +020182000100830001000121010102810102810201810102820200028202010283020102 +018301020102840200020102020284010201020191010201020002010200020102000201 +020102010283010200028202010284020002000207028101020402810102820201020502 +810102820201020102810102020283010201028102018101028202010203020101010283 +010201020202010182020102010281010201028100028102010101010282010001010186 +020100020001020202870001000200020102030281010286020002000100018201000201 +028100020202830002000282020102020281000282020002010285000100010002840200 +020002010283000200028702000200010201008300020002030281000204028200020081 +000204028101028902000201000100020002820200028302010002050282010002020281 +000201028100020102820002008200010282020002010281000201028101028602000102 +0100020102010002028a0001000200020001000100970001000100010001000100010001 +0001000100010201000285020002000102820200020102810002a5020102010001000100 +010002000102000100020100020002000100010001000100010002000282020102820201 +0283020102010a0101028101028402010201028702010001000100010301010087010002 +000201020086000201020102008100010101830001000102018300020102840200020102 +830201020102018202010081000101018300010001010182020100010002018300010001 +02018100010201810001870100010201020001850102000102010101 +010083010001008300010001820100018401000100018201000182010001840100010001 +820100010d01810201810102820200028502000102010282020102840201020102820201 +0204028301020102040281010201028b0102010201020002010201020202810102860200 +020102010284020102010282020102040281010282020102820201020202830002000202 +028101020202810002010283000200028202010203028701000200010201020102860102 +010201000203028100028202010285020001000201830102000283020102010101020205 +018100018a0102010201020001020102830201000201028101020b028101020302010104 +02810102810201830102010201028101020b028101020302810102060281010203028101 +02050281010283020102010101010281010208028201020102010a028301020102020281 +010281020101018302010201030181020101018102010301010281010281020113010102 +810102820201028102010601810201810102820201028202010281020184010201000101 +018100018301020102820201028202010285020102010201010181000192010001000100 +020002000100020100020102010101830001000101018d00010001000102010200010001 +028302000201010181000102018300010002860201020002010286020002000201000100 +010286010001000100018b01000100010201020001020181010081000101018202000188 +010002000201020001020183000100010401810201830102010281020101010102 +810001820100010101810001220181020181010282020102010281000283020102018201 +020183010201028502010201020187010201020002010201028101028202010203028300 +020102040283010200028602010200020102010285010201020002820201028202010282 +020102010281010282020102010281010202028101020102810102020281010201028101 +020302810102010281010282020102010281010201028601020102010201810102030202 +010202070101021801010201018202010209028201020186010201020102010601030281 +010205020101890200020100020102000201020100850100010001028502000201000201 +028400010002008100020202810102010281000286020100010001020802860002000100 +01028e0200010200020001000200010001008c000100010001000100010001008e000100 +010001000200010001000100940001000100010001000100010001000100010001008500 +010002000282020102820200028f02010201000200010001000100010002990201020001 +00020100010001000100010001000100010002000282020102820201028102010c010102 +81010284020102000287020102010001000102018a000102010001000201020084000201 +020181010081000101019400010001020102000200020100020001020102010286020102 +000100010101830001020182010001010183020002010201810001020183000200010101 +8100010101870201020102010001840100010200 +010083010001008200010083000100018201000184010001000182010001840100010001 +820100010c01010201010102010185020100020002820200020202810002820201020102 +810102860201020102010201028301020102010281000285020102000201810102010281 +01028402000200020302830102010201028101020102810102820201020c028100020202 +81010202028100020202810102010281010282020002010281000203028d000200020001 +000100020002000201029000010001000200020002010001000100028802010001000100 +01008e000100010001000100010001000100890002000200020002000283020100028902 +000200020001000100820001028402000200028302000201860100020001000207028101 +02010283000201020102830102010201028101020a028101021102830102010281020102 +010102020181020101018202010281020183010201020102040181020103018202010201 +020101810201020102028101028102011201010281010281020107018202010282020102 +820201028202010283020102010101810001010181000101010102810102820201028202 +010281020103018100019201000100010002000200010002010002010201010181000102 +0101008a0200020001020102000102840200010001020181000102018400020002018501 +020002000284020001000101010100010202019000010001000201000102010200010200 +018201000181010084000201020001008602010002010201020101000301010202018502 +0102010201810102 +01018100018301000100810001200102028101028102018c010201000201000200010201 +028202010202028101020102810002860200020102010201028501020102000201028200 +020186010002010201020202810102020281010282020102010281000286020102010201 +020102810102010281000201028101020102810102820201020202810102030281010282 +020102030281010204028101020202860102010201020101018102018301020102810201 +810102810201010183020102018101028102010101010282010201120181020181010201 +028101020202810102020281010284020102010281020102010102830102010282020102 +0202890102010201020102010203028101020902010101028101020b0285010201000102 +850201000100028102018201000201028101028202000101018600020102000100880002 +010200010002018e0102000200010001000100020002008e000100010001000100010001 +000100920001000100010001000100010001000100010083000100028202010201028101 +029102000200010001000100010002000100010282020002970200020001020001000100 +010001000100010001000200028202010282020102810201080184020002010282020102 +820200028202000103010100820100010201880201000100020102008200020101018300 +020001030181000101018f02000200020100020001020102010201010183000100018201 +020081000101018100010201810001020183000100010101830001000102018102010201 +810201010181000182010001810100 +010082010001810100830001000184010001000182010001840100010001840100010001 +820100010a01820201028102018101028202010282020002820201028202000202028100 +020202830002010204028b00020102010201020102000201028201020186010201000201 +028202000202028100028202010284020102010285020100020102010281010282020102 +820201020202810002020281010201028101020202810002010281000202028401020100 +0202028101020102820100028d0201020102010201020100020002860201020102010285 +0201000200020102810002010286000200010201008c0001000100010001000100010089 +0001000100020002000202028900010001000200020002820200028202010201028c0102 +000200010002000100020081000206028100020102840001000102820201028202000204 +028800020001020100010286020100010002010101860001000102010281020081000287 +0201000200010001820100018401020002018101028d0201000102010201000200020102 +8102010c0101028101028202010283020102011201810201060183020102010101010281 +010283020102018101028102010301810001010184000102010282020102820201028302 +01020107018e000100010002000200010002000201040181000102018600010200010002 +820201028802000201000100020101018100010101840200020002860201020002000284 +02000200010101010083020102018d010001000100020100010201020188010201020001 +0201008500020102010083000201028b0200020102010001000102018401020102018301 +020102840201020102 +83000100018201000101018100011f010102010101020101820201020302810102820200 +028402010200028602010200020002020287010201020102010201028600020102010001 +840100010001810102820201020202830102010203028101028202000101018302000102 +010281010282020102060281010201028101020202810102010287010201020102010203 +028101020302810102010202010102030186020102010201028302010201810102010281 +010202028101028302010201820102011101820201020302810102060284010201020101 +018402010201020902810102010202010102810102030281010282020102010281010281 +020101010202020181020105018202010281020183010201028302010201010183020102 +018101028102018101020102030182020102820201028202010281020101018102010501 +010204010102820102010701830200010081000101018500010001000101018600010001 +000100860001000102010295020002000100020002000100010001000100010201028202 +00029a0200020001020001000100010001000100020001000200020001028102010c0101 +028101028202010285020102010001840102010001010184000100010288020100010002 +010200810001020183000100010201820002010201020001018700010001020102010201 +830200010083000100018201000181010085000102010001020102008501000201020081 +00010a0181000183010001020002 +810100840001000100830001000184010001000182010001840100010001840100010001 +820100010901010281010282020102810201810102820201028202010284020002010284 +020102010286020002010201028202000282020102820201020402810102850200020102 +018101020102830102000284020102000201028301020102820201020302010104028101 +020602810002010281000202028101020202810002020284010001000282020102030281 +010201028d01000200010001000100010001020202830002000203028101020702810102 +83020002008e000100010001000100010001000100830002000201028400020001008100 +028702010002000200020502850102010201008100028202010282020002820200028f02 +010002000102000200020002000200880001000100010002008a00020001000100010001 +008800010001000100010088000200010002000100880002000200010002008a00010001 +000100010001008a00010002000200010002008c000200010001000100010001008b0002 +000100020002000200010401810001050181000107018302010201070182020102820201 +028202010201028201020104018100010101810002820201028202010282020102810201 +09019000020001000200020001000200020100010201810001820100018101028f020002 +000200010002010201000100010201820002010101850001000201028402000200018501 +000200020186010200020102018a01000100020002000200028102008300010201830100 +020101018b0002010001000100020102010a0189020102010201020102010201 +810001010101002501810201810102820201028302010201010183020102008100020202 +830002000284020002000201020101010281000282020102020201010102020184000102 +010201028101020202810102030281000282020102820201028302010201810102810201 +010182020002020281010201028101020202810102030281010201020101040281010203 +02810102830201020108018202010209020501820201020102820102018201020110010b +028101028202010281020101010102810102820201020402810102820201020102030101 +020101810201040101028301020102010281010283020102010201010281010283020102 +018101028102018101028402010201020102100182020102010281010283020102010601 +020281010281020103018102010401810201020101028101020102130101028101020102 +810102830201020106018102010101820201020102810102820200028102018101008300 +010001900100010002000200010001000200010201020181020106018202010282020102 +84020102000281020081000106018300020001850102010001028c020100010002010201 +000100010201830001000182010200010087010200010001020107018100018501000200 +020185010001000201030181000189010002000201020102010101810201060186020102 +00020002 +010181000101010100080181000108018100010b01810201810102820201028102018201 +020181010202028101028202010202028301020102840201020102010281000201028101 +020102810102030281010081000102018400010201020202830102000201028101028202 +000282020102820200020102810102810201810102030281010202028101020202810002 +030281000283020100020402810102020281000201028f00020001000102010001000100 +0200020b020100870100020002000102850200010001008e000100010001000100010001 +000100840001020102840200010002840201020002860201020100020083000100020202 +8c0100010200020001000100010088000200020002000100880001000200020001008800 +0200010002000100880002000100020002008a0002000200010002000100880001000100 +01000100880001000200010002008a00010001000100010002008a000200020002000100 +02008a00010001000100010001008e000100010001000100020001000100900001000100 +0100010001000100010001008c0001000100010001000100010286020002000200028202 +010290020001020102010001000100010001020081000282020102820201028102010b01 +8e0200020001000200020001000100018201000103018302010201010184020002010283 +020100018301020100810001010183000100010201830002000286020102000200028402 +01020001010183020001028c020100020100020002000200028302010001020183000100 +0189010002000201020102008100010b01850201020102010601 +81000101018100018401000100018201000182010001050183000100010f010102810102 +010281010282020102830201020181010284020102010202028101028602000200020102 +030281000205028401020002010101860001000102000205028101020302810102030281 +010204020101840001020102040281010282020102040281010202028101020202010103 +0281010202028f0102010201020102010201020102010209028101028102010101010201 +010102030181020110018202010205028301020102830201020101018702010201020102 +018101028702010201020102018101028202010281020101010102830102010201020201 +010201018202010282020102810201020181020106010102810102820201028202010283 +020102010401820201028302010201010101028101028102010601830201020101010102 +81010283020102010d010202810102830201020111010102810102810201030181020107 +018202010282020102820201028302010201020101008801000100010002000289020002 +000100020002010801010203010102810102860200010001020083000100010401840001 +000102840201000102860201000100020101018300010001020186000200020102008100 +020102830002000109018900010200020002010201840100010201810100810001010101 +0281000184010201020108018702010201020002010001 +810100850001000100012001010201018102018101028202010282020102030281010283 +020102019e01020102010002010201020102000200020102010201020002010201000201 +0201820201028202010284020002010201028301020102820200020c0283010201020102 +81010202028101020202810102020281010202028101020402810102030281010201028b +0102010201020102010201020d0283000100020602850100010001008c00010001000100 +010001000100870002000200020002010282000200880001000200020001008a00020001 +000100020002008800010002000100010088000100020002000100880001000100020001 +00880002000100010001008a000200020001000200010088000100010001000100880002 +00010002000100880001000100010001008a00010001000200010001008a000200010001 +00010001008a00010001000100010001008e0002000100010001000200010001008e0001 +000100010001000100010001009100010001000100010001000102010201000282020102 +01028101028e020002000100010001000100010002810200830002010282020102830201 +020107018302010201810102860201000201020102018300020001060181000181010284 +020002010282020102850201020100010201850001000201028602000200020102840200 +020001020181000102018100028b02010200020001020102010284020002010081000101 +018500010001000188010002000102010001010181020103018102010201830201020106 +01810001 +010181000102018100018401000100018201000102018100018201000111010102810102 +010281010282020102820201020202010182020102020283010200029502010200020102 +010200020102010201020002000201010184000102010282020102080281010282020102 +820200028202010282020102010283010201028302010201810102010281010203028101 +020702830002010201028101020302830102010283020102010101010285010201020102 +820200020502810002010283010201028102018101020102820102010a01020205010402 +840102010201820102018401020102018301020102850201020102010201010201018202 +010285020102010201020181020106018202010282020102820201028302010201060101 +028101028202010282020102810201090101020201020201018102010201010207010102 +8101028202010201028201020108018102018301020102820201020102820102010b0181 +020103018202010281020101018102010601820201020102810102820201028202010283 +020100010201810001020185020100020102820201028302010001010183000100010101 +810001850100020001028202010282020102840200020102940201000100010001020102 +000200010200010001028502010001000102018300010001890102010002000201020081 +000285020100020001860102010001000102018b00010201020002000201000182010201 +01018c00010002010201020102010201080188020102010201020102 +820100018401000100012001010281010281020181010282020102810201830102010282 +020102020281010202028301020002820201020102870002000201020102050281010081 +000101018300020102030283000201028202000201028101028202010282020002820201 +020102810102010281010282020002070281010202028201020102010502810102030281 +010203020201810201010101028101020d0201010502820102010401820001008c000100 +010002000200020001008500020002000286020102010002008a00020001000100020001 +008800010001000100020088000100020001000100880001000100020002008800020001 +000200010088000100010001000200880002000200010002008a00010001000100010001 +0088000200020002000100880001000100020001008a0001000100020001000200880002 +000200020001008c000100010002000200010001008c0002000100010001000100010090 +00010001000200010001000100010001008d000100010001000100010002000201028100 +028202010292020002000100010001000100020001000200028102008800020100020002 +000101018500010001000184010200010282020102820201028302010201820102010801 +820201028402010201028602010200010001020181000102018c00020002010201000200 +020102840200010001020183000100018901000200010200020002860201020002000282 +02010081000104010100010185000200010201090181020104018102010601810001 +020181000181010081000184010001000182010001020181000182010001110101028101 +028102018201020181010283020102018301020102840201020002020281000202028101 +020102810102010281010287020002010002000102018200010202028101020702810002 +090283010201020102810102020281010282020102010281000204028301020002840201 +0201020102810102030281010201028101028602000200020102820200020c0285010201 +020102820200020102810102010284010002000108010102810102840201020102060201 +018602010201020102830201020182010201070182020102820201028402010201028102 +010701010281010282020102820201028102010501810201020101028101020102830102 +01028102010a018202010282020102810201020181020107010102820102018101020102 +820102010d01010281010201028101028302010201120183020102010701010203010102 +810102870201020102010201820100010201810001010101028101028202010282020102 +810201030192000100010001000102000200010002000201028d02000201000100010001 +000201028d02010200020001020002000102018401000100010201950001000201020100 +020002010201000201020102000102018f00010001020102000100010200020001880102 +010002010201028b0201020102010201020102010a018602010201020102 +830100010083000100012001010285010201020102820201028202010282020102820201 +020202810102020283010200020202810102030281010204028201020183010200018301 +020002820201020202810002050281010205028100020102810102070281010201020101 +040281010282020102820201020102010105028101020302810102810201830102010283 +02010201810102820201020502830102010206028101028302010201060181020106010a +020201810201070184020102010288020102000102010201840100010001010189020002 +010200010002008a00020001000100010002008600010002000100880001000100020001 +008a00010001000100010002008800020002000100010088000100010001000100880001 +000100020002008a00020001000100010001008c000100010001000200010001008c0002 +00010001000100010001009000020001000200010001000100010001008d000100010001 +000100010002000282020102860200020001000288020100010001000102820200028202 +010201020100960201000200010001000100010001000200020001020102820201028302 +01020106018202010282020102820201028b020102010201000100010001020181000102 +019100010002010201000200020102010001000102018400010001009400020001020002 +00020001020001000102010200010201830001000101018100010b018302010201040183 +020102010401810001 +820100010101830001000184010001000182010001020181000182010001110101028101 +028202010201028101020302830102010284020102010202028100020102810102820201 +0208028101028102010301850002010201020b0281000202028100028202010203028101 +020402010103028401020100020402810002820201020502810102060281000284020102 +010082000102010281010207028301020102820200028402010200020102850002000100 +0286020100020001008c000100010001000100020002008a00010001000200020002008a +000200010001000100010083000100018401020001008100028202010284020002000182 +010001010181020101018402010201028302010201810102810201070101028101028202 +0102010281010283020102010c0101028101028302010201080183020102010401810201 +820102010801810201030101028101028302010201210101028101020102810102820201 +028102010601810001020183000201028202010282020102010207019000010001000200 +020001020001000200010201810001870100010001020102840201020102820200010101 +860200020001020184010001000102019200010002010201000100020102010001020102 +81020081000103018300010201810100870002010200010201050101028a010201020102 +0102010201040181020102010102870102010201020102 +0201810001820100011f0102028101020102810102820201028202010282020102840201 +0201028402010201020202890002000200020102010203028a0002010200020100010001 +010184020002010282020002820201020202850102010200028202010282020102020281 +000201028100020502810102010203010202810102020281010203028101020402830102 +010282020102810201810102060281010204020101010281010286020102010201028302 +010201010101020a01030283010201020502070101028301020102820201028302010201 +0a0184020102010201020201010208010102810102820201028202010281020103018100 +018301020102820200028202010285020100020001020185000100010001010101000201 +840201000200820002018601000100010001860100010001000187010200020001000186 +010001000100010101820002008100018701020001000100010101850001000100018601 +000100010001810102820201020102810102860200010001000101018300010002820200 +028202000282020102820201008100019201000100010001000100010002000100020002 +820201028102010a01010281000282020102850201020102010201830001000101018402 +0001000102018a0001000201020100020001020183000100010201010082010200830002 +00028b020102000100010200010001020188000100010200010201820102010a01850201 +020102018201020102018502010201020102010002 +820100018201000182010001840100010001820100010301830001000105018100010601 +820201020102810102810201810102820201020202810102820201028602010201020102 +860200020102010201028301020002010288010200020102010001850100010001020302 +810002820200020402810102840201020102820201020902810102010281010201028100 +020102810002020281010282020002040281010203028101020302860102010001000201 +028100020502830102010202028100028402010201020302820001028602000200010002 +8202010089000100010002000200020102010089010002000200020002008a0002000100 +01000100010088000100020002000200880002000100010001008a000100010002000100 +010088000100020002000100880001000100010001008500020002000286020002000100 +010101010084010001020101018300010001010186020102000102018401000100018301 +020102820200028102010301810001040181000104018300010201020183020002010101 +830201000105018100010401810001810102810201010181000105018400020102018101 +028302000201820102010701820200010201830002010282020102820201028102010901 +8e0001000200020001000201000100010201810001820100018101028202010284020102 +01028a020002000102000100010285020100010001900102010001000201020100010002 +010201020101028300010001010182020100810002890200020002010201020106010102 +88010201020102010201100183020102010001 +830100010081000122010102010101028101028202010282020102020281010282020102 +860201020102010290020002000201020102010201020002000281020082000201860100 +010002010284020002010202028101028302010201880102010002010201020102810102 +840200020002820201028202000202028101020102010102028101028402010201020102 +810102040281010281020183010201020102830102010282020102050281010202028101 +020202810102020281010201028301020102030201010102030103020101010281010282 +020102010206018602010201020102810201010101020801820201028202010282020102 +810201080182020102820201028402010201028102010801010281010282020102820201 +0201020c0101028101028102018101028302010201210101021701810201020182020102 +810201100181020102018100010101010001019100010001000100010002000200010002 +000283020002010801010281010282020002820201028402010200010301830001000104 +0181000102018a0001000201020100010001020183000100010101810200010081020083 +000200028a02010200020001000100010301830002000283020102010a01890201020102 +01020102010701830201020102010002 +020181000101018100018201000184010001000182010001820100010201810001020181 +000105010102810102810201810102820201028102018301020102030283010201028602 +010201020102020289010201020102000201020102860002010201020186010201000201 +028202000284020102000203028300010201810102020282000102010281010284020102 +010201028100020502810002030285000200010002830201000203028100020402810102 +010281010284020001000205028301020102820200020202810102020281000282020100 +850001000200028402010201028102008c000100010002000100020002008c0002000200 +020002000100020088000100010001000200880002000100010002008a00020001000100 +010001008800010002000200010088000100010001000100880001000100020002008600 +020001000200880001000100010001008a00010002000100010001008800010001000100 +0100880001000200020001008a00020002000100010001008a0001000100010001000100 +8c000100010001000100010001009000010001000100010001000100010001009c000100 +010001000100010001000100010001000100010001000100010081000181010085000100 +01000101018100010201810001010183020102010a018c02010200010001000200020001 +840100010001050101028101028402010201028202010282020002870201020002000102 +8d02010001000102010200010001028502010001020105018702010002000201028c0201 +020102010002000201000108018202010283020102010901810201060102028201020100 +01 +820100018101008100012001010201010502810102820201028402010201028202010286 +020102010201028602000201020102010285010201020002010281010201020101810001 +020101028100020802810001020181000101018102018401020100028202000284020002 +000202028101020202810102020281010201020101810201810102020281010206028101 +028102018501020102010201028101020102830102010203028301020102820201020202 +010103028101028202010206020101010202018102010901820201028402010201028302 +010201080184020102010282020102850201020102010801010281010282020102850201 +0201020106010102810102820201020102810102820201028102010d0181020115018102 +018401020102010a01820201028102013b01810001010194000100010001000100010002 +00010002000201000107018202010282020102820201028402000200018a010001000100 +01000100010201830001000102018a000100020102010001000102018100018301020102 +950200020002010002000201020100010001000100010086000102010201028302010201 +030181020102018b020102010201020102010201080183020102010201 +810001820100010701810001170101028101028102018101028202010282020102820201 +028302010201830102010286020102010201028402010201020102830102000205028401 +020100010101820200020202810102840201020002010201018300010001850100010001 +020202810102030281010207028100020102810002030285000200020002850201020100 +0202028301020102020286000200010001020a0282010002820201028202000283020100 +02010201008a0200020001000200020002820201008c000100020001000200010001008a +000200020001000100010088000100010002000200880002000200010001008a00010001 +000100010001008800020001000200020088000100010001000100880002000200010002 +00860002000100010088000100020002000100880001000200020001008a000100010001 +0001000100880001000100010001008a00010002000200010001008a0001000100010001 +0001008c000100020001000100010001009000010001000100010001000100010001009a +0001000100010001000100010001000100010001000100010001008f0001000100010001 +00010001000100018401000100010e0101028101028c0200020001000200020001000184 +010001000181010282020102820201028402010201028202010282020002860201020002 +000102018400010001028902010001000100020100810001030188000100020100020002 +8602010201020102840201020001820100010501810201010183020102010b0181020107 +018102018301020102 +01008601000100010001820100010201810001820100018201000102018100010b010102 +010101020101810201810102820201028202010202028201020189010201020002000200 +020202830102010205028101028102010101010081010205028101020502810001020181 +000105018102018201000282020102820201020402810102070281010204028101020102 +010101028101020402810102840201020102840201020102020281010281020181010282 +020102050283010201020202010103028201020181010201020301010282010201830102 +010201028501020102010284020102010281020109010102830102010282020102830201 +020106018402010201028202010282020102810201060183020102010101840201020102 +810201010183020102011d010102140101020201820201028102013b0181000101019300 +010001000100010001000200020001000100010501820201028202010282020102890201 +020100010001000188010001000100010001870102010001000102860201000100020101 +018300010001010186000102010200028602000200020102830200010282020100810001 +8e0100010001020001020102010201028102018201020183010201028a02010201020102 +01020102810201030181020103018602010201020102 +010181000121010202810102010281010283020102018101028202010282020102020281 +010286020102010201020d02870002010201000201840100020002840201020002010283 +010201028102018401000100018c01000100010001000200020102020281000208028100 +020302810002020281010201028501020100010203028101028a02000200010001000200 +020602810002060285010201020102020201008c010002000100010002000100028d0200 +0200020001000200010002008a0001000100010001000100880002000200010002008a00 +010002000100010001008800010001000200020088000200010001000100880001000100 +010001008800020002000200010086000100020001008800010001000200020088000200 +0100020001008a0001000100010001000100880001000100010001008a00010001000100 +010001008a00010001000100010001008c00010001000100010001000100900001000100 +0100010001000100010001009a0001000100010001000100010001000100010001000100 +010001008f000100010001000100010001000100018401000100010c0182020102820201 +028802000200010001000101018300010001830100020102010102810102840201020102 +830201020081000281020194010001000102010200020001020102000100010001020181 +000102018a00010002010001000201028502010201020101018300010001160181020101 +0181020107018102010301 +810001860100010001000182010001840100010001820100018201000102018100010c01 +810201810102810201810102050201018202010284020102010284020102000201028100 +020102810002820201020202810102010282000201010181000181010208028100020102 +820102010201810001070181020181010201028101020502810102820201020202810102 +060281010281020102018402010201028202010284020102010282020102820201020202 +830102010202028101020202830102010282020102010285010201020102020201010302 +010106028101020102810102820201028702010201020102010601840201020102820201 +028502010201020106018402010201020102830102010281020102018102010601010281 +0102820201028202010281020108010102820102012b0101028201020101010102820102 +013a01810001010193000100010001000100010001000100010001000102018202010285 +0201020001028302010201020101028100018c010001000100010002000201028b020002 +0001020102000100010201810001020182020102a1020002010201000200020102010001 +020102000100010001000100020102010201028302010201030101028a01020102010201 +0201020101018102010201810201030181020181010282020102 +830001000121010202810102810201810102820201028202010282020102820201028402 +010201028202010201028301020102010281000201028b01020102010200020102010081 +000102018202010284020102000282020102030201010100030189000100010001000100 +01010185020002000102010283000200020e028501020100010203028101020102860100 +010002000205028101020202810002020283010201020202810002820201008e00010002 +00020002000100020002008c000200020001000200010001008a00010001000100020002 +0088000200020002000100880001000100010001008a0002000200020001000200880001 +000100010001008800010002000200020088000100010002000100860001000100010088 +000200020002000200880002000100010001008a00010001000100010001008800010001 +00010001008a00010001000100010001008a00010002000100010001008c000100010001 +000100020001009000010001000100010001000100010001009c00010001000100010001 +000100010001000100010001000100010001008d00010001000100010001000100018401 +000100010e01010281010284020002000103018100010401830002010282020102840201 +020102830201020101010100030183000200028402010200028802010001020001000102 +018500010001000189010001000102000100018101028302010201030183000100010201 +0102820102011001830201020182010201050101020201 +010101008401000100018201000184010001000182010001820100010201810001080181 +020181010201028101028202010281020182010201830102010283020102018301020102 +020283000200020102890102000201020002000201028201020188010200010001020102 +050283000201020102050101000a01010081010281020101018402010201020102810102 +030283010201020102810102070201010102810102810201820102018101020602810102 +820201020202830102010282020102020201010302830102010203028101020102810102 +880201020102010201028102018101028502010201020107018202010282020102840201 +0201028102010a0182020102820201028202010283020102010601820201028202010282 +020102820201028102010801020283010201020102810102810201270101028201020141 +0181000101018500010001000105018a00010001000100010201028c0201000200020102 +000100020102018300010001840100010002840201020102820201028402000200010201 +010001018400010002018b01020002010002000201020183010200010101020083020102 +008f000200020100020002010201020102010201810201010101028c0102010201020102 +01020102010a018602010201020102 +810001230101020101010201010102820102018101028402010201028202010202028101 +028602010201020102010285010201020102040201018302010201010182020002820201 +020502810002810201010183000100010201890001000100010001000102018102018401 +020102018101020502810102050281010204028101020502020184020102010284020102 +010207028301020102050283010201020102810102010285010201020102020201018102 +0102010302820102018401000100028402010201028b0200020100010201000100018901 +000100010001000200880001000200010001008800010001000100020088000200010002 +000200880002000100010001008600020001000200880002000200010002008800010001 +00010001008a0002000100020001000100880001000100010001008a0001000100010001 +0001008400010002010201820001008c000100010001000100020002008e000100010001 +000100010001000100980001000100010001000100010001000100010001000100010093 +000100020001000100010201000100010001000184010001000104018500010001000103 +010102860102010001000102018102018301020102870201000201020102820201028102 +010601810002890201020100020002010288020002010200010201840100010001920100 +010001020001000100010002010001000107018500010002010283020102010c01890201 +020102010201020109018102010101 +010181000182010001840100010001050181000103018100010201810001050181020181 +010281020182010201810102820201028202010282020102830201020185010201020102 +020287000200020002010203028100028202010283020100010101840001020102820200 +02820201020502810001820100018101008100010801850001000200018c010001000200 +020002000200020502810002050281000203028e00020001020100010001020102010202 +028100028602000200020002820201028402000200020102820002008e00020001000100 +02000200020002008d000200010001000100010001000188010201000100010001900100 +010201000201020100020102010201060182020102820201028402010201028102010601 +840201020102010283010201028102010201810201040182020102820201020102810102 +820201028302010201200183000100010301010282010201260101020301010204018102 +01070181020102018100010101830001000105018100010301850201000201028c020102 +000100010002000100010301810201830102010282020002840201020102810201010183 +00010001020101000101820001028d0201000100020102010002000201060101008f0201 +02010002000201000100020102010a018202010285020102010201070183020102010401 +8602010201020102 +830001000121010102010101028101020102810102050281010282020102860201020102 +000202028501020102010201028301020102040282010201020182020102820201020802 +020183000100010201850001000100010101810001010185020102010201080103028101 +028202010203028101020302810102020201010202830102010207028101020702850102 +010201020202810102820201020102840001020102010282010002840201020102880201 +020102010200020102890102010200010201020182010001880102010201000200028402 +010201008300010201010183000100018601020100010002880201020002000100018601 +000100010001820102008300020002820201008300010001010182000100810001010185 +000200010002860200020001000101010100820100010101820001008100010101850001 +000100018401000100010301820001008100028a02010001000100020102008300010001 +010185000100010001010101009701000100010001000100010002000100010001000100 +010081000201028100028202010282020002010285000100010001840100010001020185 +000100010001010185000100010001060182020102820201028202010285020102010201 +830102000105018102010101830002010287020100020002010286020102000100010201 +89000100010200010201028c020100010001020102000100010701830002000287020102 +010201020103018102018c010201020102010201020102010b018102010101 +810001020181000182010001020181000182010001110102028101028102018101028202 +010282020102820201028302010201820102018501020102010204028100020502810002 +030284010201000182010201810102820201028202010202028101020102010006018100 +010701850001000201008d00010200020002000200010201028202000204028401000200 +020102810002030281000203028200010208028200010282020102840200020002040283 +010002008500020002000201029e00020002000201000100010001000100010001000102 +000100020002010200830002000287020100010001000102018400010001028702010001 +000201028402000200010301010002018502010201000282020102830201000104018100 +018301020102820200028202010284020100020103018100010101850201020100010401 +8100010401810001040181000103018100010e0182000201030181000105018100010d01 +010281010201028101028202010281020107018202010282020102810201020181000101 +018100010d0182020102820200028e020002000100010001000100010001010182020102 +82020102870200020002000102810201010183000100018101028702000200010001028b +020100010002000100010201010181000105018200010287020100020002010284020002 +000105018102010301810201820102010b01830201020106010202810102 +010181000121010102010101020101010281010284020102010282020102820201028602 +0102010201020c0281010202028201020182010201020182020102050281010202020201 +810001040187000100010001000114018202010284020102010204028301020102050281 +010205028101020302810102070283010201028202010202028201020181010202028201 +020181010204028301020102840201020102810201860102010201020109010102810102 +820201028402010201028102010501810201010101028101028202010282020102830201 +020105018102018101028202010282020102820201028102010901010281010282020102 +820201028102012701810201040181020111019500010001000100010001000100010001 +000200020002820201028202010201028201020105018300010001840100010001920100 +010001000100010001000100010001000181010282020102820201028202010284020102 +010283020102010501010281010284020102010282020102830201000102018300010001 +810100810001020189020102010200010201028602010201020102010283000100010101 +840200020102890201020002000201020182010201030101028c01020102010201020102 +0102010a01840201020102 +810001100181000102018100010901010202018202010201028101028202010282020102 +840201020102830201020183010201020d02810102030285000200010001810102020283 +000200020302810102810200810001020183000100010801810001990100020002000200 +010001000100010001000102010001020102030283010201020402810002030281000284 +0201020102010281010205028300020002050286000200020002008e0001000100020002 +000100010001008a00010002000200020002008a00020001000100020002008a00020002 +000100010001008800010001000200020088000200010001000200880001000100020001 +008800010002000200010088000100020001000100860001000200020088000200010002 +00020088000200010001000100880001000200020001008a000100010001000100010088 +0001000100010001008100010e0186000100010001008e00010001000100010001000100 +010083000100010a01810201810102810201820102010601810201810102010284000102 +010281020102018100010101810001070182020102820201028202010282020001900100 +010001000100010001000102000102820201028502010201000108018500020102000287 +020102010200010289020100010001000100010501810001030182000102010283000200 +010201830001000102018202010283020102011201830201020107018102010101 +83000100011e018102018101028102018101028202010281020181010282020102020282 +010201830102010202028101020102810102070288010201020102010201050103028101 +028202010282020102810201020183000100010601850001000100010501830201020109 +018102010201860201020102010282020102030281010206028101020702810102810201 +810102020281010282020102010285010201020102030285010201020102010286010201 +020102010501850201020102010301840201020102820201028502010201020108018202 +0102820201028402010201028102010a0101028101020102830102010201020701820201 +0282020102820201028202010282020102830201020146018c0001000100010001000100 +0102850200010201028302000102810200850001000100010a0183000100019401000100 +010001000100010001000100010002010282020102840201020102820201028102010a01 +010281010284020102010284020102000183010001008100010101820201008100028402 +010201028902010200010201020102840201020102010285000200020102860200020102 +01028402000200010501810201010101028c010201020102010201020102010a01840201 +020102 +01018100010e018100010201830001000107010102010101028101028102018101028202 +01028202010282020102020281010204028500020102000203028f000201020102010200 +0200010001000183010201020902820102010401830001000108018100019c0100010001 +0001000100010001000100010001000100010001000200020a0281010203028101028202 +000202028101020102810102020281010205028701000200020002008e00020001000100 +020002000200010089000100010002000200028b0200020002000100010001008a000100 +010001000100010088000200010002000200880001000100010001008800010002000200 +020088000100010002000100880001000100010002008600020001000200880002000100 +0100010088000100010001000100880002000100020001008a0001000100010001000100 +880001000100010001008100010e0186000100010001008e000100010001000100010001 +000100850001000100011e018b0001000100010001000100010101810001070182020102 +820201028302010201020192000100010001000100010001000201000201028502010201 +000103018200010284020102010282020002860201020002000181010001008501000100 +010085000100010001830100020101018202000288020102000100010001820100010201 +840201020102830201020103018102010801820201028302010201010181020105018102 +010001 +810001200181020181010281020181010282020102820201028102018301020102830201 +02018301020102020285010201020102010281010201028a000201020102010201020103 +010302810102820201020302820102010201830001000103018100018601000100010001 +030181020182010201120182020102020281010203028101020102830102010207020101 +020281010202028501020102010202028701020102010201020302840102010201820102 +010301840201020102830201020103018402010201028402010201028302010201090101 +028101028202010282020102830201020108010102810102820201028202010281020108 +010102810102820201028202010281020101018302010201350181020117018d00010001 +000100010001000100010101820001008100010e01810001020195000100010001000100 +01000100010001000100020102820201028202010283020102010b010102830002000285 +020100010001030187020001020102010287020102010002000284020102000285020102 +01020182010201010186020002000201028b020102010201000200010001050181020102 +0189020102010201020102010e01820201020102 +01018100010e018100010201830001000107010102010181020101010102810102820201 +028202010284020102010284020102010202028d00020102000200020002010201020102 +8101020202840100010201810102050281010201028201020113018100019f0100010001 +000100010001000100010001000100010001000100010001000102820200020602830102 +010204028100020202840100010002820200020102830002000282020102850200020002 +008e00020002000200020002000100020089000200020001000201028b02000100020002 +00010001008a000200010001000200020088000200020001000100880001000100020002 +008800020001000200020088000200010001000100880001000100010002008600020001 +0001008800010001000100010088000200020001000200880002000100020001008a0001 +000100010001000100880001000100010001008100010e0186000100010001008e000100 +0100010001000100010001008b0001000100010001000100010d0181000104018f000100 +010001000100010001000100018101008100010801010281010283020102010301940001 +000100010002000200010002010002010200028302010001030184000102010281020082 +000201010185000100010001820100010601830201000183010001028802000201020002 +010284020001000101018100018601000201020102850201020102010c01840201020102 +81020182010201820102010601810201 +8100011f0101020101010281010201028101028202010282020102820201028202010202 +028301020102020283010201020302850102000201028202010281020106010202810102 +070204018300010001030181000102018300010001020185000102010201180181020101 +010102830102010281020101010102810102080201010102010106028401020102018101 +020402840102010201820102010101840201020102810201810102820201028202010284 +020102010281020109010102830102010282020102820201028102010701820201028102 +018301020102810201830102010283020102010601010281010282020102820201028202 +01028102010601010281010283020102016b018100010201950001000100010002000100 +0100020002000100020102820201028102010b0182020102840201020102880200020001 +000100010201010281010284020102010284020102010282020002810201010101028201 +02010701850001000201028b020002010201000100010001030183020102018a01020102 +0102010201020111010102810102 +820100012001010201010102810102810201810102840201020102820201028202010286 +020102010200028202000201028100020102830002010201028101028902010201000200 +01000181010203028101028202010202020f018100010201810001a40100020002000200 +010001000100010001000100010001000100010001000100010001000201028100020102 +840001020102070281010281020081000201028100028202010289020002000200020002 +008e0001000100010002000100020002008a00010001000100020001008a000100010001 +00010002008a000200020001000100020088000100010001000100880001000100010002 +008800020002000100010088000100010001000100880001000200010002008600020001 +0001008800010002000200010088000100020002000200880001000100010001008a0001 +000100010001000100880001000100010001008100010e0186000100010001008e000100 +0100010001000100010001009e0001000100010001000100010001000100010001000100 +010001000100010091000100010001000100010001000100010001810100810001060182 +020102810201080192000100010001000200020001000201000102010101810001010101 +028101028402000201028102008100010201810001030181020101010102820102018301 +020102820200018301020102820201008c00020002010001000100020102860200020102 +0102830201020107010102020184020102010281020186010201020102010701810201 +120183000100010201810001050101020101010201010102810102820201028202010282 +020102840201020102840201020102020283010201020c02820102018201020185010201 +020102820201028202010203020601830001000106018300010001040181000182010201 +1b0182020102830201020101010102810102010281010205028101020102840102010201 +890102010201020102010202020101010201018802010201020102010201028701020102 +010201028402010201028102010901010283010201028402010201028102010a01010281 +010285020102010201020101020501820201028202010201028101028302010201070182 +020102820201020102810102830201020160018102010301810201020181000102019500 +010001000100010002000100020002000100020102820201028102010801820201028202 +0102870201020100010001010184000100020101010102820102018401020102010b0181 +00010801020201008101028102018101008f000100010001000100010201020102010101 +81020102018102010901810201080182020102 +820100012001010201010102010181020181010202028101028202010282020102020285 +010201020102040281000201028101020202810002010202018100010101030281010282 +0200028202010201020b0181000101018100010401a70201020001000100010001000100 +0100010001000100010001000100010001000100010001000102850200010001020a0283 +0002000283020001028d02000100020001020100020002008e0002000100010002000200 +020001008a00010002000100020001008a00020002000100020002008a00020002000200 +020001008800010001000200020088000200020001000200880002000100010001008800 +010001000200010088000100020002000100860001000200020088000200010002000200 +88000100010001000100880001000200020001008a000100010001000100010088000100 +0100010001008100010e0186000100010001008e000100010001000100010001000100ab +000100010001000100010001000100010001000100010001000100010001000201000100 +01000100010001028402000100018101008100010301820201028102010b019000010002 +000100020002000100010200010301810001010101028401000200010201810001010183 +000100011201850001000100018101008300010002010286010002000201028602000200 +020102810201090101028901020102010201020102810201020181020107010102 +820100010c01810001840100010001020181000104010202010101020101010281010282 +020102820201028302010201830102010288020102010200020102010281010202028101 +028202010204028201000101018200010204028101028202010201020701830001000106 +018200010081000186010001020102011e01010202018202010203028101020102830102 +010206020101030201018602010201020102010201010102870102010201020102840201 +020102020282010201040181020103018402010201028202010284020102010283020102 +010501010283010201028202010282020102810201020184020102010202028301020102 +010283010201028102010c010102810102010281010283020102015f0102028101028202 +010283020102010301810001020194000100010001000100020002000100020001000201 +820102010501810201830102010282020102840201020102840200010001020183000100 +0102018100011f0182020100820002010201010082010001010183000100028502010201 +02010a01850201020102010101810201080101020001 +200181020181010282020102010281010201028101020502810102020281010282020102 +010285010200020102030285010200020002030282010201010184020102010203028101 +020302080189000100010001000100012901820201020502810102820201020202810102 +070281000281020181010284020102010201028101008c00010002010200020002000201 +810100830002000187010200010002000289020002000200010201008300010001010184 +000100020091000200010001000201000200010001000100880001000100020001008800 +020001000100010088000100010001000100880002000100020002008600020002000200 +88000100010001000100880002000100020001008a000100010001000100010088000100 +01000100010083000100010c0186000100010001008e0001000100010001000100010001 +009e00010001000100010001000100010001000100010001000100010001000100880001 +0001000100010282020002850201020100018101008100010a0101020101820201028202 +01028d020100020001000100010002000184010001000101018300010201020183000100 +010601830001000188010201020102010002830201020102010102810001830100010282 +020001010181000190010201000200020002010002000201020107018102018301020102 +830201020104018102010201810201060182020102 +0f0181000184010001000102018100010401020201010102810102810201810102820201 +028202010283020102018301020102040285010201020102030281000203028101020202 +84010001020181010202028100020702120181000182010001a701000100010201000100 +01000100010001000100010001000100010001000100010001000102010202028101020c +02810102820200020202830102000201028101028a020100020102010201000201028201 +020183010002010201830200010281020102018100010101850201020001028802010201 +000201020105018202010282020002840201020102830201020101018102010701810201 +820102018101028202010283020102010901010281010282020102010281010282020102 +8102010d0183020102015101820201020102090181000102019500010001000200010002 +000100010001000100010001090101020301010203018300010001820102018601000102 +010201850100020102010e018102010601840201020102820201008200020103018f0001 +000201020002000102010201020103018102010401860201020102010281020103018102 +0105010002 +1f0101020101010201010102810102820201028102018301020102840201020102840201 +02010202028f010201020102010201020102000200028202010283020102010301040281 +01028202010202020801830001000101018300010001080183020102011d010102820102 +018301020102030281010282020102070283010201028202010202028101028102010101 +010202018502010201020181010283020102018101020102810102840201020102810201 +070184020102010282020102850201020102010801820201028202010282020102820200 +028302010201010102028200020101018300020002890201020001000200020081000101 +018200010089000100010001000200028702000100020002008a00020001000100010001 +0088000100010002000200830001000101018100010601880001000100010001008e0001 +000100010001000100010001009c00010001000100010001000100010001000100010001 +000100010001008600010001020102830200010288020002000102010001810100810001 +0a0181020181010283020102018101028302010001810102810201060184000100010283 +020002018501020002000108018102010101010283010201028402000201028302010201 +83010201028502010200020182010001820100018a010201000100020002000182010001 +040101028401020102010201850201020102011501 +200101020101020201018102018101028202010282020102020281010284020102010202 +028101020102890102000200020002000282020002010287010201020100010204028101 +02060212018100018201000184010002000101019e000100010001000100010001000100 +010001000100010001000100010001020202850002000100020b02820001020202810102 +030281010202028400010001008c00010002000200020002000100860001000200020183 +010201008a00010002000200020001008a00020001000100010001008800020002000200 +010088000100020001000100850001000100018201020087000100020001000185010002 +000201020101000101010281010282020102830200010282020102820201028102010201 +81000104010102810102810201010182020102820201028102014a018102010f01810001 +0201870001000100010001010185000100010001010184000100020101018b0001000100 +020001000102010601890001020002010002000281020184010001020119010102830102 +0102850201000100018101028602010201000102850200020002010801820201028f0201 +020102010201020102010201020108010002 +1f0101028101020102810102010281010282020102820201028202010282020102020281 +010208028501020102010206028101020102010181020101010502810102820201020202 +090181000101018300010001060183020102011f01010283010201020902830102010282 +020102840201020102060201018202010202020101010282010201830102010281020102 +010302020181020105018202010284020102010284020102010283020102010701010281 +010282020102820201028502010201020102010102810102860201020002010282020102 +820201028102010201810001040182000102820201028602000100020102890200020002 +000100010083000100010101820002008900020102000100020001820100010101810001 +08018600010001000100850001000100010101880001000100010001009a000100010001 +0001000100010001000100010001000100010001008100018101008f0001000100010001 +000100010001000184010001000105018100010101010281010282020002810201020101 +020c01820001028402000102010501830001000104010102810102840201020102840201 +020102840201020102820200028302010200810001820100018201000101018602000100 +010001020181000182010201880102010201020102011201830201020106010002 +170181000107010102810102010281010201028101028202010205028301020102840201 +02010206028301020002020281000201028b000201020102010001000102820201028202 +000282020102020213018300010001820100010101850001000100010101850001000100 +010101850001000100010101850001000100010101820001028302000201850102010201 +020302850100010201020502010101028500020002010201020100810102870200010002 +0001028302000200850001020100018101028d0201020002000100010201000100810001 +01018f000200010001020001000200020102008300010001010182000100880002000200 +010002009100010002000200010002010001000100010085000200020002010201008302 +000201810100830001000103010100810201830102010281020181010281020101018100 +0281020102018100010301820200010c018100010c018100013701810001010181000111 +019000010200010002000100010002000200010601840001020102820200028402010201 +0283020102010a0182020102810201010101020301850201020102018601020102000200 +8100010201810200810001810100850001000200010301810201010101028e0102010201 +0201020102010201020105018102010301 +820100011b01020281010201028101020102810102820201028202010283020102018301 +02010202028101020c028100028402010201028302010201040101028101028202010206 +020c01850001000100010401810201820102011f01860201020102010201028101020502 +890102010201020102010202028301020102820201028202010204028301020102810201 +010181020101018202010202020501820201028402010201028202010283020102010a01 +820201028202010284020102010283020102010801810201010182020102820201028202 +01028102010801010201010102820102018201020182010201820102010a018102010201 +810201030181020132018500010001000103018300010001050181000104018100010c01 +830001000192010001000100010001000100010001000100011101820001028202010281 +020107018302010201830102010284020100010285020102010001820100010401830002 +000101018100018201000184010001020102018300010001050184020102010283020102 +0113018102018201020106010002 +020181000102018300010001820100011101010201010202810102820201020102810102 +820201020202830102010286020102010200021202850002000100018201000201028100 +02070213018100018a010001020100010001000101018500010001000101018500010001 +000101018500010001000101018300010002020281010282020002060282010001010182 +0001008100010101810002020285010201020102820200028d0200020002000102010002 +0001008400010002018701000200020001008a0001000100010001000200880002000200 +020001008800010001000100010088000100010001000200880001000200020001008800 +010002000200010088000100020002000100880001000200010001008600010001000100 +880001000200010001008700010001000100010201810001030182000100880001000200 +01000200850002000100010801880001000100010001008f000100010001000100010001 +00010001840100010001240181000107018100010e019302010200010200010002000200 +010002000200010401860001000102010281020101018102010601810001020181020104 +018202000102018102010201830001020104018102008300010001840102010200010087 +010200010001000103018102010301010289010201020102010201028102010201810201 +02018102010201 +820100010101010002018100011201020201010102810102810201810102820201028202 +010282020102840201020102040283000200020302810002010285010201020102030206 +01020281010284020102010202020b018500010001000101018100010301850201000102 +0103018100011701020282010201810102010281010204028a0102010201020102010201 +040102028201020181010282020102010201010102010186020102010201028102018701 +020102010201028402010201028302010201090101028301020102820201028202010283 +020102010801010201018202010281020183010201028102010801810201030181020103 +018102010a01010201018202010281020182010201040181020182010201350183000100 +0101018d000100010001000100010001000186010001000100010c018100010201910001 +000100010001000100010001000100010d01010203010102810102810201010187000100 +01000100010a018100010101810001070183000100018c01000100010001020002000102 +850201000100018a01020001020002010201028302010201020181020107018302010201 +0101830201020108010002 +02018100018401000100018401000100010e018102018101020102810102010281010281 +020183010201028202010282020102840201020102880201020102000200020102890102 +01020102010200028c020102010200010001000100020b02810001150181020101018300 +010201030181000105018100010501810001050182000102020283010201020702810001 +98010201020002000102010200010001000201020001000200028d020001000100020102 +0001000100830002000201028600010001000100880001000200020001008a0002000100 +020002000100880001000100010001008800010002000100010089000100020001000100 +018701000100010001008800010001000200010088000100010001000100860001000100 +0200930001000100010001000201000100020001000100810001050101008101028b0200 +020001000201000100010a01850001000100018601000100010001010185000100010001 +86010001000100010101810001120181000105018d000100010001000100010001000112 +018202010290020102000100020002000100020001000182010001010185000100010201 +0d0184000100010283020100018501020102000101018302010201010183020102010601 +810200820001028402010200010401830001000109010102840102010201020181020108 +018102010301 +010001018100010101830001000184010001000101018100010901020201010102810102 +810201810102830201020182010201810102020283010201020402850002000200020102 +81010206028101028102010101810201830102010282020102820201028202010201020b +018100010501810001010186020102010002010401810001160101028201020183010201 +020302810102010282010201090184020102010201028101020302840102010201810102 +040281010281020101010102830102010284020102010281020106010102820102018301 +020102810201010101020b01810201030181020103018102010901830201020181010283 +020102018101028102010201810201070101028101028202010201028201020111010102 +570181000103018100010601890001000100010001000105018102010101830201020103 +0181020102018a02010200010002000200010101010203018102010e0185000100010001 +8b0100010201020002000102018301000100820001008500010200020188010201020102 +0102018201020182010201040182020102850201020102018201020106010002 +840100010001820100010201810001020183000100018401000100018201000101018102 +018101020102810102010281010282020102820201028202010282020102020281010202 +028d01020002000200020102010201020402810102010285000100010001810102030281 +0102820200020102820100011201810001a6010001000200020001000100010001000100 +010001000100010001000100010001000100010002820201028102018401020100020702 +860002000200020092000100010001000100010001000100020002008c00010001000200 +010001000100830002000201028600010002000200880001000200020002008a00010001 +000100010002008800010001000100010088000100010001000100910001000100020002 +000102000100010002008800020001000100010088000100010002000200860002000100 +020089000200020002000100018401000100010101010082010001060183000102010101 +830001000113018100010401810001050181000104018100010f01810001040181000105 +018300010001030185000100010001820100010c01830201020101019002010200010002 +0001000100010001000189010001020100010002011001820201028402010001028a0201 +020100020102010201810102830201020107010100810102810201820100010401830001 +00028302010201060185020102010201090181020106010002 +020183000100018101008100010101830001000181010081000101010100050102028101 +020102810102810201810102030283010201028202010286020102010201020402870102 +000200020102020283000201020202020181020181010282020102090208018100010201 +870001000100010001020182020001050181000105018100010501810001050181000102 +010302830102010201028300020102810201010181000183010201028502000201020101 +018300010201020183020002010101830201000203028301000102020283010002010301 +810001040181000103018202000104018100010301820200010101010283010001028302 +010201820102010b0101028101028202010282020102810201820102010c010102020182 +02010281020183010201028102016d01810001810100020005018b000100010001000100 +01020101018302010201020101020a018a00010201000200020002018101028302010201 +110183000100018201000103018402000200028102018501000100010001000102820002 +010601810201030101028e01020102010201020102010201020101018102010501 +820100010101010002010100020101000101830001000102018100010401020281010201 +028101028202010282020102820201028402010201028402010201020402810002010283 +010201028602000201020102020286010001000100020202810002010281000282020102 +83020100010a018100010701860001020002000101018500010001000101018500010001 +000101018500010001000101018600010001000102010284010201000208028701000100 +0100010092000100010001000100010001000100010002008c0001000100010002000100 +01008100020202870100010001000100880001000100010001008a000100020001000100 +020088000100020002000100880002000100010001008900020002000100020002870200 +020001000200880001000100010001008800020001000100020086000200010002008800 +010001000100010085000100010001010182000100810001030181000189010001000100 +0100010081000101018100010a0186000100010001008900010001000100010001010183 +000100010201850001000100010301820001008100010401010081010081000181010085 +000100010001810100850001000100018101008400010001008100010401810001050181 +020103019b020100010001000100010001000100020100010201020100020102010b0181 +020183010001028a02010001000201020100018401020102010101830201020183010002 +0101018202010083000102018201020105018b0001000102010201020102011c01 +020181000102018100010201810001020181000102010100060101020101010281010282 +020102010281010282020102020281010286020102010201020602830102010202028100 +0282020102010281010283020102010101040281010201028401020102010f0185000100 +010001010182000201040181000105018100010501810001050181000103010102830001 +0201010184020002000201028b0102000201020102010001028102010201810001040181 +000104018100020402820001020302030181000182010201040181020104018102010801 +820201028202010282020102820201028502010201020107018e02010201020102010201 +02010201028102010b018102010301810201020181020103018102010501810001370181 +000105018300010001040181000124010100020181000101018700010001000100028302 +0102018101028302010201810102810201040181000102018a0001020100010002000201 +010181020104018102010301830201020181010201028101028202000181010207028300 +020102850200020001000100820102008100010801810201010101028901020102010201 +020102850201020102018201020104010002 +020101000501010084010001000184010001000184010001000184010001000181010281 +020182010201810102820201028202010282020102020283010201028202010201028101 +020502810002010281000202028400020102010301820201020602810102020208018100 +0105018100012a0102028101028202010201028101020302060183000100010201830001 +000103018c00010001000201000200020002010288000100020002010001010181000101 +0101008201000101018f0001000200020100020001000102010083000100010101820001 +008800010002000100020089000200010001000100018701000100010001008800010002 +000100010088000100010001000100860001000100010088000100010001000100860001 +0002000102830200020083000102010101810001020189000100010001000100010b0188 +0001000100010001008f0001000100010001000100010001000102019600010001000100 +010001000100010001000100010001008100018101009200010001000100010001000100 +010001000100810001820100010401820001028302010201810102810201040196000100 +010001000100010002000201000102010201000184010201020102010102020102028101 +028402010200028202010282020102020281010284020102010201020901010081020105 +01810201010183000100028502010201020111018302010201030181000101010002 +0f0183000100018401000100010201810001010181000101010402840001020102030281 +010202028101028602010201020102010289000201020102010201020402820102018401 +00010001810102020281010207020b018100010201890001000100010001000101018500 +010001000101018500010001000101018500010001000101018500010001000101018300 +010002010281010202029000020002000200010002010201000100010301830001000104 +018100010401810001810102010284010001020182010201860102010200010284020102 +010283020102010a0183020102010201010282010201820102010e018202000102018102 +010f01820201028202010282020102820201020102810102830201000108018202010082 +000201030181000104018100010b01810001050181000104018100010401810001040181 +000105018100013701860200010001000283020102018101028302010201080181000102 +018100028202010202028100028202010201028101028202010282020102830201020183 +010201028202010202028101020202830102010286020102000102018501000200010001 +0081020002000601830201020102018a02010201020102010201028102010c01 +0b0183000100010201810001020183000100018401000100010201820200020602810102 +840201020102020281010204028701020002000200020102810002020281000203020501 +840201020102070209018300010001310103020201820201020502810102850201020102 +01820102011c018302010201010181020103010102030185020102010001820102010d01 +830201000102010102810100810001820102018201000104018100018101028502010200 +010282020102850200010001028102018101008100010301010082010001840102000100 +820001028202000201028500020100020104018100018701000100010001008100010101 +8100010801880001000100010001008e0001000100010001000100010001008100010101 +980001000100010001000100010001000100010001000100010094000100010001000100 +01000100010001000100010082000100010002018202000181010283020102010a018900 +010002010200010002010201010102810102820200020102810102810201020101028201 +02018301020102890201020002000100010283020100018201020101018100018c010001 +000100020100010201008100018201020109018500020001020104018102010501810201 +0301010284010201020101018100010201 +0b0181000101018300010001840100010001010181000102018300010001810102830200 +01020302850102010201020202830102010202028b010200020002000201020102040281 +010289020002010001020100028202000282020102820200020302120101008201000104 +018300010001050181000105018100010501810001040102028501020102010284020002 +000201020701870201000102010201010181000188010201020102000201030184000201 +020102018100010101020201000401810001050183020102010201820002010201830200 +020105018100010501010281010288020102000100020102820200010401810001010181 +020102010102810102010281010282020102830201020182010201010181000101018102 +018301020102830201020082000102810201010183000100010201850001000100010701 +850001000100010101010082010001010182000100810001010185000100010001890100 +010001000100010085000100010001010185000100010001860100010001000103018300 +010001040181000103018100010301840001000100840001020002840201000102010283 +010200028102010101830201020103018100010301010284010001000286020102010002 +010701810201030181020104010102030183020102018201020187010201020001020185 +010001000100010083010001008100010301850201020102010301010282010201840102 +0102010b0182000100 +020181020109018100018101008100010101010003018300010001810102010201010102 +810002010281010284020102010282020102020281010202028101020302810002090282 +0102010501030281010206020a018100018401000100012c010302020109028601020102 +010201080181020105018302010201090101028101028102010401010203018302010201 +0f0185020102010201810102820201028402010201028102010601810201020101020201 +020283010201028102010a01820201028202010282020102010281010282020102810201 +820102010701010201018100018401000100011101880001000100010001008d00010001 +000100010001000100018201000101019c00010001000100010001000100010201000100 +010001000100010001009000010001000100010001000100010001008200010001000201 +010281010281020109018102010101830001020101010102040183020100010901810201 +030181020103018100018601000100010001840100010001040181000186010001000100 +018701000102010002008200020184010201020101018102018401000100010601810201 +810102880201020102010201028502010201020182010201010101000101 +010101020601010084010001000184010001000107018400010002018101028302000102 +820201020402810102880201020102010201028202010201028100020802810102020287 +0002010001020102080281010201020c0181000104010300820100018e01000100010001 +000100010001000101018500010001000101018500010001000101018800010001020102 +010203028100028102008300020102840201020001020183020100011501010203018502 +0102010201820100010701010202010102050101020d0101020101820201028102010101 +010201018300010201060101028101028302010201010101028101028302010201090181 +000283020102018201000281020183010201000100020181020108018102010201810201 +170181000102018402000100010401830001000102018500010001000101018200010081 +000101018500010001000101018500010001000101018500010001000182010001050185 +0001000100010101890001020100010001000102018b0001000200010001000100010401 +8a0001000100010001000201040181020103018102010401810201030181020104018102 +018201020182010201010101028201020183010001000100820102000100040185020102 +010201140181020104010000 +020101020101020201018102010101830001000105018102018101020102010102020101 +0102820001028202000282020102020201018402010201020f0281010285020102010201 +01018102018101020102810102820201020602090181000186010001000100012a010102 +020109020a01850201020102010a01810201060183020102010101810201840102010201 +8601020102010201820102010e0181020103018102010301810201070101028101028202 +01028202010282020102820201028102010b010102850102010201028102018301020102 +810201040181020102018102010101010203018102010701020201010202010181020122 +018100010101940001000100010001020100010001000100010001008700010001000100 +010101850001000100010201820001000100020181000107018102010b01810201040181 +020101018300010201020181020103018202000108018700010001000100018201000284 +020102010282020102840201020102840200020102850201020002008300020102020203 +0183020100010701810201010101028b0102010201020102010201028202000102018102 +008100010001 +010101020201810201020183000200010201810001040102020101020201018100028102 +018101028202010281020182010201820102018301020102010281010202028101020602 +8300020002820200020202010186000200010201020402810102820201028102010b0181 +000104018200010082000100a40002000200010001000100010001000100010001000100 +010001000100010001000100010290020002000100020100020002000200020001008702 +010001000100010301020003018300010001040181000104010100820102010101820200 +018201000101018200020103010100040101000401010082010201860102000200010282 +0201028402000201028402000100010301010001028101028102008100018e0102000100 +010002010001000102018601000102010001820102008800020001020100020083000100 +0201028400020002008700020102000200018a0100010002010200010001020181000106 +01880001000100010001008e000100010001000100010002000100810001010181000101 +018100010701810201120181000107018300010001070101020100810102850201000100 +0283020100018c0102010001000200010001000182010001820102018a01000100020001 +000100010201010283010201028202010284020102010283020102010201810201030181 +020104018102010201820200028102018901000100020001000100810001810102870201 +0201020102010301810201060181020101018902010201020100020001810100 +010181020102018102010101020286010200020002010701010282010002810201020184 +020100010282020002820201028202010284020102010282020102820201020102890102 +010201020102010205020601820201020302810102040209018100010301850001000100 +012801030281010201028101020402030181020101018102012101810201010181020109 +018102010101010282010201010184020102010281020101018102010601820201028202 +010282020102820201028302010201040181020103018102010201810201040181020101 +010202810102860201020102010282020102040281010282020102820201020102820102 +0181010281020139018602000100010001010185000100010001030183000100010d0185 +000100010001020181000102018102010301810201030181020103018302010201060181 +000103010102810102840201020102810201020181020102018500020102000201028201 +000283020102018301020102840201020102860201020100020101018102008100018301 +020102810201010101028401000100010101850201020102010301010285010201020001 +8201020101018300010001020182000100 +810102010281010202028101028302000102830200010083000201028102010101010283 +010201028202010283020001020202810102820201020602830102010284020002010204 +028101020902840100010201830100010282020002820200020502820100011201840001 +000100a50001000100010001000100010001000100010001000100010001000100010001 +0001000200020102830002000202028200020001008102000d0081010001008702000100 +010001000200870100010001000100040002010400810200040081010001008101008200 +010001008501000200010086000100010002000200830200020002008302000100030083 +010001000100010182000100010082020102880200010002010201008100020102820002 +000100810102810200020001028401000100028102010201840001000100870002000200 +020102880200010002010200010401810001060183000100010101850001000200018601 +000100010001820102018401000100010201830001000102018102010301020210018300 +01000105018300010001070183000100010801820200028f020002000100020002000100 +020100018301020102860201000100020183010201028502010201020181010282020102 +830200020181010285020102010002830201020181010281020107018102018201000281 +020187010001000200020083000200018201020182010201070181020102019102010201 +02010201020102010201000100010101 +010202010102810102020285010200020002020201010302010102028100028202010283 +020100028102018101020202810102820201028402010200028602010201020002820201 +020602810102020282010201820102010101010281010282020102040281010281020106 +01830001000101018700010001000100010101850001020102011f010202850102010201 +020602860102010201020110010102010181020107018102010301820201028102018501 +020102010284020102010282020102870201020102010201030181020103018102010301 +810201010182020102810201830102010281020183010201028102018101020502810102 +820201028102010201010203018102010301810201020183020102018101020102010182 +020102810201820102010901810001030182000201070183020102011101810201110183 +00010001870102010200010001030181000113018100010201810002820201028a020102 +000100020002000108010102030181020103010a02810002810201810102830201020182 +010201820102010401820201028102018801020102010200010285020102010001030101 +0001018102018201020102018d0201000100010201020102010201030101020301830001 +00010201850001000102018301000100 +830102010202028101028102018301000201830100010081000204028101028102018101 +028102018101020302810002010281010203028301020102830200020187010201020102 +010207028100020202860102010002000181010203028101020402810102010216018500 +010001000102018500010001000101018500010001000101018500010001000101018600 +010001000102020283010201020202810002010282000100840002000200010082020100 +020082010001890100020002000100010002008701000100010001008600010001000200 +820002000600810200040081020004008501000200020086000200010002008600010002 +000100820001000400810200020085010002000200840002000100860001000100010084 +000100010086000200010001008400010002000200830102010083000100010201830002 +000282020100840002000201810102810200820001008200010082000100810001010181 +000104018502010002000101018600020002000201010183000100010301830001000102 +018300010001030181000183010201028302010001050181000101018100018601000100 +010001010187000100010001000105018500010001000182010201030101028401000201 +028202000282020102820200020102830100010202028101008100018201020183010201 +028102010101820201028102018101028502000100010287020100010001000102018102 +010401810201810102810201880100020102010002000100810100850001000100010701 +86020100010001028b02010201000102010200020086000102010001008100010001 +020181020103018102018401000100010201810001010181020181010204028101028302 +010002820201020102830102000282020102020281010282020002820201020102810002 +050281000208020201820201020202810102040281010202020901810001030182000100 +810001270103020101840201020102050282010201100189020102010201020102010801 +860201020102010281020181010202028101020402810102020281010284020102010284 +020102010282020102020281010203028101028302010201030181020102018102018101 +02820201028202010282020102820201028102010a018102018301020102810201830102 +010281020181010283020102018201020102018102010101810201840102000201020187 +02010201020102010f010102810102810201070181020111018202010283020102011b01 +830001000103010402810102010283000200028102010101810201070101028201020101 +010302810102010288010001000200010001010184020102010282020102840201020102 +84020102010282020102840201020002820201028a020102010002000201020081000101 +010102030183000102018801000102010201020104018500010001000102018300010001 +0201830001000102010000 +8102010d0183000100010901060282010002820201028402010201028302010201830102 +010284020102000202028101020102850102010201028402010201028302010201010183 +020100020602810002030214018100018201000102018100010101850001000100010101 +850001000100010101850001000100010101850001000100018601020002000102010202 +00820200028e020100010001000102000200020001010182000100810001010185000100 +010001890100010001000200010082000100010081020082000200010081020003008101 +000300810200040085010002000200860001020100010086000100010001008300010200 +020081010281020001008401000201000100820100018601000100010002880200020001 +000201000100890200020100020100020102018102018101020102810102820201020202 +0100810102010203018200010003008102008500010201000105018b0200020001000100 +010001008f000100010001000100010001000100019f0100010001000100020001000100 +010001000100010001000100010001000100860001000100010001008801000100010001 +000182010001040181000103010302810102820201020102850002000200020102810001 +860100010001000101018300010001830102010202028101028302010201030190020100 +01000102000100010001020102010201010201018402010201028102018c010002010201 +000100010001008500010001000103018102010101840201000100810002840201020100 +8900020102010200020001010181000182010001 +8101028102010701020003018100010a0181020101010202810102810201830102010283 +020001020302810102020281010206028100020202830102000283020102010401070281 +010204028201020107018100010301830001000129010302010103028101020302070183 +020102010801820201028102018201020101018102010801010281010282020102020281 +010202020301810201020181020102018402010201028202010282020102830201020181 +010281020105018402010201028202010282020102820201020302840102010201030181 +0201830102010282020102820201020a0281010281020181010201020101030281010282 +020102010282000201020181020102018102010901810201030102028101028102011501 +810201820102010301830201020182010201170101008201000184010001000203028b00 +020001000100010001000101018102018301020102820201020202020103028101020102 +880100010001000100018101028102010201830201020101010202020101020301860200 +010001000186010001000100018401020001008200010281020102018200020101018100 +01820102018701000100010002010101830001000102018a000200020002010001000101 +01810201 +0f0183000100010f01820001020102830102010281020183010201028402010201028102 +018101028202000206028101020702810102810201010182020102010281000282020102 +070206018100011501830001000103018300010001030183000100010301830001000101 +010202850102010201020702860102010001020102018100010501890001020102010201 +0001040185000200020102850200010002018201020002008a0100010200020001000102 +810200830001000101018500010001000186010002000200028802000200010002010202 +028100010101810201010183000102000100820200028202000282020102010283000100 +028602010200020002810201810100820002008100028102008400020001028202000201 +028101028302000100810001010181000102018200010082000100820001008100028102 +0105018302010200010002018c0001000100020100010001000101018200010001000301 +830001000101018200010001000201820001000200880201000100010001008100018101 +000400810100040083010001008100010201850201000201028202010201028101028202 +0102880201000200020001028402000100018b0100010001020102000201028102010101 +83020102010101830201020103018300010001880100010001000100010a018102010301 +830002010286020102000200018601000100010001030185020002010201010101008202 +010282020100820002010401810001030182000100 +810201070182000100010081010083000100011401010281000281020183010201028202 +010203028500020002000201028300020002820201020602010181020101010202810102 +820201020702810102020202010102050183000100010201830001000122010202010182 +020102020281000203028601020102010201010181020118010102810102010202010102 +810102810201070182020102820201028102018101028202010282020102020201018302 +010201810102840201020102820201028202010282020102030281010282020102810201 +81010281020101010102820102010101820201020102830102010201020a010102810102 +820201020102810102820201020102810102820201008200010081000102010100820102 +010701010203010202010181020117018502010201020120010100820100010201850001 +000100010101890001000100010201000101018302010201810102830201020181010281 +020107018900010001000100010001190185000100010001810102810201010181020183 +010001008100018201020102018102010201830001000102010100830100020185010200 +01000101018b0200020002000201000102010101810201 +090181000101018300010001110181000181010082000102810201820102018101020302 +83010201020c028300020002820201020202810102810201010182020102040281010204 +028101020202830102010202023201010281010282020102030281010202020901850201 +020100010301860200010001020184010001000103018400010002010101870001020102 +010200840002000102880200020100010201008300010001010189000200010002010001 +02820200028202000201028b000201000100010201020002820201028102000300810200 +020085020001000100860001000100010002008102000300810200040086020001000100 +0102018500010001000185010001000201830102000101010200820100010b0101000101 +86000100020002008f000200010001000100010001000100010201880001000100010001 +008100018501000100010082000102850201000100010101850001000100018401000100 +018201000103018200010081000104018200020102010102070189000100010001000100 +01860100010201000118018300010001880100010001000100010a018100018601020102 +00020102018c020001000100020100010002010101860002000200020101018400010001 +0282020100830001000106018102010101810201 +8102010901010001010100170181000104018502010201020181010203028100020b0281 +010203020501120281010201028101020202820102018501020100010084000102000101 +010100010181000101018500010001000101018500010001000101018500010001000101 +018100020102810001010104028300020002840200020001860100010001000182010001 +8c0100010001000201020102000102018302010001010182000102040283010201008100 +010101820201028402010201020102820001020302810001860102010201000101010102 +830102000203028401000201028202010281020103018100010101010281010282020102 +820201028202010287020102010201020104018302010201010101020101820201028102 +018101028302010201810102010283000102010301010081010082000100820002008100 +01050101028101028102010101820201028102010c018102010e010102820102011d0183 +000100010501830001000103018100028702010001000102010201810201010101020b01 +820201008500010002000183010002010301810201110102020201820201028502010201 +020101018200010082000102020202018102010101010005018300010201010190020002 +00010201020102000200020102010501 +810201070185000100010001130185000100010001050181020105018202000202028101 +020402810102070281000105010202810102100281010203028101020302820102018801 +02010201020102011e010102020101028101020702890102010201020102010283020102 +011601010281010201020201810201010181020182010201010181020186010201020102 +018201020103010202810102830201020102010102010184020102010282020102060281 +010201020301810201030181020106010102820102018101028302010201820102010b01 +010281010204028101028202010201028101028202010281020112010102860102010201 +020108018100010901040201018102018101028102010201810201820100010501810001 +040181000106018300010001820102018401000102010b01840201020102010281010201 +0284000102010283020100010c0101020101820201028402010001020102830001000201 +028201000182010201010185000102010201030184020001000102018500010002000185 +010002000201010186000100020102010101820001008100010101820001008100010201 +850201020102010301 +090181000182010001810100810001140183000100010b01830201000207028301020102 +820201020202820002010101810201810102010281010203028101020f02810102020283 +010200020502810002810200820001009c00010001000100010001000100010001000100 +010001000100010001028202000282020102020201008602000200020100120085020002 +000200820001000100890100010001000100020083000100010101040081020082000200 +0100850100010201008a0001000200010001000200850002000200020202810002020281 +010001000102820001000100830100010002008201000281020001008301000201810100 +830001000101018200010081000181010086000200020002008500020002000282020102 +820201028102010301810001050183020002008500010200010082000201030101028201 +020122010202810102820201028102010201020281010281020118018402010201028402 +000200020302810002010282000102010281000182010201050102028101020102010182 +02010282020102030281000201020a010402810102840201020102820201020402830102 +000201028901020102010001000102830201020101018102018101008400010001028502 +010200020101018d020102010200010201020002000105018102010001 +090185000100010001130183000100011001830002000203028301020102020281000205 +0203018202010202028101028202010201028101021202810102090203018102011a0182 +0201020202810102090286010201020102010c0183020102010401810201850102010201 +020202810102010207018102010101010282010201830102010281020183010201028102 +01010101020201830201020181010283020102018301020102810201820102010d010102 +810102820201028102010101820201028202010283020102018101028102010701040281 +010201028101020202010103028401020100018101008100010201810201040183020102 +0102018102010101830201000104018100010c0181000183010201020102840001020102 +040203018300010001030183000100010b0101000c010102810102010281010209028101 +028202010284020102000181010281020181010284020102010203028100020202810102 +03028201020186010001000100010e010102820102018301000201010185000200010001 +840100020001040181000103018102010101010202018c02000100010201020102010201 +0301 +0d0182000100810001140183000100010b01850001000201020102830102000208028900 +02010001020001000201028101028202010201028101020f028101020802810102050282 +0100019c0100010001000100010001000100010001000100010001000100010002010283 +000200028802010200020002000283020001000400810100020081020082000100010085 +01000100010002008b010001000100020002000200860001000201020003008102008200 +0100010085010002000100880002000100010001008a0001000100020001000100810002 +840201000100020083020001000100830200010002008302000200020085010001000100 +880001000100010002008100028102008100020102830002000202028300010001090181 +00018101028a020102010201020001000283020100010c01810001810102040284010201 +020182010201030181020081000107010f028401020102010b0183000100010301810001 +010182020102010281010202028100020102870002000100010201810102860201020002 +000283020001020102010182020102810201810102830201020184010001000109018400 +01000102840201020102840201020102840201000102820201028402010200028102018e +010200020001000201020102010001850100010001008400010201028102010701810201 +0301830001000105018102010001 +0701850001000100010201810001100183000100010d0101028a01000200020102010201 +028402010201020502850102000100018101028202000201028101020902810102020281 +01020202830102010202028101028202010209021d01010281010208028101028102011b +018202010281020181010202020e0181020103018102010a018102018101028402010201 +028202010203028201020182010201030181020102010302810102040281010282020102 +010284010201020108018102018301020102810201810102830201020181010287020102 +010201020108018200010281020089000200020102010201028202010281020102018102 +010701010281010281020101018302010201820102010601090203018102010201810201 +820100010501810001050181000101018100010201020201010102850102000201020102 +810102820201028302010201810102830201020181010283020102010201810001060101 +028101028402000200028202010284020102010281020108018102010301810201050183 +00010001820100028102018b010001000100020100010001040183000102010101810201 +010101028f010201020002000102010201020102010301 +0a01820201000100170183000100010b0183000100020102830102010204028101028202 +000286020002010002008400010201020102810102820200020502830001020181010209 +0281010202028101020f0202018300020001030183000100010301840001000102020284 +000100010201028300020002010286010200020002010101830001000103018200010081 +000101018200010081000101019000010201000100010001020001000100018101008200 +010001000101820001000100010181020002000201820001008100010101850001000100 +018601000200010001820102008500020002000281020089000200020100010001008800 +01000100010002008800010001000100020084000200010283020002008c000100010001 +000200010201028202010201028101028202010201028101028202010283020001000100 +820100010301010201010102020182020102010281010201028201020109010100090102 +028301020002020282010002980201000100010001000100010001000100010001000100 +010085000100010001050183000100028302010201010185000100010001880100010001 +000100028802000100010002000101010102810102830200020182010001010181020103 +0181020183010200028402000100028702010200010201008400010001028b0201000200 +020002010201008700020002000200018e01000201020100010002000100020182010201 +0d0183000100018201000102018102010001 +07018800020002000201000104018102010901850001000100010f010602810102020281 +010205028201020182010201030101028100020102810102050205018202010282020102 +050281000205028101020b02810102820201020302840102010201080102020301090286 +0102010201020101018102011d0181020114018302010201030181020102018202010282 +020102810201810102810201060181020183010201028102018301020102810201830102 +01028102010c01010281010282020102820201020402810102820201028102010a010102 +8101020102810102820201020102810102010282010201010101020c0182020102830201 +0201050101020a0101020301040202018302010201820102011501010008018302010002 +820201028202010282020102820201028202010282020102830201020105018100010401 +010288010201020102010002830201020181010283020102018101028502010201000284 +02010201020102840002010201860102010001000186010200020102018b010001000102 +000100010001020184020102010281020101018902010201020102000100880002010201 +020102010301 +080183020002000200850102000201028102010d01850001000100010b01820201028202 +000207028301020102030284010002010001000502810102060282010001050101020201 +0102830102010203028100020c028101020b020301830001000101010202830102010203 +02810002030208018102010a0183020102010a0183020102010101810201030181000109 +018102010c01010283010201028402010201020102820102018101028102010601840001 +000102820201028202000282020102860201000201020101018200020103018100010301 +820200020102810102820200028202000201028100020402090182000100010083010001 +0281020101018502010201020103010102820102010d0181020109010302820100020102 +820002000200830100010293020001000100010001000100010001000100010004000101 +010002018300010001010181000101018500010001000191010002000100020100010002 +000100010001810102810201810102030201018202010281020181010283020102018301 +020001880102010002000102018301020100810001040185000100010001040101008602 +000200020102850201000200018501020002000113018100018401000102018201020100 +01 +0701860001000201020086000102010201028102010901830001000102018100010d0102 +028101020102830102010205028101020202010181020101010b02820102010301810001 +03010100010182000102820200020202810102050283010201020a028101020402810102 +0102820102010301030201010202810102040284010201020101018102010e0181020106 +018102010101820201020102820102011401810201020101028201020108018202010202 +028101028202010282020102820201028202010281020109018202010283020102010101 +820201028202010201028101028302010201070181000101018102018501020001020181 +01020102010182020102810201810102820200010b018102018201020181010283020102 +018101020102150181020182010201810102060281010281020101018102011401010002 +018100018201020183010201028502010002010281020181010281020105010102080182 +000201820102018b0102000100020001000100010e010100820100010201890001000100 +010001000182010201860102010001020101018300010001860100020001000102018402 +010201028102010101890201020102010200020084000201020104018102010001 +07018d00010001000201020102010201028102010101810201060186020001000100010d +018202010208028101020702840100020100830002000204028101028202010201028300 +0100010b018102010101010281000207028101020e028101020102810102050281010282 +020002020282010002020284000200010281020101018202000107018100010101810001 +010181000101018100018601000102010001010188020100020102010001020181000181 +010081000103018300010001020183000100018401020102008100028e02010201000200 +020102010001000102018300020002820201028502000200010285020100020002880201 +020001000100018601000100010001840100020002820201028102008400020001028302 +00010083000102010e018102018801000200010001000201020201830201020123010202 +8100020102810002030284000100010081000201028e0100010001000100010001000100 +010101020085010001000100810001030181000183010002018301020102810201890102 +01000201000200028902010002000200010001040183000100010f018100010401850001 +020102018501000201020101018302010201820102010301010281000201028100020202 +840100020001850102000100010a0101028b010200020102010002010001820102010201 + +090188020102000200010201010182020102870201020102010201010181000182010201 +01018100010b018200010201028301020102040281000282020102030202018102010101 +02028101020302810102020204018100010401810001030182020102040201010e028101 +028202010282020102820201020902810102010202018202010203020101810201090181 +02018201020102018402010201028102010d018102011f01840201020102820201028202 +010205028101028102010d01010282010201810102830201020181010281020101018202 +010281020104010102060181020102010102020181020081000101010102020181020104 +010100090181020102010102810102820201020102810102010282010201120102028101 +020702010101028101028102011601810001040186000200020102018801000100010001 +000108018102010a01010285010201000102870200010002000201010183020102010101 +830201020101010100050182020102010284000200020182010201040181020101018102 +00820002018d010200010002010201020102010281020101018102010601820001008100 +0105018102010001 +070186000100010001028a02010201020102010201028f02010201020102010002000200 +0200010d01820200020b0283010200020202840100020100010004028101028202010203 +02820001008100010d010402820002018401000200028202010203028101028202000213 +02810002010201008202000201028a000200020002000100010081000182010201020184 +00010001008a00020002000201020001008a000102010001000100010285020100010001 +020183000100010401810001040181000103018302000201030181000104018100028602 +0102010200018601020102010201850100020002010d0181020102010102020183020102 +010101010203018102010e0101028101028202010201028b010002010200020002000201 +0c0182020102810201830102010281020113010502820102018101028102018101028102 +0101018102010b0181000105018500010001000105018300010001030102020101010285 +010200020002010281000286020102010201028102010101810001090101028101020102 +810102820201028202000282020002820201028202010282020001090181020101018202 +0102810201040181020182010201020181000188010201020102010201030101028b0102 +000200020102010200028102010301 +070184020102010083000200028502010201020101018202010288020102010201020102 +850201000100010b011602020181020101018202000209020c0181000104010402010185 +0201020102010201830201020101018202010214028201020101018202010207020b0183 +0201020110018102010201850201020102011a0184020102010282020102840201020102 +81020101018302010201050181020102010102030101020301010203018102010c010202 +810102820201028602010200020102820201020102820100020102020181020102018400 +020001008100028402000102010301810201020182020102810201820102011a01010201 +010302820102010201810201010101021201810001050181000101018202010281020181 +010201028601000100010001820100010401810201810102820201020102810102820201 +020102810102820200020102810002830201000104010100010182020102820201028202 +01028202010284020102010201028400020002010b018302010201850100020002010101 +810201080181020108010100010186000201020102010001 +050187000100010001020184010002010287020102010201020182010201010187020100 +01000100010e010e02830102000202028201020101018300020002040281010205028300 +0100010d01030281010287020102010201020108018202010216028e0102000102010002 +0002000200020183010001008100010401850200010001008a0002000200020002000100 +880001000100010001008800020001000100010086000100010001008800010001000100 +010086000100010001008600010001000100860002000200010086000100020001008400 +020001008600020001000100860001000100010084000100010086000100020001008600 +010001000100840002000100860001000200020089000100020001000102010101810201 +020101000201020286010002010200010101810001080101028201020181010281020101 +018602010201020102010215010402060101028401020102011501830001000102018602 +01020102010201028101020102810102010281010201028101028a020001020100010001 +000183010201028202000201028101028202010201028101028202000282020102820201 +02820201008100018a010001000100010001000181010281020187010201020001020182 +01020107018102010901870201020102010201030101028a010201020002010201020106 +01 +090182020100870002010201020102880201020102010201028602010201020102830201 +00010d010302810102030281010282020002060288000100010001020002070281010201 +020c01810001030103028101028102010f01050201010202810102010283010201020502 +0101820201020102810102050211018102018101028102010d0103020901810201030181 +02010b018102018101020202820102018301020102010282010201820102010a01810201 +030181020102018102010201810201050181020102010102030181020103018102010a01 +810201010185020102000100830002010002008102018201020102018102018201020104 +0181020102018102010d018102010a01030226018100010101830001000103018a000100 +01020102000100028102010101010281010282020102010281010281020104018a000100 +010001000200020101010102820001008100028102010201010201018202010281020186 +010201000100011101860200010001000102018102010801810201820102010101810201 +010185000200020002810201820102010001 +04018100018a010001000102010200020101010102870102010201020102860201000100 +01008100010c018100018101020302810002020283000200020302810002020202018402 +0001000202028101020602820100010701810001020183000100028202010201028d0100 +020002000102000100010001010182020102030283010001008300010201810102030281 +010202028201020181010203028200010283020002008200020182010001040181020101 +018100010101850001000100018901000100010001020100880001000201020102008100 +0101018c000100010002010201000200010201830001000102018c000100020102010001 +000102018401000200010201830002000102018200010087000100010001000183010201 +008100018201020101018100010401810001030183020002010101830201000101018400 +010200018101020102850100020002010201880201000100020100018201020107018102 +010301810201010181020102010102020101021501030204018100010201830201020105 +018300010001030183000100010301810001060182020001010101020a01900001000100 +010002000100010002010001820102010301810201040182000100810001040182000100 +010084010001000107018200010001000101820002018201020111018102018101028502 +010201020104018102010101830200020109010002 +08018102008a000200020102010201020187010201020102010285020102010201840100 +0100010c0184020002010206028101020802010183020100018101020d02100182020102 +030201018302010201820102010701820201028202010281020106010902820102010101 +0b0201010302840102010201080183020102010201850201020102018501020102010282 +0201028102010c0181000104018100010601830201020101018102010401810001820102 +0101018100010c0185000102010201850100020102010101810001010182020102810201 +810102010201018102010201810201030181020107018102010201810201010101000101 +030002018102010501810201100101021301020201010202060101021901810001050181 +00010301810001860100010001000106018102010a018b00010001000100010201000182 +010201010185000102010001010181020103018102010501830001000104018102010701 +8102018201020182010001820100010701850201020102010101820201028f0201020102 +00020002000201020102010001 +050190000200020102010002000201020102010281020101018102010101870200010001 +0002010c0181000181010203028100028402000200020202810102030282010201850102 +010001020402810102050282010001070181000187010001000102010202029400020001 +0001000100010001000100010001020102820200028c0201000100010001000100010201 +02810102040281000203028400020002008800020002000200010204028b010201000100 +010001000100880001000100010002008a00010001000200020002008600010001000100 +880001000100010001008600010001000100860001000100010086000100010002008600 +010001000200860002000100020086000100010001008400010002008600010001000100 +860001000100010086000200010001008400010001008600010001000200860001000200 +010083000100010201810001010181000101018100010101810001820100010f01810201 +0e018202010202028201000106018800010001000100010206028d010001000100010001 +000100010081000101018300010001030181000103018100011201810201020186020001 +000100020102830001020185010001000201020181020107018200010081000106018500 +010001000109018200010001000101850001020102010101850201020102018401020102 +0103018202010283020102010f018100010901 +060183020002008400010201028602010201020102880201020102010201028102018101 +028402000200010b01820201020502850102010201020102810002040206010402810102 +050281000110010402810102830201020182010201090182020102030209018600010201 +020102010202018402010201020702830102010282020102010284010201020101010102 +0a0181000104018102010e01810201010183000100018601000100010001040183020102 +010201830200010285020102010201020183000100010101810201060183000100010201 +830002000101018602000100010201030101028201020182010001040101000901810001 +0701810001010101008201000109018102010d01010281010204020e0107020101810201 +0201020219018300010201010183000200018101008a0002010001000100010001140101 +00880100010001000100010a018100018401020100010101810201030184020001000182 +010201010183020102010401810201040184000201000104010102860102010201020102 +0101028101028d02010201020002010201020102010001 +05018a00020102010001000100018701020102010201028e020102010201020002000100 +0102010b01820001020102810002110202018400010001020b020a018900010001000100 +01000202028101028a020001020100010001000101018500010001000203028300010001 +010185000100010001010183000200020102850102000200020302010088020001000200 +020002010281010202020201810200010083020002008800010001000100010088000200 +010001000100880001000100010001008800010002000100010086000100010001008600 +010001000100860001000100020086000100010001008600010001000100860001000100 +020084000100010086000100010001008600010001000100860001000100010084000100 +010086000200020001008600010001000100810001040181000105018100010301010001 +018500010001000112018102010201030282010201810102020207018600010001000102 +060281010284020001000201028600010001000100910001000100010001000100010001 +000100010301810001120181000103010102060182000201030181020102018102010101 +830001020103018102010101850001000100010701840201000100860002000100010201 +0201010102020101028201020115018102010901850201020102010001 +04018a000102000200020102010283020102010101820201028102010101810201010187 +02010002000100010d010202830102010204028101028202010203020201810201010102 +02810102080283000100010e01840201020102010206018100010101810001040104020a +01840001000102030283010201020a028501020102010204028101020202810102820201 +02020204018602000100010201010101028401020102010a018500010001000186010001 +00010001010183000100010401820001008a000200020001000100010085000100010001 +060184000100010088000100010001000100890001000100010001000102018100028202 +01008600010001000100020008018100010b018202000101018102010201810201070181 +0201060102020201810201010103020b0106022c01820200018b01000201000100020001 +000186010201000100020102860001000201000104018200010081000107018102018201 +020182010201820102018501020100020182010201810102810201010181000281020106 +018102010501810201020181020184010001000102018202010285020102010201030184 +0201020102850201020102010601 +08018602010001000102870201020102010201010182020102880201020002000102010d +01810002840200020102040281010282020102070201018402000100020c020901070082 +020102030281000105018300010001030182000102020285010200010001030183000100 +010201820200020102020103028601020102000200010002028100020202810102020284 +000200020082000200820002018601000100010001860100010001000282020100830001 +000101018200010081000101018500010001000186010001000100018601000100010001 +860100010001000186010002000200018601000100010001850100010001008400010001 +008100010101820001008100010101820001008100010101820001008100010101820001 +008100010101010082010001010182000201020181020102018102010201810201020181 +020081000181010001000501010205018102018201020102018102010101010208010202 +0801840001000102020281000282020100850001000100028e0201000100010001000100 +010001009300010001000100010001000100010001020100011001810201020181020103 +01830201020182010201820102018b010201020001020001020001820100010401010281 +000201028101028202010282020102820201020202810002020281000105018302010201 +01018102010e010102820102010201010285010201020102890201020102010201020100 +01 +05018b000200020002010201020102880201020102010201028d02010201020102010002 +000100010c010802810102020281000282020102020201018102010101820201020b0201 +000f0182020102030207018a000100010001000100010204028300010001050185000100 +010002020281010283020001020702040103028101020202810102020282000200810002 +81020101018a000100010001000102010083000200011001810001020185000100010001 +86010001000100010301820001008a000201020001000100010085000100010001060184 +000100010094000100010001000102000100010002000100010201820100028202010086 +000102010001000100810100810001030101028100018101028102010101010202010102 +810100810002810201160101020801010207018102010201070201018402010001028102 +011c01810201020181020102018902010001000102010001020189000100010201020100 +028202000201028101028202000201028101020102810102820201028202010282020102 +810201820100018601000102010201010101020101820201028202000284020102010282 +020102810201820102010101810201010182020001840100010001020183020102011a01 + +06018a020100010001000102010281020181010284020102010289020102010200020002 +010e01830002000203028300020002030283010201028202000281020186010201000100 +020102810102020281010202020801820001000300010182000102820200020202020183 +0201020109018202010201028201020106018100010301020203010a0284010200020102 +010302820102018601000100020002010281010283020102018201020102018102010101 +810201070181000104018100011301810001150101008201000102018102010301810201 +09018100018101028402010001028102010101830001020101010102020101020e010100 +01018100010e018102010101810201020181020181010201020801020204010202010185 +000100020002030201008102018601000100010001010185000100010001010185000100 +010001860100010001000101018200010282020002010281010202028101020102810102 +010281010201028101020102810102010203018102010101820201020102810002010281 +010282020002820201028202010201028101020302010182020102810201840102010201 +830102010085000100020001010182020102830201020182010201010101028201020105 +01860201020102010281020101018a020102010201020102010287020102010201020100 +01 +05018400010001028302010201010101028a010201020102010201020182010201010183 +000200010e01020281010204028100020202810102820201020102020101020101010281 +010201028101020502010010010302810102810201070189000100010001000200020402 +8f0100010001000100010001000102010202028200010208028500010201020102010102 +81010281020101010102830100020081000101018a020100010002000100010085000100 +0200018201000108018100010e0181000109018100018201020101018100010401810001 +030181020103010102860100010201020182010002810201010185020002010201010181 +020101010102820100010101810201810100810001840100010001010183000100018401 +000102010201810201020102000201810201020181020101018102010801820200028302 +010201070102020201040203010302810102810201830102010202028201020112018100 +010401830201000103018100028102018101028202000201028100020102810102010281 +01020102810102820201020102820102018401000100010a018102018301020102100283 +010201028302010201810102810201010182020102810201060183000100018201000120 +01 +050186020102000200018501000201020182010201010181020101010102850100010200 +028102010d01870002000200020002020281000282020102070203018202010205028101 +020502070184000100010001008301000102020281000281020104018300010001060182 +02010203020f010302010109020201820002010201020281010281020182010200860002 +000100010281020104018102010201810201820102010501850001000100010201830001 +000101018200010081000105018100010201830001000104018100010201810201030181 +020101010100820200028202010282020102010281010201028101028202010202028201 +020101010102810102830201020101018200010282020100830002000181010285020100 +010201840102010201820102010101010084010001000102010102020101020201010202 +010102030102020a01020201010202010103028101020702030183020102011801820001 +028202000202028201020101018102010901820201028202010282020102040281010201 +028101028202010282020102040282010201820102010201020202018202010201020101 +010201018202010281020083000200028102010101060205018102010501860201020102 +0102810201040101028501020102010281020181010283020102010001 +0201810001850100010001028a0201000102010201020102880201020102010200028302 +01020083000100010d010202820100020a02810102820201028102010101010281010203 +028101020202810102020282010001070181000104018202010203020601810001040181 +000183010201020302810001010187000100010001000101018202010202028200010206 +028100028302010001060101028201020101018200020004008b02000100010001000100 +0100850001000100010501810201040181020104018100011d0182020102820201028202 +010283020102010301810201030101028101020102820102018101020102010181020181 +01020102010102008102008100010101830201000183010201008a000100010200010201 +020184010201000184010001000103018202010201020201010283010201020202810102 +020281010202020501020281010201020401010281010207028101020202010181020118 +018100028202010201028101020202810102010281010201028101020102810102010281 +010205028500020002010281020183010001020202010102020101030281010203028100 +028202010281020181010281020102018300010001090182020102020201010102840100 +010001820100010701850201020102010101810201020188020102010201020102810201 +0001 +84010001000181010084000200020089000200020102010201028c020102010201020102 +010002011001060283010201028202010205028101028302010001820102008100020202 +8101020102810102030208018b0001000100010001000201020302870002000100010001 +010181000182010001010182000102040201018100010701810001810102020283010201 +020102810102050282010201040181020184010201020101010100860100010002010281 +02010501810201020101020301820001008a000100010001000200020083000100010101 +820001008800010001000100010087000100010001000186010001000100018b01000200 +010002010002010086000200010201028102018301020002010202018400020102010101 +010202018302010201010101020301810201890100010002010002010202028101020202 +810002010282010002840200010002010281010281020105018102018401020100020102 +810102070282010201040101028101028102010401810201810102010283000201028402 +010002010101020282010001050181000112018600020002010001020187000100020002 +000281020181010286020102010201028202010201028501020102000202028b00010001 +000200010201000106018102010201830201020107018200010002000601010281010201 +02810102850201020102010501850201020102010301810201020183020102010b01 +03018a02010201020102000200028602010201020102850201020102018a010002000100 +01000100010d018402010201020f028201020101018102018101020c0283000100010601 +81000105010502120104020f010302010182020102030283010201028302010201040182 +020102810201010183020102008600010001000102810201010102020301810201850102 +010201028502010201020106018102012401810201010183020102010101010202018302 +010201010101020201810001810102850201020001020102010181000203020300820200 +028302000102830200010083000200018301000100810002010281010201028101028402 +00020102020281010281020102010102810102810201060101020a010102810102810201 +010182000102050281010202028401020102010101810201190187000100010201020181 +01028402010201028102010501850001000100018a010201000100010201000105018102 +010301810201090183020102000100820100010801810001040181000106010502820102 +018201020105018902010201020102010201030101028e01020102010201020102010201 +0201 +810001830100010003000101810201820102010101810201010181020185010201020102 +8702010201020100010c01860201020002010202028100028202010203028a0002010201 +0002000100020102810102080209018a000100010001000100010204028d000100010001 +000100010001000184010001000204029001000100010001000100010001000200020202 +840100010002820201020402830001000104018202010201020101920200020002000100 +01000100010001000100028f020001020100020002010200010001008800010001000200 +020088000100010001000100880001000100010001008600010001000100880001000100 +010001008600010001000100880002000100020002008500020002010286020001000201 +020102820100010401810001010184020102000201028201020082000100820002000200 +820201020102840100020002010281000282020100810001010182000201010181020101 +010102020101020201830200020181010201028100020202080181020181010281020105 +01020282010201060181020102018102011c010200010181000102018700010001000100 +0116018b000100010001000100010001190101008401000100010a010102870102010200 +010001820100010c018102011101 +050188020102000200010002880201020102010201028c02010201020002000100010001 +0f010d0281000205020201810201810102820201020a0283000100010601830001000101 +01820201020302120105020e010302030182020102040281010281020182010201040101 +028201020103018200010001008302010201050183020102010201840201020102830201 +02010201830201020101018102011d010302020101020701810201010108028101020102 +810102040281010201028b01020102000201020001000102018102010101010081010083 +000200028102018101008500020102000281020081000282020001840102010201820100 +010101010281000101018302010001030182000201040186020102010201028102018101 +02810201040101028101020102270181000113018100018e010001000100010001000100 +010001820100010d01810001070185000100010001080181000184010001000182010001 +060182020102010281010283020102010501810201810102850201020102010301820201 +028d0201020102010201020102010201 +81000189010001000100020102010a018202010283020102018701020102010200010a01 +820001028202010207028101020302810002020283000102000100810102030281010206 +020d01830001000181010202028100029002000100010001000100010001000100018201 +000203029000020001000100010001000100010001020202840002000102080284000200 +020105010102020101009102000200020002000200010001000102010088000100010002 +0001028302000200880002000100020002008a0002000100010001000100880001000100 +010001008600010001000100880001000100010002008600020001000200880002000200 +020001008600020002000200860002000200020086000200010002008600020002000100 +820001028102008600020002000200820001000100820100010201030087010002000200 +010081000104018100010701820200010101010082010002870201000100020001010108 +020101010283010001008300010002030286000100010001009d00010001000100010001 +000100010001000100010001000100010001000104018200010001000101810001020187 +0001000100010001160189000100020001000100010a018300010001820100010a018500 +01000100010b010102840102010001840100010001090183020102010c01850201020102 +01 +0501810201810100810001820100010701010203018700020002000100010e0102028300 +02000202028100020a02010181020101010d0284010001000104018b0001000100010001 +000200020302110184020102010201020d01010284010201020181010207020801820201 +020202020101020100810100830002010281020106018102018301020102010281010281 +020102018402010201028502010201020112018102010201010203010202830102010205 +020101050281010206028101028202010201028201020107018200010285020102000201 +050101008101008200020103010100810201820102010101010004018200010001008101 +008200010082000200820001008200020084000100020084000100010204028101020102 +81010281020107010202280181000113018100018c010001000100010001000100018201 +000184010001020108018500010001000105018500010001000101018100010501020082 +010001820100010901040282010201060101028401020102010401810201830102010285 +0201020102010501 +020185000100010001820100010c01010206018100018401000100010701820001020302 +8101020e02830002010001008102008300020002010281010205020d0181000102010602 +01018f00010001000100010001000100010002840201020002830201000101018e000100 +010001000100020001020102820201020902840002010201030104029b01000100010001 +000100010001000100010001000201020100020002020281000201028201020105018100 +01140182020102880201020001000201028202000206028d000200020001000102010200 +010086000100010002008600020002000100860001000100010081000101018200010084 +000100010082000100010081010084000100010002008701000100010001008100010101 +820001008100010701820200018201020083000100020102850001000200010101020201 +0104028101028602010001000100820001020202880001000102010001009b0001000100 +010001000100010001000100010001000100010001000104018400010001008300010001 +0201880001000100010200011601010006018100010701010082010001820100010a0182 +000102840200010201090103028301000100830001000101018100018101028702010201 +02010201010186020102010201028902000201020102010201 +0601830001000101018100010d01850001000100010e0182020102040281010202028101 +0207020201010202010502810102050284010001000104018a0001000100010001020102 +040210018202010203020201810001080101028701020102010200020402810102010284 +010201020103010102810102810201010182020100820002008500010201020101018102 +010101010281010208020100920100020001000100020100010001000100010086000100 +010001008800010001000100010083000102018501020002000282020002090289010200 +01000201020102030283010201028102010b018102010201810200820001008200010082 +000100830001000105010100040182000100010001028400010001008200010001008102 +008200010082000100820002008400010001008400010001028302010201810102020201 +0181020106010102820102013601810201170181000101018102018101028e0200020001 +000200010002000200018b01020001020100020001000186010200010200018201000183 +010001008100010301830001000181010286020102000102010601810201050181000182 +01000104018100010701810001 +020183000100010201810001150181000184010001000107018400010200020202810102 +0c028201020183010002000100070281010203020c018100010301060282010001900100 +01000100010001000100010002000203028201000101018b000100010001000100020002 +820201020602810002030281000106010202040190000100010001000100010001000100 +01008f000200010002000200010200020102011e01820201028302010201820102010401 +820201020902820001028202010282020102820201028202010201028101028302010201 +040181000185010001000201810102010201010102850102010001008200010083000200 +018101028402010001008100028102010101810001830100010083000100018201000181 +010001000101810200820002008200010082000200820001020402820102018101028102 +010401820001028202010284020100010282020001010182020001030181000105018300 +010001050181000103010100840100010001820100010101870200010201020102820201 +0283020100020102840001020102830200010201020101830201020081000104019e0200 +010001000100010001000200020001000200020001020001000200020001008602000200 +0200018601000100010001860100020002000281020002008f0100010001000201000200 +0200020001890100010001020001000182010002840200010001 +810001850100010001008100011201850001000100010e01820201028202010204028101 +028402000201020502030181020181010205028101020302010101000601890001000100 +010001000202028101028102010f01820201020202030181000108018202010203028100 +020902840102010201050101020201860001000100010081000106018302010201830102 +010282020102820201020102010087010001000100010088000100010001000100880001 +000100010001008800010001000200020088000200010001000200850002000200020502 +810102010286000100010001008600010001000100860001000200020085000100010001 +870100010201020100020081010006008101008600010002000100020084020002000281 +020001008102008100010101820001000200810100050084020002000104018102018101 +020702810102010285000100010001810102840200010001020181020184010001000184 +01000100010101850001000100010301850001000100010601010201010202010101020d +010102810102010281010201028101028202010201028101020102810102860200020100 +0102820201028202010289020102010001000100010b0187000201000200020109018502 +01020102012501 +070183000100011301850001000100010a01810002150201018200010001000102810002 +0902810001110182020102020283000100018f0100010001000100010001000100010204 +028100010401880001000100010001020202020102028100020402830100010281020103 +01030203018e0001000100010002000100020001008f0001020100020001000200010201 +02012a01010283010201020c028101028202010282020102820201028202010283020102 +010801850201020001020102810102010281010284020001020082000200820001008200 +010081000182010001850100010001008100020202820100010101820001000300810100 +030081020084000200020082000100840001020102810201810102810201010181020105 +010302810102840201020002840201020102830201020119018100028202000202028100 +02010281010201028500020002000201028a010201000100010001000184010001000104 +018100010101820201028102018101009b00020002000200010002000200010002000200 +010002010002000200010081020001008201000186010001000100018601000200010002 +8102000100820100018d0100010001000201000200010001840100010002820200018901 +000100020002010001 +81000186010001000100020202010102020b0183000100010f0184020102010202028100 +020202810002070206018202010203028101020602090182000100810001850100010201 +0204020f0182020102040286010201000100010701050283000201020602090103020201 +86000100020002008100028102018201020101018102018301020102020203018c000100 +010001000100010001008800010001000100010088000100010001000100880001000100 +020002008600020002000100860001000100010208020101860201000100010086000200 +020001008600010002000200860001000100010081000101018200020084000200010002 +008102000100810200860001000200010084000200020001000102010182000100010001 +018100010201820001008200010083000100021002810102810201810102020283010001 +008700010002000200020302870002000200010002960200010001000100010001000100 +010001000100010001090181000104018802010201020102010201028101020102810102 +820201020102810102010281010201028101028202010281020183010001008400020100 +010701010003010102810102820201028202010284020102010283020002010901830201 +02010101810001090182020102810201040183020102018b010201020102010201020102 + +050185000100010002020281010201020201810201810102810201030185000100010001 +0a0183000200028202010202028101020502810102030202018102010101030281010208 +028100010f010602030183020100010201810001010181020181010204020d0182020102 +0d0286010201020102010301020282010201020187000100010001000101018200010082 +000102860200010001000284020100020124010102010182020102840201020102820201 +020e02100181020102018102010201840200010201040101000401820001008200020082 +000200820002008100028502010200020082000200830001020082000100810001090184 +000200020082000200830002000209020101020203010102810102020202018102012301 +010281000201028101020202010189020100010002000100018801000100010001000201 +028101020102810102820201020102810102820201029502010201020002000100020001 +000200020001000200010001018600010001000100050081010087000100010001000189 +010002000200020002008300020001840100010001900100010001000201000100010200 +020001840100010001840100010001 +810001840100010001010102020101020201010102810102820201020102870002010002 +010201090183020102018101028202010212028601000100020002070281010202028100 +010701870001000100010001820100020402810001810100810001020189000102010001 +000100020302910102000102000100010001000100010001020202820001028202000202 +028101020102840100010201050101020301020084020002000286020001020102010101 +020281010284020100020101018c00010001000100010001000100880001000100010001 +008800010001000100010088000100010001000100860002000100010085000100010002 +0d0284000100010086000100020002008600020002000100860001000100010086000201 +020002008600020001000200820002000100810200860001000100010085000100010001 +860100010001020084000200020101018100010201810001010183000100018201000284 +020102010209028101020602840001000200830002000201028100020102870002000200 +010002960200010001000100010001000100010001000100010001040182020102020281 +010201028101020102810102820201020202810102010281010201020f01880001000100 +010201008c0002000100020002000100020001009c020002000102000200020002000200 +01000201000100010002000100018601000100020002840200010001850100010001028c +02010001000100010200020001820100020102840100010002840200020002 +050185000200010002020201010102010101028101028202010282020102020281000201 +028101028102010101830201020183010201020902810102070282010201030102028101 +0203028101020302820100011001050201018102010e0105020101810201090105028101 +020802090103028201020101018500020001000202028201020182010201010101028101 +0201020201810201240101020501010201018402010201020b0202018102010201010281 +010282020102820201028102010201010201018302010002820201028302000100010085 +010200020102810200820002008200010082000200810002820200020102010005018300 +010001010181000103018100010301020082020002120201010202030109028101020202 +040181020117018100010401840001020102810201810102010281010201028100020102 +810102010281010282020002010281010201028101028202010281020101018102010c01 +8100018201000102010102810102820201028202000283020102010a0101020101810001 +840102010001010102028101020102810102010281010202028101020102810102020281 +010282020102 +830001000182010001810102020201010202810102010281010281020183010201028202 +010284020102010205028101021a0284010001000283020100020602810102030209018a +000100010001000102010204028100018501000100020089000201000100010001020302 +840102010001830100010081000186010001000100020302840001020102020281000202 +028201000281020103010102810102810201010107008502000100010083000100020102 +950001000200020002010001000100010001000100010088000100010001000100880001 +0001000100010088000100010001000100860002000100020086000100010001020a0286 +000200020002008600010001000100860001000100010086000100010001008200020183 +010001008200010001008101000400810100820002000600810200840002000200820002 +008200020001008101008200010082000100820001008400010001000300840200020002 +0d0285010001000102020281000211028100028202010284020001000289020100010001 +000100010401820201020102810002020281010281020186010001000200010c01840201 +02010201028101028202000201028100028402010001008e000200010002000200010002 +00020001008402000200018c01000100010001000100010001880100010001000100018d +010001000100020100010001000183010001020502810002820200028202010282020102 +8202010282020002840200020002 +030185000100010001810102010201010202810102820201028202010203028101028602 +000201020102030281010203028101020202810102820201020a02820102010101810201 +010106028101020402820100010f010502070187020102010201020181010206020e0104 +020201050281010201020101810201040103028201020103018900020001020102010201 +010186020102010201028102018201020128018102010301010201018102018101020a02 +020102028101028202010282020102820201028202010281020106018302010002820201 +028602000100020002010281010201028201020109010100810201010101028201000283 +020102018201000103018300010001010181000101010102830102000210028101022202 +090181000101018202010201028101020102810102020281010282020102020281010201 +0281000201028101028602000102010001820100010c0101020401010201018202010285 +020001020102010283010201020102850002000200028302010001010181020104010102 +030101020601060281010202020201010203010602 +830001000102018300010001020101020101010281010204028201020181010202028901 +0201020102010201020102810102820201020d0281010201028301020102810200010081 +01020c020a01870001000100010001810102020281010286020002010001008a00010001 +000100010200028202010203028201000183010001008500010001000182010002010201 +018400010001020602840001000201040102020401070083020001008500010002000202 +0292010002000100020100010001000100010001008a0001000100010001000100880001 +000100010001008600010001000100880002000100020001008700010001000200020902 +860001000200010086000100020002008600020001000200860001000100020081000101 +018200010086000200020001000400810200820002000600810200830002010001008201 +000101010100820100018101008300010001810100830001000181010002008202000282 +0200020c0284010002000224028601000100010001040183000100018401000100010501 +870001000102010002020281010282020102010281010201028101028202010201028100 +02010281000295020100020100010001000200010001000100010002000100820100018c +010001000100010002000100018601000100010001890100010001000100020084000200 +010087000100010002010282020002820201020102810002010283010201028202010201 +028300010002 +8700010001000100010a01010201010102810102820200028402010200020d028101020d +028101020102810002010205010902810102020284010001000182010001050187000100 +020002010201028201020101018902010201020102010201010101020101040282010201 +090182020102040281010209020201810201050101020501010084010001020101018102 +010401860201020102010283020102012a01020281010281020101010c02010182020102 +020211018102010101810001820102010201010081010081000102018202000282020102 +850200020102008200010083000201020102820100028302010200820001008200010084 +000100010001008301000100810002110284010201020181010224020701810001020101 +0282000102010281010201028101020102840102010201010183000100018e0100010001 +000100010001020002018101020102810102810201010181020087000201020001000282 +020102820201028202000282020002820200028202010283020002000200830102010001 +008401000100018b01000100010001020001000185010001000102010281000204020101 +0102850102010001020102810102840200020102 +060183000100010d01820201028402010201028202010201028101020102850102010201 +0216028201020181010001000302810002040281010201020a0188000100010001000102 +82020102030283000100018101008c000200020002000100010200020402820100018101 +008900010001000100010002820201028502010201000201028100020302010002018102 +010101010284010201020185010001000200030081020087000200010002000295020102 +010002000200020100010001000100010001008800010001000100010088000100010001 +0001008800010001000100010088000100010001000200850001000100020b0286000100 +020001008600020001000200860002000100020086000100010001008600010201000200 +860002000200010004008101008200010001008101000200850100010001000100820200 +028702000102010001008100018701000100010001000100810100010081020082000200 +810002080282010201810102830200010224028500010001000105018100028302010002 +820201020202810102010282000102820201020102810102010281010282020102020282 +0102010101810201810100810001060186020100010001028b0200020001000200020001 +028202010285020002000102820201028102008300020001820102010201810201810102 +020201018500010201000102010602810102010281010201028500020102010282020002 +82020102810201 +870001000100010001110184000100010081000181010201028501020102010204028101 +0201028301020102040281010207020401820201020d028500010001000106018a000100 +010001020102010283020102010101810201030183020102018501020102010202020f01 +050281010206028101028102010201810201020101028401020102018201000181010001 +008101020102820102010301010201010202290181020104018202010201028201020181 +01020b020301010204010102820102018101020102050181020185010200020102010281 +010283020102008200010082000200820002008200020082000100880002000200020100 +02850201000100010701810001030101008201000102010402820002018101020b028101 +02170202010a020f01810001030181000103018402010201020102810102010281010201 +02810102010281010282020102010281010201028101028402000200018d010002000200 +010001000100010005000101860001000100010001008101008400010001000100820100 +018601000100020002860200020001000186010001000100020502810102830201000282 +0200028402010200020102840102010200 +040183000100012201010281010284020102010205028100020102810102820201020302 +84000100010207028101020502060181000101018a000100010001000102010202029401 +0200020102010200020001000100010001020102020284010201000101018b0001000100 +010001000200020202010101028101020502820100010101810201010182020102830201 +020185010001000100010081010088000100010201000102010288010201000100020001 +8201000110018100010d01820001008500010001000282020100850001000100020a0201 +008501000100020086000200010001008600020001000100860001000100010081000101 +018200010086000100010001008200010004008302000200040083010002008200020082 +000102810200810002810201010181000101018400010001000100820100018101008200 +01008500010001020101010b0282000102090281010203028b0002000102010002000200 +020802850001000100018201000102018100028202010201028101020102810102010284 +010001020182010001020189000100010001000100010401820201028202010281020104 +010102810102820201028202010282020102820201028202000282020102820201028202 +010288020102010002010001820102010201810201080181020182010001020182020102 +080281010284020102010282020102820201020202 +01018300010001120181000103018100010b018102010101090284000200010206020201 +81020101010d02860100010001000104018900010001000100010002820201028102018d +010201000200020102010201020103010302810102810201010181000108010402830100 +010208028201020108010102040182000200820001020102820102010401010281010281 +020181010281020103018800010001000100010087000100010001000189010001000100 +0100010085000100010001840102010201030181000281020103010b0202018602010201 +020102820201028202010282020102830201020106018302000102010281010201028501 +02000201020102050181000103018300010001820100010101810002820201028102010d +01810001810100820001008500010001000101010b020101120281010202020301060201 +018102010a01010281010201028101020202810102010285010201020102010281010201 +028101020102810102010281010282020102810201020185000100010001830100010001 +0087010001000100010003008102000100820200028a0200020001000200020002830200 +020001008201000186010001000200028602000200020001860100010001000282020002 +8202010201028100020c028300020102 +020185000100010001260103028101028202010206028100020102810102870201000100 +010002040281010206020801810001860100010001000183010201020202830002000182 +01020102018a020002000200010001000203029201000200010001000100010001000100 +020002010283000100020302810002820201028202000101018102010101820201020202 +010186000100020002008f00010001000100010201020100010002850201000100018201 +0001230181020102018202010201028201020101010b0286000100010002008600010001 +000100860001000200010086000100010001008100028402010002008600020002000200 +820001000100810100860001000200010004008102008200020084000102010081000107 +01810001010183000100010501010206010c028101021502820001028302000102030285 +010001000100830001000182010001020184000100010083000100010401830001000182 +010002820201020102810002010281000201028101020102810102820201020102820102 +010601810002820201020102810102820201028302010001820100010c01850001000102 +010801010284010201020085000100010001810102020283000201020102830102010201 +0282010201830102010282020102810201 +01018100011d018100010701810001020107028101028402000200020202810002830201 +02010201820201020c028101008300010001050181000182010001860100020002010283 +02010201010185000200020001060182020102030201018102010b01820201020e028201 +020182010201020187020102010201020101018100018601000102010201030181020181 +010281020181010282020102810201030186000100010001008a00010001000100010001 +008800010001000100010088000100010001000100880001000200020001008500010001 +00020b020201820201028202010282020102820201028102011d01020281010201028101 +020102810102010282010200010084020002010201020d01810001010101008101008100 +0101018100018101020b0201011202820102018201020183010201020302110182020102 +010281010201028101020102810102820201028102018201000111018102018101028202 +0001910100010001000100020002000100020002000100820200028e0200020001000200 +010001000200028802000200010001000186010001000200028602000100010201040181 +000282020002020281010282020102820201028202000282020002810201830102010200 +02 +0201850001000100011a0181000108010802810002040285000200020102850201020100 +01820100020d020a01830001000182010001850102010201028302010201010181020186 +010201020102010301820201020202820102010b01810201010103028101020902820102 +010401820201020102030182000100010082020002020282010201010184020102010202 +0284010201020124018302010201030102020201820201020a0201008501000200010086 +000200020002008600020002000100860001000100010086000200010002008600020001 +0002008200020001008101008a0001000100010001000100020082010001020183020100 +028102010601810001840100010001050107028101020a02810002180281000206028c01 +000100010001000100010001020182000102010281000202028100020102810002820200 +020202810102010281000201028100028202010201028100020102010181020109010100 +8e0100010001000100010001000100018e01000100010002000200010002000286020002 +000100018801000100010001000286020002000100018401000100018101020102830102 +0102820201028202000282020002820201020102830002010282020102 +010181000102018100012201810001810102010281000205028500020002000202028100 +0201028401000100020f0201018100010401810001060184020102010203028100018e01 +00010001000100010001000100020402820100018f010001000100010001000100010201 +0287020002000200010282020002040282010001010181020103018a0201020102010002 +000200940002000200020002000100010002000200020001008100010101880001000100 +010001008a00010001000100010001008800010001000100010088000100010001000200 +8800010002000200020086000100020001020b0202010202130184020102010201028101 +020102810102010281010201028101020102810102010281010283020001020102820102 +00010082020001110181000101010100820100020d028101020202010121022401820001 +02820201020102810102010281010201028101028202010201028100028a020100010001 +0001000102820201028202010282020102820200028202000283020102010f0181020108 +018302010201820102010501020281010284020102010201028301020102010281010285 +020002010200810002 +860100010001000118018100010101810001040182000201010182020102020281010201 +028100020102010001028101028302010201820100018101020e028100010f0182020102 +0302820102010f01820201020102820102010c0182020102840201020102060281010201 +028201020101018102018301020102880201020102010001000100820100010201810201 +02010102020187020102010201020129018202010281020105010d020101820201020202 +810102820201028202010282020102810201070183000100010c01010281010201028101 +020102810102810200820002008200010285020002010002810201020181000102018300 +010001010182000100820001023602010181020108018100010401020281000201028101 +020102810102010281010202028101008700010001000100018601000100010001820100 +010c0101008e0100020001000200020001000200028c0200020001000200020001020001 +008601000200010001940100010001000100010200010001000201000100018101020202 +8401020002008100028302010200840001020102810200820001000200 +040101000301010213018100010401830001000101010102810102820200020402830002 +000207020101010283000100020402810102050202018100010401810001010181000102 +010102810102820201020102810001850100010001008100018401000100010101010281 +00020102850001000100018b010001000100010001020102860200020002000208028201 +0001010181020184010201020187010201020100020002008a0200020002000200010002 +010282000102810200840002000201890100010001000100010088000100010001000100 +8a0001000100010001000100880001000100010002008600010002000100870002000200 +0100020b0286000100010001008600020002000100860001000200020086000100010001 +008300020102010201008502000100020086000200010001008500010001000101018100 +010101810001010101008301020102020204018200010001000201810001030183000200 +021302810102220288010001000100010001040182000102820200020202810102010281 +010201020101010281000201028101020102810102010281010282020102010281010201 +0281000289020100010001000100010a0101008401000100010201810201830102010282 +0201028202010281020182010201080102020a0102028201020009000102810100010081 +02000200 +840100010001260182000102020281010206028101028102008300020002020202018402 +010001020d0281000111010202810102810201130103020d018202010283020102018101 +020102810102050284010201020102018202010286020102010201008600020002010002 +850201020102010201840201020102010229018402010201028202010282020102840201 +020102050281000204028101028202010281020114010102810002010281010282020102 +010281010201028101020102810102010281010201028101020102820002000100010281 +000182010001040184000100010082000100010083010001000100830100010211028101 +020f02810102020281010281020103010602010181020104018100010601810001030181 +000102018100010301020281000201028100020102810102010281010201028100028202 +010201020701820002008b00020002000100020100020001008c02000200010002000100 +010001810100010086010001000100018601000100010001860100010001000184010001 +00018101028102008100028102001400 +030183000100011801850001000100018401000100010101050281010203028300020002 +82020002040205010a028101020202100181020181010204020301830001000102018100 +018201000103018b02010001020102010001000104018402010201020202820001028202 +010203028200020182010001040182020102830201020183010001000100880200010001 +000100010101870002000100020102850200020002018701000100010001008a00010001 +000100010001008800010001000100010088000100010001000100880001000100010001 +008700010001000100020a02010085020001000200860002000200010086000100020002 +008600010001000100810001010182000100860001000100010088000100010002000100 +830001000286020102000200020202820100028702010200020102010201820001000100 +840100010001090102020101830201020101010102010101028300020002050281000203 +020601880001000100010001020802850001000100010401820001028202000201028100 +020102810102020284010002000116010100070182000100830002000289020002000100 +020002000100850201020001028202000284020002000101018300010001860100010001 +000188010001000100010001820100018801000100010200010005008102000d00 +8101008100011e0185000100010001860100010001000205028101020102840002000200 +8100028202000281020181010281020182010002020281010208028401000100010c0181 +0201810102040213018102010f0182020102820201020102850102010201020502840102 +010201040103020201010081020083000100018401020102018301000102850201020102 +018101028302010201240184020102010282020102830201020104010802820102010801 +020281010282020102830201020106018302010002820201020102810102010281010201 +020f01820001000200830100010201028201020101018200010082000100820001008400 +010001000100820100010101020202010202070101028101020802810102020281010202 +028101028102010401090205018100010501030281010201028101020102850102010201 +020102810102010281010201028101020102810102820201020102810102880201020001 +000100018101008100018201000106018500010001000182010001010181000106018100 +011a01020281010005008102000d00 +010185000100010001180181000109010702810102080281000202020401820201020d02 +14010502160183020102010a018202010203020101820201020702020181020102018102 +018101020102020181020001008202000287020100010001020183010200020302820100 +01030186000100010001008a000100010001000100010088000100010001000100880001 +00010001000100880001000100020002008700020002000100020b028600020001000200 +860001000100010086000100010001008600010001000100860001000200010088000100 +020001000200860002000200020083000100028a02010200020100020001020102840102 +010001050101008301000100830001000109010202010182020102810201050183000200 +020202810002080281010202028101020102850100010001020802850001000100010401 +840001020100030008018400020100010301820201028202010201028101020102810102 +820201020102810102810201040101008601000102000100940002010002000200010002 +000200010002000200018801000100010001000188010001000100010001820100018101 +008100018201000184010001000202028100028602000102000200820001028202000281 +02000500 +820100011f01870001000100010001830100010202028300020102010286010200020002 +008200010201028200020102010102810102050281010204028101008100010e01820201 +020402220181020102010102020184020102010202028101028102010701010283010201 +028102010101010081010082000100810001030181000189010001020102000200028102 +0135010f0281010282020102820201028202010282020102010282010201150186020102 +010201020102820100028202010283020001020102020082020002010281010281020101 +010100830100010084000100010001008101008300010001010104028401020102010801 +030281000201028201020112010402810102010206018100010301820201020102810102 +0202810102010285010201020102010281010281020112010100820100018a0100010001 +000100010201830102010282020102820201020102830102010281020181010281020120 +01020281010201028101028602010200020002840201020002820201000100 +010185000100010001230101028100020302810102080281010202020301810201010182 +0201020b0212010602230181020104018102010401010281010282020102830201000104 +0182020102010282010201830100020001008c0100010001020100010201000189010001 +000100010002018701000100010001008a00010001000100010001008a00010001000100 +010001008800010001000100010088000100010002000200880002000200010001020502 +810002010201008501000100010086000100010001008600020001000200860001000100 +010082000102830200010088000100020001000200860001000100010083000100010201 +820001008300010001020181000184010001020104018200010006008101008100010401 +040203018102010401840002000102060282010002020281010202028101020102870100 +0100010001028c0200010001000100010001000109010102810002010281010201028101 +028302010002010281010201028100020102810002010281000282020002010281010201 +0281010281020104018e00010002000200010001000100010001008c0100010001000100 +010001000186010001000100010201870001000100010001840100010001840100010001 +850100010001020202810102010281010282020102820201028202000201028101000200 + +820100010201810001190181000186010001000100018201000206028101020402820002 +00810002030203018102018101020d021101820201020402280183020102010901020209 +010302030101008101008300010002840200010201020187020002010201020101018100 +012401820201028202010284020102010282020102820201020e02810102820201028202 +0102820201028102010c0185020100020102010281010201028101020102810102820201 +020102850102000201020102810102010281010001008202010281020101018102010101 +010082010001090183000100011101810201010102028101020702810102020281010203 +02820102018101020202130101020d018202010001000801820201020102810102010281 +01028202010201028b000100010001000100010002810201020101028100028202010283 +020102018101028102012001840001000102030283010201020102830102010201028101 +0282020102810200810002 +85000100010001270109028100020a020501050281010202028101020202110182020102 +040203018100011e01810201010102020b01010207018102018101020202040101008501 +000201020103018a0201020102010201020102810201020181000131010b020100850200 +020001008600010002000200860002000100020086000100010002008100010101840001 +000100860001000100010086000200010002008600020002010002830201000281020085 +000200010002830200010281020101018400010001000600810100010082010001020183 +02010201050181020102018502010001000204028500010201000105010c028d00010001 +000100010001000100010501020281000202028101020102810102820201020202810102 +01028100020102830002000186010001000100010e018800010001000100010001008c01 +000200010001000100010001840100010001080185000100010001860100010001000184 +010001000104010402810002820201028202010201028100028202010202020200 +04018100010a018100010d01810001880100010001000100020202810002010281010205 +02010002028101028202000183010200018101020e0203018100010b018202010204020b +0181000105018100010e0184020102010201020201010205018102010801840201020102 +810201020101008201000183010201028102010201810201810102810201010182020102 +8102010401820001008a0001000100010001000100880001000100010001008a00010001 +00010001000100880002000100020002008700020002000100020b021901870201020100 +0201020102810102010281010283020102010e0185000100010001060181020102018200 +01008100010701810201060101020601010206010602810102020281010203028101020b +021301020281010201028101020102810102010201010102810002010281010201028101 +020102810102040281010201028101028e02010201000100010001000100010081000183 +010001000100860100010001000111018300010001860100010001000183010001000100 +8101000200810102820201020402810102820201020102830102000285020002000100 +820001008100010601810001050101008201000113010302810102080281010201028100 +02870201020100010201010101028101020a02120182020102010203018b000100010001 +000100010001160184020102010203028101028102010f01820201028302010201040102 +000201880001000100010001008b00010002000200010001000123018202010282020102 +840201020102820201028402010201020a02860002000200010086000100020001008600 +020001000200860001000100010081000201028400020001008600020002000200860002 +000100020081000201028201000282020100830002010001008201000282020002810201 +02018200010008008101000100820100010d018102010101840201000102040202000202 +81000202028101020d028400010001008100018601000100010001070185000100010001 +060181020101018400020102010101020201010402810002010281010282020102810201 +050185000100010001860100010001000130010102010101028101020102830102010201 +02830102000283020102000000 +82000100830001000105018200010083000100010d018300010001880100010001000200 +020302810102020281010205028600020001000200810001010102028101020402810102 +0202820100010101810001210189000100010001000100010d0101028101020402090181 +020106018202010201020401010082010001840102010201060181020102018502010201 +02010101820001008c00010001000100010001000100880001000100010001008a000100 +0100010001000100880001000100010001008700010001000100020d0283010201028102 +010601810201020181020103018102010101810001090182020102010281010282020102 +020281010282020102010283000100028202010201028101020102030181000182010001 +070181020106010102070181020181010281020181010207028201020107010e02110101 +02810102010281010202028101020102010101028201020101010102020102020b018300 +010001010185000100010001010183000100010201010084010001000113018300010001 +860100010001000183010001000100810100820001008200010201028101028202010201 +028301020002820200028202010283020102000000 +020004018200010081000105018500010001000107018100010801030281010207028500 +020002000202020301840002010002080281010203020b018100010d0188000100010001 +0001008100018401000100011301820201020202180102020b0186000100010001008d00 +010001000100010001000100012301820201028402010201028202010282020102820201 +020b02010085010001000100860001000100010086000100010001008900010001000100 +010002850200020001008600020002000100890001000100010001000181010081000101 +010200810100030001018100010401820001008200010002008101008200010001008201 +000103010102070181020181010284020100010205020100010281010202028101020f02 +060183000100010701820201020102810102010281010201028501020102010201028101 +020102810102010281010201028101028202010201028201020181010283020100018301 +0001000200820100018601000100010001110101001c0102028101028202010201028101 +028202010201028301020002810200810002 +81010002008201000103018700010001000100010f018300010001850100020001020b02 +8a0002000200020002000200840001000201820100020602810102030286010001000100 +0181010081000104018100011a018400010001008100010e0101021c0181020101018300 +01000101018100011601820001008a00010001000100010001008a000100010001000100 +0100880001000100010001008a00020002000200010002008700020002000100020c0281 +010283020102010301820201020102810102010284010201020101018202010282020002 +010281010201028101028202010201028101020102810102010281010201028101020102 +810102010281010201028201000201020301010081010082000100830001000182010001 +080181020105010102010181020102010a028301020002820201020f0211018102010e01 +810201080102020301810201060181000101018100010101810001050181000103018400 +010001008300010001100181000188010001000100010001860100010001000183010001 +0082000102010281010283020100020102810102820201020102820001028102000100 +010181000101010100840100010001030185000100010001090181000182010001020181 +000208028200010201028101020602010181020102018100020e02010183000100010301 +810001840100010001070181000186010001000100018101008500010001000118018102 +012501810001030182000100810001010185000100010001010181000136010c02860001 +000100020086000100010002008600010001000100890001000100010001000185010001 +0001008100010101820001008c0002000200020002000201000282020102010282010200 +030082020102010203010100820100010201820001008100018301000100810001030181 +0201040102020101010283000100020602830001020107010e0211018202010202028101 +020102810102010285010201020102010281010201028101020402820102010201810201 +0401830001000101010200010101008101000200020101000f0181000104018100018601 +000100010001860100010001000184010001000183010001020402810102820201028202 +0002840200020002820201028102000000 +830100010081000104010100810100810001160181000101010d02910002000200020001 +000100010001000100020d0281000104018200010081000103018100011c018300010001 +350181000116018100018101008c000100010001000100010001008a0001000100010001 +000100880001000100010001008800020002000200010089000100010002000200020c02 +8101028102010501810201020101020a0101028101020102810102830201000283020102 +010501810001010181000103018100018201000181010081000182010001060182000100 +82000100820001008200010083000100010401010205018502010201020102010a028101 +020202810102100217010202810102010281010281020181010201028101020102810102 +0502810102830201020101018102018101000100820100010b0181000101010100020181 +00012a010102810102080201010302820001028102000000 +040185000100010001050182000100810001110181000182010002030281010282020002 +0902810102810201020102008101020d02010182000100010002018100010c0181000101 +01820001008300010001430181000142018202010284020102010282020102820201020b +028101028302010201010184020102010282020102820201020102820102010101880201 +020001000201020102810102010281010201028101020102810102820201028302000102 +0202810002830200010201028101020102030101008101008100010a0181000103018102 +010501820201020102040103028100028202000282020102020281010210021101820201 +0201020b0181020109010302080181000183010001008200010085000100010001850100 +010001000100010181000117018700010001000100018601000100010001840100010001 +84010001000282020002040281000284020102000282020102820200020102 +810100830001000101018600010001000100810001100183000100018101008100018301 +02010203028101028202010201028e000201000200020002000100010001810100810002 +010281010206028101028202000103010100810100810001030181000172010100890100 +01000100010001008a00010001000100010001008a000100010001000100010088000200 +02000200010089000100010001000100020a020100850100010001008600010001000100 +860001000100010089000100010001000100010201820001008600010001000100840001 +000200030081010001008201000284020100020003008101020102810002810201020181 +000183010001008200010082000100820001008100010401810201030101020101010285 +010001000102080209010d02120102028101020202810102010281010282020102020281 +010201028101020602830102010201028301020100020008018100010301810001810100 +020009018100012301010281010282020102060281010203020100810100 +020182000102820200010501820001008100011501820001020102810102020281000204 +028101020102810102810201820102018101008100020202820001020402810002020203 +01010005010100820100010a0189000100010001000100014c0183020102013001840201 +02010282020102840201020102820201020e028101028302010201030182020102820201 +028202010281020104018402010200020102810102010281010282020102810201020101 +001b0101008101008100011701810201010181020104010b028301000102840200010002 +0a02820102011b0182020102010201010102810102010281010201028101020102820102 +01010102020101820001000a000101810001810100010082010001190187000100010001 +000186010001000100018201000186010001000100020102830102010201028100028202 +0102820201028202000201020100 +830001000103018400010001008100011701810001830102010203028101020502810002 +8c0200020001000200010001000181010081000201028101020702010183000100010201 +8500010001000169018102013601840201020102820201020c0201008501000200020086 +0001000100010086000100020002008f0002000100010001000102000200020088000200 +020002000200840002000100020081020082000100820002000600810102010281010281 +02018301000100050081010082000100820001008100010a018202010201020101850001 +0001000201028100020302010181000105010d0210018202010201028101020102810102 +810201050181020109018302010201080182000100820001008100010301010081010081 +000102010200820100010501820001008100010901830001000110018102010301010281 +0102820201028202010201028301020102010201008102000000 +85010001000100810001020184000100010083000100010f018300010001010185020102 +000102820201028202000202028101020602010182000100010081010201028300020002 +030201000102830100010082000100810001110181000181010083000100014f01810201 +0501810201040181020102018a00010002000100010001008a0001000100010001000100 +8a00010001000100010001008800010002000200010089000100010001000100020a0209 +018102011301810001090181020181010281020002008202010282020102010281010202 +028101020102810102010281010281020101018100018201000117018102018201020106 +010802060181000101010c020f0182020102010281010202028101020102810102010201 +010102810102010281010281020181010203020101010201018102010101030081010005 +008101008100018101000300010181000116018700010001000100018401000100018b01 +00020002010001000100020102810102070281010282020102820200028102000000 +020001010700110181000101018100010401060281000205028300020002860200020001 +0001040101000d0283010201020502830002000109018100015e01840201020102850201 +020102018201020102018102011d01010281010282020102840201020102820201020c02 +010085010002000200860001000100020086000100020002008f00020001000100020001 +020002000200880002000200020002008200010001008101008200010082000100090008 +018200010005008101008200010082000100810001090104020701070284010001000105 +010d02210184020102010201028101020102020104028201020104018200010082000100 +820001008100010301010081010081000101018300010001050183000100010b01820001 +008300010001820100010401840001000201010183000100020202810102820200020402 +81010201028401020002000000 +8101000600810100820001008100010301810001010101000b0184000100020083000200 +0282020002020281000201028d00020002000200020100010001000100820201020c0287 +0002000200020002020204018300010001070182000100830001000155018b0201020102 +010201020102018a01020002000200010001008a00010001000100010001008a00010001 +000100010001008a000100010001000100010089000100010001000100020c0281010281 +020104018202010282020102010281010282020102810201020101028401000201020102 +810102010281010201028101028202000283020001028402000100028202010201028101 +020102810002020282010201020101008101008200010082000100820001008100010c01 +010281010281020101018300010001810102060207018100018101020c02100103028101 +020102810102010281010201020201810201090102020801050001018100018101000400 +01018400010001008100018201000114018100010a018102010201830201020103010202 +810102820201020402810102020281000282020100 +020081010002008101000500020181000109010100010102000101830001000203028100 +020e02810001010181020181010001000302810002090281010206028100010801850001 +000100015b0101028a01020102010201020102018401020102011f010102810102860201 +0201020102010283010201020a0201008501000100010086000100010001008800010001 +000100010087000100010001000185010001000100880001000100010001008200020004 +000102820102000200810200030081010201028101028102010101810001810100810001 +01018300010001030101000a018202010281020106010902820001008700010001000100 +020d020f0102028101020202810102010281010201028501020102010201028101028302 +010201830102010281020182010201040181020101010200810100830001000183010001 +00820001008100018301000100810001050101000d018300010001810100810001030101 +02090115020100 +810100050081010082000100820001008100010a01810001080182000102020281010204 +02820001028d020002000200020002000100010081000181010281020083000200028102 +008300020002010282010002030281000202020401810001070183000100018401000100 +0154018d020102010201020102010201020101018702000200010001008a000100010001 +00010001008a00010001000100010001008a000100010001000100010088000100010002 +0001020d0281010281020104018202010282020102820201020102810102810201020101 +028101028202010201028101020102810102830201020102018200010083000100010601 +010081010081000108010100810100820001008400010001008200010001000a01820201 +028102010401810001810102070208018100020d02810100010082010001020181000101 +01810001820100010f018102018601020102010201020181020108010700820100010101 +010081010001008301000100830001000117018100010401840201020102010201018202 +01020102830102010203028101020a0281010203020000 +820001000200810100050082010001030101000901810001810100010081010282020102 +03028101020f02010001010200100281010207020a018300010001040181000157018402 +0102010283020102010401830201020122018302010201010183020102018101020b0287 +010001000100010086000100020002008800020001000200020088000100010002000200 +840001000200880002000100020001008200020003000202820100028302000200010084 +020002010201028101028102010101850001000100010301810001100103020101830201 +020102010902820100018701000100010001020c020b0181000101010202810002010285 +010200020102010281010282020102010202018102010301810201090184000100010082 +000100820001000100020184000100010001008201000182010001030185000100010001 +0b0181000102010102870102010201020102010281010209028101020202810002010281 +01028202010282020002810200 +830001000185010001000100050006018100018101000100810100850001000100010201 +8300020102840200020002030281000207028200010281020103011b0215018100015301 +8d020102010201020102010201020183010200028402010001008c000100010001000100 +010001008a0001000100010001000100880001000100010001008b000100010001000100 +0100020a0284010201020102018102012801010282000200810002010281010201020200 +810200810002820201020102050181000181010082000100820001008200010001000801 +820201020202810102830201020101018100020602840102010001040101000d02010085 +010001000100880001000100010001008b00010002000200020002010201028101028102 +018101020102810002830201020101018102010201810001820100018501000100010082 +000100830001000101010600840100010001030181000106018100010701830001000101 +01810002170281010207028101028202000202020000 +010101008301000100810001810100020001010100840100010001080184000100010081 +000101010202810102050281010209028201020082000201810102050281010209028101 +020602050185000100010001820100010101020082010001540181020181010285020100 +010201830100020182010201820102012101010282010201830102010281020181010202 +020101070286000100020001008600010002000200880002000100020002008800010001 +0002000200820001028a0201020002010002000102010201008201000101018100010201 +850001000100010b0184000100010081000112010102010102028101020e028701020100 +01000100010001010d02230181020104018102010d010100810100820001000200810100 +8300010001020182000100830001000182010001030183000100010b0181020184010002 +000212028100020502810102810200810002820201028602010200020002 +810001040105008101008100010201810001030182000100030001018100018501020002 +0102850200020001020f02030181020101010502810102080281010207020e018100013f +018100011301830001000189010002010201020102018101000100810201850100010001 +00020089010001000100010001008a00010001000100010001008a000100010001000100 +010088000100010002000100810002840201020102070282010201030181020183010201 +028202010282020102820201020102030182020102010284010002000283020001020102 +810100820001000100850100020001020102830100020002008102008400020001020102 +050101008101008200010082000100820001000100080182020102130205018100018101 +00820001020c02010085010001000100880001000100010001008a000100020001000200 +010201028101020102010101028501000200010081000101018102010201840001000100 +830001000183010001000100820100010101050084010001000103018100010501010003 +018500010001000182010001010118028101020102810002830200010203020100820100 +020002 +810100010083010001008200010007008101008100010901820001008100010101010287 +010200020102010204028101020702050182020102040281010211020301810201840100 +010001840100010001010184000100010001002401830001000102010100030183000100 +010101830001000102010100020183000100010101010008018202010082000200020082 +0102010701820001008100011b0181020181010283020102018401020102010101840201 +000102030282010201810102010282010201160181000111018100018301020002010281 +010201028501020002010201028101020102030101000101010002018100018401000100 +010b011402070181000101010d020f018202010202028101020102810102010281010201 +020101010281010201028101020102810102020204018602010001000100810001820100 +010101010081010083000100010201830001000103018100010101810001050184000100 +020184010001000182010002150281000201028101028502010002000201028101028102 +0002000002 +8300010001020107000a018200010081000182010001050181000203028101020e028101 +0281020103018202010204028101020b0281010202020401810201090181000124018100 +018501000100010081000121010100810100010081010002008201000186010201020002 +008200010082000100820001008100012001820201020102830102010201028501020102 +010207028600010001000100860001000200020088000100010001000100870002000100 +020002870200020002000200860001000200010082000100030082020001030182000100 +020081010082000100810001070101000101830001000182010001010183000100010801 +1202840002010001810100840001000100820001020c0282000100860001000100010088 +000100010001000100870001000100010001080181020103018202000201028101028202 +010282020002010202008601000201000100820001008200020084000100010082000100 +820002008100010201820002010101820001008100010401020081020102011602010105 +028101028202010201028101028202010282020002 +83010001008200010002008101000200820100018401000100010f018202010205028101 +0203028101020802060106028101020f0201018102010301810001020181000184010001 +000101018200010081000127018400010001008400010001008200010082000100820001 +008400010001000100810100820001000100080102000101010001018502010201020181 +0100010083010001008200010001008701000100010001008a0001000100010001000100 +8a0001000100010001000100880001000100010001008700010001000200020602820102 +010101830201020101018302010201010101020301010202018502010200010201028101 +028202010201028101020102810102010281010201028100020102810102010286010002 +01000200830001000281020102010200810100010081010082000100820001008100010b +010702020104028401020102010501010002010d02110102028101020102810102010281 +0102030283010201020102810102010283010201020a0282000100010081020081000282 +0201020102010081020083000200020a0284000201020102018200010081000101010100 +0101810002140201018100028602000200010002820200028702000200010002000000 +050102008201020001000e01810001070101028101020502810102020281010204028101 +028102010101810201020106028101020b02810102020239018500010001000181010082 +000100860001000100010082000100820001008200010082000100820001008200010082 +00010002008301000100020005018102010301020081010003008201000103018100011a +010102810102840201020102810201820102010401060286000100010001008600010001 +000100880001000100010001008700010001000100018701000100010001008800010001 +000100010004008201000102018302000200840002000102010281010201028201020101 +01810001820100010b018100010901070283000102008100020102810002010203010100 +830100010083000100020b028b0001020001000100010001008800010001000100020085 +000200020002010281010209028101028302010001020101028101020402010082020002 +040201008102008300020002030283000200020702810002010281000182010001020182 +000200010083010200021502820100028902000200020002010002850200020001028202 +0002 +850100010001000300810200830001000117010202810002840201020102020281010206 +0282010201020181020101018202010203028101020e028201020115018100011e018500 +01000100012b018300010001010101008301000100840002010200010083010001000200 +8101000100850100010001008c000100010001000100010001008a000100010001000100 +010088000200010001000200870002000200010002060281010282020102820201028202 +010282020102820201020102810102820201020102810102850201020001028202010201 +028101020102810102010281010201028301000200810002810201820102010101010084 +010001000108010100810100010081010082000100820001008300010001010181020105 +0107020101810201810102010281010202020a010d022001820201020102020183020100 +020302810102010281010207028200020001008102008100020302020081020083000200 +0206028201000201020401030006011502010109028101028202010201028300010200 +87010001000100010081000101018100011a010402830102010202028101020802050182 +020102050281010206020101040281010281020134018100010501880001000100010001 +008200010084000100010082000100820001008200010082000100820001000100810100 +82000100010001018100010201010081010001008101000100810200060005018100012d +010402810002010284000100020086000200020001008800010002000100020087000200 +020001000287020002000100020088000200020002000200040082020102010289010200 +02010002000102010281010201028201020101018100018101008100010e010102010181 +02018101020702030181000201028100020202020184000100010083000100020d020400 +8701000100010001008800010001000200020083000100028202010209028101020e0282 +000200010082020002060202008102008100021102020183000100010201020001011502 +86010201000200028402000200028202000286020002000201000100 +010081010001000101850001000100011701810201810102040281010203028101020402 +810102010205018200010205028101020502420183000100018101008700010001000100 +011801820001008200010001008101000100810100010083010002010201030086020002 +010001000600850100010001008a00010001000100010001009500010001000100010001 +020001000100010001000100880001000100010201020402810102810201010181020109 +018102012001820001008100010601820001008300010001090181000181010082000100 +82000100820001008300010001080108020401020281010202020a010e02130101020101 +020281010201028101028202010205028101020202810102810201020101028100020402 +820002008200020083000200020402020082020002050283010201020102050102008101 +0081000101011602010103028101020d020000 +820100018101008100010201830001000114018100010101020281010208028301020002 +02028101020102810001030108028101020402410183000100010a018400010001008400 +0100010082000100820001008200010082000100820001008100010a0182000100010081 +010001008201000182010200830002000182010001050181000117018702010201020102 +0182010201870102010201020102820200020f0284000200010083000200028402010002 +008800020002000100020086000200010002008800020002000200010004008602010200 +020102010281010283020001020102810102010282010201040101000501810001080183 +020102010101080281000102010802030186000100010001020d0281010002008b010001 +000100010001000100860002000100020081000106010502810102010281010281020105 +010100020201008102000100840200020002020201008102000100820200020102810002 +030281010204020301030004018200010212028101028402000100028402000100028402 +0002000288020002000102000200 +0301010082010201820100011b010c028101020702820102010401010281010202028101 +020402020181020141018a00010001000100010001008400010001008400010001008200 +010082000100820001008200010001008101008200010082000100020081010081000106 +01010081010003008102010101010081010082000100010083010001008c000100010001 +000100010001008e00010001000102010201020002000282020102820200020402830002 +01020e0201010b0281010282020102820201028202010201028101020102810102820201 +020102810102010285010200020002010288010200020102000100890002000102000201 +020182010001010182000100820001008200010082000100830001000101018202010201 +0202010702030109020701100202018100010b0182020102010281010201028101020102 +810102830200010203028100028202000283020102010401010282000200830002000204 +02010081020001008202000202028100020d020301810001020101008101008200010215 +028100018b01000200020100010002000288020001000102000100 +010284010001000103018100011a010c0281010204028101028102010101810201020106 +02810102040202018102013c018100018801000100010001000125010100810100010081 +010001008101008100010201030081010081000107018100010501820201028102018101 +028102010501070281010282020102250283010001008800010001000100010086000100 +01000100880001000100010001000300060181000107018100010b018100010201810001 +02018100010c010802830001000208020a010d0282010001010182000100820001000100 +850100010001008500010001000107018202010207028201020106018100020502010083 +020002008300020002030201008102008400020100020a02010101028101008200010081 +00010301150203018202010285020102010201810102810201830102010282020102 +820100018101008300010201820100011b01030281000206028100020402810002810201 +020181020182010002030281000203028101028202000106018100010c01810001280181 +000107018400010001008400010001008200010082000100840001000100820001000100 +810100820001008200010001008201000107018200010002008101008100018101000200 +810100820001000100880100020102010201020102810102820201020202020101028101 +021d02810102140281010282020102820201028202010201028101020102810102820201 +020102810102010284010200020083000201028102008100028302000100850002010002 +008100028102018101008100010201010082010001810100810001840100010001010182 +02010201020201080202010802820102010301850001000100020d028800010001000100 +01008a000100010001000100020083000100028202010201028101028302000100830002 +000201020100010201000101840001000100010081020082000200830002000204020200 +810200010001028101020102820100020802030101008201000183010001008100021802 +8201000201028f01000100020100020001020002000200 +820001000100840100020100810001030181000107018100010601810001810102010281 +0102010281010205028201000206020401810201840100020102080212018100010d0181 +0001040181000104018100010401810001030181000105018a0001000100010001000100 +830001000110018100010101820001008200010001008101000100810100010081010081 +000106010300070101008101028302010002020283000200020502860100010002000284 +020102010201028300020002290281010282020102820201028202000201028101020102 +810102820201020102810102010281010286020102000201020102810002010281010201 +028101020102830102000182010001820100010601810001080103020201080203010902 +09010e0201018102010c0102028101020102810102010281010203028301020102010281 +010201020801020281000202028200020003008102008100020302820102008100020d02 +030181020101010100820100018101021502820102018101028202010201028101028102 +01810102820201020402 +810100820001000100840100010001820100018201000182010001010183000100010201 +010002018100010101830201020081000204028400020001020302810002010201018100 +018101008200010282020102820200020402810100810001040101000801810001030181 +00010301810001070181000108010100050183000100010201810001820100010c018200 +010082000100820001008200010089000100010001000100010d01820001000100810100 +020082010001010103008101008200010081000283020102018301020102040281010283 +020102018101028102010101090281010212028a01020100020001000201020302810002 +02028b010001020002000100010001870100010001000100880001000100010001008100 +010101830001000181010083000100018101008200010082000100820001008100018201 +000182010001830100010082000100810001810100020082010001090108028400010001 +020402840102010001050183000100020d0202008701000100010001008d000100010001 +000100010001000105018502000100020001008602010002000200850001000100018101 +008100028102008200020082000200830002000281020081000201028101020202810102 +02028100020802820102010101020086010001000100021502010183020102008100028c +0200020100010002000201000282020002 +810100040081010001000701810001070181000106018100020602810002030281010283 +020001028202010281020182010001010182020102830201000202028101028202000105 +018100010501810001050181000104018100010201830001000105018100018601000100 +01000102018300010001050181000103018a000100010001000100010003000201010082 +010001810100840001000100010081010082000100820001000200810100820001008100 +010601010081010002000801010082020002850200020100020302810002050283010201 +021f02010181020181010201028101021102810102820201020102810102820201020102 +810102010281010283020001008200010082000200820002008200020082000100820002 +008200020082000200820001008200010082000100820001008200010084000100010081 +0001020103020201060203018200010204020d010e0202018102010b0101028101020202 +810102010281010203020101020003028101028502010201020181010283020102000100 +020201008301000200030082020002080281000208028201020101018100010201010001 +0103028100020e028201020182010002850201000201028d020100010001020001000102 +0002 +040083010001008300010001840100010001860100010001000101010100010183000100 +018601000100010002860200020002000281020095000201000200020001020001000200 +010001000102008300020002930200010002000100010001000100010001000100810001 +83010001008100018101008c000100010001000100010001008100010101830001000108 +018100018501000100010083000100010401850001000100010d01810001150182000100 +820001000100810100020082010001020182000100030081010004000102010186020102 +010201028402010201028202010226028101020602810102090281000202028400010002 +008800020001000200020086000100020002008200010083000201020102810002840200 +010002830201020086000102000201028102010301810001110103020201060203018200 +01020402860100010001000106010e028101008a00020001000100010001008b00010001 +000200020002000201028101020102850100020100020202010082020002810200880002 +000100020100020302820002008200020001008102000100010281000211028101028102 +010201010081010081000101011502030103028101028102010101030281010282020102 +810200 +02008101000100810200810001190101028101020b028101020502020101020301020281 +010203028101028102012701810001020184000100010083000100010101810001080181 +000109018100010501810001080102008501000100010082000100010081010081000109 +010100810100010081010001008201000105018202010082000200830002000203028100 +020202810002390281010201028101020202140181000187010001000100010001008101 +000400810100820001008200010006008101000800810100810001090106020101810001 +010106020b018100020d021f018102018401020100028102018201020084000201020106 +010100810200820002008300020002030203000102810002050281000206028101028102 +01010101008102010101010081010213028701020001000200028d020002000102000100 +02010002008300020002 +810100020083010001008100018601000100010001840100010001860100010001000101 +010100010183000200028602000200020002880200020002000102008100028c02000200 +01000100010001000281020081000289020002000100020001008100018d010001000100 +0100010001000100830001000181010083000100018101008a0001000100010001000100 +880001000100010001008600010001000100840001000100830001000104018300010001 +080184000100010083000100018201000182010001060102008101008200010001008101 +000100810100010082010001060104008101008200010002008202010284020102010282 +020102860201020102010206028101023202820001020102810002030201008702000200 +020002008600010002000200820001008300020102830200010282020102010281010201 +028101020102080181000105018500010001000105010202820102018101020202830102 +0001020182000102020281000284020100010083000100018201020101010e0283010001 +008c00010001000100010001000100870001000200020002010281010201028101020102 +8101020402010001028c0002000100010001000200010202028200020002008102008200 +02000100010283000201020f028201020101010102020082020002130204010302010183 +020102018501020102010282020102810200 +0200020183000100011a010f02810102060202010102010109028201020105018102013b +0181000101018100010801810001810100020009018400010001008100010f0101008101 +000100810100020004018100010601840002010200890002010201020102010240028101 +020302810102030281010201028101028202010201028101020102810002890200010002 +010200020082000200820002008200010084000200010083000100018201000184010001 +000101018300010001810100010003018102010401050281010284020102010207028101 +028402010201028402010201020e0202018102010e018102010201820201020102810102 +010281010201028100020102810100820001020102820102010101010283010002008200 +020082000200010003028500020002000282020002010281000205028101020102030184 +000100010084000102010216028300010002850200020001008400020001008300020002 +840200020002 +820001008200010001008201000186010001000100018401000100018401000100018601 +00010001000184010001000286020002000200028a02000200020001000200028e020002 +0001000100020001020002008100028e0200020001000100010001000102009000020001 +0001000100010001000100010083000100018101008a00010001000100010001008a0001 +000100010001000100840001000100840001000100830001000182010001090181000181 +010001008101000100090101008101008100018101000100810100820001000100810100 +010082010001070101008101000300810100820001000200810102840201020102820201 +02040281010202028101023b028201000203020100870200010001000100860001000100 +0100030003018100011c01830001000181010001000d012c028701000100010001008a00 +010001000100010001008600010001000100810001060101020201010201010300830200 +02000200830100010082000100870002000200020002810200820002000100820200020b +028101020202090101008201000213028100028102018b01000200020001020002000181 +0100010085020100020002 +030081010083000100010f01810001090102028101028202010202028101020102810102 +050205018202010202028101020202010181020105018102010101820201028102013d01 +810001030104000a01810001030101000801820001000100810100010081010002008201 +000103010300050181020088000200010201020102010281010282020102840201020102 +38028101020a028101020102810102010281010282020102010201008902000100020102 +00020085000200010200830001000283020001008100010b018300010001010101000301 +010205012d02030181020113018202010201028101028202010201028101020102810102 +830200010201028200020101018402010201020202820002008200020001008102008100 +020202810002840200020002860201020102010204020501020083010001021e02860102 +00010001000100810102840201000201 +090001018300010001860100010001000182010001020183000100018601000100010002 +910200020002000102000200020002000200028a02000200010001000100018101008100 +02a102000100010001000100010001000100010001000100020001000100010001000100 +810001830100010088000100010001000100830001000181010086000100010001008400 +010001008600010001000100810001820100010301810001050105008101008100010a01 +0100010102008101000100820100010a0101008101000400810100030081010085000100 +020102870200020002000102840200020002820200020502810002200281010212028101 +020802810102010281010282020102010282010002850201020001020102810002010281 +010283020001020102820100010401010003018100010201830001000181010001000501 +010204012e02880001000200010001008a00010001000100010001008700010001000100 +020102810102010289010201020102010201000300810200010081010082000100030081 +020082000200810002050201008102008100028402000200020102810102050281000281 +020101018302010001020181000214028300020002840200020002850200020001000200 +81020002008102000000 +020083010001000100830100010081000101018300010001860100010001000184010001 +00018b0100020001020002000200028a020002000200020002000202028b000200010001 +00010001020081000201028a010002000100010001000101018100028102010101830001 +000187010200010001020182010001010181000108018300010001220182000100020082 +0100010c0181000181010002008301000100010081010082000100010081010002008201 +000106010300060186000200010201028602010201020102820201022b028100020e0282 +010002020281000202020101010286000100010001008200010003008101008500010001 +00010101820001000100030183000100028102018101008100010b018200010081000181 +010081000109012e02260102028401020002018101020202020183020100018101020602 +020081020082000200810002130284010201020181010084000102000218028101020202 +04018102018101008200020083000200020002 +0400820100011b018202010201028101020d028100020202040182020102040281000107 +018302010001010183000100018601020100010201010187000200010201000101018200 +010085000100010001030182000100840001000100860001000100010082000100830001 +0001080181000103010300810100850001000100010c0101000d01020081010001008101 +000400810100030081010001008201000101018100028202010201028501020102000206 +028101023402810102020281010205028101020102810102820201020102810102010284 +010200010083000200020102810102840200010002860201000200020101010100010182 +000100810001030181000101010200820100010101830201020102012e02810100880001 +000100010001008c00010001000100010001000100830001000282020102010281010201 +028101020102840102000200010003020200830100010001008102008200020081000208 +0201000102820002008100020f0282010001030115028100028402000200028402000200 +0202028100020102010083010002000000 +0600010181000184010001000184010001000184010001000186010001000100018d0100 +010001020002000200010200810002860200020001000281020088000201000100010001 +8c0100020002000200020002000181010081000181010098000100010001000100020001 +000200010001000100010002008100018301000100840001000100830001000183010001 +0084000100010086000100010001008200010083000100010c0101008101000100810100 +85000100010001070182000100010002018200010082000100010081010001000a010100 +81010002000401010081010085000200010002030281010201028101020f028101023202 +810102030286000100010001008200010003008101000100050182000100830001000115 +018400010001000100050184000201020102012e02260101028401020102010301810201 +060182020102030281000281020082000200810002810200830002000210020501820001 +0001001602850002000200028202000201028d0100010001020002000201000200 +8200020004001b010402810102080281010207020501050202018102010a018102010301 +81020101010102020181020103018102012a018100018301000100820001008100011001 +810001020102000501010081010001008101000100810100010081010081000181010082 +000100030081010002008202010201028101020c0281010209028100022e028101020402 +810102010281010201028101028202010201028101028202010283020001008300020002 +010281010201020200810100820002008200020082000100840001000100810001020181 +000103010100820100010801070284000100010204028101020902840002010200810002 +0402810002030282000100880001000100010001008a0001000100010001000100810001 +840100020102010284010002010081000282020100890002010001000200010001008401 +000100018101020702810102030284000200020083000200020402810002050204010200 +0201180281010206020101870201020102010201820102010001 +040081010085000100010001820100018401000100018401000100018601000100010001 +860100010001020081000286020002000200028602000200020002810200880002010001 +000100018101008300020002960200010001000100010002000100020001000100010001 +8101008c0002000100020001000200010083000201008600010001000100810001830100 +0100840001000100860001000100010086000100010001008100010c0103008301000100 +820001008100010b018400010001000300820100010b0101008101000200820100010401 +040201008202010214028101020202810102300281000205020100870200020002000100 +040081010001008101020102840002000200840002000102820201020102810102810201 +0b0181000181010002000501820002010401070203010d02810102830200020183010201 +020b021b0102028101020102810102820200028402000200028102018101008100028202 +000181010281020101010c02810102050283000200020402810102040208018102008100 +02180281000284020002000286020002000102010101840001000100 +840002000100810001820100011901030281010201028101020d02820102010401020281 +010283020102010401010207018202010281020184010201020184010201020101010102 +840102010201270181000184010001000181010081000112018100018101008100018101 +000200810100820001000100810100010081010081000104010700030284000100020081 +000282020102440281010203028101020402110182000100810001060182000100820001 +008200010082000100820001008400010001008100010301810001020101008201000102 +010102040106020101820001020e02840002000100810002020281010201028200010202 +02840001000100880001000100010001008d000100010001000100010001000104018200 +010002008101008a00010001000200010002000300860100010002000281020081000284 +020002000284020002000209028300020102070202010100850100020001022002810102 +050283010201020002 +010282000200010001018300010001840100010001820100018401000100018801000100 +010001000186010002000200028602000200020002860200020002000281020088000201 +00020001000181010085000201000200810002a102000100010001000100010001000200 +010002000100010001000100020001000100810001810100860001000100010083000100 +018101008600010001000100840001000100840001000100810001820100010601810001 +810100020083010001008400010001008100010a01810001020101000c01020081010001 +00810100020003018200010203028101008200020104014c028101020202010087020002 +000200010004008102008300020102010281000281020001008202000201028101020102 +810102010282010201070181000101010300050181000106010602030111028301020102 +020282000102020281010202021b01020201018102008300020102020201008102000100 +810100820002000100830201020181010204028500020002000202020100010286010200 +020001028202010208020201810201020183020100021402830002000202028d00020002 +010002000201000200020302 +0400810100820001008100010101850001000100018401000100018401000100018b0100 +010001000102000200028602000200020002810200810002930200020002000201000200 +010001000200020100830001000183010001008100018c01000100010002000200020002 +820201008200020182010200810001890102000100020102000102018300010001110181 +00010e018100018101000200820100010d01810001030101008101000300810100010081 +010083000100010801060003028600010001000100810001010101028101024602810102 +060281010201028101028202010282020102010281010283020001008200010201028100 +020102820002008200010082000200820002008400010001008200010081000103010100 +020101008201000102018102010401060204011602010081010201028200010202028600 +0100010001008a0001000100010001000100890001000100010001000108010100850200 +020002008200020001008301000100820001000200820100020102810002040281000281 +020083000200028802000200020002000208020401820001000200130281000288020102 +00020002000284020002000186010001000102018301000102 +83020001000200190181020101010502810102040281010207020101810201030102020f +010402820102018301000201020182000201010182020001010182020001010183000100 +010201880001000100010001008400010001008300010001010101000101810001060182 +00010001000201030083010001008100010c018200010081000104010200810100010081 +010001008101000100810100810001030181000203020100810100010082010001850100 +020001020b02810002360281010205028400010001008100010101840001000100070002 +018100010101010082010001140181000102010100820100010301830001020104010602 +050103028200010204028101020702830100010201028200010202022201810001010101 +008102018101028402010001008300020100860002000201000281020001008402000200 +0281020081000281020081000206028101020a020501810001020118028101020a028101 +028602010002010201 +060084010001000182010001840100010001840100010001860100010001000186010001 +000201008400010200028102008100028402000100028602000200020001810100830002 +000190010002000100010001000100010001000181010083000100028102008500010002 +010083000200018101009000020001000100010001000200010001008a00010001000100 +010001008400010001008600010001000100850001000100010a01040001018100010d01 +810001050105000f01820001000300820100020102860001000100010083000100018201 +020102010b02810102370281010204028101028202010201028100028202010283020100 +028202010201028101008200010201028100020102820002008200010082000200840002 +000200820001008200010081000101018200010001000201830001000104010202010106 +020301820001020102810102870200010001000102010281000202028100020202810102 +83020001020202880001000100020001008a00010001000100010001008a000100010001 +000201020102018102010101040202008101000200890200010201000200010201028100 +02840200020002020281000201020100010281010083000200020a020601010017028600 +02010002000202028100028c02010200010001020001020002 +810200040018010102010182020102820201020702810102060202018102010301020210 +010302810102810201010181020102010102030181020101018102012901820001008100 +01810100040083010001008100010c018300010001830100010001008101008200010001 +008101000100810100010007018100020102820001000100810100850001020102010301 +0b0281010228028101020702810102060281010282020102850201020001028902000100 +020002000200030001020100010283010002008200020084000100010082000100820001 +008200010082000100810001060183000100010501820201020102010106020301860201 +020102010282020002850200020102018101028502010201000205028100020302810102 +04020a010202810102840201020102010281010202028301020102020281010281020101 +018300010001010181020082000201010102028200010081000284020102000282020002 +810200010001028100020702810102020202018102018101020102810002830201020101 +018402010201020c028101020a02810102820201020202810102 +8101000400840100010001860100010001000101010100010183000100018b0100010002 +000102000200028602000100020002860200020002000281020088000201000100020001 +810100810002830200010081000186010001000100018101008300010002810200850001 +0002010083000100018101008c000200010001000200010002008c000100010001000100 +010001008600010001000100840001000100870001000100010001070181000181010001 +000101030081010083000100010701810001040103000d01010081010001008101000300 +810102010202018800010001000201020081000101018300010002090281010239028401 +00010001010183000100010f010100030101008201000181010282020102820201020102 +820102010901820001000100030101000301820201020102010106020401170282010002 +0702810002040283010001008c0001000100010002000100020083000100028102018101 +028102010201820201020102810102880201000100010001000100020281000202028200 +020081000206020100860201000200020001000502810102020281010281020181010203 +0286010001000201028202000183010201020b0281010287020002010002000282020002 +81020184010001020182010001 +070082010001820100018401000100018401000100018601000100010001020186000102 +010200020202830002000201028100020402820002010101810201020183020002010201 +8100010a010202820102018201020102018102010201810201020181020102018102012a +018100018101000200820100010e01810001010101000101010081010001008101000100 +810100820001008100010801030001020100810200010001028100010801350281010208 +028101020402010181020183010201028202010283020102018601020102000100820001 +000200840102000102870201020002000100820001008200020082000200820001008500 +010001000105018400010001008100010401020201010602040117028200010207028101 +0204020e018102010f010602010181020184010200010201020101030281010282020002 +020281000282020102010281000201020100140202000102010181000184010001000203 +028101028402000200020202810002820200020b0281010282020102 +010085020100010001170188000102010200020102830200010203028100028502010002 +000201028801000100010001000201028100018201000101019e00010001000100010001 +000200020001000200010002000100010002000100830002000181010086000100010001 +008100018501000100010084000100010084000100010084000100010081000182010001 +070104000101040081010083000100010c01040006010100810100010081010001008101 +000100810100010082020102010282010201820102010d01430218010100010181020102 +018102010201810201020181020102018102011e01010201010602040117028101020802 +81010205028400010001008d000100010001000200020002000201028101020302810102 +0302020111028a01000100020002000200020502810002120201018102018a0102010201 +020100010201040103028201020101010202820001020302810002840200020002830200 +010285020100010002 +010081020001008601000100010001840100010001840100010001010101000101810001 +860100010001020086000102000200028602000200020002830200020081000286020001 +000200018101008100028802000100010001000181010081000181010083000100028302 +000200830002010083000200018101008c00020001000100020001000200810001810100 +850001000100010101840001000100840001000100860001000100010083000100010b01 +0400010101000e018100010401030081010083000100010c018200010004008302010200 +820001008200010081000108018202010240028101020202810102010281010201028301 +020102020282010200830002010281020002008302000200820001000100830100020001 +008302000100820001008200010082000100840001000100840001000100010081010081 +000101018100018401020102018101020502040117028101020802810102050288000100 +010001000100830001000282020102030281010203028101020602810102060201000502 +85010201020102820200021f02830102010281020002008a020001020001000100010201 +028300010001870100010001000102010281000204028500010200010201028100018101 +00 +8200020081000282020001190182020102010281010201028101020d0201010102030101 +02820102010e0103028201020101010102040181020103018102018101028102010a0181 +00011b01820001008100010101010081010001008401000100010d010200010101008101 +008200010001008101000200810100820001000100030105021201820201020802810102 +31021a018400010001008100010501810201010183020102018101028102010101020220 +010702030129020c0186020001000100010c010202810102080281000204028301000200 +8a0002000200020002000200010002028100021602810002810201820102018201020103 +01020282010201010182020102050281010204028101020202810102010282010201 +030081020085000100010001820100018401000100018401000100018401000100018601 +0001000200028402000200028a0200020002000100020002860200020002000181010081 +000188010002000200020100830001000187010001000100010091000102000200010001 +000200010001000100810001830100020081000181010086000100010001008300010001 +830100010084000100010088000100010001000100850001000100010701820001000400 +040101000c01810001020103001001820001000100810100030001028200010081000181 +010083000100010801820201023c02850102010201028402010201028302010201840102 +010201830102010202028301020102820201000100830200020001008301000100820001 +008200010082000200820001008200010082000100820001008400010001008400010001 +0001000701810201810102060203011902810102070281000203028d0100010001000100 +01000100010087000200020002000203028301020002010281010201028101020c028101 +021102820001021802010189000200010001000100018301000102020286010201000100 +0284020002000202028500020002000282020002840200020002810200 +020081020001000201810001020181000104018300010001030181020183010200020c02 +810002060202018102010201030204018100010901020282010201810102810201020101 +020201010202018102010101810201220181000109010500810100010008018100010301 +820001008200010082000100010081010082000100010081010001000701010281000283 +020100010401810001030181000103018202010209028101021b02810002030281000203 +028100020302810002810201010181000103018100010301810001030181000103018100 +0101010100830100020101018a0200010201020100020102840201020002010281010282 +020102020282000201020181000104018100010401830001020101010602810001810102 +1702810002090281010201020f0105028101020202810102030281010202028101020802 +810102010281000290020100010002000200020002000200020085000200020102160282 +00020001000302010181020181010203028201020181010204028101020b028101028402 +01020102 +040002018100010101010003018300010001820100010101810001860100010002010201 +020100810200830002000288020002000200020002830200020001008202000183010002 +008100018c01000100010001000100010001810100830001000281020082000100820001 +008400020001000100840201000100860001000100010002008b01000100010001000100 +0100860001000100010086000100010001008100018201000107010400040102000e0103 +000d01020081010001008101000200810100010002021301820201023c02840102000102 +02028100028b020102010002010201020002010284010201000202028101000100840200 +010200830002000283020001008100028302000200010083020002008100028602000100 +010001810100830001000181010081000104018100028102010101080201012302810102 +850201000100010301010004010100020281010282020002820201020202010004028101 +020f02030007028100028302000102190281010208028501020100010202028101028202 +00020502810102010288000200020100020001820100018301000100 +050002018200010083000100010301010001018100010201860001020001000201028101 +000200820200020102840002000200810002010202008202000102018200020001000201 +01008101000100020185000100010002010201008a020100010201000100010081000101 +010300850102000100018401000100018401000100010201810001090183000100010e01 +0500030181000107018100010401020081010001008101008200010001000e0102000102 +830100010001008201000181010081000182010001830100010282020102220283000200 +028102008200020082000200820002008200020082000200820002008500020001020083 +000200028102008300010002830200020085000201000200820001028102000100810102 +810200820002008200010083000100010101020002018100010901820001008200010082 +000100810001020183000100010101010082020001810102050281010001008101021902 +810002050281010203028201000104018200010201028101008100010301830001000104 +01880001000102010201020d028201020186010002000200028102008400020002008300 +020002030281000212028101028202000283020001020302820001020802810002020281 +000202028500020002000288020001000102000102 +020083010002008100010701810001840100010001820100010201830002000181010284 +020002000203028300020002020281000282020002830201020101018600010001020001 +0101010005018100018c010001000201020002000200018b010200020001000201000100 +810001020183000100010101820001008100018301000100820001000100810100870001 +00010001000105018100018201000104010100810100810001020102008101008100010b +010200010182000100010081010082000100010081010001008101000200810100010082 +01000203020a018100010201850001000201023e02010183020102018501020102010284 +02010201028302010201820102010b018402010201028202010282020102820201028402 +010002008200020083000200028202010203021301040281010282020102820201021402 +030101028101028202010202028101020402810001030181000103010402810102030281 +010202028101028202000201020101100203008802000200020002000201028100020702 +8101020b028100028202000203020201050201011b0283010201020202 +010081020084000201000115018102018101020a02810002020201008202000283020102 +010501020210018202010201028201020181010281020102018102010301810201320105 +000201810001010181000103018100010201060016010200810100010002028101008200 +010084000100010084000100010001008301020102220201008102008200020082000200 +820002008200020082000200820002008200020082000200820002008200010084000100 +010082000100820002008200010082000200820001008200020082000100840002000200 +820002008200020086000200020002000200820201028202010203028301000200820001 +008400010001008400010001008400010001008200010082000102230281000284020002 +000202028100020302020186000100010201008600020002000200830002000283020001 +00860002000102000201028400020001020c028501020102010204020100840200020002 +020281000202028101020f0203018202000283020001020a028101020102810002090283 +0002000282020002020283000200020002 +050004018100010101850001000100010101820001008400010200020102870002000100 +020002810200830002000201028100020702890001000100010002000181010083000100 +018c01000100010001000102000100830002000283020002008300020001830100020083 +000100018101008800010001000100010083000100018301000100860001000100010083 +0001000109018100018e0100010001000100010001000100010401810001810100840001 +000100820001008200010001008101008200010082000100820001000100810100010081 +0100010081010001008201000103010402100101028101023d0281010201028101028402 +010201028202010201028101020102830102010201028101020102810102010281010201 +028101020102810102810201070102008101008100018201000182010201010181020182 +01020110012e020101810201010183000100010301830001020101018302000102820201 +02840201000102010202010100830100020101010e02810100850002000200020c028101 +0203028100020c0281000203028100028202010282020102110281010207028101028202 +010202028101020002 +810002810200010082010001820100010201850001020100020202810002090282000102 +030281000284020002000285020002010002010281000101018300010002820200018201 +000184010001000101018400010200010201840200020002020285010001000201010181 +000182010001020183000100010301830001000102018300010001030183000100010701 +8100011301010004018100011f0102008101000300810200810002010201018200010081 +000186010001000100018101008400020001022502010001028200010081000283020002 +008100028302000200810002830200020085000102000200820001028102008300020002 +810200830002000281020083000200028102008300020002830200020001008a01000100 +010001020002008b00020002010201020102010282020002810200830002000283020001 +008100028202010086000200020102000200040281000204028100022002810002820201 +028102018101008100018201020181010082000201010185020001000201020186000100 +010201028302000102020282010002060281000203028301020102040282010002880200 +02000200020002070283010201020a028101028102018701020001020100020102810102 +0502810002060281010207028100020502810002 +820002000200040281000207020100050282000200820001020102820102000100060281 +000206028100010401830200020105018200020104010100010103028300020002810201 +010101000501010004018300010001030101000401830001000102018100010c01920001 +000100010001000100010001000100010001008101008200010082000100820001008200 +0100820001008200010082000100010081010082000100010081010001000a0104020101 +810001040181000103018400010201020602810002030281000203028100020202810002 +030281000203028100020302810002030281000203028100020302810002020284010002 +01020102820001028402010200020302810002030281000203028100028102018101020e +02010081020001000102820001021a020101010281010207028101021402810102820201 +020302040101028101020102810102010201010102810102810201810102810201010101 +0201018102010101810201010112028301000102810200810002820201020e0282000102 +0b0201000102810002810200840001020001850102010001020202840100010001840100 +02000211028300020002 +850001000100021602810102180282010201040182020102810201020183020102010a01 +080231018100010201870001000100010001270182000100020081010082000100020081 +01000300820100020302820102010b01820201020e028101020f02810002030281000203 +028100020902010003028200010283020102008100028302010200810002020201008202 +000281020083000200028102008300020001830100020082000200840002000200820002 +008200010081000206028200020086000200020002008200020001008302000200820002 +008100028102000200010101008102008100028102008200020081000181010081000207 +028100028102000100820200020102020082020002020202000202010082020002830200 +020001000202030002020100810200810002010201008102008200020181010082000200 +810002010282000200010003020100010101028101020102810100830002000286020001 +000201020102810102060281010205028100010301810201020101020c01820201020802 +81010201028101020802 +010081010001008202000281020081000201020100030281000281020083000200028202 +000281020081000282020002820200028102008300020002830200010081000284020002 +000181010087000100020100020081000184010002000181010083000100018201000182 +010002890200020001020002000182010001860100010001000181010085000100010001 +840100010001860100010001000186010001000100018401000100011201860001000100 +010081000181010001008101008200010082000100820001008200010082000100820001 +000100810100830001000111018300010002020201008e01000201000100010001000100 +010208020100010282000200810002830200020001008102008200020082000200830002 +000281020083000200028102008800020002000200020001008102008100020202010001 +028200020081000283020102008100028302010200810002010285010200020102010281 +0002010283010200020d028101020102010081020083000200021d020201810201810102 +050203011c020301120281010201028101028102010a0102028101020c02030182020102 +010201018200020181010282020002820200020102010182020002030281010207020100 +02028100020102820100028302010001880100010001000100028402000200028b020002 +00010200020002000284020002000282020002810200 +8200010081000182010002020281010209028101021f0203010102010101020301810201 +0c010802320181000102018a000100010001000100010086000100010001008200010084 +000100010082000100820001008200010082000100010081010082000100010081010082 +000100010081010001008101000100810100020001010502030182020102810201040135 +028101020a02810102030281010282020002030281000202028101008100028302010200 +820001020102010082020002830200010081000283020002008100020102010082020102 +020281010201020200030202000102820001008100020102020002020100820200018201 +020083000200020102020002010802010002028500020002000201028500020002000284 +020100010081000201028200020081000201020100820200028202010083000100010201 +010084020002010281020002000202820002008100020302030082010201030102028101 +028402010001020802810102040283010201020202820102000100010101000201040202 +0181020106010a028101020e02 +010101008101008300010002840200020100820001020202810002010283000200028202 +000201028100028202000282020002850200020100028202000282020002840200020001 +010181000184010002000182010002820200018401000100018201000183010001008300 +020002830200020083000100018301000100830001000184010001000185010001000100 +830001000181010001008201000181010001008201000181010001008201000149010500 +040201008201000183010002008100018201000202020200830100010001008302000200 +010083020002000100870200020002000200010081020082000200820002008200020082 +000100820002008200020082000200010081020082000200820002008200020082000200 +810002830200020081000283020002008100020102830001000201020100050283000201 +028202000204028100020202010081020082000200830002010201028200010202028300 +020102830201000203028201000203028200020101018302010002030281000183010201 +028202000204028100020f02820102010101090206010202810002030285010200020102 +01028101020f028101020202030182020102020281010202028301020002020283010201 +020302810102050207010100820100020102830100010087000100010001000184010002 +00028b0200020001020002000200028902000200020100020002810200 +8500010001000102010a028101020a0281010201028101020d0281010201020201840201 +02010202028101028102010d018202010204028201020101018102010201810201020181 +020123018100018401000100018301000100880001000100010001008400010001008200 +010082000100820001008400010001000100810100820001008200010001008101008200 +010001008101000100810100010081010081000106010402040102028101020202810102 +3c0281010201028101020c02810102030281010202028101020402810002020281000202 +020100820200028302000102100201001702820100020302820002010101010281000204 +02810002020281000282020002840200020002820200029a020002000100020100020001 +000201000200020002000200020002820200029102000200020100020001020002010002 +000282020002820200028402000200020302030182020102010203010202810102050202 +01010281010284020102010201020301810001810100030004020a011402810102010281 +01020002 +820100018201000182010001810100810002030282000200810002040282000200810002 +030285000200010002020282000200810002030282000200810002010285010200020002 +860201020100020081000185010201000100810001020182000200810002010283010002 +008100028302010200010086010201020001008100010201020001018402010002008100 +010101010082010001010182000100810001400181000181010084000100010001000101 +820001008100028302000100810001810100830002000281020083000200028102008300 +020002810200010002020200840102000200810002810200830002000281020083000200 +028102000100840102000200810002830200010083000201008500020001020085000200 +020100860002000200020081000283020001008100028302000200810002830200020086 +000102000200020102810002820200020602850102000200028102008900020002000200 +020002820200020302010082020002860200020002000281020083000200028a02000200 +0201020002000201028401000200020202830002000202028100020f028101021a020101 +810201010181020101018102010101820200020102810002090201018200010283020102 +010101840201020102810201010181020104018502010201020181010281020101018102 +010701050201018100018101008100018601000100020002860200020002010282020002 +840200020002840200020002820200020002 +020082010001060116028101028202010205028501020102010282020102020201010102 +860102010201020181010201020201010201018102018401020102010101810201020101 +0202010102010183020102010101820201028102018b0100020102010201020102010101 +820200010a01810001040185000100010001010185000100010001830100010001000101 +820001008100018301000100810001830100010081000183010001008100018101000200 +830100010081000181010083000100010201810001030182000102020281000202028100 +020302810002020282000102020281000284020102000203028100020202810002020281 +000203028100020202810002010282010002030281000202028100020202810002030281 +000202028100020202810002030281000202028100020302810002020281000202028401 +000201028202000204028100020202810002020281000203028100020302810002030281 +000202028100020302810002030281000204028100020102830102000203028100020402 +810002030281000204028100020402820001020302810002040281000204028100020402 +810002050283000200020102850002000200020702880102010201020002010101820201 +028402010201020302810001810102010282010002010281010284020102010202020201 +0102820100020202850100020002018701020001000100028402000200028b0200020001 +0200010002000205028100020002 +020005018100010201040281000206028100020502860100020102010281020183010001 +020102810102830201000201028601020102000201860102010201000201020101010282 +000201010185020102000102020283010001028102018301020002810201810102830201 +000201028101028502010201020183010200020102830102010282020102010282010001 +0101810201060181000103018100012f0181020109010102820102018201020181010202 +020101030285010201020102820201022902810102010281010215028200010205028101 +020502810002030281000202028100020302810002030281000203020100010282010002 +030281000203028100020302810002030281000203028300020102840201020002030281 +000203028201000203028100020402810002030281000204028100020402810002040281 +000205028100028202010201028100028602010201020002050286000102000200020902 +810002840201020002830200020183010201028202010203028601000200020102820201 +028502000102010282020102810201820102010101840201020102040287010201020100 +0102010281010215028101020102 +010082010001020181000185010001000102010281000284020002000201028700010200 +020001028802010001000200010287020100020002000283020100028102008100028802 +01020001000100020102850001000200028f020100020002000102000102000100028602 +0001000200029e0200010200010002010002000200010200010001020002000100020002 +000284020001020081000295020002000100010200010001000200010001000100018101 +008300010001810100830001000101018100018201000182010001820100018201000181 +010083000200028102008300020001810100830001000183010001008200010089000100 +020100020100028202000282020001830100010085000102000200840002000200810002 +83020002008400020002008500020100020086000200020002008a000200020002000200 +020086000200020002008100028102008600020002000200810002810200010001020100 +820200028102000100020201000202030081020002000202010003020100020201000302 +810002030201000202010003028100020202010003020100030201000302810002020202 +000202020002028300020002010283000200020202020002028300020002010281000282 +020002010283000200020102810002820200020102810002820200020102810002820200 +020202820002008100020102820002008100020102810002810200010001028100028202 +000282020002030281010201028500010200010082000201820100018101020102810102 +830200010082000102040283000201020502010101028301020002820200020402840001 +02010281020183010200028302010002020201018100028202000203028100020602 +830001000105018100010201820201028202000201028101028102018301000102020201 +018302010002050281000205028201000201020101010281000205028100020502810002 +010201010102810001010181020183010001028202010283020100028202010284020100 +010282020102820200028102018101028302000201810102010284000102010282020002 +020283010200020302810002020285010200020102890201000102010200010201028201 +000281020101018100018201020187010001020102010282020102030201010102840102 +010201020181020105018100010201820200010201830001020189010200020102010001 +028302010002010283010200020202810002020281000202028100020202810002030281 +000202028100020202810002020281000202028100020202820100020202810002020281 +000202028100027f0213028101028202010203028101020a028300020002040201010102 +830102010206028101028102018101028302000102830201000203028101020a02010103 +0281010206028101020102020102020101820201020c0281010207020001 +820100018201000184010001000103018500010001000102018500020001000186010201 +000201008300010201870100020001000102880201000200010001028602000100020002 +0102850002000200020102850002000200028a020100020001000102010083000200028b +020100010002000201000200810001010185000200010002830200020081000201028200 +020086000201020002008200020181010001000101810200830002000283020002008500 +020100020081000281020085000200010200870001000201000200810002810200860002 +000200020081000281020083000200028102008500020002010001000102820001008100 +028102008300010001810100830002000181010001008202010086000100020002008100 +028102000100010201008501000200020084000200020081000281020001000102020001 +020100850200020002008400020002008100028102000100010202000102010083020002 +008600020002000200810002810200010001020100830200020083000200028102000100 +010201008502000200020081000281020001000102010082020002810200010001020100 +820200028102008600020002000200810002810200830002000281020098000200020002 +000200020002000200020002000200020002008100028602000200020002810200830002 +000286020002000200028102008300020002860200020002000286020002000200028302 +0002008100020102850002000200028b0200020001000201000200028202000285020002 +000100830002000201028101028802010200020002000185010200010002010281000201 +028100028702000200020002000100040281000208028600010001000102050281010282 +020102830200010201028200010285020002010002820200028202000201028300020002 +03028100020002 +820100010101810001070181000106018100010201810201010181000101018102010201 +820002018301020102010283000102018101020102820001020202010182000102010289 +010201000102010201028202000183010201028302000102020283010200020102810102 +840200020102840201020002040281000201020101810002820201020102810002030282 +000102020282010002030281000203028100020102830102000202028300020102010281 +000203028100020202010003020100020288000200020100020102840200020102830201 +000202028200010283020100020202810002860201020001020184010002010283020001 +028302010002020281000202028100020202810002010281000202028100020202810002 +840201020002010283000201028302000102010281000202028100020202810002010281 +000202028100020202810002020281000202028100020202810002020281000202028100 +020202810002020281000201020100020201000302810002020281000203028100020202 +810002020281000203028100020202810002030281000282020002820200028202000282 +020002020281000202020100030201000402010004028100020302010005028100020302 +010004020100020201018102008100020302830002000203028100020302830100010201 +028100028202000201028101020102010003028100020302010081010203028201000205 +028100020602810002020281010202028100020202810002020282000102060282000102 +0202810002810200 +010181000182010001010181000103018100010101810001030181000182010001030181 +000101018100010201810001820100010201810001010181000102018100018201000184 +010201000182010001020181000184010001020182010001820100020102850002010200 +028202000283020100028302010002820200020102850002010001028202000282020002 +010285000201000102820200028202000282020002820200020102840002010002820200 +028502000102000282020002820200028502000201000283020100028802000200010200 +010202028100020202820001028a02010200020102000200020102830002000282020002 +820200028402000200020102830002000201028300020002840200020002010283000200 +028902000200020100020002010201000202830002000284020002000201020100020283 +000200028402000200020102010002020100020283000200020102010002020100020283 +000200020102010002020100030201000202010003020100020201000402810002020281 +000202020100030281000203028100020202010003020100030201000302010004028100 +020302810002030281000204028100020302810002040281000204028100020402810002 +030281000205028100020202830102000202028100028202000202020100820200020102 +810002060285000200020002820200028202000202028100020102820102018201000283 +020100028202000201028200010281020181010201028100020c02010101028100020102 +810102820201028202000207028100020702810001 +010002018100010301810001820100010301810001010181000103018100018201000102 +018100010101810001020181000101018100010201810001820100010201810001820100 +010201810001820100010201810001820100010101810001820100010201810001820100 +010101810001820100010101810001830100010282020002830200010284020001000201 +028400020100028502010002000201028300020002020201008202010281020083000201 +028102008100028302010200810002010281010081000201020100020286000200020102 +008100020102830002000284020002000201020100030201000102810100820001028102 +008100020202810002020281000202028100020202810002020281000202028100020202 +810002010201000202010002020100020201000202810002010201000202010002020100 +020201000202010001028300020002840200020002840200020002840200020002840200 +020002840200020002840200020002840200020002840200020002840200020002840200 +020002820200028402000200028402000200028202000282020002840200020002840200 +020002010283000200028402000200020102830002000201028300020002010283000200 +020102830002000201028300020002010201000302830002000202020100030283000200 +020202830002000202020100040283000200020402810002040281000203028301020002 +050281000205028100020102810102010281000208028100020602810002030281010282 +020002060281000201028101028502010201000281020181010202028300020102020281 +01028202000205020101 +010001018100010101830001000101018100018301000100810001010181000101010100 +020181000181010001000101810001010102000201810001810100810001010185000100 +010001010181000181010081000182010001840100010001010185000100010001860100 +010001000182010001810100810001820100018101008100018201000181010081000101 +018200010083000100018101000100010182000100810002830200010001008302000200 +010083020002000100830200020001008302000200010083020002000100830200020084 +000200020001008302000200840002000200010081020002008302000200840002000100 +840002000200010081020002008102000200810200020081020002008102000200810200 +020081020002008102000200810200030081020002008102000400810200030081020003 +008102000300810200030081020003008102000300810200030081020002008102000300 +810200020081020002008102000200810200020081020002008102000200810200020081 +020001008102000200830200020084000200020002008102000100830200020084000200 +020001008302000200840002000200010083020002000100830200020001008302000200 +010083020002000100830200020001008302000200010082020002810200010083020002 +000100010282000200010082020002810200810002820200028102000100010282000200 +010001028100028402000200028302000200830002000201028300020002010281000281 +020001000102810002810200010082020102820200020102830001000282020002010201 +008202000282020002810200830002000282020002810200830002000282020002010202 +00020281000201028500020002010282020002810200810002010281000282020100 +8100017f0123010102820102018101020202810102010281010220028101020702810102 +08028101027f027f021e028101021c028101020d0281010218020001 +010005018200010081000104018200010081000104010200050102000501020004010200 +040182000100810001030101000501010004010200030102000301020003018300010001 +020102000301020002018200010081000101018300010001010183000100010101830001 +000101018200010081000183010001008100018301000100830001000182010001830100 +010081000184010001000183010001008b00020002010001020002000283020002008400 +020002000200010202000102020001020200010202000102020001020200010202000102 +020001020200010202000102020082010200010081020084000200020001000102020081 +020002008102000200810200040081020002008102000300830200020084000200020084 +000200020002008102000200810200020081020002008102000200810200020081020002 +008102000100810200020083020002008100028102000200810200020087020002000200 +020083000200028102008400020002000100830200020081000283020002008300020002 +810200830002000281020083000200028102008100028302000200810002820200028102 +008100028302000200010083020002000100010282000200010001028400020002008600 +020002000200810002810200820002008100028502000200020081000281020081000201 +028100028102008400020100020102010001020100020201000302810002010281000202 +028100028202000204028200020081000206028100020202810002020281000203028100 +0285020001000102010201000102010002020000 +010181000101018100010301810001010181000103018100010101810001020181000101 +018100010301830001000103018100018201000102018100018201000106018100010401 +810001050181000104018100010501810001040181000104018100010401810001030181 +00010401810001030181000103018100010401810001020181000103018100012d018102 +01820102018101020a028101027f027f0256020301810201810102810201030101028101 +0202028101028102010001 +810001030183000100010501830001000104018300010001040183000100010401830001 +000104018300010001030183000100010101810001860100010001000184010001000186 +010001000100010101820001008100010101850001000100018601000100010001860100 +010001000186010001000100018101008300010001860100010001000181010083000100 +018101008300010001810100830001000181010083000100018201000182010001840100 +010001810100830001000184010001000181010083000100018401000100018401000100 +018201000184010001000184010001000183010001008400010001008400010001008400 +010001008400010001000200830100020084000200020002008102000200810200030081 +020082000200020081020082000200840002000200820002008200020003008302000200 +030081020004008102000400810200040081020002008102000100010202000102020081 +020002008102000100010202000102020001020200010202000202010002020100020201 +000202010003028100020202010003028100020202810002030281000202020100030201 +000302010003020100030201000302010003020200030201000302020003020200030202 +000302830002000202028200020081000202028200020081000202020300030282000200 +810002030203000302830002000281020083000201008300020002820200028102008300 +020002820200028602000200020002010202010100840100010001840102000200840002 +0100010201850001000100010001 +060102000601020005010200050102000501020005010100050102000401020004010100 +040102000301020004010100040101000401010003010200030102000201020002018300 +010001010183000100010101020002010200010182000100810001830100010081000181 +010001000101820001008400010001008300010001810100840001000100840001000100 +010001010200010102000101020001010200010102000101010002010100020101000101 +020001010200010101000101020001010200820201000100810200010001020200810200 +020081020001008102000200830200020005008102000100830200020082000200840002 +000200010083020002008200020084000200020084000200020001008302000200840002 +000200840002000200820002008600020002000200860002000200020084000200020084 +00020002008600020002000200880002000200020002008a00020002000200020002008a +000200020002000200020081000283020002008100028302000200810002830200020081 +000283020002008100028202000281020081000283020002008100028202000281020081 +000282020002810200810002820200028102008100028202000281020081000282020002 +810200810002010281000281020081000282020002010201000102810002010201000102 +810002010201000202810002010201000202810002010201000102810002020281000202 +028100020202810002010281000202020100010282010001020181000186010201000201 +0284020001000101018100010101 +7f0170018102010101810201820102010401810201820102010101810201080183020102 +01840102010201850102010201028402010201028402010200020a028100020102810002 +020281000201028100020202810002010281000202028100020202810002010281000202 +028100020102810002020281000202028100020202810002020281000202028100020102 +820100010201810001020181000102018100010201810001030181000102018100010301 +840001020102820200020202870002010201020002030281000203028100020302810002 +040281000204028100020302810002040281000204028100020502810002040281000205 +028100020502810002060281000205028100028202010201020101810002060281000206 +028100020402810102010282000102810201030182020001810102810201010101028301 +000201 +820100010201010002018100010201810001020181000101010100030181000101018100 +010201810001010181000102018100018101008100010101810001010181000101018100 +010101810001010181000101018100010101810001820100010101810001810100810001 +820100018101008100018201000181010081000101018200010081000182010001820100 +010101820001008100018201000182010001820100018201000182010001820100018201 +000182010001830100010081000183010001008100018401000100018301000100810001 +830100010084000100010084000100010081000184010001000184010001000181010001 +008301000100840001000100840001000100840001000100840001000100820001000300 +810100840001000100820001000300810100820001000300810100020081010001008102 +000500810100070081010006008101000700810100060081020006008102000300810200 +820001000300810200020081020082000200030081020084000200020084000200020084 +000200020082000200020081010002008301000100820001000200830100010084000100 +010084000100010081000183010001008400010001008100018301000100830001000181 +010083000100018201000182010001820100018301000100810001820100018201000101 +018400010001028302000200810002820200028102008100028202000281020081000282 +020002820200020102810002810200810002010282000200810002020283000200020202 +810002810200810002820200020102810002020281000281020081000202028100028202 +000203028100028202000202028100020102810002030281000281020081000202028200 +010281020083000201020102810001010181000101018302010001820102008100010001 + +040102000101810001020102008201000103010100820100010301020082010001020102 +008201000102018200010081000102010300040102000301010082010001020102000301 +010082010001010182000100810001010101008201000186010001000100018101000200 +010185000100010001810100020083010001000100830100010001008301000100010083 +010001000200010182000100820001000100850100010001008100018101008100010101 +020001010200010102000101020001010200020101000101020001010200010102008101 +000200810100010001010200810100030081010006008101000100010101000101020001 +010200810100010001010200810100010001010200810100010081020005008301000100 +010081020084000200010001008302000100820001000100010102008301000100820001 +000100010202008302000200840002000200820002008400020001008400010001008400 +0100010084000100010084000100010086000100010001008400010001008a0001000100 +0100010001008a0001000100010001000100830001000181010093000100010001000100 +010001000100010001000101018300010001180182020102620281010206028301020102 +8102010701 +820100018401000100010101810001020102000201810001830100010081000101018100 +018101008100010201810001810100010002018200010083000100010101820001000100 +01018100010101010002018100018101008100017f016001810001020181000101018100 +010101810001010182000201010185000201020002840201000102900200010201020001 +020100020102010002010281000102018100010101810001020181000102018100010101 +810001020181000102018100010201810001020181000102018100010201810001020181 +000103018100010201810001030181000103018100010201010003010100010102008501 +000100010001008301000100860001000100010001000101830001000286020002000200 +028502000200020083000200028602000200020002010285000200020002010283000200 +028202000284020002000282020002830200020083000200020102820002008300020002 +010282000200810002880200020102000200028202000201028400020100020102810002 +0102830002000201028100020102810002820200010101810001 +4b0181000101018100018101000100010181000181010081000182010001810100810001 +830100010001000101820001008100010101820001000100830100010081000182010001 +810100810001810100020083010001000100830100010081000183010001008400010001 +000100830100010081000181010002008301000100820001008600010001000100840001 +000100840001000100820001000200810100020081010003008101008200010003008101 +008200010003008101000200810100820001000100810100060081010001008101000700 +810100820001000f0081010010008101000e008101000a00810100060081010082000100 +060081020003008101008200010003008101000200810100820001000200830100010082 +000100030081010001008301000100820001000200830100010084000100010001008101 +000200830100010001008301000100010083010001008100018301000100010089010001 +000100010001000100820100018101008100018301000100010082010001810100810001 +820100018101008100028202000281020001000102810002810200810002820200028102 +000100010281000281020001000102810002840200020002820200028102000100020281 +000281020083000200028202000281020001000202810002830200020081000282020002 +010201008202000282020002010201008202000201028100020102010086020002010200 +01 +820100010101870001000100010001020101008401000100010201020082010001030101 +000101810001010101008401000100010101020082010001020101008201000102018200 +010081000101010200820100010101010082010001010101008201000101010200820100 +018101000100030101008201000181010002000101030001010200830100010002000101 +030001010100870100010001000100820001000100810100020083010001000200810100 +020081010002008101008400010001000200010102008101000100010102000101020081 +010001000101020081010001000101020081010001000101020081010001008101000b00 +810100010081010001008101000100010102008101000100810100010081010001008101 +000f00810100010081010001008101000100810100020081010001008101000100810100 +020081010001008101000100830100010004008101000700810100030081010084000100 +010082000100010001010200830100010082000100020081010002008101000200810100 +010085010001000100840001000100820001000100870100010001000100010083010001 +000100810100010083010001008200010085000100010001030181000104018100010301 +8100010d01540281010212020001 +820100018101008100010101810001860100010001000182010001830100010081000101 +01870001000100010001820100018301000100810001880100010001000100018d010001 +00010001000100010001008100018301000100850001000100018101008a000100010001 +000100010084000100010084000100010086000100010001008400010001000100850100 +010001000100830100010001008301000100010087010001000100010001008101008200 +010001008101008600010001000100010081010002008101000200810100020081010002 +008101000300810100020083010001000400830100010004008101008200010082000100 +040081010001008101008200010082000100010081010029008101002500810100810001 +010181000101018100017701870001000100010001830100010081000186010001000100 +018601000100010001820100018101008100018201000181010081000282020002840200 +020002820200028102000100010281000281020001000102810002810200010002028500 +020002000201028100028102000100020281000283020002008100028202000281020083 +000200020102810002010283000200020102840002010200830002000201028600020102 +000100810001 +830001000102018100018401000100010201810001820100018201000101018100018401 +000100010101810001840100010001010181000182010001820100018301000100830001 +000185010001000100810001820100018101008100018201000181010086000100010001 +000100010181000181010001000101820001008100018501000100010084000100010001 +008301000100010001018200010081000183010001008400010001000100830100010001 +008501000100010082000100010081010002008301000100810001810100010087010001 +000100010001008501000100010003008101008200010082000100820001008200010003 +008101000100810100820001000100840100010001020181000101018100010101810001 +010181000101018100010101810001480181000181010001008101000100810100060081 +010001008101000100810100010081010001008101000200810100010081010001000101 +020081010001000101020081010001000101830001000181010001008101000200810100 +020081010001000101020002018300010001810100010001010300010102000201020001 +018200010081000101010200020183000100010101020003018300010001010102000301 +010082010001010101008201000102010300030202000302010082020002020201008202 +000202028200020001000402030004020200040201000102810002030201008202000205 +0282000200010006020100810200 +810001030181000181010001000301810001810100010003018100018101008300010001 +820100018101008300010001010181000181010081000102018200010001000201820001 +008300010001830100010001000201010081010081000182010001810100810001010182 +000100810001010185000100010001830100010081000101010200010182000100810001 +830100010001008301000100010001010200010182000100810001810100010002010200 +840100010001030181000134018100010101020081010001008101008200010082000100 +010081010082000100020081010084000100010082000100030081010001008101000100 +810100010081010028008101000100810100010081010001008101000100810100010081 +010001008101000100810100010081010001008101000100810100010001010100010102 +008101000100010102008101000100010102008101000100010102000101020001010200 +010102008401000100018301000100810001810100010001010100820100018101000100 +010103000101020002010200020103000101030001010300020103000201010082010001 +010103000301020001018202010002008102018301000200820001020202030001028201 +020083000200020302010082020002030203000202810002840200020002040282000200 +810002030202008202000205020200820200020202 +830001000182010001010187000100010001000102010100840100010001020102000101 +810001010101008401000100010101020005010100050101005401810001020181000102 +010100830100010082000100020083010001008200010002008101000100010102008101 +000300810100840001000100010081010082000100010081010006008101000100810100 +0100810100090081010001008101000100810100010081010002008101000f0081010021 +008101003200810100820001000100810100030081010082000100030081010082000100 +020081010001008301000100840001000100840001000100840001000100840001000100 +8a0001000100010001000100840001000100810001830100010084000100010001008301 +000100010001010300830100010001000101820001008100018301000100010001018100 +018101008100010101020082010001890100020002000102000284020002000282020001 +840100020001820100018101008100010201940001000100010201000201000100020102 +010201008100020402820100022102 +010003018100010201810001030181000101010100020101000201810001020181000101 +010100030181000101018400010001008100018101008200010001000201860001000100 +010001008501000100010002008301000100010081010082000100010083010001000500 +810100020001010200830100010001008201000181010083000100018101008400010001 +000100830100010001008301000100020001010200810100820001008200010084000100 +010084000100010002008101000100810100020081010002008101008200010003008301 +0001000400810100010081010001008101000a0081010001008101000100810100010081 +010001008101001600830100010026008101002500810100820001008200010008008101 +008200010082000100030081010082000100030081010002008101008200010084000100 +010002008101000200810100860001000100010088000100010001000100890001000100 +010001000102018100014301810201010183020102018101028102018101020102010182 +020102810201850102010200018201020184010001000103018100010101880001000102 +01020002810200010089020102000102000200018501020102000203020100 +020183000100010101010002010100030181000102010100010101000201830001000182 +010001020101000101010002018100010101810001010101000101810001010185000100 +010001010183000100018201000181010081000181010081000182010001810100810001 +820100018101008100018201000182010001010182000100810001830100010081000182 +010001820100018101008200010084000100010081000181010002008301000100810001 +810100010001018200010084000100010084000100010082000100020081010002008401 +0001000185010001000100010083010001008a0001000100010001000100020081010001 +008101000100810100050081010001008101000100810100080081010001008101000200 +810100020081010003008101000800810100260081010004008101000100810100010081 +010001008101000100810100810001810100820001000100010101000101010001010100 +010101000101010001010200810100010001010100010101000201010001010100020101 +000201010002010100010101000201020002018100010201010002010100010182000100 +820001008200010001008401000100018101000300810100030083010001008200010082 +000100020083010001008300010001810100010082010001810100010001018500010001 +000182010001840100010001820100018401000100018201000183010001008100018201 +000183010001008100018201000183010001008700020001000102008100010101890200 +020100010001000184010001000181010081000182010001820100010101010082010201 +82010001 +810001820100010201010001018300010001010101000101810001820100018601000100 +010001820100010101810001840100010001810100830001000182010001810100010082 +010001020101008101000100810100830001000182010001810100010081010082000100 +010081010082000100010081010082000100820001000100820100018101008100018301 +000100010083010001008100018201000181010082000100830001000182010001810100 +020081010083000100018401000100018201000181010001000101820001008700010001 +000100018101000100810100840001000100010081010002008101000600810100010081 +010086000100010001000100810100010085010001000100010081010001008101000100 +810100020083010001000100810100010081010004008101000100810100010081010082 +000100010081010004008101000400810100170081010004008101000100810100820001 +000100810100010081010001008101000100850100010001008200010001008101000100 +810100010081010001008101000100810100820001000100810100030081010001008101 +008200010084000100010004008301000100010001018300010001840100010001840100 +010001820100010201010002018300010001010101000201830001000101018300010001 +010183000100010101830001000101018300010001010182000100810001010182000100 +810001010181000181010081000101018200010081000101018100018201000104010200 +040101000601010006010100060101000501030005010100840102010201020181020085 +00020102000103010100810201810100 +010181000182010001820100010101010082010001010181000101010100820100010101 +810001010183000100018201000101018300010001820100010101810001840100010001 +010185000100010001810100850001000100010101830001000188010001000100010001 +820100018101008100010101850001000100018301000100810001820100018201000101 +018100018201000182010001820100018101008400010001000100810100860001000100 +010088000100010001000100860001000100010082000100020083010001008200010084 +000100010001008101008400010001000100810100840001000100010081010082000100 +010081010082000100020081010001008101000100810100820001000300810100010081 +0100030081010002008101005600810100080081010001008101000c0081010001008101 +000100010101000101020081010001008101000100810100010081010084000100010001 +008101000200810100010081010002008101000200810100020081010002008301000100 +810001810100020001018200010082000100830001000183010001008100018101008300 +010001820100018201000181010083000100010101810001820100010101010082010001 +020181000182010001010181000182010001020181000182010001020181000182010001 +020181000181010081000101010100010181000102018100010101010003018100010101 +810001020181000101010100010101000201810001820100010101830001000181010001 +0003010100 +010002018100018201000181010081000182010001010185000100010001820100018401 +000100018601000100010001810100810001820100018801000100010001000182010001 +810100010001018100018201000182010001810100820001008100018301000100830001 +000186010001000100018301000100860001000100010083000100010101810001010186 +000100010001008400010001008100018101008100018301000100860001000100010081 +000183010001008400010001008200010001008301000100840001000100010081010002 +008101008400010001000100810100820001000300830100010004008101000100810100 +010081010001008101000100810100050081010007008101000800810100530081010008 +008101000800810100010081010001008101000100850100010001000100810100010081 +010001008101000100810100020081010001008101000100810100010001010200010102 +008101000100030181000102018100018201000184010001000102018100018201000181 +010001000201020002010200010182000100810001010102000201030002010300020103 +000101850001000100010101820001008100010201010082010001020101008201000102 +010100810100810001010181000181010081000103010100010181000102018500010001 +000103018500010001000103018100018401000100010201830001000101018100010101 +82000100 +810001840100010001010101000301010002010100020102000101010002010100020101 +000201810001010181000102018100010101810001010101000101010002018100010101 +810001010181000181010081000181010081000181010081000182010001010187000100 +010001000101010400810100840001000100010001010100830100010009008101008200 +010002008101000a00810100820001000100810100090081010002008101000b00810100 +040081010014008101007f001d0081010082000100010001018200010082000100810001 +840100010001010181000106010200010102000101010083010001000200010102000101 +820001008100018101000100020102000201030001010100820100018101000100820100 +018101008300010001010101008201000101010100820100010101820001000100020101 +008101008100010101820001000100020185000100010001020101008101008100010201 +850001000100010201840001000100810001020184000100010081000103018400010001 +0081000103018400010001008100010101810001 +810001010182000100820001008300010001820100018201000182010001840100010001 +840100010001830100010085000100010001020101000101810001010182000100830001 +000102018200010081000101018200010001000201020082010001020101008201000101 +01030002010100820100018c010001000100010001000100018101000200010103000201 +020001010300810100020001018200010082000100010001010100830100010001008101 +000200010184000100010001008101008400010001000100810100020083010001000300 +810100010081010001008101000100810100010081010023008101004200810100820001 +000100810100820001000100810100820001000100810100810001810100820001008100 +018101008100018101008200010081000101018100010101810001810100810001810100 +810001010181000101018100010101010081010002000101020081010002008101000900 +810100030081010082000100020083010001000100810100020081010082000100820001 +000300810100010083010001008200010082000100820001000100810100030085010001 +000100820001008100018101008600010001000100810001830100010083000100018101 +00850001000100018301000100810001820100018e010001000100010001000100010001 +820100018301000100810001820100018601000100010001820100010101830001000184 +01000100018201000186010001000100010201010082010001 +010102000701810001860100010001000102018200010083000100010201030082010001 +850100010001008800010001000100010083000100018101000200820100018101008200 +010001000101820001000200010182000100860001000100010002008301000100010001 +018200010003008101000100010104008101000200810100860001000100010003008101 +000200810100020081010002008301000100820001000200810100020081010001008101 +000200810100030081010082000100820001000200810100090081010001008101000100 +8101000f008101004d008101008200010082000100040081010007008101000400810100 +040081010004008101000200830100010001008101000100810100010081010001008301 +000100820001008200010001008101000100810100030081010082000100010081010002 +008101000100010102008101000200810100020081010002000101030081010002000101 +820001008100018101000200810100030081010082000100810001810100020001010400 +010183000100018301000100020083010001000200820100018101008500010001000181 +010001008201000101010100010181000102010100010181000103018100018201000103 +01010001018100010301010008010100080101000701 +830001000182010001020103008401000100010201010082010001820100010101010081 +010001000301030082010001010103008201000101010300820100010101850001000100 +010101040002018200010001000101820001000100010104000101040081010003000101 +020082010001810100020001010200010182000100810001810100010001010300810100 +020001010200810100010001010200010102008101000200810100010081010001000101 +020081010001008101000100010101000101010081010001008101000100810100810001 +810100820001000100810100810001810100820001008100018101008200010081000181 +010082000100820001008200010081000181010082000100820001008200010007008101 +008200010009008101008200010082000100820001008100018201000182010001810100 +820001003600810100130081010007008101008200010005008101000300810100820001 +00820001000200810100840001000100840001000100010083010001008a000100010001 +000100010001008601000100010001810100020083010001008600010001000100010082 +010001840100010001810100820001008100018301000100850001000100018301000100 +810001850100010001000100830100010002008201000183010001008300010001020183 +000100018201000101018100018201000182010001010181000181010083000100010301 +810001810100830001000102018100010101010082010001 +810001020181000186010001000100010101810001820100010101830001000184010001 +000101018200010001000101810001810100830001000182010001820100018201000101 +010200010181000183010001008300010001820100018101000100010182000100850001 +000100018201000181010081000181010084000100010001008201000181010001008301 +000100010083010001000100010105008101000800810100020081010002008101000700 +810100020081010006008101008200010007008101002a00810100820001000400810100 +07008101008200010010008101002c008101000a00810100040081010082000100010081 +010082000100040081010001008101000100810100820001000100810100010001010100 +010101000101010001010200810100810001810100010081010001000101020081010002 +008101008400010001008400010001000100010102000101820001008400010001008400 +010001000100010103008201000181010081000181010083000100010101010084010001 +000181010081000101010300010182000100010002018500010001000101018300010001 +030183000100010301830001000102018200010002000101810001810100830001000101 +018200010001008201000101018100018601000100010001820100010101850001000100 +01020181000186010001000100010101 +810001020181000184010001000101010400030101000101840001000100810001810100 +820001008200010086000100010001000100850100010001000200810100840001000100 +020001010400810100010001018200010084000100010084000100010003008101000500 +810100820001000200810100020081010003008301000100020001010100830100010081 +000183010001000200810100820001000200850100010001008200010084000100010001 +0083010001000400810100820001000100810100010081010001008101000a0081010007 +008101007f001500810100130081010014008101000e0083010001008100018101008200 +010002008201000181010001000201010082010001810100010001010300020103000101 +820001008100010101030002010300020101008101008100010101020083010001008100 +018901000100010001000100030001018200010002008501000100010002008201000184 +010001000184010001000184010001000182010001820100010301820001008300010001 +030181000181010001000101 +830100010001000101810001030102008201000103010100810100830001000103010200 +010181000185010001000100010003018200010001000301030082010001020182000100 +810001010185000100010001840100010001820100010101810001820100018601000100 +010001830100010081000183010001008100018101000100890100010001000100010003 +008101000300810100010085010001000100820001000100810100820001008200010002 +008101000100810100050081010002000101010081010082000100030081010007008101 +000100810100820001000200810100030081010008008101000d00810100840001000100 +8200010045008101000a0081010011008101000100810100080081010001008101000100 +810100020081010082000100010081010001008101000100810100010001010200830100 +010082000100020081010001000101020081010008008101000400810100030081010003 +008101000100810100040081010082000100020083010001008500010001000181010082 +000100810001810100850001000100018101008200010081000101018200010083000100 +018801000100010001000183010001008100018201000184010001000181010081000101 +018700010001000100010201820001000100010101000101010081010001008401000100 +0184010001000182010001 +010185000100010001010181000101010100830100010002000101010005018400010001 +008400010001008100018301000100020001018200010003000301040001010200810100 +810001010185000100010001830100010002000101010081010081000181010082000100 +010081010001008301000100830001000101018200010082000100830001000181010002 +000101030001010300810100010001010300810100020081010006008101000200810100 +010081010082000100020081010001008101001400810100180081010039008101008200 +010082000100820001008200010082000100820001000300810100810001820100018201 +000182010001820100018201000181010082000100810001820100018101008100018101 +008200010004008101008200010001008101000100810100010081010081000181010082 +000100010081010001000101020001010100010101000101010001010200010101000201 +010001018300010001010101000201020002010100020102000201020002018300010001 +010102000201040001010400010104000101020081010081000181010082000100010002 +010400020102008101008100018301000100010082010001810100810001810100010003 +018100018101008300010001010181000181010083000100010301870001000100010001 +020181000181010083000100010301 +810100820001000200030185000100010001010181000101010400810100020001018100 +018101008300010001020102000101020001018100018101000200010184000100010081 +000183010001000300810100820001000100010101008101000100010182000100010001 +018200010001008101000300010104008101000300810100030081010003008101000200 +8101000d008101000f008101000100810100010081010005008101000100810100010081 +010001008101008200010001008101000100810100820001000400810100820001000d00 +81010009008101000600810100060081010008008101008200010082000100820001003b +008101000900810100040081010001008101008200010001008101000100810100010081 +010001008101000100010101000101010001010200010184000100010082000100030001 +010200010102000101010083010001008300010001810100020001010100820100018101 +008300010001810100010002010300020102000201020082010001010181000182010001 +010181000182010001020182000100810001020102008201000101010200010181000102 +018200010083000100010101840001000100810001030182000100020006010300060185 +0001000100010501810001 +010002018100018101000200020182000100030002018100010101010003010200010103 +000401830001000182010001810100810001820100010101020001010100840100010001 +020182000100810001010181000181010081000183010001000200010105008301000100 +0a008101008200010082000100030081010082000100820001000d008101000500810100 +0300850100010001002f00810100070081010071008101001a0081010001008101000800 +810100010081010001008101000100810100010081010002008101000100810100060081 +010002008101000200810100010001010200840100010001850100010001008100018101 +008400010001000100820100018101000200010103000201820001008100018101000100 +820100018101008200010081000101010300030102008201000101010200820100010201 +010081010081000102010100820100010301040005010100810100810001040104000501 +010084010001000104010100810100 +040001018200010001008101000100810100810001810100010081010081000182010001 +810100810001010104000101810001830100010081000181010083000100018101000100 +010101008101000200810100820001000100810100010083010001008200010001008101 +000200810100030082010001810100030001010500810100020081010003008101000800 +810100030001010300810100820001008200010082000100020081010003008101000b00 +8101000a008101007f003c00810100120081010004008301000100040083010001000200 +810100020083010001000500810100030081010001008301000100010001010400810100 +010088010001000100010001810100010082010001810100010082010001830100010002 +008101000200810100810001810100010001018400010001000100810100810001810100 +020082010001010182000100810001820100010101820001008100018201000182010001 +010101000101810001010185000100010001820100010201810001010181000182010001 +01018100010001 +810001010184000100010082000100020082010001810100830001000101018600010001 +000100810001010183000100018201000104010100870100010001000100810001010181 +000182010001820100018101008200010001008101000600810100820001000100850100 +010001000200830100010084000100010082000100880001000100010001000300830100 +010001008101000100830100010004008101000100810100050081010082000100060081 +010005008501000100010002008101007f003c0081010001008101000e00810100140081 +010001000101840001000100020081010002008101008400010001008300010001810100 +020081010082000100820001000200010104008101000100810100020081010001008101 +000100810100010081010001008301000100020081010082000100020001018200010002 +000101020001010200810100880001000100010001008300010001810100010001010100 +010182000100810001810100010082010001020181000183010001008100018101008100 +010101020082010001010101000101 +810001810100030001018100018101008200010082000100810001850100010001008500 +010001000183010001000100810100850001000100018101008300010001810100030002 +018100010201820001008100018101008100010101820001000100010105000101030081 +010082000100010081010084000100010002008101000400810100020001010400810100 +03008101000200810100820001000e008101000a00810100820001000a00810100010081 +01001c008101007f00260081010033008101000500810100010081010002000101040083 +010001000800830100010002008301000100020081010001008101000100820100018101 +000400850100010001000200810100820001008900010001000100010001860100010001 +000182010001810100810001830100010081000102010100020102000101010001018500 +0100010001010183000100018101008300010001 +850001000100018101000200850100010001008200010081000185010001000100860001 +000100010084000100010085000100010001810100020001018100010301010081010002 +000101810001840100010001810100010081010001000101010081010004008201000181 +010001008101008200010004008101000300010102008101000f0001010c008101007f00 +710081010027008101000600810100060081010082000100020081010001008301000100 +840001000100820001008400010001000100810100880001000100010001008200010001 +008501000100010001008301000100010082010001810100840001000100810001010103 +00810100810001810100820001000200820100018101008300010001820100018101008e +000100010001000100010001000100820001008300010001810100010001010100010181 +00010101 +050001018400010001000400810100040081010081000101018200010001008101000200 +810100010002010100810100020001018300010001820100010101010084010001000101 +010200810100070081010001008101000200820100018101000200810100030081010084 +000100010004008101000e008101000100010103008101000f0081010009008301000100 +06008101000d0081010030008101007f0003008101000400830100010004008101008200 +0100080081010082000100010001010a0083010001000700830100010001008101008200 +010081000181010005008101008200010002008101008400010001000400810100020081 +010001008501000100010082000100020081010082000100010083010001008400010001 +008200010002008101008200010081000185010001000100010082010001830100010003 +008201000182010001830100010002008101008300010001820100018201000101018300 +010001820100010101 +0201820001008300010001010181000101010b0081010003008101000800010101008101 +000500810100070082010001830100010001008101008200010081000183010001008100 +018101008200010003008101000400010104008101000400810100070081010003008101 +00080081010021008101007f0068008101000a0081010003008101000800810100020081 +010001008101000300830100010001008301000100090081010004008101000200830100 +010003008301000100840001000100050081010082000100820001000100830100010002 +008201000182010001830100010081000101018100018401000100018101008100018201 +000101010100810100870001000100010001010181000182010001810100820001008100 +01840100010001820100010101 +820001008200010004008101000100010102000101040083010001000200830100010004 +008501000100010002008301000100820001000300810100010081010005008301000100 +010083010001000200810100820001000100810100020081010006008101001600810100 +0c008101000b00810100010081010002008101000200810100050081010002008101000b +008101000e008101005100810100820001008200010064008101001c008101000a008101 +008200010006008101000600810100820001000800810100010081010001008301000100 +010085010001000100030081010003008101008200010001008101008300010001010101 +008101000200830100010081000182010001840100010001830100010001008401000100 +018201000184010001000101018300010001820100018101008200010081000185010001 +000100 +840001000100820001008100018101000100020182000100010085010001000100020081 +01000400810100820001008200010001008101000a008101000200010101008101000500 +810100030001010700810100010081010001008101000200810100820001000b00810100 +080081010005008101007e00840100010001840100010001810100010082010001040181 +0001140182000100820001003e0083010001000f00830100010007008101003800810100 +100081010003008101000400810100070081010006008101000300810100010002010500 +820100018101000300820100018601000100010001820100010101010001010300860100 +0100010001010102000101820001008300010001 + +% +% Compression made this file 28.37% of the uncompressed size. +% + + +showpage + +% stop using temporary dictionary +end + +% restore original state +origstate restore + +%%Trailer + +cleartomark +countdictstack exch sub { end } repeat +restore grestore +% +% End Imported PIC File: frame1.eps +%%EndDocument +% +% Polyline +60.000 slw +n 2430 7110 m 4230 7110 l 4230 8280 l 2430 8280 l + cp gs col6 s gr +$F2psEnd +rs diff --git a/.svn/pristine/6e/6e55d122a458f4cf737e20373245a84f965849f9.svn-base b/.svn/pristine/6e/6e55d122a458f4cf737e20373245a84f965849f9.svn-base new file mode 100644 index 0000000..7bda5c8 --- /dev/null +++ b/.svn/pristine/6e/6e55d122a458f4cf737e20373245a84f965849f9.svn-base @@ -0,0 +1,2 @@ +.cvsignore +Makefile diff --git a/.svn/pristine/6e/6e8d8a55ad58bc84625098471202e36d9714305e.svn-base b/.svn/pristine/6e/6e8d8a55ad58bc84625098471202e36d9714305e.svn-base new file mode 100644 index 0000000..e4aef30 --- /dev/null +++ b/.svn/pristine/6e/6e8d8a55ad58bc84625098471202e36d9714305e.svn-base @@ -0,0 +1,45 @@ +#ifndef __CONVEX_PLANE_H__ +#define __CONVEX_PLANE_H__ + +#include "slam6d/point.h" + +#include +#include +using std::vector; +using std::list; + +#include +using std::set; + + + +class ConvexPlane { +protected: + ConvexPlane() {}; + +public: + static bool furtherleft(double * point, double * start, double * end); + static void JarvisMarchConvexHull(list &points, vector &convex_hull); + ConvexPlane(double _n[3], double _rho, char _direction, vector _convex_hull); + ConvexPlane(double plane[4], vector &points ); + ConvexPlane(double plane[4]); + ConvexPlane(vector &partialplanes); + ~ConvexPlane(); + void writePlane(std::string, int counter); + void writeNormal(std::string, int counter); + vector getConvexHull(); + void getNormal(double* normal, double* origin); + void project(const double *p, double *p1); + + double n[3]; + double rho; + char direction; + int pointsize; + vector convex_hull; + bool isWall(); + bool isHorizontal(); + void horizontalize(); + void verticalize(); +}; + +#endif diff --git a/.svn/pristine/6e/6ec053398fcfeaf8bac67254ecbd88e35f98c0df.svn-base b/.svn/pristine/6e/6ec053398fcfeaf8bac67254ecbd88e35f98c0df.svn-base new file mode 100644 index 0000000..943d2a1 --- /dev/null +++ b/.svn/pristine/6e/6ec053398fcfeaf8bac67254ecbd88e35f98c0df.svn-base @@ -0,0 +1,216 @@ +/* + * metrics implementation + * + * Copyright (C) Kai Lingemann, Thomas Escher + * + * Released under the GPL version 3. + * + */ + +#include "slam6d/metrics.h" + +#ifdef _MSC_VER +LARGE_INTEGER TimeMetric::frequency; +bool TimeMetric::init = false; +#endif + +TimeMetric::TimeMetric(unsigned int reserve) : + Metric(reserve) +{ +#ifdef _MSC_VER + if(!TimeMetric::init) { + QueryPerformanceFrequency(&TimeMetric::frequency); + TimeMetric::init = true; + } +#endif +} + +Timer TimeMetric::start() +{ + Timer start; +#ifdef _MSC_VER + QueryPerformanceCounter(&start); +#else + gettimeofday(&start, 0); +#endif + return start; +} + +void TimeMetric::end(Timer& start) +{ + double delta; +#ifdef _MSC_VER + LARGE_INTEGER end; + QueryPerformanceCounter(&end); + delta = (double)(end.QuadPart - start.QuadPart) / frequency.QuadPart; +#else + timeval end; + gettimeofday(&end, 0); + delta = (double)(end.tv_sec - start.tv_sec) + + (double)(end.tv_usec - start.tv_usec) / 1000000.0; +#endif + commit(delta); +} + +CounterMetric::CounterMetric(unsigned int reserve) : + Metric(reserve) +{ +} + +void CounterMetric::add(unsigned long long value) +{ + commit(value); +} + + + +#include +using std::cout; +using std::endl; + +TimeMetric ServerMetric::scan_loading, ServerMetric::cacheio_write_time, ServerMetric::cacheio_read_time; +CounterMetric ServerMetric::cacheio_write_size, ServerMetric::cacheio_read_size; + +TimeMetric + ClientMetric::read_scan_time, + ClientMetric::scan_load_time, + ClientMetric::calc_reduced_points_time, + ClientMetric::transform_time(100000), // avoid resizing in multithreaded transform calls by graph-slam + ClientMetric::copy_original_time, + ClientMetric::create_tree_time, + ClientMetric::on_demand_reduction_time, + ClientMetric::create_metatree_time, + ClientMetric::add_frames_time, + ClientMetric::matching_time, + ClientMetric::clientinterface_time, + ClientMetric::cache_miss_time, + ClientMetric::allocate_time, + ClientMetric::frames_time; + +void printTime(const TimeMetric& m, unsigned int indentation = 1) +{ + for(unsigned int i = 1; i <= indentation; ++i) { + cout << " "; + } + cout << m.sum() << "s"; + if(m.size() != 1) { + cout << " (" << m.average() << "s average of " << m.size() << " calls)"; + } + cout << endl; +} + +void ServerMetric::print() +{ + cout << "= Metric server information =" << endl + << "Time spent for loading scans (in ScanHandler::load):" << endl + << " Amount: " << scan_loading.size() << endl + << " Time: " << scan_loading.sum() << "s (" << scan_loading.average() << "s avg.)" << endl + << endl + << "CacheIO reads:" << endl + << " Amount: " << cacheio_read_size.size() << endl + << " Size: " << cacheio_read_size.sum()/1024/1024 << "MB (" << cacheio_read_size.average()/1024 << "KB avg.)" << endl + << " Time: " << cacheio_read_time.sum() << "s (" << cacheio_read_time.average() << "s avg.)" << endl + << endl + << "CacheIO writes:" << endl + << " Amount: " << cacheio_write_size.size() << endl + << " Size: " << cacheio_write_size.sum()/1024/1024 << "MB (" << cacheio_write_size.average()/1024 << "KB avg.)" << endl + << " Time: " << cacheio_write_time.sum() << "s (" << cacheio_write_time.average() << "s avg.)" << endl + << "= Resetting metric information =" << endl + << endl; + scan_loading.reset(); + cacheio_write_time.reset(); + cacheio_read_time.reset(); + cacheio_write_size.reset(); + cacheio_read_size.reset(); +} + +void ClientMetric::print(bool scanserver) +{ + cout << "= Metric client information =" << endl; + + // ClientInterface specific ones + if(scanserver) { + cout << "Time for all ClientInterface messages:" << endl; + printTime(clientinterface_time); + + cout << " [" << endl; + + cout << " Time for cache misses:" << endl; + printTime(cache_miss_time, 3); + + cout << " Time for cache allocations:" << endl; + printTime(allocate_time, 3); + + // TODO: invalidations too? + + cout << " Time for frame calls:" << endl; + printTime(frames_time, 3); + + cout << " ]" << endl; + + cout << endl; + } + + // Scan: Loading, reducing and SearchTree related ones + // barebone preparation and parameter setting + if(read_scan_time.size()) { + cout << "Time for loading directory:" << endl; + printTime(read_scan_time); + } + + // getXYZ in calcReducedPoints + if(scan_load_time.size()) { + cout << "Time for loading scans:" << endl; + printTime(scan_load_time); + } + + if(calc_reduced_points_time.size()) { + cout << "Time for reducing scans:" << endl; + printTime(calc_reduced_points_time); + } + + // copying of reduced to original or other way around + if(copy_original_time.size()) { + cout << "Time for copying reduced points:" << endl; + printTime(copy_original_time); + } + + if(create_tree_time.size()) { + cout << "Time for creating SearchTree:" << endl; + printTime(create_tree_time); + } + + // part of create_tree_time which is spent for meta trees in specific + if(create_metatree_time.size()) { + cout << "Time for creating meta-SearchTree:" << endl; + printTime(create_metatree_time); + } + + if(on_demand_reduction_time.size()) { + cout << "Time in on-demand reduction [reduction+transform+copy / copy]:" << endl; + printTime(on_demand_reduction_time); + } + + if(transform_time.size()) { + cout << "Time for transform:" << endl; + printTime(transform_time); + } + + // SLAM + if(matching_time.size()) { + cout << endl; + cout << "Matching time:" << endl; + printTime(matching_time); + cout << "Corrected matching time without on-demand loading, reduction and tree creation:" << endl; + // match - scan loading in calcReducedPoints - calcReducedPoints - transform (irrelevant) - copy to original - createTree + cout << " " << + matching_time.sum() + - scan_load_time.sum() + - calc_reduced_points_time.sum() + - copy_original_time.sum() + - create_tree_time.sum() + << "s" << endl; + } + + cout << endl; +} diff --git a/.svn/pristine/6e/6ee20c85203052cd52a1acdab63101353e9c70a5.svn-base b/.svn/pristine/6e/6ee20c85203052cd52a1acdab63101353e9c70a5.svn-base new file mode 100644 index 0000000..2e04506 --- /dev/null +++ b/.svn/pristine/6e/6ee20c85203052cd52a1acdab63101353e9c70a5.svn-base @@ -0,0 +1,297 @@ +//$$evalue.cpp eigen-value decomposition + +// Copyright (C) 1991,2,3,4: R B Davies + +#define WANT_MATH + +#include "include.h" +#include "newmatap.h" +#include "newmatrm.h" +#include "precisio.h" + +#ifdef use_namespace +namespace NEWMAT { +#endif + +#ifdef DO_REPORT +#define REPORT { static ExeCounter ExeCount(__LINE__,17); ++ExeCount; } +#else +#define REPORT {} +#endif + + + +static void tred2(const SymmetricMatrix& A, DiagonalMatrix& D, + DiagonalMatrix& E, Matrix& Z) +{ + Tracer et("Evalue(tred2)"); + REPORT + Real tol = + FloatingPointPrecision::Minimum()/FloatingPointPrecision::Epsilon(); + int n = A.Nrows(); Z.ReSize(n,n); Z.Inject(A); + D.ReSize(n); E.ReSize(n); + Real* z = Z.Store(); int i; + + for (i=n-1; i > 0; i--) // i=0 is excluded + { + Real f = Z.element(i,i-1); Real g = 0.0; + int k = i-1; Real* zik = z + i*n; + while (k--) g += square(*zik++); + Real h = g + square(f); + if (g <= tol) { REPORT E.element(i) = f; h = 0.0; } + else + { + REPORT + g = sign(-sqrt(h), f); E.element(i) = g; h -= f*g; + Z.element(i,i-1) = f-g; f = 0.0; + Real* zji = z + i; Real* zij = z + i*n; Real* ej = E.Store(); + int j; + for (j=0; j=l; i--) + { + Real ei = E.element(i); Real di = D.element(i); + Real& ei1 = E.element(i+1); + g = c * ei; h = c * p; + if ( fabs(p) >= fabs(ei)) + { + REPORT + c = ei / p; r = sqrt(c*c + 1.0); + ei1 = s*p*r; s = c/r; c = 1.0/r; + } + else + { + REPORT + c = p / ei; r = sqrt(c*c + 1.0); + ei1 = s * ei * r; s = 1.0/r; c /= r; + } + p = c * di - s*g; D.element(i+1) = h + s * (c*g + s*di); + + Real* zki = z + i; Real* zki1 = zki + 1; int k = n; + if (k) for (;;) + { + REPORT + h = *zki1; *zki1 = s*(*zki) + c*h; *zki = c*(*zki) - s*h; + if (!(--k)) break; + zki += n; zki1 += n; + } + } + el = s*p; dl = c*p; + if (fabs(el) <= b) { REPORT; test = true; break; } + } + if (!test) Throw ( ConvergenceException(D) ); + dl += f; + } +/* + for (int i=0; i= 0; i--) + { + Real h = 0.0; Real f = - FloatingPointPrecision::Maximum(); + Real* d = D.Store(); Real* a = A.Store() + (i*(i+1))/2; int k = i; + while (k--) { f = *a++; *d++ = f; h += square(f); } + if (h <= tol) { REPORT *(--ei) = 0.0; h = 0.0; } + else + { + REPORT + Real g = sign(-sqrt(h), f); *(--ei) = g; h -= f*g; + f -= g; *(d-1) = f; *(a-1) = f; f = 0.0; + Real* dj = D.Store(); Real* ej = E.Store(); int j; + for (j = 0; j < i; j++) + { + Real* dk = D.Store(); Real* ak = A.Store()+(j*(j+1))/2; + Real g = 0.0; k = j; + while (k--) g += *ak++ * *dk++; + k = i-j; int l = j; + if (k) for (;;) { g += *ak * *dk++; if (!(--k)) break; ak += ++l; } + g /= h; *ej++ = g; f += g * *dj++; + } + Real hh = f / (2 * h); Real* ak = A.Store(); + dj = D.Store(); ej = E.Store(); + for (j = 0; j < i; j++) + { + f = *dj++; g = *ej - hh * f; *ej++ = g; + Real* dk = D.Store(); Real* ek = E.Store(); k = j+1; + while (k--) { *ak++ -= (f * *ek++ + g * *dk++); } + } + } + *d = *a; *a = h; + } +} + +static void tql1(DiagonalMatrix& D, DiagonalMatrix& E) +{ + Tracer et("Evalue(tql1)"); + REPORT + Real eps = FloatingPointPrecision::Epsilon(); + int n = D.Nrows(); int l; + for (l=1; l=l; i--) + { + Real ei = E.element(i); Real di = D.element(i); + Real& ei1 = E.element(i+1); + g = c * ei; h = c * p; + if ( fabs(p) >= fabs(ei)) + { + REPORT + c = ei / p; r = sqrt(c*c + 1.0); + ei1 = s*p*r; s = c/r; c = 1.0/r; + } + else + { + REPORT + c = p / ei; r = sqrt(c*c + 1.0); + ei1 = s * ei * r; s = 1.0/r; c /= r; + } + p = c * di - s*g; D.element(i+1) = h + s * (c*g + s*di); + } + el = s*p; dl = c*p; + if (fabs(el) <= b) { REPORT test = true; break; } + } + if (!test) Throw ( ConvergenceException(D) ); + Real p = dl + f; + test = false; + for (i=l; i>0; i--) + { + if (p < D.element(i-1)) { REPORT D.element(i) = D.element(i-1); } + else { REPORT test = true; break; } + } + if (!test) i=0; + D.element(i) = p; + } +} + +void EigenValues(const SymmetricMatrix& A, DiagonalMatrix& D, Matrix& Z) +{ REPORT DiagonalMatrix E; tred2(A, D, E, Z); tql2(D, E, Z); SortSV(D,Z,true); } + +void EigenValues(const SymmetricMatrix& X, DiagonalMatrix& D) +{ REPORT DiagonalMatrix E; SymmetricMatrix A; tred3(X,D,E,A); tql1(D,E); } + +void EigenValues(const SymmetricMatrix& X, DiagonalMatrix& D, + SymmetricMatrix& A) +{ REPORT DiagonalMatrix E; tred3(X,D,E,A); tql1(D,E); } + + +#ifdef use_namespace +} +#endif + diff --git a/.svn/pristine/6e/6ee5786a532eaed54fa875aea13e251e81b9f02a.svn-base b/.svn/pristine/6e/6ee5786a532eaed54fa875aea13e251e81b9f02a.svn-base new file mode 100644 index 0000000..b913624 --- /dev/null +++ b/.svn/pristine/6e/6ee5786a532eaed54fa875aea13e251e81b9f02a.svn-base @@ -0,0 +1,4 @@ +newmat.h +newmatap.h +newmatio.h +myexcept.cpp diff --git a/.svn/pristine/6f/6f4edefa29dbba22a7dd5c544e01723fbe8d4b04.svn-base b/.svn/pristine/6f/6f4edefa29dbba22a7dd5c544e01723fbe8d4b04.svn-base new file mode 100644 index 0000000..86b1475 --- /dev/null +++ b/.svn/pristine/6f/6f4edefa29dbba22a7dd5c544e01723fbe8d4b04.svn-base @@ -0,0 +1,160 @@ + +//#define WANT_STREAM + +#include "include.h" + +#include "newmat.h" + +#include "tmt.h" + +#ifdef use_namespace +using namespace NEWMAT; +#endif + + +/**************************** test program ******************************/ + +void trymat3() +{ + Tracer et("Third test of Matrix package"); + Tracer::PrintTrace(); + + { + Tracer et1("Stage 1"); + int i,j; + SymmetricMatrix S(7); + for (i=1;i<=7;i++) for (j=1;j<=i;j++) S(i,j)=i*i+j; + S=-S+2.0; + + DiagonalMatrix D(7); + for (i=1;i<=7;i++) D(i,i)=S(i,i); + + Matrix M4(7,7); { M4=D+(D+4.0); M4=M4-D*2.0; M4=M4-4.0; Print(M4); } + SymmetricMatrix S2=D; Matrix M2=S2; { M2=-D+M2; Print(M2); } + UpperTriangularMatrix U2=D; { M2=U2; M2=D-M2; Print(M2); } + LowerTriangularMatrix L2=D; { M2=L2; M2=D-M2; Print(M2); } + M2=D; M2=M2-D; Print(M2); + for (i=1;i<=7;i++) for (j=1;j<=i;j++) L2(i,j)=2.0-i*i-j; + U2=L2.t(); D=D.t(); S=S.t(); + M4=(L2-1.0)+(U2+1.0)-D-S; Print(M4); + M4=(-L2+1.0)+(-U2-1.0)+D+S; Print(M4); + } + + { + Tracer et1("Stage 2"); + int i,j; + DiagonalMatrix D(6); + for (i=1;i<=6;i++) D(i,i)=i*3.0+i*i+2.0; + UpperTriangularMatrix U2(7); LowerTriangularMatrix L2(7); + for (i=1;i<=7;i++) for (j=1;j<=i;j++) L2(i,j)=2.0-i*i+j; + { U2=L2.t(); } + DiagonalMatrix D1(7); for (i=1;i<=7;i++) D1(i,i)=(i-2)*(i-4); + Matrix M2(6,7); + for (i=1;i<=6;i++) for (j=1;j<=7;j++) M2(i,j)=2.0+i*j+i*i+2.0*j*j; + Matrix MD=D; SymmetricMatrix MD1(1); MD1=D1; + Matrix MX=MD*M2*MD1 - D*(M2*D1); Print(MX); + MX=MD*M2*MD1 - (D*M2)*D1; Print(MX); + { + D.ReSize(7); for (i=1;i<=7;i++) D(i,i)=i*3.0+i*i+2.0; + LowerTriangularMatrix LD(1); LD=D; + UpperTriangularMatrix UD(1); UD=D; + M2=U2; M2=LD*M2*MD1 - D*(U2*D1); Print(M2); + M2=U2; M2=UD*M2*MD1 - (D*U2)*D1; Print(M2); + M2=L2; M2=LD*M2*MD1 - D*(L2*D1); Print(M2); + M2=L2; M2=UD*M2*MD1 - (D*L2)*D1; Print(M2); + } + } + + { + Tracer et1("Stage 3"); + // test inverse * scalar + DiagonalMatrix D(6); + for (int i=1;i<=6;i++) D(i)=i*i; + DiagonalMatrix E = D.i() * 4.0; + DiagonalMatrix I(6); I = 1.0; + E=D*E-I*4.0; Print(E); + E = D.i() / 0.25; E=D*E-I*4.0; Print(E); + } + { + Tracer et1("Stage 4"); + Matrix sigma(3,3); Matrix sigmaI(3,3); + sigma = 0; sigma(1,1) = 1.0; sigma(2,2) = 1.0; sigma(3,3) = 1.0; + sigmaI = sigma.i(); + sigmaI -= sigma; Clean(sigmaI, 0.000000001); Print(sigmaI); + } + { + Tracer et1("Stage 5"); + Matrix X(5,5); DiagonalMatrix DM(5); + for (int i=1; i<=5; i++) for (int j=1; j<=5; j++) + X(i,j) = (23*i+59*j) % 43; + DM << 1 << 8 << -7 << 2 << 3; + Matrix Y = X.i() * DM; Y = X * Y - DM; + Clean(Y, 0.000000001); Print(Y); + } + { + Tracer et1("Stage 6"); // test reverse function + ColumnVector CV(10), RCV(10); + CV << 2 << 7 << 1 << 6 << -3 << 1 << 8 << -4 << 0 << 17; + RCV << 17 << 0 << -4 << 8 << 1 << -3 << 6 << 1 << 7 << 2; + ColumnVector X = CV - RCV.Reverse(); Print(X); + RowVector Y = CV.t() - RCV.t().Reverse(); Print(Y); + DiagonalMatrix D = CV.AsDiagonal() - RCV.AsDiagonal().Reverse(); + Print(D); + X = CV & CV.Rows(1,9).Reverse(); + ColumnVector Z(19); + Z.Rows(1,10) = RCV.Reverse(); Z.Rows(11,19) = RCV.Rows(2,10); + X -= Z; Print(X); Z -= Z.Reverse(); Print(Z); + Matrix A(3,3); A << 1 << 2 << 3 << 4 << 5 << 6 << 7 << 8 << 9; + Matrix B(3,3); B << 9 << 8 << 7 << 6 << 5 << 4 << 3 << 2 << 1; + Matrix Diff = A - B.Reverse(); Print(Diff); + Diff = (-A).Reverse() + B; Print(Diff); + UpperTriangularMatrix U; + U << A.Reverse(); Diff = U; U << B; Diff -= U; Print(Diff); + U << (-A).Reverse(); Diff = U; U << B; Diff += U; Print(Diff); + } + { + Tracer et1("Stage 7"); // test IsSingular function + ColumnVector XX(4); + Matrix A(3,3); + A = 0; + CroutMatrix B1 = A; + XX(1) = B1.IsSingular() ? 0 : 1; + A << 1 << 3 << 6 + << 7 << 11 << 13 + << 2 << 4 << 1; + CroutMatrix B2(A); + XX(2) = B2.IsSingular() ? 1 : 0; + BandMatrix C(3,1,1); C.Inject(A); + BandLUMatrix B3(C); + XX(3) = B3.IsSingular() ? 1 : 0; + C = 0; + BandLUMatrix B4(C); + XX(4) = B4.IsSingular() ? 0 : 1; + Print(XX); + } + { + Tracer et1("Stage 8"); // inverse with vector of 0s + Matrix A(3,3); Matrix Z(3,3); ColumnVector X(6); + A << 1 << 3 << 6 + << 7 << 11 << 13 + << 2 << 4 << 1; + Z = 0; + Matrix B = (A | Z) & (Z | A); // 6 * 6 matrix + X = 0.0; + X = B.i() * X; + Print(X); + // also check inverse with non-zero Y + Matrix Y(3,3); + Y << 0.0 << 1.0 << 1.0 + << 5.0 << 0.0 << 5.0 + << 3.0 << 3.0 << 0.0; + Matrix YY = Y & Y; // stack Y matrices + YY = B.i() * YY; + Matrix Y1 = A.i() * Y; + YY -= Y1 & Y1; Clean(YY, 0.000000001); Print(YY); + Y1 = A * Y1 - Y; Clean(Y1, 0.000000001); Print(Y1); + } + + +} + diff --git a/.svn/pristine/6f/6fb35263fc0da4474645bc27c6087476ca6a932f.svn-base b/.svn/pristine/6f/6fb35263fc0da4474645bc27c6087476ca6a932f.svn-base new file mode 100644 index 0000000..9a90c6c --- /dev/null +++ b/.svn/pristine/6f/6fb35263fc0da4474645bc27c6087476ca6a932f.svn-base @@ -0,0 +1,9249 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: frame2_final.eps +%%Creator: fig2dev Version 3.2 Patchlevel 3d +%%CreationDate: Thu Dec 4 14:21:46 2003 +%%For: root@rhum (root) +%%BoundingBox: 0 0 412 412 +%%Magnification: 1.0000 +%%EndComments +/$F2psDict 200 dict def +$F2psDict begin +$F2psDict /mtrx matrix put +/col-1 {0 setgray} bind def +/col0 {0.000 0.000 0.000 srgb} bind def +/col1 {0.000 0.000 1.000 srgb} bind def +/col2 {0.000 1.000 0.000 srgb} bind def +/col3 {0.000 1.000 1.000 srgb} bind def +/col4 {1.000 0.000 0.000 srgb} bind def +/col5 {1.000 0.000 1.000 srgb} bind def +/col6 {1.000 1.000 0.000 srgb} bind def +/col7 {1.000 1.000 1.000 srgb} bind def +/col8 {0.000 0.000 0.560 srgb} bind def +/col9 {0.000 0.000 0.690 srgb} bind def +/col10 {0.000 0.000 0.820 srgb} bind def +/col11 {0.530 0.810 1.000 srgb} bind def +/col12 {0.000 0.560 0.000 srgb} bind def +/col13 {0.000 0.690 0.000 srgb} bind def +/col14 {0.000 0.820 0.000 srgb} bind def +/col15 {0.000 0.560 0.560 srgb} bind def +/col16 {0.000 0.690 0.690 srgb} bind def +/col17 {0.000 0.820 0.820 srgb} bind def +/col18 {0.560 0.000 0.000 srgb} bind def +/col19 {0.690 0.000 0.000 srgb} bind def +/col20 {0.820 0.000 0.000 srgb} bind def +/col21 {0.560 0.000 0.560 srgb} bind def +/col22 {0.690 0.000 0.690 srgb} bind def +/col23 {0.820 0.000 0.820 srgb} bind def +/col24 {0.500 0.190 0.000 srgb} bind def +/col25 {0.630 0.250 0.000 srgb} bind def +/col26 {0.750 0.380 0.000 srgb} bind def +/col27 {1.000 0.500 0.500 srgb} bind def +/col28 {1.000 0.630 0.630 srgb} bind def +/col29 {1.000 0.750 0.750 srgb} bind def +/col30 {1.000 0.880 0.880 srgb} bind def +/col31 {1.000 0.840 0.000 srgb} bind def + +end +save +newpath 0 412 moveto 0 0 lineto 412 0 lineto 412 412 lineto closepath clip newpath +-73.7 527.2 translate +1 -1 scale + +/cp {closepath} bind def +/ef {eofill} bind def +/gr {grestore} bind def +/gs {gsave} bind def +/sa {save} bind def +/rs {restore} bind def +/l {lineto} bind def +/m {moveto} bind def +/rm {rmoveto} bind def +/n {newpath} bind def +/s {stroke} bind def +/sh {show} bind def +/slc {setlinecap} bind def +/slj {setlinejoin} bind def +/slw {setlinewidth} bind def +/srgb {setrgbcolor} bind def +/rot {rotate} bind def +/sc {scale} bind def +/sd {setdash} bind def +/ff {findfont} bind def +/sf {setfont} bind def +/scf {scalefont} bind def +/sw {stringwidth} bind def +/tr {translate} bind def +/tnt {dup dup currentrgbcolor + 4 -2 roll dup 1 exch sub 3 -1 roll mul add + 4 -2 roll dup 1 exch sub 3 -1 roll mul add + 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} + bind def +/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul + 4 -2 roll mul srgb} bind def +/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def +/$F2psEnd {$F2psEnteredState restore end} def + +$F2psBegin +10 setmiterlimit + 0.06299 0.06299 sc +% +% Fig objects follow +% +% Polyline +% +% pen to black in case this eps object doesn't set color first +0 0 0 setrgbcolor +% Begin Imported EPS File: frame2.eps +%%BeginDocument: frame2.eps +% +n gs +1170 1845 tr +12.500000 -12.500000 sc +0 -522 tr +-37 -160 tr +sa +n 37 160 m 559 160 l 559 682 l 37 682 l cp clip n +countdictstack +mark +/showpage {} def +% EPS file follows: +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: /home/scanner/docu/iav2004/frame2.eps +%%Creator: XV Version 3.10a Rev: 12/29/94 (PNG patch 1.2) - by John Bradley +%%BoundingBox: 37 160 559 682 +%%Pages: 1 +%%DocumentFonts: +%%EndComments +%%EndProlog + +%%Page: 1 1 + +% remember original state +/origstate save def + +% build a temporary dictionary +20 dict begin + +% define space for color conversions +/grays 600 string def % space for gray scale line +/npixls 0 def +/rgbindx 0 def + +% lower left corner +37 160 translate + +% size of image (on paper, in 1/72inch coords) +522.00000 522.00000 scale + +% define 'colorimage' if it isn't defined +% ('colortogray' and 'mergeprocs' come from xwd2ps +% via xgrab) +/colorimage where % do we know about 'colorimage'? + { pop } % yes: pop off the 'dict' returned + { % no: define one + /colortogray { % define an RGB->I function + /rgbdata exch store % call input 'rgbdata' + rgbdata length 3 idiv + /npixls exch store + /rgbindx 0 store + 0 1 npixls 1 sub { + grays exch + rgbdata rgbindx get 20 mul % Red + rgbdata rgbindx 1 add get 32 mul % Green + rgbdata rgbindx 2 add get 12 mul % Blue + add add 64 idiv % I = .5G + .31R + .18B + put + /rgbindx rgbindx 3 add store + } for + grays 0 npixls getinterval + } bind def + + % Utility procedure for colorimage operator. + % This procedure takes two procedures off the + % stack and merges them into a single procedure. + + /mergeprocs { % def + dup length + 3 -1 roll + dup + length + dup + 5 1 roll + 3 -1 roll + add + array cvx + dup + 3 -1 roll + 0 exch + putinterval + dup + 4 2 roll + putinterval + } bind def + + /colorimage { % def + pop pop % remove 'false 3' operands + {colortogray} mergeprocs + image + } bind def + } ifelse % end of 'false' case + + + +% define the colormap +/cmap 9 string def + + +% load up the colormap +currentfile cmap readhexstring +000000 ffffff 0000ff +pop pop % lose return values from readhexstring + + +% rlecmapimage expects to have 'w h bits matrix' on stack +/rlecmapimage { + /buffer 1 string def + /rgbval 3 string def + /block 384 string def + + % proc to read a block from file, and return RGB data + { currentfile buffer readhexstring pop + /bcount exch 0 get store + bcount 128 ge + { % it's a non-run block + 0 1 bcount 128 sub + { currentfile buffer readhexstring pop pop + + % look up value in color map + /rgbval cmap buffer 0 get 3 mul 3 getinterval store + + % and put it in position i*3 in block + block exch 3 mul rgbval putinterval + } for + block 0 bcount 127 sub 3 mul getinterval + } + + { % else it's a run block + currentfile buffer readhexstring pop pop + + % look up value in colormap + /rgbval cmap buffer 0 get 3 mul 3 getinterval store + + 0 1 bcount { block exch 3 mul rgbval putinterval } for + + block 0 bcount 1 add 3 mul getinterval + } ifelse + } % end of proc + false 3 colorimage +} bind def + + +600 600 8 % dimensions of data +[600 0 0 -600 0 600] % mapping matrix +rlecmapimage + +840100010001070181000132018300010001020181000182010001820100011901810001 +8401000100010a01850001000100010a0181000110018300010001070185000100010001 +820100010801810001820100010d018100012a0185000100010001820100010601810001 +01018100010801810001020183000100010a018300010001820100010801810001130185 +0001000100010901850001000100010d0183000100010901830001000101018100010901 +8100010101810001260181000102018300010001820100010c0185000100010001080185 +000100010001180183000100010d01810001820100018201000108018100011d01830001 +00010001 +0901810001270181000108018100012401810001820100010a01850001000100010c0181 +000182010001170183000100018201000108018100018601000100010001090183000100 +018401000100012701810001820100010801850001000100010201810001080181000101 +01810001080181000184010001000106018700010001000100011d018500010001000108 +018100018601000100010001080181000186010001000100010601810001860100010001 +00012c01810001840100010001070183000100018401000100010a018500010001000108 +018300010001180183000100018401000100010b01810001840100010001030181000117 +018100010601 +0301810001820100012d0181000182010001820100012e018100018401000100010c0183 +00010001820100011701810001820100010b018300010001090185000100010001820100 +0108018100012c01810001820100010e0183000100018201000106018700010001000100 +010a018100011f018100010a0183000100010d0183000100018401000100010801810001 +820100010101810001060181000186010001000100012a01810001840100010001090181 +0001820100010c0183000100011a018100010d018300010001820100010b018100011d01 +83000100010101 +010181000106018100018201000124018100010801810001820100010a01810001140181 +00018401000100010a018500010001000182010001070183000100018201000119018300 +0100018201000106018300010001820100010a01810001820100012c0183000100010401 +8100010101830001000186010001000100010601850001000100010b0187000100010001 +000108018100018201000115018500010001000109018700010001000100010d01810001 +0d018300010001820100013c0181000184010001000107018100018401000100010a0183 +0001000117018100018401000100010e018300010001080181000120010000 +08018100012c018100018201000182010001020181000102018100018301000100810001 +20018100018401000100010a01850001000100011a018100018401000100010901830001 +00010b01850001000100012f018300010001040181000101018100010a01810001840100 +0100010a0185000100010001080181000186010001000100012101870001000100010001 +080181000188010001000100010001040181000188010001000100010001090185000100 +010001820100012701830001000184010001000109018100018401000100010701810001 +84010001000107018100011d018300010001820100010b01830001000105018100011401 +8100010801 +810001820100018201000106018100012f01810001020181000108018100011901830001 +00010c018300010001070181000184010001000110018100010701870001000100010001 +090183000100018201000106018300010001010181000182010001230181000101018300 +010001020181000106018500010001000108018300010001840100010001080185000100 +0100010a01810001140187000100010001000108018100018401000100010d018100010f +01830001000130018100010901810001820100010c018500010001000107018100018401 +0001000115018300010001820100010a018100018201000182010001080183000100011d +0181000182010001 +0b018100012a018100010301810001070181000184010001000102018100011401810001 +08018500010001000182010001070183000100011a018500010001000109018300010001 +840100010001080181000182010001300181000108018300010001820100010a01830001 +00010a018300010001820100010a01850001000100011e01810001840100010001080183 +000100010b018700010001000100010401830001000102018300010001820100012c0183 +0001000109018300010001820100010c0183000100010a01810001190181000182010001 +820100010a018100018401000100011d018100010801 +030181000182010001820100010301810001240181000102018100010301830001000182 +01000107018100011c0183000100010c0183000100010a018100010f0181000109018300 +010001820100010801810001860100010001000109018300010001290181000186010001 +000100010801850001000100018201000108018500010001000108018500010001000182 +010001030181000115018100018401000100010801830001000108018100018601000100 +0100010b0183000100010101810001090181000125018100010601830001000182010001 +090181000186010001000100010701810001820100011901810001840100010001080181 +0001840100010001820100010801810001160181000103018100010601 +8201000109018100012a0181000184010001000106018100010201810001040181000114 +0181000182010001070185000100010001820100010701850001000100011a0183000100 +010b01830001000109018500010001000182010001030181000123018300010001080181 +000186010001000100010601890001000100010001000108018100018401000100010801 +830001000101018100011a01830001000108018100018601000100010001080181000184 +01000100010a018200010002008201000106018100012501810001090183000100018201 +00010c01810001090183000100011d0183000100010d0181000182010001050181000116 +018100010a01 +0701810001820100012a018100010a018100018401000100018401000100011f01850001 +000100010a01850001000100011a01830001000182010001060183000100018401000100 +010601850001000100010b01810001210181000106018700010001000100010801830001 +0001820100010c0185000100010001060185000100010001820100011b01810001080181 +00018401000100010a01830001000182010001080185000100010001820100010a018300 +01000104018100011d0101000501830001000182010001090183000100010a0183000100 +0182010001070181000111018100010b0183000100018401000100010801810001820100 +0102018100011a018100010401 +8100018401000100010901810001220181000105018300010001820100010c0181000182 +010001140183000100010c01830001000107018100018601000100010001170181000184 +010001000106018300010001840100010001080183000100018201000104018100012201 +83000100010f018100010c0181000184010001000105018100018401000100010c018300 +01000116018700010001000100010601850001000100010b018700010001000100010801 +8100018601000100010001080181000121018100010b0183000100010a01850001000100 +018201000107018100018201000119018300010001820100010d01830001000108018100 +01140181000103018100010701 +0801810001820100018201000129018100010a0181000182010001840100010001170181 +000107018500010001000182010001070183000100011a01850001000100010b01810001 +080181000186010001000100010401810001320185000100010001840100010001080185 +0001000100010601850001000100010a0181000186010001000100012201810001840100 +0100010601850001000100010d0187000100010001000109018500010001000105018100 +01210181000186010001000100010501850001000100010c018100018401000100010501 +83000100011101810001080181000184010001000182010001080183000100011c018100 +0182010001820100010501 +82010001840100010001060181000182010001820100011c018100010201810001080183 +000100010a0181000182010001110181000186010001000100010a018500010001000109 +01810001820100010e018100010a01830001000182010001060183000100010d01810001 +01018100018401000100011c018100010401850001000100010a01850001000100018201 +0001080183000100010a01850001000100010a01810001130183000100010d0185000100 +010001060183000100018201000122018100011e018100010b0181000182010001070183 +0001000184010001000109018100011c018300010001820100010a018100018201000108 +0181000116018100010e01 +0c0181000106018100011801810001030181000105018300010001050181000102018100 +012601850001000100010a01850001000100011701810001860100010001000106018100 +018401000100010801830001000184010001000104018100011e01830001000101018100 +010d01830001000108018700010001000100010801830001000182010001050181000123 +018900010001000100010001080181000182010001080187000100010001000182010001 +0301810001060181000182010001030181000103018100011a0183000100010201810001 +090183000100018201000109018300010001820100010501830001000182010001110181 +00010701810001840100010001820100010501810001820100011e018100018201000109 +01 +040181000184010001000106018100018201000116018100010301810001020183000100 +010501810001820100010201810001020181000102018100011701850001000100010a01 +8500010001000109018100010e0183000100010901850001000100010601810001020183 +000100010b0183000100011c018100010a01850001000100018401000100010801830001 +00010a018500010001000104018300010001010181000102018100010301810001150185 +000100010001080181000184010001000106018700010001000100010b0183000100010d +018100010301830001000101018100011501830001000103018100010101810001860100 +010001000107018100018401000100010901810001820100010201810001160181000182 +0100010c0181000108018100018201000182010001130181000103018100018401000100 +010401 +010181000106018100018201000182010001030181000113018100010301810001020181 +00010401810001820100010a01810001020181000116018100010a018500010001000107 +018100018601000100010001170185000100010001090183000100010201810001080183 +00010001070185000100010001170181000182010001010183000100010a018700010001 +0001000106018500010001000182010001030181000101018100010f0181000120018500 +01000100010201810001010183000100010a0181000186010001000100010b0181000110 +018100010401810001130181000101018100018201000109018300010001090181000184 +010001000107018100011501810001060183000100018201000182010001050183000100 +0182010001070181000111018100018201000109018100010101 +8100010301810001820100010b01810001820100010e0181000102018100010301810001 +040181000105018100018401000100018201000102018100011701810001040185000100 +0100010a0183000100011c01830001000108018300010001820100010801830001000184 +0100010001080181000106018100010f0183000100010a01810001060183000100010801 +850001000100010801830001000143018300010001010183000100018401000100010a01 +830001000101018100010901830001000101018500010001000104018100010201810001 +080181000186010001000100018201000105018500010001000107018100018401000100 +010901830001000108018100011001010082010001820100010a018100010b0183000100 +011c01820001008100010701 +81000182010001090181000184010001000101018100010b018300010001090181000102 +0183000100010201810001820100010a0181000102018300010001140183000100010a01 +850001000100010701830001000184010001000117018500010001000106018100018601 +000100010001080181000184010001000104018500010001000102018100010e01830001 +0001060181000101018100010a0185000100010001060185000100010001450181000106 +01810001080185000100010001090101000101850001000100010e018100018401000100 +01040183000100018401000100010201830001000111018100010b018300010001820100 +0107018300010001820100011b018100018201000107018100018401000100011e018100 +018201000106018100018301000100810001 +090183000100010901810001030181000184010001000108018100010d01810001080185 +000100010001260185000100010001070183000100018201000106018100011001830001 +000182010001080183000100010d01830001000106018300010001820100011101830001 +00010401850001000100010e018300010001040185000100010001100181000117018100 +010601810001220185000100010001840100010001040183000100010f01810001090181 +000106018100011201010082010001860100010001000107018300010001860100010001 +000107018100018201000109018100010f01850001000100010801810001840100010001 +08018100018401000100010201810001170183000100010901 +010183000100018201000109018300010001820100018201000101018100010701810001 +820100018401000100010301810001840100010001050183000100010801830001000183 +01000100810001150183000100010701810001840100010001090183000100011b018100 +018401000100010801830001000184010001000106018100010801810001840100010001 +0101830001000184010001000103018100010a0185000100010001040181000103018100 +01110181000117018100011f018100010201810001170185000100010001880100010001 +00010001020183000100010c018100010101830001000104018300010001820100010401 +830001000102018100010a01850001000100010c01850001000100010501830001000182 +0100011b01810001820100010a018300010001820100011e018300010001060181000184 +01000100010101 +0a01810001840100010001090181000103018300010001820100010b0181000109018100 +01050181000184010001000103018100011601830001000104018100018401000100010b +018100018201000119018500010001000106018100018601000100010001080181000184 +010001000101018100010d018100010a0181000102018100010101830001000110018100 +010201810001050181000126018100010101810001020181000112018100010201870001 +0001000100018801000100010001000101018100010b0183000100010101810001040183 +000100011001810001840100010001040185000100010001020183000100010301810001 +840100010001060181000186010001000100010a01830001000107018100011101830001 +000182010001050183000100018401000100010801810001820100011e01830001000103 +0181000182010001810100 +0401810001820100010c01820001008100010e0183000100010201810001030181000104 +018100010201810001820100010701810001020181000181010081000115018300010001 +0e018300010001070183000100010e018300010001060185000100010001090187000100 +010001000106018100010201830001000182010001030181000101018100018801000100 +010001000102018100010101810001030181000103018100018801000100010001000115 +018900010001000100010001820100010e018a0001000100010001000100810001010183 +000100010c01810001150181000102018700010001000100010a01810001820100010901 +810001010181000102018100010601830001000102018100010601810001820100010701 +830001000182010001090183000100010901830001000105018100011601810001820100 +010a018100010a018100012001010001018100010401 +810001820100010601810001840100010001820100010301810001820100018201000184 +010001000182010001050181000103018100010201810001040181000108018300010001 +080181000113018100010601810001860100010001000182010001040183000100018201 +000116018300010001820100010801850001000100010b01830001000102018300010001 +02018500010001000101018100010a018100010601830001000101018300010001190183 +000100018201000119018500010001000106018300010001030181000101018100010a01 +8100018c0100010001000100010001000102018100010c01830001000103018100010501 +830001000105018300010001020181000101018300010001060181000102018300010001 +840100010001030183000100010901830001000182010001060181000184010001000107 +01830001000111018100010a01830001000108018100018401000100011b018100018201 +000108018100018201000182010001 +08018100010c018100011301810001020181000103018100010201810001040181000184 +01000100010701810001820100018201000115018100018401000100010e018100010601 +810001820100010f018100010601810001020183000100010a0181000184010001000106 +018100010a0181000102018900010001000100010001880100010001000100010c018300 +0100010101850001000100018a01000100010001000100010c0183000100010c01810001 +04018900010001000100010001860100010001000101018100010a018100010f01810001 +0101850001000100010a018100010d018300010001030181000104018100010301810001 +840100010001010181000102018100010c018100010e0185000100010001070181000184 +010001000118018100018401000100010801830001000182010001080183000100010201 +81000117018300010001820100018201000102018100010001 +820100018201000182010001060183000100018201000103018100018201000184010001 +000182010001820100018201000102018100010201810001030183000100018401000100 +010a0183000100010601810001110101000a018100018601000100010001820100010201 +850001000100011301810001030183000100010201810001080185000100010001060183 +000100018201000106018500010001000102018100011201810001010102008201000182 +010001030181000113018900010001000100010001040183000100010501810001020183 +000100010101830001000104018100010101830001000103018100010401810001010181 +000117018100018401000100010a01850001000100010c01830001000102018100010801 +8100010601810001840100010001070181000186010001000100010c0185000100010001 +070183000100011101810001820100010501830001000182010001070181000182010001 +820100011a01810001820100010b010100820100010001 +070183000100018201000109018100011301810001140181000186010001000100010301 +8300010001020181000118018100018401000100010b0181000109018100010f01810001 +820100010a01830001000182010001040187000100010001000108018100010901810001 +010185000100010001020181000101018500010001000101010100130181000101018300 +0100010101830001000102018100010c0181000105018100010601830001000101018300 +010001820100010701810001020183000100010101810001060183000100010301810001 +820100010c01850001000100010101810001070185000100010001050181000101018100 +010201850001000100010401830001000182010001010181000103018300010001840100 +010001060181000186010001000100010a0183000100010a018100011001810001820100 +01070183000100010b0183000100010201810001170183000100018401000100010701 +040181000109018300010001820100010201810001040181000182010001020181000182 +0100010201810001840100010001820100018201000104018100010a0181000104018100 +0118018100010c0185000100010001040181000184010001000110018100010801850001 +00010001060183000100010d018100010201810001040183000100010101810001060181 +000101018100010101810001020181000101018100010101810001010189000100010001 +000100010201810001030181000108018500010001000106018500010001000103018100 +01860100010001000103018300010001020187000100010001000101018100010c018100 +010f01850001000100010f018100010d0181000102018100010101810001060183000100 +010701810001020181000109018300010001820100010901830001000109018100018401 +000100011b018100010a018100018401000100011c010100010181000109018300010001 +82010001810100 +830001000106018100018201000108018100010301810001060181000105018100010801 +8100010b0181000184010001000105018100010201010013018100010201830001000102 +018300010001070183000100010701810001820100010a01870001000100010001820100 +010601850001000100010801830001000184010001000101018100010201830001000108 +018100010201810001010181000101018100010a0181000101018100010e018100010101 +81000101018100018401000100010a018b00010001000100010001000104018700010001 +00010001010181000106018b0001000100010001000100010f01850001000100010c0181 +000184010001000103018100010201870001000100010001070181000106018300010001 +090183000100010201810001030185000100010001090185000100010001820100010401 +81000186010001000100010b018100010b01810001090181000184010001000182010001 +070181000182010001820100010101810001170183000100010d01 +050181000182010001050181000182010001820100010201810001040181000182010001 +020181000182010001050183000100010201810001050183000100010701810001820100 +010201810001820100011101810001010181000104018100010401830001000182010001 +0601810001820100011a0183000100018201000108018500010001000104018700010001 +000100010401810001820100010101810001040181000101018100010501810001880100 +010001000100010501810001030181000184010001000101018300010001010181000182 +010001030181000105018100018201000101018100010a01810001050181000101018100 +018601000100010001030183000100018601000100010001010183000100010a01830001 +00010201810001010181000106018100010e018100010101830001000101018100018401 +000100010401870001000100010001040181000102018100018201000104018100018401 +000100010b0183000100010a0185000100010001140183000100018401000100010a0181 +0001820100011e0101000a018100018401000100010501 +82010001820100010501810001820100010f018300010001030181000107018100010501 +81000102018100010a0183000100010501810001020101000a0181000106018100010901 +830001000106018100018401000100011501810001010185000100010001080183000100 +018201000103018100018401000100010801830001000182010001010181000101018100 +018201000105018300010001040181000103018100010301810001040181000101018100 +0101018100010c0181000105018100010401810001010189000100010001000100010601 +810001050185000100010001830100010081000182010001110183000100010501810001 +020181000101018100010701810001840100010001840100010001070183000100010601 +8100010a0181000182010001840100010001820100010101810001840100010001040183 +00010001820100010901850001000100018201000118018100010a018500010001000108 +018100018401000100011b01810001820100010b0183000100010001 +0601810001820100010801810001820100018401000100010f0183000100010201810001 +8201000109018100018401000100010d0181000103018100010101810001820100010a01 +8100010501810001040185000100010001090183000100010c0181000182010001070187 +000100010001000106018300010001080183000100018201000103018100018601000100 +010001040185000100010001010183000100010401830001000103018100010101830001 +00010201810001090183000100010601830001000103018100018c010001000100010001 +000100010101810001860100010001000101018700010001000100010401890001000100 +01000100010f0181000105018100010a0181000101018100010101810001090183000100 +018201000104018300010001040185000100010001020181000104010100020181000109 +018300010001820100010401850001000100010c018300010001820100010f0181000101 +018100010201830001000108018300010001820100010801810001030181000105018100 +018201000102018100010701810001820100018401000100010601 +010183000100010901810001820100010801810001820100010301810001840100010001 +0501810001820100010501850001000100010a0183000100018401000100010201810001 +0f0181000101018100010201820001008100010101810001820100010801810001840100 +01000105018100010e018500010001000104018300010001860100010001000106018500 +010001000106018100010b01830001000103018300010001040181000107018100010101 +810001040181000103018300010001050181000182010001070181000101018100010601 +870001000100010001080181000105018100018101000100860100010001000104018d00 +0100010001000100010001000111018100010e0183000100011201830001000106018100 +010201830001000105018100018401000100010b01830001000107018500010001000182 +0100010c0181000110018100010501830001000182010001070181000184010001000104 +018100010501810001060181000182010001820100018201000182010001080185000100 +010001 +0a0183000100010601810001840100010001060181000101018100010201810001840100 +010001050181000182010001060181000102018100018201000107018300010001060183 +000100018401000100010f01810001040181000186010001000100010601810001820100 +0182010001060183000100018101008100010401850001000100010d0183000100010e01 +82000100810001020183000100010301830001000106018b000100010001000100010001 +050181000102018100010301830001000114018300010001860100010001000101018100 +010301810001860100010001000101018900010001000100010001020102008801000100 +01000100010a018100010101810001820100010e01830001000104018300010001090189 +000100010001000100018401000100010101810001880100010001000100010401830001 +0001080183000100018401000100010601810001840100010001090183000100010f0181 +00010201850001000100018401000100010a0181000184010001000108018100010b0181 +00018401000100010d0181000107018100010201 +810001820100018401000100010601810001820100010b01810001820100010301810001 +050183000100010701810001820100010401810001020181000186010001000100010601 +8100010a0185000100010001060181000101018100018401000100010901850001000100 +010801850001000100010701810001820100010a01850001000100018201000105018100 +018801000100010001000106010100040181000106018500010001000103018300010001 +050181000103018100010a01810001120181000108018100010101870001000100010001 +040181000105018200010004000b018700010001000100010c0185000100010001040181 +000109010100060181000182010001040181000101018100010201810001060185000100 +0100018201000102018200010083000100010b0183000100018201000106018300010001 +840100010001050183000100010201810001840100010001020181000101018100010801 +8100010f0185000100010001090181000182010001080185000100010001820100010601 +83000100010701 +0b0181000182010001050181000184010001000182010001060181000182010001840100 +0100010501810001840100010001820100010601810001820100010e0181000101018300 +010001820100018201000101018100010601810001010181000107018500010001000182 +010001080181000101018300010001060183000100010701810001860100010001000108 +01850001000100010b018500010001000182010001010181000101018500010001000104 +018300010001010181000105018100010301810001840100010001160185000100010001 +080185000100010001080183000100010101850001000100010101810001030101008801 +000100010001000101018100010401830001000110018100010601810001040189000100 +010001000100010501810001010181000102018100010101850001000100010901810001 +07018100018401000100010b018500010001000109018100018401000100010301810001 +100183000100018201000101018100018201000184010001000182010001100181000184 +010001000182010001850100010001000100070181000182010001050181000102018100 +010001 +030181000184010001000109018100010b01810001820100010d01810001820100010b01 +8100010a0183000100018401000100011801830001000102018300010001820100010d01 +8300010001820100010501850001000100010501850001000100010b0185000100010001 +080187000100010001000104018100010201810001010183000100010601810001030181 +000101018b00010001000100010001000106018100011a01830001000188010001000100 +010001010187000100010001000105018100010201850001000100018101000100840100 +0100010301850001000100010a0181000119018100010201820001000100020182000100 +810001020181000101018100010101810001040181000104018300010001010181000101 +018100010901850001000100010c01850001000100010901810001070181000184010001 +000182010001090183000100018201000107018100018401000100010301810001140181 +00018201000182010001060183000100010801 +82010001090181000184010001000106018300010001820100010e018100018201000107 +01810001020181000182010001010181000186010001000100010a018100010301810001 +820100010101810001020181000106018300010001090187000100010001000182010001 +0101810001020101000701810001820100010b018700010001000100010b018300010001 +0d0183000100010101830001000102018500010001000101018300010001010181000102 +0181000102018100011f0189000100010001000100010401850001000100010101810001 +060102008101000100060181000101010100840100010001070101008601000100010001 +1d0181000108018100010401810001020181000101018500010001000106018100010701 +810001820100018601000100010001090185000100010001820100010901870001000100 +010001050181000182010001060101008401000100010c018100010d0181000105018100 +018401000100018201000104010100080181000182010001820100010201830001000182 +010001810100 +010181000182010001840100010001090183000100010901810001820100018401000100 +01820100010201810001820100010201810001020181000104018100010c018300010001 +820100010301810001020183000100010201810001050181000107018500010001000105 +018700010001000100010801850001000100010a01850001000100010e01810001820100 +011001810001020181000104018100010501810001030181000102018100010201830001 +000119018500010001000107018100018601000100010001010181000103018300010001 +820100010201810001020189000100010001000100010601870001000100010001030181 +000102018500010001000116018100010201810001820100010101810001020181000101 +018100010201810001030181000182010001010185000100010001020181000182010001 +82010001060183000100018401000100010901850001000100010c018100010401810001 +84010001000182010001010181000102018100018601000100010001820100010a018300 +01000184010001000101018100010b01850001000100018401000100010b018100010901 + +8100010e0183000100010801810001820100010601810001820100018401000100010501 +81000102018100010201810001040183000100018401000100010a018100018201000182 +010001020183000100018601000100010001050181000182010001040185000100010001 +0901870001000100010001080181000102018100010b0189000100010001000100010601 +830001000104018100010101820001008100010601810001010183000100010301810001 +040181000101018100012401870001000100010001080187000100010001000108018100 +01840100010001860100010001000181010001008201000109018300010001820100011e +018100010701810001060181000106018300010001010181000184010001000103018100 +010101810001040183000100018201000108018300010001820100010901850001000100 +018201000107018100010901810001010181000184010001000107018100018401000100 +010e0183000100018201000107018100018201000105018100018401000100010a018100 +0182010001 +080183000100018201000108018100018201000109018100010a01810001820100010201 +8100010201810001020183000100012b0183000100018201000101018100018201000106 +018300010001840100010001070181000186010001000100010901850001000100018201 +00010a01810001080183000100010301830001000182010001020181000101018d000100 +010001000100010001000110018100011601830001000101018100010101810001040185 +000100010001070181000183010001008200010082000100010004018300010001040187 +0001000100010001080185000100010001180181000106018100010b0183000100010401 +810001060183000100010101810001010181000109018500010001000109018500010001 +00010c018300010001820100010201850001000100018601000100010001070181000184 +010001000182010001070181000106018100010701810001820100018201000101018100 +01840100010001090183000100010a01 +81000182010001820100010b018100018201000103018300010001820100018201000103 +018100010301830001000105018100010201810001020181000106018100018401000100 +010901810001010181000184010001000184010001000102010200040181000101018100 +0104018100018401000100010b0183000100010901810001820100018401000100010801 +8300010001040181000108018300010001070101000301850001000100010e0181000101 +018500010001000116018700010001000100010501850001000100018401000100010101 +810001030183000100010701810001010181000101018200010089000100010001000100 +010401810001010187000100010001000106018500010001000110018100010a01810001 +030181000101018100010301810001040185000100010001040181000101018100010101 +810001820100010a0181000186010001000100010701850001000100010c018100010901 +810001020183000100018401000100010701810001840100010001030183000100010501 +810001840100010001820100010301810001070181000184010001000108018100010201 +8100010001 +090183000100018201000182010001050181000109018100018201000102018100010501 +810001820100010201810001020181000103018100018201000107018300010001840100 +01000110018100010201810001820100010401850001000100010b018500010001000104 +01870001000100010001820100010b018100010101810001060181000103018300010001 +820100010501810001820100010401830001000103018900010001000100010001020185 +0001000100010f018100011201850001000100010801810001010181000101018100010d +018100010101810001050181000103018500010001000109018100018101000100820100 +010a018100010b018100010c018100010101810001010181000103018300010001090181 +00010101810001820100010501850001000100010d018100018401000100010601810001 +8401000100010201810001070181000101018100010c0181000182010001040181000182 +010001840100010001120181000102018100018201000182010001080183000100018201 +000102018100010301 +010183000100018201000108018100018201000182010001050181000182010001060181 +000102018100018201000105018100011501810001090181000101018100018501000100 +0100830001000181010081000182010001020183000100010c01850001000100010a0181 +000108018100010701810001030181000104018300010001010181000111018100018201 +000105018100010a01810001050181000101018100011601870001000100010001050181 +000101018100010201830001000119018100010101810001010181000109018500010001 +00010a018700010001000100010e01810001820100010c01810001010181000102018300 +010001030181000186010001000100010201850001000100010101830001000109018500 +010001000102018100010601830001000184010001000104018100010201810001840100 +0100010201830001000186010001000100010a0183000100018401000100010501810001 +05018100018201000102018100010d018100018201000112010000 +0a0183000100018201000108018100018201000106018100018201000184010001000105 +018300010001030183000100018401000100010e01850001000100018201000102018500 +010001000106010100820100018401000100010901850001000100010901850001000100 +018201000182010001860100010001000101018100010301810001030181000102018700 +010001000100011301810001020187000100010001000101018100018801000100010001 +00010101810001010181000101018100010b018100010801810001090181000101018300 +0100011a0185000100010001030181000106018100010e0183000100010c018300010001 +050181000116018100010101810001040181000108018300010001050181000112018100 +01040183000100010b018300010001070183000100018201000102018100010701830001 +000184010001000107018100018401000100010d01810001020181000184010001000182 +01000108018100018401000100010201830001000101018100010101 +010181000182010001820100010801810001820100018201000108018200010081000108 +018100018201000105018100010901810001060183000100010501810001010181000185 +01000100010084000100010002000a0185000100010001820100010a0181000182010001 +070181000109018100010601850001000100018801000100010001000122018100018201 +0001050183000100010101810001010183000100010c0181000105018100010701830001 +000122018100010301890001000100010001000117018100010201830001000111018100 +010501810001060183000100010101810001010183000100010201870001000100010001 +020187000100010001000102018100011d018100010f0181000107018100018601000100 +010001820100010901810001820100010a01810001860100010001000182010001020181 +00010b018300010001820100011201810001 +810001090183000100018201000108018100018401000100010301810001010181000102 +0181000107018100010201810001820100018401000100010d0181000182010001010181 +000102018200010081000108018200010083000100018201000108018100018801000100 +010001000107018300010001030185000100010001820100010401810001010183000100 +010601810001010181000182010001100101000201810001030181000106018300010001 +030181000101018100010301810001080183000100010701850001000100010b01810001 +1e0183000100010501850001000100010f018100010a0181000124018100010101810001 +0301810001820100010a0183000100012601830001000102018100010801810001840100 +010001020181000182010001040183000100018201000107018300010001840100010001 +0d0181000102018100018201000182010001820100010701810001820100010401830001 +0001820100010301 +050181000182010001080181000184010001000109018200010081000103018100018401 +0001000184010001000102018100010e0183000100018401000100010701830001000104 +018300010001830100010087000100010001000102018100018601000100010001070181 +000101018100010201810001050181000108018100010201830001000106018300010001 +01018100011a018500010001000102018500010001000105018100010101810001010181 +00010101810001200181000103018100011c01810001030102008201000103018100010c +018100011101810001070181000101018100010301830001000107018100010201810001 +010183000100010401870001000100010001070181000112018100018201000114018300 +01000102018100010601810001820100010201810001090183000100010d018100010201 +830001000182010001080181000105018300010001030181000102018100010a01810001 +0001 +8201000182010001050181000182010001820100010a0181000182010001030101008201 +000182010001080183000100010201810001840100010001020181000106018100010201 +830001000182010001060181000184010001000104018100018201000101018100010901 +830001000182010001010181000108018100010101810001880100010001000100010601 +8100010201830001000108018700010001000100010d0181000106018300010001030187 +000100010001000101018100010101810001020181000107018100011501810001030181 +000114018100010501870001000100010001050183000100011b01810001260181000102 +0181000103018100010a0181000102018100010701810001090181000101018100010401 +810001820100011401850001000100010201010005018300010001820100010701830001 +000182010001110181000184010001000182010001820100018401000100010301810001 +0e018100010401 +060181000182010001080181000182010001840100010001050181000181010081000182 +010001020181000103018100010401810001020181000102018100010301810001820100 +010201810001090185000100010001020181000102018300010001840100010001090181 +00010d018100010101810001020181000105018100010401830001000102018100010301 +8300010001840100010001060183000100010e01810001820100010d0183000100010101 +810001020181000101018100010701830001000119018100010a01810001090185000100 +01000102018100018601000100010001010102002f018100011301810001020183000100 +010101870001000100010001860100010001000103018100011201850001000100018201 +000101018100011001810001090183000100010c01830001000102018100010501810001 +850100010001008100010201830001000102018100010301810001080183000100018201 +000104018100010201810001020181000101010000 +010181000182010001050181000182010001820100010801830001000182010001030181 +000108018100010501810001020181000105018100010d01850001000100018201000103 +018100018201000184010001000107018700010001000100018201000106018100010101 +810001820100010a0185000100010001020183000100010601850001000100010a018200 +0100010019018b0001000100010001000100010401810001010181000101018100012c01 +810001090185000100010001090182000100830001000101010100090181000137018500 +010001000101018100010401850001000100010301810001020183000100011101830001 +000104018100010201830001000112018500010001000184010001000184010001000102 +01810001820100010701810001020183000100010a018100010401810001050181000182 +010001820100010a01810001040181000102018100010301810001 +0701810001820100010501810001820100018401000100010b0181000103018100018201 +000184010001000182010001020181000102018300010001020181000104018500010001 +00010a018700010001000100018201000101010100850100010001008100010601810001 +020183000100010801810001080183000100010801810001840100010001080187000100 +010001000106018300010001080181000104018300010001010183000100010801810001 +010181000101018100010d01810001110181000101018100010a01870001000100010001 +0701860001000100010083000100018601000100010001810100020001018100010a0181 +0001820100011d0181000107018100010701810001010183000100010601830001000101 +01810001020183000100010c018100010401820001008700010001000100010201830001 +000102018100010601810001040181000104018100010a01830001000182010001090181 +000184010001000105018300010001820100018401000100018201000105018100018401 +000100010c0181000102018100010301 +0201810001820100010501810001820100010b0183000100018301000100830001000101 +0181000103018100010401810001820100010f0181000105018300010001860100010001 +000104018100018501000100010081000103018100018201000104018100012101870001 +000100010001060183000100018401000100010501810001860100010001000103018100 +010f01830001000103018100018601000100010001010181000101018100010101830001 +000119018100010901810001040181000105018900010001000100010001030185000100 +010001870100010001000100850001000100010201830001000101018100010a01010005 +018100010d01810001100183000100010101810001030183000100010601810001010181 +000103018100010b0181000181010001000701870001000100010001820100010d018300 +0100011b0183000100018201000109018100010301830001000108018300010001820100 +0108018300010001040181000102018100010601 +8100010601810001820100010b0183000100010501810001070183000100010501810001 +050183000100010201810001820100010501810001820100010b01830001000186010001 +00010001020181000184010001000104018100011a018100018201000105018300010001 +040183000100010801810001010181000108018500010001000106018100010401810001 +03018100018201000105018300010001010181000101018100010d018100010501810001 +0901810001030181000102018300010001030183000100010d0183000100010101880001 +0001000100010087000100010001000107018300010001010101000a018100010d018100 +010e01810001030181000101018100010501830001000182010001010181000102018100 +01820100010b01830001000102018500010001000106010100880100010001000100010b +018100018401000100010f01850001000100010501830001000182010001820100010201 +83000100010201810001840100010001820100010501810001820100010e018100010601 +82000100 +820100018201000182010001080183000100018201000182010001820100018401000100 +010501810001040181000102018100010201810001820100010201830001000182010001 +010181000101018100010901810001840100010001090183000100010201810001010181 +000124018500010001000104018300010001080183000100010101810001040185000100 +010001060181000103018100010401830001000182010001030185000100010001010183 +000100010101810001030181000115018100010101830001000101018300010001040187 +00010001000100010b018700010001000100010101830001000102018100010201810001 +0401870001000100010001080183000100010101810001090181000107018100010d0183 +0001000101018100010201830001000105018100018701000100010001008100010c0102 +00820100010801810001820100010801810001010181000102018300010001820100011f +018100010a01830001000184010001000105018100018401000100010801810001840100 +010001020181000107018100010401 +0c0183000100018201000182010001820100010801830001000182010001040181000102 +018100018401000100010501810001020181000101018100010701010001018300010001 +090183000100018201000101018100018401000100018201000118018100010801830001 +000104018100010601870001000100010001060185000100010001040183000100011001 +810001020183000100010101810001030181000103018100010101830001000119018500 +010001000103018300010001820100010b01870001000100010001070181000102010300 +81010084000100010001000a018900010001000100010001030182000100830001000101 +018100011701810001050181000101018100010401850001000100010901810001080181 +000104018100018401000100018201000106018700010001000100010401810001090181 +000101018100010501810001130181000184010001000184010001000184010001000184 +010001000182010001840100010001030183000100018201000107018100010101810001 +820100018401000100018201000182010001 +040181000184010001000182010001820100010b0183000100011c018100010701810001 +050183000100010e01810001020181000101018100018201000106018100011b01850001 +0001000103018100018201000101018100010c0183000100018201000109018100018401 +0001000101018100010d0181000101018300010001010183000100010101830001000101 +018100010101810001030181000109018700010001000100010101890001000100010001 +000182010001070187000100010001000105018900010001000100010001010183000100 +018201000102018300010001020183000100010e01020082010001090183000100010101 +830001000111018700010001000100010101830001000108018100010201810001090181 +00018401000100010b018500010001000106018200010002008201000103018100018201 +000102018100010b01810001190181000102018100010a018100010a0181000182010001 +820100010e018100010201 +830001000101018300010001820100010801810001840100010001080181000184010001 +000101018100018201000184010001000184010001000102018100018401000100010201 +830001000184010001000103018100018401000100010201810001040183000100010401 +810001840100010001010181000112018300010001820100010101810001030181000102 +018300010001010181000102018700010001000100010a01830001000186010001000100 +011101810001010181000105018100010101810001030181000101018100010901830001 +000101018100010301850001000100010601810001020181000186010001000100010701 +850001000100010701850001000100010101820001000400810100810001040187000100 +01000100010101810001010181000103010100860100010001000102018100010b018100 +0106018100010901830001000101018100018a0100010001000100010001120101008201 +000184010001000108018300010001820100010301810001820100010101810001010181 +000184010001000182010001070181000111018300010001050181000101018100018201 +000184010001000184010001000182010001840100010001820100010701810001010181 +00018201000184010001000103018100010001 +810001820100010801810001840100010001090183000100018201000105018100018201 +0001820100010a0181000102018100010201810001060183000100011201810001020183 +000100011b018100010601020081010087000100010001000103018100010f0183000100 +010101810001130181000108018100010301830001000101018100010101830001000101 +018100010101810001010185000100010001070183000100010501810001010184000100 +010001000701890001000100010001000101018f00010001000100010001000100010001 +010183000100018401000100018101008900010001000100010001050181000101018700 +010001000100010101810001040187000100010001000102018100010501810001040181 +000184010001000184010001000103018300010001040181000103018100010801810001 +020185000100010001060183000100018201000108018500010001000182010001140181 +000118018100010201820001008300010001020183000100010301810001820100010701 +8100018201000116010000 +050181000182010001820100010b01830001000108018300010001040181000102018100 +018201000184010001000107018100010201810001010181000104018100011201810001 +040183000100018201000116018400010001008100010101830001000101018100010201 +830001000101018300010001010181000182010001010181000119018100010801810001 +01018d000100010001000100010001000103018100010101810001070189000100010001 +000100010501870001000100010001020183000100010301830001000103018700010001 +000100010701810001010185000100010001010183000100010101010001010100820100 +01030185000100010001070189000100010001000100010a018100010101830001000115 +018100010501830001000101018100018401000100010d01810001820100010201830001 +000182010001030181000186010001000100010901810001050181000105018300010001 +0c0185000100010001110181000183010001008100018401000100010501810001840100 +010001050181000101018100010501810001030183000100010101 +820100018201000108018100018401000100018201000106018300010001820100010501 +810001820100018201000108018300010001840100010001020181000181010081000119 +0181000102018300010001020181000101018100010b0185000100010001820100010801 +850001000100010201810001030181000103018100011a01810001120181000101018100 +010c01810001010181000101018100018401000100010901810001010181000102018300 +010001880100010001000100018201000103018300010001070187000100010001000101 +010100850100010001008400010001000100010181000105018700010001000100010101 +8800010001000100010081000105010400820100010b0183000100018201000103018500 +010001000101018100010201830001000105018100012501830001000106018100018201 +00010a0181000101018100018201000129018100010d0181000108018200010085000100 +0100010101810001820100010201810001820100010201810001 +060181000182010001820100010b01830001000105018100010201810001030101000301 +8100018401000100010501810001020181000106018100010401850001000100010b0181 +00018201000104018100010f018100010401870001000100010001860100010001000103 +01810001040187000100010001000124018100010801810001010181000101018100018a +010001000100010001000101018100010101850001000100010201810001010181000101 +018500010001000103010200810100830001000103018700010001000100010301870001 +0001000100010b0185000100010001840100010001010185000100010001010181000107 +018500010001000105018200010001000401830001000186010001000100010c01810001 +07018100010101830001000102018500010001000103018100010e018300010001120181 +000102018100010401810001030183000100010201810001010181000182010001130181 +00010e018100010201010084010001000182010001820100010201810001840100010001 +0901810001050181000105018100010201 +04018100010b018300010001820100010801810001020181000106018100018201000184 +0100010001050181000102018100010201810001040101000d018100010d018300010001 +850100010001008100010801810001010185000100010001840100010001080181000101 +018500010001000122018500010001000109018100018401000100010201810001090183 +000100010101830001000104018500010001000107018500010001000182010001880100 +010001000100010601850001000100010901880001000100010001008600010001000100 +810001810100010004018300010001010183000100010901860001000100010081000101 +010100810100810001010181000107018700010001000100010801830001000101018100 +010301810001010181000186010001000100010101810001050181000122018300010001 +0a0183000100018401000100010201810001060181000117018100010101810001020181 +000113018100010201810001030181000184010001000182010001820100010301810001 + +830001000106018100018401000100010801810001840100010001060183000100018401 +000100010901810001840100010001820100010201810001010181000183010001008100 +011401010082010001840100010001080181000104018300010001820100010401830001 +000101018500010001000103010100820100010401830001000118018100010a01820001 +008100010101810001010181000102018100010101890001000100010001000101018300 +010001050101000301810001810100810001840100010001010187000100010001000102 +01010001018700010001000100010901850001000100010e018200010081000101010400 +820100010601890001000100010001000107018200010003008101008100010101850001 +000100010901830001000102018100010301810001010183000100010101810001060185 +0001000100010b0181000126018300010001820100010101810001820100018201000101 +018100010201810001160181000104018200010081000182010001010181000182010001 +82010001020181000105018100010101810001040181000108018100010301 +050181000182010001020181000105018100018201000108018300010001080181000101 +0181000184010001000102018100010201810001820100010101810001820100011a0181 +000109018700010001000100018401000100010501820001000100840100010001820100 +0109018100010201830001000103018100010e018100010a018100010201010008018100 +010301810001010183000100010701810001010187000100010001000188010001000100 +010001030185000100010001840100010001010103000f01850001000100010501810001 +030182000100050082010001020185000100010001030183000100010b01850001000100 +010101010007018500010001000104018700010001000100010401870001000100010001 +010181000103018300010001010185000100010001840100010001080181000102018100 +012601810001020181000102018100010101810001020181000184010001000116018500 +0100010001050183000100010b0181000182010001080181000105018100018201000103 +0182000100 +8401000100010b018100018201000105018100018401000100010e018100010101810001 +04018100010201810001040181000105018100010f018100010501810001840100010001 +86010001000100018201000101010200030182000100010008018100010e018300010001 +010185000100010001060181000109018100010201810001030183000100010101020081 +010083000100010201810001010181000103018700010001000100010101810001010181 +0001010183000100018801000100010001000105018400010001000100820100010a0187 +000100010001000103018100010301810001010183000100010401810001010182000100 +02008501000100010081000105018b000100010001000100010001050181000101010300 +010101008201000103018100010101810001050183000100010501830001000102018300 +01000103018100010501810001050181000105018100018201000101018100011e010100 +030181000102018300010001810100820001000200060181000110018100010701810001 +830100010081000107018100010801810001820100010801810001820100010201810001 +820100010101 +030181000182010001840100010001030181000184010001000182010001140101000201 +830001000182010001840100010001040181000102018100012001810001030181000182 +010001010181000101018100018101008100010301810001020183000100011401810001 +1b0181000101018100010101050003018100010701810001010185000100010001030183 +000100010501810001020181000108018100018201000182010001050181000101018700 +010001000100010301810001030181000101018300010001050184000100010001008101 +0001008101000200860100010001000186010001000100010c0185000100010001070101 +008101000300080187000100010001000103018300010001030183000100010201890001 +000100010001000104018100010101850001000100018201000102018100010901810001 +1901830001000184010001000182010001820100010701830001000104018100010c0181 +000101018300010001020181000102018100011501850001000100018201000105018100 +010501810001 +01018100010801810001820100010a018100018401000100010201810001820100018201 +000106018100010a01830001000102018100010201850001000100010601810001120183 +000100010401810001010185000100010001010183000100010201830001000112018300 +010001020183000100010b01850001000100018201000101018700010001000100010201 +810001050181000101018100010201830001000105018300010001030185000100010001 +0101830001000104018300010001010181000102018b0001000100010001000100010901 +810001010183000100010301890001000100010001000104010100080104000101810001 +040185000100010001820100010901860001000100010081000106018300010001010181 +000101018100010401810001050185000100010001010183000100010801810001020181 +000182010001050189000100010001000100010f018100010e0181000108010100840100 +010001820100010101810001830100010081000110018100010601810001030182000100 +830001000184010001000103018100010201810001060183000100018201000182010001 +0201810001820100010201 +07018100018201000105018300010001820100010d018100010701810001040181000184 +010001000182010001020183000100010201830001000115018100010501810001040101 +008301000100020004018500010001000182010001170181000101018100010701870001 +0001000100010401850001000100010b0185000100010001070181000101018700010001 +000100010101850001000100010101810001010181000101010100840100010001050187 +000100010001000104018100010301870001000100010001050185000100010001050183 +000100010601040084010001000104018900010001000100010001050183000100018401 +000100010801030083010001000100060101000201830001000103018300010001050181 +00010301870001000100010001860100010001000101018200010083000100010a018500 +01000100011201810001070187000100010001000102018100010e018100010401810001 +0a0183000100018401000100018201000102018100010801810001020181000102018100 +0101018100010a018100018201000102018100010001 +810001840100010001060181000115018100011101810001040181000182010001040183 +000100010201810001140181000102018100010101830001000105018100010301810001 +010101001501810001060181000101018500010001000105018300010001840100010001 +090187000100010001000101018100018401000100010101810001020181000101018100 +010301810001030183000100010101830001000106018500010001000102018500010001 +000103018100010101830001000105018700010001000100010301830001000107018300 +010001020181000106010700070185000100010001080187000100010001000104018100 +010301010002018100010801810001050185000100010001010185000100010001010183 +000100010f0187000100010001000109018700010001000100010f010100020181000182 +0100010201810001020185000100010001820100010601010009018100010c0181000184 +01000100010e01810001080181000184010001000108018100018301000100 +080183000100010e01830001000103018300010001820100018201000104018100010101 +810001030183000100010501830001000104018100010101810001190183000100010201 +82000100010001018100010401810001010181000109018100010a018100010201850001 +0001000182010001020183000100010a0187000100010001000104010200840100010001 +010181000101018100018201000102018100010101890001000100010001000103018100 +0102018200010083000100010a0187000100010001000103018900010001000100010001 +030183000100010101810001030183000100010101850001000100018201000101018700 +010001000100010301810001880100010001000100010501870001000100010001080189 +000100010001000100010701850001000100010601830001000182010001020181000105 +018100010301830001000182010001010181000182010001040181000102018100018201 +00010c018100018601000100010001090181000104018200010081000104018300010001 +020185000100010001020183000100018201000107018300010001840100010001050101 +000801810001050181000103018100010201810001820100018401000100010901 +820100018401000100010801810001030183000100010501810001820100018401000100 +010601810001030181000182010001060181000102018300010001820100010201830001 +000101018100011201810001820100010101010082010001010183000100018201000103 +0181000103018100010a0187000100010001000102018100010101810001040181000107 +018700010001000100010501810001840100010001030181000101018500010001000105 +0183000100010b0185000100010001820100010301810001030183000100010101850001 +000100010101850001000100010501830001000101018100010301810001030187000100 +010001000106018300010001010181000103018100010201850001000100010301870001 +000100010001050187000100010001000106018700010001000100010901820001008300 +010001020181000101018100010101810001840100010001030185000100010001820100 +01010183000100018801000100010001000106018700010001000100010d018100010401 +810001080181000103018100010201830001000106018100011301810001020181000182 +010001820100010501810001100181000105018100010201810001820100018201000181 +0100 +030181000105018100018201000102018100010301810001840100010001820100010201 +810001050181000106018100018401000100018401000100018401000100010201810001 +02018100011c01810001820100010101810001840100010001040102000a018100018601 +000100010001060185000100010001820100010101830001000103018500010001000103 +018100010101850001000100010201870001000100010001810100010005010100010181 +000103018d00010001000100010001000100010301810001010101008601000100010001 +030181000101018700010001000100010101830001000107018100010101890001000100 +010001000107018500010001000104018100010101830001000101018300010001040183 +000100010701870001000100010001050184000100010083000100010301810001010187 +000100010001000105018300010001010181000101018500010001000102018300010001 +03018200010001000501820001008d000100010001000100010001000106018100018401 +000100011001870001000100010001820100010501810001010185000100010001040181 +000104018100010701810001030183000100010201810001130181000182010001050181 +00010201810001050181000182010001 +010181000102018100010501810001820100010501810001820100018401000100018201 +000116018300010001820100010401810001070181000103018100011801810001820100 +018201000103018300010001030187000100010001000108018500010001000107018300 +010001030181000109018100010101810001020185000100010001090102008201000107 +018300010001010183000100010101830001000101018300010001010181000108018300 +010001010187000100010001000107018300010001010185000100010001030181000103 +018700010001000100010601830001000101018100010101830001000101010100820100 +010501890001000100010001000105018100010101830001000104018600010001000100 +810001820100010501830001000105018100010101810001050185000100010001840100 +010001010101000201810001010181000182010001030185000100010001020187000100 +010001000104018700010001000100010501810001080183000100010301810001070181 +000106018300010001090183000100010501810001160181000105018100010201810001 +030183000100010501 +0a0181000105018300010001820100010a01830001000103018100010301810001030181 +000182010001070183000100010201830001000117018100010501810001840100010001 +01018200010082000100010002018300010001060189000100010001000100010b018100 +010301830001000103018d00010001000100010001000100018201000107018600010001 +000100830001000104018500010001000103018100010301810001030181000103018100 +010101810001860100010001000101018700010001000100010101930001000100010001 +000100010001000100010001030181000101018300010001070185000100010001040181 +000101018100010301810001040187000100010001000107018500010001000101018100 +010301860001000100010081000103018100010101870001000100010001090181000101 +018500010001000103018300010001040101000401870001000100010001080185000100 +010001040183000100018201000106018100018201000101018500010001000182010001 +030181000183010001000100010181000186010001000100018101008100018201000182 +010001040181000184010001000184010001000103018100011501810001820100010201 +810001020181000182010001820100010501 +050181000107018100018201000108018100010d018100010e0185000100010001050181 +0001040183000100010b0183000100010701810001010101000101020001010300020181 +000104018300010001820100010a01890001000100010001000102018300010001820100 +018201000101018700010001000100010801870001000100010001070185000100010001 +820100010401830001000101018900010001000100010001010183000100010101810001 +01018100018201000102018100018e0100010001000100010001000100010d0183000100 +01090185000100010001060183000100010101870001000100010001010101000a018700 +010001000100010501890001000100010001000102018100018101008300010001010181 +000105018300010001010185000100010001010181000105018300010001030183000100 +018601000100010001820100010501830001000184010001000106018700010001000100 +01020185000100010001060181000106018100010b018300010001810100810001060181 +000102018100018101008100018201000184010001000102018100018201000114018100 +01040181000102018100010801810001820100010001 +8201000105018200010083000100010a018100011c018100018201000107018300010001 +020183000100011701810001030185000100010001830100010001008201000181010087 +00010001000100010a018100018401000100010801830001000106018100010b01870001 +000100010001070187000100010001000108018100018201000103018100010901810001 +030181000101018100018201000101018300010001810100870001000100010001010181 +000103018700010001000100010701890001000100010001000105018500010001000104 +018300010001050181000102018b00010001000100010001000105018700010001000100 +010301810001010184000100010001008101008300010001840100010001840100010001 +010181000182010001010181000102018300010001050183000100010101810001070187 +000100010001000108018700010001000100010601850001000100018201000102018300 +01000101018100018a010001000100010001000182010001050181000103010200010181 +00010201810001020102000101830001000102018100011e018100010201810001840100 +01000182010001820100010601 +030181000184010001000108018100011d01810001080181000184010001000105018100 +010301810001840100010001070181000101018100010401820001008500010001000181 +01008200010004000c018700010001000100010601870001000100010001820100018201 +000101018300010001010181000101018700010001000100010901850001000100010701 +010081010001008201000106018100010101890001000100010001000101018300010001 +010181000101018100018501000100010001000501810001820100010101830001000107 +018700010001000100010701870001000100010001060185000100010001010184000100 +010087000100010001000103018100010301850001000100010701830001000101018100 +010401810001040101000701810001010181000101018100010101810001040101000101 +8100010301830001000182010001010181000104018100010101850001000100010a0183 +000100018401000100010901810001030181000104018300010001040185000100010001 +010183000100010501010081010087000100010001000182010001020182000100830001 +000182010001160181000102018100010d01810001820100010101 +810100810001050181000105018100012601830001000107018300010001050181000112 +018500010001000185010001000100820001000500040181000103018500010001000108 +01850001000100010301810001820100010201830001000103018100010b018900010001 +00010001000106018700010001000100010a018500010001000102018100010601810001 +030181000101018100018201000106010500820100010701870001000100010001010181 +000103018700010001000100010701850001000100018201000103018100010301810001 +820100010301830001000101018100010701870001000100010001070184000100010002 +008201000102018100010301810001050185000100010001010183000100010801810001 +050181000102018700010001000100010601850001000100018401000100010801850001 +000100010401810001820100010101830001000104018500010001000105018500010001 +00018401000100010701820001008400010001008100010b018100010e01810001030181 +00010201810001840100010001820100018401000100018201000101010000 +390101000301810001840100010001040183000100010201830001000182010001020183 +000100018401000100010801810001010181000101018300010001830100010083000100 +018201000105018300010001840100010001010185000100010001820100010301810001 +8801000100010001000101018b0001000100010001000100010701830001000184010001 +000109018200010003000801810001010184000100010081000103018100010101830001 +000105010300030181000102018700010001000100010701810001010183000100010501 +890001000100010001000108018300010001010183000100018201000101018300010001 +070187000100010001000107018500010001000109010200880100010001000100010501 +810001050181000103018300010001010181000101018100010401810001020181000105 +0183000100018401000100010801850001000100010f018100018a010001000100010001 +000184010001000102018500010001000104018100018301000100020082010001030187 +000100010001000184010001000112018100010201830001000102018100018201000112 +01 +32018100010501810001840100010001050183000100018601000100010001820100010d +018300010001860100010001000104010200810100020082010001820100010101870001 +000100010001020187000100010001000106018500010001000102018100010601810001 +0a0183000100010201810001090186000100010001000100840100010001010185000100 +010001010183000100010801850001000100010401810001820100010401820001000100 +820100010701870001000100010001050187000100010001000107018700010001000100 +018201000106018300010001010181000103018900010001000100010001050187000100 +010001000105018a00010001000100010001008100010801810001050185000100010001 +0101830001000103018100010101810001020183000100010201850001000100010c0185 +000100010001080185000100010001100183000100010601830001000186010001000100 +018301000100850001000100010101810001810100020082010001840100010001020183 +000100018301000100810001070181000103018100010301810001820100010501830001 +0001020181000182010001810100810001 +3a0181000105018100018201000109018100010601810001860100010001000102018100 +010601820001000100820100010201020081010083000100010301810001840100010001 +050181000186010001000100010b01880001000100010001008100010101850001000100 +010401810001010189000100010001000100010101810001040181000184010001000103 +018500010001000101018900010001000100010001020185000100010001020182000100 +810001020101008201000102018700010001000100010301890001000100010001000107 +018700010001000100010501810001020187000100010001000102018100010101830001 +000101018100010501870001000100010001050187000100010001000105018100010301 +8700010001000100010b0183000100010101850001000100010101810001030181000102 +0182000100820001008100018a0100010001000100010001080183000100010b01810001 +0101810001020187000100010001000102018100010d0183000100018401000100018501 +000100010084000100010084000100010002008101008300010001060181000182010001 +0a0183000100010501830001000106018100010801 +260181000107010100840100010001060181000102018100010201850001000100018201 +000101018100010b01820001008600010001000100870001000100010001860100010001 +000102010400840100010001060185000100010001080187000100010001000181010081 +000101018300010001040181000108018500010001000103018100010301810001010187 +000100010001000181010083000100010301810001070181000101018500010001000105 +018100018201000103018200010085000100010001050185000100010001090187000100 +010001000105018700010001000100010601830001000184010001000107018100010101 +830001000101018100010501850001000100010701870001000100010001010181000101 +01850001000100010501850001000100018401000100010a018500010001000182010001 +0a018300010001030183000100018201000105018100018401000100010a018300010001 +0401810001040183000100018401000100010b0183000100010301840001000100010001 +018200010085000100010001020181000107018100018401000100010701810001820100 +010201810001840100010001050181000101018100010001 +280181000107018100010401810001020182000100810001020181000101018100010401 +810001020181000104018200010083000100010401810001010183000100018201000102 +01010081010001000a01850001000100010a018300010001090183000100010301850001 +000100010301890001000100010001000103018100010101850001000100010101830001 +00010b018100010101870001000100010001010181000101018600010001000100810001 +0201820001008700010001000100018a0100010001000100010001070187000100010001 +000105018700010001000100010a01830001000102018100010301810001010181000101 +018100010501810001010181000109018200010081000186010001000100010301010001 +0183000100010e0181000101018900010001000100010001840100010001030183000100 +018801000100010001000108018300010001020187000100010001000104018500010001 +000102018100010301830001000186010001000100018201000106018300010001840100 +010001060181000185010001000100840001000100840001000100830001000102018300 +010001820100010e01810001050181000102018100018201000184010001000182010001 +01018100010001 +1e0181000104018100018201000105018100010401810001820100010101810001020181 +000184010001000105018100010601810001010181000102018400010001008900010001 +000100010001860100010001000104018500010001000184010001000108018700010001 +000100010401810001010185000100010001020183000100010501850001000100010701 +830001000101018500010001000101018100010501810001010183000100010301830001 +0001010189000100010001000100010a0183000100018401000100010101810001090187 +000100010001000105018700010001000100010901870001000100010001040181000104 +018100010501810001010101008401000100010301890001000100010001000101018100 +010701830001000105018100018301000100010003018500010001000101018100010301 +850001000100010401820001008100018101008100010301850001000100018601000100 +01000103018100010201830001000101018500010001000182010001080183000100010b +018500010001000109018300010001840100010001050186000100010001008100010101 +81000184010001000105018200010083000100010501810001020181000104018100010e +0101000101 +1b0181000108018100010401810001840100010001820100010201810001040181000182 +010001040183000100010501830001000101018100018801000100010001000186010001 +000100018401000100010101810001020187000100010001000108018100018401000100 +010a01810001010181000104018300010001860100010001000101018100018201000101 +018300010001010187000100010001000107018300010001810100810001010101000501 +810001030181000109018100010101830001000101010200820100010401810001020187 +000100010001000105018700010001000100010901870001000100010001080183000100 +018201000105018100018401000100010901870001000100010001050181000101018300 +010001010181000105018900010001000100010001010181000103018100010101810001 +010183000100010501830001000184010001000101018200010002008201000108018500 +010001000101018100010801830001000102018100010101850001000100010201830001 +000184010001000108018100018401000100010b01830001000183010001008500010001 +000183010001000100010181000186010001000100010501810001050181000102018300 +0100010301830001000182010001020181000101018100010101 +040181000104018100010101830001000182010001070181000102018100010301830001 +0001050184000100010081000104018100010501830001000104018100010b0185000100 +010001840100010001060183000100018401000100010601890001000100010001000106 +018500010001000184010001000103018700010001000100010101810001030183000100 +018201000103018500010001000107018300010001840100010001070181000104018100 +010101830001000101018900010001000100010001010181000103018100010601020001 +018300010001050187000100010001000109018700010001000100010701870001000100 +010001020181000104018500010001000104018700010001000100010901890001000100 +010001000103018100010101870001000100010001010187000100010001000103018100 +010101810001010181000103018500010001000105018300010001820100010601870001 +000100010001060189000100010001000100018201000110018300010001810100810001 +030183000100018401000100010601830001000186010001000100010901010082010001 +040181000186010001000100018201000186010001000100010301810001020181000104 +018100010801810001820100018201000182010001 +070181000182010001070181000105018100010701810001050183000100010201810001 +050181000102018100018401000100010201830001000102018100010401850001000100 +010401830001000186010001000100018201000105018100018401000100010801870001 +000100010001060187000100010001000105018900010001000100010001010183000100 +018601000100010001030183000100018401000100010701870001000100010001010181 +000101018100018201000103018100010701830001000101018300010001010187000100 +010001000102018100018801000100010001000109018700010001000100010701870001 +000100010001050181000110018300010001070189000100010001000100010901870001 +000100010001040101008201000103018100010101830001000101018100010101810001 +010183000100010101890001000100010001000182010001010184000100010083000100 +010701830001000184010001000105018100018a01000100010001000100010301810001 +860100010001000186010001000100018201000106018500010001000182010001080181 +000184010001000104018100018401000100018401000100010701810001820100010701 +810001020183000100010301830001000184010001000104018100010201 +050181000102018100010301830001000105018400010001008100018401000100018401 +00010001820100010701830001000182010001020181000107018100010b018100010401 +870001000100010001090187000100010001000109018500010001000106018900010001 +000100010001030183000100018401000100018201000105018100010101810001020181 +000102018300010001070187000100010001000101018100010301830001000101018300 +010001010183000100018201000181010083000100010301810001030181000104010100 +820100010101810001070189000100010001000100010701870001000100010001050187 +000100010001000116018700010001000100010901870001000100010001010181000105 +01830001000101018100010101830001000101018100010b010100030181000105018100 +010201010082010001020181000102018700010001000100010801870001000100010001 +0c018100010d018100010201870001000100010001070185000100010001820100010601 +810001820100010401810001020182000100850001000100010a01810001020181000104 +018100010b01810001030101000001 +820100010d018100018401000100018201000102018100018401000100010a0183000100 +018201000104018100010101810001120183000100010401830001000106018400010001 +008500010001000106018700010001000100010401870001000100010001820100010301 +810001010183000100010401840001000100810001020101000501830001000108018700 +010001000100010101810001030181000101018300010001020101008201000107018100 +010801810001030181000101018200010002008201000104018700010001000100010701 +8900010001000100010001050181000101018300010001050183000100010e0181000103 +018100010501870001000100010001090181000101018300010001010181000183010001 +008900010001000100010001010181000104018300010001030183000100010101810001 +820100010101830001000102018300010001010181000108018700010001000100010801 +830001000184010001000105018500010001000183010001000100030181000104018100 +010101810001840100010001090181000102018100010401830001000184010001000182 +010001010181000103018300010001070181000102018300010001030183000100018201 +00018201000108010000 +840100010001010183000100018201000182010001070181000181010081000109018300 +010001820100010401810001840100010001070181000105018100010401810001060181 +000103018100018401000100018401000100010501810001840100010001060185000100 +010001060181000101018300010001060185000100010001040181000182010001030181 +000182010001030187000100010001000101018100010301810001010183000100010301 +850001000100010301850001000100010301880001000100010001008100010701810001 +040102008301000100810001090185000100010001070181000101018300010001010181 +000101018700010001000100011401830001000101018100010301810001050187000100 +0100010001090181000101018100010b0181000186010001000100010301830001000103 +018100010101810001840100010001810100820001008100010501830001000184010001 +00010701850001000100010d018300010001080181000101018100010201830001000102 +018100010401850001000100018401000100010201810001020183000100010401830001 +0001030183000100010c0181000102018100010501830001000184010001000103018100 +01820100010401 +06018100018201000105018300010001820100010a018300010001080183000100010501 +840001000100010004018300010001020181000182010001020183000100010501810001 +070187000100010001000102018100010101830001000184010001000108018300010001 +050185000100010001820100010301860001000100010081000186010001000100010101 +810001020181000101018100010301810001010183000100010301870001000100010001 +030181000181010085000100010001010181000103018100010101840001000100810001 +010183000100010101820001008100010501810001020187000100010001000105018100 +0103018100010101810001010187000100010001000103018700010001000100010e0183 +000100010101870001000100010001010183000100010101810001050189000100010001 +000100010601010086010001000100010101830001000104018100010101810001010187 +000100010001000101018100010101810001050189000100010001000100010301810001 +860100010001000106018700010001000100010701810001850100010001008500010001 +000102018500010001000104018300010001020181000106018100018401000100010401 +830001000182010001010181000102018100018201000186010001000100010501810001 +020183000100010b018100018201000182010001840100010001 +010181000182010001020181000184010001000105018100010301020001018100010201 +830001000184010001000184010001000184010001000119018100010c01830001000184 +010001000106018500010001000108018100010801870001000100010001040187000100 +01000100010d018300010001060181000101018300010001030187000100010001000109 +018100010201010002018300010001070181000106018300010001010181000104018500 +01000100010101010006018100010101830001000101018b000100010001000100010001 +050185000100010001160183000100010501810001010183000100010101810001010185 +000100010001070187000100010001000182010001060101000601850001000100010101 +810001070181000104018100010101810001840100010001050187000100010001000104 +01870001000100010001060181000101018100010d018100010101810001820100010101 +830001000184010001000104018300010001840100010001040183000100018201000104 +018300010001840100010001020181000114018300010001820100018201000108018100 +0182010001 +010181000182010001820100010801830001000184010001000105018100018201000101 +018100018201000182010001090181000183010001008100011c01010007018500010001 +000104010300840100010001060181000103018100010301810001860100010001000107 +018100018601000100010001840100010001010185000100010001820100010501850001 +000100010301810001030187000100010001000107018100010901850001000100010f01 +810001010181000101018100010301010082010001010181000101018700010001000100 +010301890001000100010001000109018300010001120187000100010001000105018100 +010101830001000101018100010101850001000100010601820001008900010001000100 +010001810100810001820100010301810001030187000100010001000101018100010401 +810001060181000101018300010001050181000184010001000105018300010001840100 +010001050187000100010001000105018100010301810001020181000104018300010001 +090183000100018401000100010201830001000184010001000105018300010001810100 +8100010a01810001820100010a01810001820100010801 +8100010a0181000182010001080183000100018201000102018100018401000100010501 +8300010001840100010001110183000100010d0101000201850001000100010201050082 +0100011401810001840100010001070187000100010001000107018100010c0187000100 +010001000101018100010301810001010183000100010401010084010001000182010001 +0201810001030183000100010b0183000100010201810001060181000101018100010401 +8700010001000100010501850001000100010b018700010001000100011e018900010001 +000100010001030181000101018700010001000100010101820001008100010801810001 +010101000c01810001070181000103010100020185000100010001020181000103018100 +010101830001000104018700010001000100010801830001000105010100860100010001 +000182010001040181000101018100010401830001000186010001000100010901810001 +020183000100010201810001820100010801810001050181000105018100010201810001 +020181000104018300010001820100010001 +020181000181010085000100010001820100010301830001000182010001020183000100 +018201000102018300010001840100010001020181000105018300010001820100010201 +810001020181000113010100810100020002018100010801830001000117018700010001 +000100010801870001000100010001010188000100010001000100810001080181000102 +018300010001030187000100010001000109018300010001020181000105018500010001 +0001010181000109018e0001000100010001000100010001008100010301890001000100 +010001000107018900010001000100010001050183000100010601810001070187000100 +01000100010d018500010001000109010100820100010101870001000100010001080181 +000109018300010001010181000108018100010601870001000100010001020181000103 +018700010001000100010401850001000100010501850001000100010101830001000106 +01850001000100010401810001820100010101810001070185000100010001820100010e +018300010001830100010081000103018100010c01810001020181000106018100010601 + +820100018201000105018300010001820100010501830001000108018100010901810001 +840100010001820100010301810001020181000112018300010001820100010601020001 +010200010183000100010101810001110185000100010001080187000100010001000103 +018300010001010181000105018100010201870001000100010001030187000100010001 +000107018900010001000100010001020183000100010201010006018300010001010181 +00010401810001840100010001030181000103018200010083000100010b018500010001 +0001050185000100010001010181000102018100010f0185000100010001010189000100 +010001000100010901820001008300010001010181000103018100010101810001010182 +000100010082010001040183000100010101810001110101000101850001000100010801 +850001000100010901810001020181000107018500010001000184010001000102018100 +010101810001820100010301810001840100010001060183000100010c01850001000100 +0102018100018201000102018100010d01810001130181000103018300010001810100 +010183000100018101000100040183000100018201000182010001050104000601810001 +840100010001020101000401810001840100010001180181000183010001000200820100 +01070183000100011d018300010001840100010001070183000100010701850001000100 +010101810001060185000100010001050189000100010001000100010701810001010101 +00030183000100010a018100010301810001070183000100010101830001000108018900 +010001000100010001030185000100010001050186000100010001008100011901830001 +000101018100010101840001000100830001000107018100010101830001000105018100 +010301810001030181000116018300010001090187000100010001000106018700010001 +000100010301810001020183000100010101830001000105010100820100010201810001 +040187000100010001000102018300010001820100010801810001820100010901850001 +000100018201000102018300010001820100010801810001820100010201810001020181 +000102010200820100010501810001 +040183000100018401000100010601820001008500010001000108018200010081000182 +01000103010200010183000100010101820001008100010d018100018201000101018300 +010001810100010082010001030183000100010a0181000113018500010001000104018b +000100010001000100010001050181000101018100010501830001000186010001000100 +0103018700010001000100010b0187000100010001000102018100018201000116010100 +010183000100010301810001070182000100810001050185000100010001070185000100 +0100011a0185000100010001050181000101018700010001000100010201830001000103 +01810001050181000101018700010001000100010101830001000108018100010e018300 +010001020183000100010901870001000100010001060187000100010001000106018100 +01010185000100010001040181000186010001000100010d01830001000112018100010c +01830001000107018100010e0181000105018100010401810001840100010001 +010181000106018200010085000100010001820100010701010081010001000601840001 +000100010003010400830100010082000100810001050181000106018200010001000201 +810001010181000109018300010001820100010101850001000100011501850001000100 +010901830001000184010001000103010100840100010001820100010301870001000100 +01000107018d000100010001000100010001000103010100010181000118018100010d01 +870001000100010001020187000100010001000105018700010001000100010701810001 +01010100820100011501890001000100010001000106018b000100010001000100010001 +010185000100010001820100010801810001020181000109018100010401810001820100 +0101018100010101810001820100010201850001000100010b0183000100010a01810001 +050183000100018201000101010100040181000104018300010001880100010001000100 +011a018100010401830001000184010001000104018100011a0183000100010801 +030101000101010082010001030181000181010001008101008200010002000301810001 +810100010081010081000182010001030102000701010084010001000184010001000101 +018200010087000100010001000101018100010201830001000101018100010201890001 +000100010001000182010001010181000111018300010001070187000100010001000104 +01850001000100010d018100010701870001000100010001030181000103018100010101 +850001000100010101810001010185000100010001010181000104018100010301810001 +010184000100010001008101000100820100010301850001000100010401890001000100 +010001000107018700010001000100010101810001140187000100010001000107010100 +820100010901870001000100010001030181000101018500010001000108018100010101 +810001040181000101018100010201850001000100010d018b0001000100010001000100 +010201810001820100018a01000100010001000100010b01810001030183000100010201 +01000301810001060183000100011c018100011001810001120181000101018300010001 +02018100018401000100010001 +010082010001010181000102018200010082000100010086010001000100018201000101 +010100840100010001020181000184010001000182010001020183000100018401000100 +018201000103018100018101000300040185000100010001840100010001030181000102 +0102000401810001820100011b0187000100010001000106018500010001000107018900 +0100010001000100010501850001000100010301810001030181000101018b0001000100 +010001000100010201810001040181000101018100010a01810001010181000109018700 +0100010001000103018400010001008100010b0185000100010001070182000100850001 +00010001170184000100010081000105018b000100010001000100010001050183000100 +01810100810001010181000101018300010001840100010001010181000101018100010d +018300010001810100010088010001000100010001010181000104018100010101870001 +0001000100010e0189000100010001000100018401000100018401000100010401810001 +010183000100010601810001820100011901830001000182010001020185000100010001 +020181000105010100100181000105018100010001 +030103008401000100010101810001040183000100018201000182010001050185000100 +010001020181000103018100010601830001000184010001000181010081000101018100 +018401000100018201000101018100010201010082010001030103000301810001830100 +010083000100018101008300010001030181000107018300010001030185000100010001 +84010001000103018d000100010001000100010001000106010100820100010101810001 +04018100018c010001000100010001000100010501830001000181010081000101018100 +010101810001010181000101018200010083000100010101810001010186000100010001 +008100010601850001000100010801890001000100010001000103018900010001000100 +010001180185000100010001080187000100010001000109018700010001000100010201 +8100018a0100010001000100010001040181000101010100040185000100010001010181 +000102010100010101000201870001000100010001010183000100010801810001010187 +000100010001000105018100010901810001060185000100010001060181000184010001 +000108018100010101810001030181000104018200010081000106018100010601010003 +0102000b0101000301010002010100820100010301 +810100810001070181000182010001840100010001070181000184010001000182010001 +020183000100010201810001050183000100010301010001018300010001810100010001 +018100010101810001820100010101830001000182010001820100010701890001000100 +010001000181010081000106018100010101810001020101000101850001000100010601 +8700010001000100010d01850001000100010401830001000101018b0001000100010001 +000100010701010082010001040181000104018100010101850001000100010101820001 +008300010001010181000103018600010001000100010082010001030181000103010100 +820100010701850001000100010b01010084010001000115018400010001008300010001 +0701890001000100010001000107018100010d0101008101008100018201000102018300 +0100010301830001000105018100018101008500010001000105018b0001000100010001 +000100018201000105018300010001020181000104018700010001000100018201000184 +010001000108018100018101000100820100010301010010018100018401000100010201 +830001000105018100010101010082010001010101000501020081010001008201000108 +01810001840100010001820100010101 +0601810001820100010a0183000100018201000104018100010301830001000105018200 +010001000101830001000181010001000501810001070181000182010001070101008201 +000103018100018401000100010a01830001000105018100010601830001000102018200 +010001008201000107018700010001000100018401000100010101810001010181000101 +01810001010187000100010001000107018700010001000100010a018100010101810001 +010181000105018100010601810001010183000100010401810001010181000184010001 +0001010183000100010201890001000100010001000105018c0001000100010001000100 +010081000113018500010001000108018700010001000100010901850001000100010101 +810001820100010201840001000100810001040181000101018100010501830001000103 +018300010001840100010001060187000100010001000105018300010001810100810001 +8601000100010001010181000105018100010f0184000100010083000100010701010082 +010001010181000182010001010181000184010001000106010300010184000100010081 +00010401810001040181000104018100010a010100030181000183010001008100010401 +810001 +830001000182010001040101008201000182010001810100810001010183000100018301 +000100810001040181000185010001000100850001000100010c01840001000100020082 +010001020183000100018501000100010002008201000101018300010001030181000184 +010001000188010001000100010001060181000105018100010201840001000100010082 +010001010187000100010001000103010100010101000201810001010181000105018100 +010101810001010189000100010001000100010901870001000100010001040183000100 +010101810001010181000105010100020183000100010101860001000100010081000182 +010001040101008601000100010001050101008e01000100010001000100010001000103 +01810001840100010001820100010c018600010001000100020086010001000100010501 +8700010001000100010501830001000109018100010401820001008b0001000100010001 +00010001050181000101018100018201000101018100010c018700010001000100010601 +850001000100010301820001008100010201870001000100010001830100010085000100 +010001060182000100010081010081000103018100010f01030001010200820100018201 +000104018500010001000184010001000182010001040181000105018100010301810001 +07018100018201000182010001 +010005018200010081000101010100840100010001010181000107018300010001860100 +010001000108018300010001040182000100810001030181000103018100018501000100 +010081000101018100010101810001010181000182010001010184000100010081000105 +018100010101810001860100010001000104018300010001010183000100010101870001 +000100010001010181000182010001010102008c01000100010001000100010001020102 +000101040082010001020101000501010085010001000100810001020182000100010085 +010001000100830001000101010100010185000100010001020182000100810001820100 +0101018100010401010086010001000100010501820001008d0001000100010001000100 +010001040181000102018100018201000101018100010801810001040181000103010100 +8d0100010001000100010001000100010005010100880100010001000100010801850001 +000100010201810001010181000101018100010301850001000100010101840001000100 +81000101018b0001000100010001000100010a0185000100010001060187000100010001 +000102018300010001080182000100810001810100010084010001000107018300010001 +1301020004018300010001820100010d0181000184010001000102018100010501810001 +8101008300010001820100010a01 +810001810100820001000100030101000501830001000181010084000100010085000100 +010001840100010001820100018601000100010001820100018601000100010001020183 +0001000185010001000100840001000100820001008a0001000100010001000100020086 +010001000100018901000100010001000100020088010001000100010001030181000182 +01000107018300010001020102008101008100018201000101018a000100010001000100 +010001008201000101018300010001010189000100010001000100018101008600010001 +000100010004010200840100010001820100018201000101018300010001830100010001 +008b01000100010001000100010081000101018e00010001000100010001000100010083 +000100018101000100870100010001000100840001000100810001020181000101018d00 +010001000100010001000100018201000102018100010301010086010001000100010101 +830001000186010001000100010101840001000100010002018200010001008201000101 +018300010001820100018101008100010301810001010181000182010001010181000101 +018100018101008300010001010102008401000100018201000107018300010001010183 +000100018301000100010005018100018301000100010084010001000101018300010001 +010187000100010001000101010200020181000106018100018601000100010001040181 +00010f018100010101010082010001030181000101018100018801000100010001000182 +010001010181000184010001000184010001000182010001810100810001050183000100 +01840100010001820100010001 +010181000182010001020101008101008200010084000100010083000100010201810001 +820100018401000100010401010084010001000182010001040181000184010001000184 +010001000101018100010301830001000181010001008201000108018300010001010181 +000188010001000100010001020181000103018100018101000100820100010101850001 +00010001810100010081010001008201000101018b000100010001000100010001070187 +000100010001000101018100010101810001010192000100010001000100010001000100 +010001008600010001000100050081010001000101860001000100010001008501000100 +010086000100010001000100860100010001000184010001000181010084000100010001 +008101000500020102000101020089010001000100010001008200010001008501000100 +010083000100010101830001000108018300010001820100010101860001000100010083 +000100010101050081010001008101008400010001000200820100010401880001000100 +010001008100010101040081010082000100010082010001020183000100010101820001 +008300010001830100010084000100010083000100010301040082010001820100010101 +810001010101000601810001010182000100010081010001008201000101018100018401 +0001000182010001030185000100010001050181000106018100010b0187000100010001 +000106010100030181000104018300010001820100018201000105018100018201000181 +010081000104018100010001 +820100018201000102018100018201000104018100018201000184010001000102018300 +010001820100018401000100018401000100018501000100010083000100010201830001 +000185010001000100840001000100810001010183000100018201000101010100880100 +010001000100018101000100020184000100010001000101850001000100010101010002 +018100010101850001000100010601a10001000100010001000100010001000100010001 +000100010001000100010001000101019500010001000100010001000100010001000100 +010001010186000100010001000400020182000100010001010100810100860001000100 +010002008301000100010002018200010002008101000300830100010001008101000100 +0501010083010001000100010101008101008a0001000100010001000100010001018600 +01000100010001000501820001008a000100010001000100010085000100010001010181 +000101010900830100010083000100010101040001010600860100010001000182010001 +010181000103018300010001820100010101810001820100010201810001820100010201 +840001000100820001000100010104008401000100018101000100830100010001008101 +008100010101830001000104018300010001820100010301810001810100010084010001 +000186010001000100010301810001820100010601810001070183000100018101000100 +820100010501810001010102000301810001020183000100018201000108018100018401 +0001000105018100018201000102010000 +0b0181000102018100010801830001000184010001000184010001000182010001020181 +000107018500010001000104018100010101810001030181000186010001000100018201 +000101018100010101810001840100010001010181000108018300010001010181000111 +018700010001000100010301880001000100010001008100010501820001008100010401 +820001008400010001008300010001820100010301870001000100010001010184000100 +010081000101010400810100010081010002008701000100010001000100830100010087 +000100010001000101018100018101000100830100010001000201010081010002000101 +010081010082000100010082010001010181000101018100010101820001000100810100 +850001000100018601000100010001010181000106018200010081000101018900010001 +000100010001030101000101020088010001000100010001010102008101008300010001 +0101880001000100010001000100810100020081010082000100070081010002008c0100 +01000100010001000100018101000a008301000100020001018400010001008100018101 +000200890100010001000100010082000100030086010001000100010201010001018200 +010002000101810001810100830001000101018100018401000100010201820001000100 +810100810001020182000100010081010005008201000184010001000181010001000301 +810001840100010001820100010201810001820100018101008400010001008300010001 +82010001810100 +0e018100010201810001820100018201000104018100010a018100010201850001000100 +0109018100010201810001010101000a0183000100010201810001010181000101018100 +010101810001860100010001000104018100010101810001140187000100010001000108 +018900010001000100010001010183000100010101810001820100010401820001000100 +820100010801860001000100010001000501810001820100010201010082010001010181 +000184010001000103018100018101000100810100810001020181000101018200010081 +000182010001810100020089010001000100010001000200890100010001000100010084 +000100010001008301000100890001000100010001000189010001000100010001008100 +010101880001000100010001008200010003000101010001018200010086000100010001 +000100020183000100010101810001810100820001008300010001010181000102018100 +018201000101018100010201010081010001008201000101010100850100010001008100 +010a01850001000100018101008100010201850001000100010201810001070181000108 +018200010004000501050002018300010001040183000100010301810001020102000101 +010007018100018201000186010001000100018301000100830001000102018100010201 +020082010001840100010001020181000103018300010001 +0c0183000100018201000102018100010501810001020181000182010001020185000100 +010001070183000100018401000100010201830001000105018300010001840100010001 +040181000101018100010101810001010181000102018100010401010003018300010001 +0f0101008201000106018900010001000100010001050183000100010101810001010181 +000103018500010001000101018500010001000181010002008301000100830001000103 +018500010001000184010001000190010001000100010001000100010001000181010001 +008401000100018101000200810100020087010001000100010001008201000184010001 +0001830100010002000a0184000100010001000101810001820100010801810001050182 +000100850001000100010401010085010001000100810001020183000100010101020081 +010082000100010081010001008601000100010001010102008101000600010106008101 +008200010002000301830001000101018400010001008400010001000200020185000100 +010001810100820001000100040182000100820001008100018401000100010301820001 +000100810100850001000100010301030084010001000102018100010101810001840100 +010001040184000100010085000100010001820100010101040082010001860100010001 +000186010001000100018201000183010001000100010181000183010001008300010001 +82010001820100018301000100850001000100010001 +140181000102018100018201000102018300010001840100010001050183000100018401 +000100010701830001000104010100840100010001070183000100010101850001000100 +010a01810001840100010001010183000100011601810001860100010001000105018700 +010001000100010501830001000101018100010301810001010185000100010001010181 +000105018600010001000100830001000109018200010082000100810001040183000100 +010101810001010183000100010501010001018100018401000100010101020088010001 +000100010001030101008801000100010001000104010200830100010083000100010101 +83000100010201830001000102018b000100010001000100010001020183000100018301 +000100020082010001820100018201000103018100010101830001000101018300010001 +020101000601810001820100018201000103018100010101830001000104018700010001 +000100010601870001000100010001020181000102018200010001000101810001820100 +010701010006010100840100010001820100010401810001010183000100018401000100 +010401820001008100010301810001010181000182010001860100010001000182010001 +820100018601000100010001860100010001000182010001820100018201000103018100 +01020183000100018301000100010004018100010001 +0c0181000182010001820100010201810001840100010001820100010401810001840100 +010001820100010601810001860100010001000105018300010001840100010001020181 +000184010001000103018100010601810001810100830001000102018300010001010181 +000104018100011001830001000105018700010001000100010301870001000100010001 +010185000100010001010181000103018100010501890001000100010001000105018200 +010085000100010001030181000103018100010101810001010184000100010081000101 +018100010201810001840100010001030101008601000100010001050181000101010100 +840100010001050181000101018500010001000102010200050181000104018100010201 +870001000100010001010181000101018700010001000100010801870001000100010001 +090185000100010001820100010201850001000100010101830001000101018200010002 +000101840001000100830001000182010001040102008101000100820100010401890001 +000100010001000182010001050183000100010301810001010181000182010001010183 +000100010201870001000100010001820100011801850001000100018201000101018100 +018401000100010101810001820100010101810001820100010401810001840100010001 +01018200010001000a0183000100010301 +120181000182010001040181000182010001840100010001070183000100018401000100 +010401810001840100010001820100010401810001860100010001000182010001020102 +000201870001000100010001010181000101018100010401850001000100018201000114 +018700010001000100010301870001000100010001050181000107018100010101810001 +010187000100010001000109018a00010001000100010001008100010201810001020183 +000100010101810001010181000106018100010101820001008200010089000100010001 +000100010401870001000100010001010183000100010401870001000100010001010186 +000100010001008100010101810001100181000101018100010101870001000100010001 +050101008801000100010001000105018100010301850001000100010501830001000105 +01830001000182010001010181000105018100018101008f000100010001000100010001 +000100010501810001810100810001820100010501830001000186010001000100010101 +820001008100018801000100010001000104018500010001000182010001010183000100 +018101008100010e01850001000100010701820001008100018201000184010001000102 +018300010001020183000100010201810001810100010005018100018401000100010801 +8100010001 +0b0102000101810001020181000184010001000107018100018401000100018201000104 +018100018601000100010001090181000185010001000100830001000182010001010181 +000182010001010183000100010101810001010181000102018700010001000100010801 +810001140189000100010001000100010501870001000100010001030181000184010001 +000104018100010701890001000100010001000101018300010001090181000193010001 +000100010001000100010001000100010081000101018500010001000107018300010001 +840100010001030181000103018100010101010082010001010183000100010101810001 +030182000100830001000114018100010101870001000100010001010185000100010001 +060181000101018900010001000100010001070101000201810001020186000100010001 +008300010001010187000100010001000184010001000106018700010001000100010101 +830001000101018100010601850001000100010801830001000101018100010a01850001 +000100010601810001010181000119018500010001000107018100010101830001000104 +018100010501810001060183000100018201000105018300010001820100010301 +100181000182010001070181000184010001000107018100018401000100010901830001 +000184010001000104018100010801810001030183000100010201810001010183000100 +010c01850001000100010a01810001070181000107018700010001000100010c01810001 +03018200010081000183010001008d000100010001000100010001000101018100010301 +8b0001000100010001000100010401830001000107018300010001880100010001000100 +018101008500010001000101018100018201000103018100010101880001000100010001 +008100010101810001030187000100010001000119018100010101810001070183000100 +010101810001860100010001000101018100010b01830001000107018300010001010183 +000100010401810001050181000181010081000181010087000100010001000105018700 +01000100010001010187000100010001000104018500010001000106018b000100010001 +000100010001080185000100010001020181000116018100010901850001000100010101 +810001020185000100010001020181000184010001000183010001000100030181000102 +01810001820100010701810001810100 +0e0181000102018100018201000184010001000102018100010201810001840100010001 +07018300010001840100010001040181000102018300010001050183000100018a010001 +000100010001000186010001000100010201810001860100010001000184010001000101 +018100010101830001000112018700010001000100010a01930001000100010001000100 +0100010001000100018a0100010001000100010001030181000101018700010001000100 +010101850001000100010401830001000103018700010001000100010301010006018100 +010301810001010181000102018b00010001000100010001000106018700010001000100 +010901010084010001000112018100010101870001000100010001030181000188010001 +000100010001030185000100010001010181000101018100018701000100010001008100 +01010181000101018100018e010001000100010001000100010001020183000100010801 +870001000100010001050187000100010001000101018700010001000100010101810001 +87010001000100010001000701850001000100010801810001020181000103018100010b +01810001020185000100010001820100010a018100010101810001030185000100010001 +8201000182010001030181000102018100010501830001000182010001820100010101 +0c018100018401000100010a018100010201810001070183000100018201000104018100 +010201830001000102018100010101810001820100010501830001000108018100010101 +83000100010201810001050185000100010001010181000102018100010f018100010801 +890001000100010001000103019100010001000100010001000100010001000104018100 +018301000100810001010181000101018700010001000100010501830001000184010001 +000184010001000102018900010001000100010001820100010101810001810100830001 +0001010183000100018601000100010001070184000100010081000107018b0001000100 +010001000100011301850001000100010901840001000100810001070187000100010001 +000101018200010081000101018100010301830001000182010001010181000182010001 +010183000100010301810001010181000103018900010001000100010001030181000101 +018700010001000100010501870001000100010001040183000100010101810001010187 +000100010001000182010001030183000100018601000100010001180181000102018100 +010401830001000182010001820100010201810001020183000100018201000104018100 +0182010001010183000100010201810001820100010a01810001 +140181000184010001000182010001020183000100018401000100018201000101018100 +010301830001000102018100010101830001000184010001000102018100010201810001 +050183000100010101810001070183000100018201000101018100010801830001000182 +010001110187000100010001000105018700010001000100010101830001000103018300 +010001020181000184010001000105010100840100010001070189000100010001000100 +010201810001040101008201000103018400010001008700010001000100010101870001 +000100010001040189000100010001000100010601870001000100010001010181000106 +01850001000100010e0181000103018b0001000100010001000100010401890001000100 +010001000103018600010001000100820001008100018401000100010201840001000100 +830001000101018100010301830001000101018100010101010003010100050183000100 +010101810001030181000101018700010001000100010701010004018100010201010009 +018700010001000100010601830001000111018100018201000104018300010001060181 +000101018100018601000100010001050183000100010b01810001820100018401000100 +018401000100018201000182010001 +0d0181000102018100010701810001820100010401810001050181000101018100010201 +830001000184010001000102018300010001840100010001070181000102018500010001 +00010201870001000100010001050187000100010001000108018100010d018100018201 +000107018500010001000101018700010001000100010301830001000103018300010001 +030187000100010001000105010100860100010001000107018100010101020086010001 +000100010201830001000103018100018401000100010101810001090101000801860001 +000100010081000101018100010301810001010185000100010001860100010001000110 +018300010001010181000107010100860100010001000105018300010001010181000101 +018100010201870001000100010001040181000188010001000100010001030185000100 +010001040181000103018700010001000100010301830001000102018100010301810001 +0101850001000100010401010003018f0001000100010001000100010001000106018500 +010001000182010001110181000104018300010001860100010001000182010001030181 +000108018100018401000100010201020003018300010001820100010701810001820100 +01820100010201 +100183000100018401000100018401000100010501810001020183000100018601000100 +0100018201000104018100018401000100010b0182000100840001000100810001030181 +00018201000101018100010301850001000100010c01830001000101018100010c018100 +0101018f0001000100010001000100010001000105018700010001000100018801000100 +01000100010201810001050187000100010001000108018b000100010001000100010001 +820100010601820001008100010301810001010181000102018b00010001000100010001 +000104018700010001000100010301810001060183000100010101860001000100010081 +000114018700010001000100010101860001000100010081000103018100010101870001 +000100010001040181000101018500010001000106018300010001820100010501850001 +000100018201000101018100018101000200860100010001000105018900010001000100 +010001010183000100010201810001080181000102018100010201810001030189000100 +010001000100018201000101018300010001040181000111018300010001090183000100 +018101008100018a01000100010001000100018201000104018100010e01810001840100 +0100018201000105018100010001 +01018100010a018300010001820100010901810001840100010001860100010001000105 +018300010001840100010001070185000100010001840100010001020181000102018100 +018401000100010301810001010185000100010001030181000182010001010181000108 +0101000f0189000100010001000100010501870001000100010001050181000107018b00 +010001000100010001000105018600010001000100850001000100010301810001020101 +008c01000100010001000100010001860100010001000102018500010001000107018100 +0101010100040181000101018300010001010101008a0100010001000100010001080185 +000100010001140187000100010001000104018300010001010181000103018100010101 +820001008300010001810100810001030185000100010001030181000101018500010001 +000182010001010181000101018100010d01890001000100010001000105018700010001 +000100010201830001000105018300010001010185000100010001820100010701840001 +000100810001030185000100010001010181000107018100010101810001040181000186 +010001000100010601810001010181000102018100010401830001000103010100030181 +00018401000100010a01810001820100018301000100 +010181000103018100010c01830001000184010001000184010001000105018500010001 +000182010001090185000100010001820100010101810001820100010101810001820100 +018201000102018100010101830001000101018100010201810001840100010001090102 +0084010001000101018100010d0181000105018100018301000100830001000107018100 +018c01000100010001000100010001820100010501870001000100010001030181000106 +018700010001000100018101000200820100010101810001060181000101018200010081 +000103018e00010001000100010001000100010083000100010101810001010186000100 +010001008100010101810001050184000100010081000114018300010001050181000101 +018200010085000100010001030183000100010101810001020181000102010100860100 +010001000104010100020181000101018200010081000101018100010101810001010181 +000181010089000100010001000100010501810001010187000100010001000105018500 +010001000104018100010301830001000101018500010001000186010001000100010601 +8700010001000100010a0181000104018100018601000100010001070181000105018100 +010101810001020183000100018201000101018100010201020001018100010501830001 +0001820100010b01 +02018100010c018300010001840100010001050183000100018401000100010a01850001 +000100018201000101018100018201000101018100010401810001820100010201810001 +820100010101810001040181000101018100010101810001010185000100010001060181 +0001030102001101870001000100010001020181000102018a0001000100010001000100 +010008018100018601000100010001030181000101018300010001010186000100010001 +008300010001020181000102018100010101850001000100010101010002018100010101 +810001860100010001000101018500010001000106018700010001000100010301810001 +06018500010001000104018700010001000100010e018100010101850001000100010101 +810001020181000103018a00010001000100010001008300010001010181000181010081 +00010101810001010183000100010301810001010181000104018d000100010001000100 +01000100010101850001000100010101850001000100010b018700010001000100010a01 +830001000103018100010301810001020189000100010001000100018201000107018100 +01030181000110018100018c010001000100010001000100010201850001000100018401 +00010001020183000100010c0183000100010501830001000182010001820100010101 +060183000100010e018300010001820100010c0185000100010001050185000100010001 +040181000186010001000100010301010008018100018801000100010001000101018100 +010c0183000100018101008700010001000100010a018100010701810001010183000100 +0103018100010b0187000100010001000104018100010101830001000101018100010101 +870001000100010001060183000100018101008100010101830001000101018600010001 +000100810001010181000101018100010201830001000105018400010001008100010301 +810001070101008201000101018b00010001000100010001000109018100010201830001 +000104018700010001000100010201830001000101018300010001010181000106018500 +010001000182010001820100010101810001050183000100010101810001860100010001 +000103018100010f01870001000100010001010189000100010001000100010301810001 +010183000100010201810001840100010001880100010001000100010301810001040181 +000101018700010001000100018201000103018100010501810001030181000101018300 +010001820100010c01810001040181000104018100010201810001010181000184010001 +00018401000100010301810001020183000100010501810001 +020181000104018300010001020181000103018100010801830001000186010001000100 +010201810001020183000100010501850001000100010b01810001820100018601000100 +010001040181000103018100010201810001870100010001000100010001018300010001 +050181000102018300010001050181000101018300010001030187000100010001000101 +018b00010001000100010001000182010001020183000100010101810001820100010101 +870001000100010001070184000100010081000104018100010601810001050101008601 +0001000100018c0100010001000100010001000105018100010201810001010188000100 +01000100010081000101018100010501840001000100870001000100010001820100010b +018500010001000103018200010085000100010001030181000101018300010001010181 +000104018100010101810001010185000100010001820100010201820001008300010001 +030183000100010101860001000100010081000186010001000100010701870001000100 +01000103018300010001010181000101018100010201810001820100010a018900010001 +000100010001020181000103018300010001110181000102018500010001000102018500 +010001000186010001000100010101830001000102018300010001020181000182010001 +0401810001070184000100010081000105018100010201810001 +810001820100010101810001020181000101018100010101010006018300010001050181 +000102018300010001040181000186010001000100010701850001000100018401000100 +0107018100018601000100010001020101000301810001040181000106018b0001000100 +010001000100010301040084010001000102018700010001000100010501830001000109 +018100010201010008018200010081000105018900010001000100010001050182000100 +8100010101870001000100010001010185000100010001020181000103018100010c0183 +000100018c0100010001000100010001000108018700010001000100010d018300010001 +020183000100018201000105018700010001000100010401890001000100010001000181 +010081000184010001000102018100010201810001030181000103018100010201810001 +010189000100010001000100010301810001820100018201000103018200010081000181 +010081000106018700010001000100010301810001050181000101018900010001000100 +010001840100010001050181000186010001000100010701810001090181000102018100 +010501810001070181000103018100010301810001040181000182010001030102000201 +83000100018401000100010501810001850100010001008100010201 +020181000102018100010701870001000100010001820100010401810001820100010401 +830001000184010001000109018300010001820100010601830001000184010001000182 +010001060181000182010001030181000101018200010081000102018200010003008201 +000103018100018201000182010001010181000104018100010501890001000100010001 +000103018900010001000100010001020181000103018100010801010001010100080187 +000100010001000102018100018201000103018100018201000101018100010101830001 +000184010001000101010100860100010001000105018400010001008100010701840001 +000100830001000107018100010101010086010001000100010301830001000101018300 +0200028402000200028402010201028b0201020100020002000100010701810001840100 +010001010183000100010101810001010183000100010301840001000100810001010181 +000107018600010001000100810001030187000100010001000105018700010001000100 +010601870001000100010001050181000101018300010001010181000104018700010001 +00010001060183000100010f018700010001000100018601000100010001080183000100 +0102018300010001010181000182010001040181000104018100010a0183000100018201 +000107018100010001 +820100010301010001018300010001820100010501810001840100010001030185000100 +010001820100010701850001000100018401000100010401830001000184010001000104 +018300010001030185000100010001040183000100010101830001000103018300010001 +070181000182010001010181000184010001000101018500010001000102018300010001 +070185000100010001050185000100010001040181000101010100020183000100010501 +01008601000100010001030181000108018b000100010001000100010001010181000101 +010100020183000100010601810001010183000100010301810001880100010001000100 +010801870001000100010001010181000104018300010001830100010085000100010001 +010101008c01000201020002000102010001050101028801000100020002000283020102 +010201830001020102018102018201000102018100010901810001010184000100010081 +000103018100010301830001000103018100010101870001000100010001050189000100 +010001000100010501810001820100010101810001010102000201830001000102018100 +010301850001000100018201000107018100018201000104018100018201000182010001 +020183000100010501810001040181000104018100010401830001000109018300010001 +820100018201000107018300010001820100010301 +03018100018201000101010200050181000104018100018401000100010a018500010001 +000107018100018601000100010001060181000187010001000100010081000184010001 +00018a010001000100010001000181010083000100010101810001050102000301870001 +000100010001020181000101018500010001000181010081000104018100018301000100 +810001040103008101008100018201000102018500010001000103018100010201870001 +000100010001040187000100010001000101018900010001000100010001840100010001 +820100010201810001010181000101010100040101008401000100010301810001010183 +000100018201000109018200010083000100010701840001000100830001000104018100 +010101010202018200010285020100010001010101028700010200010001028502000201 +020183010201028902010001000100020001030101000101840001020100810001010101 +008301000100830001000101018200010081000103018300010001020101008201000101 +018300010001010181000103018100010101890001000100010001000105018100010401 +810001040181000102018300010001030181000101018100018201000101018100010401 +810001050181000101018100010301010001018100010101810001040181000105018500 +010001000186010001000100018601000100010001840100010001040183000100010801 +8300010001820100010701810001810100 +810100810001820100010601810001080181000105018300010001860100010001000105 +018300010001840100010001040183000100018801000100010001000186010001000100 +010101830001000102018100010a01810001010181000104018500010001000182010001 +07018200010083000100010b018300010001030187000100010001000101018100010101 +830001000182010001820100010301820001008100010101810001050187000100010001 +000102018900010001000100010001030181000103018100010101010084010001000101 +018100018801000100010001000104018300010001010181000108018700010001000100 +010601870001000100010001040181000108010100850100020001008600010002000102 +850200020001008300020002830201000101018700020001000100018301020102880200 +020102000100018101008400020001008200020106018300010001010181000104018300 +010001020182020001820100018a01000100010001000100010101830001000101018100 +010301810001030187000100010001000105018a00010001000100010001008100010101 +870001000100010001040181000101018300010001040181000101018300010001040101 +000401870001000100010001860100010001000103018100010101810001820100010101 +810001050181000103010100820100018401000100018601000100010001050181000184 +01000100010401 +810001050185000100010001020181000108018100018401000100010701830001000182 +010001040183000100018401000100010101810001840100010001060181000102018200 +010081000182010001010181000188010001000100010001010181000101010100010181 +000105018900010001000100010001020101000201860001000100010081000105018300 +010001010181000101018300010001010181000105018100010101870001000100010001 +040185000100010001030182000100830001000105018100010101850001000100018401 +000100018201000101018100018401000100010101810001020181000101010100010181 +000182010001010188000100010001000100810001030188000100010001000100810001 +050181000106018500010001000102010100850200010002008200020185010201020102 +8402010200028c0201020002000100020001000289020102000200010001028202000283 +020102018501020102010281020182010001020183000100010201810001010101008201 +000103018300010001810102840200010002840200020002910201020100020002000200 +010001000100010101830001000101018100010301810001010181000103018100010101 +83000100018801000100010001000101018300010001860100010001000101018100010a +018100010401830001000182010001080181000101018100010301810001040181000101 +018100018201000102010100010181000105018300010001840100010001840100010001 +8201000105018300010001 +020183000100018201000104018100018401000100010301810001050185000100010001 +820100010701830001000104018500010001000106018100018401000100010201810001 +020181000102018100018401000100010301830001000101018100010501020084010001 +000103018300010001810100020084010001000108018900010001000100010001010181 +000105018900010001000100010001830100010081000103018100010201890001000100 +010001000104018700010001000100010101810001010183000100010301850001000100 +018201000101018600010001000100810001010183000100010601810001050182000100 +850001000100010801810001030181000101018400010001008500010001000102018100 +010201950002000200010200020002000100010002010201020183010200010201850201 +020002008600020001000102860201020001000102018100010101820002010601870001 +000100010001910100010001000100010001000200020100018301000201890100020001 +000100020104018d02010001000100010001000100010101830001000102018100018201 +0001030183000100010a0187000100010001000104018100010401010082010001820100 +010101820001008300010001040184000100010001000601830001000102018300010001 +020183000100018401000100010101010002018100018401000100018201000105018300 +01000184010001000184010001000182010001 +810001050181000102018300010001030183000100010301830001000105018300010001 +880100010001000100018401000100018201000103018100018401000100018401000100 +010201830001000101018100018201000182010001040185000100010001030181000102 +018100018201000103018100010101850001000100010201830001000104018500010001 +00010e018900010001000100010001070181000102010100820100010201810001070187 +000100010001000104018700010001000100010b01830001000186010001000100010201 +830001000102018200010081000102018100018101008300010001020181000105018700 +010001000100018c01000100010001000100010001040181000102010100930100010002 +0002010002000200020002000100018b0100010002000102010001028402010200028302 +01020102018700010001000200018a010001020100020102000102010100020181000102 +018300010001030189000100010002010200010101850001000200010101860001020100 +020084000201000185010201020102810201010189000100010001000100018101000100 +870102000200010001010187000100010001000182010001070183000100018201000107 +018100010201810001010101000201850001000100018401000100010101810001010181 +000103018100010401810001840100010001020181000182010001010183000100010201 +81000102018100018201000107018300010001820100010201 +030183000100010901810001820100010201810001030185000100010001840100010001 +820100010801810001840100010001840100010001080181000104018300010001820100 +010301830001000106018500010001000102018100010101890001000100010001000182 +01000101018100018101000100840100010001010181000108018b000100010001000100 +010001050186000100010001000200820100010101810001820100010201870001000100 +010001050184000100010081000107018300010001030183000100010101830001000104 +018300010001020181000102010100810100810001030181000106018500010001000103 +018200010085000100010001050181000106018100018101008e00010001000100010002 +010001000101019200010200010001000200020002000100010001840100010001860102 +000102010282020102810201880100010001000100010b01010004018300010001040185 +020002000201820102018501020102000282020100860001020102000189010002000100 +010200010d0186020001000100018a010201000201020002010281020101018a02000100 +010001000100010901810001840100010001010181000186010001000100010201810001 +010181000182010001050181000101018500010001000107018100010401810001040181 +0001030181000104018100018401000100010801810001 +820100010501810001010181000103018100010101810001030181000184010001000182 +010001060181000186010001000100018201000108018100018601000100010001860100 +010001000108018100010801810001010181000101018300010001020183000100010601 +870001000100010001040181000182010001010181000182010001880100010001000100 +0105018b0001000100010001000100010101810001020181000101018100010201810001 +020189000100010001000100010601870001000100010001070181000106010200820100 +01030101008201000182010001020181000106018400010001008b000100010001000100 +010001060181000102018302000201810100870001000100010001050181020101018802 +000102010002000284020102010284020100010281020102018202010087000100010002 +00028a020100010002000200010081000101018200010283020001008100018201000101 +018100010201810001050101008201000185010002010001850100010002008900010002 +010201020001850102000200028302010001010185000100010001810100810001010183 +000100028402010201028102008500010002000187010200010001000101010102820102 +010101850001000100010201830001000103018500020001000182010001040181000101 +018300010001820100010101810001820100010401810001020185000100010001020181 +000104018100018601000100010001030183000100018401000100010201810001820100 +018401000100010001 +010183000100018201000101010100840100010001030181000182010001010181000105 +018100018601000100010001820100010301810001020181000186010001000100018401 +000100010801810001860100010001000101018300010001860100010001000101018100 +010101810001010183000100010301870001000100010001070181000101018100010101 +830001000101018100010a01010086010001000100010101810001040185000100010001 +010182000100860001000100010081000103018d00010001000100010001000100018201 +000105018100010301810001010183000100010601830001000182010001010101000401 +830001000101018500010001000104018100010501820001008300010001010189000100 +010002000200018201000104010100920100010001000100020100010002000200010084 +000100020182010001880102010200010201028202010292020102000200010001000201 +020100010002010101810201030181000183010001008300010001010185000100010001 +02018100018501000100020183010201028302010201010189000200020001000200018d +01020001020100020001000100010401810001890102010001000100020081000101018a +000200010002000102010286020002000200010c01850001000100018401020102010101 +890200020001000102000103018100010301810001010183000100010201830001000104 +018100010201830001000184010001000105018300010001820100010401810001820100 +0184010001000102010000 +060181000183010001008100010101830001000186010001000100010301810001820100 +010601810001020181000182010001010181000184010001000109018700010001000100 +018201000103018100010601850001000100010101830001000101018100010301830001 +000107018300010001070189000100010001000100018101008100018501000100010081 +000182010001820100010401810001870100010001000100890001000100010001000182 +01000101018400010001008100010701810001060185000100010001030181000101018a +000100010001000100010081000103010100840100010001010182000100830001000105 +018100010601850001000100010101010084010001000282020102870200020102010001 +01018300010001810100830001000181010284020001000103010102820102008b000200 +01000100010002000285020002010201820100010501810001820100018101008a000100 +020001000100010081000182010001020183000100010101820001008700010001000100 +018e010200010001000200020001000102820200010101820201028c0201020001000100 +010002000103018300010001030187020102010001000181010081000281020101019002 +000102010001000100020001000100018401000100010101010001018300010201830102 +010082000100810001860100010201020101018802000200010001000103018100010401 +830001000101018300010001820100018201000101018100010501830001000107018100 +01840100010001820100010401810001810100 +010181000184010001000182010001840100010001010181000107010100030183000100 +018401000100010201830001000184010001000107018700010001000100018201000104 +018100010101850001000100018101008100018a01000100010001000100010201830001 +000101010100040187000100010001000103010100840100010001060187000100010001 +00010401810001030181000101018b000100010001000100010001010181000103018100 +010101810001820100010601810001010183000100010101880001000100010001008600 +010001000100810001040181000101018100010101010086010001000100018401000100 +01060181000182010001820100010101820001008b000100010001000100010001810102 +840200020102890201000102010002000102018300010001030185000100010002890200 +02000100010001028202010284020002010286020100020001008d000200020001020100 +020002000282020102830201020081000101018c02010001000100010001000100810001 +030183000100018601000100010001010102008201000105018f02010002010200020001 +020100020102840201020102810201860100010001000103019200020100020102010002 +000201020001000102860201000102010282020001820102010301830001000101018100 +01020186020002000200018101008e000102010001000100010001000201060181000102 +0183000100010401830001000102018d0002000200020102010001020001020183000200 +018401000100018201000107018300010001820100010101 +810001020183000100010301810001020183000100018201000101010100030181000102 +01850001000100018201000109018300010001840100010001040181000101018100018a +010001000100010001000103018100010b01810001010183000100010201830001000105 +018100018401000100010301820001008500010001000105018100018401000100010101 +8b0001000100010001000100010701020001010100020181000104018700010001000100 +01820100010301870001000100010001040181000107018a000100010001000100010085 +000100010001010181000184010001000103018100010101010088010001000100010001 +060182000102840201000102840200010002860201020102010083000100010401010003 +018402010001028702000200010201008400010001028202000281020101018200020102 +018a02000200010001000200028402000200028102018401020102010201810001040181 +000101018300010001020181000105018200010081000190010001000200020001000100 +02000201028e0201000102010001000102010002010b0191000200020002000102000200 +020001000100810001010189000100020102000200010101810001040181000182010001 +010181020101018102008800020002010200020101010102810001820100010201810001 +010183000100010201850001000100010201810001010184020001000182010001020184 +000200020101018102018e0102010201020002000201000100018201000105010000 +020183000100010201810001020101008201000102018100010701810001820100010601 +810001860100010001000182010001040181000102018700010001000100018401000100 +010801820001008100018201000188010001000100010001010181000103018300010001 +020183000100010401870001000100010001820100010401890001000100010001000101 +018700010001000100010701870001000100010001010181000102018300010001810100 +830001000107018200010083000100010501810001060181000181010081000101010100 +010181000108018300010001820100010101860001000100010001008201000182010001 +040181000101018d00010001020100010002010001028502000200020184010201020104 +0181000103018f000100020002010002000200020001008b000200010002010200020001 +8d0100010201020100010201020102830201020082000200010088010001000200020001 +830100010083000100018401000100010101010088010001000100010001020101028801 +00010002010201028302010001010189000100010001000201028d020100010201000100 +010001000103010100840201020102880200020002000102010101010283000200028702 +000200020102018201000101018100010301810001010194000100010200020001020102 +000201020100010001820102010101810001020181000103018300010001040181000185 +010001000100940002000201020100010001020002000201000100018501000201020182 +0102010301870201020002010001810102 +810001020181000182010001840100010001050183000100018201000182010001040183 +000100018401000100010701810001020187000100010001000184010001000106018300 +010001860100010001000104018300010001030185000100010001010185000100010001 +010181000101018300010001090184000100010001008801000100010001000182010001 +8201000103018b0001000100010001000100010101810001050181000184010001000181 +010081000103018700010001000100010401810001030181000101018600010001000100 +810001820100010401810001010186000100010001008100010101830001000182010001 +010181000101018100010101810001020185000100010001830100010287020102000200 +0100810002840201020102870201020002000100850001000100010201010004018a0200 +010001020100020102830201020102018600010001000100910002000100020102000200 +010001000201028302010002810201880100010001000100010401830001000101010100 +080183000100018201020001000201860002000100010284020102010284020100010283 +02000200850001000102010b010102870002000200010201020189000100010002000201 +028c0201020102000200010001000102018100018c010001000100010201020100018401 +020102018401000100028602000200020001820100018a01000100010001000100010101 +810001820100010601010087020102000200020101019000010201020100010001020001 +000100018701000100020100010501810001 +840100010001050181000185010001000100810001040181000102018100018201000107 +018500010001000186010001000100018401000100010601830001000184010001000106 +018500010001000182010001820100018401000100010401010084010001000101018100 +0109018700010001000100010301010001018100010501810001030183000100010f0185 +00010001000106018100010b0181000103018100018a01000100010001000100010c0101 +000101830001000104018300010001010101008401000100010101860001000100010081 +0001010184000100010088000100010001000201010101028c0001000200010001000201 +02018201020186010001000100018101008f000100010001000102000100020102008800 +02000200020001028402010201028a020102000100010002000103018702000100010002 +010301840201020002810201810100010086010001000100010201870001000100010001 +0101830001000101018a02010002000100020001008a000100010002010201020101018c +020002010200010001000100010201010082010001010181000102018600020001020102 +8c020102010200020001000100010e018600010001000100850001020102010101820201 +028502010201020182010001040181000102018100010101810001040183000100018101 +008100028302000201870102010201000102860201000200020103018902010200020100 +0100010201870001020002000201 +030183000100018201000109018100018201000106018100018201000184010001000184 +010001000184010001000106018300010001840100010001060183000100018401000100 +010601890001000100010001000188010001000100010001010183000100010401850001 +000100010501850001000100018201000102018100010101830001000105018100010101 +810001810100870001000100010001030185000100010001840100010001010182000100 +010086010001000100010101880001000100010001008100010501810001050101000401 +020002018500010001000102018300010001040181000101018300010001840100010001 +030183020102018a0100010002000200020002820201028a020102010201000100020081 +000101018300010001810100810001040189000200010001000100010401860201000100 +020086000201020102018101028502010200020092000200010001020001020001000100 +020100010501840001000100920001000100010001000100010001000100020103019502 +010200010201020001000100020002000200010001840102000201020181000106018100 +028102008700010200010201028902010001000200020001060182020001840100010001 +860100010001000106010100850100010201008100028f02010001000102010201000100 +010001010181000102018900010001000100010001920100010001020102010201000100 +010001020103018c0201000201000200010200020101018c000102000200020002010002 +01 +820100010501810001840100010001810100830001000101018100018201000182010001 +020185000100010001820100010801810001840100010001060181000186010001000100 +010601810001860100010001000101018100010101830001000184010001000101018300 +010001010185000100010001040102008401000100010101810001020181000101018100 +018201000105018100018201000101018100010501010086010001000100010101810001 +02018100010b0189000100010001000100010a0181000101018600010001000100020082 +0100010101880001000100010001000200820100018a0100010001000100010001030181 +0001890100010002000200010082000201830102010281020101018a0002000200020001 +000102870200020002010001070184000100010081000181010284020100020087000100 +020002000282020102940201020100020001000100010002000200010201028a02010002 +010200010001008200010282020001010183000100010101810001020185000100010001 +010181000101018100018101008200010081000289020100020102010200018201020188 +01000100010001000185010200010001010181000103018100018d010201020102000100 +0100010001810102810201010189020002000100010002010c018e000100020100020002 +000201000102810201010185000102010001070187000100010001000104018300010001 +820100010301850200020100010101810201890100020002010001000107018e00020102 +01000102000201020102010001 +01018300010001820100010701020004018100010e018300010001860100010001000104 +0181000186010001000100010601810001880100010001000100018a0100010001000100 +010001010181000106018100010301810001010181000101018100010401830001000181 +010081000102018100010401810001010181000182010001820100010201890001000100 +010001000102018100010701810001890100010001000100010081000183010001008100 +010601850001000100018a01000100010001000100010101810001010181000101018300 +010001020185000100010001020185000100010001040186000100010001008100018201 +02010101820201029902010200020001000100020002010201000200020001020102018e +010201000100010001000100010001010181000294020002000102010200010001000200 +020001000100870001000201020102820201028c02010201000100010001020001010182 +000201020183000102008100010301810001820100010101810001030185000100010001 +880102010200020001008700010002000200010101810001880102010200010201028202 +000285020100010001030181000187010001000100010081000102018f02010200010001 +000102000100010201010185000100010001010182000100810001870100010002000200 +830002010001008201000191010201020100010002010001000100010001020187000100 +0100010001020181000182010001810100810001820100019e0102000201000102010200 +02010201020100010200020002010001020102018901020102000201000100 +060181000184010001000182010001050181000101018100018201000182010001010181 +000182010001060181000186010001000100010901830001000182010001010185000100 +01000102018100010c018b000100010001000100010001010181000101018100018a0100 +010001000100010001040181000101018100010101010082010001860100010001000101 +018100010501810001070182000100020084010001000186010001000100010201810001 +02018f000100010001000100010001000100010201810001030181000101010100840100 +010001020101008401000100010101010085010001000100850001000100010501010202 +0186000200010002008c0002000100020001000102010283020102018a01020002000102 +010200010501810001010183000100018901000200020102000100810002820201028302 +01020183010001008c000100010002000200010001008100018301020102810201820100 +0283020001008d0002000100010001000100010001820100010101810001010185000100 +010001010181000183010001020102010190000201020100020002000100020002000289 +02010001000201020001030183000100010201010283000100018a010001000100020102 +00028402010201028b0201020100020002000100010b0182000201850102000201028e02 +010201020002010200010201020103018100010101810001040181000101010100820100 +0199010001000102010201020002000201000200020102010002000103018d0002010201 +020100010200020001820100010301 +010181000182010001050183000100018201000182010001010181000182010001010181 +000105018300010001840100010001060181000184010001000188010001000100010001 +860100010001000108018300010001840100010001010185000100010001060183000100 +010101810001820100010501870001000100010001010181000103018100010101810001 +010181000101018300010001030181000101018b00010001000100010001000104010100 +010101008201000101018100018301000100850001000100010501810001010101000201 +830001000101018100010201810001020183000100018601000100010001040181000108 +018d00020001020002000102010201028302000201820102010101030281010084000102 +01028402010201028e020102010200010001000100010001020184000102010281020101 +0181020101018700010001000100028402010201028a02010002000200020001008a0001 +000200020001020102830201000183010201028302010201010181000186010001000100 +010101820001008100010101810001830100010085000100010201820102010101810201 +9801000102010201000200020001000100020001020100010001030101009a0100010001 +000102000100020002000201020001000100020002018401020102018301000100810001 +820100018201000186010001020100018301000100010082010201820100028602010201 +020001840100010001010181000101018300010001020181000106010300890200020102 +010001020102018100018401000100018c01000102010200020002010201820100018801 +0201020100020100 +810001840100010001840100010001020181000182010001840100010001820100010201 +810001040181000106018100018401000100018201000101018300010001820100010d01 +890001000100010001000182010001070183000100018601000100010001010183000100 +010101810001860100010001000105018800010001000100010001008201000101018300 +010001810100810001010189000100010001000100010701810001050181000101018100 +010101810001090181000101018300010001010181000102018700010001000100010101 +810001030181000101010200030182000100830001000101010100870100010001000201 +830100020083000200010101840201020102840201020102830200020192010001020102 +000102010001000200010200010701840001000100880001000100010002008500020002 +000101010102820102008800020002000102010282020102810201880102010001000200 +028c02000200010002000200020001810100810001010181000102018600010001000100 +830001000102018100019501000100010201000200010001000201020001020102820200 +010501860002000200010081000101018100010101840201020102840200020102820200 +010101870001000100010001010185000200010001040181000182010001010181000287 +020001020002000284020102010083000201028702010001020102010201810001020181 +000103018100018601000100010001010101000401830200020101019700010001020102 +01000102010201020002000201000100018c01020102000200020102010200 +810001050181000184010001000105018100010401810001820100010201810001010181 +000184010001000102018300010001840100010001080181000186010001000100018601 +000100010001080183000100018101008100010801830001000101018700010001000100 +010101010088010001000100010001050101000101830001000103018100018101008500 +010001000105018700010001000100010101860001000100010083000100010101820001 +008100010401830001000182010001010189000100010001000100010401860001000100 +010081000186010001000100018801000100010001000102018100018901000100010001 +0001028f0201020002010001000200010001000184010201020186010200020001008300 +02010282020102020283010201028a020001000100010001000104018902010001000201 +0201028a02010200010001000200028b0201020102000100020001008300020002850201 +000201028602010001020102010282000201820102010101820001008500010001000108 +018100010101830001000101018102018101029002010001000200020001000100020102 +008300020002820200028102010701880001000200020002008300020002840201020102 +930201020100020102000200020001000100010001020181000182010001010101029600 +020102010200010001000100020102010201000102018201000101018300010001860100 +01000100010401810001020186020100010200018c010200020102010201020002010101 +85000100010201830100020101018e000102000200010200020002010201 +840100010001820100010501830001000182010001020102008101008100010901850001 +000100018401000100010601810001850100010001008700010001000100010901870001 +000100010001050181000188010001000100010001030181000108018100010a01850001 +000100018201000101018900010001000100010001050185000100010001010189000100 +010001000100010101010002018500010001000101018100010101840001000100850001 +000100010501840001000100830001000105018100010101810001030181000106010100 +020181000101018200010285020002010201840100010201850102000200028802000200 +02000100018a010201020100020001000284020100010281020187010200010001000103 +018200010083000100028402010001008a00010002000200020001028b02010001000200 +010001000183010201028502010200010285020002010201820102018201020183010201 +028102008300010001820100010301820001008700010001000100018201000188010002 +00010001000281020101010102820102018b010001000100020001020102870201000100 +0100010101810001040101029001000200020002000100010002000201028a0200020102 +0102000102010b0185000200020100810002830201020101018500010201000103018302 +010001010183000100010201810001030181000182010001040188000100010001020001 +940102010002000102010200020102010201000102018f01000201020102010200020102 +01000182010001 +080183000100010501830001000101018300010001010101001301840001000100810001 +0101830001000109018700010001000100010b0182000100810001020183000100018301 +000100810001810100850001000100010401810001880100010001000100010101840001 +000100810001810100820001000200040183000100018801000100010001000103018100 +01030181000101018300010001040101000a018900010001000100010001080185000100 +010001010102008501000100010088000100010001000100860001000100010086000100 +010002018901020100010200010001850102010201028202010286020102010201028402 +000201028702000102010201028702010201020100010101860001000100010088000100 +020001000100850001000100018101028402010001008300010001810102860201020100 +020088000200020001000102810201820100018301000201810100820001028302010001 +8a01000100010001000100010201810001010181000104010102820102018e0102000200 +01000100010001000102820201028a020002000200010001020102018100010101860001 +00010002008b0002010200010201000102008e0002010002000100020001020102010101 +8100010201020001018e0002000200020100020002000201028902010201020102000201 +840100010001030181000101018300010001820100018401000100010101810001840102 +010201010189020001000102000200019301020100010200010001020002010201000100 +010101850200020102010201 +820100018401000100018201000184010001000182010001020182000100020082010001 +820100018401000100010401850001000100018601000100010001020181000104018500 +0100010001820100010a0183000100018401000100010101810001010181000104018500 +010001000103018100018201000101018100010101850001000100010101830001000105 +018100018201000102018300010001010101000401810001010183000100010101830001 +000101018300010001880100010001000100010301870001000100010001080186000100 +010001008700010001000100010501810001040181000101018100010201810001010181 +000189010002010200020002008400020102018101028502000200020084000201020185 +010201000102840201000102820201028102010101010282010201010185000100010001 +010101008501000200020101018400020001028a02000100010001000201028b02000200 +020001000201020183010201028402010001008800020002000102010284020102000101 +018100010201830001000188010001000100010001820100010301890200010001000200 +020101018402010201028a02000200010001000200028702010201000100010101810001 +8701000100010002008300010001810102840201020102850200020102018d0102000100 +010001000100010001050181000102019300010001000100010002010002000201020102 +018201020102018100018201000101018500010001000182010001020187000100010201 +000289020002010201000102010301820200018201000101019602010201020100010001 +020001000102010201000100010001 +0601810001070183000100010c0101000301810001010183000100010901850001000100 +018201000108018300010001860100010001000102018900010001000100010001030181 +000182010001030185000100010001010182000100810001010181000101018100010701 +840001000100810001860100010001000105018100010101830001000101018100018a01 +00010001000100010001040183000100010101810001820100010a0101008b0100010001 +000100010001008100010301830001000182010001870100010001000100860001000100 +010081000101018100018201000101018400010002018101008f00010002000102010201 +000200020102840200020002820201028402010201028202000181010282020002850201 +000100010101870001000100010001020102008202000185010201020102a00200020001 +020002000100020002000102000200010002000200010002010201028102018601000102 +00010283020100018401000100010201830001000101018100010101020002018c000200 +010201000100010001008700010001000201028402010201028102018801000100010001 +00010201a000010001000100020100020002000200010001000201020001020102010200 +010281020105018500010001000181010001008202010284020102000202028801020002 +0002000200870002000100010001020101000801820001008c0002010200010201020102 +000198010201000100010201020002010201000102000200020100010301810201010187 +0001000201000100 +010183000100018401000100018201000182010001040181000181010081000101018300 +01000103018100010201810001030185000100010001820100010b018500010001000104 +018700010001000100010401810001040101008201000186010001000100010301830001 +000106018100010301910001000100010001000100010001000100010301810001810100 +810001010181000101018400010001008100010701850001000100019701000100010001 +000100010001000100010001000100010085000100010001050101008401000100010501 +810001010183000100010201830001000101010100020101008a01000100010201000200 +0286020002000100028a0201020001020102010201010184020102000284020100010285 +020002000201810102810201030181000101018200010085000100010200820002008e00 +020002000100020102010002010286020100020102018101000200820100010101840201 +0201008b0001000200010001000201008200020083000100010101820001008500010001 +000101018200010083000100018201000101018102018401020102009300020001000100 +020002000100010001000200010101810201840100010001030183000100018201020183 +010201028e02010001000200020002000100010284020002000101010100820100010201 +830001000181010001008701000102010200028802010001020002010202020101810001 +010183000100010201870001000100010001010181000201020101830001000184010002 +00019301020102010001020102000201000102010200018e010201000100010200020100 +0102018301020102 +010181000107018100018201000184010001000107018300010001820100010601810001 +820100010b01850001000100018201000101018100018601000100010001030181000109 +01850001000100010701850001000100010101850001000100018a010001000100010001 +00010901010003018f000100010001000100010001000100010701820001008300010001 +060188000100010001000100810001880100010001000100010601870001000100010001 +060181000102018100018401000100010101820001008100010101810001850100010001 +008500010001000285020102010001820102010401010286010200010001028502000200 +020102010102860102010201000202028b00020001000100010001000185010001000100 +830001020183010201028602010201000200860002000200020185010001000201810102 +950201020100020002000102000100020001020102010283020102010101840001000100 +810001030181000101018200010001000301880200010201000200028402010201028102 +018b0102000100010001000201028702010001000100010201880001000100010002008a +00020002000200010201028d020102010200010001000200020104018100010101830001 +000101010100820201029402000200020001000200010201020001020001000101018100 +010301830001000104010100820100018f01020102010201020102000201020002890200 +020001000201020181010283020002019201020002010201020102010201020100010001 +810100 +010181000182010001840100010001050183000100018401000100010701810001820100 +018401000100010601850001000100018201000101018100018601000100010001040181 +000104018100010101870001000100010001820100010301870001000100010001030183 +000100010101810001010101000201810001030185000100010001810100870001000100 +010001010181000109018900010001000100010001060186000100010001008100010101 +810001040181000106018400010001008100010701820001008300010001010181000103 +018100010101830001000188010001000100010001070186000102010201028102010101 +870201000100010002850201020102010101810201820100028702000200020001028302 +010201840102010201040181000101018100018701000100010001008500020002000282 +020102840201020102890201020001000200020086000100020001028202010291020001 +000200010201000200010001000200810001010181000102018300010001010181000103 +01810001010183000200028102018c010201000200020001000100018101028402010201 +028802000200010001000183010001008300010001010101008202010284020102010289 +020100010001000100010601820200018101008100018201000182010001010182000100 +8300010002820200028a0201020102010001000102820201028102010101010001018500 +01000100010101810001820100010301860002010002000183010001029d020002010201 +0201020002010201000100010200010002010201000200018c0102000100020002010201 +0201 +810001070181000184010001000103018300010001820100018801000100010001000101 +018100010101850001000100018201000101018100018601000100010001040181000104 +0181000101018100018a0100010001000100010001060181000105018100018601000100 +010001010183000100018101008100018101008100010101830001000103018100010101 +830001000103018600010001000100810001840100010001070188000100010001000100 +860001000100010083000100010101820001008100018801000100010001000101018200 +010089000100010001000100010401860001000100010001008402000100010101830001 +00010201820001008400010001008e000100010002000200010201020002810201020181 +020101010102810002840201020102840201020102820201020202810102870201020100 +020001010186000100010001008100010101010001028400020102018601020002000100 +880001000100010001028402010201028702000200010002000200810201840102010001 +810102840201020102810201010181000184010001000101018200010081000182010001 +840100010001010182020102880200010001000100018101028202010288020002000200 +0100018701020102000102010301850001000100018e0100020002000100010002010201 +028d02010201020001000100020002010301850001000100018201000101018302010201 +940102010002000201000100010002010200020100010301810001040183000100010201 +8300010001020183000100028f0200020002010201000100010201020106019000020102 +01000100010001020002010201830102000182010001 +810001820100018401000100010201810001840100010001080101000101810001060181 +000182010001860100010001000104018100010201830001000102018900010001000100 +010001820100010801850001000100010501010002018d00010001000100010001000100 +018201000102018300010001830100010081000102018100010101810001010181000102 +018100018201000102019100010001000100010001000100010001000104018100010301 +820001008300010001820100018801000100010001000108018900010001000100010001 +030101008202000101018300010001010101008201000101010100030183000100010101 +0102820102018a0102000100020001000102820200028402010201028402010201029302 +010201000200010201020001020102010201008100018601000100010001820100018101 +009000010200010002000100010001020001028702010201020001008400010002010201 +810201910100010002000200010201000201020001008300010001010101008c01000100 +010001000100010001830100010082000100850001000200010301010289000200010002 +000200028202010288020002000201000201830100010081000101018100018101000100 +8f0200010001000200010001000100010282020102860201020102000102018100010401 +01000101010086020001000100018a010201020102010001000183010002018401000100 +010101810001840100010001010181000104018100019e01020100010201020102000201 +000100010001020002000200020102010201010187020102010201020182010001840100 +01020182010201 +0201810001820100018401000100010a0183000100018401000100018401000100018201 +000102018100010301810001040181000102018500010001000186010001000100010801 +8100018e0100010001000100010001000100018301000100810001840100010001090185 +000100010001820100010501890001000100010001000102010100830100010083000100 +010201010086010001000100010701870001000100010001820100010401810001010181 +000182010001060186000100010001008100010301840001000100830001000281020101 +0101028100010301840001000100830001000186010001000100018c0100010001000100 +020002010281020104010102850102010201028202000284020102010284020102010282 +020102840201020102830201020181010081000104018100010101810001010101028301 +020102900201020001000201000100020002000102810201010188000200020001000200 +830002010283020102018201020102018202000101018300010001040181000102018100 +018201000181010082000100830001020101018a00010001000200020001028302010201 +830100010088000100010002010201050183000100018401000201028302010201020187 +020002000100010001008202000182010001820100010301830001000104018200020101 +018202010285020001000100020082020100860002010001000101018300010001020183 +000100010301970200010001000201020100010201020102010001020102010101890200 +020100010001000294020002000201000102010201020102010001020002 +820100010a01810001840100010001820100010101810001820100010401810001020101 +008201000101018100010201850001000100018401000100010b01890001000100010001 +000184010001000105018100010601010003018900010001000100010001040181000101 +018500010001000109018100011601870001000100010001070101000201830001000101 +018100018101008200010085000100010001010182000100890001000100010001000103 +0181020184010002000101018500010001000101018100010401810001820100010a0185 +020001020102840200010002840201020102810201870102010200010201850102010201 +028402000100028802000102010001000101018200010081000101018200010002008802 +000200010002000184010002010288020100020102010200960002000100010001020102 +000100010002000200010001840102000100850001000100018601000100010001840100 +010001820100018201000102018100018c01000200010002000100020102860201000100 +020088000100010201020102820200010101810001840100010001030101008a02000100 +010002000201028202010288020102010002000200810001020181000182010001010182 +000100820001028d02010001000100020002000201028a02010201020102000102018401 +0001000101018100010101810001860100010001000102018a0002010001000100010001 +010182020001020101029e01000102010201020002010001000100020100010001020002 +010201020102 +030181000184010001000182010001040181000184010001000107018100010201810001 +040183000100018401000100010801810001880100010001000100018601000100010001 +060181000101018300010001020183000100018201000188010001000100010001010185 +000100010001010181000108018c00010001000100010001000100010088010001000100 +010001820100018301000100830001000105018900010001000100010001040181000101 +018200010081000102010100860100010001000101010100080185000200020102810200 +880001020002000100010101810001010101008601000100010001840100010001830100 +010001000201810201860102010201000181010284020002000282020102840200020002 +820201028102010101010281010285020102000201820102008400010001008600010001 +000100860001000201020187010001000200020088000200010201000200830002010282 +020102850201020002008700020001000201028102018201020187010201000102000184 +010001000101018200010083000100010201850001000200018301000102010282010002 +820201028702000100010001008200010289020102000100010002010301860001000100 +01008a00020002000102010201028a020102000100010002000108018300010001020181 +000101010100850100020002018c01020102010201020002000100890002010201020002 +000102018500010001000102018100018301000201840100010001040192020102000200 +010001020002000201020100010501810001030189020001000201000200018301000100 + +010181000104018100018401000100018201000102018100010601830001000101018300 +01000182010001010181000106018100018401000100018a010001000100010001000106 +018100010201830001000101018100010201880001000100010001008100018201000106 +018100010401810001010181000186010001000100010101870001000100010001030181 +000101018100010101850001000100010101840001000100850001000100010501870001 +000100010001880100010001000100018201000103018100010301810001020102008701 +020102010201028f02010201000200020102010200010001010182000100810001030101 +000301810001050182020102850200020102018201020185010002010002840201020102 +820201028102018201000287020100020102010282020102810201820100018201000102 +018500010001000189010201000201020001028402010201028402000200010401890002 +000100010002000282020102820201028302000102820200018201020082000201020101 +008401000100010201830001000183010001000100010187000200010001020188010200 +010002010201830102010281020002008b02000100010002010001000101018300010001 +83010001028a020102000100010002000281020104018802000200010001020186010001 +000100018501000100010083000102018501020002000184010002000292020102010201 +02000200020102010200010001040183000102018401020102010301a902000200010200 +020100010201020102010200020100010001000100010201020100010001020102000102 +018102018301000100 +010183000100018201000102018100010a01830001000183010001008500010001000102 +018100010401830001000182010001010185000100010001060181000186010001000100 +010201810001010185000100010001820100010d01810001840100010001010186000100 +010001008100010201830001000105018100010301820001008100018201000101018300 +010001820100018201000106018900010001000100010001030183000100018201000103 +0181000105018100018a0100010001000100010001010181020182010002810201010182 +020002810201860100020001020188010001000100010001840100010001040181000188 +010001000100020102840201020002870201020100020102810201010183020001028102 +008200010282020102850201020102018101028202000182010201820100010101010005 +018400010001028302000201870100010002010001010187020100020002010282020102 +820201028702010002000200028502010002000282020100010001018300020001820100 +010101820001008100010301810001030186020100020102010201880001000100010001 +008300020002820201028202010201028200010282020100830001000103010100010189 +000200020001000102010101890001000100020002000287020102010201000184010001 +000105018100018f01020102000200010200020001000100860002000100010286020001 +0001020101018c0001000201000100010201020182010001860100020001000101018902 +010200020100010001820100019201020102010001000102000200020100010001010187 +0200020102010201810102 +01018100010a018100018401000100018601000100010001020183000100010301810001 +820100010501810001840100010001040181000101018100018201000101018100010201 +870001000100010001060189000100010001000100018201000103018100010301810001 +030181000107018100010301810001010183000100010101810001010185000100010001 +0101810001030187000100010001000102018b0001000100010001000100010201850001 +000100010101010001010100820100010701810002830200010284020102000202020101 +8a0002000102010201020001060181000183010001008400010001008100010401840201 +020102840201020102810201850102010201028202000281020101010102830102010282 +0201028c0201020102000100020002010083000100010201840001000100870001020102 +0102018101028102018301000102840200020102820201008a0001000200020001000100 +8d0001000100010201000200020001810102020201010100070181000101018100018101 +008500010001020189010200010001020100028202010285020102010200890002000100 +020002000101018102010301850001000100010101850001000200029502010201000200 +0200010001000201020102000100018b0100010001000100010001000100010187020002 +010200020102010102810100010081010287020102000100010286020100010001028302 +00020101018800010200020001000102019f020102010200020002000201000100010201 +0200010002000102000102010201030187000102000200020085000100010001 +040181000184010001000184010001000182010001060181000182010001820100018101 +008100010201810001030101000301810001020183000100010101810001020183000100 +010101810001040185000100010001840100010001060185000100010001810100810001 +010183000100010101830001000101018400010001008100010601850001000100018601 +000100010001020185000100010001820100018701000100010001000100830100010083 +000100010701820001008100010e01860001000100010285020102010201010182020102 +8402000100028c0201020100010002000100010085000100010001040101008201000189 +010001000100010001028702000201020100020202820102018401020102018101028402 +010201028802010201000201020087000200010201020186010200010001008500010001 +000104018102018601020002000200840001000102850200020001028202010284020102 +010282020102810201830102010282020102870201020001020100810001870102010001 +000100830001000101018300010001820100018601000102010002020282010201890102 +000100010002000282020102810201880102010201020001028202010081000106010100 +910100020102000100010002000100010201028a02000200020001020100018801000100 +0100010001020184000102000101018a0201020100010002010201810100830002000289 +020100010002000201028d020002010200020100010201020102018c0002010001000100 +010200020104019702000201000100010201020102000201000100010200010283020102 +018601020100010201 +810001840100010001820100010701810001840100010001820100010101810001820100 +010401810001840100010001040181000101018100010201850001000100018201000104 +018700010001000100010801850001000100018101008100018401000100010301870001 +000100010001030181000101018100010201870001000100010001050181000101018100 +018101008100010401810001070181000108018900010001000100010001020186000100 +010001008100018601000100010001820100028902010201020100020002010202010102 +850102000201008100010101010201018100018201000101010100820100010401810001 +08018102018101028a020102000200010201020181010284020002010283020002018301 +020102830201020083000200028202010282020100830001000102018100018201000102 +01830200010287020002000102000286020100020002008c000200020001000200010001 +008500010002010286020100020002018a01020102000100020100010101010084010001 +00010501810001010181000101018902010001000100010002820201028d020100020002 +00010001000201028102018201020102018d000100010001000100010200010285020102 +010201810102890201000100020002000287020002010201000182010001050188000100 +02000200020183010201028102018401000201028702010200020001028c020102010200 +010200010002008200010083000201028a02010001000200020102010101810201a40100 +010001020002010201020102010001020001000201020102010201020002000201000184 +0100010001 +810001050181000103018300010001020183000100018401000100010401820001008100 +010201810001020102008601000100010001820100010601850001000100010601810001 +900100010001000100010001000100010001080181000105018100018301000100830001 +000101010200030104008401000100010101810001830100010087000100010001000101 +018100018401000100010101840001000100830001000105018100010101010004018100 +0105018a0001000200010200020001810102830201020182010002860201020102010284 +020100010281020083000102018201000101018200010081000104018100010301010087 +010001020100010283020102018201020101010202870102010201000201830102010283 +020102018401020100018201020183010201028202000101010100830100010082000100 +010001018302000102940201000201020001000100020001020001000100018101028702 +010200010201028202010284020002000184010001020181010081000106018100010301 +820001008100018301000102880200020002000102018501020100020001008601000100 +010001030184000100010282020100870001000100010001030182000100010083010001 +008700010002010201028702010201020001028102010101810001010183000100018901 +0201000100010201028b0201020100010002010201029302000200020001000200010001 +02010001020102020201018202010283020100019b010201020100010001000201020102 +010201020002000200020100010101810201940100020100010200020002010201020102 +01020102 +820100018401000100010201830001000184010001000105018100010201830001000105 +018300010001840100010001060185000100010001840100010001040189000100010001 +000100018801000100010001000106018800010001000100010081000101018b00010001 +000100010001000103018100010301810001050184000100010003000201840001000100 +830001000182010001020183000100010601870001000100010001010181000182010001 +8101008100010101010004018102010101820201028f0201020002000102000200020002 +000281020101010102890102010201020001000105018700010001000100018101008100 +010101830001000181010283020102018301020102010201010102830002000282020102 +8402010201028e0200010201020102000200020002018301020001830100010081000101 +010100860100010002010284020102010289020100010002000100018701000100020001 +0284020002010285020102000102830201020183010002018b0102000100010002010001 +008300010001010183000100010301850001000100020102830002010282020100850001 +00020102820201028d020102000100010002000200010281020102018300010001860100 +0100010002820201028d0201020102000100020002000200010004018102010201810001 +820100018701000200010001000100010181000102018902000201020100020102820200 +028902010200020001000102840201020001870102010200010201020193000200020100 +020002000200020100010001000183010002010301960001020002000201000102010201 +020002010001000100810001 +840100010001820100018201000104018100010201810001820100010201850001000100 +018101008100010101810001020181000182010001820100018201000106018300010001 +8c0100010001000100010001000102018100010301830001000184010001000105018200 +010081000182010001840100010001030186000100010001008100018201000101018700 +010001000100010701020002018700010001000100018201000103018700010001000100 +010601880001000100010001008500010001000103018202010286020002010001028a02 +000200020102010201028102018201000286020100010200028502000201020086000100 +010001008300010001020183000100010101010002018300020002840200020002020282 +010001810102840201020001010101028101028402010201028202010082000102820201 +020102860001000100010084000100010083000100018301020001810102810201830100 +010281020183010201028102008900020002000200010200010083020002018201000101 +010100010201018400010200028302000201020101008801000100010001000181010081 +0001010101020101010286000200010002008b0002000200010001000201028202010282 +020102830201020086000100010001000100040188020001000200020002820201028402 +010201028102018201000283020102008a00010001000100010001020102820100010101 +820002008500010001000102018702010200010002018401000102018d01020100010002 +000201020102010201830201000196010002000102010201020102000201000100010001 +020188010002000102000102830201020101018402000200018501000100020101018202 +0002 +050181000103018300010001020183000100018401000100011301810001040183000100 +018a01000100010001000100010b01810001010183000100010401890001000100010001 +000101010100820100010101810001030181000101018600010001000100810001820100 +010101810001030189000100010001000100010101810001050182000100850001000100 +010101810001010186000100010001008100010a01810001010101000101860201020102 +01028602010201020102880200020002010001028402010201028a020102010201020100 +020103018100010401820001008100018201000101018700010001000200018101028202 +010287020102010002000282020001810102810201850102010201028102018301000100 +810002820201028102018601000102010001020181000104018200010283020102018201 +020102018600020001000100820001028202010284020100020081000187010200010002 +010289020102010201020002008900020001000100010001060181000101018b00010001 +00010001000201028102018201020103018d020100020002000200010002000285020102 +010201050101009701000200020001000201020102000100020001000100010286020102 +010200010801010201018302010001010185020001020102840201020100830001000183 +0102000286020100020100018c0102010201020102000201020184010001000102018a02 +010001000102000200010201830201020190010001000100010200020002010001000103 +018302010201870102010001020100 +010183000100010201810001840100010001840100010001050183000100018601000100 +010001020181000182010001820100010301870001000100010001820100010101810001 +020185000100010001840100010001010183000100018601000100010001030187000100 +01000100018201000181010081000101018700010001000100010b018700010001000100 +010501820001000100020181000101018100010101810001860100010001000101018300 +010001060184000100010001008301000100830001000104018202010282020100830002 +000281020181010281020182010002860201000102010285020002010201880100010201 +000200010501850001000100018401000100010601010201008402000200028302010201 +830102010284020102010283020102018101028402010201028102018501020100010284 +020102000101018100010201010085010001000102810201840102010201830102010281 +020183010201028902010002000100020001010182020001820102000100810200850002 +010201008300020102830201020181010089000100010001000100010101810001010186 +000100010001028102008900020001000100020002840201020102820201028202010282 +02000103018600010001000100870001000100020102820201028c020002000200010002 +010201028402010001028402010200018401000100010101010001018f00010001000100 +020002010200010201020181000101019000010201000100020002000200010200018701 +020102010201028102018d0102000200020100010201020102010283000200029f020002 +0100010201020102010200020100010001000102000200020100010201810102810200 +03018100018401000100010801850001000100010a018100018201000101018100018201 +000102018100010201810001020183000100010201810001060185000100010001040189 +000100010001000100010101830001000181010003000201830001000101018100010101 +890001000100010001000101018100010301810001010183000100010101890001000100 +010001000101018300010001060183000100010101840001000100850001000100010101 +010201018100010201010001018500020002000202020101850002000100028402010200 +0202028401020102018a0102000200020001020100860001000100010081000102018100 +010101810001890100010001000102000284020102010285020102000100840001000102 +870201020001020102850201000200028402000200028202010281020184010001000184 +010001000102018500010001000184010201020101018800010001000100010082000201 +010181020102010100840100010002830201020181010281020081000183010201008700 +010002000100018201000101018100010101850001000100010301820201008500010002 +0001010101028d0102000200010002000200010001810102850201020102018201000101 +0181000103018500020001000103018a0201020100020001000102830201020105018300 +0100018301000201010184000102010286020102000102010101820200028f0201000100 +02000100010002010200028702000201020102010101850001000201028b020002010201 +020100010001840100010001010181020101018702000201000100019701000201020102 +0102010200020002010201020102010201 +010181000105018300010001840100010001050183000100018401000100018501000100 +010083000100010401010004018100010101810001040185000100010001840100010001 +010183000100018401000100010501870001000100010001080181000104018100010101 +010082010001010181000105018300010001010181000103018600010001000100810001 +840100010001050101008801000100010001000108018400010201000100020101008101 +000100020182020102880200010002010201028602010201020102850200020002018a01 +020102000200010200028202010081000104018400010001008300010001080184020102 +000282020102830200020183010201028b02010201000201020001020184010201020181 +0102820201028a0201000100020102000100810001010101000401830201000181010281 +020101010102070187000100010002000182010201820102018501000100020082000102 +840200010002020282000201030183000100010101810001820100018801000102010002 +000183010201028a02000100010001000200028202010287020102000102000187010200 +020102000101018100018101009500010002000200010002000200020001000201020001 +01018200020181010283020001008100010101020002018f000102010001000200010001 +020100010101880002010201020002018501020102000101018200010202020101840201 +0201028f0201000201020001000201000100020103019200010200020002000201000102 +0102010200018b0100010001020002010201008600020102010001 +830001000184010001000108018300010001860100010001000186010001000100010201 +810001820100018401000100010101030002018500010001000182010001060185000100 +010001040189000100010001000100010801870001000100010001010101008801000100 +010001000102018100010301810001820100018a01000100010001000100010301810001 +02018100010101020003018100010a018a00010001000102010201028502010001000101 +018100010201860001020102010281020181010286020102010201028602000201020102 +84020002000286020100010001028b020002010201000100010001840100010001840100 +0100018501000100010002008f0201020102000100020001000201000282020102820200 +028702000200020001020202840100020102850201000200010601010082010001010101 +0001018100018201020101018400010001008700010001000100018101028d0200020002 +000200020001020002820201008100010101840001000201810100890001000100010001 +000101010200020181020102018600020001000201850100020001029002000100010001 +000102000200010201000100850200010001000200020181020183010201028a02010201 +02000100020002850201000102018301020102810201010181000101018a000100010001 +000201000184010200020102018102008900020102000200020102930200020002000100 +010001020100020102010201010182020102860200020002000291020002010200020100 +010001000102010201030183000100018401000200028102018b01020102000201020102 +00028102010001 +090181000184010001000186010001000100010501810001020183000100010301850001 +000100018201000182010001820100010401870001000100010001820100010101860001 +000100010001000a01020086010001000100010501810001020181000103018500010001 +000184010001000103018300010001030181000101018600010001000100820001008300 +010001080189000100010001000100010201880201020001020002008400010200010601 +8c000100020001020102010001028702010201020102018c010201000102010002000201 +028402010002018101008600010001000100810001010183000100018201000184010001 +000181010084000100020081000289020102010201000102010101830200010287020102 +010002000285020100020102820200028402010001028302000100830001000104018600 +010001000102850201000201028302010201080182000100810001820102018101028e02 +010200010200010201000100010201028300020001040181000183010001008100010101 +860201020100020085000200020002810201810102860201000201020081000284020102 +000203028101028102018201000101019400010001000100020002000100020002010200 +010286020102010200018301020002010286000100010001000100030181000101018702 +000102000200028902010201000200020102010283000100010101010283010001028502 +00020102018e01000200010002000102010201020182010201ad01000100020100010001 +020102000100010001020002010201020102010200020002010001020102010201020102 + +810001840100010001840100010001840100010001020181000102018100018201000101 +01810001050181000102018100010a018100018201000101018500010001000181010001 +00820100010801890001000100010001000104018100010101850001000100018a010001 +000100010001000105010100860100010001000182010001010183000100018601000100 +01000101010100050103000101830001000106018e000100020001000200020102010200 +860001000100010083000100010201860201020002010287020002000201020185010001 +0201028402010201028d0201020001020100010002000201040183000100010201810001 +010181000102018100018601000102010201840102000102840201020102820201028102 +010101850200010002019101020102000102010002000200010002000104010300020106 +008202010285020102000200840001000201900102010201000102000200010002000200 +810002840201000201810100850001000102018601000100010001840100010001010101 +008202010281020181010284020102010281020101018c00020001000200020100010001 +010186000200010201028302000201830100010001008101008400010200028202010281 +020185010001020100830001000102010102840002010001040185000100010001010185 +000200020001820100028f020102010002010200020002000201028d0201000200020001 +020002000201010183020102019601000200010200010001000100010201020102010201 +028902000100020100010001010191020002000201000100010201020102000200860001 +0002000102 +810001840100010001030181000102018300010001020181000104018100018601000100 +010001040181000181010083000100010201810001010189000100010001000100010801 +030084010001000105018100018601000100010001010181000106010200060187000100 +010001000101018100010401850001000100010701830001000186010001000100010601 +01000101010084010001020101018e020102010201020002000100010201010181000182 +010001010182000102860201020002010281020186010002000200028602000201020002 +840201020002860201020001020101010100840100010001020182000100830001000102 +018300010001010101028100028202000281020101018102018101028102010101010281 +010287020100020002000282020102820201028202010286020100010201008100010101 +820001008400010001008100020102810102010283010201028202010289020102010001 +000100018301000201020182000102890201020100010200020102018200020085000200 +010001010102008101000100010182020002910200010201000200020001020100010201 +028302010002010287000100010002010282020002870201020001000100010003018302 +010200830001000281020083000201028402010201028402010201028402000100010101 +8100010301a0000100010002000200010201000201020102010002010200020002000100 +0102018101028e02010200020102010201000102000182010201020101028d0100010001 +020002000200020001010188020102010201020100940002000200020100010001020002 +0002010201000183010200010001 +050181000182010001010181000102018100018401000100018401000100010401810001 +840100010001010183000100010201020002018100010a01870001000100010001060187 +0001000100010001080189000100010001000100018101008100018a0100010001000100 +01000101018300010001010101000d010100020181000103010100820100010101810001 +02018800010001000100010201028101028e020102010200020002000200010001010181 +000106018202010281020101018402010201028602010200020102810201010101028b00 +020001020002000200010086000100010001008300010001820100010101830001000101 +0102008a0201000201020100010201010181020181010288020002000100010201810102 +870200010200020002860201000201020183010001008300010001820100010401810200 +87000200020001000202028a01020001000100020001008a000200010001000102010084 +000100020082000200010002018200020089000200010001000100010401840201020102 +810201820102010301020201018502000100010083000100018101028202010282020102 +860201000201020102018100018c01000100010001000200020102820200028602000200 +010001830102010081000202028500010001000181010081000104018202010284020100 +010082000100850002010200010401880001000200020002008c00020102010201000102 +0102018f0100010001000201000100010201020101018102010101860002000200020092 +0001000102010201020102010201000102000182010201010182020002820200020002 +840100010001050181000184010001000105018500010001000184010001000102018400 +010001000100020183000100010301810001020187000100010001000106018100018601 +000100010001060189000100010001000100010301810001020183000100010301810001 +030183000100010301810001050183000100010401810001020102008401000100010301 +0100020181000101018f0201020002000200010002000201020101010102880002000200 +0100010081000103018a0002000100010001000100860001000102010284020102010283 +020002008b00020102010002010200020086000100010001008400010001008300010001 +010101008201000101018402010200028102010301810201810102870200010002000200 +8100028202010284020102010281020102010102830002000104018200010002008e0100 +0100020102010002000102010284020102010201028101028402000100018a0102010002 +0001000100010101820201028a0201020001000201020002840201020001030181020081 +000282020102960201000200010201000200020001020100020001020102820201028602 +000200010001830102010082000200030001018d00010001000102010001000200028502 +01000200028402010201028202010201028300010201840102010200010001018c000100 +010001000100010201020202830102000289020100020002000201028b02000200020100 +020002010281020184010001020185010002000102890201020102010001000292020001 +000102010201020102010201000100018701000100010002010301810201010182000102 +020282000201 +820100018401000100018201000104018100018401000100010501850001000100018101 +0081000182010001020101000201810001820100010c0187000100010001000102018100 +010101850001000100018101008100010401810001010183000100010101810001840100 +010001010183000100018101008100010301860001000100010083000100018201000105 +0185000100010001020101000201830001000104018b0001000100020002010201028102 +018101028d02000200020002000201020100010401810001820100010101840201020102 +84020102010286020102010001028402010201028d020102010002010001000100020081 +000101018300010001830100010086000100010001008200010002000101810201070188 +020100010201020102010289000100020001020100028402000200010201830200020083 +000100010201850001000201028202010001000102830102000101018100028202010285 +020100020102820200028102010601850001000100028202010086000100010002008300 +01000182010200860002000102010282020102880201020102010002010101030201018d +020100020002000100020102000183010201028302000201820102018101008300010001 +030184000102010296020002000100010001000102010201000200010201000281020081 +000285020102010001860100010002010284020100010001008202000101018300010001 +8101020102840002000102820201008b00020001020102010201020102018102018b0100 +0100020100010001000102018a0201000100010200020002010201018502010201020190 +010002000201020102010201020100020182010200 +030181000184010001000186010001000100010201810001880100010001000100010301 +810001010181000183010001008300010001050183000100010101850001000100010101 +8100010201830001000101018300010001040181000101018d0001000100010001000100 +010001060183000100018201000101018200010083000100010301810001050181000101 +0102000201840001000100010082010001030102000501820002018101028e0201020102 +010201020102010201028202010085000201000100830001000103018e00020002000200 +020001000102010202028100028402010201028902000201020002000102850201020100 +010201810001010101000101810001020181000102018400010200010101820201028302 +010201830102000284020100020083000201028302010201020101028100028302010001 +010101008301000100840001000102820200028402010002008300010002820201020202 +010103028101028102018401020002010101830200020083000100010101830001000183 +010001020102860002000200020083000200028202000282020002850200020102010201 +840201020102810201020101028101028502010201000101018600020100020100830001 +000101018100010101890001000100010001000182010201010187020102000102010282 +02000201028b000100020002010201000201030181020185010002000102940201020102 +000200010001000200020002000100018501000102000283020100018a01000200010001 +000100028802010200020102010289020002000201000100018201020181010201028b00 +0102000102000100010201810102870201020100010002870201000201000201 +010181000107018300010001010101000601810001010182000100850001000100010601 +870001000100010001030181000104018300010001020101000301830001000102018b00 +010001000100010001000106018100010101860001000100010001000301810001030181 +000184010001000101010100010181000101018400010001000100900100010001000100 +010001000100010001040181000101018a00010201020102000200028302010002860201 +0201020100820002018201000182010001840100010001820102018c0102010201020102 +000102010284020102010286020102010201008700010200020001008700010001000100 +018301000100860001000100010083000100010501820201028402010201028502010002 +000284020102010282020102820200028402010200018101020102850001000100018401 +00010001010101008401000100028d020102000102010201000200010203028201020181 +010281020081000184010200010285020100010002810201820100018601020001000100 +850002000200028602010201020002820200028302010201870102010201000200970002 +000102010001000100020001000100010001000102010201810200890001000100010001 +0001050101028f0102000100010002000200010201020186010200010201028402000200 +02830201020101018600010201020102830200020101018d000100020001020102010002 +00028102010101010202018a02000102010201020102018d010201000102000200020002 +000101018402000200018301020100970002000100010001020002000201020100010001 +020100010101840200010002840200010200 +810001010181000186010001000100010301810001010181000184010001000182010001 +090183000100018201000105018300010001030185000100010001020183000100010101 +870001000100010001820100010701810001860100010001000101018100010101810001 +010181000102018a00010001000100010001008100010101810001020101008301000100 +8300010001070102008702010201000100018201000101018b0001000100020002000201 +028502010201020101018202010281020001008802000100010001000104019102010201 +0001000201020102000102010200850002000200028c0200020100020102000100010084 +000100010081000105010100030181000101018200010282020102820201028202010201 +028c00010201000200010002010201830102010282020002870201000201020001010181 +000101018302000102020282010201840102000100020083020102010101830201020101 +018202010285020100020102820201028202000289020002000102010001008400010001 +008600020001020100840002000102010281010282020100810002830201020103018300 +020102810201050181020104018302010001810100880002010001000100018d01020102 +000100010001000100010101810001030184020102010292020102000100020002010200 +010200020100018101028d02010001000201020100020102019301000100010002000201 +020001000200020102019601020102010201020102000200010201020102010201029002 +000200010002000201000102010002018101028402010200018601020102010001010185 +02010200020183010002018401020102010001 +010181000107018200010085000100010001090181000184010001000182010001010181 +000183010001000200820100018101008300010001020181000101018300010001840100 +0100010a0187000100010001000106018b00010001000100010001000181010081000181 +0100010084010001000182010001010187000100010001000105018b0001000100010001 +000100018101008700010002000100010901810201810102850200020002008200010285 +02000200020081000101018102010201810001830100010001008101008100028a020102 +010002000201020184010201020185010201020102880200020100020002008600020001 +000100810001010101000101010081010081000106018102010101010201018302010201 +810102840201020102850201020001028202000282020002850201020100010101820001 +008400010001008d00020001000100020001000102010101010083020001008200010201 +020101010282000201920100020001000102000100010002010001020081000103010102 +830100020087000102010200010282020102820200028502010201000186010002000100 +028702010001000100010101850001000100028102010101830200020104018900020001 +000100010001030181000101018500020002000105010102850002000200028a02010002 +000201020002018401000102018901000201020002000200900002010002000100010001 +0002010201028c020102010201020102010200010101850001000100018201000103018c +020102010201000100020002009f00010001020102000100020102010200020102010201 +00010200010001020002 +820100010101850001000100010801830001000186010001000100010201810001860100 +010001000104010100010181000101018100018401000100010201830001000108018100 +018601000100010001050181000188010001000100010001070183000100010101810001 +04018700010001000100010201810001810100870001000100010001070101028b000201 +0001020001000100010201810001010183000102010101820201028e0201020102010201 +020100010002008300010001810100810001040104008102000100880100010002000201 +028402010201028902010200010001000102840201000102810201010185000100010001 +820100010101810001020186000100010001028102018501020002010201028301020102 +830200020081000282020102840200010002830200020188010201000100010201810102 +810200830001000282020102020283010002000100010181020103018300020102830201 +020187010001000200020101018302010201010183020100018501020100010083000200 +020102810102810200810002850201020100028202010281020102018100018301000100 +82000201050185000102000102020201018e000201000200010001000100020001050188 +020100010001000201010181020186010001000201008100020102860002010200010281 +020182010002830201020185010201020102810200820001028102010101850001000201 +02840201000102820201028f020102010201020102010201020100018701000100010001 +028c020100010001020002000201028b0201020102010201000100019501000200020002 +0102010200020100010200020002018301020102 +020183000100010401810001840100010001040181000183010001008300010001030181 +000101018d00010001000100010001000100010201810001090185000100010001820100 +010301850001000100018301000100810001040181000101018e00010001000100010001 +000100010089000100010001000100010101850001000100018201000103010100810100 +930001000100010001000102010201000102010001060181000102010302930100010001 +000102000200010001020100010201820100010101820001000100010181020186010201 +0201020083000201020202810100810002820201028b0201020002000100010002008500 +020001000103018100010101810001810100010007018402010001028402000201028502 +000100010286020001020102018101028e0201000200010001000102010002008a000100 +010200010002010286020100010001008200010003008101008400010201028102010101 +810001050181000104018400010001008900010001020102000102830200010001008202 +01028202010282020102860200010001020182010201820100018c010001020100010001 +000201028202010288020100020002000102020201000102820002018301000100820001 +008100010201010287000200010200020101018100018201000201028600020002000102 +820200010201810201030182020100850001020100018201020102018102000200010299 +01020100020002010200020100010001020001020102010201028b020002010001020102 +000201890100010001020001000104019602010201020100010200020102010002000102 +0002000101010002 +820100010401830001000102018100018101000100820100010701810001880100010001 +000100018401000100010101870001000100010001820100010201810001840100010001 +01018100018101008100018401000100010101810001860100010001000101018d000100 +010001000100010001000106010100010183000100010301810001030183000100010301 +810001030184000100010086000200020002008200010083000200018201000102018200 +010087000100020102000201028901020102000102010201830100010085000200020001 +060186000102010201028402010201020102810001010101028401020002018801020100 +020002000201028101020102810100850001000100018301000100010001018500010001 +020101018202010286020102010201028502010001020102018302010002850201020100 +010601840002000200840002000100850001000100028302010201070181000181010085 +000100010001810102010201018602000100010001090182000102830200010086000100 +020002008300020002010284010200010282020102830201020182010001010102000101 +810200020084020002000101018100028a02010201000100020002008100028202000281 +020102010302870002000200010001820102010101810001820100028502010200020082 +000102010282010201870100020001000102830201000184010201000101018700020001 +000200020102860100020100020188010002000201020102010293010001020100020100 +0100020102010201000102820200029d0200010201020002010200020100020002010001 +000102010201020100010201870201020102000100 +030183000100010101810001820100010701850001000100018601000100010001820100 +010f01830001000109018300010001030181000186010001000100010401870001000100 +010001050181000102018700010001000100010201810001020183000100010101830001 +000185010001000100810001010183000100010501880201020102010001020102810001 +820100010901820201028102018401000200018801020100020102010082000100860001 +020001000184010001000102018b02010201020002000102010284020102000101018602 +000102010201860102010200010083000200010201820001000200820100010101810001 +020181020101018702010201020001028202000284020001000201028400020102018201 +020101018802010001000102010285020002000102820201008a00010002010201020001 +008400010001000300820100010101830001020183010201028102010401810001050183 +000100018401000100018201000181010282020102010281000282020102010283010201 +028302010201020182000201020182020001030181000101010200010183000200028202 +010285020002000102810201010189000100010001020102018201020181010285020001 +000102840200020102820200020202010002028c0002010200020001000201020001008b +010001000100020001000201840102010001840102000102020285000200010002810201 +820102010101010290000201000201020002000201000200010281020101019f00010200 +02000200020100020002010201020002010200020102010200020002020282010200 +010183000100010101830001000184010001000186010001000100018401000100010901 +810001860100010001000184010001000101018500010001000181010001000101850001 +000100018401000100010301810001810100830001000106018700010001000100010201 +810001050183000100010101890001000100010001000103018200010081000102018300 +010001030186000100010002008200010005000101010083010001000200810100820002 +008600010001020102870201020102010201880102000201020100010301010087010001 +000201020183010200018201000181010281020101018202010284020102010287020100 +020001000285020001000200810001010181000182010001810100810001050181020181 +010201028500010201020184010200020103010102870102010201000100810001010182 +0002018c0100010002010002000100010282020102840200010001070101000101880001 +000100010002010301010201018602000100010001030101008201000182010001010185 +000200010002820200028202010203020101820201028102010401830001000286020100 +010001000100060101008401000100020102810100840002010201030101028c01020002 +000100010002010201830100020184010001020086000102010201020302810001830102 +00010101850001020102010201820200018e010201020002000200020100020102840201 +0201028a0201020102010002010001820102010201940200020002010001000100020002 +0002010001020183010201028402010201028a0200020102010201020001870100010001 +0200020502 +810001030181000182010001010183000100018201000104018100010201810001860100 +010001000102018100010201830001000103010100040181000101018100010201830001 +00018601000100010001060187000100010001000106018b000100010001000100010001 +070181000105018500010001000102018100010401830001000104018602000100020100 +010001018602000100010001080184000201020186010201020102018201020001008202 +010084000200010081000103018400010001028402000200028202000286020001000200 +028902010201020001020002870201000200020002830201020181010085000100010001 +860100010001000102018102010401010281000101018600020102010002840201020001 +05018b020002000102010002000100020087020001020001020103018200010002008601 +0001000201008100010101810001040101020a0182000100810001020182000100020082 +010001830100020082000102820201028202000282020102820201028102018601000100 +010001090101020100810201040185000100020002820201028402010201000100840100 +010201820102018801000100010201000101018a00020001000200020001028502000102 +010286020001000100010401930001000100010002000100010201020100020002870201 +02000102010287020102010201020102018b000200010001020001000201050181000195 +010001000100010002010001000102000201020102010301820001000100850102010200 +02810201810100 +010181000182010001030181000104018100018401000100010201810001010181000103 +018700010001000100010401810001050185000100010001040181000105018300010001 +86010001000100010501830001000184010001000105018a000100010001000100010001 +008301000100030082010001030183000100018101000200940100010001000100010001 +020102010200020102000100810100830001000182010001020182000201010184000102 +010282020100850002000200028102008c00010200020001000100010001020182000102 +86020102000201028202010284020102010283020102018a010200020001000100020084 +000100020083000100010201830001000106010102010103008601000100010200810002 +8402010200028b0200020001000100010201028202010281020184010002000185010201 +000200830002000285020100010001040186000100010001008700010001000100010901 +850001000100010301010001018102010101890001000200020002010201028100028102 +010201010281010281020081000104018600010201000100870001000100010001010184 +000100010001008502000102010283020102010601840200010001060184020001000102 +010102830100010282020002860201020102000182010001840100010001820100010401 +880002000200020002010101040283010201028602010201020102830200020107018602 +0102000100028b0200020002010201020102018801000100010001020103018502010001 +020102018100020102850102000200020102 +820100010301830001000101018100018201000104018100018601000100010001840100 +010001070187000100010001000181010083000100010201810001020101000201850001 +00010001080187000100010001000106018700010001000100010b018300010001070183 +00010001010183000100010e018502010200020186010002010200018201000108018202 +000281020101018402010201028202010081000182010200020081020081000182010001 +010101008601020102010201860102010201020083000201028702010002000201028402 +000200010101010284010001020185010001000100810001010182000100890001000200 +010201020103018302000200850001000200018201020103018100018301020002880200 +02000100020001810100010085010001000201070101008f020001000200020001000100 +020102010101010086010001000100010501810200810001820100018301000200840001 +000102820201028302000102820201020102810102820201028602010200020100010082 +010001810102810201030181000101018302010201020181000102018202010282020102 +930201020100010001020100020102000102010001060102008201000201028101028202 +000282020102010284010001000182010001820100010101850001000100018201020181 +010201028100028102010101010283010201028502000201020182010201820100018a01 +000100010001000201028102018701020102010200028702000100020002010301880001 +00010201000100870001020001000100810001870102010201020102 +020183000100010301810001820100010201850001000100010201810001040181000186 +010001000100018601000100010001020181000102018100018601000100010001070183 +000100018601000100010001050181000186010001000100010301810001030183000100 +018801000100010001000182010001860100010001000187010001000100010082000100 +900001000100010001000100010002000102820201008400020002008100010b01810201 +840102000200010081020083000201008900010200020100010201030181000186010001 +000200028402010200028602010002010201010101028101028502010001000184010200 +010087000200010001000102010100820100010301820201028502010201020001000102 +81010282020001010181020183010001008400020002018101028102018a010200020001 +02010001000200830100010002008c010001000100010001020002018101028102010101 +880001000100020002008100028202010282020002850200020001028102018301000100 +810001020186000102010002008300020102010281010282020102830201000285020102 +00020101018b000100010002000100010001870100010001000100010088010001000100 +020002820201028302010201820102010401810002810201840102010201010187020001 +000100010281020001000202810002820201020102840100010001020181000186010001 +000100010101870001000102000201830102000284020102010288020102000201020102 +010282010001840100020001010191020102000200020001020002000201020102870201 +0201000100010301810001010184020002000101010100820200028602010201020002 +820100018201000101018300010001030181000102018100010201830001000186010001 +000100018401000100010201810001010181000182010001020181000103010100030181 +000184010001000106018700010001000100018201000103018100010101830001000101 +018300010001020101000101830001000103018402010001008400020100010401810001 +0301830001000107018b0201000100010200020100018201000103018100010501010285 +0102010201008a0002010002010200020100820001008200010081000101018100010301 +010284010200020085000200020102840201000102820201028a02010001000200020001 +028202010281020083000100010201810001010183000201028702000201020100018101 +028402010002008100020202820100010201020283010001008100010901850200020001 +00020084010001020102018f000201020001000200020001000201028202010289020102 +000200010001008100010101010284000200010201028200020087000100010002000282 +020002830200010282020102820201028202010281020101018100010301810201010182 +000100830001000182010201820100010101870001000100020002820201028202010283 +020102019001000100010001000102010001020102018301020002830201000282020102 +0202810102870201000100020001820100010201830001000103018a0002000100010200 +020002820200018101028202010283020002018201000101018402010200010101880201 +020001000100018401000100010301820200018d01000200010201020102010001020102 +810001020101028201020182010201010101020101810001 +810001030183000100010101850001000100018201000102018300010001090183000100 +018201000101018100010401810001820100018401000100010201810001010181000101 +018700010001000100010501810001020183000100010101810001010183000100010101 +810001820100010301850001000100018301020001880102010201020001008300010001 +010101008201000103010100020101000102870001020100020102810200810001050183 +000100010301830002010001008602010200020002820201008500020102000101018600 +010001000100870001000201020102840201020102840200020102850201020002008500 +020002000184010200020087000200010001020181010081000103018202010282020002 +820200028102018101008100020102850102000100028102010101010203010102030181 +000101018700020001000100020102810102810201030182020102810200870001000100 +010201820102008600020001000100890002010201020102010282020102820201028202 +010285020002000100810001040182020102820200028202010201028101028502000102 +010283020102010101890001000102010001000104018300020001810100810001040182 +02000282020102820201028102010d010102810100010085010001000201810102020283 +0002000283020100010201810001010101008b0100010001000100020102010301010284 +000200010290020102010201000200020102000201000286020102010001028602010002 +01020103018f000102000100020001020102010200020302860002010001000185010002 +00010201020101010283000200010001 +010183000100010301810001030181000102018100010201810001860100010001000182 +010001060181000186010001000100010201810001020184000100010081000102018100 +010601810001040181000181010087000100010001000101018100010101830001000181 +010083000100018201000104018b02010001020002000200010081000103018100010401 +010082010001010184000100010282020002840200010200020081010085000100010001 +030184000100010083000201028402000200028302010200010084020100010282020100 +810001080101028700020002010002008500020002000281020101010102810002840201 +000102810200830002000285020002000100840001020102820200028202010282020102 +890200020100010001000106018100010101840200010001010101000601840001000100 +840001000100870001020100020002810201830102010286020102000100018101000100 +840200010001850100020001020102020083020001028302000200810001010101020100 +830200010002008101020102010182020102010284000200010283020102010501010201 +0188020002000100020002820200028a0201020001000200020002820201028602000102 +010201020184000100010083000100018201000189010201020001000100020302810102 +830201020101018200010081000108018100010101880001000100020100028402010201 +028f02010201000200010002010200010001840100010001010181020101018402000100 +018401000100018201020101018902010001020002000201820100010101810002820200 +02820201020402830102010203020001 +810001030181000182010001010183000100010101810001840100010001070185000100 +010001840100010001040183000100018401000100018401000100010401010003018500 +010001000101010100860100010001000101018b00010001000100010001000104018100 +010301890001000200020001020101018302010201010184000100010089000100010001 +000100010401810001020181000103018800010001020102010081000104010100030103 +000101820201028502010201020181010001008601000200010001010182000100880001 +000102010200028202010281020002008102000200880200020100020002018101008800 +020001000200020181010284020102000282020102010281010284020102010281020184 +01000200018701020102000102010101820200010d018402000200018401000100028202 +0102820201028102018301020100840001000201020101028101028e0200020001020001 +000200020001020302810102810201010185000102000100840002010201010101028100 +0101018202000284020001020181010284020102010201028c0001000100010002010002 +01028202010203028101028a020002000102010002010286020001020100028102010201 +0102810102820201028b0200020100010001000200010101840201020102810201810102 +010282010001020181000188010001000100010001010187000100010001000283020001 +0202028e0102000102000201020102000200018401020100010101830001000184010001 +000182010201030102008502010001000102018100018901000200020001000102840201 +020102010284000201000204020001 +020185000100010001010183000100010101810001070183000100018201000106018300 +0100018401000100010d0181000184010001000101018b00010001000100010001000188 +010001000100010001050183000100010201830001000101018400010002018701020100 +010001008100028902000100020002010201010181000104018100010201020084010001 +00018101028d020102010201020100010001000101018100010301020084010002000286 +020102010201020202850102010201028302010200840001000100810001010183000100 +02820200028a020102010200010001020183010201028f02010201000200020001000102 +000100850002000201028202010282020102870201020001020102820200010101830001 +000105018102011101010002018502000200020083000201020102810102030201018502 +010200010089000100020002000100018101028102010301810002040201008502010002 +010202028800020002000200010201020101010281010282020102030281010082000201 +010183020001000100810102010283000100020202010004018400020002008300020002 +840201000201030181020106018500020002010285020100020002820201028402010201 +0283020102010101810001810100810001010181000103018e0002000100010001000102 +000200020102810001810102880201020002010200020102010181020186010001000100 +018201000101018300010201820100010101810001040181000182010001820100010301 +85000100010001010181020186010001020102010301 +840100010001030181000103018100010201850001000100010501850001000100018201 +000104018100010401850001000100010101830001000101018100010201010004018300 +010001080187000100010001000104018300010001010189000100010001000100018a01 +020102010001020102018101028602000100010001860100010001000182010001020102 +008401000100018501020102010089000200020100010200018201000181010081000105 +018502000200020082000200010001028101008a00020001000102010001008300010001 +020101028d01020102000102010200020001028402000201028a02010201000200010200 +028202010203028300020102820201028202000282020102840200020102810201010181 +0001050102020701810201060101020101850001000201020c0281010283020102018101 +02820201028f020100020002000102000100020001020302810002820201028102008400 +020002008600020001020102010285000200020102010284000200010286020001020102 +018e01000100010001000200010001020182010201040185020002000102050281010285 +020100020001020101028101028202010282020102860201020002000183010200020202 +81010282020102820201028b020102010002010002000200830001000108010202010185 +000102010002020282010201820100010101850201000100018401000100010401850001 +000100018401000100010201830001000108018100010101850001000100018401020102 +01020185000201000200 +040183000100010101810001820100018201000102018100018601000100010001050181 +000102018300010001010181000182010001010181000105018500010001000181010081 +000181010083000100010401870001000100010001050181000186010001000100010101 +850001020102018d01020102010200020001000102008700010001000102018501020001 +0001070101000a0181020182010002830201020083000102010301010083010001000100 +830102010286020002000201028602010200020102830201020083000102018201000102 +018700010002000200028402010201028202000284020100010283020102018301000102 +830201020084000200020086000100020001028202010282020102810201830102010286 +020102000100011601810201840100010200820002000200830100020081000202028101 +028302010201010182020102820201028302010201840100020102820201028202010282 +020002860200010001000282020002820201028202000204028200020083000200028102 +008100028202010201028c01000200020100020002000102820201020102010184020002 +000201028301000200830002010282020100010002028201000281020182010201040182 +020102850200020001008800010200010201000182010002040282010002010284000100 +01028202010286020102010002018b010001000100020100010002820200028102018501 +020102010288020102010200020002010281000184010001020101018300010001840100 +010001060181000184010001000101010100010181000185010001000100810001020101 +0081010202028401020102010101 +820100018201000103018100010301850001000100010401810001050181000101018100 +010201830001000102018300010001010182000100810001010101000201810001050181 +000184010001000105018700010001000100010401810001010191000200020002000200 +01000102000201020101018c000100020002000200020002010201820001008100010301 +81000181010085000100010001820102018b010201000100010001020100020086010001 +000100018201000286020102010201028702010201020102008200020084000200020182 +010001010101000201820001028402000201028402000200028202000202020101880200 +020001000100018601020100020002820201028402000201028202010282020102010281 +01028502000201020105018102010b018300010201010182020102810200810001810102 +850200020102008100020102810102030281010284020102010202028101028902010201 +000100010201010182020102820201028802010002010200010084000200020086000200 +020002008300020102020283010201020102810102820200028502010201020181010287 +020002000102010201028101028202010281020185010001000100020081010202028101 +028d02010001000100020002000200028102010101830200020187010200010200010282 +020002080286010001000201008c00010001000200010001000102850200020100028202 +0102820200028c0200020001020102010201020103010202810002880200020002000201 +028b020102000200020100010001030181000104018100018201000105018100018b0102 +01020102010201020002810200 +830001000101018300010001010183000100010601830001000101010100820100018401 +00010001020181000101018300010001860100010001000102018100018b010001000100 +010001000100810001030189000100010001000100010401870001000100010001010186 +0002010201020186010001020102018a0102010201000100010001810102810201880100 +010201000100018201000101018100018101000100070183020102000200830100020003 +000301820001008200010001008401000201028602010201020102860201020100010084 +000102010201028301000100830001000103018102018101028102018201020081000283 +020102008800020100010001020182010200830001020181010081000282020002820200 +020302810102820201028702010201020100010301820201028102010101810200810001 +020181020181010203028200020081000283020002008500020002000208028100028202 +010281020184010201020181010282020102810200840001020102010286010201020001 +028502010201000283020102018801020102010002010285020002010002010284010002 +010201028100028f02000100020001000200020001020100890002000200010200010201 +02810002820200028202010202028b00020001000100010001020101018400010002008c +000201000200020001000201020202810002820201020302010101028600010200010002 +820201020102020181000183010201020102810102820201028202010285020102010001 +02018502010001000208020101810001860100010001000101018b020102000200020102 +010200810001020184020100010081000183010001028802010201020102000102010000 + +030183000100010101830001000101018300010001840100010001020181000101018100 +010201830001000184010001000104018100010201010005018100018401000100018201 +000103018100010301830001000183010001008100010701830200020188010001000102 +000102810200010082010001830102010081000189010001020002000102008700020100 +010001008100018201000103018900010001000102000201010187000102010200020082 +000100010005018600010002000102840200020002020283000201008200010087000100 +020001000106018b00010201020002000102010285020100010201810102840201020102 +860200020001020102018100018601000200020102810201830102010282020102820201 +028102018401020100010801810001020185000100020002830201020181010282020100 +810002020281000201020100020281000282020102030281010282020102820201028402 +000200018301020002830201020184010002010282020102020202008302000100020082 +020002810200010082020002020282010002810201810102820201028202000283020102 +010101820201028202010285020100020002820201028702000200010002008300020002 +820201028202010282020100830001000187010002000200010084000100020083000201 +028402000200018501020002000282020102050281000284020002000201028a00020002 +000100010001000200010284010001000289020001020102010201020102030182000201 +8401000102018f010001000200010200020102010200028b020002000201000100010201 +850102000200018901020102000201020102060283000100010101 +810001820100010301810001030181000103018100010101830001000184010001000182 +010001010181000184010001000184010001000101018100010401830001000109018100 +01030183000100010a018b00010001000200010201020085000201020100830002010286 +020102000201000100850102000102008c00010001000102000200020001010101000101 +830001000104018400010201028602000102010001860102010201020087000100010001 +0001020181020189010200020002000201028402000201028a0200020001000200010001 +010101000501010281010282020102810201030102008902000100010002000100870001 +000100010002830200010282020102820200028202010285020100020102830201020185 +010001020002830201000101018202000282020102850200020001028602010002010001 +840100020002830200010204028101020102810102850201000200028502010002010201 +028101028202010001000102010182020002840201020100940002000201000100020100 +020001000102000200020302810002010281010282020102820201028702000200010001 +020102850002000102010301820200018401020102018401000200020302810002860201 +000100010086000100010200018201020084000200010002008301020002030281010282 +02010282020002040201008102018f010001000201020002000100020100020202810102 +820201028e020102000100010201020102010001010189020002000100010200028f0201 +020102010200020002000102000183010200018101009000010200020002010201000102 +00020002010201018102010101810201840102010200 +820100010101830001000101018300010001010183000100010101810001040183000100 +018201000182010001060181000101018300010001840100010001030101000101850001 +000100010301830001000102018200010081000184010001000101018502010001020186 +010201020102018101028202010083000100028102018f01020102010201020102000200 +020100860002000102010282020001020181000103018a00010001020102010200020102 +82000200820001000200810201040101008c010001000100010201020102018801020102 +000102000181010283020100010801810201010182020102810201850102010201028302 +0002018101028f0201000100010001000102000200010083000200020102810102020281 +010201028300020002010281000283020102010101830201020181010201028600010201 +000102010281000181010282020102850200010201008400020002008100020902820102 +018401020001028a02010001000100010002018201000202028401020001028202010283 +020100020202860001000200020083000200020102850102010201028202010201028101 +028202010282020102810201010183020001020102810102820200028102018801020002 +000100020081000204028201000282020100020085010002000102880200020001000200 +028702010001000201020302810102830201020181010202028200020183010200028202 +01028a020002000200010002010282020102820201028502000102010285020102010201 +010183000200018401000200020202900102010200010001000102000102010201010182 +020001810102940201020102010201020001000201020001000201028c02010201000100 +010200020002 +020183000100010101830001000101018300010001010181000102018300010001060181 +0001860100010001000102018300010001020185000100010001820100010c0181000101 +018100010201830001000101018700010001020002018501000100010082000100840002 +00020186010201020100018101008e000200020100010201020102010200850002000100 +028502010001000103010100880100020102010200020102860002000200020085000102 +000100830001000108018402010201020202020101028200020082000100010081020106 +010102010184020102010287020102010002010284020100020102018202010285020100 +020001860102010002010202028101028402000102008100028202010285020102010001 +010101008201000281020182010201830102000282020102030281000283020102008400 +020001028202010281020081000208020101010281000281020186010001000201029502 +010200010002000100010002010002010001020002830200020085000200010201870100 +020001000102010281010201028400010201020102860102010201020101010102810102 +020202018202010201028301020002830200010282020102040201018102010201010090 +020001000200020001000200020001000101018200010282020102020281010282020002 +020284010002000201028700010002000200028702010201020001020102810102010283 +010201028902000201020102010201030186020102000100018401000100029102010201 +020100010200010001020100010287020002010001000183010002008200010292020102 +01020002000200020100010201020102 +010181000102018100010301810001040181000182010001020181000186010001000100 +010401810001020183000100010201810001050181000183010001008500010001000181 +010002008601000100010001040181000102018402010201008d00010201020001020102 +010001000100810200010089020102010201020001008f00020100010001020102010200 +020001010101008201000182010001830102010202028400020002008300020002890201 +020002010200020101018300010001840100010201830102010284020102010282020001 +830102010084000100010201020b01810201810102820200010101830200020082000201 +8b0102000200010001000201028402000200018401000201028502000102010282020102 +820200028302000102850201020001028202010282020102890201020001020100020181 +010201028101020302840001000100840001000100810002040281010283020102010201 +820201020402810002820201000100810200870002000102000102850201020001008600 +020002000102820201008100018301020002040281010201028101028202010282020102 +850201020102010101070281010281020181010285020002010002850201000100020202 +81010283020002008500010001000203028f010200010002000200020001000201020602 +810102050281010202028400010001020202010185000100010200830001000187010002 +000102000202028401020102018b01020001000102000200020183010201029202010001 +000100010200010201020102010201040184000100010286020001020100028402000200 +0282020001860102010201000182010001 +810001010183000100010101830001000101018300010001010185000100010001040181 +000102018300010001010101000501850001000100018801000100010001000102018300 +0100010c0183000100010401840001000201810102810200820002000300870102010201 +020102890200020002000201020001008102008600020002000100890001020100010001 +000103010102830102010201028401020102010301880001000200020002010101810001 +070181020182010201820102018701020102010200028702010200010201020102050184 +0001000102850201020102010301820001028a0200020100020002000200860001000200 +020087000100020002010282020102820200028202000282020002820200020102820001 +028202010282020002820201028302010002040285000100020002810200830002010283 +020001028202010201028101028202000201028800020100010002000283020100018101 +028202010287020001000102010001000401860002010200010288020100020001000100 +850001000200020502810102010281010281020186010201020102010601810201020185 +020002000102810200830002000282020102030281010283020102010301820002000100 +860201020102000189010201020001000201020302810102820201020202020086010002 +000200020102010082020002870200010001020001820100028202010284020102010285 +020002000200920001000100010201020102010200010001000287020001000102010289 +0201000100010001000201020100870102010201020001820100018201000105018a0200 +020100010001020002 +010181000103018300010001010183000100010101830001000101018100018401000100 +010101010005018100010101810001820100010101850001000100018201000104010100 +020185000100010001010185000100010001040102008602010201000200020082010001 +8f0102010201020100020102010201020192010201020100010201020102000200020002 +008300010201010193020102000201020102010201020002010201020083000200018901 +0001020100010002010c0101028501020102010282020100820002008600020102000102 +010281000104018102010101810201010182000102870201020100010002820201020302 +810102010204018600010201020002010285010201000200810002820200028202010283 +02010201010101020101820200028302000102020201010102810102820201028b020002 +010002000102000100810002030281000282020102810201060181000285020100020002 +820201028502000200010204028901020001000201000200840001000102850201000201 +020302810102830201000201028101028202010285020102010201010107028201020181 +010288020102000100020102820201020302810102830201020104018202010282020102 +890200020002000200020084000200010206028101028102010201850201000102018401 +000100020702810102810201010189000100010201000102018201020103018602010001 +000100020082020001030101028a01020100010002010001008400020102018901020102 +0002010001020102960100020002010001000102000200020102010201020102 +810001010183000100010301810001030181000103018100010401830001000102018100 +018801000100010001000184010001000108018300010001020102000101810001030184 +0200010001810100040002010500860102010201020186010201020102018101028f0201 +000200020002010201020102010084000102010285020100020100950002000100020102 +010200020102010201020102010283020102018c01000200020002000100010201090101 +020101820201028502010001020184010201020085000201020102810201870100010001 +000102810201010181020103010102020081010201028800020001000200010085000200 +010001830100010205028100028202000283020102018101028502000200010085000102 +010201810102830200010202028101028202010284020102010285020002000200840001 +0201028202010201028101020402850100010001020102820002018101028a0201000201 +02000100020083000201028c020102000201020001000201020202010081010282020002 +030201010102810102820201020102810102810201010186020100010201028102018101 +028202010288020002000100020102820200028202010203028101028302010201040182 +020102820201028402010200018401020001000200810102050283010201028602010002 +0001008d0002000102000102000100010002830200010281020101018100028502010201 +02019301020102010001000100020001000102010201028d020100010001000200020102 +0102810201030182020002860201020002010089000201020002010201028b0201020100 +010001020002008600010001000102 +020183000100010101830001000101018300010001010183000100018201000182010001 +010181000186010001000100010701870001000100010001840100010001050181000102 +0107008b0200010001000100010001000100040181020189010201020102000201029602 +000200020102010200010200020102010200020102008c00020001000102000200010001 +010184020002010287020102000201000287020102000200020182010001010186020002 +000100028102010801840200020001010182020102810200820001008700010001000200 +02020283010201028102018d010201000100010001020102010202020101020285000100 +010001020101020100030101028101028202010282020102820200020402820102010201 +83020001028402000200010101020281000282020102820201028f020100020100020001 +020002000200028202010201028100028302000201050101028100028402010001008200 +020182010201030181020101018302000200820002000200840200020001860100010002 +010282020102020281000282020102820201028202010283020102010101880201020002 +000201028602010001020100820001008100010301030281010283020102010401820201 +028e02010002000200010001000200010082000102020283010201028302010201040185 +020001020102870200020002000102010281000202028d01020001000100010001000200 +010a018302000200030090010001000201000100010002000201000183010001008d0002 +00020002000201020002000287020001000102000101018a0201020102010001000102 +820100010301810001030183000100010101810001030181000101018300010001060181 +000186010001000100010901830001000181010004000101010003018700010002000200 +010601870001000100010201840102010002810201910102010200010002000102010201 +020100010201010201019f00010201020002000200020100010001000102010201020102 +010200020002010101010201010300820100018501020002010281020101018300010001 +020102028101020202830002000284020100010289020100010002000201028402000200 +028302010001810102860200020002010202028200020081000104018200010084000100 +010087000100010002010282020102810201830102010282020002010281010201028101 +008300020102820201028202010288020001020102010002820201020102810100820001 +028102008600010001000102020283010201020102880102000100010002008600010002 +000102820201028602000200020002030281010281020183010001028702010200010001 +000200810100840002000102010282000102010281010282020102820200028802000201 +000100020102018202010286020100020002008500010002010282020102030201018302 +010201070181000101018100010101840002010200010086020002010201028302000201 +820102018101008300010001870102000100020002010288000102000102000102810201 +8a010201020102010001000101018f000102000102010201000100010200028c02010201 +000201000100010201020193000102010200020001020102010200020102010281020181 +01029202010201020100010200020002010201020102 +020183000100010101830001000103018100010101830001000101018100010101810001 +860100010001000109018300010001810100020001018300010001010181000181010001 +0081010002008e0201000200010200010001000100010501810002890201020002000200 +020186010201020102018101020102980002010201020102000201020001000100010201 +000100010281020183010200018b01020002010201020102010202028401020100018101 +000100860102010201000201029101000102010200010001020100020102010284020102 +010282020100820002018201020184010200010282020102020283010001020702810102 +830201000101018300010001010101000301830001000182010002820201020102830002 +000201028101028202010282020102810200820001028202000201028100020102860102 +010002010201029001020102000102000102000201020001020402810102030285000100 +010002020201018202010281020086000200020001028602000200010002860200020100 +020081000282020102860201000100010202028200010201020100010281010282020102 +820201028102010201830200010201028300020102820201028602000200010200010081 +02010101820200028202010282020102810201020101028a010200010002000200010283 +020002018101028102018101028202000281020187010201020001020101018202000283 +020102018301020002880201000201020102010101810001080183000100018601000102 +010201010181020102018c0001000100010200010201000201028b010201000201020102 +0100010101850201020002000400810100900001000102010201020102010001000100 +820100018201000182010001820100010101830001000184010001000101018100010101 +810001090183000100018601000100010001010102008201000186010001000100010201 +010083020001008400020002008500020001020103018100010101830001000101018102 +0187010201020102010201028b0100020002010201020102019501020102010201020002 +010201020100010201020100840002000102810201870102000201020002020286010201 +020102000100810201840102000200020002028101028702000201020102008100018101 +028502010201020184010200010085000200020001860100010002000288020102010201 +000102030287010001000100010001008701000100010001008900010001000102010200 +810002820201028202010282020002820201028202010201020101810201010101028101 +02820201028502010201000283020100028202010283020102008a000200010002010001 +000203028101020202810102810201040101028101028502000200010201028101028802 +010002000100010082000100010002028801020001000200020181010001000102810102 +050281010201028100028802010200020001000182010201860102010201020182010001 +830100020086000100010201020302810102010285010200010001810102880201020001 +000200028202010001008602000200010002070282000201820102000100830200020189 +010002000100010001008200020183010001028102010201820201028502010001000106 +0101028b0001000102000100010001028202010082000201010182000100010082020100 +020081010004008402000200028302010201010186020100010001008300020002010282 +0102010001 +830001000101018300010001010183000100010101830001000182010001010181000102 +018400010001008300010001010181000181010001008301000100810001090187000100 +020100020001008102018d0100010002010201020100010001080183020102018c010200 +020002010201020102018a01020102010201020002018101008100018401020002000100 +830200020001008102008c00010001000200010201020001870102010201020102890201 +020102010002000201028300020002020285000200020102840200020002860201020102 +010283020102008500020100010282020001030186020102010201020102870100010002 +000201030181000105018200010081000101010102010084010002010282020002820200 +028202010282020102010281010282020102820201008200010285020001020102830201 +020181010282020102860200020100010282020102820201008100018301020002030281 +010201028101020102830002000102018202010283020102018101008a00010002000100 +020002008400020001028602010002000200810002820201000200010282010002030281 +000201028100028202010282020102830201020181010282020002830201020181010282 +020002010281000282020102850201000200028202010282020002810201810102810201 +020186020100020001028a02010200010001000200028202010283020002008200010201 +028500020001000187010002000200010282020002810200020002028101028302010201 +030181020105018300010001820102018201020183010201028b02010201020100020102 +010002008901020100010001020001850102000102010101810201030183000200018601 +000200020001040185020001000200 +030181000103018100010301810001030181000101018700010001000100010601850001 +0001000109018a0001000100010002010201840102000201810100860002000100010085 +0001020102018201000106018c0001000201020102010201020195010201020102010201 +000201020102010201020102018101028302010001810102810201810102810201810102 +810201930102000200020102000200020100020002000200010082010200820002000100 +840200020102010281010286020002000201020102820001028d02000100020001020100 +010200010201830002000282020102820200028302010201840100010201840102010001 +010101008201000101018302000100870002000100020102810200880002000200010200 +020102810002820200028202010201028201020183010001028202000283020001028202 +000282020102820201028202000281020084000100020085000200020002030281010282 +020002010282010201010183000102018101028502000200010082000102820201028202 +010202020201010082010001850100020002000100830200010001008202000201028900 +020102010201000102820200028502000200010282020002830201020181010285020002 +000100830002000283020002010101030281010201028500010200010081000204028300 +020002020282010201810100030001028201020101018102010301850001000201028902 +01000200020002000101018102008800020102010201020101018a000102000200020002 +000182010002880201000100010002010101850001000100018301000102850200020102 +000200810200020081010001008501020002000283020102010301810201020183020102 +0185010002000201 +810001820100018201000182010001840100010001010183000100010101810001030181 +000106018100010301810001880100010001000100010501920201020100020102000102 +0001020102000200820002018401020102010d0181020186010201020102018101020102 +84010201020181010281020181010289020001000102010200018d010201000100010201 +020100010086000200020001028e0201020102010201020102010201028b020102000200 +010201020002880201020002000200020502830002000202028700010001020100018301 +000102050201018202000201028100010301810201850100010001008100018c01000100 +020100010002000100840002000102020282010002820201028502010201000204028100 +020102830102010282020102820200020202820100028302010002810201020101028200 +020087000200010001000204028101020102890102010001000100010281020184010200 +010290020100020002000100020100020002000181010283020002008400020001028102 +018201000284020002000282020102010281010201028101028202010283020002010101 +0202010081020181010282020002820201028b0201000201020002000200020102810002 +020281010201020401830200020001008302000200010082020102830201000201028401 +000100010301840001020102820200028502010002000101018202000101010202810102 +020286010201020102010101020202018102018101028a02000100010200020001029402 +000201020102000102000200020100010002000183010001028102010101920201020102 +010200020002010001020102000101018402000201020002 +040183000100010101830001000101018100010201810001010183000100010101810001 +8a01000100010001000100010b0181000188010201000100020102860201020100020186 +01000102000201820100018401020002010201830001000105010102820102018a010201 +020002010201020189010201020102010201020102810102010281010201020101010286 +0100020002010202028101028c0201020102000201020002010288020002010201020001 +010187020002000102000282020102060283010201028402010201028502000100010086 +000200020001028102018101020402810002880201000100010001008100010401810001 +820100028202010081000183010201028202010282020100820001020202810002820200 +020402810002820201028602000201000102050201010102810102830201020181010282 +020100830002010285020001000102820201020302810102010281000201028d00010001 +020002000100020102008600020001000201810102820201028202000286020002000100 +028202000285020100020002820200028402000100020602810102010282010001010182 +000102840200010002810201810102830200020082000200010082020002010283010201 +020102010101028200010286020001000200028102018301000100810001830102010282 +020002850201000102010401010282000201860102010002000205028301020102820201 +020502840001020002840200020002010282010002020282010201810102010283010201 +020202900102010002010001000200020100010002810200010081010001000202900002 +0102010200020102000201020102018301020102810201840102000200 +840100010001030181000103018100010101830001000182010001820100018201000104 +01810001080181000102018300010001840102010201850102000102018401020102018e +010201020100020102000100010201820102010c01810001820102018c01020102010201 +020102010201840102010200010095020002000201020002010200020002010201020002 +000200820102018901020102000201020102860200020002000289020100020002000201 +02860201020102010207028100010301850001000100010101820201028c020102010002 +01000200020002820200020102030101008102018b010001020002000102000102860201 +0001000200830001000283020001020b0281000201028101028202010282020102030281 +010283020102018101028202000201028101028202010285020100020002010283010001 +020702810102010204018802000200010002000101018102010201830002000101018102 +018301020102850201020001028502000200020081000201028100020102010101029101 +020102000102000102010001020102010282020102810201830102010201028500020001 +020184010200010282020002040282010201060101028200020001008102008300020102 +03028301020102010285000100010201010184020100010202028b000200020002010201 +020102060281010282020102810201010101028601020102010201020186020002000100 +01020187000100020001020102010302820100020202810002050281010203028c010201 +020102000201020002018201000285020102000201 +040183000100010101830001000101018300010001010183000100010101810001010183 +000100010101810001020183000100010601820002018301020102820201028902010201 +020001020102830200020184010201020184010201020183010201020102830001000103 +0103028401020102018d0102000100020002000200020002010201018f02010201020002 +000201020102010200820001028102008100020102830102010205028700020102010200 +028102008100010101880201020002010201028302010002820201020202810002010282 +010001010186000100020002008400010002010501820201028202010282020002830201 +000102010102810002840201020002820201028802010200010002010281020183010200 +020202830102000201028101028202010281020181010283020102018401000100028302 +010002850200010001028202000282020002010281010082000102810201860102000200 +0102820201020302810102010281010281020102018102018201020101018102008a0002 +000100020002000102880201020002000200018601000100010001010183020102008100 +018101028202000205028101028602010201020102870201020100020002810201850100 +010002008200020001008302000201020181000282020102010283010201008300010002 +020282000102010202018100028302000102010283010201028302010002810201010183 +0001000101018b00010002000200010002000101018e0201020102010002010200020002 +018301020102820201020202010101028201020183010201020202830102010202028a01 +02010200020100020102010287010201020102010203020100010202008a020102010201 +0201020102010285010201000100 +820001008100010401830001000184010001000101018100010301810001010181000101 +018300010001060181000108010102870102000102010201840100010201820102018301 +000100020085010201020100010081020181010284020001000102018500010201000287 +020100020002000201028101020102010194020102000200020102010201020102000201 +02010201020101010286010201000102018b010201020102000200020002870201020102 +01020086000100010201028102010101010281010204028101028a020001000100010201 +000189010001000100010001008b00010001020102010201020185010001000102870201 +020102010002810201810100860002000102010201028701020100020002018101028302 +010201830102010282020102010281010282020002010281000182010002850201020001 +028202000201028101028102018301020102850201020001008100018101028202010282 +020102020281010202028400010001008800010002010200010201028301020102010204 +018202010081000184010201000282020102860201020001020082000200810002820200 +020102010181020181010201028a00010201020100010001028802010201020002010285 +020102000100890001000200010002010282020102010284010201000289020102000200 +020001000200020285010201020002040202010100820100018801000100010001020181 +010284020100010289020002010002000201020102810102820201028702010201000201 +028102010101820201020102810102020281010284020102010201020101820201020402 +810102010281010202028101028202000201028801020102010201020181010084000100 +0100850001000200018301020102 +030185000100010001030181000102018100010101830001000101018100010501810001 +030181000104018300010001810102810201840100010201870102010201020100810001 +840102010200840002010201860102010201020183010201020102030003018300020001 +850102010002008b00010201020002010001020184010201020088000100010001000100 +01008f010001000100010001020102010201020102010182020102860201020001000286 +020102000200020302830002000282020100820001020102850100010002018301020001 +820102018601000100010001820100010201810001810102010281000284020002000281 +020181010285020102000102840200020002810201850102010200018601000100020002 +820201028202010282020100810002030281000281020181010282020002820200028102 +010101820201028502010201000285020100010002010201010100810201010185020100 +02000201028101020202810002010281010201028a01000100020100010201008a000100 +020002000102000201020101010282010001820102008400020001020102820002018401 +0201020105010202810102010209010502830100010002008a0100010001020100020002 +020281010201028201020186010002000200028202000203028401020001008600020002 +000200850002000100010801830201000281020181010083000200028202010281020185 +01000102000286020002010001020302020181020101010c028101020202850102010201 +020202810102080281010284020102010283020002010101830001000182010001820102 +01830102010285020002000200 +050181000101018300010001010183000100018201000182010001010181000182010001 +06018100010901820001008a000102010201000200020183010201028802010201000201 +02018f01000102000102010201000201020102810201030183020002008c000102000102 +010201020100028102018b01020102010200020102010082000102820201020102820001 +020202810102010288010001020102010201890102010201020102010202028500020102 +000281020102018102010401820201020302810102010287000102010001020102018300 +010001010181000204028501020102010282020002010283000100028202010283020102 +018901020001000100020102010283010201028302010002030283010002010101820201 +020102810002820201028202010287020001000200020085000200020102820201028102 +008300020002820201020102820102018101028102010201020281000202028600020102 +010201020188020002000100020002850200010001008100018401000201028202010282 +020102820201028202010282020102820200018301020102890200020100010201020102 +0181000288020102010201000100820002018b0100020002000200020001008200010282 +020002820201020102810102010281010281020083000100028302010002010284000200 +010284020002000281020086000200010200018601000100010001820100018101028c02 +010200010201000201020002010285000201020102020283010201020202810102030281 +000282020002050281010202028101020402810102010281010202028701020102010201 +028102010101850201020102010c0186020102000200018301020100 +020181000102018300010001010183000100010101810001030181000101018100010201 +010005010100b30100010001000100010002010002010200020001000100020102010002 +000200010200020001000102010002010201000200020082000102940201020102010001 +0200010201020102010200020192010201020002010201020002010200020002008f0001 +020002000200020102010201020082000201810102840201020002040285010201020102 +830200020103018100010201820200020202830102000203028701000100020001008e00 +010001000100010200010201000282020102820201028302010201030101028101028202 +0102850201020001028a0200010201020001000201830102010284020002010284020102 +010201028100028202000201028100020102840100020002010281010203028101028202 +010282020102830201020181010201028101028202000282020002820201020302810102 +010284000200010085000100020002810201810102820201028202010082000102820201 +008200010282020102810201810102830201020101018202010281020182010201810102 +810201010183020102008200010286020001000102010101830201020184010200010285 +0201000200028a0200020002000100010002820200028202000201020301020281010203 +028100020102840002000102860200020002000101018300010001030182000102840201 +020102850201000200020402850002010201020602810102820200028202010208028600 +010200020002010283010201020102030101020101820200018201020183010201028602 +000201020102810201010181000106010102820102010101840201020100 +020187000100010001000101018300010001820100010101830001000101018100010101 +810001030181000185010001000100830001000183010001000100860201000200020002 +0083020001008a00020001000100020002008100018401020002018a0102000200020102 +010200830001000286020102010201008200010281020182010200890001020102010201 +000293020100010001000201020102000200020102010002000302810100010085010002 +010200860001020102010081000285020102010200810002810201010101008401020100 +028302000102840200020102840200010001010182000200880001000100010002018301 +020002820201020102810102820201028602000100020002850200020001028102008300 +020102820201008200010202020200840102000200010082020102820200028202010201 +028100028202010281020082000201020182020102810201860102000100010281020081 +000282020102850200010201020102810102810201830102000202028500020002010284 +020001000181010283020102008500020001020082000200810001830100010282020102 +810200810002030201008202000201028200010085000200020002810201020181000104 +01810001850102010001008200010201020100830200010002008a020002000200020001 +000203028101020102810102820200018801020001000100020185010001000200010084 +010002000283020100010301810001010186020002000100028502000100010201028301 +02010203028101020f028401020100020402830102000201028100010101890201000201 +02010201028402010201020102810102870201020102010201820102010a018202000101 +018602010001020102 +040005018100010301810001840100010001010181000101018100010101020002018100 +018401000100018301000100010001018902010201020100020102850201020002008200 +020185010201020102850201020002008c000200020001000102010200018b0100020001 +02010201020102a102000200010201000201020102000201020102000200020002000201 +020102010001010188020002010201000100010081010201020101840001020102880200 +020102010201028502010201020101018202010281020101018702000102010201028202 +000281020182010201880102000102010201028302000102820201028802010201020102 +000285020102010002010281010282020002820201028302000200810002840201000201 +820102018301020002840201000201840102000102890200020001020002010281020181 +010283020001028102008100028202010282020002830201020181010281020181010282 +020102830201020184010002000283020001020502810102010202018600010001000200 +850002000100010101820200020102870002000100020102820200028502010002010081 +000284020102000283020002010201820001008500010001000102018300010001020101 +028300010200010084010002000201028401000100020102810102020281000283020102 +010301010281010282020102880200020001000100028202010283020100010401810201 +03018202010205028101020a028101021102010101028301020002020283000200028602 +010201020102830201020101010102820002000100820201028402010201008100018301 +0002010201010002018b00010201020100010201020182010001 +050101008201000101018300010001010183000100010101810001860100010001000103 +010100810100860001000100010088000100010001020100030084010001020085000201 +000200820001008500010200020086000201020002018401020102018501000100010001 +008102008800020002000200010001008702000200020002000100850100010001000100 +8501000100010001008101000300830100020001008502000200020002008b0200020002 +00020002000200840002000200010083020001000200830100010002008e010002000100 +010200020002000100040081020002008101000200810100020001028a00020002000100 +010002008400010002008600020002000100020081020005008101000200830200020084 +000200020084000200020002008102008400020001008400020002008400020002000200 +810200840002000100840001000100840001000100840001000200810002040281000285 +020002000100860001000100020084000100010082000100020081020001008101008200 +020004008101000200850100020002008800020002000100010002008201000181010002 +000102820001000700860201020002000282020102010285000200020002030201000e01 +840002000102820201028502010002010285020100020102820200028202010282020002 +080281010202028101020c02810102850201000201028202000181010001008102010401 +010082010200810001830100010001008301000102020282010200860001020100010281 +0200820001028102010401830001000102018a0201000100010001020102 +810001080181000103018300010001010181000101018300010001010182000100810001 +020101000601830001000281020186010200020002018a01020002000102000200028802 +000200010200020181010001008101000100830201020086000201020002018a01020102 +000200010201028102018101020102940102000201020102010200020102010201020001 +028602000201000100020085020102000200010001018200020081000286020002010200 +028b02010201020100020102010281020106018202000187010201020102000202028300 +010001810102020281000282020102810200820001028202010201028301020102830200 +010083000200020102010189020002010002010002000100820102018101000200830201 +020082000102820200028202010282020002810201810102040286010001000100028202 +000286020100020001028202000281020182010201830102010281020184010001000281 +020001000402810002010284010201000185010001000100840002000200010001028101 +028202000282020002810200010082010001880100010001020001008300010002870200 +020001000100810001010182000100080004028101020102870002000200020102810201 +050103028101028102010401840200020102820201008300010002020203000e02810002 +040281000202020100030281010203028101028102008500020100010289020102000201 +000201028302010200010082020002830201020001000102810102010282010200890002 +010200020001020001008202000103010100890201000100010001000103010102890102 +0100010201020102 +050185000100010001010101000401810001010181000103018100010101810001840100 +01000101018300010001850100010002018b010200020100020002000201840100010001 +820102019201020002000201000200020001020102010201840102010200880002000200 +01000100010081010001008c010001000102010001000200028202010001008a02000200 +020002000200028a02010002000200020102000100830100010004000102010081020001 +0083010201008b0001000102010002000100018701000100010001008800010002000201 +020083000100020102010082020002010201008201000282020100020003028200020084 +000100020002008301000200840002000200030081010003000102050083010002008400 +02000200020081020082000200070081010281020083000200028a020001000200020100 +0200840002000100830002000286020002000100028202000281020081000202028a0102 +000100010001000200890002000100010200010086000100010001008100010101010085 +020001000200860002000200010001000102820002008100018101000200830102010282 +020002010286010200020002008600010002000200820001000100850200010002008100 +020302820100028202000101018100028402000201020802810002060201008202010282 +0201028402010201020102010081010284020100010083000100018d0102000200020102 +010001020002830201020181010001008102010101820002000200820100028102010101 +030086010201020001000100820102018101020102830100010205028400020100010401 +81020185010200010001010181000101018102010101 +860100010001000182010001030181000101018300010001820100010101830001000101 +018100010101810001020181000101018100010101020088020001020102010201810102 +01028a000102010201000200020183010201028502010201020188010001000102010201 +81010085000200020002010286000201020102018101008b000102000200020002000102 +8702010200010001028e02000200010002000200020100010001008a0100010001000102 +000100810002810201850102000201028602010201000102880201000100010002010101 +82000100020086010001000200028702000200010002008c000100010002010002000200 +028202010281020083000200028802000200020102010081000282020102810200840002 +010200030081010005008201020081000202028300020002860200020001000283020002 +008200010281020083000100018801000200010001020002008302010200870002000102 +000201830100010282020100010081010201028101008300020002820201008400010001 +000200830100020001008602010200010002850200020001008600010002000201010186 +000201020002010101870001000200020002820200020102880100020001020002000100 +820201028102018101028202010283020102008200020087000200020002000202028100 +028402000201020c02810002070281000282020102810200830002000283020100028102 +000200020201008101028302000200820002008400010001028502000200010086000102 +010201028f02000100010002010201000201020002840201020002020283010200020202 +8d0100010200010201000102000200820001020102030188000200010002010001810102 +020281010201028301020102 +810001820100010101010003018100018401000100010101810001010183000100018201 +000101018100010101830001000182010001010101000101830201020183010201020202 +830102010202028301020002910201020002000102010201000201020102018501020102 +010286020102010201028102018701020102010201020202820102019901000102010201 +0201000102010201000102010201020100010001008101028c0200010002000200020102 +000102018900020002000201020002860200020102010281020184010201000283020102 +018301000102010282010200010003028101028402010201000100820201028302000100 +8700020001020002008100028402010001008a0001000200010002010200010084020002 +010002000202820002008200020181010001000302810002010282010200820002010101 +810200820001020102010001028200020085000201000201820100028202010286020100 +020100028502000200010282020102010281000201028100020102010183000100028202 +010086000200020001000300010102000101810002810200820002000300840201000200 +020081010282020100010084020001020002000302010087020002000100020082000100 +010087020002000201020083000200020602810002040281010207028100028602010200 +010002820200028302000100830002000182010001810100870002000201000200860002 +010002010004000101810200010001028101028e02010201000201000102010001000201 +028101028502000200020190010001020002000100010001020001020085000102010200 +900002000201020102000200010200010002810201820102010101010285010001020001 +8401000102010001 +040183000100010401810001030181000101018300010001010181000182010001010183 +000100010101810001820100010101810001890102010201000201020184010201020188 +0102010201020102018f0102010201000200020002010002000202028a01020102000201 +00020102840201020102820201028e020100010201020102010201020102010284010001 +000284020100010201028101020102860001000200020001008102008400010002008800 +01000100010001008100020202850002000201028a020001000201020100020081000101 +018500020002010281020001000102810102810200810002830201020001008101028102 +008300020002020284000200010201028300010002830200020001008402010002000100 +810102810200020081020083000102008500020102010001008102008300020002020289 +010200020002000200010101840200010002840201000100830002010285020100020102 +840200010001810102860201020002000282020100890001000100010001000101018902 +000100020002000102020201008801000201000200020089000100020001020100018101 +008100020102840102000102030288000200010002010002020281010203028801020002 +000201000282020102060281010205028300020102010281000203028300020002830201 +020081000285020002000100870001000200010001810100010085010001000100810002 +820201008800010200010002000181010207028500020001000183010201028102018a01 +0201000100020102010282020102020283010201020202830102010202028b0102010002 +010201020100018501000100010282020102020281010001008b02000102000200020102 +0102840201020002 +020181000101018300010001020185000100010001010181000103018100010101810001 +840100010001010181000101018100018201000186010201020001029402010201020001 +020102010201020100020102010285020102010201860102010201020184010201000281 +02018401020102018a01020100010002000200028102018101029a020100020002000200 +020002010201020102010201020102010201810100860002000100010281020188010002 +0102010001008e0001020102010201020002000200028402010201020102040185000200 +02000202028101020a028601020002000102820201028302010201820102018501020102 +010288020001020001020102040201008101020202830002000281020183010002008600 +0100020002008100028c0201000200020100010200010201028501020001020087000200 +010001000283020002010101830002000285020002000102010281000285020002000102 +010283000100010101840001000100830001000282020102870201000100010001010182 +00010082000100010001028c010200010002000102000100028102000100030283000100 +020102810102860200020102010287020002000102010081000282020102050281000282 +020002830200010204028101020102810102840201020102020201018102010201010092 +010001000100020100020100010001000100018701000201020100018301000201040185 +000200020002020282000201810102820201028202000281020181010281020083000201 +028b02010201000200020102010286020002000201028102018a01000100020001000102 +000200820201020302890002000201000102000201028200020184010200010003000301 + +870001000100010001040181000101018100010101810001840100010001010181000101 +018300010001820100010101810001010181000101018400020102019001020100020002 +010002010201020102018b0102000200020001020102018d010201020100020102010200 +02000100860102010201000101018e020102010201000100020102010201020101020101 +010201010102950001020100020102010201020102010001000100020081000281020102 +010402890002010201020002010288020102010200010001820102010501020281010202 +028101020202810100020083020102008300020102820200028402010201020302810002 +850200010201028102010101810002880201000100020001008800010002010002000282 +020102030281010201028101028902000100010002000201010184020102010081000284 +020100010206020301010201010102840001020002850201000100028102018801000100 +010001000104010102010188020002000100020102890200020002010002000281020084 +0001000200830002000203028100020e0281010201028101020302810002030281000205 +0281010201028101028202010204028101020202820001028e0201020001000200020001 +000200028702010200010201008100010401010281010081000101018502000200010282 +020102020281010283020102018101020102810002020298010001020001020102010201 +00020002010002000201020102830201020102018d00010001020001020102010201028d +02010001020002000200020100020102010102028e000100010201000102010001020002 +0002 +810001840100010001080181000104018300010001820100010101830001000101018100 +018201000101018100010101860002000102010295020102000102010200020001020102 +010200020102018301020102860200020102010294020100010200010201020102010201 +000201020001870102010201020102810201010197020002000200020002010201020102 +0102010201020102008d0001020002000100010001020102810200810001820100018201 +000288020102010201020102840200020102870200020102000100890002000100010002 +010207028101028502000200010001008201000282020102820200028402000200020202 +8101020302840001020102020201008702000200020002008e0001000200020100020001 +000201020302830102000182010001840102000100010082010002840201000102810201 +8201000181010281020183010001008400020002008100028a0201020001000102010200 +010083020001000100030185000100020002840200020001810102830200020082000200 +010081020001008201000204028100020b02810002020281000209028100020102810102 +050283010200020302810102820200028102000100040283000200010201810201810100 +010086020100020001028302000200010081020082000201010182000100010084010001 +000282020102830200020001008502000100020084000201000282020002820200028202 +000284020102000101018202010003008c01000200020001000100010001020182020002 +90020102010200010001020100010200020083000200020102010184020102000201028d +010201020100010001020100010281020082000201 +010081010001008101008300010001070101000401810001820100010301810001010181 +000182010001010181000101018b02010002000102010201020186010201020102018701 +02010201020102830200020181010201028e010201020001020102010001000200850001 +020102018201020188010201020100020002860201000201000283020100028702010002 +0102010202028401000200018101028e0201020102000200020001000102018101008300 +010001010105028801020102010200010285020002010201820102010301070281000203 +020100820102010101830201000201028101028302000201810102010281000282020002 +010284000102010282020102820201008400010002018401020102018501020002010282 +020102820201020102010087010200020002000281020104018100010201840001020102 +010281010285020102000102890201020102010200010282020102820201020102010183 +020102018501000100010085000100020002810201840102010001870102000100010201 +830100010282020102010286010002010200020102810102010281010202028101020102 +8101020a0281010282020100830002000202020100020285000200010201040101028200 +010281020181010281020101018202000201020100020287000200020001020189010001 +020001000100010101830201000181010001000102810002840201000102810200010083 +01020102010282010201810102830200020089000201020100020102010d010102990100 +010201020001020102000200010001000102000102010201810102820200028402010200 +01020191020002010001020100010201000201020001 +810001810100830001000107018100010101010084010001000101018100018401000100 +010101810001010181000182010001010183000200028502010201020186010201020102 +019201020102010200010201020002000200010201860102010201020181010081000184 +010201020181010287020100020002000201028601020102010002030296010201020002 +000200020002000200020002010201020101018800020002010201020183010001008100 +010401010086020002000200028d02010201020002000100020001008300020100810002 +020281010202028101020302870100020100020100010082020002840201020102820201 +028202000201028100028102018801000102010200010282020102820201028302000200 +840002000100860001000200010282020102030283010001028202010283020001008300 +010001850102000100020102810102830201020101018102018101008900010002010002 +01020190010200010001020102000200010001000102018b020100010201000102000102 +850200020001020d02810102080281000206028101020102810002010281000201028100 +028202010202028701000200020001008a00010002000100020002008500020002000281 +020101010102020182020100820001008100010101810001010101028101008100028102 +0081000101018500010001000101018100028102008a0001000100010002000201010181 +000201028601020001000102830200010281020001008702000100010002008700020002 +010002008400010200028202000189010002010001000100018401000100010401820001 +008100020102840001020002010283000100018501000100010088000201000102010001 +810100 +010181000181010001008401000100010201810001050181000182010001010183000100 +0101018100018201000101018100010101810001a2010201000200020102010201000200 +0200010201020102010200010201020102010201820102018101028e0201000200020002 +010002000200028402000200020302860102010200010202028800010201020102010281 +020181010287020002000200010282020002840200020001010183000100010201850001 +000100018201020181010281020181010282020002840201020001840102000100810001 +010185000201020102050281010203028201000101018300020002010201018100028202 +010284020102010201028101020102810002010286000102010200018101008e00010001 +000200010200020002010282020002830200020184010002000186010001000100010201 +810201010101028200020086000200020001020102850001020102010201820200028202 +00028202010081000202020101820201028d020102000100010200010002010209028101 +020102830102000282020002830201000206028100020a02010102028101028202010284 +020001020189010002010001000100018201020183010200028a02010200010002000200 +020202840102010001030106028101028802010200010002010201028200020188010001 +000100010001050185000100020002820201028402000200028202010282020102840200 +010201890102010201020002000201028701000102010002000100010283010201020202 +830102010202028101020202850102010201028602010201020102020287010201020002 +00018201000182010001020181000101018100018301020002 +810001010183000100018201000103018100010401810001820100010101810001030181 +000101018100018601000100010001830102000281020187010201020102000284020102 +010202028801020102010201020185010201020102860200020002000282020001910100 +0102000200010201020002000102000287020002000102010201029c0102010201020102 +010201020102010201000102010201020102010201010101008601000100010001820100 +010201820001008400010201028302000102820201028502000200020084000201000282 +020002080281000203028401000100028b02010200010002010200020181010282020102 +040281010202028200010081000282020102860200020001020185010002010200880002 +000201020001028402010201028a02010001000100010001008200010283020001028502 +010002010285020100020102840201000200880002000102000200028202010203028100 +020402820001028202000202020101010281000206028100020202810002060281000204 +028100020302810102030281010286020002000100020102810102820201028302000100 +850002000100028302000200810002010285000200010001040101028101020202010181 +00018301020100020081020083000201028202000284020002000202028c000100010001 +0001020100010282020102820201028d0201020001000100020100020102820201020102 +810102020286000100020001020702820002008400010200028f02010201000201020100 +020100010001810102810201830102010202028301020102040285010200010201010181 +00028e020100020102000102010001020100 +010185000100010001020183000100018201000102018100018201000101018200010083 +000100010101810001010183000100018601000100010201840102000201830102010289 +02010201020100020002820201028d020002010200020001020002000287020102010201 +020187010200020100010081000101018a0201020100010201020102010201018a020102 +010201020102000283020100028102018101028102010301860200010001000107018100 +018201000285020002010201010186020102000201028502010001020182010201820100 +0207028100020102830002010282020002010201008a0100020002000102010002850200 +020001028502000102000281020181010281020181010282020102880200010201020002 +008300020002820201028902010002000201020102020281000106018202000201028500 +020001000182010002820201028202010284020100020083000200028302000102860200 +0100020002050282000102020281010202028100020a0281010201028100020202810002 +010281010207028101020102830002000203028201000201028101028302000102820200 +028302000100870001000100010001020183020100028502000200010281020081000204 +028500020001000101010402870001000100010001820100010101830002000103018102 +010101810001010181020089000200020002000200020702830100010201028301020102 +8202000201028c01020001000102000200010001040101008c0102010201020002000102 +010201028900010002010001000102820201020202010104020201810001010182000201 +8601000201020002840201000102 +810001820100018201000101010100030181000184010001000102018300010001010181 +00018201000101018300010001820100010101830002010286020102010201028d020002 +0002010002010200020002820201028702000102010201028c0201020102010201000201 +020083000102018601000102010201810102030291010201020102010201020002000200 +020001020184020102010201028100028702010001000100010601830001000186010002 +0102010281020101018300020002020283000200028a0201000100010002010002020282 +010201810102830200010287020002000201020102010102010181000282020102820200 +028202010282020102820200028202000286020100010002008100028502000200010282 +020102010202018600020001000100830002000282020102860200020100010202028501 +020102010203028300010201810102820201020102010101028300020002040281000201 +028101020102810102060281010288020002010201020102010281010202028101020102 +010102028101020c02840002000102820200020302810102810201810102040285010002 +010201810102030285000200020002820201028202010201028101028602000200020102 +010282000201020101008a01000100010201000201028302010200840002000102840201 +000102040202010100820100010101810201030185000100010002030283000201020102 +820102018301020102830201000184010002000282020102860201020002010284020102 +00028c020102010201020001000100018f01000100010001000100010200010201830100 +02018201020101018a0200020102000201020001010181000101010000 +040181000101018100018401000100010401810001060181000101018100018201000103 +018100010101820001028702010201000201028702010201020102018a01020102010201 +000200028a02010002000201020102018401020002008100020102870102010200020102 +02028500020102010201028101020202810102810201810102830201000201028101028d +020001000100010201000100010082000100840001000100890001000100020002010081 +0002820200028c0201000201020002000201020084000200010081000183010001028202 +010202028700020102010201028102008300010001010101008401000201028202010284 +020100010201028401000201028402010201028202010082000102020286000200020001 +008400020002008400010002018101028602010001020102020281010282020102010281 +010282020002030283000201020302820102018101020102810002010281010206028101 +020102810002020281000201028101020202810102020281010281020081000206028101 +020602810002010281000282020102810201880102010200020100020202810102010281 +010201028200010202028301000100840002000200940001000100010200020001000201 +02000100020002030201018b020100010001020001000200040084020102010283020100 +0203028801020102010002010001008f0200020002000100020002000100010281020182 +010201810102820201028202010201028401000200010201010283010200028202010202 +02830102000202028300020002890200020002000100010202028a010201000201000200 +0102010201018302010201820100010101810001010189000201020002010200020002 +840100010001010181000101010100850100010001008100018201000101018100010301 +810001010181000184010001000101018100018c01020001020002010200010201920102 +000200020100020002000201020002000201028a00010201020002000201028502010001 +000289020002000100010200018201020185010201020102010283000200020302890002 +010201020102010282020001820100010401830001000101010100830100010283020102 +00850001000102018401020102018b010002010201020102010001830102000182010200 +820001028202000282020102020201010102050101008301000102810200010083010201 +020302810002820201020302810002020201010102010086020100020002008500010002 +000288020002000102000102010283010002008100028302010002820200020102810002 +010281010228028200010281020001000102830102000202028100020402840100020102 +8102008a00020001000100020001008c0001000200010001020002010202028301020100 +830002010282020102830201000102018400020102010201830200020088000100020002 +0001028202010202028101020102820100010201820201028f0201020001000200020001 +020001000201028801020001020100020082000102820201028e02000100010001000100 +01000200020502840002010201020101028a010201000100020100020081000101018100 +018401000100018601000100010001860100010002000202028a00020002000200010200 +0283020102018701020100020100018b0100010201020002010002018601020001020001 + +82010001010181000101018100018201000181010001000b018100010101810001010183 +000100018201000101018202010286020002010201028a02000200010201020102019901 +020102010201020102010201020102000102010201020102019801020102010201020102 +010002000200020002000200020002020281000206020201810201010183000100010101 +820001008200010001008d01000100010001000100010200028602000200020102820200 +028102010101810201870102010001000102830200020082000102820201028202000181 +01028a020102010001020102000182010001840102000100820001028202010284020002 +01020102010102028101028f020001020001020100020001000201028502010200010081 +000184010200010285020100020102840201020102820201028202010206028100020102 +810102090281010201028100020a02810102080281010283020102010101850201000201 +02820201028202010282020002850200020002008a000200020001000100020087000100 +020002000201028101020102810102820200020102810102820201028f02000102000100 +020102010201000102850201020001020402840100020102020281010203020100810102 +030287000200020002010201020100810102010281010288020002000102010001830102 +000285020100020002810201840102010201810102820201028302000102820200020202 +8301020102820200018101028702010201020100028b0200020002000200020002008100 +02020282010201020181000186010001000100010201070282010001010181000201028e +0002010200010201000102010001020002 +810001820100010101810001090181000182010001050181000182010001840100010001 +0101810001820100018401020002018b0102010200010201020102018501020102010201 +028801020100020002010201028401020102018c01020102010201020102010201900102 +0102010001020102010002000201020402830102010202028f0001000100010001000100 +010001000183010002010101910200020102000100010001000102000201028402010201 +020102810100830001000104018102018201020102018100020402810002810201030182 +000100830001000185010001000102820201028702010002010201020302010181000282 +020102810201010183020102008600010001000200820002018701020001000201028202 +0002010281000201028100020802810102010281010205028100020a0281010282020002 +820201028202010207028300020002850201000102010201870001000201000100810001 +850100020102008500010001000184010001000183010200010101850200020002018401 +000200028202000201028101020102010001028101028402010002008300010001820102 +018501020001000288020002000100020002820201020102010182020102010203008202 +000201028200020181010202020401810002020281010203028201020089000200020001 +000200028702000201000200028202010205029b01020001020102010002000100020002 +000200010201000201020102810201820100010101890200010002000102000202028101 +02030281000201028801000102000200020182010201010181000101018d000100010001 +0201000102010001 +010181000101018100010101810001020102000101830001000101018100010201840001 +000100810001010181000101018100018201000284020102010299020102010002010201 +02000201000200010002000201020102018c010200020002000200020001020102930002 +000200020001020002010201020002010201820102018101028402000200028202000285 +02010001000105018100010101830001000183010200028102018e010002010201020102 +000200010200820001029402010201020102000102010001000100010001000101018302 +010201810102820200028602000200020001020181000182010201830102010282020102 +820201028502010002010281020183010200020202810102860201000100010282020002 +8c02010201020002000200020102820200028202000208028101020d0281010282020102 +090282000102010281010203028101028202000201028400010201028302010001020183 +000100010101010001028101020102810002850200020001028502010200010202028400 +020002008100028202010286020001000200020302810102050281000285020102010201 +010189020002000200020001008400010002018201020101018300010002010201018302 +010201810100850002000100018101028202000281020182010200830002000282020102 +81020181010282020002010289000100020100020102018101028e020102000100010002 +00020002010282020102020281010201020101010201018f020001000100020102010002 +000200028202000286020002000201029002010201020002000102000200020001020102 +810102840201020102820201028202000201028300020002010283000200020102830002 +0102 +810001010181000101018100010301810001040181000101018100010201810001050181 +000101018100018201000101018102018701020001020002018501020102010202028c01 +0201020102010201020002008300020002830200010201028701020001020001008d0001 +000100010001020102010200820002008300010002870201000200020102010201018700 +010001000100010101840201020002850200020102008300010200900002000100020102 +010002010201020102840201020102810201010188020102000201000100010082010002 +850200010001028202010282020002840201020001010182000100870001000100010001 +81010202028100028a020100020102010002010283020102010201820200028302000102 +82020002850200010200028202010201028100028202010208028101020d028101020102 +810102020282000200880001000201000200020102810102810201020102028101028802 +0102010001000100880001000102010200010201010081010201028400010001008a0001 +000100010001000201810102810200830002000282020102040281010201028101020102 +8101028b0201000100010001000200028602000100010001020188000100020002000102 +02028100028c020100020100010001020002010201840200010001880100020102000200 +020402830100020081000281020189010002000200020100020502810002820201020102 +810102880200020002000100010101810001830102010201029500010001000201020002 +0002000100020002000200028602000200020102860201020102010207028100018a0102 +000201020002000201820100010101870001000100010001 +010181000101018100010b01030084010001000101018100010101830001000182010001 +010181000101018c02010200010201000201020102020288010201000200020002020291 +0100020002010201020002010201020102018d0102000201020100010002000201010183 +000102010101860002010200010281020183010201028202000103018f00010001000102 +010201020102010201820100028402010201028502000100020082000100880001020102 +000200020102010081010287020002000100010084000102000283020001028102008300 +010201840102000201010182000100010002018102008300020102820201028202010282 +020102820201028702000200010200028202010283020001020202820001020a02810102 +0b0281000201028101020102810102050284000200010283020102018801000201000200 +020087000200020002000282020002810201810102820200028302010201060181000182 +0100028b0200020001020001000200020102810102820201028e02000200010002000200 +020100020103010302810002050281000201028200020085000100010001810102820200 +028a02010200010002000200020202810102020281000281020181010001008401000100 +02880201020100010200028302000200810002030281010201029a000200010001000100 +020002000102000102000200010200020102860201020102010288020102010201020002 +830200020082000201810102020281000101018300010201820102018201020181010289 +020001000100020002000100010284000200010281020182010201030181000101010100 +01028a0100010201000102010002010282000200 +830100010081000186010001000100018201000184010001000182010001840100010001 +0201820001008100010101810001820100010101810001860102000201000202028d0102 +000100010201020102000201830102010201029f01020102000200020102000200020002 +000200010201020102000200020002010101830001000101018102019001020001020102 +010201000100010002010101030202018902010200020002010200030083010001008700 +010201000102008400020102018b01000201020100010001000186010001000200028202 +010281020086000100010201028a02000201000100010001008400010001008300020102 +030283000100020102810002070281010207028100028202000203020100050281000201 +0281000207028100020102810102810201810102820201028d0201020102010200010200 +020001830100020083000100028202010282020102810201810102830200020088000102 +010001000100810001010186000100020002018201000183010201008400010002000200 +850201020001028202010282020002010285000200010002020281010201028100018201 +020185010201000200840001000100020081020102018500010001000102018300020002 +840201020002010283010200010101850200020001028202010085000102000102830201 +000202028201000201028300010001010182020102820201028202010284020002010288 +020002000200010201810102820201028602000200010002820200028202010285020102 +010200820001028502000200020086000102000200028202010204020101810201850102 +000100018101028c02000200020002000102010200850002010200028702010001020100 +028602010001020100 +820100010101810001090181000101010100010181000104018100010201810001010181 +0001890100010001000102010289020102010002010200028f0201020002010201020102 +010002000287020002010002000287020102010201020185010201020100820002018201 +020101018c000200020102010201000100010201810201010181020101018f0200020002 +000200020102000200020185010200020001830102010288020002010201020002010284 +000201000284020002010202028201020185010001000102850201000200028202000286 +020100020001028502010201000102010200830100010083000200028202000215028101 +020c02830102000201028101020102810102830201020185010201020002010201010202 +810102010285010201000102030282010002830200020181010086000200010200028202 +0002010203010102810102810201030101008b0100010001000100010002008500010002 +01028202010283020100018b0100010002000200020001008b0001000100010002010201 +020102810102020289000200010002000102018301020102850201000200020102810002 +880201020001000201020602810100860001000100010001000201810200840002000100 +840001020002020285010200020102890201000100020002010083000100010201810001 +810102810201830102010201028900010001000200020002850201000200028402010200 +020202820001000100880102010002000200028102000100880100010001020100028402 +000100028502000201020185010201000201860100020102000101018100018301020001 +0101810001010182000102 +020181000101018300010001840100010001840100010001820100018101008100010201 +810001840100010001820100010101810001020186000100020001008200020188010201 +020102010201a10102010201020002000201020102010200020102010201020102010201 +0201000200850001000200018201000101018102010101830201000103018a0002000102 +0102010201028102018101028302000102830200010286020002000201028b0200020002 +000201020002008500020002010083000102018c01020002010201000200020002820201 +008400020001028302010201810102040281010289020102010002000201020202010106 +028100020c02810102030281010284020002000201028301020102030282000102820201 +028502010201000202028101028202010283020001028202010202028100020102850001 +000201020102820102008400020001028202010283020001028102018301020102010282 +000200890001020100010001000104018202000281020186010200010001008700020002 +000102000100010281010282020102820201028202010282020102840201020002020281 +010201028101028102018101028102018101008200010082000102810201820100010101 +81020181010201028100028202010209028b010001000102000200020102820201028502 +010001000204028100028202010201028701000200010001020402830002010201028100 +02030201010102810102020282010201820102018201000182010001030183000200029b +020102010002000200020100020102010201020001020002000100018101020202830002 +00028d020102010201020100020102000201028100018301020002010281000201020000 + +820100010101810001040181000184010001000184010001000181010083000100018301 +000100810001010181000182010001010183000100018601020102010201820102018e01 +02000201020002010201020102008d000201020102010201020102000283020100028a02 +010002000201020100018201020186010201000102018401000200010101830001000101 +019602010201020102010201020102010201020102000200028602000201020102010201 +008c02000200020100020102000201850102010200028302010001870102010200020002 +820201028502010002010286020002000201020202810002080283000200028202000211 +028400010201020102010001028301000100840002000100860001000201000285020100 +020002820201020102810102830201000282020102010281000201028100028602000200 +0102018b0100020100020102010201008200010281020001008101020102820102018101 +02820200020102840102010201870100010001000100010083020002008f000200010200 +010002000100020102008100028402010002008100020102860002000100010203020101 +840001000102850200010001008300020001810102010282010002010288000200020002 +000102860201020100020181010202028100010101820001008500010002000281020083 +000200020202820001020102870102010200010001010182020002810200890002000100 +010002000185010001020102010281010201028301000102020282000102840201020002 +840200020002040286000100010002010401810001840100010001820100018501020102 +01028902010200020002010201830100020182010002830201000101018e000201020002 +010200020100010201 +8100010101810001820100018201000115018c0001000201000100010001000101018400 +0102000201028b0001020002010200010200020302810102880201020002000200028302 +010201830102010285020102000201020182000100870001000100010001010181000194 +010001000102010002000200020102000200020102810200810002020287010200020102 +0002880201020102000201028a02010201000102010001000100820200028a0200020102 +01020002000201028200020086000200020001020a028101020402810102850201020102 +018301020102060281010282020002820201020402890102010201000100010081000281 +020101018502000100020083000200028202010201028500020001000282020102820201 +020102810102010201010202020182020102010281010281020083000200028102018101 +028202010286020102010200028202010282020102010283010001028102008100010101 +810001810102860201000200010282020100860001000200020184010001000104018400 +010200020402830102000206028201020182010201840102010201830100020081000289 +020100020001000100028602000201020102010281000284020102000281020101010402 +810102010288010002010200020001830102010203020201850001000201028d02010002 +000201000200010201020202810002850201000200028302010201810102020207018100 +018801000100020102010287020100020002000286020002000200020102810002870200 +020001020001850102010200020102010181000101018200010291020002010200020100 +010201000102010001 +010181000101018500010001000105018300010001060181000182010001010188000200 +010002010001010181000186010001020100028702010002010201020102010184020102 +010282020102850201020102018101028f02000201020102010201020102010201820102 +01840100010001050183000100019b010201020002000200020002010201020002000201 +020002000201028902000200020002000200010083010001000200850100010001020102 +810102820201020202810002820201028502000200020081000204028100020202810102 +090281000285020002000102810200010001010102810102810201810102810201010105 +028100028202010286020002000100018601000200020001840100010002820201020102 +810001820100028202010202020201810001810102020281010203028100010101010289 +010200020102000102008100020102840001000102820201020102040182020002030281 +000282020001010181000101018100028802000200010001000102018300010002820200 +028202010283020102010101810001030103028101028402010200028102008400020001 +000200810102820201020102810102820201028202010283020001028102000300020284 +010201000189010001000200010002018301020002830200020083000200020702010084 +010001000289020002010001000200018201000185010001000102820201020102810102 +8a0201020102010201020102020286000200020002008a00020001000102000102010401 +8102010301810001860100020002000208028101020202850100010200028b0201000102 +0100010201000101018100010101 +810001010181000106018100018201000105018300010001040185000100020102820201 +028102018201000101018100018301000201840100020102820201028202010201029701 +02010201020102010201020102010200020102010201028b020102010001000200020001 +820100018101008500010001020181010202028200020181010283020001028102018301 +02010290020102010201020102010201020102010286020002010201028d020100010201 +020102000102000216028300020002010282010002010283000200028302010201830100 +010081000104018402010201028202000282020102820200028202000282020102820201 +028802000200020002010201020100830100020083000200028402000200010101050281 +010282020002040281000201028101020102010101028301000102830201020182010002 +820200028102010201020287010200010001000201028100020102810102050204010102 +840002010002010281010287020100020002000181010081000203028101008400020002 +0183010002008100020202020101020101820200028802010201000102010002008a0200 +010201000200010001810102830201000283020100020102830002010081000101018c02 +000100020002000102000102820201028202000201020101820201020102010181000282 +020102820200020402810002820200028202010284020100010208028101028202010001 +008201020104010100840200010201910102010001000200020100020002000201028602 +000201020102840201020001020181000101018100010101810001010185000201020002 +8802010001020100010282020001 +010181000101018100011401810001820100018401000102018601020102010001820100 +010101820001020202890102010200010201020193010200020002000200020102000200 +020002010283020001028302010201020185000100010001840100010001020101009a02 +01020100010201020102010201020102000200020102010201028e020102010201020102 +010201020102820200020102810102830201000203028100020202810002040281010202 +020300020282010200010082020102010282000102820201028402000200028102018301 +000100020085010001000102820201028402010200020102010181000204028101028702 +000201000200018301000102010281010282020100810002030283000200028202010201 +028101028202010284020102010207028401020102018501000200010084000100010081 +000282020102860200010002010283020102018101020602830102010083000100010101 +810200820002008400020002008200020182010001010182000200850002000100020202 +810102810201830102010202028101020202840102000200020082010001830102010283 +020102008500020002000284020100020183010001000100810102810200810002830201 +000104018400010201028202000282020100850001000201020502810102820200018301 +020102820201028202010289020102010002000200028202010202028100010101830001 +000202028101028502000200020001008402000201028d02010200010200010001000200 +010301840201020001010186020002000200018101020302010181020193010200020102 +000201020001020100010201000101018100010101 +8100018a0100010001000100010001820100018601000100010001820100018601000100 +010001820100028402010201028202000283020100018201000101018102018301000102 +940200020100020102000201020001020102010201028102018501020102010283020001 +028402010201008100010201820001008200020181010085000102010201810102850201 +000200018101020202950102010201020102000200020002000201020102000286020102 +010201020d02810102030285010201020102820200028202010201028600020002000102 +820201028502010201020181010282020102820201028602010001000201020181000101 +010102830002000283020001008100028202010282020102820201020102820102008900 +020001000201000200810001820102008100018301020102010281000282020002010281 +010282020002820201020102810102010201010402810102810201020181000182010002 +810201830102010282020102810201830100020087000201000102010202020101010282 +010201010181020182010001840100020002890201020001020100010282020002820201 +028302010200010002028200010081000201028100020202010181000201020101810200 +870001000100020002820201028202010282020102030282000102050286000201020100 +010101010285010002010200870002000100020001020183020100028a02000201020102 +000200028502010002000201028200010282020102040283010001020502830001020101 +01840200020001810100810001010183020001008100028502010002000203028100028e +020002000200010001020002000102010201008202010281020101018100018701020002 +01020002010285000201020002010285000102010001 +820100010101810001060181000107018100010201810001020181000189010201020001 +020102010101810001820100018301020002840200020102820201028f02010201020102 +010201020102010002900201020102000201020102000200010001810100010082010001 +810100010086020002000201009100020002010200020002000200020102000201028701 +020102010201020502810102010287010201020102010284020102010203028100020102 +820100028202000282020102830201020181010284020100020085000200020002820201 +028202000283020102018401000200020202010101008201000101018500010201020181 +010282020102820201028202010282020102030281000282020100010081010084000100 +020084000200010082000102820200028202010201020101820201020102810002820201 +028202000201028100028202000202028701000100020002000100010201000302850100 +010200028302010201010101028101020202810102860201020002000186010200020102 +000200810200850001000100010101850001020100018101000100010181000101018302 +0100020202810102010281010201028301000200810002810201020101028c0102010002 +0001000200010001840100010200010007028700010001000201028a0201000200010200 +01020184010002000203028101028f020002000100010002000100010002010201850001 +000100020202810102820201028202000203028201020186010200020102000100810200 +8700010200010201028402010200028b0200020100010200010001020102820102018101 +020102830102010291020001020100010201000102010001020100830001000101018800 +0100020001000100 +020181000101018300010001820100010201810001840100010001020181000101018100 +018101028102008300020002840200020102810201010181000182010001870102000201 +020102990200010200020102000201020102000200020102000200020002830201000285 +0201000100010301860201020102010201028401020001028e0200020002010201020002 +00020002080283010201020c028200020001008202000201028c00020002010001000200 +020102840201020102810201810102840201000102820201028302000201810102850201 +020001008200010202028101028202010001008601000100020001810102820201028202 +000282020002820201028102018301020102010281010201028100018201000201020300 +890200020002010002010283020100028302010201810102820201028202010201028100 +028302010002020283000102010101830002000189010201000200020100020102810102 +820201028302000102850201000201028202010203028101028102010301010083010002 +018401020001000100830201000102018202010203020100010282000200020001028301 +020102820200028702000100010002008900020100010001000200870002000100020102 +820201028202000281020181010201028100020102820102008100010301810001020188 +000200020002000200810002850200010201028302010201020101028100028102018501 +020002000201028100020202010102028100028602010201020102820200010101870201 +000100010201850102000200029c02000201000201020102000102000200010200020100 +0201000102010285020002000102820200018b0102000201020002010001028202010201 +02830002000201028100020202 +820100010101810001020181000111018100018101008b00010201000201020102000183 +010200018201000101018d00010201020102000102010201028202010201028901020002 +000201020102850200010201028102010401810001810102020282000102810200850002 +000200020c0281010202028b010200020102010200020002050281000201028301020102 +89020102000200020001008d000200010001020001020102000284020102010202028501 +000200010085000100020102820201028202010282020102820201028202010283020001 +008200020101018102010101010201018202010282020102850201000201028202010201 +028100020202820001028602000200020102830200020081000286020102010201020102 +810102820201028202000282020002820201020102810102020281010284020102000186 +010201020001008200010201028101028202010281020084000102010282020002010282 +000102040281010201028100018401000102018301000100860002000200020087000200 +020001000182010001820100010401010282010201010103028201020185010201000201 +840102010201010101028701020001000102018201000106010100810102030294000102 +010001000201020001000200020001020001820102000100850200020001028902000200 +010001000102880200020001000201028202010205028801000100020002000187010200 +010201000184010200020088000100010201020102830201020101018802000100010002 +000183010201008900010200010001020102040285000102010002820200020102940002 +00020002000100010001020100010201000100 +030181000101018100010201830001000184010001000184010001000182010001820100 +018501020100020184010200020184010200020189010001000201020100028302000102 +8d0200020102010201000201020102810201850102010201020202880102010201000200 +01020103020101840201020102820200020a028d01020102010200020002000200020102 +840002000201850102010201029102010200020102010200010001020001000289020102 +010200010200028202000201028201000201028500010201000282020002820201020102 +810102830201020181010282020102850201020102018901000100010002010201830100 +0102870201020100020102010281000282020102820201028c0201020100020002000200 +010083000200028502000200010201028401020001020102020102028101028202010201 +028101020102810102030288000100010001020102830201000282020001010101028100 +020102810102810201020102028401020102018101020102810001020101008101028702 +010001000200010201810002810201020101028601020001000200810002850201020100 +028202010282020102010281000201020300860201000102000282020002820200020102 +810102820201028202000282020102050286000102010001028302010001840100010001 +880100010001000100028202000201028101020202010187000100010002000282020102 +8b0200020001000102010201020402810102030201018402010200020102840001020002 +820200028202000287020100020001020181010281020101010302830102000285020102 +010201830102010281020101018102019401000102010002010201020002010200020102 +00028602000201020002 +010181000101018100011501810001870102010201000201830102010287020002010201 +000101018202010284020102010281020181010201028701000201020002018101020402 +920002000201020102000200010001000102010209028100028402000100020102810102 +030281000282020102830201020104018100010101810002880201020102010201028602 +010201020102870201020102010200830002000284020002010284020102010203028101 +0283020002000200860200020002010201028100028402010201028402010200028c0201 +020002000100010002010281020101010702810001830100010284020102000282020001 +010182020102020281010201028600010200010201840102000201830102010201028300 +020002820200020102830002000284020001020182010201870100010002000100820001 +008200010201028101028202000283020102000100820200010101090202018800010001 +020002000282020102820201008700010001000100010101850201020001028202010281 +0201820102018101020502860002000200020083000201028102018101028b0200010201 +020102000100028102018301000100830001000282020002010201018102010101010001 +0281000202028300020002010283000201020102810102050283000100010b0182020102 +03028c000200020002010201000201028102018801000201000100010001008a01000100 +010002000200028302010002010288010002000200020102020284010200010287020002 +00020102010101820002018c010002010200020002010200018401000102018201000102 +01810001 +810001010185000100010001820100018401000100018401000100018b01000100010001 +000100010001008c02010001000201000201020102840201020102810201830102000282 +020002820201020202910102010201020102000201000102010201028902000102010201 +020102050281000201028500020002010284020002000202028d01020102010201020102 +010201028802000100010201000101018302010002860201020001000284020102010288 +020001000200020102840200020002810200010001020200010281000203020100810102 +830200020081000201028101028102018501020100010282020102020285000200010201 +830100010081000282020002820201028102010101810002020281000201028100028202 +010201028301000100860002000100020081000282020102850200010200020102850002 +000100020202810102820201020102010183000200028a02010201000100020001008400 +010002018101020202010101028100028602010001020102820201020202860102000201 +020102018f02000200010200020002000100020002810201010185000102000102820201 +028102008300020002010281000201020201010201008301020102850200020102010201 +840201000201820102018101028102018201020087000200010001000201028501020102 +010082000201870100010200010001020185000102010002820201028302000102020201 +010302830002000282020102820200028402010001020102010182020102820200028402 +01020002010201018900010001020001020102840201020102820201028c020100010200 +020001000100018201000101018300020002050282010002940201000201020001000200 +0100020102000201000285020100020102010201010100 +850001000100010101810001840100010001820100018601000100010001840100010001 +010182000102810201890102010002000201020184010201020181010201028601000102 +010201820102010101820001020102870002010200020102010285010201020002860201 +020102010207028701020102010201028c02000102000200020002010002890201020102 +010201020103018700010002000200018301020102020283010200028302010002820200 +028102008e0001000100020102010002000201028402010201028a020102010200010002 +010003008301020102020285010200010201850102000100020102810002840201020002 +810201810102850200010001020302840001020002010281000201028100020202830100 +020002008401000201028302000102820201028302010201810102860200010002000289 +020002000102010200020302810102810201810100840002000200820001028202010282 +020002010282000100850001020102008100010201810002010281010201028101028602 +010001000102820201008800010001000100010083000201028402010001008800010001 +000200020084000102010205028300020102890200020002000201020181010201028101 +028402000200020102010182000201840100020002820201020102820002010301010001 +028400010201008a0001000200020001020002010281010283020100028a020001000100 +010001000281020101010102810102010283000100020102810102820201028202010286 +020100020001000200840102000200010084010001000101018300010001870100010200 +020102890201020100010002010284020100010285020102010001010181000103018100 +018b010002010200020102000102010283010200020202 +050181000116018600010200010001840100010201830102010287020102010200010201 +02010183000201020502840100020102890200010201020102000202028b000200020002 +00020002010282020102020201018300020001830102010281020186010001020102018e +01000200020002000102010201020101018502010002000102018b020102010200020100 +020002880201020102010200010101030083010200028702000200010201028202000181 +010285020001020102850201000201028202010204028100028202010283020100028102 +008100028202010283020002018101020302010101028101028202000282020102020281 +010202020401010282010200010082020102010201018202000283020102008100018301 +020102820201028202010201028100020202810102020282010002820200028302000200 +810002010203010202810102860201000200020082000102050281010201020201010082 +010001020101028200020081000202028201020184010001000101018102018301020102 +8c0200010001020102010200020002008101028602010201020001890102000200020002 +000185010200020100850001000100018101020202810102810201020183020102008400 +020001028202010282020002840200010002050282010201020102028301020102010282 +000102820200020302020184020102000283020002008100010101830002010202028101 +020a02810102030286010201000100018401020102010101830002000282020001830102 +000101018100018c01020001000102000201020002830201000187010200010201020183 +01000100 +860100010001000115018800010200010201000283020002008a00020100010201000200 +028402000201028202010285020102010001830100010294020102010201020102000201 +020102010201020102820200020102830002000284020102010288020102010200020100 +010093010201000102000201020001000201020002000201028100010201820001008100 +028702000102010201028602010201020102810200030085020001000102830201000101 +010102810102820201028402000200028502000100010085000100020102820201028402 +010200020102840100020002030282010201840102010002810200810001810102820201 +020102810002840201020102030281010282020102830200010085000200020002010285 +010001020102840200010201820100020102010002028100020302810102020281010202 +020201880001000200010200018401000200028402010201008100028702010201000100 +018101028502010201020181010201028201000101018302000100020082020002840201 +000201810102810200820001008900010001000100020002820200020302810102840201 +020002820201028202000282020102810201030102020101810002810201820102018201 +000282020002060282000201020183000102018301000100030082010001810102020282 +010002010282000100010083010201028a02010002010001000100018101028402010200 +020102810102840200020102880200010002010200028402010200028602000200020001 +070184020102010282020002010281000283020100020602850002010200010101860002 +00010200018301020001010181000101018b000100010001000102010201 +020181000101018100018401000100018401000100018401000100018401000100010101 +810002830200020087000100010001020185010201020102860201020102000101018100 +028302000201830102010202028f01020002010200020102010201020002850201020102 +010101010285000200020002820201028302000102020288000102000200020001020103 +028d000200020002000200020002000104018102018101028b0201020102010201000200 +028202000181010201020100820200028402010002018201000284020102010283020102 +010101860200020002000183010201020102810102020281010201028101028102018101 +020402020185000100020002820201028302010201810102820200020502870102000200 +010002830201020084000200010201028101028102008100020202010002028101028402 +010201020102810002010282010002860201000102000183010001008100028202000201 +020101820201028502010201000289020100020002010201020202810102010281000101 +010100010282010201820100010101820001028202010282020102820201028102010101 +850001000100028202000205028301000102810200810002830201020187010002000102 +010283020100028602010201000100810002830200020001000202830100010281020182 +010001850100010002018101028102018201000181010084000200010203020101810201 +010101028401000200028402010201020102820001020302020101028101028102010301 +840201000100830001000182010001820102018301020102860200020102010284020002 +00028c020102010201020001020100028102018201020101018200020181010086000102 +01000102860200020102000201028100028202010288020001000102010001 +820100010101810001150182000102860200020001020001000102820002018301020102 +890200020102010201000187010001020102010287020102010201020185010201020102 +810201830102010286020002000200020202830102010284020002000294020102010201 +02010201020102010201020002010283020001020202850102010200010101820201008e +000100010201000102010201020102840201020001860100020002000181010287020102 +000102000202028300020002880201000102000100018801000200010002010285020100 +020002010281010283020001008300020002830200010201020101010282010002820201 +028202010201028101028102018101020102830102000281020182010200830001000289 +020102000100010201020202010102028200020084000200010282020002820201020202 +810102030282010200810001020185000100010201810102860200010002000282020002 +87020100010001020101010102010104028a000100020100020001000288020002000100 +020002020282000102850201000100010801020286000200020002008300020102850200 +020002018101020202810102890201000100010002010001000902860102010001020082 +000201860100010002000201028100018101020202810102040283000100028202010284 +020102010282020102820201020102840001020102020283010200020202020086010002 +00020102820201028402000200028a020102010002010201020182010201020184020001 +000101018100020102830102010293020002010200020102010001020100020102000101 +018200010083000100010101840001020002810201 +030101000101830001000182010001840100010001860100010001000181010092000100 +020001020100020002000100010001028302010002860200010200020182010001860100 +02010200020202010101028401020100028c020002000201020002010200028402010001 +028602010201020102840200020002890201020102010001020001008c02010201020102 +010201020102020283010200028102010601820201020302890102010201000201020084 +00010002008a000200020001000102000283020102010101010283010200028202010086 +000200020001028202000201028400020102010101040283000201020102870102010201 +000102040281010282020102820200028102018101020102810102890201000200010200 +020083000100028702000102010200028102008200020081000101010102810102820201 +028202010201028100020102820001020102810001830100020084000102000281020102 +010202080181020083000201020602820102010101860002000200010085000100020002 +810201820102010301810201810102860201020001000282020002820201020202810102 +010281010201028101028502000100020086000100010201028202000102018500010002 +0102820201020202810102810200810001010183000100018b0100020001000100010001 +0283020001020402840002010201030101028b0100020001020002010201020102810102 +010281010205028300010200810002880201020001020102018301020102820201020102 +820100028402010201028202000283020001028902010200020100020001860102000201 +000101018b00020001020100010201000183010200020102880100010201000102008400 +02010001 +010181000114018800010001000200010284020002010288020102010002010200010083 +010201028902000201020102010001810102010283010201028202010282020002020281 +00020102830102010283020100020202830002010282020002850201020102018b010201 +020102000200020002810201820100020102870102010201020102810201830102010289 +0200010001000102000285020102010201810102820201028102018101028d0200020001 +020100020102010200820002008100018501020002000282020102820201008200010283 +020102008100028202010282020102040284010002000283020100028302010002050281 +000282020102820201028502000102010282020102810201010103028101008100018201 +020087000201020002010201028100028602010200020102030281010288020002000100 +020102880201020002000102000200810200810002840200020002010282000200810002 +010283000200018301020002090281010285020001000100840002000102820200028502 +000200010201028100020302810102840200010201020102028101028102000200830200 +010083000201028702000200010001020102810102810201890100010002000100020084 +000201000204028101028402000100028c02000200020001000102000102030283010201 +020302820001008800010201000102000181010283020102018101028702010201000200 +028202010283020002018601000200010001810102850200010001028102000100830201 +020191010201000201020102000200010201020001010182000102820201028202010201 +020101830002000287020100010201000201028400020100028902010201000102010001 +81010082000100 +81000101018100010901810001860100010001000103018e020001020001020100020102 +010200010083010001028502010201020185010201020002030284010002010282020102 +810201890102010201020102010283020100028302010201010101028501020102010282 +020002840201020102900200020102000100020002010201020102850201020100028802 +010201020102010201028201020182010002830200020083000200028302010002820201 +028502010200020001008801000100020102010282020102810201930102010201020102 +010002000200020002000102010281010282020102810201840100020102820200020202 +810102030203018302010201830102010201028201020001000402810002020284000100 +020083000200018301000102840201000200010082020002010285000200010002050281 +010202028100020102830002010002000102810102820201020102810102820201028d02 +010201000100010002000200028202000201028201000281020183010001008200020001 +008101008300010001020183000201028302010201810102820201028702010002000201 +020102870102010201020102810201810102810201840102000100840001000100810002 +810201010184000200010282020001010103028300020102820200010101870200020002 +000201810100830001000101018100020202820100020102010183000100028402010201 +028702010001000201028402000200020102810102810201020182020002850201000100 +02010281010283020102018301020102010201010102810002020283000200028b020002 +000102010002000102840200020102820201028102018601020102000201870100010201 +000102010201018e000100010200020100020002000100 +870001000100010001820100018401000100010401820001009300010001000102010002 +010002000200010201029302000201020001020102010201020002010200020202010184 +020102000201028300020102010201018202000286020102000200020202850102000200 +028402010201028202010282020102890200020002010201020085000102010201010182 +0200028a0201020102000201020102020281000281020181010281020181010282020002 +860201020102000284020102010281020101010100830200010202028100020202010182 +020102820201028702010200010201020102810002010281010201028101028a02000200 +020002000200028902000201020102010002820200020102030101028101028602010201 +020002880201000201000201028602000200020002820201028202010201020301020281 +010284020002000204028200010201028201020083000100018401000200028502000200 +01028202000182010001020102028100020c028300010001010182020102010284010002 +010282020102830201000201020100840200010002010282000201030101028200020083 +000200020102840001020102020202000501820200028202000284020002000282020002 +040281010287020100010002010285020102000201010184020102000181010202028101 +020302020182020102050282010001020101020101020283000200020102810002840200 +0100010201010281010202028100028a0201020100020102010201830102010284020102 +000285020102000201830102010288020102000201000201840100010001010184000201 +000184010200020182010002820201028702000102010201000100810100 +020181000101018300010001020181000184010001000104018600010002000200010081 +010284020102010283020102018e01000102010002010201020002010202028100018301 +000102850200020100028402010200018901020002010201020102880201020102010201 +0284020002000284020102010282020002840201020102810201850100020002008a0001 +020002000201020102010281010283020102018801020102010201020081000201028301 +020102970201020102010201000200010002000102010200010200028102010201820201 +020302820002000100820201008200010283020102018101020202830102010201028400 +020100020202830002010202020101810201830102010281020082000200010082020002 +070283010002008100018101028302000102830201000281020002000102010001010502 +020102028101028202010201020100810201810100820002018201020183010201020102 +820102018401000100020102820001000100050281010201020201810200870002000200 +010001850100020100028602010002010201810102060286010002010002018301000200 +820001020402010102028201000184010001000101010200850201000200010301030281 +0002840200020001850102010002008a0002000200020002000102820200028402010201 +0201028a0100010001000102010001020105028101028502000200010203029101020100 +010002000102010200010001000102010102830102010284020102010284020002010286 +02010201000201820100020102820100028d020102010201000100020102000288020002 +0102000200018c01020102010200010200020001810100820001000000 +820100018201000105018100010401880001000100010001008200020082000201860102 +00010200028502010201020186010200020102018a010201020102010200020182010201 +8b0100020102000201000201028702000102010201020202850102010200028602010201 +020102840201020002850201020100028a02010201000102010201020202840002000201 +840100020002840200010200830002000202028300020102010281000286020102010200 +028302000200820001028902010201020001000102810201010101028100028502010201 +000181010282020002880201020001000201020102850002000100010101020283010201 +008100028202010284020002010287020001020102000284020100010202028101028202 +010202028201020104018302000200810002810201010182020102810201020102028300 +010201810102060283000201028202010202020101010081010201028101028202010282 +020001030181020101010302810102040281010202028800010002000102010285020100 +020001810100870002000200020002020285000100020002820201028502010201000201 +028200010081000283020100020202810102810200830001000186010201020001028902 +010002010200020002820201020102810102810201860100010001000103010102810102 +850201000201020302820100020202020182020102820201028202010202028300020002 +010284000102010282020002860201020102010284020100020185010201020102840200 +020002840201020102840201020102840201020102830201000101018200020184010002 +0002820200028802010201000102000201028e0001020100010201000201020100010101 +0100860201000200010082000102 +020181000101018100018401000100018701000100010001000100020185000201000200 +0100810102020286010002010200028402000201008100028f0201020102010201020102 +010201020181010204028701000102010200018501020002010282020002830200010282 +02010284020102010282020102840201020102820200028f020102010201000100010002 +000201020102870102010201020102810201810102010284010201000201028300020102 +010285010201020002820200028102000100820200028602000100020002030282010201 +810102020283000102008200010088000201000201020102010281010201028800010002 +000200010087000200020002000202020101820002010101030285010002000102820200 +020102810002010283010001008100020102010002028201020181010282020002810201 +820100018101028202010202020501010284010200020087000200010002010201028101 +028102010401820201028202000282020102810200830001000206028100028302000100 +8f0001000200010002000200010002010282020102020201008502000100010004008202 +010083000200020602810102020205018600010002000100010001028201020181010283 +020100028202000283020002008200010202020100830200020002008401020001028202 +000298020102010002000100010001000200020001000102010201020102810102010285 +010001000100010002020101820200018101028402010201028602000200020102030201 +018102018b01000100020001020100010281020081000283020100010101870002010201 +000201830100020182010001980100020100010201000201000100010001020100010002 +0002 +860100010001000108018100010201810001010104008702000201000200028402000201 +028a02010201020100020102019101020102010200020102000201020102010284020002 +010288020102000200020102840201020102810201810102840201020102840201020002 +840201020102820200028202000283020002018f01020102010001000102000201020002 +880201020100010201028402000201028f02010201020102010200020002010201830102 +010089000200010001000200020202810002820200010101020201018300020002870201 +020100020002820201028202010282020002020282000102820201028402000201020302 +830102010202028101020202820001020102810102850201000100020202810002010203 +008201000282020100820001008300010201030101028101020202810102080281010282 +020102020282010001840100010201810102820201020102010182020102010282010201 +010182020102010281010281020185010201020002810201810100850002000200010101 +810001820100018801000200010002000201028100020302810102820201028202010201 +028401020002008100028202000203028101008100010501040201008401000201028202 +010201028201020182010001810100860002000100010081000205028101020302810002 +050284000100020104018102010201810201840102010201810102060282000200830002 +010288020001000200020102820201020202810102820200028202010206028100028402 +010001028402010001028502000201020081000184010200020182010002840201000102 +0102910100010200020102010200010001020100010101 +820100010b01840001000100820001008b00010001020100020100020187010201000201 +020186010200020102000100870100010200020002010282000201840102010201810102 +010282010201870100020102010201010184020102000286020102010201028402000200 +028202010284020002000282020102820201028402000201028202010201028b01000102 +000201020102010202028501020102010284020002000283020100028102018101028202 +010202028101028202010085000201000200820002018101008300020102020281010282 +020102820200028402000200028302010200830002010201028101020102030102020101 +010082010002820201020402020182020102820201020102830102000205028101028202 +010281020185010001000200810002020201010102810102810201030181020101010102 +830102010201028101020202830100020084000201020082000102810201870102010201 +020102830201020101010102810102030281000201028100020202010084020001020101 +018402000200018501020001000181010284020102010201028501020001000201028400 +01000100870002000200020002060286000100020001008a000100010002000200010082 +000102010281010282020102820201020102820002010101810001020182020100810002 +01028100028202000207028500020002000101018d000200010001000100010002000282 +020102820201028102018501020001020102018100020102840001020102020285000200 +010001020101020101810201010183000100010101870001020001000201810102830201 +020085000102010002010284000201000201028100018101008500020002000181010083 +0001000185010200010200810001 +810001010183000100018801000100010001000101018100010201010082010002820201 +028402010201028902000200010200020002860201020002010287020002010002010209 +028201000187010201020102010282020102810201870102010200020002840201020102 +840201020102840201020102820201028402010201020102940002000200020002000102 +010200020002000200020202860102010201020185010200020002830200010284020102 +010284020002010291020002000200010002000201020100020102850201000200028402 +000200028102008500020002010285020102010002830201000202020101840201020102 +040283010201028202010281020101010102850100020102018801020002000200010201 +028100028202010089000200020100020001008200020181010204028301020001810102 +81020181010282020102820201020102810102010201008301000100820001028c020002 +010001020100010201028202010201028101028402010200018301020102050283010001 +000200860100010001000183010002010301830001000181010281020182010201820102 +018201020181010284020102010201028100028302000102850201020002010101820200 +0102018b000200020001000100010201010182020102010281010283020001008a000200 +020002010002010282020102820200020202810102030202018502010001020101018500 +010201020102018202010201028201020190010201000201000100010001020102010201 +028101020a0283000200028d020002010201020002010001000203020101810201930102 +010002010200010201000102010200020002820201020302820100020102810002850201 +00020001 +010181000108018100010101810001010102000101850002010002018301020102840201 +0201028402010201029b0200020002000200010200020102000201020102010201020002 +010287020001020002010285020001020102020281010201028101028202000282020102 +840200020002840201020102820201028202000282020002850201020002008400010201 +028c02010201020002010200020002880201020102010001028402010201028802010201 +020102010282020102810201830100010201028301000200810002010281000283020002 +018201000201028301000200850002000200018501000102010282020102010201018102 +010301850002000200028102018101020202030181020181010282020102010203010302 +810001840102000201020182020002820201028202010281020181010205028101028502 +010002010207028101008700010201020002008100028102010401820201020102820102 +018101020102810102820201028202000282020102070201018102010101810002820201 +02850201020001028202010282020102040282010002020283010002008d000200010001 +00020102010201028b020002010200010001020100810002010282010200880001020001 +000200020402810102820200018101028102010501830201000282020102820201020302 +010185000200020002900200020001020102000100010001020102010285010200020102 +060282010201010186000102010201028502010201020104018a02010200020102000200 +028202000203028200010201028501020001000183010200028d02010001020002010200 +02010201860100010001000101018100018301000200820002000000 +810001010181000102018100018201000182010001010181000184010001000101018202 +010281020184010200010201028701020001020002018601020102010200950002010001 +020102000201020002010201020002010287020102000102010281020189010200020102 +010201028602010201020102840201020102820201028202000282020102820200028302 +0102018d0102010001020102010201020102830200020101018402010201028302010201 +0101850002000200020102810102010282000201010101028c0102000100010201020001 +000281020187010200010002010282020102890200020100020002000282020102010281 +010282020102010282010002010285000200010002020202010102020104020101880201 +020001000100020102810102010281010283020100018601000100020001840102010201 +830100010201028400010002018101020102020102020101020201000102020083010001 +008300020102820201020102810102810201020103028201020183010201020202810102 +010284000100020082000201860100010002000283020102010601040201018202010281 +020082000200830002000286020102010200028202010283020102010101010281000181 +010089000200020001000201008500010002000201028201020102010100840100020002 +8302000102030288010002000200020002030202018c0201020001000200020001020186 +010201020102018101028202010282020002010281000289020100010201020100010701 +89020002000200010201028e020002000201020001020002000102820200028202010202 +02820100010101870002010001000102840201020100830002000202028c000201020002 +00020102000200 +010181000103018100010301810001820100010101010002010102820102018301020002 +820201028402010201028402000201020202870002000201020002830200010282020102 +810201880102000200020100020502880102010200010201020102830102000282020102 +860200020002000201028301000102820200028202010282020102820201028102008200 +010088000201020102010201830102000201028300010002020201000202870102010201 +0200018201000202028c0100020002000200010002000205028101028402010201028102 +018401000200020102830002000282020102010201010102810102020201018602000200 +010001820100028502010201020104010102820102010101820201028502010002000201 +028101020102840100010001020181000282020102050281000201028700010001000200 +020102810102840200020002810200850002000102018301000102010288000102010201 +0001028202000282020002820201028a0201000200010201020102030203018102008100 +028102010201860201000102010282020102820201028202010282020102820201028202 +010282020102840201020102050282010201860102000100020185010200020001020183 +000200010101010283000201020402810001810102850201000200028a02000100010002 +000100020702890100020002000102010282020102850201000200028202010201028301 +020102820200018101020102810102010202018202010209028100020402830100020181 +010282020001820100010201020281010204028600020102000201050181000182010200 +8100018101008400010002018401000200018601020002000100 +810001090186000100010001008200010083000100010101820201028202010202020101 +8502010200010201028d0102000102010201020102010002010281000203028600020102 +0102018f0102010200020102000100020102010284020102010282020102840201020102 +840201020102010283010201028202000282020102820201028402000201029402010001 +020102010201020102010001000200020101018102010101020283010201028602010201 +020102840201020102820201028302010201900100020102000200020001020001020102 +01028c010001000201000200020102018101028202010205020101010282000200810002 +010281010202028201000101018102018101028202010286020002000100028702010201 +020002008100010101010081010001008101020402810102820201028202010201020201 +090287000102000200020081000102018102018201020101018202010281020101010102 +83010201028102000200020281010202028101028402000100018b010001000100020001 +020102850201000201028102010101020282010201010184000100010001000102810102 +010281010281020101018202010281020182010200010083020002008400020001008600 +020001000102020281010281020101018300020001010181000103018102010101820001 +0201028a0102010200020002010002850200020001028302000201820102010201010281 +010283020001020302010186020100010001028402000100018101020202030187020100 +010001000185010200020001820100020102830002000201028100020202810002010281 +00028102008a00010200020002010200018c010001020100010201000102018801020001 +0201000201 +840100010001840100010001820100010201810001010101008201000183010201028302 +000200860001020102010284020102010286020102010201028d02010200020002010201 +020102018301020102010282010200810001010181020183010201020102820001020102 +010186020102010201020102850102000200028202010282020102820201028202000282 +02010201028b000200020002000200020002020283010201028102018101028402010201 +020102820102018101028202010202028300020102820201028e02000200020002000200 +020102000285020102000102030283010201028202010085000100020002030283010201 +020102030185020102000102820200020202020101028201020181010203028301000200 +810002850201000100020402830002000103010402810002010201008202000203028500 +0102010002820200028402010001028e0200020002000201000100010201020202870102 +010002000102010282000201810102810201840102000102820201020402830100010082 +000102820200028102018301020002820200028202010282020102040281000282020102 +82020102820201028102010601040201018a020100010201000200020102018600020001 +020102820200028302000102830200020087000200020001020101018100010101810001 +010183000100028802010002000102010284020002010202020300830200020081000286 +020102010200028702010201020102018201020101018102018101028102018201000182 +010002010285000100020102010281000289020102000201020001020402850102010201 +028502000201000182010201010183020002008200010081000283020001028302000102 +8502000100010285020002010200 +0a0182000100810001010184000100010001008702000200010201028202000288020002 +000102000201860102010200020192010201020002010201020002000201020102018301 +000201010181000101010402810001830102010288020002010201020102840201020102 +840201020002010283000201028102018301020102820200020102860102010200020101 +018202010281020101018402010201028302010201010102028701000102010201028402 +000201028402010201028102018501020102010281020085000100020002830201000183 +010201028602010200020102820200020102830102000201028101020102810102010281 +01020102840001000102820201020502050001028a010201000200010002010202020101 +830201020181010083000200028202010282020102820201020102810102820201020102 +820102018301020102010281010201028100018101028102018301000201010102020301 +010282010201010102028301020102830200020081000282020002010201000302810102 +81020101018a000100010002010002000283020102000100010101028501020102010087 +000100010002000207020101810201010181020101018100028402010201008600020102 +010002840201020102060202018102010201820002018201000103018200010282020102 +0302810102020281010202028a0001000200010001000102020201018202000282020002 +02028c0002010001000100010001000183010201028102018d0102010201020100020002 +0102008100010101820002018701000100010200028802010002000201000203028c0002 +01020100010002010200028302010001010184000100020182010001840102000102 +820100018201000101018100010201810001810100810001810100810001010184000201 +02018101028a020102000102010201020182010201810102010285010201020102040281 +000283020102018901020002010201020102010284000102000201028100028d02010200 +010200020002000200020102850002000200020102830102010282020102810201830102 +010201028401020100020102840002010201010101028300020102810201010103020101 +010283010201028302010201010182000102900201020002000200020001000102000102 +810201010101028101028102010201830200020001008702010002010201020102840102 +000102010285010200010200860002000100010201020201030282010201010184020102 +000286020002000100020502850100020100020102810102020286010001020001020202 +810002840201020100810002020281010201028100028302000200010001028200010203 +028400010001028302000102010282010201810102820201028202010282020102040284 +000100010002008202000282020102820201028202010282020102820201028502000102 +010282020102820201028302010002050201010102810102840201020001890100010001 +000200010282020102810201830102010282020102020202018502000100010001008402 +000102010201810001830102010283020100018101020102010184020102000201020101 +810201820102018401020102008100020102010001028300020102810201010181000288 +020100020001000100010082010001860100010001000103018100010101830200020184 +010001000282020001970102000200010201000201000100010002000100010201008100 +0101018100018601020002000201850100020100018301020001 +060181000101018100010101810001810100860001000100020186010201020001028402 +000201028402010200028b02010200010201020102000201020100840200020102040284 +010200010283020100028402010200018401020102018301020102010289010201020002 +010201028202010284020102010201028301020102010283010201020102810102860201 +020100020181010284020102010286020102010201020102010182020102860201020002 +010285020102010002010281010282020102810201010104028100018101020202820102 +010101040201010102870002000100020002820201020302810102810200810002820201 +028602010201020102080283010201028202000282020102810201020107028401020002 +008200010282020002830201000204020301060201010102810102050283000100020102 +010181020102018102018101028202010281020181010203028401020100028502000102 +010202028100020102880001000201000200028802000102010002000285020100020002 +820201028202010283020102008400020001020102810102840200010002010283010201 +028302010201010101028100028502010200010284020102000183010200028202010201 +028601000100010001040184000200020105018202010205028201000201020101020285 +010200020102010284010201000181010201028101020102810102010284010001020182 +010002830201020194010200020001000100010201000100010200010001010181000101 +018202000201028600020102010001010185000100010001860102000200020186010201 +02000201820100010201810001010181000101018300010002 +010181000184010001000182010001820100010101010081010081000101018102018301 +020002860200010201020185010201020102990200020102010200010201020102000201 +020102000200020102010283010201028102018901000102010201020002020281000282 +020100810002840201020102820201028402010201020102830102010282020102010283 +010201020102820102008500020102010283020102010101030283010001020202810102 +040201018300020102010289010201000100020002008900020001000102000100840001 +020002020284010002010287020102000100010202020101010281010282020102010281 +010202020200870200010001000102020283010201028302010201030101028101028202 +010081000102010102810002020281010201028100020402820100028202000282020102 +040287000201000102010201028500020002000281020081000282020100820001028502 +000200010204028201000183010201020202840102000102060282010201810102840201 +000201830102010282020102820201028102018601000100020001020181020085000200 +0100010101060281010283020100028e0201020001000201020001000200028202010282 +020102850201020001020302030186020001000201028102010601820201028202010282 +020102810201040101028101028202010282020102020283000200020202840001000102 +830201020102018502010201000188010001020102010201010186020100020001028202 +000102018100028202010081000201028100020202830100020103018100018201000103 +0181000101018100010101820001008f00010001020100010201000100020102 +0a0181000101018400010001008100018101028702010200010200028b02010002010200 +010200020185010200020102020291000201020002010201020102010201020100840002 +010200830001000182010001820100010101860002010201000282020102860201020102 +000203028301020002010283000201020102840102010002820201028202010282020102 +820200018101020102830002010286020102010201028202000101018300020102020282 +000200020085010002010201010101028101028302010001810102030283010200028502 +010201020101018502000200010203028301020102830200010283020100020102010188 +020102010201020102020283010200020102870002000200020102010281010281020103 +010402810102040284010001000282020102010281010282020102810201020101020101 +010281010281020181010283020001020302820102010201820201020102030101028101 +028202000285020100010002820201020202810002030281010093000200010002000201 +000102010001000100010282020102820201020302810102010281010282020002060281 +010282020102810201860102010200020101010102840100020102850200010201020402 +870001020100010002820201020302810102850200020100018101028202010203028101 +028202010282020102820201028302010201820102018301020102830201020181010202 +02820102018401020100020102810002820201028d020002010002000200020001020183 +01020001850100010002018201000101018b020002010200020001020001010101000102 +8100018101008b0002010001000102010002010101820002018801000102010001000183 +01020001 +810100810001840100010001830100010083000100018101000100820100018601020102 +01000283020002018a010201020001020102010202028501020102010202028901020102 +000200020102010282000201010181020181010081000101018102018201000181010282 +020002010281000284020102000202028101028502000200010284020102010201028101 +028502000201000288020100020002000102010286000102010200028202000201028100 +020402810102020283000200028402000102008800020002000200020084000100010201 +020101010281000284020100010282020002810200010083010002000100020281000202 +028101028202010201020101040085010002000102020281010202028201020183010201 +028402000100018101008500020001000282020002830201020102018100020402820100 +028502000100010282020002020283000100028202010281020084000200020082000200 +810002820201008900010201000102010002030287010201000102010282020102010281 +010282020102010281000202028201020181010282020002830201020101018202010282 +020002820201028202000284020100020004008101020202010101028101020502810100 +870002000100020002850201020001020302810102030201018102010101820001008300 +010001820102018301020102850200010201020402810002030283000200028402010201 +020102810002010203008401000200028502010001020102010302010188000102000100 +01000105018700020002010001028d020102000201000200020102000202028300020001 +01018302010001830100010281020103018c020001020001000102010002018301000201 +02018300010200 +820100010601810001010181000181010081000101018300020002860200010201020183 +010201028202000202029101020001020002000200020001020002010281020186010201 +020102010101020281000101018302000201890102000102000102010202028b01020002 +010201020002000201028301020102010201018202010282020002850201020100028202 +010201028300020102020287000201020102000282020102860200020102000284020002 +000201028100020102810102030202010402820001028202010284020102010282020102 +820201028302010201830102010281020101018900010201020100010002820200020502 +830102010202020101060282000102010283010002010101810201830102010203020501 +860002010200010201028201020181010201028101028102018201020181010201020701 +840201020102820201028102010401020281010201028301020102010281010282020002 +820201028202010282020102060201008501020100020086000200020001028202000281 +020182010001820102010401820201028302010002020281010202028101028102018301 +020102830200010201028200020102010102020183000102010101020281010201028600 +010001020002830200020081000282020102810200810002860201020102010201028201 +020105018202000205020201010281010282020102830201020102018402010201028302 +000201010191020102010201000200020001020102000102840200010001840102000201 +83010200010101010003018c020102000102000201020002008100028202000288020002 +00020102000289020100020102000100018301020002 +810001820100018401000100010101810001010181000181010081000101010102890102 +010002000200010285020102010201860102010201020194010201020102000201020002 +010201020002010002020286010200010200010101820200018a01000102010200010201 +020102840002000102840201020102820201028202010282020002820200028202000282 +020102010282000200810002820200028502000200020183010200028602000200020002 +830200020083000100020102870100010201020100820002008200020001008302000100 +810002890201000100020002010083000200028502000100010087000200010002000201 +028500020002010286020002000200028702000200010002008700010002000200020102 +840102010201830100020081000181010081000188010002000100010002050201018700 +020001000100028102008500020100020001000102860102000100010202028100028302 +000102010201008302000200010001028700010001000200028602000200020102830200 +0200810002810200830002000202028100020102820102008e0001000201020100020001 +000201000100010282000200010001028700020002000200020302810002020281000282 +020002020202000101860201000100020187010001000201020181010203028101028102 +018201000186010201020102018101028802000200010001000282020102820200028602 +000201000200010081020082000100810002830200010201028701000100010001009000 +010001020100010200020001020100028a02000200020002000200020102880001000102 +000200020102810001870100020002010200850002010201008100020202820100028302 +000201840102010001840100010001010186000102010001028102008200010282020001 +82010200 +010101000601810001820100018101000100010181000183010200018501020102010281 +020085000200020102020283000201020102880100020002010201020102810102010284 +010200020181010282020100810001010182020001010181000186010001000201028402 +010200018101020102010184020002010284020002010201028101028202010282020102 +010282010200810002810200830002000203028500020002000287020102010001000201 +028900020001020102000102030282010201020189020002010201020100028402010201 +028202000101018202010281020183010201020202010101028101028202010282020002 +040281000282020102040281010282020002030281010204028601000100020102850200 +010200020402810002030201010402010181020181010201020301050283010201020402 +810102840201020102030201018202010201028201020181010283020102010201820201 +028102010201010284010002010282020102010286010200010201028302010002020282 +010002840200020102010282010201810102830200010202020100870200010201020102 +010282010201040101028300020102030281000201028400020001008100028202000201 +028301020100050081020084000100010202028101020702030184000102010201028101 +028302000102810201810102810201830100020183010200010101820201028a02010002 +010201020102010401810201010181000102018200010281020182010002840200020002 +010281000202020100030283000201028402010201008300020002820200020302810002 +8602010001020100820001028202000201028100020002 +830001000101018100018201000182010001010102008201000101018200010282020002 +820200028402010201020202880102000102010201020102810102920201020102000201 +020002010201020102010201020101010003018100010101810001830100020183010200 +028202010288020102000200020002820201028202000282020102810200830002000201 +028100028202010281020186010201020102018a01020002000200020001008700020102 +010002008800010002000100010203028100028102000200830200010004008102000500 +810200860001000200020001008102008900020002000200010002040282000200860002 +000100020002008602000200010002820200020202820002000100810100020083020002 +0085000200020002010281010282020002850200010001000c0083010001008c00020002 +000102000200010002020282000200820002000100810100860002000200010002008102 +008200020001008102008200020003000502010081010001008102008200010001008301 +000100840001000100060081010002008102000100850100020001020502830002000281 +020081000282020002010286000100010002000300810102830201000203028200020081 +00020c028101028202000284020102010201028801000100010201020105010102010105 +028501000200010283020002010101010201018300020102860201000201000201028301 +0201028e0200020102010002000201000201028b02010002010001000201020182010001 +860100020001020101018100028802000201020002000201028100020102010002028800 +0201020001020100 +850001000100010401820001008300010001820100018201000101018902010201000201 +020102890200020100020002010295020102000201020102010002010201020102000201 +020102860102000201000182010201010184000201000187010201020102000284020102 +000202028101028202010282020002840200020002010281010282020102820201020102 +810102010281000286020100020001028202000185010201020102860201020102010285 +020002000102020281000203028801020102010201020003008202010002008201020101 +018100028202010281020101010102010182020102820201028202000201028101028402 +000200020702010103028101028202000201028201000281020182010002040283010002 +008600020001020002010284000200020181010281020101018102018301020102830201 +020181010282020102070281010281020181010201020101010282010201820102018101 +028102018101020202010182020102840201020001830102010283020001020102810002 +050201018202010282020002830201020185010002000201850102000102018101028202 +010284020102000201028101020102010183000200020102010182020102040286010201 +000201028202010281020083000200028202000201028701020001000100028302000100 +8200020083000100028202000207028700020001020002008400020002008a0001000200 +020001000102030281010282020102010283010002008300020100860002000200010289 +020100010002000201028502010201020188010201020100010002010201008302010200 +010081010281020081000282020002820200028602000102010001820102018301000201 +810100850001020100028302010002840201000200 +010181000102018500010001000101018200010001008201000186010001020100020202 +810102840201020102880201020102010200028602010201020002050281010203020101 +010282010201870102000102000200810001860102000102000201028701020102000200 +020102820102018201000282020102820201028202010282020002010281000282020102 +010281010282020102820201020102810102020283000100020202820102008100020202 +860001000200020085000200010002820200028202000101010100840102010201830102 +010202028301000200820002000100810200040081020004008702000100020001008800 +020001000100020082000100010081020084000100010203028400020001008600020002 +000200840002000100810002060284000100020084000200020086000100020002008400 +020001008600020002000100810002010281000201028301000200860001000100010084 +0002000200860002000200020086000100010002000400820100028c0200020001020002 +000100020086000200010002000200830200010002008702000200010002008600020002 +00010001008402000201020102840100020002820200028c020100020001000200020001 +000400820100020402810102810200810001820102008300020002820201028502000200 +010202020100010285010001000100810001810102010282010201820102018101028202 +00020202820100020102830102010202028301020102020281010201028400020102018a +010201020102000200020184010002000288020002010201020002860201020102010201 +020100010281000182010001960100020102000102010001000102000201020102000201 +880100020102000100020002 +820100018201000102018100010101810001010181000101018400010001008300010002 +810201880102010201000201028602010200020002820200020102840002010002840200 +020002010282000102840201020002010283000100010301830001000183010001020802 +8b0102000201000200020100028402010201020102820102018101020102810102820201 +020102810102820200020102810002840201020102830201020181010204028301020002 +020281010201028601020001020102820201028902000102010200020002010283010201 +028702000201000200028202010286020002000102018201020181010201028101020302 +8b0100020102000201020100010601060281010201020201030282010200010087010001 +000201020106018102018101028202010281020181010282020102820201028102018301 +020102040281010282020102030201018500010002000284020102010081000202028101 +028202000282020102820201028602000100020102060281010288020100020002000102 +870201000100020002820201028602010002010001010182020102040202018202000281 +020185010001020002870200020002000102020281000189010200010001000200020402 +0201920002010200010001000100010001000102010281020102018102018e0102010200 +0100020002000200020081000202028500010002000283020100028b0200020002000200 +020001008100020102840002000200820001028402000200028402010001020102810002 +01028300020002860200020100010281020001000501030201018b000201020002000102 +01000291020002000201020002010200010201020002 +020181000184010001000182010001010101008101008100010101810001820100018801 +02010200010200028302010201880102010201020102019a010201020002010200020102 +010201020002010200020002010001040181000102018200010282020102020281010284 +020002010201028101028202010204028101028202000201028400010201028202000201 +028101028202010201028101020102860102010201000201028d00010201020100020102 +010201028202010204020201010202010202810102840201020102010287000201000100 +020005008101000100810200820002000100850100020002000200810102830200020082 +000200050001018200010282020002820200020102850001020002000100840201020100 +810001810102010281000201028301020100820002018101008400020001028102008300 +0100018c0100010001000102000100010201028c00020002000102000200020002830200 +010081000201028200020081000284020100020001008101008300020002040287000201 +000200010086000201020001008200010287020002000100020002008102008700020001 +000200020102010082020002010285000200020002940200010001000200020001000200 +020100020001008400010200028602010002000100030081010286020002000100028402 +010001000100820102000500920201000100010201020100010201020001000204028101 +020102810001810102010283010201020202890100020102010002010201028200020181 +010201028201020081000284020100010201028b00010002000201020102010284020002 +010083000200028902000201020002000201820100018401000100010101810001840102 +0001008300010002810201 +820100010101010002018100018201000101010100010181000101018100018a01000200 +020002000201028402010200028702000201020002018901020002010201020102030281 +0002820200020202820100018201000101018100018201000102018100020b0281010282 +020102870201020100020002820201020102810102820201028202010201028101028202 +010201028101028202010201028101020102010101028a01020102010201020100028202 +010281020101018402010201028302000200810002020281000201020100820201028202 +010201028300020002820201020302810102820201028102010101820200028102010201 +820201020102850102000200010401010281010282020102080282000102010287010001 +000200020084000200010282020102840200010201810102820200028102010201020281 +010282020102030281010282020002010283010201028202010201028201000282020102 +040201010102820002010301830002010282020002820200028402010201020102840100 +020100850001000201028502000200010286020100020102018101000200010101028200 +020181010281020089000100010001000100028102018d01000100010001000102010001 +020102860100010001000201028100020202860001000200020084000100010081000185 +010001000200830002010282020102820200028502000200020001008602000100020002 +010281010202028201000181010287020102000102010282020002010281000282020102 +020284010001000284020002000292020100010201020001020100020002010201028802 +000201000100010281020081000181010081000101018a00020102010002010200020102 +830102000201028200010284020100020182010002 +860100010001000187010001000100010002000101810001820100010101810001830102 +010284020001020187010201020102010287020102000200020181010204028401000201 +020202840100020001850102010002018801020001020102000204028101020202810002 +850201020002010101020201010102810102010281000285020002000102010281010282 +020102010281010201028101028802010200020002000286020102010200028202010288 +020001000201020002830201020101010202830001020182010002840201020102840201 +020102810201890102000200010002000284020102010201028201020101018202010203 +028101028102018101020102010084020001000101010102810102060282010201020181 +000182010001020182020102010282010001060101020201820201028202010201028101 +028202010282020002010281000203028101020502030181020101018302010201820102 +01010101028401020001008500010201000282020102050282000102820201028102010d +018400010001028202000282020102820201020302030181020103018302010200010084 +010200020186010002000201008500020002010206028201020105018300020001830100 +010281020101018100028102008500010002000287020100010001000283020001028202 +010202028100028202010206028101020102820102018101028a02010201000201020100 +018a01020102000102010200010101010002010100810201820100010101810001860100 +010001020084000201020082000102880200020102000200028c02000102010002000201 +0200028a0200010002010200020102 +810001820100018401000100010101810001010181000102018100010101810001870102 +00010200010202028101028402000201028e02010200020102010201020002010201028c +010201020102000201020002018301020001010181020184010201020181010209028301 +020002010286010002010200028302010002820201020102810102020283010201028202 +000201028101028202010285020001000102880200020002010200028302010201870102 +010201020102030283010201028102018401020002008100020102840001020102810201 +810102810201840100020002830201020181010284020102010203028300020002020287 +010200020002000201028200010281020101018700020001000100028502000102010201 +028601000200020001010184000100010081000203028101028102008300010002820201 +020102810002010287000200020002010281020102010302020103028101020202810102 +820201028102010101820201028202010201028201020188010002010002000200810002 +060206010102810102820201028202010282020102820201028502010001000101018102 +0103010b028201020101018100018a010002000200010200010282020102850200020001 +028202000182010201010183000200028102018301020102810201810100010081010282 +020102810200830002000282020002020283010001028502010002000282020102820200 +020702830002010288020002000200020002820201009100010201000200020100020002 +01020002018c010200010002010001020100018901020002000200020102810200850001 +020100010101010081020182010001010183000100018d01020001020001000201020001 +0282020001 +820100010101830001000182010001010181000185010001000100010002018202010286 +020002010002018101028202010201028401020002019b01020102000200020102010201 +02000201020002010201020102000186010001020002010201820201020a028101020102 +810102010289000201020102010201020102810102860201020002000282020102010281 +010287020001000102010201028201020181010286020102010201028102010101820001 +028402000201008100020102810102050281010201028101028202010202020101820201 +028802000100010001000181010281020181010201028101028102010101010283010201 +028102018101020102810100870001000200010201010181020101010802880100020001 +000102010101020281000201028101028502000102010204028201020181010282020102 +830200010282020102010281000282020102020283010201020102010102020101010282 +010201810102810201810102810201820100028402000100010101820201020102850002 +000200020102810102810201820102010301820201028102010101860002000200010282 +020102820201028202010205028101028102018101020202830002000188010002000102 +010001830100010081000102010102810002010282010201840100020002840201020002 +820201028202010285020100020102810201810102820201020102810002820201020102 +830001000184010002000281020182010201010181000201028501000102010201020301 +8d0200010201020001020102000201890102010002010002010201028401000201008100 +029102010001020102010002010001020102000101018200020101018100010101880001 +00020102000102810200860002010200010283020001020002 +030101000201810001820100010101010005010100010182020002890200010201020102 +000201028300020002010281010202029101020102010200020002000201020102010284 +020100010088000201020001020102020281000209028100020602840100010201850102 +010201020102810102010284010201000103018100018101020102810002010281010202 +028500010201020083000200020302010101028201020184010201020185010201020102 +820200028202000282020102810200830001020185010002010201830102010205028100 +020302840002000102010281010201028101020102810002030289010201020102010201 +020202810102040202018102018501000100020083000201028202010202020301810201 +810102820201028102018301020102010201018202010207028101020202810102010201 +018102010101010201018202010283020102018101028102018301000100840001000200 +810002820200020402840102010201030183020102010101830201020101018202010284 +020100020104018102018101028402010201028202010204020101810001870100020102 +000102820201020302850002000200028202010202028101028102010101870201020001 +020102820200020302810002020283000201028202010282020002020282000201810102 +0202820100028202000282020102820200028b0201000200010001000200018201020087 +000201020001000184010002000185010001020001840100010002820200010101840001 +020100820002018201000188010002000102010002010201008102018201000101018302 +010001890100010002010200010282020002820201000000 +030181000182010001860100010001000102010300020182020002850201000201028402 +010200029002000102010200020102000201000201028702000102010201028202010201 +028400020102008300020100810001020182020102010281010201028101020102810102 +020285010200020102820200020202810102840201020102820201020102810002010281 +010282020102010281010201028101028202010201028101020102830102010202020201 +010288010201020100020102840201020102860201020102010281020083000201028502 +0100020102820201028b0200020002000200010001020302010181020181010289020102 +010002010201020102820102008800020001000102010203028101020102810102820201 +020102010186000100010001008100020102810002010281010281020103018302010201 +810102030201010602020102028101028102018101028302010201810102020202010102 +810102820201028102018201020183010200028102010301820200020302810102010205 +018102010e01820002018201000181010281020102018102018101028402010201020202 +820102018101028402000100018201000185010200010001840102000102010285010201 +020102830201000209028100020302810102820201028402010200028e02010201020002 +010001000102000187010201020102010282020102010283010001020102880102000200 +010201028102008200010283020002010101820002018a01020100020100010201028502 +010201020087000201020002000101010102810001020183020002018101008100020102 +8100010101830001000182010001020182020001860102000102010082000201 +040181000101010100020184000100020182010201010181000182010201850102000102 +018601020102010201830102010286020102010201020102810002010281010203028500 +0201020002010203018100018901020002010201020102820201020b0281010283020100 +028402010201028102018501020102010201028101020102810102820201020102810102 +010281010282020102010282000201870102010201020102820200028102018101028202 +010284020102010281020103010802860102010201000201028300020002810201810102 +050283010201028302010201010101020201030281010201028101020102810102020201 +010602810102050207010102840102000201810102010202010102010182020102810201 +830102010202028201020183010201020302840102010201810102010281010201020101 +010202018202010201020101820201028802010201000100010085000100020102010281 +000204020b01810201020181020186010001000100010201810001020101028101028102 +018101020102820102018401020001020102010182020002840200020102010281010282 +020102070201018102010101030202018702010200020001028202000282020102840200 +020002030281010205028500010002000282020102840200020002010285000102010001 +030183000100010201810001010101008902010200020001020002840200020102870201 +020102000200810001850100010002018701000201000200018901020002010201000201 +8401000100018201000101018400010001028302000102810200840001020100 +030101008401000100010101810001830100010282020102810201010182020102820201 +028202000284020102000282020002020289010201020002010200020102820102018101 +028e02010201020102010201020001000182010002020283000201020302830102000203 +028101028202010282020001810102850201020100020202010101028101020202810102 +820201020102810102010281010282020102010283010201028202010283020102018501 +020102010284020102010284020102010282020102010282010201010182020102860201 +020102000201020101010288010201020002000201830102010281020101010202040104 +028101020202810100810002840200020001010104028100020402810002810201030182 +000200020002018100020502820102010301020281010284020102010201028101028202 +010282020102820201020102050181020181010282020102810201010101028101028102 +010101820201028302010201810102810200860001000100010281020105018102010201 +810201070181020182010001850102000100010301810201810102060281010201028201 +020181010282020002020281000201028800010200020001000182010002040203010102 +820001028202000214028901000100010001000102010281000202020101810201850102 +010201028302000102030281000282020102820200020202830002010282020001010182 +020001010183000100010101810001840100010001820100010101890001000201000102 +01028b020002010001000102010001020181000101018300010001860102000201020082 +0001028302000102 +010183000100018201000101018100010101870001020001020002810201010182020002 +850200010201028402010201028202010201029601000201020102010200020102000201 +020102010200020202810001010101008901020102010201020102020281010205028101 +028202010285020102010001830102010282020102830201020183010201028202010201 +028100020102810102010281010282020102010283010200028202010282020102820201 +028602010201020102840201020102820201028402010201020402810102820201028302 +000201010184020002000202028301020102830201020181010283020102018201020101 +018102010401040281010202028401000200018301020102820201028202010207028201 +020182010201010182020102010281010204028101028102018301020102820201020502 +820102018101028102010201020281010202020301840201020102010204018202010282 +020102810201810102840200010001010101020201810201010182000201060183020102 +010101010203018400010201008200010281020181010282020102820201020202810102 +0b0285010201020102850201020001028202010282020102820200028202000201028501 +020102000108019002010201020100020001000200010201028202000209020101830201 +000282020102020286010201020100010601890001000102000100010281020082000102 +840200020002830200020081000284020002010282020002810200820002008200010289 +020100010201000100010101010002018100018201020081000101018300010001010181 +00028b020100020001020001020100 +010181000101018100018201000101018100018301000102830200020181010281020188 +010201000201000201880102000201020001028802010201020002010205028300020002 +010283000201028202000182010001010182020002020284000102000203028100020202 +810102820201028202010281020182010001010182020002060281000282020102820201 +028202010201028101020102810102010202010102810102010282010201860102000200 +010202028301020102880201020100020102010101020284000201020183010200020402 +010183020102018101028502000201020102018100010401810201810102050281010281 +020184010201020181010201020301820201020802010185020100020002820201028302 +010001010105020201030282010201010186020102010201028202010201028501020102 +010282020102050286010201020102018101020302810102830201000101018102010301 +870001000102000201820102018201000182010201010183000102010201010201018202 +010281020081000202028101028602010201020102030203018102018101028202010282 +020001020185020001020100010083020001008200010201028601020002000201010183 +000200028202010202028100020302810102840201020102010284000102010282020100 +010086010001020102018501020102010201028601020102010001820102010101010283 +01020102020281000201020100010282010001020183000102010101850001020100018a +010001000102000201020087000201020002000284020002000284020100010281020081 +0001010181000103018100010101820002018401020001028302000201 +030181000101010100890100010001000201000282020102820201028702000102010002 +018301020102840201020102820201020302810002030282000102840201020102820201 +02830201020182010001010185000201020102820200020b028101028202010282020102 +820201028402010200028602000200010201830102010201028301020102010281010282 +020102010281010201020101020281010201020201820201028502010201020183010201 +028602010201020102040201008501020102010202028101020202020185020001020001 +040182000201020181020183010201028402010201020102830102010204028101028102 +008400010201020302810102060281010281020181010283020102010101820201020202 +810102050203018202010282020102820201020102810102830201020101018202010202 +020101010281010282020102020282010201810102830201020101018102010301810201 +020101020401810201020101028301020102010281010204028101020102810002860201 +000102010283020102018101028202010202028101020102810102010281010281020181 +010281020182010201010183000102010301810002810201840100020002010282010201 +010183020102018101028302010201010187020002000100010283020102018401020001 +028402010201028202010201028300010001010182020102860200020002000281020101 +018102010301810201050181000101018802000201020002000282020002840200020002 +820200020302810002010201008101028302000201010182020001020190000201020001 +00010200020102000100018201000186010200010001028202000282020100 +020181000184010001000182010001010182000102810201830102000282020002830201 +000282020102840201020002820200028b02010200020102000102000282020102030286 +000201020100028402000200018201000101010102830102010201028100020502810002 +820201028202010284020102000201028300020102020283010201028302010201020182 +020102820201028202010201028101020102810102020281010201028101020202830102 +010282020102020281010201020101040282010201830102010208028100018101028202 +010281020102018102010201810201020101028201020181010282020102020281010201 +020101830201020183010201020102820102010101810201810102040281010205028201 +000202028101020102810102020282010201010181020182010201810102820201028202 +010281020101018202010282020102050281010282020102820201020202010181020184 +010001020189010201000102010001028102010201030281010083000200020202820100 +028c02000200020001000100020001020101028c00020001000100010001000100820001 +020102820100020202810102820200028402010001008100010701840001000100010082 +020002810200810002810200860001000100020103018302010201010182020102020281 +000284020102010282020002860201020002010202028301000201010182020102820201 +028102010101850002010201028302010201010181020186010201020002018301020002 +01028301000200820001008100010401820002010101810001810102820200028a020100 +020001020002000201028100020102830100010284020001000101018100018401000200 +018301020002840201000200 +03018300010001010181000183010001028b020001020001020100020102810201810102 +820201028702010200010201029b02000201020102010201020102000201020102000200 +020102010201820100010101810002820201020202810102030281010284020002000282 +020002010283010201020102810102810201820102018301000102820201020102830102 +010201028101028202000281020181010201028500010002000202028201020083000201 +020102810102010202010102860102010201020181010083000200028202010204020101 +010282010201840100010001010182000201020183020001028102018301020102830201 +020181010282020102870201020102010201010183020001020302810102030201010202 +010101028301020102030283010200028202010281020181010205028201020101018202 +010281020101010402010101028701020102010201020602810102010281010201028201 +020101018102010301810201810102860200020102010283020001028302010201030181 +0201820102010101830201020103018202000111010f0203018300010001050181000105 +0183020102010d0181020102018500010201000202020301810201020103028200010288 +020001000102010001830102000101018502010001020183010201028302010001030181 +020101018202000282020100860001020102010283020100028202000282020102820200 +02820201008b000201020001000102000201020181000184010001000284020100010202 +02810001820100010201880200010201000100020002 +860100010001000182010001820100018301020002830200010282020002830200020183 +0102010283020001028202000286020002000200028202010202028c0001020102000201 +020002010203028300020002860200020102000284020102010204028101028402010200 +028202010282020102820200028202010282020102820201028102018101020202010101 +028101028202010282020102010282010201020101028101020202850102010201020102 +010184020102010204028200020184010200020101018702010201020001020402840002 +010001830102000104018200020183010201020202010182020102030201010102830102 +010289020100020102010200010101020203010202030108028301000201020101028301 +020102040201018402010201028202010281020181010203020201020281010283020102 +018301020102810201810102010281010282020102820201020602010181020101018502 +010201000283020102010101830200020101018502010001000103018300010001020183 +000100010301830001000102018400010001028102018201000281020101010102830001 +000107018300010001020181000101010502860102000100010081000182010001080101 +029301020102000100010001000100010001020102010201010204018102018301000201 +040101020701880001000201000102018701000100010200010101840201000201010101 +008201020101018700020102010001028902010001020100020002010281000281020182 +0100018501020002000283020002018801000200010201000281020182010001 +020181000182010001010182000100820001028c020102010001020100020102018a0102 +000102010001020102840201020102020285010201020102010285000201020102020201 +010102850102000100018301020102020281010206028101028202000282020002820201 +028402000201020102810102820201020302810102810201020183000200020102810002 +010282010002010281000282020102020202018502010200020185010200020002810201 +010101028400020002010101810002820201028602010201020102020284010201020185 +01000102010284020102010202028101020102010102028b000201020102010200020102 +020281000281020181010201028300010002010284000200020187010200020001020182 +010002820201028502010002000287020002000200020181010204020101830201000204 +028100018101028402000200020102850100010001028202010201028101020102830002 +000281020184010001000102018500020001020184010001000102018300010001020183 +000100010201830001000102018500010001000101010100040183000100010401810002 +010281010284020002010281020183010200028102010201830001000105018100010301 +010283000102018201020103018100010d01810001810102810201070181020181010205 +028100018101008100010101810201010183020100010201810001020183000102010101 +830001000183010001020102030183000100018601000102010201980100010001020002 +000102010001000102000102010201000185010002000102880200020001020002018401 +00010001010181000182010200820001020002 +010181000183010001008300010001840100020002820201028502010201000287020102 +000102010281020184010002010202028101028802000200020102000182010002820201 +028402010200020102820102010201820001020302810102060281000284020102000201 +028101028202010203028101028502000200010202028301020102030281010201020101 +820201020202810102820201020202010101028101020202810102010287010201020100 +0102830200020084000102010284020001000101018500010002000206028e0102000100 +010002010002000100020102820102008100018101028502010002000281020188010001 +000201000102030282000102820200020202830102010202028101020102010182020100 +81000201028101028102018101020c020101810201030101028101020202010101028201 +0201810102060281010281020181010283020102010201820201028102010a018100011a +0183000100010c0181020101010302830102010281020181010282020002010209018100 +010201810001810102050205018100010101850001000100010201810201010181020105 +018300010001010184020102010282020102010281010201020101820001028202000103 +018100010201810001810100810001080181000103018100010301810001850102000200 +010101820201008100010101830001020183010001028402000100018401000100010101 +8200020183010200028602010002000201850100010201008200020182010002 +020183000100010101810001830100010288020102010001020002820201028202010284 +0200020102820200018a0102010200010201020102820201020102810002040288010200 +020102010201840100010001810102860201020102010205028501020102010201028101 +028202010285020100020102010281010281020185010200020102010283000102018101 +028902010001020001020102010281010201028301020102010281010287020001000200 +020083000200018201000102018602010200020001010184020100010281020183010200 +020202020101000101010281010081000202028101008200010201028201020081000284 +02010201008100020202830102000282020102010282000102010201018b000100010201 +020001000102850201000200028702000200020002018401020001028202000282020002 +010283000201020102860102000200020086000100010001008600010001000100860001 +000200020086000200020002008600010001000100860001000100010086000100010001 +008600010001000100830001000101018200010086000100010001008800010001000100 +0100870001000100010001010101008201000101018c0001000100010200010002000281 +0201850102000200018601000100010001030183000100010301030207018100010a0183 +000100010401810001080102020101870200010002010201020101028300010201840100 +010001840102010001030181000182010001080184000100010081000104018300010001 +020181000101010100020183000100018201000185010201020001010101008a01020100 +010001020100010101010081010283020002010001 +820001008100010101810001820100018401020001028502010201000284020002010282 +020102840201020102810201810102820200028402000201020102810102820200020102 +860100020102010287020001020102000188010002000201020102060281000282020002 +840201020102820201020102810102820200028202000201028101028202010282020102 +010281010201020101840201020102020281010282020102010283010201028202010201 +020101030287010200020102010283020100010101810201020181020102018502000200 +020181010284020002000286020102000200020102010101000102870102010002000102 +810201830102000281020181010201028101028202010283020002010201020281010201 +02850002000201028b020002000201020102010001810102030281000207028801020102 +000201020181010081000102018400010002010101840001000102010293000200010201 +020002000102010200020001020184010001000102018100010301810001820100010401 +810001010182000100810001010185000100010001010181000182010001010103000301 +850001000102018201000282020002010281010283020002018101028102000100030183 +000100010101810001010183000100020102850001000102010101890001000100010001 +000102018100010501810001810100020082010001010181000101010202810002070284 +010201000102018100010101830201000182010201070181000101018100010101810001 +010181000103018500010001000184010001000101018300010001820100010301810001 +840100010001010101008502010200020181010283020002018101008500020102000183 +01020001 +010181000182010001010181000183010001028202010289020102010001020102018301 +020002890200020100020102010082000102010287010200020002010285020102000201 +810102860201020002000182010001010182020002840201020102030281010282020102 +820201028202010282020102820201028202000201028301020002810201810102820200 +020102810002820201020102830100020081000102018202010201028301020102820200 +02020201009d020001000200020001000100010002000200010002000200020002000100 +9000010002000200010002000200020002008a00020001000200020001008a0001000200 +0200010002008b0001000200010001020001020102810102810200830002000201020100 +870200020001000200850001000100020202850002000201020302870102000100020002 +010285010201000100860001000100010086000100010002008600020001000200860001 +000200020084000100010289020001000102000100010401810001020183000100010401 +8100010401810001040181000104018100010401810001050181000104018a0001000102 +010200020001810102860201000100020101010100010181000103018100010201810201 +830102010281020109018300010001170183000100028802010002000200020102018202 +010281020103018300010001820100010b01810001050181000101018100010701810001 +02018100010201810001010183000100018801000100010201000102018c000102010001 +0002010200020101018100010101820001020002 +810001010181000182010001010183000102008400020001020202840100020102840201 +020002830201020184010201020101018102018701020002010201020102810002010281 +000289020102000201020100018601000201020102840200020002040283000201020402 +830102010201020101820201020102810102010281010282020102810201810102030284 +010201020182010201830102010201020201010281010201028300020102820201028402 +010201028102010201850001000102010101840002000102010286000200010201028702 +010200010201028102008300020102010285000200020102010282010001810102010201 +008301020102020281000203028301000102810201840102000102010282000102820201 +028202010202028201020184010002010201028301000102010283010200010201080281 +000103018302000102810201010181000101018102018301000102020281010206028300 +0102010e0181000109018100010801810001030101001401810201810102820201028202 +010281020101010202040181000106018100010201040204018100010501810001060181 +000112018102010101040281010202028101008500010201000103018100010101820200 +018201000184010001000101010100010185000100010001860100010001000182010001 +840100010001010101000201830001000182010001030181000184010001000186010200 +0200020187010002010001000183010200010101810001 +860201000100010088000100010001000201820102018101028402010200028202010289 +020002010002010201020202010181000202028700020102000201020102010101028100 +028502000200010081000181010203028301020102020283010201028202010282020102 +820200028202000282020102820201020102810002010281010282020102820200020402 +810102060283010201028102018101020102810002010283010200028202010282020002 +870201000100020001020184020001000201028701020002000201028c02000100020002 +01020001000202028b000100020102010200010002020283000200020202890002000201 +020102000282020002820201028202000202028400020001020102850001000100028602 +000100020001030182020002020283000102018d01000100010002010002000100018601 +0002000200018601000100020001860100010001000186010002000200028e0200020002 +000201000200010001008600010001000100810001030181000186010001000100010201 +830001000102018100010601810001030183000100010201830001000103010100810102 +890201020001000102010281020082000201020181000184010001000107010102020101 +020b018100011a0102028301020102820201020202030102000101830002000182010001 +0b0181000112018100010301810001020181000101018302010001840100010001010181 +000102018200010202028400020100010101010285000102010001810102 +810100810001010181000182010001810102820200028202000282020002820200028802 +000201020100020183010201020102810102850201020002018101020102870102010200 +020102010281010285020002010201890102010201020102000282020002030281000281 +020183010201028202010282020002820201028302010002820201020102810102820200 +028102010201030281010282020102810201810102010282010201810102820201020202 +830002010282020102820201028802000200010002000201028600020001000102870200 +020002000200870002000100020102010284000200020081000201028600010002000200 +860002000100010284020002000284020002000202028101008200020186010001000200 +0185010001000200880002000200010001008a0002000200020100020002820201028502 +0100010001860100020001000182010002010281000201028b0100010001020002000100 +018601000100010001870100010001000102810200860001000201020083000100010201 +830001000102018500010001000101010100040101000401830001000187010001000100 +010085000100010001030101000401830001000102018400010001028d02010200010002 +010201000100010201810001820100010101880001000100010201028302010001010184 +000100010081000183010001000100030101000101810001030183000100010301830001 +000103018402000100018601020102010201810102010202010102810001840100010001 +850100010001008100010101010082010001860100010001000186010001000100010101 +830001000184010001000101018300010001840100010001010181000184010001000101 +018c000100020100010201020100020102820002000200 +820100018201000182010001010182020102810201820102018301020002870201020001 +02010284020102010284020002010201028201000283020100028f020102000200020102 +010201020002018101028202010081000185010200020002820201020602810102820201 +028202000282020102820201020102830002010201028101020102840001020102010281 +000102010202810102810201010103028101020102810102010281010202028101028402 +010200020102040104028101028202010282020102020281010282020102020282000102 +020281010201020101010281010282020102020281010284020102010282020102810201 +020181020181010285020102000102850201020100028102018101028102018101028102 +018101028202010282020102010281000101010102840100020102810201820100010201 +830201000201028401020102010401810001040181000104018300010201010183020001 +020302830002010202028300010001020183000100018201000101018100010201830001 +00010201830001000102018100010c018300010001020183000100010301010004018300 +010002810201010101000401810001020181000107018702010201020102012801810201 +120186000102000200010301830001000103018100011201830001000101010100020183 +000100018201000101018302010001840100010001010186000100010200028602010001 +0201028202000285020102010200 +010181000101018100018201000182010200860002010002000283020001020202830102 +000284020102000286020002010201028302010201010182020002840201020002010281 +000281020181010283020102010201840201020102070283010201028202010282020002 +010283010201028202010201028101028202010201028101020102810002820201020102 +810102810201810102820201020102010101028101028202010201028201020183010201 +028402010201020102860100020002010201028200010201020201810002040282000102 +810201010182020002810201810102820200028b02010201020100020002010286020002 +000102018201020081000203028400020001028502010002000286020102000100018101 +028402000100010201830201000182010201010102028201020182010001830102010283 +020002010301010281010201028201000104018100010401810001040181000101018602 +010200020102010284010001020102018100010301010002018100018201000105018100 +010b01810001030101000d01810001030184020001020101018a02010001020102010200 +010d01810001020101028100028102010301810001060181000104018100010601810001 +05018500010201020102018100010a018102010301010285010200010001020182000100 +810001880100010001000200018601000100020001840100010001030181000102018100 +010201810001010183000200010101810001020181000102018100010101810001030102 +028101028102008100020002 +830100010089000100010001000201028202010282020102830200020186010200010200 +020202840102010201850102010201020202810102010281010204028301020102840201 +020002010201000101010285010201020102020283010201028202010282020102820200 +028202010201028101028202010282020102010281010201028401020100020102820102 +010201030201010202010182020102010283010201028202000202028101020102930002 +010201020002000201020102000100020102010283000100020202830002000287020102 +010002000202028200020083000201028102008300010002850201000100028702010200 +010002018601020002000102830201020081000282020102840200010001020182000200 +810001840102000200830002010282020102020283010001008100018401020001008200 +010204020201820001008100010101820001008100010101820001008100010101820001 +008100028402010002008100020102850001000100018401000100010901850001000100 +0102018500010001000102018100010c0101000401810001040181000281020186010201 +020001028502010201000103018100010b01040282010201390181000106010100010186 +020102000100010301010012018300010001010101000201860001000201000103018100 +0184010001000101018b0001000102000200010001028202010203020101810001 +820100018201000101018100018101028102008900020001020100020102840201020102 +840200020102020281010202028700020102010201020402870002010201020102010283 +000201028102018401000201028202010204028301020102820201028202000282020102 +010283000201020102810102820200028202010201028100020202810102820201020102 +810102820201028402010201028202010281020181010284020002000282020102010282 +010002010283000201020202810002050285000201020102850201000102018501020100 +020101010102850100020102018301020002810201020182020002820201028402010002 +018201020183010001028302010200810002830201020101010100010283010001009000 +010201000100020001020001000100028602000200020001860100010002000186010001 +000100018401000200020302840100010001860100010001000186010001000100018d01 +000100010002010001000200018d01000200010001020001000100018601000100010001 +01010100820100010101010082010001010182000100880001000100010001008a000100 +01000100010001008a000100010001000100010089000100010001000200020202820100 +029502000100010001000100010001000100010001020102850200010200018101008100 +018101008100018101008100018101008100018101008100018101008100019001000100 +010001000100010001000102018e0100010001000100010001000100010c018500010001 +020183010001008100010201850001000100010301820200018201000101018102010101 +810001840102010001020181000101018900010001020002000201890100010002010002 +000201020100810201880100010001020001020002 +020181000182010001010181020182010201820102018201020186010200010201028b02 +01020102000200010201028802010201020102000202028201020101018c020102010200 +020102010201028102018501020102010207028101028402000200028202010282020002 +820200020102810102820201028202010202028100028202010201028101020102810102 +010202010202830102010204028101020102810002840201000102030281010281020082 +0001028402000102008e0001020100020002000102010002000100010284000200020081 +000283020002000100840102000200010084020100020002008101008200020081000285 +020100020002900200010002000100020001020001020102860201000200010202028800 +010201000201000181010285020102000201030181000103018202000288020102010200 +010201010181000104018100010401810001030183020002010201820200020102030181 +000104018100010401810001040181000104018100012601810201040181020116010402 +2f0181020109018500010001000184010001000103018300010001010182000200810001 +020181020182010001820100010401850001000100018701000100010201008100028b02 +01000100010201000102018401000102018a010001020102010001000184010002000286 +02000102010002 +820100010101810001820100018101028302000201810102820201028402010201028702 +010201000200020202930002010201020100020002010201020102010001810102850200 +010201020402810102020281010282020102040283010201028202010282020002820201 +028202000282020102010281010282020102010281010202028101028202010201028101 +020102810102830200020101010402810102850201000200028402000200020202010102 +028201000201028200010289020002000201020102010201030281010286020102010201 +028202010284020102010282020102810201810102810201810102010281010281020183 +010201028102010201820201028102018201020102018100010101860001020100010283 +020100020202010182000102030281000102018500010001000186010001000100018601 +000100020001860100010001000186010001000100018601000100010001860100010001 +00018d010001000200010200010001000286020001000100018601000100010001860100 +010001000101010100870100010001000100880001000100010001008a00010001000100 +010001008a00010001000100010001008500020002000288020102010001000200940001 +00010001000100010001000100010001000102820200028402010001008f000100010001 +000100010001000102018101008100019601000100010001000100010001000100010001 +000100019001000100020001000100010001000100010601810200830001000183010201 +008300020001020181000182010201010182020102880201020102010201028302010200 +81000101018800010001020002010288020100010200010002820201008a000102010002 +0002010200870001000201020002840200020001 +010085010001000100830002000183010201028202010282020102870201020001020002 +860200020102000286020102010200020202880002010200020002018201000201028401 +000201028602010201020102820201020202810102020281010202028100028202010282 +020102010281000282020002820200028202010201028101020102810102010281010282 +020102020281010281020181010286020102010201028502010201020181010201028101 +02020283010201028d020001000200020002000200020090000200010002000200020001 +00010002008c000200020002000100020002008200020001008502000200020004008302 +000200860002000200010002008801000100010001000182010002850201000102000100 +850102010001008200020184010002000281020184010001000104018100010401810001 +010185020102000102810201820100010401810001040181000104018100010401810001 +820102018301020001050181000104018100010401810001290101022001810201810102 +010201010102820102010b01810201140181020104018102010401810201810102850201 +02010001820102010101810001010186000200010200028102008b000102010001000200 +0100018b0100020001000201000100020102820100028a02010200020102000200028502 +000100010284020002000184010002010283020100028602000102010002010282000201 +810102 +810001820100010101810001810102840200010201820102018201020183010201028402 +010201028502010201020189010201020102010201020402850102000201028502010002 +010201028301020002840201020002840201020102070281010282020002820201020102 +810102820201028202010282020102010281010201028100020102810002010281010201 +028101020102820100028302010201010102020101820201028402010200020102830102 +0102010281010202028300020002880201020102010201028402000200028c0201020001 +020102010002000282020102820200020302820102018301020102830201020183010201 +028202010201028201020108018102018301020002830201020102010102810102010281 +01028102011c018302010201810102010201000401830001000102018300010001020181 +000281020101018202010084000102010201028201000102018300010001020183000100 +010501810001020183000100010201810001040101008201000102018300010001020181 +000182010001010181000182010201020181000104018300010001010187000100010201 +00028c020100010200020001020100028f02010002000100010001020100020002890201 +000100010001000194010001000100010001000102010001000102010001810100810001 +8a0102010201000100020002840201020102820201028802010200020001020003000102 +8b0100010002000201020102010201010204018900020001020100010002870200020001 +0200018201020182010001010183020001028c0200010201020100020100010281020085 +000102000102 +010181000182010001810102810201810102820201028202010284020102010282020102 +840201020102020282000102820201028802000201020102010206028b01020002010201 +020002010205028500020102010203028301020002820201020302810102040281010201 +028301020102020281010201028100020102810102010281010201028101020202830102 +01020302810102020281010282020002010281000202028d010201000200020002000100 +010092000200010001000100010002000100020002008a00020001000100020002008200 +020007008102008600020002000200020083010001000400850200020001000200850200 +020001008800020002000200010002008301000100150085010001000200840002000200 +860001000100010086000100010001008600010001000100860002000200020084000100 +020002008301000100010081010082000100010081010086000100010001008500010001 +000101010100810100010083010001008900010201000100010001860100010001000181 +010082000100810001830100020083000100018401000200028102018101020102810002 +010284010201000281020103018100010201810201020102020101830201020107018102 +010301870201020102010201810102810201020181020182010201830102010284020102 +010282020102810201020189000200010002010201028402010201028502010201020001 +008201020101010102830002000288020002000200020100840002010201820100010201 +810002010283010200028502000100010281020088000102010001020002020282010002 +84020001000201028301020102 +810001010181000184010002010281020182010201860102010002010282020102020283 +010200028602010201020102010281010291020102000200020102000201020102010201 +810102860201020002000202028301020102820201020402810102030281000282020102 +010281010282020002010283010201020102810102020281010201028101028202010202 +028101020102810102020281010289020102000200020100028902010002000200020002 +820201028202000202028501020102010288020001020100010002820200020202810102 +820200028402010201028202000285020100010001810102820201028302010201080181 +020105018102010301010202018100028602010201020002810201020181000281020102 +018100010401810001040181000104018100010301830200010281020101018100010401 +830001000102010100810100810001820100018501000200020082000102810201820100 +018601000100010001010101008901000100010001000100860001000100010001008a01 +000102000100010001000200820201000300010182000100020002010202810002860201 +020100020081000101018600010001020102830200010201020101830201020081000101 +018502010002000101018a00020001000201020001028b02000100020002000200010282 +02000282020002820201028a020002000200010201000181010287020001020102010283 +020002018801020102010001000184010002000284020102010081000201028700010001 +0002000103018f0201020102010201020001000102010081000285020100010002840200 +02000201028100018101028c020102010201020100010001028402000201028202000283 +02010002 +840002000200830001000281020182010201830102010281020183010201028202010202 +0283010201028402000201020102810102820201028102018f0102010201020002000201 +020102000201028301020102020281010284020102010282020102010281010201028301 +020102820200020102810102820201020102810002030281010202028101020102810102 +820201020102810102020202010102810102040281010201028101020202850002000201 +028202010287020002010200020081000202020100820100010101850002000200018401 +020001008900010201000100010001820102008500020002010004008101000500810100 +040081010001008502000100010003000101820001000200830200010001008101000200 +830100010004008101000c00810100010081020084000200010086000100010001000200 +830100010001000101820001000100810100820001000100840201000100820002000100 +81010088000100010001000100880001000100010001008c000100010001000201000100 +010201010001020201010281000201028101028202010201028101020102840001020102 +830200020081000186010200010001028102008200010001008301020001860100010201 +000201028100010101810201810102010282010001810102820200028202000282020102 +820201028102018401020100018401020102018101028202010282020102820201028302 +010201020181020102010102810102840201020102840201020102820200010201810201 +0101880002000102010201028f0201020002000201000100010001000101010102810001 +020184000201020183010001020102870002010002010002820200018201000201028801 +020001020001000203020101 +830001000184010001020084000200010283020102018401020100028402010201020202 +810102020285010201020102010282000102060201018202010286020102010200028202 +000284020102000284020102000282020002020281010282020102840200020002010281 +000282020102820201020102810002820201020102810102020281010201028101020102 +810102010281010202028101020102810102820201020102010185020102010201850102 +010201028402010201020102010101028201020102018102010201010283010201028202 +010283020102010201820201020102010181020106018202000282020102010284010201 +020184010001000103018400010001008200010001000201870200020001000200020083 +020001001700810100010081020084000100020086000100010001000200830100010007 +008102000300810200070081010004008301020100010088020100010002000100020084 +020001000282020002010281000201028100020102820002000300830100010081000201 +028e00020002000102010001000100020002008f01020100010001020102010201020002 +8102008300020002820200020102810102820200028202010201028a0100010002000100 +020002820201028202000282020102810200020089020001000100010001020202830002 +010282020102820201028402000100010101870201000200020102860201020102010202 +028401020002008600020100010001820102010101810001830102000201028400010001 +0281020081000101018c0001000201000102010201000182010201020187020102010001 +0001010181000186010002000200020102 +810001010181000182010002820201028202010282020102820201028302010201830102 +010202028101020102880100020002000201020102850102010200020102810102010286 +000201020102010201010281010202028100028402010201020202810002820200020102 +810102820200028202000201028101028302010201810102020281010282020102010281 +010201028101020202830102010282020102010281010281020181010202028300010002 +830201000204028301020102010282010002900201020102010201000100010002000102 +860200010001000282020102a00201000200010001000100010001000200020102010002 +000100010001000100010201830001000108018300010002010201010102810102850201 +020102011d01810201020181020119018102010301830201020102018102010301810201 +830102010203028101020202810102010281010281020101018300010001020101028501 +020102010201028101020102820102010201810201820102018201020101018102010301 +840201020102820201020102810102820201020102810102830201020101010100010185 +020102010002820201028402000200020102810001820102010101010201018202010203 +028101020302830102010001000101810002820201028402010201028402010200028202 +010286020102010200028502000200020188010200020001000100830001000184010002 +000202028100028502010002000282020100810001010187000100020100010081000282 +020002850200020102008900010201000200020100010081020184010002000201028100 +02 +010184000102010281020082000201820102018101020202810102820201028402010201 +028802010201020102010294020102010201020002000201020002010200020002010289 +010200010200010200028402010201028202010203028100020202810002840200020102 +010281010282020102010281010282020102010281010201028101020102810102010281 +010202028301020102820201020102830002010204028701000200010201028602000200 +020002030281000203028d00020001000100010001000100028402010201028302010002 +87020100010001000101018700010001000201028c020002000102010001000200018601 +000100010001010185000100010001860100010001000189010200020102010001000100 +010282000100040081010004008101000400810100020081010004008302000100860001 +000100010082000200010083010002000200810200040081020001000102820002008300 +020002820200020602810002880201000100010001008200010286020002000200020102 +810102010282010200020081020003008802000200020002000286020001020100020102 +810002820200020102810002010287000200010001000201028400010200020102810002 +820200028202000283020100028802010001000100010282020002820201020102810102 +820200028902010001000100020002040281000206020100830200020089000200020002 +000201028202010281020101018400020102018401000100018701000200010201020102 +010082010001080101028900020102010001020102840200010201840102010200820001 +000100890102010002000201020101018102010101010085010200020001 +060082010201810102820200028202000284020102000282020002020281010202028300 +0201028202000201028b0102010201020102010201020302830002010281020182010201 +820100020202810002820201020202810102820201028202010282020002820200028202 +010282020002010281000282020102010281000201028101020102810102010281010202 +028301020102820201020202010102028101020102810102810201830102010281020101 +010202810102840201020102810201860102010201020106018102018101028102010301 +810001050181000105018200020102018202000105018100010301820200010201810201 +820100010101810201820100010301830200010201020101810001050181000104018100 +010401810001030181020102018202010201028401020102010101810201040184020102 +010282020102020281010201020201810201080181020181010286020102010201020102 +810102010282010201020181020102018100010401010282010201810102010281010201 +028101020402810102010202018302010201850102010201028202010204028301020102 +010202010102040182020002820200020402810102030283010001020b02810102820201 +020302830102010282020002840201020002820201020202810102810201020101028100 +010101020283000200020402820002018301000100850001000200020202890002010001 +000200020102010100810201880100010001020002008100020302960102000102000200 +020102000201000200020001020102010201010002 +890200020100010201000282020002820201028202010282020102840201020102860201 +020102010284020102010201028101020102840100020102010281000202028300020002 +860201020001000102010102810102840200020002010283000200020202810002010281 +010282020102820201020102810102830201000282020102010281010201028101020102 +810102010281010282020102820201020102830102000282020102010282010002820201 +020102840102010002050289000200020001000100028602010201000102820200020102 +820001009600010001000100010001000102010001000102010002008e00010001000100 +01000100010001008c000100010001000100010002008a00010001000100020001009300 +010001000100020001020001020100010001008a00010001000100010201008800010201 +020100010088000200010001000200830002000284020102010203028100020102810002 +010282010200840001000100810002820201020102810102010281000293020100010001 +000102000100010201000102010201028500020002000283020100028702000100010002 +000100010286010002000201028102000100820200020102810002820201020102010081 +02008b000200020001000102010002010281000204028101020302850002000201028202 +000282020002030281000204028401020100028102010101810002830200010201028401 +000100028202010284020002000202028101008100020302810002030201000102810002 +010281010207028100028702000200010201008100028102018301020102020285000200 +020002820200010101830200020101010202820100028502010201000184010201000182 +0102010101810001830102000201028300020001 +810001830100010081000282020102810201810102030283000201020202810102840200 +020102890201020102010201020181010282020002820201020602020182020102830201 +020083000201020202810102840201020002010285010200020102820200020102810102 +820201020102810102010281000282020102010281010201028101020202810102820201 +020202810102020281010202028101020102830002010282020102010281010201028101 +028102018501020102010281020183010201028102010401820201028102010c01810201 +1f018102010f0181020101018102010a0183020102010101830201020102018102010501 +0d0281010201028101028102010401010201018202010201028101020102040181020103 +018102010101010281010286020102010201020102810102010281010201028101020102 +0b0181020102010102810102840201020102040203018102010101010281010282020102 +010281010201020101030281010282020102050281010282020102030281010282020102 +010282010201830102010210028301020102030281010202028101020102810002030281 +010205028100020202830102000202020201010281010283020102008100020102880002 +000102000200018801000200020001020182010002850201000100018201000281020001 +000102900100020001020002000200020002000201010186000201020102018101020002 + +020101008101028502000201000283020102018101028302010201810102010281010284 +02010201028a020102010201020102010201028100020102890102000201020002000201 +020101850001020001028402010201028202010202028100028202010282020102840200 +020102040281010201028101020102810102820201020202810102010281010201028101 +020102010103028101028402010201020102820100020202840102010002010201018100 +028202010204028400010001029102000100010002000100020001000100010086000100 +020001028d02000100010001000100010001008e0001000100010001000100010001008c +000100010001000100020001008700010001000100028202010086000100010001028302 +0001008a0001000100010001000102820201020b02820002008d00010001000100010002 +010201028502000102010201028600020001020100870001000200010002820200020102 +850001000200020102810102010281010204028101028602000200010002830200010201 +028701000200010001008e00010001000100010001000102010081000201028100020102 +810002040281010285020001020102820201021302820100018501000102010201028100 +020302810002030286000100020102018101020102020181000281020181010203028101 +020302810102820201028202000281020001000102830002010284020102000202028100 +028202010203028101028202010086000200020001028302010001010102028601020102 +010200870002010200020002830200020083000100028502010002000288020002000201 +02000101018c02000100010201000100010201810102 +010082010001820100028102018201020183010201028202010203028500020102010284 +020102010294020102010201020102010200020102010201020102010286010201020100 +018201000182010002040281010282020102020281010282020102810201020184020102 +010282020102010283000200020102810102020281010201028101020102810102010282 +010002020281010202028101020202810002020281000281020181010201028100018201 +020181010284020002010283020102018201020181010201028101020102020181020130 +01020201010302030181020101018102018701020102010201020a028201020104018102 +018101028302010201810102020282010201820102010301810201010101028301020102 +810201810102010281010204028101020802020102028301020102010281010201028101 +02060282010201120103020101010281010203028101020b028301020102030281010282 +020102050281010203028501020100010201028801020102010201020181010282020102 +820201020302810102070281010286020002010200020802810102020289010201020002 +000102008100028c02010200020001020102000201850102000200028102008800010001 +020001000186010001000200010101820200018701020102000201020102840102000201 +8101029702000200020100010001020001000201020002010201020182010201 +020182000102840201000201830102010201028301020102820201020202810102860201 +02010201020502010186020102010201020102810002020281010201028b010001000100 +010201020102840201020102010281010205028101020302820100028202010282020002 +810201810102010281010201028100020102810102020281010281020181010202028101 +020102810102030201010202010101028401020102010101020201018102010401840201 +020102810201010101028801020102010201000188010201000100010201010185000100 +010001010185000100010001860100010001020101018500010201000189010001020100 +010201008400010201020402810002030281010283020002008700010001020100028502 +010200010202028300020002010285010001000200830001000282020102010284000102 +010201028101020102810002010281000282020102860201020100010281020082000102 +850200020001020102810002010281000201028100028202000201028500020001000201 +028101020102850100010001008e00010001000100010001000100010212028401000200 +028202000203028100020302810002030283000100020102870002010201020102010281 +000203028100020302810002820201028202010203028101020602810102020282000102 +01028a000102010200020002000202028301020002010281000201020100020101020100 +8202010201028600010201020001010183020002018a0102010201020102010200810001 +010184000100020183010201000100900102010002000102010200020102010001870100 +01020102000203028101020102 +010083010002008400020001028202010282020102840201020102820201028d02010201 +020001020102010201020502810102860201020102010202028701020102000102018201 +000181010282020102820200020202810102010283010201028202010282020102020201 +010202810102040281010202028101020102810102010281010201028101020302810102 +010283010001020102810102020281000201028800020001000200010283020001028402 +000100028a02010201020100020001028202000282020102830201020184010002000101 +018602000100010201010183020102010301820200010501850002010201020c02020183 +000102010201010282010201830102010281020181010281020105018102010101820201 +028202010281020183010201020102810102820201020102810102820201020102820102 +018101020102020103020101010281010206028101028202010201028101028402010201 +020502810102080281010282020102810201090181020105018202010282020102820201 +020402810102820201020702020101020101820201028202010202028101020302810102 +040281000201020101030281010282020102820201028202010203028300010002010283 +000200020102010104028301020102840200010002820201020102830002000289020100 +010201020002018501020002000185010201000201850102000200018101000100010186 +020002000100018401000100010201810001830102010081000102018a00010200020002 +01020001860102010001000281020181010281020186010201020102018301020102 +810001830100010282020002810201830102010282020102820201028402010201028502 +0102010201890102010201020102010203028101020102830102010201028f0102010200 +020100010001020002000282020102820200020202810002010283010201028202010282 +020102010281000282020102010281010282020002020281000282020102020281010201 +028101020302810102010281010203028301020102870201020102010201850102010201 +020102840102010201010101020401810201010103020101820201028102010201810201 +110182020102840201020102060202018202010203028401020102010401010204018102 +010201010201018202000282020102850201020001020102810102820201020102810102 +020288010002010201000102010284000200010201028101020102810002820201028202 +000201028101028602000100020002010281010204028101020302810102820200021102 +840001000100860001000100010282020002820201020602810102010282010002010283 +000100028202010202028101020402810002090281000282020102060281010203028100 +0201028100028202010282020002030281010281020181010202028101020b0281010284 +020002010201028e00020001020102000102010002000284020100020101018202010081 +000286020100010001029602010001000102000200010201020102010201000100010101 +810001020181000281020182010002810201850102000201028802000200020102000182 +0102018b010201020102010200010200 +010084010002000281020081000282020102870201020001020102840201020002850201 +020002018301020102010287010201020102010201028501020102010202020101820200 +010101010081010202028301020002820201020302810102820200020302810102840201 +020102010283010201028202000201028101020102810102020281010201028101020202 +8101020202830102010282020002030281000201028100028a0201020102010201000102 +030289010001020100020001020102860102010201000201029000010001000100010001 +000201000100028402010201020202820001009400010001000200010201000100020002 +01000100028c020100010001000201000100028202010282020002820200028202010282 +020002820201028202010282020002010287010201000102010282020102820201020102 +810102050281010282020102830201020184010201020101010202810102820201020102 +81010282020102820201020a028101020102810102010281010201028101028202010282 +020102040281010281020109010102030102028101020302810102820201021002810102 +820201020802810102020282010201840102000201810102010201018302010201030184 +02010200028c020002000200020001000100018201000104018300010201810100850002 +000100010201810001010189000100020102010002018501020001000102018300010001 +870100020001020100810001010187020100010001000182010001020181000182010001 +820100018101008100028202010001008301020001840102010201810100810001820102 +018a0102010201020102010201810102 +010182000102830201000282020102820201028202010285020102010201830102010285 +02010201020181010201028d010201020102010201020102010202028201000201028400 +020100010101010283010201020202810002820201028202010282020102040281000282 +020102840201020100810002820201020102810102020281000201028101020102810102 +810201830102010201028100020302810102840201020102850201020102010401830201 +020181010201020301810201070101028101020102820102010201820201028402010201 +028502010201020182010201030182020102840201020102040202010202810102030283 +010201020102810102020281010202028101028202010283020102018301020102860201 +020102010281020183010201028202010201028101020302810102830201020101010102 +8101028202010201028101020a0281000205028101020502810102820200020402810102 +820200028202010204028101020102810002820201028202000282020100860001000100 +010285020002000102070281000282020102820200020102810002010281010204028100 +028202010206028300010002010282000102030283000200029202000200010002000200 +020002000200020001040181020102010102040182020001010188000201000201020002 +840201020100850001000102018701020100010002018101008100028602010200020002 +850201020100018601020100010001930100020001020102010201020100010001020100 +810001010182000201830102000201028b01000100010201000100020101018402010201 +0207028101020002 +010082010201810102820201028202010282020002820200028402000200028d02000200 +010200020102010201020102010188020102010201020102010281010202028500020001 +020184010200010282020002050281010204028101020302830102010201028101028402 +010201020302810102010281010202028101020202810002020281010201028100020202 +81000201028300020002020281010201028a010201000200010201000282020102830200 +01028e020002000200010001000100020002970201000102010001000200020002010002 +000200020001020302830102010284020102010284020002000201028100020202830002 +000203028100028a02000200010001000200028202000282020102820200028202000203 +028100028202000288020102010001020002820201028202000204028100020802810002 +070281010202028301000201020101000201010281000204028501020002010201028101 +020202810102820201028202010204028101028102010601010201018202010201028101 +020502810102010281010203028101020102020101020301010204018202010282020102 +0402810102820201028302000102820201028102010e0189000200010002000100028302 +010201830102010285020100010201820100018401000100010301860002010002000185 +0102010002010101830001000102018b0001000102000200010201008100010301850001 +000100018201000102010102020181000101010100840102010200810001010182020002 +8102018401000100018c0102010201020102010201020182010201 +840001000102810201830102000281020181010282020102840201020102020283010201 +028602010201020102010281010204028101020202820102018101028302010201840100 +010001850102010201020d02810102020281010282020002820200028202010201028201 +020181010202028101020202810102010281010202020101020281010201028300020102 +810201810102020201010102010189020102010201020102018401020102018101020202 +040181020181010281020182010201150103028101020302830102010282020102060281 +010201028101020302810102840201020102020203010102810102830201020181010282 +0201028202010203028101020d0281010201028101020502830102010208028101028202 +010201020101010281010203020101810201010109028101020802010102028101028102 +010b01020281010203028101020302810002880201000102010001008300010002820201 +028202000282020102820200028202010282020002860201020100010282020002010282 +010001960100010002000100010002000100010002000200010201840102010201080187 +020102010002010286020102000201028202000287020100010001020184010001000201 +020100010285010200020002840201020001030102008a02010002000102010201028502 +010200020086000100020100018101008100018301020002010281010001008302000201 +810100810001810102010201018b020102010200020100020102 +820100028602000102000102820201028502000201000286020002000201028602000201 +020102020285010201020102820201020202010101028901020102010200020001040103 +028301020102820201020302830102000282020102010281010204028101020102810102 +010281000201028101020202810102010281010201028301020102010281010203028101 +020102810102040281000201028e00010002000200010002000102010287020001000200 +010285020001020102910200020001000100010001000100010001008d00010001000100 +01000200020002820201028202000282020002010283000200028f020102010200020001 +000100020002008200010287020002000200020081000203028100020602830002000202 +028300020002010281000201028101028302000200850002000200020402810002080285 +000200010002850200010201028202000201028101020102810102010288000200010001 +00010205028100020102810002010287010001000100010283020002008b000100010001 +000100010001820102010101810002820201028202010282020102820201020702810102 +8102010d0181020104010102860002010200010281020183010201028102018201020104 +018102010101890002000100020002000286020102010200018401020100018401000102 +018701000200010001028902010201000200020102890200020102010001000102018300 +01000186010002000102018201000101018b020100010001000100010001810100810001 +020181000102018c00010200020002000102010201030181020184010201020189010201 +020102010201020102 +810001010101028101028102018301020102820201028202010284020102010286020102 +010201020402870102010201020102010289010201020102010201028102018101008100 +018101008100028402000201020202810102060281010203028501020102010282020102 +010281000201028101020102810102010281010201028101020302820100020102810102 +010283010201028202010204020101010203018102010801010281010283020102018201 +020181010281020181010203020201810201110101020101080282010201810102850201 +020102018301020102820201028202010206028301020102820201028302010201010182 +020102820201020502810102030281010203028101020202010101028101028102010201 +010202010802810102010281010281020183010201020d02810102010283010201020102 +81010282020102820201020102020183020102010c018102010101820201020302010181 +020107018102010b01810201010182020102010282010201810102840201020102840201 +020001020101009301000201000100020002000100020001000102010401810201020101 +028101028402010201028502010201020082000201040189020002000102010200028602 +010200010002860201020002000286020102000200010101020001018a00020001020102 +010201028902010200020100010001010186000100010201020102870001020002000201 +8801020102010201020183010201020302840102010201 +010101020101820200020102810102020281010282020102840201020102840201020102 +030201018802010201020102010201028301020102030281010281020185010001000102 +020283010201028202010282020102090281000284020102000282020102820201028202 +010206028101020202810002010281000202028101020302010102028101020202810002 +020281010288020001000100010001840102010002010281000204028100028402010001 +020102830102010201028d01000100010001000100010001008e00010001000100010001 +00020002008a0001000200010001000102840200020002820200028a0201020100020001 +020002010283000200028202000282020102020282000102010283000200028502010200 +010285020002000200890002000200020002000201028101020402810102840200020002 +020281000201028100020102810002820200020102820002008900020002000200020002 +84020001000201028d000102000200010002000100020088000100020001000102900200 +020100010001000100010001000100900001000100010001020100010001020100830001 +000282020102820200028202010283020001028a02000100010001000100028202010285 +020002000102820201008200010281020102018102010301820201028402010201028e02 +000200010001000200020001000182010002840201020102840200020102840200020102 +83020100010201010002018a000200020102010001000101018e02000100010201020001 +020102000184010201000188010001000100010001840102000201010183000100018901 +000100020102010200870001020102010201840102010201810102020284010201020183 +01020102 +830002010201028101028202000282020002820200020502830002000284020102010204 +028101020102850102010201028202010203020101010282010201010183020100028202 +010284020002000282020002030287010001020002010282020002020281000282020102 +820200020202810002820201020302810102010281010282020102820201020102810002 +030281010284020102010285020102010201020181020103018202010206028101028202 +010201028101020402840102010201010181020114010202810102020281010202020301 +03028101020202810102820201021102020102028101020e028101020702810102820201 +028202010201028101020102810102810201010182020102810201010103028101020102 +02018102010a010802810102810201060181020103018102010e01820201028602010201 +020102810201830102010281020105018102010101820201028202010282020102820201 +028102010201810201010182020102820201028202010092000200010001000200010200 +010001000100010101820201028202010284020102010283020102010101850001000100 +01810100830001000181010286020102000200028402010200028102018401000200028d +020102000200010201020001000101010100020185000100010201010101028501020102 +000184010001000103018200010201020100810102020281000291020102010201020102 +010201020102010201840102010201 +850100020100028102018301020102820201028202010282020102020281010286020102 +01020102090281010203028a010201020102010201020185010001000102820201020302 +830002000282020002820201028302010002030282010200810002010281010201028101 +020102810002030283010201020202810102020282000102010281000282020102820200 +028402010201028402010201020102880102010201020002018201000282020102020281 +000201028101028602000100010002820201020202810002870201020100010001010182 +0001008b0001000100010002000100020102830001000284020002000284020102010281 +02008c000200020001000200020002008300020002840201000200830002000203028100 +020102810102820200028202010081000283020100020702810102810200870001000200 +010002860200020001000202028a01020002000100020001008800010001000200020088 +0002000200010002008a00020001000100010001008a00010001000100010001008a0001 +0001000100010001008e0001000100010001000100010001008100028b02010001000102 +0100010002010281010282020002820201028b0200010201020100010201028202000282 +020102820200028502010002000283020100018101008100010401010281010284020102 +010282020102820201028102010201810001050184000100010284020102010284020002 +010283020002018401000100010201810001020184000100010285020100010001020184 +000100010288020100010201020001020183000100010501810001810100920001020100 +010001000102000200010201000102018102018501020102010281020188010201020102 +0102018301020002 +830201000281020181010285020102010002020281010287020002010002010287020102 +0102010201810102840201020102010281010201028a0102010201020102010201030183 +020100028202010282020002030281010201028100018301020102840201020102820201 +028302000102020283010201020102810102020281010202028101020202810102030281 +010201028101020402810002020288010201000201020102850201020002010101060286 +010201020002010201820200020202020181020105018100018201020107018102018101 +020302810102820201028402010201028202010201028101028202010203028101020302 +810102080281010203028101020302810102010201018602010201020102030281010282 +020102820201028102010401810201020186020102010201028302010201020102020801 +820201028102010901810201040181020103010102820102011401810201810102830201 +0201810102810201020101028101020102810102820201028102018401020102010a0182 +020102840201020102820200028502010200010281020101018100010601810001860102 +000200010288020002010002000201040183000100010101880001000100020002018501 +020002000285020002000201850102000100028602010200020001020183000100010101 +010002018500010001020190010001000102010200020102010001000182010001020187 +020100010001020182010201850102010201028102018501020102010201028101020302 + +850100020100028302010201810102820201028202010202028101028302010201870102 +01020102010203028b010201020102010201020102020201010102020185000100020102 +820200020202810002050201018600020001020102010281010201028101020102810102 +820201020102810102010286000201020100020202810002820201028202000201028300 +020002020281010203028101020102820102010101840201020102860201020102010201 +028501020102010281020105010102860102010201020111018202010203028100028202 +000201028100020202810102820200028a02000200020002000200028402000200020302 +810002820200028202010283020002008100028502010001000285020001000102830200 +01008800010001000100020088000200020002000200880002000100020002008a000100 +020001000100010088000100010001000100880002000100010002008a00020002000100 +01000100880001000200020001008c000200010001000200010001008c00010001000100 +01000100010083000100028202010282020002850201020100028e020001000100010001 +00010002000201028100028202010282020002820201028c020002000100010001000100 +018101008100028f02000200010002010200020001000201820100010a01830201020102 +010102810102840200020102830201020102018302010001020181000102018300010002 +860201020001000186010201000100019001020100010002010001000102000100010201 +830001000101010100820102010201010001018600010001020102020201010502820102 +01810102020282010201840102010201 +810201810102820201028202010282020102820201028202010285020002010201840102 +010201870102010201020102010287010201020102010201028301020102030282010201 +01018202010284020002010203028101020202820100018a010201000201000100010282 +020102840201020102820200028202010282020102050284000102010282020102820201 +020102810102030283010201020102820001028402000200018901020100010201020102 +010281010204028100020502810102020281000201029000010002000100010001000100 +010001008700010001000100020502830102010282020102840201020102820201020502 +810102810201030182020102840201020102820201028202010286020102010201028202 +010283020102018101020202810102030281010203028201020106018102010301810201 +810102020207010102010182020102810201810102820201028102010301810201030182 +020102010201018102010301010201018102011a01820201028202010282020102820201 +028202010283020102010c01010281010282020102820201028202010282020002810201 +820100010a0181020101018a020102000100010002000288020001000100010001020181 +00018a01000100010002000201028b0201020002000102000200028d0201020001000102 +010200010001020183000100010201830001020101018200010291020100010001020102 +000200020100010001020183000201020102010181020101018902010201020102010201 +8101028702010201020102018301020102 +810102820200020102810102820201028202010284020102010282020102020283010201 +020202870102010201020102010281010201028101028902010201020102010201040106 +028100028202010282020102820200018d01000100010200020002010200028202010284 +020102010282020102010281000201028101028602000102010200810002820200020202 +810102020283000200020102830102010201028701020102010201028202010202028101 +020202890102010201020102010282020102840201020102820201028102010f01810201 +010102028101020202830102010283020102010201840201020102030283010201020202 +8401020102010901810001040183000100018101028202000286020100010001008a0001 +0001000100020001008600010001000100880001000200010001008a0002000200020002 +0001008800010002000200010088000100020002000100880002000200010001008a0002 +0001000200020001008c000100010001000100010001008c000100010001000100010001 +0085000100020002820201028702000100010001008a0001000100010001020102820200 +028202010282020002820201029002000100010001000100010001000102018101008100 +0292020002000100010002000200010002000200010d0184020102010284020102010285 +020102010201010185000100010001020181000102018300010002020283000100010201 +8b0001000201020100010002008a00010001020001000100018401000100010201830001 +0201840100010001010181000101018102018c0102010201020102010201020181010287 +02010201020102018101020202 +860200010201000282020102850201000201028202010202028301020102840201020102 +04028501020102010202028c010201020102010201020102010501820201020202810002 +840201020102010281010081000102018100010201830201020183010201020202830102 +010202028101028202000202028100020102810102820201020202830102010282020102 +030283000200028102018801020100020002000201028100020302810002030281000203 +028600010002010002940201020100010001000100010001000100010001008600010001 +0001028502000100010283020002008100020102880002000200010201008a0001000100 +0100010001008a0002000200010002000200830002000284020100010081000282020102 +840200010001840100010201030182020102830201020181010283020102018101028202 +010281020102010102010182020102820201028102010301810201010183020102018101 +028202010201028101028202010281020110018202010282020102810201160101028101 +028202010201028101028202010283020102010901010203010102810102820201028202 +010285020102010002810201820100010d0101028b010200020001000200020002860200 +020001000102018100018501000100010282020002860201020102000286020102000200 +028f02010200020001020102000100010201840100010001020183000102010101010001 +028501020100010282020100810001010181000105018202010203028201020102018402 +0102010201028a01020102010201020102010101810201 +810102820200028202000281020183010201028202010284020102010284020102010284 +020102010202028101020802850102010201020102840102010201030182020102820201 +0205028100020102820102018401000100018101008a0001020002000201020002010281 +010202028101020102810002010283010201020102810002820201028202000203028100 +020302810102030281010283020102010201010281010282020102030281010203028201 +0201810102040201010102010181020113010102010102020f0184020102010282020102 +850201020102010b01810201040101028301020102820201028302010201810102820201 +028102010201010201018202010282020102830201020181010281020101018100028102 +018501020100020103018400010002010101850001000100010101010004018200010081 +00018e010200010001000102000100010001010185000100010001860100010001000101 +018200010082000102820200028302010001010185000100010001860102010001000282 +020102820200028202010285020001000102810201850100010001008100018801000100 +010001020081000292020002000100010002000200010002000100010701830201020101 +018402010201028402010201028302010201030183000100010201830001000101018602 +0001000201028f0200010002010201000100020102010081000281020083000100010201 +830001000184010001000101018702000200010200010201020202018102010101010201 +018302010201820102018501020102010281020185010201020102 +8602000102000102820201028202010284020102010282020102020283010201028a0201 +020002010201020102010281010201028101020502810102010282010201010182020102 +050281010206020100030181000102018100018401000200018101028202000201028101 +020302810102010281010202028101020102810102050281010201028301020002820200 +028202010201028501020102010201028101020302810102030281010201028101020102 +850102010201020102940001000100010001000100010001000100010001008700010001 +0001000286020102010001008c000200010001000200020002008a000100010001000100 +01008a000200020002000200010088000100010002000200880002000100020002008a00 +0200020001000200020088000200010001000200880001000100020002008c0002000100 +020100010002000101010100820100010201860200020002010285020102000102850201 +000200010401810001010181020101018300020102850201020001028102010101810001 +050181000104018100010101820201028202000282020102820201028102018101028102 +018201000105018100010401820200028202010282020102820201028202010282020001 +020181000105018102010301820201029302010201020001000200010001000102000100 +0102018100018a01000102010201000201028b0201020002000102000200010201830002 +000286020102000100010201830001000107018300010002840201020100810002840200 +020001030181020104018302010201040181020181010204020101820201020202010185 +020102010201 +020281000282020102820201028202010284020102010282020102020285010201020102 +02028f010201020102010201020102010201028502010201020182010201030182020102 +820201028202000282020002820200028102010201830001000181010081000101018400 +010201028402010201028202000203028101020202810102010281010203028100020102 +830002000203028100020302840102010201010182020102010283010201020302830102 +0102020201018202010205020201810201820102010a0182020102810201020102028101 +020102820102010701820201028202010287020102010201020183010201028102010301 +830201020101010202830102010281020101010102030101020101820201028202010282 +0201028202010281020102018102010c010102810102830201020103010102820102010b +018202010282020102810201030101020e01810201110183020102010f01020281010282 +020102820201028202010283020102010901010282010001820102008100029202000200 +020001000100020001000100010001820100010401810201830102010284020102010282 +02010285020102010001820102018401000100010401820001028c020100010002010201 +000100010201870001000201020100010081020084000100020191010200010001000100 +020102010200020001010181020101018902010201020102010201880102010201020102 +01810102020284010201020183010201020102 +820201028202010285020001020002820200028202010202028300020102880200020102 +010201020202870102010201020102820201020502820102010301810201810102030281 +010284020102010201020101010002010100010183000100018601000200020102820200 +028202010201028301020102820201020202810102010281010201020101820201020302 +810002020283010201020202850002000100020102810002030282000102020284000200 +010202028400020001028202000201029501000200010001000200010001000200010002 +000100820001028202000201028400020002008c000200020001000100010001008c0001 +000100020001000100020088000100020001000100880001000100020002008a00020001 +000100020002008800020001000100010088000100010001000200880002000200010002 +008600020001000100880001000100010001008a00010002000100020002008800020001 +0002000100880001000100010001008a00010002000100010001008a0002000100020001 +0001008c0001000100010001000100010089000100010001000200020102810002820201 +0282020102820200028c0201000100010001000100010285020002000102820200028202 +000282020002850200010001028202000102018100010501810201830102010284020102 +01028c020102000100020001000200018401000100010501840201020102840201020102 +840201020002860201020001000102018400020002010101830001000102018100010601 +8102018901000100010201020102810201840100010001820100010a0183020102010101 +81020101018302010201820102018701020102010201020302810102 +010201010102820102018101028302010201830102010286020102010201028602010201 +020102040285010201020102040286010201020102010201810201010101028101028202 +010282020002820200020102810001020181000184010001000102018100010301850002 +010201020102810102010281000203028101020202810102030281000284020002000101 +010302810102820201028502010201020101018202010282020102820201028202010201 +028101020102810102010281010203028101028102018101028102010a01830201020183 +010201028202010201028601020102010201010101028501020102010281020101010102 +0101820201028102010101010283010201028302010201820102010d0182020102820201 +028202010282020102820201028102010801810201810102810201030182020102820201 +0281020101018102010b0101020201840201020102010215018102011d01820201028202 +0102820201028202010282020102010204018102010b0181020181010282020102950201 +020100020002000100010002000100010001000182010001030101028101028202010284 +0201020102850201020102018a0100010001000100010001020185000100010201850100 +010001029802010002000201020100020102010201000200020100010001010189020001 +000100020002008700010201020102010101810201840102010201030181020101010102 +8501020102010201028c01020102010201020102010201 +820001028202010282020102820201028202000202028101028402010201020202830102 +01020b028701020102010201020202010181020103010102810102020281000203028201 +020181010081000101018100010101830001000102018100010201860201000201000202 +028101028402000201020102810102020201010202810002830201000202028200010202 +0288000200010201020102050282010002020284010201000202029f0100020002000200 +02000201000102010001020100010001000100010002000283020001028b020002000200 +0200010001008c000200010001000200020002008a000200020001000100010088000100 +010001000100880002000200010002008a00020002000100020001008800010001000100 +010088000200020001000200880002000200010002008600010001000100880001000100 +01000100880001000200020001008a000200020001000100020088000100010001000100 +8a00010002000200010001008a00020001000200020001008c0001000100010001000100 +010089000100010001000200028202010201029301020001000100010001000100010001 +000100028302010002820201028202000282020002820201028802000102010001000184 +010001000104010102810102820201028402010201028e02010200010001000100010001 +000184010001000184010201020183010201028202010286020102010200028102018401 +0001000102018300020002810201860100010001000181010081000103018e0001000102 +00010001020102010201020182020001820100010a018102010101900201020102010201 +020102010201020102810201870102010201020102 +880200010002000102018201020184010201020183010201028d02010201020001020102 +010201020502870102010201020102810201810102020205010302810102820201020202 +810002010281000184010001000184010001000102010100020101000101830001020101 +018202000282020102050281010202028101020202820102010201010281010203028101 +020102040103028301020102010282010201810102020282010201810102040281010202 +028101028102010401810201040183020102018101020102810102020283010201028102 +0103018102010c0101028301020102820201028402010201028102010c01010281010282 +020102820201028202010283020102010b01010282010201820102010201840201020102 +810201030181020109010202810102820201028202010283020102011101010282010201 +1b0101028101028202010282020102820201028202010281020101018102010b01820201 +028202010282020102820200029602010002000200010001000100010001000100010001 +028102010201820201028402010201028202010287020100010002000188010001000100 +0100010201840001000102850201000100028f0201020002000201020001020102000284 +020002000102018100010101810200870001020002000200870001020102010201820102 +0101018302010201010181020104018a0201020102010201020102810201850102010201 +020202 +810102810201810102820201028202010284020102010283020102018501020102010204 +028d01020102010201020102010201020102810102020282010201050102028101028202 +000282020102820201028102008500010001000182010001020101000101830001000102 +018100010401810201810102820201020302820001020102810102020281010201028301 +000102050282000102010284010002000282020102010283010201020302830102010203 +028f01020102010201000200020100010002830201000286020100010001028402000200 +028502000200010289020001000100010001008c000200020002000100010002008a0001 +000200010001000100880001000100020002008a00020002000100020002008800020001 +000100010088000100010001000100880001000200020001008800010002000100010086 +0001000100010088000100010002000200880001000200020001008a0001000200010001 +000100880001000100010001008a00010002000100010002008a00020001000200010001 +008c0001000100010001000100010089000100010001000200028202010283020002008e +000100010001000100010001000102820200028202010282020002820201028202010201 +028a01000100010001000100018801000100010201020101018202010284020102010282 +020102810201880100010002000100010101830001000186010002010201028402010201 +028402010201028502010200020101018300010001020185000100010201860100010001 +000102018d00020102010001000102000100010101810201050183000100018201020108 +0192020102010201020102010201020102010201028302010201810102020282010201 +010281010285020001020102820201028402010201028902010200010201020002020287 +010201020102010201028501020102010202028401020102010501050281010282020002 +850201020102010301010001018300010001020181000101018300010001020183000100 +018501000102010201028100020102810102820201020202810102030201010102010101 +028101020102050103028101020302830102010203028201020181010204028101020302 +810102010201018502010201020183010201020102810102020281010205028401020102 +01090182020102820201028402010201028402010201028102010a018302010201010184 +02010201020102830102010281020102018102010a018202010283020102010601010282 +0102010901830201020183010201028102018301020102820201020102820102010b0181 +020183010201020102820102011701010281010282020102820201020102810102820201 +028102010f01820201028202010282020102820201028202000297020100010001000100 +010001000100010001000100010201830102010287020102000102010283020102018401 +000100019201000100010001000100010201020001000102860201000100010201028500 +0201020102840201020002810201840100010001020181000102018e0001000100010002 +000201020102010601830201020108018602010201020102020282010201810102860201 +0201020102 +810002810201830102010281020183010201028202010202028101020402810102030281 +010202028101028102018101020402860102010201020101018602010201020102820201 +020302810102020201008201000102018100010201010003018100010201010002018100 +010401010001028101020302810002010281000203028201000204028300020002860201 +02010201028402000200020102810002010285000200020002010281000201028e000200 +0102010201020001000100020502840002000102850200010002008e0001000100020001 +000100010002008c000100020002000200010001008a0001000100010002000200880001 +00010001000100880002000200020001008a000100010001000100010088000100020002 +000100880001000100020001008800010001000100010086000100010001008800020002 +0002000200880001000100020001008a0001000100010001000100880001000100010002 +008a00010001000100010002008a00010002000100010001008c00010001000100010001 +000100880001000100010201020102850100010001008700010001000100028602010001 +020102820200028202010282020002820201028f02000201000100010001000100010001 +840100010002820201028202010282020102840201020102820201028102018401000100 +010301810001020187020100020102010284020102010284020102010282020100810001 +020183000100010201820001028202000184010001000192010201000100020002010001 +000201000100010201830201020102018300010001020181020106018802010201020102 +0102810201830102010285020102010201810102870201020102010201 +830201000282020002030281010286020102010200028202000202028300020102010283 +010201020302870102010201020102060202018102018101028402010201028202000282 +020102820201028102010101820001008100010501830001000101010200030181000101 +018302000201030102028101020402810102020283010201020102810102820201020202 +820102018701020102010201020402010105020101820201020202810102050281010202 +02830102010283020102010201830201020182010201810102820201028102010d010102 +010102028601020102010201010183020102010a01820201028202010282020102820201 +028202010283020102010901820201028202010282020102820201028102011301830201 +02018101028102010401810201840102010201820102010a010202810102820201028202 +010281020111018302010201010101028101028202010282020102810201010183020102 +010f01010281010282020102820201028202010282020002870201000100010001050188 +00010002000200010287020102010002000285020100010001030183000100018d010001 +0001000100010201020102840201000102820201008b0002010001000102010200028502 +00010002010301810001010102008102018101008f000100010200020002010201020102 +010301810201820102010901810201810102850201020102018101028802010201020102 +0102 +0102010101028101028202010282020102020281010286020102010201028a0201020102 +010201020102010289010201020102010201020202080103028301020102820201028202 +010281020184010001000102018100010701010003010100020101000301830001000181 +010201028401020100020402810102040201010102020101020101810201830102010203 +028301020102010285010201020102030282010201860102010201020185010201020102 +810201820102018201020101010102830102010201020101810201020186020102010201 +02840201020102810201050183000100010201840201020002820200028f020100010002 +010002000100010001008800010001000200020088000200010002000200880002000100 +010001008800010001000100010086000100010001008800020002000100020088000100 +0200010001008a0001000100010001000100880001000200010002008a00010001000100 +0100010083000100010301820001008c000100010001000100010001008e000100010001 +000100020002000100890001000100010001000282020102820200020102810002820201 +0282020002820200028f0201000100010001000100010001000184010002000282020102 +870201000200020002830201020104018300010001050182020102840201020102820201 +0284020102010285020102010201810100810001020183000100010101820200028a0201 +0002010201000100018d0100010002010001000100020001840100010001070183000100 +01020181020104018a02010201020102010201028102018101028c020102010201020102 +01020102010201010002 +82020102820201028802010002000102010284020102000284020102010202028b010201 +020102010201020102010283010201028702010201020102018201020103010102810102 +820200028202010203028200010084000100010001000101830001000101018100010201 +010003018100010201010001018100018101008100020502810102820200028202010201 +0281000205028b0001000200020002000200020302850002000200020102850002000200 +02020281010203028501020100020092000100020001000200010001000200010002008e +000100010002000200010001000100960001000100010002000200020001020102000100 +010001820100010101860001020102000282020102820201028202010285020102010201 +0d0184020102010201028101028202010283020102011001820201028202010201028101 +028102011201810201040101028101028702000200020102011201820201028202010282 +0201020102810102820201028102010f0101028101028202010282020102820201028202 +01028202010282020001010183000100010501810002820201028702010200010201028b +020100020002000100010001080182000102840200020002840201020102870201000102 +0102008100019001000102010200010001020102000100010701010081020101018c0002 +000102000200020102010281020114010102830102010202020101820201028202010201 +020001 +010281000281020182010201830102010281020184010201020185010201020102820201 +020302830102010201028301020102040281010203028201020101018202010202028101 +028202010282020102010202018300010001840100010001080181000102018100010301 +810001020188000100010201020002820201020302010182020102010281010203028301 +020102010203010302810102010281010203028301020102030282010201860102010201 +020185010201020102820201020402040101028201020101018102010101850002010201 +028502010001020109018200020187010201020100010282020102830200020103018300 +010001030101008301020102850200020001028702010002000201028602000100010001 +860100010001000182010200830001000101010100820100028402010002008100010101 +850001000100018601000100010001010101008201000101018200010081000101018500 +010001000184010001000103018200010081000101018500010001000101010100010202 +018500010001000101010100850100010201028502000102010282020002820201020102 +8101028102008f0001000100010001000100010002000282020102850201000200028902 +010200010001000201860100010001000106010102830102010283020102010201020284 +010201020107010100030183000100028a02010201020002000102019101000200020100 +020102010201000200020101018300010001070188000100020102010201040101020101 +84020102010288020102010201020102810201860102010201020183010201020102 +820001028202010282020102820201028402000201028402010201028402010201020702 +810102820201020402810102010281010281020106010102830102010282020102820200 +020202830001000181010001008201000184010001000106010100060182020100850001 +020102010101830001020102010102810102030283000201020202830102010289020001 +020102010201020302830102010202028100028402010201028202000205028800010201 +000100010090000100010002000200010002000100020085000200020001010185000100 +0100028e0200020002000100010001000200018601000200010001010101008301000102 +8d0200020001000201020100020002860201020001000102018300010001010101020100 +820201028202010282020002820201028302010001040181000104018200020102018302 +000201010186020100020102010201810001040181000104018100028102010201810002 +850201020100010e01810001020183020100010101010284010200010283020102011001 +810201030102028101028202010283020102010501810001010181000103018202010282 +020102820201029602010201020001020001000100010001000100020002010501840001 +000102820200028402010201028502010001020188010001000100020102880200020001 +00010001030181000101018502010201000102018b000200010201020002000201050181 +020102018102010b01820201028302010201810102010201018302010201810102 +010281000282020102810201840102010201810102020283010201028802010201020102 +010201028101020302870102010201020102030206010302810102820201028202010203 +02020181000102018100010f018100010301810001880102010001020102018901000102 +010001020102030283010201020102810102070201010502810102030282010201810102 +040201018502010201020181010204028101020402820102010101810201830102010285 +020102010201810102820201028302010201090182020102840201020102840201020102 +8202010283020102010b0184020102010282020102820201028202010282020102810201 +08010102030101028401020102011a018102010401810201820102018201020135019800 +010001000100010001000100020001000100010001000100870001000100010001010101 +028101028202010298020100020002010002000200010001000100010001000100010101 +010281010284020102010282020102820201028402000201028502010201020103018200 +01008100010101840200020102860200020002010081000201028101028c020102010002 +010201020102010401830001000102010100880200020102000200028102010101810201 +030184020102010281020183010201028202010281020183010201028202010206020001 + +81000281020181010282020102840201020102820201020202830102010202028f010201 +020102010201020102010201020102810102020282010201820102010101820201028202 +010201028300020002820200020102820001008500010001000188010001000100010001 +850100010001000100030181020101010100030183000100010201810201820102018101 +020102810002820201020202810002050281000201028100020102830002000203028100 +020102860002000200010205028901000200020002000100a10002000200010002000200 +02000200020001020001000100010001000200020002008a00020002000200010001008a +00010001000100010001008a000200010002000200020088000200010001000100880001 +000100010001008800010002000100010088000100020002000100880001000100010001 +008600010001000100880001000100010001008800010001000100020088000200010001 +0001008a0001000100010001000100880001000200010001008400020102010b01860001 +00010001008e00010001000100010001000100010083000100011c018902010201000100 +010001030181000101018100018301020102820201028202010282020102860201020102 +00018c010001000100010001000100018201000103018400010001028602010201020102 +82020102810201010181000104018c000201020100010001000100010401840200020102 +830201000102018300020001020183000100010b01850201020102010301810201010101 +02010183020102018101028202010201028301020102 +010281000282020102820201028302010201840102010201850102010201029002010201 +020102010201020102010201020102810102020281010281020101018102018301020102 +020281010203028101020102030181000102018100010f01810001010184020100020185 +010200020001020181020101018500010001000282020102010281010282020102040281 +010205028101020402820102018301020102030281010201028401020102018101020402 +810102020284010201020181010281020103018402010201028202010281020182010201 +070184020102010284020102010282020102840201020102810201070183020102010101 +8402010201028202010284020102010201028401020102010a0182020102820201028202 +0102820201028102011601830201020108018102010d0101028201020127019800010001 +00010001000100010001000100010001000100010085000100010001030101028101029c +020102000100020100010001000100010001000100010001000102010282020102840201 +020102820201028202010284020102010283020102018201000184010001000101018702 +010002010001008400010201028102008500020102010286020102010001028102010301 +8100010201840001000102820201008b0002000201020001000102010b01830201020183 +0102010283020102018101020402010185020102010201 +810102820201028202010282020102820201028402010201020202850102000200020202 +850102010201020802810102820201028302010201030182020102820201028202000204 +028400010001008500010001000188010001000100010001850100010001000100020183 +020100010401850201000100018b01020102010201020102010201028300020002030281 +000282020102010281010282020002820201020402810002020286010201000200020302 +8100028a020102010201000200020092000200020002000100010002000200010002008e +00010002000200010001000200020089000100010001000100018b010002000100020002 +0002008a0002000100010001000100880002000100010001008800010001000200010088 +000100020002000100880001000200020001008800010001000100010086000100010001 +008800010001000100010088000100010001000100880001000100010001008a00010001 +00010001000100880001000200020001008100010e0186000100010001008e0001000100 +01000100010001000100850001000100011e018c00010001000100010001000201830100 +0102820201028202010282020102840201020102830201020101018d0001000100010001 +000100010001820100010101840001000102880201020102000102010401810001020183 +000100028102000100850100010001008800020001020102000285020102010001020185 +000100010001820100010801810201040185020102010201010101020201810201810102 +84020102010288020102010201020102 +010281010284020102010281020183010201020202810102020285010201020102030281 +010282020102040283010201028702010201020102010101010281010201028301020102 +820201028202010281020101010100180185020102010201850102000100010301880001 +020002000100010101820201028402010201028202010284020102010201028101020602 +010107028101020202840102010201810102040281010285020102010201830102010281 +020185010201020102810201820102018201020107010102830102010286020102010201 +028102018401020102010a01820201028202010284020102010282020102820201028102 +010b01820201028202010282020102820201028202010201028101028102013301010282 +0102012d018d000100010001000100010001000101018200010081000107010102810102 +860201020001020195010001000100010001000100010001000200020001028402010201 +028202010282020102820201028402010201028302010201010182000100860001020001 +00018a0102010201000201020102820201028b0201000200020102010002010a01840002 +0001028e0201020102000200010001000102010801850201020102010301010287010201 +02010201028202010281020183010201020002 +810102820201028202010283020102018301020102850201020002018901020002000201 +020102010289010201020102010201028202010201028101020102010181020101010202 +830102000282020002040282010001860100010001000188010001000100010001880100 +010001000100018301000201880102010201020102018201020101018102010501810001 +8301000102820200020302810002820201020202830002000202028101028f0200020002 +000200020001020102010201028101020202880002000100010002009200010002000200 +0200010001000100010001008e0002000100020002000200010001008700010001000100 +018101028b0200020002000100010002008a000200020002000100010088000100010001 +000100880001000200020001008800020001000200020088000100010001000100880001 +000100020002008600020001000200880001000100010001008800010001000100010088 +0001000100010001008a0001000200010001000100880001000200020001008100010e01 +86000100010001008e0001000100010001000100010001008b0001000100010001000100 +010d0181000104018b000100010001000100010002820201028202010082000102820201 +0282020102820201028102018201020105018d0001000100010001000100010001810102 +810201870102010201020102840201020001020181020081000102018800010001000102 +000201028101028402010200028802010200020002000283020100018601020100010001 +010181000182010001060181020106018202010287020102010201020181010284020102 +0102820201028102018301020102810201 +8202010281020183010201028202010205028501020102010202028f0102010201020102 +010201020102010202028101020102840102010201030106028101028202010283020102 +010101010001018100011c01830001000103018100010201830001000102018100018301 +020102010201010102850102010201020202810102020283010201020402810102040201 +018402010201028402010201028502010201020183010201028102018101028602010201 +0201028102010201860201020102010286020102010201028402010201028102010c0182 +020102820201028202010284020102010283020102010901810201020101028101028202 +010282020102820201028202010281020133018202010281020101018202010281020151 +018100010201940001000100010002000100010001000200020001028402010201028202 +0102810201840102010201020181020104018a0001000100020001000102840201020102 +84020102010202028201020182010001040181000109018400010001028e020100010200 +020002000100010201020181020105018102010601870201020102010201810102810201 +83010201028102010001 +820102018101028202010284020102010282020102020285010201020102820201020102 +850102010201020102810102010281010282020102020282010201040101028101020202 +810002820200020102840102010001860100010001000188010001000100010001880100 +01000100010001880100010201020102010b018100010201810001880100010001000100 +028202010283020001028502000102010201028501020102010286020001020100020302 +810002010281000202028901020100020002000200920002000200010002000100010001 +00010001008e0001000200010001000100010001008a00010001000100020002008a0002 +0002000200010002008a0001000100010001000100880001000200020002008800020001 +000200020088000200010001000100880001000100020002008800020001000100020086 +000200010002008800020001000100010088000100010001000100880001000100010001 +008a0001000200010001000100880001000100010001008100010e018600010001000100 +8e0001000100010001000100010001009e00010001000100010001000100010001000100 +010001000100010001000100900001000100010001000100010001020102820201008200 +010282020102810201020101020901940001000100010002000100010002010002010201 +028402010201028502010201000102010100030181000101018202010201028301020102 +840201020002860201020102000283020102008300010001860100020001000102018100 +010101850201020102010701820201028702010201020102010101810201830102010284 +0201020102010282010201 +820201028202010282020102820201028502010201020187010201020102010206028101 +028202010203028301020102020284010201020104010102810102030281010204020201 +010002018100011901810201010183000100010601830001000104018100010201820201 +020102030103028101020402830102010282020102840201020102010201018402010201 +028202010202028401020102018301020102810201810102830201020102018102010201 +840201020102840201020102850201020102010801810201010101028301020102820201 +02840201020102810201820102010b018402010201020102830102010282020102820201 +028102010d01820201028202010281020123010102820102010201830201020152018100 +010201940001000100010001000200020001000200020001028402010201028102010a01 +810001020182000102890200020102000100010285020102010201820102010201830201 +020107018100010201810201870102010201020100860001020102010081000287020100 +010001000102018102010501810201060182020102820201020202890102010201020102 +0102 +020283010201028202010283020102018301020102020287010201020102010203028101 +020102850102010201020202810102020206010202810102020281010282020002010283 +000100018601000100010001040181000108018100010201810201820102010801810001 +010181000107018800010001000102010288020002000100020002830201000202028101 +020302810102050281010202028100020102880001020100020002009200020002000200 +0200010002000200020002008e0002000200010002000100010002008a00020002000100 +010002008a00010002000100010001008a00010001000100020001008800020001000200 +020088000200020001000100880001000100010001008800010002000100020088000200 +020001000200860002000100010088000100010001000100880001000100010001008800 +01000100010001008a00010001000100010001008800010001000100010083000102010c +0186000100010001008e0001000100010001000100010201008300010002850201000100 +029402010001000102010001000100010001000100010090000100010001000100010001 +00010201028202010082000102820201028102010d019202000100010002000200020001 +0002010001028202010283020102010201830001000102018e0002010200020001020102 +010201020102810102840201020102880201020002000102018101008300010001020183 +0001000101018a0200010001020102010201820102010401820201028102018301020102 +0102810102040286010201020102010101810201 +820200028202010282020102850201020102018601020102000102010283010200020102 +890102010201020102010201028101028402010201028102010601030281010203028100 +020202010183000100010201810001840100010001010181000186010001000100010201 +860001000201020103018300010001060182000100810001820100010701810201030102 +028101020202810102020201010102860102010201020185010201020102010201010302 +8201020183010201020202010101020a018202010283020102018401020102010b010102 +830102010282020102820201028402010201028102010a01810201020101028101028202 +010282020102820201028202010281020109018202010282020102820201028202010283 +020102012201010206018102011c0181020103018102010d010202810102810201190198 +000102010200010002000200010002000200010002000200010101810201090181020101 +0101028101028402010200028a0201020102000100010201820100010601010281010281 +020104018102018201020101010102840102010201010101008501020102010083000100 +01010183000100010a0101020801020282010201810102820201028102018301020102 +8101020202820102018201020183010201020202810102010281010202028d0102010201 +020102010201020102020283010201028302010201010181020183010201020102810102 +020281000202028201000102018300010001200189000100010001000100010d01020285 +0102010201028202010209028401020102018101028202010207029d0102000201020002 +0002000201000100020001020100010002000201020083000100018a0102000100010002 +0102008b00020002010200010001000189010001000100010201008a0002000102010002 +000200870002000100020001890100020001000100010088000100010002000100880001 +000200020002008800010002000100010088000100010001000100860001000100010088 +000100010001000100880001000100010001008a00010001000100010001008800010002 +000100010083000200010c0186000100010001008a000100010001000100010201028101 +028202010282020002010281000282020102910200010001000100010001000100010001 +008f0001000100010001000100010001000283020102008100010b018402010201028202 +01028e020102000100020002000100010001840100010001010181000104018300010001 +030186020102000200028a02010201020102000201028302010201820102008800010200 +010001000101018100019301020100010001000102000200010201020102010701010289 +01020102010201020102030284010201020101018402010201020002 +830102010201028101028202010202028801020001020002000202028100020302830102 +01020202850102010201028502010201020106010d028501000100010085000100010001 +86010001000100018a0100010001000100010001880100020001020102010d0181000182 +010001840100010001010184000102010201028201000282020102010281010202028400 +0200010203028e0102010201020102010201020100020102830001020185010201020002 +810201810102820200010201860201020002010202028100010501810001830102010282 +020002890201020102010002010284020102000104018100010801820201028202000284 +0201020102010283010201028102010b0181020181010282020102820201028202010201 +0281010283020102014a018102010c010202810102820201028202010201021901820200 +029802010200010002000200010002000200010001000100010001080182020102840201 +020102840201020102820201028a02010201020001020102018201000106010102810102 +810201040101028501020102010288020102010201020100810001040183000100010101 +870001000102010201070101028201020181010281020181010201020101010287010201 +0201020102810201 +820201028202010281020183010201028602010201020102840201020102050281010282 +020102020285010201020102020284010201020182010201010101028101020102830102 +000204028201000102018300010001180183020102010301830001000101018300010001 +0f0183020102018101028102018101020302810102820201020102850102010201028102 +010201010283010201028402010201028202010286020102010201028102018101028502 +010201020102018202010286020102010201028402010201028102010c01810201010101 +028301020102820201028202010284020102010283020102010801010281010282020102 +850201020001028202010282020102840201000201010183000100010201860002000200 +010081000101018200010089000100010001000100018701000100010001008a00010001 +000100010001008800010001000100010083000100010101810001060188000100010001 +0001008b0001000100010001020100028202010282020102820200029602010001000100 +010001000100010002000100010001009300010001000100010001000200010001000200 +018101008100010801820201028402010201028202010287020102000102010283020102 +010301830001000101018100010201860001020102010282020102860201020102010284 +020102000201028300020102830201020182010001820100018101008100018501000201 +000101018f02000100010001000102000102010201090101020801830201020181010283 +020102018101028202010282020102 +02028101028302010201830102010286020102010201028a020102010201020102010203 +028101020602810102030206010102810102030283010201020102860001000100010082 +000100010001018700010001000100018801000100010001000183010002011201810001 +820100018401000100010101830001000201028500020002000201028500020002000282 +02010207028b010002000200010002000102020288000100010002000200920001000200 +02000200020001000200010002008c000100010001000200010001008a00010001000201 +020102008a00020001000100010001008a00010001000100010002008800020002000200 +010088000100020001000100850001000100010101010086010002000200028502000100 +01020102810100810001030181020102018100010b018100011c01810201200184020102 +010281020183010201028102018101028302010201810102810201130182020102820201 +028202000292020102000100020002000102010001000100010101910001000102010200 +010002000200010001028202010284020102010282020102810201840100010001020181 +000109010602830102010286020102010201028302010201030183000100010301830001 +000101018500010001020182010201060101028701020102010201028102018101028302 +010201820102018101028102010101 +820201028202010282020102840201020102040281010202028901020102010201020102 +010281010204028301020102830201020101018102018101028402010201020102810102 +050282010001020183000100011401870201020102010201050181000101018300010001 +0c0182020102010202018202010203028101020302810102050281010201028101020102 +820102018101028202010282020102810201010187020102010201020104018402010201 +028202010201028401020102010a01810201010101028301020102840201020102820201 +02850201020102010e010102830102010282020102820201028202010283020102010501 +810001050182020102010285010200010201020181000104018300010001020188000100 +010001000100830001000101018200010081000101018500010001000182010001010181 +000108018600010001000100850001000100010101880001000200010001009a00010001 +00010001000100010001000100010001000100010001008100018101008f000100010001 +000200010001000100018401000100010301010281000284020102010285020100020102 +8102010f0182000102830200020102010102830102000282020102840201020102860201 +020102000286020102000200010401830001000181010287020102000201000102018e00 +02000100010201020001020102010a018302010201040101020101010284010201020101 +0101020301 +010281010281020181010203028901020102010201020102050201018802010201020102 +010284020102010202028401020102010201820201020102830102010203028101028102 +018501000100010085000100010001880100010001000100018801000100010001000182 +010001010181020110018300010001820100010101850001000100020102860001020102 +0102010281010202028101020102810002010201018b0201020102010201000100020202 +860100020002000286020002000100020102860002000200010283020001008900010201 +000200020002840201000100810002830201000182010201010185000100010001010182 +0002008100018e0102000200010002010001000200028202010083000200010101820001 +008800010001000100020091000200010002000200010200010002000200850001000100 +0101010100820100010101010082010001030101000d0181000104018100010401810001 +8201020109018100010c018100012f018202010282020102820201028502010200010281 +02010e019100010200020001000200020002000100020105018702010201000100011101 +840201020102860201020102010283020102010801820001008200020101010200820102 +008700010001000102010701820201028302010201880102010201020102018201020181 +0102810201820102010001 +810102010281010282020102820201020202810102030283010201020402810102020281 +010201028101028202010201028101028102010501020281010282020102820200028702 +010201000100018601000100010001140183020102010b01850001000100010e01810201 +040102020101080283010201020202810102040281010202020201030201018702010201 +020102018101028202010281020181010283020102010c01840201020102820201028402 +010201028402010201028102010401810201080183020102010601010281010282020102 +820201028102010b0101028101028202010282020102820201020102820102015a018500 +010001000103018300010001050181000104018100010201810201070196000100020100 +02000200010002000200020001000200028102010a018202010284020102010284020102 +010284020102010282020102840201020102840201020102840201020002860201020102 +000104018500020002010287020102000201000104018400010001028102011201810201 +0201010285010201020102810201830102010281020101018102010001 +810201810102820201028202000282020102060286010201020102018101020402830102 +010204028101020202060102028101020302810002040285000100010001860100010001 +000186010001000100018a01000100010001000100018701020100020102010f01810001 +8201000101018d0001000100010201020102010002820201020202810002880201000102 +010201020302810102830201020185010201020102010284010201000184010200010081 +000201028500010001000195010200010001000201000100010002010200020002008300 +010001010186000100010001008a00020002000200010002008800010002000200010088 +000100010002000200880002000200020002008800020001000100020088000200010002 +000200880001000100010001008800010001000200020086000100010001008800010001 +000100010087000100010001000102018100010301820001008800010001000100010085 +0001000100010801880001000100010001008f0001000100010001000100010001000184 +010001000121010102810102820201028202010284020102000111019000010200020001 +000200020002000100010401850001000100010101010202010102040181000284020102 +010203028101028402010201028102010201810001070101008301000201820102008400 +020002008700010001000102010101810201030182020102820201028102018101028202 +0102810201830102010283020102010301 +020281010201028301020102820201028202010282020102880201020102010201020102 +810102010283010201028202010204028201020101010102810102820201020302810002 +040282010001020183000100011b01810201060185000100010001010181000105018100 +010201010281010281020181010201028101020502020181020101010102810102010281 +010201028101020302820102010101810201010101028101028802010201020102010281 +02018101028102010a01860201020102010284020102010282020102850201020102010b +0182020102840201020102850201020102010101820201028102010b0181020181010282 +0201028202010201028101028202010283020102016301830001000101018d0001000100 +010001000100010001870100010001000102810201090182000102940201000200020002 +000200020002000100020002010701010281010284020102010282020102840201020102 +890201020100010002000101010102820102010301810001830102000201020101820201 +028602000200020102890200020002010201000102018300010001010181000182010001 +0e01010281010281020181010282020102810201830102010283020102010401 +020281000181010282020002840200020002840201020102820201020202850102010201 +020102810102040281010282020102810201070102028101020302810102010201018500 +010001000186010001000100018801000100010001000188010001000100010001010183 +020002011801810001040102020101010281010206028201000104010302810102020285 +010201020102010283000200028102010101830002000202028600010001000102940200 +020001000102000200010001020100010001008c00010002010200010001000200880002 +000200020001008a00020001000100010001008800010001000100010088000100010001 +000200910002000200010002000102000100010001008800010001000100020088000200 +020002000200860002000100010089000100010001000100018901000100010001000100 +810001050101000201850001000100018401000100010a01850001000100018601000100 +010001010185000100010001860100010001000101018100011201810001050185000200 +020002010281000282020102810201100101028101029002010200020001000100010001 +000100018201000101018800020001020102010284020102010282020102840201020002 +8602010201020002850201020002010f0184020102010092000102010201000201020102 +010001000102018201020104010102810102810201820102018201020101018202010283 +020102010501 +810002830201000181010282020102820201028602000201020002010281010201028101 +020402810102010283010201028202010201028201020101018102018101020102810102 +030281010282020002830201000102018300010001170183020102010801810001050181 +00010501810001020184020102000101010b020701830201020181010201028101020402 +820102018201020101010302850102010201028302010201810102810201810102860201 +02010201028402010201028402010201028102010c018102018501020102010282020102 +840201020102820201028602010201020102820201028102010601010281010282020102 +820201028202010282020102820201028302010201110181020153018102010201810201 +03018102010b018302010201020181020181010282020102820200028202010282020002 +82020102820201028a020002000100010001000101010102830102010282020102840201 +020102820201028102010101810201880100010001000100010d01840201020102840201 +020102860200020002000289020002000201000100010201820001008200010082000100 +810001030181020109018802010201020102010285020102010201820102010601 +8402000200018101020202810102840201020102020281010202028f0102010201020102 +010201020102010203028201020105010202810102820201028202010282020002010286 +010001000100010201830001000186010001000100018a01000100010001000100018401 +0001000112018100018b0100010001000100010201020102850102010201020402900002 +000200020002000200010002000102010285010201000102020281000202028501000100 +010092000200010002000200010001000200010001008c00010001000100010002000200 +8c00020002010200010001000100880001000100020001008a0001000100010001000100 +880002000100010001008800010002000200020089000200010001000100018701000100 +010001008800010002000100020088000200020001000200860002000200010089000100 +010001000100018401000100010101010082010001060181000103018300010001130181 +00010401810001050181000104018100010b018102018401020002010301810001040101 +028101028102018801020100010001000182010001090182020102820201028402010201 +029a02000100010001000100010001000102000102010002000201020183010201028102 +0183010201028102010101820200028402000100028202010283020100010c0186020102 +010201008400010201028b02000201020102010001000102018102010401010202018202 +0102870201020102010201820102010701 +810102020281000282020002820201028202010286020102000201020102810102020283 +010201028102018101020902020181020181010203028101028202010282020002010283 +000100010201830001000115018102018101028102010501810001020187000100010001 +000103018100010401030201018402010200020102810102010281000187010201020102 +000104018100020402820100028102018601020102000201010186020100020102010101 +820001028602010201020002870201020102000201030181000104018100010201850201 +000201028402010200028702010201020001028502010201000101018402010200028302 +010201840100020102820201028202010282020102820201028202010283020102011001 +010281010281020101018302010201510101028101020102820102018201020110010102 +8101028202010282020102860201020001020002008101028d0201020100010001000100 +0100010101820201028202010285020102010201090189000100010001000100010d0103 +028501020102010286020002000201028302010201010183000100010201840001000100 +0100810200810001010183020102010901010201010102040183020102010901 +820200020302830102010286020102010002018701020102010201020102810102050281 +010204028101028102010601820201020302810002820200020302860100010001000102 +018300010001880100010001000100018801000100010001000186010001000102010801 +810001070181000184010001000101018500010201020181010203028300020102030281 +000101018500010001000101018100010101010201010102830002000201028600020002 +0002008700020001000200028a02010002000100020001008c0002000200020002000100 +02008c00010002010200020002000100880001000100010001008a000100020001000100 +020088000200020002000200880002000200020001008900010001000100010001870100 +020002000100880001000200020001008800010002000100020086000100010001008800 +010001000100010085000100020001010182000100810001030181000189010001000100 +0100010081000101018100010a0186000100010001008900010001000100010001010183 +000100010201850001000100018301020102860201020002010283020102008200010081 +000181010087000100010002010085000100010001810100840001000100830001020186 +0102010002010284020102010282020102820201028e0200010001000100010001000100 +018201000103018100011101810001850100010001028502010201000103018402010201 +028602010200020102810201810100860001020102010281020101018502010001000102 +01810201050181020101010102810102010283010201028102010901 +8101028d0200020102010002010201000102010281000288020102000201020102030281 +010201028301020002820201028102010201810201010103028101028202010282020002 +0302060183000100011301810201820102010f0185000100010001010181000105018100 +020102820102018101020102810102050281010285020102000201820102010101810001 +020186020100020001020102820100028102010101830200010201020201810002010281 +010282020001820102010101810001040181000101018402010201028402010001028402 +01020102820201028402010201028102010f018102010201020281010282020102820201 +028202010283020102010c01810201810102820201028202010201028101028102010201 +010281010201020c0181000137018100010501830001000104018100010e010102010182 +020102820201028202010283020102018201020182010200810001010181000101018900 +010001000100010201040181020109018100010201890001000100010001000110018602 +010201020102840200010001860100010001000186010001000102018501000100010001 +008201020086000201020102010901820201028102010101850201020102010101810201 +04018102010001 +010181020081000282020102820201028b02010002000201000200010201028100020102 +810102010281010286020102010201028302010201010181020183010201028202010282 +020102820201020402870001000100010001840100010001060183000100018201000103 +018100018601020102010201030181000105018100010e01020202010102010106020701 +850201020102010401840201020102840201000102010202018a00020001020102000200 +010101010294000100020002010001000200020102000100010001820100010101810001 +010101008201000291020100010002000201000200020001020100880002000201020002 +008800020001000100010091000100010002000200010200010002000200880001000100 +02000100880001000100010001008600010001000100880001000200020001008a000200 +01000102010001008100010301810001020189000100010001000100010b018800010001 +00010001008f000100010001000100010001000100010201890001000100020002000285 +020100020002860201000200010081000181010092000100010001000100010001000100 +010001008400010200010101010282010001810102810201020183020102010201920001 +000100010002000200020001020001020186010200020102018301020102810201020101 +020301810002870200010001020102010283000201028602010201020102860201020102 +010281020181010081000104018102010301830001000101018102010601830201020182 +010201030181020107018100010201 +840102010201810102840201020102040281010202028101020402830102010209028201 +020104018202010282020102820201020102810102030282010001010182000100830001 +000101018100018401000100010601850001000102018601020102010201060181000102 +018900010001000100010001010184000100010201028401020100028202010207028601 +000100010001010185000100010001010101008a01000200020002000100028102018f01 +000200020102010200010001020102830201000104018100010201870201000201020102 +890201020102000102010281020111010102810102840201020102820201028202010282 +020102830201020182010201030181000106018102018201020182010201810102010201 +018202010281020184010201020107018100010401810201030101000501810001040181 +00010b01810001050181000104018100010401810001040181000105018100011d018102 +018101028302010201820102010f01860001000200020183010201028102010b01810001 +020186000102010201028402000201028102018501020102010285020102010201010101 +020401810001070186020102010002010101880002000100020002000200840102010201 +0201810201040182020102860201020102010202020b01 +020181020181010282020102820201020102810102010284000102010282020102820201 +020202830102010202028101020202020181020101010102810102820201028202010203 +028801020100010001000102018100012001830001000115018102018201020101010202 +810102020290010201020102010201020102010201020107010102010101028101028202 +010282020102810201820102018101020202870102010201020102840201020102810201 +0b0182020102840201020102820201028702010201000201028402010201028102010901 +810001010181020182010200820002018101028302000201810102830201000181010281 +020182010001040183000100010301010003018102008400010002018301000100810001 +010181000101018100018201000105018100018701000100010001008100010101810001 +0801880001000100010001008e0001000100010001000100010001008100010101980001 +000100010001000100010001000100010001000100010092000100010001000100010001 +000100010201020102820001000100810201830102000281020184010201020109018f00 +010001020100020001000102010201810102850200020102010901810201020181000186 +010001000102018f01000100020102010201000201020102820200018201000101010100 +0d01850001000102010801810201100181000101010002 +050101020101830201000282020102020281010282020002080281000202028100020202 +820102010101010281010202028101028202010206028100018501000100010087000100 +010001000186010001000100018801000100010001000186010201020102010f01010082 +010001040186000100010201028102018201000207020501810001050187000102010201 +020187010001000102010201020401010281000201028101028202010202020301820001 +028602010201000102890201020102000102010282020100810001030181000108018202 +0102850200010201028802010002010201020183010200010c0184000100020101018300 +01020102018200020103018102010e018102018601020100020102820201020102030101 +000501830001000102018500010001000107018500010001000101010100820100010101 +820001008100010101850001000100018901000100010001000100850001000100010101 +850001000100018601000100010001030183000100010101840201020001030181000103 +0184000100010084000201000101018b0001000200010200020102018201000105018100 +010601860001000100010282020002850201020102018301020102840201020102810201 +01018102010a010102880102010201000102018501000200010001008302000200850001 +020102010b010102850102010201028302010201070182000100 +020181020101018102010101820201028202000282020002820201020302810102010283 +000201020202810102020282010201040104028101028202010203028100028702010001 +00010001020181000121018100018401000100010e010102810102810201850102010201 +0204028501020102010281020186010201020102010f0181020183010201020202820102 +01820102018101028402010201028102010d018202010281020101010102820102018301 +02010281020101010102820102010e018102010301810201030181020103018102010f01 +810201030182020102820201020102820102018201020104018102018201020111018100 +018401000100011101880001000100010001008d00010001000100010001000100018201 +000101019c00010001000100010001000100010001000100010001000100010001009000 +010001000100010001000102010201008200020001000101820201028102010201810201 +090182020002840201020102820201028402010201028202010284020102010283020102 +010801810201820100018b01000100010002010201000102018302010001860100010001 +000182010001010182000100820002010901870001000102010201060101021101010081 +0102 +030181020103018202000201028301020102040289010201020102010201020202810002 +020284000200020102018202010204028101020302810002010281000185010001000100 +870001000100010001880100010001000100018601000100010001820102018201020109 +018100010401030082010001880100010001000200020102840001000102010281010202 +020101900001000200020102000200020002010201850100010200018101000100820102 +010101830001020181010282020002820201020302010181020186010201020102018301 +0201028102010a0181000103018102010301810201040181020103018102010f01830201 +020183010201028102018501000201020181010283020102018201020103018102011201 +810002010281010282020002810201020102000d018100011c0181000103018300010001 +040183000100010201850001000100010101820001008100010101850001000100010101 +8500010001000101018500010001000182010001050186000100010001028a0200010001 +00020002000102018b000100010001000100010001820102010101010286000200010201 +028102010101010282010201830102010281020101010102820102010a01010285010201 +020102810201050182000100010081020002000b0181020101018a020102010201020102 +010281020109010000 +0c018402010200028a020102010201020102010204028100020202810002020282010201 +020182020102820201020302810102820201020102870001000100010001020181000115 +01810201090181000186010001000100010e01810201030108028401020102010f010102 +060181020185010201020102020201010402840102010201110181020103018102011101 +0102020101028201020181010283020102018101028302010201820102010e0181020181 +010282020102820201028202010282020102010281010283020102011201810201410181 +000101019400010001000100010001000100010001000100010087000100010001000101 +01850001000100018501020100020001008101028202000283020102010c018202010281 +02010101010282010201850102010200010b018100010801870001000100010002010282 +010001860102010201000186010001000100018201000101018200010081000106018b02 +0102010001020102010201070181020104018102010301810001030101000101 +080181020184010001000185010201000102060285010200020102840200020102850201 +020102018201020101010402810102820201020502820100018501000100010087000100 +01000100018801000100010001000186010001000100010f018100010401820001008200 +010088000100010001000102010283010001020802920002000200020002000200020002 +000200010082000100010085010001000100010001028600010002000102810201810100 +010081020101018300010001040181000104010100010181020101018500010200020182 +010002830201020181010083000102010101010004010100040183000100028202010285 +020100020102840200020001840102010200810002810201820102008100010101850001 +000100018601000100010002860200020001000101010100870100010001000100840001 +000201830100010002000201830001000184010001000101018300010001020181000106 +01880001000100010001008e000100010001000100010001000100810001010181000101 +018100011c018100010701840001000102830201020181010283020002008100028a0200 +0100010002000200018c0100010001000100010001000182010001030189000200010001 +00010201030181020104018102010401840201020102820201028302010201010101028a +010201020102010201000102018800010002000200010081000105018102010201810201 +01018702010201020102010101010205018300010001810100 +0f0183000102018501020102010201028501020102000282020102020288010201020102 +010001830100010204028101020302810102880200010201000100010201810001200181 +00010301850001000100010a010202820102018101028202010206020301850201020102 +011a01010285010201020102810201070181020104018102010401810201030181020109 +018102018101028402010201028202010282020102840201020102820201028102010c01 +810201010184020102010281020183010201028102018401020102010101820201028102 +016401850001000100010101850001000100010301830001000108018102018301020102 +8402000100018401020100010f018102010d018100010b01810001010181020104018100 +010101830002010282020001060181000184010001000184010001000103010100840102 +0102018c0102010201020100010001020109010102880102010200020102010101830001 +0001020182000100 +0b0186000100010001008b00020102010201020102010284020102010202028101028402 +000200018101008100018101020102810102820201028202000204028101028402010001 +008b00010001000100010001000186010001000100018601000100010001020181000112 +018400010001008700010001000100028902010002000200020002050294000200010001 +000100010001000100010001000100160081010001008701000200010001000200870100 +020002000200040002010400810200040081010001008101008200010001008501000100 +020086000200010001000200830200020004008101000300830100010001000101820001 +000100010185000100010001830100010001000101820001000100020103000201820001 +008100010301840001000100850001000100010201830001000101018100010401810001 +060183000100010101850001000100018601000100010001030183000100010201830001 +00011c018300010001050185000100010201010189020102010001000102010301810201 +01018e000201000100010001000100010002820200010101820201028802000100010201 +020102018102010301850201020100010401010283000201028102010101820201028102 +01010182020102860201020001020187010001000200010002000f010102080181020104 +0183000100010101 +0d0183000100010201880201020102010201028402010201020502830102010081000102 +0102028101028202000201028101020702810102010201018400020002011d0183000100 +010101870001000100010001010181000105018502010201020101010102810102050282 +010201810102850201020102018201020116018102010501810201030101028501020102 +01028102010e018102010401820201028102018601020102010201810102830201020117 +0181020103018102010301810201030181020103018102012f0181000103018100013201 +83000100010301830001000103018100010a018302010201040181000102018100010501 +870001000100010001840102010201010181020112018602010001000102010202018102 +010301840201020102810201070181000184010001000185010201020102810201810100 +8400010201028f0201020102010201000100010201020101018102010501010286010200 +0200020101018300010001020182000100 +0b0181000101018302010002020281010202028301020102070284000200020101018302 +000102010283000200028202010282020002040281000202028200020182010002810201 +840100010001880100010001000100018401000100010101810001150185000100010001 +0201020282010201810102820201020602830001000101018b0001000100010201000102 +010201030081020082000100840001000100010082010200020082010001890100010002 +000100010002008701000100020002008600010002000100820001000d00810100040085 +010001000100860001000200010086000100010001008200020004008101000200850100 +010001008400010001008600020002000100840001000200860002000100020084000200 +020002000201010082010001020183000100010101010082010001030101008101008200 +010082000100810001010181000106018300010001010185000100010001020183000100 +010301830001000102018300010001030181000105018100010501810001010181000186 +010001000100010101890201000100010001020101018902010001000100010201070181 +00018c010002000100010002000100020202840001020102820200018101028302010201 +820102010301040283010001028402010201020202830001020101018202010281020107 +0181000102018200010001008101008b0001000100010201020102010301860001000201 +020101018100010201820001008100010101820001008100010001 +0b01830001000101018602000201020102010283010201020a0201018200020101010202 +83000201028202010201028101020d028101028102011f01810001030182000100810001 +0a010202820102018101020a028801020102010201020110018302010201090184020102 +010284020102010281020115018102010201830201020101018302010201020181020111 +018402010201028202010282020102810201020101028101028202010201020101810201 +0f010102820102018101028102011b018100016001830001000107010102880102010001 +000100018101028302010201030182020102010281010282020102820201028202010282 +020102030281010202020201830201020102018502010201020181010201020301850001 +020100018301000102850200020102008100010101010201010102860002010201000104 +0181020103018c000200020001020102000200010201830001000102010000 +0f0189000200020102010201020502010101028100020202820102010301810002840201 +020002040283010201020102810102030281010201028101020102810102810201880100 +010001000100018601000100010001160181000182010001020181000101018202010282 +020001830102000201028100020202960100010001020100010001000102010001000100 +010200010082010001010185000100010001860100010001000101018200020081000101 +018500010001000189010001000100010001008200020001008101008200010007008101 +000300810100040085020002000100860001000200020086000200010001008100018101 +000200020102008201000181010001009002000102000100020001020001000200028102 +000100820100018101008200010081000108018102010201810201810100810001060182 +0001000300810100810001010181000106018a00010001000100010001008f0001000100 +01000100010001000100019f010001000100010001000100010001000100010001000100 +010001000100010085000100010002850200020100028802010001000102000183010201 +020102020186020102010201028102018101028202010282020002820201028202000186 +010002000200010101020202018302010201010183020102010101830201020184010201 +000182010002850201000102010401810201090183000102018701000100010001008800 +010001000102010281020104018200010082000102810201810100810001030183000100 +01010181000182010001 +0b0102000201040283010201020202810102090201018102010101820201020602810002 +04028100020602810102030281010281020101018102010c018302010201070181000103 +0183000100010a018102018201020101018202010206020d01850201020102010b018102 +010501830201020105010102090185020102010201840102010201030183020102018601 +020102010201110183020102018301020102810201830102010282020102820201028102 +0106018102010a01810201020104028101028202010204028101028102010e0183020102 +010501810001530181020103018102010101010201009b01020102000200010001000200 +010001000100010002000102010201030181020103018102010301010283010200028202 +010284020002000282020102840201020102870201020102010201820102010601850001 +00010001850102010201028102018301000100820001028b020102010200020102010001 +03018500010001000102018c000100010201020002000100018401000100010301 +0f018100020602810102060281010282020102020281000104011d028101020202810102 +01028501020100020103018100010a018100011501030201018202010207028401000201 +028502010001000182010201820100010401010082010001050181000104018100018101 +028102010101810001820102018601020100010201020183000100010201830001000102 +010300820100018901000100010001020100840001000102860200020001000186010001 +000100018701000100010001028102008100028102010101810002850201000201000100 +890200010200010002000286020002000102018601000200020002820200020102830002 +010083000100010101810002810201810102830200010081000101018100010201820001 +0082000100820001008100010a0102000201850001000100018601000100010001010182 +000100010003018300010001010182000100010002018200010003008b01000100010001 +000201020001008502000201000285020002000102810200830001020102018200020102 +0181020107018b0002000200010001000200028202000283020102018101008100011201 +830201000189010001000100010002010301810201080183020002010301830001000187 +010001000100010281020183010200010401010081010281020181010081000105018100 +01030182000100 +090182000100010084010002010203028301020102070281010287020102010002000101 +010202810102820201028202010208028101020102810102010281000204028101020202 +81010202028401000100010c018100010501830001000102018300010001040103020201 +03028101020102820102010201830201020101018102010b018200020115010102060181 +020104018102010a01810201030181020103018102010201010281010282020102840201 +020102030281010203028101028102010301810201020102020101820201020502810102 +010283010201020102830102010281020181010283020102011d01010081010081000102 +01010018010102390182020100830002000281020183010001028e020001020100010001 +00010002000105018102010601820201028102018a010201020002000102010282020002 +840201020102840201020102020281010282020102810201820102018101028602000100 +010001830102010283020100018301000100810001840102010201050183000100010201 +0100820100018f01020100010001020102000200020001820100010501 +090181000101018a00010001020102010201028202010201028101028402010201028202 +010281020101018102010101820201020102810102030281010282020102820201020302 +8100020102810102020281010204028101020402810102010282010201820102011e0102 +020301060281010201028201020119018102010a01850001020102018401000200010201 +830001020103018800010002010201000183010201028102008600010002010200830002 +000282020100810002850201020100028302010201860100020002000282020002040285 +000100020002820200010101010204008101000200850100010002008600010002000100 +020081010003008101000400860100010001000102018500010001000184010001000102 +01810001010102008201000108018102018101008100018a010001000100010002010202 +028900010002000100010001020188000100010001000100810001850100010001008100 +018601000100010001010182000102820200018301020102850201000201028402010001 +008200020101010102010001018102010301830201020101019002010002000100010002 +010001000100011701840200010001880102010002000100018201020101018102018201 +020182010001010101028200020103019300020002000201000100010201020001000100 +010201840001000102820201008400020002010b01 +0b0101000101010281010206028101028202010201028101020302830102000104010202 +810102820201028202010204020200830200010202028101020102810102040281010205 +028100028302010001140182000100810001820100010101010001010102010184000102 +010204028100020102870102000200020001010185000100010001010182000100020082 +010001840100010001890100010001000102000187010001000200010202028300020102 +840201020002860201000102010282020102830201020083000201020902810002820201 +028702010002010201028202000201020301820002010301810201030182020001010183 +02010001010183020102010301810201030181020103018102011c018100010501010081 +010082000100820001008100011501020202018102018201020127010102020102020201 +830002000102018102018501000100020102018900010001000100010001050181020103 +018102010301810201020101008402000100018401020002010201010202018202010281 +0201810102020281010286020102010200010c01820001008100010a0101000301830201 +0001040185000100010201020183000200010801 +090186000100010001020202810102030283010201028202010202028100020202010181 +020102010f02060184020002000202028100020202810102060281010203028201020108 +0181000105018100010c0186020102010201020502840102010201080101028201020107 +018902010201020102010201820102018201020104018102010201020281010202028101 +020402810102840201020102810201020188020102010201020102810201020183020102 +010301810201030181020103018102010301810201030181020110018102010801820201 +020102810102820201028202010282020102010201018302010201010101022401810201 +09010202010182020102010203018100010c018100010501810001050181000105018200 +02010301810001060183000100010201820200010f018700010001000100018601000102 +010001830100020103018102010301010203018102010201880002000102000200020102 +830100010201020101810001050186020102000200010201910002000200020100010001 +020102000100010401820001008200010283020001008400020102010901 +090181000182010001890102000201020102010202028301020102840201020102820201 +028502010001020101010402810102820200028202010202028101000100820100010201 +080281000204028101020502810002810201100105000101050081010201028400010201 +020702970102010002000200020001000100010001000100010001000500810200120082 +020002820201008e00010200020100010002000100010283020100018201020082000200 +82000200820002000100850100020001008a000100020001000100020088000100010001 +000100860001000100010002008301000100010083010002000200840200020100010083 +020001028102008300010001010184000100020181010086000200010001008500020002 +000181010281020107018100010601820001008100018301000100810001120181020101 +0182020102810201810102010230018102010c0101028100010301870001000102010001 +830100020102010102040181020103018102018101008500010201000182010002810201 +830102010281020101010102820102010101830201020181010203020301810201010181 +000105018502000100020108010100850200020102018201000104010102820100010201 +83000100010801 +09018d000100010002010201020102010286020102010201028202010284020102010281 +020101018102010201040281010282020102820200020102070101000601020201011002 +08010100820100018401000100010c010102850102010201028202010207028201020183 +010201028502010201020115018302010201870102010201020102860201020102010286 +020102010201028402010201028302010201120102028101028202010284020102010282 +020102820201028402010201020102840102010201050181020102018102010301830201 +020181010281020181010283020102018101028302010201810102010201018202010201 +028201020115010102010181000181010081000182010201080181020108018100020802 +0a0181000105018100010301830001000103018300010001030183000100010b01010004 +018102010301810201040181020181010282020102820200028202010201020101820201 +028502000102000204028101028402010201028202010284020102010284020102010287 +020102010201000102010102820102018101028102018501020102010284020102000102 +018c00010002000201000100010201020181000101018102010401820201028502010002 +0002830201020101018102010301 +0d0181000282020002820201020102810102010281010203028101020202860102010001 +020101018202010202028101020102810002850200020001000100820100010201010082 +010001860100020102010201028101020302810102060281010201020b01020081010084 +000100010082000100810002010285010201000102850200010201020202920001000100 +010001000100010001000100010081000181010004000101820001000400810100840002 +0002008200020001008502000100010002008b0100010001000200020002008600010001 +020100030081020082000200010085010001000100880001020102010001008500020001 +000284020100010086000200020002000200830100010001008301000200010001028100 +028102000100820200028302010002010288010002000102000200810002830200020002 +008601000200010001040101020201810001080183000100010101810001090181020182 +01000105010202810102010281010282020102820201008100010a018100011801840201 +02000281020181010201028200010284020102000181010201028d000102010201000102 +010002000183010001028702000200010200028202010282020102020201018400020102 +018501000200020101018302010201020101028300010201810102010201018200010201 +028100018401020102010101810001960102010200020001000201020100020002010201 +00010084000201020108010102040183000100010801 +070188000100010001020102030281010204028101020202810102820200020102820102 +010201820201020e02060101000601830002000181010201028100020302810102070281 +01020202020181020104018100010b01820201028102010101010281010207028c010201 +020102010201020102011b01010203018202010286020102010201020402860102010201 +020101018302010201020101028301020102820201028202010202028101028402010201 +028202010282020102010201010202820102018101028602010201020102010281010282 +020102820201028202010281020183010201028102018301020102810201810102810201 +160101020101010208018202010282020001010101008401000102011201020202010102 +81010202028101028102011d018100010301830201000102010102840100020102820201 +020302810102820201020102820002010101020281010202020401840201020102810201 +010101028201020181010283020102010101010286010200010201028102018301020102 +010201018202010283020102010201020202010102820102018401000200018201000102 +018500010002000184010001000104018100010101810201040181020186010201000200 +02830201020102018102010201 +0c0101008202010201028101020402810102020281010282020102020283000100010101 +840201020102050281010203028700010001000100010201010082010001830100020084 +000102010209028301020102060283010201020202020185000100010001030181000101 +018702010002000201028202010206028d00010001020102010001000102010101830001 +000102018b00020002010201020001000102018300020002860201020100020082000201 +83010001008d000201020001020100010002000286020001000100028102008200010001 +008602010001020002810201820102000100850201020002008100028e02010002000200 +010200010002000282020100860001000100010001008101008400010001028102008800 +010001000200010088000100020001000200880002000200010002008900020001000200 +010001120184020100010001008202000281020107018102010801030201010402020101 +000901810001020182000100010090010001000100010001000100010001000202028201 +0002010283000100028502000100020104010102810001010181020101018c0001000100 +02010001000200028102018a010001020100010001020102018300020001010182000201 +030181020104018100018601000200010002010202018402000102010201890001000100 +01020102008700020001000100028f020002010201020100010001000102010801010204 +018300010001820100010501 +070188000100010002010002060283010201028202010202028100028202010281020101 +01810201010104028101028202010205020601830001000108018202010205028101020e +028101020102810102010282010201820102010801820201020102830102010207028201 +020114018702010201020102010a01040201010202850102010201028102010301010203 +010202030101028301020102820201028402010201020202810102010204018102010c01 +820201028202010282020102810201020101028101020102810102820201028202010281 +0201120184020102010282020102810201030101028101020102080183020102011e0102 +020201810201810102820201028102012401020281010282020102820201020302010003 +028101028202010284020100020102018102010301810201040101020401810201010181 +000182010201010189020102010200020001028302010201830102010281020182010201 +010185000200020001850102010201008100010401830001000101018100010201840200 +010001860100010001000105018102010501010285010201000100830002010281020182 +0102010301 +090183000100028202000201028501020102010204028101028202010288020102000200 +020001010103028101020102810102010281000201028801000100010001000102010100 +8401000100018401000200020302030103028101020602810102070281010202028c0001 +000100010001000102010201028401000100020802810002880201020100020002010101 +8302000201050101000f0181020181010281020102018402010201028602010201020102 +820201020202820102018201020103018100010301820201028202010284020102010282 +020102820201020502810102820201028402010201028102010201810201030181020101 +018500010002010202028200010201028401020001028202010282020002010281010282 +020002810201840102010001040181000182010001010181000108010102820102018301 +000100010082020002810201070181020108018102018101020102830102010201028101 +028102010a01010081010082000100050097010001000100010001000100010001020100 +010002000100040001010100020185000100020102810201010187000200020002010285 +0200010001028d0201000102010201000102010201840100020001090181020103018100 +018601000100010001820102010101010081020103018800010001000102010282020100 +8500010001000283020001028b0201020102010001000102010901820201028102018101 +0282020001820100010501 +070183000100010101810002010281010201028101020202830102010282020102820201 +028602010201000201020106028101020102810102010206010100820100010901040282 +010201020101028101020502810102060281000282020102040209010102020181020183 +010201020402030101020101840201020102810201820102010401870201020102010201 +820102018501020102010282020102010282010201070182020102010281010284020102 +010288020102010201020102820201020302830102010282020102820201028102018301 +020102810201010182020102820201028402010201028202010282020102820201028202 +010281020102010102050183020102010901010281010282020102820201020102810102 +8202010201028101028102018201000103010102820002010e0181000102018102010701 +81020108010b020401810201210105028101028202010282020102810200810002010282 +000102830201020102018202000108010102830102010282020102840201020102820201 +028402010201028402010201028202000283020102018301020102820201020102820102 +018101028102008400020002010101890001000102010001000105018200020102018300 +010001860100010001000101018502010201020106018102010101820001008100018401 +020102010501 +070186000100010002018101020602810102010281010204028601020102010001040108 +028101020302860100010001000102010100020183000100018301020002010281010281 +0201050101028100028202010282020102050201010b0201010100830102010201020100 +810102060281010286020102000100010301830001000103018300010001870100020002 +010001020181000101010102010101028100020102820002018201000183010200018201 +000283020100018301020002810201010182020001020183000201008100028202010284 +020002000287020102000200010283020102008100010301830001000102018300010001 +810102840200020001020186020001000201028202000203029401000200020002010201 +000100020100010001000101010100820100018401020001008100010501810201070101 +0201018800020002000100020113010b0204010102070102008301000100820001008400 +01000100820001008f000100010001000100010001000100010101020085020001000200 +830002010286020100020100028102010101820201020102820100018e01000100010001 +000100010001000104018500010201020102010102030183020102018201000202028401 +020002010101830201000281020102018102010401820201028102018201000185010200 +0201028b0201020102010201000100010c0101028100018701020100020100010501 +0c0181000203028501020102010202028101020302810002830201020182010001020101 +028101020102810102820200020102810102810201050101000a01820201020102810102 +810201030186000102010201020102810001810102040281010205028101028402010201 +02820201028202010201028201020181010209028c010201020102010201020102010101 +8102010d0182020102810201010181020101018302010201070182020102850201020102 +018601020102010201820102010f01820201028402010201028202010282020102840201 +020102820201028202010282020102820201028102011101010201018202010281020181 +01028202010282020102030281010202028101020202010102020201810201030101000c +010102010082020102010208018102010901050282010201280182020102820201028202 +010282020102010201018302010001820102010101830001020103018700010001000102 +010301830201020101018402010201028102010101010205018900010001000100010001 +0d0181020081000189010201020102010002000200040101028201020103018102009000 +020102010001000102010201020102010101810201030101020201820001008300010201 +0601 +070187000100010002010201028101020402810102020281010203028600020001000201 +010105028101020502820002018601000100010001020101000201830001000182010002 +020281010281020105018400010001008100010201820201020202810102070282000102 +050288010201020102010002040281010201029101000200010002000200020001000100 +020090000100010001000200010001000100010081000182010201810102850200010001 +008500010001000101018200010081000101018700010001000102018401000100010201 +850001000201028402010200028302010201820100010401810001040182000102810201 +010181000281020101018202000282020102810201810102840200020002060285010201 +020102810201810102810201090101028101020102810102820201020102810102820201 +028102010601020282010201010181000101018500010001000115018202010281020101 +018102010101010283010201028102012101810201820102018101020102010101028300 +02000203028101028602010201020102810201030181020101018d000100010001000100 +010001000182010001010101020301010203018302010201010182020102830201020084 +000200020187010200010001000101018102010d018102010b018100010f018602000200 +02010283020100010501 +0b01810002050285010201020102080281010285020100010201010101028101020b0206 +018300010001080182020102010281000281020104018500010201020182010201020184 +02010201028202010202028f01020102010201020102010201020102830201020101010a +0202018102011d0181020103010102020181020107018102011301810201020101028201 +020101010202010104028101020102830102010202020101820201028102018101028102 +010801820201028202010282020102040281010282020102820201028202010282020102 +01028101028102010a018100010701810001010182020102810201020184000100020084 +00020100020102020181020102018102010c010202270184020102010283020102010101 +810201010183020100010501820001028202000201028101028202010201028501020102 +010281020181010283020102018101028302010201810102010205018c00010001000100 +010001000102810201830102000283020102010101850201000100010101840201020100 +820002008200020101018402010201028102010301820201028f02010201000102010201 +0201020102010101810201030101020401010001018100010501 +820102010201880001000100010201020102810102010281010202028101028402010201 +020302840100010201010182020102010281010201028101020102810002820200018601 +000100010001020101000701060205018702010201000100010401020281010202028101 +020102810102090281010201020201070281010201028600020102010201840100010001 +030101000201870001000100010001010182000100810001030186020100010001008a00 +010001000100010001008800010001000200010088000100020001000100860002000100 +010088000100010002000200860001000100010086000100020002008600020001000100 +860001000200020084000200010086000100010002008600010001000100840002000100 +860001000100010086000200010002008400020001008600010001000200890002000200 +020002010283020102018301020100820002018201020101018100010101810001010181 +000102018502010201020106018102010701820201020102010181020181010201020201 +010219018202010201028101020102010102020101010281010201028100020102060181 +000109010102840102000102010284010002000285020100020102810201830102010281 +0201810102830201020183010201008100010401820001008100018b0100010002000100 +02000201020181020101018100010601810201120181020107018a020102010200020102 +01028102010501 +020181020106018700020102010201020902810102820201020202830100020102010202 +810102010281010205020701830001000104018400010001028202010203020701810001 +07018202010282020002810201010102028101020c020301820201020302840102010201 +82010201010181020101018102010d018102010d01810201160185020102010201020183 +020102018301020102820201028402010201028202010281020101018102011101810201 +810102830201020103018102018101028302010201810102830201020181010284020102 +010281020102018102011101010283010201028102018601020102010201810102810201 +830100010081000181010002000101830201020114010202020182020102820201020102 +810102810201200186020102010201028102018101020102010101028100020102810002 +820201020102850102010201028502010001000115018900010001000100010001010181 +020183010001008100018201020101018102010101810201020102028600010002010201 +0301010282010201040101028100028b0201020102010201020102010301810201040101 +02020186020002000200010501 +820102010101810001850100010001020802810102820201020202810102050202010102 +010101028101020202810002820201020202810001860100010001000102010100070182 +020102030205018602010201000201040182020102030289000100010001020100020a02 +820002018101020202820002018101020102810001020101008201000101018500010001 +000101018a00010001000102010001008100010101810001010181020186010201020100 +01010185000100010001890100010001000201020083000100010301010002018c000100 +010002010201000100028702010200010001028e02010002000201020100020001020184 +010002000102018300010001020182000100870001000100010002830201020081000283 +020102018a01000201020102010002018601020102000102010284010200010285020001 +02000104018300010001050186000100010200020b0202018102010b0102020201010212 +018100010501810001040181000101010202840100020001870102010200020001020182 +02000107018100010d019102000200020001000200020001000102000184010201020102 +018302010201010182020100810001010181020184010001020087000102010201020101 +018202010283020001000100010181000183010201028102018201020101018102010501 +89020102010201020102010701860201020102000103018102010501 +84010201020104010100060281010202028101020a028300010001020102028101028202 +010201028101020202070101008201000106018400010201020102810002810201020185 +020102010001820102010401820201020302080105028101020302010182020102020283 +010201020102010185020102010201010183020102010a01810201060183020102010101 +020215018102010101010205018102010201830201020103018200020103018100010601 +830201020181010283020102018501020100020185010201020001030181020183010201 +028102018201000104018100010401810001060182020102820201020102810102820201 +028202010201028101028202010281020101018202010201020301010001010300810102 +070210010902810102820201020102270101028101020102810102850201020001028202 +010285020100020102830201000186010001000200010c01810201030184020001000202 +028701000200020102018101028a02010001000201020102018101028102010101830201 +0201840100010001110184020102000282020001130101028701020002000200010501 +820102010201830001000189010201020102010201020202830102010203028101020302 +030181020181010203028101020802810001840100010001030183000100010401820201 +02030282010201080181000105018202010202028a010201000100010001000206028701 +00020002000102020281000204029d010001000100010001000100010001000100010001 +00010001000100020087000100010001000102018e020102010201000100010001000100 +880001000100010001008a00010001000200010001008600020002000100880002000100 +010001008600010002000100860002000100010086000100010001008600010001000100 +860001000100010086000200010002008400020002008600020001000200860002000100 +020086000200020001008400020002008600010001000100860001000100010083000100 +010201820002018701000201020002018701000102000201028202010203020301030282 +0102010b01070281000104018e0201020100010001000100010001009000010001000100 +010001000100010001008700010201000200028102010101810001030181000105010102 +0c018202010201028a010002000102010002000288020001020102010201090182000102 +83020102018b010201020100010001000201070186020001000200018201000188010201 +020102010201010101028701020102010201028702010201020102018201020105010102 +0301810001010183020102010301 +010205018300010002070281010202028301020102030281010286020100010002010101 +820201028202010201028101020502060101008201000107018202010204020401810201 +860102000201020105010402820102010901020201010202820102010101010201018202 +01020402030183020100011e018702010201020102010c0181000119018100028a020102 +000100020002010282020102820201028202010284020100010285020100020002860201 +02000100010a018302010201010186020001000201028502000200010282020102010281 +010282020102830200010282020102810200810002820201028302010201010181000107 +0181000101010100810102010206010202820102010b0108020101010282010201200181 +02018301020102810201830102010281020183010201028c020001000201020001000201 +008100018201000286020100010201028102018301020102810201810102830201020181 +010209028101028402000201028202010284020102010287020002010201000281020101 +0183020102018401000102010c0181020105018100018201000109018102010701010285 +01020102000281020102018102010001 +810201030181000101018402000200020102830102010282020102020281010205028201 +020101018102018101028202010282020102090283000100018201000102010100820100 +010401810002020281010281020103018102018401020102010701030285000200010001 +010185000100010001010184020102010285020102000102020281010205020101850001 +000100018801020001000200020189010001000200020002008900010001000100010001 +020183020102010301020083010001008800010001000100010088000100010001000100 +880001000200020002008800020002000100010086000100010001008600010001000100 +860001000200020086000200020001008600010002000200860002000100020084000200 +020086000200010002008600010001000100860001000100010084000100010086000100 +010002008600020001000100890002010201020100020101018602010200010201010101 +00870102000100020002810201050102020d010502810102810201010182020102900201 +020100010001000100010001000100900001000100010001000100010001000100910001 +000100010001000100010001000100010301820001028102010101010282010201010182 +02010282020102840200020102820201028402010201028402010200010d018300010001 +060187020001000100010202028201020181010202020100840100020001860102010201 +020103010102850102010201028902010201020102010201070182020102810201070181 +02010301 +010202018100018601000100020102030281010205028101028202010289020102010201 +000200010101060281010201028101020202060183000100010a01030281010281020105 +018500010001000104018202010204020d01840201020102010202018102018101020202 +810102820201020102020185020100010001010185000102010001010187020102000201 +02010a01010281010281020101018100010a018300010001040181000101018100028402 +010201028402010201020202930002000102000100020002010200010002010201010182 +0001008a00010001000100010001008800010001000102010281020183010200028b0201 +020001000200010002008900010002000100010002010285010002000200860001000100 +020002008102010201810201010181000106018402010201028302000102820201028102 +0104010302060181020103010602080101021e0182020102820201028202010282020102 +820201028202010282020102820201020302810001820100018801000100010001000102 +018900010001000100020002820200018101028702010200010200028102010101010282 +010201830102010281020101010302810102020284010201020102010100810201050184 +020102010281020106018100018401000100010701810201080188020102010201020102 +810201820102010001 +010207010702810102040281010203028101020202020181020101010202810102050281 +010202028401000100018201000101018500010001000104010302810002010205018502 +010201020106010202010001028100010101810001010181000105018202010201028501 +020102010201028101020302810102890201020002000201020184010001000103018500 +010001000183010001000100010184020001020101010202850100010001008200010090 +000102010001000100020100010001000101010100820100010101820001008900010201 +0002000200028d02000200020002010002000100019a0100010002000102000200010002 +010002000100010200010001008400010001008600010201000200810001010182000100 +860001020100010082000102830200020081000282020100840002000201820100028102 +010201020203010102050101000101020001020901010206010102010101028101020702 +81010201028201020101018102018d010001000100010001000100010094000100010001 +000100010001000100010001000100930001000100010001000100020001000200020001 +830102010281020103018202010286020102010001028102010201010202018302010201 +0101830201020101018f0201020001000201020002010201020101018100010301820201 +02010283010201020302840001000102810201080186020102010201028b020102010201 +02010201020108010202040183020102010501 +820102010201850001000100020202810102040281010202028101020302870102000102 +010001010105028101020602050185000100010001090103028101028102010501830200 +020081000106010402820102010d01820200028802010201020102010206028100020402 +81010203028101029002000100010001000200020002010200010a018402010201028602 +010001000201010182020102890200020002000100010083000100010201010283010201 +028402010201028d02010200020102010001020102018601000100020001020183020001 +008200020187010001000200010081000283020100018101028102010201840002000100 +880001000100010001008900010002000100010001020184000100010086000100010001 +000100810100810001050184000102010284020102010201028101028202010083000201 +028102010601010203010602010106020401810201010101020a01810001050181000109 +010102810102050281010201028101020102850102010201020102810102860201020102 +010286020001000200018c01020100020001000100020001850100010002018501020001 +020183010201020502810102030281010286020102000100020202010183020102018401 +000100010501840201020102810201030181020182010001830100010281020101018302 +010201820102010501010201010102040101020401 +080182020102040283010201020202810102020281010201028201020101018102010101 +010281010201028101020702850001000100010401850001000100010201820201020502 +110182020102010282000201860100010001000108018202010202020301010281010204 +028301020102820201028102018301020102820201028102010401850201020102010201 +85020002010201820102018101028b020102010001000100010201040181020110010102 +830002010201028101020302030101020301010203018302000201010181020110010100 +820100010201010202010102810102820201028202010285020102000102010284010002 +010286020102000201028202010204028101028102010201810201820102010301010083 +020100018101028502010201020106010102030101028101020102810102040281010201 +028301020102010281010201020301850001000100010101820001008100010101850001 +000100010101850001000100018e01020001000100010200010002000282020102820200 +028302010002040281010204028101028202010201028101028202010282020102010281 +010282020102820201028202000281020188010001000100010001060182000201010182 +020102010201010302820001028202010001000a01810201010185020102010201020181 +02010e018302010201010101020701 +820102010201850001000201020302810102020283010201028202010282020102010281 +010283020100018301020102820201028202010201028101020402010181000101018500 +010001000108018202010203028201020104018300010200810001050103028101020102 +060181000105018102018101028602000200020002030281000201028400010201020302 +810102030292010002000100020001000100010001000102010801870201020102000100 +020004018800010001000100010085000100010001820100010701820200010201830201 +020101018102010301810001090181000104018100018201020101018100010301820201 +028202010202028300010201020181020102018302010001010181020102018102018301 +020102810201810102820201008f00010200020001020100010001020001010103028101 +020102020001028101020102050182020102820201028102010301810201810102030281 +01028202010281020181010281020101018102011c018402010201028202010201028101 +020102810002010282010201010183000102010101810001020187000100010001000185 +010001020102010281010282020102820200028202010282020102010281010282020102 +8202010284020102010201028a0102010201000200010001010181020101018202010284 +020001000101018b02010201020102010201020103010102870102010201020002830201 +02018401020102010501830201020182010201030183020102010201 +070182020002010281010282020102010281010284020102010206028100018201020182 +010201810102020281010282020102050281000102018100010301850001000100010301 +840200020002010207018102018101028102010401810002030283000200018301000100 +810001060183000200020102820102018101020802060104028101020102040101028101 +028302010201030181000102018102018101020102010182020100850001000100010301 +810201110185000100020001020183000100018601020002000201050182000201010183 +000102010301820200010101810201030181020102010100820100010301810201030181 +020102018302010201010183020102010101010203018302010001830102010083000100 +010301810001030101020301010201008401000100020302080101028101020102040107 +028101028102010601010220018102010201010202018302010201010101020201010281 +000201028101020102810102820201020102810102830201020114010100830102000285 +02010002000281020184010201020182010201820102010701010281000181010003000a +018102011c010202010182020102850201020102010001 +0201810001860100010002010286020002010201020b0281010281020082000102810201 +010102028101020102810102060201018100010101850001000100010901050207018500 +010001000105018202010203020e01820200020202010181000208020201860001000102 +010282020102820201020102810102830200010282020002870201000100010001030181 +020102010202010107008201000201028600010001000100850001000100010a01810201 +0201010201018100010f0181020103010102030101020201810201030181020102018202 +010281020182010201810102010201018302010201010183020102010101010203010200 +810100880001020100010002010101010082010001830100020105018100018501000100 +02010a010102010181020104018202010204020101810201060101020f01810001200181 +000104018102010301810201020181020102018b00020001000200020100010285020001 +000102810201010181000281020110018500010001000106010102840100010001030189 +020102010201020102010301010289010201020102000201028302010201820102010501 +820201028102010c01 +840100010001820100020502830002010282020102020281010203028101028302010201 +020181020181010205028101020102810102010204018100010401830001000187010001 +00010200020302080186020001020102010301830002000203028100018101008d000100 +010001000100010002010202028300020102060289010201000102010201020602010181 +020181010201028101028202010281020103018102010201810201010181020101010102 +01008401000100011401820001008e000100010001000100010002010201010182000100 +880001000100010002008700010001000200018601000100020001860100020001000182 +01000181010084000100020101010202820100010401810001040181000104018100010a +01830001000182010001090181000102018100018401000100028102010a010102810102 +8102010401810002020282010201010181020102018100010e0181000103010100040183 +000100010501810001120101008102018201000102018700010001000100011301830001 +02018c010001000200010001000100010701810201820102010701810201830100010002 +000201870201020102010201820102010f01830201020109018402010201028102018101 +028102010201 +070182020102010281000205028101020502810002010285000100010001010102028101 +020202810102820201020202810001820100010101820001008100010801820201020302 +080185000100010001060104021101010282010201020101028101020402860102010201 +020102010102810102840201020102820201020402820102010801810201010181020104 +010100840100010001180101020301830201020183010201028102010201830201020131 +018100010401810001040181000103010300820100018201000101018200010083000100 +018301000200810001080181000105010102030101028401020102010401050282010201 +020181020102010202010181000103018100011c01810201030181020102018702000100 +0102010281020182010201020181020103018702010001000102018a0100010201000100 +010201190182000200830001000103018102010201810001040182000201080181020181 +01028d02010201020102010201020102010b010102090101020101 +850002010001000200080283010201028402010201020402040181000181010201028101 +020502810102030204018100010401830001000186010001000100020302820102010601 +810001080182020102030291010001000100010001000100010001000102020281000182 +010002040281010202028900010001000100010002010281000284020100010282020002 +830201000287020100010001000107018102010201920001000100010001000100010001 +000100010087000100010001000101018400010001009100010001000100010002010001 +000100010088000100010001000100860001000100010088000100010001000100860001 +000100010088000100010001000100840001000201010183000100010401810001040181 +000104018100010201810200820001008200010002000401840200010001010181000181 +010201020101830200020182010201810102030282010201830102010201020501810002 +03028201020102010102020102021c018102010201810201120102000101810001020187 +000100010001000116018b0001000100010001000100010c018102010701810201810100 +850001000100018301020102850201020102010301840201020002810201860100020102 +01028102018201020107018a020102010201020102010281020182010201 +020282010201810102050281010202028101028202010282020102050283000100028102 +018101028202010205028101020302820100018701000100010001008100010701820201 +020202810102810201060185000100010001040182020102030210018202010281020183 +010201020802880102010201020102010101020204010202810102010201010102030181 +020102018102010301810201020182000100010023018302010201200181020102018102 +010301810201010101020401810201020181020102018102010301810201020181020101 +018300010001060101008101008300010001020101000201810002010287000201000201 +020181010282020002030283000201028302010001030181000202024201810001020101 +020e01810001910100010001000100020001000100020100010101810201030181020103 +018102010301810201010101028300010001860102010201020188010200020100010001 +8201000107018102010801810201120101020201810201030102020001 +020287000200010002010204028101020202810102030281010201028201020101018400 +01020102080281010204020b010100020182000100810002020281010201020701810001 +820102010501820201020302040101000101880001000100010201020202840001020102 +040281010201028c01000100010001000100020002870201020100010002010281000201 +028800010201020100020107018102018101009200010001000100010001000100010001 +000100870001000100010001010182000100880001000100010001008a00010201000100 +01000100880001000100010001008f000100010001000201000100010201008600010001 +000100880001000100010001008600010001000100860002000100010086000100010001 +008600010002000100810002820201008600020001000100820001000100820200010201 +030086010002000100020102030101028100010101010202018202010281020181010289 +02010001000100010002020206018100010201010283010001008e000100010001000100 +0100010001009d0001000100010001000100020001000102010001000102010001000200 +010101810201840100010002010283010002010101880001020100010002010301810201 +0f0189000100010001000100010101810201030181020184010001000282020001020183 +020102010301890201000100020102010285020102010201040102029001020002000201 +0201020102010201020105018102010101810201010182020102010201010002 +850102010201028202010201028301020002020281010203028101028202010202028401 +020100018201020181010202028101020202810102030282010001870100010001000100 +8100010801030281010201020901830001000104018202010203028401000100010a0104 +020201020283010201020302090101028401020102018201020181010281020183010201 +0281020109018102010101810201030101008101008100012f0181020102018102010301 +830201020101010102030101020201830201020101010102020101021901810001030181 +000106010100810100810001040101000201010282010200820001028102018301000100 +010081020082000200820002008200020082000100840001000102010282000201820102 +010201810201010101023301820200010101810201020181020182010201820102018201 +020190010200020100020001020100020001020182010201820102018401020102010101 +810201810102850201000100028102010301810002010282000102820200010101840201 +020100010082010001820100010701810201150181020106010202860102010201020181 +01020102 +030285010001020102090281010282020102820201028202010281020182010001830100 +0102090281010203020a0182000100810001820100018101008100020502080181000107 +0101028101020202050101008201000186010001000100020302830001000209028a0102 +010001000100010002020284010201000101018300010002870201000200010001010181 +020108019200010001000100020001000100020001000100890001000100010001000182 +0100010a0181000106018102010a01010281010201028101028202000282020102010281 +010282020102010288000200010002000102010282000200860001000200010086000100 +010001008600010001000200810001840102000100840002000100820002000100810100 +840001000100020088010002000100020002010283010002008400010201020302810102 +02028b010002010001000100010002820201028102018101028102010101810201040184 +00010001008e0001000100010001000100010001009b0001000100010001000200010001 +000200010001020100010002000104018400010001028302010001020185000100010001 +820100010601810201830102010282020102010281010282020102820200028202010285 +020102000102840201020102820201008300010001820100010201830201020102018602 +0001000100010201010284010201020104010102820002008c0002000201020002010201 +0201080101020301810001010102020101 +840201020102870201000200020102820201020302830102010282020102040282010001 +810102810201810102010281010203028101020402840100010001830100010081000108 +0184020102010202020b0183000100010301820200020302850001000100010a01030282 +010201010101028101028202010281020101018100018101028102010201020206018100 +010201810201810102810201030101020401830201020103010100810100870002010201 +0201028102010e010100880100010001000100018c010001000100010001000201028202 +000282020002860201000100010082000201020189000200010200010201008500010201 +020181010285020002000102010201010102830102010283020102018101020102010183 +020102018201020182010201810100820001008200010082000100830001000101018102 +010101010002010102820002000100860201000200010082000200010081020082000100 +8200020082000100840001000102010281000102010102050183020102011a0182020102 +020281010201028101020102810102010281010201028101028202010202028101028202 +010201028101028202010201028101028202010201028201020182010201070181000104 +018400010001029602000100010002000100010201000100020001000200018601020002 +010001820100018301000100840001020102850200020002010201820200010a01830201 +0201830102000182010001030187020001020102010281020182010002 +030283010001020202810102050281010206028101028102018301020001840100010002 +82020102040281000204020a010100820100010301860200020002000281020106018300 +010001070182020102030205010100840100010001850100020001028602000102010002 +0802810001010189000100010001000100028502010001000101018b0001000100010001 +020100018201020103018102018101020102920102000200010001020100010001000100 +010089000100010001000100018201000114018202010204028101028202010282020102 +010201018202010281020182010201820102018201020182010001010183000100018201 +020182010201020183020102018401020102010101010202018802000201000200020184 +010201020101010102010182000200820001008300020001010183020100028202000201 +028701020001020002008400020001020202010001020101010081010082000102010201 +000102810102020281010202028101028102010201810001050185000100010001020181 +000103018100010501830001000101010202820100028202010201028100020102840001 +020002010281010201028101028202010282020002010281010282020002010281000282 +020102820201020302810002030202018a00020001000100020001000100880200010001 +000200018701000100020001000100860100010001000186010001000100018501000100 +010084000200020087000200020002000188010001000100010001890100010002010001 +000182010001840100020002 +010281010283020001020c02810102820201028202010202028301000201020108028101 +028202010201028500010001000183010001008100010901010281010203020a01010005 +0182020002030285000100010001080182020102020203010a0284010001020104010202 +820102010201810001030185020102010001010181020182010201010181020185010201 +020102850200020002008700020102010201028102010e01010087010001000100010088 +000100010001000100830001000201028b000102000200010002000200820001028e0200 +010002000201000102010200018301020001020186000200020001008600010001000100 +860001000100010085000200010002820200020102820102000200810200060081020086 +000100020001000200830100010201020200810200810002010282000200020081010001 +008302000200030003018202010202028101020202810102020201018502010001000186 +010001000100010501830001000187010001000102010201028101020102810102010286 +0100010001020104018102010101830200020102018102010a0181020182010201830102 +010201028101028202010282020102820201028202000282020102820201028202010284 +020102010282020102840200020002020201018102010101010282010201840100010001 +8501020102010283020102010201010283010201028b0201020102010201020102018201 +0201070101028701020102010201028102010001 +820102018301020102020283000201020802810102820201020102880102000100010001 +020202810102010281010206020a01850001000100010201820001028202000202020701 +830001000106018202010203020701850001000100018601000200020002870201000200 +020002820201028202000201020101880201020001000200028502010002000189010201 +020001000100028502010201000102018302010201020181020101019b02000100010001 +000200020001000102000100010001000100010001190103020101820201028202010282 +020102820201028202010201028101028202010201028101028202000201028600020001 +020102030281010201028101020102810102010209018500010201020102018102018401 +000102008200020082000100820001008a00010200010200020002008100020302820001 +020202820002008500020100020001008101008400010001008400010200010b01810201 +0d018100010a018202010205028101020102810102010281010201028101020102810002 +0102810002820200020102810102010281000282020102820200028a0200010201000200 +010001840100010001010101028301020102010281010201028101008800010001000100 +010001009001000100020002000100020100010001000500820100018e01000100010002 +010001000100010002008201000186010001000100018601000100010001840100010002 +8202000186010201000100018101020002 +81000186010001000200020a028101028202010282020102850200020002010301030281 +01020102810102010281010202028500010001000181010083000100010a018202010202 +021201820201020402840001000100810001070182020102010285010201020102080201 +018300010001040102020301830001000105010102810001030181020105018102010101 +86000100010001008500020102010283020102010b018c00010001000100010001000100 +880001000100010001008300010002040288000200010001000100860001000100010086 +000100010001028202000286020102000201028702000100020002008600010002000100 +860001000200020086000200010002008100020102820002008400020002000200810200 +010081010086000100010001008400010002000100030282000100010006028100020202 +810002020289010001000102010201028402010201028102018101020102010102028301 +000100890001000100010001000101018600010001000100970001000100010001000100 +010001000100010001000100010101810201840102010201810102820201020102810102 +810201810102830201020181010201020101820201028102018301020102810201810102 +020281010206020100850201000201028102010101840201020001810102820201020102 +060186020001000100018101020102840102010201020102028301020002020287010201 +020102010282020102840201020102860201020102010286020102010201020202 +040182020002840201020102820201020802810102030287010001000102010201028101 +02060281010202020a018500010001000103018202010204020601810001810100810001 +060105020f01810002020282000201810102040281010202028601020102010201020182 +020102830201020101018502010201020184010002000108018102018301020102010289 +010200010001000100010101820001008900010001000100010001010181000113010102 +030103028101020202810102010281010282020102040281010283020102010301810001 +050182020102040282010201010183020102010101020201010102830102010282020102 +010281010281020081000201020101820002008200010082000100820002008100018101 +028302000200820002008100028202000207028101020402830100010282020100830001 +00028202010283020102018101020102010101020d018100010d01820201028402010201 +028102018101020102010101020301030282000201010101020201880200020001000100 +019601000102010201000100010200010002010201020100010401810201010193000100 +010001000100010001000100020002000287020002000200010005008201000282020002 +820201028202010201028101028202000282020002820201028402010201028302010002 +8602010200020002840200020002840200020002010282010201 +810001830100010201028301020102820201020302810102030281010285020002010201 +0301060281010207028100018a0100010001000100010001070183000200020402090181 +000107010502810001830100010085000100010001810100810001010102028501020001 +000282020102040281000189010001000200010001029602000200020001000200020002 +000201020102000100010201840201020102820201020402850002000200028402000201 +028302010201060181000102018c00010001000100010001000100880001000100010001 +008200010208028101028302000200810002010281000201028401020100028b02010200 +020102000100020086000200010002008600020001000200860001000200010086000100 +010001008100010101820001008600010001000100820001000100810100860001000100 +010085000100010001830100010201020100820200020f028201000207028101020d0281 +000282020102840201000102820200010101880001000100010001009500010001000100 +020001000100010001000100010001090183000100018101020102030185020102010201 +820102018201020182010201060183020102010201880201020100010201000200890100 +010001000100010001008401000100028c02000100020001000200010001840100010002 +020281010282020102010281010203028100028202000201028100020102850100010001 +020102840002010002030284010002010282020002 +030110028101020602870001000200010002010281010282020102020281010203020b01 +850001000100010301820201020302830001000103018500010001000104018202010203 +02110102020401090201018302010201040102020f018102010501810201020102028101 +02010286000100010001028102010301010221010b028101028102010601020201018102 +011301830201020113018200010285020102000100010001018100010201010081010082 +000100820001008100018301000201810100810002070281010206028100020102810102 +05028101021c028201000127018100010401810001040181020182010001860100010001 +00018c010001000100010001020002011901820001020102810102820201028902010201 +020100010001010102028101020102810102050286000201020100028402010201020402 +81010286020102010201020402870102010201020102 +840001000102030281010206028101020602810102010204010602810102010281010204 +028100018a01000100010001000100010501840002000102040212018202010203028c01 +000100010001000100010001840100010002030284000102010202028100028202010286 +020001020002008100018401000100020102940001000100020002000200020002000200 +01000201010101020101820201020102820102000600850100010001008d000100010001 +00010001000100018d010001000100010001000200010088000200010001000200830002 +000209028301020100860002000100010088000200020001000200880002000200010001 +008600010001000100860001000200010086000100010001008600010001000100810001 +010182000200820001000100810100040081010082000100060081010084000100010082 +00020083000200020b028500020002000219028101020802020188000100010001000100 +950001000100010001000100010001000100010001000104018400010001008300010001 +050187000100010001020103018102010e018a00010001000100010001008e0001000100 +010001000100010001000300820200028c02000200010001000100010001820100020102 +810002840201020002020281010203028100028202000201028201000286020102010200 +0286020102000200028902000200020100020002 +82010201820100020a028101020902810102870200010001020102030281010282020102 +04020c018500010001000102018202010288020102010200010001030185000100010001 +0401820201020102820102010f010402010184020102010206020a018202010281020103 +018602010201020102010205018202010281020102018202010201020101010283000100 +012401830201020183010201020c02810102810201070101028501020102010201028201 +020109018102010201810201010181020102018102010201810201020181000103018500 +010001000110018202010081000181010213020201820201020102810102210220018100 +01050181000104018100010801850201000100018a010001000100010001000182010001 +0d0181000109018700010001000102018101020102840102010200020083010001020702 +8201020181010203028301020102070282010201810102010201018202010209020101 +8300010002030281010202028101020a0281010281020105010502810102080203018600 +010001000100810001060186000102000201020302130104028201000101018700010001 +000100018401000100028202000284020100010207028700020001020002008500010001 +000201028300020001850100010001008a00010002010001020100010201810201020101 +028101020102070083010001008f000100010001000100010001000100018b0100010001 +000100010002008a00020002000100020002008100020c02010087010002000200010088 +000200010001000200880001000100010001008600010001000100860001000100010086 +000100010001008600010001000100810001010182000100860001000100010004008101 +008200010006008102008100018101000100820200020d02810002840200010200810002 +06028101020102810102170201008d01000100010001000100010001008f000100010001 +000100010001000100010401830001000184010001000105018700010002000100011401 +89000100010001000100018f010001000100010001000100010001000300820100028c02 +000200010001000100010001840100020002020281000282020102820200028202000284 +020102000282020102820201028402000200020102810102820200020102810102880201 +02010200020002 +860001000102010202028101020d02810002010282000100840001020102030281010282 +02010205020c018200010081000103018402010201028102018301020001040187000100 +010001000183010002018101020202850002000100010b01040202010502810102010288 +010201020102010201010102020801850201020102018401020102010201010201018402 +01020102010281010201020100820100011e010102810102840201020102840201020102 +820201020b02810102840201020102820201028602010201020102020282010201040181 +020108018102018301020102810201810102860201020102010283020001020102010181 +020082000200820001028102018201000103018100010101010081010081000101010202 +8100020502810002020283010002008500020102010207028101021b021a018102010101 +81020182010001040181000104018100010a0183000100018a0100020001000100010001 +820100010b01020001018300010001040184000100010081000183010002018101028102 +000400840100010002820201020102810102840201020102010281000201028201000201 +02810002050201010102810002810201830102010202028301020002810201 +010101028101028202000202028101020d02820102010401020283010201020902020181 +000185010001000100810001050181000181010201028100028402010200010f01820201 +020302850002000100010101010001018300010001820100020302830100010207028300 +020001810100870001000100010002020282010001880100010002000200028202000181 +010081000101010202830102010201028701020100010001000300810100910001000100 +010001000100010001000100018b01000100010001000100010088000100010001000100 +840001000102060281010203028800010001000100010088000200020001000200880002 +000200010001008600010001000100860001000200010086000100010001008600010001 +000100810001010182000100860001000100010004008101008200010001008101000200 +8501000100010001008502000201000283020100020b0282000102090281010216028100 +028102009000010001000100010001000100010001008d00010001000100010001000100 +010301840201020102830200010201020101820201028302010002860201020002010281 +0201020101020101010282010201810102830201020081000283020102018101028f0201 +020001000201020001000100010001000501840002000201030101008401000201020102 +830102010202028301020102010283000200020102010102028501020102010286020102 +0102000202028700010002010201020002 +8500010002000212028101028402000100028102010101070281010206020a0182000100 +830001000102018202010284020102000201020601870001000100010001010182020102 +01028a000200010001000100020108010202820102010101090288010201020102010201 +010182020102830201020109018102010201810201010102020301010284010201000181 +01000100200101028301020102820201028402010201020e028301020102810201820102 +011201820201028202010201028101028202010201028101020102810102820201020102 +810102830200010201028101028202010281020082000200820001008200010082000100 +820001008500010001000182010001010183000200018101028102018101020b02810102 +110281010283020102018201020181010206020e0101020101010283010201028a020102 +0102010201020102810201050181000103018100010b0181000184010201020105018300 +010001050182000102820200028d02000200010002000200020001000500010186000200 +010001000100810100840001000100810002820200020202810002820201028202010282 +0200028402000200020802830102010284020102010282020102010283010200020102 +010182020102820201020c02810102030282010201010181020101010602810102060203 +018100018301000100810001070184000102010202028201020107018102010601830002 +010201028700020002000100018401000100018201000101018302010002010282000102 +040281010203028b01000102010001000100010282020002830201000103018b00010001 +000100010001000103018502010201020103018400010001000100810100930001000100 +010001000100010001000100010001820100010c018202010286020002010201020b0201 +008502000200010281020086000200020001008a00020002000200010001008600020001 +000100860001000100010086000100020001008600020002000200860002010200020086 +000200010002008200020004008301000100040083010001008200010081000182010200 +81000103010c028101020f0204018802000102010002000203020100010101008b010001 +000100010001000102820200020102810002010281010201028101028302000102010281 +010201028101028202000201028101020102810102010281000282020102820201020102 +8400010001028202000201028101028202010282020102820201028102010e0181000186 +010001000100010301040203018100018301000102060281010201028301020102010201 +01050281010284020102010286020102010201028202010201028101020302810102 +010105028101020302810102820201020402810102020201018100010101820201028202 +010201028101020602060183000100018101008300010001040182020102020281010281 +020104018a020100010001000200020181010203028a0002000200010001000201040184 +000102010202028201020183010201020402820102010101810001050102020101810201 +010185000100020102030201018302010201810102810201010103020101810201830100 +010081000118018800010001000100020087000200020001000185010001000102020281 +00020502070181000115010102810102820201020102010101020d018100010801810001 +0901810001030183000100018201000101018200020105011e0281010202028101028302 +0102018101020402010101021e0181020108018200010284020102000181010281020181 +010282020102820201020102830102010201028101028202010201028100028202010282 +02000282020102820201028102000100890100010002000200020005008a010001020002 +000100010002008401000100020302810102040286010002000200020102810102010283 +01020002860201020102000286020102000200028902000200020102010200 +010281010202028100020302810102010281010203028101020202010181020102010202 +810102020281010201028101020202820100018201000183010001008300010001030185 +000102010002030281000281020109018502010201020182010002030282010002830201 +0201860102010001000103010402820001020a028b010001000100010001000102020296 +000100010001000100010002000102010001000102010201020301010201018702000100 +010001009500010001000100010001000100010001000100010001820100010601830201 +0201810102840201020102820201020d0281010282020102820201028202010282020102 +840201020102880201000100010001008600020002000100860001000200010086000100 +020001008600020002000100860002010200020086000200010002008200020001008102 +008600010001000100040081010082000100830002010286020001020102018101020902 +8301020102130281010286020001020100020202850100010002008e0001000100010001 +000100010201020202810002010281000201028100028202000202028101028202000201 +028400020100018101028102018401000200018401000100018a01000100010002000100 +018401000100010401810001080181000109018300010001820100010201850201020102 +010301830001000181010201028301020102010201018202010282020102820201028202 +00020702810102880201020102010201028402010201020202810102 +850102000201020202810102820201020102810102040281010283020102010101010282 +010002820201020302810102060201018a00010001000100010001000200820100018201 +020181010203028201020106018302010200830001000101018202010203028600010200 +010001820100010401830001000282020102810201010102028101020502820102018401 +020102010401010206018202010281020181010281020182010201030184020102010281 +0201050181000182010001180186000100010001008a0001000100020001000100830001 +00020c020100870100010001000100860001000200010084000200020103018102011301 +010281010201028101020102810102010281010201028101020102810102820201028102 +010e01020082010002140281010204020101810002050281010282020102830201020182 +010201810102030212010202810102010281010202028101028102018101028202010201 +028101020102810102010281010282020102010281010201028101028202000282020102 +810201810102820201028202010282020102820201020102810102840201020002820201 +028b02000200010002000200010003008101008a00010001000200010001000100010184 +000100010208028101028202010203028501020102000201028301020102860201020102 +010285020100020102010285010200020100 +010110028101028202010201020101810201010184020102010204028101020102810102 +020204018600010001000100830001000105018202010203028200020104018c02010001 +02010201020102010206028100028102010c010402020106028101020102030181020102 +018202010202020a01830201020182010201010102020101820201020102860102010200 +01000100820100011f010102010181020184010201020183010201020b02820102010101 +810201020181020108018600010001000200860001000200020086000100020002008600 +010002000100860001000100010086000100010001008600010001000100820001000100 +8101008a0001000100010001000100020082010001810102020281000202020101090282 +010201810102200285000100010001a00100010001000100010001020100010001000100 +010001000100010001020100010201840001000100830001000182010001010181000184 +010001000102018500010002000201028100028202000282020102820201028202010282 +0201028202010283020102008f000200010002000200020001000100018f010001000200 +010002000200010001000200810102020283010201020102810102820201028202000282 +020002820201020302810002040285000201020102830201000203028101020002 +8202010202028101020c0281010203020201810201020109028901020002000200010001 +8701000100010001008200010001008201000184010002000202028100028102010a0183 +000102018101028202000202028101028302010201820102010101830001000184010001 +00020302830001000209028b010001000200010001020102010297010001000100010001 +000200020001000100020001020102830201020101018902010201020001000100940001 +000100010001000100010001000100010001008100010101880001000100010001008a00 +010001000100010001008400010001020a02810100880001000200020001008600010002 +000100840002000201030181020101010102810102010281010282020102010281010282 +020102010281010201028101020102810102820201020102810102010281010201028101 +0281020107018100010401020082020002120283010201021f028101028102010d018202 +010201028101020102810102010281010201020101010281010201028101020102810102 +8202010201028101020102810102820201020102810102830201020101018102010b018b +0001000100010001000100010a0101008401020100010101020201010102010181020104 +010602810102020285010201020102010281010205028101020202830102010201028101 +0202028301000102810200810001 +010281010205028101020502810102820201020302030182020001830102000202028101 +020702040186000100010001008300010001820100010201810002030283000200010401 +850001000100010501820201020202820102010301810201070182020102010205010602 +810102830201020182010201040103020801820201020102010101020101030282010201 +820102010301820001000100820100012001810201010182020102810201010182020102 +050281010203020201810201040182020102820201028202010283020100010101840001 +000201120181020103018102018501000200010201028101020102810102010281010201 +020a01010081010081000101018100028202000209028300020002010281000224028100 +011601020281010201028101020102810102010281010282020102010281010201028101 +028202010201028100020102810102880201020100010201020102810002820201028202 +010282020102820201028202010283020102009000020001000100020002000100010001 +008a00010001000200010001008800020001000100010202028101028202000282020102 +010284000102010201028100028202000201028a01020002000201000201008100028202 +01028102008100028102000100 +810102020283000201020b02810102030205018100020802830102000286020002000100 +0186010001000100018301000100010002018302000102010284010200020107018c0201 +020100010201020102000203028201020108018100018501000100010201028601000200 +020102060284010001000188010001000100020002010293000100010001000100010001 +000100010201000102018302010201810102850201020102000400910100010001000100 +010001000100010001008300010001010188000100010001000100880001000100010001 +0086000200020001020b0201008501000200020088000200010001000100830001000101 +018100010201860001000200010086000200020002008600020002000200860001000200 +020081000103010100850100010001008600010001000100850001000100010101810001 +010181000101010100020114028101021102810102020283000102018101020502010181 +02010401870001000100010002020281010201028a010001000100010001020104018500 +0100010001820100010a01010007018102010b018e000100010002000200010002010201 +830102010281020101010100840100010001020186020102010201028102010601820201 +020602810102010281010282020102860201020102010283020102000900020202008102 +000200 +810102040281010282020102820201020502810102830201020102018102010101050281 +010201028300020002880200020001000100018301000100020081010083000100010201 +81000203028200020105018c00010001000102010201020102820201020202820102010c +018202010202020101820201020302810102010284010201020101010102020101020101 +810201050182020102820201028502010201020184010201020104018502010201020083 +000100018201000124010102010183020102018101020702810102830201020182010201 +810102820201028202010282020102820201028302010001010181000183010201028102 +018301020102010281010282020102010281010201028101028202010201028201000282 +02010201028101020102810102010281010201020b018200010001000101810001830100 +020103010102820001008200020001008402000200020802810102030281010281020101 +010102050108020d01010201010102810102010281010202020101010281010282020102 +010281010201028101020102810102820201020102810102820201020102870102010002 +010002830201000282020102820201028202010283020102010101830201020002008601 +0001000100018501000100020001008c0100010002000100010001020001008401000100 +0202028100028202010286020102010201020302830002010281020083000102000e0081 +02000300 +030281000202028101020102810102820201020802020181020182010002030281010208 +020501850001000100018101000200040182020102030282010201050183020102010a01 +850201020102010c01830002000202028400010200020902010185000100010201010103 +020401850001000201020302820002018201020181010201028101020202030182000100 +010088010001000100010001010185000100010001860100010001000101018600010001 +0001008a0001000200010001000200850001000100020b02880001000100020001008800 +010001000100010083000100010101810001010101008501000100010086000100010001 +008600010001000100860001000100010081000101018200010086000100020001008800 +020002000200010083000100010201830001000103018100010201810002010202010202 +010001028300010002130202010102810100850002000100020102810002020201018102 +010501980001000100010001000100010001000100010001000100020181010286020102 +010201028302010002860201020102010201028100028202010283020102010101820201 +020102010182020102010281010282020102820201028202010285020102000100890001 +000102000200010005000101820200028802010001020001000101018300010002820200 +028202010282020102860200020002000284020002010201028401020002000500810200 +0d00 +810102030281010282020102080281010202028101028102010301050281000202028b00 +020002000102000100010084000100010002000101830001000101018202010203028200 +020105018b00010001000100010201020101010102010101020e01840201020102820201 +028202010208020601810201020102028201020113010102810102030282010201810100 +820001008300010001050181000104018100010e018102010601020283010201020b0282 +010201020102028101028202010282020102820201028302010201060182020102010281 +010201028101028202010201028101028202010201028101020102820100028102010201 +810201150182000100020082010001010101020201020201008101008200020084000102 +010202028100020802810102020281010201028101028102010101060202018102010b01 +010201010102810102010281010201028601020102010201020181020184010001020101 +01830001020106018400010001008100018a010001000100010001000182010001050185 +000100010001810100810001820100010601850001000100018601000201020002850201 +020102018201000102010202830102010205028301020102820201028202010285020102 +01020005008102000d00 +810102030281000282020102820201020102810102820201020302040181020181010209 +0281010203020c010300050105020c018702010201020102011601820201020202810102 +040281010201028101020102010181020182010201840102010201840102010201040182 +020102030282010201820102010701010282010201010102008201000101018300010001 +030183000100010201810001030186000100010001008a00010001000100010002008500 +01000100020b0288000100010001000100880002000100020002008a0002000100010001 +000100860001000100020086000200010002008600020001000200860002000200020086 +000200020001008800010002000100020086000200020001008300010001020181000184 +010001000105018100028102010101020284000100010085000100010201810102010281 +010207020601020284000200010081000203028300020002810201060186000100010001 +028202000201028100020102810002010285000200020102010281010282020002010281 +000201028101020102810102820201020102810002820201028102010201020281010282 +020102820201028202010282020102820201028202010281020083000200028302000200 +850002010002000100960100010001000100010001000201000100010001000102820201 +028202000201028101020902830102010203020100810200820001008100018101000100 +8102000500 +020281010202028101020402810102040281010281020103018102018101020202810002 +040287000200020002000184010001000181010004000101830001000183010201020402 +8100010601840201000100810001160181020185010201020102020203010a0282010201 +040182020102850201020102018201020101018202010203028201020101018102018301 +02010202020501010081010082000100810001030181000182010001020183000100010c +01830201020102010402820102018101020a028201020183010201028102014101810201 +040181000103018100010201020082010001010104028101008400020001008500010001 +02008200010201028100020302810102010281010202028201020107010302030102021d +018302010001060181000107018102018101028202010284020002000103010202810102 +820201028202010282020102820201028202010282020102820200028202010282020102 +830201020101010100040184020102010283020102010701020281010203028101028202 +010202028601020102010201810102830201020106018300010001840102010001010102 +00 +0402830102010208028101020102810102810201050104028101020a020b018200010001 +000301820201020402080181020101010102010181020113018102010101820201020102 +830102010205028101020202060181020183010201028102011201840001020102010281 +010203028501020100010001008401000100010101850001000100018801000100010001 +0001010186000100010001008a00010001000200010001008700010002000100020b0288 +000200010001000200880002000100020002008a00020002000100010001008600010001 +000200860002000100020086000200010002008600020002000200810002010282000200 +880001000200010002008600020002000100830001000102018200010083000100010201 +810001870100020102010201010182000200040084020001000201028101020202810102 +020281010202028101020402810002820201020102850001000100020102070101008201 +000282020102010281010202028100020102850002000201028202010201028101020102 +810102010281010285020102010201820100010501890001000100010001000184010001 +0001020181000107018e0001000100010001000100010002000100930100010001000100 +010001000102000100010001010102028100028202010282020102820200020102810102 +820201028402000200028602000200020001840100020001840100010002830200010002 +00 +010281010206028101028202010201028101020102820102018201020103018202010201 +028100020102810002020286000200020100010101840001000100030001018300010001 +82010201810102030281000124018102010201040201010b028201020182010201820102 +01020101028201020189010201020102010201028402010201028102010a010102820102 +0181010082000100830001000182010001050181000106018100010e0182020102010204 +010d02020101020601820201028202010282020102810201050101028101028202010201 +028101020102810102820201020102810102010281010286020102000201020102810102 +82020102020281010201020401810001080102000a010100820100018201020105010302 +81010201028201020107010d0204018102010c0182020102010281010201028101020102 +810102810201810102010281010201028101020102810102820201020102810102820201 +020102810102820200010601820201020102810102820201028202010282020102820200 +028202010282020002840201020102820201028102018101000100040182020102040209 +010f02810102060283010200018201020108010102030101000001 +010285000200020102820201020c02030181020102010302810102090206018100010301 +850001000100010501020228018402010200020202810102810201830102010203028101 +020102820102018201020103018102018601020102010201020184020102010281020101 +018302010201830102010205020701010082010001160181000105018302010201820102 +01810102020201010d028201020183010201020102810102810201080186000100010001 +008600010001000100860001000100010086000100010001008600010001000100810001 +010184000100010086000100010001008600010001000100830001000182010001010181 +000181010085000100010001820100010401840001000100820002008100028302000102 +0c0281010202028101020d02850001000100010901840001000100910001000100010001 +0001000100010002000106010300820100010d0189000100010001000100018501000102 +01028102018101028202010284020102010201028a010200020001000200020001009202 +000100010001000100020002010002000201060107028100020302810102010283010201 +020102810001020183000100018d01000102000100010001020002000200 +050281010282020102090281010281020103018102010101030281000202028101020102 +830002000104018400010001000100050181000101018100010a01850201000100010301 +810001140181020181010204020101810002840201020102840200020102810201050181 +020184010201020182010201090183020102010401820201020502840102010201810100 +83000100011a01820001008a000100020002000100010086000100020001020b02010001 +028501000100020088000200020001000200830002000281020105010102810102820201 +020102810102820201020102810102010281010282020102010285010200020102820201 +02010281010201028101020102820102010a01850001000100010b018200010083000102 +0181010281020101010602810102020281010202028101020e0213010302810102010281 +010201028101028102018101020102810102820201020102810002010281010201028101 +028202010201028101028102010701820201028302010201020181020102018e00010001 +000100010001000100010081000183010001000100860100010001000101018102010301 +810201060104028101020102810102030283000200020602840100010001840100010001 +840100010001820100018101000100810100 +82000200810002820201020e028100018201020102018202010201028101020a020c0182 +00010081000102018100012e018c00010002000200020002000201810102050284010201 +020182010201820102018301020102010206018502010201020183010201028102010601 +830201020182010201040102000201880001000100010001008b00010001000100010001 +00010d0182020102010203010d0201018202010201020e01860001000100010086000200 +010002008600020001000200860002000100020086000200010002008100028602010002 +000100860002000200020086000200010001008100010201810001010101000101020082 +010001820100010401820001000200820200020102820001020602010181020108010d02 +020001018100010601870001000100010002820201020102810102020281010282020102 +010281010201028101020102810102010281010282020102010281010282020102010281 +000105018300020102820201028202010282020102820201028202010282020102820201 +02820200028a020100020100010001000106010302840102010201070108028101028202 +010282020102820201028202010201021101010002010100 +820002008100020302810102090282010201810102810201020104028100020602840001 +020001040181000101010100020186000100010001008100011101810001010181000115 +018202010203028101028c02010200010001000100010002830201020102018102010101 +820201020202030186020102010201028102010201810201010186020102010201020102 +020181020181010083000100011801820001008c00010001000200020001000200870002 +0001000100020b0288000100020002000200880002000200010002008300020002810201 +22018100011d018300010001070181020102018100018501000102010281020102010b02 +81010202028101020e0213018102010d0181020132018300010001010185000100010001 +010183000100010201860200010001000103010102030181020106010202810002820200 +020302810102820200028202010282020102850201020100018601000100010001820100 +0184010001000183010001000100 +830002000282020102010281010201028101020402810102820200010101810201010104 +028101020702810102810201070185000100010001820100010301810001820100011a01 +810001050183020102010301880001000100010001008600020100010001830102010201 +020401810201010181020102010202080189020102010201020102018701020102010201 +020102840102010201080186000100010001008d00010001000100010001000100011701 +0c0281010284020102010282020102820201028202010282020102890201020001000100 +01008600020001000200860002000200020086000200010002008f000200010002000100 +020100020001008600020002000200890002000100010001000181010081000101010200 +810100030001018100010101010283010001008100028102008100028102008300010002 +0502810102020281010201028101020f0201001101020281010201028101020102810102 +010282010002820201020102810102820201020102810102010281010282020102010281 +010283020102010701010281010201028101028202010282020102820201028202000282 +0200028102008b0002010001020001000100010901830201020103010100040102028101 +020402810102020281010282020102030211010200810100810001 +010281000282020102010281010282020002050281010281020103018102010101010283 +0102000202028800020002000201020104018100018b0100010001000100010001008300 +01000101018100010b018700010001000100018101008100010401850001020102010801 +810201020183020102018901020102010001000100820002018c01020102010201020102 +010201820102010201850201020102018801020102010201020186010201020102010701 +830001000101018100011601820001008a00010001000200020001008900020001000200 +02000209028a000200010001000100010088000100010001000100830001000107018102 +010701010201018202010201028101020102810102820201020102810002010281010201 +028101020102810102010282010201140181000105010100010282000102010281000182 +0100020502010181020108010d0205018100011301010203018102018301020102010281 +010201028101020102810102010281010282020102010281010283020102010701010281 +0102010283010201020102810102820201028a02000201020002010201028c0201000201 +020102000100010083000100018101028302010201820102010701020281000201028100 +020202840001020102010283000200028402000100018401000100018401000100018301 +00010081000101010200 +010181000204028300020002080282010201040182020102020281000201028101028502 +000200020103018100010601850001000100010501810001100183000100010301810001 +84010001000107018100018601000100010001810100850001000100010e018102018801 +020102010201020103018402010201028302010201030181020104018202010201028401 +02010201040181000103018200010081000101018500010001000101018100010a018202 +0102820201028402010201028402010201020b0281010284020102010282020102820201 +028202010282020102890201020001000100010086000100020002008600020002000100 +860001000100010089000100010001000100018501000100010081000101018200010089 +000100010001000100018201000106010400050101028101008200010281020181010282 +020100820001020a0281010202028101020f0283000100010f0102028101020102020182 +020102810201010181020109018102012701830001000101010200010101008101000200 +020101000f01810001040103028101020102890102000200020002010201028501020002 +000186010001000100018401000100018701000100010001000200 +090281010206028101028502010201020102018202010202028501020102000204028201 +020103018100018101009100010001000100010001000100010001000107018700010001 +00010001040182000100810001030181000116018d020102010201000100010201020104 +018202010201028101028102010701870201020102010201020186020102010201020102 +82010201040181000116018100018101008c000100010001000100010001008900010001 +0001000100020b0286000100010001008800010001000100010085000100010001060101 +028101020102810102820201020102810102820201020102810102820201020102810102 +010281010201028101028302010002820201020102810102810201820100010101810001 +030181000184010001020081000182010001010101020201810002860200010200010082 +0001020a0281010202028101021002820100010f01010281010201028101020102810102 +010285010201020102010281010201028101020102810102820201020102810102820201 +020102820102010801820201028202010282020102820201028102000100840100020102 +8202010282020102850201020100010101010002018100010d0181020102010302810102 +0102810102820201028402010201020102840102010201110181000101010100 +840201020102040281010202028101020102810002810201020181020101018402010201 +020402810002840200020002020201018100011001020011018200010001000201810001 +0c0181000101018200010083000100010d018102010b0183020102010301810201010181 +0201860102010201020186010201020102010b0181000120018402010201028202010284 +0201020102820201020d0283010201028202010282020102820201028202010282020102 +830201020102018100011c01850201000100010401020281010201028101028102010501 +8100010301810001820100010a0101008301020001820102010401060281010281020108 +010e022301810201080101021b0101028101028202010287020100020100020082000200 +8b000200020001020001000100010001018100010d018102010601040281000282020102 +820201028202000282020002840201020002810201860100010001000184010001000189 +010001000100010001000000 +090281000202028100020402030181020102010102840102010002810200810002040281 +0102020283010201028f0200010200010001000100010001000181010081000107018700 +010001000100010301010081010081000103018100012901820201028102010b01830201 +020104018102010301820201020102820102012001010089010001000200020002008900 +0200010001000200020d0286000200020001008800010002000200010089000100020002 +00010001820102008600020002000200860002000200020086000200020002008b000200 +020002000100020102830200020086000100010001008400010001000300810100010082 +010001010182000100820002008100010201820001028102010101010282010002830200 +010083000100020802810102020281010211021201010281010201028101020102810102 +010285010201020102010281010201028101028202010201028101028202010201028101 +028202010201020801810201090103000801810001030181000181010002000901810001 +030102020401820201028202010282020102820201028402010201020102830102010281 +020111010200810100 +020281000282020102010281010209020401840201020102840201020102070283000201 +020202830002010203020a01010003018100010501010082010001030101000501010082 +0100010a01890001000100010001000115018202010202020a0187020102010201020102 +018302010201010102028201020136010b021f0182020102820201020102810102820201 +020102810102820201020102810102010281010283020001028202010201028101020102 +8101020102820102008100010e0181020106010102810100820002008100020102050109 +028101020202810102110282010001010181000101018200010083000100010101820002 +008100020102810102010281010201028201020181010201028101020102810102050281 +010282020102010281010282020102010209010202010182020102860201000200020003 +00810200020083020100018101000100820100010b018302010201020102020101030281 +0002820201028202010282020002820201020302810102820200018b0100010001000102 +000100018201000181010081000101010100 +8100020b0281010201028101020102820102010301840201020102820201020102820001 +020c0283010200028c020001000100010001000100018101008100010701810001030183 +00010001020185000100010001310102020a018502010201020104018102010101810201 +2c0182020102840201020102840201020102820201020d02830102010282020102820201 +028202010282020102820201028902010200010001000100860001000100010086000100 +010001008600010001000100890001000100010001000185010001000100880001000100 +010001008400010001000200810100820001008200010006000801820001028102008200 +0200820001008200010081000207020a010d0282010001820100011d0181020109010202 +230182000100820001008100010301010081010081000102010200820100010501820201 +0201028101020e0281010282020102820201028202010282020102820201028102010901 +810201060101008101000000 +010282010002050281000282020102010281000281020182010201030102028101028502 +010002000204028100028202010201028100028202010202020701820001000100030183 +00010001030101008501000100010082000100810001110181000181010083000100011f +018102011401820201028202010201028201020121018a00010001000100020001008900 +0200010001000200020d0286000200020001008800010002000200010086000100020002 +010601820201028202010201028101028202010201028101028202010201028101020102 +8101028302010002820201020102810102010281010201028201020002000d0181020106 +01010201010102810102020206010802810102010281010202028101020d020801810001 +070182020102010281010201028101020102810102810201810102010281010201028101 +020802810102820201020102810102830201020108018302010201010101028101028402 +000200028102008200020002008101008100018101000300010181000102010102850102 +010201020a02810102010281010285020001020002820201028202010202028101028202 +00018601000100010001840100020001820100018401000100018101000000 +810200810002810200060007020301810201020104028100020202810102060281000204 +028401000200018601000100010001040101000201810001820100010b01870001000100 +0100010901810001440102028201020126018102010d010d021501860001000100010086 +00020002000100860002000200010086000200020001008f000200020002000200010200 +020002008800010002000100020082000200010081010082000100820001000900050101 +028501000102000201020100810100820001008100020602810102020281010202028101 +020d02850001000100010c01820201020102810102010281010201028101028202010202 +028101028202010201028101020402810102010281010282020102010282010201120182 +000200820002008200010081000103010100810100810001010183000100018101020902 +8101020b0281010282020102840201020102010283010201020302810001830100020101 +01830001000182010001020182000100820001000000 +810200820002000300810200820002008100020102810102810201010101008201020181 +010282020102820201028402000200028402000200028402000201028202000201028600 +020001000100860001000100010001000b018b0001000100010001000100010701830001 +000107018200010083000100016301880001000100020002008a00020002000200010002 +008300020002080288000200020002000100880001000200020001008600010001000201 +04018102011d018100010e01810001820100010101830001000108018100010801810002 +0102820001008200010083000100020402810102010209010e0208018100011801810201 +090103022101050001018100018101000400010184000100010081000182010001810102 +180281010205028301020102030282010201040183020102018401020102010401810001 +01010000 +020081020002008102000500020282000201050182020102820200028402000200028302 +000200810002020283000201020602810001030181000101018100018101000100030181 +000182010001820100010701010002018100010801850001000100013701830201020101 +01810201050181020105018102012f010c02100181020103018600010001000100860002 +00020001008600020002000100880002000200010002008d000200010002000102000200 +020088000100020002000200820002000400030103008101000300060101028301000102 +0102010184020001000101010d0281010201028101020e02840001000100870001000100 +010001060102028101020102810102010281010201020101010281010201028101028202 +010201028101020102810102820201028202010201028101028102011601020081010083 +000100018301000100820001008100018301000100820001021202830102000201028301 +020002020201010a0203018102018401020102018201020107010100 +81010005008102008200020082000200810002030205018202000282020102820201020c +028101028202000201028c00020001000100010001000100810001020101008201000181 +010083000100018401000100010301810001070181000107018300010001840100010001 +34018b020102010201020102010201850102010201028102011c0186000100020002008a +00020002000200010002008100020c028600020002000100880001000100010001008500 +010001000105018402010201028202010282020102010281010282020102010281010282 +020102010281010201028101020102810102820201020102810102010281010201028301 +000100830001000106010100810200810001040101020101810002010282000100840001 +00010081000202028101020602810102020202010d020a01010003010100830100020085 +0002000201000100820100028102018b0100020102000102000201020502810102820201 +028202010281020181010281020110010700820100010101010081010001008301000100 +830001000102011502810102820201028202010286020102010201028202010284020102 +010281020102018102010301830201020108010000 +820002000200810200050084020002010282020100820002010201030281010282020102 +030281010202028101020202810102050205010200010102000301810001840100010001 +1a0183000100010401810001300181020103018b02010201020102010201020182010201 +810102810201200184020102010282020102840201020102820201020702810102030283 +010201028302010201030182020102010283010201028502000100010088000100010001 +000100860001000100010088000100010001000100880001000100010001008400010001 +008800010001000100010082000100030003018100018301000100010082010001080182 +02000202028101028202010281020101010302810102040207010f020101830001000187 +010001000100010081000103018100010e01830201000104018200010202028100011f01 +840001000100820001008200010001000201840001000100010082010001820100021902 +830102010204028101028202010205028100010301810201010185000102010201030181 +0001810100 +040284000200020004000302030183000201008100020202810102820200020702850002 +000200028302010002040202018100013801810001330101028a01020102010201020102 +01820102018101028102011b0186000100010001008c0001000100010001000100010081 +00020a0286000100010001008a0001000100020002000100870002000200020102810201 +010181020181010201028101028202010201028101028202010201028101028202010201 +028101020102810102820201020102810102010281010201028101028102010201820001 +008100010501020081020081000104018302010201810102030282000200820002008100 +02040281010204028101020102820001020e020301810001040101000101010081010088 +0002000200020002008600020001000200880001000100020001008a0002000200020002 +000102810201010181020104018100010a01810001820100018501000100010082000100 +83000100010101060084010001000103011c028101020302810002060282000201820102 +010101810201810100810001010181020101018300010001810100 +060201008201020002000302860100010001020101011402810102020281010202020101 +840001020001810100810001060181000182010001170185000100010001820100010101 +02008201000134018d020102010201020102010201020101010202120181000102018100 +01070184020102010284020102010282020102820201020d02830102010283020102010d +018400010001008800020002000200010086000100020001008800010002000100020088 +000200010002000100820001020102820100028602000200020102810200830001000101 +018100010201850001000100010a018202000214020a010e020101860001000100010001 +000101020014018102010901030220010100810100820001000200810100830001000102 +018200010083000100018201000213020101820200020102810102030283000200020102 +81010203028101008100010201810201830102010081000105018300010001 +810002040282000200020081010203028201000103018202010203028101028202010205 +028300020002820201020402010182020100010081020131018100013a01890201020102 +000201020182010201820102018201020107018300010001820100010701020002018400 +01000100020089010002000200010001008400010001020a028501000100010088000100 +010002000200860002000200010282020102810201240183000100018201000103010100 +810100010084010001000103018200010002008101008300010001020184020102010218 +0281010201028400020001020c0206018100018101008200010002008301000100020081 +0200020085020002000200880001000100020001008a0002000200020002000102010202 +018102010301840001000100810001060184000100010083000100018301000100010082 +010001010105008401000100010201160201018402010201020a02830102010281020105 +018302010001820100018201020101010100820100010001 +010283000201028102008200020003000302810100810001020106028100028202000205 +028100020202810102820201020202820102018301000100810001270183000100018401 +0001000101018400010001000100240183000100010201010003018d0001000102010001 +000201020100870001020100020001010101000a01010081010002000a01820001008200 +0201050101028101020d0283010201028302010201010185020102010201030181000182 +010201030182020102010281010282020102820201020102810102010281010282020102 +010281010286020102000201020102810102010281010282020102010284010201000101 +0181000107018100010b018100020a028101020602010183020102018401020102018101 +020c02080181000101010200030101028101020102810102010281010201028501020102 +010201028101028202010205020101820201020102820102011501840001000100810001 +820100010101010081010083000100010201830001000101011602010102028101020202 +810102040281000282020102010283000200010301880201000100020102010101030000 +01 +850002000201028102000600020201018102010301090281010201028100020302030106 +020101810001350181000124018100018501000100010081000109018102018801020102 +010201020184010201020107010100810100010081010002008201000103018200010082 +00010082000100820001008500020102010282020102840201020102820201020d028301 +020102830201020106018202010282020102850200010001008800010001000100010086 +000100010001008800010001000100010087000100010001000187010001000100010086 +000100010001008200010003008201000103018200010002008101008200010081000106 +0106028100028402000201020102810002020207018400010001020c0201018100018101 +008400010001008200010086000100010001000600810100860001000100010088000100 +010001000100870001000200020001080181020104018300010001050181000101010200 +820100018301000100820001008200010084000100010082000100820001008100018101 +021502010102028101020302810102820201028202010202028201020102018102010301 +8102018401020102010401810001 +050203008102000100820201028602010001000201020108028101020502820102010101 +820201020202820102012e01810001020181000184010001000101018200010081000127 +018400010001008400010001008200020082000100820002008400010002000100810100 +820001000100080102000101010081020106010200830100010082000100010087010001 +000100010082000102070281000202028501000100010088000100010002000200890002 +000200010002010281020104010102010101028101028202010201028101020102810102 +820201020102810102860201020002010201028101028202010201028101020102820102 +010301810001060181000183010001008300010001040181000205020100810200820001 +02010281010202020a0101000b0202018102010301010003010200010102028101020102 +810102010281010201028201020181010201028101020102810102820201020102820102 +01010102020101010205018100010c018402010001000100810100810001040101008101 +008300010001820100010101150281000181010201028101028202000282020102010281 +00028202010202028501000102000186010002000100018a010001020001000100010000 +00 +0502020082010200010003020301010202018202010205028101020202820102010a0101 +026201850001000100018101008200010086000100010001008200020082000100820001 +008200020082000100820001008200010002008301000200020001028101020502010187 +0002000100020002040286010201000201020202810102820201020d0283010201028302 +010201010181020109018400010001008800010001000200010086000100020002008800 +010002000200020087000200010002000287020001000200010088000100020001000200 +04008201000103018200010083000100010b018100020602020182020102010281000283 +02010201060181000101018100020b020101810201810100840001000100820001008200 +010001008302000100860002000200020088000200010002000200880002000200010002 +008a00020002000201020102010c01810001060181000183010001000300040101008101 +008300010001030183000100010101160201010302810002030281010282020002020281 +010286020100010200018601000100010001820100018401000100010101810001 +010281010281020003008102008300020002010204018102010101080281010204028300 +01020149018100011e018500010001000111010102010181020101018102010801010281 +010201028701000100010201008400020002008200010281020081000204028100020802 +810002020281000208028100028602010002000200880001000100010002008900020002 +000200020102810201210181000112018200010081000106010100840100010001070107 +0201008101008200010206020b010d020d01020013018102010501010201010102060102 +020101010203018302000102810201080101020201050081010081000103010200810100 +830001000101011602010102028101020102810102820201028202010201028101020102 +060181020182010201010183020102010201810001810100 +870200020002000200810002830201000282020102810201040101028101028202010204 +028101028302010201020181020168018100010501880001000100010001008200010084 +000100010082000100820001008200020082000100820001000100810100820001000100 +830201000202020100810200010081010001008102008300020002810200810002030281 +010204028101020e02080181020101018402010201028402010201020102840002000100 +880001000100020002008600010002000200880001000200020002008700020002000200 +0287020001000200010088000100020001000200040006018100018401000100010b0108 +020401020281010202020701810001820100020d02030184000100010082000100010081 +010001008302000100880002000200020002008800010002000100020088000200020002 +000200830001000207020201030204010902820002000100820200028402010201020102 +050007011402860002000102000282020102820200028202000201028100020702920001 +00010002010002000102000102000200018101000100 +010081020001008702010002000100028202010281020105018202010282020102020281 +010205021b01810001510183000100018101008700010001000100010801810201050102 +020401820001008200010001008102000100810200010082010002010201010300840100 +0201020502020002028100021302820002008a0002000100010001000100850001000100 +010801820201028202010201028101028202010201028101028202010201028101028202 +010201028101020102810102820201020102810102010281010201020301820001008100 +0106018200010083000100010701070201008101008200010206020b010e020c01010001 +010102850102010201028102018101028102010201810201810102810201010103028301 +020102200281000204028200020082000200830002000104010200810100820001021202 +81010281020103010a02810102070207018102018201020184010201020103010000 +840200020100830002010284020002000203020601030281010203028300020102810201 +0d018100010601810001550183000100010a018400010001008400010001008200010082 +000100820002008200010082000100810001810102820201028202010285020102000200 +010081010001008402000201028202000224020201810201040184020102010282020102 +880201000100020001008800010001000100010086000100010001008800010001000100 +010088000100010001000100860001000100010088000100010001000100040002018100 +0106018100010b0109028201000181010207020601810001820100020d02810001030188 +0001000100010001000400830100010084000100010002008b0100010001000100020002 +008600020002000100820002018101020202810102820201021402010081020001008402 +000200020102810100820001000100820100010101820001021402010188000200020002 +010002010281000201028400010200020402880001000102000100018901000200010200 +0200018301000100 +0302010082020102820200020302020181020103010c028201020172018a000100010001 +000100010084000100010084000100010082000100820001008200020082000200010081 +010082000100820002000200810200820001020202810102810200820002000200220281 +000207028701000100020002008600020002000201070182020102820201020102810102 +820201020102810102820201020102810102820201020102810102010281010282020102 +010281010201028101020102030183000100010301810001010182000100830001000182 +010001030181000203028100028102008200010081000208020a010e0210010102810100 +830002010201028101028302000102010281010201028101028202010201028201020101 +0101028101021b0282000200830002000285020002010200820002000100820100010201 +810001020113020100810200870001000100020102820200020102860001020002000204 +0281000184010001000186010001000100018401000100018301000100 +0202850002000201020102820001020102020101020301030281010207026f0181000188 +0100010001000100010e0181020105018202010201020101810201020183020102008200 +02000100810200010081010081000201028201020001002b020101810201810102050201 +018600010002000100880001000100020002008600010002000200880001000200020002 +008800020002000200020086000200020002008800010002000100010003000601810001 +07018100010701080281000102010902060183000100020d028100010c01010003018400 +010001008300010001010182000100890002000200010002000204028200010282020102 +030281010218028201020084000200020082000200840001000100010081010001008201 +000214020501860201020102010201028701020102010201020402820102010401810201 +86010201020102010501 +820200028102008300020102820200020302030181020102010d02040181000106018100 +01040181000107018100010301810001060181000106018100010c018100012801810001 +070184000100010084000100010082000100820001008400010001008200010001008101 +008200010082000100010084010002010282020102850201020002000200810200810002 +0202810002340281010201028101028102012d0182020102830201020101018200010081 +000102010100010182000100810001830100010081000102010100030201008402000201 +008200010208020a010e0282010001030187000100010001000182010200020085020002 +000200880002000100020002008900020002000200020002840200010002010281010205 +028100021202820002008200020083000200020402020081010001000501140283010001 +008200010201028700020001000100018101028602000200020102010201018a00010001 +0001020001000184010001000185010001000100 +820002000100820200028102008100028202010282020001010101020201830200010204 +02850100020102010d018100010e018100011d018100010d018100010401810001040181 +00010401810001030181000105018a000100010001000100010083000100011001820002 +018301000100820001000100810200010081010001008101008400010201020302030036 +028401000100010601820201028202010201028101028202010201028101028202010201 +028101028202010201028401020001020102810102010281010201028101028302010201 +040181000103018100010b01810001830100010207028201000181010206028201020107 +0101000e020d0103000202810102010281010201028101020b0281010201028301020102 +1f0281000202028200020003008102008300010001030101000201150281010281020101 +0104028600020001020102840201020102820201020102840102010201050101020901 +810200820002000100840200020002820200028202000188010001020100010002020201 +000202810001020182020100830001020102018300010001040181000103018100018101 +008100010401810001050101000501010008018100010301810001030181000107018100 +0108010100050183000100010201810001820100010c0182000100820001008200010082 +000100890001000100010001000104018102018301020102020282000200010081020002 +0082010002010281000205028100021b0281010203028101020b02810102850200020001 +008800010001000200020086000100020002008800010001000100010087000100010001 +000187010001000100010088000100010001000100810001010183000100018101008300 +010001810100820001008200010082000100810001820100018201000202020100810200 +81000181010081000207020b010e02820100010501820001008100010201020081010084 +000100010002008701000100010002008d00010001000100010001000100018101028202 +010205020200110201008102008200020083000200028102008100010201810002810201 +030114028500010001000185010002000102020284010002000201028101028202000202 +0281000181010084000102000186010001000100018201000182010001 +810200040081020001000402020181000183010201028202010282020002020201010102 +810001010181020184010201000181010281020102018100010601810001060181000105 +018100010501810001050181000105018100010401810001020183000100010501810001 +860100010001000102018300010001050181000103018a00010001000100010001000300 +020101008201000181010084000100010001008101008200010082000200020081010082 +0002008100020202010101020100810100020023028301000200810002820201020b0283 +000100018101028102011301820201020102810102820201020102810102820201020102 +810102010281010282020102010284010200010082000100820001008200010082000100 +820001008200010082000100820001008200010081000202020100810200820001008200 +010208020a010e020b018400010001008100020102810002010281010201028101020802 +81010282020102820201028202010201020101070283000200020f020200010281010084 +000200020003008202000102018202000181010214028101008100018301000102880200 +020100020001020102810102840201020102030285000200010002820200018401000100 +0184010001000182010001 +040083010002008300020002840200020001870100010002000102810200810002840200 +0200018601000100010001860100010001000281020081000186010001000100018a0100 +010001000100010001810100830001000193010001000100010001000100010001000100 +010081000183010001008100018101008c00010001000100010001000100810001010183 +0001000108018100018501000100010083000100010401850001000100010d0181000111 +018102018401020001008200020001008102000200820200020402010023028101020102 +8101020d0282010201850100020002008600010001000200880002000200020002008800 +010002000200010088000200020001000200880002000200020001008600020002000200 +82000100810001030181000184010001000102010100010181000106010802030106020c +018100020d028401000100010b01020081010086000200020002008a0002000100020002 +0002008b0002000100010002000200010201050281010214028101028302000200820002 +000100810200010001018100010601140201000501020281010283020102018301020102 +010283010201020102810102050281010282020102810201040101020000 +020081020001008102008200010203020501820201020202810102020284010201020106 +018102010401810201440181000102018400010001008300010001010181000108018100 +010901810001050181000108010200850100010001008200010001008101008200010206 +028201020082000200010081020001002802810002030281000201028100020402810002 +820201028202010283020102012f01810001870100010001000100010081010004008101 +00820001008200020003000602050006020d010e020a0101008101000200020181000109 +0101028101020502050181020105010c0201008101020802010001028200020083000200 +020302030001018500020102010214020101010084010001000288020102000200020002 +010281010202028100028602000200020002840200020001880100010001020001008300 +020001 +810200020083020002008100028602000200020001840100010002860200020002000282 +0201008100018401000100018f010001000100020100010001000201008e000201000100 +01000100010001000181010081000189010001000100010001008100018d010001000100 +0100010001000100830001000181010083000100018101008a0001000100010001000100 +880001000100010001008600010001000100840001000100830001000104018300010001 +080184000100010083000100018201000182010001060102008101008200020001008102 +000100810200010083020001020102810102010203003602020186000100010001008600 +010001000200880002000200020002008800020002000200010088000200020001000200 +880002000200020001008600020002000200820001008100010201810001140106020201 +8400020001020202810102810201010181020107010f0282000100830001000107018200 +01008200020001008702000200020002008c000100020002000200020002008700010001 +0001000102010e028100020a028100020802820002008100028102008200010081000102 +011502020082010001810102050283010201020302830102010201028501020102010282 +02010281020183010201028202010281020102010000 +020002028500020002010201028201020105010702090181020104018102010101810201 +020181020102018102010101810201510181000101018100010801810001810100020009 +018400010001008100018301020102010283010201020502010081020001008102000200 +3c0281000282020102820201028202010282020102820201020102810102820201028202 +010201028101028202010201028101028202010201028101020102810102820201020102 +810102810201010181000184010001000101018200010082000100820001008200010084 +000100010083000100018101021102840102010201830102010282020102820201020e02 +0b01820001000100010102000a0181020181010206020101810201070103028101020802 +8100020a0283000200020b02840102010001840100020102160202018300010002890201 +020002000100010283020100028e02010201020001000102000200020084000100010088 +000100010200010001 +820002008200020001008902000102000200020001890100010001020002000286020002 +0002000184010001000186010001000200018a01000100010001000100018a0100010002 +00010002000183010001008100018c010001000100010001000100018101009000010001 +0001000100010001000100010083000100018101008a00010001000100010001008a0001 +000100010001000100840001000100840001000100830001000182010001090181000181 +010001008101000100090101008101008300010200010081020082000100010081020001 +008202000204028101028102008200020002003602020184000100010088000100010001 +000100880001000100010001008800010001000100010088000100010001000100880001 +00010001000100860001000100020003000301810001100181020102012e028900010001 +00010001000106018100018301000200010089020002000200020001008a000200010002 +000200020086000200010001008100010101080281010203020100030281000204020100 +810200020009020100860100010001020181010218028200010201028100028602010001 +000102820201028402000201028902000201000100020002840200010001810100010085 +020100010001 +030081020083000200020302820102010501020281000281020101018102010b01810201 +03018102018301020102810201010181020103018102015801810001030104000a018100 +010301010001028201020181010284020100010001008102000100810200020084020002 +010201020100820200023402810102820201028202010282020102820201028202010201 +028101028202010282020102010281010282020102010281010282020102010281010201 +028101028202010201028101020102820102008500010001000101018200010083000100 +01810100830001000183010001008200020101012e020e018b0001000100020102000201 +020102810102010281010201020101010281010204020201810201030182020102820201 +020502810102010281000202028100028202010201028101028202010283020002008100 +020302010003018100018401000100022002810102820201028202010201028301020102 +850201020102018101028702010200020002000100850102010200010001 +090001028e000100020100010001000102000102010283000100018d0100010001000201 +0001000100018a01000100010001000200018a0100020001000200010002810200810001 +a10100010001000100010001000100010001000100010001000100010001000100010081 +000183010001008800010001000100010083000100018101008600010001000100840001 +0001008600010001000100810001820100010301810001050105008101008100010a0101 +000102020081020001008201000102010702010081020002008202000238028400020001 +028302010002840201020102820201020102810102820201028202010201028101028202 +010281020105018100010c01810001020181000102018100010401810001030181000102 +010102010030028100010c01020002018600010001000100880001000100010002008a00 +010002000200010002008700010001000100010101810201810102080201008102008100 +020702820002008200020082000200810002040202008101000100810100010017028400 +0200010201028a0002000100010001020002010281000289020002000102000100028502 +0001000100020081020002008101000000 +020083010002000100830200020082000102840200010001970100020001000102000200 +020100010001020001000100018c010001000100020001000102018c0100010002000100 +020001020081000102018900010001000100010001010181000103018300010001010183 +0001000102018100010101810001080183000100012201820001000200820100010c0181 +000181010002008301000100010081010082000100010081010002008202000203028101 +028102000200350204018302010001870100010001000100880001000100010001008800 +010001000100010087000200020001000289020002000100020001008200020003008102 +00850001000100010101820001000100030183000100010201010003012e028b00010001 +000100010001000102018200010082000100810002010281010201028101020102810102 +010201018202010209020401020283010201020702810002090282010002080281000201 +020100810100810001050119028101020302840102010201010103028101028202010281 +02018201020102010202850102010201008200010083000200010001 +040083020001020302010101020401020202018102018101028102010701810201020101 +020201810201020181000102018102010201010202010102820100010901810001010183 +000100010201810001030183000100010101810001010182000100850001000100010301 +820001008400010001008600010001000100820001008300010001080181000103010300 +810100850001000100010801030201000901010201018100020102020081020002000302 +810002220281000219028101028202010282020102010281010282020102820201020102 +810102820201020102810102820201020102810102820201020102810102010281010282 +020102810201830100010083000100010401830001000101018300010001810102810200 +83000201022e028100010201830201000104018200010084000102010086000200020001 +00880002000200020001008c000100020001000200020001008300010001070101028101 +020502810002040281000203020100810200820002008100020502830100010082000100 +02001a028300020002010283000100018401000200028202000201028100028402000200 +018601000200020002850200010001008400010001000000 +060001028100028902000200010200010001840100020001860100010001000184010001 +00018801000100010001020088000102000100010001810100880002010001000100018c +010002000100010001000100018101008100018101009800010001000100010001000100 +010001000100010001000100810001830100010084000100010083000100018301000100 +84000100010086000100010001008200010083000100010c010100810100010081010085 +000100010001060183020002000100020182000100820001000100810200010001010802 +010081020001003602810102070286000100010002008800020001000100010088000100 +010001000100880001000100010001008800010001000100010082000100030081010001 +000501820001008300010001080102028301020102050281000226028a01000100010001 +000100010201020002018100010c01010283010201020102810102830201020106018302 +01020181010202028101020b028101020b02810002040283000102008300010001830102 +010217028300020002020282010001830100010201028200020181010296020100010001 +00010200020001020001000102000200028302000100 +820002000400040202018102010301020211010202840102010201010181020103010102 +02010102020181020154018100018301000100820001008100010f018202000201028101 +000100040181020082000200010082010002010202008102008100020302810002370204 +010302070182020102820201028202010201028101028202010201028101028202010201 +028101028202010201028101020102810102820201028102018301000100830001000105 +010200810100820001008200010082000100820001020802810102020281000217028101 +020502030182020100830001000101010300010181020088000100020001000200880002 +000200020002008a00020002000200020001008100018201000181010281020182010002 +8102008100020102830002010203028100020a0283010200020502810001850100010001 +0002001f0283010201028102018101028302010201020101028201020102018202010281 +0201010101020101010202010102 +04008102008d000200020002010001020001000184010002000186010001000100018401 +000100018101008100018d01000200010001020001000100018101008800010200010001 +000181010083000200019601000100010001000100010001000100010001000100018101 +008c00010001000100010001000100810001810100860001000100010081000183010001 +00840001000100860001000100010086000100010001008100010c010300830100010082 +000100810001070103028400010001000300820100010701030201008102000200820200 +023d02010087020001000100020088000200010002000200880002000200020001008a00 +020002000100020001008800010002000100010004008101000100030184000100010083 +000100010801010281010282020102050281000181010001000102810102840201020002 +19028a010001000102010001000103018100011101830201020184010201020103010102 +820102010701040281000284020001000201028101008100028202000211020201810201 +030182000102160201008402000200020202870001020100010201860100020001000184 +01000100028b0200020002010002000200028602010002000200 +840002000200840001020002020202018102010201030211018602010201020102810201 +01018102010301010203018102010101010253018100018401000100018101008100010e +010302810001810100830001020002008101008200010001008101008100020a02010023 +028101021d02270101028101028202010281020183010001008100010601820001008200 +010082000100820001008200010082000102060282010001810102810200830002000206 +028101020102030181000284020102010281020181010203020301820001008400010001 +008200010081000183010002008a0001000200010002000200880001000200020002008f +000200010002000200020002000201028502010200020002008102008100020802020001 +028500020001000281020081000282020002010288010002000200020002080281000210 +028101020602810102810201810102820201028102018101028302010201810102810201 +8101020402010106020001 +0102820002000100010283000200018c0100010002010001020002000188010001000100 +01000186010001000100018f010001000200010200010001000201008a00010200010001 +000201008100028302000100810001a10100010001000100010001000100010001000100 +010001000100010001000100010081000181010086000100010001008300010001810100 +860001000100010084000100010084000100010081000182010001060181000181010002 +0083010001008400010001008100010501040283000201028102008100010b0181000203 +02820002000200390202010c0201008702000100020002008a0002000200020001000200 +880002000100020001008800010002000100020004008102008100010301810001810100 +0100820100010e010502820002018101008100020e028201020183010001020202810102 +080285000100010200850001000100010101830001000181010282020102010281010201 +02810102010281010201028101020402820102010d010100050201008102000100810200 +820002000100030281010204028100020b02810102020201018102010401060281010201 +0281010286020002000200028d02010200020002000102000100018d0100020002000102 +00010001000289020002000201000200028302000200 +040081020082000200820002018601000100010001840100020001840100010001860100 +010001000184010001000188010002000200010200810001930100020001000102000100 +010002000100010200830001000183010001008100018c01000100010001000100010001 +01010100030101000201830001000101018100010201830001000111018100010e018100 +018101000200820100010a01020281000284020102010082000100030081010001008101 +008300010002080201008102008100023802060184020102010282020102010281010282 +02010282020102010281010283020102011a018200010081000102018100010101820001 +008200010082000100820001008500010002000206028101008200010281020083000200 +020a02830102010202020201080205010100850100010001000200010102008b01000100 +01000100010001008a00010001000100010001008b000200020002000200020102820201 +020302010085020002000200810002820200020502810002150282000200020084010002 +00010201080281000201020100070283000200018201000201028100018b010002000201 +00010002000184010002000284020002000185010201000201 +830200020002000402020181020103010202110102028201020182010201020101020301 +810201030181020102018102011601810001030181000103018100010201810001010183 +000100010201880001000100010001008400010001008300010001010101000101810001 +060182000100010002010300830100010081000104010702820001008100010401020081 +0100010082010200810002030201004a028a01020001000100010001008a000100010001 +000100020084000200010285020001000200810002860201000200010007000201810001 +010101008201000108018102010301050282000201010181000282020002130203010102 +010104020301830201000102018100010201810001840100020002010281010201028101 +028202010201020101040281010201028101020302020182020102020281000201020100 +050282000200810002810200830002000215020101010282010201020184000100010207 +028501020102010203028101028302010201820102018101020102030101028201020105 +0106020201820002010101 +06008c020002000201000102000100018401000200018601000100010001840100010001 +810100810001820100028102008d00010200010001020001000100028102009400010001 +020001000200010001000100010001000181010083000100018101008300010001810100 +83000100018101009000010001000100010001000100010001008a000100010001000100 +01008400010001008600010001000100850001000100010a01040001018100010a010202 +8100028102010301050008018202010203028200020003001e028101022a028101028202 +010282020102010281010282020102010281010283020100028202010282020102830200 +010282020102820200010501010003018100010101820001008200010082000100840001 +00010083000100020502820001000100810102850200020001020e020401010282000102 +03028501000100010003008301000100020003018e000200010001000100010001000100 +8a000100010002000100010087000100020001000104010a020100010202000102810102 +170285010002000200850001000100010301040281010282020102010281000203028100 +028702010002010001029002000201000100010001020001000100018401000100028402 +000100028202000182010001 +810100040004020201810201020101028101028102010f01030201018102010101810201 +040181020103018102010101010255018200010081000181010004008301000100810001 +04010502010183000100018301000100010081010082000100010083010200022d028101 +021f028101028202010201021b0181000101018800010001000100010003000101010002 +018200010082000100840001000100820001008200020083000100020602030181000215 +020201020201010402010181000182010001030184000100010081000102018100010301 +820201020102810102010201018202010201028101020102010182020102810201010183 +020102018101020502810102010281010284020002000202028100021602810002820200 +01050181000181010207028101020c028101028102010101010206018102010301810201 +810102840201020102810201010102020001 +810200040084020002000186010002000100018201020086000201000100018601000100 +0100018401000100018d0100010002000201000100010001810100810002880200010001 +000201008500020100010081000186010001000100018101008300010001810100830001 +000181010083000100018101008c000100010001000100010001008c0001000100010001 +000100010086000100010001008400010001008700010001000100010701810001810100 +010001010300810100830001000104010202810002810201020103000b01820201020302 +820002000300200281010212020201850001000100018601000100010002020284000100 +010283020002008100020102850002000100028602000200010002850201000200020102 +810102820201028102010601010003010100820100010a01020201010602820001000100 +190281010202020101020201010102810102830200010089000100010001000100010201 +8400010001008a0001000200010002000200830001000288020100020002000200830002 +000104018402010201020102810102060285010201020002170281000203028100018101 +02010203010d02820100028202000202028c000200010001000201000100018601000100 +01000191010001000201000100020100010001020002 +07008a02000201000102000100018b010002000201000100010001020181000102018100 +018101028502000100020183010002010201830200020101010102020182020001030181 +000152018100018101000200820100010a01030282000201810100810001810100820001 +00010081010001008101008100028202000208020100200281010209028101020b028101 +020e02810102820201028202010201028101028202010201028101028202010201020d01 +820001008200010002000101810001030184000100010082000100820001008200020083 +00010002060203011e020101030281010203028100010501020002010100110102020101 +810201030181020102018302010201810102070281010207028100021302810102020281 +000181010002000402830100010202028101020f02860100020001000186010002000100 +010201810001840100010201070102028101020102 +010001028300020002020201018102010301820201028102010701810001020181000102 +018100020202830102000101018300020001020187000200010002000101018400020100 +0101019e0001000100010001000100010001000100010001000100010001000100010083 +000100018101008600010001000100810001850100010001008400010001008400010001 +008400010001008100018201000107010400010104008101008300010001040104020201 +040006010100810100840002010002020201008102000200220281010224021b01010281 +010201028101028202010281020101010100170103020101070204011802810102010201 +010402810102030201018200010085000100010001040186000100010001008a00020002 +000200020002008100020102890002000100010002000102010102020126028101020102 +820100018301020102010281010203020101050281010207028100020602810102810201 +070181000104018100018901000100010200020002840200020002 +010081020001008602000200020002840200010001850100020002018101008100018201 +00018401000100018101008100018401000200028a02000100010001020001008a000102 +000100010002010081000188010001000100010001810100810001810100830001000183 +0100010081000181010083000100018101008c0001000100010001000100010081000181 +010085000100010001010184000100010084000100010086000100010001008300010001 +0b010400010101000b010202820002010301030081010083000100010301820201020502 +82000200020021028101021a020201820201028202010282020102820201028202010201 +028101028202010282020102010281010282020102010281010282020102010281010282 +020102810200810001020103008301000100820001000100830100010001008301000100 +820001008300010002030282000200850001000100021602010102028101020402810102 +0302820100010a0101008201000185010001000200890002000100010001000201020100 +820100010d011002010006028101020e0281000187010201020002000205028100020202 +8101020402810002020281000203028701000102000200020202850001000100018b0100 +01000102000100010001840100010002840200020100 +820002008100028302000102810201820102010401020212018202010202028101028102 +01070181020103018102010101010236018100011b018200010081000101010100810100 +010084010001000106010402010102000101010081010082000100010081010083000200 +020402810002030281010208028101021202810102820201021502040109028101028202 +0102820201020102820102011b0184000100010081000114010302010107020401170281 +010209028101020402850100010001008300010001060181000108010202810102070282 +0001028202000102018102010201120281000202028101028402000200020d028101020b +02810102030281000201028101020f028101028202010281020101018102010601010284 +010201020101018202010202020001 +030081020088000200020002010001840100010002840200010001840100010001860100 +010001000184010001000291020002000200010001000102000100020001810100880002 +0100010001000181010083000100018701000100010001008100018f0100010001000100 +010001000100010081000183010001008100018101008600010001000100830001000183 +010001008400010001008800010001000100010085000100010001070182000100040004 +010100090102028200020101010300090101020101020282000200010081020002001e02 +810102150201010502810102020281010283020102010a01820201028202010201028101 +028202010201028101028202010201028101028202010201020501020083010001000100 +830100010082000100820001008200010082000100830001000203020100830200010081 +000217028101020902810102040201000201010082010001020101008201000187010001 +00020002008b000100020002000200020002080281000182010201810102030281010211 +028101021002820100020202810102820201020f02810102010287000200020002000202 +028600020002000102930201000100010200010002000201000100010001820100018401 +00010001810100 +020081020001000102820100010201810001810102020283000100010701810001010184 +020102010202028401020100028102010201810201030101020a01810001490181000109 +010500810100010006010102810002010201018200010082000100820001000100810100 +8200010001008101022e0281000203028100020402810002030281000203028100020302 +820001028502010200010285020102000102010284010002010283020100028202010282 +020002010284010200010281020182010001030181000101010100820100010301810001 +030181000104018100010201810201810102060201018200010219020101070281010202 +020401810001030181000104018100010f01010201010602810102060285010201020102 +10028201000201028100020e028100020302010181020181010201028101020402810102 +07028100020a021501860201020102010201020101 +040081010282020002820201008100010201830002000182010001010181000184010001 +000182010201810100820001008300020002880200010002000200018301000100010082 +01000183010001008100018c010001000100010001000100018101008300010001810100 +82000100820001008400010001000100010182000100860001000100010002008b010001 +000100010001000100860001000100010086000100010001008100018201000107010400 +040102000901040203000d0101000102020081020002008102008100023a028101028102 +010201030212018100010301810001030181000102018202000282020102010281000103 +010200820100018101008300010001830100010081000183010001000100840200010002 +030283000200018101008100021702810102020281010204028101020202820102018201 +000104018100010201830201000182010201870102010200010002820201028102008100 +02030201000b02850102000201020a028301020002070201000a02820001028202010281 +02010101810201810102810201040182020002830201000210029b000200010200020001 +00010200010001020002000100010200020002820200028302000100 +050002028200010083000100010101010201000101810001020181000184010001000102 +010300820200020102840002000100820002018101000100820100010201820001000100 +020101008101000100020185000100010001010101000101810001010184000100010081 +000101010300010183000100018401000100018401000100010201810001090183000100 +010e01050003018100010701810002030281010001008101000100810100820001000100 +8101020b028101008100021d028f00020002000200020002000200020002810200820002 +008200020082000200820001008200020082000200820002008200020082000200820002 +008200020082000100850001000201008300020002810200870002000102000100850002 +010002008100028202010001000201010081010082000100830001000101010200020183 +000102018201020181010205028200010082000102180281000208028101020102820100 +010201010082010001860100010001000101010100820100018101020102010182000201 +010101028100020402820001020602810102820201020502810102040281010209028701 +020002000200020602830001000103018100010101010204018200020104018100020102 +020003028100020302810102050281000201028100018101029202000201000100020002 +010001000201000102 +020083010002008300010201050186000102000100018201000101018402000100010201 +840001000102020285000200010201850100020100010501830001000182010001010101 +000501810001840100010001010185000100010001010185000100010001830100010081 +000102018300010001010182000100810001830100010082000100010081010087000100 +010001000105018100018201000104010100810100810001020102008101008100010701 +030202000101820002000100810100820001000100820200020102030081020001008302 +000102360281010201028101020202010182020102820201028202010282020102010281 +010282020102820201020102310182000100820002008300010002050204011502810102 +82020102080281010201020e010202810102840201020102850201020102008300020102 +010281000282020102140281010201028101020f02030084020002000205028100018201 +020181010281020101018102018201020103010100810100030008028101020302810102 +82020102060281010281020101010102810102820201020302830102010201020001 +010081020086000102000102010401010282010201030183020102010b01040281000202 +020100820100016701050002018100010101810001030181000183010201000500030181 +020105010a0202008102008100021c020100810200820002008200020082000200820002 +008200020082000200820002008200020082000200820001008200020082000100820001 +008200010082000100820001008200010082000100820001008200020084000200020082 +000100820001008200020082000200820002008200020082000100840001000100820001 +008200010086000100010001000200010102020101220281000282020102070281010204 +020100850100010001008600010001000200830001000183010001008500010001020101 +018400010001028102008100020f02830102000213028101020102810102020282010200 +810002830201000102010202810102020282010201060101000401020201008602000200 +02000202028100020302810102050281000205028101020402850102000200020002 +050002020101810001010185000100020001010182000100810001820100010101890001 +000100010001020083000200020102820002010601890001000100010001000181010083 +000100018801000100010001000183010001008300010001830100010083000100018301 +000100830001000181010088000100010001000100830001000183010001008600010001 +000100830001000109018100018e01000100010001000100010001000104018100018101 +008400010001008200010082000100010081020082000100820001008200020001008101 +0081000281020001008102000100820200023b0204010402830102010282020102820201 +028202010201028101028202010282020102010281010282020102820201020102810102 +820201020102820102011e010200810100820001022e0281010205021501010281010286 +020001000102010101010281010203028101020b02810102140282010200860002000200 +010201028201020109010402030181020103010300810102010283010001020102810102 +03028101020e0281010202028101020b02 +810002810200010085020002010001010182020001830102000102018100010901810001 +010102028100028402000200028202000182010001010181000101018300010001820100 +018201000184010001000101018100018201000103018300010001030183000100010201 +810001820100010201830001000103018300010001020183000100010301830001000107 +018100011301010004018100010801040205010202810102060202008102000300820200 +021d02820002008100028302000200810002830200020081000283020002008100028302 +000200850001020001008500010200020081000283020002008100018301000100810001 +830100010081000183010001008100010101010082010001810100850001000102008500 +020001020083000100018301000100010086010001000100018301000100850001000102 +010301300281000204020100010182000100810001020103008502010200020081000202 +0282010200810002820201028102008100020e028301020102140281010206028101028b +020001020001000100010001030102020801020004010302010084020002000206028100 +020302810102840201020102050281010204028101020102810002 +820002000200020201018300010201020181020181010082000201030182000100810001 +040102000602810001060181000105018100010601810001050101000501830001000103 +0101000501010004018300010001030101000401830001000102018100010c0192000100 +010001000100010001000100010001000100810100820001008200010082000100820001 +008200010082000200820002000100810100820002000100810200010003028101022302 +820100020302810002030281000202028100020302810001030181000103018100010301 +810001020184020002010285020100020102010281000282020102820200020102840102 +000102010284010002010201028200020102018100011201010081020001000101810201 +820102018201020183010201028202010220021301020281010203028101020202810102 +020281010201020201100281010210028101020402840002010200820002018101020102 +0b0104020a01020003020100810102820201020a02810002050281010202028101020a02 +82010201 +870002000200020102810201810102860201020102010201028101028102010e01090208 +01810201540181000102018700010001000100011b010502830102010201028200020002 +008102008200020002008102000200210281010216028200010284020102000282020102 +820200028202010203028301020100820001028502010002010282020100830001020181 +010082000201820102008300020001810100830001000181010083000100018301000100 +820001008400010001008200010082000100810001060182000100860001000100020082 +000200010083010001020802830001020081000283020001028202000284020002010289 +020001000201000201008100018101000100820100010101020082020002830200010001 +0002010100820100018301000200010081010203028100020a028100020c028300020002 +070204010202010082010001840100010001020101028101020102070182000100010081 +010282020102820201020e028501020102010201028101021202 +010081020001008402000201008100028202010082000102010281000181010083000200 +018401000201008100018201000184010001020087000200010200020081000286020001 +000102008700020001020001008100018401000100018101008300010001820100018201 +000184010001000184010001000182010001860100010001000181010085000100010001 +840100010001860100010001000186010001000100018401000100011201860001000100 +010081000181010001008101008200010082000100820001008200010082000100820002 +000100810100850002000201020f02810002190281000283020002000100830200020001 +008302000200010081020082000200820002008300020002810200850002000201008800 +020001000100020001008101008100028302010200810002830200020082000102010201 +000302010004028100020202820100010301810001110101008101008300010001060104 +02060108020801810201820102018101028102011b010102810102020281010202028101 +02020202010b028701020102010201020102810102010281010201028301020102080283 +01020102050282000201020181000182010001020103020d010100020201008602000200 +010002040281000282020102010281000202028300020002020281000205028101028302 +010200 +820002008100028202000214028101020402830102010281020181010201020101030201 +010202810102820201028202010204028301020102810201830102010283020102010101 +810201390181000102018a00010001000100010001008600010001000100820001008400 +010001008200010082000200820002008200020001008102008200010001008102008200 +020001008102000100810200010081020002004f02810102070281010205028100028202 +010282020002030201000302010002028101008700010002010001008100018301000100 +810001010101000901020001010102020001028200010081000208028300020001010101 +008201000203028100020102820002008100010201020002018500010001000101018a00 +020002000201020002008100020102820002008100020102010082010002010201008202 +000284020102000283020001020302810002050281000205028100020102020106028301 +0200010a0103020a0102000101820200028202010202028101020e028101021302810102 + +010101008101008300020002820200020102810002070283000200028202000201028100 +020602810002030281000282020002060281000282020002020281000282020002840200 +020002820200028302000200830002000283020001008300010002830200010083000200 +018401000100018501000100010083000100018101000100820100018101000100820100 +018101000100820100011801810201020183020102010101010202018102010201830201 +02010201810201850102010201020702810102020202000d028100020302810002020286 +000200020002000100830200020001008302000200010087020002000100020001008102 +008200020082000200820002008200020082000200820002008200020001008102008200 +020082000200820002008200020081000283020002008100028302000200810002010283 +000200020102010003028301020002010282010002820201028702010001020102008200 +010082000100810001030182000102020282000201020182000102090281000104018100 +020302810002010284010201000104018100010a01030281010203020901010202010402 +810002050285000201020102110282010201010108028101028102010301810001040104 +020e01010201008101008500020002000206028100020302810102860201020102000209 +028200010282020102 +850001000100010901810201060181020102010102820102010401020281010282020102 +84020102010282020102370281010206020101810201810102010204018102010a018100 +018401000200018301000100880002000100010001008400010001008200010082000100 +820001008400010001000100810100820001008200020001008101008200010001008102 +000100810200010081020081000221028101021c0281010206028101020a028101020102 +8101028202010202028101028202010283020102018101020e0281000202028100020202 +010082020002820200020202830102010283020102010201820201028102008100020102 +02010e028201020182010002030281000202028301020001040181000102018100018201 +0001840100010001820100018d01000100010001020002000100028c0200010002000100 +0200020002820200028402000200028c0200020001020001020002000285020001020002 +8502000200010282020102070281010202020a010202820102010b01810002020202000f +0281010202028101028402010201020a028101020202 +820100018201000182010001810100810001030182000100810001040182000100810001 +030185000100010001020182000100810001030182000100810001030183000100010301 +02028100020102810102050281010219028101020b028100020102810002820200020102 +81000202028101020d020101010281010283020102010f01810201040101028101028202 +010202028101020302810002810200840002000200810002030281000207020100820200 +028102008300020002810200830002000281020001000202020001028200020081000281 +020083000200028102008300020002810200010001028200020081000283020002008100 +028102008500020002010083000200028102008600020002000200850001020002008100 +028302000200810002830200020081000284020002000201028400010200020502020183 +000100028102008900020002000100010001820100020302010083010001020902810002 +850200010001028402000200020202840002000201010184000100020184010200010201 +028101020702810102020281010203028101020102810102120201010202810102030281 +000184010200020182010201810102050282000102020281010201028201020109010202 +08018102010401040286010002000200020802810102820200020202810002820200020a +0283010200020002 +02008201000155018102010401060281010207028100020b028100020a028100020c0285 +000200020002830200020001000102820002008100028302000200810002830200020081 +000183010001008300020100020083010002008100028102008300020002020281000203 +028100020302810002020281000203028100020202810002030281000202028100020302 +810002020281000202028100020302810002020281000202028100020302810002020281 +000202028100020302810002020281000202028100020302810002020281000203028100 +020202810002030281000202028500020102010282020002840201020002020282000201 +010184020002010201028100020102010182000102010281000203028200010202028100 +020402810002030282000201010182020002040281000203028100020402810002040281 +000202028301020001010102028100020402810002040281000203028d01020002000201 +020001000200020602010182020102830201000282020102020208018100020302820100 +010501010203010602010084020002000209028101028402010201021302 +020005018100010701810001060181000106018100010601810001060181000105018100 +010501810001050181000105018100010401810001040181000105018100010b01840002 +01020181010206028100020a0281000203028100027f021d028100020e02810002030281 +000202028100020302810002030281000203020100020281000203028200020181010282 +020002020284010002010201028100020302820002018101020102810002820201028202 +000204028200020184010201000281020102018100018101020102810002040281000204 +028100020402810002050281000204028100020402810001020189020102000102000200 +020702830102000202028100028402000201020202030181020101018400010201020402 +81000107010102810102030281010282020102820201020c028500020002010282020102 +0e02 +010082010001020181000184010001000102018100018401000100010101810001840100 +010001020185000100010001020185000100010001010181000181010081000102018500 +010001000101018500010001000101018500010001000182010001840100010001860100 +01000100018201000184010001000186010001000100018401000100018a010001000100 +01000100018201000181010081000186010001000100018f010001000100010001000100 +020001028402000200020102810002130281000203028100020302810002020283000200 +020102830002000203028100020302810002830200020081000283020002008400020002 +008100028302000200840002000200810002830200020086000200020002008a00020002 +000200020002008600020002000200810002810200860002000200020081000281020001 +000102010082020002810200010002020100020203008102000200020201000302010002 +020100030281000203020100020201000302810002020201008202010281020081000202 +020100010101028100020202020002020200020283000200020102840002000201010102 +000101840200020002010281000282020002010283000200020102810002820200020102 +810002820200020102840002010002020282000200810002010282000200820002018401 +000102000100010284000201000182010002030201010102810002830200020085000201 +02000281020183010201020c020301820201028102018101028202010203028200020081 +00020a02810002020201010102810102820201020e02 +830001000105018100010601810001060181000107018100010501810001060181000105 +018100010501810001050181000105018100010401810001050181000104018100010401 +810001040181000104018100010301810001040181000103018100010401810001030181 +000102018100010301810001010183020100010201820200020202830102010218028100 +020302810002020281000203028100020202810002020281000203028100020202810002 +020281000202028100020202810002030281000202028100020202810002020281000202 +02810002030281000202028100020202810002020281000244028101021a028101022102 +82010201020102028101020d020301010281010281020184010001000201028101020202 +8101028102018501020102010206028101020d0202010302810102810201810102820201 +020402010103028101020702810102020283010201020c028101028302010201 +820100018201000184010001000103018500010001000102018500010001000102018100 +018101008100010201850001000100010201850001000100010101850001000100010101 +850001000100010101850001000100010101850001000100010101010082010001010185 +000100010001830100010081000101018500010001000183010001008100010101820001 +008100010101820001008100010101020002010100820100018301000100810001830100 +010081000181010083000100018101008300010001830100010081000181010086000100 +010001008100018101008300010001810100830001000181010001000101820001008600 +02010002010201020100030281000203028100021d028100020102020001020100840200 +020002850200020002008100028102000100010202000102010002020100020282000200 +810002810200010001020100830200020083000200028102000100010201008502000200 +020081000281020001000102010082020002810200010001020100820200028102008600 +020002000200810002810200830002000281020098000200020002000200020002000200 +020002000200020002008100028602000100020002810200830002000286020002000200 +028102008300020002860200020002000286020002000200028302000200810002010285 +000200020002860200020002000284020001000188010001020002000100840002000102 +010281010201028700020001000201022d02830002000282020102080281000202028301 +02000282020002040281000204028101020102 +820100010101810001070181000106018100010601810001060181000106018100010501 +810001050181000105018100010501810001040181000105018100010401810001040181 +000104018100010301810001040181000103018100010401810001030181000103018100 +010301810001020181000103018100010301810001020101000301010002018300010001 +830100020101018100010301810001020181000102018100010201810001020183000201 +028302000201840102000102010281000202028100020202810002020281000201028100 +020202810002020281000202028100020102810002020281000202028100020202810002 +020281000201028100020202810002020281000202028100020202810002020281000202 +028100020202810002020281000202028100020202810002020281000202028100020202 +810002030281000202028100020202810002030281000202028100020302810002820200 +028202000282020002820200020202810002020201000302010004020100040281000203 +020100050281000203020100040201008402010201028102008100028102018501020002 +0002010283010200020102010183020001020c0281000212028100020e02810002820201 +02040283000201028202000201028201000207028100020702 +010181000182010001010181000103018100010101810001030181000182010001030181 +000101018100010201810001820100010201810001010181000102018100018201000102 +018100018201000102018100018201000102018100018201000101018100010101810001 +820100010101810001010181000182010001010181000182010001010181000182010001 +010181000182010001010181000182010001820100018201000101018100018201000182 +010001820100018201000182010001820100018201000182010001010181000184010001 +00018201000103018100010201810001030181000101018300010001010183020100018b +0100010200010200010002018a0100010002010200010201840100010001010183000100 +0184010001000184010002000101010100840201020002010281010201028101027a0281 +000203028100020302810002030281000203028100020402810002030281000204028100 +020402810002040281000203028100020502810002040281000202028100028202000281 +020181010083000200020102810002060281000204028100021e02010182020002050201 +008402010001020302810002820201020402810002820201028202010201028100020902 + +010002018100010301810001820100010301810001010181000103018100018201000102 +018100010101810001020181000101018100010201810001820100010201810001820100 +010201810001820100010201810001820100010101810001820100010201810001820100 +010101810001820100010101810001820100010101810001820100010101830001000101 +018100018201000101018300010001010183000100010201010003010100030101000301 +010003010100020101000201830001000101010100020183000100018401000100010101 +010003010100020101000201010003018100010201810001020181000101018202000101 +018202000101018302000201830102000182010200840001020100840001020100810001 +010101000201810001010101000201010083010201008400020102008100020102010001 +028300020002840200020002840200020002840200020002840200020002840200020002 +840200020002840200020002840200020002840200020002840200020002820200028402 +000200028402000200028202000282020002840200020002840200020002010283000200 +028402000200020102830002000201028300020002010283000200020102830002000201 +028300020002010201000302830002000202020100030283000200020202830002000202 +020100040283000200020402810002040281000205028100020502810002050281000203 +0283010200021a0281000206028100020902810102010281010282020002010281010203 +028100020702 +010001018100010101830001000101018100018301000100810001010181000101010100 +020181000181010001000101810001010102000201810001810100810001010185000100 +010001010181000181010081000182010001840100010001010185000100010001860100 +010001000182010001810100810001820100018101008100018201000181010081000101 +018200010083000100018101000100010182000100810001830100010001008301000100 +010083010001000100830100010001008301000100010083010001000100830100010084 +000100010001008301000100840001000100010081010002008301000100840001000100 +840001000100010081010002008101000200810100020081010002008101000200810100 +020081010002008101000200810100030081010002008101000400810200030081020003 +008101000300810200030081020003008101000300810100030081020002008102000300 +810200020081010002008101000200810100020081010002008101000200810100020081 +010001008102000200830200020084000200020002008102000100830200020084000200 +020001008302000200840002000200010083020002000100830200020001008302000200 +010083020002000100830200020001008302000200010082020002810200010083020002 +000100010282000200010082020002810200810002820200028102000100010282000200 +010001028100028402000200028302000200830002000201028300020002040202000102 +810002810200010003028100020602810002070281000281020083000200020902810002 +010202008101028202000201028300020002020281000281020081000202028101020102 + +8100017f017f012d01810201830102010202028101028202010281020181010203028201 +02013d01820201027f0222028101020e0281010204028101021002 +010005018200010081000104018200010081000104010200050102000501020004010200 +040182000100810001030101000501010004010200030102000301020003018300010001 +020102000301020002018200010081000101018300010001010183000100010101830001 +000101018200010081000183010001008100018301000100830001000182010001830100 +010081000184010001000183010001008300010001820100018401000100018301000100 +840001000100020001010200010102000101020001010200010102000101020001010200 +010102000101020001010200010102000101020081010084000100010001000101020081 +010002008101000200810100040081010002008101000300830100010084000100010084 +000100020002008101000200810100020081010002008101000200810100020081010002 +008101000100810100020083010001008100018101000200810100020087010001000100 +010083000100018101008400010001000100830100010081000183010001008500020002 +010083000200028102008300020002810200810002830200020081000282020002810200 +810002020281000203028100020402810002040281000202028300020002030201008102 +008100028502000200020081000281020081000205028100020402010001020100020201 +000702810002820200020202810002020281000201020100020283000200020602810002 +010282000102020201008502000100010201028100020202840002010200 +010181000101018100010301810001010181000103018100010101810001020181000101 +018100010301830001000103018100018201000102018100018201000106018100010401 +810001050181000104018100010501810001040181000104018100010401810001030181 +00010401810001030181000103018100010401810001020181000103018100017f017f01 +1a0184020102010256028101020502810102050281010284020102010204028101020302 +83010201020102810102020281010208028101020102 +810001030183000100010501830001000104018300010001040183000100010401830001 +000104018300010001030183000100010101810001860100010001000184010001000186 +010001000100010101820001008100010101850001000100018601000100010001860100 +010001000186010001000100018101008300010001860100010001000181010083000100 +018101008300010001810100830001000181010083000100018201000182010001840100 +010001810100830001000184010001000181010083000100018401000100018401000100 +018201000184010001000184010001000183010001008400010001008400010001008400 +010001008400010001000200830100010084000100010002008101000200810100030081 +010082000100020081010082000100840001000100820001008200010003008301000100 +030081010004008101000400810100040081010002008101000100010102000101020081 +010002008101000100010102000101020001010200010102000201010002010100020101 +000201010003018100010201010003018100010201810001030181000102010100030101 +000301010003010100030101000301010003010200030101008101020102010004028100 +021a02810002050281000205028300020002040201000502830002000282020002020281 +000202028300010200810002010285010201020002860201000200020101010100850200 +0100020183010002008100018201000281020186010001000100020002 +060102000601020005010200050102000501020005010100050102000401020004010100 +040102000301020004010100040101000401010003010200030102000201020002018300 +010001010183000100010101020002010200010182000100810001830100010081000181 +010001000101820001008400010001008300010001810100840001000100840001000100 +010001010200010102000101020001010200010102000101010002010100020101000101 +020001010200010101000101020001010200010102008101000100010102008101000200 +810100010081010002008301000100050081010001008301000100820001008400010001 +000100830100010082000100840001000100840001000100010083010001008400010001 +008400010001008200010086000100010001008600010001000100840001000100840001 +0001008600010001000100880001000100010001008a00010001000100010001008a0001 +000100010001000100810001830100010081000183010001008100018301000100810001 +830100010081000182010001810100810001830100010081000182010001810100810001 +820100018101008100018101023802810002140283000201028202000201028100020602 +8401020102018201000102018100010201830001000101018100010101 +7f017f0127018100010a0181000101018100010201810001010181000102018100010101 +810001020181000102018100010101810001020181000101018100010201810001020181 +000102018100010201810001020181000102018100010201810001020181000102018100 +010201810001030181000102018100010301810001030181000102018100010301810001 +030181000103018100010301810001040181000104018100010301810001030184020001 +020101018302000102040281000203028201000230028100020602810002050202018400 +02010201820102010101810001010181020104018100010001 +820100010201010002018100010201810001020181000101010100030181000101018100 +010201810001010181000102018100018101008100010101810001010181000101018100 +010101810001010181000101018100010101810001820100010101810001810100810001 +820100018101008100018201000181010081000101018200010081000182010001820100 +010101820001008100018201000182010001820100018201000182010001820100018201 +000182010001830100010081000183010001008100018401000100018301000100810001 +830100010084000100010084000100010081000184010001000184010001000181010001 +008301000100840001000100840001000100840001000100840001000100820001000300 +810100840001000100820001000300810100820001000300810100020081010001008101 +000500810100070081010006008101000700810100060081010006008101000300810100 +820001000300810100020081010082000100030081010084000100010084000100010084 +000100010082000100020081010002008301000100820001000200830100010084000100 +010084000100010081000183010001008400010001008100018301000100830001000181 +010083000100018201000182010001820100018301000100810001820100018201000101 +018300010001010182000100810001820100018101008100018201000181010081000282 +020002830200010282020002810200810001010182000100810001020183000100010201 +810001830100020183010201020202830102010201028100023602810002030281000201 +0201000102 +040102000101810001020102008201000103010100820100010301020082010001020102 +008201000102018200010081000102010300040102000301010082010001020102000301 +010082010001010182000100810001010101008201000186010001000100018101000200 +010185000100010001810100020083010001000100830100010001008301000100010083 +010001000200010182000100820001000100850100010001008100018101008100010101 +020001010200010102000101020001010200020101000101020001010200010102008101 +000200810100010001010200810100030081010006008101000100010101000101020001 +010200810100010001010200810100010001010200810100010081010005008301000100 +010081010084000100010001008301000100820001000100010102008301000100820001 +000100010102008301000100840001000100820001008400010001008400010001008400 +0100010084000100010084000100010086000100010001008400010001008a0001000100 +0100010001008a0001000100010001000100830001000181010093000100010001000100 +010001000100010001000101018300010001200181020104018102018101028502010201 +020181010201020101020201018202010281020112018102018601020102010201870102 +01020102010282020102820201022902 +820100018401000100010101810001020102000201810001830100010081000101018100 +018101008100010201810001810100010002018200010083000100010101820001000100 +01018100010101010002018100018101008100017f016001810001020181000101018100 +010101810001010181000102018100010101810001010181000101018100010201810001 +010181000102018100010101810001020181000101018100010201810001020181000101 +018100010201810001020181000102018100010201810001020181000102018100010201 +810001030181000102018100010301810001030181000102010100030101000101020085 +010001000100010083010001008600010001000100010001018300010001860100010001 +0001850100010001008300010001860100010001000101018500010001000101018b0201 +000201000201000200018601020102000200830001020101018200010083000100010101 +820001008100018201000101018300010001810102810201850102010200010101810001 +0101830201000208028100020302 +4b0181000101018100018101000100010181000181010081000182010001810100810001 +830100010001000101820001008100010101820001000100830100010081000182010001 +810100810001810100020083010001000100830100010081000183010001008400010001 +000100830100010081000181010002008301000100820001008600010001000100840001 +000100840001000100820001000200810100020081010003008101008200010003008101 +008200010003008101000200810100820001000100810100060081010001008101000700 +810100820001000f0081010010008101000e008101000a00810100060081010082000100 +060081010003008101008200010003008101000200810100820001000200830100010082 +000100030081010001008301000100820001000200830100010084000100010001008101 +000200830100010001008301000100010083010001008100018301000100010089010001 +000100010001000100820100018101008100018301000100010082010001810100810001 +820100018101008100018201000181010001000101810001810100810001820100018101 +000100010181000181010001000101810001840100010001820100018101000100020183 +000201008800010002010002010001000101860200010200010081000182010001010101 +0082010001820100010101010082010001010181000101010100820100010101810002 +820100010101870001000100010001020101008401000100010201020082010001030101 +000101810001010101008401000100010101020082010001020101008201000102018200 +010081000101010200820100010101010082010001010101008201000101010200820100 +018101000100030101008201000181010002000101030001010200830100010002000101 +030001010100870100010001000100820001000100810100020083010001000200810100 +020081010002008101008400010001000200010102008101000100010102000101020081 +010001000101020081010001000101020081010001000101020081010001008101000b00 +810100010081010001008101000100010102008101000100810100010081010001008101 +000f00810100010081010001008101000100810100020081010001008101000100810100 +020081010001008101000100830100010004008101000700810100030081010084000100 +010082000100010001010200830100010082000100020081010002008101000200810100 +010085010001000100840001000100820001000100870100010001000100010083010001 +000100810100010083010001008200010085000100010001030181000104018100010301 +81000159018302010201820102010401810201820102010d01 +820100018101008100010101810001860100010001000182010001830100010081000101 +01870001000100010001820100018301000100810001880100010001000100018d010001 +00010001000100010001008100018301000100850001000100018101008a000100010001 +000100010084000100010084000100010086000100010001008400010001000100850100 +010001000100830100010001008301000100010087010001000100010001008101008200 +010001008101008600010001000100010081010002008101000200810100020081010002 +008101000300810100020083010001000400830100010004008101008200010082000100 +040081010001008101008200010082000100010081010029008101002500810100810001 +010181000101018100017701870001000100010001830100010081000186010001000100 +018601000100010001820100018101008100018201000181010081000182010001840100 +010001820100018101000100010181000181010001000101810001810100010002018500 +010001000101018100018101000100020181000183010001008100018201000181010083 +000100010101810001010183000100010101810001010101008601000102010001010182 +000100810002 +830001000102018100018401000100010201810001820100018201000101018100018401 +000100010101810001840100010001010181000182010001820100018301000100830001 +000185010001000100810001820100018101008100018201000181010086000100010001 +000100010181000181010001000101820001008100018501000100010084000100010001 +008301000100010001018200010081000183010001008400010001000100830100010001 +008501000100010082000100010081010002008301000100810001810100010087010001 +000100010001008501000100010003008101008200010082000100820001008200010003 +008101000100810100820001000100840100010001020181000101018100010101810001 +010181000101018100010101810001480181000181010001008101000100810100060081 +010001008101000100810100010081010001008101000200810100010081010001000101 +020081010001000101020081010001000101830001000181010001008101000200810100 +020081010001000101020002018300010001810100010001010300010102000201020001 +018200010081000101010200020183000100010101020003018300010001010102000301 +010082010001010101008201000102010300030102000301010082010001020101008201 +000102018200010001000401030004010200040101000101810001030101008201000105 +0182000100010006010100810100 +810001030181000181010001000301810001810100010003018100018101008300010001 +820100018101008300010001010181000181010081000102018200010001000201820001 +008300010001830100010001000201010081010081000182010001810100810001010182 +000100810001010185000100010001830100010081000101010200010182000100810001 +830100010001008301000100010001010200010182000100810001810100010002010200 +840100010001030181000134018100010101020081010001008101008200010082000100 +010081010082000100020081010084000100010082000100030081010001008101000100 +810100010081010028008101000100810100010081010001008101000100810100010081 +010001008101000100810100010081010001008101000100810100010001010100010102 +008101000100010102008101000100010102008101000100010102000101020001010200 +010102008401000100018301000100810001810100010001010100820100018101000100 +010103000101020002010200020103000101030001010300020103000201010082010001 +010103000301020003010300020182000100810001030103000301010082010001030101 +008201000103010300020181000184010001000104018200010081000103010200820100 +0105010200820100010201 +830001000182010001010187000100010001000102010100840100010001020102000101 +810001010101008401000100010101020005010100050101005401810001020181000102 +010100830100010082000100020083010001008200010002008101000100010102008101 +000300810100840001000100010081010082000100010081010006008101000100810100 +0100810100090081010001008101000100810100010081010002008101000f0081010021 +008101003200810100820001000100810100030081010082000100030081010082000100 +020081010001008301000100840001000100840001000100840001000100840001000100 +8a0001000100010001000100840001000100810001830100010084000100010001008301 +000100010001010300830100010001000101820001008100018301000100010001018100 +018101008100010101020082010001860100010001000182010001840100010001820100 +018401000100018201000181010081000102018500010001000101018100018401000100 +010401010006018100012101 +010003018100010201810001030181000101010100020101000201810001020181000101 +010100030181000101018400010001008100018101008200010001000201860001000100 +010001008501000100010002008301000100010081010082000100010083010001000500 +810100020001010200830100010001008201000181010083000100018101008400010001 +000100830100010001008301000100020001010200810100820001008200010084000100 +010084000100010002008101000100810100020081010002008101008200010003008301 +0001000400810100010081010001008101000a0081010001008101000100810100010081 +010001008101001600830100010026008101002500810100820001008200010008008101 +008200010082000100030081010082000100030081010002008101008200010084000100 +010002008101000200810100860001000100010088000100010001000100890001000100 +010001000102018100015e01810001030183000100010301810001010183000100010201 +81000181010001000201810001840100010001030181000103010100 +020183000100010101010002010100030181000102010100010101000201830001000182 +010001020101000101010002018100010101810001010101000101810001010185000100 +010001010183000100018201000181010081000181010081000182010001810100810001 +820100018101008100018201000182010001010182000100810001830100010081000182 +010001820100018101008200010084000100010081000181010002008301000100810001 +810100010001018200010084000100010084000100010082000100020081010002008401 +0001000185010001000100010083010001008a0001000100010001000100020081010001 +008101000100810100050081010001008101000100810100080081010001008101000200 +810100020081010003008101000800810100260081010004008101000100810100010081 +010001008101000100810100810001810100820001000100010101000101010001010100 +010101000101010001010200810100010001010100010101000201010001010100020101 +000201010002010100010101000201020002018100010201010002010100010182000100 +820001008200010001008401000100018101000300810100030083010001008200010082 +000100020083010001008300010001810100010082010001810100010001018500010001 +000182010001840100010001820100018401000100018201000183010001008100018201 +000183010001008100018201000183010001008500010001000181010081000102018100 +018601000100010001840100010001810100810001820100018201000101010100030181 +0001 +810001820100010201010001018300010001010101000101810001820100018601000100 +010001820100010101810001840100010001810100830001000182010001810100010082 +010001020101008101000100810100830001000182010001810100010081010082000100 +010081010082000100010081010082000100820001000100820100018101008100018301 +000100010083010001008100018201000181010082000100830001000182010001810100 +020081010083000100018401000100018201000181010001000101820001008700010001 +000100018101000100810100840001000100010081010002008101000600810100010081 +010086000100010001000100810100010085010001000100010081010001008101000100 +810100020083010001000100810100010081010004008101000100810100010081010082 +000100010081010004008101000400810100170081010004008101000100810100820001 +000100810100010081010001008101000100850100010001008200010001008101000100 +810100010081010001008101000100810100820001000100810100030081010001008101 +008200010084000100010004008301000100010001018300010001840100010001840100 +010001820100010201010002018300010001010101000201830001000101018300010001 +010183000100010101830001000101018300010001010182000100810001010182000100 +810001010181000181010081000101018200010081000101018100018201000104010200 +040101000601010006010100060101000501030005010100080101000201810001030101 +0002010000 +010181000182010001820100010101010082010001010181000101010100820100010101 +810001010183000100018201000101018300010001820100010101810001840100010001 +010185000100010001810100850001000100010101830001000188010001000100010001 +820100018101008100010101850001000100018301000100810001820100018201000101 +018100018201000182010001820100018101008400010001000100810100860001000100 +010088000100010001000100860001000100010082000100020083010001008200010084 +000100010001008101008400010001000100810100840001000100010081010082000100 +010081010082000100020081010001008101000100810100820001000300810100010081 +0100030081010002008101005600810100080081010001008101000c0081010001008101 +000100010101000101020081010001008101000100810100010081010084000100010001 +008101000200810100010081010002008101000200810100020081010002008301000100 +810001810100020001018200010082000100830001000183010001008100018101008300 +010001820100018201000181010083000100010101810001820100010101010082010001 +020181000182010001010181000182010001020181000182010001020181000182010001 +020181000181010081000101010100010181000102018100010101010003018100010101 +810001020181000101010100010101000201810001820100010101830001000181010001 +0003010100 +010002018100018201000181010081000182010001010185000100010001820100018401 +000100018601000100010001810100810001820100018801000100010001000182010001 +810100010001018100018201000182010001810100820001008100018301000100830001 +000186010001000100018301000100860001000100010083000100010101810001010186 +000100010001008400010001008100018101008100018301000100860001000100010081 +000183010001008400010001008200010001008301000100840001000100010081010002 +008101008400010001000100810100820001000300830100010004008101000100810100 +010081010001008101000100810100050081010007008101000800810100530081010008 +008101000800810100010081010001008101000100850100010001000100810100010081 +010001008101000100810100020081010001008101000100810100010001010200010102 +008101000100030181000102018100018201000184010001000102018100018201000181 +010001000201020002010200010182000100810001010102000201030002010300020103 +000101850001000100010101820001008100010201010082010001020101008201000102 +010100810100810001010181000181010081000103010100010181000102018500010001 +000103018500010001000103018100018401000100010201830001000101018100010101 +82000100 +810001840100010001010101000301010002010100020102000101010002010100020101 +000201810001010181000102018100010101810001010101000101010002018100010101 +810001010181000181010081000181010081000181010081000182010001010187000100 +010001000101010400810100840001000100010001010100830100010009008101008200 +010002008101000a00810100820001000100810100090081010002008101000b00810100 +040081010014008101007f001d0081010082000100010001018200010082000100810001 +840100010001010181000106010200010102000101010083010001000200010102000101 +820001008100018101000100020102000201030001010100820100018101000100820100 +018101008300010001010101008201000101010100820100010101820001000100020101 +008101008100010101820001000100020185000100010001020101008101008100010201 +850001000100010201840001000100810001020184000100010081000103018400010001 +0081000103018400010001008100010101810001 +810001010182000100820001008300010001820100018201000182010001840100010001 +840100010001830100010085000100010001020101000101810001010182000100830001 +000102018200010081000101018200010001000201020082010001020101008201000101 +01030002010100820100018c010001000100010001000100018101000200010103000201 +020001010300810100020001018200010082000100010001010100830100010001008101 +000200010184000100010001008101008400010001000100810100020083010001000300 +810100010081010001008101000100810100010081010023008101004200810100820001 +000100810100820001000100810100820001000100810100810001810100820001008100 +018101008100018101008200010081000101018100010101810001810100810001810100 +810001010181000101018100010101010081010002000101020081010002008101000900 +810100030081010082000100020083010001000100810100020081010082000100820001 +000300810100010083010001008200010082000100820001000100810100030085010001 +000100820001008100018101008600010001000100810001830100010083000100018101 +00850001000100018301000100810001820100018e010001000100010001000100010001 +820100018301000100810001820100018601000100010001820100010101830001000184 +01000100018201000186010001000100010201010082010001 +010102000701810001860100010001000102018200010083000100010201030082010001 +850100010001008800010001000100010083000100018101000200820100018101008200 +010001000101820001000200010182000100860001000100010002008301000100010001 +018200010003008101000100010104008101000200810100860001000100010003008101 +000200810100020081010002008301000100820001000200810100020081010001008101 +000200810100030081010082000100820001000200810100090081010001008101000100 +8101000f008101004d008101008200010082000100040081010007008101000400810100 +040081010004008101000200830100010001008101000100810100010081010001008301 +000100820001008200010001008101000100810100030081010082000100010081010002 +008101000100010102008101000200810100020081010002000101030081010002000101 +820001008100018101000200810100030081010082000100810001810100020001010400 +010183000100018301000100020083010001000200820100018101008500010001000181 +010001008201000101010100010181000102010100010181000103018100018201000103 +01010001018100010301010008010100080101000701 +830001000182010001020103008401000100010201010082010001820100010101010081 +010001000301030082010001010103008201000101010300820100010101850001000100 +010101040002018200010001000101820001000100010104000101040081010003000101 +020082010001810100020001010200010182000100810001810100010001010300810100 +020001010200810100010001010200010102008101000200810100010081010001000101 +020081010001008101000100010101000101010081010001008101000100810100810001 +810100820001000100810100810001810100820001008100018101008200010081000181 +010082000100820001008200010081000181010082000100820001008200010007008101 +008200010009008101008200010082000100820001008100018201000182010001810100 +820001003600810100130081010007008101008200010005008101000300810100820001 +00820001000200810100840001000100840001000100010083010001008a000100010001 +000100010001008601000100010001810100020083010001008600010001000100010082 +010001840100010001810100820001008100018301000100850001000100018301000100 +810001850100010001000100830100010002008201000183010001008300010001020183 +000100018201000101018100018201000182010001010181000181010083000100010301 +810001810100830001000102018100010101010082010001 +810001020181000186010001000100010101810001820100010101830001000184010001 +000101018200010001000101810001810100830001000182010001820100018201000101 +010200010181000183010001008300010001820100018101000100010182000100850001 +000100018201000181010081000181010084000100010001008201000181010001008301 +000100010083010001000100010105008101000800810100020081010002008101000700 +810100020081010006008101008200010007008101002a00810100820001000400810100 +07008101008200010010008101002c008101000a00810100040081010082000100010081 +010082000100040081010001008101000100810100820001000100810100010001010100 +010101000101010001010200810100810001810100010081010001000101020081010002 +008101008400010001008400010001000100010102000101820001008400010001008400 +010001000100010103008201000181010081000181010083000100010101010084010001 +000181010081000101010300010182000100010002018500010001000101018300010001 +030183000100010301830001000102018200010002000101810001810100830001000101 +018200010001008201000101018100018601000100010001820100010101850001000100 +01020181000186010001000100010101 +810001020181000184010001000101010400030101000101840001000100810001810100 +820001008200010086000100010001000100850100010001000200810100840001000100 +020001010400810100010001018200010084000100010084000100010003008101000500 +810100820001000200810100020081010003008301000100020001010100830100010081 +000183010001000200810100820001000200850100010001008200010084000100010001 +0083010001000400810100820001000100810100010081010001008101000a0081010007 +008101007f001500810100130081010014008101000e0083010001008100018101008200 +010002008201000181010001000201010082010001810100010001010300020103000101 +820001008100010101030002010300020101008101008100010101020083010001008100 +018901000100010001000100030001018200010002008501000100010002008201000184 +010001000184010001000184010001000182010001820100010301820001008300010001 +030181000181010001000101 +830100010001000101810001030102008201000103010100810100830001000103010200 +010181000185010001000100010003018200010001000301030082010001020182000100 +810001010185000100010001840100010001820100010101810001820100018601000100 +010001830100010081000183010001008100018101000100890100010001000100010003 +008101000300810100010085010001000100820001000100810100820001008200010002 +008101000100810100050081010002000101010081010082000100030081010007008101 +000100810100820001000200810100030081010008008101000d00810100840001000100 +8200010045008101000a0081010011008101000100810100080081010001008101000100 +810100020081010082000100010081010001008101000100810100010001010200830100 +010082000100020081010001000101020081010008008101000400810100030081010003 +008101000100810100040081010082000100020083010001008500010001000181010082 +000100810001810100850001000100018101008200010081000101018200010083000100 +018801000100010001000183010001008100018201000184010001000181010081000101 +018700010001000100010201820001000100010101000101010081010001008401000100 +0184010001000182010001 +010185000100010001010181000101010100830100010002000101010005018400010001 +008400010001008100018301000100020001018200010003000301040001010200810100 +810001010185000100010001830100010002000101010081010081000181010082000100 +010081010001008301000100830001000101018200010082000100830001000181010002 +000101030001010300810100010001010300810100020081010006008101000200810100 +010081010082000100020081010001008101001400810100180081010039008101008200 +010082000100820001008200010082000100820001000300810100810001820100018201 +000182010001820100018201000181010082000100810001820100018101008100018101 +008200010004008101008200010001008101000100810100010081010081000181010082 +000100010081010001000101020001010100010101000101010001010200010101000201 +010001018300010001010101000201020002010100020102000201020002018300010001 +010102000201040001010400010104000101020081010081000181010082000100010002 +010400020102008101008100018301000100010082010001810100810001810100010003 +018100018101008300010001010181000181010083000100010301870001000100010001 +020181000181010083000100010301 +810100820001000200030185000100010001010181000101010400810100020001018100 +018101008300010001020102000101020001018100018101000200010184000100010081 +000183010001000300810100820001000100010101008101000100010182000100010001 +018200010001008101000300010104008101000300810100030081010003008101000200 +8101000d008101000f008101000100810100010081010005008101000100810100010081 +010001008101008200010001008101000100810100820001000400810100820001000d00 +81010009008101000600810100060081010008008101008200010082000100820001003b +008101000900810100040081010001008101008200010001008101000100810100010081 +010001008101000100010101000101010001010200010184000100010082000100030001 +010200010102000101010083010001008300010001810100020001010100820100018101 +008300010001810100010002010300020102000201020082010001010181000182010001 +010181000182010001020182000100810001020102008201000101010200010181000102 +018200010083000100010101840001000100810001030182000100020006010300060185 +0001000100010501810001 +010002018100018101000200020182000100030002018100010101010003010200010103 +000401830001000182010001810100810001820100010101020001010100840100010001 +020182000100810001010181000181010081000183010001000200010105008301000100 +0a008101008200010082000100030081010082000100820001000d008101000500810100 +0300850100010001002f00810100070081010071008101001a0081010001008101000800 +810100010081010001008101000100810100010081010002008101000100810100060081 +010002008101000200810100010001010200840100010001850100010001008100018101 +008400010001000100820100018101000200010103000201820001008100018101000100 +820100018101008200010081000101010300030102008201000101010200820100010201 +010081010081000102010100820100010301040005010100810100810001040104000501 +010084010001000104010100810100 +040001018200010001008101000100810100810001810100010081010081000182010001 +810100810001010104000101810001830100010081000181010083000100018101000100 +010101008101000200810100820001000100810100010083010001008200010001008101 +000200810100030082010001810100030001010500810100020081010003008101000800 +810100030001010300810100820001008200010082000100020081010003008101000b00 +8101000a008101007f003c00810100120081010004008301000100040083010001000200 +810100020083010001000500810100030081010001008301000100010001010400810100 +010088010001000100010001810100010082010001810100010082010001830100010002 +008101000200810100810001810100010001018400010001000100810100810001810100 +020082010001010182000100810001820100010101820001008100018201000182010001 +010101000101810001010185000100010001820100010201810001010181000182010001 +01018100010001 +810001010184000100010082000100020082010001810100830001000101018600010001 +000100810001010183000100018201000104010100870100010001000100810001010181 +000182010001820100018101008200010001008101000600810100820001000100850100 +010001000200830100010084000100010082000100880001000100010001000300830100 +010001008101000100830100010004008101000100810100050081010082000100060081 +010005008501000100010002008101007f003c0081010001008101000e00810100140081 +010001000101840001000100020081010002008101008400010001008300010001810100 +020081010082000100820001000200010104008101000100810100020081010001008101 +000100810100010081010001008301000100020081010082000100020001018200010002 +000101020001010200810100880001000100010001008300010001810100010001010100 +010182000100810001810100010082010001020181000183010001008100018101008100 +010101020082010001010101000101 +810001810100030001018100018101008200010082000100810001850100010001008500 +010001000183010001000100810100850001000100018101008300010001810100030002 +018100010201820001008100018101008100010101820001000100010105000101030081 +010082000100010081010084000100010002008101000400810100020001010400810100 +03008101000200810100820001000e008101000a00810100820001000a00810100010081 +01001c008101007f00260081010033008101000500810100010081010002000101040083 +010001000800830100010002008301000100020081010001008101000100820100018101 +000400850100010001000200810100820001008900010001000100010001860100010001 +000182010001810100810001830100010081000102010100020102000101010001018500 +0100010001010183000100018101008300010001 +850001000100018101000200850100010001008200010081000185010001000100860001 +000100010084000100010085000100010001810100020001018100010301010081010002 +000101810001840100010001810100010081010001000101010081010004008201000181 +010001008101008200010004008101000300010102008101000f0001010c008101007f00 +710081010027008101000600810100060081010082000100020081010001008301000100 +840001000100820001008400010001000100810100880001000100010001008200010001 +008501000100010001008301000100010082010001810100840001000100810001010103 +00810100810001810100820001000200820100018101008300010001820100018101008e +000100010001000100010001000100820001008300010001810100010001010100010181 +00010101 +050001018400010001000400810100040081010081000101018200010001008101000200 +810100010002010100810100020001018300010001820100010101010084010001000101 +010200810100070081010001008101000200820100018101000200810100030081010084 +000100010004008101000e008101000100010103008101000f0081010009008301000100 +06008101000d0081010030008101007f0003008101000400830100010004008101008200 +0100080081010082000100010001010a0083010001000700830100010001008101008200 +010081000181010005008101008200010002008101008400010001000400810100020081 +010001008501000100010082000100020081010082000100010083010001008400010001 +008200010002008101008200010081000185010001000100010082010001830100010003 +008201000182010001830100010002008101008300010001820100018201000101018300 +010001820100010101 +0201820001008300010001010181000101010b0081010003008101000800010101008101 +000500810100070082010001830100010001008101008200010081000183010001008100 +018101008200010003008101000400010104008101000400810100070081010003008101 +00080081010021008101007f0068008101000a0081010003008101000800810100020081 +010001008101000300830100010001008301000100090081010004008101000200830100 +010003008301000100840001000100050081010082000100820001000100830100010002 +008201000182010001830100010081000101018100018401000100018101008100018201 +000101010100810100870001000100010001010181000182010001810100820001008100 +01840100010001820100010101 +820001008200010004008101000100010102000101040083010001000200830100010004 +008501000100010002008301000100820001000300810100010081010005008301000100 +010083010001000200810100820001000100810100020081010006008101001600810100 +0c008101000b00810100010081010002008101000200810100050081010002008101000b +008101000e008101005100810100820001008200010064008101001c008101000a008101 +008200010006008101000600810100820001000800810100010081010001008301000100 +010085010001000100030081010003008101008200010001008101008300010001010101 +008101000200830100010081000182010001840100010001830100010001008401000100 +018201000184010001000101018300010001820100018101008200010081000185010001 +000100 +840001000100820001008100018101000100020182000100010085010001000100020081 +01000400810100820001008200010001008101000a008101000200010101008101000500 +810100030001010700810100010081010001008101000200810100820001000b00810100 +080081010005008101007e00840100010001840100010001810100010082010001040181 +0001140182000100820001003e0083010001000f00830100010007008101003800810100 +100081010003008101000400810100070081010006008101000300810100010002010500 +820100018101000300820100018601000100010001820100010101010001010300860100 +0100010001010102000101820001008300010001 + +% +% Compression made this file 28.87% of the uncompressed size. +% + + +showpage + +% stop using temporary dictionary +end + +% restore original state +origstate restore + +%%Trailer + +cleartomark +countdictstack exch sub { end } repeat +restore grestore +% +% End Imported PIC File: frame2.eps +%%EndDocument +% +% Polyline +60.000 slw +n 2430 7110 m 4230 7110 l 4230 8280 l 2430 8280 l + cp gs col6 s gr +$F2psEnd +rs diff --git a/.svn/pristine/6f/6fd7cb3c4211b2cd18c5f707b7d235f336fd6575.svn-base b/.svn/pristine/6f/6fd7cb3c4211b2cd18c5f707b7d235f336fd6575.svn-base new file mode 100644 index 0000000..9d198f6 --- /dev/null +++ b/.svn/pristine/6f/6fd7cb3c4211b2cd18c5f707b7d235f336fd6575.svn-base @@ -0,0 +1,518 @@ +/**************************************************************************** + + GLUI User Interface Toolkit + --------------------------- + + glui_translation - GLUI_Translation control class + + + -------------------------------------------------- + + Copyright (c) 1998 Paul Rademacher + + This program is freely distributable without licensing fees and is + provided without guarantee or warrantee expressed or implied. This + program is -not- in the public domain. + +*****************************************************************************/ + +#include "glui.h" +#include "stdinc.h" +#include "algebra3.h" + +/********************** GLUI_Translation::iaction_mouse_down_handler() ***/ +/* These are really in local coords (5/10/99) */ + +int GLUI_Translation::iaction_mouse_down_handler( int local_x, + int local_y ) +{ + int center_x, center_y; + + down_x = local_x; + down_y = local_y; + + if ( trans_type == GLUI_TRANSLATION_XY ) { + orig_x = float_array_val[0]; + orig_y = float_array_val[1]; + + /** Check if the Alt key is down, which means lock to an axis **/ + + center_x = w/2; + center_y = (h-18)/2; + + if ( glui->curr_modifiers & GLUT_ACTIVE_ALT ) { + if ( ABS(local_y-center_y) > ABS(local_x-center_x) ) { + locked = GLUI_TRANSLATION_LOCK_Y; + glutSetCursor( GLUT_CURSOR_UP_DOWN ); + } + else { + locked = GLUI_TRANSLATION_LOCK_X; + glutSetCursor( GLUT_CURSOR_LEFT_RIGHT ); + } + } + else { + locked = GLUI_TRANSLATION_LOCK_NONE; + glutSetCursor( GLUT_CURSOR_SPRAY ); + } + } + else if ( trans_type == GLUI_TRANSLATION_X ) { + glutSetCursor( GLUT_CURSOR_LEFT_RIGHT ); + orig_x = float_array_val[0]; + } + else if ( trans_type == GLUI_TRANSLATION_Y ) { + glutSetCursor( GLUT_CURSOR_UP_DOWN ); + orig_y = float_array_val[0]; + } + else if ( trans_type == GLUI_TRANSLATION_Z ) { + glutSetCursor( GLUT_CURSOR_UP_DOWN ); + orig_z = float_array_val[0]; + } + + trans_mouse_code = 1; + translate_and_draw_front(); + + return false; +} + + +/*********************** GLUI_Translation::iaction_mouse_up_handler() **********/ + +int GLUI_Translation::iaction_mouse_up_handler( int local_x, int local_y, + int inside ) +{ + trans_mouse_code = GLUI_TRANSLATION_MOUSE_NONE; + locked = GLUI_TRANSLATION_LOCK_NONE; + + translate_and_draw_front(); + + return false; +} + + +/******************* GLUI_Translation::iaction_mouse_held_down_handler() ******/ + +int GLUI_Translation::iaction_mouse_held_down_handler( int local_x, int local_y, + int inside) +{ + float x_off, y_off; + float off_array[2]; + + x_off = scale_factor * (float)(local_x - down_x); + y_off = -scale_factor * (float)(local_y - down_y); + + if ( glui->curr_modifiers & GLUT_ACTIVE_SHIFT ) { + x_off *= 100.0f; + y_off *= 100.0f; + } + else if ( glui->curr_modifiers & GLUT_ACTIVE_CTRL ) { + x_off *= .01f; + y_off *= .01f; + } + + + if ( trans_type == GLUI_TRANSLATION_XY ) { + + if ( locked == GLUI_TRANSLATION_LOCK_X ) + y_off = 0.0; + else if ( locked == GLUI_TRANSLATION_LOCK_Y ) + x_off = 0.0; + + off_array[0] = x_off + orig_x; + off_array[1] = y_off + orig_y; + } + else if ( trans_type == GLUI_TRANSLATION_X ) { + off_array[0] = x_off + orig_x; + } + else if ( trans_type == GLUI_TRANSLATION_Y ) { + off_array[0] = y_off + orig_y; + } + else if ( trans_type == GLUI_TRANSLATION_Z ) { + off_array[0] = y_off + orig_z; + } + + set_float_array_val( (float*) &off_array[0] ); + + return false; +} + + +/******************** GLUI_Translation::iaction_draw_active_area_persp() **************/ + +void GLUI_Translation::iaction_draw_active_area_persp( void ) +{ + if ( NOT can_draw() ) + return; +} + + +/******************** GLUI_Translation::iaction_draw_active_area_ortho() **********/ + +void GLUI_Translation::iaction_draw_active_area_ortho( void ) +{ + if ( NOT can_draw() ) + return; + + /********* Draw emboss circles around arcball control *********/ + float radius; + radius = (float)(h-22)/2.0; /* MIN((float)w/2.0, (float)h/2.0); */ + glLineWidth( 1.0 ); + + draw_emboss_box( (int) -radius-2, (int)radius+2, + (int)-radius-2, (int)radius+2 ); + + glMatrixMode( GL_MODELVIEW ); + glPushMatrix(); + glTranslatef( .5, .5, .5 ); + /* glScalef( radius-1.0, radius-1.0, radius-1.0 ); */ + if ( trans_type == GLUI_TRANSLATION_Z ) + draw_2d_z_arrows((int)radius-1); + else if ( trans_type == GLUI_TRANSLATION_XY ) + draw_2d_xy_arrows((int)radius-1); + else if ( trans_type == GLUI_TRANSLATION_X ) + draw_2d_x_arrows((int)radius-1); + else if ( trans_type == GLUI_TRANSLATION_Y ) + draw_2d_y_arrows((int)radius-1); + + glPopMatrix(); +} + + +/******************************** GLUI_Translation::iaction_dump() **********/ + +void GLUI_Translation::iaction_dump( FILE *output ) +{ +} + + +/******************** GLUI_Translation::iaction_special_handler() **********/ + +int GLUI_Translation::iaction_special_handler( int key,int modifiers ) +{ + + return false; +} + + + +/*************************** GLUI_Translation::draw_2d_z_arrows() **************/ + +void GLUI_Translation::draw_2d_z_arrows( int radius ) +{ + if ( trans_mouse_code != GLUI_TRANSLATION_MOUSE_NONE ) { + draw_2d_arrow(radius, true, 2); + draw_2d_arrow(radius, true, 0); + } + else { + draw_2d_arrow(radius, false, 2); + draw_2d_arrow(radius, false, 0); + } +} + + +/*************************** GLUI_Translation::draw_2d_x_arrows() **************/ + +void GLUI_Translation::draw_2d_x_arrows( int radius ) +{ + if ( trans_mouse_code != GLUI_TRANSLATION_MOUSE_NONE ) { + draw_2d_arrow(radius, true, 1); + draw_2d_arrow(radius, true, 3); + } + else { + draw_2d_arrow(radius, false, 1); + draw_2d_arrow(radius, false, 3); + } +} + + +/*************************** GLUI_Translation::draw_2d_y_arrows() **************/ + +void GLUI_Translation::draw_2d_y_arrows( int radius ) +{ + if ( trans_mouse_code != GLUI_TRANSLATION_MOUSE_NONE ) { + draw_2d_arrow(radius, true, 0); + draw_2d_arrow(radius, true, 2); + } + else { + draw_2d_arrow(radius, false, 0); + draw_2d_arrow(radius, false, 2); + } +} + + +/************************** GLUI_Translation::draw_2d_xy_arrows() **************/ + +void GLUI_Translation::draw_2d_xy_arrows( int radius) +{ + if ( trans_mouse_code != GLUI_TRANSLATION_MOUSE_NONE ) { + if ( locked == GLUI_TRANSLATION_LOCK_X ) { + draw_2d_arrow(radius, false, 0); + draw_2d_arrow(radius, false, 2); + draw_2d_arrow(radius, true, 1); + draw_2d_arrow(radius, true, 3); + } + else if ( locked == GLUI_TRANSLATION_LOCK_Y ) { + draw_2d_arrow(radius, false, 1); + draw_2d_arrow(radius, false, 3); + draw_2d_arrow(radius, true, 0); + draw_2d_arrow(radius, true, 2); + } + else { + draw_2d_arrow(radius, true, 0); + draw_2d_arrow(radius, true, 1); + draw_2d_arrow(radius, true, 2); + draw_2d_arrow(radius, true, 3); + } + } + else { + draw_2d_arrow(radius, false, 0); + draw_2d_arrow(radius, false, 1); + draw_2d_arrow(radius, false, 2); + draw_2d_arrow(radius, false, 3); + } + + return; +} + + +/*************************** GLUI_Translation::draw_2d_arrow() **************/ +/* ori: 0=up, 1=left, 2=down, 3=right */ +/* */ +/* */ +/* 0, y2 */ +/* / \ */ +/* / \ */ +/* / \ */ +/* / \ */ +/* / \ */ +/* / \ */ +/* / \ */ +/* / \ */ +/* -x2,y1 -x1b,y1 x1b,y1 x2,y1 */ +/* | | */ +/* | | */ +/* | | */ +/* | | */ +/* | | */ +/* -x1a,y0 x1a,y0 */ +/* */ + + +void GLUI_Translation::draw_2d_arrow( int radius, int filled, int orientation ) +{ + float x1 = .2, x2 = .4, y1 = .54, y2 = .94, y0; + float x1a, x1b; +/* + vec3 col1( 0.0, 0.0, 0.0 ), col2( .45, .45, .45 ), + col3( .7, .7, .7 ), col4( 1.0, 1.0, 1.0 ); + vec3 c1, c2, c3, c4, c5, c6; +*/ + vec3 white(1.0,1.0,1.0), black(0.0,0.0,0.0), gray(.45,.45,.45), + bkgd(.7,.7,.7); + int c_off=0; /* color index offset */ + + if ( glui ) + bkgd.set(glui->bkgd_color_f[0], + glui->bkgd_color_f[1], + glui->bkgd_color_f[2]); + + /* bkgd[0] = 255.0; bkgd[1] = 0; */ + + /** The following 8 colors define the shading of an octagon, in + clockwise order, starting from the upstroke on the left **/ + /** This is for an outside and inside octagons **/ + vec3 colors_out[]={white, white, white, gray, black, black, black, gray}; + vec3 colors_in[] ={bkgd,white,bkgd,gray,gray,gray,gray,gray}; + +#define SET_COL_OUT(i) glColor3fv((float*) &colors_out[(i)%8][0]); +#define SET_COL_IN(i) glColor3fv((float*) &colors_in[(i)%8][0]); + + x1 = (float)radius * .2; + x2 = x1 * 2; + y1 = (float)radius * .54; + y2 = y1 + x2; + x1a = x1; + x1b = x1; + + glMatrixMode(GL_MODELVIEW); + glPushMatrix(); + +#define DRAW_SEG( xa,ya,xb,yb ) glVertex2f(xa,ya); glVertex2f(xb,yb); + + glScalef( -1.0, 1.0, 1.0 ); + + if ( orientation == 2 ) { + c_off = 4; + } + else if ( orientation == 0 ) { + c_off = 0; + glRotatef( 180.0, 0.0, 0.0, 1.0 ); + } + else if ( orientation == 1 ) { + c_off = 2; + glRotatef( 90.0, 0.0, 0.0, 1.0 ); + } + else if ( orientation == 3 ) { + c_off = 6; + glRotatef( -90.0, 0.0, 0.0, 1.0 ); + } + + if ( trans_type == GLUI_TRANSLATION_Z ) + y0 = 0.0; + else if ( trans_type == GLUI_TRANSLATION_XY ) + y0 = x1; + else + y0 = 0.0; + + + if ( trans_type == GLUI_TRANSLATION_Z ) { + if ( orientation == 0 ) { + y1 += 2.0; + y2 += 0.0; + + x1b -= 2.0; + x2 -= 2.0; + x1a += 2.0; + } + else if ( orientation == 2 ) { + y1 -= 6.0; + x1a += 2.0; + x1b += 4.0; + x2 += 6.0; + } + } + + /*** Fill in inside of arrow ***/ + if ( NOT filled ) { /*** Means button is up - control is not clicked ***/ + /*glColor3f( .8, .8, .8 ); */ + set_to_bkgd_color(); + glColor3f( bkgd[0]+.07, bkgd[1]+.07, bkgd[2]+.07 ); + } + else { /*** Button is down on control ***/ + glColor3f( .6, .6, .6 ); + c_off += 4; /* Indents the shadows - goes from a raised look to embossed */ + } + + /*** Check if control is enabled or not ***/ + if ( NOT enabled ) { + set_to_bkgd_color(); + /*c_off += 4; -- Indents the shadows - goes from a raised look to embossed */ + colors_out[0] = colors_out[1] = colors_out[2] = colors_out[7] = gray; + colors_out[3] = colors_out[4] = colors_out[5] = colors_out[6] = white; + colors_in[0] = colors_in[1] = colors_in[2] = colors_in[7] = white; + colors_in[3] = colors_in[4] = colors_in[5] = colors_in[6] = gray; + + } + + glBegin( GL_POLYGON ); + glVertex2f( 0.0, 0.0 ); glVertex2f( -x1a, 0.0 ); + glVertex2f( -x1a, 0.0 ); glVertex2f( -x1b, y1 ); + glVertex2f( x1b, y1); glVertex2f( x1a, 0.0 ); + glVertex2f( x1a, 0.0 ); glVertex2f( 0.0, 0.0 ); + glEnd(); + glBegin( GL_TRIANGLES ); + glVertex2f( -x2, y1 ); glVertex2f( 0.0, y2 ); glVertex2f( x2, y1 ); + glEnd(); + + glLineWidth( 1.0 ); + /*** Draw arrow outline ***/ + glBegin( GL_LINES ); + + SET_COL_IN(1+c_off); DRAW_SEG( 0.0, y2-1.0, -x2, y1-1.0 ); + SET_COL_IN(6+c_off); DRAW_SEG( -x2+2.0, y1+1.0, -x1b+1.0, y1+1.0 ); + SET_COL_IN(0+c_off); DRAW_SEG( -x1b+1.0, y1+1.0, -x1a+1.0, y0 ); + SET_COL_IN(3+c_off); DRAW_SEG( 0.0, y2-1.0, x2, y1-1.0 ); + SET_COL_IN(6+c_off); DRAW_SEG( x2-1.0, y1+1.0, x1b-1.0, y1+1.0 ); + SET_COL_IN(4+c_off); DRAW_SEG( x1b-1.0, y1+1.0, x1a-1.0, y0 ); + + SET_COL_OUT(0+c_off); DRAW_SEG( -x1a, y0, -x1b, y1 ); + SET_COL_OUT(6+c_off); DRAW_SEG( -x1b, y1, -x2, y1 ); + SET_COL_OUT(1+c_off); DRAW_SEG( -x2, y1, 0.0, y2 ); + SET_COL_OUT(3+c_off); DRAW_SEG( 0.0, y2, x2, y1 ); + SET_COL_OUT(6+c_off); DRAW_SEG( x2, y1, x1b, y1 ); + SET_COL_OUT(4+c_off); DRAW_SEG( x1b, y1, x1a, y0 ); + + glEnd(); + +#undef DRAW_SEG + + glPopMatrix(); +} + + +/*************************** GLUI_Translation::get_mouse_code() *************/ + +int GLUI_Translation::get_mouse_code( int x, int y ) +{ + if ( x == 0 AND y < 0 ) + return GLUI_TRANSLATION_MOUSE_DOWN; + else if ( x == 0 AND y > 0 ) + return GLUI_TRANSLATION_MOUSE_UP; + else if ( x > 0 AND y == 0 ) + return GLUI_TRANSLATION_MOUSE_LEFT; + else if ( x < 0 AND y == 0 ) + return GLUI_TRANSLATION_MOUSE_RIGHT; + else if ( x < 0 AND y < 0 ) + return GLUI_TRANSLATION_MOUSE_DOWN_LEFT; + else if ( x < 0 AND y > 0 ) + return GLUI_TRANSLATION_MOUSE_DOWN_RIGHT; + else if ( x > 0 AND y < 0 ) + return GLUI_TRANSLATION_MOUSE_UP_LEFT; + else if ( x > 0 AND y > 0 ) + return GLUI_TRANSLATION_MOUSE_UP_RIGHT; + + + return GLUI_TRANSLATION_MOUSE_NONE; +} + + +/*********************************** GLUI_Translation::set_x() ******/ + +void GLUI_Translation::set_x( float val ) +{ + set_one_val( val, 0 ); +} + + +/*********************************** GLUI_Translation::set_y() ******/ + +void GLUI_Translation::set_y( float val ) +{ + if ( trans_type == GLUI_TRANSLATION_XY ) + set_one_val( val, 1 ); + else + set_one_val( val, 0 ); +} + + +/*********************************** GLUI_Translation::set_z() ******/ + +void GLUI_Translation::set_z( float val ) +{ + set_one_val( val, 0 ); +} + + +/******************************* GLUI_Translation::set_one_val() ****/ + +void GLUI_Translation::set_one_val( float val, int index ) +{ + float *fp; + + float_array_val[index] = val; /* set value in array */ + + /*** The code below is like output_live, except it only operates on + a single member of the float array (given by 'index') instead of + outputting the entire array ****/ + + if ( ptr_val == NULL OR NOT live_inited ) + return; + + fp = (float*) ptr_val; + fp[index] = float_array_val[index]; + last_live_float_array[index] = float_array_val[index]; + + /** Update the main gfx window? **/ + if ( this->glui != NULL ) { + this->glui->post_update_main_gfx(); + } +} diff --git a/.svn/pristine/6f/6ff1388b98f3bc0e207efaf471418c481ba2fd2a.svn-base b/.svn/pristine/6f/6ff1388b98f3bc0e207efaf471418c481ba2fd2a.svn-base new file mode 100644 index 0000000..5839d88 --- /dev/null +++ b/.svn/pristine/6f/6ff1388b98f3bc0e207efaf471418c481ba2fd2a.svn-base @@ -0,0 +1,22 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 2.8 + +# Relative path conversion top directories. +SET(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/dborrman/Jacobs/software/slam6d/trunk") +SET(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/dborrman/Jacobs/software/slam6d/trunk") + +# Force unix paths in dependencies. +SET(CMAKE_FORCE_UNIX_PATHS 1) + +# The C and CXX include file search paths: +SET(CMAKE_C_INCLUDE_PATH + "/usr/include/opencv" + ) +SET(CMAKE_CXX_INCLUDE_PATH ${CMAKE_C_INCLUDE_PATH}) +SET(CMAKE_Fortran_INCLUDE_PATH ${CMAKE_C_INCLUDE_PATH}) + +# The C and CXX include file regular expressions for this directory. +SET(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +SET(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +SET(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +SET(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/.svn/pristine/70/700c1d451bb3afcf18070c2a847db45943f91ecf.svn-base b/.svn/pristine/70/700c1d451bb3afcf18070c2a847db45943f91ecf.svn-base new file mode 100644 index 0000000..38b47d9 --- /dev/null +++ b/.svn/pristine/70/700c1d451bb3afcf18070c2a847db45943f91ecf.svn-base @@ -0,0 +1,786 @@ +/* + * scan implementation + * + * Copyright (C) Andreas Nuechter, Kai Lingemann, Dorit Borrmann, Jan Elseberg, Thomas Escher + * + * Released under the GPL version 3. + * + */ + +#include "slam6d/scan.h" + +#include "slam6d/basicScan.h" +#include "slam6d/managedScan.h" +#include "slam6d/metaScan.h" +#include "slam6d/searchTree.h" +#include "slam6d/kd.h" +#include "slam6d/Boctree.h" +#include "slam6d/globals.icc" + +#ifdef WITH_METRICS +#include "slam6d/metrics.h" +#endif + +#ifdef _MSC_VER +#define _NO_PARALLEL_READ +#endif + +#ifdef __APPLE__ +#define _NO_PARALLEL_READ +#endif + +using std::vector; + + +vector Scan::allScans; +bool Scan::scanserver = false; + + +void Scan::openDirectory(bool scanserver, const std::string& path, IOType type, + int start, int end) +{ + Scan::scanserver = scanserver; + if(scanserver) + ManagedScan::openDirectory(path, type, start, end); + else + BasicScan::openDirectory(path, type, start, end); +} + +void Scan::closeDirectory() +{ + if(scanserver) + ManagedScan::closeDirectory(); + else + BasicScan::closeDirectory(); +} + +Scan::Scan() +{ + unsigned int i; + + // pose and transformations + for(i = 0; i < 3; ++i) rPos[i] = 0; + for(i = 0; i < 3; ++i) rPosTheta[i] = 0; + for(i = 0; i < 4; ++i) rQuat[i] = 0; + M4identity(transMat); + M4identity(transMatOrg); + M4identity(dalignxf); + + // trees and reduction methods + cuda_enabled = false; + nns_method = -1; + kd = 0; + ann_kd_tree = 0; + + // reduction on-demand + reduction_voxelSize = 0.0; + reduction_nrpts = 0; + reduction_pointtype = PointType(); + + // flags + m_has_reduced = false; + + // octtree + octtree_reduction_voxelSize = 0.0; + octtree_voxelSize = 0.0; + octtree_pointtype = PointType(); + octtree_loadOct = false; + octtree_saveOct = false; +} + +Scan::~Scan() +{ + if(kd) delete kd; +} + +void Scan::setReductionParameter(double voxelSize, int nrpts, PointType pointtype) +{ + reduction_voxelSize = voxelSize; + reduction_nrpts = nrpts; + reduction_pointtype = pointtype; +} + +void Scan::setSearchTreeParameter(int nns_method, bool cuda_enabled) +{ + searchtree_nnstype = nns_method; + searchtree_cuda_enabled = cuda_enabled; +} + +void Scan::setOcttreeParameter(double reduction_voxelSize, double voxelSize, PointType pointtype, bool loadOct, bool saveOct) +{ + octtree_reduction_voxelSize = reduction_voxelSize; + octtree_voxelSize = voxelSize; + octtree_pointtype = pointtype; + octtree_loadOct = loadOct; + octtree_saveOct = saveOct; +} + +void Scan::clear(unsigned int types) +{ + if(types & DATA_XYZ) clear("xyz"); + if(types & DATA_RGB) clear("rgb"); + if(types & DATA_REFLECTANCE) clear("reflectance"); + if(types & DATA_AMPLITUDE) clear("amplitude"); + if(types & DATA_TYPE) clear("type"); + if(types & DATA_DEVIATION) clear("deviation"); +} + +SearchTree* Scan::getSearchTree() +{ + // if the search tree hasn't been created yet, calculate everything + if(kd == 0) { + createSearchTree(); + } + return kd; +} + +void Scan::toGlobal() { + calcReducedPoints(); + transform(transMatOrg, INVALID); +} + +/** + * Computes a search tree depending on the type. + */ +void Scan::createSearchTree() +{ + // multiple threads will call this function at the same time because they all work on one pair of Scans, just let the first one (who sees a nullpointer) do the creation +// boost::lock_guard lock(m_mutex_create_tree); + if(kd != 0) return; + + // make sure the original points are created before starting the measurement + DataXYZ xyz_orig(get("xyz reduced original")); + +#ifdef WITH_METRICS + Timer tc = ClientMetric::create_tree_time.start(); +#endif //WITH_METRICS + + createSearchTreePrivate(); + +#ifdef WITH_METRICS + ClientMetric::create_tree_time.end(tc); +#endif //WITH_METRICS +} + +void Scan::calcReducedOnDemand() +{ + // multiple threads will call this function at the same time because they all work on one pair of Scans, just let the first one (who sees count as zero) do the reduction +// boost::lock_guard lock(m_mutex_reduction); + if(m_has_reduced) return; + +#ifdef WITH_METRICS + Timer t = ClientMetric::on_demand_reduction_time.start(); +#endif //WITH_METRICS + + calcReducedOnDemandPrivate(); + + m_has_reduced = true; + +#ifdef WITH_METRICS + ClientMetric::on_demand_reduction_time.end(t); +#endif //WITH_METRICS +} + +void Scan::copyReducedToOriginal() +{ +#ifdef WITH_METRICS + Timer t = ClientMetric::copy_original_time.start(); +#endif //WITH_METRICS + + DataXYZ xyz_r(get("xyz reduced")); + unsigned int size = xyz_r.size(); + DataXYZ xyz_r_orig(create("xyz reduced original", sizeof(double)*3*size)); + for(unsigned int i = 0; i < size; ++i) { + for(unsigned int j = 0; j < 3; ++j) { + xyz_r_orig[i][j] = xyz_r[i][j]; + } + } + +#ifdef WITH_METRICS + ClientMetric::copy_original_time.end(t); +#endif //WITH_METRICS +} + +void Scan::copyOriginalToReduced() +{ +#ifdef WITH_METRICS + Timer t = ClientMetric::copy_original_time.start(); +#endif //WITH_METRICS + + DataXYZ xyz_r_orig(get("xyz reduced original")); + unsigned int size = xyz_r_orig.size(); + DataXYZ xyz_r(create("xyz reduced", sizeof(double)*3*size)); + for(unsigned int i = 0; i < size; ++i) { + for(unsigned int j = 0; j < 3; ++j) { + xyz_r[i][j] = xyz_r_orig[i][j]; + } + } + +#ifdef WITH_METRICS + ClientMetric::copy_original_time.end(t); +#endif //WITH_METRICS +} + + + +/** + * Computes an octtree of the current scan, then getting the + * reduced points as the centers of the octree voxels. + */ +void Scan::calcReducedPoints() +{ +#ifdef WITH_METRICS + Timer t = ClientMetric::scan_load_time.start(); +#endif //WITH_METRICS + + // get xyz to start the scan load, separated here for time measurement + DataXYZ xyz(get("xyz")); + + // if the scan hasn't been loaded we can't calculate anything + if(xyz.size() == 0) + throw runtime_error("Could not calculate reduced points, XYZ data is empty"); + +#ifdef WITH_METRICS + ClientMetric::scan_load_time.end(t); + Timer tl = ClientMetric::calc_reduced_points_time.start(); +#endif //WITH_METRICS + + // no reduction needed + // copy vector of points to array of points to avoid + // further copying + if(reduction_voxelSize <= 0.0) { + // copy the points + DataXYZ xyz_r(create("xyz reduced", sizeof(double)*3*xyz.size())); + for(unsigned int i = 0; i < xyz.size(); ++i) { + for(unsigned int j = 0; j < 3; ++j) { + xyz_r[i][j] = xyz[i][j]; + } + } + } else { + // start reduction + + // build octree-tree from CurrentScan + // put full data into the octtree + BOctTree *oct = new BOctTree(PointerArray(xyz).get(), + xyz.size(), reduction_voxelSize, reduction_pointtype); + + vector center; + center.clear(); + + if (reduction_nrpts > 0) { + if (reduction_nrpts == 1) { + oct->GetOctTreeRandom(center); + } else { + oct->GetOctTreeRandom(center, reduction_nrpts); + } + } else { + oct->GetOctTreeCenter(center); + } + + // storing it as reduced scan + unsigned int size = center.size(); + DataXYZ xyz_r(create("xyz reduced", sizeof(double)*3*size)); + for(unsigned int i = 0; i < size; ++i) { + for(unsigned int j = 0; j < 3; ++j) { + xyz_r[i][j] = center[i][j]; + } + } + + delete oct; + } + +#ifdef WITH_METRICS + ClientMetric::calc_reduced_points_time.end(tl); +#endif //WITH_METRICS +} + +/** + * Merges the scan's intrinsic coordinates with the robot position. + * @param prevScan The scan that's transformation is extrapolated, + * i.e., odometry extrapolation + * + * For additional information see the following paper (jfr2007.pdf): + * + * Andreas N眉chter, Kai Lingemann, Joachim Hertzberg, and Hartmut Surmann, + * 6D SLAM - 3D Mapping Outdoor Environments Journal of Field Robotics (JFR), + * Special Issue on Quantitative Performance Evaluation of Robotic and Intelligent + * Systems, Wiley & Son, ISSN 1556-4959, Volume 24, Issue 8-9, pages 699 - 722, + * August/September, 2007 + * + */ +void Scan::mergeCoordinatesWithRoboterPosition(Scan* prevScan) +{ + double tempMat[16], deltaMat[16]; + M4inv(prevScan->get_transMatOrg(), tempMat); + MMult(prevScan->get_transMat(), tempMat, deltaMat); + transform(deltaMat, INVALID); //apply delta transformation of the previous scan +} + +/** + * The method transforms all points with the given transformation matrix. + */ +void Scan::transformAll(const double alignxf[16]) +{ + DataXYZ xyz(get("xyz")); + unsigned int i=0 ; +// #pragma omp parallel for + for(; i < xyz.size(); ++i) { + transform3(alignxf, xyz[i]); + } + // TODO: test for ManagedScan compability, may need a touch("xyz") to mark saving the new values +} + +//! Internal function of transform which alters the reduced points +void Scan::transformReduced(const double alignxf[16]) +{ +#ifdef WITH_METRICS + Timer t = ClientMetric::transform_time.start(); +#endif //WITH_METRICS + + DataXYZ xyz_r(get("xyz reduced")); + unsigned int i=0; + // #pragma omp parallel for + for( ; i < xyz_r.size(); ++i) { + transform3(alignxf, xyz_r[i]); + } + +#ifdef WITH_METRICS + ClientMetric::transform_time.end(t); +#endif //WITH_METRICS +} + +//! Internal function of transform which handles the matrices +void Scan::transformMatrix(const double alignxf[16]) +{ + double tempxf[16]; + + // apply alignxf to transMat and update pose vectors + MMult(alignxf, transMat, tempxf); + memcpy(transMat, tempxf, sizeof(transMat)); + Matrix4ToEuler(transMat, rPosTheta, rPos); + Matrix4ToQuat(transMat, rQuat); + +#ifdef DEBUG + cerr << "(" << rPos[0] << ", " << rPos[1] << ", " << rPos[2] << ", " + << rPosTheta[0] << ", " << rPosTheta[1] << ", " << rPosTheta[2] << ")" << endl; + + cerr << transMat << endl; +#endif + + // apply alignxf to dalignxf + MMult(alignxf, dalignxf, tempxf); + memcpy(dalignxf, tempxf, sizeof(transMat)); +} + +/** + * Transforms the scan by a given transformation and writes a new frame. The idea + * is to write for every transformation in all files, such that the show program + * is able to determine, whcih scans have to be drawn in which color. Hidden scans + * (or later processed scans) are written with INVALID. + * + * @param alignxf Transformation matrix + * @param colour Specifies which colour should the written to the frames file + * @param islum Is the transformtion part of LUM, i.e., all scans are transformed? + * In this case only LUM transformation is stored, otherwise all scans are processed + * -1 no transformation is stored + * 0 ICP transformation + * 1 LUM transformation, all scans except last scan + * 2 LUM transformation, last scan only + */ +void Scan::transform(const double alignxf[16], const AlgoType type, int islum) +{ + MetaScan* meta = dynamic_cast(this); + + if(meta) { + for(unsigned int i = 0; i < meta->size(); ++i) { + meta->getScan(i)->transform(alignxf, type, -1); + } + } + +#ifdef TRANSFORM_ALL_POINTS + transformAll(alignxf); +#endif //TRANSFORM_ALL_POINTS + +#ifdef DEBUG + cerr << alignxf << endl; + cerr << "(" << rPos[0] << ", " << rPos[1] << ", " << rPos[2] << ", " + << rPosTheta[0] << ", " << rPosTheta[1] << ", " << rPosTheta[2] << ") ---> "; +#endif + + // transform points + transformReduced(alignxf); + + // update matrices + transformMatrix(alignxf); + + // store transformation in frames + if(type != INVALID) { +#ifdef WITH_METRICS + Timer t = ClientMetric::add_frames_time.start(); +#endif //WITH_METRICS + bool in_meta; + MetaScan* meta = dynamic_cast(this); + int found = 0; + unsigned int scans_size = allScans.size(); + + switch (islum) { + case -1: + // write no tranformation + break; + case 0: + for(unsigned int i = 0; i < scans_size; ++i) { + Scan* scan = allScans[i]; + in_meta = false; + if(meta) { + for(unsigned int j = 0; j < meta->size(); ++j) { + if(meta->getScan(j) == scan) { + found = i; + in_meta = true; + } + } + } + + if(scan == this || in_meta) { + found = i; + scan->addFrame(type); + } else { + if(found == 0) { + scan->addFrame(ICPINACTIVE); + } else { + scan->addFrame(INVALID); + } + } + } + break; + case 1: + addFrame(type); + break; + case 2: + for(unsigned int i = 0; i < scans_size; ++i) { + Scan* scan = allScans[i]; + if(scan == this) { + found = i; + addFrame(type); + allScans[0]->addFrame(type); + continue; + } + if (found != 0) { + scan->addFrame(INVALID); + } + } + break; + default: + cerr << "invalid point transformation mode" << endl; + } + +#ifdef WITH_METRICS + ClientMetric::add_frames_time.end(t); +#endif //WITH_METRICS + } +} + +/** + * Transforms the scan by a given transformation and writes a new frame. The idea + * is to write for every transformation in all files, such that the show program + * is able to determine, whcih scans have to be drawn in which color. Hidden scans + * (or later processed scans) are written with INVALID. + * + * @param alignQuat Quaternion for the rotation + * @param alignt Translation vector + * @param colour Specifies which colour should the written to the frames file + * @param islum Is the transformtion part of LUM, i.e., all scans are transformed? + * In this case only LUM transformation is stored, otherwise all scans are processed + * -1 no transformation is stored + * 0 ICP transformation + * 1 LUM transformation, all scans except last scan + * 2 LUM transformation, last scan only + */ +void Scan::transform(const double alignQuat[4], const double alignt[3], + const AlgoType type, int islum) +{ + double alignxf[16]; + QuatToMatrix4(alignQuat, alignt, alignxf); + transform(alignxf, type, islum); +} + +/** + * Transforms the scan, so that the given Matrix + * prepresent the next pose. + * + * @param alignxf Transformation matrix to which this scan will be set to + * @param islum Is the transformation part of LUM? + */ +void Scan::transformToMatrix(double alignxf[16], const AlgoType type, int islum) +{ + double tinv[16]; + M4inv(transMat, tinv); + transform(tinv, INVALID); + transform(alignxf, type, islum); +} + +/** + * Transforms the scan, so that the given Euler angles + * prepresent the next pose. + * + * @param rP Translation to which this scan will be set to + * @param rPT Orientation as Euler angle to which this scan will be set + * @param islum Is the transformation part of LUM? + */ +void Scan::transformToEuler(double rP[3], double rPT[3], const AlgoType type, int islum) +{ +#ifdef WITH_METRICS + // called in openmp context in lum6Deuler.cc:422 + ClientMetric::transform_time.set_threadsafety(true); + ClientMetric::add_frames_time.set_threadsafety(true); +#endif //WITH_METRICS + + double tinv[16]; + double alignxf[16]; + M4inv(transMat, tinv); + transform(tinv, INVALID); + EulerToMatrix4(rP, rPT, alignxf); + transform(alignxf, type, islum); + +#ifdef WITH_METRICS + ClientMetric::transform_time.set_threadsafety(false); + ClientMetric::add_frames_time.set_threadsafety(false); +#endif //WITH_METRICS +} + +/** + * Transforms the scan, so that the given Euler angles + * prepresent the next pose. + * + * @param rP Translation to which this scan will be set to + * @param rPQ Orientation as Quaternion to which this scan will be set + * @param islum Is the transformation part of LUM? + */ +void Scan::transformToQuat(double rP[3], double rPQ[4], const AlgoType type, int islum) +{ + double tinv[16]; + double alignxf[16]; + M4inv(transMat, tinv); + transform(tinv, INVALID); + QuatToMatrix4(rPQ, rP, alignxf); + transform(alignxf, type, islum); +} + +/** + * Calculates Source\Target + * Calculates a set of corresponding point pairs and returns them. It + * computes the k-d trees and deletes them after the pairs have been + * found. This slow function should be used only for testing + * + * @param pairs The resulting point pairs (vector will be filled) + * @param Target The scan to whiche the points are matched + * @param thread_num number of the thread (for parallelization) + * @param rnd randomized point selection + * @param max_dist_match2 maximal allowed distance for matching + */ + +void Scan::getNoPairsSimple(vector &diff, + Scan* Source, Scan* Target, + int thread_num, + double max_dist_match2) +{ + DataXYZ xyz_r(Source->get("xyz reduced")); + KDtree* kd = new KDtree(PointerArray(Target->get("xyz reduced")).get(), Target->size("xyz reduced")); + + cout << "Max: " << max_dist_match2 << endl; + for (unsigned int i = 0; i < xyz_r.size(); i++) { + + double p[3]; + p[0] = xyz_r[i][0]; + p[1] = xyz_r[i][1]; + p[2] = xyz_r[i][2]; + + + double *closest = kd->FindClosest(p, max_dist_match2, thread_num); + if (!closest) { + diff.push_back(xyz_r[i]); + //diff.push_back(closest); + } + } + + delete kd; +} + +/** + * Calculates a set of corresponding point pairs and returns them. It + * computes the k-d trees and deletes them after the pairs have been + * found. This slow function should be used only for testing + * + * @param pairs The resulting point pairs (vector will be filled) + * @param Source The scan whose points are matched to Targets' points + * @param Target The scan to whiche the points are matched + * @param thread_num number of the thread (for parallelization) + * @param rnd randomized point selection + * @param max_dist_match2 maximal allowed distance for matching + */ +void Scan::getPtPairsSimple(vector *pairs, + Scan* Source, Scan* Target, + int thread_num, + int rnd, double max_dist_match2, + double *centroid_m, double *centroid_d) +{ + KDtree* kd = new KDtree(PointerArray(Source->get("xyz reduced")).get(), Source->size("xyz reduced")); + DataXYZ xyz_r(Target->get("xyz reduced")); + + for (unsigned int i = 0; i < xyz_r.size(); i++) { + if (rnd > 1 && rand(rnd) != 0) continue; // take about 1/rnd-th of the numbers only + + double p[3]; + p[0] = xyz_r[i][0]; + p[1] = xyz_r[i][1]; + p[2] = xyz_r[i][2]; + + double *closest = kd->FindClosest(p, max_dist_match2, thread_num); + if (closest) { + centroid_m[0] += closest[0]; + centroid_m[1] += closest[1]; + centroid_m[2] += closest[2]; + centroid_d[0] += p[0]; + centroid_d[1] += p[1]; + centroid_d[2] += p[2]; + PtPair myPair(closest, p); + pairs->push_back(myPair); + } + } + centroid_m[0] /= pairs[thread_num].size(); + centroid_m[1] /= pairs[thread_num].size(); + centroid_m[2] /= pairs[thread_num].size(); + centroid_d[0] /= pairs[thread_num].size(); + centroid_d[1] /= pairs[thread_num].size(); + centroid_d[2] /= pairs[thread_num].size(); + + delete kd; +} + + +/** + * Calculates a set of corresponding point pairs and returns them. + * The function uses the k-d trees stored the the scan class, thus + * the function createTrees and deletTrees have to be called before + * resp. afterwards. + * Here we implement the so called "fast corresponding points"; k-d + * trees are not recomputed, instead the apply the inverse transformation + * to to the given point set. + * + * @param pairs The resulting point pairs (vector will be filled) + * @param Source The scan whose points are matched to Targets' points + * @param Target The scan to whiche the points are matched + * @param thread_num number of the thread (for parallelization) + * @param rnd randomized point selection + * @param max_dist_match2 maximal allowed distance for matching + * @return a set of corresponding point pairs + */ +void Scan::getPtPairs(vector *pairs, + Scan* Source, Scan* Target, + int thread_num, + int rnd, double max_dist_match2, double &sum, + double *centroid_m, double *centroid_d) +{ + // initialize centroids + for(unsigned int i = 0; i < 3; ++i) { + centroid_m[i] = 0; + centroid_d[i] = 0; + } + + // get point pairs + DataXYZ xyz_r(Target->get("xyz reduced")); + Source->getSearchTree()->getPtPairs(pairs, Source->dalignxf, + xyz_r, 0, xyz_r.size(), + thread_num, + rnd, max_dist_match2, sum, centroid_m, centroid_d); + + // normalize centroids + unsigned int size = pairs->size(); + if(size != 0) { + for(unsigned int i = 0; i < 3; ++i) { + centroid_m[i] /= size; + centroid_d[i] /= size; + } + } +} + + +/** + * Calculates a set of corresponding point pairs and returns them. + * The function uses the k-d trees stored the the scan class, thus + * the function createTrees and delteTrees have to be called before + * resp. afterwards. + * + * @param pairs The resulting point pairs (vector will be filled) + * @param Source The scan whose points are matched to Targets' points + * @param Target The scan to whiche the points are matched + * @param thread_num The number of the thread that is computing ptPairs in parallel + * @param step The number of steps for parallelization + * @param rnd randomized point selection + * @param max_dist_match2 maximal allowed distance for matching + * @param sum The sum of distances of the points + * + * These intermediate values are for the parallel ICP algorithm + * introduced in the paper + * "The Parallel Iterative Closest Point Algorithm" + * by Langis / Greenspan / Godin, IEEE 3DIM 2001 + * + */ +void Scan::getPtPairsParallel(vector *pairs, Scan* Source, Scan* Target, + int thread_num, int step, + int rnd, double max_dist_match2, + double *sum, + double centroid_m[OPENMP_NUM_THREADS][3], double centroid_d[OPENMP_NUM_THREADS][3]) +{ + // initialize centroids + for(unsigned int i = 0; i < 3; ++i) { + centroid_m[thread_num][i] = 0; + centroid_d[thread_num][i] = 0; + } + + // get point pairs + SearchTree* search = Source->getSearchTree(); + // differentiate between a meta scan (which has no reduced points) and a normal scan + // if Source is also a meta scan it already has a special meta-kd-tree + MetaScan* meta = dynamic_cast(Target); + if(meta) { + for(unsigned int i = 0; i < meta->size(); ++i) { + // determine step for each scan individually + DataXYZ xyz_r(meta->getScan(i)->get("xyz reduced")); + unsigned int max = xyz_r.size(); + unsigned int step = max / OPENMP_NUM_THREADS; + // call ptpairs for each scan and accumulate ptpairs, centroids and sum + search->getPtPairs(&pairs[thread_num], Source->dalignxf, + xyz_r, step * thread_num, step * thread_num + step, + thread_num, + rnd, max_dist_match2, sum[thread_num], + centroid_m[thread_num], centroid_d[thread_num]); + } + } else { + DataXYZ xyz_r(Target->get("xyz reduced")); + search->getPtPairs(&pairs[thread_num], Source->dalignxf, + xyz_r, thread_num * step, thread_num * step + step, + thread_num, + rnd, max_dist_match2, sum[thread_num], + centroid_m[thread_num], centroid_d[thread_num]); + } + + // normalize centroids + unsigned int size = pairs[thread_num].size(); + if(size != 0) { + for(unsigned int i = 0; i < 3; ++i) { + centroid_m[thread_num][i] /= size; + centroid_d[thread_num][i] /= size; + } + } +} + +unsigned int Scan::getMaxCountReduced(ScanVector& scans) +{ + unsigned int max = 0; + for(std::vector::iterator it = scans.begin(); it != scans.end(); ++it) { + unsigned int count = (*it)->size("xyz reduced"); + if(count > max) + max = count; + } + return max; +} diff --git a/.svn/pristine/70/7060b0b3b46a2302818c0e412b187d34e62c90e2.svn-base b/.svn/pristine/70/7060b0b3b46a2302818c0e412b187d34e62c90e2.svn-base new file mode 100644 index 0000000..bb714fc --- /dev/null +++ b/.svn/pristine/70/7060b0b3b46a2302818c0e412b187d34e62c90e2.svn-base @@ -0,0 +1,525 @@ +/* + getopt.c - implementation of getopt(3) and getopt_long(3) + Copyright Keristor Systems and Chris Croughton 1997 + Internet: swdev@keristor.org + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. +*/ + +#include +#include +#include + +#define XGETOPT_NAMES +#include "XGetopt.h" + +/* + * This is the published interface for the GNU getopt module + */ + +char *optarg = NULL; +int optind = 0; +int opterr = 1; +int optopt = 0; + +int getopt(int argc, char * const argv[], const char *optstring); +int getopt_long(int argc, char * const argv[], const char *optstring, + const struct option *longopts, int *longindex); +int getopt_long_only(int argc, char * const argv[], const char *optstring, + const struct option *longopts, int *longindex); + +/************************************************************************ + * + * Everything from here down is a rewrite without looking at the GNU + * implementation; it is therefore free of GPL and LGPL contraints, see + * above for licencing information. + * + ************************************************************************/ + +#define true 1 +#define false 0 +#define bool char + +enum action +{ + E_PERMUTE, + E_POSIX, + E_INPLACE, + E_NUM_OF_ACTIONS +}; + +static bool initialised = false; +static bool endargs = false; +static char *nextchar = NULL; + +/* Note that the lookup routines use and modify the global variables - not + * nice, but better than passing everything as reference parameters. + */ + +static int +lookup_shortopt(int argc, char **argv, const char *opts) +{ + int c = *optarg++; + /* remember the Alamo - a dodgy character if ever there was one */ + nextchar = optarg; + /* look at the options - like any you see? */ + while (*opts) + { + if (c == *opts++) + { + /* OK, it's a fair (c)op, guv */ + if (*opts == ':') + { + /* we can do arguments, but there will be nothing left of this arg */ + nextchar = NULL; + if (*++opts == ':') + { + /* but it's optional, so either a 5 minute argument or nothing */ + if (!*optarg) + optarg = NULL; + return c; + } + else + { + /* this argument's not optional, you get the full half hour */ + if (*optarg) + { + /* We've got an argument on our hands! */ + return c; + } + else + { + /* try the next door down */ + if (++optind < argc) + { + /* OK, we've got it ("Oh no you haven't!") */ + optarg = argv[optind]; + return c; + } + else + { + /* Th-Th-Th-That's All, Folks! */ + optopt = c; + if (opterr) + fprintf(stderr, "required parameter for -%c missing\n", c); + /* we've got an option, but it's dud */ + return '?'; + } + } + } + } + else + { + /* no arguments please, we're British */ + nextchar = optarg; + optarg = NULL; + return c; + } + } + } + /* return to sender, address unknown */ + optopt = c; + optarg = NULL; + return -1; +} + +static int +lookup_longopt(int argc, char **argv, + const struct option *longopts, + int *longindex) +{ + char *eqp; + bool ambig = false; + int match = -1; + int exact = -1; + int min; + int len; + int i; + + /* if we have no long options, any we get are wrong */ + if (!longopts) + { + if (opterr) + fprintf(stderr, "long options not supported\n"); + return '?'; + } + /* look for equality or fraternity */ + eqp = strchr(optarg, '='); + min = (eqp ? eqp - optarg : strlen(optarg)); + for (i = 0; longopts[i].name; i++) + { + len = strlen(longopts[i].name); + /* is it exact? */ + if (len == min && strncmp(longopts[i].name, optarg, len) == 0) + { + /* an exact match - go no further, we can't get better than this */ + exact = i; + break; + } + /* a match as far as the argument goes? */ + if (strncmp(longopts[i].name, optarg, min) == 0) + { + /* if we've already found one of those, it's ambiguous */ + if (match < 0) + match = i; + else + ambig = true; + } + } + /* we've looked at everything, now what? */ + if (exact < 0) + { + /* no exact match, if it's ambiguous then fail othersise use what + * (if anything) we have */ + if (ambig) + { + if (opterr) + fprintf(stderr, "option --%s is ambiguous\n", optarg); + return '?'; + } + else + exact = match; + } + /* if we don't have anything, return -1 (/not/ fail, this could be a test */ + if (exact < 0) + return -1; + switch (longopts[exact].has_arg) + { + case no_argument: + /* we have nothing to fight about... */ + if (eqp) + { + /* ... except equality */ + if (opterr) + fprintf(stderr, "option --%s does not take an argument\n", optarg); + return '?'; + } + optarg = NULL; + break; + case required_argument: + /* you have to fight, so there! */ + if (eqp) + optarg = eqp + 1; + else if (++optind < argc) + optarg = argv[optind]; + else + { + if (opterr) + fprintf(stderr, "missing argument for option --%s\n", optarg); + return '?'; + } + break; + case optional_argument: + /* you don't have to fight if you don't want to */ + optarg = (eqp ? eqp + 1 : NULL); + break; + } + /* tell the caller what he's got */ + if (longindex) + *longindex = exact; + if (longopts[exact].flag) + { + /* set a flag rather than returning the value */ + *longopts[exact].flag = longopts[exact].val; + return 0; + } + return longopts[exact].val; +} + +/* + * Note that this internal function drops the const on the arg list. That's + * because optarg etc. are defined without const. + */ +static int +getnextopt(int argc, char **argv, const char *optstring, + const struct option *longopts, int *longindex, + bool longonly, enum action act) +{ + static int thisind = 0; + static int oldind = 0; + int c = 0; + + /* if we haven't started, make sure we're not in Denmark */ + if (!initialised) + { + initialised = true; + nextchar = NULL; + endargs = false; + thisind = 0; + oldind = 0; + optind = 0; + } + + /* check for previous sequence of short options */ + if (nextchar && *nextchar) + { + optarg = nextchar; + c = lookup_shortopt(argc, argv, optstring); + /* now shuffle the arguments if necessary */ + if (act == E_PERMUTE && oldind != thisind && (!nextchar || !*nextchar)) + { + int optlen = optind - thisind; /* the length of the option */ + int optnum = thisind - oldind; /* number of args in between */ + memmove(argv+oldind+optlen+1, argv+oldind, sizeof(*argv) * optnum); + optind = oldind + optlen; + } + return c; + } + + /* check for end of argument list */ + if (++optind >= argc || !argv[optind]) + { + optarg = NULL; + return EOF; /* no arguments left */ + } + + /* get next argument from list */ + optarg = argv[optind]; + + /* if we've had "--" then treat as normal argument */ + if (endargs) + return (act == E_INPLACE ? '\1' : EOF); + + /* if we're permuting the arguments, look for the next option */ + if (act == E_PERMUTE) + { + int i; + /* save where we are, we'll need this later */ + oldind = optind; + for (i = optind; i < argc; i++) + { + char *p = argv[i]; + /* remember that "--" ends options? Ignore anything past it... */ + if (strcmp(p, "--") == 0) + { + int optnum = i - oldind; /* number of args in between */ + if (optnum > 0) + { + /* shuffle the arguments up over it */ + memmove(argv+oldind+1, argv+oldind, sizeof(*argv) * optnum); + optind = ++oldind; + optarg = argv[optind]; + } + break; + } + if (*p == '-' && strcmp(p, "-")) + { + /* we found a honest-to-goodness option! Set up shop here... */ + optind = i; + optarg = p; + break; + } + } + } + + /* test for "--" meaning "end of options" - everything after that is an + * argument not an option */ + if (strcmp(optarg, "--") == 0) + { + endargs = true; + if (++optind < argc) + { + optarg = argv[optind]; + return (act == E_INPLACE ? '\1' : EOF); + } + else + { + optarg = NULL; + return EOF; + } + } + + /* an argument of "-" or not starting with '-'is not an option */ + if (strcmp(optarg, "-") == 0 || *optarg != '-') + { + /* if we're being POSIXLY_CORRECT (ugh!) then the first non-option ends + * the options. I don't like it but that's what the spec. says... */ + if (act == E_POSIX) + endargs = true; + return (act == E_INPLACE ? '\1' : EOF); + } + + thisind = optind; /* remember this position, lookup changes it */ + + /* OK, it's some sort of option, junk the first '-' */ + optarg++; + + /* prime for "option not found" */ + c = -1; + /* test the next character - another '-' means it's a long option */ + if (longopts && *optarg == '-') + { + /* it's a long option, skip the next '-' */ + optarg++; + c = lookup_longopt(argc, argv, longopts, longindex); + if (c < 0) + { + fprintf(stderr, "unknown option --%s\n", optarg); + c = '?'; + } + } + else if (longopts && longonly) + { + int tmperr = opterr; + opterr = 0; + /* try a long option first, if that doesn't work try a short one */ + c = lookup_longopt(argc, argv, longopts, longindex); + opterr = tmperr; + if (c < 0) + c = lookup_shortopt(argc, argv, optstring); + } + else + { + /* just try short options */ + c = lookup_shortopt(argc, argv, optstring); + } + + /* if not found give (optional) error and return '?' */ + if (c < 0) + { + if (opterr) + fprintf(stderr, "unknown option -%c\n", optopt); + optarg = 0; + c = '?'; + } + + /* now shuffle the arguments if necessary - I told you we'd need to save + * that old index! (I wonder if there's a more elegant way to do this?) */ + if (act == E_PERMUTE && oldind != thisind && (!nextchar || !*nextchar)) + { + int optlen = optind - thisind; /* the length of the option */ + int optnum = thisind - oldind; /* number of args in between */ + memmove(argv+oldind+optlen+1, argv+oldind, sizeof(*argv) * optnum); + optind = oldind + optlen; + oldind = 0; + thisind = 0; + } + return c; +} + + +/*********************************************************************** + * At last, the real routines we wanted to call! + **********************************************************************/ + +/** + * Scan the command-line parameters for options in the form \b -x. + */ +int getopt(int argc, char * const argv[], const char *optstring) +{ + return getnextopt(argc, (char**)argv, optstring, NULL, NULL, + false, E_PERMUTE); +} + +/** + * Scan the command-line parameters for options, allowing both the short + * (single character) options and long (string) options. + */ +int getopt_long(int argc, char * const argv[], const char *optstring, + const struct option *longopts, int *longindex) +{ + return getnextopt(argc, (char**)argv, optstring, longopts, longindex, + false, E_PERMUTE); +} + +/** + * Scan the command-line parameters for long options only + */ +int getopt_long_only(int argc, char * const argv[], const char *optstring, + const struct option *longopts, int *longindex) +{ + return getnextopt(argc, (char**)argv, optstring, longopts, longindex, + true, E_PERMUTE); +} + + +/*********************************************************************** + * Just in case you wanted to test this stuff (or as an example of how + * not to use and abuse it), some code to do call it with arguments... + **********************************************************************/ + +#ifdef TEST_GETOPT + +const char *shortopts = "abcr:o::"; + +char *Args[] = +{ + "arg0", + "arg1", + "-abc", + "-rargr1", + "-r", "argr2", + "-oargo", + "-o", + "arg2", + "--", + "arg3", + "-arg4", + "arg5", + NULL +}; + +int heckle = 'x'; + +struct option longopts[] = +{ + { "help", no_argument, NULL, 'h' }, + { "heckle", no_argument, &heckle, 'k' }, + { "speck", no_argument, &heckle, 's' }, + { "arg", required_argument, NULL, 'g' }, + { "opt", optional_argument, NULL, 'z' }, + { 0, 0, 0, 0 } +}; + +int +main(int argc, char **argv) +{ + int i; + int c; + if (argc <= 1) + { + argv = Args; + argc = (sizeof(Args) / sizeof(Args[0])) - 1; + } + else + shortopts="hksg:z::"; + for (i = 0; i < argc; i++) + printf("%2d <%s>\n", i, argv[i]); + while ((c = getopt_long(argc, argv, shortopts, longopts, NULL)) != EOF) + { + printf("option %d '%c' (%s)\n", optind, c, optarg); +#if DEBUG + for (i = 0; i < argc; i++) + printf("%2d <%s>\n", i, argv[i]); +#endif + } + for (i = optind; i < argc; i++) + printf("param %2d <%s>\n", i, argv[i]); + printf("flag = '%c'\n", heckle); + return 0; +} + +#endif + diff --git a/.svn/pristine/70/706c417cb83dd655174ab106e6cf522421f3379d.svn-base b/.svn/pristine/70/706c417cb83dd655174ab106e6cf522421f3379d.svn-base new file mode 100644 index 0000000..27d1a6a --- /dev/null +++ b/.svn/pristine/70/706c417cb83dd655174ab106e6cf522421f3379d.svn-base @@ -0,0 +1,131 @@ +#include + +using namespace std; + +#include "slam6d/cuda/icp6Dcuda.h" +#include "slam6d/cuda/CIcpGpuCuda.cuh" +#include "newmat/newmat.h" + + +void icp6Dcuda::initGPUicp(float max_rad, float min_rad, int iter, int max_iter, + int max_proctime, float max_dev, const double trans[], const double trans_inv[]) +{ +#ifndef WITH_SCANSERVER + unsigned int max_size = Scan::max_points_red_size; +#else //WITH_SCANSERVER + unsigned int max_size = Scan::getMaxCountReduced(); +#endif //WITH_SCANSERVER + if (max_scnSize < max_size) { + if (icp != 0) { + delete icp; + icp = 0; + } + } + if (icp == 0) { + max_scnSize = max_size; + icp = new CIcpGpuCuda((unsigned)10, ceil((float)max_size/10.f) , + (unsigned)max_num_iterations); + icp->setMaxProcTime((double) max_proctime); + icp->setMaxDeviation((double) max_dev); + icp->setSearchRadius((float) max_rad, (float) min_rad, (unsigned)max_num_iterations); + } +} + +icp6Dcuda::icp6Dcuda(icp6Dminimizer *my_icp6Dminimizer, double max_dist_match, + int max_num_iterations, bool quiet, bool meta, int rnd, bool eP, + int anim, double epsilonICP, int nns_method, bool cuda_enabled) +: icp6D(my_icp6Dminimizer, max_dist_match, + max_num_iterations, quiet, meta, rnd, eP, + anim, epsilonICP, nns_method, cuda_enabled) +{ + icp = 0; + max_scnSize = 0; +} + +/** + * Matches a 3D Scan against a 3D Scan + * @param PreviousScan The scan or metascan forming the model + * @param CurrentScan The current scan thas is to be matched + * @return The number of iterations done in this matching run + */ +int icp6Dcuda::match(Scan* PreviousScan, Scan* CurrentScan) +{ +#ifndef WITH_SCANSERVER + int mdlSize = PreviousScan->get_points_red_size(), scnSize = CurrentScan->get_points_red_size(); +#else //WITH_SCANSERVER + int mdlSize = PreviousScan->getCountReduced(), scnSize = CurrentScan->getCountReduced(); +#endif //WITH_SCANSERVER + double** mdl; + float** scn; + const double *trans; + double trans_inv[16]; + trans = PreviousScan->get_transMat(); + M4inv(trans, trans_inv); + + initGPUicp(sqrt(max_dist_match2), sqrt(max_dist_match2), max_num_iterations, + max_num_iterations, INT_MAX, epsilonICP, trans, trans_inv); + + h_idata = icp->getModelPointer(); + fHstScn = icp->getScenePointer(); + icp->setTrans_Trans_inv(trans, trans_inv); + icp->setSize(10, ceil((float)max(mdlSize, scnSize)/10.0f)); + +#ifndef WITH_SCANSERVER + double **mod_dat = PreviousScan->get_org_points_red(); + double *const*scn_dat = CurrentScan->get_points_red(); +#else //WITH_SCANSERVER + DataXYZ scn_dat(CurrentScan->getXYZReduced()); + DataXYZ mod_dat(PreviousScan->getXYZReducedOriginal()); +#endif //WITH_SCANSERVER + mdl = h_idata; + scn = fHstScn; + cout << "model point cloud size is " << mdlSize << "\n"; + for (unsigned int i = 0; i < mdlSize; ++i) { + mdl[i][0] = (float)mod_dat[i][0]; + mdl[i][1] = (float)mod_dat[i][1]; + mdl[i][2] = (float)mod_dat[i][2]; + } + cout << "scene point cloud size is " << scnSize << "\n"; + for (unsigned int i = 0; i < scnSize; ++i) { + scn[0][i] = (float)scn_dat[i][0]; + scn[1][i] = (float)scn_dat[i][1]; + scn[2][i] = (float)scn_dat[i][2]; + } + + icp->setTreePointer(const_cast(PreviousScan->getANNTree())); + float result[4][4]; + + // doICP + icp->setPointClouds(); + icp->iteration(); + Matrix* M = icp->getMatrix(); + + for (int i = 0 ; i < 4 ; ++i){ + for(int j = 0 ; j < 4 ; ++j) { + result[i][j] = (*M)(i+1,j+1); + } + } + + if(anim > 0){ + Matrix** mats = icp->getMatrices(); + for(int ci = 0 ; ci < max_num_iterations ; ci += anim){ + Matrix* cur_mat = mats[ci]; + double xf[16]; + for(int i = 1; i < 5 ; ++i) + for(int j = 1; j < 5; ++j) + xf[(i-1)+(j-1)*4] = (*cur_mat)(i,j); + CurrentScan->transform(xf, Scan::ICP, 0); + } + } + else { + double alignxf[16]; + for (int i = 0; i < 4; ++i) + for (int j = 0; j < 4; ++j){ + alignxf[i + j * 4] = result[i][j]; + } + CurrentScan->transform(alignxf, Scan::ICP, 0); // write end pose + } + + return EXIT_SUCCESS; +} + diff --git a/.svn/pristine/70/709c2a4e3cfa91c951dd223df9345344ace032c8.svn-base b/.svn/pristine/70/709c2a4e3cfa91c951dd223df9345344ace032c8.svn-base new file mode 100644 index 0000000..85280dd --- /dev/null +++ b/.svn/pristine/70/709c2a4e3cfa91c951dd223df9345344ace032c8.svn-base @@ -0,0 +1,153 @@ +/* +This is a Optical-Character-Recognition program +Copyright (C) 1999 Joerg Schulenburg + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + see README for EMAIL-address + */ +/* plan: use popen("ppm2pcx -packed ...","w"); for writing pcx */ + +#include +#include +/* #include */ + +#include "pcx.h" + +typedef unsigned char byte; + +#define ERR(x) { fprintf(stderr,"ERROR "__FILE__" L%d: " x "\n",__LINE__);exit(1);} + +int err; +/* --- needed for reading PCX-files */ +unsigned char read_b(FILE *f1){ + unsigned char c=0; c=fgetc(f1); if(feof(f1) || ferror(f1))err=1; return c; +} + +/* something here is wrong! */ +void readpcx(char *name,pix *p,int vvv){ /* see pcx.format.txt */ + int page,pages,nx,ny,i,j,b,x,y,bpl,bits,pal[256][3]; + FILE *f1; + unsigned char *pic,h[128],bb,b1,b2,b3; + err=0; + for(i=0;i<256;i++)for(j=0;j<3;j++)pal[i][j]=i; + f1=fopen(name,"rb"); if(!f1) ERR("open"); + if(fread(h,1,128,f1)!=128)ERR("read PCX header"); /* 128 Byte lesen -> h[] */ + if(h[0]!=10)ERR("no ZSoft sign"); /* ZSoft sign */ + if(h[2]> 1)ERR("unknown coding"); /* run length encoding */ + bits = h[3]; /* 1 or 8 */ + if(bits!=1 && bits!=8)ERR("only 1 or 8 bits supported"); + nx = h[ 9]*256+h[ 8] - h[ 5]*256-h[ 4] +1; /* Xmax-Xmin */ + ny = h[11]*256+h[10] - h[ 7]*256-h[ 6] +1; /* Ymax-Ymin */ + pages=h[65]; bpl=h[66]+256*h[67]; /* bytes per line */ + if(vvv) + fprintf(stderr,"# PCX version=%d bits=%d x=%d y=%d HRes=%d VRes=%d\n" + "# NPlanes=%d BytesPerLine=%d Palette=%s", + h[1],bits,nx,ny,h[12]+256*h[13],h[14]+256*h[15], + pages,bpl,((h[68]==1)?"1=color/bw":"2=gray")); + /* line1(NP=4): RRRRR...,GGGG....,BBBBB...,IIII...., line2: RRRR...,GGGG.... */ + /* C4 EF = (C4&3F)*EF = EF EF EF EF */ + fflush(stdout); + /* palette: for(i=0;i<16;i++) for(j=0;j<3;j++) h[16+3*i+j] */ + if(pages>1)for(b=0;b<16;b++) for(i=0;i<16;i++) + for(j=0;j< 3;j++) pal[b*16+i][j]=h[16+3*i+j]>>2; + if(bits>7){ + fseek(f1,-3*256,2); if(fread(pal,3,256,f1)!=256)ERR("read palette"); + for(i=0;i<256;i++) for(j=0;j<3;j++) pal[i][j]>>=2; + } + fseek(f1,128,0); + pic=(unsigned char *)malloc( nx*ny ); + if(pic==NULL)ERR("no memory"); /* no memory */ + x=y=0; + do { + for(page=0;page b1=counter */ + do { + b1=1; bb=read_b(f1); b2=bb; if(b1==192)fprintf(stderr,"?"); + if((b2>=192) && (h[2]==1)){b1=b2&63;bb=read_b(f1);b2=bb;} + if(err){fprintf(stderr,"\nread error x=%d y=%d\n",x,y);x=nx;y=ny;break;} + for(b3=0;b3>(8-bits-b)) & ~((~0)<p=pic; p->x=nx; p->y=ny; p->bpp=1; + if(vvv)fprintf(stderr,"\n"); +} + +/* ----------------------------------------------------------------------- +// write bmp 8bit palette no RLE +// bit 2+3 used for color coding (markers) +// replaced by writeppm (ppm.gz) and is obsolate now, removed later + */ +void writebmp(char *name,pix p,int vvv){ /* see pcx.format.txt */ + int nx,ny,i,y,rest[4]={0,0,0,0}; + FILE *f1; + /*FIXME jb static*/static unsigned char *pic, h[54+4*256]; + long fs,fo,hs,is; /* filesize, offset, headersize, imagesize */ + + nx=p.x; ny=p.y; pic=p.p; + if (nx&3) nx+=4-(nx&3); /* must be mod4 ? */ + hs=40; /* bmi headersize fix */ + is=nx*ny; /* imagesize */ + fo=14+hs+4*256; + fs=fo+is; + for(i=0;i<54;i++){ h[i]=0; } + /* BITMAPFILEHEADER */ + h[ 0]='B'; h[ 1]='M'; /* type of file BMP */ + h[ 2]= fs &255; h[ 3]=(fs>> 8)&255; + h[ 4]=(fs>>16)&255; h[ 5]=(fs>>24)&255; /* size of file */ + h[10]= fo &255; h[11]=(fo>> 8)&255; + h[12]=(fo>>16)&255; h[13]=(fo>>24)&255; /* offset to image data */ + /* BITMAPINFO (BITMAPCOREHEADER not used here) */ + /* 14 - HEADER */ + h[14]= hs &255; h[15]=(hs>> 8)&255; + h[16]=(hs>>16)&255; h[17]=(hs>>24)&255; /* bmi-header size */ + h[18]= nx &255; h[19]=(nx>> 8)&255; + h[20]=(0l>>16)&255; h[21]=(0l>>24)&255; /* WIDTH/pixel */ + h[22]= ny &255; h[23]=(ny>> 8)&255; + h[24]=(0l>>16)&255; h[25]=(0l>>24)&255; /* HIGH/pixel */ + h[26]=1; /* planes */ + h[28]=8; /* bits/pixel 1,4,8,24 */ + h[30]=0; /* compression */ + h[34]= is &255; h[35]=(is>> 8)&255; + h[36]=(is>>16)&255; h[37]=(is>>24)&255; /* sizeImage (can be 0 if ~RLE) */ + h[38]=0;h[39]=1; /* ca 100dpi, x/meter */ + h[42]=0;h[43]=1; /* y/meter */ + h[46]=0;h[47]=1; /* colorused (0=maximum) */ + h[50]=0;h[51]=1; /* colorimportand (0=all) */ + /* 54 - endofheader */ + for(i=0;i<256;i++){ + h[54+4*i+0]=((~((i & 2)*64)) & (i & (128+64)))|63; + h[54+4*i+1]=((~((i & 2)*64)) & (~((i & 4)*32)) & (i & (128+64)))|63; + h[54+4*i+2]=( ((i & 2)* 8) | ((~((i & 4)*32)) & (i & (128+64)))|63); + } /* blue-green-red */ + f1=fopen(name,"wb"); if(!f1) fprintf(stderr," error opening file\n"); + if(!f1)ERR("open"); /* open-error */ + if(fwrite(h,1,54+4*256,f1)!=54+4*256)ERR("write head"); + if(vvv) fprintf(stderr,"# write BMP x=%d y=%d\n",nx,ny); + for(y=ny-1;y>=0;y--){ + if(((int)fwrite(pic+p.x*y,1,p.x,f1))!=p.x)ERR("write"); + if(nx>p.x) + if(((int)fwrite(rest,1,nx-p.x,f1))!=nx-p.x)ERR("write"); + } + fclose(f1); +} + +/* ---------------------------------------------------------------------- */ diff --git a/.svn/pristine/70/70fc0090876d8f47232de9bc22051c477cc7e569.svn-base b/.svn/pristine/70/70fc0090876d8f47232de9bc22051c477cc7e569.svn-base new file mode 100644 index 0000000..d15e69d --- /dev/null +++ b/.svn/pristine/70/70fc0090876d8f47232de9bc22051c477cc7e569.svn-base @@ -0,0 +1,210 @@ +/* + * match_with_ground_truth implementation + * + * Copyright (C) Andreas Nuechter, Kai Lingemann, Jochen Sprickerhof + * + * Released under the GPL version 3. + * + */ + +/** + * @file + * @brief Main programm for matching registered 3D scans against a + * ground_truth_path + * + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include +using std::string; +#include +using std::cout; +using std::cerr; +using std::endl; +#include +using std::ifstream; +using std::ofstream; +#include +using std::vector; +#include +using std::exception; + +#include "globals.icc" +#include "ptpair.h" +#include "icp6Dapx.h" +#include "icp6Dsvd.h" +#include "icp6Dquat.h" + +#ifndef _MSC_VER +#include +#else +#include "..\Visual_Studio_Projects\6D_SLAM\XGetopt.h" +#endif + +/** + * Explains the usage of this program's command line parameters + */ +void usage(char* prog) +{ + const string bold("\033[1m"); + const string normal("\033[m"); + + cout << "to do" << endl; + + exit(1); +} + +int parseArgs(int argc, char **argv, string &dir, int &mni, + int &start, int &end, int &algo, bool &quiet, bool &veryQuiet) +{ + + int c; + // from unistd.h: + extern char *optarg; + extern int optind; + + /* options descriptor */ + // 0: no arguments, 1: required argument, 2: optional argument + static struct option longopts[] = { + { "algo", required_argument, 0, 'a' }, + { "iter", required_argument, 0, 'i' }, + { "start", required_argument, 0, 's' }, + { "end", required_argument, 0, 'e' }, + { 0, 0, 0, 0} // needed, cf. getopt.h + }; + + cout << endl; + while ((c = getopt_long(argc, argv, "a:i:s:e:qQ", longopts, NULL)) != -1) { + switch (c) + { + case 'a': + algo = atoi(optarg); + if ((algo < 0) || (algo > 2)) { cerr << "Error: Algorithm not available.\n"; exit(1); } + break; + case 's': + start = atoi(optarg); + if (start < 0) { cerr << "Error: Cannot start at a negative scan number.\n"; exit(1); } + break; + case 'e': + end = atoi(optarg); + if (end < 0) { cerr << "Error: Cannot end at a negative scan number.\n"; exit(1); } + if (end < start) { cerr << "Error: cannot be smaller than .\n"; exit(1); } + break; + case 'i': + mni = atoi(optarg); + break; + case 'q': + quiet = true; + break; + case 'Q': + quiet = veryQuiet = true; + break; + default: + abort(); + } + } + if (optind != argc-1) { + cerr << "\n*** Directory missing ***" << endl; + usage(argv[0]); + } + dir = argv[optind]; + +} + +int main(int argc, char **argv) +{ + if (argc <= 1) { + usage(argv[0]); + } + + string dir; + int mni = 50; + int start = 0, end = -1; + bool quiet = false; + bool veryQuiet = false; + int algo = 0; + + parseArgs(argc, argv, dir, mni, start, end, algo, quiet, veryQuiet); + + string groundTruthFileName = dir + "position_sync_interpol.dat"; + ifstream gtruth_in(groundTruthFileName.c_str()); + if (!gtruth_in.good()) { + cerr << "Cannot open " << groundTruthFileName << endl; + exit(-1); + } + + vector pairs; + + for (int i = 0; i < end; i++) { + // read position from ground truth file + double gtruthPos[3]; + double dummy; + gtruth_in >> dummy >> gtruthPos[2] >> gtruthPos[0] >> gtruthPos[1] + >> dummy >> dummy >> dummy; + + if (i < start) continue; + + for (unsigned int j = 0; j < 3; j++) gtruthPos[j] *= 0.1; + + string frameFileName = dir + "scan" + to_string(i,3) + ".frames"; + + cout << "Processing File " << frameFileName << endl; + + ifstream frame_in(frameFileName.c_str()); + if (!frame_in.good()) { + cerr << "Cannot open " << frameFileName << endl; + exit(-1); + } + double transMat[16]; + int type; + while (frame_in.good()) { + try { + frame_in >> transMat >> type; + } catch (const exception &e) { + break; + } + } + // now transMat contains the last matrix + double rPos[3], rPosTheta[3]; + Matrix4ToEuler(transMat, rPosTheta, rPos); + + PtPair myPair(gtruthPos, rPos); + pairs.push_back(myPair); + } + + cout << "Nr poses used for registration: " << pairs.size() << endl + << algo << endl; + + icp6Dminimizer *my_icp6Dminimizer = 0; + switch (algo) { + case 0 : + my_icp6Dminimizer = new icp6D_APX(quiet); + break; + case 1 : + my_icp6Dminimizer = new icp6D_QUAT(quiet); + break; + case 2 : + my_icp6Dminimizer = new icp6D_SVD(quiet); + break; + } + + double totalalignxf[16]; + M4identity(totalalignxf); + for (int iteration = 0; iteration < mni; iteration++) { + double alignxf[16]; + my_icp6Dminimizer->Point_Point_Align(pairs, alignxf); + for (int i = 0; i < pairs.size(); i++) { + pairs[i].p2.transform(alignxf); + } + double tempxf[16]; + MMult(alignxf, totalalignxf, tempxf); + memcpy(totalalignxf, tempxf, sizeof(totalalignxf)); + } + + string initialTransformFileName = dir + "initital.frame"; + ofstream initial_out(initialTransformFileName.c_str()); + initial_out << totalalignxf << endl; + initial_out.close(); + +} diff --git a/.svn/pristine/71/710407e183bf64deebc7a48bfab28501c0f54cdd.svn-base b/.svn/pristine/71/710407e183bf64deebc7a48bfab28501c0f54cdd.svn-base new file mode 100644 index 0000000..b4d36eb --- /dev/null +++ b/.svn/pristine/71/710407e183bf64deebc7a48bfab28501c0f54cdd.svn-base @@ -0,0 +1,231 @@ +// ===================================================================================== +// +// Filename: numbers.h +// +// Description: +// +// Version: 1.0 +// Created: 09/24/2010 02:03:48 PM +// Revision: none +// Compiler: g++ +// +// Author: Jan Elseberg (), jelseber@uos.de +// Company: Universitaet Osnabrueck +// +// ===================================================================================== + +#ifndef __NUMBERS_H_ +#define __NUMBERS_H_ + +class numberState { +public: + numberState() : number(0), char_p(0), board_p(0) { + for (int i = 0; i < 3; i++) { + position[i] = 0.0; + } + }; + numberState(int _number) : number(_number), char_p(0), board_p(0) { + for (int i = 0; i < 3; i++) { + position[i] = 0.0; + } + }; + numberState(int _number, double _char_p, double _board_p, double _position[3]) + : number(_number), char_p(_char_p), board_p(_board_p) + { + for (int i = 0; i < 3; i++) { + position[i] = _position[i]; + } + for (int i = 0; i < 4; i++) { + plane[i] = 0; + } + } + numberState(int _number, double _char_p, double _board_p, double _position[3], double _plane[4]) + : number(_number), char_p(_char_p), board_p(_board_p) + { + for (int i = 0; i < 3; i++) { + position[i] = _position[i]; + } + for (int i = 0; i < 4; i++) { + plane[i] = _plane[i]; + } + } + + double dist(numberState &ns) { + double x = ns.position[0] - position[0]; + double y = ns.position[1] - position[1]; + double z = ns.position[2] - position[2]; + + return sqrt( x*x + y*y +z*z ); + } + + int number; + double char_p; + double board_p; + double position[3]; + double plane[4]; + +}; + +inline ostream& operator<<(ostream& os, const numberState ns) +{ + os << "P(" << ns.number << ") = " << ns.char_p; + os << " P(" << ns.position[0] << ", " << ns.position[1] << ", " << ns.position[2] << ") = " << ns.board_p; + return os; +} + +class numberConsensus { +public: + + numberConsensus() { + sum_board_probability = 0.0; + sum_char_probability = 0.0; + consensus = numberState(); + } + + numberConsensus(int number) { + sum_board_probability = 0.0; + sum_char_probability = 0.0; + consensus = numberState(number); + } + + void addObservation(int number, double cp, double bp, double pos[3], double plane[4]) { + addObservation( numberState(number, cp, bp, pos, plane) ); + } + + bool isClose(double pos[3]) { + return isClose( numberState(0, 0, 0, pos) ); + } + + bool isClose(numberState ns) { + for (unsigned int i = 0; i < clusters.size(); i++) { + if (ccenters[i].dist(ns) < 100.0 ) { // should be good enough + return true; + } + } + return false; + } + + void addObservation(numberState ns) { + if (ns.number != consensus.number) return; + +// observations.push_back(ns); + sum_board_probability += ns.board_p; + sum_char_probability += ns.char_p; + + if (clusters.empty()) { + vector vec; + vec.push_back(ns); + ccenters.push_back(ns); + clusters.push_back(vec); + + updateConsensus(0); + return; + } + + for (unsigned int i = 0; i < clusters.size(); i++) { + if (ccenters[i].dist(ns) < 100.0 ) { // should be good enough + cout << "new point is close to previous cluster..." << endl; + clusters[i].push_back(ns); + updateConsensus(i); + return; + } + } + + // new cluster + vector vec; + vec.push_back(ns); + ccenters.push_back(ns); + clusters.push_back(vec); + + updateConsensus(clusters.size() -1); + return; + } + + void updateConsensus(int changed) { + // First compute new representative for the changed cluster + double pos[3]; pos[0] = pos[1] = pos[2] = 0.0; + + vector changed_cluster = clusters[changed]; + for (unsigned int i = 0; i < changed_cluster.size(); i++) { + for (int j = 0; j < 3; j++) + pos[j] += changed_cluster[i].position[j]; + } + for (int j = 0; j < 3; j++) + pos[j] = pos[j] / changed_cluster.size(); + + // set representative + ccenters[changed] = numberState(consensus.number, 0, 0, pos ) ; + + if (clusters.size() == 1) { // special case + if (clusters[0].size() == 1) { // + cout << "first number found..." << endl; + ccenters[0].char_p = clusters[0][0].char_p; + ccenters[0].board_p = clusters[0][0].board_p; + consensus = ccenters[0]; + return; + } + } + + + for (unsigned int i = 0; i < clusters.size(); i++) { + double sum_bp = 0.0; + double sum_cp = 0.0; + for (unsigned int j = 0; j < clusters[i].size(); j++) { + sum_bp += clusters[i][j].board_p; + sum_cp += clusters[i][j].char_p; + } + ccenters[i].char_p = sum_cp / sum_char_probability; + ccenters[i].board_p = sum_bp / sum_board_probability; + } + + + consensus = ccenters[0]; + for (unsigned int i = 1; i < ccenters.size(); i++) { + if (consensus.char_p * consensus.board_p < ccenters[i].char_p * ccenters[i].board_p) { + consensus = ccenters[i]; + } + } + + } +/* + void updateConsensus() { + double pos[3]; pos[0] = pos[1] = pos[2] = 0.0; + double plane[4]; + double bp = 0.0; + double cp = 0.0; + + for (unsigned int i = 0; i < observations.size(); i++) { + for (int j = 0; j < 3; j++) + pos[j] += observations[i].board_p * observations[i].position[j]; + + cp += observations[i].char_p; + bp += observations[i].board_p; + } + + for (int j = 0; j < 3; j++) + pos[j] = pos[j] / observations.size(); + cp = cp / observations.size(); + bp = bp / observations.size(); + + consensus = numberState(consensus.number, cp, bp, pos, plane); + } + */ + + numberState getConsensus() { + return consensus; + } + +private: + numberState consensus; +// vector observations; + + vector< vector > clusters; + vector ccenters; + + double sum_char_probability; + double sum_board_probability; + + +}; + +#endif diff --git a/.svn/pristine/71/7154b3b90e514fbc99944bb8cdc746cabfe1aa53.svn-base b/.svn/pristine/71/7154b3b90e514fbc99944bb8cdc746cabfe1aa53.svn-base new file mode 100644 index 0000000..f2bfc55 --- /dev/null +++ b/.svn/pristine/71/7154b3b90e514fbc99944bb8cdc746cabfe1aa53.svn-base @@ -0,0 +1,1567 @@ +/** + * @file + * @brief Efficient representation of an octree + * @author Jan Elsberg. Automation Group, Jacobs University Bremen gGmbH, Germany. + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef BOCTREE_H +#define BOCTREE_H + +#include "searchTree.h" +#include "point_type.h" +#include "data_types.h" +#include "allocator.h" +#include "limits.h" +#include "nnparams.h" +#include "globals.icc" + + +#include + +#include +using std::vector; +#include +using std::deque; +#include +using std::set; +#include +using std::list; +#include +#include +#include + +#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) + #define POPCOUNT(mask) __builtin_popcount(mask) +#else + #define POPCOUNT(mask) _my_popcount_3(mask) +#endif + +#include // to avoid ifdeffing for offset_ptr.get(), use &(*ptr) +namespace { namespace ip = boost::interprocess; } + + +// forward declaration +template union bitunion; + +/** + * This is our preferred representation for the leaf nodes (as it is the most compact). + * BOctTree makes an array of this, the first containing the number of points (not the + * number of coordinates) stored. + */ +template union dunion { + T v; + unsigned int length; + dunion() : length(0) {}; + +}; +// typedefs in combination with templates are weird +//typedef dunion pointrep; +#define pointrep union dunion + + + + +/** + * This struct represents the nodes of the octree + * + * child_pointer is a relative pointer to the first child of this node, as it is only + * 48 bit this will cause issues on systems with more than 268 TB of memory. All children + * of this node must be stored sequentially. If one of the children is a leaf, that + * child will be a pointer to however a set of points is represented (pointrep *). + * + * valid is a bitmask describing whether the corresponding buckets are filled. + * + * leaf is a bitmask describing whether the correpsonding bucket is a leaf node. + * + * The representation of the bitmask is somewhat inefficient. We use 16 bits for only + * 3^8 possible states, so in essence we could save 3 bits by compression. + * + */ +class bitoct{ + public: + +#ifdef _MSC_VER + __int64 child_pointer : 48; + unsigned valid : 8; + unsigned leaf : 8; +#else + signed long child_pointer : 48; + unsigned valid : 8; + unsigned leaf : 8; +#endif + /** + * sets the child pointer of parent so it points to child + */ + template + static inline void link(bitoct &parent, bitunion *child) { + parent.child_pointer = (long)((char*)child - (char*)&parent); + } + + /** + * Returns the children of this node (given as parent). + */ + template + static inline void getChildren(const bitoct &parent, bitunion* &children) { + children = (bitunion*)((char*)&parent + parent.child_pointer); + } + + template + inline bitunion* getChild(unsigned char index) { + bitunion *children = (bitunion*)((char*)this + this->child_pointer); + for (unsigned char i = 0; i < index; i++) { + if ( ( 1 << i ) & valid ) { // if ith node exists + children++; + } + } + return children; + } +}; + + +/** + * This union combines an octree node with a pointer to a set of points. This allows + * us to use both nodes and leaves interchangeably. + * + * points is a pointer to the point representation in use + * + * node is simply the octree node + * + */ +template union bitunion { + pointrep *points; + //union dunion *points; + bitoct node; + + bitunion(pointrep *p) : points(p) {}; + bitunion(bitoct b) : node(b) {}; + bitunion() : points(0) { + node.child_pointer = 0; + node.valid = 0; + node.leaf = 0; + }; // needed for new [] + + //! Leaf node: links a pointrep array [length+values] to this union, saved as an offset pointer + static inline void link(bitunion* leaf, pointrep* points) { + // use node child_pointer as offset_ptr, not pointrep + leaf->node.child_pointer = (long)((char*)points - (char*)leaf); + } + + //! Leaf node: points in the array + inline T* getPoints() const { + // absolute pointer + //return &(this->points[1].v); + // offset pointer + return reinterpret_cast( + reinterpret_cast((char*)this + node.child_pointer) + 1 + ); + } + + //! Leaf node: length in the array + inline unsigned int getLength() const { + // absolute pointer + //return this->points[0].length; + // offset pointer + return (reinterpret_cast((char*)this + node.child_pointer))[0].length; + } + + //! Leaf node: all points + inline pointrep* getPointreps() const { + return reinterpret_cast((char*)this + node.child_pointer); + } + + inline bitunion* getChild(unsigned char index) const { + bitunion *children = (bitunion*)((char*)this + this->node.child_pointer); + for (unsigned char i = 0; i < index; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + children++; + } + } + return children; + } + + inline bool isValid(unsigned char index) { + return ( ( 1 << index ) & node.valid ); + } + /* + inline pointrep* getChild(unsigned char index) { + bitunion *children = (bitunion*)((char*)this + this->node.child_pointer); + return children[index].points; + }*/ + + inline bool childIsLeaf(unsigned char index) { + return ( ( 1 << index ) & node.leaf ); // if ith node is leaf get center + } +}; + + +// initialized in Boctree.cc, sequence intialized on startup +extern char amap[8][8]; +extern char imap[8][8]; +extern char sequence2ci[8][256][8]; // maps preference to index in children array for every valid_mask and every case + + + +/** + * @brief Octree + * + * A cubic bounding box is calculated + * from the given 3D points. Then it + * is recusivly subdivided into smaller + * subboxes + */ +template +class BOctTree : public SearchTree { +public: + BOctTree() { + } + + template + BOctTree(P * const* pts, int n, T voxelSize, PointType _pointtype = PointType(), bool _earlystop = false ) : pointtype(_pointtype), earlystop(_earlystop) + { + alloc = new PackedChunkAllocator; + + this->voxelSize = voxelSize; + + this->POINTDIM = pointtype.getPointDim(); + + mins = alloc->allocate(POINTDIM); + maxs = alloc->allocate(POINTDIM); + + // initialising + for (unsigned int i = 0; i < POINTDIM; i++) { + mins[i] = pts[0][i]; + maxs[i] = pts[0][i]; + } + + for (unsigned int i = 0; i < POINTDIM; i++) { + for (int j = 1; j < n; j++) { + mins[i] = min(mins[i], (T)pts[j][i]); + maxs[i] = max(maxs[i], (T)pts[j][i]); + } + } + + center[0] = 0.5 * (mins[0] + maxs[0]); + center[1] = 0.5 * (mins[1] + maxs[1]); + center[2] = 0.5 * (mins[2] + maxs[2]); + size = max(max(0.5 * (maxs[0] - mins[0]), 0.5 * (maxs[1] - mins[1])), 0.5 * (maxs[2] - mins[2])); + size += 1.0; // for numerical reasons we increase size + + // calculate new buckets + T newcenter[8][3]; + T sizeNew = size / 2.0; + + for (unsigned char i = 0; i < 8; i++) { + childcenter(center, newcenter[i], size, i); + } + // set up values + uroot = alloc->allocate >(); + root = &uroot->node; + + countPointsAndQueueFast(pts, n, newcenter, sizeNew, *root, center); + init(); + } + + BOctTree(std::string filename) { + alloc = new PackedChunkAllocator; + deserialize(filename); + init(); + } + + template + BOctTree(vector

&pts, T voxelSize, PointType _pointtype = PointType(), bool _earlystop = false) : earlystop(_earlystop) + { + alloc = new PackedChunkAllocator; + + this->voxelSize = voxelSize; + + this->POINTDIM = pointtype.getPointDim(); + + mins = alloc->allocate(POINTDIM); + maxs = alloc->allocate(POINTDIM); + + // initialising + for (unsigned int i = 0; i < POINTDIM; i++) { + mins[i] = pts[0][i]; + maxs[i] = pts[0][i]; + } + + for (unsigned int i = 0; i < POINTDIM; i++) { + for (unsigned int j = 1; j < pts.size(); j++) { + mins[i] = min(mins[i], pts[j][i]); + maxs[i] = max(maxs[i], pts[j][i]); + } + } + + center[0] = 0.5 * (mins[0] + maxs[0]); + center[1] = 0.5 * (mins[1] + maxs[1]); + center[2] = 0.5 * (mins[2] + maxs[2]); + size = max(max(0.5 * (maxs[0] - mins[0]), 0.5 * (maxs[1] - mins[1])), 0.5 * (maxs[2] - mins[2])); + + size += 1.0; // for numerical reasons we increase size + + // calculate new buckets + T newcenter[8][3]; + T sizeNew = size / 2.0; + + for (unsigned char i = 0; i < 8; i++) { + childcenter(center, newcenter[i], size, i); + } + // set up values + uroot = alloc->allocate >(); + root = &uroot->node; + + countPointsAndQueue(pts, newcenter, sizeNew, *root, center); + } + + virtual ~BOctTree() + { + if(alloc) { + delete alloc; + } + } + + void init() { + // compute maximal depth as well as the size of the smalles leaf + real_voxelSize = size; + max_depth = 1; + while (real_voxelSize > voxelSize) { + real_voxelSize = real_voxelSize/2.0; + max_depth++; + } + + child_bit_depth = alloc->allocate(max_depth); + child_bit_depth_inv = alloc->allocate(max_depth); + + for(int d=0; d < max_depth; d++) { + child_bit_depth[d] = 1 << (max_depth - d - 1); + child_bit_depth_inv[d] = ~child_bit_depth[d]; + } + + mult = 1.0/real_voxelSize; + add[0] = -center[0] + size; + add[1] = -center[1] + size; + add[2] = -center[2] + size; + + largest_index = child_bit_depth[0] * 2 -1; + } + +protected: + + /** + * Serialization critical variables + */ + //! the root of the octree + ip::offset_ptr root; + ip::offset_ptr > uroot; + + //! storing the center + T center[3]; + + //! storing the dimension + T size; + + //! storing the voxel size + T voxelSize; + + //! The real voxelsize of the leaves + T real_voxelSize; + + //! Offset and real voxelsize inverse factor for manipulation points + T add[3]; + T mult; + + //! Dimension of each point: 3 (xyz) + N (attributes) + unsigned int POINTDIM; + + //! storing minimal and maximal values for all dimensions + ip::offset_ptr mins; + ip::offset_ptr maxs; + + //! Details of point attributes + PointType pointtype; + + //! ? + unsigned char max_depth; + ip::offset_ptr child_bit_depth; + ip::offset_ptr child_bit_depth_inv; + int largest_index; + + /** + * Serialization uncritical, runtime relevant variables + */ + + //! Threadlocal storage of parameters used in SearchTree operations + static NNParams params[100]; + + /** + * Serialization uncritical, runtime irrelevant variables (constructor-stuff) + */ + + //! Whether to stop subdividing at N<10 nodes or not + bool earlystop; + + //! Allocator used for creating nodes in the constructor + Allocator* alloc; + +public: + + inline const T* getMins() const { return &(*mins); } + inline const T* getMaxs() const { return &(*maxs); } + inline const T* getCenter() const { return center; } + inline T getSize() const { return size; } + inline unsigned int getPointdim() const { return POINTDIM; } + inline const bitoct& getRoot() const { return *root; } + inline unsigned int getMaxDepth() const { return max_depth; } + + inline void getCenter(double _center[3]) const { + _center[0] = center[0]; + _center[1] = center[1]; + _center[2] = center[2]; + } + + void GetOctTreeCenter(vector&c) { GetOctTreeCenter(c, *root, center, size); } + void GetOctTreeRandom(vector&c) { GetOctTreeRandom(c, *root); } + void GetOctTreeRandom(vector&c, unsigned int ptspervoxel) { GetOctTreeRandom(c, ptspervoxel, *root); } + void AllPoints(vector &vp) { AllPoints(*BOctTree::root, vp); } + + long countNodes() { return 1 + countNodes(*root); } // computes number of inner nodes + long countLeaves() { return countLeaves(*root); } // computes number of leaves + points + long countOctLeaves() { return countOctLeaves(*root); } // computes number of leaves + + void deserialize(std::string filename ) { + char buffer[sizeof(T) * 20]; + T *p = reinterpret_cast(buffer); + + std::ifstream file; + file.open (filename.c_str(), std::ios::in | std::ios::binary); + + // read magic bits + file.read(buffer, 2); + if ( buffer[0] != 'X' || buffer[1] != 'T') { + std::cerr << "Not an octree file!!" << endl; + file.close(); + return; + } + + // read header + pointtype = PointType::deserialize(file); + + file.read(buffer, 5 * sizeof(T)); + voxelSize = p[0]; + center[0] = p[1]; + center[1] = p[2]; + center[2] = p[3]; + size = p[4]; + + file.read(buffer, sizeof(int)); + int *ip = reinterpret_cast(buffer); + POINTDIM = *ip; + + mins = alloc->allocate(POINTDIM); + maxs = alloc->allocate(POINTDIM); + + file.read(reinterpret_cast(&(*mins)), POINTDIM * sizeof(T)); + file.read(reinterpret_cast(&(*maxs)), POINTDIM * sizeof(T)); + + // read root node + uroot = alloc->allocate >(); + root = &uroot->node; + + deserialize(file, *root); + file.close(); + } + + static void deserialize(std::string filename, vector &points ) { + char buffer[sizeof(T) * 20]; + + std::ifstream file; + file.open (filename.c_str(), std::ios::in | std::ios::binary); + + // read magic bits + file.read(buffer, 2); + if ( buffer[0] != 'X' || buffer[1] != 'T') { + std::cerr << "Not an octree file!!" << endl; + file.close(); + return; + } + + // read header + PointType pointtype = PointType::deserialize(file); + + file.read(buffer, 5 * sizeof(T)); // read over voxelsize, center and size + file.read(buffer, sizeof(int)); + + int *ip = reinterpret_cast(buffer); + unsigned int POINTDIM = *ip; + + file.read(buffer, POINTDIM * sizeof(T)); + file.read(buffer, POINTDIM * sizeof(T)); + + // read root node + deserialize(file, points, pointtype); + file.close(); + } + + void serialize(std::string filename) { + char buffer[sizeof(T) * 20]; + T *p = reinterpret_cast(buffer); + + std::ofstream file; + file.open (filename.c_str(), std::ios::out | std::ios::binary); + + // write magic bits + buffer[0] = 'X'; + buffer[1] = 'T'; + file.write(buffer, 2); + + // write header + pointtype.serialize(file); + + p[0] = voxelSize; + p[1] = center[0]; + p[2] = center[1]; + p[3] = center[2]; + p[4] = size; + + int *ip = reinterpret_cast(&(buffer[5 * sizeof(T)])); + *ip = POINTDIM; + + file.write(buffer, 5 * sizeof(T) + sizeof(int)); + + + for (unsigned int i = 0; i < POINTDIM; i++) { + p[i] = mins[i]; + } + for (unsigned int i = 0; i < POINTDIM; i++) { + p[i+POINTDIM] = maxs[i]; + } + + file.write(buffer, 2*POINTDIM * sizeof(T)); + + // write root node + serialize(file, *root); + + file.close(); + } + + static PointType readType(std::string filename ) { + char buffer[sizeof(T) * 20]; + + std::ifstream file; + file.open (filename.c_str(), std::ios::in | std::ios::binary); + + // read magic bits + file.read(buffer, 2); + if ( buffer[0] != 'X' || buffer[1] != 'T') { + std::cerr << "Not an octree file!!" << endl; + file.close(); + return PointType(); + } + + // read header + PointType pointtype = PointType::deserialize(file); + + file.close(); + + return pointtype; + } + + + /** + * Picks the first point in depth first order starting from the given node + * + */ + T* pickPoint(bitoct &node) { + bitunion *children; + bitoct::getChildren(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf + // absolute pointer + //return &(children->points[1].v); + // offset pointer + return children->getPoints(); + } else { // recurse + return pickPoint(children->node); + } + ++children; // next child + } + } + return 0; + } + + static void childcenter(const T *pcenter, T *ccenter, T size, unsigned char i) { + switch (i) { + case 0: // 000 + ccenter[0] = pcenter[0] - size / 2.0; + ccenter[1] = pcenter[1] - size / 2.0; + ccenter[2] = pcenter[2] - size / 2.0; + break; + case 1: // 001 + ccenter[0] = pcenter[0] + size / 2.0; + ccenter[1] = pcenter[1] - size / 2.0; + ccenter[2] = pcenter[2] - size / 2.0; + break; + case 2: // 010 + ccenter[0] = pcenter[0] - size / 2.0; + ccenter[1] = pcenter[1] + size / 2.0; + ccenter[2] = pcenter[2] - size / 2.0; + break; + case 3: // 011 + ccenter[0] = pcenter[0] + size / 2.0; + ccenter[1] = pcenter[1] + size / 2.0; + ccenter[2] = pcenter[2] - size / 2.0; + break; + case 4: // 100 + ccenter[0] = pcenter[0] - size / 2.0; + ccenter[1] = pcenter[1] - size / 2.0; + ccenter[2] = pcenter[2] + size / 2.0; + break; + case 5: // 101 + ccenter[0] = pcenter[0] + size / 2.0; + ccenter[1] = pcenter[1] - size / 2.0; + ccenter[2] = pcenter[2] + size / 2.0; + break; + case 6: // 110 + ccenter[0] = pcenter[0] - size / 2.0; + ccenter[1] = pcenter[1] + size / 2.0; + ccenter[2] = pcenter[2] + size / 2.0; + break; + case 7: // 111 + ccenter[0] = pcenter[0] + size / 2.0; + ccenter[1] = pcenter[1] + size / 2.0; + ccenter[2] = pcenter[2] + size / 2.0; + break; + default: + break; + } + } + + static void childcenter(int x, int y, int z, int &cx, int &cy, int &cz, char i, int size) { + switch (i) { + case 0: // 000 + cx = x - size ; + cy = y - size ; + cz = z - size ; + break; + case 1: // 001 + cx = x + size ; + cy = y - size ; + cz = z - size ; + break; + case 2: // 010 + cx = x - size ; + cy = y + size ; + cz = z - size ; + break; + case 3: // 011 + cx = x + size ; + cy = y + size ; + cz = z - size ; + break; + case 4: // 100 + cx = x - size ; + cy = y - size ; + cz = z + size ; + break; + case 5: // 101 + cx = x + size ; + cy = y - size ; + cz = z + size ; + break; + case 6: // 110 + cx = x - size ; + cy = y + size ; + cz = z + size ; + break; + case 7: // 111 + cx = x + size ; + cy = y + size ; + cz = z + size ; + break; + default: + break; + } + } + +protected: + + void AllPoints( bitoct &node, vector &vp) { + bitunion *children; + bitoct::getChildren(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf get center + // absolute pointer + //pointrep *points = children->points; + // offset pointer + pointrep* points = children->getPointreps(); + unsigned int length = points[0].length; + T *point = &(points[1].v); // first point + for(unsigned int iterator = 0; iterator < length; iterator++ ) { + //T *p = new T[BOctTree::POINTDIM]; +// T *p = new T[3]; +// p[0] = point[0]; p[1] = point[1]; p[2] = point[2]; + T *p = new T[BOctTree::POINTDIM]; + for (unsigned int k = 0; k < BOctTree::POINTDIM; k++) + p[k] = point[k]; + + vp.push_back(p); + + //glVertex3f( point[0], point[1], point[2]); + point+=BOctTree::POINTDIM; + } + } else { // recurse + AllPoints( children->node, vp); + } + ++children; // next child + } + } + } + + static void deserialize(std::ifstream &f, vector &vpoints, PointType &pointtype) { + char buffer[2]; + pointrep *point = new pointrep[pointtype.getPointDim()]; + f.read(buffer, 2); + bitoct node; + node.valid = buffer[0]; + node.leaf = buffer[1]; + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf read points + pointrep first; + f.read(reinterpret_cast(&first), sizeof(pointrep)); + unsigned int length = first.length; // read first element, which is the length + for (unsigned int k = 0; k < length; k++) { + f.read(reinterpret_cast(point), sizeof(pointrep) * pointtype.getPointDim()); // read the points + vpoints.push_back( pointtype.createPoint( &(point->v ) ) ); + } + } else { // write child + deserialize(f, vpoints, pointtype); + } + } + } + delete [] point; + } + + void deserialize(std::ifstream &f, bitoct &node) { + char buffer[2]; + f.read(buffer, 2); + node.valid = buffer[0]; + node.leaf = buffer[1]; + + unsigned short n_children = POPCOUNT(node.valid); + + // create children + bitunion *children = alloc->allocate >(n_children); + bitoct::link(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf read points + pointrep first; + f.read(reinterpret_cast(&first), sizeof(pointrep)); + unsigned int length = first.length; // read first element, which is the length + pointrep *points = alloc->allocate (POINTDIM*length + 1); + // absolute pointer + //children->points = points; + // offset pointer + bitunion::link(children, points); + points[0] = first; + points++; + f.read(reinterpret_cast(points), sizeof(pointrep) * length * POINTDIM); // read the points + } else { // write child + deserialize(f, children->node); + } + ++children; // next child + } + } + } + + void serialize(std::ofstream &of, bitoct &node) { + char buffer[2]; + buffer[0] = node.valid; + buffer[1] = node.leaf; + of.write(buffer, 2); + + + // write children + bitunion *children; + bitoct::getChildren(node, children); + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf write points + // absolute pointer + //pointrep *points = children->points; + // offset pointer + pointrep* points = children->getPointreps(); + unsigned int length = points[0].length; + of.write(reinterpret_cast(points), sizeof(pointrep) * (length * POINTDIM +1)); + } else { // write child + serialize(of, children->node); + } + ++children; // next child + } + } + } + + void GetOctTreeCenter(vector&c, bitoct &node, T *center, T size) { + T ccenter[3]; + bitunion *children; + bitoct::getChildren(node, children); + + for (unsigned char i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + childcenter(center, ccenter, size, i); // childrens center + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf get center + T * cp = new T[3]; + for (unsigned int iterator = 0; iterator < 3; iterator++) { + cp[iterator] = ccenter[iterator]; + } + c.push_back(cp); + } else { // recurse + GetOctTreeCenter(c, children->node, ccenter, size/2.0); + } + ++children; // next child + } + } + } + + void GetOctTreeRandom(vector&c, bitoct &node) { + bitunion *children; + bitoct::getChildren(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf + // absolute pointer + //pointrep *points = children->points; + // offset pointer + pointrep* points = children->getPointreps(); + // new version to ignore leaves with less than 3 points + /* + if(points[0].length > 2) { + for(int tmp = 0; tmp < points[0].length; tmp++) { + T *point = &(points[POINTDIM*tmp+1].v); + c.push_back(point); + } + } + */ + //old version + + int tmp = rand(points[0].length); + T *point = &(points[POINTDIM*tmp+1].v); + c.push_back(point); + + + } else { // recurse + GetOctTreeRandom(c, children->node); + } + ++children; // next child + } + } + } + + void GetOctTreeRandom(vector&c, unsigned int ptspervoxel, bitoct &node) { + bitunion *children; + bitoct::getChildren(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf + // absolute pointer + //pointrep *points = children->points; + // offset pointer + pointrep* points = children->getPointreps(); + unsigned int length = points[0].length; + if (ptspervoxel >= length) { + for (unsigned int j = 0; j < length; j++) + c.push_back(&(points[POINTDIM*j+1].v)); + + ++children; // next child + continue; + } + set indices; + while(indices.size() < ptspervoxel) { + int tmp = rand(length-1); + indices.insert(tmp); + } + for(set::iterator it = indices.begin(); it != indices.end(); it++) + c.push_back(&(points[POINTDIM*(*it)+1].v)); + + } else { // recurse + GetOctTreeRandom(c, ptspervoxel, children->node); + } + ++children; // next child + } + } + } + + long countNodes(bitoct &node) { + long result = 0; + bitunion *children; + bitoct::getChildren(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf + //++result; + } else { // recurse + result += countNodes(children->node) + 1; + } + ++children; // next child + } + } + return result; + } + + long countLeaves(bitoct &node) { + long result = 0; + bitunion *children; + bitoct::getChildren(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf + long nrpts = children->getLength(); + result += POINTDIM*nrpts; + } else { // recurse + result += countLeaves(children->node); + } + ++children; // next child + } + } + return result; + } + + long countOctLeaves(bitoct &node) { + long result = 0; + bitunion *children; + bitoct::getChildren(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf + result ++; + } else { // recurse + result += countTrueLeaves(children->node); + } + ++children; // next child + } + } + return result; + } + + // TODO: is this still needed? nodes and pointreps are all in the Allocator + void deletetNodes(bitoct &node) { + bitunion *children; + bitoct::getChildren(node, children); + bool haschildren = false; + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf + // absolute pointer + //delete [] children->points; + // offset pointer + delete [] children->getPointreps(); + } else { // recurse + deletetNodes(children->node); + } + ++children; // next child + haschildren = true; + } + } + // delete children + if (haschildren) { + bitoct::getChildren(node, children); + } + } + + template + void* branch( bitoct &node, P * const * splitPoints, int n, T _center[3], T _size) { + // if bucket is too small stop building tree + // ----------------------------------------- + if ((_size <= voxelSize) || (earlystop && n <= 10) ) { + + // copy points + pointrep *points = alloc->allocate (POINTDIM*n + 1); + + points[0].length = n; + int i = 1; + for (int j = 0; j < n; j++) { + for (unsigned int iterator = 0; iterator < POINTDIM; iterator++) { + points[i++].v = splitPoints[j][iterator]; + } + } + return points; + } + + // calculate new buckets + T newcenter[8][3]; + T sizeNew; + + sizeNew = _size / 2.0; + + for (unsigned char i = 0; i < 8; i++) { + childcenter(_center, newcenter[i], _size, i); + } + + countPointsAndQueueFast(splitPoints, n, newcenter, sizeNew, node, _center); + return 0; + } + + template + void* branch( bitoct &node, vector &splitPoints, T _center[3], T _size) { + // if bucket is too small stop building tree + // ----------------------------------------- + if ((_size <= voxelSize) || (earlystop && splitPoints.size() <= 10) ) { + // copy points + pointrep *points = alloc->allocate (POINTDIM*splitPoints.size() + 1); + points[0].length = splitPoints.size(); + int i = 1; + for (typename vector

::iterator itr = splitPoints.begin(); + itr != splitPoints.end(); itr++) { + for (unsigned int iterator = 0; iterator < POINTDIM; iterator++) { + points[i++].v = (*itr)[iterator]; + } + } + return points; + } + + // calculate new buckets + T newcenter[8][3]; + T sizeNew; + + sizeNew = _size / 2.0; + + for (unsigned char i = 0; i < 8; i++) { + childcenter(_center, newcenter[i], _size, i); + } + + countPointsAndQueue(splitPoints, newcenter, sizeNew, node, _center); + return 0; + } + + template + void countPointsAndQueue(vector &i_points, T center[8][3], T size, bitoct &parent, T *pcenter) { + vector points[8]; + int n_children = 0; + for (typename vector

::iterator itr = i_points.begin(); itr != i_points.end(); itr++) { + points[childIndex

(pcenter, *itr)].push_back( *itr ); + } + + i_points.clear(); + vector().swap(i_points); + for (int j = 0; j < 8; j++) { + if (!points[j].empty()) { + parent.valid = ( 1 << j ) | parent.valid; + ++n_children; + } + } + // create children + bitunion *children = alloc->allocate >(n_children); + bitoct::link(parent, children); + + int count = 0; + for (int j = 0; j < 8; j++) { + if (!points[j].empty()) { + pointrep *c = (pointrep*)branch(children[count].node, points[j], center[j], size); // leaf node + if (c) { + // absolute pointer + //children[count].points = c; // set this child to deque of points + // offset pointer + bitunion::link(&children[count], c); + parent.leaf = ( 1 << j ) | parent.leaf; // remember this is a leaf + } + points[j].clear(); + vector().swap(points[j]); + ++count; + } + } + } + + template + void countPointsAndQueueFast(P * const* points, int n, T center[8][3], T size, bitoct &parent, T pcenter[3]) { + P * const *blocks[9]; + blocks[0] = points; + blocks[8] = points + n; + fullsort(points, n, pcenter, blocks+1); + + int n_children = 0; + + for (int j = 0; j < 8; j++) { + // if non-empty set valid flag for this child + if (blocks[j+1] - blocks[j] > 0) { + parent.valid = ( 1 << j ) | parent.valid; + ++n_children; + } + } + + // create children + bitunion *children = alloc->allocate >(n_children); + bitoct::link(parent, children); + int count = 0; + for (int j = 0; j < 8; j++) { + if (blocks[j+1] - blocks[j] > 0) { + pointrep *c = (pointrep*)branch(children[count].node, blocks[j], blocks[j+1] - blocks[j], center[j], size); // leaf node + if (c) { + // absolute pointer + //children[count].points = c; // set this child to vector of points + // offset pointer + bitunion::link(&children[count], c); // set this child to vector of points + parent.leaf = ( 1 << j ) | parent.leaf; // remember this is a leaf + } + ++count; + } + } + } + + + void getByIndex(T *point, T *&points, unsigned int &length) { + unsigned int x,y,z; + x = (point[0] + add[0]) * mult; + y = (point[1] + add[1]) * mult; + z = (point[2] + add[2]) * mult; + + bitunion *node = uroot; + unsigned char child_index; + unsigned int child_bit; + unsigned int depth = 0; + + while (true) { + child_bit = child_bit_depth[depth]; + child_index = ((x & child_bit )!=0) | (((y & child_bit )!=0 )<< 1) | (((z & child_bit )!=0) << 2); + if (node->childIsLeaf(child_index) ) { + node = node->getChild(child_index); + points = node->getPoints(); + length = node->getLength(); + return; + } else { + node = node->getChild(child_index); + } + depth++; + } + } + + template + inline unsigned char childIndex(const T *center, const P *point) { + return (point[0] > center[0] ) | ((point[1] > center[1] ) << 1) | ((point[2] > center[2] ) << 2) ; + } + + /** + * Given a leaf node, this function looks for the closest point to params[threadNum].closest + * in the list of points. + */ + inline void findClosestInLeaf(bitunion *node, int threadNum) const { + if (params[threadNum].count >= params[threadNum].max_count) return; + params[threadNum].count++; + T* points = node->getPoints(); + unsigned int length = node->getLength(); + for(unsigned int iterator = 0; iterator < length; iterator++ ) { + double myd2 = Dist2(params[threadNum].p, points); + if (myd2 < params[threadNum].closest_d2) { + params[threadNum].closest_d2 = myd2; + params[threadNum].closest = points; + if (myd2 <= 0.0001) { + params[threadNum].closest_v = 0; // the search radius in units of voxelSize + } else { + params[threadNum].closest_v = sqrt(myd2) * mult + 1; // the search radius in units of voxelSize + } + } + points+=BOctTree::POINTDIM; + } + } + + + +/** + * This function finds the closest point in the octree given a specified + * radius. This implementation is quit complex, although it is already + * simplified. The simplification incurs a significant loss in speed, as + * several calculations have to be performed repeatedly and a high number of + * unnecessary jumps are executed. + */ + double *FindClosest(double *point, double maxdist2, int threadNum) const + { + params[threadNum].closest = 0; // no point found currently + params[threadNum].closest_d2 = maxdist2; + params[threadNum].p = point; + params[threadNum].x = (point[0] + add[0]) * mult; + params[threadNum].y = (point[1] + add[1]) * mult; + params[threadNum].z = (point[2] + add[2]) * mult; + params[threadNum].closest_v = sqrt(maxdist2) * mult + 1; // the search radius in units of voxelSize + params[threadNum].count = 0; + params[threadNum].max_count = 10000; // stop looking after this many buckets + + + // box within bounds in voxel coordinates + int xmin, ymin, zmin, xmax, ymax, zmax; + xmin = max(params[threadNum].x-params[threadNum].closest_v, 0); + ymin = max(params[threadNum].y-params[threadNum].closest_v, 0); + zmin = max(params[threadNum].z-params[threadNum].closest_v, 0); + +// int largest_index = child_bit_depth[0] * 2 -1; + + xmax = min(params[threadNum].x+params[threadNum].closest_v, largest_index); + ymax = min(params[threadNum].y+params[threadNum].closest_v, largest_index); + zmax = min(params[threadNum].z+params[threadNum].closest_v, largest_index); + + unsigned char depth = 0; + unsigned int child_bit; + unsigned int child_index_min; + unsigned int child_index_max; + + bitunion *node = &(*uroot); + + int cx, cy, cz; + + child_bit = child_bit_depth[depth]; + cx = child_bit_depth[depth]; + cy = child_bit_depth[depth]; + cz = child_bit_depth[depth]; + + while (true) { // find the first node where branching is required + child_index_min = ((xmin & child_bit )!=0) | (((ymin & child_bit )!=0 )<< 1) | (((zmin & child_bit )!=0) << 2); + child_index_max = ((xmax & child_bit )!=0) | (((ymax & child_bit )!=0 )<< 1) | (((zmax & child_bit )!=0) << 2); + + // if these are the same, go there + // TODO: optimization: also traverse if only single child... + if (child_index_min == child_index_max) { + if (node->childIsLeaf(child_index_min) ) { // luckily, no branching is required + findClosestInLeaf(node->getChild(child_index_min), threadNum); + return static_cast(params[threadNum].closest); + } else { + if (node->isValid(child_index_min) ) { // only descend when there is a child + childcenter(cx,cy,cz, cx,cy,cz, child_index_min, child_bit/2 ); + node = node->getChild(child_index_min); + child_bit /= 2; + } else { // there is no child containing the bounding box => no point is close enough + return 0; + } + } + } else { + // if min and max are not in the same child we must branch + break; + } + } + + // node contains all box-within-bounds cells, now begin best bin first search + _FindClosest(threadNum, node->node, child_bit/2, cx, cy, cz); + return static_cast(params[threadNum].closest); + } + + /** + * This is the heavy duty search function doing most of the (theoretically unneccesary) work. The tree is recursively searched. + * Depending on which of the 8 child-voxels is closer to the query point, the children are examined in a special order. + * This order is defined in map, imap is its inverse and sequence2ci is a speedup structure for faster access to the child indices. + */ + void _FindClosest(int threadNum, bitoct &node, int size, int x, int y, int z) const + { + // Recursive case + + // compute which child is closest to the query point + unsigned char child_index = ((params[threadNum].x - x) >= 0) | + (((params[threadNum].y - y) >= 0) << 1) | + (((params[threadNum].z - z) >= 0) << 2); + + char *seq2ci = sequence2ci[child_index][node.valid]; // maps preference to index in children array + char *mmap = amap[child_index]; // maps preference to area index + + bitunion *children; + bitoct::getChildren(node, children); + int cx, cy, cz; + cx = cy = cz = 0; // just to shut up the compiler warnings + for (unsigned char i = 0; i < 8; i++) { // in order of preference + child_index = mmap[i]; // the area index of the node + if ( ( 1 << child_index ) & node.valid ) { // if ith node exists + childcenter(x,y,z, cx,cy,cz, child_index, size); + if ( params[threadNum].closest_v == 0 || max(max(abs( cx - params[threadNum].x ), + abs( cy - params[threadNum].y )), + abs( cz - params[threadNum].z )) - size + > params[threadNum].closest_v ) { + continue; + } + // find the closest point in leaf seq2ci[i] + if ( ( 1 << child_index ) & node.leaf ) { // if ith node is leaf + findClosestInLeaf( &children[seq2ci[i]], threadNum); + } else { // recurse + _FindClosest(threadNum, children[seq2ci[i]].node, size/2, cx, cy, cz); + } + } + } + } + + + /** + * This function shows the possible speedup that can be gained by using the + * octree for nearest neighbour search, if a more sophisticated + * implementation were given. Here, only the bucket in which the query point + * falls is looked up. If doing the same thing in the kd-tree search, this + * function is about 3-5 times as fast + */ + double *FindClosestInBucket(double *point, double maxdist2, int threadNum) { + params[threadNum].closest = 0; + params[threadNum].closest_d2 = maxdist2; + params[threadNum].p = point; + unsigned int x,y,z; + x = (point[0] + add[0]) * mult; + y = (point[1] + add[1]) * mult; + z = (point[2] + add[2]) * mult; + T * points; + unsigned int length; + + bitunion *node = uroot; + unsigned char child_index; + + unsigned int child_bit = child_bit_depth[0]; + + while (true) { + child_index = ((x & child_bit )!=0) | (((y & child_bit )!=0 )<< 1) | (((z & child_bit )!=0) << 2); + if (node->childIsLeaf(child_index) ) { + node = node->getChild(child_index); + points = node->getPoints(); + length = node->getLength(); + + for(unsigned int iterator = 0; iterator < length; iterator++ ) { + double myd2 = Dist2(params[threadNum].p, points); + if (myd2 < params[threadNum].closest_d2) { + params[threadNum].closest_d2 = myd2; + params[threadNum].closest = points; + } + points+=BOctTree::POINTDIM; + } + return static_cast(params[threadNum].closest); + } else { + if (node->isValid(child_index) ) { + node = node->getChild(child_index); + } else { + return 0; + } + } + child_bit >>= 1; + } + return static_cast(params[threadNum].closest); + } + + +template + void fullsort(P * const * points, int n, T splitval[3], P * const * blocks[9]) { + P* const * L0; + P* const * L1; + P* const * L2; + unsigned int n0L, n0R, n1L, n1R ; + + // sort along Z + L0 = sort(points, n, splitval[2], 2); + + n0L = L0 - points; + // sort along Y (left of Z) points -- L0 + L1 = sort(points, n0L, splitval[1], 1); + + n1L = L1 - points; + // sort along X (left of Y) points -- L1 + L2 = sort(points, n1L, splitval[0], 0); + + blocks[0] = L2; + + n1R = n0L - n1L; + // sort along X (right of Y) // L1 -- L0 + L2 = sort(L1, n1R, splitval[0], 0); + + blocks[1] = L1; + blocks[2] = L2; + + n0R = n - n0L; + // sort along Y (right of Z) L0 -- end + L1 = sort(L0, n0R, splitval[1], 1); + + n1L = L1 - L0; + // sort along X (left of Y) points -- L1 + L2 = sort(L0, n1L, splitval[0], 0); + + blocks[3] = L0; + blocks[4] = L2; + + n1R = n0R - n1L; + // sort along X (right of Y) // L1 -- L0 + L2 = sort(L1, n1R, splitval[0], 0); + + blocks[5] = L1; + blocks[6] = L2; + } + + + template + P* const * sort(P* const * points, unsigned int n, T splitval, unsigned char index) { + if (n==0) return points; + + if (n==1) { + if (points[0][index] < splitval) + return points+1; + else + return points; + } + + P **left = const_cast(points); + P **right = const_cast(points + n - 1); + + + while (1) { + while ((*left)[index] < splitval) + { + left++; + if (right < left) + break; + } + while ((*right)[index] >= splitval) + { + right--; + if (right < left) + break; + } + if (right < left) + break; + + std::swap(*left, *right); + } + return left; + } + +public: + /** + * Copies another (via new constructed) octtree into cache allocated memory and makes it position independant + */ + BOctTree(const BOctTree& other, unsigned char* mem_ptr, unsigned int mem_max) + { + alloc = new SequentialAllocator(mem_ptr, mem_max); + + // "allocate" space for *this + alloc->allocate >(); + + // take members + unsigned int i; + for(i = 0; i < 3; ++i) + center[i] = other.center[i]; + size = other.size; + voxelSize = other.voxelSize; + real_voxelSize = other.real_voxelSize; + for(i = 0; i < 3; ++i) + add[i] = other.add[i]; + mult = other.mult; + POINTDIM = other.POINTDIM; + mins = alloc->allocate(POINTDIM); + maxs = alloc->allocate(POINTDIM); + for(i = 0; i < POINTDIM; ++i) { + mins[i] = other.mins[i]; + maxs[i] = other.maxs[i]; + } + pointtype = other.pointtype; + max_depth = other.max_depth; + child_bit_depth = alloc->allocate(max_depth); + child_bit_depth_inv = alloc->allocate(max_depth); + for(i = 0; i < max_depth; ++i) { + child_bit_depth[i] = other.child_bit_depth[i]; + child_bit_depth_inv[i] = other.child_bit_depth_inv[i]; + } + largest_index = other.largest_index; + + // take node structure + uroot = alloc->allocate >(); + root = &uroot->node; + copy_children(*other.root, *root); + + // test if allocator has used up his space + //alloc->printSize(); + + // discard allocator, space is managed by the cache manager + delete alloc; alloc = 0; + } + +private: + void copy_children(const bitoct& other, bitoct& my) { + // copy node attributes + my.valid = other.valid; + my.leaf = other.leaf; + + // other children + bitunion* other_children; + bitoct::getChildren(other, other_children); + + // create own children + unsigned int n_children = POPCOUNT(other.valid); + bitunion* my_children = alloc->allocate >(n_children); + bitoct::link(my, my_children); + + // iterate over all (valid) children and copy them + for(unsigned int i = 0; i < 8; ++i) { + if((1<getLength(); + pointrep* other_pointreps = other_children->getPointreps(); + pointrep* my_pointreps = alloc->allocate(POINTDIM * length + 1); + for(unsigned int j = 0; j < POINTDIM * length + 1; ++j) + my_pointreps[j] = other_pointreps[j]; + // assign + bitunion::link(my_children, my_pointreps); + } else { + // child is already created, copy and create children for it + copy_children(other_children->node, my_children->node); + } + ++other_children; + ++my_children; + } + } + } + +public: + //! Size of the whole tree structure, including the main class, its serialize critical allocated variables and nodes, not the allocator + unsigned int getMemorySize() + { + return sizeof(*this) // all member variables + + 2*POINTDIM*sizeof(T) // mins, maxs + + 2*max_depth*sizeof(unsigned int) // child_bit_depth(_inv) + + sizeof(bitunion) // uroot + + sizeChildren(*root); // all nodes + } + +private: + //! Recursive size of a node's children + unsigned int sizeChildren(const bitoct& node) { + unsigned int s = 0; + bitunion* children; + bitoct::getChildren(node, children); + + // size of children allocation + unsigned int n_children = POPCOUNT(node.valid); + s += sizeof(bitunion)*n_children; + + // iterate over all (valid) children and sum them up + for(unsigned int i = 0; i < 8; ++i) { + if((1<getLength()*POINTDIM+1); + } else { + // childe node is already accounted for, add its children + s += sizeChildren(children->node); + } + ++children; // next (valid) child + } + } + return s; + } +}; + +typedef SingleObject > DataOcttree; + +template +NNParams BOctTree::params[100]; + +#endif diff --git a/.svn/pristine/72/72dcb9f74cfa4206527fca731e68763910781f37.svn-base b/.svn/pristine/72/72dcb9f74cfa4206527fca731e68763910781f37.svn-base new file mode 100644 index 0000000..5dc1b50 --- /dev/null +++ b/.svn/pristine/72/72dcb9f74cfa4206527fca731e68763910781f37.svn-base @@ -0,0 +1,145 @@ +/** + * @file + * @brief Implementation of reading 3D scans + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "slam6d/scan_io_ifp.h" +#include "slam6d/globals.icc" +#include +using std::ifstream; +#include +using std::cerr; +using std::endl; + +#ifdef _MSC_VER +#include +#endif + +/** + * Reads specified scans from given directory. + * + * Scan poses will NOT be initialized after a call + * to this function. + * + * + * @param s 3D Scan to be read. The vector of points must be filled + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param maxDist Reads only Points up to this Distance + * @param dir The directory from which to read + */ +int ScanIO_ifp::readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss) +{ + static int fileCounter = start; + string scanFileName; + string poseFileName; + ifstream scan_in, pose_in; + + int my_fileNr = fileCounter; + + if (end > -1 && fileCounter > end) return -1; // 'nuf read + + scanFileName = dir + "ScanWorld " + to_string(fileCounter) + ".pts"; + scan_in.open(scanFileName.c_str()); + // read 3D scan + + if (!scan_in.good()) { + scanFileName = dir + "SW" + to_string(fileCounter) + ".pts"; + scan_in.open(scanFileName.c_str()); + } + if (!scan_in.good()) { + return -1; + } + cout << "Processing Scan " << scanFileName; + + euler[0] = euler[1] = euler[2] = euler[3] = euler[4] = euler[5] = 0.0; + + cout << " @ pose (" << euler[0] << "," << euler[1] << "," << euler[2] + << "," << euler[3] << "," << euler[4] << "," << euler[5] << ")" << endl; + + // convert angles from deg to rad + for (unsigned int i = 3; i <= 5; i++) euler[i] = rad(euler[i]); + + // some noise for the pose estimations + /* + double t1 = (double)(rand() % 100); + double t2 = (double)(rand() % 100); + double t3 = (double)(rand() % 100); + double t4 = (double)(rand() % 5) * 0.025; + euler[4] = t4; + + cout << "dx " << t1 << " dy " << t2 << " dz " << t3 << " dtheta_y " << t4 << endl; + */ + + int dummy; + scan_in >> dummy; + while (scan_in.good()) { + Point p; + int intensity, red, green, blue; + scan_in >> p.z >> p.x >> p.y >> intensity >> red >> green >> blue; + + p.z -= 3515165; + p.x -= 5407003; + p.y -= 254; + + p.x *= -100; + p.y *= 100; + p.z *= 100; + + /* + p.z += t1; + p.x += t2; + p.y += t3; + */ + //cout << p << endl; + ptss.push_back(p); + } + + scan_in.close(); + scan_in.clear(); + pose_in.close(); + pose_in.clear(); + fileCounter++; + + return my_fileNr; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_ifp; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/.svn/pristine/73/7349f67fe2e1a7dcfb9fd16f17c555385ad1ede7.svn-base b/.svn/pristine/73/7349f67fe2e1a7dcfb9fd16f17c555385ad1ede7.svn-base new file mode 100644 index 0000000..06ea5f1 --- /dev/null +++ b/.svn/pristine/73/7349f67fe2e1a7dcfb9fd16f17c555385ad1ede7.svn-base @@ -0,0 +1,33 @@ +VerticalCorrection, RotationalCorrection, DistanceCorrection, VerticalOffset, HorizontalOffset +-30.67, 0, 0, 0, 0, 1 +-9.3299999, 0, 0, 0, 0, 1 +-29.33, 0, 0, 0, 0, 1 +-8, 0, 0, 0, 0, 1 +-28, 0, 0, 0, 0, 1 +-6.6700001, 0, 0, 0, 0, 1 +-26.67, 0, 0, 0, 0, 1 +-5.3299999, 0, 0, 0, 0, 1 +-25.33, 0, 0, 0, 0, 1 +-4, 0, 0, 0, 0, 1 +-24, 0, 0, 0, 0, 1 +-2.6700001, 0, 0, 0, 0, 1 +-22.67, 0, 0, 0, 0, 1 +-1.33, 0, 0, 0, 0, 1 +-21.33, 0, 0, 0, 0, 1 +0, 0, 0, 0, 0, 1 +-20, 0, 0, 0, 0, 1 +1.33, 0, 0, 0, 0, 1 +-18.67, 0, 0, 0, 0, 1 +2.6700001, 0, 0, 0, 0, 1 +-17.33, 0, 0, 0, 0, 1 +4, 0, 0, 0, 0, 1 +-16, 0, 0, 0, 0, 1 +5.3299999, 0, 0, 0, 0, 1 +-14.67, 0, 0, 0, 0, 1 +6.6700001, 0, 0, 0, 0, 1 +-13.33, 0, 0, 0, 0, 1 +8, 0, 0, 0, 0, 1 +-12, 0, 0, 0, 0, 1 +9.3299999, 0, 0, 0, 0, 1 +-10.67, 0, 0, 0, 0, 1 +10.67, 0, 0, 0, 0, 1 diff --git a/.svn/pristine/73/73c9d1cd44976b694fb3baaa0db669cbfaf041c8.svn-base b/.svn/pristine/73/73c9d1cd44976b694fb3baaa0db669cbfaf041c8.svn-base new file mode 100644 index 0000000..fa9cc20 --- /dev/null +++ b/.svn/pristine/73/73c9d1cd44976b694fb3baaa0db669cbfaf041c8.svn-base @@ -0,0 +1,67 @@ +/** @file + * @brief Implementation of the virtual functor for a loop closing algorithm + * @author Jochen Sprickerhof + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __LOOPSLAM6D_H__ +#define __LOOPSLAM6D_H__ + +#include +using std::vector; + +#include "icp6D.h" +#include "icp6Dminimizer.h" +#include "scan.h" +#include "graph.h" + +class loopSlam6D { + +public: + /** + * Constructor + * @param _quiet suppress informative output + * @param my_icp6Dminimizer the used ICP algorithm + * @param mdm maximal distance match for ICP + * @param max_num_iterations Maximal number of iterations for ICP + * @param rnd randomized point selection for ICP + * @param eP Extrapolate odometry + * @param anim animate scan matching + * @param epsilonICP the ICP epsilon + * @param nns_method the k-d tree search + */ + loopSlam6D(bool _quiet, icp6Dminimizer *my_icp6Dminimizer, double mdm, int max_num_iterations, int rnd, bool eP, int anim, double epsilonICP, int nns_method) + { + this->quiet = _quiet; + this->my_icp6D = new icp6D(my_icp6Dminimizer, mdm, max_num_iterations, + quiet, false, rnd, eP, anim, epsilonICP, nns_method); + }; + + /** + * Destructor + */ + virtual ~loopSlam6D() { + delete my_icp6D; + }; + + /** + * virtual loop closing function + * @param allScans all laser scans + * @param first index of first laser scan in the loop + * @param last indes of last laser scan in the loop + * @param g graph for loop optimization + */ + virtual void close_loop(const vector &allScans, int first, int last, graph_t &g) = 0; + +protected: + bool quiet; + + /** + * pointer to the ICP framework + */ + icp6D *my_icp6D; + +}; + +#endif diff --git a/.svn/pristine/73/73f4b34ee616fbdb36fe3cc2d7dcec5f665d89c3.svn-base b/.svn/pristine/73/73f4b34ee616fbdb36fe3cc2d7dcec5f665d89c3.svn-base new file mode 100644 index 0000000..47847d4 --- /dev/null +++ b/.svn/pristine/73/73f4b34ee616fbdb36fe3cc2d7dcec5f665d89c3.svn-base @@ -0,0 +1,56 @@ +/** + * @file + * @brief + * + * @author Thomas Escher + */ + +#ifndef SCAN_HANDLER_H +#define SCAN_HANDLER_H + +#include "scanserver/temporaryHandler.h" +#include +#include + + +/** + * @brief CacheHandler for scan files. + * + * This class handles scan files. On a cache miss it reads from the original scan file by calling ScanIO to load the proper library for input. + * If binary scan caching is enabled the TemporaryHandler functionality is invoked in saves and, if binary scan caching is enabled, also on loads. In the latter case the binary cache file has priority over parsing the scan anew. Invalidation is taken into consideration, reloading the scan with new range parameters. + */ +class ScanHandler : public TemporaryHandler +{ +public: + ScanHandler(CacheObject* obj, CacheManager* cm, SharedScan* scan, IODataType data); + + /** + * Reads specific scan data from a file, located by SharedScan's identifiers via ScanIO. + * If binary caching is enabled it will try to read from this resource first to speed up the process. + * @return true, will throw otherwise because we are desperate for scans + * @throw if both the binary cache and the scan resource were unavailable + */ + virtual bool load(); + + /** + * Does nothing unless binary caching is enabled, which will save the contents via CacheIO. + */ + virtual void save(unsigned char* data, unsigned int size); + + //! Enable binary caching of scan data + static void setBinaryCaching(); +private: + IODataType m_data; + + static bool binary_caching; + + //! Cached vectors for prefetching + static std::map* > m_prefetch_xyz; + static std::map* > m_prefetch_rgb; + static std::map* > m_prefetch_reflectance; + static std::map* > m_prefetch_amplitude; + static std::map* > m_prefetch_type; + static std::map* > m_prefetch_deviation; +}; + +#endif //SCAN_HANDLER_H diff --git a/.svn/pristine/73/73ffd7806c5802cd32dd12fd9af5f289c364ac3b.svn-base b/.svn/pristine/73/73ffd7806c5802cd32dd12fd9af5f289c364ac3b.svn-base new file mode 100644 index 0000000..2ddbd32 --- /dev/null +++ b/.svn/pristine/73/73ffd7806c5802cd32dd12fd9af5f289c364ac3b.svn-base @@ -0,0 +1,152 @@ + +//#define WANT_STREAM + +#include "include.h" + +#include "newmatap.h" +//#include "newmatio.h" + +#include "tmt.h" + +#ifdef use_namespace +using namespace NEWMAT; +#endif + + +void trymatj() +{ + Tracer et("Nineteenth test of Matrix package"); + Tracer::PrintTrace(); + // testing elementwise (SP) products + + { + Tracer et1("Stage 1"); + Matrix A(13,7), B(13,7), C(13,7); + int i,j; + for (i=1;i<=13;i++) for (j=1; j<=7; j++) + { + Real a = (i+j*j)/2, b = (i*j-i/4); + A(i,j)=a; B(i,j)=b; C(i,j)=a*b; + } + // Where complete matrix routine can be used + Matrix X = SP(A,B)-C; Print(X); + X = SP(A,B+1.0)-A-C; Print(X); + X = SP(A-1,B)+B-C; Print(X); + X = SP(A-1,B+1)+B-A-C+1; Print(X); + // Where row-wise routine will be used + A = A.Rows(7,13); B = B.Rows(7,13); C = C.Rows(7,13); + LowerTriangularMatrix LTA; LTA << A; + UpperTriangularMatrix UTB; UTB << B; + DiagonalMatrix DC; DC << C; + X = SP(LTA,UTB) - DC; Print(X); + X = SP(LTA*2,UTB) - DC*2; Print(X); + X = SP(LTA, UTB /2) - DC/2; Print(X); + X = SP(LTA/2, UTB*2) - DC; Print(X); + DiagonalMatrix DX; + DX << SP(A,B); DX << (DX-C); Print(DX); + DX << SP(A*4,B); DX << (DX-C*4); Print(DX); + DX << SP(A,B*2); DX << (DX-C*2); Print(DX); + DX << SP(A/4,B/4); DX << (DX-C/16); Print(DX); + LowerTriangularMatrix LX; + LX = SP(LTA,B); LX << (LX-C); Print(LX); + LX = SP(LTA*3,B); LX << (LX-C*3); Print(LX); + LX = SP(LTA,B*5); LX << (LX-C*5); Print(LX); + LX = SP(-LTA,-B); LX << (LX-C); Print(LX); + } + { + // Symmetric Matrices + Tracer et1("Stage 2"); + SymmetricMatrix A(25), B(25), C(25); + int i,j; + for (i=1;i<=25;i++) for (j=i;j<=25;j++) + { + Real a = i*j +i - j + 3; + Real b = i * i + j; + A(i,j)=a; B(i,j)=b; C(i,j)=a*b; + } + UpperTriangularMatrix UT; + UT << SP(A,B); UT << (UT - C); Print(UT); + Matrix MA = A, X; + X = SP(MA,B)-C; Print(X); + X = SP(A,B)-C; Print(X); + SymmetricBandMatrix BA(25,5), BB(25,5), BC(25,5); + BA.Inject(A); BB.Inject(B); BC.Inject(C); + X = SP(BA,BB)-BC; Print(X); + X = SP(BA*7,BB)-BC*7; Print(X); + X = SP(BA,BB/8)-BC/8; Print(X); + X = SP(BA*16,BB/16)-BC; Print(X); + X = SP(BA,BB); X=X-BC; Print(X); + X = SP(BA*2, BB/2)-BC; Print(X); + X = SP(BA, BB/2)-BC/2; Print(X); + X = SP(BA*2, BB)-BC*2; Print(X); + } + { + // Band matrices + Tracer et1("Stage 3"); + Matrix A(19,19), B(19,19), C(19,19); + int i,j; + for (i=1;i<=19;i++) for (j=1;j<=19;j++) + { + Real a = i*j +i - 1.5*j + 3; + Real b = i * i + j; + A(i,j)=a; B(i,j)=b; C(i,j)=a*b; + } + BandMatrix BA(19,10,7), BB(19,8,15), BC(19,8,7); + BA.Inject(A); BB.Inject(B); BC.Inject(C); + Matrix X; BandMatrix BX; ColumnVector BW(2); + X = SP(BA,BB); X=X-BC; Print(X); + X = SP(BA/8,BB); X=X-BC/8; Print(X); + X = SP(BA,BB*17); X=X-BC*17; Print(X); + X = SP(BA/4,BB*7); X=X-BC*7/4; Print(X); + X = SP(BA,BB)-BC; Print(X); + X = SP(BA/8,BB)-BC/8; Print(X); + X = SP(BA,BB*17)-BC*17; Print(X); + X = SP(BA/4,BB*7)-BC*7/4; Print(X); + BX = SP(BA,BB); + BW(1)=BX.upper-7; BW(2)=BX.lower-8; Print(BW); + + BA.ReSize(19,7,10); BB.ReSize(19,15,8); + BC.ReSize(19,7,8); + BA.Inject(A); BB.Inject(B); BC.Inject(C); + + X = SP(BA,BB); X=X-BC; Print(X); + X = SP(BA/8,BB); X=X-BC/8; Print(X); + X = SP(BA,BB*17); X=X-BC*17; Print(X); + X = SP(BA/4,BB*7); X=X-BC*7/4; Print(X); + X = SP(BA,BB)-BC; Print(X); + X = SP(BA/8,BB)-BC/8; Print(X); + X = SP(BA,BB*17)-BC*17; Print(X); + X = SP(BA/4,BB*7)-BC*7/4; Print(X); + BX = SP(BA,BB); + BW(1)=BX.upper-8; BW(2)=BX.lower-7; Print(BW); + } + { + // SymmetricBandMatrices + Tracer et1("Stage 4"); + Matrix A(7,7), B(7,7); + int i,j; + for (i=1;i<=7;i++) for (j=1;j<=7;j++) + { + Real a = i*j +i - 1.5*j + 3; + Real b = i * i + j; + A(i,j)=a; B(i,j)=b; + } + BandMatrix BA(7,2,4), BB(7,3,1), BC(7,2,1); + BA.Inject(A); + SymmetricBandMatrix SB(7,3); + SymmetricMatrix S; S << (B+B.t()); + SB.Inject(S); A = BA; S = SB; + Matrix X; + X = SP(BA,SB); X=X-SP(A,S); Print(X); + X = SP(BA*2,SB); X=X-SP(A,S*2); Print(X); + X = SP(BA,SB/4); X=X-SP(A/4,S); Print(X); + X = SP(BA*4,SB/4); X=X-SP(A,S); Print(X); + X = SP(BA,SB)-SP(A,S); Print(X); + X = SP(BA*2,SB)-SP(A,S*2); Print(X); + X = SP(BA,SB/4)-SP(A/4,S); Print(X); + X = SP(BA*4,SB/4)-SP(A,S); Print(X); + } + +} + + diff --git a/.svn/pristine/74/7460f865021f8128c89e4b73a4b5e3624add3d91.svn-base b/.svn/pristine/74/7460f865021f8128c89e4b73a4b5e3624add3d91.svn-base new file mode 100644 index 0000000..80d25fd --- /dev/null +++ b/.svn/pristine/74/7460f865021f8128c89e4b73a4b5e3624add3d91.svn-base @@ -0,0 +1,35 @@ +/** + * @file + * @brief Implemetnations of point pairs + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +/** + * Constructor, by two 'point' pointers + */ +inline PtPair::PtPair(double *_p1, double *_p2) +{ + p1 = Point(_p1); + p2 = Point(_p2); +} + +inline PtPair::PtPair(Point &_p1, Point &_p2) +{ + p1 = Point(_p1); + p2 = Point(_p2); +} + +inline PtPair::PtPair() +{ + p1 = Point(); + p2 = Point(); +} + +/** + * Overridden "<<" operator for sending a pair to a stream + */ +inline ostream& operator<<(ostream& os, const PtPair& pair) { + os << pair.p1 << " - " << pair.p2 << endl; + return os; +} diff --git a/.svn/pristine/74/7466e7c301c65a7d0495a243b57e001f854db3c1.svn-base b/.svn/pristine/74/7466e7c301c65a7d0495a243b57e001f854db3c1.svn-base new file mode 100644 index 0000000..191790d --- /dev/null +++ b/.svn/pristine/74/7466e7c301c65a7d0495a243b57e001f854db3c1.svn-base @@ -0,0 +1,20 @@ +-0.297462 0.176102 +0.565538 -0.361496 +0.909313 -0.182785 +0.920712 0.478408 +0.167682 0.0499836 +0.305223 -0.0805835 +0.114973 0.882453 +0.742916 0.16376 +0.0724605 -0.826775 +0.690960 -0.559284 +0.188485 -0.643934 +0.749427 -0.942415 +-0.970662 -0.223466 +0.916110 0.879597 +0.927417 -0.382593 +-0.711327 0.278713 +-0.519172 0.986146 +0.135338 0.924588 +-0.0837537 0.61687 +0.0520465 0.896306 diff --git a/.svn/pristine/74/747c2482e1c6377ec2fc6ed5b0120ca852b99149.svn-base b/.svn/pristine/74/747c2482e1c6377ec2fc6ed5b0120ca852b99149.svn-base new file mode 100644 index 0000000..11c0b4a --- /dev/null +++ b/.svn/pristine/74/747c2482e1c6377ec2fc6ed5b0120ca852b99149.svn-base @@ -0,0 +1,9 @@ + + + + 3 + 1 +

f
+ + 7.70650012e-03 -0.04776910 0.007350650 + diff --git a/.svn/pristine/74/7483d87ea44f6915500ff9a9769a1515e60abd03.svn-base b/.svn/pristine/74/7483d87ea44f6915500ff9a9769a1515e60abd03.svn-base new file mode 100644 index 0000000..64fbefa --- /dev/null +++ b/.svn/pristine/74/7483d87ea44f6915500ff9a9769a1515e60abd03.svn-base @@ -0,0 +1,78 @@ +#ifndef MANAGED_SCAN_H +#define MANAGED_SCAN_H + +#include "scan.h" +#include "scanserver/sharedScan.h" + + + +class ManagedScan : public Scan { +public: + static void openDirectory(const std::string& path, IOType type, + int start, int end = -1); + static void closeDirectory(); + + static std::size_t getMemorySize(); + + virtual ~ManagedScan(); + + virtual void setRangeFilter(double max, double min); + virtual void setHeightFilter(double top, double bottom); + virtual void setReductionParameter(double voxelSize, int nrpts = 0, + PointType pointtype = PointType()); + void setShowReductionParameter(double voxelSize, int nrpts = 0, + PointType pointtype = PointType()); + virtual void setOcttreeParameter(double reduction_voxelSize, + double octtree_voxelSize, PointType pointtype, + bool loadOct, bool saveOct); + + virtual const char* getIdentifier() const { return m_shared_scan->getIdentifier(); } + + virtual DataPointer get(const std::string& identifier); + virtual void get(unsigned int types); + virtual DataPointer create(const std::string& identifier, unsigned int size); + virtual void clear(const std::string& identifier); + + virtual unsigned int readFrames(); + virtual void saveFrames(); + virtual unsigned int getFrameCount(); + virtual void getFrame(unsigned int i, const double*& pose_matrix, AlgoType& type); + +protected: + virtual void createSearchTreePrivate(); + virtual void calcReducedOnDemandPrivate(); + virtual void addFrame(AlgoType type); + +private: + //! Reference to the shared scan + SharedScan* m_shared_scan; + + //! SharedScan vector to be deleted on closeDirectory + static SharedScanVector* shared_scans; + + //! Flag to keep track of whether we have to update/create reduced points at the start + bool m_reduced_ready; + + //! Flag to reset the persistent frames on write actions in slam to avoid a clear call + bool m_reset_frames_on_write; + + //! Voxelsize of the octtree used for reduction + double show_reduction_voxelSize; + + //! Which point to take out of the reduction octtree, 0 for center + int show_reduction_nrpts; + + //! Pointtype used for the reduction octtree + PointType show_reduction_pointtype; + + + ManagedScan(SharedScan* shared_scan); + + //! Create reduced points for show + void calcReducedShow(); + + //! Create Octtree for show + void createOcttree(); +}; + +#endif //MANAGED_SCAN_H diff --git a/.svn/pristine/75/752a52a6728a609fb1482d05a4920972fd926d57.svn-base b/.svn/pristine/75/752a52a6728a609fb1482d05a4920972fd926d57.svn-base new file mode 100644 index 0000000..55d4e65 Binary files /dev/null and b/.svn/pristine/75/752a52a6728a609fb1482d05a4920972fd926d57.svn-base differ diff --git a/.svn/pristine/75/7533d10d6e7223b00fbf488657e2c787179e6461.svn-base b/.svn/pristine/75/7533d10d6e7223b00fbf488657e2c787179e6461.svn-base new file mode 100644 index 0000000..8c01a1f --- /dev/null +++ b/.svn/pristine/75/7533d10d6e7223b00fbf488657e2c787179e6461.svn-base @@ -0,0 +1,48 @@ +#include + +#include "slam6d/scan.h" +#include "slam6d/managedScan.h" + +/** + * The class manages all scans and the frames of the scans + * It reads all scans and frame information and holds an object for the + * scans and the transformationmatrices + * + * @author Uwe Hebbelmann, Andre Schemschatt, Sebastian Stock + * date 14.2.08 + */ +class scanmanager { + + private: + /** Vector for the transformation of all scans */ + std::vector < std::vector > metaMatrix; + + /** @brief Reads the frame files that were created by Slam6D */ + void readFrames(string inputdir, + int start, + int end, + bool readInitial, + bool correctYAxis); + + public: + /** @brief Ctor */ + scanmanager(); + + /** @bried DTor */ + ~scanmanager(); + + /** @brief Reads scans, frames and the transformationmatrix */ + void startscan(string inputdir, string outputdir, IOType scantype, + int start, int end, bool readInitial, + int max_distance, int min_distance, + bool correctYAxis); + + /** @brief Getter for the number of scans */ + size_t getScanCount() const; + + /** @brief Returns scan with number i */ + Scan& getScan(int i); + + /** @brief Returns transformationmatrix with number i */ + const std::vector & getMatrix(int i); +}; diff --git a/.svn/pristine/76/767a3d0282b9d55b10d5308dd7a58741be9e380b.svn-base b/.svn/pristine/76/767a3d0282b9d55b10d5308dd7a58741be9e380b.svn-base new file mode 100644 index 0000000..35f0cb1 --- /dev/null +++ b/.svn/pristine/76/767a3d0282b9d55b10d5308dd7a58741be9e380b.svn-base @@ -0,0 +1,44 @@ + + +int glui_img_radiobutton_1_dis[] = { 14, 14, /* width, height */ + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 255,255,255, + 255,255,255, 255,255,255, 255,255,255, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 255,255,255, 255,255,255, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 255,255,255, 255,255,255, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 128,128,128, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 255,255,255, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 128,128,128, 64, 64, 64, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 255,255,255, 192,192,192, 192,192,192, + 192,192,192, 128,128,128, 64, 64, 64, 192,192,192, 192,192,192, + 192,192,192, 64, 64, 64, 64, 64, 64, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 255,255,255, 192,192,192, 192,192,192, + 128,128,128, 64, 64, 64, 192,192,192, 192,192,192, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 192,192,192, 192,192,192, + 192,192,192, 255,255,255, 192,192,192, 192,192,192, 128,128,128, + 64, 64, 64, 192,192,192, 192,192,192, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 192,192,192, 192,192,192, 192,192,192, + 255,255,255, 192,192,192, 192,192,192, 128,128,128, 64, 64, 64, + 192,192,192, 192,192,192, 192,192,192, 64, 64, 64, 64, 64, 64, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 255,255,255, + 192,192,192, 192,192,192, 192,192,192, 128,128,128, 64, 64, 64, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 255,255,255, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 128,128,128, 64, 64, 64, 64, 64, 64, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 64, 64, 64, + 64, 64, 64, 255,255,255, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 128,128,128, 128,128,128, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 128,128,128, 128,128,128, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 128,128,128, 128,128,128, + 128,128,128, 128,128,128, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, +}; diff --git a/.svn/pristine/76/76a171283a6f3fc42c70e593c546a02815e1c0db.svn-base b/.svn/pristine/76/76a171283a6f3fc42c70e593c546a02815e1c0db.svn-base new file mode 100644 index 0000000..6bb7e87 --- /dev/null +++ b/.svn/pristine/76/76a171283a6f3fc42c70e593c546a02815e1c0db.svn-base @@ -0,0 +1,121 @@ +/** + * @file + * + * @author Thomas Escher + */ + +#ifndef CACHE_OBJECT_H +#define CACHE_OBJECT_H + +#include +#include +#include +#include + +// hide the boost namespace and shorten others +namespace +{ + namespace ip = boost::interprocess; +} + +#include "scanserver/cache/cacheHandler.h" +#include "scanserver/cache/cacheDataAccess.h" + + + +/** + * @brief An object representing a cache entry, holding the data and managing cache access. + * + * This cache object holds a pointer to the cached data if it is loaded and is accessible through the aquisition of a CacheDataAccess. The CacheDataAccess will lock this CacheObject so the CacheManager can't remove it from memory while it is read (i.e. CacheDataAccess holds a lock). If the data isn't hold in memory the access will cause a cache miss to occur and consequently communications to the CacheManager are started to get this CacheObject loaded into memory. + * Cached data is held in a shared memory exclusively for these objects. On client startup openSharedMemory has to be called once. Every access then obtains the process-local data pointer by its handle in this shared memory. + * When the CacheObject is created it has to be assigned a CacheHandler which handles the application specific IO part. Save calls should serialize the CacheObject's contents to a safe place (e.g. harddrive), Load calls should recall these contents. + */ +class CacheObject { + friend class CacheManager; +public: + CacheObject(); + ~CacheObject(); + + /** + * Aquires the lock, accesses the contained data directly on hit or requests loading from the CacheManager if missed. + * The aquisition takes place through the function represented by template F. F relays the call to the process who created the CacheHandler which is then able to do its work. This is neccessary because CacheHandler owns virtual functions and these can only be called in the creating process. + * + * Can throw an exception if the server is unable to load the data. + */ + template + inline CacheDataAccess getCacheData() + { + // lock read mutex to prevent removal in between calls + ip::sharable_lock use(m_mutex_in_use); + // aquire data by safely requesting it once through the means of functionality given by F + if(m_handle == 0) { + ip::scoped_lock request(m_cache_miss); + if(m_handle == 0) { + F(this); + } + // TODO: exceptions checking + } + // TODO: Access Data + return CacheDataAccess(m_mutex_in_use, m_size, reinterpret_cast(m_msm->get_address_from_handle(m_handle))); + } + + /** + * Allocate space to write into. + * Repeated calls will always create new space without saving the old one, no CacheHandler calls will be made for this CacheObject. + */ + template + inline CacheDataAccess createCacheData(unsigned int size) + { + // lock read mutex to prevent removal in between calls + ip::sharable_lock use(m_mutex_in_use); + // allocate data through template function + F(this, size); + // TODO: Access Data + return CacheDataAccess(m_mutex_in_use, m_size, reinterpret_cast(m_msm->get_address_from_handle(m_handle))); + } + + /** + * Let the CacheManager invalidate this CacheObject and its handler + */ + template + inline void invalidate() + { + // lock read mutex to prevent removal in between calls + ip::sharable_lock use(m_mutex_in_use); + // allocate data through template function + F(this); + // TODO: Access Data + } + + /** + * Set a cache handler for loading and saving data on cache misses or flushes. + * This may only be assigned once and load/save calls have to be process local. + */ + void setCacheHandler(CacheHandler* handler); + + /** + * Open the shared memory on client side so CacheObjects can access their data from there. + * Call once on client initialization. + */ + static void openSharedMemory(const char* shm_name); +private: + //! Size in bytes of contained data + unsigned int m_size; + + //! Handle to contained data in CacheObject exclusive shared memory, used to obtain process-local pointers + ip::managed_shared_memory::handle_t m_handle; + + //! Will be share-locked by every reading entity, exclusive-locked by manipulating entity, the CacheManager + ip::interprocess_upgradable_mutex m_mutex_in_use; + + //! Execute-once protection for a read request on a cache miss + ip::interprocess_mutex m_cache_miss; + + //! IO handling object for load and saves, to be called within the creating process + CacheHandler* m_handler; + + //! Singleton shared memory for data access + static ip::managed_shared_memory* m_msm; +}; + +#endif //CACHE_OBJECT_H diff --git a/.svn/pristine/76/76b63075116ee3bbb339ff53ee11bd02c6e4a483.svn-base b/.svn/pristine/76/76b63075116ee3bbb339ff53ee11bd02c6e4a483.svn-base new file mode 100644 index 0000000..3724847 --- /dev/null +++ b/.svn/pristine/76/76b63075116ee3bbb339ff53ee11bd02c6e4a483.svn-base @@ -0,0 +1,9 @@ +#pragma once + +#include +#include +#include "veloslam/veloscan.h" +#include "veloslam/tracker.h" + +void DumpPointtoFile(cluster &gluData1, string filename); +void DumpFeaturetoFile(clusterFeature &glu, string filename); diff --git a/.svn/pristine/76/76d7b4c0a0f5a9874361b2df7fd5bcd21f460b17.svn-base b/.svn/pristine/76/76d7b4c0a0f5a9874361b2df7fd5bcd21f460b17.svn-base new file mode 100644 index 0000000..72e15da --- /dev/null +++ b/.svn/pristine/76/76d7b4c0a0f5a9874361b2df7fd5bcd21f460b17.svn-base @@ -0,0 +1,198 @@ +/**************************************************************************** + + GLUI User Interface Toolkit + --------------------------- + + glui_commandline.cpp - GLUI_CommandLine control class + + + -------------------------------------------------- + + Copyright (c) 1998 Paul Rademacher, 2005 William Baxter + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + This program is -not- in the public domain. + +*****************************************************************************/ + +#include "glui.h" +#include "glui_internal.h" + +/****************************** GLUI_CommandLine::GLUI_CommandLine() **********/ +GLUI_CommandLine::GLUI_CommandLine( GLUI_Node *parent, const char *name, + void *data, int id, GLUI_CB cb ) +{ + common_init(); + set_name( name ); + + data_type = GLUI_EDITTEXT_TEXT; + ptr_val = data; + user_id = id; + callback = cb; + + live_type = GLUI_LIVE_TEXT; + + parent->add_control( this ); + + init_live(); +} + +/****************************** GLUI_CommandLine::key_handler() **********/ + +int GLUI_CommandLine::key_handler( unsigned char key,int modifiers ) +{ + int ret; + + if ( NOT glui ) + return false; + + if ( debug ) + dump( stdout, "-> CMD_TEXT KEY HANDLER" ); + + if ( key == 13 ) { /* RETURN */ + commit_flag = true; + } + + ret = Super::key_handler( key, modifiers ); + + if ( debug ) + dump( stdout, "<- CMD_TEXT KEY HANDLER" ); + + return ret; +} + + +/****************************** GLUI_CommandLine::deactivate() **********/ + +void GLUI_CommandLine::deactivate( void ) +{ + // if the commit_flag is set, add the current command to + // history and call deactivate as normal + + // Trick deactivate into calling callback if and only if commit_flag set. + // A bit subtle, but deactivate checks that orig_text and text + // are the same to decide whether or not to call the callback. + // Force them to be different for commit, and the same for no commit. + if (commit_flag) { + add_to_history(text.c_str()); + orig_text = ""; + Super::deactivate( ); + set_text( "" ); + commit_flag = false; + } + else { + orig_text = text; + } +} + +/**************************** GLUI_CommandLine::special_handler() **********/ + +int GLUI_CommandLine::special_handler( int key,int modifiers ) +{ + if ( NOT glui ) + return false; + + if ( debug ) + printf( "CMD_TEXT SPECIAL:%d - mod:%d subs:%d/%d ins:%d sel:%d/%d\n", + key, modifiers, substring_start, substring_end,insertion_pt, + sel_start, sel_end ); + + if ( key == GLUT_KEY_UP ) // PREVIOUS HISTORY + { + scroll_history(-1); + } + else if ( key == GLUT_KEY_DOWN ) // NEXT HISTORY + { + scroll_history(+1); + } + else { + return Super::special_handler( key, modifiers ); + } + return false; +} + + + +/**************************** GLUI_CommandLine::scroll_history() ********/ + +void GLUI_CommandLine::scroll_history( int direction ) +{ + recall_history(curr_hist + direction); +} + +/**************************** GLUI_CommandLine::recall_history() ********/ + +void GLUI_CommandLine::recall_history( int hist_num ) +{ + if (hist_num < oldest_hist OR + hist_num > newest_hist OR + hist_num == curr_hist) + return; + + // Commit the current text first before we blow it away! + if (curr_hist == newest_hist) { + get_history_str(newest_hist) = text; + } + + curr_hist = hist_num; + set_text(get_history_str(curr_hist)); + sel_end = sel_start = insertion_pt = (int)text.length(); + update_and_draw_text(); +} + +/**************************** GLUI_CommandLine::add_to_history() ********/ + +void GLUI_CommandLine::add_to_history( const char *cmd ) +{ + if (cmd[0]=='\0') return; // don't add if it's empty + + curr_hist = newest_hist; + get_history_str(newest_hist) = text; + + newest_hist = ++curr_hist; + if ( newest_hist >= HIST_SIZE ) + { + // bump oldest off the list + hist_list.erase(hist_list.begin()); + hist_list.push_back(""); + + oldest_hist++; + } +} + +/**************************** GLUI_CommandLine::reset_history() ********/ + +void GLUI_CommandLine::reset_history( void ) +{ + oldest_hist = newest_hist = curr_hist = 0; +} + + + +/*************************************** GLUI_CommandLine::dump() **************/ + +void GLUI_CommandLine::dump( FILE *out, const char *name ) +{ + fprintf( out, + "%s (commandline@%p): ins_pt:%d subs:%d/%d sel:%d/%d len:%d\n", + name, this, + insertion_pt, substring_start, substring_end, sel_start, sel_end, + (int)text.length()); +} + + diff --git a/.svn/pristine/77/775b8c2682976625280e6fec484402ec14fef513.svn-base b/.svn/pristine/77/775b8c2682976625280e6fec484402ec14fef513.svn-base new file mode 100644 index 0000000..37f8d23 --- /dev/null +++ b/.svn/pristine/77/775b8c2682976625280e6fec484402ec14fef513.svn-base @@ -0,0 +1,943 @@ +/* +This is a Optical-Character-Recognition program +Copyright (C) 2000-2007 Joerg Schulenburg + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + check README for my email address +*/ + +#include +#include +#include +#include // toupper, tolower +#include "pgm2asc.h" +#include "gocr.h" + +// ----- detect lines --------------- +/* suggestion: Fourier transform and set line frequency where the + amplitude has a maximum (JS: slow and not smarty enough). + + option: range for line numbers 1..1000 or similar + todo: look for thickest line, and divide if thickness=2*mean_thickness + Set these elements of the box structs: + + m1 <-- top of upper case letters and (bdfhkl) (can differ) + m2 <-- top of letters (acegmnopqrsuvwxyz) + m3 <-- baseline + m4 <-- bottom of hanging letters (gqpy) + + performance can be improved by working with a temporary + list of boxes of the special text line + + - Jun23,00 more robustness of m3 (test liebfrau1) + - Feb01,02 more robustness of m4 (test s46_084.pgm) + - Dec03,12 fix problems with footnotes + ToDo: + - generate lists of boxes per line (faster access) + - use statistics + - for each box look at it neighbours and set box-m1..m4 + - m[1..4].max .min if m4.min-m3.max<1 probability lower + */ +int detect_lines1(pix * p, int x0, int y0, int dx, int dy) +{ + int i, jj, j2, y, yy, my, mi, mc, i1, i2, i3, i4, + m1, m2, m3, m4, ma1, ma2, ma3, ma4, m3pre, m4pre; + struct box *box2, *box3; /* box3 is for verbose / debugging */ + struct tlines *lines = &JOB->res.lines; + + /* ToDo: optional read line-data from external source??? */ + if (lines->num == 0) { // initialize one dummy-line for pictures etc. + lines->m4[0] = 0; + lines->m3[0] = 0; + lines->m2[0] = 0; + lines->m1[0] = 0; + lines->x0[0] = p->x; /* expand to left end during detection */ + lines->x1[0] = 0; /* expand to right end */ + lines->pitch[0] = JOB->cfg.spc; /* default word pitch */ + lines->mono[0] = 0; /* default spacing, 0 = prop */ + lines->num++; + } + i = lines->num; + if (dy < 4) + return 0; /* image is to low for latin chars */ + my = jj = 0; + // get the mean height of all hollow chars + // (better than mean value of everything including bg-pattern or dust?) + for_each_data(&(JOB->res.boxlist)) { + box2 = (struct box *)list_get_current(&(JOB->res.boxlist)); + if ( box2->c != PICTURE + && box2->num_frames>1 && box2->num_frames<3 /* 1 or 2 holes */ + && box2->y0 >= y0 && box2->y1 <= y0 + dy + && box2->x0 >= x0 && box2->x1 <= x0 + dx + && box2->frame_vol[0]>0 + && box2->frame_vol[1]<0 + ) { + jj++; + my += box2->y1 - box2->y0 + 1; + } + } end_for_each(&(JOB->res.boxlist)); + if (jj==0) { + // get the mean height of all chars + for_each_data(&(JOB->res.boxlist)) { + box2 = (struct box *)list_get_current(&(JOB->res.boxlist)); + if ( box2->c != PICTURE + && box2->y1 - box2->y0 + 1 >= 4 /* 4x6 font */ + && box2->y0 >= y0 && box2->y1 <= y0 + dy + && box2->x0 >= x0 && box2->x1 <= x0 + dx ) { + jj++; + my += box2->y1 - box2->y0 + 1; + } + } end_for_each(&(JOB->res.boxlist)); + } + if (jj == 0) + return 0; /* no chars detected */ + + + /* ToDo: a better way could be to mark good boxes (of typical high a-zA-Z0-9) + * first and handle only marked boxes for line scan, exclude ?!,.:;etc + * but without setect the chars itself (using good statistics) + * see adjust_text_lines() + */ + my /= jj; /* we only care about chars with high arround my */ + if (JOB->cfg.verbose & 16) + fprintf(stderr,"\n# detect_lines1(%d %d %d %d) vvv&16 chars=%d my=%d\n# ", + x0, y0, dx, dy, jj, my); + // "my" is the average over the whole image (bad, if different fontsizes) + + if (my < 4) + return 0; /* mean high is to small => error */ + + m4pre=m3pre=y0; /* lower bond of upper line */ + // better function for scanning line around a letter ??? + // or define lines around known chars "eaTmM" + for (j2 = y = y0; y < y0 + dy; y++) { + // look for max. of upper and lower bound of next line + m1 = y0 + dy; + jj = 0; +#if 1 + /* this is only for test runs */ + if (JOB->cfg.verbose & 16) + fprintf(stderr,"searching new line %d\n# ",i /* lines->num */); +#endif + + box3 = NULL; /* mark the most upper box starting next line */ + // find highest point of next line => store to m1-min (m1>=y) + // only objects greater 2/3*my and smaller 3*my are allowed + // a higher "!" at end of line can result in a to low m1 + for_each_data(&(JOB->res.boxlist)) { + box2 = (struct box *)list_get_current(&(JOB->res.boxlist)); + if (box2->line>0 || box2->c == PICTURE) continue; + if (lines->dx) + yy = lines->dy * box2->x0 / (lines->dx); /* correct crooked lines */ + else yy=0; + if ( box2->y0 >= y + yy && box2->y1 < y0 + dy // lower than y + && box2->x0 >= x0 && box2->x1 < x0 + dx // within box ? + && box2->c != PICTURE // no picture + && box2->num_boxes <= 1 // ignore 2 for "!?i" 3 for "ä" + && 3 * (box2->y1 - box2->y0) > 2 * my // not to small + && (box2->y1 - box2->y0) < 3 * my // not to big + && (box2->y1 - box2->y0) > 4) // minimum absolute size + { + if (box2->y0 < m1 + yy) { + m1 = box2->y0 - yy; /* highest upper boundary */ + box3 = box2; + } + // fprintf(stderr,"\n %3d %3d %+3d %d m1= %3d", + // box2->x0, box2->y0, box2->y1 - box2->y0 + 1, box2->num_boxes, m1); + } + } end_for_each(&(JOB->res.boxlist)); + if (!box3 || m1 >= y0+dy) break; /* no further line found */ + if (JOB->cfg.verbose & 16) + fprintf(stderr," most upper box at new line xy= %4d %4d %+4d %+4d\n# ", + box3->x0, box3->y0, box3->x1-box3->x0, box3->y1-box3->y0); + + // at the moment values depend from single chars, which can + // result in bad values (ex: 4x6 /\=) + // ToDo: 2) mean size of next line (store list of y0,y1) + // ToDo: 3) count num0[(y0-m1)*16/my], num1[(y1-m1)*16/my] + // ToDo: or down-top search horizontal nerarest neighbours + lines->x0[i] = x0 + dx - 1; /* expand during operation to left end */ + lines->x1[i] = x0; /* expand to the right end of line */ + m4=m2=m1; mi=m1+my; m3=m1+2*my; jj=0; + // find limits for upper bound, base line and ground line + // m2-max m3-min m4-max + for_each_data(&(JOB->res.boxlist)) { + box2 = (struct box *)list_get_current(&(JOB->res.boxlist)); + if (box2->line>0 || box2->c == PICTURE) continue; + if ( box2->y0 < y0 || box2->y1 >= y0 + dy + || box2->x0 < x0 || box2->x1 >= x0 + dx ) continue; // out of image + if (lines->dx) yy = lines->dy * box2->x0 / (lines->dx); + else yy=0; + /* check for ij-dots, used if chars of same high */ + if ( box2->y0 >= y + yy + && box2->y0 >= y + && (box2->y1 - box2->y0) < my + && box2->y1 < m1 + yy + my/4 + && box2->y0 < mi + yy ) { + mi = box2->y0 - yy; /* highest upper boundary i-dot */ + } + // fprintf(stderr,"\n check %3d %3d-%3d y=%d yy=%d m1=%d", box2->x0, box2->y0, box2->y1, y, yy, m1); + /* get m2-max m3-min m4-max */ + if ( box2->y0 >= y + yy // lower than y + && 3 * (box2->y1 - box2->y0 + 1) > 2 * my // right size ? + && (box2->y1 - box2->y0 + 1) < 3 * my // font mix, size = 2.6*my + && (box2->y1 - box2->y0 + 1) > 3 // 4x6 lowercase=4 + && box2->y0 >= m1 // in m1 range? + && box2->y0 <= m1 + yy + 9 * my / 8 // my can be to small if mixed + // ToDo: we need a better (local?) algorithm for big headlines > 2*my + && box2->y1 <= m1 + yy + 3 * my + && box2->y1 >= m1 + yy + my / 2 + // lines can differ in high, my may be to small (smaller headlines) + && box2->y0+box2->y1 <= 2*box3->y1 + ) + { + jj++; // count chars for debugging purpose + if (box2->y0 > m2 + yy) { + m2 = box2->y0 - yy; /* highest upper boundary */ + if (JOB->cfg.verbose & 16) + fprintf(stderr," set m2= %d yy= %d\n# ",m2, yy); + } + if (box2->y1 > m4 + yy && (my>6 || box2->y1 < m3+my)) { + m4 = box2->y1 - yy; /* lowest lower boundary, small font lines can touch */ + } + if ( box2->y1 < m3 + yy + && ( ( 2*box2->y1 > m2+ m4+yy && m2>m1) + || ( 4*box2->y1 > m1+3*m4+yy) ) ) // care for TeX: \(^1\)Footnote 2003 + /* "'!?" could cause trouble here, therefore this lines */ + /* ToDo: get_bw costs time, check pre and next */ + if( get_bw(box2->x0,box2->x1,box2->y1+1 ,box2->y1+my/2,box2->p,JOB->cfg.cs,1) == 0 + || get_bw(box2->x0,box2->x1,box2->y1+my/2,box2->y1+my/2,box2->p,JOB->cfg.cs,1) == 1 + || num_cross(box2->x0,box2->x1,(box2->y0+box2->y1)/2,(box2->y0+box2->y1)/2,box2->p,JOB->cfg.cs)>2 ) + { + m3 = box2->y1 - yy; /* highest lower boundary */ + // printf("\n# set1 m3 m=%3d %+2d %+2d %+2d",m1,m2-m1,m3-m1,m4-m1); + // out_x(box2); + } + if (box2->y0 + box2->y1 > 2*(m3 + yy) + && box2->y1 < m4 + yy - my/4 -1 + && box2->y1 >= (m2 + m4)/2 // care for TeX: \(^1\)Footnote 2003 + && m2 > m1 ) // be sure to not use ', m2 must be ok + { + m3 = box2->y1 - yy; /* highest lower boundary */ + // printf("\n# set2 m3 m=%3d %+2d %+2d %+2d",m1,m2-m1,m3-m1,m4-m1); + // out_x(box2); + } + if (box2->x1>lines->x1[i]) lines->x1[i] = box2->x1; /* right end */ + if (box2->x0x0[i]) lines->x0[i] = box2->x0; /* left end */ + // printf(" m=%3d %+2d %+2d %+2d yy=%3d\n",m1,m2-m1,m3-m1,m4-m1,yy); + } + } end_for_each(&(JOB->res.boxlist)); + +#if 1 + /* this is only for test runs */ + if (JOB->cfg.verbose & 16) + fprintf(stderr," step 1 y=%4d m= %4d %+3d %+3d %+3d" + " my=%2d chars=%3d\n# ", + y, m1, m2-m1, m3-m1, m4-m1, my, jj); +#endif + + if (m3 == m1) + break; +#if 1 /* make averages about the line */ + // same again better estimation + mc = (3 * m3 + m1) / 4; /* lower center ? */ + ma1 = ma2 = ma3 = ma4 = i1 = i2 = i3 = i4 = jj = 0; + for_each_data(&(JOB->res.boxlist)) { + box2 = (struct box *)list_get_current(&(JOB->res.boxlist)); + if (box2->line>0 || box2->c == PICTURE) continue; + if (lines->dx) yy = lines->dy * box2->x0 / (lines->dx); else yy=0; + if (box2->y0 >= y + yy && box2->y1 < y0 + dy // lower than y + && box2->x0 >= x0 && box2->x1 < x0 + dx // in box ? + && box2->c != PICTURE // no picture + && 2 * (box2->y1 - box2->y0) > my // right size ? + && (box2->y1 - box2->y0) < 4 * my) { + if ( box2->y0 - yy >= m1-my/4 + && box2->y0 - yy <= m2+my/4 + && box2->y1 - yy >= m3-my/4 + && box2->y1 - yy <= m4+my/4 ) { /* its within allowed range! */ + // jj++; // not used + if (abs(box2->y0 - yy - m1) <= abs(box2->y0 - yy - m2)) + { i1++; ma1 += box2->y0 - yy; } + else { i2++; ma2 += box2->y0 - yy; } + if (abs(box2->y1 - yy - m3) < abs(box2->y1 - yy - m4)) + { i3++; ma3 += box2->y1 - yy; } + else { i4++; ma4 += box2->y1 - yy; } + if (box2->x1>lines->x1[i]) lines->x1[i] = box2->x1; /* right end */ + if (box2->x0x0[i]) lines->x0[i] = box2->x0; /* left end */ + } + } + } end_for_each(&(JOB->res.boxlist)); + + if (i1) m1 = (ma1+i1/2) / i1; /* best rounded */ + if (i2) m2 = (ma2+i2/2) / i2; + if (i3) m3 = (ma3+i3-1) / i3; /* round up */ + if (i4) m4 = (ma4+i4-1) / i4; + // printf("\n# .. set3 m3 m=%3d %+2d %+2d %+2d",m1,m2-m1,m3-m1,m4-m1); + +#endif + + /* expand right and left end of line */ + for_each_data(&(JOB->res.boxlist)) { + box2 = (struct box *)list_get_current(&(JOB->res.boxlist)); + if (box2->line>0 || box2->c == PICTURE) continue; + if (lines->dx) yy = lines->dy * box2->x0 / (lines->dx); else yy=0; + if ( box2->y0 >= y0 && box2->y1 < y0 + dy + && box2->x0 >= x0 && box2->x1 < x0 + dx // in box ? + && box2->c != PICTURE // no picture + && box2->y0 >= m1-1 + && box2->y0 <= m4 + && box2->y1 >= m1 + && box2->y1 <= m4+1 ) { /* its within line */ + if (box2->x1>lines->x1[i]) lines->x1[i] = box2->x1; /* right end */ + if (box2->x0x0[i]) lines->x0[i] = box2->x0; /* left end */ + } + } end_for_each(&(JOB->res.boxlist)); + +#if 1 + /* this is only for test runs */ + if (JOB->cfg.verbose & 16) + fprintf(stderr," step 2 y=%4d m= %4d %+3d %+3d %+3d\n# ", + y,m1,m2-m1,m3-m1,m4-m1); +#endif + + if (m4 == m1) { + if(m3+m4>2*y) y = (m4+m3)/2; /* lower end may overlap the next line */ + continue; + } + jj=0; + lines->wt[i] = 100; + if (5 * (m2 - m1 +1) < m3 - m2 || (m2 - m1) < 2) jj|=1; /* same high */ + if (5 * (m4 - m3 +1) < m3 - m2 || (m4 - m3) < 1) jj|=2; /* same base */ + if (jj&1) lines->wt[i] = 75*lines->wt[i]/100; + if (jj&2) lines->wt[i] = 75*lines->wt[i]/100; + if (jj>0 && JOB->cfg.verbose) { + fprintf(stderr," trouble on line %d, wt*100= %d\n",i,lines->wt[i]); + fprintf(stderr,"# m= %4d %+3d %+3d %+3d\n",m1,m2-m1,m3-m1,m4-m1); + fprintf(stderr,"# i= %3d %3d %3d %3d (counts)\n",i1,i2,i3,i4); + if (jj==3) fprintf(stderr,"# all boxes of same high!\n# "); + if (jj==1) fprintf(stderr,"# all boxes of same upper bound!\n# "); + if (jj==2) fprintf(stderr,"# all boxes of same lower bound!\n# "); + } + /* ToDo: check for dots ij,. to get the missing information */ +#if 1 + /* jj=3: ABCDEF123456 or mnmno or gqpy or lkhfdtb => we are in trouble */ + if (jj==3 && (m4-m1)>my) { jj=0; m2=m1+my/8+1; m4=m3+my/8+1; } /* ABC123 */ + /* using idots, may fail on "ABCDEFGÄÜÖ" */ + if (jj==3 && mi>0 && mim4pre) { jj=2; m1=mi; } /* use ij dots */ + if (jj==1 && m2-(m3-m2)/4>m3pre ) { /* expect: acegmnopqrsuvwxyz */ + if (m1-m4pre0 && JOB->cfg.verbose & 16) { + fprintf(stderr," m= %4d %+2d %+2d %+2d my= %4d\n# ", + m1, m2-m1, m3-m1, m4-m1, my); + } +#endif + + + { // empty space between lines + lines->m4[i] = m4; + lines->m3[i] = m3; + lines->m2[i] = m2; + lines->m1[i] = m1; + lines->pitch[i] = JOB->cfg.spc; /* default word pitch */ + lines->mono[i] = 0; /* default spacing, 0=prop, 1=mono */ + if (JOB->cfg.verbose & 16) + fprintf(stderr, " m= %4d %+3d %+3d %+3d w= %d (line=%d)\n# ", + m1, m2 - m1, m3 - m1, m4 - m1, lines->wt[i], i); + if (i < MAXlines && m4 - m1 > 4) + i++; + if (i >= MAXlines) { + fprintf(stderr, "Warning: lines>MAXlines\n"); + break; + } + } + if (m3+m4>2*y) y = (m3+m4)/2; /* lower end may overlap the next line */ + if (m3>m3pre) m3pre = m3; else m3=y0; /* set for next-line scan */ + if (m4>m4pre) m4pre = m4; else m4=y0; /* set for next-line scan */ + } + lines->num = i; + if (JOB->cfg.verbose) + fprintf(stderr, " num_lines= %d", lines->num-1); + return 0; +} + +// ----- layout analyzis of dx*dy region at x0,y0 ----- +// ----- detect lines via recursive division (new version) --------------- +// what about text in frames??? +// ToDo: change to bottom-top analyse or/and take rotation into account +int detect_lines2(pix *p,int x0,int y0,int dx,int dy,int r){ + int i,x2,y2,x3,y3,x4,y4,x5,y5,y6,mx,my,x30,x31,y30,y31; + struct box *box2,*box3; + // shrink box + if(dx<=0 || dy<=0) return 0; + if(y0+dy< p->y/128 && y0==0) return 0; /* looks like dust */ + if(y0>p->y-p->y/128 && y0+dy==p->y) return 0; /* looks like dust */ + + if(r>1000){ return -1;} // something is wrong + if(JOB->cfg.verbose)fprintf(stderr,"\n# r=%2d ",r); + + mx=my=i=0; // mean thickness + // remove border, shrink size + x2=x0+dx-1; // min x + y2=y0+dy-1; // min y + x3=x0; // max x + y3=y0; // max y + for_each_data(&(JOB->res.boxlist)) { + box3 = (struct box *)list_get_current(&(JOB->res.boxlist)); + if(box3->y0>=y0 && box3->y1x0>=x0 && box3->x1x1 > x3 ) x3=box3->x1; // max x + if( box3->x0 < x2 ) x2=box3->x0; // min x + if( box3->y1 > y3 ) y3=box3->y1; // max y + if( box3->y0 < y2 ) y2=box3->y0; // min y + if(box3->c!=PICTURE) + if( box3->y1 - box3->y0 > 4 ) + { + i++; + mx+=box3->x1-box3->x0+1; // mean x + my+=box3->y1-box3->y0+1; // mean y + } + } + } end_for_each(&(JOB->res.boxlist)); + x0=x2; dx=x3-x2+1; + y0=y2; dy=y3-y2+1; + + if(i==0 || dx<=0 || dy<=0) return 0; + mx/=i;my/=i; + // better look for widest h/v-gap, ToDo: vertical lines? + if(r<8){ // max. depth + + // detect widest horizontal gap + y2=y3=y4=y5=y6=0; + x2=x3=x4=x5=y5=0;// min. 3 lines + // position and thickness of gap, y6=num_gaps, nbox^2 ops + for_each_data(&(JOB->res.boxlist)) { // not very efficient, sorry + box2 = (struct box *)list_get_current(&(JOB->res.boxlist)); + if( box2->c!=PICTURE ) /* ToDo: not sure, that this is a good idea */ + if( box2->y0>=y0 && box2->y1x0>=x0 && box2->x1y1-box2->y0>my/2 ){ // no pictures & dust??? + + y4=y0+dy-1; // nearest vert. box + x4=x0+dx-1; + // ToDo: rotate back box2->x1,y1 to x21,y21 + // look for nearest lowest (y4) and right (x4) neighbour + // of every box (box2) + for_each_data(&(JOB->res.boxlist)) { + box3 = (struct box *)list_get_current(&(JOB->res.boxlist)); + if(box3!=box2) + if(box3->y0>=y0 && box3->y1x0>=x0 && box3->x1c!=PICTURE) /* ToDo: not sure, that this is a good idea */ + if(box3->y1-box3->y0>my/2 ){ + // ToDo: here we need the rotation around box2 + x30=box3->x0; + x31=box3->x1; + y30=box3->y0; + y31=box3->y1; + // get min. distances to lower and to right direction + if( y31 > box2->y1 && y30 < y4 ) y4=y30-1; + if( x31 > box2->x1 && x30 < x4 ) x4=x30-1; + } + } end_for_each(&(JOB->res.boxlist)); + // set the witdht and position of largest hor./vert. gap + // largest gap: width position + if( y4-box2->y1 > y3 ) { y3=y4-box2->y1; y2=(y4+box2->y1)/2; } + if( x4-box2->x1 > x3 ) { x3=x4-box2->x1; x2=(x4+box2->x1)/2; } + } + } end_for_each(&(JOB->res.boxlist)); + // fprintf(stderr,"\n widest y-gap= %4d %4d",y2,y3); + // fprintf(stderr,"\n widest x-gap= %4d %4d",x2,x3); + + i=0; // i=1 at x, i=2 at y + // this is the critical point + // is this a good decision or not??? + if(x3>0 || y3>0){ + if(x3>mx && x3>2*y3 && (dy>5*x3 || (x3>10*y3 && y3>0))) i=1; else + if(dx>5*y3 && y3>my) i=2; + } + + // compare with largest box??? + for_each_data(&(JOB->res.boxlist)) { // not very efficient, sorry + box2 = (struct box *)list_get_current(&(JOB->res.boxlist)); + if( box2->c == PICTURE ) + if( box2->y0>=y0 && box2->y1x0>=x0 && box2->x1x1-box2->x0+4 > dx && box2->y1+4y1+1; i=2; break; } + if( box2->x1-box2->x0+4 > dx && box2->y0-4>y0 ) { y3=1; y2=box2->y0-1; i=2; break; } + if( box2->y1-box2->y0+4 > dy && box2->x1+4x1+1; i=1; break; } + if( box2->y1-box2->y0+4 > dy && box2->x0-4>x0 ) { x3=1; x2=box2->x0-1; i=1; break; } + } + } end_for_each(&(JOB->res.boxlist)); + if(JOB->cfg.verbose)fprintf(stderr," i=%d",i); + + if(JOB->cfg.verbose && i) fprintf(stderr," divide at %s x=%4d y=%4d dx=%4d dy=%4d", + ((i)?( (i==1)?"x":"y" ):"?"),x2,y2,x3,y3); + // divide horizontally if v-gap is thicker than h-gap + // and length is larger 5*width + if(i==1){ detect_lines2(p,x0,y0,x2-x0+1,dy,r+1); + return detect_lines2(p,x2,y0,x0+dx-x2+1,dy,r+1); } + // divide vertically + if(i==2){ detect_lines2(p,x0,y0,dx,y2-y0+1,r+1); + return detect_lines2(p,x0,y2,dx,y0+dy-y2+1,r+1); + } + } + + + if(JOB->cfg.verbose) if(dx<5 || dy<7)fprintf(stderr," empty box"); + if(dx<5 || dy<7) return 0; // do not care about dust + if(JOB->cfg.verbose)fprintf(stderr, " box detected at %4d %4d %4d %4d",x0,y0,dx,dy); + if(JOB->tmp.ppo.p){ + for(i=0;itmp.ppo,x0+i ,y0 ,255,16); + for(i=0;itmp.ppo,x0+i ,y0+dy-1,255,16); + for(i=0;itmp.ppo,x0 ,y0+i ,255,16); + for(i=0;itmp.ppo,x0+dx-1,y0+i ,255,16); + // writebmp("out10.bmp",p2,JOB->cfg.verbose); // colored should be better + } + return detect_lines1(p,x0-0*1,y0-0*2,dx+0*2,dy+0*3); + +/* + struct tlines *lines = &JOB->res.lines; + i=lines->num; lines->num++; + lines->m1[i]=y0; lines->m2[i]=y0+5*dy/16; + lines->m3[i]=y0+12*dy/16; lines->m4[i]=y0+dy-1; + lines->x0[i]=x0; lines->x1[i]=x0+dx-1; + if(JOB->cfg.verbose)fprintf(stderr," - line= %d",lines->num); + return 0; + */ +} + +/* ToDo: herons algorithm for square root x=(x+y/x)/2 is more efficient + * than interval subdivision (?) (germ.: Intervallschachtelung) + * without using matlib + * see http://www.math.vt.edu/people/brown/doc/sqrts.pdf + */ +int my_sqrt(int x){ + int y0=0,y1=x,ym; + for (;y0res.lines.{dx,dy} + * pass 1: get mean vector to nearest char + * pass 2: get mean vector to nearest char without outriders to pass 1 + * extimate direction as (dx,dy,num)[pass] + * ToDo: estimate an error, boxes only work fine for zero-rotation + * for 45 degree use vectors, not boxes to get base line + */ +#define INorm 1024 /* integer unit 1.0 */ +int detect_rotation_angle(job_t *job){ + struct box *box2, *box3, + *box_nn; /* nearest neighbour box */ + int x2, y2, x3, y3, dist, mindist, pass, + rx=0, ry=0, re=0, // final result + /* to avoid 2nd run, wie store pairs in 2 different categories */ + nn[4]={0,0,0,0}, /* num_pairs used for estimation [(pass-1)%2,pass%2] */ + dx[4]={0,0,0,0}, /* x-component of rotation vector per pass */ + dy[4]={0,0,0,0}, /* y-component of rotation vector per pass */ + er[4]={INorm/4,0,0,0}; /* mean angle deviation to pass-1 (radius^2) */ + // de; /* ToDo: absolute maximum error (dx^2+dy^2) */ + // ToDo: next pass: go to bigger distances and reduce max error + // error is diff between passes? or diff of bottoms and top borders (?) + + rx=1024; ry=0; // default + for (pass=0;pass<4;pass++) { + for_each_data(&(job->res.boxlist)) { + box2 = (struct box *)list_get_current(&(job->res.boxlist)); + if (box2->c==PICTURE) continue; + /* subfunction probability of char */ + // i? + // if (box2->x1 - box2->x0 < 3) continue; /* smallest font is 4x6 */ + if (box2->y1 - box2->y0 < 4) continue; + /* set maximum possible distance */ + box_nn=box2; // initial box to compare with + + // ToDo: clustering or majority + // the algorithm is far from being perfect, pitfalls are likely + // but its better than the old algorithm, ToDo: database-rotated-images + mindist = job->src.p.x * job->src.p.x + job->src.p.y * job->src.p.y; + /* get middle point of the box */ + x2 = (box2->x0 + box2->x1)/2; + y2 = (box2->y0 + box2->y1)/2; + re=0; + /* search for nearest neighbour box_nn[pass+1] of box_nn[pass] */ + for_each_data(&(job->res.boxlist)) { + box3 = (struct box *)list_get_current(&(job->res.boxlist)); + /* try to select only potential neighbouring chars */ + /* select out all senseless combinations */ + if (box3->c==PICTURE || box3==box2) continue; + x3 = (box3->x0 + box3->x1)/2; + y3 = (box3->y0 + box3->y1)/2; /* get middle point of the box */ + if (x3 pass-1? + // scalprod max in direction, cross prod min in direction + // a,b (vectors): ^2/(|a|*|b|)^2 = 0(90deg)..0.5(45deg).. 1(0deg) + // * 1024 ?? + if (pass>0) { // new variant = scalar product + // danger of int overflow, ToDo: use int fraction + re =(int) ((1.*(x3-x2)*dx[pass-1]+(y3-y2)*dy[pass-1]) + *(1.*(x3-x2)*dx[pass-1]+(y3-y2)*dy[pass-1])*INorm + /(1.*((x3-x2)*(x3-x2)+(y3-y2)*(y3-y2)) + *(1.*dx[pass-1]*dx[pass-1]+dy[pass-1]*dy[pass-1]))); + if (INorm-re>er[pass-1]) continue; // hits mean deviation + } + /* neighbours should have same order of size (?) */ + if (3*(box3->y1-box3->y0+4) < 2*(box2->y1-box2->y0+1)) continue; + if (2*(box3->y1-box3->y0+1) > 3*(box2->y1-box2->y0+4)) continue; + if (2*(box3->x1-box3->x0+1) > 5*(box2->x1-box2->x0+4)) continue; + if (5*(box3->x1-box3->x0+4) < 2*(box2->x1-box2->x0+1)) continue; + /* should be in right range, Idea: center3 outside box2? noholes */ + if ((x3x1-1) && (x3>box2->x0+1) + && (y3y1-1) && (y3>box2->y0+1)) continue; + // if chars are of different size, connect careful + if ( abs(x3-x2) > 2*(box2->x1 - box2->x0 + box3->x1 - box3 ->x0 + 2)) continue; + if ( abs(y3-y2) > (box2->x1 - box2->x0 + box3->x1 - box3 ->x0 + 2)) continue; + dist = (y3-y2)*(y3-y2) + (x3-x2)*(x3-x2); + // make distances in pass-1 directions shorter or continue if not in pass-1 range? + if (dist<9) continue; /* minimum distance^2 is 3^2 */ + if (distres.boxlist)); + + if (box_nn==box2) continue; /* has no neighbour, next box */ + + box3=box_nn; dist=mindist; + x3 = (box3->x0 + box3->x1)/2; + y3 = (box3->y0 + box3->y1)/2; /* get middle point of the box */ + // dist = my_sqrt(1024*((x3-x2)*(x3-x2)+(y3-y2)*(y3-y2))); + // compare with first box + x2 = (box2->x0 + box2->x1)/2; + y2 = (box2->y0 + box2->y1)/2; + // if the high of neighbouring boxes differ, use min diff (y0,y1) + if (pass>0 && 16*abs(dy[pass-1]) < dx[pass-1]) // dont work for strong rot. + if (abs(box2->y1-box2->y0-box3->y1+box3->y0)>(box2->y1-box2->y0)/8) { + // ad eh ck ... + if (abs(box2->y1-box3->y1)y1; y3=box3->y1; } + // ag ep qu ... + if (abs(box2->y0-box3->y0)y0; y3=box3->y0; } + } + if (abs(x3-x2)<4) continue; + dx[pass]+=(x3-x2)*1024; /* normalized before averaging */ + dy[pass]+=(y3-y2)*1024; /* 1024 is for the precision */ + nn[pass]++; + if (pass>0) { // set error = mean deviation from pass -1 + re = INorm-(int)((1.*(x3-x2)*dx[pass-1]+(y3-y2)*dy[pass-1]) + *(1.*(x3-x2)*dx[pass-1]+(y3-y2)*dy[pass-1])*INorm + /((1.*(x3-x2)*(x3-x2)+(y3-y2)*(y3-y2)) + *(1.*dx[pass-1]*dx[pass-1]+dy[pass-1]*dy[pass-1])) + ); + er[pass]+=re; + } +#if 0 + if(JOB->cfg.verbose) + fprintf(stderr,"# next nb (x,y,dx,dy,re) %6d %6d %5d %5d %5d pass %d\n", + x2, y2, x3-x2, y3-y2, re, pass+1); +#endif + } end_for_each(&(job->res.boxlist)); + if (!nn[pass]) break; + if (nn[pass]) { + /* meanvalues */ + rx=dx[pass]/=nn[pass]; + ry=dy[pass]/=nn[pass]; + if (pass>0) er[pass]/=nn[pass]; + } + if(JOB->cfg.verbose) + fprintf(stderr,"# rotation angle (x,y,maxr,num)" + " %6d %6d %6d %4d pass %d\n", + rx, ry, er[pass], nn[pass], pass+1); + } + if (abs(ry*100)>abs(rx*50)) + fprintf(stderr,"\n"); + /* ToDo: normalize to 2^10 bit (square fits to 32 it) */ + JOB->res.lines.dx=rx; + JOB->res.lines.dy=ry; + return 0; +} + +/* ----- detect lines --------------- */ +int detect_text_lines(pix * pp, int mo) { + + if (JOB->cfg.verbose) + fprintf(stderr, "# detect.c detect_text_lines (vvv=16 for more info) "); + if (mo & 4){ + if (JOB->cfg.verbose) fprintf(stderr, "# zoning\n# ... "); + detect_lines2(pp, 0, 0, pp->x, pp->y, 0); // later replaced by better algo + } else + detect_lines1(pp, 0, 0, pp->x, pp->y); // old algo + + if(JOB->cfg.verbose) fprintf(stderr,"\n"); + return 0; +} + + +/* ----- adjust lines --------------- */ +// rotation angle? JOB->res.lines.dy, .x0 removed later +// this is for cases, where m1..m4 is not very sure detected before +// chars are recognized +int adjust_text_lines(pix * pp, int mo) { + struct box *box2; + int *m, /* summ m1..m4, num_chars for m1..m4, min m1..m4, max. m1..m4 */ + l, i, dy, dx, diff=0, y0, y1; + + if ((l=JOB->res.lines.num)<2) return 0; // ??? + if (JOB->cfg.verbose) + fprintf(stderr, "# adjust text lines "); + m=(int *)malloc(l*16*sizeof(int)); + if (!m) { fprintf(stderr," malloc failed\n"); return 0;} + for (i=0;i<16*l;i++) m[i]=0; /* initialize */ + dy=JOB->res.lines.dy; /* tan(alpha) of skewing */ + dx=JOB->res.lines.dx; /* old: width of image */ + // js: later skewing is replaced by one transformation of vectorized image + + if (dx) + for_each_data(&(JOB->res.boxlist)) { + box2 = (struct box *)list_get_current(&(JOB->res.boxlist)); + if (box2->line<=0) continue; + if (box2->num_ac<1) continue; + if (box2->wac[0]<95) continue; + if (box2->m2==0 || box2->y1m2) continue; // char outside line + if (box2->m3==4 || box2->y0>box2->m3) continue; // char outside line + y0=box2->y0-((box2->x1)*dy/dx); /* corrected by page skewing */ + y1=box2->y1-((box2->x1)*dy/dx); + if (strchr("aemnr",(char)box2->tac[0])) { // cC vV sS oO ... is unsure! + m[box2->line*16+1]+=y0; m[box2->line*16+5]++; // num m2 + m[box2->line*16+2]+=y1; m[box2->line*16+6]++; // num m3 + if (m[box2->line*16+ 9]>y0) m[box2->line*16+ 9]=y0; /* min m2 */ + if (m[box2->line*16+13]line*16+13]=y0; /* max m2 */ + if (m[box2->line*16+10]>y1) m[box2->line*16+10]=y1; /* min m3 */ + if (m[box2->line*16+14]line*16+14]=y1; /* max m3 */ + } + if (strchr("bdhklABDEFGHIKLMNRT123456789",(char)box2->tac[0])) { + m[box2->line*16+0]+=y0; m[box2->line*16+4]++; // num m1 + m[box2->line*16+2]+=y1; m[box2->line*16+6]++; // num m3 + if (m[box2->line*16+ 8]>y0) m[box2->line*16+ 8]=y0; /* min m1 */ + if (m[box2->line*16+12]line*16+12]=y0; /* max m1 */ + if (m[box2->line*16+10]>y1) m[box2->line*16+10]=y1; /* min m3 */ + if (m[box2->line*16+14]line*16+14]=y1; /* max m3 */ + } + if (strchr("gq",(char)box2->tac[0])) { + m[box2->line*16+1]+=y0; m[box2->line*16+5]++; // num m2 + m[box2->line*16+3]+=y1; m[box2->line*16+7]++; // num m4 + if (m[box2->line*16+ 9]>y0) m[box2->line*16+ 9]=y0; /* min m2 */ + if (m[box2->line*16+13]line*16+13]=y0; /* max m2 */ + if (m[box2->line*16+11]>y1) m[box2->line*16+11]=y1; /* min m4 */ + if (m[box2->line*16+15]line*16+15]=y1; /* max m4 */ + } + } end_for_each(&(JOB->res.boxlist)); + + for (i=1;ires.lines.m1[i]-m[i*16+0]/m[i*16+4]); + if (m[i*16+5]) diff+=abs(JOB->res.lines.m2[i]-m[i*16+1]/m[i*16+5]); + if (m[i*16+6]) diff+=abs(JOB->res.lines.m3[i]-m[i*16+2]/m[i*16+6]); + if (m[i*16+7]) diff+=abs(JOB->res.lines.m4[i]-m[i*16+3]/m[i*16+7]); + /* recalculate sureness, empirically */ + if (m[i*16+4]*m[i*16+5]*m[i*16+6]*m[i*16+7] > 0) + JOB->res.lines.wt[i]=(JOB->res.lines.wt[i]+100)/2; + else + JOB->res.lines.wt[i]=(JOB->res.lines.wt[i]*90)/100; + // set mean values of sure detected bounds (rounded precisely) + if ( m[i*16+4]) JOB->res.lines.m1[i]=(m[i*16+0]+m[i*16+4]/2)/m[i*16+4]; + if ( m[i*16+5]) JOB->res.lines.m2[i]=(m[i*16+1]+m[i*16+5]/2)/m[i*16+5]; + if ( m[i*16+6]) JOB->res.lines.m3[i]=(m[i*16+2]+m[i*16+6]/2)/m[i*16+6]; + if ( m[i*16+7]) JOB->res.lines.m4[i]=(m[i*16+3]+m[i*16+7]/2)/m[i*16+7]; + // care about very small fonts + if (JOB->res.lines.m2[i]-JOB->res.lines.m1[i]<=1 && m[i*16+5]==0 && m[i*16+4]) + JOB->res.lines.m2[i]=JOB->res.lines.m1[i]+2; + if (JOB->res.lines.m2[i]-JOB->res.lines.m1[i]<=1 && m[i*16+4]==0 && m[i*16+5]) + JOB->res.lines.m1[i]=JOB->res.lines.m2[i]-2; + if (JOB->res.lines.m4[i]-JOB->res.lines.m3[i]<=1 && m[i*16+7]==0 && m[i*16+6]) + JOB->res.lines.m4[i]=JOB->res.lines.m3[i]+2; + if (JOB->res.lines.m4[i]-JOB->res.lines.m3[i]<=1 && m[i*16+6]==0 && m[i*16+7]) + JOB->res.lines.m3[i]=JOB->res.lines.m4[i]-2; + if ( m[i*16+7]<1 && + JOB->res.lines.m4[i] + <=JOB->res.lines.m3[i]+(JOB->res.lines.m3[i]-JOB->res.lines.m2[i])/4 ) + JOB->res.lines.m4[i]= + JOB->res.lines.m3[i]+(JOB->res.lines.m3[i]-JOB->res.lines.m2[i])/4; + if ( m[i*16+7]<1 && m[i*16+12+2]>0 && // m4 < max.m3+.. + JOB->res.lines.m4[i] < 2*m[i*16+12+2]-JOB->res.lines.m3[i]+2 ) + JOB->res.lines.m4[i] = 2*m[i*16+12+2]-JOB->res.lines.m3[i]+2; + if (JOB->res.lines.m4[i]<=JOB->res.lines.m3[i]) + JOB->res.lines.m4[i]= JOB->res.lines.m3[i]+1; /* 4x6 */ + + if (JOB->cfg.verbose & 17) + fprintf(stderr, "\n# line= %3d m= %4d %+3d %+3d %+3d " + " n= %2d %2d %2d %2d w= %3d diff= %d", + i, JOB->res.lines.m1[i], + JOB->res.lines.m2[i] - JOB->res.lines.m1[i], + JOB->res.lines.m3[i] - JOB->res.lines.m1[i], + JOB->res.lines.m4[i] - JOB->res.lines.m1[i], + m[i*16+4],m[i*16+5],m[i*16+6],m[i*16+7], + JOB->res.lines.wt[i], diff); + } + diff=0; // count adjusted chars +#if 1 + if (dx) + for_each_data(&(JOB->res.boxlist)) { + box2 = (struct box *)list_get_current(&(JOB->res.boxlist)); + if (box2->line<=0) continue; + /* check if box was on the wrong line, ToDo: search a better line */ + if (2*box2->y0<2*JOB->res.lines.m1[box2->line] + -JOB->res.lines.m4[box2->line] + +JOB->res.lines.m1[box2->line]) box2->line=0; + if (2*box2->y1>2*JOB->res.lines.m4[box2->line] + +JOB->res.lines.m4[box2->line] + -JOB->res.lines.m1[box2->line]) box2->line=0; + /* do adjustments */ + if (box2->num_ac>0 + && box2->num_ac > 31 && box2->tac[0] < 127 /* islower(>256) may SIGSEGV */ + && strchr("cCoOpPsSuUvVwWxXyYzZ",(char)box2->tac[0])) { // no_wchar + if (box2->y0-((box2->x1)*dy/dx) + < (JOB->res.lines.m1[box2->line]+JOB->res.lines.m2[box2->line])/2 + && islower(box2->tac[0]) + ) { setac(box2,toupper((char)box2->tac[0]),(box2->wac[0]+101)/2); diff++; } + if (box2->y0-((box2->x1)*dy/dx) + > (JOB->res.lines.m1[box2->line]+JOB->res.lines.m2[box2->line]+1)/2 + && isupper(box2->tac[0]) + ){ setac(box2,tolower((char)box2->tac[0]),(box2->wac[0]+101)/2); diff++; } + } + box2->m1=JOB->res.lines.m1[box2->line]+((box2->x1)*dy/dx); + box2->m2=JOB->res.lines.m2[box2->line]+((box2->x1)*dy/dx); + box2->m3=JOB->res.lines.m3[box2->line]+((box2->x1)*dy/dx); + box2->m4=JOB->res.lines.m4[box2->line]+((box2->x1)*dy/dx); + } end_for_each(&(JOB->res.boxlist)); +#endif + + free(m); + if(JOB->cfg.verbose) fprintf(stderr,"\n# changed_chars= %d\n",diff); + return(diff); +} + +/* ---- measure mean character + * recalculate mean width and high after changes in boxlist + * ToDo: only within a Range? + */ +int calc_average() { + int i = 0, x0, y0, x1, y1; + struct box *box4; + + JOB->res.numC = 0; + JOB->res.sumY = 0; + JOB->res.sumX = 0; + for_each_data(&(JOB->res.boxlist)) { + box4 = (struct box *)list_get_current(&(JOB->res.boxlist)); + if( box4->c != PICTURE ){ + x0 = box4->x0; x1 = box4->x1; + y0 = box4->y0; y1 = box4->y1; + i++; + if (JOB->res.avX * JOB->res.avY > 0) { + if (x1 - x0 + 1 > 4 * JOB->res.avX + && y1 - y0 + 1 > 4 * JOB->res.avY) continue; /* small picture */ + if (4 * (y1 - y0 + 1) < JOB->res.avY || y1 - y0 < 2) + continue; // dots .,-_ etc. + } + if (x1 - x0 + 1 < 4 + && y1 - y0 + 1 < 6 ) continue; /* dots etc */ + JOB->res.sumX += x1 - x0 + 1; + JOB->res.sumY += y1 - y0 + 1; + JOB->res.numC++; + } + } end_for_each(&(JOB->res.boxlist)); + if ( JOB->res.numC ) { /* avoid div 0 */ + JOB->res.avY = (JOB->res.sumY+JOB->res.numC/2) / JOB->res.numC; + JOB->res.avX = (JOB->res.sumX+JOB->res.numC/2) / JOB->res.numC; + } + if (JOB->cfg.verbose){ + fprintf(stderr, "# averages: mXmY= %d %d nC= %d n= %d\n", + JOB->res.avX, JOB->res.avY, JOB->res.numC, i); + } + return 0; +} + + +/* ---- analyse boxes, find pictures and mark (do this first!!!) + */ +int detect_pictures(job_t *job) { + int i = 0, x0, y0, x1, y1, num_h; + struct box *box2, *box4; + + if ( job->res.numC == 0 ) { + if (job->cfg.verbose) fprintf(stderr, + "# detect.c L%d Warning: numC=0\n", __LINE__); + return -1; + } + /* ToDo: set Y to uppercase mean value? */ + job->res.avY = (job->res.sumY+job->res.numC/2) / job->res.numC; + job->res.avX = (job->res.sumX+job->res.numC/2) / job->res.numC; + /* ToDo: two highest volumes? crosses, on extreme volume + on border */ + if (job->cfg.verbose) + fprintf(stderr, "# detect.c L%d pictures, frames, mXmY= %d %d ... ", + __LINE__, job->res.avX, job->res.avY); + for_each_data(&(job->res.boxlist)) { + box2 = (struct box *)list_get_current(&(job->res.boxlist)); + if (box2->c == PICTURE) continue; + x0 = box2->x0; x1 = box2->x1; + y0 = box2->y0; y1 = box2->y1; + + /* pictures could be of unusual size */ + if (x1 - x0 + 1 > 4 * job->res.avX || y1 - y0 + 1 > 4 * job->res.avY) { + /* count objects on same baseline which could be chars */ + /* else: big headlines could be misinterpreted as pictures */ + num_h=0; + for_each_data(&(job->res.boxlist)) { + box4 = (struct box *)list_get_current(&(job->res.boxlist)); + if (box4->c == PICTURE) continue; + if (box4->y1-box4->y0 > 2*(y1-y0)) continue; + if (2*(box4->y1-box4->y0) < y1-y0) continue; + if (box4->y0 > y0 + (y1-y0+1)/2 + || box4->y0 < y0 - (y1-y0+1)/2 + || box4->y1 > y1 + (y1-y0+1)/2 + || box4->y1 < y1 - (y1-y0+1)/2) continue; + // ToDo: continue if numcross() only 1, example: |||IIIll||| + num_h++; + } end_for_each(&(job->res.boxlist)); + if (num_h>4) continue; + box2->c = PICTURE; + i++; + } + /* ToDo: pictures could have low contrast=Sum((pixel(p,x,y)-160)^2) */ + } end_for_each(&(job->res.boxlist)); + // start second iteration + if (job->cfg.verbose) { + fprintf(stderr, " %d - boxes %d\n", i, job->res.numC-i); + } + calc_average(); + return 0; +} diff --git a/.svn/pristine/77/776206c13993ea83a927309d004fdc1c93e6aec9.svn-base b/.svn/pristine/77/776206c13993ea83a927309d004fdc1c93e6aec9.svn-base new file mode 100644 index 0000000..d6996db --- /dev/null +++ b/.svn/pristine/77/776206c13993ea83a927309d004fdc1c93e6aec9.svn-base @@ -0,0 +1,60 @@ +/** @file + * @brief The global correction based upon 6D Lu Milios style SLAM in 6D but with a helix correction step + * + * @author Peter Schneider. Institute of Computer Science, University of Koblenz , Germany. + */ + +#ifndef __GHELIX_Q2_H__ +#define __GHELIX_Q2_H__ + +#include +using std::vector; + +#include "graphSlam6D.h" +#include "icp6D.h" +#include "graph.h" + +#include "newmat/newmatio.h" + +//typedef vector vPtPair; ///< just a typedef: vPtPair = vector of type PtPair + + +/* + * @brief Representation of 3D scan matching based upon Lu/Milios in 6D but using helix correction step. + * + * H. Pottman, et al., Simultaneous registration of multiple + * views of a 3D object, + */ +class ghelix6DQ2 : public graphSlam6D { + +public: + /** + * Constructor (default) + */ + ghelix6DQ2() {}; + ghelix6DQ2(icp6Dminimizer *my_icp6Dminimizer, + double mdm = 25.0, + double max_dist_match = 25.0, + int max_num_iterations = 50, + bool quiet = false, + bool meta = false, + int rnd = 1, + bool eP = true, + int anim = -1, + double epsilonICP = 0.0000001, + int nns_method = simpleKD, + double epsilonLUM = 0.5); + + virtual ~ghelix6DQ2(); + + virtual double doGraphSlam6D(Graph gr, vector MetaScan, int nrIt); + + static double LUM[4]; + +private: + + double genBBdForLinkedPair( int firstScanNum, int secondScanNum, vPtPair *ptpairs, + NEWMAT::Matrix *B, NEWMAT::ColumnVector *Bd); +}; + +#endif diff --git a/.svn/pristine/77/77c99af9fb534913706a9b89390a1f827a02ed70.svn-base b/.svn/pristine/77/77c99af9fb534913706a9b89390a1f827a02ed70.svn-base new file mode 100644 index 0000000..a0675a8 --- /dev/null +++ b/.svn/pristine/77/77c99af9fb534913706a9b89390a1f827a02ed70.svn-base @@ -0,0 +1,12 @@ +IF(WITH_GRIDDER) + add_executable(2DGridder 2DGridder.cc line.cc gridlines.cc hough.cc viewpointinfo.cc gridWriter.cc parcelmanager.cc parcel.cc parcelinfo.cc scanGrid.cc grid.cc scanToGrid.cc gridPoint.cc scanmanager.cc) + + IF (UNIX) + target_link_libraries(2DGridder scan dl ANN) + ENDIF(UNIX) + + IF (WIN32) + target_link_libraries(2DGridder scan ANN XGetopt) + ENDIF(WIN32) + +ENDIF(WITH_GRIDDER) diff --git a/.svn/pristine/7a/7a45dc5f8a956f495813504dfe6cc4863160608d.svn-base b/.svn/pristine/7a/7a45dc5f8a956f495813504dfe6cc4863160608d.svn-base new file mode 100644 index 0000000..b7fa816 --- /dev/null +++ b/.svn/pristine/7a/7a45dc5f8a956f495813504dfe6cc4863160608d.svn-base @@ -0,0 +1,243 @@ +History: (Changes,ChangeLog) + 0.48 Jul09 + fix buffer overflow introduced in 0.46 for filenames + add codabar barcode + fix bug, removing melted serifs + add patch by Chris Lee, i25 barcode recognition + modifications + fix some false positive numbers "34" (video, gas meter) + fix problems with 2zZ4 for 10x10 screen font + better debug output for :;,. + remove examples, doc and libs part from configure (see below) + remove doc and examples from the (make install) part to reduce + dependencies (gs and transfig is not needed for rpm/ebuild) + gocr only may depend from netpbm, but can live without too + this will help to install gocr on "exotic" (nonlinux) platforms + fix gentoo app-text/gocr Bug 243250 src/Makefile: $(CC) $(LDFLAGS) ... + + 0.47 fix database recognition for certainty 100 (-a 100) + insert spaces with certainty 100 (old: 99) to let -a 100 work + new option -u string for unrecognized chars + fix: No contrast in image causes division by zero + reduced false positive recognition of scanned "a496" (Gutenberg Project) + "d as a" patch ID: 1556112 + add "Windows Pipe Fix", but I hate extra code for bad environments + improve 7x10, sample 0811qemu1.png (ToDo: not finished) + change black:white from >4:1 to >3.5:1 as criteria of inversion + reintroduce static library libPgm2asc.a (make libs) for OSRA project + add dynamic library (make libs), unused but may help other projects + + 0.46 improved context correction (especially helvetica "Il") + improved recognition of tiny chars "$1", fat "s", "rw" "," + fix blank spaces problem in filenames + (http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=316511) + !!! please check on other platforms and report to me !!! + there are still problems with special chars (double quodes, backslash) + better use this way: djpeg -gray -pnm strangefilename.jpg | gocr - + fix possible problem with database and UTF8 input + fix hidden bug in pitch/spacing initialization + reactivate code for output of glued chars and strings + fix wrong close() call + remove creation of pgm2asc.a for simplicity (see SF-patch 1827477) + + 0.45 minor corrections for c and k + minus sign is filtered by option -C "--" now, ("\-" was parsed badly) + clean up old unused code for simplicity (api, frontend) + fix problem with low height barcodes and barcode removing + fix problem with readpgm (for multiple images) and database + PACKAGE_VERSION defined by configure.in AC_INIT + gocr.spec + + 0.44 add volume to boxes (negative means white areas inside black areas) + Fix overflow in despeckling routine (verbose mode, dust removing) + reactivate composed chars, fix merge_boxes + fix problems with uncertain line detection and not recognized "7" + option -a has an effect now for the output + adaptions to MICR E13-B font (see GnuMICR), ToDo: 4 extra-chars + fix num_boxes in merge_boxes (affects line detection) + reduce 2 prompts to one per char in database mode, ^A for skip all + fix problem with smaller headlines + fix problems with tall font (4) + fix includes for non-linux-platforms + + 0.43 fix problem with dark frame around image + support multiple images, ex: giftopnm -image=all a.gif | gocr - + invert if obviously white on black (black_mass>=4*white_mass) + improve thresholding for discrete histograms + (note: this can particularly lead to bad results, will be fixed later) + speedup for big boxes (especially dark background) + fix memory leak (setas(same string) + detect_barcode) + fix uninitialized variables after insert spaces (num_frames) + fix frame_vector for single pixels (twice + ERROR idx out of range) + + 0.42 further parts of recognition engine relaced by vector version + changed colored debug output for out??.png + division of glued chars replaced (slower but more accurate) + fix framing of small font + fix problem with uninitialized pnm_readpaminit call (CPS 21Nov06) + better progress output (see progress.[ch]), new image debug output + switch to the new improved rotation detection + + 0.41 (buggy if --with-netpbm=no, apply the pgm-patch!) + otsu.c concentrates now only on high contrast regions + fix pnm reads for 2 byte pixels (--with-libpbm=no) + update man-page (mail me your suggestions) + fix g++ warnings, float-OPs replaced by int-OPs + spacing reviewed; make distance() more sensitive + xml-objects (barcode, melted chars) now also handled with weights + fix division by zero bug for vertical positioned characters + default output is UTF8 now, UTF-encoding bug fixed + added certainty option + added uninstall to Makefile + debug image format changed to png (using pipe) or ppm (fall-back) + much better word spacing (line-by-line based) + better DOT_ABOVE recognition + fix output of char groups or strings stored in database, utf8 input + fix buffer overflow in barcode decode39 + fix lost comma on end of line + internal vector format added for future use (faster, scalable, rotable) + line detection extended + internal list management rewritten to fix memory leaks and segfaults + + 0.40 update PNM file reader to maxval > 255 + (make rpm) updated + barcode-patch UPC_addon by Michael van Rooyen + CAPITAL_LETTER_A_WITH_OGONEK added + no "(PICTURE)" output for UTF8+ASCII (better for Mobile OCR project) + smooth_borders() bug fixed and reworked + 5x7 and prop10 font adaptions + objects now detected by flood-fill algorithm (better?) + XML-output changed + changed auto dust detection (not final) + + 0.39 XML output added (subject of change, suggestions are welcome) + netpbm-link-error fixed in gocr.c and configure.in: + gocr.c: changed to "config.h" + configure-option --with-netpbm=PATH and --without-netpbm added + update configure.in according to autoconf 2.57 + wchar_h miss-configuration fixed in pgm2asc.c + fix compiler warnings + char filter accepts abbreviations now, like "0-9A-F" (but slow) + update READMEde.txt + output barcode tags (also improved recognition) + fix pnm.c for files like example.eps.pbm + fix detect.c for barcodes + fix ocr0n.c 0<->8g + + 0.38 move UTF/HTML/TeX decoding to getTextLine, return (char *) now + out_format HTML step towards detailed XML output + correct line detection for footnotes (detect.c) + "y" now seen as vowel (pgm2asc.c), I susbtituted by l + é-detection, á-output fixed + default dust_size is -1 now (auto detection = mean_size/10) + char filter added + ex: -C 0123456789ABCDEF - recognize only hexcodes + man page updated (hopefully correct syntax) + database bug fixed (small fonts, example by Chris) + several bugs fixed by W. Webber (thanks) + speed improved by 3rd-pass matrix filter in pixel() (pixel.c) (code from W. Webber) + bug in remove_dust (remove.c) fixed + for fonts bigger than 20x40 smooth_borders() changed (b/w-scans) + bug in O0-detection fixed + + 0.37 best-fit generates probability, not perfect but better results + bug in line detection removed (happens for lot of small boxes) + progress output (option -x ) + counting versions number as floating point now + MACRON and DOT_ABOVE (not complete) defined (latin2) + adaptions for 5x7 and 6x12 screen font + doc/ocr.tex changed to doc/gocr.html (now independent of LaTeX) + symbols {} added + OCR-B font tested succesfull + better headline/picture distinction + bug removed (struct box.modifier is wchar_t now) + + known bugs: to much newlines + + 0.3.6 + CARON and Omega defined, + output of not defined chars (HTML="&#xxx;", TeX="\symbol{xxx}") + system dependend bug: isupper(>255) SIGSEGV fixed + better line detection for lines with lowercase chars only + lot of possible SIGSEGV in list_del() fixed + barcode recognition (UPC,code128) + .ps .eps via pstopnm supported + -m 256 switches off the main ocr engine (usefull together with -m 2 for identical chars) + strings added to database ("ff","ft","special-symbol") + gocr.tcl adapted to gocr v0.3 + internal detection probability introduced + + 0.3.5 + minor and major fixes (string\0 bugs) + memory leak fixes by Duncan Edwards + layout analysis or zoning (-m 4) improved, + now it detects pictures and columns much better + the behavior of setting threshold (-l) is slightly changed + wcsdup defined for non-gnu-systems (BSD), further Problems? + better context correction for 10 (IO,lO) + Fixes for S.Koledin examples "GlS" + Euro-currency-sign detection added + better pitch estimation for proportional font (needs to be improved) + make install DESTDIR= instead configure --prefix= (better?) + use wchar_t by default, more simple code and -f works with nonLinuxOS + line detection more robust against vertical glued chars (js) + -f UTF8 added (usefull for xterm -u8), should be default? + handle vertical glued boxes (ex: g over T) + 0.3.4 + some BSD adaptions (no WCHAR?), tell me if there are still problems + use unicode in database (4-8 hex digits) + new option: -p database_path/ + TILDE fixed, #, Æ, Å, etc. added (swedish,norwegian) + layout analysis improved + 0.3.3 + database (-m 2) bug fixed and interactive mode (-m 130) added + its not finished, but you can test it + result should be ok for machine generated images (no scans) + engine improved a bit + 0.3.2 + ocr-engine improved for screen fonts (thanks for examples) + option -f [HTML,TeX,...] added + 0.3.1 + make install updated + 0.3.0 some parts of the code reviewed (most work done by Bruno Barberi Gnecco) + tkispell patch from David Pinson (exec bug fixed) + gnome frontend added (Dany De Bontrider) + acute, grave, circumflex ... detection + C++ parts rewritten into C, and much more (see REVIEW) + 0.2.7 lib-patch from Klaas Freitag inserted, engine improved + option -n 1 detect only numbers, get threshold value by otsu.cc + xxx.pnm.bz2 can be used on linux systems bzip2 installed + 0.2.6 pipes used on POSIX2-systems for easier use of jpg,gif,tiff,pnm.gz-files + example: gocr text.jpg; gocr text.pnm.gz + verbose output on stderr, text output on stdout, + redirection of output possible (-e, -o, example: -e /dev/stdout) + engine upgraded a bit (thx for the new sample files) + gocr.tcl upgraded (save options, save text) + DOS/WIN95-EXE created, download GOCREXE.ZIP (v0.2.5) + 0.2.5 program convert renamed to jconv + you can choose stdin as input now, for using conversion tools + example: djpeg -pnm -gray text.jpg | gocr -i - + option "--help" added, some bugs removed + amiga.h added for SAS/C under AmigaOS (suggested by Uffe Holst) + line detection changed (faster?) + importing gocr in your C++ application is easier now (see fkt pgm2asc) + argument can be given instead of option -i (this is more natural) + some reorganization of code (not finished) + 2000 downloads counted !!! Jun2000 + SourceForge.net used for gocr (project: jocr, other gocr exist there) + bugs in dust removing, line detection and zoning fixed (rewritten) + first version of tcl/tk-GUI, test it! + rekursive function frame_nn() replaced by labyrint-algorithm (no extensiv stack used) + gluing of broken chars added, removing glued serifs (on small fonts) + new bugs added :; + 0.2.4a2 some details are added (better dust removing and char division) + 0.2.4 three char division (connected chars), dust removing + 0.2.3 add layout analysis (very slowly, try -m 4), engine modified + better distance function, engine updated, database added for testing + 1000 downloads counted !!! May2000 + 0.2.2 gocr_0_2.tgz expands into gocr_0_2 directory (thanks to zz99zz) + engine upgraded a bit, some bugs fixed (umlaut, thin lines) + short documentation added (ocr.tex) + colored output (out30.bmp) for test/development-mode + bug: read ASC-PBM and PCX (1 bit) fixed + 0.2.1 first official release on freshmeat.net March 2000 + 0.2 line scanning added + 0.1 project started (not documented), autumn 1998 - summer 1999 diff --git a/.svn/pristine/7a/7a45e11ec1b989b997aff8206dfc0eecc5ed896d.svn-base b/.svn/pristine/7a/7a45e11ec1b989b997aff8206dfc0eecc5ed896d.svn-base new file mode 100644 index 0000000..6fbe67e --- /dev/null +++ b/.svn/pristine/7a/7a45e11ec1b989b997aff8206dfc0eecc5ed896d.svn-base @@ -0,0 +1,27 @@ +/** + * @file + * @brief IO of a 3D scan in uos file format + * @author Thomas Escher + */ + +#ifndef __SCAN_IO_RIEGL_H__ +#define __SCAN_IO_RIEGL_H__ + +#include "scan_io.h" + + + +/** + * @brief 3D scan loader for Riegl scans + * + * The compiled class is available as shared object file + */ +class ScanIO_riegl_txt : public ScanIO { +public: + virtual std::list readDirectory(const char* dir_path, unsigned int start, unsigned int end); + virtual void readPose(const char* dir_path, const char* identifier, double* pose); + virtual void readScan(const char* dir_path, const char* identifier, PointFilter& filter, std::vector* xyz, std::vector* rgb, std::vector* reflectance, std::vector* amplitude, std::vector* type, std::vector* deviation); + virtual bool supports(IODataType type); +}; + +#endif diff --git a/.svn/pristine/7a/7aa22dff7123e5541cee49407dd7a65cd4df77fe.svn-base b/.svn/pristine/7a/7aa22dff7123e5541cee49407dd7a65cd4df77fe.svn-base new file mode 100644 index 0000000..980b689 --- /dev/null +++ b/.svn/pristine/7a/7aa22dff7123e5541cee49407dd7a65cd4df77fe.svn-base @@ -0,0 +1,21 @@ + validate on + stats query_stats + dim 8 + data_size 5000 +read_data_pts test2-data.pts + query_size 100 +read_query_pts test2-query.pts + bucket_size 1 + near_neigh 3 + split_rule suggest + shrink_rule none +build_ann + epsilon 0.0 +run_queries standard +run_queries priority + epsilon 0.10 +run_queries standard +run_queries priority + epsilon 0.50 +run_queries standard +run_queries priority diff --git a/.svn/pristine/7b/7b87297f223375202f344d7118281931d0316635.svn-base b/.svn/pristine/7b/7b87297f223375202f344d7118281931d0316635.svn-base new file mode 100644 index 0000000..dea3f6b --- /dev/null +++ b/.svn/pristine/7b/7b87297f223375202f344d7118281931d0316635.svn-base @@ -0,0 +1,61 @@ +//---------------------------------------------------------------------- +// File: bd_fix_rad_search.cpp +// Programmer: David Mount +// Description: Standard bd-tree search +// Last modified: 05/03/05 (Version 1.1) +//---------------------------------------------------------------------- +// Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +// David Mount. All Rights Reserved. +// +// This software and related documentation is part of the Approximate +// Nearest Neighbor Library (ANN). This software is provided under +// the provisions of the Lesser GNU Public License (LGPL). See the +// file ../ReadMe.txt for further information. +// +// The University of Maryland (U.M.) and the authors make no +// representations about the suitability or fitness of this software for +// any purpose. It is provided "as is" without express or implied +// warranty. +//---------------------------------------------------------------------- +// History: +// Revision 1.1 05/03/05 +// Initial release +//---------------------------------------------------------------------- + +#include "bd_tree.h" // bd-tree declarations +#include "kd_fix_rad_search.h" // kd-tree FR search declarations + +//---------------------------------------------------------------------- +// Approximate searching for bd-trees. +// See the file kd_FR_search.cpp for general information on the +// approximate nearest neighbor search algorithm. Here we +// include the extensions for shrinking nodes. +//---------------------------------------------------------------------- + +//---------------------------------------------------------------------- +// bd_shrink::ann_FR_search - search a shrinking node +//---------------------------------------------------------------------- + +void ANNbd_shrink::ann_FR_search(ANNdist box_dist) +{ + // check dist calc term cond. + if (ANNmaxPtsVisited != 0 && ANNptsVisited > ANNmaxPtsVisited) return; + + ANNdist inner_dist = 0; // distance to inner box + for (int i = 0; i < n_bnds; i++) { // is query point in the box? + if (bnds[i].out(ANNkdFRQ)) { // outside this bounding side? + // add to inner distance + inner_dist = (ANNdist) ANN_SUM(inner_dist, bnds[i].dist(ANNkdFRQ)); + } + } + if (inner_dist <= box_dist) { // if inner box is closer + child[ANN_IN]->ann_FR_search(inner_dist);// search inner child first + child[ANN_OUT]->ann_FR_search(box_dist);// ...then outer child + } + else { // if outer box is closer + child[ANN_OUT]->ann_FR_search(box_dist);// search outer child first + child[ANN_IN]->ann_FR_search(inner_dist);// ...then outer child + } + ANN_FLOP(3*n_bnds) // increment floating ops + ANN_SHR(1) // one more shrinking node +} diff --git a/.svn/pristine/7c/7c044742191d5decd0df544f96a4ed0d47c005c7.svn-base b/.svn/pristine/7c/7c044742191d5decd0df544f96a4ed0d47c005c7.svn-base new file mode 100644 index 0000000..3dcfc1e --- /dev/null +++ b/.svn/pristine/7c/7c044742191d5decd0df544f96a4ed0d47c005c7.svn-base @@ -0,0 +1,254 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: wxCustomButton.h based on wxCustomToggleCtrl.cpp +// Purpose: a toggle button +// Author: Bruce Phillips modified by John Labenski +// Modified by: +// Created: 11/05/2002 +// RCS-ID: +// Copyright: (c) Bruce Phillips, John Labenski +// Licence: wxWidgets licence +///////////////////////////////////////////////////////////////////////////// + +/* + +wxCustomButton is a bitmap and/or text button that can toggle or not. + +It can be used as a drop-in replacement for a wxButton, wxToggleButton, + wxBitmapButton, and the non-existant "wxBitmapToggleButton." + +The event's wxCommandEvent::GetExtraLong contains one of the following + wxEVT_LEFT_UP, wxEVT_RIGHT_UP, wxEVT_LEFT_DCLICK, wxEVT_RIGHT_DCLICK + these can be used to distinguish between the types of events sent + +There are four styles the button can take. + +wxCUSTBUT_BUTTON == wxButton + Left and Right clicks and double clicks all send + wxEVT_COMMAND_BUTTON_CLICKED => EVT_BUTTON(id,fn) + +wxCUSTBUT_TOGGLE == wxToggleButton + Left clicks sends + wxEVT_COMMAND_TOGGLEBUTTON_CLICKED => EVT_TOGGLEBUTTON(id, fn) + Left double clicks and Right clicks send + wxEVT_COMMAND_BUTTON_CLICKED => EVT_BUTTON(id,fn) + +wxCUSTBUT_BUT_DCLICK_TOG + Left and Right clicks and Right double clicks send + wxEVT_COMMAND_BUTTON_CLICKED => EVT_BUTTON(id,fn) + Left double clicks sends + wxEVT_COMMAND_TOGGLEBUTTON_CLICKED => EVT_TOGGLEBUTTON(id, fn) + +wxCUSTBUT_TOG_DCLICK_BUT + Left clicks sends + wxEVT_COMMAND_TOGGLEBUTTON_CLICKED => EVT_TOGGLEBUTTON(id, fn) + Left and Right double clicks and Right clicks send + wxEVT_COMMAND_BUTTON_CLICKED => EVT_BUTTON(id,fn) + +The event's wxCommandEvent::GetInt (IsChecked) is true (1) if the button is + depressed, this is only useful for the wxToggleButton styles + +For both types of button when double-clicked it sends this event + wxEVT_COMMAND_BUTTON_CLICKED => EVT_BUTTON(id, fn) + and the button state does not change. Only a single EVT_BUTTON event should + be sent on double-click and event.GetExtraLong == wxEVT_XXX_DCLICK, + if not then there's a bug. + +If no bitmaps are set the text is centered, if only a bitmap it set then + it's centered, if a bitmap and text are set then the text is one of the + positions wxCUSTBUT_LEFT/RIGHT/TOP/BOTTOM + +The disabled bitmap it automatically created by dithering with the background, + the others just copy the bitmap in the constructor. The control assumes they + are all the same size. + +You have to #include "wx/tglbtn.h" for EVT_TOGGLEBUTTON + +*/ + +#ifndef _WX_CUSTOMBUTTON_H_ +#define _WX_CUSTOMBUTTON_H_ + +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) + #pragma interface "toggle.h" +#endif + +#include "wx/things/thingdef.h" + +class WXDLLEXPORT wxTimer; +class WXDLLEXPORT wxTimerEvent; + +//----------------------------------------------------------------------------- +// wxCustomButton styles +//----------------------------------------------------------------------------- + +enum wxCustomButton_Style +{ + // Position of the label, use only one + wxCUSTBUT_LEFT = 0x0001, + wxCUSTBUT_RIGHT = 0x0002, + wxCUSTBUT_TOP = 0x0004, + wxCUSTBUT_BOTTOM = 0x0008, + // Button style, use only one + wxCUSTBUT_NOTOGGLE = 0x0100, + wxCUSTBUT_BUTTON = 0x0200, + wxCUSTBUT_TOGGLE = 0x0400, + wxCUSTBUT_BUT_DCLICK_TOG = 0x0800, + wxCUSTBUT_TOG_DCLICK_BUT = 0x1000, + // drawing styles + wxCUSTBUT_FLAT = 0x2000 // flat, mouseover raises if not depressed +}; + +//----------------------------------------------------------------------------- +// wxCustomButton +//----------------------------------------------------------------------------- + +class WXDLLIMPEXP_THINGS wxCustomButton : public wxControl +{ +public: + + wxCustomButton() : wxControl() { Init(); } + + // wxToggleButton or wxButton compatible constructor (also wxTextCtrl) + wxCustomButton(wxWindow* parent, wxWindowID id, + const wxString& label, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxCUSTBUT_TOGGLE, + const wxValidator& val = wxDefaultValidator, + const wxString& name = wxT("wxCustomButton")) + : wxControl() + { + Init(); + Create(parent,id,label,wxNullBitmap,pos,size,style,val,name); + } + + // wxBitmapButton compatible constructor + wxCustomButton(wxWindow *parent, wxWindowID id, + const wxBitmap& bitmap, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxCUSTBUT_TOGGLE, + const wxValidator& val = wxDefaultValidator, + const wxString& name = wxT("wxCustomButton")) + : wxControl() + { + Init(); + Create(parent,id,wxEmptyString,bitmap,pos,size,style,val,name); + } + + // Native constructor + wxCustomButton(wxWindow *parent, wxWindowID id, + const wxString& label, const wxBitmap& bitmap, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxCUSTBUT_TOGGLE|wxCUSTBUT_BOTTOM, + const wxValidator& val = wxDefaultValidator, + const wxString& name = wxT("wxCustomButton")) + : wxControl() + { + Init(); + Create(parent,id,label,bitmap,pos,size,style,val,name); + } + + virtual ~wxCustomButton(); + + bool Create(wxWindow* parent, + wxWindowID id, + const wxString& label, + const wxBitmap &bitmap, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = 0, + const wxValidator& val = wxDefaultValidator, + const wxString& name = wxT("wxCustomButton")); + + bool GetValue() const { return m_down%2 != 0; } + void SetValue( bool depressed ); + + // Use combinations of wxCustomButton_Style(s) + long GetButtonStyle() const { return m_button_style; } + bool SetButtonStyle( long style ); + + // Set the text label, wxEmptyString for none + void SetLabel( const wxString &label ); + + // set the bitmaps, ONLY this Label bitmap is used for calculating control size + // all bitmaps will be centered accordingly in any case + // call SetSet(GetBestSize()) if you change their size and want the control to resize appropriately + void SetBitmapLabel(const wxBitmap& bitmap); + void SetBitmapSelected(const wxBitmap& sel) { m_bmpSelected = sel; CalcLayout(true); }; + void SetBitmapFocus(const wxBitmap& focus) { m_bmpFocus = focus; CalcLayout(true); }; + void SetBitmapDisabled(const wxBitmap& disabled) { m_bmpDisabled = disabled; CalcLayout(true); }; + // wxBitmapButton compatibility + void SetLabel(const wxBitmap& bitmap) { SetBitmapLabel(bitmap); } + + // retrieve the bitmaps + const wxBitmap& GetBitmapLabel() const { return m_bmpLabel; } + const wxBitmap& GetBitmapSelected() const { return m_bmpSelected; } + const wxBitmap& GetBitmapFocus() const { return m_bmpFocus; } + const wxBitmap& GetBitmapDisabled() const { return m_bmpDisabled; } + + // Creates a "disabled" bitmap by dithering it with the background colour + wxBitmap CreateBitmapDisabled(const wxBitmap &bitmap) const; + + // set/get the margins (in pixels) around the label and bitmap + // if fit = true then resize the button to fit + void SetMargins(const wxSize &margin, bool fit = false); + + // set/get the margins around the text label + // the inter bitmap/label margin is the max of either margin, not the sum + void SetLabelMargin(const wxSize &margin, bool fit = false); + wxSize GetLabelMargin() const { return m_labelMargin; } + // set/get the margins around the bitmap + // the inter bitmap/label margin is the max of either margin, not the sum + void SetBitmapMargin(const wxSize &margin, bool fit = false); + wxSize GetBitmapMargin() const { return m_bitmapMargin; } + + // can be used to activate the focused behavior (see MenuButton) + void SetFocused(bool focused) { m_focused = focused; Refresh(false); } + bool GetFocused() const { return m_focused; } + +protected: + void OnPaint(wxPaintEvent &event); + void Redraw(); + virtual void Paint( wxDC &dc ); + + virtual wxSize DoGetBestSize() const; + + virtual void SendEvent(); + + void OnMouseEvents(wxMouseEvent &event); + + void OnTimer(wxTimerEvent &event); + void OnSize( wxSizeEvent &event ); + + virtual void CalcLayout(bool refresh); + + int m_down; // toggle state if m_down%2 then depressed + bool m_focused; // mouse in window + long m_button_style; + + // the bitmaps for various states + wxBitmap m_bmpLabel, + m_bmpSelected, + m_bmpFocus, + m_bmpDisabled; + + // the margins around the label/bitmap + wxSize m_labelMargin, + m_bitmapMargin; + + wxPoint m_bitmapPos, + m_labelPos; + + wxTimer *m_timer; + + wxEventType m_eventType; // store the mouse event type + +private: + void Init(); + DECLARE_DYNAMIC_CLASS(wxCustomButton) + DECLARE_EVENT_TABLE() +}; + +#endif // _WX_CUSTOMBUTTON_H_ diff --git a/.svn/pristine/7c/7c25543d6126be4ebe5f6f4e690e82b4515f6aff.svn-base b/.svn/pristine/7c/7c25543d6126be4ebe5f6f4e690e82b4515f6aff.svn-base new file mode 100644 index 0000000..4baceb3 --- /dev/null +++ b/.svn/pristine/7c/7c25543d6126be4ebe5f6f4e690e82b4515f6aff.svn-base @@ -0,0 +1,367 @@ +/* + * icp6D implementation + * + * Copyright (C) Andreas Nuechter, Kai Lingemann + * + * Released under the GPL version 3. + * + */ + + +/** + * @file + * @brief Implementation of 3D scan matching with ICP + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "slam6d/icp6D.h" + +#include "slam6d/metaScan.h" +#include "slam6d/globals.icc" + +#include +using std::cerr; + +#include + +#ifdef _MSC_VER +#if !defined _OPENMP && defined OPENMP +#define _OPENMP +#endif +#endif + +#ifdef _OPENMP +#include +#endif +/** + * Constructor + * + * @param my_icp6Dminimizer Pointer to the ICP-minimizer + * @param max_dist_match Maximum distance to which point pairs are collected + * @param max_num_iterations Maximum number of iterations + * @param quiet Whether to print to the standard output + * @param meta Match against a meta scan? + * @param rnd Randomized point selection + * @param eP Extrapolate odometry? + * @param anim Animate which frames? + * @param epsilonICP Termination criterion + * @param nns_method Selects NNS method to be used + */ +icp6D::icp6D(icp6Dminimizer *my_icp6Dminimizer, double max_dist_match, + int max_num_iterations, bool quiet, bool meta, int rnd, bool eP, + int anim, double epsilonICP, int nns_method, bool cuda_enabled, + bool cad_matching) +{ + this->my_icp6Dminimizer = my_icp6Dminimizer; + this->anim = anim; + this->cuda_enabled = cuda_enabled; + this->nns_method = nns_method; + + if (!quiet) { + cout << "Maximal distance match : " << max_dist_match << endl + << "Maximal number of iterations: " << max_num_iterations << endl << endl; + } + + // checks + if (max_dist_match < 0.0) { + cerr << "ERROR [ICP6D]: first parameter (max_dist_match) has to be >= 0," << endl; + exit(1); + } + if (max_num_iterations < 0) { + cerr << "ERROR [ICP6D]: second parameter (max_num_iterations) has to be >= 0." << endl; + exit(1); + } + + this->max_dist_match2 = sqr(max_dist_match); + this->max_num_iterations = max_num_iterations; + this->quiet = quiet; + this->meta = meta; + this->rnd = rnd; + this->eP = eP; + this->epsilonICP = epsilonICP; + + // Set initial seed (for "real" random numbers) + // srand( (unsigned)time( NULL ) ); + this->cad_matching = cad_matching; +} + +/** + * Matches a 3D Scan against a 3D Scan + * @param PreviousScan The scan or metascan forming the model + * @param CurrentScan The current scan thas is to be matched + * @return The number of iterations done in this matching run + */ +int icp6D::match(Scan* PreviousScan, Scan* CurrentScan) +{ + // If ICP shall not be applied, then just write + // the identity matrix + if (max_num_iterations == 0) { + double id[16]; + M4identity(id); + CurrentScan->transform(id, Scan::ICP, 0); // write end pose + return 0; + } + + // icp main loop + double ret = 0.0, prev_ret = 0.0, prev_prev_ret = 0.0; + int iter = 0; + double alignxf[16]; + for (iter = 0; iter < max_num_iterations; iter++) { + + prev_prev_ret = prev_ret; + prev_ret = ret; + +#ifdef _OPENMP + // Implementation according to the paper + // "The Parallel Iterative Closest Point Algorithm" + // by Langis / Greenspan / Godin, IEEE 3DIM 2001 + // + // The same information are given in (ecrm2007.pdf) + // Andreas N眉chter. Parallelization of Scan Matching + // for Robotic 3D Mapping. In Proceedings of the 3rd + // European Conference on Mobile Robots (ECMR '07), + // Freiburg, Germany, September 2007 + omp_set_num_threads(OPENMP_NUM_THREADS); + + int max = (int)CurrentScan->size("xyz reduced"); + int step = max / OPENMP_NUM_THREADS; + + vector pairs[OPENMP_NUM_THREADS]; + double sum[OPENMP_NUM_THREADS]; + double centroid_m[OPENMP_NUM_THREADS][3]; + double centroid_d[OPENMP_NUM_THREADS][3]; + double Si[OPENMP_NUM_THREADS][9]; + unsigned int n[OPENMP_NUM_THREADS]; + + for (int i = 0; i < OPENMP_NUM_THREADS; i++) { + sum[i] = centroid_m[i][0] = centroid_m[i][1] = centroid_m[i][2] = 0.0; + centroid_d[i][0] = centroid_d[i][1] = centroid_d[i][2] = 0.0; + Si[i][0] = Si[i][1] = Si[i][2] = Si[i][3] = Si[i][4] = Si[i][5] = Si[i][6] = Si[i][7] = Si[i][8] = 0.0; + n[i] = 0; + } + +#pragma omp parallel + { + int thread_num = omp_get_thread_num(); + Scan::getPtPairsParallel(pairs, PreviousScan, CurrentScan, + thread_num, step, + rnd, max_dist_match2, + sum, centroid_m, centroid_d); + + n[thread_num] = (unsigned int)pairs[thread_num].size(); + + if ((my_icp6Dminimizer->getAlgorithmID() == 1) || + (my_icp6Dminimizer->getAlgorithmID() == 2)) { + for (unsigned int i = 0; i < n[thread_num]; i++) { + + double pp[3] = {pairs[thread_num][i].p1.x - centroid_m[thread_num][0], + pairs[thread_num][i].p1.y - centroid_m[thread_num][1], + pairs[thread_num][i].p1.z - centroid_m[thread_num][2]}; + double qq[3] = {pairs[thread_num][i].p2.x - centroid_d[thread_num][0], + pairs[thread_num][i].p2.y - centroid_d[thread_num][1], + pairs[thread_num][i].p2.z - centroid_d[thread_num][2]}; +/* + double pp[3] = {pairs[thread_num][i].p1.x - centroid_d[thread_num][0], + pairs[thread_num][i].p1.y - centroid_d[thread_num][1], + pairs[thread_num][i].p1.z - centroid_d[thread_num][2]}; + double qq[3] = {pairs[thread_num][i].p2.x - centroid_m[thread_num][0], + pairs[thread_num][i].p2.y - centroid_m[thread_num][1], + pairs[thread_num][i].p2.z - centroid_m[thread_num][2]}; +*/ + // formula (6) + Si[thread_num][0] += pp[0] * qq[0]; + Si[thread_num][1] += pp[0] * qq[1]; + Si[thread_num][2] += pp[0] * qq[2]; + Si[thread_num][3] += pp[1] * qq[0]; + Si[thread_num][4] += pp[1] * qq[1]; + Si[thread_num][5] += pp[1] * qq[2]; + Si[thread_num][6] += pp[2] * qq[0]; + Si[thread_num][7] += pp[2] * qq[1]; + Si[thread_num][8] += pp[2] * qq[2]; + } + } + } // end parallel + + + // do we have enough point pairs? + unsigned int pairssize = 0; + for (int i = 0; i < OPENMP_NUM_THREADS; i++) { + pairssize += n[i]; + } + if (pairssize > 3) { + if ((my_icp6Dminimizer->getAlgorithmID() == 1) || + (my_icp6Dminimizer->getAlgorithmID() == 2) ) { + ret = my_icp6Dminimizer->Point_Point_Align_Parallel(OPENMP_NUM_THREADS, + n, sum, centroid_m, centroid_d, Si, + alignxf); + } else if (my_icp6Dminimizer->getAlgorithmID() == 6) { + ret = my_icp6Dminimizer->Point_Point_Align_Parallel(OPENMP_NUM_THREADS, + n, sum, centroid_m, centroid_d, + pairs, + alignxf); + } else { + cout << "This parallel minimization algorithm is not implemented !!!" << endl; + exit(-1); + } + } else { + //break; + } +#else + + double centroid_m[3] = {0.0, 0.0, 0.0}; + double centroid_d[3] = {0.0, 0.0, 0.0}; + vector pairs; + + Scan::getPtPairs(&pairs, PreviousScan, CurrentScan, 0, rnd, + max_dist_match2, ret, centroid_m, centroid_d); + + // do we have enough point pairs? + if (pairs.size() > 3) { + if (my_icp6Dminimizer->getAlgorithmID() == 3 || my_icp6Dminimizer->getAlgorithmID() == 8 ) { + memcpy(alignxf, CurrentScan->get_transMat(), sizeof(alignxf)); + } + ret = my_icp6Dminimizer->Point_Point_Align(pairs, alignxf, centroid_m, centroid_d); + } else { + break; + } + +#endif + + if ((iter == 0 && anim != -2) || ((anim > 0) && (iter % anim == 0))) { + CurrentScan->transform(alignxf, Scan::ICP, 0); // transform the current scan + } else { + CurrentScan->transform(alignxf, Scan::ICP, -1); // transform the current scan + } + + if ((fabs(ret - prev_ret) < epsilonICP) && (fabs(ret - prev_prev_ret) < epsilonICP)) { + double id[16]; + M4identity(id); + if(anim == -2) { + CurrentScan->transform(id, Scan::ICP, -1); // write end pose + } else { + CurrentScan->transform(id, Scan::ICP, 0); // write end pose + } + break; + } + } + + return iter; +} + + +/** + * Computes the point to point error between two scans + * + * + */ +double icp6D::Point_Point_Error(Scan* PreviousScan, Scan* CurrentScan, double max_dist_match, unsigned int *np) { + double error = 0; + unsigned int nr_ppairs = 0; + +#ifdef _OPENMP + omp_set_num_threads(OPENMP_NUM_THREADS); + + int max = (int)CurrentScan->size("xyz reduced"); + int step = max / OPENMP_NUM_THREADS; + + vector pairs[OPENMP_NUM_THREADS]; + double sum[OPENMP_NUM_THREADS]; + double centroid_m[OPENMP_NUM_THREADS][3]; + double centroid_d[OPENMP_NUM_THREADS][3]; + + for (int i = 0; i < OPENMP_NUM_THREADS; i++) { + sum[i] = centroid_m[i][0] = centroid_m[i][1] = centroid_m[i][2] = 0.0; + centroid_d[i][0] = centroid_d[i][1] = centroid_d[i][2] = 0.0; + } + +#pragma omp parallel + { + int thread_num = omp_get_thread_num(); + Scan::getPtPairsParallel(pairs, PreviousScan, CurrentScan, + thread_num, step, + rnd, sqr(max_dist_match), + sum, centroid_m, centroid_d); + + } + + for (unsigned int thread_num = 0; thread_num < OPENMP_NUM_THREADS; thread_num++) { + for (unsigned int i = 0; i < (unsigned int)pairs[thread_num].size(); i++) { + error += sqr(pairs[thread_num][i].p1.x - pairs[thread_num][i].p2.x) + + sqr(pairs[thread_num][i].p1.y - pairs[thread_num][i].p2.y) + + sqr(pairs[thread_num][i].p1.z - pairs[thread_num][i].p2.z); + } + nr_ppairs += (unsigned int)pairs[thread_num].size(); + } +#else + + double centroid_m[3] = {0.0, 0.0, 0.0}; + double centroid_d[3] = {0.0, 0.0, 0.0}; + vector pairs; + + Scan::getPtPairs(&pairs, PreviousScan, CurrentScan, 0, rnd, sqr(max_dist_match),error, centroid_m, centroid_d); + + // getPtPairs computes error as sum of squared distances + error = 0; + + for (unsigned int i = 0; i < pairs.size(); i++) { + error += sqrt( + sqr(pairs[i].p1.x - pairs[i].p2.x) + + sqr(pairs[i].p1.y - pairs[i].p2.y) + + sqr(pairs[i].p1.z - pairs[i].p2.z) ); + } + nr_ppairs = pairs.size(); +#endif + + if (np) *np = nr_ppairs; +// return sqrt(error/nr_ppairs); + return error/nr_ppairs; +} +/** + * This function matches the scans only with ICP + * + * @param allScans Contains all necessary scans. + */ +void icp6D::doICP(vector allScans) +{ + double id[16]; + M4identity(id); + + vector < Scan* > meta_scans; + Scan* my_MetaScan = 0; + + for(unsigned int i = 0; i < allScans.size(); i++) { + cout << i << "*" << endl; + + Scan *CurrentScan = allScans[i]; + Scan *PreviousScan = 0; + + if (i > 0) { + PreviousScan = allScans[i-1]; + if (eP) { // extrapolate odometry + CurrentScan->mergeCoordinatesWithRoboterPosition(PreviousScan); + } + } + + if (i > 0) { + if (meta) { + match(my_MetaScan, CurrentScan); + } else + if (cad_matching) { + match(allScans[0], CurrentScan); + } else { + match(PreviousScan, CurrentScan); + } + } + + // push processed scan + if ( meta && i != allScans.size()-1 ) { + meta_scans.push_back(CurrentScan); + if (my_MetaScan) { + delete my_MetaScan; + } + my_MetaScan = new MetaScan(meta_scans, nns_method, cuda_enabled); + } + } +} + diff --git a/.svn/pristine/7c/7c4b7194f1099021af214945e647acdbca99a411.svn-base b/.svn/pristine/7c/7c4b7194f1099021af214945e647acdbca99a411.svn-base new file mode 100644 index 0000000..39cb93e --- /dev/null +++ b/.svn/pristine/7c/7c4b7194f1099021af214945e647acdbca99a411.svn-base @@ -0,0 +1,175 @@ +/** + * @file + * @brief Implementation of reading 3D scans + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "slam6d/scan_io_pci.h" +#include "slam6d/globals.icc" +#include +using std::ifstream; +#include +using std::cout; +using std::cerr; +using std::endl; + +#ifdef _MSC_VER +#include +#endif + +/** + * Reads specified scans from given directory. + * + * Scan poses will NOT be initialized after a call + * to this function. + * + * This function actually implements loading of 3D scans + * in UOS file format and will be compiled as shared lib. + * + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param dir The directory from which to read + * @param maxDist Reads only Points up to this Distance + * @param mindist Reads only Points from this Distance + * @param euler Initital pose estimates (will not be applied to the points + * @param ptss Vector containing the read points + */ +int ScanIO_pci::readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss) +{ + static int fileCounter = start; + string scanFileName; + string poseFileName; + + ifstream scan_in, pose_in; + + double maxDist2 = sqr(maxDist); + double minDist2 = sqr(mindist); + + int my_fileNr = fileCounter; + + if (end > -1 && fileCounter > end) return -1; // 'nuf read + + // read 3D scan + poseFileName = dir + "scan" + to_string(fileCounter,4) + ".pose"; + scanFileName = dir + "scan" + to_string(fileCounter,4) + ".pci"; + scan_in.open(scanFileName.c_str()); + if (!scan_in.good()) { + cerr << "ERROR: Missing file" << scanFileName << endl; + scan_in.close(); + return -1; + } + + pose_in.open(poseFileName.c_str()); + double inMatrix[16], tMatrix[16]; + double rPosTheta[3], rPos[3]; + if (!pose_in.good()) { + cerr << "using default pose 0,0,0 !!!" << endl; + M4identity(inMatrix); + } else { + for (unsigned int i = 0; i < 16; pose_in >> inMatrix[i++]); + } + + // transform input pose + tMatrix[0] = inMatrix[5]; + tMatrix[1] = -inMatrix[9]; + tMatrix[2] = -inMatrix[1]; + tMatrix[3] = -inMatrix[13]; + tMatrix[4] = -inMatrix[6]; + tMatrix[5] = inMatrix[10]; + tMatrix[6] = inMatrix[2]; + tMatrix[7] = inMatrix[14]; + tMatrix[8] = -inMatrix[4]; + tMatrix[9] = inMatrix[8]; + tMatrix[10] = inMatrix[0]; + tMatrix[11] = inMatrix[12]; + tMatrix[12] = -inMatrix[7]; + tMatrix[13] = inMatrix[11]; + tMatrix[14] = inMatrix[3]; + tMatrix[15] = inMatrix[15]; + + Matrix4ToEuler(tMatrix, rPosTheta, rPos); + + euler[0] = 100*rPos[0]; + euler[1] = 100*rPos[1]; + euler[2] = 100*rPos[2]; + euler[3] = rPosTheta[0]; + euler[4] = rPosTheta[1]; + euler[5] = rPosTheta[2]; + + cout << "Processing Scan " << scanFileName; + + + cout << " @ pose (" << euler[0] << "," << euler[1] << "," << euler[2] + << "," << deg(euler[3]) << "," << deg(euler[4]) << "," << deg(euler[5]) << ")" << endl; + + + // overread the first line + char dummy[255]; + scan_in.getline(dummy, 255); + + while (scan_in.good()) { + Point q; + Point p; + try { + scan_in >> q; + scan_in >> p.reflectance; + } catch (...) { + break; + } + p.x = q.y*-100.0; + p.y = q.z*100.0; + p.z = q.x*100.0; + + // load points up to a certain distance only + // maxDist2 = -1 indicates no limitation + if (maxDist == -1 || sqr(p.x) + sqr(p.y) + sqr(p.z) < maxDist2) + if (mindist == -1 || sqr(p.x) + sqr(p.y) + sqr(p.z) > minDist2) + ptss.push_back(p); + } + scan_in.close(); + scan_in.clear(); + pose_in.close(); + pose_in.clear(); + fileCounter++; + + return my_fileNr; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_pci; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/.svn/pristine/7c/7cbd5438a1c6589593405027a360e9990b2dcf0f.svn-base b/.svn/pristine/7c/7cbd5438a1c6589593405027a360e9990b2dcf0f.svn-base new file mode 100644 index 0000000..d733b6a --- /dev/null +++ b/.svn/pristine/7c/7cbd5438a1c6589593405027a360e9990b2dcf0f.svn-base @@ -0,0 +1,756 @@ +/////////////////////////////////////////////////////////////////////////// +// C++ code generated with wxFormBuilder (version Dec 21 2009) +// http://www.wxformbuilder.org/ +// +// PLEASE DO "NOT" EDIT THIS FILE! +/////////////////////////////////////////////////////////////////////////// + +#include "show/selectionframe.h" +#include "float.h" + +/////////////////////////////////////////////////////////////////////////// + +Selection::Selection( wxWindow* parent, wxWindowID id, const wxString& title, + const wxPoint& pos, const wxSize& size, long style, bool advanced_controls ) : wxFrame( parent, id, + title, pos, size, style ) { + //this->SetSizeHints( wxDefaultSize, wxDefaultSize ); + + bSizer1 = new wxBoxSizer( wxVERTICAL ); + + m_checkBox1 = new wxCheckBox( this, wxID_ANY, wxT("Draw Points"), wxDefaultPosition, wxDefaultSize, 0 ); + m_checkBox1->SetValue(true); + bSizer1->Add( m_checkBox1, 0, wxRIGHT|wxLEFT, 5 ); + + m_checkBox2 = new wxCheckBox( this, wxID_ANY, wxT("Draw Cameras"), wxDefaultPosition, wxDefaultSize, 0 ); + m_checkBox2->SetValue(true); + bSizer1->Add( m_checkBox2, 0, wxRIGHT|wxLEFT, 5 ); + + m_checkBox3 = new wxCheckBox( this, wxID_ANY, wxT("Draw Paths"), wxDefaultPosition, wxDefaultSize, 0 ); + m_checkBox3->SetValue(true); + bSizer1->Add( m_checkBox3, 0, wxRIGHT|wxLEFT, 5 ); + + m_panel2 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); + wxBoxSizer* bSizer3; + bSizer3 = new wxBoxSizer( wxHORIZONTAL ); + + m_staticText2 = new wxStaticText( m_panel2, wxID_ANY, wxT("Point Size:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText2->Wrap( -1 ); + bSizer3->Add( m_staticText2, 0, wxALL, 5 ); + + + bSizer3->Add( 0, 0, 1, wxEXPAND, 5 ); + + pointsize_spinner = new wxSpinCtrl( m_panel2, wxID_ANY, wxT("1"), wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 10, 0 ); + bSizer3->Add( pointsize_spinner, 0, wxRIGHT|wxLEFT, 5 ); + + m_panel2->SetSizer( bSizer3 ); + m_panel2->Layout(); + bSizer3->Fit( m_panel2 ); + bSizer1->Add( m_panel2, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT|wxEXPAND, 5 ); + + m_panel21 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); + wxBoxSizer* bSizer31; + bSizer31 = new wxBoxSizer( wxHORIZONTAL ); + + m_staticText21 = new wxStaticText( m_panel21, wxID_ANY, wxT("Fog:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText21->Wrap( -1 ); + bSizer31->Add( m_staticText21, 0, wxALL, 5 ); + + + bSizer31->Add( 0, 0, 1, wxEXPAND, 5 ); + + wxString m_choice1Choices[] = { wxT("None"), wxT("Exp"), wxT("Exp2"), wxT("Linear"), wxT("inverted, Exp"), wxT("inverted, Exp2"), wxT("inverted, Linear") }; + int m_choice1NChoices = sizeof( m_choice1Choices ) / sizeof( wxString ); + m_choice1 = new wxChoice( m_panel21, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choice1NChoices, m_choice1Choices, 0 ); + m_choice1->SetSelection( 1 ); + bSizer31->Add( m_choice1, 0, wxRIGHT|wxLEFT, 5 ); + + m_panel21->SetSizer( bSizer31 ); + m_panel21->Layout(); + bSizer31->Fit( m_panel21 ); + bSizer1->Add( m_panel21, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT|wxEXPAND, 5 ); + + m_panel3 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); + wxBoxSizer* bSizer6; + bSizer6 = new wxBoxSizer( wxHORIZONTAL ); + + m_staticText4 = new wxStaticText( m_panel3, wxID_ANY, wxT("Fog Density:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText4->Wrap( -1 ); + bSizer6->Add( m_staticText4, 0, wxALL, 5 ); + + + bSizer6->Add( 0, 0, 1, wxEXPAND, 5 ); + + fogdens_spinner = new wxSpinCtrlDbl( *m_panel3, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, + 0, 1.0, 0.001, 0.001 ); + bSizer6->Add( fogdens_spinner, 0, wxRIGHT|wxLEFT, 5 ); + + m_panel3->SetSizer( bSizer6 ); + m_panel3->Layout(); + bSizer6->Fit( m_panel3 ); + bSizer1->Add( m_panel3, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT|wxEXPAND, 5 ); + /* + wxStaticBoxSizer* sbSizer3; + sbSizer3 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, wxT("Color:") ), wxVERTICAL ); + */ + wxCollapsiblePane *colorpane = new wxCollapsiblePane(this, wxID_ANY, wxT("Colors:")); + wxWindow *colorwin = colorpane->GetPane(); + wxBoxSizer* sbSizer3 = new wxBoxSizer( wxVERTICAL ); + colorwin->SetSizer(sbSizer3); + + + m_panel211 = new wxPanel( colorwin, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); + wxBoxSizer* bSizer311; + bSizer311 = new wxBoxSizer( wxHORIZONTAL ); + + m_staticText211 = new wxStaticText( m_panel211, wxID_ANY, wxT("value:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText211->Wrap( -1 ); + bSizer311->Add( m_staticText211, 0, wxALL, 5 ); + + + bSizer311->Add( 0, 0, 1, wxEXPAND, 5 ); + + wxString m_choice11Choices[] = { wxT("height") }; + + int m_choice11NChoices = sizeof( m_choice11Choices ) / sizeof( wxString ); + m_choice11 = new wxChoice( m_panel211, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choice11NChoices, m_choice11Choices, 0 ); + m_choice11->SetSelection( 4 ); + bSizer311->Add( m_choice11, 0, wxRIGHT|wxLEFT, 5 ); + + m_panel211->SetSizer( bSizer311 ); + m_panel211->Layout(); + bSizer311->Fit( m_panel211 ); + sbSizer3->Add( m_panel211, 0, wxRIGHT|wxLEFT|wxALIGN_RIGHT|wxEXPAND, 5 ); + + m_panel212 = new wxPanel( colorwin, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); + wxBoxSizer* bSizer312; + bSizer312 = new wxBoxSizer( wxHORIZONTAL ); + + m_staticText212 = new wxStaticText( m_panel212, wxID_ANY, wxT("map:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText212->Wrap( -1 ); + bSizer312->Add( m_staticText212, 0, wxALL, 5 ); + + + bSizer312->Add( 0, 0, 1, wxEXPAND, 5 ); + + wxString m_choice12Choices[] = { wxT("Solid"), wxT("Grey"), wxT("HSV"), wxT("Jet"), wxT("Hot"), wxT("Rand"), wxT("SHSV") }; + int m_choice12NChoices = sizeof( m_choice12Choices ) / sizeof( wxString ); + m_choice12 = new wxChoice( m_panel212, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choice12NChoices, m_choice12Choices, 0 ); + m_choice12->SetSelection( 0 ); + bSizer312->Add( m_choice12, 0, wxRIGHT|wxLEFT, 5 ); + + m_panel212->SetSizer( bSizer312 ); + m_panel212->Layout(); + bSizer312->Fit( m_panel212 ); + sbSizer3->Add( m_panel212, 0, wxRIGHT|wxLEFT|wxALIGN_RIGHT|wxEXPAND, 5 ); + + m_panel213 = new wxPanel( colorwin, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); + wxBoxSizer* bSizer313; + bSizer313 = new wxBoxSizer( wxHORIZONTAL ); + + m_staticText213 = new wxStaticText( m_panel213, wxID_ANY, wxT("type:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText213->Wrap( -1 ); + bSizer313->Add( m_staticText213, 0, wxALL, 5 ); + + + bSizer313->Add( 0, 0, 1, wxEXPAND, 5 ); + + wxString m_choice13Choices[] = { wxT("None"), wxT("Id Scans by Color"), wxT("Color by Points") }; + int m_choice13NChoices = sizeof( m_choice13Choices ) / sizeof( wxString ); + m_choice13 = new wxChoice( m_panel213, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choice13NChoices, m_choice13Choices, 0 ); + m_choice13->SetSelection( 0 ); + bSizer313->Add( m_choice13, 0, wxRIGHT|wxLEFT, 5 ); + + m_panel213->SetSizer( bSizer313 ); + m_panel213->Layout(); + bSizer313->Fit( m_panel213 ); + sbSizer3->Add( m_panel213, 0, wxRIGHT|wxLEFT|wxALIGN_RIGHT|wxEXPAND, 5 ); + + m_panel411 = new wxPanel( colorwin, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); + wxBoxSizer* bSizer51; + bSizer51 = new wxBoxSizer( wxHORIZONTAL ); + + m_staticText411 = new wxStaticText( m_panel411, wxID_ANY, wxT("Min Val:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText411->Wrap( -1 ); + bSizer51->Add( m_staticText411, 0, wxALL, 5 ); + + + bSizer51->Add( 0, 0, 1, wxEXPAND, 5 ); + + m_spinCtrl61 = new wxSpinCtrlDbl( *m_panel411, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, -DBL_MAX, DBL_MAX, 0 ); + bSizer51->Add( m_spinCtrl61, 0, wxRIGHT|wxLEFT, 5 ); + + m_panel411->SetSizer( bSizer51 ); + m_panel411->Layout(); + bSizer51->Fit( m_panel411 ); + sbSizer3->Add( m_panel411, 0, wxRIGHT|wxLEFT|wxALIGN_RIGHT|wxEXPAND, 5 ); + + m_panel41 = new wxPanel( colorwin, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); + wxBoxSizer* bSizer5; + bSizer5 = new wxBoxSizer( wxHORIZONTAL ); + + m_staticText41 = new wxStaticText( m_panel41, wxID_ANY, wxT("Max Val:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText41->Wrap( -1 ); + bSizer5->Add( m_staticText41, 0, wxALL, 5 ); + + + bSizer5->Add( 0, 0, 1, wxEXPAND, 5 ); + + m_spinCtrl6 = new wxSpinCtrlDbl( *m_panel41, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, -DBL_MAX, DBL_MAX, 6 ); + bSizer5->Add( m_spinCtrl6, 0, wxRIGHT|wxLEFT, 5 ); + + m_panel41->SetSizer( bSizer5 ); + m_panel41->Layout(); + bSizer5->Fit( m_panel41 ); + sbSizer3->Add( m_panel41, 0, wxRIGHT|wxLEFT|wxALIGN_RIGHT|wxEXPAND, 5 ); + + m_button4 = new wxButton( colorwin, wxID_ANY, wxT("Reset Min/Max"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizer3->Add( m_button4, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 5 ); + + bSizer1->Add( colorpane, 0, wxALIGN_CENTER_HORIZONTAL, 5 ); + + m_staticline1 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); + bSizer1->Add( m_staticline1, 0, wxEXPAND | wxALL, 5 ); + + m_button3 = new wxButton( this, wxID_ANY, wxT("Invert"), wxDefaultPosition, wxDefaultSize, 0 ); + bSizer1->Add( m_button3, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 5 ); + + m_panel4 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); + wxBoxSizer* bSizer7; + bSizer7 = new wxBoxSizer( wxHORIZONTAL ); + + m_staticText6 = new wxStaticText( m_panel4, wxID_ANY, wxT("Anim delay:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText6->Wrap( -1 ); + bSizer7->Add( m_staticText6, 0, wxALL, 5 ); + + m_spinCtrl3 = new wxSpinCtrl( m_panel4, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 10, 0 ); + bSizer7->Add( m_spinCtrl3, 0, wxRIGHT|wxLEFT, 5 ); + + m_panel4->SetSizer( bSizer7 ); + m_panel4->Layout(); + bSizer7->Fit( m_panel4 ); + bSizer1->Add( m_panel4, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 5 ); + + m_button5 = new wxButton( this, wxID_ANY, wxT("Animate"), wxDefaultPosition, wxDefaultSize, 0 ); + bSizer1->Add( m_button5, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 5 ); + + m_staticline2 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); + bSizer1->Add( m_staticline2, 0, wxEXPAND | wxALL, 5 ); + + /*wxStaticBoxSizer* sbSizer2; + sbSizer2 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, wxT("Camera Path:") ), wxVERTICAL ); + */ + wxCollapsiblePane *camerapane = new wxCollapsiblePane(this, wxID_ANY, wxT("Camera Path:")); + wxWindow *camerawin = camerapane->GetPane(); + wxBoxSizer* sbSizer2 = new wxBoxSizer( wxVERTICAL ); + camerawin->SetSizer(sbSizer2); + + m_panel412 = new wxPanel( camerawin, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); + wxBoxSizer* bSizer52; + bSizer52 = new wxBoxSizer( wxHORIZONTAL ); + + m_staticText412 = new wxStaticText( m_panel412, wxID_ANY, wxT("File:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText412->Wrap( -1 ); + bSizer52->Add( m_staticText412, 0, wxALL, 5 ); + + m_textCtrl1 = new wxTextCtrl( m_panel412, wxID_ANY, wxT("path.dat"), wxDefaultPosition, wxDefaultSize, 0 ); + bSizer52->Add( m_textCtrl1, 0, wxRIGHT|wxLEFT, 5 ); + + m_panel412->SetSizer( bSizer52 ); + m_panel412->Layout(); + bSizer52->Fit( m_panel412 ); + sbSizer2->Add( m_panel412, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 5 ); + + m_button51 = new wxButton( camerawin, wxID_ANY, wxT("Save Path"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizer2->Add( m_button51, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 5 ); + + m_button6 = new wxButton( camerawin, wxID_ANY, wxT("Load Path"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizer2->Add( m_button6, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 5 ); + + m_button14 = new wxButton( camerawin, wxID_ANY, wxT("Load Robot Path"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizer2->Add( m_button14, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 5 ); + + m_staticline4 = new wxStaticLine( camerawin, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); + sbSizer2->Add( m_staticline4, 0, wxEXPAND|wxALL, 5 ); + + m_checkBox4 = new wxCheckBox( camerawin, wxID_ANY, wxT("Save Animation"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizer2->Add( m_checkBox4, 0, wxRIGHT|wxLEFT, 5 ); + + m_button7 = new wxButton( camerawin, wxID_ANY, wxT("Animate path"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizer2->Add( m_button7, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 5 ); + + bSizer1->Add( camerapane, 0, wxALIGN_CENTER_HORIZONTAL, 5 ); + + /*wxStaticBoxSizer* sbSizer21; + sbSizer21 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, wxT("Position:") ), wxVERTICAL ); + */ + wxCollapsiblePane *positionpane = new wxCollapsiblePane(this, wxID_ANY, wxT("Position:")); + wxWindow *positionwin = positionpane->GetPane(); + wxBoxSizer* sbSizer21 = new wxBoxSizer( wxVERTICAL ); + positionwin->SetSizer(sbSizer21); + + m_panel4121 = new wxPanel( positionwin, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); + wxBoxSizer* bSizer521; + bSizer521 = new wxBoxSizer( wxHORIZONTAL ); + + m_staticText4121 = new wxStaticText( m_panel4121, wxID_ANY, wxT("File:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText4121->Wrap( -1 ); + bSizer521->Add( m_staticText4121, 0, wxALL, 5 ); + + m_textCtrl11 = new wxTextCtrl( m_panel4121, wxID_ANY, wxT("pose.dat"), wxDefaultPosition, wxDefaultSize, 0 ); + bSizer521->Add( m_textCtrl11, 0, wxRIGHT|wxLEFT, 5 ); + + m_panel4121->SetSizer( bSizer521 ); + m_panel4121->Layout(); + bSizer521->Fit( m_panel4121 ); + sbSizer21->Add( m_panel4121, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 5 ); + + m_button511 = new wxButton( positionwin, wxID_ANY, wxT("Save Pose"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizer21->Add( m_button511, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 5 ); + + m_button61 = new wxButton( positionwin, wxID_ANY, wxT("Load Pose"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizer21->Add( m_button61, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 5 ); + + m_panel4131 = new wxPanel( positionwin, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); + wxBoxSizer* bSizer531; + bSizer531 = new wxBoxSizer( wxHORIZONTAL ); + + m_staticText4131 = new wxStaticText( m_panel4131, wxID_ANY, wxT("Factor"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText4131->Wrap( -1 ); + bSizer531->Add( m_staticText4131, 0, wxALL, 5 ); + + + bSizer531->Add( 0, 0, 1, wxEXPAND, 5 ); + + m_spinCtrl621 = new wxSpinCtrl( m_panel4131, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 10, 0 ); + bSizer531->Add( m_spinCtrl621, 0, wxRIGHT|wxLEFT, 5 ); + + m_panel4131->SetSizer( bSizer531 ); + m_panel4131->Layout(); + bSizer531->Fit( m_panel4131 ); + sbSizer21->Add( m_panel4131, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 ); + + m_button71 = new wxButton( positionwin, wxID_ANY, wxT("Save image"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizer21->Add( m_button71, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 5 ); + + bSizer1->Add( positionpane, 0, wxALIGN_CENTER_HORIZONTAL, 5 ); + + m_staticline3 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); + bSizer1->Add( m_staticline3, 0, wxALL|wxEXPAND, 5 ); + /* + wxStaticBoxSizer* sbSizer211; + sbSizer211 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, wxT("Selection:") ), wxVERTICAL ); + */ + wxCollapsiblePane *selectionpane = new wxCollapsiblePane(this, wxID_ANY, wxT("Selection:")); + wxWindow *selectionwin = selectionpane->GetPane(); + wxBoxSizer* sbSizer211 = new wxBoxSizer( wxVERTICAL ); + selectionwin->SetSizer(sbSizer211); + + m_panel41211 = new wxPanel( selectionwin, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); + wxBoxSizer* bSizer5211; + bSizer5211 = new wxBoxSizer( wxHORIZONTAL ); + + m_staticText41211 = new wxStaticText( m_panel41211, wxID_ANY, wxT("File:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText41211->Wrap( -1 ); + bSizer5211->Add( m_staticText41211, 0, wxALL, 5 ); + + m_textCtrl111 = new wxTextCtrl( m_panel41211, wxID_ANY, wxT("selected.3d"), wxDefaultPosition, wxDefaultSize, 0 ); + bSizer5211->Add( m_textCtrl111, 0, wxRIGHT|wxLEFT, 5 ); + + m_panel41211->SetSizer( bSizer5211 ); + m_panel41211->Layout(); + bSizer5211->Fit( m_panel41211 ); + sbSizer211->Add( m_panel41211, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 5 ); + + m_button5111 = new wxButton( selectionwin, wxID_ANY, wxT("Save selected points"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizer211->Add( m_button5111, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 5 ); + + m_button611 = new wxButton( selectionwin, wxID_ANY, wxT("Clear selected points"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizer211->Add( m_button611, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 5 ); + + m_checkBox5 = new wxCheckBox( selectionwin, wxID_ANY, wxT("Select/Unselect"), wxDefaultPosition, wxDefaultSize, 0 ); + m_checkBox5->SetValue(true); + sbSizer211->Add( m_checkBox5, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT|wxEXPAND, 5 ); + + m_checkBox6 = new wxCheckBox( selectionwin, wxID_ANY, wxT("Select Voxels"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizer211->Add( m_checkBox6, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT|wxEXPAND, 5 ); + + m_panel41311 = new wxPanel( selectionwin, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); + wxBoxSizer* bSizer5311; + bSizer5311 = new wxBoxSizer( wxHORIZONTAL ); + + m_staticText41311 = new wxStaticText( m_panel41311, wxID_ANY, wxT("Depth:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText41311->Wrap( -1 ); + bSizer5311->Add( m_staticText41311, 0, wxALL, 5 ); + + + bSizer5311->Add( 0, 0, 1, wxEXPAND, 5 ); + + m_spinCtrl6211 = new wxSpinCtrl( m_panel41311, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 10, 0 ); + bSizer5311->Add( m_spinCtrl6211, 0, wxRIGHT|wxLEFT, 5 ); + + m_panel41311->SetSizer( bSizer5311 ); + m_panel41311->Layout(); + bSizer5311->Fit( m_panel41311 ); + sbSizer211->Add( m_panel41311, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 ); + + m_panel413111 = new wxPanel( selectionwin, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); + wxBoxSizer* bSizer53111; + bSizer53111 = new wxBoxSizer( wxHORIZONTAL ); + + m_staticText413111 = new wxStaticText( m_panel413111, wxID_ANY, wxT("Brushsize:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText413111->Wrap( -1 ); + bSizer53111->Add( m_staticText413111, 0, wxALL, 5 ); + + + bSizer53111->Add( 0, 0, 1, wxEXPAND, 5 ); + + m_spinCtrl62111 = new wxSpinCtrl( m_panel413111, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 10, 0 ); + bSizer53111->Add( m_spinCtrl62111, 0, wxRIGHT|wxLEFT, 5 ); + + m_panel413111->SetSizer( bSizer53111 ); + m_panel413111->Layout(); + bSizer53111->Fit( m_panel413111 ); + sbSizer211->Add( m_panel413111, 1, wxEXPAND|wxRIGHT|wxLEFT, 5 ); + + bSizer1->Add( selectionpane, 0, wxALIGN_CENTER_HORIZONTAL, 5 ); + + if (advanced_controls) { + wxCollapsiblePane *advancedpane = new wxCollapsiblePane(this, wxID_ANY, wxT("Advanced:")); + wxWindow *advancedwin = advancedpane->GetPane(); + wxBoxSizer* sbSizer2111 = new wxBoxSizer( wxVERTICAL ); + advancedwin->SetSizer(sbSizer2111); + + // ------------------------ + m_panel413112 = new wxPanel( advancedwin, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); + wxBoxSizer* bSizer53112; + bSizer53112 = new wxBoxSizer( wxHORIZONTAL ); + + m_staticText413112 = new wxStaticText( m_panel413112, wxID_ANY, wxT("Frame #:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText413112->Wrap( -1 ); + bSizer53112->Add( m_staticText413112, 0, wxALL, 5 ); + + + bSizer53112->Add( 0, 0, 1, wxEXPAND, 5 ); + + frame_spin = new wxSpinCtrl( m_panel413112, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 10, 0 ); + bSizer53112->Add( frame_spin, 0, wxRIGHT|wxLEFT, 5 ); + + m_panel413112->SetSizer( bSizer53112 ); + m_panel413112->Layout(); + bSizer53112->Fit( m_panel413112 ); + sbSizer2111->Add( m_panel413112, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 ); + + // ----------------------- + m_panel4131111 = new wxPanel( advancedwin, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); + wxBoxSizer* bSizer531111; + bSizer531111 = new wxBoxSizer( wxHORIZONTAL ); + + m_staticText4131111 = new wxStaticText( m_panel4131111, wxID_ANY, wxT("FPS:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText4131111->Wrap( -1 ); + bSizer531111->Add( m_staticText4131111, 0, wxALL, 5 ); + + + bSizer531111->Add( 0, 0, 1, wxEXPAND, 5 ); + + m_spinCtrl621111 = new wxSpinCtrl( m_panel4131111, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 1, 100, 20 ); + bSizer531111->Add( m_spinCtrl621111, 0, wxRIGHT|wxLEFT, 5 ); + + m_panel4131111->SetSizer( bSizer531111 ); + m_panel4131111->Layout(); + bSizer531111->Fit( m_panel4131111 ); + sbSizer2111->Add( m_panel4131111, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 ); + ////////////////// + farplane_panel = new wxPanel( advancedwin, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); + wxBoxSizer* farplane_sizer; + farplane_sizer = new wxBoxSizer( wxHORIZONTAL ); + + farplane_text = new wxStaticText( farplane_panel, wxID_ANY, wxT("farplane:"), wxDefaultPosition, wxDefaultSize, 0 ); + farplane_text->Wrap( -1 ); + farplane_sizer->Add( farplane_text, 0, wxALL, 5 ); + + + farplane_sizer->Add( 0, 0, 1, wxEXPAND, 5 ); + + farplane_spinner = new wxSpinCtrl( farplane_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 1, 100000, 40000 ); + farplane_sizer->Add( farplane_spinner, 0, wxRIGHT|wxLEFT, 5 ); + + farplane_panel->SetSizer( farplane_sizer ); + farplane_panel->Layout(); + farplane_sizer->Fit( farplane_panel ); + sbSizer2111->Add( farplane_panel, 0, wxEXPAND |wxRIGHT|wxLEFT, 5 ); + //////////////////////////////// + nearplane_panel = new wxPanel( advancedwin, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); + wxBoxSizer* nearplane_sizer; + nearplane_sizer = new wxBoxSizer( wxHORIZONTAL ); + + nearplane_text = new wxStaticText( nearplane_panel, wxID_ANY, wxT("nearplane:"), wxDefaultPosition, wxDefaultSize, 0 ); + nearplane_text->Wrap( -1 ); + nearplane_sizer->Add( nearplane_text, 0, wxALL, 5 ); + + + nearplane_sizer->Add( 0, 0, 1, wxEXPAND, 5 ); + + nearplane_spinner = new wxSpinCtrl( nearplane_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 1, 100000, 10 ); + nearplane_sizer->Add( nearplane_spinner, 0, wxRIGHT|wxLEFT, 5 ); + + nearplane_panel->SetSizer( nearplane_sizer ); + nearplane_panel->Layout(); + nearplane_sizer->Fit( nearplane_panel ); + + sbSizer2111->Add( nearplane_panel, 0, wxEXPAND | wxRIGHT|wxLEFT, 5 ); + // bSizer1->Add( sbSizer2111, 0, wxALIGN_CENTER_HORIZONTAL, 5 ); + /////////////////// + cycleLOD = new wxButton( advancedwin, wxID_ANY, wxT("Cycle LOD"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizer2111->Add( cycleLOD, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 5 ); + + ////////// + lod_panel = new wxPanel( advancedwin, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); + wxBoxSizer* lod_sizer; + lod_sizer = new wxBoxSizer( wxHORIZONTAL ); + + lod_text = new wxStaticText( lod_panel, wxID_ANY, wxT("lod speed:"), wxDefaultPosition, wxDefaultSize, 0 ); + lod_text->Wrap( -1 ); + lod_sizer->Add( lod_text, 0, wxALL, 5 ); + + + lod_sizer->Add( 0, 0, 1, wxEXPAND, 5 ); + + //lod_spinner = new wxSpinCtrl( lod_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 2, 1 ); + lod_spinner = new wxSpinCtrlDbl( *lod_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0.0, 2.0, 1.0, 0.01 ); + lod_sizer->Add( lod_spinner, 0, wxRIGHT|wxLEFT, 5 ); + + lod_panel->SetSizer( lod_sizer ); + lod_panel->Layout(); + lod_sizer->Fit( lod_panel ); + sbSizer2111->Add( lod_panel, 0, wxEXPAND | wxRIGHT| wxLEFT, 5 ); + + + + + bSizer1->Add( advancedpane, 0, wxALIGN_CENTER_HORIZONTAL, 5 ); + } else { + frame_spin = new wxSpinCtrl( 0, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 10, 0 ); + } + + m_button31 = new wxButton( this, wxID_ANY, wxT("Quit"), wxDefaultPosition, wxDefaultSize, 0 ); + bSizer1->Add( m_button31, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 5 ); + + this->SetSizer( bSizer1 ); + this->Layout(); + + // Connect Events + this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( Selection::OnClose ) ); + m_checkBox1->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( Selection::OnDrawPoints ), NULL, this ); + m_checkBox2->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( Selection::OnDrawCameras ), NULL, this ); + m_checkBox3->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( Selection::OnDrawPaths ), NULL, this ); + pointsize_spinner->Connect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Selection::OnPointSize ), NULL, this ); + m_choice1->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( Selection::OnFogChoice ), NULL, this ); + fogdens_spinner->Connect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Selection::OnFogDensity ), NULL, this ); + m_choice11->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( Selection::OnColorValue ), NULL, this ); + m_choice12->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( Selection::OnColorMap ), NULL, this ); + m_choice13->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( Selection::OnColorType ), NULL, this ); + m_spinCtrl61->Connect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Selection::OnColorMinVal ), NULL, this ); + m_spinCtrl6->Connect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Selection::OnColorMaxVal ), NULL, this ); + m_button4->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Selection::OnColorResetMinMax ), NULL, this ); + m_button3->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Selection::OnInvert ), NULL, this ); + m_spinCtrl3->Connect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Selection::OnAnimDelay ), NULL, this ); + m_button5->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Selection::OnAnimate ), NULL, this ); + m_textCtrl1->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( Selection::OnCameraFile ), NULL, this ); + m_button51->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Selection::OnCameraSavePath ), NULL, this ); + m_button6->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Selection::OnCameraLoadPath ), NULL, this ); + m_button14->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Selection::OnCameraLoadRobotPath ), NULL, this ); + m_checkBox4->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( Selection::OnSaveAnimation ), NULL, this ); + m_button7->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Selection::OnAnimatePath ), NULL, this ); + m_textCtrl11->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( Selection::OnPositionFile ), NULL, this ); + m_button511->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Selection::OnPositionSave ), NULL, this ); + m_button61->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Selection::OnPositionLoad ), NULL, this ); + m_spinCtrl621->Connect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Selection::OnFactor ), NULL, this ); + m_button71->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Selection::OnSaveImage ), NULL, this ); + m_textCtrl111->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( Selection::OnSelectionFile ), NULL, this ); + m_button5111->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Selection::OnSelectionSave ), NULL, this ); + m_button611->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Selection::OnSelectionClear ), NULL, this ); + m_checkBox5->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( Selection::OnSelectionSU ), NULL, this ); + m_checkBox6->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( Selection::OnSelectionSV ), NULL, this ); + m_spinCtrl6211->Connect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Selection::OnSelectionDepth ), NULL, this ); + m_spinCtrl62111->Connect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Selection::OnSelectionBrushsize ), NULL, this ); + if (advanced_controls) { + frame_spin->Connect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Selection::OnFrameSpinner ), NULL, this ); + m_spinCtrl621111->Connect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Selection::OnFramerateSpinner ), NULL, this ); + farplane_spinner->Connect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Selection::OnFarplaneSpinner ), NULL, this ); + nearplane_spinner->Connect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Selection::OnNearplaneSpinner ), NULL, this ); + lod_spinner->Connect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Selection::OnLODAdaption ), NULL, this ); + cycleLOD->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Selection::OnCycleLOD ), NULL, this ); + } +} + +Selection::~Selection() +{ + // Disconnect Events + this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( Selection::OnClose ) ); + m_checkBox1->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( Selection::OnDrawPoints ), NULL, this ); + m_checkBox2->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( Selection::OnDrawCameras ), NULL, this ); + m_checkBox3->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( Selection::OnDrawPaths ), NULL, this ); + pointsize_spinner->Disconnect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Selection::OnPointSize ), NULL, this ); + m_choice1->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( Selection::OnFogChoice ), NULL, this ); + fogdens_spinner->Disconnect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Selection::OnFogDensity ), NULL, this ); + m_choice11->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( Selection::OnColorValue ), NULL, this ); + m_choice12->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( Selection::OnColorMap ), NULL, this ); + m_choice13->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( Selection::OnColorType ), NULL, this ); + m_spinCtrl61->Disconnect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Selection::OnColorMinVal ), NULL, this ); + m_spinCtrl6->Disconnect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Selection::OnColorMaxVal ), NULL, this ); + m_button4->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Selection::OnColorResetMinMax ), NULL, this ); + m_button3->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Selection::OnInvert ), NULL, this ); + m_spinCtrl3->Disconnect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Selection::OnAnimDelay ), NULL, this ); + m_button5->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Selection::OnAnimate ), NULL, this ); + m_textCtrl1->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( Selection::OnCameraFile ), NULL, this ); + m_button51->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Selection::OnCameraSavePath ), NULL, this ); + m_button6->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Selection::OnCameraLoadPath ), NULL, this ); + m_button14->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Selection::OnCameraLoadRobotPath ), NULL, this ); + m_checkBox4->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( Selection::OnSaveAnimation ), NULL, this ); + m_button7->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Selection::OnAnimatePath ), NULL, this ); + m_textCtrl11->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( Selection::OnPositionFile ), NULL, this ); + m_button511->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Selection::OnPositionSave ), NULL, this ); + m_button61->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Selection::OnPositionLoad ), NULL, this ); + m_spinCtrl621->Disconnect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Selection::OnFactor ), NULL, this ); + m_button71->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Selection::OnSaveImage ), NULL, this ); + m_textCtrl111->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( Selection::OnSelectionFile ), NULL, this ); + m_button5111->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Selection::OnSelectionSave ), NULL, this ); + m_button611->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Selection::OnSelectionClear ), NULL, this ); + m_checkBox5->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( Selection::OnSelectionSU ), NULL, this ); + m_checkBox6->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( Selection::OnSelectionSV ), NULL, this ); + m_spinCtrl6211->Disconnect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Selection::OnSelectionDepth ), NULL, this ); + m_spinCtrl62111->Disconnect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Selection::OnSelectionBrushsize ), NULL, this ); + frame_spin->Disconnect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Selection::OnFrameSpinner ), NULL, this ); + m_spinCtrl621111->Disconnect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Selection::OnFramerateSpinner ), NULL, this ); + farplane_spinner->Disconnect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Selection::OnFarplaneSpinner ), NULL, this ); + nearplane_spinner->Disconnect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Selection::OnNearplaneSpinner ), NULL, this ); + lod_spinner->Disconnect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Selection::OnLODAdaption ), NULL, this ); + cycleLOD->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Selection::OnCycleLOD ), NULL, this ); +} + +Controls::Controls( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxFrame( parent, id, title, pos, size, style ) +{ + this->SetSizeHints( wxDefaultSize, wxDefaultSize ); + + wxBoxSizer* bSizer17; + bSizer17 = new wxBoxSizer( wxHORIZONTAL ); + + wxStaticBoxSizer* sbSizer5; + sbSizer5 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, wxT("Settings:") ), wxVERTICAL ); + + wxBoxSizer* bSizer26; + bSizer26 = new wxBoxSizer( wxHORIZONTAL ); + + m_staticText21 = new wxStaticText( this, wxID_ANY, wxT("Apex Angle"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText21->Wrap( -1 ); + bSizer26->Add( m_staticText21, 0, wxALL, 5 ); + + + bSizer26->Add( 0, 0, 1, wxEXPAND, 5 ); + + apex_spinner = new wxSpinCtrlDbl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 1, 180, 60 ); + bSizer26->Add( apex_spinner, 0, wxALIGN_RIGHT|wxLEFT|wxRIGHT, 5 ); + + sbSizer5->Add( bSizer26, 1, wxEXPAND, 5 ); + + wxBoxSizer* bSizer261; + bSizer261 = new wxBoxSizer( wxHORIZONTAL ); + + m_staticText211 = new wxStaticText( this, wxID_ANY, wxT("Parallel Zoom"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText211->Wrap( -1 ); + bSizer261->Add( m_staticText211, 0, wxALL, 5 ); + + parallel_spinner = new wxSpinCtrlDbl( *this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 10, 100000, 2000 ); + bSizer261->Add( parallel_spinner, 0, wxRIGHT|wxLEFT, 5 ); + + sbSizer5->Add( bSizer261, 1, wxEXPAND, 5 ); + + bSizer17->Add( sbSizer5, 0, 0, 5 ); + + wxStaticBoxSizer* sbSizer51; + sbSizer51 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, wxT("Mode:") ), wxVERTICAL ); + + m_button15 = new wxButton( this, wxID_ANY, wxT("Top View"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT ); + sbSizer51->Add( m_button15, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 ); + + m_button16 = new wxButton( this, wxID_ANY, wxT("Reset Position"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT ); + sbSizer51->Add( m_button16, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 ); + + bSizer17->Add( sbSizer51, 0, 0, 5 ); + + wxStaticBoxSizer* sbSizer52; + sbSizer52 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, wxT("Camera:") ), wxVERTICAL ); + + wxBoxSizer* bSizer262; + bSizer262 = new wxBoxSizer( wxHORIZONTAL ); + + m_staticText212 = new wxStaticText( this, wxID_ANY, wxT("Choose Camera"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText212->Wrap( -1 ); + bSizer262->Add( m_staticText212, 0, wxALL, 5 ); + + + bSizer262->Add( 0, 0, 1, wxEXPAND, 5 ); + + camera_spinner = new wxSpinCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 10, 0 ); + bSizer262->Add( camera_spinner, 0, wxALIGN_RIGHT|wxLEFT|wxRIGHT, 5 ); + + sbSizer52->Add( bSizer262, 1, wxEXPAND, 5 ); + + m_button19 = new wxButton( this, wxID_ANY, wxT("Add Camera"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT ); + sbSizer52->Add( m_button19, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_HORIZONTAL, 5 ); + + m_button20 = new wxButton( this, wxID_ANY, wxT("Delete Camera"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT ); + sbSizer52->Add( m_button20, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_HORIZONTAL, 5 ); + + bSizer17->Add( sbSizer52, 0, 0, 5 ); + + wxStaticBoxSizer* sbSizer521; + sbSizer521 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, wxT("Settings:") ), wxVERTICAL ); + + m_checkBox7 = new wxCheckBox( this, wxID_ANY, wxT("MouseNav"), wxDefaultPosition, wxDefaultSize, 0 ); + m_checkBox7->SetValue(true); + sbSizer521->Add( m_checkBox7, 0, wxRIGHT|wxLEFT, 5 ); + + always_box = new wxCheckBox( this, wxID_ANY, wxT("Always all Points"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizer521->Add( always_box, 0, wxRIGHT|wxLEFT, 5 ); + + alwaysred_box = new wxCheckBox( this, wxID_ANY, wxT("Always reduce Points"), wxDefaultPosition, wxDefaultSize, 0 ); + alwaysred_box->SetValue(true); + sbSizer521->Add( alwaysred_box, 0, wxRIGHT|wxLEFT, 5 ); + + bSizer17->Add( sbSizer521, 0, 0, 5 ); + + this->SetSizer( bSizer17 ); + this->Layout(); + bSizer17->Fit( this ); + + // Connect Events + this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( Controls::OnClose ) ); + apex_spinner->Connect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Controls::OnApexAngle ), NULL, this ); + parallel_spinner->Connect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Controls::OnParallelZoom ), NULL, this ); + m_button15->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Controls::OnTopView ), NULL, this ); + m_button16->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Controls::OnResetPosition ), NULL, this ); + camera_spinner->Connect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Controls::OnChooseCamera ), NULL, this ); + m_button19->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Controls::OnAddCamera ), NULL, this ); + m_button20->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Controls::OnDeleteCamera ), NULL, this ); + m_checkBox7->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( Controls::OnMouseNav ), NULL, this ); + always_box->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( Controls::OnAlwaysAllPoints ), NULL, this ); + alwaysred_box->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( Controls::OnAlwaysReducePoints ), NULL, this ); +} + +Controls::~Controls() +{ + // Disconnect Events + this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( Controls::OnClose ) ); + apex_spinner->Disconnect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Controls::OnApexAngle ), NULL, this ); + parallel_spinner->Disconnect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Controls::OnParallelZoom ), NULL, this ); + m_button15->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Controls::OnTopView ), NULL, this ); + m_button16->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Controls::OnResetPosition ), NULL, this ); + camera_spinner->Disconnect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Controls::OnChooseCamera ), NULL, this ); + m_button19->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Controls::OnAddCamera ), NULL, this ); + m_button20->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Controls::OnDeleteCamera ), NULL, this ); + m_checkBox7->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( Controls::OnMouseNav ), NULL, this ); + always_box->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( Controls::OnAlwaysAllPoints ), NULL, this ); + alwaysred_box->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( Controls::OnAlwaysReducePoints ), NULL, this ); +} diff --git a/.svn/pristine/7d/7d2ed5df9c31f181c3776138393c9c3e5ba6d1bb.svn-base b/.svn/pristine/7d/7d2ed5df9c31f181c3776138393c9c3e5ba6d1bb.svn-base new file mode 100644 index 0000000..b83b5cb --- /dev/null +++ b/.svn/pristine/7d/7d2ed5df9c31f181c3776138393c9c3e5ba6d1bb.svn-base @@ -0,0 +1,356 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: wxMenuButton +// Purpose: A button with a dropdown wxMenu +// Author: John Labenski +// Modified by: +// Created: 11/05/2002 +// RCS-ID: +// Copyright: (c) John Labenki +// Licence: wxWidgets licence +///////////////////////////////////////////////////////////////////////////// + +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) + #pragma implementation "menubtn.h" +#endif + +// For compilers that support precompilation, includes "wx/wx.h". +#include "wx/wxprec.h" + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#ifndef WX_PRECOMP + #include "wx/control.h" + #include "wx/menu.h" + #include "wx/settings.h" + #include "wx/bitmap.h" + #include "wx/pen.h" + #include "wx/dc.h" +#endif // WX_PRECOMP + +#include "wx/things/toggle.h" +#include "wx/things/menubtn.h" + +/* XPM */ +static const char *down_arrow_xpm_data[] = { +/* columns rows colors chars-per-pixel */ +"5 3 2 1", +" c None", +"a c Black", +/* pixels */ +"aaaaa", +" aaa ", +" a "}; + +static wxBitmap s_dropdownBitmap; // all buttons share the same bitmap + +enum +{ + IDD_DROPDOWN_BUTTON = 100 +}; + +//----------------------------------------------------------------------------- +// wxMenuButtonEvents +//----------------------------------------------------------------------------- + +DEFINE_LOCAL_EVENT_TYPE(wxEVT_MENUBUTTON_OPEN) + +// ========================================================================== +// MenuDropButton +// ========================================================================== + +class MenuDropButton : public wxCustomButton +{ +public: + MenuDropButton( wxWindow *parent, wxWindowID id, long style) : wxCustomButton() + { + if (!s_dropdownBitmap.Ok()) + s_dropdownBitmap = wxBitmap(down_arrow_xpm_data); + + Create( parent, id, wxEmptyString, s_dropdownBitmap, wxDefaultPosition, + wxSize(wxMENUBUTTON_DROP_WIDTH, wxMENUBUTTON_DROP_HEIGHT), style); + } + + virtual void Paint( wxDC &dc ) + { + wxCustomButton *labelBut = ((wxMenuButton*)GetParent())->GetLabelButton(); + + // pretend that both buttons have focus (for flat style) + if (labelBut) + { + wxPoint p = GetParent()->ScreenToClient(wxGetMousePosition()); + + if (GetRect().Inside(p) || labelBut->GetRect().Inside(p)) + { + m_focused = true; + + if (!labelBut->GetFocused()) + labelBut->SetFocused(true); + } + else + { + m_focused = false; + + if (labelBut->GetFocused()) + labelBut->SetFocused(false); + } + } + + wxCustomButton::Paint(dc); + } +}; + +// ========================================================================== +// MenuLabelButton +// ========================================================================== + +class MenuLabelButton : public wxCustomButton +{ +public: + MenuLabelButton( wxWindow* parent, wxWindowID id, + const wxString &label, + const wxBitmap &bitmap, + long style ) : wxCustomButton() + { + Create(parent, id, label, bitmap, wxDefaultPosition, wxDefaultSize, style); + } + + virtual void Paint( wxDC &dc ) + { + wxCustomButton *dropBut = ((wxMenuButton*)GetParent())->GetDropDownButton(); + + // pretend that both buttons have focus (for flat style) + if (dropBut) + { + wxPoint p = GetParent()->ScreenToClient(wxGetMousePosition()); + + if (GetRect().Inside(p) || dropBut->GetRect().Inside(p)) + { + m_focused = true; + + if (!dropBut->GetFocused()) + dropBut->SetFocused(true); + } + else + { + m_focused = false; + + if (dropBut->GetFocused()) + dropBut->SetFocused(false); + } + } + + wxCustomButton::Paint(dc); + } +}; + +// ========================================================================== +// wxMenuButton +// ========================================================================== + +IMPLEMENT_DYNAMIC_CLASS( wxMenuButton, wxControl ) + +BEGIN_EVENT_TABLE(wxMenuButton,wxControl) + EVT_BUTTON(wxID_ANY, wxMenuButton::OnButton) + +#ifdef __WXMSW__ + EVT_MENU(wxID_ANY, wxMenuButton::OnMenu) +#endif +END_EVENT_TABLE() + +wxMenuButton::~wxMenuButton() +{ + AssignMenu(NULL, true); +} + +void wxMenuButton::Init() +{ + m_labelButton = NULL; + m_dropdownButton = NULL; + m_menu = NULL; + m_menu_static = false; + m_style = 0; +} + +bool wxMenuButton::Create( wxWindow* parent, wxWindowID id, + const wxString &label, + const wxBitmap &bitmap, + const wxPoint& pos, + const wxSize& size, + long style, + const wxValidator& val, + const wxString& name) +{ + m_style = style; + + long flat = style & wxMENUBUT_FLAT; + + wxControl::Create(parent,id,pos,size,wxNO_BORDER|wxCLIP_CHILDREN,val,name); + wxControl::SetLabel(label); + SetBackgroundColour(parent->GetBackgroundColour()); + SetForegroundColour(parent->GetForegroundColour()); + SetFont(parent->GetFont()); + + m_labelButton = new MenuLabelButton(this, id, label, bitmap, wxCUSTBUT_BUTTON|flat); + m_dropdownButton = new MenuDropButton(this, IDD_DROPDOWN_BUTTON, wxCUSTBUT_BUTTON|flat); + + wxSize bestSize = DoGetBestSize(); + SetSize( wxSize(size.x < 0 ? bestSize.x : size.x, + size.y < 0 ? bestSize.y : size.y) ); + + //SetBestSize(GetSize()); + + return true; +} + +#ifdef __WXMSW__ +// FIXME - I think there was a patch to fix this +void wxMenuButton::OnMenu( wxCommandEvent &event ) +{ + event.Skip(); + wxMenuItem *mi = m_menu->FindItem(event.GetId()); + if (mi && (mi->GetKind() == wxITEM_RADIO)) + m_menu->Check(event.GetId(), true); +} +#endif // __WXMSW__ + +void wxMenuButton::OnButton( wxCommandEvent &event) +{ + int win_id = event.GetId(); + + if (win_id == IDD_DROPDOWN_BUTTON) + { + if (m_menu) + { + wxNotifyEvent mevent(wxEVT_MENUBUTTON_OPEN, GetId()); + mevent.SetEventObject(this); + if (GetEventHandler()->ProcessEvent(mevent) && !mevent.IsAllowed()) + return; + + if (!m_menu) + return; + + PopupMenu(m_menu, wxPoint(0, GetSize().y)); + + m_labelButton->Refresh(false); + m_dropdownButton->Refresh(false); + } + } + else if (win_id == m_labelButton->GetId()) + { + if (!m_menu) return; + + const wxMenuItemList &items = m_menu->GetMenuItems(); + int first_radio_id = -1; + int checked_id = -1; + bool check_next = false; + + // find the next available radio item to check + for (wxMenuItemList::Node *node = items.GetFirst(); node; node = node->GetNext()) + { + wxMenuItem *mi = (wxMenuItem*)node->GetData(); + if (mi && (mi->GetKind() == wxITEM_RADIO)) + { + if (first_radio_id == -1) + first_radio_id = mi->GetId(); + + if (check_next) + { + check_next = false; + checked_id = mi->GetId(); + break; + } + else if (mi->IsChecked()) + check_next = true; + } + } + // the last item was checked, go back to the first + if (check_next && (first_radio_id != -1)) + checked_id = first_radio_id; + + if (checked_id != -1) + { + m_menu->Check(checked_id, true); + + wxCommandEvent mevent( wxEVT_COMMAND_MENU_SELECTED, checked_id); + mevent.SetEventObject( m_menu ); + mevent.SetInt(1); + GetEventHandler()->ProcessEvent(mevent); + } + } +} + +int wxMenuButton::GetSelection() const +{ + wxCHECK_MSG(m_menu != NULL, wxNOT_FOUND, wxT("No attached menu in wxMenuButton::GetSelection")); + + const wxMenuItemList &items = m_menu->GetMenuItems(); + + for (wxMenuItemList::Node *node = items.GetFirst(); node; node = node->GetNext()) + { + wxMenuItem *mi = (wxMenuItem*)node->GetData(); + if (mi && (mi->GetKind() == wxITEM_RADIO)) + { + if (mi->IsChecked()) + return mi->GetId(); + } + } + + return wxNOT_FOUND; +} + +void wxMenuButton::AssignMenu(wxMenu *menu, bool static_menu) +{ + if (!m_menu_static && m_menu) + delete m_menu; + + m_menu = menu; + m_menu_static = static_menu; +} + +void wxMenuButton::SetToolTip(const wxString &tip) +{ + wxWindow::SetToolTip(tip); + ((wxWindow*)m_labelButton)->SetToolTip(tip); + ((wxWindow*)m_dropdownButton)->SetToolTip(tip); +} +void wxMenuButton::SetToolTip(wxToolTip *tip) +{ + wxWindow::SetToolTip(tip); + ((wxWindow*)m_labelButton)->SetToolTip(tip); + ((wxWindow*)m_dropdownButton)->SetToolTip(tip); +} + +void wxMenuButton::DoSetSize(int x, int y, int width, int height, int sizeFlags) +{ + wxSize curSize( GetSize() ); + wxSize bestSize( DoGetBestSize() ); + + if (width == -1) + width = curSize.GetWidth(); + if (width < 10) + width = bestSize.GetWidth(); + + if (height == -1) + height = curSize.GetHeight(); + if (height < 5) + height = bestSize.GetHeight(); + + wxWindow::DoSetSize(x, y, width, height, sizeFlags); + + if (m_labelButton) + m_labelButton->SetSize(0, 0, width - wxMENUBUTTON_DROP_WIDTH, height); + if (m_dropdownButton) + m_dropdownButton->SetSize(width-wxMENUBUTTON_DROP_WIDTH, 0, wxMENUBUTTON_DROP_WIDTH, height); +} + +wxSize wxMenuButton::DoGetBestSize() +{ + if (!m_labelButton || !m_dropdownButton) + return wxSize(wxMENUBUTTON_DROP_WIDTH+wxMENUBUTTON_DROP_HEIGHT, wxMENUBUTTON_DROP_HEIGHT); + + wxSize size = m_labelButton->GetBestSize(); + size.x += wxMENUBUTTON_DROP_WIDTH; + return size; +} diff --git a/.svn/pristine/7d/7db74d23d932d1ab53fcd53c19b32c1dce4258b5.svn-base b/.svn/pristine/7d/7db74d23d932d1ab53fcd53c19b32c1dce4258b5.svn-base new file mode 100644 index 0000000..1adcdd4 --- /dev/null +++ b/.svn/pristine/7d/7db74d23d932d1ab53fcd53c19b32c1dce4258b5.svn-base @@ -0,0 +1,48 @@ +//---------------------------------------------------------------------- +// File: kd_search.h +// Programmer: Sunil Arya and David Mount +// Description: Standard kd-tree search +// Last modified: 01/04/05 (Version 1.0) +//---------------------------------------------------------------------- +// Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +// David Mount. All Rights Reserved. +// +// This software and related documentation is part of the Approximate +// Nearest Neighbor Library (ANN). This software is provided under +// the provisions of the Lesser GNU Public License (LGPL). See the +// file ../ReadMe.txt for further information. +// +// The University of Maryland (U.M.) and the authors make no +// representations about the suitability or fitness of this software for +// any purpose. It is provided "as is" without express or implied +// warranty. +//---------------------------------------------------------------------- +// History: +// Revision 0.1 03/04/98 +// Initial release +//---------------------------------------------------------------------- + +#ifndef ANN_kd_search_H +#define ANN_kd_search_H + +#include "kd_tree.h" // kd-tree declarations +#include "kd_util.h" // kd-tree utilities +#include "pr_queue_k.h" // k-element priority queue + +#include // performance evaluation + +//---------------------------------------------------------------------- +// More global variables +// These are active for the life of each call to annkSearch(). They +// are set to save the number of variables that need to be passed +// among the various search procedures. +//---------------------------------------------------------------------- + +extern int ANNkdDim; // dimension of space (static copy) +extern ANNpoint ANNkdQ; // query point (static copy) +extern double ANNkdMaxErr; // max tolerable squared error +extern ANNpointArray ANNkdPts; // the points (static copy) +extern ANNmin_k *ANNkdPointMK; // set of k closest points +extern int ANNptsVisited; // number of points visited + +#endif diff --git a/.svn/pristine/7d/7dee2b0f053dc73b42a1a05277f53ebf2642576d.svn-base b/.svn/pristine/7d/7dee2b0f053dc73b42a1a05277f53ebf2642576d.svn-base new file mode 100644 index 0000000..8ba0bea --- /dev/null +++ b/.svn/pristine/7d/7dee2b0f053dc73b42a1a05277f53ebf2642576d.svn-base @@ -0,0 +1,141 @@ +/* + * frames_to_graph implementation + * + * Copyright (C) Jochen Sprickerhof + * + * Released under the GPL version 3. + * + */ + + +/* @file extracts the final poses from the frame files + * @author Jochen Sprickerhof + */ + +#ifndef _MSC_VER +#include +#else +#include "XGetopt.h" +#endif + +#include +using std::cout; +using std::cerr; +using std::endl; + +#include +using std::string; + +#include +using std::ifstream; +using std::ofstream; + +#include +using std::exception; + +#include "slam6d/globals.icc" + +void read_Frame(string frameFile, ofstream &out_stream) +{ + double transMat[16]; + int type; + double rPos[3]; + double rPosTheta[3]; + ifstream frame(frameFile.c_str()); + + while(frame) { + try { + frame >> transMat >> type; + } + catch(const exception &e) { + break; + } + } + Matrix4ToEuler(transMat, rPosTheta, rPos); + //out_stream << rPos[0] << " " << rPos[1] << " " << rPos[2] << " " << rPosTheta[0] << " " << rPosTheta[1] << " " << rPosTheta[2] << endl; + double quat[4]; + Matrix4ToQuat(transMat, quat); + QuatToAA(quat); + out_stream << rPos[0] << " " << rPos[1] << " " << rPos[2] << " " << quat[0] << " " << quat[1] << " " << quat[2] << " " << quat[3] << endl; + frame.close(); +} + +void readFrames(string dir, int start, int end, ofstream &out_stream) +{ + for(;start <= end; start++) { + read_Frame(dir + "scan" + to_string(start, 3) + ".frames", out_stream); + } +} + +void usage(string progname) { + cout << "Usage: " << progname << " OPTIONS FILE" << endl << + "\t -s \t\t first node in loop" << endl << + "\t -e \t\t last node in loop" << endl << + "\t -o \t\t output filename (must be given)" << endl; +} + +int main(int argc, char *argv[]) +{ + + if(argc < 2) { + usage(argv[0]); + exit(1); + } + + int start = 0, end = 0; + string out_file; + /* options descriptor */ + // 0: no arguments, 1: required argument, 2: optional argument + static struct option longopts[] = { + { "end", required_argument, 0, 'e' }, + { "out", required_argument, 0, 'o' }, + { "start", required_argument, 0, 's' }, + { 0, 0, 0, 0} // needed, cf. getopt.h + }; + + int c; + while((c = getopt_long(argc, argv, "e:o:s:", longopts, NULL)) != -1) { + switch (c) { + case 'e': + end = atoi(optarg); + if(end < 0) { + cerr << "Error: Cannot end at a negative number." << endl; + exit(1); + } + break; + case 'o': + out_file = optarg; + break; + case 's': + start = atoi(optarg); + if(start < 0) { + cerr << "Error: Cannot start at a negative number." << endl; + exit(1); + } + break; + case '?': + default: + exit(1); + } + } + + if(out_file.empty() || end == 0) { + usage(argv[0]); + exit(1); + } + + string dir = argv[optind]; + +#ifndef _MSC_VER + if (dir[dir.length()-1] != '/') dir = dir + "/"; +#else + if (dir[dir.length()-1] != '\\') dir = dir + "\\"; +#endif + ofstream out_stream(out_file.c_str()); + + readFrames(dir, start, end, out_stream); + out_stream.close(); + + exit(0); +} + diff --git a/.svn/pristine/7e/7e1d7fcb819b726036d5dc6402297f79535b2f13.svn-base b/.svn/pristine/7e/7e1d7fcb819b726036d5dc6402297f79535b2f13.svn-base new file mode 100644 index 0000000..32b6141 --- /dev/null +++ b/.svn/pristine/7e/7e1d7fcb819b726036d5dc6402297f79535b2f13.svn-base @@ -0,0 +1,59 @@ +/* + * converToSLAM6D implementation + * + * Copyright (C) Stanislav Serebryakov + * + * Released under the GPL version 3. + * + */ + +#include + +int main() { + PMDCam *pmdc = initPMDCam("./pmdc.conf"); + + int frames = 0; + unsigned int latestTime = 0; + + while(1) { + + if(grabData(pmdc)) break; + + if(latestTime >= pmdc->timestamp) continue; + latestTime = pmdc->timestamp; + //printf("%i %i\n", latestTime, pmdc->timestamp); + + CvSize pmdSz = cvGetSize(pmdc->iPMDI); + pmdSz.width = 50; + + char filename[] = "./dat/scan000.pose"; + sprintf(filename, "./dat/scan%03d.3d", frames); + FILE *scan = fopen(filename, "wb"); + if(!scan) fprintf(stderr, "ERROR: cant create file %s.\n", filename); + sprintf(filename, "./dat/scan%03d.pose", frames); + FILE *pose = fopen(filename, "wb"); + if(!pose) fprintf(stderr, "ERROR: cant create file %s.\n", filename); + + + + fprintf(scan, "%i x %i\n", pmdSz.width, pmdSz.height); + + for(int j = 0; j < pmdSz.width; j++) + for(int i = 0; i < pmdSz.height; i++) + fprintf(scan, "%f %f %f\n", pmdc->pts[i][j].x*100.0, pmdc->pts[i][j].y*100.0, pmdc->pts[i][j].z*100.0); + + fprintf(pose, "%f %f %f\n%f %f %f\n", 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); + + if(0 == frames%100) printf("+100\n"); + + fflush(scan); + fflush(pose); + fclose(scan); + fclose(pose); + + frames++; + } + return 0; +} + + diff --git a/.svn/pristine/7e/7e38fcad981dbe5497326fc210013caee144cd78.svn-base b/.svn/pristine/7e/7e38fcad981dbe5497326fc210013caee144cd78.svn-base new file mode 100644 index 0000000..a76008f --- /dev/null +++ b/.svn/pristine/7e/7e38fcad981dbe5497326fc210013caee144cd78.svn-base @@ -0,0 +1,67 @@ +#ifndef BASIC_SCAN_H +#define BASIC_SCAN_H + +#include "scan.h" +#include "frame.h" + +#include +#include + + +class BasicScan : public Scan { +public: + static void openDirectory(const std::string& path, IOType type, int start, int end); + static void closeDirectory(); +/* + Scan(const double *euler, int maxDist = -1); + Scan(const double rPos[3], const double rPosTheta[3], int maxDist = -1); + Scan(const double _rPos[3], const double _rPosTheta[3], vector &pts); +*/ + virtual ~BasicScan(); + + virtual void setRangeFilter(double max, double min); + virtual void setHeightFilter(double top, double bottom); + + virtual const char* getIdentifier() const { return m_identifier.c_str(); } + + virtual DataPointer get(const std::string& identifier); + virtual void get(unsigned int types); + virtual DataPointer create(const std::string& identifier, unsigned int size); + virtual void clear(const std::string& identifier); + + virtual unsigned int readFrames(); + virtual void saveFrames(); + virtual unsigned int getFrameCount(); + virtual void getFrame(unsigned int i, const double*& pose_matrix, AlgoType& type); + +protected: + virtual void createSearchTreePrivate(); + virtual void calcReducedOnDemandPrivate(); + virtual void addFrame(AlgoType type); + +private: + //! Path and identifier of where the scan is located + std::string m_path, m_identifier; + + IOType m_type; + + double m_filter_max, m_filter_min, m_filter_top, m_filter_bottom; + bool m_filter_range_set, m_filter_height_set; + + std::map> m_data; + + std::vector m_frames; + + + //! Constructor for openDirectory + BasicScan(const std::string& path, const std::string& identifier, IOType type); + + //! Initialization function + void init(); + + void createANNTree(); + + void createOcttree(); +}; + +#endif //BASIC_SCAN_H diff --git a/.svn/pristine/7e/7e714af54486ca6d754786068d9983c53413124d.svn-base b/.svn/pristine/7e/7e714af54486ca6d754786068d9983c53413124d.svn-base new file mode 100644 index 0000000..31fc7cf --- /dev/null +++ b/.svn/pristine/7e/7e714af54486ca6d754786068d9983c53413124d.svn-base @@ -0,0 +1,41 @@ +/** + * @file + * @brief Representation of the parameter of a k-d tree + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __KDPARAMS_H__ +#define __KDPARAMS_H__ + +/** + * @brief Contains the intermediate (static) values of a k-d tree or a cached k-d tree + * + * A parameter class for the latter k-d tree. + * Includes the padding for parallelizetion + * to avoid cache conflicts. + **/ +class KDParams +{ +public: + /** + * pointer to the closest point. size = 4 bytes of 32 bit machines + */ + double *closest; + + /** + * distance to the closest point. size = 8 bytes + */ + double closest_d2; + + /** + * pointer to the point, size = 4 bytes of 32 bit machines + */ + double *p; + + /** + * expand to 128 bytes to avoid false-sharing, 16 bytes from above + 28*4 bytes = 128 bytes + */ + int padding[28]; +}; + +#endif diff --git a/.svn/pristine/7e/7eaf19798aeb4f7c32eedf0e478adebe473d7434.svn-base b/.svn/pristine/7e/7eaf19798aeb4f7c32eedf0e478adebe473d7434.svn-base new file mode 100644 index 0000000..cac8548 --- /dev/null +++ b/.svn/pristine/7e/7eaf19798aeb4f7c32eedf0e478adebe473d7434.svn-base @@ -0,0 +1,4 @@ +.cvsignore +Makefile +gocr +*.o diff --git a/.svn/pristine/80/8018e381e9363120dbbeb539d6f114b93c0315dc.svn-base b/.svn/pristine/80/8018e381e9363120dbbeb539d6f114b93c0315dc.svn-base new file mode 100644 index 0000000..4fa5838 Binary files /dev/null and b/.svn/pristine/80/8018e381e9363120dbbeb539d6f114b93c0315dc.svn-base differ diff --git a/.svn/pristine/80/802b79f1c665e2b7f10372b7cb57af5746e54f78.svn-base b/.svn/pristine/80/802b79f1c665e2b7f10372b7cb57af5746e54f78.svn-base new file mode 100644 index 0000000..2d522d0 --- /dev/null +++ b/.svn/pristine/80/802b79f1c665e2b7f10372b7cb57af5746e54f78.svn-base @@ -0,0 +1,66 @@ +// definition file for test programs + +//#define DONT_DO_NRIC // activate if running a bounds checker + +#ifdef use_namespace +//using namespace NEWMAT; +namespace NEWMAT { +#endif + +// print time between construction and destruction +class time_lapse +{ + double start_time; +public: + time_lapse(); + ~time_lapse(); +}; + +void Print(const Matrix& X); +void Print(const UpperTriangularMatrix& X); +void Print(const DiagonalMatrix& X); +void Print(const SymmetricMatrix& X); +void Print(const LowerTriangularMatrix& X); + +void Clean(Matrix&, Real); +void Clean(DiagonalMatrix&, Real); + +#ifdef use_namespace +} +using namespace NEWMAT; +#endif + +void trymat1(); void trymat2(); void trymat3(); +void trymat4(); void trymat5(); void trymat6(); +void trymat7(); void trymat8(); void trymat9(); +void trymata(); void trymatb(); void trymatc(); +void trymatd(); void trymate(); void trymatf(); +void trymatg(); void trymath(); void trymati(); +void trymatj(); void trymatk(); void trymatl(); +void trymatm(); + + +// body file: tmt.cpp +// body file: tmt1.cpp +// body file: tmt2.cpp +// body file: tmt3.cpp +// body file: tmt4.cpp +// body file: tmt5.cpp +// body file: tmt6.cpp +// body file: tmt7.cpp +// body file: tmt8.cpp +// body file: tmt9.cpp +// body file: tmta.cpp +// body file: tmtb.cpp +// body file: tmtc.cpp +// body file: tmtd.cpp +// body file: tmte.cpp +// body file: tmtf.cpp +// body file: tmtg.cpp +// body file: tmth.cpp +// body file: tmti.cpp +// body file: tmtj.cpp +// body file: tmtk.cpp +// body file: tmtl.cpp +// body file: tmtm.cpp + diff --git a/.svn/pristine/80/802f208a79a44b5d953d74e1e4566a4abf456fdf.svn-base b/.svn/pristine/80/802f208a79a44b5d953d74e1e4566a4abf456fdf.svn-base new file mode 100644 index 0000000..95c0844 --- /dev/null +++ b/.svn/pristine/80/802f208a79a44b5d953d74e1e4566a4abf456fdf.svn-base @@ -0,0 +1,128 @@ +/** + * @file + * @brief Implementation of reading 3D scans in colored XYZ format (i.e., pure + * 3D data points and RGB color information) + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "slam6d/scan_io_xyz_rgb.h" +#include "slam6d/globals.icc" +#include +using std::ifstream; +#include +using std::cerr; +using std::endl; + + +#include +using std::swap; + +#ifdef _MSC_VER +#include +#endif + +/** + * Reads specified scans from given directory in the colored XYZ file format + * (i.e., pure 3D data points and RGB color * information only) + * It will be compiled as shared lib. + * + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param dir The directory from which to read + * @param maxDist Reads only Points up to this Distance + * @param minDist Reads only Points from this Distance + * @param euler Initital pose estimates (will not be applied to the points + * @param ptss Vector containing the read points + */ +int ScanIO_xyz_rgb::readScans(int start, int end, string &dir, int maxDist, int minDist, + double *euler, vector &ptss) +{ + static int fileCounter = start; + string scanFileName; + + ifstream scan_in, pose_in; + double maxDist2 = sqr(maxDist); + double minDist2 = sqr(minDist); + + if (end > -1 && fileCounter > end) return -1; // 'nuf read + + scanFileName = dir + to_string(fileCounter,3) + ".xyz"; + scan_in.open(scanFileName.c_str()); + // read 3D scan + if (!scan_in.good()) { cerr << "ERROR: Missing file " << scanFileName << endl; exit(1); } + cout << "Processing Scan " << scanFileName; + + char firstline[255]; + scan_in.getline(firstline, 255); + + euler[0] = 0.0; + euler[1] = 0.0; + euler[2] = 0.0; + euler[3] = 0.0; + euler[4] = 0.0; + euler[5] = 0.0; + + while (scan_in.good()) { + Point p; + int r, g, b; + scan_in >> p.x >> p.z >> p.y >> r >> g >> b; + p.x *= 100; + p.y *= 100; + p.z *= 100; + p.rgb[0] = (char)r; + p.rgb[1] = (char)g; + p.rgb[2] = (char)b; + + if (maxDist == -1 || sqr(p.x) + sqr(p.y) + sqr(p.z) < maxDist2) + if (minDist == -1 || sqr(p.x) + sqr(p.y) + sqr(p.z) > minDist2) + ptss.push_back(p); + } + + cout << " done" << endl; + + scan_in.close(); + scan_in.clear(); + pose_in.close(); + pose_in.clear(); + fileCounter++; + + return 1; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_xyz_rgb; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/.svn/pristine/80/804ad40bf20ded023f5c501d5ed1b552110b1df0.svn-base b/.svn/pristine/80/804ad40bf20ded023f5c501d5ed1b552110b1df0.svn-base new file mode 100644 index 0000000..443ccdf --- /dev/null +++ b/.svn/pristine/80/804ad40bf20ded023f5c501d5ed1b552110b1df0.svn-base @@ -0,0 +1,303 @@ +/* + * clientinterface implementation + * + * Copyright (C) Thomas Escher, Kai Lingemann + * + * Released under the GPL version 3. + * + */ + +#include "scanserver/clientInterface.h" + +#include +using std::cout; +using std::cerr; +using std::cin; +using std::endl; +#include + +#include +using namespace boost::filesystem; +using namespace boost::interprocess; + +#include "scanserver/defines.h" + +#ifdef WITH_METRICS +#include "slam6d/metrics.h" +#endif + + + +managed_shared_memory* ClientInterface::m_msm = 0; +ClientInterface* ClientInterface::m_singleton = 0; + + + +SharedScanVector * ClientInterface::readDirectory(const char * dir_path, IOType type, unsigned int start, unsigned int end) +{ + path to_add(dir_path); + if(!exists(to_add) || !is_directory(to_add)) { + // TODO: throw an exception + cerr << "Directory " << to_add << " does not exist" << endl; + return 0; + } + + // aquire client mutex for uninterrupted work + scoped_lock lock(m_mutex_client); + + // pass a system complete (absolute) path for compability with possibly + // different working directories in different processes + m_arg_string_1 = system_complete(to_add).string().c_str(); + m_arg_io_type = type; + m_arg_uint_1 = start; + m_arg_uint_2 = end; + sendMessage(MESSAGE_READ_DIRECTORY); + // don't catch the exception, there is nothing this function can fix + SharedScanVector* scans = m_scanvector_ptr.get(); + m_scanvector_ptr = 0; + return scans; +} + +void ClientInterface::closeDirectory(SharedScanVector*& scans) +{ + if(scans == 0) return; + + // release all scans + // TODO: either lower recursive mutexes in all scans or notice the server + + // delete scan vector + segment_manager->destroy_ptr(scans); + + // set scans to 0 since it's a reference + scans = 0; +} + +bool ClientInterface::loadCacheObject(CacheObject* obj) +{ + // aquire client mutex for uninterrupted work + scoped_lock lock(m_mutex_client); + +#ifdef WITH_METRICS + Timer t = ClientMetric::cache_miss_time.start(); +#endif //WITH_METRICS + + m_cacheobject_ptr = obj; + sendMessage(MESSAGE_LOAD_CACHE_OBJECT); + bool success = m_arg_uint_1 == 1; + m_arg_uint_1 = 0; + +#ifdef WITH_METRICS + ClientMetric::cache_miss_time.end(t); +#endif //WITH_METRICS + + return success; +} + +void ClientInterface::allocateCacheObject(CacheObject* obj, unsigned int size) +{ + // aquire client mutex for uninterrupted work + scoped_lock lock(m_mutex_client); + +#ifdef WITH_METRICS + Timer t = ClientMetric::allocate_time.start(); +#endif //WITH_METRICS + + m_cacheobject_ptr = obj; + m_arg_uint_1 = size; + sendMessage(MESSAGE_ALLOCATE_CACHE_OBJECT); + +#ifdef WITH_METRICS + ClientMetric::allocate_time.end(t); +#endif //WITH_METRICS +} + +void ClientInterface::invalidateCacheObject(CacheObject* obj) +{ + // aquire client mutex for uninterrupted work + scoped_lock lock(m_mutex_client); + + m_cacheobject_ptr = obj; + sendMessage(MESSAGE_INVALIDATE_CACHE_OBJECT); +} + +void ClientInterface::getPose(SharedScan* scan) +{ + // aquire client mutex for uninterrupted work + scoped_lock lock(m_mutex_client); + + m_sharedscan_ptr = scan; + sendMessage(MESSAGE_GET_POSE); +} + +void ClientInterface::addFrame(SharedScan* scan, double* transformation, unsigned int type) +{ + // aquire client mutex for uninterrupted work + scoped_lock lock(m_mutex_client); + +#ifdef WITH_METRICS + Timer t = ClientMetric::frames_time.start(); +#endif //WITH_METRICS + + m_sharedscan_ptr = scan; + sendMessage(MESSAGE_ADD_FRAME); + + // write into the new frame + const FrameVector& frames = scan->getFrames(); + Frame& frame = const_cast(frames.back()); + frame.set(transformation, type); + +#ifdef WITH_METRICS + ClientMetric::frames_time.end(t); +#endif //WITH_METRICS +} + +void ClientInterface::loadFramesFile(SharedScan* scan) +{ + // aquire client mutex for uninterrupted work + scoped_lock lock(m_mutex_client); + +#ifdef WITH_METRICS + Timer t = ClientMetric::frames_time.start(); +#endif //WITH_METRICS + + m_sharedscan_ptr = scan; + sendMessage(MESSAGE_LOAD_FRAMES_FILE); + +#ifdef WITH_METRICS + ClientMetric::frames_time.end(t); +#endif //WITH_METRICS +} + +void ClientInterface::saveFramesFile(SharedScan* scan) +{ + // aquire client mutex for uninterrupted work + scoped_lock lock(m_mutex_client); + +#ifdef WITH_METRICS + Timer t = ClientMetric::frames_time.start(); +#endif //WITH_METRICS + + m_sharedscan_ptr = scan; + sendMessage(MESSAGE_SAVE_FRAMES_FILE); + +#ifdef WITH_METRICS + ClientMetric::frames_time.end(t); +#endif //WITH_METRICS +} + +void ClientInterface::clearFrames(SharedScan* scan) +{ + // aquire client mutex for uninterrupted work + scoped_lock lock(m_mutex_client); + +#ifdef WITH_METRICS + Timer t = ClientMetric::frames_time.start(); +#endif //WITH_METRICS + + m_sharedscan_ptr = scan; + sendMessage(MESSAGE_CLEAR_FRAMES); + // TODO: remove the .frames-file if appropriate, clear all records + +#ifdef WITH_METRICS + ClientMetric::frames_time.end(t); +#endif //WITH_METRICS +} + +std::size_t ClientInterface::getCacheSize() +{ + // aquire client mutex for uninterrupted work + scoped_lock lock(m_mutex_client); + + sendMessage(MESSAGE_GET_CACHE_SIZE); + + return m_arg_size_t; +} + +void ClientInterface::printMetrics() +{ + // aquire client mutex for uninterrupted work + scoped_lock lock(m_mutex_client); + + sendMessage(MESSAGE_PRINT_METRICS); +} + +void ClientInterface::sendMessage(message_t message) +{ +#ifdef WITH_METRICS + Timer t = ClientMetric::clientinterface_time.start(); +#endif //WITH_METRICS + + // try to lock the server mutex to send when it's not occupied + scoped_lock lock(m_mutex_server); + + // set message + m_message = message; + + // notify and wake up the server and wait until the message is processed + m_condition_server.notify_one(); + m_condition_client.wait(lock); + +#ifdef WITH_METRICS + ClientMetric::clientinterface_time.end(t); +#endif //WITH_METRICS + + // process errors + // TODO: better + if(!m_error_message.empty()) { + std::string msg(m_error_message.c_str()); + m_error_message.clear(); + throw std::runtime_error(msg); + } +} + +ClientInterface* ClientInterface::create() +{ + // open the shared memory in this application + if(m_msm == 0) { + try { + m_msm = new managed_shared_memory(open_only, SHM_NAME_DATA); + } catch(interprocess_exception& e) { + throw std::runtime_error(std::string("Could not open shared memory: ") + e.what()); + } + } + + // now try to open the cache shared memory + CacheObject::openSharedMemory(SHM_NAME_CACHE); + + // prepare singleton pointer + offset_ptr* ptr = m_msm->find >(unique_instance).first; + if(ptr == 0) + throw std::runtime_error("Could not find the ClientInterface pointer in shared memory"); + m_singleton = ptr->get(); + + // test for old crashed clients + { + scoped_lock lock(m_singleton->m_mutex_client, try_to_lock); + if(!lock) { + cout << "Scanserver communication is currently blocked, waiting for server... " << std::flush; + // wait for server to finish, lock and immediately unlock the server mutex + {scoped_lock lock_server(m_singleton->m_mutex_server);} + // clean up the client mutex which was left locked by previous program calls + m_singleton->m_mutex_client.unlock(); + cout << "done." /* Stop crashing/interrupting programs */ << endl; + } + } + + return m_singleton; +} + +void ClientInterface::destroy() +{ + m_singleton = 0; + if(m_msm != 0) { + delete m_msm; + m_msm = 0; + } +} + +ClientInterface* ClientInterface::getInstance() +{ + if(m_singleton == 0) + throw std::runtime_error("ClientInterface Singleton not set"); + return m_singleton; +} diff --git a/.svn/pristine/80/80da6ad67d68a5511985164aeed5596da85b20c2.svn-base b/.svn/pristine/80/80da6ad67d68a5511985164aeed5596da85b20c2.svn-base new file mode 100644 index 0000000..f92a2f5 --- /dev/null +++ b/.svn/pristine/80/80da6ad67d68a5511985164aeed5596da85b20c2.svn-base @@ -0,0 +1,76 @@ +------------------------------------------------------------ +ann_test: Version 1.0 + Copyright: David M. Mount and Sunil Arya. + Latest Revision: Mar 1, 2005. +------------------------------------------------------------ + +validate = on (Warning: this may slow execution time.) +stats = query_stats +[Read Data Points: + data_size = 20 + file_name = test1-data.pts + dim = 2 +] +[Read Query Points: + query_size = 10 + file_name = test1-query.pts + dim = 2 +] +[Build ann-structure: + split_rule = suggest + shrink_rule = none + data_size = 20 + dim = 2 + bucket_size = 1 + process_time = 0 sec + (Structure Statistics: + n_nodes = 39 (opt = 40, best if < 400) + n_leaves = 20 (0 contain no points) + n_splits = 19 + n_shrinks = 0 + empty_leaves = 0 percent (best if < 50 percent) + depth = 6 (opt = 4, best if < 17) + avg_aspect_ratio = 1.48847 (best if < 20) + ) +] +(Computing true nearest neighbors for validation. This may take time.) +[Run Queries: + query_size = 10 + dim = 2 + search_method = standard + epsilon = 0 + near_neigh = 3 + true_nn = 13 + query_time = 0 sec/query (biased by perf measurements) + (Performance stats: [ mean : stddev ]< min , max > + leaf_nodes = [ 6.3 : 2.751 ]< 4 , 11 > + splitting_nodes = [ 8.8 : 3.676 ]< 5 , 15 > + shrinking_nodes = [ 0 : 0 ]< 0 , 0 > + total_nodes = [ 15.1 : 6.35 ]< 9 , 26 > + points_visited = [ 6.3 : 2.751 ]< 4 , 11 > + coord_hits/pt = [ 0.57 : 0.2201 ]< 0.35 , 0.95 > + floating_ops_(K) = [ 0.156 : 0.0563 ]< 0.101 , 0.254 > + average_error = [ 0 : 0 ]< 0 , 0 > + rank_error = [ 0 : 0 ]< 0 , 0 > + ) +] +[Run Queries: + query_size = 10 + dim = 2 + search_method = priority + epsilon = 0 + near_neigh = 3 + true_nn = 13 + query_time = 0 sec/query (biased by perf measurements) + (Performance stats: [ mean : stddev ]< min , max > + leaf_nodes = [ 5.9 : 2.025 ]< 4 , 9 > + splitting_nodes = [ 8.7 : 3.498 ]< 5 , 15 > + shrinking_nodes = [ 0 : 0 ]< 0 , 0 > + total_nodes = [ 14.6 : 5.42 ]< 9 , 24 > + points_visited = [ 5.9 : 2.025 ]< 4 , 9 > + coord_hits/pt = [ 0.535 : 0.1667 ]< 0.35 , 0.8 > + floating_ops_(K) = [ 0.1719 : 0.05861 ]< 0.114 , 0.267 > + average_error = [ 0 : 0 ]< 0 , 0 > + rank_error = [ 0 : 0 ]< 0 , 0 > + ) +] diff --git a/.svn/pristine/81/8141faddceae91e35b92824087e7b0ea36a06110.svn-base b/.svn/pristine/81/8141faddceae91e35b92824087e7b0ea36a06110.svn-base new file mode 100644 index 0000000..dd30099 --- /dev/null +++ b/.svn/pristine/81/8141faddceae91e35b92824087e7b0ea36a06110.svn-base @@ -0,0 +1,90 @@ +/* +This is a Optical-Character-Recognition program +Copyright (C) 2000 Joerg Schulenburg + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + see README for EMAIL-address + + */ + +#ifndef GOCR_LIST_H +#define GOCR_LIST_H + +#ifdef DEBUG +#define g_debug(a) a +#else +#define g_debug(a) +#endif + +/* + * Structures + */ + +struct element { + struct element *next, *previous; + void *data; +}; +typedef struct element Element; + +struct list { + Element start; /* simplifies for(each_element) { ... */ + Element stop; /* ... list_del() ... } v0.41 */ + Element **current; /* for(each_element) */ + int n; /* number of elements */ + int level; /* level of nested fors */ +}; +typedef struct list List; + +/* + * Functions + */ + +void list_init ( List *l ); +int list_app ( List *l, void *data ); +int list_ins ( List *l, void *data_after, void *data); +Element*list_element_from_data ( List *l, void *data ); +int list_del ( List *l, void *data ); +void list_free ( List *l ); +int list_and_data_free ( List *l, void (*free_data)(void *data)); +int list_higher_level ( List *l ); +void list_lower_level ( List *l ); +void * list_next ( List *l, void *data ); +void * list_prev ( List *l, void *data ); +void list_sort ( List *l, int (*compare)(const void *, const void *) ); + +#define list_empty(l) ((l)->start.next == &(l)->stop ? 1 : 0) +#define list_get_header(l) ((l)->start.next->data) +#define list_get_tail(l) ((l)->stop.previous->data) +#define list_get_current(l) ((l)->current[(l)->level]->data) +#define list_get_cur_prev(l) ((l)->current[(l)->level]->previous == NULL ? \ + NULL : (l)->current[(l)->level]->previous->data ) +#define list_get_cur_next(l) ((l)->current[(l)->level]->next == NULL ? \ + NULL : (l)->current[(l)->level]->next->data ) +#define list_total(l) ((l)->n) + +#define for_each_data(l) \ + if (list_higher_level(l) == 0) { \ + for ( ; (l)->current[(l)->level] \ + && (l)->current[(l)->level]!=&(l)->stop; (l)->current[(l)->level] = \ + (l)->current[(l)->level]->next ) { + + +#define end_for_each(l) \ + } \ + list_lower_level(l); \ + } + +#endif diff --git a/.svn/pristine/82/8204e61d0af1afc98720bee7d45dfb6b6cdfe3d1.svn-base b/.svn/pristine/82/8204e61d0af1afc98720bee7d45dfb6b6cdfe3d1.svn-base new file mode 100644 index 0000000..af91879 --- /dev/null +++ b/.svn/pristine/82/8204e61d0af1afc98720bee7d45dfb6b6cdfe3d1.svn-base @@ -0,0 +1,236 @@ +#ifndef __FREEGLUT_EXT_H__ +#define __FREEGLUT_EXT_H__ + +/* + * freeglut_ext.h + * + * The non-GLUT-compatible extensions to the freeglut library include file + * + * Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved. + * Written by Pawel W. Olszta, + * Creation date: Thu Dec 2 1999 + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#ifdef __cplusplus + extern "C" { +#endif + +/* + * Additional GLUT Key definitions for the Special key function + */ +#define GLUT_KEY_NUM_LOCK 0x006D +#define GLUT_KEY_BEGIN 0x006E +#define GLUT_KEY_DELETE 0x006F +#define GLUT_KEY_SHIFT_L 0x0070 +#define GLUT_KEY_SHIFT_R 0x0071 +#define GLUT_KEY_CTRL_L 0x0072 +#define GLUT_KEY_CTRL_R 0x0073 +#define GLUT_KEY_ALT_L 0x0074 +#define GLUT_KEY_ALT_R 0x0075 + +/* + * GLUT API Extension macro definitions -- behaviour when the user clicks on an "x" to close a window + */ +#define GLUT_ACTION_EXIT 0 +#define GLUT_ACTION_GLUTMAINLOOP_RETURNS 1 +#define GLUT_ACTION_CONTINUE_EXECUTION 2 + +/* + * Create a new rendering context when the user opens a new window? + */ +#define GLUT_CREATE_NEW_CONTEXT 0 +#define GLUT_USE_CURRENT_CONTEXT 1 + +/* + * Direct/Indirect rendering context options (has meaning only in Unix/X11) + */ +#define GLUT_FORCE_INDIRECT_CONTEXT 0 +#define GLUT_ALLOW_DIRECT_CONTEXT 1 +#define GLUT_TRY_DIRECT_CONTEXT 2 +#define GLUT_FORCE_DIRECT_CONTEXT 3 + +/* + * GLUT API Extension macro definitions -- the glutGet parameters + */ +#define GLUT_INIT_STATE 0x007C + +#define GLUT_ACTION_ON_WINDOW_CLOSE 0x01F9 + +#define GLUT_WINDOW_BORDER_WIDTH 0x01FA +#define GLUT_WINDOW_HEADER_HEIGHT 0x01FB + +#define GLUT_VERSION 0x01FC + +#define GLUT_RENDERING_CONTEXT 0x01FD +#define GLUT_DIRECT_RENDERING 0x01FE + +#define GLUT_FULL_SCREEN 0x01FF + +/* + * New tokens for glutInitDisplayMode. + * Only one GLUT_AUXn bit may be used at a time. + * Value 0x0400 is defined in OpenGLUT. + */ +#define GLUT_AUX 0x1000 + +#define GLUT_AUX1 0x1000 +#define GLUT_AUX2 0x2000 +#define GLUT_AUX3 0x4000 +#define GLUT_AUX4 0x8000 + +/* + * Context-related flags, see freeglut_state.c + */ +#define GLUT_INIT_MAJOR_VERSION 0x0200 +#define GLUT_INIT_MINOR_VERSION 0x0201 +#define GLUT_INIT_FLAGS 0x0202 +#define GLUT_INIT_PROFILE 0x0203 + +/* + * Flags for glutInitContextFlags, see freeglut_init.c + */ +#define GLUT_DEBUG 0x0001 +#define GLUT_FORWARD_COMPATIBLE 0x0002 + + +/* + * Flags for glutInitContextProfile, see freeglut_init.c + */ +#define GLUT_CORE_PROFILE 0x0001 +#define GLUT_COMPATIBILITY_PROFILE 0x0002 + +/* + * Process loop function, see freeglut_main.c + */ +FGAPI void FGAPIENTRY glutMainLoopEvent( void ); +FGAPI void FGAPIENTRY glutLeaveMainLoop( void ); +FGAPI void FGAPIENTRY glutExit ( void ); + +/* + * Window management functions, see freeglut_window.c + */ +FGAPI void FGAPIENTRY glutFullScreenToggle( void ); +FGAPI void FGAPIENTRY glutLeaveFullScreen( void ); + +/* + * Window-specific callback functions, see freeglut_callbacks.c + */ +FGAPI void FGAPIENTRY glutMouseWheelFunc( void (* callback)( int, int, int, int ) ); +FGAPI void FGAPIENTRY glutCloseFunc( void (* callback)( void ) ); +FGAPI void FGAPIENTRY glutWMCloseFunc( void (* callback)( void ) ); +/* A. Donev: Also a destruction callback for menus */ +FGAPI void FGAPIENTRY glutMenuDestroyFunc( void (* callback)( void ) ); + +/* + * State setting and retrieval functions, see freeglut_state.c + */ +FGAPI void FGAPIENTRY glutSetOption ( GLenum option_flag, int value ); +FGAPI int * FGAPIENTRY glutGetModeValues(GLenum mode, int * size); +/* A.Donev: User-data manipulation */ +FGAPI void* FGAPIENTRY glutGetWindowData( void ); +FGAPI void FGAPIENTRY glutSetWindowData(void* data); +FGAPI void* FGAPIENTRY glutGetMenuData( void ); +FGAPI void FGAPIENTRY glutSetMenuData(void* data); + +/* + * Font stuff, see freeglut_font.c + */ +FGAPI int FGAPIENTRY glutBitmapHeight( void* font ); +FGAPI GLfloat FGAPIENTRY glutStrokeHeight( void* font ); +FGAPI void FGAPIENTRY glutBitmapString( void* font, const unsigned char *string ); +FGAPI void FGAPIENTRY glutStrokeString( void* font, const unsigned char *string ); + +/* + * Geometry functions, see freeglut_geometry.c + */ +FGAPI void FGAPIENTRY glutWireRhombicDodecahedron( void ); +FGAPI void FGAPIENTRY glutSolidRhombicDodecahedron( void ); +FGAPI void FGAPIENTRY glutWireSierpinskiSponge ( int num_levels, GLdouble offset[3], GLdouble scale ); +FGAPI void FGAPIENTRY glutSolidSierpinskiSponge ( int num_levels, GLdouble offset[3], GLdouble scale ); +FGAPI void FGAPIENTRY glutWireCylinder( GLdouble radius, GLdouble height, GLint slices, GLint stacks); +FGAPI void FGAPIENTRY glutSolidCylinder( GLdouble radius, GLdouble height, GLint slices, GLint stacks); + +/* + * Extension functions, see freeglut_ext.c + */ +typedef void (*GLUTproc)(); +FGAPI GLUTproc FGAPIENTRY glutGetProcAddress( const char *procName ); + +/* + * Multi-touch/multi-pointer extensions + */ + +#define GLUT_HAS_MULTI 1 + +FGAPI void FGAPIENTRY glutMultiEntryFunc( void (* callback)( int, int ) ); +FGAPI void FGAPIENTRY glutMultiButtonFunc( void (* callback)( int, int, int, int, int ) ); +FGAPI void FGAPIENTRY glutMultiMotionFunc( void (* callback)( int, int, int ) ); +FGAPI void FGAPIENTRY glutMultiPassiveFunc( void (* callback)( int, int, int ) ); + +/* + * Joystick functions, see freeglut_joystick.c + */ +/* USE OF THESE FUNCTIONS IS DEPRECATED !!!!! */ +/* If you have a serious need for these functions in your application, please either + * contact the "freeglut" developer community at freeglut-developer@lists.sourceforge.net, + * switch to the OpenGLUT library, or else port your joystick functionality over to PLIB's + * "js" library. + */ +int glutJoystickGetNumAxes( int ident ); +int glutJoystickGetNumButtons( int ident ); +int glutJoystickNotWorking( int ident ); +float glutJoystickGetDeadBand( int ident, int axis ); +void glutJoystickSetDeadBand( int ident, int axis, float db ); +float glutJoystickGetSaturation( int ident, int axis ); +void glutJoystickSetSaturation( int ident, int axis, float st ); +void glutJoystickSetMinRange( int ident, float *axes ); +void glutJoystickSetMaxRange( int ident, float *axes ); +void glutJoystickSetCenter( int ident, float *axes ); +void glutJoystickGetMinRange( int ident, float *axes ); +void glutJoystickGetMaxRange( int ident, float *axes ); +void glutJoystickGetCenter( int ident, float *axes ); + +/* + * Initialization functions, see freeglut_init.c + */ +FGAPI void FGAPIENTRY glutInitContextVersion( int majorVersion, int minorVersion ); +FGAPI void FGAPIENTRY glutInitContextFlags( int flags ); +FGAPI void FGAPIENTRY glutInitContextProfile( int profile ); + +/* to get the typedef for va_list */ +#include + +FGAPI void FGAPIENTRY glutInitErrorFunc( void (* vError)( const char *fmt, va_list ap ) ); +FGAPI void FGAPIENTRY glutInitWarningFunc( void (* vWarning)( const char *fmt, va_list ap ) ); + +/* + * GLUT API macro definitions -- the display mode definitions + */ +#define GLUT_CAPTIONLESS 0x0400 +#define GLUT_BORDERLESS 0x0800 +#define GLUT_SRGB 0x1000 + +#ifdef __cplusplus + } +#endif + +/*** END OF FILE ***/ + +#endif /* __FREEGLUT_EXT_H__ */ diff --git a/.svn/pristine/82/8214f7bd11152549b3a1727230ef93281a4dc531.svn-base b/.svn/pristine/82/8214f7bd11152549b3a1727230ef93281a4dc531.svn-base new file mode 100644 index 0000000..3066614 --- /dev/null +++ b/.svn/pristine/82/8214f7bd11152549b3a1727230ef93281a4dc531.svn-base @@ -0,0 +1,37 @@ +/* +This is a Optical-Character-Recognition program +Copyright (C) 2000 Joerg Schulenburg + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + see README for EMAIL-address */ + +#ifndef OUTPUT_H +#define OUTPUT_H + +#include +#include +#include "pnm.h" +#include "gocr.h" +#include "list.h" + +void out_b(struct box *px, pix *b, int x0, int y0, int dx, int dy, int cs ); +void out_x(struct box *px); +void out_x2(struct box *box1,struct box *box2); +int output_list(job_t *job); +int debug_img(char *fname, struct job_s *job, int opt); + + +#endif diff --git a/.svn/pristine/82/825ea81b03343eb58b944b5e1d951e8694341c77.svn-base b/.svn/pristine/82/825ea81b03343eb58b944b5e1d951e8694341c77.svn-base new file mode 100644 index 0000000..3eb789e --- /dev/null +++ b/.svn/pristine/82/825ea81b03343eb58b944b5e1d951e8694341c77.svn-base @@ -0,0 +1,9 @@ + + + + 1 + 4 +
f
+ + -0.46651933 0.30511221 2.36130873e-04 -2.86668586e-03
+
diff --git a/.svn/pristine/82/827d5cdb00e39ea6ccb51b1c7fc2c247200766de.svn-base b/.svn/pristine/82/827d5cdb00e39ea6ccb51b1c7fc2c247200766de.svn-base new file mode 100644 index 0000000..f5a66b7 --- /dev/null +++ b/.svn/pristine/82/827d5cdb00e39ea6ccb51b1c7fc2c247200766de.svn-base @@ -0,0 +1,636 @@ +/* + * icp6Dquat implementation + * + * Copyright (C) Andreas Nuechter + * + * Released under the GPL version 3. + * + */ + +/** @file + * @brief Implementation of the ICP error function minimization via quaternions + * @author Andreas Nuechter. Jacobs University Bremen gGmbH, Germany. + */ + +#include "slam6d/icp6Dquat.h" + +#include "slam6d/globals.icc" +#include +using std::ios; +using std::resetiosflags; +using std::setiosflags; +#include +#include +#include +using std::cout; +using std::cerr; +using std::endl; + +#ifdef _MSC_VER +#define cbrt(x) pow(x,1/3) +#endif + +/** + * computes the rotation matrix consisting + * of a rotation and translation that + * minimizes the root-mean-square error of the + * point pairs using the Quaternion method of Horn + * PARAMETERS + * vector of point pairs, rotation matrix + * @param pairs Vector of point pairs (pairs of corresponding points) + * @param *alignfx The resulting transformation matrix + * @return Error estimation of the matching (rms) +*/ +double icp6D_QUAT::Point_Point_Align(const vector& pairs, double *alignfx, + const double centroid_m[3], const double centroid_d[3]) +{ + int n = pairs.size(); + + double sum = 0.0; + + // the quaternion + double q[7]; + + double S[3][3]; + double Q[4][4]; + int i,j; + + // calculate the cross covariance matrix + for (i = 0; i < 3; i++) + for (j = 0; j < 3; j++) + S[i][j] = 0; + for (i=0; i 0.0)&&(y > 0.0)&&(c > 0.0)) + || ((a > 0.0)&&(y < 0.0)&&(c < 0.0)) + || ((a < 0.0)&&(y > 0.0)&&(c < 0.0)) + || ((a < 0.0)&&(y < 0.0)&&(c > 0.0)) + || (a == 0.0)||(y == 0.0)||(c == 0.0) + ) { + /* use ef - */ + if ((b < 0.0)&&(y < 0.0)&&(esq > 0.0)) { + e = sqrt(esq); + f = ef/e; + } else if ((d < 0.0) && (fsq > 0.0)) { + f = sqrt(fsq); + e = ef/f; + } else { + e = sqrt(esq); + f = sqrt(fsq); + if (ef < 0.0) f = -f; + } + } else { + e = sqrt(esq); + f = sqrt(fsq); + if (ef < 0.0) f = -f; + } + /* note that e >= 0.0 */ + ainv2 = a*.5; + g = ainv2 - e; + gg = ainv2 + e; + if ( ((b > 0.0)&&(y > 0.0)) + || ((b < 0.0)&&(y < 0.0)) ) { + if (( a > 0.0) && (e != 0.0)) g = (b + y)/gg; + else if (e != 0.0) gg = (b + y)/g; + } + if ((y == 0.0)&&(f == 0.0)) { + h = 0.0; + hh = 0.0; + } else if ( ((f > 0.0)&&(y < 0.0)) + || ((f < 0.0)&&(y > 0.0)) ) { + hh = -.5*y + f; + h = d/hh; + } else { + h = -.5*y - f; + hh = d/h; + } + n1 = qudrtc(gg,hh,v1); + n2 = qudrtc(g,h,v2); + nquar = n1+n2; + rts[0] = v1[0]; + rts[1] = v1[1]; + rts[n1+0] = v2[0]; + rts[n1+1] = v2[1]; + return nquar; + } + } +} /* ferrari */ + +int icp6D_QUAT::qudrtc(double b, double c, double rts[4]) +/* + solve the quadratic equation - + + x**2+b*x+c = 0 + +*/ +{ + int nquad; + double rtdis; + double dis = b*b-4.0*c; + + if (dis >= 0.0) { + nquad = 2; + rtdis = sqrt(dis); + if (b > 0.0) rts[0] = ( -b - rtdis)*.5; + else rts[0] = ( -b + rtdis)*.5; + if (rts[0] == 0.0) rts[1] = -b; + else rts[1] = c/rts[0]; + } else { + nquad = 0; + rts[0] = 0.0; + rts[1] = 0.0; + } + return nquad; +} /* qudrtc */ +/**************************************************/ + +double icp6D_QUAT::cubic(double p, double q, double r) +/* + find the lowest real root of the cubic - + x**3 + p*x**2 + q*x + r = 0 + + input parameters - + p,q,r - coeffs of cubic equation. + + output- + cubic - a real root. + + method - + see D.E. Littlewood, "A University Algebra" pp.173 - 6 + + Charles Prineas April 1981 + +*/ +{ + //int nrts; + double po3,po3sq,qo3; + double uo3,u2o3,uo3sq4,uo3cu4; + double v,vsq,wsq; + double m,mcube=0.0,n; + double muo3,s,scube,t,cosk,sinsqk; + double root; + + double doubmax = sqrt(DBL_MAX); + + m = 0.0; + //nrts =0; + if ((p > doubmax) || (p < -doubmax)) { + root = -p; + } else if ((q > doubmax) || (q < -doubmax)) { + if (q > 0.0) root = -r/q; + else root = -sqrt(-q); + } else if ((r > doubmax)|| (r < -doubmax)) { + root = -cbrt(r); + } else { + po3 = p/3.0; + po3sq = po3*po3; + if (po3sq > doubmax) root = -p; + else { + v = r + po3*(po3sq + po3sq - q); + if ((v > doubmax) || (v < -doubmax)) + root = -p; + else { + vsq = v*v; + qo3 = q/3.0; + uo3 = qo3 - po3sq; + u2o3 = uo3 + uo3; + if ((u2o3 > doubmax) || (u2o3 < -doubmax)) { + if (p == 0.0) { + if (q > 0.0) root = -r/q; + else root = -sqrt(-q); + } else root = -q/p; + } + uo3sq4 = u2o3*u2o3; + if (uo3sq4 > doubmax) { + if (p == 0.0) { + if (q > 0.0) root = -r/q; + else root = -sqrt(fabs(q)); + } else root = -q/p; + } + uo3cu4 = uo3sq4*uo3; + wsq = uo3cu4 + vsq; + if (wsq >= 0.0) { + // + // cubic has one real root + // + //nrts = 1; + if (v <= 0.0) mcube = ( -v + sqrt(wsq))*.5; + if (v > 0.0) mcube = ( -v - sqrt(wsq))*.5; + m = cbrt(mcube); + if (m != 0.0) n = -uo3/m; + else n = 0.0; + root = m + n - po3; + } else { + //nrts = 3; + // + // cubic has three real roots + // + if (uo3 < 0.0) { + muo3 = -uo3; + s = sqrt(muo3); + scube = s*muo3; + t = -v/(scube+scube); + cosk = cos(acos(t)/3.0); + if (po3 < 0.0) + root = (s+s)*cosk - po3; + else { + sinsqk = 1.0 - cosk*cosk; + if (sinsqk < 0.0) sinsqk = 0.0; + root = s*( -cosk - sqrt(3*sinsqk)) - po3; + } + } else + // + // cubic has multiple root - + // + root = cbrt(v) - po3; + } + } + } + } + return root; +} /* cubic */ +/***************************************/ + + +// calculate the maximum eigenvector of a symmetric +// 4x4 matrix +// from B. Horn 1987 Closed-form solution of absolute +// orientation using unit quaternions (J.Opt.Soc.Am.A) +void icp6D_QUAT::maxEigenVector(double Q[4][4], double ev[4]) +{ + double N[4][4]; + double rts[4]; + double c[4]; + // find the coeffs for the characteristic eqn. + characteristicPol(Q, c); + // find roots + ferrari(c[0], c[1], c[2], c[3], rts); + // find maximum root = maximum eigenvalue + double l = rts[0]; + if (rts[1] > l) l = rts[1]; + if (rts[2] > l) l = rts[2]; + if (rts[3] > l) l = rts[3]; + + // create the Q - l*I matrix + N[0][0]=Q[0][0]-l;N[0][1]=Q[0][1] ;N[0][2]=Q[0][2]; N[0][3]=Q[0][3]; + N[1][0]=Q[1][0]; N[1][1]=Q[1][1]-l;N[1][2]=Q[1][2]; N[1][3]=Q[1][3]; + N[2][0]=Q[2][0]; N[2][1]=Q[2][1] ;N[2][2]=Q[2][2]-l;N[2][3]=Q[2][3]; + N[3][0]=Q[3][0]; N[3][1]=Q[3][1] ;N[3][2]=Q[3][2];N[3][3]=Q[3][3]-l; + // the columns of the inverted matrix should be multiples of + // the eigenvector, pick the largest + int ipiv[4]; + double best[4], curr[4]; + if (LU_factor(N, ipiv)) { + cerr << "maxEigenVector():" << endl; + cerr << "LU_factor failed!" << endl; + cerr << "return identity quaternion" << endl; + ev[0] = 1.0; + ev[1] = ev[2] = ev[3] = 0.0; + return; + } + best[1] = best[2] = best[3] = 0; best[0] = 1; + LU_solve(N, ipiv, best); + double len = + best[0]*best[0] + best[1]*best[1] + + best[2]*best[2] + best[3]*best[3]; + for (int i=1; i<4; i++) { + curr[0] = curr[1] = curr[2] = curr[3] = 0; curr[i] = 1; + LU_solve(N, ipiv, curr); + double tlen = + curr[0]*curr[0] + curr[1]*curr[1] + + curr[2]*curr[2] + curr[3]*curr[3]; + if (tlen > len) { + len = tlen; + best[0] = curr[0]; + best[1] = curr[1]; + best[2] = curr[2]; + best[3] = curr[3]; + } + } + // normalize the result + len = 1.0/sqrt(len); + ev[0] = best[0]*len; + ev[1] = best[1]*len; + ev[2] = best[2]*len; + ev[3] = best[3]*len; +} + +// find the coefficients of the characteristic eqn. +// l^4 + a l^3 + b l^2 + c l + d = 0 +// for a symmetric 4x4 matrix +void icp6D_QUAT::characteristicPol(double Q[4][4], double c[4]) +{ + // squares + double q01_2 = Q[0][1] * Q[0][1]; + double q02_2 = Q[0][2] * Q[0][2]; + double q03_2 = Q[0][3] * Q[0][3]; + double q12_2 = Q[1][2] * Q[1][2]; + double q13_2 = Q[1][3] * Q[1][3]; + double q23_2 = Q[2][3] * Q[2][3]; + + // other factors + double q0011 = Q[0][0] * Q[1][1]; + double q0022 = Q[0][0] * Q[2][2]; + double q0033 = Q[0][0] * Q[3][3]; + double q0102 = Q[0][1] * Q[0][2]; + double q0103 = Q[0][1] * Q[0][3]; + double q0223 = Q[0][2] * Q[2][3]; + double q1122 = Q[1][1] * Q[2][2]; + double q1133 = Q[1][1] * Q[3][3]; + double q1223 = Q[1][2] * Q[2][3]; + double q2233 = Q[2][2] * Q[3][3]; + + // a + c[0] = -Q[0][0] - Q[1][1] - Q[2][2] - Q[3][3]; + + // b + c[1] = - q01_2 - q02_2 - q03_2 + q0011 - q12_2 - + q13_2 + q0022 + q1122 - q23_2 + q0033 + q1133 + + q2233; + + // c + c[2] = (q02_2 + q03_2 + q23_2)*Q[1][1] - 2*q0102*Q[1][2] + + (q12_2 + q13_2 + q23_2)*Q[0][0] + + (q01_2 + q03_2 - q0011 + q13_2 - q1133)*Q[2][2] - + 2*Q[0][3]*q0223 - 2*(q0103 + q1223)*Q[1][3] + + (q01_2 + q02_2 - q0011 + q12_2 - q0022)*Q[3][3]; + + // d + c[3] = 2*(-Q[0][2]*Q[0][3]*Q[1][2] + q0103*Q[2][2] - + Q[0][1]*q0223 + Q[0][0]*q1223)*Q[1][3] + + q02_2*q13_2 - q03_2*q1122 - q13_2*q0022 + + 2*Q[0][3]*Q[1][1]*q0223 - 2*q0103*q1223 + q01_2*q23_2 - + q0011*q23_2 - q02_2*q1133 + q03_2*q12_2 + + 2*q0102*Q[1][2]*Q[3][3] - q12_2*q0033 - q01_2*q2233 + + q0011*q2233; +} + +double icp6D_QUAT::Point_Point_Align_Parallel(const int openmp_num_threads, + const unsigned int n[OPENMP_NUM_THREADS], + const double sum[OPENMP_NUM_THREADS], + const double centroid_m[OPENMP_NUM_THREADS][3], + const double centroid_d[OPENMP_NUM_THREADS][3], + const double Si[OPENMP_NUM_THREADS][9], + double *alignfx) +{ + double s = 0.0; + double ret; + unsigned int pairs_size = 0; + double cm[3] = {0.0, 0.0, 0.0}; // centroid m + double cd[3] = {0.0, 0.0, 0.0}; // centroid d + + // Implementation according to the paper + // "The Parallel Iterative Closest Point Algorithm" + // by Langis / Greenspan / Godin, IEEE 3DIM 2001 + // formula (4) + for (int i = 0; i < openmp_num_threads; i++) { + s += sum[i]; + pairs_size += n[i]; + cm[0] += n[i] * centroid_m[i][0]; + cm[1] += n[i] * centroid_m[i][1]; + cm[2] += n[i] * centroid_m[i][2]; + cd[0] += n[i] * centroid_d[i][0]; + cd[1] += n[i] * centroid_d[i][1]; + cd[2] += n[i] * centroid_d[i][2]; + } + cm[0] /= pairs_size; + cm[1] /= pairs_size; + cm[2] /= pairs_size; + cd[0] /= pairs_size; + cd[1] /= pairs_size; + cd[2] /= pairs_size; + + ret = sqrt(s / (double)pairs_size); + if (!quiet) { + cout.setf(ios::basefield); + cout << "PQUAT RMS point-to-point error = " + << resetiosflags(ios::adjustfield) << setiosflags(ios::internal) + << resetiosflags(ios::floatfield) << setiosflags(ios::fixed) + << std::setw(10) << std::setprecision(7) + << ret + << " using " << std::setw(6) << pairs_size << " points" << endl; + } + + double S[3][3]; + double Q[4][4]; + int i,j; + + for (i = 0; i < 3; i++) + for (j = 0; j < 3; j++) + S[i][j] = 0; + + // calculate the cross covariance matrix + // formula (5) + for (int i = 0; i < openmp_num_threads; i++) { + for(int j = 0; j < 3; j++){ + for(int k = 0; k < 3; k++){ + S[j][k] += Si[i][k*3+j] + n[i] * ((centroid_d[i][j] - cd[j]) * (centroid_m[i][k] - cm[k])) ; + } + } + } + + S[0][0] -= cd[0] * cm[0]; + S[0][1] -= cd[0] * cm[1]; + S[0][2] -= cd[0] * cm[2]; + S[1][0] -= cd[1] * cm[0]; + S[1][1] -= cd[1] * cm[1]; + S[1][2] -= cd[1] * cm[2]; + S[2][0] -= cd[2] * cm[0]; + S[2][1] -= cd[2] * cm[1]; + S[2][2] -= cd[2] * cm[2]; + + // calculate the 4x4 symmetric matrix Q + double trace = S[0][0] + S[1][1] + S[2][2]; + double A23 = S[1][2] - S[2][1]; + double A31 = S[2][0] - S[0][2]; + double A12 = S[0][1] - S[1][0]; + + Q[0][0] = trace; + Q[0][1] = Q[1][0] = A23; + Q[0][2] = Q[2][0] = A31; + Q[0][3] = Q[3][0] = A12; + for (i = 0; i < 3; i++) + for (j = 0; j < 3; j++) + Q[i+1][j+1] = S[i][j]+S[j][i]-(i==j ? trace : 0); + + // the quaternion + double q[7]; + + maxEigenVector(Q, q); + + // calculate the rotation matrix + double m[3][3]; // rot matrix + quaternion2matrix(q, m); + + M4identity(alignfx); + + alignfx[0] = m[0][0]; + alignfx[1] = m[1][0]; + alignfx[2] = m[2][0]; + alignfx[3] = 0.0; + alignfx[4] = m[0][1]; + alignfx[5] = m[1][1]; + alignfx[6] = m[2][1]; + alignfx[7] = 0.0; + alignfx[8] = m[0][2]; + alignfx[9] = m[1][2]; + alignfx[10] = m[2][2]; + alignfx[11] = 0.0; + + // calculate the translation vector, + alignfx[12] = cm[0] - m[0][0]*cd[0] - m[0][1]*cd[1] - m[0][2]*cd[2]; + alignfx[13] = cm[1] - m[1][0]*cd[0] - m[1][1]*cd[1] - m[1][2]*cd[2]; + alignfx[14] = cm[2] - m[2][0]*cd[0] - m[2][1]*cd[1] - m[2][2]*cd[2]; + + return ret; +} diff --git a/.svn/pristine/83/83a0ccfb3105d0ec892fab73cff93ad6373e71eb.svn-base b/.svn/pristine/83/83a0ccfb3105d0ec892fab73cff93ad6373e71eb.svn-base new file mode 100644 index 0000000..7cc24ed --- /dev/null +++ b/.svn/pristine/83/83a0ccfb3105d0ec892fab73cff93ad6373e71eb.svn-base @@ -0,0 +1,37 @@ +/* include/config.h. Generated by configure. */ +/* include/config.h.in. Generated automatically from configure.in by autoheader. */ + +/* Define to empty if the keyword does not work. */ +/* #undef const */ + +/* Define if the setvbuf function takes the buffering type as its second + argument and the buffer pointer as the third, as on System V + before release 3. */ +/* #undef SETVBUF_REVERSED */ + +/* Define if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* Define if you have the gettimeofday function. */ +#define HAVE_GETTIMEOFDAY 1 + +/* Define if you have the popen function. */ +#define HAVE_POPEN 1 + +/* Define if you have the wcschr function. */ +#define HAVE_WCSCHR 1 + +/* Define if you have the wcsdup function. */ +#define HAVE_WCSDUP 1 + +/* Define if you have the header file. */ +//#define HAVE_PAM_H 1 + +/* Define if you have the header file. */ +#define HAVE_PNM_H 1 + +/* Define if you have the header file. */ +#define HAVE_UNISTD_H 1 + +/* Define if you have the header file. */ +#define HAVE_WCHAR_H 1 diff --git a/.svn/pristine/83/83c644cf4bd8d8ac99735df4cce692bff33f67d7.svn-base b/.svn/pristine/83/83c644cf4bd8d8ac99735df4cce692bff33f67d7.svn-base new file mode 100644 index 0000000..e17c732 --- /dev/null +++ b/.svn/pristine/83/83c644cf4bd8d8ac99735df4cce692bff33f67d7.svn-base @@ -0,0 +1,187 @@ +/** + * @file + * @brief Implementation of reading 3D scans + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "slam6d/scan_io_ply.h" +#include "slam6d/globals.icc" +#include +using std::ifstream; +#include +using std::cerr; +using std::endl; +#include + +#ifdef _MSC_VER +#include +#endif + +/** + * Reads specified scans from given directory in + * the PLY file format. It will be compiled as + * shared lib. + * + * Scan poses will NOT be initialized after a call + * to this function. + * + * + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param dir The directory from which to read + * @param maxDist Reads only Points up to this Distance + * @param minDist Reads only Points from this Distance + * @param euler Initital pose estimates (will not be applied to the points + * @param ptss Vector containing the read points + */ +int ScanIO_ply::readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss) +{ + static int fileCounter = start; + string scanFileName; + string poseFileName; + int maxDist2 = (maxDist == -1 ? -1 : sqr(maxDist)); + + int my_fileNr = fileCounter; + + ifstream scan_in, pose_in; + + for (int i=0; i < 6; i++) euler[i] = 0; + + if (end > -1 && fileCounter > end) return -1; // 'nuf read + scanFileName = dir + "scan" + to_string(fileCounter,3) + ".ply"; + scan_in.open(scanFileName.c_str()); + + // read 3D scan + if (!scan_in.good()) return -1; // no more scans to read + + bool binary = false; + char dummy[256]; + char str[20]; // whatever size + double matrix[16]; + int matrixPos = 0; + int nr; + float d1,d2,d3,d4; + sscanf(dummy,"%s %*s %d",str,&nr); + + // header + int counter = -2; + do { + if(counter > -2) counter++; + scan_in.getline(dummy, 255); + if (strncmp(dummy, "format", 6) == 0) { + if (dummy[7] == 'a') binary = false; + else if (dummy[7] == 'b') binary = true; + else { cerr << "Don't recognize the format!" << endl; exit(1); } + } + else if (strncmp(dummy, "element vertex", 14) == 0) { + sscanf(dummy,"%s %*s %d",str,&nr); + counter++; + } + else if (strncmp(dummy, "matrix", 6) == 0) { + sscanf(dummy,"%s %f %f %f %f", str, &d1, &d2, &d3, &d4); + matrix[matrixPos++] = d1; + matrix[matrixPos++] = d2; + matrix[matrixPos++] = d3; + matrix[matrixPos++] = d4; + } + } while (!(strncmp(dummy, "end_header",10) == 0 || !scan_in.good())); + + if (matrixPos > 0) { + double rPosTheta[3]; + double rPos[3]; + Matrix4ToEuler(matrix, rPosTheta, rPos); + } + + for (int i=0; i < nr; i++) { + Point p; + float data, confidence, intensity; + float dummy; + int r, g, b; + if (!binary) { + //scan_in >> p.z >> p.x >> p.y >> r >> g >> b; + switch(counter) { + case 6: + case 12: + scan_in >> p.z >> p.y >> p.x >> r >> g >> b; + break; + case 9: + //scan_in >> p.z >> p.x >> p.y >> dummy >> dummy >> dummy >> r >> g >> b; + scan_in >> p.z >> p.y >> p.x >> dummy >> dummy >> dummy >> r >> g >> b; + break; + default: + scan_in >> p.z >> p.x >> p.y >> confidence >> intensity; + break; + } + if(counter == 6 || counter == 9 || counter == 12) { + p.rgb[0] = (char)r; + p.rgb[1] = (char)g; + p.rgb[2] = (char)b; + } else { + p.reflectance = intensity; + } + } else { + scan_in.read((char*)&data, sizeof(float)); + p.z = (double)data; + scan_in.read((char*)&data, sizeof(float)); + p.x = (double)data; + scan_in.read((char*)&data, sizeof(float)); + p.y = (double)data; + scan_in.read((char*)&confidence, sizeof(float)); + scan_in.read((char*)&intensity, sizeof(float)); + } + + if (maxDist2 == -1 || (int)(sqr(p.x) + sqr(p.y) + sqr(p.z)) < maxDist2) + ptss.push_back(p); + } + + cout << "Processing Scan " << scanFileName; + cout << " @ pose (" << euler[0] << "," << euler[1] << "," << euler[2] + << "," << euler[3] << "," << euler[4] << "," << euler[5] << ")" << endl; + + + scan_in.close(); + scan_in.clear(); + pose_in.close(); + pose_in.clear(); + fileCounter++; + + return my_fileNr; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_ply; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/.svn/pristine/83/83d08297e30c8b5792cc9e3a194b0a907bb44772.svn-base b/.svn/pristine/83/83d08297e30c8b5792cc9e3a194b0a907bb44772.svn-base new file mode 100644 index 0000000..2216373 --- /dev/null +++ b/.svn/pristine/83/83d08297e30c8b5792cc9e3a194b0a907bb44772.svn-base @@ -0,0 +1,170 @@ +//$$ newmatrc.h definition file for row/column classes + +// Copyright (C) 1991,2,3,4,7: R B Davies + +#ifndef NEWMATRC_LIB +#define NEWMATRC_LIB 0 + +#ifdef use_namespace +namespace NEWMAT { +#endif + +#include "controlw.h" + + +/************** classes MatrixRowCol, MatrixRow, MatrixCol *****************/ + +// Used for accessing the rows and columns of matrices +// All matrix classes must provide routines for calculating matrix rows and +// columns. Assume rows can be found very efficiently. + +enum LSF { LoadOnEntry=1,StoreOnExit=2,DirectPart=4,StoreHere=8,HaveStore=16 }; + + +class LoadAndStoreFlag : public ControlWord +{ +public: + LoadAndStoreFlag() {} + LoadAndStoreFlag(int i) : ControlWord(i) {} + LoadAndStoreFlag(LSF lsf) : ControlWord(lsf) {} + LoadAndStoreFlag(const ControlWord& cwx) : ControlWord(cwx) {} +}; + +class MatrixRowCol +// the row or column of a matrix +{ +public: // these are public to avoid + // numerous friend statements + int length; // row or column length + int skip; // initial number of zeros + int storage; // number of stored elements + int rowcol; // row or column number + GeneralMatrix* gm; // pointer to parent matrix + Real* data; // pointer to local storage + LoadAndStoreFlag cw; // Load? Store? Is a Copy? + void IncrMat() { rowcol++; data += storage; } // used by NextRow + void IncrDiag() { rowcol++; skip++; data++; } + void IncrId() { rowcol++; skip++; } + void IncrUT() { rowcol++; data += storage; storage--; skip++; } + void IncrLT() { rowcol++; data += storage; storage++; } + +public: + void Zero(); // set elements to zero + void Add(const MatrixRowCol&); // add a row/col + void AddScaled(const MatrixRowCol&, Real); // add a multiple of a row/col + void Add(const MatrixRowCol&, const MatrixRowCol&); + // add two rows/cols + void Add(const MatrixRowCol&, Real); // add a row/col + void NegAdd(const MatrixRowCol&, Real); // Real - a row/col + void Sub(const MatrixRowCol&); // subtract a row/col + void Sub(const MatrixRowCol&, const MatrixRowCol&); + // sub a row/col from another + void RevSub(const MatrixRowCol&); // subtract from a row/col + void ConCat(const MatrixRowCol&, const MatrixRowCol&); + // concatenate two row/cols + void Multiply(const MatrixRowCol&); // multiply a row/col + void Multiply(const MatrixRowCol&, const MatrixRowCol&); + // multiply two row/cols + void KP(const MatrixRowCol&, const MatrixRowCol&); + // Kronecker Product two row/cols + void Copy(const MatrixRowCol&); // copy a row/col + void CopyCheck(const MatrixRowCol&); // ... check for data loss + void Check(const MatrixRowCol&); // just check for data loss + void Check(); // check full row/col present + void Copy(const Real*&); // copy from an array + void Copy(Real); // copy from constant + void Add(Real); // add a constant + void Multiply(Real); // multiply by constant + Real SumAbsoluteValue(); // sum of absolute values + Real MaximumAbsoluteValue1(Real r, int& i); // maximum of absolute values + Real MinimumAbsoluteValue1(Real r, int& i); // minimum of absolute values + Real Maximum1(Real r, int& i); // maximum + Real Minimum1(Real r, int& i); // minimum + Real Sum(); // sum of values + void Inject(const MatrixRowCol&); // copy stored els of a row/col + void Negate(const MatrixRowCol&); // change sign of a row/col + void Multiply(const MatrixRowCol&, Real); // scale a row/col + friend Real DotProd(const MatrixRowCol&, const MatrixRowCol&); + // sum of pairwise product + Real* Data() { return data; } + int Skip() { return skip; } // number of elements skipped + int Storage() { return storage; } // number of elements stored + int Length() { return length; } // length of row or column + void Skip(int i) { skip=i; } + void Storage(int i) { storage=i; } + void Length(int i) { length=i; } + void SubRowCol(MatrixRowCol&, int, int) const; + // get part of a row or column + MatrixRowCol() {} // to stop warning messages + ~MatrixRowCol(); + FREE_CHECK(MatrixRowCol) +}; + +class MatrixRow : public MatrixRowCol +{ +public: + // bodies for these are inline at the end of this .h file + MatrixRow(GeneralMatrix*, LoadAndStoreFlag, int=0); + // extract a row + ~MatrixRow(); + void Next(); // get next row + FREE_CHECK(MatrixRow) +}; + +class MatrixCol : public MatrixRowCol +{ +public: + // bodies for these are inline at the end of this .h file + MatrixCol(GeneralMatrix*, LoadAndStoreFlag, int=0); + // extract a col + MatrixCol(GeneralMatrix*, Real*, LoadAndStoreFlag, int=0); + // store/retrieve a col + ~MatrixCol(); + void Next(); // get next row + FREE_CHECK(MatrixCol) +}; + +// MatrixColX is an alternative to MatrixCol where the complete +// column is stored externally + +class MatrixColX : public MatrixRowCol +{ +public: + // bodies for these are inline at the end of this .h file + MatrixColX(GeneralMatrix*, Real*, LoadAndStoreFlag, int=0); + // store/retrieve a col + ~MatrixColX(); + void Next(); // get next row + Real* store; // pointer to local storage + // less skip + FREE_CHECK(MatrixColX) +}; + +/**************************** inline bodies ****************************/ + +inline MatrixRow::MatrixRow(GeneralMatrix* gmx, LoadAndStoreFlag cwx, int row) +{ gm=gmx; cw=cwx; rowcol=row; gm->GetRow(*this); } + +inline void MatrixRow::Next() { gm->NextRow(*this); } + +inline MatrixCol::MatrixCol(GeneralMatrix* gmx, LoadAndStoreFlag cwx, int col) +{ gm=gmx; cw=cwx; rowcol=col; gm->GetCol(*this); } + +inline MatrixCol::MatrixCol(GeneralMatrix* gmx, Real* r, + LoadAndStoreFlag cwx, int col) +{ gm=gmx; data=r; cw=cwx+StoreHere; rowcol=col; gm->GetCol(*this); } + +inline MatrixColX::MatrixColX(GeneralMatrix* gmx, Real* r, + LoadAndStoreFlag cwx, int col) +{ gm=gmx; store=data=r; cw=cwx+StoreHere; rowcol=col; gm->GetCol(*this); } + + +inline void MatrixCol::Next() { gm->NextCol(*this); } + +inline void MatrixColX::Next() { gm->NextCol(*this); } + +#ifdef use_namespace +} +#endif + +#endif diff --git a/.svn/pristine/83/83e02dd194de2159c56fa35afd43cd6c2258ef99.svn-base b/.svn/pristine/83/83e02dd194de2159c56fa35afd43cd6c2258ef99.svn-base new file mode 100644 index 0000000..049aefb --- /dev/null +++ b/.svn/pristine/83/83e02dd194de2159c56fa35afd43cd6c2258ef99.svn-base @@ -0,0 +1,178 @@ +/* + * scan_io_uos implementation + * + * Copyright (C) Thomas Escher, Kai Lingemann, Andreas Nuechter + * + * Released under the GPL version 3. + * + */ + + +/** + * @file + * @brief Implementation of reading 3D scans + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Thomas Escher. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "scanio/scan_io_uos.h" + +#include +using std::cout; +using std::cerr; +using std::endl; +#include + +#ifdef _MSC_VER +#include +#endif + +#include +#include +using namespace boost::filesystem; + +#include "slam6d/globals.icc" + + + +#define DATA_PATH_PREFIX "scan" +#define DATA_PATH_SUFFIX ".3d" +#define POSE_PATH_PREFIX "scan" +#define POSE_PATH_SUFFIX ".pose" + + + +std::list ScanIO_uos::readDirectory(const char* dir_path, unsigned int start, unsigned int end) +{ + std::list identifiers; + for(unsigned int i = start; i <= end; ++i) { + // identifier is /d/d/d (000-999) + std::string identifier(to_string(i,3)); + // scan consists of data (.3d) and pose (.pose) files + path data(dir_path); + data /= path(std::string(DATA_PATH_PREFIX) + identifier + DATA_PATH_SUFFIX); + path pose(dir_path); + pose /= path(std::string(POSE_PATH_PREFIX) + identifier + POSE_PATH_SUFFIX); + // stop if part of a scan is missing or end by absence is detected + if(!exists(data) || !exists(pose)) + break; + identifiers.push_back(identifier); + } + return identifiers; +} + +void ScanIO_uos::readPose(const char* dir_path, const char* identifier, double* pose) +{ + unsigned int i; + + path pose_path(dir_path); + pose_path /= path(std::string(POSE_PATH_PREFIX) + identifier + POSE_PATH_SUFFIX); + if(!exists(pose_path)) + throw std::runtime_error(std::string("There is no pose file for [") + identifier + "] in [" + dir_path + "]"); + + // open pose file + ifstream pose_file(pose_path); + + // if the file is open, read contents + if(pose_file.good()) { + // read 6 plain doubles + for(i = 0; i < 6; ++i) pose_file >> pose[i]; + pose_file.close(); + + // convert angles from deg to rad + for(i = 3; i < 6; ++i) pose[i] = rad(pose[i]); + } else { + throw std::runtime_error(std::string("Pose file could not be opened for [") + identifier + "] in [" + dir_path + "]"); + } +} + +bool ScanIO_uos::supports(IODataType type) +{ + return !!(type & (DATA_XYZ)); +} + +void ScanIO_uos::readScan(const char* dir_path, const char* identifier, PointFilter& filter, std::vector* xyz, std::vector* rgb, std::vector* reflectance, std::vector* amplitude, std::vector* type, std::vector* deviation) +{ + unsigned int i; + + // error handling + path data_path(dir_path); + data_path /= path(std::string(DATA_PATH_PREFIX) + identifier + DATA_PATH_SUFFIX); + if(!exists(data_path)) + throw std::runtime_error(std::string("There is no scan file for [") + identifier + "] in [" + dir_path + "]"); + + if(xyz != 0) { + // open data file + ifstream data_file(data_path); + data_file.exceptions(ifstream::eofbit|ifstream::failbit|ifstream::badbit); + + + // aquire header informations + /* OPTIONAL: the header isn't always there, would require a sanity check + unsigned int n, m; + char[3] dummy; + data_file >> n; + for(unsigned int i = 0; i < 3; ++i) data_file >> dummy[i]; + data_file >> m; + values.reserve(n*m*3); + */ + // overread the first line + char dummy[255]; + data_file.getline(dummy, 255); + + // read points + double point[3]; + while(data_file.good()) { + try { + for(i = 0; i < 3; ++i) data_file >> point[i]; + } catch(std::ios_base::failure& e) { + break; + } + + // apply filter and insert point + if(filter.check(point)) { + for(i = 0; i < 3; ++i) xyz->push_back(point[i]); + } + } + data_file.close(); + } +} + + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_uos; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/.svn/pristine/84/840c1559b09cae945e654171b38a06339bf0692b.svn-base b/.svn/pristine/84/840c1559b09cae945e654171b38a06339bf0692b.svn-base new file mode 100644 index 0000000..6359988 --- /dev/null +++ b/.svn/pristine/84/840c1559b09cae945e654171b38a06339bf0692b.svn-base @@ -0,0 +1,79 @@ +readme.txt for wxThings + +block.h/cpp - wxBlockInt is a wxGridSelection type class based on +wxRect2DInt to store selected 2-D rectangular areas. It knows how to +combine with other blocks. wxBlockIntSelection consists of an array +of wxBlockInts. It minimizes them if possible so they never overlap +and can sort them from each corner. + +range.h/cpp - wxRangeInt min/max class for storing a 1-D range of +values and knows how to combine with other wxRangeInts. +wxRangeIntSelection contains an array of wxRangeInts and minimizes them +if possible, they never overlap, and always stay in order from low to +high. wxRangeDbl and wxRangeDblSelection is the same, but for double +valued ranges. + +filebrws.h/cpp & filebrws_icons_wdr.h - wxFileBrowser is an Explorer +type wiget with a tree view of dirs and a list/icon view of files with +optional image preview. Not fully completed, but works. You need wxWidgets +CVS HEAD, >= 2.5. + +geometry.h/cpp - wxCircleInt, wxCircleDouble, wxRay2DDouble, wxRay2DInt +wxEllipseInt, wxEllipseDouble, etc... not fully finished. + +genergdi.h/cpp - wxGenericColour, wxGenericPen. A color and pen that store +the values themselves and have identical functions as wxColour and wxPen. +They do not require a GUI and are suited to instances where you may want to +store a considerable number of different ones. + +optvalue.h/cpp - wxOptionValue class contains a string type and two +arrays of options and values. It works on the same format as the +wxFileConfig class and can load and save to a string/stream. +[opt valuetype] +option1 = value1 +option2 = value2 + +spinctld.h/cpp - wxSpinCtrlDbl is a drop in replacement for a +wxSpinCtrl that uses doubles with extra features such as, ESC sets +'default' value, SPACE sets the control to the last valid value, using +SHIFT,CTRL,ALT work as multipliers for the increment when using the +arrow keys or PgUp/PgDn. It can display in decimal or exponential +format and can 'guess' the number of appropriate digits from the +increment or you can set it yourself. + +toggle.h/cpp - wxCustomButton a toggle type button that can act like a +wxButton, wxBitmapButton, wxToggleButton (w/ image or not). It is a +drop in replacement for each of these controls. It can display the icon +along with the text (on any side) and can create a "greyed" +out image to use when the button is disabled. It can also do weird +things like act like a button on a single click and a toggle on double +click. Note: to differentiate between single and double clicks a timer +is used, if you want it to be just a regular toggle button I suggest +you remove the timer code. + +dropdown.h/cpp - DropDownBase a base class for a combobox type widget. It +manages a wxPopupTransientWindow as a child. See wxBitmapComboBox. + +bmpcombo.h/cpp - wxBitmapComboBox is a wxComboBox widget for bitmaps. You +Append some bitmaps either individually or with an array. Since bitmaps are +refed this should be a fast process and you don't have to keep them around. +It acts just like a wxComboBox otherwise, sends a EVT_COMBOBOX when selections +are made with either the mouse on the pulldown list or by pressing the up/down +arrows. There is a problem in wxGTK when this is used in a modal dialog, the +mouse events do not go to the popup transient window's child and so you cannot +select items, the keys still work though. + +menubtn.h/cpp - wxMenuButton is a button with a label and/or bitmap +and a combobox type dropbown to the right of it. You can attach a menu +to it and the dropdown button shows the menu. If you click on the label +button the next wxITEM_RADIO in the attached menu is selected in a +round robin fashion. If there are no radio items then the label button +does nothing. + +medsort.h - Various Public Domain median finding or sorting +macros, a quick select routine, wirth's kth smallest, torben median, +pixel qsort, and a pixel qsort that sorts two arrays together (only one +is used for the comparison, the other just follows). They can be +DECLARED in headers, DEFINED in you cpp files, or just used inline. +Since they're macros you can set if they're for arrays of doubles, +ints, chars... diff --git a/.svn/pristine/84/8415948404b4aacade4a20864b55a0a0840035a8.svn-base b/.svn/pristine/84/8415948404b4aacade4a20864b55a0a0840035a8.svn-base new file mode 100644 index 0000000..f9ba8b5 --- /dev/null +++ b/.svn/pristine/84/8415948404b4aacade4a20864b55a0a0840035a8.svn-base @@ -0,0 +1,496 @@ +/// \ingroup rbd_common +///@{ + +/// \file myexcept.cpp +/// Exception handler. +/// The low level classes for +/// - my exception class hierarchy +/// - the functions needed for my simulated exceptions +/// - the Tracer mechanism +/// - routines for checking whether new and delete calls are balanced +/// + +// Copyright (C) 1993,4,6: R B Davies + + +#define WANT_STREAM // include.h will get stream fns +#define WANT_STRING + +#include "include.h" // include standard files + + +#include "myexcept.h" // for exception handling + +#ifdef use_namespace +namespace RBD_COMMON { +#endif + + +//#define REG_DEREG // for print out uses of new/delete +//#define CLEAN_LIST // to print entries being added to + // or deleted from cleanup list + +#ifdef SimulateExceptions + +void Throw() +{ + for (Janitor* jan = JumpBase::jl->janitor; jan; jan = jan->NextJanitor) + jan->CleanUp(); + JumpItem* jx = JumpBase::jl->ji; // previous jumpbase; + if ( !jx ) { Terminate(); } // jl was initial JumpItem + JumpBase::jl = jx; // drop down a level; cannot be in front + // of previous line + Tracer::last = JumpBase::jl->trace; + longjmp(JumpBase::jl->env, 1); +} + +#endif // end of simulate exceptions + + +unsigned long BaseException::Select; +char* BaseException::what_error; +int BaseException::SoFar; +int BaseException::LastOne; + +BaseException::BaseException(const char* a_what) +{ + Select++; SoFar = 0; + if (!what_error) // make space for exception message + { + LastOne = 511; + what_error = new char[512]; + if (!what_error) // fail to make space + { + LastOne = 0; + what_error = (char *)"No heap space for exception message\n"; + } + } + AddMessage("\n\nAn exception has been thrown\n"); + AddMessage(a_what); + if (a_what) Tracer::AddTrace(); +} + +void BaseException::AddMessage(const char* a_what) +{ + if (a_what) + { + int l = strlen(a_what); int r = LastOne - SoFar; + if (l < r) { strcpy(what_error+SoFar, a_what); SoFar += l; } + else if (r > 0) + { + strncpy(what_error+SoFar, a_what, r); + what_error[LastOne] = 0; + SoFar = LastOne; + } + } +} + +void BaseException::AddInt(int value) +{ + bool negative; + if (value == 0) { AddMessage("0"); return; } + else if (value < 0) { value = -value; negative = true; } + else negative = false; + int n = 0; int v = value; // how many digits will we need? + while (v > 0) { v /= 10; n++; } + if (negative) n++; + if (LastOne-SoFar < n) { AddMessage("***"); return; } + + SoFar += n; n = SoFar; what_error[n] = 0; + while (value > 0) + { + int nv = value / 10; int rm = value - nv * 10; value = nv; + what_error[--n] = (char)(rm + '0'); + } + if (negative) what_error[--n] = '-'; + return; +} + +void Tracer::PrintTrace() +{ + cout << "\n"; + for (Tracer* et = last; et; et=et->previous) + cout << " * " << et->entry << "\n"; +} + +void Tracer::AddTrace() +{ + if (last) + { + BaseException::AddMessage("Trace: "); + BaseException::AddMessage(last->entry); + for (Tracer* et = last->previous; et; et=et->previous) + { + BaseException::AddMessage("; "); + BaseException::AddMessage(et->entry); + } + BaseException::AddMessage(".\n"); + } +} + +#ifdef SimulateExceptions + + +Janitor::Janitor() +{ + if (do_not_link) + { + do_not_link = false; NextJanitor = 0; OnStack = false; +#ifdef CLEAN_LIST + cout << "Not added to clean-list " << (unsigned long)this << "\n"; +#endif + } + else + { + OnStack = true; +#ifdef CLEAN_LIST + cout << "Add to clean-list " << (unsigned long)this << "\n"; +#endif + NextJanitor = JumpBase::jl->janitor; JumpBase::jl->janitor=this; + } +} + +Janitor::~Janitor() +{ + // expect the item to be deleted to be first on list + // but must be prepared to search list + if (OnStack) + { +#ifdef CLEAN_LIST + cout << "Delete from clean-list " << (unsigned long)this << "\n"; +#endif + Janitor* lastjan = JumpBase::jl->janitor; + if (this == lastjan) JumpBase::jl->janitor = NextJanitor; + else + { + for (Janitor* jan = lastjan->NextJanitor; jan; + jan = lastjan->NextJanitor) + { + if (jan==this) + { lastjan->NextJanitor = jan->NextJanitor; return; } + lastjan=jan; + } + + Throw(BaseException( +"Cannot resolve memory linked list\nSee notes in myexcept.cpp for details\n" + )); + + +// This message occurs when a call to ~Janitor() occurs, apparently +// without a corresponding call to Janitor(). This could happen if my +// way of deciding whether a constructor is being called by new +// fails. + +// It may happen if you are using my simulated exceptions and also have +// your compiler s exceptions turned on. + +// It can also happen if you have a class derived from Janitor +// which does not include a copy constructor [ eg X(const &X) ]. +// Possibly also if delete is applied an object on the stack (ie not +// called by new). Otherwise, it is a bug in myexcept or your compiler. +// If you do not #define TEMPS_DESTROYED_QUICKLY you will get this +// error with Microsoft C 7.0. There are probably situations where +// you will get this when you do define TEMPS_DESTROYED_QUICKLY. This +// is a bug in MSC. Beware of "operator" statements for defining +// conversions; particularly for converting from a Base class to a +// Derived class. + +// You may get away with simply deleting this error message and Throw +// statement if you can not find a better way of overcoming the +// problem. In any case please tell me if you get this error message, +// particularly for compilers apart from Microsoft C 7.0. + + + } + } +} + +JumpItem* JumpBase::jl; // will be set to zero +jmp_buf JumpBase::env; +bool Janitor::do_not_link; // will be set to false + + +int JanitorInitializer::ref_count; + +JanitorInitializer::JanitorInitializer() +{ + if (ref_count++ == 0) new JumpItem; + // need JumpItem at head of list +} + +#endif // end of SimulateExceptions + +Tracer* Tracer::last; // will be set to zero + + +void Terminate() +{ + cout << "\n\nThere has been an exception with no handler - exiting"; + const char* what = BaseException::what(); + if (what) cout << what << "\n"; + exit(1); +} + + + +#ifdef DO_FREE_CHECK +// Routines for tracing whether new and delete calls are balanced + +FreeCheckLink::FreeCheckLink() : next(FreeCheck::next) + { FreeCheck::next = this; } + +FCLClass::FCLClass(void* t, char* name) : ClassName(name) { ClassStore=t; } + +FCLRealArray::FCLRealArray(void* t, char* o, int s) + : Operation(o), size(s) { ClassStore=t; } + +FCLIntArray::FCLIntArray(void* t, char* o, int s) + : Operation(o), size(s) { ClassStore=t; } + +FreeCheckLink* FreeCheck::next; +int FreeCheck::BadDelete; + +void FCLClass::Report() +{ cout << " " << ClassName << " " << (unsigned long)ClassStore << "\n"; } + +void FCLRealArray::Report() +{ + cout << " " << Operation << " " << (unsigned long)ClassStore << + " " << size << "\n"; +} + +void FCLIntArray::Report() +{ + cout << " " << Operation << " " << (unsigned long)ClassStore << + " " << size << "\n"; +} + +void FreeCheck::Register(void* t, char* name) +{ + FCLClass* f = new FCLClass(t,name); + if (!f) { cout << "Out of memory in FreeCheck\n"; exit(1); } +#ifdef REG_DEREG + cout << "Registering " << name << " " << (unsigned long)t << "\n"; +#endif +} + +void FreeCheck::RegisterR(void* t, char* o, int s) +{ + FCLRealArray* f = new FCLRealArray(t,o,s); + if (!f) { cout << "Out of memory in FreeCheck\n"; exit(1); } +#ifdef REG_DEREG + cout << o << " " << s << " " << (unsigned long)t << "\n"; +#endif +} + +void FreeCheck::RegisterI(void* t, char* o, int s) +{ + FCLIntArray* f = new FCLIntArray(t,o,s); + if (!f) { cout << "Out of memory in FreeCheck\n"; exit(1); } +#ifdef REG_DEREG + cout << o << " " << s << " " << (unsigned long)t << "\n"; +#endif +} + +void FreeCheck::DeRegister(void* t, char* name) +{ + FreeCheckLink* last = 0; +#ifdef REG_DEREG + cout << "Deregistering " << name << " " << (unsigned long)t << "\n"; +#endif + for (FreeCheckLink* fcl = next; fcl; fcl = fcl->next) + { + if (fcl->ClassStore==t) + { + if (last) last->next = fcl->next; else next = fcl->next; + delete fcl; return; + } + last = fcl; + } + cout << "\nRequest to delete non-existent object of class and location:\n"; + cout << " " << name << " " << (unsigned long)t << "\n"; + BadDelete++; + Tracer::PrintTrace(); + cout << "\n"; +} + +void FreeCheck::DeRegisterR(void* t, char* o, int s) +{ + FreeCheckLink* last = 0; +#ifdef REG_DEREG + cout << o << " " << s << " " << (unsigned long)t << "\n"; +#endif + for (FreeCheckLink* fcl = next; fcl; fcl = fcl->next) + { + if (fcl->ClassStore==t) + { + if (last) last->next = fcl->next; else next = fcl->next; + if (s >= 0 && ((FCLRealArray*)fcl)->size != s) + { + cout << "\nArray sizes do not agree:\n"; + cout << " " << o << " " << (unsigned long)t + << " " << ((FCLRealArray*)fcl)->size << " " << s << "\n"; + Tracer::PrintTrace(); + cout << "\n"; + } + delete fcl; return; + } + last = fcl; + } + cout << "\nRequest to delete non-existent real array:\n"; + cout << " " << o << " " << (unsigned long)t << " " << s << "\n"; + BadDelete++; + Tracer::PrintTrace(); + cout << "\n"; +} + +void FreeCheck::DeRegisterI(void* t, char* o, int s) +{ + FreeCheckLink* last = 0; +#ifdef REG_DEREG + cout << o << " " << s << " " << (unsigned long)t << "\n"; +#endif + for (FreeCheckLink* fcl = next; fcl; fcl = fcl->next) + { + if (fcl->ClassStore==t) + { + if (last) last->next = fcl->next; else next = fcl->next; + if (s >= 0 && ((FCLIntArray*)fcl)->size != s) + { + cout << "\nArray sizes do not agree:\n"; + cout << " " << o << " " << (unsigned long)t + << " " << ((FCLIntArray*)fcl)->size << " " << s << "\n"; + Tracer::PrintTrace(); + cout << "\n"; + } + delete fcl; return; + } + last = fcl; + } + cout << "\nRequest to delete non-existent int array:\n"; + cout << " " << o << " " << (unsigned long)t << " " << s << "\n"; + BadDelete++; + Tracer::PrintTrace(); + cout << "\n"; +} + +void FreeCheck::Status() +{ + if (next) + { + cout << "\nObjects of the following classes remain undeleted:\n"; + for (FreeCheckLink* fcl = next; fcl; fcl = fcl->next) fcl->Report(); + cout << "\n"; + } + else cout << "\nNo objects remain undeleted\n\n"; + if (BadDelete) + { + cout << "\nThere were " << BadDelete << + " requests to delete non-existent items\n\n"; + } +} + +#endif // end of DO_FREE_CHECK + +// derived exception bodies + +Logic_error::Logic_error(const char* a_what) : BaseException() +{ + Select = BaseException::Select; + AddMessage("Logic error:- "); AddMessage(a_what); + if (a_what) Tracer::AddTrace(); +} + +Runtime_error::Runtime_error(const char* a_what) + : BaseException() +{ + Select = BaseException::Select; + AddMessage("Runtime error:- "); AddMessage(a_what); + if (a_what) Tracer::AddTrace(); +} + +Domain_error::Domain_error(const char* a_what) : Logic_error() +{ + Select = BaseException::Select; + AddMessage("domain error\n"); AddMessage(a_what); + if (a_what) Tracer::AddTrace(); +} + +Invalid_argument::Invalid_argument(const char* a_what) : Logic_error() +{ + Select = BaseException::Select; + AddMessage("invalid argument\n"); AddMessage(a_what); + if (a_what) Tracer::AddTrace(); +} + +Length_error::Length_error(const char* a_what) : Logic_error() +{ + Select = BaseException::Select; + AddMessage("length error\n"); AddMessage(a_what); + if (a_what) Tracer::AddTrace(); +} + +Out_of_range::Out_of_range(const char* a_what) : Logic_error() +{ + Select = BaseException::Select; + AddMessage("out of range\n"); AddMessage(a_what); + if (a_what) Tracer::AddTrace(); +} + +//Bad_cast::Bad_cast(const char* a_what) : Logic_error() +//{ +// Select = BaseException::Select; +// AddMessage("bad cast\n"); AddMessage(a_what); +// if (a_what) Tracer::AddTrace(); +//} + +//Bad_typeid::Bad_typeid(const char* a_what) : Logic_error() +//{ +// Select = BaseException::Select; +// AddMessage("bad type id.\n"); AddMessage(a_what); +// if (a_what) Tracer::AddTrace(); +//} + +Range_error::Range_error(const char* a_what) : Runtime_error() +{ + Select = BaseException::Select; + AddMessage("range error\n"); AddMessage(a_what); + if (a_what) Tracer::AddTrace(); +} + +Overflow_error::Overflow_error(const char* a_what) : Runtime_error() +{ + Select = BaseException::Select; + AddMessage("overflow error\n"); AddMessage(a_what); + if (a_what) Tracer::AddTrace(); +} + +Bad_alloc::Bad_alloc(const char* a_what) : BaseException() +{ + Select = BaseException::Select; + AddMessage("bad allocation\n"); AddMessage(a_what); + if (a_what) Tracer::AddTrace(); +} + + + + +unsigned long Logic_error::Select; +unsigned long Runtime_error::Select; +unsigned long Domain_error::Select; +unsigned long Invalid_argument::Select; +unsigned long Length_error::Select; +unsigned long Out_of_range::Select; +//unsigned long Bad_cast::Select; +//unsigned long Bad_typeid::Select; +unsigned long Range_error::Select; +unsigned long Overflow_error::Select; +unsigned long Bad_alloc::Select; + +#ifdef use_namespace +} +#endif + + +///@} + diff --git a/.svn/pristine/84/84347ebb5cb83ba9ad312475fca5e0329eb5541f.svn-base b/.svn/pristine/84/84347ebb5cb83ba9ad312475fca5e0329eb5541f.svn-base new file mode 100644 index 0000000..5145973 --- /dev/null +++ b/.svn/pristine/84/84347ebb5cb83ba9ad312475fca5e0329eb5541f.svn-base @@ -0,0 +1,61 @@ +/** + * @file HOG-Man wrapper + * @author Jochen Sprickerhof. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __GRAPH_HOGMAN_H__ +#define __GRAPH_HOGMAN_H__ + +#include "graphSlam6D.h" + +class graphHOGMan : public graphSlam6D { + +public: + /** + * Constructor (default) + */ + graphHOGMan() {}; + /** + * Constructor + * + * @param my_icp6Dminimizer Pointer to ICP minimization functor + * @param mdm Maximum PtoP distance to which point pairs are collected for ICP + * @param max_dist_match Maximum PtoP distance to which point pairs are collected for LUM + * @param max_num_iterations Maximal number of iterations for ICP + * @param quiet Suspesses all output to std out + * @param meta Indicates if metascan matching has to be used + * @param rnd Indicates if randomization has to be used + * @param eP Extrapolate odometry? + * @param anim Animate which frames? + * @param epsilonICP Termination criterion for ICP + * @param nns_method Which nearest neigbor search method shall we use + * @param epsilonLUM Termination criterion for LUM + */ + graphHOGMan(icp6Dminimizer *my_icp6Dminimizer, + double mdm = 25.0, + double max_dist_match = 25.0, + int max_num_iterations = 50, + bool quiet = false, + bool meta = false, + int rnd = 1, + bool eP = true, + int anim = -1, + double epsilonICP = 0.0000001, + int nns_method = simpleKD, + double epsilonLUM = 0.5) + : graphSlam6D(my_icp6Dminimizer, + mdm, max_dist_match, + max_num_iterations, quiet, meta, rnd, + eP, anim, epsilonICP, nns_method, epsilonLUM) + { } + + virtual ~graphHOGMan() + { + delete my_icp; + } + + double doGraphSlam6D(Graph gr, vector MetaScan, int nrIt); + +}; + +#endif diff --git a/.svn/pristine/84/84c16b235ce8297a897b522a39bd5da13c1925fe.svn-base b/.svn/pristine/84/84c16b235ce8297a897b522a39bd5da13c1925fe.svn-base new file mode 100644 index 0000000..987c96b --- /dev/null +++ b/.svn/pristine/84/84c16b235ce8297a897b522a39bd5da13c1925fe.svn-base @@ -0,0 +1,100 @@ +0.0902484 -0.207129 -0.419567 0.485743 0.826225 -0.30962 0.694758 0.987088 +-0.410807 -0.465182 -0.836501 0.490184 0.588289 0.656408 0.325807 0.38721 +-0.532226 -0.727036 -0.52506 -0.853508 0.28637 0.938617 -0.864754 0.622397 +-0.408646 -0.522319 0.0388774 -0.893642 0.385806 0.890013 -0.38066 -0.524536 +0.916427 -0.941696 0.219294 -0.971436 -0.706532 0.566439 -0.0591963 0.27756 +0.692452 -0.210879 0.927987 0.587037 0.610211 0.895158 -0.228196 -0.314064 +-0.13253 0.711121 0.605841 0.771335 -0.945103 0.356652 0.00215608 -0.54444 +0.0611156 0.921316 0.245255 0.92896 0.562614 0.160313 -0.457179 -0.432326 +-0.813199 -0.0630237 0.149021 0.0301869 0.669399 0.984082 -0.304983 0.480589 +0.311004 0.515906 -0.667349 -0.464028 -0.554472 0.123471 -0.932191 0.153486 +0.488214 -0.456547 0.695901 -0.693933 -0.775879 -0.940794 0.710796 -0.79388 +-0.73914 -0.733084 0.300943 0.0726274 -0.722715 -0.414562 0.463033 -0.378469 +-0.178166 -0.846243 -0.319029 0.186783 -0.364517 0.915747 -0.300208 -0.599272 +-0.544192 0.173829 -0.0957917 0.889828 0.775796 0.148865 -0.430932 0.0342097 +-0.969596 -0.545995 -0.98045 -0.57569 0.465756 -0.166752 0.622912 -0.580526 +0.0918901 0.635361 -0.934228 -0.0273098 0.65055 0.227406 -0.628807 0.213824 +0.216987 -0.653221 -0.789576 0.6252 0.124467 0.477613 -0.259097 0.913287 +0.587512 0.377176 -0.393846 0.293478 0.275818 -0.298198 0.063539 -0.592623 +0.867649 0.64842 -0.929959 0.677208 -0.302289 -0.230779 0.267189 -0.140577 +-0.360362 0.910053 -0.26718 0.167234 -0.0203549 -0.190717 -0.291433 0.756657 +0.637052 0.538531 0.200832 0.420082 0.688092 0.500134 0.78368 -0.542742 +0.00257324 0.53221 -0.899835 0.503303 -0.46265 0.13425 -0.66756 0.125758 +-0.28673 -0.255891 0.0805643 0.154396 -0.304337 0.942248 0.404729 -0.530016 +0.330364 -0.469459 0.492101 0.923757 -0.0870035 0.114578 -0.321104 0.586945 +0.104922 -0.620678 -0.27497 0.905927 0.219188 -0.495436 -0.762684 0.557364 +-0.665582 -0.75013 -0.249321 0.667873 -0.288485 -0.765806 -0.45304 0.919665 +-0.493835 0.239472 -0.917625 0.418003 0.273087 0.54198 -0.836992 -0.842215 +-0.576808 -0.958153 0.73833 0.0770337 -0.82097 0.0731924 -0.192127 -0.369044 +-0.204979 -0.564608 -0.792166 0.356056 -0.50905 -0.217096 -0.45753 -0.998959 +0.735413 0.347442 -0.644887 0.178 0.935974 -0.630639 -0.624678 0.946812 +0.72101 -0.881322 -0.0914539 0.80997 0.619855 0.299585 -0.0544264 -0.932907 +-0.454196 0.903609 0.216595 -0.515838 0.650697 0.322145 -0.0598022 0.29879 +0.56218 0.548496 0.116056 -0.109011 0.35975 0.375862 -0.473017 0.179013 +0.790441 0.202804 0.370116 -0.299956 -0.789657 0.66881 -0.429629 -0.203547 +0.870951 -0.240769 0.472253 -0.874723 -0.67061 -0.434253 0.661868 -0.515051 +-0.45736 0.0815795 0.924138 0.0979838 -0.00884649 0.0643335 0.803118 -0.542487 +-0.177146 -0.625442 -0.840198 -0.158722 -0.596283 -0.673887 -0.738309 0.439504 +0.186587 -0.465294 0.81993 0.754213 -0.929469 0.5224 -0.567962 -0.0020964 +-0.727445 0.654887 0.237451 -0.81993 0.461061 -0.330429 -0.423304 -0.11565 +-0.638766 -0.623638 0.33871 -0.295169 -0.864833 0.715051 -0.443567 0.530583 +0.81889 0.288548 -0.558678 -0.588774 -0.961246 0.46669 0.585559 0.566684 +-0.336336 0.911721 -0.353767 -0.387489 -0.0397957 -0.544424 0.388611 -0.49438 +0.389995 -0.989308 0.0531768 -0.119235 0.8707 0.190555 -0.829453 -0.0377095 +-0.754985 0.722122 -0.486071 -0.0543854 -0.00514588 -0.0407811 -0.923871 0.768664 +-0.257839 -0.963332 0.27127 0.90108 0.2946 0.295975 0.133463 -0.203565 +0.128047 -0.0221978 0.565967 0.441817 -0.885341 -0.294394 0.752 0.655274 +0.455767 -0.659883 0.40248 0.600338 -0.83844 -0.844635 -0.436961 -0.694439 +0.494475 -0.85312 -0.703241 -0.0320226 -0.0312604 -0.804464 -0.967423 0.134369 +-0.823558 0.72077 0.692424 -0.331696 0.28281 0.956438 -0.512021 0.343271 +-0.120567 0.85007 -0.634148 0.479445 0.999095 -0.362764 -0.547786 0.0405272 +-0.759062 -0.595061 0.891393 -0.772615 0.699682 0.433783 0.496053 0.989183 +-0.830714 0.673363 -0.774558 -0.428386 -0.163786 -0.576139 0.870208 -0.403316 +-0.358526 -0.816022 -0.40667 0.888208 0.0927729 0.567724 -0.993948 -0.315037 +0.173889 0.324026 0.971654 0.445513 -0.836598 -0.335657 -0.193173 0.544429 +-0.383334 0.0514736 -0.667312 -0.650427 -0.173149 -0.785155 -0.427284 -0.773588 +-0.942451 -0.429928 -0.296064 0.478439 -0.21067 -0.583727 -0.172756 -0.867286 +0.0722371 0.969577 -0.667728 -0.673244 0.975295 -0.468511 0.283715 -0.838649 +-0.135551 0.0966441 -0.899046 -0.107455 -0.233247 -0.784231 -0.273956 -0.735285 +-0.0414323 0.633082 0.756714 -0.941008 0.7334 -0.558333 0.515249 -0.0495845 +0.151553 0.897797 0.535985 -0.435869 0.276652 0.950385 -0.588415 -0.908762 +0.836871 -0.309154 0.542942 -0.555574 0.296423 -0.852823 0.0586046 0.907905 +-0.037232 -0.50382 0.828129 0.852639 -0.187631 0.110954 -0.520551 0.2231 +-0.669727 -0.670437 -0.395765 0.938759 -0.71912 -0.299401 -0.857412 0.136054 +-0.426925 -0.323029 0.847521 -0.768077 -0.737279 -0.73427 0.409976 -0.424011 +-0.485806 -0.842531 0.425504 0.928987 0.885911 0.193509 -0.786534 -0.0521742 +0.477176 0.948246 -0.81151 -0.461006 0.140611 -0.0403634 0.904953 0.527849 +0.278327 -0.960566 -0.745472 0.449632 -0.221733 -0.67303 0.0901394 -0.365342 +0.350109 0.412389 0.22772 -0.743153 0.374894 -0.674853 -0.940435 0.284267 +0.0780486 0.00241877 -0.793647 -0.801883 -0.931572 -0.906159 -0.325908 0.129096 +0.251037 -0.32573 -0.0132674 0.16178 -0.391019 0.541115 0.186404 0.804935 +-0.457725 0.0676978 -0.679403 -0.287371 -0.0475436 -0.433919 -0.777655 -0.648854 +-0.0915583 -0.911684 -0.450737 0.330562 0.51434 -0.989688 -0.394102 0.621241 +-0.475504 -0.0645391 0.836504 0.636607 -0.294769 0.747648 -0.23722 0.750184 +-0.767895 -0.446372 0.758335 -0.407514 -0.304965 0.551426 0.467747 0.962403 +-0.550376 0.261992 0.65622 -0.274081 0.87838 0.931551 -0.329732 0.0551602 +0.911471 0.324545 0.0503461 -0.796273 0.150228 0.760694 -0.428716 -0.677338 +0.320243 0.908401 -0.406211 -0.0914938 -0.0383119 0.971036 -0.996626 -0.420682 +-0.632748 0.159697 0.350173 0.188661 -0.463423 -0.79209 -0.321071 -0.849934 +-0.493952 0.59222 -0.239915 0.0675535 -0.209439 -0.896104 0.215966 -0.804748 +0.470257 -0.814033 0.0936659 -0.279521 0.631632 -0.00510561 -0.694679 -0.554847 +0.0193325 -0.515019 -0.502347 -0.0691725 0.0823693 0.218677 0.484909 0.230698 +0.411173 -0.360974 -0.0687193 0.982974 -0.62282 -0.808528 0.391168 0.509953 +-0.123533 0.573365 0.918135 -0.570049 0.0766659 0.916687 -0.189227 0.105294 +-0.436078 0.565401 0.107861 -0.321394 -0.681098 0.372357 -0.911342 -0.836162 +0.20572 0.550261 -0.578777 -0.236365 -0.582914 0.473617 -0.745445 -0.401362 +-0.268776 -0.00963149 -0.870677 -0.315329 -0.327188 0.571639 -0.922104 -0.889744 +-0.653846 0.42571 0.484338 0.786735 -0.924095 -0.777902 0.424617 -0.11099 +0.314249 -0.488492 -0.09607 -0.285476 -0.257726 -0.803911 -0.806167 0.4756 +-0.41036 -0.669857 -0.36997 0.551767 -0.906633 0.189437 -0.684472 -0.449454 +-0.813612 -0.0906479 0.286132 0.680878 0.675851 0.0646878 -0.2403 -0.310925 +-0.685114 0.0677462 -0.95481 -0.179017 0.857301 -0.87579 -0.329674 0.562246 +0.0735071 -0.575949 0.50454 -0.686882 -0.0657996 0.874931 0.927272 -0.333088 +-0.245092 -0.109308 -0.713837 -0.613438 -0.0236157 0.140357 -0.512282 -0.518118 +0.184375 -0.865972 0.707001 -0.612003 0.67617 -0.709794 -0.885369 0.826005 +-0.157901 0.836454 0.245372 0.589479 -0.930075 0.106183 0.420879 -0.510301 +-0.466877 -0.115361 -0.736242 0.493482 -0.785855 -0.55306 0.617798 -0.904856 +-0.830296 0.557992 -0.204564 -0.500123 0.153565 -0.773108 0.287265 0.823092 +0.986858 -0.323913 -0.914362 0.535652 -0.535098 -0.945814 0.974316 0.434805 +0.732686 0.221111 0.559403 0.584674 -0.447866 0.508206 0.907212 -0.782827 +-0.970814 -0.13434 -0.550199 0.523038 -0.373701 -0.359454 0.0321578 0.840907 diff --git a/.svn/pristine/85/852e6ab36a912b023a1364f938bdae6092d74fd6.svn-base b/.svn/pristine/85/852e6ab36a912b023a1364f938bdae6092d74fd6.svn-base new file mode 100644 index 0000000..3e3d545 --- /dev/null +++ b/.svn/pristine/85/852e6ab36a912b023a1364f938bdae6092d74fd6.svn-base @@ -0,0 +1,168 @@ +/** + * @file util.cc + * + * @auhtor Remus Claudiu Dumitru + * @date 13 Feb 2012 + * + */ + +//============================================================================== +// Includes +//============================================================================== +#include "model/util.h" + +#include // stat() +#include +#include + +#include +using namespace std; + +//============================================================================== +// Implementation +//============================================================================== +bool model::sameSide(const Point3d& p1, + const Point3d& p2, const Point3d& a, const Point3d& b) +{ + // compute the required vectors + Vector3d ba; + ba.x = b.x - a.x; + ba.y = b.y - a.y; + ba.z = b.z - a.z; + + Vector3d p1a; + p1a.x = p1.x - a.x; + p1a.y = p1.y - a.y; + p1a.z = p1.z - a.z; + + Vector3d p2a; + p2a.x = p2.x - a.x; + p2a.y = p2.y - a.y; + p2a.z = p2.z - a.z; + + // do the cross products + Vector3d cp1 = ba.crossProduct(p1a); + Vector3d cp2 = ba.crossProduct(p2a); + + // compute the dotproduct + double dotProduct = cp1.x * cp2.x + cp1.y * cp2.y + cp1.z * cp2.z; + + if (dotProduct >= 0) { + return true; + } + else { + return false; + } +} + +bool model::insideHull(const Point3d& pt, const vector& hull) { + if (hull.size() <= 0) { + throw runtime_error("hull cannot be empty"); + } + + Point3d center(0.0, 0.0, 0.0); + + for (unsigned int i = 0; i < hull.size(); ++i) { + center.x += hull[i].x; + center.y += hull[i].y; + center.z += hull[i].z; + } + center = center / hull.size(); + + for (unsigned int i = 0; i < hull.size() - 1; ++i) { + if (sameSide(pt, center, hull[i], hull[i+1]) && + sameSide(pt, hull[i], center, hull[i+1]) && + sameSide(pt, hull[i+1], center, hull[i])) + { + return true; + } + } + + if (sameSide(pt, center, hull[hull.size()-1], hull[0]) && + sameSide(pt, hull[hull.size()-1], center, hull[0]) && + sameSide(pt, hull[0], center, hull[hull.size()-1])) + { + return true; + } + + return false; +} + +vector model::getHorizontalConvexHull(vector points) { + if (points.size() <= 3) { + return points; + } + + vector hull; + vector::iterator leftmostIt = points.begin(); + + // compute the lefmost point + for (vector::iterator it = points.begin() + 1; + it != points.end(); ++it) + { + if (it->x < leftmostIt->x) { + leftmostIt = it; + } + } + + Point3d pointOnHull = *leftmostIt; + Point3d endPoint; + + do { + // add the candidate point to the hull + hull.push_back(pointOnHull); + endPoint = points[0]; + + for (unsigned int j = 1; j < points.size(); ++j) { + // define dummy points in the XOZ plane + Point3d fakeCurPt(points[j].x, 0.0, points[j].z); + Point3d fakePointOnHull(pointOnHull.x, 0.0, pointOnHull.z); + Point3d fakeEndPoint(endPoint.x, 0.0, endPoint.z); + + // define a point to the left of the line + Point3d farLeft = fakeEndPoint; + farLeft.rotate(pointOnHull, Rotation3d(0.0, -M_PI/6, 0.0)); + + // if ... or points[j] on the left side of line (pointOnHull, endPoint) + if (pointOnHull != points[j] && + (endPoint == pointOnHull || sameSide(fakeCurPt, farLeft, fakePointOnHull, fakeEndPoint))) + { + endPoint = points[j]; + } + } + + pointOnHull = endPoint; + + } while (endPoint != hull[0]); + + return hull; +} + +bool model::fileExists(const string& fileName) { + struct stat buffer ; + if (stat(fileName.c_str(), &buffer)) return false; // ret 0 for found + return true; +} + +bool model::fileIsDir(const string& fileName) { + struct stat buffer; + int status = stat(fileName.c_str(), &buffer); + + if (status != 0 || S_ISREG(buffer.st_mode)) { + return false; + } + + if (S_ISDIR(buffer.st_mode)) { + return true; + } + + return false; +} + +bool model::makeDir(const string& path) { + if (fileExists(path) && fileIsDir(path)) { + return true; + } + + return (mkdir(path.c_str(), S_IRWXU | S_IRWXG | S_IRWXO) == 0 ? true : false); +} diff --git a/.svn/pristine/85/8558b059f349f14fc583f6af2ef10c56bd455dee.svn-base b/.svn/pristine/85/8558b059f349f14fc583f6af2ef10c56bd455dee.svn-base new file mode 100644 index 0000000..cd0b3fa --- /dev/null +++ b/.svn/pristine/85/8558b059f349f14fc583f6af2ef10c56bd455dee.svn-base @@ -0,0 +1,234 @@ +/* + * feature_mathcer implementation + * + * Copyright (C) HamidReza Houshiar + * + * Released under the GPL version 3. + * + */ + +#include "slam6d/fbr/feature_matcher.h" + +using namespace std; + +namespace fbr{ + + void feature_matcher::init(matcher_method method, int k, double r){ + mMethod = method; + knn = k; + radius = r; + nOfMatches = 0; + nOfFilteredMatches = 0; + } + + feature_matcher::feature_matcher(){ + init(RATIO, 0, 0); + } + + feature_matcher::feature_matcher(matcher_method method){ + if(method == KNN) + init(method, 3, 0); + else if(method == RADIUS) + init(method, 0, 1); + else + init(method, 0, 0); + } + + feature_matcher::feature_matcher(matcher_method method, double p){ + if(method == KNN) + init(method, p, 0); + else if(method == RADIUS) + init(method, 0, p); + else + init(method, 0, 0); + } + + void feature_matcher::match(feature qFeature, feature tFeature){ + vector< cv::DMatch > qtInitialMatches, tqInitialMatches, gMatches; + vector > qtInitialMatchesVector, tqInitialMatchesVector; + //Matching descriptors using one of the mMethods for SURF and SIFT feature descriptors + if(qFeature.getDescriptorMethod() != tFeature.getDescriptorMethod()){ + cout<<"inputs features don't have the same descriptors!"< readDirectory(const char* dir_path, unsigned int start, unsigned int end); + virtual void readPose(const char* dir_path, const char* identifier, double* pose); + virtual void readScan(const char* dir_path, const char* identifier, PointFilter& filter, std::vector* xyz, std::vector* rgb, std::vector* reflectance, std::vector* amplitude, std::vector* type, std::vector* deviation); + virtual bool supports(IODataType type); +}; + +#endif diff --git a/.svn/pristine/86/8624bcdae55baeef00cd11d5dfcfa60f68710a02.svn-base b/.svn/pristine/86/8624bcdae55baeef00cd11d5dfcfa60f68710a02.svn-base new file mode 100644 index 0000000..94a9ed0 --- /dev/null +++ b/.svn/pristine/86/8624bcdae55baeef00cd11d5dfcfa60f68710a02.svn-base @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/.svn/pristine/86/86416cb4a44f147bc3eae8019b1c027d1ba7397b.svn-base b/.svn/pristine/86/86416cb4a44f147bc3eae8019b1c027d1ba7397b.svn-base new file mode 100644 index 0000000..2b898b5 --- /dev/null +++ b/.svn/pristine/86/86416cb4a44f147bc3eae8019b1c027d1ba7397b.svn-base @@ -0,0 +1,200 @@ +/* + * scanmanager implementation + * + * Copyright (C) Uwe Hebbelmann, Sebastian Stock, Andre Schemschat + * + * Released under the GPL version 3. + * + */ + +#include "grid/scanmanager.h" +#include +#include "slam6d/globals.icc" +#include +using std::exception; +#include +using std::ifstream; +#include +using std::cerr; +using std::endl; + +/** + * Ctor. + * Does nothing + */ +scanmanager::scanmanager() +{ +} + +/** + * DTor. + * Clear the memory + */ +scanmanager::~scanmanager() +{ + // Deleting the stored metamatrixes + for (size_t i = 0; i < metaMatrix.size(); i++) { + for (size_t j = 0; j < metaMatrix.at(i).size(); j++) { + delete[] metaMatrix.at(i).at(j); + } + } + + // Deleting the stored scans and reset the vector + for(size_t i=0; i < Scan::allScans.size(); ++i) + { + delete Scan::allScans[i]; + } + + Scan::allScans.clear(); +} + +/* + * A function that read the .frame files created by slam6D + * (taken from the originial test-class) + * + * @param dir the directory + * @param start starting at scan number 'start' + * @param end stopping at scan number 'end' + * @param readInitial read a file containing a initial transformation matrix and apply it + * @param correctYAxis if set, value 14 of the transformationmatrix will be set to 0 + */ +void scanmanager::readFrames(string dir, int start, int end, + bool readInitial, bool correctYAxis) +{ + + // convert to OpenGL coordinate system + double mirror[16]; + M4identity(mirror); + mirror[10] = -1.0; + + double initialTransform[16]; + if (readInitial) { + cout << "Initial Transform:" << endl; + string initialTransformFileName = dir + "initital.frame"; + ifstream initial_in(initialTransformFileName.c_str()); + if (!initial_in.good()) { + cout << "Error opening " << initialTransformFileName << endl; + exit(-1); + } + initial_in >> initialTransform; + cout << initialTransform << endl; + + // update the mirror to apply the initial frame for all frames + double tempxf[16]; + MMult(mirror, initialTransform, tempxf); + memcpy(mirror, tempxf, sizeof(tempxf)); + } + + for(std::vector::iterator it = Scan::allScans.begin(); it != Scan::allScans.end(); ++it) { + const double* transformation; + Scan::AlgoType algoType; + std::vector Matrices; + + // iterate over frames (stop if none were created) and pull/convert the frames into local containers + unsigned int frame_count = (*it)->readFrames(); + if(frame_count == 0) break; + for(unsigned int i = 0; i < frame_count; ++i) { + (*it)->getFrame(i, transformation, algoType); + double* transMatOpenGL = new double[16]; + + // apply mirror to convert (and initial frame if requested) the frame and save in opengl + MMult(mirror, transformation, transMatOpenGL); + + Matrices.push_back(transMatOpenGL); + } + + metaMatrix.push_back(Matrices); + + // current_frame = MetaMatrix.back().size() - 1; + } + + if (metaMatrix.size() == 0) { + cerr << "*****************************************" << endl; + cerr << "** ERROR: No .frames could be found! **" << endl; + cerr << "*****************************************" << endl; + cerr << " ERROR: Missing or empty directory: " << dir << endl << endl; + return; + } + + // if set, value 14 of the transformationmatrix will be set to 0 + if(correctYAxis) + { + for(size_t i=0; i < metaMatrix.size(); ++i) + { + for(size_t j=0; j < metaMatrix.at(i).size(); ++j) + { + metaMatrix.at(i).at(j)[13] = 0; + } + } + } +} + +/** + * Reads all scans, frames and the transformationmatrix + * + * @param inputDir the input directory + * @param outputdir the output directory + * @param scantype the scantype + * @param start start with scannumber 'start' + * @param end end with scannumber 'end' + * @param readInitial read files, that contain a 'initial transformation matrix' + * @param max_distance the maximal distance + * @param min_distance the minimal distance + * @param correctYAxis if set, value 14 of the transformationmatrix will be set to 0 + */ +void scanmanager::startscan(string inputdir, string outputdir, + IOType scantype, int start, int end, + bool readInitial, int max_distance, + int min_distance, bool correctYAxis) +{ + // Read scans + + // load all available scans + bool scanserver = false; + Scan::openDirectory(scanserver, inputdir, scantype, start, end); + + if(Scan::allScans.size() == 0) { + cerr << "No scans found. Did you use the correct format?" << endl; + exit(-1); + + } + + // Read frames + readFrames(inputdir, start, end, readInitial, correctYAxis); +} + +/** + * Returns the number of scans + * + * @return the number of scans + */ +size_t scanmanager::getScanCount() const +{ + return Scan::allScans.size(); +} + +/** + * Returns scan with the number i + * + * @param i number of the scan + * @return scan with number i + */ +Scan& scanmanager::getScan(int i) +{ + return *Scan::allScans.at(i); +} + +/** + * Returns the transformationmatrix with number i. + * + * The original readFrames method always read one matrix more + * than needed, but it complicated freeing memory and wasnt used in + * this programm, so it was commented out. + * + * @param i the number of the transformationmatrix + * @return transformationmatrix with number i + */ +const std::vector & scanmanager::getMatrix(int i) +{ + return this->metaMatrix.at(i); +} diff --git a/.svn/pristine/86/8697e37da110f277db5ce8ce83f48c15d28fbc67.svn-base b/.svn/pristine/86/8697e37da110f277db5ce8ce83f48c15d28fbc67.svn-base new file mode 100644 index 0000000..dbc51b6 --- /dev/null +++ b/.svn/pristine/86/8697e37da110f277db5ce8ce83f48c15d28fbc67.svn-base @@ -0,0 +1,120 @@ +/** @file + * @brief Representation of the optimized k-d tree. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Thomas Escher + */ + +#ifndef __KD_MANAGED_H__ +#define __KD_MANAGED_H__ + +#include "slam6d/kdparams.h" +#include "slam6d/searchTree.h" +#include "slam6d/data_types.h" + +#ifdef _MSC_VER +#if !defined _OPENMP && defined OPENMP +#define _OPENMP +#endif +#endif + +#ifdef _OPENMP +#include +#endif + +#include +#include + +/** + * @brief The optimized k-d tree. + * + * A kD tree for points, with limited + * capabilities (find nearest point to + * a given point, or to a ray). + **/ +class KDtreeManagedBase : public SearchTree { +public: + KDtreeManagedBase(const DataXYZ& pts, unsigned int* indices, unsigned int n); + + virtual ~KDtreeManagedBase(); + + virtual double *FindClosest(double *_p, double maxdist2, int threadNum = 0) const { return 0; } + +protected: + /** + * storing the parameters of the k-d tree, i.e., the current closest point, + * the distance to the current closest point and the point itself. + * These global variable are needed in this search. + * + * Padded in the parallel case. + */ +#ifdef _OPENMP +#ifdef __INTEL_COMPILER + __declspec (align(16)) static KDParams params[MAX_OPENMP_NUM_THREADS]; +#else + static KDParams params[MAX_OPENMP_NUM_THREADS]; +#endif //__INTEL_COMPILER +#else + static KDParams params[MAX_OPENMP_NUM_THREADS]; +#endif + + /** + * number of points. If this is 0: intermediate node. If nonzero: leaf. + */ + int npts; + + /** + * Cue the standard rant about anon unions but not structs in C++ + */ + union { + /** + * in case of internal node... + */ + struct { + double center[3]; ///< storing the center of the voxel (R^3) + double dx, ///< defining the voxel itself + dy, ///< defining the voxel itself + dz, ///< defining the voxel itself + r2; ///< defining the voxel itself + int splitaxis; ///< defining the kind of splitaxis + KDtreeManagedBase *child1; ///< pointers to the childs + KDtreeManagedBase *child2; ///< pointers to the childs + } node; + /** + * in case of leaf node ... + */ + struct { + //! Content is an array of indices to be put into the dynamically aquired data array + unsigned int* p; + } leaf; + }; + + void _FindClosest(const DataXYZ& pts, int threadNum) const; +}; + +class Scan; + +class KDtreeManaged : public KDtreeManagedBase { +public: + KDtreeManaged(Scan* scan); + virtual ~KDtreeManaged() {} + + virtual void lock(); + virtual void unlock(); + + //! Aquires cached data first to pass on to the usual KDtree to process + virtual double* FindClosest(double *_p, double maxdist2, int threadNum = 0) const; +private: + Scan* m_scan; + DataXYZ* m_data; + + //! Mutex for safely reducing points just once in a multithreaded environment + boost::mutex m_mutex_locking; + volatile unsigned int m_count_locking; + + // constructor initializer list hacks + unsigned int* m_temp_indices; + unsigned int* prepareTempIndices(unsigned int n); +}; + +#endif diff --git a/.svn/pristine/86/86de319285434dc2815d2a06484ac4f0148fc498.svn-base b/.svn/pristine/86/86de319285434dc2815d2a06484ac4f0148fc498.svn-base new file mode 100644 index 0000000..47a1fda --- /dev/null +++ b/.svn/pristine/86/86de319285434dc2815d2a06484ac4f0148fc498.svn-base @@ -0,0 +1,262 @@ +/* + * icp6Dsvd implementation + * + * Copyright (C) Kai Lingemann, Andreas Nuechter + * + * Released under the GPL version 3. + * + */ + +/** @file + * @brief Implementation of the ICP error function minimization via SVD + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "slam6d/icp6Dsvd.h" + +#include "slam6d/globals.icc" +#include +using std::ios; +using std::resetiosflags; +using std::setiosflags; + +#include "newmat/newmat.h" +#include "newmat/newmatap.h" +using namespace NEWMAT; + +/** + * computes the rotation matrix consisting + * of a rotation and translation that + * minimizes the root-mean-square error of the + * point pairs using the SVD PARAMETERS + * vector of point pairs, rotation matrix + * @param pairs Vector of point pairs (pairs of corresponding points) + * @param *alignfx The resulting transformation matrix + * @return Error estimation of the matching (rms) +*/ +double icp6D_SVD::Point_Point_Align(const vector& pairs, double *alignfx, + const double centroid_m[3], const double centroid_d[3]) +{ + double error = 0; + double sum = 0.0; + + // Get centered PtPairs + double** m = new double*[pairs.size()]; + double** d = new double*[pairs.size()]; + + for(unsigned int i = 0; i < pairs.size(); i++){ + m[i] = new double[3]; + d[i] = new double[3]; + m[i][0] = pairs[i].p1.x - centroid_m[0]; + m[i][1] = pairs[i].p1.y - centroid_m[1]; + m[i][2] = pairs[i].p1.z - centroid_m[2]; + d[i][0] = pairs[i].p2.x - centroid_d[0]; + d[i][1] = pairs[i].p2.y - centroid_d[1]; + d[i][2] = pairs[i].p2.z - centroid_d[2]; + + sum += sqr(pairs[i].p1.x - pairs[i].p2.x) + + sqr(pairs[i].p1.y - pairs[i].p2.y) + + sqr(pairs[i].p1.z - pairs[i].p2.z) ; + + } + + error = sqrt(sum / (double)pairs.size()); + + if (!quiet) { + cout.setf(ios::basefield); + cout << "SVD RMS point-to-point error = " + << resetiosflags(ios::adjustfield) << setiosflags(ios::internal) + << resetiosflags(ios::floatfield) << setiosflags(ios::fixed) + << std::setw(10) << std::setprecision(7) + << error + << " using " << std::setw(6) << (int)pairs.size() << " points" << endl; + } + + // Fill H matrix + Matrix H(3,3), R(3,3); + for(int j = 0; j < 3; j++){ + for(int k = 0; k < 3; k++){ + H(j+1, k+1) = 0.0; + } + } + + for(unsigned int i = 0; i < pairs.size(); i++){ + for(int j = 0; j < 3; j++){ + for(int k = 0; k < 3; k++){ + H(j+1, k+1) += d[i][j]*m[i][k]; + } + } + } + + Matrix U(3,3); + DiagonalMatrix Lamda(3); + Matrix V(3,3); + // Make SVD + SVD(H, Lamda, U, V); + + // Get rotation + R = V*(U.t()); + + // Calculate translation + double translation[3]; + ColumnVector col_vec(3); + for(int j = 0; j < 3; j++) + col_vec(j+1) = centroid_d[j]; + ColumnVector r_time_colVec = ColumnVector(R*col_vec); + translation[0] = centroid_m[0] - r_time_colVec(1); + translation[1] = centroid_m[1] - r_time_colVec(2); + translation[2] = centroid_m[2] - r_time_colVec(3); + + + // Fill result + alignfx[0] = R(1,1); + alignfx[1] = R(2,1); + alignfx[2] = 0; + alignfx[2] = R(3,1); + alignfx[3] = 0; + alignfx[4] = R(1,2); + alignfx[5] = R(2,2); + alignfx[6] = R(3,2); + alignfx[7] = 0; + alignfx[8] = R(1,3); + alignfx[9] = R(2,3); + alignfx[10] = R(3,3); + alignfx[11] = 0; + alignfx[12] = translation[0]; + alignfx[13] = translation[1]; + alignfx[14] = translation[2]; + + alignfx[15] = 1; + + + for(unsigned int i = 0; i < pairs.size(); i++){ + delete [] m[i]; + delete [] d[i]; + } + delete [] m; + delete [] d; + + return error; +} + +/** + * computes the rotation matrix consisting + * of a rotation and translation that + * minimizes the root-mean-square error of the + * point pairs using the SVD PARAMETERS + * vector of point pairs, rotation matrix + * @param pairs Vector of point pairs (pairs of corresponding points) + * @param *alignfx The resulting transformation matrix + * @return Error estimation of the matching (rms) +*/ +double icp6D_SVD::Point_Point_Align_Parallel(const int openmp_num_threads, + const unsigned int n[OPENMP_NUM_THREADS], + const double sum[OPENMP_NUM_THREADS], + const double centroid_m[OPENMP_NUM_THREADS][3], + const double centroid_d[OPENMP_NUM_THREADS][3], + const double Si[OPENMP_NUM_THREADS][9], double *alignxf) +{ + double s = 0.0; + double ret; + unsigned int pairs_size = 0; + double cm[3] = {0.0, 0.0, 0.0}; // centroid m + double cd[3] = {0.0, 0.0, 0.0}; // centroid d + + // Implementation according to the paper + // "The Parallel Iterative Closest Point Algorithm" + // by Langis / Greenspan / Godin, IEEE 3DIM 2001 + // formula (4) + // + // The same information are given in (ecrm2007.pdf) + // Andreas N眉chter. Parallelization of Scan Matching + // for Robotic 3D Mapping. In Proceedings of the 3rd + // European Conference on Mobile Robots (ECMR '07), + // Freiburg, Germany, September 2007 + for (int i = 0; i < openmp_num_threads; i++) { + s += sum[i]; + pairs_size += n[i]; + cm[0] += n[i] * centroid_m[i][0]; + cm[1] += n[i] * centroid_m[i][1]; + cm[2] += n[i] * centroid_m[i][2]; + cd[0] += n[i] * centroid_d[i][0]; + cd[1] += n[i] * centroid_d[i][1]; + cd[2] += n[i] * centroid_d[i][2]; + } + cm[0] /= pairs_size; + cm[1] /= pairs_size; + cm[2] /= pairs_size; + cd[0] /= pairs_size; + cd[1] /= pairs_size; + cd[2] /= pairs_size; + + ret = sqrt(s / (double)pairs_size); + if (!quiet) { + cout.setf(ios::basefield); + cout << "PSVD RMS point-to-point error = " + << resetiosflags(ios::adjustfield) << setiosflags(ios::internal) + << resetiosflags(ios::floatfield) << setiosflags(ios::fixed) + << std::setw(10) << std::setprecision(7) + << ret + << " using " << std::setw(6) << pairs_size << " points" << endl; + } + + Matrix H(3,3), R(3,3); + for(int j = 0; j < 3; j++){ + for(int k = 0; k < 3; k++){ + H(j+1, k+1) = 0.0; + } + } + // formula (5) + for (int i = 0; i < openmp_num_threads; i++) { + for(int j = 0; j < 3; j++){ + for(int k = 0; k < 3; k++){ + // H(j+1, k+1) += Si[i][j*3+k] + n[i] * ((centroid_m[i][j] - cm[j]) * (centroid_d[i][k] - cd[k])) ; + H(j+1, k+1) += Si[i][k*3+j] + n[i] * ((centroid_d[i][j] - cd[j]) * (centroid_m[i][k] - cm[k])) ; + } + } + } + + Matrix U(3,3); + DiagonalMatrix Lamda(3); + Matrix V(3,3); + // Make SVD + SVD(H, Lamda, U, V); + + // Get rotation + R = V*(U.t()); + + // Calculate translation + double translation[3]; + ColumnVector col_vec(3); + for(int j = 0; j < 3; j++) { + col_vec(j+1) = cd[j]; + } + ColumnVector r_time_colVec = ColumnVector(R * col_vec); + translation[0] = cm[0] - r_time_colVec(1); + translation[1] = cm[1] - r_time_colVec(2); + translation[2] = cm[2] - r_time_colVec(3); + + // Fill result + alignxf[0] = R(1,1); + alignxf[1] = R(2,1); + alignxf[2] = 0; + alignxf[2] = R(3,1); + alignxf[3] = 0; + alignxf[4] = R(1,2); + alignxf[5] = R(2,2); + alignxf[6] = R(3,2); + alignxf[7] = 0; + alignxf[8] = R(1,3); + alignxf[9] = R(2,3); + alignxf[10] = R(3,3); + alignxf[11] = 0; + alignxf[12] = translation[0]; + alignxf[13] = translation[1]; + alignxf[14] = translation[2]; + + alignxf[15] = 1; + + return ret; + +} diff --git a/.svn/pristine/87/87a0ae7dde1ba1b9e27d07623c75e1adde332386.svn-base b/.svn/pristine/87/87a0ae7dde1ba1b9e27d07623c75e1adde332386.svn-base new file mode 100644 index 0000000..be22108 --- /dev/null +++ b/.svn/pristine/87/87a0ae7dde1ba1b9e27d07623c75e1adde332386.svn-base @@ -0,0 +1,1749 @@ +/* + * thermo implementation + * + * Copyright (C) Dorit Borrmann + * + * Released under the GPL version 3. + * + */ + +#include +#include "thermo/thermo.h" +#include "newmat/newmatap.h" +using namespace NEWMAT; + +#include "cvblob.h" +using namespace cvb; + +#include + +#ifndef _MSC_VER +#include +#include +#else +#include "XGetopt.h" +#define strcasecmp _stricmp +#define strncasecmp _strnicmp +#include +#include +#endif + +#ifdef _EiC +#define WIN32 +#endif + +Float2D data1; +Float2D data2; + +unsigned int BLOB_SIZE = 55; +double AVG_THRES = 0.8; + +/** + * Calculates the PCA of a two-dimensional point cloud + * @param x x coordinate of the axis + * @param y y coordinate of the axis + * @param pc true if the principal axis is wanted, false for the least dominant + * @param cx center x of the point cloud + * @param cy center y of the point cloud + */ + +void calcBoard(double point_array[][2], int board_n, double &x, double &y, double &cx, double &cy, bool pc) { + cx = cy = 0; + for (int a = 0; a < board_n; a++) { + cx += point_array[a][0]; + cy += point_array[a][1]; + } + + cx /= board_n; + cy /= board_n; + + SymmetricMatrix A(2); + A = 0; + + for(int a = 0; a < board_n; a++) { + A(1,1) += (point_array[a][0] - cx)*(point_array[a][0] - cx); + A(2,2) += (point_array[a][1] - cy)*(point_array[a][1] - cy); + A(1,2) += (point_array[a][0] - cx)*(point_array[a][1] - cy); + } + DiagonalMatrix D; + Matrix V; + try { + Jacobi(A,D,V); + } catch (ConvergenceException) { + cout << "couldn't find board..." << endl; + } + + int min, max; + + D.MaximumAbsoluteValue1(max); + D.MinimumAbsoluteValue1(min); + + // return eigenvector with highest eigenvalue + if(pc) { + x = V(1,max); + y = V(2,max); + // return eigenvector with lowest eigenvalue + } else { + x = V(1,min); + y = V(2,min); + } + +} + +/** + * Sorts the detected light bulbs on the board. + * @param point_array list of detected points + * @param board_n number of lightbulbs + * @param board_h number of rows + * @param board_w number of columns + * @param quiet if true, debug information is printed + */ +void sortBlobs(double point_array[][2], int board_n, int board_h, int board_w, bool quiet) { + double x, y, cx, cy; + // align board using PCA + calcBoard(point_array, board_n, x, y, cx, cy, board_h <= board_w); + double point_array2[board_n][2]; + double angle = -atan2(y,x); + for(int i = 0; i < board_n; i++) { + double tmpx = point_array[i][0] - cx; + double tmpy = point_array[i][1] - cy; + point_array2[i][0] = tmpx * cos(angle) - tmpy * sin(angle); + point_array2[i][1] = tmpx * sin(angle) + tmpy * cos(angle); + } + // sorting the points on the basis of y coordinate////// + int swapped1 = 0; + do { + swapped1 = 0; + + for (int a = 1; a <= board_n - 1; a++) { + if (point_array2[a][1] < point_array2[a - 1][1]) { + //rotated points + double tempx = point_array2[a][0]; + double tempy = point_array2[a][1]; + point_array2[a][0] = point_array2[a - 1][0]; + point_array2[a][1] = point_array2[a - 1][1]; + point_array2[a - 1][0] = tempx; + point_array2[a - 1][1] = tempy; + + //original points + double tmpx = point_array[a][0]; + double tmpy = point_array[a][1]; + point_array[a][0] = point_array[a - 1][0]; + point_array[a][1] = point_array[a - 1][1]; + point_array[a - 1][0] = tmpx; + point_array[a - 1][1] = tmpy; + swapped1 = 1; + } + } + } while (swapped1 == 1); + + if(!quiet) { + cout << "sorted array:" << endl; + for (int f = 0; f < board_n; f++) { + cout << point_array2[f][0] << " " << point_array2[f][1] << endl; + } + } + // sorting the array rows now + for (int x = 0; x < board_h; x++) { + double row_points[board_w][2]; + double row_points2[board_w][2]; + for (int y = 0; y < board_w; y++) { + row_points[y][0] = point_array[x * board_w + y][0]; + row_points[y][1] = point_array[x * board_w + y][1]; + row_points2[y][0] = point_array2[x * board_w + y][0]; + row_points2[y][1] = point_array2[x * board_w + y][1]; + if(!quiet) cout << row_points[y][0] << " " << row_points[y][1] << " "; + } + if(!quiet) cout << endl; + int swapped = 0; + do { + swapped = 0; + for (int a = 1; a <= board_w - 1; a++) { + if (row_points2[a][0] < row_points2[a - 1][0]) { + // original points + double tempx = row_points[a][0]; + double tempy = row_points[a][1]; + row_points[a][0] = row_points[a - 1][0]; + row_points[a][1] = row_points[a - 1][1]; + row_points[a - 1][0] = tempx; + row_points[a - 1][1] = tempy; + // rotated points + double tmpx = row_points2[a][0]; + double tmpy = row_points2[a][1]; + row_points2[a][0] = row_points2[a - 1][0]; + row_points2[a][1] = row_points2[a - 1][1]; + row_points2[a - 1][0] = tmpx; + row_points2[a - 1][1] = tmpy; + swapped = 1; + } + } + } while (swapped == 1); + if(!quiet) cout << "sorted:" << endl; + for (int z = 0; z < board_w; z++) { + point_array2[x * board_w + z][0] = row_points2[z][0]; + point_array2[x * board_w + z][1] = row_points2[z][1]; + if(!quiet) cout << point_array[x * board_w + z][0] << " " << point_array[x * board_w + z][1] << " "; + point_array[x * board_w + z][0] = row_points[z][0]; + point_array[x * board_w + z][1] = row_points[z][1]; + } + if(!quiet) cout << endl; + + } + +} + +/** + * Detects the blobs. + */ +IplImage* detectBlobs(IplImage *org_image, int &corner_exp, int board_h, int board_w, bool quiet, double point_array2[][2]) { + + IplImage *gray_image = cvCloneImage(org_image); + cvThreshold(gray_image, gray_image, 140, 255, CV_THRESH_BINARY); + IplImage *labelImg = cvCreateImage(cvGetSize(gray_image), IPL_DEPTH_LABEL, 1); + + // detect blobs + CvBlobs blobs; + cvLabel(gray_image, labelImg, blobs); + double average_size = 0; + int count = 0; + for (CvBlobs::const_iterator it = blobs.begin(); it != blobs.end(); ++it) { + if (it->second->area < BLOB_SIZE) { + count++; + average_size += it->second->area; + } + } + if(!quiet) cout << "centroid:" << average_size << endl; + + // refine blobs + average_size = average_size / count; + double average_size_min = average_size * (1.0 - AVG_THRES); + double average_size_max = average_size * (1.0 + AVG_THRES); + int blob_count = 0; + + for (CvBlobs::const_iterator it2 = blobs.begin(); it2 != blobs.end(); ++it2) { + if (it2->second->area >= average_size_min && + it2->second->area <= average_size_max && + blob_count < corner_exp) { + + point_array2[blob_count][0] = it2->second->centroid.x; + point_array2[blob_count][1] = it2->second->centroid.y; + double sumx = 0.0; + double sumy = 0.0; + double sum = 0.0; + + /* + int step = 5; + int minx = ((int)it2->second->minx - step) > -1 ? (it2->second->minx - step) : 0; + int maxx = ((it2->second->maxx + step) < gray_image->width) ? (it2->second->maxx + step) : (gray_image->width - 1); + int miny = ((int)it2->second->miny - step) > -1 ? (it2->second->miny - step) : 0; + int maxy = ((it2->second->maxy + step) < gray_image->height) ? (it2->second->maxy + step) : (gray_image->height - 1); + */ + + int minx = it2->second->minx; + int miny = it2->second->miny; + int maxx = it2->second->maxx; + int maxy = it2->second->maxy; + + for(int x = minx; x <= maxx; x++) { + for(int y = miny; y <= maxy; y++) { + if(cvGet2D(gray_image, y, x).val[0] > 0) { + CvScalar c; + c = cvGet2D(org_image, y, x); + sum += c.val[0]; + sumx += c.val[0]*x; + sumy += c.val[0]*y; + } + } + } + + sumx /= sum; + sumy /= sum; + point_array2[blob_count][0] = sumx; + point_array2[blob_count][1] = sumy; + + blob_count++; + } + } + + if(!quiet) cout << "Refined number of blobs=" << blob_count << endl; + // sorting the points + sortBlobs(point_array2, corner_exp, board_h, board_w, true); + cvReleaseImage(&labelImg); + corner_exp = blob_count; + return gray_image; +} + +/** + * Connects the detected calibration features in the image with lines. + */ +void drawLines(double point_array2[][2], int corner_exp, IplImage *image, bool color) { + for (int i = 0; i <= corner_exp - 2; i++) { + CvPoint pt1; + CvPoint pt2; + CvScalar s; + if(color) { + s = CV_RGB(255,0,0); + } else { + s.val[0] = 100; + } + double temp1 = point_array2[i][0] - floor(point_array2[i][0]); + if (temp1 < .5) { + pt1.x = floor(point_array2[i][0]); + } else { + pt1.x = floor(point_array2[i][0]) + 1; + } + double temp2 = point_array2[i][1] - floor(point_array2[i][1]); + if (temp2 < .5) { + pt1.y = floor(point_array2[i][1]); + } else { + pt1.y = floor(point_array2[i][1]) + 1; + } + double temp3 = point_array2[i + 1][0] - floor( + point_array2[i + 1][0]); + if (temp3 < .5) { + pt2.x = floor(point_array2[i + 1][0]); + } else { + pt2.x = floor(point_array2[i + 1][0]) + 1; + } + double temp4 = point_array2[i + 1][1] - floor( + point_array2[i + 1][1]); + if (temp4 < .5) { + pt2.y = floor(point_array2[i + 1][1]); + } else { + pt2.y = floor(point_array2[i + 1][1]) + 1; + } + cvLine(image, pt1, pt2, s, 1, 8); + } + cvShowImage("Final Result", image); + +} + +/** + * Resizes the image + */ +IplImage* resizeImage(IplImage *source, int scale) { + int width, height; + IplImage *image; + switch(scale) { + case 2: + width = 1200; + height = 900; + break; + case 3: + width = 800; + height = 600; + break; + case 4: + width = 400; + height = 300; + break; + case 5: + width = 160; + height = 120; + break; + case 1: + default: + return cvCloneImage(source); + } + + image = cvCreateImage(cvSize(width,height),source->depth,source->nChannels); + cvResize(source,image); + return image; +} + +/** + * Detects the corners of the chessboard pattern. + */ +IplImage* detectCorners(IplImage *orgimage, int corner_exp, int board_h, int board_w, bool quiet, double point_array2[][2], int scale) { + + IplImage *image = resizeImage(orgimage, scale); + CvSize size = cvGetSize(image); + CvPoint2D32f* corners = new CvPoint2D32f[corner_exp]; + CvSize board_sz = cvSize(board_w, board_h); + IplImage *gray_image = cvCreateImage(size,8,1); + + if (image->nChannels == 3) { + cvCvtColor(image, gray_image, CV_BGR2GRAY); + } else { + gray_image = image; + } + + int found = cvFindChessboardCorners(image, board_sz, corners, &corner_exp, + CV_CALIB_CB_ADAPTIVE_THRESH | CV_CALIB_CB_FILTER_QUADS); + + cout << "found corners:" << corner_exp << endl; + if (found != 0) {//if all corners found successfully + //Get Subpixel accuracy on those corners + if(size.width > 400) { + cvFindCornerSubPix(gray_image, corners, corner_exp, cvSize(11, 11), cvSize(-1, -1), + cvTermCriteria( CV_TERMCRIT_EPS + CV_TERMCRIT_ITER, 30, 0.1)); + } + else { + cvFindCornerSubPix(gray_image, corners, corner_exp, cvSize(2, 2), cvSize(-1, -1), + cvTermCriteria( CV_TERMCRIT_EPS + CV_TERMCRIT_ITER, 30, 0.1)); + } + } + + for (int i = 0; i < corner_exp; i++) { + point_array2[i][0] = corners[i].x; + point_array2[i][1] = corners[i].y; + } + return gray_image; + +} + +/** + * Writes the intrinsic calibration parameters to files. + */ +void writeCalibParam(int images, int corner_exp, int board_w, CvMat* +image_points, CvSize size, string dir, string substring) { + CvMat* intrinsic_matrix = cvCreateMat(3, 3, CV_32FC1); + CvMat* distortion_coeffs = cvCreateMat(5, 1, CV_32FC1); + //ALLOCATE MATRICES ACCORDING TO HOW MANY CHESSBOARDS FOUND + CvMat* object_points2 = cvCreateMat(images * corner_exp, 3, CV_32FC1); + CvMat* image_points2 = cvCreateMat(images * corner_exp, 2, CV_32FC1); + CvMat* point_counts2 = cvCreateMat(images, 1, CV_32SC1); + CvMat* Rotation = cvCreateMat(images, 3, CV_32FC1); + CvMat* Translation = cvCreateMat(images, 3, CV_32FC1); + //TRANSFER THE POINTS INTO THE CORRECT SIZE MATRICES + int j; + for (int i = 0; i < images * corner_exp; ++i) { + j = i % corner_exp; + CV_MAT_ELEM( *image_points2, float, i, 0) = CV_MAT_ELEM( *image_points, float, i, 0); + CV_MAT_ELEM( *image_points2, float,i,1) = CV_MAT_ELEM( *image_points, float, i, 1); + CV_MAT_ELEM(*object_points2, float, i, 0) = (j / board_w) * 8; + CV_MAT_ELEM( *object_points2, float, i, 1) = (j % board_w) * 8; + CV_MAT_ELEM( *object_points2, float, i, 2) = 0.0f; + } + for (int i = 0; i < images; ++i) { //These are all the same number + CV_MAT_ELEM( *point_counts2, int, i, 0) = corner_exp; + } + + // Initialize the intrinsic matrix with focal length = 1.0 + CV_MAT_ELEM( *intrinsic_matrix, float, 0, 0 ) = 1.0f; + CV_MAT_ELEM( *intrinsic_matrix, float, 1, 1 ) = 1.0f; + //CALIBRATE THE CAMERA! + cvCalibrateCamera2(object_points2, image_points2, point_counts2, size, + intrinsic_matrix, distortion_coeffs, Rotation, Translation, 0 //CV_CALIB_FIX_ASPECT_RATIO + ); + // SAVE AND PRINT THE INTRINSICS AND DISTORTIONS + + string file = dir + "Intrinsics" + substring + ".xml"; + cvSave(file.c_str(), intrinsic_matrix); + file = dir + "Distortion" + substring + ".xml"; + cvSave(file.c_str(), distortion_coeffs); + cout << "Camera Intrinsic Matrix is:" << endl; + for (int row = 0; row < 3; row++) { + for (int col = 0; col < 3; col++) { + cout << CV_MAT_ELEM( *intrinsic_matrix, float, row, col ) << "\t"; + } + cout << endl; + } + cout << "Distortion Coefficients are:" << endl; + for (int row = 0; row < 5; row++) { + for (int col = 0; col < 1; col++) { + cout << CV_MAT_ELEM( *distortion_coeffs, float, row, col ) << "\t"; + } + } + cout << endl; + CvMat *intrinsic = intrinsic_matrix; + CvMat *distortion = distortion_coeffs; + + // CLEANUP + cvReleaseMat(&object_points2); + cvReleaseMat(&image_points2); + cvReleaseMat(&point_counts2); + cvReleaseMat(&Rotation); + cvReleaseMat(&Translation); + cvReleaseMat(&intrinsic); + cvReleaseMat(&distortion); +} + +/** + * Main function for intrinsic calibration + */ +void CalibFunc(int board_w, int board_h, int start, int end, bool optical, bool +chess, bool quiet, string dir, int scale) { + cvNamedWindow("Original Image", 0); + cvResizeWindow( "Final Result", 320, 240 ); + cvNamedWindow("Final Result", 0); + cvResizeWindow( "Final Result", 320, 240 ); + + int nr_img = end - start + 1; + if (nr_img == 0) { + cout << "ImageCount is zero!" << endl; + return; + } + + int corner_exp = board_w * board_h; + CvSize board_sz = cvSize(board_w, board_h); + CvSize size; + //ALLOCATE STORAGE(depending upon the number of images in(in case if command line arguments are given ) + //not on the basis of number of images in which all corner extracted/while in the other case the number is the same ) + CvMat* image_points = cvCreateMat(nr_img * corner_exp, 2, CV_32FC1); + //TODO CvPoint2D32f* corners = new CvPoint2D32f[ board_n ]; + + int successes = 0; + int step = 0; + + for (int count = start; count <= end; count++) { + string t; + string t1; + + if(optical) { + t = dir + "/photo" + to_string(count, 3) + ".ppm"; + t1 = dir + "/cimage" + to_string(count, 3) + ".ppm"; + //t = dir + to_string(count, 3) + "/photo" + to_string(count, 3) + ".ppm"; + //t1 = dir + to_string(count, 3) + "/cimage" + to_string(count, 3) + ".ppm"; + } else { + //t = dir + to_string(count, 3) + "/image" + to_string(count, 3) + ".ppm"; + //t1 = dir + to_string(count, 3) + "/timage" + to_string(count, 3) + ".ppm"; + t = dir + "/image" + to_string(count, 3) + ".ppm"; + t1 = dir + "/timage" + to_string(count, 3) + ".ppm"; + } + cout << t << endl; + //loading images and finding corners + IplImage* image1 = cvLoadImage(t.c_str(), -1); + if (!image1) { + cout << "image cannot be loaded" << endl; + return; + } + cvShowImage("Original Image", image1); + + ///////////////////////////////////////////////////////////// + + double point_array2[corner_exp][2]; + IplImage *image; + + if(chess) { + cout << "detect corners" << endl; + image = detectCorners(image1, corner_exp, board_h, board_w, quiet, point_array2, scale); + } else { + cout << "detect blob" << endl; + int tmp_corners = corner_exp; + image = detectBlobs(image1, tmp_corners, board_h, board_w, quiet, point_array2); + } + + for(int i = 0; i < corner_exp; i++) { + cout << (float) point_array2[i][0] << " " << (float) point_array2[i][1] << + endl; + } + //drawing the lines on the image now + drawLines(point_array2, corner_exp, image); + + cout << "\nDo you want to use the data from this image ('y' or 'n'). 'x' aborts the calibration? : "; + int c = cvWaitKey(100); + if (c == 27) { + break; + } + char in; + cin >> in; + if (in == 'y') { + cvSaveImage(t1.c_str(), image); + size = cvGetSize(image); + step = successes * corner_exp; + //appending corner data to a generic data structure for all images + for (int i = step, j = 0; j < corner_exp; ++i, ++j) { + CV_MAT_ELEM(*image_points, float,i,0) = (float) point_array2[j][0]; + CV_MAT_ELEM(*image_points, float,i,1) = (float) point_array2[j][1]; + } + successes++; + } else if(in == 'x') { + break; + } + cvReleaseImage(&image); + cvReleaseImage(&image1); + + } + cout << "Images for which all corners were found successfully=" + << successes << endl; + if (successes == 0) { + cout << "No successful corners found from any image" << endl; + return; + } + + string substring = optical? "Optical" : ""; + writeCalibParam(successes, corner_exp, board_w, image_points, size, dir, substring); + + cvReleaseMat(&image_points); + +} + +/** + * Reads the 3D information of the features from a file. + */ +bool readPoints(string filename, CvPoint3D32f *corners, int size) { + ifstream infile(filename.c_str(), ios::in); + if (!infile) { + cout << "3Ddata file cannot be loaded" << endl; + return false; + } + + string verify; + infile >> verify; + if(strcmp(verify.c_str(), "failed") == 0) return false; + for(int l = 0; l < size; l++) { + infile >> corners[l].y; + infile >> corners[l].z; + infile >> corners[l].x; + corners[l].y = -corners[l].y; + } + return true; +} + +/** + * Calculates the median of a set of translation vectors, i.e., the translation + * that has the smallest distance to all other translation. + */ +int realMedian(CvMat * vectors, int nr_vectors) { + double distances[nr_vectors]; + + for(int i = 0; i < nr_vectors; i++) { + double sum = 0; + double x1 = (CV_MAT_ELEM(*vectors,float,i,0)); + double y1 = (CV_MAT_ELEM(*vectors,float,i,1)); + double z1 = (CV_MAT_ELEM(*vectors,float,i,2)); + for(int j = 0; j < nr_vectors; j++) { + double x2 = (CV_MAT_ELEM(*vectors,float,j,0)); + double y2 = (CV_MAT_ELEM(*vectors,float,j,1)); + double z2 = (CV_MAT_ELEM(*vectors,float,j,2)); + double tmp = (x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)+(z2-z1)*(z2-z1); + sum += sqrt(tmp); + } + distances[i] = sum; + } + int min_pos = -1; + double min_dist = DBL_MAX; + for(int i = 0; i < nr_vectors; i++) { + if(distances[i] < min_dist) { + min_pos = i; + min_dist = distances[i]; + } + } + + return min_pos; +} + +/* + * Calculates the median of a set of vectors by iteratively calculating the + * median and cropping outliers. + */ +void filterMedian(CvMat * vectors, int nr_vectors, int threshold, CvMat * mean) { + + // calculate Median + int min_pos = realMedian(vectors, nr_vectors); + + // crop outliers + double x1 = (CV_MAT_ELEM(*vectors,float,min_pos,0)); + double y1 = (CV_MAT_ELEM(*vectors,float,min_pos,1)); + double z1 = (CV_MAT_ELEM(*vectors,float,min_pos,2)); + + int count = 0; + for(int i = 0; i < nr_vectors; i++) { + double x2 = (CV_MAT_ELEM(*vectors,float,i,0)); + double y2 = (CV_MAT_ELEM(*vectors,float,i,1)); + double z2 = (CV_MAT_ELEM(*vectors,float,i,2)); + double tmp = (x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)+(z2-z1)*(z2-z1); + if(sqrt(tmp) < 1.0/threshold) count++; + } + + CvMat* some_vectors = cvCreateMat(count, 6, CV_32FC1); + count = 0; + for(int i = 0; i < nr_vectors; i++) { + double x2 = (CV_MAT_ELEM(*vectors,float,i,0)); + double y2 = (CV_MAT_ELEM(*vectors,float,i,1)); + double z2 = (CV_MAT_ELEM(*vectors,float,i,2)); + double tmp = (x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)+(z2-z1)*(z2-z1); + if(sqrt(tmp) < 1.0/threshold) { + for(int j = 0; j < 6; j++) { + (CV_MAT_ELEM(*some_vectors,float,count,j)) = (CV_MAT_ELEM(*vectors,float,i,j)); + cout << (CV_MAT_ELEM(*some_vectors,float,count,j)) << " "; + } + cout << endl; + count++; + } + } + // recurse + if(threshold < 3) { + filterMedian(some_vectors, count, ++threshold, mean); + cvReleaseMat(&some_vectors); + // determine result + } else { + x1 = (CV_MAT_ELEM(*some_vectors,float,min_pos,0)); + y1 = (CV_MAT_ELEM(*some_vectors,float,min_pos,1)); + z1 = (CV_MAT_ELEM(*some_vectors,float,min_pos,2)); + double x2 = 0; + double y2 = 0; + double z2 = 0; + double r1 = 0; + double r2 = 0; + double r3 = 0; + for(int i = 0; i < count; i++) { + x2 += (CV_MAT_ELEM(*some_vectors,float,i,0)); + y2 += (CV_MAT_ELEM(*some_vectors,float,i,1)); + z2 += (CV_MAT_ELEM(*some_vectors,float,i,2)); + r1 += (CV_MAT_ELEM(*some_vectors,float,i,3)); + r2 += (CV_MAT_ELEM(*some_vectors,float,i,4)); + r3 += (CV_MAT_ELEM(*some_vectors,float,i,5)); + } + (CV_MAT_ELEM(*mean,float,0,0)) = x2/count; + (CV_MAT_ELEM(*mean,float,0,1)) = y2/count; + (CV_MAT_ELEM(*mean,float,0,2)) = z2/count; + (CV_MAT_ELEM(*mean,float,0,3)) = r1/count; + (CV_MAT_ELEM(*mean,float,0,4)) = r2/count; + (CV_MAT_ELEM(*mean,float,0,5)) = r3/count; + } +} + +/** + * Sorts vectors element by element, enables one to calculate the median of + * each element separately. + */ +void sortElementByElement(CvMat * vectors, int nr_elems, int nr_vectors) { + bool swapped; + for (int i = 0; i < nr_elems; i++) { + do { + swapped = false; + for (int j = 1; j <= nr_vectors - 1; j++) { + if (CV_MAT_ELEM(*vectors,float,j,i) < CV_MAT_ELEM(*vectors,float,j-1,i)) { + float temp = CV_MAT_ELEM(*vectors,float,j,i); + CV_MAT_ELEM(*vectors,float,j,i) = CV_MAT_ELEM(*vectors,float,j-1,i); + CV_MAT_ELEM(*vectors,float,j-1,i) = temp; + swapped = true; + } + } + } while (swapped); + } +} + +/** + * Calculates the extrinsic parameters of a set of matches. Find the best match + * by calculating the reprojection error of each set of calibration parameters. + */ +void calculateExtrinsicsWithReprojectionCheck(CvMat * points2D, CvMat * + points3D, CvMat * rotation_vectors_temp, CvMat * translation_vectors_temp, CvMat + * distortion, CvMat * intrinsics, int corners, int successes, string dir, bool quiet, string substring) { + double reprojectionError[successes]; + for(int i = 0; i < successes; i++) { + reprojectionError[i] = 0.0; + } + + for(int i = 0; i < successes; i++) { + reprojectionError[i] = 0.0; + CvMat * rotation = cvCreateMat(1, 3, CV_32FC1); + CvMat * translation = cvCreateMat(1, 3, CV_32FC1); + + for(int k = 0; k < 3; k++) { + CV_MAT_ELEM(*rotation, float, 0, k) = CV_MAT_ELEM(*rotation_vectors_temp, float, i, k); + CV_MAT_ELEM(*translation, float, 0, k) = CV_MAT_ELEM(*translation_vectors_temp, float, i, k); + } + for(int j = 0; j < successes; j++) { + double tmp = 0; + //calculate reprojection error + CvMat * point_3Dcloud = cvCreateMat(corners, 3, CV_32FC1); + CvMat * point_2Dcloud = cvCreateMat(corners, 2, CV_32FC1); + for(int l = 0; l < corners; l++) { + CV_MAT_ELEM(*point_2Dcloud,float,l,0) = 0.0; + CV_MAT_ELEM(*point_2Dcloud,float,l,1) = 1.0; + CV_MAT_ELEM(*point_3Dcloud,float,l,0) = CV_MAT_ELEM(*points3D,CvPoint3D32f,j,l).x; + CV_MAT_ELEM(*point_3Dcloud,float,l,1) = CV_MAT_ELEM(*points3D,CvPoint3D32f,j,l).y; + CV_MAT_ELEM(*point_3Dcloud,float,l,2) = CV_MAT_ELEM(*points3D,CvPoint3D32f,j,l).z; + } + cvProjectPoints2(point_3Dcloud, rotation, translation, intrinsics, + distortion, point_2Dcloud, NULL, NULL, NULL, NULL, NULL, 0); + for(int l = 0; l < corners; l++) { + double x = CV_MAT_ELEM(*point_2Dcloud,float,l,0) - CV_MAT_ELEM(*points2D,CvPoint2D32f,j,l).x; + double y = CV_MAT_ELEM(*point_2Dcloud,float,l,1) - CV_MAT_ELEM(*points2D,CvPoint2D32f,j,l).y; + tmp += sqrt(x*x + y*y); + } + cvReleaseMat(&point_2Dcloud); + reprojectionError[i] += tmp; + cvReleaseMat(&point_3Dcloud); + } + cvReleaseMat(&rotation); + cvReleaseMat(&translation); + } + + int maxindex = -1; + double max = DBL_MAX; + for(int i = 0; i < successes; i++) { + if(reprojectionError[i] < max) { + maxindex = i; + max = reprojectionError[i]; + } + } + + CvMat * rotation = cvCreateMat(1, 3, CV_32FC1); + CvMat * translation = cvCreateMat(1, 3, CV_32FC1); + + for(int i = 0; i < 3; i++) { + CV_MAT_ELEM(*rotation, float, 0, i) = CV_MAT_ELEM(*rotation_vectors_temp, float, maxindex, i); + CV_MAT_ELEM(*translation, float, 0, i) = CV_MAT_ELEM(*translation_vectors_temp, float, maxindex, i); + } + string file = dir + "Rotation" + substring + ".xml"; + cvSave(file.c_str(), rotation); + file = dir + "Translation" + substring + ".xml"; + cvSave(file.c_str(), translation); + +} + +/** + * Calculates the extrinsic parameters given a set of feature matches using the + * mean and median method. + */ +void calculateExtrinsics(CvMat * rotation_vectors_temp, CvMat * translation_vectors_temp, int successes, string dir, bool quiet, string substring) { + + CvMat* rotation_vectors = cvCreateMat(successes, 3, CV_32FC1); + CvMat* translation_vectors = cvCreateMat(successes, 3, CV_32FC1); + CvMat* vectors = cvCreateMat(successes, 6, CV_32FC1); + CvMat* rotation_vector_mean = cvCreateMat(1, 3, CV_32FC1); + CvMat* translation_vector_mean = cvCreateMat(1, 3, CV_32FC1); + CvMat* rotation_vector_median = cvCreateMat(1, 3, CV_32FC1); + CvMat* translation_vector_median = cvCreateMat(1, 3, CV_32FC1); + CvMat* median = cvCreateMat(1, 6, CV_32FC1); + for (int t = 0; t < 3; t++) { + CV_MAT_ELEM(*rotation_vector_mean,float,0,t) = 0; + CV_MAT_ELEM(*translation_vector_mean,float,0,t) = 0; + CV_MAT_ELEM(*rotation_vector_median,float,0,t) = 0; + CV_MAT_ELEM(*translation_vector_median,float,0,t) = 0; + CV_MAT_ELEM(*median,float,0,t) = 0; + CV_MAT_ELEM(*median,float,0,t + 3) = 0; + } + + for (int h = 0; h < successes; h++) { + for(int t = 0; t < 3; t++) { + CV_MAT_ELEM(*rotation_vectors,float,h,t) =CV_MAT_ELEM(*rotation_vectors_temp,float,h,t); + CV_MAT_ELEM(*rotation_vector_mean,float,0,t) +=CV_MAT_ELEM(*rotation_vectors,float,h,t); + + CV_MAT_ELEM(*translation_vectors,float,h,t) =CV_MAT_ELEM(*translation_vectors_temp,float,h,t); + CV_MAT_ELEM(*translation_vector_mean,float,0,t) +=CV_MAT_ELEM(*translation_vectors,float,h,t); + + CV_MAT_ELEM(*vectors,float,h,t) =CV_MAT_ELEM(*translation_vectors_temp,float,h,t); + CV_MAT_ELEM(*vectors,float,h,t + 3) =CV_MAT_ELEM(*rotation_vectors_temp,float,h,t); + } + } + + for(int t = 0; t < 3; t++) { + CV_MAT_ELEM(*rotation_vector_mean,float,0,t) /= successes; + CV_MAT_ELEM(*translation_vector_mean,float,0,t) /= successes; + } + + // finding the median of rotation and translation + // sorting the rotation vectors element by element + /* + sortElementByElement(rotation_vectors, 3, successes); + sortElementByElement(translation_vectors, 3, successes); + + if(!quiet) { + cout << "number of successes : " << successes << endl; + cout << "rotation vectors are" << endl; + for (int i = 0; i < successes; i++) { + cout << CV_MAT_ELEM(*rotation_vectors,float,i,0) << " " + <> in; + if(tmp_corners == corner_exp) { + if (in == 'y') { + size = cvGetSize(image); + //appending corner data to a generic data structure for all images + for (int j = 0; j < corner_exp; ++j) { + CV_MAT_ELEM(*image_points, float,j,0) = (float) point_array2[j][0]; + CV_MAT_ELEM(*image_points, float,j,1) = (float) point_array2[j][1]; + CV_MAT_ELEM(*object_points,float,j,0) = corners[j].x; + CV_MAT_ELEM(*object_points,float,j,1) = corners[j].y; + CV_MAT_ELEM(*object_points,float,j,2) = corners[j].z; + + CV_MAT_ELEM(*points2D, CvPoint2D32f, successes, j).x = (float)point_array2[j][0]; + CV_MAT_ELEM(*points2D, CvPoint2D32f, successes, j).y = (float)point_array2[j][1]; + CV_MAT_ELEM(*points3D, CvPoint3D32f, successes, j).x = corners[j].x; + CV_MAT_ELEM(*points3D, CvPoint3D32f, successes, j).y = corners[j].y; + CV_MAT_ELEM(*points3D, CvPoint3D32f, successes, j).z = corners[j].z; + } + cvFindExtrinsicCameraParams2(object_points, image_points, intrinsic, distortion, Rotation, Translation); + // append data to vectors + if(!quiet) cout << "Rotation is:" << endl; + for (int row = 0; row < 1; row++) { + for (int col = 0; col < 3; col++) { + if(!quiet) cout << CV_MAT_ELEM( *Rotation, float, row, col ) << " "; + CV_MAT_ELEM( *rotation_vectors_temp, float, successes, col ) = CV_MAT_ELEM( *Rotation, float, row, col ); + } + if(!quiet) cout << endl; + } + if(!quiet) cout << "Translation is:" << endl; + for (int row = 0; row < 1; row++) { + for (int col = 0; col < 3; col++) { + if(!quiet) cout << CV_MAT_ELEM( *Translation, float, row, col ) << " "; + CV_MAT_ELEM( *translation_vectors_temp, float, successes, col ) = CV_MAT_ELEM( *Translation, float, row, col ); + } + if(!quiet) cout << endl; + } + successes++; + + } else if(in == 'x') { + break; + } + } + cvReleaseImage(&image); + cvReleaseImage(&image1); + cvReleaseMat(&image_points); + cvReleaseMat(&object_points); + cvReleaseMat(&Rotation); + cvReleaseMat(&Translation); + }//for loop for imagecount + cvDestroyWindow("Original Image"); + cvDestroyWindow("Final Result"); + + cout << "Number of successes: " << successes << endl; + // Now calculating mean and median rotation and trans + //calculateExtrinsics(rotation_vectors_temp, translation_vectors_temp, successes, dir, quiet, substring); + calculateExtrinsicsWithReprojectionCheck(points2D, points3D, rotation_vectors_temp, translation_vectors_temp, distortion, intrinsic, corner_exp, successes, dir, quiet, substring); + cvReleaseMat(&intrinsic); + cvReleaseMat(&distortion); + cvReleaseMat(&translation_vectors_temp); + cvReleaseMat(&rotation_vectors_temp); + cvReleaseMat(&points2D); + cvReleaseMat(&points3D); +} + +/** + * Main function for projecting the 3D points onto the corresponding image and + * associating temperature values to the data points. + */ +void ProjectAndMap(int start, int end, bool optical, bool quiet, string dir, +IOType type, int scale, double rot_angle, double minDist, double maxDist, +bool correction, int neighborhood, int method) { + + int nr_img = end - start + 1; + if (nr_img < 1) { + cout << "ImageCount is zero!" << endl; + return; + } + string substring = optical? "Optical" : ""; + string file = dir + "Intrinsics" + substring + ".xml"; + CvMat *intrinsic = (CvMat*) cvLoad(file.c_str()); + file = dir + "Distortion" + substring + ".xml"; + CvMat *distortion = (CvMat*) cvLoad(file.c_str()); + switch(method) { + case 0: + file = dir + "Rotation" + substring + ".xml"; + break; + case 1: + file = dir + "RotationMedian" + substring + ".xml"; + break; + case 2: + file = dir + "RotationMean" + substring + ".xml"; + break; + } + CvMat *Rotation = (CvMat*) cvLoad(file.c_str()); + switch(method) { + case 0: + file = dir + "Translation" + substring + ".xml"; + break; + case 1: + file = dir + "TranslationMedian" + substring + ".xml"; + break; + case 2: + file = dir + "TranslationMean" + substring + ".xml"; + break; + } + CvMat *Translation = (CvMat*) cvLoad(file.c_str()); + CvMat* undistort = cvCreateMat(5,1,CV_32FC1); + for (int hh = 0; hh < 5; hh++) { + CV_MAT_ELEM(*undistort, float,hh,0) = 0; + } + + double starttime = GetCurrentTimeInMilliSec(); + + // filling the rotation matrix + double rPosTheta[3] = {0.0, rad(rot_angle), 0.0}; + double rPos[3] = {0.0, 0.0, 0.0}; + double alignxf[16]; + EulerToMatrix4(rPos, rPosTheta, alignxf); + + string outdir = dir + "/labscan-map"; +#ifdef _MSC_VER + int success = mkdir(outdir.c_str()); +#else + int success = mkdir(outdir.c_str(), S_IRWXU|S_IRWXG|S_IRWXO); +#endif + if(success == 0) { + cout << "Writing scans to " << outdir << endl; + } else if(errno == EEXIST) { + cout << "Directory " << outdir << " exists already. CONTINUE" << endl; + } else { + cerr << "Creating directory " << outdir << " failed" << endl; + exit(1); + } + for (int count = start; count <= end; count++) { + CvMat* point_3Dcloud; + CvMat* point_2Dcloud; + CvMat* undistort_2Dcloud; + + CvMat* point_3Dcloud_2; + CvMat* point_2Dcloud_2; + CvMat* undistort_2Dcloud_2; + + // loading images + int count0; + if(rot_angle < 180 && rot_angle > 0) { + count0 = count % 9 == 8 ? count - 8 : count + 1; + } else { + count0 = count % 9 == 0 ? count + 8 : count - 1; + } + string t, t0; + if(optical) { + t = dir + "/photo" + to_string(count, 3) + ".ppm"; + t0 = dir + "/photo" + to_string(count0, 3) + ".ppm"; + } else { + t = dir + "/image" + to_string(count, 3) + ".ppm"; + t0 = dir + "/image" + to_string(count0, 3) + ".ppm"; + } + + IplImage* image = cvLoadImage(t.c_str(), -1); + if (!image) { + cout << "first image " << t << " cannot be loaded" << endl; + return; + } + CvSize size = cvGetSize(image); + + IplImage* image0; + if(fabs(rot_angle) > 1) { + image0 = cvLoadImage(t0.c_str(), -1); + + if (!image0) { + cout << "second image " << t0 << " cannot be loaded" << endl; + return; + } + image0 = resizeImage(image0, scale); + } + image = resizeImage(image, scale); + if(image) + + // reading the 3D points and projecting them back to 2d + Scan::readScans(type, count, count, dir, maxDist, minDist, 0); + Scan::allScans[0]->calcReducedPoints(-1, 0); + point_3Dcloud = cvCreateMat(Scan::allScans[0]->get_points_red_size(), 3, CV_32FC1); + point_2Dcloud = cvCreateMat(Scan::allScans[0]->get_points_red_size(), 2, CV_32FC1); + undistort_2Dcloud = cvCreateMat(Scan::allScans[0]->get_points_red_size(), 2, CV_32FC1); + for (int j = 0; j < Scan::allScans[0]->get_points_red_size(); j++) { + CV_MAT_ELEM(*point_3Dcloud, float,j,0) = Scan::allScans[0]->get_points_red()[j][2]; + CV_MAT_ELEM(*point_3Dcloud, float,j,1) = -Scan::allScans[0]->get_points_red()[j][0]; + CV_MAT_ELEM(*point_3Dcloud, float,j,2) = Scan::allScans[0]->get_points_red()[j][1]; + } + + cout << "Number of points read: " << Scan::allScans[0]->get_points_red_size() << endl; + cvProjectPoints2(point_3Dcloud, Rotation, Translation, intrinsic, + distortion, point_2Dcloud, NULL, NULL, NULL, NULL, NULL, 0); + + cvProjectPoints2(point_3Dcloud, Rotation, Translation, intrinsic, + undistort, undistort_2Dcloud, NULL, NULL, NULL, NULL, NULL, 0); + + // second image in case of overlap + if(fabs(rot_angle) > 1) { + point_3Dcloud_2 = cvCreateMat(Scan::allScans[0]->get_points_red_size(), 3, CV_32FC1); + point_2Dcloud_2 = cvCreateMat(Scan::allScans[0]->get_points_red_size(), 2, CV_32FC1); + undistort_2Dcloud_2 = cvCreateMat(Scan::allScans[0]->get_points_red_size(), 2, CV_32FC1); + for (int j = 0; j < Scan::allScans[0]->get_points_red_size(); j++) { + Point p(Scan::allScans[0]->get_points_red()[j]); + p.transform(alignxf); + + CV_MAT_ELEM(*point_3Dcloud_2, float,j,0) = p.z; + CV_MAT_ELEM(*point_3Dcloud_2, float,j,1) = -p.x; + CV_MAT_ELEM(*point_3Dcloud_2, float,j,2) = p.y; + } + + cvProjectPoints2(point_3Dcloud_2, Rotation, Translation, intrinsic, + distortion, point_2Dcloud_2, NULL, NULL, NULL, NULL, NULL, 0); + + cvProjectPoints2(point_3Dcloud_2, Rotation, Translation, intrinsic, + undistort, undistort_2Dcloud_2, NULL, NULL, NULL, NULL, NULL, 0); + } + // write colored data + string outname = outdir + "/scan" + to_string(count, 3) + ".3d"; + fstream outfile; + outfile.open(outname.c_str(), ios::out); + + //for counting how many points get mapped to first and second image file + int point_map1 = 0; // #points mapped to first image + int point_map2 = 0; // " " " second image + + // checking whether projection lies within the image boundaries + for (int k = 0; k < Scan::allScans[0]->get_points_red_size(); k++) { + float px = CV_MAT_ELEM(*undistort_2Dcloud,float,k,0); + float py = CV_MAT_ELEM(*undistort_2Dcloud,float,k,1); + if (px < image->width - .5 && px >= 0 && py >= 0 && py < image->height - .5) { + px = CV_MAT_ELEM(*point_2Dcloud,float,k,0); + py = CV_MAT_ELEM(*point_2Dcloud,float,k,1); + if (px < image->width - .5 && px >= 0 && py >= 0 && py < image->height - .5) { + point_map1++; + int ppx = 0; + int ppy = 0; + if (px - int(px) < .5) { + ppx = int(px); + } else { + ppx = int(px) + 1; + } + if (py - int(py) < .5) { + ppy = int(py); + } else { + ppy = int(py) + 1; + } + + CvScalar c; + c = cvGet2D(image, ppy, ppx); + // check for overlap + if(correction) { + vector temp_vec; + float p_id = 1; // 1 for pixel, 0 for neighboring pixel + temp_vec.push_back(-(CV_MAT_ELEM(*point_3Dcloud,float,k,1))); + temp_vec.push_back((CV_MAT_ELEM(*point_3Dcloud,float,k,2))); + temp_vec.push_back((CV_MAT_ELEM(*point_3Dcloud,float,k,0))); + temp_vec.push_back(c.val[2]); + temp_vec.push_back(c.val[1]); + temp_vec.push_back(c.val[0]); + temp_vec.push_back(p_id); + if(neighborhood > 1) { + int limit = neighborhood / 2; + + int lower_y = ppy - limit > 0 ? ppy - limit : 0; + int upper_y = ppy + limit < size.height ? ppy + limit : size.height - 1; + int lower_x = ppx - limit > 0 ? ppx - limit : 0; + int upper_x = ppx + limit < size.width ? ppx + limit : size.width - 1; + + for (int y = lower_y; y < upper_y; y++) { + for (int x = lower_x; x < upper_x; x++) { + if(x == ppx && y == ppy) { + temp_vec[6] = 1; + } else { + temp_vec[6] = 0; + } + data1[y][x].push_back(temp_vec); + } + } + + } else { + data1[ppy][ppx].push_back(temp_vec); + } + temp_vec.clear(); + } else { + // write all the data + outfile << -(CV_MAT_ELEM(*point_3Dcloud,float,k,1))<<" "; + outfile << CV_MAT_ELEM(*point_3Dcloud,float,k,2)<<" "; + outfile << CV_MAT_ELEM(*point_3Dcloud,float,k,0)<<" "; + outfile << (c.val[0] - 1000.0)/10.0 << endl; + //outfile << c.val[2] <<" "<< c.val[1]<<" "< 1) { + // check for overlap + px = CV_MAT_ELEM(*undistort_2Dcloud_2,float,k,0); + py = CV_MAT_ELEM(*undistort_2Dcloud_2,float,k,1); + if (px < image0->width - .5 && px >= 0 && py >= 0 && py < image0->height - .5) { + px = CV_MAT_ELEM(*point_2Dcloud_2,float,k,0); + py = CV_MAT_ELEM(*point_2Dcloud_2,float,k,1); + if (px < image0->width - .5 && px >= 0 && py >= 0 && py < image0->height - .5) { + point_map2++; + int ppx = 0; + int ppy = 0; + + if (px - int(px) < .5) { + ppx = int(px); + } else { + ppx = int(px) + 1; + } + if (py - int(py) < .5) { + ppy = int(py); + } else { + ppy = int(py) + 1; + } + CvScalar c; + + c = cvGet2D(image0, ppy, ppx); + if(correction) { + vector temp_vec; + float p2_id = 1; + temp_vec.push_back(-(CV_MAT_ELEM(*point_3Dcloud,float,k,1))); + temp_vec.push_back((CV_MAT_ELEM(*point_3Dcloud,float,k,2))); + temp_vec.push_back((CV_MAT_ELEM(*point_3Dcloud,float,k,0))); + temp_vec.push_back(c.val[2]); + temp_vec.push_back(c.val[1]); + temp_vec.push_back(c.val[0]); + temp_vec.push_back(p2_id); + if(neighborhood > 1) { + int neighbors = 3; + int limit = neighbors / 2; + + int lower_y = ppy - limit > 0 ? ppy - limit : 0; + int upper_y = ppy + limit < size.height ? ppy + limit : size.height - 1; + int lower_x = ppx - limit > 0 ? ppx - limit : 0; + int upper_x = ppx + limit < size.width ? ppx + limit : size.width - 1; + + for (int y = lower_y; y < upper_y; y++) { + for (int x = lower_x; x < upper_x; x++) { + if(x == ppx && y == ppy) { + temp_vec[6] = 1; + } else { + temp_vec[6] = 0; + } + data2[y][x].push_back(temp_vec); + } + } + + } else { + data2[ppy][ppx].push_back(temp_vec); + } + temp_vec.clear(); + } else { + // write all the data + outfile << -(CV_MAT_ELEM(*point_3Dcloud,float,k,1))<<" "; + outfile << CV_MAT_ELEM(*point_3Dcloud,float,k,2)<<" "; + outfile << CV_MAT_ELEM(*point_3Dcloud,float,k,0)<<" "; + outfile << (c.val[0] - 1000.0)/10.0 << endl; + //outfile << c.val[2] <<" "<< c.val[1]<<" "< 1) { + if(size.width > 0 && size.height > 0) { + CorrectErrorAndWrite(data2, outfile, size); + } + } + } + + // clean up + outfile.flush(); + outfile.close(); + + delete Scan::allScans[0]; + Scan::allScans.clear(); + + double endtime = GetCurrentTimeInMilliSec(); + double time = endtime - starttime; + time = time/1000.0; + cout<<"runtime for scan " << count << " in seconds is: " << time << endl; + + cvReleaseImage(&image); + cvReleaseMat(&point_2Dcloud); + cvReleaseMat(&point_3Dcloud); + cvReleaseMat(&undistort_2Dcloud); + if(fabs(rot_angle) > 1) { + cvReleaseImage(&image0); + cvReleaseMat(&point_2Dcloud_2); + cvReleaseMat(&point_3Dcloud_2); + cvReleaseMat(&undistort_2Dcloud_2); + } + for (int i = 0; i < size.height; i++) { + for (int j = 0; j < size.width; j++) { + data1[i][j].clear(); + data2[i][j].clear(); + } + } + + } + + cvReleaseMat(&intrinsic); + cvReleaseMat(&distortion); + cvReleaseMat(&Rotation); + cvReleaseMat(&Translation); + cvReleaseMat(&undistort); + +} + +/** + * Sorts a number of float array according to their distance to the origin. + */ +void sortDistances(float ** points, int size) { + int swapped1 = 0; + do { + swapped1 = 0; + for(int a = 1; a <= size - 1; a++) { + if(Len(points[a]) < Len(points[a - 1])) { + float * tmp = points[a-1]; + points[a-1] = points[a]; + points[a] = tmp; + swapped1 = 1; + } + } + } while (swapped1 == 1); +} + +/** + * Performs clustering on all points that are projected onto one pixel. + * Writes only the points from the largest closest cluster. + */ +void clusterSearch(float ** points, int size, double thresh1, double thres2, fstream &outfile) { + int position = 0; + int cluster_count = 0; + + double max_cluster = 0; + int max_position = 0; + vector clusters; + while (position < size) { + double sum = 0.0; + int j = position + 1; + while(j < size && (Len(points[j]) < (Len(points[j-1]) + thresh1))) { + j++; + cluster_count++; + sum+=Len(points[j-1]); + } + double * tmp = new double[4]; + tmp[0] = position; + tmp[1] = j - 1; + tmp[2] = sum / (j - position); + // weird heuristic ;-) (clustersize/(rank of the cluster)) + tmp[3] = (double)(j - position) / (clusters.size() + 1.0); + if(tmp[3] > max_cluster) { + max_position = clusters.size(); + max_cluster = tmp[3]; + } + clusters.push_back(tmp); + position = j; + } + + for(int p = clusters[max_position][0]; p <= clusters[max_position][1]; p++) { + if(points[p][6] == 1) { + outfile << points[p][0] << " " << points[p][1] << " " << points[p][2] << " "; + //outfile << points[p][3] << " " << points[p][4] << " " << points[p][5] << endl; + outfile << (points[p][5] - 1000.0)/10.0 << endl; + } + } + + for(unsigned int i = 0; i < clusters.size(); i++) { + delete[] clusters[i]; + } +} + +void CorrectErrorAndWrite(Float2D &data, fstream &outfile, CvSize size) { + double thresh1 = 4; + double thresh2 = 5; + + // getting points mapping to one pixel + for (int i = 0; i < size.height; i++) { + for (int j = 0; j < size.width; j++) { + int tmp_size = data[i][j].size(); + if (tmp_size > 0) { + float ** points = new float*[tmp_size]; + for (int k = 0; k < tmp_size; k++) { + points[k] = new float[7]; + for(int l = 0; l < 7; l++) { + points[k][l] = data[i][j][k][l]; + } + } + + //sorting the points now in ascending order wrt distance + sortDistances(points, tmp_size); + //look for clusters + clusterSearch(points, tmp_size, thresh1, thresh2, outfile); + + for (int k = 0; k < tmp_size; k++) { + delete[] points[k]; + } + delete[] points; + } + + } + } + +} + +/** + * Prints out usage message + */ +void usage(char* prog) { +#ifndef _MSC_VER + const string bold("\033[1m"); + const string normal("\033[m"); +#else + const string bold(""); + const string normal(""); +#endif + cout << endl + << bold << "USAGE " << normal << endl + << " " << prog << " [options] directory" << endl << endl; + cout << bold << "OPTIONS" << normal << endl + + << bold << " -f" << normal << " F, " << bold << "--format=" << normal << "F" << endl + << " using shared library F for input" << endl + << " (chose F from {uos, uos_map, uos_rgb, uos_frames, uos_map_frames, old, rts, rts_map, ifp, riegl_txt, riegl_rgb, riegl_bin, zahn, ply})" << endl + << endl + << bold << " -s" << normal << " NR, " << bold << "--start=" << normal << "NR" << endl + << " start at scan NR (i.e., neglects the first NR scans)" << endl + << " [ATTENTION: counting naturally starts with 0]" << endl + << endl + << bold << " -e" << normal << " NR, " << bold << "--end=" << normal << "NR" << endl + << " end at scan NR" << endl + << endl + << bold << " -x" << normal << " NR, " << bold << "--width=" << normal << "NR" << endl + << " NR of lamps/corners in x direction" << endl + << endl + << bold << " -y" << normal << " NR, " << bold << "--height=" << normal << "NR" << endl + << " NR of lamps/corners in y direction" << endl + << endl + << bold << " -o --=optical" << normal << endl + << " use optical camera instead of thermal camera" << endl + << endl + << bold << " -c --=chess" << normal << endl + << " use chessboard pattern for calibration instead of lightbulb pattern" << endl + << endl + << bold << " -I --=intrinsic" << normal << endl + << " perform intrinsic calibration" << endl + << endl + << bold << " -E --=extrinsic" << normal << endl + << " perform extrinsic calibration" << endl + << endl + << bold << " -P --=mapping" << normal << endl + << " perform mapping of image data to point cloud" << endl + << endl + << bold << " -q --=quiet" << normal << endl + << " " << endl + << endl << endl; + + cout << bold << "EXAMPLES " << normal << endl + << " " << prog << " -s 2 -e 10 dat" << endl << endl; + exit(1); + +} + +/** + * Parses command line arguments needed for plane detection. For details about + * the argument see usage(). + */ + +int parseArgs(int argc, char **argv, string &dir, int &start, int &end, double +&maxDist, double &minDist, IOType &type, bool &optical, bool &chess, int +&width, int &height, bool &intrinsic, bool &extrinsic, bool &mapping, bool +&correction, int &scale, int &neighborhood, double &angle, bool &quiet ) { + // from unistd.h: + int c; + extern char *optarg; + extern int optind; + + /* options descriptor */ + // 0: no arguments, 1: required argument, 2: optional argument + static struct option longopts[] = { + { "correction", no_argument, 0, 'C' }, + { "scale", required_argument, 0, 'S' }, + { "neighborhood", required_argument, 0, 'n' }, + { "angle", required_argument, 0, 'a' }, + { "format", required_argument, 0, 'f' }, + { "max", required_argument, 0, 'm' }, + { "min", required_argument, 0, 'M' }, + { "start", required_argument, 0, 's' }, + { "end", required_argument, 0, 'e' }, + { "width", required_argument, 0, 'x' }, + { "height", required_argument, 0, 'y' }, + { "quiet", no_argument, 0, 'q' }, + { "optical", no_argument, 0, 'o' }, + { "intrinsic", no_argument, 0, 'I' }, + { "extrinsic", no_argument, 0, 'E' }, + { "mapping", no_argument, 0, 'P' }, + { "chess", no_argument, 0, 'c' }, + { 0, 0, 0, 0} // needed, cf. getopt.h + }; + + cout << endl; + while ((c = getopt_long(argc, argv, "f:s:e:x:y:m:M:qoIEPcCS:n:a:", longopts, NULL)) != -1) { + switch (c) + { + case 's': + start = atoi(optarg); + if (start < 0) { cerr << "Error: Cannot start at a negative scan number.\n"; exit(1); } + break; + case 'e': + end = atoi(optarg); + if (end < 0) { cerr << "Error: Cannot end at a negative scan number.\n"; exit(1); } + if (end < start) { cerr << "Error: cannot be smaller than .\n"; exit(1); } + break; + case 'f': + try { + type = formatname_to_io_type(optarg); + } catch (...) { // runtime_error + cerr << "Format " << optarg << " unknown." << endl; + abort(); + } + break; + case 'q': + quiet = true; + break; + case 'm': + maxDist = atoi(optarg); + break; + case 'M': + minDist = atoi(optarg); + break; + case 'o': + optical = true; + break; + case 'I': + intrinsic = true; + break; + case 'E': + extrinsic = true; + break; + case 'P': + mapping = true; + break; + case 'c': + chess = true; + break; + case 'x': + width = atoi(optarg); + break; + case 'y': + height = atoi(optarg); + break; + case 'S': + scale = atoi(optarg); + break; + case 'a': + angle = atof(optarg); + break; + case 'n': + neighborhood = atoi(optarg); + break; + case 'C': + correction = true; + break; + case '?': + usage(argv[0]); + return 1; + default: + cout << "Abort" << endl; + abort (); + } + } + if (optind != argc-1) { + cerr << "\n*** Directory missing ***" << endl; + usage(argv[0]); + } + dir = argv[optind]; +#ifndef _MSC_VER + if (dir[dir.length()-1] != '/') dir = dir + "/"; +#else + if (dir[dir.length()-1] != '\\') dir = dir + "\\"; +#endif + + if(!(intrinsic || extrinsic || mapping)) { + cerr << "\n*** Please choose at least one method (intrinsic calibration, " + << "extrinsic calibration, mapping of image data to point data! ***\n" << + endl; + usage(argv[0]); + } + return 0; + +} + +/** + * Main function. Calls either function for color mapping or function for + * intrinsic and/or extrinsic calibration. + */ +int main(int argc, char** argv) { + string dir; + int start = 0; + int end = -1; + int width = 5; + int height = 6; + double maxDist = -1; + double minDist = -1; + IOType type = UOS; + bool optical = false; + bool chess = false; + bool intrinsic = false; + bool extrinsic = false; + bool mapping = false; + bool quiet = false; + int scale = 1; + //double rot_angle = -40; + double rot_angle = 0; + bool correction = false; + int neighborhood = 1; + + parseArgs(argc, argv, dir, start, end, maxDist, minDist, type, optical, chess, + width, height, intrinsic, extrinsic, mapping, correction, scale, neighborhood, + rot_angle, quiet); + + // either mapping + if(mapping) { + if(!quiet) cout << "Starting projecting and mapping image data to point cloud..." << endl; + ProjectAndMap(start, end, optical, quiet, dir, type, scale, rot_angle, minDist, maxDist, correction, neighborhood); + if(!quiet) cout << "\nDONE" << endl; + return 0; + } + + // or calibration + if(intrinsic) { + if(!quiet) { + cout << "Starting intrinsic calibration using "; + if(chess) cout << "chessboard pattern..." << endl; + else cout << "lightbulb pattern..." << endl; + } + CalibFunc(width, height, start, end, optical, chess, quiet, dir, scale); + if(!quiet) cout << "\nDONE" << endl; + } + + if(extrinsic) { + if(!quiet) { + cout << "Starting extrinsic calibration using "; + if(chess) cout << "chessboard pattern..." << endl; + else cout << "lightbulb pattern..." << endl; + } + ExtrCalibFunc(width, height, start, end, optical, chess, quiet, dir, scale); + if(!quiet) cout << "\nDONE" << endl; + } + + return 0; +} + diff --git a/.svn/pristine/87/87d0c030fbe472be689b9044e75e9ddacbab1e5c.svn-base b/.svn/pristine/87/87d0c030fbe472be689b9044e75e9ddacbab1e5c.svn-base new file mode 100644 index 0000000..b007928 --- /dev/null +++ b/.svn/pristine/87/87d0c030fbe472be689b9044e75e9ddacbab1e5c.svn-base @@ -0,0 +1,92 @@ +/** + * @file vector3d.h + * + * @auhtor Remus Claudiu Dumitru + * @date 16 Feb 2012 + * + */ + +#ifndef VECTOR3D_H_ +#define VECTOR3D_H_ + +//============================================================================== +// Includes +//============================================================================== +#include "model/point3d.h" + +#include + +namespace model { + +/** + * A vector in space. + */ +class Vector3d { +public: + double x; + double y; + double z; + + Vector3d(); + + Vector3d(const double& x, const double& y, const double& z); + + /** + * constructor for vector b - a, where a and b are points + */ + Vector3d(const Point3d& a, const Point3d& b); + + Vector3d(const Vector3d& other); + + Vector3d& operator=(const Vector3d& other); + + /** + * normalizes the vector + * @warning in place + */ + void normalize(); + + /** + * inverts the vector + * @warning in place + */ + void invert(); + + /** + * @return the length of the vector + */ + double length() const; + + /** + * rotates the vector around the origin by the given rotation + * @param rot the rotation object that describes how much to rotate the vector + * @warning in place + */ + void rotate(const Rotation3d& rot); + + /** + * @return the cross product (still a vector) between this vector and another given one + */ + Vector3d crossProduct(const Vector3d& other) const; + + /** + * @return the dot product between this vector and another given one + */ + double dotProduct(const Vector3d& other) const; + + /** + * @return the angle between two vectors + */ + double angle(const Vector3d& other); + + void operator+=(const Vector3d& other); + Vector3d operator+(const Vector3d& other); + Vector3d operator*(const double& val); + void operator/=(const double& div); + + friend std::ostream& operator<<(std::ostream& os, const Vector3d& vect); +}; + +} /* namespace model */ + +#endif /* VECTOR3D_H_ */ diff --git a/.svn/pristine/88/88ae03bdd6f0c77664508d63d5854ce749d4822c.svn-base b/.svn/pristine/88/88ae03bdd6f0c77664508d63d5854ce749d4822c.svn-base new file mode 100644 index 0000000..eb8847b --- /dev/null +++ b/.svn/pristine/88/88ae03bdd6f0c77664508d63d5854ce749d4822c.svn-base @@ -0,0 +1,46 @@ +#ifndef CSYSTEM_H_ +#define CSYSTEM_H_ + +#ifdef WIN32 +#pragma warning(disable:4786) +#endif + +/** + * @class CSystem + * @brief This class encapsulates system specific calls + * @author Stefan May + */ +template +class CSystem +{ + public: + /** + * Allocation of 2D arrays + * @param unRows number of rows + * @param unCols number of columns + * @param aatArray data array + */ + static void allocate (unsigned int unRows, unsigned int unCols, T** &aatArray); + /** + * Deallocation of 2D arrays. Pointers are set to null. + * @param aatArray data array + */ + static void deallocate (T** &aatArray); + /** + * Allocation of 3D arrays + * @param unRows number of rows + * @param unCols number of columns + * @param unSlices number of slices + * @param aaatArray data array + */ + static void allocate (unsigned int unRows, unsigned int unCols, unsigned int unSlices, T*** &aaatArray); + /** + * Deallocation of 3D arrays. Pointers are set to null. + * @param aaatArray data array + */ + static void deallocate (T*** &aaatArray); +}; + +#include "slam6d/cuda/CSystem.icc" + +#endif /*CSYSTEM_H_*/ diff --git a/.svn/pristine/88/88c651fb430d20a21ea462e35c81221ed7b479f6.svn-base b/.svn/pristine/88/88c651fb430d20a21ea462e35c81221ed7b479f6.svn-base new file mode 100644 index 0000000..fbb5424 --- /dev/null +++ b/.svn/pristine/88/88c651fb430d20a21ea462e35c81221ed7b479f6.svn-base @@ -0,0 +1,27 @@ +/** + * @file + * @brief IO of a 3D scan in uos file format + * @author Thomas Escher + */ + +#ifndef __SCAN_IO_UOS_H__ +#define __SCAN_IO_UOS_H__ + +#include "scan_io.h" + + + +/** + * @brief 3D scan loader for UOS scans + * + * The compiled class is available as shared object file + */ +class ScanIO_uos : public ScanIO { +public: + virtual std::list readDirectory(const char* dir_path, unsigned int start, unsigned int end); + virtual void readPose(const char* dir_path, const char* identifier, double* pose); + virtual void readScan(const char* dir_path, const char* identifier, PointFilter& filter, std::vector* xyz, std::vector* rgb, std::vector* reflectance, std::vector* amplitude, std::vector* type, std::vector* deviation); + virtual bool supports(IODataType type); +}; + +#endif diff --git a/.svn/pristine/89/891424d0e3add5ddfda3fc372ec0b2eda89d2ac4.svn-base b/.svn/pristine/89/891424d0e3add5ddfda3fc372ec0b2eda89d2ac4.svn-base new file mode 100644 index 0000000..e772025 --- /dev/null +++ b/.svn/pristine/89/891424d0e3add5ddfda3fc372ec0b2eda89d2ac4.svn-base @@ -0,0 +1,183 @@ +# This file runs the nvcc commands to produce the desired output file along with +# the dependency file needed by CMake to compute dependencies. In addition the +# file checks the output of each command and if the command fails it deletes the +# output files. + +# Input variables +# +# verbose:BOOL=<> OFF: Be as quiet as possible (default) +# ON : Describe each step +# + +# Set these up as variables to make reading the generated file easier +set(CMAKE_COMMAND "@CMAKE_COMMAND@") +set(source_file "@source_file@") +set(generated_file "@generated_file@") +set(NVCC_generated_dependency_file "@NVCC_generated_dependency_file@") +set(cmake_dependency_file "@cmake_dependency_file@") +set(CUDA_make2cmake "@CUDA_make2cmake@") +set(generated_cubin_file "@generated_cubin_file@") +set(CUDA_parse_cubin "@CUDA_parse_cubin@") +set(build_cubin @build_cubin@) + +set(CUDA_NVCC "@CUDA_NVCC@") +set(CUDA_NVCC_FLAGS "@CUDA_NVCC_FLAGS@") +set(nvcc_flags "@nvcc_flags@") +set(CUDA_NVCC_INCLUDE_ARGS "@CUDA_NVCC_INCLUDE_ARGS@") +set(format_flag "@format_flag@") + +if(DEFINED CCBIN) + set(CCBIN -ccbin "${CCBIN}") +endif() + +if(debug) + set(CMAKE_COMMAND "C:/code/CMake-cuda-staging/build-32/src/debug/args.exe") + set(CUDA_NVCC "C:/code/CMake-cuda-staging/build-32/src/debug/args.exe") +endif() + +# cuda_execute_process - Executes a command with optional command echo and status message. +# +# status - Status message to print if verbose is true +# command - COMMAND argument from the usual execute_process argument structure +# ARGN - Remaining arguments are the command with arguments +# +# CUDA_result - return value from running the command +# +# Make this a macro instead of a function, so that things like RESULT_VARIABLE +# and other return variables are present after executing the process. +macro(cuda_execute_process status command) + set(_command ${command}) + if(NOT _command STREQUAL "COMMAND") + message(FATAL_ERROR "Malformed call to cuda_execute_process. Missing COMMAND as second argument. (command = ${command})") + endif() + if(verbose) + execute_process(COMMAND "${CMAKE_COMMAND}" -E echo -- ${status}) + # Now we need to build up our command string. We are accounting for quotes + # and spaces, anything else is left up to the user to fix if they want to + # copy and paste a runnable command line. + set(cuda_execute_process_string) + foreach(arg ${ARGN}) + # If there are quotes, excape them, so they come through. + string(REPLACE "\"" "\\\"" arg ${arg}) + # Args with spaces need quotes around them to get them to be parsed as a single argument. + if(arg MATCHES " ") + list(APPEND cuda_execute_process_string "\"${arg}\"") + else() + list(APPEND cuda_execute_process_string ${arg}) + endif() + endforeach() + # Echo the command + execute_process(COMMAND ${CMAKE_COMMAND} -E echo ${cuda_execute_process_string}) + endif(verbose) + # Run the command + execute_process(COMMAND ${ARGN} RESULT_VARIABLE CUDA_result ) +endmacro() + +# Delete the target file +cuda_execute_process( + "Removing ${generated_file}" + COMMAND "${CMAKE_COMMAND}" -E remove "${generated_file}" + ) + +# Generate the dependency file +cuda_execute_process( + "Generating dependency file: ${NVCC_generated_dependency_file}" + COMMAND "${CUDA_NVCC}" + "${source_file}" + ${CUDA_NVCC_FLAGS} + ${nvcc_flags} + ${CCBIN} + -DNVCC + -M + -o "${NVCC_generated_dependency_file}" + ${CUDA_NVCC_INCLUDE_ARGS} + ) + +if(CUDA_result) + message(FATAL_ERROR "Error generating ${generated_file}") +endif() + +# Generate the cmake readable dependency file to a temp file. Don't put the +# quotes just around the filenames for the input_file and output_file variables. +# CMake will pass the quotes through and not be able to find the file. +cuda_execute_process( + "Generating temporary cmake readable file: ${cmake_dependency_file}.tmp" + COMMAND "${CMAKE_COMMAND}" + -D "input_file:FILEPATH=${NVCC_generated_dependency_file}" + -D "output_file:FILEPATH=${cmake_dependency_file}.tmp" + -P "${CUDA_make2cmake}" + ) + +if(CUDA_result) + message(FATAL_ERROR "Error generating ${generated_file}") +endif() + +# Copy the file if it is different +cuda_execute_process( + "Copy if different ${cmake_dependency_file}.tmp to ${cmake_dependency_file}" + COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${cmake_dependency_file}.tmp" "${cmake_dependency_file}" + ) + +if(CUDA_result) + message(FATAL_ERROR "Error generating ${generated_file}") +endif() + +# Delete the temporary file +cuda_execute_process( + "Removing ${cmake_dependency_file}.tmp and ${NVCC_generated_dependency_file}" + COMMAND "${CMAKE_COMMAND}" -E remove "${cmake_dependency_file}.tmp" "${NVCC_generated_dependency_file}" + ) + +if(CUDA_result) + message(FATAL_ERROR "Error generating ${generated_file}") +endif() + +# Generate the code +cuda_execute_process( + "Generating ${generated_file}" + COMMAND "${CUDA_NVCC}" + "${source_file}" + ${CUDA_NVCC_FLAGS} + ${nvcc_flags} + ${CCBIN} + -DNVCC + ${format_flag} -o "${generated_file}" + ${CUDA_NVCC_INCLUDE_ARGS} + ) + +if(CUDA_result) + # Since nvcc can sometimes leave half done files make sure that we delete the output file. + cuda_execute_process( + "Removing ${generated_file}" + COMMAND "${CMAKE_COMMAND}" -E remove "${generated_file}" + ) + message(FATAL_ERROR "Error generating file ${generated_file}") +else() + message("Generated ${generated_file} successfully.") +endif() + +# Cubin resource report commands. +if( build_cubin ) + # Run with -cubin to produce resource usage report. + cuda_execute_process( + "Generating ${generated_cubin_file}" + COMMAND "${CUDA_NVCC}" + "${source_file}" + ${CUDA_NVCC_FLAGS} + ${nvcc_flags} + ${CCBIN} + -DNVCC + -cubin + -o "${generated_cubin_file}" + ${CUDA_NVCC_INCLUDE_ARGS} + ) + + # Execute the parser script. + cuda_execute_process( + "Executing the parser script" + COMMAND "${CMAKE_COMMAND}" + -D "input_file:STRING=${generated_cubin_file}" + -P "${CUDA_parse_cubin}" + ) + +endif( build_cubin ) diff --git a/.svn/pristine/89/8935720abf3858def077483f5d2f63a7f44374e3.svn-base b/.svn/pristine/89/8935720abf3858def077483f5d2f63a7f44374e3.svn-base new file mode 100644 index 0000000..818c422 --- /dev/null +++ b/.svn/pristine/89/8935720abf3858def077483f5d2f63a7f44374e3.svn-base @@ -0,0 +1,87 @@ +/* +This is a Optical-Character-Recognition program +Copyright (C) 1999 Joerg Schulenburg + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + see README for EMAIL-address +*/ + +#include +#include +#include + +#include "tga.h" + +typedef unsigned char byte; + +// --- needed for reading TGA-files +#if 0 +char read_b(FILE *f1){ // filter #-comments + char c; + c=fgetc(f1); assert(!feof(f1)); assert(!ferror(f1)); + return c; +} +#endif + +//byte tga[18]={ 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,24,32}; +/* header_hex= 00 00 02 00 00 00 00 00 00 00 00 00 xl xh yl yh + * 18 20 -- -- -- -- -- -- -- -- -- -- -- -- -- -- */ + +void readtga(char *name,pix *p,int mode){ // see pcx.format.txt + // mode: 0=gray,1=RGB + int nx,ny,i,x,y; + FILE *f1; + unsigned char *pic,h[18]; + + f1=fopen(name,"rb"); if(!f1) fprintf(stderr," error opening file\n"); + assert(f1); // open-error + assert(fread(h,1,18,f1)==18); /* 18 Byte lesen -> h[] */ + assert(h[ 0]== 0); // TGA0 + assert(h[ 1]== 0); // TGA1 + assert(h[ 2]== 2); // TGA2 no run length encoding + for(i=3;i<12;i++) + assert(h[ i]== 0); // ??? + assert(h[16]==0x18); // TGA16 + assert(h[17]==0x20); // TGA17 + nx = h[12] + (h[13]<<8); /* x-dimension low high */ + ny = h[14] + (h[15]<<8); /* y-dimension low high */ + fprintf(stderr,"# TGA version=%d x=%d y=%d", h[2],nx,ny ); + fflush(stdout); + pic=(unsigned char *)malloc( 3*nx*ny ); + assert(pic!=NULL); // no memory + assert(ny==(int)fread(pic,3*nx,ny,f1)); // read all lines BGR + if(mode==0) + { + for(y=0;y gray */ + for(x=0;x RGB */ + for(x=0;xp=pic; p->x=nx; p->y=ny; p->bpp=1+2*mode; + fprintf(stderr," mode=%d\n",mode); +} + +// ------------------------------------------------------------------------ + diff --git a/.svn/pristine/89/8994128dd7f5bb33188bffd9d214312a494462c3.svn-base b/.svn/pristine/89/8994128dd7f5bb33188bffd9d214312a494462c3.svn-base new file mode 100644 index 0000000..027aaf9 --- /dev/null +++ b/.svn/pristine/89/8994128dd7f5bb33188bffd9d214312a494462c3.svn-base @@ -0,0 +1,225 @@ +/* + * registration implementation + * + * Copyright (C) HamidReza Houshiar + * + * Released under the GPL version 3. + * + */ + +#include "slam6d/fbr/registration.h" + +using namespace std; + +namespace fbr{ + + registration::registration(unsigned int minD, double minE, unsigned int minI, registration_method method){ + minDistance = minD; + minError = minE; + minInlier = minI; + rMethod = method; + bestError = minError; + bestErrorIndex = 0; + for(int i = 0; i < 16; i++) + bestAlign[i] = 0; + } + + registration::registration(){ + minDistance = 50; + minError = 50; + minInlier = 5; + rMethod = RANSAC; + bestError = minError; + bestErrorIndex = 0; + for(int i = 0; i < 16; i++) + bestAlign[i] = 0; + } + + int registration::getCoord(vector fKeypoints, vector sKeypoints, vector matches, cv::Mat fPMap, cv::Mat sPMap, int idx, cv::Point3f& cq, cv::Point3f& ct){ + int x, y; + y = fKeypoints[matches[idx].queryIdx].pt.x; + x = fKeypoints[matches[idx].queryIdx].pt.y; + + if(fKeypoints[matches[idx].queryIdx].pt.x - x > 0.5) + x++; + if(fKeypoints[matches[idx].queryIdx].pt.y - y > 0.5) + y++; + cv::Mat_ _fPMap = fPMap; + float sqr = sqrt (_fPMap(x,y)[0] * _fPMap(x,y)[0] + _fPMap(x,y)[1] * _fPMap(x,y)[1] + _fPMap(x,y)[2] * _fPMap(x,y)[2]); + if(sqr != 0){ + cq.x = _fPMap(x,y)[0]; + cq.y = _fPMap(x,y)[1]; + cq.z = _fPMap(x,y)[2]; + } + else + return 0; + + y = sKeypoints[matches[idx].trainIdx].pt.x; + x = sKeypoints[matches[idx].trainIdx].pt.y; + if(sKeypoints[matches[idx].trainIdx].pt.x - x > 0.5) + x++; + if(sKeypoints[matches[idx].trainIdx].pt.y - y > 0.5) + y++; + cv::Mat_ _sPMap = sPMap; + sqr = sqrt (_sPMap(x,y)[0] * _sPMap(x,y)[0] + _sPMap(x,y)[1] * _sPMap(x,y)[1] + _sPMap(x,y)[2] * _sPMap(x,y)[2]); + if(sqr != 0){ + ct.x = _sPMap(x,y)[0]; + ct.y = _sPMap(x,y)[1]; + ct.z = _sPMap(x,y)[2]; + } + else + return 0; + + return 1; + } + + void registration::pointToArray(cv::Point3f c, double* cd){ + cd[0] = c.x; + cd[1] = c.y; + cd[2] = c.z; + } + + cv::Point3f registration::coordTransform(cv::Point3f p, double* align){ + cv::Point3f tp; + tp.x = align[0]*p.x + align[4]*p.y + align[8]*p.z + align[12]; + tp.y = align[1]*p.x + align[5]*p.y + align[9]*p.z + align[13]; + tp.z = align[2]*p.x + align[6]*p.y + align[10]*p.z + align[14]; + return tp; + } + + + int registration::findAlign(unsigned int i, unsigned int j, unsigned int k, cv::Mat fPMap, vector fKeypoints, cv::Mat sPMap, vector sKeypoints, vector matches){ + cv::Point3f c1q, c2q, c3q, c1t, c2t, c3t; + if(i == j || i == k || j == k) + return 0; + //get the coordinates + if(getCoord(fKeypoints, sKeypoints, matches, fPMap, sPMap, i, c1q, c1t) == 0) + return 0; + if(getCoord(fKeypoints, sKeypoints, matches, fPMap, sPMap, j, c2q, c2t) == 0) + return 0; + if(getCoord(fKeypoints, sKeypoints, matches, fPMap, sPMap, k, c3q, c3t) == 0) + return 0; + //check for min distance + if(norm(c1q - c2q) < minDistance || norm(c1q - c3q) < minDistance || norm(c2q - c3q) < minDistance || norm(c1t - c2t) < minDistance || norm(c1t - c3t) < minDistance || norm(c2t - c3t) < minDistance) + return 0; + //calculate the centroids + cv::Point3f centroidq, centroidt; + centroidq = (c1q + c2q + c3q); + centroidt = (c1t + c2t + c3t); + centroidq.x = centroidq.x / 3; + centroidq.y = centroidq.y / 3; + centroidq.z = centroidq.z / 3; + centroidt.x = centroidt.x / 3; + centroidt.y = centroidt.y / 3; + centroidt.z = centroidt.z / 3; + //put each point into double array + double c1qd[3], c2qd[3], c3qd[3], c1td[3], c2td[3], c3td[3]; + cv::Point3f temp; + pointToArray(c1q, c1qd); + pointToArray(c2q, c2qd); + pointToArray(c3q, c3qd); + pointToArray(c1t, c1td); + pointToArray(c2t, c2td); + pointToArray(c3t, c3td); + //create PtPair and calc the align with icp6D_QUAT + vector pairs; + pairs.push_back(PtPair(c1qd, c1td)); + pairs.push_back(PtPair(c2qd, c2td)); + pairs.push_back(PtPair(c3qd, c3td)); + double align[16]; + double centroidqd[3], centroidtd[3]; + pointToArray(centroidq, centroidqd); + pointToArray(centroidt, centroidtd); + icp6D_QUAT q(true); + q.Point_Point_Align(pairs, align, centroidqd, centroidtd); + //transform the matches with align if the error is less than minerror + double iError = 0; + unsigned int eIdx = 0; + for(unsigned int p = 0; p < matches.size(); p++){ + if(p == i || p == j || p == k) + continue; + cv::Point3f cq, ct, ct_trans; + if(getCoord(fKeypoints, sKeypoints, matches, fPMap, sPMap, p, cq, ct) == 0) + continue; + ct_trans = coordTransform(ct, align); + if(norm(ct_trans - cq) < minError){ + iError += norm(ct_trans - cq); + eIdx++; + } + } + //check for mininlier and find the best align + if(eIdx > minInlier){ + double aError = iError / eIdx; + if(aError - iInfluence*eIdx < bestError - iInfluence*bestErrorIndex){ + bestError = aError; + bestErrorIndex = eIdx; + for(int a = 0; a < 16; a++) + bestAlign[a] = align[a]; + } + } + return 1; + } + + void registration::findRegistration(cv::Mat fPMap, vector fKeypoints, cv::Mat sPMap, vector sKeypoints, vector matches){ + //go through all matches + if(rMethod == ALL){ + for(unsigned int i = 0; i < matches.size(); i++) + for(unsigned int j = 0; j < matches.size(); j++) + for(unsigned int k = 0; k < matches.size(); k++){ + findAlign(i, j, k, fPMap, fKeypoints, sPMap, sKeypoints, matches); + } + } + //RANSAC + if(rMethod == RANSAC) + for(int r = 0; r < RANSACITR; r++){ + if((r % (RANSACITR/10)) == 0){ + cout<<"RANSAC iteration: "<<(r / (RANSACITR/10) + 1) * 10 <<"%"< 0){ + cout< +using std::vector; + +#include "graphSlam6D.h" + +#include "newmat/newmatio.h" + +typedef vector vPtPair; ///< just a typedef: vPtPair = vector of type PtPair + + +/* + * @brief Representation of 3D scan matching with Lu/Milios in 6D. + * + * Reference: D. Borrmann, et al., Globally consistent 3D mapping + * with scan matching, Journal of Robotics and Autonomous + * Systems (2007), + */ +class lum6DEuler : public graphSlam6D { + +public: + /** + * Constructor (default) + */ + lum6DEuler() {}; + lum6DEuler(icp6Dminimizer *my_icp6Dminimizer, + double mdm = 25.0, + double max_dist_match = 25.0, + int max_num_iterations = 50, + bool quiet = false, + bool meta = false, + int rnd = 1, + bool eP = true, + int anim = -1, + double epsilonICP = 0.0000001, + int nns_method = simpleKD, + double epsilonLUM = 0.5); + + virtual ~lum6DEuler(); + + double doGraphSlam6D(Graph gr, vector MetaScan, int nrIt); + + static void covarianceEuler(Scan *first, Scan *second, int nns_method, + int rnd, double max_dist_match2, NEWMAT::Matrix *C, NEWMAT::ColumnVector *CD=0); + +private: + void FillGB3D(Graph *gr, GraphMatrix *G, NEWMAT::ColumnVector* B, vector allScans); +// void CalculateLinks3D(int numLinks, vPtPair **ptpairs, vector * CD , vector * C); + +}; + +#endif diff --git a/.svn/pristine/8a/8aa0fd587375c1ce4a10896c482f7f46e412009b.svn-base b/.svn/pristine/8a/8aa0fd587375c1ce4a10896c482f7f46e412009b.svn-base new file mode 100644 index 0000000..156461f --- /dev/null +++ b/.svn/pristine/8a/8aa0fd587375c1ce4a10896c482f7f46e412009b.svn-base @@ -0,0 +1,83 @@ +/** + * @file + * @brief IO of a 3D scan in rxp file format + * @author Thomas Escher + */ + +#ifndef __SCAN_IO_RXP_H__ +#define __SCAN_IO_RXP_H__ + +#include "scan_io.h" +#include "slam6d/point.h" + +#include "riegl/scanlib.hpp" +using namespace scanlib; +using namespace std; +using namespace std::tr1; + +class importer; + + + +/** + * @brief 3D scan loader for RXP scans + * + * The compiled class is available as shared object file + */ +class ScanIO_rxp : public ScanIO { +public: + virtual std::list readDirectory(const char* dir_path, unsigned int start, unsigned int end); + virtual void readPose(const char* dir_path, const char* identifier, double* pose); + virtual void readScan(const char* dir_path, const char* identifier, PointFilter& filter, std::vector* xyz, std::vector* rgb, std::vector* reflectance, std::vector* amplitude, std::vector* type, std::vector* deviation); + virtual bool supports(IODataType type); + + ScanIO_rxp() : dec(0), imp(0) {} +private: + std::tr1::shared_ptr rc; + decoder_rxpmarker *dec; + importer *imp; + std::string old_path; +}; + +/** + * The importer class is the interface to riegl's pointcloud class, and will convert their point struct to slam6d's point class. + * + * Code adapted from rivlib/example/pointcloudcpp.cpp available from http://www.riegl.com . + */ +class importer : public scanlib::pointcloud +{ +public: + importer(PointFilter& filter, int start, std::vector* xyz, std::vector* reflectance, std::vector* amplitude, std::vector* type, std::vector* deviation) : + pointcloud(false), // set this to true if you need gps aligned timing + filter(&filter), xyz(xyz), reflectance(reflectance), amplitude(amplitude), type(type), deviation(deviation), + start(start), currentscan(0) + {} + inline int getCurrentScan() { return currentscan; } + inline void set(PointFilter& filter, std::vector* xyz, std::vector* reflectance, std::vector* amplitude, std::vector* type, std::vector* deviation) + { + this->filter = &filter; + this->xyz = xyz; + this->reflectance = reflectance; + this->amplitude = amplitude; + this->type = type; + this->deviation = deviation; + } +protected: + PointFilter* filter; + std::vector *xyz; + std::vector *reflectance; + std::vector *amplitude; + std::vector *type; + std::vector *deviation; + int start; + int currentscan; + // overridden from pointcloud class + void on_echo_transformed(echo_type echo); + + void on_frame_stop(const scanlib::frame_stop& arg) { + scanlib::basic_packets::on_frame_stop(arg); + currentscan++; + } +}; + +#endif diff --git a/.svn/pristine/8a/8ab9ab7f9ecc497a056ee5b0ed19184aa8c89ba3.svn-base b/.svn/pristine/8a/8ab9ab7f9ecc497a056ee5b0ed19184aa8c89ba3.svn-base new file mode 100644 index 0000000..b3b7334 --- /dev/null +++ b/.svn/pristine/8a/8ab9ab7f9ecc497a056ee5b0ed19184aa8c89ba3.svn-base @@ -0,0 +1,123 @@ + +Demonstration of Matrix package + +Print a real number (may help lost memory test): 3.14159 + + +Test 1 - traditional, bad + +Estimates and their standard errors + + 1.39166 0.53188 + 1.98310 0.20932 + 0.95221 0.27731 + + +Observations, fitted value, residual value, hat value + 2.400 1.700 8.300 7.770 0.530 0.280 + 1.800 0.900 5.500 5.818 -0.318 0.190 + 2.400 1.600 8.000 7.675 0.325 0.229 + 3.000 1.900 8.500 9.150 -0.650 0.446 + 2.000 0.500 5.700 5.834 -0.134 0.271 + 1.200 0.600 4.400 4.343 0.057 0.480 + 2.000 1.100 6.300 6.405 -0.105 0.143 + 2.700 1.000 7.900 7.698 0.202 0.153 + 3.600 0.500 9.100 9.007 0.093 0.808 + + + + +Test 2 - traditional, OK + +Estimates and their standard errors + + 1.39166 0.53188 + 1.98310 0.20932 + 0.95221 0.27731 + + +Observations, fitted value, residual value, hat value + 2.400 1.700 8.300 7.770 0.530 0.280 + 1.800 0.900 5.500 5.818 -0.318 0.190 + 2.400 1.600 8.000 7.675 0.325 0.229 + 3.000 1.900 8.500 9.150 -0.650 0.446 + 2.000 0.500 5.700 5.834 -0.134 0.271 + 1.200 0.600 4.400 4.343 0.057 0.480 + 2.000 1.100 6.300 6.405 -0.105 0.143 + 2.700 1.000 7.900 7.698 0.202 0.153 + 3.600 0.500 9.100 9.007 0.093 0.808 + + + + +Test 3 - Cholesky + +Estimates and their standard errors + + 1.39166 0.53188 + 1.98310 0.20932 + 0.95221 0.27731 + + +Observations, fitted value, residual value, hat value + 2.400 1.700 8.300 7.770 0.530 0.280 + 1.800 0.900 5.500 5.818 -0.318 0.190 + 2.400 1.600 8.000 7.675 0.325 0.229 + 3.000 1.900 8.500 9.150 -0.650 0.446 + 2.000 0.500 5.700 5.834 -0.134 0.271 + 1.200 0.600 4.400 4.343 0.057 0.480 + 2.000 1.100 6.300 6.405 -0.105 0.143 + 2.700 1.000 7.900 7.698 0.202 0.153 + 3.600 0.500 9.100 9.007 0.093 0.808 + + + + +Test 4 - QR triangularisation + +Estimates and their standard errors + + 1.39166 0.53188 + 1.98310 0.20932 + 0.95221 0.27731 + + +Observations, fitted value, residual value, hat value + 2.400 1.700 8.300 7.770 0.530 0.280 + 1.800 0.900 5.500 5.818 -0.318 0.190 + 2.400 1.600 8.000 7.675 0.325 0.229 + 3.000 1.900 8.500 9.150 -0.650 0.446 + 2.000 0.500 5.700 5.834 -0.134 0.271 + 1.200 0.600 4.400 4.343 0.057 0.480 + 2.000 1.100 6.300 6.405 -0.105 0.143 + 2.700 1.000 7.900 7.698 0.202 0.153 + 3.600 0.500 9.100 9.007 0.093 0.808 + + + + +Test 5 - singular value + +Estimates and their standard errors + + 1.39166 0.53188 + 1.98310 0.20932 + 0.95221 0.27731 + + +Observations, fitted value, residual value, hat value + 2.400 1.700 8.300 7.770 0.530 0.280 + 1.800 0.900 5.500 5.818 -0.318 0.190 + 2.400 1.600 8.000 7.675 0.325 0.229 + 3.000 1.900 8.500 9.150 -0.650 0.446 + 2.000 0.500 5.700 5.834 -0.134 0.271 + 1.200 0.600 4.400 4.343 0.057 0.480 + 2.000 1.100 6.300 6.405 -0.105 0.143 + 2.700 1.000 7.900 7.698 0.202 0.153 + 3.600 0.500 9.100 9.007 0.093 0.808 + + + + +The following test does not work with all compilers - see documentation +Checking for lost memory: 8206652 8206652 - ok diff --git a/.svn/pristine/8b/8b8ea477172f40b506dd3d67848474d6e4645a22.svn-base b/.svn/pristine/8b/8b8ea477172f40b506dd3d67848474d6e4645a22.svn-base new file mode 100644 index 0000000..37437e9 --- /dev/null +++ b/.svn/pristine/8b/8b8ea477172f40b506dd3d67848474d6e4645a22.svn-base @@ -0,0 +1,45 @@ +/** + * @file candidateOpening.h + * + * @auhtor Remus Claudiu Dumitru + * @date 15 Apr 2012 + * + */ + +#ifndef CANDIDATEOPENING_H_ +#define CANDIDATEOPENING_H_ + +//============================================================================== +// Includes +//============================================================================== +#include "model/plane3d.h" + +#include + +namespace model { + +class CandidateOpening : public Plane3d { +public: + static const unsigned int NR_FEATURES; //!< The number of features required for the SVM. + +public: + std::vector features; //!< The 14 features required for the SVM. + std::vector edges; //!< Coordinates of each edge (uh, lh, uv, lv). + double edgeCoverage; //!< Percentage on how much the edges correspond to edges detected in Canny. + +public: + // constructors and destructors + CandidateOpening(); + CandidateOpening(const Point3d& pt, const Vector3d& normal, + const std::vector& hull, + const std::vector& features, const std::vector& edges); + CandidateOpening(const CandidateOpening& other); + virtual ~CandidateOpening(); + + // operators + CandidateOpening& operator=(const CandidateOpening& other); +}; + +} /* namespace model */ + +#endif /* CANDIDATEOPENING_H_ */ diff --git a/.svn/pristine/8b/8bad704a4a16e3e145e2a745adbc921eb4ada0e8.svn-base b/.svn/pristine/8b/8bad704a4a16e3e145e2a745adbc921eb4ada0e8.svn-base new file mode 100644 index 0000000..23f931c --- /dev/null +++ b/.svn/pristine/8b/8bad704a4a16e3e145e2a745adbc921eb4ada0e8.svn-base @@ -0,0 +1,100 @@ +/** + * @file + * @brief + * + * @author Thomas Escher + */ + +#ifndef CACHE_MANAGER_H +#define CACHE_MANAGER_H + +#include +#include + +// segment manager, allocators, pointers, ... +#include +#include + +// hide the boost namespace and shorten others +namespace +{ + namespace ip = boost::interprocess; + // the segment manager providing the allocations + typedef ip::managed_shared_memory::segment_manager SegmentManager; +} + +#include "scanserver/cache/cacheObject.h" +#include "scanserver/cache/cacheHandler.h" + + +/** + * @brief Central cache management for CacheObjects, handling cache misses and calling CacheHandlers and allocating memory for contents. + * + * The CacheManager creates and handles CacheObjects in the shared memory given by the segment manager in the constructor. It also opens a shared memory exclusively for CacheObjects' contents. + * Cache misses in CacheObject should invoke loadCacheObject to have it loaded into memory. This CacheObject's CacheHandler is called, which in turn requests memory via allocateCacheObject. This function tries to allocate enough memory and flushes out other CacheObjects which are not read-locked in order to do the former. + * The flushing behaviour determines which CacheObjects are to be removed first and can be altered. (TODO) + */ +class CacheManager { +public: + /** + * The SegmentManager comes from another shared memory where COs have to be created in. + * A CacheManager owned shared memory will be opened to create the CO contents in. + */ + CacheManager(SegmentManager* sm, const char* shm_name, std::size_t cache_size); + + /** + * Deletes all CacheObjects and closes the shared memory. + */ + ~CacheManager(); + + /** + * Allocates a CacheObject in shared memory. + */ + CacheObject* createCacheObject(); + + /** + * Request a CacheObject to be loaded into memory, causing its CacheHandler to be called. + * If no resource was to be found, the function returns false. If an error occured (e.g. IO/stream/conversion errors) it will throw. + * @return if the CacheObject was loaded successfully + * @throws when no memory could be allocated (see allocateCacheObject) or an error occured in the CacheHandler implementation + */ + bool loadCacheObject(CacheObject* obj); + + /** + * Allocates enough space for a cache object. This will flush other CacheObjects if the exclusive shared memory is full. + * @return Pointer to the allocated space in the object + * @throws when no memory could be allocated because removing all remaining (non read-locked) CacheObjects removed didn't free enough memory. + */ + unsigned char* allocateCacheObject(CacheObject* obj, unsigned int size); + + /** + * Invalidate a CacheObject and its handler. + */ + void invalidateCacheObject(CacheObject* obj); + + /** + * Change the flushing behaviour by setting a specific heuristic. + */ + // TODO + +private: + SegmentManager* m_segment_manager; + ip::managed_shared_memory* m_msm; + std::string m_shm_name; + + std::vector m_objects, m_loaded; + + /** + * Allocates memory for a CO. Will throw a bad_alloc if it fails so. + * Only to be called within allocateCacheObject. + */ + unsigned char* load(CacheObject* obj, unsigned int size); + + /** + * Removes cached data from a CO and marks it as unloaded. + * Only to be called when an exclusive lock has been obtained inside allocateCacheObject. + */ + void unload(CacheObject* obj); +}; + +#endif //CACHE_MANAGER_H diff --git a/.svn/pristine/8c/8c8949ace10703e18fc95bb8e370ebc76e41b112.svn-base b/.svn/pristine/8c/8c8949ace10703e18fc95bb8e370ebc76e41b112.svn-base new file mode 100644 index 0000000..590be13 --- /dev/null +++ b/.svn/pristine/8c/8c8949ace10703e18fc95bb8e370ebc76e41b112.svn-base @@ -0,0 +1,66 @@ +/* + * tracker implementation + * + * Copyright (C) ZhangLiang, YuanJun, Li Wei, Li Ming, Andreas Nuechter + * + * Released under the GPL version 3. + * + */ + +/** + * @file + * @brief Main programm for dynamic Velodyne SLAM + * + * @author Andreas Nuechter. Jacobs University Bremen, Germany + * @author YuanJun, Wuhan University, China + * @author ZhangLiang, Wuhan University, China + * @author Li Wei, Wuhan University, China + * @author Li Ming, Wuhan University, China + */ + +#include "veloslam/tracker.h" + +Tracker::Tracker(void) +{ + missMatch=false; + matchClusterID=-1; + colorIdx=-1; + + missedTime=0; + trackerID=0; +} + +Tracker::~Tracker(void) +{ + TrackerReset(); +} + +Tracker::Tracker(clusterFeature &glu,double rollAngle):kalmanFilter(glu,rollAngle) //added by yuanjun +{ + missMatch=false; + matchClusterID=-1; + colorIdx=-1; + missedTime=0; + trackerID=0; +} + +Tracker::Tracker(const Tracker ©Tracker) //added by yuanjun +{ + missMatch=copyTracker.missMatch; + matchClusterID=copyTracker.matchClusterID; + colorIdx=copyTracker.colorIdx; + statusList=copyTracker.statusList; + dataList=copyTracker.dataList; + kalmanFilter=copyTracker.kalmanFilter; + missedTime=copyTracker.missedTime; + moveStateList=copyTracker.moveStateList; + trackerID=copyTracker.trackerID; +} + +void Tracker::TrackerReset() +{ + statusList.clear(); + dataList.clear(); + moveStateList.clear(); + return; +} diff --git a/.svn/pristine/8c/8c897db38fbc4187fcaf2a421101f63e7979cdc1.svn-base b/.svn/pristine/8c/8c897db38fbc4187fcaf2a421101f63e7979cdc1.svn-base new file mode 100644 index 0000000..0f8e99a --- /dev/null +++ b/.svn/pristine/8c/8c897db38fbc4187fcaf2a421101f63e7979cdc1.svn-base @@ -0,0 +1,593 @@ +/* +This is a Optical-Character-Recognition program +Copyright (C) 2000-2008 Joerg Schulenburg + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + see README for email address + + ToDo: + - transform special xml bar code symbols (<>&) to xml symbols (<>&) + +*/ + +#include +#include +#include +#include "pgm2asc.h" +#include "gocr.h" +#include "pnm.h" + +#ifndef DO_DEBUG /* can be defined outside (configure --with-debug) */ +#define DO_DEBUG 0 /* 0 is the default */ +#endif + +#undef g_debug +#if DO_DEBUG +# define g_debug(a) a +#else +# define g_debug(a) +#endif + +/* + detect barcode and add a XML-string to the box (obj-pointer, ToDo) + ToDo: barcode-output stderr->stdout +*/ + +double sqr(double x) { return(x*x); } + +/* ----------------------------- code128 ---------------------------- * + * "BSBSBS", B=Bar, S=Space, better using 2*6=12bit-integer? */ +#define Num128 107 +const char *code128[Num128+1]={ /* can be generated by an algorithm? */ +/* 00 */"212222","222122","222221","121223","121322","131222","122213","122312", +/* 08 */"132212","221213","221312","231212","112232","122132","122231","113222", +/* 16 */"123122","123221","223211","221132","221231","213212","223112","312131", +/* 24 */"311222","321122","321221","312212","322112","322211","212123","212321", +/* 32 */"232121","111323","131123","131321","112313","132113","132311","211313", +/* 40 */"231113","231311","112133","112331","132131","113123","113321","133121", +/* 48 */"313121","211331","231131","213113","213311","213131","311123","311321", +/* 56 */"331121","312113","312311","332111","314111","221411","431111","111224", +/* 64 */"111422","121124","121421","141122","141221","112214","112412","122114", +/* 72 */"122411","142112","142211","241211","221114","413111","241112","134111", +/* 80 */"111242","121142","121241","114212","124112","124211","411212","421112", +/* 88 */"421211","212141","214121","412121","111143","111341","131141","114113", +/* 96 */"114311","411113","411311","113141","114131","311141","411131","211412", +/*104 */"211214","211232","2331112","???"}; + +/* + code128: see code128.tex by Petr Olsak (108 codes) + quiet_zone: size=10 (before and after code128) + num_bars=3*(start+chars[N]+crc+stop)+1 + B=bar S=space char=BSBSBS (size=11), stop=BSBSBSB (size=11+2) + Width: Bar,Space=1,[2,3,4] char=11 code=11*(N+3)+2 sumB=even,sumS=odd + startA="211412"=103 startB="211214"=104 startC="211232"=105(2dec_digits) + mode/code 0..95 96 97 98 99 100 101 102 103 104 105 106 + 1=A x20-x5f,0-x20 F3 F2 uB mC mB F4 F1 ^A ^B ^C $ + 2=B x20-x7f F3 F2 uA mC F4 mA F1 ^A ^B ^C $ + 3=C "00"-"95" "96" "97" "98" "99" mB mA F1 ^A ^B ^C $ + uA,uB: switch mode for next char, mA,mB: switch mode permanently + crc=(start+1*char1+2*char2+3*char3+...+N*charN) mod 103 + $=stop="2331112"=106 (4bars, with=13) => start/end==211 + return num of chars or string + + size B+W even-variants odd-variants num_codes + 11 = 8+3 = (1+3+4,2+2+4,2+3+3)+(1+1+1) => (6+3+3)*(1) = 12 + = 6+5 = (1+1+4,1+2+3,2+2+2)+(1+1+3,1+2+2) => (3+6+1)*(3+3) = 60 + = 4+7 = (1+1+2)+(1+2+4,1+3+3,2+2+3) => (3)*(6+3+3) = 36 + sum = 108 + */ + /* example: barcode -E -e 128c -b 1434600120000884 >a.eps */ + /* example: barcode -E -e 128b -b 14Test41 >a.eps */ + /* example: barcode -E -e 128raw -b 105 17 14 30 >a.eps */ + +char *decode_code128(int *wb, int num_bars){ + int i, w, i1, i2, i3=0, i4, i5=0, crc, mode=1; + double dww, dw, err, min_err; char cc, *buf; + char *result=NULL; /* malloc and store the result */ + + for(w=i=0;i<2*num_bars-1;i++) w+=wb[i]; /* summ all bars and spaces */ + + /* test code128 characteristics, ToDo: look for correct start/stop 211 seq. */ + if ((num_bars-1)%3!=0 || num_bars<10 || w<11*(num_bars-1)/3+2) + return 0; + g_debug(fprintf(stderr,"\n code128 b%d s%d b%d",wb[0],wb[1],wb[2]);) + if (3*wb[0]<4* wb[1] + || 3*wb[0]<4* wb[2] + || 4*wb[0]<3*(wb[1]+wb[2]) + || 3*wb[0]>4*(wb[1]+wb[2])) return 0; /* 211 */ + dw=3.0*w/((num_bars-1)*11+6); + /* get enough memory for all digits in longest mode C */ + buf =(char *) malloc( (num_bars-7)/3*2+1); if (!buf) return result; + result=(char *) malloc(256+(num_bars-7)/3*2+1); + + dww=crc=0; + for(i4=i1=0;i1<(num_bars-1)/3;i1++) { + for(min_err=1e8,i3=Num128,i5=0;i5102 && i3<106) mode=i3-103+1; crc=i3; } /* start */ + if(i1>0 && i1<(num_bars-1)/3-2){ + crc+=i3*(i1); cc=0; /* first * 1 + second * 2 + third * 3 ... */ + i5=((mode>3)?mode>>2:mode&3); mode&=3; /* mode can be modified now */ + switch (i5) { /* mode=1..3=modeA..modeC */ + case 1: if (i3>=64 && i3<96) cc=i3-64; /* modeA: x20-x5f,0-x20 */ + else cc=i3+32; + if (i3==101) mode=1; /* switch to mode A */ + if (i3== 99) mode=3; /* switch to mode C */ + if (i3== 98) mode|=2<<2; /* shift to mode B */ + break; + case 2: cc=i3+32; /* modeB: x20-x7f */ + if (i3==100) mode=2; /* switch to mode B */ + if (i3== 99) mode=3; /* switch to mode C */ + if (i3== 98) mode|=1<<2; /* shift to mode A */ + break; + case 3: + if (i3==101) mode=1; /* switch to mode A */ + if (i3==100) mode=2; /* switch to mode B */ + } + if (i5==3) { buf[i4]='0'+i3/10; i4++; + buf[i4]='0'+i3%10; i4++; } /* modeC: two digits */ + else { + if (cc>=0x20 && i3<=0x7f) { buf[i4]=cc; i4++; } /* modeA+B: one digit */ + if (cc>=0 && cc< 0x20) { buf[i4]='^'; i4++; + buf[i4]=cc+'@'; i4++; } + } + } + if(i1==(num_bars-1)/3-2){ crc=(crc+103-i3)%103; } + if(i1==(num_bars-1)/3-1){ if(i3!=106) i3=-1; } /* stop code */ + mode &= 3; /* remove shift */ + } + else fprintf(stderr," %s=%02d? ",buf,i5); + } + buf[i4]=0; /* end of string */ + if (result) + sprintf(result,"", + i4,buf,crc,dww/((num_bars-1))); + free(buf); + return result; +} + +/* -------------------------------------------------------------------- UPC + EAN 13 (UPC,(1+6+1+6+1)*2bars,size=3+6*7+5+6*7+3=95) + EAN 8 (UPC,(1+4+1+4+1)*2bars,size=3+4*7+5+4*7+3=67) + UPC: (10 codes) + BSB SBSB^n SBSBS BSBS^n BSB + bsb ...... sbsbs ...... bsb + 111 ...... 11111 ...... 111 + num_bars=2*(2*6+3) middle=SBSBS=11111 right/left=BSB=111="101" + char: left=SBSB right=BSBS (size=7) only_dec_digits + SS+BB = (S+S) + (B+B) => BB:SS = 5:2 or 3:4 + size ev+odd even + odd => variants + 7 = 2 + 5 = (1+1) + (1+4,2+3) => (1)*(2+2) = 4 codes + = 4 + 3 = (1+3,2+2) + (1+3) => (2+1)*(2) = 6 codes += 10 codes + ToDo: make it more robust + - return error as mean deviation + * -------------------------------------------------------------------- */ + /* example: barcode -E -e upc -b 12345678901 >a.eps # ok */ + /* example: barcode -E -e ean -b 123456789012 >a.eps # ok */ +#define NumUPC 20 +const char *codeUPC[NumUPC+1]={ /* 0..9, first n = SBSB, last n = BSBS */ + "3211","2221","2122","1411","1132", /* 0,1,2,3,4 normal (+0bit) */ + "1231","1114","1312","1213","3112", /* 5,6,7,8,9 */ + "1123","1222","2212","1141","2311", /* 0,1,2,3,4 mirrored (+1bit) */ + "1321","4111","2131","3121","2113", /* 5,6,7,8,9 */ + "????"}; /* not found */ + +char *decode_UPC(int *wb, int num_bars){ /* ToDo: char *dest, int len */ + int i, w, i1, i2, i3, i4, i5, crc, mirrored, ean; + double err, min_err, dw, dww=0.0; char digit; + char *result=NULL, *buf=NULL; /* malloc and store the result */ + for(w=i=0;i<2*num_bars-1;i++) w+=wb[i]; + + dw=2.0*w/((num_bars-6)*7+2*11); /* or min(wb[]) */ + crc=0; + if ((num_bars)%2!=0 || num_bars<10 || w<7*(num_bars-6)/2+11 + || ((num_bars-6)/2)%2!=0) return 0; /* should be balanced */ + /* check front BSB, middle SBSBS and end BSB */ + dww=0; + for (i=0;i<3;i++) { dww=sqr(wb[i ]/dw-1); if (dww>0.4) return 0; } + for (i=0;i<5;i++) { dww=sqr(wb[i+ num_bars-3]/dw-1); if (dww>0.4) return 0; } + for (i=0;i<3;i++) { dww=sqr(wb[i+2*num_bars-4]/dw-1); if (dww>0.4) return 0; } + buf =(char *)malloc( (num_bars-6)/2+1); if (!buf) return result; + result=(char *)malloc(256+(num_bars-6)/2+1); + + for(ean=i5=0,i1=3;i1<2*num_bars-4;i1+=4) { /* each digit (2bars+2spaces) */ + if (i1==num_bars-3) { i1++; continue; } /* skip middle sync SBSBS */ + for (i4=NumUPC,mirrored=0,digit='?',min_err=16e8,i2=0;i2 0yyyyy */ + switch (ean) { + case 11: ean=1; break; + case 13: ean=2; break; + case 14: ean=3; break; + case 19: ean=4; break; + case 25: ean=5; break; + case 28: ean=6; break; + case 21: ean=7; break; + case 22: ean=8; break; + case 26: ean=9; break; + default: ean=0; /* no or invalid EAN digit or UPC-extension */ + } crc+=ean*1; + /* ToDo: fix possible buffer OVL, complement crc */ + buf[i5]=0; + if (result) + sprintf(result,"", + i5+1,ean,buf,(10-crc%10)%10,dww/((num_bars-6)*2)); + free(buf); + return result; +} + + /* EAN/UPC add-on is either 2 or 5 digits. It always starts with a + * guard bar BSB, followed by ([digit + SB] * (N-1)) + digit. Digit is + * SBSB. Two digit add-on's have 7 bars, and 5 digit add ons have 16. + */ +char *decode_UPC_addon(int *wb, int num_bars){ /* ToDo: char *dest, int len */ + int i, w, i1, i2, i3, i4, i5, digits=num_bars/3; + double err, min_err, dw, dww=0.0; char digit; + char *result=NULL, *buf=NULL; /* malloc and store the result */ + if (num_bars!=7 && num_bars!=16) + return 0; + for(w=i=0;i<2*num_bars-1;i++) w+=wb[i]; + + dw=1.0*w/(digits*7+4 + (digits-1)*2); + /* check front BSB, and delineators SB */ + dww=0; + for (i=0;i<2;i++) { dww=sqr(wb[i]/dw-1); if (dww>0.4) return 0; } + dww=sqr(wb[i]*0.5/dw-1); if (dww>0.4) return 0; + for (i=1;i 0.4) return 0; + } + } + buf =(char *)malloc( digits+1); if (!buf) return result; + result=(char *)malloc(256+digits+1); + + for(i5=0,i1=3;i1<2*num_bars-1;i1+=6) { /* each digit (2bars+2spaces) */ + for (i4=NumUPC,digit='?',min_err=16e8,i2=0;i2", + i5, buf, dww/((num_bars-6)*2)); + free(buf); + return result; +} + + +/* --------------------------------------------------------- * + * code 3 of 9, 3 thick of 9 bars + * BSBSBSBSB size=7+3*aw aw=2(3), sumS/sumB=2/1? + * two widths: size=1 or size=2or3, digit_width=13(16) + * 5 bars and 4(+1) spaces per digit, last space is not used + * with 2 (or 0) thick bars, 1 (or 3) thick spaces per digit + * => 3 of 9 => max=9*8*7=504 + * evenBB=(0of5)+(2of5) oddSS=(1of4)+(3of4) max=44 + * ToDo: better code -...-.-.. as 046 or 083 (even,even,odd) + */ +#define Num39 (40+4) /* (3of9)=(2of5)(1of4)+(0of5)(3of4), (2of5)(.-..)=0..9 */ +const char *code39= /* rearranged to BBBBBSSSS (bars,spaces) */ + "0..--..-.." +"1-...-.-..""2.-..-.-..""3--....-..""4..-.-.-..""5-.-...-.." +"6.--...-..""7...--.-..""8-..-..-..""9.-.-..-.." +"A-...-..-.""B.-..-..-.""C--.....-.""D..-.-..-.""E-.-....-." +"F.--....-.""G...--..-.""H-..-...-.""I.-.-...-.""J..--...-." +"K-...-...-""L.-..-...-""M--......-""N..-.-...-""O-.-.....-" +"P.--.....-""Q...--...-""R-..-....-""S.-.-....-""T..--....-" +"U-...--...""V.-..--...""W--...-...""X..-.--...""Y-.-..-..." +"Z.--..-...""-...---..."".-..-.-..."" .-.-.-...""*..--.-..." +/* (0of5)(3of4)=(.....)(3of4) store only 3of4? */ +"$.....---.""/.....--.-""+.....-.--""%......---" +"?xxxxxxxxx"; + +/* example: barcode -E -e 39 -b 123abc | gs -sDEVICE=pnggray -r100 */ + +/* return index[] according to sorted values[], big first */ +void sort(int *value, int *idx, int len){ + int i,j; + for (j=0;jdw*2 || wb[ 1]<=dw*2 || wb[ 2]> dw*2) return 0; + if (wb[i-0]>dw*2 || wb[i-1]> dw*2 || wb[i-2]<=dw*2) return 0; +#endif + g_debug(fprintf(stderr," code39 base=%.3f chars=%2d\n ",dw,(num_bars)/5);) + buf =(char *)malloc( 1+(num_bars)/5); if (!buf) return result; + result=(char *)malloc(256+(num_bars)/5); + + for(i5=i1=0;i1<2*num_bars-3;i1+=10) { + /* ToDo: looking for three widest bars/gaps */ + sort(wb+i1,idx,9); + for(err=0,i3=3;i3<9;i3++) err+=sqr(wb[i1+idx[i3]]/dw-1.0); /* narrow=1, wide=2..3 */ + dww+=err; + for(i3=0;i30 && i5", + i5,buf,code39[(crc%44)*10],dww/((num_bars/5)*6)); + free(buf); + return result; +} + +/* code interleaved 2 of 5 + B B B B B <= digit 1,3,5,... + S S S S S <= digit 2,4,6,... + 1 2 4 7 0 <= weight digit=sum(bit*weight)%11 + */ +const char *code25= /* is the code sorted randomly? */ +"1-...-2.-..-3--...4..-.-5-.-..6.--..7...--8-..-.9.-.-.0..--."; + +/* example: barcode -E -e i25 -b 123456 >a.eps */ + +/* ToDo: decode_i25 (low priority) */ + +/* + decode barcode + - check main characteristics (num bars, min+max width, etc.) + - detect code type + - the current algorithm measures the width of bars and spaces + called by detect_barcode() + */ +char *decode_barcode(struct box *bb){ /* ToDo: char *dest, int len */ + int i, num_bars, yy, w, ww, dx, xx, cs=JOB->cfg.cs, *wb; + char *result=NULL; /* store the result */ + yy=(bb->y0+bb->y1)/2; + w=ww=bb->x1-bb->x0+1; + num_bars = num_cross(bb->x0,bb->x1,yy,yy,bb->p,JOB->cfg.cs); + if(JOB->cfg.verbose) + fprintf(stderr,"\n# ... detect bars=%3d w=%4d",num_bars,ww); + + /* store width of bars and spaces to buffer wb */ + wb=(int *)malloc(2*num_bars*sizeof(int)); if(!wb) return NULL; + xx=bb->x0; + xx-=loop(bb->p,xx,yy, 8,cs,1,LE); + xx+=loop(bb->p,xx,yy,ww,cs,0,RI); /* start with a bar! */ + for (i=0;i<2*num_bars;i++) { + dx=loop(bb->p,xx,yy,w,cs,1^(i&1),RI); + xx+=dx; + w-=dx; + wb[i]=dx; + } wb[2*num_bars-1]=0; + + /* ToDo: what about probability? if not unique + * - add argument char *result which can be modified or not, + * - or add box2? (would reuse of this code more difficult) + */ + /* test code128 characteristics, ToDo: look for correct start/stop 211 seq. */ + if ((num_bars-1)%3==0 && num_bars>=10 && ww>=11*(num_bars-1)/3+2){ + if (!result) result=decode_code128(wb,num_bars); + } + /* test UPC/EAN characteristics */ + if ((num_bars)%2==0 && num_bars>=8 && ww>=7*(num_bars-6)/2+11 + && ((num_bars-6)/2)%2==0){ /* should be balanced */ + if (!result) result=decode_UPC(wb,num_bars); + } + /* test UPC_addon by Michael van Rooyen, often on books */ + if (num_bars==7 || num_bars==16) + if (!result) result=decode_UPC_addon(wb,num_bars); + + /* test code39 characteristics */ + if ((num_bars)%5==0 && num_bars>14){ + if (!result) result=decode_39(wb,num_bars); + } + free(wb); + return result; +} + +/* + * taking the list of boxes and search for groups of bars (1D-barcodes) + */ +int detect_barcode(job_t *job) +{ + int j=0, j2=0, bx0, by0, bx1, by1, bdx, bdy, bbx, rm, + x0, y0, dx, dy, cs, y, yl0, yl1, yr0, yr1; + struct box *box2, *box3; + + if(JOB->cfg.verbose) + fprintf(stderr,"# barcode.c detect_barcode "); + x0=y0=0; rm=0; dx=job->src.p.x; dy=job->src.p.y; cs=JOB->cfg.cs; + for_each_data(&(JOB->res.boxlist)) { + box2 = (struct box *)list_get_current(&(JOB->res.boxlist)); + /* detect width (bdx) and height (bdy) of possible bar */ + /* ToDo: better check for a line */ + bdx=box2->x1-box2->x0+1 /* substract correction for skewed bars */ + -loop(box2->p,box2->x1,(box2->y0+box2->y1)/2,box2->x1-box2->x0,cs,0,LE) + -loop(box2->p,box2->x0,(box2->y0+box2->y1)/2,box2->x1-box2->x0,cs,0,RI); + bdy=box2->y1-box2->y0+1; + if (box2->c == PICTURE || box2->c == UNKNOWN) + if (box2->y0 >= y0 && box2->y1 <= y0 + dy /* within frame? */ + && box2->x0 >= x0 && box2->x1 <= x0 + dx + && box2->y1 - box2->y0 > 19 /* min. length */ + && box2->y1 - box2->y0 > 8 * bdx + ) { /* a bar? */ + j=1; /* number of bars */ + bx0=box2->x0; bx1=box2->x1; /* initial values for barcode frame */ + by0=box2->y0; by1=box2->y1; + bbx=bx1-bx0+2; /* width of bar */ + /* this is for scans which are not exactly horizontal */ + yl0=yr0=by0; /* left and right upper bound */ + yl1=yr1=by1; /* left and right lower bound */ + /* --- iteratively take into account next nearest bar --- + * this is important, because bar-boxes are not in right order */ + for (j2=1;j2;) { + j2=0; + /* expand a frame around the potential barcode (bx0,by0,bx1,by1) */ + for_each_data(&(JOB->res.boxlist)) { + box3 = (struct box *)list_get_current(&(JOB->res.boxlist)); + /* bdy=box3->y1-box3->y0+1; */ + if (box2!=box3) + if (box3->c == PICTURE || box3->c == UNKNOWN) + if (box3->y0 >= y0 && box3->y1 <= y0 + dy /* within image */ + && box3->x0 >= x0 && box3->x1 <= x0 + dx + && box3->y1 - box3->y0 > 19 /* min. length */ + && box3->y1 - box3->y0 > 4 * (bdx) /* height > 4*width2 */ + && box3->x1 - box3->x0 < 4 * (bdy) /* width < height/4 = bar */ + && (( abs(box3->y0-by0)y1-by1)y0-yl0)y1-yl1)x0 <= bx0 ) + ||( abs(box3->y0-yr0)y1-yr1)x0 >= bx1 ) ) + && box3->x0 > bx0 - 12*bbx /* startspace=5...10 */ + && box3->x1 < bx1 + 12*bbx + && box3->x0 > bx0 - bdy/2 /* dont glue two barcodes together */ + && box3->x1 < bx1 + bdy/2 /* ex: ean13a.jpg */ + /* dont check bars which already within the frame twice ? */ + && ( box3->x1 > bx1 || box3->x0 < bx0 ) + ) { /* a bar? -> extend barcode frame only in x direction */ + /* take minimum of y to have valid barcode for all y */ + if (box3->x0x0; yl0=box3->y0; yl1=box3->y1; } + if (box3->x1>bx1) { bx1=box3->x1; yr0=box3->y0; yr1=box3->y1; } + if (4*(box3->y1-box3->y0)>3*(by1-by0)) { /* carefull reduce */ + if (box3->y0>by0) by0=box3->y0; /* ToDo: fix for non-horizontal */ + if (box3->y1y1; + } + j++; /* found a near bar and count to num bars */ + j2=1; /* continue searching (endless loop?) */ + } + } end_for_each(&(JOB->res.boxlist)); + } + /* j is the num of bars found above, some inner bars are not counted */ + /* ToDo: better iterative add next nearest bars from sorted list near bars? */ + if (j>5) { + char *code=0; + box2->c=PICTURE; /* BARCODE */ + box2->x0=bx0; box2->y0=by0; + box2->x1=bx1; box2->y1=by1; + /* ToDo: add pointer to decoded text */ + + y=(box2->y0+box2->y1)/2; + if (JOB->cfg.verbose){ + int nbars; + nbars=num_cross(box2->x0,box2->x1,y,y,box2->p,JOB->cfg.cs); + fprintf(stderr,"\n# barcode at %3d %3d size %3d %3d nbars %d (%d)", + bx0,by0,bx1-bx0+1,by1-by0+1,nbars,j); + if (j!=nbars) + fprintf(stderr,"\n# ... trouble: num_found_bars != num_cross"); + /* this is because some far bars are detected before near bars */ + } + /* transport the info to the gocr-output (development) */ + /* ToDo: decode and print/store barcode bars=j */ + code=decode_barcode(box2); /* ToDo: char *dest, int len */ + if (!code) { /* failed */ + code=(char *)malloc(128); + /* ToDo: analyze and output num_bars, width of bars etc. */ + if(code) strncpy(code,"",128); + } + if (JOB->cfg.verbose) + fprintf(stderr,"\n# ... decoded as: %s", code); + setas(box2,code,99); /* ToDo: set a better weight */ + free(code); + + /* remove inner boxes, only if sure!? (ToDo: use cfg.certainty) */ + for_each_data(&(JOB->res.boxlist)) { + box3 = (struct box *)list_get_current(&(JOB->res.boxlist)); + /* bdy=box3->y1-box3->y0+1; */ + if (box2!=box3) + if (box3->c == PICTURE || box3->c == UNKNOWN) + if ( abs(box3->y0-by0)y1-by1)x1 <= bx1 + && box3->x0 >= bx0 + ) { + rm++; /* count removed boxes */ + list_del(&(JOB->res.boxlist),box3); + free_box(box3); + } + } end_for_each(&(JOB->res.boxlist)); + if (JOB->cfg.verbose) + fprintf(stderr,"\n# ... removed boxes: %d", rm); + rm=0; + } + } + } end_for_each(&(JOB->res.boxlist)); + + /* recalculate averages without bars */ + JOB->res.numC=JOB->res.sumX=JOB->res.sumY=j2=0; + for_each_data(&(JOB->res.boxlist)) { + j2++; + box3 = (struct box *)list_get_current(&(JOB->res.boxlist)); + if (box3->c==PICTURE) continue; + JOB->res.numC++; /* count remaining boxes */ + JOB->res.sumX+=box3->x1-box3->x0+1; + JOB->res.sumY+=box3->y1-box3->y0+1; + } end_for_each(&(JOB->res.boxlist)); + if(JOB->cfg.verbose) + fprintf(stderr,"\n# ... boxes %d nC %d\n", + j2, JOB->res.numC); + + return 0; +} + diff --git a/.svn/pristine/8c/8ca32e60ada622671248febac96e9c8db0874e7c.svn-base b/.svn/pristine/8c/8ca32e60ada622671248febac96e9c8db0874e7c.svn-base new file mode 100644 index 0000000..c167f20 --- /dev/null +++ b/.svn/pristine/8c/8ca32e60ada622671248febac96e9c8db0874e7c.svn-base @@ -0,0 +1,35 @@ +/** + * @file + * @brief IO of a 3D scan in oct-file format + * @author Jan Elsberg. Automation Group, Jacobs University Bremen gGmbH, Germany. + */ + +#ifndef __SCAN_IO_OCT_H__ +#define __SCAN_IO_OCT_H__ + +#include +using std::string; +#include +using std::vector; + +#include "scan_io.h" + +/** + * @brief 3D scan loader for from binary octree files + * + * The compiled class is available as shared object file + */ +class ScanIO_oct : public ScanIO { +public: + virtual int readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss); +}; + +// Since this shared object file is loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/.svn/pristine/8c/8ca383259bf302a2a1a7b8500a98c36558fc6a11.svn-base b/.svn/pristine/8c/8ca383259bf302a2a1a7b8500a98c36558fc6a11.svn-base new file mode 100644 index 0000000..ca4acd6 --- /dev/null +++ b/.svn/pristine/8c/8ca383259bf302a2a1a7b8500a98c36558fc6a11.svn-base @@ -0,0 +1,322 @@ +/* + * exportPoints implementation + * + * Copyright (C) Jochen Sprickerhof + * + * Released under the GPL version 3. + * + */ + + +/** + * @file + * @author Jochen Sprickerhof. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include +using std::string; +#include +using std::cout; +using std::cerr; +using std::endl; +#include +using std::ifstream; +#include +using std::exception; + +#include +#include + +#include "slam6d/scan.h" +#include "slam6d/globals.icc" + +#ifndef _MSC_VER +#include +#else +#include "XGetopt.h" +#endif + +#ifdef _MSC_VER +#define strcasecmp _stricmp +#define strncasecmp _strnicmp +#else +#include +#endif + +/** + * Explains the usage of this program's command line parameters + */ +void usage(char* prog) +{ +#ifndef _MSC_VER + const string bold("\033[1m"); + const string normal("\033[m"); +#else + const string bold(""); + const string normal(""); +#endif + cout << endl + << bold << "USAGE " << normal << endl + << " " << prog << " [options] directory" << endl << endl; + cout << bold << "OPTIONS" << normal << endl + + << endl + << bold << " -e" << normal << " NR, " << bold << "--end=" << normal << "NR" << endl + << " end after scan NR" << endl + << endl + << bold << " -f" << normal << " F, " << bold << "--format=" << normal << "F" << endl + << " using shared library F for input" << endl + << " (chose F from {uos, uos_map, uos_rgb, uos_frames, uos_map_frames, old, rts, rts_map, ifp, riegl_txt, riegl_rgb, riegl_bin, zahn, ply})" << endl + << endl + << bold << " -m" << normal << " NR, " << bold << "--max=" << normal << "NR" << endl + << " neglegt all data points with a distance larger than NR 'units'" << endl + << endl + << bold << " -M" << normal << " NR, " << bold << "--min=" << normal << "NR" << endl + << " neglegt all data points with a distance smaller than NR 'units'" << endl + << endl + << bold << " -O" << normal << " NR (optional), " << bold << "--octree=" << normal << "NR (optional)" << endl + << " use randomized octree based point reduction (pts per voxel=)" << endl + << " requires -r or --reduce" << endl + << endl + << bold << " -p, --trustpose" << normal << endl + << " Trust the pose file, do not extrapolate the last transformation." << endl + << " (just for testing purposes, or gps input.)" << endl + << endl + << endl + << bold << " -r" << normal << " NR, " << bold << "--reduce=" << normal << "NR" << endl + << " turns on octree based point reduction (voxel size=)" << endl + << endl + << bold << " -R" << normal << " NR, " << bold << "--random=" << normal << "NR" << endl + << " turns on randomized reduction, using about every -th point only" << endl + << endl + << bold << " -s" << normal << " NR, " << bold << "--start=" << normal << "NR" << endl + << " start at scan NR (i.e., neglects the first NR scans)" << endl + << " [ATTENTION: counting naturally starts with 0]" << endl + << endl + << endl << endl; + + cout << bold << "EXAMPLES " << normal << endl + << " " << prog << " -s 2 -e 3 dat" << endl << endl; + exit(1); +} + + +/** A function that parses the command-line arguments and sets the respective flags. + * @param argc the number of arguments + * @param argv the arguments + * @param dir the directory + * @param red using point reduction? + * @param rand use randomized point reduction? + * @param mdm maximal distance match + * @param mdml maximal distance match for SLAM + * @param mni maximal number of iterations + * @param start starting at scan number 'start' + * @param end stopping at scan number 'end' + * @param maxDist - maximal distance of points being loaded + * @param minDist - minimal distance of points being loaded + * @param quiet switches on/off the quiet mode + * @param veryQuiet switches on/off the 'very quiet' mode + * @param extrapolate_pose - i.e., extrapolating the odometry by the last transformation + * (vs. taking the pose file as exact) + * @param meta match against all scans (= meta scan), or against the last scan only??? + * @param anim selects the rotation representation for the matching algorithm + * @param mni_lum sets the maximal number of iterations for SLAM + * @param net specifies the file that includes the net structure for SLAM + * @param cldist specifies the maximal distance for closed loops + * @param epsilonICP stop ICP iteration if difference is smaller than this value + * @param epsilonSLAM stop SLAM iteration if average difference is smaller than this value + * @param algo specfies the used algorithm for rotation computation + * @param lum6DAlgo specifies the used algorithm for global SLAM correction + * @param loopsize defines the minimal loop size + * @return 0, if the parsing was successful. 1 otherwise + */ +int parseArgs(int argc, char **argv, string &dir, double &red, int &rand, + int &start, int &end, int &maxDist, int &minDist, bool &extrapolate_pose, + int &octree, IOType &type) +{ + int c; + // from unistd.h: + extern char *optarg; + extern int optind; + + /* options descriptor */ + // 0: no arguments, 1: required argument, 2: optional argument + static struct option longopts[] = { + { "format", required_argument, 0, 'f' }, + { "start", required_argument, 0, 's' }, + { "end", required_argument, 0, 'e' }, + { "reduce", required_argument, 0, 'r' }, + { "octree", optional_argument, 0, 'O' }, + { "random", required_argument, 0, 'R' }, + { "trustpose", no_argument, 0, 'p' }, + { 0, 0, 0, 0} // needed, cf. getopt.h + }; + + cout << endl; + while ((c = getopt_long(argc, argv, "f:s:e:r:O:R:p", longopts, NULL)) != -1) + switch (c) + { + case 'r': + red = atof(optarg); + break; + case 'O': + if (optarg) { + octree = atoi(optarg); + } else { + octree = 1; + } + break; + case 'R': + rand = atoi(optarg); + break; + case 's': + start = atoi(optarg); + if (start < 0) { cerr << "Error: Cannot start at a negative scan number.\n"; exit(1); } + break; + case 'e': + end = atoi(optarg); + if (end < 0) { cerr << "Error: Cannot end at a negative scan number.\n"; exit(1); } + if (end < start) { cerr << "Error: cannot be smaller than .\n"; exit(1); } + break; + case 'm': + maxDist = atoi(optarg); + break; + case 'M': + minDist = atoi(optarg); + break; + case 'p': + extrapolate_pose = false; + break; + case 'f': + try { + type = formatname_to_io_type(optarg); + } catch (...) { // runtime_error + cerr << "Format " << optarg << " unknown." << endl; + abort(); + } + break; + case '?': + usage(argv[0]); + return 1; + default: + abort (); + } + + if (optind != argc-1) { + cerr << "\n*** Directory missing ***" << endl; + usage(argv[0]); + } + dir = argv[optind]; + +#ifndef _MSC_VER + if (dir[dir.length()-1] != '/') dir = dir + "/"; +#else + if (dir[dir.length()-1] != '\\') dir = dir + "\\"; +#endif + + return 0; +} + +void readFrames(string dir, int start, int end, IOType &type) +{ + ifstream frame_in; + int fileCounter = start; + string frameFileName; + for (;;) { + if (end > -1 && fileCounter > end) break; // 'nuf read + frameFileName = dir + "scan" + to_string(fileCounter++,3) + ".frames"; + + frame_in.open(frameFileName.c_str()); + + // read 3D scan + if (!frame_in.good()) break; // no more files in the directory + + cout << "Reading Frames for 3D Scan " << frameFileName << "..." << endl; + + // vector Matrices; +// vector algoTypes; + double transMat[16]; + int algoTypeInt; + + while (frame_in.good()) { + try { + frame_in >> transMat >> algoTypeInt; + } + catch (const exception &e) { + break; + } + } + + if(type == UOS_MAP || type == UOS_MAP_FRAMES || type == RTS_MAP) { + Scan::allScans[fileCounter - start]->transformAll(transMat); + if(fileCounter == start+1) { + Scan::allScans[0]->transformAll(transMat); + } + } else { + Scan::allScans[fileCounter - start - 1]->transformAll(transMat); + } + + frame_in.close(); + frame_in.clear(); + } +} + +/** + * program for point export + * Usage: bin/exportPoints 'dir', + * with 'dir' the directory of a set of scans + * ... + */ +int main(int argc, char **argv) +{ + if (argc <= 1) { + usage(argv[0]); + } + + // parsing the command line parameters + // init, default values if not specified + string dir; + double red = -1.0; + int rand = -1; + int start = 0, end = -1; + int maxDist = -1; + int minDist = -1; + bool eP = true; // should we extrapolate the pose?? + int octree = 0; // employ randomized octree reduction? + IOType type = UOS; + +// parseArgs(argc, argv, dir, red, rand, start, end, +// maxDist, minDist, eP, octree, type); +// +// // Get Scans +// Scan::readScans(type, start, end, dir, maxDist, minDist, true); +// +// int end_reduction = (int)Scan::allScans.size(); +//#ifdef _OPENMP +//#pragma omp parallel for schedule(dynamic) +//#endif +// for (int iterator = 0; iterator < end_reduction; iterator++) { +// if (red > 0) { +// cout << "Reducing Scan No. " << iterator << endl; +// } else { +// cout << "Copying Scan No. " << iterator << endl; +// } +// // reduction filter for current scan! +// Scan::allScans[iterator]->calcReducedPoints(red, octree); +// } +// +// if(eP) { +// readFrames(dir, start, end, type); +// } +// +// cout << "Export all 3D Points to file \"points.pts\"" << endl; +// ofstream redptsout("points.pts"); +// for(unsigned int i = 0; i < Scan::allScans.size(); i++) { +// const vector *points = Scan::allScans[i]->get_points(); +// for(unsigned int j = 0; j < points->size(); j++) { +// redptsout << points->at(j) << endl; +// } +// } +// redptsout.close(); +// redptsout.clear(); +} diff --git a/.svn/pristine/8d/8d2c611c2c585a5c832f0c3fb3c3b39eaa5bb586.svn-base b/.svn/pristine/8d/8d2c611c2c585a5c832f0c3fb3c3b39eaa5bb586.svn-base new file mode 100644 index 0000000..fa598a4 --- /dev/null +++ b/.svn/pristine/8d/8d2c611c2c585a5c832f0c3fb3c3b39eaa5bb586.svn-base @@ -0,0 +1,401 @@ +/* + * scan_ransac implementation + * + * Copyright (C) Dorit Borrmann + * + * Released under the GPL version 3. + * + */ + +#define WANT_STREAM ///< define the WANT stream :) +#include +using std::string; +#include +using std::cout; +using std::cerr; +using std::endl; +#include +using std::ofstream; +#include +#include + +#include "slam6d/scan_io.h" +#include "slam6d/globals.icc" +#include + +#include "shapes/geom_math.h" +#include "shapes/integralimg.h" +#include "shapes/scan_ransac.h" +#include "shapes/NumberRecOctree.h" + +#ifdef _OPENMP +#include +#endif + + +#ifndef _MSC_VER +#include +#else +#include "XGetopt.h" +#endif + +#ifdef _MSC_VER +#define strcasecmp _stricmp +#define strncasecmp _strnicmp +#include +#include +#else +#include +#include +#include +#include +#endif + + +void *dummy(void *nd) { + NumberDetector *ND = (NumberDetector *)nd; + ND->RANSAC(*(ND->scan_points)); + return 0; +} + + +///////////////// constants for RANSAC and number recognition +void NumberDetector::printNumbers() { + for (int i = 0; i < 10; i++) + cout << detectedNumbers[i].getConsensus() << endl; + cout << endl; +} + +// comment the following line if you want greyscale image +#define BINARY_IMG +#include "shapes/config_sickday.h" +#include "shapes/numberrec.h" + +int image_counter = 0; + + +bool NumberDetector::FindNumber(vector &points, double plane[4]) { + bool res = false; + double maxx = -DBL_MAX; + double minx = DBL_MAX; + double maxz = -DBL_MAX; + double minz = DBL_MAX; + + // rotate onto the floor plane + double t[3]; t[0] = t[1] = t[2] = 0.0; + double alignxf[16]; + double aa[4]; + aa[0] = -1.0 * acos(plane[1]); + aa[1] = plane[2] / sqrt( plane[2]*plane[2] + plane[0]*plane[0] ); + aa[2] = 0; + aa[3] = -plane[0] / sqrt( plane[2]*plane[2] + plane[0]*plane[0] ); + + AAToMatrix(aa, t, alignxf); + + /////// acount for rotation around y axis + double up[3]; + double rPT[3]; + double rmat[16]; + double tmp[16]; + Cross(plane, aa+1, up); + Normalize3(up); + + // check wether up goes up or down, and flip if it goes down + if (up[1] < 0) { + up[0] = -up[0]; + up[1] = -up[1]; + up[2] = -up[2]; + } + + double upx = up[0] * alignxf[0] + up[1] * alignxf[4] + up[2] * alignxf[8]; +// double upy = up[0] * alignxf[1] + up[1] * alignxf[5] + up[2] * alignxf[9]; // should be redundant + double upz = up[0] * alignxf[2] + up[1] * alignxf[6] + up[2] * alignxf[10]; + + rPT[0] = rPT[2] = 0.0; + rPT[1] = atan2(upz, upx) + M_PI/2.0; + EulerToMatrix4(t, rPT, rmat); + + // combine rotation onto plane with rotaion around y + MMult(rmat, alignxf, tmp); + for (int i = 0; i < 16; i++) { + alignxf[i] = tmp[i]; + } + // done + + // compute 2d projection of the points, and scale reflectivity + double **npoints = new double*[points.size()]; + for (unsigned int i = 0; i < points.size(); i++) { + double *p = points[i]; + npoints[i] = new double[4]; + + npoints[i][0] = -(p[0] * alignxf[0] + p[1] * alignxf[4] + p[2] * alignxf[8]); + npoints[i][1] = p[0] * alignxf[1] + p[1] * alignxf[5] + p[2] * alignxf[9]; // this should be redundant + npoints[i][2] = p[0] * alignxf[2] + p[1] * alignxf[6] + p[2] * alignxf[10]; + + npoints[i][3] = (p[3] - MINREFL ) / (MAXREFL - MINREFL) ; // scale between 0 and 1 + if (npoints[i][3] > 1.0) npoints[i][3] = 1.0; // 0 and 1 _are_ min and max + if (npoints[i][3] < 0.0) npoints[i][3] = 0.0; + + if (npoints[i][0] > maxx) maxx = npoints[i][0]; + if (npoints[i][0] < minx) minx = npoints[i][0]; + if (npoints[i][2] > maxz) maxz = npoints[i][2]; + if (npoints[i][2] < minz) minz = npoints[i][2]; + } + + + // create a binary image which is used to find a rectangular shape using integral images + double lx = maxx - minx; + double lz = maxz - minz; + int maxppm = 0; + if (lx > 50.0 && lz > 70.0) { // only if point cloud has the necessary extent TODO change magic numbers + int px = lx / IMG_RES +1; + int pz = lz / IMG_RES +1; + + int **image = new int*[px]; // allocate mem + for (int i = 0; i < px; i++) { + image[i] = new int[pz]; + } + + for (int i = 0; i < px; i++) { + for (int j = 0; j < pz; j++) { + image[i][j] = 0; + } + } + for (unsigned int i = 0; i < points.size(); i++) { + double *p = npoints[i]; + int x = (double)(px-1) * ( p[0]-minx ) / lx; + int z = (double)(pz-1) * ( p[2]-minz ) / lz; + image[x][z] = 1; + } + + // compute integral image and compute best haar feature to detect a board + int XX, ZZ; + double SCORE; + integral_img iimg(image, px, pz); + SCORE = iimg.getBest( XX, ZZ); + + // with some certainty there is a rectangular part in the image that is number-sized + if (SCORE > MIN_SCORE) { + #ifndef BINARY_IMG + maxppm = 4096; // greyscale + #else + maxppm = 1; // binary + #endif + // create number part of the image with reflectance values... + int maxx = XX + BOARD_SIZE_X < px ? XX + BOARD_SIZE_X : px; + int maxz = ZZ + BOARD_SIZE_Z < pz ? ZZ + BOARD_SIZE_Z : pz; + for (int i = XX; i < maxx ; i++) { + for (int j = ZZ; j < maxz; j++) { + image[i][j] = -1; // remember pixel where no points were + } + } + + int NRPTS = 0; + double center[3]; center[0] = center[1] = center[2] = 0.0; + + for (unsigned int i = 0; i < points.size(); i++) { + double *p = npoints[i]; + double x = (double)(px-1) * ( p[0]-minx ) / lx; + double z = (double)(pz-1) * ( p[2]-minz ) / lz; + double xi, zi; + x = modf(x, &xi); + z = modf(z, &zi); + + if (x < 0.5){ + xi--; + x += 1.0; + } + if (z < 0.5) { + zi--; + z += 1.0; + } + + // points not on the board need not to be used + if (xi < XX || zi < ZZ || xi > maxx || zi > maxz) continue; + + // count number of points for normalizing + NRPTS++; + center[0] += points[i][0]; + center[1] += points[i][1]; + center[2] += points[i][2]; + + // Use smooth binning with 4096 gray values + if ( (int)xi < px && (int)zi < pz ) { + image[(int)xi][(int)zi] += ( (1.5 - x) * (1.5 - z) * p[3]) * 4096; + if (image[(int)xi][(int)zi] > maxppm) maxppm = image[(int)xi][(int)zi]; + } + + if ( (int)xi + 1 < px && (int)zi < pz ) { + image[(int)xi + 1][(int)zi] += ((x - 0.5) * (1.5 - z) * p[3]) * 4096; + if (image[(int)xi + 1][(int)zi] > maxppm) maxppm = image[(int)xi+1][(int)zi]; + } + + if ( (int)xi < px && (int)zi + 1 < pz ) { + image[(int)xi][(int)zi + 1] += ((1.5 - x) * (z - 0.5) * p[3]) * 4096; + if (image[(int)xi][(int)zi + 1] > maxppm) maxppm = image[(int)xi][(int)zi+1]; + } + + if ( (int)xi + 1 < px && (int)zi + 1 < pz ) { + image[(int)xi + 1][(int)zi + 1] += ((x - 0.5) * (z - 0.5) * p[3]) * 4096; + if (image[(int)xi + 1][(int)zi + 1] > maxppm) maxppm = image[(int)xi+1][(int)zi+1]; + } + } + /////////////////////////////////// +#ifndef BINARY_IMG + int MAX = 0; + int MIN = 1000000000; + int AVG = 0; +#endif + // color pixels on the border of the image white ( to remove the black border on the board and the inevitable part where no points are) + for (int i = XX; i < maxx ; i++) { + for (int j = ZZ; j < maxz; j++) { +// if ( (j < ZZ + WHITE_BORDER - 1 || j > maxz - WHITE_BORDER - 2 ) || ( i < XX + WHITE_BORDER + 1 || i > maxx - WHITE_BORDER ) ) { + if ( (j < ZZ + WHITE_BORDER || j > maxz - WHITE_BORDER ) || ( i < XX + WHITE_BORDER || i > maxx - WHITE_BORDER ) ) { + image[i][j] = maxppm; + } +#ifndef BINARY_IMG + if (image[i][j] > 0 && image[i][j] < MIN) MIN = image[i][j]; + if (image[i][j] > MAX) MAX = image[i][j]; + if (image[i][j] > 0) AVG += image[i][j]; +#endif + } + } + + string filename = "patch" + to_string(image_counter++, 5) + ".pgm"; + ofstream of(filename.c_str(), std::ios::out); + +#ifndef BINARY_IMG + of << "P2" << endl << (maxx - XX) << " " << (maxz - ZZ) << endl << 4096 << endl; // greyscale +#else + unsigned char ibuffer[(maxx - XX)*(maxz - ZZ)]; // binary + of << "P5" << endl << (maxx - XX) << " " << (maxz - ZZ) << endl << 1 << endl; // binary +#endif + + unsigned int l = 0; + double val; // temporary value that contains the calibrated reflectivity of a pixel + double factor = 4096.0/maxppm; + for (int j = ZZ; j < maxz; j++) { + for (int i = XX; i < maxx; i++) { +#ifndef BINARY_IMG + // of << image[i][j] << " "; + if (image[i][j] == -1) { + of << 0 << " "; + } else { + of << (int)(factor*image[i][j]) << " "; + } +#else + if (image[i][j] == -1) { + ibuffer[l++] = (unsigned char)0; + } else { + //val = ((double)image[i][j]-MIN)/((double)(MAX-MIN)); + val = ((double)image[i][j])/((double)(NRPTS)); + if (val > REFL_THRESHOLD) { + //if (image[i][j] > 0.25*maxppm) + //if (image[i][j] > 4000) + ibuffer[l++] = (unsigned char)1; + } else { + ibuffer[l++] = (unsigned char)0; + } + } +#endif + } + } + +#ifdef BINARY_IMG + of.write((const char*)ibuffer, sizeof(unsigned char) * (maxx - XX) * (maxz - ZZ)); +#endif + + // done writing board + of.close(); + + double probability; + int number; + // attempt to use OCR + if ( gocr_recognizeNumber(filename, number, probability) ) { + cout << filename << ": Best number is " << number << " with p = " << probability << endl; + + center[0] = center[0] / NRPTS; + center[1] = center[1] / NRPTS; + center[2] = center[2] / NRPTS; + + // remember hypothesis, scale SCORE to a more useful value + SCORE = (SCORE - SCORE_SCALE) / (1.0 - SCORE_SCALE); + + // decide where to put the number + if (number == 1 && detectedNumbers[7].isClose( center) ) { // a 7 can be seen as a 1 + detectedNumbers[7].addObservation(7, probability, SCORE, center, plane); + } else if (number == 0 && detectedNumbers[8].isClose( center) ) { // an 8 can be mistaken for a 0 + detectedNumbers[8].addObservation(8, probability, SCORE, center, plane); + } else if (number == 9 && detectedNumbers[8].isClose( center) ) { // an 8 can be mistaken for a 9 + detectedNumbers[8].addObservation(8, probability, SCORE, center, plane); + } else { // usual case + detectedNumbers[number].addObservation(number, probability, SCORE, center, plane); + } + + res = true; + } + } + + + // remove image + for (int i = 0; i < px; i++) { + delete[] image[i]; + } + delete[] image; + } + + // remove projected points + for (unsigned int i = 0; i < points.size(); i++) { + delete[] npoints[i]; + } + delete[] npoints; + return res; +} + + +void NumberDetector::RANSAC(vector &scan_points) { + // stores 3 sample points + vector ps; + double a[3], b[3], c[3], plane[4]; + // create octree from the points + NumberRecOctTree *oct = new NumberRecOctTree(scan_points, 50.0, PointType::USE_REFLECTANCE ); + + scan_points.clear(); + while(true) { + ps.clear(); + oct->DrawPoints(ps, 3); + + if ( !ps.empty()) { // if we have random points + for (int j = 0; j < 3;j++) { // compute plane + a[j] = ps[0][j] - ps[1][j]; + b[j] = ps[0][j] - ps[2][j]; + c[j] = ps[0][j] + ps[1][j] + ps[2][j]; + c[j] /= 3.0; + } + Cross(a,b, plane); + if (fabs(Len2(plane)) < 0.0001 ) continue; // points are collinear + Normalize3(plane); + if (fabs(plane[1]) > 0.8) continue; // plane is floor or ceiling + + plane[3] = -1.0 * planeDist(c, plane[0], plane[1], plane[2], 0); // compute distance from origin + if (plane[3] < 0.0) { // flip normal if necessary + for (int j = 0; j < 4;j++) { + plane[j] = -plane[j]; + } + } + // count number of points on the plane + int r = oct->PointsOnNumber(plane, MAX_DIST_TO_PLANE, c, 105.0); + + if (r > MIN_NR_PTS) { + vector points; + oct->PointsOnNumber(plane, MAX_DIST_TO_PLANE, c, 105.0, points); + if ( FindNumber(points, plane) ) { + printNumbers(); + } + } + + } + } + + delete oct; +} diff --git a/.svn/pristine/8d/8d5307f5e82905e6b299f91928076f36649661ce.svn-base b/.svn/pristine/8d/8d5307f5e82905e6b299f91928076f36649661ce.svn-base new file mode 100644 index 0000000..c9158d5 --- /dev/null +++ b/.svn/pristine/8d/8d5307f5e82905e6b299f91928076f36649661ce.svn-base @@ -0,0 +1,126 @@ +/* + * elch6Deuler implementation + * + * Copyright (C) Jochen Sprickerhof + * + * Released under the GPL version 3. + * + */ + +/** + * @file ELCH implementation using Euler angles + * @author Jochen Sprickerhof. Institute of Computer Science, University of Osnabrueck, Germany. + */ + + +#include "slam6d/elch6Deuler.h" + +#include "slam6d/metaScan.h" +#include "slam6d/lum6Deuler.h" + +#include +using std::cout; +using std::cerr; +using std::endl; + +#include +using std::ofstream; + +#include +using boost::graph_traits; +using namespace NEWMAT; + +#ifdef _MSC_VER +#define tie tr1::tie +#endif + +/** + * ELCH loop closing function using Euler angles + * matches first and last scan of a loop with ICP + * distributes the error + * + * @param allScans all laser scans + * @param first index of first laser scan in the loop + * @param last indes of last laser scan in the loop + * @param g graph for loop optimization + */ +void elch6Deuler::close_loop(const vector &allScans, int first, int last, graph_t &g) +{ + int n = num_vertices(g); + graph_t grb[6]; + Matrix C(6, 6); + graph_traits ::edge_iterator ei, ei_end; + for(tie(ei, ei_end) = edges(g); ei != ei_end; ei++) { + int from = source(*ei, g); + int to = target(*ei, g); + lum6DEuler::covarianceEuler(allScans[from], allScans[to], my_icp6D->get_nns_method(), my_icp6D->get_rnd(), my_icp6D->get_max_dist_match2(), &C); + C = C.i(); + for(int j = 0; j < 6; j++) { + add_edge(from, to, fabs(C(j + 1, j + 1)), grb[j]); + } + } + + double *weights[6]; + for(int i = 0; i < 6; i++) { + weights[i] = new double[n]; + graph_balancer(grb[i], first, last, weights[i]); + } + + vector meta_start; + meta_start.push_back(allScans[first]); + meta_start.push_back(allScans[first + 1]); + meta_start.push_back(allScans[first + 2]); + MetaScan *start = new MetaScan(meta_start, false, false); + vector meta_end; + meta_end.push_back(allScans[last - 2]); + meta_end.push_back(allScans[last - 1]); + meta_end.push_back(allScans[last]); + MetaScan *end = new MetaScan(meta_end, false, false); + + for(int i = last - 2; i <= last; i++) { + for(int j = 0; j < 6; j++) { + weights[j][i] = 0.0; + } + } + + double delta[6]; + delta[0] = allScans[last]->get_rPos()[0]; + delta[1] = allScans[last]->get_rPos()[1]; + delta[2] = allScans[last]->get_rPos()[2]; + delta[3] = allScans[last]->get_rPosTheta()[0]; + delta[4] = allScans[last]->get_rPosTheta()[1]; + delta[5] = allScans[last]->get_rPosTheta()[2]; + + my_icp6D->match(start, end); + + delete start; + delete end; + + delta[0] = allScans[last]->get_rPos()[0] - delta[0]; + delta[1] = allScans[last]->get_rPos()[1] - delta[1]; + delta[2] = allScans[last]->get_rPos()[2] - delta[2]; + delta[3] = allScans[last]->get_rPosTheta()[0] - delta[3]; + delta[4] = allScans[last]->get_rPosTheta()[1] - delta[4]; + delta[5] = allScans[last]->get_rPosTheta()[2] - delta[5]; + + if(!quiet) { + cout << "Delta: " << delta[0] << " " << delta[1] << " " << delta[2] << " " << delta[3] << " " << delta[4] << " " << delta[5] << endl; + } + + double rPos[3], rPosTheta[3]; + for(int i = 1; i < n; i++) { + rPos[0] = allScans[i]->get_rPos()[0] + delta[0] * (weights[0][i] - weights[0][0]); + rPos[1] = allScans[i]->get_rPos()[1] + delta[1] * (weights[1][i] - weights[1][0]); + rPos[2] = allScans[i]->get_rPos()[2] + delta[2] * (weights[2][i] - weights[2][0]); + rPosTheta[0] = allScans[i]->get_rPosTheta()[0] + delta[3] * (weights[3][i] - weights[3][0]); + rPosTheta[1] = allScans[i]->get_rPosTheta()[1] + delta[4] * (weights[4][i] - weights[4][0]); + rPosTheta[2] = allScans[i]->get_rPosTheta()[2] + delta[5] * (weights[5][i] - weights[5][0]); + + allScans[i]->transformToEuler(rPos, rPosTheta, Scan::ELCH, i == n-1 ? 2 : 1); + } + + for(int i = 0; i < 6; i++) { + delete [] weights[i]; + } + +} diff --git a/.svn/pristine/8d/8d79e2dba7c1966c34eaab494c315cf83da680e3.svn-base b/.svn/pristine/8d/8d79e2dba7c1966c34eaab494c315cf83da680e3.svn-base new file mode 100644 index 0000000..065c473 --- /dev/null +++ b/.svn/pristine/8d/8d79e2dba7c1966c34eaab494c315cf83da680e3.svn-base @@ -0,0 +1,36 @@ +/** + * @file + * @brief IO of a 3D scan in uos file format + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SCAN_IO_UOS_MAP_FRAMES_H__ +#define __SCAN_IO_UOS_MAP_FRAMES_H__ + +#include +using std::string; +#include +using std::vector; + +#include "scan_io.h" + +/** + * @brief 3D scan loader for UOS scans + * + * The compiled class is available as shared object file + */ +class ScanIO_uos_map_frames : public ScanIO { +public: + virtual int readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss); +}; + +// Since this shared object file is loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/.svn/pristine/8d/8dd451c354c59d46301a1b7d901353cd3ecbe93d.svn-base b/.svn/pristine/8d/8dd451c354c59d46301a1b7d901353cd3ecbe93d.svn-base new file mode 100644 index 0000000..f3b1ed4 --- /dev/null +++ b/.svn/pristine/8d/8dd451c354c59d46301a1b7d901353cd3ecbe93d.svn-base @@ -0,0 +1,38 @@ +#ifndef __NNPARAMS_H__ +#define __NNPARAMS_H__ + +struct NNParams { +/** + * pointer to the closest point. size = 4 bytes of 32 bit machines + */ + void *closest; + + /** + * distance to the closest point. size = 8 bytes + */ + double closest_d2; + + // distance to the closest point in voxels + int closest_v; + + // location of the query point in voxel coordinates + int x; + int y; + int z; + + /** + * pointer to the point, size = 4 bytes of 32 bit machines + */ + double *p; + + /** + * expand to 128 bytes to avoid false-sharing, 16 bytes from above + 28*4 bytes = 128 bytes + */ +// int padding[24]; + + int count; + int max_count; + +}; + +#endif diff --git a/.svn/pristine/8e/8e0803a0527b9094900747c56ab8d167c6250e5c.svn-base b/.svn/pristine/8e/8e0803a0527b9094900747c56ab8d167c6250e5c.svn-base new file mode 100644 index 0000000..12617bb --- /dev/null +++ b/.svn/pristine/8e/8e0803a0527b9094900747c56ab8d167c6250e5c.svn-base @@ -0,0 +1,431 @@ +#define WANT_STREAM + +#include "include.h" + +#include "newmat.h" + +#include "tmt.h" + +#ifdef use_namespace +//using namespace NEWMAT; +namespace NEWMAT { +#endif + + +/**************************** test program ******************************/ + + +class PrintCounter +{ + int count; + const char* s; +public: + ~PrintCounter(); + PrintCounter(const char * sx) : count(0), s(sx) {} + void operator++() { count++; } +}; + +PrintCounter PCZ("Number of non-zero matrices (should be 1) = "); +PrintCounter PCN("Number of matrices tested = "); + +PrintCounter::~PrintCounter() +{ cout << s << count << "\n"; } + + +void Print(const Matrix& X) +{ + ++PCN; + cout << "\nMatrix type: " << X.Type().Value() << " ("; + cout << X.Nrows() << ", "; + cout << X.Ncols() << ")\n\n"; + if (X.IsZero()) { cout << "All elements are zero\n" << flush; return; } + int nr=X.Nrows(); int nc=X.Ncols(); + for (int i=1; i<=nr; i++) + { + for (int j=1; j<=nc; j++) cout << X(i,j) << "\t"; + cout << "\n"; + } + cout << flush; ++PCZ; +} + +void Print(const UpperTriangularMatrix& X) +{ + ++PCN; + cout << "\nMatrix type: " << X.Type().Value() << " ("; + cout << X.Nrows() << ", "; + cout << X.Ncols() << ")\n\n"; + if (X.IsZero()) { cout << "All elements are zero\n" << flush; return; } + int nr=X.Nrows(); int nc=X.Ncols(); + for (int i=1; i<=nr; i++) + { + int j; + for (j=1; j -c)) A(i,j) = 0.0; } + } +} + +void Clean(DiagonalMatrix& A, Real c) +{ + int nr = A.Nrows(); + for (int i=1; i<=nr; i++) + { Real a = A(i,i); if ((a < c) && (a > -c)) A(i,i) = 0.0; } +} + +void PentiumCheck(Real N, Real D) +{ + Real R = N / D; + R = R * D - N; + if ( R > 1 || R < -1) + cout << "Pentium error detected: % error = " << 100 * R / N << "\n"; +} + + +#ifdef use_namespace +} +using namespace NEWMAT; +#endif + +//*************************** main program ********************************** + +void TestTypeAdd(); // test + +void TestTypeMult(); // test * +void TestTypeConcat(); // test | +void TestTypeSP(); // test SP +void TestTypeKP(); // test KP +void TestTypeOrder(); // test >= + + +int main() +{ + Real* s1; Real* s2; Real* s3; Real* s4; + cout << "\nBegin test\n"; // Forces cout to allocate memory at beginning + cout << "Now print a real number: " << 3.14159265 << endl; + // Throw exception to set up exception buffer +#ifndef DisableExceptions + Try { Throw(BaseException("Just a dummy\n")); } + CatchAll {} +#else + cout << "Not doing exceptions\n"; +#endif + { Matrix A1(40,200); s1 = A1.Store(); } + { Matrix A1(1,1); s3 = A1.Store(); } + { + Tracer et("Matrix test program"); + + Matrix A(25,150); + { + int i; + RowVector A(8); + for (i=1;i<=7;i++) A(i)=0.0; A(8)=1.0; + Print(A); + } + cout << "\n"; + + TestTypeAdd(); TestTypeMult(); TestTypeConcat(); + TestTypeSP(); TestTypeKP(); TestTypeOrder(); + + + Try { + trymat1(); + trymat2(); + trymat3(); + trymat4(); + trymat5(); + trymat6(); + trymat7(); + trymat8(); + trymat9(); + trymata(); + trymatb(); + trymatc(); + trymatd(); + trymate(); + trymatf(); + trymatg(); + trymath(); + trymati(); + trymatj(); + trymatk(); + trymatl(); + trymatm(); + + cout << "\nEnd of tests\n"; + } + CatchAll + { + cout << "\nTest program fails - exception generated\n\n"; + cout << BaseException::what(); + } + + + } + + { Matrix A1(40,200); s2 = A1.Store(); } + cout << "\n(The following memory checks are probably not valid with all\n"; + cout << "compilers - see documentation)\n"; + cout << "\nChecking for lost memory: " + << (unsigned long)s1 << " " << (unsigned long)s2 << " "; + if (s1 != s2) cout << " - error\n"; else cout << " - ok\n"; + { Matrix A1(1,1); s4 = A1.Store(); } + cout << "\nChecking for lost memory: " + << (unsigned long)s3 << " " << (unsigned long)s4 << " "; + if (s3 != s4) cout << " - error\n\n"; else cout << " - ok\n\n"; + + // check for Pentium bug + PentiumCheck(4195835L,3145727L); + PentiumCheck(5244795L,3932159L); + +#ifdef DO_FREE_CHECK + FreeCheck::Status(); +#endif + return 0; +} + + + + +//************************ test type manipulation **************************/ + + +// These functions may cause problems for Glockenspiel 2.0c; they are used +// only for testing so you can delete them + + +void TestTypeAdd() +{ + MatrixType list[10]; + list[0] = MatrixType::UT; + list[1] = MatrixType::LT; + list[2] = MatrixType::Rt; + list[3] = MatrixType::Sm; + list[4] = MatrixType::Dg; + list[5] = MatrixType::BM; + list[6] = MatrixType::UB; + list[7] = MatrixType::LB; + list[8] = MatrixType::SB; + list[9] = MatrixType::Id; + + cout << "+ "; + int i; + for (i=0; i= "; + int i; + for (i = 0; i=list[i]) ? "Yes " : "No "); + cout << "\n"; + } + cout << "\n"; +} + + diff --git a/.svn/pristine/8e/8e107bd0249c090e14913d4bcb96f1baab19f991.svn-base b/.svn/pristine/8e/8e107bd0249c090e14913d4bcb96f1baab19f991.svn-base new file mode 100644 index 0000000..b3935f1 --- /dev/null +++ b/.svn/pristine/8e/8e107bd0249c090e14913d4bcb96f1baab19f991.svn-base @@ -0,0 +1,42 @@ +/** @file + * @brief Definition of the ICP error function minimization + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Jacobs University Bremen gGmbH, Germany. + */ + +#ifndef __ICP6DQUAT_H__ +#define __ICP6DQUAT_H__ + +#include "icp6Dminimizer.h" + +/** + * @brief Implementation of the ICP error function minimization via quaternions + */ +class icp6D_QUAT : public icp6Dminimizer +{ +public: + /** constructor */ + icp6D_QUAT(bool quiet = false) : icp6Dminimizer(quiet) {}; + /** destructor */ + virtual ~icp6D_QUAT() {}; + + double Point_Point_Align(const vector& Pairs, double *alignxf, + const double centroid_m[3], const double centroid_d[3]); + double Point_Point_Align_Parallel(const int openmp_num_threads, + const unsigned int n[OPENMP_NUM_THREADS], + const double sum[OPENMP_NUM_THREADS], + const double centroid_m[OPENMP_NUM_THREADS][3], + const double centroid_d[OPENMP_NUM_THREADS][3], + const double Si[OPENMP_NUM_THREADS][9], double *alignxf); + inline int getAlgorithmID() { return 1; }; + +protected: + void quaternion2matrix(double *q, double m[3][3]); + int ferrari(double a, double b, double c, double d, double rts[4]); + int qudrtc(double b, double c, double rts[4]); + double cubic(double p, double q, double r); + void maxEigenVector(double Q[4][4], double ev[4]); + void characteristicPol(double Q[4][4], double c[4]); +}; + +#endif diff --git a/.svn/pristine/8e/8e7e4f480668bbb3d751a471f33b347f0399f018.svn-base b/.svn/pristine/8e/8e7e4f480668bbb3d751a471f33b347f0399f018.svn-base new file mode 100644 index 0000000..6c79fe6 --- /dev/null +++ b/.svn/pristine/8e/8e7e4f480668bbb3d751a471f33b347f0399f018.svn-base @@ -0,0 +1,109 @@ +/* + * graph_balancer implementation + * + * Copyright (C) Jochen Sprickerhof + * + * Released under the GPL version 3. + * + */ + +/** + * @file stand alone graph balancer implementation + * reads graph in graphviz format and optimizes it + * @author Jochen Sprickerhof + */ + +#ifndef _MSC_VER +#include +#else +#include "XGetopt.h" +#endif + +#include +using std::cout; +using std::cerr; +using std::endl; + +#include +using std::string; + +#include + +#include "slam6d/elch6D.h" + +void usage(string progname) { + cout << "Usage: " << progname << " OPTIONS FILE" << endl << + "\t -s \t\t first node in loop" << endl << + "\t -e \t\t last node in loop" << endl << + "\t -o \t\t output filename (must be given)" << endl; +} + +int main(int argc, char *argv[]) +{ + + if(argc < 2) { + usage(argv[0]); + exit(1); + } + + int start = 0, end = 4; + string out_file; + /* options descriptor */ + // 0: no arguments, 1: required argument, 2: optional argument + static struct option longopts[] = { + { "end", required_argument, 0, 'e' }, + { "out", required_argument, 0, 'o' }, + { "start", required_argument, 0, 's' }, + //{ "reduce", required_argument, 0, 'r' }, + { 0, 0, 0, 0} // needed, cf. getopt.h + }; + + int c; + while((c = getopt_long(argc, argv, "e:o:s:", longopts, NULL)) != -1) { + switch (c) { + case 'e': + end = atoi(optarg); + if(end < 0) { + cerr << "Error: Cannot end at a negative number." << endl; + exit(1); + } + break; + case 'o': + out_file = optarg; + break; + case 's': + start = atoi(optarg); + if(start < 0) { + cerr << "Error: Cannot start at a negative number." << endl; + exit(1); + } + break; + case '?': + default: + exit(1); + } + } + + if(out_file.empty()) { + usage(argv[0]); + exit(1); + } + + graph_t g(0); + boost::dynamic_properties dp(boost::ignore_other_properties); + boost::property_map::type weight = get(boost::edge_weight, g); + dp.property("weight", weight); + + std::ifstream gf(argv[optind]); + read_graphviz(gf, g, dp); + + graph_t g_org(g); + double *w = new double[num_vertices(g)]; + + elch6D::graph_balancer(g, start, end, w); + elch6D::graph_weight_out(g_org, start, end, w, out_file); + + delete[] w; + exit(0); +} + diff --git a/.svn/pristine/8e/8e8044a660eb823e80d445550a523dfb4f4ad5be.svn-base b/.svn/pristine/8e/8e8044a660eb823e80d445550a523dfb4f4ad5be.svn-base new file mode 100644 index 0000000..44ecf6b --- /dev/null +++ b/.svn/pristine/8e/8e8044a660eb823e80d445550a523dfb4f4ad5be.svn-base @@ -0,0 +1,544 @@ +/* + * panorama implementation + * + * Copyright (C) HamidReza Houshiar + * + * Released under the GPL version 3. + * + */ + +#include "slam6d/fbr/panorama.h" + +using namespace std; + +namespace fbr{ + + void panorama::init(unsigned int width, unsigned int height, projection_method method, unsigned int numberOfImages, double param, panorama_map_method mMethod){ + iWidth = width; + iHeight = height; + pMethod = method; + nImages = numberOfImages; + pParam = param; + if(mMethod == FARTHEST){ + iMap.create(iHeight, iWidth, CV_32FC(3)); + iMap = cv::Scalar::all(0); + } + else if(mMethod == EXTENDED){ + extendedIMap.resize(iHeight); + for (unsigned int i = 0; i < iHeight; i++) + extendedIMap[i].resize(iWidth); + } + iReflectance.create(iHeight, iWidth, CV_8U); + iReflectance = cv::Scalar::all(0); + iRange.create(iHeight, iWidth, CV_32FC(1)); + iRange = cv::Scalar::all(0); + mapMethod = mMethod; + } + + panorama::panorama(unsigned int width, unsigned int height, projection_method method, unsigned int numberOfImages, double param, panorama_map_method mMethod){ + init(width, height, method, numberOfImages, param, mMethod); + } + + panorama::panorama(unsigned int width, unsigned int height, projection_method method, unsigned int numberOfImages, double param){ + init(width, height, method, numberOfImages, param, FARTHEST); + } + + panorama::panorama(unsigned int width, unsigned int height, projection_method method, unsigned int numberOfImages){ + double param = 0; + if(method == PANNINI) + param = 1; + else if (method == STEREOGRAPHIC) + param = 2; + + init(width, height, method, numberOfImages, param, FARTHEST); + } + + panorama::panorama(unsigned int width, unsigned int height, projection_method method){ + double param = 0; + unsigned int numberOfImages = 1; + if(method == RECTILINEAR) + numberOfImages = 3; + else if(method == PANNINI){ + numberOfImages = 3; + param = 1; + } else if (method == STEREOGRAPHIC){ + numberOfImages = 3; + param = 2; + } + + init(width, height, method, numberOfImages, param, FARTHEST); + } + + void panorama::map(int x, int y, cv::MatIterator_ it, double range){ + iReflectance.at(y,x) = (*it)[3]*255;//reflectance + iRange.at(y,x) = range;//range + if(mapMethod == FARTHEST){ + //adding the point with max distance + if( iRange.at(y,x) < range ){ + iMap.at(y,x)[0] = (*it)[0];//x + iMap.at(y,x)[1] = (*it)[1];//y + iMap.at(y,x)[2] = (*it)[2];//z + } + }else if(mapMethod == EXTENDED){ + //adding all the points + cv::Vec3f point; + point[0] = (*it)[0];//x + point[1] = (*it)[1];//y + point[2] = (*it)[2];//z + extendedIMap[y][x].push_back(point); + } + } + + void panorama::createPanorama(cv::Mat scan){ + + //EQUIRECTANGULAR projection + if(pMethod == EQUIRECTANGULAR){ + //adding the longitude to x axis and latitude to y axis + double xFactor = (double) iWidth / 2 / M_PI; + int widthMax = iWidth - 1; + double yFactor = (double) iHeight / ((MAX_ANGLE - MIN_ANGLE) / 360 * 2 * M_PI); + //shift all the valuse to positive points on image + double heightLow =(0 - MIN_ANGLE) / 360 * 2 * M_PI; + int heightMax = iHeight - 1; + + cv::MatIterator_ it, end; + + for( it = scan.begin(), end = scan.end(); it != end; ++it){ + double kart[3], polar[3], phi, theta, range; + kart[0] = (*it)[2]/100; + kart[1] = (*it)[0]/-100; + kart[2] = (*it)[1]/100; + toPolar(kart, polar); + //theta == polar[0] == scan [4] + //phi == polar[1] == scan [5] + //range == polar[2] == scan [3] + theta = polar[0] * 180 / M_PI; + phi = polar[1] * 180 / M_PI; + range = polar[2]; + //horizantal angle of view of [0:360] and vertical of [-40:60] + phi = 360.0 - phi; + phi = phi * 2.0 * M_PI / 360.0; + theta -= 90; + theta *= -1; + theta *= 2.0 * M_PI / 360.0; + int x = (int) ( xFactor * phi); + if (x < 0) x = 0; + if (x > widthMax) x = widthMax; + int y = (int) ( yFactor * (theta + heightLow) ); + y = heightMax - y; + if (y < 0) y = 0; + if (y > heightMax) y = heightMax; + + //create the iReflectance iRange and map + map(x, y, it, range); + } + } + + //CYLINDRICAL projection + if(pMethod == CYLINDRICAL){ + //adding the longitude to x and tan(latitude) to y + //find the x and y range + double xFactor = (double) iWidth / 2 / M_PI; + int widthMax = iWidth - 1; + double yFactor = (double) iHeight / (tan(MAX_ANGLE / 360 * 2 * M_PI) - tan(MIN_ANGLE / 360 * 2 * M_PI)); + double heightLow = (MIN_ANGLE) / 360 * 2 * M_PI; + int heightMax = iHeight - 1; + + cv::MatIterator_ it, end; + + for( it = scan.begin(), end = scan.end(); it != end; ++it){ + double kart[3], polar[3], phi, theta, range; + kart[0] = (*it)[2]/100; + kart[1] = (*it)[0]/-100; + kart[2] = (*it)[1]/100; + toPolar(kart, polar); + //theta == polar[0] == scan [4] + //phi == polar[1] == scan [5] + //range == polar[2] == scan [3] + theta = polar[0] * 180 / M_PI; + phi = polar[1] * 180 / M_PI; + range = polar[2]; + //horizantal angle of view of [0:360] and vertical of [-40:60] + phi = 360.0 - phi; + phi = phi * 2.0 * M_PI / 360.0; + theta -= 90; + theta *= -1; + theta *= 2.0 * M_PI / 360.0; + int x = (int) ( xFactor * phi); + if (x < 0) x = 0; + if (x > widthMax) x = widthMax; + int y = (int) ((double) yFactor * (tan(theta) - tan(heightLow))); + y = heightMax - y; + if (y < 0) y = 0; + if (y > heightMax) y = heightMax; + + //create the iReflectance iRange and map + map(x, y, it, range); + } + } + + //Mercator Projection + if( pMethod == MERCATOR){ + //find the x and y range + double xFactor = (double) iWidth / 2 / M_PI; + int widthMax = iWidth - 1; + double yFactor = (double) iHeight / ( log( tan( MAX_ANGLE / 360 * 2 * M_PI ) + ( 1 / cos( MAX_ANGLE / 360 * 2 * M_PI ) ) ) - log ( tan( MIN_ANGLE / 360 * 2 * M_PI) + (1/cos(MIN_ANGLE / 360 * 2 * M_PI) ) ) ); + double heightLow = log(tan(MIN_ANGLE / 360 * 2 * M_PI) + (1/cos(MIN_ANGLE / 360 * 2 * M_PI))); + int heightMax = iHeight - 1; + + cv::MatIterator_ it, end; + + for( it = scan.begin(), end = scan.end(); it != end; ++it){ + double kart[3], polar[3], phi, theta, range; + kart[0] = (*it)[2]/100; + kart[1] = (*it)[0]/-100; + kart[2] = (*it)[1]/100; + toPolar(kart, polar); + //theta == polar[0] == scan [4] + //phi == polar[1] == scan [5] + //range == polar[2] == scan [3] + theta = polar[0] * 180 / M_PI; + phi = polar[1] * 180 / M_PI; + range = polar[2]; + //horizantal angle of view of [0:360] and vertical of [-40:60] + phi = 360.0 - phi; + phi = phi * 2.0 * M_PI / 360.0; + theta -= 90; + theta *= -1; + theta *= 2.0 * M_PI / 360.0; + int x = (int) ( xFactor * phi); + if (x < 0) x = 0; + if (x > widthMax) x = widthMax; + int y = (int) ( yFactor * (log(tan(theta) + (1/cos(theta))) - heightLow) ); + y = heightMax - y; + if (y < 0) y = 0; + if (y > heightMax) y = heightMax; + + //create the iReflectance iRange and map + map(x, y, it, range); + } + } + + //RECTILINEAR projection + if(pMethod == RECTILINEAR){ + //default value for nImages + if(nImages == 0) nImages = 3; + cout<<"Number of images per scan is: "< it, end; + + for( it = scan.begin(), end = scan.end(); it != end; ++it){ + double kart[3], polar[3], phi, theta, range; + kart[0] = (*it)[2]/100; + kart[1] = (*it)[0]/-100; + kart[2] = (*it)[1]/100; + toPolar(kart, polar); + //theta == polar[0] == scan [4] + //phi == polar[1] == scan [5] + //range == polar[2] == scan [3] + theta = polar[0] * 180 / M_PI; + phi = polar[1] * 180 / M_PI; + range = polar[2]; + //horizantal angle of view of [0:360] and vertical of [-40:60] + phi = 360.0 - phi; + phi = phi * 2.0 * M_PI / 360.0; + theta -= 90; + theta *= -1; + theta *= 2.0 * M_PI / 360.0; + for(unsigned int j = 0 ; j < nImages ; j++){ + iMinx = j * interval; + iMaxx = (j + 1) * interval; + //check for point in interval + if(phi < iMaxx && phi > iMinx){ + double max, min, coscRectilinear; + //the longitude of projection center + l0 = iMinx + interval / 2; + //finding the min and max of the x direction + coscRectilinear = sin(p1) * sin(iMaxy) + cos(p1) * cos(iMaxy) * cos(iMaxx - l0); + max = (cos(iMaxy) * sin(iMaxx - l0) / coscRectilinear); + coscRectilinear = sin(p1) * sin(iMiny) + cos(p1) * cos(iMiny) * cos(iMinx - l0); + min = (cos(iMiny) * sin(iMinx - l0) / coscRectilinear); + double xFactor = (double) (iWidth / nImages) / (max - min); + double xlow = min; + int widthMax = (iWidth / nImages) - 1; + //finding the min and max of y direction + coscRectilinear = sin(p1) * sin(iMaxy) + cos(p1) * cos(iMaxy) * cos(iMaxx - l0); + max = ( (cos(p1) * sin(iMaxy) - sin(p1) * cos(iMaxy) * cos(iMaxx - l0) )/ coscRectilinear); + coscRectilinear = sin(p1) * sin(iMiny) + cos(p1) * cos(iMiny) * cos(iMinx - l0); + min = ( (cos(p1) * sin(iMiny) - sin(p1) * cos(iMiny) * cos(iMinx - l0) )/ coscRectilinear); + double yFactor = (double) iHeight / (max - min); + double heightLow = min; + int heightMax = iHeight - 1; + //project the points and add them to image + coscRectilinear = sin(p1) * sin(theta) + cos(p1) * cos(theta) * cos(phi - l0); + int x = (int)(xFactor) * ((cos(theta) * sin(phi - l0) / coscRectilinear) - xlow); + if (x < 0) x = 0; + if (x > widthMax) x = widthMax; + x = x + (j * iWidth / nImages); + int y = (int) (yFactor) * (( (cos(p1) * sin(theta) - sin(p1) * cos(theta) * cos(phi - l0)) / coscRectilinear) - heightLow); + y = heightMax - y; + if (y < 0) y = 0; + if (y > heightMax) y = heightMax; + + //create the iReflectance iRange and map + map(x, y, it, range); + } + } + } + } + + //PANNINI projection + if(pMethod == PANNINI){ + //default values for nImages and dPannini==pParam + if(pParam == 0) pParam = 1; + if(nImages == 0) nImages = 3; + cout << "Parameter d is:" << pParam <<", Number of images per scan is:" << nImages << endl; + double l0, p1, iMinx, iMaxx, iMiny, iMaxy, interval; + interval = 2 * M_PI / nImages; + iMiny = -M_PI/9; + iMaxy = 2*M_PI/9; + //latitude of projection center + p1 = 0; + + cv::MatIterator_ it, end; + + for( it = scan.begin(), end = scan.end(); it != end; ++it){ + double kart[3], polar[3], phi, theta, range; + kart[0] = (*it)[2]/100; + kart[1] = (*it)[0]/-100; + kart[2] = (*it)[1]/100; + toPolar(kart, polar); + //theta == polar[0] == scan [4] + //phi == polar[1] == scan [5] + //range == polar[2] == scan [3] + theta = polar[0] * 180 / M_PI; + phi = polar[1] * 180 / M_PI; + range = polar[2]; + //horizantal angle of view of [0:360] and vertical of [-40:60] + phi = 360.0 - phi; + phi = phi * 2.0 * M_PI / 360.0; + theta -= 90; + theta *= -1; + theta *= 2.0 * M_PI / 360.0; + for(unsigned int j = 0 ; j < nImages ; j++){ + iMinx = j * interval; + iMaxx = (j + 1) * interval; + //check for point in interval + if(phi < (iMaxx) && phi > (iMinx)){ + double max, min, sPannini; + //the longitude of projection center + l0 = iMinx + interval / 2; + //use the S variable of pannini projection mentioned in the thesis + //finding the min and max of the x direction + sPannini = (pParam + 1) / (pParam + sin(p1) * tan(iMaxy) + cos(p1) * cos(iMaxx - l0)); + max = sPannini * (sin(iMaxx - l0)); + sPannini = (pParam + 1) / (pParam + sin(p1) * tan(iMiny) + cos(p1) * cos(iMinx - l0)); + min = sPannini * (sin(iMinx - l0)); + double xFactor = (double) (iWidth / nImages) / (max - min); + double xlow = min; + int widthMax = (iWidth / nImages) - 1; + //finding the min and max of y direction + sPannini = (pParam + 1) / (pParam + sin(p1) * tan(iMaxy) + cos(p1) * cos(iMaxx - l0)); + max = sPannini * (tan(iMaxy) * (cos(p1) - sin(p1) * 1/tan(iMaxy) * cos(iMaxx - l0))); + sPannini = (pParam + 1) / (pParam + sin(p1) * tan(iMiny) + cos(p1) * cos(iMinx - l0)); + min = sPannini * (tan(iMiny) * (cos(p1) - sin(p1) * 1/tan(iMiny) * cos(iMinx - l0))); + double yFactor = (double) iHeight / (max - min); + double heightLow = min; + int heightMax = iHeight - 1; + //project the points and add them to image + sPannini = (pParam + 1) / (pParam + sin(p1) * tan(theta) + cos(p1) * cos(phi - l0)); + int x = (int)(xFactor) * (sPannini * sin(phi - l0) - xlow); + if (x < 0) x = 0; + if (x > widthMax) x = widthMax; + x = x + (j * iWidth / nImages); + int y = (int) (yFactor) * ( (sPannini * tan(theta) * (cos(p1) - sin(p1) * (1/tan(theta)) * cos(phi - l0) ) ) - heightLow ); + y = heightMax - y; + if (y < 0) y = 0; + if (y > heightMax) y = heightMax; + + //create the iReflectance iRange and map + map(x, y, it, range); + } + } + } + } + + //STEREOGRAPHIC projection + if(pMethod == STEREOGRAPHIC){ + //default values for nImages and rStereographic==pParam + if(pParam == 0) pParam = 2; + if(nImages == 0) nImages = 3; + cout << "Paremeter R is:" << pParam << ", Number of images per scan is:" << nImages << endl; + // l0 and p1 are the center of projection iminx, imaxx, iminy, imaxy are the bounderis of intervals + double l0, p1, iMinx, iMaxx, iMiny, iMaxy, interval; + interval = 2 * M_PI / nImages; + iMiny = -M_PI/9; + iMaxy = 2*M_PI/9; + //latitude of projection center + p1 = 0; + + //go through all points + cv::MatIterator_ it, end; + + for( it = scan.begin(), end = scan.end(); it != end; ++it){ + double kart[3], polar[3], phi, theta, range; + kart[0] = (*it)[2]/100; + kart[1] = (*it)[0]/-100; + kart[2] = (*it)[1]/100; + toPolar(kart, polar); + //theta == polar[0] == scan [4] + //phi == polar[1] == scan [5] + //range == polar[2] == scan [3] + theta = polar[0] * 180 / M_PI; + phi = polar[1] * 180 / M_PI; + range = polar[2]; + //horizantal angle of view of [0:360] and vertical of [-40:60] + phi = 360.0 - phi; + phi = phi * 2.0 * M_PI / 360.0; + theta -= 90; + theta *= -1; + theta *= 2.0 * M_PI / 360.0; + for (unsigned int j = 0 ; j < nImages ; j++){ + iMinx = j * interval; + iMaxx = (j + 1) * interval; + //check for point in intervals + if(phi < (iMaxx) && phi > (iMinx)){ + double max, min, k; + //longitude of projection center + l0 = iMinx + interval / 2; + //use the R variable of stereographic projection mentioned in the thesis + //finding the min and max of x direction + k = (2 * pParam) / (1 + sin(p1) * sin(p1) + cos(p1) * cos(p1) * cos(iMaxx - l0)); + max = k * cos(p1) * sin (iMaxx - l0); + k = (2 * pParam) / (1 + sin (p1) * sin(p1) + cos(p1) * cos(p1) * cos(iMinx -l0)); + min = k * cos(p1) * sin (iMinx -l0); + double xFactor = (double) (iWidth / nImages) / (max - min); + double xlow = min; + int widthMax = (iWidth / nImages) - 1; + //finding the min and max of y direction + k = (2 * pParam) / (1 + sin(p1) * sin(iMaxy) + cos(p1) * cos(iMaxy) * cos(iMaxx - l0)); + max = k * (cos(p1) * sin(iMaxy) - sin(p1) * cos(iMaxy) * cos(iMaxx - l0)); + k = (2 * pParam) / (1 + sin(p1) * sin(iMiny) + cos(p1) * cos(iMiny) * cos(iMinx - l0)); + min = k * (cos(p1) * sin(iMiny) - sin(p1) * cos(iMiny) * cos(iMinx - l0)); + double yFactor = (double) iHeight / (max - min); + double heightLow = min; + int heightMax = iHeight - 1; + //project the points and add them to image + k = (2 * pParam) / (1 + sin(p1) * sin(theta) + cos(p1) * cos(theta) * cos(phi - l0)); + int x = (int) (xFactor) * (k * cos(theta) * sin(phi - l0) - xlow); + if (x < 0) x = 0; + if (x > widthMax) x = widthMax; + x = x + (j * iWidth / nImages); + int y = (int) (yFactor) * (k * ( cos(p1) * sin(theta) - sin(p1) * cos(theta) * cos(phi - l0) ) - heightLow); + y = heightMax - y; + if (y < 0) y = 0; + if (y > heightMax) y = heightMax; + + //create the iReflectance iRange and map + map(x, y, it, range); + } + } + } + } + + //ZAXIS projection + if(pMethod == ZAXIS){ + double zmin = -200; + double zmax = 4000; + //adding the longitude to x axis and latitude to y axis + double xFactor = (double) iWidth / 2 / M_PI; + int widthMax = iWidth - 1; + cout << "ZMAX= " << zmax << " ZMIN= "<< zmin << endl; + double yFactor = (double) iHeight / (zmax - zmin); + //shift all the valuse to positive points on image + double heightLow = zmin; + int heightMax = iHeight - 1; + + cv::MatIterator_ it, end; + + for( it = scan.begin(), end = scan.end(); it != end; ++it){ + double kart[3], polar[3], phi, theta, range; + kart[0] = (*it)[2]/100; + kart[1] = (*it)[0]/-100; + kart[2] = (*it)[1]/100; + toPolar(kart, polar); + //theta == polar[0] == scan [4] + //phi == polar[1] == scan [5] + //range == polar[2] == scan [3] + theta = polar[0] * 180 / M_PI; + phi = polar[1] * 180 / M_PI; + range = polar[2]; + //horizantal angle of view of [0:360] and vertical of [-40:60] + phi = 360.0 - phi; + phi = phi * 2.0 * M_PI / 360.0; + theta -= 90; + theta *= -1; + theta *= 2.0 * M_PI / 360.0; + int x = (int) ( xFactor * phi); + if (x < 0) x = 0; + if (x > widthMax) x = widthMax; + ///////////////////check this + int y = (int) ( yFactor * ((*it)[1] - heightLow) ); + y = heightMax - y; + if (y < 0) y = 0; + if (y > heightMax) y = heightMax; + + //create the iReflectance iRange and map + map(x, y, it, range); + } + } + } + + unsigned int panorama::getImageWidth(){ + return iWidth; + } + + unsigned int panorama::getImageHeight(){ + return iHeight; + } + + projection_method panorama::getProjectionMethod(){ + return pMethod; + } + + unsigned int panorama::getNumberOfImages(){ + return nImages; + } + + double panorama::getProjectionParam(){ + return pParam; + } + + cv::Mat panorama::getReflectanceImage(){ + return iReflectance; + } + + cv::Mat panorama::getMap(){ + return iMap; + } + + cv::Mat panorama::getRangeImage(){ + return iRange; + } + + vector > > panorama::getExtendedMap(){ + return extendedIMap; + } + + panorama_map_method panorama::getMapMethod(){ + return mapMethod; + } + + void panorama::getDescription(){ + cout<<"panorama created with width: "< + +#ifdef _MSC_VER +#include +#else +#include +#endif + +template +class Metric { +public: + //! Reserve a minimum of 1k values to reduced allocation overhead in between + Metric(unsigned int reserve = 1000) { + m_values.reserve(reserve); + } + + //! Print the sum of this metric + T sum() const { + T value = 0; + for(typename std::vector::const_iterator it = m_values.begin(); it != m_values.end(); ++it) + value += *it; + return value; + } + + //! Print the average of this metric + T average() const { + if(m_values.size() != 0) + return sum() / (T)(m_values.size()); + else + return (T)0; + } + + std::size_t size() const { + return m_values.size(); + } + + void reset() { + m_values.clear(); + } + +protected: + inline void commit(const T& value) { + m_values.push_back(value); + } + +private: + std::vector m_values; +}; + +#ifdef _MSC_VER + typedef LARGE_INTEGER Timer; +#else + typedef timeval Timer; +#endif + +/** + * @brief Measures time differences in seconds. + */ +class TimeMetric : public Metric { +public: + TimeMetric(unsigned int reserve = 1000); + + //! Start the timer + Timer start(); + + //! End the timer and commit value + void end(Timer&); + +private: +#ifdef _MSC_VER + static LARGE_INTEGER frequency; + static bool init; +#endif +}; + +/** + * @brief Measures access count or size. + */ +class CounterMetric : public Metric { +public: + CounterMetric(unsigned int reserve = 1000); + void add(unsigned long long value = 1); + +private: +}; + + + +struct ServerMetric { + static TimeMetric scan_loading, cacheio_write_time, cacheio_read_time; + static CounterMetric cacheio_write_size, cacheio_read_size; + static void print(); +}; + +struct ClientMetric { + static TimeMetric + // Scan + // directory loading + read_scan_time, scan_load_time, + // reduce, transform, copy, create tree as part of the reduction and tree preparation + calc_reduced_points_time, transform_time, copy_original_time, create_tree_time, + // new scanserver only times + on_demand_reduction_time, create_metatree_time, + // part of transform dealing with frames + add_frames_time, + // slam6D + matching_time, + // ClientInterface + clientinterface_time, cache_miss_time, allocate_time, frames_time; + static void print(); +}; + +#endif //METRICS_H diff --git a/.svn/pristine/8e/8ed58b8bf0279fb1564089523e4536cf953e6c8b.svn-base b/.svn/pristine/8e/8ed58b8bf0279fb1564089523e4536cf953e6c8b.svn-base new file mode 100644 index 0000000..e013c39 --- /dev/null +++ b/.svn/pristine/8e/8ed58b8bf0279fb1564089523e4536cf953e6c8b.svn-base @@ -0,0 +1,21 @@ +/** + * @file TORO wrapper + * @author Jochen Sprickerhof. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __LOOP_TORO_H__ +#define __LOOP_TORO_H__ + +#include "loopSlam6D.h" + +class loopToro : public loopSlam6D { + + public: + loopToro(bool _quiet, icp6Dminimizer *my_icp6Dminimizer, double mdm, int max_num_iterations, + int rnd, bool eP, int anim, double epsilonICP, int nns_method) + : loopSlam6D(_quiet, my_icp6Dminimizer, mdm, max_num_iterations, rnd, eP, anim, epsilonICP, nns_method) {} + + virtual void close_loop(const vector &allScans, int first, int last, graph_t &g); +}; + +#endif diff --git a/.svn/pristine/8f/8f39e5a4cc0cb684899b7c087223dfef4f60b801.svn-base b/.svn/pristine/8f/8f39e5a4cc0cb684899b7c087223dfef4f60b801.svn-base new file mode 100644 index 0000000..3ef95fb --- /dev/null +++ b/.svn/pristine/8f/8f39e5a4cc0cb684899b7c087223dfef4f60b801.svn-base @@ -0,0 +1,56 @@ + + +int glui_img_downarrow[] = { 16, 16, /* width, height */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 192,192,192, 128,128,128, 128,128,128, 128,128,128, + 128,128,128, 128,128,128, 128,128,128, 128,128,128, 128,128,128, + 128,128,128, 128,128,128, 128,128,128, 128,128,128, 128,128,128, + 128,128,128, 0, 0, 0, 192,192,192, 255,255,255, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 128,128,128, 0, 0, 0, 192,192,192, 255,255,255, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 128,128,128, 0, 0, 0, 192,192,192, + 255,255,255, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 128,128,128, 0, 0, 0, + 192,192,192, 255,255,255, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 128,128,128, + 0, 0, 0, 192,192,192, 255,255,255, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 0, 0, 0, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 128,128,128, 0, 0, 0, 192,192,192, 255,255,255, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 128,128,128, 0, 0, 0, 192,192,192, 255,255,255, + 192,192,192, 192,192,192, 192,192,192, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 128,128,128, 0, 0, 0, 192,192,192, + 255,255,255, 192,192,192, 192,192,192, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 192,192,192, 192,192,192, 192,192,192, 128,128,128, 0, 0, 0, + 192,192,192, 255,255,255, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 128,128,128, + 0, 0, 0, 192,192,192, 255,255,255, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 128,128,128, 0, 0, 0, 192,192,192, 255,255,255, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 128,128,128, 0, 0, 0, 192,192,192, 255,255,255, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 128,128,128, 0, 0, 0, 192,192,192, + 255,255,255, 255,255,255, 255,255,255, 255,255,255, 255,255,255, + 255,255,255, 255,255,255, 255,255,255, 255,255,255, 255,255,255, + 255,255,255, 255,255,255, 255,255,255, 128,128,128, 0, 0, 0, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 0, 0, 0, +}; diff --git a/.svn/pristine/90/90c3ff3cf78bb7cf6ac8f7a511e40a0200723cdb.svn-base b/.svn/pristine/90/90c3ff3cf78bb7cf6ac8f7a511e40a0200723cdb.svn-base new file mode 100644 index 0000000..a074f2c --- /dev/null +++ b/.svn/pristine/90/90c3ff3cf78bb7cf6ac8f7a511e40a0200723cdb.svn-base @@ -0,0 +1,106 @@ +/* + * grabFramesPMD implementation + * + * Copyright (C) Stanislav Serebryakov + * + * Released under the GPL version 3. + * + */ + +#include +#include + +#include +#include + +#include "pmdsdk2.h" +#include "cvpmd.h" + + +/* TODO: +* flags: +* subpixel +* camera id +* flip x and y +* pmd mode? +*/ + +void usage(char *progName) { + printf("%s \n", progName); + printf("i.e.: %s 6 4 0\n", progName); + printf("press space to detect chessboard and (again) to proceed.\n"); +} + +int main(int argc, char **argv) { + + if(argc < 4) { + usage(argv[0]); + exit(1); + } + + + PMD *pmd = initPMD("../o3d.L32.pcp", "192.168.0.69"); + IplImage *img = cvCreateImage(pmdGetSize(pmd), 8, 1); + pmdUpdate(pmd->hnd); + pmdQueryImage(pmd, img); + + IplImage *imgColor = cvCreateImage(cvGetSize(img), 8, 3); + + int patx = atoi(argv[1]); + int paty = atoi(argv[2]); + CvSize patternSize = cvSize(patx, paty); + + int cornersTotal = patternSize.width * patternSize.height; + + CvPoint2D32f *corners = (CvPoint2D32f*) malloc(cornersTotal * sizeof(CvPoint2D32f)); + + cvNamedWindow("Camera", 0); + + int imageCnt = 0; + bool grabFrame = false; + char *filename = (char*) malloc(11 * sizeof(char)); + + + while(1) { + pmdUpdate(pmd->hnd); + pmdQueryImage(pmd, img); + + cvFlip(img, 0, 1); // flips image around the x-axes + + + + + if(grabFrame) { + /* ----- Chessboard detection ----- + -------------------------------- */ + int cornersCount; // should be the same for wcam and pmd and equal totalCorners + + int found = cvFindChessboardCorners(img, patternSize, corners, + &cornersCount, CV_CALIB_CB_ADAPTIVE_THRESH | CV_CALIB_CB_FILTER_QUADS); + cvFindCornerSubPix(img, corners, cornersCount, cvSize(4,4), cvSize(-1,-1), + cvTermCriteria(CV_TERMCRIT_EPS | CV_TERMCRIT_ITER, 30, 0.1)); + + if(found && (cornersCount == cornersTotal)) { + cvCvtColor(img, imgColor, CV_GRAY2BGR); + cvDrawChessboardCorners(imgColor, patternSize, corners, cornersCount, found); + cvShowImage("Camera", imgColor); + printf("grab?\n"); + int k = cvWaitKey(0); + if(k == (int)' ') { + imageCnt++; + sprintf(filename, "image%02i.jpg", imageCnt); //TODO:try png + printf("saved %s.\n", filename); + cvSaveImage(filename, img); + grabFrame = false; + continue; + } + } + } + + cvShowImage("Camera", img); + if((int)' ' == cvWaitKey(5)) grabFrame = true; + } + + return 0; +} + diff --git a/.svn/pristine/91/911ec2bee8df15cf25fbedcf901dfdcac08cf7b1.svn-base b/.svn/pristine/91/911ec2bee8df15cf25fbedcf901dfdcac08cf7b1.svn-base new file mode 100644 index 0000000..7bee44d --- /dev/null +++ b/.svn/pristine/91/911ec2bee8df15cf25fbedcf901dfdcac08cf7b1.svn-base @@ -0,0 +1,1640 @@ +//---------------------------------------------------------------------- +// File: ann_test.cpp +// Programmer: Sunil Arya and David Mount +// Description: test program for ANN (approximate nearest neighbors) +// Last modified: 08/04/06 (Version 1.1.1) +//---------------------------------------------------------------------- +// Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +// David Mount. All Rights Reserved. +// +// This software and related documentation is part of the Approximate +// Nearest Neighbor Library (ANN). This software is provided under +// the provisions of the Lesser GNU Public License (LGPL). See the +// file ../ReadMe.txt for further information. +// +// The University of Maryland (U.M.) and the authors make no +// representations about the suitability or fitness of this software for +// any purpose. It is provided "as is" without express or implied +// warranty. +//---------------------------------------------------------------------- +// History: +// Revision 0.1 03/04/98 +// Initial release +// Revision 0.2 06/26/98 +// Added CLOCKS_PER_SEC definition if needed +// Revision 1.0 04/01/05 +// Added comments (from "#" to eol) +// Added clus_orth_flats and clus_ellipsoids distributions +// Fixed order of fair and midpt in split_table +// Added dump/load operations +// Cleaned up C++ for modern compilers +// Revision 1.1 05/03/05 +// Added fixed radius kNN search +// Revision 1.1.1 08/04/06 +// Added planted distribution +//---------------------------------------------------------------------- + +#include // clock +#include // math routines +#include // C string ops +#include // file I/O + +#include // ANN declarations +#include // more ANN declarations +#include // performance evaluation + +#include "rand.h" // random point generation + +#ifndef CLOCKS_PER_SEC // define clocks-per-second if needed + #define CLOCKS_PER_SEC 1000000 +#endif + +using namespace std; // make std:: available + +//---------------------------------------------------------------------- +// ann_test +// +// This program is a driver for testing and evaluating the ANN library +// for computing approximate nearest neighbors. It allows the user to +// generate data and query sets of various sizes, dimensions, and +// distributions, to build kd- and bbd-trees of various types, and then +// run queries and outputting various performance statistics. +// +// Overview: +// --------- +// The test program is run as follows: +// +// ann_test < test_input > test_output +// +// where the test_input file contains a list of directives as described +// below. Directives consist of a directive name, followed by list of +// arguments (depending on the directive). Arguments and directives are +// separated by white space (blank, tab, and newline). String arguments +// are not quoted, and consist of a string of nonwhite chacters. A +// character "#" denotes a comment. The following characters up to +// the end of line are ignored. Comments may only be inserted between +// directives (not within the argument list of a directive). +// +// Basic operations: +// ----------------- +// The test program can perform the following operations. How these +// operations are performed depends on the options which are described +// later. +// +// Data Generation: +// ---------------- +// read_data_pts Create a set of data points whose +// coordinates are input from file . +// gen_data_pts Create a set of data points whose +// coordinates are generated from the +// current point distribution. +// +// Building the tree: +// ------------------ +// build_ann Generate an approximate nearest neighbor +// structure for the current data set, using +// the selected splitting rules. Any existing +// tree will be destroyed. +// +// Query Generation/Searching: +// --------------------------- +// read_query_pts Create a set of query points whose +// coordinates are input from file . +// gen_query_pts Create a set of query points whose +// coordinates are generated from the +// current point distribution. +// run_queries Apply nearest neighbor searching to the +// query points using the approximate nearest +// neighbor structure and the given search +// strategy. Possible strategies are: +// standard = standard kd-tree search +// priority = priority search +// +// Miscellaneous: +// -------------- +// output_label Output a label to the output file. +// dump Dump the current structure to given file. +// (The dump format is explained further in +// the source file kd_tree.cc.) +// load Load a tree from a data file which was +// created by the dump operation. Any +// existing tree will be destroyed. +// +// Options: +// -------- +// How these operations are performed depends on a set of options. +// If an option is not specified, a default value is used. An option +// retains its value until it is set again. String inputs are not +// enclosed in quotes, and must contain no embedded white space (sorry, +// this is C++'s convention). +// +// Options affecting search tree structure: +// ---------------------------------------- +// split_rule Type of splitting rule to use in building +// the search tree. Choices are: +// kd = optimized kd-tree +// midpt = midpoint split +// fair = fair split +// sl_midpt = sliding midpt split +// sl_fair = sliding fair split +// suggest = authors' choice for best +// The default is "suggest". See the file +// kd_split.cc for more detailed information. +// +// shrink_rule Type of shrinking rule to use in building +// a bd-tree data structure. If "none" is +// given, then no shrinking is performed and +// the result is a kd-tree. Choices are: +// none = perform no shrinking +// simple = simple shrinking +// centroid = centroid shrinking +// suggest = authors' choice for best +// The default is "none". See the file +// bd_tree.cc for more information. +// bucket_size Bucket size, that is, the maximum number of +// points stored in each leaf node. +// +// Options affecting data and query point generation: +// -------------------------------------------------- +// dim Dimension of space. +// seed Seed for random number generation. +// data_size Number of data points. When reading data +// points from a file, this indicates the +// maximum number of points for storage +// allocation. Default = 100. +// query_size Same as data_size for query points. +// std_dev Standard deviation (used in gauss, +// planted, and clustered distributions). +// This is the "small" distribution for +// clus_ellipsoids. Default = 1. +// std_dev_lo Low and high standard deviations (used in +// std_dev_hi clus_ellipsoids). Default = 1. +// corr_coef Correlation coefficient (used in co-gauss +// and co_lapace distributions). Default = 0.05. +// colors Number of color classes (clusters) (used +// in the clustered distributions). Default = 5. +// new_clust Once generated, cluster centers are not +// normally regenerated. This is so that both +// query points and data points can be generated +// using the same set of clusters. This option +// forces new cluster centers to be generated +// with the next generation of either data or +// query points. +// max_clus_dim Maximum dimension of clusters (used in +// clus_orth_flats and clus_ellipsoids). +// Default = 1. +// distribution Type of input distribution +// uniform = uniform over cube [-1,1]^d. +// gauss = Gaussian with mean 0 +// laplace = Laplacian, mean 0 and var 1 +// co_gauss = correlated Gaussian +// co_laplace = correlated Laplacian +// clus_gauss = clustered Gaussian +// clus_orth_flats = clusters of orth flats +// clus_ellipsoids = clusters of ellipsoids +// planted = planted distribution +// See the file rand.cpp for further information. +// +// Options affecting nearest neighbor search: +// ------------------------------------------ +// epsilon Error bound for approx. near neigh. search. +// near_neigh Number of nearest neighbors to compute. +// max_pts_visit Maximum number of points to visit before +// terminating. (Used in applications where +// real-time performance is important.) +// (Default = 0, which means no limit.) +// radius_bound Sets an upper bound on the nearest +// neighbor search radius. If the bound is +// positive, then fixed-radius nearest +// neighbor searching is performed, and the +// count of the number of points in the +// range is returned. If the bound is +// zero, then standard search is used. +// This can only be used with standard, not +// priority, search. (Default = 0, which +// means standard search.) +// +// Options affection general program behavior: +// ------------------------------------------- +// stats Level of statistics output +// silent = no output, +// exec_time += execution time only +// prep_stats += preprocessing statistics +// query_stats += query performance stats +// query_res += results of queries +// show_pts += show the data points +// show_struct += print search structure +// validate Validate experiment and compute average +// error. Since validation causes exact +// nearest neighbors to be computed by the +// brute force method, this can take a long +// time. Valid arguments are: +// on = turn validation on +// off = turn validation off +// true_near_neigh Number of true nearest neighbors to compute. +// When validating, we compute the difference +// in rank between each reported nearest neighbor +// and the true nearest neighbor of the same +// rank. Thus it is necessary to compute a +// few more true nearest neighbors. By default +// we compute 10 more than near_neigh. With +// this option the exact number can be set. +// (Used only when validating.) +// +// Example: +// -------- +// output_label test_run_0 # output label for this run +// validate off # do not perform validation +// dim 16 # points in dimension 16 +// stats query_stats # output performance statistics for queries +// seed 121212 # random number seed +// data_size 1000 +// distribution uniform +// gen_data_pts # 1000 uniform data points in dim 16 +// query_size 100 +// std_dev 0.05 +// distribution clus_gauss +// gen_query_pts # 100 points in 10 clusters with std_dev 0.05 +// bucket_size 2 +// split_rule kd +// shrink_rule none +// build_ann # kd-tree, bucket size 2 +// epsilon 0.1 +// near_neigh 5 +// max_pts_visit 100 # stop search if more than 100 points seen +// run_queries standard # run queries; 5 nearest neighbors, 10% error +// data_size 500 +// read_data_pts data.in # read up to 500 points from file data.in +// split_rule sl_midpt +// shrink_rule simple +// build_ann # bd-tree; simple shrink, sliding midpoint split +// epsilon 0 +// run_queries priority # run same queries; 0 allowable error +// +//------------------------------------------------------------------------ + +//------------------------------------------------------------------------ +// Constants +//------------------------------------------------------------------------ + +const int STRING_LEN = 500; // max string length +const double ERR = 0.00001; // epsilon (for float compares) + +//------------------------------------------------------------------------ +// Enumerated values and conversions +//------------------------------------------------------------------------ + +typedef enum {DATA, QUERY} PtType; // point types + +//------------------------------------------------------------------------ +// Statistics output levels +//------------------------------------------------------------------------ + +typedef enum { // stat levels + SILENT, // no output + EXEC_TIME, // just execution time + PREP_STATS, // preprocessing info + QUERY_STATS, // query performance + QUERY_RES, // query results + SHOW_PTS, // show data points + SHOW_STRUCT, // show tree structure + N_STAT_LEVELS} // number of levels + StatLev; + +const char stat_table[N_STAT_LEVELS][STRING_LEN] = { + "silent", // SILENT + "exec_time", // EXEC_TIME + "prep_stats", // PREP_STATS + "query_stats", // QUERY_STATS + "query_res", // QUERY_RES + "show_pts", // SHOW_PTS + "show_struct"}; // SHOW_STRUCT + +//------------------------------------------------------------------------ +// Distributions +//------------------------------------------------------------------------ + +typedef enum { // distributions + UNIFORM, // uniform over cube [-1,1]^d. + GAUSS, // Gaussian with mean 0 + LAPLACE, // Laplacian, mean 0 and var 1 + CO_GAUSS, // correlated Gaussian + CO_LAPLACE, // correlated Laplacian + CLUS_GAUSS, // clustered Gaussian + CLUS_ORTH_FLATS, // clustered on orthog flats + CLUS_ELLIPSOIDS, // clustered on ellipsoids + PLANTED, // planted distribution + N_DISTRIBS} + Distrib; + +const char distr_table[N_DISTRIBS][STRING_LEN] = { + "uniform", // UNIFORM + "gauss", // GAUSS + "laplace", // LAPLACE + "co_gauss", // CO_GAUSS + "co_laplace", // CO_LAPLACE + "clus_gauss", // CLUS_GAUSS + "clus_orth_flats", // CLUS_ORTH_FLATS + "clus_ellipsoids", // CLUS_ELLIPSOIS + "planted"}; // PLANTED + +//------------------------------------------------------------------------ +// Splitting rules for kd-trees (see ANN.h for types) +//------------------------------------------------------------------------ + +const int N_SPLIT_RULES = 6; +const char split_table[N_SPLIT_RULES][STRING_LEN] = { + "standard", // standard optimized kd-tree + "midpt", // midpoint split + "fair", // fair split + "sl_midpt", // sliding midpt split + "sl_fair", // sliding fair split + "suggest"}; // authors' choice for best + +//------------------------------------------------------------------------ +// Shrinking rules for bd-trees (see ANN.h for types) +//------------------------------------------------------------------------ + +const int N_SHRINK_RULES = 4; +const char shrink_table[N_SHRINK_RULES][STRING_LEN] = { + "none", // perform no shrinking (kd-tree) + "simple", // simple shrinking + "centroid", // centroid shrinking + "suggest"}; // authors' choice for best + +//---------------------------------------------------------------------- +// Short utility functions +// Error - general error routine +// printPoint - print a point to standard output +// lookUp - look up a name in table and return index +//---------------------------------------------------------------------- + +void Error( // error routine + char *msg, // error message + ANNerr level) // abort afterwards +{ + if (level == ANNabort) { + cerr << "ann_test: ERROR------->" << msg << "<-------------ERROR\n"; + exit(1); + } + else { + cerr << "ann_test: WARNING----->" << msg << "<-------------WARNING\n"; + } +} + +void printPoint( // print point + ANNpoint p, // the point + int dim) // the dimension +{ + cout << "["; + for (int i = 0; i < dim; i++) { + cout << p[i]; + if (i < dim-1) cout << ","; + } + cout << "]"; +} + +int lookUp( // look up name in table + const char *arg, // name to look up + const char (*table)[STRING_LEN], // name table + int size) // table size +{ + int i; + for (i = 0; i < size; i++) { + if (!strcmp(arg, table[i])) return i; + } + return i; +} + +//------------------------------------------------------------------------ +// Function declarations +//------------------------------------------------------------------------ + +void generatePts( // generate data/query points + ANNpointArray &pa, // point array (returned) + int n, // number of points + PtType type, // point type + ANNbool new_clust, // new cluster centers desired? + ANNpointArray src = NULL, // source array (for PLANTED) + int n_src = 0); // source size (for PLANTED) + +void readPts( // read data/query points from file + ANNpointArray &pa, // point array (returned) + int &n, // number of points + char *file_nm, // file name + PtType type); // point type (DATA, QUERY) + +void doValidation(); // perform validation +void getTrueNN(); // compute true nearest neighbors + +void treeStats( // print statistics on kd- or bd-tree + ostream &out, // output stream + ANNbool verbose); // print stats + +//------------------------------------------------------------------------ +// Default execution parameters +//------------------------------------------------------------------------ +const int extra_nn = 10; // how many extra true nn's? + +const int def_dim = 2; // def dimension +const int def_data_size = 100; // def data size +const int def_query_size = 100; // def number of queries +const int def_n_color = 5; // def number of colors +const ANNbool def_new_clust = ANNfalse; // def new clusters flag +const int def_max_dim = 1; // def max flat dimension +const Distrib def_distr = UNIFORM; // def distribution +const double def_std_dev = 1.00; // def standard deviation +const double def_corr_coef = 0.05; // def correlation coef +const int def_bucket_size = 1; // def bucket size +const double def_epsilon = 0.0; // def error bound +const int def_near_neigh = 1; // def number of near neighbors +const int def_max_visit = 0; // def number of points visited +const int def_rad_bound = 0; // def radius bound + // def number of true nn's +const int def_true_nn = def_near_neigh + extra_nn; +const int def_seed = 0; // def seed for random numbers +const ANNbool def_validate = ANNfalse; // def validation flag + // def statistics output level +const StatLev def_stats = QUERY_STATS; +const ANNsplitRule // def splitting rule + def_split = ANN_KD_SUGGEST; +const ANNshrinkRule // def shrinking rule + def_shrink = ANN_BD_NONE; + +//------------------------------------------------------------------------ +// Global variables - Execution options +//------------------------------------------------------------------------ + +int dim; // dimension +int data_size; // data size +int query_size; // number of queries +int n_color; // number of colors +ANNbool new_clust; // generate new clusters? +int max_dim; // maximum flat dimension +Distrib distr; // distribution +double corr_coef; // correlation coef +double std_dev; // standard deviation +double std_dev_lo; // low standard deviation +double std_dev_hi; // high standard deviation +int bucket_size; // bucket size +double epsilon; // error bound +int near_neigh; // number of near neighbors +int max_pts_visit; // max number of points to visit +double radius_bound; // maximum radius search bound +int true_nn; // number of true nn's +ANNbool validate; // validation flag +StatLev stats; // statistics output level +ANNsplitRule split; // splitting rule +ANNshrinkRule shrink; // shrinking rule + +//------------------------------------------------------------------------ +// More globals - pointers to dynamically allocated arrays and structures +// +// It is assumed that all these values are set to NULL when nothing +// is allocated. +// +// data_pts, query_pts The data and query points +// the_tree Points to the kd- or bd-tree for +// nearest neighbor searching. +// apx_nn_idx, apx_dists Record approximate near neighbor +// indices and distances +// apx_pts_in_range Counts of the number of points in +// the in approx range, for fixed- +// radius NN searching. +// true_nn_idx, true_dists Record true near neighbor +// indices and distances +// min_pts_in_range, max_... Min and max counts of the number +// of points in the in approximate +// range. +// valid_dirty To avoid repeated validation, +// we only validate query results +// once. This validation becomes +// invalid, if a new tree, new data +// points or new query points have +// been generated. +// tree_data_size The number of points in the +// current tree. (This will be the +// same a data_size unless points have +// been added since the tree was +// built.) +// +// The approximate and true nearest neighbor results are stored +// in: apx_nn_idx, apx_dists, and true_nn_idx, true_dists. +// They are really flattened 2-dimensional arrays. Each of these +// arrays consists of query_size blocks, each of which contains +// near_neigh (or true_nn) entries, one for each of the nearest +// neighbors for a given query point. +//------------------------------------------------------------------------ + +ANNpointArray data_pts; // data points +ANNpointArray query_pts; // query points +ANNbd_tree* the_tree; // kd- or bd-tree search structure +ANNidxArray apx_nn_idx; // storage for near neighbor indices +ANNdistArray apx_dists; // storage for near neighbor distances +int* apx_pts_in_range; // storage for no. of points in range +ANNidxArray true_nn_idx; // true near neighbor indices +ANNdistArray true_dists; // true near neighbor distances +int* min_pts_in_range; // min points in approx range +int* max_pts_in_range; // max points in approx range + +ANNbool valid_dirty; // validation is no longer valid + +//------------------------------------------------------------------------ +// Initialize global parameters +//------------------------------------------------------------------------ + +void initGlobals() +{ + dim = def_dim; // init execution parameters + data_size = def_data_size; + query_size = def_query_size; + distr = def_distr; + corr_coef = def_corr_coef; + std_dev = def_std_dev; + std_dev_lo = def_std_dev; + std_dev_hi = def_std_dev; + new_clust = def_new_clust; + max_dim = def_max_dim; + n_color = def_n_color; + bucket_size = def_bucket_size; + epsilon = def_epsilon; + near_neigh = def_near_neigh; + max_pts_visit = def_max_visit; + radius_bound = def_rad_bound; + true_nn = def_true_nn; + validate = def_validate; + stats = def_stats; + split = def_split; + shrink = def_shrink; + annIdum = -def_seed; // init. global seed for ran0() + + data_pts = NULL; // initialize storage pointers + query_pts = NULL; + the_tree = NULL; + apx_nn_idx = NULL; + apx_dists = NULL; + apx_pts_in_range = NULL; + true_nn_idx = NULL; + true_dists = NULL; + min_pts_in_range = NULL; + max_pts_in_range = NULL; + + valid_dirty = ANNtrue; // (validation must be done) +} + +//------------------------------------------------------------------------ +// getDirective - skip comments and read next directive +// Returns ANNtrue if directive read, and ANNfalse if eof seen. +//------------------------------------------------------------------------ + +ANNbool skipComment( // skip any comments + istream &in) // input stream +{ + char ch = 0; + // skip whitespace + do { in.get(ch); } while (isspace(ch) && !in.eof()); + while (ch == '#' && !in.eof()) { // comment? + // skip to end of line + do { in.get(ch); } while(ch != '\n' && !in.eof()); + // skip whitespace + do { in.get(ch); } while(isspace(ch) && !in.eof()); + } + if (in.eof()) return ANNfalse; // end of file + in.putback(ch); // put character back + return ANNtrue; +} + +ANNbool getDirective( + istream &in, // input stream + char *directive) // directive storage +{ + if (!skipComment(in)) // skip comments + return ANNfalse; // found eof along the way? + in >> directive; // read directive + return ANNtrue; +} + + +//------------------------------------------------------------------------ +// main program - driver +// The main program reads input options, invokes the necessary +// routines to process them. +//------------------------------------------------------------------------ + +int main(int argc, char** argv) +{ + long clock0; // clock time + char directive[STRING_LEN]; // input directive + char arg[STRING_LEN]; // all-purpose argument + + cout << "------------------------------------------------------------\n" + << "ann_test: Version " << ANNversion << " " << ANNversionCmt << "\n" + << " Copyright: " << ANNcopyright << ".\n" + << " Latest Revision: " << ANNlatestRev << ".\n" + << "------------------------------------------------------------\n\n"; + + initGlobals(); // initialize global values + + //-------------------------------------------------------------------- + // Main input loop + //-------------------------------------------------------------------- + // read input directive + while (getDirective(cin, directive)) { + //---------------------------------------------------------------- + // Read options + //---------------------------------------------------------------- + if (!strcmp(directive,"dim")) { + cin >> dim; + } + else if (!strcmp(directive,"colors")) { + cin >> n_color; + } + else if (!strcmp(directive,"new_clust")) { + new_clust = ANNtrue; + } + else if (!strcmp(directive,"max_clus_dim")) { + cin >> max_dim; + } + else if (!strcmp(directive,"std_dev")) { + cin >> std_dev; + } + else if (!strcmp(directive,"std_dev_lo")) { + cin >> std_dev_lo; + } + else if (!strcmp(directive,"std_dev_hi")) { + cin >> std_dev_hi; + } + else if (!strcmp(directive,"corr_coef")) { + cin >> corr_coef; + } + else if (!strcmp(directive, "data_size")) { + cin >> data_size; + } + else if (!strcmp(directive,"query_size")) { + cin >> query_size; + } + else if (!strcmp(directive,"bucket_size")) { + cin >> bucket_size; + } + else if (!strcmp(directive,"epsilon")) { + cin >> epsilon; + } + else if (!strcmp(directive,"max_pts_visit")) { + cin >> max_pts_visit; + valid_dirty = ANNtrue; // validation must be redone + } + else if (!strcmp(directive,"radius_bound")) { + cin >> radius_bound; + valid_dirty = ANNtrue; // validation must be redone + } + else if (!strcmp(directive,"near_neigh")) { + cin >> near_neigh; + true_nn = near_neigh + extra_nn; // also reset true near neighs + valid_dirty = ANNtrue; // validation must be redone + } + else if (!strcmp(directive,"true_near_neigh")) { + cin >> true_nn; + valid_dirty = ANNtrue; // validation must be redone + } + //---------------------------------------------------------------- + // seed option + // The seed is reset by setting the global annIdum to the + // negation of the seed value. See rand.cpp. + //---------------------------------------------------------------- + else if (!strcmp(directive,"seed")) { + cin >> annIdum; + annIdum = -annIdum; + } + //---------------------------------------------------------------- + // validate option + //---------------------------------------------------------------- + else if (!strcmp(directive,"validate")) { + cin >> arg; // input argument + if (!strcmp(arg, "on")) { + validate = ANNtrue; + cout << "validate = on " + << "(Warning: this may slow execution time.)\n"; + } + else if (!strcmp(arg, "off")) { + validate = ANNfalse; + } + else { + cerr << "Argument: " << arg << "\n"; + Error("validate argument must be \"on\" or \"off\"", ANNabort); + } + } + //---------------------------------------------------------------- + // distribution option + //---------------------------------------------------------------- + else if (!strcmp(directive,"distribution")) { + cin >> arg; // input name and translate + distr = (Distrib) lookUp(arg, distr_table, N_DISTRIBS); + if (distr >= N_DISTRIBS) { // not something we recognize + cerr << "Distribution: " << arg << "\n"; + Error("Unknown distribution", ANNabort); + } + } + //---------------------------------------------------------------- + // stats option + //---------------------------------------------------------------- + else if (!strcmp(directive,"stats")) { + cin >> arg; // input name and translate + stats = (StatLev) lookUp(arg, stat_table, N_STAT_LEVELS); + if (stats >= N_STAT_LEVELS) { // not something we recognize + cerr << "Stats level: " << arg << "\n"; + Error("Unknown statistics level", ANNabort); + } + if (stats > SILENT) + cout << "stats = " << arg << "\n"; + } + //---------------------------------------------------------------- + // split_rule option + //---------------------------------------------------------------- + else if (!strcmp(directive,"split_rule")) { + cin >> arg; // input split_rule name + split = (ANNsplitRule) lookUp(arg, split_table, N_SPLIT_RULES); + if (split >= N_SPLIT_RULES) { // not something we recognize + cerr << "Splitting rule: " << arg << "\n"; + Error("Unknown splitting rule", ANNabort); + } + } + //---------------------------------------------------------------- + // shrink_rule option + //---------------------------------------------------------------- + else if (!strcmp(directive,"shrink_rule")) { + cin >> arg; // input split_rule name + shrink = (ANNshrinkRule) lookUp(arg, shrink_table, N_SHRINK_RULES); + if (shrink >= N_SHRINK_RULES) { // not something we recognize + cerr << "Shrinking rule: " << arg << "\n"; + Error("Unknown shrinking rule", ANNabort); + } + } + //---------------------------------------------------------------- + // label operation + //---------------------------------------------------------------- + else if (!strcmp(directive,"output_label")) { + cin >> arg; + if (stats > SILENT) + cout << "<" << arg << ">\n"; + } + //---------------------------------------------------------------- + // gen_data_pts operation + //---------------------------------------------------------------- + else if (!strcmp(directive,"gen_data_pts")) { + if (distr == PLANTED) { // planted distribution + Error("Cannot use planted distribution for data points", ANNabort); + } + generatePts( // generate data points + data_pts, // data points + data_size, // data size + DATA, // data points + new_clust); // new clusters flag + valid_dirty = ANNtrue; // validation must be redone + new_clust = ANNfalse; // reset flag + } + //---------------------------------------------------------------- + // gen_query_pts operation + // If the distribution is PLANTED, then the query points + // are planted near the data points (which must already be + // generated). + //---------------------------------------------------------------- + else if (!strcmp(directive,"gen_query_pts")) { + if (distr == PLANTED) { // planted distribution + if (data_pts == NULL) { + Error("Must generate data points before query points for planted distribution", ANNabort); + } + generatePts( // generate query points + query_pts, // point array + query_size, // number of query points + QUERY, // query points + new_clust, // new clusters flag + data_pts, // plant around data pts + data_size); + } + else { // all other distributions + generatePts( // generate query points + query_pts, // point array + query_size, // number of query points + QUERY, // query points + new_clust); // new clusters flag + } + valid_dirty = ANNtrue; // validation must be redone + new_clust = ANNfalse; // reset flag + } + //---------------------------------------------------------------- + // read_data_pts operation + //---------------------------------------------------------------- + else if (!strcmp(directive,"read_data_pts")) { + cin >> arg; // input file name + readPts( + data_pts, // point array + data_size, // number of points + arg, // file name + DATA); // data points + valid_dirty = ANNtrue; // validation must be redone + } + //---------------------------------------------------------------- + // read_query_pts operation + //---------------------------------------------------------------- + else if (!strcmp(directive,"read_query_pts")) { + cin >> arg; // input file name + readPts( + query_pts, // point array + query_size, // number of points + arg, // file name + QUERY); // query points + valid_dirty = ANNtrue; // validation must be redone + } + //---------------------------------------------------------------- + // build_ann operation + // We always invoke the constructor for bd-trees. Note + // that when the shrinking rule is NONE (which is true by + // default), then this constructs a kd-tree. + //---------------------------------------------------------------- + else if (!strcmp(directive,"build_ann")) { + //------------------------------------------------------------ + // Build the tree + //------------------------------------------------------------ + if (the_tree != NULL) { // tree exists already + delete the_tree; // get rid of it + } + clock0 = clock(); // start time + + the_tree = new ANNbd_tree( // build it + data_pts, // the data points + data_size, // number of points + dim, // dimension of space + bucket_size, // maximum bucket size + split, // splitting rule + shrink); // shrinking rule + + //------------------------------------------------------------ + // Print summary + //------------------------------------------------------------ + long prep_time = clock() - clock0; // end of prep time + + if (stats > SILENT) { + cout << "[Build ann-structure:\n"; + cout << " split_rule = " << split_table[split] << "\n"; + cout << " shrink_rule = " << shrink_table[shrink] << "\n"; + cout << " data_size = " << data_size << "\n"; + cout << " dim = " << dim << "\n"; + cout << " bucket_size = " << bucket_size << "\n"; + + if (stats >= EXEC_TIME) { // output processing time + cout << " process_time = " + << double(prep_time)/CLOCKS_PER_SEC << " sec\n"; + } + + if (stats >= PREP_STATS) // output or check tree stats + treeStats(cout, ANNtrue); // print tree stats + else + treeStats(cout, ANNfalse); // check stats + + if (stats >= SHOW_STRUCT) { // print the whole tree + cout << " (Structure Contents:\n"; + the_tree->Print(ANNfalse, cout); + cout << " )\n"; + } + cout << "]\n"; + } + } + //---------------------------------------------------------------- + // dump operation + //---------------------------------------------------------------- + else if (!strcmp(directive,"dump")) { + cin >> arg; // input file name + if (the_tree == NULL) { // no tree + Error("Cannot dump. No tree has been built yet", ANNwarn); + } + else { // there is a tree + // try to open file + ofstream out_dump_file(arg); + if (!out_dump_file) { + cerr << "File name: " << arg << "\n"; + Error("Cannot open dump file", ANNabort); + } + // dump the tree and points + the_tree->Dump(ANNtrue, out_dump_file); + if (stats > SILENT) { + cout << "(Tree has been dumped to file " << arg << ")\n"; + } + } + } + //---------------------------------------------------------------- + // load operation + // Since this not only loads a tree, but loads a new set + // of data points. + //---------------------------------------------------------------- + else if (!strcmp(directive,"load")) { + cin >> arg; // input file name + if (the_tree != NULL) { // tree exists already + delete the_tree; // get rid of it + } + if (data_pts != NULL) { // data points exist already + delete data_pts; // get rid of them + } + + ifstream in_dump_file(arg); // try to open file + if (!in_dump_file) { + cerr << "File name: " << arg << "\n"; + Error("Cannot open file for loading", ANNabort); + } + // build tree by loading + the_tree = new ANNbd_tree(in_dump_file); + + dim = the_tree->theDim(); // new dimension + data_size = the_tree->nPoints(); // number of points + data_pts = the_tree->thePoints(); // new points + + valid_dirty = ANNtrue; // validation must be redone + + if (stats > SILENT) { + cout << "(Tree has been loaded from file " << arg << ")\n"; + } + if (stats >= SHOW_STRUCT) { // print the tree + cout << " (Structure Contents:\n"; + the_tree->Print(ANNfalse, cout); + cout << " )\n"; + } + } + //---------------------------------------------------------------- + // run_queries operation + // This section does all the query processing. It consists + // of the following subsections: + // + // ** input the argument (standard or priority) and output + // the header describing the essential information. + // ** allocate space for the results to be stored. + // ** run the queries by invoking the appropriate search + // procedure on the query points. Print nearest neighbor + // if requested. + // ** print final summaries + // + // The approach for processing multiple nearest neighbors is + // pretty crude. We allocate an array whose size is the + // product of the total number of queries times the number of + // nearest neighbors (k), and then use each k consecutive + // entries to store the results of each query. + //---------------------------------------------------------------- + else if (!strcmp(directive,"run_queries")) { + + //------------------------------------------------------------ + // Input arguments and print summary + //------------------------------------------------------------ + enum {STANDARD, PRIORITY} method; + + cin >> arg; // input argument + if (!strcmp(arg, "standard")) { + method = STANDARD; + } + else if (!strcmp(arg, "priority")) { + method = PRIORITY; + } + else { + cerr << "Search type: " << arg << "\n"; + Error("Search type must be \"standard\" or \"priority\"", + ANNabort); + } + if (data_pts == NULL || query_pts == NULL) { + Error("Either data set and query set not constructed", ANNabort); + } + if (the_tree == NULL) { + Error("No search tree built.", ANNabort); + } + + //------------------------------------------------------------ + // Set up everything + //------------------------------------------------------------ + + #ifdef ANN_PERF // performance only + annResetStats(data_size); // reset statistics + #endif + + clock0 = clock(); // start time + // deallocate existing storage + if (apx_nn_idx != NULL) delete [] apx_nn_idx; + if (apx_dists != NULL) delete [] apx_dists; + if (apx_pts_in_range != NULL) delete [] apx_pts_in_range; + // allocate apx answer storage + apx_nn_idx = new ANNidx[near_neigh*query_size]; + apx_dists = new ANNdist[near_neigh*query_size]; + apx_pts_in_range = new int[query_size]; + + annMaxPtsVisit(max_pts_visit); // set max points to visit + + //------------------------------------------------------------ + // Run the queries + //------------------------------------------------------------ + // pointers for current query + ANNidxArray curr_nn_idx = apx_nn_idx; + ANNdistArray curr_dists = apx_dists; + + for (int i = 0; i < query_size; i++) { + #ifdef ANN_PERF + annResetCounts(); // reset counters + #endif + apx_pts_in_range[i] = 0; + + if (radius_bound == 0) { // no radius bound + if (method == STANDARD) { + the_tree->annkSearch( + query_pts[i], // query point + near_neigh, // number of near neighbors + curr_nn_idx, // nearest neighbors (returned) + curr_dists, // distance (returned) + epsilon); // error bound + } + else if (method == PRIORITY) { + the_tree->annkPriSearch( + query_pts[i], // query point + near_neigh, // number of near neighbors + curr_nn_idx, // nearest neighbors (returned) + curr_dists, // distance (returned) + epsilon); // error bound + } + else { + Error("Internal error - invalid method", ANNabort); + } + } + else { // use radius bound + if (method != STANDARD) { + Error("A nonzero radius bound assumes standard search", + ANNwarn); + } + apx_pts_in_range[i] = the_tree->annkFRSearch( + query_pts[i], // query point + ANN_POW(radius_bound), // squared radius search bound + near_neigh, // number of near neighbors + curr_nn_idx, // nearest neighbors (returned) + curr_dists, // distance (returned) + epsilon); // error bound + } + curr_nn_idx += near_neigh; // increment current pointers + curr_dists += near_neigh; + + #ifdef ANN_PERF + annUpdateStats(); // update stats + #endif + } + + long query_time = clock() - clock0; // end of query time + + if (validate) { // validation requested + if (valid_dirty) getTrueNN(); // get true near neighbors + doValidation(); // validate + } + + //------------------------------------------------------------ + // Print summaries + //------------------------------------------------------------ + + if (stats > SILENT) { + cout << "[Run Queries:\n"; + cout << " query_size = " << query_size << "\n"; + cout << " dim = " << dim << "\n"; + cout << " search_method = " << arg << "\n"; + cout << " epsilon = " << epsilon << "\n"; + cout << " near_neigh = " << near_neigh << "\n"; + if (max_pts_visit != 0) + cout << " max_pts_visit = " << max_pts_visit << "\n"; + if (radius_bound != 0) + cout << " radius_bound = " << radius_bound << "\n"; + if (validate) + cout << " true_nn = " << true_nn << "\n"; + + if (stats >= EXEC_TIME) { // print exec time summary + cout << " query_time = " << + double(query_time)/(query_size*CLOCKS_PER_SEC) + << " sec/query"; + #ifdef ANN_PERF + cout << " (biased by perf measurements)"; + #endif + cout << "\n"; + } + + if (stats >= QUERY_STATS) { // output performance stats + #ifdef ANN_PERF + cout.flush(); + annPrintStats(validate); + #else + cout << " (Performance statistics unavailable.)\n"; + #endif + } + + if (stats >= QUERY_RES) { // output results + cout << " (Query Results:\n"; + cout << " Pt\tANN\tDist\n"; + curr_nn_idx = apx_nn_idx; // subarray pointers + curr_dists = apx_dists; + // output nearest neighbors + for (int i = 0; i < query_size; i++) { + cout << " " << setw(4) << i; + for (int j = 0; j < near_neigh; j++) { + // exit if no more neighbors + if (curr_nn_idx[j] == ANN_NULL_IDX) { + cout << "\t[no other pts in radius bound]\n"; + break; + } + else { // output point info + cout << "\t" << curr_nn_idx[j] + << "\t" << ANN_ROOT(curr_dists[j]) + << "\n"; + } + } + // output range count + if (radius_bound != 0) { + cout << " pts_in_radius_bound = " + << apx_pts_in_range[i] << "\n"; + } + // increment subarray pointers + curr_nn_idx += near_neigh; + curr_dists += near_neigh; + } + cout << " )\n"; + } + cout << "]\n"; + } + } + //---------------------------------------------------------------- + // Unknown directive + //---------------------------------------------------------------- + else { + cerr << "Directive: " << directive << "\n"; + Error("Unknown directive", ANNabort); + } + } + //-------------------------------------------------------------------- + // End of input loop (deallocate stuff that was allocated) + //-------------------------------------------------------------------- + if (the_tree != NULL) delete the_tree; + if (data_pts != NULL) annDeallocPts(data_pts); + if (query_pts != NULL) annDeallocPts(query_pts); + if (apx_nn_idx != NULL) delete [] apx_nn_idx; + if (apx_dists != NULL) delete [] apx_dists; + if (apx_pts_in_range != NULL) delete [] apx_pts_in_range; + + annClose(); // close ANN + + return EXIT_SUCCESS; +} + +//------------------------------------------------------------------------ +// generatePts - call appropriate routine to generate points of a +// given distribution. +//------------------------------------------------------------------------ + +void generatePts( + ANNpointArray &pa, // point array (returned) + int n, // number of points to generate + PtType type, // point type + ANNbool new_clust, // new cluster centers desired? + ANNpointArray src, // source array (if distr=PLANTED) + int n_src) // source size (if distr=PLANTED) +{ + if (pa != NULL) annDeallocPts(pa); // get rid of any old points + pa = annAllocPts(n, dim); // allocate point storage + + switch (distr) { + case UNIFORM: // uniform over cube [-1,1]^d. + annUniformPts(pa, n, dim); + break; + case GAUSS: // Gaussian with mean 0 + annGaussPts(pa, n, dim, std_dev); + break; + case LAPLACE: // Laplacian, mean 0 and var 1 + annLaplacePts(pa, n, dim); + break; + case CO_GAUSS: // correlated Gaussian + annCoGaussPts(pa, n, dim, corr_coef); + break; + case CO_LAPLACE: // correlated Laplacian + annCoLaplacePts(pa, n, dim, corr_coef); + break; + case CLUS_GAUSS: // clustered Gaussian + annClusGaussPts(pa, n, dim, n_color, new_clust, std_dev); + break; + case CLUS_ORTH_FLATS: // clustered on orthog flats + annClusOrthFlats(pa, n, dim, n_color, new_clust, std_dev, max_dim); + break; + case CLUS_ELLIPSOIDS: // clustered ellipsoids + annClusEllipsoids(pa, n, dim, n_color, new_clust, std_dev, + std_dev_lo, std_dev_hi, max_dim); + break; + case PLANTED: // planted distribution + annPlanted(pa, n, dim, src, n_src, std_dev); + break; + default: + Error("INTERNAL ERROR: Unknown distribution", ANNabort); + break; + } + + if (stats > SILENT) { + if(type == DATA) cout << "[Generating Data Points:\n"; + else cout << "[Generating Query Points:\n"; + cout << " number = " << n << "\n"; + cout << " dim = " << dim << "\n"; + cout << " distribution = " << distr_table[distr] << "\n"; + if (annIdum < 0) + cout << " seed = " << annIdum << "\n"; + if (distr == GAUSS || distr == CLUS_GAUSS + || distr == CLUS_ORTH_FLATS) + cout << " std_dev = " << std_dev << "\n"; + if (distr == CLUS_ELLIPSOIDS) { + cout << " std_dev = " << std_dev << " (small) \n"; + cout << " std_dev_lo = " << std_dev_lo << "\n"; + cout << " std_dev_hi = " << std_dev_hi << "\n"; + } + if (distr == CO_GAUSS || distr == CO_LAPLACE) + cout << " corr_coef = " << corr_coef << "\n"; + if (distr == CLUS_GAUSS || distr == CLUS_ORTH_FLATS + || distr == CLUS_ELLIPSOIDS) { + cout << " colors = " << n_color << "\n"; + if (new_clust) + cout << " (cluster centers regenerated)\n"; + } + if (distr == CLUS_ORTH_FLATS || distr == CLUS_ELLIPSOIDS) { + cout << " max_dim = " << max_dim << "\n"; + } + } + // want to see points? + if ((type == DATA && stats >= SHOW_PTS) || + (type == QUERY && stats >= QUERY_RES)) { + if(type == DATA) cout << "(Data Points:\n"; + else cout << "(Query Points:\n"; + for (int i = 0; i < n; i++) { + cout << " " << setw(4) << i << "\t"; + printPoint(pa[i], dim); + cout << "\n"; + } + cout << " )\n"; + } + cout << "]\n"; +} + +//------------------------------------------------------------------------ +// readPts - read a collection of data or query points. +//------------------------------------------------------------------------ + +void readPts( + ANNpointArray &pa, // point array (returned) + int &n, // number of points + char *file_nm, // file name + PtType type) // point type (DATA, QUERY) +{ + int i; + //-------------------------------------------------------------------- + // Open input file and read points + //-------------------------------------------------------------------- + ifstream in_file(file_nm); // try to open data file + if (!in_file) { + cerr << "File name: " << file_nm << "\n"; + Error("Cannot open input data/query file", ANNabort); + } + // allocate storage for points + if (pa != NULL) annDeallocPts(pa); // get rid of old points + pa = annAllocPts(n, dim); + + for (i = 0; i < n; i++) { // read the data + if (!(in_file >> pa[i][0])) break; + for (int d = 1; d < dim; d++) { + in_file >> pa[i][d]; + } + } + + char ignore_me; // character for EOF test + in_file >> ignore_me; // try to get one more character + if (!in_file.eof()) { // exhausted space before eof + if (type == DATA) + Error("`data_size' too small. Input file truncated.", ANNwarn); + else + Error("`query_size' too small. Input file truncated.", ANNwarn); + } + n = i; // number of points read + + //-------------------------------------------------------------------- + // Print summary + //-------------------------------------------------------------------- + if (stats > SILENT) { + if (type == DATA) { + cout << "[Read Data Points:\n"; + cout << " data_size = " << n << "\n"; + } + else { + cout << "[Read Query Points:\n"; + cout << " query_size = " << n << "\n"; + } + cout << " file_name = " << file_nm << "\n"; + cout << " dim = " << dim << "\n"; + // print if results requested + if ((type == DATA && stats >= SHOW_PTS) || + (type == QUERY && stats >= QUERY_RES)) { + cout << " (Points:\n"; + for (i = 0; i < n; i++) { + cout << " " << i << "\t"; + printPoint(pa[i], dim); + cout << "\n"; + } + cout << " )\n"; + } + cout << "]\n"; + } +} + +//------------------------------------------------------------------------ +// getTrueNN +// Computes the true nearest neighbors. For purposes of validation, +// this intentionally done in a rather dumb (but safe way), by +// invoking the brute-force search. +// +// The number of true nearest neighbors is somewhat larger than +// the number of nearest neighbors. This is so that the validation +// can determine the expected difference in element ranks. +// +// This procedure is invoked just prior to running queries. Since +// the operation takes a long time, it is performed only if needed. +// In particular, once generated, it will be regenerated only if +// new query or data points are generated, or if the requested number +// of true near neighbors or approximate near neighbors has changed. +// +// To validate fixed-radius searching, we compute two counts, one +// with the original query radius (trueSqRadius) and the other with +// a radius shrunken by the error factor (minSqradius). We then +// check that the count of points inside the approximate range is +// between these two bounds. Because fixed-radius search is +// allowed to ignore points within the shrunken radius, we only +// compute exact neighbors within this smaller distance (for we +// cannot guarantee that we will even visit the other points). +//------------------------------------------------------------------------ + +void getTrueNN() // compute true nearest neighbors +{ + if (stats > SILENT) { + cout << "(Computing true nearest neighbors for validation. This may take time.)\n"; + } + // deallocate existing storage + if (true_nn_idx != NULL) delete [] true_nn_idx; + if (true_dists != NULL) delete [] true_dists; + if (min_pts_in_range != NULL) delete [] min_pts_in_range; + if (max_pts_in_range != NULL) delete [] max_pts_in_range; + + if (true_nn > data_size) { // can't get more nn than points + true_nn = data_size; + } + + // allocate true answer storage + true_nn_idx = new ANNidx[true_nn*query_size]; + true_dists = new ANNdist[true_nn*query_size]; + min_pts_in_range = new int[query_size]; + max_pts_in_range = new int[query_size]; + + ANNidxArray curr_nn_idx = true_nn_idx; // current locations in arrays + ANNdistArray curr_dists = true_dists; + + // allocate search structure + ANNbruteForce *the_brute = new ANNbruteForce(data_pts, data_size, dim); + // compute nearest neighbors + for (int i = 0; i < query_size; i++) { + if (radius_bound == 0) { // standard kNN search + the_brute->annkSearch( // compute true near neighbors + query_pts[i], // query point + true_nn, // number of nearest neighbors + curr_nn_idx, // where to put indices + curr_dists); // where to put distances + } + else { // fixed radius kNN search + // search radii limits + ANNdist trueSqRadius = ANN_POW(radius_bound); + ANNdist minSqRadius = ANN_POW(radius_bound / (1+epsilon)); + min_pts_in_range[i] = the_brute->annkFRSearch( + query_pts[i], // query point + minSqRadius, // shrunken search radius + true_nn, // number of near neighbors + curr_nn_idx, // nearest neighbors (returned) + curr_dists); // distance (returned) + max_pts_in_range[i] = the_brute->annkFRSearch( + query_pts[i], // query point + trueSqRadius, // true search radius + 0, NULL, NULL); // (ignore kNN info) + } + curr_nn_idx += true_nn; // increment nn index pointer + curr_dists += true_nn; // increment nn dist pointer + } + delete the_brute; // delete brute-force struct + valid_dirty = ANNfalse; // validation good for now +} + +//------------------------------------------------------------------------ +// doValidation +// Compares the approximate answers to the k-nearest neighbors +// against the true nearest neighbors (computed earlier). It is +// assumed that the true nearest neighbors and indices have been +// computed earlier. +// +// First, we check that all the results are within their allowed +// limits, and generate an internal error, if not. For the sake of +// performance evaluation, we also compute the following two +// quantities for nearest neighbors: +// +// Average Error +// ------------- +// The relative error between the distance to a reported nearest +// neighbor and the true nearest neighbor (of the same rank), +// +// Rank Error +// ---------- +// The difference in rank between the reported nearest neighbor and +// its position (if any) among the true nearest neighbors. If we +// cannot find this point among the true nearest neighbors, then +// it assumed that the rank of the true nearest neighbor is true_nn+1. +// +// Because of the possibility of duplicate distances, this is computed +// as follows. For the j-th reported nearest neighbor, we count the +// number of true nearest neighbors that are at least this close. Let +// this be rnk. Then the rank error is max(0, j-rnk). (In the code +// below, j is an array index and so the first item is 0, not 1. Thus +// we take max(0, j+1-rnk) instead.) +// +// For the results of fixed-radious range count, we verify that the +// reported number of points in the range lies between the actual +// number of points in the shrunken and the true search radius. +//------------------------------------------------------------------------ + +void doValidation() // perform validation +{ + int* curr_apx_idx = apx_nn_idx; // approx index pointer + ANNdistArray curr_apx_dst = apx_dists; // approx distance pointer + int* curr_tru_idx = true_nn_idx; // true index pointer + ANNdistArray curr_tru_dst = true_dists; // true distance pointer + int i, j; + + if (true_nn < near_neigh) { + Error("Cannot validate with fewer true near neighbors than actual", ANNabort); + } + + for (i = 0; i < query_size; i++) { // validate each query + //---------------------------------------------------------------- + // Compute result errors + // In fixed radius search it is possible that not all k + // nearest neighbors were computed. Because the true + // results are computed over the shrunken radius, we should + // have at least as many true nearest neighbors as + // approximate nearest neighbors. (If not, an infinite + // error will be generated, and so an internal error will + // will be generated. + // + // Because nearest neighbors are sorted in increasing order + // of distance, as soon as we see a null index, we can + // terminate the distance checking. The error in the + // result should not exceed epsilon. However, if + // max_pts_visit is nonzero (meaning that the search is + // terminated early) this might happen. + //---------------------------------------------------------------- + for (j = 0; j < near_neigh; j++) { + if (curr_tru_idx[j] == ANN_NULL_IDX)// no more true neighbors? + break; + // true i-th smallest distance + double true_dist = ANN_ROOT(curr_tru_dst[j]); + // reported i-th smallest + double rept_dist = ANN_ROOT(curr_apx_dst[j]); + // better than optimum? + if (rept_dist < true_dist*(1-ERR)) { + Error("INTERNAL ERROR: True nearest neighbor incorrect", + ANNabort); + } + + double resultErr; // result error + if (true_dist == 0.0) { // let's not divide by zero + if (rept_dist != 0.0) resultErr = ANN_DBL_MAX; + else resultErr = 0.0; + } + else { + resultErr = (rept_dist - true_dist) / ((double) true_dist); + } + + if (resultErr > epsilon && max_pts_visit == 0) { + Error("INTERNAL ERROR: Actual error exceeds epsilon", + ANNabort); + } + #ifdef ANN_PERF + ann_average_err += resultErr; // update statistics error + #endif + } + //-------------------------------------------------------------------- + // Compute rank errors (only needed for perf measurements) + //-------------------------------------------------------------------- + #ifdef ANN_PERF + for (j = 0; j < near_neigh; j++) { + if (curr_tru_idx[i] == ANN_NULL_IDX) // no more true neighbors? + break; + + double rnkErr = 0.0; // rank error + // reported j-th distance + ANNdist rept_dist = curr_apx_dst[j]; + int rnk = 0; // compute rank of this item + while (rnk < true_nn && curr_tru_dst[rnk] <= rept_dist) + rnk++; + if (j+1-rnk > 0) rnkErr = (double) (j+1-rnk); + ann_rank_err += rnkErr; // update average rank error + } + #endif + //---------------------------------------------------------------- + // Check range counts from fixed-radius query + //---------------------------------------------------------------- + if (radius_bound != 0) { // fixed-radius search + if (apx_pts_in_range[i] < min_pts_in_range[i] || + apx_pts_in_range[i] > max_pts_in_range[i]) + Error("INTERNAL ERROR: Invalid fixed-radius range count", + ANNabort); + } + + curr_apx_idx += near_neigh; + curr_apx_dst += near_neigh; + curr_tru_idx += true_nn; // increment current pointers + curr_tru_dst += true_nn; + } +} + +//---------------------------------------------------------------------- +// treeStats +// Computes a number of statistics related to kd_trees and +// bd_trees. These statistics are printed if in verbose mode, +// and otherwise they are only printed if they are deemed to +// be outside of reasonable operating bounds. +//---------------------------------------------------------------------- + +#define log2(x) (log(x)/log(2.0)) // log base 2 + +void treeStats( + ostream &out, // output stream + ANNbool verbose) // print stats +{ + const int MIN_PTS = 20; // min no. pts for checking + const float MAX_FRAC_TL = 0.50; // max frac of triv leaves + const float MAX_AVG_AR = 20; // max average aspect ratio + + ANNkdStats st; // statistics structure + + the_tree->getStats(st); // get statistics + // total number of nodes + int n_nodes = st.n_lf + st.n_spl + st.n_shr; + // should be O(n/bs) + int opt_n_nodes = (int) (2*(float(st.n_pts)/st.bkt_size)); + int too_many_nodes = 10*opt_n_nodes; + if (st.n_pts >= MIN_PTS && n_nodes > too_many_nodes) { + out << "-----------------------------------------------------------\n"; + out << "Warning: The tree has more than 10x as many nodes as points.\n"; + out << "You may want to consider a different split or shrink method.\n"; + out << "-----------------------------------------------------------\n"; + verbose = ANNtrue; + } + // fraction of trivial leaves + float frac_tl = (st.n_lf == 0 ? 0 : ((float) st.n_tl)/ st.n_lf); + if (st.n_pts >= MIN_PTS && frac_tl > MAX_FRAC_TL) { + out << "-----------------------------------------------------------\n"; + out << "Warning: A significant fraction of leaves contain no points.\n"; + out << "You may want to consider a different split or shrink method.\n"; + out << "-----------------------------------------------------------\n"; + verbose = ANNtrue; + } + // depth should be O(dim*log n) + int too_many_levels = (int) (2.0 * st.dim * log2((double) st.n_pts)); + int opt_levels = (int) log2(double(st.n_pts)/st.bkt_size); + if (st.n_pts >= MIN_PTS && st.depth > too_many_levels) { + out << "-----------------------------------------------------------\n"; + out << "Warning: The tree is more than 2x as deep as (dim*log n).\n"; + out << "You may want to consider a different split or shrink method.\n"; + out << "-----------------------------------------------------------\n"; + verbose = ANNtrue; + } + // average leaf aspect ratio + if (st.n_pts >= MIN_PTS && st.avg_ar > MAX_AVG_AR) { + out << "-----------------------------------------------------------\n"; + out << "Warning: Average aspect ratio of cells is quite large.\n"; + out << "This may slow queries depending on the point distribution.\n"; + out << "-----------------------------------------------------------\n"; + verbose = ANNtrue; + } + + //------------------------------------------------------------------ + // Print summaries if requested + //------------------------------------------------------------------ + if (verbose) { // output statistics + out << " (Structure Statistics:\n"; + out << " n_nodes = " << n_nodes + << " (opt = " << opt_n_nodes + << ", best if < " << too_many_nodes << ")\n" + << " n_leaves = " << st.n_lf + << " (" << st.n_tl << " contain no points)\n" + << " n_splits = " << st.n_spl << "\n" + << " n_shrinks = " << st.n_shr << "\n"; + out << " empty_leaves = " << frac_tl*100 + << " percent (best if < " << MAX_FRAC_TL*100 << " percent)\n"; + out << " depth = " << st.depth + << " (opt = " << opt_levels + << ", best if < " << too_many_levels << ")\n"; + out << " avg_aspect_ratio = " << st.avg_ar + << " (best if < " << MAX_AVG_AR << ")\n"; + out << " )\n"; + } +} diff --git a/.svn/pristine/91/912621d20d427729c794c455bbf593ed630fb63f.svn-base b/.svn/pristine/91/912621d20d427729c794c455bbf593ed630fb63f.svn-base new file mode 100644 index 0000000..e70e8af Binary files /dev/null and b/.svn/pristine/91/912621d20d427729c794c455bbf593ed630fb63f.svn-base differ diff --git a/.svn/pristine/91/91738bf1e674748fd5a8a177c2c17d60fa7c4ae3.svn-base b/.svn/pristine/91/91738bf1e674748fd5a8a177c2c17d60fa7c4ae3.svn-base new file mode 100644 index 0000000..5057926 --- /dev/null +++ b/.svn/pristine/91/91738bf1e674748fd5a8a177c2c17d60fa7c4ae3.svn-base @@ -0,0 +1,929 @@ +/** + * @file + * @brief Representation of an octree for show + * @author Jan Elseberg. Jacobs University Bremen gGmbH, Germany + * @author Andreas Nuechter. Jacobs University Bremen gGmbH, Germany + */ + +#ifndef SHOWBOCTREE_H +#define SHOWBOCTREE_H + +#include "slam6d/Boctree.h" +#include "show/colormanager.h" +#include "show/scancolormanager.h" +#include "show/viewcull.h" +#include "show/colordisplay.h" +#include "slam6d/scan.h" + + + +/** + * @brief Octree for show + * + * A cubic bounding box is calculated + * from the given 3D points. Then it + * is recusivly subdivided into smaller + * subboxes + * + * It contains software culling functionalities + */ +template +class Show_BOctTree : public colordisplay +{ +protected: + BOctTree* m_tree; + + unsigned long maxtargetpoints; + + unsigned int current_lod_mode; + + //! A copy of pointdim of the tree initialized from + unsigned int POINTDIM; + + DataOcttree* m_cache_access; + Scan* m_scan; + + void init(ScanColorManager* scm) { + setColorManager(0); + if (scm) { + scm->registerTree(this); + scm->updateRanges(m_tree->getMins()); + scm->updateRanges(m_tree->getMaxs()); + } + POINTDIM = m_tree->getPointdim(); + maxtargetpoints = maxTargetPoints(m_tree->getRoot()); + current_lod_mode = 0; + m_cache_access = 0; + m_scan = 0; + } + +public: + //! Create with tree held in cache, lock indefinitely + Show_BOctTree(Scan* scan, DataOcttree* cache_access, ScanColorManager* scm = 0) + { + m_tree = &cache_access->get(); + init(scm); + // save cache access and hold it until an unlock + m_cache_access = cache_access; + m_scan = scan; + } + + //! Retrieve a cache access object and update the tree pointer + void lockCachedTree() { + if(m_scan != 0 && m_cache_access == 0) { + m_cache_access = new DataOcttree(m_scan->get("octtree")); + m_tree = &(m_cache_access->get()); + } + } + + //! Remove the data access + void unlockCachedTree() { + if(m_scan != 0 && m_cache_access != 0) { + delete m_cache_access; m_cache_access = 0; + //m_tree = 0; + } + } + + //! Create with already constructed tree and take ownership + Show_BOctTree(BOctTree* tree, ScanColorManager* scm = 0) : + m_tree(tree) + { + init(scm); + } + + //! Create tree by points + template + Show_BOctTree(P * const* pts, int n, T voxelSize, PointType pointtype = PointType(), ScanColorManager *scm = 0) + { + m_tree = new BOctTree(pts, n, voxelSize, pointtype, true); + init(scm); + } + + //! Create tree by deserializing from file + Show_BOctTree(std::string filename, ScanColorManager *scm = 0) + { + m_tree = new BOctTree(filename); + init(scm); + } + + virtual ~Show_BOctTree() { + // only delete cache access if created via this method + if(m_cache_access) { + delete m_cache_access; + } + // if not constructed by a cache-located tree, delete the owned tree + if(!m_scan) + delete m_tree; + } + + BOctTree* getTree() const { return m_tree; } + + void serialize(const std::string& filename) const { m_tree->serialize(filename); } + + unsigned int getMemorySize() const { return m_tree->getMemorySize(); } + + // virtual functions from colordisplay + + void selectRayBrushSize(set &points, int brushsize) { + selectRayBS(points, m_tree->getRoot(), m_tree->getCenter(), m_tree->getSize(), brushsize); + } + + void selectRay(set &points, int depth = INT_MAX) { + selectRay(points, m_tree->getRoot(), m_tree->getCenter(), m_tree->getSize(), depth); + } + + void selectRay(T * &point) { + selectRay(point, m_tree->getRoot(), m_tree->getCenter(), m_tree->getSize(), FLT_MAX); + } + + void cycleLOD() { + current_lod_mode = (current_lod_mode+1)%3; + } + + void drawLOD(float ratio) { + switch (current_lod_mode) { + case 0: + glBegin(GL_POINTS); + displayOctTreeCulledLOD(maxtargetpoints * ratio, m_tree->getRoot(), m_tree->getCenter(), m_tree->getSize()); + glEnd(); + break; + case 1: + glBegin(GL_POINTS); + displayOctTreeCulledLOD2(ratio, m_tree->getRoot(), m_tree->getCenter(), m_tree->getSize()); + glEnd(); + break; + case 2: +#ifdef WITH_GLEE + if (GLEE_ARB_point_parameters) { + glPointParameterfARB(GL_POINT_SIZE_MIN_ARB, 1.0); + glPointParameterfARB(GL_POINT_SIZE_MAX_ARB, 100000.0); + GLfloat p[3] = {0.0, 0.0000, 0.0000005}; + glPointParameterfvARB(GL_POINT_DISTANCE_ATTENUATION_ARB, p); + displayOctTreeCPAllCulled(m_tree->getRoot(), m_tree->getCenter(), m_tree->getSize(), + m_tree->getSize() / pow(2, min( (int)(ratio * m_tree->getMaxDepth()), (int)(m_tree->getMaxDepth() - 3)))); + p[0] = 1.0; + p[2] = 0.0; + glPointParameterfvARB(GL_POINT_DISTANCE_ATTENUATION_ARB, p); + } +#endif + break; + default: + break; + } + } + + void draw() { + glBegin(GL_POINTS); + displayOctTreeAllCulled(m_tree->getRoot(), m_tree->getCenter(), m_tree->getSize()); + glEnd(); + } + + // reroute center call (for recast from colordisplay to show_bocttree) + void getCenter(double _center[3]) const { + m_tree->getCenter(_center); + } + +protected: + + //! ? + unsigned long maxTargetPoints(const bitoct &node) { + bitunion *children; + bitoct::getChildren(node, children); + + unsigned long max = 0; + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf get center + pointrep *points = children->getPointreps(); + unsigned long length = points[0].length; + if (length > max) max = length; + } else { // recurse + unsigned long tp = maxTargetPoints(children->node); + if (tp > max) max = tp; + } + ++children; // next child + } + } + + return max*POPCOUNT(node.valid); + } + + void displayOctTreeAll(const bitoct &node) { +// T ccenter[3]; + bitunion *children; + bitoct::getChildren(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf get center + pointrep *points = children->getPointreps(); + unsigned int length = points[0].length; + T *point = &(points[1].v); // first point + for(unsigned int iterator = 0; iterator < length; iterator++ ) { + if(cm) cm->setColor(point); + glVertex3f( point[0], point[1], point[2]); + point+=POINTDIM; + } + } else { // recurse + displayOctTreeAll( children->node); + } + ++children; // next child + } + } + } + + void displayOctTreeAllCulled(const bitoct &node, const T* center, T size ) { + int res = CubeInFrustum2(center[0], center[1], center[2], size); + if (res==0) return; // culled do not continue with this branch of the tree + + if (res == 2) { // if entirely within frustrum discontinue culling + displayOctTreeAll(node); + return; + } + + T ccenter[3]; + bitunion *children; + bitoct::getChildren(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + BOctTree::childcenter(center, ccenter, size, i); // childrens center + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf get center + // check if leaf is visible + // if ( CubeInFrustum(ccenter[0], ccenter[1], ccenter[2], size/2.0) ) { + pointrep *points = children->getPointreps(); + unsigned int length = points[0].length; + T *point = &(points[1].v); // first point + for(unsigned int iterator = 0; iterator < length; iterator++ ) { + if(cm) cm->setColor(point); + glVertex3f( point[0], point[1], point[2]); + point+=POINTDIM; + } + //} + } else { // recurse + displayOctTreeAllCulled( children->node, ccenter, size/2.0); + } + ++children; // next child + } + } + } + + void displayOctTreeLOD2(float ratio, const bitoct &node, const T* center, T size ) { + + T ccenter[3]; + bitunion *children; + bitoct::getChildren(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + BOctTree::childcenter(center, ccenter, size, i); // childrens center + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf get center + pointrep *points = children->getPointreps(); + unsigned int length = points[0].length; + T *point = &(points[1].v); // first point + + int l = LOD2(ccenter[0], ccenter[1], ccenter[2], size/2.0); // only a single pixel on screen only paint one point + l = max((int)(l*l*ratio), 0); + if (l > 1) { + if ((int)length > l ) { + T each = (T)POINTDIM * (T)((T)length/(T)l); + T *p; + int index; + for(int iterator = 0; iterator < l; iterator++ ) { + index = (T)iterator * each; + p = point + index - index%POINTDIM; + if(cm) cm->setColor(p); + glVertex3f( p[0], p[1], p[2]); + } + } else if ((int)length <= l) { + for(unsigned int iterator = 0; iterator < length; iterator++ ) { + if(cm) cm->setColor(point); + glVertex3f( point[0], point[1], point[2]); + point+=POINTDIM; + } + } /* else if (l == 1) { + if(cm) cm->setColor(point); + glVertex3f( point[0], point[1], point[2]); + }*/ + } else { + if(cm) cm->setColor(point); + glVertex3f( point[0], point[1], point[2]); + } + } else { // recurse + int l = LOD2(ccenter[0], ccenter[1], ccenter[2], size/2.0); // only a single pixel on screen only paint one point + l = max((int)(l*l*ratio), 0); + if (l > 0) { + displayOctTreeCulledLOD2(ratio, children->node, ccenter, size/2.0); + } + } + ++children; // next child + } + } + } + + void displayOctTreeCulledLOD2(float ratio, const bitoct &node, const T* center, T size ) { + + int res = CubeInFrustum2(center[0], center[1], center[2], size); + if (res==0) return; // culled do not continue with this branch of the tree + + if (res == 2) { // if entirely within frustrum discontinue culling + displayOctTreeLOD2(ratio, node, center, size); + return; + } + + T ccenter[3]; + bitunion *children; + bitoct::getChildren(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + BOctTree::childcenter(center, ccenter, size, i); // childrens center + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf get center + // check if leaf is visible + if ( CubeInFrustum(ccenter[0], ccenter[1], ccenter[2], size/2.0) ) { + pointrep *points = children->getPointreps(); + unsigned int length = points[0].length; + T *point = &(points[1].v); // first point + + int l = LOD2(ccenter[0], ccenter[1], ccenter[2], size/2.0); // only a single pixel on screen only paint one point + l = max((int)(l*l*ratio), 0); + if (l != 0) { + if ((int)length > l ) { + T each = (T)POINTDIM * (T)((T)length/(T)l); + T *p; + int index; + for(int iterator = 0; iterator < l; iterator++ ) { + index = (T)iterator * each; + p = point + index - index%POINTDIM; + if(cm) cm->setColor(p); + glVertex3f( p[0], p[1], p[2]); + } + } else if ((int)length <= l) { + for(unsigned int iterator = 0; iterator < length; iterator++ ) { + if(cm) cm->setColor(point); + glVertex3f( point[0], point[1], point[2]); + point+=POINTDIM; + } + } else if (l == 1) { + if(cm) cm->setColor(point); + glVertex3f( point[0], point[1], point[2]); + } + } + } + } else { // recurse + //int l = LOD2(ccenter[0], ccenter[1], ccenter[2], size/2.0); // only a single pixel on screen only paint one point + //l = max((int)(l*l*ratio), 0); + //if (l > 0) { + displayOctTreeCulledLOD2(ratio, children->node, ccenter, size/2.0); + //} + } + ++children; // next child + } + } + } + + void displayOctTreeLOD3(long targetpts, const bitoct &node, const T* center, T size ) { + if (targetpts <= 0) return; // no need to display anything + + T ccenter[3]; + bitunion *children; + bitoct::getChildren(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + BOctTree::childcenter(center, ccenter, size, i); // childrens center + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf get center + pointrep *points = children->getPointreps(); + unsigned int length = points[0].length; + T *point = &(points[1].v); // first point + int l = LOD2(ccenter[0], ccenter[1], ccenter[2], size/2.0); // only a single pixel on screen only paint one point + + if ( l <= targetpts) { // only a single pixel on screen only paint one point + if(cm) cm->setColor(point); + glVertex3f( point[0], point[1], point[2]); + } else { + for(unsigned int iterator = 0; iterator < length; iterator++ ) { + if(cm) cm->setColor(point); + glVertex3f( point[0], point[1], point[2]); + point+=POINTDIM; + } + } + } else { // recurse + displayOctTreeLOD3(targetpts, children->node, ccenter, size/2.0); + } + ++children; // next child + } + } + } + + void displayOctTreeCulledLOD3(long targetpts, const bitoct &node, const T* center, T size ) { + if (targetpts <= 0) return; // no need to display anything + + int res = CubeInFrustum2(center[0], center[1], center[2], size); + if (res==0) return; // culled do not continue with this branch of the tree + + if (res == 2) { // if entirely within frustrum discontinue culling + displayOctTreeLOD3(targetpts, node, center, size); + return; + } + + T ccenter[3]; + bitunion *children; + bitoct::getChildren(node, children); + + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + BOctTree::childcenter(center, ccenter, size, i); // childrens center + //l = std::min( max((int)(l*l*ratio), 1), targetpts); + + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf get center + // check if leaf is visible + if ( CubeInFrustum(ccenter[0], ccenter[1], ccenter[2], size/2.0) ) { + pointrep *points = children->getPointreps(); + unsigned int length = points[0].length; + T *point = &(points[1].v); // first point + + int l = LOD2(ccenter[0], ccenter[1], ccenter[2], size/2.0); // only a single pixel on screen only paint one point + if (targetpts <= 0 ) cout << l << " " << targetpts << endl; + if ( l <= targetpts) { // only a single pixel on screen only paint one point + if(cm) cm->setColor(point); + glVertex3f( point[0], point[1], point[2]); + } else { + for(unsigned int iterator = 0; iterator < length; iterator++ ) { + if(cm) cm->setColor(point); + glVertex3f( point[0], point[1], point[2]); + point+=POINTDIM; + } + } + } + + } else { // recurse + displayOctTreeCulledLOD3(targetpts, children->node, ccenter, size/2.0); + } + ++children; // next child + } + } + } + + void displayOctTreeCulledLOD(long targetpts, const bitoct &node, const T* center, T size ) { + if (targetpts <= 0) return; // no need to display anything + + int res = CubeInFrustum2(center[0], center[1], center[2], size); + if (res==0) return; // culled do not continue with this branch of the tree + + if (res == 2) { // if entirely within frustrum discontinue culling + displayOctTreeLOD(targetpts, node, center, size); + return; + } + + T ccenter[3]; + bitunion *children; + bitoct::getChildren(node, children); + + unsigned short nc = POPCOUNT(node.valid); + long newtargetpts = targetpts; + if (nc > 0) { + newtargetpts = newtargetpts/nc; + if (newtargetpts <= 0 ) return; + } + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + BOctTree::childcenter(center, ccenter, size, i); // childrens center + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf get center + // check if leaf is visible + if ( CubeInFrustum(ccenter[0], ccenter[1], ccenter[2], size/2.0) ) { + pointrep *points = children->getPointreps(); + unsigned int length = points[0].length; + T *point = &(points[1].v); // first point + + if (length > 10 && !LOD(ccenter[0], ccenter[1], ccenter[2], size/2.0) ) { // only a single pixel on screen only paint one point + if(cm) cm->setColor(point); + glVertex3f( point[0], point[1], point[2]); + } else if (length <= newtargetpts) { // more points requested than possible, plot all + for(unsigned int iterator = 0; iterator < length; iterator++ ) { + if(cm) cm->setColor(point); + glVertex3f( point[0], point[1], point[2]); + point+=POINTDIM; + } + } else { // select points to show + // TODO smarter subselection of points here + T each = (T)POINTDIM * (T)((T)length/(T)newtargetpts); + T *p; + int index; + for(unsigned int iterator = 0; iterator < newtargetpts; iterator++ ) { + index = (T)iterator * each; + p = point + index - index%POINTDIM; + if(cm) cm->setColor(p); + glVertex3f( p[0], p[1], p[2]); + //point += each; + } + } + } + + } else { // recurse + displayOctTreeCulledLOD(newtargetpts, children->node, ccenter, size/2.0); + } + ++children; // next child + } + } + } + + void displayOctTreeLOD(long targetpts, const bitoct &node, const T* center, T size ) { + if (targetpts <= 0) return; // no need to display anything + + T ccenter[3]; + bitunion *children; + bitoct::getChildren(node, children); + + unsigned short nc = POPCOUNT(node.valid); + long newtargetpts = targetpts; + if (nc > 0) { + newtargetpts = newtargetpts/nc; + if (newtargetpts <= 0 ) return; + } + + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + BOctTree::childcenter(center, ccenter, size, i); // childrens center + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf get center + pointrep *points = children->getPointreps(); + unsigned int length = points[0].length; + T *point = &(points[1].v); // first point + if (length > 10 && !LOD(ccenter[0], ccenter[1], ccenter[2], size/2.0) ) { // only a single pixel on screen only paint one point + if(cm) cm->setColor(point); + glVertex3f( point[0], point[1], point[2]); + } else if (length <= newtargetpts) { // more points requested than possible, plot all + for(unsigned int iterator = 0; iterator < length; iterator++ ) { + if(cm) cm->setColor(point); + glVertex3f( point[0], point[1], point[2]); + point+=POINTDIM; + } + } else { // select points to show + // TODO smarter subselection of points here + T each = (T)POINTDIM * (T)((T)length/(T)newtargetpts); + T *p; + int index; + for(unsigned int iterator = 0; iterator < newtargetpts; iterator++ ) { + index = (T)iterator * each; + p = point + index - index%POINTDIM; + if(cm) cm->setColor(p); + glVertex3f( p[0], p[1], p[2]); + //point += each; + } + } + } else { // recurse + displayOctTreeLOD(newtargetpts, children->node, ccenter, size/2.0); + } + ++children; // next child + } + } + } + void selectRay(set &selpoints, const bitoct &node, const T* center, T size, int max_depth, int depth = 0) { + if (depth < max_depth && !HitBoundingBox(center, size ))return; + + T ccenter[3]; + bitunion *children; + bitoct::getChildren(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + BOctTree::childcenter(center, ccenter, size, i); // childrens center + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf get center + // check if leaf is visible + if ( !(depth+1 < max_depth) || HitBoundingBox(ccenter, size) ) { + pointrep *points = children->getPointreps(); + unsigned int length = points[0].length; + T *point = &(points[1].v); // first point + for(unsigned int iterator = 0; iterator < length; iterator++ ) { + selpoints.insert(point); + point+=POINTDIM; + } + } + } else { // recurse + selectRay( selpoints, children->node, ccenter, size/2.0, max_depth, depth+1); + } + ++children; // next child + } + } + } + + void selectRayBS(set &selpoints, const bitoct &node, const T* center, T size, int brushsize) { + T ccenter[3]; + bitunion *children; + bitoct::getChildren(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + BOctTree::childcenter(center, ccenter, size, i); // childrens center + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf get center + // check if leaf is visible + if ( HitBoundingBox(ccenter, size) ) { + pointrep *points = children->getPointreps(); + unsigned int length = points[0].length; + T *point = &(points[1].v); // first point + for(unsigned int iterator = 0; iterator < length; iterator++ ) { + if (ScreenDist(point) < brushsize && RayDist(point) > 100.0) + selpoints.insert(point); + point+=POINTDIM; + } + } + } else { // recurse + selectRayBS( selpoints, children->node, ccenter, size/2.0, brushsize); + } + ++children; // next child + } + } + } + + void selectRay(T * &selpoint, const bitoct &node, const T* center, T size, float min) { + if (!HitBoundingBox(center, size ))return; + + T ccenter[3]; + bitunion *children; + bitoct::getChildren(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + BOctTree::childcenter(center, ccenter, size, i); // childrens center + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf get center + // check if leaf is visible + if ( HitBoundingBox(ccenter, size) ) { + pointrep *points = children->getPointreps(); + unsigned int length = points[0].length; + T *point = &(points[1].v); // first point + for(unsigned int iterator = 0; iterator < length; iterator++ ) { + T dist = RayDist(point); + if (min > dist && ScreenDist(point) < 5 && dist > 100.0) { + selpoint = point; + min = dist; + } + point+=POINTDIM; + } + } + } else { // recurse + selectRay( selpoint, children->node, ccenter, size/2.0, min); + } + ++children; // next child + } + } + } + + void displayOctTreeCAllCulled(const bitoct &node, const T* center, T size, T minsize ) { + int res = CubeInFrustum2(center[0], center[1], center[2], size); + if (res==0) return; // culled do not continue with this branch of the tree + + if (res == 2) { // if entirely within frustrum discontinue culling + displayOctTreeCAll(node, center, size, minsize); + return; + } + + T ccenter[3]; + bitunion *children; + bitoct::getChildren(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + BOctTree::childcenter(center, ccenter, size, i); // childrens center + if ( ( 1 << i ) & node.leaf || minsize > size ) { // if ith node is leaf get center + // check if leaf is visible + if ( CubeInFrustum(ccenter[0], ccenter[1], ccenter[2], size/2.0) ) { + showCube(ccenter, size/2.0); + } + } else { // recurse + displayOctTreeCAllCulled( children->node, ccenter, size/2.0, minsize); + } + ++children; // next child + } + } + } + + void displayOctTreeCAll(const bitoct &node, const T* center, T size, T minsize ) { + T ccenter[3]; + bitunion *children; + bitoct::getChildren(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + BOctTree::childcenter(center, ccenter, size, i); // childrens center + if ( ( 1 << i ) & node.leaf || minsize > size ) { // if ith node is leaf get center + showCube(ccenter, size/2.0); + } else { // recurse + displayOctTreeCAll( children->node, ccenter, size/2.0, minsize); + } + ++children; // next child + } + } + } + + + void displayOctTreeCPAllCulled(const bitoct &node, const T* center, T size, T minsize ) { + int res = CubeInFrustum2(center[0], center[1], center[2], size); + if (res==0) return; // culled do not continue with this branch of the tree + + if (res == 2) { // if entirely within frustrum discontinue culling + displayOctTreeCPAll(node, center, size, minsize); + return; + } + + T ccenter[3]; + bitunion *children; + bitoct::getChildren(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + BOctTree::childcenter(center, ccenter, size, i); // childrens center + if ( minsize > size ) { + if ( CubeInFrustum(ccenter[0], ccenter[1], ccenter[2], size/2.0) ) { + if(cm) { + if (( 1 << i ) & node.leaf ) + cm->setColor( &(children->getPoints()[1]) ); + else + cm->setColor( m_tree->pickPoint(children->node) ); + } + + glPointSize(size/2.0); + glBegin(GL_POINTS); + glVertex3f( ccenter[0], ccenter[1], ccenter[2] ); + glEnd(); + } + }else if ( ( 1 << i ) & node.leaf ) { + if ( CubeInFrustum(ccenter[0], ccenter[1], ccenter[2], size/2.0) ) { + pointrep *points = children->getPointreps(); + unsigned int length = points[0].length; + T *point = &(points[1].v); // first point + glPointSize(1.0); + glBegin(GL_POINTS); + for(unsigned int iterator = 0; iterator < length; iterator++ ) { + if(cm) cm->setColor(point); + glVertex3f( point[0], point[1], point[2]); + point+=POINTDIM; + } + glEnd(); + } + } else { // recurse + displayOctTreeCPAllCulled( children->node, ccenter, size/2.0, minsize); + } + ++children; // next child + } + } + } + + void displayOctTreeCPAll(const bitoct &node, const T* center, T size, T minsize ) { + T ccenter[3]; + bitunion *children; + bitoct::getChildren(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + BOctTree::childcenter(center, ccenter, size, i); // childrens center + if ( minsize > size ) { // if ith node is leaf get center + // check if leaf is visible + if ( CubeInFrustum(ccenter[0], ccenter[1], ccenter[2], size/2.0) ) { + if(cm) { + if (( 1 << i ) & node.leaf ) + cm->setColor( &(children->getPoints()[1]) ); + else + cm->setColor( m_tree->pickPoint(children->node) ); + } + + glPointSize(size/2.0); + glBegin(GL_POINTS); + glVertex3f( ccenter[0], ccenter[1], ccenter[2] ); + glEnd(); + } + }else if ( ( 1 << i ) & node.leaf ) { + pointrep *points = children->getPointreps(); + unsigned int length = points[0].length; + T *point = &(points[1].v); // first point + glPointSize(1.0); + glBegin(GL_POINTS); + for(unsigned int iterator = 0; iterator < length; iterator++ ) { + if(cm) cm->setColor(point); + glVertex3f( point[0], point[1], point[2]); + point+=POINTDIM; + } + glEnd(); + } else { // recurse + displayOctTreeCPAll( children->node, ccenter, size/2.0, minsize); + } + ++children; // next child + } + } + } + + void showCube(const T* center, T size) { + glLineWidth(1.0); + glBegin(GL_QUADS); // draw a cube with 6 quads + glColor3f(0.0f,1.0f,0.0f); // Set The Color To Green + glVertex3f(center[0] + size, center[1] + size, center[2] - size); + glVertex3f(center[0] - size, center[1] + size, center[2] - size); + glVertex3f(center[0] - size, center[1] + size, center[2] + size); + glVertex3f(center[0] + size, center[1] + size, center[2] + size); + glColor3f(1.0f,0.5f,0.0f); // Set The Color To Orange + + glVertex3f(center[0] + size, center[1] - size, center[2] + size); + glVertex3f(center[0] - size, center[1] - size, center[2] + size); + glVertex3f(center[0] - size, center[1] - size, center[2] - size); + glVertex3f(center[0] + size, center[1] - size, center[2] - size); + + glColor3f(1.0f,0.0f,0.0f); // Set The Color To Red + glVertex3f(center[0] + size, center[1] + size, center[2] + size); + glVertex3f(center[0] - size, center[1] + size, center[2] + size); + glVertex3f(center[0] - size, center[1] - size, center[2] + size); + glVertex3f(center[0] + size, center[1] - size, center[2] + size); + + glColor3f(1.0f,1.0f,0.0f); // Set The Color To Yellow + glVertex3f(center[0] + size, center[1] - size, center[2] - size); + glVertex3f(center[0] - size, center[1] - size, center[2] - size); + glVertex3f(center[0] - size, center[1] + size, center[2] - size); + glVertex3f(center[0] + size, center[1] + size, center[2] - size); + + glColor3f(0.0f,0.0f,1.0f); // Set The Color To Blue + glVertex3f(center[0] - size, center[1] + size, center[2] + size); + glVertex3f(center[0] - size, center[1] + size, center[2] - size); + glVertex3f(center[0] - size, center[1] - size, center[2] - size); + glVertex3f(center[0] - size, center[1] - size, center[2] + size); + + glColor3f(1.0f,0.0f,1.0f); // Set The Color To Violet + glVertex3f(center[0] + size, center[1] + size, center[2] - size); + glVertex3f(center[0] + size, center[1] + size, center[2] + size); + glVertex3f(center[0] + size, center[1] - size, center[2] + size); + glVertex3f(center[0] + size, center[1] - size, center[2] - size); + + glEnd(); + } + + + void displayOctTreeAllCulled(const bitoct &node, const T* center, T size, float *frustum[6], unsigned char frustsize ) { + float *new_frustum[6]; unsigned char counter = 0; + for (unsigned char p = 0; p < frustsize; p++ ) { + char res = PlaneAABB(center[0], center[1], center[2], size, frustum[p]); + if (res == 0) { // cube is on the wrong side of the plane (not visible) + return; + } else if ( res == 1 ) { // plane intersects this volume continue culling with this plane + new_frustum[counter++] = frustum[p]; + } // other case is simply not to continue culling with the respective plane + } + if (counter == 0) { // if entirely within frustrum discontinue culling + displayOctTreeAll(node); + return; + } + + T ccenter[3]; + bitunion *children; + bitoct::getChildren(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + BOctTree::childcenter(center, ccenter, size, i); // childrens center + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf get center + pointrep *points = children->getPointreps(); + unsigned int length = points[0].length; + T *point = &(points[1].v); // first point + for(unsigned int iterator = 0; iterator < length; iterator++ ) { + if(cm) cm->setColor(point); + glVertex3f( point[0], point[1], point[2]); + point+=POINTDIM; + } + } else { // recurse + displayOctTreeAllCulled( children->node, ccenter, size/2.0, new_frustum, counter); + } + ++children; // next child + } + } + } + + unsigned long int countVisiblePoints(const bitoct &node, const T* center, T size ) { + unsigned long int result = 0; + int res = CubeInFrustum2(center[0], center[1], center[2], size); + if (res==0) return 0; // culled do not continue with this branch of the tree + + T ccenter[3]; + bitunion *children; + bitoct::getChildren(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + BOctTree::childcenter(center, ccenter, size, i); // childrens center + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf get center + // check if leaf is visible + if ( CubeInFrustum(ccenter[0], ccenter[1], ccenter[2], size/2.0) ) { + pointrep *points = children->getPointreps(); + unsigned int length = points[0].length; + result += length; + } + } else { // recurse + result += countVisiblePoints( children->node, ccenter, size/2.0); + } + ++children; // next child + } + } + return result; + } +}; + +#endif diff --git a/.svn/pristine/91/918c474185616fe51687a5df7fe5c5306bf064b5.svn-base b/.svn/pristine/91/918c474185616fe51687a5df7fe5c5306bf064b5.svn-base new file mode 100644 index 0000000..98b5a4b --- /dev/null +++ b/.svn/pristine/91/918c474185616fe51687a5df7fe5c5306bf064b5.svn-base @@ -0,0 +1,27 @@ +/** + * @file + * @brief IO of a 3D scan in uos file format + * @author Thomas Escher + */ + +#ifndef __SCAN_IO_RIEGL_RGB_H__ +#define __SCAN_IO_RIEGL_RGB_H__ + +#include "scan_io.h" + + + +/** + * @brief 3D scan loader for Riegl scans + * + * The compiled class is available as shared object file + */ +class ScanIO_riegl_rgb : public ScanIO { +public: + virtual std::list readDirectory(const char* dir_path, unsigned int start, unsigned int end); + virtual void readPose(const char* dir_path, const char* identifier, double* pose); + virtual void readScan(const char* dir_path, const char* identifier, PointFilter&& filter, std::vector* xyz, std::vector* rgb, std::vector* reflectance, std::vector* amplitude, std::vector* type, std::vector* deviation); + virtual bool supports(IODataType type); +}; + +#endif diff --git a/.svn/pristine/91/91cf2c33abb632b1d9f87b6386a2a92a4ff9750b.svn-base b/.svn/pristine/91/91cf2c33abb632b1d9f87b6386a2a92a4ff9750b.svn-base new file mode 100644 index 0000000..59ef4aa --- /dev/null +++ b/.svn/pristine/91/91cf2c33abb632b1d9f87b6386a2a92a4ff9750b.svn-base @@ -0,0 +1,535 @@ +/* + * caliboard implementation + * + * Copyright (C) Dorit Borrmann + * + * Released under the GPL version 3. + * + */ + +/** + * @file + * @author Dorit Borrmann. Institute of Computer Science, University of Osnabrueck, Germany. +*/ + +#include +#include +#ifndef _MSC_VER +#include +#else +#include "XGetopt.h" +#endif + +#include +using std::ofstream; +using std::flush; +using std::cout; +using std::string; +using std::cerr; +using std::endl; +#include + +#ifdef _MSC_VER +#define strcasecmp _stricmp +#define strncasecmp _strnicmp +#include +#include +#else +#include +#include +#include +#include +#endif + +#include "shapes/hough.h" + +#include "shapes/shape.h" +#include "shapes/ransac.h" +#include "slam6d/icp6D.h" +#include "slam6d/icp6Dsvd.h" +#include "slam6d/icp6Dquat.h" + +#ifdef WITH_SCANSERVER +#include "scanserver/clientInterface.h" +#endif + + + +void usage(char* prog) { +#ifndef _MSC_VER + const string bold("\033[1m"); + const string normal("\033[m"); +#else + const string bold(""); + const string normal(""); +#endif + cout << endl + << bold << "USAGE " << normal << endl + << " " << prog << " [options] directory" << endl << endl; + cout << bold << "OPTIONS" << normal << endl + << bold << " -b" << normal << " NR, " << bold << "--bottom=" << normal << "NR" << endl + << " trim the scan with lower boundary NR" << endl + << endl + << bold << " -e" << normal << " NR, " << bold << "--end=" << normal << "NR" << endl + << " end after scan NR" << endl + << endl + + << bold << " -f" << normal << " F, " << bold << "--format=" << normal << "F" << endl + << " using shared library F for input" << endl + << " (chose F from {uos, uos_map, uos_rgb, uos_frames, uos_map_frames, old, rts, rts_map, ifp, riegl_txt, riegl_rgb, riegl_bin, zahn, ply})" << endl + << endl + << bold << " -m" << normal << " NR, " << bold << "--max=" << normal << "NR" << endl + << " neglegt all data points with a distance larger than NR 'units'" << endl + << endl + << bold << " -M" << normal << " NR, " << bold << "--min=" << normal << "NR" << endl + << " neglegt all data points with a distance smaller than NR 'units'" << endl + << endl + << bold << " -p" << normal << " NR, " << bold << "--pattern=" << normal << "NR" << endl + << " use pattern NR for plane detection" << endl + << " 0: lightbulb pattern" << endl + << " 1: chess pattern on cardboard" << endl + << " 2: chess pattern on wooden board" << endl + << endl + << bold << " -r" << normal << " NR, " << bold << "--reduce=" << normal << "NR" << endl + << " turns on octree based point reduction (voxel size=)" << endl + << endl + << bold << " -O" << normal << "NR (optional), " << bold << "--octree=" << normal << "NR (optional)" << endl + << " use randomized octree based point reduction (pts per voxel=)" << endl + << " requires " << bold << "-r" << normal <<" or " << bold << "--reduce" << endl + << endl + << bold << " -s" << normal << " NR, " << bold << "--start=" << normal << "NR" << endl + << " start at scan NR (i.e., neglects the first NR scans)" << endl + << " [ATTENTION: counting naturally starts with 0]" << endl + << endl + << bold << " -t" << normal << " NR, " << bold << "--top=" << normal << "NR" << endl + << " trim the scan with upper boundary NR" << endl + << endl + << endl << endl; + + cout << bold << "EXAMPLES " << normal << endl + << " " << prog << " -m 500 -r 5 dat" << endl + << " " << prog << " --max=5000 -r 10.2 dat" << endl + << " " << prog << " -s 2 -e 10 -r dat" << endl << endl; + exit(1); + +} + +bool matchPlaneToBoard(vector &points, double *alignxf, int pattern, string output) { + double rPos[3] = {0.0,0.0,0.0}; + double rPosTheta[3] = {0.0,0.0,0.0}; + + vector boardpoints; + double halfwidth; + double halfheight; + double w_step = 0.5; + double h_step = 0.5; + + switch(pattern) { + case 0: + halfheight = 28.5; + halfwidth = 25.0; + break; + case 1: + halfwidth = 18.3; + halfheight = 18.5; + w_step = 0.6; + break; + case 2: + case 3: + halfwidth = 19.0; + halfheight = 38.0; + break; + } + + for(double i = -halfwidth; i <= halfwidth; i+=w_step) { + for(double j = -halfheight; j <= halfheight; j+=h_step) { + double * p = new double[3]; + p[0] = i; + p[1] = j; + p[2] = 0.0; + //cout << p[0] << " " << p[1] << " " << p[2] << endl; + boardpoints.push_back(p); + } + } + + int nr_points = boardpoints.size(); + int nr_points2 = points.size(); + Scan * plane = new Scan(rPos, rPosTheta, points); + Scan * board = new Scan(rPos, rPosTheta, boardpoints); + board->transform(alignxf, Scan::INVALID, 0); + + bool quiet = true; + icp6Dminimizer *my_icp6Dminimizer = 0; + my_icp6Dminimizer = new icp6D_SVD(quiet); + + icp6D *my_icp = 0; + double mdm = 50; + int mni = 50; + my_icp = new icp6D(my_icp6Dminimizer, mdm, mni, quiet, false, -1, false, 1, 0.00, false, false); + + plane->createTree(false,false); + board->createTree(false,false); + + my_icp->match(plane, board); + + delete my_icp; + mdm = 2; + mni = 300; + my_icp = new icp6D(my_icp6Dminimizer, mdm, mni, quiet, false, -1, false, 1, 0.00, false, false); + my_icp->match(plane, board); + + + double sum; + double centroid_s[3] = {0.0, 0.0, 0.0}; + double centroid_t[3] = {0.0, 0.0, 0.0}; + vector pairs_out; + Scan::getPtPairs(&pairs_out, plane, board, 1, 0, 2.0, sum, centroid_s, centroid_t); + int nr_matches = pairs_out.size(); + + cout << "Result " << nr_matches << " " << nr_points << " " << nr_points2 << endl; + const double * pos = board->get_rPos(); + const double * postheta = board->get_rPosTheta(); + const double * transMat = board->get_transMat(); + for(int i = 0; i < 16; i++) { + cout << transMat[i] << " "; + } + + cout << endl << endl; + + for(int i = 0; i < 3; i++) { + cout << pos[i] << " "; + } + cout << endl; + for(int i = 0; i < 3; i++) { + cout << deg(postheta[i]) << " "; + } + cout << endl; + vector * result = new vector(); + cout << "Calipoints Start" << endl; + + ofstream caliout(output.c_str()); + + if(nr_matches < nr_points) { + caliout << "failed" << endl; + } else { + caliout << "Calibration" << endl; + } + + switch(pattern) { + // lightbulb + case 0: + for(double y = -25; y < 30; y+=10.0) { + //for(double x = -20; x < 25; x+=10.0) { + for(double x = 20; x > -25; x-=10.0) { + double * p = new double[3]; + p[0] = x; + p[1] = y; + p[2] = 0.0; + transform3(transMat, p); + result->push_back(p); + caliout << p[0] << " " << p[1] << " " << p[2] << endl; + } + } + break; + // chessboard on wooden board pattern top + case 2: + for(double x = -7.8; x < 10; x+=5.2) { + for(double y = 4.1; y < 33.0; y+=5.2) { + double * p = new double[3]; + p[0] = x; + p[1] = y; + p[2] = 0.0; + transform3(transMat, p); + result->push_back(p); + caliout << p[0] << " " << p[1] << " " << p[2] << endl; + } + } + break; + case 3: + for(double y = -4.1; y > -33.0; y-=5.2) { + //for(double y = -30.1; y < -0.0; y+=5.2) { + // for(double x = 7.8; x > -10; x-=5.2) { + for(double x = -8.1; x < 10; x+=5.2) { + double * p = new double[3]; + p[0] = x; + p[1] = y; + p[2] = 0.0; + transform3(transMat, p); + result->push_back(p); + caliout << p[0] << " " << p[1] << " " << p[2] << endl; + } + } + break; + // chessboard on cardboard + case 1: + for(double x = -12; x < 16; x+=4.0) { + for(double y = -12; y < 16; y+=4.0) { + double * p = new double[3]; + p[0] = x; + p[1] = y; + p[2] = 0.0; + transform3(transMat, p); + result->push_back(p); + caliout << p[0] << " " << p[1] << " " << p[2] << endl; + } + } + break; + } + caliout.close(); + caliout.clear(); + + cout << "Calipoints End" << endl; + return !(nr_matches < nr_points); +} + +int parseArgs(int argc, char **argv, string &dir, double &red, int &start, int &end, int &pattern, int &maxDist, int &minDist, double &top, double &bottom, int &octree, IOType &type, bool +&quiet) { + + bool reduced = false; + int c; + // from unistd.h: + extern char *optarg; + extern int optind; + + /* options descriptor */ + // 0: no arguments, 1: required argument, 2: optional argument + static struct option longopts[] = { + { "format", required_argument, 0, 'f' }, + { "max", required_argument, 0, 'm' }, + { "min", required_argument, 0, 'M' }, + { "start", required_argument, 0, 's' }, + { "reduce", required_argument, 0, 'r' }, + { "pattern", required_argument, 0, 'p' }, + { "quiet", no_argument, 0, 'q' }, + { "octree", optional_argument, 0, 'O' }, + { "end", required_argument, 0, 'e' }, + { "top", required_argument, 0, 't' }, + { "bottom", required_argument, 0, 'b' }, + { 0, 0, 0, 0} // needed, cf. getopt.h + }; + + cout << endl; + while ((c = getopt_long(argc, argv, "f:r:s:e:m:M:O:qp:e:t:b:", longopts, NULL)) != -1) + switch (c) + { + case 'r': + red = atof(optarg); + reduced = true; + break; + case 's': + start = atoi(optarg); + if (start < 0) { cerr << "Error: Cannot start at a negative scan number.\n"; exit(1); } + break; + case 'e': + end = atoi(optarg); + if (end < 0) { cerr << "Error: Cannot end at a negative scan number.\n"; exit(1); } + if (end < start) { cerr << "Error: cannot be smaller than .\n"; exit(1); } + break; + case 'f': + try { + type = formatname_to_io_type(optarg); + } catch (...) { // runtime_error + cerr << "Format " << optarg << " unknown." << endl; + abort(); + } + break; + case 'p': + pattern = atoi(optarg); + if(pattern < 0 || pattern > 3) { cerr << "Error: choose pattern between 0 and 3!\n"; exit(1); } + break; + case 'q': + quiet = true; + break; + case 'm': + maxDist = atoi(optarg); + break; + case 'O': + if (optarg) { + octree = atoi(optarg); + } else { + octree = 1; + } + break; + case 't': + top = atof(optarg); + break; + case 'b': + bottom = atof(optarg); + break; + case 'M': + minDist = atoi(optarg); + break; + case '?': + usage(argv[0]); + return 1; + default: + abort (); + break; + } + + if (optind != argc-1) { + cerr << "\n*** Directory missing ***" << endl; + usage(argv[0]); + } + dir = argv[optind]; + +#ifndef _MSC_VER + if (dir[dir.length()-1] != '/') dir = dir + "/"; +#else + if (dir[dir.length()-1] != '\\') dir = dir + "\\"; +#endif + + return 0; +} + +/** + * Main function. The Hough Transform is called for the scan indicated as + * argument. + * + */ +int main(int argc, char **argv) +{ + + cout << "(c) Jacobs University Bremen, gGmbH, 2010" << endl << endl; + + if (argc <= 1) { + usage(argv[0]); + } + // parsing the command line parameters + // init, default values if not specified + string dir; + double red = -1.0; + int start = 0; + int end = -1; + int maxDist = -1; + int minDist = -1; + int octree = 0; + bool quiet = false; + int pattern = 0; + double bottom = -5; + double top = 170; + IOType type = UOS; + + cout << "Parse args" << endl; + parseArgs(argc, argv, dir, red, start, end, pattern, maxDist, minDist, top, bottom, octree, type, quiet); + Scan::dir = dir; + int fileNr = start; + string calidir = dir + "/cali"; + +#ifdef WITH_SCANSERVER + try { + ClientInterface::create(); + } catch(std::runtime_error& e) { + cerr << "ClientInterface could not be created: " << e.what() << endl; + cerr << "Start the scanserver first." << endl; + exit(-1); + } +#endif //WITH_SCANSERVER + +#ifdef _MSC_VER + int success = mkdir(calidir.c_str()); +#else + int success = mkdir(calidir.c_str(), S_IRWXU|S_IRWXG|S_IRWXO); +#endif + if(success == 0) { + if(!quiet) { + cout << "Writing calibration results to " << calidir << endl; + } + } else if(errno == EEXIST) { + cout << "Directory " << calidir << " exists already. CONTINUE" << endl; + } else { + cerr << "Creating directory " << calidir << " failed" << endl; + exit(1); + } + + cout << start << " " << end << endl; + int successes = 0; + int failures = 0; + + long calitime = GetCurrentTimeInMilliSec(); +#ifndef WITH_SCANSERVER + while (fileNr <= end) { + Scan::readScans(type, fileNr, fileNr, dir, maxDist, minDist, 0); + + string output = calidir + "/scan" + to_string(fileNr,3) + ".3d"; + cout << "Top: " << top << " Bottom: " << bottom << endl; + Scan::allScans[0]->trim(top, bottom); + + Scan::allScans[0]->toGlobal(red, octree); + double id[16]; + M4identity(id); + for(int i = 0; i < 10; i++) { + Scan::allScans[0]->transform(id, Scan::ICP, 0); // write end pose + } +#else //WITH_SCANSERVER + Scan::readScansRedSearch(type, start, end, dir, filter, red, octree); + for(std::vector::iterator it = Scan::allScans.begin(); it != Scan::allScans.end(); ++it) + { + Scan* scan = *it; + string output = calidir + "/scan" + scan->getIdentifier() + ".3d"; + cout << "Top: " << top << " Bottom: " << bottom << endl; + // set trimming, don't want to put it into readScansRedSearch too + scan->trim(top, bottom); + + double id[16]; + M4identity(id); + for(int i = 0; i < 10; i++) { + scan->transform(id, Scan::ICP, 0); // write end pose + } +#endif //WITH_SCANSERVER + cout << "start plane detection" << endl; + long starttime = GetCurrentTimeInMilliSec(); + vector points; + CollisionPlane * plane; + plane = new LightBulbPlane(50,120); +#ifndef WITH_SCANSERVER + Ransac(*plane, Scan::allScans[0], &points); +#else //WITH_SCANSERVER + Ransac(*plane, scan, &points); +#endif //WITH_SCANSERVER + starttime = (GetCurrentTimeInMilliSec() - starttime); + + cout << "nr points " << points.size() << endl; + double nx,ny,nz,d; + plane->getPlane(nx,ny,nz,d); + cout << "DONE " << endl; + + cout << nx << " " << ny << " " << nz << " " << d << endl; + double rPos[3]; + double rPosTheta[3]; + for(int i = 0; i < 3; i++) { + rPosTheta[i] = 0.0; + } + ((LightBulbPlane *)plane)->getCenter(rPos[0], rPos[1], rPos[2]); + double alignxf[16]; + EulerToMatrix4(rPos, rPosTheta, alignxf); + if(matchPlaneToBoard(points, alignxf, pattern, output)) { + successes++; + } else { + failures++; + } + for(int i = points.size() - 1; i > -1; i++) { + delete[] points[i]; + } + + delete plane; + + cout << "Time for Plane Detection " << starttime << endl; +#ifndef WITH_SCANSERVER + delete Scan::allScans[0]; + Scan::allScans.clear(); + fileNr++; +#endif //WITH_SCANSERVER + } + calitime = (GetCurrentTimeInMilliSec() - calitime); + + cout << "Calibration done with " << successes << " successes and " << failures + << " failures!" << endl; + cout << "Time for Calibration " << calitime << endl; + +#ifdef WITH_SCANSERVER + Scan::clearScans(); + ClientInterface::destroy(); +#endif //WITH_SCANSERVER +} + diff --git a/.svn/pristine/92/924341fc291e5d9a2af652b09867cc5a7efba6b7.svn-base b/.svn/pristine/92/924341fc291e5d9a2af652b09867cc5a7efba6b7.svn-base new file mode 100644 index 0000000..ae230c1 --- /dev/null +++ b/.svn/pristine/92/924341fc291e5d9a2af652b09867cc5a7efba6b7.svn-base @@ -0,0 +1,3091 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include "veloslam/svm.h" +int libsvm_version = LIBSVM_VERSION; +typedef float Qfloat; +typedef signed char schar; +#ifndef min +template static inline T min(T x,T y) { return (x static inline T max(T x,T y) { return (x>y)?x:y; } +#endif +template static inline void swap(T& x, T& y) { T t=x; x=y; y=t; } +template static inline void clone(T*& dst, S* src, int n) +{ + dst = new T[n]; + memcpy((void *)dst,(void *)src,sizeof(T)*n); +} +static inline double powi(double base, int times) +{ + double tmp = base, ret = 1.0; + + for(int t=times; t>0; t/=2) + { + if(t%2==1) ret*=tmp; + tmp = tmp * tmp; + } + return ret; +} +#define INF HUGE_VAL +#define TAU 1e-12 +#define Malloc(type,n) (type *)malloc((n)*sizeof(type)) + +static void print_string_stdout(const char *s) +{ + fputs(s,stdout); + fflush(stdout); +} +static void (*svm_print_string) (const char *) = &print_string_stdout; +#if 1 +static void info(const char *fmt,...) +{ + char buf[BUFSIZ]; + va_list ap; + va_start(ap,fmt); + vsprintf(buf,fmt,ap); + va_end(ap); + (*svm_print_string)(buf); +} +#else +static void info(const char *fmt,...) {} +#endif + +// +// Kernel Cache +// +// l is the number of total data items +// size is the cache size limit in bytes +// +class Cache +{ +public: + Cache(int l,long int size); + ~Cache(); + + // request data [0,len) + // return some position p where [p,len) need to be filled + // (p >= len if nothing needs to be filled) + int get_data(const int index, Qfloat **data, int len); + void swap_index(int i, int j); +private: + int l; + long int size; + struct head_t + { + head_t *prev, *next; // a circular list + Qfloat *data; + int len; // data[0,len) is cached in this entry + }; + + head_t *head; + head_t lru_head; + void lru_delete(head_t *h); + void lru_insert(head_t *h); +}; + +Cache::Cache(int l_,long int size_):l(l_),size(size_) +{ + head = (head_t *)calloc(l,sizeof(head_t)); // initialized to 0 + size /= sizeof(Qfloat); + size -= l * sizeof(head_t) / sizeof(Qfloat); + size = max(size, 2 * (long int) l); // cache must be large enough for two columns + lru_head.next = lru_head.prev = &lru_head; +} + +Cache::~Cache() +{ + for(head_t *h = lru_head.next; h != &lru_head; h=h->next) + free(h->data); + free(head); +} + +void Cache::lru_delete(head_t *h) +{ + // delete from current location + h->prev->next = h->next; + h->next->prev = h->prev; +} + +void Cache::lru_insert(head_t *h) +{ + // insert to last position + h->next = &lru_head; + h->prev = lru_head.prev; + h->prev->next = h; + h->next->prev = h; +} + +int Cache::get_data(const int index, Qfloat **data, int len) +{ + head_t *h = &head[index]; + if(h->len) lru_delete(h); + int more = len - h->len; + + if(more > 0) + { + // free old space + while(size < more) + { + head_t *old = lru_head.next; + lru_delete(old); + free(old->data); + size += old->len; + old->data = 0; + old->len = 0; + } + + // allocate new space + h->data = (Qfloat *)realloc(h->data,sizeof(Qfloat)*len); + size -= more; + swap(h->len,len); + } + + lru_insert(h); + *data = h->data; + return len; +} + +void Cache::swap_index(int i, int j) +{ + if(i==j) return; + + if(head[i].len) lru_delete(&head[i]); + if(head[j].len) lru_delete(&head[j]); + swap(head[i].data,head[j].data); + swap(head[i].len,head[j].len); + if(head[i].len) lru_insert(&head[i]); + if(head[j].len) lru_insert(&head[j]); + + if(i>j) swap(i,j); + for(head_t *h = lru_head.next; h!=&lru_head; h=h->next) + { + if(h->len > i) + { + if(h->len > j) + swap(h->data[i],h->data[j]); + else + { + // give up + lru_delete(h); + free(h->data); + size += h->len; + h->data = 0; + h->len = 0; + } + } + } +} + +// +// Kernel evaluation +// +// the static method k_function is for doing single kernel evaluation +// the constructor of Kernel prepares to calculate the l*l kernel matrix +// the member function get_Q is for getting one column from the Q Matrix +// +class QMatrix { +public: + virtual Qfloat *get_Q(int column, int len) const = 0; + virtual double *get_QD() const = 0; + virtual void swap_index(int i, int j) const = 0; + virtual ~QMatrix() {} +}; + +class Kernel: public QMatrix { +public: + Kernel(int l, svm_node * const * x, const svm_parameter& param); + virtual ~Kernel(); + + static double k_function(const svm_node *x, const svm_node *y, + const svm_parameter& param); + virtual Qfloat *get_Q(int column, int len) const = 0; + virtual double *get_QD() const = 0; + virtual void swap_index(int i, int j) const // no so const... + { + swap(x[i],x[j]); + if(x_square) swap(x_square[i],x_square[j]); + } +protected: + + double (Kernel::*kernel_function)(int i, int j) const; + +private: + const svm_node **x; + double *x_square; + + // svm_parameter + const int kernel_type; + const int degree; + const double gamma; + const double coef0; + + static double dot(const svm_node *px, const svm_node *py); + double kernel_linear(int i, int j) const + { + return dot(x[i],x[j]); + } + double kernel_poly(int i, int j) const + { + return powi(gamma*dot(x[i],x[j])+coef0,degree); + } + double kernel_rbf(int i, int j) const + { + return exp(-gamma*(x_square[i]+x_square[j]-2*dot(x[i],x[j]))); + } + double kernel_sigmoid(int i, int j) const + { + return tanh(gamma*dot(x[i],x[j])+coef0); + } + double kernel_precomputed(int i, int j) const + { + return x[i][(int)(x[j][0].value)].value; + } +}; + +Kernel::Kernel(int l, svm_node * const * x_, const svm_parameter& param) +:kernel_type(param.kernel_type), degree(param.degree), + gamma(param.gamma), coef0(param.coef0) +{ + switch(kernel_type) + { + case LINEAR: + kernel_function = &Kernel::kernel_linear; + break; + case POLY: + kernel_function = &Kernel::kernel_poly; + break; + case RBF: + kernel_function = &Kernel::kernel_rbf; + break; + case SIGMOID: + kernel_function = &Kernel::kernel_sigmoid; + break; + case PRECOMPUTED: + kernel_function = &Kernel::kernel_precomputed; + break; + } + + clone(x,x_,l); + + if(kernel_type == RBF) + { + x_square = new double[l]; + for(int i=0;iindex != -1 && py->index != -1) + { + if(px->index == py->index) + { + sum += px->value * py->value; + ++px; + ++py; + } + else + { + if(px->index > py->index) + ++py; + else + ++px; + } + } + return sum; +} + +double Kernel::k_function(const svm_node *x, const svm_node *y, + const svm_parameter& param) +{ + switch(param.kernel_type) + { + case LINEAR: + return dot(x,y); + case POLY: + return powi(param.gamma*dot(x,y)+param.coef0,param.degree); + case RBF: + { + double sum = 0; + while(x->index != -1 && y->index !=-1) + { + if(x->index == y->index) + { + double d = x->value - y->value; + sum += d*d; + ++x; + ++y; + } + else + { + if(x->index > y->index) + { + sum += y->value * y->value; + ++y; + } + else + { + sum += x->value * x->value; + ++x; + } + } + } + + while(x->index != -1) + { + sum += x->value * x->value; + ++x; + } + + while(y->index != -1) + { + sum += y->value * y->value; + ++y; + } + + return exp(-param.gamma*sum); + } + case SIGMOID: + return tanh(param.gamma*dot(x,y)+param.coef0); + case PRECOMPUTED: //x: test (validation), y: SV + return x[(int)(y->value)].value; + default: + return 0; // Unreachable + } +} + +// An SMO algorithm in Fan et al., JMLR 6(2005), p. 1889--1918 +// Solves: +// +// min 0.5(\alpha^T Q \alpha) + p^T \alpha +// +// y^T \alpha = \delta +// y_i = +1 or -1 +// 0 <= alpha_i <= Cp for y_i = 1 +// 0 <= alpha_i <= Cn for y_i = -1 +// +// Given: +// +// Q, p, y, Cp, Cn, and an initial feasible point \alpha +// l is the size of vectors and matrices +// eps is the stopping tolerance +// +// solution will be put in \alpha, objective value will be put in obj +// +class Solver { +public: + Solver() {}; + virtual ~Solver() {}; + + struct SolutionInfo { + double obj; + double rho; + double upper_bound_p; + double upper_bound_n; + double r; // for Solver_NU + }; + + void Solve(int l, const QMatrix& Q, const double *p_, const schar *y_, + double *alpha_, double Cp, double Cn, double eps, + SolutionInfo* si, int shrinking); +protected: + int active_size; + schar *y; + double *G; // gradient of objective function + enum { LOWER_BOUND, UPPER_BOUND, FREE }; + char *alpha_status; // LOWER_BOUND, UPPER_BOUND, FREE + double *alpha; + const QMatrix *Q; + const double *QD; + double eps; + double Cp,Cn; + double *p; + int *active_set; + double *G_bar; // gradient, if we treat free variables as 0 + int l; + bool unshrink; // XXX + + double get_C(int i) + { + return (y[i] > 0)? Cp : Cn; + } + void update_alpha_status(int i) + { + if(alpha[i] >= get_C(i)) + alpha_status[i] = UPPER_BOUND; + else if(alpha[i] <= 0) + alpha_status[i] = LOWER_BOUND; + else alpha_status[i] = FREE; + } + bool is_upper_bound(int i) { return alpha_status[i] == UPPER_BOUND; } + bool is_lower_bound(int i) { return alpha_status[i] == LOWER_BOUND; } + bool is_free(int i) { return alpha_status[i] == FREE; } + void swap_index(int i, int j); + void reconstruct_gradient(); + virtual int select_working_set(int &i, int &j); + virtual double calculate_rho(); + virtual void do_shrinking(); +private: + bool be_shrunk(int i, double Gmax1, double Gmax2); +}; + +void Solver::swap_index(int i, int j) +{ + Q->swap_index(i,j); + swap(y[i],y[j]); + swap(G[i],G[j]); + swap(alpha_status[i],alpha_status[j]); + swap(alpha[i],alpha[j]); + swap(p[i],p[j]); + swap(active_set[i],active_set[j]); + swap(G_bar[i],G_bar[j]); +} + +void Solver::reconstruct_gradient() +{ + // reconstruct inactive elements of G from G_bar and free variables + + if(active_size == l) return; + + int i,j; + int nr_free = 0; + + for(j=active_size;j 2*active_size*(l-active_size)) + { + for(i=active_size;iget_Q(i,active_size); + for(j=0;jget_Q(i,l); + double alpha_i = alpha[i]; + for(j=active_size;jl = l; + this->Q = &Q; + QD=Q.get_QD(); + clone(p, p_,l); + clone(y, y_,l); + clone(alpha,alpha_,l); + this->Cp = Cp; + this->Cn = Cn; + this->eps = eps; + unshrink = false; + + // initialize alpha_status + { + alpha_status = new char[l]; + for(int i=0;iINT_MAX/100 ? INT_MAX : 100*l); + int counter = min(l,1000)+1; + + while(iter < max_iter) + { + // show progress and do shrinking + + if(--counter == 0) + { + counter = min(l,1000); + if(shrinking) do_shrinking(); + info("."); + } + + int i,j; + if(select_working_set(i,j)!=0) + { + // reconstruct the whole gradient + reconstruct_gradient(); + // reset active set size and check + active_size = l; + info("*"); + if(select_working_set(i,j)!=0) + break; + else + counter = 1; // do shrinking next iteration + } + + ++iter; + + // update alpha[i] and alpha[j], handle bounds carefully + + const Qfloat *Q_i = Q.get_Q(i,active_size); + const Qfloat *Q_j = Q.get_Q(j,active_size); + + double C_i = get_C(i); + double C_j = get_C(j); + + double old_alpha_i = alpha[i]; + double old_alpha_j = alpha[j]; + + if(y[i]!=y[j]) + { + double quad_coef = QD[i]+QD[j]+2*Q_i[j]; + if (quad_coef <= 0) + quad_coef = TAU; + double delta = (-G[i]-G[j])/quad_coef; + double diff = alpha[i] - alpha[j]; + alpha[i] += delta; + alpha[j] += delta; + + if(diff > 0) + { + if(alpha[j] < 0) + { + alpha[j] = 0; + alpha[i] = diff; + } + } + else + { + if(alpha[i] < 0) + { + alpha[i] = 0; + alpha[j] = -diff; + } + } + if(diff > C_i - C_j) + { + if(alpha[i] > C_i) + { + alpha[i] = C_i; + alpha[j] = C_i - diff; + } + } + else + { + if(alpha[j] > C_j) + { + alpha[j] = C_j; + alpha[i] = C_j + diff; + } + } + } + else + { + double quad_coef = QD[i]+QD[j]-2*Q_i[j]; + if (quad_coef <= 0) + quad_coef = TAU; + double delta = (G[i]-G[j])/quad_coef; + double sum = alpha[i] + alpha[j]; + alpha[i] -= delta; + alpha[j] += delta; + + if(sum > C_i) + { + if(alpha[i] > C_i) + { + alpha[i] = C_i; + alpha[j] = sum - C_i; + } + } + else + { + if(alpha[j] < 0) + { + alpha[j] = 0; + alpha[i] = sum; + } + } + if(sum > C_j) + { + if(alpha[j] > C_j) + { + alpha[j] = C_j; + alpha[i] = sum - C_j; + } + } + else + { + if(alpha[i] < 0) + { + alpha[i] = 0; + alpha[j] = sum; + } + } + } + + // update G + + double delta_alpha_i = alpha[i] - old_alpha_i; + double delta_alpha_j = alpha[j] - old_alpha_j; + + for(int k=0;k= max_iter) + { + if(active_size < l) + { + // reconstruct the whole gradient to calculate objective value + reconstruct_gradient(); + active_size = l; + info("*"); + } + info("\nWARNING: reaching max number of iterations"); + } + + // calculate rho + + si->rho = calculate_rho(); + + // calculate objective value + { + double v = 0; + int i; + for(i=0;iobj = v/2; + } + + // put back the solution + { + for(int i=0;iupper_bound_p = Cp; + si->upper_bound_n = Cn; + + info("\noptimization finished, #iter = %d\n",iter); + + delete[] p; + delete[] y; + delete[] alpha; + delete[] alpha_status; + delete[] active_set; + delete[] G; + delete[] G_bar; +} + +// return 1 if already optimal, return 0 otherwise +int Solver::select_working_set(int &out_i, int &out_j) +{ + // return i,j such that + // i: maximizes -y_i * grad(f)_i, i in I_up(\alpha) + // j: minimizes the decrease of obj value + // (if quadratic coefficeint <= 0, replace it with tau) + // -y_j*grad(f)_j < -y_i*grad(f)_i, j in I_low(\alpha) + + double Gmax = -INF; + double Gmax2 = -INF; + int Gmax_idx = -1; + int Gmin_idx = -1; + double obj_diff_min = INF; + + for(int t=0;t= Gmax) + { + Gmax = -G[t]; + Gmax_idx = t; + } + } + else + { + if(!is_lower_bound(t)) + if(G[t] >= Gmax) + { + Gmax = G[t]; + Gmax_idx = t; + } + } + + int i = Gmax_idx; + const Qfloat *Q_i = NULL; + if(i != -1) // NULL Q_i not accessed: Gmax=-INF if i=-1 + Q_i = Q->get_Q(i,active_size); + + for(int j=0;j= Gmax2) + Gmax2 = G[j]; + if (grad_diff > 0) + { + double obj_diff; + double quad_coef = QD[i]+QD[j]-2.0*y[i]*Q_i[j]; + if (quad_coef > 0) + obj_diff = -(grad_diff*grad_diff)/quad_coef; + else + obj_diff = -(grad_diff*grad_diff)/TAU; + + if (obj_diff <= obj_diff_min) + { + Gmin_idx=j; + obj_diff_min = obj_diff; + } + } + } + } + else + { + if (!is_upper_bound(j)) + { + double grad_diff= Gmax-G[j]; + if (-G[j] >= Gmax2) + Gmax2 = -G[j]; + if (grad_diff > 0) + { + double obj_diff; + double quad_coef = QD[i]+QD[j]+2.0*y[i]*Q_i[j]; + if (quad_coef > 0) + obj_diff = -(grad_diff*grad_diff)/quad_coef; + else + obj_diff = -(grad_diff*grad_diff)/TAU; + + if (obj_diff <= obj_diff_min) + { + Gmin_idx=j; + obj_diff_min = obj_diff; + } + } + } + } + } + + if(Gmax+Gmax2 < eps) + return 1; + + out_i = Gmax_idx; + out_j = Gmin_idx; + return 0; +} + +bool Solver::be_shrunk(int i, double Gmax1, double Gmax2) +{ + if(is_upper_bound(i)) + { + if(y[i]==+1) + return(-G[i] > Gmax1); + else + return(-G[i] > Gmax2); + } + else if(is_lower_bound(i)) + { + if(y[i]==+1) + return(G[i] > Gmax2); + else + return(G[i] > Gmax1); + } + else + return(false); +} + +void Solver::do_shrinking() +{ + int i; + double Gmax1 = -INF; // max { -y_i * grad(f)_i | i in I_up(\alpha) } + double Gmax2 = -INF; // max { y_i * grad(f)_i | i in I_low(\alpha) } + + // find maximal violating pair first + for(i=0;i= Gmax1) + Gmax1 = -G[i]; + } + if(!is_lower_bound(i)) + { + if(G[i] >= Gmax2) + Gmax2 = G[i]; + } + } + else + { + if(!is_upper_bound(i)) + { + if(-G[i] >= Gmax2) + Gmax2 = -G[i]; + } + if(!is_lower_bound(i)) + { + if(G[i] >= Gmax1) + Gmax1 = G[i]; + } + } + } + + if(unshrink == false && Gmax1 + Gmax2 <= eps*10) + { + unshrink = true; + reconstruct_gradient(); + active_size = l; + info("*"); + } + + for(i=0;i i) + { + if (!be_shrunk(active_size, Gmax1, Gmax2)) + { + swap_index(i,active_size); + break; + } + active_size--; + } + } +} + +double Solver::calculate_rho() +{ + double r; + int nr_free = 0; + double ub = INF, lb = -INF, sum_free = 0; + for(int i=0;i0) + r = sum_free/nr_free; + else + r = (ub+lb)/2; + + return r; +} + +// +// Solver for nu-svm classification and regression +// +// additional constraint: e^T \alpha = constant +// +class Solver_NU : public Solver +{ +public: + Solver_NU() {} + void Solve(int l, const QMatrix& Q, const double *p, const schar *y, + double *alpha, double Cp, double Cn, double eps, + SolutionInfo* si, int shrinking) + { + this->si = si; + Solver::Solve(l,Q,p,y,alpha,Cp,Cn,eps,si,shrinking); + } +private: + SolutionInfo *si; + int select_working_set(int &i, int &j); + double calculate_rho(); + bool be_shrunk(int i, double Gmax1, double Gmax2, double Gmax3, double Gmax4); + void do_shrinking(); +}; + +// return 1 if already optimal, return 0 otherwise +int Solver_NU::select_working_set(int &out_i, int &out_j) +{ + // return i,j such that y_i = y_j and + // i: maximizes -y_i * grad(f)_i, i in I_up(\alpha) + // j: minimizes the decrease of obj value + // (if quadratic coefficeint <= 0, replace it with tau) + // -y_j*grad(f)_j < -y_i*grad(f)_i, j in I_low(\alpha) + + double Gmaxp = -INF; + double Gmaxp2 = -INF; + int Gmaxp_idx = -1; + + double Gmaxn = -INF; + double Gmaxn2 = -INF; + int Gmaxn_idx = -1; + + int Gmin_idx = -1; + double obj_diff_min = INF; + + for(int t=0;t= Gmaxp) + { + Gmaxp = -G[t]; + Gmaxp_idx = t; + } + } + else + { + if(!is_lower_bound(t)) + if(G[t] >= Gmaxn) + { + Gmaxn = G[t]; + Gmaxn_idx = t; + } + } + + int ip = Gmaxp_idx; + int in = Gmaxn_idx; + const Qfloat *Q_ip = NULL; + const Qfloat *Q_in = NULL; + if(ip != -1) // NULL Q_ip not accessed: Gmaxp=-INF if ip=-1 + Q_ip = Q->get_Q(ip,active_size); + if(in != -1) + Q_in = Q->get_Q(in,active_size); + + for(int j=0;j= Gmaxp2) + Gmaxp2 = G[j]; + if (grad_diff > 0) + { + double obj_diff; + double quad_coef = QD[ip]+QD[j]-2*Q_ip[j]; + if (quad_coef > 0) + obj_diff = -(grad_diff*grad_diff)/quad_coef; + else + obj_diff = -(grad_diff*grad_diff)/TAU; + + if (obj_diff <= obj_diff_min) + { + Gmin_idx=j; + obj_diff_min = obj_diff; + } + } + } + } + else + { + if (!is_upper_bound(j)) + { + double grad_diff=Gmaxn-G[j]; + if (-G[j] >= Gmaxn2) + Gmaxn2 = -G[j]; + if (grad_diff > 0) + { + double obj_diff; + double quad_coef = QD[in]+QD[j]-2*Q_in[j]; + if (quad_coef > 0) + obj_diff = -(grad_diff*grad_diff)/quad_coef; + else + obj_diff = -(grad_diff*grad_diff)/TAU; + + if (obj_diff <= obj_diff_min) + { + Gmin_idx=j; + obj_diff_min = obj_diff; + } + } + } + } + } + + if(max(Gmaxp+Gmaxp2,Gmaxn+Gmaxn2) < eps) + return 1; + + if (y[Gmin_idx] == +1) + out_i = Gmaxp_idx; + else + out_i = Gmaxn_idx; + out_j = Gmin_idx; + + return 0; +} + +bool Solver_NU::be_shrunk(int i, double Gmax1, double Gmax2, double Gmax3, double Gmax4) +{ + if(is_upper_bound(i)) + { + if(y[i]==+1) + return(-G[i] > Gmax1); + else + return(-G[i] > Gmax4); + } + else if(is_lower_bound(i)) + { + if(y[i]==+1) + return(G[i] > Gmax2); + else + return(G[i] > Gmax3); + } + else + return(false); +} + +void Solver_NU::do_shrinking() +{ + double Gmax1 = -INF; // max { -y_i * grad(f)_i | y_i = +1, i in I_up(\alpha) } + double Gmax2 = -INF; // max { y_i * grad(f)_i | y_i = +1, i in I_low(\alpha) } + double Gmax3 = -INF; // max { -y_i * grad(f)_i | y_i = -1, i in I_up(\alpha) } + double Gmax4 = -INF; // max { y_i * grad(f)_i | y_i = -1, i in I_low(\alpha) } + + // find maximal violating pair first + int i; + for(i=0;i Gmax1) Gmax1 = -G[i]; + } + else if(-G[i] > Gmax4) Gmax4 = -G[i]; + } + if(!is_lower_bound(i)) + { + if(y[i]==+1) + { + if(G[i] > Gmax2) Gmax2 = G[i]; + } + else if(G[i] > Gmax3) Gmax3 = G[i]; + } + } + + if(unshrink == false && max(Gmax1+Gmax2,Gmax3+Gmax4) <= eps*10) + { + unshrink = true; + reconstruct_gradient(); + active_size = l; + } + + for(i=0;i i) + { + if (!be_shrunk(active_size, Gmax1, Gmax2, Gmax3, Gmax4)) + { + swap_index(i,active_size); + break; + } + active_size--; + } + } +} + +double Solver_NU::calculate_rho() +{ + int nr_free1 = 0,nr_free2 = 0; + double ub1 = INF, ub2 = INF; + double lb1 = -INF, lb2 = -INF; + double sum_free1 = 0, sum_free2 = 0; + + for(int i=0;i 0) + r1 = sum_free1/nr_free1; + else + r1 = (ub1+lb1)/2; + + if(nr_free2 > 0) + r2 = sum_free2/nr_free2; + else + r2 = (ub2+lb2)/2; + + si->r = (r1+r2)/2; + return (r1-r2)/2; +} + +// +// Q matrices for various formulations +// +class SVC_Q: public Kernel +{ +public: + SVC_Q(const svm_problem& prob, const svm_parameter& param, const schar *y_) + :Kernel(prob.l, prob.x, param) + { + clone(y,y_,prob.l); + cache = new Cache(prob.l,(long int)(param.cache_size*(1<<20))); + QD = new double[prob.l]; + for(int i=0;i*kernel_function)(i,i); + } + + Qfloat *get_Q(int i, int len) const + { + Qfloat *data; + int start, j; + if((start = cache->get_data(i,&data,len)) < len) + { + for(j=start;j*kernel_function)(i,j)); + } + return data; + } + + double *get_QD() const + { + return QD; + } + + void swap_index(int i, int j) const + { + cache->swap_index(i,j); + Kernel::swap_index(i,j); + swap(y[i],y[j]); + swap(QD[i],QD[j]); + } + + ~SVC_Q() + { + delete[] y; + delete cache; + delete[] QD; + } +private: + schar *y; + Cache *cache; + double *QD; +}; + +class ONE_CLASS_Q: public Kernel +{ +public: + ONE_CLASS_Q(const svm_problem& prob, const svm_parameter& param) + :Kernel(prob.l, prob.x, param) + { + cache = new Cache(prob.l,(long int)(param.cache_size*(1<<20))); + QD = new double[prob.l]; + for(int i=0;i*kernel_function)(i,i); + } + + Qfloat *get_Q(int i, int len) const + { + Qfloat *data; + int start, j; + if((start = cache->get_data(i,&data,len)) < len) + { + for(j=start;j*kernel_function)(i,j); + } + return data; + } + + double *get_QD() const + { + return QD; + } + + void swap_index(int i, int j) const + { + cache->swap_index(i,j); + Kernel::swap_index(i,j); + swap(QD[i],QD[j]); + } + + ~ONE_CLASS_Q() + { + delete cache; + delete[] QD; + } +private: + Cache *cache; + double *QD; +}; + +class SVR_Q: public Kernel +{ +public: + SVR_Q(const svm_problem& prob, const svm_parameter& param) + :Kernel(prob.l, prob.x, param) + { + l = prob.l; + cache = new Cache(l,(long int)(param.cache_size*(1<<20))); + QD = new double[2*l]; + sign = new schar[2*l]; + index = new int[2*l]; + for(int k=0;k*kernel_function)(k,k); + QD[k+l] = QD[k]; + } + buffer[0] = new Qfloat[2*l]; + buffer[1] = new Qfloat[2*l]; + next_buffer = 0; + } + + void swap_index(int i, int j) const + { + swap(sign[i],sign[j]); + swap(index[i],index[j]); + swap(QD[i],QD[j]); + } + + Qfloat *get_Q(int i, int len) const + { + Qfloat *data; + int j, real_i = index[i]; + if(cache->get_data(real_i,&data,l) < l) + { + for(j=0;j*kernel_function)(real_i,j); + } + + // reorder and copy + Qfloat *buf = buffer[next_buffer]; + next_buffer = 1 - next_buffer; + schar si = sign[i]; + for(j=0;jl; + double *minus_ones = new double[l]; + schar *y = new schar[l]; + + int i; + + for(i=0;iy[i] > 0) y[i] = +1; else y[i] = -1; + } + + Solver s; + s.Solve(l, SVC_Q(*prob,*param,y), minus_ones, y, + alpha, Cp, Cn, param->eps, si, param->shrinking); + + double sum_alpha=0; + for(i=0;il)); + + for(i=0;il; + double nu = param->nu; + + schar *y = new schar[l]; + + for(i=0;iy[i]>0) + y[i] = +1; + else + y[i] = -1; + + double sum_pos = nu*l/2; + double sum_neg = nu*l/2; + + for(i=0;ieps, si, param->shrinking); + double r = si->r; + + info("C = %f\n",1/r); + + for(i=0;irho /= r; + si->obj /= (r*r); + si->upper_bound_p = 1/r; + si->upper_bound_n = 1/r; + + delete[] y; + delete[] zeros; +} + +static void solve_one_class( + const svm_problem *prob, const svm_parameter *param, + double *alpha, Solver::SolutionInfo* si) +{ + int l = prob->l; + double *zeros = new double[l]; + schar *ones = new schar[l]; + int i; + + int n = (int)(param->nu*prob->l); // # of alpha's at upper bound + + for(i=0;il) + alpha[n] = param->nu * prob->l - n; + for(i=n+1;ieps, si, param->shrinking); + + delete[] zeros; + delete[] ones; +} + +static void solve_epsilon_svr( + const svm_problem *prob, const svm_parameter *param, + double *alpha, Solver::SolutionInfo* si) +{ + int l = prob->l; + double *alpha2 = new double[2*l]; + double *linear_term = new double[2*l]; + schar *y = new schar[2*l]; + int i; + + for(i=0;ip - prob->y[i]; + y[i] = 1; + + alpha2[i+l] = 0; + linear_term[i+l] = param->p + prob->y[i]; + y[i+l] = -1; + } + + Solver s; + s.Solve(2*l, SVR_Q(*prob,*param), linear_term, y, + alpha2, param->C, param->C, param->eps, si, param->shrinking); + + double sum_alpha = 0; + for(i=0;iC*l)); + + delete[] alpha2; + delete[] linear_term; + delete[] y; +} + +static void solve_nu_svr( + const svm_problem *prob, const svm_parameter *param, + double *alpha, Solver::SolutionInfo* si) +{ + int l = prob->l; + double C = param->C; + double *alpha2 = new double[2*l]; + double *linear_term = new double[2*l]; + schar *y = new schar[2*l]; + int i; + + double sum = C * param->nu * l / 2; + for(i=0;iy[i]; + y[i] = 1; + + linear_term[i+l] = prob->y[i]; + y[i+l] = -1; + } + + Solver_NU s; + s.Solve(2*l, SVR_Q(*prob,*param), linear_term, y, + alpha2, C, C, param->eps, si, param->shrinking); + + info("epsilon = %f\n",-si->r); + + for(i=0;il); + Solver::SolutionInfo si; + switch(param->svm_type) + { + case C_SVC: + solve_c_svc(prob,param,alpha,&si,Cp,Cn); + break; + case NU_SVC: + solve_nu_svc(prob,param,alpha,&si); + break; + case ONE_CLASS: + solve_one_class(prob,param,alpha,&si); + break; + case EPSILON_SVR: + solve_epsilon_svr(prob,param,alpha,&si); + break; + case NU_SVR: + solve_nu_svr(prob,param,alpha,&si); + break; + } + + info("obj = %f, rho = %f\n",si.obj,si.rho); + + // output SVs + + int nSV = 0; + int nBSV = 0; + for(int i=0;il;i++) + { + if(fabs(alpha[i]) > 0) + { + ++nSV; + if(prob->y[i] > 0) + { + if(fabs(alpha[i]) >= si.upper_bound_p) + ++nBSV; + } + else + { + if(fabs(alpha[i]) >= si.upper_bound_n) + ++nBSV; + } + } + } + + info("nSV = %d, nBSV = %d\n",nSV,nBSV); + + decision_function f; + f.alpha = alpha; + f.rho = si.rho; + return f; +} + +// Platt's binary SVM Probablistic Output: an improvement from Lin et al. +static void sigmoid_train( + int l, const double *dec_values, + const double *labels, + double& A, double& B) +{ + double prior1=0, prior0 = 0; + int i; + + for (i=0;i 0) prior1+=1; + else prior0+=1; + + int max_iter=100; // Maximal number of iterations + double min_step=1e-10; // Minimal step taken in line search + double sigma=1e-12; // For numerically strict PD of Hessian + double eps=1e-5; + double hiTarget=(prior1+1.0)/(prior1+2.0); + double loTarget=1/(prior0+2.0); + double *t=Malloc(double,l); + double fApB,p,q,h11,h22,h21,g1,g2,det,dA,dB,gd,stepsize; + double newA,newB,newf,d1,d2; + int iter; + + // Initial Point and Initial Fun Value + A=0.0; B=log((prior0+1.0)/(prior1+1.0)); + double fval = 0.0; + + for (i=0;i0) t[i]=hiTarget; + else t[i]=loTarget; + fApB = dec_values[i]*A+B; + if (fApB>=0) + fval += t[i]*fApB + log(1+exp(-fApB)); + else + fval += (t[i] - 1)*fApB +log(1+exp(fApB)); + } + for (iter=0;iter= 0) + { + p=exp(-fApB)/(1.0+exp(-fApB)); + q=1.0/(1.0+exp(-fApB)); + } + else + { + p=1.0/(1.0+exp(fApB)); + q=exp(fApB)/(1.0+exp(fApB)); + } + d2=p*q; + h11+=dec_values[i]*dec_values[i]*d2; + h22+=d2; + h21+=dec_values[i]*d2; + d1=t[i]-p; + g1+=dec_values[i]*d1; + g2+=d1; + } + + // Stopping Criteria + if (fabs(g1)= min_step) + { + newA = A + stepsize * dA; + newB = B + stepsize * dB; + + // New function value + newf = 0.0; + for (i=0;i= 0) + newf += t[i]*fApB + log(1+exp(-fApB)); + else + newf += (t[i] - 1)*fApB +log(1+exp(fApB)); + } + // Check sufficient decrease + if (newf=max_iter) + info("Reaching maximal iterations in two-class probability estimates\n"); + free(t); +} + +static double sigmoid_predict(double decision_value, double A, double B) +{ + double fApB = decision_value*A+B; + // 1-p used later; avoid catastrophic cancellation + if (fApB >= 0) + return exp(-fApB)/(1.0+exp(-fApB)); + else + return 1.0/(1+exp(fApB)) ; +} + +// Method 2 from the multiclass_prob paper by Wu, Lin, and Weng +static void multiclass_probability(int k, double **r, double *p) +{ + int t,j; + int iter = 0, max_iter=max(100,k); + double **Q=Malloc(double *,k); + double *Qp=Malloc(double,k); + double pQp, eps=0.005/k; + + for (t=0;tmax_error) + max_error=error; + } + if (max_error=max_iter) + info("Exceeds max_iter in multiclass_prob\n"); + for(t=0;tl); + double *dec_values = Malloc(double,prob->l); + + // random shuffle + for(i=0;il;i++) perm[i]=i; + for(i=0;il;i++) + { + int j = i+rand()%(prob->l-i); + swap(perm[i],perm[j]); + } + for(i=0;il/nr_fold; + int end = (i+1)*prob->l/nr_fold; + int j,k; + struct svm_problem subprob; + + subprob.l = prob->l-(end-begin); + subprob.x = Malloc(struct svm_node*,subprob.l); + subprob.y = Malloc(double,subprob.l); + + k=0; + for(j=0;jx[perm[j]]; + subprob.y[k] = prob->y[perm[j]]; + ++k; + } + for(j=end;jl;j++) + { + subprob.x[k] = prob->x[perm[j]]; + subprob.y[k] = prob->y[perm[j]]; + ++k; + } + int p_count=0,n_count=0; + for(j=0;j0) + p_count++; + else + n_count++; + + if(p_count==0 && n_count==0) + for(j=begin;j 0 && n_count == 0) + for(j=begin;j 0) + for(j=begin;jx[perm[j]],&(dec_values[perm[j]])); + // ensure +1 -1 order; reason not using CV subroutine + dec_values[perm[j]] *= submodel->label[0]; + } + svm_free_and_destroy_model(&submodel); + svm_destroy_param(&subparam); + } + free(subprob.x); + free(subprob.y); + } + sigmoid_train(prob->l,dec_values,prob->y,probA,probB); + free(dec_values); + free(perm); +} + +// Return parameter of a Laplace distribution +static double svm_svr_probability( + const svm_problem *prob, const svm_parameter *param) +{ + int i; + int nr_fold = 5; + double *ymv = Malloc(double,prob->l); + double mae = 0; + + svm_parameter newparam = *param; + newparam.probability = 0; + svm_cross_validation(prob,&newparam,nr_fold,ymv); + for(i=0;il;i++) + { + ymv[i]=prob->y[i]-ymv[i]; + mae += fabs(ymv[i]); + } + mae /= prob->l; + double std=sqrt(2*mae*mae); + int count=0; + mae=0; + for(i=0;il;i++) + if (fabs(ymv[i]) > 5*std) + count=count+1; + else + mae+=fabs(ymv[i]); + mae /= (prob->l-count); + info("Prob. model for test data: target value = predicted value + z,\nz: Laplace distribution e^(-|z|/sigma)/(2sigma),sigma= %g\n",mae); + free(ymv); + return mae; +} + + +// label: label name, start: begin of each class, count: #data of classes, perm: indices to the original data +// perm, length l, must be allocated before calling this subroutine +static void svm_group_classes(const svm_problem *prob, int *nr_class_ret, int **label_ret, int **start_ret, int **count_ret, int *perm) +{ + int l = prob->l; + int max_nr_class = 16; + int nr_class = 0; + int *label = Malloc(int,max_nr_class); + int *count = Malloc(int,max_nr_class); + int *data_label = Malloc(int,l); + int i; + + for(i=0;iy[i]; + int j; + for(j=0;jparam = *param; + model->free_sv = 0; // XXX + + if(param->svm_type == ONE_CLASS || + param->svm_type == EPSILON_SVR || + param->svm_type == NU_SVR) + { + // regression or one-class-svm + model->nr_class = 2; + model->label = NULL; + model->nSV = NULL; + model->probA = NULL; model->probB = NULL; + model->sv_coef = Malloc(double *,1); + + if(param->probability && + (param->svm_type == EPSILON_SVR || + param->svm_type == NU_SVR)) + { + model->probA = Malloc(double,1); + model->probA[0] = svm_svr_probability(prob,param); + } + + decision_function f = svm_train_one(prob,param,0,0); + model->rho = Malloc(double,1); + model->rho[0] = f.rho; + + int nSV = 0; + int i; + for(i=0;il;i++) + if(fabs(f.alpha[i]) > 0) ++nSV; + model->l = nSV; + model->SV = Malloc(svm_node *,nSV); + model->sv_coef[0] = Malloc(double,nSV); + int j = 0; + for(i=0;il;i++) + if(fabs(f.alpha[i]) > 0) + { + model->SV[j] = prob->x[i]; + model->sv_coef[0][j] = f.alpha[i]; + ++j; + } + + free(f.alpha); + } + else + { + // classification + int l = prob->l; + int nr_class; + int *label = NULL; + int *start = NULL; + int *count = NULL; + int *perm = Malloc(int,l); + + // group training data of the same class + svm_group_classes(prob,&nr_class,&label,&start,&count,perm); + if(nr_class == 1) + info("WARNING: training data in only one class. See README for details.\n"); + + svm_node **x = Malloc(svm_node *,l); + int i; + for(i=0;ix[perm[i]]; + + // calculate weighted C + + double *weighted_C = Malloc(double, nr_class); + for(i=0;iC; + for(i=0;inr_weight;i++) + { + int j; + for(j=0;jweight_label[i] == label[j]) + break; + if(j == nr_class) + fprintf(stderr,"WARNING: class label %d specified in weight is not found\n", param->weight_label[i]); + else + weighted_C[j] *= param->weight[i]; + } + + // train k*(k-1)/2 models + + bool *nonzero = Malloc(bool,l); + for(i=0;iprobability) + { + probA=Malloc(double,nr_class*(nr_class-1)/2); + probB=Malloc(double,nr_class*(nr_class-1)/2); + } + + int p = 0; + for(i=0;iprobability) + svm_binary_svc_probability(&sub_prob,param,weighted_C[i],weighted_C[j],probA[p],probB[p]); + + f[p] = svm_train_one(&sub_prob,param,weighted_C[i],weighted_C[j]); + for(k=0;k 0) + nonzero[si+k] = true; + for(k=0;k 0) + nonzero[sj+k] = true; + free(sub_prob.x); + free(sub_prob.y); + ++p; + } + + // build output + + model->nr_class = nr_class; + + model->label = Malloc(int,nr_class); + for(i=0;ilabel[i] = label[i]; + + model->rho = Malloc(double,nr_class*(nr_class-1)/2); + for(i=0;irho[i] = f[i].rho; + + if(param->probability) + { + model->probA = Malloc(double,nr_class*(nr_class-1)/2); + model->probB = Malloc(double,nr_class*(nr_class-1)/2); + for(i=0;iprobA[i] = probA[i]; + model->probB[i] = probB[i]; + } + } + else + { + model->probA=NULL; + model->probB=NULL; + } + + int total_sv = 0; + int *nz_count = Malloc(int,nr_class); + model->nSV = Malloc(int,nr_class); + for(i=0;inSV[i] = nSV; + nz_count[i] = nSV; + } + + info("Total nSV = %d\n",total_sv); + + model->l = total_sv; + model->SV = Malloc(svm_node *,total_sv); + p = 0; + for(i=0;iSV[p++] = x[i]; + + int *nz_start = Malloc(int,nr_class); + nz_start[0] = 0; + for(i=1;isv_coef = Malloc(double *,nr_class-1); + for(i=0;isv_coef[i] = Malloc(double,total_sv); + + p = 0; + for(i=0;isv_coef[j-1][q++] = f[p].alpha[k]; + q = nz_start[j]; + for(k=0;ksv_coef[i][q++] = f[p].alpha[ci+k]; + ++p; + } + + free(label); + free(probA); + free(probB); + free(count); + free(perm); + free(start); + free(x); + free(weighted_C); + free(nonzero); + for(i=0;il; + int *perm = Malloc(int,l); + int nr_class; + + // stratified cv may not give leave-one-out rate + // Each class to l folds -> some folds may have zero elements + if((param->svm_type == C_SVC || + param->svm_type == NU_SVC) && nr_fold < l) + { + int *start = NULL; + int *label = NULL; + int *count = NULL; + svm_group_classes(prob,&nr_class,&label,&start,&count,perm); + + // random shuffle and then data grouped by fold using the array perm + int *fold_count = Malloc(int,nr_fold); + int c; + int *index = Malloc(int,l); + for(i=0;ix[perm[j]]; + subprob.y[k] = prob->y[perm[j]]; + ++k; + } + for(j=end;jx[perm[j]]; + subprob.y[k] = prob->y[perm[j]]; + ++k; + } + struct svm_model *submodel = svm_train(&subprob,param); + if(param->probability && + (param->svm_type == C_SVC || param->svm_type == NU_SVC)) + { + double *prob_estimates=Malloc(double,svm_get_nr_class(submodel)); + for(j=begin;jx[perm[j]],prob_estimates); + free(prob_estimates); + } + else + for(j=begin;jx[perm[j]]); + svm_free_and_destroy_model(&submodel); + free(subprob.x); + free(subprob.y); + } + free(fold_start); + free(perm); +} + + +int svm_get_svm_type(const svm_model *model) +{ + return model->param.svm_type; +} + +int svm_get_nr_class(const svm_model *model) +{ + return model->nr_class; +} + +void svm_get_labels(const svm_model *model, int* label) +{ + if (model->label != NULL) + for(int i=0;inr_class;i++) + label[i] = model->label[i]; +} + +double svm_get_svr_probability(const svm_model *model) +{ + if ((model->param.svm_type == EPSILON_SVR || model->param.svm_type == NU_SVR) && + model->probA!=NULL) + return model->probA[0]; + else + { + fprintf(stderr,"Model doesn't contain information for SVR probability inference\n"); + return 0; + } +} + +double svm_predict_values(const svm_model *model, const svm_node *x, double* dec_values) +{ + int i; + if(model->param.svm_type == ONE_CLASS || + model->param.svm_type == EPSILON_SVR || + model->param.svm_type == NU_SVR) + { + double *sv_coef = model->sv_coef[0]; + double sum = 0; + for(i=0;il;i++) + sum += sv_coef[i] * Kernel::k_function(x,model->SV[i],model->param); + sum -= model->rho[0]; + *dec_values = sum; + + if(model->param.svm_type == ONE_CLASS) + return (sum>0)?1:-1; + else + return sum; + } + else + { + int nr_class = model->nr_class; + int l = model->l; + + double *kvalue = Malloc(double,l); + for(i=0;iSV[i],model->param); + + int *start = Malloc(int,nr_class); + start[0] = 0; + for(i=1;inSV[i-1]; + + int *vote = Malloc(int,nr_class); + for(i=0;inSV[i]; + int cj = model->nSV[j]; + + int k; + double *coef1 = model->sv_coef[j-1]; + double *coef2 = model->sv_coef[i]; + for(k=0;krho[p]; + dec_values[p] = sum; + + if(dec_values[p] > 0) + ++vote[i]; + else + ++vote[j]; + p++; + } + + int vote_max_idx = 0; + for(i=1;i vote[vote_max_idx]) + vote_max_idx = i; + + free(kvalue); + free(start); + free(vote); + return model->label[vote_max_idx]; + } +} + +double svm_predict(const svm_model *model, const svm_node *x) +{ + int nr_class = model->nr_class; + double *dec_values; + if(model->param.svm_type == ONE_CLASS || + model->param.svm_type == EPSILON_SVR || + model->param.svm_type == NU_SVR) + dec_values = Malloc(double, 1); + else + dec_values = Malloc(double, nr_class*(nr_class-1)/2); + double pred_result = svm_predict_values(model, x, dec_values); + free(dec_values); + return pred_result; +} + +double svm_predict_probability( + const svm_model *model, const svm_node *x, double *prob_estimates) +{ + if ((model->param.svm_type == C_SVC || model->param.svm_type == NU_SVC) && + model->probA!=NULL && model->probB!=NULL) + { + int i; + int nr_class = model->nr_class; + double *dec_values = Malloc(double, nr_class*(nr_class-1)/2); + svm_predict_values(model, x, dec_values); + + double min_prob=1e-7; + double **pairwise_prob=Malloc(double *,nr_class); + for(i=0;iprobA[k],model->probB[k]),min_prob),1-min_prob); + pairwise_prob[j][i]=1-pairwise_prob[i][j]; + k++; + } + multiclass_probability(nr_class,pairwise_prob,prob_estimates); + + int prob_max_idx = 0; + for(i=1;i prob_estimates[prob_max_idx]) + prob_max_idx = i; + for(i=0;ilabel[prob_max_idx]; + } + else + return svm_predict(model, x); +} + +static const char *svm_type_table[] = +{ + "c_svc","nu_svc","one_class","epsilon_svr","nu_svr",NULL +}; + +static const char *kernel_type_table[]= +{ + "linear","polynomial","rbf","sigmoid","precomputed",NULL +}; + +int svm_save_model(const char *model_file_name, const svm_model *model) +{ + FILE *fp = fopen(model_file_name,"w"); + if(fp==NULL) return -1; + + const svm_parameter& param = model->param; + + fprintf(fp,"svm_type %s\n", svm_type_table[param.svm_type]); + fprintf(fp,"kernel_type %s\n", kernel_type_table[param.kernel_type]); + + if(param.kernel_type == POLY) + fprintf(fp,"degree %d\n", param.degree); + + if(param.kernel_type == POLY || param.kernel_type == RBF || param.kernel_type == SIGMOID) + fprintf(fp,"gamma %g\n", param.gamma); + + if(param.kernel_type == POLY || param.kernel_type == SIGMOID) + fprintf(fp,"coef0 %g\n", param.coef0); + + int nr_class = model->nr_class; + int l = model->l; + fprintf(fp, "nr_class %d\n", nr_class); + fprintf(fp, "total_sv %d\n",l); + + { + fprintf(fp, "rho"); + for(int i=0;irho[i]); + fprintf(fp, "\n"); + } + + if(model->label) + { + fprintf(fp, "label"); + for(int i=0;ilabel[i]); + fprintf(fp, "\n"); + } + + if(model->probA) // regression has probA only + { + fprintf(fp, "probA"); + for(int i=0;iprobA[i]); + fprintf(fp, "\n"); + } + if(model->probB) + { + fprintf(fp, "probB"); + for(int i=0;iprobB[i]); + fprintf(fp, "\n"); + } + + if(model->nSV) + { + fprintf(fp, "nr_sv"); + for(int i=0;inSV[i]); + fprintf(fp, "\n"); + } + + fprintf(fp, "SV\n"); + const double * const *sv_coef = model->sv_coef; + const svm_node * const *SV = model->SV; + + for(int i=0;ivalue)); + else + while(p->index != -1) + { + fprintf(fp,"%d:%.8g ",p->index,p->value); + p++; + } + fprintf(fp, "\n"); + } + if (ferror(fp) != 0 || fclose(fp) != 0) return -1; + else return 0; +} + +static char *line = NULL; +static int max_line_len; + +static char* readline(FILE *input) +{ + int len; + + if(fgets(line,max_line_len,input) == NULL) + return NULL; + + while(strrchr(line,'\n') == NULL) + { + max_line_len *= 2; + line = (char *) realloc(line,max_line_len); + len = (int) strlen(line); + if(fgets(line+len,max_line_len-len,input) == NULL) + break; + } + return line; +} + +svm_model *svm_load_model(const char *model_file_name) +{ + FILE *fp = fopen(model_file_name,"rb"); + if(fp==NULL) return NULL; + + // read parameters + + svm_model *model = Malloc(svm_model,1); + svm_parameter& param = model->param; + model->rho = NULL; + model->probA = NULL; + model->probB = NULL; + model->label = NULL; + model->nSV = NULL; + + char cmd[81]; + while(1) + { + fscanf(fp,"%80s",cmd); + + if(strcmp(cmd,"svm_type")==0) + { + fscanf(fp,"%80s",cmd); + int i; + for(i=0;svm_type_table[i];i++) + { + if(strcmp(svm_type_table[i],cmd)==0) + { + param.svm_type=i; + break; + } + } + if(svm_type_table[i] == NULL) + { + fprintf(stderr,"unknown svm type.\n"); + free(model->rho); + free(model->label); + free(model->nSV); + free(model); + return NULL; + } + } + else if(strcmp(cmd,"kernel_type")==0) + { + fscanf(fp,"%80s",cmd); + int i; + for(i=0;kernel_type_table[i];i++) + { + if(strcmp(kernel_type_table[i],cmd)==0) + { + param.kernel_type=i; + break; + } + } + if(kernel_type_table[i] == NULL) + { + fprintf(stderr,"unknown kernel function.\n"); + free(model->rho); + free(model->label); + free(model->nSV); + free(model); + return NULL; + } + } + else if(strcmp(cmd,"degree")==0) + fscanf(fp,"%d",¶m.degree); + else if(strcmp(cmd,"gamma")==0) + fscanf(fp,"%lf",¶m.gamma); + else if(strcmp(cmd,"coef0")==0) + fscanf(fp,"%lf",¶m.coef0); + else if(strcmp(cmd,"nr_class")==0) + fscanf(fp,"%d",&model->nr_class); + else if(strcmp(cmd,"total_sv")==0) + fscanf(fp,"%d",&model->l); + else if(strcmp(cmd,"rho")==0) + { + int n = model->nr_class * (model->nr_class-1)/2; + model->rho = Malloc(double,n); + for(int i=0;irho[i]); + } + else if(strcmp(cmd,"label")==0) + { + int n = model->nr_class; + model->label = Malloc(int,n); + for(int i=0;ilabel[i]); + } + else if(strcmp(cmd,"probA")==0) + { + int n = model->nr_class * (model->nr_class-1)/2; + model->probA = Malloc(double,n); + for(int i=0;iprobA[i]); + } + else if(strcmp(cmd,"probB")==0) + { + int n = model->nr_class * (model->nr_class-1)/2; + model->probB = Malloc(double,n); + for(int i=0;iprobB[i]); + } + else if(strcmp(cmd,"nr_sv")==0) + { + int n = model->nr_class; + model->nSV = Malloc(int,n); + for(int i=0;inSV[i]); + } + else if(strcmp(cmd,"SV")==0) + { + while(1) + { + int c = getc(fp); + if(c==EOF || c=='\n') break; + } + break; + } + else + { + fprintf(stderr,"unknown text in model file: [%s]\n",cmd); + free(model->rho); + free(model->label); + free(model->nSV); + free(model); + return NULL; + } + } + + // read sv_coef and SV + + int elements = 0; + long pos = ftell(fp); + + max_line_len = 1024; + line = Malloc(char,max_line_len); + char *p,*endptr,*idx,*val; + + while(readline(fp)!=NULL) + { + p = strtok(line,":"); + while(1) + { + p = strtok(NULL,":"); + if(p == NULL) + break; + ++elements; + } + } + elements += model->l; + + fseek(fp,pos,SEEK_SET); + + int m = model->nr_class - 1; + int l = model->l; + model->sv_coef = Malloc(double *,m); + int i; + for(i=0;isv_coef[i] = Malloc(double,l); + model->SV = Malloc(svm_node*,l); + svm_node *x_space = NULL; + if(l>0) x_space = Malloc(svm_node,elements); + + int j=0; + for(i=0;iSV[i] = &x_space[j]; + + p = strtok(line, " \t"); + model->sv_coef[0][i] = strtod(p,&endptr); + for(int k=1;ksv_coef[k][i] = strtod(p,&endptr); + } + + while(1) + { + idx = strtok(NULL, ":"); + val = strtok(NULL, " \t"); + + if(val == NULL) + break; + x_space[j].index = (int) strtol(idx,&endptr,10); + x_space[j].value = strtod(val,&endptr); + + ++j; + } + x_space[j++].index = -1; + } + free(line); + + if (ferror(fp) != 0 || fclose(fp) != 0) + return NULL; + + model->free_sv = 1; // XXX + return model; +} + +void svm_free_model_content(svm_model* model_ptr) +{ + if(model_ptr->free_sv && model_ptr->l > 0 && model_ptr->SV != NULL) + free((void *)(model_ptr->SV[0])); + if(model_ptr->sv_coef) + { + for(int i=0;inr_class-1;i++) + free(model_ptr->sv_coef[i]); + } + + free(model_ptr->SV); + model_ptr->SV = NULL; + + free(model_ptr->sv_coef); + model_ptr->sv_coef = NULL; + + free(model_ptr->rho); + model_ptr->rho = NULL; + + free(model_ptr->label); + model_ptr->label= NULL; + + free(model_ptr->probA); + model_ptr->probA = NULL; + + free(model_ptr->probB); + model_ptr->probB= NULL; + + free(model_ptr->nSV); + model_ptr->nSV = NULL; +} + +void svm_free_and_destroy_model(svm_model** model_ptr_ptr) +{ + if(model_ptr_ptr != NULL && *model_ptr_ptr != NULL) + { + svm_free_model_content(*model_ptr_ptr); + free(*model_ptr_ptr); + *model_ptr_ptr = NULL; + } +} + +void svm_destroy_param(svm_parameter* param) +{ + free(param->weight_label); + free(param->weight); +} + +const char *svm_check_parameter(const svm_problem *prob, const svm_parameter *param) +{ + // svm_type + + int svm_type = param->svm_type; + if(svm_type != C_SVC && + svm_type != NU_SVC && + svm_type != ONE_CLASS && + svm_type != EPSILON_SVR && + svm_type != NU_SVR) + return "unknown svm type"; + + // kernel_type, degree + + int kernel_type = param->kernel_type; + if(kernel_type != LINEAR && + kernel_type != POLY && + kernel_type != RBF && + kernel_type != SIGMOID && + kernel_type != PRECOMPUTED) + return "unknown kernel type"; + + if(param->gamma < 0) + return "gamma < 0"; + + if(param->degree < 0) + return "degree of polynomial kernel < 0"; + + // cache_size,eps,C,nu,p,shrinking + + if(param->cache_size <= 0) + return "cache_size <= 0"; + + if(param->eps <= 0) + return "eps <= 0"; + + if(svm_type == C_SVC || + svm_type == EPSILON_SVR || + svm_type == NU_SVR) + if(param->C <= 0) + return "C <= 0"; + + if(svm_type == NU_SVC || + svm_type == ONE_CLASS || + svm_type == NU_SVR) + if(param->nu <= 0 || param->nu > 1) + return "nu <= 0 or nu > 1"; + + if(svm_type == EPSILON_SVR) + if(param->p < 0) + return "p < 0"; + + if(param->shrinking != 0 && + param->shrinking != 1) + return "shrinking != 0 and shrinking != 1"; + + if(param->probability != 0 && + param->probability != 1) + return "probability != 0 and probability != 1"; + + if(param->probability == 1 && + svm_type == ONE_CLASS) + return "one-class SVM probability output not supported yet"; + + + // check whether nu-svc is feasible + + if(svm_type == NU_SVC) + { + int l = prob->l; + int max_nr_class = 16; + int nr_class = 0; + int *label = Malloc(int,max_nr_class); + int *count = Malloc(int,max_nr_class); + + int i; + for(i=0;iy[i]; + int j; + for(j=0;jnu*(n1+n2)/2 > min(n1,n2)) + { + free(label); + free(count); + return "specified nu is infeasible"; + } + } + } + free(label); + free(count); + } + + return NULL; +} + +int svm_check_probability_model(const svm_model *model) +{ + return ((model->param.svm_type == C_SVC || model->param.svm_type == NU_SVC) && + model->probA!=NULL && model->probB!=NULL) || + ((model->param.svm_type == EPSILON_SVR || model->param.svm_type == NU_SVR) && + model->probA!=NULL); +} + +void svm_set_print_string_function(void (*print_func)(const char *)) +{ + if(print_func == NULL) + svm_print_string = &print_string_stdout; + else + svm_print_string = print_func; +} diff --git a/.svn/pristine/94/940861b51daaf2ac827a498a2ac881b29f2875aa.svn-base b/.svn/pristine/94/940861b51daaf2ac827a498a2ac881b29f2875aa.svn-base new file mode 100644 index 0000000..6bb19bb --- /dev/null +++ b/.svn/pristine/94/940861b51daaf2ac827a498a2ac881b29f2875aa.svn-base @@ -0,0 +1,106 @@ +/** @file + * @brief Implementation of the virtual functor for graphslam + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __GRAPHSLAM_6D_H__ +#define __GRAPHSLAM_6D_H__ + +#include +using std::vector; +#include +using std::map; +/*#include +using std::pair;*/ + +#include "icp6D.h" +#include "graph.h" +#include "newmat/newmatio.h" +#include "sparse/csparse.h" + +typedef vector vPtPair; ///< just a typedef: vPtPair = vector of type PtPair +using namespace NEWMAT; +typedef pair uipair; +typedef pair< uipair, Matrix* > uimpair; + + +class GraphMatrix { + public: + void add(const unsigned int i, const unsigned int j, Matrix &Cij); + void subtract(const unsigned int i, const unsigned int j, Matrix &Cij); + void print() ; + void convertToCS(cs* T); + + ~GraphMatrix(); + + + private: + map< uipair, Matrix* > matrix; + map< uipair, Matrix* >::iterator it; +}; + +class graphSlam6D { + +public: + /** + * Constructor + */ + graphSlam6D() { }; + + graphSlam6D(icp6Dminimizer *my_icp6Dminimizer, + double mdm, double max_dist_match, + int max_num_iterations, bool quiet, bool meta, int rnd, + bool eP, int anim, double epsilonICP, int nns_method, double epsilonLUM); + + /** + * Destructor + */ + virtual ~graphSlam6D(); + + virtual double doGraphSlam6D(Graph gr, vector MetaScan, int nrIt) = 0; + + void matchGraph6Dautomatic(vector MetaScan, int nrIt, double cldist, int loopsize); + void matchGraph6Dautomatic(vector MetaScan, int nrIt, int clpairs, int loopsize); + Graph *computeGraph6Dautomatic(vector allScans, int clpairs); + + NEWMAT::ColumnVector solveSparseCholesky(GraphMatrix *G, const NEWMAT::ColumnVector &B); + NEWMAT::ColumnVector solveSparseCholesky(const NEWMAT::Matrix &G, const NEWMAT::ColumnVector &B); + NEWMAT::ColumnVector solveSparseQR(const NEWMAT::Matrix &G, const NEWMAT::ColumnVector &B); + NEWMAT::ColumnVector solveCholesky(const NEWMAT::Matrix &G, const NEWMAT::ColumnVector &B); + NEWMAT::ColumnVector solve(const NEWMAT::Matrix &G, const NEWMAT::ColumnVector &B); + + void writeMatrixPGM(const NEWMAT::Matrix &G); + void set_mdmll(double mdmll); + inline void set_quiet(bool _quiet) { quiet = _quiet;}; + +protected: + /** + * pointer to the ICP framework + */ + icp6D *my_icp; + + /** + * the epsilon for LUM + */ + double epsilonLUM; + + /** + * the maximal distance (^2 !!!) for matching in LUM + */ + double max_dist_match2_LUM; + + /** + * indicates the NNS method being used + */ + int nns_method; + + /** + * be quiet + */ + bool quiet; + + + long ctime; +}; + +#endif diff --git a/.svn/pristine/94/94aad30f03099c1bb55ea4a9d35ba4b1d7ebbf43.svn-base b/.svn/pristine/94/94aad30f03099c1bb55ea4a9d35ba4b1d7ebbf43.svn-base new file mode 100644 index 0000000..4119b36 --- /dev/null +++ b/.svn/pristine/94/94aad30f03099c1bb55ea4a9d35ba4b1d7ebbf43.svn-base @@ -0,0 +1,27 @@ +/** + * @file + * @brief IO of a 3D scan in uos file format + * @author Thomas Escher + */ + +#ifndef __SCAN_IO_UOS_H__ +#define __SCAN_IO_UOS_H__ + +#include "scan_io.h" + + + +/** + * @brief 3D scan loader for UOS scans + * + * The compiled class is available as shared object file + */ +class ScanIO_uos : public ScanIO { +public: + virtual std::list readDirectory(const char* dir_path, unsigned int start, unsigned int end); + virtual void readPose(const char* dir_path, const char* identifier, double* pose); + virtual void readScan(const char* dir_path, const char* identifier, PointFilter&& filter, std::vector* xyz, std::vector* rgb, std::vector* reflectance, std::vector* amplitude, std::vector* type, std::vector* deviation); + virtual bool supports(IODataType type); +}; + +#endif diff --git a/.svn/pristine/94/94e3ef8254fc325c698f0279ff4d9ed2d5526339.svn-base b/.svn/pristine/94/94e3ef8254fc325c698f0279ff4d9ed2d5526339.svn-base new file mode 100644 index 0000000..144fc13 --- /dev/null +++ b/.svn/pristine/94/94e3ef8254fc325c698f0279ff4d9ed2d5526339.svn-base @@ -0,0 +1,219 @@ +/** + * @file + * @brief Implementation of reading 3D scans + * @author Andreas Nuechter. Jacobs University Bremen gGmbH + * @author Jan Elseberg. Smart Systems Group, Jacobs University Bremen gGmbH, Germany. + */ + +#include "slam6d/scan_io_rxp.h" +#include "riegl/scanlib.hpp" +#include "slam6d/globals.icc" +#include +using std::ifstream; +#include +using std::cerr; +using std::endl; + +#include +using std::swap; + +#ifdef _MSC_VER +#include +#endif + +using namespace scanlib; +using namespace std; +using namespace std::tr1; + +/** + * Reads specified scans from given directory in + * the file format Riegl Laser Measurement GmbH + * uses. It will be compiled as shared lib. + * + * Scan poses will NOT be initialized after a call + * to this function. Initial pose estimation works + * only with the -p switch, i.e., trusting the initial + * estimations by Riegl. + * + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param dir The directory from which to read + * @param maxDist Reads only Points up to this Distance + * @param minDist Reads only Points from this Distance + * @param euler Initital pose estimates (will not be applied to the points + * @param ptss Vector containing the read points + */ +int ScanIO_rxp::readScans(int start, int end, string &dir, int maxDist, int minDist, + double *euler, vector &ptss) +{ + static int fileCounter = start; + string scanFileName; + string poseFileName; + + ifstream pose_in; + + if (end > -1 && fileCounter > end) return -1; // 'nuf read + + string rxp = ".rxp"; + if (dir.rfind(rxp) == dir.length() - rxp.length() - 1) { // dir is a .rxp file + string shortdir = dir; + shortdir.erase(shortdir.length() -1); // erase last character + if (!dec) { + rc = basic_rconnection::create(shortdir); + rc->open(); + + // decoder splits the binary file into readable chunks + dec = new decoder_rxpmarker(rc); + // importer interprets the chunks + imp = new importer(&ptss, maxDist, minDist, start); + } + + buffer buf; + + // skip the first scans + if (imp->getCurrentScan() < start ) { + for ( dec->get(buf); !dec->eoi(); dec->get(buf) ) { + imp->dispatch(buf.begin(), buf.end()); + if (imp->getCurrentScan() >= start) break; + } + } + if (dec->eoi()) return -1; + int cscan = imp->getCurrentScan(); + // iterate over chunks, until the next scan is reached + for ( dec->get(buf); !dec->eoi() ; dec->get(buf) ) { + imp->dispatch(buf.begin(), buf.end()); + if (imp->getCurrentScan() != cscan) break; + } + + for (unsigned int i = 0; i < 6; euler[i++] = 0.0); + //done + } else { + + poseFileName = dir + "scan" + to_string(fileCounter,3) + ".pose"; + scanFileName = "file://" + dir + "scan" + to_string(fileCounter,3) + ".rxp"; + + pose_in.open(poseFileName.c_str()); + // read 3D scan + + if (!pose_in.good()) return -1; // no more files in the directory + if (!pose_in.good()) { cerr << "ERROR: Missing file " << poseFileName << endl; exit(1); } + cout << "Processing Scan " << scanFileName; + cout.flush(); + + for (unsigned int i = 0; i < 6; pose_in >> euler[i++]); + + cout << " @ pose (" << euler[0] << "," << euler[1] << "," << euler[2] + << "," << euler[3] << "," << euler[4] << "," << euler[5] << ")" << endl; + + // convert angles from deg to rad + for (unsigned int i = 3; i <= 5; i++) euler[i] = rad(euler[i]); + pose_in.close(); + pose_in.clear(); + + + // open scanfile + rc = basic_rconnection::create(scanFileName); + rc->open(); + + // decoder splits the binary file into readable chunks + dec = new decoder_rxpmarker(rc); + // importer interprets the chunks + imp = new importer(&ptss, maxDist, minDist); + + // iterate over chunks + buffer buf; + for ( dec->get(buf); !dec->eoi(); dec->get(buf) ) { + imp->dispatch(buf.begin(), buf.end()); + } + + //done + rc->close(); + + } + + + fileCounter++; + + return fileCounter-1; +} + +void importer::on_echo_transformed(echo_type echo) +{ + if (currentscan < start) return; + // targets is a member std::vector that contains all + // echoes seen so far, i.e. the current echo is always + // indexed by target_count-1. + target& t(targets[target_count - 1]); + + // target.reflectance + // target.amplitude + // target.deviation + // target.time + // target.vertex point coordinates + // + + Point p; + + p.x = t.vertex[1]*-100.0; + p.y = t.vertex[2]*100.0; + p.z = t.vertex[0]*100.0; + + p.reflectance = t.reflectance; + p.amplitude = t.amplitude; + p.deviation = t.deviation; + + + if ( pointcloud::first == echo ) { + p.type = 0; + } else if ( pointcloud::interior == echo ) { + p.type = 1; + } else if ( pointcloud::last == echo ) { + p.type = 10; + } else if ( pointcloud::single == echo ){ + p.type = 9; + } + if(maxD == -1 || sqr(p.x) + sqr(p.y) + sqr(p.z) < maxD*maxD) { + if(minD == -1 || sqr(p.x) + sqr(p.y) + sqr(p.z) > minD*minD) { + { + if((sqr(p.x) + sqr(p.y) + sqr(p.z)) > 0.1)o->push_back(p); + } + } + } +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_rxp; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/.svn/pristine/95/950132edca548379461a4a18da6ee8f480c97f89.svn-base b/.svn/pristine/95/950132edca548379461a4a18da6ee8f480c97f89.svn-base new file mode 100644 index 0000000..93d58ff --- /dev/null +++ b/.svn/pristine/95/950132edca548379461a4a18da6ee8f480c97f89.svn-base @@ -0,0 +1,540 @@ +\documentclass[12pt,dvips]{article} + +\usepackage[T1]{fontenc} +\usepackage[isolatin]{inputenc} +\usepackage{a4} +\usepackage{url} +\usepackage{afterpage} +\usepackage{latexsym} +\usepackage{graphicx} +\usepackage{longtable} +\usepackage{amsmath} +\usepackage[rflt]{floatflt} +\usepackage{fancybox} +\usepackage{bbm} +\usepackage{cite} +\usepackage{picins} + +\usepackage[dvips]{epsfig} + +\parindent0mm +\parskip5pt plus1pt minus2pt +\textwidth16cm +\textheight22cm +\topmargin-1cm +\oddsidemargin0cm + +\renewcommand\floatpagefraction{1.0} +\renewcommand\topfraction{1.0} +\renewcommand\bottomfraction{1.0} +\renewcommand\textfraction{0.0} +\def\dbltopfraction{1.0} +\def\bottomfraction{1.0} +\def\dblfloatpagefraction{1.0} + + +\setcounter{secnumdepth}{5} +%% \setcounter{section}{-1} + +\newcommand{\OO}{{\cal O}} +\newcommand{\bc}{\begin{center}} +\newcommand{\ec}{\end{center}} + +\newcommand{\VNull}{\mathbf{0}} +%\newcommand{\transp}{^{\textsf{T}}} +\newcommand{\transp}{^T} +\renewcommand{\phi}{\varphi} +\newcommand{\verf}[1]{\textsf{#1}} +\renewcommand{\v}[1]{\text{\boldmath $#1$}} +\newcommand{\V}[1]{\text{\boldmath $#1$}} +\newcommand{\m}[1]{\v{#1}} % Format "Matrix" +\newcommand{\M}[1]{\v{#1}} % Format "Matrix" +\newcommand{\sR}{\ensuremath{{\cal R}}} % Referenz-Scan +\newcommand{\sS}{\ensuremath{{\cal S}}} % aktueller Scan +\renewcommand{\O}{{\cal O}} +\newcommand{\norm}[1]{\left | \left | #1 \right | \right |} + +\newcommand{\Vector}[2]{\begin{pmatrix} #1 \\ #2 \end{pmatrix}} +\newcommand{\VEctor}[3]{\begin{pmatrix} #1 \\ #2 \\ #3 \end{pmatrix}} +\newcommand{\hist}[1]{{\cal #1}} +\newcommand{\trace}[1]{\mbox{tr}\left( #1 \right)} + +\newcommand{\rVEctor}[3]{ +\left(\!\!\!\begin{array}{l} +#1 \\ #2 \\ #3 +\end{array}\!\!\right)} +\newenvironment{rmatrix} +{\left(\!\!\!\begin{array}{rr}} +{\end{array}\!\!\right)} +\newenvironment{Rmatrix} +{\left(\!\!\!\begin{array}{rrr}} +{\end{array}\!\!\right)} +\newcommand{\filter}[3]{\ensuremath{\bigl[\,#1,\;#2,\;#3\,\bigr]}} +\newcommand{\R}{\mathbbm{R}} +\newcommand{\N}{\mathbbm{N}} +%\newcommand{\R}{\mathbb{R}} +%\newcommand{\N}{\mathbb{N}} +\newcommand{\grad}{\ensuremath{^{\circ}}} +\newcommand{\textmenge}[2]{\{\, #1 \,| \; #2 \}} +\newcommand{\menge}[2]{\left\{\, #1 \,\left| \; #2 \right.\right\} } +\newcommand{\Menge}[2]{\bigl\{\, #1 \,| \; #2 \bigr\} } +\newcommand{\fueralle}[2]{\forall \, #1\!: \; #2} +\newcommand{\esgibt}[2]{\exists \, #1\!: \; #2} +\newcommand{\Widehat}[1]{\widehat{#1\hspace{+.5ex}}\hspace{-.5ex}} +\newcommand{\textSF}[1]{\textsf{\small #1}} +\newcommand{\textSFsmall}[1]{\textsf{\scriptsize #1}} +\newcommand{\verfSmall}[1]{\textSFsmall{#1}} +\newcommand{\eps}{{\epsilon}} +\renewcommand{\epsilon}{\varepsilon} +\newcommand{\vR}{v_{\text{set}}} +\newcommand{\oR}{\omega_{\text{set}}} +\newcommand{\ATAN}{\text{atan2}} + +%\renewcommand{\familydefault}{\sfdefault} + +%%---------------------------------------------------------------- +%%---------------------------------------------------------------- + +\begin{document} + +{ +\title{\vspace*{-5mm} +\bf 6D SLAM -- \\%[.5cm] +Simultaneous 6 D.O.F. Localization \\and 3D Mapping\\%[1cm] +} +\author{ +\scalebox{.65}{\includegraphics{unilogo.eps}}\\[3ex] +Andreas N\"uchter, Kai Lingemann, Joachim Hertzberg\\ +Department of Mathematics/Computer Science\\ +Institute of Computer Science\\ +Knowledge-Based Systems Research Group\\ +University of Osnabr\"uck\\ +{\small \texttt{http://www.informatik.uni-osnabrueck.de/kbs/}} +} + +\maketitle +\thispagestyle{empty} + +\vspace*{-12mm} + +\begin{center} +\includegraphics[height=50mm]{stylish_scanner} +\end{center} + +\vspace*{1mm} + +\begin{center} +\textbf{Documentation} +\end{center} + +\begin{quote} +This document describes the algorithms for 6D SLAM -- +Simultaneous 6 D.O.F. Localization and 3D Mapping system. 6D SLAM +with mobile robots considers six dimensions for the robot pose, +namely the $x$, $y$ and $z$ coordinates and the roll, yaw and +pitch angles. Robot motion and localization on natural surfaces, +e.g., driving with a mobile robot outdoor, must necessarily +regard these degrees of freedom. +\end{quote} + +\newpage +\setcounter{page}{1} + +\section{Range Image Registration and Robot Relocalization} + +Multiple 3D scans are necessary to digitalize environments +without occlusions. To create a correct and consistent model, the +scans have to be merged into one coordinate system. This process +is called registration. If robot carrying the 3D scanner were +precisely localized, the registration could be done directly +based on the robot pose. However, due to the unprecise robot +sensors, self localization is erroneous, so the geometric +structure of overlapping 3D scans has to be considered for +registration. + +The following method for registration of point sets is part of +many publications, so only a short summary is given here. The +complete algorithm was invented in 1992 and can be found, e.g., +in \cite{Besl_1992}. The method is called \emph{Iterative Closest +Points (ICP) algorithm}. + +Given two independently acquired sets of 3D points, $M$ (model +set, $|M| = N_m$) and $D$ (data set, $|D| = N_d$) which +correspond to a single shape, we aim to find the transformation +consisting of a rotation $\M R$ and a translation $\V t$ which +minimizes the following cost function: +\begin{equation}\label{DMin} +E(\M R, \V t) = +\sum_{i=1}^{N_m}\sum_{j=1}^{N_d}w_{i,j}\norm{\V m_{i}-(\M R +\V d_j+\V t)}^2. +\end{equation} +$w_{i,j}$ is assigned 1 if the $i$-th point of $M$ describes the +same point in space as the $j$-th point of $D$. Otherwise +$w_{i,j}$ is 0. Two things have to be calculated: First, the +corresponding points, and second, the transformation ($\M R$, +$\V t$) that minimize $E(\M R, \V t)$ on the base of the +corresponding points. + +The ICP algorithm calculates iteratively the point +correspondences. In each iteration step, the algorithm selects +the closest points as correspondences and calculates the +transformation ($\M R, \V t$) for minimizing equation +(\ref{DMin}). The assumption is that in the last iteration step +the point correspondences are correct. Besl et al. prove that +the method terminates in a minimum \cite{Besl_1992}. However, +this theorem does not hold in our case, since we use a maximum +tolerable distance $d_\text{max}$ for associating the scan +data. Such a threshold is required, given that the 3D scans +overlap only partially. Fig. \ref{samplematch} (top) shows three +frames, i.e., iteration steps, of the ICP algorithm. The bottom +part shows the start poses $(x,z,\theta_y)$ from which a correct +matching is possible, here with only three degrees of freedom. + +\begin{figure*} +\begin{center} +\includegraphics[width=50mm]{frame1_final}~~ +\includegraphics[width=50mm]{frame2_final}~~ +\includegraphics[width=50mm]{frame3_final} \\[1.5ex] +\caption{{Left: Initial odometry based pose of two 3D + scans. Middle: Pose after five ICP iterations. Right: final + alignment, pairwise matching. +\vspace*{-6mm} +}}\label{samplematch} +\end{center} +\end{figure*} + + +\subsection{Calculation of the rotation and translation} + +In every iteration the optimal tranformation ($\M R$, $\V t$) +has to be computed. Eq. (\ref{DMin}) can be reduced to +\begin{eqnarray} +E(\M R, \V t) & \propto & \frac{1}{N} \sum_{i=1}^N +\norm{\V m_i - (\M R \V d_i + \V t)}^2,\label{DualDMin} +\end{eqnarray} +with $N = \sum_{i=1}^{N_m}\sum_{j=1}^{N_d}w_{i,j}$, since the +correspondence matix can be represented by a vector containing +the point pairs. + +Four methods are known to minimize eq. (\ref{DualDMin}) +\cite{Lorusso_1995}. The 6D SLAM system uses the following one, +based on singular value decomposition (SVD), is robust and easy +to implement, thus we give a brief overview of the SVD-based +algorithms. It was first published by Arun, Huang and Blostein +\cite{Arun_1987}. The difficulty of this minimization problem is +to enforce the orthonormality of matrix $\M R$. The first step of +the computation is to decouple the calculation of the rotation +$\M R$ from the translation $\V t$ using the centroids of the +points belonging to the matching, i.e., +\begin{eqnarray} +\V c_m = \frac{1}{N} \sum_{i=1}^{N} \V m_{i}, \qquad \qquad \V c_d = \frac{1}{N} +\sum_{i=1}^{N} \V d_{j}\label{schwerpunkt2} +\end{eqnarray} +and +\begin{eqnarray} +M' &=& \{ \V m'_{i} = \V m_{i} - \V c_{m} \}_{1,\ldots,N}, \label{d_neu1}\\ +\qquad +D' &=& \{ \V d'_{i}\ = \V d_{i}\, - \V c_{d} \}_{1,\ldots,N}\label{d_neu2}. +\end{eqnarray} + + +After replacing (\ref{schwerpunkt2}), (\ref{d_neu1}) and +(\ref{d_neu2}) in the error function, $E(\M R,\V t)$ +eq. (\ref{DualDMin}) becomes: +\begin{subequations} +\begin{eqnarray} +E(\M R, \V t) +\!\!\!\!\!&\propto&\!\!\!\!\! \frac{1}{N} \sum_{i=1}^{N} +\lvert\lvert{\V m'_{i}-\M R \V d'_i-\underbrace{(\V t-\V c_m+\M R + \V c_d)}_{= \tilde {\V t}}\lvert\lvert}^2 +\nonumber \\ +&=&\!\!\!\!\! \frac{1}{N}\sum_{i=1}^{N}\norm{\V m'_{i}-\M R \V d'_i}^2 +\label{DMinpart1} \\ +&&- \frac{2}{N} \tilde {\V t} \cdot \sum_{i=1}^{N} \left( \V +m'_{i}-\M R \V d'_i \right) \label{DMinpart2} \\ +&&+ \frac{1}{N} +\sum_{i=1}^{N}\norm{\tilde {\V +t}}^2. \label{DMinpart3}\label{fehlerneu} +\end{eqnarray} +\end{subequations} +In order to minimize the sum above, all terms have to be +minimized. The second sum (\ref{DMinpart2}) is zero, since all +values refer to centroid. The third part (\ref{DMinpart3}) has +its minimum for $\tilde {\V t} = \VNull$ or +\begin{eqnarray}\label{translatB} + \V t = \V c_m - \M R \V c_d. +\end{eqnarray} +Therefore the algorithm has to minimize only the first +term, and the error function is expressed in terms of the +rotation only: +\begin{eqnarray}\label{DMinn} +E(\M R, \V t) \propto +\sum_{i=1}^{N}\norm{\V m'_{i}-\M R \V d'_i}^2. +\end{eqnarray} + +\noindent \textit{Theorem:} The optimal rotation is calculated +by $\M R = \M V \M U^T$. Herby the matrices $\M V$ and $\M U$ are +derived by the singular value decomposition $\M H = \M U \M +\Lambda \M V^T$ of a correlation matrix $\M H$. This $3 \times 3$ matrix +$\M H$ is given by +\begin{eqnarray} +\M H = \sum_{i=1}^{N} \V m'^T_i \V d'_i + = \left( +\begin{array}{ccc} +S_{xx} & S_{xy} & S_{xz} \\ +S_{yx} & S_{yy} & S_{yz} \\ +S_{zx} & S_{zy} & S_{zz} \\ +\end{array} +\right), \label{Korrelationsmatrix} +\end{eqnarray} +with $S_{xx} = \sum_{i=1}^{N} \ m'_{ix} d'_{ix}, \ S_{xy} = +\sum_{i=1}^{N} \ m'_{ix} d'_{iy}, \ \ldots \, $. The analogous +algorithm is derived directly from this theorem. +\medskip + + +\textit{Proof:} Since rotation is length preserving, i.e., +$\lvert\lvert\M R\V d'_i\lvert\lvert^2 = \lvert\lvert \V +d'_i\lvert \lvert^2$ the error function (\ref{DMinn}) is expanded +\begin{eqnarray*} +E(\M R, \V t) \propto +\sum_{i=1}^{N}\norm{\V m'_i}^2 +- 2 \sum_{i=1}^{N} \V m'_{i} \cdot \M R +\V d'_i ++ \sum_{i=1}^{N} \norm{\V d'_i}^2. +\end{eqnarray*} +The rotation affects only the middle term, thus it is sufficient +to maximize +\begin{eqnarray}\label{max} +\sum_{i=1}^{N} \V m'_{i} \cdot \M R \V +d'_i +& = & +\sum_{i=1}^{N} \V {m'_{i}}^T \M R \V +d'_i. +\end{eqnarray} +Using the trace of a matrix, (\ref{max}) can be rewritten to +obtain +\begin{eqnarray*} +\trace{\sum_{i=1}^{N} \M R \V d'_i \V {m'_{i}}^T } = +\trace{\M R \M H}, +\end{eqnarray*} +With $\M H$ defined as in (\ref{Korrelationsmatrix}). Now we have +to find the matrix $\M R$ that maximizes $\trace{\M R \M H}$. + +Assume that the singular value decomposition of $\M H$ is +\begin{eqnarray*} + \M H = \M U \M \Lambda \M V^T, +\end{eqnarray*} +with $\M U$ and $\M V$ orthonormal $3 \times 3$ matrices and $\M +\Lambda$ a $3 \times 3$ diagonal matrix without negative +elements. Suppose +\begin{eqnarray*} +\M R = \M V \M U^T. +\end{eqnarray*} +$\M R$ is orthonormal and +\begin{eqnarray*} +\M R \M H & = & \M V \M U^T \M U \M \Lambda \M V^T \\ +& = & \M V \M \Lambda \M V^T +\end{eqnarray*} +is a symmetric, positive definite matrix. Arun, Huang and +Blostein provide a lemma to show that +\begin{eqnarray*} +\trace{\M R \M H} \geq \trace{\M B \M R \M H} +\end{eqnarray*} +for any orthonormal matrix $\M B$. Therefore the matrix $\M R$ is +optimal. Prooving the lemma is straightforward using the +Cauchy-Schwarz \cite{Arun_1987}. Finally, the +optimal translation is calculated as (cf. eq. (\ref{DMinpart3}) +and (\ref{translatB})) +\begin{eqnarray*} +\V t = \V c_m - \M R \V c_d. +\end{eqnarray*} + + +\section{ICP-based 6D SLAM} + +To match two 3D scans with the ICP algorithm it is necessary to +have a sufficient starting guess for the second scan pose. + +\begin{itemize} +\item + Extrapolate the odometry readings to all six degrees of freedom + using previous registration matrices. The change of the robot + pose $\Delta \M P$ given the odometry information + $(x_n,z_n,\theta_{y,n})$, $(x_{n+1},z_{n+1},\theta_{y,n+1})$ + and the registration matrix $\M R({\theta_{x,{n}}}, + {\theta_{y,{n}}}, {\theta_{z,{n}}})$ is calculated by solving: + +\begin{small} +\begin{eqnarray} +\left( +\begin{array}{c} +x_{n+1} \\ +y_{n+1} \\ +z_{n+1} \\ +{\theta_{x,{n+1}}} \\ +{\theta_{y,{n+1}}} \\ +{\theta_{z,{n+1}}} \\ +\end{array} +\right) += +\left( +\begin{array}{c} +x_{n} \\ +y_{n} \\ +z_{n} \\ +{\theta_{x,{n}}} \\ +{\theta_{y,{n}}} \\ +{\theta_{z,{n}}} \\ +\end{array} +\right) ++ +\left( +\begin{array}{ccc|ccc} + & & & & & \\ + & \M R({\theta_{x,{n}}},{\theta_{y,{n}}}, {\theta_{z,{n}}}) & & & \M 0 & +\\ + & & & & & \\ +\hline + & & & 1 & 0 & 0 \\ + & \M 0 & & 0 & 1 & 0 \\ + & & & 0 & 0 & 1 \\ +\end{array} +\right) +\cdot +\underbrace{\left( +\begin{array}{c} +\Delta x_{n+1} \\ +\Delta y_{n+1} \\ +\Delta z_{n+1} \\ +\Delta {\theta_{x,{n+1}}} \\ +\Delta {\theta_{y,{n+1}}} \\ +\Delta {\theta_{z,{n+1}}} \\ +\end{array} +\right).}_{\Delta \V P} \label{PosUpdate6D} +\label{extrapol} +\end{eqnarray} +\end{small} + +Therefore, calculating $\Delta \V P$ requires a matrix +inversion. Finally, the 6D pose $\M P_{n+1}$ is calculated by +\vspace*{-2mm} +\begin{small} +\begin{eqnarray*}\label{inital6DPose} +\M P_{n+1} = \Delta \M P \cdot \M P_{n} +\end{eqnarray*} +\end{small} +using the poses' matrix representations.\\[-1.5ex] + + +\end{itemize} + +\section{Variable Correspondences} + +\begin{tabular}{lll} +$(\M R, \V t)$ & \texttt{double alignxf[16]} & Transformation + Matrix \\ +$\V m_i$, $\V d_i$ & \texttt{class PtPair} & Point Pair\\ +$\V c_m$, $\V c_d$ & \texttt{double cm[3], cd[3]} & Centroids\\ +$\V m'_i$, $\V d'_i$ & \texttt{double** m, d} & Centered + Point Pairs\\ +$\M H$, $\M U$, $\M \Lambda$, $\M V$ & \texttt{Matrix} & SVD + Matrices\\ +$\M R$ & \texttt{double transMat[16]} & Pose as Matrix\\ +$(x_n, y_n, z_n)$ & \texttt{double rPos[3]} & Position of $n$-th 3D Scan\\ +$(\theta_{x,n}, \theta_{y,n}, \theta_{z,n})$ & \texttt{double + rPostheta[3]} & Rotation of $n$-th 3D Scan\\ +\end{tabular} + +\section{File Formats and Units} + +\begin{figure} +\begin{center} +\includegraphics[width=3.2cm]{coordinate_system_white} +\caption{Left handed coordinate system.}\label{coord} +\end{center} +\end{figure} +The coordinate system is left handed, with the $y$ axis pointing +upwards, and the depth axis $z$ (cf. Figure~\ref{coord}). Input +and output files are: + +\footnotetext[1]{stating + with \texttt{XXX} = 000, 001,\dots, until no more files are + found in the specified directory.} + +\begin{enumerate} +\item The 3D scan files (\texttt{scanXXX.3d})\footnotemark[1]\ + have to be of the following structure:\\ The first line + contains the scan's resolution (w x b), followed by lines of + data points (x, y, z). +% +\item The pose files (\texttt{scanXXX.pose})\footnotemark[1]\ associated with each + 3D scan contain information of the estimated pose of the + respective scan as given by, e.g., odometry. The first line + contains the 3 translatorial positions ($x$, $y$, $z$), the + second the rotations pitch, yaw and roll ($\theta_x$, + $\theta_y$, $\theta_z$ around the respective axis) in deg.\\ + Values that are not estimated by the robot (odometry) can be + set to 0 and are extrapolated as described by Eq.~\eqref{extrapol}. +% +\item The SLAM program generated files \texttt{scanXXX.frames}, + consisting of the transformations computed from the scan + matching. Each line contains a $4 \times 4$ OpenGL-style + matrix. The very last matrix is the final transformation for + registering the scan into the common coordinate system. + + The matrix is stored in the following format: + \begin{quote} + $(R[1,1], R[1,2], 0, R[1,3], 0, R[2,1], R[2,2], R[2,3], 0, + R[3,1], R[3,2], R[3,3], 0,$\\$t[1], t[2], t[3], 1),$ + \end{quote} + with $R[x,y]$ the $(x,y)$-th entry of the rotation matrix $\M R$, and + $t[x]$ the $x$-th translation component of $\V t$. +\end{enumerate} + +\section{Requirements} + +All executables can be compiled and used both with Linux and Windows. + +\begin{description} +\item[Linux:] The system was developed and tested under Linux 9.1 with + the g++ compiler version 3.3.3. As additional library, + \texttt{OpenGL} and \texttt{glut} have to be installed, which + should be included in your Linux distribution (tested with + freeglut 2.2.0-78).\\ + To compile, type in \texttt{make} in the main directory. The + executables are generated in the \texttt{./bin} directory. +\item[Windows:] + The system was tested with the C++ compiler from Microsoft Visual + Studio.NET 2005. + To compile, load the respective project file (\texttt{.sln}) + from the directory \texttt{.$\backslash$Visual\_Studio\_Projects$\backslash$}. + The executables are generated in the respective \texttt{Debug} + or \texttt{Release} directories, depending on your compiler settings.\\ + Precompiled versions can be found in the \texttt{./bin} + directory, too. If moving the executables, take care about the \texttt{glut} + directory as well. +\end{description} + +\section{Usage} + +For a detailed explanation about the programs' usage, just start +the respective binary. Both applcations can be configured by a +set of command line parameters, which are explained when starting +the program as mentioned above. + +Especially, take care of the reduction parameters +\texttt{-r}/\texttt{-R} of the SLAM system: Without using one of +those, the registration is being slowed down tremendously due to +taking \emph{all} data points as input. Other potentially +critical parameters are the maximal distance of points that may +form corresponding point pairs (matrix entries $w_{ij}$, +parameter \texttt{-d}), as well as the maximal range distance of +points used for scan matching or displaying (\texttt{-m}), +especially used for eliminating outliers (i.e., data points with +the maximal range distance of the range finder). + +\bibliographystyle{plain} +\bibliography{diss,paper,diplom} + +\end{document} \ No newline at end of file diff --git a/.svn/pristine/95/95a42869a0bfa2c811888ede4ee2040ab01d1633.svn-base b/.svn/pristine/95/95a42869a0bfa2c811888ede4ee2040ab01d1633.svn-base new file mode 100644 index 0000000..66ad156 --- /dev/null +++ b/.svn/pristine/95/95a42869a0bfa2c811888ede4ee2040ab01d1633.svn-base @@ -0,0 +1,92 @@ +/** + * @file Representation of the Accumulator Cube. + * + * This file contains the functions necessary to perform the transformations + * between normal vectors and cube coordinates. The representation is taken + * from + * A. Censi and S. Carpin, + * HSM3D: Feature-Less Global 6DOF Scan-Matching in the Hough/Radon Domain, + * In Proceedings of the IEEE International Conference on Robotics and + * Automation, 2009. + * + * The code in this file is a modified version of the code given by the authors + * on http://purl.org/censi/2008/hsm3d + * + * We gratefully appreciate the work of the authors and thank them for making + * the code publically available. + * + * @author Dorit Borrmann. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +/* + + AUTORIGHTS + Copyright (c) 2008 The Regents of the University of California. + All Rights Reserved. + + Created by Stefano Carpin + University of California, Merced, Robotics Lab - School of Engineering + + Permission to use, copy, modify, and distribute this software and its + documentation for educational, research and non-profit purposes, without fee, + and without a written agreement is hereby granted, provided that the above + copyright notice, this paragraph and the following three paragraphs appear in + all copies. + + This software program and documentation are copyrighted by The Regents of the + University of California. The software program and documentation are supplied + "as is", without any accompanying services from The Regents. The Regents does + not warrant that the operation of the program will be uninterrupted or + error-free. The end-user understands that the program was developed for + research purposes and is advised not to rely exclusively on the program for + any reason. + + IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR + DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING + LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, + EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY + WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED + HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO + OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR + MODIFICATIONS. + + */ + +#ifndef __HSM3D_H__ +#define __HSM3D_H__ +#include +/*! + \brief A point on the face of the cube with edge size 2 + and centered in 0,0,0 + */ +struct cube_point { + /*! Face of the cube. Must be between 1 and 6 */ + unsigned short int face; + /*! First coordinate on the face. Must be between -1 and 1*/ + double u; + /*! Second coordinate on the face. Must be between -1 and 1*/ + double v; +}; + +/*! + \brief Buffer representing a discretization of cube_point elements + as patches on faces + + Discretizes the the cube centered with edge size 2 + and centered in 0,0,0 using the same number of patches on each face. + Resolution is not stored in the class. + */ +struct buffer_point { + /*! Face of the cube. Must be between 1 and 6 */ + unsigned short int face; + /*! First patch index */ + unsigned int i; + /*! Second path index */ + unsigned int j; +}; + +bool real_compare(double x, double y); + +#endif diff --git a/.svn/pristine/95/95f00480dfb086c40ccc1f56d47927b7c9dbbc85.svn-base b/.svn/pristine/95/95f00480dfb086c40ccc1f56d47927b7c9dbbc85.svn-base new file mode 100644 index 0000000..340a647 --- /dev/null +++ b/.svn/pristine/95/95f00480dfb086c40ccc1f56d47927b7c9dbbc85.svn-base @@ -0,0 +1,63 @@ +/** + * @file + * @brief IO of a 3D scan + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SCAN_IO_H__ +#define __SCAN_IO_H__ + +#include +using std::string; +#include +using std::vector; + +#include "point.h" + +/** + * @brief IO of a 3D scan + * + * This class needs to be instantiated by a class loading + * 3D scans from different file formats. + */ +class ScanIO { +public: + /** + * Default constructor + */ + ScanIO() {} + /** + * Destructor + */ + virtual ~ScanIO() {} + + /** + * Reads specified scans from given directory. + * + * Scan poses will NOT be initialized after a call + * to this function. + * + * This function is pure virtual. The actual functions + * for loading a 3D scan are called scan_io_* + * + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param dir The directory from which to read + * @param maxDist Reads only Points up to this Distance + * @param minDist Reads only Points from this Distance + * @param euler Initital pose estimates (will not be applied to the points + * @param ptss Vector containing the read points + */ + virtual int readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss) = 0; +}; + +// Since the shared object files are loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/.svn/pristine/95/95f56c03058030b9a7493beaaee9c929909dc9cc.svn-base b/.svn/pristine/95/95f56c03058030b9a7493beaaee9c929909dc9cc.svn-base new file mode 100644 index 0000000..214d80c --- /dev/null +++ b/.svn/pristine/95/95f56c03058030b9a7493beaaee9c929909dc9cc.svn-base @@ -0,0 +1,624 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: spinctld.h +// Author: John Labenski +// Created: 11/05/02 +// Copyright: John Labenski, 2002 +// License: wxWidgets +///////////////////////////////////////////////////////////////////////////// + +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) + #pragma implementation "spinctld.h" +#endif + +// For compilers that support precompilation, includes "wx/wx.h". +#include "wx/wxprec.h" + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#ifndef WX_PRECOMP + #include "wx/valtext.h" // for wxTextValidator + #include "wx/textctrl.h" +#endif // WX_PRECOMP + +#include "wx/things/spinctld.h" +#include + +#if wxCHECK_VERSION(2,5,0) + #include "wx/math.h" +#else + #if defined(__VISUALC__) || defined(__BORLANDC__) || defined(__WATCOMC__) + #include + #define wxFinite(x) _finite(x) + #elif defined(__GNUG__)||defined(__GNUWIN32__)||defined(__DJGPP__)|| \ + defined(__SGI_CC__)||defined(__SUNCC__)||defined(__XLC__)|| \ + defined(__HPUX__)||defined(__MWERKS__) + #define wxFinite(x) finite(x) + #else + #define wxFinite(x) ((x) == (x)) + #endif +#endif // wxCHECK_VERSION(2,5,0) + +// NOTES : if the textctrl is focused and the program is ending, a killfocus +// event is sent in MSW, this is why m_textCtrl is set to NULL in it's +// destructor and there's so many checks for it not being NULL + +//---------------------------------------------------------------------------- +// wxSpinCtrlDbl +//---------------------------------------------------------------------------- + +// the textctrl used for the wxSpinCtrlDbl, needed for keypresses +class wxSpinCtrlDblTextCtrl : public wxTextCtrl +{ +public: + wxSpinCtrlDblTextCtrl( wxWindow *parent, wxWindowID id, + const wxString &value = wxEmptyString, + const wxPoint &pos = wxDefaultPosition, + const wxSize &size = wxDefaultSize, + long style = 0, + const wxValidator& validator = wxDefaultValidator, + const wxString &name = wxTextCtrlNameStr); + + // MSW sends extra kill focus event + virtual ~wxSpinCtrlDblTextCtrl() + { + if (m_parent) m_parent->m_textCtrl = NULL; + m_parent = NULL; + } + + wxSpinCtrlDbl *m_parent; + + void OnChar( wxKeyEvent &event ); // pass chars to wxSpinCtrlDbl + void OnKillFocus( wxFocusEvent &event ); // sync the spin to textctrl + +private: + DECLARE_EVENT_TABLE() +}; + +BEGIN_EVENT_TABLE(wxSpinCtrlDblTextCtrl,wxTextCtrl) +// EVT_TEXT_ENTER( wxID_ANY, wxSpinCtrlDblTextCtrl::OnTextEnter ) // get them from spinctrldbl +// EVT_TEXT( wxID_ANY, wxSpinCtrlDblTextCtrl::OnTextUpdate ) // get them from spinctrldbl + EVT_CHAR( wxSpinCtrlDblTextCtrl::OnChar ) + EVT_KILL_FOCUS( wxSpinCtrlDblTextCtrl::OnKillFocus ) +END_EVENT_TABLE() + +wxSpinCtrlDblTextCtrl::wxSpinCtrlDblTextCtrl( wxWindow *parent, wxWindowID id, + const wxString &value, + const wxPoint &pos, const wxSize &size, + long style, + const wxValidator& validator, + const wxString &name) + :wxTextCtrl( parent, id, value, pos, size, style, + validator, name) +{ + m_parent = (wxSpinCtrlDbl*)parent; +} + +void wxSpinCtrlDblTextCtrl::OnChar( wxKeyEvent &event ) +{ + if (m_parent) m_parent->OnChar( event ); +} + +void wxSpinCtrlDblTextCtrl::OnKillFocus( wxFocusEvent &event ) +{ + if (m_parent) m_parent->SyncSpinToText(true); + event.Skip(); +} + +//---------------------------------------------------------------------------- +// wxSpinCtrlDbl +//---------------------------------------------------------------------------- + +IMPLEMENT_DYNAMIC_CLASS( wxSpinCtrlDbl, wxControl ) + +BEGIN_EVENT_TABLE(wxSpinCtrlDbl,wxControl) + EVT_SPIN_UP ( wxID_ANY, wxSpinCtrlDbl::OnSpinUp ) + EVT_SPIN_DOWN ( wxID_ANY, wxSpinCtrlDbl::OnSpinDown ) + EVT_TEXT_ENTER( wxID_ANY, wxSpinCtrlDbl::OnTextEnter ) + //EVT_TEXT ( wxID_ANY, wxSpinCtrlDbl::OnText ) + EVT_SET_FOCUS ( wxSpinCtrlDbl::OnFocus ) + EVT_KILL_FOCUS( wxSpinCtrlDbl::OnKillFocus ) +END_EVENT_TABLE() + +void wxSpinCtrlDbl::Init() +{ + m_min = 0; + m_max = 100; + m_value = 0; + m_default_value = 0; + m_increment = 1; + m_digits = wxSPINCTRLDBL_AUTODIGITS; + m_snap_ticks = false; + m_spinButton = NULL; + m_textCtrl = NULL; +} + +bool wxSpinCtrlDbl::Create( wxWindow *parent, wxWindowID id, + const wxString& value, + const wxPoint& pos, const wxSize& size, + long style, + double min, double max, + double initial, + double increment, int digits, + const wxString& name) +{ + if (!wxControl::Create(parent, id, pos, size, style|wxNO_BORDER, + wxDefaultValidator, name)) + return false; + + wxControl::SetLabel(name); + wxControl::SetBackgroundColour(parent->GetBackgroundColour()); + wxControl::SetForegroundColour(parent->GetForegroundColour()); + + int width = size.GetWidth(), height = size.GetHeight(); + + wxSize best_size( DoGetBestSize() ); + if (width == -1) width = best_size.GetWidth(); + if (height == -1) height = best_size.GetHeight(); + + // Create a validator for numbers, +-, and eE for exponential + wxTextValidator validator(wxFILTER_INCLUDE_CHAR_LIST); + +#if wxCHECK_VERSION(2, 5, 4) + wxArrayString list; + + wxString valid_chars(wxT(" 0123456789+-.eE")); + size_t len = valid_chars.Length(); + for (size_t i=0; iGetSize().GetWidth(), height), + wxTE_NOHIDESEL|wxTE_PROCESS_ENTER, validator); + + DoSetSize( pos.x, pos.y, width, height ); + SetBestSize(wxSize(width, height)); + + m_min = min; + m_max = max; + m_value = initial; + m_default_value = initial; + m_increment = increment; + SetDigits( digits ); + + // set the value here without generating an event + if (!value.IsEmpty()) + m_textCtrl->SetValue(value); + else + m_textCtrl->SetValue(wxString::Format(m_textFormat.c_str(), initial)); + + return true; +} + +wxSpinCtrlDbl::~wxSpinCtrlDbl() +{ + if (m_textCtrl) // null this since MSW sends KILL_FOCUS on deletion + { + m_textCtrl->m_parent = NULL; + + wxSpinCtrlDblTextCtrl *text = m_textCtrl; + m_textCtrl = NULL; + delete text; + } + + delete m_spinButton; + m_spinButton = NULL; +} + +#define wxSPINCTRLDBL_SPIN_WIDTH 15 +#define wxSPINCTRLDBL_SPIN_HEIGHT 22 + +void wxSpinCtrlDbl::DoSetSize(int x, int y, int width, int height, int sizeFlags) +{ + //wxPrintf(wxT("DoSetSize %d, %d %d %d %d %d\n"), GetId(), x, y, width, height, sizeFlags); + + wxSize bestSize( DoGetBestSize() ); + if (width < 0) width = bestSize.GetWidth(); + if (height < 0) height = bestSize.GetHeight(); + + wxWindow::DoSetSize(x, y, width, height, sizeFlags); + + int spinwidth = wxSPINCTRLDBL_SPIN_WIDTH; + int spinheight = wxSPINCTRLDBL_SPIN_HEIGHT; + if (m_spinButton) + m_spinButton->GetSize( &spinwidth, &spinheight ); + +#ifdef __WIN95__ // humm... these used to be different + if (m_textCtrl) m_textCtrl->SetSize( 0, 0, width - spinwidth, height ); + if (m_spinButton) m_spinButton->SetSize( width-spinwidth-2, 0, -1, height ); + //m_textCtrl->SetSize( -3, -3, width - spinwidth, height ); // old wxWin < 2.3.2 + //m_spinButton->SetSize( width-spinwidth-4, -3, -1, height-1 ); +#else + if (m_textCtrl) m_textCtrl->SetSize( 0, 0, width - spinwidth, height ); + if (m_spinButton) m_spinButton->SetSize( width-spinwidth, 0, -1, height ); +#endif +} + +static wxSize s_spinctrl_bestSize(-999,-999); + +wxSize wxSpinCtrlDbl::DoGetBestSize() const +{ + //wxPrintf(wxT("GetBestSize %d\n"), GetId()); + if (s_spinctrl_bestSize.x == -999) + { + wxSpinCtrl spin((wxWindow*)this, wxID_ANY); + s_spinctrl_bestSize = spin.GetBestSize(); + // oops something went wrong, set to reasonable value + if (s_spinctrl_bestSize.GetWidth() < 20) + s_spinctrl_bestSize.SetWidth(95); + if (s_spinctrl_bestSize.GetHeight() < 10) + s_spinctrl_bestSize.SetHeight(wxSPINCTRLDBL_SPIN_HEIGHT); + } + + return s_spinctrl_bestSize; +} + +void wxSpinCtrlDbl::DoSendEvent() +{ + wxCommandEvent event( wxEVT_COMMAND_SPINCTRL_UPDATED, GetId() ); + event.SetEventObject( this ); + event.SetInt( (int)(m_value+0.5) ); + if (m_textCtrl) event.SetString( m_textCtrl->GetValue() ); + GetEventHandler()->ProcessEvent( event ); +} + +void wxSpinCtrlDbl::OnSpinUp( wxSpinEvent &WXUNUSED(event) ) +{ + if (m_textCtrl && m_textCtrl->IsModified() ) + SyncSpinToText(false); + + if ( InRange(m_value + m_increment) ) + { + m_value += m_increment; + SetValue( m_value ); + DoSendEvent(); + } +} + +void wxSpinCtrlDbl::OnSpinDown( wxSpinEvent &WXUNUSED(event) ) +{ + if (m_textCtrl && m_textCtrl->IsModified() ) + SyncSpinToText(false); + + if ( InRange(m_value - m_increment) ) + { + m_value -= m_increment; + SetValue( m_value ); + DoSendEvent(); + } +} + +void wxSpinCtrlDbl::OnTextEnter( wxCommandEvent &event ) +{ + SyncSpinToText(true); + event.Skip(); +} + +void wxSpinCtrlDbl::OnText( wxCommandEvent &event ) +{ + //wxPrintf(wxT("Text '%s'\n"), event.GetString()); fflush(stdout); + event.Skip(); +} + +void wxSpinCtrlDbl::OnChar( wxKeyEvent &event ) +{ + double modifier = 1.0; + if ( event.m_shiftDown ) modifier = 2.0; + if ( event.m_controlDown ) modifier *= 10.0; + if ( event.m_altDown ) modifier *= 100.0; + + switch ( event.GetKeyCode() ) + { + case WXK_UP : + { + if (m_textCtrl && m_textCtrl->IsModified()) SyncSpinToText(false); + SetValue( m_value + m_increment * modifier ); + DoSendEvent(); + break; + } + case WXK_DOWN : + { + if (m_textCtrl && m_textCtrl->IsModified()) SyncSpinToText(false); + SetValue( m_value - m_increment * modifier ); + DoSendEvent(); + break; + } + case WXK_PRIOR : // pg-up + { + if (m_textCtrl && m_textCtrl->IsModified()) SyncSpinToText(false); + SetValue( m_value + m_increment * 10.0 * modifier ); + DoSendEvent(); + break; + } + case WXK_NEXT : // pg-down + { + if (m_textCtrl && m_textCtrl->IsModified()) SyncSpinToText(false); + SetValue( m_value - m_increment * 10.0 * modifier ); + DoSendEvent(); + break; + } + case WXK_SPACE : + { + SetValue(m_value); + event.Skip(false); + break; + } + case WXK_ESCAPE : + { + SetDefaultValue(); + DoSendEvent(); + break; + } + case WXK_TAB : + { + wxNavigationKeyEvent new_event; + new_event.SetEventObject( GetParent() ); + new_event.SetDirection( !event.ShiftDown() ); + // CTRL-TAB changes the (parent) window, i.e. switch notebook page + new_event.SetWindowChange( event.ControlDown() ); + new_event.SetCurrentFocus( this ); + GetParent()->GetEventHandler()->ProcessEvent( new_event ); + break; + } + default : event.Skip(); break; + } +} + +void wxSpinCtrlDbl::SetValue( double value ) +{ + if (!m_textCtrl || !InRange(value)) + return; + + if ( m_snap_ticks && (m_increment != 0) ) + { + double snap_value = (value - m_default_value) / m_increment; + + if (wxFinite(snap_value)) // FIXME what to do about a failure? + { + if (snap_value - floor(snap_value) < ceil(snap_value) - snap_value) + value = m_default_value + floor(snap_value) * m_increment; + else + value = m_default_value + ceil(snap_value) * m_increment; + } + } + + wxString str(wxString::Format(m_textFormat.c_str(), value)); + + if ((value != m_value) || (str != m_textCtrl->GetValue())) + { + m_textCtrl->SetValue( str ); + m_textCtrl->DiscardEdits(); + m_value = value; + str.ToDouble( &m_value ); // wysiwyg for textctrl + } +} + +void wxSpinCtrlDbl::SetValue( const wxString& text, bool force ) +{ + if (!m_textCtrl) return; + + double value; + if ( text.ToDouble(&value) ) + SetValue( value ); + else if (force) + { + m_textCtrl->SetValue( text ); + m_textCtrl->DiscardEdits(); + } +} + +void wxSpinCtrlDbl::SetRange( double min_val, double max_val ) +{ + //wxCHECK_RET(max_val > min_val, wxT("invalid spinctrl range")); + m_min = min_val; + m_max = max_val; + + if (HasRange()) + { + if (m_value > m_max) + SetValue(m_max); + else if (m_value < m_min) + SetValue(m_min); + } +} + +void wxSpinCtrlDbl::SetIncrement( double increment ) +{ + m_increment = increment; + SetValue(m_value); +} + +void wxSpinCtrlDbl::SetDigits( int digits, formatType fmt ) +{ + wxCHECK_RET(digits >= -1, wxT("invalid spinctrl format")); + + if ((digits == wxSPINCTRLDBL_AUTODIGITS) && (fmt != lg_fmt)) + { + wxString wxstr; + int lastplace = -1, extra_digits = 0; + if (fmt == le_fmt) + { + wxstr.Printf(wxT("%le"), m_increment ); + wxstr.LowerCase(); + lastplace = wxstr.Find(wxT('e')) - 2; + long places; + if (wxstr.AfterFirst(wxT('e')).ToLong(&places)) + extra_digits = int(labs(places)); + } + else if (fmt == lf_fmt) + { + wxstr.Printf(wxT("%lf"), m_increment ); + lastplace = wxstr.Len()-1; + } + + int decimalplace = wxstr.Find(wxT('.')); + + int i = 0; + + for ( i=lastplace; i>decimalplace; i-- ) + { + if ( wxstr.GetChar(i) != wxT('0') ) + { + m_digits = extra_digits + i-decimalplace; + switch (fmt) + { + case le_fmt : m_textFormat.Printf(wxT("%%.%dle"), m_digits ); break; + case lf_fmt : + default : m_textFormat.Printf(wxT("%%.%dlg"), m_digits ); break; + } + + SetValue(m_value); + return; + } + } + + m_digits = 0; // no digits, I guess + } + else + m_digits = digits; + + switch (fmt) + { + case le_fmt : m_textFormat.Printf(wxT("%%.%dle"), m_digits ); break; + case lg_fmt : + { + if (m_digits == -1) + m_textFormat.Printf(wxT("%%lg") ); + else + m_textFormat.Printf(wxT("%%.%dlg"), m_digits ); + break; + } + case lf_fmt : + default : m_textFormat.Printf(wxT("%%.%dlf"), m_digits ); break; + } + + SetValue(m_value); +} + +void wxSpinCtrlDbl::SetFormat( const wxString& format ) +{ + wxString wxstr; + if ( wxstr.Printf(format.c_str(), 123456.123456) > 0 ) + m_textFormat = format; + + SetValue(m_value); +} + +void wxSpinCtrlDbl::SetDefaultValue( double default_value ) +{ + if ( InRange(default_value) ) + { + m_default_value = default_value; + SetDefaultValue(); + } +} + +void wxSpinCtrlDbl::SetSnapToTicks(bool forceTicks) +{ + if (m_snap_ticks != forceTicks) + { + m_snap_ticks = forceTicks; + SetValue( m_value ); + } +} + +void wxSpinCtrlDbl::OnFocus( wxFocusEvent &event ) +{ + if (m_textCtrl) + m_textCtrl->SetFocus(); // this is to pass TAB navigation + + event.Skip(); +} + +void wxSpinCtrlDbl::OnKillFocus( wxFocusEvent &event ) +{ + SyncSpinToText(true); + event.Skip(); +} + +void wxSpinCtrlDbl::SyncSpinToText(bool send_event, bool force_valid) +{ + if (!m_textCtrl) + return; + + double txt_value; + if ( m_textCtrl->GetValue().ToDouble( &txt_value ) ) + { + if ( force_valid || !HasRange() || InRange(txt_value) ) + { + if (force_valid && HasRange()) + { + if (txt_value > GetMax()) + txt_value = GetMax(); + else if (txt_value < GetMin()) + txt_value = GetMin(); + } + + if (m_value != txt_value) + { + SetValue( txt_value ); + if (send_event) DoSendEvent(); + } + } + } + else if (force_valid) + { + // textctrl is out of sync, discard and reset + SetValue(GetValue()); + } +} + +bool wxSpinCtrlDbl::SetFont( const wxFont &font ) +{ + if (!m_textCtrl) return false; + return m_textCtrl->SetFont( font ); +} +wxFont wxSpinCtrlDbl::GetFont() const +{ + if (!m_textCtrl) return GetFont(); + return m_textCtrl->GetFont(); +} + +bool wxSpinCtrlDbl::SetBackgroundColour(const wxColour& colour) +{ + if (!m_textCtrl) return wxControl::SetBackgroundColour(colour); + bool ret = false; + ret = m_textCtrl->SetBackgroundColour(colour); + m_textCtrl->Refresh(); // FIXME is this necessary in GTK/OSX + return ret; +} +wxColour wxSpinCtrlDbl::GetBackgroundColour() const +{ + if (!m_textCtrl) return wxControl::GetBackgroundColour(); + return m_textCtrl->GetBackgroundColour(); +} + +bool wxSpinCtrlDbl::SetForegroundColour(const wxColour& colour) +{ + if (!m_textCtrl) return wxControl::SetForegroundColour(colour); + bool ret = false; + ret = m_textCtrl->SetForegroundColour(colour); + m_textCtrl->Refresh(); + return ret; +} +wxColour wxSpinCtrlDbl::GetForegroundColour() const +{ + if (!m_textCtrl) return wxControl::GetForegroundColour(); + return m_textCtrl->GetForegroundColour(); +} diff --git a/.svn/pristine/96/96ac5cea02801c5e24816cc4213ddaabcf343729.svn-base b/.svn/pristine/96/96ac5cea02801c5e24816cc4213ddaabcf343729.svn-base new file mode 100644 index 0000000..0fe285b --- /dev/null +++ b/.svn/pristine/96/96ac5cea02801c5e24816cc4213ddaabcf343729.svn-base @@ -0,0 +1,178 @@ +/**************************************************************************** + + GLUI User Interface Toolkit + --------------------------- + + glui_panel.cpp - GLUI_Panel control class + + + -------------------------------------------------- + + Copyright (c) 1998 Paul Rademacher + + This program is freely distributable without licensing fees and is + provided without guarantee or warrantee expressed or implied. This + program is -not- in the public domain. + +*****************************************************************************/ + +#include "glui.h" +#include "stdinc.h" + +/****************************** GLUI_Panel::draw() **********/ + +void GLUI_Panel::draw( int x, int y ) +{ + int top, orig; + + if ( NOT can_draw() ) + return; + + orig = set_to_glut_window(); + + if ( int_val == GLUI_PANEL_RAISED ) { + top = 0; + glLineWidth( 1.0 ); + glColor3f( 1.0, 1.0, 1.0 ); + glBegin( GL_LINE_LOOP ); + glVertex2i( 0, top ); glVertex2i( w, top ); + glVertex2i( 0, top ); glVertex2i( 0, h ); + glEnd(); + + glColor3f( .5, .5, .5 ); + glBegin( GL_LINE_LOOP ); + glVertex2i( w, top ); + glVertex2i( w, h ); + glVertex2i( 0, h ); + glVertex2i( w, h ); + glEnd(); + + /** ORIGINAL RAISED PANEL METHOD - A LITTLE TOO HIGH ** + glLineWidth(1.0); + glBegin( GL_LINES ); + glColor3f( 1.0, 1.0, 1.0 ); + glVertex2i( 1, 1 ); glVertex2i( w-2, 1 ); + glVertex2i( 1, 1 ); glVertex2i( 1, h-2 ); + + glColor3f( .5, .5, .5 ); + glVertex2i( w-1, 1 ); glVertex2i( w-1, h-1 ); + glVertex2i( 1, h-1 ); glVertex2i( w-1, h-1 ); + + glColor3f( 0.0, 0.0, 0.0 ); + glVertex2i( 0, h ); glVertex2i( w, h ); + glVertex2i( w, 0 ); glVertex2i( w, h ); + glEnd(); + + -- Touch up the lines a bit (needed in some opengl implementations + glBegin( GL_POINTS ); + glColor3f( .5, .5, .5 ); + glVertex2i( w-1, h-1 ); + glColor3f( 0.0, 0.0, 0.0 ); + glVertex2i( w, h ); + glEnd(); + **/ + } + else if ( int_val == GLUI_PANEL_EMBOSSED ) { + if ( name[0] == '\0' ) { + top = 0; + } + else { + top = GLUI_PANEL_EMBOSS_TOP; + } + + glLineWidth( 1.0 ); + glColor3f( 1.0, 1.0, 1.0 ); + glBegin( GL_LINE_LOOP ); + glVertex2i( 0, top ); glVertex2i( w, top ); + glVertex2i( w, h ); glVertex2i( 0, h ); + + glVertex2i( 1, top+1 ); glVertex2i( w-1, top+1 ); + glVertex2i( w-1, h-1 ); glVertex2i( 1, h-1 ); + glEnd(); + + glColor3f( .5, .5, .5 ); + glBegin( GL_LINE_LOOP ); + glVertex2i( 0, top ); + glVertex2i( w-1, top ); + glVertex2i( w-1, h-1 ); + glVertex2i( 0, h-1 ); + glEnd(); + + /**** Only display text in embossed panel ****/ + if ( name[0] != '\0' ) { /* Only draw non-null strings */ + int left = 7, height=GLUI_PANEL_NAME_DROP+1; + int str_width; + + str_width = string_width(name); + + if ( glui ) + glColor3ub(glui->bkgd_color.r,glui->bkgd_color.g,glui->bkgd_color.b); + glDisable( GL_CULL_FACE ); + glBegin( GL_QUADS ); + glVertex2i( left-3, 0 ); glVertex2i( left+str_width+3, 0 ); + glVertex2i( left+str_width+3, height ); glVertex2i( left-3, height ); + glEnd(); + + draw_name( left, GLUI_PANEL_NAME_DROP ); + } + } + + glLineWidth( 1.0 ); + + restore_window(orig); +} + + +/****************************** GLUI_Panel::set_name() **********/ + +void GLUI_Panel::set_name( char *new_name ) +{ + strncpy(name,new_name,sizeof(GLUI_String)); + + update_size(); + + if ( glui ) + glui->refresh(); +} + + +/****************************** GLUI_Panel::set_type() **********/ + +void GLUI_Panel::set_type( int new_type ) +{ + int old_window; + + if ( new_type != int_val ) { + int_val = new_type; + + /* translate_and_draw_front(); */ + update_size(); + + old_window = set_to_glut_window(); + glutPostRedisplay( ); + restore_window( old_window ); + } +} + + +/************************************** GLUI_Panel::update_size() **********/ + +void GLUI_Panel::update_size( void ) +{ + int text_size; + + if ( NOT glui ) + return; + + text_size = string_width(name); + + if ( w < text_size + 16 ) + w = text_size + 16 ; + + if ( name[0] != '\0' AND int_val == GLUI_PANEL_EMBOSSED ) { + this->y_off_top = GLUI_YOFF + 8; + } + else { + this->y_off_top = GLUI_YOFF; + } +} diff --git a/.svn/pristine/96/96e49d41db72ae74555d33d364f5b71b2671eac6.svn-base b/.svn/pristine/96/96e49d41db72ae74555d33d364f5b71b2671eac6.svn-base new file mode 100644 index 0000000..4051ae6 --- /dev/null +++ b/.svn/pristine/96/96e49d41db72ae74555d33d364f5b71b2671eac6.svn-base @@ -0,0 +1,227 @@ +/** + * @file + * @brief IO of a 3D scan for leica ASCII file format with relectance values. + * @author Sven Albrecht. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SCAN_IO_CAD_H__ +#define __SCAN_IO_CAD_H__ + +#include +using std::string; +#include +using std::vector; +#include +#include +#include +#include + +#include "scan_io.h" + +#include +#include + +namespace po = boost::program_options; // to reduce typing effort +namespace fs = boost::filesystem; // to reduce typing effort + +/** + * @brief 3D scan loader for 1 UOS Scan and multiple .stl files + * + * The compiled class is available as shared object file + */ +class ScanIO_CAD : public ScanIO { + + // default values for parameters / flags / etc + // sampling parameters + static constexpr bool STD_STORE_CAD = false; // don't save sampling + static constexpr float STD_SAMPLE_DIST = 0.5f; // point distance of 0.5 (cm) + static constexpr bool STD_RND_SAMP = true; // use random sampling + // coordinate order + static constexpr unsigned int STD_X_INDEX = 0; // cad x coord = uos x coord + static constexpr unsigned int STD_Y_INDEX = 2; // cad y coord = uos z coord + static constexpr unsigned int STD_Z_INDEX = 1; // cad z coord = uos y coord + // scale factors + static constexpr float STD_SCALE_FACTOR = 0.1f; // general scale factor + static constexpr float STD_X_SCALE = 0.1f; // scale for x axis + static constexpr float STD_Y_SCALE = 0.1f; // scale for y axis + static constexpr float STD_Z_SCALE = 0.1f; // scale for z axis + static constexpr bool STD_COMBINE_SCALES = false; // combine scale factors? + static constexpr bool STD_INVERT_AXIS = false; // default inversion for axes + + +public: + + /** + * @brief Default constructor to initialize the member varibales with + * their default values. + */ + ScanIO_CAD(void); + + virtual int readScans(int start, int end, string &dir, int maxDist, + int minDist, double *euler, vector &ptss); + +private: + + + /** + * @brief method to read a scan in regular UOS .3d file format + * + * @param scan_in the (opened) filestream for the .3d file + * @param maxDist the maximal distance threshold from the origin for points + * @param minDist the minimal distance threshold from the origin for points + * @param points the vector containing the read scan points + * + */ + void read3DScan (std::ifstream &scan_in, int maxDist, int minDist, vector &points); + + /** + * @brief function to create a surface sampling from a given .stl file + * + * @param scan_in the (opened) filestream for the .stl file + * @param points the vector containing the resultant surface sample + * @return true if the surface sample could be created, false otherwise + */ + bool createSamplingFromSTL (std::ifstream &scan_in, vector &points); + /** + * @brief Function to check if a opened .stl file contains binary or + * ASCII data. + * + * @param scan_in reference to the (opened) filestream for the .stl file + * + * @return true if the filestream contains an ASCII encoded .stl file, + * false otherwise + */ + bool hasASCIIHeader (std::ifstream &scan_in); + + /** + * @brief Function to parse an ASCII encoded .stl file and create a + * 3D surface sampling of it. + * + * @param scan_in the (opened) filestream containint the .stl information + * @param points used to store the 3D points of the surface sampling + * @return true if the file could be parsed successfully, false otherwise + */ + bool parseASCII (std::ifstream &scan_in, vector &points); + + /** + * @brief Function to parse an binary encoded .stl file and create a + * 3D surface sampling of it. + * + * @param scan_in the (opened) filestream containint the .stl information + * @param points used to store the 3D points of the surface sampling + * @return true if the file could be parsed successfully, false otherwise + */ + bool parseBinary (std::ifstream &scan_in, vector &points); + + /** + * @brief Method to create a point sampling of a face (i.e. triangle). + * + * @param vertex1 the first corner of the triangle + * @param vertex2 the second corner of the triangle + * @param vertex3 the third corner of the triangle + * @param points reference to the Point vector, where the sample points + * are stored + */ + void createSampingForFace (float* vertex1, float* vertex2, + float* vertex3, vector &points); + + /** + * @brief Method to store the point sampling to the UOS .3d file format. + * The resultant .3d file will have the same name as the original .stl + * file apart from the file extension. + * + * @param filename the name of the .stl file + * @param points a reference to the vector containing the point + * information to be stored + */ + void storeSamplingTo3D (std::string filename, vector &points); + + /** + * @brief Computes the dot product of two 3D vectors given as float*. + * + * @param vec1 the first 3D vector as a float array + * @param vec2 the second 3D vector as a float array + * + * @return the dot product of the two vectors + */ + static float dotProd (const float* vec1, const float* vec2); + + /** + * @brief Method to parse a config file. + * The config file needs to have INI file similar syntax. If a parsing + * error occurs a help with all available options will be printed to the + * console and the program will terminate without matching + * + * @param config A filestream to the config file + */ + void parseConfig (std::ifstream &config); + + /** + * @brief Utility method to convert the data of a point in CAD coordinates + * to the slam coordinate system. + * This can involve the change of coordinate order, axis direction and + * scaling (of all or single coordinates), depending on the configuration + * passed via config file. + * @param raw_data A 3D point read from the CAD file as a float array + * @param vertex The resulting 3D point after all specified + * operations have taken place + */ + void copyRawData2Vertex (float *raw_data, float *vertex); + + // member variables to hold the indices used in data conversion + unsigned int x_index; + unsigned int y_index; + unsigned int z_index; + + // bools to determine if an axis should be inverted during data conversion + bool invert_x; + bool invert_y; + bool invert_z; + + // scale factors (global and individual) for data conversion + float scale_factor; + float x_scale; + float y_scale; + float z_scale; + + // determines if individual scale factors should be used + bool individual_scale; + // determines if individual scaling should be combined with + // the global scale factor + bool combine_scales; + + // determines if random sampling should be used for surface sampling + bool random_sampling; + + // determines if the sampled CAD model is stored as a .3d file + bool store_cad; + // sets the distance between sample points (determines sample density) + float sample_point_dist; + + // option description for easier parsing of config + po::options_description _op_descr; + po::variables_map _vmap; + + std::vector _stl_files; + size_t _stl_files_pos; + + /** + * @brief Method to set up the option description. + * All allowed parameters with their default values should be + * initialized here. + */ + void setUpOptionDescription (void); + + void parseDirForAllSTL (std::string &directory_name); + + bool getNextSTLFromDir (fs::path &stl_file); +}; + +// Since this shared object file is loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/.svn/pristine/97/97460f8e721a28906c5fca04a4b572997013c85b.svn-base b/.svn/pristine/97/97460f8e721a28906c5fca04a4b572997013c85b.svn-base new file mode 100644 index 0000000..cde81a1 --- /dev/null +++ b/.svn/pristine/97/97460f8e721a28906c5fca04a4b572997013c85b.svn-base @@ -0,0 +1,1052 @@ +//$$ newmat7.cpp Invert, solve, binary operations + +// Copyright (C) 1991,2,3,4: R B Davies + +#include "include.h" + +#include "newmat.h" +#include "newmatrc.h" + +#ifdef use_namespace +namespace NEWMAT { +#endif + + +#ifdef DO_REPORT +#define REPORT { static ExeCounter ExeCount(__LINE__,7); ++ExeCount; } +#else +#define REPORT {} +#endif + + +//***************************** solve routines ******************************/ + +GeneralMatrix* GeneralMatrix::MakeSolver() +{ + REPORT + GeneralMatrix* gm = new CroutMatrix(*this); + MatrixErrorNoSpace(gm); gm->ReleaseAndDelete(); return gm; +} + +GeneralMatrix* Matrix::MakeSolver() +{ + REPORT + GeneralMatrix* gm = new CroutMatrix(*this); + MatrixErrorNoSpace(gm); gm->ReleaseAndDelete(); return gm; +} + +void CroutMatrix::Solver(MatrixColX& mcout, const MatrixColX& mcin) +{ + REPORT + int i = mcin.skip; Real* el = mcin.data-i; Real* el1 = el; + while (i--) *el++ = 0.0; + el += mcin.storage; i = nrows - mcin.skip - mcin.storage; + while (i--) *el++ = 0.0; + lubksb(el1, mcout.skip); +} + + +// Do we need check for entirely zero output? + +void UpperTriangularMatrix::Solver(MatrixColX& mcout, + const MatrixColX& mcin) +{ + REPORT + int i = mcin.skip-mcout.skip; Real* elx = mcin.data-i; + while (i-- > 0) *elx++ = 0.0; + int nr = mcin.skip+mcin.storage; + elx = mcin.data+mcin.storage; Real* el = elx; + int j = mcout.skip+mcout.storage-nr; int nc = ncols-nr; i = nr-mcout.skip; + while (j-- > 0) *elx++ = 0.0; + Real* Ael = store + (nr*(2*ncols-nr+1))/2; j = 0; + while (i-- > 0) + { + elx = el; Real sum = 0.0; int jx = j++; Ael -= nc; + while (jx--) sum += *(--Ael) * *(--elx); + elx--; *elx = (*elx - sum) / *(--Ael); + } +} + +void LowerTriangularMatrix::Solver(MatrixColX& mcout, + const MatrixColX& mcin) +{ + REPORT + int i = mcin.skip-mcout.skip; Real* elx = mcin.data-i; + while (i-- > 0) *elx++ = 0.0; + int nc = mcin.skip; i = nc+mcin.storage; elx = mcin.data+mcin.storage; + int nr = mcout.skip+mcout.storage; int j = nr-i; i = nr-nc; + while (j-- > 0) *elx++ = 0.0; + Real* el = mcin.data; Real* Ael = store + (nc*(nc+1))/2; j = 0; + while (i-- > 0) + { + elx = el; Real sum = 0.0; int jx = j++; Ael += nc; + while (jx--) sum += *Ael++ * *elx++; + *elx = (*elx - sum) / *Ael++; + } +} + +//******************* carry out binary operations *************************/ + +static GeneralMatrix* + GeneralMult(GeneralMatrix*,GeneralMatrix*,MultipliedMatrix*,MatrixType); +static GeneralMatrix* + GeneralSolv(GeneralMatrix*,GeneralMatrix*,BaseMatrix*,MatrixType); +static GeneralMatrix* + GeneralSolvI(GeneralMatrix*,BaseMatrix*,MatrixType); +static GeneralMatrix* + GeneralKP(GeneralMatrix*,GeneralMatrix*,KPMatrix*,MatrixType); + +GeneralMatrix* MultipliedMatrix::Evaluate(MatrixType mt) +{ + REPORT + gm2 = ((BaseMatrix*&)bm2)->Evaluate(); + gm2 = gm2->Evaluate(gm2->Type().MultRHS()); // no symmetric on RHS + gm1=((BaseMatrix*&)bm1)->Evaluate(); +#ifdef TEMPS_DESTROYED_QUICKLY + GeneralMatrix* gmx; + Try { gmx = GeneralMult(gm1, gm2, this, mt); } + CatchAll { delete this; ReThrow; } + delete this; return gmx; +#else + return GeneralMult(gm1, gm2, this, mt); +#endif +} + +GeneralMatrix* SolvedMatrix::Evaluate(MatrixType mt) +{ + REPORT + gm1=((BaseMatrix*&)bm1)->Evaluate(); + gm2=((BaseMatrix*&)bm2)->Evaluate(); +#ifdef TEMPS_DESTROYED_QUICKLY + GeneralMatrix* gmx; + Try { gmx = GeneralSolv(gm1,gm2,this,mt); } + CatchAll { delete this; ReThrow; } + delete this; return gmx; +#else + return GeneralSolv(gm1,gm2,this,mt); +#endif +} + +GeneralMatrix* KPMatrix::Evaluate(MatrixType mt) +{ + REPORT + gm1=((BaseMatrix*&)bm1)->Evaluate(); + gm2=((BaseMatrix*&)bm2)->Evaluate(); +#ifdef TEMPS_DESTROYED_QUICKLY + GeneralMatrix* gmx; + Try { gmx = GeneralKP(gm1,gm2,this,mt); } + CatchAll { delete this; ReThrow; } + delete this; return gmx; +#else + return GeneralKP(gm1,gm2,this,mt); +#endif +} + +// routines for adding or subtracting matrices of identical storage structure + +static void Add(GeneralMatrix* gm, GeneralMatrix* gm1, GeneralMatrix* gm2) +{ + REPORT + Real* s1=gm1->Store(); Real* s2=gm2->Store(); + Real* s=gm->Store(); int i=gm->Storage() >> 2; + while (i--) + { + *s++ = *s1++ + *s2++; *s++ = *s1++ + *s2++; + *s++ = *s1++ + *s2++; *s++ = *s1++ + *s2++; + } + i=gm->Storage() & 3; while (i--) *s++ = *s1++ + *s2++; +} + +static void Add(GeneralMatrix* gm, GeneralMatrix* gm2) +{ + REPORT + Real* s2=gm2->Store(); Real* s=gm->Store(); int i=gm->Storage() >> 2; + while (i--) + { *s++ += *s2++; *s++ += *s2++; *s++ += *s2++; *s++ += *s2++; } + i=gm->Storage() & 3; while (i--) *s++ += *s2++; +} + +static void Subtract(GeneralMatrix* gm, GeneralMatrix* gm1, GeneralMatrix* gm2) +{ + REPORT + Real* s1=gm1->Store(); Real* s2=gm2->Store(); + Real* s=gm->Store(); int i=gm->Storage() >> 2; + while (i--) + { + *s++ = *s1++ - *s2++; *s++ = *s1++ - *s2++; + *s++ = *s1++ - *s2++; *s++ = *s1++ - *s2++; + } + i=gm->Storage() & 3; while (i--) *s++ = *s1++ - *s2++; +} + +static void Subtract(GeneralMatrix* gm, GeneralMatrix* gm2) +{ + REPORT + Real* s2=gm2->Store(); Real* s=gm->Store(); int i=gm->Storage() >> 2; + while (i--) + { *s++ -= *s2++; *s++ -= *s2++; *s++ -= *s2++; *s++ -= *s2++; } + i=gm->Storage() & 3; while (i--) *s++ -= *s2++; +} + +static void ReverseSubtract(GeneralMatrix* gm, GeneralMatrix* gm2) +{ + REPORT + Real* s2=gm2->Store(); Real* s=gm->Store(); int i=gm->Storage() >> 2; + while (i--) + { + *s = *s2++ - *s; s++; *s = *s2++ - *s; s++; + *s = *s2++ - *s; s++; *s = *s2++ - *s; s++; + } + i=gm->Storage() & 3; while (i--) { *s = *s2++ - *s; s++; } +} + +static void SP(GeneralMatrix* gm, GeneralMatrix* gm1, GeneralMatrix* gm2) +{ + REPORT + Real* s1=gm1->Store(); Real* s2=gm2->Store(); + Real* s=gm->Store(); int i=gm->Storage() >> 2; + while (i--) + { + *s++ = *s1++ * *s2++; *s++ = *s1++ * *s2++; + *s++ = *s1++ * *s2++; *s++ = *s1++ * *s2++; + } + i=gm->Storage() & 3; while (i--) *s++ = *s1++ * *s2++; +} + +static void SP(GeneralMatrix* gm, GeneralMatrix* gm2) +{ + REPORT + Real* s2=gm2->Store(); Real* s=gm->Store(); int i=gm->Storage() >> 2; + while (i--) + { *s++ *= *s2++; *s++ *= *s2++; *s++ *= *s2++; *s++ *= *s2++; } + i=gm->Storage() & 3; while (i--) *s++ *= *s2++; +} + +// routines for adding or subtracting matrices of different storage structure + +static void AddDS(GeneralMatrix* gm, GeneralMatrix* gm1, GeneralMatrix* gm2) +{ + REPORT + int nr = gm->Nrows(); + MatrixRow mr1(gm1, LoadOnEntry); MatrixRow mr2(gm2, LoadOnEntry); + MatrixRow mr(gm, StoreOnExit+DirectPart); + while (nr--) { mr.Add(mr1,mr2); mr1.Next(); mr2.Next(); mr.Next(); } +} + +static void AddDS(GeneralMatrix* gm, GeneralMatrix* gm2) +// Add into first argument +{ + REPORT + int nr = gm->Nrows(); + MatrixRow mr(gm, StoreOnExit+LoadOnEntry+DirectPart); + MatrixRow mr2(gm2, LoadOnEntry); + while (nr--) { mr.Add(mr2); mr.Next(); mr2.Next(); } +} + +static void SubtractDS + (GeneralMatrix* gm, GeneralMatrix* gm1, GeneralMatrix* gm2) +{ + REPORT + int nr = gm->Nrows(); + MatrixRow mr1(gm1, LoadOnEntry); MatrixRow mr2(gm2, LoadOnEntry); + MatrixRow mr(gm, StoreOnExit+DirectPart); + while (nr--) { mr.Sub(mr1,mr2); mr1.Next(); mr2.Next(); mr.Next(); } +} + +static void SubtractDS(GeneralMatrix* gm, GeneralMatrix* gm2) +{ + REPORT + int nr = gm->Nrows(); + MatrixRow mr(gm, LoadOnEntry+StoreOnExit+DirectPart); + MatrixRow mr2(gm2, LoadOnEntry); + while (nr--) { mr.Sub(mr2); mr.Next(); mr2.Next(); } +} + +static void ReverseSubtractDS(GeneralMatrix* gm, GeneralMatrix* gm2) +{ + REPORT + int nr = gm->Nrows(); + MatrixRow mr(gm, LoadOnEntry+StoreOnExit+DirectPart); + MatrixRow mr2(gm2, LoadOnEntry); + while (nr--) { mr.RevSub(mr2); mr2.Next(); mr.Next(); } +} + +static void SPDS(GeneralMatrix* gm, GeneralMatrix* gm1, GeneralMatrix* gm2) +{ + REPORT + int nr = gm->Nrows(); + MatrixRow mr1(gm1, LoadOnEntry); MatrixRow mr2(gm2, LoadOnEntry); + MatrixRow mr(gm, StoreOnExit+DirectPart); + while (nr--) { mr.Multiply(mr1,mr2); mr1.Next(); mr2.Next(); mr.Next(); } +} + +static void SPDS(GeneralMatrix* gm, GeneralMatrix* gm2) +// SP into first argument +{ + REPORT + int nr = gm->Nrows(); + MatrixRow mr(gm, StoreOnExit+LoadOnEntry+DirectPart); + MatrixRow mr2(gm2, LoadOnEntry); + while (nr--) { mr.Multiply(mr2); mr.Next(); mr2.Next(); } +} + +static GeneralMatrix* GeneralMult1(GeneralMatrix* gm1, GeneralMatrix* gm2, + MultipliedMatrix* mm, MatrixType mtx) +{ + REPORT + Tracer tr("GeneralMult1"); + int nr=gm1->Nrows(); int nc=gm2->Ncols(); + if (gm1->Ncols() !=gm2->Nrows()) + Throw(IncompatibleDimensionsException(*gm1, *gm2)); + GeneralMatrix* gmx = mtx.New(nr,nc,mm); + + MatrixCol mcx(gmx, StoreOnExit+DirectPart); + MatrixCol mc2(gm2, LoadOnEntry); + while (nc--) + { + MatrixRow mr1(gm1, LoadOnEntry, mcx.Skip()); + Real* el = mcx.Data(); // pointer to an element + int n = mcx.Storage(); + while (n--) { *(el++) = DotProd(mr1,mc2); mr1.Next(); } + mc2.Next(); mcx.Next(); + } + gmx->ReleaseAndDelete(); gm1->tDelete(); gm2->tDelete(); return gmx; +} + +static GeneralMatrix* GeneralMult2(GeneralMatrix* gm1, GeneralMatrix* gm2, + MultipliedMatrix* mm, MatrixType mtx) +{ + // version that accesses by row only - not good for thin matrices + // or column vectors in right hand term. + REPORT + Tracer tr("GeneralMult2"); + int nr=gm1->Nrows(); int nc=gm2->Ncols(); + if (gm1->Ncols() !=gm2->Nrows()) + Throw(IncompatibleDimensionsException(*gm1, *gm2)); + GeneralMatrix* gmx = mtx.New(nr,nc,mm); + + MatrixRow mrx(gmx, LoadOnEntry+StoreOnExit+DirectPart); + MatrixRow mr1(gm1, LoadOnEntry); + while (nr--) + { + MatrixRow mr2(gm2, LoadOnEntry, mr1.Skip()); + Real* el = mr1.Data(); // pointer to an element + int n = mr1.Storage(); + mrx.Zero(); + while (n--) { mrx.AddScaled(mr2, *el++); mr2.Next(); } + mr1.Next(); mrx.Next(); + } + gmx->ReleaseAndDelete(); gm1->tDelete(); gm2->tDelete(); return gmx; +} + +static GeneralMatrix* mmMult(GeneralMatrix* gm1, GeneralMatrix* gm2) +{ + // matrix multiplication for type Matrix only + REPORT + Tracer tr("MatrixMult"); + + int nr=gm1->Nrows(); int ncr=gm1->Ncols(); int nc=gm2->Ncols(); + if (ncr != gm2->Nrows()) Throw(IncompatibleDimensionsException(*gm1,*gm2)); + + Matrix* gm = new Matrix(nr,nc); MatrixErrorNoSpace(gm); + + Real* s1=gm1->Store(); Real* s2=gm2->Store(); Real* s=gm->Store(); + + if (ncr) + { + while (nr--) + { + Real* s2x = s2; int j = ncr; + Real* sx = s; Real f = *s1++; int k = nc; + while (k--) *sx++ = f * *s2x++; + while (--j) + { sx = s; f = *s1++; k = nc; while (k--) *sx++ += f * *s2x++; } + s = sx; + } + } + else *gm = 0.0; + + gm->ReleaseAndDelete(); gm1->tDelete(); gm2->tDelete(); return gm; +} + +static GeneralMatrix* GeneralMult(GeneralMatrix* gm1, GeneralMatrix* gm2, + MultipliedMatrix* mm, MatrixType mtx) +{ + if ( Rectangular(gm1->Type(), gm2->Type(), mtx)) + { + REPORT + return mmMult(gm1, gm2); + } + else + { + REPORT + Compare(gm1->Type() * gm2->Type(),mtx); + int nr = gm2->Nrows(); int nc = gm2->Ncols(); + if (nc <= 5 && nr > nc) { REPORT return GeneralMult1(gm1, gm2, mm, mtx); } + else { REPORT return GeneralMult2(gm1, gm2, mm, mtx); } + } +} + +static GeneralMatrix* GeneralKP(GeneralMatrix* gm1, GeneralMatrix* gm2, + KPMatrix* kp, MatrixType mtx) +{ + REPORT + Tracer tr("GeneralKP"); + int nr1 = gm1->Nrows(); int nc1 = gm1->Ncols(); + int nr2 = gm2->Nrows(); int nc2 = gm2->Ncols(); + Compare((gm1->Type()).KP(gm2->Type()),mtx); + GeneralMatrix* gmx = mtx.New(nr1*nr2, nc1*nc2, kp); + MatrixRow mrx(gmx, LoadOnEntry+StoreOnExit+DirectPart); + MatrixRow mr1(gm1, LoadOnEntry); + for (int i = 1; i <= nr1; ++i) + { + MatrixRow mr2(gm2, LoadOnEntry); + for (int j = 1; j <= nr2; ++j) + { mrx.KP(mr1,mr2); mr2.Next(); mrx.Next(); } + mr1.Next(); + } + gmx->ReleaseAndDelete(); gm1->tDelete(); gm2->tDelete(); return gmx; +} + +static GeneralMatrix* GeneralSolv(GeneralMatrix* gm1, GeneralMatrix* gm2, + BaseMatrix* sm, MatrixType mtx) +{ + REPORT + Tracer tr("GeneralSolv"); + Compare(gm1->Type().i() * gm2->Type(),mtx); + int nr = gm1->Nrows(); + if (nr != gm1->Ncols()) Throw(NotSquareException(*gm1)); + int nc = gm2->Ncols(); + if (gm1->Ncols() != gm2->Nrows()) + Throw(IncompatibleDimensionsException(*gm1, *gm2)); + GeneralMatrix* gmx = mtx.New(nr,nc,sm); MatrixErrorNoSpace(gmx); + Real* r = new Real [nr]; MatrixErrorNoSpace(r); + MONITOR_REAL_NEW("Make (GenSolv)",nr,r) + GeneralMatrix* gms = gm1->MakeSolver(); + Try + { + + MatrixColX mcx(gmx, r, StoreOnExit+DirectPart); // copy to and from r + // this must be inside Try so mcx is destroyed before gmx + MatrixColX mc2(gm2, r, LoadOnEntry); + while (nc--) { gms->Solver(mcx, mc2); mcx.Next(); mc2.Next(); } + } + CatchAll + { + if (gms) gms->tDelete(); + delete gmx; // <-------------------- + gm2->tDelete(); + MONITOR_REAL_DELETE("Delete (GenSolv)",nr,r) + // ATandT version 2.1 gives an internal error + delete [] r; + ReThrow; + } + gms->tDelete(); gmx->ReleaseAndDelete(); gm2->tDelete(); + MONITOR_REAL_DELETE("Delete (GenSolv)",nr,r) + // ATandT version 2.1 gives an internal error + delete [] r; + return gmx; +} + +// version for inverses - gm2 is identity +static GeneralMatrix* GeneralSolvI(GeneralMatrix* gm1, BaseMatrix* sm, + MatrixType mtx) +{ + REPORT + Tracer tr("GeneralSolvI"); + Compare(gm1->Type().i(),mtx); + int nr = gm1->Nrows(); + if (nr != gm1->Ncols()) Throw(NotSquareException(*gm1)); + int nc = nr; + // DiagonalMatrix I(nr); I = 1; + IdentityMatrix I(nr); + GeneralMatrix* gmx = mtx.New(nr,nc,sm); MatrixErrorNoSpace(gmx); + Real* r = new Real [nr]; MatrixErrorNoSpace(r); + MONITOR_REAL_NEW("Make (GenSolvI)",nr,r) + GeneralMatrix* gms = gm1->MakeSolver(); + Try + { + + MatrixColX mcx(gmx, r, StoreOnExit+DirectPart); // copy to and from r + // this must be inside Try so mcx is destroyed before gmx + MatrixColX mc2(&I, r, LoadOnEntry); + while (nc--) { gms->Solver(mcx, mc2); mcx.Next(); mc2.Next(); } + } + CatchAll + { + if (gms) gms->tDelete(); + delete gmx; + MONITOR_REAL_DELETE("Delete (GenSolvI)",nr,r) + // ATandT version 2.1 gives an internal error + delete [] r; + ReThrow; + } + gms->tDelete(); gmx->ReleaseAndDelete(); + MONITOR_REAL_DELETE("Delete (GenSolvI)",nr,r) + // ATandT version 2.1 gives an internal error + delete [] r; + return gmx; +} + +GeneralMatrix* InvertedMatrix::Evaluate(MatrixType mtx) +{ + // Matrix Inversion - use solve routines + Tracer tr("InvertedMatrix::Evaluate"); + REPORT + gm=((BaseMatrix*&)bm)->Evaluate(); +#ifdef TEMPS_DESTROYED_QUICKLY + GeneralMatrix* gmx; + Try { gmx = GeneralSolvI(gm,this,mtx); } + CatchAll { delete this; ReThrow; } + delete this; return gmx; +#else + return GeneralSolvI(gm,this,mtx); +#endif +} + +//*************************** New versions ************************ + +GeneralMatrix* AddedMatrix::Evaluate(MatrixType mtd) +{ + REPORT + Tracer tr("AddedMatrix::Evaluate"); + gm1=((BaseMatrix*&)bm1)->Evaluate(); gm2=((BaseMatrix*&)bm2)->Evaluate(); + int nr=gm1->Nrows(); int nc=gm1->Ncols(); + if (nr!=gm2->Nrows() || nc!=gm2->Ncols()) + { + Try { Throw(IncompatibleDimensionsException(*gm1, *gm2)); } + CatchAll + { + gm1->tDelete(); gm2->tDelete(); +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + ReThrow; + } + } + MatrixType mt1 = gm1->Type(), mt2 = gm2->Type(); MatrixType mts = mt1 + mt2; + if (!mtd) { REPORT mtd = mts; } + else if (!(mtd.DataLossOK || mtd >= mts)) + { + REPORT + gm1->tDelete(); gm2->tDelete(); +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + Throw(ProgramException("Illegal Conversion", mts, mtd)); + } + GeneralMatrix* gmx; + bool c1 = (mtd == mt1), c2 = (mtd == mt2); + if ( c1 && c2 && (gm1->SimpleAddOK(gm2) == 0) ) + { + if (gm1->reuse()) { REPORT Add(gm1,gm2); gm2->tDelete(); gmx = gm1; } + else if (gm2->reuse()) { REPORT Add(gm2,gm1); gmx = gm2; } + else + { + REPORT + // what if new throws an exception + Try { gmx = mt1.New(nr,nc,this); } + CatchAll + { +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + ReThrow; + } + gmx->ReleaseAndDelete(); Add(gmx,gm1,gm2); + } + } + else + { + if (c1 && c2) + { + short SAO = gm1->SimpleAddOK(gm2); + if (SAO & 1) { REPORT c1 = false; } + if (SAO & 2) { REPORT c2 = false; } + } + if (c1 && gm1->reuse() ) // must have type test first + { REPORT AddDS(gm1,gm2); gm2->tDelete(); gmx = gm1; } + else if (c2 && gm2->reuse() ) + { REPORT AddDS(gm2,gm1); if (!c1) gm1->tDelete(); gmx = gm2; } + else + { + REPORT + Try { gmx = mtd.New(nr,nc,this); } + CatchAll + { + if (!c1) gm1->tDelete(); if (!c2) gm2->tDelete(); +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + ReThrow; + } + AddDS(gmx,gm1,gm2); + if (!c1) gm1->tDelete(); if (!c2) gm2->tDelete(); + gmx->ReleaseAndDelete(); + } + } +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + return gmx; +} + +GeneralMatrix* SubtractedMatrix::Evaluate(MatrixType mtd) +{ + REPORT + Tracer tr("SubtractedMatrix::Evaluate"); + gm1=((BaseMatrix*&)bm1)->Evaluate(); gm2=((BaseMatrix*&)bm2)->Evaluate(); + int nr=gm1->Nrows(); int nc=gm1->Ncols(); + if (nr!=gm2->Nrows() || nc!=gm2->Ncols()) + { + Try { Throw(IncompatibleDimensionsException(*gm1, *gm2)); } + CatchAll + { + gm1->tDelete(); gm2->tDelete(); +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + ReThrow; + } + } + MatrixType mt1 = gm1->Type(), mt2 = gm2->Type(); MatrixType mts = mt1 + mt2; + if (!mtd) { REPORT mtd = mts; } + else if (!(mtd.DataLossOK || mtd >= mts)) + { + gm1->tDelete(); gm2->tDelete(); +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + Throw(ProgramException("Illegal Conversion", mts, mtd)); + } + GeneralMatrix* gmx; + bool c1 = (mtd == mt1), c2 = (mtd == mt2); + if ( c1 && c2 && (gm1->SimpleAddOK(gm2) == 0) ) + { + if (gm1->reuse()) { REPORT Subtract(gm1,gm2); gm2->tDelete(); gmx = gm1; } + else if (gm2->reuse()) { REPORT ReverseSubtract(gm2,gm1); gmx = gm2; } + else + { + REPORT + Try { gmx = mt1.New(nr,nc,this); } + CatchAll + { +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + ReThrow; + } + gmx->ReleaseAndDelete(); Subtract(gmx,gm1,gm2); + } + } + else + { + if (c1 && c2) + { + short SAO = gm1->SimpleAddOK(gm2); + if (SAO & 1) { REPORT c1 = false; } + if (SAO & 2) { REPORT c2 = false; } + } + if (c1 && gm1->reuse() ) // must have type test first + { REPORT SubtractDS(gm1,gm2); gm2->tDelete(); gmx = gm1; } + else if (c2 && gm2->reuse() ) + { + REPORT ReverseSubtractDS(gm2,gm1); + if (!c1) gm1->tDelete(); gmx = gm2; + } + else + { + REPORT + // what if New throws and exception + Try { gmx = mtd.New(nr,nc,this); } + CatchAll + { + if (!c1) gm1->tDelete(); if (!c2) gm2->tDelete(); +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + ReThrow; + } + SubtractDS(gmx,gm1,gm2); + if (!c1) gm1->tDelete(); if (!c2) gm2->tDelete(); + gmx->ReleaseAndDelete(); + } + } +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + return gmx; +} + +GeneralMatrix* SPMatrix::Evaluate(MatrixType mtd) +{ + REPORT + Tracer tr("SPMatrix::Evaluate"); + gm1=((BaseMatrix*&)bm1)->Evaluate(); gm2=((BaseMatrix*&)bm2)->Evaluate(); + int nr=gm1->Nrows(); int nc=gm1->Ncols(); + if (nr!=gm2->Nrows() || nc!=gm2->Ncols()) + { + Try { Throw(IncompatibleDimensionsException(*gm1, *gm2)); } + CatchAll + { + gm1->tDelete(); gm2->tDelete(); +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + ReThrow; + } + } + MatrixType mt1 = gm1->Type(), mt2 = gm2->Type(); + MatrixType mts = mt1.SP(mt2); + if (!mtd) { REPORT mtd = mts; } + else if (!(mtd.DataLossOK || mtd >= mts)) + { + gm1->tDelete(); gm2->tDelete(); +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + Throw(ProgramException("Illegal Conversion", mts, mtd)); + } + GeneralMatrix* gmx; + bool c1 = (mtd == mt1), c2 = (mtd == mt2); + if ( c1 && c2 && (gm1->SimpleAddOK(gm2) == 0) ) + { + if (gm1->reuse()) { REPORT SP(gm1,gm2); gm2->tDelete(); gmx = gm1; } + else if (gm2->reuse()) { REPORT SP(gm2,gm1); gmx = gm2; } + else + { + REPORT + Try { gmx = mt1.New(nr,nc,this); } + CatchAll + { +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + ReThrow; + } + gmx->ReleaseAndDelete(); SP(gmx,gm1,gm2); + } + } + else + { + if (c1 && c2) + { + short SAO = gm1->SimpleAddOK(gm2); + if (SAO & 1) { REPORT c2 = false; } // c1 and c2 swapped + if (SAO & 2) { REPORT c1 = false; } + } + if (c1 && gm1->reuse() ) // must have type test first + { REPORT SPDS(gm1,gm2); gm2->tDelete(); gmx = gm1; } + else if (c2 && gm2->reuse() ) + { REPORT SPDS(gm2,gm1); if (!c1) gm1->tDelete(); gmx = gm2; } + else + { + REPORT + // what if New throws and exception + Try { gmx = mtd.New(nr,nc,this); } + CatchAll + { + if (!c1) gm1->tDelete(); if (!c2) gm2->tDelete(); +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + ReThrow; + } + SPDS(gmx,gm1,gm2); + if (!c1) gm1->tDelete(); if (!c2) gm2->tDelete(); + gmx->ReleaseAndDelete(); + } + } +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + return gmx; +} + + + +//*************************** norm functions ****************************/ + +Real BaseMatrix::Norm1() const +{ + // maximum of sum of absolute values of a column + REPORT + GeneralMatrix* gm = ((BaseMatrix&)*this).Evaluate(); + int nc = gm->Ncols(); Real value = 0.0; + MatrixCol mc(gm, LoadOnEntry); + while (nc--) + { Real v = mc.SumAbsoluteValue(); if (value < v) value = v; mc.Next(); } + gm->tDelete(); return value; +} + +Real BaseMatrix::NormInfinity() const +{ + // maximum of sum of absolute values of a row + REPORT + GeneralMatrix* gm = ((BaseMatrix&)*this).Evaluate(); + int nr = gm->Nrows(); Real value = 0.0; + MatrixRow mr(gm, LoadOnEntry); + while (nr--) + { Real v = mr.SumAbsoluteValue(); if (value < v) value = v; mr.Next(); } + gm->tDelete(); return value; +} + +//********************** Concatenation and stacking *************************/ + +GeneralMatrix* ConcatenatedMatrix::Evaluate(MatrixType mtx) +{ + REPORT + Tracer tr("Concatenate"); +#ifdef TEMPS_DESTROYED_QUICKLY + Try + { + gm2 = ((BaseMatrix*&)bm2)->Evaluate(); + gm1 = ((BaseMatrix*&)bm1)->Evaluate(); + Compare(gm1->Type() | gm2->Type(),mtx); + int nr=gm1->Nrows(); int nc = gm1->Ncols() + gm2->Ncols(); + if (nr != gm2->Nrows()) + Throw(IncompatibleDimensionsException(*gm1, *gm2)); + GeneralMatrix* gmx = mtx.New(nr,nc,this); + MatrixRow mr1(gm1, LoadOnEntry); MatrixRow mr2(gm2, LoadOnEntry); + MatrixRow mr(gmx, StoreOnExit+DirectPart); + while (nr--) { mr.ConCat(mr1,mr2); mr1.Next(); mr2.Next(); mr.Next(); } + gmx->ReleaseAndDelete(); gm1->tDelete(); gm2->tDelete(); delete this; + return gmx; + } + CatchAll { delete this; ReThrow; } +#ifndef UseExceptions + return 0; +#endif +#else + gm2 = ((BaseMatrix*&)bm2)->Evaluate(); + gm1 = ((BaseMatrix*&)bm1)->Evaluate(); + Compare(gm1->Type() | gm2->Type(),mtx); + int nr=gm1->Nrows(); int nc = gm1->Ncols() + gm2->Ncols(); + if (nr != gm2->Nrows()) + Throw(IncompatibleDimensionsException(*gm1, *gm2)); + GeneralMatrix* gmx = mtx.New(nr,nc,this); + MatrixRow mr1(gm1, LoadOnEntry); MatrixRow mr2(gm2, LoadOnEntry); + MatrixRow mr(gmx, StoreOnExit+DirectPart); + while (nr--) { mr.ConCat(mr1,mr2); mr1.Next(); mr2.Next(); mr.Next(); } + gmx->ReleaseAndDelete(); gm1->tDelete(); gm2->tDelete(); return gmx; +#endif +} + +GeneralMatrix* StackedMatrix::Evaluate(MatrixType mtx) +{ + REPORT + Tracer tr("Stack"); +#ifdef TEMPS_DESTROYED_QUICKLY + Try + { + gm2 = ((BaseMatrix*&)bm2)->Evaluate(); + gm1 = ((BaseMatrix*&)bm1)->Evaluate(); + Compare(gm1->Type() & gm2->Type(),mtx); + int nc=gm1->Ncols(); + int nr1 = gm1->Nrows(); int nr2 = gm2->Nrows(); + if (nc != gm2->Ncols()) + Throw(IncompatibleDimensionsException(*gm1, *gm2)); + GeneralMatrix* gmx = mtx.New(nr1+nr2,nc,this); + MatrixRow mr1(gm1, LoadOnEntry); MatrixRow mr2(gm2, LoadOnEntry); + MatrixRow mr(gmx, StoreOnExit+DirectPart); + while (nr1--) { mr.Copy(mr1); mr1.Next(); mr.Next(); } + while (nr2--) { mr.Copy(mr2); mr2.Next(); mr.Next(); } + gmx->ReleaseAndDelete(); gm1->tDelete(); gm2->tDelete(); delete this; + return gmx; + } + CatchAll { delete this; ReThrow; } +#ifndef UseExceptions + return 0; +#endif +#else + gm2 = ((BaseMatrix*&)bm2)->Evaluate(); + gm1 = ((BaseMatrix*&)bm1)->Evaluate(); + Compare(gm1->Type() & gm2->Type(),mtx); + int nc=gm1->Ncols(); + int nr1 = gm1->Nrows(); int nr2 = gm2->Nrows(); + if (nc != gm2->Ncols()) + Throw(IncompatibleDimensionsException(*gm1, *gm2)); + GeneralMatrix* gmx = mtx.New(nr1+nr2,nc,this); + MatrixRow mr1(gm1, LoadOnEntry); MatrixRow mr2(gm2, LoadOnEntry); + MatrixRow mr(gmx, StoreOnExit+DirectPart); + while (nr1--) { mr.Copy(mr1); mr1.Next(); mr.Next(); } + while (nr2--) { mr.Copy(mr2); mr2.Next(); mr.Next(); } + gmx->ReleaseAndDelete(); gm1->tDelete(); gm2->tDelete(); return gmx; +#endif +} + +// ************************* equality of matrices ******************** // + +static bool RealEqual(Real* s1, Real* s2, int n) +{ + int i = n >> 2; + while (i--) + { + if (*s1++ != *s2++) return false; if (*s1++ != *s2++) return false; + if (*s1++ != *s2++) return false; if (*s1++ != *s2++) return false; + } + i = n & 3; while (i--) if (*s1++ != *s2++) return false; + return true; +} + +static bool intEqual(int* s1, int* s2, int n) +{ + int i = n >> 2; + while (i--) + { + if (*s1++ != *s2++) return false; if (*s1++ != *s2++) return false; + if (*s1++ != *s2++) return false; if (*s1++ != *s2++) return false; + } + i = n & 3; while (i--) if (*s1++ != *s2++) return false; + return true; +} + + +bool operator==(const BaseMatrix& A, const BaseMatrix& B) +{ + Tracer tr("BaseMatrix =="); + REPORT + GeneralMatrix* gmA = ((BaseMatrix&)A).Evaluate(); + GeneralMatrix* gmB = ((BaseMatrix&)B).Evaluate(); + + if (gmA == gmB) // same matrix + { REPORT gmA->tDelete(); return true; } + + if ( gmA->Nrows() != gmB->Nrows() || gmA->Ncols() != gmB->Ncols() ) + // different dimensions + { REPORT gmA->tDelete(); gmB->tDelete(); return false; } + + // check for CroutMatrix or BandLUMatrix + MatrixType AType = gmA->Type(); MatrixType BType = gmB->Type(); + if (AType.CannotConvert() || BType.CannotConvert() ) + { + REPORT + bool bx = gmA->IsEqual(*gmB); + gmA->tDelete(); gmB->tDelete(); + return bx; + } + + // is matrix storage the same + // will need to modify if further matrix structures are introduced + if (AType == BType && gmA->BandWidth() == gmB->BandWidth()) + { // compare store + REPORT + bool bx = RealEqual(gmA->Store(),gmB->Store(),gmA->Storage()); + gmA->tDelete(); gmB->tDelete(); + return bx; + } + + // matrix storage different - just subtract + REPORT return IsZero(*gmA-*gmB); +} + +bool operator==(const GeneralMatrix& A, const GeneralMatrix& B) +{ + Tracer tr("GeneralMatrix =="); + // May or may not call tDeletes + REPORT + + if (&A == &B) // same matrix + { REPORT return true; } + + if ( A.Nrows() != B.Nrows() || A.Ncols() != B.Ncols() ) + { REPORT return false; } // different dimensions + + // check for CroutMatrix or BandLUMatrix + MatrixType AType = A.Type(); MatrixType BType = B.Type(); + if (AType.CannotConvert() || BType.CannotConvert() ) + { REPORT return A.IsEqual(B); } + + // is matrix storage the same + // will need to modify if further matrix structures are introduced + if (AType == BType && A.BandWidth() == B.BandWidth()) + { REPORT return RealEqual(A.Store(),B.Store(),A.Storage()); } + + // matrix storage different - just subtract + REPORT return IsZero(A-B); +} + +bool GeneralMatrix::IsZero() const +{ + REPORT + Real* s=store; int i = storage >> 2; + while (i--) + { + if (*s++) return false; if (*s++) return false; + if (*s++) return false; if (*s++) return false; + } + i = storage & 3; while (i--) if (*s++) return false; + return true; +} + +bool IsZero(const BaseMatrix& A) +{ + Tracer tr("BaseMatrix::IsZero"); + REPORT + GeneralMatrix* gm1 = 0; bool bx; + Try { gm1=((BaseMatrix&)A).Evaluate(); bx = gm1->IsZero(); } + CatchAll { if (gm1) gm1->tDelete(); ReThrow; } + gm1->tDelete(); + return bx; +} + +// IsEqual functions - insist matrices are of same type +// as well as equal values to be equal + +bool GeneralMatrix::IsEqual(const GeneralMatrix& A) const +{ + Tracer tr("GeneralMatrix IsEqual"); + if (A.Type() != Type()) // not same types + { REPORT return false; } + if (&A == this) // same matrix + { REPORT return true; } + if (A.nrows != nrows || A.ncols != ncols) + // different dimensions + { REPORT return false; } + // is matrix storage the same - compare store + REPORT + return RealEqual(A.store,store,storage); +} + +bool CroutMatrix::IsEqual(const GeneralMatrix& A) const +{ + Tracer tr("CroutMatrix IsEqual"); + if (A.Type() != Type()) // not same types + { REPORT return false; } + if (&A == this) // same matrix + { REPORT return true; } + if (A.nrows != nrows || A.ncols != ncols) + // different dimensions + { REPORT return false; } + // is matrix storage the same - compare store + REPORT + return RealEqual(A.store,store,storage) + && intEqual(((CroutMatrix&)A).indx, indx, nrows); +} + + +bool BandLUMatrix::IsEqual(const GeneralMatrix& A) const +{ + Tracer tr("BandLUMatrix IsEqual"); + if (A.Type() != Type()) // not same types + { REPORT return false; } + if (&A == this) // same matrix + { REPORT return true; } + if ( A.Nrows() != nrows || A.Ncols() != ncols + || ((BandLUMatrix&)A).m1 != m1 || ((BandLUMatrix&)A).m2 != m2 ) + // different dimensions + { REPORT return false; } + + // matrix storage the same - compare store + REPORT + return RealEqual(A.Store(),store,storage) + && RealEqual(((BandLUMatrix&)A).store2,store2,storage2) + && intEqual(((BandLUMatrix&)A).indx, indx, nrows); +} + + +#ifdef use_namespace +} +#endif + + diff --git a/.svn/pristine/97/975603e3a14712bb6a955ef16fea09b4b393a94a.svn-base b/.svn/pristine/97/975603e3a14712bb6a955ef16fea09b4b393a94a.svn-base new file mode 100644 index 0000000..4f12ac9 --- /dev/null +++ b/.svn/pristine/97/975603e3a14712bb6a955ef16fea09b4b393a94a.svn-base @@ -0,0 +1,201 @@ +/* + * icp6Dhelix implementation + * + * Copyright (C) Peter Schneider, Andreas Nuechter + * + * Released under the GPL version 3. + * + */ + + +/** @file + * @brief Implementation of the ICP error function minimization via helix-translation + * @author Peter Schneider. Institute of Computer Science, University of Koblenz and Landau, Germany. + * @author Andreas Nuechter. Jacobs University Bremen gGmbH, Germany + */ + +#include "slam6d/icp6Dhelix.h" + +#include "slam6d/globals.icc" +#include +using std::ios; +using std::resetiosflags; +using std::setiosflags; + +#include "newmat/newmat.h" +#include "newmat/newmatap.h" +using namespace NEWMAT; +#include + +/** + * computes a rotation matrix that rotates the points around an axis + * and a translation vector, that translates the points along a vector + * that is parallel to the rotation axis. Thus the result is a helical + * translation of the points that can be resolved thru a vector field + * v(x) = cs + c cross x, where cs and c can be build out of an error + * minimization function. + * + * See: + * H. Pottmann, S. Leopoldseder, and M. Hofer. Simultaneous + * registration of multiple views of a 3D object. + * ISPRS Archives 34/3A (2002), 265-270. + * + * @param Pairs Vector of point pairs (pairs of corresponding points) + * @param alignxf The resulting transformation matrix + * @return Error estimation of the matching (rms) + */ +double icp6D_HELIX::Point_Point_Align(const vector& Pairs, double *alignxf, + const double centroid_m[3], const double centroid_d[3]) +{ + int n = Pairs.size(); + + int i; + double sum = 0; + double error; + Matrix matB(6,6); + ColumnVector bdVec(6), ccs(6), c(3), cs(3); + matB = 0.0; + double p2x, p2y, p2z, pDistX, pDistY, pDistZ; + + double B[6][3]; + memset(&B[0][0], 0, 18 * sizeof(double)); + double bd[6]; + memset(&bd[0], 0, 6 * sizeof(double)); + + for (i = 0; i < n; i++) { + p2x = Pairs[i].p2.x; + p2y = Pairs[i].p2.y; + p2z = Pairs[i].p2.z; + + B[4][0] += -p2z; + B[3][1] += p2z; + B[5][0] += p2y; + B[3][2] += -p2y; + B[4][2] += p2x; + B[5][1] += -p2x; + B[0][0] += p2z*p2z + p2y*p2y; + B[1][0] += p2y*-p2x; + B[2][0] += -p2z*p2x; + B[1][1] += p2z*p2z + p2x*p2x; + B[2][1] += p2z*-p2y; + B[2][2] += p2x*p2x + p2y*p2y; + + + pDistX = p2x - Pairs[i].p1.x; + pDistY = p2y - Pairs[i].p1.y; + pDistZ = p2z - Pairs[i].p1.z; + + bd[0] += -p2z*pDistY + p2y*pDistZ; + bd[1] += p2z*pDistX - p2x*pDistZ; + bd[2] += -p2y*pDistX + p2x*pDistY; + bd[3] += pDistX; + bd[4] += pDistY; + bd[5] += pDistZ; + + sum += pDistX*pDistX + pDistY*pDistY + pDistZ*pDistZ; + } + + matB(4,4) = matB(5,5) = matB(6,6) = n; + + matB(1,5) = matB(5,1) = B[4][0]; + matB(2,4) = matB(4,2) = B[3][1]; + matB(1,6) = matB(6,1) = B[5][0]; + matB(3,4) = matB(4,3) = B[3][2]; + matB(3,5) = matB(5,3) = B[4][2]; + matB(2,6) = matB(6,2) = B[5][1]; + matB(1,2) = matB(2,1) = B[1][0]; + matB(1,3) = matB(3,1) = B[2][0]; + matB(2,3) = matB(3,2) = B[2][1]; + matB(1,1) = B[0][0]; + matB(2,2) = B[1][1]; + matB(3,3) = B[2][2]; + + bdVec(1) = bd[0]; + bdVec(2) = bd[1]; + bdVec(3) = bd[2]; + bdVec(4) = bd[3]; + bdVec(5) = bd[4]; + bdVec(6) = bd[5]; + + error = sqrt( sum / (double) n ); + + if (!quiet) { + cout.setf(ios::basefield); + cout << "HELIX RMS point-to-point error = " + << resetiosflags(ios::adjustfield) << setiosflags(ios::internal) + << resetiosflags(ios::floatfield) << setiosflags(ios::fixed) + << std::setw(10) << std::setprecision(7) + << error + << " using " << std::setw(6) << n << " points" << endl; + } + + ccs = matB.i() * bdVec; + + int vectorOffset = 0; + computeRt( &ccs, vectorOffset, alignxf); + + return error; +} + + +void icp6D_HELIX::computeRt(const ColumnVector* ccs, const int vectorOffset, double *alignxf) +{ + ColumnVector c(3), cs(3); + c(1) = -(*ccs)(vectorOffset + 1); + c(2) = -(*ccs)(vectorOffset + 2); + c(3) = -(*ccs)(vectorOffset + 3); + cs(1) = -(*ccs)(vectorOffset + 4); + cs(2) = -(*ccs)(vectorOffset + 5); + cs(3) = -(*ccs)(vectorOffset + 6); + + double CLength = sqrt(c.SumSquare()); + double rotationCheck = c(1)*cs(1) + c(2)*cs(2) + c(3)*cs(3); //c.t() * cs; + Matrix R (3,3); + double angle = atan(CLength); //bemerkung: hier minus gesetzt + + ColumnVector g = c / CLength; + double b0, b1, b2, b3; + double sinAngle = sin(-angle/2); + b0 = cos(-angle/2); + b1 = g(1) * sinAngle; + b2 = g(2) * sinAngle; + b3 = g(3) * sinAngle; + + R(1,1) = b0*b0 + b1*b1 - b2*b2 - b3*b3; + R(1,2) = 2*(b1*b2 + b0*b3); + R(1,3) = 2*(b1*b3 - b0*b2); + R(2,1) = 2*(b1*b2 - b0*b3); + R(2,2) = b0*b0 - b1*b1 + b2*b2 - b3*b3; + R(2,3) = 2*(b2*b3 + b0*b1); + R(3,1) = 2*(b1*b3 + b0*b2); + R(3,2) = 2*(b2*b3 - b0*b1); + R(3,3) = b0*b0 - b1*b1 - b2*b2 + b3*b3; + R = R / (b0*b0 + b1*b1 + b2*b2 + b3*b3); + + double skewValue = rotationCheck / (CLength*CLength); + ColumnVector gs = (cs - (c * skewValue)) / CLength; + ColumnVector pTemp(3); + pTemp(1) = g(2)*gs(3) - g(3)*gs(2); + pTemp(2) = g(3)*gs(1) - g(1)*gs(3); + pTemp(3) = g(1)*gs(2) - g(2)*gs(1); + ColumnVector t = R * -pTemp + g*(skewValue * angle) + pTemp; + + alignxf[0] = R(1,1); + alignxf[1] = R(2,1); + alignxf[2] = R(3,1); + alignxf[3] = 0; + alignxf[4] = R(1,2); + alignxf[5] = R(2,2); + alignxf[6] = R(3,2); + alignxf[7] = 0; + alignxf[8] = R(1,3); + alignxf[9] = R(2,3); + alignxf[10] = R(3,3); + alignxf[11] = 0; + alignxf[12] = t(1); + alignxf[13] = t(2); + alignxf[14] = t(3); + alignxf[15] = 1; +} + + diff --git a/.svn/pristine/97/976a2c45ec1402d9f03d2a4b0e294fd367dbac7f.svn-base b/.svn/pristine/97/976a2c45ec1402d9f03d2a4b0e294fd367dbac7f.svn-base new file mode 100644 index 0000000..2828fd2 --- /dev/null +++ b/.svn/pristine/97/976a2c45ec1402d9f03d2a4b0e294fd367dbac7f.svn-base @@ -0,0 +1,405 @@ +//---------------------------------------------------------------------- +// File: kd_tree.cpp +// Programmer: Sunil Arya and David Mount +// Description: Basic methods for kd-trees. +// Last modified: 01/04/05 (Version 1.0) +//---------------------------------------------------------------------- +// Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +// David Mount. All Rights Reserved. +// +// This software and related documentation is part of the Approximate +// Nearest Neighbor Library (ANN). This software is provided under +// the provisions of the Lesser GNU Public License (LGPL). See the +// file ../ReadMe.txt for further information. +// +// The University of Maryland (U.M.) and the authors make no +// representations about the suitability or fitness of this software for +// any purpose. It is provided "as is" without express or implied +// warranty. +//---------------------------------------------------------------------- +// History: +// Revision 0.1 03/04/98 +// Initial release +// Revision 1.0 04/01/05 +// Increased aspect ratio bound (ANN_AR_TOOBIG) from 100 to 1000. +// Fixed leaf counts to count trivial leaves. +// Added optional pa, pi arguments to Skeleton kd_tree constructor +// for use in load constructor. +// Added annClose() to eliminate KD_TRIVIAL memory leak. +//---------------------------------------------------------------------- + +#include "kd_tree.h" // kd-tree declarations +#include "kd_split.h" // kd-tree splitting rules +#include "kd_util.h" // kd-tree utilities +#include // performance evaluation + +//---------------------------------------------------------------------- +// Global data +// +// For some splitting rules, especially with small bucket sizes, +// it is possible to generate a large number of empty leaf nodes. +// To save storage we allocate a single trivial leaf node which +// contains no points. For messy coding reasons it is convenient +// to have it reference a trivial point index. +// +// KD_TRIVIAL is allocated when the first kd-tree is created. It +// must *never* deallocated (since it may be shared by more than +// one tree). +//---------------------------------------------------------------------- +static int IDX_TRIVIAL[] = {0}; // trivial point index +ANNkd_leaf *KD_TRIVIAL = NULL; // trivial leaf node + +//---------------------------------------------------------------------- +// Printing the kd-tree +// These routines print a kd-tree in reverse inorder (high then +// root then low). (This is so that if you look at the output +// from the right side it appear from left to right in standard +// inorder.) When outputting leaves we output only the point +// indices rather than the point coordinates. There is an option +// to print the point coordinates separately. +// +// The tree printing routine calls the printing routines on the +// individual nodes of the tree, passing in the level or depth +// in the tree. The level in the tree is used to print indentation +// for readability. +//---------------------------------------------------------------------- + +void ANNkd_split::print( // print splitting node + int level, // depth of node in tree + ostream &out) // output stream +{ + child[ANN_HI]->print(level+1, out); // print high child + out << " "; + for (int i = 0; i < level; i++) // print indentation + out << ".."; + out << "Split cd=" << cut_dim << " cv=" << cut_val; + out << " lbnd=" << cd_bnds[ANN_LO]; + out << " hbnd=" << cd_bnds[ANN_HI]; + out << "\n"; + child[ANN_LO]->print(level+1, out); // print low child +} + +void ANNkd_leaf::print( // print leaf node + int level, // depth of node in tree + ostream &out) // output stream +{ + + out << " "; + for (int i = 0; i < level; i++) // print indentation + out << ".."; + + if (this == KD_TRIVIAL) { // canonical trivial leaf node + out << "Leaf (trivial)\n"; + } + else{ + out << "Leaf n=" << n_pts << " <"; + for (int j = 0; j < n_pts; j++) { + out << bkt[j]; + if (j < n_pts-1) out << ","; + } + out << ">\n"; + } +} + +void ANNkd_tree::Print( // print entire tree + ANNbool with_pts, // print points as well? + ostream &out) // output stream +{ + out << "ANN Version " << ANNversion << "\n"; + if (with_pts) { // print point coordinates + out << " Points:\n"; + for (int i = 0; i < n_pts; i++) { + out << "\t" << i << ": "; + annPrintPt(pts[i], dim, out); + out << "\n"; + } + } + if (root == NULL) // empty tree? + out << " Null tree.\n"; + else { + root->print(0, out); // invoke printing at root + } +} + +//---------------------------------------------------------------------- +// kd_tree statistics (for performance evaluation) +// This routine compute various statistics information for +// a kd-tree. It is used by the implementors for performance +// evaluation of the data structure. +//---------------------------------------------------------------------- + +#define MAX(a,b) ((a) > (b) ? (a) : (b)) + +void ANNkdStats::merge(const ANNkdStats &st) // merge stats from child +{ + n_lf += st.n_lf; n_tl += st.n_tl; + n_spl += st.n_spl; n_shr += st.n_shr; + depth = MAX(depth, st.depth); + sum_ar += st.sum_ar; +} + +//---------------------------------------------------------------------- +// Update statistics for nodes +//---------------------------------------------------------------------- + +const double ANN_AR_TOOBIG = 1000; // too big an aspect ratio + +void ANNkd_leaf::getStats( // get subtree statistics + int dim, // dimension of space + ANNkdStats &st, // stats (modified) + ANNorthRect &bnd_box) // bounding box +{ + st.reset(); + st.n_lf = 1; // count this leaf + if (this == KD_TRIVIAL) st.n_tl = 1; // count trivial leaf + double ar = annAspectRatio(dim, bnd_box); // aspect ratio of leaf + // incr sum (ignore outliers) + st.sum_ar += float(ar < ANN_AR_TOOBIG ? ar : ANN_AR_TOOBIG); +} + +void ANNkd_split::getStats( // get subtree statistics + int dim, // dimension of space + ANNkdStats &st, // stats (modified) + ANNorthRect &bnd_box) // bounding box +{ + ANNkdStats ch_stats; // stats for children + // get stats for low child + ANNcoord hv = bnd_box.hi[cut_dim]; // save box bounds + bnd_box.hi[cut_dim] = cut_val; // upper bound for low child + ch_stats.reset(); // reset + child[ANN_LO]->getStats(dim, ch_stats, bnd_box); + st.merge(ch_stats); // merge them + bnd_box.hi[cut_dim] = hv; // restore bound + // get stats for high child + ANNcoord lv = bnd_box.lo[cut_dim]; // save box bounds + bnd_box.lo[cut_dim] = cut_val; // lower bound for high child + ch_stats.reset(); // reset + child[ANN_HI]->getStats(dim, ch_stats, bnd_box); + st.merge(ch_stats); // merge them + bnd_box.lo[cut_dim] = lv; // restore bound + + st.depth++; // increment depth + st.n_spl++; // increment number of splits +} + +//---------------------------------------------------------------------- +// getStats +// Collects a number of statistics related to kd_tree or +// bd_tree. +//---------------------------------------------------------------------- + +void ANNkd_tree::getStats( // get tree statistics + ANNkdStats &st) // stats (modified) +{ + st.reset(dim, n_pts, bkt_size); // reset stats + // create bounding box + ANNorthRect bnd_box(dim, bnd_box_lo, bnd_box_hi); + if (root != NULL) { // if nonempty tree + root->getStats(dim, st, bnd_box); // get statistics + st.avg_ar = st.sum_ar / st.n_lf; // average leaf asp ratio + } +} + +//---------------------------------------------------------------------- +// kd_tree destructor +// The destructor just frees the various elements that were +// allocated in the construction process. +//---------------------------------------------------------------------- + +ANNkd_tree::~ANNkd_tree() // tree destructor +{ + if (root != NULL) delete root; + if (pidx != NULL) delete [] pidx; + if (bnd_box_lo != NULL) annDeallocPt(bnd_box_lo); + if (bnd_box_hi != NULL) annDeallocPt(bnd_box_hi); +} + +//---------------------------------------------------------------------- +// This is called with all use of ANN is finished. It eliminates the +// minor memory leak caused by the allocation of KD_TRIVIAL. +//---------------------------------------------------------------------- +void annClose() // close use of ANN +{ + if (KD_TRIVIAL != NULL) { + delete KD_TRIVIAL; + KD_TRIVIAL = NULL; + } +} + +//---------------------------------------------------------------------- +// kd_tree constructors +// There is a skeleton kd-tree constructor which sets up a +// trivial empty tree. The last optional argument allows +// the routine to be passed a point index array which is +// assumed to be of the proper size (n). Otherwise, one is +// allocated and initialized to the identity. Warning: In +// either case the destructor will deallocate this array. +// +// As a kludge, we need to allocate KD_TRIVIAL if one has not +// already been allocated. (This is because I'm too dumb to +// figure out how to cause a pointer to be allocated at load +// time.) +//---------------------------------------------------------------------- + +void ANNkd_tree::SkeletonTree( // construct skeleton tree + int n, // number of points + int dd, // dimension + int bs, // bucket size + ANNpointArray pa, // point array + ANNidxArray pi) // point indices +{ + dim = dd; // initialize basic elements + n_pts = n; + bkt_size = bs; + pts = pa; // initialize points array + + root = NULL; // no associated tree yet + + if (pi == NULL) { // point indices provided? + pidx = new ANNidx[n]; // no, allocate space for point indices + for (int i = 0; i < n; i++) { + pidx[i] = i; // initially identity + } + } + else { + pidx = pi; // yes, use them + } + + bnd_box_lo = bnd_box_hi = NULL; // bounding box is nonexistent + if (KD_TRIVIAL == NULL) // no trivial leaf node yet? + KD_TRIVIAL = new ANNkd_leaf(0, IDX_TRIVIAL); // allocate it +} + +ANNkd_tree::ANNkd_tree( // basic constructor + int n, // number of points + int dd, // dimension + int bs) // bucket size +{ SkeletonTree(n, dd, bs); } // construct skeleton tree + +//---------------------------------------------------------------------- +// rkd_tree - recursive procedure to build a kd-tree +// +// Builds a kd-tree for points in pa as indexed through the +// array pidx[0..n-1] (typically a subarray of the array used in +// the top-level call). This routine permutes the array pidx, +// but does not alter pa[]. +// +// The construction is based on a standard algorithm for constructing +// the kd-tree (see Friedman, Bentley, and Finkel, ``An algorithm for +// finding best matches in logarithmic expected time,'' ACM Transactions +// on Mathematical Software, 3(3):209-226, 1977). The procedure +// operates by a simple divide-and-conquer strategy, which determines +// an appropriate orthogonal cutting plane (see below), and splits +// the points. When the number of points falls below the bucket size, +// we simply store the points in a leaf node's bucket. +// +// One of the arguments is a pointer to a splitting routine, +// whose prototype is: +// +// void split( +// ANNpointArray pa, // complete point array +// ANNidxArray pidx, // point array (permuted on return) +// ANNorthRect &bnds, // bounds of current cell +// int n, // number of points +// int dim, // dimension of space +// int &cut_dim, // cutting dimension +// ANNcoord &cut_val, // cutting value +// int &n_lo) // no. of points on low side of cut +// +// This procedure selects a cutting dimension and cutting value, +// partitions pa about these values, and returns the number of +// points on the low side of the cut. +//---------------------------------------------------------------------- + +ANNkd_ptr rkd_tree( // recursive construction of kd-tree + ANNpointArray pa, // point array + ANNidxArray pidx, // point indices to store in subtree + int n, // number of points + int dim, // dimension of space + int bsp, // bucket space + ANNorthRect &bnd_box, // bounding box for current node + ANNkd_splitter splitter) // splitting routine +{ + if (n <= bsp) { // n small, make a leaf node + if (n == 0) // empty leaf node + return KD_TRIVIAL; // return (canonical) empty leaf + else // construct the node and return + return new ANNkd_leaf(n, pidx); + } + else { // n large, make a splitting node + int cd; // cutting dimension + ANNcoord cv; // cutting value + int n_lo; // number on low side of cut + ANNkd_node *lo, *hi; // low and high children + + // invoke splitting procedure + (*splitter)(pa, pidx, bnd_box, n, dim, cd, cv, n_lo); + + ANNcoord lv = bnd_box.lo[cd]; // save bounds for cutting dimension + ANNcoord hv = bnd_box.hi[cd]; + + bnd_box.hi[cd] = cv; // modify bounds for left subtree + lo = rkd_tree( // build left subtree + pa, pidx, n_lo, // ...from pidx[0..n_lo-1] + dim, bsp, bnd_box, splitter); + bnd_box.hi[cd] = hv; // restore bounds + + bnd_box.lo[cd] = cv; // modify bounds for right subtree + hi = rkd_tree( // build right subtree + pa, pidx + n_lo, n-n_lo,// ...from pidx[n_lo..n-1] + dim, bsp, bnd_box, splitter); + bnd_box.lo[cd] = lv; // restore bounds + + // create the splitting node + ANNkd_split *ptr = new ANNkd_split(cd, cv, lv, hv, lo, hi); + + return ptr; // return pointer to this node + } +} + +//---------------------------------------------------------------------- +// kd-tree constructor +// This is the main constructor for kd-trees given a set of points. +// It first builds a skeleton tree, then computes the bounding box +// of the data points, and then invokes rkd_tree() to actually +// build the tree, passing it the appropriate splitting routine. +//---------------------------------------------------------------------- + +ANNkd_tree::ANNkd_tree( // construct from point array + ANNpointArray pa, // point array (with at least n pts) + int n, // number of points + int dd, // dimension + int bs, // bucket size + ANNsplitRule split) // splitting method +{ + SkeletonTree(n, dd, bs); // set up the basic stuff + pts = pa; // where the points are + if (n == 0) return; // no points--no sweat + + ANNorthRect bnd_box(dd); // bounding box for points + annEnclRect(pa, pidx, n, dd, bnd_box);// construct bounding rectangle + // copy to tree structure + bnd_box_lo = annCopyPt(dd, bnd_box.lo); + bnd_box_hi = annCopyPt(dd, bnd_box.hi); + + switch (split) { // build by rule + case ANN_KD_STD: // standard kd-splitting rule + root = rkd_tree(pa, pidx, n, dd, bs, bnd_box, kd_split); + break; + case ANN_KD_MIDPT: // midpoint split + root = rkd_tree(pa, pidx, n, dd, bs, bnd_box, midpt_split); + break; + case ANN_KD_FAIR: // fair split + root = rkd_tree(pa, pidx, n, dd, bs, bnd_box, fair_split); + break; + case ANN_KD_SUGGEST: // best (in our opinion) + case ANN_KD_SL_MIDPT: // sliding midpoint split + root = rkd_tree(pa, pidx, n, dd, bs, bnd_box, sl_midpt_split); + break; + case ANN_KD_SL_FAIR: // sliding fair split + root = rkd_tree(pa, pidx, n, dd, bs, bnd_box, sl_fair_split); + break; + default: + annError("Illegal splitting method", ANNabort); + } +} diff --git a/.svn/pristine/97/977d84d8d5ad04398d876fe1dad09089bb5d1c58.svn-base b/.svn/pristine/97/977d84d8d5ad04398d876fe1dad09089bb5d1c58.svn-base new file mode 100644 index 0000000..b4dc78f --- /dev/null +++ b/.svn/pristine/97/977d84d8d5ad04398d876fe1dad09089bb5d1c58.svn-base @@ -0,0 +1,19 @@ +/* + * shapes implementation + * + * Copyright (C) Dorit Borrmann + * + * Released under the GPL version 3. + * + */ + +#include "shapes/ransac_Boctree.h" +#include "shapes/NumberRecOctree.h" +#include "shapes/ransac.h" + +int main() { + CollisionPlane plane(1.0); // 1.0 cm maxdist + + Ransac(plane,0); + return 0; +} diff --git a/.svn/pristine/97/9791a102352df3ac0215644f050b84a19ae5f1e0.svn-base b/.svn/pristine/97/9791a102352df3ac0215644f050b84a19ae5f1e0.svn-base new file mode 100644 index 0000000..794b21d --- /dev/null +++ b/.svn/pristine/97/9791a102352df3ac0215644f050b84a19ae5f1e0.svn-base @@ -0,0 +1,31 @@ +/* + this file was suggested by Uffe Holst Jun05,2000 + to compile gocr using SAS/C under AmigaOS + + uhc@post6.tele.dk + + SAS/C propably does not support ANSI C++, therefore this changes + + I am a little bit confused about using declaration and + macro definition of abs(). I think that should not be necessary. + Tell me, if you have an Amiga and you can give answer + to the following questions. + + Joerg Schulenburg, see README for EMAIL-address + + */ + +#ifdef _AMIGA +#ifdef __SASC +#if 0 +#include /* may be this can be removed ??? */ +#include /* may be this can be removed ??? */ +extern int abs(int); /* may be this can be removed ??? */ +#endif +#ifndef abs +#define abs(i) ((i) < 0 ? -(i) : (i)) +#endif +#endif +#endif + + diff --git a/.svn/pristine/97/97f7ea5e7da84b7fbe5743d6ffae5f03dd7cef79.svn-base b/.svn/pristine/97/97f7ea5e7da84b7fbe5743d6ffae5f03dd7cef79.svn-base new file mode 100644 index 0000000..61d8fbd --- /dev/null +++ b/.svn/pristine/97/97f7ea5e7da84b7fbe5743d6ffae5f03dd7cef79.svn-base @@ -0,0 +1,140 @@ +/* + * allocator implementation + * + * Copyright (C) Thomas Escher, Kai Lingemann + * + * Released under the GPL version 3. + * + */ + +#include "slam6d/allocator.h" + +using std::vector; +#include +using std::cout; +using std::endl; +#include +using std::runtime_error; + +#include //memset + + + +ChunkAllocator::ChunkAllocator(unsigned int _csize) : + chunksize(_csize), index(_csize), memsize(0), wastedspace(0) +{} + +ChunkAllocator::~ChunkAllocator() +{ + for(unsigned int i = 0; i < mem.size(); i++) { + delete[] mem[i]; + } +} + +void ChunkAllocator::printSize() const +{ + cout << "Alloc'd " << memsize/(1024*1024.0) << " Mb " << endl; + cout << " wasted " << wastedspace/(1024*1024.0) << " Mb " << endl; +} + +unsigned char* ChunkAllocator::allocate(unsigned int size) +{ + unsigned char* chunk; + if (size + index > chunksize) { + // create new chunk + wastedspace += (chunksize-index); + // check for oversize + if (chunksize > size) { + chunk = new unsigned char[chunksize]; + memset(chunk, 0, chunksize); + memsize+=chunksize; + } else { + chunk = new unsigned char[size]; + memset(chunk, 0, size); + memsize+=size; + } + mem.push_back(chunk); + index = 0; + } else { + // use last chunk + chunk = mem.back(); + chunk = chunk + index; + } + index += size; + return chunk; +} + + + +PackedChunkAllocator::PackedChunkAllocator(unsigned int _csize) : + chunksize(_csize), memsize(0) +{} + +PackedChunkAllocator::~PackedChunkAllocator() +{ + for(unsigned int i = 0; i < mem.size(); i++) { + delete[] mem[i]; + } +} + +void PackedChunkAllocator::printSize() const +{ + cout << "Alloc'd " << memsize/(1024*1024.0) << " Mb " << endl; + + unsigned long int wastedspace = 0; + for(unsigned int i = 0; i < index.size(); i++) { + if(index[i] < chunksize) { + wastedspace += chunksize - index[i]; + } + } + cout << "wasted " << wastedspace/(1024*1024.0) << " Mb " << endl; +} + +unsigned char* PackedChunkAllocator::allocate(unsigned int size) +{ + unsigned char* chunk; + for (unsigned int i = 0; i < index.size(); i++) { + if ( !(size + index[i] > chunksize) ) { + // found a suitable entry + chunk = mem[i]; + chunk = chunk + index[i]; // pointer to free byte + index[i] += size; // increment index + return chunk; + } + } + // no chunk is large enough... make new one + if (chunksize > size) { + chunk = new unsigned char[chunksize]; + memset(chunk, 0, chunksize); + memsize += chunksize; + } else { // in case the requested memory is larger than our chunks, make a single chunk thats large enough + chunk = new unsigned char[size]; + memset(chunk, 0, size); + memsize += size; + } + mem.push_back(chunk); + index.push_back(size); + return chunk; +} + +SequentialAllocator::SequentialAllocator(unsigned char* base_ptr, unsigned int max_size) : + m_base_ptr(base_ptr), m_size(max_size), m_index(0) +{} + +SequentialAllocator::~SequentialAllocator() +{} + +void SequentialAllocator::printSize() const +{ + cout << "Using " << m_index << " of " << m_size << " bytes." << endl; +} + +unsigned char* SequentialAllocator::allocate(unsigned int size) +{ + if(m_index + size > m_size) { + throw runtime_error("SequentialAllocator memory overflow"); + } + unsigned char* r = m_base_ptr + m_index; + m_index += size; + return r; +} diff --git a/.svn/pristine/98/981260cea4afb6b9d6083b246f02e4ab7cc78183.svn-base b/.svn/pristine/98/981260cea4afb6b9d6083b246f02e4ab7cc78183.svn-base new file mode 100644 index 0000000..4b96439 --- /dev/null +++ b/.svn/pristine/98/981260cea4afb6b9d6083b246f02e4ab7cc78183.svn-base @@ -0,0 +1,210 @@ +/* + * scan_io_ks_rgb implementation + * + * Copyright (C) Thomas Escher, Kai Lingemann, Andreas Nuechter + * + * Released under the GPL version 3. + * + */ + +/** + * @file + * @brief Implementation of reading 3D scans + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Thomas Escher. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "scanio/scan_io_ks_rgb.h" + +#include +using std::cout; +using std::cerr; +using std::endl; +#include + +#ifdef _MSC_VER +#include +#endif + +#include +#include +using namespace boost::filesystem; + +#include "slam6d/globals.icc" + + + +#define DATA_PATH_PREFIX "Color_ScanPos" +#define DATA_PATH_SUFFIX " - Scan001.txt" +#define POSE_PATH_PREFIX "scan" +#define POSE_PATH_SUFFIX ".pose" + + + +std::list ScanIO_ks_rgb::readDirectory(const char* dir_path, unsigned int start, unsigned int end) +{ + std::list identifiers; + for(unsigned int i = start; i <= end; ++i) { + // identifier is /d/d/d (001-999) + std::string identifier(to_string(i,3)); + // scan consists of data (.txt) and pose (.pose) files + path data(dir_path); + data /= path(std::string(DATA_PATH_PREFIX) + identifier + DATA_PATH_SUFFIX); + path pose(dir_path); + pose /= path(std::string(POSE_PATH_PREFIX) + identifier + POSE_PATH_SUFFIX); + // stop if part of a scan is missing or end by absence is detected + if(!exists(data) || !exists(pose)) + break; + identifiers.push_back(identifier); + } + return identifiers; +} + +void ScanIO_ks_rgb::readPose(const char* dir_path, const char* identifier, double* pose) +{ + unsigned int i; + + path pose_path(dir_path); + pose_path /= path(std::string(POSE_PATH_PREFIX) + identifier + POSE_PATH_SUFFIX); + if(!exists(pose_path)) + throw std::runtime_error(std::string("There is no pose file for [") + identifier + "] in [" + dir_path + "]"); + + // open pose file + ifstream pose_file(pose_path); + + // if the file is open, read contents + if(pose_file.good()) { + // read 6 plain doubles + for(i = 0; i < 6; ++i) pose_file >> pose[i]; + pose_file.close(); +/* +Don't use this part of io_ks because the original io_ks_rgb didn't +have it either, reasoning was "we never got ks_rgb scans with pose", so +the pose files created were already corrected in terms of offset and +scaling + // CAD map -> pose correction [ks x/y/z -> slam -z/y/x] + double tmp; + tmp = pose[0]; + pose[0] = - pose[2]; + pose[2] = tmp; + + // convert coordinate to cm + for(i = 0; i < 3; ++i) pose[i] *= 100.0; +*/ + // convert angles from deg to rad + for(i = 3; i < 6; ++i) pose[i] = rad(pose[i]); + } else { + throw std::runtime_error(std::string("Pose file could not be opened for [") + identifier + "] in [" + dir_path + "]"); + } +} + +bool ScanIO_ks_rgb::supports(IODataType type) +{ + return !!(type & (DATA_XYZ | DATA_RGB | DATA_REFLECTANCE | DATA_AMPLITUDE)); +} + +void ScanIO_ks_rgb::readScan(const char* dir_path, const char* identifier, PointFilter& filter, std::vector* xyz, std::vector* rgb, std::vector* reflectance, std::vector* amplitude, std::vector* type, std::vector* deviation) +{ + unsigned int i; + + // error handling + path data_path(dir_path); + data_path /= path(std::string(DATA_PATH_PREFIX) + identifier + DATA_PATH_SUFFIX); + if(!exists(data_path)) + throw std::runtime_error(std::string("There is no scan file for [") + identifier + "] in [" + dir_path + "]"); + + + // TODO: support for amplitude and reflectance + if(xyz != 0 || rgb != 0 || reflectance != 0 || amplitude != 0) { + // open data file + ifstream data_file(data_path); + data_file.exceptions(ifstream::eofbit|ifstream::failbit|ifstream::badbit); + + // overread the first line + char dummy[255]; + data_file.getline(dummy, 255); + + // read points + double point[8]; + double tmp; + while(data_file.good()) { + try { + for(i = 0; i < 8; ++i) data_file >> point[i]; + } catch(std::ios_base::failure& e) { + break; + } + + // still convert the points, needed for range check + + // the enemy's x/y/z is mapped to slam's x/z/y, shuffle time! + tmp = point[1]; + point[1] = point[2]; + point[2] = tmp; + + // TODO: offset is application specific, handle with care + // correct constant offset (in slam coordinates) + point[0] -= 70000.0; // x + point[2] -= 20000.0; // z + + // convert coordinate to cm + for(i = 0; i < 3; ++i) point[i] *= 100.0; + + // apply filter and insert point + if(filter.check(point)) { + if(xyz != 0) { + for(i = 0; i < 3; ++i) xyz->push_back(point[i]); + } + if(rgb != 0) { + for(i = 3; i < 6; ++i) rgb->push_back( + static_cast(point[i] * 255.0)); + } + if(reflectance != 0) { + reflectance->push_back(point[7]); + } + if(amplitude != 0) { + amplitude->push_back(point[6]); + } + } + } + data_file.close(); + } +} + + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_ks_rgb; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/.svn/pristine/98/983320b68c042512d071deb5c13b31aa9158271d.svn-base b/.svn/pristine/98/983320b68c042512d071deb5c13b31aa9158271d.svn-base new file mode 100644 index 0000000..ba93def --- /dev/null +++ b/.svn/pristine/98/983320b68c042512d071deb5c13b31aa9158271d.svn-base @@ -0,0 +1,14 @@ +#include "veloslam/veloscan.h" +#include "veloslam/svm.h" +#include "veloslam/multiscan_random_field.h" + +Random_field::Random_field(void) +{ + +} + +Random_field::~Random_field(void) +{ + +} + diff --git a/.svn/pristine/98/9896224915ac3a2989e49be56e9099f9408a90ff.svn-base b/.svn/pristine/98/9896224915ac3a2989e49be56e9099f9408a90ff.svn-base new file mode 100644 index 0000000..2837e95 --- /dev/null +++ b/.svn/pristine/98/9896224915ac3a2989e49be56e9099f9408a90ff.svn-base @@ -0,0 +1,45 @@ +# Copyright (C) 2007 by Crist贸bal Carnero Li帽谩n +# grendel.ccl@gmail.com +# +# This file is part of cvBlob. +# +# cvBlob is free software: you can redistribute it and/or modify +# it under the terms of the Lesser GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cvBlob is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# Lesser GNU General Public License for more details. +# +# You should have received a copy of the Lesser GNU General Public License +# along with cvBlob. If not, see . +# + +IF (WITH_THERMO) + +MESSAGE(STATUS "With cvblob") +find_package(OpenCV REQUIRED) + +set(CVBLOB_SRCS + cvblob.cpp + cvlabel.cpp + cvaux.cpp + cvcontour.cpp + cvtrack.cpp + cvcolor.cpp +) + +set_source_files_properties(${cvBlob_SRC} + PROPERTIES + COMPILE_FLAGS "-O3" +) + +add_library(cvblob STATIC ${CVBLOB_SRCS}) + +IF(EXPORT_SHARED_LIBS) +add_library(cvblob_s SHARED ${CVBLOB_SRCS}) +ENDIF(EXPORT_SHARED_LIBS) + +ENDIF (WITH_THERMO) diff --git a/.svn/pristine/98/98a7231ea0449be460d625f1fd5607a69edc62a3.svn-base b/.svn/pristine/98/98a7231ea0449be460d625f1fd5607a69edc62a3.svn-base new file mode 100644 index 0000000..2355377 --- /dev/null +++ b/.svn/pristine/98/98a7231ea0449be460d625f1fd5607a69edc62a3.svn-base @@ -0,0 +1,446 @@ +//---------------------------------------------------------------------- +// File: kd_dump.cc +// Programmer: David Mount +// Description: Dump and Load for kd- and bd-trees +// Last modified: 01/04/05 (Version 1.0) +//---------------------------------------------------------------------- +// Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +// David Mount. All Rights Reserved. +// +// This software and related documentation is part of the Approximate +// Nearest Neighbor Library (ANN). This software is provided under +// the provisions of the Lesser GNU Public License (LGPL). See the +// file ../ReadMe.txt for further information. +// +// The University of Maryland (U.M.) and the authors make no +// representations about the suitability or fitness of this software for +// any purpose. It is provided "as is" without express or implied +// warranty. +//---------------------------------------------------------------------- +// History: +// Revision 0.1 03/04/98 +// Initial release +// Revision 1.0 04/01/05 +// Moved dump out of kd_tree.cc into this file. +// Added kd-tree load constructor. +//---------------------------------------------------------------------- +// This file contains routines for dumping kd-trees and bd-trees and +// reloading them. (It is an abuse of policy to include both kd- and +// bd-tree routines in the same file, sorry. There should be no problem +// in deleting the bd- versions of the routines if they are not +// desired.) +//---------------------------------------------------------------------- + +#include +#include +#include "kd_tree.h" // kd-tree declarations +#include "bd_tree.h" // bd-tree declarations + +using namespace std; // make std:: available + +//---------------------------------------------------------------------- +// Constants +//---------------------------------------------------------------------- + +const int STRING_LEN = 500; // maximum string length +const double EPSILON = 1E-5; // small number for float comparison + +enum ANNtreeType {KD_TREE, BD_TREE}; // tree types (used in loading) + +//---------------------------------------------------------------------- +// Procedure declarations +//---------------------------------------------------------------------- + +static ANNkd_ptr annReadDump( // read dump file + istream &in, // input stream + ANNtreeType tree_type, // type of tree expected + ANNpointArray &the_pts, // new points (if applic) + ANNidxArray &the_pidx, // point indices (returned) + int &the_dim, // dimension (returned) + int &the_n_pts, // number of points (returned) + int &the_bkt_size, // bucket size (returned) + ANNpoint &the_bnd_box_lo, // low bounding point + ANNpoint &the_bnd_box_hi); // high bounding point + +static ANNkd_ptr annReadTree( // read tree-part of dump file + istream &in, // input stream + ANNtreeType tree_type, // type of tree expected + ANNidxArray the_pidx, // point indices (modified) + int &next_idx); // next index (modified) + +//---------------------------------------------------------------------- +// ANN kd- and bd-tree Dump Format +// The dump file begins with a header containing the version of +// ANN, an optional section containing the points, followed by +// a description of the tree. The tree is printed in preorder. +// +// Format: +// #ANN [END_OF_LINE] +// points (point coordinates: this is optional) +// 0 ... (point indices and coordinates) +// 1 ... +// ... +// tree +// ... (lower end of bounding box) +// ... (upper end of bounding box) +// If the tree is null, then a single line "null" is +// output. Otherwise the nodes of the tree are printed +// one per line in preorder. Leaves and splitting nodes +// have the following formats: +// Leaf node: +// leaf ... +// Splitting nodes: +// split +// +// For bd-trees: +// +// Shrinking nodes: +// shrink +// +// +// ... (repeated n_bnds times) +//---------------------------------------------------------------------- + +void ANNkd_tree::Dump( // dump entire tree + ANNbool with_pts, // print points as well? + ostream &out) // output stream +{ + out << "#ANN " << ANNversion << "\n"; + out.precision(ANNcoordPrec); // use full precision in dumping + if (with_pts) { // print point coordinates + out << "points " << dim << " " << n_pts << "\n"; + for (int i = 0; i < n_pts; i++) { + out << i << " "; + annPrintPt(pts[i], dim, out); + out << "\n"; + } + } + out << "tree " // print tree elements + << dim << " " + << n_pts << " " + << bkt_size << "\n"; + + annPrintPt(bnd_box_lo, dim, out); // print lower bound + out << "\n"; + annPrintPt(bnd_box_hi, dim, out); // print upper bound + out << "\n"; + + if (root == NULL) // empty tree? + out << "null\n"; + else { + root->dump(out); // invoke printing at root + } + out.precision(0); // restore default precision +} + +void ANNkd_split::dump( // dump a splitting node + ostream &out) // output stream +{ + out << "split " << cut_dim << " " << cut_val << " "; + out << cd_bnds[ANN_LO] << " " << cd_bnds[ANN_HI] << "\n"; + + child[ANN_LO]->dump(out); // print low child + child[ANN_HI]->dump(out); // print high child +} + +void ANNkd_leaf::dump( // dump a leaf node + ostream &out) // output stream +{ + if (this == KD_TRIVIAL) { // canonical trivial leaf node + out << "leaf 0\n"; // leaf no points + } + else{ + out << "leaf " << n_pts; + for (int j = 0; j < n_pts; j++) { + out << " " << bkt[j]; + } + out << "\n"; + } +} + +void ANNbd_shrink::dump( // dump a shrinking node + ostream &out) // output stream +{ + out << "shrink " << n_bnds << "\n"; + for (int j = 0; j < n_bnds; j++) { + out << bnds[j].cd << " " << bnds[j].cv << " " << bnds[j].sd << "\n"; + } + child[ANN_IN]->dump(out); // print in-child + child[ANN_OUT]->dump(out); // print out-child +} + +//---------------------------------------------------------------------- +// Load kd-tree from dump file +// This rebuilds a kd-tree which was dumped to a file. The dump +// file contains all the basic tree information according to a +// preorder traversal. We assume that the dump file also contains +// point data. (This is to guarantee the consistency of the tree.) +// If not, then an error is generated. +// +// Indirectly, this procedure allocates space for points, point +// indices, all nodes in the tree, and the bounding box for the +// tree. When the tree is destroyed, all but the points are +// deallocated. +// +// This routine calls annReadDump to do all the work. +//---------------------------------------------------------------------- + +ANNkd_tree::ANNkd_tree( // build from dump file + istream &in) // input stream for dump file +{ + int the_dim; // local dimension + int the_n_pts; // local number of points + int the_bkt_size; // local number of points + ANNpoint the_bnd_box_lo; // low bounding point + ANNpoint the_bnd_box_hi; // high bounding point + ANNpointArray the_pts; // point storage + ANNidxArray the_pidx; // point index storage + ANNkd_ptr the_root; // root of the tree + + the_root = annReadDump( // read the dump file + in, // input stream + KD_TREE, // expecting a kd-tree + the_pts, // point array (returned) + the_pidx, // point indices (returned) + the_dim, the_n_pts, the_bkt_size, // basic tree info (returned) + the_bnd_box_lo, the_bnd_box_hi); // bounding box info (returned) + + // create a skeletal tree + SkeletonTree(the_n_pts, the_dim, the_bkt_size, the_pts, the_pidx); + + bnd_box_lo = the_bnd_box_lo; + bnd_box_hi = the_bnd_box_hi; + + root = the_root; // set the root +} + +ANNbd_tree::ANNbd_tree( // build bd-tree from dump file + istream &in) : ANNkd_tree() // input stream for dump file +{ + int the_dim; // local dimension + int the_n_pts; // local number of points + int the_bkt_size; // local number of points + ANNpoint the_bnd_box_lo; // low bounding point + ANNpoint the_bnd_box_hi; // high bounding point + ANNpointArray the_pts; // point storage + ANNidxArray the_pidx; // point index storage + ANNkd_ptr the_root; // root of the tree + + the_root = annReadDump( // read the dump file + in, // input stream + BD_TREE, // expecting a bd-tree + the_pts, // point array (returned) + the_pidx, // point indices (returned) + the_dim, the_n_pts, the_bkt_size, // basic tree info (returned) + the_bnd_box_lo, the_bnd_box_hi); // bounding box info (returned) + + // create a skeletal tree + SkeletonTree(the_n_pts, the_dim, the_bkt_size, the_pts, the_pidx); + bnd_box_lo = the_bnd_box_lo; + bnd_box_hi = the_bnd_box_hi; + + root = the_root; // set the root +} + +//---------------------------------------------------------------------- +// annReadDump - read a dump file +// +// This procedure reads a dump file, constructs a kd-tree +// and returns all the essential information needed to actually +// construct the tree. Because this procedure is used for +// constructing both kd-trees and bd-trees, the second argument +// is used to indicate which type of tree we are expecting. +//---------------------------------------------------------------------- + +static ANNkd_ptr annReadDump( + istream &in, // input stream + ANNtreeType tree_type, // type of tree expected + ANNpointArray &the_pts, // new points (returned) + ANNidxArray &the_pidx, // point indices (returned) + int &the_dim, // dimension (returned) + int &the_n_pts, // number of points (returned) + int &the_bkt_size, // bucket size (returned) + ANNpoint &the_bnd_box_lo, // low bounding point (ret'd) + ANNpoint &the_bnd_box_hi) // high bounding point (ret'd) +{ + int j; + char str[STRING_LEN]; // storage for string + char version[STRING_LEN]; // ANN version number + ANNkd_ptr the_root = NULL; + + //------------------------------------------------------------------ + // Input file header + //------------------------------------------------------------------ + in >> str; // input header + if (strcmp(str, "#ANN") != 0) { // incorrect header + annError("Incorrect header for dump file", ANNabort); + } + in.getline(version, STRING_LEN); // get version (ignore) + + //------------------------------------------------------------------ + // Input the points + // An array the_pts is allocated and points are read from + // the dump file. + //------------------------------------------------------------------ + in >> str; // get major heading + if (strcmp(str, "points") == 0) { // points section + in >> the_dim; // input dimension + in >> the_n_pts; // number of points + // allocate point storage + the_pts = annAllocPts(the_n_pts, the_dim); + for (int i = 0; i < the_n_pts; i++) { // input point coordinates + ANNidx idx; // point index + in >> idx; // input point index + if (idx < 0 || idx >= the_n_pts) { + annError("Point index is out of range", ANNabort); + } + for (j = 0; j < the_dim; j++) { + in >> the_pts[idx][j]; // read point coordinates + } + } + in >> str; // get next major heading + } + else { // no points were input + annError("Points must be supplied in the dump file", ANNabort); + } + + //------------------------------------------------------------------ + // Input the tree + // After the basic header information, we invoke annReadTree + // to do all the heavy work. We create our own array of + // point indices (so we can pass them to annReadTree()) + // but we do not deallocate them. They will be deallocated + // when the tree is destroyed. + //------------------------------------------------------------------ + if (strcmp(str, "tree") == 0) { // tree section + in >> the_dim; // read dimension + in >> the_n_pts; // number of points + in >> the_bkt_size; // bucket size + the_bnd_box_lo = annAllocPt(the_dim); // allocate bounding box pts + the_bnd_box_hi = annAllocPt(the_dim); + + for (j = 0; j < the_dim; j++) { // read bounding box low + in >> the_bnd_box_lo[j]; + } + for (j = 0; j < the_dim; j++) { // read bounding box low + in >> the_bnd_box_hi[j]; + } + the_pidx = new ANNidx[the_n_pts]; // allocate point index array + int next_idx = 0; // number of indices filled + // read the tree and indices + the_root = annReadTree(in, tree_type, the_pidx, next_idx); + if (next_idx != the_n_pts) { // didn't see all the points? + annError("Didn't see as many points as expected", ANNwarn); + } + } + else { + annError("Illegal dump format. Expecting section heading", ANNabort); + } + return the_root; +} + +//---------------------------------------------------------------------- +// annReadTree - input tree and return pointer +// +// annReadTree reads in a node of the tree, makes any recursive +// calls as needed to input the children of this node (if internal). +// It returns a pointer to the node that was created. An array +// of point indices is given along with a pointer to the next +// available location in the array. As leaves are read, their +// point indices are stored here, and the point buckets point +// to the first entry in the array. +// +// Recall that these are the formats. The tree is given in +// preorder. +// +// Leaf node: +// leaf ... +// Splitting nodes: +// split +// +// For bd-trees: +// +// Shrinking nodes: +// shrink +// +// +// ... (repeated n_bnds times) +//---------------------------------------------------------------------- + +static ANNkd_ptr annReadTree( + istream &in, // input stream + ANNtreeType tree_type, // type of tree expected + ANNidxArray the_pidx, // point indices (modified) + int &next_idx) // next index (modified) +{ + char tag[STRING_LEN]; // tag (leaf, split, shrink) + int n_pts; // number of points in leaf + int cd; // cut dimension + ANNcoord cv; // cut value + ANNcoord lb; // low bound + ANNcoord hb; // high bound + int n_bnds; // number of bounding sides + int sd; // which side + + in >> tag; // input node tag + + if (strcmp(tag, "null") == 0) { // null tree + return NULL; + } + //------------------------------------------------------------------ + // Read a leaf + //------------------------------------------------------------------ + if (strcmp(tag, "leaf") == 0) { // leaf node + + in >> n_pts; // input number of points + int old_idx = next_idx; // save next_idx + if (n_pts == 0) { // trivial leaf + return KD_TRIVIAL; + } + else { + for (int i = 0; i < n_pts; i++) { // input point indices + in >> the_pidx[next_idx++]; // store in array of indices + } + } + return new ANNkd_leaf(n_pts, &the_pidx[old_idx]); + } + //------------------------------------------------------------------ + // Read a splitting node + //------------------------------------------------------------------ + else if (strcmp(tag, "split") == 0) { // splitting node + + in >> cd >> cv >> lb >> hb; + + // read low and high subtrees + ANNkd_ptr lc = annReadTree(in, tree_type, the_pidx, next_idx); + ANNkd_ptr hc = annReadTree(in, tree_type, the_pidx, next_idx); + // create new node and return + return new ANNkd_split(cd, cv, lb, hb, lc, hc); + } + //------------------------------------------------------------------ + // Read a shrinking node (bd-tree only) + //------------------------------------------------------------------ + else if (strcmp(tag, "shrink") == 0) { // shrinking node + if (tree_type != BD_TREE) { + annError("Shrinking node not allowed in kd-tree", ANNabort); + } + + in >> n_bnds; // number of bounding sides + // allocate bounds array + ANNorthHSArray bds = new ANNorthHalfSpace[n_bnds]; + for (int i = 0; i < n_bnds; i++) { + in >> cd >> cv >> sd; // input bounding halfspace + // copy to array + bds[i] = ANNorthHalfSpace(cd, cv, sd); + } + // read inner and outer subtrees + ANNkd_ptr ic = annReadTree(in, tree_type, the_pidx, next_idx); + ANNkd_ptr oc = annReadTree(in, tree_type, the_pidx, next_idx); + // create new node and return + return new ANNbd_shrink(n_bnds, bds, ic, oc); + } + else { + annError("Illegal node type in dump file", ANNabort); + exit(0); // to keep the compiler happy + } +} diff --git a/.svn/pristine/98/98b8d9ce8d1e83b6afc90afddf8a8bf0ffd2c0fb.svn-base b/.svn/pristine/98/98b8d9ce8d1e83b6afc90afddf8a8bf0ffd2c0fb.svn-base new file mode 100644 index 0000000..58731d4 Binary files /dev/null and b/.svn/pristine/98/98b8d9ce8d1e83b6afc90afddf8a8bf0ffd2c0fb.svn-base differ diff --git a/.svn/pristine/98/98c63f18332d04e665c089fe38806f2e73dd17be.svn-base b/.svn/pristine/98/98c63f18332d04e665c089fe38806f2e73dd17be.svn-base new file mode 100644 index 0000000..fda20d4 --- /dev/null +++ b/.svn/pristine/98/98c63f18332d04e665c089fe38806f2e73dd17be.svn-base @@ -0,0 +1,104 @@ +// Copyright (C) 2007 by Crist贸bal Carnero Li帽谩n +// grendel.ccl@gmail.com +// +// This file is part of cvBlob. +// +// cvBlob is free software: you can redistribute it and/or modify +// it under the terms of the Lesser GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// cvBlob is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// Lesser GNU General Public License for more details. +// +// You should have received a copy of the Lesser GNU General Public License +// along with cvBlob. If not, see . +// + +#include +#include +using namespace std; + +#if (defined(_WIN32) || defined(__WIN32__) || defined(__TOS_WIN__) || defined(__WINDOWS__) || (defined(__APPLE__) & defined(__MACH__))) +#include +#else +#include +#endif + +#include "cvblob.h" + +namespace cvb +{ + + CvScalar cvBlobMeanColor(CvBlob const *blob, IplImage const *imgLabel, IplImage const *img) + { + CV_FUNCNAME("cvBlobMeanColor"); + __CV_BEGIN__; + { + CV_ASSERT(imgLabel&&(imgLabel->depth==IPL_DEPTH_LABEL)&&(imgLabel->nChannels==1)); + CV_ASSERT(img&&(img->depth==IPL_DEPTH_8U)&&(img->nChannels==3)); + + int stepLbl = imgLabel->widthStep/(imgLabel->depth/8); + int stepImg = img->widthStep/(img->depth/8); + int imgLabel_width = imgLabel->width; + int imgLabel_height = imgLabel->height; + int imgLabel_offset = 0; + int img_width = img->width; + int img_height = img->height; + int img_offset = 0; + if(imgLabel->roi) + { + imgLabel_width = imgLabel->roi->width; + imgLabel_height = imgLabel->roi->height; + imgLabel_offset = (imgLabel->nChannels * imgLabel->roi->xOffset) + (imgLabel->roi->yOffset * stepLbl); + } + if(img->roi) + { + img_width = img->roi->width; + img_height = img->roi->height; + img_offset = (img->nChannels * img->roi->xOffset) + (img->roi->yOffset * stepImg); + } + + CvLabel *labels = (CvLabel *)imgLabel->imageData + imgLabel_offset; + unsigned char *imgData = (unsigned char *)img->imageData + img_offset; + + double mb = 0; + double mg = 0; + double mr = 0; + double pixels = (double)blob->area; + + for (unsigned int r=0; r<(unsigned int)imgLabel_height; r++, labels+=stepLbl, imgData+=stepImg) + for (unsigned int c=0; c<(unsigned int)imgLabel_width; c++) + { + if (labels[c]==blob->label) + { + mb += ((double)imgData[img->nChannels*c+0])/pixels; // B + mg += ((double)imgData[img->nChannels*c+1])/pixels; // G + mr += ((double)imgData[img->nChannels*c+2])/pixels; // R + } + } + + /*double mb = 0; + double mg = 0; + double mr = 0; + double pixels = (double)blob->area; + for (unsigned int y=0; yheight; y++) + for (unsigned int x=0; xwidth; x++) + { + if (cvGetLabel(imgLabel, x, y)==blob->label) + { + CvScalar color = cvGet2D(img, y, x); + mb += color.val[0]/pixels; + mg += color.val[1]/pixels; + mr += color.val[2]/pixels; + } + }*/ + + return cvScalar(mr, mg, mb); + } + __CV_END__; + } + +} diff --git a/.svn/pristine/98/98f4447cdcf31c3735470baa48f804142aa02671.svn-base b/.svn/pristine/98/98f4447cdcf31c3735470baa48f804142aa02671.svn-base new file mode 100644 index 0000000..d286e1c --- /dev/null +++ b/.svn/pristine/98/98f4447cdcf31c3735470baa48f804142aa02671.svn-base @@ -0,0 +1,85 @@ +/********************************************************************** + + Arcball.h + + A C++ class that implements the Arcball, as described by Ken + Shoemake in Graphics Gems IV. + This class takes as input mouse events (mouse down, mouse drag, + mouse up), and creates the appropriate quaternions and 4x4 matrices + to represent the rotation given by the mouse. + + This class is used as follows: + - initialize [either in the constructor or with set_params()], the + center position (x,y) of the arcball on the screen, and the radius + - on mouse down, call mouse_down(x,y) with the mouse position + - as the mouse is dragged, repeatedly call mouse_motion() with the + current x and y positions. One can optionally pass in the current + state of the SHIFT, ALT, and CONTROL keys (passing zero if keys + are not pressed, non-zero otherwise), which constrains + the rotation to certain axes (X for CONTROL, Y for ALT). + - when the mouse button is released, call mouse_up() + + Axis constraints can also be explicitly set with the + set_constraints() function. + + The current rotation is stored in the 4x4 float matrix 'rot'. + It is also stored in the quaternion 'q_now'. + + ------------------------------------------------------------------ + + Feb 25, 1998 - Paul Rademacher (rademach@cs.unc.edu) + +**********************************************************************/ + + +#ifndef _ARCBALL_H_ +#define _ARCBALL_H_ + + +#include "stdinc.h" +#include "algebra3.h" +#include "quaternion.h" + +#ifdef __APPLE__ +#include +#else +#include +#endif + +class Arcball { +public: + Bool constraint_x, constraint_y; + vec2 center; + float radius, damp_factor; + int zero_increment; + + vec3 constrain_vector( vec3 vector, vec3 axis ); + vec3 mouse_to_sphere( vec2 p ); + + //public: + int is_mouse_down; /* true for down, false for up */ + int is_spinning; + quat q_now, q_down, q_drag, q_increment; + vec2 down_pt; + mat4 rot, rot_increment; + mat4 *rot_ptr; + + void set_damping( float d ); + void idle( void ); + void mouse_down( int x, int y ); + void mouse_up( void ); + void mouse_motion( int x, int y, int shift, int ctrl, int alt ); + void mouse_motion( int x, int y ); + void set_constraints( Bool constrain_x, Bool constrain_y ); + void set_params( vec2 center, float radius ); + void reset_mouse( void ); + void init( void ); + + Arcball( void ); + Arcball( mat4 *mtx ); + Arcball( vec2 center, float radius ); +}; + + +#endif + diff --git a/.svn/pristine/99/99042653e5414e8d0ef85202b942814bbe7741fa.svn-base b/.svn/pristine/99/99042653e5414e8d0ef85202b942814bbe7741fa.svn-base new file mode 100644 index 0000000..6165357 --- /dev/null +++ b/.svn/pristine/99/99042653e5414e8d0ef85202b942814bbe7741fa.svn-base @@ -0,0 +1,191 @@ +/** + * @file + * @brief Scan containing all interprocess shared data and management values. + * + * @author Thomas Escher + */ + +#ifndef SHARED_SCAN_H +#define SHARED_SCAN_H + +#include "scanserver/frame.h" +#include "slam6d/io_types.h" +#include "slam6d/data_types.h" +#include "slam6d/pointfilter.h" + +#include +#include +#include +#include + +// hide the boost namespace and shorten others +namespace +{ + namespace ip = boost::interprocess; + // the segment manager providing the allocations + typedef ip::managed_shared_memory::segment_manager SegmentManager; +} + +// allocator and type for a scan vector +class SharedScan; +typedef ip::allocator, SegmentManager> SharedScanAllocator; +typedef ip::vector, SharedScanAllocator> SharedScanVector; + +// allocator and type for a shared string +typedef ip::allocator CharAllocator; +typedef ip::basic_string, CharAllocator> SharedString; + +// shared pointer for shared strings +typedef ip::managed_shared_ptr::type SharedStringSharedPtr; + +class CacheObject; + + + +/** + * @brief Central class representing a single scan file in shared memory. + * + * This class identifies a scan file by its path, identificator and io type, which are given to the ScanIO to read a scan. + * It holds all neccessary information like pose, frames and cached data from the scan. The cached data is contained in CacheObjects, one for each data channel and two reduced (one transformed, one untransformed). The access to the CacheObjects' data is given via a derivation from CacheData via MultiArray-types, which imitates a double**-array for easy use. + * All calls to the server are relayed to the ClientInterface and handled there. Access to the CacheObjects causing a cache miss also invoke a server call to the CacheManager. + */ +class SharedScan +{ + // private static class access for onChacheMiss/onAllocation + friend class CacheObject; +public: + //! Constructor by identifiers + SharedScan(const ip::allocator & allocator, + const SharedStringSharedPtr& dir_path_ptr, const char* io_identifier, + IOType iotype); + + //! Deconstructor + ~SharedScan(); + + //! Equality operator based on identifier, directory and type + bool operator==(const SharedScan& r) const; + + //! Filter parameters for range checks when loading from file, invalidate cache for scan CacheObject if it differs + void setRangeParameters(double max_dist, double min_dist); + + //! Filter parameters for height checks when loading from file, invalidate cache for scan CacheObject if it differs + void setHeightParameters(double top, double bottom); + + //! Set parameters and invalidate cache for reduced CacheObjects if it differs + void setReductionParameters(const char* params); + + //! Set parameters and invalidate cache for reduced CacheObjects if it differs + void setShowReductionParameters(const char* params); + + //! Set parameters and invalidate cache for reduced CacheObjects if it differs + void setOcttreeParameters(const char* params); + + //! Add a new frame with the current transformation and given type + void addFrame(double* transformation, unsigned int type); + + //! Save frames into a file for later use + void saveFrames(); + + //! Clear existing frames + void clearFrames(); + + //! Get contained frames + const FrameVector& getFrames(); + + //! Get pose from pose file + double* getPose(); + + //! Get specific cached data + DataXYZ getXYZ(); + DataRGB getRGB(); + DataReflectance getReflectance(); + DataAmplitude getAmplitude(); + DataType getType(); + DataDeviation getDeviation(); + + //! Reduced transformed points + DataXYZ getXYZReduced(); + + //! Create a new set of reduced points + DataXYZ createXYZReduced(unsigned int size); + + //! Reduced untransformed points + DataXYZ getXYZReducedOriginal(); + + //! Create a new set of reduced points originals + DataXYZ createXYZReducedOriginal(unsigned int size); + + //! Individual reduced points to use in show if requested + TripleArray getXYZReducedShow(); + + //! Create a new set of reduced points for use in show + TripleArray createXYZReducedShow(unsigned int size); + + //! Cached tree structure for show + DataPointer getOcttree(); + + //! Create a cached tree structure for show + DataPointer createOcttree(unsigned int size); + + //! ScanHandler related prefetching values to combine loading of separate cache objects + void prefetch(unsigned int type) { m_prefetch |= type; } + + //! Return prefetch values + unsigned int getPrefetch() const { return m_prefetch; } + + //! Clear prefetch values + void clearPrefetch() { m_prefetch = 0; } + + // IO-specific getters + inline const char* getDirPath() const { return m_dir_path_ptr->c_str(); } + inline const char* getIdentifier() const { return m_io_identifier.c_str(); } + inline IOType getIOType() const { return m_iotype; } + inline float getMaxDist() const { return m_max_dist; } + inline float getMinDist() const { return m_min_dist; } + inline double geHeightTop() const { return m_height_top; } + inline double getHeightBottom() const { return m_height_bottom; } + + //! Assembles an PointFilter with range/height parameters (if set) to use process-locally + PointFilter getPointFilter() const; + +private: + SharedStringSharedPtr m_dir_path_ptr; + SharedString m_io_identifier; + IOType m_iotype; + unsigned int m_prefetch; + double m_max_dist, m_min_dist; + double m_height_top, m_height_bottom; + bool m_range_param_set, m_height_param_set; + SharedString m_reduction_parameters; + SharedString m_show_parameters; + SharedString m_octtree_parameters; + bool m_load_frames_file; + +protected: + ip::offset_ptr m_pose; + ip::offset_ptr m_xyz, m_rgb, m_reflectance, m_amplitude, m_type, m_deviation, + m_xyz_reduced, m_xyz_reduced_original, + m_show_reduced, m_octtree; + FrameVector m_frames; + + //! invalidate full cache objects + void invalidateFull(); + + //! invalidate reduced cache objects + void invalidateReduced(); + + //! invalidate show related cache objects + void invalidateShow(); + +private: + //! Static callback for cache misses to send a request to the server interface + static void onCacheMiss(CacheObject* obj); + + //! Static callback for cache object creation calls + static void onAllocation(CacheObject* obj, unsigned int size); + + //! Static callback for cache object invalidation + static void onInvalidation(CacheObject* obj); +}; + +#endif //SHARED_SCAN_H diff --git a/.svn/pristine/99/9909acbbfd56d170fd12be1fb4767718a92f6bac.svn-base b/.svn/pristine/99/9909acbbfd56d170fd12be1fb4767718a92f6bac.svn-base new file mode 100644 index 0000000..25737a6 --- /dev/null +++ b/.svn/pristine/99/9909acbbfd56d170fd12be1fb4767718a92f6bac.svn-base @@ -0,0 +1,38 @@ + + +int glui_img_checkbox_0_dis[] = { 13, 13, /* width, height */ + 255,255,255, 255,255,255, 255,255,255, 255,255,255, 255,255,255, + 255,255,255, 255,255,255, 255,255,255, 255,255,255, 255,255,255, + 255,255,255, 255,255,255, 255,255,255, 128,128,128, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 255,255,255, 128,128,128, 64, 64, 64, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 255,255,255, 128,128,128, + 64, 64, 64, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 255,255,255, 128,128,128, 64, 64, 64, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 255,255,255, + 128,128,128, 64, 64, 64, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 255,255,255, 128,128,128, 64, 64, 64, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 255,255,255, 128,128,128, 64, 64, 64, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 255,255,255, 128,128,128, + 64, 64, 64, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 255,255,255, 128,128,128, 64, 64, 64, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 255,255,255, + 128,128,128, 64, 64, 64, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 255,255,255, 128,128,128, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 192,192,192, + 255,255,255, 128,128,128, 128,128,128, 128,128,128, 128,128,128, + 128,128,128, 128,128,128, 128,128,128, 128,128,128, 128,128,128, + 128,128,128, 128,128,128, 128,128,128, 255,255,255, +}; diff --git a/.svn/pristine/99/99354b13b7faf6adcfc81736805c080085f218ba.svn-base b/.svn/pristine/99/99354b13b7faf6adcfc81736805c080085f218ba.svn-base new file mode 100644 index 0000000..297d060 --- /dev/null +++ b/.svn/pristine/99/99354b13b7faf6adcfc81736805c080085f218ba.svn-base @@ -0,0 +1,15 @@ +#include "veloslam/veloscan.h" +#include "veloslam/svm.h" +#include "veloslam/cluster_classification.h" + +Cluster_Classification::Cluster_Classification(void) +{ + +} + +Cluster_Classification::~Cluster_Classification(void) +{ + +} + + diff --git a/.svn/pristine/99/994b19cc39b29c0cb30ef4e7042db88839dd7b91.svn-base b/.svn/pristine/99/994b19cc39b29c0cb30ef4e7042db88839dd7b91.svn-base new file mode 100644 index 0000000..03f24ac --- /dev/null +++ b/.svn/pristine/99/994b19cc39b29c0cb30ef4e7042db88839dd7b91.svn-base @@ -0,0 +1,22 @@ +/** + * @file + * @brief Representation of a general cache for search trees + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SEARCHCACHE_H__ +#define __SEARCHCACHE_H__ + +/** + * @brief The general Cache Item + * + * This class contains a general cache item + */ +class SearchTreeCacheItem +{ + public: + virtual ~SearchTreeCacheItem() {}; +}; + + +#endif diff --git a/.svn/pristine/99/9950464c192a22a6ce4d9902792fff4c19c388bc.svn-base b/.svn/pristine/99/9950464c192a22a6ce4d9902792fff4c19c388bc.svn-base new file mode 100644 index 0000000..190b483 --- /dev/null +++ b/.svn/pristine/99/9950464c192a22a6ce4d9902792fff4c19c388bc.svn-base @@ -0,0 +1,259 @@ +/** + * @file plane3d.cc + * + * @auhtor Remus Claudiu Dumitru + * @date 16 Feb 2012 + * + */ + +//============================================================================== +// Includes +//============================================================================== +#include "model/plane3d.h" + +#include +#include +using namespace Eigen; + +#include + +#include +#include +using namespace std; + +model::Plane3d::Plane3d() { + // nothing to do +} + +model::Plane3d::Plane3d(const Point3d& pt, const Vector3d& normal) { + this->pt = pt; + this->normal = normal; + + // normals must be normalized + this->normal.normalize(); +} + + +model::Plane3d::Plane3d(const Point3d& pt, const Vector3d& normal, + const vector& hull) +{ + this->pt = pt; + this->normal = normal; + this->hull = hull; + + // normals must be normalized + this->normal.normalize(); +} + +model::Plane3d::Plane3d(const Plane3d& other) { + this->pt = other.pt; + this->normal = other.normal; + this->hull = other.hull; +} + +model::Plane3d::~Plane3d() { + // nothing to do +} + +model::Point3d model::Plane3d::intersect(const Plane3d& second, const Plane3d& third) { + // XXX http://mathworld.wolfram.com/Plane-PlaneIntersection.html + Point3d result; + Plane3d first = *this; + + MatrixXd mat(3, 3); + mat << first.normal.x, second.normal.x, third.normal.x, + first.normal.y, second.normal.y, third.normal.y, + first.normal.z, second.normal.z, third.normal.z; + + Vector3d term[3]; + term[0] = second.normal.crossProduct(third.normal) * + first.normal.dotProduct(Vector3d(first.pt.x, first.pt.y, first.pt.z)); + + term[1] = third.normal.crossProduct(first.normal) * + second.normal.dotProduct(Vector3d(second.pt.x, second.pt.y, second.pt.z)); + + term[2] = first.normal.crossProduct(second.normal) * + third.normal.dotProduct(Vector3d(third.pt.x, third.pt.y, third.pt.z)); + + Vector3d tempResult = (term[0] + term[1] + term[2]) * (1.0 / mat.determinant()); + + result.x = tempResult.x; + result.y = tempResult.y; + result.z = tempResult.z; + + return result; +} + +model::Plane3d& model::Plane3d::operator=(const Plane3d& other) { + this->pt = other.pt; + this->normal = other.normal; + this->hull = other.hull; + + return *this; +} + +bool model::Plane3d::isVertical() { + this->normal.normalize(); + return (fabs(this->normal.y) < _EPSILON_VERTICAL); +} + +bool model::Plane3d::isHorizontal() { + this->normal.normalize(); + return ((1 - fabs(this->normal.y / this->normal.length())) < _EPSILON_HORIZONTAL); +} + +bool model::Plane3d::isSamePlane(model::Plane3d other) { + // just to be safe + this->normal.normalize(); + other.normal.normalize(); + + double dist = this->pt.distance(other); + double norm = this->normal.crossProduct(other.normal).length(); + + // doing fabs of norm just to be safe, though it is always positive + if (fabs(dist) < _EPSILON_DISTANCE && fabs(norm) < _EPSILON_NORMAL_CROSS_PRODUCT) { + return true; + } + + return false; +} + +model::Vector3d model::Plane3d::computeAverageNormal() { + if(this->hull.size() < 3) { + throw runtime_error("hull contains less than 3 points, cannot compute normal"); + } + + // start from zero + Vector3d normal(0.0, 0.0, 0.0); + + for (vector::iterator it = this->hull.begin() + 1; it != this->hull.end() - 1; ++it) { + Point3d& left = *(it-1); + Point3d& middle = *it; + Point3d& right = *(it+1); + + normal += Vector3d(middle, left).crossProduct(Vector3d(middle, right)); + } + + // treat the boundary cases + Point3d& first = this->hull[0]; + Point3d& second = this->hull[1]; + Point3d& secondLast = this->hull[this->hull.size() - 2]; + Point3d& last = this->hull[this->hull.size() - 1]; + + normal += Vector3d(first, last).crossProduct(Vector3d(first, second)); + normal += Vector3d(last, secondLast).crossProduct(Vector3d(last, first)); + + normal.normalize(); + return normal; +} + +vector > model::Plane3d::getDiscretePoints(const double& dist) const { + if (this->hull.size() < 3) { + throw runtime_error("cannot retrieve discrete points on plane with hull containing less than 3 points"); + } + + // make a deep copy of the current plane + Plane3d copy = *this; + + // this will eventually contain the result + vector > result; + + // the origin of the current system, take the first point in the hull + Point3d origin = copy.hull[0]; + Point3d zero(0.0, 0.0, 0.0); + + // define the rotation around Z and X axis here + Rotation3d rotZ(0.0, 0.0, atan2(copy.normal.x, copy.normal.y)); + copy.normal.rotate(rotZ); + Rotation3d rotX(-atan2(copy.normal.z, copy.normal.y), 0.0, 0.0); + + // translate all points to origin + for (vector::iterator it = copy.hull.begin(); it != copy.hull.end(); ++it) { + // translate + *it -= origin; + + // rotate around Z + it->rotate(zero, rotZ); + + // rotate around X + it->rotate(zero, rotX); + } + + // figure out how to rotate around Y + Vector3d firstSegment; + + Point3d first = copy.hull.front(); + Point3d second = copy.hull[1]; + Point3d third = copy.hull[2]; + + if (first.distance(second) > second.distance(third)) { + firstSegment = Vector3d(first, second); + } else { + firstSegment = Vector3d(second, third); + } + + // define rotation around Y axis after we have moved the entire hull into the XZ plane + copy.normal.rotate(rotX); + Rotation3d rotY(0.0, atan2(firstSegment.z, firstSegment.x), 0.0); + + for (vector::iterator it = copy.hull.begin(); it != copy.hull.end(); ++it) { + // rotate around Y + it->rotate(zero, rotY); + } + + // we need to compute the maximum and minimum offsets + double minX = copy.hull[0].x; + double maxX = copy.hull[0].x; + double minZ = copy.hull[0].z; + double maxZ = copy.hull[0].z; + + // we need to start from the second point + for (vector::iterator it = copy.hull.begin() + 1; + it != copy.hull.end(); ++it) + { + if (it->x < minX) { + minX = it->x; + } + + if (it->x > maxX) { + maxX = it->x; + } + + if (it->z < minZ) { + minZ = it->z; + } + + if (it->z > maxZ) { + maxZ = it->z; + } + } + + // how many steps on each direction? + int stepsX = round((maxX - minX) / dist) + 2; + int stepsZ = round((maxZ - minZ) / dist) + 2; + + // resize the result vector + result.resize(stepsZ); + + for (int j = 0; j < stepsZ; ++j) { + for (int i = 0; i < stepsX; ++i) { + Point3d toPush(minX + dist * (i - 0.5), 0.0, maxZ - dist * (j - 0.5)); + + // rotate back around Y + toPush.rotate(zero, rotY.getInverse()); + + // rotate back around X + toPush.rotate(zero, rotX.getInverse());; + + // rotate back around Z + toPush.rotate(zero, rotZ.getInverse()); + + //translate back to previous system + toPush += origin; + + result[j].push_back(toPush); + } + } + + return result; +} diff --git a/.svn/pristine/99/99ddfc047dbe119aa6e03db880f542945cb3e918.svn-base b/.svn/pristine/99/99ddfc047dbe119aa6e03db880f542945cb3e918.svn-base new file mode 100644 index 0000000..e53c11f --- /dev/null +++ b/.svn/pristine/99/99ddfc047dbe119aa6e03db880f542945cb3e918.svn-base @@ -0,0 +1,640 @@ +/* + * David Scanner implementation + * + * Copyright (C) Vladislav Perelman + * + * Released under the GPL version 3. + * + */ + +/* + * david_scanner.cc + * Program takes as an input path to the config file which needs to + * have all the necessary information for the program. + * Config file has to have (each on a new line, 9 lines in total): + * + * Path to the directory where frames from the video are stored + * The first frame that has to be used + * The last frame that has to be used + * The empty frame without the laser + * Path to the file with intrinsics of the camera + * Path to the rotation of the left board + * Path to the rotation of the right board + * Path to the translation of the left board + * Path to the translation of the right board + * + * Program computes the 3 point cloud of the object and stores it in the + * file scan000.3d, each point in the cloud is represented by the line + * in the file: + * x y z r g b + * + * + * Created on: Oct 4, 2010 + * Author: Vladislav Perelman v.perelman@jacobs-university.de + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#define PI 3.14159265 +using namespace std; + +int main(int argc, char** argv){ + + if (argc!=2){ + cout<<"USAGE: david_scanner config_file\nConfig file should contain path_to_frames first_valid_frame last_valid_frame empty_frame path_to_intrinsics" + "path_to_rotation_left path_to_rotation_right path_to_translation_left and path_to_translation_right each on a new line!"<imageData; + for (int row = 0; row < diff->height; row++){ + for (int col = 0; col < diff->width; col++){ + int R; + R = pixels[ row * diff->widthStep + col * 3 + 2 ]; + if (R>30) { + pixels[ row * diff->widthStep + col * 3 + 0 ] = 0; + pixels[ row * diff->widthStep + col * 3 + 1 ] = 0; + pixels[ row * diff->widthStep + col * 3 + 2 ] = 255; + } else { + pixels[ row * diff->widthStep + col * 3 + 0 ] = 0; + pixels[ row * diff->widthStep + col * 3 + 1 ] = 0; + pixels[ row * diff->widthStep + col * 3 + 2 ] = 0; + } + + } + } + + //remove pixels that don't have at least 2 red neighbors + for (int row = 1; row < diff->height-1; row++){ + for (int col = 1; col < diff->width-1; col++){ + int R = pixels[ row * diff->widthStep + col * 3 + 2 ]; + if (R == 255){ + int r1 = pixels[ (row-1)*diff->widthStep + col * 3 + 2]; + int r2 = pixels[ (row-1)*diff->widthStep + (col-1) * 3 + 2]; + int r3 = pixels[ (row-1)*diff->widthStep + (col+1) * 3 + 2]; + int r4 = pixels[ (row+1)*diff->widthStep + col * 3 + 2]; + int r5 = pixels[ (row+1)*diff->widthStep + (col-1) * 3 + 2]; + int r6 = pixels[ (row+1)*diff->widthStep + (col+1) * 3 + 2]; + int r7 = pixels[ (row)*diff->widthStep + (col-1) * 3 + 2]; + int r8 = pixels[ (row)*diff->widthStep + (col+1) * 3 + 2]; + if (r1+r2+r3+r4+r5+r6+r7+r8<=255) pixels[ row * diff->widthStep + col * 3 + 2 ]=0; + } + } + } + + //*****finding 2 lines on the image***** + + bool good = false; + int threshold = 50; //original threshold for Hough transform, incremented if too many groups of lines found + IplImage* color_dst; + IplImage* tmpImage; + int minX1, minX2, maxX1, maxX2; + CvSeq* lines = 0; + CvPoint* line1; + CvPoint* line2; + int count_groups; + + //incrementing thresholds until only 2 groups of lines can be found + while(!good){ + good = true; + count_groups = 0; //counter for number of line groups. Line group is defined by the slope + int epsilon = 1.5; //error margin for the slope + color_dst = cvCreateImage( cvGetSize(diff), 8, 3 ); + color_dst = cvCloneImage(diff); + tmpImage = cvCreateImage(cvGetSize(diff), IPL_DEPTH_8U, 1); + cvCvtColor(diff, tmpImage, CV_RGB2GRAY); + IplImage* dst = cvCreateImage( cvGetSize(diff), 8, 1 ); + cvCanny(tmpImage, dst, 20, 60, 3 ); + CvMemStorage* storage = cvCreateMemStorage(0); + //find all lines using Hough transform + lines = cvHoughLines2( dst, storage, CV_HOUGH_PROBABILISTIC, 1, CV_PI/180,threshold, 150, 100 ); + double first_group, second_group; + for(int i = 0; i < lines->total; i++ ){ + //get the slope of the line, check if it belongs to an already existing group + CvPoint* line = (CvPoint*)cvGetSeqElem(lines,i); + double angle = atan((double)(line[1].x-line[0].x)/(double)(line[1].y-line[0].y))*180/PI; + //starting first group + if (count_groups==0){ + first_group = angle; + line1 = line; + minX1 = line[0].x; + maxX1 = line[1].x; + count_groups++; + + } else { + + if (angle-first_group(epsilon*-1)){ + //line belongs to the first group of line..that's good + if (line[0].xmaxX1)maxX1=line[1].x; + } else { + //check if belongs to the second group + if ( count_groups == 2 ){ + if (angle-second_group(epsilon*-1)){ + if (line[0].xmaxX2)maxX2=line[1].x; + }else{ + //if not then try again with a higher threshold + good = false; + threshold+=20; + cout<<"Increased threshold: "<height,ymin+10)); + points[2]=cvPoint(maxX1, min(color_dst->height,ymax+10)); + points[3]=cvPoint(maxX1, max(0,ymax-10)); + CvPoint* pts[1]; + pts[0]=points; + int npts[1]; + npts[0]=4; + cvPolyLine(color_dst, pts, npts,1,1, CV_RGB(0,0,0), 20, 8 );//removing the group + + x1 = line2[0].x; + x2 = line2[1].x; + y1 = line2[0].y; + y2 = line2[1].y; + + c1 = (double)(x1 - minX2)/(double)(x2 - minX2); + c2 = (double)(maxX2 - x1)/(double)(maxX2 - x2); + + ymin = (c1*y2 - y1)/(c1-1); + ymax = (c2*y2 - y1)/(c2-1); + + if (maxX2 == x2) ymax = y2; + if (minX2 == x1) ymin = y1; + + //getting start and end of the second line + point3 = cvPoint(minX2, ymin); + point4 = cvPoint(maxX2, ymax); + + points[0]=cvPoint(minX2, max(0,ymin-10)); + points[1]=cvPoint(minX2, min(color_dst->height,ymin+10)); + points[2]=cvPoint(maxX2, min(color_dst->height,ymax+10)); + points[3]=cvPoint(maxX2, max(0,ymax-10)); + + pts[0]=points; + + cvPolyLine(color_dst, pts, npts,1,1, CV_RGB(0,0,0), 20, 8 );//removing the group + cvLine(color_dst, point3, point4,CV_RGB(0,255,0),3, 8 ); //draw the second line! + cvLine(color_dst, point1, point2,CV_RGB(0,255,0),3, 8 ); //draw the first line! + + //removing everything to the left of the left line and to the right of the right line + if (point4.x > point2.x){ + if (color_dst->width > point4.x){ + cvRectangle(color_dst,cvPoint(point4.x,0),cvPoint(color_dst->width,color_dst->height),CV_RGB(0,0,0),CV_FILLED); + } + if (point1.x > 0){ + cvRectangle(color_dst,cvPoint(point1.x,0),cvPoint(0,color_dst->height),CV_RGB(0,0,0),CV_FILLED); + } + } + if (point4.x < point2.x){ + if (color_dst->width > point2.x){ + cvRectangle(color_dst,cvPoint(point2.x,0),cvPoint(color_dst->width,color_dst->height),CV_RGB(0,0,0),CV_FILLED); + } + if (point3.x > 0){ + cvRectangle(color_dst,cvPoint(point3.x,0),cvPoint(0,color_dst->height),CV_RGB(0,0,0),CV_FILLED); + } + } + //at this point we have to lines which we drew in green...which means all the red pixels that remain on the image + //are supposed to be laying on the object. Make them blue (for no particular reason..just looked nicer :) ) + unsigned char* pixels = (unsigned char*)color_dst->imageData; + + for (int row = 1; row < color_dst->height-1; row++){ + for (int col = 1; col < color_dst->width-1; col++){ + int R = pixels[ row * color_dst->widthStep + col * 3 + 2 ]; + if (R == 255){ + pixels[ row * color_dst->widthStep + col * 3 + 0 ]=255; + pixels[ row * color_dst->widthStep + col * 3 + 1 ]=0; + pixels[ row * color_dst->widthStep + col * 3 + 2 ]=0; + } + } + } + + } else continue; + + //take points on planes + CvPoint left1, left2, right1; + if (point1.x < point3.x){ + left1 = point1; + left2 = point2; + right1 = point3; + } else { + left1 = point3; + left2 = point4; + right1 = point1; + } + + //find 3d coordinate of the 2 points on the line on the left plane + //(x,y,z).t() = s*R.i()*A.i()*(u,v,1).t() - R.i()*T + + CvMat* imagepoint1 = cvCreateMat( 3, 1, CV_32F ); + CV_MAT_ELEM(*imagepoint1, float, 0, 0) = left1.x; + CV_MAT_ELEM(*imagepoint1, float, 1, 0) = left1.y; + CV_MAT_ELEM(*imagepoint1, float, 2, 0) = 1; + + + CvMat* b1 = cvCreateMat(3, 1, CV_32F); + cvMatMul(R1iAi, imagepoint1, b1); + + //calculate scalar s based on the fact that point we take is on the wall => z coordinate is 0 + float s1 = CV_MAT_ELEM(*a1, float, 2, 0)/CV_MAT_ELEM(*b1, float, 2, 0); + + CvMat* identity = cvCreateMat(3,3,CV_32F); + cvSetIdentity(identity); + for (int i = 0; i < 3; i++){ + CV_MAT_ELEM(*identity, float, i, i)=s1; + } + CvMat* temp = cvCreateMat(3,1,CV_32F); + cvMatMul(identity,b1, temp); + + CvMat* dpoint1 = cvCreateMat(3,1,CV_32F); + cvSub(temp, a1, dpoint1); //first 3d point on the left plane + + //same thing for the second point + CvMat* imagepoint2 = cvCreateMat( 3, 1, CV_32F ); + + CV_MAT_ELEM(*imagepoint2, float, 0, 0) = left2.x; + CV_MAT_ELEM(*imagepoint2, float, 1, 0) = left2.y; + CV_MAT_ELEM(*imagepoint2, float, 2, 0) = 1; + + CvMat* b2 = cvCreateMat(3, 1, CV_32F); + cvMatMul(R1iAi, imagepoint2, b2); + + float s2 = CV_MAT_ELEM(*a1, float, 2, 0)/CV_MAT_ELEM(*b2, float, 2, 0); + + cvSetIdentity(identity, cvRealScalar(s2)); + cvMatMul(identity,b2, b2); + + CvMat* dpoint2 = cvCreateMat(3,1,CV_32F); + cvSub(b2, a1, dpoint2); //second 3d point on the left plane + + //same for the point on the right plane + CvMat* imagepoint3 = cvCreateMat( 3, 1, CV_32F ); + CV_MAT_ELEM(*imagepoint3, float, 0, 0) = right1.x; + CV_MAT_ELEM(*imagepoint3, float, 1, 0) = right1.y; + CV_MAT_ELEM(*imagepoint3, float, 2, 0) = 1; + + CvMat* b3 = cvCreateMat(3, 1, CV_32F); + cvMatMul(R2iAi, imagepoint3, b3); + + float s3 = CV_MAT_ELEM(*a2, float, 2, 0)/CV_MAT_ELEM(*b3, float, 2, 0); + + cvSetIdentity(identity, cvRealScalar(s3)); + cvMatMul(identity,b3, b3); + + CvMat* dpoint3 = cvCreateMat(3,1,CV_32F); + cvSub(b3, a2, dpoint3); //point on the right plane + + //convert point from the right plane into the coord. system of the left plane + //p1 = R1.i()*[R2|T2]*p2 - R1.i()*T1 + CvMat* dpoint3left = cvCreateMat(3,1,CV_32F); + CvMat* pw = cvCreateMat(4,1,CV_32F); + for (int i = 0; i<3; i++){ + CV_MAT_ELEM(*pw, float, i, 0) = CV_MAT_ELEM(*dpoint3, float, i, 0); + } + CV_MAT_ELEM(*pw, float, 3, 0) = 1.0; + CvMat* r2t2pw = cvCreateMat(3,1,CV_32F); + cvMatMul(r2t2, pw, r2t2pw); + CvMat* r1invr2t2pw = cvCreateMat(3,1,CV_32F); + cvMatMul(r1inv, r2t2pw, r1invr2t2pw); + + cvSub(r1invr2t2pw, a1, dpoint3left); + //now that we have 3 non-colinear point in the same coordinate system we can find the equation of the plane + /* + A = y1 (z2 - z3) + y2 (z3 - z1) + y3 (z1 - z2) + B = z1 (x2 - x3) + z2 (x3 - x1) + z3 (x1 - x2) + C = x1 (y2 - y3) + x2 (y3 - y1) + x3 (y1 - y2) + - D = x1 (y2 z3 - y3 z2) + x2 (y3 z1 - y1 z3) + x3 (y1 z2 - y2 z1) + */ + float x1 = CV_MAT_ELEM(*dpoint1, float,0,0); + float y1 = CV_MAT_ELEM(*dpoint1, float,1,0); + float z1 = CV_MAT_ELEM(*dpoint1, float,2,0); + float x2 = CV_MAT_ELEM(*dpoint2, float,0,0); + float y2 = CV_MAT_ELEM(*dpoint2, float,1,0); + float z2 = CV_MAT_ELEM(*dpoint2, float,2,0); + float x3 = CV_MAT_ELEM(*dpoint3left, float,0,0); + float y3 = CV_MAT_ELEM(*dpoint3left, float,1,0); + float z3 = CV_MAT_ELEM(*dpoint3left, float,2,0); + float planeA = (y1 * (z2 - z3)) + (y2 * (z3 - z1)) + (y3 * (z1 - z2)); + float planeB = (z1 * (x2 - x3)) + (z2 * (x3 - x1)) + (z3 * (x1 - x2)); + float planeC = (x1 * (y2 - y3)) + (x2 * (y3 - y1)) + (x3 * (y1 - y2)); + float planeD = -((x1 * (y2 * z3 - y3 * z2)) + (x2 * (y3 * z1 - y1 * z3)) + (x3 * (y1 * z2 - y2 * z1))); + + //calculate normal to the lazer plane + CvMat* planeNormal = cvCreateMat(3, 1, CV_32F); + CV_MAT_ELEM(*planeNormal, float,0,0) = planeA; + CV_MAT_ELEM(*planeNormal, float,1,0) = planeB; + CV_MAT_ELEM(*planeNormal, float,2,0) = planeC; + + pixels = (unsigned char*)color_dst->imageData; + unsigned char* color_pixels = (unsigned char*)image_empty->imageData; + + //go through all the pixels on the object and calculate the 3d coordinate + for (int row = 1; row < color_dst->height-1; row++){ + for (int col = 1; col < color_dst->width-1; col++){ + int B = pixels[ row * color_dst->widthStep + col * 3]; + if (B == 255){ + //get RGB of the pixel on the original image + int realB = color_pixels[ row * color_dst->widthStep + col * 3]; + int realG = color_pixels[ row * color_dst->widthStep + col * 3 + 1]; + int realR = color_pixels[ row * color_dst->widthStep + col * 3 + 2]; + //Used http://www.cs.princeton.edu/courses/archive/fall00/cs426/lectures/raycast/sld017.htm for reference + //on how to find intersection of ray and a plane + float p0dotN = cvDotProduct(a1,planeNormal); + + CvMat* vtmp = cvCreateMat(3,1,CV_32F); + CV_MAT_ELEM(*vtmp, float,0,0) = col; + CV_MAT_ELEM(*vtmp, float,1,0) = row; + CV_MAT_ELEM(*vtmp, float,2,0) = 1; + + CvMat* v = cvCreateMat(3,1,CV_32F); + cvMatMul(R1iAi, vtmp, v); + + float vdotN = cvDotProduct(v,planeNormal); + float t = (p0dotN - planeD)/vdotN; + + cvSetIdentity(identity, cvRealScalar(t)); + cvMatMul(identity,v,v); + + CvMat* final = cvCreateMat(3,1,CV_32F); + cvSub(v,a1,final); //final point is still in the coordinate system of the left plane. + + CvMat* final_rotated = cvCreateMat(3,1,CV_32F); //translate it into the coordinate system of the camera + cvMatMul(rotation_matrix_left,final,final_rotated); + cvAdd(final_rotated,translation_left, final_rotated); + + //add point to the file (minus next to the y coordinate is there to compensate for the left-handed coordinate system of slam6d, otherwise + //dwarf is shown upside-down. + scanfile< +using std::string; +#include +using std::vector; + +#include "scan_io.h" + +/** + * @brief 3D scan loader for UOS scans + * + * The compiled class is available as shared object file + */ +class ScanIO_uos_frames : public ScanIO { +public: + virtual int readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss); +}; + +// Since this shared object file is loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/.svn/pristine/99/99e3a822fd39fabe92b287fcdf6f03a2b0588bcc.svn-base b/.svn/pristine/99/99e3a822fd39fabe92b287fcdf6f03a2b0588bcc.svn-base new file mode 100644 index 0000000..351fd10 --- /dev/null +++ b/.svn/pristine/99/99e3a822fd39fabe92b287fcdf6f03a2b0588bcc.svn-base @@ -0,0 +1,463 @@ +/////////////////////////////////////////////////////////////////////////////// +// Name: geometry.h +// Purpose: Additional geometry functions for wxWidgets (see wx/geometry.h) +// Author: John Labenski +// Created: 07/01/02 +// Copyright: John Labenski, 2002 +// License: wxWidgets v2 +/////////////////////////////////////////////////////////////////////////////// + +#ifndef __WXIMAGER_GEOMETRY_H__ +#define __WXIMAGER_GEOMETRY_H__ + +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) + #pragma interface "geometry.h" +#endif + +#include "wx/geometry.h" +#include "wx/things/thingdef.h" + +#define wxGEOMETRY_INF 1E100 + +//----------------------------------------------------------------------------- +// wxRay2DDouble uses point slope line format +// +// y = mx+b, m=(x-x0)/(y-y0) +//----------------------------------------------------------------------------- + +class WXDLLIMPEXP_THINGS wxRay2DDouble : public wxPoint2DDouble +{ +public : + + inline wxRay2DDouble(wxDouble x=0, wxDouble y=0, wxDouble slope=0) + { m_x = x; m_y = y; m_slope = slope; } + inline wxRay2DDouble(const wxPoint2DDouble &pt, wxDouble slope) + { m_x = pt.m_x; m_y = pt.m_y; m_slope = slope; } + inline wxRay2DDouble(wxDouble x1, wxDouble y1, wxDouble x2, wxDouble y2) + { m_x = x1; m_y = y1; m_slope = GetSlope(x1, y1, x2, y2); } + inline wxRay2DDouble(const wxPoint2DDouble &pt1, const wxPoint2DDouble &pt2) + { m_x = pt1.m_x; m_y = pt1.m_y; m_slope = GetSlope(pt1, pt2); } + inline wxRay2DDouble(const wxRay2DDouble &line) + { m_x = line.m_x; m_y = line.m_y; m_slope = line.m_slope; } + + inline wxDouble GetX() const { return m_x; } + inline wxDouble GetY() const { return m_y; } + inline wxPoint2DDouble GetPoint() const { return (wxPoint2DDouble)(*this); } + inline wxDouble GetSlope() const { return m_slope; } + + inline void SetX(wxDouble x) { m_x = x; } + inline void SetY(wxDouble y) { m_y = y; } + inline void SetPoint(const wxPoint2DDouble &pt ) { m_x = pt.m_x; m_y = pt.m_y; } + inline void SetSlope(wxDouble slope) { m_slope = slope; } + + inline wxDouble GetYFromX(wxDouble x) const {return m_slope*(x-m_x) + m_y;} + inline wxDouble GetXFromY(wxDouble y) const {return (y-m_y)/m_slope + m_x;} + + // Get a point along the line at pos x or y + inline wxPoint2DDouble GetPointOnRayFromX(wxDouble x) const { return wxPoint2DDouble(x, GetYFromX(x)); } + inline wxPoint2DDouble GetPointOnRayFromY(wxDouble y) const + { if (m_slope == 0) return (*this); + return wxPoint2DDouble(GetXFromY(y), y); } + + // Translate the point m_pt along the line to pos x or y + inline void TranslatePointByX(wxDouble x) { m_y = GetYFromX(x); m_x = x; } + inline void TranslatePointByY(wxDouble y) { m_x = GetXFromY(y); m_y = y; } + inline wxRay2DDouble GetTranslatedLineByX(wxDouble x) const { return wxRay2DDouble(x, GetYFromX(x), m_slope); } + inline wxRay2DDouble GetTranslatedLineByY(wxDouble y) const { return wxRay2DDouble(GetXFromY(y), y, m_slope); } + + inline wxDouble GetDistanceToPoint(const wxPoint2DDouble &pt, wxPoint2DDouble *closestPt=NULL) const + { + wxPoint2DDouble l1(m_x, m_y); + wxPoint2DDouble l2(GetPointOnRayFromX(m_x+pt.m_x)); + wxPoint2DDouble v = l2 - l1; + wxPoint2DDouble w = pt - l1; + wxDouble c1 = w.GetDotProduct(v); + wxDouble c2 = v.GetDotProduct(v); + wxDouble b = c1 / c2; + wxPoint2DDouble pb = l1 + b*v; + if (closestPt) *closestPt = pb; + return pb.GetDistance( pt ); + +/* + wxPoint2DDouble ll2 = l2; + double l = ll2.GetDistanceSquare(l1); + double u = ((p.m_x-l1.m_x)*(l2.m_x-l1.m_x)+(p.m_y-l1.m_y)*(l2.m_y-l1.m_y))/l; + wxPoint2DDouble i = l1 + u*(l2-l1); + + //printf("distance %.9lf %.9lf %d\n\n", i.GetDistance(p), pb.GetDistance(p), int(pb==i)); +*/ + + // this x for y on this line + // y(on this line) = m_slope*(x-m_pt.m_x) + m_pt.m_y + // = (-1/m_slope)(x-pt.m_x) + pt.m_y + // so + // x(on this line) = (y-m_pt.m_y)/m_slope + m_pt.m_x + // = (y-pt.m_y)/(-1/m_slope) + m_pt.m_x + + //(y-m_pt.m_y)/m_slope + m_pt.m_x = (y-pt.m_y)(-1/m_slope) + m_pt.m_x + //(y-m_pt.m_y)/m_slope - m_slope*(y-pt.m_y) = + m_pt.m_x - m_pt.m_x + //y*(1/m_slope - m_slope) = + m_pt.m_x - m_pt.m_x +m_slope*pt.m_y + m_slope*m_pt.m_y + //y = (m_pt.m_x - m_pt.m_x +m_slope*pt.m_y + m_slope*m_pt.m_y)/(1/m_slope - m_slope) +/* + wxDouble x = (m_x + m_slope*m_slope*m_x - m_slope*(m_y - m_y))/(m_slope*m_slope+1.0); + wxPoint2DDouble pl(x, m_slope*(x-m_x) + m_y); + if (closestPt) *closestPt = pl; + return pl.GetDistance(pt); +*/ + } + + inline wxDouble GetDistanceToRay( const wxRay2DDouble &ray ) const + { + // FIXME - unchecked, just quickly translated from some other code + if (m_slope != ray.m_slope) return 0; + if (m_slope == 0) return fabs(m_y - ray.m_y); + wxPoint2DDouble p1 = GetPointOnRayFromX(0); + wxPoint2DDouble p2 = ray.GetPointOnRayFromX(0); + // y = (-1/s1)*x+p1.m_y = s2*x + p2.m_y + wxDouble dx = (p1.m_y - p2.m_y)/(m_slope + (1.0/m_slope)); + wxDouble dy = (m_slope*dx+p2.m_y) - p1.m_y; + return sqrt(dx*dx + dy*dy); + } + + inline static wxDouble GetSlope(wxDouble x1, wxDouble y1, wxDouble x2, wxDouble y2) + { return (y2 - y1)/(x2 - x1); } + inline static wxDouble GetSlope(const wxPoint2DDouble &pt1, const wxPoint2DDouble &pt2) + { return (pt2.m_y-pt1.m_y)/(pt2.m_x-pt1.m_x); } + + // find the point where the two rays meet, return false if parallel + bool Intersect(const wxRay2DDouble& other, wxPoint2DDouble& pt) const + { + // (y1-y0)/(x1-x0)=m for both lines, equate y1's first + if (m_slope == other.m_slope) return false; + pt.m_x = (m_slope*m_x - other.m_slope*other.m_x + other.m_y - m_y)/(m_slope - other.m_slope); + pt.m_y = GetYFromX(pt.m_x); + return true; + } + + // Operators + + inline wxRay2DDouble operator=(const wxRay2DDouble& r) { m_x = r.m_x; m_y = r.m_y; m_slope = r.m_slope; return *this; } + inline bool operator==(const wxRay2DDouble& r) const { return (m_x == r.m_x)&&(m_y == r.m_y)&&(m_slope == r.m_slope); } + inline bool operator!=(const wxRay2DDouble& r) const { return !(*this == r); } + + inline wxRay2DDouble operator+(const wxPoint2DDouble& rel_pos) const { return wxRay2DDouble(m_x+rel_pos.m_x, m_y+rel_pos.m_y, m_slope); } + inline wxRay2DDouble operator-(const wxPoint2DDouble& rel_pos) const { return wxRay2DDouble(m_x-rel_pos.m_x, m_y-rel_pos.m_y, m_slope); } + inline wxRay2DDouble operator*(const wxPoint2DDouble& rel_pos) const { return wxRay2DDouble(m_x*rel_pos.m_x, m_y*rel_pos.m_y, m_slope); } + inline wxRay2DDouble operator/(const wxPoint2DDouble& rel_pos) const { return wxRay2DDouble(m_x/rel_pos.m_x, m_y/rel_pos.m_y, m_slope); } + + inline wxRay2DDouble& operator+=(const wxPoint2DDouble& rel_pos) { m_x += rel_pos.m_x; m_y += rel_pos.m_y; return *this; } + inline wxRay2DDouble& operator-=(const wxPoint2DDouble& rel_pos) { m_x -= rel_pos.m_x; m_y -= rel_pos.m_y; return *this; } + inline wxRay2DDouble& operator*=(const wxPoint2DDouble& rel_pos) { m_x *= rel_pos.m_x; m_y *= rel_pos.m_y; return *this; } + inline wxRay2DDouble& operator/=(const wxPoint2DDouble& rel_pos) { m_x /= rel_pos.m_x; m_y /= rel_pos.m_y; return *this; } + + inline wxRay2DDouble operator+(const wxDouble& rel_slope) const { return wxRay2DDouble(m_x, m_y, m_slope+rel_slope); } + inline wxRay2DDouble operator-(const wxDouble& rel_slope) const { return wxRay2DDouble(m_x, m_y, m_slope-rel_slope); } + inline wxRay2DDouble operator*(const wxDouble& rel_slope) const { return wxRay2DDouble(m_x, m_y, m_slope*rel_slope); } + inline wxRay2DDouble operator/(const wxDouble& rel_slope) const { return wxRay2DDouble(m_x, m_y, m_slope/rel_slope); } + + inline wxRay2DDouble& operator+=(const wxDouble& rel_slope) { m_slope += rel_slope; return *this; } + inline wxRay2DDouble& operator-=(const wxDouble& rel_slope) { m_slope -= rel_slope; return *this; } + inline wxRay2DDouble& operator*=(const wxDouble& rel_slope) { m_slope *= rel_slope; return *this; } + inline wxRay2DDouble& operator/=(const wxDouble& rel_slope) { m_slope /= rel_slope; return *this; } + + wxDouble m_slope; +}; + +//----------------------------------------------------------------------------- +// wxLine2DInt uses point slope line format +// +// y = mx+b, m=(x-x0)/(y-y0) +//----------------------------------------------------------------------------- +/* +class WXDLLIMPEXP_THINGS wxLine2DInt : wxRect2DInt +{ +public : + + inline wxLine2DInt(wxInt32 x1=0, wxInt32 y1=0, wxInt32 x2=0, wxInt32 y2=0) + { m_x = x1; m_y = y1; m_width = x2 - x1; m_height = y2 - y1; } + inline wxLine2DInt(const wxPoint2DInt &pt1, const wxPoint2DInt &pt2) + { m_x = pt1.m_x; m_y = pt1.m_y; m_width = pt2.m_x - pt1.m_x; m_height = pt2.m_y - pt1.m_y; } + inline wxLine2DInt(const wxLine2DInt &line) + { m_x = line.m_x; m_y = line.m_y; m_width = line.m_width; m_height = line.m_height; } + + inline wxInt32 GetX1() const { return m_x; } + inline wxInt32 GetY1() const { return m_y; } + inline wxInt32 GetX2() const { return m_x + m_width; } + inline wxInt32 GetY2() const { return m_y + m_height; } + inline wxPoint2DInt Get1Point() const { return GetTopLeft(); } + inline wxPoint2DInt Get2Point() const { return GetBottomRight(); } + inline wxDouble GetSlope() const { return wxDouble(m_height)/wxDouble(m_width); } + + inline void SetX1(wxInt32 x) { m_x = x; } + inline void SetY1(wxInt32 y) { m_y = y; } + inline void SetX2(wxInt32 x) { m_width = m_x - x; } + inline void SetY2(wxInt32 y) { m_height = m_y - y; } + inline void SetPoint1(const wxPoint2DInt &pt ) { SetTopLeft(pt); } + inline void SetPoint2(const wxPoint2DInt &pt ) { SetBottomRight(pt); } + + inline wxDouble GetYFromX(wxDouble x) const {return (wxDouble(m_height)/m_width)*(x-m_x) + m_y;} + inline wxDouble GetXFromY(wxDouble y) const {return (y-m_y)*(wxDouble(m_height)/m_width) + m_x;} + + // Get a point along the line at pos x or y + inline wxPoint2DInt GetPointOnLineFromX(wxInt32 x) const + { return wxPoint2DInt(x, GetYFromX(x)); } + inline wxPoint2DInt GetPointOnLineFromY(wxInt32 y) const + { return wxPoint2DInt(GetXFromY(y), y); } + + // Translate the point m_pt along the line to pos x or y + inline void TranslatePointByX(wxDouble x) + { m_pt.m_y = GetYFromX(x); m_pt.m_x = x; } + inline void TranslatePointByY(wxDouble y) + { m_pt.m_x = GetXFromY(y); m_pt.m_y = y; } + inline wxLine2DInt GetTranslatedLineByX(wxDouble x) + { return wxLine2DInt(x, GetYFromX(x), m_slope); } + inline wxLine2DInt GetTranslatedLineByY(wxDouble y) + { return wxLine2DInt(GetXFromY(y), y, m_slope); } + + inline wxDouble GetDistanceToPoint(const wxPoint2DDouble &pt, wxPoint2DDouble *closestPt=NULL) const + { + wxPoint2DDouble l1(m_pt); + wxPoint2DDouble l2(GetPointOnLineFromX(m_pt.m_x+pt.m_x)); + wxPoint2DDouble v = l2 - l1; + wxPoint2DDouble w = pt - l1; + double c1 = w.GetDotProduct(v); + double c2 = v.GetDotProduct(v); + double b = c1 / c2; + wxPoint2DDouble pb = l1 + b*v; + if (closestPt) *closestPt = pb; + return pb.GetDistance( pt ); + + } + + + inline static wxDouble GetSlope(wxDouble x1, wxDouble y1, wxDouble x2, wxDouble y2) + { return (y2 - y1)/(x2 - x1); } + inline static wxDouble GetSlope(const wxPoint2DDouble &pt1, const wxPoint2DDouble &pt2) + { return (pt2.m_y-pt1.m_y)/(pt2.m_x-pt1.m_x); } + + + // Default copy operator is ok + + wxPoint2DDouble m_pt; + wxDouble m_slope; +}; +*/ + +//----------------------------------------------------------------------------- +// wxCircleDouble m_r*m_r = (x-m_origin.m_x)^2 + (y-m_origin.m_y)^2 +//----------------------------------------------------------------------------- + +class WXDLLIMPEXP_THINGS wxCircleDouble : public wxPoint2DDouble +{ +public : + + inline wxCircleDouble(const wxCircleDouble &circle) + { m_x = circle.m_x; m_y = circle.m_y; m_r = circle.m_r; } + + inline wxCircleDouble(wxDouble x=0, wxDouble y=0, wxDouble r=0) + { m_x = x; m_y = y; m_r = r; } + + inline wxCircleDouble(const wxPoint2DDouble &origin, wxDouble r) + { m_x = origin.m_x; m_y = origin.m_y; m_r = r; } + + inline wxCircleDouble(const wxPoint2DDouble &p1, + const wxPoint2DDouble &p2, + const wxPoint2DDouble &p3); + + inline bool IsEmpty() const { return m_r <= 0; } + + inline wxDouble GetX() const { return m_x; } + inline wxDouble GetY() const { return m_y; } + inline wxPoint2DDouble GetOrigin() const { return wxPoint2DDouble(m_x, m_y); } + inline wxDouble GetRadius() const { return m_r; } + + // Get a bounding rect + inline wxRect2DDouble GetRect() const + { return wxRect2DDouble(m_x-m_r, m_y-m_r, 2.0*m_r, 2.0*m_r); } + + inline void SetX(wxDouble x) { m_x = x; } + inline void SetY(wxDouble y) { m_y = y; } + inline void SetOrigin(const wxPoint2DDouble &origin) { m_x = origin.m_x; m_y = origin.m_y; } + inline void SetRadius(wxDouble r) { m_r = r; } + + inline bool GetPointInCircle(wxDouble x, wxDouble y) const + { if (IsEmpty()) return false; + return ((x-m_x)*(x-m_x) + (y-m_y)*(y-m_y) <= m_r*m_r); } + + inline bool GetPointInCircle(const wxPoint2DDouble &pt) const + { return GetPointInCircle(pt.m_x, pt.m_y); } + + inline bool Intersects(const wxCircleDouble &circle) const + { return GetDistance(circle) <= m_r + circle.m_r; } + + int IntersectLine( const wxRay2DDouble &line, + wxPoint2DDouble *pt1=NULL, + wxPoint2DDouble *pt2=NULL ) const; + + // Operators + + inline wxCircleDouble operator=(const wxCircleDouble& c) { m_x = c.m_x; m_y = c.m_y; m_r = c.m_r; return *this; } + inline bool operator==(const wxCircleDouble& c) const { return (m_x == c.m_x)&&(m_y == c.m_y)&&(m_r == c.m_r); } + inline bool operator!=(const wxCircleDouble& c) const { return !(*this == c); } + + inline wxCircleDouble operator+(const wxPoint2DDouble& rel_origin) const { return wxCircleDouble(m_x+rel_origin.m_x, m_y+rel_origin.m_y, m_r); } + inline wxCircleDouble operator-(const wxPoint2DDouble& rel_origin) const { return wxCircleDouble(m_x-rel_origin.m_x, m_y-rel_origin.m_y, m_r); } + inline wxCircleDouble operator*(const wxPoint2DDouble& rel_origin) const { return wxCircleDouble(m_x*rel_origin.m_x, m_y*rel_origin.m_y, m_r); } + inline wxCircleDouble operator/(const wxPoint2DDouble& rel_origin) const { return wxCircleDouble(m_x/rel_origin.m_x, m_y/rel_origin.m_y, m_r); } + + inline wxCircleDouble& operator+=(const wxPoint2DDouble& rel_origin) { m_x += rel_origin.m_x; m_y += rel_origin.m_y; return *this; } + inline wxCircleDouble& operator-=(const wxPoint2DDouble& rel_origin) { m_x -= rel_origin.m_x; m_y -= rel_origin.m_y; return *this; } + inline wxCircleDouble& operator*=(const wxPoint2DDouble& rel_origin) { m_x *= rel_origin.m_x; m_y *= rel_origin.m_y; return *this; } + inline wxCircleDouble& operator/=(const wxPoint2DDouble& rel_origin) { m_x /= rel_origin.m_x; m_y /= rel_origin.m_y; return *this; } + + inline wxCircleDouble operator+(const wxDouble& rel_radius) const { return wxCircleDouble(m_x, m_y, m_r+rel_radius); } + inline wxCircleDouble operator-(const wxDouble& rel_radius) const { return wxCircleDouble(m_x, m_y, m_r-rel_radius); } + inline wxCircleDouble operator*(const wxDouble& rel_radius) const { return wxCircleDouble(m_x, m_y, m_r*rel_radius); } + inline wxCircleDouble operator/(const wxDouble& rel_radius) const { return wxCircleDouble(m_x, m_y, m_r/rel_radius); } + + inline wxCircleDouble& operator+=(const wxDouble& rel_radius) { m_r += rel_radius; return *this; } + inline wxCircleDouble& operator-=(const wxDouble& rel_radius) { m_r -= rel_radius; return *this; } + inline wxCircleDouble& operator*=(const wxDouble& rel_radius) { m_r *= rel_radius; return *this; } + inline wxCircleDouble& operator/=(const wxDouble& rel_radius) { m_r /= rel_radius; return *this; } + + wxDouble m_r; +}; + +//----------------------------------------------------------------------------- +// wxCircleInt m_r*m_r = (x-m_origin.m_x)^2 + (y-m_origin.m_y)^2 +//----------------------------------------------------------------------------- + +class WXDLLIMPEXP_THINGS wxCircleInt : public wxPoint2DInt +{ +public : + + inline wxCircleInt(wxInt32 x=0, wxInt32 y=0, wxInt32 r=0) + { m_x = x; m_y = y; m_r = r; } + inline wxCircleInt(const wxPoint2DInt &origin, wxInt32 r) + { m_x = origin.m_x; m_y = origin.m_y; m_r = r; } + inline wxCircleInt(const wxCircleInt &circle) + { m_x = circle.m_x; m_y = circle.m_y; m_r = circle.m_r; } + + inline bool IsEmpty() const { return m_r <= 0; } + + inline wxInt32 GetX() const { return m_x; } + inline wxInt32 GetY() const { return m_y; } + inline wxPoint2DInt GetOrigin() const { return wxPoint2DInt(m_x, m_y); } + inline wxInt32 GetRadius() const { return m_r; } + + // Get a bounding rect + inline wxRect2DInt GetRect() const + { return wxRect2DInt(m_x-m_r, m_y-m_r, 2*m_r, 2*m_r); } + + inline void SetX(wxInt32 x) { m_x = x; } + inline void SetY(wxInt32 y) { m_y = y; } + inline void SetOrigin(const wxPoint2DInt &origin) { m_x = origin.m_x; m_y = origin.m_y; } + inline void SetRadius(wxInt32 r) { m_r = r; } + + inline bool GetPointInCircle(wxInt32 x, wxInt32 y) const + { if (IsEmpty()) return false; + return ((x-m_x)*(x-m_x) + (y-m_y)*(y-m_y) <= m_r*m_r); } + + inline bool GetPointInCircle(const wxPoint2DInt &pt) const + { return GetPointInCircle(pt.m_x, pt.m_y); } + + inline bool Intersects(const wxCircleInt &circle) const + { return GetDistance(circle) <= m_r + circle.m_r; } + +// int IntersectLine( const wxRay2DDouble &line, +// wxPoint2DInt *pt1=NULL, +// wxPoint2DInt *pt2=NULL ) const; + + // Operators + + inline wxCircleInt operator=(const wxCircleInt& c) { m_x = c.m_x; m_y = c.m_y; m_r = c.m_r; return *this; } + inline bool operator==(const wxCircleInt& c) const { return (m_x == c.m_x)&&(m_y == c.m_y)&&(m_r == c.m_r); } + inline bool operator!=(const wxCircleInt& c) const { return !(*this == c); } + + inline wxCircleInt operator+(const wxPoint2DInt& rel_origin) const { return wxCircleInt(m_x+rel_origin.m_x, m_y+rel_origin.m_y, m_r); } + inline wxCircleInt operator-(const wxPoint2DInt& rel_origin) const { return wxCircleInt(m_x-rel_origin.m_x, m_y-rel_origin.m_y, m_r); } + inline wxCircleInt operator*(const wxPoint2DInt& rel_origin) const { return wxCircleInt(m_x*rel_origin.m_x, m_y*rel_origin.m_y, m_r); } + inline wxCircleInt operator/(const wxPoint2DInt& rel_origin) const { return wxCircleInt(m_x/rel_origin.m_x, m_y/rel_origin.m_y, m_r); } + + inline wxCircleInt& operator+=(const wxPoint2DInt& rel_origin) { m_x += rel_origin.m_x; m_y += rel_origin.m_y; return *this; } + inline wxCircleInt& operator-=(const wxPoint2DInt& rel_origin) { m_x -= rel_origin.m_x; m_y -= rel_origin.m_y; return *this; } + inline wxCircleInt& operator*=(const wxPoint2DInt& rel_origin) { m_x *= rel_origin.m_x; m_y *= rel_origin.m_y; return *this; } + inline wxCircleInt& operator/=(const wxPoint2DInt& rel_origin) { m_x /= rel_origin.m_x; m_y /= rel_origin.m_y; return *this; } + + inline wxCircleInt operator+(const wxInt32& rel_radius) const { return wxCircleInt(m_x, m_y, m_r+rel_radius); } + inline wxCircleInt operator-(const wxInt32& rel_radius) const { return wxCircleInt(m_x, m_y, m_r-rel_radius); } + inline wxCircleInt operator*(const wxInt32& rel_radius) const { return wxCircleInt(m_x, m_y, m_r*rel_radius); } + inline wxCircleInt operator/(const wxInt32& rel_radius) const { return wxCircleInt(m_x, m_y, m_r/rel_radius); } + + inline wxCircleInt& operator+=(const wxInt32& rel_radius) { m_r += rel_radius; return *this; } + inline wxCircleInt& operator-=(const wxInt32& rel_radius) { m_r -= rel_radius; return *this; } + inline wxCircleInt& operator*=(const wxInt32& rel_radius) { m_r *= rel_radius; return *this; } + inline wxCircleInt& operator/=(const wxInt32& rel_radius) { m_r /= rel_radius; return *this; } + + wxInt32 m_r; +}; + +//----------------------------------------------------------------------------- +// wxEllipseInt m_r*m_r = (x-m_origin.m_x)^2 + (y-m_origin.m_y)^2 +//----------------------------------------------------------------------------- + +class WXDLLIMPEXP_THINGS wxEllipseInt +{ +public : + + inline wxEllipseInt(wxInt32 x=0, wxInt32 y=0, wxInt32 r_x=0, wxInt32 r_y=0) + { m_origin.m_x=x; m_origin.m_y=y; m_radius.m_x=r_x; m_radius.m_y=r_y; } + inline wxEllipseInt(const wxPoint2DInt &origin, const wxPoint2DInt radius) + { m_origin = origin; m_radius = radius; } + inline wxEllipseInt(const wxEllipseInt &ellipse) + { m_origin = ellipse.m_origin; m_radius = ellipse.m_radius; } + + inline bool IsEmpty() const { return m_radius.m_x<=0 || m_radius.m_y<=0; } + + inline wxInt32 GetX() const { return m_origin.m_x; } + inline wxInt32 GetY() const { return m_origin.m_y; } + inline wxPoint2DInt GetOrigin() const { return m_origin; } + inline wxInt32 GetXRadius() const { return m_radius.m_x; } + inline wxInt32 GetYRadius() const { return m_radius.m_y; } + inline wxPoint2DInt GetRadius() const { return m_radius; } + + // Get a bounding rect + inline wxRect2DInt GetRect() const + { return wxRect2DInt(m_origin.m_x-m_radius.m_x, + m_origin.m_y-m_radius.m_y, + 2*m_radius.m_x, 2*m_radius.m_y); } + + inline void SetX(wxInt32 x) { m_origin.m_x = x; } + inline void SetY(wxInt32 y) { m_origin.m_y = y; } + inline void SetOrigin(const wxPoint2DInt &origin) { m_origin = origin; } + inline void SetXRadius(wxInt32 r_x) { m_radius.m_x = r_x; } + inline void SetYRadius(wxInt32 r_y) { m_radius.m_y = r_y; } + inline void SetRadius(const wxPoint2DInt &radius) { m_radius = radius; } + + inline bool GetPointInEllipse(wxInt32 x, wxInt32 y) const + { if (IsEmpty()) return false; + return (((x-m_origin.m_x)*(x-m_origin.m_x))/m_radius.m_x + + ((y-m_origin.m_y)*(y-m_origin.m_y))/m_radius.m_y <= 1); } + + inline bool GetPointInEllipse(const wxPoint2DInt &pt) const + { return GetPointInEllipse(pt.m_x, pt.m_y); } + +// int IntersectLine( const wxRay2DDouble &line, +// wxPoint2DInt *pt1=NULL, +// wxPoint2DInt *pt2=NULL ) const; + + + inline bool operator==(const wxEllipseInt& c) const { return (m_origin == c.m_origin)&&(m_radius == c.m_radius); } + inline bool operator!=(const wxEllipseInt& c) const { return !(*this == c); } + + inline wxEllipseInt operator+(const wxPoint2DInt& rel_origin) const { return wxEllipseInt(m_origin+rel_origin, m_radius); } + inline wxEllipseInt& operator+=(const wxPoint2DInt& rel_origin) { m_origin += rel_origin; return *this; } + inline wxEllipseInt operator-(const wxPoint2DInt& rel_origin) const { return wxEllipseInt(m_origin-rel_origin, m_radius); } + inline wxEllipseInt& operator-=(const wxPoint2DInt& rel_origin) { m_origin -= rel_origin; return *this; } + + wxPoint2DInt m_radius; + wxPoint2DInt m_origin; +}; + + +#endif // __WXIMAGER_GEOMETRY_H__ diff --git a/.svn/pristine/9a/9acc0000b12de9881ec2c684e138a98de712017e.svn-base b/.svn/pristine/9a/9acc0000b12de9881ec2c684e138a98de712017e.svn-base new file mode 100644 index 0000000..8bcb9f1 --- /dev/null +++ b/.svn/pristine/9a/9acc0000b12de9881ec2c684e138a98de712017e.svn-base @@ -0,0 +1,223 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: wxBitmapComboBox +// Purpose: A wxComboBox type button for bitmaps and strings +// Author: John Labenski +// Modified by: +// Created: 11/05/2002 +// Copyright: (c) John Labenski +// Licence: wxWidgets licence +///////////////////////////////////////////////////////////////////////////// + +/* + +wxBitmapComboBox is a wxComboBox widget for bitmaps + +You Append some bitmaps either individually or with an array. Since bitmaps are +refed this should be a fast process and you don't have to keep them around. +The size of the items is calculated from the max bitmap and max label so that +they will all line up nicely. + +It acts just like a wxComboBox otherwise, sends a EVT_COMBOBOX when selections +are made with either the mouse on the pulldown list or by pressing the up/down +arrows. + +*/ + +#ifndef _WX_BMPCOMBO_H_ +#define _WX_BMPCOMBO_H_ + +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) + #pragma interface "bmpcombo.h" +#endif + +#include "wx/things/thingdef.h" +#include "wx/things/dropdown.h" + +class WXDLLEXPORT wxMenu; +class WXDLLEXPORT wxBitmap; +class WXDLLEXPORT wxKeyEvent; +class WXDLLEXPORT wxPaintEvent; +class WXDLLEXPORT wxDC; +class WXDLLIMPEXP_THINGS wxCustomButton; +class WXDLLIMPEXP_THINGS wxBitmapComboPopupChild; +class WXDLLIMPEXP_THINGS wxBitmapComboLabel; + +enum wxBitmapComboBox_Style +{ + // Position of the labels relative to the bitmaps, use only one + wxBMPCOMBO_LEFT = wxCB_DROPDOWN, + wxBMPCOMBO_RIGHT = wxCB_SIMPLE +}; + +class WXDLLIMPEXP_THINGS wxBitmapComboBox : public DropDownBase +{ +public: + wxBitmapComboBox() : DropDownBase() { Init(); } + + // Compatible with a wxComboBox, uses strings only + wxBitmapComboBox(wxWindow *parent, wxWindowID id, + const wxString& value = wxEmptyString, // used only if first choice is !null + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + int n = 0, const wxString choices[] = (const wxString *) NULL, + long style = wxBMPCOMBO_RIGHT, + const wxValidator& val = wxDefaultValidator, + const wxString& name = wxT("wxBitmapComboBox")) + :DropDownBase() + { + Init(); + if ((n > 0) || (!value.IsEmpty())) + { + if ((n > 0) && choices) + { + for (int i=0; i= m_x1) && (x <= m_x2) && (y >= m_y1) && (y <= m_y2)); } + inline bool Contains( const wxPoint2DInt &pt ) const { return Contains(pt.m_x, pt.m_y); } + inline bool Contains( const wxBlockInt &b ) const + { return ((m_x1 <= b.m_x1) && (b.m_x2 <= m_x2) && (m_y1 <= b.m_y1) && (b.m_y2 <= m_y2)); } + + inline bool Intersects( const wxBlockInt &b ) const + { return (wxMax(m_x1, b.m_x1)<=wxMin(m_x2, b.m_x2)) && (wxMax(m_y1, b.m_y1)<=wxMin(m_y2, b.m_y2)); } + inline void Intersect( const wxBlockInt &otherBlock ) { Intersect( *this, otherBlock, this ); } + inline void Intersect( const wxBlockInt &src1 , const wxBlockInt &src2 , wxBlockInt *dest ) const + { + dest->m_x1 = wxMax(src1.m_x1, src2.m_x1); + dest->m_x2 = wxMin(src1.m_x2, src2.m_x2); + dest->m_y1 = wxMax(src1.m_y1, src2.m_y1); + dest->m_y2 = wxMin(src1.m_y2, src2.m_y2); + } + + inline void Union( const wxBlockInt &otherBlock ) { Union(*this, otherBlock, this); } + inline void Union( const wxBlockInt &src1, const wxBlockInt &src2, wxBlockInt *dest ) const + { + dest->m_x1 = wxMin(src1.m_x1, src2.m_x1); + dest->m_x2 = wxMax(src1.m_x2, src2.m_x2); + dest->m_y1 = wxMin(src1.m_y1, src2.m_y1); + dest->m_y2 = wxMax(src1.m_y2, src2.m_y2); + } + + // is this block larger than input block, return 1 = larger, 0 = equal, -1 = smaller + int IsLarger(const wxBlockInt &b) const + { + wxInt32 width = m_x2 - m_x1 + 1, + height = m_y2 - m_y1 + 1, + b_width = b.m_x2 - b.m_x1 + 1, + b_height = b.m_y2 - b.m_y1 + 1; + + if ((width <= 0) || (height <= 0)) + return (b_width > 0) && (b_height > 0) ? -1 : 0; + if ((b_width <= 0) || (b_height <= 0)) + return (width > 0) && (height > 0) ? 1 : 0; + + wxDouble w_bw = wxDouble(width)/b_width, + bh_h = wxDouble(b_height)/height; + return (w_bw == bh_h) ? 0 : ((w_bw > bh_h) ? 1 : -1); + } + + bool IsEmpty() const { return (m_x1 > m_x2) || (m_y1 > m_y2); } + + // Unlike Intersects this also includes just touching the other block + bool Touches(const wxBlockInt &block) const; + + // Try to combine these blocks, they must touch and fit to make a single larger block + // this block is expanded if possible + bool Combine(const wxBlockInt &block); + + // test combining the input block with this one, returning the + // remainder of block in top, bottom, left, right - each may be IsEmpty() + // returns false if blocks don't touch or this block already contains block + // |---------------------------| + // | top | + // |---------------------------| + // | left |block| right | + // |---------------------------| + // | bottom | + // |---------------------------| + bool Combine( const wxBlockInt &block, + wxBlockInt &top, wxBlockInt &bottom, + wxBlockInt &left, wxBlockInt &right) const; + + // test removal of a portion or all of this contained in block returning the + // remainder in top, bottom, left, right - each may be IsEmpty() + // returns false if nothing to delete, this cell is not changed + bool Delete(const wxBlockInt &block, wxBlockInt &top, wxBlockInt &bottom, + wxBlockInt &left, wxBlockInt &right) const; + + // operators + inline bool operator == (const wxBlockInt& b) + { return (m_x1==b.m_x1) && (m_y1==b.m_y1) && (m_x2==b.m_x2) && (m_y2==b.m_y2); } + inline bool operator != (const wxBlockInt& b) + { return !(*this == b); } + + wxInt32 m_x1, m_y1, m_x2, m_y2; +}; + +//============================================================================= +// wxBlockDouble +//============================================================================= + +class WXDLLIMPEXP_THINGS wxBlockDouble +{ +public: + inline wxBlockDouble(wxDouble x1=0, wxDouble y1=0, wxDouble x2=0, wxDouble y2=0) + : m_x1(x1), m_y1(y1), m_x2(x2), m_y2(y2) {} + inline wxBlockDouble(const wxRect2DDouble &rect) + { m_x1=rect.m_x; m_y1=rect.m_y; m_x2=rect.GetRight(); m_y2=rect.GetBottom(); } + + inline wxDouble GetLeft() const { return m_x1; } + inline wxDouble GetRight() const { return m_x2; } + inline wxDouble GetTop() const { return m_y1; } + inline wxDouble GetBottom() const { return m_y2; } + + inline wxDouble GetWidth() const { return m_x2 - m_x1; } + inline wxDouble GetHeight() const { return m_y2 - m_y1; } + + inline wxPoint2DDouble GetLeftTop() const { return wxPoint2DDouble(m_x1, m_y1); } + inline wxPoint2DDouble GetLeftBottom() const { return wxPoint2DDouble(m_x1, m_y2); } + inline wxPoint2DDouble GetRightTop() const { return wxPoint2DDouble(m_x2, m_y1); } + inline wxPoint2DDouble GetRightBottom() const { return wxPoint2DDouble(m_x2, m_y2); } + + inline wxRect2DDouble GetRect2DDouble() const { return wxRect2DDouble(m_x1, m_y1, m_x2-m_x1, m_y2-m_y1); } + inline void SetRect2DDouble(const wxRect2DDouble &r) { m_x1=r.m_x; m_y1=r.m_y, m_x2=r.GetRight(); m_y2=r.GetBottom(); } + + inline bool Contains( wxDouble x, wxDouble y ) const + { return ((x >= m_x1) && (x <= m_x2) && (y >= m_y1) && (y <= m_y2)); } + inline bool Contains( const wxPoint2DDouble &pt ) const { return Contains(pt.m_x, pt.m_y); } + inline bool Contains( const wxBlockDouble &b ) const + { return ((m_x1 <= b.m_x1) && (b.m_x2 <= m_x2) && (m_y1 <= b.m_y1) && (b.m_y2 <= m_y2)); } + + inline bool Intersects( const wxBlockDouble &b ) const + { return (wxMax(m_x1, b.m_x1)m_x1 = wxMax(src1.m_x1, src2.m_x1); + dest->m_x2 = wxMin(src1.m_x2, src2.m_x2); + dest->m_y1 = wxMax(src1.m_y1, src2.m_y1); + dest->m_y2 = wxMin(src1.m_y2, src2.m_y2); + } + + inline void Union( const wxBlockDouble &otherBlock ) { Union( *this, otherBlock, this ); } + inline void Union( const wxBlockDouble &src1, const wxBlockDouble &src2, wxBlockDouble *dest ) const + { + dest->m_x1 = wxMin(src1.m_x1, src2.m_x1); + dest->m_x2 = wxMax(src1.m_x2, src2.m_x2); + dest->m_y1 = wxMin(src1.m_y1, src2.m_y1); + dest->m_y2 = wxMax(src1.m_y2, src2.m_y2); + } + + // is this block larger than input block, return 1 - larger, 0 = equal, -1 smaller + int IsLarger(const wxBlockDouble &b) const + { + wxDouble width = m_x2 - m_x1, + height = m_y2 - m_y1, + b_width = b.m_x2 - b.m_x1, + b_height = b.m_y2 - b.m_y1; + + if ((width <= 0) || (height <= 0)) + return (b_width > 0) && (b_height > 0) ? -1 : 0; + if ((b_width <= 0) || (b_height <= 0)) + return (width > 0) && (height > 0) ? 1 : 0; + + wxDouble w_bw = width/b_width, + bh_h = b_height/height; + return (w_bw == bh_h) ? 0 : ((w_bw > bh_h) ? 1 : -1); + } + inline bool IsEmpty() const { return (m_x1 > m_x2) || (m_y1 > m_y2); } + + // Unlike Intersects this also includes just touching the other block + bool Touches(const wxBlockDouble &block) const; + + // Try to combine these blocks, they must touch and fit to make a single larger block + // this block is expanded if possible + bool Combine(const wxBlockDouble &block); + + // test combining the input block with this one, returning the + // remainder of block in top, bottom, left, right - each may be IsEmpty() + // returns false if blocks don't touch or this block already contains block + // |---------------------------| + // | top | + // |---------------------------| + // | left |block| right | + // |---------------------------| + // | bottom | + // |---------------------------| + bool Combine( const wxBlockDouble &block, + wxBlockDouble &top, wxBlockDouble &bottom, + wxBlockDouble &left, wxBlockDouble &right) const; + + // test removal of a portion or all of this contained in block returning the + // remainder in top, bottom, left, right - each may be IsEmpty() + // returns false if nothing to delete, this cell is not changed + bool Delete( const wxBlockDouble &block, + wxBlockDouble &top, wxBlockDouble &bottom, + wxBlockDouble &left, wxBlockDouble &right) const; + + // operators + inline bool operator == (const wxBlockDouble& b) + { return (m_x1==b.m_x1) && (m_y1==b.m_y1) && (m_x2==b.m_x2) && (m_y2==b.m_y2); } + inline bool operator != (const wxBlockDouble& b) + { return !(*this == b); } + + wxDouble m_x1, m_y1, m_x2, m_y2; +}; + +//============================================================================= +// wxBlockIntSelection - ordered 2D array of wxBlockInts, combines to minimize size +// blocks never overlap each other +//============================================================================= + +class WXDLLIMPEXP_THINGS wxBlockIntSelection +{ +public : + wxBlockIntSelection(wxBlockSort_Type sort_type = wxBLOCKSORT_TOPLEFT_BOTTOMRIGHT) + : m_sort(sort_type) {} + wxBlockIntSelection(const wxBlockIntSelection &blocks, + wxBlockSort_Type sort_type = wxBLOCKSORT_TOPLEFT_BOTTOMRIGHT) + : m_sort(sort_type) { Copy(blocks); } + + // Make a full copy of the source + void Copy(const wxBlockIntSelection &source) + { + m_blocks.Clear(); + WX_APPEND_ARRAY(m_blocks, source.GetBlockArray()); + m_sort = source.GetSortType(); + } + + inline int GetCount() const { return m_blocks.GetCount(); } + + inline void Clear() { m_blocks.Clear(); } + + wxArrayBlockInt GetBlockArray() const { return m_blocks; } + +#ifdef USE_wxRANGE + // Get an array of ranges cutting though these blocks + wxArrayRangeInt GetBlockCol(int col) const; + wxArrayRangeInt GetBlockRow(int row) const; +#endif + + wxBlockInt GetBlock( int index ) const; + inline wxBlockInt Item( int index ) const { return GetBlock(index); } + + // Get a block that bounds the selection + wxBlockInt GetBoundingBlock() const; + + // do any of the blocks contains elements + inline bool Contains( int x, int y ) const { return Index(x,y) != wxNOT_FOUND; } + inline bool Contains( const wxPoint2DInt &pt ) const { return Index(pt) != wxNOT_FOUND; } + inline bool Contains( const wxBlockInt &b ) const { return Index(b) != wxNOT_FOUND; } + + // what is the index of a block that contains element + int Index( int x, int y ) const; + inline int Index( const wxPoint2DInt &pt ) const { return Index(pt.m_x, pt.m_y); } + int Index( const wxBlockInt &b ) const; + + // Sorts the blocks according to the wxBlockIntSort_Type + void Sort(wxBlockSort_Type type = wxBLOCKSORT_TOPRIGHT_BOTTOMLEFT); + wxBlockSort_Type GetSortType() const { return m_sort; } + + // Add the block to the selection, returns false if nothing was done + // use combineNow=false to make quick additions, when done call Minimize() + // addedBlocks (if !NULL) will be filled with the actual changed selections + // by removing the previous selections from the input block + bool SelectBlock( const wxBlockInt &block, bool combineNow=true, wxArrayBlockInt *addedBlocks=NULL); + + // Remove the block to the selection, return false if nothing was done + // use combineNow=false to make quick additions, when done call Minimize() + bool DeselectBlock( const wxBlockInt &block, bool combineNow=true); + + // Try to combine the blocks if possible, returns if anything was done + // only need to call this if you've called (De)SelectBlock(..., false) + bool Minimize(); + + // Operators + inline wxBlockInt operator[](int index) const { return GetBlock(index); } + + //wxBlockIntSelection& operator = (const wxBlockIntSelection& other) { Copy(other); return *this; } + + // generic routine using if (b1.Combine(b2)) remove b2 to cleanup array + // sort top_left_bottom_right first (internal use) + static bool DoMinimize( wxArrayBlockInt &blocks ); + // DoMinimize calls this internally + static bool DoDoMinimize( wxArrayBlockInt &blocks ); + +protected : + wxArrayBlockInt m_blocks; + wxBlockSort_Type m_sort; +}; + +//============================================================================= +// wxBlockDoubleSelection - ordered 2D array of wxBlockDoubles, combines to minimze size +// blocks never overlap each other +//============================================================================= + +class WXDLLIMPEXP_THINGS wxBlockDoubleSelection +{ +public : + wxBlockDoubleSelection(wxBlockSort_Type sort_type = wxBLOCKSORT_TOPLEFT_BOTTOMRIGHT) + : m_sort(sort_type) {} + wxBlockDoubleSelection(const wxBlockDoubleSelection &blocks, + wxBlockSort_Type sort_type = wxBLOCKSORT_TOPLEFT_BOTTOMRIGHT) + : m_sort(sort_type) { Copy(blocks); } + + // Make a full copy of the source + void Copy(const wxBlockDoubleSelection &source) + { + m_blocks.Clear(); + WX_APPEND_ARRAY(m_blocks, source.GetBlockArray()); + m_sort = source.GetSortType(); + } + + inline int GetCount() const { return m_blocks.GetCount(); } + + inline void Clear() { m_blocks.Clear(); } + + wxArrayBlockDouble GetBlockArray() const { return m_blocks; } + +#ifdef USE_wxRANGE + // Get an array of ranges cutting though these blocks + wxArrayRangeDouble GetBlockCol(wxDouble col) const; + wxArrayRangeDouble GetBlockRow(wxDouble row) const; +#endif + + wxBlockDouble GetBlock( int index ) const; + inline wxBlockDouble Item( int index ) const { return GetBlock(index); } + + // Get a block that bounds the selection + wxBlockDouble GetBoundingBlock() const; + + // do any of the blocks contains elements + inline bool Contains( wxDouble x, wxDouble y ) const { return Index(wxPoint2DDouble(x,y)) != wxNOT_FOUND; } + inline bool Contains( const wxPoint2DInt &pt ) const { return Index(pt) != wxNOT_FOUND; } + inline bool Contains( const wxBlockDouble &b ) const { return Index(b) != wxNOT_FOUND; } + + // what is the index of a block that contains element + int Index( wxDouble x, wxDouble y ) const; + inline int Index( const wxPoint2DDouble &pt ) const { return Index(pt.m_x, pt.m_y); } + int Index( const wxBlockDouble &b ) const; + + // Sorts the blocks according to the wxBlockIntSort_Type + void Sort(wxBlockSort_Type type = wxBLOCKSORT_TOPRIGHT_BOTTOMLEFT); + wxBlockSort_Type GetSortType() const { return m_sort; } + + // Add the block to the selection, returns false if nothing was done + // use combineNow=false to make quick additions, when done call Minimize() + bool SelectBlock( const wxBlockDouble &block, bool combineNow=true); + + // Remove the block to the selection, return false if nothing was done + // use combineNow=false to make quick additions, when done call Minimize() + bool DeselectBlock( const wxBlockDouble &block, bool combineNow=true); + + // Try to combine the blocks if possible, returns if anything was done + // only need to call this if you've called (De)SelectBlock(..., false) + bool Minimize(); + + // Operators + inline wxBlockDouble operator[](int index) const { return GetBlock(index); } + + //wxBlockIntSelection& operator = (const wxBlockIntSelection& other) { Copy(other); return *this; } + + // generic routine using if (b1.Combine(b2)) remove b2 to cleanup array + // sort top_left_bottom_right first (internal use) + static bool DoMinimize( wxArrayBlockDouble &blocks ); + // DoMinimize calls this internally + static bool DoDoMinimize( wxArrayBlockDouble &blocks ); + +protected : + wxArrayBlockDouble m_blocks; + wxBlockSort_Type m_sort; +}; + +//============================================================================= +// wxBlockIntSelectionIterator - iterates through a wxBlockIntSelection +//============================================================================= +enum wxBISI_Type +{ + wxBISI_POINT, // wxBlockIntSelectionIterator::SetType go point by point + wxBISI_BLOCK // go block by block +}; + +class WXDLLIMPEXP_THINGS wxBlockIntSelectionIterator +{ +public : + wxBlockIntSelectionIterator( const wxBlockIntSelection &sel, wxBISI_Type type = wxBISI_POINT ); + wxBlockIntSelectionIterator( const wxArrayBlockInt &blocks, wxBISI_Type type = wxBISI_POINT ); + + // resets the iterating to start at the beginning + void Reset(); + // Set the method to get the blocks, either point by point or each whole block + // also resets the iteration to the beginning + void SetType( wxBISI_Type type ) { m_type = type; Reset(); } + wxBISI_Type GetType() const { return m_type; } + + // Get next selection, returns false if at end (only valid for wxBISI_point) + bool GetNext(wxPoint2DInt &pt); + // Get next selection, returns false if at end (only valid for wxBISI_block) + bool GetNext(wxBlockInt &block); + + // checks if this row and col are in this selection + bool IsInSelection(const wxPoint2DInt &pt) const; + inline bool IsInSelection( int x, int y ) const { return IsInSelection(wxPoint2DInt(x,y)); } + +protected : + wxBISI_Type m_type; + int m_block_index; + wxPoint2DInt m_pt; + wxArrayBlockInt m_blocks; +}; + +//============================================================================= +// wxBlockDoubleSelectionIterator - iterates through a wxBlockDoubleSelection +//============================================================================= + +class WXDLLIMPEXP_THINGS wxBlockDoubleSelectionIterator +{ +public : + wxBlockDoubleSelectionIterator( const wxBlockDoubleSelection &sel ); + wxBlockDoubleSelectionIterator( const wxArrayBlockDouble &blocks ); + + // resets the iterating to start at the beginning + void Reset(); + // Get next selection, returns false if at the end + bool GetNext(wxBlockDouble &block); + // checks if this row and col are in this selection + bool IsInSelection(const wxPoint2DDouble &pt) const; + inline bool IsInSelection( int x, int y ) const { return IsInSelection(wxPoint2DDouble(x,y)); } + +protected : + size_t m_block_index; + wxArrayBlockDouble m_blocks; +}; + +#endif // __wxBLOCK_H__ diff --git a/.svn/pristine/9c/9c1877b74d1ab2ec4885d8843573f53ee87957b6.svn-base b/.svn/pristine/9c/9c1877b74d1ab2ec4885d8843573f53ee87957b6.svn-base new file mode 100644 index 0000000..c9a8cb8 --- /dev/null +++ b/.svn/pristine/9c/9c1877b74d1ab2ec4885d8843573f53ee87957b6.svn-base @@ -0,0 +1,1212 @@ +# Doxyfile 1.4.1 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project +# +# All text after a hash (#) is considered a comment and will be ignored +# The format is: +# TAG = value [value, ...] +# For lists items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (" ") + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- + +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded +# by quotes) that should identify the project. + +PROJECT_NAME = "6D SLAM" + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. +# This could be handy for archiving the generated documentation or +# if some version control system is used. + +PROJECT_NUMBER = 1.1 + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) +# base path where the generated documentation will be put. +# If a relative path is entered, it will be relative to the location +# where doxygen was started. If left blank the current directory will be used. + +OUTPUT_DIRECTORY = doc/ + +# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create +# 4096 sub-directories (in 2 levels) under the output directory of each output +# format and will distribute the generated files over these directories. +# Enabling this option can be useful when feeding doxygen a huge amount of +# source files, where putting all generated files in the same directory would +# otherwise cause performance problems for the file system. + +CREATE_SUBDIRS = NO + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# The default language is English, other supported languages are: +# Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, +# Dutch, Finnish, French, German, Greek, Hungarian, Italian, Japanese, +# Japanese-en (Japanese with English messages), Korean, Korean-en, Norwegian, +# Polish, Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, +# Swedish, and Ukrainian. + +OUTPUT_LANGUAGE = English + +# This tag can be used to specify the encoding used in the generated output. +# The encoding is not always determined by the language that is chosen, +# but also whether or not the output is meant for Windows or non-Windows users. +# In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES +# forces the Windows encoding (this is the default for the Windows binary), +# whereas setting the tag to NO uses a Unix-style encoding (the default for +# all platforms other than Windows). + +USE_WINDOWS_ENCODING = NO + +# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will +# include brief member descriptions after the members that are listed in +# the file and class documentation (similar to JavaDoc). +# Set to NO to disable this. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend +# the brief description of a member or function before the detailed description. +# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. + +REPEAT_BRIEF = YES + +# This tag implements a quasi-intelligent brief description abbreviator +# that is used to form the text in various listings. Each string +# in this list, if found as the leading text of the brief description, will be +# stripped from the text and the result after processing the whole list, is +# used as the annotated text. Otherwise, the brief description is used as-is. +# If left blank, the following values are used ("$name" is automatically +# replaced with the name of the entity): "The $name class" "The $name widget" +# "The $name file" "is" "provides" "specifies" "contains" +# "represents" "a" "an" "the" + +ABBREVIATE_BRIEF = + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# Doxygen will generate a detailed section even if there is only a brief +# description. + +ALWAYS_DETAILED_SEC = NO + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all +# inherited members of a class in the documentation of that class as if those +# members were ordinary class members. Constructors, destructors and assignment +# operators of the base classes will not be shown. + +INLINE_INHERITED_MEMB = NO + +# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full +# path before files name in the file list and in the header files. If set +# to NO the shortest path that makes the file name unique will be used. + +FULL_PATH_NAMES = NO + +# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag +# can be used to strip a user-defined part of the path. Stripping is +# only done if one of the specified strings matches the left-hand part of +# the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which doxygen is run is used as the +# path to strip. + +STRIP_FROM_PATH = + +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of +# the path mentioned in the documentation of a class, which tells +# the reader which header file to include in order to use a class. +# If left blank only the name of the header file containing the class +# definition is used. Otherwise one should specify the include paths that +# are normally passed to the compiler using the -I flag. + +STRIP_FROM_INC_PATH = include/ + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter +# (but less readable) file names. This can be useful is your file systems +# doesn't support long names like on DOS, Mac, or CD-ROM. + +SHORT_NAMES = NO + +# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen +# will interpret the first line (until the first dot) of a JavaDoc-style +# comment as the brief description. If set to NO, the JavaDoc +# comments will behave just like the Qt-style comments (thus requiring an +# explicit @brief command for a brief description. + +JAVADOC_AUTOBRIEF = NO + +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen +# treat a multi-line C++ special comment block (i.e. a block of //! or /// +# comments) as a brief description. This used to be the default behaviour. +# The new default is to treat a multi-line C++ comment block as a detailed +# description. Set this tag to YES if you prefer the old behaviour instead. + +MULTILINE_CPP_IS_BRIEF = NO + +# If the DETAILS_AT_TOP tag is set to YES then Doxygen +# will output the detailed description near the top, like JavaDoc. +# If set to NO, the detailed description appears after the member +# documentation. + +DETAILS_AT_TOP = NO + +# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented +# member inherits the documentation from any documented member that it +# re-implements. + +INHERIT_DOCS = YES + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES, then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. + +DISTRIBUTE_GROUP_DOC = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. +# Doxygen uses this value to replace tabs by spaces in code fragments. + +TAB_SIZE = 8 + +# This tag can be used to specify a number of aliases that acts +# as commands in the documentation. An alias has the form "name=value". +# For example adding "sideeffect=\par Side Effects:\n" will allow you to +# put the command \sideeffect (or @sideeffect) in the documentation, which +# will result in a user-defined paragraph with heading "Side Effects:". +# You can put \n's in the value part of an alias to insert newlines. + +ALIASES = + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C +# sources only. Doxygen will then generate output that is more tailored for C. +# For instance, some of the names that are used will be different. The list +# of all members will be omitted, etc. + +OPTIMIZE_OUTPUT_FOR_C = NO + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java sources +# only. Doxygen will then generate output that is more tailored for Java. +# For instance, namespaces will be presented as packages, qualified scopes +# will look different, etc. + +OPTIMIZE_OUTPUT_JAVA = NO + +# Set the SUBGROUPING tag to YES (the default) to allow class member groups of +# the same type (for instance a group of public functions) to be put as a +# subgroup of that type (e.g. under the Public Functions section). Set it to +# NO to prevent subgrouping. Alternatively, this can be done per class using +# the \nosubgrouping command. + +SUBGROUPING = YES + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in +# documentation are documented, even if no documentation was available. +# Private class members and static file members will be hidden unless +# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES + +EXTRACT_ALL = NO + +# If the EXTRACT_PRIVATE tag is set to YES all private members of a class +# will be included in the documentation. + +EXTRACT_PRIVATE = NO + +# If the EXTRACT_STATIC tag is set to YES all static members of a file +# will be included in the documentation. + +EXTRACT_STATIC = NO + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) +# defined locally in source files will be included in the documentation. +# If set to NO only classes defined in header files are included. + +EXTRACT_LOCAL_CLASSES = YES + +# This flag is only useful for Objective-C code. When set to YES local +# methods, which are defined in the implementation section but not in +# the interface are included in the documentation. +# If set to NO (the default) only methods in the interface are included. + +EXTRACT_LOCAL_METHODS = NO + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all +# undocumented members of documented classes, files or namespaces. +# If set to NO (the default) these members will be included in the +# various overviews, but no documentation section is generated. +# This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_MEMBERS = NO + +# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. +# If set to NO (the default) these classes will be included in the various +# overviews. This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_CLASSES = NO + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all +# friend (class|struct|union) declarations. +# If set to NO (the default) these declarations will be included in the +# documentation. + +HIDE_FRIEND_COMPOUNDS = NO + +# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any +# documentation blocks found inside the body of a function. +# If set to NO (the default) these blocks will be appended to the +# function's detailed documentation block. + +HIDE_IN_BODY_DOCS = NO + +# The INTERNAL_DOCS tag determines if documentation +# that is typed after a \internal command is included. If the tag is set +# to NO (the default) then the documentation will be excluded. +# Set it to YES to include the internal documentation. + +INTERNAL_DOCS = NO + +# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate +# file names in lower-case letters. If set to YES upper-case letters are also +# allowed. This is useful if you have classes or files whose names only differ +# in case and if your file system supports case sensitive file names. Windows +# and Mac users are advised to set this option to NO. + +CASE_SENSE_NAMES = YES + +# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen +# will show members with their full class and namespace scopes in the +# documentation. If set to YES the scope will be hidden. + +HIDE_SCOPE_NAMES = NO + +# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen +# will put a list of the files that are included by a file in the documentation +# of that file. + +SHOW_INCLUDE_FILES = YES + +# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] +# is inserted in the documentation for inline members. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen +# will sort the (detailed) documentation of file and class members +# alphabetically by member name. If set to NO the members will appear in +# declaration order. + +SORT_MEMBER_DOCS = YES + +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the +# brief documentation of file, namespace and class members alphabetically +# by member name. If set to NO (the default) the members will appear in +# declaration order. + +SORT_BRIEF_DOCS = NO + +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be +# sorted by fully-qualified names, including namespaces. If set to +# NO (the default), the class list will be sorted only by class name, +# not including the namespace part. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option applies only to the class list, not to the +# alphabetical list. + +SORT_BY_SCOPE_NAME = NO + +# The GENERATE_TODOLIST tag can be used to enable (YES) or +# disable (NO) the todo list. This list is created by putting \todo +# commands in the documentation. + +GENERATE_TODOLIST = YES + +# The GENERATE_TESTLIST tag can be used to enable (YES) or +# disable (NO) the test list. This list is created by putting \test +# commands in the documentation. + +GENERATE_TESTLIST = YES + +# The GENERATE_BUGLIST tag can be used to enable (YES) or +# disable (NO) the bug list. This list is created by putting \bug +# commands in the documentation. + +GENERATE_BUGLIST = YES + +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or +# disable (NO) the deprecated list. This list is created by putting +# \deprecated commands in the documentation. + +GENERATE_DEPRECATEDLIST= YES + +# The ENABLED_SECTIONS tag can be used to enable conditional +# documentation sections, marked by \if sectionname ... \endif. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines +# the initial value of a variable or define consists of for it to appear in +# the documentation. If the initializer consists of more lines than specified +# here it will be hidden. Use a value of 0 to hide initializers completely. +# The appearance of the initializer of individual variables and defines in the +# documentation can be controlled using \showinitializer or \hideinitializer +# command in the documentation regardless of this setting. + +MAX_INITIALIZER_LINES = 30 + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated +# at the bottom of the documentation of classes and structs. If set to YES the +# list will mention the files that were used to generate the documentation. + +SHOW_USED_FILES = YES + +# If the sources in your project are distributed over multiple directories +# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy +# in the documentation. + +SHOW_DIRECTORIES = YES + +# The FILE_VERSION_FILTER tag can be used to specify a program or script that +# doxygen should invoke to get the current version for each file (typically from the +# version control system). Doxygen will invoke the program by executing (via +# popen()) the command , where is the value of +# the FILE_VERSION_FILTER tag, and is the name of an input file +# provided by doxygen. Whatever the progam writes to standard output +# is used as the file version. See the manual for examples. + +FILE_VERSION_FILTER = + +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated +# by doxygen. Possible values are YES and NO. If left blank NO is used. + +QUIET = NO + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated by doxygen. Possible values are YES and NO. If left blank +# NO is used. + +WARNINGS = YES + +# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings +# for undocumented members. If EXTRACT_ALL is set to YES then this flag will +# automatically be disabled. + +WARN_IF_UNDOCUMENTED = YES + +# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as not documenting some +# parameters in a documented function, or documenting parameters that +# don't exist or using markup commands wrongly. + +WARN_IF_DOC_ERROR = YES + +# This WARN_NO_PARAMDOC option can be abled to get warnings for +# functions that are documented, but have no documentation for their parameters +# or return value. If set to NO (the default) doxygen will only warn about +# wrong or incomplete parameter documentation, but not about the absence of +# documentation. + +WARN_NO_PARAMDOC = YES + +# The WARN_FORMAT tag determines the format of the warning messages that +# doxygen can produce. The string should contain the $file, $line, and $text +# tags, which will be replaced by the file and line number from which the +# warning originated and the warning text. Optionally the format may contain +# $version, which will be replaced by the version of the file (if it could +# be obtained via FILE_VERSION_FILTER) + +WARN_FORMAT = "$file:$line: $text" + +# The WARN_LOGFILE tag can be used to specify a file to which warning +# and error messages should be written. If left blank the output is written +# to stderr. + +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag can be used to specify the files and/or directories that contain +# documented source files. You may enter file names like "myfile.cpp" or +# directories like "/usr/src/myproject". Separate the files or directories +# with spaces. + +INPUT = src/show src/slam6D src/grid src/pmd + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank the following patterns are tested: +# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx +# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm + +FILE_PATTERNS = *.cc *.h *.icc + +# The RECURSIVE tag can be used to turn specify whether or not subdirectories +# should be searched for input files as well. Possible values are YES and NO. +# If left blank NO is used. + +RECURSIVE = NO + +# The EXCLUDE tag can be used to specify files and/or directories that should +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. + +EXCLUDE = + +# The EXCLUDE_SYMLINKS tag can be used select whether or not files or +# directories that are symbolic links (a Unix filesystem feature) are excluded +# from the input. + +EXCLUDE_SYMLINKS = NO + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. + +EXCLUDE_PATTERNS = + +# The EXAMPLE_PATH tag can be used to specify one or more files or +# directories that contain example code fragments that are included (see +# the \include command). + +EXAMPLE_PATH = + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank all files are included. + +EXAMPLE_PATTERNS = + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude +# commands irrespective of the value of the RECURSIVE tag. +# Possible values are YES and NO. If left blank NO is used. + +EXAMPLE_RECURSIVE = NO + +# The IMAGE_PATH tag can be used to specify one or more files or +# directories that contain image that are included in the documentation (see +# the \image command). + +IMAGE_PATH = + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command , where +# is the value of the INPUT_FILTER tag, and is the name of an +# input file. Doxygen will then use the output that the filter program writes +# to standard output. If FILTER_PATTERNS is specified, this tag will be +# ignored. + +INPUT_FILTER = + +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern +# basis. Doxygen will compare the file name with each pattern and apply the +# filter if there is a match. The filters are a list of the form: +# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further +# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER +# is applied to all files. + +FILTER_PATTERNS = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will be used to filter the input files when producing source +# files to browse (i.e. when SOURCE_BROWSER is set to YES). + +FILTER_SOURCE_FILES = NO + +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will +# be generated. Documented entities will be cross-referenced with these sources. +# Note: To get rid of all source code in the generated output, make sure also +# VERBATIM_HEADERS is set to NO. + +SOURCE_BROWSER = YES + +# Setting the INLINE_SOURCES tag to YES will include the body +# of functions and classes directly in the documentation. + +INLINE_SOURCES = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct +# doxygen to hide any special comment blocks from generated source code +# fragments. Normal C and C++ comments will always remain visible. + +STRIP_CODE_COMMENTS = YES + +# If the REFERENCED_BY_RELATION tag is set to YES (the default) +# then for each documented function all documented +# functions referencing it will be listed. + +REFERENCED_BY_RELATION = YES + +# If the REFERENCES_RELATION tag is set to YES (the default) +# then for each documented function all documented entities +# called/used by that function will be listed. + +REFERENCES_RELATION = YES + +# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen +# will generate a verbatim copy of the header file for each class for +# which an include is specified. Set to NO to disable this. + +VERBATIM_HEADERS = YES + +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index +# of all compounds will be generated. Enable this if the project +# contains a lot of classes, structs, unions or interfaces. + +ALPHABETICAL_INDEX = NO + +# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then +# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns +# in which this list will be split (can be a number in the range [1..20]) + +COLS_IN_ALPHA_INDEX = 5 + +# In case all classes in a project start with a common prefix, all +# classes will be put under the same header in the alphabetical index. +# The IGNORE_PREFIX tag can be used to specify one or more prefixes that +# should be ignored while generating the index headers. + +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES (the default) Doxygen will +# generate HTML output. + +GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `html' will be used as the default path. + +HTML_OUTPUT = html + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for +# each generated HTML page (for example: .htm,.php,.asp). If it is left blank +# doxygen will generate files with .html extension. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a personal HTML header for +# each generated HTML page. If it is left blank doxygen will generate a +# standard header. + +HTML_HEADER = + +# The HTML_FOOTER tag can be used to specify a personal HTML footer for +# each generated HTML page. If it is left blank doxygen will generate a +# standard footer. + +HTML_FOOTER = + +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading +# style sheet that is used by each HTML page. It can be used to +# fine-tune the look of the HTML output. If the tag is left blank doxygen +# will generate a default style sheet. Note that doxygen will try to copy +# the style sheet file to the HTML output directory, so don't put your own +# stylesheet in the HTML output directory as well, or it will be erased! + +HTML_STYLESHEET = + +# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, +# files or namespaces will be aligned in HTML using tables. If set to +# NO a bullet list will be used. + +HTML_ALIGN_MEMBERS = YES + +# If the GENERATE_HTMLHELP tag is set to YES, additional index files +# will be generated that can be used as input for tools like the +# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) +# of the generated HTML documentation. + +GENERATE_HTMLHELP = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can +# be used to specify the file name of the resulting .chm file. You +# can add a path in front of the file if the result should not be +# written to the html output directory. + +CHM_FILE = + +# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can +# be used to specify the location (absolute path including file name) of +# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run +# the HTML help compiler on the generated index.hhp. + +HHC_LOCATION = + +# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag +# controls if a separate .chi index file is generated (YES) or that +# it should be included in the master .chm file (NO). + +GENERATE_CHI = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag +# controls whether a binary table of contents is generated (YES) or a +# normal table of contents (NO) in the .chm file. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members +# to the contents of the HTML help documentation and to the tree view. + +TOC_EXPAND = NO + +# The DISABLE_INDEX tag can be used to turn on/off the condensed index at +# top of each HTML page. The value NO (the default) enables the index and +# the value YES disables it. + +DISABLE_INDEX = NO + +# This tag can be used to set the number of enum values (range [1..20]) +# that doxygen will group on one line in the generated HTML documentation. + +ENUM_VALUES_PER_LINE = 4 + +# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be +# generated containing a tree-like index structure (just like the one that +# is generated for HTML Help). For this to work a browser that supports +# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, +# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are +# probably better off using the HTML help feature. + +GENERATE_TREEVIEW = NO + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be +# used to set the initial width (in pixels) of the frame in which the tree +# is shown. + +TREEVIEW_WIDTH = 250 + +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- + +# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will +# generate Latex output. + +GENERATE_LATEX = YES + +# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `latex' will be used as the default path. + +LATEX_OUTPUT = latex + +# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be +# invoked. If left blank `latex' will be used as the default command name. + +LATEX_CMD_NAME = latex + +# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to +# generate index for LaTeX. If left blank `makeindex' will be used as the +# default command name. + +MAKEINDEX_CMD_NAME = makeindex + +# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact +# LaTeX documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_LATEX = NO + +# The PAPER_TYPE tag can be used to set the paper type that is used +# by the printer. Possible values are: a4, a4wide, letter, legal and +# executive. If left blank a4wide will be used. + +PAPER_TYPE = a4wide + +# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX +# packages that should be included in the LaTeX output. + +EXTRA_PACKAGES = + +# The LATEX_HEADER tag can be used to specify a personal LaTeX header for +# the generated latex document. The header should contain everything until +# the first chapter. If it is left blank doxygen will generate a +# standard header. Notice: only use this tag if you know what you are doing! + +LATEX_HEADER = + +# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated +# is prepared for conversion to pdf (using ps2pdf). The pdf file will +# contain links (just like the HTML output) instead of page references +# This makes the output suitable for online browsing using a pdf viewer. + +PDF_HYPERLINKS = NO + +# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of +# plain latex in the generated Makefile. Set this option to YES to get a +# higher quality PDF documentation. + +USE_PDFLATEX = NO + +# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. +# command to the generated LaTeX files. This will instruct LaTeX to keep +# running if errors occur, instead of asking the user for help. +# This option is also used when generating formulas in HTML. + +LATEX_BATCHMODE = NO + +# If LATEX_HIDE_INDICES is set to YES then doxygen will not +# include the index chapters (such as File Index, Compound Index, etc.) +# in the output. + +LATEX_HIDE_INDICES = NO + +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- + +# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output +# The RTF output is optimized for Word 97 and may not look very pretty with +# other RTF readers or editors. + +GENERATE_RTF = NO + +# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `rtf' will be used as the default path. + +RTF_OUTPUT = rtf + +# If the COMPACT_RTF tag is set to YES Doxygen generates more compact +# RTF documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_RTF = NO + +# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated +# will contain hyperlink fields. The RTF file will +# contain links (just like the HTML output) instead of page references. +# This makes the output suitable for online browsing using WORD or other +# programs which support those fields. +# Note: wordpad (write) and others do not support links. + +RTF_HYPERLINKS = NO + +# Load stylesheet definitions from file. Syntax is similar to doxygen's +# config file, i.e. a series of assignments. You only have to provide +# replacements, missing definitions are set to their default value. + +RTF_STYLESHEET_FILE = + +# Set optional variables used in the generation of an rtf document. +# Syntax is similar to doxygen's config file. + +RTF_EXTENSIONS_FILE = + +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- + +# If the GENERATE_MAN tag is set to YES (the default) Doxygen will +# generate man pages + +GENERATE_MAN = NO + +# The MAN_OUTPUT tag is used to specify where the man pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `man' will be used as the default path. + +MAN_OUTPUT = man + +# The MAN_EXTENSION tag determines the extension that is added to +# the generated man pages (default is the subroutine's section .3) + +MAN_EXTENSION = .3 + +# If the MAN_LINKS tag is set to YES and Doxygen generates man output, +# then it will generate one additional man file for each entity +# documented in the real man page(s). These additional files +# only source the real man page, but without them the man command +# would be unable to find the correct page. The default is NO. + +MAN_LINKS = NO + +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- + +# If the GENERATE_XML tag is set to YES Doxygen will +# generate an XML file that captures the structure of +# the code including all documentation. + +GENERATE_XML = NO + +# The XML_OUTPUT tag is used to specify where the XML pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `xml' will be used as the default path. + +XML_OUTPUT = xml + +# The XML_SCHEMA tag can be used to specify an XML schema, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_SCHEMA = + +# The XML_DTD tag can be used to specify an XML DTD, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_DTD = + +# If the XML_PROGRAMLISTING tag is set to YES Doxygen will +# dump the program listings (including syntax highlighting +# and cross-referencing information) to the XML output. Note that +# enabling this will significantly increase the size of the XML output. + +XML_PROGRAMLISTING = YES + +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- + +# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will +# generate an AutoGen Definitions (see autogen.sf.net) file +# that captures the structure of the code including all +# documentation. Note that this feature is still experimental +# and incomplete at the moment. + +GENERATE_AUTOGEN_DEF = NO + +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- + +# If the GENERATE_PERLMOD tag is set to YES Doxygen will +# generate a Perl module file that captures the structure of +# the code including all documentation. Note that this +# feature is still experimental and incomplete at the +# moment. + +GENERATE_PERLMOD = NO + +# If the PERLMOD_LATEX tag is set to YES Doxygen will generate +# the necessary Makefile rules, Perl scripts and LaTeX code to be able +# to generate PDF and DVI output from the Perl module output. + +PERLMOD_LATEX = NO + +# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be +# nicely formatted so it can be parsed by a human reader. This is useful +# if you want to understand what is going on. On the other hand, if this +# tag is set to NO the size of the Perl module output will be much smaller +# and Perl will parse it just the same. + +PERLMOD_PRETTY = YES + +# The names of the make variables in the generated doxyrules.make file +# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. +# This is useful so different doxyrules.make files included by the same +# Makefile don't overwrite each other's variables. + +PERLMOD_MAKEVAR_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- + +# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will +# evaluate all C-preprocessor directives found in the sources and include +# files. + +ENABLE_PREPROCESSING = YES + +# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro +# names in the source code. If set to NO (the default) only conditional +# compilation will be performed. Macro expansion can be done in a controlled +# way by setting EXPAND_ONLY_PREDEF to YES. + +MACRO_EXPANSION = NO + +# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES +# then the macro expansion is limited to the macros specified with the +# PREDEFINED and EXPAND_AS_PREDEFINED tags. + +EXPAND_ONLY_PREDEF = NO + +# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files +# in the INCLUDE_PATH (see below) will be search if a #include is found. + +SEARCH_INCLUDES = YES + +# The INCLUDE_PATH tag can be used to specify one or more directories that +# contain include files that are not input files but should be processed by +# the preprocessor. + +INCLUDE_PATH = + +# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard +# patterns (like *.h and *.hpp) to filter out the header-files in the +# directories. If left blank, the patterns specified with FILE_PATTERNS will +# be used. + +INCLUDE_FILE_PATTERNS = + +# The PREDEFINED tag can be used to specify one or more macro names that +# are defined before the preprocessor is started (similar to the -D option of +# gcc). The argument of the tag is a list of macros of the form: name +# or name=definition (no spaces). If the definition and the = are +# omitted =1 is assumed. To prevent a macro definition from being +# undefined via #undef or recursively expanded use the := operator +# instead of the = operator. + +PREDEFINED = + +# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then +# this tag can be used to specify a list of macro names that should be expanded. +# The macro definition that is found in the sources will be used. +# Use the PREDEFINED tag if you want to use a different macro definition. + +EXPAND_AS_DEFINED = + +# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then +# doxygen's preprocessor will remove all function-like macros that are alone +# on a line, have an all uppercase name, and do not end with a semicolon. Such +# function macros are typically used for boiler-plate code, and will confuse +# the parser if not removed. + +SKIP_FUNCTION_MACROS = YES + +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- + +# The TAGFILES option can be used to specify one or more tagfiles. +# Optionally an initial location of the external documentation +# can be added for each tagfile. The format of a tag file without +# this location is as follows: +# TAGFILES = file1 file2 ... +# Adding location for the tag files is done as follows: +# TAGFILES = file1=loc1 "file2 = loc2" ... +# where "loc1" and "loc2" can be relative or absolute paths or +# URLs. If a location is present for each tag, the installdox tool +# does not have to be run to correct the links. +# Note that each tag file must have a unique name +# (where the name does NOT include the path) +# If a tag file is not located in the directory in which doxygen +# is run, you must also specify the path to the tagfile here. + +TAGFILES = + +# When a file name is specified after GENERATE_TAGFILE, doxygen will create +# a tag file that is based on the input files it reads. + +GENERATE_TAGFILE = + +# If the ALLEXTERNALS tag is set to YES all external classes will be listed +# in the class index. If set to NO only the inherited external classes +# will be listed. + +ALLEXTERNALS = NO + +# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed +# in the modules index. If set to NO, only the current project's groups will +# be listed. + +EXTERNAL_GROUPS = YES + +# The PERL_PATH should be the absolute path and name of the perl script +# interpreter (i.e. the result of `which perl'). + +PERL_PATH = /usr/bin/perl + +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- + +# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will +# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base +# or super classes. Setting the tag to NO turns the diagrams off. Note that +# this option is superseded by the HAVE_DOT option below. This is only a +# fallback. It is recommended to install and use dot, since it yields more +# powerful graphs. + +CLASS_DIAGRAMS = YES + +# If set to YES, the inheritance and collaboration graphs will hide +# inheritance and usage relations if the target is undocumented +# or is not a class. + +HIDE_UNDOC_RELATIONS = NO + +# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is +# available from the path. This tool is part of Graphviz, a graph visualization +# toolkit from AT&T and Lucent Bell Labs. The other options in this section +# have no effect if this option is set to NO (the default) + +HAVE_DOT = YES + +# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect inheritance relations. Setting this tag to YES will force the +# the CLASS_DIAGRAMS tag to NO. + +CLASS_GRAPH = YES + +# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect implementation dependencies (inheritance, containment, and +# class references variables) of the class with other documented classes. + +COLLABORATION_GRAPH = NO + +# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for groups, showing the direct groups dependencies + +GROUP_GRAPHS = NO + +# If the UML_LOOK tag is set to YES doxygen will generate inheritance and +# collaboration diagrams in a style similar to the OMG's Unified Modeling +# Language. + +UML_LOOK = NO + +# If set to YES, the inheritance and collaboration graphs will show the +# relations between templates and their instances. + +TEMPLATE_RELATIONS = NO + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT +# tags are set to YES then doxygen will generate a graph for each documented +# file showing the direct and indirect include dependencies of the file with +# other documented files. + +INCLUDE_GRAPH = YES + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and +# HAVE_DOT tags are set to YES then doxygen will generate a graph for each +# documented header file showing the documented files that directly or +# indirectly include this file. + +INCLUDED_BY_GRAPH = YES + +# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will +# generate a call dependency graph for every global function or class method. +# Note that enabling this option will significantly increase the time of a run. +# So in most cases it will be better to enable call graphs for selected +# functions only using the \callgraph command. + +CALL_GRAPH = YES + +# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen +# will graphical hierarchy of all classes instead of a textual one. + +GRAPHICAL_HIERARCHY = NO + +# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES +# then doxygen will show the dependencies a directory has on other directories +# in a graphical way. The dependency relations are determined by the #include +# relations between the files in the directories. + +DIRECTORY_GRAPH = NO + +# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images +# generated by dot. Possible values are png, jpg, or gif +# If left blank png will be used. + +DOT_IMAGE_FORMAT = png + +# The tag DOT_PATH can be used to specify the path where the dot tool can be +# found. If left blank, it is assumed the dot tool can be found in the path. + +DOT_PATH = + +# The DOTFILE_DIRS tag can be used to specify one or more directories that +# contain dot files that are included in the documentation (see the +# \dotfile command). + +DOTFILE_DIRS = + +# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width +# (in pixels) of the graphs generated by dot. If a graph becomes larger than +# this value, doxygen will try to truncate the graph, so that it fits within +# the specified constraint. Beware that most browsers cannot cope with very +# large images. + +MAX_DOT_GRAPH_WIDTH = 1024 + +# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height +# (in pixels) of the graphs generated by dot. If a graph becomes larger than +# this value, doxygen will try to truncate the graph, so that it fits within +# the specified constraint. Beware that most browsers cannot cope with very +# large images. + +MAX_DOT_GRAPH_HEIGHT = 1024 + +# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the +# graphs generated by dot. A depth value of 3 means that only nodes reachable +# from the root by following a path via at most 3 edges will be shown. Nodes +# that lay further from the root node will be omitted. Note that setting this +# option to 1 or 2 may greatly reduce the computation time needed for large +# code bases. Also note that a graph may be further truncated if the graph's +# image dimensions are not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH +# and MAX_DOT_GRAPH_HEIGHT). If 0 is used for the depth value (the default), +# the graph is not depth-constrained. + +MAX_DOT_GRAPH_DEPTH = 0 + +# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent +# background. This is disabled by default, which results in a white background. +# Warning: Depending on the platform used, enabling this option may lead to +# badly anti-aliased labels on the edges of a graph (i.e. they become hard to +# read). + +DOT_TRANSPARENT = NO + +# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output +# files in one run (i.e. multiple -o and -T options on the command line). This +# makes dot run faster, but since only newer versions of dot (>1.8.10) +# support this, this feature is disabled by default. + +DOT_MULTI_TARGETS = NO + +# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will +# generate a legend page explaining the meaning of the various boxes and +# arrows in the dot generated graphs. + +GENERATE_LEGEND = YES + +# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will +# remove the intermediate dot files that are used to generate +# the various graphs. + +DOT_CLEANUP = YES + +#--------------------------------------------------------------------------- +# Configuration::additions related to the search engine +#--------------------------------------------------------------------------- + +# The SEARCHENGINE tag specifies whether or not a search engine should be +# used. If set to NO the values of all tags below this one will be ignored. + +SEARCHENGINE = NO diff --git a/.svn/pristine/9d/9dac29113240865803c0902dc37dccf1122ef18f.svn-base b/.svn/pristine/9d/9dac29113240865803c0902dc37dccf1122ef18f.svn-base new file mode 100644 index 0000000..c5172d2 --- /dev/null +++ b/.svn/pristine/9d/9dac29113240865803c0902dc37dccf1122ef18f.svn-base @@ -0,0 +1,17 @@ +Thanks: + ...to everyone who contributed to gocr. If you feel that your + name should be in this list, write mail to the author. These + are in no particular order: + + G.Kugler for sending me first example files and testing. (MayMM) + Klaas Freitag for the libPgm2asc-patch + Ryan Dibble for the otsu.c file + Tim Waugh for the man page + David Pinson for the tkispell-patch + Martin Goldhahn for some patches + Eberhard Burkard for the gocr.tcl patch + James R. Van Zandt for lot of tips + ... + + ... and everyone else who submitted bug-reports, + feature-requests, patches and lots of example files. diff --git a/.svn/pristine/9e/9e6080408542ee7607695d2abfd9a67e84715db0.svn-base b/.svn/pristine/9e/9e6080408542ee7607695d2abfd9a67e84715db0.svn-base new file mode 100644 index 0000000..62dc559 --- /dev/null +++ b/.svn/pristine/9e/9e6080408542ee7607695d2abfd9a67e84715db0.svn-base @@ -0,0 +1,1059 @@ +//$ newfft.cpp + +// This is originally by Sande and Gentleman in 1967! I have translated from +// Fortran into C and a little bit of C++. + +// It takes about twice as long as fftw +// (http://theory.lcs.mit.edu/~fftw/homepage.html) +// but is much shorter than fftw and so despite its age +// might represent a reasonable +// compromise between speed and complexity. +// If you really need the speed get fftw. + + +// THIS SUBROUTINE WAS WRITTEN BY G.SANDE OF PRINCETON UNIVERSITY AND +// W.M.GENTLMAN OF THE BELL TELEPHONE LAB. IT WAS BROUGHT TO LONDON +// BY DR. M.D. GODFREY AT THE IMPERIAL COLLEGE AND WAS ADAPTED FOR +// BURROUGHS 6700 BY D. R. BRILLINGER AND J. PEMBERTON +// IT REPRESENTS THE STATE OF THE ART OF COMPUTING COMPLETE FINITE +// DISCRETE FOURIER TRANSFORMS AS OF NOV.1967. +// OTHER PROGRAMS REQUIRED. +// ONLY THOSE SUBROUTINES INCLUDED HERE. +// USAGE. +// CALL AR1DFT(N,X,Y) +// WHERE N IS THE NUMBER OF POINTS IN THE SEQUENCE . +// X - IS A ONE-DIMENSIONAL ARRAY CONTAINING THE REAL +// PART OF THE SEQUENCE. +// Y - IS A ONE-DIMENSIONAL ARRAY CONTAINING THE +// IMAGINARY PART OF THE SEQUENCE. +// THE TRANSFORM IS RETURNED IN X AND Y. +// METHOD +// FOR A GENERAL DISCUSSION OF THESE TRANSFORMS AND OF +// THE FAST METHOD FOR COMPUTING THEM, SEE GENTLEMAN AND SANDE, +// @FAST FOURIER TRANSFORMS - FOR FUN AND PROFIT,@ 1966 FALL JOINT +// COMPUTER CONFERENCE. +// THIS PROGRAM COMPUTES THIS FOR A COMPLEX SEQUENCE Z(T) OF LENGTH +// N WHOSE ELEMENTS ARE STORED AT(X(I) , Y(I)) AND RETURNS THE +// TRANSFORM COEFFICIENTS AT (X(I), Y(I)). +// DESCRIPTION +// AR1DFT IS A HIGHLY MODULAR ROUTINE CAPABLE OF COMPUTING IN PLACE +// THE COMPLETE FINITE DISCRETE FOURIER TRANSFORM OF A ONE- +// DIMENSIONAL SEQUENCE OF RATHER GENERAL LENGTH N. +// THE MAIN ROUTINE , AR1DFT ITSELF, FACTORS N. IT THEN CALLS ON +// ON GR 1D FT TO COMPUTE THE ACTUAL TRANSFORMS, USING THESE FACTORS. +// THIS GR 1D FT DOES, CALLING AT EACH STAGE ON THE APPROPRIATE KERN +// EL R2FTK, R4FTK, R8FTK, R16FTK, R3FTK, R5FTK, OR RPFTK TO PERFORM +// THE COMPUTATIONS FOR THIS PASS OVER THE SEQUENCE, DEPENDING ON +// WHETHER THE CORRESPONDING FACTOR IS 2, 4, 8, 16, 3, 5, OR SOME +// MORE GENERAL PRIME P. WHEN GR1DFT IS FINISHED THE TRANSFORM IS +// COMPUTED, HOWEVER, THE RESULTS ARE STORED IN "DIGITS REVERSED" +// ORDER. AR1DFT THEREFORE, CALLS UPON GR 1S FS TO SORT THEM OUT. +// TO RETURN TO THE FACTORIZATION, SINGLETON HAS POINTED OUT THAT +// THE TRANSFORMS ARE MORE EFFICIENT IF THE SAMPLE SIZE N, IS OF THE +// FORM B*A**2 AND B CONSISTS OF A SINGLE FACTOR. IN SUCH A CASE +// IF WE PROCESS THE FACTORS IN THE ORDER ABA THEN +// THE REORDERING CAN BE DONE AS FAST IN PLACE, AS WITH SCRATCH +// STORAGE. BUT AS B BECOMES MORE COMPLICATED, THE COST OF THE DIGIT +// REVERSING DUE TO B PART BECOMES VERY EXPENSIVE IF WE TRY TO DO IT +// IN PLACE. IN SUCH A CASE IT MIGHT BE BETTER TO USE EXTRA STORAGE +// A ROUTINE TO DO THIS IS, HOWEVER, NOT INCLUDED HERE. +// ANOTHER FEATURE INFLUENCING THE FACTORIZATION IS THAT FOR ANY FIXED +// FACTOR N WE CAN PREPARE A SPECIAL KERNEL WHICH WILL COMPUTE +// THAT STAGE OF THE TRANSFORM MORE EFFICIENTLY THAN WOULD A KERNEL +// FOR GENERAL FACTORS, ESPECIALLY IF THE GENERAL KERNEL HAD TO BE +// APPLIED SEVERAL TIMES. FOR EXAMPLE, FACTORS OF 4 ARE MORE +// EFFICIENT THAN FACTORS OF 2, FACTORS OF 8 MORE EFFICIENT THAN 4,ETC +// ON THE OTHER HAND DIMINISHING RETURNS RAPIDLY SET IN, ESPECIALLY +// SINCE THE LENGTH OF THE KERNEL FOR A SPECIAL CASE IS ROUGHLY +// PROPORTIONAL TO THE FACTOR IT DEALS WITH. HENCE THESE PROBABLY ARE +// ALL THE KERNELS WE WISH TO HAVE. +// RESTRICTIONS. +// AN UNFORTUNATE FEATURE OF THE SORTING PROBLEM IS THAT THE MOST +// EFFICIENT WAY TO DO IT IS WITH NESTED DO LOOPS, ONE FOR EACH +// FACTOR. THIS PUTS A RESTRICTION ON N AS TO HOW MANY FACTORS IT +// CAN HAVE. CURRENTLY THE LIMIT IS 16, BUT THE LIMIT CAN BE READILY +// RAISED IF NECESSARY. +// A SECOND RESTRICTION OF THE PROGRAM IS THAT LOCAL STORAGE OF THE +// THE ORDER P**2 IS REQUIRED BY THE GENERAL KERNEL RPFTK, SO SOME +// LIMIT MUST BE SET ON P. CURRENTLY THIS IS 19, BUT IT CAN BE INCRE +// INCREASED BY TRIVIAL CHANGES. +// OTHER COMMENTS. +//(1) THE ROUTINE IS ADAPTED TO CHECK WHETHER A GIVEN N WILL MEET THE +// ABOVE FACTORING REQUIREMENTS AN, IF NOT, TO RETURN THE NEXT HIGHER +// NUMBER, NX, SAY, WHICH WILL MEET THESE REQUIREMENTS. +// THIS CAN BE ACCHIEVED BY A STATEMENT OF THE FORM +// CALL FACTR(N,X,Y). +// IF A DIFFERENT N, SAY NX, IS RETURNED THEN THE TRANSFORMS COULD BE +// OBTAINED BY EXTENDING THE SIZE OF THE X-ARRAY AND Y-ARRAY TO NX, +// AND SETTING X(I) = Y(I) = 0., FOR I = N+1, NX. +//(2) IF THE SEQUENCE Z IS ONLY A REAL SEQUENCE, THEN THE IMAGINARY PART +// Y(I)=0., THIS WILL RETURN THE COSINE TRANSFORM OF THE REAL SEQUENCE +// IN X, AND THE SINE TRANSFORM IN Y. + + +#define WANT_STREAM + +#define WANT_MATH + +#include "newmatap.h" + +#ifdef use_namespace +namespace NEWMAT { +#endif + +#ifdef DO_REPORT +#define REPORT { static ExeCounter ExeCount(__LINE__,20); ++ExeCount; } +#else +#define REPORT {} +#endif + +inline Real square(Real x) { return x*x; } +inline int square(int x) { return x*x; } + +static void GR_1D_FS (int PTS, int N_SYM, int N_UN_SYM, + const SimpleIntArray& SYM, int P_SYM, const SimpleIntArray& UN_SYM, + Real* X, Real* Y); +static void GR_1D_FT (int N, int N_FACTOR, const SimpleIntArray& FACTOR, + Real* X, Real* Y); +static void R_P_FTK (int N, int M, int P, Real* X, Real* Y); +static void R_2_FTK (int N, int M, Real* X0, Real* Y0, Real* X1, Real* Y1); +static void R_3_FTK (int N, int M, Real* X0, Real* Y0, Real* X1, Real* Y1, + Real* X2, Real* Y2); +static void R_4_FTK (int N, int M, + Real* X0, Real* Y0, Real* X1, Real* Y1, + Real* X2, Real* Y2, Real* X3, Real* Y3); +static void R_5_FTK (int N, int M, + Real* X0, Real* Y0, Real* X1, Real* Y1, Real* X2, Real* Y2, + Real* X3, Real* Y3, Real* X4, Real* Y4); +static void R_8_FTK (int N, int M, + Real* X0, Real* Y0, Real* X1, Real* Y1, + Real* X2, Real* Y2, Real* X3, Real* Y3, + Real* X4, Real* Y4, Real* X5, Real* Y5, + Real* X6, Real* Y6, Real* X7, Real* Y7); +static void R_16_FTK (int N, int M, + Real* X0, Real* Y0, Real* X1, Real* Y1, + Real* X2, Real* Y2, Real* X3, Real* Y3, + Real* X4, Real* Y4, Real* X5, Real* Y5, + Real* X6, Real* Y6, Real* X7, Real* Y7, + Real* X8, Real* Y8, Real* X9, Real* Y9, + Real* X10, Real* Y10, Real* X11, Real* Y11, + Real* X12, Real* Y12, Real* X13, Real* Y13, + Real* X14, Real* Y14, Real* X15, Real* Y15); +static int BitReverse(int x, int prod, int n, const SimpleIntArray& f); + + +bool FFT_Controller::ar_1d_ft (int PTS, Real* X, Real *Y) +{ +// ARBITRARY RADIX ONE DIMENSIONAL FOURIER TRANSFORM + + REPORT + + int F,J,N,NF,P,PMAX,P_SYM,P_TWO,Q,R,TWO_GRP; + + // NP is maximum number of squared factors allows PTS up to 2**32 at least + // NQ is number of not-squared factors - increase if we increase PMAX + const int NP = 16, NQ = 10; + SimpleIntArray PP(NP), QQ(NQ); + + TWO_GRP=16; PMAX=19; + + // PMAX is the maximum factor size + // TWO_GRP is the maximum power of 2 handled as a single factor + // Doesn't take advantage of combining powers of 2 when calculating + // number of factors + + if (PTS<=1) return true; + N=PTS; P_SYM=1; F=2; P=0; Q=0; + + // P counts the number of squared factors + // Q counts the number of the rest + // R = 0 for no non-squared factors; 1 otherwise + + // FACTOR holds all the factors - non-squared ones in the middle + // - length is 2*P+Q + // SYM also holds all the factors but with the non-squared ones + // multiplied together - length is 2*P+R + // PP holds the values of the squared factors - length is P + // QQ holds the values of the rest - length is Q + + // P_SYM holds the product of the squared factors + + // find the factors - load into PP and QQ + while (N > 1) + { + bool fail = true; + for (J=F; J<=PMAX; J++) + if (N % J == 0) { fail = false; F=J; break; } + if (fail || P >= NP || Q >= NQ) return false; // can't factor + N /= F; + if (N % F != 0) QQ[Q++] = F; + else { N /= F; PP[P++] = F; P_SYM *= F; } + } + + R = (Q == 0) ? 0 : 1; // R = 0 if no not-squared factors, 1 otherwise + + NF = 2*P + Q; + SimpleIntArray FACTOR(NF + 1), SYM(2*P + R); + FACTOR[NF] = 0; // we need this in the "combine powers of 2" + + // load into SYM and FACTOR + for (J=0; J0) + { + REPORT + for (J=0; J 0) + { + REPORT + SimpleIntArray U(N_SYM); + for(MultiRadixCounter MRC(N_SYM, SYM, U); !MRC.Finish(); ++MRC) + { + if (MRC.Swap()) + { + int P = MRC.Reverse(); int JJ = MRC.Counter(); Real T; + T=X[JJ]; X[JJ]=X[P]; X[P]=T; T=Y[JJ]; Y[JJ]=Y[P]; Y[P]=T; + } + } + } + + int J,JL,K,L,M,MS; + + // UN_SYM contains the non-squared factors + // I have replaced the Sande-Gentleman code as it runs into + // integer overflow problems + // My code (and theirs) would be improved by using a bit array + // as suggested by Van Loan + + if (N_UN_SYM==0) { REPORT return; } + P_UN_SYM=PTS/square(P_SYM); JL=(P_UN_SYM-3)*P_SYM; MS=P_UN_SYM*P_SYM; + + for (J = P_SYM; J<=JL; J+=P_SYM) + { + K=J; + do K = P_SYM * BitReverse(K / P_SYM, P_UN_SYM, N_UN_SYM, UN_SYM); + while (K 1) + { + bool fail = true; + for (int J = F; J <= PMAX; J++) + if (N % J == 0) { fail = false; F=J; break; } + if (fail || P >= NP || Q >= NQ) { REPORT return false; } + N /= F; + if (N % F != 0) Q++; else { N /= F; P++; } + } + + return true; // can factorise + +} + +bool FFT_Controller::OnlyOldFFT; // static variable + +// **************************** multi radix counter ********************** + +MultiRadixCounter::MultiRadixCounter(int nx, const SimpleIntArray& rx, + SimpleIntArray& vx) + : Radix(rx), Value(vx), n(nx), reverse(0), + product(1), counter(0), finish(false) +{ + REPORT for (int k = 0; k < n; k++) { Value[k] = 0; product *= Radix[k]; } +} + +void MultiRadixCounter::operator++() +{ + REPORT + counter++; int p = product; + for (int k = 0; k < n; k++) + { + Value[k]++; int p1 = p / Radix[k]; reverse += p1; + if (Value[k] == Radix[k]) { REPORT Value[k] = 0; reverse -= p; p = p1; } + else { REPORT return; } + } + finish = true; +} + + +static int BitReverse(int x, int prod, int n, const SimpleIntArray& f) +{ + // x = c[0]+f[0]*(c[1]+f[1]*(c[2]+... + // return c[n-1]+f[n-1]*(c[n-2]+f[n-2]*(c[n-3]+... + // prod is the product of the f[i] + // n is the number of f[i] (don't assume f has the correct length) + + REPORT + const int* d = f.Data() + n; int sum = 0; int q = 1; + while (n--) + { + prod /= *(--d); + int c = x / prod; x-= c * prod; + sum += q * c; q *= *d; + } + return sum; +} + + +#ifdef use_namespace +} +#endif + + diff --git a/.svn/pristine/9f/9f11eacb1523ea193e2a9a1629d44a762c10aca7.svn-base b/.svn/pristine/9f/9f11eacb1523ea193e2a9a1629d44a762c10aca7.svn-base new file mode 100644 index 0000000..0b7e35a --- /dev/null +++ b/.svn/pristine/9f/9f11eacb1523ea193e2a9a1629d44a762c10aca7.svn-base @@ -0,0 +1,9 @@ + + + + 1 + 4 +
f
+ + -0.43944934 1.01121974 4.40021278e-03 -7.87253448e-05
+
diff --git a/.svn/pristine/9f/9f7ce42451c025e0100dfe250a313b852df360db.svn-base b/.svn/pristine/9f/9f7ce42451c025e0100dfe250a313b852df360db.svn-base new file mode 100644 index 0000000..78bfef7 --- /dev/null +++ b/.svn/pristine/9f/9f7ce42451c025e0100dfe250a313b852df360db.svn-base @@ -0,0 +1,42 @@ +Fitting parameters + + 70.02918529 209.6252324 0.1541078372 + 94.78295699 + 49.23360397 147.1803571 0.1734849298 + 1.848950128 + 0.7422941575 1.70673579 0.1733822274 + 0.2113527145 + 0.1955923541 0.06041118379 0.1754552928 + 0.1754553498 + 0.1754553471 2.341694142e-08 0.1754553393 +Converged + + +Estimates and standard errors + 19.77 0.73 + -23.63 0.82 + 0.35 0.04 + + +Residual s.d. = 0.42 + +CorrelationMatrix + 1.00 -0.05 -0.91 + -0.05 1.00 -0.31 + -0.91 -0.31 1.00 + + +X, Y, Residual, Hat + 1.00 3.20 0.10 0.89 + 2.00 7.90 -0.11 0.33 + 3.00 11.10 -0.38 0.39 + 4.00 14.50 0.58 0.35 + 6.00 16.70 -0.16 0.32 + 8.00 18.30 -0.02 0.73 + + +Var/cov + 0.5295 -0.0324 -0.0250 + -0.0324 0.6668 -0.0096 + -0.0250 -0.0096 0.0014 + diff --git a/.svn/pristine/9f/9f8a037aa825035d223149edb33d92b615852557.svn-base b/.svn/pristine/9f/9f8a037aa825035d223149edb33d92b615852557.svn-base new file mode 100644 index 0000000..d1b678e --- /dev/null +++ b/.svn/pristine/9f/9f8a037aa825035d223149edb33d92b615852557.svn-base @@ -0,0 +1,56 @@ + + +int glui_img_uparrow[] = { 16, 16, /* width, height */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 192,192,192, 128,128,128, 128,128,128, 128,128,128, + 128,128,128, 128,128,128, 128,128,128, 128,128,128, 128,128,128, + 128,128,128, 128,128,128, 128,128,128, 128,128,128, 128,128,128, + 128,128,128, 0, 0, 0, 192,192,192, 255,255,255, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 128,128,128, 0, 0, 0, 192,192,192, 255,255,255, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 128,128,128, 0, 0, 0, 192,192,192, + 255,255,255, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 128,128,128, 0, 0, 0, + 192,192,192, 255,255,255, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 128,128,128, + 0, 0, 0, 192,192,192, 255,255,255, 192,192,192, 192,192,192, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 192,192,192, 192,192,192, 192,192,192, + 128,128,128, 0, 0, 0, 192,192,192, 255,255,255, 192,192,192, + 192,192,192, 192,192,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 128,128,128, 0, 0, 0, 192,192,192, 255,255,255, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 128,128,128, 0, 0, 0, 192,192,192, + 255,255,255, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 0, 0, 0, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 128,128,128, 0, 0, 0, + 192,192,192, 255,255,255, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 128,128,128, + 0, 0, 0, 192,192,192, 255,255,255, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 128,128,128, 0, 0, 0, 192,192,192, 255,255,255, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 128,128,128, 0, 0, 0, 192,192,192, 255,255,255, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 128,128,128, 0, 0, 0, 192,192,192, + 255,255,255, 255,255,255, 255,255,255, 255,255,255, 255,255,255, + 255,255,255, 255,255,255, 255,255,255, 255,255,255, 255,255,255, + 255,255,255, 255,255,255, 255,255,255, 128,128,128, 0, 0, 0, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 0, 0, 0, +}; diff --git a/.svn/pristine/9f/9fef7f4947e7275d9c69a31ac787a7b53951d6bc.svn-base b/.svn/pristine/9f/9fef7f4947e7275d9c69a31ac787a7b53951d6bc.svn-base new file mode 100644 index 0000000..14804ed --- /dev/null +++ b/.svn/pristine/9f/9fef7f4947e7275d9c69a31ac787a7b53951d6bc.svn-base @@ -0,0 +1,87 @@ +/* ---------------------------- progress output ---------------------- */ +#include +#include +#include "progress.h" + +FILE *fp=NULL; /* output stream for progress info */ +time_t printinterval = 10; /* approx. seconds between printouts, 1.. */ + +/* initialization of progress output, fname="","","-" */ +int ini_progress(char *fname){ + int fd; + if (fp) { fclose(fp); fp=NULL; } + if (fname) if (fname[0]) { + fd=atoi(fname); + if(fd>255 || fname[((fd>99)?3:((fd>9)?2:1))]) fd=-1; /* be sure */ + if (fname[0]=='-' && fname[1]==0) { fp=stdout; } +#ifdef __USE_POSIX + else if (fd>0) { fp=fdopen(fd,"w"); } /* not sure that "w" is ok ???? */ +#endif + else { fp=fopen(fname,"w");if(!fp)fp=fopen(fname,"a"); } + if (!fp) { + fprintf(stderr,"could not open %s for progress output\n",fname); + return -1; /* no success */ + } + } + /* fprintf(stderr,"# progress: fd=%d\n",fileno(fp)); */ + return 0; /* no error */ +} + +progress_counter_t *open_progress(int maxcount, const char *name){ + progress_counter_t *pc; + pc = (progress_counter_t*) malloc( sizeof(progress_counter_t) ); + if (!pc) return 0; /* nonfatal */ + pc->starttime = time(NULL); + pc->maxcount = maxcount; + pc->numskip = 0; + pc->lastprintcount = -1; + pc->name = name; + pc->lastprinttime = pc->starttime; + return pc; +} +/* free counter */ +int close_progress(progress_counter_t *counter){ + if (counter) free(counter); + return 0; +} +/* progress meter output + * only 1output/10s, + estimated endtime (test on pixelfields) + * ToDo: to stderr by default? remove subprogress, ini_progress? rm_progress? + * test on tcl + */ +int progress(int counter, progress_counter_t *pc){ + /* we try to save computing time, so we skip early */ + if ((!fp) || counter - pc->lastprintcount <= pc->numskip) return 0; + { + char cr='\n'; + time_t now = time(NULL); +#if 0 /* debugging */ + if (counter) + fprintf(fp," progress %s %3d / %d time %d skip %d\n", + pc->name,counter,pc->maxcount,(int)(now - pc->starttime), + pc->numskip); fflush(fp); +#endif + if (5*(now - pc->lastprinttime) < 2*printinterval + && counter - pc->lastprintcount >= pc->numskip) { /* save for tests */ + if (pc->numskip < 1024) pc->numskip += pc->numskip+1; + } + if (3*(now - pc->lastprinttime) < 2*printinterval ) { + return 0; /* to early for printing */ + } + if (2*(now - pc->lastprinttime) > 3*printinterval ) { + pc->numskip >>= 1; /* to late for printing */ + } + if (fileno(fp)<3) cr='\r'; /* may be choosen in ini? */ + if (counter) + fprintf(fp," progress %s %5d / %d time[s] %5d / %5d (skip=%d)%c", + pc->name,counter,pc->maxcount, + (int)(now - pc->starttime), /* time gone since start */ + (int)(now - pc->starttime)*pc->maxcount/(counter), /* estimated */ + pc->numskip, cr); + fflush(fp); + pc->lastprintcount=counter; + pc->lastprinttime=now; + } + return 0; /* no error */ +} +/* --------------------- end of progress output ---------------------- */ diff --git a/.svn/pristine/a0/a036f44d215409726b22bdada6ff38ee30dc7c7a.svn-base b/.svn/pristine/a0/a036f44d215409726b22bdada6ff38ee30dc7c7a.svn-base new file mode 100644 index 0000000..a84bd27 --- /dev/null +++ b/.svn/pristine/a0/a036f44d215409726b22bdada6ff38ee30dc7c7a.svn-base @@ -0,0 +1,3 @@ +0 0 0 +-0 0 -0 + diff --git a/.svn/pristine/a0/a0718dcafeb3e40ad6e6c74363979bd784854d5a.svn-base b/.svn/pristine/a0/a0718dcafeb3e40ad6e6c74363979bd784854d5a.svn-base new file mode 100644 index 0000000..4c0133b --- /dev/null +++ b/.svn/pristine/a0/a0718dcafeb3e40ad6e6c74363979bd784854d5a.svn-base @@ -0,0 +1,34 @@ +/* + * line implementation + * + * Copyright (C) Uwe Hebbelmann, Sebastian Stock, Andre Schemschat + * + * Released under the GPL version 3. + * + */ + +#include "grid/line.h" +#include + +/** + * CTOR. + * + * @param start the startpoint of the line + * @param end the endpoint of the line + */ +line::line(gridPoint* start, gridPoint* end) +{ + this->start = start; + this->end = end; +} + +/** + * Returns the length of the line + * + * @return the length of the line + */ +double line::getLength() +{ + return sqrt(pow((double)start->getX() - end->getX(), 2) + + pow((double)start->getZ() - end->getZ(), 2)); +} diff --git a/.svn/pristine/a0/a0ae9e742ca67ba8bb3527df55adc1998757b02e.svn-base b/.svn/pristine/a0/a0ae9e742ca67ba8bb3527df55adc1998757b02e.svn-base new file mode 100644 index 0000000..491c7b2 --- /dev/null +++ b/.svn/pristine/a0/a0ae9e742ca67ba8bb3527df55adc1998757b02e.svn-base @@ -0,0 +1,157 @@ +/** + * @file + * @brief Implementation of reading 3D scans + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "slam6d/scan_io_txyzr.h" +#include "slam6d/globals.icc" +#include +using std::ifstream; +#include +using std::cout; +using std::cerr; +using std::endl; + +#ifdef _MSC_VER +#include +#endif + +static double X; +static double Y; +static double Z; +static bool FIRST_POINT = true; + +/** + * Reads specified scans from given directory. + * + * Scan poses will NOT be initialized after a call + * to this function. + * + * This function actually implements loading of 3D scans + * in UOS + reflectance file format and will be compiled as shared lib. + * + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param dir The directory from which to read + * @param maxDist Reads only Points up to this Distance + * @param minDist Reads only Points from this Distance + * @param euler Initital pose estimates (will not be applied to the points + * @param ptss Vector containing the read points + */ +int ScanIO_txyzr::readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss) +{ + static int fileCounter = start; + string scanFileName; + + ifstream scan_in; + + double maxDist2 = sqr(maxDist); + + int my_fileNr = fileCounter; + + if (end > -1 && fileCounter > end) return -1; // 'nuf read + scanFileName = dir + "scan" + to_string(fileCounter,3) + ".xyz"; + + scan_in.open(scanFileName.c_str()); + + // read 3D scan + if (!scan_in.good()) return -1; // no more files in the directory + cout << "Processing Scan " << scanFileName; + + for (unsigned int i = 0; i < 6; euler[i++] = 0.0); + + cout << " @ pose (" << euler[0] << "," << euler[1] << "," << euler[2] + << "," << euler[3] << "," << euler[4] << "," << euler[5] << ")" << endl; + + // overread the first line + char dummy[255]; + double ddummy,x,y,z; + scan_in.getline(dummy, 255); + + while (scan_in.good()) { + Point p; + try { + scan_in >> ddummy; + scan_in >> x; + scan_in >> y; + scan_in >> z; + p.x = 100.0*x; + p.y = 100.0*z; + p.z = 100.0*y; + + if (FIRST_POINT) { + X = p.x; + Y = p.y; + Z = p.z; + FIRST_POINT = false; + } + +// scan_in >> p; + + scan_in >> p.reflectance; + } catch (...) { + break; + } + // load points up to a certain distance only + // maxDist2 = -1 indicates no limitation + if (maxDist == -1 || sqr(p.x) + sqr(p.y) + sqr(p.z) < maxDist2) { + if (!ptss.empty()) { + //p -= ptss[0]; + p.x -= X; + p.y -= Y; + p.z -= Z; + } + ptss.push_back(p); + } + + + } + if (!ptss.empty()) { + ptss[0].x = ptss[0].y = ptss[0].z = 0.0; + } + scan_in.close(); + scan_in.clear(); + fileCounter++; + + return my_fileNr; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_txyzr; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/.svn/pristine/a0/a0b46a94552ad895ebe199a152ad7a8aa9e4d9aa.svn-base b/.svn/pristine/a0/a0b46a94552ad895ebe199a152ad7a8aa9e4d9aa.svn-base new file mode 100644 index 0000000..6130ab5 --- /dev/null +++ b/.svn/pristine/a0/a0b46a94552ad895ebe199a152ad7a8aa9e4d9aa.svn-base @@ -0,0 +1,73 @@ +/** @file + * @brief The 6D Lu Milios style SLAM in 6D + * + * @author Dorit Borrman. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Jan Elseberg. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __GRAPH_H__ +#define __GRAPH_H__ + +#include +using std::vector; +#include +using std::string; +#include +using std::ostream; + +#include + +/* Boost graph declaration */ +using boost::edge_weight_t; +typedef boost::adjacency_list < + boost::listS, boost::vecS, boost::undirectedS, + boost::no_property, + boost::property < edge_weight_t, double > > + graph_t; + +/** + * @brief This class represent a directed network. + * Each node corresponds to a laser scan. + */ +class Graph { + +public: + + Graph(); + Graph(const string &netfile); + Graph(int nrScans, bool loop); + Graph(double cldist, int loopsize); + Graph(int nodes, double cldist2, int loopsize); + + int getLink(int i, int fromTo); + void addLink(int i, int j); + + void setNrScans(int _nrScans); + int getNrScans(); + int getNrLinks(); + + int getStart(); + int getEnd(); + + friend ostream& operator<<(ostream& os, Graph* gr); + +private: + /** + * The basic network structure + */ + vector from, to; + + /** + * The number of scans contained in this Graph + */ + int nrScans; + + /** + * The very first Scan + */ + int start; +}; + +#endif diff --git a/.svn/pristine/a0/a0f29033774d5457a328f769e2a81a55be32c6d1.svn-base b/.svn/pristine/a0/a0f29033774d5457a328f769e2a81a55be32c6d1.svn-base new file mode 100644 index 0000000..f2b1e95 --- /dev/null +++ b/.svn/pristine/a0/a0f29033774d5457a328f769e2a81a55be32c6d1.svn-base @@ -0,0 +1,208 @@ +/* + * scan_io_rts implementation + * + * Copyright (C) Thomas Escher, Kai Lingemann, Andreas Nuechter + * + * Released under the GPL version 3. + * + */ + +/** + * @file + * @brief Implementation of reading 3D scans + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Thomas Escher + */ + +#include "scanio/scan_io_rts.h" + +#include +using std::cout; +using std::cerr; +using std::endl; +#include +using std::vector; +#include +using std::stringstream; + +#ifdef _MSC_VER +#include +#endif + +#include +#include +using namespace boost::filesystem; + +#include "slam6d/globals.icc" + + + +#define DATA_PATH_PREFIX "scan3d_0_" +#define DATA_PATH_SUFFIX ".3d" +#define POSE_PATH_FILE "odometry_0_sync_interpol.dat" + +//! RTS type flag for invalid points +#define TYPE_INVALID 0x10 + + + +std::list ScanIO_rts::readDirectory(const char* dir_path, unsigned int start, unsigned int end) +{ + std::list identifiers; + // only a single pose file, can't do without one + path pose_path(dir_path); + pose_path /= POSE_PATH_FILE; + if(exists(pose_path)) { + for(unsigned int i = start; i <= end; ++i) { + // identifier is a number (0-\infty) + std::string identifier(to_string(i)); + // scan consists of data (.3d) files + path data(dir_path); + data /= path(std::string(DATA_PATH_PREFIX) + identifier + DATA_PATH_SUFFIX); + // stop if part of a scan is missing or end by absence is detected + if(!exists(data)) + break; + identifiers.push_back(identifier); + } + } + return identifiers; +} + +void ScanIO_rts::readPose(const char* dir_path, const char* identifier, double* pose) +{ + unsigned int i; + + // if directory doesn't match the cached one, rebuild pose cache + if(cached_dir != dir_path) { + // check for pose file + path pose_path(dir_path); + pose_path /= POSE_PATH_FILE; + if(!exists(pose_path)) + throw std::runtime_error(std::string("There is no pose file in [") + dir_path + "]"); + + // open pose file once and read all poses + ifstream pose_file(pose_path); + pose_file.exceptions(ifstream::eofbit|ifstream::failbit|ifstream::badbit); + + vector poses; + double p[6], timestamp; + while(pose_file.good()) { + try { + pose_file >> timestamp + >> p[2] >> p[0] >> p[1] // x, y, z + >> p[3] >> p[5] >> p[4]; // theta_x, theta_y, theta_z + } catch(std::ios_base::failure& e) { + break; + } + + // convert + for(i = 0; i < 3; ++i) p[i] *= 0.1; + + // add in poses + for(i = 0; i < 6; ++i) poses.push_back(p[i]); + } + + // after success, set the cache + cached_poses.swap(poses); + cached_dir = dir_path; + } + + // get index from the identifier and pick the pose + stringstream str(identifier); + unsigned int scan_index; + str >> scan_index; + if(cached_poses.size() < scan_index*6 + 6) + throw std::runtime_error(std::string("There is no pose entry for scan [") + identifier + "]"); + + for(i = 0; i < 6; ++i) + pose[i] = cached_poses[scan_index*6 + i]; + return; +} + +bool ScanIO_rts::supports(IODataType type) +{ + return !!(type & (DATA_XYZ)); +} + +void ScanIO_rts::readScan(const char* dir_path, const char* identifier, PointFilter& filter, std::vector* xyz, std::vector* rgb, std::vector* reflectance, std::vector* amplitude, std::vector* type, std::vector* deviation) +{ + // TODO: Type and other columns? + unsigned int i; + + // error handling + path data_path(dir_path); + data_path /= path(std::string(DATA_PATH_PREFIX) + identifier + DATA_PATH_SUFFIX); + if(!exists(data_path)) + throw std::runtime_error(std::string("There is no scan file for [") + identifier + "] in [" + dir_path + "]"); + + if(xyz != 0) { + // open data file + ifstream data_file(data_path); + data_file.exceptions(ifstream::eofbit|ifstream::failbit|ifstream::badbit); + + // read points + // z x y type ? ? + double point[3]; + int type, dummy; + while(data_file.good()) { + try { + data_file >> point[2] >> point[0] >> point[1]; + data_file >> type >> dummy >> dummy; + } catch(std::ios_base::failure& e) { + break; + } + + // convert + point[0] *= 0.1; + point[1] *= -0.1; + point[2] *= 0.1; + + // apply filter and insert point + if(!(type & TYPE_INVALID)) { + if(filter.check(point)) { + for(i = 0; i < 3; ++i) xyz->push_back(point[i]); + } + } + } + data_file.close(); + } +} + + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_rts; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/.svn/pristine/a0/a0fdbf281a7c574ac7b9005e263e00509e12f9d7.svn-base b/.svn/pristine/a0/a0fdbf281a7c574ac7b9005e263e00509e12f9d7.svn-base new file mode 100644 index 0000000..d31e7a8 --- /dev/null +++ b/.svn/pristine/a0/a0fdbf281a7c574ac7b9005e263e00509e12f9d7.svn-base @@ -0,0 +1,42 @@ +/* + ---------------------- progress output ---------------------- + output progress for GUIs to a pipe + format: "counter_name" counter maxcounter time estimated_time \r|\n + */ +#ifndef GOCR_PROGRESS_H +#define GOCR_PROGRESS_H "Oct06" +#include + +/* initialization of progress output, fname="","","-" */ +int ini_progress(char *fname); + +/* ToDo: add by open_* and close_* */ +/* place to store values for progress calculation, called often, but + * dont call systime so often + */ +typedef struct progress_counter { + const char *name; /* name of counter */ + int lastprintcount; /* last counter printed for extrapolation */ + int maxcount; /* max counter */ + int numskip; /* num of counts to skip before timecall 0..maxcount */ + time_t starttime; /* start time of this counter */ + time_t lastprinttime; /* last time printed in seconds */ + +} progress_counter_t; + +/* progress output p1=main_progress_0..100% p2=sub_progress_0..100% */ +/* ToDo: improved_progress: counter, maxcount(ini), counter_name(ini), + * printinterval=10 # time before printing out progressmeter + * *numskip=1 # if (counter-lastprintcounter +#include + +/** + * CTor. Sets counter and occupied to 0 and the coordinates to x and z + * + * @param x the x coordinate + * @param z the z coordinate + */ +gridPoint::gridPoint(long x, long z) +{ + this->x = x; + this->z = z; + this->count = 0; + this->occupied = 0; +} + +/** + * The Method increases the internal counter of the point. + * If only count should be increased, occupied must be 0; + * + * @param count weighting of the information + * @param occupied Weighting of occupied info + */ +void gridPoint::addCount(unsigned int count, unsigned int occupied) +{ + if(count < 0 || occupied < 0) + { + std::cerr << "ERROR: Invalid values in gridPoint::addCount " << std::endl; + std::cerr << "(" << count << " " << occupied << ")" << std::endl; + exit(1); + } + + this->count += count; + this->occupied += occupied; +} + +/** + * Sets the counters to count and occupied + * + * @param count new Count + * @param occupied new Occupied + */ +void gridPoint::setFixed(unsigned int count, unsigned int occupied) +{ + this->count = count; + this->occupied = occupied; +} + + +/** + * Calculates the percentage for the gridPoint + * If count is 0 the point has not been reached and -1 is returned, + * otherwise occupied/count + * + * @return percentage of the gridPoint occupancy [0.0 1.0] or -1.0 + */ +float gridPoint::getPercent() const +{ + if(this->count == 0) + return -1.0; + + return (float)this->occupied / (float)this->count; +} diff --git a/.svn/pristine/a1/a14e8af6728cf25d35e5998e359a86e9a97c0f16.svn-base b/.svn/pristine/a1/a14e8af6728cf25d35e5998e359a86e9a97c0f16.svn-base new file mode 100644 index 0000000..e7d1d27 --- /dev/null +++ b/.svn/pristine/a1/a14e8af6728cf25d35e5998e359a86e9a97c0f16.svn-base @@ -0,0 +1,54 @@ +if(WIN32) + add_library(pointfilter STATIC ../slam6d/pointfilter.cc) +else(WIN32) + add_library(pointfilter SHARED ../slam6d/pointfilter.cc) +endif(WIN32) + +set(SCANIO_LIBNAMES + uos uos_rgb ks ks_rgb riegl_txt riegl_rgb rts velodyne +) + +if(WITH_RIVLIB) + set(SCANIO_LIBNAMES ${SCANIO_LIBNAMES} rxp) + if(LIBXML2_FOUND) + include_directories(${LIBXML2_INCLUDE_DIR}) +# set(SCANIO_LIBNAMES ${SCANIO_LIBNAMES} riegl_project) +# target_link_libraries(scan_io_riegl_project ${RIVLIB} scan_io_rxp ${LIBXML2_LIBRARIES}) + endif(LIBXML2_FOUND) +endif(WITH_RIVLIB) + +#IF (WITH_CAD) +# IF(NOT WIN32) +# add_library(scan_io_cad SHARED scan_io_cad.cc) +# target_link_libraries(scan_io_cad ${Boost_PROGRAM_OPTIONS_LIBRARY} ${Boost_FILESYSTEM_LIBRARY}) +# ENDIF(NOT WIN32) +#ENDIF (WITH_CAD) + +foreach(libname ${SCANIO_LIBNAMES}) +if(WIN32) + #add_library(scan_io_${libname} STATIC scan_io_${libname}.cc) + add_library(scan_io_${libname} SHARED scan_io_${libname}.cc) +else(WIN32) + add_library(scan_io_${libname} SHARED scan_io_${libname}.cc) +endif(WIN32) + target_link_libraries(scan_io_${libname} pointfilter ${Boost_LIBRARIES} ${Boost_PROGRAM_OPTIONS_LIBRARY} ${Boost_FILESYSTEM_LIBRARY} ${Boost_SYSTEM_LIBRARY}) +endforeach(libname) + +if(WITH_RIVLIB) + target_link_libraries(scan_io_rxp ${RIVLIB}) + if(LIBXML2_FOUND) + target_link_libraries(scan_io_rxp ${LIBXML2_LIBRARIES}) #scan_io_riegl_project ${RIVLIB}) + endif(LIBXML2_FOUND) +endif(WITH_RIVLIB) + +if(WIN32) + add_library(scanio STATIC scan_io.cc ../slam6d/io_types.cc) +else(WIN32) + add_library(scanio SHARED scan_io.cc ../slam6d/io_types.cc) +endif(WIN32) + +if(UNIX) + target_link_libraries(scanio dl) +endif(UNIX) + + diff --git a/.svn/pristine/a2/a20f125cd720ae04b9d41142fccc4c579d10a9f9.svn-base b/.svn/pristine/a2/a20f125cd720ae04b9d41142fccc4c579d10a9f9.svn-base new file mode 100644 index 0000000..80f46ce --- /dev/null +++ b/.svn/pristine/a2/a20f125cd720ae04b9d41142fccc4c579d10a9f9.svn-base @@ -0,0 +1,42 @@ + + +int glui_img_listbox_down[] = { 11, 17, /* width, height */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 127,127,127, 127,127,127, 127,127,127, 127,127,127, + 127,127,127, 127,127,127, 127,127,127, 127,127,127, 127,127,127, + 127,127,127, 0, 0, 0, 127,127,127, 191,191,191, 191,191,191, + 191,191,191, 191,191,191, 191,191,191, 191,191,191, 191,191,191, + 191,191,191, 127,127,127, 0, 0, 0, 127,127,127, 191,191,191, + 191,191,191, 191,191,191, 191,191,191, 191,191,191, 191,191,191, + 191,191,191, 191,191,191, 127,127,127, 0, 0, 0, 127,127,127, + 191,191,191, 191,191,191, 191,191,191, 191,191,191, 191,191,191, + 191,191,191, 191,191,191, 191,191,191, 127,127,127, 0, 0, 0, + 127,127,127, 191,191,191, 191,191,191, 191,191,191, 191,191,191, + 191,191,191, 191,191,191, 191,191,191, 191,191,191, 127,127,127, + 0, 0, 0, 127,127,127, 191,191,191, 191,191,191, 191,191,191, + 191,191,191, 191,191,191, 191,191,191, 191,191,191, 191,191,191, + 127,127,127, 0, 0, 0, 127,127,127, 191,191,191, 191,191,191, + 191,191,191, 191,191,191, 127,127,127, 191,191,191, 191,191,191, + 191,191,191, 127,127,127, 0, 0, 0, 127,127,127, 191,191,191, + 191,191,191, 191,191,191, 127,127,127, 127,127,127, 127,127,127, + 191,191,191, 191,191,191, 127,127,127, 0, 0, 0, 127,127,127, + 191,191,191, 191,191,191, 127,127,127, 127,127,127, 127,127,127, + 127,127,127, 127,127,127, 191,191,191, 127,127,127, 0, 0, 0, + 127,127,127, 191,191,191, 191,191,191, 191,191,191, 191,191,191, + 191,191,191, 191,191,191, 191,191,191, 191,191,191, 127,127,127, + 0, 0, 0, 127,127,127, 191,191,191, 191,191,191, 191,191,191, + 191,191,191, 191,191,191, 191,191,191, 191,191,191, 191,191,191, + 127,127,127, 0, 0, 0, 127,127,127, 191,191,191, 191,191,191, + 191,191,191, 191,191,191, 191,191,191, 191,191,191, 191,191,191, + 191,191,191, 127,127,127, 0, 0, 0, 127,127,127, 191,191,191, + 191,191,191, 191,191,191, 191,191,191, 191,191,191, 191,191,191, + 191,191,191, 191,191,191, 127,127,127, 0, 0, 0, 127,127,127, + 191,191,191, 191,191,191, 191,191,191, 191,191,191, 191,191,191, + 191,191,191, 191,191,191, 191,191,191, 127,127,127, 0, 0, 0, + 127,127,127, 191,191,191, 191,191,191, 191,191,191, 191,191,191, + 191,191,191, 191,191,191, 191,191,191, 191,191,191, 127,127,127, + 0, 0, 0, 127,127,127, 127,127,127, 127,127,127, 127,127,127, + 127,127,127, 127,127,127, 127,127,127, 127,127,127, 127,127,127, + 127,127,127, 0, 0, 0, +}; diff --git a/.svn/pristine/a2/a228cdc3bcc1f2580b793553073c7effa290b4c2.svn-base b/.svn/pristine/a2/a228cdc3bcc1f2580b793553073c7effa290b4c2.svn-base new file mode 100644 index 0000000..f7c4741 --- /dev/null +++ b/.svn/pristine/a2/a228cdc3bcc1f2580b793553073c7effa290b4c2.svn-base @@ -0,0 +1,458 @@ +/* + * lum6Deuler implementation + * + * Copyright (C) Dorit Borrmann, Jan Elseberg, Andreas Nuechter, Kai Lingemann + * + * Released under the GPL version 3. + * + */ + +/** + * @file + * @brief The implementation of globally consistent scan matching algorithm + * + * @author Dorit Borrman. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Jan Elseberg. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + * + * A description of the algorithms implemented here can be found in the following paper + * (ras2007.pdf): + * + * Dorit Borrmann, Jan Elseberg, Kai Lingemann, Andreas Nuechter, and Joachim Hertzberg. + * Globally consistent 3D mapping with scan matching. Journal of Robotics and Autonomous + * Systems (JRAS), Elsevier Science, Volume 56, Issue 2, ISSN 0921-8890, pages 130 - 142, + * February 2008 + */ + +#ifdef _MSC_VER +#if !defined _OPENMP && defined OPENMP +#define _OPENMP +#endif +#endif + +#include "slam6d/lum6Deuler.h" +#include "sparse/csparse.h" + +#include +#include +using std::ofstream; +using std::cerr; +#include "slam6d/globals.icc" + +using namespace NEWMAT; +/** + * Constructor + * + * @param my_icp6Dminimizer Pointer to ICP minimization functor + * @param mdm Maximum PtoP distance to which point pairs are collected for ICP + * @param max_dist_match Maximum PtoP distance to which point pairs are collected for LUM + * @param max_num_iterations Maximal number of iterations for ICP + * @param quiet Suspesses all output to std out + * @param meta Indicates if metascan matching has to be used + * @param rnd Indicates if randomization has to be used + * @param eP Extrapolate odometry? + * @param anim Animate which frames? + * @param epsilonICP Termination criterion for ICP + * @param nns_method Specifies which NNS method to use + * @param epsilonLUM Termination criterion for LUM + */ +lum6DEuler::lum6DEuler(icp6Dminimizer *my_icp6Dminimizer, + double mdm, double max_dist_match, + int max_num_iterations, bool quiet, bool meta, int rnd, + bool eP, int anim, double epsilonICP, int nns_method, double epsilonLUM) + : graphSlam6D(my_icp6Dminimizer, + mdm, max_dist_match, + max_num_iterations, quiet, meta, rnd, + eP, anim, epsilonICP, nns_method, epsilonLUM) +{ } + + +/** + * Destructor + */ +lum6DEuler::~lum6DEuler() +{ + delete my_icp; +} + + +/** + * This function calculates the inverse covariances Cij and the Vector Cij*Dij for + * two scans by finding pointpairs. + * + * @param first pointer to the first scan of the link + * @param second pointer to the second scan of the link + * @param nns_method Specifies which NNS method to use + * @param rnd shall we use randomization for computing the point pairs? + * @param max_dist_match2 maximal distance allowed for point pairs + * @param C pointer to the inverse of the covariance matrix Cij + * @param CD pointer to the vector Cij*Dij + */ +void lum6DEuler::covarianceEuler(Scan *first, Scan *second, + int nns_method, int rnd, double max_dist_match2, + Matrix *C, ColumnVector *CD) +{ + // x,y,z denote the coordinates of uk (Here averaged over ak and bk) + // sx,sy,sz are the sums of their respective coordinates of uk over each paint pair + // xpy,xpz,ypz are the sums over x*x + y*y ,x*x + z*z and y*y + z*z respectively over each point pair + // xy,yz,xz are the sums over each respective multiplication + // dx,dy,dz are the deltas in each coordinate of a point pair + // ss is the estimation of the covariance of sensing error + double x, y, z, sx, sy, sz, xy, yz, xz, ypz, xpz, xpy, dx, dy, dz, ss; + + // D is needed to calculate the estimation of the covariance s + ColumnVector D(6); + // Almost Cij*Dij + ColumnVector MZ(6); + // Almost the covarianve + Matrix MM(6,6); + // A set of point pairs + vector uk; + // A point pair + Point ak, bk; + // number of pairs in a set + int m; + +#ifdef _OPENMP + int thread_num = omp_get_thread_num(); +#else + int thread_num = 0; +#endif + + double dummy_centroid_m[3]; + double dummy_centroid_d[3]; + double dummy_sum; + + Scan::getPtPairs(&uk, first, second, thread_num, + rnd, max_dist_match2, dummy_sum, dummy_centroid_m, dummy_centroid_d); + + m = uk.size(); + + MZ = 0.0; + MM = 0.0; + sx = sy = sz = xy = yz = xz = ypz = xpz = xpy = ss = 0.0; + + if (m > 2) { + // for each point pair + for(int j = 0; j < m; j++){ + ak = uk[j].p1; + bk = uk[j].p2; + + // Some temporary values + x = (ak.x + bk.x)/2.0; + y = (ak.y + bk.y)/2.0; + z = (ak.z + bk.z)/2.0; + dx = ak.x - bk.x; + dy = ak.y - bk.y; + dz = ak.z - bk.z; + + // Sum up all necessary values to construct MM + sx += x; + sy += y; + sz += z; + + xpy += x*x + y*y; + xpz += x*x + z*z; + ypz += y*y + z*z; + + xy += x*y; + xz += x*z; + yz += y*z; + + // Sum up each part of MZ + MZ(1) += dx; + MZ(2) += dy; + MZ(3) += dz; + MZ(4) += -z * dy + y * dz; + MZ(5) += -y * dx + x * dy; + MZ(6) += z * dx - x * dz; + } + // Now construct the symmetrical matrix MM + MM(1,1) = MM(2,2) = MM(3,3) = m; + MM(4,4) = ypz; + MM(5,5) = xpy; + MM(6,6) = xpz; + + MM(1,5) = MM(5,1) = -sy; + MM(1,6) = MM(6,1) = sz; + MM(2,4) = MM(4,2) = -sz; + MM(2,5) = MM(5,2) = sx; + MM(3,4) = MM(4,3) = sy; + MM(3,6) = MM(6,3) = -sx; + + MM(4,5) = MM(5,4) = -xz; + MM(4,6) = MM(6,4) = -xy; + MM(5,6) = MM(6,5) = -yz; + + // Calculate the pose difference estimation + D = MM.i() * MZ ; + + // Again going through all point pairs to faster calculate s. + // This cannot be done earlier as we need D, and therefore MM and MZ to do this + for(int j = 0; j < m; j++){ + ak = uk[j].p1; + bk = uk[j].p2; + + x = (ak.x + bk.x) / 2.0; + y = (ak.y + bk.y) / 2.0; + z = (ak.z + bk.z) / 2.0; + + ss += sqr(ak.x - bk.x - (D(1) - y * D(5) + z * D(6))) + + sqr(ak.y - bk.y - (D(2) - z * D(4) + x * D(5))) + + sqr(ak.z - bk.z - (D(3) + y * D(4) - x * D(6))); + } + + ss = ss / (2*m - 3); + // for dealing with numerical instabilities when identical point clouds are used in matching + if (ss < 0.0000000000001) { + ss = 0.0; + MM(1,1) = MM(1,2) = MM(1,3) = 0.0; + MM(2,1) = MM(2,2) = MM(2,3) = 0.0; + MM(3,1) = MM(3,2) = MM(3,3) = 0.0; + MZ(6) = MZ(1) = MZ(2) = 0.0; + MZ(3) = MZ(4) = MZ(5) = 0.0; + *C = 0; + if(CD) + *CD = 0; + return; + } + ss = 1.0 / ss; + + if (CD) { + *CD = MZ * ss; + } + *C = MM * ss; + + } else { + + // This case should not occur + ss = 0.0; + MM(1,1) = MM(1,2) = MM(1,3) = 0.0; + MM(2,1) = MM(2,2) = MM(2,3) = 0.0; + MM(3,1) = MM(3,2) = MM(3,3) = 0.0; + MZ(6) = MZ(1) = MZ(2) = 0.0; + MZ(3) = MZ(4) = MZ(5) = 0.0; + *C = 0; + if(CD) + *CD = 0; + cerr << "Error calculating covariance matrix" << endl; + + } +} + +/** + * A function to fill the linear system G X = B. + * + * @param gr the Graph is used to map the given covariances C and CD matrices to the correct link + * @param CD A vector containing all covariances C multiplied with their respective estimations D + * @param C A vector containing all covariances C of the pose difference estimations D + * @param G The matrix G specifying the linear equation + * @param B The vector B + */ +void lum6DEuler::FillGB3D(Graph *gr, GraphMatrix* G, ColumnVector* B,vector allScans ) +{ +#ifdef _OPENMP +#pragma omp parallel for schedule(dynamic) +#endif + for(int i = 0; i < gr->getNrLinks(); i++){ + int a = gr->getLink(i,0) - 1; + int b = gr->getLink(i,1) - 1; + Scan *FirstScan = allScans[gr->getLink(i,0)]; + Scan *SecondScan = allScans[gr->getLink(i,1)]; + + // cout << "i " << i << " a: " << a << " b: " << b << endl; + + Matrix Cab(6,6); + ColumnVector CDab(6); + covarianceEuler(FirstScan, SecondScan, nns_method, (int)my_icp->get_rnd(), + (int)max_dist_match2_LUM, &Cab, &CDab); + +#pragma omp critical + { + if(a >= 0){ + B->Rows(a*6+1,a*6+6) += CDab; + G->add(a, a, Cab); + } + if(b >= 0){ + B->Rows(b*6+1,b*6+6) -= CDab; + G->add(b, b, Cab); + } + if(a >= 0 && b >= 0) { + G->subtract(a, b, Cab); + G->subtract(b, a, Cab); + } + + } + } + +// G->print(); +} + +/** + * This function is used to match a set of laser scans with any minimally + * connected Graph, using the globally consistent LUM-algorithm in 3D. + * + * @param gr Some Graph with no real subgraphs except for itself + * @param allScans Contains all laser scans + * @param nrIt The number of iterations the LUM-algorithm will run + * @return Euclidian distance of all pose shifts + */ +double lum6DEuler::doGraphSlam6D(Graph gr, vector allScans, int nrIt) +{ +#ifdef WRITE_GRAPH_NET + // for debug only: + static int d = 0; + cout << "writing graph.dat ....................................." << endl; + d++; + string gfilename = "graph_" + to_string(d, 3) + ".net"; + ofstream out(gfilename.c_str()); + for (int i=0; i < gr.getNrLinks(); i++) { + int from = gr.getLink(i,0); + int to = gr.getLink(i,1); + // shouldn't be necessary, just in case a (out of date) graph file is loaded: + if (from < (int)allScans.size() && to < (int)allScans.size()) { + out << allScans[from]->get_rPos()[0] << " " + << allScans[from]->get_rPos()[1] << " " + << allScans[from]->get_rPos()[2] << endl + << allScans[to ]->get_rPos()[0] << " " + << allScans[to ]->get_rPos()[1] << " " + << allScans[to ]->get_rPos()[2] << endl << endl; + } + } + out.close(); + out.clear(); +#endif + + // the IdentityMatrix to transform some Scans with + double id[16]; + M4identity(id); + + double ret = DBL_MAX; + + for(int iteration = 0; + iteration < nrIt && ret > epsilonLUM; + iteration++) { + + if (nrIt > 1) cout << "Iteration " << iteration << endl; + + + // * Calculate X and CX from all Dij and Cij + int n = (gr.getNrScans() - 1); + + // Construct the linear equation system.. + GraphMatrix *G = new GraphMatrix(); + ColumnVector B(6*n); + B = 0.0; + // ...fill G and B... + FillGB3D(&gr, G, &B, allScans); + // ...and solve it + ColumnVector X = solveSparseCholesky(G, B); + + delete G; + + //cout << "X done!" << endl; + + double sum_position_diff = 0.0; + + // Start with second Scan + int loop_end = gr.getNrScans(); +#ifdef _OPENMP +#pragma omp parallel for reduction(+:sum_position_diff) +#endif + for(int i = 1; i < loop_end; i++){ + + // Now update the Poses + Matrix Ha = IdentityMatrix(6); + + double xa = allScans[i]->get_rPos()[0]; + double ya = allScans[i]->get_rPos()[1]; + double za = allScans[i]->get_rPos()[2]; + + double tx = allScans[i]->get_rPosTheta()[0]; + double ty = allScans[i]->get_rPosTheta()[1]; + + double ctx = cos(tx); + double stx = sin(tx); + double cty = cos(ty); + double sty = sin(ty); + + // Fill Ha + Ha.element(0,4) = -za*ctx+ya*stx; + Ha.element(0,5) = ya*cty*ctx+za*stx*cty; + + Ha.element(1,3) = za; + Ha.element(1,4) = -xa*stx; + Ha.element(1,5) = -xa*ctx*cty+za*sty; + + + Ha.element(2,3) = -ya; + Ha.element(2,4) = xa*ctx; + Ha.element(2,5) = -xa*cty*stx-ya*sty; + + Ha.element(3,5) = sty; + + Ha.element(4,4) = stx; + Ha.element(4,5) = ctx*cty; + + Ha.element(5,4) = ctx; + Ha.element(5,5) = -stx*cty; + // Invert it + Ha = Ha.i(); + + // Get pose estimate + ColumnVector Xtmp = X.Rows((i-1)*6+1,(i-1)*6+6); + + // Correct pose estimate + ColumnVector result = Ha * Xtmp; + + if(!quiet) { + cout << "Old pose estimate, Scan " << i << endl; + cout << "x: " << allScans[i]->get_rPos()[0] + << " y: " << allScans[i]->get_rPos()[1] + << " z: " << allScans[i]->get_rPos()[2] + << " tx: " << allScans[i]->get_rPosTheta()[0] + << " ty: " << allScans[i]->get_rPosTheta()[1] + << " tz: " << allScans[i]->get_rPosTheta()[2] + << endl; + } + + double rPos[3]; + double rPosTheta[3]; + + // calculate the updated Pose + for (int k = 0; k < 3; k++) { + rPos[k] = allScans[i]->get_rPos()[k] - result.element(k); + rPosTheta[k] = allScans[i]->get_rPosTheta()[k] - result.element(k+3); + } + + // Update the Pose + if (i != gr.getNrScans() - 1) { + allScans[i]->transformToEuler(rPos, rPosTheta, Scan::LUM, 1); + } else { + allScans[i]->transformToEuler(rPos, rPosTheta, Scan::LUM, 2); + } + + if(!quiet) { + cout << "x: " << allScans[i]->get_rPos()[0] + << " y: " << allScans[i]->get_rPos()[1] + << " z: " << allScans[i]->get_rPos()[2] + << " tx: " << allScans[i]->get_rPosTheta()[0] + << " ty: " << allScans[i]->get_rPosTheta()[1] + << " tz: " << allScans[i]->get_rPosTheta()[2] << endl << endl; + } + + double x[3]; + x[0] = result.element(0); + x[1] = result.element(1); + x[2] = result.element(2); + sum_position_diff += Len(x); + } + cout << "Sum of Position differences = " << sum_position_diff << endl; + ret = (sum_position_diff / (double)gr.getNrScans()); + } + + return ret; +} + + diff --git a/.svn/pristine/a2/a2a09314f42f413938ecffa2b2678f6e8b26df67.svn-base b/.svn/pristine/a2/a2a09314f42f413938ecffa2b2678f6e8b26df67.svn-base new file mode 100644 index 0000000..4ea9a40 --- /dev/null +++ b/.svn/pristine/a2/a2a09314f42f413938ecffa2b2678f6e8b26df67.svn-base @@ -0,0 +1,37 @@ +/** + * @file + * @brief IO of a 3D scan in .x3d file format + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SCAN_IO_X3D_H__ +#define __SCAN_IO_X3D_H__ + +#include +using std::string; +#include +using std::vector; + +#include "scan_io.h" + +/** + * @brief 3D scan loader for xml files in x3d format + * + * The compiled class is available as shared object file + */ +class ScanIO_x3d : public ScanIO { +public: + virtual int readScans(int start, int end, string &dir, + int maxDist, int mindist, + double *euler, vector &ptss); +}; + +// Since this shared object file is loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/.svn/pristine/a3/a3342d3468cfb44d2c482de44755672ee8afe2e3.svn-base b/.svn/pristine/a3/a3342d3468cfb44d2c482de44755672ee8afe2e3.svn-base new file mode 100644 index 0000000..71397f2 --- /dev/null +++ b/.svn/pristine/a3/a3342d3468cfb44d2c482de44755672ee8afe2e3.svn-base @@ -0,0 +1 @@ +sed -i 's/,//g' *.asc \ No newline at end of file diff --git a/.svn/pristine/a3/a339abce00e5fad291d9254e33d2d31d2f896586.svn-base b/.svn/pristine/a3/a339abce00e5fad291d9254e33d2d31d2f896586.svn-base new file mode 100644 index 0000000..b209cb5 --- /dev/null +++ b/.svn/pristine/a3/a339abce00e5fad291d9254e33d2d31d2f896586.svn-base @@ -0,0 +1,184 @@ +/* + * scan_io_uso_rgb implementation + * + * Copyright (C) Thomas Escher, Kai Lingemann, Andreas Nuechter + * + * Released under the GPL version 3. + * + */ + +/** + * @file + * @brief Implementation of reading 3D scans + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Thomas Escher. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "scanio/scan_io_uos_rgb.h" + +#include +using std::cout; +using std::cerr; +using std::endl; +#include + +#ifdef _MSC_VER +#include +#endif + +#include +#include +using namespace boost::filesystem; + +#include "slam6d/globals.icc" + + + +#define DATA_PATH_PREFIX "scan" +#define DATA_PATH_SUFFIX ".3d" +#define POSE_PATH_PREFIX "scan" +#define POSE_PATH_SUFFIX ".pose" + + + +std::list ScanIO_uos_rgb::readDirectory(const char* dir_path, unsigned int start, unsigned int end) +{ + std::list identifiers; + for(unsigned int i = start; i <= end; ++i) { + // identifier is /d/d/d (000-999) + std::string identifier(to_string(i,3)); + // scan consists of data (.3d) and pose (.pose) files + path data(dir_path); + data /= path(std::string(DATA_PATH_PREFIX) + identifier + DATA_PATH_SUFFIX); + path pose(dir_path); + pose /= path(std::string(POSE_PATH_PREFIX) + identifier + POSE_PATH_SUFFIX); + // stop if part of a scan is missing or end by absence is detected + if(!exists(data) || !exists(pose)) + break; + identifiers.push_back(identifier); + } + return identifiers; +} + +void ScanIO_uos_rgb::readPose(const char* dir_path, const char* identifier, double* pose) +{ + unsigned int i; + + path pose_path(dir_path); + pose_path /= path(std::string(POSE_PATH_PREFIX) + identifier + POSE_PATH_SUFFIX); + if(!exists(pose_path)) + throw std::runtime_error(std::string("There is no pose file for [") + identifier + "] in [" + dir_path + "]"); + + // open pose file + ifstream pose_file(pose_path); + + // if the file is open, read contents + if(pose_file.good()) { + // read 6 plain doubles + for(i = 0; i < 6; ++i) pose_file >> pose[i]; + pose_file.close(); + + // convert angles from deg to rad + for(i = 3; i < 6; ++i) pose[i] = rad(pose[i]); + } else { + throw std::runtime_error(std::string("Pose file could not be opened for [") + identifier + "] in [" + dir_path + "]"); + } +} + +bool ScanIO_uos_rgb::supports(IODataType type) +{ + return !!(type & (DATA_XYZ | DATA_RGB)); +} + +void ScanIO_uos_rgb::readScan(const char* dir_path, const char* identifier, PointFilter& filter, std::vector* xyz, std::vector* rgb, std::vector* reflectance, std::vector* amplitude, std::vector* type, std::vector* deviation) +{ + unsigned int i; + + // error handling + path data_path(dir_path); + data_path /= path(std::string(DATA_PATH_PREFIX) + identifier + DATA_PATH_SUFFIX); + if(!exists(data_path)) + throw std::runtime_error(std::string("There is no scan file for [") + identifier + "] in [" + dir_path + "]"); + + if(xyz != 0 || rgb != 0) { + // open data file + ifstream data_file(data_path); + data_file.exceptions(ifstream::eofbit|ifstream::failbit|ifstream::badbit); + + + // aquire header informations + /* OPTIONAL: the header isn't always there, would require a sanity check + unsigned int n, m; + char[3] dummy; + data_file >> n; + for(unsigned int i = 0; i < 3; ++i) data_file >> dummy[i]; + data_file >> m; + values.reserve(n*m*3); + */ + // overread the first line + char dummy[255]; + data_file.getline(dummy, 255); + + // read points + double point[3]; + unsigned int color[3]; + while(data_file.good()) { + try { + for(i = 0; i < 3; ++i) data_file >> point[i]; + for(i = 0; i < 3; ++i) data_file >> color[i]; + } catch(std::ios_base::failure& e) { + break; + } + // apply filter and insert point + if(filter.check(point)) { + if(xyz != 0) { + for(i = 0; i < 3; ++i) xyz->push_back(point[i]); + } + if(rgb != 0) { + for(i = 0; i < 3; ++i) rgb->push_back( + static_cast(color[i])); + } + } + } + data_file.close(); + } +} + + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_uos_rgb; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/.svn/pristine/a3/a347b9d2c0c3cbed9bd11801df71451bd50126db.svn-base b/.svn/pristine/a3/a347b9d2c0c3cbed9bd11801df71451bd50126db.svn-base new file mode 100644 index 0000000..7cdf51e --- /dev/null +++ b/.svn/pristine/a3/a347b9d2c0c3cbed9bd11801df71451bd50126db.svn-base @@ -0,0 +1,44 @@ + + +int glui_img_radiobutton_0[] = { 14, 14, /* width, height */ + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 255,255,255, + 255,255,255, 255,255,255, 255,255,255, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 255,255,255, 255,255,255, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 255,255,255, 255,255,255, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 128,128,128, + 192,192,192, 192,192,192, 255,255,255, 255,255,255, 255,255,255, + 255,255,255, 192,192,192, 192,192,192, 255,255,255, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 128,128,128, 0, 0, 0, + 255,255,255, 255,255,255, 255,255,255, 255,255,255, 255,255,255, + 255,255,255, 192,192,192, 255,255,255, 192,192,192, 192,192,192, + 192,192,192, 128,128,128, 0, 0, 0, 255,255,255, 255,255,255, + 255,255,255, 255,255,255, 255,255,255, 255,255,255, 255,255,255, + 255,255,255, 192,192,192, 255,255,255, 192,192,192, 192,192,192, + 128,128,128, 0, 0, 0, 255,255,255, 255,255,255, 255,255,255, + 255,255,255, 255,255,255, 255,255,255, 255,255,255, 255,255,255, + 192,192,192, 255,255,255, 192,192,192, 192,192,192, 128,128,128, + 0, 0, 0, 255,255,255, 255,255,255, 255,255,255, 255,255,255, + 255,255,255, 255,255,255, 255,255,255, 255,255,255, 192,192,192, + 255,255,255, 192,192,192, 192,192,192, 128,128,128, 0, 0, 0, + 255,255,255, 255,255,255, 255,255,255, 255,255,255, 255,255,255, + 255,255,255, 255,255,255, 255,255,255, 192,192,192, 255,255,255, + 192,192,192, 192,192,192, 192,192,192, 128,128,128, 0, 0, 0, + 255,255,255, 255,255,255, 255,255,255, 255,255,255, 255,255,255, + 255,255,255, 192,192,192, 255,255,255, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 128,128,128, 0, 0, 0, 0, 0, 0, + 255,255,255, 255,255,255, 255,255,255, 255,255,255, 0, 0, 0, + 0, 0, 0, 255,255,255, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 128,128,128, 128,128,128, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 128,128,128, 128,128,128, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 128,128,128, 128,128,128, + 128,128,128, 128,128,128, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, +}; diff --git a/.svn/pristine/a3/a36375913d21694c6b46abac9ba0f09d57c94154.svn-base b/.svn/pristine/a3/a36375913d21694c6b46abac9ba0f09d57c94154.svn-base new file mode 100644 index 0000000..08f7166 --- /dev/null +++ b/.svn/pristine/a3/a36375913d21694c6b46abac9ba0f09d57c94154.svn-base @@ -0,0 +1,198 @@ +/** + * @file scene.h + * + * @auhtor Remus Claudiu Dumitru + * @date 13 Feb 2012 + * + */ + +#ifndef SCENE_H_ +#define SCENE_H_ + +//============================================================================== +// Includes +//============================================================================== +#include "model/point3d.h" +#include "model/vector3d.h" +#include "model/labeledPlane3d.h" + +#include "shapes/hough.h" +#include "shapes/shape.h" +#include "slam6d/Boctree.h" +#include "slam6d/io_types.h" + +#include + +//============================================================================== +// Global Variables +//============================================================================== +extern bool quiet; + +/** + * All available plane detection algos. + */ +enum PlaneAlgorithm { + RHT, SHT, PHT, PPHT, APHT, RANSAC +}; + +namespace model { + +/** + * A class defining a 3d scene. + */ +class Scene { +private: + // private fields + static const double PRECISION; //!< Precision at which to draw the 3d Bresenham line. + static const double RAY_DIST; //!< The max distance to consider that a ray hit something. + static const double PATCH_DIST; //!< The distance between each discrete patch on a wall surface. + static const double WALL_DIST; //!< Tolerance to consider a point part of a wall, squared. + static const double MIN_EMPTY_AREA; //!< The minimum empty area percentage to be considered a window. + static const double MIN_EDGE_COV; //!< Minimum edge coverage coefficient. + +public: + // public fields + SearchTree *octTree; //!< An efficient octree containing the points. + double **octTreePoints; //!< Used to construct the octree. + unsigned int nrPoints; //!< The total number of points in the octree. + + std::vector points; //!< The 3d point cloud. + std::vector planes; //!< The list of planes in our scene. + + std::vector walls; //!< The walls of the room. + LabeledPlane3d ceiling; //!< The ceiling of the room. + LabeledPlane3d floor; //!< The floor of the room. + + std::vector finalOpenings; //!< The windows of the room. + + std::vector poses; //!< Container for all the poses from where scans have been taken from. + +protected: + // protected methods + Scene(); + +public: + // public methods + inline Scene(const std::vector& points, + const std::vector& planes) : + points(points), + planes(planes) + { + if (!quiet) cout << "== Creating scene..." << endl; + this->nrPoints = 0; + }; + + Scene(const IOType& type, + const int& start, const int& end, + std::string dir, const bool& scanserver, + const int& maxDist, const int& minDist, + const PlaneAlgorithm& alg, const int& octree, const double& red, + const vector& poses); + + Scene(const Scene& other); + ~Scene(); + + /** + * Given some planes, returns the HORIZONTAL convex hull formed by the + * application point inside the plane objects, only of VERTICAL planes. + */ + static std::vector getConvexHull(std::vector planes); + + /** + * Removes planes that have similar normals. [O(n^2)] + * @warning the hull is not averaged, it is simply the first found hull for each plane + */ + static std::vector getSignificantPlanes(std::vector planes); + + /** + * Returns true if the highest horizontal plane has been found. + */ + bool getCeiling(std::vector planes, Plane3d& result); + + /** + * Returns true if the lowest horizontal plane has been found. + */ + bool getFloor(std::vector planes, Plane3d& result); + + /** + * Creates the walls, floor and ceiling. + */ + void detectWalls(); + + /** + * Performs ray casting from source point to destination and returns true + * if the ray successfully reached the destination point, returning the + * point it hit along the way. + */ + bool castRay(const model::Point3d& src, const model::Point3d& dest, const double& extraDist, + Point3d& ptHit); + + /** + * Applies labels to the given plane. + */ + void applyLabels(LabeledPlane3d& surf); + + /** + * Applies labels to all the walls. + */ + void applyAllLabels(); + + /** + * Finds all openings using the SVM. + */ + void detectPotentialOpenings(const LabeledPlane3d& surf, + std::vector& openings); + + /** + * Applies KMeans clustering to the multiple windows yielding only one possible window for each cluster. + * Does not work with OpenCV 2.4.0!!! + */ + void clusterOpenings(const LabeledPlane3d& surf, const std::vector& openings, + std::vector& result) const; + + /** + * Returns all openings, after deciding which are the correct ones. + */ + void addFinalOpenings(const LabeledPlane3d& surf, + std::vector& result); + + /** + * Corrects an image to fill in missing data. + */ + void correct(LabeledPlane3d& surf, const std::vector& openings); + + /** + * Writes the walls to appropriate files in the given folder. + */ + void writeModel(std::string dir); + + /** + * Writes the corrected walls to the given folder. + */ + void writeCorrectedWalls(std::string dir); + + /** + * Computes the corrected wall in UOS_RGB. + */ + void getCorrectedWall(const LabeledPlane3d& surf, vector >& points); + +private: + // private methods + + /** + * Floods a point on the labeling matrix with the other given value. + */ + void flood(LabeledPlane3d& surf, + const int& i, const int& j, + const Label& target, const Label& replacement); + + /** + * Returns true if the cube centered at the given coordinates is occupied. + */ + bool isOccupied(const Point3d& center, const double& width); + +}; + +} /* namespace model */ + +#endif /* SCENE_H_ */ diff --git a/.svn/pristine/a3/a3ad1f3614c3df72dfd2fdcfe76a0203c5c158f7.svn-base b/.svn/pristine/a3/a3ad1f3614c3df72dfd2fdcfe76a0203c5c158f7.svn-base new file mode 100644 index 0000000..9657c1c Binary files /dev/null and b/.svn/pristine/a3/a3ad1f3614c3df72dfd2fdcfe76a0203c5c158f7.svn-base differ diff --git a/.svn/pristine/a3/a3b3666863fc4d49877cb849e50a9a5d4fb8a8cc.svn-base b/.svn/pristine/a3/a3b3666863fc4d49877cb849e50a9a5d4fb8a8cc.svn-base new file mode 100644 index 0000000..f4a5827 --- /dev/null +++ b/.svn/pristine/a3/a3b3666863fc4d49877cb849e50a9a5d4fb8a8cc.svn-base @@ -0,0 +1,132 @@ +# +# Makefile for ./src path, used by configure +# + +EXEEXT = +PROGRAM = gocr$(EXEEXT) +# lib removed for simplification (v0.46) +# but Igor from OSRA an optical chemical structure recognition software +# wants it (v0.47 Mar09) +PGMASCLIB = Pgm2asc +#LIBPGMASCLIB = lib$(PGMASCLIB).a +# ToDo: need a better pgm2asc.h for lib users +#INCLUDEFILES = gocr.h +# avoid german compiler messages +LANG=C + +LIBOBJS=pgm2asc.o \ + box.o \ + database.o \ + detect.o \ + barcode.o \ + lines.o \ + list.o \ + ocr0.o \ + ocr0n.o \ + ocr1.o \ + otsu.o \ + output.o \ + pixel.o \ + unicode.o \ + remove.o \ + pnm.o \ + pcx.o \ + progress.o \ + job.o + +# these two lines are for cross-compiling, not tested +#srcdir = . +#VPATH = . +bindir = ${exec_prefix}/bin +# lib removed for simplification +#libdir = ${exec_prefix}/lib +#includedir = ${prefix}/include + +CC=gcc +# lib removed for simplification +# ar,ranlib detection removed from configure (simplicity) +# but needed by some developpers (linux only) for for (make libs) +# RANLIB = @RANLIB@ +# AR = @AR@ +RANLIB = ranlib +AR = ar +INSTALL=/usr/bin/install -c +# shell is needed for OS/2 to let if test -r $(PROGRAM) ... work +SHELL=/bin/bash + +DEFS=-DHAVE_CONFIG_H +CPPFLAGS= +# to see the config.h +CFLAGS=-g -O2 -fPIC $(CPPFLAGS) -I../include $(DEFS) +LDFLAGS=-lm +LIBS=-lnetpbm +DESTDIR=/usr/local + +.SUFFIXES: .s .o .c .h +# do not look for files if help (etc) is given +.PHONY : doc clean install libs default + +.c.o: gocr.h pgm2asc.h ../include/config.h + $(CC) $(CFLAGS) -c -o $*.o $< + +default: all + +# all: $(PROGRAM) lib$(PGMASCLIB).a +all: $(PROGRAM) + +gocr.o: gocr.h Makefile ../include/version.h + +.c.h: + +#$(PROGRAM): lib$(PGMASCLIB).a gocr.o +$(PROGRAM): $(LIBOBJS) gocr.o + # make it conform to ld --as-needed + #$(CC) -o $@ $(LDFLAGS) gocr.o ./lib$(PGMASCLIB).a $(LIBS) + $(CC) -o $@ $(LDFLAGS) gocr.o $(LIBOBJS) $(LIBS) + if test -r $(PROGRAM); then cp $@ ../bin; fi + +libs: lib$(PGMASCLIB).a lib$(PGMASCLIB).0.48.so + +lib$(PGMASCLIB).0.48.so: $(LIBOBJS) + $(CC) -fPIC -shared -Wl,-h$@ -o $@ $(LIBOBJS) + -ln -s $@ lib$(PGMASCLIB).so + +lib$(PGMASCLIB).a: $(LIBOBJS) + # -rm -f $@ + $(AR) cru $@ $(LIBOBJS) + $(RANLIB) $@ + +$(LIBOBJS): Makefile + +# PHONY = don't look at file clean, -rm = start rm and ignore errors +.PHONY : clean proper install uninstall +install: all + #$(INSTALL) -d $(DESTDIR)$(bindir) $(DESTDIR)$(libdir) $(DESTDIR)$(includedir) + $(INSTALL) -d $(DESTDIR)$(bindir) + $(INSTALL) ../bin/$(PROGRAM) $(DESTDIR)$(bindir) + $(INSTALL) ../bin/gocr.tcl $(DESTDIR)$(bindir) # better X11/bin? + if test -f lib$(PGMASCLIB).a; then\ + $(INSTALL) lib$(PGMASCLIB).a $(DESTDIR)$(libdir);\ + $(INSTALL) lib$(PGMASCLIB).0.48.so $(DESTDIR)$(libdir);\ + $(INSTALL) lib$(PGMASCLIB).so $(DESTDIR)$(libdir);\ + fi + # ToDo: not sure that the link will be installed correctly + #$(INSTALL) $(INCLUDEFILES) $(DESTDIR)$(includedir) + +# directories are not removed +uninstall: + -rm -f $(DESTDIR)$(bindir)/$(PROGRAM) + -rm -f $(DESTDIR)$(bindir)/gocr.tcl + -rm -f $(DESTDIR)$(libdir)/lib$(PGMASCLIB).a + -rm -f $(DESTDIR)$(libdir)/lib$(PGMASCLIB).0.48.so + -rm -f $(DESTDIR)$(libdir)/lib$(PGMASCLIB).so + # ToDo: set to old version.so ? + #for X in $(INCLUDEFILES); do rm -f $(DESTDIR)$(includedir)/$$X; done + +clean: + -rm -f *.o *~ + +proper: clean + -rm -f gocr libPgm2asc.* + -rm -f gocr + diff --git a/.svn/pristine/a3/a3bc913d150d002278c2c439f165d714a939a1e5.svn-base b/.svn/pristine/a3/a3bc913d150d002278c2c439f165d714a939a1e5.svn-base new file mode 100644 index 0000000..e11af7a --- /dev/null +++ b/.svn/pristine/a3/a3bc913d150d002278c2c439f165d714a939a1e5.svn-base @@ -0,0 +1,151 @@ +/* + * graphHOG-Max implementation + * + * Copyright (C) Jochen Sprickerhof + * + * Released under the GPL version 3. + * + */ + +/** + * @file HOG-Man wrapper + * @author Jochen Sprickerhof. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "slam6d/graphHOG-Man.h" + +#include "slam6d/metaScan.h" +#include "slam6d/lum6Deuler.h" +#include "slam6d/globals.icc" + +#include +using std::ofstream; +using std::ifstream; +#include +#include +using namespace NEWMAT; +/** + * This function is used to match a set of laser scans with any minimally + * connected Graph. + * + * @param gr Some Graph with no real subgraphs except for itself + * @param allScans Contains all laser scans + * @param nrIt The number of iterations the LUM-algorithm will run + * @return Euclidian distance of all pose shifts + */ +double graphHOGMan::doGraphSlam6D(Graph gr, vector allScans, int nrIt) +{ + Matrix C(6, 6); + double invers[16], rela[16], rPos[3], rPosTheta[3], rPosQuat[4]; + double Pl0[16]; + + ofstream outFile("hogman.graph"); + int n = gr.getNrScans(); + for(int i = 0; i < n; i++) { + QuatRPYEuler(allScans[i]->get_rPosQuat(), rPosTheta); + outFile << "VERTEX3" << " " << i << + " " << (allScans[i]->get_rPos()[0]/100) << + " " << (allScans[i]->get_rPos()[1]/100) << + " " << (allScans[i]->get_rPos()[2]/100) << + " " << rPosTheta[0] << + " " << rPosTheta[1] << + " " << rPosTheta[2] << endl; + } + + for(int i = 0; i < gr.getNrLinks(); i++){ + int first = gr.getLink(i,0); + int last = gr.getLink(i,1); + + if(first != last-1) { + vector meta_start; + for(int i = first - 2; i <= first + 2; i++) { + if(i >= 0) { + meta_start.push_back(allScans[i]); + } + } + MetaScan *start = new MetaScan(meta_start, false, false); + + //static size of metascan + int offset_last_start = 2; + int offset_last_end = 0; + + vector meta_end; + for(int i = last - offset_last_start; i <= last + offset_last_end && i < n; i++) { + if(i >= 0) { + meta_end.push_back(allScans[i]); + } + } + MetaScan *end = new MetaScan(meta_end, false, false); + + memcpy(Pl0, allScans[last]->get_transMat(), 16 * sizeof(double)); + my_icp->match(start, end); + + delete start; + delete end; + } + + M4inv(allScans[last]->get_transMat(), invers); + MMult(invers, allScans[first]->get_transMat(), rela); + Matrix4ToQuat(rela, rPosQuat, rPos); + QuatRPYEuler(rPosQuat, rPosTheta); + + lum6DEuler::covarianceEuler(allScans[first], allScans[last], my_icp->get_nns_method(), my_icp->get_rnd(), my_icp->get_max_dist_match2(), &C); + + outFile << "EDGE3" << " " << last << " " << first << " " << + (rPos[0]/100) << " " << + (rPos[1]/100) << " " << + (rPos[2]/100) << " " << + rPosTheta[0] << " " << + rPosTheta[1] << " " << + rPosTheta[2] << " "; + for(int i = 1; i < 7; i++) + for(int j = i; j < 7; j++) + outFile << C(i, j) << " "; + outFile << endl; + + if(first != last-1) { + allScans[last]->transformToMatrix(Pl0,Scan::INVALID); + } + } + outFile.close(); + + system("LD_LIBRARY_PATH=./bin/ ./bin/hogman3d -update 1 -oc -o hogman-final.graph hogman.graph"); + + ifstream inFile("hogman-final.graph"); + string tag; + int id; + double dd; + double rPosN[3], rPosThetaN[3]; + while(inFile) { + inFile >> tag; + if(tag == "VERTEX3") { + inFile >> id; + if(id == n-1) { + inFile >> rPosN[0] >> rPosN[1] >> rPosN[2] >> rPosThetaN[0] >> rPosThetaN[1] >> rPosThetaN[2]; + rPosN[0] *= 100; + rPosN[1] *= 100; + rPosN[2] *= 100; + } else { + inFile >> rPos[0] >> rPos[1] >> rPos[2] >> rPosTheta[0] >> rPosTheta[1] >> rPosTheta[2]; + rPos[0] *= 100; + rPos[1] *= 100; + rPos[2] *= 100; + RPYEulerQuat(rPosTheta, rPosQuat); + if(id != 0) { + allScans[id]->transformToQuat(rPos, rPosQuat, Scan::GRAPHHOGMAN, 1); + } + } + } + else if(tag == "EDGE3") { + inFile >> id >> id; + for(int i=0; i < 22; i++) { + inFile >> dd; + } + } + } + RPYEulerQuat(rPosThetaN, rPosQuat); + allScans[n-1]->transformToQuat(rPosN, rPosQuat, Scan::GRAPHHOGMAN, 2); + inFile.close(); + + return DBL_MAX; +} diff --git a/.svn/pristine/a3/a3db5c13ff90a36963278c6a39e4ee3c22e2a436.svn-base b/.svn/pristine/a3/a3db5c13ff90a36963278c6a39e4ee3c22e2a436.svn-base new file mode 100644 index 0000000..00750ed --- /dev/null +++ b/.svn/pristine/a3/a3db5c13ff90a36963278c6a39e4ee3c22e2a436.svn-base @@ -0,0 +1 @@ +3 diff --git a/.svn/pristine/a4/a446ac4968a90238b3d21bd7452f26645b6f1f9c.svn-base b/.svn/pristine/a4/a446ac4968a90238b3d21bd7452f26645b6f1f9c.svn-base new file mode 100644 index 0000000..7a2257a --- /dev/null +++ b/.svn/pristine/a4/a446ac4968a90238b3d21bd7452f26645b6f1f9c.svn-base @@ -0,0 +1,260 @@ +/* + * PMDSDK 2 + * + * File: pmdsdk2.h + * Author: Martin Profittlich + * Version: 1.0 + * + * General header file for applications using the PMDSDK 2.0. + * Contains all necessary definitions and prototypes. + * + * Copyright (c) 2006-2007 PMD Technologies GmbH. + * All Rights Reserved. + * + */ + +// +// Differences from MiniSDK 1.0: +// +// - Distance, amplitude and intensity data type is float (was double) +// - pmdGetRaw() is now pmdGetSourceData() +// - Error code values changed +// - User is responsible for memory (de-)allocation now +// - Info commands removed, introduced pmdSourceCommand instead +// - Plugins! +// - Multiple integration times and modulation frequencies +// - Only one connection command, camera identification via plugin/parameter +// + +#ifndef PMDMSDK2_H_INCLUDED_2503171013 +#define PMDMSDK2_H_INCLUDED_2503171013 + +#include "pmddatadescription.h" +#include "pmdheader.h" + +#ifdef _WIN32 +# ifndef DLLSPEC +# define DLLSPEC __declspec(dllimport) +# endif +#else +# ifdef DLLSPEC +# undef DLLSPEC +# endif +# define DLLSPEC +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +// TYPES + +/// Handle for a camera connection. +///This handle is used for all subsequent operations. +/// +//typedef void* PMDHandle; +typedef unsigned PMDHandle; + +// FUNCTIONS + +ImageHeaderInformation *retriveHeader(); + +int pmdGetDistancesAsync(PMDHandle hnd, float *data, size_t maxLen); +int pmdGetAmplitudesAsync(PMDHandle hnd, float * data, size_t maxLen); +int pmdGetIntensitiesAsync(PMDHandle hnd, float * data, size_t maxLen); + + +/// Connect to a PMD camera or other data source +///\param hnd Empty PMDHandle structure. On success, this value +///will contain the handle for subsequent operations. +///\param rplugin Path of the camera plugin +///\param rparam Parameter for the camera plugin +///\param pplugin Path of the processing plugin. If this is NULL, no porcessing plugin will be loaded. +///\param pparam Parameter for the processing plugin +///\return PMD_OK on success, errorcode otherwise +/// +DLLSPEC int pmdOpen (PMDHandle * hnd, const char * rplugin, const char * rparam, const char * pplugin, const char * pparam); + +/// Connect to a PMD camera or other data source without processing +///\param hnd Empty PMDHandle structure. On success, this value +///will contain the handle for subsequent operations. +///\param rplugin Path of the camera plugin +///\param rparam Parameter for the camera plugin +///\return PMD_OK on success, errorcode otherwise +/// +DLLSPEC int pmdOpenSourcePlugin (PMDHandle * hnd, const char * rplugin, const char * rparam); + +/// Disconnect and close the handle. +/// \param hnd Handle of the connection. +/// \return PMD_OK on success, errorcode otherwise +/// +DLLSPEC int pmdClose (PMDHandle hnd); + +/// Get an error description from the last error. +/// Error messages are stored per handle. A new error associated with PMDHandle A +/// does not overwrite the last error message associated with PMDHandle B. +/// \param hnd Handle of the connection/plugin. +/// \param error Memory to hold the error message. +/// \param maxLen Maximum length of the error message, including the terminating zero byte. +/// Longer messages will be truncated. +DLLSPEC int pmdGetLastError (PMDHandle hnd, char * error, size_t maxLen); + +/// Retrieve the a new frame from the camera. +/// To obtain the actual data, use pmdGetSourceData, pmdGetDistances, +/// pmdGetAmplitudes etc. +/// \param hnd Handle of the connection. +/// \return PMD_OK on success, errorcode otherwise +/// +DLLSPEC int pmdUpdate (PMDHandle hnd); + +/// Set the integration time of the camera +/// \param hnd Handle of the connection. +/// \param idx Index of the integration time. +/// \param t Integration time in microseconds. +/// \return PMD_OK on success, errorcode otherwise +/// +DLLSPEC int pmdSetIntegrationTime (PMDHandle hnd, unsigned idx, unsigned t); + +/// Get the integration time of the camera +/// \param hnd Handle of the connection. +/// \param idx Index of the integration time. +/// \param t Pointer to a variable to contain the +/// integration time in microseconds. +/// \return PMD_OK on success, errorcode otherwise +/// +DLLSPEC int pmdGetIntegrationTime (PMDHandle hnd, unsigned * t, unsigned idx); + +/// Get a supported integration time of the camera +/// \param hnd Handle of the connection. +/// \param idx Index of the integration time. +/// \param t The desired integration time +/// \param w Where to look for a valid integration time in respect to the desired +/// integration time (CloseTo, AtLeast or AtMost) +/// \param responsible Pointer to a variable to contain the +/// integration time in microseconds. +/// \return PMD_OK on success, errorcode otherwise +/// +DLLSPEC int pmdGetValidIntegrationTime (PMDHandle hnd, unsigned * result, unsigned idx, Proximity w, unsigned t); + +/// Set the modulation frequency of the camera +/// \param hnd Handle of the connection. +/// \param idx Index of the modulation frequency. +/// \param f Modulation frequency in Hz. +/// \return PMD_OK on success, errorcode otherwise +/// +DLLSPEC int pmdSetModulationFrequency (PMDHandle hnd, unsigned idx, unsigned f); + +/// Get the modulation frequency of the camera +/// \param hnd Handle of the connection. +/// \param idx Index of the modulation frequency. +/// \param t Pointer to a variable to contain the +/// modulation frequency in Hz. +/// \return PMD_OK on success, errorcode otherwise +/// +DLLSPEC int pmdGetModulationFrequency (PMDHandle hnd, unsigned * f, unsigned idx); + +/// Get a supported modulation frequency of the camera +/// \param hnd Handle of the connection. +/// \param idx Index of the modulation frequency. +/// \param f The desired modulation frequency +/// \param w Where to look for a valid modulation frequency in respect to the desired +/// modulation frequency (CloseTo, AtLeast or AtMost) +/// \param result Pointer to a variable to contain the +/// modulation frequency in Hz. +/// \return PMD_OK on success, errorcode otherwise +/// +DLLSPEC int pmdGetValidModulationFrequency (PMDHandle hnd, unsigned * result, unsigned idx, Proximity w, unsigned f); + +/// Get the raw data from the current frame. +/// \param hnd Handle of the connection. +/// \param data Pointer to the memory to contain the address of the data. +/// \param maxLen Maximum length in bytes for the data +/// \return PMD_OK on success, errorcode otherwise +/// +DLLSPEC int pmdGetSourceData (PMDHandle hnd, void * data, size_t maxLen); + +/// Get the size in bytes of the current raw data frame. +/// \param hnd Handle of the connection. +/// \param size Will contain the size after the call +/// \return PMD_OK on success, errorcode otherwise +/// +DLLSPEC int pmdGetSourceDataSize (PMDHandle hnd, size_t * size); + +/// Get the description of the current raw data frame. +/// \param hnd Handle of the connection. +/// \param dd Will contain the PMDDataDescription after the call. +/// \return PMD_OK on success, errorcode otherwise +/// +DLLSPEC int pmdGetSourceDataDescription (PMDHandle hnd, struct PMDDataDescription * dd); + +/// Get the distance data from the current frame. +/// \param hnd Handle of the connection. +/// \param data Pointer to a block of memory to contain the data. +/// \return PMD_OK on success, errorcode otherwise +/// +DLLSPEC int pmdGetDistances (PMDHandle hnd, float * data, size_t maxLen); + +/// Get the amplitude data from the current frame. +/// \param hnd Handle of the connection. +/// \param data Pointer to a block of memory to contain the data. +/// \return PMD_OK on success, errorcode otherwise +/// +DLLSPEC int pmdGetAmplitudes (PMDHandle hnd, float * data, size_t maxLen); + +/// Get the intensity data from the current frame. +/// \param hnd Handle of the connection. +/// \param data Pointer to a block of memory to contain the data. +/// \return PMD_OK on success, errorcode otherwise +/// +DLLSPEC int pmdGetIntensities (PMDHandle hnd, float * data, size_t maxLen); + +/// Execute an source plugin-specific command. +/// \param hnd Handle of the connection. +/// \param result Pointer to a block of memory to contain the result string. +/// \param maxLen Maximum length of the result string, including terminating 0. +/// \param cmd The command to be executed. +/// +DLLSPEC int pmdSourceCommand (PMDHandle hnd, char * result, size_t maxLen, const char * cmd); + +/// Execute a processing plugin-specific command. +/// \param hnd Handle of the connection. +/// \param result Pointer to a block of memory to contain the result string. +/// \param maxLen Maximum length of the result string, including terminating 0. +/// \param cmd The command to be executed. +/// +DLLSPEC int pmdProcessingCommand (PMDHandle hnd, char * result, size_t maxLen, const char * cmd); + +// ADDITIONAL PROCESSING + +DLLSPEC int pmdOpenProcessingPlugin (PMDHandle * hnd, const char * pplugin, const char * pparam); + +DLLSPEC int pmdProcess (PMDHandle hnd, + unsigned numOut, struct PMDDataDescription * ddOut, void ** output, + unsigned numIn, struct PMDDataDescription * ddIn, void ** input); + +DLLSPEC int pmdCanProcess (PMDHandle hnd, unsigned * memNeeded, unsigned type, unsigned numFmt, struct PMDDataDescription * fmt); + +// SPECIAL FUNCTIONS +// additional header file? inline code? +DLLSPEC int pmdConnectFireWire (PMDHandle * hnd, unsigned index); +DLLSPEC int pmdConnectASample (PMDHandle * hnd, const char * address); + +#ifndef PMD_NO_DEPRECATED +// DEPRECATED +DLLSPEC int pmdConnect (PMDHandle * hnd, const char * rplugin, const char * rparam, const char * pplugin, const char * pparam); +DLLSPEC int pmdConnectOnlyRaw (PMDHandle * hnd, const char * rplugin, const char * rparam); +DLLSPEC int pmdDisconnect (PMDHandle hnd); +DLLSPEC int pmdOpenAccessPlugin (PMDHandle * hnd, const char * rplugin, const char * rparam); +DLLSPEC int pmdGetRawData (PMDHandle hnd, void * data, size_t maxLen); +DLLSPEC int pmdGetRawDataSize (PMDHandle hnd, size_t * size); +DLLSPEC int pmdGetRawDataDescription (PMDHandle hnd, struct PMDDataDescription * dd); +DLLSPEC int pmdPlatformCommand (PMDHandle hnd, char * result, size_t maxLen, const char * cmd); +DLLSPEC int pmdConfigureProcess (PMDHandle hnd, char * result, size_t maxLen, const char * cmd); +DLLSPEC int pmdGetInfo (PMDHandle hnd, char * result, size_t maxLen, const char * key); +#endif + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/.svn/pristine/a4/a4827ad1d548482758675a5a553e928deca8ecf9.svn-base b/.svn/pristine/a4/a4827ad1d548482758675a5a553e928deca8ecf9.svn-base new file mode 100644 index 0000000..d5903ea --- /dev/null +++ b/.svn/pristine/a4/a4827ad1d548482758675a5a553e928deca8ecf9.svn-base @@ -0,0 +1,73 @@ +#ifndef __HOUGH_PLANE_H__ +#define __HOUGH_PLANE_H__ + +#include "shapes/convexplane.h" +#include "shapes/ConfigFileHough.h" +//#include "wykobi/wykobi_algorithm.hpp" +#include "slam6d/point.h" +#include "slam6d/scan.h" +#include "shapes/accumulator.h" +#include "newmat/newmatio.h" +#include +using std::ofstream; +typedef vector vPtPair; ///< just a typedef: vPtPair = vector of type PtPair + +struct valuecompare { + bool operator()(int* ip1, int* ip2) const { + if(ip1[0] > ip2[0]) { + return true; + }else { + return false; + } + } +}; + +class Hough { + +public: + ofstream out; + ConfigFileHough myConfigFileHough; + Accumulator *acc; + + int nrEntries; + vector * allPoints; + bool maximum; + bool quiet; + Scan *PlaneScan; + Scan *PlaneScan2; + int planeCounter; + int scanCounter; + // TODO delete planes in Constructor + vector planes; + vector coloredPoints; + + Hough(bool quiet = true, std::string configFile = ""); // this constructor allows the Scan to be set later + Hough(Scan * GlobalScan, bool quiet = true, std::string configFile = "bin/hough.cfg" ); + void SetScan(Scan*); + ~Hough(); + int RHT(); + void SHT(); + void PHT(); + void PPHT(); + void APHT(); + + //vector& getPlanes(); + bool distanceOK(Point p1, Point p2, Point p3); + bool calculatePlane(Point p1, Point p2, Point p3, double &theta, double &phi, double &rho); + + double * const* deletePoints(vector &model, int &size); + double * const* getPoints(int &size); + int deletePoints(double * n, double rho); + int deletePointsQuad(double * n, double rho); + + int writePlanes(int startCount); + void writePlanes(std::string); + int cluster(vPtPair &pairs, double minx, double max, double miny, double maxy); + void writePlanePoints(std::string); + void writeAllPoints(int index, vector points); + +}; + +double calcPlane(vector &ppoint, double plane[4]); + +#endif diff --git a/.svn/pristine/a4/a4e9138349a3e3ae3292fc31559e55ca57567e4c.svn-base b/.svn/pristine/a4/a4e9138349a3e3ae3292fc31559e55ca57567e4c.svn-base new file mode 100644 index 0000000..ec3b8d4 --- /dev/null +++ b/.svn/pristine/a4/a4e9138349a3e3ae3292fc31559e55ca57567e4c.svn-base @@ -0,0 +1,45 @@ +#ifndef __VIEWPOINT_H_ +#define __VIEWPOINT_H_ + +#include +using std::vector; +#include +using std::pair; + +#include "grid/scanGrid.h" +#include +using std::string; + +/** + * The class manages a list of viewpoints from which the + * roboter has taken the scans. + * It provides methods for adding a new viewpoint, saving and loading the + * list. + * + * @author Sebastian Stock, Uwe Hebbelmann, Andre Schemschat + * @date 22.02.08 + */ +class viewpointinfo +{ + private: + /** Typedef for a viewpoint */ + typedef pair viewpoint; + + /** Internal vector for storing the viewpoints */ + vector viewpoints; + + /** The path where the file is created */ + string path; + + public: + /** @brief CTor */ + viewpointinfo(string path); + + /** @brief Adds the viewpoint information of a scanGrid */ + void addGrid(const scanGrid *grid); + + /** @brief Writes the internal list to file */ + void write(string filename); +}; + +#endif diff --git a/.svn/pristine/a5/a5da1b9ba33d28b2278fb64ed0cf43f36730535b.svn-base b/.svn/pristine/a5/a5da1b9ba33d28b2278fb64ed0cf43f36730535b.svn-base new file mode 100644 index 0000000..7ea8a96 --- /dev/null +++ b/.svn/pristine/a5/a5da1b9ba33d28b2278fb64ed0cf43f36730535b.svn-base @@ -0,0 +1,289 @@ +/* +This is a Optical-Character-Recognition program +Copyright (C) 2000-2009 Joerg Schulenburg + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + see README for EMAIL address +*/ + +#include +#include "unicode.h" +#include "output.h" +#include "pcx.h" +#include "gocr.h" /* extern job_t JOB; */ + +/* function is only for debugging and for developing + it prints out a part of pixmap b at point x0,y0 to stderr + using dots .,; if no pixel, and @xoO for pixels + modify n_run and print out what would happen on 2nd, 3th loop! + new: output original and copied pixmap in the same figure + */ +void out_b(struct box *px, pix *b, int x0, int y0, int dx, int dy, int cs ){ + int x,y,x2,y2,yy0,tx,ty,n1,i; + char c1, c2; + yy0=y0; + if (px) { /* overwrite rest of arguments */ + if (!b) { + b=px->p; + x0=px->x0; dx=px->x1-px->x0+1; + y0=px->y0; dy=px->y1-px->y0+1; yy0=y0; + } + if(cs==0) cs=JOB->cfg.cs; + fprintf(stderr,"\n# list box x= %4d %4d d= %3d %3d r= %3d %3d" + " nrun=%d p=%p", /* ToDo: r,nrun is obsolete */ + px->x0, px->y0, px->x1 - px->x0 + 1, px->y1 - px->y0 + 1, + px->x - px->x0, px->y - px->y0, JOB->tmp.n_run, (void*)px); + fprintf(stderr,"\n# dots=%d boxes=%d subboxes=%d c=%s mod=%s" + " line=%d m= %d %d %d %d", + px->dots, px->num_boxes, px->num_subboxes, + decode(px->c,ASCII), decode(px->modifier,ASCII), px->line, + px->m1 - px->y0, px->m2 - px->y0, px->m3 - px->y0, px->m4 - px->y0); + if (px->num_frames) { + int i,j,jo; + fprintf(stderr,"\n# frames= %d (sumvects=%d)",px->num_frames, + ((px->num_frames)?px->num_frame_vectors[px->num_frames-1]:-1)); + for (jo=j=i=0; inum_frames; i++, jo=j) { + fprintf(stderr,"\n# frame %d (%+4d,%3d,%2d) ", + i, px->frame_vol[i], px->frame_per[i], + px->num_frame_vectors[i]-jo); + /* print only the first vectors of each frame */ + for (;jnum_frame_vectors[i] && jframe_vector[j][0] - px->x0, + px->frame_vector[j][1] - px->y0); + } + } + if (px->num_ac){ /* output table of chars and its probabilities */ + fprintf(stderr,"\n# list box char: "); + for(i=0;inum_ac && itas[i]) + fprintf(stderr," %s(%d)", px->tas[i] ,px->wac[i]); + else + fprintf(stderr," %s(%d)",decode(px->tac[i],ASCII),px->wac[i]); + } + fprintf(stderr,"\n"); + if (px->m2 && px->m1dots || y0>px->m2)) { + yy0=px->m1; dy=px->y1-yy0+1; + } + } + tx=dx/80+1; + ty=dy/40+1; /* step, usually 1, but greater on large maps */ + fprintf(stderr,"# list pattern x= %4d %4d d= %3d %3d t= %d %d yy0= %d\n", + x0,y0,dx,dy,tx,ty,yy0); + if (dx>0) + for(y=yy0;yp,x2-x0+px->x0, + y2-y0+px->y0)num_frames) { /* mark vectors */ + int i; + if (c1!='$' && c1!='S') /* dont mark twice */ + for (i=0;inum_frame_vectors[px->num_frames-1];i++) + if ((px->frame_vector[i][0]-px->x0)/tx==(x-x0)/tx + && (px->frame_vector[i][1]-px->y0)/ty==(y-y0)/ty) + { c1=((c1=='@')?'$':'S'); break; } + } + fprintf(stderr,"%c", c1 ); + } + + /* 2nd image is the boxframe in the original bitmap */ + if (dx<40) fprintf(stderr," "); + if (dx<40) /* do it only, if we have enough place */ + for(x=x0;xy0==px->m1 || y-y0+px->y0==px->m2 + || y-y0+px->y0==px->m3 || y-y0+px->y0==px->m4) c1='<'; + if (y==y0 || y==yy0+dy-1) c2='-'; /* boxmarks */ + + fprintf(stderr,"%c%c\n",c1,c2); + } +} + +/* same as out_b, but for faster use, only a box as argument + */ +void out_x(struct box *px) { + out_b(px,NULL,0, 0, 0, 0, JOB->cfg.cs); +} + + +/* print out two boxes side by side, for debugging comparision algos */ +void out_x2(struct box *box1, struct box *box2){ + int x,y,i,tx,ty,dy; + /*FIXME jb static*/static char *c1="OXXXXxx@.,,,,,,,"; + pix *b=&JOB->src.p; + dy=(box1->y1-box1->y0+1); + if(dyy1-box2->y0+1)dy=box2->y1-box2->y0+1; + tx=(box1->x1-box1->x0)/40+1; + ty=(box1->y1-box1->y0)/40+1; /* step, usually 1, but greater on large maps */ + if(box2)fprintf(stderr,"\n# list 2 patterns"); + for(i=0;iy0+i; + for(x=box1->x0;x<=box1->x1;x+=tx) + fprintf(stderr,"%c", c1[ ((getpixel(b,x,y)cfg.cs)?0:8)+marked(b,x,y) ] ); + if(!box2) continue; + fprintf(stderr," "); y=box2->y0+i; + for(x=box2->x0;x<=box2->x1;x+=tx) + fprintf(stderr,"%c", c1[ ((getpixel(b,x,y)cfg.cs)?0:8)+marked(b,x,y) ] ); + } +} + + +/* ---- list output ---- for debugging --- + * list all boxes where the results can be found within the c-option + */ +int output_list(job_t *job) { + int i = 0, j; + struct box *box2; + pix *pp = &job->src.p; + char *lc = job->cfg.lc; + + fprintf(stderr,"\n# list shape for charlist %s",lc); + for_each_data(&(JOB->res.boxlist)) { + box2 = (struct box *) list_get_current(&(JOB->res.boxlist)); + for (j=0; jnum_ac; j++) + if (!lc || (box2->tac[j] && strchr(lc, box2->tac[j])) + || (box2->tas[j] && strstr(lc, box2->tas[j]))) break; + if (jnum_ac) + fprintf(stderr,"\n# box found in charlist"); + if (!lc || (strchr(lc, box2->c) && box2->c < 256 && box2->c) + || (strchr(lc, '_') && box2->c==UNKNOWN) /* for compability */ + || jnum_ac ){ /* also list alternative chars */ + if (!pp) pp=box2->p; + fprintf(stderr, + "\n# list shape %3d x=%4d %4d d= %3d %3d vf=%d ac=%d %04x %s", + i, box2->x0, box2->y0, + box2->x1 - box2->x0 + 1, + box2->y1 - box2->y0 + 1, + box2->num_frames, box2->num_ac, + (int)box2->c, /* wchar_t -> char ???? */ + decode(box2->c,ASCII) ); + if (JOB->cfg.verbose & 4) out_x(box2); + } + i++; + } end_for_each(&(JOB->res.boxlist)); + fprintf(stderr,"\n"); + return 0; +} + +/* --- output of image incl. corored lines usefull for developers --- + * debugging + * bit 0+1 is used for color coding (optical marker) + * color/gray: 0x01=red, 0x02=blue, 0x04=green??? + * opt: 1 - mark unknown boxes red (first pass) + * 2 - mark unknown boxes more red (final pass) + * 4 - mark lines blue + * 8 - reset coloring (remove old marker) + */ +int debug_img(char *fname, struct job_s *job, int opt) { + struct box *box2; + int x, y, ic, dx, i, j, col; + unsigned char *np; + pix *pp = &job->tmp.ppo; + + if ( opt & 8 ) { /* clear debug bits in image */ + for(y=0;yy;y++) { + np=&pp->p[(pp->x)*y]; + for(x=0;xx;x++) { + *np = *np & 0xF1; + np++; + } + } + } + + /* mark longest line which was used to estimate the rotation angle */ + if ((job->cfg.verbose&32) && job->res.lines.dx) + for(i=0;ix;i++) { + y=pp->y/2; + if (job->res.lines.dx) y+=job->res.lines.dy*i/job->res.lines.dx; + x=i; + if (x<0 || x>=pp->x || y<0 || y>=pp->y) continue; + np=&pp->p[x + (pp->x)*y]; + if (*np<160) continue; + if((x&7)<5 && !(x&1)) /* dotted line */ + put(pp,x,y,255,8); + } + + ic = ((opt & 2) ? 1 : 2); /* obsolete */ + for_each_data(&(job->res.boxlist)) { + box2 = (struct box *) list_get_current(&(job->res.boxlist)); + /* mark boxes in 32=0x40=blue */ + if (box2->c == ' ' || box2->c == '\n') continue; + /* mark chars with green left and under line */ + col = 4; /* green */ + if (box2->c == UNKNOWN && (opt & 3)) col=2; /* red */ + if (box2->x0>1) + for (y = box2->y0; y <= box2->y1; y++) { + np=&pp->p[box2->x0-1 + y * pp->x]; if (*np<160) continue; *np|=col; } + if (box2->y1+1y) + for (x = box2->x0; x <= box2->x1; x++) { + np=&pp->p[x + (box2->y1+1) * pp->x]; if (*np<160) continue; *np|=col; } + /* mark pictures by green cross */ + if (box2->c == PICTURE) + for (x = 0; x < box2->x1-box2->x0+1; x++){ + y=(box2->y1-box2->y0+1)*x/(box2->x1-box2->x0+1); + pp->p[(box2->x0+x) + (box2->y0+y) * pp->x] |= 4; + pp->p[(box2->x1-x) + (box2->y0+y) * pp->x] |= 4; + } + } end_for_each(&(job->res.boxlist)); + + if( opt & 4 ) + { + struct tlines *lines = &job->res.lines; + int yr; + if (job->cfg.verbose) + fprintf(stderr, "# mark lines for %s.ppm\n", fname); + /* or read from outside??? */ + for (i = 0; i < lines->num; i++) { /* mark lines by 0x08 = blue */ + dx = lines->x1[i] - lines->x0[i] + 1; + for (j = -1; j < dx+1; j++) { + x = lines->x0[i] + j; + if (x<0 || x>=pp->x) continue; + for (y=lines->m1[i];y<=lines->m4[i];y++) { + /* box arround m2-m3 */ + if (y>=lines->m2[i] && y<=lines->m3[i] && j>-1 && jdx) yr += lines->dy * x / (lines->dx); + if (yr<0 || yr>=pp->y) continue; + np = &(pp->p[x + (pp->x)*yr]); + if (*np<160) continue; /* do not touch dark pixels */ + if ((*np&6)!=0) continue; /* only change white pixels */ + put(pp, x, yr, 255, 6); /* UPN: 255 and 6 or */ + } + } + } + } + + if (job->cfg.verbose&1) + fprintf(stderr,"# writing %s.ppm\n", fname); + writeppm(fname, pp); + return 0; +} diff --git a/.svn/pristine/a6/a6a7bbefb3eb454964143b7318497046966077c1.svn-base b/.svn/pristine/a6/a6a7bbefb3eb454964143b7318497046966077c1.svn-base new file mode 100644 index 0000000..1b02d35 --- /dev/null +++ b/.svn/pristine/a6/a6a7bbefb3eb454964143b7318497046966077c1.svn-base @@ -0,0 +1,52 @@ +/** + * @file + * @brief + * + * @author Thomas Escher + */ + +#ifndef TEMPORARY_HANDLER_H +#define TEMPORARY_HANDLER_H + +#include "scanserver/cache/cacheHandler.h" +#include "scanserver/sharedScan.h" +#include "scanserver/cacheIO.h" + + + +/** + * @brief CacheHandler for artificially created CacheObjects by reduction in SharedScan. + * + * This handler saves and loads the contents of a CacheObject with arbitrary contents via CacheIO. + */ +class TemporaryHandler : public CacheHandler +{ +public: + /** + * Constructor + * @param static_data determines overwriting policy. Set false for changing data, true for static write-only-once data. + */ + TemporaryHandler(CacheObject* obj, CacheManager* cm, SharedScan* scan, bool static_data = false); + + /** + * Deserialize data from a file if it exists and written flag is set, otherwise does nothing + * @return whether written flag was set and file was found and loaded + */ + virtual bool load(); + + /** + * Serialize all data into a file + * It will do so if either the written flag isn't set, or static data flag isn't set regardless of the written flag. + */ + virtual void save(unsigned char* data, unsigned int size); + + //! Reset flag for having a cached file, causing reads to fail and saves to overwrite older files. + virtual void invalidate() { m_written = false; } +protected: + SharedScan* m_scan; +private: + CacheIO::IDType m_id; + bool m_written, m_static_data; +}; + +#endif //TEMPORARY_HANDLER_H diff --git a/.svn/pristine/a6/a6bf209af3e1068ae7292e72da7a79425885517f.svn-base b/.svn/pristine/a6/a6bf209af3e1068ae7292e72da7a79425885517f.svn-base new file mode 100644 index 0000000..b8c6a4d --- /dev/null +++ b/.svn/pristine/a6/a6bf209af3e1068ae7292e72da7a79425885517f.svn-base @@ -0,0 +1,175 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: optvalue.h +// Purpose: An string option & value pair class +// Author: John Labenski +// Created: 07/01/02 +// Copyright: John Labenski, 2002 +// License: wxWidgets v2 +///////////////////////////////////////////////////////////////////////////// + +#ifndef __WXOPTIONVALUE_H__ +#define __WXOPTIONVALUE_H__ + +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) + #pragma interface "optvalue.h" +#endif + +#include "wx/things/thingdef.h" +class WXDLLIMPEXP_THINGS wxOptionValue; + +#include "wx/dynarray.h" +WX_DECLARE_OBJARRAY_WITH_DECL(wxOptionValue, wxArrayOptionValue, class WXDLLIMPEXP_THINGS); + +//---------------------------------------------------------------------------- +// Global wxString utilities +//---------------------------------------------------------------------------- + +//extern wxArrayString wxStringToWords( const wxString &string ); + +//---------------------------------------------------------------------------- +// wxOptionValue - a ref counted wxString key, wxString value container +//---------------------------------------------------------------------------- + +class WXDLLIMPEXP_THINGS wxOptionValue : public wxObject +{ +public: + wxOptionValue(bool create = true) : wxObject() { if (create) Create(); } + wxOptionValue( const wxOptionValue &optValue ) : wxObject() { Create(optValue); } + wxOptionValue( const wxString &str ) : wxObject() { Create(str); } + + // (Re)Create as an empty container + bool Create(); + // Ref the other wxOptionValue + bool Create( const wxOptionValue &optValue ); + // Create from a string with this structure + // [type] # optional + // key = value + bool Create( const wxString &string ); + + // Make a true copy of the source wxOptionValue (not refed) + bool Copy( const wxOptionValue &source ); + + // Is there any ref data + bool Ok() const; + // Unref the data + void Destroy(); + + //------------------------------------------------------------------------- + + // Get/Set the "type", which can mean whatever you want + wxString GetType() const; + void SetType( const wxString &type ); + + //------------------------------------------------------------------------- + + // does this have a wxOptionValueArray filled with children + size_t GetChildrenCount() const; + wxArrayOptionValue *GetChildren() const; + + bool AddChild( const wxOptionValue& child ); + void DeleteChildren(); + + //------------------------------------------------------------------------- + + // Get the number of different option name/value combinations + size_t GetOptionCount() const; + // Access the arrays themselves + wxArrayString GetOptionNames() const; + wxArrayString GetOptionValues() const; + // Get a specific option name or value + wxString GetOptionName( size_t n ) const; + wxString GetOptionValue( size_t n ) const; + + // returns the index of the option >= 0 or -1 (wxNOT_FOUND) if not found + int HasOption(const wxString &name) const; + // Search through the option names for this part returning the first match + int FindOption(const wxString &part_of_option_name) const; + // delete this option, returns sucess + bool DeleteOption(const wxString &name); + bool DeleteOption( size_t n ); + + // Option functions (arbitrary name/value mapping) + void SetOption(const wxString& name, const wxString& value, bool force=true ); + void SetOption(const wxString& name, int value, bool force=true ) { SetOption(name, wxString::Format(wxT("%d"), value), force); } + void SetOption(const wxString& name, double value, bool force=true ) { SetOption(name, wxString::Format(wxT("%lf"), value), force); } + + // printf style for numeric values SetOption("Name", true, "%d %f", 2, 2.5) + void SetOption(const wxString& name, bool update, const wxChar* format, ...); + + void SetOption(const wxString& name, int v1, int v2, int v3, bool force=true ) { SetOption(name, wxString::Format(wxT("%d %d %d"), v1, v2, v3), force); } + void SetOption(const wxString& name, double v1, double v2, double v3, bool force=true ) { SetOption(name, wxString::Format(wxT("%lf %lf %lf"), v1, v2, v3), force); } + void SetOption(const wxString& name, int *v, int count, bool force=true ) { if(v) { wxString s; for (int i=0; i < 1415161718191A1B1C1D1E1F1F202122232425262728292A2A2B2C2D2E2F30313233343536363738 393A3B3C3D3E3F40414142434445464748494A4B4C4D4D4E4F50515253545556575858595A5B5C5D 5E5F60616263646465666768696A6B6C6D6E6F6F707172737475767778797A7B7B7C7D7E7F808182 83848586868788898A8B8C8D8E8F90919292939495969798999A9B9C9D9D9E9FA0A1A2A3A4A5A6A7 A8A9A9AAABACADAEAFB0B1B2B3B4B4B5B6B7B8B9BABBBCBDBEBFC0C0C1C2C3C4C5C6C7C8C9CACBCB CCCDCECFD0D1D2D3D4D5D6D7D7D8D9DADBDCDDDEDFE0E1E2E2E3E4E5E6E7E8E9EAEBECEDEEEEEFF0 F1F2F3F4F5F6F7F8F9F9FAFBFCFDFEFF > < ABAAAAA9A8A7A7A6A5A5A4A3A3A2A1A1A09F9F9E9D9D9C9B9B9A9999989797969595949393929191 908F8F8E8D8D8C8B8B8A8989888787868585848383828181807F7F7E7D7D7C7B7B7A797978777776 7575747373727171706F6F6E6D6D6C6B6B6A6969686767666565646362626160605F5E5E5D5C5C5B 5A5A5958585756565554545352525150504F4E4E4D4C4C4B4A4A4948484746464544444342424140 403F3E3E3D3C3C3B3A3A3938383736363534343332323130302F2E2E2D2C2C2B2A2A292828272626 25242423222121201F1F1E1D1D1C1B1B1A1919181717161515141313121111100F0F0E0D0D0C0B0B 0A090908070706050504030302010100 > 0 1 %_Br [ 0 0.08 0.67 0 1 50 14 %_Bs 1 1 0 0 1 50 100 %_Bs BD %AI5_EndGradient %AI5_BeginGradient: (Rot & Gelb) (Rot & Gelb) 0 2 Bd [ 0 < 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627 28292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F 505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F7071727374757677 78797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7 C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF > < FFFFFEFEFDFDFDFCFCFBFBFBFAFAF9F9F9F8F8F7F7F7F6F6F5F5F5F4F4F3F3F3F2F2F1F1F1F0F0EF EFEFEEEEEDEDEDECECEBEBEBEAEAE9E9E9E8E8E7E7E7E6E6E5E5E5E4E4E3E3E3E2E2E1E1E1E0E0DF DFDFDEDEDDDDDDDCDCDBDBDBDADAD9D9D9D8D8D7D7D7D6D6D5D5D5D4D4D3D3D3D2D2D1D1D1D0D0CF CFCFCECECDCDCDCCCCCBCBCBCACAC9C9C9C8C8C7C7C7C6C6C5C5C5C4C4C3C3C3C2C2C1C1C1C0C0BF BFBFBEBEBDBDBDBCBCBBBBBBBABAB9B9B9B8B8B7B7B7B6B6B5B5B5B4B4B3B3B3B2B2B1B1B1B0B0AF AFAFAEAEADADADACACABABABAAAAA9A9A9A8A8A7A7A7A6A6A5A5A5A4A4A3A3A3A2A2A1A1A1A0A09F 9F9F9E9E9D9D9D9C9C9B9B9B9A9A9999 > 0 1 %_Br [ 0 1 0.6 0 1 50 100 %_Bs 0 0 1 0 1 50 0 %_Bs BD %AI5_EndGradient %AI5_BeginGradient: (Schwarz & Wei\247) (Schwarz & Wei\247) 0 2 Bd [ < FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8 D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0 AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A999897969594939291908F8E8D8C8B8A8988 87868584838281807F7E7D7C7B7A797877767574737271706F6E6D6C6B6A69686766656463626160 5F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A3938 37363534333231302F2E2D2C2B2A292827262524232221201F1E1D1C1B1A19181716151413121110 0F0E0D0C0B0A09080706050403020100 > 0 %_Br [ 0 0 50 100 %_Bs 1 0 50 0 %_Bs BD %AI5_EndGradient %AI5_End_NonPrinting-- %AI5_BeginPalette 0 0 Pb Pn Pc 1 g Pc 0 g Pc 0 0 0 0 k Pc 0.75 g Pc 0.5 g Pc 0.25 g Pc 0 g Pc Bb 2 (Schwarz & Wei\247) -4014 4716 0 0 1 0 0 1 0 0 Bg 0 BB Pc 0.25 0 0 0 k Pc 0.5 0 0 0 k Pc 0.75 0 0 0 k Pc 1 0 0 0 k Pc 0.25 0.25 0 0 k Pc 0.5 0.5 0 0 k Pc 0.75 0.75 0 0 k Pc 1 1 0 0 k Pc Bb 2 (Rot & Gelb) -4014 4716 0 0 1 0 0 1 0 0 Bg 0 BB Pc 0 0.25 0 0 k Pc 0 0.5 0 0 k Pc 0 0.75 0 0 k Pc 0 1 0 0 k Pc 0 0.25 0.25 0 k Pc 0 0.5 0.5 0 k Pc 0 0.75 0.75 0 k Pc 0 1 1 0 k Pc Bb 0 0 0 0 Bh 2 (Gelb & Blau Kreis) -4014 4716 0 0 1 0 0 1 0 0 Bg 0 BB Pc 0 0 0.25 0 k Pc 0 0 0.5 0 k Pc 0 0 0.75 0 k Pc 0 0 1 0 k Pc 0.25 0 0.25 0 k Pc 0.5 0 0.5 0 k Pc 0.75 0 0.75 0 k Pc 1 0 1 0 k Pc (Gelbe Streifen) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p Pc 0.25 0.125 0 0 k Pc 0.5 0.25 0 0 k Pc 0.75 0.375 0 0 k Pc 1 0.5 0 0 k Pc 0.125 0.25 0 0 k Pc 0.25 0.5 0 0 k Pc 0.375 0.75 0 0 k Pc 0.5 1 0 0 k Pc 0 0 0 0 k Pc 0 0.25 0.125 0 k Pc 0 0.5 0.25 0 k Pc 0 0.75 0.375 0 k Pc 0 1 0.5 0 k Pc 0 0.125 0.25 0 k Pc 0 0.25 0.5 0 k Pc 0 0.375 0.75 0 k Pc 0 0.5 1 0 k Pc 0 0 0 0 k Pc 0.125 0 0.25 0 k Pc 0.25 0 0.5 0 k Pc 0.375 0 0.75 0 k Pc 0.5 0 1 0 k Pc 0.25 0 0.125 0 k Pc 0.5 0 0.25 0 k Pc 0.75 0 0.375 0 k Pc 1 0 0.5 0 k Pc 0 0 0 0 k Pc 0.25 0.125 0.125 0 k Pc 0.5 0.25 0.25 0 k Pc 0.75 0.375 0.375 0 k Pc 1 0.5 0.5 0 k Pc 0.25 0.25 0.125 0 k Pc 0.5 0.5 0.25 0 k Pc 0.75 0.75 0.375 0 k Pc 1 1 0.5 0 k Pc 0 0 0 0 k Pc 0.125 0.25 0.125 0 k Pc 0.25 0.5 0.25 0 k Pc 0.375 0.75 0.375 0 k Pc 0.5 1 0.5 0 k Pc 0.125 0.25 0.25 0 k Pc 0.25 0.5 0.5 0 k Pc 0.375 0.75 0.75 0 k Pc 0.5 1 1 0 k Pc 0 0 0 0 k Pc 0.125 0.125 0.25 0 k Pc 0.25 0.25 0.5 0 k Pc 0.375 0.375 0.75 0 k Pc 0.5 0.5 1 0 k Pc 0.25 0.125 0.25 0 k Pc 0.5 0.25 0.5 0 k Pc 0.75 0.375 0.75 0 k Pc 1 0.5 1 0 k Pc PB %AI5_EndPalette %%EndSetup %AI5_BeginLayer 1 1 1 1 0 0 0 79 128 255 Lb (Ebene 1) Ln 0 A u 0 R 0.1 1 0.65 0.25 (Uni-Rot) 0 X 800 Ar 0 J 0 j 1.25 w 4 M []0 d %AI3_Note: 0 D 309.055 766.6802 m 307.8645 766.6802 306.8995 767.6352 306.8995 768.8137 c 306.8995 769.9922 307.8645 770.9472 309.055 770.9472 c 310.245 770.9472 311.209 769.9922 311.209 768.8137 c 311.209 767.6352 310.245 766.6802 309.055 766.6802 c s 309.055 768.8137 m S U 1.9275 w 296.827 709.6168 m 296.827 739.1663 l 271.939 726.1493 l 271.939 696.1958 l 308.9725 676.8078 l 346.004 696.1958 l 346.004 726.1493 l 321.1105 739.1663 l 321.1105 709.6168 l 308.9725 703.1813 l 296.827 709.6168 l s 308.9725 755.2763 m S 271.935 768.2653 m 271.935 730.0718 L 296.833 743.1663 L 296.833 767.7433 L S 320.9975 767.7447 m 346.103 767.7447 l 331.3365 775.6923 l 286.415 775.6923 l 271.697 767.7447 l 296.8025 767.7447 l S 346.009 768.2653 m 346.009 730.0718 L 321.1105 743.0942 L 321.1105 767.7433 L S 296.833 767.6443 m 296.833 743.1893 l 302.9885 746.3872 l 302.9885 757.7682 l 302.9885 761.0377 305.668 763.6893 308.9725 763.6893 c 312.276 763.6893 314.9545 761.0377 314.9545 757.7682 c 314.9375 746.3153 l 321.1105 743.0812 l 321.1185 767.6213 l 308.9725 773.9667 l 296.833 767.6443 l s u 0 O 0 g 2 J 1 w 2 M 112.8625 723.2673 m 114.9125 723.0173 116.5625 723.7673 118.4125 723.0173 C 117.7625 722.3672 116.1625 722.5673 116.4625 721.1172 C 116.5625 706.0673 L 116.8625 704.8672 117.7125 703.7173 118.8625 703.0673 C 120.8625 702.2673 123.2625 702.0173 125.1625 703.2673 C 126.7125 704.2673 127.4625 705.8173 127.4125 707.5673 C 127.4125 721.8672 L 127.4625 723.2173 124.8625 722.0173 125.9625 723.3672 C 127.4625 723.2673 129.1125 723.5673 130.4625 723.1172 C 130.1125 722.3672 128.4625 722.8672 128.5625 721.5673 C 128.4125 706.7673 L 128.1125 705.1672 127.5125 703.4673 125.8625 702.6172 C 123.0625 701.0673 118.8125 701.0173 116.2625 703.0673 C 114.8125 704.2673 114.4625 705.9172 114.3125 707.6672 C 114.3125 721.7673 L 114.3625 723.0673 111.8625 722.0673 112.8625 723.2673 C f 131.4625 723.3672 m 132.4625 723.5673 133.6125 723.4172 134.6625 723.4673 C 138.8125 718.0173 142.4125 712.3672 146.5125 706.8672 C 146.7125 707.2173 L 146.7125 722.2173 L 146.5125 723.3173 144.7625 722.3672 145.0125 723.4673 C 146.5125 723.6172 148.2625 723.7173 149.6625 723.3672 C 149.4125 722.5673 147.8125 723.1672 147.9625 721.8672 C 147.7125 702.0173 L 146.2125 701.0673 146.8625 703.3173 146.0625 703.8173 C 142.3125 709.0673 138.7625 714.4673 134.8625 719.5173 C 134.5125 714.1672 134.5125 708.5173 134.8625 703.0673 C 135.2125 702.2173 136.4125 702.8672 136.4625 702.0173 C 134.9625 701.8672 133.3125 701.8672 131.8125 702.0173 C 131.9625 702.8173 133.5125 702.2673 133.6125 703.3672 C 133.6125 721.4172 L 133.1125 722.2173 132.3125 722.7673 131.4625 723.0173 C 131.4625 723.3672 L f 153.2625 703.2673 m 153.3625 721.8672 L 153.5125 723.2673 150.1125 722.4172 152.1125 723.4673 C 155.7125 723.4172 158.9625 723.5673 162.5125 723.3672 C 162.4625 722.6172 161.2625 723.0173 161.0625 722.2173 C 162.5125 716.4172 164.7625 710.8672 166.8125 705.3173 C 167.2625 705.7673 L 172.7625 721.8672 L 172.7125 722.2173 172.5125 722.5673 172.2125 722.8173 C 171.7625 722.7173 171.4125 722.8672 171.1125 723.1172 C 171.2125 723.4673 L 187.5625 723.4673 L 187.8125 722.5173 188.7125 721.5673 188.2625 720.6672 C 186.7125 723.5173 183.0625 722.6672 180.2125 722.6672 C 179.5625 721.8672 L 179.4625 715.1172 L 180.6625 714.1172 182.5125 715.1672 184.0625 714.6672 C 184.2625 714.5673 184.4125 714.2673 184.1625 714.1172 C 182.7625 713.4673 180.5625 714.5173 179.5625 713.2173 C 179.4625 703.7173 L 179.5125 703.2173 180.1125 702.8672 180.5625 702.8173 C 183.4125 703.2173 187.4125 701.6172 188.7125 705.0673 C 189.2625 705.0673 L 189.0125 703.9673 188.7125 702.9172 188.0125 702.0173 C 183.8625 702.0673 179.6625 701.9172 175.6125 702.1172 C 175.6625 703.2673 177.5125 702.1672 177.4125 703.6172 C 177.3125 722.4673 L 176.6125 722.9172 175.6625 723.0173 174.8125 722.8173 C 173.8125 721.6672 L 166.9125 702.0173 L 166.7125 701.7673 166.4625 701.6172 166.1125 701.6672 C 165.5625 702.4673 L 158.8125 721.8672 L 158.2125 722.8173 156.9125 722.9172 155.8625 722.6672 C 155.4125 722.1172 L 155.4125 703.2673 L 155.5625 702.5173 156.5125 702.6172 157.1125 702.4673 C 157.1125 702.0173 L 155.2625 701.9172 152.9625 701.6672 151.3625 702.2673 C 151.8625 702.9172 153.0125 702.2673 153.2625 703.2673 C f 191.4125 703.3672 m 191.5125 720.6672 L 191.5625 721.6172 190.1625 720.9673 190.2625 721.8672 C 193.7125 723.9172 198.4125 724.5673 202.0125 722.4673 C 203.6125 721.0673 204.1625 719.0673 203.7125 716.9172 C 203.3625 715.5173 202.3125 713.9673 200.8625 713.4172 C 198.1625 712.6172 L 204.7125 703.3672 L 205.2125 702.4673 206.4125 702.9172 206.8625 702.1172 C 205.7625 701.7673 204.3125 701.9172 203.1625 702.0173 C 200.5625 705.7673 197.5625 709.2673 195.4625 713.2173 C 197.7625 713.4172 200.2125 713.8672 201.3625 716.1172 C 201.9125 717.6672 201.8125 719.7173 201.0125 721.1172 C 199.9125 722.4172 198.5125 723.0673 196.8125 722.9172 C 195.9125 722.8173 194.9625 722.7173 194.2125 722.1172 C 193.6625 721.1172 L 193.4625 703.7173 L 193.5125 703.1672 193.9125 702.7173 194.4625 702.6172 C 194.8625 702.6672 195.1125 702.4673 195.4625 702.3672 C 195.4625 702.0173 L 193.5625 701.9172 191.4125 701.7673 189.6125 702.1172 C 189.8625 702.9172 191.2625 702.3672 191.4125 703.3672 C f 206.8625 706.2173 m 208.0125 704.7173 209.4625 703.1172 211.3625 702.7173 C 213.0125 702.3672 214.6625 702.7173 215.9125 703.7173 C 216.9625 704.8173 217.4125 706.1672 217.2625 707.7673 C 215.7125 712.5173 210.0625 713.1672 207.6625 717.2673 C 207.0625 718.8672 207.2625 720.9172 208.3125 722.2173 C 210.3625 724.6172 213.9125 723.8173 216.5625 723.3672 C 217.0125 723.3672 217.3125 724.0673 217.7125 723.8173 C 217.9125 722.4673 218.7625 721.1172 218.2625 719.7673 C 217.1125 720.9673 216.0125 722.5173 214.3125 722.9172 C 212.9125 723.1172 211.2625 723.1672 210.2625 722.0173 C 209.1625 721.1672 209.1125 719.7673 209.3625 718.5173 C 212.1125 714.0673 220.9625 712.7173 219.0625 705.8672 C 218.5125 703.8173 216.5125 702.1672 214.4125 701.8173 C 212.3125 701.3173 210.4625 702.1672 208.4625 702.3672 C 208.0125 702.2173 208.0125 701.3173 207.4125 701.8173 C 207.1125 703.2173 206.6625 704.5173 206.5125 705.9673 C 206.8625 706.2173 L f 221.7625 703.6172 m 221.7625 722.4673 L 221.5125 723.3173 219.3625 722.5173 220.4125 723.5673 C 222.1625 723.6672 224.4625 723.9172 225.8125 723.3672 C 225.3625 722.7673 224.0625 723.2173 223.9125 722.1172 C 223.7625 716.1672 223.7625 708.9673 223.9125 703.1672 C 224.3125 702.6172 225.0625 702.7673 225.6125 702.6172 C 225.7125 701.9172 224.9125 702.0673 224.4625 702.0173 C 222.9625 702.1172 221.3125 701.8173 219.9625 702.2673 C 220.2125 703.0673 221.6625 702.4673 221.7625 703.6172 C f 227.5125 723.7173 m 241.8625 723.4673 L 242.1625 722.3672 242.9125 721.3173 242.7625 720.2173 C 241.9125 720.3672 241.8625 721.4172 241.0625 721.8672 C 239.9625 723.2173 238.0625 722.6672 236.4125 722.8173 C 235.5125 721.8672 L 235.5125 715.6672 235.1125 709.2673 235.4125 703.1672 C 235.8125 702.4673 237.5125 703.1672 237.0125 702.1172 C 235.0625 702.1672 233.1125 702.0673 231.2625 702.2673 C 231.4625 703.2673 233.5125 702.4673 233.2625 704.0673 C 233.4125 722.1172 L 232.4125 723.1672 230.4625 723.0173 229.1125 722.6672 C 227.8625 722.5173 227.2625 721.1672 226.5125 720.3173 C 226.0625 720.5173 L 226.3625 721.6672 226.7125 722.8672 227.5125 723.7173 C f 239.0125 702.7173 m 240.0625 703.7173 L 242.3125 710.3672 244.5625 717.0173 246.8125 723.7173 C 247.5625 723.7673 247.5125 722.8672 247.8125 722.4673 C 253.6125 703.2673 L 253.9625 702.3672 255.1625 702.7673 255.2625 702.0173 C 253.5625 701.8672 251.3625 701.8672 249.5125 702.0173 C 249.5125 702.4673 L 250.1125 702.7173 250.9625 702.4172 251.2125 703.1672 C 251.1125 705.3672 250.2125 707.2673 249.5125 709.2673 C 248.8625 709.7173 L 246.8625 709.7173 245.1625 709.7173 243.3125 709.7173 C 241.8625 707.8173 241.5625 705.4172 240.9625 703.1672 C 241.1625 702.5673 242.0625 702.7673 242.2125 702.2673 C 241.7625 701.9172 L 238.2625 702.1172 L 238.0625 702.6672 238.7625 702.5173 239.0125 702.7173 C f 244.0125 726.8672 m 244.6125 726.8173 245.4625 726.7173 245.5625 725.9673 C 245.7125 725.1672 245.4625 724.3672 244.6625 724.1672 C 243.9125 724.0173 243.0625 724.2673 242.8625 725.0673 C 242.6625 725.9172 243.2125 726.7173 244.0125 726.8672 C f 1 g 246.2625 719.5173 m 247.3625 716.8173 248.1125 713.7173 249.0625 710.8173 C 248.7125 710.6172 L 243.4125 710.7173 L 246.2625 719.5173 L f 0 g 249.2125 726.8672 m 250.0625 727.0673 250.8625 726.4673 251.0125 725.7173 C 250.9625 725.1172 250.7125 724.4172 250.1125 724.1672 C 249.3625 724.0673 248.6125 724.2173 248.2625 724.9172 C 247.9125 725.7173 248.4125 726.6172 249.2125 726.8672 C f 253.0125 723.5673 m 267.2625 723.4673 L 267.8125 722.4172 268.3125 721.2173 268.2625 720.0673 C 267.2625 720.5173 266.9125 722.1172 265.6625 722.4673 C 264.2625 722.5673 261.8125 723.3672 261.0625 721.7673 C 260.8125 703.3672 L 261.0125 702.3672 263.3125 703.0173 262.4125 702.0173 C 256.9625 702.0173 L 256.6125 702.3672 L 257.1125 703.0673 258.4125 702.3672 258.6625 703.5173 C 259.0125 721.6672 L 258.9625 722.3173 258.2625 722.7673 257.6625 722.8173 C 256.1125 722.8672 254.6625 722.7673 253.4625 722.0173 C 252.7625 721.4673 252.5625 720.1172 251.6625 720.3173 C 251.7625 721.5173 252.2125 722.7173 253.0125 723.5673 C f U u 353.4375 721.4172 m 356.0875 723.8173 360.3375 724.2173 363.7375 723.1172 C 366.3875 722.3173 368.5875 719.6172 369.3375 717.0173 C 370.3375 713.3173 370.1375 708.6672 367.9875 705.5173 C 365.8375 702.5173 362.4875 701.2673 358.7375 701.5673 C 355.3875 701.6672 352.1875 704.0173 350.8375 707.1172 C 349.2875 711.7673 349.5375 717.9172 353.4375 721.4172 C f 1 g 356.3875 721.7673 m 357.8875 722.8672 360.0875 722.9673 361.8875 722.5673 C 365.2375 721.8173 367.0375 718.2173 367.4375 715.1172 C 367.9375 711.1672 367.3375 707.3672 364.8375 704.5173 C 363.0875 702.5673 360.3875 702.1172 357.8375 702.7173 C 355.3375 703.3672 353.7875 705.9172 352.8875 708.1172 C 351.6875 712.9673 352.1875 718.6672 356.3875 721.7673 C f 0 g 370.1375 706.0673 m 371.0875 705.7173 371.6875 704.4673 372.5375 703.8173 C 374.0875 702.5673 376.4875 702.0173 378.3875 702.9172 C 379.7375 703.7173 380.5875 705.0673 380.7375 706.5673 C 380.4875 712.2673 373.6375 712.7173 371.2875 717.1672 C 370.7875 718.4172 370.7875 719.9172 371.2875 721.2173 C 372.2875 723.1672 374.4375 723.9172 376.5875 723.8173 C 378.0875 723.9172 379.4875 722.5673 380.8875 723.7173 C 381.1875 723.7173 L 381.5375 722.4172 381.9375 721.0173 381.8875 719.7673 C 380.8875 720.0673 380.6875 721.2673 379.7375 721.8672 C 378.1875 723.0173 375.9375 723.3173 374.1875 722.3672 C 373.2375 721.6172 372.8875 720.6672 372.7375 719.6172 C 373.8875 714.7173 379.8875 714.5173 382.0875 710.0173 C 383.1375 708.2173 382.6875 705.6172 381.6375 703.9673 C 379.8875 701.5673 376.9375 701.4172 374.3375 701.8173 C 373.3375 701.7173 372.0375 703.1672 371.3875 701.6672 C 370.9375 701.6672 L 370.4375 703.0673 370.1875 704.6672 370.1375 706.0673 C f 386.6375 723.5673 m 390.8375 718.2673 394.2375 712.3173 398.4875 707.0173 C 398.8375 712.0173 398.7375 717.5173 398.5875 722.4673 C 398.3375 723.3173 396.2875 722.5673 397.2375 723.5673 C 398.6875 723.5673 400.2375 723.6672 401.6375 723.4673 C 401.3875 722.6672 399.9375 723.2673 399.8375 722.1172 C 399.5875 701.9172 L 398.4375 701.3173 398.7375 702.7173 398.3375 703.2673 C 394.5375 708.7173 390.8375 714.3672 386.8375 719.6172 C 386.4875 714.5173 386.5875 708.3672 386.7375 703.0673 C 387.1375 702.4172 388.1875 702.9673 388.3375 702.1172 C 386.9375 701.8173 384.9875 701.8173 383.6875 702.1172 C 383.8375 702.9172 385.3875 702.3672 385.4875 703.5173 C 385.5875 721.5673 L 384.9875 722.3173 384.4375 723.0173 383.4875 723.1172 C 383.4875 723.4673 L 386.6375 723.5673 L f 401.7375 702.6172 m 402.5375 703.6172 L 409.0875 723.3672 L 409.4375 723.5673 L 409.9875 722.9172 L 416.1875 702.9172 L 416.4875 702.1672 418.4375 702.6172 417.4375 701.6672 C 415.5875 701.7673 413.5875 701.5173 411.8875 701.9172 C 412.0875 702.7673 413.4375 702.0673 413.6875 702.9172 C 413.5375 705.0673 412.8375 706.9673 412.1375 708.9172 C 410.4375 710.1172 407.8375 709.4673 405.7875 709.4673 C 404.3375 707.6672 404.0375 705.1672 403.4375 702.9172 C 403.6375 702.0673 405.2375 702.8672 404.8875 701.8173 C 400.7375 701.9172 L 400.4875 702.7673 401.4875 702.1172 401.7375 702.6172 C f 1 g 408.7375 719.4172 m 409.7875 716.5173 410.7375 713.5173 411.4375 710.5173 C 405.7875 710.6172 L 406.7375 713.5673 407.6875 716.6172 408.7375 719.4172 C f 0 g 429.3875 723.3672 m 431.1875 722.9673 432.1375 721.0173 432.4375 719.4172 C 432.5375 717.3173 431.6375 715.3672 429.7375 714.4673 C 429.3375 714.2673 428.9375 714.1672 428.5875 713.8672 C 430.2375 713.4673 431.9375 712.8672 432.8875 711.2673 C 433.9875 709.3672 433.7875 706.3173 432.5375 704.5173 C 429.8875 701.0173 424.7875 701.2173 420.9375 702.1172 C 420.2375 702.2673 419.5375 702.7173 419.1375 703.2673 C 419.4375 703.7173 420.3875 703.7673 420.4875 704.5173 C 420.1375 720.8672 L 418.9875 721.5673 L 421.5875 723.8672 425.8875 724.2673 429.3875 723.3672 C f 1 g 422.3875 721.4172 m 423.0375 722.6172 424.4375 722.9172 425.7875 722.9172 C 426.9375 722.8672 428.0375 722.6672 428.9375 722.0173 C 430.7375 720.5673 430.3375 718.1172 429.7375 716.2673 C 428.5375 714.3173 426.2375 714.1672 424.0875 713.9673 C 423.5375 713.6672 424.1375 713.2173 424.4375 713.0673 C 426.7875 713.2173 429.2875 713.1672 430.5375 711.0673 C 431.6375 708.9673 431.4375 705.7673 429.8375 703.9673 C 428.2875 702.3672 425.4875 702.3173 423.5375 703.0673 C 422.6375 704.0673 L 422.5375 709.7173 422.2875 715.5673 422.3875 721.4172 C f 0 g 436.7375 703.3672 m 436.9375 720.6672 L 436.9375 721.4673 435.9375 721.0673 435.7375 721.6672 C 437.5875 723.6172 440.6875 723.9172 443.4875 723.7173 C 445.4875 723.7673 447.2375 722.9673 448.4875 721.3173 C 449.2875 720.0173 449.6375 718.2673 449.1375 716.7173 C 448.6875 714.4673 446.2375 713.0673 444.1875 712.7673 C 443.9375 712.7173 443.6375 712.8173 443.4875 712.5173 C 450.4875 702.8173 L 450.9875 702.2673 452.0875 702.8173 452.1875 701.9172 C 450.9375 701.9172 449.4875 701.4172 448.4875 701.9172 C 440.7875 712.8672 L 441.1375 713.9673 442.9875 713.0673 443.8375 713.6672 C 444.9375 714.0673 446.1875 714.8672 446.6375 716.0173 C 447.4375 717.7673 447.3375 720.2673 445.8875 721.6672 C 444.5875 723.1172 442.3375 723.0673 440.5875 722.6672 C 440.0875 722.4172 439.4875 722.1172 439.2375 721.5673 C 438.9875 715.6172 438.7375 709.2173 438.9875 703.0673 C 439.2875 702.1672 441.4375 702.9673 440.5875 701.9172 C 438.6875 701.9673 436.6875 701.7173 434.9375 702.1172 C 435.1375 703.0673 436.6875 702.1172 436.7375 703.3672 C f 451.0375 723.4673 m 456.4875 723.3672 L 456.0875 722.6672 454.6375 722.9673 454.5375 721.7673 C 454.6875 705.7673 L 454.9875 704.4673 456.1375 703.4673 457.2875 702.8173 C 459.1375 701.9673 461.5375 702.4673 463.2375 703.2673 C 464.4375 704.1172 465.2875 705.2673 465.3875 706.6672 C 465.3875 712.0173 465.8875 717.0673 465.3875 722.3672 C 465.1375 723.0673 463.8375 722.5673 463.8375 723.3672 C 465.3875 723.3672 467.0375 723.8672 468.5375 723.3672 C 468.4375 722.4172 466.9375 723.3173 466.7375 722.1172 C 466.3875 706.3173 L 466.2375 704.7173 465.0875 703.3672 463.6875 702.4673 C 460.7875 701.1672 456.4875 700.9172 453.9875 703.3672 C 452.7875 704.3672 452.5875 705.8173 452.4375 707.2173 C 452.4375 722.3672 L 452.1875 723.2173 450.0375 722.4172 451.0375 723.4673 C f 456.8375 727.2173 m 457.4375 727.1172 458.2375 727.0673 458.3875 726.2673 C 458.5875 725.5673 458.1875 724.6172 457.3875 724.3672 C 456.6875 724.4172 455.8875 724.6172 455.6875 725.3672 C 455.4875 726.2173 456.0375 727.0673 456.8375 727.2173 C f 462.1375 727.2173 m 462.8875 727.4172 463.5875 726.9172 463.8375 726.2673 C 463.8875 725.5173 463.7375 724.8173 463.0375 724.4673 C 462.3875 724.4172 461.2875 724.4673 461.0875 725.3672 C 460.8375 726.2173 461.4375 726.9172 462.1375 727.2173 C f 474.9875 723.3672 m 477.0875 724.0173 479.6375 724.1172 481.6375 723.2673 C 482.1875 723.0673 482.4875 723.6172 482.8875 723.8173 C 483.7375 722.8672 484.0375 721.3173 484.3375 719.9673 C 483.2375 719.1672 483.1875 721.0673 482.3375 721.3173 C 480.7375 722.9172 478.1875 723.5173 476.1375 722.5673 C 471.9875 720.4673 471.4875 715.9172 471.2875 711.7173 C 471.5875 708.5673 472.2875 705.4172 475.0875 703.5173 C 476.5875 702.8173 478.4875 702.4673 480.1875 702.9172 C 481.7875 703.3173 482.9875 704.8173 484.2375 705.8672 C 485.0375 705.4673 484.1875 704.9673 484.1375 704.5173 C 481.8375 701.8672 478.1875 701.0673 474.8875 702.1172 C 470.7375 703.6172 469.2375 707.9172 468.8875 711.8672 C 468.8875 716.5173 470.3875 721.3672 474.9875 723.3672 C f 487.1875 703.3672 m 487.3875 709.6172 487.2375 716.3173 487.2875 722.3672 C 486.8375 722.8672 486.1875 722.9172 485.5875 723.0173 C 485.5875 723.4673 L 487.3875 723.6172 489.4375 723.6172 491.2375 723.4673 C 491.1875 722.3672 489.6375 723.3672 489.4375 722.1172 C 489.2875 719.4172 489.2875 716.4673 489.4375 713.7673 C 497.0875 722.0173 L 497.4375 723.1672 495.8875 722.7173 495.8875 723.4673 C 497.4375 723.6172 499.2375 723.6172 500.8375 723.4673 C 500.6875 722.5673 499.4375 722.9673 498.8875 722.3672 C 491.5875 714.6672 L 491.5875 714.3173 L 500.7375 703.2673 L 501.1875 702.4673 502.2875 702.7173 502.6375 702.0173 C 501.6375 701.6672 500.2875 701.7673 499.2375 701.9172 C 495.6875 705.8173 492.8375 709.8672 489.4375 713.7673 C 489.0375 710.3173 489.1875 706.5673 489.3375 703.0673 C 489.6875 702.2173 491.0375 703.1172 490.9875 702.0173 C 485.2375 702.0173 L 485.3375 703.1672 486.9875 702.0673 487.1875 703.3672 C f U LB %AI5_EndLayer-- %%PageTrailer gsave annotatepage grestore showpage %%Trailer Adobe_IllustratorA_AI5 /terminate get exec Adobe_level2_AI5 /terminate get exec %%EOF \ No newline at end of file diff --git a/.svn/pristine/a8/a8158b2b736b56d4e84a5341887d958094dbb6e4.svn-base b/.svn/pristine/a8/a8158b2b736b56d4e84a5341887d958094dbb6e4.svn-base new file mode 100644 index 0000000..214b45f --- /dev/null +++ b/.svn/pristine/a8/a8158b2b736b56d4e84a5341887d958094dbb6e4.svn-base @@ -0,0 +1,106 @@ +/* + * parcel implementation + * + * Copyright (C) Uwe Hebbelmann, Sebastian Stock, Andre Schemschat + * + * Released under the GPL version 3. + * + */ + +#include "grid/parcel.h" +#include +#include +#include +using std::cerr; +using std::endl; + +/** + * Ctor + * + * @param offSetX the x-offset of the parcel + * @param offSetZ the z-offset of the parcel + * @param sizeX the width of the parcel + * @param sizeZ the height of the parcel + */ +parcel::parcel(long offSetX, long offSetZ, long sizeX, long sizeZ) + : grid(offSetX, offSetZ, sizeX, sizeZ) +{ +} + +/** + * Adds a grid to the parcel. + * Adds just the points belonging to the parcel and + * ignoring the rest. + * + * @param grid the grid to be added to the parcel + */ +void parcel::addGrid(const grid* g) +{ + // Calculate the startvalue of x + long startX = g->getOffsetX() < getOffsetX() ? getOffsetX() : g->getOffsetX(); + + // calculate z-startvalue + long startZ = g->getOffsetZ() < getOffsetZ() ? getOffsetZ() : g->getOffsetZ(); + + // calculate x-endvalue + long endX = g->getOffsetX() + g->getSizeX() < getOffsetX() + getSizeX() ? g->getOffsetX() + g->getSizeX() + : getOffsetX() + getSizeX(); + + // calculate z-endvalue + long endZ = g->getOffsetZ() + g->getSizeZ() < getOffsetZ() + getSizeZ() ? g->getOffsetZ() + g->getSizeZ() + : getOffsetZ() + getSizeZ(); + + // add every point + for(int i = startX; i < endX; i++) + { + for(int j = startZ; j < endZ; j++) + { + this->addPoint(*g->getAbsolutePoint(i, j)); + } + } +} + +/** + * The static method reads the file and creates a new parcel. + * The parcel is allocated with new, so the caller has to make + * sure it is deleted properly! + * + * @param filename the filename of the parcel + * @return parcel the created parcel + */ +parcel* parcel::readParcel(std::string filename) +{ + std::ifstream infile(filename.c_str()); + + // Stream ok? + if(!infile.good()) + { + std::cerr << "ERROR: In parcel::readparcel, couldn't open stream!" << std::endl; + exit(1); + } + + // Read sizes + long sizeX; + long sizeZ; + infile >> sizeX >> sizeZ; + + // Read offsets + long offsetX; + long offsetZ; + infile >> offsetX >> offsetZ; + + // Create parcel + parcel* p = new parcel(offsetX, offsetZ, sizeX, sizeX); + + // Read all information + long x, z, count, occupied; + while(!infile.eof()) + { + infile >> x >> z >> count >> occupied; + p->setPoint(x, z, count, occupied); + } + + infile.close(); + + return p; +} diff --git a/.svn/pristine/a8/a8681ae31c7559fca0d139c34479e6bf664ac771.svn-base b/.svn/pristine/a8/a8681ae31c7559fca0d139c34479e6bf664ac771.svn-base new file mode 100644 index 0000000..8d718a6 --- /dev/null +++ b/.svn/pristine/a8/a8681ae31c7559fca0d139c34479e6bf664ac771.svn-base @@ -0,0 +1,578 @@ + + + + +GOCR-documentation + + + + + + + + + + +

GOCR-documentation

+

Jörg Schulenburg

+

Magdeburg, June 3, 2002

+ +

Abstract:

+
+In this documentation I describe some ideas for my OCR-program. +It contains algorithms and examples and gives you + an impression of what the program can (or could) do. +
+

+ + +

+


+ + + + + + +

Introduction +

+First I have to say that I am not a expert in pattern recognition +or similar things. My knowledge is based mostly on experiments with my +program. +Therefore do not worry about stupid algorithms I put in this document. +In this documentation I describe some ideas for my OCR-program. +The examples give you an impression of how the program handles +your images. +If you have comments regarding contents or spelling please +write to the author. + +

Segmentation of textual regions / Layout analysis

+ +This is implemented as a recursive division in two parts. + +
    +
  • look for the thickest horizontal or vertical gap through the box
  • +
  • if the gap is less than five times longer than thick do not divide
  • +
  • do the same with the two new parts
  • +
+I know that this algorithm is not as good as you wish, +but I do not know a better one. + +

+It would be very helpful to know about a function which is able to + decide whether the box represents a single text line or a more complex object. + +

Line detection

+

+Line detection is very importand for good recognition. + For example it is difficult to distinguish between lowercase letter p + and uppercase letter P without having a baseline (same total height). + The lowercase version of p has a depht (the lower end is below the + baseline) and therefore its easy to distinguish from the uppercase version + if the baseline is known. The line detection is responsible for finding the + baseline of every text line. + +

+Lines of characters are detected by looking for interline spaces. + These are characterized by a large number of non-black pixels in a + row. Image rotation (skewing) presents a problem, therefore the program + first looks only at the left half of the image. When a line is + found, the left half of the right side is scanned, because lines + are often short. The variation in height gives an indication of + the rotation angle. Using this angle, a second run detects lines + more accurately. Line detection may fail if there is dust on the + image. + +

+In version v0.2.3 this behaviour is slightly changed. + To detect the rotation angle, the line through the most + characters is detected. + +

Cluster detection

+ +A cluster is a group of pixels which are connected with each other. +The simplest way to detect a cluster is to look for a pixel. +If you find one, look to the neighbouring pixels. This can be done recursively. + +

+This method needs a lot of stack space if a cluster is very large, +and can cause problems with the memory. + +

+Do you remember the algorithm for leaving a maze? +Go along the right (or left) wall. This seems to be a good approach +for detecting clusters without recursion. +The following picture shows a trace of the maze algorithm. + +

+ + +
+
+first 35 steps     next 36 steps     
+..@@@@@..@@@@<..   ..v<<<<..v<<<@..   * = starting point
+..@@@@@@@@@.@^<.   ..>>v@^<<<@.@@@.   >^<v = go right,up,left,down
+....@@@@@...@@^.   ....v@@@@...@@@.   @ = black pixel
+....@@@@....@@^.   ....v@@@....@@@.
+....@@@.....@@^.   ....v@@.....@@@.
+....@@@.....@@^.   ....v@@.....@@@.
+...@@@@.....@@^.   ...v<@@.....@@@.
+...@@@......@@^.   ...v@@......@@@.
+...@@@......@@^.   ...v@@......@@@.
+...@@@.....@@@^.   ...v@@.....@@@@.
+...@@@.....@@>^.   ...v@@.....@@@@.
+...@@@.....@@^..   ...v@@.....@@@..
+..@@@@.....@@^..   ..v<@@.....@@@..
+..@@@@....@@@^..   ..v@@@....@@@@..
+*>>>>>>>>>>>>^<<   @@@@@@@@@@@@@@@@
+
+ +

+The minimum and maximum coordinates can be used to create a box around the +cluster. But does this algorithm work with diagonally connected pixels? + +

Engines

+ +GOCR is able to work with different recognition engines. +Since version 0.37 engines have to return a probability value together +with the recognized character or a table of values to a table of characters. +If the probability value is 100, the engine is 100% sure to have found the +right character otherwise the value is less. This gives GOCR the possibility +to compare results of different engines or in case of a not recognized character +to inform the user or another +application (spell checker) which characters probably could be there. + +

Base-Engine

+The base engine (src/ocrX.c) is the original engine used in the first implementation +of GOCR by Jörg. The idea was to get a fast and acceptable result +without learning theoretical background. Later it should be replaced or completed +by a better engine. +The base engine is a rule based engine. +The engine was written without theoretical +background and is improved by try and error method but is is still far from +perfect. The algorithm is very tolerant to size and form af characters +(omnifont). +How does the engine identify a character? For the explanation look at the +following pattern. + +

+ + +
+
+vvvv         vv- white regions
+......@@......  <- crossing one line
+......@@......  
+.....@@@@.....
+.....@@@@.....
+.....@@@@.....
+....@..@@@....  <- white hole / crossing two lines
+....@..@@@....  <- crossing two lines
+....@..@@@....
+...@....@@@...
+...@....@@@...
+...@....@@@...
+..@@@@@@@@@@..  <- horizontal line near center
+..@......@@@..
+..@......@@@..  
+.@........@@@.  v- increasing width of pattern
+.@........@@@.  v
+.@........@@@.  v
+@@@......@@@@@
+    ^^^-- gap
+
+ +

+In the future the program +should detect edges, vertices, gaps, angles and so on. +This is called feature extraction (as far as I know). +With such data the engine could make a cluster analysis. +But this is a difficult task, if the scanned image is noisy. + +

Database-Engine

+The database engine (src/database.c) was the second engine added to GOCR. +It was primary written to give users a simple tool to recognize +special language-specific characters. The program generates a list +(text file db.lst of image filenames and character codes) +and image samples (pnm-files) in a database path (./db/). +The database can be created by hand or extern programs or by GOCR itself +using option (-m 130). In the last case GOCR prompts the user +for not recognized characters. If he enters the character the pattern +is saved in the database path as pnm-file and its file name is added +to the database list (db.lst) together with the text string the pattern +should be replaced by. +For recognition GOCR first loads the database into memory (option -m 2). +The main algorithm compares not recognized characters with stored images +and calculates a distance value. If the distance value is small enough, +the character is treated as recognized. + +

Remove pixels

+ +The following picture shows an n which has additional pixels at the +bottom. Therefore it can not be detected as n. What can be done? + +
    +
  • classify horizontal (=) and vertical (I) pixels by + comparing the distance between the next vertical and next horizontal white + pixels (.) +
  • +
  • measure mean thickness of vertical and horizontal clusters +
  • +
  • erase unusually thin horizontal pixels at the bottom line +
  • +
+ +

+ + +
+
+..@@@@@..@@@@@..     ..==III..===II.. dx=16 dy=15
+..@@@@@@@@@.@@@.     ..==III====.III. thickness 2 to 3
+....@@@@@...@@@.     ....III==...III.
+....@@@@....@@@.     ....III=....III.
+....@@@.....@@@.     ....III.....III.
+....@@@.....@@@.     ....III.....III.
+...@@@@.....@@@.     ...IIII.....III.
+...@@@......@@@.     ...III......III.
+...@@@......@@@.     ...III......III.
+...@@@.....@@@@.     ...III.....IIII.
+...@@@.....@@@@.     ...III.....IIII.
+...@@@.....@@@..     ...III.....III..
+..@@@@.....@@@..     ..IIII.....III..
+..@@@@....@@@@..     ..IIII....IIII..
+@@@@@@@@@@@@@@@@     ================
+      ^^^ 
+      this causes the problem
+
+ +

+A better way is to find serifs (horizontal lines glued on the lower end +of vertical lines) which touch together (v0.2.5). + +

+The next picture shows blind pixels which are caused by dust on the paper. +The upper right dots are not connected with the rest of the character. +This can be detected via fill-algorithms. Currently the program +assumes that dots near the upper end of a character are ``i''-dots +or diaereses (umlaut dots). + +

+ + +
+
+..........................O...     ..........................O...
+..........................O...     ..........................O...
+..............................     ..............................
+..............................     ..............................
+..........@@@.......@@@@......     ..........@@@.......@@@@......
+..@@@@..@@@@@@@...@@@@@@@.....     ..@@@@..@@@@@@@...@@@@@@@.....
+@@@@@@@@@@@@@@@@.@@@@@@@@@....     @@@@@@@@@@@@@@@@.@@@@@@@@@....
+..@@@@@@....@@@@@@.....@@@@...     ..@@@@@@....@@@@@@.....@@@@...
+..@@@@.......@@@@......@@@@...     ..@@@@.......@@@@......@@@@...
+..@@@@.......@@@.......@@@@...     ..@@@@.......@@@.......@@@@...
+..@@@@.......@@@.......@@@@...     ..@@@@.......@@@.......@@@@...
+..@@@@.......@@@.......@@@@...     ..@@@@.......@@@.......@@@@...
+..@@@@.......@@@@......@@@@...     ..@@@@.......@@@@......@@@@...
+..@@@@.......@@@.......@@@@...     ..@@@@.......@@@.......@@@@...
+..@@@@.......@@@@......@@@@...     ..@@@@.......@@@@......@@@@...
+..@@@@.......@@@.......@@@@...     ..@@@@.......@@@.......@@@@...
+..@@@@.......@@@.......@@@@...     ..@@@@.......@@@.......@@@@...
+..@@@@.......@@@.......@@@@...     ..@@@@.......@@@.......@@@@...
+..@@@@.......@@@.......@@@@...     ..@@@@.......@@@.......@@@@...
+..@@@@.......@@@.......@@@@...     ..@@@@.......@@@.......@@@@...
+..@@@@.......@@@@......@@@@...     ..@@@@.......@@@@......@@@@...
+..@@@@......@@@@@......@@@@@..     ..@@@@......@@@@@......@@@@@..
+@@@@@@@@..@@@@@@@@@..@@@@@@@@@     @@@@@@@@..@@@@@@@@@..@@@@@@@@@
+
+ +

+Add pixels +

+The following picture shows an m. The legs are only barely connected. +How do we handle this? + +
    +
  • if the engine has failed, a filter is switched on and the engine + starts over +
  • +
  • the 2x2 filter sets pixels to (O) near barely connected pixels +
  • +
+ +

+ + +
+
+   vv   vv
+@@@.@@@..@@@...     @@@.@@@..@@@...
+.@@.@@@@.@@@@..<    .@@O@@@@O@@@@..  filter: .@ => O@     @. => @O
+.@@@..@@@..@@..<    .@@@..@@@..@@..          @. => @.     .@ => .@
+.@@@..@@@..@@@.     .@@@..@@@..@@@.
+.@@@..@@@..@@@.     .@@@..@@@..@@@.     
+.@@@..@@@..@@@.     .@@@..@@@..@@@.     
+.@@@..@@@..@@@.     .@@@..@@@..@@@.
+.@@@..@@@..@@@.     .@@@..@@@..@@@.
+.@@@..@@@..@@@.     .@@@..@@@..@@@.
+.@@@..@@@..@@@.     .@@@..@@@..@@@.
+.@@@..@@@..@@@.     .@@@..@@@..@@@.
+.@@@..@@@..@@@.     .@@@..@@@..@@@.
+.@@@..@@@..@@@.     .@@@..@@@..@@@.
+@@@@@.@@@@.@@@@     @@@@@.@@@@.@@@@
+
+ +

+Similarity analyzer +

+Some characters are a little bit noisy. These characters can be identified by +comparison with other, already recognized characters. This can be done +via a good distance function. May be +the distance function in the actual version of GOCR is not very good. +Feel free to send me your ideas, but be sure it does not waste my time. + +

+Overlapping characters +

+The following picture shows an overlapping ru. +How do we handle this? + +
    +
  • look for 3 weak connections (sum over y is small, start in the middle) +
  • +
  • test if the right and left part can be detected by the engine +
  • +
  • correction of surrounding box +
  • +
+ +

+ + +
+
+....@@...@@@@@@@@@@....@@@@@@@..     ....@@...@@@@@@@@@@....@@@@@@@..
+..@@@@..@@@@@..@@@@......@@@@@..     ..@@@@..@@@@@..@@@@......@@@@@..
+@@@@@@@@@@@@@.,.@@@.......@@@@..     @@@@@@@@@@@@@...@@@.......@@@@..
+..@@@@@@..@@@...@@@.......@@@@..     ..@@@@@@..@@@...@@@.......@@@@..
+...@@@@.......,.@@@@......@@@@..     ...@@@@.........@@@@......@@@@..
+...@@@@.........@@@@......@@@@..     ...@@@@.........@@@@......@@@@..
+...@@@@.......,.@@@.......@@@@..     ...@@@@.........@@@.......@@@@..
+...@@@@.........@@@.......@@@@..     ...@@@@.........@@@.......@@@@..
+...@@@........,.@@@@......@@@@..     ...@@@..........@@@@......@@@@..
+...@@@..........@@@@......@@@@..     ...@@@..........@@@@......@@@@..
+...@@@........,.@@@@......@@@@..     ...@@@..........@@@@......@@@@..
+...@@@..........@@@.......@@@@..     ...@@@..........@@@.......@@@@..
+...@@@........,.@@@@......@@@@..     ...@@@..........@@@@......@@@@..
+...@@@..........@@@@......@@@@..     ...@@@..........@@@@......@@@@..
+...@@@........,.@@@@......@@@@..     ...@@@..........@@@@......@@@@..
+...@@@..........@@@@@...@@@@@@@.     ...@@@..........@@@@@...@@@@@@@.
+..@@@@@.......,..@@@@@@@@@.@@@@@     ..@@@@@..........@@@@@@@@@.@@@@@
+@@@@@@@@@.........@@@@@@@..@@@..     @@@@@@@@@.........@@@@@@@..@@@..
+..............,....@@@..........     ...................@@@..........
+             ^^^
+             213 weak vertical lines
+
+ +

+Of course the situation is more difficult with slanted characters. + +

+The following example shows, how to deal with larger clusters. +To get a fast program a first test should select the possible positions of +division. That can be done by following upper and lower bows to a crease or a break. Than try to break on all detected creases, start at most +important one (not implemented yet v0.2.4). + +

+ + +
+
+             >>>>vvv<<<<<       >>vv<<<<         >>>vvv<<<<
+......@@@@@@@..................@@.........@@@@@@@..........@@@@@@@.....
+....@@@@@@@@@@@...............@@@.......@@@@@@@@@@@......@@@@@@@@@@@...
+...@@@@@@@@@@@@@.............@@@@......@@@@@@@@@@@@@....@@@@@@@@@@@@@..
+..@@@@.......@@@@...........@@@@@.....@@@@.......@@@@..@@@@.......@@@@.
+..@@@........@@@@..........@@@@@@@....@@@........@@@@@@@@@........@@@@.
+.@@@@..........@@.........@@@@@@@@...@@@@..........@@@@@@@.........@@@@
+.@@@.....................@@@@.@@@@...@@@..............@@...........@@@@
+.@@@....................@@@@@.@@@@...@@@...........................@@@@
+@@@...@@@@@@@...........@@@@..@@@...@@@...@@@@@@...................@@@.
+@@@@.@@@@@@@@@@........@@@@...@@@@..@@@@.@@@@@@@@@@...............@@@@.
+@@@@@@@@@@@@@@@.......@@@@....@@@@..@@@@@@@@@@@@@@@...............@@@..
+@@@@@@@.....@@@@@.....@@@.....@@@@..@@@@@@......@@@@@............@@@@..
+@@@@.........@@@@...@@@@......@@@@..@@@@@........@@@@...........@@@....
+@@@@..........@@@@.@@@@.......@@@@..@@@@..........@@@..........@@@@....
+@@@@..........@@@@@@@@@.......@@@@.@@@@@..........@@@.........@@@@.....
+@@@@..........@@@@@@@@@@@@@@@@@@@@@@@@@@..........@@@@.......@@@@......
+@@@@..........@@@@@@@@@@@@@@@@@@@@@@@@@@..........@@@@......@@@........
+.@@@..........@@@@@@@@@@@@@@@@@@@@@@.@@@..........@@@@....@@@@@........
+.@@@@........@@@@.............@@@@...@@@@........@@@@....@@@@..........
+..@@@@.......@@@@.............@@@@....@@@@.......@@@@...@@@@...........
+..@@@@@....@@@@@..............@@@@.....@@@@....@@@@@...@@@@@@..........
+....@@@@@@@@@@@...............@@@@......@@@@@@@@@@@...@@@@@@@@@@@@@@@@@
+.....@@@@@@@@@................@@@@........@@@@@@@@....@@@@@@@@@@@@@@@@@
+........@@@@...................@@..........@@@@@........@@@@@@@..@.@@@.
+            >>>>^            ^<<>>^ ^<<<<<        >>>^<<<      ^^ ^
+
+>,< show the path of the detection algorithm
+
+ +

+The latest version of GOCR may use different algorithms. +You have to look at the sources learn more. + +

+Black/White, Gray and Colors +

+For simplicity colored images are converted to gray internally. +That means a red text on green background will not be detected. +You should use your own filter for this purpose. + +

+If the original image is gray, a critical value is calculated to +extract characters from the background. This can fail, if images are +on the scanned page or tha scan is bad (dark edges or borders). +It is difficult to overcome this problem because graylevels are mostly +restricted to the 8 bit limit (16 bit would help to overcome this problem). + +

+Black/White images are internally converted to gray with two levels (0 and +255). + +

+The lowest 4 bits are not used, because they are used by internal functions +(this can be changed in future). + +

+After calculation of the threshold value (otsu.c) the brightness of +every pixel is recalculated to a new internal threshold value +of 160 (128+32). +This is a bit above the middle of the 8 bit range. The idea is to +make the live easier for the other routines. Pixels which does not sure +belong to the white or black ones get a value near the threshold value. +Some routines can use this bit of more information to ignore outriders. +Second point is, that this is necessary for using lowest for bits +without destroying image informations. + +

Pictures on scanned pages +

+At first all objects on the scanned page are detected. +Objects are clusters of black pixels. +Pictures are detected if they are larger than 4 times the mean size of +all objects. This rule is very simple and can fail some times. +But it works fast and mostly the result is ok. + +

Tools

+ +

+

+
pbmclean:
+
This program is written by Angus Duggan and Jef Poskanzer. + It cleans up ``snow'' on bitmap images. +
+
pnmtools:
+
This tools are used to convert different image-formats to + easy readable PNM (PBM,PGM,PPM) format. + GOCR uses the popen-routine to call this programs if the + suffix of the filename matches to a list in pnm.c. + This will fail if pnmtools are missing. +
+
+ +

related projects (to learn from)

+ +

+

+
unpaper:
+
unpaper - + post-processing scanned and photocopied book pages, + written by Jens Gulden 2005, GPL +
+
+ +

glossary

+
font series:
bold, condensed
+
font shape:
normal, italic, slanted, sc...
+
points:
+
length unit used for font size, 1/72 inch, + but I do not know its exact relation to the font size (height? + totalheight? width? 10pt and 300dpi results in 40 pixel heigh font?) +
+
sans serif:
+
font without the (often thin) lines on the ends + of the character +
+
descewing:
+
compensation of (slightly) rotated text +
+
+ +

More information?

+
+
·
+
see "/usr/share/doc/package/tetex/texmf/.../fntguide.dvi" + in the documentation of the tetex package + +
+
·
+
the fonts-HOWTO file is helpfully too + ("www.faqs.org/faqs/fonts-faq/") + +
+
RTF:
+
RichTextFormat - does someone have a good documontation? +
+
+ +

About this document

+This Document was originaly written in LaTeX. +In May 2002 Joerg has convertet it to HTML. The reason is, that +you can read it now directly and you does not need to have LaTeX and +Ghostscript installed on your computer to read it. +As a side effect you do not need tetex package to build the gocr.rpm-package. +A good viewer to read this document is lynx, links or w3m. + +
+
+
jNOschulen-at-gSmPAMx.de (remove NO+S+PAM)
+ + + \ No newline at end of file diff --git a/.svn/pristine/a8/a8a1baaaa90c99f5d990d6dcf9a6c4c0cc92516c.svn-base b/.svn/pristine/a8/a8a1baaaa90c99f5d990d6dcf9a6c4c0cc92516c.svn-base new file mode 100644 index 0000000..d8d5d21 --- /dev/null +++ b/.svn/pristine/a8/a8a1baaaa90c99f5d990d6dcf9a6c4c0cc92516c.svn-base @@ -0,0 +1,117 @@ +#----------------------------------------------------------------------------- +# Makefile for ANN library +#---------------------------------------------------------------------- +# Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +# David Mount. All Rights Reserved. +# +# This software and related documentation is part of the Approximate +# Nearest Neighbor Library (ANN). This software is provided under +# the provisions of the Lesser GNU Public License (LGPL). See the +# file ../ReadMe.txt for further information. +# +# The University of Maryland (U.M.) and the authors make no +# representations about the suitability or fitness of this software for +# any purpose. It is provided "as is" without express or implied +# warranty. +#---------------------------------------------------------------------- +# History: +# Revision 0.1 03/04/98 +# Initial release +# Revision 1.0 04/01/05 +# Renamed files from .cc to .cpp for Microsoft Visual C++ +# Added kd_dump.cpp +# Revision 1.1 05/03/05 +# Added kd_fix_rad_search.cpp and bd_fix_rad_search.cpp +#---------------------------------------------------------------------- + +#----------------------------------------------------------------------------- +# Configuration definitions +#----------------------------------------------------------------------------- + +include ../../../Makefile.options + +#----------------------------------------------------------------------------- +# Some basic definitions: +# BASEDIR where include, src, lib, ... are +# INCLIB include directory +# LIBLIB library directory +#----------------------------------------------------------------------------- +ANNLIB = ../../../obj/libANN.a +OBJDIR = ../../../obj/ +INCDIR = ../include/ + +SOURCES = ANN.cpp brute.cpp kd_tree.cpp kd_util.cpp kd_split.cpp \ + kd_dump.cpp kd_search.cpp kd_pr_search.cpp kd_fix_rad_search.cpp \ + bd_tree.cpp bd_search.cpp bd_pr_search.cpp bd_fix_rad_search.cpp \ + perf.cpp + +OBJECTS = $(OBJDIR)ANN.o $(OBJDIR)brute.o $(OBJDIR)kd_tree.o $(OBJDIR)kd_util.o $(OBJDIR)kd_split.o \ + $(OBJDIR)kd_dump.o $(OBJDIR)kd_search.o $(OBJDIR)kd_pr_search.o $(OBJDIR)kd_fix_rad_search.o \ + $(OBJDIR)bd_tree.o $(OBJDIR)bd_search.o $(OBJDIR)bd_pr_search.o $(OBJDIR)bd_fix_rad_search.o \ + $(OBJDIR)perf.o + +#----------------------------------------------------------------------------- +# Make the library +#----------------------------------------------------------------------------- + +default: $(LIBDIR)/$(ANNLIB) + +$(LIBDIR)/$(ANNLIB): $(OBJECTS) + @ar rs $(ANNLIB) $(OBJECTS) + @ranlib $(ANNLIB) + +#----------------------------------------------------------------------------- +# Make object files +#----------------------------------------------------------------------------- + +$(OBJDIR)ANN.o: ANN.cpp + $(GPP) -c -I$(INCDIR) $(CFLAGS) ANN.cpp -o $(OBJDIR)ANN.o + +$(OBJDIR)brute.o: brute.cpp + $(GPP) -c -I$(INCDIR) $(CFLAGS) brute.cpp -o $(OBJDIR)brute.o + +$(OBJDIR)kd_tree.o: kd_tree.cpp + $(GPP) -c -I$(INCDIR) $(CFLAGS) kd_tree.cpp -o $(OBJDIR)kd_tree.o + +$(OBJDIR)kd_util.o: kd_util.cpp + $(GPP) -c -I$(INCDIR) $(CFLAGS) kd_util.cpp -o $(OBJDIR)kd_util.o + +$(OBJDIR)kd_split.o: kd_split.cpp + $(GPP) -c -I$(INCDIR) $(CFLAGS) kd_split.cpp -o $(OBJDIR)kd_split.o + +$(OBJDIR)kd_search.o: kd_search.cpp + $(GPP) -c -I$(INCDIR) $(CFLAGS) kd_search.cpp -o $(OBJDIR)kd_search.o + +$(OBJDIR)kd_pr_search.o: kd_pr_search.cpp + $(GPP) -c -I$(INCDIR) $(CFLAGS) kd_pr_search.cpp -o $(OBJDIR)kd_pr_search.o + +$(OBJDIR)kd_fix_rad_search.o: kd_fix_rad_search.cpp + $(GPP) -c -I$(INCDIR) $(CFLAGS) kd_fix_rad_search.cpp -o $(OBJDIR)kd_fix_rad_search.o + +$(OBJDIR)kd_dump.o: kd_dump.cpp + $(GPP) -c -I$(INCDIR) $(CFLAGS) kd_dump.cpp -o $(OBJDIR)kd_dump.o + +$(OBJDIR)bd_tree.o: bd_tree.cpp + $(GPP) -c -I$(INCDIR) $(CFLAGS) bd_tree.cpp -o $(OBJDIR)bd_tree.o + +$(OBJDIR)bd_search.o: bd_search.cpp + $(GPP) -c -I$(INCDIR) $(CFLAGS) bd_search.cpp -o $(OBJDIR)bd_search.o + +$(OBJDIR)bd_pr_search.o: bd_pr_search.cpp + $(GPP) -c -I$(INCDIR) $(CFLAGS) bd_pr_search.cpp -o $(OBJDIR)bd_pr_search.o + +$(OBJDIR)bd_fix_rad_search.o: bd_fix_rad_search.cpp + $(GPP) -c -I$(INCDIR) $(CFLAGS) bd_fix_rad_search.cpp -o $(OBJDIR)bd_fix_rad_search.o + +$(OBJDIR)perf.o: perf.cpp + $(GPP) -c -I$(INCDIR) $(CFLAGS) perf.cpp -o $(OBJDIR)perf.o + +#----------------------------------------------------------------------------- +# Cleaning +#----------------------------------------------------------------------------- + +clean: + -rm -f *.o core + +realclean: clean + diff --git a/.svn/pristine/a8/a8ac64ef2e4dc36c37d12d1aed741fd14b3a79ec.svn-base b/.svn/pristine/a8/a8ac64ef2e4dc36c37d12d1aed741fd14b3a79ec.svn-base new file mode 100644 index 0000000..73f4b3a --- /dev/null +++ b/.svn/pristine/a8/a8ac64ef2e4dc36c37d12d1aed741fd14b3a79ec.svn-base @@ -0,0 +1,36 @@ +/** + * @file + * @brief IO of a 3D scan in uos file format + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SCAN_IO_UOS_MAP_H__ +#define __SCAN_IO_UOS_MAP_H__ + +#include +using std::string; +#include +using std::vector; + +#include "scan_io.h" + +/** + * @brief 3D scan loader for UOS scans + * + * The compiled class is available as shared object file + */ +class ScanIO_uos_map : public ScanIO { +public: + virtual int readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss); +}; + +// Since this shared object file is loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/.svn/pristine/a9/a912d84ec1d45cb58ba17b1b237dcf227b509f4f.svn-base b/.svn/pristine/a9/a912d84ec1d45cb58ba17b1b237dcf227b509f4f.svn-base new file mode 100644 index 0000000..9765308 --- /dev/null +++ b/.svn/pristine/a9/a912d84ec1d45cb58ba17b1b237dcf227b509f4f.svn-base @@ -0,0 +1,573 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: wxCustomButton based on wxCustomToggleCtrl.cpp +// Purpose: a toggle button +// Author: Bruce Phillips +// Modified by: John Labenski +// Created: 11/05/2002 +// RCS-ID: +// Copyright: (c) Bruce Phillips, John Labenki +// Licence: wxWidgets licence +///////////////////////////////////////////////////////////////////////////// + +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) + #pragma implementation "toggle.h" +#endif + +// For compilers that support precompilation, includes "wx/wx.h". +#include "wx/wxprec.h" + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#ifndef WX_PRECOMP + #include "wx/control.h" + #include "wx/settings.h" + #include "wx/bitmap.h" + #include "wx/timer.h" + #include "wx/dc.h" + #include "wx/dcclient.h" +#endif // WX_PRECOMP + +#include "wx/tglbtn.h" +#include "wx/image.h" +#include "wx/things/toggle.h" + +// ========================================================================== +// wxCustomButton +// ========================================================================== +IMPLEMENT_DYNAMIC_CLASS( wxCustomButton, wxControl ) + +BEGIN_EVENT_TABLE(wxCustomButton,wxControl) + EVT_MOUSE_EVENTS ( wxCustomButton::OnMouseEvents ) + EVT_PAINT ( wxCustomButton::OnPaint ) + EVT_TIMER ( wxID_ANY, wxCustomButton::OnTimer) + EVT_SIZE ( wxCustomButton::OnSize ) +END_EVENT_TABLE() + +wxCustomButton::~wxCustomButton() +{ + if (HasCapture()) ReleaseMouse(); + if (m_timer) delete m_timer; +} + +void wxCustomButton::Init() +{ + m_focused = false; + m_labelMargin = wxSize(4,4); + m_bitmapMargin = wxSize(2,2); + m_down = 0; + m_timer = NULL; + m_eventType = 0; + m_button_style = wxCUSTBUT_TOGGLE|wxCUSTBUT_BOTTOM; +} + +bool wxCustomButton::Create(wxWindow* parent, wxWindowID id, + const wxString& label, const wxBitmap &bitmap, + const wxPoint& pos, const wxSize& size, + long style, const wxValidator& val, + const wxString& name) +{ + if (!wxControl::Create(parent,id,pos,size,wxNO_BORDER|wxCLIP_CHILDREN,val,name)) + return false; + + wxControl::SetLabel(label); + wxControl::SetBackgroundColour(parent->GetBackgroundColour()); + wxControl::SetForegroundColour(parent->GetForegroundColour()); + wxControl::SetFont(parent->GetFont()); + + if (bitmap.Ok()) m_bmpLabel = bitmap; + + if (!SetButtonStyle(style)) return false; + + wxSize bestSize = DoGetBestSize(); + SetSize(wxSize(size.x<0 ? bestSize.x:size.x, size.y<0 ? bestSize.y:size.y)); + SetBestSize(GetSize()); + + CalcLayout(true); + return true; +} + +void wxCustomButton::SetValue(bool depressed) +{ + wxCHECK_RET(!(m_button_style & wxCUSTBUT_NOTOGGLE), wxT("can't set button state")); + m_down = depressed ? 1 : 0; + Refresh(false); +} + +bool wxCustomButton::SetButtonStyle(long style) +{ + int n_styles = 0; + if ((style & wxCUSTBUT_LEFT) != 0) n_styles++; + if ((style & wxCUSTBUT_RIGHT) != 0) n_styles++; + if ((style & wxCUSTBUT_TOP) != 0) n_styles++; + if ((style & wxCUSTBUT_BOTTOM) != 0) n_styles++; + wxCHECK_MSG(n_styles < 2, false, wxT("Only one wxCustomButton label position allowed")); + + n_styles = 0; + if ((style & wxCUSTBUT_NOTOGGLE) != 0) n_styles++; + if ((style & wxCUSTBUT_BUTTON) != 0) n_styles++; + if ((style & wxCUSTBUT_TOGGLE) != 0) n_styles++; + if ((style & wxCUSTBUT_BUT_DCLICK_TOG) != 0) n_styles++; + if ((style & wxCUSTBUT_TOG_DCLICK_BUT) != 0) n_styles++; + wxCHECK_MSG(n_styles < 2, false, wxT("Only one wxCustomButton style allowed")); + + m_button_style = style; + + if ((m_button_style & wxCUSTBUT_BUTTON) != 0) + m_down = 0; + + CalcLayout(true); + return true; +} + +void wxCustomButton::SetLabel( const wxString &label ) +{ + wxControl::SetLabel(label); + CalcLayout(true); +} + +// sequence of events in GTK is up, dclick, up. + +void wxCustomButton::OnMouseEvents(wxMouseEvent& event) +{ + if (m_button_style & wxCUSTBUT_NOTOGGLE) return; + + if (event.LeftDown() || event.RightDown()) + { + if (!HasCapture()) + CaptureMouse(); // keep depressed until up + + m_down++; + Redraw(); + } + else if (event.LeftDClick() || event.RightDClick()) + { + m_down++; // GTK eats second down event + Redraw(); + } + else if (event.LeftUp()) + { + if (HasCapture()) + ReleaseMouse(); + + m_eventType = wxEVT_LEFT_UP; + + if (wxRect(wxPoint(0,0), GetSize()).Inside(event.GetPosition())) + { + if ((m_button_style & wxCUSTBUT_BUTTON) && (m_down > 0)) + { + m_down = 0; + Redraw(); + SendEvent(); + return; + } + else + { + if (!m_timer) + { + m_timer = new wxTimer(this, m_down+1); + m_timer->Start(200, true); + } + else + { + m_eventType = wxEVT_LEFT_DCLICK; + } + + if ((m_button_style & wxCUSTBUT_TOGGLE) && + (m_button_style & wxCUSTBUT_TOG_DCLICK_BUT)) m_down++; + } + } + + Redraw(); + } + else if (event.RightUp()) + { + if (HasCapture()) + ReleaseMouse(); + + m_eventType = wxEVT_RIGHT_UP; + + if (wxRect(wxPoint(0,0), GetSize()).Inside(event.GetPosition())) + { + if ((m_button_style & wxCUSTBUT_BUTTON) && (m_down > 0)) + { + m_down = 0; + Redraw(); + SendEvent(); + return; + } + else + { + m_down++; + + if (!m_timer) + { + m_timer = new wxTimer(this, m_down); + m_timer->Start(250, true); + } + else + { + m_eventType = wxEVT_RIGHT_DCLICK; + } + } + } + + Redraw(); + } + else if (event.Entering()) + { + m_focused = true; + if ((event.LeftIsDown() || event.RightIsDown()) && HasCapture()) + m_down++; + + Redraw(); + } + else if (event.Leaving()) + { + m_focused = false; + if ((event.LeftIsDown() || event.RightIsDown()) && HasCapture()) + m_down--; + + Redraw(); + } +} + +void wxCustomButton::OnTimer( wxTimerEvent &event ) +{ + m_timer->Stop(); + delete m_timer; + m_timer = NULL; + + // Clean up the button presses + // FIXME - GTK eats second left down for a DClick, who know about the others? + if (m_button_style & wxCUSTBUT_BUTTON) + { + m_down = 0; + } + else if (m_button_style & wxCUSTBUT_TOGGLE) + { + if (m_eventType == wxEVT_LEFT_UP) + m_down = event.GetId()%2 ? 0 : 1; + else + m_down = event.GetId()%2 ? 1 : 0; + } + else if (m_button_style & wxCUSTBUT_BUT_DCLICK_TOG) + { + if (m_eventType == wxEVT_LEFT_DCLICK) + m_down = event.GetId()%2 ? 0 : 1; + else + m_down = event.GetId()%2 ? 1 : 0; + } + else if (m_button_style & wxCUSTBUT_TOG_DCLICK_BUT) + { + if (m_eventType == wxEVT_LEFT_UP) + m_down = event.GetId()%2 ? 0 : 1; + else + m_down = event.GetId()%2 ? 1 : 0; + } + + Refresh(false); + SendEvent(); +} + +void wxCustomButton::SendEvent() +{ + if (((m_button_style & wxCUSTBUT_TOGGLE) && (m_eventType == wxEVT_LEFT_UP)) || + ((m_button_style & wxCUSTBUT_BUT_DCLICK_TOG) && (m_eventType == wxEVT_LEFT_DCLICK)) || + ((m_button_style & wxCUSTBUT_TOG_DCLICK_BUT) && (m_eventType == wxEVT_LEFT_UP))) + { + wxCommandEvent eventOut(wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, GetId()); + eventOut.SetInt(m_down%2 ? 1 : 0); + eventOut.SetExtraLong(m_eventType); + eventOut.SetEventObject(this); + GetEventHandler()->ProcessEvent(eventOut); + } + else + { + wxCommandEvent eventOut(wxEVT_COMMAND_BUTTON_CLICKED, GetId()); + eventOut.SetInt(0); + eventOut.SetExtraLong(m_eventType); + eventOut.SetEventObject(this); + GetEventHandler()->ProcessEvent(eventOut); + } +} + +wxBitmap wxCustomButton::CreateBitmapDisabled(const wxBitmap &bitmap) const +{ + wxCHECK_MSG(bitmap.Ok(), wxNullBitmap, wxT("invalid bitmap")); + + unsigned char br = GetBackgroundColour().Red(); + unsigned char bg = GetBackgroundColour().Green(); + unsigned char bb = GetBackgroundColour().Blue(); + + wxImage image = bitmap.ConvertToImage(); + int pos, width = image.GetWidth(), height = image.GetHeight(); + unsigned char *img_data = image.GetData(); + + for (int j=0; j lh ? bh : lh; + if (has_bitmap && has_label) lw -= wxMin(m_labelMargin.x, m_bitmapMargin.x); + return wxSize(lw+bw, h); + } + + int w = bw > lw ? bw : lw; + if (has_bitmap && has_label) lh -= wxMin(m_labelMargin.y, m_bitmapMargin.y); + return wxSize(w, lh+bh); +} + +void wxCustomButton::CalcLayout(bool refresh) +{ + int w, h; + GetSize(&w,&h); + + int bw = 0, bh = 0; + int lw = 0, lh = 0; + + if (m_bmpLabel.Ok()) // assume they're all the same size + { + bw = m_bmpLabel.GetWidth(); + bh = m_bmpLabel.GetHeight(); + } + wxString label = GetLabel(); + if (!label.IsEmpty()) + { + GetTextExtent(label, &lw, &lh); + } + + // Center the label or bitmap if only one or the other + if (!m_bmpLabel.Ok()) + { + m_bitmapPos = wxPoint(0,0); + m_labelPos = wxPoint((w-lw)/2, (h-lh)/2); + } + else if (label.IsEmpty()) + { + m_bitmapPos = wxPoint((w-bw)/2, (h-bh)/2); + m_labelPos = wxPoint(0,0); + } + else if (m_button_style & wxCUSTBUT_LEFT) + { + int mid_margin = wxMax(m_labelMargin.x, m_bitmapMargin.x); + m_labelPos = wxPoint((w - (bw+lw+m_labelMargin.x+m_bitmapMargin.x+mid_margin))/2 + m_labelMargin.x, (h - lh)/2); + m_bitmapPos = wxPoint(m_labelPos.x + lw + mid_margin, (h - bh)/2); + } + else if (m_button_style & wxCUSTBUT_RIGHT) + { + int mid_margin = wxMax(m_labelMargin.x, m_bitmapMargin.x); + m_bitmapPos = wxPoint((w - (bw+lw+m_labelMargin.x+m_bitmapMargin.x+mid_margin))/2 + m_bitmapMargin.x, (h - bh)/2); + m_labelPos = wxPoint(m_bitmapPos.x + bw + mid_margin, (h - lh)/2); + } + else if (m_button_style & wxCUSTBUT_TOP) + { + int mid_margin = wxMax(m_labelMargin.y, m_bitmapMargin.y); + m_labelPos = wxPoint((w - lw)/2, (h - (bh+lh+m_labelMargin.y+m_bitmapMargin.y+mid_margin))/2 + m_labelMargin.y); + m_bitmapPos = wxPoint((w - bw)/2, m_labelPos.y + lh + mid_margin); + } + else // if (m_button_style & wxCUSTBUT_BOTTOM) DEFAULT + { + int mid_margin = wxMax(m_labelMargin.y, m_bitmapMargin.y); + m_bitmapPos = wxPoint((w - bw)/2, (h - (bh+lh+m_labelMargin.y+m_bitmapMargin.y+mid_margin))/2 + m_bitmapMargin.y); + m_labelPos = wxPoint((w - lw)/2, m_bitmapPos.y + bh + mid_margin); + } + + if (refresh) Refresh(false); +} diff --git a/.svn/pristine/a9/a929ffea1d9bf2c348d785454b035b0bcbf85711.svn-base b/.svn/pristine/a9/a929ffea1d9bf2c348d785454b035b0bcbf85711.svn-base new file mode 100644 index 0000000..5f36be4 --- /dev/null +++ b/.svn/pristine/a9/a929ffea1d9bf2c348d785454b035b0bcbf85711.svn-base @@ -0,0 +1,802 @@ +############################################################################### +# For more information, please see: http://software.sci.utah.edu +# +# The MIT License +# +# Copyright (c) 2007-2008 +# Scientific Computing and Imaging Institute, University of Utah +# +# License for the specific language governing rights and limitations under +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +# DEALINGS IN THE SOFTWARE. +# +# This script locates the Nvidia Compute Unified Driver Architecture (CUDA) +# tools. It should work on linux, windows, and mac and should be reasonably +# up to date with cuda releases. +# +# The script will prompt the user to specify CUDA_INSTALL_PREFIX if the +# prefix cannot be determined by the location of nvcc in the system path. To +# use a different installed version of the toolkit set the environment variable +# CUDA_BIN_PATH before running cmake (e.g. CUDA_BIN_PATH=/usr/local/cuda1.0 +# instead of the default /usr/local/cuda). +# +# Set CUDA_BUILD_EMULATION to ON for Emulation mode. Defaults to OFF (device +# mode). +# _DEVICEEMU is defined when CUDA_BUILD_EMULATION is TRUE. +# +# Set CUDA_HOST_COMPILATION_CPP to OFF for C compilation of host code. +# Default TRUE. +# +# Set CUDA_BUILD_CUBIN to "ON" or "OFF" to enable and extra compilation pass +# with the -cubin option in Device mode. The output is parsed and register, +# shared memory usage is printed during build. Default ON. +# +# Set CUDA_ATTACH_VS_BUILD_RULE_TO_CUDA_FILE to ON if you want the custom build +# rule to be attached to the source file in Visual Studio. Defaults to OFF. +# +# This allows the user to build the target from the CUDA file, however bad +# things can happen if the CUDA source file is added to multiple targets. When +# performing parallel builds it is possible for the custom build command to be +# run more than once and in parallel causing cryptic build errors. This is +# because VS runs the rules for every source file in the target, and a source +# can have only one rule no matter how many projects it is added to. Therefore, +# the rule assigned to the source file really only applies to one target you get +# clashes when it is run from multiple targets. Eventually everything will get +# built, but if the user is unaware of this behavior, there may be confusion. +# It would be nice if we could detect the reuse of source files across multiple +# targets and turn the option off for the user, but no good solution could be +# found. +# +# Set CUDA_64_BIT_DEVICE_CODE to ON to compile for 64 bit devices. Defaults to +# match host bit size. Note that making this different than the host code when +# generating C files from CUDA code just won't work, because size_t gets defined +# by nvcc in the generated source. If you compile to PTX and then load the file +# yourself, you can mix bit sizes between device and host. +# +# Set CUDA_VERBOSE_BUILD to ON to see all the commands used when building the +# CUDA file. When using a Makefile generator the value defaults to VERBOSE (run +# make VERBOSE=1 to see output). You can override this by setting +# CUDA_VERBOSE_BUILD to ON. +# +# The script creates the following macros: +# CUDA_INCLUDE_DIRECTORIES( path0 path1 ... ) +# -- Sets the directories that should be passed to nvcc +# (e.g. nvcc -Ipath0 -Ipath1 ... ). These paths usually contain other .cu +# files. +# +# CUDA_ADD_LIBRARY( cuda_target file0 file1 ... ) +# -- Creates a shared library "cuda_target" which contains all of the source +# (*.c, *.cc, etc.) specified and all of the nvcc'ed .cu files specified. +# All of the specified source files and generated .cpp files are compiled +# using the standard CMake compiler, so the normal INCLUDE_DIRECTORIES, +# LINK_DIRECTORIES, and TARGET_LINK_LIBRARIES can be used to affect their +# build and link. +# +# CUDA_ADD_CUFFT_TO_TARGET( cuda_target ) +# -- Adds the cufft library to the target. Handles whether you are in emulation +# mode or not. +# +# CUDA_ADD_CUBLAS_TO_TARGET( cuda_target ) +# -- Adds the cublas library to the target. Handles whether you are in emulation +# mode or not. +# +# CUDA_ADD_EXECUTABLE( cuda_target file0 file1 ... ) +# -- Same as CUDA_ADD_LIBRARY except that an exectuable is created. +# +# CUDA_COMPILE( cuda_files file0 file1 ... ) +# -- Returns a list of build commands in the first argument to be used with +# ADD_LIBRARY or ADD_EXECUTABLE. +# +# CUDA_BUILD_CLEAN_TARGET() +# -- Creates a convience target that deletes all the dependency files generated. +# You should make clean after running this target to ensure the dependency +# files get regenerated. +# +# The script defines the following variables: +# +# ( Note CUDA_ADD_* macros setup cuda/cut library dependencies automatically. +# These variables are only needed if a cuda API call must be made from code in +# a outside library or executable. ) +# +# CUDA_INCLUDE_DIRS -- Include directory for cuda headers. +# CUDA_LIBRARIES -- Cuda RT library. +# CUDA_CUT_INCLUDE_DIRS -- Include directory for cuda SDK headers (cutil.h). +# CUDA_CUT_LIBRARIES -- SDK libraries. +# CUDA_NVCC_FLAGS -- Additional NVCC command line arguments. NOTE: +# multiple arguments must be semi-colon delimited +# e.g. --compiler-options;-Wall +# CUFFT_LIBRARIES -- Device or emulation library for the Cuda FFT +# implementation (alternative to: +# CUDA_ADD_CUFFT_TO_TARGET macro) +# CUBLAS_LIBRARIES -- Device or emulation library for the Cuda BLAS +# implementation (alterative to: +# CUDA_ADD_CUBLAS_TO_TARGET macro). +# +# +# It might be necessary to set CUDA_INSTALL_PATH manually on certain platforms, +# or to use a cuda runtime not installed in the default location. In newer +# versions of the toolkit the cuda library is included with the graphics +# driver- be sure that the driver version matches what is needed by the cuda +# runtime version. +# +# -- Abe Stephens SCI Institute -- http://www.sci.utah.edu/~abe/FindCuda.html +# -- James Bigler NVIDIA Corp +############################################################################### + +# FindCUDA.cmake + +# This macro helps us find the location of helper files we will need the full path to +MACRO(CUDA_FIND_HELPER_FILE _name _extension) + SET(_full_name "${_name}.${_extension}") + # CMAKE_CURRENT_LIST_FILE contains the full path to the file currently being + # processed. Using this variable, we can pull out the current path, and + # provide a way to get access to the other files we need local to here. + GET_FILENAME_COMPONENT(CMAKE_CURRENT_LIST_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) + FIND_FILE(CUDA_${_name} ${_full_name} PATHS ${CMAKE_CURRENT_LIST_DIR} NO_DEFAULT_PATH) + IF(NOT CUDA_${_name}) + SET(error_message "${_full_name} not found in CMAKE_MODULE_PATH") + IF(CUDA_FIND_REQUIRED) + MESSAGE(FATAL_ERROR "${error_message}") + ELSE(CUDA_FIND_REQUIRED) + IF(NOT CUDA_FIND_QUIETLY) + MESSAGE(STATUS "${error_message}") + ENDIF(NOT CUDA_FIND_QUIETLY) + ENDIF(NOT CUDA_FIND_REQUIRED) + ENDIF(NOT CUDA_${_name}) + # Set this variable as internal, so the user isn't bugged with it. + SET(CUDA_${_name} ${CUDA_${_name}} CACHE INTERNAL "Location of ${_full_name}" FORCE) +ENDMACRO(CUDA_FIND_HELPER_FILE) + +##################################################################### +## CUDA_INCLUDE_NVCC_DEPENDENCIES +## + +# So we want to try and include the dependency file if it exists. If +# it doesn't exist then we need to create an empty one, so we can +# include it. + +# If it does exist, then we need to check to see if all the files it +# depends on exist. If they don't then we should clear the dependency +# file and regenerate it later. This covers the case where a header +# file has disappeared or moved. + +# Need to locate the empty.depend.in file, because CONFIGURE_FILE requires +# full paths. +CUDA_FIND_HELPER_FILE(empty "depend.in") + +MACRO(CUDA_INCLUDE_NVCC_DEPENDENCIES dependency_file) + SET(CUDA_NVCC_DEPEND) + SET(CUDA_NVCC_DEPEND_REGENERATE FALSE) + + + # Include the dependency file. Create it first if it doesn't exist + # for make files except for IDEs (see below). The INCLUDE puts a + # dependency that will force CMake to rerun and bring in the new info + # when it changes. DO NOT REMOVE THIS (as I did and spent a few hours + # figuring out why it didn't work. +# IF(${CMAKE_MAKE_PROGRAM} MATCHES "make") + IF(NOT EXISTS ${dependency_file}) + #message("configuring dependency_file = ${dependency_file}") + CONFIGURE_FILE( + ${CUDA_empty} + ${dependency_file} IMMEDIATE) + ENDIF(NOT EXISTS ${dependency_file}) + # Always include this file to force CMake to run again next + # invocation and rebuild the dependencies. + #message("including dependency_file = ${dependency_file}") + INCLUDE(${dependency_file}) +# ELSE(${CMAKE_MAKE_PROGRAM} MATCHES "make") +# # for IDE generators like MS dev only include the depend files +# # if they exist. This is to prevent ecessive reloading of +# # workspaces after each build. This also means +# # that the depends will not be correct until cmake +# # is run once after the build has completed once. +# # the depend files are created in the wrap tcl/python sections +# # when the .xml file is parsed. +# INCLUDE(${dependency_file} OPTIONAL RESULT_VARIABLE found) +# if (found) +# message("included dependency_file (${dependency_file}) found") +# else() +# message("included dependency_file (${dependency_file}) NOT found") +# endif() +# ENDIF(${CMAKE_MAKE_PROGRAM} MATCHES "make") + + # Now we need to verify the existence of all the included files + # here. If they aren't there we need to just blank this variable and + # make the file regenerate again. +# if(DEFINED CUDA_NVCC_DEPEND) +# message("CUDA_NVCC_DEPEND set") +# else() +# message("CUDA_NVCC_DEPEND NOT set") +# endif() + IF(CUDA_NVCC_DEPEND) + #message("CUDA_NVCC_DEPEND true") + FOREACH(f ${CUDA_NVCC_DEPEND}) + #message("searching for ${f}") + IF(NOT EXISTS ${f}) + #message("file ${f} not found") + SET(CUDA_NVCC_DEPEND_REGENERATE TRUE) + ENDIF() + ENDFOREACH(f) + ELSE(CUDA_NVCC_DEPEND) + #message("CUDA_NVCC_DEPEND false") + # No dependencies, so regenerate the file. + SET(CUDA_NVCC_DEPEND_REGENERATE TRUE) + ENDIF(CUDA_NVCC_DEPEND) + + #message("CUDA_NVCC_DEPEND_REGENERATE = ${CUDA_NVCC_DEPEND_REGENERATE}") + # No incoming dependencies, so we need to generate them. Make the + # output depend on the dependency file itself, which should cause the + # rule to re-run. + IF(CUDA_NVCC_DEPEND_REGENERATE) + SET(CUDA_NVCC_DEPEND ${dependency_file}) + # Force CMake to run again next build + CONFIGURE_FILE( + ${CUDA_empty} + ${dependency_file} IMMEDIATE) + ENDIF(CUDA_NVCC_DEPEND_REGENERATE) + +ENDMACRO(CUDA_INCLUDE_NVCC_DEPENDENCIES) + +############################################################################### +############################################################################### +# Locate CUDA, Set Build Type, etc. +############################################################################### +############################################################################### + +# Set whether we are using emulation or device mode. +OPTION(CUDA_BUILD_EMULATION "Build in Emulation mode" OFF) +# Parse HOST_COMPILATION mode. +OPTION(CUDA_HOST_COMPILATION_CPP "Generated file extension" ON) +# Allow the user to specify if the device code is supposed to be 32 or 64 bit. +if(CMAKE_SIZEOF_VOID_P EQUAL 8) + set(CUDA_64_BIT_DEVICE_CODE_DEFAULT ON) +else() + set(CUDA_64_BIT_DEVICE_CODE_DEFAULT OFF) +endif() +OPTION(CUDA_64_BIT_DEVICE_CODE "Compile device code in 64 bit mode" ${CUDA_64_BIT_DEVICE_CODE_DEFAULT}) +# Prints out extra information about the cuda file during compilation +OPTION(CUDA_BUILD_CUBIN "Generate and parse .cubin files in Device mode." ON) +# Extra user settable flags +SET(CUDA_NVCC_FLAGS "" CACHE STRING "Semi-colon delimit multiple arguments.") +# Attach the build rule to the source file in VS. This option +OPTION(CUDA_ATTACH_VS_BUILD_RULE_TO_CUDA_FILE "Attach the build rule to the CUDA source file. Enable only when the CUDA source file is added to at most one target." OFF) +# Specifies whether the commands used when compiling the .cu file will be printed out. +OPTION(CUDA_VERBOSE_BUILD "Print out the commands run while compiling the CUDA source file. With the Makefile generator this defaults to VERBOSE variable specified on the command line, but can be forced on with this option." OFF) + +# Search for the cuda distribution. +IF(NOT CUDA_INSTALL_PREFIX) + + # Search in the CUDA_BIN_PATH first. + FIND_PATH(CUDA_INSTALL_PREFIX + NAMES nvcc nvcc.exe + PATHS ENV CUDA_BIN_PATH + DOC "Toolkit location." + NO_DEFAULT_PATH + ) + # Now search default paths + FIND_PATH(CUDA_INSTALL_PREFIX + NAMES nvcc nvcc.exe + PATHS /usr/local/bin + /usr/local/cuda/bin + DOC "Toolkit location." + ) + + IF (CUDA_INSTALL_PREFIX) + STRING(REGEX REPLACE "[/\\\\]?bin[/\\\\]?$" "" CUDA_INSTALL_PREFIX ${CUDA_INSTALL_PREFIX}) + # We need to force this back into the cache. + SET(CUDA_INSTALL_PREFIX ${CUDA_INSTALL_PREFIX} CACHE PATH "Toolkit location." FORCE) + ENDIF(CUDA_INSTALL_PREFIX) + IF (NOT EXISTS ${CUDA_INSTALL_PREFIX}) + MESSAGE(FATAL_ERROR "Specify CUDA_INSTALL_PREFIX") + ENDIF (NOT EXISTS ${CUDA_INSTALL_PREFIX}) +ENDIF (NOT CUDA_INSTALL_PREFIX) + +# CUDA_NVCC +IF (NOT CUDA_NVCC) + FIND_PROGRAM(CUDA_NVCC + NAMES nvcc + PATHS "${CUDA_INSTALL_PREFIX}/bin" + ENV CUDA_BIN_PATH + NO_DEFAULT_PATH + ) + # Search default search paths, after we search our own set of paths. + FIND_PROGRAM(CUDA_NVCC nvcc) + IF(NOT CUDA_NVCC) + MESSAGE(FATAL_ERROR "Could not find nvcc") + ELSE(NOT CUDA_NVCC) + MARK_AS_ADVANCED(CUDA_NVCC) + ENDIF(NOT CUDA_NVCC) +ENDIF(NOT CUDA_NVCC) + +# IF (NOT FOUND_CUDA_NVCC_INCLUDE) +FIND_PATH(FOUND_CUDA_NVCC_INCLUDE + device_functions.h # Header included in toolkit + PATHS "${CUDA_INSTALL_PREFIX}/include" + ENV CUDA_INC_PATH + NO_DEFAULT_PATH + ) +# Search default search paths, after we search our own set of paths. +FIND_PATH(FOUND_CUDA_NVCC_INCLUDE device_functions.h) + +IF(NOT FOUND_CUDA_NVCC_INCLUDE) + MESSAGE(FATAL_ERROR "Could not find CUDA headers") +ELSE(NOT FOUND_CUDA_NVCC_INCLUDE) + # Set the user list of include dir to nothing to initialize it. + SET (CUDA_NVCC_INCLUDE_ARGS_USER "") + SET (CUDA_INCLUDE_DIRS ${FOUND_CUDA_NVCC_INCLUDE}) + + MARK_AS_ADVANCED( + FOUND_CUDA_NVCC_INCLUDE + ) +ENDIF(NOT FOUND_CUDA_NVCC_INCLUDE) + +# ENDIF(NOT FOUND_CUDA_NVCC_INCLUDE) + + +MACRO(FIND_LIBRARY_LOCAL_FIRST _var _names _doc) + FIND_LIBRARY(${_var} + NAMES ${_names} + PATHS "${CUDA_INSTALL_PREFIX}/lib" + ENV CUDA_LIB_PATH + DOC ${_doc} + NO_DEFAULT_PATH + ) + # Search default search paths, after we search our own set of paths. + FIND_LIBRARY(${_var} NAMES ${_names} DOC ${_doc}) +ENDMACRO() + +# CUDA_LIBRARIES +IF (NOT CUDA_LIBRARIES) + + FIND_LIBRARY_LOCAL_FIRST(FOUND_CUDART cudart "\"cudart\" library") + + # Check to see if cudart library was found. + IF(NOT FOUND_CUDART) + MESSAGE(FATAL_ERROR "Could not find cudart library (cudart)") + ENDIF(NOT FOUND_CUDART) + + # 1.1 toolkit on linux doesn't appear to have a separate library on + # some platforms. + FIND_LIBRARY_LOCAL_FIRST(FOUND_CUDA cuda "\"cuda\" library (older versions only).") + + # Add cuda library to the link line only if it is found. + IF (FOUND_CUDA) + SET(CUDA_LIBRARIES ${FOUND_CUDA}) + ENDIF(FOUND_CUDA) + + # Always add cudart to the link line. + IF(FOUND_CUDART) + SET(CUDA_LIBRARIES + ${CUDA_LIBRARIES} ${FOUND_CUDART} + ) + MARK_AS_ADVANCED( + CUDA_LIBRARIES + CUDA_LIB + FOUND_CUDA + FOUND_CUDART + ) + ELSE(FOUND_CUDART) + MESSAGE(FATAL_ERROR "Could not find cuda libraries.") + ENDIF(FOUND_CUDART) + +ENDIF(NOT CUDA_LIBRARIES) + +FIND_PATH(CUDA_SDK_INSTALL_PREFIX common/inc/cutil.h + "/usr/local/src/NVIDIA_GPU_Computing_SDK/C/" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\NVIDIA Corporation\\Installed Products\\NVIDIA SDK 10\\Compute;InstallDir]" + "$ENV{NVSDKCUDA_ROOT}" + ) + +# Keep the CUDA_INSTALL_PREFIX first in order to be able to override the +# environment variables. +SET(CUDA_SDK_SEARCH_PATH + "${CUDA_SDK_INSTALL_PREFIX}" + "${CUDA_INSTALL_PREFIX}/local/NVSDK0.2" + "${CUDA_INSTALL_PREFIX}/NVSDK0.2" + "${CUDA_INSTALL_PREFIX}/NV_CUDA_SDK" + "$ENV{HOME}/NVIDIA_CUDA_SDK" + "$ENV{HOME}/NVIDIA_CUDA_SDK_MACOSX" + "/Developer/CUDA" + ) +# CUDA_CUT_INCLUDE_DIRS +IF(NOT CUDA_CUT_INCLUDE_DIRS) + FIND_PATH(FOUND_CUT_INCLUDE + cutil.h + PATHS ${CUDA_SDK_SEARCH_PATH} + PATH_SUFFIXES "common/inc" + DOC "Location of cutil.h" + NO_DEFAULT_PATH + ) + # Now search system paths + FIND_PATH(FOUND_CUT_INCLUDE cutil.h DOC "Location of cutil.h") + + IF(FOUND_CUT_INCLUDE) + SET(CUDA_CUT_INCLUDE_DIRS ${FOUND_CUT_INCLUDE}) + MARK_AS_ADVANCED( + FOUND_CUT_INCLUDE + ) + ENDIF(FOUND_CUT_INCLUDE) +ENDIF(NOT CUDA_CUT_INCLUDE_DIRS) + + +# CUDA_CUT_LIBRARIES +IF(NOT CUDA_CUT_LIBRARIES) + # cutil library is called cutil64 for 64 bit builds on windows. We don't want + # to get these confused, so we are setting the name based on the word size of + # the build. + IF(CMAKE_SIZEOF_VOID_P EQUAL 8) + SET(cuda_cutil_name cutil64) + ELSE(CMAKE_SIZEOF_VOID_P EQUAL 8) + SET(cuda_cutil_name cutil32) + ENDIF(CMAKE_SIZEOF_VOID_P EQUAL 8) + + FIND_LIBRARY(FOUND_CUT + NAMES cutil ${cuda_cutil_name} + PATHS ${CUDA_SDK_SEARCH_PATH} + # The new version of the sdk shows up in common/lib, but the old one is in lib + PATH_SUFFIXES "common/lib" "lib" + DOC "Location of cutil library" + NO_DEFAULT_PATH + ) + # Now search system paths + FIND_LIBRARY(FOUND_CUT NAMES cutil ${cuda_cutil_name} DOC "Location of cutil library") + + IF(FOUND_CUT) + SET(CUDA_CUT_LIBRARIES ${FOUND_CUT}) + MARK_AS_ADVANCED(FOUND_CUT) + ENDIF(FOUND_CUT) + + MACRO(FIND_CUDA_HELPER_LIBS _name) + FIND_LIBRARY_LOCAL_FIRST(FOUND_${_name} ${_name} "\"${_name}\" library") + MARK_AS_ADVANCED(FOUND_${_name}) + ENDMACRO(FIND_CUDA_HELPER_LIBS) + + # Search for cufft and cublas libraries. + FIND_CUDA_HELPER_LIBS(cufftemu) + FIND_CUDA_HELPER_LIBS(cublasemu) + FIND_CUDA_HELPER_LIBS(cufft) + FIND_CUDA_HELPER_LIBS(cublas) + + if (CUDA_BUILD_EMULATION) + SET(CUFFT_LIBRARIES ${FOUND_cufftemu}) + SET(CUBLAS_LIBRARIES ${FOUND_cublasemu}) + else() + SET(CUFFT_LIBRARIES ${FOUND_cufft}) + SET(CUBLAS_LIBRARIES ${FOUND_cublas}) + endif() + +ENDIF(NOT CUDA_CUT_LIBRARIES) + + +############################################################################### +# Add include directories to pass to the nvcc command. +MACRO(CUDA_INCLUDE_DIRECTORIES) + FOREACH(dir ${ARGN}) + list(APPEND CUDA_NVCC_INCLUDE_ARGS_USER "-I${dir}") + ENDFOREACH(dir ${ARGN}) +ENDMACRO(CUDA_INCLUDE_DIRECTORIES) + +CUDA_FIND_HELPER_FILE(parse_cubin cmake) +CUDA_FIND_HELPER_FILE(make2cmake cmake) +CUDA_FIND_HELPER_FILE(run_nvcc cmake) + +############################################################################## +############################################################################## +# This helper macro populates the following variables and setups up custom +# commands and targets to invoke the nvcc compiler to generate C or PTX source +# dependant upon the format parameter. The compiler is invoked once with -M +# to generate a dependency file and a second time with -cuda or -ptx to generate +# a .cpp or .ptx file. +# INPUT: +# cuda_target - Target name +# format - PTX or C +# OUTPUT: +# ${target_srcs} - List of the generated C or PTX source files +# ${cuda_cu_sources} - List of the original CU files +############################################################################## +############################################################################## + +MACRO(CUDA_add_custom_commands cuda_target format) + + IF( ${format} MATCHES "PTX" ) + SET( compile_to_ptx ON ) + ELSEIF( ${format} MATCHES "C") + SET( compile_to_ptx OFF ) + ELSE() + MESSAGE( "Invalid format flag passed to CUDA_add_custom_commands: '${format}'. Defaulting to C") + SET( compile_to_ptx OFF ) + ENDIF() + + # Set up all the command line flags here, so that they can be overriden on a per target basis. + + set(nvcc_flags "") + + # Emulation if the card isn't present. + IF (CUDA_BUILD_EMULATION) + # Emulation. + SET(nvcc_flags ${nvcc_flags} --device-emulation -D_DEVICEEMU -g) + ELSE(CUDA_BUILD_EMULATION) + # Device mode. No flags necessary. + ENDIF(CUDA_BUILD_EMULATION) + + IF(CUDA_HOST_COMPILATION_CPP) + SET(generated_extension cpp) + ELSE(CUDA_HOST_COMPILATION_CPP) + SET(generated_extension c) + SET(nvcc_flags ${nvcc_flags} --host-compilation C) + ENDIF(CUDA_HOST_COMPILATION_CPP) + + IF(CUDA_64_BIT_DEVICE_CODE) + SET(nvcc_flags ${nvcc_flags} -m64) + ELSE() + SET(nvcc_flags ${nvcc_flags} -m32) + ENDIF() + + # This needs to be passed in at this stage, because VS needs to fill out the + # value of VCInstallDir from withing VS. + IF(CMAKE_GENERATOR MATCHES "Visual Studio") + IF( CMAKE_SIZEOF_VOID_P EQUAL 8 ) + # Add nvcc flag for 64b Windows + SET(ccbin_flags -D "\"CCBIN:PATH=$(VCInstallDir)bin\"" ) + ENDIF( CMAKE_SIZEOF_VOID_P EQUAL 8 ) + ENDIF(CMAKE_GENERATOR MATCHES "Visual Studio") + + # Initialize our list of includes with the user ones followed by the CUDA system ones. + set(CUDA_NVCC_INCLUDE_ARGS ${CUDA_NVCC_INCLUDE_ARGS_USER} -I${CUDA_INCLUDE_DIRS} -I${CUDA_CUT_INCLUDE_DIRS}) + # Get the include directories for this directory and use them for our nvcc command. + get_directory_property(CUDA_NVCC_INCLUDE_DIRECTORIES INCLUDE_DIRECTORIES) + if(CUDA_NVCC_INCLUDE_DIRECTORIES) + foreach(dir ${CUDA_NVCC_INCLUDE_DIRECTORIES}) + list(APPEND CUDA_NVCC_INCLUDE_ARGS "-I${dir}") + endforeach() + endif() + + SET(target_srcs "") + SET(cuda_cu_sources "") + + # Iterate over the macro arguments and create custom + # commands for all the .cu files. + FOREACH(file ${ARGN}) + IF(${file} MATCHES ".*\\.cu$") + + # Add a custom target to generate a c or ptx file. ###################### + GET_FILENAME_COMPONENT( basename ${file} NAME ) + IF( compile_to_ptx ) + SET(generated_file "${CMAKE_BINARY_DIR}/lib/ptx/${cuda_target}_generated_${basename}.ptx") + SET(format_flag "-ptx") + FILE(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/lib/ptx) + ELSE( compile_to_ptx ) + SET(generated_file "${CMAKE_BINARY_DIR}/src/cuda/${cuda_target}_generated_${basename}.${generated_extension}") + SET(format_flag "-cuda") + FILE(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/src/cuda) + ENDIF( compile_to_ptx ) + + SET(generated_target "${file}_target") + + + SET(source_file ${CMAKE_CURRENT_SOURCE_DIR}/${file}) + + # Bring in the dependencies. Creates a variable CUDA_NVCC_DEPEND ####### + SET(cmake_dependency_file "${generated_file}.depend") + CUDA_INCLUDE_NVCC_DEPENDENCIES(${cmake_dependency_file}) + SET(NVCC_generated_dependency_file "${generated_file}.NVCC-depend") + + # Convience string for output ########################################### + IF(CUDA_BUILD_EMULATION) + SET(cuda_build_type "Emulation") + ELSE(CUDA_BUILD_EMULATION) + SET(cuda_build_type "Device") + ENDIF(CUDA_BUILD_EMULATION) + + # Build the NVCC made dependency file ################################### + SET(build_cubin OFF) + IF ( NOT CUDA_BUILD_EMULATION AND CUDA_BUILD_CUBIN ) + IF ( NOT compile_to_ptx ) + SET ( build_cubin ON ) + + # Initialize a string containing commands to produce the cubin report. + SET(generated_cubin_file ${generated_file}.cubin.txt) + + ENDIF( NOT compile_to_ptx ) + ENDIF( NOT CUDA_BUILD_EMULATION AND CUDA_BUILD_CUBIN ) + + # Configure the build script + set(custom_target_script "${generated_file}.cmake") + configure_file("${CUDA_run_nvcc}" "${custom_target_script}" @ONLY) + + # So if a user specifies the same cuda file as input more than once, you + # can have bad things happen with dependencies. Here we check an option + # to see if this is the behavior they want. + if(CUDA_ATTACH_VS_BUILD_RULE_TO_CUDA_FILE) + set(main_dep MAIN_DEPENDENCY ${source_file}) + else() + set(main_dep DEPENDS ${source_file}) + endif() + + if(CUDA_VERBOSE_BUILD) + set(verbose_output ON) + elseif(CMAKE_GENERATOR MATCHES "Makefiles") + set(verbose_output "$(VERBOSE)") + else() + set(verbose_output OFF) + endif() + + # Build the generated file and dependency file ########################## + add_custom_command( + OUTPUT ${generated_file} + # These output files depend on the source_file and the contents of cmake_dependency_file + ${main_dep} + DEPENDS ${CUDA_NVCC_DEPEND} + DEPENDS ${custom_target_script} + COMMAND ${CMAKE_COMMAND} ARGS -D verbose:BOOL=${verbose_output} ${ccbin_flags} -P "${custom_target_script}" + COMMENT "Building (${cuda_build_type}) NVCC ${source_file}: ${generated_file}" + ) + + # Make sure the build system knows the file is generated. + set_source_files_properties(${generated_file} PROPERTIES GENERATED TRUE) + + # Add the generated file name to the source list. ###################### + SET(cuda_cu_sources ${cuda_cu_sources} ${source_file}) + SET(target_srcs ${target_srcs} ${generated_file}) + + # Add the other files that we want cmake to clean on a cleanup ########## + list(APPEND CUDA_ADDITIONAL_CLEAN_FILES "${cmake_dependency_file}") + list(REMOVE_DUPLICATES CUDA_ADDITIONAL_CLEAN_FILES) + set(CUDA_ADDITIONAL_CLEAN_FILES ${CUDA_ADDITIONAL_CLEAN_FILES} CACHE INTERNAL "List of intermediate files that are part of the cuda dependency scanning.") + + ELSE(${file} MATCHES ".*\\.cu$") + + # Otherwise add the file name to the source list. + SET(target_srcs ${target_srcs} ${file}) + + ENDIF(${file} MATCHES ".*\\.cu$") + ENDFOREACH(file) + +ENDMACRO(CUDA_add_custom_commands) + + +############################################################################### +############################################################################### +# ADD LIBRARY +############################################################################### +############################################################################### +MACRO(CUDA_ADD_LIBRARY cuda_target) + + # Create custom commands and targets for each file. + CUDA_add_custom_commands( ${cuda_target} C ${ARGN} ) + + # Add the library. + ADD_LIBRARY(${cuda_target} + ${target_srcs} + ${cuda_cu_sources} + ) + + TARGET_LINK_LIBRARIES(${cuda_target} + ${CUDA_LIBRARIES} + ) + +ENDMACRO(CUDA_ADD_LIBRARY cuda_target) + + +############################################################################### +############################################################################### +# ADD EXECUTABLE +############################################################################### +############################################################################### +MACRO(CUDA_ADD_EXECUTABLE cuda_target) + + # Create custom commands and targets for each file. + CUDA_add_custom_commands( ${cuda_target} C ${ARGN} ) + + # Add the library. + ADD_EXECUTABLE(${cuda_target} + ${target_srcs} + ${cuda_cu_sources} + ) + + TARGET_LINK_LIBRARIES(${cuda_target} + ${CUDA_LIBRARIES} + ) + + +ENDMACRO(CUDA_ADD_EXECUTABLE cuda_target) + + +############################################################################### +############################################################################### +# CUDA COMPILE +############################################################################### +############################################################################### +MACRO(CUDA_COMPILE file_variable) + + # Create custom commands and targets for each file. + CUDA_add_custom_commands( cuda_compile C ${ARGN} ) + + SET(${file_variable} ${target_srcs} ${cuda_cu_sources}) + +ENDMACRO(CUDA_COMPILE) + + +############################################################################### +############################################################################### +# CUDA COMPILE PTX +############################################################################### +############################################################################### +MACRO(CUDA_COMPILE_PTX ptx_files cuda_files ) + + # Create custom commands and targets for each file. + CUDA_add_custom_commands( cuda_compile_ptx PTX ${ARGN} ) + + SET( ${ptx_files} ${target_srcs} ) + SET( ${cuda_files} ${cuda_cu_sources} ) + +ENDMACRO(CUDA_COMPILE_PTX) + +############################################################################### +############################################################################### +# CUDA ADD CUTIL TO TARGET +############################################################################### +############################################################################### +macro(CUDA_ADD_CUTIL_TO_TARGET target) + target_link_libraries(${target} ${CUDA_CUT_LIBRARIES}) +endmacro() + +############################################################################### +############################################################################### +# CUDA ADD CUFFT TO TARGET +############################################################################### +############################################################################### +macro(CUDA_ADD_CUFFT_TO_TARGET target) + if (CUDA_BUILD_EMULATION) + target_link_libraries(${target} ${FOUND_cufftemu}) + else() + target_link_libraries(${target} ${FOUND_cufft}) + endif() +endmacro() + +############################################################################### +############################################################################### +# CUDA ADD CUBLAS TO TARGET +############################################################################### +############################################################################### +macro(CUDA_ADD_CUBLAS_TO_TARGET target) + if (CUDA_BUILD_EMULATION) + target_link_libraries(${target} ${FOUND_cublasemu}) + else() + target_link_libraries(${target} ${FOUND_cublas}) + endif() +endmacro() + +############################################################################### +############################################################################### +# CUDA BUILD CLEAN TARGET +############################################################################### +############################################################################### +macro(CUDA_BUILD_CLEAN_TARGET) + # Call this after you add all your CUDA targets, and you will get a convience + # target. You should also make clean after running this target to get the + # build system to generate all the code again. + add_custom_target(CleanCudaDepends + COMMAND ${CMAKE_COMMAND} -E remove ${CUDA_ADDITIONAL_CLEAN_FILES}) + + # Clear out the variable, so the next time we configure it will be empty. + # This is useful so that the files won't persist in the list after targets + # have been removed. + set(CUDA_ADDITIONAL_CLEAN_FILES "" CACHE INTERNAL "List of intermediate files that are part of the cuda dependency scanning.") +endmacro(CUDA_BUILD_CLEAN_TARGET) diff --git a/.svn/pristine/a9/a9b4d93ac03e9cc4801286237eb28c62b5e270e9.svn-base b/.svn/pristine/a9/a9b4d93ac03e9cc4801286237eb28c62b5e270e9.svn-base new file mode 100644 index 0000000..8a91344 --- /dev/null +++ b/.svn/pristine/a9/a9b4d93ac03e9cc4801286237eb28c62b5e270e9.svn-base @@ -0,0 +1,413 @@ +#ifndef SCAN_H +#define SCAN_H + +#include "io_types.h" +#include "data_types.h" +#include "point_type.h" +#include "ptpair.h" + +#include +#include + +#include +#include + +//! SearchTree types +enum nns_type { + simpleKD, ANNTree, BOCTree +}; + +class Scan; +typedef std::vector ScanVector; + +class SearchTree; +class ANNkd_tree; + +/** HOWTO scan +First: Load scans (if you want to use the scanmanager, use ManagedScan) + + BasicScan/ManagedScan::openDirectory(path, type, start, end); + +Pass it to functions (by reference to link it to the same instance) or store it in a global variable + +After loading you might want to set parameters + + for(ScanVector::iterator it = Scan::allScans.begin(); it != Scan::allScans.end(); ++it) { + Scan* scan = *it; + scan->setRangeFilter(maxDist, minDist); + scan->setHeightFilter(top, bottom); // thermo + scan->setReductionParameter(voxelSize, nrpts[, pointtype]); + scan->setSearchTreeParameter(nns_method, use_cuda); + } + +Access the contained data, will be loaded and calculated on demand + + DataXYZ xyz = scan->get("xyz"); + DataXYZ reduced = scan->get("xyz reduced"); + DataRGB rgb = scan->get("rgb"); + + xyz[i][0..2] + reflectance[i] + + unsigned int size = scan->size("xyz reduced"); + +In order to use the prefetching of all requested data field in the scanserver, mark them for use. This is relevant for efficiency, which would otherwise cause loading the files each time another data field is requested. + + scan->get(DATA_XYZ | DATA_RGB | ...); + +Under circumstances the data fields are not available (e.g. no color in uos-type scans) + + DataRGB rgb = scan->get("rgb"); + if(rgb.valid()) { ok, do something } + +If backward-compability to pointer arrays is needed, the PointerArray class can adapt + + BOctTree(PointerArray(scan->get("xyz")).get(), scan->size("xyz"), ...); + +If data isn't needed anymore, flag it for removal + + scan->clear("xyz"); + scan->clear(DATA_XYZ | DATA_RGB | ...); + +Creating data fields with the correct byte size + + scan->create("xyz somethingelse", sizeof(double)*3*N); + +Reading frames in show: + + unsigned int size = scan->readFrames(); + + const double* pose; + AlgoType type; + scan->getFrame(i, pose, type); + +Last, if program ends, clean up + + Scan::closeDirectory(scans); + +**/ + + + +/** + * This class bundles common features of different scan implementations by + * abstraction. It handles the algorithmic parts and leaves IO and other + * features to the deriving classes. + */ +class Scan { + //friend class SearchTree; // TODO: is this neccessary? +public: + enum AlgoType { + INVALID, ICP, ICPINACTIVE, LUM, ELCH, LOOPTORO, LOOPHOGMAN, GRAPHTORO, + GRAPHHOGMAN + }; + + // delete copy-ctor and assignment, scans shouldn't be copied by basic class + // Scan(const Scan& other) = delete; + // Scan& operator=(const Scan& other) = delete; + + virtual ~Scan(); + + //! Holder of all scans - also used in transform for adding frames for each scan at the same time + static std::vector allScans; + + /** + * Attempt to read a directory under \a path and return its read scans. + * No scans are loaded at this point, only checked if all exist. + * + * @param scanserver whether to use managed scans in the scanserver or not + * @param path to the directory containing the scans + * @param type determining which ScanIO to use + * @param start first scan to use + * @param end last scan to use, -1 means from start to last available + */ + static void openDirectory(bool scanserver, const std::string& path, IOType type, + int start, int end = -1); + + /** + * "Close" a directory by deleting all its scans and emptying the + * Scan::allScans vector. + */ + static void closeDirectory(); + + + /* Input filtering and parameter functions */ + + + //! Input filtering for all points based on their euclidean length + virtual void setRangeFilter(double max, double min) = 0; + + //! Input filtering for all points based on their height + virtual void setHeightFilter(double top, double bottom) = 0; + + //! Set reduction parameters, but don't reduce yet + virtual void setReductionParameter(double voxelSize, int nrpts = 0, + PointType pointtype = PointType()); + + //! Set SearchTree type, but don't create it yet + void setSearchTreeParameter(int nns_method, bool cuda_enabled); + + /** + * Set octtree parameters for show + * @param loadOct will load the serialized octtree from disk regardless + * @param saveOct serialize octtree if not loaded by loadOct after creation + */ + virtual void setOcttreeParameter(double reduction_voxelSize, + double octtree_voxelSize, PointType pointtype, + bool loadOct, bool saveOct); + + + /* Basic getter functions */ + + + inline const double* get_rPos() const; + inline const double* get_rPosTheta() const; + inline const double* get_rPosQuat() const; + //! Pose matrix after initial and match transformations (org+dalign) + inline const double* get_transMat() const; + //! Original pose matrix after initial transform + inline const double* get_transMatOrg() const; + //! Accumulated delta transformation matrix + inline const double* getDAlign() const; + + inline SearchTree* getSearchTree(); + inline ANNkd_tree* getANNTree() const; + + virtual const char* getIdentifier() const = 0; + + //! Determine the maximum number of reduced points in \a scans + static unsigned int getMaxCountReduced(ScanVector& scans); + + + /* Functions for altering data fields, implementation specific */ + + + /** + * Get the data field \a identifier, calculate it on demand if neccessary. + * + * If "xyz reduced" or "xyz reduced original" is requested, the reduction is + * started with "xyz" as input. + */ + virtual DataPointer get(const std::string& identifier) = 0; + + /** + * Load the requested IODataTypes, joined by |, from the scan file. + * + * This feature is neccessary to load multiple data fields at once, not all + * one by one with each get("...") access. + */ + virtual void get(unsigned int types) = 0; + + /** + * Creates a data field \a identifier with \a size bytes. + */ + virtual DataPointer create(const std::string& identifier, unsigned int size) = 0; + + /** + * Clear the data field \a identifier, removing its allocated memory if + * possible or marking it for prioritized removal. + */ + virtual void clear(const std::string& identifier) = 0; + + //! Extension to clear for more than one identifier, e.g. clear(DATA_XYZ | DATA_RGB); + void clear(unsigned int types); + + /** + * Get the size of \a identifier as if it were requested and size() called + * upon its type specialized DataPointer class. + * e.g size("xyz reduced") + */ + template + unsigned int size(const std::string& identifier) { + return (T(get(identifier))).size(); + } + + + /* Frame handling functions */ + + + /** + * Open the .frames-file and read its contents. If not read, the frame list + * will be empty. + * @return count of frames if file has been read, zero otherwise + */ + virtual unsigned int readFrames() = 0; + + /** + * Write the accumulated frames into a .frames-file. + */ + virtual void saveFrames() = 0; + + //! Count of frames + virtual unsigned int getFrameCount() = 0; + + //! Get contents of a frame, pass matrix pointer and type by reference + virtual void getFrame(unsigned int i, const double*& pose_matrix, AlgoType& type) = 0; + +protected: + /** + * Called from transform, this will add its current transMat pose with + * the given type as a frame into the list of frames + */ + virtual void addFrame(AlgoType type) = 0; + +public: + + + /* Direct creation of reduced points and search tree */ + + + //! Apply reduction and initial transMatOrg transformation + void toGlobal(); + + //! Copy reduced points to original and create search tree on it + void createSearchTree(); + + + /* Common transformation and matching functions */ + void mergeCoordinatesWithRoboterPosition(Scan* prevScan); + void transformAll(const double alignxf[16]); + void transformAll(const double alignQuat[4], const double alignt[3]); + + void transform(const double alignxf[16], + const AlgoType type, int islum = 0); + void transform(const double alignQuat[4], + const double alignt[3], const AlgoType type, int islum = 0); + void transformToMatrix(double alignxf[16], + const AlgoType type, int islum = 0); + void transformToEuler(double rP[3], double rPT[3], + const AlgoType type, int islum = 0); + void transformToQuat(double rP[3], double rPQ[4], + const AlgoType type, int islum = 0); + + // Scan matching functions + static void getPtPairs(std::vector *pairs, + Scan* Source, Scan* Target, + int thread_num, + int rnd, double max_dist_match2, double &sum, + double *centroid_m, double *centroid_d); + static void getNoPairsSimple(std::vector &diff, + Scan* Source, Scan* Target, + int thread_num, + double max_dist_match2); + static void getPtPairsSimple(std::vector *pairs, + Scan* Source, Scan* Target, + int thread_num, + int rnd, double max_dist_match2, + double *centroid_m, double *centroid_d); + static void getPtPairsParallel(std::vector *pairs, + Scan* Source, Scan* Target, + int thread_num, int step, + int rnd, double max_dist_match2, + double *sum, + double centroid_m[OPENMP_NUM_THREADS][3], + double centroid_d[OPENMP_NUM_THREADS][3]); + +protected: + /** + * The pose of the scan + * Note: rPos/rPosTheta and transMat _should_ + * always represent the same pose!!! + */ + double rPos[3], //!< 3D position + rPosTheta[3], //!< 3D rotation in Euler representation + rQuat[4], //!< 3D rotation in Quaternion representation + transMat[16], //!< (4x4) transformation matrix + transMatOrg[16]; //!< The original pose of the scan, e.g., from odometry + + /** + * The dalignxf transformation represents the delta transformation virtually applied + * to the tree and is used to compute are actual corresponding points. + */ + double dalignxf[16]; + + //! Run ICP on GPU instead of CPU + bool cuda_enabled; + + //! Defines the method used for nearest neighbor search and which tree to use + int nns_method; + + //! SearchTree for point pair matching, works on the search points + SearchTree* kd; + + //! This KD tree is created only for the CUDA usages + ANNkd_tree* ann_kd_tree; + + //! Voxelsize of the octtree used for reduction + double reduction_voxelSize; + + //! Which point to take out of the reduction octtree, 0 for center + int reduction_nrpts; + + //! Pointtype used for the reduction octtree + PointType reduction_pointtype; + + //! Type of the searchtree to be created + int searchtree_nnstype; + + //! Use CUDA for searching + bool searchtree_cuda_enabled; + + //! Flag whether "xyz reduced" has been initialized for this Scan yet + bool m_has_reduced; + + //! Reduction value used for octtree input + double octtree_reduction_voxelSize; + + //! Voxelsize used in the octtree itself + double octtree_voxelSize; + + //! Pointtype for the Octtree + PointType octtree_pointtype; + + //! Flags to load or save the octtrees from/to storage + bool octtree_loadOct, octtree_saveOct; + + /** + * Basic initializing constructor calling the initalization function. + * Can only be called from deriving classes. + */ + Scan(); + + /** + * This function handles the reduction of points. It builds a lock for + * multithread-safety and calls caldReducedOnDemandPrivate. + * + * The intention is to reduce points, transforme them to the initial pose and + * then copy them to original for the SearchTree. + */ + void calcReducedOnDemand(); + + //! Create specific SearchTree variants matching the capability of the Scan + virtual void createSearchTreePrivate() = 0; + + //! Create reduced points in a multithread-safe environment matching the capability of the Scan + virtual void calcReducedOnDemandPrivate() = 0; + + //! Internal function of transform which alters the reduced points + void transformReduced(const double alignxf[16]); + + //! Internal function of transform which handles the matrices + void transformMatrix(const double alignxf[16]); + + //! Creating reduced points + void calcReducedPoints(); + + //! Copies reduced points to original points without any transformation. + void copyReducedToOriginal(); + + //! Inverse functionality of copyReducedToOriginal. + void copyOriginalToReduced(); + +private: + //! flag for openDirectory and closeDirectory to distinguish the scans + static bool scanserver; + + //! Mutex for safely reducing points and creating the search tree just once in a multithreaded environment + // it can not be compiled in wein32 use boost 1.48, therefore we remeove it temporarily +// boost::mutex m_mutex_reduction, m_mutex_create_tree; +}; + +#include "scan.icc" + +#endif //SCAN_H diff --git a/.svn/pristine/a9/a9eb3942611b4191691a8ce3911926dde1bc0245.svn-base b/.svn/pristine/a9/a9eb3942611b4191691a8ce3911926dde1bc0245.svn-base new file mode 100644 index 0000000..19344bb --- /dev/null +++ b/.svn/pristine/a9/a9eb3942611b4191691a8ce3911926dde1bc0245.svn-base @@ -0,0 +1,450 @@ +//$$ fft.cpp Fast fourier transform + +// Copyright (C) 1991,2,3,4,8: R B Davies + + +#define WANT_MATH +// #define WANT_STREAM + +#include "include.h" + +#include "newmatap.h" + +// #include "newmatio.h" + +#ifdef use_namespace +namespace NEWMAT { +#endif + +#ifdef DO_REPORT +#define REPORT { static ExeCounter ExeCount(__LINE__,19); ++ExeCount; } +#else +#define REPORT {} +#endif + +static void cossin(int n, int d, Real& c, Real& s) +// calculate cos(twopi*n/d) and sin(twopi*n/d) +// minimise roundoff error +{ + REPORT + long n4 = n * 4; int sector = (int)floor( (Real)n4 / (Real)d + 0.5 ); + n4 -= sector * d; + if (sector < 0) { REPORT sector = 3 - (3 - sector) % 4; } + else { REPORT sector %= 4; } + Real ratio = 1.5707963267948966192 * (Real)n4 / (Real)d; + + switch (sector) + { + case 0: REPORT c = cos(ratio); s = sin(ratio); break; + case 1: REPORT c = -sin(ratio); s = cos(ratio); break; + case 2: REPORT c = -cos(ratio); s = -sin(ratio); break; + case 3: REPORT c = sin(ratio); s = -cos(ratio); break; + } +} + +static void fftstep(ColumnVector& A, ColumnVector& B, ColumnVector& X, + ColumnVector& Y, int after, int now, int before) +{ + REPORT + Tracer trace("FFT(step)"); + // const Real twopi = 6.2831853071795864769; + const int gamma = after * before; const int delta = now * after; + // const Real angle = twopi / delta; Real temp; + // Real r_omega = cos(angle); Real i_omega = -sin(angle); + Real r_arg = 1.0; Real i_arg = 0.0; + Real* x = X.Store(); Real* y = Y.Store(); // pointers to array storage + const int m = A.Nrows() - gamma; + + for (int j = 0; j < now; j++) + { + Real* a = A.Store(); Real* b = B.Store(); // pointers to array storage + Real* x1 = x; Real* y1 = y; x += after; y += after; + for (int ia = 0; ia < after; ia++) + { + // generate sins & cosines explicitly rather than iteratively + // for more accuracy; but slower + cossin(-(j*after+ia), delta, r_arg, i_arg); + + Real* a1 = a++; Real* b1 = b++; Real* x2 = x1++; Real* y2 = y1++; + if (now==2) + { + REPORT int ib = before; + if (ib) for (;;) + { + REPORT + Real* a2 = m + a1; Real* b2 = m + b1; a1 += after; b1 += after; + Real r_value = *a2; Real i_value = *b2; + *x2 = r_value * r_arg - i_value * i_arg + *(a2-gamma); + *y2 = r_value * i_arg + i_value * r_arg + *(b2-gamma); + if (!(--ib)) break; + x2 += delta; y2 += delta; + } + } + else + { + REPORT int ib = before; + if (ib) for (;;) + { + REPORT + Real* a2 = m + a1; Real* b2 = m + b1; a1 += after; b1 += after; + Real r_value = *a2; Real i_value = *b2; + int in = now-1; while (in--) + { + // it should be possible to make this faster + // hand code for now = 2,3,4,5,8 + // use symmetry to halve number of operations + a2 -= gamma; b2 -= gamma; Real temp = r_value; + r_value = r_value * r_arg - i_value * i_arg + *a2; + i_value = temp * i_arg + i_value * r_arg + *b2; + } + *x2 = r_value; *y2 = i_value; + if (!(--ib)) break; + x2 += delta; y2 += delta; + } + } + + // temp = r_arg; + // r_arg = r_arg * r_omega - i_arg * i_omega; + // i_arg = temp * i_omega + i_arg * r_omega; + + } + } +} + + +void FFTI(const ColumnVector& U, const ColumnVector& V, + ColumnVector& X, ColumnVector& Y) +{ + // Inverse transform + Tracer trace("FFTI"); + REPORT + FFT(U,-V,X,Y); + const Real n = X.Nrows(); X /= n; Y /= (-n); +} + +void RealFFT(const ColumnVector& U, ColumnVector& X, ColumnVector& Y) +{ + // Fourier transform of a real series + Tracer trace("RealFFT"); + REPORT + const int n = U.Nrows(); // length of arrays + const int n2 = n / 2; + if (n != 2 * n2) + Throw(ProgramException("Vector length not multiple of 2", U)); + ColumnVector A(n2), B(n2); + Real* a = A.Store(); Real* b = B.Store(); Real* u = U.Store(); int i = n2; + while (i--) { *a++ = *u++; *b++ = *u++; } + FFT(A,B,A,B); + int n21 = n2 + 1; + X.ReSize(n21); Y.ReSize(n21); + i = n2 - 1; + a = A.Store(); b = B.Store(); // first els of A and B + Real* an = a + i; Real* bn = b + i; // last els of A and B + Real* x = X.Store(); Real* y = Y.Store(); // first els of X and Y + Real* xn = x + n2; Real* yn = y + n2; // last els of X and Y + + *x++ = *a + *b; *y++ = 0.0; // first complex element + *xn-- = *a++ - *b++; *yn-- = 0.0; // last complex element + + int j = -1; i = n2/2; + while (i--) + { + Real c,s; cossin(j--,n,c,s); + Real am = *a - *an; Real ap = *a++ + *an--; + Real bm = *b - *bn; Real bp = *b++ + *bn--; + Real samcbp = s * am + c * bp; Real sbpcam = s * bp - c * am; + *x++ = 0.5 * ( ap + samcbp); *y++ = 0.5 * ( bm + sbpcam); + *xn-- = 0.5 * ( ap - samcbp); *yn-- = 0.5 * (-bm + sbpcam); + } +} + +void RealFFTI(const ColumnVector& A, const ColumnVector& B, ColumnVector& U) +{ + // inverse of a Fourier transform of a real series + Tracer trace("RealFFTI"); + REPORT + const int n21 = A.Nrows(); // length of arrays + if (n21 != B.Nrows() || n21 == 0) + Throw(ProgramException("Vector lengths unequal or zero", A, B)); + const int n2 = n21 - 1; const int n = 2 * n2; int i = n2 - 1; + + ColumnVector X(n2), Y(n2); + Real* a = A.Store(); Real* b = B.Store(); // first els of A and B + Real* an = a + n2; Real* bn = b + n2; // last els of A and B + Real* x = X.Store(); Real* y = Y.Store(); // first els of X and Y + Real* xn = x + i; Real* yn = y + i; // last els of X and Y + + Real hn = 0.5 / n2; + *x++ = hn * (*a + *an); *y++ = - hn * (*a - *an); + a++; an--; b++; bn--; + int j = -1; i = n2/2; + while (i--) + { + Real c,s; cossin(j--,n,c,s); + Real am = *a - *an; Real ap = *a++ + *an--; + Real bm = *b - *bn; Real bp = *b++ + *bn--; + Real samcbp = s * am - c * bp; Real sbpcam = s * bp + c * am; + *x++ = hn * ( ap + samcbp); *y++ = - hn * ( bm + sbpcam); + *xn-- = hn * ( ap - samcbp); *yn-- = - hn * (-bm + sbpcam); + } + FFT(X,Y,X,Y); // have done inverting elsewhere + U.ReSize(n); i = n2; + x = X.Store(); y = Y.Store(); Real* u = U.Store(); + while (i--) { *u++ = *x++; *u++ = - *y++; } +} + +void FFT(const ColumnVector& U, const ColumnVector& V, + ColumnVector& X, ColumnVector& Y) +{ + // from Carl de Boor (1980), Siam J Sci Stat Comput, 1 173-8 + // but first try Sande and Gentleman + Tracer trace("FFT"); + REPORT + const int n = U.Nrows(); // length of arrays + if (n != V.Nrows() || n == 0) + Throw(ProgramException("Vector lengths unequal or zero", U, V)); + if (n == 1) { REPORT X = U; Y = V; return; } + + // see if we can use the newfft routine + if (!FFT_Controller::OnlyOldFFT && FFT_Controller::CanFactor(n)) + { + REPORT + X = U; Y = V; + if ( FFT_Controller::ar_1d_ft(n,X.Store(),Y.Store()) ) return; + } + + ColumnVector B = V; + ColumnVector A = U; + X.ReSize(n); Y.ReSize(n); + const int nextmx = 8; +#ifndef ATandT + int prime[8] = { 2,3,5,7,11,13,17,19 }; +#else + int prime[8]; + prime[0]=2; prime[1]=3; prime[2]=5; prime[3]=7; + prime[4]=11; prime[5]=13; prime[6]=17; prime[7]=19; +#endif + int after = 1; int before = n; int next = 0; bool inzee = true; + int now = 0; int b1; // initialised to keep gnu happy + + do + { + for (;;) + { + if (next < nextmx) { REPORT now = prime[next]; } + b1 = before / now; if (b1 * now == before) { REPORT break; } + next++; now += 2; + } + before = b1; + + if (inzee) { REPORT fftstep(A, B, X, Y, after, now, before); } + else { REPORT fftstep(X, Y, A, B, after, now, before); } + + inzee = !inzee; after *= now; + } + while (before != 1); + + if (inzee) { REPORT A.Release(); X = A; B.Release(); Y = B; } +} + +// Trigonometric transforms +// see Charles Van Loan (1992) "Computational frameworks for the fast +// Fourier transform" published by SIAM; section 4.4. + +void DCT_II(const ColumnVector& U, ColumnVector& V) +{ + // Discrete cosine transform, type II, of a real series + Tracer trace("DCT_II"); + REPORT + const int n = U.Nrows(); // length of arrays + const int n2 = n / 2; const int n4 = n * 4; + if (n != 2 * n2) + Throw(ProgramException("Vector length not multiple of 2", U)); + ColumnVector A(n); + Real* a = A.Store(); Real* b = a + n; Real* u = U.Store(); + int i = n2; + while (i--) { *a++ = *u++; *(--b) = *u++; } + ColumnVector X, Y; + RealFFT(A, X, Y); A.CleanUp(); + V.ReSize(n); + Real* x = X.Store(); Real* y = Y.Store(); + Real* v = V.Store(); Real* w = v + n; + *v = *x; + int k = 0; i = n2; + while (i--) + { + Real c, s; cossin(++k, n4, c, s); + Real xi = *(++x); Real yi = *(++y); + *(++v) = xi * c + yi * s; *(--w) = xi * s - yi * c; + } +} + +void DCT_II_inverse(const ColumnVector& V, ColumnVector& U) +{ + // Inverse of discrete cosine transform, type II + Tracer trace("DCT_II_inverse"); + REPORT + const int n = V.Nrows(); // length of array + const int n2 = n / 2; const int n4 = n * 4; const int n21 = n2 + 1; + if (n != 2 * n2) + Throw(ProgramException("Vector length not multiple of 2", V)); + ColumnVector X(n21), Y(n21); + Real* x = X.Store(); Real* y = Y.Store(); + Real* v = V.Store(); Real* w = v + n; + *x = *v; *y = 0.0; + int i = n2; int k = 0; + while (i--) + { + Real c, s; cossin(++k, n4, c, s); + Real vi = *(++v); Real wi = *(--w); + *(++x) = vi * c + wi * s; *(++y) = vi * s - wi * c; + } + ColumnVector A; RealFFTI(X, Y, A); + X.CleanUp(); Y.CleanUp(); U.ReSize(n); + Real* a = A.Store(); Real* b = a + n; Real* u = U.Store(); + i = n2; + while (i--) { *u++ = *a++; *u++ = *(--b); } +} + +void DST_II(const ColumnVector& U, ColumnVector& V) +{ + // Discrete sine transform, type II, of a real series + Tracer trace("DST_II"); + REPORT + const int n = U.Nrows(); // length of arrays + const int n2 = n / 2; const int n4 = n * 4; + if (n != 2 * n2) + Throw(ProgramException("Vector length not multiple of 2", U)); + ColumnVector A(n); + Real* a = A.Store(); Real* b = a + n; Real* u = U.Store(); + int i = n2; + while (i--) { *a++ = *u++; *(--b) = -(*u++); } + ColumnVector X, Y; + RealFFT(A, X, Y); A.CleanUp(); + V.ReSize(n); + Real* x = X.Store(); Real* y = Y.Store(); + Real* v = V.Store(); Real* w = v + n; + *(--w) = *x; + int k = 0; i = n2; + while (i--) + { + Real c, s; cossin(++k, n4, c, s); + Real xi = *(++x); Real yi = *(++y); + *v++ = xi * s - yi * c; *(--w) = xi * c + yi * s; + } +} + +void DST_II_inverse(const ColumnVector& V, ColumnVector& U) +{ + // Inverse of discrete sine transform, type II + Tracer trace("DST_II_inverse"); + REPORT + const int n = V.Nrows(); // length of array + const int n2 = n / 2; const int n4 = n * 4; const int n21 = n2 + 1; + if (n != 2 * n2) + Throw(ProgramException("Vector length not multiple of 2", V)); + ColumnVector X(n21), Y(n21); + Real* x = X.Store(); Real* y = Y.Store(); + Real* v = V.Store(); Real* w = v + n; + *x = *(--w); *y = 0.0; + int i = n2; int k = 0; + while (i--) + { + Real c, s; cossin(++k, n4, c, s); + Real vi = *v++; Real wi = *(--w); + *(++x) = vi * s + wi * c; *(++y) = - vi * c + wi * s; + } + ColumnVector A; RealFFTI(X, Y, A); + X.CleanUp(); Y.CleanUp(); U.ReSize(n); + Real* a = A.Store(); Real* b = a + n; Real* u = U.Store(); + i = n2; + while (i--) { *u++ = *a++; *u++ = -(*(--b)); } +} + +void DCT_inverse(const ColumnVector& V, ColumnVector& U) +{ + // Inverse of discrete cosine transform, type I + Tracer trace("DCT_inverse"); + REPORT + const int n = V.Nrows()-1; // length of transform + const int n2 = n / 2; const int n21 = n2 + 1; + if (n != 2 * n2) + Throw(ProgramException("Vector length not multiple of 2", V)); + ColumnVector X(n21), Y(n21); + Real* x = X.Store(); Real* y = Y.Store(); Real* v = V.Store(); + Real vi = *v++; *x++ = vi; *y++ = 0.0; + Real sum1 = vi / 2.0; Real sum2 = sum1; vi = *v++; + int i = n2-1; + while (i--) + { + Real vi2 = *v++; sum1 += vi2 + vi; sum2 += vi2 - vi; + *x++ = vi2; vi2 = *v++; *y++ = vi - vi2; vi = vi2; + } + sum1 += vi; sum2 -= vi; + vi = *v; *x = vi; *y = 0.0; vi /= 2.0; sum1 += vi; sum2 += vi; + ColumnVector A; RealFFTI(X, Y, A); + X.CleanUp(); Y.CleanUp(); U.ReSize(n+1); + Real* a = A.Store(); Real* b = a + n; Real* u = U.Store(); v = u + n; + i = n2; int k = 0; *u++ = sum1 / n2; *v-- = sum2 / n2; + while (i--) + { + Real s = sin(1.5707963267948966192 * (++k) / n2); + Real ai = *(++a); Real bi = *(--b); + Real bz = (ai - bi) / 4 / s; Real az = (ai + bi) / 2; + *u++ = az - bz; *v-- = az + bz; + } +} + +void DCT(const ColumnVector& U, ColumnVector& V) +{ + // Discrete cosine transform, type I + Tracer trace("DCT"); + REPORT + DCT_inverse(U, V); + V *= (V.Nrows()-1)/2; +} + +void DST_inverse(const ColumnVector& V, ColumnVector& U) +{ + // Inverse of discrete sine transform, type I + Tracer trace("DST_inverse"); + REPORT + const int n = V.Nrows()-1; // length of transform + const int n2 = n / 2; const int n21 = n2 + 1; + if (n != 2 * n2) + Throw(ProgramException("Vector length not multiple of 2", V)); + ColumnVector X(n21), Y(n21); + Real* x = X.Store(); Real* y = Y.Store(); Real* v = V.Store(); + Real vi = *(++v); *x++ = 2 * vi; *y++ = 0.0; + int i = n2-1; + while (i--) { *y++ = *(++v); Real vi2 = *(++v); *x++ = vi2 - vi; vi = vi2; } + *x = -2 * vi; *y = 0.0; + ColumnVector A; RealFFTI(X, Y, A); + X.CleanUp(); Y.CleanUp(); U.ReSize(n+1); + Real* a = A.Store(); Real* b = a + n; Real* u = U.Store(); v = u + n; + i = n2; int k = 0; *u++ = 0.0; *v-- = 0.0; + while (i--) + { + Real s = sin(1.5707963267948966192 * (++k) / n2); + Real ai = *(++a); Real bi = *(--b); + Real az = (ai + bi) / 4 / s; Real bz = (ai - bi) / 2; + *u++ = az - bz; *v-- = az + bz; + } +} + +void DST(const ColumnVector& U, ColumnVector& V) +{ + // Discrete sine transform, type I + Tracer trace("DST"); + REPORT + DST_inverse(U, V); + V *= (V.Nrows()-1)/2; +} + + + +#ifdef use_namespace +} +#endif + + diff --git a/.svn/pristine/aa/aa2c13e21d1be6d3bb0c7672c95d3c97457a168d.svn-base b/.svn/pristine/aa/aa2c13e21d1be6d3bb0c7672c95d3c97457a168d.svn-base new file mode 100644 index 0000000..4dbf440 --- /dev/null +++ b/.svn/pristine/aa/aa2c13e21d1be6d3bb0c7672c95d3c97457a168d.svn-base @@ -0,0 +1,241 @@ +/* +This is a Optical-Character-Recognition program +Copyright (C) 2000-2009 Joerg Schulenburg + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + see README for EMAIL-address + + sometimes I have written comments in german language, sorry for that + + This file was retrieved from pgm2asc.cc of Joerg, in order to have + a library of the ocr-engine from Klaas Freitag + + */ +#include "config.h" +#include +#include +#include +#include +#ifdef HAVE_GETTIMEOFDAY +#include +#endif +#ifdef HAVE_UNISTD_H +#include +#endif + +#include "pnm.h" +#include "pgm2asc.h" +#include "pcx.h" +#include "ocr0.h" /* only_numbers */ +#include "progress.h" +#include "version.h" + +static void out_version(int v) { + fprintf(stderr, " Optical Character Recognition --- gocr " + version_string " " release_string "\n" + " Copyright (C) 2001-2009 Joerg Schulenburg GPG=1024D/53BDFBE3\n" + " released under the GNU General Public License\n"); + /* as recommended, (c) and license should be part of the binary */ + /* no email because of SPAM, see README for contacting the author */ + if (v) + fprintf(stderr, " use option -h for help\n"); + if (v & 2) + exit(1); + return; +} + +static void help(void) { + out_version(0); + /* output is shortened to essentials, see manual page for details */ + fprintf(stderr, + " using: gocr [options] pnm_file_name # use - for stdin\n" + " options (see gocr manual pages for more details):\n" + " -h, --help\n" + " -i name - input image file (pnm,pgm,pbm,ppm,pcx,...)\n" + " -o name - output file (redirection of stdout)\n" + " -e name - logging file (redirection of stderr)\n" + " -x name - progress output to fifo (see manual)\n" + " -p name - database path including final slash (default is ./db/)\n"); + fprintf(stderr, /* string length less than 509 bytes for ISO C89 */ + " -f fmt - output format (ISO8859_1 TeX HTML XML UTF8 ASCII)\n" + " -l num - threshold grey level 0<160<=255 (0 = autodetect)\n" + " -d num - dust_size (remove small clusters, -1 = autodetect)\n" + " -s num - spacewidth/dots (0 = autodetect)\n" + " -v num - verbose (see manual page)\n" + " -c string - list of chars (debugging, see manual)\n" + " -C string - char filter (ex. hexdigits: ""0-9A-Fx"", only ASCII)\n" + " -m num - operation modes (bitpattern, see manual)\n"); + fprintf(stderr, /* string length less than 509 bytes for ISO C89 */ + " -a num - value of certainty (in percent, 0..100, default=95)\n" + " -u string - output this string for every unrecognized character\n"); + fprintf(stderr, /* string length less than 509 bytes for ISO C89 */ + " examples:\n" + "\tgocr -m 4 text1.pbm # do layout analyzis\n" + "\tgocr -m 130 -p ./database/ text1.pbm # extend database\n" + "\tdjpeg -pnm -gray text.jpg | gocr - # use jpeg-file via pipe\n" + "\n"); + fprintf(stderr, " webpage: http://jocr.sourceforge.net/\n"); + exit(0); +} + +#ifdef HAVE_GETTIMEOFDAY +/* from the glibc documentation */ +static int timeval_subtract (struct timeval *result, struct timeval *x, + struct timeval *y) { + + /* Perform the carry for the later subtraction by updating Y. */ + if (x->tv_usec < y->tv_usec) { + int nsec = (y->tv_usec - x->tv_usec) / 1000000 + 1; + y->tv_usec -= 1000000 * nsec; + y->tv_sec += nsec; + } + if (x->tv_usec - y->tv_usec > 1000000) { + int nsec = (x->tv_usec - y->tv_usec) / 1000000; + y->tv_usec += 1000000 * nsec; + y->tv_sec -= nsec; + } + + /* Compute the time remaining to wait. + `tv_usec' is certainly positive. */ + result->tv_sec = x->tv_sec - y->tv_sec; + result->tv_usec = x->tv_usec - y->tv_usec; + + /* Return 1 if result is negative. */ + return x->tv_sec < y->tv_sec; +} +#endif + +static void process_arguments(job_t *job) +{ + +#ifdef HAVE_PGM_H + pnm_init(&argn, &argv); +#endif + +job->cfg.out_format=XML; else +job->cfg.cfilter = "0-9"; + +job->src.fname = "patch00000.pgm"; // TODO +} + +static int read_picture(job_t *job) { + int rc=0; + assert(job); + + if (strstr(job->src.fname, ".pcx")) + readpcx(job->src.fname, &job->src.p, job->cfg.verbose); + else + rc=readpgm(job->src.fname, &job->src.p, job->cfg.verbose); + return rc; /* 1 for multiple images, 0 else */ +} + +/* subject of change, we need more output for XML (ToDo) */ +void print_output(job_t *job) { + int linecounter = 0; + const char *line; + + assert(job); + + linecounter = 0; + line = getTextLine(linecounter++); + while (line) { + /* notice: decode() is shiftet to getTextLine since 0.38 */ + fputs(line, stdout); + if (job->cfg.out_format==HTML) fputs("
",stdout); + if (job->cfg.out_format!=XML) fputc('\n', stdout); + line = getTextLine(linecounter++); + } + free_textlines(); +} + +/* FIXME jb: remove JOB; */ +job_t *JOB; + + +/* ------------------------------------------------------------- +// ------ MAIN - replace this by your own aplication! +// ------------------------------------------------------------- */ +int main(int argn, char *argv[]) { + int multipnm=1; + job_t job; + setvbuf(stdout, (char *) NULL, _IONBF, 0); /* not buffered */ + + while (multipnm==1) { + + job_init(&job); + +// process_arguments(&job, argn, argv); + + mark_start(&job); + + multipnm = read_picture(&job); + /* separation of main and rest for using as lib + this will be changed later => introduction of set_option() + for better communication to the engine */ + if (multipnm<0) break; /* read error */ + + /* call main loop */ + pgm2asc(&job); + + mark_end(&job); + + job_free(&job); + + } + + return 0; +} + + + +void test() { + int multipnm=1; + job_t job; + + while (multipnm==1) { + job_init(&job); + + job->cfg.out_format=XML; + job->cfg.cfilter = "0-9"; + job->src.fname = "patch00000.pgm"; // TODO + + multipnm = read_picture(&job); + /* separation of main and rest for using as lib + this will be changed later => introduction of set_option() + for better communication to the engine */ + if (multipnm<0) break; /* read error */ + + /* call main loop */ + pgm2asc(&job); + + int linecounter = 0; + const char *line; + + assert(job); + + linecounter = 0; + line = getTextLine(linecounter++); + while (line) { + //fputs(line, stdout); + //Interpret line here + + line = getTextLine(linecounter++); + } + free_textlines(); + job_free(&job); + } + return; +} diff --git a/.svn/pristine/aa/aab1465d67abf5a9f1931f8e19ebeefa1a6ddee0.svn-base b/.svn/pristine/aa/aab1465d67abf5a9f1931f8e19ebeefa1a6ddee0.svn-base new file mode 100644 index 0000000..a915c99 --- /dev/null +++ b/.svn/pristine/aa/aab1465d67abf5a9f1931f8e19ebeefa1a6ddee0.svn-base @@ -0,0 +1,214 @@ +/* + * icp6Dlumeuler implementation + * + * Copyright (C) Andreas Nuechter, Alexandru-Eugen Ichim + * + * Released under the GPL version 3. + * + */ + + +/** @file + * @brief Implementation of the ICP error function minimization via + * linearization using euler angles + * + * @author Andreas Nuechter. Jacobs University Bremen gGmbH, Germany + * @author Alexandru-Eugen Ichim. Jacobs University Bremen gGmbH, Germany + * + */ + +#include "slam6d/icp6Dlumeuler.h" + +#include "slam6d/globals.icc" +#include +using std::ios; +using std::resetiosflags; +using std::setiosflags; + +#include "newmat/newmat.h" +#include "newmat/newmatap.h" + +using namespace NEWMAT; + +/** + * computes the rotation matrix consisting + * of a rotation and translation that + * minimizes the root-mean-square error of the + * point pairs using linearization with euler angles + * @param pairs Vector of point pairs (pairs of corresponding points) + * @param *alignfx The resulting transformation matrix + * @return Error estimation of the matching (rms) + */ +double icp6D_LUMEULER::Point_Point_Align(const vector& pairs, double *alignfx, + const double centroid_m[3], const double centroid_d[3]) +{ + // alignxf is filled with the current pose, rPos is the translation, rPosTheta are the 3 euler angles theta_x, theta_y, theta_z + double rPos[3], rPosTheta[3]; + Matrix4ToEuler(alignfx, rPosTheta, rPos); + + double error = 0; + double sum = 0.0; + + for(unsigned int i = 0; i < pairs.size(); i++){ + sum += sqr(pairs[i].p1.x - pairs[i].p2.x) + + sqr(pairs[i].p1.y - pairs[i].p2.y) + + sqr(pairs[i].p1.z - pairs[i].p2.z) ; + } + + error = sqrt(sum / (double)pairs.size()); + + if (!quiet) { + cout.setf(ios::basefield); + cout << "LUMEULER RMS point-to-point error = " + << resetiosflags(ios::adjustfield) << setiosflags(ios::internal) + << resetiosflags(ios::floatfield) << setiosflags(ios::fixed) + << std::setw(10) << std::setprecision(7) + << error + << " using " << std::setw(6) << (int)pairs.size() << " points" << endl; + } + + + +///////////////////////////////////////////////////////// +///////////////////////////////////////////////////////// + + double x = 0.0, y = 0.0, z = 0.0, dx = 0.0, dy = 0.0, dz = 0.0, sx = 0.0, sy = 0.0, sz = 0.0, xpy = 0.0, xpz = 0.0, ypz = 0.0, xy = 0.0, yz = 0.0, xz = 0.0; + + /// MZ = M^T * Z + ColumnVector MZ(6); MZ = 0.0; + /// MM = M^T * M + SymmetricMatrix MM(6); MM = 0.0; + for(unsigned int i = 0; i < pairs.size(); ++i) { + /// temporary values that we shall use multiple times in the subsequent computations + x = (pairs[i].p1.x + pairs[i].p2.x) / 2.0; + y = (pairs[i].p1.y + pairs[i].p2.y) / 2.0; + z = (pairs[i].p1.z + pairs[i].p2.z) / 2.0; + dx = pairs[i].p1.x - pairs[i].p2.x; + dy = pairs[i].p1.y - pairs[i].p2.y; + dz = pairs[i].p1.z - pairs[i].p2.z; + + /// sums of each coordinate + sx += x; + sy += y; + sz += z; + + /// sums of squares of pairs of coordinates + xpy += x*x + y*y; + xpz += x*x + z*z; + ypz += y*y + z*z; + + /// sums of products of pairs of coordinates + xy += x*y; + xz += x*z; + yz += y*z; + + /// incrementally construct M^T * Z + MZ(1) += dx; + MZ(2) += dy; + MZ(3) += dz; + MZ(4) += -z*dy + y*dz; + MZ(5) += -y*dx + x*dy; + MZ(6) += z*dx - x*dz; + } + + /// construct M^T * M + MM(1,1) = MM(2,2) = MM(3,3) = pairs.size(); + MM(4,4) = ypz; + MM(5,5) = xpy; + MM(6,6) = xpz; + MM(1,5) = MM(5,1) = -sy; + MM(1,6) = MM(6,1) = sz; + MM(2,4) = MM(4,2) = -sz; + MM(2,5) = MM(5,2) = sx; + MM(3,4) = MM(4,3) = sy; + MM(3,6) = MM(6,3) = -sx; + MM(4,5) = MM(5,4) = -xz; + MM(4,6) = MM(6,4) = -xy; + MM(5,6) = MM(6,5) = -yz; + + ColumnVector Ehat(6); + Ehat = MM.i() * MZ; + + double cosx = cos(rPosTheta[0]), cosy = cos(rPosTheta[1]), cosz = cos(rPosTheta[2]); + double sinx = sin(rPosTheta[0]), siny = sin(rPosTheta[1]), sinz = sin(rPosTheta[2]); + double tx = rPos[0], ty = rPos[1], tz = rPos[2]; + /// create transform matrix of the first scan + Matrix T1(4, 4); T1 = IdentityMatrix(4); + T1(1, 4) = tx; + T1(2, 4) = ty; + T1(3, 4) = tz; + T1(1, 1) = cosy*cosz; + T1(1, 2) = -cosy*sinz; + T1(1, 3) = siny; + T1(2, 1) = cosz*sinx*siny + cosx*sinz; + T1(2, 2) = cosx*cosz-sinx*siny*sinz; + T1(2, 3) = -cosy*sinx; + T1(3, 1) = sinx*sinz - cosx*cosz*siny; + T1(3, 2) = cosz*sinx + cosx*siny*sinz; + T1(3, 3) = cosx*cosy; + + /// create matrix H + Matrix H(6, 6); H = IdentityMatrix(6); + H(1, 5) = -tz*cosx + ty*sinx; + H(1, 6) = ty*cosx*cosy + tz*cosy*sinx; + H(2, 4) = tz; + H(2, 5) = -tx*sinx; + H(2, 6) = -tx*cosx*cosy + tz*siny; + H(3, 4) = -ty; + H(3, 5) = tx*cosx; + H(3, 6) = -tx*cosy*sinx - ty*siny; + H(4, 6) = siny; + H(5, 5) = sinx; + H(5, 6) = cosx*cosy; + H(6, 5) = cosx; + H(6, 6) = -cosy*sinx; + + /// the vector Xhat is the pose estimation of the second scan = the final pose of the first scan + ColumnVector Xhat(6); Xhat << rPos[0] << rPos[1] << rPos[2] << rPosTheta[0] << rPosTheta[1] << rPosTheta[2]; + ColumnVector X = Xhat - H.i()*Ehat; + + cosx = cos(X(4)), cosy = cos(X(5)), cosz = cos(X(6)); + sinx = sin(X(4)), siny = sin(X(5)), sinz = sin(X(6)); + /// transform of the second scan as computed so far + Matrix T2(4, 4); T2 = IdentityMatrix(4); + T2(1, 4) = X(1); + T2(2, 4) = X(2); + T2(3, 4) = X(3); + T2(1, 1) = cosy*cosz; + T2(1, 2) = -cosy*sinz; + T2(1, 3) = siny; + T2(2, 1) = cosz*sinx*siny + cosx*sinz; + T2(2, 2) = cosx*cosz-sinx*siny*sinz; + T2(2, 3) = -cosy*sinx; + T2(3, 1) = sinx*sinz - cosx*cosz*siny; + T2(3, 2) = cosz*sinx + cosx*siny*sinz; + T2(3, 3) = cosx*cosy; + + /// the incremental transform calculated from the absolute poses of the two scans + Matrix T_inc = T1 * T2.i(); + + /// convert our 4x4 transform to column-wise opengl form + alignfx[0] = T_inc(1, 1); + alignfx[1] = T_inc(2, 1); + alignfx[2] = T_inc(3, 1); + alignfx[3] = 0.0; + alignfx[4] = T_inc(1, 2); + alignfx[5] = T_inc(2, 2); + alignfx[6] = T_inc(3, 2); + alignfx[7] = 0.0; + alignfx[8] = T_inc(1, 3); + alignfx[9] = T_inc(2, 3); + alignfx[10]= T_inc(3, 3); + alignfx[11]= 0.0; + alignfx[12]= T_inc(1, 4); + alignfx[13]= T_inc(2, 4); + alignfx[14]= T_inc(3, 4); + alignfx[15]= 1.0; + +///////////////////////////////////////////////////////// +///////////////////////////////////////////////////////// + + + return error; +} + diff --git a/.svn/pristine/ab/ab3b9af18238b383949e4436d1408d04d8b994f5.svn-base b/.svn/pristine/ab/ab3b9af18238b383949e4436d1408d04d8b994f5.svn-base new file mode 100644 index 0000000..3ec7708 --- /dev/null +++ b/.svn/pristine/ab/ab3b9af18238b383949e4436d1408d04d8b994f5.svn-base @@ -0,0 +1,35 @@ +/** + * @file + * @brief IO of a 3D scan for leica ASCII file format with relectance values. + * @author Sven Albrecht. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SCAN_IO_LEICA_H__ +#define __SCAN_IO_LEICA_H__ + +#include +using std::string; +#include +using std::vector; + +#include "scan_io.h" + +/** + * @brief 3D scan loader for leica ASCII + reflectance scans + * + * The compiled class is available as shared object file + */ +class ScanIO_leica_txt : public ScanIO { +public: + virtual int readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss); +}; + +// Since this shared object file is loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/.svn/pristine/ab/ab508915b0cca998c2dbd3f4c2a6ed05c9465d2e.svn-base b/.svn/pristine/ab/ab508915b0cca998c2dbd3f4c2a6ed05c9465d2e.svn-base new file mode 100644 index 0000000..27a18dc --- /dev/null +++ b/.svn/pristine/ab/ab508915b0cca998c2dbd3f4c2a6ed05c9465d2e.svn-base @@ -0,0 +1,155 @@ + +//#define WANT_STREAM + + +#include "include.h" + +#include "newmat.h" + +#include "tmt.h" + +#ifdef use_namespace +using namespace NEWMAT; +#endif + + +/**************************** test program ******************************/ + + +void trymat4() +{ +// cout << "\nFourth test of Matrix package\n"; + Tracer et("Fourth test of Matrix package"); + Tracer::PrintTrace(); + + int i,j; + + { + Tracer et1("Stage 1"); + Matrix M(10,10); + UpperTriangularMatrix U(10); + for (i=1;i<=10;i++) for (j=1;j<=10;j++) M(i,j) = 100*i+j; + U << -M; + Matrix X1 = M.Rows(2,4); + Matrix Y1 = U.t().Rows(2,4); + Matrix X = U; { Print(Matrix(X.Columns(2,4).t()-Y1)); } + RowVector RV = M.Row(5); + { + X.ReSize(3,10); + X.Row(1) << M.Row(2); X.Row(2) << M.Row(3); X.Row(3) << M.Row(4); + Print(Matrix(X-X1)); + } + { + UpperTriangularMatrix V = U.SymSubMatrix(3,5); + Matrix MV = U.SubMatrix(3,5,3,5); { Print(Matrix(MV-V)); } + Matrix X2 = M.t().Columns(2,4); { Print(Matrix(X2-X1.t())); } + Matrix Y2 = U.Columns(2,4); { Print(Matrix(Y2-Y1.t())); } + ColumnVector CV = M.t().Column(5); { Print(ColumnVector(CV-RV.t())); } + X.ReSize(10,3); M = M.t(); + X.Column(1) << M.Column(2); X.Column(2) << M.Column(3); + X.Column(3) << M.Column(4); + Print(Matrix(X-X2)); + } + } + + { + Tracer et1("Stage 2"); + Matrix M; Matrix X; M.ReSize(5,8); + for (i=1;i<=5;i++) for (j=1;j<=8;j++) M(i,j) = 100*i+j; + { + X = M.Columns(5,8); M.Columns(5,8) << M.Columns(1,4); + M.Columns(1,4) << X; + X = M.Columns(3,4); M.Columns(3,4) << M.Columns(1,2); + M.Columns(1,2) << X; + X = M.Columns(7,8); M.Columns(7,8) << M.Columns(5,6); + M.Columns(5,6) << X; + } + { + X = M.Column(2); M.Column(2) = M.Column(1); M.Column(1) = X; + X = M.Column(4); M.Column(4) = M.Column(3); M.Column(3) = X; + X = M.Column(6); M.Column(6) = M.Column(5); M.Column(5) = X; + X = M.Column(8); M.Column(8) = M.Column(7); M.Column(7) = X; + X.ReSize(5,8); + } + for (i=1;i<=5;i++) for (j=1;j<=8;j++) X(i,9-j) = 100*i+j; + Print(Matrix(X-M)); + } + { + Tracer et1("Stage 3"); + // try submatrices of zero dimension + Matrix A(4,5); Matrix B, C; + for (i=1; i<=4; i++) for (j=1; j<=5; j++) + A(i,j) = 100+i*10+j; + B = A + 100; + C = A | B.Columns(4,3); Print(Matrix(A - C)); + C = A | B.Columns(1,0); Print(Matrix(A - C)); + C = A | B.Columns(6,5); Print(Matrix(A - C)); + C = A & B.Rows(2,1); Print(Matrix(A - C)); + } + { + Tracer et1("Stage 4"); + BandMatrix BM(5,3,2); + BM(1,1) = 1; BM(1,2) = 2; BM(1,3) = 3; + BM(2,1) = 4; BM(2,2) = 5; BM(2,3) = 6; BM(2,4) = 7; + BM(3,1) = 8; BM(3,2) = 9; BM(3,3) =10; BM(3,4) =11; BM(3,5) =12; + BM(4,1) =13; BM(4,2) =14; BM(4,3) =15; BM(4,4) =16; BM(4,5) =17; + BM(5,2) =18; BM(5,3) =19; BM(5,4) =20; BM(5,5) =21; + SymmetricBandMatrix SM(5,3); + SM.Inject(BandMatrix(BM + BM.t())); + Matrix A = BM + 1; + Matrix M = A + A.t() - 2; + Matrix C = A.i() * BM; + C = A * C - BM; Clean(C, 0.000000001); Print(C); + C = A.i() * SM; + C = A * C - M; Clean(C, 0.000000001); Print(C); + + // check row-wise load + BandMatrix BM1(5,3,2); + BM1.Row(1) << 1 << 2 << 3; + BM1.Row(2) << 4 << 5 << 6 << 7; + BM1.Row(3) << 8 << 9 << 10 << 11 << 12; + BM1.Row(4) << 13 << 14 << 15 << 16 << 17; + BM1.Row(5) << 18 << 19 << 20 << 21; + Matrix M1 = BM1 - BM; Print(M1); + } + { + Tracer et1("Stage 5"); + Matrix X(4,4); + X << 1 << 2 << 3 << 4 + << 5 << 6 << 7 << 8 + << 9 <<10 <<11 <<12 + <<13 <<14 <<15 <<16; + Matrix Y(4,0); + Y = X | Y; + X -= Y; Print(X); + + DiagonalMatrix D(1); + D << 23; // matrix input with just one value + D(1) -= 23; Print(D); + + } + { + Tracer et1("Stage 6"); + Matrix h (2,2); + h << 1.0 << 2.0 << 0.0 << 1.0 ; + RowVector c(2); + c << 0.0 << 1.0; + h -= c & c; + h -= c.t().Reverse() | c.Reverse().t(); + Print(h); + } + { + Tracer et1("Stage 7"); + // Check row-wise input for diagonal matrix + DiagonalMatrix D(4); + D << 18 << 23 << 31 << 17; + DiagonalMatrix D1(4); + D1.Row(1) << 18; D1.Row(2) << 23; D1.Row(3) << 31; D1.Row(4) << 17; + D1 -= D; Print(D1); + D1(1) = 18; D1(2) = 23; D1(3) = 31; D1(4) = 17; + D1 -= D; Print(D1); + } + +// cout << "\nEnd of fourth test\n"; +} + diff --git a/.svn/pristine/ab/ab518997e3cf38b2133b605aff3c07d0f945414a.svn-base b/.svn/pristine/ab/ab518997e3cf38b2133b605aff3c07d0f945414a.svn-base new file mode 100644 index 0000000..4f43b6f --- /dev/null +++ b/.svn/pristine/ab/ab518997e3cf38b2133b605aff3c07d0f945414a.svn-base @@ -0,0 +1,131 @@ +/** + * @file labeledPlane3d.h + * + * @auhtor Remus Claudiu Dumitru + * @date 15 Apr 2012 + * + */ + +#ifndef LABELEDPLANE3D_H_ +#define LABELEDPLANE3D_H_ + +//============================================================================== +// Includes +//============================================================================== +#include "model/plane3d.h" +#include "model/candidateOpening.h" +#include "model/commonTypes.h" + +#include +#include +#include +#include + +#include + +//============================================================================== +// Global Variables +//============================================================================== +extern bool quiet; + +//============================================================================== +// Class Declarations +//============================================================================== +namespace model { + +/** + * The three possible labels on a wall, as a result of the raytracing algorithm. + */ +enum Label { + EMPTY, OCCUPIED, OCCLUDED, OPENING, UNKOWN +}; + +/** + * A class representing a plane that has additional features such as labeling of patches. + */ +class LabeledPlane3d : public Plane3d { +private: + static const std::string RED; + static const std::string GREEN; + static const std::string BLUE; + static const std::string WHITE; + + static const double LINE_EPSILON; //!< An epislon value to decide whether a line is horizontal or vertical. + + static const double SOBEL_SCALE; //!< To be used when applying Sobel to any image. + static const double SOBEL_DELTA; //!< To be used when applying Sobel to any image. + static const int SOBEL_KERNEL; //!< To be used when applying Sobel to any image. + + static const double CANNY_THRESH1; //!< The lower threshold for Canny. + static const double CANNY_THRESH2; //!< The upper threshold for Canny. + + static const double HOUGH_RHO; //!< Rho used in the Hough transform. + static const double HOUGH_THETA; //!< Theta used in the Hough transform. + static const int HOUGH_THRESH; //!< Hough transform threshold. + static const double HOUGH_MIN_LINE_LEN; //!< Minimum line length for Hough transform. + + static const double MIN_EMPTY_AREA; //!< Minimum empty area percentage. + static const double MIN_TOTAL_AREA; //!< Minimum total area percentage of wall. + static const double MAX_TOTAL_AREA; //!< Maximum total area percentage of wall. + +private: + std::string name; + +public: + /** + * Each discrete patch is described in this matrix. + */ + std::vector > > patches; + + /** + * Remember a depth map of the plane to be used when detecting the windows. + * To be built in the same time when applying labels. + */ + std::vector > depthMap; + + /** + * The OpenCV image of the depthMap. + */ + cv::Mat depthImg; + + /** + * The corrected depth image of the wall; + */ + cv::Mat correctedDepthImg; + + /** + * The wall distance and the maximum distance (2 * wall distance + ray distance) + * at which the depth map was computed. + */ + std::pair depthMapDistances; + + // constructores and destructors + LabeledPlane3d(); + LabeledPlane3d(const Point3d& pt, const Vector3d& normal); + LabeledPlane3d(const Point3d& pt, const Vector3d& normal, const std::vector& hull); + + LabeledPlane3d(const LabeledPlane3d& other); + virtual ~LabeledPlane3d(); + + // operators + LabeledPlane3d& operator=(const LabeledPlane3d& other); + + /** + * Computes the Canny for this wall using the depth image. + */ + void detectEdges(cv::Mat& img, cv::Mat& hImg, cv::Mat& vImg, cv::Mat& combined) const; + + /** + * Computes the horizontal and vertical lines. + */ + void computeLines(std::vector& verticalResult, std::vector& horizontalResult) const; + + /** + * Returns all opening candidates. + */ + void computeOpeningCandidates(std::vector& candidates) const; +}; + +} /* namespace model */ + +#endif /* LABELEDPLANE3D_H_ */ diff --git a/.svn/pristine/ab/ab9a0fd1b9110d10fecaef454992190248c843de.svn-base b/.svn/pristine/ab/ab9a0fd1b9110d10fecaef454992190248c843de.svn-base new file mode 100644 index 0000000..81f53b4 --- /dev/null +++ b/.svn/pristine/ab/ab9a0fd1b9110d10fecaef454992190248c843de.svn-base @@ -0,0 +1,37 @@ +Project admins + +Andreas Nuechter andreas@nuechti.de +Kai Lingemann kai.lingemann@gmx.de +Dorit Borrmann d.borrmann@jacobs-university.de + +List of contributors + +Andreas Nuechter andreas@nuechti.de +Kai Lingemann kai.lingemann@gmx.de +Dorit Borrmann d.borrmann@jacobs-university.de +Jan Elseberg j.elseberg@jacobs-university.de +Jochen Sprickerhof jochen@sprickerhof.de +HamidReza Houshiar h.houshiar@jacobs-university.de +Sven Albrecht sven.albrecht@uni-osnabrueck.de +Stan Serebryakov cfr.ssv@gmail.com +Thomas Escher tescher@uni-osnabrueck.de +Thomas Wiemann twiemann@uni-osnabrueck.de +Alexandru Tandrau alexandru@tandrau.com +Alexandru Eugen Ichim eugen@alexichim.com +Flavia Grosan me@flaviagrosan.com +Deyuan Qiu deyuan.qiu@googlemail.com +Darko Makreshanski d.makreshanski@jacobs-university.de +Mohammad Faisal Abdullah m.faisal@jacobs-university.de +Li Ming liming751218@whu.edu.cn +Li Wei xpaulee@gmail.com +Shams Feyzabadi sh.feyzabadi@gmail.co +Vladislav Perelmann v.perelman@jacobs-university.de +Chen Long lchen.whu@gmail.com +Remuas Dumitru r.dumitru@jaocbs-university.de + +Further contributors + +Uwe Hebbelmann, Sebastian Stock, Andre Schemschat +Hartmut Surmann +Amuz Tamrakars, Ulugbek Makhmudov +Christof Soeger, Marcel Junker, Anton Fluegge, Hannes Schulz \ No newline at end of file diff --git a/.svn/pristine/ab/aba329d28e77f00b9318e6127a2a5fbe6cb37d77.svn-base b/.svn/pristine/ab/aba329d28e77f00b9318e6127a2a5fbe6cb37d77.svn-base new file mode 100644 index 0000000..f77dcfe --- /dev/null +++ b/.svn/pristine/ab/aba329d28e77f00b9318e6127a2a5fbe6cb37d77.svn-base @@ -0,0 +1,83 @@ + INSTALLING gOCR + + +INSTALLING BINARIES +------------------- +Be sure that you have all the libraries needed. To install a binary package, +do the following: + +1. Unpack the archive if you have not done so already: + + tar -xzf gocr[version].tar.gz + +on older tar versions, the above line might not work. If so, try the following: + + gzip -cd gocr[version].tgz | tar -xf - + +This creates the directory ./gocr[version] containing the source from +the main archive. + +2. Change to gocr directory and run make (use GNU Make). + + cd gocr[version]; make install + +That's it. + +INSTALLING FROM SOURCE +---------------------- + +Requirements +------------ +You'll need a compiler; we recommend gcc, but the code should compile in any +good one. gcc is available at http://gcc.gnu.org. I had some problems with gcc +2.95.1 (it consumed a LOT of memory while compiling ocr0.c). 2.95.2 seems to +be better. + +gOCR provides some simple functions to read/write pnm archives. Though not +needed, we strongly suggest, however, that you install the NetPBM package. Its +official URL is: http://download.sourceforge.net/netpbm/. + +Installing this package will add support to many different image formats. +If you have a NetPBM version older than August 2000, we suggest that you +download a more recent one, to take advantage of the new PAM functions. + +To create some of the examples provided, you'll need transfig. +This is completely optional. + +Procedure +--------- +1. Unpack the archive if you have not done so already: + + tar -xzf gocr[version].tar.gz + +on older tar versions, the above line might not work. If so, try the following: + + gzip -cd gocr[version].tgz | tar -xf - + +This creates the directory ./gocr[version] containing the source from +the main archive. + +2. Change to gocr directory and run configure. + + cd gocr[version]; ./configure + +For a list of options, try ./configure --help. +If something goes wrong, try to run autoconf. + +3. Run make (GNU Make). This can take a while. + + make + +4. gOCR comes with some examples, which are generated from xfig-files. + If you have transfig installed, you can make them: + + make examples + +5. Install the binaries. You may need to do this as root. + + make install + +6. Run gocr, or the frontend you chose. + + gocr -h Shows help + gocr.tcl Runs Tcl GUI diff --git a/.svn/pristine/ac/ac34815c925af2d4224172bf903bc971def4a274.svn-base b/.svn/pristine/ac/ac34815c925af2d4224172bf903bc971def4a274.svn-base new file mode 100644 index 0000000..388095c --- /dev/null +++ b/.svn/pristine/ac/ac34815c925af2d4224172bf903bc971def4a274.svn-base @@ -0,0 +1,322 @@ +//$$ newmatnl.h definition file for non-linear optimisation + +// Copyright (C) 1993,4,5: R B Davies + +#ifndef NEWMATNL_LIB +#define NEWMATNL_LIB 0 + +#include "newmat.h" + +#ifdef use_namespace +namespace NEWMAT { +#endif + + + +/* + +This is a beginning of a series of classes for non-linear optimisation. + +At present there are two classes. FindMaximum2 is the basic optimisation +strategy when one is doing an optimisation where one has first +derivatives and estimates of the second derivatives. Class +NonLinearLeastSquares is derived from FindMaximum2. This provides the +functions that calculate function values and derivatives. + +A third class is now added. This is for doing maximum-likelihood when +you have first derviatives and something like the Fisher Information +matrix (eg the variance covariance matrix of the first derivatives or +minus the second derivatives - this matrix is assumed to be positive +definite). + + + + class FindMaximum2 + +Suppose T is the ColumnVector of parameters, F(T) the function we want +to maximise, D(T) the ColumnVector of derivatives of F with respect to +T, and S(T) the matrix of second derivatives. + +Then the basic iteration is given a value of T, update it to + + T - S.i() * D + +where .i() denotes inverse. + +If F was quadratic this would give exactly the right answer (except it +might get a minimum rather than a maximum). Since F is not usually +quadratic, the simple procedure would be to recalculate S and D with the +new value of T and keep iterating until the process converges. This is +known as the method of conjugate gradients. + +In practice, this method may not converge. FindMaximum2 considers an +iteration of the form + + T - x * S.i() * D + +where x is a number. It tries x = 1 and uses the values of F and its +slope with respect to x at x = 0 and x = 1 to fit a cubic in x. It then +choses x to maximise the resulting function. This gives our new value of +T. The program checks that the value of F is getting better and carries +out a variety of strategies if it is not. + +The program also has a second strategy. If the successive values of T +seem to be lying along a curve - eg we are following along a curved +ridge, the program will try to fit this ridge and project along it. This +does not work at present and is commented out. + +FindMaximum2 has three virtual functions which need to be over-ridden by +a derived class. + + void Value(const ColumnVector& T, bool wg, Real& f, bool& oorg); + +T is the column vector of parameters. The function returns the value of +the function to f, but may instead set oorg to true if the parameter +values are not valid. If wg is true it may also calculate and store the +second derivative information. + + bool NextPoint(ColumnVector& H, Real& d); + +Using the value of T provided in the previous call of Value, find the +conjugate gradients adjustment to T, that is - S.i() * D. Also return + + d = D.t() * S.i() * D. + +NextPoint should return true if it considers that the process has +converged (d very small) and false otherwise. The previous call of Value +will have set wg to true, so that S will be available. + + Real LastDerivative(const ColumnVector& H); + +Return the scalar product of H and the vector of derivatives at the last +value of T. + +The function Fit is the function that calls the iteration. + + void Fit(ColumnVector&, int); + +The arguments are the trial parameter values as a ColumnVector and the +maximum number of iterations. The program calls a DataException if the +initial parameters are not valid and a ConvergenceException if the +process fails to converge. + + + class NonLinearLeastSquares + +This class is derived from FindMaximum2 and carries out a non-linear +least squares fit. It uses a QR decomposition to carry out the +operations required by FindMaximum2. + +A prototype class R1_Col_I_D is provided. The user needs to derive a +class from this which includes functions the predicted value of each +observation its derivatives. An object from this class has to be +provided to class NonLinearLeastSquares. + +Suppose we observe n normal random variables with the same unknown +variance and such the i-th one has expected value given by f(i,P) +where P is a column vector of unknown parameters and f is a known +function. We wish to estimate P. + +First derive a class from R1_Col_I_D and override Real operator()(int i) +to give the value of the function f in terms of i and the ColumnVector +para defined in class R1_CoL_I_D. Also override ReturnMatrix +Derivatives() to give the derivates of f at para and the value of i +used in the preceeding call to operator(). Return the result as a +RowVector. Construct an object from this class. Suppose in what follows +it is called pred. + +Now constuct a NonLinearLeastSquaresObject accessing pred and optionally +an iteration limit and an accuracy critierion. + + NonLinearLeastSquares NLLS(pred, 1000, 0.0001); + +The accuracy critierion should be somewhat less than one and 0.0001 is +about the smallest sensible value. + +Define a ColumnVector P containing a guess at the value of the unknown +parameter, and a ColumnVector Y containing the unknown data. Call + + NLLS.Fit(Y,P); + +If the process converges, P will contain the estimates of the unknown +parameters. If it does not converge an exception will be generated. + +The following member functions can be called after you have done a fit. + +Real ResidualVariance() const; + +The estimate of the variance of the observations. + +void GetResiduals(ColumnVector& Z) const; + +The residuals of the individual observations. + +void GetStandardErrors(ColumnVector&); + +The standard errors of the observations. + +void GetCorrelations(SymmetricMatrix&); + +The correlations of the observations. + +void GetHatDiagonal(DiagonalMatrix&) const; + +Forms a diagonal matrix of values between 0 and 1. If the i-th value is +larger than, say 0.2, then the i-th data value could have an undue +influence on your estimates. + + +*/ + +class FindMaximum2 +{ + virtual void Value(const ColumnVector&, bool, Real&, bool&) = 0; + virtual bool NextPoint(ColumnVector&, Real&) = 0; + virtual Real LastDerivative(const ColumnVector&) = 0; +public: + void Fit(ColumnVector&, int); + virtual ~FindMaximum2() {} // to keep gnu happy +}; + +class R1_Col_I_D +{ + // The prototype for a Real function of a ColumnVector and an + // integer. + // You need to derive your function from this one and put in your + // function for operator() and Derivatives() at least. + // You may also want to set up a constructor to enter in additional + // parameter values (that will not vary during the solve). + +protected: + ColumnVector para; // Current x value + +public: + virtual bool IsValid() { return true; } + // is the current x value OK + virtual Real operator()(int i) = 0; // i-th function value at current para + virtual void Set(const ColumnVector& X) { para = X; } + // set current para + bool IsValid(const ColumnVector& X) + { Set(X); return IsValid(); } + // set para, check OK + Real operator()(int i, const ColumnVector& X) + { Set(X); return operator()(i); } + // set para, return value + virtual ReturnMatrix Derivatives() = 0; + // return derivatives as RowVector + virtual ~R1_Col_I_D() {} // to keep gnu happy +}; + + +class NonLinearLeastSquares : public FindMaximum2 +{ + // these replace the corresponding functions in FindMaximum2 + void Value(const ColumnVector&, bool, Real&, bool&); + bool NextPoint(ColumnVector&, Real&); + Real LastDerivative(const ColumnVector&); + + Matrix X; // the things we need to do the + ColumnVector Y; // QR triangularisation + UpperTriangularMatrix U; // see the write-up in newmata.txt + ColumnVector M; + Real errorvar, criterion; + int n_obs, n_param; + const ColumnVector* DataPointer; + RowVector Derivs; + SymmetricMatrix Covariance; + DiagonalMatrix SE; + R1_Col_I_D& Pred; // Reference to predictor object + int Lim; // maximum number of iterations + +public: + NonLinearLeastSquares(R1_Col_I_D& pred, int lim=1000, Real crit=0.0001) + : criterion(crit), Pred(pred), Lim(lim) {} + void Fit(const ColumnVector&, ColumnVector&); + Real ResidualVariance() const { return errorvar; } + void GetResiduals(ColumnVector& Z) const { Z = Y; } + void GetStandardErrors(ColumnVector&); + void GetCorrelations(SymmetricMatrix&); + void GetHatDiagonal(DiagonalMatrix&) const; + +private: + void MakeCovariance(); +}; + + +// The next class is the prototype class for calculating the +// log-likelihood. +// I assume first derivatives are available and something like the +// Fisher Information or variance/covariance matrix of the first +// derivatives or minus the matrix of second derivatives is +// available. This matrix must be positive definite. + +class LL_D_FI +{ +protected: + ColumnVector para; // current parameter values + bool wg; // true if FI matrix wanted + +public: + virtual void Set(const ColumnVector& X) { para = X; } + // set parameter values + virtual void WG(bool wgx) { wg = wgx; } + // set wg + + virtual bool IsValid() { return true; } + // return true is para is OK + bool IsValid(const ColumnVector& X, bool wgx=true) + { Set(X); WG(wgx); return IsValid(); } + + virtual Real LogLikelihood() = 0; // return the loglikelihhod + Real LogLikelihood(const ColumnVector& X, bool wgx=true) + { Set(X); WG(wgx); return LogLikelihood(); } + + virtual ReturnMatrix Derivatives() = 0; + // column vector of derivatives + virtual ReturnMatrix FI() = 0; // Fisher Information matrix + virtual ~LL_D_FI() {} // to keep gnu happy +}; + +// This is the class for doing the maximum likelihood estimation + +class MLE_D_FI : public FindMaximum2 +{ + // these replace the corresponding functions in FindMaximum2 + void Value(const ColumnVector&, bool, Real&, bool&); + bool NextPoint(ColumnVector&, Real&); + Real LastDerivative(const ColumnVector&); + + // the things we need for the analysis + LL_D_FI& LL; // reference to log-likelihood + int Lim; // maximum number of iterations + Real Criterion; // convergence criterion + ColumnVector Derivs; // for the derivatives + LowerTriangularMatrix LT; // Cholesky decomposition of FI + SymmetricMatrix Covariance; + DiagonalMatrix SE; + +public: + MLE_D_FI(LL_D_FI& ll, int lim=1000, Real criterion=0.0001) + : LL(ll), Lim(lim), Criterion(criterion) {} + void Fit(ColumnVector& Parameters); + void GetStandardErrors(ColumnVector&); + void GetCorrelations(SymmetricMatrix&); + +private: + void MakeCovariance(); +}; + + +#ifdef use_namespace +} +#endif + + + +#endif + +// body file: newmatnl.cpp + + + + diff --git a/.svn/pristine/ac/ac4a7c42403cd6c98b878244fba1f36277efd9fc.svn-base b/.svn/pristine/ac/ac4a7c42403cd6c98b878244fba1f36277efd9fc.svn-base new file mode 100644 index 0000000..f78c423 --- /dev/null +++ b/.svn/pristine/ac/ac4a7c42403cd6c98b878244fba1f36277efd9fc.svn-base @@ -0,0 +1,36 @@ +/** + * @file + * @brief IO of a 3D scan in ks file format + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SCAN_IO_STL_H__ +#define __SCAN_IO_STL_H__ + +#include +using std::string; +#include +using std::vector; + +#include "scan_io.h" + +/** + * @brief 3D scan loader for STL scans + * + * The compiled class is available as shared object file + */ +class ScanIO_stl : public ScanIO { +public: + virtual int readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss); +}; + +// Since this shared object file is loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/.svn/pristine/ac/ac67ac57b75046b93766fff197af4293a41473b5.svn-base b/.svn/pristine/ac/ac67ac57b75046b93766fff197af4293a41473b5.svn-base new file mode 100644 index 0000000..8cbfaf5 --- /dev/null +++ b/.svn/pristine/ac/ac67ac57b75046b93766fff197af4293a41473b5.svn-base @@ -0,0 +1,411 @@ +/* + * convexplane implementation + * + * Copyright (C) Dorit Borrmann, Remus Dumitru, Andreas Nuechter + * + * Released under the GPL version 3. + * + */ + +#include "shapes/convexplane.h" +#include "slam6d/globals.icc" +using std::string; +using std::ofstream; + +/** + * Checks the position of a point with respect to the line given by two points. + * @param start starting point of the line + * @param end end point of the line + * @param point point to be checked + * @return true if the point is left of the line or on the line and further away + * from the start point. + */ + +bool ConvexPlane::furtherleft(double * start, double * point, double * end) { + double tmp = (end[0] - start[0])*(point[1] - start[1]) - (point[0] - start[0])*(end[1] - start[1]); + if(fabs(tmp) < 0.0000000001) { + double l1 = (point[0] - start[0])*(point[0] - start[0]) + + (point[1] - start[1])*(point[1] - start[1]); + double l2 = (end[0] - start[0])*(end[0] - start[0]) + + (end[1] - start[1])*(end[1] - start[1]); + return (l1 > l2); + } else if(tmp < 0) { + return false; + + } else { + return true; + } + exit(0); +} + +/** + * Calculates the convex hull of a 2d point set using the Jarvis March + * algorithm. + * + * 1. Find the point that is furthest left in the point set. + * 2. Continue to select points such that the remaining point cloud always + * stays on the right sight of that line spanned by the last point and the new + * point. + * 3. Stop when all remaining points are to the right of the line from the last + * point to the starting point. + */ +void ConvexPlane::JarvisMarchConvexHull(list &points, vector &convex_hull) { + //pointOnHull = leftmost point in S + list::iterator itr = points.begin(); + list::iterator end = itr; + while(itr != points.end()) { + if((*end)[0] > (*itr)[0]) { + end = itr; + } + itr++; + } + double * anchor = (*end); + convex_hull.push_back(anchor); + itr = points.begin(); + double * start = convex_hull[0]; + double * current = (*points.begin()); + bool closed = true; + do { + closed = true; + itr = points.begin(); + end = points.begin(); + while(itr != points.end()) { + if(furtherleft(start, (*itr), current)) { + end = itr; + current = (*end); + closed = false; + } + itr++; + } + start = current; + if(!closed) { + convex_hull.push_back(current); + end = points.erase(end); + } + current = anchor; + } while(start != anchor); + // convex_hull.pop_back(); + + itr = points.begin(); + while(itr != points.end()) { + if((*itr) == anchor) { + itr=points.erase(itr); + break; + } else { + itr++; + } + } + // cout << "End of Convex " << convex_hull.size() << endl; +} + +/** + * Constructor of a convex plane given the normal vector, the distance, the + * direction of the plane (largest coordinate of the normal vector) and a + * vector of points that form the convex hull of the plane. + */ +ConvexPlane::ConvexPlane(double _n[3], double _rho, char _direction, +vector _convex_hull) { + + for(int i = 0; i < 3; i++) { + n[i] = _n[i]; + } + Normalize3(n); + + convex_hull = _convex_hull; + direction = _direction; + rho = _rho; +} + +/** + * Constructor of a convex plane given the normal vector and distance of the + * plane. + */ +ConvexPlane::ConvexPlane(double plane[4]) { + for(int i = 0; i < 3; i++) { + n[i] = plane[i]; + } + rho = plane[3]; + if(fabs(n[0]) < fabs(n[1])) { + if(fabs(n[1]) < fabs(n[2])) { + direction = 'z'; + } else { + direction = 'y'; + } + } else if (fabs(n[2]) < fabs(n[0])){ + direction = 'x'; + } else { + direction = 'z'; + } +} + +/** + * Constructor of a convex plane given several partial planes + */ +ConvexPlane::ConvexPlane(vector &partialplanes) { + int size = partialplanes.size(); + for(int i = 0; i < size; i++) { + for(int j = 0; j < 3; j++) { + n[j] += partialplanes[i]->n[j]; + rho += partialplanes[i]->rho; + } + } + for(int j = 0; j < 3; j++) { + n[j] /= size; + } + rho /= size; +} + +/** + * Constructor of a convex plane given the normal vector and distance of the + * plane and a vector of points that lie on the plane. + */ +ConvexPlane::ConvexPlane(double plane[4], vector &points ) { + + for(int i = 0; i < 3; i++) { + n[i] = plane[i]; + } + rho = plane[3]; + Normalize3(n); + + if(fabs(n[0]) < fabs(n[1])) { + if(fabs(n[1]) < fabs(n[2])) { + direction = 'z'; + } else { + direction = 'y'; + } + } else if (fabs(n[2]) < fabs(n[0])){ + direction = 'x'; + } else { + direction = 'z'; + } + + list point_list; + + for (vector::iterator it = points.begin(); it != points.end(); it++) { + Point p = (*it); + double * point = new double[2]; + switch(direction) { + case 'x': point[0] = p.y; + point[1] = p.z; + break; + case 'y': point[0] = p.x; + point[1] = p.z; + break; + case 'z': point[0] = p.x; + point[1] = p.y; + break; + default: throw runtime_error("default branch taken"); + } + point_list.push_back(point); + } + + if (point_list.size() > 0) { + JarvisMarchConvexHull(point_list, convex_hull); + } +} +ConvexPlane::~ConvexPlane() { + for(vector::iterator it = convex_hull.begin(); + it != convex_hull.end(); it++) { + double* tmp = (*it); + delete[] tmp; + } +} + +/** + * Writes the plane as normalXXX.3d to the directory given in the path. XXX is + * the three digit representation of the counter. + * This function writes the center and the normal of the plane to the file. + */ +void ConvexPlane::writeNormal(string path, int counter) { + ofstream out; + out.open(path.c_str()); + double center[3]; + for(int i = 0; i < 3; i++) { + center[i] = 0.0; + } + + for(vector::iterator it = convex_hull.begin(); + it != convex_hull.end(); + it++) { + + + switch(direction) { + case 'x': + center[0] += (rho - (*it)[0] * n[1] - (*it)[1] * n[2]) / n[0]; + center[1] += (*it)[0]; + center[2] += (*it)[1]; + break; + case 'y': + center[0] += (*it)[0]; + center[1] += (rho - (*it)[0] * n[0] - (*it)[1] * n[2]) / n[1]; + center[2] += (*it)[1]; + break; + case 'z': + center[0] += (*it)[0]; + center[1] += (*it)[1]; + center[2] += (rho - (*it)[0] * n[0] - (*it)[1] * n[1]) / n[2]; + break; + default: throw runtime_error("default branch taken"); + } + + } + + for(int i = 0; i < 3; i++) { + center[i] /= convex_hull.size(); + } + + + out << n[0] << " " << n[1] << " " << n[2] << endl; + out << center[0] << " " << center[1] << " " << center[2] << endl; + + out.close(); + +} + +/** + * Writes the convex hull of the plane as planeXXX.3d to the directory given in the path. + * XXX is the three digit representation of the counter. + */ +void ConvexPlane::writePlane(string path, int counter) { + + ofstream out; + out.open(path.c_str()); + + for(vector::iterator it = convex_hull.begin(); + it != convex_hull.end(); + it++) { + + switch(direction) { + case 'x': + out << (rho - (*it)[0] * n[1] - (*it)[1] * n[2]) / n[0] << " "; + out << (*it)[0] << " "; + out << (*it)[1] << endl; + break; + case 'y': + out << (*it)[0] << " "; + out << (rho - (*it)[0] * n[0] - (*it)[1] * n[2]) / n[1] << " "; + out << (*it)[1] << endl; + break; + case 'z': + out << (*it)[0] << " "; + out << (*it)[1] << " "; + out << (rho - (*it)[0] * n[0] - (*it)[1] * n[1]) / n[2] << endl; + break; + default: throw runtime_error("default branch taken"); + } + + } + out.flush(); + out.close(); +} + +vector ConvexPlane::getConvexHull() { + vector hull; + + for(vector::iterator it = convex_hull.begin(); + it != convex_hull.end(); + it++) { + + double point[3]; + + switch(direction) { + + case 'x': + point[0] = (rho - (*it)[0] * n[1] - (*it)[1] * n[2]) / n[0]; + point[1] = (*it)[0]; + point[2] = (*it)[1]; + break; + case 'y': + point[0] = (*it)[0]; + point[1] = (rho - (*it)[0] * n[0] - (*it)[1] * n[2]) / n[1]; + point[2] = (*it)[1]; + break; + case 'z': + point[0] = (*it)[0]; + point[1] = (*it)[1]; + point[2] = (rho - (*it)[0] * n[0] - (*it)[1] * n[1]) / n[2]; + break; + default: throw runtime_error("default branch taken"); + } + + hull.push_back(point[0]); + hull.push_back(point[1]); + hull.push_back(point[2]); + } + + return hull; +} + +void ConvexPlane::getNormal(double* normal, double* origin) { + double center[3]; + for(int i = 0; i < 3; i++) { + center[i] = 0.0; + } + + for(vector::iterator it = convex_hull.begin(); + it != convex_hull.end(); + it++) { + + switch(direction) { + case 'x': + center[0] += (rho - (*it)[0] * n[1] - (*it)[1] * n[2]) / n[0]; + center[1] += (*it)[0]; + center[2] += (*it)[1]; + break; + case 'y': + center[0] += (*it)[0]; + center[1] += (rho - (*it)[0] * n[0] - (*it)[1] * n[2]) / n[1]; + center[2] += (*it)[1]; + break; + case 'z': + center[0] += (*it)[0]; + center[1] += (*it)[1]; + center[2] += (rho - (*it)[0] * n[0] - (*it)[1] * n[1]) / n[2]; + break; + default: throw runtime_error("default branch taken"); + } + } + + for(int i = 0; i < 3; i++) { + center[i] /= convex_hull.size(); + } + + normal[0] = n[0]; + normal[1] = n[1]; + normal[2] = n[2]; + + origin[0] = center[0]; + origin[1] = center[1]; + origin[2] = center[2]; +} + +void ConvexPlane::project(const double *p, double *p1) { + double dist = n[0] * p[0] + n[1] * p[1] + n[2] * p[2] - rho; + + p1[0] = p[0] - n[0] * dist; + p1[1] = p[1] - n[1] * dist; + p1[2] = p[2] - n[2] * dist; +} + +bool ConvexPlane::isWall() { + return fabs(n[1]) < 0.1; +} + +bool ConvexPlane::isHorizontal() { + double skalar = n[1] / sqrt(n[0]*n[0] + n[1]*n[1] + n[2]*n[2]) ; + return (1-(fabs(skalar))) < 0.1; +} + +void ConvexPlane::horizontalize() { + + n[0] = 0.0; + n[1] = n[1] < 0 ? -1.0 : 1.0; + n[2] = 0.0; + +} + +void ConvexPlane::verticalize() { + n[1] = 0.0; + Normalize3(n); +} + diff --git a/.svn/pristine/ac/ac74fb3f26c4bc0d678dbee72a660451bfbb6fe7.svn-base b/.svn/pristine/ac/ac74fb3f26c4bc0d678dbee72a660451bfbb6fe7.svn-base new file mode 100644 index 0000000..864ee0d --- /dev/null +++ b/.svn/pristine/ac/ac74fb3f26c4bc0d678dbee72a660451bfbb6fe7.svn-base @@ -0,0 +1,1701 @@ +/**************************************************************************** + + GLUI User Interface Toolkit + --------------------------- + + glui.h - Main header for GLUI User Interface Toolkit + + + -------------------------------------------------- + + Copyright (c) 1998 Paul Rademacher + + This program is freely distributable without licensing fees and is + provided without guarantee or warrantee expressed or implied. This + program is -not- in the public domain. + +*****************************************************************************/ + + +#ifndef _GLUI_H_ +#define _GLUI_H_ + +#include +#include +#include + +#ifdef __APPLE__ +#include +#else +#include +#endif + +#define GLUI_VERSION 2.01f /********** Current version **********/ + + +#ifdef WIN32 +#pragma comment(lib, "glui32.lib") // Link against GLUI library +#endif + +class Arcball; + +/********** Do some basic defines *******/ +#ifndef false +#define true 1 +#define false 0 +#endif + +#ifndef Byte +#define Byte unsigned char +#endif + +#ifndef _RGBC_ +class RGBc { +public: + Byte r, g, b; + + void set(Byte r,Byte g,Byte b) {this->r=r;this->g=g;this->b=b;}; + + RGBc( void ) {}; + RGBc( Byte r, Byte g, Byte b ) { set( r, g, b ); }; +}; +#define _RGBC_ +#endif + +/********** List of GLUT callbacks ********/ + +enum GLUI_Glut_CB_Types { + GLUI_GLUT_RESHAPE, + GLUI_GLUT_KEYBOARD, + GLUI_GLUT_DISPLAY, + GLUI_GLUT_MOUSE, + GLUI_GLUT_MOTION, + GLUI_GLUT_SPECIAL, + GLUI_GLUT_PASSIVE_MOTION, + GLUI_GLUT_ENTRY, + GLUI_GLUT_VISIBILITY +}; + +/********** List of control types **********/ +enum GLUI_Control_Types { + GLUI_CONTROL_CHECKBOX =1, + GLUI_CONTROL_BUTTON, + GLUI_CONTROL_RADIOBUTTON, + GLUI_CONTROL_RADIOGROUP, + GLUI_CONTROL_SLIDER, + GLUI_CONTROL_STATICTEXT, + GLUI_CONTROL_EDITTEXT, + GLUI_CONTROL_BITMAP, + GLUI_CONTROL_PANEL, + GLUI_CONTROL_SPINNER, + GLUI_CONTROL_SEPARATOR, + GLUI_CONTROL_COLUMN, + GLUI_CONTROL_LISTBOX, + GLUI_CONTROL_MOUSE_INTERACTION, + GLUI_CONTROL_ROTATION, + GLUI_CONTROL_TRANSLATION, + GLUI_CONTROL_ROLLOUT +}; + + +/********* Constants for window placement **********/ +#define GLUI_XOFF 6 +#define GLUI_YOFF 6 +#define GLUI_ITEMSPACING 3 +#define GLUI_CHECKBOX_SIZE 13 +#define GLUI_RADIOBUTTON_SIZE 13 +#define GLUI_BUTTON_SIZE 20 +#define GLUI_STATICTEXT_SIZE 13 +#define GLUI_SEPARATOR_HEIGHT 8 +#define GLUI_DEFAULT_CONTROL_WIDTH 100 +#define GLUI_DEFAULT_CONTROL_HEIGHT 13 +#define GLUI_EDITTEXT_BOXINNERMARGINX 3 +#define GLUI_EDITTEXT_HEIGHT 20 +#define GLUI_EDITTEXT_WIDTH 130 +#define GLUI_EDITTEXT_MIN_INT_WIDTH 35 +#define GLUI_EDITTEXT_MIN_TEXT_WIDTH 50 +#define GLUI_PANEL_NAME_DROP 8 +#define GLUI_PANEL_EMBOSS_TOP 4 +/* #define GLUI_ROTATION_WIDTH 60*/ +/* #define GLUI_ROTATION_HEIGHT 78 */ +#define GLUI_ROTATION_WIDTH 50 +#define GLUI_ROTATION_HEIGHT (GLUI_ROTATION_WIDTH+18) +#define GLUI_MOUSE_INTERACTION_WIDTH 50 +#define GLUI_MOUSE_INTERACTION_HEIGHT (GLUI_MOUSE_INTERACTION_WIDTH)+18 + + +/** Different panel control types **/ +#define GLUI_PANEL_NONE 0 +#define GLUI_PANEL_EMBOSSED 1 +#define GLUI_PANEL_RAISED 2 + + +/** Max # of els in control's float_array **/ +#define GLUI_DEF_MAX_ARRAY 30 + +/********* The control's 'active' behavior *********/ +#define GLUI_CONTROL_ACTIVE_MOUSEDOWN 1 +#define GLUI_CONTROL_ACTIVE_PERMANENT 2 + + +/********* Control alignment types **********/ +#define GLUI_ALIGN_CENTER 1 +#define GLUI_ALIGN_RIGHT 2 +#define GLUI_ALIGN_LEFT 3 + + +/********** Limit types - how to limit spinner values *********/ +#define GLUI_LIMIT_NONE 0 +#define GLUI_LIMIT_CLAMP 1 +#define GLUI_LIMIT_WRAP 2 + + +/********** Translation control types ********************/ + +#define GLUI_TRANSLATION_XY 0 +#define GLUI_TRANSLATION_Z 1 +#define GLUI_TRANSLATION_X 2 +#define GLUI_TRANSLATION_Y 3 + +#define GLUI_TRANSLATION_LOCK_NONE 0 +#define GLUI_TRANSLATION_LOCK_X 1 +#define GLUI_TRANSLATION_LOCK_Y 2 + +/********** How was a control activated? *****************/ +#define GLUI_ACTIVATE_MOUSE 1 +#define GLUI_ACTIVATE_TAB 2 + + +/********** What type of live variable does a control have? **********/ +#define GLUI_LIVE_NONE 0 +#define GLUI_LIVE_INT 1 +#define GLUI_LIVE_FLOAT 2 +#define GLUI_LIVE_TEXT 3 +#define GLUI_LIVE_DOUBLE 4 +#define GLUI_LIVE_FLOAT_ARRAY 5 + + +/********** Translation codes **********/ + +enum TranslationCodes { + GLUI_TRANSLATION_MOUSE_NONE=0, + GLUI_TRANSLATION_MOUSE_UP, + GLUI_TRANSLATION_MOUSE_DOWN, + GLUI_TRANSLATION_MOUSE_LEFT, + GLUI_TRANSLATION_MOUSE_RIGHT, + GLUI_TRANSLATION_MOUSE_UP_LEFT, + GLUI_TRANSLATION_MOUSE_UP_RIGHT, + GLUI_TRANSLATION_MOUSE_DOWN_LEFT, + GLUI_TRANSLATION_MOUSE_DOWN_RIGHT +}; + +/************ A string type for us to use **********/ +/* typedef char GLUI_String[300]; */ +class GLUI_String +{ +public: + char string[300]; + + char &operator[]( int i ) { + return string[i]; + } + + operator char*() { return (char*) &string[0]; }; + /* operator void*() { return (void*) &string[0]; }; */ + + GLUI_String( void ) { + string[0] = '\0'; + } + + GLUI_String( char *text ) { + strcpy( string, text ); + } +}; + + +/********* Pre-declare the various classes *********/ +class GLUI; +class GLUI_Control; +class GLUI_Listbox; +class GLUI_Rotation; +class GLUI_Translation; +class GLUI_Mouse_Interaction; +class GLUI_Checkbox; +class GLUI_Slider; +class GLUI_Button; +class GLUI_StaticText; +class GLUI_Bitmap; +class GLUI_EditText; +class GLUI_Node; +class GLUI_Main; +class GLUI_Panel; +class GLUI_Spinner; +class GLUI_RadioButton; +class GLUI_RadioGroup; +class GLUI_Separator; +class GLUI_Column; +class GLUI_Master; +class GLUI_Glut_Window; +class GLUI_Rollout; + + + +/*** Flags for GLUI class constructor ***/ +#define GLUI_SUBWINDOW ((long)(1<< 1)) +#define GLUI_SUBWINDOW_TOP ((long)(1<< 2)) +#define GLUI_SUBWINDOW_BOTTOM ((long)(1<< 3)) +#define GLUI_SUBWINDOW_LEFT ((long)(1<< 4)) +#define GLUI_SUBWINDOW_RIGHT ((long)(1<< 5)) + +/*** Codes for different type of edittext boxes and spinners ***/ +#define GLUI_EDITTEXT_TEXT 1 +#define GLUI_EDITTEXT_INT 2 +#define GLUI_EDITTEXT_FLOAT 3 +#define GLUI_SPINNER_INT GLUI_EDITTEXT_INT +#define GLUI_SPINNER_FLOAT GLUI_EDITTEXT_FLOAT + + + +/*** Definition of callbacks ***/ +typedef void (*GLUI_Update_CB) (int id); +typedef void (*Int1_CB) (int); +typedef void (*Int2_CB) (int, int); +typedef void (*Int3_CB) (int, int, int); +typedef void (*Int4_CB) (int, int, int, int); + + + +/************************************************************/ +/* */ +/* Base class, for hierarchical relationships */ +/* */ +/************************************************************/ + +class GLUI_Node { +protected: + GLUI_Node *parent_node; + GLUI_Node *child_head; + GLUI_Node *child_tail; + GLUI_Node *next_sibling; + GLUI_Node *prev_sibling; + +public: + GLUI_Node *first_sibling( void ); + GLUI_Node *last_sibling( void ); + GLUI_Node *prev( void ); + GLUI_Node *next( void ); + GLUI_Node *first_child( void ) { return child_head; }; + GLUI_Node *last_child( void ) { return child_tail; }; + GLUI_Node *parent(void) { return parent_node; }; + + void link_this_to_parent_last( GLUI_Node *parent ); + void link_this_to_parent_first( GLUI_Node *parent ); + void link_this_to_sibling_next( GLUI_Node *sibling ); + void link_this_to_sibling_prev( GLUI_Node *sibling ); + void unlink( void ); + + void dump( FILE *out, char *name ) { + fprintf( out, "GLUI_node: %s\n", name ); + fprintf( out, " parent: %p child_head: %p child_tail: %p\n", + parent_node, child_head, child_tail ); + fprintf( out, " next: %p prev: %p\n", next_sibling, prev_sibling ); + } + + GLUI_Node( void ) { + parent_node= child_head = child_tail = next_sibling = prev_sibling = NULL; + }; + + friend class GLUI_Rollout; + friend class GLUI_Main; +}; + + + +/************************************************************/ +/* */ +/* Standard Bitmap stuff */ +/* */ +/************************************************************/ + +enum GLUI_StdBitmaps_Codes { + GLUI_STDBITMAP_CHECKBOX_OFF=0, + GLUI_STDBITMAP_CHECKBOX_ON, + GLUI_STDBITMAP_RADIOBUTTON_OFF, + GLUI_STDBITMAP_RADIOBUTTON_ON, + GLUI_STDBITMAP_UP_ARROW, + GLUI_STDBITMAP_DOWN_ARROW, + GLUI_STDBITMAP_LEFT_ARROW, + GLUI_STDBITMAP_RIGHT_ARROW, + GLUI_STDBITMAP_SPINNER_UP_OFF, + GLUI_STDBITMAP_SPINNER_UP_ON, + GLUI_STDBITMAP_SPINNER_DOWN_OFF, + GLUI_STDBITMAP_SPINNER_DOWN_ON, + + GLUI_STDBITMAP_CHECKBOX_OFF_DIS, /*** Disactivated control bitmaps ***/ + GLUI_STDBITMAP_CHECKBOX_ON_DIS, + GLUI_STDBITMAP_RADIOBUTTON_OFF_DIS, + GLUI_STDBITMAP_RADIOBUTTON_ON_DIS, + GLUI_STDBITMAP_SPINNER_UP_DIS, + GLUI_STDBITMAP_SPINNER_DOWN_DIS, + GLUI_STDBITMAP_LISTBOX_UP, + GLUI_STDBITMAP_LISTBOX_DOWN, + GLUI_STDBITMAP_LISTBOX_UP_DIS, + /*** + GLUI_STDBITMAP_SLIDER_TAB, + ***/ + GLUI_STDBITMAP_NUM_ITEMS +}; + + +/************ Image Bitmap arrays **********/ +extern int glui_img_checkbox_0[]; +extern int glui_img_checkbox_1[]; +extern int glui_img_radiobutton_0[]; +extern int glui_img_radiobutton_1[]; +extern int glui_img_uparrow[]; +extern int glui_img_downarrow[]; +extern int glui_img_leftarrow[]; +extern int glui_img_rightarrow[]; +extern int glui_img_spinup_0[]; +extern int glui_img_spinup_1[]; +extern int glui_img_spindown_0[]; +extern int glui_img_spindown_1[]; +extern int glui_img_checkbox_0_dis[]; +extern int glui_img_checkbox_1_dis[]; +extern int glui_img_radiobutton_0_dis[]; +extern int glui_img_radiobutton_1_dis[]; +extern int glui_img_spinup_dis[]; +extern int glui_img_spindown_dis[]; +extern int glui_img_listbox_up[]; +extern int glui_img_listbox_down[]; +extern int glui_img_listbox_up_dis[]; + +extern int *bitmap_arrays[]; + + + +/************************************************************/ +/* */ +/* Class GLUI_Bitmap */ +/* */ +/************************************************************/ +class GLUI_Bitmap +{ +public: + unsigned char *pixels; + int w, h; + + void load_from_array( int *array ); + + GLUI_Bitmap( void ) { + pixels = NULL; + w = 0; + h = 0; + } +}; + + + + +/************************************************************/ +/* */ +/* Class GLUI_StdBitmap */ +/* */ +/************************************************************/ +class GLUI_StdBitmaps +{ +public: + GLUI_Bitmap bitmaps[ GLUI_STDBITMAP_NUM_ITEMS ]; + + void draw( int bitmap_num, int x, int y ); + + GLUI_StdBitmaps( void ) { + int i; + + for( i=0; i
\n",&len); + list_app( &(JOB->res.linelist), (void *)strdup(buffer) ); // wcsdup + memset(buffer, 0, len); + j=0; // reset counter for new line + } + if (JOB->cfg.out_format==XML) { /* subject of change */ + char s1[255]; /* ToDo: avoid potential buffer overflow !!! */ + /* output lot of usefull information for XML filter */ + sprintf(s1,"\n", + line_info.x0[line],line_info.m1[line], + line_info.x1[line]-line_info.x0[line]+1, + line_info.m4[line]-line_info.m1[line],line); + // buffer=append_to_line(buffer,s1,&len); + } + oldline=line; + } + if (box2->c > ' ' && + box2->c <= 'z') i1++; /* count non-space chars */ + if (box2->c == '\n') { + if (JOB->cfg.out_format!=XML) { /* subject of change */ + line_info = JOB->res.lines; + line = box2->line; + if (line > 0) { + line_gap = line_info.m2[line] - line_info.m3[line - 1]; + for (line_gap -= max_single_space_gap; line_gap > 0; + line_gap -= median_gap) { + buffer=append_to_line(buffer,"\n",&len); + j++; /* count chars in line */ + } + } + list_app( &(JOB->res.linelist), (void *)strdup(buffer) ); // wcsdup + memset(buffer, 0, len); + j=0; // reset counter for new line + } + } + if (box2->c == ' ') // fill large gaps with spaces + { + if (JOB->res.avX) { /* avoid SIGFPE */ + if (JOB->cfg.out_format==XML) { /* subject of change */ + char s1[255]; /* ToDo: avoid potential buffer overflow !!! */ + /* output lot of usefull information for XML filter */ + sprintf(s1," \n", + box2->x0,box2->y0,box2->x1-box2->x0+1,box2->y1-box2->y0+1); +// buffer=append_to_line(buffer,s1,&len); + } else + for (i = (box2->x1 - box2->x0) / (2 * JOB->res.avX) + 1; i > 0; i--) { + buffer=append_to_line(buffer," ",&len); + j++; /* number of chars in line */ + } + } + } + else if (box2->c != '\n') { + if (j==0 && JOB->res.avX) /* first char in new line? */ { + int indent = box2->x0 - JOB->res.lines.x0[box2->line]; + /* correct for angle of page as a whole. */ + if (JOB->res.lines.dx) + indent += box2->y0 * JOB->res.lines.dy / JOB->res.lines.dx; + /* subtract the base margin. */ + indent -= left_margin; + if (JOB->cfg.out_format==XML) { /* subject of change */ + char s1[255]; /* ToDo: avoid potential buffer overflow !!! */ + /* output lot of usefull information for XML filter */ + sprintf(s1," \n", + box2->x0,box2->y0,box2->x1-box2->x0+1,box2->y1-box2->y0+1); +// buffer=append_to_line(buffer,s1,&len); + } else + for (i = indent / JOB->res.avX; i > 0; i--) { + buffer=append_to_line(buffer," ",&len); j++; + } + } + if (JOB->cfg.out_format==XML) { /* subject of change */ + char s1[255]; /* ToDo: avoid potential buffer overflow !!! */ + /* output lot of usefull information for XML filter */ +// sprintf(s1," x0,box2->y0,box2->x1-box2->x0+1,box2->y1-box2->y0+1); + sprintf(s1," %d %d ", + box2->x1-box2->x0+1,box2->y1-box2->y0+1); + buffer=append_to_line(buffer,s1,&len); + if (box2->num_ac>1) { /* ToDo: output a list of alternatives */ + } + } + if (box2->c != UNKNOWN && box2->c != 0) { + buffer= + append_to_line(buffer,decode(box2->c,JOB->cfg.out_format),&len); + if (box2->c > ' ' && + box2->c <= 'z') i2++; /* count non-space chars */ + } else { /* c == UNKNOWN or 0 */ + wchar_t cc; cc=box2->c; + if (box2->num_ac>0 && box2->tas[0] + && (JOB->cfg.out_format!=XML || box2->tas[0][0]!='<')) { + /* output glued chars or ... (?) Jan08 */ + buffer=append_to_line(buffer,box2->tas[0],&len); + j+=strlen(box2->tas[0]); + } else { /* ToDo: leave string empty? set placeholder per option */ + /* output dummy string to mark UNKNOWN */ + if(JOB->cfg.unrec_marker[0]) + buffer = append_to_line(buffer, JOB->cfg.unrec_marker, &len); + } + } + if (JOB->cfg.out_format==XML) { + if (box2->num_ac>-1) { + /* output alist ToDo: separate */ + int i1; char s1[256]; +// sprintf(s1,"\" numac=\"%d\" weights=\"",box2->num_ac); + sprintf(s1," %d ",box2->num_ac); + buffer=append_to_line(buffer,s1,&len); + for (i1=0;i1num_ac;i1++) { + sprintf(s1,"%d",box2->wac[i1]); + buffer=append_to_line(buffer,s1,&len); +// if (i1+1num_ac) buffer=append_to_line(buffer,",",&len); + if (i1+1num_ac) buffer=append_to_line(buffer," ",&len); + } + if (box2->num_ac>1) +// buffer=append_to_line(buffer,"\" achars=\"",&len); + buffer=append_to_line(buffer," ",&len); + for (i1=1;i1num_ac;i1++) { + if (box2->tas[i1] && box2->tas[i1][0]!='<') +// buffer=append_to_line(buffer,box2->tas[i1],&len); + buffer=append_to_line(buffer,box2->tas[i1],&len); + else + buffer=append_to_line(buffer, + decode(box2->tac[i1],JOB->cfg.out_format),&len); + // ToDo: add tas[] (achars->avalues or alternate_strings? +// if (i1+1num_ac) buffer=append_to_line(buffer,",",&len); + if (i1+1num_ac) buffer=append_to_line(buffer," ",&len); + } + } +// buffer=append_to_line(buffer,"\" />\n",&len); + buffer=append_to_line(buffer,"\n",&len); + } + if (box2->num_ac && box2->tas[0]) { + if (box2->tas[0][0]=='<') { /* output special XML object */ +// buffer=append_to_line(buffer,box2->tas[0],&len); + buffer=append_to_line(buffer,"\n",&len); + j+=strlen(box2->tas[0]); + } + } + j++; /* number of chars in line */ + } + i++; + } end_for_each(&(JOB->res.boxlist)); + if (JOB->cfg.out_format==XML && oldline>-1) { /* subject of change */ +// buffer=append_to_line(buffer,"\n",&len); + } + if (JOB->cfg.out_format==XML) { /* subject of change */ +// buffer=append_to_line(buffer,"\n\n",&len); + } + + /* do not forget last line */ + // is there no \n in the last line? If there is, delete next line. + list_app( &(JOB->res.linelist), (void *)strdup(buffer) ); + free(buffer); + if( JOB->cfg.verbose&1 ) + fprintf(stderr,"... %d lines, boxes= %d, chars= %d\n",i,i1,i2); +} diff --git a/.svn/pristine/e7/e709a93746f1fc8832f7457d39117f3c2b0f9f28.svn-base b/.svn/pristine/e7/e709a93746f1fc8832f7457d39117f3c2b0f9f28.svn-base new file mode 100644 index 0000000..c7d13de --- /dev/null +++ b/.svn/pristine/e7/e709a93746f1fc8832f7457d39117f3c2b0f9f28.svn-base @@ -0,0 +1,99 @@ +/* + * scan_cv implementation + * + * Copyright (C) HamidReza Houshiar + * + * Released under the GPL version 3. + * + */ + +#include "slam6d/fbr/scan_cv.h" + +using namespace std; + +namespace fbr{ + + scan_cv::scan_cv(string dir, unsigned int number, IOType format){ + sDir = dir; + sNumber = number; + sFormat = format; + zMax = numeric_limits::min(); + zMin = numeric_limits::max(); + nPoints = 0; + } + + void scan_cv::convertScanToMat(){ + bool scanserver = false; + Scan::openDirectory(scanserver, sDir, sFormat, sNumber, sNumber); + cout<<"loading "<get("xyz"); + DataReflectance xyz_reflectance = source->get("reflectance"); + nPoints = xyz.size(); + scan.create(nPoints,1,CV_32FC(4)); + scan = cv::Scalar::all(0); + cv::MatIterator_ it; + it = scan.begin(); + for(unsigned int i = 0; i < nPoints; i++){ + float x, y, z, reflectance; + x = xyz[i][0]; + y = xyz[i][1]; + z = xyz[i][2]; + reflectance = xyz_reflectance[i]; + + //normalize the reflectance + reflectance += 32; + reflectance /= 64; + reflectance -= 0.2; + reflectance /= 0.3; + if (reflectance < 0) reflectance = 0; + if (reflectance > 1) reflectance = 1; + + (*it)[0] = x; + (*it)[1] = y; + (*it)[2] = z; + (*it)[3] = reflectance; + + //finding min and max of z + if (z > zMax) zMax = z; + if (z < zMin) zMin = z; + + ++it; + } + Scan::closeDirectory(); + } + + string scan_cv::getScanDir(){ + return sDir; + } + + unsigned int scan_cv::getScanNumber(){ + return sNumber; + } + + unsigned int scan_cv::getNumberOfPoints(){ + return nPoints; + } + + double scan_cv::getZMin(){ + return zMin; + } + + double scan_cv::getZMax(){ + return zMax; + } + + IOType scan_cv::getScanFormat(){ + return sFormat; + } + + cv::Mat scan_cv::getMatScan() + { + return scan; + } + + void scan_cv::getDescription(){ + cout<<"load "<>> DO NOT EDIT THIS FILE IF YOU NOT REALLY KNOW WHAT YOU ARE DOING! <<< + + I have invested lot of time, to write this part of the program. + This engine should recognize chars allways right or return UNKNOWN. + If you change something, test all other example files too, + to be sure that all things work better. (JoergS) + + This engine was pixelbased until 0.40 which was not successfull enough. + Also code changes always hade side effects. The vectorisation of the code + starts from version 0.41 with the chars XNz and seems to be much better + to handle. Vectorization means we frame each character by a chain of + vectors and dont care about pixels anymore. Unfortunatly I have to + replace all the pixel codes, which is a long process. Old code will be lost. + (JorgS) + + +ToDo: + - if box1->p and b differ, reduce probability + - probability makes life much easier here + - use only one box!?, may be bits have usefull infos + - divide this file, suggestion: classify chars: + high=ABCDEFGHIJKLMNOPQRSTUVWXYZbdfhklt, low=acegijmnopqrsuvwxyz + or + often_used=etianmsurwdkgo rarely_used=hvjcflpqxyz.,: + or + every char (large overhead) + - two-pass version (first pass without tolerance) + 2nd pass with tolerance (ex: one tiny more in sdata->holes) + + general feature extraction: + - white holes at middle, upper, lower position (cost much time) + - test lines and triangles insteat of rectangles + + char is removed, wchar_t is used (better code) + + making a static global variable-set x.x0,x.x1, and call test_a, + test_b ... (faster compilation, but not reentrant!) + + - adding slant-angle (if detected) to distinguish between l and / ? + - ac (alternate chars) as string add_ac(box1,"/") => box1->ac="Il/"; + for better context correction or output: "Ha[lI][lI]o!" + +*/ + +#include +#include +// #include "pgm2asc.h" +#include "ocr0.h" +// #include "ocr1.h" +#include "amiga.h" +#include "pnm.h" +#include "gocr.h" + +#define IFV if(JOB->cfg.verbose&4) +#define MM {IFV fprintf(stderr,"\nDBG %c L%04d (%d,%d): ",(char)c_ask,__LINE__,box1->x0,box1->y0);} + +// the old debug mode (0.40) was only for a special char, for another char +// code must be recompiled with C_ASK='char' +// new debug mode (0.41) explains why char is declined or accepted as ABC... +// the output can be filtered by external scripts +// ToDo: we could reduce output to filter string +#ifndef DO_DEBUG /* can be defined outside (configure --with-debug) */ +#define DO_DEBUG 0 /* 0 is the default */ +#endif + +/* this macro is for debugging output: "if char is declined, why?" */ +#if DO_DEBUG /* 0=Work mode, 1=debugging mode */ +// Setac: output, that char is choosen with a probability +// Break: output, why the char is not choosen +// MSG: debugging functions for char C_ASK, mostly messages +// DBG: definitions usefull only for debugging +#define Setac(box1,ac,ad) { MM;IFV fprintf(stderr,"setac %d",ad);setac(box1,ac,ad); } +#define Break { MM;IFV fprintf(stderr,"break"); break; } +#define MSG(x) { MM;IFV x } +#define DBG(x) x +#else +#define Setac(box1,ac,ad) setac(box1,ac,ad) +#define Break break +#define MSG(x) +#define DBG(x) +#endif + +/* extern "C"{ */ + +// static inline int sq(int x) { return x*x; } /* square */ + +/* + * go from vector j1 to vector j2 and measure maximum deviation of + * the steps from the line connecting j1 and j2 + * return the squared maximum distance + * in units of the box size times 1024 + * ToDo: 1) better give back max-dx and max-dy ??? + * errors if j1 and j2 are in different frames or belong to + * more then one frame? + * 2) Better get deviation from a complete vector graphic? + * The vectorgraphic is the ideal test char adapted to the + * extrem vertices of the real char. + */ +int line_deviation( struct box *box1, int j1, int j2 ) { + int r1x, r1y, r2x, r2y, r3x, r3y, i, x, y, d, dist, maxdist=0, frame, l2; + r1x=box1->frame_vector[j1][0]; + r1y=box1->frame_vector[j1][1]; + r2x=box1->frame_vector[j2][0]; + r2y=box1->frame_vector[j2][1]; + if (!box1->num_frames) return(-1); + if (j1<0 || j1>box1->num_frame_vectors[box1->num_frames-1] || + j2<0 || j2>box1->num_frame_vectors[box1->num_frames-1]) { + fprintf(stderr,"Error in "__FILE__" L%d: idx out of range",__LINE__); + return(-1); + } + /* get the frame the endvector belongs to */ + for (i=0;inum_frames;i++) + if (j2num_frame_vectors[i]) break; + frame=i; + /* frame(j1)<=frame(j2) possible */ + for (i=j1;;i++) { // do it for each vector between j1 and j2 + if (i >= box1->num_frame_vectors[frame]) + i=((frame)?box1->num_frame_vectors[frame-1]:0); /* go around */ + if (i==j2) break; + // for (i=j1;i!=j2;i=(i+1)%box1->num_frame_vectors[0]) {~} + r3x=box1->frame_vector[i][0]; + r3y=box1->frame_vector[i][1]; + // Language=german + // german: Abstand Punkt von Strecke, Laenge Lotrechte + // germ.Strecke : l1=(r1+r2)/2+d*(r2-r1)/2 for d=-1..1 + // germ.Lotrechte: l2=r3+b*[-(r2-r1).y,(r2-r1).x] + // Schnittpunkt : l1=l2, + // eq1x: (r1x+r2x)/2-r3x+d*(r2x-r1x)/2+b*(r2y-r1y)=0 + // eq1y: (r1y+r2y)/2-r3y+d*(r2y-r1y)/2-b*(r2x-r1x)=0 + // eq2x: b*(r2x-r1x)*(r2y-r1y)=-((r1x+r2x)/2-r3x+d*(r2x-r1x)/2)*(r2x-r1x) + // eq2y: b*(r2x-r1x)*(r2y-r1y)= ((r1y+r2y)/2-r3y+d*(r2y-r1y)/2)*(r2y-r1y) + // eq2y-eq2x: ... in units of 1024 (fast integer rounded correctly) + l2=sq(r2x-r1x)+sq(r2y-r1y); // square of distance r2-r1 + if (l2==0) { + // fprintf(stderr,"ocr0 L%d: r1==r2 r1= %d %d",__LINE__, r1x, r1y); // debugging + d=-1024; + } else + d=-( ((r1x+r2x)-2*r3x)*(r2x-r1x) + +((r1y+r2y)-2*r3y)*(r2y-r1y))*1024/l2; // ..-1024..+1024.. + if (d<=-1024) { x=r1x; y=r1y; } // starting point + else { + if (d>=1024) { x=r2x; y=r2y; } // end point + else { + x=((r1x+r2x)+1)/2+(d*(r2x-r1x))/2048; + y=((r1y+r2y)+1)/2+(d*(r2y-r1y))/2048; + /* we have the crossing point x,y now */ + } + } + dist=sq((x-r3x)*1024/(box1->x1-box1->x0+1)) + +sq((y-r3y)*1024/(box1->y1-box1->y0+1)); // 0..2*sq(1024) + if (dist>maxdist) maxdist=dist; + // for debugging: + // fprintf(stderr,"\nDBG dev: %d-%d-%d dist=%5d max=%5d d=%d %d,%d-%d,%d" + // " vector= %d %d crosspoint= %d %d ", + // j1,i,j2,dist,maxdist,d,r1x,r1y,r2x,r2y,r3x,r3y,x,y); + } + return maxdist; +} + +/* + * search vectors between j1 and j2 for nearest point a to point r + * example: + * + * r-> $$...$$ $ - mark vectors + * @@$..@@ @ - black pixels + * @@$..@@ . - white pixels + * @@@@.$@ + * a-> @@$@$@@ + * @$.@@@@ + * @@..$@@ + * @@..$@@ + * j1 --> $$...$$ <-- j2 + * + * ToDo: vector aa[5] = {rx,ry,x,y,d^2,idx} statt rx,ry? + * j1 and j2 must be in the same frame + * return aa? + * 2009-07: + * - change from normalized (dx=128,dy=128) to absolute distance + * - simpler and no squeeze effect (problem getting right i2 for "3") + */ +int nearest_frame_vector( struct box *box1, int j1, int j2, int rx, int ry) { + int x,y,d,i,aa[4]; /* x,y,normalized_distance^2,vector_index */ + int frame=0; + // int x0=box1->x0, y0=box1->y0, + // x1=box1->x1, y1=box1->y1; + // int dx=box1->x1-x0+1, dy=box1->y1-y0+1; + if (!box1->num_frames) return(-1); + if (j1<0 || j1>box1->num_frame_vectors[box1->num_frames-1] || + j2<0 || j2>box1->num_frame_vectors[box1->num_frames-1]) { + fprintf(stderr,"Error in "__FILE__" L%d: idx %d-%d out of range\n",__LINE__,j1,j2); + out_x(box1); + return(-1); + } + aa[0]=x=box1->frame_vector[j2][0]; /* x */ + aa[1]=y=box1->frame_vector[j2][1]; /* y */ + /* maximum is (distance*128)^2 if r is inside the box */ + // aa[2]=d=2*sq(128)+sq((rx-(x0+x1)/2)*128/dx)+sq((ry-(y0+y1)/2)*128/dy); + aa[2]=d=2*(sq(x-rx)+sq(y-ry)); /* must be greater than min. dist, Jul09 */ + aa[3]=j2; /* vector index */ + /* get the frame the endvector belongs to */ + for (i=0;inum_frames;i++) + if (j2num_frame_vectors[i]) break; + frame=i; + /* frame(j1)<=frame(j2) possible */ + for (i=j1;;i++) { + if (i >= box1->num_frame_vectors[frame]) + i=((frame)?box1->num_frame_vectors[frame-1]:0); /* go around */ + x=box1->frame_vector[i][0]; /* take a vector */ + y=box1->frame_vector[i][1]; + /* distance to upper left end, normalized to 128 */ + // d=sq((x-rx)*128/dx)+sq((y-ry)*128/dy); // old 2009-07 + d=sq(x-rx)+sq(y-ry); + if (d0 and m==1 box1 is changed +// m>0 modify box1->dots +// m==2 modify box1->y0 +// called by pgm2asc + ocr0(?) +int testumlaut(struct box *box1, int cs, int m, wchar_t *modifier){ + // pix p=*(box1->p); + int r,y,x,x0,x1,y0,y1,dx,dy,m1,m2,m3, + xl,xr,yu,yl; // left, right, upper and lower border of dots + wchar_t mod='\0'; /* (TeX-) modifier ~"'` for compose() */ + DBG( wchar_t c_ask='"'; ) + r=0; + x0=box1->x0; x1=box1->x1; dx=x1-x0+1; + y0=box1->y0; y1=box1->y1; dy=y1-y0+1; + m1=box1->m1; m2=box1->m2; m3=box1->m3; + xl=x0; xr=x1; yu=yl=y0; + if( dy < 5 || 4*y0 > 3*m2+m3 ) return 0; // no low chars: .,-= + /* modifier in box included? */ + if( 2*y1 > m1+m2 ){ + /* modifier in box included? */ + for(y=y0;2*yp,cs,1)==0 ) break; + if( 2*y extract */ + yl=y; + while( get_bw(xl,xr,y,y,box1->p,cs,1)==0 && 2*y<=y0+y1) y++; + if( m&2 ) box1->y0=y; /* set new upper bond */ + } + } + if( yu>=yl ) { if(m) box1->dots=0; return 0; } /* nothing found */ + if( get_bw(xl-1,xl-1,yu,yl-1,box1->p,cs,1)==1 ) // neighbour overlap? + while( get_bw(xl ,xl ,yu,yl-1,box1->p,cs,1)==1 && 2*xlp,cs,1)==1 ) break; + for(;xr>xl;xr--)if( get_bw(xr,xr,yu,yl,box1->p,cs,1)==1 ) break; + + if ( yl-1>yu ) { // tall box ij"a"o"u +#if 0 + x=box1->y0; box1->y0=m1; out_x(box1); box1->y0=x; + fprintf(stderr,"\n#testumlaut x= %d %d m1=%d m2=%d",x0,y0,m1-y0,m2-y0); + fprintf(stderr," yu=%d yl=%d xl=%d xr=%d",yu-y0,yl-y0,xl-x0,xr-x0); +#define DEBUG 1 +#endif + { + + x=xl;y=yu; + if( get_bw(xl,x1+1,yu,yl-1,box1->p,cs,1)==0 ) r=0; // neighbour overlap? + else + if( get_bw(xl ,xl ,yu,yl-1,box1->p,cs,1)==0 + || get_bw(xl-1,xl-1,yu,yl-1,box1->p,cs,1)==0 ) // be sure there are gap to neighbours + if( get_bw(xr ,xr ,yu,yl-1,box1->p,cs,1)==0 + || get_bw(xr+1,xr+1,yu,yl-1,box1->p,cs,1)==0 ) + { int i,j,x; + r=1; + // ...@@@.... RING_ABOVE // ..@@@..@@. TILDE + // ..@...@... // @@.@@@@@.. + // ..@...@... // @......... + // ..@..@@... + // ...@@@.... + for (i=yu;ip,cs,1)==1) break; + for ( ;ip,cs,1)==0) break; + for (j=xl;jp,cs,1)==1) break; + for ( ;jp,cs,1)==0) break; + for ( x=j;xp,cs,1)==1) break; + // vert. gap detected + if( j2 + && num_obj(xl,xr,yu,yl-1,box1->p,cs)>=2 // not best!!! + && num_cross(xl,xr,yu +(yl-yu)/4,yu+ (yl-yu)/4,box1->p,cs) == 2 + && num_cross(xl,xr,yl-1-(yl-yu)/2,yl-1-(yl-yu)/2,box1->p,cs) == 2 + ){ // may be the following lines are not quite ok + while( get_bw(xl,xr,yl,yl,box1->p,cs,1)==0 && 2*yly0=yl; +/* if( m&2 ) box1->y0= ( (r==1) ? yu : yl ); */ + // out_x(box1); + } + if(r==0){ // divided fr != fi + while( get_bw(x0,x1,yu,yu,box1->p,cs,1)==0 && 2*yuy0=yu; + } + if( r==1 ){ yl--; +// .@@@. ..@@. +// .@@.. .@@.. +// .@... .@@.. +// +// if( loop(box1->p,xl,yu,xr-xl,cs,0,RI) +// > loop(box1->p,xl,yl,xr-xl,cs,0,RI) // +dx/8 +// && loop(box1->p,xr,yu,xr-xl,cs,0,LE) +// < loop(box1->p,xr,yl,xr-xl,cs,0,LE)) // -dx/8 ) // é Nov03 + if( loop(box1->p,xl,yu,xr-xl,cs,0,RI) + - loop(box1->p,xr,yu,xr-xl,cs,0,LE) + > loop(box1->p,xl,yl,xr-xl,cs,0,RI) // +dx/8 + - loop(box1->p,xr,yl,xr-xl,cs,0,LE)+1) // -dx/8 ) // é Nov03 + mod = ACUTE_ACCENT; // ' + + if( xr-xl+1 > 3*(yl-yu+1) + && get_bw(xl,xr,yu,yl,box1->p,cs,2)==0 ) + mod = MACRON; // "-" above + +// .@@@. .@@.. +// ..@@. ..@@. +// ...@. ..@@. +// +// if( loop(box1->p,xl,yu,xr-xl,cs,0,RI) +// < loop(box1->p,xl,yl,xr-xl,cs,0,RI) // -dx/8 +// && loop(box1->p,xr,yu,xr-xl,cs,0,LE) +// > loop(box1->p,xr,yl,xr-xl,cs,0,LE) ) // +dx/8 ) à Nov03 + if( loop(box1->p,xl,yu,xr-xl,cs,0,RI) + - loop(box1->p,xr,yu,xr-xl,cs,0,LE) + < loop(box1->p,xl,yl,xr-xl,cs,0,RI) // -dx/8 + - loop(box1->p,xr,yl,xr-xl,cs,0,LE) -1 ) // +dx/8 ) à Nov03 + mod = GRAVE_ACCENT; // ` + +#ifdef DEBUG + fprintf(stderr,"\n#testumlaut x= %d %d m1=%d m2=%d",x0,y0,m1-y0,m2-y0); + fprintf(stderr," yu=%d yl=%d xl=%d xr=%d",yu-y0,yl-y0,xl-x0,xr-x0); +#endif + if( (xr-xl+1) < 2*(yl-yu+1)+2 + && 2*(xr-xl+1)+2 > (yl-yu+1) ) { + int i,i1,i2,i3,i4; + i1=loop(box1->p,xl ,(yu+yl)/2,xr-xl+1,cs,0,RI); + i1=loop(box1->p,xl+i1,(yu+yl)/2,xr-xl+1,cs,1,RI); + i2=loop(box1->p,(xl+xr)/2,yu ,yl-yu+1,cs,0,DO); + i2=loop(box1->p,(xl+xr)/2,yu+i2,yl-yu+1,cs,1,DO); + for (i=0;ip,xl+i,yu+i)< cs) break; i3=i; + for ( ;ip,xl+i,yu+i)>=cs) break; i3=i-i3; + for (i=0;ip,xr-i,yu+i)< cs) break; i4=i; + for ( ;ip,xr-i,yu+i)>=cs) break; i4=i-i4; +#ifdef DEBUG + fprintf(stderr,"\n#DEBUG DOT_ABOVE %d %d %d %d",i1,i2,i3,i4); +#endif + if ( (xr-xl<5 && yl-yu<8) /* to small */ + || (i1>=(xr-xl+1)/2+2 && i2>=(yl-yu+1)/2+2 /* symmetrical */ + && abs(i3-i4)<=i1/4+2 && abs(i1-i2)<=i1/4+2 + && abs(i3-i1)<=i1/4+4 && abs(i4-i2)<=i1/4+4) + ) + mod = DOT_ABOVE; // "." above, ToDo: improve it! + } + + if( ( loop(box1->p,xl,yu ,xr-xl,cs,0,RI) + > loop(box1->p,xl,yl ,xr-xl,cs,0,RI)-dx/8 + || loop(box1->p,xl,yu ,xr-xl,cs,0,RI) + > loop(box1->p,xl,yl-1,xr-xl,cs,0,RI)-dx/8 ) + && ( loop(box1->p,xr,yu ,xr-xl,cs,0,LE) + > loop(box1->p,xr,yl ,xr-xl,cs,0,LE)-dx/8 + || loop(box1->p,xr,yu ,xr-xl,cs,0,LE) + > loop(box1->p,xr,yl-1,xr-xl,cs,0,LE)-dx/8 ) + && num_cross(xl,xr,yu ,yu ,box1->p,cs) == 1 + && ( num_cross(xl,xr,yl ,yl ,box1->p,cs) == 2 + || num_cross(xl,xr,yl-1,yl-1,box1->p,cs) == 2 )) + mod = CIRCUMFLEX_ACCENT; // "^" + + if( ( loop(box1->p,xl,yu ,xr-xl,cs,0,RI) + < loop(box1->p,xl,yl ,xr-xl,cs,0,RI)-dx/10 + || loop(box1->p,xl,yu+1,xr-xl,cs,0,RI) + < loop(box1->p,xl,yl ,xr-xl,cs,0,RI)-dx/10 ) + && ( loop(box1->p,xr,yu ,xr-xl,cs,0,LE) + < loop(box1->p,xr,yl ,xr-xl,cs,0,LE)-dx/10 + || loop(box1->p,xr,yu+1,xr-xl,cs,0,LE) + < loop(box1->p,xr,yl ,xr-xl,cs,0,LE)-dx/10 ) + && ( num_cross(xl,xr,yu ,yu ,box1->p,cs) == 2 + || num_cross(xl,xr,yu+1,yu+1,box1->p,cs) == 2 ) + && num_cross(xl,xr,yl ,yl ,box1->p,cs) == 1 ) + mod = CARON; // "v" above + + if( /* test for bow (new0.3.6) */ + loop(box1->p,xl,yu ,xr-xl,cs,0,RI) + + loop(box1->p,xl,yl ,xr-xl,cs,0,RI) + - 2*loop(box1->p,xl,(yl+yu)/2,xr-xl,cs,0,RI) > dx/16+1 + && xr-xl>10) + if( ( loop(box1->p,xl,yu ,xr-xl,cs,0,RI) + < loop(box1->p,xl,yl ,xr-xl,cs,0,RI)-dx/10 + || loop(box1->p,xl,yu+1,xr-xl,cs,0,RI) + < loop(box1->p,xl,yl ,xr-xl,cs,0,RI)-dx/10 ) + && ( loop(box1->p,xr,yu ,xr-xl,cs,0,LE) + < loop(box1->p,xr,yl ,xr-xl,cs,0,LE)-dx/10 + || loop(box1->p,xr,yu+1,xr-xl,cs,0,LE) + < loop(box1->p,xr,yl ,xr-xl,cs,0,LE)-dx/10 ) + && ( num_cross(xl,xr,yu ,yu ,box1->p,cs) == 2 + || num_cross(xl,xr,yu+1,yu+1,box1->p,cs) == 2 ) + && num_cross(xl,xr,yl ,yl ,box1->p,cs) == 1 ) + mod = BREVE; // round "u" above + + if( xr-xl>3 && yl-yu>1 ) + if( loop(box1->p,xl,yu,xr-xl,cs,0,RI) + > loop(box1->p,xl,yl,xr-xl,cs,0,RI) + && loop(box1->p,xr,yu,xr-xl,cs,0,LE) + < loop(box1->p,xr,yl,xr-xl,cs,0,LE) + && num_cross(xl,xr,yu,yu,box1->p,cs) == 2 + && num_cross(xl,xr,yl,yl,box1->p,cs) == 2 ) + mod = TILDE; + + if( xr-xl>2 && yl-yu>2) + if( num_cross(xl,xr,(yu+yl)/2,(yu+yl)/2,box1->p,cs) >1 ) + if( num_cross((xl+xr)/2,(xl+xr)/2,yu,yl,box1->p,cs) >1 ) + if( num_hole(xl,xr,yu,yl,box1->p,cs,NULL) == 1 ) + mod = RING_ABOVE; + +#ifdef DEBUG + printf("\n#DEBUG umlaut mod=0x%04x x=%d..%d y=%d..%d r=%d %s", + (int)mod,yu-box1->y0,yl-box1->y0, + xl-box1->x0,xr-box1->x0,r,((mod==CARON)?"CARON": + ((mod==ACUTE_ACCENT)?"ACUTE": + ((mod==TILDE)?"TILDE":"?")))); + out_x(box1); +#endif + + } + } + if (m) box1->dots=r; // set to 0 also possible after division + if (m) box1->modifier=mod; /* should be resetted after compose ??? */ + MSG(fprintf(stderr,"umlaut mod=%s dots=%d y0o=%d",decode(mod,ASCII),r,y0);) + } +// printf(" modifier=%c",mod); + if (modifier) *modifier=mod; /* set modifier */ + return r; +} + + +static wchar_t ocr0_eE(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + int i,i1,i2,j,d,x,y,hchar=sdata->hchar,gchar=sdata->gchar,bad_e=0, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1,cs=sdata->cs; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + ad; /* tmp-vars */ + int (*aa)[4]=sdata->aa; /* corner-points, (x,y,dist^2,vector_idx) */ + + // --- most frequent letter e first!!! + // --- test e --------------------------------------------------- + for(ad=d=100;dx>2 && dy>3;){ // min 3x4 (smallest seen is 5x6) + DBG( wchar_t c_ask='e'; ) + if (sdata->holes.num > 2) Break; /* tolerant against a tiny hole */ + if (sdata->holes.num != 1) ad=97*ad/100; + /* ToDo: may be a two pass version intolerant/tolerant is better */ + if( loop(box1->p,x0,y0+dy/2,x1-x0,cs,0,RI)>dx/3 ) Break; // rough test + if( loop(box1->p,x0+dx/2,y0,y1-y0,cs,0,DO)>dy/3 ) Break; + if( loop(box1->p,x0+dx/2,y1,y1-y0,cs,0,UP)>dy/3 ) Break; + if( num_cross(x0,x1,y0+dy/4 ,y0+dy/4 ,box1->p,cs) > 2 + && num_cross(x0,x1,y0+dy/4+1,y0+dy/4+1,box1->p,cs) > 2 ) Break; // gt + x=(x0+x1)/2;i= num_cross(x,x,y0,y1,box1->p,cs); // v0.40 + if (i!=3) { x=(x0+2*x1)/3;i= num_cross(x,x,y0,y1,box1->p,cs); } + if (i!=3) { x=(x0+3*x1)/4;i= num_cross(x,x,y0,y1,box1->p,cs); } + if (i!=3) { i= num_cross((x0+2*x1)/3,(x0+x1)/2,y0,y1,box1->p,cs); } + i=loop(box1->p,x0,y0+dy/2,x1-x0,cs,0,RI); if( i>dx/2 ) Break; + j=loop(box1->p,x0,y0 ,x1-x0,cs,0,RI); if( jp,x0,y1 ,x1-x0,cs,0,RI); if( jp,x0+dx/2,y0,y1-y0,cs,0,DO); if( i>dx/2 ) Break; + j=loop(box1->p,x1-dx/3,y0,y1-y0,cs,0,DO); if( jp,x0 ,y0,y1-y0,cs,0,DO); if( jp,x1 ,y0,y1-y0,cs,0,DO); if( jp,x0+dx/2,y1,y1-y0,cs,0,UP); if( i>dx/2 ) Break; + j=loop(box1->p,x0 ,y1,y1-y0,cs,0,UP); if( jp,x1 ,y1,y1-y0,cs,0,UP); if( jp,x0, (y0+y1)/2,x1-x0,cs,0,RI) + -loop(box1->p,x0,(3*y0+y1)/4,x1-x0,cs,0,RI) + -loop(box1->p,x0,(y0+3*y1)/4,x1-x0,cs,0,RI); + if (dx>3 && j>=dx/4) Break; // ~g 4x6font + for(y=1;yp,cs) == 2 ) break; + if( y==dy/2 ) Break; // v0.2.5 ~ bad_t + for(i=0,j=x0+dx/4;j<=x1-dx/4 && i<=dx/4;j++) + if( num_cross(j,j,y0,y1,box1->p,cs) == 3 ) i++; + if( dx>4 && dy>5 && (i set x,y + for(x=0,y=i=y0+dy/3;ip,x1,i,y1-y0,cs,0,LE); + if(j>=x) { x=j;y=i; } + } + if (x 2* smallest thickness right + for(i1=dx,i=y0+dy/3;ip,x0 ,i,y1-y0,cs,0,RI); if (j>dx/2) break; + j =loop(box1->p,x0+j,i,y1-y0,cs,1,RI); + if (jp,x1 ,i,y1-y0,cs,0,LE); + j =loop(box1->p,x1-j,i,y1-y0,cs,1,LE); + if(j2*i1) Break; // not accepted, if right line is not very thinn + x =loop(box1->p,x1 ,y,y1-y0,cs,0,LE); + x+=loop(box1->p,x1-x,y,y1-y0,cs,1,LE); + x+=loop(box1->p,x1-x,y,y1-y0,cs,0,LE); + if (3*i2>i1) ad=99*ad/100; + if (2*i2>i1) ad=99*ad/100; + bad_e=60; // used later? + } + if (xp,cs) > 1 ) i=0; + if( i ) Break; +// ..@@@@...<- +// .@@@@@@;. +// @@,...@@. +// @@.....@, +// @@@@@@@@@ +// @@.,;.@,. <- problem (y) == bad_e>50 +// @@.....@. +// @@,...@@. +// .@@@,@@@. +// ..@@@@;..<- + if (dy>11 && bad_e<50) + if ( num_cross(x0,x1,y,y,box1->p,cs) != 1 ) Break; // except "geschwungenem e" + if ( num_cross(x0,x1-dx/3,y ,y ,box1->p,cs) != 1 + && num_cross(x0,x1-dx/3,y+1,y+1,box1->p,cs) != 1 ) Break; + // if( num_hole(x0, x1, y0 , y ,box1->p,cs,NULL) < 1 ){ + if( sdata->holes.num == 0 || sdata->holes.hole[0].y1 >= y-y0){ + if( sdata->hchar ) Break; // ~ \it t + // look if thinn font (may be h-line is broken) Mai00 + for(j=0,i=x0+dx/8;ip,cs,1) == 1 ) j++; + if(j<2*dx/4) Break; + } + if( sdata->holes.num>0 && sdata->holes.hole[0].y0 > y-y0) Break; + if( sdata->holes.num>1 && sdata->holes.hole[1].y0 > y-y0) Break; + if( sdata->holes.num==1 && sdata->holes.hole[0].x0 >= dx/2) { + ad=95*ad/100; } /* 8*10 @ (=at) is not an e */ + // look for horizontal gap + for(x=0,y=i=y0+dy/4;ip,x0,i,x1-x0,cs,0,RI); + if(j>=x) { x=j;y=i; } + } + if (y>y0+dy/4 && ydx/2) Break; // s + if (x>dx/4) ad=99*ad/100; + + if( num_cross(x0+dx/2,x1 ,y1-dy/4,y1 ,box1->p,cs) == 0 + && num_cross(x0+dx/2,x1-1,y1-dy/4,y1 ,box1->p,cs) == 0 + && num_cross(x0+dx/2,x1 ,y1-dy/4,y1-1,box1->p,cs) == 0 ) { + if (sdata->gchar) Break; // ~p + ad=99*ad/100; + } + /* upper case is for 5x6 box */ + if( sdata->hchar // broken B ? should also work when linedetection fails + && loop(box1->p,x1,y1-dy/3,dx,cs,0,LE)<=dx/8 ) { + x = loop(box1->p,x0,y0+dy/2,dx,cs,0,RI); + if( loop(box1->p,x0,y0+dy/4,dx,cs,0,RI)<=x + && loop(box1->p,x0,y0+dy/8,dx,cs,0,RI)<=x ) Break; + if( loop(box1->p,x0,y1-dy/4,dx,cs,0,RI)<=x + && loop(box1->p,x0,y1-dy/8,dx,cs,0,RI)<=x ) Break; + } + x = loop(sdata->bp,0,dy-2 ,dx,cs,0,RI); + if( loop(sdata->bp,0,dy-1-dy/8,dx,cs,0,RI)>x && dy>16) Break; // some Q + if (box1->m2) { + if (sdata->gchar) ad=99*ad/100; + if (sdata->hchar) ad=99*ad/100; + } else ad=99*ad/100; + + Setac(box1,(wchar_t)'e',ad); + if (ad>=100) return 'e'; + break; + } + // --- test E --------------------------------------------------- + for(ad=d=100;dx>2 && dy>4 ;){ // min 3x4 + // rewritten for vectors 0.43 + int i1, i2, i3, i4, i5; // line derivation + corners + DBG( wchar_t c_ask='E'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + /* half distance to the center */ + d=2*sq(128/4); + /* now we check for the upper right end of the h */ + if (aa[3][2]>d/2) Break; /* [2] = distance, ~dj... */ + if (aa[0][2]>d/2) Break; /* upper left end */ + if (aa[1][2]>d/2) Break; /* lower left end */ + if (aa[2][2]>d/2) Break; /* lowerright end */ +/* + E f near E + + OOOOOOOO OOOO + O5 O O + O4 O + OOOO3 OOOOOO + O2 O + O O + O1 O O + OOOOOOOO OOOOOO +*/ + // check the bow from below + for (i=aa[1][3];i!=aa[2][3];i=(i+1)%box1->num_frame_vectors[0]) { + if (y1-box1->frame_vector[ i][1]>dy/4) break; // fatal! + } if (i!=aa[2][3]) Break; // ~AHKMNRX + // search most left+down between bottom right and top right + i1=nearest_frame_vector(box1, aa[2][3],aa[3][3], x0, y1); + i5=nearest_frame_vector(box1, i1,aa[3][3], x0, y0); + i3=nearest_frame_vector(box1, i1, i5, x1, (y0+y1)/2); + i2=nearest_frame_vector(box1, i1, i3, x0, (2*y0+y1)/3); + i4=nearest_frame_vector(box1, i3, i5, x0, (y0+2*y1)/3); + i =nearest_frame_vector(box1, aa[0][3],aa[1][3], x0-dx/4, (y0+y1)/2); + if (2*box1->frame_vector[i][0] < aa[0][0]+aa[1][0]-1-dx/16) Break; + if (2*box1->frame_vector[i][0] < aa[0][0]+aa[1][0]) ad=99*ad/100; // f + + MSG(fprintf(stderr,"i1-5 %d %d %d %d %d",i1,i2,i3,i4,i5);) + // holes right open? + for( i=1,y=y0; yp,cs,2) == 0 ) i=0; + if( i ) Break; + for( i=1,y=y1; y>y1-dy/4 && i; y-- ) // long black line + if( get_bw(x0+dx/6,x1-dx/4,y,y,box1->p,cs,2) == 0 ) i=0; + if( i ) Break; + for( i=1,y=y0+dy/3; yp,x0 ,y,dx,cs,0,RI); + j=loop(box1->p,x0+j,y,dx,cs,1,RI); if( j>dx/3 ) i=0; + } if( i ) Break; + x=x1-dx/3; y=y0; // von oben durchbohren! + turmite(box1->p,&x,&y,x0,x1,y0,y1,cs,DO,ST); if( y>y0+dy/4 ) Break; + turmite(box1->p,&x,&y,x0,x1,y0,y1,cs,ST,DO); if( y>y0+dy/3 ) Break; + turmite(box1->p,&x,&y,x0,x1,y0,y1,cs,RI,DO); if( x<=x1 || y>y0+dy/2 ) Break; + x=x1-dx/3; y=y1; // von unten durchbohren! + turmite(box1->p,&x,&y,x0,x1,y0,y1,cs,UP,ST); if( yp,&x,&y,x0,x1,y0,y1,cs,ST,UP); if( yp,&x,&y,x0,x1,y0,y1,cs,RI,UP); if( x<=x1 || yp,&x,&y,x0,x1,y0,y1,cs,DO,ST); if( y>y0+dy/4 ) Break; + turmite(box1->p,&x,&y,x0,x1,y0,y1,cs,ST,DO); if( y>y0+dy/3 ) Break; + y+=dy/15; + turmite(box1->p,&x,&y,x0,x1,y0,y1,cs,LE,ST); if( x15 && x==x0) ad=99*ad/100; // to thin + x+=dx/15+1; + turmite(box1->p,&x,&y,x0,x1,y0,y1,cs,DO,ST); if( y>y1-dy/3 ) Break; + // if( num_hole(x0, x1, y0 , y1 ,box1->p,cs,NULL) > 0 ) Break; + if (sdata->holes.num > 0) Break; + i=loop(box1->p,x0,y0+dy/4,dx,cs,0,RI); if(i>dx/2) Break; + j=loop(box1->p,x0,y0+dy/2,dx,cs,0,RI); if(ji+dx/8) Break; i=j; + j=loop(box1->p,x0,y1-dy/4,dx,cs,0,RI); if(ji+dx/8) Break; + j=loop(box1->p,x1,y1-dy/4,dx,cs,0,LE); + for( x=dx,y=y0+dy/6; yp,x0,y,dx,cs,0,RI); + if (i>j/2 && ad>98) ad=99*ad/100; + if (i>dx/4) break; + if(i3*dx) // ~[ + if( get_bw(x0+dx/2,x0+dx/2,y0+dy/4,y1-dy/4,box1->p,cs,1) == 0 ) Break; + + if (box1->m2) { + if (!hchar) ad=ad*99/100; + if ( gchar) ad=ad*99/100; + } + Setac(box1,(wchar_t)'E',ad); + if (ad>=100) return 'E'; + break; + } + return box1->c; +} + +static wchar_t ocr0_n(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + int i,j,d,x,y,i1,i2,i3,handwritten=0, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1,cs=sdata->cs; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + ad; /* tmp-vars */ + + // --- test n --------------------------------------------------- + // glued rm is very similar to glued nn -> thickness of h-line should grow + // may02: tested for 8x12 font + for(ad=d=100;dx>2 && dy>3;){ // min 3x4 + DBG( wchar_t c_ask='n'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + i= num_cross( 0,dx-1,dy/4,dy/4,sdata->bp,cs); + j= num_cross( 0,dx-1,dy/2,dy/2,sdata->bp,cs); + if( (i<2 || i>3) && j!=2 ) Break; + if( loop(sdata->bp,dx/2,0,dy,cs,0,DO) > dy/8 && sdata->hchar ) Break; /* tt */ + y=5*dy/8; /* also for handwritten n, where first bow goes not down enough */ + if( num_cross( 0,dx/2,y ,y ,sdata->bp,cs) != 1 + && num_cross( 0,dx/2,y-1,y-1,sdata->bp,cs) != 1 + && num_cross(dx/2,dx-1,y ,y ,sdata->bp,cs) < 1 ) Break; // n rr + // ~thick_w + y=loop(sdata->bp,dx-1-dx/4,0,dy,cs,0,DO); if(y>dy/2) Break; + if(y>1)if( get_bw(dx-1-dx/4,dx-1,0,y-2,sdata->bp,cs,1) == 1 ) Break; + + y=3*dy/4; + if( num_cross(0, dx/2,y ,y ,sdata->bp,cs) == 1 + && num_cross(dx/2,dx-1,y ,y ,sdata->bp,cs) == 0 ) Break; // ~p + y=dy/2; + if( num_cross(0,dx-1,dy/2-dy/8,dy/2-dy/8,sdata->bp,cs) == 2 + && num_cross(0,dx-1,dy/2, dy/2 ,sdata->bp,cs) == 2 ) { // n rr + /* printed n */ + x =loop(sdata->bp,0,y,dx ,cs,0,RI); if(x> dx/4) Break; // search 1st v-line + x+=loop(sdata->bp,x,y,dx-x,cs,1,RI); if(x> dx/2) Break; i1=x; // 1st gap + x+=loop(sdata->bp,x,y,dx-x,cs,0,RI); if(x< dx/2) Break; i2=x; // 2nd v-line + x+=loop(sdata->bp,x,y,dx-x,cs,1,RI); if(x<3*dx/4) Break; i3=x; // 2nd gap + i=dy/4; y=13*dy/16; + if( num_cross(dx/2,dx-1,y,y,sdata->bp,cs)==2 ) i=3*dy/8; // \it n + if (i<2 && il1 l2 l3 l4 ??? + for(x=i1;xbp,x, 0,dy,cs,0,DO)>=i ) break; + if(x bp,x,dy-1,dy,cs,0,UP) >dy/4 ) break; + if(x==i2) Break; // no gap detected (glued serifs ??? ) + // glued rm as nn ??? + for(y=0,x=(i1+i2)/2;xbp,x,0,dy,cs,0,DO); + i=loop(sdata->bp,x,i,dy,cs,1,DO); // measure thickness + if( i>y ) y=i; if( i7 ) + if( loop(sdata->bp,dx-1,dy-1-dy/8,dx,cs,0,LE) + +loop(sdata->bp, 0,dy-1-dy/8,dx,cs,0,RI)-dx/8-1 + > loop(sdata->bp,dx-1,dy-1-dy/2,dx,cs,0,LE) + +loop(sdata->bp, 0,dy-1-dy/2,dx,cs,0,RI) ) ad=90*ad/100; // broken o + if( dy>7 && dx>7 ) + if( loop(sdata->bp,dx-1, dy/2,dx,cs,0,LE)==0 + && loop(sdata->bp,dx-1,dy-1-dy/8,dx,cs,0,RI)>dx/8 ) ad=98*ad/100; // broken o + } else { /* check handwritten n */ + if( num_cross(0,dx-1,dy/2, dy/2 ,sdata->bp,cs) != 3 + && num_cross(0,dx-1,dy/2-dy/8,dy/2-dy/8,sdata->bp,cs) != 3 ) Break; + i =loop(sdata->bp,0,dy/2-dy/8,dx,cs,0,RI); if (i>dx/4) Break; + i+=loop(sdata->bp,i,dy/2-dy/8,dx,cs,1,RI); if (i>dx/2) Break; + i+=loop(sdata->bp,i,dy/2-dy/8,dx,cs,0,RI); + if( num_cross(i,i, 0,dy/2-2*dy/8,sdata->bp,cs) != 0 ) Break; + i+=loop(sdata->bp,i,dy/2-dy/8,dx,cs,1,RI); + if( num_cross(i,i,dy/2+1, dy-1,sdata->bp,cs) != 0 ) Break; + handwritten=80; + } + + i= loop(sdata->bp,dx-1 ,dy/2,dx,cs,0,LE); if(i>5) + if( get_bw(dx-1-i/2,dx-1-i/2,0,dy/2,sdata->bp,cs,1) == 1 ) Break; // ~rr + i+=loop(sdata->bp,dx-1-i,dy/2,dx,cs,1,LE); + if( get_bw(dx-1-i ,dx-1-i ,0,dy/2,sdata->bp,cs,1) == 0 ) Break; // ~rv + + if( get_bw(dx/2,dx/2,dy/4,dy/4,sdata->bp,cs,1) == 0 + && get_bw(dx/2,dx-1,dy-2,dy-2,sdata->bp,cs,1) == 0 + && get_bw(dx/2,dx/2,dy/4,dy-2,sdata->bp,cs,1) == 1 ) Break; // ~P + + // glued ri ??? + if( box1->dots>0 && box1->m1 ) + if( get_bw((x1+x0)/2,x1,box1->m1,y0-1,box1->p,cs,1) == 1 ) + if( num_cross( 0,dx-1,0 ,0 ,sdata->bp,cs) >2 + || num_cross( 0,dx-1,1 ,1 ,sdata->bp,cs) >2 ) Break; + + + i=loop(sdata->bp,dx-1, dy-1,dx,cs,0,LE); if (i>dx/2) + i=loop(sdata->bp,dx-1, dy-2,dx,cs,0,LE); + x=loop(sdata->bp,dx-1,dy-1-dy/4,dx,cs,0,LE); + if (sdata->hchar && i-x>1) Break; // ß + x=loop(sdata->bp, 0,dy-1,dx,cs,0,LE); // check for serifs + i=loop(sdata->bp, 0,dy-2,dx,cs,0,LE); if (ibp, 0, 1,dx,cs,0,LE); if (ibp, 0, 2,dx,cs,0,LE); if (ihchar && x>0) Break; // fl + + if (num_cross( 0,dx-1,dy/4,dy/4,sdata->bp,cs)>=3) ad=98*ad/100; // small M + if (sdata->hchar || 2*y0m1+box1->m2) ad=96*ad/100; + if (sdata->gchar) ad=96*ad/100; // ß fl + if (dx<5) { // for small fonts no middle line is possible for m + ad=99*ad/100; // 4x6 m + if (num_cross(0,dx-1,dy/8,dy/8,sdata->bp,cs)>=2) { + ad=97*ad/100; // ~m + if (dy<=4) Setac(box1,'m',97); // only for 4x6 font! + } + } + Setac(box1,'n',ad); + break; + } + return box1->c; +} + +static wchar_t ocr0_M(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + pix *bp=sdata->bp; + int d,x,y,i0,i1,i2,i3,t1,hchar=sdata->hchar,gchar=sdata->gchar, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1,cs=sdata->cs; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + ad; /* tmp-vars */ + + // ------------------ test M --------------------------- + for(ad=d=100;dx>3 && dy>3;){ // dy<=dx nicht perfekt! besser mittleres + // min-suchen fuer m + DBG( wchar_t c_ask='M'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + for (y=dy/4;y<=3*dy/4;y++) + if (num_cross(0,dx-1,y,y,bp,cs)>=3) break; + if (y>3*dy/4 && dx>4) Break; + if( num_cross(0,dx-1, dy/4, dy/4,bp,cs)<2 + && num_cross(0,dx-1, dy/8, dy/8,bp,cs)<2 ) Break; /* fat M */ + if( num_cross(0,dx-1,3*dy/4,3*dy/4,bp,cs)<2 ) Break; + + x = loop(bp,dx-1 ,dy-1,dx,cs,0,LE); // ~ melted kl + x = loop(bp,dx-1-x,dy-1,dx,cs,1,LE); if( x>dx/2 ) Break; + + if( loop(bp, 0,7*dy/16,dx,cs,0,RI) + + loop(bp,dx-1,7*dy/16,dx,cs,0,LE) > dx/2 ) Break; // ~K + + if( dy>8 /* following lines should be extend to range check */ + && loop(bp, dx/4,dy-1, dy,cs,0,UP) 2 + && num_cross(0,dx-1,3*dy/4,3*dy/4,bp,cs)> 2 ) Break; // ~it_u + if( num_cross(0 ,dx-1,3*dy/4,3*dy/4,bp,cs)==2 + && num_cross(dx/2,dx/2,3*dy/4, dy-1,bp,cs)> 0 ) Break; // ~it_v + + if( loop(bp,3*dx/4, 0,dy,cs,0,DO) + > loop(bp,2*dx/4, 0,dy,cs,0,DO) + && loop(bp,3*dx/4,dy-1,dy,cs,0,UP) + < loop(bp,2*dx/4,dy-1,dy,cs,0,UP) ) Break; // ~N + if( loop(bp,3*dx/4, dy/8,dy,cs,0,DO) + > loop(bp,2*dx/4, dy/8,dy,cs,0,DO) + && loop(bp,3*dx/4,dy-1-dy/8,dy,cs,0,UP) + < loop(bp,2*dx/4,dy-1-dy/8,dy,cs,0,UP) ) Break; // ~serif_N + + // i0 is lower end of upper serifen (widest gap? ) + i0=0; + + if( num_cross(0,dx-1,dy/2,dy/2,bp,cs)!=4 ){ // Is it a N ? + if( num_cross(0,dx-1,dy/2,dy/2,bp,cs)==3 ){ + for(y=dy/2+1;yy-2 ) Break; // ~N + } + } + } + // MNWK + for(i2=0,i1=x=dx/2;xi2) {i2=y;i1=x;} else break; } + i3=i2+loop(bp,i1,i2,dy-i2,cs,1,DO); + if(i2hchar) Break; // rm + ad=99*ad/100; + } + if (i2==0 && dx>8 && dy>12) Break; // glued and bad splitted serifen-MN + + // if( num_hole(x0, x1, y0 , y1 ,box1->p,cs,NULL) != 0 ) Break; // small A + if (sdata->holes.num != 0) Break; + t1=loop(bp,0 ,3*dy/4,dx,cs,0,RI); + t1=loop(bp,t1,3*dy/4,dx,cs,1,RI); // thickness of line? + if( 7*(t1+1)=i2 ) Break; // no good M + i1+=loop(bp,i1, dy/4,dx,cs,1,RI); + i2+=loop(bp,i2,3*dy/4,dx,cs,1,RI); + if( i1>=i2 ) Break; // no good M + i1+=loop(bp,i1, dy/4,dx,cs,0,RI); + i2+=loop(bp,i2,3*dy/4,dx,cs,0,RI); + if( i1<=i2 ) Break; // no good M + } + if( num_cross(0,dx-1,dy/2,dy/2,bp,cs)==2 + && num_cross(0,dx-1,dy/4,dy/4,bp,cs)==2 && !hchar ) Break; // ~ \it u + + if (dy<17) + if( num_cross(0,dx-1, 0, 0,bp,cs)<2 ) ad=99*ad/100; + if (dx>5) /* 4x6 font has only 1 cross at y=1 */ + if( num_cross(0,dx-1, 1, 1,bp,cs)<2 ) ad=96*ad/100; // kt + if( num_cross(dx/2,dx/2, 0, dy-1,bp,cs)!=1) ad=98*ad/100; // kt + if (dx<5 && loop(bp,dx/2,0,dy,cs,0,DO)>=3*dy/8) ad=96*ad/100; // 4x6 H + + if( num_cross(0,dx-1, dy/4, dy/4,bp,cs)<=2 + && num_cross(0,dx-1,3*dy/4,3*dy/4,bp,cs)<=2 + && dx>8 && dy>12 ){ + ad=98*ad/100; + for(y=5*dy/16;y<5*dy/8;y++) // look for H-line + if( num_cross(0,dx-1,y ,y ,bp,cs)==1 ) break; + if( y<5*dy/8 ) ad=95*ad/100; + if( y<5*dy/8 ) + if( num_cross(2+dx/6,dx-3-dx/6,y-2,y-2,bp,cs)==0 + || num_cross(2+dx/6,dx-3-dx/6,y-1,y-1,bp,cs)==0 ) Break; // ~H bad! + } + + if( loop(bp,3*dx/8, 0,dy,cs,0,DO) >dy/2 + && loop(bp,5*dx/8,dy-1,dy,cs,0,UP) >dy/2 ) ad=95*ad/100; + + if(!hchar){ + ad=98*ad/100; /* not sure */ + if( loop(bp,0, dy/4,dx,cs,0,RI) + < loop(bp,0,dy-1-dy/8,dx,cs,0,RI)-dx/16 ) Break; // ~wi glued + } + if( gchar ) ad=98*ad/100; + if (ad>99 && dx<8) ad=99*ad/100; /* give 5x8 N a chance */ + Setac(box1,'M',ad); + break; + } + return box1->c; +} + +static wchar_t ocr0_N(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + int d,x,y,i1,i2,i3,hchar=sdata->hchar,gchar=sdata->gchar, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + (*aa)[4]=sdata->aa, /* corner-points, (x,y,dist^2,vector_idx) */ + dbg[9], + ad; /* tmp-vars */ + + // --- test N ------- +hchar -gchar + for(ad=d=100;dx>3 && dy>3;){ // 4x6font + int j; + DBG( wchar_t c_ask='N'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + if (sdata->holes.num > 0) ad=98*ad/100; /* # */ + if (dx<6) ad=99*ad/100; + if (dx<5) ad=99*ad/100; + /* half distance to the center */ + d=2*sq(128/4); + /* now we check for the 4 ends of the x */ + if (aa[0][2]>d) Break; + if (aa[1][2]>d) Break; + if (aa[2][2]>d) Break; + if (aa[3][2]>d) Break; + if (aa[3][0]-aa[0][0](dy+2)/5) Break; /* glued tu */ + if (abs(aa[3][1]-aa[0][1])>(dy+4)/8) ad=98*ad/100; /* glued tu */ + /* left and right vertical line */ + d=line_deviation(box1, aa[0][3], aa[1][3]); if (d>2*sq(1024/4)) Break; + ad=(100-(d-sq(1024)/2)/sq(1024)/4)*ad/100; + d=line_deviation(box1, aa[2][3], aa[3][3]); if (d>2*sq(1024/4)) Break; + + /* i1: uppermost left ^ from bottom (near 0,0) */ + i1=nearest_frame_vector(box1,aa[1][3],aa[2][3], x0+dx/8, y0); + x=box1->frame_vector[i1][0]; + y=box1->frame_vector[i1][1]; + MSG( fprintf(stderr,"i1= %d (%d,%d) left ^ from below", i1,x-x0,y-y0);) + if (y-y0 > 5*dy/8) Break; + if (x-x0 > 5*dx/8) Break; + /* i3: uppermost right ^ ~H */ + i3=nearest_frame_vector(box1,aa[1][3],aa[2][3], x1, y0); + MSG( fprintf(stderr,"i3= %d (%d,%d) right ^ (ad=%d)",\ + i3, box1->frame_vector[i3][0]-x0,box1->frame_vector[i3][1]-y0,ad);) + + /* check lower border of diagonal line, may fail on fonts where + * line ends on middle of right vertical line (screen font) */ + dbg[0]=d=line_deviation(box1,i1, aa[2][3]); + /* check right border of left vertical line */ + /* but split to possible lower left serif + vert. line */ + j=nearest_frame_vector(box1,aa[1][3],i1, x0+dx/2, y1+dy/2); + dbg[1]=d=line_deviation(box1, aa[1][3],j ); + +line_deviation(box1, j,i1); + MSG(fprintf(stderr," i1-a2 %d a1_serif-i1 %d ad=%d",dbg[0],dbg[1],ad);) + if (dbg[0] > sq(1024/4)) Break; + if (dx>4 && dbg[1] > sq(1024/4)) ad=97*ad/100; // d=0..2*sq(1024) + if (dx>4 && dbg[1] > sq(1024/3)) Break; // d=0..2*sq(1024) + // serif N has d=sq(1024/3)=116508 + MSG( fprintf(stderr,"ad %d", ad); ) + + /* i2: lowest right v from top, same frame? N-tilde etc.? */ + i2=nearest_frame_vector(box1,aa[3][3],aa[0][3], x1, y1-dy/8); + x=box1->frame_vector[i2][0]; + y=box1->frame_vector[i2][1]; + MSG( fprintf(stderr,"i2= %d (%d,%d) lowest right v from top",\ + i2, box1->frame_vector[i2][0]-x0,box1->frame_vector[i2][1]-y0);) + if (y-y0 < 3*dy/8) Break; + if (x-x0 < 3*dx/8) Break; + // test H + if ( box1->frame_vector[i3][0]-box1->frame_vector[i1][0]> dx/4 + && box1->frame_vector[i3][1]-box1->frame_vector[i1][1]<=dy/8 + && y<=box1->frame_vector[i1][1]) Break; + /* check if upper left and lower right point are joined directly */ + /* but split to possible upper right serif + down line */ + j=nearest_frame_vector(box1,i2,aa[0][3], x0+dx/2, y0-dy/2); + dbg[2]=d=line_deviation(box1,i2, j) + +line_deviation(box1, j, aa[0][3]); + /* check if upper right and lower right point are joined directly */ + /* but split to possible upper right serif + vert. line */ + j=nearest_frame_vector(box1,aa[3][3],i2, x0+dx/2, y0-dy/2); + dbg[3]=d=line_deviation(box1, aa[3][3],j) + +line_deviation(box1, j,i2); // ToDo: split once more? + MSG( fprintf(stderr," i2-a0 %d a3-i2 %d ad %d",dbg[2],dbg[3], ad); ) + if (dbg[2] > sq(1024/4)) Break; + // serif N, ToDo: do it better + if (dbg[3] > sq(1024/4)) ad=97*ad/100; + if (dbg[3] > sq(1024/3)) Break; + MSG( fprintf(stderr,"ad %d", ad); ) + + MSG( fprintf(stderr,"check against melted tu"); ) + // i1 = left ^ from below, i2 = lowest right v from top + // sample gocr_Device*: 3-8,dy=27 + if ( (box1->frame_vector[i1][1]-y0) + -(y1-box1->frame_vector[i2][1])>dy/8) ad=99*ad/100; /* ~ tu */ + MSG( fprintf(stderr,"tu ad %d", ad); ) + if (box1->frame_vector[i2][0] + -box1->frame_vector[i1][0]<=dx/8) Break; /* nonsignificant distance */ + MSG( fprintf(stderr,"i2-i1<=dx/8 ad %d", ad); ) + /* i1: uppermost left ^ from bottom (near 0,0) */ + /* i2: lowest right v from top, same frame? N-tilde etc.? */ + if (box1->frame_vector[i2][1] + -box1->frame_vector[i1][1]<=dy/8) { + // may happen on screen fonts 7x10 + if (dx>8) ad=97*ad/100; /* too flat (ff,H) */ + } + MSG( fprintf(stderr,"i2-i1<=dy/8 ad %d", ad); ) + if (box1->frame_vector[i2][1] + -box1->frame_vector[i1][1]<=dy/2) ad=99*ad/100; + MSG( \ + fprintf(stderr,"^v %d %d %d %d line dev %d %d %d %d max %d %d ad %d",\ + box1->frame_vector[i1][0]-x0,box1->frame_vector[i1][1]-y0,\ + box1->frame_vector[i2][0]-x0,box1->frame_vector[i2][1]-y0,\ + dbg[0],dbg[1],dbg[2],dbg[3],sq(1024/4),sq(1024),ad);) + ad=(100-(dbg[0]-sq(1024)/2)/sq(1024)/4)*ad/100; + MSG( fprintf(stderr,"ad %d", ad); ) + ad=(100-(dbg[1]-sq(1024)/2)/sq(1024)/4)*ad/100; + MSG( fprintf(stderr,"ad %d", ad); ) + ad=(100-(dbg[2]-sq(1024)/2)/sq(1024)/4)*ad/100; + MSG( fprintf(stderr,"ad %d", ad); ) + ad=(100-(dbg[3]-sq(1024)/2)/sq(1024)/4)*ad/100; + MSG( fprintf(stderr,"ad %d", ad); ) + + if (!hchar) ad=99*ad/100; + if ( gchar) ad=98*ad/100; // \sc N + Setac(box1,'N',ad); + break; + } + return box1->c; +} + +static wchar_t ocr0_h(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + pix *bp=sdata->bp; + int i,d,x,y,hchar=sdata->hchar,gchar=sdata->gchar, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1,cs=sdata->cs; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + ad; /* tmp-vars */ + int (*aa)[4]=sdata->aa; /* corner-points, (x,y,dist^2,vector_idx) */ + + // --- test h --------------------------------------------------- + for(ad=d=100;dx>2 && dy>3;){ // min 3x4 + // rewritten for vectors 0.42 + int i1, i2, i3, i4, i5, i6, i7, i8; // line derivation + corners + DBG( wchar_t c_ask='h'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + /* half distance to the center */ + d=2*sq(128/4); + /* now we check for the upper right end of the h */ + if (aa[3][2]d/2) Break; /* upper left end */ + if (aa[1][2]>d/2) Break; /* lower left end */ + if (aa[2][2]>d/2) Break; /* lowerright end */ +/* + type A B=italic ??? + 18 OOO + O O O + O O + O7OOO OOOO + O4 O O O + O O O O + O O O O O + 2O3 5O6 O OOO +*/ + i1=i8=aa[0][3]; + i2=i3=aa[1][3]; + i5=i6=aa[2][3]; + // check the bow from below (fails on melted serifs) + for (i4=i=i2;i!=i5;i=(i+1)%box1->num_frame_vectors[0]) { + if (box1->frame_vector[ i][1] + frame_vector[i4][1]) i4=i; // get next maximum + if (box1->frame_vector[ i][1]<=y0) break; // fatal! + } + if (box1->frame_vector[i4][1]-y0frame_vector[i4][1]18 ) + if( get_bw(dx-1-dx/3,dx-1,dy/6 ,dy/5 ,bp,cs,1) == 1 ) Break; + if( get_bw(dx-1-dx/3,dx-1,dy-1-dy/4,dy-1 ,bp,cs,1) == 0 ) Break; // s- + for( x=x0+dx/3;xp,cs,1) == 0 ) break; + if( x>=x1-dx/3 ) Break; + for(i=dy/4,y=y0+dy/3;y<=y1 && i;y++){ + if( num_cross(x0,x1 ,y,y, box1->p,cs) == 2 ) i--; + } if( i ) Break; + for(i=dy/4,y=y0;y<=y0+dy/2 && i;y++){ + if( num_cross(x0,x0+dx/2,y,y, box1->p,cs) == 1 ) i--; + } if( i ) Break; + // if( num_hole(x0, x1, y0 , y1 ,box1->p,cs,NULL) > 0 ) // could happen + if (sdata->holes.num > 0) + if (sdata->holes.hole[0].y0 > dy/3 + && sdata->holes.hole[0].y1 < dy-1-dy/3) Break; + // if( num_hole(x0, x1, y0+dy/3 , y1-dy/3 ,box1->p,cs,NULL) != 1 ) Break; // mini + if( loop(bp,dx-1,dy/3,dx,cs,0,LE)+dx/8 + < loop(bp,dx-1,dy/2,dx,cs,0,LE) + && loop(bp,dx-1,dy-1-dy/8,dx,cs,0,LE)+dx/8 + < loop(bp,dx-1,dy/2,dx,cs,0,LE)) Break; // ~k Okt00 + i=loop(bp,0,dy-1-dy/4,dx,cs,0,RI); + if (i>1 && num_cross(x0,x0,y0+dy/8+2,y0+dy/2, box1->p,cs) == 1 ){ // fi fu + ad=(99-(1<p,cs) == 0 ) ad=97*ad/100; + if (num_cross(x0+dx/2,x0+dx/2,y0,y0+dy/8+2, box1->p,cs) == 1 ) ad=97*ad/100; + if (ad<1) break; + } + i =loop(bp,0,dy/4,dx,cs,0,RI); + i+=loop(bp,i,dy/4,dx,cs,1,RI)+1; + for ( ; i5*dy/8 ) { + ad=98*ad/100; // melted hi, li, but handwritten h + MSG(fprintf(stderr,"ad=%d",ad);) } + if( num_cross(x0,x0,y0+(dy+3)/8,y1,box1->p,cs) > 1 ) { + ad=98*ad/100; // melted fr + MSG(fprintf(stderr,"ad=%d",ad);) } + + i=loop(bp,dx-1,3*dy/4,dx,cs,0,LE); // melted "fr" for vertikal letters + if (i>dx/4 && loop(bp,dx-1-i,dy-1,dy,cs,1,UP)>dy/2) { + ad=94*ad/100; MSG(fprintf(stderr,"ad=%d",ad);) } + + i=loop(bp,dx-1,1+dy/16,dx,cs,0,LE); if (i 0 ) { + ad=95*ad/100; // melted fi + MSG(fprintf(stderr,"ad=%d",ad);) } + if (loop(box1->p,x1,y0+1+dy/16,dx,cs,0,LE)p,x1,y0 ,dx,cs,0,LE)p,x1,y0+1,dx,cs,0,LE)holes.num > 0) ad=97*ad/100; + if (box1->m2) { + if ( gchar) ad=98*ad/100; + if (!hchar) ad=97*ad/100; + } else ad=99*ad/100; + Setac(box1,'h',ad); + break; + } + return box1->c; +} + +static wchar_t ocr0_H(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + pix *bp=sdata->bp; + int i,j,j1,d,x,y,ya,i1,i2,i3,hchar=sdata->hchar,gchar=sdata->gchar, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1,cs=sdata->cs; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + ad; /* tmp-vars */ + + // --- test H --------------------------------------------------- + for(ad=d=100;dx>2 && dy>3;){ // min 3x4 + DBG( wchar_t c_ask='H'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + if ( num_cross(0,dx-1,dy/4 ,dy/4 ,bp,cs) != 2 + && num_cross(0,dx-1,dy/4-1,dy/4-1,bp,cs) != 2 ) Break; + if ( num_cross(0,dx-1,3*dy/4 ,3*dy/4 ,bp,cs) != 2 + && num_cross(0,dx-1,3*dy/4+1,3*dy/4+1,bp,cs) != 2 ) Break; + if ( loop(bp,0 ,dy/8,dx,cs,0,RI) + + loop(bp,dx-1,dy/8,dx,cs,0,LE)>dx/2 ) Break; // ~A + for ( j1=0,i=1,y=y0+dy/10; yp,x0 ,y,dx,cs,0,RI) + +loop(box1->p,x1 ,y,dx,cs,0,LE); if( j>dx/2 ) i=0; if(j>j1)j1=j; } + if ( !i ) Break; + for ( i=1,y=dy/4; ydx/5 ) i=0; } + if (!i) Break; // ~K Jul00 + for (i=0,ya=y=y0+dy/3; yp,x0 ,y,dx,cs,0,RI); + j=loop(box1->p,x0+j,y,dx,cs,1,RI); if( j>i ) { i=j; ya=y; } } + if (i<=dx/2) Break; ya-=y0; + if (num_cross(0,dx-1,ya ,ya ,bp,cs) != 1 + && num_cross(0,dx-1,ya+1,ya+1,bp,cs) != 1 ) Break; /* Dec00 */ + for (y=ya; y 2 + && num_cross(0,dx-1,y+1,y+1,bp,cs) > 2 ) break; + if (yp,cs,1) == 0 ) i=0; + } if (i) Break; + for(i=1,x=x0+dx/4;x<=x1-dx/4 && i;x++){ + if (get_bw( x, x,y1-dy/4,y1 ,box1->p,cs,1) == 0 ) i=0; + } if (i) Break; + for(i=1,x=x0+dx/4;x<=x1-dx/4 && i;x++){ + if (num_cross(x,x,y0+dy/8,y1-dy/8, box1->p,cs) == 1 ) i=0; + } if (i) Break; + for (i=1,y=y0;y<=y0+dy/4 && i;y++){ + if (num_cross(x0,x1,y,y, box1->p,cs) == 2 ) i=0; + } if (i) Break; + for(i=1,y=y1-dy/4;y<=y1 && i;y++){ + if (num_cross(x0,x1,y,y, box1->p,cs) == 2 ) i=0; + } if (i) Break; + if (get_bw(x1-dx/8, x1 , y0, y0+dy/8,box1->p,cs,1) != 1 ) Break; + if (get_bw(x0 , x0+dx/8, y1-dy/8, y1,box1->p,cs,1) != 1 ) Break; + i1=loop(bp,dx-1, dy/4,dx,cs,0,LE); if(i1>dx/2) Break; + i2=loop(bp,dx-1, dy/2,dx,cs,0,LE); if(i2i1+dx/8) Break; + i3=loop(bp,dx-1,dy-1-dy/4,dx,cs,0,LE); if(i3i2+dx/8) Break; + if (abs(i1+i3-2*i2)>dx/16+1) Break; + // test for thick tall N looking like a H + if (num_cross(x0,x1,y0, y1 , box1->p,cs) < 2 ) Break; // sure N + if (num_cross(x0,x1,y0,(y0+y1)/2, box1->p,cs) < 2 ) Break; // sure N + i1=loop(bp, 0, dy/4,dx,cs,0,RI); + i1=loop(bp, i1, dy/4,dx,cs,1,RI); // right side of left vert. line + i2=loop(bp, 0,dy-1-dy/4,dx,cs,0,RI); + i2=loop(bp, i2,dy-1-dy/4,dx,cs,1,RI); // right side of left vert. line + i3=loop(bp,dx-1 ,dy-1-dy/4,dx,cs,0,LE); + i3=loop(bp,dx-1-i3,dy-1-dy/4,dx,cs,1,LE); // left side of right vert. line + if (dx<10 && i1-i2>dx/4) Break; + if (dx<10 && i1-i2>dx/8) ad=99*ad/100; // 7x10 ~N + i =loop(bp, 0,dy/2+1+dy/8,dx,cs,0,RI); + i+=loop(bp, i,dy/2+1+dy/8,dx,cs,1,RI); + i =loop(bp, i,dy/2+1+dy/8,dx,cs,0,RI); + if (i6*i2 && 5*i3>6*i2 && i1>i2 && i3>i2) Break; // ??? + if (dx>8) + if (loop(bp,dx-1, 3*dy/8,dx,cs,0,LE) + -loop(bp,dx-1, dy/8,dx,cs,0,LE)>dx/4 + && loop(bp,dx-1, 3*dy/8,dx,cs,0,LE) + -loop(bp,dx-1,dy-1-dy/8,dx,cs,0,LE)>dx/4 ) Break; // ~K + // if( num_hole(x0,x1,y0,y1,box1->p,cs,NULL) != 0 ) Break; + if (sdata->holes.num != 0) Break; + MSG( fprintf(stderr,"i123 %d %d %d",i1,i2,i3); ) + if ( gchar) ad=99*ad/100; + if (!hchar) ad=98*ad/100; + Setac(box1,'H',ad); + break; + } + return box1->c; +} + +static wchar_t ocr0_k(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + pix *bp=sdata->bp; + int i,j,x,y,hchar=sdata->hchar,gchar=sdata->gchar, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1,cs=sdata->cs; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + ad; /* tmp-vars */ + int (*aa)[4]=sdata->aa; /* corner-points, (x,y,dist^2,vector_idx) */ + + // --- test k --------------------------------------------------- + for(ad=100;dx>2 && dy>3;){ // min 3x4 + // rewritten for vectors 0.43 + int d, i1, i2, i3, i4, i5, i6, i7, i8; // line derivation + corners + DBG( wchar_t c_ask='k'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + /* half distance to the center */ + d=2*sq(128/4); + /* now we check for the upper right end of the h */ + if (aa[3][2]d/2) Break; /* upper left end */ + if (aa[1][2]>d/2) Break; /* lower left end */ + if (aa[2][2]>d/2) Break; /* lowerright end */ +/* + type A B=italic ??? + 18 OOO + O O O + O O6 O + O7 OO O OO + O4OO OO OO + O OO O O + O OO O O O + 2O3 O5 O OOO +*/ + i1=i8=aa[0][3]; + i2=i3=aa[1][3]; + i5= aa[2][3]; + // check the bow from below + for (i4=i=i2;i!=i5;i=(i+1)%box1->num_frame_vectors[0]) { + if (box1->frame_vector[ i][1] + frame_vector[i4][1]) i4=i; // get next maximum + if (box1->frame_vector[ i][1]<=y0) break; // fatal! + } + if (box1->frame_vector[i4][1]-y0frame_vector[i4][1]frame_vector[i][0]frame_vector[i][0]dx/2) Break; + i3=loop(bp,0,dy/2+dy/4,dx,cs,0,RI); + if (abs(i1+i3-2*i2)>(dx+8)/16+1 || i1p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/2,x1, y1-dy/3,y1 ,box1->p,cs,1) != 1 ) Break; + if( get_bw(x1-dx/4,x1, y0 ,y0+3*dy/16,box1->p,cs,1) == 1 ) Break; + if( get_bw(x1-dx/4,x1, y0+dy/4,y1-dy/4,box1->p,cs,1) != 1 ) Break; //~1 + if( get_bw(x1-dx/4,x1, y1-dy/8,y1 ,box1->p,cs,1) != 1 ) Break; + if (sdata->holes.num > 0) + if (sdata->holes.hole[0].y0 > dy/4) Break; + // if( num_hole(x0,x1,y0+dy/4,y1,box1->p,cs,NULL) != 0 ) Break; + for(y=y0+1;yp,cs,1) == 0 ) break; + if( yp,cs,100)>50) i=0; + if( i ) Break; // no vertikal line! + + /* check for falling line in the lower left corner */ + for (j=x=0,y=5*dy/8;y<7*dy/8;y++) { + i= loop(bp,dx-1,y,dx,cs,0,LE); if(i>x) { x=i;j=y; } + } // x=dx/6 on fat k + if (x + loop(bp,dx-1-x,y,dx,cs,1,LE)/2 dx/2) + i =loop(bp,dx-1,dy-2,dx,cs,0,LE); if(i>dx/2) Break; + i+=loop(bp,dx-1-i,dy-1,dx,cs,1,LE)/2; + if( get_line(x,y,dx-1-i,dy-1,bp,cs,100)<60 ) Break; + + for(y=y0+dy/3;yp,cs)==2 ) break; + if( y==y1 ) Break; + if( + // num_hole(x0,x1 ,y0 ,y1 ,box1->p,cs,NULL)>0 // ~A happens! + sdata->holes.num > 0 ) + if (sdata->holes.hole[0].x1>dx-1-dx/4 + || sdata->holes.hole[0].y1>dy-1-dy/4 + || sdata->holes.hole[0].y0< dy/4) Break; + // if ( num_hole(x0,x1-dx/4,y0+dy/4,y1-dy/4,box1->p,cs,NULL)==0 ) Break; + i=loop(bp,0,dy-1,dx,cs,0,RI); + i=loop(bp,i,dy-1,dx,cs,1,RI); if (dx>8 && 4*i>3*dx) Break; // ~glued_tz + i =loop(bp,0,dy/4,dx,cs,0,RI); + if (i>dx/4 + && i+loop(bp,i,dy/4,dx,cs,1,RI)>dx/2 + && loop(bp, 0,0,dx,cs,0,RI)<=dx/4 + && loop(bp,dx-1,0,dx,cs,0,LE)>=dx/2 ) ad=90*ad/100; // divided Q + + if( 2*y0>(box1->m1+box1->m2) ) ad=99*ad/100; + + if ( gchar) ad=99*ad/100; + if (!hchar) ad=99*ad/100; + Setac(box1,'k',ad); + break; + } + return box1->c; +} + +static wchar_t ocr0_K(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + pix *bp=sdata->bp; + int i,j,i1,i2,d,x,y,hchar=sdata->hchar,gchar=sdata->gchar, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1,cs=sdata->cs; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + ad,ya,xa,yb,xb,yc,xc,yd,xd,ye,xe,yf,xf; /* tmp-vars */ + + // --- test K --------------------------------------------------- + for(ad=d=100;dx>2 && dy>3;){ // Mar2000 perfect??? no ocr-a X Jul09 + DBG( wchar_t c_ask='K'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + for(y=dy/8;yp,x,y0,y1-y0,cs,0,DO); if (y>3*dy/4) { i=1;break; } + if (dy>15 && j>dy/8){ + j =loop(box1->p,x-1,y0+y-1,x1-x0,cs,0,LE)/2; + y+=loop(box1->p,x-j,y0+y-1,y1-y0,cs,0,DO)-1; + } + if(y>=dy/4) i=0; /* ok, found gap */ + } if( i ) Break; + for(y=0,x=x0+dx/4;x<=x1-dx/4;x++){ // lower h-gap + i=loop(box1->p,x,y1,dy,cs,0,UP); + /* on small chars bypass possible low left serifs */ + if (i>0) { i2=loop(box1->p,x-1,y1-i-1,dy,cs,0,UP); + if (i2>1) i+=i2-1; } + if (i>y) { y=i; i1=x; } + } if( y<=dy/8 ) Break; if (yp,cs) == 2 ) i=0; + } if( i ) Break; + for(i=1,y=y0;y<=y0+dy/4 && i;y++){ + if( num_cross(x0,x1,y,y, box1->p,cs) == 2 ) i=0; + } if( i ) Break; + if( dx<10 ){ + for(i=1,y=y0+dy/3;y<=y1-dy/3 && i;y++){ + if( num_cross(x0,x1,y,y, box1->p,cs) == 1 ) i=0; + } if( i ) Break; + } + for(i=1,y=y1-dy/4;y<=y1 && i;y++){ + if( num_cross(x0,x1,y,y, box1->p,cs) == 2 ) i=0; + } if( i ) Break; + if( get_bw(x1-dx/3,x1,y0,y0+dy/8,box1->p,cs,1) != 1 ) Break; // ~k + if( loop(bp,0, dy/4,dx,cs,0,RI) + +loop(bp,0,3*dy/4,dx,cs,0,RI) + <2*loop(bp,0, dy/2,dx,cs,0,RI)-2-dx/32 ) + { if (dy>=16) { Break; } else ad=98*ad/100; } // ~X Jul09 + + i=loop(box1->p,x1,y0+ dy/4,x1-x0+1,cs,0,LE); if(i>dx/2) Break; + j=loop(box1->p,x1,y0+ dy/2,x1-x0+1,cs,0,LE); + x=loop(box1->p,x1,y0+3*dy/8,x1-x0+1,cs,0,LE); if(x>j) j=x; + if(j<=i ) Break; i=j; + j=loop(box1->p,x1,y1-dy/4,x1-x0+1,cs,0,LE); if(j>=i ) Break; + // out_x(box1); // detailed analysis + // + // a d <= that are main points of K + // | / + // b/e + // | \ . + // c f + ya= dy/4;xa=loop(bp,0,ya,dx,cs,0,RI);xa+=loop(bp,xa,ya,dx,cs,1,RI)/2; + yc=dy-dy/4;xc=loop(bp,0,yc,dx,cs,0,RI);xc+=loop(bp,xc,yc,dx,cs,1,RI)/2; + yb=dy/2; xb=dx-1-loop(bp,dx-1,dy/2,dx,cs,0,LE); + for(yd=ye=yf=xe=y=i=0,xf=xd=dx;yxe){ xe=x;ye=dy/2+y; } + x =loop(bp,dx-1,dy/2-y,dx,cs,0,LE); if(x>xe){ xe=x;ye=dy/2-y; } +#if 0 // removed v0.2.4a2 + x =loop(bp,0 ,dy/2+y,dx,cs,0,RI); // middle left border + x+=loop(bp,x ,dy/2+y,dx,cs,1,RI); // test 2nd cross + x+=loop(bp,x ,dy/2+y,dx,cs,0,RI); if(x8 ){ // example szaka0103 + if( xe>5*dx/8 || xb>5*dx/8 ) Break; // ~{\it n} + i=loop(bp,xb,yb,xb,cs,1,LE); // thick center? see font22 + if( get_line2(xb,yb,xd,yd,bp,cs,100)<95 ) // right up + if( get_line2(xb-i/2,yb,xd,yd,bp,cs,100)<95 ) Break; + if( get_line2(xe,ye,xf,yf,bp,cs,100)<95 ) Break; // right down + xe+=loop(bp,xe,ye,dx,cs,1,RI); if( xe>=xf ) Break; // ~{\it n} + } else { + if( dy<16 && !hchar ) Break; + if( loop(bp,0,1,dy,cs,1,DO)<=3*dx/4 + && loop(bp,1,1,dy,cs,1,DO)<=3*dx/4 + && loop(bp,2,1,dy,cs,1,DO)<=3*dx/4 ) Break; // ~x + } + if (loop(bp,dx-1,dy-1-dy/4,dx,cs,0,LE)<=dx/8){ + ad=99*ad/100; /* broken B ? */ + if (sdata->holes.num > 0) + if (sdata->holes.hole[0].y1 < dy-1-dy/3) Break; + // if( num_hole(x0,x1,y0,(y0+2*y1)/3,box1->p,cs,NULL)>0) Break; // broken B + } + if(box1->m3 && !hchar) ad=99*ad/100; + if(box1->m3 && gchar) ad=99*ad/100; + // printf(" ok xe=%d",xe); + Setac(box1,'K',ad); + break; + } + return box1->c; +} + +static wchar_t ocr0_f(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + pix *bp=sdata->bp; + int i,j,d,x,y,hchar=sdata->hchar,gchar=sdata->gchar, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1,cs=sdata->cs; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + (*aa)[4]=sdata->aa, /* the for line ends, (x,y,dist^2,vector_idx) */ + ab[8][4], /* special points (x,y,dist^2,vector_idx) */ + ad; /* tmp-vars */ + /* x=mindist_to_a y=0 "t" + 0>..$$. 0>..$$ 0>..$$ end right bow a--..$$ a--.$7. y>0 "f" + 1>.$..$ 1>.$.. 1>.$$$ start right bow .$7. .$.. + .@... .@.. 2>.@@. start upper end .@.. .@.. + 2>.$... 2>.$.. 3>$$$$ crossing bar .$.. $$$. + 3>$@$$. 3>$@$. $@@$ $@$. .@.. + 4>.$... 4>.$.. 4>.$$. lower end .$.. .$.. + .@... .@.. .@@. .@.. .@.. + .@... .@.. .@@. .@.. .@.. + 5>.$... 5>.$.. 5>.$$. lower start .$.. .$.. + 6>..... 6>$... 6>.... optional left bow + */ + // --- test f like t --------------------------------------------------- + for(ad=d=100;dx>2 && dy>5;){ // sometimes no hchar! + // rewritten for vectors 0.43 + int d, i1, i2, i3, i4, i5, i6, i7, i8, i9; // line derivation + corners + DBG( wchar_t c_ask='f'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + /* half distance to the center */ + d=2*sq(128/4); + /* now we check for the upper right end of the h */ + if (aa[3][2]>d/2) Break; /* [2] = distance, ~BCDEF... */ + if (aa[0][2]>d ) Break; /* upper left end */ +/* + 9 + OOO + O 7 O8 + O6 + 1OOOO5 + O4 + O + 2O3 + OOOOO +*/ + i1=nearest_frame_vector(box1,aa[0][3],aa[1][3],x0-dx/2,(5*y0+3*y1)/8); + /* we need i for 4x6 font, where left side of h-bar is near (x0,y1) */ + i =aa[1][3]; if (box1->frame_vector[i][1]frame_vector[i2][0]-x0>dx/2) Break; // ~3 + i =nearest_frame_vector(box1, aa[0][3], i2, x1+2*dx, (y0+y1)/2); + // MSG(fprintf(stderr,"i %d",i);) + if (box1->frame_vector[i ][0] + -box1->frame_vector[i9][0]>dx/8) Break; // ~3 + + if( (box1->dots) ) Break; // Bold-face is gchar + if (dy<=box1->m3-box1->m2+1) Break; + for(x=0,j=y=2+(3*dy+4)/32;y<=5*dy/8;y++){ // upper cross line min=2 + i=loop(bp,0,y,dx,cs,0,RI); if( y>dy/4 && i>5*dx/8 ) break; + i=loop(bp,i,y,dx,cs,1,RI); if( i>x ) { x=i;j=y; } + if( y<3*dy/4 && y>dy/4 + && num_cross(0,dx-1,y ,y ,bp,cs) != 1 + && num_cross(0,dx-1,y+1,y+1,bp,cs) != 1 // against noise + ) break; + } if( y<=5*dy/8 ) Break; y=j;// if( y>dy/2 || ydy/8 + && num_cross( 0, (dx+1)/2,i,i,bp,cs) > 0 + && num_cross((dx+1)/2,dx-1,i,i,bp,cs) > 0 ) Break; // ~Y + + if (loop(bp,3*dx/4, 0,dy,cs,0,DO)>dy/8 + && loop(bp,3*dx/4-1,0,dy,cs,0,DO)>dy/8) Break; // upper bow + i=3*dy/4; if (box1->m3 && i>=box1->m3) i=box1->m3-1; + if (num_cross(0,dx-1,i,i,bp,cs)!=1) Break; + + // the middle bar appear in a wide vertical range, get part below + for (i1=dx,i2=y,j=y+1;jframe_vector[i3][0]-x0,box1->frame_vector[i3][1]-y0);) + ab[7][0]=box1->frame_vector[i3][0]; + ab[7][1]=box1->frame_vector[i3][1]; + ab[7][3]=i3; + if (ab[7][1]-y0<=dy/16) ad=95*ad/100; // ~t + // because of the dx,dy scaling the horiz. bar could be nearer to (x1,y0) + // as the upper right end of the "t" + if (aa[3][0]-x0>3*dx/4 && aa[3][1]-y0>3*dy/16) ad=99*ad/100; // ~t + + + j=loop(bp,0,dy/8,dx,cs,0,RI); // if j>dx/2 we have italic f + if ((2*x(j+dx/4)) break; + if (iloop(bp,0, 1,dx,cs,0,RI) ) Break; // ~X + + i=y;j=1; // j used as flag + if( num_cross(0,dx-1,0,0,bp,cs)==1 && hchar) //~r + if( num_cross(0,dx-1,dy-1,dy-1,bp,cs)!=1 + && num_cross(0,dx-1,dy-2,dy-2,bp,cs)!=1 ) Break; // ~* etc. + // check for upper bow to right + for(y=1;j && y=cs || dx<7) && getpixel(bp,x+1,y )>=cs + && getpixel(bp,x ,y-1)< cs && getpixel(bp,x+1,y-1)< cs ) + { j=0;break; } + } if(j) ad=98*ad/100; // not detected + + // if( num_hole (x0 , x1 , y0, y1,box1->p,cs,NULL) != 0 ) Break; // ~e + if (sdata->holes.num != 0) Break; // ~e + for(i1=i2=dx,y=7*dy/8;yi2+dx/4) Break; // ~t ~e + if(i1>i2+1) ad=96*ad/100; // ~t ~e + if( loop(bp,0,3*dy/4,dx,cs,0,RI)5 && !hchar) + if( loop(bp,dx-1,dy/2,dx,cs,0,LE)>3*dx/4 ) + if( loop(bp,dx-1,dy-1,dy,cs,0,UP)8 ) + if( loop(bp, 0,2*dy/3 ,dx,cs,0,RI)>2*dx/3 + || loop(bp, 0,2*dy/3-1,dx,cs,0,RI)>2*dx/3 ) + if( loop(bp,dx-1, dy/4 ,dx,cs,0,LE)>2*dx/3 ) Break; // ~5 ~S + + if (!hchar) + if ( get_bw(x0+dx/8,x0+dx/8,y0+dy/4,y1-dy/16,box1->p,cs,2) == 0 + && num_cross(x1-dx/4,x1-dx/4,y0,y1,box1->p,cs)!=2 + && num_cross(x1-dx/8,x1-dx/8,y0,y1,box1->p,cs)!=2 ) Break; // ~r + + if (dy>15) + if( num_cross(x0,x1,y1-dy/4,y1-dy/4,box1->p,cs)>1 + && num_cross(x0,x1,y0+dy/4,y0+dy/4,box1->p,cs)>1 ) Break; // ~H + + if( dx>4 ) + if( loop(bp,dx-1 ,3*dy/4,dx,cs,0,LE)- + loop(bp,0 ,3*dy/4,dx,cs,0,RI)>dx/5+1 + && loop(bp,dx-1-dx/8,dy-1 ,dy,cs,0,UP)=dx/5+1) ad=98*ad/100; // ~E + i=loop(bp,dx/8,0,dy,cs,0,DO); + if (idy/2) { + ad=98*ad/100; // ~E, could also be a "f" with big serifs + MSG(fprintf(stderr,"ad=%d",ad);) } + if (!gchar) { ad=98*ad/100; + MSG(fprintf(stderr,"ad=%d",ad);) } + } + i = loop(bp,dx-1 ,3*dy/4,dx ,cs,0,LE)/2; + if (loop(bp,dx-1-i , dy-1,dy/2,cs,0,UP)1 + && loop(bp,0, 0,dy/4,cs,0,DO)p,cs,2) == 0) { // white pixels? + ad=98*ad/100; // F + MSG(fprintf(stderr,"ad=%d",ad);) } + + if (!hchar) ad=ad*98/100; // d*=100;d/=128 // not 100% ! + if (box1->m4>0 && gchar && ad<99 && + 8*box1->y1 >= box1->m4*7+box1->m3) ad++; + Setac(box1,'f',ad); + break; + } + return box1->c; +} + +static wchar_t ocr0_bB(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + pix *bp=sdata->bp; + int i,j,d,x,y,i1,i2,i3,hchar=sdata->hchar,gchar=sdata->gchar, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1,cs=sdata->cs; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + ad; /* tmp-vars */ + + // --- test B --------------------------------------------------- + for(ad=d=100;dx>2 && dy>4;){ // min 3x4 + DBG( wchar_t c_ask='B'; ) + if (sdata->holes.num < 2) Break; /* tolerant against a tiny hole */ + for(i=1,y=y0;yp,cs,1) != 1 ) i=0; + if( !i ) Break; + for(i=1,y=y1-dy/2;yp,cs,1) != 1 ) i=0; + if( !i ) Break; + if( get_bw(x1,x1 , y0 , y0 ,box1->p,cs,1) == 1 ) Break; + if( num_cross(x0+dx/2, x0+dx/2,y0,y1 ,box1->p,cs) != 3 ) + if( num_cross(x1-dx/3, x1-dx/3,y0,y1 ,box1->p,cs) != 3 ) Break; + /* --- detect center of lower hole --- */ + y = loop(box1->p,x0+dx/2,y1 ,dy,cs,0,UP); if (y>1+dy/8) Break; + y+= loop(box1->p,x0+dx/2,y1-y,dy,cs,1,UP); if (y>dy/3) Break; + y=y1-y-loop(box1->p,x0+dx/2,y1-y,dy,cs,0,UP)/2; if (yp,x0,y0+ y ,dx,cs,0,RI) + > loop(box1->p,x0,y0+dy/4,dx,cs,0,RI)+dx/32 ) + if( get_bw(x0,x0,y0,y0,box1->p,cs,1) == 0 ) + if( get_bw(x0,x0,y1,y1,box1->p,cs,1) == 0 ) Break; // ~8 + i1=loop(box1->p,x0,y0+dy/4,dx,cs,0,RI); + i2=loop(box1->p,x0,y0+dy/2,dx,cs,0,RI); + i =loop(box1->p,x0,y0+dy/2-dy/ 8,dx,cs,0,RI); if(i>i2) i2=i; + i =loop(box1->p,x0,y0+dy/2-dy/16,dx,cs,0,RI); if(i>i2) i2=i; + i3=loop(box1->p,x0,y1-dy/4,dx,cs,0,RI); + if(dy>16 && i3p,x0,y0+ 1 ,dx,cs,0,RI) + >= loop(box1->p,x0,y0+ 3 ,dx,cs,0,RI)+dx/32 ) + if( loop(box1->p,x0,y0+ 0 ,dx,cs,0,RI) + > loop(box1->p,x0,y0+ 3 ,dx,cs,0,RI)+dx/32 ) + if( loop(box1->p,x0,y1- 0 ,dx,cs,0,RI) + > loop(box1->p,x0,y1- 3 ,dx,cs,0,RI)+dx/32 ) + if( loop(box1->p,x0,y1- 1 ,dx,cs,0,RI) + > loop(box1->p,x0,y1- 3 ,dx,cs,0,RI)+dx/32 ) Break; // ~8 Aug00 + } + + if (sdata->holes.num != 2) Break; + if (sdata->holes.hole[0].y0 < y-1 + && sdata->holes.hole[1].y0 < y-1 ) Break; + if (sdata->holes.hole[0].y1 > y+1 + && sdata->holes.hole[1].y1 > y+1 ) Break; + // if( num_hole(0,dx-1,0 ,y+1 ,bp,cs,NULL) != 1 ) Break; + // if( num_hole(0,dx-1,y-1,dy-1,bp,cs,NULL) != 1 ) Break; + // out_x(box1); + + for( x=dx,y=dy/6; yp,x0,y0+y,dx,cs,0,RI); if( i>x+dx/9 ) break; + if(ix )break; + } if( yx) x=i; // allow dust + i=loop(bp,0,dy/2+1,dx,cs,0,RI); if (i>x) x=i; + if ( loop(bp,0, dy/8,dx,cs,0,RI) + +loop(bp,0,7*dy/8,dx,cs,0,RI) > 2*x+1 ) Break; // not konvex! + + if(!hchar){ // ~ fat_a + ad=99*ad/100; + x =loop(bp,0,dy/4,dx,cs,0,RI); + if(loop(bp,0,dy/2,dx,cs,0,RI)>x+dx/8) ad=97*ad/100; + } + + if ( (!hchar) && (dx<=10 || dy<=10) ) ad=97*ad/100; // hchar or good_quality + if (gchar) ad=99*ad/100; + Setac(box1,'B',ad); + break; + } + // --- test b --------------------------------------------------- + for(ad=d=100;dx>3 && dy>4;){ // min 3x4 + DBG( wchar_t c_ask='b'; ) + if (sdata->holes.num < 1) Break; /* tolerant against a tiny hole */ + for(y=y0;yp,cs,1) != 1 ) Break; + if(yp,cs,1) != 1 ) Break; + if( get_bw(x1- dx/2, x1 , y1-dy/3, y1-dy/3,box1->p,cs,1) != 1 ) Break; + if( get_bw(x1- dx/3, x1 , y0 , y0+dy/5,box1->p,cs,1) == 1 ) Break; + if( get_bw(x1-4*dx/9, x1 , y0+dy/5, y0+dy/5,box1->p,cs,1) == 1 ) Break; + if( num_cross(x0,x1,y0+dy/4 ,y0+dy/4 ,box1->p,cs) > 1 ) // & + if( num_cross(x0,x1,y0+dy/4-1,y0+dy/4-1,box1->p,cs) > 1 ) + if( dy<16 || + num_cross(x0,x1,y0+dy/5 ,y0+dy/5 ,box1->p,cs) > 1 ) Break; // fat b + for(i=j=0,y=dy/2;yholes.num != 1) Break; + if (sdata->holes.hole[0].y0 < dy/4) Break; + if ((sdata->holes.hole[0].y1-sdata->holes.hole[0].y0+1) + *(sdata->holes.hole[0].x1-sdata->holes.hole[0].x0+1)*16 + < dx*dy) ad=90*ad/100; // hole to small + if( num_hole( x0, x1 , y0+dy/4, y1,box1->p,cs,NULL) != 1 ) Break; + i=loop(bp,dx-1,dy-1 ,dx,cs,0,LE); + j=loop(bp,dx-1,dy-1-dy/8,dx,cs,0,LE); if(j>i) Break; + if (!hchar) ad=99*ad/100; + if ( gchar) ad=99*ad/100; + Setac(box1,'b',ad); + if (ad>=100) return 'b'; + break; + } + return box1->c; +} + +static wchar_t ocr0_dD(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + pix *bp=sdata->bp; + int i,d,x,y,ya,yb,hchar=sdata->hchar,gchar=sdata->gchar, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1,cs=sdata->cs; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + ad; /* tmp-vars */ + + // --- test D --------------------------------------------------- + for(ad=d=100;dx>2 && dy>3;){ // min 3x4 + DBG( wchar_t c_ask='D'; ) + if (sdata->holes.num < 1) Break; /* tolerant against a tiny hole */ + if( get_bw(x0 ,x0+dx/3,y0+dy/2,y0+dy/2,box1->p,cs,1) != 1 ) Break; + if( get_bw(x1-dx/3,x1 ,y0+dy/2,y0+dy/2,box1->p,cs,1) != 1 ) Break; + if( get_bw(x1 ,x1 ,y0 ,y0+dy/16,box1->p,cs,1) == 1 ) Break; + if( get_bw(x1-dx/2,x1 ,y0+dy/4,y0+dy/4 ,box1->p,cs,1) != 1 ) Break; + if( num_cross(x0+dx/2,x0+dx/2,y0 ,y1 ,box1->p,cs) != 2 ) + if( num_cross(x1-dx/3,x1-dx/3,y0 ,y1 ,box1->p,cs) != 2 ) Break; + if( num_cross(x0 ,x1 ,y0+dy/3,y0+dy/3,box1->p,cs) != 2 ) Break; + if( num_cross(x0 ,x1 ,y1-dy/3,y1-dy/3,box1->p,cs) != 2 ) Break; + if (sdata->holes.num != 1) Break; + if (sdata->holes.hole[0].y0 > dy/3) Break; + if (sdata->holes.hole[0].y1 < dy-1-dy/3) Break; + // if( num_hole (x0 ,x1 ,y0 ,y1 ,box1->p,cs,NULL) != 1 ) Break; + // test if left edge is straight + for(x=0,y=bp->y-1-dy/8;y>=dy/5;y--){ + i=loop(bp,0,y,x1-x0,cs,0,RI); + if( i+2+dx/16<=x ) break; + if( i>x ) x=i; + } + if (y>=dy/5 ) Break; + /* test if right edge is falling */ + for(x=dx,y=0;yx-1,y,x1-x0,cs,0,LE); + if( i>x+dx/16 ) break; + if( iy-1;y>2*dy/3;y--){ + i=loop(bp,bp->x-1,y,x1-x0,cs,0,LE); + if( i>x+dx/16 ) break; + if( i2*dy/3 ) Break; + if( loop(bp,dx-1,dy-1 ,dx,cs,0,LE) <= + loop(bp,dx-1,dy-2-dy/16,dx,cs,0,LE) ) Break; // P + + y=loop(bp,dx/2,dy-1,dy,cs,0,UP)-1; if (dy>16) y/=2; + if ( y>=dy/16 ) { y-=dy/16; + if (get_bw(dx/2,dx-1,dy-1-y,dy-1-y,bp,cs,1)==1) Break; // ~A + } + + ya=loop(bp, 0,dy-1,dy,cs,0,UP); + yb=loop(bp,dx/16+1,dy-1,dy,cs,0,UP); + if (yady/16 && ya>yb) Break; // ~O + if (loop(bp, 0,dy-1-dy/16,dx,cs,0,RI)>dx/16) ad=99*ad/100; // O? 0907 + if (loop(bp, 0,dy-1-dy/16,dx,cs,0,RI)>= + loop(bp,dx-1,dy-1-dy/16,dx,cs,0,LE)) ad=97*ad/100; // ~O 0907 + + if ( loop(bp, dx/2, 0,dy,cs,0,DO) + -loop(bp, dx/2,dy-1,dy,cs,0,UP) > dy/8 ) ad=97*ad/100; // ~b + + + + if (loop(bp, 0, 0,dx,cs,0,RI)>=dx/2 + && loop(bp,dx-1,dy-1,dx,cs,0,LE)>=dx/2 + && loop(bp, 0,dy/2,dx,cs,0,RI)< 2 ) ad=96*ad/100; // thin O + + if(box1->dots) ad=ad*94/100; + if ( gchar) ad=99*ad/100; + if (!hchar) ad=99*ad/100; + Setac(box1,'D',ad); + break; + } + // --- test d --------------------------------------------------- + for(d=100;dx>2 && dy>3;){ // min 3x4 + DBG( wchar_t c_ask='d'; ) + ad=100; + if (sdata->holes.num < 1) Break; /* tolerant against a tiny hole */ + if( get_bw(x0 , x0+dx/2, y1-dy/6, y1-dy/9,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0 , x0+dx/2, y1-dy/3, y1-dy/3,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/2, x1 , y1-dy/3, y1-dy/3,box1->p,cs,1) != 1 ) Break; + if( get_bw(x1-dx/4, x1 , y0+dy/8, y0+dy/8,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/2, x0+dx/2, y1-dy/4, y1 ,box1->p,cs,1) != 1 ) Break; + if(dy>19) // 0..dx/3 dont work on serif d, 0..dx/4 is more safe + if( get_bw(x0 , x0+dx/4, y0 , y0+dy/5,box1->p,cs,1) == 1 ) Break; + if( get_bw(x0 , x0+dx/4, y0 , y0+dy/6,box1->p,cs,1) == 1 ) Break; + if( get_bw(x0 , x0+dx/4, y1-dy/8, y1 ,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/2-1,x0+dx/2,y1-dy/8, y1 ,box1->p,cs,1) != 1 ) Break; // ~"A + if( loop(bp,bp->x-1, bp->y/4,x1-x0,cs,0,LE) > + loop(bp,bp->x-1,3*bp->y/4,x1-x0,cs,0,LE)+1 ) Break; + // more than dx/8 of width should show two horizontal lines (o-like) + for (i=dx/8+1,x=0;x1) Break; // "d as a" patch + if (i==1) ad=99*ad/100; // "d as a" patch, serif? + for(i=dy/6+1,y=dy/4;y 3 ) i++; // ~al + } if( i ) ad=98*ad/100; + for(i=dy/8+1,y=0;yholes.num<1) Break; + if (sdata->holes.num>1) { + if (dx<6) Break; ad=95*ad/100; } // glued j above 8 (4x6 sample) + MSG(fprintf(stderr,"hole[0].y0,y1= %d %d",sdata->holes.hole[0].y0,sdata->holes.hole[0].y1);); + if ( sdata->holes.hole[0].y0 < dy/4 ) Break; + if (dy-sdata->holes.hole[0].y1 > dy/4+1) Break; // glued et + // if( num_hole(x0 , x1 , y0+dy/4 , y1 ,box1->p,cs,NULL) !=1 ) Break; + if( num_cross(0 ,dx-1,dy-1-dy/4,dy-1-dy/4,bp,cs) != 2 ) { // glued al + if (dy>15) { Break; } else ad=96*ad/100; + } + if (!hchar) ad=98*ad/100; + if ( gchar) ad=99*ad/100; + Setac(box1,'d',ad); + break; + } + return box1->c; +} + +static wchar_t ocr0_F(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + pix *bp=sdata->bp; + int i,j,d,x,y,hchar=sdata->hchar,gchar=sdata->gchar, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1,cs=sdata->cs; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + ad; /* tmp-vars */ + + // --- test F --------------------------------------------------- + for(ad=d=100;dx>2 && dy>4;){ // dx>1 dy>2*dx + DBG( wchar_t c_ask='F'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + if( get_bw(x0+dx/2,x0+dx/2,y0,y0+dy/8,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0,x0+dx/4,y1-dy/4,y1-dy/4,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0,x0+dx/2,y0+dy/4,y0+dy/4,box1->p,cs,1) != 1 ) Break; + + for (x=0,y=0;yx) x=j; + } if (ydx/2 ) i=0; } + if( i ) Break; + + x=loop(bp,0,dy-1-dy/4,dx,cs,0,RI); + x=loop(bp,x,dy-1-dy/4,dx,cs,1,RI); // strichdicke + for( i=1,y=dy/3; ydx/3 && ((j>2*x && dx>8) || j>x+1)) i=0; } + if( i ) Break; + + y=dy/8; if (y<1) y=1; + for( i=1; y=dx/3) { i=0; break; } + } + if( i ) Break; + + // check for vertical line on left side + for(i=1,y=1;y<=dy/2 && i;y++) + if( get_bw(0,dx/2,y,y,bp,cs,1) != 1 ) i=0; + if( !i ) Break; + + for(i=1,y=dy/2;ydx/8 // no serif + || loop(bp, 0, dy-3,dx,cs,0,RI)<1) break; + ad=99*ad/100; + } + if( get_bw(dx-1-dx/4,dx-1,dy-1-dy/4,dy-1,bp,cs,1) == 1 ) Break; // ~E + if( get_bw(dx-1 ,dx-1,0 ,dy/3,bp,cs,1) != 1 ) Break; + + if( loop(bp,0, bp->y/4,dx,cs,0,RI) < + loop(bp,0,3*bp->y/4,dx,cs,0,RI)-1 ) Break; + // if( num_hole(x0 , x1 , y0 , y1 ,box1->p,cs,NULL) >0 ) Break; + if (sdata->holes.num > 0) Break; + for(i=0,x=dx/4;xy/4,dx,cs,0,RI)-1; + if (i>=0 && loop(bp,dy-1,i,dy,cs,0,UP)<=3*dy/4 ) ad=ad*98/100; + + // check for screen font P + i= loop(bp,bp->x-1,bp->y/4,dx,cs,0,LE); + if (i<1) { + j=i+loop(bp,bp->x-1-i,bp->y/4, dx ,cs,1,LE); + j= loop(bp,bp->x-1-j,bp->y/4,3*dy/4,cs,0,DO); + if (j<=dy/2) { + i=loop(bp,bp->x-1,0,dx,cs,0,LE); + ad=ad*98/100; + if (i>dx/8) Break; + if (i) ad=98*ad/100; + } + } + + if (!hchar) if ((box1->m2-box1->y0)*8>=dy) { // ignore bad m1..4 + if ( num_cross(2*dx/3,2*dx/3,0,dy-1,bp,cs) < 2 ) ad=90*ad/100; // ~r + } + if (gchar) ad=99*ad/100; + Setac(box1,'F',ad); + break; + } + return box1->c; +} + +static wchar_t ocr0_uU(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + pix *bp=sdata->bp; + int i,j,d,x,y,hchar=sdata->hchar,gchar=sdata->gchar, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1,cs=sdata->cs; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + ad; /* tmp-vars */ + wchar_t bc=UNKNOWN; + + // --- test uU --------------------------------------------------- + // in Mitte so breit wie oben (bei V kontinuierlich schmaler) + for(ad=d=100;dx>2 && dy>3;){ // min 3x4 + DBG( wchar_t c_ask='u'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + for(y=y0+dy/4;yp,cs) < 2 ) break; + if( yi)i=y; if(y1) break; + } if( idy/2)?dx/8:0),y,y,bp,cs); + if( y1 ) i--; // ~{\it v} + if( y2) ) { i--; ad=90*ad/100; } + if( y>dy/2 && j!=1 ) { i--; ad=95*ad/100; } + } if( !i ) Break; + for(i=dy/16+1,y=dy/8;ydy/2 && (j<1 && j>2) ) i--; + if( yp,cs,1) != 1 ) i=0; + } if( i ) Break; + for(i=dx/4+1,x=x0+dx/3;x<=x1-dx/3 && i;x++){ + if( get_bw( x, x,y0+dy/3,y1-dy/3,box1->p,cs,3) != 2 ) i--; + } if( !i ) Break; + for(i=1,x=x0+dx/3;x<=x1-dx/3 && i;x++){ + if( get_bw( x, x,y1-dy/2,y1,box1->p,cs,3) == 2 ) i=0; + if( get_bw( x, x,y1-dy/3,y1,box1->p,cs,3) == 2 ) ad=98*ad/100; + } if( !i ) Break; + if( num_cross(0 ,dx/2, dy/4, dy/4,bp,cs)==2 + && num_cross(dx-dx/2,dx-1,dy-dy/4,dy-dy/4,bp,cs)==1 ) Break; // ~{\it v} + + i=loop(bp,0,dy-1-dy/16,dx,cs,0,RI); + j=loop(bp,0,dy-1-dy/8 ,dx,cs,0,RI); + if( i15) + if( loop(bp,dx-1,dy/16,dx,cs,0,LE) + > loop(bp,dx-1,dy/8 ,dx,cs,0,LE)+1+dx/32 ) Break; // ~bad 0 (thinn) + if( hchar && dy>7) + if( loop(bp, 0, dy-1,dx,cs,1,RI)==dx + && loop(bp,dx-1,3*dy/4,dx,cs,0,LE)>dx/16 + && loop(bp, 0,3*dy/4,dx,cs,0,RI)>dx/16 + && loop(bp,dx-1, dy/2,dx,cs,0,LE)>dx/16 + && loop(bp, 0, dy/2,dx,cs,0,RI)>dx/16 + ) Break; // melted ll + + i=loop(bp, 0,dy-2-dy/8,dx,cs,0,RI); + j=loop(bp,dx-1,dy-2-dy/8,dx,cs,0,LE); + if ( i>dx/4 && j>dx/4 && i+j>=dx/2) Break; // v + if (i+j>=dx/2) ad=97*ad/100; + + if ( num_cross(0,dx-1,dy/2,dy/2,bp,cs)!=2 ) ad=96*ad/100; // w + if ( loop(bp,dx/2,dy-1,dy,cs,0,UP)>0 ) ad=98*ad/100; // w + + if (ad==100) ad=99; // ToDo: only if lines.wt<100 + bc='u'; + if (gchar) ad=98*ad/100; + if (hchar) bc='U'; + if (box1->dots>0) ad=99*ad/100; + Setac(box1,bc,ad); + break; + } + return box1->c; +} + +static wchar_t ocr0_micro(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + pix *bp=sdata->bp; + int i,j,d,x,y,i2,hchar=sdata->hchar,gchar=sdata->gchar, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1,cs=sdata->cs; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + ad; /* tmp-vars */ + + // --- test \mu µ MICRO_SIGN -------------------------------------- + // in Mitte so breit wie oben (bei V kontinuierlich schmaler) + if( gchar && !hchar ) + for(ad=d=100;dx>2 && dy>4;){ // min 3x4 + DBG( wchar_t c_ask='u'; ) + if (sdata->holes.num > 1) break; /* tolerant against a tiny hole */ + for(y=y0+dy/8;ym3-dy/4;y++) + if( num_cross(x0,x1,y,y,box1->p,cs) < 2 ) break; + if( ym3-dy/4 ) break; + if( get_bw(dx/2,dx/2,3*dy/8,7*dy/8,bp,cs,1)==0 ) break; + if( get_bw(dx/2,dx-1,3*dy/8,7*dy/8,bp,cs,1)==0 ) break; + for(y=dy/2;y5*dx) break; + } if( y>=dy || 2*y>box1->m3+box1->m4) break; i2=y; + for(i=0,x=2*dx/8;xi)i=y; if(y1) break; + } if( im4-box1->m3)-dy/4 && i;y++){ // 12%+1 Fehler + j=num_cross(0,dx/2,y,y,bp,cs); + if( y1 ) i--; // ~{\it v} + if( y2) ) i--; + if( y>dy/2 && j!=1 ) i--; + } if( !i ) break; + for(i=dy/16+1,y=dy/8;ym4-box1->m3)-dy/4 && i;y++){ // 12%+1 Fehler + j=num_cross(dx-dx/2,dx-1,y,y,bp,cs); + if( y>dy/2 && (j<1 && j>2) ) i--; + if( yp,cs,1) != 1 ) i=0; + } if( i ) break; + for(i=dx/4+1,x=x0+dx/3;x<=x1-dx/3 && i;x++){ + if( get_bw( x, x,y0+dy/4,y1-dy/2,box1->p,cs,3) != 2 ) i--; + } if( !i ) break; + if( num_cross(0 ,dx/2, dy/4, dy/4,bp,cs)!=1 ) break; + if( num_cross(dx-dx/2,dx-1,dy-dy/2,dy-dy/2,bp,cs)!=1 ) break; + if( get_bw( (dx+2)/4,dx-1,dy-2-3*dy/16,dy-1,bp,cs,1) == 1 ) break; + if( num_cross(0,dx/4,dy-1,dy-1,bp,cs)!=1 ) break; + + Setac(box1,MICRO_SIGN,ad); + break; + } + return box1->c; +} + +static wchar_t ocr0_vV(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + pix *bp=sdata->bp; + int i,j,d,x,y,i1,i2,i3,hchar=sdata->hchar,gchar=sdata->gchar, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1,cs=sdata->cs; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + ad; /* tmp-vars */ + wchar_t bc=UNKNOWN; + + // --- test v ------------------------------------------------- + for(ad=d=100;dx>2 && dy>3;){ // min 3x4 + DBG( wchar_t c_ask='v'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + x=loop(bp,dx/2,0,dx,cs,1,RI)+dx/2; // be sure in the upper gap + y=loop(bp, x,0,(dy+1)/2,cs,0,DO)-1; // (x,y) should be in the gap + if (x>3*dx/4 || yp,cs,1) != 1 ) Break; + if( get_bw(x0+x,x1,y0+y,y0+y,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+x,x0+x,y1-dy/2,y1, box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+x, x0+x ,y0, y0+dy/3,box1->p,cs,1) == 1 ) // it v? + if( get_bw(x0+x+1,x0+x+1,y0, y0+dy/3,box1->p,cs,1) == 1 ) Break; + + // UVW + if(((num_cross( 0,dx/2+1,dy/ 8,dy/ 8,bp,cs)!=1) + && (num_cross( 0,dx/2+1,dy/16,dy/16,bp,cs)!=1) // it v + && (num_cross(dx/2+1,dx -1,dy/ 8,dy/ 8,bp,cs)!=1)) /* () added on Sep00 */ + || ((num_cross( 0,dx-1,dy-1-dy/8,dy-1-dy/8,bp,cs)> 1) + && (num_cross( 0,dx-1,dy-1 ,dy-1 ,bp,cs)> 1)) ) Break; + // UV + if( get_bw(0 ,dx/8,dy-1-dy/6,dy-1,bp,cs,1)==1 ) Break; + if( get_bw(dx-1-dx/8,dx-1,dy-1-dy/6,dy-1,bp,cs,1)==1 ) Break; + if( loop(bp,0 ,dy/6 ,dx,cs,0,RI) + >=loop(bp,0 ,dy-1-dy/3,dx,cs,0,RI) && dy>6 ) Break; + if( loop(bp,0 ,dy-1-dy/3,dx,cs,0,RI) + >loop(bp,0 ,dy-1-dy/8,dx,cs,0,RI) + && loop(bp,dx-1,dy-1-dy/3,dx,cs,0,LE) + >loop(bp,dx-1,dy-1-dy/8,dx,cs,0,LE) ) Break; // better OR ? + if( loop(bp,0 ,dy-1-dy/3,dx,cs,0,RI) + >=loop(bp,0 ,dy-1-dy/8,dx,cs,0,RI) + && loop(bp,dx-1,dy-1-dy/3,dx,cs,0,LE) + >=loop(bp,dx-1,dy-1-dy/8,dx,cs,0,LE) ) ad=99*ad/100; // font21 + if( loop(bp,dx-1,dy/6 ,dx,cs,0,LE) + >=loop(bp,dx-1,dy-1-dy/3,dx,cs,0,LE) && dy>6 ) Break; + x=loop(bp,0,dy-1,dx,cs,0,RI); // 3*x>dx changed to 2*x>dx May2001 JS + x=loop(bp,x,dy-1,dx,cs,1,RI); if ( dx>14 && 2*x>dx ) Break; // U + if( num_cross(0 ,dx/2, dy/4, dy/4,bp,cs)==2 + && num_cross(dx-dx/2,dx-1,dy-dy/4,dy-dy/4,bp,cs)==2 ) Break; // ~{\it u} + +#if 0 + // measure thickness of lower v + i=loop(bp, 0,dy-1-dy/16,dx,cs,0,RI) + +loop(bp,dx-1,dy-1-dy/16,dx,cs,0,LE); + j=loop(bp, 0,dy-1-dy/4 ,dx,cs,0,RI) + +loop(bp,dx-1,dy-1-dy/4 ,dx,cs,0,LE); + if( box1->m1 && hchar && dy>15 && j>=i-dx/32 ) Break; // ~Y +#endif + /* V has serifs only on upper site! Y also on bottom, check it. Okt00 */ + i=loop(bp, 0, 0,dx,cs,0,RI); + i=loop(bp, i, 0,dx,cs,1,RI); i1=i; // thickness + i=loop(bp, 0, 1,dx,cs,0,RI); + i=loop(bp, i, 1,dx,cs,1,RI); if(i>i1) i1=i; // thiggest + i=loop(bp, 0,dy/4,dx,cs,0,RI); + i=loop(bp, i,dy/4,dx,cs,1,RI); i2=i; + i=loop(bp, 0,dy ,dx,cs,0,RI); + i=loop(bp, i,dy ,dx,cs,1,RI); i3=i; // thickness + i=loop(bp, 0,dy-1,dx,cs,0,RI); + i=loop(bp, i,dy-1,dx,cs,1,RI); if(i>i3) i3=i; // thiggest + if( y0 < box1->m2 ) + if( i1-i2 > dx/32+2 + && i3-i2 > dx/32+2 ) Break; // ~serif_Y + + if( y0 < box1->m2 ) // uppercase V ? + if( i1-i2 < dx/32+2 ) /* no serif detected */ + if( num_cross(0,dx-1,dy-1-dy/4,dy-1-dy/4,bp,cs)==1 ){ + j=loop(bp, 0,dy-1-dy/4 ,dx,cs,0,RI); + j=loop(bp, j,dy-1-dy/4 ,dx,cs,1,RI); + if (jloop(bp,0 ,dy-1 ,dx,cs,0,RI) ) ad=96*ad/100; + + if (num_cross(0,dx-1, dy/2, dy/2,bp,cs)==1 + && num_cross(0,dx-1,3*dy/4,3*dy/4,bp,cs)> 1) Break; // 5x8 * Jul09 + + if (gchar) ad=99*ad/100; + bc='v'; + if( hchar ) bc='V'; + Setac(box1, bc, ad); + break; + } + return box1->c; +} + +static wchar_t ocr0_rR(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + pix *bp=sdata->bp; + int i,j,d,x,y,i1,i2,i3,hchar=sdata->hchar,gchar=sdata->gchar, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1,cs=sdata->cs; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + ad; /* tmp-vars */ + + // --- test r ------- + for(ad=d=100;dy>3 && dx>1;){ // dy>dx, 4x6 font, dx=2 smallest prop-font + DBG( wchar_t c_ask='r'; ) + if (sdata->holes.num > 0 + && ( sdata->holes.hole[0].y1 > dy/2 // tiny hole in upper left + || sdata->holes.hole[0].x1 > dx/2 ) // is tolerated, ~Pp + ) Break; /* tolerant against a tiny hole */ + if( 2*dym3-box1->m1) Break; + + if( loop(bp,dx-1,dy/2,dx,cs,0,LE)<=dx/8 ) Break; + x= loop(bp,dx-1,dy/2,dx,cs,0,LE); if (x<=dx/2) ad=99*ad/100; // ~t + if (loop(bp,dx-1-x/2,0,dy,cs,0,DO)>dy/8) ad=99*ad/100; // ~t + if( dx>4 ) + if( loop(bp,dx-1,dy/2,dx,cs,0,LE)<=dx/8+2 ) Break; // ~v Jun00 + + i=dy-(dy+20)/32; // ignore dust on the ground + + for( y=4*dy/8; y3*dx/8) break; + i2= loop(bp,dx-1,y,dx,cs,0,LE); if(i1>i2) break; + if( (i1+(dx-i2 + -1))/2 >= 4*dx/8 ) break; // mass middle should be left + } + if (y5*dx/8 // not a C + && get_bw(dx-1-dx/8,dx-1,dy-1-dy/4,dy-1,bp,cs,1) ==1 ) Break; + + if( loop(bp, 0,5*dy/8,dx,cs,0,RI)<=dx/8 + && loop(bp,dx-1,5*dy/8,dx,cs,0,LE)>=5*dy/8 + && loop(bp,dx/2, dy-1,dy,cs,0,UP)<=dy/8 ) Break; // ~c + + if( loop(bp, 0,3*dy/8,dx,cs,0,RI) + > loop(bp,dx-1,3*dy/8,dx,cs,0,LE)+dx/8 ) { + if( loop(bp, 0, dy/8,dx,cs,0,RI)3*dx/4 ) Break; // ~i + if( loop(bp,0,dy/4,dx,cs,0,RI)>3*dx/8 // ~I + && get_bw(0,dx/8,0,dy/4,bp,cs,1) ==1 ) Break; + if( num_cross(0,dx-1,dy/2, dy/2 ,bp,cs)!=1 + && num_cross(0,dx-1,dy/2+1,dy/2+1,bp,cs)!=1 ) Break; // ~n 024a3 + + // itallic t is sometimes not high enough, look for v-like shape + for(y=3*dy/4;y1 ) ad=95*ad/100; // ~f + if( num_cross(dx/2 ,dx/2 ,0,dy-1,bp,cs)>2 + && num_cross(dx/2+1,dx/2+1,0,dy-1,bp,cs)>2 ) Break; // ~f + + if (box1->dots) ad=98*ad/100; /* could be modified latin2-r */ + if (hchar) ad=96*ad/100; + if (gchar) ad=97*ad/100; + Setac(box1,'r',ad); + break; // not 100% sure! + } + // --- test R --------------------------------------------------- + for(ad=d=100;dx>2 && dy>3;){ // min 3x4 + DBG( wchar_t c_ask='R'; ) + if (sdata->holes.num > 2) Break; /* tolerant against a tiny hole */ + if( num_cross(x0,x1,y1-dy/8,y1-dy/8, box1->p,cs) < 2 ) Break; // ~P + if (loop(bp, dx/2, dy/4,dy,cs,0,DO)>dy/2) Break; // ~C + if (loop(bp, dx/2, 0,dy,cs,0,DO)>dy/8 + && loop(bp, dx/2,dy/16,dx,cs,0,RI)=16 ) Break; + for(i=1,y=y0+dy/8;y<=y1-dy/8 && i;y++){ // left v-line + if( get_bw(x0 , x0+dx/2,y, y,box1->p,cs,1) != 1 ) i=0; + } if( !i ) Break; + for(i=1,x=x0+3*dx/8;x<=x1-dx/4 && i;x++){ // upper h-line + if( get_bw( x, x, y0, y0+dy/4,box1->p,cs,1) != 1 ) i=0; + } if( !i ) Break; + for(y=0,x=x0+dx/4;x<=x1-dx/4;x++){ // lower h-gap + i=loop(box1->p,x,y1,dy,cs,0,UP); + /* on small chars bypass possible low left serifs */ + if (i>0) { i2=loop(box1->p,x-1,y1-i-1,dy,cs,0,UP); + if (i2>1) i+=i2-1; } + if (i>y) { y=i; i1=x; } + } if( y<=dy/8 ) Break; if (yp,cs) == 2 ) i=0; + } if( i ) Break; + for(i=1,y=y0;y<=y0+3*dy/8 && i;y++){ // upper 2 vert lines + if( num_cross(x0,x1,y,y, box1->p,cs) == 2 ) i=0; + } if( i ) Break; + for(i=1,y=y0+dy/3;y<=y1-dy/3 && i;y++){ // midle h line + if( num_cross(x0,x1,y,y, box1->p,cs) == 1 ) i=0; + } if( i ) ad=95*ad/100; /* sometimes there is a small gap */ + for(i=1,y=y1-dy/4;y<=y1 && i;y++){ // lower 2 vert lies + if( num_cross(x0,x1,y,y, box1->p,cs) == 2 ) i=0; + } if( i ) Break; + if( get_bw(x1-dx/3,x1,y0,y0+dy/4,box1->p,cs,1) != 1 ) Break; // pixel ru + x=loop(bp,dx-1, dy/4,dx,cs,0,LE); if(x>dx/2) Break; i=x; // ru + x=loop(bp,dx-1, dy/2,dx,cs,0,LE); if(x<=i ) Break; i=x; // rc + x=loop(bp,dx-1, 5*dy/8,dx,cs,0,LE); if(x>i ) i=x; + x=loop(bp,dx-1, 6*dy/8,dx,cs,0,LE); if(x>i ) i=x; + x=loop(bp,dx-1,dy-1-dy/8,dx,cs,0,LE); if(x>=i ) Break; // rd + + i1=loop(bp,0, dy/4,dx,cs,0,RI); // straight + i2=loop(bp,0, dy/2,dx,cs,0,RI); + i3=loop(bp,0,dy-1-dy/4,dx,cs,0,RI); if( abs(i1+i3-2*i2)>1+dx/16 ) Break; + if (dy>15) + if (loop(bp,dx-1, dy/2,dx,cs,0,LE)>=loop(bp,dx-1, dy-1,dx,cs,0,LE) + && loop(bp,dx-1,3*dy/16,dx,cs,0,LE)>=loop(bp,dx-1,dy/16,dx,cs,0,LE)+dx/8 ) Break; // ~ff + if (dy>7) + if (loop(bp,dx-1,dy-2 ,dx,cs,0,LE) + >loop(bp,dx-1,dy-2-dy/8,dx,cs,0,LE)) { + ad=98*ad/100; + if (loop(bp,dx-1,dy-1-dy/4,dx,cs,0,LE)==0 + && loop(bp,dx-1,dy-2-dy/8,dx,cs,0,LE)>0 ) Break; // broken B ?? + } + j=sdata->holes.num; + if (j != 1) { + i=num_hole (x0,x1,y0,y1-dy/3,box1->p,cs,NULL); + // j=num_hole (x0,x1,y0,y1 ,box1->p,cs,NULL); + if (i==0) ad=90*ad/100; /* some times there is a small gap */ + if (j>1 || j>i) Break; + } + if (sdata->holes.num < 1) ad=90*ad/100; + if (sdata->holes.num==1) + if (sdata->holes.hole[0].y1 > 3*dy/4) ad=95*ad/100; // alpha + + if (!hchar) ad=98*ad/100; + if ( gchar) ad=98*ad/100; + Setac(box1,'R',ad); + break; + } + return box1->c; +} + +static wchar_t ocr0_m(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + pix *bp=sdata->bp; + int i,d,x,y,i1,i2,i3,i4,i5,hchar=sdata->hchar,gchar=sdata->gchar, + handwritten=0, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1,cs=sdata->cs; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + ad; /* tmp-vars */ + + // --- test m ------- + for(ad=d=100;dx>4 && dy>3;){ + DBG( wchar_t c_ask='m'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + if (sdata->holes.num > 0) ad=96*ad/100; + x =loop(bp,dx-1,dy/2,dx,cs,0,LE); if(3*x>dx) Break; // ~K + y=dy/2; + i=num_cross(0,dx-1,y ,y ,bp,cs); if (i!=3) + i=num_cross(0,dx-1,y+1,y+1,bp,cs); + if (num_cross(0,dx-1,dy/2,dy/2,bp,cs)==1) Break; // 5x8 * Jul09 + if (i<3 && i>5) Break; // m ru rn, handwritten m + // im or glued.mm cut to nm + if (i>3) { ad=99*ad/100; MSG(fprintf(stderr,"ad=%d",ad);) } + if (i>=5) { // melted rw ? (Oct08 JS) + x =loop(bp,0,y,dx ,cs,0,RI); if(x> dx/4) Break; // 1st v-line + x+=loop(bp,x,y,dx-x,cs,1,RI); if(x> dx/2) Break; i1=x; // 1st gap + x+=loop(bp,x,y,dx-x,cs,0,RI); if(x>3*dx/4) Break; i1=x-i1; // 2nd v-line + x+=loop(bp,x,y,dx-x,cs,1,RI); if(x>6*dx/8) Break; i2=x;// 2nd gap + x+=loop(bp,x,y,dx-x,cs,0,RI); i2=x-i2; // 3th v-line + // printf("\nDBG i1,i2 %d %d", i1, i2); + if (i1>2*i2) Break; // rw + } + for (i=0,y=dy-1-dy/8;y>dy/2;y--) { + i=num_cross(0,dx-1,y,y,bp,cs); if (i>2) break; + } if (i>3) Break; + for ( ;y>dy/2;y--) { + i=num_cross(0,dx-1,y,y,bp,cs); if (i!=3) break; + } if (i>5) Break; y++; i5=y; + if (y> dy/2) handwritten=10; + if (y>3*dy/4) handwritten=60; + /* @@............... + @@......,........ + @@,...@@@....@@@. + @@,,.@@@@..@@@@@, + @@@.@@@@@.@@@@@@, + @@;@@@@@@@@@;,@@, + @@@@@,.@@@@,,,@@@ <- i5 + ,@@@...;@@....@@@ + .@;...........,@@ + ...............@@ + i1 i2 i3 i4 + */ + x =loop(bp,0,y,dx ,cs,0,RI); if(x> dx/4) Break; // search 1st v-line + x+=loop(bp,x,y,dx-x,cs,1,RI); if(x> dx/2) Break; i1=x; // first gap + x+=loop(bp,x,y,dx-x,cs,0,RI); if(x>3*dx/4) Break; i2=x; // 2nd v-line + x+=loop(bp,x,y,dx-x,cs,1,RI); if(x>6*dx/8) Break; i3=x; // 2nd gap + x+=loop(bp,x,y,dx-x,cs,0,RI); if(x<5*dx/8) Break; i4=x; // 3th v-line + if (x>=dx) Break; // missing 3th v-line, ~W + MSG(fprintf(stderr,"y=%d x=%d %d %d %d",y,i1,i2,i3,i4);) + if( abs((i2-i1)-(i4-i3)) > 2+((i2-i1)+(i4-i3))/4 ) Break; // same gap width? rn + if( abs((i2-i1)-(i4-i3)) > 2+((i2-i1)+(i4-i3))/8 ) ad=98*ad/100; // same gap width? rn + // the same game for the lower part =>l1 l2 l3 l4 ??? + i =loop(bp,0,5*dy/8,dx,cs,0,RI); + i =loop(bp,i,5*dy/8,dx,cs,1,RI); + x =loop(bp,0,dy-dy/32-1,dx,cs,0,RI); + x =loop(bp,x,dy-dy/32-1,dx,cs,1,RI); + if( x > i+1 ) i=1; else i=0; /* looks like serif m, Okt00 */ + for(y=0,x=i1;xy) y=i; + } + if(yy) y=i; + } + if(y=dy/2 ) break; + if(xi4-i3+dx/16){ + for(y=0,x=(i1+i2)/2;xy ) y=i; if( 2*i3 ) Break; // melted WT + + x=loop(bp,dx-1,dy/2,dx,cs,0,LE); + if (x>2 && loop(bp,dx-1-x/2,0,dy,cs,0,DO)dy/2) Break; // N + + // {\it m} + if( loop(bp,1, dy/4,dx,cs,0,RI) + >loop(bp,0,7*dy/8,dx,cs,0,RI) ) + Setac(box1,'m',98*ad/100); + + if (handwritten<10){ + x =loop(bp,0,dy/4,dx,cs,0,RI); + x+=loop(bp,x,dy/4,dx,cs,1,RI); + for( ;x=dy/4) ad=99*ad/100; + if (i>(dy+2)/4) ad=95*ad/100; + if (3*i>dy) Break; + } + if(xdots) ad=99*ad/100; + Setac(box1,'m',ad); + if (ad>=100) return 'm'; + break; + + } + return box1->c; +} + +static wchar_t ocr0_tT(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + pix *bp=sdata->bp; + int i,i1,i2,i3,i4,j,d,x,y,yb,hchar=sdata->hchar,gchar=sdata->gchar, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1,cs=sdata->cs; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + ad; /* tmp-vars */ + + // --- test T --------------------------------------------------- + for(ad=d=100;dx>2 && dy>3;){ // dx>1 dy>2*dx + DBG( wchar_t c_ask='T'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + // upper horizontal line + i1= loop (bp, dx/8,0,dy,cs,0,DO); // left side + i2= loop (bp,dx-1-dx/8,0,dy,cs,0,DO); // right side + i3= loop (bp, dx/8,i1,dy,cs,1,DO); // left side + i4= loop (bp,dx-1-dx/8,i2,dy,cs,1,DO); // right side + if (i1>dy/4 || i2>dy/4) Break; + for (x=dx/8;xi1+dy/8 && i>i2+dy/8) break; + if (idx+1 || i+j>=dx || i3*x) break; //~I + } if( y3*dx/4) Break; // ~7 + i+= loop(bp,i ,dy/4,dx,cs,1,RI);if(i>3*dx/4) Break; + + if( num_cross(0,dx-1, dy-1, dy-1,bp,cs) != 1 + && num_cross(0,dx-1, dy-2, dy-2,bp,cs) != 1 ) Break; + if( num_cross(0,dx-1,2*dy/3,2*dy/3,bp,cs) != 1 + && num_cross(0,dx-1,2*dy/3,2*dy/3,bp,cs) != 1 ) Break; + if (box1->m3 && 2*y1>box1->m3+box1->m4 + && loop(bp,0, 0,dy/2,cs,0,DO)>=dy/4 + && loop(bp,0,dy-1,dy ,cs,0,UP)<=dy/2) ad=96*ad/100; // ~J + if (gchar) ad=98*ad/100; + if( loop(bp,0,dy-1,dx,cs,0,RI)<=dx/8) ad=99*ad/100; // ~J + i = loop(bp,0,dy/2,dx,cs,0,RI); + j = loop(bp,i,dy/2,dx,cs,1,RI); + if( 2*i>=dx || 2*(dx-j-i)=100) return 'T'; + break; + } + // --- test t --------------------------------------------------- + // written t can look like a + or even with missing right side + // smallest t found in win-screenshot (prop-font) dx=2 + for(ad=d=100;dx>1 && dy>=box1->m3-box1->m2-1;){ // sometimes no hchar! + DBG( wchar_t c_ask='t'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + if (dy<=box1->m3-box1->m2+1) ad=96*ad/100; // bad line detection? + if (num_cross(0,dx-1,0 ,0 ,bp,cs) != 1) { // font4x5 *=x+- + if (dy<10) Break; ad=98*ad/100; + } + if (num_cross(0,dx-1,dy-1,dy-1,bp,cs) != 1) { // *=x+- + if (dy<10) Break; ad=98*ad/100; + } + for(x=0,yb=j=y=dy/32+3*dy/16;y<5*dy/8;y++)if(y>0){ // upper cross line + i=loop(bp,0,y,dx,cs,0,RI); + i=loop(bp,i,y,dx,cs,1,RI); if( i>x ) { x=i;yb=j=y; } // hor. line + i=num_cross(0,dx-1,y ,y ,bp,cs); + j=num_cross(0,dx-1,y+1,y+1,bp,cs); if (i>2 && j>2) break; + if( y<11*dy/16 + && num_cross(0,dx-1,y ,y ,bp,cs) != 1 + && ( num_cross(0,dx-1,y+dy/8,y+dy/8,bp,cs) != 1 || dy<13) // against noise + ) break; + } if( y<4*dy/8 ) Break; + if (dy>12 && x>4 && x>dx/2 && yb<=(dy+4)/8) + if ( loop(bp,dx-1-3*x/4,yb,dy,cs,1,UP) + <=loop(bp,dx-1-1*x/4,yb,dy,cs,1,UP)+1 ) + if ( loop(bp,0 ,dy/2,dy,cs,1,UP)>dx/8 ) Break; // ~C + + if (x=dx && 9*dx>=8*dy) { ad=99*ad/100; } // + + + i=loop(bp,dx-1,0,dx,cs,0,LE); + for(y=0;y1) break; i=j; + } + if( yi ) break; + if( y==yb ) break; + + j=loop(bp,0, dy/2,dx,cs,0,RI); + j=loop(bp,j, dy/2,dx,cs,1,RI); i=j; // thickness + j=loop(bp,0, dy/4,dx,cs,0,RI); + j=loop(bp,j, dy/4,dx,cs,1,RI); if (j=loop(bp,dx-1,yb/2,dx,cs,0,LE) ) Break; // ~1 ??? + + j=1; + for(y=1;j && y=cs && getpixel(bp,x+1,y )>=cs + && getpixel(bp,x ,y-1)< cs && getpixel(bp,x+1,y-1)< cs ) { j=0;break; } + } if(!j) Break; + + if( num_cross(0,dx-1,dy-2,dy-2,bp,cs) == 2 + && num_cross(0,dx-1,dy-1,dy-1,bp,cs) == 2 ) Break; // ~* (5er) + + if( dy>= 16 + && loop(bp, 0, 3*dy/4,dx,cs,0,RI) + >=loop(bp, 0, dy-2,dx,cs,0,RI) + && loop(bp,dx-1, 3*dy/4,dx,cs,0,LE) + <=loop(bp,dx-1, dy-2,dx,cs,0,LE) + && loop(bp,dx-1, 1,dx,cs,0,LE)+dx/16 + loop(bp, 0,3*dy/16,dx,cs,0,RI)+dx/16 + || loop(bp,dx-1, 0,dx,cs,0,LE)==0 + || loop(bp,dx-1, 1,dx,cs,0,LE)==0) ) ad=96*ad/100; // ~f Jan02 + if(dx<8 && dy>12){ // thin f's could easily confound with t + x=loop(bp,dx-1,3*dy/16,dx,cs,0,LE); + if (x) + if (loop(bp,dx-x,0,dy,cs,0,DO)<3*dy/16 + && loop(bp, 0, 3*dy/4,dx,cs,0,RI)+1 + >=loop(bp, 0, dy-2,dx,cs,0,RI) + && loop(bp,dx-1, 3*dy/4,dx,cs,0,LE) + <=loop(bp,dx-1, dy-2,dx,cs,0,LE) ) Break; + } + if (dx>7) + if( num_cross( 0,dx-1,2*dy/3,2*dy/3,bp,cs) > 1 + && num_cross( 0,dx/2,2*dy/3,2*dy/3,bp,cs) > 0 + && num_cross(dx/2,dx-1,2*dy/3,2*dy/3,bp,cs) > 0 ) + if (sdata->holes.num > 0) + if (sdata->holes.hole[0].y0 > dy/4) Break; // ~6 + // if ( num_hole( x0, x1, y0+dy/4, y1, box1->p,cs,NULL) > 0 ) Break; // ~6 + + if( num_cross(0,dx-1,3*dy/4, 3*dy/4, bp,cs) >= 2 + && num_cross(0,dx-1,3*dy/4-1,3*dy/4-1,bp,cs) >= 2 ){ + ad=99*ad/100; /* italic t ? */ + if (loop(bp,dx/2 ,dy-1,dy,cs,0,UP)>dy/4) Break; // ~h + if (loop(bp,dx/2+1,dy-1,dy,cs,0,UP)>dy/4) Break; // ~h + } + + x= loop(bp,dx-1,dy/2,dx,cs,0,LE); + i= loop(bp,dx-1,dy/8,dx,cs,0,LE); + if (i>x && loop(bp,dx-x,0,dy,cs,0,DO)>=dy/2) ad=90*ad/100; /* ~\ */ + + x= loop(bp,0, 0,dx,cs,0,RI); + i= loop(bp,0, 1,dx,cs,0,RI); if (i1) Break; // l + + // this happens quite often, do not be to strong + if (!box1->m2) ad=99*ad/100; + if (box1->m2) { + if (!hchar) ad=99*ad/100; /* some times t is not long enough */ + if( y0>=box1->m2-(box1->m2-box1->m1)/4 ) ad=99*ad/100; /* to short */ + if( y0>=box1->m2 ) ad=99*ad/100; /* to short */ + } + + if (sdata->holes.num > 0) ad=95*ad/100; + if (gchar) ad=99*ad/100; + if (box1->dots) ad=90*ad/100; + Setac(box1,'t',ad); + break; + } + return box1->c; +} + +static wchar_t ocr0_sS(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + pix *bp=sdata->bp; + int d,x,y,i1,i2,i3,hchar=sdata->hchar,gchar=sdata->gchar, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1,cs=sdata->cs; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + ad; /* tmp-vars */ + wchar_t ac; + + // --- test sS near 5 --------------------------------------------------- + for(ad=d=100;dx>2 && dy>3;){ // min 3x4 (4x6 font) + DBG( wchar_t c_ask='s'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + if( num_cross( dx/2, dx/2,0,dy-1,bp,cs)!=3 + && num_cross(5*dx/8,3*dx/8,0,dy-1,bp,cs)!=3 + && dy>4 ) Break; + if( num_cross(0,dx-1,dy/2 ,dy/2 ,bp,cs)!=1 + && num_cross(0,dx-1,dy/2-1,dy/2-1,bp,cs)!=1 ) Break; + // get the upper and lower hole koords + y=dy/4; + x =loop(bp,0,dy/4,dx,cs,0,RI); if(x>3*dx/8) Break; /* slanted too */ + x +=loop(bp,x,dy/4,dx,cs,1,RI); if(x>5*dx/8) Break; /* fat too */ + i1 =loop(bp,x,dy/4,dx,cs,0,RI); i1=(i1+2*x)/2; // upper center x + y=11*dy/16; + x =loop(bp,dx-1 ,y,dx,cs,0,LE); if(x>dx/4) Break; + x +=loop(bp,dx-1-x,y,dx,cs,1,LE); if(dx>5 && dy>7 && x>dx/2) Break; + if (x>3*dx/4) Break; if(x>dx/2) { ad=98*ad/100; MSG({})} + i2 =loop(bp,dx-1-x,y,dx,cs,0,LE); i2=dx-1-(i2+2*x)/2; // upper center x + MSG(fprintf(stderr,"~3 upper right gap (i1=%d,dy/4)",i1);) + // use i3 temporary for x of left upper border of slanted S + i3 =loop(bp,0,dy/4,dx,cs,0,RI); + for( y=dy/4;yi3+dx/8 + && loop(bp,x-1,y,dx,cs,0,UP)>dy/8+1) break; // +1 for s font 5x8 Jul09 + } + if( ydx/8) break; + } + if(y==dy/2) Break; // Mai00 + + y=dy/2+loop(bp,0,dy/2,dy/2,cs,1,DO); + if( !joined(bp,0,y,i2,11*dy/16,cs) ) Break; + + if (sdata->holes.num > 0) + if (sdata->holes.hole[0].y0 > dy/4) Break; // ??? + // if( num_hole( x0, x1, y0+dy/4, y1, box1->p,cs,NULL) > 0 ) Break; + + i1=loop(bp,dx-1,dy-1,dx,cs,0,LE); + i2=loop(bp,dx-1,dy-2,dx,cs,0,LE); + if (i2-i1 >= dx/4) Break; // ~{ 5x7font + + i1=loop(bp, 0, 0,dx,cs,0,RI); + i2=loop(bp, 0, 1,dx,cs,0,RI); + if (i2-i1 >= dx/4) Break; // ~} 5x7font + + // sS5 \sl z left upper v-bow ? + + i1=loop(bp, 0,dy/2,dx,cs,0,RI); + i1=loop(bp, i1,dy/2,dx,cs,1,RI); + if (4*i1>=3*dx) ad=97*ad/100; // ~5 7-segment + + i1=loop(bp,0, dy/16,dx,cs,0,RI); + i2=loop(bp,0,4*dy/16,dx,cs,0,RI); + i3=loop(bp,0,7*dy/16,dx,cs,0,RI); + if( 2*i2+dx/32 >= i1+i3 ){ + if( 2*i2+dx/32 > i1+i3 || dx>9 ) Break; + // very small s? + i1+=loop(bp,i1, dy/16,dx,cs,1,RI); + i2+=loop(bp,i2,4*dy/16,dx,cs,1,RI); + i3+=loop(bp,i3,7*dy/16,dx,cs,1,RI); + if( 2*i2+dx/32 >= i1+i3 ) Break; + } + + for(y=7*dy/16;y<5*dy/8;y++){ + if( num_cross( 0,dx-1,y ,y ,bp,cs)==2 ) + if( num_cross( 0,dx-1,y+1,y+1,bp,cs)==1 ) + if( num_cross( 0,dx/4,y,y,bp,cs)==1 ) break; // ~5 + } if(y<5*dy/8) Break; // v0.2.4a5 + if ( loop(bp, dx-1,dy-2-dy/32,dx,cs,0,LE) + > loop(bp, 0, 1+dy/32,dx,cs,0,RI) + dx/4 ) Break; // ~5 Dec00 + ac='s'; + if (gchar) { ad=98*ad/100; MSG(fprintf(stderr,"gchar=bad");) } + if ( loop(bp, dx-1, 0,dx,cs,1,LE) // ToDo: improve + > loop(bp, 0,dy-1,dx,cs,1,RI)+dx/8 ) ad=98*ad/100; // ~5 4x5 font + if( hchar ){ // (slanted) S but 5 is very similar! check it + ac='S'; + if ( loop(bp,3*dx/4, 0,dy,cs,1,DO) // ToDo: improve + > loop(bp, dx/4,dy-1,dy,cs,1,UP) ) ad=99*ad/100; // ~5 + if ( loop(bp, dx-1,dy-1-dy/32,dx,cs,0,LE) + > loop(bp, 0, 0+dy/32,dx,cs,0,RI) ) ad=99*ad/100; // ~5 + if ( loop(bp, 0,dy-1-dy/32,dx,cs,0,RI) + > loop(bp, dx-1, 0+dy/32,dx,cs,0,LE) ) ad=99*ad/100; // ~5 + } + Setac(box1,ac,ad); + break; + } + return box1->c; +} + +static wchar_t ocr0_gG(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + pix *bp=sdata->bp; + int i,j,d,x,y,i1,i2,i3,hchar=sdata->hchar,gchar=sdata->gchar, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1,cs=sdata->cs; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + ad; /* tmp-vars */ + + // --- test g --------------------------------------------------- + /* some g's have crotchet at upper right end, so hchar can be set */ + // ~italic g + for(ad=d=100;dx>2 && dy>4;){ // min 3x5 + DBG( wchar_t c_ask='g'; ) + if (sdata->holes.num > 3) Break; /* tolerant against a tiny hole */ + if( get_bw(x0+dx/2, x0+dx/2, y1-dy/2, y1,box1->p,cs,1) != 1 ) Break; + if( get_bw(x1-dx/4, x1 , y1-dy/4, y1,box1->p,cs,1) != 1 ) Break; // ~p + if( get_bw(x0+dx/2, x0+dx/2, y0, y0+dy/2,box1->p,cs,1) != 1 ) Break; + + if( num_cross(x0+dx/2, x0+dx/2, y0, y1, box1->p,cs) < 3 ) + if( num_cross(x1-dx/2, x1-dx/2, y0, y1, box1->p,cs) < 3 ) Break; + if (sdata->holes.num < 1) Break; + for (i=0;iholes.num;i++){ + if (sdata->holes.hole[i].y1 < 5*dy/8+1) break; + } if (i==sdata->holes.num) Break; // no upper hole found + // if( num_hole ( x0, x1, y0, y0+5*dy/8, box1->p,cs,NULL) != 1 ) Break; + for(y=dy/4;y=15*dy) Break; // ~B + + if (num_cross(x1, x1, (y0+y1)/2, y1, box1->p,cs)>1) { + ad=98*ad/100; // ~& + if (num_cross(x1 , x1 , y0, (y0+y1)/2, box1->p,cs)<1 ) ad=96*ad/100; + if (num_cross(x1-1, x1-1, y0, (y0+y1)/2, box1->p,cs)<1 ) ad=95*ad/100; + } + // looking for a gap + for (x=0,y=dy/4;yx) x=i; + } // in a good font x is greater dx/2 + + if (xp,cs) > 2 + || num_cross(x0,x1 ,y0+dy/8,y0+dy/8,box1->p,cs) > 2) ad=90*ad/100; + if( num_cross(x0,x1+dx/4,y1-dy/4,y1-dy/4,box1->p,cs) > 2 + || num_cross(x0,x1+dx/4,y1-dy/8,y1-dy/8,box1->p,cs) > 2) ad=90*ad/100; + } + if( num_cross(0,dx-1,dy/2,dy/2,bp,cs) >2 ) ad=99*ad/100; // ~/o + + /* test for horizontal symmetry ~8 */ + for (y=0;ym4==0) ad=98*ad/100; + if ( hchar) ad=96*ad/100; + if (!gchar) ad=96*ad/100; + ad=98*ad/100; + Setac(box1,'g',ad); + break; + } + // --- test rundes G --------------------------------------------- + for(ad=d=100;dx>3 && dy>4;){ // min 3x4 + DBG( wchar_t c_ask='G'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + if( get_bw(x0 ,x0+dx/2,y0+dy/3,y0+dy/3,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/2,x1-dx/4,y0 ,y0+dy/4,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/2,x0+dx/2,y1-dy/4,y1 ,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0 ,x0+dx/2,y1-dy/3,y1-dy/3,box1->p,cs,1) != 1 ) Break; // ~S + for( y=y0+dy/4;yp,cs,1) == 0 ) break; + if( y==y1-dy/3 ) Break; // no gap + + if( num_cross(x0+dx/2 , x0+dx/2 , y0, y, box1->p,cs) != 1 + || num_cross(x0+dx/2+1, x0+dx/2+1, y0, y, box1->p,cs) != 1 ) Break; // ~e + + x=x0; y=y1; + turmite(box1->p,&x,&y,x0,x1,y0,y1,cs,UP,ST); // left bow? + if( yp,&x,&y,x0,x1,y0,y1,cs,LE,ST); + if( xp,&x,&y,x0,x1,y0,y1,cs,ST,LE); + if( xp,&x,&y,x0,x1,y0,y1,cs,LE,ST); + turmite(box1->p,&x,&y,x0,x1,y0,y1,cs,ST,LE); + if( xp,&x,&y,x0,x1,y0,y1,cs,RI,UP); // upper end right midle + if( x<=x1 ) Break; + if( yy1-dy/4 ) Break; + + x=x1-dx/3;y=y1; // follow left C-bow, filter S + turmite(box1->p,&x,&y,x0,x1,y0+dy/4,y1,cs,LE,UP); // w=LE b=UP + if( y>y0+dy/4+1 ) Break; /* leave box below for S or on top for CG */ + MSG(fprintf(stderr,"xy= %d %d",x-x0,y-y0);) + /* if (yp,&x,&y,x0,x1,y0 ,y1,cs,RI,UP); + MSG(fprintf(stderr,"xy= %d %d",x-x0,y-y0);) + if( y>y0 ) Break; + if (sdata->holes.num > 0) Break; + // if( num_hole(x0,x1,y0,y1,box1->p,cs,NULL) > 0 ) Break; + if( dx>4 && dy>6){ // no (<[ + for(i=1,y=0;i && y Z + if( xi ) i=x; + } if( yi){ i=x;i1=y; } + } if( i1<=dy/4 || i1>=dy-dy/4 ) Break; // around the middle ? + // check from above for gap and left vertical line (~S) + x =loop(bp,0,i1,dx ,cs,0,RI); + x+=loop(bp,x,i1,dx-x,cs,1,RI); // left vertical bow + x+=loop(bp,x,i1,dx-x,cs,0,RI); if (x>=dx) ad=90*ad/100; + MSG(fprintf(stderr,"h-bar y dx %d %d ad= %d",i1,i,ad);) + + i=1; // Mar06: adapted to 4x6 font + for(x=dx/2;x=cs + && getpixel(bp,x+1,y )< cs + && getpixel(bp,x+1,y-1)< cs + && getpixel(bp,x ,y-1)< cs ) { i=0;break; } + } + if(i) ad=95*ad/100; // ~C + if(!hchar) ad=98*ad/100; + if( gchar) ad=98*ad/100; + + Setac(box1,'G',ad); + break; + } + // --- test \it g like 9 ---------------------------------------------- + for(ad=d=100;dx>2 && dy>4;){ // dx>1 dy>2*dx + DBG( wchar_t c_ask='g'; ) + if (sdata->holes.num > 2) Break; /* tolerant against a tiny hole */ + if( num_cross(x0+dx/2,x0+dx/2,y0,y1,box1->p,cs) != 3 // pre select + && num_cross(x0+dx/4,x1-dx/4,y0,y1,box1->p,cs) != 3 ) Break; + for( x=0,i=y=y0+dy/2;y<=y1-3*dy/16;y++){ // suche kerbe + j=loop(box1->p,x0,y,dx,cs,0,RI); + if( j>2 && j>dx/4 && yp,x0+j-2,y+1,dx,cs,0,RI)-2; + if( j>x ) { x=j; i=y; } + } + if( x<4*dx/8 ) Break; + if( num_cross(x0+dx/2,x1,i ,y1,box1->p,cs) != 1 + && num_cross(x0+dx/2,x1,i+1,y1,box1->p,cs) != 1 ) Break; + if( num_hole(x0,x1,y0,i+1,box1->p,cs,NULL)!=1 ) Break; + if( num_hole(x0,x1,i-1,y1,box1->p,cs,NULL)!=0 ) Break; + if( loop(box1->p,x0,y1 ,dy,cs,0,RI)>dx/3 && + loop(box1->p,x0,y1-1,dy,cs,0,RI)>dx/3) Break; // no q + for( x=0,i=y=y0+dy/3;y<=y1-dy/3;y++){ // suche kerbe + j=loop(box1->p,x1,y,dx,cs,0,LE); + if( j>x ) { x=j; i=y; } + } if( x>dx/2 ) Break; // no g + i1=loop(bp,dx-1,dy/8 ,dx,cs,0,LE); if(i1>dx/2) Break; + i3=loop(bp,dx-1,dy-1-dy/8,dx,cs,0,LE); + i2=loop(bp,dx-1,dy/2 ,dx,cs,0,LE); if(i1+i3<2*i2-dx/8) Break; // konvex + i1=loop(bp,dx-1,dy/4 ,dx,cs,0,LE); if(i1>dx/2) Break; + i3=loop(bp,dx-1,dy-1-dy/8,dx,cs,0,LE); + for(y=dy/4;y0){ x--; // robust + y=loop(bp,dx-x-1, dy-1,dy,cs,0,UP); + if(yp,cs) > 2) ad=90*ad/100; + if( num_cross(x0,x1+dx/4,y1-dy/4,y1-dy/4,box1->p,cs) > 2 + || num_cross(x0,x1+dx/4,y1-dy/8,y1-dy/8,box1->p,cs) > 2) ad=90*ad/100; + + if (box1->m4==0) ad=98*ad/100; + if ( hchar) ad=96*ad/100; + if (!gchar) { + if (box1->m4 - box1->m3 > 2) ad=96*ad/100; + else { + if (y1 > box1->m3) ad=99*ad/100; + else ad=97*ad/100; + } + } + if (ad>99) ad=99; // never be sure to have a 9 + Setac(box1,'g',ad); + break; + } + return box1->c; +} + +// rewritten for vector usage v0.41 +static wchar_t ocr0_xX(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + // pix *bp=sdata->bp; // obsolete + int i,j,d,x,y,hchar=sdata->hchar,gchar=sdata->gchar, + x0=box1->x0, x1=box1->x1, y0=box1->y0, y1=box1->y1; // ,cs=sdata->cs; + int dx=x1-x0+1, dy=y1-y0+1, /* size */ + (*aa)[4]=sdata->aa, /* the for line ends, (x,y,dist^2,vector_idx) */ + ad; /* tmp-vars */ + wchar_t bc=UNKNOWN; + + // --- test xX --------------------------------------------------- + // rewritten for vectors 0.41 + for(ad=d=100;dx>2 && dy>3;){ // min 3x4 + int ld, i1, i2, i3, i4; // lien derivation, 4 inner edges + DBG( wchar_t c_ask='x'; ) + if (sdata->holes.num > 0) Break; /* # */ + /* half distance to the center */ + d=2*sq(128/4); + /* now we check for the 4 ends of the x */ + if (aa[0][2]>d) Break; + if (aa[1][2]>d) Break; + if (aa[2][2]>d) Break; + if (aa[3][2]>d) Break; + if (aa[3][0]-aa[0][0] dy/16 + && aa[3][1]-y0 > dy/16 + && y1-aa[1][1] > dy/16 + && y1-aa[2][1] > dy/16) Break; // 10x10 ~* (X + vert. line) + /* searching for 4 notches between neighbouring ends */ + + /* 0907: false positive on font4x5 '*'='-' | 'x' */ + i1=nearest_frame_vector(box1, aa[0][3], aa[1][3], x0+dx, y0+dy/4); + i3=nearest_frame_vector(box1, aa[0][3], aa[1][3], x0+dx, y1-dy/4); + i2=nearest_frame_vector(box1, i1, i3, x0, y0+dy/2); + if (box1->frame_vector[i2][0]<=x0+ dx/8) Break; + if (box1->frame_vector[i2][0]<=x0+ dx/4) ad=98*ad/100; + i1=nearest_frame_vector(box1, aa[2][3], aa[3][3], x0 , y0+dy/4); + i3=nearest_frame_vector(box1, aa[2][3], aa[3][3], x0 , y1-dy/4); + i2=nearest_frame_vector(box1, i1, i3, x1, y0+dy/2); + if (box1->frame_vector[i2][0]>=x1- dx/8) Break; + if (box1->frame_vector[i2][0]>=x1- dx/4) ad=98*ad/100; + + /* only left side */ + for (j=i=aa[0][3];i!=aa[1][3];i=(i+1)%box1->num_frame_vectors[0]) { + if (box1->frame_vector[i][0] + >=box1->frame_vector[j][0]) j=i; /* notice most right vector */ + } if (j==i) Break; + /* calculate the distance to the center */ + x=box1->frame_vector[j][0]; + y=box1->frame_vector[j][1]; i1=j; + if (abs(aa[0][0]+aa[1][0]+aa[2][0]+aa[3][0]-4*x)>(dx+2)) Break; + if (abs(aa[0][1]+aa[1][1]+aa[2][1]+aa[3][1]-4*y)>(dy+2)) Break; + if ( aa[0][0]+aa[1][0]-2*x>=0) Break; + if ( aa[1][0] >= x ) Break; + if ( aa[0][0] > x ) Break; + if ( aa[0][0] >= x ) ad=99*ad/100; + if (x-x02*sq(1024/4)) Break; + /* check if lower left and center point are joined directly */ + ld=line_deviation(box1, j, aa[1][3]); + MSG(fprintf(stderr," X-1 %d %d dist= %d/%d",x-x0,y-y0,ld,2*sq(1024/4));) + if (ld >2*sq(1024/4)) Break; + + /* only lower side */ + for (j=i=aa[1][3];i!=aa[2][3];i=(i+1)%box1->num_frame_vectors[0]) { + if (box1->frame_vector[i][1] + <=box1->frame_vector[j][1]) j=i; /* notice most upper vector */ + } if (j==i) Break; + /* calculate the distance to the center */ + x=box1->frame_vector[j][0]; + y=box1->frame_vector[j][1]; i2=j; + if (abs(aa[0][0]+aa[1][0]+aa[2][0]+aa[3][0]-4*x)>(dx+2)) Break; + if (abs(aa[0][1]+aa[1][1]+aa[2][1]+aa[3][1]-4*y)>(dy+2)) Break; + if ( aa[1][1]+aa[2][1]-2*y<=0) Break; + /* check if lower left and center point are joined directly */ + ld=line_deviation(box1, aa[1][3], j); + MSG(fprintf(stderr," 1-X %d %d dist= %d/%d",x-x0,y-y0,ld,2*sq(1024/4));) + if (ld >2*sq(1024/4)) Break; + /* check if lower right and center point are joined directly */ + ld=line_deviation(box1, j, aa[2][3]); + MSG(fprintf(stderr," X-2 %d %d dist= %d/%d",x-x0,y-y0,ld,2*sq(1024/4));) + if (ld >2*sq(1024/4)) Break; + + /* only right side */ + for (j=i=aa[2][3];i!=aa[3][3];i=(i+1)%box1->num_frame_vectors[0]) { + if (box1->frame_vector[i][0] + <=box1->frame_vector[j][0]) j=i; /* notice most left vector */ + } if (j==i) Break; + /* calculate the distance to the center */ + x=box1->frame_vector[j][0]; + y=box1->frame_vector[j][1]; i3=j; + if (abs(aa[0][0]+aa[1][0]+aa[2][0]+aa[3][0]-4*x)>(dx+2)) Break; + if (abs(aa[0][1]+aa[1][1]+aa[2][1]+aa[3][1]-4*y)>(dy+2)) Break; + if ( aa[2][0]+aa[3][0]-2*x<=0) Break; + if ( aa[3][0] <= x ) Break; + if ( aa[2][0] < x ) Break; + if ( aa[2][0] <= x ) ad=99*ad/100; + if (dx-(x-x0)2*sq(1024/4)) Break; + /* check if upper right and center point are joined directly */ + ld=line_deviation(box1, j, aa[3][3]); + MSG(fprintf(stderr," X-3 %d %d dist= %d/%d",x-x0,y-y0,ld,2*sq(1024/4));) + if (ld >2*sq(1024/4)) Break; + + /* only upper side */ + for (j=i=aa[3][3];i!=aa[0][3];i=(i+1)%box1->num_frame_vectors[0]) { + if (box1->frame_vector[i][1] + >=box1->frame_vector[j][1]) j=i; /* notice lowest vector */ + } if (j==i) Break; + /* calculate the distance to the center */ + x=box1->frame_vector[j][0]; + y=box1->frame_vector[j][1]; i4=j; + if (abs(aa[0][0]+aa[1][0]+aa[2][0]+aa[3][0]-4*x)>(dx+2)) Break; + if (abs(aa[0][1]+aa[1][1]+aa[2][1]+aa[3][1]-4*y)>(dy+2)) Break; + if ( aa[3][1]+aa[0][1]-2*y>=0) Break; + /* check if upper left and center point are joined directly */ + ld=line_deviation(box1, aa[3][3], j); + MSG(fprintf(stderr," 3-X %d %d dist= %d/%d",x-x0,y-y0,ld,2*sq(1024/4));) + if (ld >2*sq(1024/4)) Break; + /* check if lower left and center point are joined directly */ + ld=line_deviation(box1, j, aa[0][3]); + MSG(fprintf(stderr," X-0 %d %d dist= %d/%d",x-x0,y-y0,ld,2*sq(1024/4));) + if (ld >2*sq(1024/4)) Break; + + // center crossing of diagonal lines is small? + if (box1->frame_vector[i3][0] - box1->frame_vector[i1][0] > dx/2) Break; + + if (gchar) ad=99*ad/100; + bc='x'; if(hchar) bc='X'; + Setac(box1,bc,ad); + break; + } + // --- test \it x --------------------------------------------------- +#if 0 + for(ad=d=99;dx>4 && dy>4;){ // min 3x4 + DBG( wchar_t c_ask='x'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + if( get_bw(x0,x0+dx/4,y0+dy/2,y0+dy/2,box1->p,cs,1) != 0 ) Break; + if( get_bw(x1-dx/4,x1,y0+dy/2,y0+dy/2,box1->p,cs,1) != 0 ) Break; + if( num_cross(x0+dx/4,x1-dx/4,y0+dy/2,y0+dy/2, box1->p,cs) != 1 ) Break; + if( num_cross(x0,x1,y0+dy/4,y0+dy/4, box1->p,cs) != 3 + && num_cross(x0,x1,y0+dy/8,y0+dy/8, box1->p,cs) < 3 ) Break; + if( num_cross(x0,x1,y1-dy/4,y1-dy/4, box1->p,cs) != 3 + && num_cross(x0,x1,y1-dy/8,y1-dy/8, box1->p,cs) < 3 ) Break; + if( gchar ) ad=97*ad/100; + if( hchar ) ad=96*ad/100; + bc='x'; + Setac(box1,bc,ad); + break; + } +#endif + return box1->c; +} + +static wchar_t ocr0_yY(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + pix *bp=sdata->bp; + int i,j,d,x,y,hchar=sdata->hchar,gchar=sdata->gchar, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1,cs=sdata->cs; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + ad,xa,ya,xb,yb,xc,yc,xd,yd; /* tmp-vars */ + wchar_t bc=UNKNOWN; + + // --- test italic yY -------------------------------------------- + for(ad=d=100;dx>2 && dy>3;){ // min 3x4 + DBG( wchar_t c_ask='y'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + if (sdata->holes.num > 0) ad=97*ad/100; + if( num_cross(0,dx-1,dy/8,dy/8,bp,cs) < 2 + && num_cross(0,dx-1, 1, 1,bp,cs) < 2 ) Break; + if( num_cross(0,dx-1,dy-1,dy-1,bp,cs) != 1 + && num_cross(0,dx-1,dy-2,dy-2,bp,cs) != 1 ) Break; + if( num_cross(dx-1,dx-1,0,dy-1,bp,cs) != 1 + && num_cross(dx-2,dx-2,0,dy-1,bp,cs) != 1 ) Break; + if( num_cross(dx/3,dx/3,dy/4,dy-1,bp,cs) != 2 + && num_cross(dx/2,dx/2,dy/4,dy-1,bp,cs) != 2 ) Break; + for(yc=y=0,xc=x=dx/4;xy){ yc=y=i;xc=x; } + } if( y>12*dy/16 || y<3*dy/8 ) Break; + ya=dy/8; xa=xc-loop(bp,xc,ya,dx,cs,0,LE); if(xa< 0) Break; + yb=dy/8; xb=xc+loop(bp,xc,yb,dx,cs,0,RI); if(xb>=dx) Break; + for(y=dy/8;y6*dx/8) ad=99*ad/100; // why this??? + if (loop(bp,dx-1,dy-1,dx,cs,0,LE)<1) Break; + // printf(" abcd=%d %d %d %d %d %d %d %d -",xa,ya,xb,yb,xc,yc,xd,yd); + if( get_line2(xb,yb,xd,yd,bp,cs,100)<95 ) Break; + // if( get_line2(xc,yc,xd,yd,bp,cs,100)<95 ) Break; + // printf("ok"); + bc='y'; + if(gchar && !hchar) bc='y'; else + if(hchar && (!gchar || dy<14)) bc='Y'; else ad=98*ad/100; // SMALL-CAPS ??? + Setac(box1,bc,ad); + break; + } + // --- test yY --------------------------------------------------- + for(ad=d=100;dx>2 && dy>3;){ // min 3x4 + DBG( wchar_t c_ask='y'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + if( get_bw(x0,x0,y1-dy/8,y1,box1->p,cs,1) == 1 ) { + if( get_bw(x0,x0+4*dx/8,y0+dy/8,y0+dy/8,box1->p,cs,1) != 1 ) Break; + } else { + if( get_bw(x0,x0+3*dx/8,y0+dy/8,y0+dy/8,box1->p,cs,1) != 1 ) Break; + } + if( num_cross(0,dx-1,dy/8,dy/8,bp,cs) != 2 + && num_cross(0,dx-1, 1, 1,bp,cs) != 2 ) Break; + if( num_cross(dx/2,dx/2,0, 1,bp,cs) != 0 ) Break; + if( num_cross(0,dx-1,dy-1,dy-1,bp,cs) != 1 + && num_cross(0,dx-1,dy-2,dy-2,bp,cs) != 1 ) Break; + if( num_cross(dx-1,dx-1,0,dy-1,bp,cs) != 1 + && num_cross(dx-2,dx-2,0,dy-1,bp,cs) != 1 + && num_cross(dx-dx/8-1,dx-dx/8-1,0,dy-1,bp,cs) != 1 ) Break; + if( loop(bp,dx-1,dy-1-dy/8,dx,cs,0,LE)+dx/8+1 // Jul00 + < loop(bp, 0,dy-1-dy/8,dx,cs,0,RI) ) Break; + for(y=0,x=dx/4;xy) y=i; + } if( y>10*dy/16 || y<2*dy/8 ) Break; + for(xc=xb=xa=dx,yc=yb=ya=y=0;ydy/8) Break; + for(i=dx,yc=y=dy/4;y<3*dy/4;y++){ + if( num_cross(0,dx-1,y,y,bp,cs) < 2 ) break; + x =loop(bp,dx-1 ,y,dx,cs,0,LE); + x+=loop(bp,dx-1-x,y,dx,cs,1,LE); + j =loop(bp,dx-1-x,y,dx,cs,0,LE); if(j<=i){ i=j;yc=y;xc=dx-1-x-j/2; } + } yc+=dy/16+1; + yc+=loop(bp,xc,yc,i,cs,1,DO)/2; + xa+= loop(bp,xa ,ya,dx,cs,1,RI)/2; + xb=dx-1-loop(bp,dx-1,yb,dx,cs,1,LE)/2; + yd=dy-1-dy/8;xd=dx-1-loop(bp,dx-1,yd,dx,cs,0,LE); if(xd>6*dx/8) Break; + /* check for serife at lower end */ + for (i=0,x=dx-1;ix+dx/16+1) break; /* detect serif */ + if (j=5*dy/8 && !gchar) + if( get_line2(xa,ya,xd ,yd,bp,cs,100)>95 ) + if( get_line2(xb,yb,xd ,yd,bp,cs,100)>95 ) + { if (dx>4) { Break; } else ad=ad*98/100; } // ~V + xa=loop(bp,0,dy/8,dx,cs,0,RI); + xb=loop(bp,0,dy/2,dx,cs,0,RI); + xc=loop(bp,0,dy-1,dx,cs,0,RI); + if( 2*xb< xa+xc ) ad=98*ad/100; // ~V + if( 2*xb<=xa+xc ) ad=98*ad/100; + if( 2*xb<=xa+xc+1 ) ad=98*ad/100; + + bc='y'; + if ((!gchar) && (!hchar)) ad=98*ad/100; + if(y0m2-(box1->m2-box1->m1)/4) + { bc='Y'; if(gchar) ad=98*ad/100; } + // SMALL-CAPS ??? + Setac(box1,bc,ad); + break; + } + return box1->c; +} + +static wchar_t ocr0_zZ(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + int i1,i2,i3,i4,i5,dbg[9], + d,x,y,hchar=sdata->hchar,gchar=sdata->gchar, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + (*aa)[4]=sdata->aa, /* the for line ends, (x,y,dist^2,vector_idx) */ + ad; /* tmp-vars */ + wchar_t bc=UNKNOWN; + + // --- test zZ ------- + for(ad=d=100;dx>3 && dy>3;){ // dy>dx + DBG( wchar_t c_ask='z'; ) /* for debugging purpose */ + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + if (sdata->holes.num > 0) ad=98*ad/100; /* # */ + /* half distance to the center */ + d=2*sq(128/4); + /* now we check for the 4 edges of the z */ + if (aa[0][2]>d) Break; + if (aa[1][2]>d) Break; + if (aa[2][2]>d) Break; + if (aa[3][2]>d) Break; + if (aa[3][0]-aa[0][0]dy/8) ad=99*ad/100; + if (aa[0][1]-y0>dy/8) ad=99*ad/100; + if (2*dx2*sq(1024/4)) Break; + ad=(100-(d-sq(1024)/2)/sq(1024)/4)*ad/100; + d=line_deviation(box1, aa[1][3], aa[2][3]); if (d>2*sq(1024/4)) Break; + + /* search uppermost right > from left side */ + i1=nearest_frame_vector(box1,aa[0][3],aa[1][3], x1, y0); + x=box1->frame_vector[i1][0]; + y=box1->frame_vector[i1][1]; + if (y-y0 > 5*dy/8) Break; + if (x-x0 < 3*dx/8) Break; + if (x-aa[0][0]<=dx/4) Break; // ~lI + if (x-aa[0][0]<=dx/3) ad=98*ad/100; // ~lI + if (x-aa[0][0]< dx/2) ad=99*ad/100; // ~lI, dx/2 for fat 8x10 font + /* search most right > ~2 from left side */ + i3=nearest_frame_vector(box1,aa[0][3],aa[1][3], x1+2*dx, (y0+y1)/2); + MSG(fprintf(stderr,"i23xy= %d %d %d %d ad %d",x-x0,y-y0,box1->frame_vector[i3][0]-x0,box1->frame_vector[i3][1]-y0,ad);) + /* dy=7 i3.y=2 for fat screen font (Apr09) */ + if ( box1->frame_vector[i3][1]-y0> (dy+2)/4 + && box1->frame_vector[i3][0]-x>= 0) Break; + if ( box1->frame_vector[i3][1]-y> dy/8+1 // +1 needed for 5x7 Z Jul09 + && box1->frame_vector[i3][0]-x>=-dx/8) ad=98*ad/100; + if ( box1->frame_vector[i3][1]-y> dy/8+1 + && box1->frame_vector[i3][0]-x>= 0) ad=97*ad/100; + if ( box1->frame_vector[i3][1]-y> dy/16+1) ad=99*ad/100; // 9x10 ~2 + if (box1->frame_vector[i3][0]-aa[0][0] + < aa[3][0]-box1->frame_vector[i3][0]) Break; // ~lI + if (box1->frame_vector[i3][0]-aa[0][0] + <(aa[3][0]-box1->frame_vector[i3][0]-1)*2) ad=98*ad/100; // ~lI + /* better test for a bow or peaked angle */ + /* upper part of a 2, on a Z a and b should be at c + .....$@@@@@@a...c. o1 (o1-a)=(dx+5)^2 =dx^2+10*dx+25 + ...$$@@@@@@@@@.... (o1-b)=(dx+1)^2+4^2=dx^2+ 2*dx+18 + ..$@@$@@@$@@@@@... + ..@@@.....$$@@@@.. + ..@@.......@$@@@b. + ..$.........$@@@@. + .$$..........$@@@. + .$...........@@@@. + .............@@@@.< + .............$@@$. + ............$@@@.. + ............@@$... + ............$@$... + --- snip ---- + */ + i4=nearest_frame_vector(box1,aa[2][3],aa[0][3], x1+dx, y0); + i5=nearest_frame_vector(box1,aa[2][3],aa[0][3], x1, y0-dx); + d=sq(box1->frame_vector[i5][0]-box1->frame_vector[i4][0]) + +sq(box1->frame_vector[i5][1]-box1->frame_vector[i4][1]); + if (d>2*sq(dx/8+1)) Break; + if (d>0 && dx<8 ) ad=99*ad/100; // 7x10 2 ~Z + if (d>1 && dx<16) ad=98*ad/100; // 9x10 2 ~Z d=2 + MSG( fprintf(stderr,"i45xy %d %d d %d ad %d upper right bow?",i4,i5,d,ad); ) + + /* check if upper left and upper right point are joined directly */ + dbg[0]=d=line_deviation(box1, aa[0][3], i1); if (d >2*sq(1024/4)) Break; + /* check if lower right and upper left point are joined directly */ + dbg[1]=d=line_deviation(box1, i1, aa[1][3]); if (d >2*sq(1024/4)) Break; + + /* search lowest left < from right side */ + i2=nearest_frame_vector(box1,aa[2][3],aa[3][3], x0, y1); + x=box1->frame_vector[i2][0]; + y=box1->frame_vector[i2][1]; + if (y-y0 < 3*dy/8) Break; + if (x-x0 > 5*dx/8) Break; + if (aa[2][0]-x<=dx/4) Break; // ~lI + if (aa[2][0]-x<=dx/3) ad=98*ad/100; // ~lI + if (aa[2][0]-x< dx/2) ad=99*ad/100; // ~lI, dx/2 for 9x7 fat3 z + /* check if upper right and lower left point are joined directly */ + dbg[2]=d=line_deviation(box1,i2, aa[3][3]); + MSG(fprintf(stderr,"left diag line? d= %d krit= 2..3*%d",d,sq(1024/4));) + if ( d >3*sq(1024/4)) Break; + if (dx>9 && d >2*sq(1024/4)) Break; // to strong for 5x7 Z + /* check if lower left and lower right point are joined directly */ + dbg[3]=d=line_deviation(box1, aa[2][3],i2); if (d >2*sq(1024/4)) Break; + + MSG( fprintf(stderr," i12 %d %d ad %d", i1, i2, ad); ) + /* upper right nick - lower left nick, 0 for fat screen fonts 8x10 */ + if (box1->frame_vector[i1][0] + -box1->frame_vector[i2][0]frame_vector[i1][0]-x0,box1->frame_vector[i1][1]-y0,\ + box1->frame_vector[i2][0]-x0,box1->frame_vector[i2][1]-y0,\ + dbg[0], dbg[1], dbg[2], dbg[3], sq(1024)/16, ad);) + ad=(100-dbg[0]/sq(1024/4))*ad/100; + ad=(100-dbg[1]/sq(1024/4))*ad/100; + ad=(100-dbg[2]/sq(1024/4))*ad/100; + ad=(100-dbg[3]/sq(1024/4))*ad/100; + + if ( gchar) ad=98*ad/100; + bc='z'; + if( hchar ) bc='Z'; + Setac(box1,bc,ad); + break; + } + return box1->c; +} + +static wchar_t ocr0_wW(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + pix *bp=sdata->bp; + int i,j,d,x,y,hchar=sdata->hchar,gchar=sdata->gchar,handwritten=0, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1,cs=sdata->cs; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + ad,ya,yb,xa,xb,xc,xd,xe,t1; /* tmp-vars */ + wchar_t ac; + + // ------- test w ~{\it w} --------------- + for(ad=d=100;dx>3 && dy>3;){ // dy<=dx + DBG( wchar_t c_ask='w'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + // xa xe + // \ xc / <=ya connected xa-xb-xc-xd-xe + // xb xd <=yb + // get two lowest points i3,i4,ya + // out_x(box1); + // ~ul ~uf + // out_x(box1); + for(y=dy/8;y< dy/2;y++) if( num_cross(0,dx-1,y,y,bp,cs)< 2 ) break; + if(y4) { /* 4x6 is to small */ + for(y=dy-1-dy/16;y>3*dy/4;y--) + if( num_cross(0,dx-1,y,y,bp,cs)==2 ) break; + if(y==3*dy/4) Break; + } + yb=y; + t1=loop(bp,0 ,dy/4,dx,cs,0,RI); + t1=loop(bp,t1,dy/4,dx,cs,1,RI); // thickness of line? + for(i=j=0 ;y> dy/4;y--) if( num_cross(0,dx-1,y,y,bp,cs)==4 ) i++; + else if( num_cross(0,dx-1,y,y,bp,cs)>=3 ) j++; + if(i+56 || dx>4)) Break; + if(i+j==0 && dx<=4){ + if (abs(loop(bp, 1,dy-1,dy,cs,0,UP) + -loop(bp,dx-2,dy-1,dy,cs,0,UP))>dy/8+1) Break; // 4x6 N + if ( ( loop(bp, 1, 0,dy,cs,0,DO)>=dy-2 + && loop(bp, 0,dy-1,dy,cs,0,UP)>0) + || ( loop(bp,dx-2, 0,dy,cs,0,DO)>=dy-2 + && loop(bp,dx-1,dy-1,dy,cs,0,UP)>0)) Break; // 4x6 UV + ad=ad*99/100; // 4x6 font + MSG(fprintf(stderr,"ad=%d",ad);) + } + if( num_cross(0,dx-1, 1, 1,bp,cs)< 2 + && num_cross(0,dx-1,dy/16,dy/16,bp,cs)< 2 ) Break; + x =loop(bp,0 ,yb,dx,cs,0,RI); + xb=loop(bp,x ,yb,dx,cs,1,RI);xb=x+xb/2; if(xb>dx/2) Break; + x =loop(bp,dx-1 ,yb,dx,cs,0,LE); + xd=loop(bp,dx-1-x,yb,dx,cs,1,LE);xd=dx-1-x-xd/2;if(xd<3*dx/8) Break; + for(y=0,xc=x=xb+1;xy){xc=x;y=i;} + if(dx>4 && !y) Break; + ya=dy-1-y; // flat + y=loop(bp,xc,ya,dy,cs,1,UP);if(y)y--; + if (dy>6 || dx>4) { // ~4x6 font + if( num_cross(0 ,xc ,ya-y ,ya-y ,bp,cs)!= 2 + && num_cross(0 ,xc ,ya-y/2,ya-y/2,bp,cs)!= 2 ) Break; + if( num_cross(xc,dx-1,ya-y ,ya-y ,bp,cs)!= 2 + && num_cross(xc,dx-1,ya-y/2,ya-y/2,bp,cs)!= 2 ) Break; + } + ya-=y/2; + x =loop(bp,0 ,1 ,dx,cs,0,RI); + xa=loop(bp,x ,1 ,dx,cs,1,RI); + if( x+xa>xb ){ // may be, here is a small but thick letter + // later add some proofs + xa=x+xa/4; + } else { + xa=x+xa/2; + } + x =loop(bp,dx-1 ,1 ,dx,cs,0,LE); + xe=loop(bp,dx-1-x,1 ,dx,cs,1,LE);xe=dx-1-x-xe/2; + MSG( fprintf(stderr,"a-e: %d %d %d %d %d %d %d %d %d %d", + xa,1,xb,yb,xc,ya,xd,yb,xe,1);) + if (ya94 ) break; + if (x==xa+i) Break; // no vert. line found + if( get_line2(xb,yb-1,xc,ya ,bp,cs,100)<95 + && get_line2(xb,yb-1,xc,ya+dy/32,bp,cs,100)<95 + && get_line2(xb,yb-1,xc,ya+dy/16,bp,cs,100)<95 ) Break; + if( get_line2(xc, ya,xd, yb,bp,cs,100)<95 + && get_line2(xc+1,ya,xd, yb,bp,cs,100)<95 ) Break; + if( get_line2(xd,yb,xe ,1+dy/16,bp,cs,100)<95 + && get_line2(xd,yb,dx-1 ,1+dy/8 ,bp,cs,100)<95 // round w + && get_line2(xd,yb,xe+dx/20,1+dy/16,bp,cs,100)<95 ) Break; + // if( num_hole(0,dx-1,0,dy-1,bp,cs,NULL) != 0 ) Break; + // ~ur + MSG(fprintf(stderr,"ad=%d",ad);) + for(i=0,y=5*dy/8;yi ) i=x; if( x3 && dy>3;){ // dy<=dx 4x6font (like a H with fat bar) + DBG( wchar_t c_ask='w'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + // ~ul ~uf + if( num_cross(0,dx-1,dy/2,dy/2,bp,cs)<2 ) Break; + if( num_cross(0,dx-1,dy/8,dy/8,bp,cs)<2 ) handwritten=40; + if( num_cross(0,dx-1,dy/4,dy/4,bp,cs)<2 ) handwritten=80; + for(i=0,y=0;ydx/2) Break; + xb=loop(bp,x ,yb,dx,cs,0,RI);xb=x+xb/2; if(xb>dx/2) Break; + x =loop(bp,dx-1 ,yb,dx,cs,0,LE); + x+=loop(bp,dx-1-x,yb,dx,cs,1,LE); + xd=loop(bp,dx-1-x,yb,dx,cs,0,LE);xd=dx-1-x-xd/2;if(xd<3*dx/8) Break; + if( num_cross(xb,xd,yb,yb ,bp,cs)!= 1 ) Break; + if( num_cross(xb,xb,yb,dy-1,bp,cs)!= 1 ) Break; + if( num_cross(xd,xd,yb,dy-1,bp,cs)!= 1 ) Break; + if( num_cross(xb,xb, 0,yb ,bp,cs)!= 0 ) Break; + if( num_cross(xd,xd, 0,yb ,bp,cs)!= 0 ) Break; + // if( num_hole(0,dx-1,0,dy-1,bp,cs,NULL) != 0 ) Break; + if (sdata->holes.num != 0) Break; + // ~ur + for(i=0,y=3*dy/4;yi ) i=x; if( xc; +} + +static wchar_t ocr0_aA(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + pix *bp=sdata->bp; + int i,d,x,y,i1,i2,i3,i4,hchar=sdata->hchar,gchar=sdata->gchar, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1,cs=sdata->cs; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + ad,ya; /* tmp-vars */ + + // --- test A --------------------------------------------------- + for(ad=d=100;dx>2 && dy>3;){ // min 3x4 + DBG( wchar_t c_ask='A'; ) + if (sdata->holes.num > 2) Break; /* tolerant against a tiny hole */ + // first selection (rough sieve) + if( get_bw(dx/2 ,dx/2 ,dy-1-dy/8,dy-1,bp,cs,1) == 1 + && get_bw(dx/2-1,dx/2-1,dy-1-dy/8,dy-1,bp,cs,1) == 1 ) Break; // ~B + ya=0; /* upper end, not 0 for modified A etc. */ + if (box1->modifier) + for (ya=0;ya=dy/2) ya=0; // already subtracted? + if( num_cross(0,dx-1,ya+ 1 ,ya+ 1 ,bp,cs)!=1 // 600dpi + && num_cross(0,dx-1,ya+ dy/8 ,ya+ dy/8 ,bp,cs)!=1 + && num_cross(0,dx-1,ya+ dy/16 ,ya+ dy/16 ,bp,cs)!=1 + && num_cross(0,dx-1,ya+ dy/8+1,ya+ dy/8+1,bp,cs)!=1 ) Break; + if( num_cross(0,dx-1, 7*dy/8 , 7*dy/8 ,bp,cs)!=2 + && num_cross(0,dx-1, 7*dy/8-1, 7*dy/8-1,bp,cs)!=2 ) Break; + if ( num_cross( 0,dx/8,ya+dy/8,ya+0,bp,cs)>0 ) Break; // ~R + for(y=ya+dy/8;y 1 ) break; + if( y==ya+dy/2 ) Break; i1=y; + if (dy>20) i1++; /* get arround some noise fat font */ + + x =loop(bp,0,i1,dx,cs,0,RI); if(x>3*dx/4) Break; + x+=loop(bp,x,i1,dx,cs,1,RI); if(x>3*dx/4) Break; i2=x; + x+=loop(bp,x,i1,dx,cs,0,RI); if(x<3*dx/8) Break; i2=(x+i2)/2; + // hole (i2,i1) + y+=loop(bp,i2,y,dy,cs,1,DO); + y+=loop(bp,i2,y,dy,cs,0,DO); if(y>3*dy/4) ad=ad*99/100; + if (y>5*dy/6) { MSG(fprintf(stderr,"x,y,i1,i2= %d %d %d %d",x,y,i1,i2);) } + if (y>5*dy/6) Break; + + if( sdata->holes.num != ((box1->modifier==RING_ABOVE)?2:1) + || sdata->holes.hole[0].y1-ya >= dy-1-dy/4) Break; + // if( num_hole ( x0, x1, y0, y1-dy/4 ,box1->p,cs,NULL) != 1 ) Break; + // out_x(box1); + i3=0;i4=0; + for(x=dx/3;x<2*dx/3;x++){ + i4=num_cross(i2,x,y ,dy-1,bp,cs);if(i4<1 || i4>2) + i4=num_cross(i2,x,y+dy/16,dy-1,bp,cs);if(i4<1 || i4>2) break; + if(i4==1) i3=x; + } if(i4<1 || i4>2 || i3==0){ +// ToDo: MSG(fprintf(stderr,"x,y,i4,i3= %d %d %d %d",x,y,i4,i3);) + Break; + } + if( get_bw(dx-1-dx/4, dx-1, dy-1-dy/4, dy-1, bp,cs,1) != 1 ) Break; + + i1=loop(bp,dx-1,ya+ (dy-ya)/4,dx,cs,0,LE); + i2=loop(bp,dx-1,ya+ (dy-ya)/2,dx,cs,0,LE); + i3=loop(bp,dx-1,dy-1-(dy-ya)/4,dx,cs,0,LE); + if( 2*i2-dx/8>i1+i3 ) ad=99*ad/100; /* 6*8 font */ + if( 2*i2+dx/4i1+i3 ) Break; + + i1=loop(bp,0 ,ya+ (dy-ya)/4,dx,cs,0,RI); // linke senkr. linie + i2=loop(bp,0 ,ya+ (dy-ya)/2,dx,cs,0,RI); + i3=loop(bp,0 ,dy-1-(dy-ya)/4,dx,cs,0,RI); + if( 2*i2-dx/8>i1+i3 ) ad=98*ad/100; /* 6*8 font */ + if( 2*i2+dx/4i1+i3 || i1i3+dx/16) break; if( i1+120) ad=97*ad/100; // italic-a + + if (!hchar) ad=99*ad/100; // italic-a + Setac(box1,'A',ad); + break; + } + // --- test a ------------------------------------------- + // with a open bow above the circle starting + // on the right side of the circle + for(ad=d=100;dx>2 && dy>3;){ // min 3x4 + DBG( wchar_t c_ask='a'; ) + if (sdata->holes.num > 2) Break; /* tolerant against a tiny hole */ + if( get_bw(x0 , x0+dx/2, y1-dy/3, y1-dy/3,box1->p,cs,1) != 1 ) Break; + if( get_bw(x1-dx/3, x1 , y0+dy/3, y0+dy/3,box1->p,cs,1) != 1 ) Break; + if( get_bw(x1-dx/3, x1 , y0+dy/4, y0+dy/4,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/2, x0+dx/2, y1-dy/3, y1, box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/2, x0+dx/2, y0 , y0+dy/3,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/3, x1-dx/3, y0 , y0 ,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/4, x1-dx/2, y1 , y1 ,box1->p,cs,1) != 1 ) + if( get_bw(x0+dx/4, x1-dx/3, y1-1 , y1-1 ,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0 , x0 , y0+dy/2, y1 ,box1->p,cs,1) != 1 ) + if( get_bw(x0+dx/8, x0+dx/8, y0+dy/2, y1 ,box1->p,cs,1) != 1 ) Break; + if( loop(bp,3*dx/8,0,dy,cs,0,DO) > 3*dy/16 ) Break; // ~d + if( num_cross(0,dx-1,dy/4 ,dy/4 , bp,cs) >2 // ~glued am != an + && num_cross(0,dx-1,dy/4+1,dy/4+1, bp,cs) >2 ) Break; + + for( x=dx/4;xdy/2) break; + i=loop(bp,x,dy-1,y1-y0,cs,0,UP); if (i>dy/2) break; + } if( xy-1, bp,cs) == 3 ) i--; + } if( i ) Break; + + i1=loop(bp,0, dy/8,dx,cs,0,RI); + i3=loop(bp,0,3*dy/4,dx,cs,0,RI); + for(y=dy/8+1;y<3*dy/4;y++){ + i2=loop(bp,0,y,dx,cs,0,RI);if(2*i2>i1+i3+1) break; + } if(y==3*dy/4) Break; // ~6 + // ~ s (small thick s), look for vertikal line piece + for(x=3*dx/4;xdy/4 ) break; + if( x==dx ) Break; + + if (sdata->holes.num != 1) ad=96*ad/100; else + if (sdata->holes.num == 1) + if( num_hole ( x0, x1, y0+dy/3, y1 ,box1->p,cs,NULL) != 1 ) Break; + // if( num_hole ( x0, x1, y0, y1, box1->p,cs,NULL) != 1 ) Break; + if( num_hole ( x0, x1, y0, y1-dy/3 ,box1->p,cs,NULL) != 0 ){ + i =loop(bp,0,dy/4,dx,cs,0,RI); + i =loop(bp,i,dy/4,dx,cs,1,RI); + if(ii) Break; // ~ 8 + } + /* test for horizontal symmetry ~8 */ + for (y=0;ydy/4) Break; // ~ serif d + + if (hchar) ad=96*ad/100; + if (gchar) ad=96*ad/100; + Setac(box1,'a',ad); + break; + } + // --- test hand written a --------------------------------------------------- + // rarely char, without bow above the circle + for(ad=d=100;dx>3 && dy>3;){ // min 4x4 + DBG( wchar_t c_ask='a'; ) + if (sdata->holes.num > 2) Break; /* tolerant against a tiny hole */ + if( get_bw(x0 , x0+dx/2,y0+dy/2 , y0+dy/2,box1->p,cs,1) != 1 ) Break; + if( get_bw(x1-dx/2 , x1 ,y0+dy/2 , y0+dy/2,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/2 , x0+dx/2,y1-dy/2 , y1, box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/2 , x0+dx/2,y0 , y0+dy/2,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/3 , x0+dx/3,y0 , y0+dy/2,box1->p,cs,1) != 1 ) Break; + i = loop(bp,dx/2, 0 ,dy,cs,0,DO); if (i>dy/4) Break; + i+= loop(bp,dx/2, i ,dy,cs,1,DO); if (i>dy/2) Break; + i = loop(bp,dx/2, i ,dy,cs,0,DO); if (ip,cs,1) == 1 ) Break; + + if( num_cross(x0+dx/2,x0+dx/2,y0 , y1 ,box1->p,cs) != 2 ) Break; + if( num_cross(x0+dx/3,x1-dx/3,y0 , y0 ,box1->p,cs) != 1 ) // AND + if( num_cross(x0+dx/3,x1-dx/3,y0+1 , y0+1 ,box1->p,cs) != 1 ) Break; + i = loop(bp,dx/2,dy-1 ,dy,cs,0,UP); if (i>dy/3) Break; + y = i+loop(bp,dx/2,dy-1-i,dy,cs,1,UP); if (i>dy/2) Break; + // normal 'a' has a well separated vertical line right from the circle + // but fat 'a' is like a 'o', only bigger on the right side + if( num_cross(x0+dx/2-1,x1,y1 ,y1 ,box1->p,cs) < 2 /* 4x6font */ + && num_cross(x0+dx/2-1,x1,y1-i,y1-i ,box1->p,cs) < 2 /* 2 or 3 */ + && num_cross(x0+dx/2-1,x1,y1-y,y1-y ,box1->p,cs) < 2 ) + { if (loop(bp, 0,dy-1-dy/16,dx,cs,0,RI) + <4*loop(bp,dx-1,dy-1-dy/16,dx,cs,0,LE)) { Break;} + else ad=98*ad/100; + } + if( num_cross(x0,x1,y0+dy/2 , y0+dy/2,box1->p,cs) < 2 + || num_cross(x0,x1,y0+dy/3 , y0+dy/3,box1->p,cs) < 2 ) Break; // Jun00 + + if( num_cross(x0 ,x0 ,y0+dy/3 , y1-dy/4,box1->p,cs) != 1 ) + if( num_cross(x0+1 ,x0+1 ,y0+dy/3 , y1-dy/4,box1->p,cs) != 1 ) Break; + if (sdata->holes.num != 1) + if( num_hole(x0,x1-2,y0 ,y1 ,box1->p,cs,NULL) != 1 ) + // if( num_hole(x0,x1 ,y0 ,y1 ,box1->p,cs,NULL) != 1 ) + Break; + if( num_hole(x0,x1 ,y0+dy/3,y1-1 ,box1->p,cs,NULL) != 0 ) Break; + + if( loop(bp,0 ,0 ,x1-x0,cs,0,RI)<= + loop(bp,0 ,2 ,x1-x0,cs,0,RI) ) Break; + + if( loop(bp,dx-1,dy-1,x1-x0,cs,0,LE)> dx/4 + && loop(bp,dx-1,dy-2,x1-x0,cs,0,LE)> (dx+4)/8 ) ad=97*ad/100; + + x=loop(bp,dx-1,dy-1-dy/4,dx,cs,0,LE); + i=loop(bp,dx-1, dy/4,dx,cs,0,LE); if (abs(x-i)>dx/4) Break; + + for( x=dx/4;xdy/2) break; + i=loop(bp,x,dy-1,y1-y0,cs,0,UP); if (i>dy/2) break; + } if( xp,cs) == 1 ) + if( num_cross(x0 , x1, y0, y0,box1->p,cs) == 1 ) + if( loop(bp,dx-1, 0,y1-y0,cs,0,DO)> dy/4 + && loop(bp,dx-1,dy-1,y1-y0,cs,0,UP)> dy/4 ) Break; // ~o + if( loop(bp,dx/2,dy-1,y1-y0,cs,0,UP)> dy/4 ) Break; // ~q + + if (hchar) ad=98*ad/100; + if (gchar) ad=98*ad/100; + // handwritten-a (alpha) + Setac(box1,'a',ad); + break; + } + // --- test A_A_WITH_OGONEK 0x0104 Centr.Eur.Font ------------------------- + /* not sure if we should move this to a get_CentralEuropean-function */ + for(ad=d=100;dx>2 && dy>4;){ // min 3x4 + DBG( wchar_t c_ask='A'; ) + if (sdata->holes.num > 2) break; /* tolerant against a tiny hole */ + // first selection (grobes Sieb) + if( get_bw(dx/2,dx/2,dy-1-dy/8,dy-1,bp,cs,1) == 1 ) break; // ~B + if( num_cross(0,dx-1, 1 , 1 ,bp,cs)!=1 // 600dpi + && num_cross(0,dx-1, dy/8 , dy/8 ,bp,cs)!=1 + && num_cross(0,dx-1, dy/16 , dy/16 ,bp,cs)!=1 + && num_cross(0,dx-1, dy/8+1, dy/8+1,bp,cs)!=1 ) break; + if( num_cross(0,dx-1, dy-1 , dy-1 ,bp,cs)!=1 ) break; + if( num_cross(0,dx-1, dy/4 , dy/4 ,bp,cs)!=2 + && num_cross(0,dx-1, dy/3 , dy/3 ,bp,cs)!=2 ) break; + if ( num_cross( 0,dx/8,dy/8, 0,bp,cs)>0 ) break; // ~R + for(y=dy/8;y 1 ) break; + if( y==dy/2 ) break; i1=y; + if (dy>20) i1++; /* get arround some noise fat font */ + + x =loop(bp,0,i1,dx,cs,0,RI); if(x>3*dx/4) break; + x+=loop(bp,x,i1,dx,cs,1,RI); if(x>3*dx/4) break; i2=x; + x+=loop(bp,x,i1,dx,cs,0,RI); if(x<3*dx/8) break; i2=(x+i2)/2; + // hole (i2,i1) + y+=loop(bp,i2,y,dy,cs,1,DO); + y+=loop(bp,i2,y,dy,cs,0,DO); if(y>3*dy/4) ad=ad*99/100; + if (y>5*dy/6) break; + + if( sdata->holes.num != 1 || sdata->holes.hole[0].y1 >= dy-1-dy/4) break; + // if( num_hole ( x0, x1, y0, y1-dy/4 ,box1->p,cs,NULL) != 1 ) break; + // out_x(box1); + i3=0;i4=0; + for(x=dx/3;x<2*dx/3;x++){ + i4=num_cross(i2,x,y ,dy-1,bp,cs);if(i4<1 || i4>2) + i4=num_cross(i2,x,y+dy/16,dy-1,bp,cs);if(i4<1 || i4>2) break; + if(i4==1) i3=x; + } if(i4<1 || i4>2 || i3==0){ +// ToDo: g_debug_A(printf(" A: x,y,i4,i3= %d %d %d %d\n",x,y,i4,i3);) + break; + } + if( get_bw(dx-1-dx/4, dx-1, dy-1-dy/4, dy-1, bp,cs,1) != 1 ) break; + /* dy/4 changed to dy/6 because of screenfonts */ + /* there are strange fonts, one has a serif on the upper end of A */ + if ( num_cross( 0,dx/8,dy/6, 0,bp,cs)>0 ) break; + if ( num_cross(dx-1-dx/4,dx-1, 0,dy/6,bp,cs)>0 ) break; + + i1=loop(bp,dx-1, dy/4,dx,cs,0,LE); + i2=loop(bp,dx-1, dy/2,dx,cs,0,LE); + i3=loop(bp,dx-1,dy-1-dy/4,dx,cs,0,LE); + if( 2*i2+dx/4i1+i3 ) break; + + i1=loop(bp,0 , dy/4,dx,cs,0,RI); // linke senkr. linie + i2=loop(bp,0 , dy/2,dx,cs,0,RI); + i3=loop(bp,0 ,dy-1-dy/4,dx,cs,0,RI); + if( 2*i2+dx/4i1+i3 || i1i3+dx/16) break; if( i1+12c; +} + +static wchar_t ocr0_cC(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + pix *bp=sdata->bp; + int i,j,d,x,y,i1,i2,i3,i4,i5,hchar=sdata->hchar,gchar=sdata->gchar, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1,cs=sdata->cs; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + ad,t1; /* tmp-vars */ + wchar_t bc=UNKNOWN; + + // --- test c,C --------------------------------------------------- + for(ad=d=100;dx>2 && dy>2;){ // min 3x4 + DBG( wchar_t c_ask='c'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + if( get_bw(x0 , x0+dx/3,y0+dy/2, y0+dy/2,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/2, x0+dx/2,y1-dy/3, y1, box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/2, x0+dx/2,y0 , y0+dy/3,box1->p,cs,1) != 1 ) Break; + if( num_cross(x0,(x0+x1)/2,(y0+y1)/2,(y0+y1)/2,box1->p,cs) > 1 ) Break; // ~ocr-a-[ + + for(y=y0+dy/4;yp,cs,1) == 0 ) break; + if( y==y0+3*dy/4 ) Break; i1=y; // i1: upper end of right gap + + // measure thickness of line! + t1=loop(bp, 0,dy/2,dx,cs,0,RI); + t1=loop(bp,t1,dy/2,dx,cs,1,RI); + if (t1>dx/2) Break; + + for(y=i1,i2=0,x=x0+dx/2;xp,x0+dx/2,i1,dy,cs,0,DO); + if( i>i2 ) { i2=i; } + } if(i2p,x0+5*dx/8,i1,dy,cs,0,UP); + i =i1+1-loop(box1->p,x0+4*dx/8,i1,dy,cs,0,UP); if(iy0+ dy/4+t1/2) Break; // highest, i3: highest point below top-line + + for(y=i1;yp,cs,1) == 1 ) break; + if( y-i1p,cs) < 1 ) Break; // ~L + if (loop(box1->p,x0,y0+3*dy/4,dx,cs,0,RI)>dx/16) + if( num_cross(x0+dx/2,x1,i3 ,y1,box1->p,cs) < 1 + && num_cross(x0+dx/2,x1,y1-dy/4,y1,box1->p,cs) < 1 // may fail + && num_cross(x1 ,x1,y1-dy/4,y1,box1->p,cs) < 1 ) Break; // ~r + + i=1; + for(x=dx/2;x=cs + && getpixel(bp,x+1,y )< cs + && getpixel(bp,x+1,y-1)< cs + && getpixel(bp,x ,y-1)< cs ) { i=0;break; } + } + if(!i) ad=95*ad/100; // ~G + + i=loop(bp,0,dy/2,dx,cs,0,RI); + for(y=0;y=dy/4;y--){ + x =loop(bp,0,y,dx,cs,0,RI); + x+=loop(bp,x,y,dx,cs,1,RI); if(x>i5) i5=x; + i =loop(bp,x,y,dx,cs,0,RI); if(ii4+dx/32 ) break; // unusual for c, more a bad e? + } if( y>=dy/4 ) Break; + + if( !hchar ){ // test for e where the middle line is partly removed + x= loop(bp,0,dy/2,dx,cs,0,RI); + x=x +loop(bp,x,dy/2,dx,cs,1,RI); + y=dy/2-loop(bp,x,dy/2,dy,cs,0,UP)-1; + i=x +loop(bp,x,y,dx,cs,1,RI); + i=i +loop(bp,i,y,dx,cs,0,RI); + if( num_cross(x ,x ,1,dy/2,bp,cs) > 1 + || num_cross(x+1,x+1,1,dy/2,bp,cs) > 1 ) + if( num_cross(i-1,i-1,1,dy/2,bp,cs) > 1 + || num_cross(i ,i ,1,dy/2,bp,cs) > 1 ) Break; // ~bad e + } + if( dy>16 && dy>3*dx && hchar ){ // ~[ + x= loop(bp,0, dy/16,dx,cs,0,RI); + x=+loop(bp,0,dy-1-dy/16,dx,cs,0,RI); + i= loop(bp,0, dy/2 ,dx,cs,0,RI)*2; + if( i>=x ) + if( num_cross(0,dx-1,dy/4,dy/4,bp,cs) < 2 ) Break; + + } + if( get_bw(x0,x0,y0 ,y1 ,box1->p,cs,2) != 2 + && get_bw(x0,x1,y0 ,y0 ,box1->p,cs,2) != 2 + && get_bw(x0,x1,y1 ,y1 ,box1->p,cs,2) != 2 + && get_bw(x1,x1,y0+1,y1-1,box1->p,cs,1) != 1 ) Break; /* ~[ */ + + x =loop(bp, 0,dy/2,dx,cs,0,RI); + i =loop(bp,dx-1,dy/2,dx,cs,0,LE); + if( (i7 ) + if( loop(bp, 0,7*dy/8,dx,cs,0,RI) > x+dx/8 + && loop(bp, 0, dy/8,dx,cs,0,RI) > x+dx/8 + && loop(bp,dx-1,dy-1-dy/ 8,dx,cs,0,LE) + > loop(bp,dx-1,dy-1-dy/16,dx,cs,0,LE) + && loop(bp,dx-1, dy/ 8,dx,cs,0,LE) + > loop(bp,dx-1, dy/16,dx,cs,0,LE) ) Break; // ~( + +// printf(" hchar=%d i1=%d i2=%d %d\n",hchar,i1-y0,i2-y0,9*dy/16); + // ~G without characteristic crotchet + if (hchar && dy>15 && dx>7 && i2-y0<9*dy/16 && i1-y0<=dy/4) + if ( loop(bp,5*dx/8,i2-y0,dy,cs,0,DO) > 2*dy/8 ){ + Setac(box1,'G',90); + Break; + } + + if (hchar){ + i=1; + for(x=dx/2;x=cs + && getpixel(bp,x+1,y )< cs + && getpixel(bp,x+1,y-1)< cs + && getpixel(bp,x ,y-1)< cs ) { i=0;break; } + } + if (i) ad=98*ad/100; // ~( + if (dy>2*dx) ad=99*ad/100; + } + if( loop(bp,dx-1,dy/2,dx,cs,0,LE) < 6*dx/8 ) ad=98*ad/100; + + i= loop(bp,dx-1,dy/16,dx,cs,0,LE); + j= loop(bp,dx/2,0 ,dy,cs,0,DO); + if (i>=dx/2 && j>dy/8 && j>2 && j=3*dx && dy>12) ad=99*ad/100; // ( + i= loop(bp,dx-1,dy-1,dy,cs,0,UP); + j= loop(bp,dx/2,dy-1,dy,cs,0,UP); + if (i==0 && j>dy/8) ad=95*ad/100; // < + i= loop(bp,dx-1, 0,dy,cs,0,DO); + j= loop(bp,dx/2, 0,dy,cs,0,DO); + if (i==0 && j>dy/8) ad=95*ad/100; // < + if (loop(bp,0,dy-1-dy/8,dx,cs,0,RI)>= 3*dx/4) ad=98*ad/100; // < + if (loop(bp,0,dy-1-dy/8,dx,cs,0,RI)>=(dx+1)/2) ad=98*ad/100; // < + if (loop(bp,0, dy/8,dx,cs,0,RI)>=dx/2) ad=98*ad/100; // < + + if (gchar) ad=98*ad/100; // could happen for 5x7 font + bc=((hchar)?'C':'c'); + Setac(box1,bc,ad); + break; + } + return box1->c; +} + +static wchar_t ocr0_lL(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + pix *bp=sdata->bp; + int i,j,d,x,y,i0,i1,i2,i3,i4,hchar=sdata->hchar,gchar=sdata->gchar, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1,cs=sdata->cs; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + ad; /* tmp-vars */ + + // --- test L --------------------------------------------------- + for(ad=d=100;dx>2 && dy>4;){ // min 3x4 + DBG( wchar_t c_ask='L'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + i=loop(bp,dx-1,dy/2,dx,cs,0,LE); + if (i<3 && dy>8) {Break;} + if (ip,x0 ,y,dx,cs,0,RI); + j=loop(box1->p,x0+j,y,dx,cs,1,RI); if( j>i ){ i=j;i1=y; } + } if( i<3*dx/4 ) Break; i1=i; // length of horizontal line + // line thickness (i2) + i=loop(box1->p,x0 ,y0+dy/2,dx,cs,0,RI); if( i>dx/2 ) Break; + j=loop(box1->p,x0+i,y0+dy/2,dx,cs,1,RI); if( i+j>dx/2 ) Break; i2=j; + if (loop(bp,dx-1, 0,dx,cs,0,LE)dx/2 + && loop(bp, 0,5*dy/8,dx,cs,0,RI)p,x0 ,y,dx,cs,0,RI); + if ( j>(dx+2)/4+(y1-dy/4-y)*dx/2/dy ) { i=0; break; } + x=loop(box1->p,x0+j,y,dx,cs,1,RI); + if( ((x>i2+1 || 4*x<3*i2) && y>y0+dy/8) || 4*x>3*i1 ) i=0; + } if( !i ) Break; + if( num_cross(0, dx-1-dx/8, dy-1-dy/2, dy-1-dy/2,bp,cs) != 1 ) Break; + if( num_cross(0, dx-1 , dy/3 , dy/3,bp,cs) != 1 ) Break; + if( num_cross(0, dx-1 , dy/8 , dy/8,bp,cs) != 1 ) Break; + if (loop(bp,0,dy-1,dx,cs,0,RI) + -loop(bp,0,dy-3,dx,cs,0,RI)>1+dx/16) ad=96*ad/100; // ~c + if (loop(box1->p,x0+dx/4,y1,dy,cs,0,UP)>1+dy/16) ad=99*ad/100; // ~4 + + if ( gchar) ad=98*ad/100; + if (!hchar) ad=99*ad/100; + if (5*dx<2*dy && loop(box1->p,x0,y1,dx,cs,0,RI)>dx/4) ad=99*ad/100; // ~l + Setac(box1,'L',ad); + break; + } + // --- test l --------------------------------------------------- + // recognize a "l" is a never ending problem, because there are lots of + // variants and the char is not very unique (under construction) + // --- test italic l --------------------------------------------------- + // --- test l ~italic (set flag-italic) -------------------------------- + // if unsure d should be multiplied by 80..90% + for(ad=d=100; dy>dx && dy>5;){ // min 3x4 + DBG( wchar_t c_ask='l'; ) + if( box1->dots>0 ) Break; + if( num_cross(0, dx-1,dy/2,dy/2,bp,cs) != 1 + || num_cross(0, dx-1,dy/4,dy/4,bp,cs) != 1 ) Break; + // mesure thickness + for(i1=0,i2=dx,y=dy/4;yi1 ) { i1=j; } // thickest + if( j2*i2 ) Break; + if(box1->m3 && dy<=box1->m3-box1->m2) ad=94*ad/100; + if( box1->m2-box1->m1>1 && y0>=box1->m2 ) ad=94*ad/100; + for(i0=0,i3=0,y=0;yi3 ) { i3=j; } // widest space + j = loop(bp,j,y,dx,cs,1,RI); + if( j>i0 ) { i0=j;i3=0; } // thickest + } + if ( i0>4*i2 || 3*i3>2*dx) + if ( loop(bp,dx-1,dy-1,dx,cs,0,LE)>3*dx/8 + || loop(bp, 0,dy-1,dx,cs,0,RI)>3*dx/8) Break; // ~7 + + // detect serifs + x =loop(bp,0, 0,dx,cs,0,RI); + i3=loop(bp,x, 0,dx,cs,0,RI); + x =loop(bp,0, 1,dx,cs,0,RI); + x =loop(bp,x, 1,dx,cs,0,RI); if(x>i3) i3=x; + x =loop(bp,0,dy-1,dx,cs,0,RI); + i4=loop(bp,x,dy-1,dx,cs,0,RI); + x =loop(bp,0,dy-2,dx,cs,0,RI); + x =loop(bp,x,dy-2,dx,cs,0,RI); if(x>i4) i4=x; + if( i3>i1+dx/8+1 && i4>i1+dx/8+1 ) Break; // ~I + + for(i=dx,j=0,y=1;yi+1) break; i=x; + if( num_cross(0,dx-1,y ,y ,bp,cs)==2 + && num_cross(0,dx-1,y+1+dy/32,y+1+dy/32,bp,cs)==2 ) j=1; + } if ( y3) + if( get_bw(dx-1-dx/8,dx-1,0,dy/6,bp,cs,1) != 1 ) + if( get_bw(dx-1-dx/8,dx-1,0,dy/2,bp,cs,1) == 1 ) Break; + + if( get_bw(dx-1-dx/8,dx-1,dy/4,dy/3,bp,cs,1) != 1 ) // large I ??? + if( get_bw(0 ,dx/8,dy/4,dy/3,bp,cs,1) != 1 ) + if( get_bw(dx-1-dx/8,dx-1,0 ,dy/8,bp,cs,1) == 1 ) + if( get_bw(0 ,dx/8,0 ,dy/8,bp,cs,1) == 1 ) ad=ad*97/100; + if( get_bw(dx-1-dx/8,dx-1,dy/2,dy-1,bp,cs,1) != 1 ) // r ??? + if( get_bw(0 ,dx/8,dy/2,dy-1,bp,cs,1) == 1 ) + if( get_bw(dx-1-dx/8,dx-1,0 ,dy/3,bp,cs,1) == 1 ) + if( get_bw(0 ,dx/8,0 ,dy/3,bp,cs,1) == 1 ) Break; + + for( y=1;y<12*dy/16;y++ ) + if( num_cross(0, dx-1, y , y ,bp,cs) != 1 // sure ? + && num_cross(0, dx-1, y-1, y-1,bp,cs) != 1 ) break; + if( y<12*dy/16 ) Break; + + if(dx>3){ + for( y=dy/2;yy-1-5*dy/16;y>=dy/5;y--){ // rechts abfallende Kante/Knick? + i=loop(bp,bp->x-1,y,x1-x0,cs,0,LE); + if( i-2-dx/16>=x ) break; + if( i=dy/5 ) Break; + + // test ob linke Kante gerade + for(x=0,y=bp->y-1-dy/5;y>=dy/5;y--){ // rechts abfallende Kante/Knick? + i=loop(bp,0,y,x1-x0,cs,0,RI); + if( i+2+dx/16x ) x=i; + } + if (y>=dy/5 ) Break; + if (box1->m4 && y1m4) + if ( get_bw(x0,x1,y1+1,box1->m4+dy/8,box1->p,cs,1) == 1 ) + ad=ad*97/100; // unsure !l| + i=loop(bp,dx-1,dy/16,dx,cs,0,LE); + j=loop(bp,dx-1,dy/2 ,dx,cs,0,LE); + if( i>3 && j>3 ) + if( get_bw(dx-1-i/2,dx-1-i/2,0,dy/2,bp,cs,1) == 1 ) Break; // ~t + + for(y=5*dy/8;y8 + && loop(bp, 0,3*dy/4,dx,cs,0,RI)>=dx/4 + && loop(bp, 0,7*dy/8,dx,cs,0,RI)<=dx/8 + && loop(bp,dx-1,3*dy/4,dx,cs,0,LE)<=dx/8 + && loop(bp,dx-1,7*dy/8,dx,cs,0,LE)<=dx/8 ) Break; // ~J + + if ( 2*i3>5*i1 ) // hmm \tt l can look very similar to 7 + if ( loop(bp,0,dy/4,dx,cs,0,RI)>dx/2 + && get_bw(0,dx/8,0,dy/4,bp,cs,1) == 1 ) Break; // ~7 + + if ( loop(bp,dx-1,dy/2,dx,cs,0,LE)>dx/2 + && get_bw(3*dx/4,dx-1,3*dy/4,dy-1,bp,cs,1) == 1) { + if (loop(bp,0,dy-1,dx,cs,0,RI)2*dy) ad=99*ad/100; // ~L + if(5*dx>3*dy) ad=99*ad/100; // ~L + } + if(!hchar){ // right part (bow) of h is never a l + if( get_bw(dx/4,dx/4, 0,dy/4,bp,cs,1) == 1 + && get_bw(dx/4,dx/4,dy/2,dy-1,bp,cs,1) == 0 ) Break; + } + if( dx>3 && dy>3*dx ) + if( loop(bp,dx/4,dy-1 ,dy,cs,0,UP)< dy/4 + && loop(bp, 0,dy-1-dy/8,dx,cs,0,RI)>=dx/2 + && loop(bp,dx-1,dy-1-dy/8,dx,cs,0,LE)<=dx/4 ){ + ad=98*ad/100; // ~] + if ( loop(bp,dx-1,dy/2,dx,cs,0,LE)==0 ) Break; + } + + for(x=0;xi ) break; + } + if( x>=loop(bp,0,y+1,dx,cs,0,RI) ) + if( loop(bp,0 ,0,dy,cs,0,DO)>1 ) + if( loop(bp,0 ,0,dy,cs,0,DO) + - loop(bp,dx/16+1,0,dy,cs,0,DO) < dx/16+1 ) Break; // ~1 Jul00,Nov00 + if( num_cross(0,dx/2,y-1,y-1,bp,cs)==2 ) Break; // ~1 + } + if(dx<8 && dy<12){ // screen font + i= loop(bp,0,0,dy,cs,0,DO); + if( loop(bp,dx/2,1,dy,cs,1,DO)>=dy-2 + && loop(bp,0,dy/2,dx,cs,0,RI)>=2 + && i>1 && ip,cs,2) != 2 + && get_bw(x0,x1,y0 ,y0 ,box1->p,cs,2) != 2 + && get_bw(x0,x1,y1 ,y1 ,box1->p,cs,2) != 2 + && get_bw(x0,x0+dx/4,y0+1+dy/16,y1-1-dy/16,box1->p,cs,1) != 1 ) Break; /* ~] */ + i=loop(bp,dx-1,dy/2,dx,cs,0,LE); + if( loop(bp, 0,dy/2,dx,cs,0,RI)>=dx/2 + && (ip,cs,2) != 2 + && get_bw(x0,x1,y0 ,y0 ,box1->p,cs,2) != 2 + && get_bw(x0,x1,y1 ,y1 ,box1->p,cs,2) != 2 + && get_bw(x1-dx/4,x1,y0+1+dy/16,y1-1-dy/16,box1->p,cs,1) != 1 ) Break; /* ~[ */ + + x =loop(bp, 0,dy/2,dx,cs,0,RI); // konvex/konkav? ~() + i =loop(bp,dx-1,dy/2,dx,cs,0,LE); + if( loop(bp, 0,7*dy/8,dx,cs,0,RI) > x+dx/8 + && loop(bp, 0, dy/8,dx,cs,0,RI) > x+dx/8 + && loop(bp,dx-1,7*dy/8,dx,cs,0,LE) < i-dx/8 + && loop(bp,dx-1, dy/8,dx,cs,0,LE) < i-dx/8 ) Break; // ~( + if( loop(bp, 0,7*dy/8,dx,cs,0,RI) < x-dx/8 + && loop(bp, 0, dy/8,dx,cs,0,RI) < x-dx/8 + && loop(bp,dx-1,7*dy/8,dx,cs,0,LE) > i+dx/8 + && loop(bp,dx-1, dy/8,dx,cs,0,LE) > i+dx/8 ) Break; // ~) + + i= loop(bp, 0, 0,dy,cs,0,DO); // horizontal line? + if(dy>=12 && i>dy/8 && iloop(bp,dx-1, i,dx,cs,0,LE) + || loop(bp,dx-1,3*dy/16,dx,cs,0,LE)-dx/8 + >loop(bp,dx-1, i+1,dx,cs,0,LE) ) + if( loop(bp,dx-1,8*dy/16,dx,cs,0,LE)-dx/8 + >loop(bp,dx-1, i,dx,cs,0,LE) + || loop(bp,dx-1,8*dy/16,dx,cs,0,LE)-dx/8 + >loop(bp,dx-1, i+1,dx,cs,0,LE) ) + if( loop(bp, 0,3*dy/16,dx,cs,0,RI)-dx/8 + >loop(bp, 0, i,dx,cs,0,RI) + || loop(bp, 0,3*dy/16,dx,cs,0,RI)-dx/8 + >loop(bp, 0, i+1,dx,cs,0,RI) ) + if( loop(bp, 0,8*dy/16,dx,cs,0,RI)-dx/8 + >loop(bp, 0, i,dx,cs,0,RI) + || loop(bp, 0,8*dy/16,dx,cs,0,RI)-dx/8 + >loop(bp, 0, i+1,dx,cs,0,RI) ) Break; // ~t + if( loop(bp, 0,i-1,dx,cs,0,RI)>1 && dx<6 ) Break; // ~t + if( loop(bp, 0,8*dy/16,dx,cs,0,RI)>dx/8 + && loop(bp, 0, i,dx,cs,1,RI)>=dx-1 + && loop(bp,dx-1,8*dy/16,dx,cs,0,LE)>dx/8 + && loop(bp,dx-1, i-1,dx,cs,0,LE)>dx/8 ) Break; // ~t + } +// if( vertical_detected && dx>5 ) + if( loop(bp,0, 1,dx,cs,0,RI)>=dx/2 + && ( loop(bp,0,dy-2,dx,cs,0,RI)<=dx/8 + || loop(bp,0,dy-1,dx,cs,0,RI)<=dx/8 ) ) + if( ( loop(bp,dx-1, 0,dx,cs,0,LE)<=dx/8 + || loop(bp,dx-1, 1,dx,cs,0,LE)<=dx/8 ) + && loop(bp,dx-1,dy-2,dx,cs,0,LE)>=dx/2 ) ad=98*ad/100; // ~/ + + if( get_bw(x0,x1,y0,y1,box1->p,cs,2) == 0 ) ad=99*ad/100; + + if (!hchar || loop(bp,0,dy/4,dx,cs,0,RI)>dx/2){ // ~z + i=loop(bp,0,dy/16 ,dx,cs,0,RI); + i=loop(bp,i,dy/16 ,dx,cs,1,RI); j=i; + i=loop(bp,0,dy/16+1,dx,cs,0,RI); + i=loop(bp,i,dy/16+1,dx,cs,1,RI); if (i>j) j=i; + i=loop(bp,0,dy/16+2,dx,cs,0,RI); + i=loop(bp,i,dy/16+2,dx,cs,1,RI); if (i>j) j=i; + if (j*4>=dx*3) ad=98*ad/100; // ~z + if (j*8>=dx*7) ad=96*ad/100; // ~z + } + + if( get_bw(x0,x0,y1,y1,box1->p,cs,2) == 0 ) ad=99*ad/100; + if( get_bw(x1,x1,y1,y1,box1->p,cs,2) == 0 ) ad=99*ad/100; + if (ad==100) ad--; /* I have to fix that: + .@@@@.<- + @@..@@ + ....@@ + ....@@< + ...@@. + ..@@@. + ..@@.. + .@@... + @@.... + @@@@@@<- + */ + if(!hchar) ad=ad*99/100; + if( gchar) ad=ad*99/100; + Setac(box1,'l',ad); +// if( i<100 ) Break; ???? +// if( loop(bp,0, 1,dx,cs,0,RI)<=dx/8 +// && loop(bp,0,dy/2,dx,cs,0,RI)<=dx/8 +// && loop(bp,0,dy-2,dx,cs,0,RI)<=dx/8 ) vertical_detected=1; + break; + } + return box1->c; +} + +static wchar_t ocr0_oO(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + pix *bp=sdata->bp; + int i,j,d,x,y,hchar=sdata->hchar,gchar=sdata->gchar, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1,cs=sdata->cs; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + ad; /* tmp-vars */ + wchar_t bc=UNKNOWN; + + // --- test o,O --------------------------------------------------- + for(ad=d=100;dx>2 && dy>3;){ // min 3x4 + DBG( wchar_t c_ask='o'; ) + if (sdata->holes.num !=1 ) Break; + if( get_bw(x0 , x0+dx/2,y0+dy/2 , y0+dy/2,box1->p,cs,1) != 1 ) Break; + if( get_bw(x1-dx/2 , x1 ,y0+dy/2 , y0+dy/2,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/2 , x0+dx/2,y1-dy/2 , y1, box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/2 , x0+dx/2,y0 , y0+dy/2,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/2 , x0+dx/2,y0+dy/2 , y1-dy/3,box1->p,cs,1) != 0 ) Break; + if (sdata->holes.hole[0].y0 > dy/3 + || sdata->holes.hole[0].y1 < dy-1-dy/3) Break; + + if( num_cross(x0+dx/2 ,x0+dx/2 ,y0, y1 ,box1->p,cs) != 2 + && num_cross(x0+dx/2+1,x0+dx/2+1,y0, y1 ,box1->p,cs) != 2 ) Break; + if( num_cross(x0+dx/3,x1-dx/4,y0 , y0 ,box1->p,cs) != 1 ) // AND + if( num_cross(x0+dx/3,x1-dx/4,y0+1 , y0+1,box1->p,cs) != 1 ) Break; + if( num_cross(x0+dx/4,x1-dx/3,y1 , y1 ,box1->p,cs) != 1 ) // against "rauschen" + if( num_cross(x0+dx/4,x1-dx/3,y1-1 , y1-1,box1->p,cs) != 1 ) Break; + if( num_cross(x0 ,x0 ,y0+dy/3 , y1-dy/3,box1->p,cs) != 1 ) + if( num_cross(x0+1 ,x0+1 ,y0+dy/3 , y1-dy/3,box1->p,cs) != 1 ) Break; + if( num_cross(x1 ,x1 ,y0+dy/3 , y1-dy/3,box1->p,cs) != 1 ) + if( num_cross(x1-1 ,x1-1 ,y0+dy/3 , y1-dy/3,box1->p,cs) != 1 ) Break; + + if( loop(bp,0 ,0 ,x1-x0,cs,0,RI)<= + loop(bp,0 ,2 ,x1-x0,cs,0,RI) ) Break; + + x=loop(bp,dx-1,dy-1-dy/3,x1-x0,cs,0,LE); // should be minimum + for( y=dy-1-dy/3;ydx/8 ) + if( loop(bp,0 , dy/16,dx,cs,0,RI)dx/8 ) + if( loop(bp,0 ,dy-1-dy/16,dx,cs,0,RI)p,cs,1) == 0 + && get_bw(x1-dx/32,x1,y1-dy/32,y1,box1->p,cs,1) == 0 +// && ( get_bw(x0,x0+dx/32,y0,y0+dy/32,box1->p,cs,1) == 1 + && ( get_bw(0,dx/32,0,dy/32,bp,cs,1) == 1 + || get_bw(x0,x0+dx/32,y1-dy/32,y1,box1->p,cs,1) == 1 ) ) Break; // ~D + + // search lowest inner white point + for(y=dy,j=x=0;x 1 ) ad=99*ad/100; // ~a \it a + for(y=0;y 2 ) ad=98*ad/100; // ~a \it a + if (loop(bp,dx-1,dy-1,x1-x0,cs,0,LE)dy/8 + || num_cross(0,dx-1, 0, 0,bp,cs) > 1 + || num_cross(0,dx-1,dy-1,dy-1,bp,cs) > 1 + ) ad=98*ad/100; // ~bq + + // corrections for wrong recognized m1,m2 (all chars of same high) + if (hchar && 2*y0m1+box1->m2) i=1; else i=0; + if (gchar) ad=99*ad/100; + bc='o'; + if (i){ bc='O'; } + if ( bc=='O' && ad>99) ad=99; /* we can never 100% sure, 0O */ + if (bc=='o' && (!hchar) && y0m2) { + Setac(box1,'O',98*ad/100); + Setac(box1,'0',98*ad/100); + } + Setac(box1,bc,ad); + if (bc=='O') Setac(box1,'0',ad); + if (bc=='o') Setac(box1,'0',98*ad/100); + break; + } + return box1->c; +} + +static wchar_t ocr0_pP(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + pix *bp=sdata->bp; + int i,j,d,x,y,i1,i2,i3,i4,hchar=sdata->hchar,gchar=sdata->gchar, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1,cs=sdata->cs; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + ad; /* tmp-vars */ + wchar_t bc=UNKNOWN; + + // --- test pP --------------------------------------------------- + for(ad=d=100;dx>2 && dy>3;){ // min 3x4 + DBG( wchar_t c_ask='p'; ) + if (sdata->holes.num > 2) Break; /* tolerant against a tiny hole */ + if( get_bw(0 , dx/2,3*dy/4,3*dy/4,bp,cs,1) != 1 ) Break; + if( get_bw(0 , dx/2, dy/2, dy/2,bp,cs,1) < 1 ) Break; + if( get_bw(dx/4, dx-1, dy/4, dy/4,bp,cs,1) != 1 ) Break; + i= loop(bp,dx-1,3*dy/4,dx,cs,0,LE); if (ip,cs) != 2 ) + if( num_cross(x0+dx/2 ,x0+dx/2 , y0, y1-3*dy/16,box1->p,cs) != 2 ) + if( num_cross(x0+dx/2+1,x0+dx/2+1, y0, y1-3*dy/16,box1->p,cs) != 2 ) Break; + if( num_cross(0,dx-1,7*dy/8 ,7*dy/8 ,bp,cs) != 1 ) + if( num_cross(0,dx-1,7*dy/8-1,7*dy/8-1,bp,cs) != 1 ) Break; + if( num_cross(0,dx-1, dy/4 , dy/4 ,bp,cs) != 2 ) + if( num_cross(0,dx-1, dy/4-1, dy/4-1,bp,cs) != 3 ) // \it p with nice kurve + if( num_cross(0,dx-1, dy/4 , dy/4 ,bp,cs) != 2 ) + if( num_cross(0,dx-1, dy/4+1, dy/4+1,bp,cs) != 2 ) Break; + + i= loop(bp,0,dy/2,dx,cs,0,RI); if(i<1) i++; + if( num_cross(i-1,dx-1, dy/4 , dy/4 ,bp,cs) != 2 ) + if( num_cross(i-1,dx-1, dy/4+1, dy/4+1,bp,cs) != 2 ) Break; + + i1= loop(bp, 0,3*dy/8,dx,cs,0,RI); if (i1>=dx/2) ad=90*ad/100; + i2=i1+loop(bp,i1,3*dy/8,dx,cs,1,RI); // upper x-position of v line + i3= loop(bp, 0,7*dy/8,dx,cs,0,RI); + i4=i3+loop(bp,i3,7*dy/8,dx,cs,1,RI); // lower x-position of v line + // out_x(box1);printf(" p:"); + for ( y=dy/8; y<7*dy/8; y++ ){ + x=i2+ (8*y-3*dy)*(i4-i2)/(4*dy); // right limit of line + i= loop(bp,0,y,dx,cs,0,RI); if(i>x+dx/16) break; + } if ( y<7*dy/8 ) Break; + for ( x=0,j=y=dy/3; yx ) { x=i; j=y; } if(x>dx/2) break; + } if ( x=dx) Break; + if( get_bw(3*dx/4,dx-1, y , dy-1,bp,cs,1) == 1 ) Break; + + i=num_hole (x0,x1,y0,y1-dy/5,box1->p,cs,NULL); + // j=num_hole (x0,x1,y0,y1 ,box1->p,cs,NULL); + j=sdata->holes.num; + + if (j!=1 && dx< 8) ad=96*ad/100; + if (j!=1 && dx>=8) ad=98*ad/100; + if (i==0 && j==0) ad=90*ad/100; /* some times there is a small gap */ + if (i>1 || j>1 || j>i) Break; + + // check for serif F + i= loop(bp,bp->x-1, bp->y/4, dx ,cs,0,LE); + i=i+loop(bp,bp->x-1-i,bp->y/4, dx ,cs,1,LE); + j= loop(bp,bp->x-1-i,bp->y/4,3*dy/4,cs,0,DO); + if (j>dy/2) ad=80*ad/100; // its an serif-F + + if( ((!hchar) && (!gchar)) || (hchar && gchar)) ad=95*ad/100; + bc='p'; + if( hchar && ((!gchar) || dy<14)) bc='P'; + if ( hchar && gchar) ad=98*ad/100; // \ss sz + if ((!hchar) && !gchar) ad=98*ad/100; + + Setac(box1,bc,ad); + break; + } + return box1->c; +} + +static wchar_t ocr0_qQ(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + pix *bp=sdata->bp; + int i,j,d,x,y,hchar=sdata->hchar,gchar=sdata->gchar, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1,cs=sdata->cs; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + ad; /* tmp-vars */ + + // --- test Q --------------------------------------------------- + for(ad=d=100;dx>2 && dy>4;){ // min 3x4 + DBG( wchar_t c_ask='Q'; ) + if (sdata->holes.num > 2) Break; /* tolerant against a tiny hole */ + if( get_bw(x0 ,x0+dx/3,y0+dy/3,y0+dy/3,box1->p,cs,1) != 1 ) Break; + if( get_bw(x1-dx/3,x1 ,y0+dy/3,y0+dy/3,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/2,x0+dx/2,y1-dy/3,y1, box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/2,x0+dx/2,y0 ,y0+dy/4,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/2,x0+dx/2,y0+dy/3,y1-dy/2,box1->p,cs,1) == 1 ) Break; + if( get_bw(x1 ,x1 ,y0 ,y0 ,box1->p,cs,1) == 1 ) Break; //alpha + if( num_cross(x0+dx/2,x0+dx/2,y0 , y1 ,box1->p,cs) < 2 ) Break; + if( num_cross(x0+dx/5,x1-dx/5,y0 , y0 ,box1->p,cs) != 1 ) // AND + if( num_cross(x0+dx/5,x1-dx/5,y0+1 , y0+1 ,box1->p,cs) != 1 ) Break; + if( num_cross(x0 ,x0 ,y0+dy/3 , y1-dy/3,box1->p,cs) != 1 ) + if( num_cross(x0+1 ,x0+1 ,y0+dy/3 , y1-dy/3,box1->p,cs) != 1 ) Break; + if( get_bw(x1 ,x1 ,y1-dy/8 , y1 ,box1->p,cs,1) == 0 ) + if( num_cross(x1 ,x1 ,y0+dy/3 , y1-dy/3,box1->p,cs) != 1 ) + if( num_cross(x1-1 ,x1-1 ,y0+dy/3 , y1-dy/3,box1->p,cs) != 1 ) Break; + // i=num_hole(x0,x1,y0,y1,box1->p,cs,NULL); + i=sdata->holes.num; + if(!i) Break; + if( i!=1 && (i!=2 || num_hole(x0,x1,y0+dy/2,y1,box1->p,cs,NULL)!=1) ) Break; + x=x1;y=y1; + turmite(box1->p,&x,&y,x0,x1,y0,y1,cs,LE,ST); if( xp,&x,&y,x0,x1,y0,y1,cs,ST,LE); + if( x 5*dx/8 ) Break; // ~4 Okt00 + + x= loop(bp,dx-1,3*dy/8,dy,cs,0,LE); if( x>dx/4 ) Break; + if( loop(bp,dx-1-x,0 ,dy,cs,0,DO) + <= loop(bp,dx-2-x,0 ,dy,cs,0,DO) ) Break; // 4 + + if( loop(bp,dx-1,dy-2,dx,cs,0,LE) + <= loop(bp,dx-1,dy/2,dx,cs,0,LE) ) + if( loop(bp, 1,dy-1,dy,cs,0,UP) + <= loop(bp,dx/2,dy-1,dy,cs,0,UP) ) + if( loop(bp, 0,dy-2,dx,cs,0,RI)>dx/2 ) + if( loop(bp, 0, 0,dx,cs,0,RI)>dx/2 ) Break; // 4 + + if( loop(bp,dx-1,3*dy/4,dx,cs,0,LE) + + loop(bp, 0,3*dy/4,dx,cs,0,RI) + < loop(bp,dx-1,2*dy/4,dx,cs,0,LE) + + loop(bp, 0,2*dy/4,dx,cs,0,RI) ) ad=94*ad/100; // 4 + if( loop(bp,0 ,3*dy/4,dx,cs,1,RI) >= dx ) ad=94*ad/100; // 4 + + + if( loop(bp,dx-1,dy/3,dx,cs,0,LE)> dx/4 ) Break; + j=loop(bp,dx/2,dy-1,dy,cs,0,UP); + if (j>1 && j>dy/8) { + if( get_bw(0,dx/2,dy-1-j/2,dy-1-j/2,bp,cs,1) == 1 ) { // ~RA + if (j<5) ad=95*ad/100; + else Break; + } + } + + // italic a + for(i=0,y=0;y 2 ) i++; if(i>dy/8) Break; // ~a \it a + if (i>0) ad=99*ad/100; + + // ~o look at the lower right side for falling line + for(j=x=0,y=dy/2;yx){ x=i; } + if (x-i>j) j=x-i; + if( j>dx/16 ) Break; // falling line detected + } + if (j==0) Break; // no falling line => no Q + if (j<=dx/16) ad=98*ad/100; + if(y1<=box1->m3) ad=98*ad/100; // ~q no underlength! rare + if(!hchar) ad=96*ad/100; + Setac(box1,'Q',ad); + break; + } + // --- test q --------------------------------------------------- + for(ad=d=100;dx>2 && dy>3;){ // min 3x4 + DBG( wchar_t c_ask='q'; ) + if (sdata->holes.num > 2) Break; /* tolerant against a tiny hole */ + for ( y=y0; 2*y<=y0+y1; y++ ){ // detect ring + if( num_cross(x0,x1, y, y,box1->p,cs) == 2 ) Break; + } if (2*y>y0+y1) Break; /* < */ + for ( y=(y0+y1)/2; y<=y1; y++ ){ // detect vert line + if( num_cross(x0, x1, y, y,box1->p,cs) == 1 + && num_cross(x0,x0+dx/2, y, y,box1->p,cs) == 0 ) Break; + } if (y>y1) Break; /* O (y==y1 for 4x6font-q) */ + for ( x=0,j=y=y0+dy/3; y<=y1-dy/8; y++ ){ // detect baseline + i=loop(box1->p,x0,y,dx,cs,0,RI); + if ( i>x ) { x=i; j=y; } + if ( x>dx/2 ) break; + } if ( x=dx) Break; + if (y1-j+1p,cs) != 0 ) ad=96*ad/100; // ~g + if( loop(box1->p,x0+dx/16,j,dy,cs,0,UP)<1+dy/16 ){ + ad=97*ad/100; + if (hchar || !gchar) Break; // 4 + } + if( loop(box1->p,x0+dx/16,j-dy/32-1,dy,cs,1,RI)>=dx-dx/8 + || loop(box1->p,x0+dx/16,j-dy/16-1,dy,cs,1,RI)>=dx-dx/8 ){ + ad=96*ad/100; // 4 + } + if( get_bw(x1-dx/3, x1, y0+dy/3, y0+dy/3,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0, x0+dx/3, y0+dy/3, y0+dy/3,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0, x0+dx/4, y1-dy/8, y1-dy/9,box1->p,cs,1) == 1 ) Break; + if( get_bw(x0, x0+dx/4, y1-dy/5, y1-dy/9,box1->p,cs,1) == 1 ) ad=99*ad/100; + if( num_cross(x0+dx/2,x0+dx/2, y0, j ,box1->p,cs) != 2 ) Break; + // if( num_hole (x0 ,x1 , y0, y1 ,box1->p,cs,NULL) != 1 ) + if (sdata->holes.num != 1) + { if (dx<16) ad=98*ad/100; else Break; } + if( num_hole (x0 ,x1 , y0, j ,box1->p,cs,NULL) != 1 ) + { if (dx<16) ad=98*ad/100; else Break; } + // ~\it g + if( loop(bp,0,dy-1-dy/4,dx,cs,0,RI)>5*dx/8 + && get_bw(dx/4,dx/4,dy-1-dy/4,dy-1,bp,cs,1)==1 ) Break; // ~\it g + // what about unsure m1-m4? + if(!gchar){ ad=ad*99/100; } // ~4 + if( hchar){ ad=ad*99/100; } // ~49 + Setac(box1,'q',ad); + break; + } + return box1->c; +} + +static wchar_t ocr0_iIjJ(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + pix *bp=sdata->bp; + int i,j,d,x,y,i1,i2,i3,i4,i5,hchar=sdata->hchar,gchar=sdata->gchar, + ax,ay,bx,by,cx,cy,ex,ey, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1,cs=sdata->cs; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + ad,ya,yb,yc,yd,ye,yf,xa,xb, /* tmp-vars */ + (*aa)[4]=sdata->aa; /* the for line ends, (x,y,dist^2,vector_idx) */ + + // --- test i --------------------------------------------------- + // if(box1->dots==1) // what about \it neighbouring ij + for(ad=d=100;dy>3 && dx>0;){ // min 3x4 without dot + DBG( wchar_t c_ask='i'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + // ToDo: ':' check that high of dot is smaller than the vert. line! + /* + * o <== ya + * o + * + * ooo <== yb + * o + * o + * o + * ooo + */ + ya=y0; + if (box1->dots!=1) ad=98*ad/100; + while(dy>3*dx && box1->m2){ // test for vertical i without detected dot + i= loop(bp,dx/2,dy-1 ,dy,cs,0,UP); + if (dy-1-im3-2) break; + i+=loop(bp,dx/2,dy-1-i,dy,cs,1,UP); + // distance upper end to m2 > (m2-m1)/3 + if (3*abs(dy-1-i-box1->m2)>box1->m2-box1->m1) break; + if( get_bw(x0,x1,y0,(box1->m1+box1->m2)/2,box1->p,cs,1) == 1 ) + if( get_bw(x0,x1,y1-i ,y1-i ,box1->p,cs,1) == 0 + || get_bw(x0,x1,y1-i-1,y1-i-1,box1->p,cs,1) == 0 + || get_bw(x0,x1,y1-i-2,y1-i-2,box1->p,cs,1) == 0 ) + { + Setac(box1,'i',ad); + return 'i'; /* beleave me, thats an "i"! */ + } break; + } +// if( box1->dots!=1 ) Break; + if( box1->m2 && 2*y0>=box1->m2+box1->m1 ) ya=box1->m1; + +// out_x(box1); + for (y=ya;2*yp,cs,1) == 1 ) break; + if (2*y>=ya+y1) Break; // hmm, gap only, no dot? + ya=y; + if (box1->m2 && ya>box1->m2+2) Break; + for ( ;2*yp,cs,1) != 1 ) break; + if (2*y>=ya+y1) Break; // hmm no gap + for ( ;2*yp,cs,1) == 1 ) break; + yb=y; + if (5*yb>=3*ya+2*y1) ad=99*ad/100; // large gap + if (2*yb>= ya+ y1) ad=97*ad/100; // very large gap, ~: + if (5*yb>=2*ya+3*y1) Break; // huge gap, ~: + if (loop(bp,dx-1,y+(y1-ya+1)/32,dx,cs,0,LE)>dx/2) // unusual (right part of ouml) + ad=95*ad/100; + + // printf(" num_cross dy/2=%d %d\n",dy/2, num_cross(0,dx-1,dy/2,dy/2,bp,cs)); + // printf(" dots=%d\n",box1->dots); out_x(box1); + // \sl ~f. ! + for (y=y1;y>ya;y--) if( get_bw(x0,x1,y,y,box1->p,cs,1) != 1 ) break; + if (y>(ya+3*y1)/4) Break; + if (y>(ya+2*y1)/3) ad=96*ad/100; + + y=(y1-yb+1)/2+yb-y0; /* only one vertical line, italic i is more an tall S */ + if( num_cross(0,dx-1,y,y,bp,cs) != 1 ) Break; + for(;y<=y1-y0;y++){ if( num_cross(0,dx-1,y,y,bp,cs) != 1 ) break; } yc=y; + for(;y<=y1-y0;y++){ if( num_cross(0,dx-1,y,y,bp,cs) != 2 ) break; } yd=y; + if( yd<3*(y1-yb+1)/4+yb-y0 ) Break; + y=(y1-yb+1)/2+yb-y0; + for(;y>0;y--){ if( num_cross(0,dx-1,y,y,bp,cs) != 1 ) break; } ye=y; + for(;y>0;y--){ if( num_cross(0,dx-1,y,y,bp,cs) != 2 ) break; } yf=y; + if( yf>(y1-yb+1)/4+yb-y0 ) Break; + if(yd>yc+2){ + xa=loop(bp, 0,yc-1,dx,cs,0,RI); + xb=loop(bp,dx-1,yc-1,dx,cs,0,LE); + if( + xb-loop(bp,dx-1,yc,dx,cs,0,LE) /* Dec00 */ + > xa-loop(bp, 0,yc,dx,cs,0,RI) ){ + y= loop(bp,dx-xb,yc-1,dy,cs,0,DO); + if(y>0){ + i=loop(bp,dx-xb-1,yc-1+y-1,dy,cs,0,DO); + if( i>0 ) y+=i-1; + } + if( yc-1+y < yd-1 ) Break; + } else { + y= loop(bp,11*xa/16,yc-1,dy,cs,0,DO); + if( yc-1+y < yd-2 ) Break; + } + } + if(yf0 ) y+=i-1; + if( ye+1-y > yf+1 ) Break; + } + if( 2*y0 <= box1->m1+box1->m2 + && loop(bp,0, 0,dx,cs,0,RI)+1 + < loop(bp,0,dx/2,dx,cs,0,RI) ) ad=97*ad/100; + + if( gchar ) // i is more often than j, be sure that realy correct Mai00 + if( loop(bp, 0,2*dy/4,dx,cs,0,RI) + -loop(bp,dx-1,2*dy/4,dx,cs,0,LE)>dx/8 ) Break; + + // could be a broken + or similar thing? + if( 3 * ya > box1->m1 + 2*box1->m2 ) ad=90*ad/100; + + if( loop(bp,dx-1,3*dy/4,dx,cs,0,LE)>dx/2 + && loop(bp,dx-1, dy-1,dx,cs,0,LE)5 && num_cross(x0+dx/2,x0+dx/2, ya, y1 ,box1->p,cs) >= 3 ) + ad=95*ad/100; + + Setac(box1,'i',ad); + break; + } + // --- test j --------------------------------------------------- + // if(box1->dots==1) // what about \it neighbouring ij + for(ad=d=100;dy>4 && dx>0;){ // min 3x4 + DBG( wchar_t c_ask='j'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + ya=y0; + if( box1->m2 && 2*y0>=box1->m2+box1->m1 ) ya=box1->m1; + + for(y=ya;2*yp,cs,1) == 1 ) break; + if(2*y>=ya+y1) Break; // hmm only gap + ya=y; + if( box1->m2 && ya>box1->m2+2 ) Break; + for( ;2*yp,cs,1) != 1 ) break; + if(2*y>=ya+y1) Break; // hmm no gap + for( ;2*yp,cs,1) == 1 ) break; + if(2*y>=ya+y1) Break; // hmm very large gap + yb=y; + if( loop(bp,dx-1,y+(y1-ya+1)/32,dx,cs,0,LE)>dx/2 ) Break; // unusual (right part of ouml) + + // printf(" num_cross dy/2=%d %d\n",dy/2, num_cross(0,dx-1,dy/2,dy/2,bp,cs)); + // printf(" dots=%d\n",box1->dots); out_x(box1); + // \sl ~f. ! + for(y=(ya+y1)/2;y<=y1;y++) if( get_bw(x0,x1,y,y,box1->p,cs,1) != 1 ) break; + if(y<=y1) Break; + + y=(y1-yb+1)/2+yb-y0; /* only one vertical line, italic i is more an tall S */ + if( num_cross(0,dx-1,y,y,bp,cs) >2 ) Break; + for(;y<=y1-y0;y++){ if( num_cross(0,dx-1,y,y,bp,cs) != 1 ) break; } yc=y; + for(;y<=y1-y0;y++){ if( num_cross(0,dx-1,y,y,bp,cs) != 2 ) break; } yd=y; + if( yd<3*(y1-yb+1)/4+yb-y0 ) Break; + y=(y1-yb+1)/2+yb-y0; + for(;y>0;y--){ if( num_cross(0,dx-1,y,y,bp,cs) != 1 ) break; } ye=y; + for(;y>0;y--){ if( num_cross(0,dx-1,y,y,bp,cs) != 2 ) break; } yf=y; + if( yf>(y1-yb+1)/4+yb-y0 ) Break; + if(yd>yc+2){ + xa=loop(bp, 0,yc-1,dx,cs,0,RI); + xb=loop(bp,dx-1,yc-1,dx,cs,0,LE); + if( + xb-loop(bp,dx-1,yc,dx,cs,0,LE) /* Dec00 */ + > xa-loop(bp, 0,yc,dx,cs,0,RI) ){ + y= loop(bp,dx-xb,yc-1,dy,cs,0,DO); + if(y>0){ + i=loop(bp,dx-xb-1,yc-1+y-1,dy,cs,0,DO); + if( i>0 ) y+=i-1; + } + if( yc-1+y < yd-1 ) Break; + } else { + y= loop(bp,11*xa/16,yc-1,dy,cs,0,DO); + if( yc-1+y < yd-2 ) Break; + } + } + if(yf0 ) y+=i-1; + if( ye+1-y > yf+1 ) Break; + } + if( 2*y0 <= box1->m1+box1->m2 + && loop(bp,0, 0,dx,cs,0,RI)+1 + < loop(bp,0,dx/2,dx,cs,0,RI) ) ad=97*ad/100; + if (loop(bp,0,dy-1,dx,cs,0,RI) + -loop(bp,0,dy-3,dx,cs,0,RI)>1+dx/16) ad=96*ad/100; // ~c + + if( gchar ) // i is more often than j, be sure that realy correct Mai00 + if( loop(bp, 0,2*dy/4,dx,cs,0,RI) + -loop(bp,dx-1,2*dy/4,dx,cs,0,LE)<=dx/8 ) Break; + // could be a broken + or similar thing? + if( 3 * ya > box1->m1 + 2*box1->m2 ) ad=80*ad/100; + if (!gchar) ad=96*ad/100; + if( box1->dots!=1 ) ad=98*ad/100; + + Setac(box1,'j',ad); + + break; + } + // --- test I --------------------------------------------------- + for(ad=d=100;dy>4 && dy>dx && 5*dy>4*(box1->m3-box1->m2);){ // min 3x4 + DBG( wchar_t c_ask='I'; ) + if( box1->dots==1 ) Break; + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + + x =loop(bp,0, dy/2,dx,cs,0,RI); // konvex? divided Q + if(loop(bp,0,7*dy/8,dx,cs,0,RI) > x+dx/8) Break; + for( y=dy/16;y1+dx/8 ) break; + } if( y<3*dy/4 ) Break; + // out_x(box1); + + // upper max width + for(i2=i1=0,y=0;yi1){ i1=x;i2=y; } + } + for(i4=i3=0,y=3*dy/4;yi3){ i3=x;i4=y; } + } + if( abs(i3-i1)>1+dx/8 ) Break; // if i3>>i5 more sure! + if( i1>i5 ){ // look for edges else *80% + } + if(i1+1i2 ) i2=i; + + // printf(" get_line(%d,%d) %d\n",i1,i2, + // get_line2(i1,dy/8,i2,dy-1-dy/8,bp,cs,100)); + if( get_line2(i1,dy/8,i2,dy-1-dy/8,bp,cs,100)<95 ) Break; + x =(i1-i2+4)/8; i1+=x; i2-=x; + + // upper and lower width (what about serifs?) + y=dy/8; + x =loop(bp,i1, y+0,dx,cs,1,LE); i=x; + x =loop(bp,i1, y+1,dx,cs,1,LE); if(x>i)i=x; + x =loop(bp,i1, y+0,dx,cs,1,RI); j=x; + x =loop(bp,i1, y+1,dx,cs,1,RI); if(x>j)j=x; if(abs(i-j)>1+dx/8)Break; + x =loop(bp,i2,dy-y-1,dx,cs,1,LE); j=x; + x =loop(bp,i2,dy-y-2,dx,cs,1,LE); if(x>j)j=x; if(abs(i-j)>1+dx/8)Break; + x =loop(bp,i2,dy-y-1,dx,cs,1,RI); j=x; + x =loop(bp,i2,dy-y-2,dx,cs,1,RI); if(x>j)j=x; if(abs(i-j)>1+dx/8)Break; + + if(dy>15) // v024a4 + if( loop(bp,dx-1,dy/16 ,dx,cs,0,LE) + > loop(bp,dx-1,dy/4 ,dx,cs,0,LE)+1+dx/32 ) Break; // ~bad ) (thinn) + + for(i=0,y=dy/16;y<15*dy/16 && i<2;y++) + if( num_cross(0,dx-1,y,y,bp,cs) != 1 ) i++; + if( i>1 ) Break; + + if(!hchar){ // right part (bow) of h is never a l + if( get_bw(dx/4,dx/4, 0,dy/4,bp,cs,1) == 1 + && get_bw(dx/4,dx/4,dy/2,dy-1,bp,cs,1) == 0 ) Break; + if( loop(bp, 0,dy/4,dx,cs,0,RI)> dx/4 + && loop(bp,dx-1,dy/4,dx,cs,0,LE)<=dx/4 + && loop(bp, 1, 0,dy,cs,0,DO)<=dy/4 ) Break; // ~z + } + + if( get_bw(x1,x1,y0 ,y1 ,box1->p,cs,2) != 2 + && get_bw(x0,x1,y0 ,y0 ,box1->p,cs,2) != 2 + && get_bw(x0,x1,y1 ,y1 ,box1->p,cs,2) != 2 + && get_bw(x0,x0,y0+1,y1-1,box1->p,cs,1) != 1 ) Break; /* ~] */ + + if ( loop(bp,dx-1, dy/4,dx,cs,0,LE) > dx/2 + && loop(bp,dx-1,3*dy/4,dx,cs,0,LE) > dx/2 + && loop(bp, 0, dy/2,dx,cs,0,RI) < dx/4 ) Break; /* ~[ */ + + x =loop(bp, 0,dy/2,dx,cs,0,RI); // konvex/konkav? ~() + i =loop(bp,dx-1,dy/2,dx,cs,0,LE); + if( loop(bp, 0,7*dy/8,dx,cs,0,RI) > x+dx/8 + && loop(bp, 0, dy/8,dx,cs,0,RI) > x+dx/8 + && loop(bp,dx-1,7*dy/8,dx,cs,0,LE) < i-dx/8 + && loop(bp,dx-1, dy/8,dx,cs,0,LE) < i-dx/8 ) Break; // ~( + if( loop(bp, 0,7*dy/8,dx,cs,0,RI) < x-dx/8 + && loop(bp, 0, dy/8,dx,cs,0,RI) < x-dx/8 + && loop(bp,dx-1,7*dy/8,dx,cs,0,LE) > i+dx/8 + && loop(bp,dx-1, dy/8,dx,cs,0,LE) > i+dx/8 ) Break; // ~) + if( loop(bp, 0, dy/8,dx,cs,0,RI) + -(dx-loop(bp,dx-1,7*dy/8,dx,cs,0,LE)) > dx/4 ) Break; // ~/ + if( loop(bp, 0, 0,dx,cs,0,RI) > dx/2 // ToDo: check for serifs + && loop(bp, 0, dy/8,dx,cs,0,RI) > dx/2 + && loop(bp,dx-1,dy-1 ,dx,cs,0,LE) > dx/2 + && loop(bp,dx-1,dy-1-dy/8,dx,cs,0,LE) > dx/2 ) ad=99*ad/100; // ~/ + + if (box1->m2 && 3*y0>box1->m1+2*box1->m2) + if( get_bw(x0+dx/8,x1-dx/8,box1->m1,(box1->m1+box1->m2)/2,box1->p,cs,1) == 1 ) + Break; // ~i + + if(i1+1p,cs,1) != 1 + || get_bw(x0+i4/4,x0+i4/4,y1-dy/4,y1,box1->p,cs,1) != 1 ) + { ad=99*ad/100; MSG(fprintf(stderr,"ad=%d",ad);) } // ToDo: improve it + if(!hchar){ ad=96*ad/100; MSG({}) } // ~bad_small_r + if (box1->m4 && y1m4) { // probably lower dot? + if ((dx>2 && get_bw(x0+1,x1-1,y1+1,box1->m4,box1->p,cs,1) == 1) + || (dx<3 && get_bw(x0 ,x1 ,y1+1,box1->m4,box1->p,cs,1) == 1)) { + ad=96*ad/100; + } + } // ~! + // a---b + // I + // I + // c---e + // check against Z + for(bx=0,ax=dx,ay=by=y=0;ybx) { bx=dx-1-i; by=y; } + i+=loop(bp,dx-1-i,y,dx,cs,1,LE); if (dx-i-1dy-1-dy/4;y--){ + i =loop(bp,0,y,dx,cs,0,RI); if (iex) { ex=i; ey=y; } + } + x=(3*ax+cx)/4; y=(3*ay+cy)/4; i= loop(bp,x,y,dx,cs,0,RI); + x=(3*bx+ex)/4; y=(3*by+ey)/4; j= loop(bp,x,y,dx,cs,0,LE); + if (j>0 && (2*i>3*j || 3*i<2*j )) ad=99*ad/100; + if (j>0 && ( i>2*j || 2*i< j )) ad=97*ad/100; + i=loop(bp,0,0,dy,cs,0,DO); + if (i>dy/8 && idx/4) ad=96*ad/100; // ~l 5x7 + + if( get_bw(x0,x1,y0,y1,box1->p,cs,2) == 0 ) ad=99*ad/100; + if (gchar) ad=98*ad/100; // J + if (box1->m3 && 2*y1<=box1->m2+box1->m3) ad=96*ad/100; // ' + + Setac(box1,'I',ad); + break; + } + // --- test J --------------------------------------------------- 22Nov06 + for(ad=d=100;dy>4 && dy>=dx && dx>2;){ // min 3x4 ~Y)]d', + // rewritten for vectors 0.42 + int ld, i1, i2, i3, i4, i5, i6, i7; // line derivation + corners + DBG( wchar_t c_ask='J'; ) + if (sdata->holes.num > 0) Break; /* no hole */ + /* half distance to the center */ + d=2*sq(128/4); + /* now we check for the upper right end of the J */ + if (aa[3][2]>d) Break; /* [2] = distance */ + /* searching for 4 notches between neighbouring ends */ + +/* + type A B + + 6OOOO 6O5 + 7O5 7O + O O + O O + 2O 1O4 1O4 + OO 2OO + 3 3 +*/ + + /* Warning: aa0 can be left upper or left lower point for type B */ + /* get a point on the inner low left side of the J */ + i =nearest_frame_vector(box1,aa[3][3],aa[1][3],(x0+x1)/2,y0); + /* failed for slanted J before Jun09 */ + i1=nearest_frame_vector(box1,i ,aa[1][3], x1+dx/8,y1-dy/8); + /* get the most left point on the lower part of the J */ + i2=nearest_frame_vector(box1,i1,aa[3][3], x0-2*dx, y1-dy/8); + /* get a point on the middle of the bottom of the J */ + i3=nearest_frame_vector(box1,aa[1][3],aa[2][3], (x0+x1)/2, y1); + /* get a point on the outer low right side of the J */ + i4=nearest_frame_vector(box1,aa[1][3],aa[3][3], x1, (y0+2*y1)/3); + /* get a point on the outer right side below top serif */ + i5=nearest_frame_vector(box1,aa[2][3],aa[3][3], (x0+2*x1)/3,y0); + /* get a point on the left side of upper serif */ + i6=nearest_frame_vector(box1,aa[3][3],i1, x0, y0); + /* get a point on the most right left side of upper serif */ + i7=nearest_frame_vector(box1,i6,i1, x1, y0); + MSG(fprintf(stderr," i1-i7 %d %d %d %d %d %d %d",i1,i2,i3,i4,i5,i6,i7);) + + /* check the highest point on lower left area */ + i =nearest_frame_vector(box1,i1,i3,x0,y0); + if (box1->frame_vector[i ][1]-y0frame_vector[i ][1]-y0<=dy/2) ad=97*ad/100; // imperfect a + /* check the lowest point on upper left area, serife? */ + j =nearest_frame_vector(box1,i6,i7,x0,y1); + if (box1->frame_vector[i ][1] + -box1->frame_vector[j ][1]<=dy/4) Break; // imperfect a + if (box1->frame_vector[i7][1]>y0+dy/4) Break; // not to low + if (box1->frame_vector[i1][1] + -box1->frame_vector[i7][1]frame_vector[i4][1] + -box1->frame_vector[i5][1]frame_vector[i7][0]frame_vector[i1][0] + -box1->frame_vector[i2][0]<=dx/8) Break; // ~1 + if (box1->frame_vector[i1][0] + -box1->frame_vector[i2][0]<=dx/4) ad=ad*99/100; // ~1 + if (box1->frame_vector[i6][1]>y0+dy/8) ad=99*ad/100; // ~1 + if (aa[0][2]==0) { // ]? + ad=99*ad/100; + if (aa[1][2]==0) ad=98*ad/100; + if (aa[2][2]<=aa[3][2]) ad=97*ad/100; + } + + /* check for left bow */ + for (j=i=i2;i!=i4;i=(i+1)%box1->num_frame_vectors[0]) { + if (box1->frame_vector[ i][0] /* [0]=x */ + frame_vector[i1][0]) break; /* curve? */ + } if (i==i4) Break; // ~I + /* check for no right bow */ + for (j=i=i2;i!=i4;i=(i+1)%box1->num_frame_vectors[0]) { + if (box1->frame_vector[ i][0] /* [0]=x */ + >box1->frame_vector[i4][0]) break; + } if (i!=i4) Break; // ~I + /* check for no right bow */ + for (j=i=i5;i!=i6;i=(i+1)%box1->num_frame_vectors[0]) { + if (box1->frame_vector[ i][1] > y0+dy/4) break; + } if (i!=i6) Break; // ~Y + /* check if upper left and lower left points are joined directly */ + ld=line_deviation(box1, i7, i1); + MSG(fprintf(stderr," i7,i1 %d %d linedist= %d/%d",i7,i1,ld,2*sq(1024/4));) + if (ld >2*sq(1024/4)) Break; + if (5*ld >4*2*sq(1024/4)) ad=99*ad/100; // ~3 + if (6*ld >4*2*sq(1024/4)) ad=99*ad/100; // ~3 + if (7*ld >4*2*sq(1024/4)) ad=99*ad/100; // ~3 + if (8*ld >4*2*sq(1024/4)) ad=99*ad/100; // ~3 + /* check if lower right and upper right points are joined directly */ + ld=line_deviation(box1, i4, i5); + MSG(fprintf(stderr," i4,i5 %d %d linedist= %d/%d",i4,i5,ld,2*sq(1024/4));) + if (ld >2*sq(1024/4)) Break; + if (5*ld >4*2*sq(1024/4)) ad=99*ad/100; + + // J exists as gchar and ~gchar + if (!hchar){ ad=99*ad/100; } + if (box1->num_frames>1) { + ad=98*ad/100; // j + } + Setac(box1,'J',ad); + break; + } + return box1->c; +} + +static wchar_t ocr0_brackets(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + pix *bp=sdata->bp; + int i,j,d,x,y,i1,i2,i3,i4,i5,i6,hchar=sdata->hchar, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1,cs=sdata->cs; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + (*aa)[4]=sdata->aa, /* corner-points, (x,y,dist^2,vector_idx) */ + ad,r1,r2; /* tmp-vars */ + wchar_t bc=UNKNOWN; + + // --- test > derived from xX --------------------------------------------------- + // rewritten for vectors v0.41 + for(ad=d=100;dx>1 && dy>2;){ // min 3x2 + // 0 - indizes 0,1,i1,i2 pointing to edges of the char + // \ . + // \ . + // i1,i2 + // / + // / + // 1 + DBG( wchar_t c_ask='>'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + if (sdata->holes.num > 0 && (dx<6 || dy<6)) Break; /* # */ + /* calculate the half distance to the center */ + d=2*sq(128/4); + /* now we check for the 2 left ends of the > */ + if (aa[0][2]>d) Break; /* upper left end */ + if (aa[1][2]>d) Break; /* lower left end */ + if (aa[1][1]-aa[0][1]num_frame_vectors[0]) { + if (box1->frame_vector[i][0] + >=box1->frame_vector[j][0]) j=i; /* notice most right vector */ + } if (j==i || j==aa[0][3]) Break; + /* calculate the distance to the center */ + x=box1->frame_vector[j][0]; + y=box1->frame_vector[j][1]; + if (2*x-aa[0][0]-aa[1][0](dy+2)) Break; + if ( aa[0][0]+aa[1][0]-2*x>=0) Break; + i1=j; + d=line_deviation(box1, aa[0][3], j) >sq(1024/4); + /* check if upper left and center point are joined directly */ + MSG(fprintf(stderr,"x %d %d dist= %d/%d",x-x0,y-y0,d,sq(1024/4));) + if (d >sq(1024/4)) Break; ad=ad-d*100/sq(1024); + MSG(fprintf(stderr,"ad=%d", ad);) + d=line_deviation(box1, j, aa[1][3]); + /* check if lower left and center point are joined directly */ + MSG(fprintf(stderr,"x %d %d dist= %d/%d",x-x0,y-y0,d,sq(1024/4));) + if (d >sq(1024/4)) Break; ad=ad-d*100/sq(1024); + MSG(fprintf(stderr,"ad=%d", ad);) + + /* run along right side from bottom to top */ + for (j=i=aa[1][3];i!=aa[0][3];i=(i+1)%box1->num_frame_vectors[0]) { + if (box1->frame_vector[i][0] + >=box1->frame_vector[j][0]) j=i; /* notice most right vector */ + // MSG(fprintf(stderr,"search right: %d %d %d %d",i,j,aa[1][3],aa[0][3]);) + } if (j==i || j==aa[1][3]) Break; + /* calculate the distance to the center */ + x=box1->frame_vector[j][0]; + y=box1->frame_vector[j][1]; + if ( (aa[0][0]+aa[1][0]-2*x)>= 0 ) Break; + if (abs(aa[0][1]+aa[1][1]-2*y)>(dy+2)/4) Break; + if (aa[0][0]>=x || aa[1][0]>=x) Break; + i2=j; + d=line_deviation(box1, j, aa[0][3]); + /* check if upper left and center point are directly joined directly */ + MSG(fprintf(stderr,"x %d %d dist= %d/%d",x-x0,y-y0,d,sq(1024/4));) + if (d >sq(1024/4)) Break; ad=ad-d*100/sq(1024); + MSG(fprintf(stderr,"ad=%d", ad);) + d=line_deviation(box1, aa[1][3], j); + /* check if lower left and center point are directly joined */ + MSG(fprintf(stderr,"x %d %d dist= %d/%d",x-x0,y-y0,d,sq(1024/4));) + if (d >sq(1024/4)) Break; ad=ad-d*100/sq(1024); + MSG(fprintf(stderr,"ad=%d", ad);) + + /* + ToDo: calculate momentums or max derivations + along lines to distinguish )]}> + i1,i2 + */ + + if (sdata->gchar) ad=98*ad/100; + if (sdata->hchar) ad=99*ad/100; + bc='>'; + Setac(box1,bc,ad); + break; + } + // --- test /\\ ------------------------------------------------ +// if(bc==UNKNOWN) +// if(!box1->dots) + for(ad=d=100;dx>3 && dy>3;){ // min 4x4 for 4x6 font + DBG( wchar_t c_ask='/'; ) + if (sdata->holes.num > 0) Break; /* tolerant against a tiny hole */ +#if 1 + for(i=y=0;y2 || (i>0 && dy<16)) Break; +#endif + /* get the center as exact as possible */ + i2=dx-1-loop(bp,dx-1,dy/2 ,dx,cs,0,LE) // be exact for small fonts + +dx-1-loop(bp,dx-1,dy/2+dy%2-1,dx,cs,0,LE) + + loop(bp, 0,dy/2 ,dx,cs,0,RI) + + loop(bp, 0,dy/2+dy%2-1,dx,cs,0,RI); + if (abs(i2-2*dx)>1+dx/2) Break; + if (abs(i2-2*dx)> dx/2) ad=99*ad/100; + + i1=loop(bp,dx-1,dy/16,dx,cs,0,LE); // right side + i3=loop(bp,dx-1,dy-1 ,dx,cs,0,LE); + i4=loop(bp, 0,0 ,dx,cs,0,RI); // left side + i6=loop(bp, 0,dy-1 ,dx,cs,0,RI); + i=(box1->m4+box1->m3)/2-box1->m2; + // + // out_x(box1);printf("() %d %d %d %d %d %d %d\n",i,i1,i2,i3,i4,i5,i6); + + // ~lI + for(i=i4,y=0;ydx/6+1 ) break; i=x; + } if( ydx/6+1 ) break; i=x; + } if( ydx/4 ) { Setac(box1,(bc='/'),ad);break; } + if(i4<=dx/8 && i3<=dx/8 && i6-(dx-i1)>dx/4 ) { Setac(box1,(bc='\\'),ad);break; } + Break; + } + // --- test ()<> ------------------------------------------------ +// if(bc==UNKNOWN) +// if(!box1->dots) + for(ad=d=100;dx>1 && dy>4;){ // min 3x4 + DBG( wchar_t c_ask='('; ) + if (sdata->holes.num > 1) {Break;}; /* tolerant against a tiny hole */ +#if 1 + for(i=y=0;y2 || (i>0 && dy<16)) {Break;}; +#endif + /* look for the extrema => r1..r2 */ + for(i=dx,r1=r2=y=dy/2-dy/8;y<=dy/2+dy/8;y++){ + j=loop(bp, 0,y,dx,cs,0,RI); if(j==i) r2=y; if(jdy){ +// from Aug06 vector-version of greater is used +// if(i2==0 && 3*i5>dx && i4<=dx/8 && i6<=dx/8) { Setac(box1,(bc='>'),98);{Break;}; } + if(i5==0 && 3*i2>dx && i1<=dx/8 && i3<=dx/8) { Setac(box1,(bc='<'),98);{Break;}; } + } + if( dx > 2 && 9*dx>=5*dy ){ // 4x6 screen-font (3*5) + ad=98; + if (dx<8) ad=99*ad/100; + if (dx<6) ad=96*ad/100; + if( 2*dx > JOB->res.avX && 4*dx>dy ) ad=98; +// printf(" %d %d %d %d %d %d\n",i5,i1,i3,i2,i4,i6); + if( i5==0 && i1<=dx/8+1 && i3<=dx/8+1 && i1+i3<=dx/8+1 + && i2>=dx/2 && i4>=3*dx/4 && i6>=3*dx/4 ) { + if (2*loop(bp, 0, y/2,dx,cs,0,RI)+1+dx/16=dx/2 && i1>=3*dx/4 && i3>=3*dx/4 ) { + if (2*loop(bp,dx-1, y/2,dx,cs,0,LE)+1+dx/16m4+box1->m3)/2-box1->m2; + // + // out_x(box1);printf("() %d %d %d %d %d %d %d\n",i,i1,i2,i3,i4,i5,i6); + if(2*i2i4+i6 && 2*dx=i){ + Setac(box1,(bc=')'),98);break; } + if(2*i2>i1+i3 && 2*i5=i){ + if(2*i2<=i1+i3+1 || 2*i5>=i4+i6-1) ad=98*ad/100; + if(2*i2<=i1+i3+2 || 2*i5>=i4+i6-2) ad=98*ad/100; + for(x=y=0;yx ) x=i; + } + for(y=0;y<(dy+2)/4;y++){ + i=loop(bp,0,y+dy/8,dx,cs,0,RI);if( i=dx/8+1) ad=99*ad/100; // ~{ Jul09 + if (loop(bp,0,dy/2-dy/8,dx,cs,0,RI)-i5>=dx/8+1) ad=99*ad/100; // ~{ Jul09 + Setac(box1,(bc='('),ad); break; + } + Break; + } + // --------- test [] -------------------------------- + for(ad=d=98;dx>2 && dy>4 && dy>=2*dx;){ // (3,6) on 4x6 font + DBG( wchar_t c_ask=']'; ) + if (sdata->holes.num > 1) { Break;} /* tolerant against a tiny hole */ + if (!hchar) ad=97*ad/100; + for(y=0;yp,cs,2) == 2 + && get_bw(x0,x1,y0+1,y0+1,box1->p,cs,2) == 2 ) {Break;}; + if( get_bw(x0,x1,y1 ,y1 ,box1->p,cs,2) == 2 + && get_bw(x0,x1,y1-1,y1-1,box1->p,cs,2) == 2 ) {Break;}; + if( get_bw(x0 ,x0,y0 ,y1 ,box1->p,cs,2) == 0 + || get_bw(x0+1 ,x0+1,y0 ,y1 ,box1->p,cs,2) == 0 ) + if( get_bw(x0+dx/2,x1,y0+dy/4,y1-dy/4,box1->p,cs,1) == 0 ) + { Setac(box1,(bc='['),ad);break; } + if( get_bw(x1 ,x1,y0 ,y1 ,box1->p,cs,2) == 0 + || get_bw(x1-1 ,x1-1,y0 ,y1 ,box1->p,cs,2) == 0 ) + if( get_bw(x0,x1-dx/2,y0+dy/4,y1-dy/4,box1->p,cs,1) == 0 ) + { Setac(box1,(bc=']'),ad);break; } + break; + } + +#if CODE_NOT_COMPLETED + // --- test ] ------- + for(ad=d=100;dx>2 && dy>3;){ + DBG( wchar_t c_ask=']'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + if (sdata->holes.num > 0) ad=98*ad/100; /* # */ + /* 1/8 distance to the center */ + d=2*sq(128/16); + /* now we check for the 4 ends of the x */ + if (aa[0][2]>d) Break; + if (aa[1][2]>d) Break; + if (aa[2][2]>d) Break; + if (aa[3][2]>d) Break; + if (aa[3][0]-aa[0][0]<7*dx/8) Break; + if (aa[2][0]-aa[1][0]<7*dx/8) Break; + if (aa[1][1]-aa[0][1]<7*dy/8) Break; + if (aa[2][1]-aa[3][1]<7*dy/8) Break; + if (aa[3][0]-aa[0][0]<2) Break; /* to small */ + if (aa[2][0]-aa[1][0]<2) Break; /* to small */ + MSG( fprintf(stderr," aa %d %d %d %d %d %d %d %d d %d %d %d %d",\ + aa[0][0]-x0,aa[0][1]-y0,aa[1][0]-x0,aa[1][1]-y0,\ + aa[2][0]-x0,aa[2][1]-y0,aa[3][0]-x0,aa[3][1]-y0,\ + aa[0][2],aa[1][2],aa[2][2],aa[3][2]);) + /* left and right vertical line */ + d=line_deviation(box1, aa[0][3], aa[1][3]); if (d>2*sq(1024/4)) Break; + ad=(100-(d-sq(1024)/2)/sq(1024)/4)*ad/100; + d=line_deviation(box1, aa[2][3], aa[3][3]); if (d>2*sq(1024/4)) Break; + + /* search uppermost left ^ */ + i1=nearest_frame_vector(box1,aa[1][3],aa[2][3], x0, y0); + x=box1->frame_vector[i1][0]; + y=box1->frame_vector[i1][1]; + if (y-y0 > 5*dy/8) Break; + if (x-x0 > 5*dx/8) Break; + /* search uppermost right ^ ~H */ + i3=nearest_frame_vector(box1,aa[1][3],aa[2][3], x1, y0); + if ( box1->frame_vector[i3][0]-x> dx/4 + && box1->frame_vector[i3][1]-y<=dy/8) Break; + + /* check if upper left and lower right point are joined directly */ + dbg[0]=d=line_deviation(box1,i1, aa[2][3]); if (d >2*sq(1024/4)) Break; + /* check if lower left and lower left point are joined directly */ + dbg[1]=d=line_deviation(box1, aa[1][3],i1); if (d >2*sq(1024/4)) Break; + + if (!hchar) ad=99*ad/100; + if ( gchar) ad=98*ad/100; // \sc N + ac=(wchar_t) ']'; + Setac(box1,ac,ad); + if (ad>=100) return ac; + break; + } +#endif + // --------- test ocr-a-[] -------------------------------- + if(bc==UNKNOWN) + for(ad=d=98;dx>5 && dy>7 && 2*dy>3*dx;){ // only for accurate font at the moment + DBG( wchar_t c_ask='['; ) + if (sdata->holes.num > 2) break; /* tolerant against a tiny hole */ + if (!hchar) ad=97*ad/100; + if( num_cross(0,dx-1, 0, 0,bp,cs) != 1 ) break; + if( num_cross(0,dx-1,dy-1,dy-1,bp,cs) != 1 ) break; + if ( loop(bp,dx-1,dy/2,dx,cs,0,LE) + +loop(bp, 0,dy/2,dx,cs,0,RI) <= dx/4 ) break; // O + for(y=dy/8;yp,cs,1) == 0) + { Setac(box1,(bc='['),ad);break; } + if( get_bw(x0,(5*x0+3*x1)/8,y0+3*dy/16,y1-3*dy/16,box1->p,cs,1) == 0) + { Setac(box1,(bc=']'),ad);break; } + break; + } + // --------- test {} -------------------------------- + for(ad=d=99;dx>2 && dy>5 && 2*dy>3*dx;){ + DBG( wchar_t c_ask='{'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + if (!hchar) ad=97*ad/100; + for(y=0;y3*dx/4 ) ad=99*ad/100; + if ( loop(bp,0, 0,dx,cs,0,RI)>3*dx/4 ) ad=99*ad/100; // < + if ( loop(bp,0, 0,dy,cs,0,DO)=dx/8 ) ad=98*ad/100; // < + if ( loop(bp,dx-2,dy-1,dy,cs,0,UP)>dy/4 ) Break; // f + if ( get_bw(x0,x0,y0,y0+dy/4,box1->p,cs,1) == 1 + || get_bw(x0,x0,y1-dy/4,y1,box1->p,cs,1) == 1 ) Break; + Setac(box1,(bc='{'),ad);Break; + } + for(ad=d=99;dx>2 && dy>5 && 2*dy>3*dx;){ + DBG( wchar_t c_ask='}'; ) + if (!hchar) ad=97*ad/100; + for(y=0;y3*dx/4 ) {ad=99*ad/100;} + if ( loop(bp,dx-1, 0,dx,cs,0,LE)>3*dx/4 ) {ad=99*ad/100;} // > + if ( loop(bp,dx-1, 0,dy,cs,0,DO)=dx/8 ) ad=98*ad/100; // < + if ( loop(bp,1,dy-1,dy,cs,0,UP)>dy/4 ) Break; // ??? + if ( get_bw(x1,x1,y0,y0+dy/4,box1->p,cs,1) == 1 + || get_bw(x1,x1,y1-dy/4,y1,box1->p,cs,1) == 1 ) Break; + Setac(box1,(bc='}'),ad);Break; + } + return box1->c; +} + +#if 0 +/* ---------- empty prototype function for copy and expand ---------- */ +static wchar_t ocr0_XXX(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + pix *bp=sdata->bp; + int i,j,d,x,y,i0,i1,i2,i3,hchar=sdata->hchar,gchar=sdata->gchar, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1,cs=sdata->cs; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + ac,ad; /* tmp-vars */ + + // --- test XXX --------------------------------------------------- + return box1->c; +} +#endif + + +/* ----------------------- part9 -------------------------------- */ +static wchar_t ocr0p9(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + pix *bp=sdata->bp; + int i,j,d,x,y,x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + i1,i2,i3,i4; /* tmp-vars */ + int xa,xb, /* used for store significant points of char */ + dbg[9]={0,0,0,0,0,0,0,0,0}, /* debugging space */ + ya,yb,ad,cs=sdata->cs; + wchar_t ac,bc=UNKNOWN; // bestletter + int hchar; // char is higher than e + int gchar; // char has ink lower than m3 + // --- hchar --- gchar ------------------------- + hchar=0;if( 2*y0<=2*box1->m2-(box1->m2-box1->m1) ) hchar=1; + gchar=0;if( 2*y1>=2*box1->m3+(box1->m4-box1->m3) ) gchar=1; + // if the char is slightly moved down correction can be done + if ( y0m2 && y1>box1->m3 && 2*y1m3+box1->m4) // moved + if( 2*(y0-(y1-box1->m3))<=2*box1->m2-(box1->m2-box1->m1) ) hchar=1; + + /* reserved for the future */ + // --- test beta,\3,sz,"s --------------------------------------------- + if(bc==UNKNOWN && hchar) + for(ad=d=100;dx>3 && dy>6;){ // min 4x7 + DBG( wchar_t c_ask='S'; ) + if (sdata->holes.num > 2) break; /* tolerant against a tiny hole */ + /* this part is provisorium, should be changed! + a-\ + | d + b| / + | \ + -c / + */ + if( num_cross(x0 ,x1 ,y0+dy/4 ,y0+dy/4 ,box1->p,cs) != 2 + && num_cross(x0 ,x1 ,y0+dy/4+1,y0+dy/4+1,box1->p,cs) != 2 ) break; + for(i=1+dy/16,y=y0+dy/8;y0;y++){ + if( yp,cs) != 2 ) i--;} + else { if( num_cross(x0 ,x1 ,y,y,box1->p,cs) < 2 ) i--;} + if( get_bw(x0,x0+dx/2,y,y,box1->p,cs,1) == 0 ) i--; + if( yp,cs,1) == 0 ) i--; + } if( i<=0 ) break; + // out_x(box1); + + for(y=y0+dy/3;yp,x1,y,dx,cs,0,LE); + if( i>=dx/8 ) break; + i+=loop(box1->p,x1-i,y,dx,cs,1,LE); + if( i>=dx/2 ) break; + } if( y>=y1-dy/3 ) break; + + for(y=y0+dy/5;yp,cs,1) == 1 ) break; + if( y>=y0+dy/3 ) break; + + for(y=y0+dy/2;yp,cs,1) == 1 ) break; + if( y>=y1 ) break; + + for(y=y1-dy/3;yp,x1,y,dx,cs,0,LE); + if( i>dx/4 + && get_bw(x1-dx/8,x1-dx/8,y,y1,box1->p,cs,1) == 1 ) break; + } if( ym3==0 || 2*y1m3+box1->m4 ) + if( loop(box1->p,x1,y1, dx,cs,0,LE)==0 + && loop(box1->p,x1,y1-dy/4,dx,cs,0,LE)>dx/8 ) break; // ~R + + + for(x=x0+dx/4;xp,cs) == 3 ) break; + if( x>=x1-dx/4 ) break; + + i=loop(bp,dx/2,dy-1,dy,cs,0,UP)+dy/64; // Jul00 + for(x=dx/5;x i ) break; + if( x==dx/2 ) break; + + x=x0+loop(bp,0,dy/4,dx,cs,0,RI); + for(;xp,cs,1) == 0 ) break; + if( xp,cs,NULL) != 0 ) break; + if (sdata->holes.num != 0) break; + + bc=LATIN_SMALL_LETTER_SHARP_S; + Setac(box1,(wchar_t)bc,98); + break; + } + // --- test + ------------------------------------------------ + for(ad=d=100;dx>2 && dy>2;){ // min 3x3 + DBG( wchar_t c_ask='+'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + xa=(dx+1)/3-1; ya=(dy+1)/3-1; /* size of the 4 gaps = 1/3 * 1/3 */ + xb=(dx+1)/4; yb=(dy+2)/4; /* smaller gap */ + if( get_bw(x0,x0+xa,y0,y0+ya,box1->p,cs,1) == 1 ) Break; // left upper + if( get_bw(x0,x0+xa,y1-ya,y1,box1->p,cs,1) == 1 ) Break; // left lower + if( get_bw(x1-xb,x1,y0,y0+ya,box1->p,cs,1) == 1 ) Break; // right upper + if( get_bw(x1-xa,x1,y1-ya,y1,box1->p,cs,1) == 1 ) { // right lower + if( get_bw(x1-xa,x1,y1-yb,y1,box1->p,cs,1) == 1 ) Break; + ad=99*ad/100; // smoothed inner corner? 0907 + } + for(i=0,y=y0+ya;y<=y1-ya;y++){ // horizontal line + if( get_bw(x0+dx/9,x1-dx/9,y,y,box1->p,cs,2) == 0 ) { i=y; break; } + } + if (3*dx<2*dy) ad=99*ad/100; // ~t + if( !i ) Break; + ac=(wchar_t) '+'; + Setac(box1,ac,ad); + if (ad>=100) return ac; + break; + } + // --- test $ ------------------------------------------------ + for(ad=d=99;dx>3 && dy>5;){ // min 3x4 + DBG( wchar_t c_ask='$'; ) + if (sdata->holes.num != 2) Break; + + if( get_bw(x0,x0+dx/5,y0 ,y0+dy/18,box1->p,cs,1) == 1 ) Break; + if( get_bw(x0,x0+dx/9,y1-dy/23,y1 ,box1->p,cs,1) == 1 ) Break; + if( get_bw(x1-dx/9,x1,y0 ,y0+dy/18,box1->p,cs,1) == 1 ) Break; + if( get_bw(x1-dx/5,x1,y1-dy/23,y1 ,box1->p,cs,1) == 1 ) Break; + if( get_bw(x0,x0+dx/3,y0+dy/3 ,y0+dy/2 ,box1->p,cs,1) != 1 ) Break; + if( get_bw(x1-dx/3,x1,y1-dy/2 ,y1-dy/3 ,box1->p,cs,1) != 1 ) Break; + i1=x0+loop(box1->p,x0,y0,dx,cs,0,RI); if( i1x1-dx/5 ) Break; + i2=x0+loop(box1->p,x0,y1,dx,cs,0,RI); if( i2i1 ) Break; + ad= get_line2(i1,y0,i2,y1,box1->p,cs,100)*ad/100; + // check upper left and lower right half circle, $ (Oct08: removed) + // Oct08 JS: check the position of holes (better for tiny fonts) + // upper hole must be the first!? (hole[].x0 = relative coordinates) + if ( sdata->holes.hole[0].y0 < + sdata->holes.hole[1].y0 ) i4=0; else i4=1; /* sort to [idx^i4] */ + if ( sdata->holes.hole[0^i4].y1 > + sdata->holes.hole[1^i4].y0 ) Break; /* no y-overlap allowed */ + // upper left hole + // fprintf(stderr,"\nDBG hole[0]=x0=%d %d", sdata->holes.hole[0^i4].x0, sdata->holes.hole[0^i4].x1); + if ( sdata->holes.hole[0^i4].x0 > (dx+1)/3 ) Break; + if ( sdata->holes.hole[0^i4].x1 > dx/2+dx/4 ) Break; + if ( sdata->holes.hole[0^i4].y1 >= dy/2+dy/8 ) Break; + if ( sdata->holes.hole[0^i4].y0 > dy/2-dy/8 ) Break; + // lower right hole + // fprintf(stderr,"\nDBG hole[1]=x0=%d %d", sdata->holes.hole[1^i4].x0, sdata->holes.hole[1^i4].x1); + if ( sdata->holes.hole[1^i4].x0 <= dx/2-dx/4 ) Break; + if ( sdata->holes.hole[1^i4].x1 < dx/2+dx/4 ) Break; + if ( sdata->holes.hole[1^i4].y1 < dy/2+dy/8 ) Break; + if ( sdata->holes.hole[1^i4].y0 <= dy/2-dy/8 ) Break; + if (ad<95) Break; + ac=(wchar_t) '$'; + Setac(box1,ac,ad); + if (ad>=100) return ac; + break; + } + // --- test & ------------------------------------------------ + for(ad=d=99;dx>3 && dy>4;){ /* 4x6 font */ + DBG( wchar_t c_ask='&'; ) + if (sdata->holes.num != 2) Break; + if( get_bw(x1-dx/9,x1,y0,y0+dy/4,box1->p,cs,1) == 1 ) Break; // g + if( loop(bp,dx/2,0,dy,cs,0,DO)>dy/2) Break; + i1=loop(bp,0,dy/8 ,dx,cs,0,RI); if (i1>dx/2) Break; + i =loop(bp,0,dy/4 ,dx,cs,0,RI); if (i1>dx/2) Break; if (idx/2) Break; + i =loop(bp,0,dy-dy/4-1,dx,cs,0,RI); if (i3>dx/2) Break; if (ii1) Break; + for( i2=0, y=dy/4; y<=dy/2+1; y++ ){ + i =loop(bp,0,y,dx,cs,0,RI); if( i>i2 ) i2=i; + } + if(2*i2-i1-i3<1) Break; + // if( num_hole(x0,x1 ,y0,y1,box1->p,cs,NULL)!=2 ) Break; + if( num_hole(x0,x1-dx/4,y0,y1,box1->p,cs,NULL)!=2 ) Break; + if( num_cross(dx-1,dx-1,dy/4,dy-1,bp,cs) < 1 ) Break; + for( x=dx-1; x>=dx/2; x-- ){ + if( num_cross(x,x,dy/4,dy-1,bp,cs) > 1 ) break; + } if( x<=3*dx/4 && x 3 ) { // glued ah + if (dy>15) { Break; } else ad=96*ad/100; + } + if (!hchar) ad=98*ad/100; + bc=(wchar_t) '&'; + Setac(box1,bc,ad); + if (ad>=100) return bc; + break; + } + // --- test \it & like \epsilon\tau ------------------------------ + if(bc==UNKNOWN) + for(ad=d=100;dx>7 && dy>7;){ + DBG( wchar_t c_ask='&'; ) + if (sdata->holes.num > 2) break; /* tolerant against a tiny hole */ + if( num_cross(0,dx-1, dy/4, dy/4,bp,cs) != 3 ) break; + if( num_cross(0,dx-1, dy/2, dy/2,bp,cs) != 4 ) break; + if( num_cross(dx/2,dx-1,dy/2, dy/2,bp,cs) != 2 ) break; + if( num_cross(0,dx-1,3*dy/4,3*dy/4,bp,cs) != 2 ) break; + if( num_cross(0,dx-1, dy-1, dy-1,bp,cs) != 1 ) break; + if( num_cross( 0, 0,0,dy-1,bp,cs) != 1 ) break; + if( num_cross( dx/3, dx/3,0,dy-1,bp,cs) != 4 ) break; + if( num_cross(13*dx/16,13*dx/16,0,dy/8,bp,cs) != 0 ) break; + if( num_cross(4*dx/8,4*dx/8,dy-dy/4,dy-1,bp,cs) != 1 ) break; + if( num_cross(3*dx/8,3*dx/8,dy-dy/4,dy-1,bp,cs) != 1 ) break; + if( num_cross(5*dx/8,5*dx/8,dy-dy/4,dy-1,bp,cs) != 1 ) break; + if( num_hole(x0 ,(x0+x1)/2,y0, y1,box1->p,cs,NULL) != 1 ) break; + if( num_hole(x0+dx/8,x1-dx/4,y0,y1-dy/4,box1->p,cs,NULL) != 1 ) break; + ac=(wchar_t) '&'; + Setac(box1,ac,ad); + if (ad>=100) return ac; + break; + } + // --- test ? --------------------------------------------------- + for(ad=d=98;dx>2 && dy>5;){ // min 3x(4+2) + DBG( wchar_t c_ask='?'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + if ( num_cross(x0, x1, y0, y0, box1->p, cs) !=1 ) Break; // ~? + if ( num_cross(x0, x1, y1, y1, box1->p, cs) > 1 ) Break; // ~? + for(y=y0;yp,cs,1) != 1 ) break; // lower end + if (2*ym4) { // probably lower dot not catched in box? + if (get_bw(x0+1,x1-1,y1+1,box1->m4,box1->p,cs,1) != 1 ) Break; + i1=box1->m4; + for(;i1>y1;i1--) // new y1 + if( get_bw(x0, x1,i1,i1,box1->p,cs,1) == 1 ) break; // lower dot + } + y--; i=y-y0+1; // new dy + for (y=0;yp, cs) == 2 ) break; + if (y==dy/2) Break; + // if( num_hole( x0, x1, y0, y1, box1->p,cs,NULL) > 0 ) Break; + if (sdata->holes.num > 0) Break; + for(y=y0+dy/2;y<=i1;y++) + if( get_bw(x0,x1,y,y,box1->p,cs,1) == 0 ) break; + if( y==i1 ) Break; + for( ;y<=i1;y++) + if( get_bw(x0,x1,y,y,box1->p,cs,1) == 1 ) break; + if( get_bw(x0,x1,y,y,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+7*dx/8,x1,y,i1,box1->p,cs,1) == 1 ) Break; // broken thin 2 + bc='?'; + Setac(box1,(wchar_t)bc,98); + return bc; + } + // --- test !| --------------------------------------------------- + for(ad=d=99; dy>4 && dy>2*dx;){ // min 3x4 + DBG( wchar_t c_ask='!'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + // measure thickness + if (num_cross(x0,x1,y0 ,y0 ,box1->p,cs)!=1) Break; + if (num_cross(x0,x1,y0+dy/2,y0+dy/2,box1->p,cs)!=1) Break; + for(y=y0;yp,cs,1) != 1 ) break; // lower end + if (2*ybox1->m3-dy/8) ad=ad*97/100; /* missing dot? */ + i1=y1; + if (y==y1 && box1->m4) { // probably lower dot not catched in box? + if ((dx>2 && get_bw(x0+1,x1-1,y1+1,box1->m4,box1->p,cs,1) == 1) + || (dx<3 && get_bw(x0 ,x1 ,y1+1,box1->m4,box1->p,cs,1) == 1 )) { + i1=box1->m4; + for(;i1>y1;i1--) // new y1 + if( get_bw(x0, x1,i1,i1,box1->p,cs,1) == 1 ) break; // lower dot + } + } i2=i1; + for( i1=0,y=y0;y<=i2;y++){ + i=num_cross(x0,x1,y,y,box1->p,cs); if(i>1) break; + if(i==0 && i1==0) i1=y; + } if(y<=i2 || i1==0 || i1dx/4+1 ) Break; // f + + if (!hchar) ad=96*ad/100; + Setac(box1,(wchar_t)'!',ad); + break; + } + // --- test * five egdes (jagges? beames?) what is the right english word? ---- + for(ad=d=99;dx>2 && dy>4;){ + DBG( wchar_t c_ask='*'; ) + if (sdata->holes.num > 0) Break; /* tolerant against a tiny hole */ + if( num_cross(0,dx-1, 0,dy-1,bp,cs) != 1 + && num_cross(0,dx-1, 1,dy-2,bp,cs) != 1 ) Break; + if( num_cross(0,dx-1,dy-1,dy-1,bp,cs) != 2 + && num_cross(0,dx-1,dy-2,dy-2,bp,cs) != 2 ) Break; + x=dx/2;y=(6*dy+8)/16; // center point 6/8=6/2^3 rounded + /* upwarts from center */ + dbg[0]=i=get_line2(x,y,x ,0,bp,cs,100); if(i<95) Break; + if (dx<8) /* be exact on small fonts, where get_line2 returns 100 (ToDo change) */ + if (get_bw(x,x,0,y,bp,cs,2)==2) Break; + /* horizontal */ + dbg[1]=i=get_line2(0,y,dx-1,y,bp,cs,100); if(i<95) Break; + if (dy<8) + if (get_bw(0,dx-1,y ,y ,bp,cs,2)==2 + && get_bw(0,dx-1,y+1,y+1,bp,cs,2)==2) Break; + /* down (right) */ + i=get_line2(x,y,(5*dx+4)/8,dy-1,bp,cs,100); + j=get_line2(x,y,(6*dx+4)/8,dy-1,bp,cs,100); if(j>i) dbg[2]=i=j; + if(i<95) Break; + /* down (left) */ + dbg[3]=i=get_line2(x, y,(2*dx+4)/8,dy-1,bp,cs,100); if(i<95) Break; // straight up + /* check for lower gap at bottom */ + dbg[4]=i=get_bw( x, x,dy-1-dy/8,dy-1,bp,cs,1); if(i==1) Break; + dbg[5]=i=get_line2( dx/4,dy/4, 0,0,bp,cs,101); if(i<95) Break; // upper left gap + dbg[6]=i=get_line2(dx-1-dx/4,dy/4,dx-1,0,bp,cs,101); if(i<95) Break; // upper right gap + MSG(fprintf(stderr,"%d %d %d %d %d %d %d",dbg[0],dbg[1],dbg[2],dbg[3],dbg[4],dbg[5],dbg[6]);) + Setac(box1,(wchar_t)'*',ad); + break; + } + // --- test * six egdes (jagges? beames?) incl. vert. line (|+X) ---- + for(ad=d=100;dx>4 && dy>4;){ + DBG( wchar_t c_ask='*'; ) + if (sdata->holes.num > 0) Break; /* tolerant against a tiny hole */ + if( num_cross(0,dx-1, dy/8, dy/8,bp,cs) != 3 + && num_cross(0,dx-1, 1+dy/8, 1+dy/8,bp,cs) != 3) Break; + if( num_cross(0,dx-1,dy-2-dy/8,dy-2-dy/8,bp,cs) != 3) Break; + if( num_cross(0 , 0, 0,dy-1,bp,cs) != 2) Break; + if( num_cross(dx-1,dx-1, 0,dy-1,bp,cs) != 2) Break; + if( num_cross(0,dx-1,dy/2,dy/2,bp,cs) != 1) Break; + if( num_cross( 0 ,dx/8,dy/2,dy/2,bp,cs) != 0) Break; + if( num_cross(dx-1-dx/8,dx-1,dy/2,dy/2,bp,cs) != 0) Break; + if (dx>5) { + dbg[0]=i=get_line2(0,dy-2-dy/8,dx-1,dy/8,bp,cs,100); if(i<95) Break; // black upwarts beam + dbg[1]=i=get_line2(0,dy/8,dx-1,dy-2-dy/8,bp,cs,100); if(i<95) Break; // black downwards beam + /* check vertical line */ + dbg[2]=i=get_line2(dx/2,0,dx/2, dy-1,bp,cs,100); if(i<95) Break; + } + MSG(fprintf(stderr,"%d %d %d %d %d %d",dbg[0],dbg[1],dbg[2],dbg[3],dbg[4],dbg[5]);) + Setac(box1,(wchar_t)'*',99); + break; + } + // --- test * six egdes '*'='x'+'-' incl. horizontal line ---- + for(ad=d=100;dx>3 && dy>4;){ + DBG( wchar_t c_ask='*'; ) + if (sdata->holes.num > 0) Break; /* tolerant against a tiny hole */ + if( num_cross( dx/8, dx/8, 0, dy-1,bp,cs) != 3 + && num_cross(1+dx/8,1+dx/8, 0, dy-1,bp,cs) != 3) Break; + if( num_cross(dx-1-dx/8,dx-1-dx/8,0,dy-1,bp,cs) != 3 + && num_cross(dx-2-dx/8,dx-2-dx/8,0,dy-1,bp,cs) != 3) Break; + if( num_cross( 0,dx-1, 0, 0,bp,cs) != 2) Break; + if( num_cross( 0,dx-1,dy-1,dy-1,bp,cs) != 2) Break; + if( num_cross(dx/2,dx/2,0,dy-1,bp,cs) != 1) Break; + // check upper and lower gap + if( num_cross(dx/2,dx/2,0,dy/8,bp,cs) != 0) Break; + if( num_cross(dx/2,dx/2,dy-1-dy/8,dy-1,bp,cs) != 0) Break; + if (dx>5) { + dbg[0]=i=get_line2(dx-2-dx/8,0,dx/8,dy-1,bp,cs,100); if(i<95) Break; // black upwarts beam + dbg[1]=i=get_line2(dx/8,0,dx-2-dx/8,dy-1,bp,cs,100); if(i<95) Break; // black downwards beam + /* check horizontal line */ + dbg[2]=i=get_line2(0,dy/2,dx-1,dy/2,bp,cs,100); if(i<95) Break; + } + MSG(fprintf(stderr,"%d %d %d %d %d %d",dbg[0],dbg[1],dbg[2],dbg[3],dbg[4],dbg[5]);) + Setac(box1,(wchar_t)'*',98); + break; + } + // --- test @ - a popular char should be detectable! added in version v0.2.4a5 + if(bc==UNKNOWN) + for(ad=d=99;dx>5 && dy>7;){ + DBG( wchar_t c_ask='@'; ) + if (sdata->holes.num > 3) Break; /* tolerant against a tiny hole */ + // check ~ 7x10 0 with dot in it + // num_holes==1 + hole.y0<=dy/8,>=y1-dy/8 + if (sdata->holes.num==1 + && sdata->holes.hole[0].y0<=y0+dy/8 + && sdata->holes.hole[0].y1>=y1-dy/8) Break; + if (loop(bp, 0,dy/2,dx,cs,0,RI)>dx/4) Break; + if (loop(bp,dx-1,dy/2,dx,cs,0,LE)>dx/4) Break; + if (loop(bp,dx/2,dy-1,dy,cs,0,UP)>dx/8) Break; + if (loop(bp,dx/2, 0,dy,cs,0,DO)>dx/8) Break; + /* ..@@@@..<- 8x10 example + .@@..@@. + @@....@@ + @@..@@@@< + @@.@@.@@ + @@.@@.@@ + @@..@@@. + @@...... + .@@...@@ + ..@@@@@.<- */ + x=6*dx/16; + y=dy/2; + i=num_cross(0,dx-1,y,y,bp,cs); + if (i<3 || i>4) Break; + if( i != 4 && dx>8 ) ad=98*ad/100; + + i=num_cross(x,x,0,dy-1,bp,cs); if (i<2) Break; + if (i!=4) { j=num_cross(x+1,x+1,0,dy-1,bp,cs); + if (abs(4-j)4) Break; + if (i!=4) ad=97*ad/100; + if( num_cross(0, x,y,y,bp,cs) != 2 ) Break; + if( num_cross(x,dx-1,y,y,bp,cs) != 2 ) Break; + if( num_cross(x,x,0, y,bp,cs) != 2 ) Break; + if( num_cross(x,x,y,dy-1,bp,cs) != 2 ) Break; + if (dx>7) { + // if( num_hole(x0,x1,y0,y1,box1->p,cs,NULL) != 1 ) Break; + if (sdata->holes.num != 1) Break; + if( num_hole(x0+dx/8,x1-3*dx/16,y0+dy/8,y1-dy/8,box1->p,cs,NULL) != 1 ) Break; + } + Setac(box1,(wchar_t)'@',ad); + break; + } + // --- test paragraph v0.2.6 + if(bc==UNKNOWN && hchar) + for(ad=d=100;dx>4 && dy>15;){ + DBG( wchar_t c_ask='$'; ) + if (sdata->holes.num > 3) break; /* tolerant against a tiny hole */ + if( get_bw( 0,dx/2,3*dy/4,3*dy/4,bp,cs,1) == 1 ) break; + if( get_bw(3*dx/4,dx-1,3*dy/4,3*dy/4,bp,cs,1) == 0 ) break; + if( get_bw( 0,dx/4, dy/4, dy/4,bp,cs,1) == 0 ) break; + if( get_bw( dx/2,dx-1, dy/4, dy/4,bp,cs,1) == 1 ) break; + if( get_bw(dx/2,dx/2, 0, dy/4,bp,cs,1) == 0 ) break; + if( get_bw(dx/2,dx/2,dy-1-dy/4, dy-1,bp,cs,1) == 0 ) break; + if( num_cross(dx/2,dx/2,0,dy-1,bp,cs) != 4 ) break; + if( num_cross(x0,x1,y0+dy/2,y0+dy/2,box1->p,cs) != 2 ) break; + if( num_hole( x0,x1,y0+dy/4,y1-dy/4,box1->p,cs,NULL) != 1 ) break; + Setac(box1,SECTION_SIGN,96); + break; // paragraph=0xA7=167 + } + + return bc; +} + +/* ----------------------- partx -------------------------------- */ +static wchar_t ocr0px(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + pix *bp=sdata->bp; + int i,j,d,x,y,x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + i1,i2,i3,i4,j1,cs=sdata->cs; /* tmp-vars */ + int ya,ad; /* used for store significant points of char */ + wchar_t ac,bc=UNKNOWN; // bestletter + int hchar; // char is higher than e + int gchar; // char has ink lower than m3 + // --- hchar --- gchar ------------------------- + hchar=0;if( 2*y0<=2*box1->m2-(box1->m2-box1->m1) ) hchar=1; + gchar=0;if( 2*y1>=2*box1->m3+(box1->m4-box1->m3) ) gchar=1; + // if the char is slightly moved down correction can be done + if ( y0m2 && y1>box1->m3 && 2*y1m3+box1->m4) // moved + if( 2*(y0-(y1-box1->m3))<=2*box1->m2-(box1->m2-box1->m1) ) hchar=1; + + /* reserved for special chars, to test at the end */ + // --- test 'ff' --------------------------------------------------- + // ToDo: better check and call test 'f' and 'f' with subboxes + if( bc==UNKNOWN ) + for(ad=98;dx>4 && dy>6;){ // Dec00 body copied from H + DBG( wchar_t c_ask='f'; ) + if (sdata->holes.num > 2) break; /* tolerant against a tiny hole */ + if( num_cross(0,dx-1, dy/4 , dy/4 ,bp,cs) != 2 + && num_cross(0,dx-1,3*dy/16,3*dy/16,bp,cs) != 2 ) break; + if( num_cross(0,dx-1,3*dy/4 ,3*dy/4 ,bp,cs) != 2 + && num_cross(0,dx-1,3*dy/4+1,3*dy/4+1,bp,cs) != 2 ) break; + if( loop(bp,0 ,dy/8,dx,cs,0,RI) + + loop(bp,dx-1,dy/8,dx,cs,0,LE)>dx/2 ) break; // ~A + for( j1=0,i=1,y=y0+dy/10; yp,x0 ,y,dx,cs,0,RI) + +loop(box1->p,x1 ,y,dx,cs,0,LE); + if( j>10*dx/16 ) i=0; if ( j>j1 ) j1=j; } + if( !i ) break; + for( x=dx/4; x 3*dy/8 ) break; + if ( 10*y > dy ){ /* italic */ + i=loop(bp,x ,dy-y,dx,cs,0,RI); + if( i>1 && y+loop(bp,x+i-1,dy-y,dy,cs,0,UP)>3*dy/8 ) break; + } + } if( x>=dx/2 ) break; + x=loop(box1->p,x0 ,y1-dy/8,dx,cs,0,RI) + +loop(box1->p,x1 ,y1-dy/8,dx,cs,0,LE); + for( i=1,y=dy/4; ydx/5 ) i=0; } + if( !i ) break; // ~K Jul00 + for( i=0,ya=y=y0+dy/4; yp,x0 ,y,dx,cs,0,RI); + j=loop(box1->p,x0+j,y,dx,cs,1,RI); if( j>i ) { i=j; ya=y; } } + if( i<=dx/2 ) break; ya-=y0; + if( num_cross(0,dx-1,ya ,ya ,bp,cs) != 1 + && num_cross(0,dx-1,ya+1,ya+1,bp,cs) != 1 ) break; /* Dec00 */ + for( y=ya; y 2 + && num_cross(0,dx-1,y+1,y+1,bp,cs) > 2 ) break; + if ( yp,cs,1) == 0 ) i=0; + } if( !i ) break; + for(i=1,x=x0+dx/4;x<=x1-dx/4 && i;x++){ + if( get_bw( x, x,y1-dy/4,y1 ,box1->p,cs,1) == 0 ) i=0; + } if( i ) break; + for(i=1,x=x0+dx/4;x<=x1-dx/4 && i;x++){ + if( num_cross(x,x,y0+dy/8,y1-dy/8, box1->p,cs) == 1 ) i=0; + } if( i ) break; + for(i=1,y=y0;y<=y0+dy/4 && i;y++){ + if( num_cross(x0,x1,y,y, box1->p,cs) == 2 ) i=0; + } if( i ) break; + for(i=1,y=y1-dy/4;y<=y1 && i;y++){ + if( num_cross(x0,x1,y,y, box1->p,cs) == 2 ) i=0; + } if( i ) break; + if( num_cross(x0 ,x0+dx/8 ,y0+dy/8 ,y0 ,box1->p,cs) != 0 ) ad=96*ad/100; + if( get_bw(x1-dx/8, x1 , y0, y0+dy/8,box1->p,cs,1) != 1 ) break; + if( get_bw(x0 , x0+dx/8, y1-dy/8, y1,box1->p,cs,1) != 1 ) break; + i1=loop(bp,dx-1, dy/4,dx,cs,0,LE); if(i1>dx/2) break; + i2=loop(bp,dx-1, dy/2,dx,cs,0,LE); if(i2i1+dx/8) break; + i3=loop(bp,dx-1,dy-1-dy/4,dx,cs,0,LE); if(i3i2+dx/8) break; + if(abs(i1+i3-2*i2)>dx/16+1) break; + if( num_hole(x0,x1,y0+dy/4,y1,box1->p,cs,NULL) != 0 ) break; + if (!hchar) ad=96*ad/100; + if (!gchar) ad=99*ad/100; + ac=LATIN_SMALL_LIGATURE_FF; + Setac(box1,ac,ad); + break; + } + // --- test ae --------------------------------------------------- + if( bc==UNKNOWN ) + for(ad=98;dx>4 && dy>6;){ // provisorium + DBG( wchar_t c_ask=LATIN_SMALL_LETTER_AE; ) + if (sdata->holes.num > 4) Break; /* tolerant against a tiny hole */ + if( num_cross( dx/4,dx-1,3*dy/16,3*dy/16,bp,cs) != 2 + && num_cross(dx-1-dx/4,dx-1,3*dy/16,3*dy/16,bp,cs) != 1 ) Break; + if( num_cross(0,dx-1,3*dy/ 4,3*dy/ 4,bp,cs) < 2 ) Break; + if( num_cross(0,dx-1, 0, dy-1,bp,cs) < 3 ) Break; + if( num_cross(dx-1,0, 0, dy-1,bp,cs) < 3 ) Break; + if( num_cross(0,dx-1, dy/16, dy/16,bp,cs) < 2 ) + if( num_cross(0,dx-1,1+dy/16,1+dy/16,bp,cs) < 2 ) Break; + if( num_cross(0,dx-1,dy-1-dy/16,dy-1-dy/16,bp,cs) < 2 ) Break; + for( x=0,i2=y=dy/4; y<3*dy/4; y++ ){ + j=loop(bp,0,y,dx,cs,0,RI); if(j>x) { i2=y; x=j; } + } if( x3*dx/4 ) Break; + for( x=0,i4=y=dy/4; y<3*dy/4; y++ ){ + j=loop(bp,dx-1,y,dx,cs,0,LE); if(j>x) { i4=y; x=j; } + } if( x3*dx/4 ) Break; + for( x=0,i4=y=dy/8; y<3*dy/4; y++ ){ + j=loop(bp,dx-1 ,y,dx,cs,0,LE); + j=loop(bp,dx-1-j,y,dx,cs,1,LE); + if(j>x) { i4=y; x=j; } + } if( xp,cs,NULL) != 1 ) Break; + if( num_hole(x0+dx/2-1,x1,y0,y1-dy/4,box1->p,cs,NULL) != 1 ) Break; + ac=LATIN_SMALL_LETTER_AE; + Setac(box1,ac,ad); + if (ad>=100) return ac; + break; + + } + // --- test AE --------------------------------------------------- + if( bc==UNKNOWN ) + for(ad=98;dx>5 && dy>6;){ // provisorium + DBG( wchar_t c_ask=LATIN_CAPITAL_LETTER_AE; ) + if (sdata->holes.num > 2) Break; /* tolerant against a tiny hole */ + if( num_cross(0,dx-1,3*dy/16,3*dy/16,bp,cs) < 2 ) Break; + if( num_cross(0,dx-1,3*dy/ 4,3*dy/ 4,bp,cs) < 2 ) Break; + if( num_cross(0,dx-1, 0, dy-1,bp,cs) < 3 ) Break; + if( num_cross(0,dx-1, dy/16, dy/16,bp,cs) != 1 + && num_cross(0,dx-1, dy/32, dy/32,bp,cs) != 1 + && num_cross(0,dx-1, 0, 0,bp,cs) != 1 ) Break; + // check for upper horizontal line + j=loop(bp,dx-1 ,0,dx,cs,0,LE); x=j; + j=loop(bp,dx-1-j,0,dx,cs,1,LE); + i=loop(bp,dx-1 ,1,dx,cs,0,LE); if (ij) j=i; + if (x>dx/8) Break; + if (jx) break; x=j; + j=loop(bp, j,y,dx,cs,1,RI); if(j>i1) { i1=j; i2=y; } + j=loop(bp,dx-1 ,y,dx,cs,0,LE); + j=loop(bp,dx-1-j,y,dx,cs,1,LE); if(j>i3) { i3=j; i4=y; } + } if( y<3*dy/4 || i1i1) { i1=j; } + j=loop(bp,dx-1 ,dy-1-y,dx,cs,0,LE); + j=loop(bp,dx-1-j,dy-1-y,dx,cs,1,LE); if(j>i3) { i3=j; } + } if( i1<=dx/4 || i3<=dx/4 ) Break; + for( x=dx-1-dx/8; x>dx/2; x-- ){ // look for right the E + if( num_cross(x,x, 0,dy-1,bp,cs) == 3 ) + if( num_cross(x,x, 0,dy/4,bp,cs) == 1 ) + if( num_cross(x-1,dx-1-dx/8,3*dy/4,3*dy/4,bp,cs) == 0 ) + if( num_cross(x,x,3*dy/4,dy-1,bp,cs) == 1 ) break; + } if (x<=dx/2) Break; // not found + if (sdata->holes.num != 1) Break; + if( num_hole(x0,x0+3*dx/4,y0,y1-dy/4,box1->p,cs,NULL) != 1 ) Break; + // if( num_hole(x0, x1,y0,y1 ,box1->p,cs,NULL) != 1 ) Break; + ac=LATIN_CAPITAL_LETTER_AE; + Setac(box1,ac,ad); + if (ad>=100) return ac; + break; + + } + // --- test /0 /o /O O_WITH_STROKE ----------------------------------------- + for(ad=99;dx>4 && dy>4;){ // provisorium + DBG( wchar_t c_ask=LATIN_SMALL_LETTER_O_WITH_STROKE; ) + if (sdata->holes.num > 3) Break; /* tolerant against a tiny hole */ + if( num_cross( 0,dx-1,dy/2,dy/2,bp,cs) != 3 ) Break; + if( num_cross(dx/2,dx/2, 0,dy-1,bp,cs) != 3 ) Break; + if (loop(bp,dx-1,3*dy/8,dx,cs,0,RI)>dx/8) Break; + if (loop(bp, 0,5*dy/8,dx,cs,0,RI)>dx/8) Break; + if( num_cross( 0,dx-1, 0, 0,bp,cs) > 2 ) Break; + if( num_cross(dx/4,dx-1, 0, 0,bp,cs) > 2 ) Break; + if( num_cross( 0,dx-1,dy-1,dy-1,bp,cs) > 2 ) Break; + if( num_cross( 0,3*dx/4,dy-1,dy-1,bp,cs) > 2 ) Break; + if( num_cross( 0, 0, 0,dy-1,bp,cs) > 2 ) Break; + if( num_cross(dx-1,dx-1, 0,dy-1,bp,cs) > 2 ) Break; + if( num_cross( 0, 0,dy/4,dy-1,bp,cs) > 2 ) Break; + if( num_cross(dx-1,dx-1, 0,3*dy/4,bp,cs) > 2 ) Break; + i1 =loop(bp,dx-1 , 0,dx,cs,0,LE); if( i1>dx/8 ) Break; + i1+=loop(bp,dx-1-i1, 0,dx,cs,1,LE); if( i1>dx/3 ) Break; i1=dx-1-i1; + i2 =loop(bp, 0,dy-1,dx,cs,0,RI); if( i2>dx/8 ) Break; + for(y=1;y3*dx/16 ) break; + } if( yholes.num != 2) Break; + // if( num_hole(x0,x1,y0,y1,box1->p,cs,NULL) != 2 ) Break; + + if ( hchar && 2*y0m1+box1->m2 ) + ac=LATIN_CAPITAL_LETTER_O_WITH_STROKE; + else ac=LATIN_SMALL_LETTER_O_WITH_STROKE; + Setac(box1,ac,ad); + if (ad>=100) return ac; + break; + + } + // --- test /c /C C_WITH_STROKE CENT_SIGN -------------------------- + // here only the version with a continuously vertical line (not broken variant) + if( bc==UNKNOWN ) + for(ad=98;dx>4 && dy>4;){ // provisorium + DBG( wchar_t c_ask=CENT_SIGN; ) + if (sdata->holes.num > 2) Break; /* tolerant against a tiny hole */ + if( num_cross( 0,dx-1,dy/2,dy/2,bp,cs) != 2 ) Break; + if( num_cross(0,dx-1-dx/4,dy/2,dy/2,bp,cs) != 2 ) Break; + if( num_cross(dx/2,dx/2, 0,dy-1,bp,cs) != 3 ) Break; + if( num_cross( 0,dx-1, 0, 0,bp,cs) > 2 ) Break; + if( num_cross(dx/4,dx-1, 0, 0,bp,cs) > 2 ) Break; + if( num_cross( 0,dx-1,dy-1,dy-1,bp,cs) > 2 ) Break; + if( num_cross( 0,3*dx/4,dy-1,dy-1,bp,cs) > 2 ) Break; + if( num_cross( 0, 0, 0,dy-1,bp,cs) > 2 ) Break; + if( num_cross(dx-1,dx-1, 0,dy-1,bp,cs) > 3 ) Break; + if( num_cross( 0, 0,dy/4,dy-1,bp,cs) > 2 ) Break; + if( num_cross(dx-1,dx-1, 0,3*dy/4,bp,cs) > 3 ) Break; + i1 =loop(bp,dx-1 , 0,dx,cs,0,LE); if( i1>dx/4 ) Break; + i1+=loop(bp,dx-1-i1, 0,dx,cs,1,LE); if( i1>dx/4 ) Break; i1=dx-1-i1; + i2 =loop(bp, 0,dy-1,dx,cs,0,RI); if( i2>dx/4 ) Break; + for(y=0;ydx/16+1) x-=dx/16+1; + j=loop(bp,x,y,dx,cs,0,RI); // fprintf(stderr,"\n x=%d j=%d",x,j); + if( j>(dx+4)/8 ) ad=96*ad/100; + if( j>(dx+2)/4 ) break; + } if( yp,cs,NULL) != 1 ) Break; + if (sdata->holes.num != 1) Break; + + ac=CENT_SIGN; + Setac(box1,ac,ad); + if (ad>=100) return ac; + break; + + } + // --- test EURO_CURRENCY_SIGN ----------------------------------------- + if( bc==UNKNOWN ) + for(ad=98;dx>4 && dy>6;){ // provisorium + DBG( wchar_t c_ask='&'; ) + if (sdata->holes.num > 1) break; /* tolerant against a tiny hole */ + if( num_cross(dx/2,dx/2, 0,dy-1,bp,cs) != 4 ) break; + if( num_cross( 0,dx-1, 0, 0,bp,cs) != 1 ) break; + if( num_cross( 0,dx-1,dy-1,dy-1,bp,cs) != 1 ) break; + if( num_cross( 0,dx-1,dy/2,dy/2,bp,cs) != 1 ) break; + for(i=0,y=dy/4;ydx/4 ) break; + j=loop(bp,x,y,dx,cs,1,RI); if( j>i ) i=j; + } if( ydx/2 ) break; + } if( y>=dy-dy/4-1 ) break; + // if( num_hole(x0,x1,y0,y1,box1->p,cs,NULL) != 0 ) break; + if (sdata->holes.num != 0) break; + ac=EURO_CURRENCY_SIGN; + Setac(box1,ac,ad); + if (ad>=100) return ac; + break; + } + // --- test LETTER_C_WITH_CEDILLA --------------------------------------------------- + if (bc==UNKNOWN) + if (gchar) + for(ad=98;dx>3 && dy>6;){ // provisorium + DBG( wchar_t c_ask='c'; ) + if (sdata->holes.num > 0) break; /* no tolerant against tiny holes */ + j=loop(bp,dx-1,dy/16 ,dy,cs,0,LE); + x=loop(bp,dx-1,dy/16+1,dy,cs,0,LE); if (xdx) Break; // ~4 ocr-b + if( num_cross(0,dx-1,3*dy/16,3*dy/16,bp,cs) > 2 ) break; + if( num_cross(0,dx-1, 0, dy-1,bp,cs) < 2 ) break; + if( num_cross(0,dx-1, dy/16, dy/16,bp,cs) > 2 ) break; + for( x=dx,i2=y=dy/4; y<3*dy/4; y++ ){ + j=loop(bp,0,y,dx,cs,0,RI); if(j0 ) break; i1=x; + for( x=0,i4=y=dy/4; y<5*dy/8; y++ ){ + j=loop(bp,dx-1,y,dx,cs,0,LE); if(j>x) { i4=y; x=j; } + } if( xdy/4) break; + j =loop(bp,dx/2,j,dy,cs,0,DO); if(j3*dx) break; + j =loop(bp,dx-1-j/2,dy-1-dy/8,dy,cs,0,UP); if(j>dy/2) break; // ~() + // if( num_hole(x0,x1,y0,y1,box1->p,cs,NULL) != 0 ) break; + if (sdata->holes.num) break; + if( hchar ) ac= LATIN_CAPITAL_LETTER_C_WITH_CEDILLA; + else ac= LATIN_SMALL_LETTER_C_WITH_CEDILLA; + Setac(box1,ac,ad); + if (ad>=100) return ac; + break; + + } + // --- test # --------------------------------------------------- + for(ad=99;dx>4 && dy>4;){ // never sure? + DBG( wchar_t c_ask='#'; ) + if (sdata->holes.num > 2) Break; /* tolerant against a tiny hole */ + if (sdata->holes.num < 1) Break; + if( num_cross(0,dx-1, dy/8, dy/8,bp,cs) != 2 ) Break; + if( num_cross(0,dx-1,dy-1-dy/8,dy-1-dy/8,bp,cs) != 2 ) Break; + if( num_cross(0,dx-1, dy/2, dy/2,bp,cs) != 2 ) Break; + if( num_cross(0,dx/2, dy/2, dy/2,bp,cs) != 1 ) Break; + /* fat "#" have only small ends on left and right side, we tolerate this */ + j=loop(bp, 0,dy/8,dx,cs,0,RI); if(j<1 || j=dx/2) Break; if (j=dx/2) Break; if (j3*dx/4) { i1=0; break; } + j=loop(bp,j, y,dx,cs,1,RI); if(j>i1) { i1=j; } + j=loop(bp,0,dy-1-y,dx,cs,0,RI); if(j>3*dx/4) { i1=0; break; } + j=loop(bp,j,dy-1-y,dx,cs,1,RI); if(j>i3) { i3=j; } + } + if (i1holes.num != 1) {ad=95*ad/100;} + if( num_hole(x0+dx/8,x1-dx/8,y0+dy/8,y1-dy/8,box1->p,cs,NULL) != 1 ) Break; + // if( num_hole(x0 ,x1 ,y0 ,y1 ,box1->p,cs,NULL) != 1 ) Break; + + ac=(wchar_t) '#'; + if( gchar ) {ad=99*ad/100;} + Setac(box1,ac,ad); + if (ad>=100) return ac; + break; + } + // --- test bullet, full_box, grabbed cursor, ZapfDingBats_156 + if (bc==UNKNOWN) + for(ad=96;dx>4 && dy>4 && 2*dx>dy;){ // provisorium + DBG( wchar_t c_ask='#'; ) + if( get_bw(x0,x1,y0,y1,box1->p,cs,2) != 0 ) break; + ac=BULLET; + if (gchar && !hchar) ad=80*ad/100; + Setac(box1,ac,ad); + if (ad>=100) return ac; + break; + } + /* --- test | (vertical line, could be a I or l) --- */ + for(ad=99;dy>4 && 2*dxp,cs,2) != 0 ) break; + /* more unsure if the borders are not exact */ + if( get_bw(x0 ,x0+dx/8,y0+dy/9,y1-dy/9,box1->p,cs,2) != 0 ) ad=99*ad/100; + if( get_bw(x1-dx/8,x1 ,y0+dy/9,y1-dy/9,box1->p,cs,2) != 0 ) ad=99*ad/100; + if( get_bw(x0+dx/8,x1-dx/8,y0 ,y0+dy/8,box1->p,cs,2) != 0 ) ad=99*ad/100; + if( get_bw(x0+dx/8,x1-dx/8,y1-dy/8,y1 ,box1->p,cs,2) != 0 ) ad=99*ad/100; + if (3*dxm2 && 2*y1> box1->m2+box1->m3) Break; + if (box1->m2 && 3*y1>2*box1->m2+box1->m3) ad=95*ad/100; + ac='|'; + if (!hchar) ad=98*ad/100; + Setac(box1,ac,ad); + break; + } + // --- test % --------------------------------------------------- + for(ad=100;dx>5 && dy>7;){ // provisorium + DBG( wchar_t c_ask='%'; ) + if (sdata->holes.num > 2) break; /* tolerant against a tiny hole */ + if( num_cross(x0,x1 ,y0+dy/4,y0+dy/4,box1->p,cs) != 3 + && num_cross(x0,x1 ,y0+dy/8,y0+dy/8,box1->p,cs) != 3 ) Break; + if( num_cross(x0,x1+dx/4,y1-dy/4,y1-dy/4,box1->p,cs) != 3 + && num_cross(x0,x1+dx/4,y1-dy/8,y1-dy/8,box1->p,cs) != 3 ) Break; + if( num_cross(x0,x1, y0, y1,box1->p,cs) < 4 + && num_cross(x0+dx/8,x1, y0, y1,box1->p,cs) < 4 + && num_cross(x0,x1+dx/4, y0, y1,box1->p,cs) < 4 + && dx>7 && dy>15) Break; + if( num_cross(x0,x1, y0, y1,box1->p,cs) !=5 ) ad=99*ad/100; + + if (dx>7 && dy>12) { + if( num_hole(x0 ,x1 ,y0,y1-dy/4,box1->p,cs,NULL) != 1 ) Break; + if( num_hole(x0+dx/4,x1+dx/4,y0+dy/4,y1,box1->p,cs,NULL) != 1 ) Break; + if( num_hole(x0 ,x1+dx/4,y0,y1 ,box1->p,cs,NULL) != 2 ) Break; + } else ad=98*ad/100; + // use box1->p instead of b, because % is a sum of 3 objects + if ( loop(box1->p,x0,y0 ,dx,cs,0,RI) + <= loop(box1->p,x0,y0+dy/16+1,dx,cs,0,RI) ) ad=96*ad/100; // X + if ( loop(box1->p,x1,y1 ,dx,cs,0,LE) + <= loop(box1->p,x1,y1-1-dy/16,dx,cs,0,LE) ) ad=96*ad/100; // X + for (x=0;xp,cs,2) != 2 ) break; + } if (x=100) return ac; + break; + } + // --- test Omega --------------------------------------------------- + for(ad=d=99;dx>7 && dy>7;){ // min 3x4 + DBG( wchar_t c_ask=GREEK_CAPITAL_LETTER_OMEGA; ) + if( get_bw(x0 , x0+dx/2,y0+dy/2 , y0+dy/2,box1->p,cs,1) != 1 ) Break; + if( get_bw(x1-dx/2 , x1 ,y0+dy/2 , y0+dy/2,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/2 , x0+dx/2,y0 , y0+dy/2,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/2 , x0+dx/2,y0+dy/3 , y1-dy/3,box1->p,cs,1) != 0 ) Break; + + if( num_cross(x0+dx/2,x0+dx/2,y0 , y1-dy/3,box1->p,cs) != 1 ) Break; + if( num_cross(x0+dx/3,x1-dx/3,y0 , y0 ,box1->p,cs) != 1 ) // AND + if( num_cross(x0+dx/3,x1-dx/3,y0+1 , y0+1 ,box1->p,cs) != 1 ) Break; + if( num_cross(x0+dx/3,x1-dx/3,y1 , y1 ,box1->p,cs) != 2 ) // against "rauschen" + if( num_cross(x0+dx/3,x1-dx/3,y1-1 , y1-1 ,box1->p,cs) != 2 ) Break; + if( num_cross(x0 ,x0 ,y0+dy/3 , y1-dy/3,box1->p,cs) != 1 ) + if( num_cross(x0+1 ,x0+1 ,y0+dy/3 , y1-dy/3,box1->p,cs) != 1 ) Break; + if( num_cross(x1 ,x1 ,y0+dy/3 , y1-dy/3,box1->p,cs) != 1 ) + if( num_cross(x1-1 ,x1-1 ,y0+dy/3 , y1-dy/3,box1->p,cs) != 1 ) Break; + if (sdata->holes.num) Break; + // if( num_hole(x0,x1,y0,y1,box1->p,cs,NULL) != 0 ) break; + + if( loop(bp,0 ,0 ,x1-x0,cs,0,RI)<= + loop(bp,0 ,2 ,x1-x0,cs,0,RI) ) Break; + if( loop(bp,dx/2,dy-dy/4,x1-x0,cs,0,RI)>dx/4 + || loop(bp,dx/2,dy-dy/4,x1-x0,cs,0,LE)>dx/4 ) Break; + if( loop(bp,dx/2,3*dy/8,x1-x0,cs,0,RI)dx/8) Break; + x=loop(bp,i,dy-1-dy/16,x1-x0,cs,1,RI); i+=x; if(i<3*dx/8 || i>dx/2) Break; + x=loop(bp,i,dy-1-dy/16,x1-x0,cs,0,RI); i+=x; if(i5*dx/8) Break; + x=loop(bp,i,dy-1-dy/16,x1-x0,cs,1,RI); i+=x; if(i<7*dx/8) Break; + + /* look for a vertikal gap at lower end */ + for( x=dx/4;x<3*dx/4;x++ ){ + i=loop(bp,x,dy-1,y1-y0,cs,0,UP); + if( i>3*dy/4 ) break; + } + if( x>=3*dx/4 ) Break; + + if( !hchar ) ad=60*ad/100; + bc=GREEK_CAPITAL_LETTER_OMEGA; + Setac(box1,bc,ad); + break; + } + + return bc; +} + +// -------------------- OCR engine ;) ---------------------------- +wchar_t ocr0(struct box *box1, pix *bp, int cs){ + // pix p=*(box1->p); + int i,j,d,x,y,x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + rx,ry,r1,r2,i1,i2,ad; /* tmp-vars */ + // ad,ac will be used in future + wchar_t bc = UNKNOWN; // bestletter + wchar_t um = SPACE; // modifier '" + int hchar; // char is higher than e + int gchar; // char has ink lower than m3 + int aa[4][4]; /* corner points, see xX, (x,y,dist^2,vector_idx) v0.41 */ + ocr0_shared_t sdata; // data used in all subfunctions + + sdata.box1=box1; + sdata.bp=bp; + sdata.cs=cs; + // --- hchar --- gchar ------------------------- + hchar=0;if( y0 < box1->m2-(box1->m2-box1->m1)/2 ) hchar=1; + gchar=0;if( y1 > box1->m3+(box1->m4-box1->m3)/2 ) gchar=1; + // if the char is slightly moved down correction can be done + if ( y0m2 && y1>box1->m3 && 2*y1m3+box1->m4) // moved + if( 2*(y0-(y1-box1->m3))<=2*box1->m2-(box1->m2-box1->m1) ) hchar=1; + + sdata.hchar=hchar; + sdata.gchar=gchar; + + /* search for nearest points to the 4 courners, typical for xX */ + /* this is faster as calling nearest_frame_vector 4 times */ + aa[0][0]=aa[1][0]=aa[2][0]=aa[3][0]=(x0+x1)/2; /* set to center */ + aa[0][1]=aa[1][1]=aa[2][1]=aa[3][1]=(y0+y1)/2; /* set to center */ + aa[0][2]=aa[1][2]=aa[2][2]=aa[3][2]=2*sq(128); /* distance to box edges */ + aa[0][3]=aa[1][3]=aa[2][3]=aa[3][3]=0; /* vector index */ + /* searching for 4 diagonal line ends */ + for (i=0;inum_frame_vectors[0];i++) { + x=box1->frame_vector[i][0]; /* take a vector */ + y=box1->frame_vector[i][1]; + /* distance to upper left end, normalized to 128 */ + j=0; d=sq((x-x0)*128/dx)+sq((y-y0)*128/dy); + // fprintf(stderr," setaa i= %2d xy= %3d %3d d=%5d aa[3]=%2d\n",i,x-x0,y-y0,d,aa[0][3]); + if (dnum_frames>0) // speedup v0.42 + num_hole(x0,x1,y0,y1,box1->p,cs,&sdata.holes); // call once + // printf(" num_holes=%d\n",sdata.holes.num); + + /* + after division of two glued chars, boundaries could be wrong, + check this first (ToDo: only if a flag set?) + */ + if (2*y0 < box1->m2+box1->m3) + if (box1->m4>box1->m3 && 2*box1->y1>box1->m4+box1->m3){ + /* could be a "I" from divided "Ij" or "Ig" */ + for(y=(box1->m3+box1->m2)/2;2*ym3+box1->m4;y++) + if( get_bw(x0,x1,y,y,box1->p,cs,1)==0 ) break; + if(2*ym3+box1->m4) + if( get_bw((x0+x1)/2,(x0+x1)/2,y,box1->m4,box1->p,cs,1)==0 ){ + /* be sure, ~_ */ + if (y>y0) y1=box1->y1=y; + } + } + + DBG( IFV fprintf(stderr,"\nDBG L%d (%d,%d): ",__LINE__,box1->x0,box1->y0); ) + DBG( IFV out_b(box1,sdata.bp,0,0,dx,dy,160); ) + DBG( IFV fprintf(stderr,"# aa[] %d %d %d %d %d %d %d %d (4 corners)" + " d= %d %d %d %d", + aa[0][0]-x0,aa[0][1]-y0,aa[1][0]-x0,aa[1][1]-y0, + aa[2][0]-x0,aa[2][1]-y0,aa[3][0]-x0,aa[3][1]-y0, + aa[0][2], aa[1][2], aa[2][2], aa[3][2]);) + DBG( IFV fprintf(stderr,"\n# holes %d gchar=%d hchar=%d",sdata.holes.num, gchar, hchar);) + + // --- test thin lines - --------------------------------- + for( ad=100; 2*dym3-box1->m2 && 3*dx>=4*dy && dx>2; ){ // min 3x3 (small font) + DBG( wchar_t c_ask='-'; ) + if( get_bw(x0+dx/8+1,x1-dx/8-1,y0+dy/8+((dy>2)?1:0), + y1-dy/8-((dy>2)?1:0),box1->p,cs,2)==2 ) break; + if( box1->dots ) { Setac(box1,'=',97);break; } + if (dx<=2*dy) ad=98*ad/100; + if (dx<=3*dy) ad=99*ad/100; + if (!box1->m4) ad=96*ad/100; + else { + if (y1>=box1->m3) { + if ( dx<2*dy) ad=98*ad/100; + if (2*dx<3*dy) ad=98*ad/100; + Setac(box1,'_',ad); + break; + } + } + Setac(box1,'-',ad); if (ad>=100) return '-'; + break; + } + // --- test thin lines = --------------------------------- + for( ; dy>2 && dx>2; ){ // min 3x3 (small font) + DBG( wchar_t c_ask='='; ) + for( y=y0;yp,cs,1)==1 ) break; + if( get_bw(x0+dx/10,x1-dx/10,y ,y ,box1->p,cs,2)==2 ) break; + if( get_bw(x0 ,x1 ,(y+y1)/2,(y+y1)/2,box1->p,cs,1)==1 ) break; + if( get_bw(x0+dx/10,x1-dx/10,y1 ,y1 ,box1->p,cs,2)==2 ) break; + Setac(box1,'=',100); + return '='; + } + // --- test dots : --------------------------------- + for( ad=100; dy>2 && dy>=2*dx; ){ // max 3x3 (small font) + + DBG( wchar_t c_ask=':'; ) + // check the gap hight + for( i1=dy/16;i1p,cs,1)==0 ) break; + if (i1>=dy/2) Break; + for( i2=dy/16;i2p,cs,1)==0 ) break; + if (i2>=dy/2) Break; + MSG(fprintf(stderr,"gap y12 %d %d",i1,i2);) + + if (box1->m3 && y1>box1->m3) ad=98*ad/100; // ~; + if (box1->m3 && 2*y0> box1->m2+box1->m1) ad=98*ad/100; // ~i + if (gchar) ad=99*ad/100; + ad=ad-abs(i1-i2)/dy*20; + if (abs(i1-dx)>dy/4) Break; // round or quadratic dots? + if (abs(i1-dx)>dy/8) ad=98*ad/100; + if (abs(i2-dx)>dy/4) Break; // round or quadratic dots? + if (abs(i2-dx)>dy/8) ad=98*ad/100; + if (box1->dots!=1) ad=96*ad/100; + Setac(box1,':',ad); // dx<=3 ad-- + if (ad>=100) return ':'; + break; + } + // --- test dots ; --------------------------------- + if( 2*y0> box1->m2+box1->m1 ) // ~i + if( 4*y1>=3*box1->m3+box1->m2 ) // ~: + for( ad=100; dy>5 && dx>1 && dy>2*dx; ){ // max 3x3 (small font) + DBG( wchar_t c_ask=';'; ) + // better would it be to detect round pixelcluster on top + // check high of upper and lower dot + for( i1=0;i1p,cs,1)==0 ) break; + if (i1>=dy/2) break; + for( i2=0;i2p,cs,1)==0 ) break; + if (i2m3) ad=97*ad/100; + if (i2-i1=100) return ';'; + break; + } + // --- first test small dots . --------------------------------- + if( 3*dym4-box1->m1 && abs(dx-dy)<(dx+dy)/4+2 + && 3*y1>=(2*box1->m3+ box1->m2) // dot near baseline? + && 5*y0>=(3*box1->m3+2*box1->m2) ){ // Jul00 + DBG( wchar_t c_ask='.'; ) + d=0; r1=60;r2=140; ad=99; + for(x=x0;x<=x1;x++)for(y=y0;y<=y1;y++){ /* circle equation */ + rx=100*(2*x-(x0+x1))/dx; // normalize to 15bit number + ry=100*(2*y-(y0+y1))/dy; + if( rx*rx + ry*ry < r1*r1 ) if( getpixel(box1->p,x,y)>=cs ){ d++;x=x1+1;y=y1+1; } + if( rx*rx + ry*ry > r2*r2 ) if( getpixel(box1->p,x,y)< cs ){ d++;x=x1+1;y=y1+1; } + // MSG( fprintf(stderr,"x= %3d %3d r= %6d %6d %6d", rx, ry, rx*rx+ry*ry, r1*r1, r2*r2); ) + } + if (loop(box1->p,x0,y0+dy/2,x1-x0,cs,0,RI)> dx/8) { ad=98*ad/100; // , + if (loop(box1->p,x0,y1 ,x1-x0,cs,0,RI)<=dx/8) ad=98*ad/100; } // , + MSG( fprintf(stderr,"d= %3d ad= %3d", d, ad); ) + if(d==0) + if( loop(box1->p,x0,y0,x1-x0,cs,0,RI) + <= loop(box1->p,x0,y1,x1-x0,cs,0,RI) + || loop(box1->p,x1,y0,x1-x0,cs,0,LE) + >= loop(box1->p,x1,y1,x1-x0,cs,0,LE) ) + { + bc='.'; + if (box1->dots) { Setac(box1,':',ad); ad=98*ad/100; } + Setac(box1,bc,ad); + } + } + // --- first test small dots , --------------------------------- + if( 3*dy<2*(box1->m4-box1->m1) + && 2*y0> box1->m2+box1->m3 + && (2*dx<3*dy + || get_bw(0,dx/2,dy/2,dy-1,bp,cs,1)==0) ){ // ocr-a-, + DBG( wchar_t c_ask=','; ) + ad=100; bc=','; + if (dy==1 && dx==1) ad=98*ad/100; + if (dy==2 && dx==1) ad=99*ad/100; // this is a problem case + if (dx>=dy) ad=99*ad/100; + if( 2*dy >= box1->m4-box1->m1) ad=98*ad/100; + if( loop(box1->p,x0,y0,x1-x0,cs,0,RI) /* simple line */ + > loop(box1->p,x0,y1,x1-x0,cs,0,RI) + && loop(box1->p,x1,y0,x1-x0,cs,0,LE) + < loop(box1->p,x1,y1,x1-x0,cs,0,LE) ) { ad=99*ad/100; } + else { /* with upper circle */ + if( loop(box1->p,x0,(y0+y1+1)/2,x1-x0,cs,0,RI)p,x1, y1 ,x1-x0,cs,0,LE)p,x0,y1-((dy>5)?1:0),x1-x0,cs,0,LE)>(dx+1)/2 ) + if( loop(box1->p,x0, y1 ,x1-x0,cs,0,LE)>(dx+1)/2 ) ad=96*ad/100; + } + if(box1->dots==1) { Setac(box1,';',ad); ad=99*ad/100; } + Setac(box1,bc,ad); + } + // --- first test small dots '" --------------------------------- + if( 2*dy < box1->m4 -box1->m1+1 + && 2*y0 < box1->m2 +box1->m3 + && 3*y1 < box1->m2+2*box1->m3+2 ){ + DBG( wchar_t c_ask='\''; ) + ad=100; bc='\''; + if (2*y1 >= box1->m2+box1->m3) { ad=96*ad/100; MSG({}) } // ~! + if (3*y1>=2*box1->m2+box1->m3) { ad=96*ad/100; MSG({}) } + if (get_bw(x0,x1,(box1->m2+box1->m3)/2,box1->m4,box1->p,cs,1)!=0) + { ad=98*ad/100; MSG({}) } + if (dx>4 + && num_cross(x0,x1,y1,y1,box1->p,cs) == 2) { // " " + bc='"'; + // ocr-a-" has no gap! + if ( get_bw((x0+x1)/2,(x0+x1)/2,y0,y1,box1->p,cs,1)!=0 ) ad=96*ad/100; + } else { + if ( num_cross(x0,x1, y0 , y0 ,box1->p,cs)!=1) ad=96*ad/100; + if ( num_cross(x0,x1,(y0+y1)/2,(y0+y1)/2,box1->p,cs)!=1) ad=98*ad/100; + if (dx>dy) { ad=96*ad/100; MSG({}) } + } + if ( num_cross(x1,x1, y0 , y1 ,box1->p,cs)!=1) ad=99*ad/100; + if ( num_cross(x0,x1, y0+dy/4 , y0+dy/4 ,box1->p,cs)>2) ad=97*ad/100; + if ( num_cross(x0,x1, y1-dy/4 , y1-dy/4 ,box1->p,cs)>2) ad=97*ad/100; // * 5x8font + if (2*y0 > box1->m1+box1->m2) ad=99*ad/100; + Setac(box1,bc,ad); + if (ad>=100) return bc; + } + // --- TILDE ~ --------------------------------- + if( 2*dym4-box1->m1 && dx>=dy && dx>3 && dy>1 + && 2*y0< box1->m1+box1->m2 + && 3*y1<2*box1->m2+box1->m3 ){ + if( loop(box1->p,x0,y0,dx,cs,0,RI) + > loop(box1->p,x0,y1,dx,cs,0,RI) + && loop(box1->p,x1,y0,dx,cs,0,LE) + < loop(box1->p,x1,y1,dx,cs,0,LE) + && num_cross(x0,x1,y0,y0,box1->p,cs) == 2 + && num_cross(x0,x1,y1,y1,box1->p,cs) == 2 ) { + DBG( wchar_t c_ask='~'; ) + bc=TILDE; + Setac(box1,bc,99); + } + } + // --- CIRCUMFLEX, hat ^ --------------------------------- + if( 2*dym4-box1->m1 && dx>=dy && dx>2 && dy>1 + && 2*y0< box1->m1+box1->m2 + && 3*y1<2*box1->m2+box1->m3 ){ + DBG( wchar_t c_ask='^'; ) + if( ( loop(box1->p,x0,y0 ,dx,cs,0,RI) + > loop(box1->p,x0,y1 ,dx,cs,0,RI)-dx/8 + || loop(box1->p,x0,y0 ,dx,cs,0,RI) + > loop(box1->p,x0,y1-1,dx,cs,0,RI)-dx/8 ) + && ( loop(box1->p,x1,y0 ,dx,cs,0,LE) + > loop(box1->p,x1,y1 ,dx,cs,0,LE)-dx/8 + || loop(box1->p,x1,y0 ,dx,cs,0,LE) + > loop(box1->p,x1,y1-1,dx,cs,0,LE)-dx/8 ) + && num_cross(x0,x1,y0 ,y0 ,box1->p,cs) == 1 + && ( num_cross(x0,x1,y1 ,y1 ,box1->p,cs) == 2 + || num_cross(x0,x1,y1-1,y1-1,box1->p,cs) == 2 )) { + bc='^'; + Setac(box1,bc,99); + } + } + // ------------------------------------------------------ +// if( dots==1 ){ um='\''; } +#if 0 /* ToDo: change to vectors, call here or in whatletter */ + if (box1->dots==0) { // i-dots ??? (if dots==0 is wrong) + y=box1->m1; + for(;yp,cs,1)==1) break; + { i1=y; + if( yp,cs,1)==0) break; + if( ybox1->m2-box1->m1){ + testumlaut(box1,cs,2,&um); // set modifier + new y0 ??? + + } + } + } +#else + um = box1->modifier; +#endif + if ( /* um==ACUTE_ACCENT || */ um==DIAERESIS){ + for(y=y1;y>y0;y--) + if( get_bw(x0,x1,y,y,box1->p,cs,1)==0) { y0=y; dy=y1-y0+1; break; } // scan "a "o "u + } + + // --- test numbers 0..9 --- separated for faster compilation + if( JOB->cfg.only_numbers ) return ocr0n(&sdata); + + // bc=ocr1(box1,bp,cs); + if(bc!=UNKNOWN && box1->num_ac>0 && box1->wac[0]==100) + return bc; // for fast compilable tests + + // ------ separated for faster compilation + // ToDo: inser ocr0_shared_t here and split into a,b,cC,d,e,f,g9,... +#define IF_NOT_SURE if(bc==UNKNOWN || box1->num_ac==0 || box1->wac[0]<100) + + IF_NOT_SURE bc=ocr0_eE(&sdata); + IF_NOT_SURE bc=ocr0_f(&sdata); + IF_NOT_SURE bc=ocr0_bB(&sdata); + IF_NOT_SURE bc=ocr0_dD(&sdata); + IF_NOT_SURE bc=ocr0_F(&sdata); + IF_NOT_SURE bc=ocr0_uU(&sdata); + IF_NOT_SURE bc=ocr0_micro(&sdata); + IF_NOT_SURE bc=ocr0_vV(&sdata); + IF_NOT_SURE bc=ocr0_rR(&sdata); + IF_NOT_SURE bc=ocr0_m(&sdata); + IF_NOT_SURE bc=ocr0_tT(&sdata); + IF_NOT_SURE bc=ocr0_sS(&sdata); + IF_NOT_SURE bc=ocr0_gG(&sdata); + IF_NOT_SURE bc=ocr0_xX(&sdata); + IF_NOT_SURE bc=ocr0_yY(&sdata); + IF_NOT_SURE bc=ocr0_zZ(&sdata); + IF_NOT_SURE bc=ocr0_wW(&sdata); + IF_NOT_SURE bc=ocr0_aA(&sdata); + IF_NOT_SURE bc=ocr0_cC(&sdata); + IF_NOT_SURE bc=ocr0_lL(&sdata); + IF_NOT_SURE bc=ocr0_oO(&sdata); + IF_NOT_SURE bc=ocr0_pP(&sdata); + IF_NOT_SURE bc=ocr0_qQ(&sdata); + IF_NOT_SURE bc=ocr0_iIjJ(&sdata); + IF_NOT_SURE bc=ocr0_n(&sdata); + IF_NOT_SURE bc=ocr0_M(&sdata); + IF_NOT_SURE bc=ocr0_N(&sdata); + IF_NOT_SURE bc=ocr0_h(&sdata); + IF_NOT_SURE bc=ocr0_H(&sdata); + IF_NOT_SURE bc=ocr0_k(&sdata); + IF_NOT_SURE bc=ocr0_K(&sdata); + IF_NOT_SURE bc=ocr0n(&sdata); + IF_NOT_SURE bc=ocr0_brackets(&sdata); + IF_NOT_SURE bc=ocr0p9(&sdata); + IF_NOT_SURE bc=ocr0px(&sdata); + + + if(box1->num_ac==0 && bc!=UNKNOWN) fprintf(stderr,""); + if(box1->num_ac>0 && box1->wac[0]>95) box1->c=bc=box1->tac[0]; + /* will be removed later, only fix old things */ + for (i=0;inum_ac;i++) if (box1->tac[i]==bc) { bc=box1->tac[0]; } + + return bc; +} + + diff --git a/.svn/pristine/e7/e7d563f52bf5295e6dba1d67ac23e9f6a160fab9.svn-base b/.svn/pristine/e7/e7d563f52bf5295e6dba1d67ac23e9f6a160fab9.svn-base new file mode 100644 index 0000000..fc8a5de --- /dev/null +++ b/.svn/pristine/e7/e7d563f52bf5295e6dba1d67ac23e9f6a160fab9.svn-base @@ -0,0 +1,165 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/.svn/pristine/e8/e88ae6b97c38928c3b555756a7b1b4c4d6ef2f6f.svn-base b/.svn/pristine/e8/e88ae6b97c38928c3b555756a7b1b4c4d6ef2f6f.svn-base new file mode 100644 index 0000000..66fd916 --- /dev/null +++ b/.svn/pristine/e8/e88ae6b97c38928c3b555756a7b1b4c4d6ef2f6f.svn-base @@ -0,0 +1,734 @@ +//$$ newmat8.cpp Advanced LU transform, scalar functions + +// Copyright (C) 1991,2,3,4,8: R B Davies + +#define WANT_MATH + +#include "include.h" + +#include "newmat.h" +#include "newmatrc.h" +#include "precisio.h" + +#ifdef use_namespace +namespace NEWMAT { +#endif + + +#ifdef DO_REPORT +#define REPORT { static ExeCounter ExeCount(__LINE__,8); ++ExeCount; } +#else +#define REPORT {} +#endif + + +/************************** LU transformation ****************************/ + +void CroutMatrix::ludcmp() +// LU decomposition from Golub & Van Loan, algorithm 3.4.1, (the "outer +// product" version). +// This replaces the code derived from Numerical Recipes in C in previous +// versions of newmat and being row oriented runs much faster with large +// matrices. +{ + REPORT + Tracer trace( "Crout(ludcmp)" ); sing = false; + Real* akk = store; // runs down diagonal + + Real big = fabs(*akk); int mu = 0; Real* ai = akk; int k; + + for (k = 1; k < nrows; k++) + { + ai += nrows; const Real trybig = fabs(*ai); + if (big < trybig) { big = trybig; mu = k; } + } + + + if (nrows) for (k = 0;;) + { + /* + int mu1; + { + Real big = fabs(*akk); mu1 = k; Real* ai = akk; int i; + + for (i = k+1; i < nrows; i++) + { + ai += nrows; const Real trybig = fabs(*ai); + if (big < trybig) { big = trybig; mu1 = i; } + } + } + if (mu1 != mu) cout << k << " " << mu << " " << mu1 << endl; + */ + + indx[k] = mu; + + if (mu != k) //row swap + { + Real* a1 = store + nrows * k; Real* a2 = store + nrows * mu; d = !d; + int j = nrows; + while (j--) { const Real temp = *a1; *a1++ = *a2; *a2++ = temp; } + } + + Real diag = *akk; big = 0; mu = k + 1; + if (diag != 0) + { + ai = akk; int i = nrows - k - 1; + while (i--) + { + ai += nrows; Real* al = ai; Real mult = *al / diag; *al = mult; + int l = nrows - k - 1; Real* aj = akk; + // work out the next pivot as part of this loop + // this saves a column operation + if (l-- != 0) + { + *(++al) -= (mult * *(++aj)); + const Real trybig = fabs(*al); + if (big < trybig) { big = trybig; mu = nrows - i - 1; } + while (l--) *(++al) -= (mult * *(++aj)); + } + } + } + else sing = true; + if (++k == nrows) break; // so next line won't overflow + akk += nrows + 1; + } +} + +void CroutMatrix::lubksb(Real* B, int mini) +{ + REPORT + // this has been adapted from Numerical Recipes in C. The code has been + // substantially streamlined, so I do not think much of the original + // copyright remains. However there is not much opportunity for + // variation in the code, so it is still similar to the NR code. + // I follow the NR code in skipping over initial zeros in the B vector. + + Tracer trace("Crout(lubksb)"); + if (sing) Throw(SingularException(*this)); + int i, j, ii = nrows; // ii initialised : B might be all zeros + + + // scan for first non-zero in B + for (i = 0; i < nrows; i++) + { + int ip = indx[i]; Real temp = B[ip]; B[ip] = B[i]; B[i] = temp; + if (temp != 0.0) { ii = i; break; } + } + + Real* bi; Real* ai; + i = ii + 1; + + if (i < nrows) + { + bi = B + ii; ai = store + ii + i * nrows; + for (;;) + { + int ip = indx[i]; Real sum = B[ip]; B[ip] = B[i]; + Real* aij = ai; Real* bj = bi; j = i - ii; + while (j--) sum -= *aij++ * *bj++; + B[i] = sum; + if (++i == nrows) break; + ai += nrows; + } + } + + ai = store + nrows * nrows; + + for (i = nrows - 1; i >= mini; i--) + { + Real* bj = B+i; ai -= nrows; Real* ajx = ai+i; + Real sum = *bj; Real diag = *ajx; + j = nrows - i; while(--j) sum -= *(++ajx) * *(++bj); + B[i] = sum / diag; + } +} + +/****************************** scalar functions ****************************/ + +inline Real square(Real x) { return x*x; } + +Real GeneralMatrix::SumSquare() const +{ + REPORT + Real sum = 0.0; int i = storage; Real* s = store; + while (i--) sum += square(*s++); + ((GeneralMatrix&)*this).tDelete(); return sum; +} + +Real GeneralMatrix::SumAbsoluteValue() const +{ + REPORT + Real sum = 0.0; int i = storage; Real* s = store; + while (i--) sum += fabs(*s++); + ((GeneralMatrix&)*this).tDelete(); return sum; +} + +Real GeneralMatrix::Sum() const +{ + REPORT + Real sum = 0.0; int i = storage; Real* s = store; + while (i--) sum += *s++; + ((GeneralMatrix&)*this).tDelete(); return sum; +} + +// maxima and minima + +// There are three sets of routines +// MaximumAbsoluteValue, MinimumAbsoluteValue, Maximum, Minimum +// ... these find just the maxima and minima +// MaximumAbsoluteValue1, MinimumAbsoluteValue1, Maximum1, Minimum1 +// ... these find the maxima and minima and their locations in a +// one dimensional object +// MaximumAbsoluteValue2, MinimumAbsoluteValue2, Maximum2, Minimum2 +// ... these find the maxima and minima and their locations in a +// two dimensional object + +// If the matrix has no values throw an exception + +// If we do not want the location find the maximum or minimum on the +// array stored by GeneralMatrix +// This won't work for BandMatrices. We call ClearCorner for +// MaximumAbsoluteValue but for the others use the AbsoluteMinimumValue2 +// version and discard the location. + +// For one dimensional objects, when we want the location of the +// maximum or minimum, work with the array stored by GeneralMatrix + +// For two dimensional objects where we want the location of the maximum or +// minimum proceed as follows: + +// For rectangular matrices use the array stored by GeneralMatrix and +// deduce the location from the location in the GeneralMatrix + +// For other two dimensional matrices use the Matrix Row routine to find the +// maximum or minimum for each row. + +static void NullMatrixError(const GeneralMatrix* gm) +{ + ((GeneralMatrix&)*gm).tDelete(); + Throw(ProgramException("Maximum or minimum of null matrix")); +} + +Real GeneralMatrix::MaximumAbsoluteValue() const +{ + REPORT + if (storage == 0) NullMatrixError(this); + Real maxval = 0.0; int l = storage; Real* s = store; + while (l--) { Real a = fabs(*s++); if (maxval < a) maxval = a; } + ((GeneralMatrix&)*this).tDelete(); return maxval; +} + +Real GeneralMatrix::MaximumAbsoluteValue1(int& i) const +{ + REPORT + if (storage == 0) NullMatrixError(this); + Real maxval = 0.0; int l = storage; Real* s = store; int li = storage; + while (l--) + { Real a = fabs(*s++); if (maxval <= a) { maxval = a; li = l; } } + i = storage - li; + ((GeneralMatrix&)*this).tDelete(); return maxval; +} + +Real GeneralMatrix::MinimumAbsoluteValue() const +{ + REPORT + if (storage == 0) NullMatrixError(this); + int l = storage - 1; Real* s = store; Real minval = fabs(*s++); + while (l--) { Real a = fabs(*s++); if (minval > a) minval = a; } + ((GeneralMatrix&)*this).tDelete(); return minval; +} + +Real GeneralMatrix::MinimumAbsoluteValue1(int& i) const +{ + REPORT + if (storage == 0) NullMatrixError(this); + int l = storage - 1; Real* s = store; Real minval = fabs(*s++); int li = l; + while (l--) + { Real a = fabs(*s++); if (minval >= a) { minval = a; li = l; } } + i = storage - li; + ((GeneralMatrix&)*this).tDelete(); return minval; +} + +Real GeneralMatrix::Maximum() const +{ + REPORT + if (storage == 0) NullMatrixError(this); + int l = storage - 1; Real* s = store; Real maxval = *s++; + while (l--) { Real a = *s++; if (maxval < a) maxval = a; } + ((GeneralMatrix&)*this).tDelete(); return maxval; +} + +Real GeneralMatrix::Maximum1(int& i) const +{ + REPORT + if (storage == 0) NullMatrixError(this); + int l = storage - 1; Real* s = store; Real maxval = *s++; int li = l; + while (l--) { Real a = *s++; if (maxval <= a) { maxval = a; li = l; } } + i = storage - li; + ((GeneralMatrix&)*this).tDelete(); return maxval; +} + +Real GeneralMatrix::Minimum() const +{ + REPORT + if (storage == 0) NullMatrixError(this); + int l = storage - 1; Real* s = store; Real minval = *s++; + while (l--) { Real a = *s++; if (minval > a) minval = a; } + ((GeneralMatrix&)*this).tDelete(); return minval; +} + +Real GeneralMatrix::Minimum1(int& i) const +{ + REPORT + if (storage == 0) NullMatrixError(this); + int l = storage - 1; Real* s = store; Real minval = *s++; int li = l; + while (l--) { Real a = *s++; if (minval >= a) { minval = a; li = l; } } + i = storage - li; + ((GeneralMatrix&)*this).tDelete(); return minval; +} + +Real GeneralMatrix::MaximumAbsoluteValue2(int& i, int& j) const +{ + REPORT + if (storage == 0) NullMatrixError(this); + Real maxval = 0.0; int nr = Nrows(); + MatrixRow mr((GeneralMatrix*)this, LoadOnEntry+DirectPart); + for (int r = 1; r <= nr; r++) + { + int c; maxval = mr.MaximumAbsoluteValue1(maxval, c); + if (c > 0) { i = r; j = c; } + mr.Next(); + } + ((GeneralMatrix&)*this).tDelete(); return maxval; +} + +Real GeneralMatrix::MinimumAbsoluteValue2(int& i, int& j) const +{ + REPORT + if (storage == 0) NullMatrixError(this); + Real minval = FloatingPointPrecision::Maximum(); int nr = Nrows(); + MatrixRow mr((GeneralMatrix*)this, LoadOnEntry+DirectPart); + for (int r = 1; r <= nr; r++) + { + int c; minval = mr.MinimumAbsoluteValue1(minval, c); + if (c > 0) { i = r; j = c; } + mr.Next(); + } + ((GeneralMatrix&)*this).tDelete(); return minval; +} + +Real GeneralMatrix::Maximum2(int& i, int& j) const +{ + REPORT + if (storage == 0) NullMatrixError(this); + Real maxval = -FloatingPointPrecision::Maximum(); int nr = Nrows(); + MatrixRow mr((GeneralMatrix*)this, LoadOnEntry+DirectPart); + for (int r = 1; r <= nr; r++) + { + int c; maxval = mr.Maximum1(maxval, c); + if (c > 0) { i = r; j = c; } + mr.Next(); + } + ((GeneralMatrix&)*this).tDelete(); return maxval; +} + +Real GeneralMatrix::Minimum2(int& i, int& j) const +{ + REPORT + if (storage == 0) NullMatrixError(this); + Real minval = FloatingPointPrecision::Maximum(); int nr = Nrows(); + MatrixRow mr((GeneralMatrix*)this, LoadOnEntry+DirectPart); + for (int r = 1; r <= nr; r++) + { + int c; minval = mr.Minimum1(minval, c); + if (c > 0) { i = r; j = c; } + mr.Next(); + } + ((GeneralMatrix&)*this).tDelete(); return minval; +} + +Real Matrix::MaximumAbsoluteValue2(int& i, int& j) const +{ + REPORT + int k; Real m = GeneralMatrix::MaximumAbsoluteValue1(k); k--; + i = k / Ncols(); j = k - i * Ncols(); i++; j++; + return m; +} + +Real Matrix::MinimumAbsoluteValue2(int& i, int& j) const +{ + REPORT + int k; Real m = GeneralMatrix::MinimumAbsoluteValue1(k); k--; + i = k / Ncols(); j = k - i * Ncols(); i++; j++; + return m; +} + +Real Matrix::Maximum2(int& i, int& j) const +{ + REPORT + int k; Real m = GeneralMatrix::Maximum1(k); k--; + i = k / Ncols(); j = k - i * Ncols(); i++; j++; + return m; +} + +Real Matrix::Minimum2(int& i, int& j) const +{ + REPORT + int k; Real m = GeneralMatrix::Minimum1(k); k--; + i = k / Ncols(); j = k - i * Ncols(); i++; j++; + return m; +} + +Real SymmetricMatrix::SumSquare() const +{ + REPORT + Real sum1 = 0.0; Real sum2 = 0.0; Real* s = store; int nr = nrows; + for (int i = 0; iSumSquare(); return s; +} + +Real BaseMatrix::NormFrobenius() const + { REPORT return sqrt(SumSquare()); } + +Real BaseMatrix::SumAbsoluteValue() const +{ + REPORT GeneralMatrix* gm = ((BaseMatrix&)*this).Evaluate(); + Real s = gm->SumAbsoluteValue(); return s; +} + +Real BaseMatrix::Sum() const +{ + REPORT GeneralMatrix* gm = ((BaseMatrix&)*this).Evaluate(); + Real s = gm->Sum(); return s; +} + +Real BaseMatrix::MaximumAbsoluteValue() const +{ + REPORT GeneralMatrix* gm = ((BaseMatrix&)*this).Evaluate(); + Real s = gm->MaximumAbsoluteValue(); return s; +} + +Real BaseMatrix::MaximumAbsoluteValue1(int& i) const +{ + REPORT GeneralMatrix* gm = ((BaseMatrix&)*this).Evaluate(); + Real s = gm->MaximumAbsoluteValue1(i); return s; +} + +Real BaseMatrix::MaximumAbsoluteValue2(int& i, int& j) const +{ + REPORT GeneralMatrix* gm = ((BaseMatrix&)*this).Evaluate(); + Real s = gm->MaximumAbsoluteValue2(i, j); return s; +} + +Real BaseMatrix::MinimumAbsoluteValue() const +{ + REPORT GeneralMatrix* gm = ((BaseMatrix&)*this).Evaluate(); + Real s = gm->MinimumAbsoluteValue(); return s; +} + +Real BaseMatrix::MinimumAbsoluteValue1(int& i) const +{ + REPORT GeneralMatrix* gm = ((BaseMatrix&)*this).Evaluate(); + Real s = gm->MinimumAbsoluteValue1(i); return s; +} + +Real BaseMatrix::MinimumAbsoluteValue2(int& i, int& j) const +{ + REPORT GeneralMatrix* gm = ((BaseMatrix&)*this).Evaluate(); + Real s = gm->MinimumAbsoluteValue2(i, j); return s; +} + +Real BaseMatrix::Maximum() const +{ + REPORT GeneralMatrix* gm = ((BaseMatrix&)*this).Evaluate(); + Real s = gm->Maximum(); return s; +} + +Real BaseMatrix::Maximum1(int& i) const +{ + REPORT GeneralMatrix* gm = ((BaseMatrix&)*this).Evaluate(); + Real s = gm->Maximum1(i); return s; +} + +Real BaseMatrix::Maximum2(int& i, int& j) const +{ + REPORT GeneralMatrix* gm = ((BaseMatrix&)*this).Evaluate(); + Real s = gm->Maximum2(i, j); return s; +} + +Real BaseMatrix::Minimum() const +{ + REPORT GeneralMatrix* gm = ((BaseMatrix&)*this).Evaluate(); + Real s = gm->Minimum(); return s; +} + +Real BaseMatrix::Minimum1(int& i) const +{ + REPORT GeneralMatrix* gm = ((BaseMatrix&)*this).Evaluate(); + Real s = gm->Minimum1(i); return s; +} + +Real BaseMatrix::Minimum2(int& i, int& j) const +{ + REPORT GeneralMatrix* gm = ((BaseMatrix&)*this).Evaluate(); + Real s = gm->Minimum2(i, j); return s; +} + +Real DotProduct(const Matrix& A, const Matrix& B) +{ + REPORT + int n = A.storage; + if (n != B.storage) Throw(IncompatibleDimensionsException(A,B)); + Real sum = 0.0; Real* a = A.store; Real* b = B.store; + while (n--) sum += *a++ * *b++; + return sum; +} + +Real Matrix::Trace() const +{ + REPORT + Tracer trace("Trace"); + int i = nrows; int d = i+1; + if (i != ncols) Throw(NotSquareException(*this)); + Real sum = 0.0; Real* s = store; +// while (i--) { sum += *s; s += d; } + if (i) for (;;) { sum += *s; if (!(--i)) break; s += d; } + ((GeneralMatrix&)*this).tDelete(); return sum; +} + +Real DiagonalMatrix::Trace() const +{ + REPORT + int i = nrows; Real sum = 0.0; Real* s = store; + while (i--) sum += *s++; + ((GeneralMatrix&)*this).tDelete(); return sum; +} + +Real SymmetricMatrix::Trace() const +{ + REPORT + int i = nrows; Real sum = 0.0; Real* s = store; int j = 2; + // while (i--) { sum += *s; s += j++; } + if (i) for (;;) { sum += *s; if (!(--i)) break; s += j++; } + ((GeneralMatrix&)*this).tDelete(); return sum; +} + +Real LowerTriangularMatrix::Trace() const +{ + REPORT + int i = nrows; Real sum = 0.0; Real* s = store; int j = 2; + // while (i--) { sum += *s; s += j++; } + if (i) for (;;) { sum += *s; if (!(--i)) break; s += j++; } + ((GeneralMatrix&)*this).tDelete(); return sum; +} + +Real UpperTriangularMatrix::Trace() const +{ + REPORT + int i = nrows; Real sum = 0.0; Real* s = store; + while (i) { sum += *s; s += i--; } // won t cause a problem + ((GeneralMatrix&)*this).tDelete(); return sum; +} + +Real BandMatrix::Trace() const +{ + REPORT + int i = nrows; int w = lower+upper+1; + Real sum = 0.0; Real* s = store+lower; + // while (i--) { sum += *s; s += w; } + if (i) for (;;) { sum += *s; if (!(--i)) break; s += w; } + ((GeneralMatrix&)*this).tDelete(); return sum; +} + +Real SymmetricBandMatrix::Trace() const +{ + REPORT + int i = nrows; int w = lower+1; + Real sum = 0.0; Real* s = store+lower; + // while (i--) { sum += *s; s += w; } + if (i) for (;;) { sum += *s; if (!(--i)) break; s += w; } + ((GeneralMatrix&)*this).tDelete(); return sum; +} + +Real IdentityMatrix::Trace() const +{ + Real sum = *store * nrows; + ((GeneralMatrix&)*this).tDelete(); return sum; +} + + +Real BaseMatrix::Trace() const +{ + REPORT + MatrixType Diag = MatrixType::Dg; Diag.SetDataLossOK(); + GeneralMatrix* gm = ((BaseMatrix&)*this).Evaluate(Diag); + Real sum = gm->Trace(); return sum; +} + +void LogAndSign::operator*=(Real x) +{ + if (x > 0.0) { log_value += log(x); } + else if (x < 0.0) { log_value += log(-x); sign = -sign; } + else sign = 0; +} + +void LogAndSign::PowEq(int k) +{ + if (sign) + { + log_value *= k; + if ( (k & 1) == 0 ) sign = 1; + } +} + +Real LogAndSign::Value() const +{ + Tracer et("LogAndSign::Value"); + if (log_value >= FloatingPointPrecision::LnMaximum()) + Throw(OverflowException("Overflow in exponential")); + return sign * exp(log_value); +} + +LogAndSign::LogAndSign(Real f) +{ + if (f == 0.0) { log_value = 0.0; sign = 0; return; } + else if (f < 0.0) { sign = -1; f = -f; } + else sign = 1; + log_value = log(f); +} + +LogAndSign DiagonalMatrix::LogDeterminant() const +{ + REPORT + int i = nrows; LogAndSign sum; Real* s = store; + while (i--) sum *= *s++; + ((GeneralMatrix&)*this).tDelete(); return sum; +} + +LogAndSign LowerTriangularMatrix::LogDeterminant() const +{ + REPORT + int i = nrows; LogAndSign sum; Real* s = store; int j = 2; + // while (i--) { sum *= *s; s += j++; } + if (i) for(;;) { sum *= *s; if (!(--i)) break; s += j++; } + ((GeneralMatrix&)*this).tDelete(); return sum; +} + +LogAndSign UpperTriangularMatrix::LogDeterminant() const +{ + REPORT + int i = nrows; LogAndSign sum; Real* s = store; + while (i) { sum *= *s; s += i--; } + ((GeneralMatrix&)*this).tDelete(); return sum; +} + +LogAndSign IdentityMatrix::LogDeterminant() const +{ + REPORT + int i = nrows; LogAndSign sum; + if (i > 0) { sum = *store; sum.PowEq(i); } + ((GeneralMatrix&)*this).tDelete(); return sum; +} + +LogAndSign BaseMatrix::LogDeterminant() const +{ + REPORT GeneralMatrix* gm = ((BaseMatrix&)*this).Evaluate(); + LogAndSign sum = gm->LogDeterminant(); return sum; +} + +LogAndSign GeneralMatrix::LogDeterminant() const +{ + REPORT + Tracer tr("LogDeterminant"); + if (nrows != ncols) Throw(NotSquareException(*this)); + CroutMatrix C(*this); return C.LogDeterminant(); +} + +LogAndSign CroutMatrix::LogDeterminant() const +{ + REPORT + if (sing) return 0.0; + int i = nrows; int dd = i+1; LogAndSign sum; Real* s = store; + if (i) for(;;) + { + sum *= *s; + if (!(--i)) break; + s += dd; + } + if (!d) sum.ChangeSign(); return sum; + +} + +Real BaseMatrix::Determinant() const +{ + REPORT + Tracer tr("Determinant"); + REPORT GeneralMatrix* gm = ((BaseMatrix&)*this).Evaluate(); + LogAndSign ld = gm->LogDeterminant(); + return ld.Value(); +} + + + + + +LinearEquationSolver::LinearEquationSolver(const BaseMatrix& bm) +{ + gm = ( ((BaseMatrix&)bm).Evaluate() )->MakeSolver(); + if (gm==&bm) { REPORT gm = gm->Image(); } + // want a copy if *gm is actually bm + else { REPORT gm->Protect(); } +} + + +#ifdef use_namespace +} +#endif + diff --git a/.svn/pristine/e8/e8b3584064b2e6cfda4b390a503f6a771349ad2c.svn-base b/.svn/pristine/e8/e8b3584064b2e6cfda4b390a503f6a771349ad2c.svn-base new file mode 100644 index 0000000..cc0fbae --- /dev/null +++ b/.svn/pristine/e8/e8b3584064b2e6cfda4b390a503f6a771349ad2c.svn-base @@ -0,0 +1,140 @@ +/* + * frames2pose implementation + * + * Copyright (C) Dorit Borrmann + * + * Released under the GPL version 3. + * + */ + + +#include +#include +using std::cout; +using std::cerr; +using std::endl; +using std::ifstream; +using std::ofstream; + +#include "slam6d/globals.icc" +#include + +#ifndef _MSC_VER +#include +#else +#include "XGetopt.h" +#endif + +#if WIN32 +#define snprintf sprintf_s +#endif + +int parseArgs(int argc,char **argv, char dir[255], int& start, int& end){ + start = 0; + end = -1; // -1 indicates no limitation + + int c; + // from unistd.h + extern char *optarg; + extern int optind; + + cout << endl; + while ((c = getopt (argc, argv, "s:e:")) != -1) + switch (c) + { + case 's': + start = atoi(optarg); + if (start < 0) { cerr << "Error: Cannot start at a negative scan number.\n"; exit(1); } + break; + case 'e': + end = atoi(optarg); + if (end < 0) { cerr << "Error: Cannot end at a negative scan number.\n"; exit(1); } + if (end < start) { cerr << "Error: cannot be smaller than .\n"; exit(1); } + break; + } + + if (optind != argc-1) { + cerr << "\n*** Directory missing ***\n" << endl; + cout << endl + << "Usage: " << argv[0] << " [-s NR] [-e NR] directory" << endl << endl; + + cout << " -s NR start at scan NR (i.e., neglects the first NR scans)" << endl + << " [ATTENTION: counting starts with 0]" << endl + << " -e NR end after scan NR" << "" << endl + << endl; + cout << "Reads frame files from directory/scan???.frames and converts them to directory/scan???.pose." << endl; + abort(); + } + strncpy(dir,argv[optind],255); + +#ifndef _MSC_VER + if (dir[strlen(dir)-1] != '/') strcat(dir,"/"); +#else + if (dir[strlen(dir)-1] != '\\') strcat(dir,"\\"); +#endif + return 0; +} + + +int main(int argc, char **argv) +{ + int start = 0, end = -1; + char dir[255]; + parseArgs(argc, argv, dir, start, end); + + int fileCounter = start; + char poseFileName[255]; + char frameFileName[255]; + + ifstream pose_in; + ofstream pose_out; + + double rPos[3],rPosTheta[3]; + + double tMatrix[17]; + + for (;;) { + if (end > -1 && fileCounter > end) break; // 'nuf read + snprintf(frameFileName,255,"%sscan%.3d.frames",dir,fileCounter); + snprintf(poseFileName,255,"%sscan%.3d.pose",dir,fileCounter++); + + pose_in.open(frameFileName); + + if (!pose_in.good()) break; // no more files in the directory + // read 3D scan + + cout << "Reading frame " << frameFileName << "..." << endl; + + while(pose_in.good()) { + for (unsigned int i = 0; i < 17; pose_in >> tMatrix[i++]); + } + + Matrix4ToEuler(tMatrix, rPosTheta, rPos); + + + pose_in.close(); + pose_in.clear(); + + pose_out.open(poseFileName); + + cout << "Writing pose file... " << poseFileName << endl; + + for(int i = 0; i < 3; i++) { + pose_out << rPos[i] << " "; + } + pose_out << endl; + + for(int i = 0; i < 3; i++) { + pose_out << deg(rPosTheta[i]) << " "; + } + pose_out << endl; + + pose_out.close(); + pose_out.clear(); + + + cout << " done." << endl; + } + +} + diff --git a/.svn/pristine/e8/e8ccc08850bf9ad9953e47e8d7e1da1e5a51c1bf.svn-base b/.svn/pristine/e8/e8ccc08850bf9ad9953e47e8d7e1da1e5a51c1bf.svn-base new file mode 100644 index 0000000..9202c0f --- /dev/null +++ b/.svn/pristine/e8/e8ccc08850bf9ad9953e47e8d7e1da1e5a51c1bf.svn-base @@ -0,0 +1,614 @@ +/* + * scan_io_velodyne implementation + * + * Copyright (C) Mohammad Faisal, Dorit Borrmann, Andreas Nuechter + * + * Released under the GPL version 3. + * + */ + +/** + * @file + * @brief Implementation of reading 3D scans + * @author Andreas Nuechter. Jacobs University Bremen gGmbH + * @author Dorit Borrmann. Smart Systems Group, Jacobs University Bremen gGmbH, Germany. + * @author Mohammad Faisal. Smart Systems Group, Jacobs University Bremen gGmbH, Germany. + */ +#include "slam6d/point.h" +#include "veloslam/velodefs.h" +#include "scanio/scan_io_velodyne.h" +#include "slam6d/globals.icc" +#include +#include +#include +using std::ifstream; +using std::ostrstream; +using std::cerr; +using std::endl; +using std::ends; + +#include +using std::swap; + +#include +#include +#include +#include +#include + +using namespace std; + +#ifdef _MSC_VER +#include +#endif +#include +#include +using namespace boost::filesystem; + +#define DATA_PATH_PREFIX "scan" +#define DATA_PATH_SUFFIX ".bin" +#define POSE_PATH_PREFIX "scan" +#define POSE_PATH_SUFFIX ".pose" + +#define BLOCK_OFFSET 42+16 + +#define BLOCK_SIZE 1206 +#define CIRCLELENGTH 360 +#define VELODYNE_NUM_LASERS 64 +#define CircleBufferSize CIRCLELENGTH*32*12 +#define CIRCLEROUND CIRCLELENGTH*6 + +#define RADIANS_PER_LSB 0.0174532925 +#define METERS_PER_LSB 0.002 +#define METERS_PER_CM 0.01 + +#define TWOPI_INV (0.5/M_PI) +#define TWOPI (2*M_PI) + +typedef struct raw_packet + { + unsigned char dat[1200]; + unsigned short revolution; + unsigned char status[4]; + } raw_packet_t; + + +typedef unsigned char BYTE; + +long CountOfLidar = 0; + +//Changes the variable to be filled dynamically. Added a 6th variable to enable or disable a specific sensor +double velodyne_calibrated[VELODYNE_NUM_LASERS][6]; + +/** + * Method to fill the calibration data using the Velodyne64 calibration data from Wuhan. + */ +int backup() +{ + double velodyne_calibrated1[64][6] = + { + { -7.1581192, -4.5, 102, 21.560343, -2.5999999, 1}, + { -6.8178215, -3.4000001, 125, 21.516994, 2.5999999, 1}, + { 0.31782165, 3, 130, 20.617426, -2.5999999, 1}, + { 0.65811908, 4.5999999, 128, 20.574717, 2.5999999, 1}, + { -6.4776502, -0.5, 112, 21.473722, -2.5999999, 1}, + { -6.1375928, 1, 125, 21.430525, 2.5999999, 1}, + { -8.520812, -1.5, 106, 21.734608, -2.5999999, 1}, + { -8.1798887, 0.40000001, 127, 21.690901, 2.5999999, 1}, + { -5.797637, 4, 111, 21.387396, -2.5999999, 1}, + { -5.4577708, 5.5, 126, 21.34433, 2.5999999, 1}, + { -7.8391404, 3.0999999, 113, 21.647291, -2.5999999, 1}, + { -7.4985547, 4.5, 123, 21.603773, 2.5999999, 1}, + { -3.0802133, -4.5, 105, 21.044245, -2.5999999, 1}, + { -2.7406337, -3.2, 133, 21.001518, 2.5999999, 1}, + { -5.1179824, -5.5, 110, 21.301321, -2.5999999, 1}, + { -4.7782598, -4, 129, 21.258366, 2.5999999, 1}, + { -2.4010365, -0.2, 111, 20.958813, -2.5999999, 1}, + { -2.0614092, 1, 130, 20.916126, 2.5999999, 1}, + { -4.4385905, -1.2, 115, 21.215462, -2.5999999, 1}, + { -4.0989642, 0, 133, 21.172602, 2.5999999, 1}, + { -1.7217404, 3.8, 113, 20.873451, -2.5999999, 1}, + { -1.3820176, 5, 130, 20.830786, 2.5999999, 1}, + { -3.7593663, 3, 117, 21.129782, -2.5999999, 1}, + { -3.4197867, 4.5, 129, 21.086998, 2.5999999, 1}, + { 0.998555, -4.5, 107, 20.531982, -2.5999999, 1}, + { 1.339141, -3.2, 131, 20.489222, 2.5999999, 1}, + { -1.0422293, -5.4000001, 128, 20.788124, -2.5999999, 1}, + { -0.70236301, -4, 134, 20.745461, 2.5999999, 1}, + { 1.679889, -0.5, 124, 20.446428, -2.5999999, 1}, + { 2.0208123, 1, 136, 20.403601, 2.5999999, 1}, + { -0.36240739, -1.5, 131, 20.702793, -2.5999999, 1}, + { -0.022349782, 0.2, 136, 20.660116, 2.5999999, 1}, + { -22.737886, -7.8000002, 101, 16.019152, -2.5999999, 1}, + { -22.226072, -5, 88, 15.954137, 2.5999999, 1}, + { -11.513928, 4.5, 121, 14.680806, -2.5999999, 1}, + { -11.002114, 7.4000001, 88, 14.623099, 2.5999999, 1}, + { -21.714685, -1, 94, 15.889649, -2.5999999, 1}, + { -21.203688, 2, 88, 15.82566, 2.5999999, 1}, + { -24.790272, -2.5, 114, 16.284933, -2.5999999, 1}, + { -24.276321, 0.5, 89, 16.217583, 2.5999999, 1}, + { -20.693031, 6, 98, 15.762167, -2.5999999, 1}, + { -20.182682, 9, 92, 15.699132, 2.5999999, 1}, + { -23.762968, 4.5, 107, 16.15085, -2.5999999, 1}, + { -23.250172, 7.5, 80, 16.084715, 2.5999999, 1}, + { -16.615318, -7.5, 121, 15.26925, -2.5999999, 1}, + { -16.105938, -5, 92, 15.209245, 2.5999999, 1}, + { -19.672594, -9, 119, 15.63654, -2.5999999, 1}, + { -19.162729, -6, 89, 15.574372, 2.5999999, 1}, + { -15.596496, -1, 109, 15.14954, -2.5999999, 1}, + { -15.086954, 2, 88, 15.090119, 2.5999999, 1}, + { -18.653046, -2, 117, 15.51261, -2.5999999, 1}, + { -18.143503, 0.69999999, 88, 15.451235, 2.5999999, 1}, + { -14.577271, 5.5, 112, 15.030966, -2.5999999, 1}, + { -14.067405, 8.3999996, 87, 14.972065, 2.5999999, 1}, + { -17.634062, 5, 119, 15.390228, -6.1999998, 1}, + { -17.124681, 7.5, 97, 15.329572, 2.5999999, 1}, + { -10.489829, -7.5, 119, 14.565539, -2.5999999, 1}, + { -9.9770317, -4.6999998, 95, 14.508112, 2.5999999, 1}, + { -13.557318, -8.5, 126, 14.913401, -2.5999999, 1}, + { -13.046968, -6, 92, 14.854958, 2.5999999, 1}, + { -9.4636793, -1, 112, 14.450804, -2.5999999, 1}, + { -8.949728, 1.5, 93, 14.3936, 2.5999999, 1}, + { -12.536313, -2, 121, 14.796721, -2.5999999, 1}, + { -12.025314, 0.40000001, 96, 14.738676, 2.5999999, 1}, + }; + + for ( int i = 0; i < VELODYNE_NUM_LASERS; i++ ) + { + velodyne_calibrated[i][0] = velodyne_calibrated1[i][0]; + velodyne_calibrated[i][1] = velodyne_calibrated1[i][1]; + velodyne_calibrated[i][2] = velodyne_calibrated1[i][2]; + velodyne_calibrated[i][3] = velodyne_calibrated1[i][3]; + velodyne_calibrated[i][4] = velodyne_calibrated1[i][4]; + velodyne_calibrated[i][5] = velodyne_calibrated1[i][5]; + } + + return 0; +} + +double rotCorrection[VELODYNE_NUM_LASERS]; +double vertCorrection[VELODYNE_NUM_LASERS]; +double distCorrection[VELODYNE_NUM_LASERS]; +double vertoffsetCorrection[VELODYNE_NUM_LASERS]; +double horizdffsetCorrection[VELODYNE_NUM_LASERS]; +double enabled[VELODYNE_NUM_LASERS]; //New variable to change enabling and disabling of data. + +int physical2logical[VELODYNE_NUM_LASERS]; +int logical2physical[VELODYNE_NUM_LASERS]; + +double absf ( double a ) +{ + if ( a < 0 ) + return -a; + return a; +} + +int velodyne_physical_to_logical ( int phys ) +{ + return physical2logical[phys]; +} + +int velodyne_logical_to_physical ( int logical ) +{ + return logical2physical[logical]; +} + +int laser_phi_compare(const void *_a, const void *_b) +{ + int a = *((int*) _a); + int b = *((int*) _b); + + if (velodyne_calibrated[a][0] < velodyne_calibrated[b][0]) + return -1; + + return 1; +} + +/** valid only for v > 0 **/ +static inline double mod2pi_positive(double vin) +{ + double q = vin * TWOPI_INV + 0.5; + int qi = (int) q; + + return vin - qi*TWOPI; +} + +/** Map v to [-PI, PI] **/ +static inline double mod2pi(double vin) +{ + if (vin < 0) + return -mod2pi_positive(-vin); + else + return mod2pi_positive(vin); +} + +/** Return vin such that it is within PI degrees of ref **/ +static inline double mod2pi_ref(double ref, double vin) +{ + return ref + mod2pi(vin - ref); +} + +int velodyne_calib_precompute() +{ + int i; + int logical; + for ( i = 0; i < VELODYNE_NUM_LASERS; i++ ) + logical2physical[i] = i; + + qsort ( logical2physical, VELODYNE_NUM_LASERS, sizeof ( int ), laser_phi_compare ); + + for ( logical = 0; logical < VELODYNE_NUM_LASERS; logical++ ) + { + physical2logical[logical2physical[logical]] = logical; + } + + //vertCorrection rotCorrection distCorrection vertOffsetCorrection horizOffsetCorrection enable + for ( i = 0; i < VELODYNE_NUM_LASERS; i++ ) + { + vertCorrection[i] = velodyne_calibrated[i][0] * RADIANS_PER_LSB; + rotCorrection[i] = velodyne_calibrated[i][1] * RADIANS_PER_LSB; + distCorrection[i] = velodyne_calibrated[i][2] * METERS_PER_CM; + vertoffsetCorrection[i] = velodyne_calibrated[i][3] * METERS_PER_CM; + horizdffsetCorrection[i] = velodyne_calibrated[i][4] * METERS_PER_CM; + enabled[i] = velodyne_calibrated[i][5]; + } + + return 0; +} + + +int calibrate(string filename) +{ + int linecount = 0; + string line; + std::ifstream myfile (filename.c_str()); + if (myfile.is_open()) + { + cout << "Using Calibration File"<(string::npos - theDelimiter.size()))?string::npos:end + theDelimiter.size()); + i++; + } + + velodyne_calibrated[j][0] = atof(data[0].c_str()); + velodyne_calibrated[j][1] = atof(data[1].c_str()); + velodyne_calibrated[j][2] = atof(data[2].c_str()); + velodyne_calibrated[j][3] = atof(data[3].c_str()); + velodyne_calibrated[j][4] = atof(data[4].c_str()); + velodyne_calibrated[j][5] = atof(data[5].c_str()); + linecount++; + j++; + } + while(!myfile.eof()); + + myfile.close(); + + if (linecount < 60) + { + for (int i = 32; i<64; i++) + { + velodyne_calibrated[i][0] = 0.0; + velodyne_calibrated[i][1] = 0.0; + velodyne_calibrated[i][2] = 0.0; + velodyne_calibrated[i][3] = 0.0; + velodyne_calibrated[i][4] = 0.0; + velodyne_calibrated[i][5] = 0.0; + } + } + } + else + { + cout << "Unable to open calibration file.\nUsing Wuhan hardcored values."<* xyz, + std::vector* rgb, + std::vector* reflectance, + std::vector* amplitude, + std::vector* type, + std::vector* deviation) +{ + + int c, i, j; + unsigned char Head; + BYTE buf[BLOCK_SIZE]; + Point point; + BYTE *p; + unsigned short *ps; + unsigned short *pt; + unsigned short *pshort; + + double ctheta; + double theta, phi; + + double sin_ctheta, cos_ctheta; + double sin_theta, cos_theta; + double sin_phi, cos_phi; + + unsigned short physicalNO; + unsigned short logicalNO; + + float rotational; + float distance; + float corredistance; + int intensity; + int physical; + int size; + + unsigned short rot; + double x, y, z; + + int circle_col = 0; + int circle_row = 0; + + for ( c = 0 ; c < CIRCLELENGTH; c++ ) + { +#ifdef _MSC_VER + fseek(fp , BLOCK_OFFSET, SEEK_CUR); +#else + fseeko(fp , BLOCK_OFFSET, SEEK_CUR); +#endif + size=fread ( buf, 1, BLOCK_SIZE, fp ); + + if(size 2.2 ) + { + BYTE *inty = ( BYTE * ) ( p + 4 + j * 3 + 2 ); + intensity = *inty; + + ctheta = 2 * M_PI - rotational * RADIANS_PER_LSB; + if ( ctheta == 2*M_PI ) + ctheta = 0; + + sin_ctheta = sin ( ctheta ); + cos_ctheta = cos ( ctheta ); + + //vertCorrection rotCorrection distCorrection vertOffsetCorrection horizOffsetCorrection + // corredistance = ( distance + distCorrection[physicalNO] ) * ( 1.0 + vertoffsetCorrection[physicalNO] ); + corredistance = ( distance + distCorrection[physicalNO] ) ; + theta = mod2pi_ref ( M_PI, ctheta + rotCorrection[physicalNO] ); /////////????//////// + phi = vertCorrection[physicalNO]; ////////?????///////////////// + + sin_theta = sin ( theta ); + cos_theta = cos ( theta ); + sin_phi = sin ( phi ); + cos_phi = cos ( phi ); + + /////////////////////?a??×?±ê///////////////////// + x = corredistance * cos_theta * cos_phi; + y = corredistance * sin_theta * cos_phi; + z = corredistance * sin_phi +vertoffsetCorrection[physicalNO]*cos_phi; + + x -= horizdffsetCorrection[physicalNO] * cos_ctheta; + y -= horizdffsetCorrection[physicalNO] * sin_ctheta; + + point.rad = sqrt( x*x + y*y ); + point.tan_theta = y/x; + + point.type = POINT_TYPE_GROUND; + point.x=x*100; + point.y=z*100; + point.z=-y*100; + + double p[3]; + p[0] = point.x; + p[1] = point.y; + p[2] = point.z; + + //Enable Check. Could be moved earlier to remove all the unnecessary calculations. + //Here to simplify the implementation + if(filter.check(p) && (enabled[physicalNO]==1)) + { + for(int ii = 0; ii < 3; ++ii) xyz->push_back(p[ii]); + } + } + } + p = p + 100; + ps = ( unsigned short * ) p; + } + + + } + + return 0; +} + +std::list ScanIO_velodyne::readDirectory(const char* dir_path, unsigned int start, unsigned int end) +{ + //Calling the calibration method with the file name "calibration.txt" in the same folder as the scan.bin + string califilename; + string dir(dir_path); + califilename = dir + "calibration" + ".txt"; + calibrate(califilename); + std::list identifiers; +// fileCounter = start; + + velodyne_calib_precompute(); + for(unsigned int i = start; i <= end; ++i) + { + std::string identifier(to_string(i,3)); + + path data(dir_path); + data /= path(std::string(DATA_PATH_PREFIX) + DATA_PATH_SUFFIX); + + path pose(dir_path); + pose /= path(std::string(POSE_PATH_PREFIX) + identifier + POSE_PATH_SUFFIX); + + if(!exists(data)) + break; + identifiers.push_back(identifier); + } + + return identifiers; +} + +void ScanIO_velodyne::readPose(const char* dir_path, const char* identifier, double* pose) +{ + unsigned int i; + // on pose information for veloslam + for(i = 0; i < 6; ++i) pose[i] = 0.0; + for(i = 3; i < 6; ++i) pose[i] = 0.0; + return; +} + +bool ScanIO_velodyne::supports(IODataType type) +{ + return !!(type & (DATA_XYZ)); +} + + +void ScanIO_velodyne::readScan( + const char* dir_path, + const char* identifier, + PointFilter& filter, + std::vector* xyz, + std::vector* rgb, + std::vector* reflectance, + std::vector* amplitude, + std::vector* type, + std::vector* deviation) +{ + unsigned int i; + FILE *scan_in; + + path data_path(dir_path); + data_path /= path(std::string(DATA_PATH_PREFIX) + DATA_PATH_SUFFIX); + if(!exists(data_path)) + throw std::runtime_error(std::string("There is no scan file for [") + identifier + "] in [" + dir_path + "]"); + + char filename[256]; + sprintf(filename, "%s%s%s",dir_path ,DATA_PATH_PREFIX, DATA_PATH_SUFFIX ); + +#ifdef _MSC_VER + scan_in = fopen(filename,"rb"); +#else + scan_in = fopen64(filename,"rb"); +#endif + + if(scan_in == NULL) + { + cerr<reserve(12*32*CIRCLELENGTH); + + fileCounter= atoi(identifier); + + #ifdef _MSC_VER + fseek(scan_in, 24, SEEK_SET); + fseek(scan_in, (BLOCK_SIZE+BLOCK_OFFSET)*CIRCLELENGTH*fileCounter, SEEK_CUR); +#else + fseeko(scan_in, 24, SEEK_SET); + fseeko(scan_in, (BLOCK_SIZE+BLOCK_OFFSET)*CIRCLELENGTH*fileCounter, SEEK_CUR); +#endif + + read_one_packet( + scan_in, + filter, + xyz, + rgb, + reflectance, + amplitude, + type, + deviation); + + cout << " with " << xyz->size() << " Points"; + cout << " done " << fileCounter< +#include +#include + +#include "grid/scanToGrid.h" + +using std::vector; +using std::map; + +/** + * CTor. + * + * @param resolution the resolution of the grid (centimeters per gridunit) + * @param minRelevantHeight The minimal height of a scan that is relevant + * @param maxRelevantHeight The maximal height of a scan that is relevant + * @param maxDistance The maximal relevant distance + * @param minimalWeighting The minimal weighting for the waypoints + * @param createWaypoints If set waypoints will be created + * @param neighbours If set neighbours will be created + */ +scanToGrid::scanToGrid(double resolution, + double minRelevantHeight, double maxRelevantHeight, + int maxDistance, int spotRadius, + bool createWaypoints, bool neighbours) +{ + this->resolution = resolution; + this->minRelevantHeight = minRelevantHeight; + this->maxRelevantHeight = maxRelevantHeight; + this->waypoints = createWaypoints; + this->neighbours = neighbours; + this->spot = (float)spotRadius / 3000.0; + + // Calculate minimal weighting + this->minimalWeighting = 1;//(1((float)minimalWeighting-1)/ +// (float)scaleToGrid(maxDistance)); +} + +/** + * The method checks if the given point is relevant + * for creating the grid. + * It is not relevant if it is below or above a specified + * height, or if it lies to far away (??) + * + * @param p The point to check (not scaled to grid) + * @return True if the point is relevant + */ +bool scanToGrid::isPointRelevant(const Point &p) const +{ + if(p.y < this->minRelevantHeight || p.y > this->maxRelevantHeight) + { + return false; + } + else + return true; +} + +/** + * The method scales the absolute coordinate of the scanpoint + * to the matching coordinate of the gridpoint + * + * @param point the absolute coordinate of the scanpoint + * + * @return the matching coordiante of the gridpoint + */ +long scanToGrid::scaleToGrid(double point) +{ + return (long)(point / this->resolution); +} + +/** + * The methods calculates the norm vector of the vector given + * through x and z. + * The normvector has one direction oflength 1 or -1 and the other + * length in [-1,1] + * @param x The x component of the vector + * @param z the z component of the vector + * @param xnorm Referenz to the double containing the normalized x value afterwards + * @param znorm Referenz to the double containing the normalized z value afterwards + */ +void scanToGrid::calculateNormvector(long x, long z, + double& xnorm, double& znorm) +{ + xnorm = 0; + znorm = 0; + + // if |X| < |Z|, then norm z to 1 and x to x/z + if(abs(x) < abs(z)) + { + if(z == 0) + return; + + xnorm = (double)x / (double)abs(z); + znorm = z / abs(z); // now znorm is 1 or -1 + } + else + { + if(x == 0) + return; + + xnorm = x / abs(x); // now xnorm is 1 or -1 + znorm = (double)z / (double)abs(x); + } +} + +/** + * The method creates a new grid. It determines the size and offset + * of the new grid and calculates the viewpoint of the roboter during + * the scan. + * The new scangrid is allocated using new, but the pointer is not stored, + * so it must be freed by the calling method. + * + * The scan has to be transformed to absolute values before this method is + * called + * + * @param scan the scan to be transformed + * @param transformation the transformationmatrix needed for calculating + * the viewpoint of the roboter + * + * @return pointer to the created grid. + * (Just gets allocated, does not get freed) + */ +scanGrid* scanToGrid::createGrid(Scan& scan, + const double* transformation) +{ + // Calculate the viewpoint of the scan + double rPos[3]; + double rPosTheta[3]; + + Matrix4ToEuler(transformation, rPosTheta, rPos); + + long vpX = scaleToGrid(rPos[0]); + long vpZ = scaleToGrid(rPos[2]); + + // calculate maximal and minimal coordiantes + double maxX = 0; + double maxZ = 0; + double minX = 0; + double minZ = 0; + + DataXYZ xyz(scan.get("xyz")); + + for(size_t i = 0; i < xyz.size(); ++i) + { + Point it = xyz[i]; + + // If the scan is not relevant, skip it + if(!isPointRelevant(it)) + continue; + + if(it.x < minX) minX = it.x; + if(it.x > maxX) maxX = it.x; + if(it.z < minZ) minZ = it.z; + if(it.z > maxZ) maxZ = it.z; + + } + + // get offsets and sizes + long offsetX = scaleToGrid(minX); + long offsetZ = scaleToGrid(minZ); + long sizeX = scaleToGrid(maxX) - offsetX + 1; + long sizeZ = scaleToGrid(maxZ) - offsetZ + 1; + + //returning new grid + return new scanGrid(vpX, vpZ, + offsetX, offsetZ, + sizeX, sizeZ); +} + +/** + * + * !NOTE! Experimental. Currently this is not used! !NOTE! + * + * The method iterates through the grid and checks for each point + * if it has a specified amount of neighbours. If not enough neighbours + * are found, the point is deleted. + * + * @param grid The grid to check + * @param distance + * @param neighbours The amount of neighbours needed for not getting deleted + */ +void scanToGrid::killAlonePoints(scanGrid* grid, + int distance, int neighbours) +{ + std::vector< gridPoint* > exPoints; + + + for(int i=0; i < grid->getSizeX(); ++i) + { + for(int j=0; j < grid->getSizeZ(); ++j) + { + int found = 0; + + for(int a=i - distance; a < i + distance; ++a) + { + for(int b=i - distance; b < i + distance; ++b) + { + if(a > 0 && b > 0 && + a < grid->getSizeX() && b < grid->getSizeZ()) + { + if(grid->points[a][b]->getPercent() > 0) + { + ++found; + } + } + + } + } + + // not enough neigbours found + if(found < neighbours) + { + exPoints.push_back(grid->points[i][j]); + } + + } + } + + vector::iterator it = exPoints.begin(); + vector::iterator end = exPoints.end(); + + while(it != end) + { + //std::cout << "Deleting " << (*it)->getX() << " " << (*it)->getZ() << " " << std::endl; + (*it)->setFixed(0, 0); + ++it; + } +} + +/** + * The method adds additional information about the neighbours of + * the given point based on some sort of probabilityfunction. + * Given the degree of the scanner, the function calculates the insecure + * points and weights them + * + * @param grid The grid to add the information to + * @param x The absolute x coordinate + * @param z The absolute z coordinate + * @param weighting The weighting of the point + */ +void scanToGrid::createNeighbours(scanGrid *grid, long x, long z, float weighting) +{ + // Calculate direction of the neighbours + long dx = - (grid->getViewpointZ() - z); + long dz = grid->getViewpointX() - x; + + // calculating the normvector of them + double xnorm, znorm; + calculateNormvector(dx, dz, xnorm, znorm); + + // calculating number of neighbours to weight + int r = (int) (sqrt((double)(dx*dx + dz*dz)) * this->spot); + + for(int i = -r; i <= r; ++i) + { + // Skip 0 (0 is the actual point on the vector) + if(i == 0) + continue; + + long px = x + (int) (i * xnorm); + long pz = z + (int) (i * znorm); + + // if calculated point not in grid, skip + if( !grid->contains(px, pz)) + continue; + + float weight = weighting / pow(2.0, abs(i*r)); + + // grid->addPoint(px, pz, + // SOLIDWEIGHT * weight, SOLIDWEIGHT * weight); + grid->addPoint(px, pz, SOLIDWEIGHT, SOLIDWEIGHT); + + if(this->waypoints) + createWaypoints(grid, px, pz, weight); + } +} + + +/** + * The method calculates the free waypoints between the robot and + * the occupied point and adds them to the grid. + * The way is weighted with the weighting-parameter to avoid + * that a path overwrites found obstacles + * + * @param grid pointer to the grid to which the points will be added + * @param x the x-coordinate of the occupied point + * @param z the z-coordinate of the occupied point + * @param weighting The weighting of the point on which the path is based. + */ +void scanToGrid::createWaypoints(scanGrid *grid, long x, long z, float weighting) +{ + if(x == 0 || z == 0) + return; + + long dx = x - grid->getViewpointX(); + long dz = z - grid->getViewpointZ(); + + // calculating the normal vector + double xnorm, znorm; + calculateNormvector(dx, dz, xnorm, znorm); + + int distance = (int)floor(sqrt(pow((double)dx, 2) + pow((double)dz, 2)) / + sqrt(pow(xnorm, 2) + pow(znorm, 2))); + + + for(int i=0; i < distance; ++i) + { + long px = grid->getViewpointX() + (long)(i * xnorm); + long pz = grid->getViewpointZ() + (long)(i * znorm); + + // due to some problems with the viewpoint lieing outside + // of the grid, first check if point is in grid + if(grid->contains(px, pz)) + //grid->addPoint(px, pz, (int)(WAYPOINTWEIGHT * weighting), 0); + grid->addPoint(px, pz, WAYPOINTWEIGHT, 0); + } +} + +/** + * The method adds the point represented by the 2 coordinates. It weights + * the point based on weighting. + * + * @param grid The grid to add the point to + * @param x The x coordinate (scaled to grid) + * @param z The z coordinate (scaled to grid) + * @param weighting Importance of the point (0 <= w <= 1) + */ +void scanToGrid::createPoint(scanGrid *grid, long x, long z, float weighting) +{ + // grid->addPoint(x, z, SOLIDWEIGHT, (int)(SOLIDWEIGHT * weighting)); + grid->addPoint(x, z, SOLIDWEIGHT, SOLIDWEIGHT); +} + +/** + * Converts a scan(3D) to a grid(2D). It iterates through each + * found point of the scan, translates it to the grid and adds it + * to the grid. Points that are somehow not relevant to the grid (e.g. points + * that are to low or to high are ignored. See isPointRelevant) + * + * If waypoints is true, it will also create waypoints from the origin of + * the scan to the found point and mark the space in between as free. + * If Neighbours should be created, it will also weight the surrounding + * spaces of the found point. + * + * @param scan The scan to be converted + * @param transformation The transformationmatrix + * @return pointer to the grid + */ +scanGrid* scanToGrid::convert(Scan& scan, const double* transformation) +{ + scanGrid* grid = createGrid(scan, transformation); + + DataXYZ xyz(scan.get("xyz")); + + // go through all points and create the grid + for(size_t i = 0; i < xyz.size(); ++i) + { + Point p = xyz[i]; + + // if the scan is in the relevant area, create Point for it + if(isPointRelevant(p)) + { + long x = scaleToGrid(p.x); + long z = scaleToGrid(p.z); + + float weighting = calculateWeighting(x - grid->getViewpointX(), + z - grid->getViewpointZ()); + createPoint(grid, x, z, weighting); + + if(this->waypoints) + createWaypoints(grid, x, z, weighting); + + if(this->neighbours) + createNeighbours(grid, x, z, weighting); + + } + } + + // Kill all points which have less then 8 out of 25 neighbours + /*killAlonePoints(grid, 3, 1); + + for(int i = 0; i < grid->getSizeX(); ++i) + { + for(int j = 0; j < grid->getSizeZ(); ++j) + { + gridPoint *p = grid->points[i][j]; + + float weighting = calculateWeighting(p->getX() - grid->getViewpointX(), p->getZ() - grid->getViewpointZ()); + + if(this->waypoints) + createWaypoints(grid, p->getX(), p->getZ(), weighting); + + if(this->neighbours) + createNeighbours(grid, p->getX(), p->getZ(), weighting); + } + }*/ + + return grid; +} diff --git a/.svn/pristine/e9/e93a5dd5590084f11ee52479c83847cd07687ab5.svn-base b/.svn/pristine/e9/e93a5dd5590084f11ee52479c83847cd07687ab5.svn-base new file mode 100644 index 0000000..8215135 --- /dev/null +++ b/.svn/pristine/e9/e93a5dd5590084f11ee52479c83847cd07687ab5.svn-base @@ -0,0 +1,34 @@ +/** + * @file + * @brief Representation of an OpenGL vertex array + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __VERTEXARRAY_H__ +#define __VERTEXARRAY_H__ + +#ifdef _MSC_VER +#include +#endif + +#ifdef __APPLE__ +#include +#else +#include +#endif + + +class vertexArray +{ +public: + vertexArray(int _numPointsToRender); + ~vertexArray(); + + GLfloat* array; + GLint numPointsToRender; + GLuint name; +private: + static GLuint nameCounter; +}; + +#endif diff --git a/.svn/pristine/ea/ea2e1a82686f0b87dc1b61e620a931a1abd3940f.svn-base b/.svn/pristine/ea/ea2e1a82686f0b87dc1b61e620a931a1abd3940f.svn-base new file mode 100644 index 0000000..507ae01 --- /dev/null +++ b/.svn/pristine/ea/ea2e1a82686f0b87dc1b61e620a931a1abd3940f.svn-base @@ -0,0 +1,42 @@ +#ifndef META_SCAN_H +#define META_SCAN_H + +#include "scan.h" + +#include + +class MetaScan : public Scan { +public: + MetaScan(std::vector scans, int nns_method = -1, bool cuda_enabled = false); + virtual ~MetaScan(); + + //! How many scans this meta scan contains + unsigned int size() const; + + //! Return the contained scan + Scan* getScan(unsigned int i) const; + + virtual void setRangeFilter(double max, double min) {} + virtual void setHeightFilter(double top, double bottom) {} + + virtual const char* getIdentifier() const { return "metascan"; } + + virtual DataPointer get(const std::string& identifier) { return DataPointer(0, 0); } + virtual void get(unsigned int types) {} + virtual DataPointer create(const std::string& identifier, unsigned int size) { return DataPointer(0, 0); } + virtual void clear(const std::string& identifier) {} + + virtual unsigned int readFrames() { return 0; } + virtual void saveFrames() {} + virtual unsigned int getFrameCount() { return 0; } + virtual void getFrame(unsigned int i, const double*& pose_matrix, AlgoType& type) {} + +protected: + virtual void createSearchTreePrivate(); + virtual void calcReducedOnDemandPrivate() {} + virtual void addFrame(AlgoType type) {} +private: + std::vector m_scans; +}; + +#endif //META_SCAN_H diff --git a/.svn/pristine/ea/ea5e903bec24de111db634238e0281cc179a7b70.svn-base b/.svn/pristine/ea/ea5e903bec24de111db634238e0281cc179a7b70.svn-base new file mode 100644 index 0000000..b284a3f --- /dev/null +++ b/.svn/pristine/ea/ea5e903bec24de111db634238e0281cc179a7b70.svn-base @@ -0,0 +1,35 @@ +/* Handle PNM-files Dez98 JS + * 0,0 = left up + * PAM-formats + * PAM any P7 + * PNM-formats + * PGM gray ASCII=P2 RAW=P5 dx dy col gray + * PPM RGB ASCII=P3 RAW=P6 dx dy col RGB + * PBM B/W ASCII=P1 RAW=P4 dx dy bitmap + */ + +#ifndef GOCR_PNM_H +#define GOCR_PNM_H 1 + +#include "config.h" + +struct pixmap { + unsigned char *p; /* pointer of image buffer (pixmap) */ + int x; /* xsize */ + int y; /* ysize */ + int bpp; /* bytes per pixel: 1=gray 3=rgb */ + }; +typedef struct pixmap pix; + +/* return 1 on multiple images (holding file open), 0 else */ +int readpgm(char *name, pix *p, int vvv); + +/* write pgm-map to pnm-file */ +int writepgm(char *nam, pix *p); +int writepbm(char *nam, pix *p); +int writeppm(char *nam, pix *p); /* use lowest 3 bits for farbcoding */ + +/* ----- count colors ------ create histogram ------- */ +void makehisto(pix p, unsigned col[256], int vvv); + +#endif diff --git a/.svn/pristine/ea/ea7a68c2ea16183573f1855ab417c03d2eb679bb.svn-base b/.svn/pristine/ea/ea7a68c2ea16183573f1855ab417c03d2eb679bb.svn-base new file mode 100644 index 0000000..d206f21 --- /dev/null +++ b/.svn/pristine/ea/ea7a68c2ea16183573f1855ab417c03d2eb679bb.svn-base @@ -0,0 +1,144 @@ +#ifndef _MATHUTIL_H +#define _MATHUTIL_H + +#include +#include +#include +#include + +#ifndef _MSC_VER +#define _finite finite +#endif + +//#define INFINITY FLT_MAX +#define M_PI 3.14159265358979323846 +//#define M_PI_2 3.14159265358979323846*2 +//#define NAN 0 + +#define to_radians(x) ( (x) * (M_PI / 180.0 )) +#define to_degrees(x) ( (x) * (180.0 / M_PI )) + +void sincos(double ra, double * sinra, double* cosra); +int isless(double x, double y); + + +//inline int isfinite(double x) { return _finite(x); } + +static inline double sq(double v) +{ + return v*v; +} + +static inline double sgn(double v) +{ + return (v>=0) ? 1 : -1; +} + +// random number between [0, 1) +static inline float randf() +{ + return ((float) rand()) / (RAND_MAX + 1.0); +} + + +static inline float signed_randf() +{ + return randf()*2 - 1; +} + +#ifdef _MSC_VER +static inline double fmin(double a, double b) +{ + return (a < b) ? a : b; +} + +static inline double fmax(double a, double b) +{ + return (a > b) ? a : b; +} +#endif +// return a random integer between [0, bound) +static inline int irand(int bound) +{ + int v = (int) (randf()*bound); + assert(v >= 0); + assert(v < bound); + return v; +} + +#ifndef PI +#define PI 3.14159265358979323846264338 +#endif + +#define TWOPI_INV (0.5/PI) +#define TWOPI (2*PI) + +/** valid only for v > 0 **/ +static inline double mod2pi_positive(double vin) +{ + double q = vin * TWOPI_INV + 0.5; + int qi = (int) q; + + return vin - qi*TWOPI; +} + +/** Map v to [-PI, PI] **/ +static inline double mod2pi(double vin) +{ + if (vin < 0) + return -mod2pi_positive(-vin); + else + return mod2pi_positive(vin); +} + +/** Return vin such that it is within PI degrees of ref **/ +static inline double mod2pi_ref(double ref, double vin) +{ + return ref + mod2pi(vin - ref); +} + +static inline int theta_to_int(double theta, int max) +{ + theta = mod2pi_ref(M_PI, theta); + int v = (int) (theta / ( 2 * M_PI ) * max); + + if (v==max) + v = 0; + + assert (v >= 0 && v < max); + + return v; +} + +static inline int imin(int a, int b) +{ + return (a < b) ? a : b; +} + +static inline int imax(int a, int b) +{ + return (a > b) ? a : b; +} + +static inline float fmin(float a, float b) +{ + return (a < b) ? a : b; +} + +static inline float fmax(float a, float b) +{ + return (a > b) ? a : b; +} + +static inline int iclamp(int v, int minv, int maxv) +{ + return imax(minv, imin(v, maxv)); +} + +static inline double fclamp(double v, double minv, double maxv) +{ + return fmax(minv, fmin(v, maxv)); +} + + +#endif diff --git a/.svn/pristine/ea/eacc7eee127caa629e1f200063bb1747ebba0cb0.svn-base b/.svn/pristine/ea/eacc7eee127caa629e1f200063bb1747ebba0cb0.svn-base new file mode 100644 index 0000000..7070504 --- /dev/null +++ b/.svn/pristine/ea/eacc7eee127caa629e1f200063bb1747ebba0cb0.svn-base @@ -0,0 +1,40 @@ +//$$ boolean.h bool class + +// This is for compilers that do not have bool automatically defined + +#ifndef bool_LIB +#define bool_LIB 0 + +#ifdef use_namespace +namespace RBD_COMMON { +#endif + + +class bool +{ + int value; +public: + bool(const int b) { value = b ? 1 : 0; } + bool(const void* b) { value = b ? 1 : 0; } + bool() {} + operator int() const { return value; } + int operator!() const { return !value; } +}; + + +const bool true = 1; +const bool false = 0; + + + +// version for some older versions of gnu g++ +//#define false 0 +//#define true 1 + +#ifdef use_namespace +} +#endif + + + +#endif diff --git a/.svn/pristine/ea/eaf0c315c1651ee42ccef9ca3dd4ec4ca536cd63.svn-base b/.svn/pristine/ea/eaf0c315c1651ee42ccef9ca3dd4ec4ca536cd63.svn-base new file mode 100644 index 0000000..55807f6 --- /dev/null +++ b/.svn/pristine/ea/eaf0c315c1651ee42ccef9ca3dd4ec4ca536cd63.svn-base @@ -0,0 +1,104 @@ +/**************************************************************************** + + GLUI User Interface Toolkit + --------------------------- + + glui_bitmaps.cpp + + + -------------------------------------------------- + + Copyright (c) 1998 Paul Rademacher + + This program is freely distributable without licensing fees and is + provided without guarantee or warrantee expressed or implied. This + program is -not- in the public domain. + +*****************************************************************************/ + +#include "glui.h" +#include "stdinc.h" + +int *bitmap_arrays[] = { + glui_img_checkbox_0, + glui_img_checkbox_1, + glui_img_radiobutton_0, + glui_img_radiobutton_1, + glui_img_uparrow, + glui_img_downarrow, + glui_img_leftarrow, + glui_img_rightarrow, + glui_img_spinup_0, + glui_img_spinup_1, + glui_img_spindown_0, + glui_img_spindown_1, + glui_img_checkbox_0_dis, + glui_img_checkbox_1_dis, + glui_img_radiobutton_0_dis, + glui_img_radiobutton_1_dis, + glui_img_spinup_dis, + glui_img_spindown_dis, + glui_img_listbox_up, + glui_img_listbox_down, + glui_img_listbox_up_dis, +}; + + +/************************************ GLUI_Bitmap::load_from_array() ********/ + +void GLUI_Bitmap::load_from_array( int *array ) +{ + int i; + + w = 0; + h = 0; + + if ( array == NULL ) + return; + + w = array[0]; + h = array[1]; + + pixels = (unsigned char*) malloc( sizeof(unsigned char) * w * h * 3); + + for( i = 0; i 128 ) + putchar( '#' ); + else + putchar( ' ' ); + } + putchar( '\n' ); + } + fflush( stdout ); + */ + } +} diff --git a/.svn/pristine/eb/eb42800b4da69b95d744129dc53a74623f0a04ab.svn-base b/.svn/pristine/eb/eb42800b4da69b95d744129dc53a74623f0a04ab.svn-base new file mode 100644 index 0000000..626dbf5 --- /dev/null +++ b/.svn/pristine/eb/eb42800b4da69b95d744129dc53a74623f0a04ab.svn-base @@ -0,0 +1,1447 @@ +@Article{Manduchi_2005, + author = {R. Manduchi and A. Castano and A. Talukder and L. Matthies}, + title = {Obstacle Detection and Terrain Classification for Autonomous Off-road Navigation}, + journal = {Autonomous Robot}, + year = {2005}, + volume = {18}, +} + +@InProceedings{Patel_2005, + author = {K. Patel and W. Macklem and S. Thrun and M. Montemerlo}, + title = {Active Sensing for High-Speed Offroad Driving}, + booktitle = {Proceedings of the IEEE International Conference on Robotics and Automation (ICRA '05)}, + year = {2005}, + address = {Barcelona, Spain}, + month = {April}, +} + +@InProceedings{Batavia_2002, + author = {P. H. Batavia and S. Singh}, + title = {Obstacle Detection in Smooth High Curvature Terrain}, + booktitle = {Proceedings of the IEEE International Conference on Robotics and Automation (ICRA '02)}, + pages = {3062 -- 3067}, + year = {2002}, +} + +@InProceedings{Kohlhepp_2003, + author = {P. Kohlhepp and M. Walther and P. Steinhaus}, + title = {{S}chritthaltende {3D-K}artierung und {L}okalisierung f{\"u}r mobile {I}nspektionsroboter}, + booktitle = {Proceedings of the Autonome Mobile Systeme 2003, 18. Fachgespr{\"a}che}, + year = {2003}, + editor = {R. Dillmann and H. W{\"o}rn and T. Gockel}, + month = {December}, +} + +@INCOLLECTION{ThrunMapping_2002, + AUTHOR = {S. Thrun}, + TITLE = {Robotic Mapping: A Survey}, + BOOKTITLE = {Exploring Artificial Intelligence in the New Millenium}, + PUBLISHER = {Morgan Kaufmann}, + YEAR = {2002}, + EDITOR = {Lakemeyer, G. and Nebel, B.}, +} + + +@Article{Jensfelt01, + author = "P. Jensfelt and H. I. Christensen", + title = "Pose {T}racking {U}sing {L}aser {S}canning and {M}inimalistic {E}nvironmental {M}odels", + journal = "Journal of the IEEE Transactions on Robotics and Automation (TRA '01)", + year = "2001", + volume = "17", + number = "2", + pages = "138--147", + month = "April" +} + +@InCollection{Cox_1991, + author = "I. J. Cox", + title = "Blanche: {P}osition {E}stimation for an {A}utonomous {R}obot {V}ehicle", + year = "1991", + booktitle = "Autonomous Mobile Robots: Control, Planning, and Architecture", + volume = "2", + publisher = "IEEE Computer Society Press", + address = "Los Alamitos, CA", + pages = "285--292", +} + +@InProceedings{Borthwick94, + author = "S. Borthwick and H. Durrant-Whyte", + title = "Simultaneous {L}ocalisation and {M}ap {B}uilding for {A}utonomous {G}uided {V}ehicles", + booktitle = "Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS'94)", + booklet = "General I.L.L.", + year = "1994" +} + +@InProceedings{roefer_2001, + author = "T. R{\"o}fer", + title = "Building consistent laser scan maps", + booktitle = "Proceedings of the 4th European Workshop on Advanced Mobile Robots (EUROBOT '01)", + volume = "86", + pages = "83--90", + year = "2001" +} + +@InProceedings{weiss_1994, + author = "G. Wei{\ss} and C. Wetzler and E. von Puttkamer", + title = "Keeping {T}rack of {P}osition and {O}rientation of {M}oving {I}ndoor {S}ystems by {C}orrelation of {R}ange-{F}inder {S}cans", + booktitle = "Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS '94)", + address = "Munich, Germany", + year = "1994", + pages = "595--601" +} + + +@InProceedings{milios_1994, + author = "F. Lu and E. Milios", + title = "Robot {P}ose {E}stimation in {U}nknown {E}nvironments by {M}atching 2{D} {R}ange {S}cans", + booktitle = "IEEE Computer Vision and Pattern Recognition Conference (CVPR '94)", + pages = "935--938", + year = "1994" +} + +@InProceedings{lu97globally, + author = "F. Lu and E. Milios", + title = "Globally {C}onsistent {R}ange {S}can {A}lignment for {E}nvironment {M}apping", + booktitle = "Autonomous Robots", + volume = "4", + pages = "333--349", + year = "1997" +} + +@InProceedings{milios_1995, + author = "E. A. Pra{\ss}ler and E. Milios", + title = "Position {E}stimation {U}sing {E}quidistance {L}ines", + booktitle = "Proceedings of the IEEE International Conference on Robotics and Automation (ICRA '95)", + year = "1995", + address = "Nagoya, Aichi-ken, Japan", + pages = "85--92" +} + +@InProceedings{Anguelov_2002, + author = {D. Anguelov and R. Biswas and D. Koller and B. Limketkai and S. Sanner and S. Thrun}, + title = {Learning hierarchical object maps of non-stationary environments with mobile robots}, + booktitle = {Proceedings of the 18th Conference on Uncertainty in AI (UAI '02)}, + year = {2002}, + address = {Edmonton, Alberta, Canada}, + month = {August}, +} + +@InProceedings{Biswas_2002, + author = {R. Biswas and B. Limketkai and S. Sanner and S. Thrun}, + title = {Towards object mapping in dynamic environments with mobile robots}, + booktitle = {Proceedings of the Conference on Intelligent Robots and Systems (IROS '02)}, + address = {Lausanne, Switzerland}, + month = {September}, +} + +@Article{Kestler_2000, + author = {H. A. Kestler and S. Sablatn{\"o}g and S. Simon and S. Enderle and A. Baune and G. K. Kraetzschmar and F. Schwenker and G. Palm}, + title = {Concurrent Object Identification and Localization for a Mobile Robot}, + journal = {KI -- K{\"u}nstliche Intelligenz}, + pages = "23-29", + year = {2000}, + number = {4}, + month = {April}, +} + +@InProceedings{Solda_2004, + author = "Erik Solda and Rainer Worst and Joachim Hertzberg", + title = "{P}oor {M}an's {G}yro-based {L}ocation.", + booktitle = "Proceedings of the 5th IFAC Symposium on Intelligent Autonomous Vehicles (IAV '04)", + month = "July", + year = "2004", + address = "Lisabon, Portugal" +} + + +@TechReport{TDP2006, + author = {K. Lingemann and A. N{\"u}chter and O. Wulf and H. Surmann and K. Perv{\"o}lz and J. Hertzberg and B. Wagner and T. Christaller}, + title = {RoboCupRescue - Robot League Team, Team Deutschland1}, + institution = {Team Description Paper, Rescue Robot League Competition}, + year = {2006}, + address = {Bremen, Germany}, + month = {June}, +} + +@TechReport{TDP2005, + author = {H. Surmann and K. Lingemann and A. N{\"u}chter and M. Hennig and K. Perv{\"o}lz and O. Wulf and J. Hertzberg and B. Wagner and T. Christaller}, + title = {RoboCupRescue - Robot League Team, Team Deutschland1}, + institution = {Team Description Paper, Rescue Robot League Competition}, + year = {2005}, + address = {Osaka, Japan}, + month = {July}, +} + +@Article{KI2006, + author = {A. N{\"u}chter and K. Lingemann and J. Hertzberg and O. Wulf and B. Wagner and K. Perv{\"o}lz and H. Surmann and T. Christaller}, + title = {The RoboCup Rescue Team Deutschland1}, + journal = {KI -- K{\"u}nstliche Intelligenz}, + year = {2006 (accepted)}, +} + +@InProceedings{Brenneke_2003, + author = "C. Brenneke and O. Wulf and B. A. Wagner", + title = "{U}sing {3D} {L}aser {R}ange {D}ata for {SLAM} in {O}utdoor {E}nvironments", + booktitle = "Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS '03)", + month = "October", + year = "2003", + address = "Las Vegas, USA", +} + +@InProceedings{Howard_2004, + author = {A. Howard and D. F. Wolf and G. S. Sukhatme}, + title = {Towards 3D Mapping in Urban Environments}, + booktitle = {Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS '04)}, + year = {2004}, + address = {Sendai, Japan}, + month = {September}, +} + + +@InProceedings{Diebel_2004, + author = "J. Diebel and K. Reutersw{\"a}rd and S. Thrun and J. Davis and R. Gupta", + title = "{S}imultaneous {L}ocalization and {M}apping with {A}ctive {S}tereo {V}ision", + booktitle = "Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS '04)", + month = "September", + year = "2004", + pages = "3436 -- 3443", + address = "Sendai, Japan", +} + + +@InProceedings{Lowe_1999, + author = {D. G. Lowe}, + title = {Object recognition from local scale-invariant features}, + booktitle = {Proceedings of the International Conference on Computer Vision (ICCV '99)}, + pages = {1150 -- 1157}, + year = {1999}, + address = {Corfu, Greece}, + month = {September}, +} + + +@Article{Trullier_1997, + author = {O. Trullier and J.-A. Meyer}, + title = {Biomimetic Navigation Models and Strategies in Animats}, + journal = {AI Communications}, + year = {1997}, + volume = {10}, + number = {2}, + pages = {79 -- 92}, + month = {July}, +} + +@InProceedings{Dias_2003, + author = {P. Dias and V. Sequeira and F. Vaz and J. G.M. Goncalves}, + title = {{R}egistration and {F}usion of {I}ntensity and {R}ange {D}ata for {3D} {M}odelling of {R}eal {W}orld {S}cenes}, + booktitle = "Proceedings of the 4th IEEE International Conference on Recent Advances in 3D Digital Imaging and Modeling (3DIM '03)", + month = "October", + year = "2003", + address = "Banff, Canada", +} + +@Article{Kirby_1990, + author = {M. Kirby and L. Sirovich}, + title = {Application of the Karhunen-Loeve procedure for the characterisation of human faces}, + journal = {IEEE Transaction on Pattern Analysis and Machine Intelligence (PAMI)}, + year = {1990}, + volume = {12}, + pages = {103 -- 108}, +} + +@book{Waltz_1975, + author = {D. L. Waltz}, + title = {Understanding line drawings of scenes with shadows}, + journal = {Psychology of Computer Vision}, + year = {1975}, + publisher = {McGraw-Hill}, + address = {New York, U.S.A.}, +} + + +@Article{Koch_1985, + author = {C. Koch and S. Ullman}, + title = {Shifts in selective visual attantion: towards the underlaying visual circuitry.}, + journal = {Human Neurobiology}, + year = {1985}, + pages = {219 -227}, +} + +@InProceedings{Lazebnik_2002, + author = {S. Lazebnik and A. Sethi and C. Schmid and D. J. Kriegman and J. Ponce and M. Hebert}, + title = {{O}n {P}encils of {T}angent {P}lanes and the {R}ecognition of {S}mooth {3D} {S}hapes from {S}ilhouettes}, + booktitle = {Proceedings of the 7th European Conference on Computer Vision (ECCV '02)}, + year = {2002}, + Taddress = {Copenhagen, Denmark}, + month = {May}, + pages = {651 -- 665} +} + + +@Article{Chen_1998, + author = {J. L. Chen and G. C. Stockman}, + title = {3D free-form object recognition using indexing by contour features}, + journal = {Journal of Computer Vision and Image Understanding (CVIU)}, + year = {1998}, + Tvolume = {71}, + Tpages = {334 -- 335}, +} + +@InProceedings{Ponce_1989, + author = {J. Ponce and D. J. Kriegmann}, + title = {{O}n recognizing and positioning curved {3D} objects from image contours}, + booktitle = {Proceedings of the IEEE Workshop on Interpretation of 3D Scenes}, + pages = {61 -- 67}, + year = {1989}, + address = {Austin, TX, U.S.A.}, + month = {November}, +} + +@InProceedings{IROS2004, + author = "K. Lingemann and H. Surmann and A. N{\"u}chter and J. Hertzberg", + title = "{I}ndoor and {O}utdoor {L}ocalization for {F}ast {M}obile {R}obots", + booktitle = "Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS '04)", + month = "September", + pages = "2185 -- 2190", + year = "2004", + address = "Sendai, Japan", +} + +@InProceedings{IROS2004_1, + author = "S. Frintrop and A. N{\"u}chter and H. Surmann and J. Hertzberg", + title = "{S}aliency-based {O}bject {R}ecognition in {3D} {D}ata", + booktitle = "Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS '04)", + month = "September", + pages = "2167 -- 2172", + year = "2004", + address = "Sendai, Japan", +} + +@Article{CVUI2005, + author = {S. Frintrop and E. Rome and A. N{\"u}chter and H. Surmann}, + title = {{A} {B}imodal {L}aser-{B}ased {A}ttention {S}ystem}, + journal = {Journal Computer Vision and Image Understanding (CVIU), Special Issue on Attention and Performance in Computer Vision}, + year = {2005}, + volume = {100}, + number = {1-2}, + pages = {124 -- 151}, + month = {October -- November}, +} + +@InProceedings{ICVS2003, + author = "S. Frintrop and E. Rome and A. N{\"u}chter and H. Surmann", + title = "{A}n {A}ttentive, {M}ulti-modal {L}aser {E}ye", + booktitle = "Proceedings of the third International Conference on Computer Vision Systems (ICVS '03)", + month = "April", + pages = "202 -- 211", + year = "2003", + address = "Graz, Austria", +} + +@Article{Dorai_1997, + author = {C. Dorai and A. K. Jain}, + title = {{COSMOS} --- {A} representation scheme for {3D} free form objects}, + journal = {IEEE Transactions on Pattern Analysis and Machine Intelligence}, + year = {1997}, + volume = {19}, + pages = {1115 -- 1130}, +} + +@Article{Chua_1997, + author = {C. S. Chua and R. Jarvis}, + title = {{P}oint signatures: {A} new representation for {3D} object recognition}, + journal = {International Journal Computer Vision}, + year = {1997}, + volume = {25}, + pages = {63 -- 85}, +} + +@InProceedings{Camps_1998, + author = {O. I. Camps and C. Y. Huang and T. Kanungo}, + title = {{H}ierarchical {O}rganization of {A}ppearance-{B}ased {P}arts and {R}elations}, + booktitle = {Proceedings of the IEEE Conference Computer Vision and pattern Recognition}, + pages = {685 -- 691}, + year = {1998}, + address = {Santa Barbara, CA, U.S.A.}, + month = {June}, +} + +@InCollection{Besl_1990, + author = {P. J. Besl}, + editor = {H. Freeman}, + booktitle = {{M}achine {V}ision for {T}hree-{D}imensional {S}cenes}, + title = {The free-form surface matching problem}, + publisher = {Academic Press}, + year = {1990}, + address = {San Diego, CA, U.S.A.}, +} + +@InProceedings{Pipitone_1993, + author = {F. Pipitone and W. Adams}, + title = {Rapid recognition of freeform objects in noisy range images using tripod operators}, + booktitle = {Proceedings of the IEEE International Conference On Computer Vision}, + pages = {715 -- 716}, + year = {1993}, + address = {Berlin, Germany}, + month = {May}, +} + +@Article{Besl_1985, + author = {P. J. Besl and R. C. Jain}, + title = {Three-dimensional object recognition}, + journal = {Computing Surveys}, + year = {1985}, + volume = {17}, + pages = {75 -- 145}, +} + +@Article{Campbell_2001, + author = {R. J. Campbell and P. J. Flynn}, + title = {{A} {S}urvey {O}f {F}ree-{F}orm {O}bject {R}epresentation and {R}ecognition {T}echniques}, + journal = {{C}omputer {V}ision and {I}mage {U}nderstanding {(CVIU)}}, + year = {2001}, + volume = {81}, + Tpages = {166 -- 210}, +} + +@InProceedings{Campbell_1999, + author = {R. J. Campbell and P. J. Flynn}, + title = {Eigenshapes for {3D} {O}bject {R}ecognition in {R}ange {D}ata}, + booktitle = {Proceedings of the IEEE Conference Computer Vision and Pattern Recognition (CVPR '99)}, + year = {1999}, + address = {Fort Collins, CO, U.S.A.}, +} + + +@InProceedings{Andreasson_2005, + author = {H. Andreasson and R. Triebel and W. Burgard}, + title = {{I}mproving {P}lane {E}xtraction from {3D} {D}ata by {F}using {L}aser {D}ata and {V}ision}, + booktitle = {Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS '05)}, + year = {2005}, + month = {August}, +} + + +@InProceedings{RIIA2005, + author = {J. Hertzberg and K. Lingemann and A. N{\"u}chter}, + title = {{USARSIM -- Game-Engines in der Robotik-Lehre}}, + booktitle = {Informatik 2005 -- Informatik LIVE, vol.1 (Beitr{\"a}ge der 35. Jahrestagung der Gesellschaft f{\"u}r Informatik, Bonn)}, + pages = {158 -- 162}, + year = {2005}, + address = {Bonn, Germany}, + month = {September}, +} + +@article{RAS2005, + author = "K. Lingemann and A. N{\"u}chter and J. Hertzberg and H. Surmann", + title = "High-{S}peed {L}aser {L}ocalization for {M}obile {R}obots", + journal = "Journal Robotics and Autonomous Systems", + volume = "(accepted)", + year = "2005", +} + + +@InProceedings{ROBOCUP2005, + author = "A. N{\"u}chter and O. Wulf and K. Lingemann and J. Hertzberg and B. Wagner and and H. Surmann", + title = "{3D} {M}apping with {S}emantic {K}nowledge", + booktitle = "Proceedings of the RoboCup International Symposium", + year = "2005", + address = "Osaka, Japan", + month = "June", +} + + +@InProceedings{SSRR2005, + author = "A. N{\"u}chter and K. Lingemann and J. Hertzberg and H. Surmann and K. Perv{\"o}lz and M. Hennig and K. R. Tiruchinapalli and R. Worst and T. Christaller", + title = "{M}apping of {R}escue {E}nvironments with {Kurt3D}", + booktitle = "Proceedings of the IEEE International Workshop on Rescue Robotics (SSRR '05)", + pages = "158 -- 163", + year = "2005", + address = "Kobe, Japan", + month = "June", +} + +@article{Zhang_2000, + author = "Z. Zhang", + title = "{A} flexible new technique for camera calibration", + journal = "IEEE Transactions on Pattern Analysis and Machine Intelligence", + number = "22", + volume = "11", + pages = "1330 -- 1334", + year = "2000", +} + + +@ARTICLE{Thr98Pro, + AUTHOR = {S. Thrun. and W. Burgard and D. Fox}, + TITLE = {A Probabilistic Approach to Concurrent Mapping and Localization for MobileRobots}, + JOURNAL = {Machine Learning and Autonomous Robots (joint issue)}, + NUMBER = {31/5}, + YEAR = {1998} +} + +@ARTICLE{Thrun_1998a, + AUTHOR = {S. Thrun}, + YEAR = {1998}, + TITLE = {Learning Metric-Topological Maps for Indoor + Mobile Robot Navigation}, + JOURNAL = {Artificial Intelligence}, + VOLUME = {99}, + NUMBER = {1}, + PAGES = {21--71} +} + +@article{Kuipers_1991, + author = {B. Kuipers and Y. T. Byun}, + title = {A robot exploration and mapping strategy based on a semantic hierarchy of spatial representations}, + journal = {Journal of Robotics and Autonomous Systems}, + volume = "8", + year = "1991", +} + +@InProceedings{Eberst_1996, + author = "C. Eberst and J. Sicheneder", + title = "{G}eneration of {H}ypothetical {L}andmarks {S}upporting {F}ast {O}bject {R}ecognition with {A}utonomous {M}obile {R}obots", + booktitle = "Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS '96)", + month = "November", + year = "1996", + address = "Osaka, Japan", +} + +@article{Leonard_1991, + author = {J.J. Leonard and Hugh Durrant-Whyte}, + title = {Localization by tracking geometric beacons}, + journal = {IEEE Transactions on Robotics and Automation}, + volume = {7}, + number = {6}, + year = {1991}, + } + +@article{Kweon_1992, + author = {I. S. Kweon and T. Kanade}, + title = {High-Resolution Terrain Map from Multiple Sensor Data}, + journal = {IEEE Trans. Pattern Anal. Mach. Intell.}, + volume = {14}, + number = {2}, + year = {1992}, + issn = {0162-8828}, + pages = {278--292}, + doi = {http://dx.doi.org/10.1109/34.121795}, + publisher = {IEEE Computer Society}, + } + +@article{Musser_1997, + author = {D. R. Musser}, + title = {Introspective sorting and selection algorithms}, + journal = {Software Practice \& Experience}, + volume = {27}, + number = {8}, + year = {1997}, + pages = {983--993}, + publisher = {John Wiley \& Sons, Inc.}, + } + +@article{Rome_1999, + author = "E. Rome and J. Hertzberg and F. Kirchner and U. Licht and H. Streich and Th. Christaller", + title = "Towards Autonomous Sewer Robots: the MAKRO Project", + journal = "Urban Water", + volume = "1", + pages = {57 -- 70}, + year = 1999, +} + +@article{Nevado_2004, + author = "M. M. Nevado and J. G. Garcia-Bermejo and E. Z. Casanova", + title = "Obtaining {3D} models of indoor environments with a mobile robot by estimating local surface directions", + journal = "Robotics and Autonomous Systems", + volume = "48", + month = "August", + year = "2004", + pages = "131 -- 143", +} + +@Article{Georgiev_2004, + author = {A. Georgiev and P. K. Allen}, + title = "{L}ocalization {M}ethods for a {M}obile {R}obot in {U}rban {E}nvironments", +journal = {IEEE Transaction on Robotics and Automation (TRO)}, + year = {2004}, + OPTkey = {}, + volume = {20}, +number = "5", + pages = {851 -- 864}, + month = {October}, +} + +@Article{Murphy_2004, + author = {R. R. Murphy}, + title = "{A}ctivities of the {R}escue {R}obots at the {W}orld {T}rade {C}enter from 11-21 {S}eptember 2001", +journal = {IEEE Robotics \& Automation Magazine}, + year = {2004}, + OPTkey = {}, + volume = {11}, +number = "3", + pages = {851 -- 864}, + month = {September}, +} + +@Article{Murphy_2004_1, + author = {R. R. Murphy}, + title = "Rescue Robotics for Homeland Security", +journal = {Communications of the ACM, Special Issue on Homeland Security}, + year = {2004}, + OPTkey = {}, + volume = {27}, +number = "3", + pages = {66 -- 69}, + month = {March}, +} + + +@inproceedings{Scholtz_2003, + author = {Jean Scholtz}, + title = {Theory and Evaluation of Human Robot Interactions}, + booktitle = {Proceedings of the 36th Annual Hawaii International Conference on System Sciences (HICSS'03)}, + year = {2003}, + address = {Washington, DC, U.S.A.}, +} + +@Article{Burke_2004, + author = {J. Burke and R. R. Murphy and E. Rogers and J. Scholtz and V. Lumelsky}, + title = "Final Report for the DARPA/NSF Interdisciplinary Study on Human-Robot Interaction", +journal = {IEEE Systems, Man and Cybernetics Part A}, + year = {2004}, + OPTkey = {}, + volume = {34}, +number = "2", + month = {May} +} + +@InProceedings{Biber_2004, + author = "P. Biber and H. Andreasson and T. Duckett and A. Schilling", + title = "{3D} {M}odeling of {I}ndoor {E}nvironments by a {M}obile {R}obot with a {L}aser {S}canner and {P}anoramic {C}amera", + booktitle = "Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS '04)", + month = "September", + year = "2004", + address = "Sendai, Japan", +} + +@InProceedings{Birk_2004, + author = "St. Carpin and H. Kenn and A. Birk", + title = "{A}utonomous {M}apping in the {R}eal {R}obots {R}escue {L}eague", + booktitle = "Proceedings of RoboCup 2003: Robot Soccer World Cup VII", + year = "2004", +} + +@InProceedings{ICAR2005_2, + author = "A. N{\"u}chter and K. Lingemann and J. Hertzberg and H. Surmann", + title = "{6D SLAM} with {A}pproximate {D}ata {A}ssocioation", + booktitle = "Proceedings of the 12th International Conference on Advanced Robotics (ICAR '05)", + month = "July", + pages = "242 -- 249", + year = "2005", +} + +@InProceedings{ICAR2005_1, + author = "A. N{\"u}chter and K. Lingemann and J. Hertzberg and H. Surmann", + title = "{A}ccurate {O}bject {L}ocalization in {3D} {L}aser {R}ange {S}cans", + booktitle = "Proceedings of the 12th International Conference on Advanced Robotics (ICAR '05)", + month = "July", + pages = "665 -- 672", + year = "2005", +} + +@InProceedings{Wulf_2004, + author = "O. Wulf and K. O. Arras and H. I. Christensen and B. A. Wagner", + title = "{2D} {M}apping of {C}luttered {I}ndoor {E}nvironments by {M}eans of {3D} {P}erception", + booktitle = "Proceedings of the IEEE International Conference on Robotics and Automation (ICRA '04)", + month = "April", + year = "2004", + pages = "4204 -- 4209", + address = "New Orleans, USA", +} + +@InProceedings{Wulf_2005, + author = "O. Wulf and B. A. Wagner and M. Khalaf-Allah", + title = "Using {3D} data for {M}onte {C}arlo localization in complex indoor environments", + booktitle = "Proceedings of the second European Conference on Mobile Robotics", + month = "September", + year = "2005", + pages = "170 -- 175", + address = "Ancona, Italy", +} + + +@InProceedings{Huang_1997, + author = {C. Y. Huang and O. I. Camps and T. Kanungo}, + title = {Object Recognition using appearance-based parts and relations}, + booktitle = {Proceedings of the IEEE Conference Computer Vision and pattern Recognition}, + year = {1997}, + address = {San Juan, Puerto Rico}, + month = {June}, + pages = {877 -- 882}, +} + +@Article{Murase_1995, + author = {H. Murase and S. K. Nayar}, + title = {Visual learning and recognition of {3-D} objects from appearance}, + journal = {International Journal Comupter Vision}, + year = {1995}, + volume = {14}, + pages = {5 -- 24}, +} + +@Article{Mokhtarian_1995, + author = {F. Mokhtarian}, + title = {Silhouette-based isolated object recognition through curvature scale space}, + journal = {IEEE Transaction on Pattern Analysis and Machine Intelligence (PAMI)}, + year = {1995}, + volume = {17}, + pages = {539 -- 544}, +} + +@Article{Stein_1992, + author = {F. Stein and G. Medioni}, + title = "Structural indexing: Efficient 3D object recognition", +journal = {IEEE Transaction on Pattern Analysis and machine Vision (PAMI)}, + year = {1992}, + OPTkey = {}, + volume = {14}, + pages = {125 -- 145}, + month = {February}, +} + +@InProceedings{Ashrock_1998, + author = {A. P. Ashrock and R. B. Fisher and C. Robertson and N. Werghi}, + title = "{F}inding surface correspondences for object recognition and registration using pairwise historams", + booktitle = "Proceedings of the European Conference on Computer Vision (ECCV '98)", + address = "Freiburg, Germany", + pages = "185 -- 201", + month = "June", + year = "1998" +} + +@InProceedings{Zhang_1999, + author = {D. Zhang and M. Hebert}, + title = "{H}armonic maps and their application in surface matching", + booktitle = "Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR '99)", + address = "Ft. Collins, CO, U.S.A.", + pages = "2524 -- 2530", + month = "June", + year = "1999" +} + +@Article{Sun_2003, + author = {Y. Sun and J. Paik and A. Koschan and D. Page and M. Abidi}, + title = {{P}oint {F}ingerprint: {A}n {N}ew {3D} {O}bject {R}epresention {S}cheme}, + journal = {IEEE transaction on Systems, Man, and Cybernetics --- Part B: Cybernetics}, + year = {2003}, + OPTkey = {}, + volume = {33}, + number = {4}, + pages = {}, + OPTmonth = {August}, + OPTnote = {}, + OPTannote = {} +} + +@Article{Viola_2004, + author = {Paul Viola and Michael J. Jones}, + title = {Robust Real-Time Face Detection}, + journal = {International Journal of Computer Vision}, + year = {2004}, + OPTkey = {}, + volume = {57}, + number = {2}, + pages = {137 -- 154}, + month = {May}, + OPTnote = {}, + OPTannote = {http://www.kluweronline.com/issn/0920-5691; vorher erschienen: siehe Viola_2001} +} + +@Misc{WWWvolksbot, + OPTkey = {}, + author = {Fraunhofer Gesellschaft - AIS}, + title = {The volksbot robot, \texttt{http://www.ais.fraunhofer.de/BE/ volksbot/}}, + OPThowpublished = {}, + OPTmonth = {}, + year = {2004}, + OPTnote = {}, + OPTannote = {} +} + +@Article{Golfarelli_2001, + author = "M. Golfarelli and D. Maio and S. Rizzi", + title = "Correction of dead-reckoning errors in map building for mobile robots", + journal = "IEEE Transaction on Robotics and Automation (TRA)", +year = "2001", + volume = {17}, + number = {1}, + month = {May}, +} + +@InProceedings{Fritzke_1995, +author = {B. Fritzke}, + title = "{A} growing neural gas network learns topologies", + booktitle = "Advances in Neural Information Processing Systems 7 - Proceedings of the 7th Advances in Neural Information Processing Systems (NIPS '95)", + year = "1995", + pages = "625 -- 632", + address = "Cambridge, MA, USA" +} + +@InProceedings{Frese_2001, +author = {U. Frese and G. Hirzinger}, + title = "{S}imultaneous {L}ocalization and {M}apping -- {A} {D}iscussion", + booktitle = "Proceedings of the IJCAI Workshop on Reasoning with Uncertainty in Robotics", + month = "August", + year = "2001", + pages = "17 -- 26", + address = "Seattle, USA" +} + +@InProceedings{ICRA2004_CMU, +author = {Chr. Baker and A. Chr. Morris and D. Ferguson and S. Thayer and Ch. Whittaker and Z. Omohundro and C. Reverte and W. R. L. Whittaker and D. H\"{a}hnel and S. Thrun}, + title = "A Campaign in Autonomous Mine Mapping", + booktitle = "Proceedings of the IEEE International Conference on Robotics and Automation (ICRA '04)", + month = "April", + year = "2004", + pages = "1998 -- 2003", + address = "New Orleans, USA" +} + +@InProceedings{ICRA2004, + author = "A. N{\"u}chter and H. Surmann and K. Lingemann and J. Hertzberg and S. Thrun", + title = "{6D SLAM} with an {A}pplication in Autonomous Mine Mapping", + booktitle = "Proceedings of the IEEE International Conference on Robotics and Automation", + month = "April", + year = "2004", + pages = "1998 -- 2003", + address = "New Orleans, USA" +} + +@InProceedings{IAV2004, + author = "H. Surmann and A. N{\"u}chter and K. Lingemann and J. Hertzberg", + title = "{6D SLAM} {A} {P}reliminary {R}eport on {C}losing the {L}oop in {S}ix {D}imensions", + booktitle = "Proceedings of the 5th IFAC Symposium on Intelligent Autonomous Vehicles (IAV '04)", + month = "July", + year = "2004", + address = "Lisabon, Portugal" +} + +@InProceedings{IAS2004, + author = "A. N{\"u}chter and H. Surmann and and J. Hertzberg", + title = "{A}utomatic {C}lassification of {O}bjects in {3D} {L}aser {R}ange {S}cans", + booktitle = "Proceedings of the 8th Conference on Intelligent Autonomous Systems (IAS '04)", + month = "March", + year = "2004", + pages = "963 -- 970", + address = "Amsterdam, The Netherlands" +} + + +@Book{DIPLOM2002, + author = "A. N{\"u}chter", + title = "Autonome Exploration und Modellierung von 3D-Umgebungen, GMD Report 157", + publisher = {GMD}, + address = "Sankt Augustin", + year = "2002", +} + +@article{RAAS2003, + author = "H. Surmann and A. N{\"u}chter and J. Hertzberg", + title = "{A}n autonomous mobile robot with a {3D} laser range finder for {3D} exploration and digitalization of indoor en +vironments", + journal = "Journal Robotics and Autonomous Systems", + volume = "45", + number = "3 -- 4", + month = "December", + year = "2003", + pages = "181 -- 198", +} + +@InProceedings{VMV2003, + author = "A. N{\"u}chter and H. Surmann and K. Lingemann and J. Hertzberg", + title = "{S}emantic {S}cene {A}nalysis of {S}canned {3D} {I}ndoor {E}nvironments", + booktitle = "Proceedings of the of the 8th International Fall Workshop Vision, Modeling, and Visualization (VMV '03)", + month = "November", + year = "2003", + pages = "215 -- 222", + address = "Munich, Germany" +} + +@article{Berns_1997, + author = "K. Berns and Th. Christaller and R. Dillmann and J. Hertzberg and W. Ilg and M. Kemmann and E. Rome and H. Stapelfeldt", + title = "{LAOKOON} -- Lernf{\"a}hige autonome kooperierende {K}analroboter", + journal = "KI", + volume = "11", + number = "2", + year = "1997", + pages = "28 -- 32", +} + +@InProceedings{KI2003, + author = "A. N{\"u}chter and H. Surmann and K. Lingemann and J. Hertzberg", + title = "{C}onsistent {3D} {M}odel {C}onstruction with {A}utonomous {M}obile {R}obots", + booktitle = "KI 2003: Advances in Artificial Intelligence. 26th Annual German Conference on AI, Proceedings Springer LNAI vol. 2821", + month = "September", + year = "2003", + pages = "550 -- 564", + address = "Hamburg, Germany" +} + +@InProceedings{KI2005, + author = "A. N{\"u}chter and K. Lingemann and J. Hertzberg and H. Surmann ", + title = "{H}euristic-{B}ased {L}aser {S}can {M}atching for {O}utdoor {6D} {SLAM}", + booktitle = "KI 2005: Advances in Artificial Intelligence. 28th Annual German Conference on AI, Proceedings Springer LNAI vol. 3698", + month = "September", + year = "2005", + pages = "304 -- 319", + address = "Koblenz, Germany" +} + + +@InProceedings{3DIM2003, + author = "A. N{\"u}chter and H. Surmann and J. Hertzberg", + title = "{A}utomatic {M}odel {R}efinement for {3D} {R}econstruction with {M}obile {R}obots", + booktitle = "Proceedings of the 4th IEEE International Conference on Recent Advances in 3D Digital Imaging and Modeling (3DIM '03)", + month = "October", + year = "2003", + address = "Banff, Canada", + pages = "394 -- 401", +} + +@InProceedings{ECMR2005, + author = "K. Lingemann and A. N{\"u}chter and J. Hertzberg and H. Surmann", + title = "{A}bout the {C}ontrol of {H}igh {S}peed {M}obile {I}ndoor {R}obots", + booktitle = "Proceedings of the Second European Conference on Mobile Robotics (ECMR '05)", + month = "September", + year = "2005", + address = "Ancona, Italy", + pages = "218 -- 223", +} + +@InProceedings{ICAR2003, + author = "A. N{\"u}chter and H. Surmann and J. Hertzberg", + title = "{P}lanning {R}obot {M}otion for {3D} {D}igitalization of {I}ndoor {E}nvironments", + booktitle = "Proceedings of the 11th International Conference on Advanced Robotics (ICAR '03)", + month = "June", + year = "2003", + address = "Coimbra, Portugal", + pages = "222 -- 227", +} + +@InProceedings{Levoy_2003, + author = "N. Gelfand and S. Rusinkiewicz and M. Levoy", + title = "{G}eometrically {S}table {S}ampling for the {ICP} {A}lgorithm", + booktitle = "Proceedings of the 4th IEEE International Conference on Recent Advances in 3D Digital Imaging and Modeling (3DIM '03)", + month = "October", + year = "2003", + address = "Banff, Canada", + pages = "(accepted)", +} + +@InProceedings{Greenspan_2000, + author = {M. A. Greenspan and G. Godin and J. Talbot}, + title = {{A}cceleration of {B}inning {N}earest {N}eighbor {M}ethods}, + OPTcrossref = {}, + OPTkey = {}, + booktitle = {Proceedings of the Conference Vision Interface}, + OPTpages = {}, + year = {2000}, + OPTeditor = {}, + OPTvolume = {}, + OPTnumber = {}, + OPTseries = {}, + OPTaddress = {Montreal, Canada}, + OPTmonth = {}, + OPTorganization = {}, + OPTpublisher = {}, + OPTnote = {}, + OPTannote = {} +} + +@Article{Rivest_1974, + author = {R. L. Rivest}, + title = {On the optimality of Elias's algorithm for performing best match searches}, + journal = {Information Processing}, + year = {1974}, + OPTkey = {}, + volume = {74}, + OPTnumber = {}, + pages = {678 -- 681}, + OPTmonth = {}, + OPTnote = {}, + OPTannote = {} +} + +@InProceedings{Fitzgibbon_2001, + author = {A.W. Fitzgibbon}, + title = {{R}obust {R}egistration of {2D} and {3D} {P}oint {S}ets}, + OPTcrossref = {}, + OPTkey = {}, + booktitle = {Proceedings of the 12th British Machine Vision Conference (BMVC '01)}, + OPTpages = {}, + year = {2001}, + OPTeditor = {}, + OPTvolume = {}, + OPTnumber = {}, + OPTseries = {}, + OPTaddress = {}, + OPTmonth = {}, + OPTorganization = {}, + OPTpublisher = {}, + OPTnote = {}, + OPTannote = {} +} + +@Article{ThrunLiu_2004, + author = {S. Thrun and Y. Liu and D. Koller and A. Y. Ng and Z. Ghahramani and H. F. Durrant-Whyte}, + title = {Simultaneous localization and Mapping with Sparse Extended Information Filters}, + journal = {Machine Learning and Autonomous Robots}, + year = {2004}, + OPTkey = {}, + volume = {23}, + number = {7 -- 8}, + pages = {693 -- 716}, + month = {July/August}, + OPTnote = {}, + OPTannote = {} +} + +@Article{Thrun_1998, + author = {S. Thrun and W. Burgard and D. Fox}, + title = {A probabilistic approach to concurrent mapping and localization for mobile robots}, + journal = {Machine Learning and Autonomous Robots}, + year = {1997}, + OPTkey = {}, + volume = {31}, + number = {5}, + pages = {1 -- 25}, + OPTmonth = {October}, + OPTnote = {}, + OPTannote = {} +} + +@Article{Lu_1997, + author = {F. Lu and E. Milios}, + title = {{G}lobally {C}onsistent {R}ange {S}can {A}lignment for {E}nvironment {M}apping}, + journal = {Autonomous Robots}, + year = {1997}, + OPTkey = {}, + volume = {4}, + number = {4}, + pages = {333 -- 349}, + month = {October}, + OPTnote = {}, + OPTannote = {} +} + +@Article{Dissanayake_2001, + author = {M. W. M. G. Dissanayake and P. Newman and S. Clark and H. F. Durrant-Whyte and M. Csorba}, + title = {A {S}olution to the {S}imultaneous {L}ocalization and {M}ap {B}uilding {(SLAM)} {P}roblem}, + journal = {IEEE Transactions on Robotics and Automation}, + year = {2001}, + OPTkey = {}, + volume = {17}, + number = {3}, + pages = {229 -- 241}, + month = {June}, + OPTnote = {}, + OPTannote = {} +} + +@Article{Arun_1987, + author = {K. S. Arun and T. S. Huang and S. D. Blostein}, + title = {Least Square Fitting of Two 3-D Point Sets}, + journal = {IEEE Transactions on Pattern Analysis and Machine Intelligence}, + year = {1987}, + OPTkey = {}, + volume = {9}, + number = {5}, + pages = {698 -- 700}, + OPTmonth = {September}, + OPTnote = {}, + OPTannote = {} +} + +@InProceedings{Fisher_2002, + author = "R. B. Fisher", + title = "{A}pplying knowledge to reverse engeniering problems", + booktitle = "Proceedings of the International Conference. Geometric Modeling and Processing (GMP '02)", + month = "July", + year = "2002", + address = "Riken, Japan", + pages = "149 -- 155", +} + +@Book{Schoening, + author = "U. Sch{\"o}ning", + title = "Logik f{\"u}r Informatiker", + publisher = "Spektrum Akademischer Verlag", + year = "2000", +} + +@InProceedings{Robertson_2000, + author = "C. Robertson and R. B. Fisher and N. Werghi and A. P. Ashbrook", + title = "{F}itting of {C}onstrained {F}eature {M}odels to {P}oor {3D} {D}ata", + booktitle = "Proceedings of the Adaptive Computing in Design and Manufacture (ACDM '00)", + month = "April", + year = "2000", + address = "Plymouth, UK", + pages = "149 -- 160", +} + +@InProceedings{Cantzler_2002_1, + author = "H. Cantzler and R. B. Fisher and M. Devy", + title = "{Q}uality enhancement of reconstructed {3D} models using coplanarity and constraints", + booktitle = "Proceedings of annual Symposium for Pattern Recognition (DAGM '02)", + address = "Z{\"u}rich, Switzerland", + month = "September", + year = "2002", + pages = "34 -- 41", +} + +@InProceedings{Cantzler_2002_2, + author = "H. Cantzler and R. B. Fisher and M. Devy", + title = "{I}mproving architectural {3D} reconstruction by plane and edge constraining", + booktitle = "Proceedings of the British Machine Vision Conference (BMVC '02)", + month = "September", + year = "2002", + address = "Cardiff, U.K.", + pages = "43 -- 52", +} + + +@InProceedings{Liu_2001, + author = "Y. Liu and R. Emery and D. Chakrabarti and W. Burgard and S. Thrun", + title = "{U}sing {EM} to {L}earn {3D} {M}odels of {I}ndoor {E}nvironments with {M}obile {R}obots", + booktitle = "Proceedings of the 18th Conference on Machine Learning", + month = "July", + year = "2001", + address = "Williams College", + pages = "", +} + +@InProceedings{Grau_1997, + author = "O. Grau", + title = "{A} {S}cene {A}nalysis {S}ystem for the {G}eneration of {3-D} {M}odels", + booktitle = "Proceedings IEEE International Conference on Recent Advances in 3D Digital Imaging and Modeling (3DIM '97)", + address = "Ottawa, Canada", + month = "May", + year = "1997", + pages = "221 -- 228", +} + +@article{Tonjes_1999, + author = "R. T{\"o}njes and S. Growe and J. B{\"u}ckner and C.-E. Liedtke", + title = "{K}nowledge {B}ased {I}nterpretation of {R}emote {S}ensing {I}mages {U}sing {S}emantic {N}ets", + journal = "Photogrammetric Engineering and Remote Sensing", + volume = "65", + number = "7", + month = "July", + year = "1999", + pages = "221 -- 228", +} + +@Book{NumericalRecipes, + author = "W. H. Press and B. P. Flannery and S. A. Teukolsky and W. T. Vetterling", + title = "Numerical Recipes in C : The Art of Scientific Computing", + publisher = "Cambridge University Press", + year = "1993", + month = "January", +} + + +@article{Powell_1964, + author = "M. J. D. Powell", + title = "An efficient method for finding the minimum of a function of several variables without calculating derivatives", + journal = "Computer Journal", + volume = "7", + year = "1964", + pages = "155 -- 162", +} + + +@misc{RANSAC, + author = "The RANSAC (Random Sample Consensus) Algorithm", + title = "\texttt{http://www.dai.ed.ac.uk/CV\linebreak online/LOCAL\_COPIES/FISHER/RANSAC/}", + year = "2003" +} + +@misc{SWI, + author = "SWI Prolog", + title = "\texttt{http://www.swi-prolog.org/}", + year = "2003" +} + +@Book{REPORT2003, + author = "H. Surmann and A. N{\"u}chter and J. Hertzberg", + title = "Autonomous Mobile Robots for 3D Digitalization of Indoor Environments, GMD Report 147", + publisher = "GMD - Forschungszentrum Informationstechnik GmbH", + year = "2003", +} + +@misc{FHG-IPM, + author = "The Fraunhofer Institute for Physical Measurement Techniques IPM", + title = "\texttt{http://www.ipm.fraunhofer.de/english/fields/}", + year = "2002", + address ="Freiburg, Germany", +} + +@InProceedings{Viola_2001, + author = "P. Viola and M. Jones", + title = "{R}obust {R}eal-time {O}bject {D}etection", + booktitle = "Proceedings of the second International Workshop on Statistical and Computational Theories of Vision -- Modeling, Learning, Computing and Sampling", + address = "Vancouver, Canada", + month = "July", + year = "2001", +} + +@InProceedings{Lienhart_2002, + author = "R. Lienhart and J. Maydt", + title = "{A}n {E}xtended {S}et of {H}aar-like {F}eatures for {R}apid {O}bject {D}etection", + booktitle = "Proceedings of the IEEE Conference on Image Processing (ICIP '02)", + address = "New York, USA", + month = "Septmber", + year = "2002", + pages = "155 -- 162", +} + +@InProceedings{Lienhart_2003, + author = "R. Lienhart and L. Liang and A. Kuranov", + title = "A {D}etector {T}ree of {B}oosted {C}lassifiers for {R}eal-time {O}bject {D}etection and {T}racking", + booktitle = "Proceedings of the IEEE International Conference on Multimedia \& Expo (ICME '03)", + address = "New York, USA", + month = "July", + year = "2003", +} + +@InProceedings{Lienhart_2003_1, + author = "R. Lienhart and A. Kuranov and V. Pisarevsky", + title = "{E}mpirical {A}nalysis of {D}etection {C}ascades of {B}oosted {C}lassifiers for {R}apid {O}bject {D}etection", + booktitle = "Proceedings of the German 25th Pattern Recognition Symposium (DAGM '03)", + address = "Magdeburg, Germany", + month = "September", + year = "2003", +} + +@Article{Turk_1991, + author = {M. Turk and P. Pentland}, + title = {Eigenfaces for Recognition}, + journal = {Journal Cognitive Neuroscience}, + year = {1991}, + volume = {3}, + pages = {71 -- 86}, +} + +@inproceedings{Carmichael_2002, + author = "O. Carmichael and M. Hebert", + title = "{O}bject {R}ecognition by a {C}ascade of {E}dge {P}robes", + booktitle = "Proceedings of the 13th British Machine Vision Conference (BMVC '02)", + month = "September", + address = "Cardiff, U.K.", + year = "2002", + volume = "1", + pages = "103 -- 112", +} + +@article{Hartmann_2002, + author = "R. Lienhart and A. Hartmann", + title = "{C}lassifying images on the web automatically", + journal = "Journal of Electronic Imaging", + volume = "11", + number = "4", + year = "2002", + month = "October", + pages = "445 -- 454", +} + +@inproceedings{Freund_1996, + author = "Y. Freund and R. E. Schapire", + title = "{E}xperiments with a new boosting algorithm", + booktitle = "Machine Learning: Proceedings of the 13th International Conference", + pages = "148 -- 156", + year = "1996", +} + +@inproceedings{Se_2001, + author = "S. Se and D. Lowe and J. Little", + title = "{L}ocal and {G}lobal {L}ocalization for {M}obile {R}obots using {V}isual {L}andmarks", + booktitle = "Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS '01)", + month = "October", + address = "Hawaii, USA", + year = "2001", +} + +@inproceedings{Launay_2001, + author = "F. Launay and A. Ohya and S. Yuta", + title = "{A}utonomous {I}ndoor {M}obile {R}obot {N}avigation by detecting {F}luorescent {T}ubes", + booktitle = "Proccedings of the 10th International Conference on Advanced Robotics (ICAR '01)", + month ="August", + address = "Budapest, Hungary", + year = "2001", +} + +@inproceedings{Dellaert_1999, + author = "F. Dellaert and W. Burgard and D. Fox and S. Thrun", + title = "{U}sing the {C}ondensation {A}lgorithm for {R}obust, {V}ision-based {M}obile {R}obot {L}ocalization", + booktitle = "Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR '99)", + address = "Ft. Collins, U.S.A", + month = "June", + year = "1999", +} + +@inproceedings{Correa_2003, + author = "S. Ruiz-Correa and L. G. Shapiro and M. Meila", + title = "{A} {N}ew {P}aradigm for {R}ecognizing {3-D} {O}bject {S}hapes from {R}ange {D}ata", + booktitle = "Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR '03)", + address = "Madison, U.S.A.", + month = "June", + year = "2003", +} + +@inproceedings{Papageorgio_1998, + author = "C. Papageorgiou and M. Oren and T. Poggio", + title = "{A} general framework for object detection", + booktitle = " Proceedings of the 6th International Conference on Computer Vision (ICCV '98)", + address = "Bombay, India", + month = "January", + year = "1998", +} + +@article{Rowley_1998, + author = "H. Rowley and S. Baluja and T. Kanade", + title = "{N}eural network-based face detection", + journal = "IEEE Transactions on Pattern Analysis and Machine Intelligence", + volume = "20", + number = "1", + year = "1998", + month = "January", + pages = "23 -- 38", +} + +@article{Haar_1910, + author = "A. Haar", + title = "{Z}ur {T}heorie der orthogonalen {F}unktionensysteme", + journal = "Mathematische Annalen", + number = "69", + pages = "331 -- 371", + year = "1910", +} + +@inproceedings{Greenspan_2003, + author = "M. Greenspan and M. Yurick", + title = "{A}pproximate {K}-{D} {T}ree {S}earch for {E}fficient {ICP}", + booktitle = "Proceedings of the 4th IEEE International Conference on Recent Advances in 3D Digital Imaging and Modeling (3DIM '03)", + month = "October", + year = "2003", + address = "Banff, Canada", + pages = "442 -- 448", +} + +@inproceedings{Boulanger_2002, + author = "P. Boulanger and O. Jokinen and A. Beraldin", + title = "{I}ntrinsic {F}iltering of {R}ange {I}mages {U}sing a {P}hysically {B}ased {N}oise {M}odel", + booktitle = "Proceedings of the 15th International Conference on Vision Interface", + month = "May", + year = "2002", + address = "Calgary, Canada", + pages = "320 -- 331", +} + +@INPROCEEDINGS{Morris03a, + AUTHOR = {Morris, A. and Kurth, D. and Whittaker, W. and Thayer, S.}, + TITLE = {Case Studies of a Borehole Deployable Robot for Limestone Mine +Profiling and Mapping}, + YEAR = {2003}, + BOOKTITLE = {Proceedings of the International Conference on Field and +Service Robotics}, + ADDRESS = {Lake Yamanaka, Japan} +} + +@ARTICLE{Belwood91a, + AUTHOR = {J.J. Belwood and R.J. Waugh}, + TITLE = {Bats and Mines: Abandoned Does Not Always Mean Empty }, + JOURNAL = {Bats}, + YEAR = {1991}, + VOLUME = {9}, + NUMBER = {3} +} + +@MISC{Pauley02a, + AUTHOR = {E. Pauley and T. Shumaker and B. Cole}, + TITLE = {Preliminary report of investigation: Underground Bituminous Coal +Mine, Non-Injury Mine Inundation Accident (Entrapment), {J}uly 24, 2002, +{Q}uecreek, {P}ennsylvania}, + NOTE = {Black Wolf Coal Company, Inc. for the PA Bureau of Deep Mine Safety}, + YEAR = {2002} +} + +@INPROCEEDINGS{Corke96a, + AUTHOR = {P. Corke and J. Cunningham and D. Dekker and and H. Durrant-Whyte}, + TITLE = {Autonomous underground vehicles}, + YEAR = {1996}, + MONTH = {September}, + BOOKTITLE = {Proceedings of the CMTE Mining Technology Conference}, + PAGES = {16--22}, + ADDRESS = {Perth, Australia} +} + +@PHDTHESIS{Bailey02a, + AUTHOR = {Bailey, T.}, + TITLE = {Mobile Robot Localisation and Mapping in Extensive Outdoor +Environments}, + YEAR = {2002}, + SCHOOL = {University of Sydney}, + ADDRESS = {Sydney, NSW, Australia} +} + +@INPROCEEDINGS{Haehnel02c, + AUTHOR = {S. Thrun and D. H\"{a}hnel and D. Ferguson and M. Montemerlo and +R. Triebel and W. Burgard and C. Baker and Z. Omohundro and S. Thayer and W. +Whittaker}, + TITLE = {A System for Volumetric Robotic Mapping of Abandoned Mines}, + YEAR = {2003}, + BOOKTITLE = {Proceedings of the IEEE International Conference on +Robotics and Automation (ICRA '03)}, + ADDDRESS = {Taipei, Taiwan} +} + +@INPROCEEDINGS{Ferguson03a, + AUTHOR = {D. Ferguson and A. Morris and D. H\"{a}hnel and C. Baker and Z. +Omohundro and C. Reverte and S. Thayer and W. Whittaker and W. Whittaker and +W. Burgard and S. Thrun}, + TITLE = {An Autonomous Robotic System for Mapping Abandoned Mines}, + YEAR = {2003}, + BOOKTITLE = {Proceedings of Conference on Neural Information Processing +Systems (NIPS)}, + EDITOR = {S. Thrun and L. Saul and B. Sch\"{o}lkopf}, + PUBLISHER = {MIT Press} +} + +@InProceedings{Folkesson_2003, + title = "Outdoor {E}xploration and {SLAM} using a {C}ompressed {F}ilter", + author = "J. Folkesson and H. Christensen", + booktitle = "Proceedings of the IEEE International Conference on Robotics and Automation (ICRA '03)", + year = "2003", + month = "September", + address = "Taipei, Taiwan", + pages = "419--426", +} + +@PhdThesis{Clark_1999, + author = {S. Clark}, + title = {{A}utonomous {L}and {V}ehicle {N}avigation}, + school = {The University of Sydney}, + year = {1999}, + address = {Sydney, Australia}, +} + +@InProceedings{Suomela_1995, + author = {J. Suomela and J. Kuusela and A. Halme}, + title = {{A} {M}ilimeter wave radar for close terrain mapping of an intelligent autonomous vehicle}, + booktitle = {Proceedings of the 2nd IFAC Conference on Intelligent Autonomous Vehicles}, + pages = {349 -- 354}, + year = {1995}, + address = {Helsinki, Finnland}, +} + diff --git a/.svn/pristine/eb/ebc7d9d45541cca03825b46a96dc5a1d7f539bad.svn-base b/.svn/pristine/eb/ebc7d9d45541cca03825b46a96dc5a1d7f539bad.svn-base new file mode 100644 index 0000000..0bb004a --- /dev/null +++ b/.svn/pristine/eb/ebc7d9d45541cca03825b46a96dc5a1d7f539bad.svn-base @@ -0,0 +1,27 @@ +/** + * @file + * @brief IO of a 3D scan in uos file format + * @author Thomas Escher + */ + +#ifndef __SCAN_IO_UOS_RGB_H__ +#define __SCAN_IO_UOS_RGB_H__ + +#include "scan_io.h" + + + +/** + * @brief 3D scan loader for UOS scans with color information + * + * The compiled class is available as shared object file + */ +class ScanIO_uos_rgb : public ScanIO { +public: + virtual std::list readDirectory(const char* dir_path, unsigned int start, unsigned int end); + virtual void readPose(const char* dir_path, const char* identifier, double* pose); + virtual void readScan(const char* dir_path, const char* identifier, PointFilter& filter, std::vector* xyz, std::vector* rgb, std::vector* reflectance, std::vector* amplitude, std::vector* type, std::vector* deviation); + virtual bool supports(IODataType type); +}; + +#endif diff --git a/.svn/pristine/eb/ebdf5fd35e3b45c92c781fae558f8adac5cc200d.svn-base b/.svn/pristine/eb/ebdf5fd35e3b45c92c781fae558f8adac5cc200d.svn-base new file mode 100644 index 0000000..03661ae --- /dev/null +++ b/.svn/pristine/eb/ebdf5fd35e3b45c92c781fae558f8adac5cc200d.svn-base @@ -0,0 +1,36 @@ +/** + * @file + * @brief IO of a 3D scan in front file format + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SCAN_IO_FRONT_H__ +#define __SCAN_IO_FRONT_H__ + +#include +using std::string; +#include +using std::vector; + +#include "scan_io.h" + +/** + * @brief 3D scan loader for UOS scans + * + * The compiled class is available as shared object file + */ +class ScanIO_front : public ScanIO { +public: + virtual int readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss); +}; + +// Since this shared object file is loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/.svn/pristine/ec/ec7c1d885a7748a5e26befa00bf9c224eb1c4077.svn-base b/.svn/pristine/ec/ec7c1d885a7748a5e26befa00bf9c224eb1c4077.svn-base new file mode 100644 index 0000000..5cd9e83 --- /dev/null +++ b/.svn/pristine/ec/ec7c1d885a7748a5e26befa00bf9c224eb1c4077.svn-base @@ -0,0 +1,57 @@ +锘#ifndef __GRID_CELL_H__ +#define __GRID_CELL_H__ + +#ifdef _MSC_VER +#define snprintf _snprintf +#undef _STDIO_DEFINED +#define _USE_MATH_DEFINES +#endif + +#include "slam6d/scan.h" +#include +#include +using std::string; +#include +using std::vector; + +typedef std::vector charv; +typedef std::vector charvv; + +#define CELL_TYPE_INVALID 0x00000001 +#define CELL_TYPE_ABOVE_DELTA_R 0x00000002 +#define CELL_TYPE_BELOW_DELTA_R 0x00000004 +#define CELL_TYPE_ABOVE_DELTA_Y 0x00000008 +#define CELL_TYPE_BELOW_DELTA_Y 0x00000010 +#define CELL_TYPE_ABOVE_R 0x00000020 +#define CELL_TYPE_BELOW_R 0x00000040 +#define CELL_TYPE_ABOVE_LIDAR 0x00000080 +#define CELL_TYPE_IN_OBSTACLE_RANGE 0x00000100 +#define CELL_TYPE_STATIC 0x00000200 +#define CELL_TYPE_MOVING 0x00000400 +#define CELL_TYPE_GROUND 0x00000800 + +typedef std::vector cell; +typedef std::vector cellColumn; +typedef std::vector cellArray; + +class cellFeature +{ +public: + float ave_x,ave_y,ave_z; + float min_x,min_y,min_z; + float max_x,max_y,max_z; + float delta_y; + + int circleNum; + int size; + unsigned int cellType; + cell* pCell; + + int columnID; + int cellID; +}; + +typedef std::vector cellFeatureColumn; +typedef std::vector cellFeatureArray; + +#endif //__GRID_CELL_H__ diff --git a/.svn/pristine/ec/eca1c3806a687cce50bf457f83cd54e0111e09ba.svn-base b/.svn/pristine/ec/eca1c3806a687cce50bf457f83cd54e0111e09ba.svn-base new file mode 100644 index 0000000..f8e982f --- /dev/null +++ b/.svn/pristine/ec/eca1c3806a687cce50bf457f83cd54e0111e09ba.svn-base @@ -0,0 +1,313 @@ +/**************************************************************************** + + GLUI User Interface Toolkit + --------------------------- + + glui_checkbox - GLUI_Checkbox control class + + + -------------------------------------------------- + + Copyright (c) 1998 Paul Rademacher + + This program is freely distributable without licensing fees and is + provided without guarantee or warrantee expressed or implied. This + program is -not- in the public domain. + +*****************************************************************************/ + +#include "glui.h" +#include "stdinc.h" + +/****************************** GLUI_Checkbox::mouse_down_handler() **********/ + +int GLUI_Checkbox::mouse_down_handler( int local_x, int local_y ) +{ + orig_value = int_val; + + TOGGLE_BOOL( int_val ); + + currently_inside = true; + + if ( int_val ) + draw_checked(); + else + draw_unchecked(); + + return false; +} + + +/****************************** GLUI_Checkbox::mouse_up_handler() **********/ + +int GLUI_Checkbox::mouse_up_handler( int local_x, int local_y, int inside ) +{ + if ( NOT inside ) { + int_val = orig_value; + } + else { + set_int_val( int_val ); + + /*** Invoke the callback ***/ + execute_callback(); + } + + if ( int_val ) + draw_checked(); + else + draw_unchecked(); + + return false; +} + + +/****************************** GLUI_Checkbox::mouse_held_down_handler() ******/ + +int GLUI_Checkbox::mouse_held_down_handler( int local_x, int local_y, + int inside) +{ + /********** Toggle checked and unchecked bitmap if we're entering or + leaving the checkbox area **********/ + + /** oops, this was wrong! + if ( NOT inside AND currently_inside == true ) + draw_unchecked(); + else if ( inside AND currently_inside == false ) + draw_checked();*/ + + if ( inside != currently_inside ) + TOGGLE_BOOL( int_val ); + + currently_inside = inside; + + if ( int_val ) + draw_checked(); + else + draw_unchecked(); + + return false; +} + + +/****************************** GLUI_Checkbox::key_handler() **********/ + +int GLUI_Checkbox::key_handler( unsigned char key,int modifiers ) +{ + return false; +} + + +/****************************** GLUI_Checkbox::draw() **********/ + +void GLUI_Checkbox::draw( int x, int y ) +{ + int orig; + + if ( NOT can_draw() ) + return; + + orig = set_to_glut_window(); + + if ( int_val != 0 ) { + if ( enabled ) + glui->std_bitmaps.draw( GLUI_STDBITMAP_CHECKBOX_ON, 0, 0 ); + else + glui->std_bitmaps.draw( GLUI_STDBITMAP_CHECKBOX_ON_DIS, 0, 0 ); + } + else { + if ( enabled ) + glui->std_bitmaps.draw( GLUI_STDBITMAP_CHECKBOX_OFF, 0, 0 ); + else + glui->std_bitmaps.draw( GLUI_STDBITMAP_CHECKBOX_OFF_DIS, 0, 0 ); + } + + draw_active_area(); + + draw_name( text_x_offset, 10); + + restore_window(orig); +} + + +/************************************** GLUI_Checkbox::draw_checked() ******/ + +void GLUI_Checkbox::draw_checked( void ) +{ + int state, orig; + + if ( NOT can_draw() ) + return; + + orig = set_to_glut_window(); + state = glui->set_front_draw_buffer(); + + glColor3f( 0.0, 0.0, 0.0 ); + glPushMatrix(); + translate_to_origin(); + if ( enabled ) + glui->std_bitmaps.draw( GLUI_STDBITMAP_CHECKBOX_ON, 0, 0 ); + else + glui->std_bitmaps.draw( GLUI_STDBITMAP_CHECKBOX_ON_DIS, 0, 0 ); + draw_active_area(); + glPopMatrix(); + + glui->restore_draw_buffer(state); + restore_window(orig); +} + + +/************************************** GLUI_Checkbox::draw_unchecked() ******/ + +void GLUI_Checkbox::draw_unchecked( void ) +{ + int state, orig; + + if ( NOT can_draw() ) + return; + + orig = set_to_glut_window(); + state = glui->set_front_draw_buffer(); + + glColor3f( 1.0, 1.0, 1.0 ); + glPushMatrix(); + translate_to_origin(); + if ( enabled ) + glui->std_bitmaps.draw( GLUI_STDBITMAP_CHECKBOX_OFF, 0, 0 ); + else + glui->std_bitmaps.draw( GLUI_STDBITMAP_CHECKBOX_OFF_DIS, 0, 0 ); + draw_active_area(); + glPopMatrix(); + + glui->restore_draw_buffer(state); + restore_window(orig); +} + + +/**************************************** GLUI_Checkbox::draw_X() ************/ + +void GLUI_Checkbox::draw_X( void ) +{ + int orig; + + orig = set_to_glut_window(); + + /* glPointSize( 1.0 ); + glBegin( GL_POINTS ); + for( i=2; i<=GLUI_CHECKBOX_SIZE-2; i++ ) { + glVertex2i( i,i ); + glVertex2i( i,GLUI_CHECKBOX_SIZE-i ); + } + glEnd(); + */ + + /* glColor3f( 0.0, 0.0, 0.0 ); */ + + /* + glBegin( GL_LINES ); + glVertex2i( 0, 0 ); + glVertex2i( GLUI_CHECKBOX_SIZE-0, GLUI_CHECKBOX_SIZE-0 ); + glVertex2i( GLUI_CHECKBOX_SIZE-0, 0 ); + glVertex2i( 0, GLUI_CHECKBOX_SIZE-0 ); + glEnd();*/ + + restore_window(orig); +} + + +/********************************** GLUI_Checkbox::draw_empty_box() **********/ + +void GLUI_Checkbox::draw_empty_box( void ) +{ + int orig; + + if ( NOT can_draw()) + return; + + orig = set_to_glut_window(); + + glColor3f( 1.0, 1.0, 1.0 ); + glBegin( GL_QUADS ); + glVertex2i( 0, 0 ); + glVertex2i( GLUI_CHECKBOX_SIZE, 0 ); + glVertex2i( GLUI_CHECKBOX_SIZE, GLUI_CHECKBOX_SIZE ); + glVertex2i( 0, GLUI_CHECKBOX_SIZE ); + glEnd(); + + glColor3f( 0.0, 0.0, 0.0 ); + glBegin( GL_LINE_LOOP ); + glVertex2i( 0, 0 ); + glVertex2i( GLUI_CHECKBOX_SIZE, 0 ); + glVertex2i( GLUI_CHECKBOX_SIZE, GLUI_CHECKBOX_SIZE ); + glVertex2i( 0, GLUI_CHECKBOX_SIZE ); + glEnd(); + + restore_window(orig); +} + + +/************************************ GLUI_Checkbox::update_size() **********/ + +void GLUI_Checkbox::update_size( void ) +{ + int text_size; + + if ( NOT glui ) + return; + + text_size = _glutBitmapWidthString( glui->font, name ); + + /* if ( w < text_x_offset + text_size + 6 ) */ + w = text_x_offset + text_size + 6 ; +} + + +/**************************** GLUI_Checkbox::draw_active_area() **************/ + +void GLUI_Checkbox::draw_active_area( void ) +{ + int text_width, left, right, orig; + + if ( NOT can_draw()) + return; + + orig = set_to_glut_window(); + + text_width = _glutBitmapWidthString( glui->font, name ); + left = text_x_offset-3; + right = left + 7 + text_width; + + if ( active ) { + glEnable( GL_LINE_STIPPLE ); + glLineStipple( 1, 0x5555 ); + glColor3f( 0., 0., 0. ); + } else { + glColor3ub( glui->bkgd_color.r, glui->bkgd_color.g, glui->bkgd_color.b ); + } + + glBegin( GL_LINE_LOOP ); + glVertex2i(left,0); glVertex2i( right,0); + glVertex2i(right,h+1); glVertex2i( left,h+1); + glEnd(); + + glDisable( GL_LINE_STIPPLE ); + + restore_window(orig); +} + + +/********************************* GLUI_Checkbox::set_int_val() **************/ + +void GLUI_Checkbox::set_int_val( int new_val ) +{ + int_val = new_val; + + /*** Update the variable we're (possibly) pointing to ***/ + output_live(true); + + if ( can_draw() ) { + if ( int_val ) + draw_checked(); + else + draw_unchecked(); + } +} diff --git a/.svn/pristine/ec/ecd9e5156ad4e3a6aa0696c719650be713f37169.svn-base b/.svn/pristine/ec/ecd9e5156ad4e3a6aa0696c719650be713f37169.svn-base new file mode 100644 index 0000000..2c6f26a --- /dev/null +++ b/.svn/pristine/ec/ecd9e5156ad4e3a6aa0696c719650be713f37169.svn-base @@ -0,0 +1,194 @@ +#----------------------------------------------------------------------- +# Makefile variations depending on different configurations +# +# ANN: Approximate Nearest Neighbors +# Version: 1.1 05/03/05 +# +# (This Make-config structure is based on the one used by Mesa by Brian +# Paul. If you succeed in porting ANN to your favorite system, please +# send email to mount@cs.umd.edu, and I'll try to include it in this +# list.) +# +#---------------------------------------------------------------------- +# The following configuration-dependent variables are passed to each +# the Makefile in subdirectories: +# +# ANNLIB The name of the ANN library file (usually libANN.a) +# C++ The C compiler (usually CC or g++) +# MAKELIB The command and flags to make a library file (usually +# "ar ...") +# CFLAGS Flags to C++ compiler +# RANLIB For "ranlib" = use ranlib, "true" = don't use ranlib +#---------------------------------------------------------------------- +# Revision 0.1 09/06/97 +# Initial release +# Revision 0.2 06/24/98 +# Minor changes to fix compilation errors on SGI systems. +# Revision 1.0 04/01/05 +# Modifications for alpha with cxx +# Removed CFLAGS2 options (just write your own) +# Removed -DUSING... (Compilers are pretty consistent these days) +# Added linux-g++ target +# Revision 1.1 05/03/05 +# Added macosx-g++ target +#----------------------------------------------------------------------------- + +#----------------------------------------------------------------------------- +# Compilation options (add these, as desired, to the CFLAGS variable +# in the desired compilation target below). For example, +# +# "CFLAGS = -O3 -Wall -DANN_PERF" +# +# -g Debugging. +# -O? Run-time optimization. +# -Wall Be verbose about warnings. +# +# -DANN_PERF Enable performance evaluation. (This may slow execution +# slightly.) +# +# -DANN_NO_LIMITS_H +# Use this if limits.h or float.h does not exist on your +# system. (Also see include/ANN/ANN.h for other changes +# needed.) +# +# -DANN_NO_RANDOM +# Use this option if srandom()/random() are not available +# on your system. Pseudo-random number generation is used +# in the utility program test/ann_test. The combination +# srandom()/random() is considered the best pseudo-random +# number generator, but is not available on all systems. +# If they are not available on your system (for example, +# Visual C++) then srand()/rand() will be used instead by +# setting this parameter. +# +# -DWIN32 +# This is used only for compilation under windows systems +# (but instead of using this, use the various .vcproj +# files in the MS_WIN32 directory). +#----------------------------------------------------------------------------- + +# Linux using g++ +linux-g++: + $(MAKE) targets \ + "ANNLIB = libANN.a" \ +# "C++ = g++" \ +# "CFLAGS = -O3" \ + "MAKELIB = ar ruv" \ + "RANLIB = true" + +# Mac OS X using g++ +macosx-g++: + $(MAKE) targets \ + "ANNLIB = libANN.a" \ +# "C++ = g++" \ +# "CFLAGS = -O3" \ + "MAKELIB = libtool -static -o " \ + "RANLIB = true" + +# SunOS5 +sunos5: + $(MAKE) targets \ + "ANNLIB = libANN.a" \ + "C++ = CC" \ + "CFLAGS = -O" \ + "MAKELIB = ar ruv" \ + "RANLIB = true" + +# SunOS5 with shared libraries +sunos5-sl: + $(MAKE) targets \ + "ANNLIB = libANN.a" \ + "C++ = CC" \ + "CFLAGS = -Kpic -O" \ + "MAKELIB = ld -G -o" \ + "RANLIB = true" + +# SunOS5 with g++ +sunos5-g++: + $(MAKE) targets \ + "ANNLIB = libANN.a" \ + "C++ = g++" \ + "CFLAGS = -O3" \ + "MAKELIB = ar ruv" \ + "RANLIB = true" + +# SunOS5 with g++ and shared libraries +sunos5-g++-sl: + $(MAKE) targets \ + "ANNLIB = libANN.so" \ + "C++ = g++" \ + "CFLAGS = -fpic -O3" \ + "MAKELIB = ld -G -o" \ + "RANLIB = true" + +#----------------------------------------------------------------------- +# Used for the author's testing and debugging only +#----------------------------------------------------------------------- + +# debugging version for authors +authors-debug: + $(MAKE) targets \ + "ANNLIB = libANN.a" \ + "C++ = g++" \ + "CFLAGS = -g -DANN_PERF -Wall" \ + "MAKELIB = ar ruv" \ + "RANLIB = true" + +# performance testing version for authors +authors-perf: + $(MAKE) targets \ + "ANNLIB = libANN.a" \ + "C++ = g++" \ + "CFLAGS = -O3 -DANN_PERF -Wall" \ + "MAKELIB = ar ruv" \ + "RANLIB = true" + +#----------------------------------------------------------------------- +# Some older ones that I have not tested with the latest version. +#----------------------------------------------------------------------- + +sgi: + $(MAKE) targets \ + "ANNLIB = libANN.a" \ + "C++ = CC -ansi" \ + "CFLAGS = -O2" \ + "MAKELIB = ar ruv" \ + "RANLIB = true" + +# DEC Alpha with g++ +alpha-g++: + $(MAKE) targets \ + "ANNLIB = libANN.a" \ + "C++ = g++" \ + "CFLAGS = -O3" \ + "MAKELIB = ar ruv" \ + "RANLIB = ranlib" + +# SunOS4 +sunos4: + $(MAKE) targets \ + "ANNLIB = libANN.a" \ + "C++ = CC" \ + "CFLAGS = -O" \ + "MAKELIB = ar ruv" \ + "RANLIB = ranlib" + +# SunOS4 with g++ +sunos4-g++: + $(MAKE) targets \ + "ANNLIB = libANN.a" \ + "C++ = g++" \ + "CFLAGS = -O3" \ + "MAKELIB = ar ruv" \ + "RANLIB = ranlib" + +# SunOS4 with g++ and shared libraries +sunos4-g++-sl: + $(MAKE) targets \ + "ANNLIB = libANN.so" \ + "C++ = g++" \ + "CC = g++" \ + "CFLAGS = -fPIC -O3" \ + "MAKELIB = ld -assert pure-text -o" \ + "RANLIB = true" + diff --git a/.svn/pristine/ec/ece14dbe3ab233988bf974f49bfcac4d5dc7d6b4.svn-base b/.svn/pristine/ec/ece14dbe3ab233988bf974f49bfcac4d5dc7d6b4.svn-base new file mode 100644 index 0000000..809985a --- /dev/null +++ b/.svn/pristine/ec/ece14dbe3ab233988bf974f49bfcac4d5dc7d6b4.svn-base @@ -0,0 +1,87 @@ +/** + * @file point3d.h + * + * @auhtor Remus Claudiu Dumitru + * @date 16 Feb 2012 + * + */ + +#ifndef POINT3D_H_ +#define POINT3D_H_ + +//============================================================================== +// Defines +//============================================================================== + +//============================================================================== +// Includes +//============================================================================== +#include "model/rotation3d.h" + +#include + +namespace model { + +// Forward declaration. Avoid circular inclusion. +class Plane3d; +class Vector3d; + +/** + * A point in space. + */ +class Point3d { +private: + static constexpr double _EPSILON = 1.0e-3; + +public: + double x; + double y; + double z; + + Point3d(); + + Point3d(const double& x, const double& y, const double& z); + + Point3d(const Point3d& other); + + /** + * rotate this point around another point + * @param ref the other point + * @param rot the rotation around the other point + */ + void rotate(const Point3d& ref, const Rotation3d& rot); + + /** + * translate this point by a vector + * @param vec the vector that defines the translation + */ + void translate(const Vector3d& vec); + + /** + * @return the distance from this point to another point + */ + double distance(const Point3d& other) const; + + /** + * @return the distance to a plane + */ + double distance(const Plane3d& plane) const; + + Point3d& operator=(const Point3d& other); + Point3d operator-(const Point3d& other); + Point3d operator*(const double& coef); + Point3d operator/(const double& div); + void operator/=(const double& div); + void operator+=(const Point3d& other); + void operator-=(const Point3d& other); + void operator*=(const double& coef); + bool operator==(const Point3d& other) const; + bool operator!=(const Point3d& other); + + friend std::ostream& operator<<(std::ostream& os, const Point3d& pt); +}; + + +} /* namespace model */ + +#endif /* POINT3D_H_ */ diff --git a/.svn/pristine/ee/ee0046fde10c98cd5f30745c596163400a305db2.svn-base b/.svn/pristine/ee/ee0046fde10c98cd5f30745c596163400a305db2.svn-base new file mode 100644 index 0000000..41fe06b --- /dev/null +++ b/.svn/pristine/ee/ee0046fde10c98cd5f30745c596163400a305db2.svn-base @@ -0,0 +1,2 @@ +#define version_string "0.48" +#define release_string "20090802" diff --git a/.svn/pristine/ee/ee6eafdfd5917ad87865840df6ad6857abdbe6b0.svn-base b/.svn/pristine/ee/ee6eafdfd5917ad87865840df6ad6857abdbe6b0.svn-base new file mode 100644 index 0000000..88c130f --- /dev/null +++ b/.svn/pristine/ee/ee6eafdfd5917ad87865840df6ad6857abdbe6b0.svn-base @@ -0,0 +1,36 @@ +/** + * @file + * @brief IO of a 3D scan in uos file format + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SCAN_IO_PCI_H__ +#define __SCAN_IO_PCI_H__ + +#include +using std::string; +#include +using std::vector; + +#include "scan_io.h" + +/** + * @brief 3D scan loader for UOS scans + * + * The compiled class is available as shared object file + */ +class ScanIO_pci : public ScanIO { +public: + virtual int readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss); +}; + +// Since this shared object file is loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/.svn/pristine/ee/ee85be6858b65eca300cfc689aa51f491386802b.svn-base b/.svn/pristine/ee/ee85be6858b65eca300cfc689aa51f491386802b.svn-base new file mode 100644 index 0000000..beca833 --- /dev/null +++ b/.svn/pristine/ee/ee85be6858b65eca300cfc689aa51f491386802b.svn-base @@ -0,0 +1,5000 @@ +-0.297462 0.176102 0.565538 -0.361496 0.909313 -0.182785 0.920712 0.478408 +0.167682 0.0499836 0.305223 -0.0805835 0.114973 0.882453 0.742916 0.16376 +0.0724605 -0.826775 0.69096 -0.559284 0.188485 -0.643934 0.749427 -0.942415 +-0.970662 -0.223466 0.91611 0.879597 0.927417 -0.382593 -0.711327 0.278713 +-0.519172 0.986146 0.135338 0.924588 -0.0837537 0.61687 0.0520465 0.896306 +0.901473 -0.325291 0.0652063 -0.120574 -0.488327 0.751363 -0.697499 -0.947413 +-0.987624 0.963139 0.369289 -0.211379 -0.883509 -0.708899 0.600525 -0.582872 +-0.643506 0.71497 0.575093 0.00459678 0.539812 -0.258652 0.869204 -0.00241996 +0.772744 -0.676832 -0.897886 -0.196002 -0.628767 0.30896 0.570148 0.26033 +-0.386577 -0.874337 -0.259992 0.312917 -0.0935399 0.573666 0.239825 0.85421 +-0.796208 0.678532 -0.642731 -0.143502 -0.381581 0.356034 0.65693 0.401868 +-0.218174 0.780909 0.499682 0.523531 0.214211 -0.29589 -0.291622 0.0764825 +0.091177 0.447957 -0.848885 -0.752714 -0.40904 0.733853 0.721019 0.0583175 +0.663434 -0.344447 0.696992 0.511178 0.723191 0.159443 -0.988504 -0.898227 +-0.972966 -0.467816 -0.756507 -0.00932436 0.665708 -0.215697 0.193261 -0.73054 +-0.503446 -0.623009 0.0161417 -0.0152601 -0.586458 0.358857 0.480893 -0.481899 +0.231917 -0.216164 -0.302167 0.938651 -0.337667 -0.550426 0.304921 0.733026 +0.881044 -0.953436 0.468168 0.290473 0.624624 -0.88191 -0.173327 0.594642 +-0.616391 0.222285 0.780042 0.915883 0.152626 0.500683 0.679114 0.974283 +0.111703 -0.193509 -0.932136 0.47911 -0.99438 -0.865367 -0.0967407 -0.375721 +0.876059 0.397368 0.90637 -0.91502 -0.254416 -0.770248 -0.95772 0.192315 +0.543171 0.18398 -0.605726 -0.108319 0.366217 -0.226911 -0.46079 0.683085 +0.337 -0.447926 0.728826 -0.72444 0.25202 0.201194 0.2288 -0.595918 +-0.989507 -0.323679 0.812735 -0.786256 -0.498072 -0.386284 0.049872 0.0345352 +0.575 0.358321 -0.63589 0.0972841 -0.205853 0.931691 -0.638675 0.374053 +0.335957 -0.223622 -0.627704 0.37217 -0.994567 -0.557683 -0.57658 -0.701232 +0.0755894 0.974534 0.715631 -0.206894 -0.526541 0.501268 0.571862 0.212854 +-0.869894 -0.151379 0.296696 0.616219 0.804961 0.216442 0.169456 -0.387354 +-0.417341 -0.677607 -0.101949 0.336936 0.759843 -0.780843 0.118637 -0.563597 +0.0711953 0.678427 -0.291873 0.388899 -0.369805 -0.543637 -0.272861 0.757796 +0.164091 0.2259 0.593925 -0.60811 -0.876473 -0.859748 -0.555799 -0.0760664 +-0.0258962 0.842516 -0.273949 0.755465 0.718062 0.698204 0.411453 0.57304 +-0.718382 0.878294 0.340659 -0.866202 -0.842228 -0.358782 -0.0827611 0.19 +0.195705 0.702977 -0.139206 0.49806 0.292129 -0.711906 0.460747 0.415933 +0.0301255 -0.0247891 0.655832 -0.28719 -0.980266 0.0435323 -0.218995 -0.328763 +0.152072 0.101915 -0.733531 0.979024 -0.402967 0.996893 -0.0937599 0.560043 +-0.146347 0.638532 -0.455591 0.757517 0.736552 -0.402962 0.279153 0.392166 +0.935555 -0.435862 -0.220478 -0.216536 -0.486893 -0.999307 0.870995 -0.219688 +0.874182 0.687041 0.818154 0.888706 -0.409832 -0.0864898 0.548772 -0.2601 +0.634894 0.752933 0.694626 0.568505 -0.53463 0.823661 -0.128738 0.589029 +0.876153 -0.936599 0.558147 0.461222 0.83707 -0.394617 0.293574 0.397603 +-0.605902 0.147833 0.883365 0.934395 -0.517984 -0.518272 0.15289 -0.197287 +-0.841908 -0.189046 -0.687789 -0.400047 -0.0059939 0.636801 -0.926915 0.456876 +0.895508 -0.273416 0.809081 -0.91928 -0.203844 0.216291 0.863094 -0.268931 +-0.0429209 0.67578 -0.352266 0.411506 0.81286 0.68938 0.852793 -0.629614 +-0.339257 0.526827 0.531975 0.187766 0.22966 0.453669 -0.662857 0.298569 +-0.710394 0.81991 -0.0218645 0.713223 -0.531523 0.0181046 -0.152334 -0.116328 +-0.907862 -0.406953 0.925716 -0.539728 0.785887 -0.971309 -0.413071 0.975195 +-0.648158 -0.12306 0.122396 -0.524215 -0.586375 0.803927 -0.1532 -0.714185 +0.393997 -0.147598 0.309933 0.780862 0.756713 -0.275399 -0.333717 0.65411 +-0.0393073 0.238394 0.329379 -0.529649 0.338274 0.355714 -0.0642789 0.790386 +0.854227 -0.538818 -0.137987 -0.352855 -0.438209 0.0361346 0.277982 -0.831233 +-0.619246 0.342369 0.641529 -0.388092 -0.0129252 0.649824 0.407042 0.60878 +-0.555105 -0.682711 0.150686 0.73807 0.164439 -0.579306 0.417745 -0.585381 +-0.338461 -0.483024 -0.726698 0.0718554 -0.107977 -0.182788 -0.390668 0.342764 +-0.0275691 -0.962499 0.7334 -0.106491 0.297794 -0.33725 -0.17166 -0.638197 +0.586193 0.352238 -0.0854822 0.654726 -0.476064 0.656265 0.66643 0.852146 +0.616724 -0.709663 0.684614 -0.148603 0.354114 -0.230582 0.277798 -0.631456 +-0.905237 0.403059 -0.699449 -0.898671 0.31476 0.878856 0.336509 -0.387219 +0.45696 0.0752823 -0.171288 0.555415 0.596403 0.901777 -0.441202 0.194817 +-0.192999 -0.88183 -0.254202 0.053615 0.441121 -0.094888 -0.225595 0.658495 +0.956766 -0.897565 -0.387446 0.444515 0.300364 0.864927 -0.74361 0.263379 +0.612994 -0.854378 0.0613588 0.837108 -0.535565 0.461418 -0.412153 -0.995443 +-0.649823 -0.976708 -0.188926 -0.456246 0.364738 0.0958001 -0.581642 0.271749 +-0.367256 -0.110651 0.723649 0.948672 0.824979 0.173978 -0.804377 -0.529976 +0.700675 -0.839077 0.211385 0.781518 -0.98416 0.0010383 -0.735942 -0.820944 +-0.21899 -0.698457 0.0323291 0.358671 -0.237131 0.766883 0.722428 -0.615278 +0.925019 0.477009 0.0929154 -0.963981 -0.770475 -0.66034 -0.412604 -0.989395 +0.188951 -0.899547 0.659488 0.000167491 0.241788 -0.833199 0.890115 -0.51071 +-0.567007 0.171081 -0.313735 0.263977 -0.452386 0.058921 0.245298 -0.681204 +-0.706525 0.541778 0.337212 0.527072 0.25638 -0.199825 0.935215 -0.303665 +-0.671715 0.928582 0.382235 -0.747164 -0.70352 -0.833457 0.486566 -0.880991 +0.00239932 -0.303997 -0.580476 0.159374 -0.766379 0.662052 -0.406566 0.247808 +0.72319 0.154886 -0.681147 -0.136651 -0.658755 0.119839 -0.396113 0.341413 +-0.846152 -0.765456 0.305871 0.317983 -0.416314 -0.0165978 0.579588 0.628929 +0.214003 0.0627324 -0.375235 0.0384183 -0.543795 -0.525115 -0.335451 -0.343502 +0.373437 -0.99614 -0.29953 0.819305 -0.350093 0.623615 -0.298837 0.593464 +-0.528475 0.623557 -0.0741295 0.437527 -0.145454 -0.915441 0.63253 -0.803763 +-0.106869 -0.0737426 -0.446327 0.475409 0.626033 -0.963294 -0.299805 0.942468 +0.892964 0.170889 0.311687 0.716786 -0.39085 -0.986859 0.484436 0.995274 +-0.706496 -0.537461 -0.762442 -0.904428 -0.433185 0.564872 0.470109 0.123817 +-0.262784 0.902148 0.774335 0.663736 -0.624472 -0.0984558 -0.337614 -0.720203 +-0.866238 -0.375162 -0.278362 -0.900335 0.530593 -0.519309 0.947509 -0.864766 +0.541422 -0.517111 0.969367 -0.00489309 -0.999942 -0.813808 -0.232481 -0.546827 +0.72111 0.500202 0.225871 0.601391 -0.530886 0.0662849 0.25603 0.0269803 +-0.55402 -0.733515 -0.474599 0.293354 -0.830255 -0.632472 0.591209 -0.958008 +0.190085 -0.953903 -0.102418 -0.31927 -0.808489 -0.0164479 0.965921 0.859736 +-0.045593 0.0761261 0.815027 0.0726849 -0.739992 -0.324571 0.37797 0.766814 +-0.53319 0.870626 0.882681 0.876645 0.335389 -0.91757 -0.645386 0.695575 +-0.654247 0.936453 0.3427 -0.897004 -0.631964 0.645085 -0.722994 0.782582 +-0.596276 -0.969859 -0.379385 0.862274 -0.162028 -0.78108 -0.779214 0.657125 +-0.389549 -0.139342 -0.226078 -0.629354 0.658266 0.749323 -0.712046 -0.463735 +-0.515695 -0.590335 -0.260976 0.836529 -0.43391 0.992155 -0.372528 0.256853 +-0.728294 -0.545911 -0.932695 0.607095 0.252943 0.679097 0.357944 -0.544717 +-0.522439 -0.597402 0.789478 0.216115 0.308621 0.906395 -0.446619 0.311532 +-0.354402 0.859965 0.73919 0.564627 0.799822 0.0650698 0.796785 0.0643813 +-0.822488 0.356159 0.73162 -0.950163 0.0307983 0.707154 -0.0150776 0.768888 +0.293397 0.470361 0.999707 -0.105452 0.265617 -0.0899393 -0.139308 0.247726 +-0.814213 0.000165209 0.743174 0.723423 -0.495665 -0.569869 0.20464 0.226699 +0.797078 -0.910643 0.638684 0.708226 -0.473388 -0.682395 0.937041 0.962691 +-0.599728 -0.0115274 0.0426607 0.77116 0.0906074 -0.225591 -0.476268 0.435468 +-0.825989 0.96699 0.402459 0.746756 0.0971159 0.960465 0.734328 -0.616388 +0.120195 -0.770287 0.700157 -0.362726 -0.977723 0.801883 0.572893 -0.86369 +-0.640466 0.160692 -0.0868509 0.337732 -0.365243 0.287518 0.00417294 -0.221229 +0.808683 0.9046 -0.714129 -0.142761 -0.885229 -0.491364 0.0646426 0.46698 +-0.639558 0.162556 0.261822 -0.785512 0.621871 -0.173387 0.57077 0.885758 +0.937931 -0.895746 -0.424813 0.396573 0.119719 -0.777125 0.503697 -0.929197 +0.317781 -0.437269 0.905695 -0.233495 0.531483 -0.117484 -0.433652 -0.210996 +0.237316 0.870417 0.499755 0.154555 -0.855437 0.993596 0.606112 -0.484495 +-0.871784 -0.00282462 -0.999517 -0.404143 0.332888 -0.401976 0.917133 -0.062792 +0.984408 0.979356 0.444104 -0.22763 0.780517 -0.335999 0.996501 -0.312278 +-0.959262 0.424283 -0.860627 -0.0694463 -0.733332 0.24356 0.704195 -0.629933 +-0.568364 -0.926862 -0.660816 -0.717476 -0.430908 0.312 0.0532743 0.621865 +-0.604698 -0.195759 -0.528853 -0.0751889 0.634449 0.376064 0.0408941 -0.233978 +0.86435 0.881091 -0.381823 0.415693 0.329333 0.533571 -0.472293 0.0100355 +-0.848382 -0.421601 0.325856 0.0402104 0.0375616 0.160701 -0.0488019 -0.821447 +-0.830876 -0.577031 0.668062 0.244227 0.786971 0.641181 0.185922 0.557849 +-0.222176 0.873644 -0.842672 0.0822688 0.1352 -0.720617 -0.753538 0.351144 +0.33882 -0.69687 0.670628 0.854046 0.0373551 -0.245094 -0.685852 0.465421 +-0.255688 -0.533918 -0.636433 0.782628 -0.908956 0.257956 0.127924 0.176628 +0.346114 -0.825391 -0.798756 -0.673796 0.0464586 -0.564756 -0.649834 -0.93799 +-0.872198 -0.525028 0.655929 -0.33057 0.578602 -0.0980388 0.18996 0.624275 +0.0377116 0.20725 0.534533 0.941527 -0.49673 -0.302692 -0.305545 -0.434091 +-0.892842 0.272028 0.621542 0.880808 0.461609 -0.575953 0.00533898 0.407816 +0.798509 -0.652709 -0.953708 0.363563 -0.6924 -0.506284 -0.854446 -0.900739 +0.42303 0.140742 -0.982719 -0.486268 0.619562 0.242502 -0.691598 -0.82573 +0.281322 0.738703 -0.745971 -0.921568 -0.0965933 -0.458791 -0.0239777 -0.391412 +0.737994 0.506724 0.408581 0.914318 0.944033 0.470169 0.517512 -0.582022 +0.854393 0.638642 0.925928 -0.266903 0.249463 0.348856 -0.373119 -0.272758 +0.359209 -0.00257437 -0.0371977 -0.0566714 -0.104687 -0.927367 -0.878102 0.915497 +-0.980826 -0.831506 -0.392008 0.98813 -0.796466 0.932677 0.751053 -0.268263 +-0.931643 -0.837905 0.246372 0.244269 -0.894743 -0.789657 0.791453 -0.811077 +0.354346 -0.970716 -0.632394 -0.321787 0.00575287 -0.309555 -0.0123187 0.175477 +0.180362 -0.284787 0.777856 0.93745 0.839013 0.184939 0.102242 0.0720602 +0.256497 -0.470638 -0.507036 -0.321465 0.848751 -0.745974 -0.921839 -0.743009 +0.393878 -0.842621 0.0562395 0.922845 0.141543 0.0318582 0.0349252 -0.0904675 +-0.229106 0.696157 0.770312 0.0376088 -0.673544 -0.282075 -0.90807 0.162741 +-0.926558 -0.74316 -0.55728 0.278791 -0.497663 -0.893535 0.3457 -0.395518 +-0.336464 -0.829243 -0.711496 0.136823 -0.599154 0.237323 -0.18359 0.770229 +-0.145921 0.482492 -0.71054 0.987273 0.741452 0.729582 -0.0281977 0.917108 +-0.458362 0.0658424 -0.0279174 0.856926 0.709681 -0.783696 -0.961252 0.688503 +0.973118 0.849728 -0.814271 -0.469361 -0.653283 -0.104521 -0.960699 0.245302 +-0.911346 0.999177 -0.148402 -0.549248 -0.128112 -0.0623094 0.602351 0.0236946 +-0.766632 -0.244277 0.434017 -0.175912 0.530235 0.51945 0.933491 0.795817 +0.135716 0.0875148 -0.117921 -0.964061 -0.884529 -0.444931 -0.113143 -0.49756 +-0.155353 0.381952 -0.549882 0.304886 0.085705 0.409697 0.326658 -0.401568 +0.661057 0.785486 -0.682437 -0.371898 -0.47805 -0.545586 0.349588 0.0399875 +0.283964 0.117143 -0.388108 -0.0946642 0.73372 0.41185 -0.117624 0.269631 +0.665895 -0.170339 -0.367877 -0.134399 -0.338441 -0.0982146 0.128465 -0.30942 +-0.588202 -0.901838 0.206724 0.15348 0.906219 -0.990114 0.668819 -0.942605 +-0.367757 0.180424 -0.472094 0.731779 -0.329447 -0.332298 -0.0121267 0.29385 +-0.739351 -0.68326 -0.789779 0.293027 0.248523 0.574044 0.282377 -0.654182 +-0.327741 0.769444 -0.45172 -0.485067 -0.687509 0.712137 -0.245604 -0.802737 +0.462452 0.287437 -0.862168 -0.0115283 0.180286 -0.0755134 0.00532817 -0.314071 +0.299825 0.304382 0.790399 0.539985 -0.132184 -0.116863 -0.450487 0.177349 +0.46726 -0.497682 -0.919405 -0.136883 -0.239881 0.38042 -0.657034 -0.58277 +0.408087 -0.352302 0.533597 -0.221728 -0.401964 -0.468149 -0.582847 0.0768009 +0.698612 0.482192 -0.863302 -0.848353 -0.637903 0.889848 0.338528 -0.121574 +-0.57544 0.386562 0.196173 -0.395793 -0.658929 -0.0862365 -0.134087 -0.503467 +-0.596217 -0.889683 -0.297276 -0.228813 0.0438439 -0.57411 -0.615104 0.398265 +0.723855 -0.750041 -0.539976 -0.936613 0.355356 0.352291 0.839291 -0.88281 +0.299302 -0.219931 0.0672785 -0.288995 -0.218354 0.800048 0.754672 0.318256 +0.572547 0.260125 0.792013 0.244274 -0.640165 -0.595878 0.403371 -0.188557 +-0.894039 -0.638266 -0.856429 0.24191 -0.296712 0.976669 0.609767 0.573067 +-0.445127 -0.973205 0.388411 0.603933 0.853165 -0.441861 0.0535785 -0.648563 +0.770047 -0.82881 -0.295716 0.465457 0.538209 0.157396 0.730344 0.786522 +-0.275821 -0.913917 0.839515 0.0459649 -0.20751 -0.125001 -0.805479 -0.657282 +-0.851585 0.989703 0.947285 -0.727628 0.831814 0.625855 -0.63615 -0.381488 +-0.0655911 -0.808206 0.600867 0.899066 -0.278109 0.910354 0.473494 0.142634 +0.808929 -0.168982 -0.847232 0.459863 -0.910526 0.656583 -0.285735 -0.404819 +-0.0320648 -0.825178 -0.387763 0.0331624 -0.946075 0.551552 0.328367 -0.520419 +0.664296 0.307382 0.78977 0.998128 -0.784913 -0.623012 -0.855921 -0.38578 +0.417838 -0.0115991 -0.188635 0.546942 0.0187048 -0.513309 0.0977445 0.683181 +-0.654691 -0.707864 -0.655903 -0.27102 0.494584 -0.64251 -0.822701 0.948065 +0.0520526 -0.7392 0.301475 -0.367139 0.0226178 0.3656 0.493187 -0.833477 +0.546452 0.25182 -0.240083 0.663908 0.233792 -0.40176 -0.523707 -0.958207 +0.637881 -0.434266 0.937711 -0.884153 0.967427 -0.2417 0.423966 0.338289 +0.580809 0.251979 -0.627208 -0.799636 0.556872 -0.367169 0.251983 0.792732 +-0.976935 0.0116265 0.982995 -0.792821 -0.951236 -0.669607 -0.580612 0.69541 +-0.477557 -0.462184 -0.940225 -0.358341 -0.908887 0.453559 0.248522 -0.777471 +-0.445277 0.195476 0.00953749 -0.637083 0.666037 -0.318406 -0.510122 0.157887 +-0.233629 0.404874 0.757236 0.73776 0.885794 0.604826 -0.0677713 -0.572471 +0.77151 0.61707 0.415902 0.310543 -0.580839 0.489709 -0.650273 -0.325419 +0.412893 -0.955568 0.956084 0.130488 0.0726098 -0.569455 0.596294 0.839599 +-0.298585 0.246649 0.950922 -0.735803 -0.0357101 -0.0360352 -0.260508 -0.817461 +0.216787 -0.426844 0.107673 -0.515836 0.249557 -0.532994 -0.352223 0.62053 +-0.0782868 -0.00041177 -0.100859 -0.0858553 0.847271 0.689137 0.170866 -0.47497 +0.0473733 0.288673 0.984627 -0.675146 -0.767599 -0.305889 -0.727514 -0.0746797 +0.443565 0.113971 -0.128798 0.689816 0.331141 0.878447 -0.0820185 -0.685195 +0.152155 0.232343 0.620349 0.810755 0.805267 -0.645301 0.371111 0.999969 +0.771033 -0.518711 -0.46167 -0.778356 -0.303337 0.338897 -0.788653 -0.641049 +-0.601934 -0.331875 -0.356332 -0.97196 -0.428272 0.489866 0.815942 -0.0266128 +-0.827429 -0.195289 0.949786 0.0602482 0.614102 -0.629974 -0.88504 -0.797522 +0.092041 0.467493 -0.907994 0.859784 0.514958 0.195214 0.533135 0.443255 +0.373345 -0.834546 -0.990051 0.482633 -0.576983 -0.78488 0.258782 0.143983 +0.0252336 -0.35831 0.267115 0.602956 0.567865 -0.0744821 0.350106 -0.965662 +-0.0995878 -0.0662973 -0.403141 0.363913 0.0576992 -0.778704 -0.0906451 0.132037 +0.901541 0.193029 0.958542 -0.279989 0.748255 0.523988 -0.178916 -0.122212 +0.662571 0.599512 -0.692118 -0.140859 0.943946 0.374829 -0.577019 -0.317454 +-0.569703 -0.421185 0.209724 -0.0272069 -0.825385 -0.299885 -0.702465 -0.841303 +-0.625022 -0.939014 -0.646478 -0.929883 -0.872406 0.240342 0.329466 0.982431 +-0.548367 -0.233095 -0.934782 0.563045 0.458769 0.805903 -0.395638 -0.335692 +0.0298147 0.93917 -0.641635 -0.93952 0.808355 0.0620558 0.272624 0.91682 +0.685732 -0.454605 0.895198 0.535367 -0.195084 0.798437 0.78036 0.0728712 +0.748921 0.613001 -0.586845 -0.368276 0.607438 0.44901 -0.860836 0.0710699 +0.160246 -0.912767 0.793088 -0.0789475 0.86137 -0.646717 -0.418569 -0.504365 +-0.714887 -0.158707 -0.312812 0.0879129 0.150715 0.0164083 -0.488934 0.0938861 +-0.671302 0.831696 0.215217 -0.394584 0.86001 -0.41718 -0.584042 -0.28624 +-0.493184 0.740163 -0.570726 -0.0863252 0.396933 0.379573 0.761653 -0.529462 +-0.0744424 0.903038 -0.587916 -0.666138 -0.602562 0.580486 -0.0215209 0.610203 +-0.0184679 0.767602 -0.617271 -0.70958 -0.401369 0.76296 0.730919 -0.0675959 +0.202507 0.0970708 0.813517 -0.379081 0.500343 -0.891592 -0.947009 -0.130569 +-0.3293 0.0190248 0.130283 0.0215455 0.468149 0.487996 -0.91982 0.263618 +0.166966 0.257769 -0.870823 -0.742854 0.347766 -0.517503 0.0991567 -0.937943 +0.177273 0.654459 -0.12014 0.0798352 0.328079 -0.41541 -0.981877 0.650573 +-0.416929 0.864492 -0.616631 -0.543461 -0.816447 0.627673 0.12846 -0.0171272 +-0.00616636 -0.927528 0.748037 0.627434 -0.763391 -0.43345 -0.631288 0.529012 +0.283554 -0.648569 0.872216 -0.546691 0.576309 0.996444 -0.243198 -0.933623 +-0.930564 0.547018 0.18931 -0.698586 0.151469 -0.842365 0.637498 -0.163121 +-0.00261068 0.704759 0.27449 -0.242241 -0.607262 0.580741 0.245604 0.92185 +0.582213 -0.823424 -0.10619 -0.990174 -0.0735172 -0.909104 0.520764 -0.820255 +0.900447 -0.94827 0.155163 0.417331 0.0114175 -0.00628024 -0.910574 -0.283187 +-0.187358 -0.139705 0.562407 0.292244 0.890497 -0.977713 -0.0115719 -0.0382545 +-0.690194 -0.0973353 -0.155404 0.0832844 0.162616 0.568383 -0.753987 0.435038 +0.291621 -0.5899 0.396798 -0.0742157 0.0331849 0.684662 0.655881 -0.261075 +0.872796 0.850441 0.888413 -0.469705 -0.100169 -0.416602 0.926549 0.101557 +-0.873468 -0.197107 -0.675292 0.49963 0.365601 -0.429868 0.132738 0.0865636 +-0.103572 -0.0652441 0.763867 -0.803298 0.438389 0.0059869 0.961121 0.149466 +0.156736 -0.240026 -0.016764 0.493385 0.197859 0.959152 -0.559036 -0.355299 +-0.129929 -0.100494 -0.324997 -0.932065 -0.439955 -0.908395 -0.815456 -0.0763179 +-0.51843 -0.429505 -0.404266 0.773386 0.669001 0.405253 -0.362474 -0.657479 +-0.326284 0.91793 -0.113967 0.27732 0.0900128 -0.0141997 -0.101568 -0.177652 +0.253364 0.944982 -0.981293 0.681051 0.220457 0.678805 0.117425 0.81758 +0.76245 0.882228 0.588842 -0.0966178 0.0846132 -0.814894 -0.599803 -0.157418 +0.602957 0.776127 0.436864 -0.0315237 -0.380279 -0.577336 -0.687014 -0.40178 +-0.138798 -0.105822 0.841678 -0.0263646 0.640965 -0.921257 -0.787924 0.262715 +-0.332249 0.699275 0.160189 -0.277205 -0.0486838 -0.735237 -0.00192763 0.880213 +-0.0118682 -0.907686 -0.196037 0.14673 -0.583138 0.602316 0.174741 -0.242854 +0.128001 0.0702017 -0.520309 0.950693 0.983046 0.976974 -0.696315 0.339818 +-0.220227 0.959419 -0.447921 0.772382 0.245944 -0.231034 0.781869 0.566132 +-0.739302 0.827347 0.564051 -0.450396 0.131851 -0.627369 0.0814461 0.792095 +-0.707655 0.761645 -0.347376 0.952777 -0.782499 0.000215353 0.130336 -0.123162 +0.200002 -0.651541 0.765025 -0.502356 -0.000344623 -0.349748 -0.700109 -0.847312 +0.636117 -0.129245 0.676774 -0.576404 0.0827873 -0.203879 0.701524 -0.809694 +0.434977 0.179651 -0.290366 -0.0791204 0.263298 0.639721 0.629461 0.670814 +0.00186741 -0.432625 -0.00158293 -0.831541 -0.823676 0.472602 -0.961719 -0.66056 +-0.984705 0.190091 0.565003 -0.884111 -0.559499 0.233506 -0.713269 0.547719 +0.355859 -0.245797 -0.742472 -0.677628 -0.970212 0.149376 -0.392426 0.544144 +-0.147631 0.907208 0.391922 -0.312962 0.963317 0.973541 0.291944 0.448386 +0.29835 -0.982196 0.707691 0.449114 0.460402 -0.526763 -0.993272 -0.782804 +0.304143 0.122948 0.493004 -0.717811 -0.37569 0.844869 -0.788104 0.617283 +0.743039 0.955465 0.235476 0.707989 -0.066996 0.420538 -0.721263 0.825603 +0.0494904 0.559394 -0.670968 -0.191983 -0.0920988 0.22054 0.580336 0.547939 +-0.188052 0.239844 0.27005 -0.188772 0.592379 -0.193501 0.501971 0.892349 +0.859846 0.604318 0.715631 -0.0350142 -0.386098 -0.253564 0.626177 -0.227681 +-0.867934 -0.332436 0.279554 -0.389763 0.528261 0.264091 0.292911 -0.265678 +0.566285 -0.180326 0.809413 0.526826 0.941549 0.383176 -0.515368 -0.477709 +0.965153 0.397489 0.82954 -0.696508 -0.64787 -0.324891 0.614777 -0.965558 +-0.0796109 -0.790563 -0.845366 -0.650756 -0.956735 -0.616139 0.246225 0.633251 +-0.0871428 -0.472832 -0.105659 0.22979 0.375183 0.486171 0.119254 0.872361 +0.681773 -0.0360835 0.262123 0.0616381 0.530013 -0.916977 -0.0935366 0.980232 +0.132328 -0.570867 -0.10049 -0.327286 0.515566 -0.46658 -0.539151 -0.91762 +0.296509 -0.4306 0.212748 -0.819735 0.863 0.396073 -0.804393 0.938419 +0.301962 0.126031 -0.422601 -0.538843 -0.730788 -0.672684 0.357379 0.19197 +0.0436512 0.947901 -0.200379 0.294212 -0.263388 0.889449 -0.158338 0.742788 +-0.857164 -0.794924 0.960183 0.462791 0.909592 0.621129 -0.979916 -0.483498 +-0.950737 0.509248 -0.415408 0.339305 0.0395366 0.326865 -0.0173424 -0.184521 +0.926779 -0.695107 0.178422 -0.0335427 0.558427 0.873586 -0.798514 0.59477 +0.0116028 -0.639165 -0.99498 -0.817078 -0.75414 0.997985 -0.149242 -0.757341 +-0.854019 -0.0510839 0.0171485 -0.499207 0.312593 0.354565 -0.726875 -0.509954 +-0.0973036 -0.97082 0.686793 -0.523589 -0.0157376 0.782279 0.692317 0.0632247 +0.778373 0.749199 -0.288588 -0.125306 0.483981 0.692396 0.0789724 0.616047 +0.563043 -0.109978 0.236749 -0.460316 -0.0637256 -0.939167 -0.218829 0.671097 +0.96692 0.293831 -0.285168 -0.125799 0.760805 0.894275 0.417545 -0.673229 +0.768438 0.955127 0.752221 0.554419 0.586243 -0.299753 0.0538873 0.857052 +-0.251428 -0.178101 0.598394 -0.783113 -0.312652 0.751426 -0.327546 -0.417581 +-0.373495 0.580349 -0.671673 0.191876 -0.524553 0.480578 -0.697009 0.121584 +0.940414 -0.420872 -0.399819 -0.734092 0.228542 0.438589 -0.656298 -0.94457 +-0.215194 -0.255169 0.305846 -0.796909 0.983606 -0.502691 0.736112 -0.0623938 +0.40672 -0.387792 0.688816 0.498798 -0.450368 0.732224 -0.592412 0.104975 +-0.81188 0.208479 0.16719 -0.649639 0.912674 0.644033 0.714323 -0.332735 +-0.58738 0.069026 0.281932 -0.93151 0.11176 -0.847874 -0.907921 -0.618208 +-0.0166421 0.32995 -0.413312 0.987446 -0.663446 -0.848917 -0.660166 0.918778 +-0.472898 -0.619355 0.081946 0.977692 0.424855 -0.698976 -0.247465 -0.414872 +-0.709575 0.437799 0.819009 -0.603688 0.911107 -0.0593075 0.6424 -0.841602 +-0.301987 0.0139387 0.703714 -0.142194 0.346217 0.886637 0.351668 0.0953612 +-0.798206 0.515067 0.350112 -0.118378 0.627946 -0.196216 -0.119848 -0.666486 +-0.0960841 -0.0905893 -0.401865 0.367503 0.522487 0.172046 0.405863 -0.703013 +0.681311 0.251237 0.726527 -0.788047 0.608837 0.87006 0.19911 -0.756488 +-0.367448 0.847017 -0.483341 -0.934484 0.484957 0.310926 -0.141077 0.799676 +0.129294 -0.939129 0.434043 0.928614 -0.784234 -0.155421 0.56559 0.42488 +-0.81969 -0.365195 -0.0990222 -0.659092 0.935576 0.997549 0.261516 0.479096 +-0.30282 0.597882 -0.0400856 -0.359952 0.65592 0.0900222 0.526692 0.387967 +-0.106283 0.985081 0.479074 0.825846 0.485159 0.432059 0.825164 0.975166 +-0.629375 -0.271564 -0.865987 -0.513429 -0.363984 -0.760674 -0.725854 -0.883243 +-0.724934 -0.00115233 -0.800608 -0.585264 -0.854157 -0.767145 -0.503937 -0.859145 +-0.437062 0.218128 0.339113 0.777923 -0.129217 -0.45072 -0.694891 0.195081 +0.253737 -0.0208482 -0.0750381 -0.924029 0.996339 0.482457 -0.625736 -0.844848 +-0.536997 -0.122948 -0.952199 0.298501 -0.572839 0.803669 0.846795 -0.204753 +-0.814245 0.856752 -0.854549 0.0121502 -0.244473 -0.477249 -0.926179 0.38471 +-0.622075 0.950099 -0.234329 -0.635224 0.689427 -0.242433 0.887506 -0.363187 +-0.268139 -0.997729 -0.0682811 0.697112 0.717812 0.817084 0.821962 0.354532 +0.281839 0.122168 -0.872511 -0.0787717 -0.433926 -0.297339 0.234911 -0.700059 +-0.442467 0.964492 -0.434611 0.75884 -0.90507 -0.0809998 -0.123331 -0.486963 +0.629516 -0.671634 -0.667595 -0.680669 0.00628531 -0.0160714 -0.0682033 0.404433 +0.493993 -0.5621 -0.300429 -0.541774 -0.609693 0.477616 -0.611964 0.777714 +-0.820392 -0.194439 -0.843868 0.548159 0.933125 0.0682794 0.90077 -0.912988 +0.346994 0.460742 0.0711625 0.143112 -0.322344 0.706363 0.581826 0.85121 +-0.340411 0.13449 -0.340575 -0.846684 -0.478047 0.177675 -0.409092 0.334076 +-0.944282 -0.814166 -0.83139 0.548307 0.512799 0.51377 -0.977379 -0.256738 +0.327306 0.449161 -0.589384 -0.377997 -0.980277 -0.317601 -0.825479 0.668345 +0.476947 -0.231503 -0.230226 0.291133 0.867569 -0.483659 -0.699588 -0.866898 +-0.417091 0.0796027 0.74786 0.663857 0.495741 0.14875 0.834061 -0.406024 +0.473261 0.140245 -0.84201 -0.513092 0.173684 -0.171047 -0.270411 -0.740897 +-0.279202 0.242499 -0.0531898 0.01875 -0.368387 0.11644 -0.22019 -0.844834 +-0.183708 -0.737165 0.850556 -0.345713 0.653315 0.773672 0.645283 0.926115 +0.505334 0.348271 0.312431 -0.0445571 -0.329575 -0.271828 0.0056622 -0.666408 +-0.649974 -0.683124 -0.000972694 0.317819 0.0950826 -0.979677 -0.816691 -0.619386 +0.679926 0.0729124 -0.823981 0.2991 0.448544 0.0401972 -0.756171 0.371164 +-0.840083 0.959263 -0.830681 -0.598575 0.0837273 -0.733904 -0.79105 0.484256 +0.412114 -0.407305 0.943331 0.608559 -0.323736 -0.0952373 -0.456893 0.464353 +-0.670586 -0.865889 -0.40852 -0.0711989 -0.0330043 0.374488 -0.747553 -0.00226158 +0.751611 0.0783874 0.80301 0.184682 -0.327936 0.246717 -0.910611 0.264174 +0.514412 -0.473595 0.6392 0.668385 0.84815 0.827681 0.222833 -0.37884 +-0.180982 -0.361258 0.407307 0.744511 0.469552 -0.544188 -0.780816 0.833719 +-0.665318 0.209095 0.0774345 -0.130712 -0.763488 0.624944 -0.350726 0.0769057 +0.703306 0.147031 -0.108821 0.0217217 -0.441957 -0.235285 -0.946216 0.0952471 +0.468648 0.922992 0.32141 0.611106 -0.828832 0.329353 0.0698133 -0.0894808 +-0.682444 0.155833 -0.76055 -0.926175 0.552841 -0.127039 0.215525 -0.129632 +0.928951 -0.145428 -0.983338 -0.242727 0.570928 0.484034 -0.372604 -0.0987295 +-0.373366 -0.583479 0.00910048 -0.678305 0.168452 0.754081 0.646345 -0.499036 +-0.17539 0.263483 0.988656 0.322723 -0.732819 -0.532137 0.0227312 -0.635047 +0.525417 0.0649438 0.6975 0.0404561 -0.544791 0.620582 -0.709808 -0.477295 +-0.334942 0.324497 0.847588 0.662796 -0.132046 -0.482696 0.991537 0.923082 +-0.20068 0.74449 -0.489799 0.63289 -0.866579 -0.282239 -0.625266 0.843382 +-0.135319 0.873575 -0.561836 -0.576817 0.0431551 -0.848525 -0.335841 0.774156 +-0.649615 0.740492 -0.645749 -0.361132 -0.205354 -0.675642 0.931562 -0.533698 +0.192217 0.0832572 0.543377 0.408635 -0.943419 -0.646391 -0.967457 -0.481755 +0.281202 0.868417 -0.114176 0.671657 -0.153338 0.73452 0.574116 -0.955257 +0.557163 -0.223188 0.962339 0.452624 0.613705 0.900581 0.645901 0.329851 +-0.598393 -0.487692 -0.602136 -0.472586 0.881521 -0.883675 0.537421 0.0677523 +0.263266 0.203235 -0.829731 0.189255 0.102929 -0.79814 0.254124 0.612319 +-0.0713455 -0.375519 0.419743 -0.225415 0.964394 0.109494 -0.709433 -0.331222 +0.843804 -0.183654 -0.341667 0.537221 0.250964 0.701849 0.730312 0.0704345 +0.284205 -0.673898 -0.298678 -0.468715 -0.997889 0.732829 -0.825887 -0.94121 +0.904557 -0.0467022 0.475033 0.270049 -0.736836 0.470416 0.0970923 -0.598756 +-0.424076 0.136916 0.524596 0.374663 0.203456 -0.681284 0.0263966 -0.699673 +0.0130246 -0.0532326 -0.0615701 -0.339619 -0.852729 -0.0357394 -0.83475 -0.89354 +0.987203 -0.0959013 0.0851994 -0.724039 -0.26461 -0.682084 -0.47515 -0.177745 +-0.877482 -0.537615 0.248853 0.0758161 0.28464 -0.359021 0.713614 -0.549527 +-0.336066 0.723184 0.424637 -0.609074 -0.0372588 0.694688 0.161025 0.00549367 +0.450152 0.566343 0.0599369 0.60323 0.331496 0.156181 0.228176 0.197368 +0.584285 0.30046 0.66568 0.818899 0.0788251 0.0212786 -0.352632 -0.489074 +0.479954 -0.201059 0.474697 0.74284 -0.143695 -0.829963 0.326414 -0.832921 +0.988085 -0.278915 0.605341 -0.152305 0.78077 0.881069 -0.818724 0.474738 +-0.436552 0.712162 -0.0635374 0.244215 -0.571331 0.204936 -0.111836 -0.0682449 +-0.0709972 0.574723 -0.909965 0.335705 0.269968 0.465588 -0.918693 0.091444 +0.98582 -0.0754521 -0.547262 -0.380355 -0.0867791 -0.0747597 -0.0866743 0.42908 +0.419141 0.100784 -0.917742 -0.638208 0.971851 0.0873342 0.508788 0.511826 +0.254514 -0.379363 0.344608 -0.253227 -0.126856 0.211372 -0.760917 -0.0370611 +0.461313 0.0262896 0.634298 0.447411 -0.731852 0.734685 -0.349677 -0.158824 +0.334537 -0.180378 -0.0369194 0.256403 0.0446841 -0.493594 0.54217 0.294292 +-0.0925171 -0.180654 0.701996 -0.634091 0.173207 0.15828 0.0562676 0.831866 +0.878095 0.981166 0.563838 -0.527609 -0.891458 0.55635 -0.369676 -0.816483 +-0.505458 0.434734 0.837874 -0.634362 -0.295461 -0.310891 -0.270371 0.78806 +0.0550179 -0.2884 -0.946651 0.276765 0.765948 0.803761 0.987376 0.339298 +0.363058 -0.200504 0.269844 -0.846002 0.821406 -0.899048 0.452818 -0.965904 +0.240888 -0.723617 0.850907 0.77804 0.416406 -0.881811 0.475796 -0.706006 +0.949923 0.703903 -0.577528 0.484688 -0.151916 -0.614139 0.278253 0.750611 +-0.562183 -0.840888 0.201305 -0.863502 -0.841988 0.963908 0.553503 -0.265581 +0.556983 0.914997 0.175021 0.676986 -0.515886 -0.708668 -0.0416682 -0.240647 +-0.470628 0.0114494 0.556913 -0.473869 -0.647865 -0.857761 -0.131074 -0.5774 +0.100571 0.572337 -0.86835 -0.772119 -0.895905 0.185833 0.820328 0.50272 +-0.145288 -0.879785 0.735591 0.143136 0.183041 -0.848571 0.770955 0.895035 +0.860503 0.638752 -0.923975 -0.776266 -0.0339876 0.392074 -0.409834 0.904356 +0.665608 -0.377151 0.539506 -0.885743 0.587655 -0.247009 0.929327 0.41128 +-0.333 0.693968 -0.200711 0.825734 -0.709479 -0.580446 0.0255974 0.0384008 +0.131076 0.347609 -0.372302 -0.57721 0.115747 -0.296598 -0.683664 0.3911 +-0.764893 0.147385 0.886291 -0.185818 -0.662009 -0.772474 0.27857 0.249265 +0.801509 0.807046 0.367588 -0.854962 0.493405 -0.290518 -0.641011 -0.775767 +0.286831 -0.691024 -0.444923 -0.0338499 0.339135 0.0460713 -0.329586 0.76591 +0.802283 0.0193814 -0.789017 0.473164 0.0212489 -0.635791 0.6961 -0.596351 +-0.596642 -0.998232 0.0136001 -0.276802 0.915992 0.691271 -0.300357 0.320925 +0.637074 -0.0804191 0.151036 -0.351331 0.542885 -0.289594 -0.821636 0.743944 +0.578408 0.0780374 -0.281724 -0.544973 -0.716897 0.932581 -0.476661 0.019135 +-0.380527 -0.443295 -0.546443 -0.0261096 -0.533649 -0.386573 -0.693799 -0.478674 +-0.046097 0.13709 -0.241074 -0.312128 -0.172706 0.414745 0.677841 -0.971149 +0.363223 0.655025 0.273508 -0.728881 0.288561 -0.417987 0.216158 0.297134 +-0.0229396 0.274697 -0.572701 -0.00854633 -0.891319 0.497741 0.707254 -0.0715516 +-0.166197 -0.175614 -0.382295 0.221078 0.31008 -0.40528 0.555547 0.206632 +0.0926327 -0.897087 -0.537789 0.423398 0.615531 -0.383331 0.485904 0.520743 +-0.992939 -0.571718 -0.43316 -0.714167 0.849937 0.646327 0.94783 -0.198636 +-0.174774 0.806576 -0.0249607 0.65846 -0.477966 0.209632 -0.397504 0.388044 +-0.558192 -0.478565 -0.071865 -0.788793 0.33193 -0.259333 -0.32999 0.807504 +0.407392 -0.293065 -0.620214 -0.342446 0.655084 -0.709866 0.276465 0.472418 +-0.742165 0.464929 -0.735399 0.827727 0.501501 -0.745092 0.151738 0.895937 +0.728639 -0.673592 0.805636 0.407921 -0.27646 -0.595708 0.786234 0.277305 +0.965162 -0.299604 0.0224402 -0.736399 0.99229 0.403263 -0.672184 -0.195072 +0.732057 0.242696 -0.842716 -0.981741 0.910077 0.37308 0.189254 -0.711949 +-0.112862 0.508801 -0.784562 -0.260952 -0.141216 -0.884663 0.659708 -0.645477 +0.137565 0.961694 -0.402307 -0.237631 0.879642 0.818971 -0.934519 -0.156967 +-0.369574 -0.448501 -0.0253348 -0.156766 -0.774773 -0.315431 0.0272124 0.383744 +-0.265289 0.0890106 -0.341694 0.749724 0.691768 0.210621 -0.946144 0.692789 +-0.366599 0.272157 -0.355304 -0.198237 0.896213 0.627534 0.0261838 -0.141295 +0.45492 0.302257 -0.0468647 0.649361 0.158008 0.117297 0.282796 0.953413 +-0.159449 -0.296339 -0.0335203 -0.523948 -0.872181 0.88031 -0.285115 -0.0267583 +0.572534 -0.0236469 0.274608 -0.931378 -0.0453279 -0.712016 -0.380912 -0.424716 +-0.934625 -0.456438 -0.661584 -0.116224 0.977467 0.0170871 -0.115195 -0.792868 +0.0637042 0.0229216 -0.00697457 -0.0529792 0.964685 0.231166 0.229974 0.3553 +0.789391 0.0625273 0.0602473 0.244722 0.645841 0.17548 -0.689109 -0.244772 +-0.690024 -0.095846 0.900466 -0.208639 -0.969796 -0.227784 0.108467 0.0271702 +-0.15074 -0.833923 0.128248 0.430724 0.482692 -0.969463 -0.632649 -0.145399 +-0.37713 0.0774293 -0.236528 0.922563 -0.81271 0.299678 -0.932778 0.492247 +0.188545 -0.529713 0.624936 -0.469141 0.987246 0.431504 0.854037 -0.762246 +-0.0552025 0.372414 0.869929 0.159012 -0.687834 -0.139634 -0.39739 -0.498658 +0.578699 0.910161 -0.154866 0.769141 -0.659524 -0.891779 -0.353737 0.622878 +0.901131 -0.957311 0.384053 -0.244528 -0.698428 0.14552 0.451192 0.547946 +-0.560394 0.785912 -0.671458 0.637162 -0.608589 -0.109387 -0.0562739 0.749011 +-0.235035 0.975024 -0.720015 0.423625 -0.194715 -0.844956 0.904767 0.334961 +-0.250385 0.278003 -0.960428 -0.560063 0.459592 0.549588 -0.587277 -0.317793 +-0.672238 -0.0193841 -0.609921 -0.743995 0.347307 -0.950875 0.304479 -0.0682391 +-0.738912 0.871768 -0.80597 0.943043 0.584323 0.184483 -0.823518 -0.450663 +-0.299693 0.658124 -0.0920184 -0.517681 -0.167155 -0.885931 -0.252782 -0.859972 +0.301004 -0.715509 -0.878621 0.343585 -0.305201 0.300754 -0.0804703 0.88171 +0.146689 -0.0406856 0.502733 -0.728415 0.667357 -0.681166 0.635528 -0.569843 +-0.605522 -0.389553 0.97596 -0.544883 -0.499722 -0.739967 0.936435 0.569182 +0.115188 -0.933271 0.618308 0.771824 -0.273154 0.973603 -0.548468 -0.377346 +0.289198 0.400707 0.341007 0.242693 0.629546 -0.841992 -0.902661 -0.680752 +0.790193 0.450719 -0.676837 -0.998801 -0.953709 -0.514285 -0.608983 -0.063873 +-0.845608 0.13869 0.308817 0.573333 -0.111053 0.850081 -0.130535 -0.626792 +0.557385 -0.668952 -0.517374 -0.837176 -0.0946193 -0.342095 0.329456 -0.725253 +-0.996383 0.298292 0.613085 0.279964 -0.341768 -0.0500832 0.836943 -0.382539 +-0.257443 -0.334236 0.341544 -0.762126 0.830931 -0.755055 -0.629344 -0.366851 +-0.00481919 0.954593 -0.807561 -0.415451 0.182417 -0.154364 -0.364854 0.835567 +-0.237453 0.829338 -0.0698139 0.596618 -0.349329 0.796922 -0.890895 0.178854 +-0.64816 0.967274 0.945728 0.734379 -0.994984 -0.931034 -0.267934 -0.924349 +0.473281 0.542363 -0.339317 -0.232638 0.56468 0.349527 -0.929153 0.944001 +-0.289266 0.588317 -0.0176391 0.735485 -0.997942 -0.885337 0.20366 0.112654 +-0.558884 0.940195 -0.889159 -0.673324 -0.995184 0.0471987 0.185648 0.949386 +0.196061 -0.930484 0.00639625 0.637149 -0.307618 0.998405 -0.0294353 -0.594105 +0.0552998 -0.11803 0.382521 0.119049 -0.0321779 0.0782131 -0.412258 -0.704946 +-0.76376 0.628232 0.832789 -0.0694965 0.126545 0.0439213 0.607367 0.335537 +-0.579641 -0.740907 -0.351012 0.88042 0.633933 -0.241521 -0.625853 0.625727 +0.560657 -0.526308 -0.829512 -0.802544 -0.670859 0.1376 -0.991083 -0.257036 +0.3691 0.714599 0.399681 -0.317525 0.271002 0.575944 -0.506426 0.00972196 +-0.0498428 0.299066 0.767105 0.383995 -0.0707558 -0.928393 0.797721 0.546903 +0.166821 -0.883638 -0.596293 0.511645 0.46263 -0.248875 0.885323 0.692066 +-0.466133 -0.432107 -0.921983 -0.0902192 -0.0991836 -0.391786 -0.227445 0.170829 +-0.19356 0.0902635 0.688871 0.763108 0.416828 -0.274712 -0.225387 -0.250981 +0.958279 -0.0519003 -0.323055 -0.685343 0.315093 -0.0760968 -0.136304 0.711662 +-0.368057 0.920782 -0.149644 0.991639 0.72477 0.312863 -0.493577 0.588193 +0.492952 0.505702 -0.689534 -0.634408 -0.794865 -0.562177 0.25718 0.61149 +-0.852158 0.425178 0.201842 -0.356184 -0.717887 -0.778701 -0.220887 -0.820186 +-0.0936795 -0.0265722 -0.297521 -0.983691 0.949468 0.688647 0.524366 -0.671308 +0.68033 -0.645956 -0.580308 -0.0508978 0.644663 0.504026 0.446264 -0.672277 +-0.594764 0.318113 -0.918364 0.932367 0.309752 0.428791 0.543422 -0.15454 +0.623329 -0.275694 -0.235256 0.276813 -0.679186 -0.694129 0.315376 0.85814 +0.265107 -0.403794 0.154762 0.599364 -0.183366 -0.486222 -0.603675 -0.967964 +0.00159266 0.345222 -0.71807 -0.691834 0.112445 0.421346 0.762269 -0.165408 +-0.583827 0.307018 -0.406981 -0.0445757 -0.0681729 0.596643 0.159363 0.441615 +-0.255382 0.406932 0.653552 -0.677342 -0.735519 0.896659 -0.541693 0.590323 +0.816429 0.683525 0.663796 -0.105868 0.335355 0.144513 0.6088 -0.71196 +0.905091 0.461875 0.748461 -0.631851 -0.22203 0.835632 0.701367 0.494544 +0.703343 0.960029 0.0364494 0.753041 -0.460295 -0.320132 -0.0610723 -0.990114 +0.841779 -0.607848 0.564599 0.626047 -0.274692 -0.474232 0.548603 0.574891 +-0.915994 0.245424 -0.980944 -0.0317871 -0.0595176 0.965232 -0.190413 0.309468 +0.265267 0.328185 -0.755614 0.0244079 0.859598 0.599836 0.182496 0.0869868 +0.678263 0.64813 -0.140393 0.965751 0.266443 0.896842 0.487152 0.366294 +-0.374064 -0.425941 0.364628 0.0217471 -0.819208 0.996813 -0.0982184 0.752044 +0.852448 0.954876 0.831177 -0.557424 -0.570651 0.0823429 0.194555 0.547086 +-0.00831721 0.374227 -0.169066 -0.393005 0.881835 -0.172907 -0.292724 -0.637595 +0.353033 -0.128384 0.017136 -0.967027 -0.0267362 -0.784259 0.738713 -0.479217 +0.781405 -0.0243668 0.0528664 -0.42977 0.309843 -0.981927 -0.458865 -0.373984 +0.686457 -0.859277 -0.4438 -0.319241 0.925002 -0.757436 0.371107 0.785337 +0.0687281 -0.227704 -0.716049 0.618614 0.809186 -0.323491 0.21301 0.558899 +-0.473516 -0.260677 -0.653484 -0.337515 -0.471802 -0.246028 -0.657803 -0.641357 +0.257195 0.333542 0.144983 0.906458 -0.221926 -0.179038 0.292535 -0.238652 +-0.444515 -0.597292 -0.140636 -0.138139 0.457578 -0.369601 -0.993449 0.59436 +0.331135 0.318457 -0.149608 0.906395 -0.566347 -0.603843 -0.157088 -0.745638 +0.854311 0.156158 -0.0937663 -0.177936 -0.331773 0.806838 0.0753236 0.48724 +0.734952 -0.803158 -0.789472 0.758886 0.667306 -0.658141 -0.453839 0.543691 +-0.0331302 0.673922 -0.0424407 -0.134746 0.980874 0.822616 -0.805295 -0.469583 +-0.241237 0.870376 0.537135 -0.257666 0.615657 0.718748 0.268031 0.0668715 +-0.397724 -0.830642 0.091248 -0.457051 0.802427 0.700776 0.65742 0.198644 +-0.0240565 0.027776 -0.976066 0.175095 0.00973869 -0.367777 0.571263 -0.210909 +-0.636901 0.827491 0.550051 0.183547 -0.585769 -0.370358 0.166339 -0.330917 +0.565224 -0.939577 -0.458682 0.9171 0.467549 -0.759357 -0.183062 -0.284542 +0.363913 -0.886314 -0.0413776 -0.351271 0.869881 -0.231896 -0.0871829 0.615437 +0.724921 0.342138 -0.891776 0.419366 -0.258134 -0.000122475 -0.329935 0.225855 +-0.0432628 -0.216738 0.848847 0.956695 0.363199 0.704409 -0.0599769 0.239999 +0.583261 0.411418 0.166635 -0.518895 0.240378 0.225784 -0.494503 -0.403743 +-0.150441 -0.474896 0.223493 0.588753 -0.737874 0.347776 -0.0871865 0.548901 +0.615756 0.829829 -0.939853 0.172147 -0.433539 -0.840024 -0.892388 -0.501087 +-0.203193 0.535319 -0.308958 0.587202 0.416361 -0.758153 -0.00744435 0.91033 +0.340677 -0.39525 -0.648123 -0.573656 0.610198 0.517564 0.154642 0.596717 +0.367509 0.610028 0.547478 0.925487 -0.637296 0.456543 0.65985 0.065585 +0.681616 0.260005 0.557239 0.923106 0.262336 -0.720056 0.164285 -0.620676 +-0.359834 -0.882962 -0.897786 0.429535 -0.702074 -0.766166 0.964263 -0.233261 +-0.237624 -0.790538 0.582138 -0.83352 -0.288147 -0.133838 -0.774226 -0.786283 +-0.748984 0.428917 0.231277 0.0558497 0.557488 0.154205 0.987467 -0.168732 +-0.348904 0.121741 0.887333 0.116473 0.335068 -0.607775 -0.0431827 0.970477 +-0.242826 -0.85206 0.794075 -0.587371 0.440513 -0.825878 0.695418 -0.755786 +-0.810785 -0.21277 -0.443549 0.435317 -0.278752 -0.532933 -0.793485 -0.699513 +0.122329 0.104611 -0.42504 0.606581 -0.444402 -0.435393 0.267759 -0.92598 +-0.274437 -0.920847 -0.972989 0.363913 0.83342 0.69625 -0.856296 -0.124536 +0.148277 -0.249354 0.692935 -0.133297 0.157911 -0.999667 -0.0986783 0.154615 +0.398736 0.531996 0.865322 -0.640611 -0.960076 0.131621 -0.0102551 0.392264 +0.0295367 -0.352277 0.0305908 -0.0388276 0.735082 0.0192332 0.643458 0.853862 +0.763109 0.93205 -0.576725 -0.184735 0.0222924 -0.960971 -0.630598 0.09047 +-0.602926 -0.465131 0.58007 -0.231048 0.32844 -0.408513 -0.0611884 -0.19347 +-0.565888 -0.406195 -0.50918 0.930646 0.116224 -0.284601 -0.939067 0.0921216 +0.381663 0.359147 -0.79389 0.915396 0.525897 0.553779 0.294566 -0.559796 +-0.955401 0.773148 -0.030864 0.47044 -0.485715 0.577058 0.501647 0.148485 +0.649985 0.187823 0.257612 0.234403 0.562823 -0.232794 0.466006 0.866358 +-0.967552 0.698507 0.973176 0.713228 -0.50343 -0.465678 0.565198 0.240488 +0.731744 0.860012 0.285087 -0.774288 -0.31705 0.157733 0.734589 -0.548765 +-0.575229 -0.389898 0.958725 0.580675 -0.549094 -0.881739 0.158066 0.504872 +0.248021 -0.711627 0.256419 0.982309 -0.819137 0.701679 -0.788117 -0.655522 +-0.977658 0.996174 0.222797 0.698182 -0.796879 -0.217397 -0.152265 0.00811935 +0.734854 -0.230751 -0.738565 -0.416549 0.148439 -0.734261 -0.0874713 0.197338 +0.431863 -0.617537 -0.369529 -0.152348 -0.547801 -0.920963 -0.0698932 0.115991 +0.863838 0.467625 -0.590202 0.731417 -0.111158 -0.0108276 -0.141117 0.388947 +-0.460448 -0.00358 -0.431949 0.448622 0.120444 0.281721 0.27916 -0.48844 +0.748822 0.72906 -0.814608 0.720227 -0.620837 -0.933228 0.592673 -0.715689 +-0.127509 -0.880016 0.23264 0.576413 -0.124992 0.581517 -0.119071 0.100669 +-0.754226 -0.130812 -0.83735 -0.467967 0.472236 0.277411 -0.604429 -0.495482 +0.468701 0.67957 -0.183306 -0.288385 0.536939 0.455635 -0.101417 0.480532 +0.131223 0.739641 -0.75708 0.521296 -0.74665 0.681778 -0.0432743 0.957592 +0.984619 -0.793028 -0.492116 -0.101056 -0.660434 0.716401 0.479151 0.711206 +-0.836175 0.751225 0.772158 -0.164186 -0.88874 0.507996 0.704264 0.600089 +0.0560691 -0.376625 -0.548074 0.299412 -0.934393 0.514745 0.499281 -0.904859 +-0.203049 -0.0873434 -0.917847 -0.78063 0.83491 0.464976 -0.579076 -0.659313 +-0.921206 0.566957 -0.314978 -0.765169 0.190357 -0.250332 -0.96709 -0.584996 +-0.905697 0.862693 -0.534835 -0.184377 0.797527 -0.0554951 0.484088 -0.35793 +0.00261279 0.478205 0.0564249 -0.543993 -0.40644 0.963891 0.699088 0.157682 +0.140747 0.236231 -0.240204 -0.897283 -0.725133 0.37085 0.375177 -0.690336 +-0.393322 0.628132 0.435174 0.309909 0.924293 -0.585999 -0.665178 -0.173297 +-0.741262 0.286904 0.466634 -0.11632 -0.332832 -0.298046 -0.129136 0.201002 +0.576918 -0.756116 -0.444226 0.219374 -0.644529 0.592023 -0.0436092 0.0751134 +-0.17499 0.0570784 -0.362637 -0.044791 0.137197 0.0987175 0.565834 0.843653 +0.234925 -0.852282 -0.420832 0.0505005 -0.693224 -0.355616 -0.286931 -0.786463 +0.225882 0.771209 -0.398083 -0.846683 0.86721 -0.242219 -0.784639 -0.0026907 +-0.293549 0.6105 -0.320505 -0.411405 0.724511 0.912 -0.00921325 -0.921633 +-0.52302 0.802085 -0.742938 -0.0560601 0.751242 -0.82785 0.432593 -0.969704 +-0.844137 0.394251 0.895536 -0.465464 0.00182795 0.411128 -0.890464 0.825167 +0.0722815 0.923014 -0.217788 0.731359 0.919544 -0.400096 -0.801688 0.679209 +-0.753574 -0.448565 -0.779133 -0.310703 0.681793 0.376105 -0.00229828 0.886417 +-0.0785138 -0.174144 0.364852 -0.724653 -0.00245858 -0.110276 -0.14491 0.901792 +0.363281 0.0423805 -0.446579 -0.414802 0.488114 0.635499 0.984603 0.754421 +-0.232388 -0.913675 -0.829001 0.483703 0.157112 -0.0105208 0.0124018 0.982927 +0.732588 -0.403144 0.0405142 0.666896 -0.983896 -0.88312 -0.598408 -0.102636 +0.235983 -0.194344 -0.899966 0.818913 -0.307926 0.605328 0.00938062 -0.979785 +0.00486521 -0.296775 -0.336182 -0.773916 -0.135781 -0.254591 -0.887617 -0.22463 +0.776907 -0.00507311 0.575003 0.0972172 0.0917146 0.299598 0.908971 0.371128 +0.154097 0.662223 -0.327984 0.809309 0.505141 -0.801119 -0.640887 -0.175704 +-0.621285 -0.93906 0.88343 -0.335682 -0.414518 -0.270482 -0.21631 0.938979 +-0.131579 0.914072 -0.764339 0.685784 0.948479 0.952585 -0.964771 -0.631935 +0.306776 -0.212961 -0.315976 0.614698 -0.0898369 0.780489 0.360809 0.416606 +-0.468014 0.404283 -0.96396 -0.189297 -0.791442 0.773885 0.587043 -0.0782596 +-0.480517 0.70835 -0.211486 0.732444 -0.276463 -0.75612 0.726469 -0.719253 +-0.622656 -0.699469 -0.946631 -0.530526 -0.0741792 0.961648 -0.727138 -0.679362 +0.474522 -0.510806 -0.284161 0.478636 0.241942 0.793324 0.864238 -0.0188507 +-0.861661 0.0884048 0.189929 0.755653 0.498479 -0.103323 -0.214646 0.876877 +0.540655 0.468286 0.761424 0.234187 0.311882 -0.949578 -0.301205 0.351382 +0.153818 0.516557 -0.833179 0.779226 0.833771 0.332097 0.682078 -0.621843 +0.054233 0.352558 -0.312155 0.823886 -0.967821 -0.442538 -0.940638 0.928046 +-0.287713 -0.320047 0.915229 -0.506667 0.836883 0.81554 0.523616 -0.477319 +-0.666288 -0.756207 -0.4391 -0.166991 -0.463488 -0.224589 -0.567453 -0.813841 +0.921816 0.233968 0.503249 -0.780836 0.661116 -0.878693 0.272364 0.653018 +0.0982718 0.955343 -0.00116737 0.0515896 -0.900309 0.162698 -0.405466 -0.622419 +0.274121 0.00532402 -0.278421 0.187935 0.737302 -0.288707 0.468913 0.0727112 +-0.645074 0.396039 0.918114 0.699024 -0.64576 -0.346968 0.968304 0.509498 +0.959975 0.275805 0.770663 0.264169 -0.546041 0.0894624 0.916164 -0.531846 +-0.220712 0.176343 -0.285256 0.428888 -0.806397 0.470583 -0.436048 0.352457 +0.827127 0.663989 0.197963 0.295046 -0.162647 -0.629688 0.0927522 0.528304 +-0.0948724 -0.449113 0.15219 -0.681607 0.439602 -0.556948 0.827255 0.30789 +0.633612 0.177003 0.197909 0.0607861 0.813352 -0.478578 0.849208 -0.0559195 +-0.621938 -0.938186 -0.344109 0.344632 -0.653958 -0.2633 -0.401879 -0.224379 +0.569173 -0.186415 -0.394973 -0.911254 -0.126121 0.722517 -0.336122 -0.606807 +0.336334 -0.737192 0.646788 0.590685 0.908107 -0.52367 0.407099 0.7393 +0.179463 0.948656 -0.959131 0.660897 0.973779 -0.819904 0.777307 0.707572 +0.805222 0.47696 0.792415 -0.153259 -0.34436 0.489184 0.178155 -0.676351 +-0.366101 -0.905987 0.370496 0.913466 -0.576158 0.0581566 -0.630027 0.624738 +0.240351 0.423925 -0.965376 -0.6155 0.167325 0.37747 0.6683 0.800608 +0.733028 -0.985473 -0.231205 0.147117 0.860921 0.797464 0.325777 -0.272022 +0.99405 -0.719682 -0.514499 -0.625007 -0.194546 0.149532 0.769961 -0.47702 +0.969417 -0.560176 0.136726 -0.084649 0.389179 0.916409 0.362402 -0.140272 +0.572255 0.967829 0.269192 0.278367 -0.512647 -0.80402 -0.424621 -0.495134 +0.74935 0.330136 0.37711 -0.219175 0.126386 0.643323 -0.0506832 -0.637607 +0.677819 0.147174 -0.883904 -0.674671 -0.702196 -0.609653 -0.360972 -0.411869 +0.0473199 0.885646 -0.447124 -0.310008 0.0355451 -0.661485 0.839227 0.301716 +-0.785281 0.731203 -0.962014 0.882407 0.762484 -0.0631677 0.0461328 0.556399 +0.836915 -0.880616 -0.20345 0.195834 -0.280629 -0.254905 0.541897 -0.944301 +-0.953188 0.637588 -0.999833 0.204481 0.493087 0.438599 -0.372864 0.646388 +-0.172526 0.402667 -0.0226788 0.132275 0.84847 -0.975069 0.400631 0.699629 +0.60715 -0.237398 0.851343 -0.469023 -0.246306 -0.126365 -0.22573 0.801854 +0.973127 -0.336768 0.426195 -0.82333 0.686216 -0.272869 -0.376275 -0.184089 +-0.834437 0.984273 -0.690948 0.536909 -0.969076 0.0569001 0.0944958 -0.847545 +0.350913 0.742704 -0.0888435 0.661019 -0.180019 -0.850345 -0.732034 0.287116 +0.42318 -0.0784443 0.76352 -0.287245 -0.0895427 0.107832 0.240182 -0.618388 +0.733383 -0.822303 0.779953 0.349853 -0.741592 0.23154 -0.164536 0.939154 +-0.529592 -0.0682568 -0.850412 0.236524 0.951305 0.835525 0.876292 0.434137 +-0.889841 -0.0897097 0.271357 -0.113305 0.541147 -0.65919 0.247945 -0.818463 +0.103092 -0.527044 -0.896553 0.594214 -0.937021 0.284395 0.297577 0.125347 +0.495554 -0.439143 -0.251043 0.0232232 0.865299 -0.109303 -0.171189 -0.875226 +0.57307 -0.578949 -0.608173 -0.684583 -0.107306 0.0709148 -0.0246238 -0.0624843 +-0.715761 -0.273036 -0.0475207 -0.574422 -0.70413 -0.840535 -0.823665 0.810428 +0.0481544 -0.712767 -0.756264 0.224144 -0.567741 0.944005 0.259615 -0.692591 +0.979149 0.0738153 -0.596483 0.0797648 0.0513163 -0.538501 -0.800301 0.706676 +-0.557846 -0.394867 0.63447 -0.100628 0.712387 0.00607913 0.515474 -0.208223 +0.425765 0.518023 0.770432 -0.926689 -0.327345 0.82541 0.425676 -0.334855 +-0.832356 0.754433 0.639186 -0.907847 -0.646159 -0.842478 -0.7382 -0.944428 +-0.527099 -0.544425 -0.0802107 -0.536255 -0.69648 -0.947971 -0.97821 -0.671188 +-0.385232 0.671455 0.676753 -0.388442 -0.770879 -0.455934 -0.532879 0.0420204 +-0.877769 -0.0561897 0.3066 0.977451 0.400127 0.473004 -0.664074 0.538949 +0.700269 0.477385 0.416165 0.283032 -0.736692 0.96748 0.818292 0.393618 +-0.591449 -0.66396 -0.552564 -0.248555 -0.0538592 0.0149328 -0.715989 -0.301757 +-0.961856 -0.480595 -0.224266 -0.600355 -0.313135 -0.373333 0.621861 0.119805 +-0.0289787 -0.867208 -0.352495 -0.670025 0.839881 0.416516 -0.584136 0.82359 +0.873906 -0.455942 0.744804 -0.701634 -0.240905 0.44596 0.264161 -0.894824 +0.650648 -0.210614 0.695181 0.230454 0.134154 -0.378442 0.68298 0.974372 +-0.616655 -0.654828 0.106464 -0.35322 -0.855384 0.868473 -0.197215 0.922002 +-0.713525 -0.0435003 -0.864588 0.656072 0.868593 0.173013 0.00212877 -0.775055 +0.911177 0.793915 -0.374071 0.495409 -0.771561 -0.163497 -0.880465 0.09295 +0.662883 0.901321 -0.682988 0.51054 0.905844 -0.645043 -0.378337 0.849723 +0.0722367 0.944185 -0.192626 0.234598 -0.73386 -0.920794 -0.355706 0.101956 +-0.743876 -0.37457 0.789534 -0.670556 -0.477737 -0.0691285 -0.602454 -0.991518 +-0.469718 -0.939276 -0.442335 -0.407247 -0.193899 0.378604 -0.376943 0.766453 +0.814289 -0.641182 0.415069 -0.407948 -0.693805 -0.118009 -0.836475 -0.116981 +-0.329729 -0.370857 -0.437681 0.100834 0.454515 -0.971288 0.171979 -0.705728 +-0.500349 -0.146904 -0.918759 -0.193116 0.0928924 -0.251882 -0.593915 0.51246 +-0.864867 -0.312605 -0.324324 -0.877312 0.816048 -0.69731 0.96412 0.654401 +0.652711 0.186415 0.873401 -0.835052 0.398853 -0.00100471 -0.795989 -0.40831 +0.122206 -0.673676 -0.455272 -0.977259 0.691944 -0.46109 0.6438 0.763297 +-0.254397 -0.978692 -0.930729 -0.491152 0.458397 0.58434 0.355154 0.975119 +0.221987 0.498127 -0.276902 -0.5598 -0.958984 -0.45776 0.846432 -0.723353 +-0.170915 0.730709 0.451446 -0.436452 -0.387114 0.680566 -0.107194 -0.536168 +0.375747 -0.0831178 0.965975 0.947039 0.452417 0.288673 0.852116 0.882378 +-0.299774 -0.00230704 0.707474 -0.0906821 0.06061 0.77999 0.355836 0.560197 +0.623911 0.51013 0.0369807 0.501648 -0.0966267 0.41681 -0.119264 0.114759 +-0.515069 0.52296 0.962316 -0.547326 -0.304037 0.0283051 -0.439579 -0.478872 +0.918665 0.580931 0.783695 -0.604643 0.896858 -0.688057 0.217374 -0.218612 +-0.692767 0.905495 0.850366 -0.612433 -0.573719 0.606877 0.918137 -0.645591 +0.0845819 -0.384892 0.898472 -0.591445 0.261452 0.880986 -0.170558 0.748134 +-0.845194 0.489728 -0.892401 -0.523616 0.608827 0.298731 -0.513934 -0.599622 +-0.441465 0.890703 -0.883215 0.847724 0.4496 -0.0929575 0.607727 -0.0115072 +-0.302087 0.0883766 -0.0491913 0.572896 -0.656623 0.200039 -0.99019 -0.622263 +-0.0611687 0.559847 -0.160513 0.914396 -0.789758 -0.0322675 0.243944 -0.873612 +0.383492 -0.227006 0.857748 -0.691379 -0.119268 0.906544 0.0676283 -0.941901 +0.362183 0.110534 0.118316 0.355861 0.538892 -0.499587 -0.476783 -0.80109 +-0.395513 0.313769 -0.854058 0.312002 -0.980265 0.589553 -0.231006 0.255777 +0.408053 0.417829 0.481733 -0.789267 0.91658 -0.771752 -0.61247 -0.842104 +-0.907614 0.915451 0.687083 0.89316 -0.181949 0.519122 0.195216 -0.897277 +0.109486 0.648038 -0.966609 -0.191132 -0.515898 -0.400711 -0.0251581 -0.694888 +0.507398 -0.436314 -0.918196 0.886837 -0.89631 -0.298954 0.133382 0.987254 +-0.847858 -0.890704 -0.485997 -0.243752 0.404901 0.056256 -0.0530081 -0.663969 +0.207087 0.022262 0.293799 0.738427 -0.659575 -0.37452 -0.222543 -0.660175 +-0.54719 0.5073 -0.203394 0.42828 0.270223 -0.268403 -0.576576 -0.196087 +-0.201262 0.865856 0.62896 0.166951 -0.797367 -0.394524 -0.223129 -0.708701 +-0.101959 -0.725559 0.798945 0.271839 0.0692502 -0.979058 -0.99892 0.0419966 +0.53545 0.922479 0.778318 -0.781238 0.398312 -0.577787 0.897057 -0.744146 +-0.62022 -0.373106 0.908867 -0.685094 -0.393671 -0.0789112 0.591853 0.681938 +0.616694 0.0851848 -0.781406 0.650371 -0.00992323 -0.725596 -0.725729 -0.212746 +-0.629517 -0.897357 0.530401 0.197561 -0.723204 0.5815 0.486909 0.791385 +0.332906 0.875343 -0.0229728 -0.26032 0.538418 -0.840019 -0.523949 0.923199 +0.454019 0.42438 -0.000983201 0.477238 -0.554344 0.0758181 -0.443851 0.645411 +0.704459 -0.16484 -0.283569 0.419795 0.515995 -0.707621 -0.127128 -0.00579609 +0.788275 0.123504 0.21663 0.573395 -0.115169 -0.266037 0.701736 0.196113 +0.356737 -0.529321 -0.616597 0.916584 0.437721 0.578161 -0.941679 0.0760077 +-0.360035 0.079058 0.246907 0.378028 0.0462992 -0.427991 -0.167935 0.784062 +-0.867621 0.228581 -0.0104227 -0.226125 -0.119777 0.778775 0.492626 0.928746 +-0.197559 -0.939388 0.868273 0.261652 -0.900631 -0.382494 -0.347938 0.537963 +-0.114143 0.123893 -0.106055 -0.416625 -0.104318 0.12035 0.509647 -0.428684 +0.978424 0.876989 0.838603 -0.0887538 0.334778 -0.66115 -0.335466 0.343176 +-0.820025 -0.908138 0.874542 0.314593 -0.818071 -0.257017 -0.836866 0.0887811 +0.656548 -0.291373 0.933373 0.256272 -0.898607 -0.399715 -0.503581 0.394048 +0.362886 -0.549097 -0.0870603 -0.0583177 -0.72757 0.925943 -0.133231 -0.547881 +-0.108116 0.469448 -0.145514 0.558468 0.799794 0.0360063 -0.703488 0.514873 +-0.256492 -0.113745 -0.45644 0.877031 -0.155099 0.675648 0.0225446 0.889124 +-0.997824 -0.275151 -0.0816768 -0.117119 -0.199962 0.793884 0.135836 -0.517578 +-0.85956 0.762486 -0.632285 0.0615244 -0.704787 0.880425 0.528767 -0.945482 +-0.0437808 -0.369173 0.113644 -0.0113774 -0.834023 0.500225 0.966642 -0.35483 +0.690285 -0.131156 -0.759254 0.853709 0.458314 -0.797575 -0.603178 0.439594 +0.0444817 0.901667 0.0658321 0.789708 -0.10006 -0.528711 0.955701 -0.980148 +0.306586 0.866876 -0.080387 0.245783 0.717017 -0.809001 0.484824 0.782623 +-0.632013 -0.677042 -0.014166 -0.995771 0.970022 0.883048 -0.133481 0.628743 +-0.688194 -0.17207 0.686293 -0.41734 0.496601 -0.074268 0.75973 -0.490093 +0.771534 0.0304465 0.296286 -0.27083 -0.836945 0.123148 0.902198 0.043503 +0.647878 0.224745 0.609021 0.193213 0.179697 -0.605319 0.79772 0.0173175 +0.075366 0.294109 0.417857 -0.326649 -0.565692 -0.474323 -0.224209 -0.666198 +0.133962 -0.427347 0.00741124 0.63284 -0.949592 -0.392416 -0.442946 -0.733096 +-0.561296 0.924184 0.626388 0.247312 -0.681852 -0.271314 -0.635791 0.857857 +0.477755 -0.998126 0.542267 -0.684616 0.657366 0.842474 -0.731047 0.880506 +0.0999426 -0.788276 0.907031 -0.66577 -0.34713 -0.813638 -0.924886 0.0799697 +0.000974058 0.879143 -0.917237 -0.0658394 0.536149 -0.897546 0.517589 0.878819 +-0.00976123 -0.234068 -0.195261 -0.865796 0.909201 0.694289 0.181825 -0.830926 +0.68441 0.462165 -0.502413 0.0498697 -0.0708356 -0.707278 -0.863705 0.926523 +0.0847125 -0.0993972 -0.93918 0.52679 0.899829 -0.154097 0.467359 -0.377423 +0.782743 0.212666 -0.882375 0.662286 0.0817885 0.466493 -0.947296 -0.561182 +0.984956 0.995736 -0.956063 -0.675235 -0.208349 -0.279891 -0.562258 0.0238953 +-0.973069 0.308437 -0.818147 0.46848 0.72665 -0.655727 -0.541774 0.671946 +0.187228 0.634296 -0.383014 -0.0904102 0.259885 0.57266 0.959802 -0.389448 +-0.684243 -0.11016 -0.953932 -0.0495816 -0.131607 0.728629 0.697163 -0.721516 +-0.181418 -0.382948 -0.722509 -0.695144 0.0787127 -0.245262 -0.498048 -0.739869 +0.830178 0.914575 -0.454904 0.745695 -0.239102 0.553015 0.294614 -0.175759 +0.984054 -0.0581829 0.446551 0.73675 0.868628 0.707773 0.717387 0.0422369 +-0.730983 0.194695 0.0743934 0.25252 -0.267732 -0.471383 0.297828 0.0322841 +0.655256 -0.560019 -0.641681 0.661432 -0.266061 0.052572 -0.955081 -0.282528 +-0.415285 0.226273 -0.90604 0.184445 -0.989665 -0.0912558 0.61949 -0.805614 +-0.500972 0.611884 0.8492 0.7098 -0.0588433 0.348041 -0.414189 -0.858704 +-0.648221 -0.759019 -0.811462 0.271084 0.737339 0.0153722 -0.592471 -0.826956 +-0.323454 0.611526 0.859839 0.716502 0.292863 -0.9588 -0.678535 0.938754 +0.154796 -0.115514 -0.739081 0.573985 -0.631539 0.589655 -0.14831 0.549913 +0.0906076 -0.651253 0.0283252 -0.946034 0.560444 -0.0612346 -0.199005 0.220301 +-0.0975565 -0.465731 -0.933866 0.111095 -0.465958 -0.828732 0.729906 -0.921229 +0.541046 0.152101 0.627026 0.919834 0.980592 0.278033 -0.357773 0.685608 +0.163656 -0.820748 0.219899 -0.101181 0.375515 -0.933299 0.515094 -0.8771 +0.603751 0.221247 0.446117 -0.989361 0.993051 0.0945616 -0.628518 0.819361 +-0.828535 -0.801524 -0.987235 0.928514 -0.0875665 0.861287 0.716365 -0.898612 +-0.170997 0.917167 -0.71157 0.475425 0.768015 -0.696612 0.204355 0.570293 +-0.827697 -0.28734 -0.0396248 -0.306508 -0.317003 -0.914925 -0.271988 -0.21109 +-0.841498 -0.252688 0.316755 -0.38155 -0.332195 0.289861 0.7727 -0.320135 +0.510168 0.169364 -0.498838 0.209328 0.514153 0.593351 -0.380651 0.311029 +-0.602362 0.678853 0.273814 -0.366988 0.909642 -0.953147 0.882081 0.884784 +0.521452 -0.495593 0.160721 0.176382 0.458051 -0.617109 -0.172667 0.145778 +0.817753 -0.144844 0.443388 0.514065 -0.635053 0.729437 -0.547013 0.235895 +0.0339596 0.0366261 0.349729 0.57932 0.181026 -0.785278 -0.61222 0.353273 +0.081437 0.0810859 -0.458834 0.342 -0.509965 -0.213191 -0.530875 0.748608 +-0.00403304 -0.730842 0.640446 -0.812574 -0.631621 -0.693543 -0.533125 0.240443 +0.736345 0.164469 -0.232611 -0.682714 0.0391465 0.215764 0.181629 -0.170527 +-0.316153 0.849775 -0.713543 -0.992168 0.226637 0.899808 -0.983037 0.615648 +0.593865 0.613709 0.964471 -0.0694818 -0.554318 -0.944957 0.404677 0.569198 +0.854136 -0.567775 0.624205 -0.0638568 0.227571 0.423304 0.804173 0.607347 +-0.57195 0.771232 0.949745 0.913996 0.033205 -0.674982 0.450981 -0.776398 +-0.00892122 0.28499 0.224971 0.83427 -0.677952 0.780563 -0.459848 -0.169539 +0.674748 0.550088 0.309164 0.650185 0.986459 0.479641 -0.759661 -0.070167 +0.131979 0.214995 0.57041 -0.426954 0.666856 -0.367388 -0.659574 0.729844 +-0.826653 -0.334649 -0.777172 -0.312917 -0.213826 -0.648087 0.361105 0.419723 +-0.60796 0.660562 0.877929 -0.317686 0.835597 0.770875 -0.669502 -0.354348 +-0.173571 -0.558255 0.288056 -0.0195096 0.216895 -0.697269 -0.936962 -0.110495 +-0.769401 0.205658 -0.422241 -0.418914 0.224285 0.724838 0.329769 -0.176675 +-0.608851 0.504321 0.401991 0.38628 -0.864586 -0.723579 0.528884 0.139734 +0.129013 0.832588 0.636092 0.379191 -0.47732 -0.774767 0.106628 -0.458607 +0.600563 -0.0212063 -0.6852 -0.986305 -0.894318 -0.499191 -0.0669232 0.65708 +-0.17459 -0.571405 0.45184 0.451606 -0.209903 -0.144011 0.0814855 0.394845 +0.801352 -0.184869 -0.700182 -0.58335 0.122312 0.483505 -0.938643 0.763043 +-0.694568 0.738964 0.144524 0.405695 0.0687771 0.852866 0.233823 -0.634871 +-0.441766 0.666858 0.917758 -0.0621066 0.898027 0.776859 -0.591587 0.538725 +-0.129871 0.86815 0.328025 -0.797892 -0.200945 -0.00775088 -0.787212 -0.0477195 +0.411625 -0.935478 0.97188 -0.4774 0.880431 -0.295131 -0.0397297 0.742689 +-0.468279 0.665199 -0.00262621 -0.306908 0.55242 -0.876837 -0.0766511 0.588279 +-0.384238 0.0945892 0.295707 0.210992 -0.239061 -0.0312253 0.963805 0.910599 +0.59308 -0.890281 0.360783 -0.441871 -0.18166 -0.842993 0.614948 0.372101 +-0.282672 0.484205 -0.390907 -0.641843 -0.900236 -0.419012 -0.127662 0.460704 +0.721775 0.869937 -0.550456 0.663482 -0.0202616 -0.493301 -0.404294 -0.255343 +-0.621552 -0.0546371 0.741689 -0.0772868 0.599692 0.960398 -0.099038 0.557427 +0.291379 0.851408 -0.688359 -0.376174 0.60419 -0.512245 -0.200478 0.441748 +0.30017 0.669317 0.0157743 0.864596 0.46077 -0.444435 -0.690974 -0.815909 +0.934688 -0.559636 -0.944507 0.573606 -0.210941 -0.0144233 -0.178447 -0.734446 +0.372047 0.115652 -0.184899 0.186208 0.350788 -0.707895 0.145772 0.0159335 +0.250639 0.683152 0.344556 -0.650937 0.994165 0.886205 -0.261378 -0.414116 +0.125493 -0.682846 0.8503 -0.795054 -0.547047 0.201266 0.951237 -0.570226 +-0.832089 -0.76452 -0.00559059 -0.0127649 -0.623252 0.695241 -0.0741697 -0.926311 +-0.870471 0.86697 -0.409793 0.185559 0.841404 0.775766 -0.661608 0.630784 +-0.0418847 0.510854 0.832215 0.574998 -0.993502 -0.659399 0.302716 -0.949432 +0.251255 -0.256833 0.17971 0.349283 0.823358 0.0684997 0.484002 0.0554339 +-0.0812522 0.530946 -0.0502746 -0.425602 0.402146 -0.149901 -0.00779549 0.496858 +0.308736 -0.105052 0.912841 0.839152 -0.305452 0.499928 0.95626 0.321928 +-0.3285 0.0754262 -0.978408 0.276809 0.890524 -0.191066 -0.37462 0.869924 +-0.843673 -0.317329 0.324965 0.899363 0.305543 -0.618414 -0.0500692 -0.305687 +0.776532 -0.565459 -0.694585 -0.461779 0.724174 0.724395 0.401296 0.937612 +0.184945 0.596819 -0.112383 -0.109576 -0.140985 -0.774741 -0.609435 0.0236652 +0.953433 -0.486151 0.655185 0.766429 -0.701394 -0.370928 -0.820288 -0.877196 +0.572462 0.709389 -0.316934 -0.81279 0.0864481 0.582348 0.482659 -0.223883 +0.515367 0.126074 -0.424637 -0.558138 0.176037 -0.735063 -0.448309 -0.74732 +-0.0720739 -0.0230992 -0.020745 0.243751 -0.0196581 -0.776428 0.372864 0.353649 +0.285757 0.60437 0.514482 0.200558 -0.0784612 0.491931 -0.391741 -0.219148 +-0.533693 0.928068 0.782882 0.29664 -0.189146 -0.4963 0.0980167 -0.959944 +0.608752 0.144835 -0.710443 0.601716 0.948639 -0.0447879 -0.518276 -0.00486581 +-0.254559 -0.329286 0.734333 0.130947 -0.00577986 -0.721763 -0.341906 -0.421621 +-0.855017 0.174414 -0.848329 0.214249 -0.58743 0.49036 -0.593059 0.659447 +0.526415 -0.727025 0.26561 0.669341 0.843729 0.0761335 0.169667 -0.116155 +-0.526465 -0.447057 -0.615264 0.489265 -0.974332 0.956576 0.835828 0.00231343 +0.613543 -0.325269 0.900706 -0.233333 0.137425 -0.0920977 0.654766 0.513183 +-0.491512 0.680511 -0.860143 0.000219877 0.158272 0.46976 -0.634852 0.550822 +-0.551847 -0.398146 0.1887 -0.631267 -0.644479 0.300039 -0.304721 0.542797 +-0.242835 -0.813084 -0.822062 0.898453 0.961803 -0.968091 -0.0286443 -0.383386 +0.921859 -0.268503 0.330602 -0.752452 -0.36633 0.706127 -0.853998 -0.163032 +0.356645 0.571826 -0.975479 0.616479 -0.701651 -0.44157 -0.281014 -0.1878 +-0.243982 -0.0327769 -0.0568341 -0.557591 -0.702275 -0.830818 -0.160744 -0.383181 +-0.606415 -0.993561 0.935008 0.237088 -0.626452 -0.279491 -0.0299587 0.096851 +-0.811084 0.697592 -0.358233 -0.624643 0.879112 0.98145 0.134991 -0.113781 +0.677045 0.173258 0.198926 -0.130985 0.692711 0.235918 -0.463143 -0.97181 +0.128611 -0.196469 -0.143549 -0.877259 -0.22387 0.911893 0.938579 -0.602357 +-0.558379 0.0831053 0.755255 -0.0633384 0.766946 -0.217916 0.803606 -0.69906 +0.378348 -0.577776 0.290786 0.72261 0.374513 -0.0515563 0.119249 -0.883982 +0.494366 -0.501015 0.221005 0.676703 -0.343459 0.239507 -0.43485 0.484132 +-0.0240771 -0.0695587 -0.767498 -0.426817 0.349456 0.815025 0.592253 0.0434642 +0.900908 -0.0224957 -0.227291 0.712525 -0.17387 0.423376 0.699817 0.0650314 +0.715058 0.981705 0.463282 -0.488915 0.225502 -0.579498 0.474955 0.0182237 +0.857074 -0.0382085 -0.560685 0.240137 0.713133 0.950877 0.839938 -0.222778 +-0.759526 -0.48741 -0.110886 0.589902 -0.178458 -0.533093 -0.336843 0.620609 +0.0139508 0.752568 -0.156613 0.316151 -0.0609667 -0.0964161 0.966551 -0.904765 +-0.460361 0.292631 0.780214 0.315363 0.707871 0.92645 -0.71585 0.321802 +-0.694523 0.944745 0.980457 0.706664 -0.327244 0.886355 0.877686 -0.999405 +-0.737367 -0.876693 0.594778 -0.23487 0.390236 -0.79106 0.712837 -0.382474 +-0.654429 -0.600899 -0.754773 -0.115959 -0.174276 -0.921064 -0.696421 -0.168972 +0.0708496 -0.735405 0.268682 0.566339 0.956091 -0.965215 -0.528977 -0.211907 +0.0595766 -0.271321 0.0586539 0.872684 -0.164932 -0.217101 -0.110703 -0.994614 +-0.100716 -0.21279 0.0343801 0.121225 -0.481159 -0.984074 0.423633 -0.524078 +0.677134 -0.121567 -0.719651 0.403784 -0.0439599 -0.0956062 -0.872936 -0.0305165 +0.603626 0.664413 -0.66371 0.677597 -0.635079 0.677114 0.274386 -0.565885 +-0.368999 0.395814 0.593433 0.071033 -0.517066 0.679989 -0.896466 -0.19466 +0.620615 -0.902769 -0.446372 0.71205 -0.0134724 0.792839 0.442742 0.705649 +0.448554 0.0907248 -0.875912 -0.78133 0.550768 0.401435 -0.2083 -0.548377 +-0.636633 -0.509317 -0.886577 0.836475 -0.244503 0.405991 0.435771 0.172506 +0.5809 0.193259 0.469274 -0.516108 0.116578 0.720497 0.492518 0.813402 +-0.764552 0.693023 0.813783 0.754981 0.505089 0.726952 0.72732 -0.579995 +0.609565 0.490126 0.354568 0.881088 -0.16121 -0.845049 -0.776224 -0.870536 +0.249554 0.737273 -0.873171 0.978158 0.972466 -0.191672 -0.759513 0.876725 +0.480007 0.890844 -0.29484 0.381001 -0.0617632 -0.397249 0.985152 0.245097 +0.588217 -0.748707 -0.723281 0.960338 0.332118 0.507824 -0.899531 -0.850595 +-0.528361 -0.0907407 -0.66284 0.194275 0.226352 0.939166 -0.796648 -0.560345 +-0.0018087 -0.488208 0.268087 -0.691234 -0.166023 0.857149 0.887926 -0.822825 +-0.255971 0.220112 -0.598075 0.0654637 -0.587158 -0.580129 -0.112089 -0.205686 +0.922303 0.926634 0.342239 -0.450665 0.960983 -0.0389203 0.0641601 0.166471 +0.478002 -0.208739 -0.505577 0.486465 -0.611075 0.835469 -0.388308 0.918577 +-0.945503 -0.489629 0.0602579 0.852291 0.898433 -0.523384 0.428025 -0.0249408 +0.448862 0.0653039 -0.833613 0.416429 -0.418658 -0.575603 0.283643 0.0631906 +0.472831 -0.233259 0.321724 -0.521398 -0.0559032 0.904495 0.0420803 -0.68707 +-0.418759 -0.243526 0.261977 -0.20153 0.363749 0.0561165 -0.901287 0.380951 +0.0356224 0.709165 0.687935 0.0385029 -0.360781 -0.0977945 -0.0523092 0.587724 +0.606512 0.606752 -0.948712 -0.0413094 -0.163546 -0.374833 -0.742109 -0.941404 +-0.591905 -0.527455 -0.364899 0.703861 -0.250776 0.13719 -0.547711 0.990142 +-0.188902 0.564909 0.927158 -0.906163 -0.417163 0.135594 -0.170626 0.874103 +0.0848013 0.132844 -0.735145 -0.093525 -0.421543 -0.397611 0.158808 -0.0642251 +0.985356 0.733467 -0.249225 -0.402127 0.153127 -0.194697 0.966564 -0.699326 +-0.92745 0.665489 -0.347215 0.693321 -0.957146 -0.653181 0.511458 -0.753823 +-0.713669 0.106806 0.116199 -0.42533 -0.423685 -0.615305 0.353406 0.455503 +0.913431 0.771845 0.325587 0.919554 -0.777534 -0.521801 -0.22661 -0.248731 +-0.987823 0.299457 0.651216 0.705278 -0.657446 0.861857 0.241607 0.781219 +0.666632 -0.940135 -0.465348 -0.997609 -0.97654 0.837899 0.583858 0.373042 +0.994313 -0.635854 -0.878991 -0.727423 0.782306 -0.892377 0.905096 0.074571 +0.554527 0.920449 -0.772302 -0.498784 0.957279 0.989656 -0.175314 -0.0813478 +0.930287 -0.50704 -0.239235 0.821616 -0.647472 -0.11052 0.247848 -0.5883 +-0.54487 -0.173971 -0.00350076 -0.259568 -0.845643 -0.968549 0.738096 0.262694 +0.523131 -0.923979 0.744681 0.813637 0.247499 -0.961381 -0.314356 -0.0229167 +-0.695943 0.421685 -0.198657 -0.511001 0.419557 -0.879891 0.531399 -0.659729 +-0.637058 -0.935509 0.718733 0.13937 -0.0334449 -0.192238 0.359693 0.626302 +0.552849 -0.919393 0.646026 0.437715 0.000286214 0.299565 0.44429 -0.341682 +0.464539 -0.527284 -0.44486 0.820841 0.930996 0.568054 0.386079 0.468224 +-0.294328 -0.808375 -0.529592 -0.106826 -0.321099 -0.984758 -0.115137 0.398672 +0.286542 0.295766 0.222531 -0.0306655 0.330739 0.906166 -0.413205 -0.761751 +-0.308349 0.428458 0.285334 0.999387 -0.876236 -0.41015 -0.572476 -0.581781 +0.0986278 -0.701512 -0.152086 0.554128 -0.729661 0.928477 0.248127 0.250132 +-0.301041 0.298569 0.336602 0.780929 0.389382 -0.968069 -0.645047 0.648065 +0.173302 -0.1454 0.24924 -0.968054 -0.267053 -0.706765 0.750725 0.768158 +-0.450792 -0.347903 0.687592 0.578171 -0.919444 0.426823 0.600826 0.455884 +0.125016 0.503402 0.168666 -0.267666 -0.27683 -0.886591 -0.771492 -0.948732 +0.876239 -0.355067 0.901132 0.871746 0.916059 -0.29615 -0.799335 -0.844642 +0.0149953 -0.608281 -0.500099 0.538077 0.378825 0.520402 0.575124 0.859247 +-0.610797 0.328011 -0.523517 -0.898361 0.00218621 -0.887533 0.0194196 -0.33779 +-0.616134 0.0660449 -0.31806 -0.30886 0.766834 -0.978261 -0.486737 -0.399618 +-0.0917382 0.277186 0.839681 -0.473801 -0.549823 -0.602682 -0.585298 0.293436 +-0.103361 -0.555463 -0.234813 0.432113 -0.468597 0.888812 -0.22229 -0.187223 +0.781542 0.0750056 -0.536047 -0.80232 -0.915122 0.428795 0.203037 -0.293338 +0.810786 -0.0354941 -0.675073 -0.645535 0.106937 0.354792 -0.872742 -0.412236 +-0.538382 -0.763935 -0.854645 -0.912881 -0.115333 -0.743536 -0.0770939 -0.465974 +0.741225 -0.43547 0.103791 0.763534 -0.513783 -0.870602 0.737691 -0.261385 +-0.0622958 0.204415 -0.915488 0.160516 -0.67954 0.190377 -0.50775 0.620587 +-0.119934 0.405527 -0.756127 -0.470831 0.609895 0.754775 -0.52016 0.342044 +0.440928 0.382402 -0.526856 -0.604671 -0.123643 0.0473221 0.681299 0.432775 +0.35705 -0.631322 0.335415 -0.160106 -0.511203 0.108416 -0.187068 -0.19273 +0.818762 0.955804 0.253726 0.243133 -0.866393 -0.713879 0.831281 0.48583 +-0.598078 -0.237423 -0.732799 -0.837698 -0.813628 -0.568913 0.975931 -0.414931 +-0.70244 0.670657 -0.627528 0.684003 0.879295 -0.780104 0.45747 0.717542 +0.742923 0.28711 0.427397 -0.804295 -0.935748 -0.63725 0.185404 0.195977 +0.523175 0.164912 -0.226626 0.473188 -0.903959 0.111465 0.962655 -0.649899 +0.811926 -0.150801 -0.148576 -0.314315 -0.378293 0.120209 -0.717872 0.475651 +0.527778 0.38538 0.294788 -0.284074 -0.43133 0.400691 0.6078 0.152683 +0.712556 0.5142 0.401574 -0.948874 0.628844 0.97335 -0.298696 -0.601937 +-0.991927 0.576505 0.407119 -0.467578 -0.189144 0.360232 0.517798 -0.435152 +-0.835849 0.981422 0.411036 0.965548 0.692699 -0.00998499 0.371297 -0.00133145 +-0.767232 0.09019 0.602586 0.912263 0.354785 -0.333148 0.653425 -0.649789 +-0.809157 0.21328 -0.835589 0.352537 0.358959 0.781091 0.0597904 0.466797 +-0.833931 0.470528 0.122331 -0.477634 -0.417411 0.421302 -0.191153 -0.132141 +0.45709 -0.959619 0.912188 -0.99528 -0.600182 -0.56223 -0.423687 -0.193773 +0.0216373 0.146337 0.905906 0.334817 -0.324455 -0.819952 0.347551 -0.277488 +-0.319623 0.209662 0.0298132 0.939739 -0.069773 0.888707 0.996402 -0.054304 +-0.821955 0.819168 -0.853819 0.571645 -0.834139 -0.861082 -0.873796 -0.237357 +0.236371 0.744487 0.741755 -0.471208 -0.78459 -0.443649 0.271483 -0.0455994 +0.851346 -0.208521 -0.131185 -0.796203 -0.255105 -0.698859 -0.612414 -0.816121 +-0.122906 -0.600864 -0.936747 -0.321419 -0.151019 -0.827735 0.136891 0.0296146 +0.735648 0.193249 -0.426487 -0.23817 -0.71209 0.423922 -0.347415 -0.378162 +0.778483 0.18169 -0.735153 0.984382 -0.306176 -0.99738 -0.107892 -0.795631 +-0.805644 0.112209 -0.298002 0.610045 0.0361954 -0.882893 0.282081 -0.989255 +-0.162802 0.138385 -0.476159 -0.34362 -0.0208122 0.547458 -0.397081 -0.597724 +0.884562 0.954509 0.571493 -0.00982217 0.869722 -0.729849 0.0274898 0.977989 +0.13102 0.704919 0.468061 -0.815591 0.402209 -0.521649 0.471525 -0.170029 +0.34004 0.298699 -0.269258 0.954558 -0.874734 0.193975 -0.827563 -0.400525 +0.157099 -0.292881 0.306565 -0.0130616 -0.158665 -0.149573 0.839071 -0.0153065 +0.45548 0.424047 -0.837859 0.741006 0.800953 0.938368 -0.691706 0.823846 +-0.601256 -0.357712 0.179111 0.175019 -0.385855 0.813766 0.717624 -0.232948 +-0.444183 0.955079 0.836534 -0.902232 -0.81723 -0.696455 0.540988 -0.59834 +-0.456177 0.51899 -0.226569 0.286242 0.0182484 -0.569708 0.0927978 0.351204 +0.42471 0.418102 0.544486 0.806483 -0.499258 -0.749449 -0.723003 -0.700478 +0.898082 0.908541 0.699173 -0.292711 0.297043 -0.990494 0.995252 0.851631 +0.594536 -0.732215 0.328213 0.133244 -0.528041 0.529194 0.787225 -0.309067 +-0.872484 -0.526274 -0.368968 0.620617 0.59385 -0.197271 -0.531257 0.160596 +-0.911691 0.992716 0.138414 0.439126 -0.856473 0.458083 -0.724759 -0.949265 +0.445634 0.941434 0.383013 0.119187 0.360761 0.224577 -0.406873 -0.14874 +-0.850024 0.406242 -0.987686 0.419716 0.833527 -0.810417 0.30594 -0.00712326 +-0.190325 0.903821 -0.160207 -0.185619 -0.546711 -0.368094 0.835662 -0.140476 +0.398994 -0.701222 -0.607329 0.172177 -0.970453 0.830484 -0.50775 0.782039 +-0.467062 -0.00650276 0.950333 0.176548 -0.210942 -0.558266 -0.0952733 -0.0479317 +0.100437 -0.393928 -0.847001 -0.829858 -0.441968 -0.0318336 -0.490883 0.848848 +-0.631143 -0.528653 0.631995 0.695675 -0.51902 -0.396995 -0.7112 -0.740444 +-0.26705 -0.555723 -0.914737 -0.545952 -0.280876 0.852172 -0.965218 -0.79901 +0.292693 0.340534 -0.403736 -0.0187143 -0.403433 -0.653135 -0.873989 -0.252567 +-0.321953 -0.00175426 -0.0982173 0.529045 -0.341277 -0.629041 -0.599386 0.661672 +0.910626 -0.537007 0.203493 -0.00364493 0.937403 -0.464218 0.533787 0.746203 +-0.437352 0.581493 0.320334 -0.147759 0.358775 0.289687 0.779021 -0.0177836 +-0.882005 0.455478 -0.218773 -0.372343 0.989746 0.41922 -0.198826 -0.661025 +0.87591 -0.712593 -0.304432 0.826156 -0.642761 -0.933846 -0.291615 -0.316973 +0.604414 0.88602 0.782185 0.470725 0.711684 -0.061264 0.525596 -0.200641 +0.248111 -0.608594 -0.851087 0.310291 -0.372669 0.95437 0.103978 0.91879 +-0.101975 0.704781 0.305341 0.560117 0.517339 -0.660969 0.858211 0.224984 +0.437192 -0.697103 -0.335884 -0.83529 0.0265226 -0.0506648 0.937622 0.312205 +0.266575 -0.439799 -0.429115 0.589414 0.540477 0.611981 -0.592582 0.780986 +0.298469 0.289732 -0.382572 -0.257052 0.293741 -0.291227 0.375649 0.297089 +0.206021 0.580981 0.886214 -0.0433701 0.751282 0.900529 -0.214723 0.772611 +-0.172119 -0.642249 0.0190451 -0.143636 0.253911 -0.203335 0.0485596 0.17505 +-0.843601 -0.513378 -0.291131 -0.040763 0.772936 0.911256 0.395748 0.408965 +0.287581 0.520859 -0.94936 -0.553394 -0.674212 -0.0944238 -0.685162 0.890514 +0.529198 -0.500136 -0.638627 0.424193 0.467577 -0.561498 0.39007 -0.925369 +0.3854 0.0436241 -0.880083 -0.420581 0.374951 -0.337581 -0.624367 0.443054 +0.132368 -0.878239 -0.574338 -0.274575 0.00250376 0.494147 0.173526 0.883387 +0.61281 0.174375 -0.622462 -0.0826392 -0.412087 0.0339736 0.441503 -0.591437 +0.68225 0.844676 -0.122762 -0.179799 -0.660691 -0.485314 -0.559874 -0.565694 +0.649297 -0.625909 0.759782 -0.870365 -0.372888 -0.267214 0.630475 0.540693 +-0.311311 0.804323 0.861152 0.86655 0.751852 -0.556321 0.374448 -0.869674 +0.671019 0.110837 -0.897409 -0.725767 -0.0471085 -0.221898 -0.339532 -0.454421 +0.195124 -0.869949 -0.279884 0.793026 0.296529 -0.815951 -0.58896 0.923199 +-0.709055 0.470964 0.835874 0.0816438 0.307834 -0.603159 -0.528858 -0.844923 +-0.721763 0.838714 -0.871618 -0.182521 -0.0532893 -0.0895496 -0.916913 -0.196797 +-0.311177 -0.963831 -0.81429 -0.783186 0.160698 -0.525185 -0.0447396 0.0220367 +-0.602121 -0.792035 -0.571744 0.186665 0.580744 0.928993 -0.542637 0.545755 +-0.878623 -0.289613 0.0795839 0.424377 0.695898 -0.236941 -0.500899 -0.900809 +-0.27813 0.325782 0.104022 -0.648674 0.385746 0.858498 -0.778167 0.640713 +-0.920418 -0.297414 0.951722 -0.502752 -0.500822 0.906769 0.475276 -0.120436 +0.0555665 -0.781139 -0.100632 -0.240305 0.350214 -0.236548 -0.856435 -0.536652 +0.82334 0.100009 0.635653 0.423638 -0.742337 -0.882165 -0.947683 -0.902723 +0.633898 0.696032 -0.840314 -0.758485 0.840569 0.297607 -0.0833301 0.0548925 +-0.946265 0.785038 0.0966939 -0.805429 0.869914 -0.642478 -0.131833 -0.149584 +0.723076 0.201727 0.722296 0.292561 0.546842 -0.991661 -0.240245 -0.576672 +-0.298388 -0.230718 -0.960268 0.525073 -0.0687227 0.426996 -0.84886 -0.352525 +0.875025 -0.136292 -0.0825568 -0.401207 -0.143353 0.897022 -0.586978 0.815228 +0.991454 0.693501 0.420691 -0.252937 -0.883019 -0.80479 -0.282766 0.132104 +0.50084 0.261296 -0.292088 0.171744 -0.975827 0.966368 -0.02166 -0.457527 +-0.867127 0.596761 0.909639 -0.0600934 -0.991778 -0.0624672 0.167349 0.652688 +-0.72436 0.474212 0.511686 0.47024 -0.325579 0.761913 -0.591578 -0.550693 +-0.87061 0.159126 -0.666693 0.51595 0.308097 -0.794654 -0.955128 -0.683876 +-0.0890715 -0.658886 0.259221 -0.487484 -0.598891 -0.597186 -0.518363 0.631827 +0.157736 -0.119963 0.56765 -0.630407 0.0792633 -0.40219 0.23451 0.275624 +-0.59349 0.874425 0.172097 0.308708 -0.0750917 -0.0565186 0.30194 0.430169 +0.751406 -0.472457 -0.754903 0.175155 -0.828196 -0.271119 0.441171 -0.822592 +-0.874723 -0.902089 0.779307 -0.549314 0.0049205 -0.814337 -0.569034 -0.388881 +-0.0496898 -0.438871 -0.164657 -0.133288 0.0280757 0.604918 0.434283 0.133385 +-0.44948 -0.417847 0.14142 0.890699 -0.630288 -0.505602 -0.0243172 0.467915 +-0.357174 0.165959 -0.620437 -0.925041 0.882595 -0.690612 -0.246178 -0.745699 +-0.661864 0.135524 0.893137 0.459743 0.81759 0.759988 0.919215 0.172754 +-0.979926 0.185689 0.365976 -0.408455 0.496844 0.828914 0.116831 -0.537032 +0.438368 0.32504 -0.0374737 0.466047 0.526118 0.173433 -0.417122 0.942193 +0.851893 0.778213 0.462288 0.993282 0.390593 -0.982581 0.295066 -0.321388 +0.614328 -0.807427 -0.562029 0.0568302 0.660809 -0.642214 -0.928537 -0.852186 +0.249547 0.175475 0.933737 -0.28369 0.229133 -0.147816 0.443864 -0.203126 +-0.9688 0.450049 0.20203 0.784042 -0.295913 -0.0312097 -0.457373 -0.770108 +0.533278 -0.373477 -0.379462 0.438474 0.200825 -0.0519506 -0.425382 0.505706 +0.355871 0.386051 0.743153 0.454655 0.744657 0.953363 -0.35094 -0.977463 +0.366017 -0.62106 0.905681 -0.947607 0.906391 0.797143 0.266247 0.528978 +-0.549458 -0.684604 0.0390662 -0.32929 -0.677886 -0.784919 -0.786702 -0.610963 +0.321161 -0.701703 -0.196161 0.675761 -0.395796 -0.276971 0.439669 -0.806306 +0.635941 0.640764 0.952784 -0.654622 -0.421039 -0.201594 -0.394228 -0.448705 +-0.3584 -0.341399 -0.0177754 -0.513204 -0.671774 0.961536 0.346114 -0.487067 +-0.60647 0.815841 0.703981 -0.821304 0.0687581 0.809137 -0.000827548 0.41432 +-0.522778 0.371105 0.116334 -0.59484 0.912115 -0.611119 -0.587923 0.269186 +0.267031 0.965863 0.697034 0.702101 0.781557 0.99254 -0.49076 -0.815809 +0.87365 -0.839719 -0.279633 -0.22592 0.813012 0.0435874 0.747437 0.86291 +-0.133208 0.796063 0.85827 0.770385 0.78936 -0.00305904 -0.714272 0.198962 +0.45192 0.938234 0.00246251 0.929763 -0.33744 0.51791 -0.855774 -0.424807 +-0.484192 0.694311 -0.107501 -0.783608 0.341487 0.126003 -0.630579 0.0317058 +-0.523726 -0.282109 0.350271 0.0073639 0.224109 -0.525064 0.819749 -0.126559 +0.349715 -0.818691 0.979166 0.335877 0.827511 0.448404 -0.178738 -0.998246 +-0.986554 0.843464 0.0494969 0.874156 0.644035 0.377021 -0.108501 0.927281 +-0.165659 0.217427 0.696053 -0.418239 0.722399 0.340772 -0.133902 0.0457679 +-0.322195 0.864682 0.296428 -0.455825 -0.161267 -0.94023 0.59127 -0.930389 +-0.607985 -0.666585 0.815694 0.0222016 -0.352874 -0.558811 -0.25617 0.216572 +-0.741508 -0.965064 -0.171648 0.795252 -0.806555 0.0642285 0.262478 0.1701 +0.0294231 -0.022182 -0.569997 -0.302406 0.406219 0.0899895 -0.669984 0.1125 +0.567577 -0.191888 -0.941946 -0.136822 0.06772 0.532028 0.754898 -0.387807 +-0.355954 -0.527357 -0.766761 0.823577 -0.23552 -0.692847 0.674303 0.279432 +0.414774 0.793844 -0.0556157 -0.123008 -0.0587105 0.260584 -0.322527 -0.287282 +0.219779 0.904389 -0.986921 0.431746 0.423658 -0.967195 0.499086 -0.996652 +-0.909703 0.539895 -0.630127 0.869508 0.122599 0.658514 0.425301 -0.860719 +-0.199796 0.661064 -0.105205 -0.66879 0.44428 0.360143 0.492939 -0.460633 +-0.591228 0.955616 -0.928397 -0.33865 -0.0100055 0.678019 0.859405 -0.884136 +0.257959 0.938057 0.733089 -0.508656 -0.327347 -0.226158 -0.788497 0.890343 +0.0917658 0.0452882 0.736755 -0.718124 0.702182 0.623431 -0.307694 0.707526 +-0.448969 -0.0976383 0.261963 -0.060521 -0.407749 0.0671337 0.722232 0.917006 +0.0939932 -0.493438 0.731232 -0.637236 -0.729693 -0.899482 -0.606368 -0.818409 +0.0924388 -0.724056 0.0637412 -0.858471 0.306947 -0.56491 -0.177466 -0.140946 +0.963139 0.657961 -0.550621 -0.532091 0.388969 -0.168796 0.200818 0.954923 +-0.927948 -0.144509 0.851824 0.282163 -0.6838 0.440361 0.793712 0.237032 +-0.761038 -0.344333 0.482373 0.272288 0.330062 -0.89687 -0.750929 -0.895303 +0.891593 0.17512 0.0368649 0.656235 -0.602655 -0.52724 -0.324825 -0.218512 +-0.178757 0.106361 -0.786419 0.385929 0.482041 0.418832 -0.0239656 -0.699096 +0.476948 0.386084 -0.491765 0.218255 0.195142 -0.229045 -0.201467 -0.716236 +-0.245364 -0.178718 0.0261941 0.79052 0.79242 -0.992083 -0.692832 0.41532 +-0.0163223 0.52435 0.557524 0.823774 0.955016 0.0161157 -0.981033 0.143466 +-0.32114 -0.926067 -0.970764 0.534577 0.454701 0.926327 0.24691 -0.0345573 +0.746455 0.290984 0.820033 -0.975666 0.28493 -0.68386 -0.0184387 0.349946 +0.121368 0.824574 0.909234 0.972388 -0.875856 0.931241 -0.190719 0.419245 +0.957067 0.750502 -0.189851 -0.403203 0.790796 0.310838 0.57588 -0.832113 +-0.99678 -0.177133 0.0847001 0.149754 -0.223304 0.0277731 -0.746891 0.124499 +0.328892 -0.558507 0.952343 0.63907 -0.160313 0.359808 -0.0896632 -0.920504 +-0.703425 0.599164 0.454539 0.280253 0.343914 0.268915 0.121279 0.0706275 +0.0819806 -0.0260664 -0.452012 0.534075 0.665468 -0.777891 0.473708 0.82371 +-0.433046 0.034782 0.522489 0.121652 -0.393345 0.677849 0.845486 -0.523482 +0.0787604 0.748632 -0.224027 -0.739522 -0.411641 0.389571 -0.999132 -0.795857 +-0.0229049 0.691355 -0.165205 -0.592761 -0.325611 -0.720616 -0.102312 -0.330572 +0.865303 0.156614 -0.79352 0.255691 0.0807876 -0.626587 0.793079 0.0290817 +-0.945279 -0.0846664 -0.374888 -0.667183 -0.504733 0.235353 -0.194729 0.451198 +-0.624138 -0.522172 0.485696 -0.188533 -0.861529 0.71042 -0.107355 0.129584 +-0.032633 0.103963 -0.973725 0.6503 0.598923 0.543365 -0.222287 0.200471 +0.50997 0.287462 0.546289 0.092789 0.247406 0.306928 0.907567 -0.0817465 +-0.602545 0.429731 -0.160718 0.409995 0.0603658 0.699852 0.944123 -0.279073 +-0.617229 0.94587 -0.293599 0.249853 0.185483 -0.15985 0.376199 0.478009 +-0.913821 0.902843 -0.0319189 -0.163233 0.06097 0.303983 0.388982 0.825583 +0.803066 0.0602229 0.607606 0.264056 -0.0273412 0.368949 -0.448388 0.0894237 +0.474698 -0.0853695 -0.276576 0.12158 -0.466526 -0.106598 0.837411 -0.962005 +0.963205 -0.36027 -0.46135 -0.450732 -0.688112 0.909647 -0.485183 -0.726725 +-0.98335 -0.483217 0.440138 -0.882965 0.591247 0.705897 0.51467 0.311796 +0.932707 -0.482583 0.50795 0.905327 -0.136499 -0.159968 0.572432 -0.833733 +0.308466 -0.918981 0.736131 -0.241078 0.566423 -0.820824 0.0762153 0.998902 +-0.574397 -0.896001 -0.0140756 -0.787536 -0.608351 -0.146387 -0.714798 0.937753 +-0.12184 0.95313 -0.86626 0.164525 -0.780993 -0.286156 0.223559 0.186948 +-0.922137 0.14814 0.484396 -0.208987 -0.999587 0.378318 -0.326022 0.613935 +0.084696 -0.884513 -0.572624 0.0844671 -0.577091 0.275735 0.825845 -0.0805973 +0.925467 -0.330806 -0.466913 0.611224 0.453998 -0.353312 -0.431593 -0.293111 +0.560446 0.913154 0.0906239 -0.663937 -0.347225 -0.329733 -0.0634993 0.460402 +-0.383723 0.114834 -0.905004 -0.691624 0.835869 0.344849 -0.939217 0.537941 +-0.721011 -0.348403 -0.00576813 -0.989891 0.0723988 -0.567613 -0.779642 -0.78354 +0.385344 -0.455507 -0.0233818 0.788528 0.109993 -0.213506 0.456872 -0.834098 +-0.48394 -0.98133 -0.919482 0.17167 -0.371616 0.148954 -0.383733 0.758057 +-0.375511 -0.558951 -0.502408 0.891249 -0.353771 0.560189 -0.16795 -0.543868 +-0.37115 -0.573654 0.510089 0.906864 0.433786 0.510185 0.971383 -0.101245 +-0.234985 -0.683994 0.629377 0.714775 -0.25377 0.821737 0.147973 -0.902029 +0.622774 0.109474 -0.925719 0.954841 -0.838217 -0.838764 0.794163 -0.359638 +-0.969295 -0.70625 -0.169544 -0.944458 -0.715546 0.86016 0.708005 -0.945322 +0.46898 -0.814756 -0.0936694 -0.625662 0.290876 -0.292345 0.804004 -0.756511 +-0.942462 0.461271 -0.133129 0.187726 0.0946201 0.696192 0.359844 -0.844139 +0.563431 0.314016 -0.618401 -0.349053 -0.779491 -0.229991 -0.23926 -0.866743 +0.655119 -0.297929 0.882511 -0.970511 0.438275 0.927748 0.818598 -0.695924 +0.27305 0.391222 -0.55341 0.874844 -0.69446 0.0146682 -0.818413 0.331227 +-0.629138 -0.77631 -0.409139 -0.972164 -0.482111 0.0919363 -0.048589 0.616701 +0.603334 0.440657 -0.708531 0.148558 0.741351 0.171211 -0.913832 0.225193 +-0.290597 0.985929 -0.18809 0.973706 -0.404376 0.997051 -0.14134 0.679776 +0.87582 -0.122859 -0.716285 -0.412934 0.71662 -0.164979 -0.750002 -0.219348 +-0.342228 0.515422 0.356727 0.716068 0.255808 -0.981862 0.299258 0.0274295 +-0.309099 0.407465 -0.940287 -0.642382 0.153391 0.331409 0.506176 0.707616 +-0.974934 0.919957 -0.14204 -0.100708 0.286887 -0.312046 0.323156 -0.146763 +0.665122 0.930822 0.78843 0.0628672 -0.176518 0.810625 0.0252852 -0.838717 +-0.630099 -0.31493 -0.435586 0.778668 -0.161566 0.108783 -0.233434 -0.590801 +0.786437 0.677349 0.905807 0.825616 0.97916 0.884624 0.498115 0.42734 +-0.295858 0.593155 -0.259452 -0.941386 0.492692 -0.445883 0.404013 -0.419882 +-0.795611 0.863705 0.0558309 -0.614871 -0.585717 -0.582341 0.116653 -0.671626 +-0.524893 0.338942 0.334323 -0.755656 0.448694 -0.53751 0.890865 0.728529 +-0.647052 -0.743385 0.710565 0.780498 -0.413726 0.912974 0.750723 0.361914 +0.274769 -0.810813 -0.22343 0.838632 0.603144 -0.780761 -0.39045 -0.74793 +-0.225211 0.115451 -0.0529903 -0.85687 -0.970864 0.711897 -0.163225 0.742498 +-0.698407 0.871296 -0.432346 0.297334 0.578215 0.0895254 0.713119 -0.98793 +-0.380986 -0.125795 -0.435093 -0.354766 0.718332 0.343689 -0.670844 0.373268 +-0.979723 -0.937316 0.311361 -0.291178 0.516959 0.977806 -0.815439 -0.674165 +-0.0323153 -0.710142 -0.743586 0.0624365 -0.701897 -0.190656 0.226054 0.292736 +-0.493086 0.0295618 -0.205672 0.65815 0.129321 0.378478 0.50234 -0.216347 +0.584741 0.84211 0.167401 0.607226 -0.714133 -0.217052 0.412324 0.729219 +0.118591 -0.39914 0.0803751 0.6693 0.566324 0.721258 0.262219 -0.616252 +-0.997376 -0.604019 0.0656538 0.599502 0.00110348 -0.637884 -0.779426 -0.15533 +0.902245 -0.83549 -0.0556138 0.06506 0.651397 0.970983 0.750116 -0.313178 +0.123484 0.0431771 0.060113 0.47014 -0.276801 0.324975 0.0506168 -0.492554 +0.724213 0.68835 0.331324 -0.702835 -0.178587 -0.228648 -0.0399587 0.128594 +-0.0320557 -0.554456 0.665615 -0.089894 0.304825 -0.330259 0.14179 -0.812656 +0.626568 -0.644126 0.937721 -0.882729 0.704299 0.610393 -0.0757684 0.924555 +-0.625918 -0.948106 0.0951738 -0.993843 -0.502306 -0.489336 -0.282158 -0.318153 +-0.207382 0.044949 0.0964022 -0.484303 -0.365384 -0.555911 -0.90306 0.360545 +-0.230588 -0.207239 -0.347432 -0.0525925 0.24211 0.420735 -0.496557 0.612099 +-0.110829 0.428517 0.896458 0.0240659 -0.0684408 0.158986 0.992357 0.789784 +-0.594865 0.180221 -0.509125 -0.784086 -0.603065 0.902279 -0.13072 -0.0459181 +0.972982 -0.128882 -0.191688 -0.271181 0.467487 0.834183 -0.226382 0.124324 +0.226513 -0.713675 -0.133761 0.390153 0.266047 -0.688886 -0.65987 0.0485102 +0.856414 -0.0471387 -0.835046 0.744284 -0.484911 -0.937073 -0.916864 -0.3921 +0.173184 0.481602 -0.582463 0.0924304 0.944067 -0.955617 -0.579323 0.282798 +0.0778271 0.273025 -0.21682 -0.910587 0.249759 -0.903923 0.8988 -0.0383336 +0.278796 -0.383595 -0.337323 -0.0574443 0.32618 -0.518353 0.586899 0.882512 +-0.145354 -0.365954 -0.350825 -0.453288 -0.340702 -0.366973 0.840828 -0.903173 +-0.826925 -0.524238 -0.725683 -0.363874 0.882786 -0.893936 0.834338 -0.845758 +0.981676 0.38459 0.403841 -0.852946 0.831358 0.134174 0.600342 0.319108 +-0.965339 -0.529092 -0.110751 -0.0104939 0.879482 -0.649905 -0.575851 0.43798 +-0.562991 0.0273841 -0.296924 0.374767 -0.0715699 0.59238 -0.257965 0.467256 +-0.163342 0.675786 0.0404688 0.772686 -0.800894 -0.0960582 0.792491 -0.277204 +-0.838616 -0.704292 -0.606351 0.512386 -0.0721938 -0.373044 -0.482231 0.381387 +-0.300435 -0.811809 0.0690514 0.793722 -0.850233 -0.571292 -0.676329 -0.236226 +-0.916339 0.461819 -0.7495 -0.130893 -0.299153 0.856143 0.200783 -0.027939 +-0.782393 -0.379879 0.26394 -0.0156787 0.553081 -0.0766997 0.0507427 -0.923302 +0.860352 -0.170888 0.968314 -0.181919 0.546342 -0.973947 0.312326 -0.799889 +0.81222 -0.451001 -0.68649 0.142295 0.170818 0.760639 -0.681591 0.385237 +0.217836 0.307764 0.314993 0.232972 -0.59703 -0.478095 -0.980271 -0.135897 +0.553113 0.547028 0.957202 0.798325 0.627305 0.0203087 -0.0433017 -0.553673 +-0.0016148 0.951573 -0.418186 -0.496682 -0.239602 0.73593 -0.473037 0.621046 +0.433566 -0.580368 -0.0956536 0.210872 -0.740542 -0.332272 0.850168 -0.0238131 +-0.205609 0.153521 -0.402918 -0.713328 -0.265156 -0.773804 0.725339 0.470349 +0.558929 0.412309 0.730158 -0.0374842 0.479966 0.898242 0.440661 0.497333 +0.629008 0.437205 -0.361182 -0.663844 0.157557 -0.199986 0.113008 -0.41816 +-0.0826236 -0.978743 0.815084 0.39091 -0.338941 0.880036 -0.13348 -0.299471 +0.584767 0.365066 -0.636932 -0.157548 0.542492 -0.193568 -0.0480755 0.30407 +0.361588 0.229671 0.987737 0.157145 -0.472845 -0.3861 -0.858493 -0.471023 +0.724432 0.402472 0.54433 0.687866 -0.103772 0.314791 0.558369 0.870504 +0.901182 -0.117562 -0.687705 -0.434755 -0.532181 -0.407797 -0.975511 0.280664 +-0.1908 -0.588684 -0.937916 0.975736 0.795355 0.50423 -0.708375 0.879924 +0.280243 -0.819291 -0.280556 -0.266857 0.941041 0.275321 0.87149 0.349788 +-0.377843 -0.75705 0.958412 0.88434 0.627061 -0.282291 -0.270561 0.727935 +-0.573253 0.999137 -0.137561 0.787423 -0.277337 0.603983 0.709329 0.71357 +-0.786407 -0.541805 -0.41953 0.0447377 0.0205872 0.602401 0.562479 -0.0216093 +-0.0703607 -0.160516 0.541279 0.130353 0.541861 -0.0802796 -0.144014 0.751182 +0.601665 0.138491 -0.680005 -0.267557 0.381164 0.955646 0.264988 -0.876559 +-0.827176 -0.616917 0.396616 0.382655 -0.10695 -0.506198 -0.741015 -0.473331 +0.88219 -0.745805 0.965667 0.962275 0.950847 -0.407496 0.617847 0.836703 +-0.0415932 0.439522 -0.07451 -0.470155 0.456856 0.875438 0.610125 0.604677 +0.270323 0.320618 -0.0947187 -0.365721 0.760394 -0.472468 0.896321 0.224609 +-0.158006 -0.14951 0.717 0.655573 -0.454379 0.895668 -0.657176 0.248163 +0.138563 -0.0180113 0.191786 0.900287 -0.623111 0.0718001 -0.419325 -0.928102 +0.721988 0.450695 0.054242 0.675887 -0.046098 -0.0776113 0.649494 -0.541712 +-0.973227 0.811297 0.671414 0.254526 0.658319 0.57909 0.600238 -0.675435 +-0.011479 0.86599 0.366494 0.225368 0.140601 -0.000124131 0.144893 0.225741 +-0.0838095 0.387244 -0.689906 0.586899 0.246606 0.218082 -0.774383 -0.177423 +-0.725591 0.175092 0.102378 0.965872 -0.587109 0.543606 -0.0260682 -0.51752 +0.197836 -0.702652 0.520644 0.819619 -0.678164 0.947498 -0.277995 0.107026 +0.776415 -0.875923 0.394003 -0.354281 0.70118 -0.695215 -0.256926 0.0904048 +0.481263 0.146732 -0.425491 0.537589 0.355505 -0.688914 0.989679 -0.663574 +0.915144 0.721881 -0.799716 -0.337425 0.1607 0.381086 -0.954813 -0.90889 +0.861045 0.809379 0.0106808 0.188282 -0.92879 -0.139722 0.235875 0.912959 +0.317596 0.0962255 -0.52784 0.329931 0.619167 -0.369354 0.57385 0.76421 +-0.788329 -0.375513 -0.635246 0.448801 0.614954 -0.0946107 0.431591 -0.475603 +-0.247791 -0.387756 0.501257 0.161509 -0.416007 0.965461 -0.490639 0.951325 +0.351507 -0.5273 0.75251 -0.265674 0.715974 0.228488 0.55418 -0.878948 +-0.231026 0.968163 -0.661585 -0.999387 0.540818 -0.0698159 0.521574 -0.00717663 +0.960331 -0.484705 -0.341116 -0.613373 0.937889 -0.318486 -0.726292 0.527913 +-0.119951 0.300227 -0.44361 -0.56629 0.334748 -0.722119 0.797099 -0.14651 +-0.204771 -0.143151 0.805168 -0.886228 0.0897569 0.547813 -0.237215 0.124713 +0.405914 0.636952 -0.842242 -0.0302225 0.839292 -0.75642 -0.259522 0.396902 +0.38835 0.433439 0.397809 -0.568495 -0.23167 -0.0718805 0.193332 0.0820198 +-0.469228 -0.608177 0.260098 -0.651517 0.367638 -0.650733 0.523926 0.347477 +0.191905 -0.0680753 -0.364185 0.137717 -0.440258 0.312023 -0.725152 0.180157 +-0.103302 0.896225 0.416362 -0.519851 0.774741 0.160886 0.708706 0.721492 +-0.466633 -0.0893367 0.826321 -0.870924 0.761161 0.513968 0.329094 -0.386737 +0.907783 0.365883 -0.366647 0.00331088 0.804544 0.20207 -0.633814 -0.555848 +-0.235618 -0.0339699 -0.0185517 0.360198 0.551649 0.964854 -0.668951 -0.648484 +0.939624 0.34939 -0.744987 0.583514 0.825694 0.369501 -0.455276 -0.478728 +0.867588 0.0923404 0.473362 -0.391421 -0.625188 0.405277 -0.663635 0.23118 +0.98559 0.452073 0.397196 -0.161284 0.824009 0.0686514 -0.243402 -0.458581 +-0.64569 0.941453 -0.71447 -0.113639 -0.492668 0.791628 -0.181362 -0.478111 +-0.0637608 -0.468836 -0.0765535 -0.171667 0.517801 -0.698574 0.962859 -0.893231 +0.451662 0.053278 -0.892541 0.779971 0.526298 -0.187434 0.479513 0.769857 +0.464148 0.910832 0.754622 0.56699 -0.512335 -0.443822 -0.959895 0.00641124 +-0.612024 -0.974763 0.0887326 0.723811 0.250143 -0.678394 0.93651 0.687853 +-0.0962185 0.453788 -0.894264 -0.4403 -0.503982 -0.362084 0.898738 -0.921332 +-0.795003 -0.490026 -0.10242 -0.768762 -0.360123 0.20174 0.227832 0.779859 +-0.869027 -0.166382 -0.837505 0.2924 -0.996497 0.833509 -0.71889 -0.704882 +-0.618075 -0.0733225 -0.972386 0.383851 -0.832165 -0.0710698 0.0938433 -0.0574702 +0.105864 0.95241 -0.468853 0.977143 0.098734 0.621518 0.0742271 -0.225418 +0.758995 0.084791 0.522413 -0.535609 0.738139 -0.56859 -0.880642 -0.833513 +0.575114 0.104168 0.384118 0.948417 -0.881103 -0.720524 -0.453562 -0.60447 +0.453197 -0.484345 -0.498019 0.0352992 -0.506009 -0.813873 -0.866188 0.123789 +0.458891 -0.997015 -0.873448 0.384451 -0.864472 -0.981493 0.886432 -0.821239 +-0.174388 0.731022 0.564594 0.0486276 0.578099 -0.0255768 0.220408 -0.353769 +-0.250461 0.310739 0.54473 -0.0545715 0.806352 -0.10376 0.134289 0.42747 +-0.633519 0.0503947 0.899446 -0.5244 0.877891 -0.540384 -0.237581 -0.236054 +0.51793 -0.402829 -0.74295 -0.50237 0.486262 -0.522252 0.17971 -0.0238329 +0.918786 -0.51196 -0.314827 -0.400451 -0.220271 0.28387 0.309916 -0.139415 +-0.454818 -0.845796 -0.434315 -0.304371 -0.664384 0.15454 -0.198632 -0.0817048 +0.321019 -0.69302 0.0532293 -0.131409 0.53806 -0.624413 0.0382679 -0.71237 +-0.318035 0.46381 0.557568 0.63931 0.909057 0.123634 0.499409 -0.761453 +0.0792408 -0.343298 0.274612 -0.762256 -0.527155 -0.491915 0.258529 -0.485005 +0.831757 0.654417 0.76289 -0.98712 0.540921 -0.358934 0.0907502 -0.795737 +0.438672 0.545536 -0.40142 -0.95785 0.860667 0.31558 0.316762 0.765004 +0.536493 0.973878 -0.480902 -0.227973 0.693516 0.989617 -0.378439 0.265221 +-0.644759 0.301819 -0.644533 0.601933 -0.641316 0.181153 -0.86458 -0.135988 +-0.542538 -0.848576 0.692349 0.079111 0.270207 0.283374 0.0606738 -0.29633 +-0.756621 0.897779 -0.269115 0.164742 0.501106 -0.244866 -0.32088 -0.914074 +-0.0498213 -0.0570648 0.263523 0.908372 0.564612 -0.705888 -0.86702 0.82604 +0.524106 -0.605483 0.537845 0.810716 0.542551 -0.708089 -0.30362 -0.919583 +0.0033156 0.236522 -0.274942 0.907076 0.991233 -0.488817 -0.927317 0.604774 +0.753357 0.437084 -0.321181 -0.330611 -0.88642 -0.500423 0.435738 0.883124 +0.726302 0.0567875 0.619763 -0.0224197 -0.56383 0.792938 0.517057 -0.774178 +-0.0755045 0.52396 -0.316418 -0.527674 0.61262 0.0490231 0.820156 -0.461446 +0.921259 0.74196 0.701823 -0.368448 0.0144466 0.0792542 -0.7888 -0.925565 +0.976048 -0.350421 -0.454161 -0.426072 0.720985 0.208408 0.0451211 -0.866218 +0.274607 0.681934 -0.996008 0.746247 -0.807708 0.408563 -0.923163 -0.37162 +-0.756702 0.875637 0.356668 0.567545 -0.699811 -0.882049 -0.854333 0.362533 +-0.512753 0.774731 -0.67637 -0.745905 -0.774444 0.124573 -0.570468 0.243402 +-0.0898509 -0.22061 -0.458399 -0.0416534 -0.0878776 0.142848 -0.477647 0.756049 +0.000349967 0.480484 -0.232482 0.732368 0.429491 0.470299 0.768061 0.741892 +0.890118 0.0577898 0.152233 0.417615 -0.941858 0.319885 -0.190016 0.71424 +-0.978877 -0.382177 0.944849 0.100975 -0.15484 -0.802377 -0.601933 -0.54424 +-0.228456 0.171383 0.232305 0.103878 -0.0456658 0.163971 0.771114 0.0675747 +0.0165751 0.62803 0.0934436 -0.327452 -0.670034 -0.777859 -0.397378 -0.543197 +0.504346 0.329616 0.687922 -0.925564 0.503927 -0.344951 0.238153 -0.575422 +-0.225979 -0.488465 -0.21703 0.375165 -0.463176 -0.607798 0.378912 0.736663 +-0.140162 -0.114695 -0.463715 -0.359241 -0.0816379 -0.838987 -0.298994 0.661456 +-0.923774 0.996942 0.00563778 0.492051 -0.809241 -0.220833 0.496805 -0.913763 +0.140333 -0.0130841 -0.854971 -0.760718 0.0336346 0.0254133 -0.170119 -0.638502 +0.361199 0.241009 0.856447 0.165383 0.0618192 -0.319219 -0.483658 -0.606498 +-0.124282 0.909326 0.388856 -0.0583138 -0.574562 -0.457529 0.824842 -0.623682 +0.38279 -0.935983 0.825104 0.382438 0.6676 0.801026 0.587021 -0.872922 +0.229531 -0.331683 -0.343916 0.835561 0.10239 -0.429101 0.967624 0.821956 +-0.135739 -0.353168 -0.0449242 0.188729 0.536394 0.992154 0.0872412 0.938832 +-0.994855 0.374559 0.0957442 -0.614064 -0.221976 0.973031 -0.446563 -0.419641 +-0.302373 -0.299059 -0.872026 -0.711552 0.0355826 -0.651896 -0.738868 -0.854359 +0.377706 -0.255825 -0.737457 -0.771 -0.333372 0.151784 -0.524131 -0.482389 +-0.111203 -0.470208 -0.781669 0.638474 -0.681036 -0.219878 0.324534 -0.497162 +0.861592 0.459932 -0.954288 0.341893 0.949 0.324577 -0.613932 0.773538 +-0.33621 0.348251 0.418902 0.139857 -0.666187 0.159527 0.736503 0.152294 +-0.466221 0.397112 -0.606685 -0.771545 -0.302752 0.415823 0.64901 0.0614916 +0.581623 0.774078 0.708457 0.962784 -0.711574 0.940553 0.580483 0.540611 +-0.28569 -0.412809 -0.00786611 -0.54289 -0.898176 0.380764 -0.688689 0.504092 +-0.811939 -0.274285 0.815974 0.481681 -0.32469 -0.934366 0.839547 -0.169832 +0.209099 -0.571355 -0.0470802 0.218184 -0.517936 -0.821072 -0.123108 -0.389733 +0.515922 -0.0245071 0.429742 0.826203 -0.283113 -0.315026 0.598175 -0.118725 +0.00876872 -0.837834 -0.0497919 -0.0266431 -0.984383 -0.179382 0.676681 0.241681 +-0.294095 0.408535 -0.856501 0.385449 0.264363 0.580878 0.369414 -0.426799 +-0.835825 -0.544945 -0.734543 0.780376 0.298703 0.90176 -0.286362 0.955803 +0.392917 0.456737 0.292057 -0.404861 0.467663 0.325697 -0.350189 -0.986631 +0.0282557 0.234152 0.0634116 0.945357 0.495868 -0.816892 0.602026 -0.707111 +0.299164 0.529442 -0.256736 0.184076 -0.548297 0.848613 -0.40698 -0.696608 +0.0445485 -0.531856 -0.0068861 -0.876519 -0.674682 0.973914 0.0447032 0.514157 +-0.0992711 -0.652818 -0.0439884 -0.641035 0.723269 0.859504 -0.905632 -0.882526 +-0.890704 0.782478 -0.424662 -0.192941 -0.66712 -0.349342 -0.6031 0.964571 +0.526555 -0.0567282 0.581412 0.316658 -0.311291 -0.344182 -0.176196 0.0270604 +0.793437 -0.604303 -0.928391 -0.799126 -0.630315 -0.610741 -0.588965 -0.1293 +-0.906492 0.272001 0.341823 0.796484 0.0523215 0.123696 0.904695 -0.12076 +-0.972747 -0.648288 -0.602745 -0.722191 -0.351104 0.500287 0.088745 -0.319842 +0.500934 0.282794 0.0454934 0.605164 -0.780366 -0.329965 0.939782 -0.178307 +-0.838816 0.874248 0.18245 -0.969468 -0.91579 -0.0267874 -0.759045 -0.589663 +0.211185 0.465236 -0.240739 -0.498714 -0.675289 0.587301 -0.337304 -0.872029 +-0.276362 0.622924 0.585823 0.277861 0.063359 -0.754191 0.423178 0.286404 +0.322527 0.338383 0.622437 0.809099 -0.037747 -0.21445 0.00934567 -0.290484 +-0.182961 0.0311626 0.966787 -0.367836 0.177457 -0.173187 -0.43698 -0.39583 +-0.758299 -0.70009 -0.865822 0.612413 0.897207 -0.255269 -0.466869 0.0620859 +0.0918929 -0.34017 -0.402086 -0.162409 -0.348218 -0.827295 0.547759 -0.0633793 +-0.427105 0.89858 0.709572 0.00684876 0.476413 0.83969 -0.478957 0.632089 +-0.371331 -0.672297 0.528203 0.767076 -0.58556 -0.442409 -0.418912 0.135802 +0.267323 -0.200532 0.454927 -0.896557 0.938315 0.55772 -0.563894 -0.74007 +0.870471 -0.72489 -0.972334 0.395925 -0.105143 0.629998 0.518278 -0.517841 +-0.29891 0.832678 0.549625 0.271397 -0.823728 0.875052 -0.456435 -0.448438 +-0.0586764 0.194515 0.407848 0.14095 0.619632 -0.980324 -0.117258 -0.815876 +-0.933897 -0.28261 0.634805 0.301492 -0.972994 -0.134614 -0.12992 0.701162 +0.639765 -0.406018 -0.59692 0.570878 0.640079 -0.825857 -0.291862 0.34047 +-0.583488 0.12816 0.688513 -0.575937 0.53116 0.845981 0.116178 -0.549486 +-0.777821 -0.177186 0.730038 0.98904 -0.89302 0.885844 0.840692 0.631682 +0.632508 0.219905 -0.244135 -0.412468 -0.668984 0.943456 -0.0197695 0.104622 +-0.0940114 0.233033 -0.747028 0.376862 -0.980243 -0.284161 0.221297 -0.957587 +-0.901751 -0.402335 0.615905 -0.468134 0.247774 0.397941 -0.884356 -0.888632 +0.130646 0.0827703 -0.603369 0.271076 0.423045 -0.260751 -0.373238 0.419404 +-0.687241 -0.523622 0.814121 -0.55475 0.880876 0.663568 0.812579 0.376562 +-0.262174 0.356007 0.267313 -0.658261 0.0691339 -0.663666 -0.18604 0.395529 +-0.165158 0.488524 0.855688 -0.523008 -0.129683 0.46563 0.78824 -0.791651 +-0.581014 0.597263 -0.0503741 -0.165992 -0.8116 0.79565 0.92139 0.23766 +-0.672821 0.60898 0.752071 0.483987 0.146269 -0.91847 0.108537 0.243277 +0.923749 -0.243402 0.308673 -0.911232 -0.677737 -0.440247 0.744561 -0.398138 +0.575828 0.407175 0.760658 -0.172748 -0.00405966 0.415096 -0.679837 0.934977 +0.0950945 -0.0456896 -0.872209 0.989618 -0.049148 -0.555535 -0.321886 0.272169 +0.487764 -0.27916 0.871749 -0.984377 -0.376352 0.561644 0.229217 -0.994861 +0.872511 -0.101974 0.105318 -0.140537 -0.183839 -0.0312317 -0.866099 -0.298308 +0.699842 0.155432 0.87801 0.64462 0.00403796 0.466432 -0.795627 -0.685231 +-0.683326 0.751886 -0.69546 -0.568289 -0.76068 -0.508528 -0.484421 0.249769 +-0.528628 -0.291938 -0.141746 -0.770612 -0.186257 0.883314 0.388875 -0.234146 +0.350193 -0.428158 -0.7459 -0.349548 0.572079 -0.0250603 -0.228663 -0.977659 +-0.388133 -0.876622 -0.253835 -0.557926 0.458291 0.639308 -0.0519916 -0.04663 +0.161414 -0.00827725 -0.107576 0.629214 -0.633143 0.348901 -0.749198 -0.74827 +-0.0587521 -0.759471 0.947034 -0.225698 -0.0076309 0.166646 0.72231 0.962406 +0.228604 -0.656118 0.492903 0.591451 -0.0412384 -0.763194 0.218953 -0.75096 +-0.0853158 -0.0288549 -0.395504 0.596218 0.532552 -0.0724938 0.599071 0.685863 +-0.309642 0.0939375 -0.143125 -0.722295 0.357981 0.498287 -0.774542 0.786052 +0.261744 -0.306346 0.472413 0.705548 0.481577 -0.582633 -0.716086 -0.336843 +0.09798 -0.556612 -0.511358 -0.975902 -0.234911 0.101811 -0.0825996 -0.694234 +-0.0738821 -0.525627 -0.651907 0.375882 -0.250062 0.713097 0.124152 -0.769629 +0.217827 -0.70236 0.770399 -0.361043 -0.776906 0.577841 0.283512 -0.0524186 +0.373881 0.0340662 -0.696774 0.76993 -0.0190527 -0.989262 0.318189 0.285332 +0.0795496 0.0930517 -0.354266 -0.865884 -0.647234 0.190744 -0.212696 -0.607302 +0.697017 -0.3633 0.763994 0.56485 0.852337 0.65899 -0.852101 -0.00132943 +0.840541 0.238459 -0.594806 -0.96931 -0.102222 -0.47928 -0.0224324 0.0384352 +0.496916 0.577207 -0.441211 -0.877902 -0.618756 -0.677445 -0.849987 0.0307652 +-0.391906 -0.934762 -0.476748 0.904321 -0.666687 0.456262 -0.913208 0.538686 +-0.622405 0.747127 0.355453 0.941675 -0.138281 -0.364041 0.859529 -0.705589 +-0.220003 -0.828672 -0.418765 -0.304503 -0.56044 -0.0464992 0.980377 0.174231 +-0.873058 -0.367132 -0.811555 -0.34624 -0.146387 -0.089031 -0.343529 0.640726 +-0.463947 -0.158464 -0.469379 0.618198 -0.866839 0.893599 -0.378412 0.473208 +-0.433498 0.1337 0.133971 0.797691 0.689436 -0.900095 0.647485 0.229876 +0.822318 -0.0500753 0.654512 -0.801272 0.973569 -0.908658 -0.213578 -0.596733 +-0.175229 -0.30907 -0.229341 -0.799842 0.14742 -0.71894 -0.271957 -0.809688 +0.756969 0.0647562 -0.556409 -0.867341 0.935732 0.705752 0.867598 0.403568 +0.900701 0.616795 -0.804695 -0.357841 0.849394 0.968658 -0.153075 -0.0127006 +0.459091 0.244803 -0.988288 0.50804 0.310159 -0.619608 0.104331 -0.271515 +-0.0131555 0.081407 -0.53846 0.72394 0.37893 -0.00165161 0.0607774 0.833515 +0.0147606 -0.791332 0.347137 0.15768 0.533896 -0.555295 -0.162536 -0.230331 +-0.618749 -0.0898566 -0.630924 0.374219 -0.959814 0.315794 0.701011 0.477475 +0.0400638 0.568849 -0.760913 -0.68221 0.514091 -0.312234 -0.345115 0.261302 +-0.20384 -0.318684 0.166508 0.37568 0.0633076 0.231149 -0.813706 0.651435 +-0.043047 0.192414 0.327987 -0.293963 0.875594 0.89737 0.275166 -0.151287 +0.447596 0.840841 -0.933354 0.249121 -0.595451 -0.259476 -0.52932 -0.772351 +0.738218 -0.287759 -0.716446 -0.769356 -0.347781 -0.893608 -0.560328 0.716437 +-0.41101 -0.804579 0.977996 -0.351573 -0.392059 -0.757424 0.375409 0.0162358 +0.0480087 0.934702 -0.672329 0.635712 -0.00300719 0.214493 -0.832019 -0.771661 +-0.421777 -0.271635 0.718182 0.583991 -0.626458 -0.00333879 0.727638 0.823556 +-0.0382401 -0.262535 0.972411 -0.399773 -0.669322 -0.422892 0.206397 -0.543495 +0.703215 -0.855285 -0.604492 -0.282483 0.441433 -0.24338 -0.154623 -0.48984 +-0.58621 0.541519 0.546088 0.794191 -0.882634 -0.605676 -0.298874 0.374352 +-0.126557 0.555681 -0.287025 0.318666 0.530153 -0.397346 0.576145 -0.638613 +-0.917444 0.296461 0.955836 -0.65721 0.695861 0.043674 -0.624715 0.690593 +0.986136 -0.660492 -0.733043 0.576596 -0.553081 -0.775878 -0.931387 0.573468 +-0.527571 -0.575773 -0.579764 0.788955 0.315556 -0.335398 -0.184458 0.72793 +0.0136059 0.0681429 0.548535 0.142222 0.0239615 0.995879 -0.866157 -0.142694 +-0.557506 -0.0331198 -0.0317959 0.515413 0.283685 0.604645 0.922669 -0.154334 +0.883074 -0.505844 -0.460389 0.485507 0.401237 0.265223 0.104808 0.428291 +-0.661414 0.39231 -0.25108 0.57457 0.387117 -0.877487 -0.749304 0.404519 +0.534068 -0.331007 -0.146343 -0.977265 0.20961 0.160137 0.437703 -0.609875 +-0.308816 -0.665959 0.47042 0.0504511 -0.626521 0.811507 -0.852126 0.760364 +-0.078426 -0.438817 0.381848 -0.0238299 0.565028 -0.570837 0.534991 -0.889088 +-0.931507 0.186301 0.797062 -0.223884 -0.178746 0.786467 0.891901 -0.766474 +0.170792 0.938991 0.213343 0.33078 0.972223 0.157726 0.754286 -0.469261 +-0.153329 0.636921 0.888783 -0.6106 -0.702787 -0.120373 -0.0259913 -0.573057 +-0.681333 0.351697 0.819066 0.782317 0.299589 -0.209447 -0.0239501 -0.708697 +-0.0485829 -0.849968 0.366031 0.894566 -0.236988 0.417351 -0.027951 -0.454019 +-0.504835 -0.286129 -0.744047 -0.974466 0.422891 0.305965 -0.658884 0.455997 +0.443154 -0.872624 -0.69793 -0.217703 0.119623 0.382854 0.731145 0.764561 +-0.103426 -0.429499 0.861196 0.513499 0.467221 0.278728 0.888892 -0.859868 +-0.236591 0.982268 -0.123918 -0.870957 -0.485913 -0.384631 0.269559 0.681465 +-0.969833 -0.419319 0.64387 -0.824699 -0.601057 0.0015978 0.526771 -0.182932 +0.167587 -0.992645 -0.771173 0.278499 -0.0384297 -0.0274552 0.418631 -0.410953 +-0.265885 0.301537 -0.14445 0.463352 0.590728 -0.158784 -0.0902518 0.678023 +-0.807479 0.661826 -0.403457 -0.430091 0.668091 0.59243 -0.310691 0.454404 +-0.575875 -0.37056 -0.359989 -0.7231 -0.712069 -0.528939 0.641205 -0.226798 +-0.218395 0.206113 -0.29861 -0.879979 0.0130812 0.311978 0.727739 -0.388292 +-0.927151 -0.558819 -0.519273 -0.0980931 0.665045 0.665278 -0.232994 0.351635 +-0.977552 -0.80713 -0.647368 0.637197 0.0915763 0.809541 0.274054 -0.224862 +-0.164315 0.364527 -0.800353 -0.792172 0.847013 0.187365 0.0990939 -0.412477 +0.372143 -0.551978 0.402478 0.312149 -0.0522783 -0.856704 0.901229 -0.118029 +-0.345782 -0.821606 -0.679754 0.990239 -0.0118953 0.214492 0.69436 -0.0135066 +-0.436876 0.929784 0.497388 0.200406 -0.598338 0.589664 -0.852718 0.820035 +0.0563828 -0.95758 -0.845192 -0.798894 0.707567 -0.738946 0.958976 0.965312 +-0.135131 -0.42393 -0.39051 0.791436 0.532899 0.910974 0.193791 -0.200857 +0.873451 -0.58441 -0.118604 -0.798794 -0.0241556 0.309326 0.402356 -0.854476 +-0.714225 0.669105 0.153772 -0.335128 -0.545302 -0.910632 -0.428904 0.0103926 +-0.0911475 -0.0617885 0.525746 -0.993839 0.262267 -0.730372 0.0696819 -0.561545 +-0.421976 0.889024 -0.211543 -0.643264 0.0494218 0.343296 0.119638 -0.107548 +0.36477 -0.506497 -0.784439 0.736339 -0.908276 0.276037 0.615321 0.280225 +-0.570541 0.0991791 -0.0575483 -0.612905 0.760565 -0.11731 0.498152 0.720806 +-0.173592 -0.932767 -0.324539 0.551885 0.542661 0.982325 0.141416 0.0749308 +-0.64489 -0.937608 -0.424643 -0.89868 0.676486 0.470915 0.541542 0.645032 +-0.58852 -0.517797 0.91728 0.797466 0.171727 0.537008 0.413464 0.0792674 +0.725099 -0.467204 0.419716 -0.453448 -0.12609 -0.600627 -0.876101 -0.0280678 +0.500841 -0.629449 0.216681 -0.331148 -0.574679 -0.648917 -0.488191 0.577152 +-0.739027 0.228226 -0.567767 -0.969028 -0.253798 -0.717974 0.0696748 0.0938428 +-0.927949 -0.423073 0.787491 0.331996 0.0850664 0.7873 0.163322 0.436217 +0.0308512 0.228962 0.0324198 0.494983 0.874798 0.206818 -0.0354002 -0.0951359 +-0.298199 0.635572 -0.750356 -0.16748 -0.213532 -0.246433 0.239039 -0.347236 +-0.625589 0.14159 0.82336 -0.450564 0.553692 -0.598211 0.299441 0.759206 +0.348087 -0.713231 0.372781 0.385948 0.642597 -0.738866 -0.895538 -0.743501 +-0.382141 -0.396326 -0.971747 0.696216 -0.292185 0.573439 0.247653 -0.147936 +0.80625 0.800385 -0.700048 0.351293 -0.926384 0.257988 0.55101 -0.815838 +0.409352 -0.0711105 -0.701948 0.925536 0.310476 -0.0162135 -0.969555 -0.790082 +-0.528257 -0.209494 -0.483273 -0.155396 0.604412 0.990433 0.519163 -0.795194 +0.769942 0.442149 0.421451 0.588982 0.969506 0.201319 0.0616305 0.94586 +-0.973679 0.215293 -0.941432 0.908672 0.136433 -0.188619 -0.379484 -0.104493 +-0.415368 -0.919933 -0.223428 0.236506 0.410394 -0.264152 -0.117417 0.243977 +0.322721 -0.305795 -0.877695 -0.289087 -0.252315 0.34939 -0.183321 0.709864 +-0.261912 -0.687879 0.565977 -0.834074 0.158382 -0.518495 0.885207 0.697517 +0.205533 -0.042898 0.8289 0.0454625 -0.0248576 0.763017 0.962756 -0.572692 +0.959316 -0.036971 -0.094245 0.323684 0.663768 -0.199927 0.351647 0.81876 +-0.826478 -0.365443 0.420705 0.962953 0.794163 0.427182 -0.611511 -0.61819 +0.475511 -0.793381 -0.723674 -0.852891 -0.889669 0.640189 0.856983 -0.290165 +0.633274 0.292767 -0.253832 0.242778 0.873079 -0.99642 0.892524 0.361816 +-0.863646 -0.913512 -0.288336 -0.756333 -0.397216 0.686055 -0.136304 -0.678875 +-0.633119 -0.744407 -0.588538 -0.00867756 -0.226401 0.0968277 0.362938 0.565491 +0.915974 -0.737677 -0.0173621 -0.384381 0.0729694 0.215846 0.904642 0.237143 +-0.185859 0.631033 -0.801478 0.997759 -0.723299 0.93095 0.773143 0.594227 +-0.289559 0.322607 0.757116 0.559505 0.949622 -0.27274 -0.792751 0.391485 +0.289462 -0.822898 0.0272 -0.445521 0.620849 -0.00287989 0.312331 -0.797289 +-0.154895 0.767109 -0.267342 -0.953723 0.543938 -0.866447 -0.0941029 -0.339166 +0.519829 -0.821429 0.75125 -0.113211 -0.617758 0.296394 0.028915 0.370434 +-0.391275 0.576168 -0.961182 0.48575 0.798456 0.0891443 0.832443 -0.964255 +0.912362 0.819835 0.900146 0.0447154 0.639345 0.702846 0.911199 0.0560238 +0.0315657 -0.358377 0.349247 0.630195 0.249739 -0.969036 0.744419 0.565511 +0.280934 0.125016 -0.580872 0.536871 0.348812 -0.88015 -0.660975 -0.999603 +-0.15396 0.313619 0.261226 -0.222399 -0.71731 -0.451114 0.311605 -0.303305 +-0.033923 -0.940143 -0.648723 -0.776813 0.381103 -0.368571 0.270384 0.0804864 +0.293465 0.729439 -0.794396 -0.165949 -0.481165 0.565788 -0.951154 -0.347625 +0.885893 -0.648988 0.676499 -0.0471971 -0.748788 -0.460324 -0.019368 -0.957997 +0.202859 -0.954417 0.33712 -0.117888 0.400289 -0.941898 0.75673 0.303229 +0.596352 0.454783 0.858148 0.771329 -0.720131 0.99016 0.994014 0.759047 +-0.592595 -0.629853 0.733491 -0.459211 -0.441861 0.0822931 -0.409895 -0.0787478 +0.184709 0.533202 -0.847097 -0.907619 0.0118464 0.936569 0.196118 0.254834 +-0.884053 -0.532799 0.910126 0.475674 0.666932 -0.628023 -0.576535 -0.469368 +0.891465 -0.793515 0.50095 0.842043 -0.462611 0.0398849 0.62048 0.596908 +0.43778 0.300052 -0.0114264 -0.323756 0.571497 -0.330773 0.805934 -0.284496 +-0.792036 -0.0501875 0.437801 0.148841 0.734703 0.30062 -0.715432 0.108541 +0.845658 -0.162659 0.154013 -0.0147165 -0.102836 -0.518214 -0.0524601 0.211388 +0.774781 0.709874 -0.68275 -0.899831 -0.562339 0.421571 0.669019 0.749238 +0.948515 0.834915 0.27058 0.269523 -0.721323 0.232853 0.123963 -0.8937 +-0.265647 -0.589781 0.14842 -0.845417 -0.698621 -0.220769 0.851933 -0.798709 +0.559397 -0.899814 -0.726456 -0.41406 -0.339211 0.557953 0.52204 0.932899 +-0.022377 0.950529 -0.667494 -0.215668 -0.938877 -0.214596 -0.809057 0.046996 +-0.408067 -0.980112 0.238443 -0.752431 -0.799308 -0.336314 0.319919 0.189053 +-0.763031 0.277874 0.120553 -0.854431 0.867596 -0.510476 -0.385128 -0.992872 +-0.0576368 0.137547 0.563772 -0.864928 -0.769947 -0.434662 -0.342907 0.620904 +-0.0160516 -0.132959 0.244994 -0.188478 -0.777315 0.992548 -0.0024895 0.979159 +-0.730022 -0.00247484 0.990202 0.312306 0.237458 -0.35138 0.137266 0.455564 +0.956368 0.310525 -0.854778 0.411043 -0.952062 0.358463 0.231315 -0.0518105 +-0.0672578 -0.207477 0.288971 0.0380662 0.690969 -0.268031 0.919081 -0.115396 +-0.704587 -0.154296 0.136428 0.954856 0.330782 0.481386 0.471715 -0.219455 +-0.203376 0.920095 0.697111 0.55034 0.383709 -0.262638 -0.817549 0.227347 +-0.463615 -0.291141 0.0250162 -0.00726496 -0.198275 0.58227 -0.211953 0.593673 +0.857279 0.841782 -0.449536 0.64487 -0.0307082 -0.0592299 0.648799 0.563618 +0.341086 -0.806764 0.890553 0.7288 0.389373 0.0534525 0.768573 -0.853393 +0.735197 -0.527257 -0.0361665 -0.0291081 0.524811 -0.753464 0.590635 0.242473 +0.758816 -0.904507 -0.294953 0.400438 0.625616 -0.542324 -0.846579 0.207886 +-0.773352 0.584384 -0.906816 0.790825 0.564684 -0.997325 0.363822 -0.0303743 +0.849792 0.34236 -0.47525 0.187017 0.809634 -0.330487 -0.0429083 -0.451028 +-0.518092 -0.772305 -0.785787 -0.0447383 0.194206 0.98632 -0.195761 -0.700767 +-0.522136 -0.931827 -0.800064 -0.154929 -0.274584 -0.987216 0.515634 -0.833795 +0.665241 -0.869177 -0.747338 -0.0971025 -0.502152 0.244928 0.811075 -0.423818 +0.630245 -0.945272 0.859781 -0.986722 0.231161 -0.615765 0.772432 0.61465 +0.884009 -0.935077 0.361179 -0.517252 0.247166 -0.107838 0.275589 0.0451575 +0.239435 -0.932808 -0.389149 -0.541961 0.612902 -0.285752 0.315727 0.632086 +0.439833 0.462677 -0.675846 0.0639894 -0.971488 -0.497908 -0.994998 -0.983985 +-0.665924 0.158148 -0.574551 -0.539711 0.329338 0.658037 -0.836134 -0.549203 +0.323902 -0.767664 0.743178 -0.20366 -0.702825 0.572041 -0.0672957 -0.820981 +0.929342 -0.232172 0.912706 0.492563 0.594423 -0.765973 -0.777843 0.222314 +-0.353925 -0.714375 -0.745331 -0.590585 0.608246 0.316576 0.25868 -0.181157 +-0.954547 -0.268678 -0.0259193 0.636473 -0.00576454 0.504652 -0.983029 -0.999909 +-0.977427 -0.439742 -0.634293 -0.443093 -0.208878 -0.917314 0.460906 0.668095 +0.404642 0.172564 -0.313897 0.0348753 0.314359 0.582387 0.587393 -0.406708 +-0.683042 -0.730176 0.28103 0.0451851 -0.536919 -0.440717 0.647332 -0.499174 +0.181887 0.957391 -0.937752 0.599208 -0.537083 -0.426277 -0.11741 -0.50889 +0.246802 -0.644743 0.906881 -0.0991696 -0.00592176 0.808702 -0.0879378 -0.136421 +-0.654269 0.913209 0.936144 0.186601 0.286651 -0.505364 -0.711188 0.216235 +0.897288 0.68245 0.773807 -0.519927 0.482965 0.963589 0.901341 -0.5257 +0.0480231 -0.66276 0.274623 -0.612045 0.546233 -0.565404 0.521747 0.0284632 +0.556798 0.111723 -0.317132 0.582086 0.743024 -0.231451 0.842579 -0.639296 +-0.17357 0.131176 0.67723 -0.844804 0.273531 0.41979 0.146505 -0.209657 +-0.621485 -0.292841 0.473998 0.0377861 -0.150556 0.27686 0.795891 0.154968 +-0.880345 -0.421512 -0.893228 -0.558276 -0.660662 0.233274 0.279943 -0.724258 +-0.00866459 -0.869644 -0.510631 -0.675563 0.874323 -0.647973 0.361705 -0.0513744 +-0.765622 -0.840489 0.349422 -0.45233 0.372522 -0.879064 -0.255937 0.883011 +0.289411 0.796227 -0.906529 0.303926 -0.720834 0.0183671 -0.244382 0.266483 +0.20845 -0.849936 0.0364291 0.769035 0.388537 0.208324 0.719498 -0.817213 +0.571492 0.296124 -0.612299 -0.268751 -0.59594 -0.612136 0.527542 -0.401115 +-0.554466 0.040609 0.27548 -0.765129 0.200401 0.0717073 0.968369 0.20067 +0.491465 -0.79106 0.011206 -0.793763 -0.246114 0.612065 -0.16963 0.0736798 +-0.496521 -0.157787 0.868321 -0.521676 -0.685509 -0.240769 -0.0398775 0.552004 +0.165768 -0.963096 -0.568903 -0.983895 0.824196 0.0279871 0.454328 0.218824 +0.740034 -0.912918 -0.887235 -0.599089 0.79243 -0.512696 0.518684 -0.00402916 +-0.327851 0.914753 0.890236 -0.656269 0.852599 -0.427016 0.365611 0.612482 +0.066393 0.255606 -0.843267 -0.643871 -0.112525 -0.464752 0.81926 0.463016 +-0.467603 0.410669 -0.423947 0.119199 -0.687074 -0.784492 0.63345 -0.286635 +0.98679 0.456341 -0.678906 0.0648139 -0.737 0.248312 0.731778 -0.409536 +0.513261 0.661747 0.565116 -0.625691 0.648478 -0.163854 0.143801 0.499486 +0.840303 -0.817532 -0.231689 0.39123 -0.903837 -0.47848 0.225207 -0.852077 +0.123674 -0.311777 0.290866 -0.0950451 -0.426041 0.86066 -0.748283 -0.632109 +-0.521492 0.0864328 -0.32038 0.840318 -0.77951 -0.606943 0.782581 0.777126 +-0.15473 -0.511288 -0.730831 0.793147 -0.586367 0.0114341 0.200563 0.879166 +0.250878 -0.199742 -0.729809 -0.487566 0.422522 0.864251 -0.0122899 -0.0645909 +0.397044 -0.205551 0.886822 -0.436877 0.369261 0.480061 0.318214 0.575161 +-0.841199 0.463341 0.281459 -0.848436 0.756315 0.572097 -0.846394 -0.746386 +-0.44147 -0.181421 -0.623874 -0.901199 -0.761866 -0.702611 0.66056 0.560011 +0.00865089 0.617429 0.60499 0.0953529 -0.0678855 -0.701857 -0.802685 -0.219635 +0.420718 -0.839643 -0.332753 -0.0244583 -0.254837 -0.157819 -0.155316 0.596616 +0.721415 -0.690868 -0.533421 0.857715 -0.526885 -0.887416 -0.554687 -0.315093 +-0.0237967 0.247744 0.0436885 0.0905536 0.697041 -0.942072 -0.73151 0.357572 +-0.0985748 0.2026 -0.533896 0.827953 -0.147183 0.18746 0.553788 -0.560407 +0.244526 -0.0242629 0.959511 -0.35888 0.827606 0.525406 0.916333 0.116075 +-0.862214 0.0870938 0.355415 0.25719 -0.912298 0.832491 0.291841 -0.209333 +-0.103273 0.299104 0.102417 -0.755506 0.395904 0.449318 -0.922041 0.343038 +-0.996375 0.539566 -0.810872 -0.457363 -0.00370834 -0.915863 -0.0582603 -0.773698 +-0.502701 0.281822 0.333183 -0.984507 0.568097 0.635937 -0.32079 -0.505801 +0.853921 -0.36294 0.152173 0.703791 0.173053 0.747136 -0.708884 -0.807983 +-0.146087 0.983002 -0.0854224 -0.899636 -0.945061 0.545917 -0.844186 -0.956619 +-0.159242 0.40135 -0.970597 0.814538 0.248151 -0.984629 0.0420052 0.150303 +0.68965 -0.0845069 -0.118973 -0.0804514 -0.342862 -0.809644 0.484086 -0.940726 +-0.591145 0.284674 0.491459 -0.0577902 -0.102593 -0.776112 -0.712163 0.795008 +-0.415303 -0.79179 -0.962326 0.959955 -0.405948 -0.173242 0.690971 0.631169 +-0.472481 -0.726465 0.330005 -0.521806 0.674279 -0.651179 -0.199559 -0.0987495 +-0.777557 -0.788969 -0.835652 -0.13577 0.506319 0.995402 -0.210915 0.143186 +0.523246 -0.71789 -0.963673 0.264485 0.989123 -0.411849 0.746188 0.0228331 +-0.783776 0.708437 -0.923628 -0.34587 0.184657 -0.955679 0.874086 0.0372084 +-0.821056 -0.172536 -0.871285 -0.812582 -0.426327 0.489858 0.505255 0.787761 +0.523894 0.509191 0.450586 -0.948326 0.336666 0.328266 0.175533 0.132165 +-0.0335831 -0.713004 -0.271654 -0.362875 -0.987953 -0.142638 0.349005 0.328507 +0.0100541 -0.799865 -0.733318 -0.792683 -0.745214 0.613791 0.753187 0.362633 +0.884437 0.500743 0.742149 0.738966 -0.666168 0.50721 -0.412618 -0.956246 +0.732696 -0.908065 0.535723 0.535157 0.351496 -0.902803 -0.683144 0.138511 +-0.132169 -0.434749 -0.72639 0.314277 -0.516514 0.61994 0.0519247 -0.308297 +0.317812 -0.37567 -0.495581 0.750164 -0.569595 -0.657367 -0.831786 0.372993 +-0.932849 0.260294 -0.989796 0.358031 0.32691 0.612817 0.666925 -0.604385 +-0.414279 -0.470107 0.846858 -0.310571 0.971106 0.667517 -0.140636 -0.287537 +0.35593 0.240565 0.773082 0.827102 0.891107 0.818325 -0.633923 -0.716162 +0.569729 0.48686 -0.573935 -0.0971379 0.242509 0.621819 0.343014 -0.889115 +-0.22017 0.67562 -0.106311 0.0444585 -0.020977 0.695225 0.00345053 0.715914 +0.674576 -0.421233 0.65987 -0.431844 0.542729 0.605938 0.858969 0.438134 +0.963366 -0.837117 0.0781909 -0.838091 -0.168628 -0.2336 0.937015 0.739941 +0.718574 0.581652 -0.858404 -0.401037 -0.00716871 -0.707419 -0.467581 -0.78914 +-0.151921 -0.94791 0.6188 0.817459 -0.709341 -0.926268 0.0723514 0.336622 +0.96258 -0.75766 0.396941 0.718143 -0.169828 0.122031 -0.0367065 0.7384 +0.263628 -0.880443 -0.124994 0.266299 -0.257957 -0.0265027 0.921781 0.844244 +0.998924 -0.233981 0.673804 0.185795 -0.399473 -0.367174 0.850937 0.784937 +-0.562042 0.346308 0.765645 -0.946488 0.623402 0.530048 -0.14034 -0.347501 +-0.999026 -0.186878 0.17968 -0.46803 0.507831 0.843023 -0.837577 0.531084 +-0.10777 -0.88443 0.280961 0.19961 0.516423 -0.0250554 -0.0374467 0.944339 +0.648775 0.43716 -0.0294552 -0.291237 0.429182 -0.014207 -0.999934 0.616593 +0.5151 -0.370435 0.925594 0.127702 0.91067 -0.950674 -0.852667 -0.451298 +0.551099 0.201026 -0.216906 0.435788 -0.0886131 0.835681 -0.452632 0.06121 +-0.762853 -0.275637 -0.0452351 -0.43197 0.348678 0.692471 -0.0250651 -0.837511 +-0.000705068 0.693438 0.329145 0.784132 -0.837982 -0.270238 0.876447 0.288744 +0.581061 0.875979 -0.22214 -0.977312 -0.286251 0.654071 -0.431568 -0.132034 +0.118309 0.37006 -0.278813 -0.166397 0.344885 -0.41479 -0.708495 -0.401663 +0.50952 0.85496 -0.42861 0.258136 0.864074 -0.705577 -0.547031 0.548996 +0.603454 -0.379478 -0.447613 -0.704614 0.294644 -0.646423 -0.662817 -0.353713 +0.629235 -0.855449 -0.501383 -0.180815 0.0642744 0.978021 -0.885866 0.667011 +-0.277067 -0.800078 0.357491 0.852214 0.214084 0.602324 0.630773 -0.934377 +0.822629 -0.42572 -0.0414185 -0.238885 -0.897346 0.952023 0.468097 0.50996 +0.187288 -0.396971 -0.909384 -0.229735 0.723638 -0.0262056 -0.663937 -0.517033 +-0.744808 -0.305843 -0.0132199 0.0133952 0.592778 -0.817288 0.785724 0.226325 +0.115543 -0.674744 -0.430768 0.475621 -0.201807 0.223091 -0.162097 -0.525051 +-0.280492 0.0154554 -0.850462 -0.793395 0.630453 -0.482961 -0.0385223 -0.377634 +-0.113907 -0.562943 -0.49774 -0.96475 -0.803074 -0.648262 0.7712 -0.263702 +-0.42579 0.264327 0.772499 0.707879 -0.663871 -0.0649428 0.845919 -0.573576 +-0.968266 -0.011629 0.618734 -0.539617 0.501684 0.156367 0.260198 0.326613 +-0.616168 0.731211 -0.346115 0.838324 0.680605 -0.582237 0.588383 -0.736307 +0.22 0.781366 0.404332 0.363306 0.280824 0.0860145 -0.844068 -0.346392 +-0.989464 0.816089 0.396796 0.13281 0.306754 0.0244165 -0.558434 -0.041283 +-0.571711 -0.561174 -0.756804 -0.761599 0.726301 -0.435965 -0.42099 0.310841 +-0.3506 -0.177054 -0.100774 0.828329 0.903417 0.444617 0.786963 -0.364767 +0.576912 -0.247691 0.940025 0.124626 -0.345186 -0.799237 0.972112 0.293386 +-0.756064 0.0174836 0.346254 0.729743 0.177827 -0.989281 -0.626815 -0.181518 +0.0113047 0.710335 -0.157297 0.8192 -0.7834 -0.972748 0.880057 0.686708 +-0.984164 -0.776617 0.224398 0.397543 0.665649 0.254794 0.802654 0.728762 +0.331912 0.983285 -0.161468 -0.634742 0.608703 -0.442285 0.636728 0.566193 +-0.141833 0.931464 -0.392285 -0.117315 -0.665514 -0.718371 -0.68684 0.134075 +0.0653097 -0.0704623 -0.254018 0.905615 0.45013 -0.657428 -0.404572 0.000768281 +-0.685062 0.280918 0.325373 -0.885701 0.336282 0.216995 0.641761 -0.608141 +-0.607014 0.749325 0.587225 -0.0221953 -0.0550681 0.646176 0.42147 0.338693 +0.635026 0.20767 0.662579 -0.0780125 -0.850308 -0.438233 0.166219 -0.623084 +0.861369 -0.456771 -0.915508 -0.469572 0.451801 0.0122024 0.0242943 0.322577 +-0.414223 0.784582 -0.433078 0.799838 -0.324865 -0.991578 -0.622669 0.178575 +0.0565888 0.135022 0.619722 0.671557 0.425162 -0.421601 -0.25108 0.821844 +-0.797878 -0.220905 0.0967337 -0.743334 -0.649678 -0.979725 0.179823 0.741467 +-0.456997 0.616709 -0.802383 0.504038 -0.273702 0.192112 -0.273834 0.586739 +-0.184189 0.347775 0.980186 -0.107538 -0.619015 -0.866729 -0.691914 -0.87061 +-0.147123 -0.123446 0.933143 -0.627955 -0.864982 0.857844 0.446014 0.636984 +0.579715 -0.664341 -0.663416 0.60679 0.961587 -0.955314 -0.46082 0.323185 +-0.763326 -0.317488 -0.0296931 -0.543851 0.196844 -0.503798 -0.326354 -0.043125 +-0.470543 -0.541783 -0.314201 -0.795537 -0.759185 0.0990609 0.911611 -0.64058 +0.0664862 0.722826 0.899792 0.741519 0.782599 0.0647453 0.457447 0.695179 +0.58767 -0.818951 -0.0449839 0.446339 0.0756951 0.0465723 0.899595 -0.645389 +-0.604101 -0.215408 0.316787 0.99631 -0.280395 0.256987 -0.791317 -0.420584 +0.00783592 0.389534 0.827462 0.736468 -0.485448 -0.206538 0.202916 -0.706972 +0.851653 -0.615325 0.958712 -0.782672 -0.727878 0.547352 -0.64593 0.118389 +0.221741 0.89213 -0.801569 0.883675 0.289008 0.426343 -0.843248 -0.956447 +-0.1651 0.121533 0.617531 -0.735839 0.547591 -0.715481 0.960951 0.313266 +0.804189 -0.616054 0.91116 0.606297 0.65658 -0.48108 0.748657 0.16065 +0.794865 0.0766061 -0.980672 0.706476 -0.816405 0.184429 -0.911435 0.537995 +0.716987 0.0314115 -0.671708 -0.400309 0.685982 0.432049 -0.806327 -0.412623 +0.745035 0.0077021 -0.43329 0.758352 0.34165 -0.0448048 -0.635356 -0.0756354 +-0.824857 -0.498955 0.236824 0.468947 -0.0306672 0.596619 -0.686569 0.458268 +-0.0301541 -0.000230301 -0.764087 -0.40606 -0.812309 0.260076 0.910427 -0.0361387 +-0.281342 0.996378 -0.174217 0.396589 0.828647 0.62871 -0.0241627 -0.901862 +-0.989947 0.279349 0.6173 0.506768 -0.598962 -0.467246 -0.479589 0.795945 +-0.568429 -0.708814 -0.305729 0.556525 0.2365 -0.12609 -0.950731 -0.849946 +-0.393335 0.110022 0.408178 -0.189781 0.153311 -0.0509175 0.13667 -0.635806 +0.515497 0.226554 -0.457446 0.963648 0.138001 0.198869 0.55655 0.275074 +0.833916 -0.907625 -0.431839 0.580657 0.844465 -0.59836 0.709453 -0.607478 +0.708596 0.323194 -0.363549 -0.152327 0.801959 0.194822 -0.796287 0.643948 +-0.438857 0.921563 0.289893 -0.00920486 0.440235 -0.935067 -0.150133 -0.0879078 +-0.439521 0.360491 0.483873 0.622308 -0.719552 0.247959 -0.174353 -0.753308 +0.823863 -0.581082 -0.724696 0.966331 0.928865 -0.207342 0.370228 0.369655 +0.0637058 -0.95021 -0.293585 -0.568655 0.812117 0.118339 -0.589146 -0.151276 +-0.479777 0.787033 -0.66087 -0.891266 0.521678 0.83649 -0.42658 -0.756782 +-0.614751 -0.23329 -0.463254 -0.982015 0.742681 -0.524214 -0.286417 -0.197657 +0.836815 0.623114 0.195545 -0.169787 0.890554 0.488276 -0.0398315 0.809048 +-0.982284 -0.872347 0.0571053 0.977138 -0.785018 -0.25923 0.196843 0.428123 +-0.398294 -0.581749 0.0954772 -0.469722 0.147785 -0.0476722 0.580913 -0.871628 +-0.616744 -0.838678 -0.359308 -0.0478123 0.823345 0.641562 0.53659 0.969992 +0.544305 -0.142675 0.378207 0.890251 -0.136662 -0.867295 0.809838 -0.159524 +0.690661 -0.208898 0.0603975 0.935953 0.520713 0.0285134 0.84775 -0.830052 +0.485369 -0.660915 0.102891 0.635658 -0.549607 -0.199088 0.116683 -0.644873 +-0.204462 0.41009 0.239874 -0.135912 -0.52821 0.741063 0.418835 0.886441 +-0.659746 -0.990784 0.526589 0.476916 -0.632939 -0.789347 -0.261617 -0.43198 +-0.812314 0.552784 -0.502973 -0.520641 -0.642169 -0.85452 0.566397 0.0104621 +-0.534805 -0.663166 -0.00239012 0.724684 0.492722 -0.509403 -0.863882 0.365751 +0.784838 -0.769144 0.271731 -0.304991 -0.18287 -0.937801 -0.202343 -0.0235132 +0.410138 -0.00510835 -0.894632 0.74949 -0.135095 -0.099285 -0.889814 -0.852642 +-0.244566 -0.982174 -0.22027 -0.445252 -0.532723 -0.23535 -0.832387 -0.516421 +-0.945681 0.187503 0.27538 -0.782043 0.334733 -0.859677 -0.192137 0.680349 +0.749007 -0.861941 0.33958 -0.772802 -0.184557 0.375975 0.317242 0.803211 +0.180729 -0.827121 -0.932489 0.212849 -0.0774885 -0.561804 0.832561 0.924228 +-0.51261 0.934506 -0.0985754 0.615137 0.0265231 0.966255 -0.905823 -0.222526 +-0.212689 -0.908656 -0.511251 0.384387 0.222447 0.44556 0.431341 0.886168 +0.81375 -0.20064 0.24307 -0.99242 -0.585578 -0.974598 0.366026 -0.463103 +-0.898744 0.0204658 0.348743 -0.461792 0.402921 0.992579 -0.972558 -0.136229 +0.58008 0.0991207 -0.689031 -0.839114 -0.968505 -0.298291 -0.487098 -0.618124 +-0.621908 -0.982348 -0.0978592 0.0026808 -0.754653 0.835372 -0.626442 0.0567296 +0.542684 -0.845997 -0.930758 -0.062581 0.709223 -0.630462 0.475657 0.4694 +0.233525 -0.639955 0.461843 -0.498573 0.135962 0.648516 -0.860887 0.593932 +0.881612 -0.484931 0.709647 0.146055 0.157837 -0.461421 0.800285 -0.904641 +0.524459 0.684703 -0.832042 -0.339311 0.0214582 -0.36108 -0.876202 -0.297081 +-0.963736 -0.225418 0.0667202 -0.141799 -0.0067285 0.416775 0.608885 -0.445757 +0.0835383 -0.783474 -0.941268 0.717977 -0.40279 -0.400818 -0.201124 -0.91622 +0.343427 0.765246 0.712287 -0.286136 0.493127 -0.659244 -0.0693339 0.830604 +-0.60618 -0.367933 -0.307954 -0.722405 -0.486379 -0.749567 0.392966 0.470268 +-0.329486 -0.892206 -0.967454 -0.0256706 -0.322041 -0.231606 -0.273662 0.467779 +0.00864375 -0.81182 -0.548585 -0.0300353 -0.0434251 0.796928 0.669132 -0.863061 +-0.0340044 0.945618 0.208824 -0.637676 -0.00122878 0.181622 -0.217756 0.919925 +-0.438567 0.894487 -0.123102 -0.0219841 0.615826 -0.209102 -0.407801 -0.565796 +0.715973 -0.0374182 -0.152052 -0.879616 -0.111176 0.487921 0.623314 -0.442354 +-0.939463 0.998591 -0.840935 -0.717716 -0.928034 0.760342 -0.460224 -0.711057 +-0.339058 0.446081 -0.529201 0.169856 -0.713303 -0.28214 0.23864 -0.64956 +-0.368286 0.342269 -0.0480571 -0.767477 -0.237158 -0.374401 -0.417466 0.103495 +0.70439 0.947576 0.88951 -0.484411 0.82739 -0.0317333 -0.374721 0.728774 +-0.164127 0.998379 3.58187e-05 -0.478777 -0.886255 -0.718046 -0.530109 -0.372583 +0.447814 0.751623 -0.844977 -0.0501045 0.328442 -0.554447 0.32604 -0.512797 +0.125453 0.948951 -0.251164 -0.0734488 -0.724174 0.382493 0.565093 -0.380303 +-0.959134 0.129028 0.905471 -0.430826 0.33407 -0.865566 -0.102439 -0.847552 +-0.671577 0.547515 -0.405553 -0.533779 0.792841 0.940761 -0.240287 -0.790082 +0.261696 -0.468283 0.636685 0.172508 -0.712444 -0.511514 0.0697376 0.323731 +0.967268 0.0701916 0.70247 0.961297 0.532989 0.209927 -0.863799 -0.988658 +-0.738586 -0.957943 -0.227758 0.439528 0.638227 -0.361157 -0.550217 -0.0740309 +-0.167978 -0.671522 -0.590948 0.788766 0.900721 -0.436472 0.701945 -0.283663 +-0.933055 0.308208 -0.48667 -0.965686 0.424975 0.916878 0.870325 0.307718 +-0.440769 -0.136783 -0.717385 0.978844 -0.978524 0.894935 -0.955621 0.0347861 +-0.402571 0.932431 -0.69001 -0.854947 -0.704255 -0.843845 0.439145 0.332507 +0.884315 0.358231 -0.0204979 -0.905149 0.311102 -0.134503 -0.504413 -0.351413 +0.93749 -0.419078 -0.606983 -0.861235 -0.528741 -0.316415 0.0760611 0.556028 +-0.481772 0.0528745 0.912388 -0.648943 -0.528738 -0.0836405 0.45518 0.134116 +0.65148 -0.0730722 -0.102746 -0.248844 -0.275548 0.245518 -0.402454 -0.434698 +-0.736554 0.94961 0.725272 0.0492115 0.755981 0.876823 -0.969465 0.806371 +-0.691828 0.047525 0.496619 0.528133 -0.411473 -0.441943 0.133401 -0.361174 +-0.533397 0.840733 0.126147 0.612444 0.284063 0.598789 0.878335 -0.0490234 +0.604006 0.818177 -0.723031 -0.113028 0.672895 0.157053 -0.367267 -0.514891 +-0.226723 0.715447 0.0342616 0.0163529 -0.7168 -0.454648 0.615421 -0.639414 +0.788543 -0.114448 -0.618044 0.931844 0.397526 -0.323861 0.766333 -0.685741 +0.672859 -0.165548 -0.0151693 -0.0820926 0.217384 -0.899237 0.90086 -0.968222 +0.309018 0.896308 -0.405664 -0.497062 0.916715 0.0237754 -0.106368 -0.861573 +-0.269966 0.102866 0.762425 0.2448 -0.432779 -0.96265 -0.627808 0.205983 +0.310784 -0.173406 0.518453 0.344953 0.0330906 0.931382 -0.240309 -0.474299 +0.982172 -0.60229 0.707335 0.920388 0.528837 -0.567362 -0.379323 0.271828 +-0.854471 0.885482 0.569127 -0.279502 -0.984145 -0.986498 0.0491782 -0.856641 +0.251908 0.345603 -0.117219 0.047237 -0.872522 0.137715 -0.76625 0.14018 +-0.397734 -0.298491 -0.12443 -0.516682 -0.565237 -0.787377 0.0348365 -0.110158 +-0.904191 -0.440638 0.267592 0.838202 0.644222 0.0461281 -0.323435 -0.181573 +-0.193219 0.123638 -0.726347 0.257066 0.622249 -0.394583 0.927198 -0.616079 +-0.881052 -0.725467 0.999209 0.0472901 -0.585616 -0.366093 -0.243887 -0.512779 +-0.929443 0.916092 -0.327464 0.494227 -0.55818 -0.772939 -0.585813 -0.0464067 +-0.980349 0.595058 0.0355612 0.423679 -0.105675 0.274351 0.658272 0.478176 +0.00210862 0.767072 -0.85446 -0.796965 0.244109 -0.269706 -0.911463 -0.355583 +0.812399 0.711786 -0.69391 0.516279 -0.715963 -0.648673 -0.226655 -0.420628 +-0.489381 0.661046 0.958852 -0.148027 -0.161704 0.324932 -0.967644 -0.249043 +-0.754152 0.627913 -0.411467 -0.441104 -0.713304 -0.654139 -0.469572 -0.393992 +-0.873313 0.0239746 0.782447 -0.743247 0.600311 0.372719 0.701501 0.610132 +0.478536 0.468219 -0.571597 0.714447 -0.16895 -0.168505 -0.870466 0.498229 +-0.559904 -0.857032 0.333161 -0.28656 -0.301776 0.486585 -0.765691 -0.913841 +0.730426 -0.225736 -0.747767 0.582975 0.499248 0.517178 0.371442 0.597353 +0.606516 0.048935 -0.556591 -0.148378 -0.752258 0.00501431 -0.0688888 -0.417933 +0.581317 -0.588115 -0.547754 -0.36809 0.514811 -0.653504 0.540169 0.0116083 +0.539994 0.0387363 -0.373906 -0.195572 0.681116 -0.537351 -0.480147 0.341481 +-0.726982 0.416172 -0.442743 0.873262 0.77925 0.866927 0.0864211 0.59553 +0.88649 0.266731 0.937636 0.868009 0.20473 0.524346 -0.438782 -0.554437 +0.426115 -0.164787 0.64804 -0.0793962 0.00412427 -0.300663 0.0455931 0.520787 +0.51715 0.98294 0.100624 -0.972808 0.0351265 -0.595614 -0.0868222 -0.00845374 +-0.108488 0.787103 -0.379717 0.0959567 -0.880038 -0.600296 0.388735 0.084587 +-0.864644 -0.667847 -0.240725 -0.253896 -0.88752 -0.772616 -0.570779 0.395807 +-0.21042 0.947049 0.475964 0.975556 -0.00100742 -0.438765 -0.293878 0.683117 +0.0379649 0.0255203 0.41284 -0.726212 0.535715 0.0914284 -0.941792 -0.134525 +0.493006 0.550706 0.179805 -0.281732 0.825291 -0.732768 -0.776553 -0.80783 +0.519644 0.505448 -0.141743 -0.00348875 0.0889648 0.714917 -0.00428693 0.164767 +0.103408 -0.717194 -0.341366 -0.515549 -0.119209 0.70495 -0.932573 -0.786965 +0.0231636 0.945253 0.104304 -0.519617 0.569347 -0.325106 -0.0486517 -0.212616 +-0.0491609 -0.15152 0.217699 0.336631 -0.517949 0.851969 0.656025 0.203582 +0.466604 0.728384 0.376079 -0.240832 -0.983118 0.914609 0.950797 0.301587 +0.798194 -0.582151 -0.841621 -0.801487 0.200817 0.0549527 -0.517497 -0.803304 +0.514074 0.135644 -0.177831 -0.862979 -0.449721 0.240401 -0.915253 0.131752 +-0.00652486 0.901605 -0.878675 -0.69349 0.90813 0.591722 -0.493227 -0.895225 +0.173175 -0.0949145 0.662523 0.993257 0.500343 -0.262429 -0.933478 -0.836239 +-0.363235 0.647656 -0.0540754 0.517371 -0.897888 -0.127308 0.76276 0.95806 +0.73717 -0.579742 -0.515394 -0.0900528 -0.422909 -0.867229 0.118616 -0.619266 +-0.789218 0.395874 -0.263162 -0.218993 -0.989462 -0.412965 -0.34815 -0.252564 +-0.167916 -0.867763 0.562551 -0.132474 -0.828412 -0.239798 -0.527397 0.525177 +-0.677053 0.60444 0.166432 -0.622612 -0.99513 -0.904785 0.469131 -0.122162 +-0.86848 0.743779 0.136043 -0.0355452 -0.858098 0.337151 -0.20756 0.754075 +0.898261 0.333916 0.578844 0.0165041 -0.482019 0.268773 -0.232733 -0.511812 +-0.310141 0.984661 -0.0355772 -0.0615404 0.261641 0.772658 -0.415472 -0.739663 +-0.931102 -0.96816 -0.456587 -0.761168 -0.181398 0.427283 -0.569672 0.325545 +0.548456 0.437026 -0.0967424 0.874929 -0.945728 0.219869 -0.28097 -0.0350449 +-0.924421 0.0953952 -0.945492 -0.741848 -0.88119 -0.788247 0.154273 0.823235 +-0.349462 -0.300058 0.516437 0.790399 0.0226538 -0.397157 -0.652717 -0.210641 +-0.0566707 -0.958777 0.944967 0.571243 0.0727161 0.954246 -0.989825 0.312317 +0.0674175 -0.199475 0.602463 0.140729 -0.523178 0.944059 -0.133752 -0.55164 +-0.858503 0.430255 -0.320692 0.274377 0.981339 -0.487528 0.65521 0.0438374 +0.633114 -0.331395 -0.1199 -0.430513 0.601308 -0.342459 -0.0434577 -0.23422 +0.0754465 0.685361 -0.405587 0.831622 0.147556 0.803707 0.751314 0.867704 +-0.798783 0.575314 -0.0780584 0.374875 -0.78028 -0.55593 -0.652663 0.0566913 +0.545555 0.333988 0.293725 -0.458525 0.725412 0.210956 0.0573337 0.659658 +-0.919578 -0.276029 -0.394873 0.0204002 -0.492932 0.356923 -0.966322 -0.217896 +0.254969 -0.724236 0.629989 0.909324 -0.492372 -0.91706 -0.988393 -0.784333 +-0.64209 -0.846022 0.747568 -0.742917 -0.467237 0.808793 -0.607423 0.783012 +-0.062119 -0.0346325 -0.981145 -0.242132 0.468866 0.177845 0.279318 -0.407476 +-0.82309 -0.475214 0.816436 0.80076 -0.828438 -0.0744201 -0.755459 -0.592288 +0.188374 -0.824065 -0.364972 0.265613 -0.0671335 0.862794 -0.559167 -0.185972 +0.956574 0.443286 0.938111 0.99978 -0.61782 0.606602 -0.710399 -0.399743 +0.373872 -0.536204 0.879088 0.830825 -0.37226 -0.62618 -0.737087 0.528716 +-0.247862 -0.08905 -0.885543 0.631119 0.999098 0.950532 -0.865904 0.301747 +-0.543677 -0.777999 -0.103366 -0.767815 0.206858 -0.327054 0.269201 0.834288 +0.584777 -0.0853758 -0.391491 -0.874293 -0.160799 -0.864734 0.420523 0.137826 +-0.104722 -0.664662 -0.188868 -0.367055 -0.602064 -0.943215 0.368623 0.130933 +0.755609 0.954666 0.538894 0.323516 0.691233 -0.427272 -0.583608 -0.143928 +-0.872202 -0.0515559 0.462139 0.544525 -0.582221 -0.119367 -0.723396 0.663627 +-0.0425203 0.780898 -0.431425 0.25698 0.421757 0.54623 -0.185291 0.06734 +-0.526959 -0.255149 -0.852612 0.00240849 -0.596438 0.487974 0.996254 -0.277034 +-0.250355 -0.542272 -0.0105174 0.965026 0.842351 0.742194 0.360429 0.392727 +-0.0712163 0.215971 -0.655292 -0.417113 -0.604008 0.505837 0.188779 0.778084 +0.72285 0.0481556 0.338723 -0.620417 -0.0949132 0.170445 -0.886654 -0.667965 +0.0722872 -0.884601 -0.398315 -0.570663 -0.717769 0.293513 0.86843 0.131688 +0.635362 -0.217584 -0.801661 -0.159571 -0.64837 0.170806 -0.0798785 0.00159534 +-0.522543 0.623366 -0.975635 0.486717 -0.697985 -0.480893 0.242301 0.907825 +-0.682965 -0.862529 -0.529999 -0.469402 -0.0689268 0.638641 -0.261971 0.162454 +0.924986 -0.838339 0.41012 -0.328706 0.0662599 0.841739 0.787578 0.621908 +0.855472 0.881251 0.036657 -0.778922 0.213021 0.511113 -0.634199 -0.989152 +0.702894 -0.237175 0.525947 -0.593405 -0.934287 0.942147 0.223931 0.175514 +0.360713 0.796448 0.00851988 0.649489 0.439841 -0.908649 -0.743818 0.980769 +-0.887181 -0.988196 0.326568 0.529733 -0.17162 -0.474393 0.779824 0.836944 +0.469429 -0.546156 0.0698695 0.699024 0.601318 0.350035 -0.394446 -0.905387 +0.960154 -0.711228 -0.778727 0.480277 -0.643098 0.129766 0.839766 -0.683655 +0.152151 0.482563 0.257712 0.12372 0.852753 -0.958938 0.57036 0.157611 +-0.0485753 0.556195 -0.229038 0.588178 -0.70367 -0.597682 0.822591 -0.521196 +0.436099 -0.126062 -0.4454 0.134319 0.0551376 0.796622 0.202384 0.890468 +0.965482 0.626513 -0.562947 -0.269078 0.39698 -0.742422 0.130553 0.929076 +0.683358 -0.97097 -0.730346 -0.68618 -0.0400286 0.235318 -0.867485 -0.346546 +0.333295 -0.445525 -0.963462 -0.533717 -0.449516 -0.601454 -0.245269 -0.299874 +-0.447599 0.153277 0.601545 -0.917766 0.631199 0.671554 -0.348887 0.971254 +-0.987207 -0.0343355 -0.264064 -0.632789 -0.645582 0.850846 -0.43561 -0.139635 +0.507676 0.745846 -0.57733 -0.116314 -0.804799 -0.871462 0.231639 -0.457229 +-0.352731 -0.483039 -0.608581 -0.240055 -0.194946 0.390388 0.0721848 0.37785 +-0.108104 -0.372327 0.56838 -0.513627 0.789168 0.587824 -0.939963 0.0481087 +-0.0373395 -0.477224 0.386216 0.981896 -0.442703 0.978169 -0.535139 0.0158854 +-0.768252 -0.79301 0.720239 -0.911349 0.897648 -0.690076 0.215503 0.499193 +0.501812 0.255198 0.1391 -0.158408 -0.153084 0.220766 0.332727 0.583619 +-0.745589 -0.953123 0.740416 -0.965433 -0.946512 -0.984059 -0.221339 0.166907 +-0.983864 0.676227 0.55923 0.0408475 -0.923848 0.768858 0.656617 -0.820871 +0.205957 -0.321971 0.997178 0.863801 -0.95386 -0.212687 -0.552148 -0.994185 +-0.751285 0.891413 -0.251897 0.219731 -0.846847 0.491592 0.437694 0.305215 +-0.49895 -0.943796 0.107967 0.858461 0.739407 0.935811 -0.872678 0.667908 +-0.662264 0.617156 0.219431 0.923692 0.968059 0.905166 0.188744 -0.21665 +0.265055 -0.160066 0.275978 -0.180617 0.838283 -0.840746 0.622687 -0.586854 +-0.563731 -0.00539522 -0.436826 -0.268258 -0.167928 -0.151694 0.836768 0.0803586 +0.678223 0.192053 0.294282 -0.792568 0.520835 -0.374463 0.73826 -0.804014 +-0.422662 0.920872 -0.74267 -0.913076 -0.482928 -0.427512 0.0909748 0.476928 +-0.395764 0.573938 -0.339744 0.0564879 0.121589 0.327182 0.76153 0.029828 +0.357279 -0.0736123 -0.216815 0.993638 0.554024 0.945262 0.9521 0.992713 +0.41563 0.835111 0.333971 0.243163 0.854872 -0.244089 0.821639 -0.601421 +-0.547932 -0.802817 0.165144 -0.918539 0.0972188 -0.296996 -0.214255 -0.767947 +0.939733 -0.107441 -0.176512 0.927349 -0.739474 0.422475 -0.970313 0.188903 +-0.963026 0.594481 -0.228628 -0.341258 -0.933545 -0.716736 -0.943601 -0.480241 +-0.976579 -0.734036 0.139383 -0.525071 0.275555 0.733044 -0.164632 0.877818 +0.469534 -0.157197 -0.340027 -0.229847 -0.907174 -0.812643 -0.377661 -0.668763 +0.160111 -0.981113 -0.454339 -0.839043 -0.272351 0.81987 0.199865 -0.449337 +0.748273 0.510208 -0.994967 0.925383 -0.24439 0.999317 -0.226718 0.471643 +-0.867453 -0.532115 0.0845664 -0.819005 0.0369521 -0.0195426 0.542037 0.15077 +-0.689657 -0.948521 0.617848 -0.52699 -0.572121 0.167283 -0.65349 -0.00733644 +-0.705351 0.432267 -0.416052 -0.255617 0.2413 -0.96528 0.741295 0.595977 +-0.746777 -0.218203 -0.882464 0.451746 0.714665 -0.281248 -0.800118 -0.54971 +-0.740157 -0.354166 -0.155435 -0.32114 0.324222 0.163949 0.918079 0.841913 +0.0871473 0.811038 0.610476 0.542277 -0.380087 -0.624198 0.176843 -0.322804 +-0.966303 -0.610082 0.351537 0.537812 -0.56573 0.896842 0.0409576 0.938087 +-0.89567 0.550195 -0.421399 -0.773171 -0.095841 0.89622 0.224035 0.425158 +-0.23045 0.0829561 -0.960155 -0.878914 -0.693009 0.843461 -0.698353 -0.125659 +0.361473 -0.514447 -0.171557 0.475797 -0.0174048 -0.528989 -0.971387 0.288903 +0.863352 -0.613576 0.402034 0.926998 -0.562214 0.791953 0.29749 0.131722 +-0.358312 -0.319234 -0.541508 -0.476338 -0.724377 -0.0146154 0.0106356 -0.161128 +0.348456 -0.460724 0.553631 0.491866 0.583169 0.914039 0.762895 0.812704 +0.646607 -0.547933 0.775984 0.306783 0.5141 -0.744085 -0.90439 -0.121258 +-0.0858139 -0.0963209 0.159597 -0.90429 0.707903 -0.75263 0.405992 0.362285 +0.0398405 0.941671 -0.886079 0.0271912 0.213453 -0.836911 0.485894 -0.555229 +-0.292586 0.667731 -0.555299 0.814736 0.342754 0.570431 0.89559 0.194648 +0.175206 -0.125579 0.156772 -0.674121 0.149871 -0.929366 -0.754064 0.0298566 +0.185215 -0.214766 0.126068 -0.917025 0.880563 0.683523 -0.805319 -0.130271 +0.223479 0.302833 -0.423818 -0.283243 -0.147496 0.674922 -0.275212 0.287667 +-0.844565 -0.649853 0.0212764 -0.119313 -0.871784 -0.202159 0.588148 0.708281 +-0.620201 -0.448051 -0.497644 0.59911 0.367225 0.178448 -0.857665 -0.885693 +0.136695 -0.223891 0.875414 0.925696 0.717649 0.0990003 0.339096 0.151777 +-0.700985 0.328839 0.0452361 0.510211 0.231076 -0.822707 0.578956 0.618465 +-0.66974 -0.504158 0.997141 -0.983956 -0.601804 0.83153 -0.251907 0.131129 +-0.23875 -0.276582 -0.763665 -0.286273 -0.578402 -0.605575 0.487201 -0.264368 +-0.279441 -0.75415 0.653356 0.313241 -0.162724 0.550417 -0.422391 -0.67508 +0.556955 0.692698 -0.559814 -0.740492 0.55263 -0.948635 0.944135 0.452505 +0.887133 -0.381995 0.565063 -0.918914 0.0693192 -0.354579 -0.201351 -0.528456 +0.488967 -0.813855 0.700582 -0.591998 0.00517579 -0.259065 0.730442 -0.162142 +-0.188417 0.54958 -0.466756 0.958246 -0.770873 -0.351427 0.256662 -0.887696 +0.940295 -0.359559 -0.383567 -0.418849 -0.0287466 -0.2082 0.912299 0.906447 +0.355532 0.219688 -0.592271 0.408647 0.963538 0.442974 0.255207 -0.54769 +0.999579 -0.647976 -0.430347 0.313431 0.956103 0.0244352 -0.21198 -0.781166 +-0.609333 0.695023 -0.00585951 -0.429169 -0.468694 0.64518 0.565546 0.786551 +0.539956 -0.76661 0.479248 -0.395474 0.989707 -0.869991 0.35182 -0.200015 +-0.610083 0.456946 -0.749989 -0.540906 -0.25171 -0.55211 0.122659 0.182224 +-0.289133 0.118245 -0.706109 0.000286182 -0.507599 0.659099 -0.352538 -0.548111 +-0.575608 0.431426 -0.435646 -0.0638061 0.573575 -0.772363 -0.543486 0.171232 +0.361416 0.79796 -0.0645699 0.121489 -0.174803 0.689077 -0.950937 -0.772784 +0.355538 0.997686 -0.324652 0.408147 0.100385 -0.83699 0.362303 0.812052 +0.57894 -0.42062 0.105521 -0.0371584 0.294148 -0.960073 -0.987327 -0.716768 +0.675003 -0.950628 0.962732 0.145438 0.0151505 0.670395 -0.702705 -0.955056 +0.368931 0.25731 0.848675 0.393233 0.365112 0.704958 -0.964903 -0.337374 +-0.0870159 -0.895422 0.530613 0.3966 0.420916 0.913206 0.92198 -0.08298 +0.525101 -0.81229 0.565656 -0.533193 -0.202546 0.475332 -0.218514 -0.88693 +-0.924348 -0.269925 0.180285 0.344104 -0.300888 -0.519645 -0.504408 0.0156576 +-0.275531 0.39835 -0.512057 -0.0724003 0.314598 -0.299159 0.524368 -0.874405 +-0.862982 -0.511945 -0.349759 0.142268 -0.123326 -0.418009 0.302254 -0.0370469 +-0.472337 -0.34847 -0.0240024 -0.320894 0.652825 -0.565138 0.952537 -0.976899 +0.162668 0.97598 0.328564 -0.641333 -0.157184 0.715958 0.139089 0.171088 +-0.715707 -0.792925 0.851959 0.0239201 0.229325 0.888776 0.242874 -0.0956594 +0.0730154 -0.22137 -0.930213 0.691392 -0.0133478 -0.183844 0.828858 0.719249 +0.710041 -0.0774391 -0.214347 -0.0990236 0.389698 0.976301 -0.893467 0.198271 +-0.755695 0.741752 -0.31524 0.812909 -0.769951 -0.288885 0.267208 -0.218886 +-0.886653 -0.633374 0.808661 0.745247 0.124286 -0.5126 -0.995492 -0.5198 +-0.692688 -0.147346 0.187424 -0.925055 -0.439214 -0.111269 -0.975173 -0.658201 +-0.831075 0.673083 -0.873982 0.888561 -0.909797 -0.477867 0.93234 -0.282008 +-0.290956 0.856362 -0.537572 0.862711 0.0502476 0.436749 0.634669 -0.055289 +-0.948314 -0.463479 -0.271359 0.83194 0.876005 -0.380152 0.564686 0.842261 +0.651726 -0.349592 -0.672053 0.811869 0.169962 -0.133927 -0.172151 0.0341328 +0.759291 0.358957 -0.58414 -0.530041 0.60161 -0.528868 -0.0799708 -0.307838 +0.671058 -0.459334 -0.689521 0.266444 -0.388679 -0.924294 -0.772005 -0.165673 +-0.642888 -0.736954 -0.424283 -0.104637 0.246528 0.137349 0.0379861 0.832927 +-0.170774 0.0669082 -0.6996 -0.579342 0.34972 -0.348279 -0.35229 -0.270538 +-0.945031 -0.524023 -0.552039 -0.114057 0.234116 0.501137 0.977221 -0.395418 +-0.409068 0.69399 0.374419 -0.0462875 -0.0465554 0.766255 0.774782 0.675965 +0.779158 -0.166837 0.821032 -0.714979 0.686341 0.539111 0.566031 0.277188 +0.538449 -0.848217 0.206875 0.862397 -0.38221 0.405983 0.282527 0.737116 +0.898407 -0.176659 0.0464721 -0.174439 -0.270702 0.100901 0.520358 -0.561523 +-0.979069 0.967672 0.792619 -0.610577 -0.974206 -0.751801 0.74998 -0.749505 +0.263804 0.723652 0.739677 -0.842901 -0.860151 -0.705391 -0.62765 -0.382012 +-0.130688 -0.30586 0.0984786 -0.262746 0.489062 -0.202678 -0.427006 0.896134 +0.516793 -0.0821588 -0.223608 -0.479332 -0.338764 -0.166683 0.511858 -0.188652 +-0.308261 0.0582935 -0.907996 0.145248 0.173322 0.894237 0.930443 0.37919 +-0.055568 -0.843438 0.895721 -0.894053 -0.602729 -0.347945 0.548196 0.767499 +-0.360557 -0.832566 0.938689 -0.968412 -0.498284 -0.0476192 -0.630211 0.169322 +-0.340761 0.225727 0.626826 0.770033 -0.589029 -0.869995 0.635105 0.140516 +-0.275869 0.150278 0.226437 -0.35612 0.307429 -0.514314 -0.102084 0.787112 +-0.56936 0.715269 0.483321 -0.677539 0.718327 -0.996698 0.288105 -0.329191 +0.0826611 -0.905288 0.948848 0.561249 0.103266 0.4488 -0.35026 -0.197099 +-0.880391 0.224373 0.950568 -0.3324 0.396463 0.578104 -0.967929 0.271137 +0.993101 -0.461551 -0.621999 0.619373 0.783432 0.365015 -0.34766 -0.600584 +0.00402216 0.290309 -0.904297 0.656952 0.191966 0.370522 0.332878 -0.24234 +0.214094 0.438921 -0.78707 0.688227 0.90262 0.885032 -0.451939 -0.305912 +-0.777585 -0.708842 -0.858883 -0.251773 0.374764 0.595089 0.312957 0.775746 +-0.740073 -0.108861 0.455241 0.86918 0.569907 -0.962557 -0.25648 0.804496 +-0.912671 0.499386 -0.95459 0.381183 -0.848648 0.988888 0.707242 0.510946 +-0.0352051 -0.0379785 0.4072 -0.0128833 0.807337 0.425928 0.570978 -0.910252 +0.626974 0.482988 -0.410612 0.175324 0.130045 -0.64675 0.20158 0.252041 +0.093055 -0.381027 0.343075 0.32612 -0.0966218 -0.24313 -0.0175112 -0.152642 +0.848891 0.0384485 -0.0553651 0.589269 -0.78618 -0.126579 -0.719034 0.482478 +-0.729124 0.43077 -0.00256574 0.33618 0.517282 0.329004 -0.295313 0.785522 +0.858593 0.167835 0.483022 0.119475 -0.515303 0.565839 -0.0836063 -0.654593 +-0.730218 0.591172 -0.898234 0.986936 0.836221 -0.975197 -0.810416 -0.76165 +0.695011 -0.868217 0.470301 -0.99774 0.692654 -0.0821989 -0.0844141 -0.423707 +0.400773 -0.0689255 0.0364469 0.876054 0.0382845 0.0188337 -0.350705 -0.151997 +-0.720572 0.586418 -0.199424 0.926402 0.615271 0.111343 0.427535 -0.369212 +-0.53713 -0.27109 -0.856338 0.554745 0.123548 0.522981 0.628222 -0.299325 +0.953218 -0.683508 0.684732 0.871014 -0.164698 -0.639858 -0.329335 0.517082 +0.0442618 -0.516209 0.15372 0.669799 0.506915 -0.571725 0.554727 -0.544378 +0.436668 0.928487 0.347232 -0.43956 -0.685853 -0.355098 0.574867 0.577127 +0.403338 0.200018 0.121288 0.0687721 0.395435 0.20708 0.929302 0.133507 +-0.0135593 -0.0567897 0.716383 -0.829264 -0.447934 0.797416 0.113515 0.57257 +-0.469182 -0.69959 -0.886091 -0.48694 -0.328326 0.63613 0.72095 -0.105447 +-0.347547 0.834653 0.326223 -0.232592 0.442301 -0.584429 -0.161556 0.221195 +-0.817152 -0.648083 -0.6338 -0.617803 0.877637 -0.309426 0.986573 -0.761129 +0.0437569 -0.917417 -0.901463 0.187357 0.262695 0.0747365 -0.75528 0.998739 +-0.707196 -0.956231 -0.0671567 0.533672 -0.756212 -0.024034 0.130722 -0.219808 +-0.135062 0.522076 -0.63458 -0.357056 0.770788 -0.60991 -0.279767 -0.308377 +0.559967 -0.91155 -0.649344 -0.202197 0.0450569 0.0936384 0.960643 0.862273 +0.321983 -0.58597 0.817368 -0.983835 -0.369924 -0.712908 -0.806488 -0.481701 +0.185647 -0.00648949 0.966832 0.442513 0.850818 0.018954 0.710457 -0.277024 +-0.972975 0.0417475 -0.652856 -0.418745 0.791432 -0.260435 0.755233 0.586012 +0.982456 -0.0963127 0.297784 0.437391 0.0971326 -0.654282 -0.813028 -0.845197 +-0.923037 -0.141157 -0.419079 -0.135268 0.340604 0.906165 0.440158 0.465527 +0.145523 0.263577 0.71804 -0.89 -0.45117 0.899872 0.53504 -0.94317 +0.524796 0.768644 -0.802586 -0.0936898 -0.749671 -0.0920919 0.749551 -0.626382 +-0.80644 -0.891784 0.31891 -0.120768 0.16823 -0.516945 -0.345036 -0.568261 +0.793169 -0.978639 0.27872 -0.959108 -0.338635 -0.117787 0.152006 -0.855402 +-0.870878 -0.474037 -0.901367 -0.212822 0.443774 0.341581 -0.249137 0.542928 +0.0741436 0.130848 0.354614 -0.265943 -0.668795 0.483405 0.685919 -0.383351 +0.878892 -0.131983 0.560014 -0.424243 0.116246 0.331165 0.533075 0.0968753 +-0.403953 0.380238 -0.242981 0.222949 0.712495 -0.216949 0.932865 -0.0829776 +-0.69437 0.174616 0.783624 -0.576855 0.0601987 -0.0695508 -0.545245 -0.441067 +0.102256 0.980114 0.118383 0.556969 0.344759 -0.240915 0.154121 -0.140074 +-0.799409 -0.444041 0.964764 -0.844537 -0.658997 0.636795 -0.362719 -0.0759832 +-0.0020397 -0.390442 -0.807246 -0.426076 -0.786194 0.712275 -0.016741 -0.435245 +-0.022729 0.975231 -0.591688 0.814654 -0.565707 -0.335615 -0.803594 -0.897355 +0.659914 -0.433625 -0.0638004 -0.799626 0.844321 0.174313 0.484576 -0.518126 +0.0825412 0.995173 -0.030989 -0.577059 0.113051 0.53154 -0.837545 -0.869107 +-0.985299 0.251115 0.392605 -0.0264367 0.411883 0.861677 0.440783 -0.700776 +0.657025 0.228187 0.483658 0.0184127 0.510077 0.640849 -0.429233 0.645621 +-0.212764 0.979465 -0.0700215 0.852905 0.745117 -0.740672 0.592321 0.476026 +-0.0570856 -0.206335 -0.567143 0.251576 0.973209 -0.0473433 -0.550067 0.153031 +0.361088 0.423245 -0.958558 0.243484 0.746056 -0.695582 0.312399 -0.823769 +0.74667 -0.839898 0.870564 -0.55274 0.240814 0.220124 -0.909308 -0.315429 +0.332682 -0.374113 -0.888994 -0.699781 -0.519364 -0.68096 0.0941501 0.500746 +-0.478334 0.642977 0.578055 -0.402882 0.287253 0.26079 -0.545313 -0.790074 +0.279175 0.79182 -0.0225746 0.105242 -0.0304137 -0.668448 0.331735 -0.55909 +-0.0788047 -0.381013 0.292915 0.553269 0.168335 0.213994 -0.51418 -0.391753 +0.265128 0.840426 -0.822027 0.560019 -0.397816 0.177753 -0.0649444 -0.75469 +-0.837923 0.475437 -0.775741 0.111428 0.713371 0.927307 0.824662 0.630516 +-0.554579 -0.34954 0.281128 0.571655 -0.400387 0.541733 -0.439061 0.237519 +-0.737327 0.315332 -0.467477 -0.682537 0.370516 0.319608 0.27339 0.36382 +-0.185508 0.33086 0.676371 -0.701803 -0.254673 -0.900504 -0.50075 0.551068 +0.972067 0.507886 -0.650132 -0.135926 0.306056 -0.256413 0.922394 -0.156155 +0.395757 -0.527971 0.159301 -0.263157 0.587493 -0.478528 -0.621343 -0.289296 +-0.855766 0.494758 -0.146443 0.666901 0.399917 0.204614 -0.929095 0.276574 +0.106647 0.129908 0.801299 -0.469317 0.912648 0.813049 0.709985 0.0299976 +-0.447052 -0.294152 -0.984121 0.826067 -0.758664 0.859195 -0.887033 -0.126497 +-0.525572 0.297714 -0.467697 -0.996458 -0.156444 -0.780756 0.684544 -0.849622 +0.338088 0.0297275 0.176656 -0.107333 0.66221 0.470726 0.425236 0.712842 +0.265663 -0.679335 0.928894 -0.514168 -0.652477 -0.60961 -0.581951 0.475835 +-0.682929 0.850813 -0.828784 0.92308 -0.731889 0.410259 0.900516 -0.224582 +-0.985953 0.171351 -0.259284 -0.358424 -0.427112 0.171932 0.0957721 -0.918852 +0.649038 -0.181069 0.847588 -0.0878832 -0.660489 -0.190686 0.291881 -0.371576 +0.386358 -0.526922 0.0181347 0.132002 0.799416 -0.0414992 0.346399 0.987424 +0.0904239 0.919841 0.472689 -0.299126 -0.30447 0.839527 -0.186602 -0.0457745 +-0.314095 -0.0583921 -0.174376 -0.458928 0.89156 0.318632 0.776904 0.598496 +-0.502987 0.248515 0.776473 0.685687 0.187229 -0.331967 -0.740824 0.192051 +0.453311 0.456026 -0.197498 -0.0530535 -0.811066 0.215611 0.05142 0.827801 +0.668463 -0.816578 -0.630663 -0.947085 -0.560805 -0.55766 0.582363 -0.176172 +-0.571445 -0.931439 -0.00676455 0.994012 0.514398 -0.066941 0.13035 0.614353 +0.499379 -0.203294 0.872702 0.329388 0.347085 -0.684774 0.186549 -0.741651 +-0.496264 0.169345 -0.0523917 0.00680297 0.321116 -0.0408015 0.827076 0.405007 +-0.742955 -0.496809 -0.655286 0.608952 0.941601 -0.400993 0.436962 -0.859172 +-0.343765 0.42654 -0.878849 0.887708 0.136542 0.333953 0.278177 -0.883513 +0.334913 0.549629 0.260482 0.214592 -0.812072 0.806985 -0.672151 0.223634 +0.350486 0.700689 0.264024 -0.0858438 -0.736967 0.910123 -0.0365574 -0.721711 +-0.758495 -0.71386 0.269364 0.654538 -0.127509 0.490754 0.505888 -0.227744 +-0.410972 0.825348 0.556706 0.93449 -0.315437 0.046301 -0.355252 -0.499265 +-0.198761 0.693901 0.0809512 0.598022 0.216152 -0.0557807 0.633541 -0.920389 +-0.105208 0.820162 -0.841928 0.197307 0.775155 0.479185 -0.0129137 -0.920868 +-0.00289153 -0.848301 0.497239 -0.116999 -0.778492 -0.449622 -0.307548 0.707701 +0.643452 0.805278 -0.868296 -0.663651 0.964767 -0.598762 -0.95075 0.814099 +0.702587 0.022535 -0.382656 0.605942 -0.69756 0.38932 -0.194961 -0.371336 +0.725439 -0.73543 0.35924 0.221953 0.502839 0.170354 0.0902493 0.89545 +0.272991 -0.23815 -0.368274 -0.527361 -0.204286 0.144316 -0.55093 0.673088 +-0.221703 -0.277757 0.760379 0.261115 0.122372 -0.785284 -0.302733 0.707354 +-0.83038 0.631834 -0.848415 0.814266 -0.943272 -0.189483 -0.0581163 0.34286 +-0.744309 -0.560878 -0.157826 0.253617 -0.500915 -0.0487691 -0.349202 -0.270705 +-0.360954 -0.664127 0.859286 -0.280102 0.654414 -0.51319 -0.108095 -0.576189 +0.862022 -0.302638 -0.285045 -0.571026 -0.276549 -0.122277 -0.0148892 0.0524154 +-0.781367 -0.0358786 -0.862979 0.796873 0.718916 0.624263 0.492487 -0.412841 +-0.674732 0.44741 0.12108 0.165215 0.308106 0.877464 0.350762 -0.137168 +0.944773 -0.525673 0.539535 0.805693 -0.590677 -0.473832 -0.86767 0.230023 +-0.704677 -0.951173 0.238569 0.247775 -0.738827 -0.339384 -0.993212 -0.114532 +-0.903368 -0.0239983 -0.321369 -0.0601956 -0.808445 0.158124 0.624174 0.421578 +-0.849332 0.27961 -0.472397 -0.994164 -0.765143 -0.987517 -0.349657 -0.401462 +-0.640832 0.244533 -0.27625 0.841018 0.950529 0.621075 0.918131 -0.225662 +0.745814 -0.428672 0.646151 0.0741225 -0.0211338 0.464879 -0.851963 -0.916987 +-0.101954 -0.276708 -0.0872924 -0.49987 0.755351 -0.846396 0.710409 0.334835 +0.24353 -0.213543 -0.857267 0.322163 0.826677 0.459816 -0.569691 0.343797 +-0.498103 -0.0150314 -0.0622409 0.0777802 0.739183 -0.0612893 0.90107 0.211244 +0.783052 -0.32894 -0.61945 0.532135 0.282544 -0.993743 -0.118648 0.971226 +-0.0875874 -0.0864152 0.471729 -0.366368 -0.71376 -0.384434 -0.686004 0.868823 +-0.821418 0.670089 -0.0223627 -0.242403 -0.85078 -0.168284 0.158154 0.652704 +0.519088 -0.176841 -0.778506 0.170754 0.293266 -0.732885 -0.199528 -0.880297 +0.954958 -0.207707 -0.95033 -0.29616 0.381677 -0.835554 0.500021 0.272155 +-0.341774 0.503913 0.328025 0.530894 -0.426435 0.997955 -0.00143635 -0.236397 +0.675025 -0.705682 -0.117268 -0.59063 -0.261205 -0.909041 0.835805 -0.180595 +0.194336 0.217548 -0.0826236 0.322955 0.787922 0.635806 -0.601225 0.849099 +-0.883491 -0.532006 0.819639 0.00105429 0.921199 0.736782 -0.00753231 -0.0718162 +0.637852 -0.892649 0.827382 -0.336917 0.633483 -0.330272 -0.560808 -0.552755 +0.419203 -0.24472 -0.788399 0.827093 0.174324 -0.881508 0.288636 -0.167812 +-0.631573 -0.919389 -0.316457 -0.123103 0.191612 0.679214 -0.650922 -0.0655893 +-0.754231 -0.307079 0.286307 -0.707389 -0.555264 -0.532295 -0.979045 0.174008 +0.0956924 -0.376153 0.215392 0.931178 0.471885 0.350595 0.0816649 0.559682 +0.995234 -0.17001 -0.225094 -0.0199892 -0.476462 -0.620546 0.670361 -0.734298 +0.0618002 0.511107 0.126024 -0.911874 -0.515122 0.199259 -0.153888 -0.14643 +0.55341 0.814418 -0.401288 0.0908439 -0.411111 -0.159649 -0.094307 -0.901488 +0.268385 -0.42747 0.769464 0.743663 0.991108 -0.12387 0.382316 0.100802 +-0.997442 0.38077 -0.821689 0.210547 -0.818763 -0.969185 -0.995689 0.098865 +-0.941008 0.0415596 0.209826 -0.562129 0.737192 0.801041 -0.233382 -0.832159 +-0.756248 -0.713343 -0.845329 0.45093 0.980933 0.182862 -0.542358 -0.286078 +-0.0376019 0.958241 -0.304717 0.746084 0.433264 0.442267 0.404 0.54026 +-0.0714448 -0.714976 -0.96135 -0.222457 0.694713 0.740249 0.196941 -0.677119 +0.0420683 0.252027 -0.162027 -0.651752 0.0830012 0.664514 -0.73259 0.71592 +-0.820265 0.360586 -0.734685 0.140403 -0.956773 -0.189421 0.939188 0.210828 +-0.58817 -0.0206047 0.971823 -0.634373 -0.623086 -0.539548 0.606546 0.944775 +-0.981771 -0.846209 0.0250994 -0.294033 0.913781 0.234707 0.943602 -0.823085 +0.71755 0.25391 -0.265289 -0.186836 -0.0160964 0.733051 0.0945265 0.0544957 +-0.189257 0.291791 0.213208 0.276115 0.526883 -0.497135 -0.23261 0.357334 +-0.834497 -0.516587 -0.701262 0.758542 0.604283 -0.898403 0.483098 -0.725842 +0.286748 0.923059 -0.878815 -0.566687 0.109317 -0.454299 0.993513 -0.613102 +0.0633329 0.335537 -0.488599 0.458213 -0.876552 -0.594897 -0.805268 -0.113543 +-0.806828 0.252615 0.939087 0.9549 -0.468198 0.339006 -0.27214 -0.73677 +0.377358 0.7833 0.00540191 0.500714 -0.32138 0.0955231 0.911839 -0.86314 +-0.52298 -0.419656 0.48054 -0.568488 0.84489 0.700685 -0.935709 -0.649709 +0.779817 0.0622625 -0.70091 -0.299574 0.714823 -0.319211 0.0138431 0.534249 +-0.0930375 -0.928566 -0.501586 0.88442 -0.313336 0.0877296 -0.388998 -0.656063 +0.918037 0.965761 -0.526943 0.72899 -0.187046 0.569136 0.641175 -0.881373 +-0.868506 0.708643 -0.845511 0.0423333 -0.653447 0.104797 -0.971814 -0.0592641 +0.113582 0.0982362 0.296222 0.844357 0.618947 -0.76513 -0.357092 -0.226115 +-0.892713 -0.107977 0.780329 -0.117651 0.70063 0.113163 -0.881551 0.124592 +0.679055 -0.253271 -0.389185 0.273218 -0.168828 0.984187 -0.53537 -0.366435 +0.178635 0.0965333 -0.809133 -0.646821 0.598732 -0.690665 -0.12513 0.00995571 +0.596674 -0.0551118 -0.849999 -0.202192 0.720032 0.71466 0.433842 0.330282 +-0.360911 -0.0179244 0.617987 0.206179 0.439985 0.941844 0.260142 0.958835 +-0.130109 -0.608319 -0.407372 0.258944 -0.546059 -0.149142 -0.414605 -0.930047 +0.246275 -0.307401 0.885364 0.931141 0.850374 -0.507991 0.993946 0.860865 +-0.00735639 -0.376057 -0.141489 -0.0791886 -0.94232 0.262036 -0.332814 0.864286 +-0.623501 -0.108497 -0.915583 -0.197976 -0.0446641 -0.98592 0.0157384 -0.285527 +0.0800298 -0.211889 0.183531 -0.0259725 -0.140507 0.331835 -0.441566 -0.0824537 +0.349123 0.101694 0.648666 0.423303 0.0503596 -0.634703 -0.758321 0.878317 +0.968075 -0.888882 -0.885247 0.239309 -0.430522 -0.557886 0.981217 -0.861691 +-0.25365 -0.251681 0.41785 0.255933 0.790183 -0.082351 -0.145108 -0.714586 +0.325073 0.906998 -0.146159 -0.832511 0.191264 -0.742264 0.342077 -0.0963672 +0.475946 0.68986 0.0607583 -0.617167 -0.866828 -0.35384 0.658142 0.6789 +0.998507 -0.322951 0.907556 -0.574775 0.905785 -0.941915 -0.971645 -0.716665 +-0.669851 0.267652 0.273679 -0.0975457 0.235855 0.946079 0.683143 -0.732098 +0.48798 0.528768 0.166133 -0.59308 -0.569879 -0.573397 0.260883 0.32438 +-0.511057 -0.640244 -0.492433 -0.573725 -0.0806553 0.124341 -0.277098 -0.638164 +-0.747998 -0.484261 -0.849188 0.115952 0.180504 -0.667777 -0.969912 0.0727628 +0.963349 0.761828 -0.745403 -0.43181 -0.487012 0.827165 -0.646577 -0.160079 +-0.764275 0.907474 0.329591 0.159052 0.290096 0.163844 -0.327156 0.387687 +0.615459 0.56839 0.487407 0.917093 0.0743702 -0.484865 0.461471 0.917078 +-0.708641 0.835115 -0.372658 0.254261 -0.423061 0.268536 0.485171 -0.664508 +-0.660714 0.978831 0.241741 -0.737719 -0.0879775 -0.0736933 0.328497 0.62788 +0.365053 0.219433 -0.973205 -0.354778 -0.325695 0.831896 0.639059 -0.630742 +0.784274 -0.6332 -0.133621 -0.568539 0.423926 0.530975 0.772903 0.969602 +0.689438 -0.272964 0.691828 -0.127472 0.157738 0.113051 -0.589811 -0.750684 +0.381831 -0.0884335 0.0316414 -0.230055 -0.0134921 -0.284282 0.59055 0.749157 +0.403634 0.829692 0.245198 0.247367 0.887491 -0.314775 -0.00336517 0.915281 +0.407755 -0.141263 0.0458666 0.710067 0.413619 -0.754431 0.411961 -0.326802 +0.501326 -0.222584 0.20897 0.731039 -0.225906 -0.81537 -0.225643 -0.624335 +-0.331887 0.360021 0.629249 0.011293 0.294649 0.993715 0.913614 0.512187 +-0.966964 0.413302 -0.228988 0.600816 0.949428 0.491869 -0.135294 -0.61582 +-0.743862 -0.671765 0.630707 0.465107 0.898169 -0.693695 0.777233 -0.095741 +-0.603113 0.402744 -0.806204 0.347373 0.310882 -0.43267 -0.26291 -0.542884 +-0.247632 0.294954 0.781344 -0.356017 -0.900273 -0.382095 -0.562438 0.941904 +0.0925794 -0.160435 0.378564 -0.893988 -0.965652 -0.222735 0.000143474 0.226441 +-0.611725 0.338148 -0.239605 0.609967 -0.259542 -0.454734 -0.639997 0.346785 +-0.710872 0.728833 0.27258 0.950759 -0.797826 -0.301731 -0.101216 0.425688 +0.374105 0.587368 0.659061 0.353339 -0.499129 -0.97268 0.25812 -0.210001 +0.364602 0.345639 -0.229452 -0.515252 -0.0821484 -0.349889 0.391311 0.880473 +-0.392072 0.27623 -0.0272775 0.681752 -0.313177 0.335266 -0.141426 -0.102619 +0.290725 -0.989626 0.071846 -0.233169 0.569509 -0.739351 -0.389236 -0.671164 +-0.846608 0.266524 0.966217 0.151338 -0.895552 -0.437395 -0.700916 0.224747 +0.868884 -0.113134 -0.0122065 -0.117899 0.423913 0.232129 -0.351079 0.470261 +0.283962 -0.17001 0.0315349 0.256011 -0.639937 -0.37519 0.305536 0.614595 +0.199122 -0.216066 0.00690402 0.900753 -0.439018 -0.368711 0.624255 0.1382 +-0.0846128 0.0448389 -0.792859 -0.683196 -0.111982 0.4918 -0.773415 -0.637275 +-0.69179 0.922291 0.514366 -0.359919 0.919197 -0.212761 -0.0490307 0.159089 +-0.592126 0.913464 0.373748 0.686366 -0.0837567 0.582358 0.542379 -0.710981 +0.776816 -0.0300756 0.593407 0.385193 -0.18663 -0.101923 -0.448378 0.79683 +0.876291 0.682979 0.00792547 0.590353 0.0662863 0.827135 0.36273 0.703052 +0.619674 -0.738234 0.117859 0.897781 -0.763085 -0.59241 -0.300285 0.763047 +0.151579 0.447337 0.13128 -0.542545 -0.548617 -0.968609 -0.345168 -0.261123 +-0.412593 0.649262 -0.0421784 -0.970225 0.274411 -0.692277 0.692538 0.718578 +0.323079 0.506911 0.97922 0.658567 -0.37656 0.274636 -0.327808 -0.163211 +-0.198701 0.898417 -0.686527 -0.455088 0.294022 -0.627006 -0.36186 -0.913923 +0.424909 -0.0379385 -0.965039 -0.977996 -0.0997874 0.328052 -0.014271 0.736479 +0.787764 0.777855 -0.477795 0.749913 0.740409 0.194397 -0.514953 -0.0555138 +0.555525 0.927322 0.194017 -0.622111 0.399491 0.846684 -0.602196 -0.51277 +0.114974 0.128285 -0.391519 0.684282 0.656746 -0.072509 0.86117 0.191379 +-0.141111 0.417114 0.427917 -0.0169738 0.581725 -0.173114 0.205534 0.831369 +-0.667783 0.920361 -0.164443 -0.699943 0.328983 0.178066 0.324884 0.483594 +0.290897 0.590753 0.800007 -0.406528 0.0108895 -0.481459 0.762413 -0.87964 +-0.0374459 0.455109 0.583535 -0.407589 -0.641308 0.743001 -0.0543311 0.931398 +0.105705 -0.808965 0.622163 0.119456 -0.0576327 0.86564 -0.485867 0.536879 +-0.853874 0.378509 0.543008 -0.199228 -0.214181 -0.837815 -0.321409 -0.353931 +-0.722147 -0.252559 0.152847 -0.275855 -0.811723 -0.416028 -0.459245 -0.793537 +0.193833 0.423986 -0.281668 -0.529538 -0.414685 0.195773 0.530865 0.663184 +-0.658142 0.916743 0.103524 0.893851 0.248385 -0.863959 -0.493926 0.600878 +0.652699 0.372216 0.90989 -0.859484 0.459355 -0.664908 -0.943507 -0.264866 +0.267349 0.263592 0.942405 -0.160659 -0.690987 -0.137588 -0.126636 -0.763782 +0.420644 0.414345 0.270858 -0.751345 0.522227 0.75386 0.24366 0.713402 +0.920577 -0.37329 -0.673177 0.519007 -0.0448376 -0.801103 -0.132771 0.87576 +0.572886 0.965373 0.720584 0.0116552 0.157656 0.567011 0.0979474 0.858477 +-0.191483 0.0111142 -0.0405819 0.439271 -0.00114045 0.138384 0.952113 0.238512 +-0.878561 0.766138 -0.829573 -0.813322 0.69347 -0.384524 0.0914315 0.470025 +0.615343 -0.770406 -0.0247067 0.602883 -0.608007 0.42336 0.501264 -0.714984 +-0.890308 0.412663 0.482641 0.217433 -0.593223 0.0251279 -0.830907 -0.538826 +0.284212 -0.740456 -0.250777 0.610698 -0.43747 -0.931171 0.726396 0.511639 +-0.975656 0.393448 -0.900851 -0.685102 0.952177 -0.523442 -0.115032 -0.583663 +0.743824 -0.520495 -0.680266 0.807349 0.83317 0.114616 -0.513738 -0.73344 +0.229743 0.930853 -0.689057 0.94333 0.378999 0.404477 -0.678043 -0.515842 +-0.200405 0.333877 -0.20619 -0.110618 -0.27048 0.971163 -0.0294844 0.241777 +0.711951 -0.664789 -0.668293 0.561827 -0.868251 -0.296878 0.606881 -0.998199 +-0.792886 0.066126 0.941762 0.205742 0.343292 -0.43991 0.159765 0.302223 +0.123834 -0.246352 0.688239 -0.800765 -0.632175 0.753347 -0.263937 0.245751 +-0.85339 -0.543006 -0.813026 -0.213682 -0.299409 0.880484 -0.0594784 -0.115971 +0.0247822 -0.986925 0.532953 0.910922 -0.445822 0.0334869 0.920333 0.882088 +0.42718 0.658115 0.369245 0.895163 -0.824924 0.175481 0.472521 0.0824934 +0.379481 0.345051 0.849693 0.504958 -0.189682 -0.943164 -0.703458 0.444428 +0.861471 0.244628 -0.243541 -0.792561 0.245301 -0.295087 -0.0212582 -0.378426 +0.979916 0.414535 0.659639 -0.387006 -0.417387 0.478365 -0.332829 0.777529 +0.616686 -0.37674 0.121101 -0.108845 -0.950854 -0.836815 -0.395289 0.65502 +0.991669 -0.274754 -0.136351 -0.728001 -0.876925 -0.37137 0.175147 0.723281 +0.832188 0.924674 -0.596478 -0.869862 0.881561 0.741873 0.651392 0.51925 +-0.427572 0.00906724 -0.558908 -0.589578 -0.338921 0.830095 0.26632 -0.740495 +-0.446695 -0.0702259 0.997073 -0.701311 0.899308 -0.129431 -0.567768 0.941529 +-0.790527 -0.672531 0.392716 -0.203615 0.850462 0.299535 -0.0747023 0.418255 +-0.59688 0.0231533 -0.0109927 -0.240299 -0.222859 -0.547847 0.478953 -0.604809 +0.239525 -0.867907 0.398413 0.367716 0.275771 -0.885413 -0.393816 0.143464 +0.930022 -0.675525 -0.0909771 0.0710653 0.0960455 -0.0694187 -0.052106 -0.591057 +-0.0231766 -0.864838 0.6411 0.344139 -0.201789 -0.262545 -0.557 -0.345325 +0.59342 0.152716 0.434344 0.89218 0.0986881 -0.780129 -0.868729 0.625606 +0.00818566 -0.488817 0.741293 0.42078 -0.263251 -0.840337 0.500478 0.142849 +0.660305 -0.480487 0.25653 0.165858 0.547334 0.211187 0.169976 -0.708666 +-0.272326 -0.863905 -0.978446 -0.0991408 -0.369753 -0.438594 0.823899 0.309049 +-0.0849499 -0.837982 0.539864 0.643419 0.0885973 -0.486783 -0.978469 -0.0165461 +0.317965 0.782542 0.0914338 0.31265 -0.129641 0.688271 -0.86896 0.731073 +-0.66639 0.95396 -0.25294 -0.661787 -0.119636 0.0576572 0.51083 0.823934 +-0.0862847 -0.831097 0.622062 0.480839 -0.837853 0.0321093 -0.203866 -0.459344 +-0.515805 -0.922669 -0.835204 0.444568 -0.0733216 0.794002 -0.323481 -0.0936258 +0.133534 -0.166693 -0.190366 -0.678033 -0.468401 -0.531849 0.564241 -0.122906 +0.881661 0.044731 -0.478211 -0.380869 0.890735 -0.860411 -0.794993 -0.194394 +0.0201941 0.732144 0.553071 0.766648 0.523756 0.952517 -0.0856112 0.143381 +0.198553 -0.0327278 -0.945738 -0.756521 0.331658 0.0809548 -0.89392 -0.885436 +0.647726 -0.516117 0.553898 -0.271229 -0.407122 0.199254 -0.509396 -0.33208 +-0.899161 -0.0597467 -0.74211 0.91456 -0.551628 0.525144 -0.374348 -0.978749 +0.964722 0.0358027 0.187102 0.0683323 -0.937071 -0.705447 -0.804941 -0.50421 +-0.151172 -0.337901 -0.96729 -0.915654 -0.465939 0.256953 -0.290618 -0.225787 +0.152924 -0.820449 -0.064029 -0.270565 0.972987 -0.346386 0.780181 0.517794 +-0.45025 0.613471 0.608074 0.891807 0.250031 0.525261 0.945701 -0.803949 +0.458817 -0.133452 0.499495 -0.693867 -0.122164 -0.121782 0.756054 0.59001 +0.729794 0.12912 0.579871 0.808181 -0.937923 0.752947 -0.888688 -0.0572164 +-0.0213048 0.234291 0.0756045 0.146937 -0.806819 0.376335 -0.927768 0.51411 +-0.442081 -0.491403 -0.756449 0.633985 0.353856 -0.211605 0.46728 0.684738 +-0.587787 -0.648858 0.867078 0.727426 -0.380667 -0.171875 -0.793082 -0.719459 +-0.379344 -0.0453489 0.300836 0.00645384 0.921641 0.0624578 0.279266 -0.817832 +-0.93532 0.3827 0.999977 -0.455193 0.180612 0.674355 0.785228 -0.880989 +0.276895 -0.0498514 -0.743932 -0.94604 0.0460987 0.556896 0.580312 0.476311 +-0.815368 -0.757894 0.00689569 0.26726 -0.825702 -0.40052 0.986792 0.679104 +0.0618043 0.122066 0.988848 0.128116 -0.0267133 -0.974641 0.877536 0.119517 +-0.623966 -0.782174 -0.220243 0.00570844 0.123463 0.473008 -0.721568 0.573985 +0.629938 -0.191704 0.044033 0.189455 -0.319255 -0.399956 0.903219 0.784092 +0.971801 0.41164 -0.128211 -0.885582 -0.23368 0.55743 0.759247 0.960679 +-0.709077 0.867762 0.65299 -0.928537 0.377655 0.912603 0.975816 0.161785 +-0.357524 -0.548823 0.938905 0.203863 0.34696 0.670413 -0.19962 -0.789242 +-0.702756 -0.153727 -0.821328 0.0472297 0.378057 0.248361 -0.277278 -0.913699 +0.541585 -0.172727 0.764302 -0.861468 0.20947 0.812251 -0.728814 0.257396 +0.682423 -0.192835 -0.167988 -0.833954 0.706607 -0.0935099 -0.98626 0.951032 +0.549769 0.872987 -0.793829 -0.293233 -0.515632 0.472482 0.529231 -0.218298 +0.00249768 -0.508924 -0.630586 -0.159767 0.826932 -0.525461 0.430755 -0.881606 +0.338152 0.362913 0.731648 -0.154969 -0.293888 0.714924 0.679079 0.705427 +-0.360239 -0.546798 0.972064 -0.585367 -0.753076 0.282928 -0.0254499 -0.904648 +-0.977429 0.0421894 -0.769564 -0.180918 -0.516198 0.660201 0.537819 0.724147 +-0.374937 0.75315 0.360724 0.501295 -0.344399 0.108865 -0.685019 -0.362472 +0.902537 -0.844042 -0.902645 0.0327107 0.746802 -0.896137 0.89488 -0.38186 +0.00799492 -0.0255363 -0.158411 0.865279 0.562249 -0.786371 -0.990776 -0.98752 +-0.0287431 0.626907 -0.827029 -0.046212 -0.021303 -0.339383 -0.495085 0.112493 +-0.593129 0.0889764 0.793592 0.190739 0.697384 0.29409 -0.739642 0.574616 +0.533346 -0.79939 -0.0947867 -0.758435 -0.252366 0.420454 0.0992783 -0.90679 +0.791362 0.108924 -0.852472 -0.410327 0.89312 0.37903 -0.910593 -0.979168 +0.822607 0.113178 -0.780245 -0.0861847 0.203481 -0.960967 0.794187 0.499256 +0.0157146 -0.854559 0.959378 -0.752122 -0.431942 -0.914425 -0.100344 -0.703418 +0.639176 -0.492071 0.630305 0.0156427 0.391215 -0.231858 -0.99141 0.709872 +0.715364 -0.0279243 -0.809327 -0.64058 -0.760974 0.823927 -0.350474 -0.900163 +-0.343778 0.790012 0.302519 0.845171 0.470429 -0.74919 0.106579 -0.198452 +0.345597 0.678188 -0.249415 -0.0986324 0.31822 -0.682419 -0.0894058 -0.159801 +-0.927773 -0.0583743 0.707291 -0.407067 0.189784 -0.358025 0.483922 -0.67485 +-0.858836 0.784199 -0.757571 -0.172145 0.594192 0.934726 -0.783253 -0.547583 +-0.422483 0.0463805 -0.91506 0.477381 0.639314 -0.505029 0.614802 0.718891 +-0.137746 -0.276347 0.421175 0.675612 0.922327 0.81178 -0.0665909 -0.47881 +0.651853 -0.528218 0.225201 -0.74441 0.25099 -0.114694 -0.255129 -0.177056 +-0.80798 0.782718 0.422031 0.86857 0.938546 0.0929628 0.834163 -0.317626 +-0.408741 -0.945791 0.84471 -0.612027 0.810331 0.894789 0.13357 0.359048 +0.293323 -0.980481 0.937842 0.0598322 -0.840713 -0.957666 -0.407442 -0.993255 +0.60878 -0.904276 0.976301 -0.911836 -0.37507 0.926083 -0.552848 0.588328 +-0.895595 -0.458053 -0.915578 -0.364804 -0.873578 0.346265 -0.864188 0.271065 +0.554131 0.887265 0.968452 0.499216 0.446189 -0.885185 -0.267792 -0.0813319 +-0.973781 -0.917278 -0.922124 0.755966 -0.560364 -0.152761 0.73279 0.214736 +-0.0959491 0.355175 -0.305867 0.493368 0.689713 -0.68866 -0.974056 0.853615 +0.872727 0.0279295 0.91701 -0.503722 0.810464 -0.596978 -0.457862 0.233401 +0.862179 0.110614 -0.962337 -0.0959645 0.727667 -0.486606 -0.618321 0.226816 +-0.0372636 -0.341771 0.449044 0.505915 0.887379 0.537463 -0.390808 -0.676399 +0.877213 0.328224 0.826247 -0.383743 0.770792 0.357184 -0.224052 -0.357501 +-0.774513 0.651501 -0.584021 0.748626 0.276732 0.277809 0.399628 0.290414 +-0.11288 0.492465 0.854089 -0.387016 0.553205 0.286692 0.386178 0.434708 +-0.271317 0.825526 -0.0900205 -0.606965 -0.550913 -0.374639 -0.828632 0.901892 +-0.215649 0.716365 -0.591051 -0.682146 0.0558905 0.946952 0.43916 0.315786 +-0.421451 -0.237249 0.605612 0.0499465 0.969081 -0.495375 -0.522025 0.997612 +-0.932361 -0.660013 0.757458 -0.322021 -0.897498 -0.727323 -0.0540161 0.905532 +-0.145957 0.102737 -0.835887 0.503569 -0.912842 0.95257 -0.426563 -0.938148 +-0.647317 0.995824 0.723835 -0.716276 -0.207958 0.263358 0.82976 -0.714866 +0.0152628 -0.0180885 0.89722 -0.0578 -0.231579 -0.833811 0.373745 -0.0693651 +-0.512399 -0.690217 0.941337 -0.366201 -0.537408 0.416734 -0.613837 0.8855 +0.672429 0.880776 -0.792689 -0.204073 -0.906482 0.922812 0.104828 0.460221 +0.619748 0.769417 -0.873343 0.664736 -0.0494597 -0.249347 0.900202 -0.458901 +0.659488 0.192534 0.163689 0.0586922 -0.902261 -0.172069 -0.82588 -0.149118 +0.077176 0.308493 -0.106334 0.993873 0.520081 0.376014 -0.788564 -0.533899 +0.130135 0.74021 -0.528029 0.223747 -0.737436 0.579668 -0.788358 -0.130166 +0.501493 -0.74121 -0.0851298 -0.308201 0.0299741 -0.242361 -0.330355 0.452635 +0.745454 0.335935 -0.199234 -0.433497 0.112833 0.752673 -0.119819 -0.986114 +0.919548 0.578935 0.542923 -0.10352 -0.766806 -0.978232 -0.34755 0.788593 +0.62738 0.0990158 -0.166868 0.194295 0.351127 0.814015 0.676045 -0.356309 +0.510406 -0.419944 0.523977 0.392391 -0.334614 -0.344021 0.266684 -0.142563 +-0.758684 0.211365 -0.605222 -0.592752 -0.677406 -0.661907 0.188426 -0.851318 +0.260054 -0.933099 -0.112497 -0.71334 0.617495 0.233812 -0.810667 -0.0764758 +0.20642 0.395384 -0.24246 -0.983552 -0.634481 -0.0824766 0.0806025 0.532388 +0.0280422 0.365149 0.167271 -0.0171417 0.274566 -0.822412 -0.0184639 -0.853725 +0.412007 0.18347 -0.0791277 0.391852 -0.276179 -0.0103696 -0.100715 0.698667 +0.511202 0.427406 0.72993 0.127507 0.361402 -0.952601 0.18617 0.221879 +0.209074 -0.49027 -0.199655 0.328483 0.638837 0.220071 0.567806 -0.955906 +-0.116366 0.8109 -0.303113 -0.839278 0.853005 -0.121356 0.588508 0.365637 +0.058076 -0.980878 0.35331 -0.15642 -0.2379 0.229284 0.541109 -0.186901 +-0.787957 0.934787 0.706604 0.532961 -0.256714 0.309883 0.396585 -0.261672 +0.355373 -0.179306 -0.411972 0.368987 -0.917634 0.948915 -0.584951 -0.829728 +0.637541 -0.173326 0.210325 0.607454 0.572296 0.841261 0.0494415 -0.0763956 +-0.591643 -0.444647 -0.504743 0.434822 0.849002 -0.211766 -0.0788843 0.989326 +-0.337477 0.385435 0.445913 0.309361 0.918501 0.6652 0.944211 0.0257118 +-0.23916 -0.451166 -0.609886 -0.0659227 -0.0375864 0.737618 0.367575 -0.820003 +0.496646 -0.576896 0.767511 -0.689981 0.705403 0.712963 -0.0780863 -0.333201 +0.608137 0.487054 0.100392 0.300656 -0.84303 0.719292 -0.982492 0.980654 +-0.818826 -0.0389666 -0.476579 -0.184201 -0.632971 0.420708 0.0329246 0.56942 +-0.865627 -0.239283 0.872223 0.986551 0.974816 0.729962 -0.204364 0.942937 +-0.686741 0.234766 -0.0289711 0.32923 0.0281623 0.651585 0.505194 0.278144 +-0.869217 0.942754 0.656311 -0.884832 -0.755165 0.722221 -0.555994 0.181614 +-0.794462 0.96172 -0.444081 0.497709 -0.576258 -0.507055 -0.960692 0.897876 +-0.189972 0.47366 -0.620641 0.831582 0.908929 0.399992 -0.620239 0.866167 +0.166999 0.57064 0.386637 0.293375 -0.235856 -0.925089 0.908138 -0.459595 +0.84173 0.361143 0.277008 -0.699575 -0.328956 -0.949933 0.587514 0.0271074 +0.892804 -0.805868 -0.971652 -0.0706002 0.780361 -0.427233 0.569584 0.921465 +-0.701738 0.553394 -0.434867 0.950728 -0.602964 -0.231112 0.142276 0.436999 +-0.921229 0.963686 0.0121928 0.478565 -0.903602 -0.797991 0.763195 -0.551912 +-0.119594 -0.366926 0.991877 -0.533825 0.79025 -0.26983 -0.843712 -0.633321 +0.514414 -0.731802 0.388953 0.695488 0.281179 0.0614743 0.854952 -0.639278 +0.653624 -0.93081 -0.703172 -0.952874 0.467182 0.439103 0.664818 -0.870386 +-0.461089 0.681186 -0.837432 -0.551937 -0.915217 0.724061 -0.980872 0.949939 +-0.412469 0.18445 -0.63193 0.467245 0.110388 -0.871162 0.407215 -0.554955 +0.604099 -0.592378 -0.503853 0.199651 0.215938 -0.0685861 0.936613 -0.34603 +-0.916616 0.105062 -0.113299 -0.849665 -0.153681 -0.24699 -0.0431739 -0.99078 +0.688881 0.0168708 -0.273708 0.559642 0.202772 0.0186263 -0.825888 0.175398 +0.327059 -0.781869 -0.179969 0.923801 -0.601341 -0.908216 -0.18981 -0.337681 +0.450217 -0.940719 -0.374239 0.707066 -0.946993 -0.568042 0.457238 0.25565 +-0.134222 -0.426903 0.13369 0.124935 -0.867752 -0.958096 0.40148 0.590237 +0.511295 0.322837 0.0731732 -0.380006 -0.11069 0.774001 0.174249 0.168671 +0.589268 -0.657451 -0.866506 0.261098 -0.413224 0.673675 0.0814509 -0.470938 +-0.868213 0.604029 0.744615 0.599093 0.0384209 0.125244 -0.685501 -0.0630482 +-0.0304775 -0.108923 -0.429019 0.196518 -0.859279 -0.794601 -0.911809 0.163866 +0.644154 -0.562387 -0.790462 -0.595303 -0.553399 0.697125 -0.725724 0.469391 +-0.152077 0.741402 -0.0546205 -0.932208 0.840667 -0.293023 0.588662 0.606879 +-0.252727 -0.93542 -0.92383 0.692652 -0.59087 -0.454228 0.880038 -0.520625 +-0.0330253 0.327793 -0.175133 0.5013 0.542762 0.878107 -0.445413 0.198224 +-0.174487 -0.549524 0.037043 -0.673611 0.818549 -0.520281 0.624963 0.846791 +0.567396 0.336605 -0.0631226 -0.0271266 0.564415 -0.813487 0.149925 -0.935113 +0.379675 0.431089 -0.880337 -0.09441 0.950797 -0.375657 0.774873 0.339918 +-0.892763 0.876422 0.618538 0.134364 0.931439 0.959874 0.760375 0.12029 +-0.632104 0.593841 0.772795 0.516281 0.634152 0.974791 0.823063 -0.166161 +0.315663 0.768764 0.433545 0.311113 -0.324854 0.957896 -0.490663 -0.737455 +-0.304496 0.733789 0.793955 0.411901 -0.498453 0.293996 0.420119 0.422718 +0.670829 0.773441 0.696162 -0.513205 -0.202708 0.427208 -0.0306869 -0.841357 +0.920577 0.765176 -0.853106 0.370126 -0.989349 -0.546866 -0.575291 0.287968 +-0.757095 0.192672 0.814395 -0.453257 0.604847 -0.876354 0.367886 -0.0151331 +0.235559 0.875296 0.477356 -0.218342 0.26972 -0.808785 -0.682001 -0.647294 +-0.752228 -0.524457 -0.84528 -0.548262 0.0279057 0.746114 0.170418 0.0449894 +-0.392635 -0.597178 -0.939452 0.46004 0.422517 0.0810758 -0.850889 0.449146 +-0.409177 0.415453 -0.54126 -0.0305021 -0.31647 -0.0866191 0.224091 -0.719058 +-0.810073 0.187324 -0.832119 -0.189144 -0.830587 0.593345 0.770149 -0.330896 +-0.535108 0.273231 -0.0951172 -0.928801 0.389627 -0.232366 0.882369 -0.853362 +-0.497017 0.601427 -0.554973 0.608969 -0.781784 -0.180138 -0.0446734 0.149021 +0.454688 0.633539 -0.0790617 0.388466 -0.616397 -0.863969 0.410837 -0.680489 +-0.148318 -0.339283 0.163559 -0.0209041 -0.300157 0.430034 0.940282 0.602268 +-0.518671 0.275683 0.698899 -0.575999 -0.502948 0.182458 0.48962 -0.440142 +-0.617709 0.936434 -0.936071 -0.0633253 0.570726 -0.408753 -0.0703058 -0.0714649 +0.101372 -0.546566 -0.671765 0.986878 0.638177 -0.452032 0.639692 -0.769896 +0.174799 -0.0577958 0.322054 0.658358 -0.709421 -0.945225 -0.735239 -0.513385 +-0.109145 -0.227472 0.751624 -0.315295 -0.66989 -0.748413 -0.539431 0.72071 +0.966609 -0.432091 0.292787 0.91216 0.361899 -0.884765 0.110524 -0.243311 +-0.839594 0.737413 -0.020524 -0.577383 0.274459 -0.641296 0.294426 0.266055 +-0.0777944 -0.12732 0.519281 0.0816115 -0.238187 0.645786 -0.319999 0.885084 +-0.783431 0.243143 -0.78833 0.320227 -0.601606 0.430834 0.191957 0.204063 +-0.938407 0.98457 -0.306877 -0.546397 0.974052 0.331455 0.972354 0.943355 +0.586176 -0.828675 -0.323056 0.160293 -0.920361 -0.0660152 0.622205 0.641198 +0.872164 -0.338022 -0.143586 0.745673 -0.27235 -0.942767 -0.846036 -0.658522 +-0.347873 0.14824 -0.827163 0.0277554 0.215965 0.462571 0.150729 -0.719356 +0.710976 -0.0125055 -0.661091 0.0458706 0.279894 -0.452641 -0.805444 -0.949556 +0.303348 0.904368 0.50278 0.0118716 0.574233 -0.482165 -0.328897 0.85348 +0.494556 0.750216 0.279848 0.79234 0.299291 -0.332139 0.402305 -0.708261 +-0.185838 -0.168782 0.512185 0.411594 -0.182905 0.855864 -0.650474 -0.0487407 +0.274737 0.00184485 0.119464 0.0808393 0.455276 0.328098 0.790185 0.771224 +-0.750247 0.991348 0.575928 0.392401 -0.419237 -0.791278 0.7272 -0.662481 +0.518297 0.866057 -0.0971389 -0.656726 -0.00456969 -0.530444 0.74639 0.545359 +-0.913198 0.168062 0.44004 0.47359 -0.893752 -0.632574 0.0189093 -0.285474 +0.121985 -0.0851743 -0.358886 0.443117 0.232953 0.383373 0.428068 0.330468 +-0.952961 -0.689825 0.902817 0.988628 -0.242252 -0.0696776 0.403773 0.610098 +-0.558115 0.0430609 -0.152619 -0.856945 -0.743948 -0.964333 0.0213278 -0.350069 +0.951536 -0.715168 0.908198 0.0755313 -0.302643 -0.0346488 -0.932556 -0.953335 +0.716817 0.169996 0.446301 -0.890338 -0.650838 0.288421 0.0217752 0.827143 +-0.423832 -0.319625 0.57522 0.492049 -0.954419 0.0321517 -0.571249 -0.428418 +-0.929349 -0.147587 -0.777471 -0.105646 -0.233346 0.448064 -0.637381 -0.24875 +-0.505605 0.705017 -0.0959733 -0.750152 -0.9875 0.237013 0.611796 -0.0658917 +-0.754473 0.975777 -0.311153 0.811346 0.816528 0.479834 -0.417514 -0.0501505 +-0.336015 -0.436469 0.246355 -0.860231 -0.795712 0.132214 0.220806 0.224177 +-0.464325 -0.807899 0.226076 0.463425 0.277786 -0.0949832 -0.628236 0.685393 +-0.610457 -0.830874 0.0182248 0.487999 -0.434955 0.417479 0.662097 -0.590251 +-0.868883 0.28932 -0.52939 0.583749 -0.853499 -0.446555 0.640106 -0.312221 +-0.571267 0.499154 0.449614 0.395598 -0.0409316 -0.914739 0.419068 -0.0674042 +-0.411804 0.270978 0.264104 -0.324432 -0.519737 -0.662117 0.763018 -0.222477 +0.524455 -0.560286 -0.562702 0.292157 -0.533457 0.584337 -0.508795 -0.929743 +-0.762652 -0.971874 0.802773 0.791144 0.00753262 0.766991 0.540942 0.622855 +0.18138 -0.690126 0.60004 -0.94918 -0.190943 0.163418 -0.196051 0.122354 +-0.85054 -0.616725 0.0901593 0.598235 0.122568 0.877437 0.273597 -0.357027 +0.431568 -0.892009 0.840537 0.741927 0.580244 -0.352159 -0.57254 -0.727205 +0.0600962 -0.0731579 0.564756 0.229222 0.713273 -0.771259 0.114384 0.0744715 +0.816392 -0.98539 -0.640545 0.681416 0.601987 -0.169311 0.835319 0.545517 +-0.638803 0.904986 -0.985946 0.0495214 0.808597 0.192554 -0.00420704 0.350903 +0.353323 0.639512 -0.423534 0.765067 0.76902 -0.433274 -0.486244 -0.889671 +-0.398864 0.353809 0.317748 -0.151293 0.721683 -0.462832 -0.144684 0.394665 +0.498871 0.226772 -0.696744 -0.708177 0.688459 0.938859 0.249073 -0.349694 +-0.543234 -0.775247 0.450643 -0.847143 -0.239568 -0.226471 0.160416 -0.915136 +-0.311468 -0.136463 -0.072374 -0.231853 -0.706321 -0.342557 -0.856242 -0.523405 +-0.0887504 0.878851 0.357334 -0.20889 0.6194 0.623697 0.682307 -0.643001 +0.786759 0.497659 0.523058 0.352989 -0.377757 -0.568991 0.575593 0.248978 +-0.44774 -0.526464 0.137441 0.0368045 -0.138769 -0.719269 -0.636638 0.205365 +0.754234 0.290974 0.118056 0.926953 0.340107 0.647463 -0.165792 0.524386 +0.862808 -0.808229 0.986318 -0.333334 0.938955 0.504754 -0.948564 -0.627975 +-0.737627 -0.850771 -0.872538 -0.337812 0.281918 -0.121811 -0.0542474 0.247375 +-0.306369 0.127887 0.728652 0.0133278 0.751216 -0.125756 -0.356234 -0.19106 +0.202586 0.309792 -0.453417 0.692834 0.69547 0.70986 -0.85682 0.760528 +-0.131201 0.144543 -0.178906 -0.157251 -0.533544 0.888226 0.208771 -0.977268 +-0.504413 -0.0699119 -0.435211 -0.91065 0.312126 0.75234 0.97395 0.544 +0.894817 0.511993 0.287178 -0.23484 -0.581139 -0.584932 -0.625012 0.0210486 +-0.286104 0.254178 -0.542006 0.161124 0.766974 0.742791 0.912037 0.632687 +-0.60916 -0.885383 -0.756673 -0.777782 0.277766 0.991106 0.900554 -0.391421 +-0.142503 -0.818095 -0.45911 -0.918373 -0.298651 -0.277392 0.725643 -0.854794 +-0.649908 -0.187901 0.0247095 -0.60228 0.793194 -0.617519 -0.997789 -0.274494 +-0.280149 0.898711 -0.360574 -0.976312 0.476091 0.916732 -0.169414 -0.72465 +-0.411932 -0.32515 0.871157 0.599611 0.134385 -0.102408 0.394689 0.7496 +0.104619 -0.175166 0.904801 0.0569862 -0.0476467 0.376232 -0.110904 0.740176 +0.52391 0.230445 -0.167388 -0.522466 0.227577 0.29069 -0.0534199 0.0569272 +0.625561 0.549869 0.861022 0.10075 0.72685 -0.0568357 0.509931 0.0672989 +-0.346833 -0.551593 -0.389969 0.0073665 0.288691 -0.804029 0.088699 0.532961 +-0.767316 -0.343539 -0.357081 -0.0846586 0.600049 0.835556 0.816295 -0.263728 +0.58262 -0.116763 0.636783 -0.618889 -0.416884 -0.309726 -0.468009 0.871142 +-0.823144 0.986674 0.95286 -0.361432 0.55619 0.958338 -0.136065 0.00978749 +0.157041 -0.134212 0.276699 0.145281 -0.485878 0.862085 0.902173 -0.76561 +-0.138389 -0.182146 0.889744 0.297919 0.740105 0.147681 0.503145 -0.736469 +-0.685033 -0.485946 0.201931 0.296399 0.480032 0.935205 0.238879 -0.803755 +-0.615923 0.079203 -0.319049 -0.402563 -0.124385 -0.320356 -0.438738 0.347248 +-0.26052 0.160195 0.763041 -0.255672 0.994378 0.909226 -0.0298997 -0.997844 +-0.276995 -0.453403 0.634612 0.0875058 0.650583 -0.96219 0.523689 -0.100822 +-0.177809 -0.937384 -0.28952 -0.220639 0.271869 0.790844 -0.139988 0.387136 +-0.157078 0.472966 -0.67483 -0.991139 -0.822019 -0.444225 0.934609 0.994294 +-0.209155 -0.386623 0.541155 0.466955 0.684132 -0.637023 -0.000662698 -0.366198 +0.5711 0.205397 -0.738076 0.182721 -0.283388 -0.842837 0.19663 -0.599122 +-0.674715 -0.0732164 -0.941004 -0.512716 0.927311 0.184827 -0.281494 -0.300882 +-0.547956 0.999928 0.959472 0.0852394 0.689922 0.514692 -0.127357 0.413696 +-0.0377045 0.197385 0.991193 -0.987554 -0.991909 -0.741119 -0.0827873 -0.851644 +0.789856 -0.0561885 -0.918343 0.134567 0.329217 0.687128 0.467436 -0.435116 +-0.471794 0.73237 0.977324 0.694653 -0.451916 0.454989 0.00498822 -0.257135 +0.748528 0.450546 -0.743392 -0.450777 0.758868 -0.320118 0.728743 0.0153246 +-0.531501 -0.892419 0.633288 0.658013 0.263826 0.12886 0.385882 0.0323802 +0.687212 -0.24275 0.751322 -0.730946 0.937416 0.0921673 0.405329 0.241475 +-0.213351 0.774039 -0.049899 -0.25581 0.000732646 0.684335 0.151096 0.649219 +0.26154 0.333546 -0.80676 -0.119055 0.364801 0.177554 -0.691678 -0.62992 +0.52007 -0.12052 0.983154 0.806358 -0.00997916 0.889552 -0.877461 -0.215677 +0.757724 -0.741531 0.156651 -0.68095 -0.0755776 0.486172 -0.359773 0.0925162 +-0.692822 -0.0141875 0.81207 -0.00906921 -0.00493599 0.47499 -0.625689 0.90352 +0.649982 -0.812876 0.895096 -0.0379297 -0.338638 -0.478548 -0.0943941 0.272687 +0.724685 -0.022035 0.0457361 -0.716353 0.344336 0.176737 -0.126939 -0.752648 +-0.936457 -0.233943 -0.648857 -0.45973 0.73649 0.932867 0.757983 0.962803 +0.170945 0.490496 0.952495 0.763113 -0.68094 0.720786 -0.667562 0.950296 +0.977082 -0.497909 0.727733 0.610678 0.0265574 0.00265843 0.391433 -0.765324 +0.619972 0.541125 0.708 0.997773 -0.272605 0.712599 0.0736995 0.272346 +-0.940861 0.0762346 0.0136436 -0.537222 0.594253 -0.907104 -0.372755 0.22729 +0.873806 -0.528205 0.477191 -0.943149 -0.439462 0.117662 -0.252288 0.516592 +0.657385 -0.518584 -0.946717 -0.854304 -0.952449 -0.752462 0.207444 0.0728009 +-0.645599 0.340758 0.657169 -0.331184 -0.598246 -0.274908 -0.0250179 -0.304901 +0.686562 -0.654303 0.27842 -0.115524 0.473662 0.0127028 0.553789 0.990883 +0.393672 0.600265 -0.920467 0.532092 -0.349666 -0.615626 0.633596 -0.841394 +0.131594 -0.708877 0.585439 0.45468 0.378988 -0.0539827 -0.596616 0.645908 +0.892736 0.0992729 -0.0382379 0.427434 -0.350509 -0.360955 0.979282 0.139371 +0.267914 -0.492926 -0.622307 -0.674663 0.164849 -0.229132 -0.035842 0.959332 +-0.731852 0.327502 -0.575435 -0.0297323 0.980193 -0.612321 -0.280145 0.0856629 +0.643568 -0.513787 -0.134338 0.232088 -0.149599 -0.584207 -0.579692 0.157425 +0.614703 0.736502 -0.0833472 0.514622 -0.293587 -0.650099 0.533982 0.186323 +-0.675352 -0.119661 -0.515183 -0.210644 -0.85384 0.307861 0.700693 -0.877282 +0.274578 0.473508 0.406831 -0.538001 0.956363 0.646266 -0.546682 0.992454 +-0.87327 -0.00296215 0.0414035 0.0500699 -0.670198 0.853049 0.914707 0.116119 +0.190999 -0.700027 -0.859726 -0.639689 -0.501863 0.951785 0.43509 -0.938298 +0.907065 0.087347 0.317729 -0.55167 0.694181 -0.298263 -0.173535 -0.405605 +0.894403 -0.584206 -0.0723924 0.633117 0.570955 -0.560545 0.467796 0.122046 +-0.796304 0.528693 0.00108817 -0.890026 -0.820986 0.412875 0.221054 -0.558606 +0.219785 -0.199144 0.467752 0.0898112 -0.5489 -0.178627 -0.974027 -0.70176 +-0.279536 -0.355732 0.829754 0.206678 0.92681 0.725132 0.59638 -0.652078 +0.901265 0.691778 -0.10057 0.967704 0.233985 -0.877128 -0.40284 0.149152 +-0.764962 -0.204784 0.770602 -0.837699 0.776018 0.632944 0.201403 -0.586494 +-0.132137 0.720944 -0.452181 0.0467145 0.515932 -0.23395 -0.944926 -0.525222 +0.180312 -0.85565 0.960342 0.854501 0.25741 -0.336411 0.473119 0.792189 +-0.6289 -0.0291849 0.0420405 -0.452139 0.238573 0.429904 0.270788 -0.750278 +0.847802 0.426038 0.353717 -0.950472 0.981075 0.888408 0.766313 -0.765033 +0.283318 0.683637 -0.594716 -0.258368 -0.949117 -0.306491 -0.793554 0.163335 +0.571415 -0.561182 0.741436 -0.11306 -0.226107 -0.542048 -0.623548 -0.686956 +0.2674 -0.838761 -0.117915 -0.193575 0.0629765 0.705599 0.0882624 -0.255399 +0.791962 -0.154414 0.155621 -0.496132 -0.378271 0.939525 0.970834 0.564463 +0.335219 0.801393 -0.211062 -0.0313083 0.268018 -0.299146 -0.232611 0.714823 +-0.426097 0.567041 0.649474 0.0358228 -0.299913 -0.0713698 -0.633735 -0.784617 +0.0232393 0.662918 0.0372392 0.231156 -0.691952 0.433214 -0.603794 -0.213686 +0.905391 0.415682 0.402408 -0.211226 0.240961 0.636125 -0.0358785 0.492232 +0.107998 0.778871 0.011083 0.514138 0.63688 -0.634362 0.161362 -0.00531217 +-0.684938 0.930207 0.806177 0.46788 -0.00147245 0.466066 0.847943 -0.677591 +-0.00649523 0.806737 -0.302778 -0.145562 -0.863794 -0.0302537 0.772421 0.187482 +0.619861 -0.0637037 -0.110914 0.0793783 0.256422 -0.0290565 -0.392131 0.864709 +-0.0191528 0.927415 -0.082349 0.525604 -0.931214 -0.466625 -0.914915 0.872849 +-0.17235 0.646809 0.949734 -0.81783 -0.322976 0.127121 -0.200871 0.0826042 +-0.632413 0.0674995 0.978769 -0.318435 -0.186217 -0.663021 0.57249 0.926005 +0.0181546 0.0713998 0.709013 -0.385123 0.946755 -0.0728979 -0.103564 -0.188298 +-0.683118 0.320875 -0.391775 -0.335778 -0.0798763 -0.972134 0.219379 0.492908 +0.579168 0.799142 0.295507 -0.764597 -0.761547 -0.26899 0.872283 0.0791589 +-0.606292 0.794086 0.137936 0.637808 0.0615395 -0.389156 -0.614971 0.924965 +0.713525 0.884743 0.661499 0.615001 0.396643 0.619282 -0.887594 0.863704 +0.124719 -0.669662 0.0415935 0.892271 0.296006 -0.419755 -0.34637 0.161909 +0.953529 -0.461741 -0.476569 -0.150034 0.703462 -0.918889 -0.914346 -0.635682 +0.625844 -0.910335 0.412728 0.684072 -0.573945 -0.506028 0.150957 0.164161 +-0.455554 0.302384 0.94253 -0.149663 -0.681389 0.0460208 0.501568 0.00589114 +0.473585 0.858584 -0.630107 0.962347 -0.902829 -0.423111 0.516332 -0.101748 +0.491872 0.668381 -0.402207 0.712402 0.574147 0.810886 0.221889 -0.789166 +0.555292 -0.966892 -0.250653 -0.698821 -0.770122 0.468273 -0.189857 0.486777 +-0.274678 0.475475 0.090513 0.0941176 0.833517 -0.0989901 0.732688 0.929906 +0.933572 0.558267 -0.959083 -0.0707562 -0.371505 0.797705 0.464027 0.922195 +0.719289 0.503181 0.582471 0.763781 -0.0555772 -0.39836 -0.0366971 0.115712 +-0.522027 -0.321389 0.131675 0.89057 0.716248 -0.446274 0.974616 0.543703 +0.419614 0.463716 0.0980643 -0.985997 -0.407129 -0.948701 -0.115993 -0.546362 +-0.0715668 0.849654 0.403235 -0.910678 -0.117649 -0.604286 0.184488 0.729098 +-0.93474 -0.599825 0.0214467 0.670089 0.363606 0.988076 0.432029 0.148693 +0.819119 -0.251876 0.271394 -0.764731 0.607854 0.562658 0.699353 -0.222141 +0.9961 0.262391 -0.479401 0.275457 0.461772 0.816849 -0.762862 -0.697602 +0.581109 0.350793 -0.120216 -0.312196 -0.929956 0.407073 -0.312881 -0.705924 +-0.668388 0.984213 0.273338 0.639527 0.501369 -0.614373 0.214894 -0.218285 +-0.124574 0.7385 -0.00144546 -0.0154488 -0.0514818 0.703353 0.875083 0.169949 +0.11434 0.471679 -0.665672 0.598294 -0.213896 -0.10477 -0.45066 -0.832872 +0.574354 0.606272 -0.71956 -0.597004 -0.394706 -0.183679 -0.304551 0.535606 +0.572686 0.214173 -0.812911 0.32976 -0.611692 0.244669 -0.0058671 -0.10343 +-0.197952 0.346636 -0.587875 -0.352256 -0.277861 0.507426 -0.911851 0.406888 +-0.0069995 -0.171561 0.767617 -0.682493 -0.493422 -0.556888 -0.412298 -0.633811 +-0.299201 0.488389 -0.642966 0.551488 0.456489 -0.952984 -0.414757 -0.593406 +0.343825 0.725008 0.24153 -0.851154 -0.374948 0.122291 -0.766575 0.725006 +-0.779711 0.385846 0.323872 -0.765733 -0.202113 -0.143466 0.298488 -0.26644 +-0.503339 -0.662685 0.0770419 -0.119041 0.863646 0.525176 -0.130999 -0.422811 +0.422938 0.147297 0.16718 0.437515 -0.36838 -0.630864 -0.800768 0.961757 +-0.0641101 -0.715403 0.246984 -0.452333 -0.387947 0.343553 0.273382 -0.902628 +-0.541774 -0.914521 -0.593925 -0.6866 0.453686 -0.563833 0.622579 0.622065 +-0.539202 -0.667677 0.338388 -0.753619 0.597776 -0.649447 -0.490685 -0.760126 +-0.368934 -0.984469 -0.162553 0.535268 -0.0581524 -0.270395 0.117763 0.376106 +0.421615 -0.269914 0.0908834 -0.428551 -0.0659017 -0.674737 0.343036 -0.809389 +0.381187 0.054868 -0.736517 -0.0805571 0.238274 0.392724 -0.858288 -0.555801 +-0.668288 0.0322469 -0.17407 0.709696 -0.228347 -0.405828 -0.741468 0.112184 +0.586689 0.877233 0.353419 -0.269228 0.246214 0.0663341 -0.265378 0.0738752 +-0.846392 -0.896188 0.599184 -0.989711 0.815948 -0.891413 -0.717648 0.928854 +0.847613 0.497684 0.653577 0.256727 -0.941993 0.687621 0.885548 -0.0328761 +-0.835823 -0.633593 -0.778862 0.101114 -0.297876 0.514077 -0.0219575 -0.35025 +0.020711 0.559037 0.316685 -0.583087 0.540192 -0.435422 -0.675302 -0.521982 +0.745565 -0.292312 -0.0292307 -0.239998 -0.381024 -0.450953 0.0987404 -0.942122 +-0.742454 0.257428 0.934171 0.809179 0.19012 0.2545 0.907287 0.284899 +-0.672138 -0.161404 0.3675 0.0488093 0.931938 0.176262 0.88015 -0.329395 +-0.025253 0.316535 -0.206743 0.0107128 0.702844 -0.384482 0.30496 0.368379 +0.84283 -0.132163 -0.871323 0.839478 0.451141 0.275397 -0.67559 0.884972 +-0.424877 -0.0780003 -0.675793 0.0674848 0.120192 0.85349 0.825394 -0.23963 +0.964721 0.288912 0.784952 0.0211033 0.776431 -0.168673 -0.827909 -0.0470922 +-0.137226 -0.295394 -0.758961 -0.358091 0.719381 0.22567 0.465528 0.238049 +0.846867 0.593485 0.402443 0.0197375 -0.326613 -0.389345 0.210102 0.585761 +-0.251388 0.975586 0.765576 0.0105263 0.0485571 -0.144259 -0.225171 -0.846924 +0.904802 -0.306201 0.973132 0.0169053 0.54403 0.146896 -0.67209 -0.100314 +-0.305925 -0.649057 -0.961895 0.10197 0.773901 0.251404 -0.68321 -0.999172 +0.803232 0.831024 -0.194258 -0.21741 0.519616 -0.26428 -0.871257 0.459452 +0.495183 -0.315436 0.988942 0.0946434 -0.145408 -0.780088 0.478292 -0.440063 +0.140639 -0.666605 -0.394771 0.209669 -0.882781 -0.866785 0.822876 0.313566 +0.289734 -0.351428 0.0652073 0.0207896 -0.880111 -0.289536 0.655548 -0.866614 +-0.55384 -0.263566 0.324455 -0.907539 -0.429209 -0.674557 0.171382 -0.749217 +0.573479 -0.606619 -0.99615 -0.841321 -0.624034 -0.16957 0.40645 -0.857816 +0.6124 0.515271 -0.476764 0.712873 -0.13435 0.456959 0.976651 0.049353 +-0.38961 -0.554669 -0.961053 0.597428 -0.980611 -0.306856 0.237047 -0.0528948 +0.436825 0.067787 0.553998 -0.973296 0.589735 -0.965539 0.933691 -0.092189 +-0.756253 0.657371 -0.131657 -0.393731 -0.401185 -0.61353 0.0998119 -0.0482496 +0.88094 0.068662 -0.311243 -0.541921 0.6701 -0.631771 0.6582 0.837739 +0.553374 -0.311691 0.895415 0.427898 -0.466342 0.639683 0.0199094 -0.290336 +-0.27462 -0.924421 0.433571 0.152194 0.391239 0.572982 -0.898181 -0.437818 +0.400034 0.193773 -0.397168 -0.61091 0.0983465 -0.122479 0.214126 0.148631 +-0.639838 0.703216 -0.709621 -0.159355 -0.979139 0.227143 0.646861 -0.882124 +0.435646 0.598844 0.553529 0.0650148 -0.482796 0.131495 -0.909386 -0.984489 +-0.91282 -0.486764 0.565165 -0.365891 -0.625747 -0.968751 -0.5831 0.760851 +0.41417 0.88422 -0.528985 -0.79639 0.769148 0.0281669 0.278321 0.233352 +0.043172 -0.119929 0.744422 0.204351 -0.181731 0.207236 0.00826885 -0.89295 +0.481915 0.327717 0.041896 -0.408631 -0.0673356 -0.873874 -0.508949 0.513303 +-0.670448 -0.135228 -0.224288 0.429496 0.716588 0.108394 -0.672017 0.813268 +-0.823246 0.284042 -0.89564 -0.660131 -0.622931 0.386008 0.642158 -0.46408 +0.124811 0.91243 -0.131516 0.580109 0.273929 0.620618 -0.60207 -0.940485 +0.242091 -0.842635 0.558778 -0.708394 0.959491 0.807801 0.260162 -0.860087 +0.701188 -0.286316 0.665152 0.0836808 0.0777449 0.665974 0.190459 0.229637 +-0.573788 0.553263 0.401587 -0.254484 0.453416 0.320535 0.124292 -0.674375 +-0.772557 0.286658 0.286858 -0.610604 0.164543 -0.461166 -0.111085 -0.467779 +0.755912 -0.835414 -0.523273 0.124686 0.625215 0.254365 -0.621343 0.721486 +0.723409 0.800257 -0.473727 -0.977582 -0.692884 0.415379 0.536753 0.757392 +0.836582 -0.563446 0.361799 0.49473 -0.65864 -0.873374 0.991183 0.520681 +-0.0842182 0.655348 0.417902 -0.607633 0.288775 -0.92892 0.96663 -0.822085 +0.962041 -0.131105 -0.235819 0.988614 -0.637875 -0.738374 0.741394 -0.474423 +0.466231 -0.931568 0.460443 -0.20345 -0.628494 -0.994319 0.931444 0.675085 +0.972864 -0.20814 0.460001 -0.885232 0.124898 -0.985502 0.888845 -0.579836 +-0.29524 -0.680225 0.122174 -0.219773 0.64414 -0.447162 0.359855 0.266702 +-0.668839 -0.772446 0.581573 -0.0510943 -0.212979 0.966907 0.613242 0.857691 +-0.0390333 -0.919343 0.916039 0.0784157 0.861652 -0.650292 -0.994993 -0.646119 +-0.92435 -0.640192 0.861895 -0.751346 0.64982 -0.566795 0.724396 -0.911267 +0.87906 0.649922 0.854086 -0.556599 0.352613 -0.790212 0.0402968 0.187952 +-0.0738641 0.202716 0.0614971 -0.151917 0.416292 0.530612 0.774077 -0.394695 +-0.133099 -0.693308 -0.385959 0.669784 -0.851992 0.331418 -0.496843 -0.887921 +0.840795 0.221318 0.823693 0.680852 -0.248194 0.869303 0.702691 0.942566 +0.226746 -0.649925 -0.411488 0.193243 0.85133 0.435078 0.199276 -0.310649 +-0.326584 0.252741 0.768958 0.318801 -0.300594 0.867793 -0.253636 0.702688 +0.930336 -0.221198 -0.419854 0.40996 0.221548 -0.105628 0.92983 -0.256735 +0.597607 0.00693479 -0.509817 0.437797 -0.983077 0.508448 0.809127 0.196139 +-0.407975 -0.976637 0.950385 -0.764164 0.853928 -0.417241 0.765138 -0.343425 +0.27828 0.432838 -0.276489 -0.193367 -0.376719 0.0728322 -0.243358 0.393985 +0.950319 -0.818687 0.629642 -0.359023 0.0925039 -0.382067 -0.573574 0.982943 +-0.350449 -0.399127 -0.93732 -0.444581 0.698315 0.237874 -0.475988 -0.835617 +0.536712 -0.822973 0.259625 0.297349 0.79306 0.13849 0.755881 -0.78431 +0.431106 -0.127735 -0.463165 -0.591191 -0.153523 -0.211218 0.503748 0.23995 +-0.365947 -0.33267 -0.293726 -0.212914 0.336077 0.934874 -0.627893 -0.691594 +-0.0518001 0.0367222 -0.393038 -0.321993 -0.739019 0.335645 -0.67634 0.180534 +-0.259305 0.0203263 0.877685 -0.466853 0.849428 -0.61377 0.477269 -0.15404 +-0.879647 -0.90787 -0.358828 0.862563 0.795065 -0.0406532 -0.551764 0.174125 +0.643761 0.690572 0.289164 0.38959 0.410595 -0.720023 0.57238 -0.917611 +0.674706 -0.590643 0.159813 0.4123 0.767407 -0.517906 -0.316851 -0.298961 +0.363192 0.188104 -0.210612 -0.473926 0.279279 0.938374 -0.358034 0.0612207 +0.931987 0.35805 0.846323 0.408925 -0.646355 0.500204 -0.429592 -0.519569 +0.515194 -0.386515 -0.404967 -0.226663 -0.975967 -0.630693 0.307084 0.927822 +-0.942307 -0.791655 -0.898573 0.480521 0.380706 0.303901 0.456812 0.991757 +-0.048805 0.631629 0.89261 -0.821022 -0.969259 0.640607 0.371623 -0.896981 +-0.43813 -0.713409 0.415642 -0.125709 0.50242 0.476583 -0.74203 0.786028 +-0.195922 0.196466 0.440618 -0.507517 0.199694 -0.667823 0.151653 0.620218 +-0.75496 -0.652103 -0.940331 -0.184016 0.998388 0.406921 -0.119219 0.716519 +0.318588 0.704902 0.291492 0.983082 0.50794 0.88594 -0.880253 -0.836508 +0.0566302 -0.853426 0.420597 0.399746 -0.78373 -0.412174 0.415964 0.137116 +0.241168 -0.237681 0.236262 0.958907 -0.467803 -0.287174 0.917187 0.80971 +-0.183402 -0.249486 -0.0956603 -0.329253 0.32755 -0.55554 0.0461645 0.151975 +-0.832858 0.00999473 0.799883 0.611502 -0.0333815 0.0269128 0.788707 -0.05049 +-0.466655 -0.0359917 -0.178252 -0.75571 -0.352506 -0.385766 -0.775035 -0.225194 +0.653347 -0.214511 0.392336 0.351973 0.675455 -0.432383 -0.590565 -0.00247393 +0.83193 0.427776 -0.397143 -0.524797 0.0329433 -0.712917 0.586987 -0.597506 +0.955054 -0.422828 -0.156757 -0.900635 -0.993511 -0.453753 -0.900185 0.184881 +0.32201 -0.872906 -0.18668 -0.826279 -0.203369 -0.905251 -0.993372 -0.439943 +-0.785225 -0.105336 -0.637984 0.818458 0.570591 -0.403852 -0.946671 0.224589 +0.200085 -0.849365 0.607434 0.0208227 -0.654719 0.803037 0.618628 0.807793 +-0.693831 -0.813777 0.864736 -0.716155 -0.180395 0.240294 -0.614494 -0.338928 +0.75223 -0.550192 -0.48055 0.952716 -0.348465 -0.581164 0.994858 -0.279835 +-0.558747 -0.165934 0.440945 -0.68293 -0.61582 0.593773 0.710021 -0.722819 +0.0810007 0.930372 -0.791776 -0.770294 -0.272479 -0.524799 0.697685 -0.970154 +0.948796 0.577075 -0.558255 0.575764 -0.2287 -0.195658 0.230724 -0.987664 +-0.741981 -0.083787 0.285034 0.544847 0.00336 -0.219707 0.512473 0.0111617 +0.487292 0.0635702 -0.711597 -0.0247088 -0.370464 -0.404298 -0.666299 -0.101871 +0.598502 0.510439 -0.756427 -0.512909 0.583027 0.375139 0.156568 0.131014 +-0.17058 0.990818 0.612171 0.120444 0.103895 0.541877 0.0448434 -0.16348 +-0.397441 -0.467477 0.719242 -0.465148 -0.439904 -0.964904 -0.43302 -0.816664 +0.453677 -0.824843 0.797395 0.549664 -0.948966 0.546001 -0.880261 -0.273346 +-0.953964 0.620678 -0.520965 -0.253769 -0.272652 -0.679127 -0.982491 -0.566005 +0.64798 -0.266019 -0.573181 0.977262 -0.463859 -0.330665 -0.734435 -0.92418 +0.803465 0.735973 -0.0784778 0.359947 -0.656448 -0.0861305 -0.0149736 0.938578 +-0.855584 -0.921477 -0.831869 -0.33965 0.693436 -0.963245 0.56718 -0.0405202 +-0.634494 -0.621353 -0.67548 -0.619686 -0.616101 0.806266 -0.746468 0.823212 +-0.234292 0.62324 -0.404441 -0.0396719 -0.353624 -0.0309763 -0.0210264 -0.765736 +0.794504 0.721823 0.323607 0.0348415 -0.450974 -0.311555 0.143033 -0.101537 +0.307413 -0.228631 -0.709472 -0.479056 -0.183105 0.241753 -0.258827 -0.431294 +0.729868 -0.867868 -0.819651 0.982833 -0.0388093 0.473378 0.167372 0.31321 +-0.431609 0.969556 0.544448 -0.350157 0.67349 -0.463998 0.188472 -0.487228 +-0.352616 -0.734989 -0.164356 -0.721236 -0.0695177 -0.963942 -0.216112 -0.344447 +0.737561 0.146819 0.823387 -0.894282 -0.198945 -0.193143 -0.409891 0.650166 +0.379543 0.831259 -0.0890597 -0.285106 0.19873 -0.349228 0.722469 -0.0811125 +0.162026 0.788818 0.22839 0.640705 0.341505 -0.563131 0.0293779 -0.0870272 +-0.965161 -0.309858 -0.401846 0.479686 -0.388533 0.266861 0.404528 -0.698517 +0.218193 -0.700151 -0.111992 -0.77773 -0.537417 0.0594156 -0.791989 -0.341195 +-0.0491561 0.188822 -0.807967 -0.438611 -0.408479 0.0560279 0.0305076 -0.165252 +-0.133245 -0.842566 0.375244 -0.787213 -0.862269 0.466999 -0.798118 0.195476 +0.299756 0.479351 -0.222634 0.80622 -0.379803 0.71845 -0.11904 0.41572 +0.92435 0.739867 -0.503637 0.532559 -0.541676 0.581079 0.316796 -0.521131 +0.0671036 -0.923564 0.970237 0.438984 0.964438 0.931545 -0.858427 -0.867754 +0.469373 -0.690432 0.632152 0.30219 0.516518 0.376453 0.942618 -0.510809 +-0.374131 -0.616714 -0.235787 0.381932 0.340483 -0.0552866 0.154077 -0.97495 +0.0478047 0.334196 -0.63611 0.379448 0.60729 -0.299805 0.701503 -0.37992 +0.916858 0.50276 0.614059 0.980054 0.6831 -0.0876382 -0.317726 -0.706322 +-0.164709 -0.359572 0.793866 -0.129485 0.758523 0.441986 -0.171055 0.490299 +-0.64881 -0.222841 0.538741 0.722652 0.306283 0.0446685 0.0302669 0.340515 +-0.0870664 -0.921692 -0.288006 0.401609 -0.699856 -0.464328 0.605429 0.201644 +0.443318 0.775192 0.339284 0.923055 0.272059 -0.926282 -0.84369 0.640364 +-0.435417 0.305676 0.183887 0.18005 0.93121 -0.597983 0.633152 -0.748446 +-0.444077 -0.152974 0.901408 0.00567173 0.337209 0.249761 -0.465012 -0.572423 +0.14441 -0.217803 0.886623 -0.298584 -0.992069 -0.910329 -0.865043 -0.79585 +0.0427073 0.169323 -0.610172 0.606651 -0.925988 0.248012 0.438596 0.80506 +0.580341 0.278589 -0.98893 0.999265 0.794102 0.809174 -0.0091269 0.349602 +-0.785846 -0.639567 0.411711 -0.517947 -0.331774 -0.00407746 -0.306337 0.998251 +-0.0411384 0.862358 -0.265456 0.834848 -0.168149 -0.652118 -0.286001 -0.955105 +-0.973704 0.054507 -0.421655 -0.7494 0.734801 0.733003 0.716725 -0.675356 +0.411991 -0.493809 0.140858 0.594907 -0.470983 0.563757 0.493642 -0.913018 +0.0848154 0.588962 0.52998 -0.612874 0.180051 0.98097 0.786611 -0.317053 +-0.345644 -0.437166 0.810846 0.858096 0.665159 0.478925 -0.0875771 0.0923788 +-0.241872 -0.0142244 0.147105 0.311358 -0.481969 0.53812 0.788871 -0.263556 +0.831506 0.640901 -0.932048 0.998328 -0.556773 -0.508118 0.937576 -0.67691 +-0.647504 -0.246892 -0.436839 -0.43205 0.656722 0.900011 -0.940555 -0.482263 +-0.749823 -0.919295 -0.680736 -0.293111 -0.581066 -0.28322 -0.138873 -0.544922 +-0.23649 0.571688 -0.364229 0.779989 -0.367618 -0.281898 0.597353 0.192759 +0.262706 -0.238745 -0.188718 -0.254212 0.37893 0.793777 -0.729617 -0.415413 +0.0467543 0.767762 -0.829876 0.775823 -0.313896 -0.0956588 0.97448 -0.21157 +-0.439962 0.461296 -0.221232 -0.979795 0.790144 -0.248104 0.242984 -0.88226 +0.0864715 0.982388 0.171117 -0.249684 -0.334482 -0.808296 -0.221967 0.822003 +0.632996 0.94374 -0.775281 -0.686826 -0.778744 -0.759771 0.927022 0.0224117 +0.379151 -0.615238 -0.0501672 0.641635 -0.337415 0.703021 -0.580354 0.875055 +-0.141639 -0.156486 -0.250025 -0.568296 -0.242664 -0.396983 -0.608354 0.675347 +0.62325 -0.391065 -0.762547 -0.809897 0.283655 -0.288219 0.350484 0.156588 +-0.776012 0.274076 0.294224 0.368845 0.796698 -0.454758 -0.834285 -0.955352 +-0.634363 -0.80141 -0.706988 -0.550012 0.948761 -0.412028 -0.416648 -0.928917 +-0.0891207 0.376098 -0.964987 -0.917623 0.94218 0.967984 -0.885209 0.953605 +-0.282277 -0.827035 -0.193524 0.663693 0.254509 0.634436 0.796459 0.720589 +0.88988 0.0108032 -0.228537 -0.0757205 -0.349577 -0.891614 -0.287738 0.796168 +0.196442 0.45566 -0.663953 0.332061 0.624401 -0.41001 0.877254 -0.578532 +0.907596 -0.606834 -0.720908 0.949873 0.307714 -0.720114 0.589878 0.0596667 +0.598985 -0.777062 -0.239063 0.244857 -0.866087 0.500555 -0.313432 0.999761 +-0.647462 -0.615176 0.861202 0.406797 -0.460893 -0.290523 0.659345 0.165012 +-0.96857 0.849776 -0.569581 0.694598 0.638149 -0.109018 -0.589715 0.826114 +-0.0027549 -0.930053 0.89528 0.976338 0.710978 -0.0452181 0.523359 -0.810643 +-0.670165 0.0473472 0.497387 0.694714 -0.458602 0.958052 -0.0847757 -0.857943 +-0.285355 -0.0624846 0.297264 0.0787774 0.572124 -0.0933931 -0.965279 0.910607 +-0.802499 -0.195514 0.600725 -0.736912 -0.0388842 0.217021 -0.901233 0.851295 +-0.835873 -0.0623102 -0.830387 0.960948 0.397927 -0.705977 0.313747 0.537092 +0.952972 -0.506664 0.00583154 0.860835 0.278171 0.530486 0.549018 -0.994979 +0.19622 -0.933826 -0.760742 0.248686 -0.603 -0.35062 -0.0153036 -0.577148 +-0.941617 0.517287 -0.268814 -0.210716 -0.0391231 -0.209571 0.533472 -0.80421 +-0.662987 0.839977 -0.348736 0.987334 0.136113 -0.936907 0.676846 -0.183018 +-0.244292 -0.501728 0.680024 -0.948987 -0.256957 -0.0360509 0.0846798 -0.3269 +-0.914367 -0.70277 -0.219623 -0.0701372 0.291313 0.848735 -0.766073 0.290009 +-0.239939 0.551149 0.828111 -0.921141 0.555425 0.904696 0.0177353 -0.72478 +-0.69786 -0.227274 0.389082 -0.491666 0.35536 0.290257 0.503103 0.201486 +-0.634598 0.969934 0.402552 -0.0453698 0.786254 0.9334 0.630699 0.881358 +-0.00591691 0.304347 -0.792962 0.823663 0.0365753 0.229457 -0.378103 -0.140421 +0.974196 0.451824 -0.0269083 -0.509734 0.408524 -0.893785 0.736339 0.827325 +0.12172 -0.884968 -0.613209 -0.778287 -0.985988 -0.383091 -0.91481 0.463101 +0.661399 -0.675849 0.040684 0.245202 0.472531 -0.035824 -0.93978 -0.134191 +0.587334 0.107128 -0.797056 0.945834 -0.990166 -0.117561 0.679656 0.958143 +-0.960443 -0.302675 0.29185 0.15371 0.0143037 0.372646 -0.519729 -0.974672 +-0.910563 -0.375314 -0.375177 -0.882413 0.728729 -0.10515 -0.827114 -0.950809 +0.692252 0.755329 0.606595 0.972517 0.418286 -0.11729 -0.571962 -0.813254 +0.803214 0.36952 0.289499 -0.336532 0.916552 0.221312 0.51359 -0.537217 +-0.561784 -0.529544 -0.802465 -0.0332391 0.428501 -0.219429 -0.278968 -0.284951 +-0.562281 0.274244 0.90186 -0.891902 0.900667 0.291199 0.00631785 -0.638341 +-0.49093 -0.530458 0.0828044 0.482718 -0.680165 -0.269098 -0.594883 0.849732 +0.879348 -0.298821 0.390532 0.102698 0.706264 -0.124483 -0.14492 -0.318506 +-0.358964 0.348387 -0.723543 -0.399297 -0.698828 0.455239 0.391509 0.548327 +-0.392957 0.422771 -0.627696 -0.192509 0.0241379 0.0278262 -0.312123 0.380219 +0.68006 0.626891 0.0441748 0.451729 -0.879991 0.0161236 -0.513503 0.310096 +0.365854 -0.984841 0.219854 -0.366791 0.519929 -0.580663 0.876846 0.730039 +-0.581241 -0.0153402 0.014145 0.981295 -0.498005 0.327281 -0.965842 -0.864351 +-0.105895 -0.855385 -0.138845 -0.964329 -0.842362 0.456257 -0.957012 -0.828246 +0.292177 -0.416624 0.71723 -0.623425 0.298619 0.488671 0.49368 -0.36694 +0.560037 -0.717505 0.68229 -0.162798 -0.42066 -0.0649666 0.312833 0.110852 +0.838137 0.767129 -0.256094 -0.657869 0.99366 0.875143 -0.0659944 -0.129317 +0.967663 0.195352 -0.507424 0.810117 -0.438656 0.321165 -0.387351 -0.922342 +0.426811 -0.895498 0.380813 0.454062 -0.842164 0.942753 -0.361861 -0.62961 +-0.0222192 -0.377454 0.870297 -0.863223 -0.179788 -0.820079 -0.220045 -0.520223 +-0.771642 0.499579 0.980336 -0.89382 0.138686 -0.0278531 0.48178 0.499688 +0.4789 0.198088 0.240406 -0.00892653 0.187878 -0.94387 0.420187 -0.827594 +-0.224953 0.499761 0.208712 0.426446 -0.416422 0.913984 -0.897736 0.0182281 +0.799346 0.535787 -0.815264 0.658569 0.752995 0.493531 -0.998731 0.358444 +0.205353 0.158476 -0.975775 0.405028 0.429149 0.970673 0.593034 0.162828 +-0.934039 0.702637 -0.894025 -0.625242 -0.130516 -0.17667 -0.328593 0.781197 +0.238078 -0.255501 0.97914 0.431254 0.522377 0.326107 0.648545 0.976772 +0.208661 -0.590069 -0.533551 -0.649294 0.76325 0.589831 0.234321 -0.0510115 +-0.69793 0.68513 0.930427 0.588933 0.774451 0.237988 -0.808147 0.169682 +0.0349228 0.514847 0.778509 -0.129969 0.0390609 -0.207936 -0.297653 0.472766 +0.512546 0.159146 0.727731 -0.177057 -0.809416 -0.602289 -0.787647 0.38428 +-0.186697 0.779926 0.660422 0.500904 -0.0689695 0.0559962 0.333259 -0.0574155 +-0.728707 -0.0706758 -0.888296 -0.238565 -0.250264 0.839343 0.493229 -0.576019 +-0.809987 0.220358 0.205609 0.757369 0.143384 0.615678 0.330835 0.977295 +-0.391994 -0.684258 0.205786 -0.00734942 0.726512 -0.71284 -0.0306872 0.456416 +0.499907 0.567074 -0.205645 0.251682 -0.186756 0.280597 -0.0836714 -0.108558 +-0.28285 0.0691123 0.530537 -0.185215 -0.606915 0.0682439 0.0027849 0.559894 +0.991504 -0.59958 -0.125012 0.831124 -0.662051 -0.764216 -0.731422 -0.351546 +0.0504676 0.349729 0.858409 0.0808612 -0.826867 0.43127 -0.254422 -0.630537 +0.3472 0.216606 0.227496 0.239261 0.416589 -0.974391 -0.766833 -0.789926 +-0.612068 0.932691 0.578923 -0.137452 0.000133821 -0.952855 0.0602413 -0.231185 +-0.801073 0.0313484 -0.580106 0.161526 -0.722227 -0.0439152 0.553315 0.906336 +0.0287729 -0.964495 0.955237 -0.447544 -0.0758286 0.528293 0.201741 -0.739478 +-0.781629 -0.284645 -0.483844 0.362895 -0.42788 -0.786034 0.850566 0.872203 +0.000988529 -0.872803 0.395764 -0.0222731 -0.462379 -0.363251 0.800724 -0.170503 +0.317611 0.694185 0.97882 -0.519405 -0.835364 0.771746 -0.618922 -0.0419782 +0.555083 0.230567 -0.573056 -0.401002 -0.660464 0.101558 -0.896003 0.474492 +0.541582 -0.388696 0.723882 0.278064 0.957648 -0.645315 0.0103556 -0.228311 +-0.876491 0.895205 -0.059744 0.556219 0.953718 0.982976 0.996312 0.802643 +-0.268706 -0.950022 0.648118 -0.218916 -0.536437 -0.89109 0.477512 -0.703463 +0.840411 -0.234881 -0.98169 0.665541 -0.675073 -0.79018 0.122206 0.107823 +0.940919 -0.588458 0.0397954 -0.973241 -0.768445 -0.843359 -0.114625 -0.712586 +-0.763167 0.336097 0.92266 0.358382 -0.598842 -0.775323 0.980411 -0.806153 +-0.312086 0.157702 0.789472 -0.503158 -0.257445 -0.743381 -0.828678 0.86506 +-0.0126923 -0.392215 -0.13923 0.83301 -0.524511 -0.176745 -0.114381 0.28772 +-0.0400626 0.657065 0.58184 0.600973 0.362788 -0.950236 -0.314557 0.184622 +0.0749907 0.697958 0.330292 -0.640931 0.11142 0.925076 -0.694668 -0.638676 +0.493009 0.145296 -0.520822 -0.98083 -0.914793 0.733923 -0.373969 -0.440337 +-0.970714 -0.175843 0.98078 -0.737724 -0.0116679 -0.0424787 -0.794543 0.294647 +-0.139649 -0.897596 0.0889451 0.331298 0.880008 0.851879 0.135868 -0.899387 +-0.507133 0.936525 -0.857716 -0.633908 -0.655703 -0.554029 -0.402635 -0.446275 +-0.985789 0.610474 -0.938237 -0.0277712 -0.785777 -0.500821 0.592228 0.541555 +-0.985032 0.177672 -0.384303 -0.961241 0.928837 -0.272532 0.132935 0.878376 +0.465095 0.675375 0.438776 0.538609 -0.763695 -0.14723 -0.531163 -0.592394 +-0.838288 0.000891291 -0.519412 -0.0231059 -0.733383 0.948007 -0.158819 -0.297876 +-0.925951 -0.1423 -0.51796 0.0954837 0.159675 -0.916505 -0.203607 -0.017358 +-0.92074 0.99374 -0.0859041 0.770165 0.722163 -0.653699 -0.130248 -0.207295 +-0.462486 0.0955302 -0.698791 -0.212344 0.200033 0.647105 0.821219 -0.132371 +-0.565166 0.0770586 0.961235 -0.508404 -0.442225 -0.953534 -0.293995 -0.708842 +-0.849335 0.209508 -0.448546 -0.556959 0.934118 -0.0660197 0.0713486 0.739346 +0.890078 0.402817 -0.800801 -0.191642 -0.766558 0.982021 -0.278174 -0.0073298 +-0.963572 0.284708 -0.58032 -0.706186 -0.95045 0.0150127 0.0315615 0.96933 +0.840222 -0.683602 0.910108 -0.343273 0.441095 0.63458 0.89769 0.554707 +0.491723 -0.774222 -0.692531 -0.0468481 0.706801 -0.339504 0.59126 -0.686917 +-0.445663 -0.649241 -0.863431 -0.710597 -0.921198 -0.901963 -0.129142 0.760962 +0.0320171 -0.285886 0.338763 -0.768237 0.252418 -0.205757 -0.574938 -0.879478 +0.301201 -0.413578 -0.519134 0.047605 0.462966 -0.441339 -0.94419 -0.427017 +-0.358283 -0.96023 -0.598302 -0.0410851 0.557403 -0.534843 0.747025 -0.134568 +0.880795 0.610099 -0.582609 -0.456949 0.95577 0.576349 0.684508 0.665622 +-0.237965 0.384696 -0.179683 0.324595 -0.992583 0.0704854 0.401968 0.796009 +-0.00203615 0.69546 0.328352 -0.509609 -0.447603 -0.265674 -0.475372 -0.0344349 +-0.589852 0.338638 -0.361372 -0.868961 -0.736954 0.113487 0.704388 0.555416 +-0.130052 -0.0963523 0.362398 0.762927 0.0542655 -0.558715 0.613645 0.611645 +-0.0890763 0.073031 -0.520539 0.53027 -0.0493678 0.27893 -0.324707 0.48077 +0.485537 -0.209992 -0.278468 0.0241694 0.504499 0.0158526 0.212986 0.896538 +-0.918242 -0.347432 0.0817963 -0.190843 0.898233 -0.91068 -0.212327 0.761878 +0.0486397 -0.154782 0.17479 -0.282162 0.319754 -0.349857 -0.819006 0.953552 +-0.600682 0.33818 -0.569613 -0.966094 0.389177 0.00301871 -0.460958 -0.802867 +0.897449 0.218671 0.834667 0.383977 0.24897 -0.471332 0.311505 0.275869 +-0.955746 0.310375 -0.782398 -0.559921 0.0162922 -0.368741 0.689078 0.788591 +0.312957 0.474791 0.789484 0.12461 0.0376771 0.358785 0.264312 -0.090945 +-0.187699 0.693019 0.0338453 0.981572 -0.667717 -0.222581 0.969189 -0.492898 +-0.162957 0.414095 -0.525001 -0.542582 0.761473 0.867993 -0.479436 0.969725 +0.122143 -0.367049 -0.211531 -0.813606 -0.735177 -0.588383 -0.363287 -0.682746 +-0.0615493 -0.111727 0.0677509 -0.994696 -0.482459 0.71518 0.714496 0.816877 +0.477809 -0.845984 -0.104193 0.841676 0.98396 -0.14268 -0.174282 0.178472 +0.227179 -0.00360693 0.695781 -0.551831 0.36939 0.227701 0.849255 -0.591003 +0.327169 0.788534 -0.511301 -0.22985 -0.817921 0.331116 -0.214407 -0.910214 +-0.708966 0.208188 -0.508084 -0.540582 -0.193875 0.608349 0.967027 -0.279604 +0.364089 0.768508 -0.430323 0.781235 0.229113 -0.531661 0.315563 -0.797436 +-0.771633 -0.964051 0.887155 0.0490612 -0.49456 0.60161 -0.577165 -0.42747 +0.631762 -0.10653 -0.87284 -0.791872 -0.397926 -0.815688 -0.443718 0.676639 +0.237383 0.627652 0.581267 -0.0624467 0.481185 -0.734953 0.105723 -0.930586 +0.281403 0.460436 -0.00877237 -0.219244 0.891316 -0.769947 -0.576876 -0.577317 +-0.264914 0.949003 0.242688 0.122196 -0.537458 0.642368 -0.401507 -0.305504 +-0.644836 -0.679715 0.308287 -0.116654 -0.350678 0.827556 0.269841 0.875639 +-0.0122482 0.788323 -0.0636885 -0.920086 -0.558517 -0.581069 -6.7954e-05 0.377795 +-0.83225 0.981355 -0.231438 -0.0760357 -0.381715 -0.107074 -0.117899 0.190844 +0.947034 -0.0348618 0.250442 0.191565 -0.775705 0.154775 -0.0833674 0.672069 +-0.651433 -0.85605 -0.218248 0.339136 0.812395 0.793409 0.203541 0.140841 +-0.15254 0.249303 -0.773216 0.477813 -0.726266 -0.186391 -0.042282 0.863566 +-0.22177 0.165006 0.119711 -0.99751 0.462757 -0.0655601 -0.141857 0.907958 +0.457659 0.189563 0.373878 -0.584828 -0.839178 -0.413517 -0.902242 -0.962533 +0.636505 0.614248 -0.307533 -0.0669895 0.68695 0.974162 -0.414596 0.909689 +-0.771077 -0.738859 -0.750467 0.519689 -0.998582 -0.0267039 0.972495 0.0175519 +0.765825 -0.287436 0.222765 0.961867 -0.305154 0.788899 -0.295583 0.709795 +-0.246841 0.961723 -0.777986 0.893427 -0.423192 -0.109563 -0.925778 -0.753771 +0.104348 0.302678 -0.912214 0.00249155 -0.312287 0.396746 0.168541 0.115341 +0.014949 -0.252524 -0.657262 -0.20561 0.199603 0.228653 0.720772 -0.918958 +-0.774701 0.975592 -0.946264 -0.849281 -0.455914 0.192243 0.424375 0.56935 +0.66413 0.862284 0.34288 0.819815 0.280028 -0.0379026 0.776205 -0.0816372 +-0.693112 0.654071 -0.385478 -0.673351 0.674679 -0.128085 -0.327999 0.123251 +-0.863902 -0.605326 -0.768949 -0.732213 -0.859094 -0.910892 -0.753148 0.852136 +0.139327 0.647198 -0.695638 -0.650699 0.488065 0.710881 -0.052738 0.979065 +0.96188 -0.882517 -0.487372 -0.895156 -0.731849 -0.752382 -0.0555075 -0.841653 +0.289452 0.190389 -0.439215 0.963425 -0.180696 -0.41886 0.626262 -0.832502 +0.0952616 0.145581 -0.944876 -0.890151 -0.990307 -0.899171 -0.906756 0.715892 +-0.758892 -0.167672 -0.989394 0.903334 -0.220127 -0.353353 0.656034 0.0925861 +0.257189 -0.913204 0.124925 -0.641496 -0.503652 -0.30457 0.0317497 -0.808368 +0.811121 0.674702 -0.0342996 -0.664897 -0.0646336 -0.654337 0.825959 -0.422053 +0.850755 0.0808313 -0.0784897 -0.66403 -0.293737 -0.549064 0.453074 0.550516 +-0.506625 0.500224 0.502962 0.271969 0.539411 0.329842 -0.549577 0.0854797 +-0.351406 0.052171 0.941238 0.03936 -0.123868 0.150834 0.81009 0.975996 +0.599451 0.36938 0.6028 0.653908 -0.721486 -0.396746 -0.646534 0.923577 +-0.232604 -0.897794 -0.0260559 0.91711 -0.838969 -0.0474446 -0.251691 -0.0617259 +0.060493 -0.464392 0.661492 -0.285598 -0.635514 -0.369137 0.352977 -0.890196 +-0.955907 -0.116436 0.812475 -0.899991 -0.408582 0.916462 -0.60746 0.00521365 +-0.982504 -0.106176 -0.0219168 -0.509379 -0.419312 -0.878456 -0.503178 -0.484892 +-0.978184 0.338475 0.462099 -0.621855 0.479982 0.361033 -0.151682 0.197591 +-0.144616 0.646619 -0.0578232 -0.742414 0.541164 -0.67586 0.381051 0.51102 +0.351967 -0.890665 0.120717 -0.0687964 0.986809 -0.934492 0.887835 -0.113176 +-0.70413 -0.629716 -0.939221 0.0804935 0.644462 -0.4129 0.67533 0.209738 +0.521936 -0.787522 0.892707 0.670515 0.461472 -0.904075 -0.107031 -0.940442 +-0.98956 -0.603699 -0.31856 0.276867 -0.317106 0.348596 0.773518 -0.154266 +-0.8903 -0.884725 -0.868828 0.188125 -0.300871 0.530784 0.131985 0.105447 +-0.144031 0.304302 -0.985802 -0.384027 0.37946 -0.332699 0.517149 -0.455308 +-0.119757 0.677374 0.925894 -0.929066 0.786887 0.960437 0.788471 0.715683 +0.958458 0.568038 0.222981 -0.817089 0.939071 0.249736 0.320322 -0.487564 +0.703385 -0.393002 -0.688667 -0.903855 -0.971126 0.712135 -0.668344 -0.580313 +0.0283297 0.392803 0.873114 -0.787694 0.557397 0.0225545 -0.0324734 -0.131235 +0.712484 0.1031 -0.0644722 0.895062 -0.617746 0.389033 0.587848 0.61443 +0.957954 0.323512 -0.915179 0.958706 0.502953 0.183585 0.794429 0.447973 +0.0684171 -0.859266 0.199364 -0.00677877 0.775452 0.959018 0.815097 0.76503 +0.032451 -0.0488488 0.305582 0.864427 0.495644 -0.345989 -0.563957 0.604405 +-0.465654 -0.40132 0.284185 -0.36625 -0.455115 -0.558626 0.399088 -0.804661 +0.148858 -0.55583 0.745466 0.348599 -0.984103 -0.306385 -0.147229 0.0302473 +-0.199802 0.493632 -0.478577 0.443527 0.759946 0.600887 0.00843066 0.0412703 +-0.799267 0.333701 -0.38604 0.635409 0.281086 0.211121 0.718651 -0.512993 +0.950882 -0.173535 0.495208 -0.507966 0.885123 -0.79731 -0.334338 -0.844913 +0.676898 0.686809 0.673109 0.608432 -0.262318 0.897646 0.547983 0.742935 +-0.839834 0.51153 0.304554 -0.534904 -0.665482 -0.105767 0.447829 -0.395065 +0.24932 -0.959949 -0.845937 0.790385 -0.36664 -0.0685263 -0.763679 -0.341931 +0.770678 0.104919 0.67285 -0.475033 -0.281144 -0.535127 -0.104696 -0.167921 +0.406637 -0.400048 -0.529971 0.945332 -0.716183 0.554581 -0.858926 0.530261 +-0.130121 0.45542 -0.799044 -0.514247 -0.885435 0.0658838 -0.112793 0.922899 +-0.632733 -0.839631 0.657114 -0.0595196 0.85263 -0.483647 -0.588631 0.434639 +-0.763286 0.829716 -0.774419 -0.135791 -0.226617 -0.971946 0.450276 -0.748912 +-0.829521 -0.219481 0.00672118 -0.794178 -0.568094 0.184311 0.603022 -0.0555631 +-0.818178 -0.904793 0.518201 -0.14007 -0.86115 0.624831 -0.536512 0.268663 +0.747958 -0.978679 0.647341 0.187085 0.788826 0.944593 0.60351 0.378025 +0.896682 0.152103 -0.640573 -0.916862 0.809931 -0.718852 0.746217 -0.288638 +0.132065 0.853987 -0.946194 0.178117 -0.234832 -0.787313 0.724442 -0.804484 +0.841424 -0.935334 -0.219099 0.853492 -0.425391 -0.666394 0.804367 0.450022 +-0.0559757 0.89209 -0.666535 -0.27427 -0.950254 0.386653 0.669156 -0.469244 +-0.639528 0.746106 0.900671 0.298351 -0.558404 0.187357 -0.474758 0.856625 +0.943668 0.272076 -0.47407 0.246344 0.502997 -0.183403 0.849963 0.0174011 +0.677586 -0.502934 0.454683 0.605003 -0.92176 -0.616544 0.487946 0.397674 +-0.551589 0.609696 -0.489814 0.925535 -0.413836 -0.967745 -0.76 0.00678453 +-0.836005 -0.798824 0.893406 -0.748916 -0.439515 -0.106358 -0.455938 0.830748 +0.0613894 -0.367138 -0.901316 0.340187 -0.329082 0.448266 -0.0103162 -0.510146 +-0.925967 -0.348735 -0.617499 -0.466985 0.0377553 0.305652 -0.373743 -0.563813 +-0.215901 0.971575 -0.387115 -0.552134 -0.335928 0.891275 0.107977 -0.353687 +0.346958 0.0134376 0.972283 -0.0779874 0.960555 0.44081 0.313072 -0.20081 +0.50655 0.966124 0.531481 0.536602 -0.0962096 -0.645679 -0.748907 -0.114082 +-0.730333 -0.309869 -0.558686 -0.33768 0.27867 0.701115 0.105935 -0.930818 +0.470554 0.381202 0.607257 -0.267815 0.566203 0.409737 0.553764 0.258616 +-0.367004 0.738815 -0.0804347 -0.0459079 0.721225 -0.582668 0.622424 -0.292641 +0.545229 0.166704 -0.202632 -0.481201 -0.878181 0.0831667 0.758087 0.259266 +0.754528 0.474816 0.00861407 0.406863 -0.604234 -0.435677 -0.54182 0.709244 +-0.913399 -0.364028 0.572926 0.307614 -0.425578 -0.963852 -0.643343 0.261065 +-0.603916 0.909204 0.196812 -0.351592 -0.445108 0.398432 0.616995 0.623206 +0.850149 -0.0909519 -0.29138 -0.602343 -0.669736 -0.629829 0.172692 -0.473004 +0.248849 0.0156421 0.17716 0.0974834 0.152069 0.802682 0.543331 -0.506565 +0.729818 0.122228 -0.0971823 -0.244587 0.415095 0.977121 0.210393 0.0410674 +0.879973 0.135216 -0.704358 -0.917243 -0.840452 0.276222 0.93666 -0.692741 +-0.933786 0.664264 0.173459 0.375414 -0.8766 0.788061 -0.399528 -0.0286686 +-0.642726 -0.618546 -0.537998 0.641385 -0.292247 -0.0933617 0.873355 -0.487486 +0.183198 0.671922 0.838543 0.191269 -0.377824 0.967969 0.0460472 -0.386277 +-0.0989322 -0.614006 -0.42701 -0.636265 0.0925185 -0.539117 0.354915 -0.504088 +0.167572 0.457611 0.54502 0.0310795 0.519358 0.275429 0.916363 0.881313 +-0.0726403 0.414511 -0.716541 -0.391977 0.690113 0.716706 0.281276 -0.842286 +0.287011 -0.432998 0.781827 -0.166975 -0.194825 0.455087 -0.760107 -0.836116 +-0.170192 0.876408 -0.834564 -0.960086 -0.952722 0.52316 0.0729177 0.501935 +-0.662812 0.875393 0.843351 -0.187418 0.773837 0.735443 -0.717014 0.553597 +-0.157824 -0.159628 -0.419416 0.15577 -0.812527 0.360696 -0.217718 0.0164864 +-0.740506 -0.103478 0.0169908 0.419559 0.821638 0.62033 0.65779 -0.343858 +0.452492 0.2548 -0.795943 -0.694096 -0.52172 -0.544809 0.531331 -0.960923 +-0.657693 -0.882995 0.0375964 0.22507 -0.920386 0.330874 -0.615008 0.585572 +0.205102 0.581671 0.789423 -0.845662 -0.209172 0.564361 0.667472 0.578153 +0.0689673 -0.0126824 0.241653 -0.327017 -0.512004 -0.449905 0.164354 -0.211784 +-0.297128 0.886296 0.348349 0.633904 0.388161 -0.335727 -0.842603 -0.572757 +0.283042 0.113655 -0.763819 0.566521 -0.804337 0.790946 -0.422361 0.066902 +0.54913 0.123015 0.829041 -0.391733 0.39943 -0.636955 -0.695998 0.0905171 +0.175117 0.606036 -0.673416 0.249112 -0.496315 -0.167191 -0.091044 0.513134 +0.877112 0.396982 0.685741 -0.792368 -0.235322 0.618024 -0.137511 0.12308 +0.490078 0.0671532 0.162762 -0.420424 -0.0875615 -0.199071 -0.783905 -0.241668 +0.64501 0.304917 0.418164 -0.212675 0.521454 0.708504 -0.0821817 0.0594873 +-0.820473 0.0948298 -0.886739 -0.550107 -0.652213 -0.819744 -0.0997843 0.353467 +0.306612 -0.39133 -0.348201 0.448639 -0.789163 0.0186648 0.295967 0.914176 +-0.533277 -0.0339372 0.104407 0.324413 0.212383 -0.878661 0.209887 0.306651 +-0.881642 0.25031 -0.415166 0.855903 0.214193 0.025399 -0.22203 0.571824 +0.71636 0.396948 -0.892458 0.858979 0.904456 -0.624258 -0.997935 -0.209621 +-0.302727 0.358524 -0.281995 -0.245178 0.00841442 -0.11592 -0.774032 0.561263 +0.948927 0.16215 -0.390985 -0.424176 0.379584 0.206267 -0.286016 0.558752 +-0.47546 0.6948 -0.971628 -0.3329 0.464283 0.822603 0.590005 -0.128156 +-0.265066 -0.712716 0.355359 -0.210927 0.86857 -0.405269 0.0154551 -0.0524003 +-0.0342695 0.785197 -0.12004 -0.619969 0.0305008 -0.323594 -0.0334806 0.0765711 +0.234872 -0.665406 -0.677282 0.392269 0.739396 -0.241054 0.167588 0.774975 +-0.764842 -0.122105 0.85323 -0.707777 -0.631841 0.436807 -0.160758 -0.0016953 +0.567043 0.614199 -0.0145614 0.142769 -0.377262 -0.237247 0.461966 0.690182 +0.0134212 -0.0299085 0.0534913 -0.374947 -0.627306 -0.356386 0.476337 -0.891982 +0.468098 -0.574631 -0.456699 -0.918161 0.208839 0.566924 -0.115736 0.869802 +0.0793177 0.490222 -0.185521 0.189923 -0.0943652 0.562403 -0.410622 -0.712502 +-0.951183 -0.12032 0.776452 0.529138 -0.84233 0.972017 -0.605747 -0.0206698 +-0.256617 0.729897 -0.727987 -0.526322 -0.0425027 0.168154 0.0810821 -0.540821 +-0.548331 0.853898 -0.504343 -0.0463173 -0.0713747 -0.314358 0.606325 -0.419281 +0.892865 -0.604713 0.574714 0.125193 0.486 -0.727891 0.576456 0.967208 +0.568343 -0.982626 0.312736 -0.681818 0.317003 -0.121853 -0.0536441 0.860819 +0.826723 0.318229 -0.736094 0.0134885 0.965055 -0.247302 -0.688274 0.482682 +-0.0292887 -0.358691 0.261033 -0.0598555 -0.876009 -0.557208 0.744197 0.276602 +-0.604998 0.332384 -0.983015 -0.304436 0.923102 0.749504 -0.757294 -0.377615 +-0.0648532 0.922708 -0.930013 -0.752686 -0.744714 0.0273013 0.0490791 0.857023 +-0.424368 0.826781 -0.879546 0.311477 0.700447 0.160418 -0.998176 -0.242925 +-0.209553 -0.192164 -0.442874 -0.816464 -0.989184 0.332274 -0.790085 0.54333 +-0.874551 0.0181679 -0.516911 -0.994742 -0.102463 0.348485 -0.0252379 -0.938111 +-0.640902 0.18803 0.64721 0.0115315 0.787931 -0.321811 0.39656 -0.803182 +0.0414234 -0.690448 -0.0515842 0.470013 0.446467 -0.109847 -0.43762 -0.888103 +-0.244172 -0.810811 -0.463355 0.508295 -0.954523 0.752755 0.819407 0.336853 +-0.645397 -0.708511 -0.269597 0.0576244 -0.907121 -0.908286 0.840547 0.271441 +0.213379 0.204338 -0.224331 -0.470491 -0.747464 0.586295 -0.193571 0.727277 +0.667593 0.846802 -0.92505 -0.967607 -0.21128 -0.20069 0.8426 -0.912126 +-0.094351 0.754726 0.692247 -0.8727 -0.435482 0.729205 0.329841 -0.239777 +0.482003 0.540016 0.400182 0.584533 0.594352 -0.224742 -0.99018 -0.365495 +-0.123584 -0.547139 0.170261 0.704244 0.704143 -0.46706 0.128778 0.543696 +-0.209179 -0.400937 -0.458475 -0.338609 -0.924137 -0.130142 -0.384185 -0.267361 +0.394728 -0.300397 0.502588 -5.66998e-05 -0.754345 0.733919 -0.225551 -0.225447 +0.798904 0.313307 0.885807 -0.804789 0.841102 -0.17677 0.665423 0.934713 +0.133434 0.862782 0.706749 0.743111 0.803831 -0.405349 -0.680002 -0.65964 +0.709679 -0.578185 0.742372 0.913493 0.750212 -0.81846 0.817477 0.779722 +-0.646891 0.480178 -0.833644 -0.297043 -0.855037 -0.323747 0.196813 0.841262 +0.27306 -0.867964 -0.36413 -0.527862 0.899337 -0.651062 -0.0152727 0.510921 +-0.62046 -0.860057 -0.603597 -0.497356 -0.85335 -0.667626 0.981406 0.663257 +-0.236741 0.87578 -0.635824 -0.0714842 -0.577548 0.248457 -0.314388 -0.774441 +0.0308561 0.877784 0.882683 0.599996 0.69647 0.0172356 0.016956 0.925496 +0.888874 0.411776 0.660213 -0.981331 -0.861061 -0.283163 -0.36206 0.218147 +0.171534 0.600916 0.34933 0.158056 -0.214328 0.354213 0.797588 0.630514 +0.766312 0.484621 -0.592262 -0.498101 0.976096 0.702271 -0.765422 0.709424 +0.0999393 -0.768355 -0.480068 0.266339 0.133088 -0.829619 -0.164323 0.110434 +-0.300064 -0.235681 0.341673 -0.241589 -0.342955 0.0950661 -0.820896 0.304435 +-0.501493 0.746096 0.728828 0.483865 -0.471456 0.0280791 -0.723644 0.860073 +0.142364 -0.795489 -0.708879 -0.317509 -0.201062 0.923447 0.367666 0.0252843 +-0.476622 -0.347662 -0.855173 0.00143293 0.141859 -0.303242 0.358551 -0.0809706 +0.932145 -0.18086 -0.978378 0.979316 -0.338207 -0.365419 0.328332 0.396093 +0.964991 -0.140835 0.301633 -0.0695005 0.0705005 -0.957443 -0.804295 0.601779 +0.830231 -0.879194 -0.156087 -0.697821 -0.700792 0.601835 0.727405 -0.282395 +-0.931165 0.331703 0.789664 0.693819 0.678749 0.449265 -0.955396 0.298338 +0.176182 0.87002 -0.446887 0.657141 0.773813 -0.883434 0.938524 -0.479869 +-0.249151 -0.725152 0.266159 -0.0654869 0.0862028 0.763146 0.900775 -0.581974 +0.845321 -0.0729742 -0.831248 -0.903661 0.324603 0.339655 0.815701 -0.0998833 +-0.559835 -0.851241 -0.663833 -0.906784 -0.433688 0.176868 -0.390089 -0.478584 +0.144606 0.369814 0.0372999 0.412716 0.494503 -0.82662 -0.572932 -0.174767 +0.0859566 0.925116 -0.285663 0.508513 -0.411593 -0.715404 -0.373222 -0.460061 +0.551503 0.667559 -0.436541 0.0951149 -0.752639 0.931708 0.546945 0.359672 +-0.212842 -0.298282 0.0607391 0.030647 0.401654 -0.96886 -0.5564 -0.229788 +-0.924008 -0.811365 0.639315 0.26512 -0.769191 -0.902165 -0.251788 0.848436 +0.808648 0.805774 -0.472114 0.705025 0.55845 0.17971 0.289988 -0.307662 +-0.361655 -0.759789 0.989953 -0.0391764 -0.051465 0.900116 -0.393512 0.440551 +0.0763763 0.489862 -0.666779 0.562786 0.291706 0.170673 0.787105 -0.289259 +-0.257504 -0.43626 0.792029 0.274716 -0.617916 -0.654418 -0.958838 0.0568095 +0.616259 -0.914804 -0.0190587 -0.704978 -0.242336 -0.973583 0.496185 -0.615579 +0.920462 0.866854 -0.829198 -0.136917 -0.492731 -0.922408 -0.951137 0.727202 +0.00348854 -0.391947 -0.231838 0.493274 -0.996519 -0.260075 0.771868 0.870124 +0.830233 -0.925175 0.996539 0.826752 -0.418671 0.417069 -0.828469 0.228377 +0.821491 -0.49821 -0.163306 -0.818344 -0.0498616 -0.170444 0.0328762 -0.731516 +0.667227 -0.332722 0.953548 -0.405401 0.620377 -0.939604 -0.755965 -0.0372982 +-0.092582 0.692445 0.944956 -0.20967 -0.941755 0.0343647 0.968934 -0.566135 +-0.141614 0.356234 -0.131954 -0.51963 -0.0972306 -0.995663 0.184744 0.135003 +0.46079 -0.0962763 0.666713 -0.13341 0.380956 -0.00794642 -0.61904 0.328261 +0.430556 -0.112199 -0.77223 -0.711065 0.352103 -0.057003 -0.120917 -0.418046 +0.703284 -0.343972 -0.934621 0.18446 0.194894 0.0768015 0.748957 0.893926 +-0.6781 0.591317 -0.876744 0.341167 0.840744 0.479815 -0.998961 -0.668906 +-0.564083 -0.120834 0.356981 0.989786 0.227531 0.680774 0.978001 0.715466 +-0.414349 0.160306 -0.100453 -0.19362 0.706187 -0.221035 -0.632907 -0.632393 +0.747987 0.955967 0.396999 -0.967516 0.563976 0.781441 0.872177 0.211161 +-0.48628 0.343442 0.924508 -0.473322 -0.105208 0.954776 0.412598 -0.276284 +0.641808 0.664805 0.422078 0.804798 0.624479 0.193849 0.463262 0.674536 +0.940558 0.876727 0.357005 0.757128 0.312283 -0.967821 0.528998 0.677824 +-0.583199 0.316136 0.0934153 0.175373 0.363483 0.264127 -0.98363 -0.228808 +0.311756 -0.54244 -0.593852 -0.66438 0.342554 0.00448297 0.391012 0.501337 +0.82219 0.114693 0.857205 -0.113997 -0.80673 0.12687 -0.0537883 -0.877063 +-0.128875 -0.624697 -0.98395 -0.926508 0.664611 0.729306 -0.827396 -0.359327 +-0.24602 0.52598 -0.0437766 0.574809 -0.993097 0.727501 -0.316276 -0.348622 +-0.285874 0.490093 0.125751 -0.393087 -0.714803 0.434096 -0.411678 -0.253062 +0.141284 -0.218594 -0.290909 -0.0756113 0.319561 0.33128 -0.869283 0.475909 +-0.933981 0.481987 -0.118591 -0.611428 0.796587 0.654279 -0.450943 0.225717 +0.584282 0.0561487 -0.551652 -0.706212 0.782172 0.457304 0.826883 -0.294561 +-0.00654909 -0.0238666 -0.606697 0.171336 0.522634 0.414978 0.67485 0.159151 +-0.66459 0.154426 0.60672 0.336923 0.785555 -0.737444 0.917125 0.0064614 +-0.577299 -0.834931 -0.358861 -0.765279 0.834001 0.471985 -0.160271 0.0363573 +-0.290718 0.186945 -0.0422565 0.671869 -0.0464416 -0.527829 0.179027 -0.094191 +0.823146 -0.0989166 -0.185364 -0.412318 0.105894 -0.31185 0.76524 -0.468312 +-0.537756 0.944155 -0.113883 -0.636604 -0.575465 -0.00326705 0.314706 -0.507163 +0.51412 0.521641 0.938342 -0.499935 -0.205773 -0.495695 -0.160574 0.184923 +-0.742075 -0.842996 -0.808609 -0.690305 -0.676926 -0.343345 0.445905 0.486126 +-0.0634245 -0.207896 -0.16498 -0.925668 0.582142 -0.666177 -0.841095 -0.453497 +-0.154675 0.622874 0.669864 0.00453511 -0.958206 -0.702163 0.237264 -0.511588 +0.653803 -0.441264 -0.0604796 -0.602637 0.167087 0.128361 0.389147 0.271361 +0.574152 -0.275057 -0.883065 0.195813 0.643444 -0.930003 -0.904643 -0.609023 +-0.868801 0.112228 0.697994 0.645571 -0.63435 0.783179 0.732564 -0.934264 +0.814669 -0.194712 0.150047 0.947009 -0.826012 0.896548 0.781659 -0.189373 +-0.504756 0.358911 0.0557541 -0.482806 0.8569 -0.21997 0.885924 -0.908434 +0.6879 0.0709806 0.387706 -0.321125 0.19731 0.115749 0.354793 0.495713 +0.295946 0.44123 -0.339491 0.825531 0.271526 0.686722 0.45988 0.471292 +-0.70877 0.656621 -0.799589 -0.285575 -0.191575 -0.647724 -0.611062 -0.236987 +-0.933419 0.967166 0.688633 -0.0451107 -0.608065 0.0354303 0.234907 -0.335263 +0.0183814 0.15336 -0.797535 0.303284 0.0978846 0.310774 -0.184561 -0.207435 +-0.378662 0.802281 0.523453 -0.45621 -0.224442 -0.0527786 0.28046 -0.85757 +-0.563993 0.720886 0.745362 0.936508 0.105535 -0.40803 -0.673072 -0.509342 +-0.558965 -0.534701 -0.949386 -0.497307 -0.845344 0.952257 0.774218 -0.784747 +-0.226164 -0.353859 -0.0276497 -0.138868 0.893743 0.263379 -0.742459 -0.73528 +0.920107 0.257864 0.398545 0.143756 0.760314 0.455289 -0.501466 -0.596911 +0.408561 -0.727019 0.912709 0.533152 0.329288 -0.348257 0.965502 0.34198 +-0.411456 0.652547 -0.299001 -0.896395 -0.656623 0.0781634 0.380077 0.914864 +-0.326664 -0.131558 -0.491358 0.832212 -0.468633 0.576658 0.901296 -0.366231 +-0.270571 0.3933 -0.0355827 0.864757 -0.149494 0.185708 -0.608046 0.415472 +0.299774 0.282516 -0.483964 -0.841935 -0.483778 0.425422 0.446914 0.480453 +0.529066 -0.362368 0.247862 0.889101 0.248018 -0.426146 -0.93691 0.0142508 +0.394014 -0.992437 -0.0965593 0.425013 -0.584837 -0.34293 -0.121579 -0.240481 +-0.381852 0.980143 0.557916 -0.207325 -0.265601 -0.0745425 0.916415 0.0431458 +0.787258 0.27153 0.185874 -0.183988 -0.32713 0.817681 0.0656985 0.606756 +0.0447763 -0.0805468 0.94682 -0.166576 0.578229 0.739584 0.698273 -0.14163 +0.488017 0.857431 0.875631 0.564616 -0.344284 -0.933559 -0.704433 0.450133 +0.707089 -0.458679 -0.01303 -0.274325 -0.427044 -0.392301 -0.925996 -0.948434 +-0.783134 0.910236 -0.650189 -0.95997 -0.24753 -0.219915 -0.406262 0.607386 +0.812164 0.691252 0.808511 -0.230207 -0.00842888 -0.764701 -0.479814 -0.157139 +-0.416275 0.394686 0.367218 -0.966156 0.582522 -0.614079 0.954274 0.473963 +-0.549753 -0.00547251 -0.36182 -0.712263 0.530485 0.621769 -0.539101 -0.271036 +-0.618533 -0.218757 0.155714 0.422001 -0.21221 0.562021 0.739202 0.769531 +-0.0498263 -0.0162003 0.267082 0.775233 0.91126 0.749903 0.735397 0.724286 +0.81932 -0.843928 0.529529 0.259539 -0.184566 -0.245879 0.905974 -0.856265 +-0.903726 -0.248198 -0.770753 0.474829 -0.952649 0.0330828 -0.556191 0.956247 +-0.624436 0.47964 0.131432 -0.168345 -0.477246 -0.0911477 0.778222 0.135703 +0.735938 0.658457 0.206606 0.421425 0.385614 -0.812726 -0.306028 -0.419352 +0.0394456 0.847125 0.668017 0.110562 0.337858 0.183032 -0.551017 0.783097 +-0.704871 -0.480713 0.646156 0.16095 -0.765813 0.735973 0.625862 0.729738 +0.18318 0.0945581 0.55991 0.628873 -0.960968 -0.329497 -0.809604 -0.0621605 +0.7643 0.65972 -0.103192 0.023295 0.957597 0.835945 -0.19354 -0.298343 +0.601999 -0.650217 0.787204 -0.0923997 -0.043043 -0.502477 0.819477 0.91156 +-0.80225 0.629247 0.485568 0.884574 0.661799 -0.0913704 -0.717703 0.0780696 +0.852178 -0.55987 -0.782186 0.392126 -0.165152 -0.364592 -0.571183 0.854628 +-0.993015 -0.884956 -0.876392 0.303986 -0.653503 -0.934443 0.30092 -0.239616 +-0.373432 -0.994714 -0.0860847 -0.127951 -0.226855 0.898356 -0.118759 -0.15347 +0.753139 0.587493 -0.76116 0.800912 -0.0664921 0.717756 0.546394 -0.818198 +-0.848135 0.920414 0.089797 -0.10953 0.487352 -0.0413274 0.160116 -0.922569 +0.620857 0.913376 -0.5371 -0.888848 -0.547893 0.965342 -0.0102596 0.642646 +0.228929 -0.383441 0.616893 -0.215024 -0.110073 0.0767176 0.664356 0.051058 +-0.141747 -0.351581 0.631057 -0.134139 -0.873394 -0.342096 -0.370005 0.686414 +-0.476121 0.953787 0.846469 -0.970234 -0.908107 0.871893 0.278422 0.96444 +0.154088 -0.856321 0.299098 0.465107 -0.982717 0.729739 -0.330896 -0.523069 +-0.647891 0.518537 0.265766 -0.8496 -0.365555 0.250577 -0.860084 0.965434 +0.180901 0.839412 0.0102612 0.519798 0.433035 0.525283 -0.227114 -0.787815 +-0.623962 0.745481 0.822129 0.189897 0.473787 -0.145218 0.685099 0.933544 +-0.990604 0.119522 0.22156 -0.116173 0.727771 0.229791 -0.636448 -0.977407 +0.347856 -0.82244 0.565478 0.633358 0.69042 -0.572761 0.816634 0.921053 +0.50877 0.935481 -0.297248 -0.295278 0.475637 0.833435 0.390233 -0.901122 +-0.604076 0.291104 -0.723547 0.783539 -0.735368 0.977447 -0.000195883 -0.315096 +-0.0472228 0.48099 -0.989383 -0.83706 0.278294 0.0993613 0.134936 0.675335 +0.228965 -0.915804 -0.138968 -0.802494 -0.563767 0.179447 0.246339 -0.156208 +-0.557728 -0.00987051 0.240962 0.789866 0.732192 0.71669 0.367024 -0.738044 +-0.258237 -0.348335 0.323778 0.0357073 -0.0524682 0.558493 -0.33209 0.720644 +-0.526678 0.688981 0.205941 0.279382 -0.455743 0.175003 0.106483 0.472977 +0.604514 0.24659 0.850118 0.916246 0.55859 -0.68052 -0.794915 0.0871143 +0.440163 0.240024 -0.584987 -0.106263 0.255702 0.451313 0.705061 -0.13135 +0.282462 0.612703 0.712391 0.247212 0.924635 -0.924864 -0.0714029 -0.424631 +0.121823 -0.862768 -0.774174 -0.426802 -0.55929 0.0617382 0.204368 0.286078 +0.509855 -0.190018 0.16875 -0.285439 -0.949994 -0.643695 0.285811 -0.855972 +-0.381486 -0.207199 0.0960123 -0.181356 0.992789 0.756944 0.69183 0.118718 +-0.783188 -0.946586 0.0521069 -0.127942 -0.0577861 0.332436 0.0785184 -0.536647 +0.923994 -0.483284 0.333174 0.0843593 0.4227 -0.675179 0.0593178 0.751924 +0.44757 0.469096 -0.817663 -0.614827 -0.149585 0.596369 -0.189046 -0.0777454 +0.273003 0.68871 -0.148789 -0.328606 -0.335955 -0.67944 0.412775 0.769597 +-0.731963 0.346327 0.517231 0.287071 0.152039 0.428483 -0.651829 0.744116 +0.635242 -0.609571 -0.542329 -0.851562 -0.961134 0.389616 -0.376796 -0.126802 +-0.0180099 -0.331095 0.251956 -0.914776 -0.903607 -0.461179 -0.675812 -0.544263 +0.562364 0.401615 -0.25766 -0.00929416 0.265503 -0.836285 0.946206 -0.0850661 +0.669014 0.744431 -0.473584 0.476114 0.125088 0.6667 0.592061 0.475967 +-0.584397 0.535709 0.853683 0.269452 0.25484 0.0672744 0.179976 -0.013398 +0.867427 -0.883255 -0.470908 0.229988 0.85815 -0.292816 -0.311314 -0.0952967 +0.772391 0.71723 -0.298444 0.860807 0.905866 0.801083 -0.257112 0.865618 +0.91475 0.35208 0.739183 0.5542 0.885793 -0.762854 -0.114436 -0.390397 +-0.00238038 0.13775 -0.176457 0.8346 -0.817934 -0.676072 -0.792165 -0.534726 +0.545058 -0.495617 -0.517554 -0.996651 -0.812834 0.601195 -0.0579808 0.931626 +0.702873 0.864469 -0.0558588 0.84158 0.220361 -0.911474 0.381343 0.933388 +0.340707 0.42134 0.98726 -0.843155 0.852878 0.591611 -0.259672 0.0175789 +-0.577658 -0.876924 0.00399223 -0.193853 0.203345 -0.276663 -0.502468 -0.180009 +0.0177999 0.00340674 0.056276 -0.198192 -0.312252 0.633585 0.598034 0.197541 +-0.159061 0.800112 0.784389 0.0723555 0.0359479 0.759342 -0.34009 0.905375 +0.338589 -0.310562 0.883088 0.753153 -0.750019 0.0217613 0.0432865 0.767058 +-0.657262 0.101825 0.149319 0.509225 -0.30078 0.00550695 0.14276 0.927615 +0.893967 0.256508 0.246723 -0.684237 0.140062 0.280849 -0.0466129 -0.328157 +-0.90317 0.446809 0.405565 0.895497 0.106392 -0.597579 0.898757 -0.364794 +0.581448 -0.313556 -0.374284 0.221787 -0.444622 -0.0981259 0.791659 0.714229 +0.499203 -0.985318 -0.950079 -0.433976 -0.459 -0.80906 -0.319202 -0.563101 +0.333075 -0.854522 -0.378698 0.564525 0.0147096 0.75404 -0.0901849 -0.723399 +-0.892629 0.700876 -0.76047 -0.698236 0.721126 0.645856 -0.123505 -0.711135 +-0.740339 -0.796952 0.22256 -0.652009 0.454916 -0.173672 0.647484 0.962477 +-0.46539 0.652972 -0.668187 -0.409683 -0.253592 -0.808649 0.0459738 0.346145 +-0.131851 0.481449 0.274155 0.327115 0.538323 -0.855945 0.376928 -0.464248 +-0.311477 0.60781 0.0647915 0.0349144 -0.906979 -0.221873 -0.293571 -0.0705909 +0.255457 0.393087 -0.200897 0.724084 0.752364 0.359745 -0.0612326 -0.343136 +-0.959241 0.204038 -0.877381 0.183352 0.936718 0.669003 -0.822116 -0.688967 +-0.0105198 0.11415 0.676121 -0.0160809 0.207737 -0.899675 -0.742513 -0.600623 +0.139435 0.192258 0.0616812 0.137983 0.817877 -0.947131 0.941711 -0.14502 +-0.408732 0.837576 -0.80274 -0.183649 -0.0150065 -0.0972932 -0.0893301 0.570324 +-0.855058 0.000896283 0.963632 0.269734 0.669349 0.869792 -0.22901 -0.380569 +0.244925 0.665405 -0.546693 -0.744555 0.781028 0.257806 -0.26532 -0.776705 +0.167019 0.945111 -0.267772 0.527467 0.694969 -0.387071 0.87623 -0.813872 +-0.174104 0.503103 0.313091 0.709993 0.763812 -0.642976 0.546306 -0.197767 +0.24718 0.855926 -0.99392 0.185421 -0.080989 -0.193255 -0.13245 0.817247 +0.538442 -0.806945 0.38069 0.512923 -0.704145 0.897306 0.180391 -0.908193 +0.522868 0.0509071 0.604966 -0.70499 -0.338617 -0.160258 0.606294 -0.272594 +-0.105343 0.71768 0.622049 -0.802764 -0.683397 -0.266077 0.998037 -0.0913231 +-0.435137 0.938807 0.894503 -0.454815 0.149053 -0.924636 0.365601 0.186184 +0.8702 -0.621265 0.791263 0.0014155 -0.416484 0.616878 0.0670925 -0.632963 +0.0549841 0.442197 -0.878079 0.776771 0.256464 0.6385 -0.763827 -0.217914 +0.468603 0.337946 0.276022 -0.65522 0.208541 -0.0905303 -0.305621 0.852601 +0.979409 -0.51722 0.106743 0.0763094 -0.797137 -0.88488 0.504488 -0.168023 +-0.266514 0.260147 -0.416327 -0.475632 -0.121679 0.752852 -0.450344 -0.796255 +-0.666477 -0.686081 0.0558797 0.891521 -0.213814 -0.632339 0.132522 0.669797 +0.478548 0.25804 -0.73034 -0.763098 -0.7187 -0.123103 0.396324 0.747569 +0.250672 -0.0969102 0.565463 -0.269419 -0.113583 0.885196 0.221078 -0.754703 +0.809342 -0.679751 -0.952205 0.869309 -0.144359 0.203847 -0.39146 0.626885 +0.126664 0.689631 -0.990055 0.102341 -0.548834 -0.436249 0.638882 0.257144 +0.679681 -0.662895 -0.682011 0.908557 -0.286349 0.502272 0.0131963 0.458774 +0.956644 0.585121 0.123999 -0.528068 0.018217 -0.109967 -0.49207 -0.963983 +0.661237 -0.437022 0.285641 -0.542122 0.34798 0.483353 0.200802 -0.575863 +-0.293233 0.101943 0.776871 -0.716736 0.339757 0.348393 -0.877006 0.0756994 +-0.192361 -0.429056 0.698857 0.0690558 0.571109 0.689003 0.558945 -0.20103 +0.304939 -0.75176 -0.234605 -0.531447 0.962697 -0.81432 0.287845 0.0611473 +0.0303345 0.50117 0.256422 0.390316 -0.943237 0.880831 0.812167 -0.918173 +-0.460962 -0.456693 -0.256297 0.400444 -0.0476327 0.112099 0.933638 -0.0833243 +0.0664529 -0.490261 0.818026 -0.579211 -0.405074 -0.293812 -0.835751 0.818004 +0.589462 0.752656 -0.851615 0.598916 -0.991793 0.59601 -0.387809 -0.234004 +0.312491 -0.744039 -0.393213 0.12193 -0.205172 0.964511 -0.396016 0.823664 +0.241052 -0.527564 0.757131 -0.0885936 -0.440873 -0.0562625 -0.108217 0.997197 +-0.348426 0.939195 0.764351 0.111117 -0.509492 0.794485 0.547293 0.811958 +0.265172 -0.726696 -0.646237 0.852409 -0.752579 -0.529954 -0.892903 0.744079 +0.991331 -0.968149 0.582996 -0.799841 0.130517 -0.0319984 -0.369265 0.661045 +0.905755 -0.101298 -0.520091 0.470791 0.827143 0.148135 -0.843935 -0.00181772 +0.517024 -0.391846 0.360668 -0.288355 0.40142 0.962982 0.370957 -0.375467 +-0.639948 -0.908811 0.925173 -0.258794 -0.986795 -0.958077 -0.771582 0.833089 +0.323493 0.219279 0.202369 -0.662371 0.216746 -0.212691 -0.595568 -0.237929 +-0.253571 -0.302909 0.00829868 0.593948 -0.661691 0.252085 0.290047 0.340127 +-0.0323342 -0.0986575 0.471169 0.606045 0.472742 0.856805 0.478151 0.262277 +-0.823422 -0.999551 -0.701375 -0.628034 0.810717 0.478998 -0.439586 -0.402394 +-0.0149096 0.462762 -0.218376 -0.128703 0.583629 0.540675 -0.950508 -0.945796 +0.196795 -0.681972 0.199658 -0.0528746 0.852323 -0.781498 -0.180707 0.928392 +-0.0355948 0.245186 0.941033 -0.930629 -0.607334 -0.173449 0.189164 -0.794443 +0.211917 0.959464 0.346092 -0.150506 -0.943057 -0.513279 0.495248 -0.598726 +-0.706505 -0.22289 0.798774 0.579023 -0.662528 -0.703043 0.466128 -0.976256 +-0.0865377 0.920782 -0.313851 -0.6782 0.499931 -0.288394 0.515319 -0.955472 +0.10862 0.255546 0.442373 -0.830397 0.936627 -0.750215 0.594367 0.814511 +0.106111 -0.645144 -0.159128 0.0610745 0.434246 -0.577104 0.634405 -0.660151 +0.135706 0.975158 0.0848757 -0.221776 -0.48962 -0.581868 -0.732632 -0.269339 +-0.326039 -0.608257 -0.764748 0.246634 0.743877 -0.427327 0.341363 -0.534626 +0.213119 -0.414106 -0.453311 0.91909 -0.195049 0.585568 0.8036 -0.580623 +-0.289366 -0.0875174 0.116103 -0.715581 0.49478 0.27594 -0.896851 0.0897983 +-0.579688 0.423732 0.150584 -0.222251 0.913455 0.00843966 -0.696864 0.616172 +-0.625069 0.3232 -0.658514 -0.383288 0.304153 -0.260416 0.995483 -0.192514 +0.608195 -0.121528 -0.500296 -0.120621 0.63437 -0.15617 0.555762 -0.503402 +0.56234 0.920326 -0.655406 0.556227 -0.41102 -0.122466 -0.503406 0.212939 +0.539643 -0.374674 -0.254096 -0.85075 0.637897 0.751731 -0.764317 -0.44745 +0.238889 -0.763641 -0.618631 0.569259 -0.882638 0.228504 0.688651 -0.433042 +0.795766 0.735439 -0.421045 0.459934 0.659391 0.574466 -0.860603 0.239672 +-0.538707 -0.409461 0.333454 0.882338 -0.189935 0.217746 -0.250618 0.249167 +-0.193758 -0.773611 0.0261545 -0.170627 0.297779 0.0666907 -0.0758429 0.291201 +-0.275088 -0.989135 0.52482 0.243216 -0.0715602 0.244083 -0.742632 0.996286 +-0.604519 0.919673 -0.731785 -0.388208 0.804942 -0.616248 -0.646098 0.343847 +-0.545362 0.521995 0.325602 -0.0462079 -0.0576605 -0.196755 -0.32192 -0.0395811 +-0.929555 -0.795383 -0.769878 0.937597 -0.572317 -0.545074 0.844056 0.440964 +0.648816 -0.0202996 -0.188947 -0.828698 -0.351649 -0.729544 0.32248 -0.814613 +-0.103441 0.916185 -0.64055 -0.374267 -0.266359 -0.691093 0.329788 -0.916444 +0.0855057 -0.663682 0.824731 0.390845 -0.430675 -0.16314 0.151002 -0.750227 +0.0942286 0.815537 0.991439 0.186997 -0.692234 0.195049 0.339283 -0.666759 +-0.481371 0.410785 0.0426052 -0.235143 0.334306 0.00832484 -0.753941 -0.660511 +0.452498 -0.864517 0.348422 0.203458 0.914861 0.406036 -0.0652651 0.0171851 +0.989941 -0.218013 0.533689 -0.297949 0.461208 0.838649 0.139251 -0.0197546 +-0.535147 -0.96055 -0.917169 0.920994 0.953047 -0.49934 -0.516132 0.806737 +0.681463 0.357143 -0.466521 -0.613908 -0.329098 -0.00111562 -0.567387 0.360135 +-0.925069 0.228135 0.43766 0.669042 -0.782738 -0.854043 0.0615008 -0.62869 +-0.964794 -0.402917 0.173154 0.263791 0.191719 0.921239 -0.726624 0.0206387 +-0.177547 0.92641 0.0257005 0.567644 0.25378 -0.317255 0.326914 0.955374 +-0.481678 -0.561897 -0.810486 -0.011175 -0.20251 0.0821776 -0.225426 0.828019 +0.319734 0.0455197 -0.650943 0.403695 -0.13328 0.0532351 -0.555217 0.483623 +-0.709679 0.359185 -0.653807 0.40202 0.791759 -0.628203 -0.775551 -0.1609 +-0.00967711 -0.278382 -0.0138448 -0.850629 -0.90164 -0.863227 -0.147169 -0.835083 +0.572079 -0.858894 -0.540333 -0.0858082 0.699962 0.676926 -0.920167 0.57445 +0.94329 -0.0960854 0.448321 -0.181658 0.622784 0.319869 -0.649597 0.526803 +-0.385788 0.81949 0.779691 0.650257 0.622329 0.177045 -0.346547 0.147598 +0.815096 -0.256498 -0.10321 0.330242 -0.253005 0.708998 0.793137 0.642095 +-0.906686 -0.465188 0.641827 -0.888046 0.948462 0.578915 -0.85646 0.415115 +0.189503 -0.231009 -0.504437 0.145098 -0.439487 0.600806 -0.111601 -0.867408 +0.960378 0.263207 -0.255279 -0.831335 -0.250174 -0.566223 0.413952 0.174853 +0.210605 0.915587 -0.95212 -0.781721 0.126896 -0.652111 0.216699 0.97238 +0.569672 -0.811293 -0.060879 0.836581 0.594458 -0.17383 0.273041 -0.579067 +0.438901 -0.738221 -0.171059 -0.515204 0.725874 -0.999104 -0.946137 0.198549 +-0.562374 -0.271372 -0.923062 0.928222 0.678984 -0.178428 -0.565382 -0.417847 +0.0589951 0.846803 -0.982789 -0.83878 -0.823362 0.382187 0.559251 -0.85245 +0.281434 0.186205 0.518949 0.579525 -0.578728 -0.313613 0.566895 0.989014 +0.385349 -0.844833 0.965636 -0.29242 -0.0320836 0.188487 -0.486568 0.609471 +0.812515 -0.0955862 -0.221162 0.293421 0.133897 -0.316121 0.17491 -0.0731692 +-0.851469 -0.629898 -0.430684 -0.959584 0.926379 0.772077 0.666256 0.0218093 +0.841021 0.897457 -0.924708 -0.420437 -0.169368 0.382381 0.976445 -0.404921 +0.283016 0.883067 -0.0180705 0.414147 0.9427 0.595938 0.167437 -0.286301 +0.604149 -0.468205 -0.225634 -0.114448 -0.144297 -0.524006 0.818634 0.736907 +-0.0805167 -0.499092 -0.198474 -0.794759 -0.02127 0.730269 0.627705 0.113475 +0.903352 -0.0252357 0.870841 -0.148878 0.213653 0.197376 -0.0670939 -0.475582 +0.629193 -0.739515 -0.198465 0.721853 -0.28623 0.970282 -0.940538 0.230602 +-0.281755 -0.773608 -0.39371 0.371552 -0.00568323 -0.252002 0.189924 0.825681 +-0.682856 -0.442933 0.782342 -0.551643 -0.301092 0.58446 -0.698666 -0.0942016 +0.381089 0.248401 -0.175918 -0.477737 -0.968251 0.0262816 0.439686 0.778217 +-0.23532 0.853349 -0.715212 0.542211 -0.917156 -0.976299 0.335364 -0.728281 +-0.879117 0.816838 0.741221 -0.304429 -0.620405 0.0690136 -0.402444 -0.87388 +0.411968 0.630165 -0.847352 0.481918 -0.217918 0.565266 -0.0122791 -0.795835 +0.0234592 0.870668 0.438645 -0.603354 0.602228 0.912884 0.688535 -0.606993 +-0.654541 0.646906 -0.29001 -0.965252 -0.275964 0.664379 -0.00808228 0.0235506 +0.0100944 0.152887 -0.304005 -0.795911 0.369806 0.43199 0.734702 0.747264 +0.446445 0.333043 0.930935 -0.694211 -0.601388 0.147061 -0.0998489 -0.93187 +0.74102 0.948449 -0.519778 -0.432951 0.665825 -0.130346 0.816236 0.886446 +-0.345459 -0.705149 -0.343866 -0.463113 -0.45104 0.215277 0.498107 0.55857 +0.172837 -0.25636 -0.727345 -0.501137 -0.900514 -0.535885 -0.673991 -0.627859 +-0.840898 -0.225774 0.937815 0.685105 0.833471 0.929874 -0.479996 -0.635103 +-0.849378 0.0766661 -0.621978 0.863871 0.711126 -0.391414 0.955512 0.760642 +0.771356 -0.257743 -0.321609 -0.492456 0.380348 -0.408613 0.94531 -0.719525 +0.40955 0.357061 -0.375443 0.129784 -0.844371 -0.693414 -0.131407 -0.417468 +0.0317405 -0.242657 0.137224 0.489892 0.0742063 0.622838 -0.536855 -0.144005 +0.838209 -0.94144 -0.396847 -0.5825 -0.00177164 -0.2439 0.698392 -0.79463 +-0.0847977 -0.28233 -0.0612805 0.964329 -0.594445 0.393508 -0.271259 0.0163982 +0.858929 -0.801424 0.817041 -0.496205 0.0243399 0.933555 -0.454056 0.738247 +0.201018 0.88881 -0.918101 -0.596397 0.76459 0.286093 0.0988432 0.979148 +-0.0484204 -0.468678 -0.126223 0.178388 0.943972 0.518688 0.982847 -0.223554 +0.0139024 -0.876422 0.180538 0.732026 0.540794 0.791659 0.488013 0.92101 +-0.573541 -0.966942 -0.345976 -0.264077 -0.354252 0.111363 -0.0798913 -0.953628 +-0.886551 -0.609552 -0.512374 -0.250939 0.0299737 -0.161727 -0.850325 0.784233 +-0.65672 -0.810091 0.720265 -0.367129 0.0745166 -0.755664 -0.716485 0.694168 +-0.224685 -0.254047 0.778674 0.478427 0.736657 -0.397138 -0.250502 -0.562233 +-0.757017 -0.24048 0.939309 -0.300419 -0.936982 0.461805 -0.281682 -0.267151 +-0.812877 -0.594169 -0.630813 0.704813 0.349527 -0.0717624 -0.158619 0.625095 +-0.79515 0.949354 0.0317152 0.417216 -0.831035 0.544364 -0.249483 0.0506718 +-0.560894 -0.155408 0.705131 -0.773296 -0.543498 0.625823 -0.555176 0.617108 +-0.335133 0.957534 -0.0844158 0.727917 0.210453 -0.875149 -0.468757 0.669607 +0.89199 0.264511 0.192064 0.697532 -0.274442 -0.595215 0.525028 -0.894577 +-0.690688 0.328797 -0.779329 -0.601845 -0.0847156 -0.27547 0.658439 -0.0165512 +0.804787 0.49006 -0.463583 0.933438 -0.961176 0.784489 0.952389 -0.725538 +-0.259765 0.0255164 -0.72265 0.43701 -0.991672 0.436923 -0.15044 -0.449078 +-0.701744 -0.596686 0.505973 -0.335453 0.715539 0.811012 -0.496299 0.0725392 +-0.488745 -0.155034 0.478185 0.900486 -0.868652 0.544572 0.179341 0.210153 +0.0340945 -0.174927 -0.655313 0.294701 0.087628 0.789314 0.541003 0.626333 +-0.759713 -0.726705 0.248022 0.837257 0.827688 0.248072 -0.275017 0.815465 +-0.446743 -0.950319 -0.664201 -0.655403 0.937845 -0.529307 0.966991 0.29705 +-0.595593 0.0431616 -0.317064 -0.515757 -0.295014 -0.179958 0.906339 -0.679403 +0.830869 -0.583668 -0.936455 -0.904527 0.145552 0.331073 0.103653 0.0448009 +-0.3558 -0.789052 0.499721 0.0566035 0.691236 -0.780277 -0.517583 -0.5023 +-0.962397 0.721471 0.958446 -0.289021 -0.729467 0.0894384 -0.940042 0.790251 +0.0555765 -0.158012 -0.481045 -0.784203 0.254878 -0.442009 -0.217187 0.149968 +0.771778 0.469362 0.295287 -0.238196 0.525796 0.841417 0.471167 -0.223849 +0.418275 -0.823732 0.675104 -0.529826 -0.217189 -0.735826 0.694598 0.0404085 +-0.737136 -0.635519 -0.816541 -0.53935 0.900962 -0.628396 0.189722 -0.779302 +-0.535194 0.53962 0.975443 0.348913 0.150123 -0.26131 0.520848 -0.730596 +0.978975 -0.0471649 0.201077 0.873904 0.288306 -0.379299 0.994282 0.549067 +-0.505652 0.258319 -0.600744 0.127497 0.314517 0.678104 0.106161 0.757435 +-0.308022 0.0824012 0.550073 -0.810625 0.665014 -0.668955 0.559599 0.957784 +-0.79884 0.670301 -0.367139 -0.891605 0.323452 0.199292 0.381776 -0.639931 +-0.256317 -0.536244 -0.325341 0.521513 -0.670016 -0.396123 -0.511194 -0.430955 +0.975777 0.14726 -0.773959 -0.511971 0.70116 -0.457476 0.601153 0.581795 +0.227825 -0.860724 0.370203 -0.0947922 -0.97406 0.0451292 -0.239343 -0.817037 +-0.470012 0.604172 -0.0921631 -0.717006 -0.0819806 0.403823 -0.139446 0.833008 +0.822054 0.227319 -0.0375581 -0.0493148 -0.260897 -0.62889 -0.370465 -0.0977058 +0.598783 0.812078 -0.0660498 0.259183 -0.506962 -0.510327 -0.942989 -0.468865 +-0.259301 0.743864 -0.218953 0.715528 0.196164 0.232278 -0.395251 0.139116 +0.791498 0.106472 0.0452309 0.629534 0.954354 0.311 -0.142481 -0.14749 +0.611771 0.875423 0.122703 -0.715426 -0.777026 -0.658008 0.488373 0.73403 +0.928229 -0.275799 0.639149 -0.615548 0.0611227 -0.805727 -0.145858 0.0201392 +0.435509 0.463819 -0.240368 -0.0902166 0.0443554 -0.478563 0.0194528 0.376945 +0.471205 -0.27338 -0.035732 -0.729623 0.722559 0.108647 -0.16389 0.613536 +0.978695 0.632154 0.679019 0.111165 -0.152862 0.364563 -0.149085 -0.0789087 +0.622036 0.794577 -0.330212 0.752239 0.0228988 0.920498 -0.711901 -0.00787498 +-0.469051 0.917879 -0.0811375 0.20919 0.557763 -0.84167 0.0757235 0.575219 +0.800904 -0.308932 0.376545 -0.384286 0.432287 -0.935728 0.357876 0.591294 +-0.768239 -0.508914 -0.226472 -0.381764 -0.308265 -0.501238 -0.358439 -0.711269 +0.863075 -0.649126 -0.559737 0.242747 -0.0833645 -0.48658 0.545111 -0.749735 +0.560645 0.0981928 0.98915 0.386877 0.998202 -0.923064 -0.143429 0.0120489 +-0.172888 -0.987736 -0.019919 0.900102 -0.706244 -0.800856 -0.863956 -0.134379 +-0.657668 0.618311 0.579982 0.852182 -0.621864 -0.65489 -0.0406368 0.235367 +0.528019 0.954676 -0.761864 -0.840649 -0.566082 0.516921 0.511785 0.0612233 +0.737796 0.317777 0.373947 -0.155693 0.839091 0.578526 0.283004 0.328822 +0.482275 -0.246011 -0.514408 -0.996551 0.186639 -0.353908 -0.710367 -0.95679 +-0.542976 0.379978 0.388341 -0.50985 -0.71483 -0.305278 -0.380838 -0.672205 +-0.0465311 0.777669 0.340097 0.100179 -0.531904 -0.723961 -0.981274 -0.0394776 +0.244866 0.0632913 -0.101809 0.376018 -0.553911 0.506234 0.843822 0.261087 +-0.34388 -0.985927 0.649291 0.30278 0.920758 0.180314 0.634717 -0.35386 +0.142797 -0.701537 0.163084 -0.211039 0.661914 -0.363659 -0.873628 0.728903 +0.815882 -0.217997 -0.466938 -0.0983389 -0.745205 0.664456 0.494475 0.0985773 +-0.2489 -0.321198 0.5543 0.391957 -0.827394 -0.67636 0.435296 0.3459 +-0.513688 -0.916884 0.882012 0.0695999 0.0376325 0.510818 -0.536005 -0.705857 +0.5442 0.41657 0.402025 -0.0543298 0.865691 -0.763821 0.106548 -0.838279 +-0.820634 -0.405408 -0.139101 -0.797438 -0.0440854 0.823462 0.758196 -0.581836 +-0.283799 0.76933 0.593534 -0.456088 0.387223 0.616003 -0.738034 -0.21752 +0.323996 0.614662 -0.950994 -0.40592 0.154952 -0.601096 -0.909662 0.277428 +0.685618 0.517136 0.886496 -0.485098 -0.788357 -0.208862 -0.725962 0.458484 +0.982799 -0.0979862 -0.94766 -0.885644 0.080183 0.263394 0.828962 0.53429 +0.430696 -0.368712 -0.474724 0.490441 0.875802 0.847952 0.740507 0.529319 +-0.32743 -0.869403 0.709334 -0.575641 -0.527952 -0.0762286 -0.237205 -0.822635 +-0.350666 -0.684212 -0.457443 -0.740521 0.996867 0.573595 0.730673 -0.260659 +-0.558065 -0.231694 0.506373 0.371054 -0.359671 -0.327323 0.440685 -0.233344 +0.492332 0.704796 0.546572 -0.197951 -0.581357 0.838951 -0.0710844 -0.0748296 +0.301623 -0.222486 -0.36994 0.758046 -0.604416 0.0381278 0.0866519 0.0076825 +-0.108616 0.473392 -0.0826879 0.20341 -0.587521 0.762725 0.235206 -0.956744 +-0.222462 -0.131956 0.330108 0.326434 0.0916936 0.959663 0.198013 0.973006 +-0.0065452 -0.157656 -0.568667 0.640993 0.371594 0.229192 -0.612711 0.807077 +-0.124147 -0.330151 -0.377112 0.0423615 -0.289726 0.664887 0.139732 -0.744687 +0.369068 -0.207116 -0.812014 0.431813 0.901761 0.184991 0.809224 0.664435 +-0.140696 0.658488 -0.380659 -0.100359 0.132319 0.290516 -0.7908 -0.303609 +0.950275 0.294591 0.813284 0.255675 0.379241 0.752181 0.21117 -0.0879986 +-0.788587 0.674907 -0.639197 0.843933 0.546026 0.133486 0.340824 0.737389 +0.551478 -0.665144 0.572637 -0.251883 0.667913 -0.652631 0.262991 -0.628928 +-0.00829559 0.827264 -0.659673 0.677435 -0.582898 0.861656 0.807052 -0.241922 +0.53029 0.276406 -0.850369 0.606148 0.417719 0.322676 -0.718059 0.814904 +0.0509127 -0.77916 0.38724 -0.0618599 0.321472 0.294822 0.536563 0.222844 +0.183128 -0.961351 0.469498 -0.107124 -0.998764 -0.974323 -0.561324 -0.778491 +0.705104 -0.16619 0.246858 0.853025 0.933275 -0.96025 -0.2306 -0.581463 +-0.135804 -0.291501 -0.453964 -0.0667871 -0.0116701 -0.530398 -0.636346 -0.989861 +-0.883888 0.868279 0.686281 0.365628 -0.280309 -0.613791 -0.2066 0.274597 +0.291794 0.775417 0.23292 0.0894797 0.292737 -0.163122 -0.638439 -0.594163 +-0.830332 -0.275543 -0.585718 0.270686 0.383448 -0.836213 0.777362 0.100967 +0.664511 0.30164 -0.128448 -0.948827 0.862502 -0.430376 -0.942581 0.0512758 +0.711924 -0.285207 -0.654959 -0.988625 0.392955 -0.359291 0.863404 -0.106388 +-0.659953 0.917055 -0.799197 0.651361 0.370245 0.391718 0.223717 0.723495 +0.123549 -0.945111 -0.555769 -0.649814 0.499219 -0.619066 -0.601799 0.69068 +-0.618715 0.32131 0.759993 -0.0737941 -0.229136 -0.391153 0.0804427 -0.0470107 +-0.705316 0.341965 0.61163 -0.48823 -0.791244 -0.859084 0.325526 0.469497 +-0.38023 -0.0987179 -0.939405 0.435456 0.393173 -0.892511 0.631725 0.58999 +0.942535 0.0601412 -0.392017 0.285243 0.870367 -0.147963 0.332054 0.395072 +-0.483855 -0.0679516 -0.824674 -0.564758 0.56754 -0.57824 -0.624811 -0.711699 +-0.2866 -0.174484 -0.926319 0.34033 0.624304 -0.384439 -0.42727 -0.446075 +0.213221 0.51746 -0.717439 0.833329 -0.769489 0.325338 0.596314 0.224083 +0.0602668 0.344342 0.489977 -0.580508 0.843116 -0.315491 0.168088 -0.601734 +0.321409 0.129467 -0.292062 0.46742 0.521776 0.903115 -0.424467 0.0117525 +0.777867 0.75377 -0.158987 0.149591 0.0631847 -0.526191 0.926621 -0.952158 +-0.108637 -0.591344 -0.457731 -0.33968 0.835762 0.178632 0.0384074 -0.474663 +0.363637 -0.350786 -0.601748 -0.756875 0.854744 0.372593 -0.175902 0.303099 +-0.0330089 0.146971 -0.769861 -0.99727 0.46859 -0.195382 -0.455002 -0.172157 +0.0297913 0.539815 -0.983084 0.38095 0.0792756 0.70725 0.820313 0.487679 +0.0484071 0.0412326 0.914358 -0.536642 -0.958456 0.340165 0.0820479 0.992099 +-0.159312 -0.449366 -0.0792356 0.181913 0.539605 0.950556 0.387085 -0.0460472 +0.308555 0.816409 -0.226476 -0.976578 -0.95974 0.92481 -0.10954 0.944659 +-0.487201 0.334477 -0.222606 0.887994 -0.245868 0.924337 -0.191241 0.258974 +-0.516916 -0.431767 -0.362052 -0.956869 0.140973 -0.525674 -0.829216 -0.864134 +0.467598 -0.0623155 -0.562673 0.387059 0.417803 -0.156728 -0.132967 -0.851912 +-0.0159641 0.681031 0.789737 0.61295 -0.382811 -0.437122 -0.575667 0.139461 +0.201726 -0.0284665 0.126787 -0.770721 -0.378973 -0.871242 -0.93124 0.167806 +-0.906587 0.755051 0.805754 -0.466284 0.846402 -0.265639 -0.399551 0.783611 +-0.330639 0.799403 -0.365028 0.152432 -0.457075 -0.880786 0.951629 -0.637468 +0.0939051 0.972762 0.673671 -0.0251475 -0.416985 -0.586914 -0.212876 -0.518802 +0.26211 -0.158193 0.0879568 0.133352 0.294339 0.806577 0.347484 0.284492 +0.18738 0.601394 -0.288238 0.929328 -0.430584 0.144805 -0.0861466 0.9678 +-0.672234 -0.577955 -0.226058 0.795892 0.372343 0.433359 -0.307655 -0.355279 +-0.91036 -0.593156 -0.0141378 0.367605 -0.69358 -0.889241 -0.390859 0.67733 +0.986818 0.965071 0.535801 0.19849 -0.598978 -0.787907 -0.977443 0.297804 +0.594224 -0.532425 0.28695 -0.972223 0.155023 0.323215 0.256217 0.506544 +-0.927605 -0.829722 0.276827 0.356957 0.832604 -0.96117 0.531935 -0.147619 +0.89414 -0.248586 -0.0725506 -0.825005 0.51739 0.465548 0.381324 0.908398 +0.736161 0.0285865 0.0647281 -0.631369 0.562227 0.329487 0.435297 -0.89194 +0.168549 0.237941 0.0677357 0.690194 -0.657008 0.348647 0.438995 0.119896 +-0.490611 -0.240686 -0.412573 0.472571 0.751665 -0.264279 0.911799 -0.870605 +0.982511 -0.626581 -0.46597 0.60857 -0.575409 0.697278 0.671233 -0.559026 +0.670154 -0.810728 0.0135843 -0.252631 -0.964883 -0.64613 0.0921187 0.202064 +0.560799 0.432354 0.906522 -0.611299 -0.641625 0.0577759 -0.883151 -0.415086 +-0.612934 0.25347 -0.619802 -0.689669 -0.772393 0.328471 -0.154783 0.20487 +0.927717 0.232525 0.24183 -0.411393 0.169979 0.203034 -0.391018 0.781991 +-0.0575303 0.244628 -0.331141 0.156427 -0.436854 -0.620626 0.497404 0.936758 +-0.755519 -0.694919 -0.0139654 0.258019 -0.871405 -0.0450511 -0.492955 -0.298025 +0.202794 -0.141868 -0.938724 0.311757 -0.0128749 -0.112618 -0.524556 0.873593 +-0.334348 -0.705892 0.758689 -0.700964 0.260453 0.212106 0.67753 0.149304 +-0.119876 0.0868582 0.166572 0.462281 0.345725 0.184584 0.671379 0.134625 +-0.143818 0.879489 -0.434038 -0.804062 0.879466 0.420275 0.757427 -0.635403 +-0.531995 -0.642183 -0.813272 0.501051 0.389997 -0.420186 -0.645479 -0.111166 +-0.302184 -0.774725 -0.315015 -0.978614 -0.275317 0.716474 0.0844563 0.428733 +0.283421 0.260302 -0.881416 -0.798459 -0.83066 0.551997 0.437974 0.515384 +0.755976 0.845284 0.561146 -0.0527445 -0.262402 -0.187658 -0.311828 0.867852 +-0.989924 -0.219227 -0.550345 -0.154239 0.467149 -0.672575 -0.300683 0.0634565 +-0.724787 0.352666 -0.110587 -0.554322 0.00744583 -0.975196 -0.86003 -0.966098 +0.151237 0.633514 0.776802 0.71245 0.0024771 0.62805 -0.940123 0.04355 +0.601368 0.15256 -0.534149 0.107194 0.583994 0.72257 0.488926 -0.127211 +-0.296958 -0.655767 0.815496 0.62545 -0.66598 -0.696658 0.422174 0.227705 +-0.838788 -0.255448 -0.418342 -0.239067 -0.468444 -0.493054 -0.617915 0.46068 +-0.10102 -0.844915 -0.772289 -0.255899 0.855761 -0.865344 0.465499 0.993729 +-0.696099 0.602138 -0.866223 0.616719 -0.638643 -0.117135 -0.467626 0.682793 +-0.467108 0.926499 0.633912 0.879862 -0.490802 -0.25296 0.454019 -0.851356 +0.294904 -0.56879 -0.889959 -0.585637 0.329798 0.886105 -0.283169 -0.632372 +0.854875 0.799757 -0.336953 -0.140972 -0.687957 0.890311 -0.628454 0.915021 +-0.631309 -0.296261 0.323326 -0.923162 0.132575 -0.051929 -0.123272 -0.780163 +0.247462 0.138162 0.970424 -0.0159447 0.765595 -0.63247 0.526467 0.329408 +0.558882 0.991274 0.762702 0.148037 -0.812295 0.320623 -0.360074 0.890414 +-0.193575 0.836558 0.66645 0.369587 0.894989 0.724637 0.134832 -0.103241 +-0.373098 0.522283 -0.509777 -0.408407 0.281541 0.491888 0.295896 0.885464 +-0.435318 -0.15438 0.295375 -0.0130003 -0.370649 -0.939891 0.979149 0.441866 +-0.0458628 0.0889234 -0.00384797 -0.172882 0.654266 0.0200125 0.93788 -0.229084 +0.232796 0.331426 0.137932 -0.1588 0.746055 -0.611013 0.0580773 -0.984885 +-0.274608 0.0274619 0.236169 -0.00557469 0.63567 -0.41614 -0.738035 0.678355 +-0.777497 -0.274965 -0.978902 -0.94074 -0.998772 -0.371096 0.918989 0.470693 +-0.351333 0.600498 -0.279957 0.982019 0.686641 0.463126 -0.951743 -0.774277 +-0.693266 0.587143 0.806982 -0.0391043 0.687868 0.836473 0.758257 0.814607 +-0.155583 0.559107 -0.180078 -0.901172 -0.564174 0.950115 0.658405 -0.995456 +-0.179338 -0.769771 0.63757 -0.800916 -0.941813 0.901739 -0.835243 -0.399236 +0.200282 0.56488 -0.695449 -0.784017 -0.169102 0.163009 -0.681538 -0.422385 +0.877868 -0.858239 -0.0760585 0.969674 0.0520049 0.650256 -0.174781 -0.592959 +-0.643602 0.490123 0.0763367 -0.133388 0.603845 -0.399696 0.421458 -0.623528 +0.621015 0.394125 0.58665 -0.318446 -0.242279 -0.0396681 -0.215221 0.910531 +0.679511 -0.69743 0.219824 -0.109131 -0.908851 0.362093 -0.323557 -0.842242 +-0.572823 0.174681 0.121563 -0.798144 0.918647 -0.0353657 -0.618057 -0.963881 +0.875206 0.628925 -0.285123 -0.745414 -0.951678 0.627636 0.4282 -0.261089 +-0.180566 0.0979852 0.161239 0.501575 -0.340417 0.793822 -0.609995 -0.209603 +-0.522707 0.472491 -0.49147 -0.626946 0.731457 -0.92191 0.381342 0.535288 +0.230116 -0.411899 -0.376975 -0.0727894 0.407803 0.797609 -0.617944 -0.102145 +0.470748 -0.680442 -0.052813 0.485381 0.259645 0.314615 0.982611 0.798367 +0.767657 0.413682 0.403979 -0.364973 -0.0227396 -0.587921 -0.459537 -0.56456 +-0.817581 0.0230745 0.122747 -0.272514 -0.151073 -0.571134 -0.12752 0.308456 +-0.234365 -0.896628 -0.543475 -0.928624 0.755612 0.511077 -0.599918 -0.599189 +-0.614712 0.0293457 -0.508606 -0.920826 0.164886 0.904763 -0.528188 0.0844406 +0.902556 0.119671 0.994113 -0.269736 -0.424784 0.264042 -0.657939 -0.806347 +-0.750066 -0.245443 -0.808003 0.442991 -0.209324 -0.808908 -0.981794 -0.510847 +-0.610594 0.900685 0.754698 -0.95254 0.420727 -0.330646 -0.906228 -0.181319 +0.067648 0.377454 0.519654 -0.886214 -0.720197 0.137773 -0.220185 0.760907 +-0.698287 0.697118 -0.598066 -0.491931 0.661839 -0.178514 0.446478 0.725278 +0.854846 -0.959739 0.449098 0.829102 -0.676333 0.786899 0.379883 -0.454514 +-0.170446 -0.570646 0.513767 0.689225 0.0637064 0.047249 0.194648 0.70846 +-0.914489 -0.84392 -0.378201 -0.361538 -0.356328 0.127385 -0.67819 0.168057 +0.125882 0.453762 0.630228 -0.307048 0.0558355 0.423292 -0.156626 0.409801 +0.545793 -0.272674 -0.228218 -0.18991 -0.940324 0.648011 0.48258 -0.539391 +0.652456 -0.809515 0.320749 -0.509295 0.136827 0.341681 -0.374427 -0.216659 +0.674087 -0.0444064 0.15684 0.0964682 -0.254558 0.862153 0.816423 0.29775 +-0.228888 0.203158 -0.720184 0.665157 -0.155045 -0.483388 -0.476821 -0.378136 +-0.261212 -0.853161 -0.908703 0.118185 0.539272 0.15899 0.9865 0.275421 +-0.895025 -0.826869 -0.27963 -0.242447 -0.163778 -0.692896 0.66349 0.0390357 +-0.427301 -0.277379 -0.231296 -0.415472 -0.752861 -0.299575 0.729758 -0.213146 +0.375921 -0.565423 0.096258 -0.583626 -0.263709 0.675703 -0.0166036 0.0170838 +-0.639753 0.126037 -0.106663 0.220402 0.257187 -0.743703 -0.403632 0.268798 +-0.95692 -0.875367 0.337192 -0.509973 -0.731753 -0.894748 -0.598928 -0.808364 +0.512275 -0.583381 -0.974964 0.847309 0.921829 -0.676939 -0.796804 0.0290198 +0.140113 -0.915027 0.793142 0.977794 -0.894313 -0.250609 -0.513954 0.188916 +-0.597928 0.982209 -0.572229 0.191877 0.127513 0.284272 -0.624505 0.600551 +-0.0618661 0.974959 -0.936933 -0.757253 0.865399 -0.810305 -0.25958 -0.62859 +0.179969 -0.394173 -0.272225 -0.273774 0.705135 -0.529459 0.534434 0.198125 +-0.00457802 0.906561 0.432007 0.311682 0.504192 0.881337 0.803117 0.409709 +-0.623662 0.414641 -0.774825 -0.883711 0.133717 0.697851 -0.0338443 0.382461 +-0.487514 -0.613888 0.160689 -0.111202 -0.96655 -0.702182 0.0501156 -0.206706 +-0.550074 0.749546 -0.431205 -0.567424 -0.680566 0.942111 -0.721449 -0.403556 +0.235001 0.191921 0.439872 -0.279121 -0.688673 -0.193997 -0.672952 0.62718 +-0.444838 -0.231392 0.209668 -0.342187 0.432978 0.289592 0.554435 -0.318237 +-0.27749 0.354259 -0.107901 0.240673 -0.82693 -0.0822021 0.580248 0.954766 +-0.770102 0.697206 -0.98903 -0.652434 0.86804 -0.0104531 0.49113 0.792418 +0.657355 0.689204 -0.0956647 0.225194 -0.12617 0.302542 0.808653 -0.0638344 +0.100763 0.488962 -0.472099 0.415373 0.255599 -0.767797 -0.759042 -0.981816 +0.82712 0.512842 -0.574906 -0.675571 -0.108577 0.134561 0.691657 0.364584 +0.717932 0.644293 -0.891336 -0.14146 -0.752995 0.466326 0.0956557 0.748409 +-0.639551 0.993796 0.23663 -0.860338 0.546328 -0.0134221 -0.190639 -0.774242 +-0.168998 0.809897 -0.0724687 0.880509 0.924059 0.914387 -0.356067 -0.70861 +-0.665771 0.0469613 -0.344686 -0.639886 -0.794659 -0.752005 -0.538779 -0.554446 +0.358273 0.810189 0.589195 0.0768694 -0.363041 0.466094 -0.612151 -0.798805 +-0.176668 0.773198 -0.531688 0.653239 -0.487518 -0.748874 -0.115973 -0.95675 +0.379019 -0.187013 -0.694737 0.435753 0.733395 -0.375554 0.901036 0.576703 +-0.878736 0.859948 0.594482 0.731464 0.656825 0.185427 0.703121 0.475483 +0.451083 -0.605168 -0.567243 -0.829023 -0.855582 0.0894606 -0.701407 -0.934292 +-0.734215 -0.871833 -0.751409 -0.851524 0.442948 0.324741 0.0601873 -0.545492 +-0.645031 -0.159748 -0.73442 -0.0663618 0.524607 -0.30848 0.984521 -0.14582 +0.251307 -0.84424 0.527263 -0.119836 0.814 0.513187 0.663162 0.053065 +0.171631 0.608003 -0.390446 0.0240444 0.632319 0.302603 -0.974016 -0.550811 +-0.519843 0.20318 0.646409 -0.469461 0.815997 0.828373 0.525019 -0.33928 +-0.312998 -0.930874 0.748211 0.50108 -0.426059 0.24332 -0.761835 -0.888036 +-0.0430873 0.93541 0.607379 -0.930788 0.748549 -0.629869 -0.327984 -0.802965 +-0.893623 -0.94416 0.644368 -0.793722 -0.371427 -0.574178 0.538288 -0.599681 +0.991865 0.942398 0.502691 -0.721589 -0.0177585 0.69164 -0.739599 0.308632 +-0.948865 -0.462305 0.481357 0.239694 -0.687471 0.972791 -0.759844 -0.101514 +-0.427971 0.817675 0.37791 0.717362 0.780244 0.687148 0.817492 -0.356595 +0.408544 0.481804 0.634608 -0.292359 -0.333752 -0.730047 -0.146216 -0.379925 +-0.411169 0.480939 0.111173 0.719619 0.791424 -0.478602 -0.543974 0.983891 +0.328765 -0.252362 0.148485 -0.707759 0.783393 0.360622 -0.813371 -0.387891 +-0.732258 0.0508194 -0.468909 -0.104074 -0.402039 0.562892 -0.797813 -0.351684 +-0.531397 0.563291 0.757849 0.419854 0.0848375 -0.538672 -0.130978 0.29123 +0.581819 0.769303 -0.768847 0.296335 0.46928 0.686351 -0.452858 0.42095 +-0.468421 0.354316 0.320273 -0.683124 0.733479 0.959525 -0.466906 -0.562437 +-0.320985 0.662557 -0.469076 0.731449 -0.792907 -0.522255 -0.810503 -0.0463208 +-0.135518 -0.548003 0.821454 -0.596468 -0.221672 0.722425 0.677631 0.239664 +0.240495 0.518917 -0.560083 -0.533732 -0.316851 -0.384751 0.472647 -0.736067 +0.963678 0.279479 0.730123 0.767116 0.368007 -0.722811 -0.896892 0.947205 +0.363038 0.890507 -0.57866 -0.448616 -0.486435 0.378788 -0.0279786 -0.259052 +0.783014 0.730993 -0.845192 -0.448047 0.815635 -0.755785 0.676373 -0.367349 +-0.0086781 -0.325064 -0.795016 -0.764885 -0.497666 0.546077 0.15676 -0.347416 +-0.442516 0.831899 0.539601 -0.946358 0.42282 -0.733471 0.986251 -0.216558 +0.149417 -0.976062 0.843743 -0.709507 -0.949645 -0.444824 0.623921 -0.212131 +0.889061 -0.714132 0.886256 -0.524226 0.260209 -0.425858 -0.335331 -0.608121 +0.163371 -0.653703 -0.731777 -0.000247172 -0.188642 0.924377 0.298805 -0.388973 +0.762605 -0.842116 0.869683 -0.830962 0.677016 0.142839 -0.12232 0.522901 +-0.690976 -0.576243 0.773121 0.520893 -0.24379 0.197899 -0.222619 0.359383 +-0.462497 -0.296712 0.673668 0.87853 -0.46955 -0.69347 0.111819 0.845106 +0.175018 -0.934832 0.679228 0.637092 -0.0536522 -0.826904 0.908255 -0.239506 +0.145944 -0.31197 0.548688 0.900027 0.390772 0.910796 -0.22158 -0.549628 +0.24904 0.135123 -0.10011 -0.514924 -0.984626 0.938774 -0.904509 -0.770618 +-0.639954 0.877993 -0.188124 -0.182481 0.146301 -0.285402 -0.0191776 0.528271 +-0.387525 0.482188 0.979864 -0.349333 -0.545409 0.399055 -0.883834 0.979338 +-0.699892 -0.672811 -0.831444 0.613173 0.13007 -0.189966 -0.142866 0.160236 +0.0910655 -0.996865 0.0246345 -0.904468 -0.274297 -0.293687 -0.728378 -0.326509 +-0.309902 0.428136 -0.612639 -0.0769603 -0.889623 0.22853 -0.235892 0.534631 +0.78105 -0.525496 0.103986 0.125321 -0.00833412 -0.780349 -0.156386 0.23734 +0.958042 0.2222 -0.516709 0.302859 0.356197 0.621717 -0.375293 -0.325277 +-0.950257 -0.567975 -0.557345 0.227985 0.962381 0.0284058 -0.946306 0.993726 +0.689634 -0.0610698 -0.181399 0.341457 0.303838 0.48898 0.234354 0.840447 +-0.280721 -0.220603 0.613225 0.369206 -0.991763 -0.37548 -0.561312 -0.559419 +-0.562699 0.464465 -0.484657 -0.845516 0.286717 -0.325758 0.359892 0.250142 +-0.108194 -0.228172 0.946117 -0.502686 -0.0465551 0.712636 0.772485 0.179967 +-0.737207 -0.408187 0.466146 0.953815 0.157193 -0.050292 -0.515917 0.516513 +0.543843 -0.0965304 0.884514 -0.637205 -0.796977 -0.926221 0.798812 -0.185254 +-0.753853 -0.665576 -0.236124 -0.371611 0.561697 -0.752251 0.84445 -0.721008 +0.415113 -0.419192 0.81641 -0.498895 0.156293 0.675782 -0.582893 -0.507618 +0.4038 0.53983 -0.748939 -0.0885593 0.832176 -0.930937 -0.179189 0.895717 +-0.616491 -0.0931225 -0.190058 0.969533 0.271779 0.502087 0.859372 -0.962636 +-0.576212 -0.0748974 0.131519 0.12715 -0.953877 0.89019 0.632441 0.908584 +0.515387 -0.161986 -0.844445 -0.172084 0.179543 -0.09881 -0.646958 0.218213 +-0.846388 -0.731861 -0.0872301 0.792956 -0.00136626 -0.616736 -0.198031 -0.0934711 +0.193242 -0.18113 -0.149347 0.852692 0.414392 0.455737 0.77598 0.651056 +0.085765 -0.943946 -0.295603 0.162231 0.618967 0.406141 0.667482 -0.163063 +0.651067 0.481217 -0.848668 -0.730323 0.702711 0.674271 0.639327 0.11048 +0.792505 -0.148969 0.670314 0.155321 0.236991 -0.725394 -0.85646 -0.861638 +0.0494774 -0.0744954 0.406126 -0.854873 -0.959164 0.948478 0.124809 -0.80229 +-0.628362 0.375658 0.545496 0.076435 -0.467406 -0.345889 -0.110965 -0.503293 +-0.976087 0.459429 -0.260363 0.846721 -0.0974471 -0.673193 0.476279 0.749357 +0.857776 0.0693236 -0.409274 -0.428415 0.673289 -0.136668 0.824272 0.381379 +0.820045 0.804361 -0.317322 0.142192 -0.310016 0.854062 0.402185 0.831183 +-0.296965 0.034647 -0.719021 -0.853171 0.948462 -0.317786 -0.682242 0.851529 +-0.360539 -0.28977 -0.540494 -0.871484 -0.0713698 -0.202932 0.283497 0.32302 +-0.368837 -0.902355 0.0806888 0.937038 0.0197885 0.855694 0.6758 0.624621 +-0.642331 0.114485 -0.214602 -0.430039 -0.12427 0.267638 0.173853 -0.447229 +0.30979 0.280358 -0.567427 0.169455 0.205752 -0.689963 0.714521 0.0473829 +0.383499 0.0804055 0.550963 0.0282557 0.349583 -0.812192 0.992022 -0.586029 +-0.0443168 -0.695056 -0.491459 0.289843 0.0399156 0.729499 -0.59989 -0.686555 +-0.329796 0.392133 0.818108 0.897126 -0.755773 -0.225375 -0.276367 0.433383 +-0.438587 0.308626 0.753066 0.570264 -0.6305 -0.00913223 0.694738 -0.0574015 +-0.000567365 0.56681 0.781076 -0.141968 0.983244 0.492774 0.533332 0.229013 +0.19993 0.200886 0.0562647 0.477792 -0.385539 -0.929566 0.992027 0.869331 +0.355324 -0.0744283 -0.280209 0.147904 -0.837536 -0.575321 -0.026675 0.576413 +-0.854892 0.448117 -0.632357 0.884104 0.460515 -0.38821 -0.309308 -0.83903 +0.545732 0.821317 -0.301445 0.132048 0.432038 0.319904 -0.324767 0.655713 +0.32467 -0.22967 0.904307 0.727212 -0.776325 0.0210347 -0.182459 -0.865849 +-0.948423 -0.102846 0.522964 -0.9679 -0.540413 0.9555 -0.906271 0.366339 +0.905601 -0.824081 0.806826 0.635544 -0.581854 -0.668167 0.636123 -0.954634 +-0.435015 -0.0557779 0.702212 0.874607 -0.653595 -0.212491 -0.784918 0.126354 +0.937068 0.672375 0.577975 -0.607661 -0.0178115 0.44509 -0.821401 -0.0571128 +0.0953985 0.212275 -0.532983 -0.320107 0.386387 0.19727 0.132351 0.103074 +0.653617 -0.279407 -0.926383 0.361078 -0.774375 -0.175768 -0.725556 0.834164 +0.651801 0.94774 0.254977 0.316746 0.213899 0.00485267 0.922421 -0.488591 +-0.3543 -0.471387 0.965173 0.173607 0.846795 -0.446685 -0.468995 0.541162 +-0.932263 -0.700538 0.0437374 -0.600939 0.637763 -0.853614 -0.89898 -0.59456 +0.822556 0.441414 0.664329 0.541246 -0.499665 0.342649 -0.441652 -0.56069 +0.524078 0.809887 0.655461 -0.168242 -0.610231 0.579368 0.031113 -0.166155 +-0.526537 -0.400588 -0.587946 0.529077 -0.390321 -0.203477 -0.253867 -0.660506 +0.865728 -0.896361 -0.166965 0.334866 0.237346 0.545053 -0.33189 -0.66649 +-0.465374 0.977072 -0.0195884 -0.978674 -0.986898 -0.0328485 0.579987 -0.71977 +-0.274641 -0.741784 -0.411774 -0.0662335 -0.413689 -0.105837 -0.65194 0.00284367 +-0.630715 -0.462553 -0.697124 -0.423515 -0.948907 0.422678 -0.845514 0.392979 +-0.612671 0.965431 0.221359 0.449319 0.305557 0.406974 0.703473 0.359746 +0.557118 0.655683 0.770181 0.166699 0.390762 0.267572 -0.630432 0.506798 +0.642224 0.581337 0.995115 -0.154745 -0.642818 -0.0617701 0.225192 -0.871905 +0.684701 0.000151154 0.866918 0.279185 -0.0704296 -0.574974 0.354941 -0.258214 +0.259761 -0.631192 -0.457332 0.285686 0.699099 -0.896124 -0.99771 -0.221524 +0.765276 -0.626306 0.705763 0.612461 -0.947382 0.988387 0.864967 -0.344337 +0.369436 0.302681 0.93184 -0.489951 -0.178039 -0.554152 -0.636793 0.0947663 +-0.745905 0.765296 -0.0878794 0.54381 -0.566166 0.0709023 -0.621111 -0.658188 +-0.439942 -0.393803 0.0993992 -0.0673843 -0.71495 -0.5793 0.796486 0.596146 +0.347069 -0.0333286 0.663615 0.716399 0.928039 0.0243541 0.0211747 -0.647925 +0.231801 -0.953452 -0.28938 -0.785405 0.0021042 -0.418424 -0.954474 0.0944015 +-0.795226 -0.786352 -0.629143 -0.0268838 0.612522 -0.707865 -0.464972 -0.190053 +0.221904 0.148953 -0.874814 -0.950534 0.303472 -0.203122 -0.297299 -0.844548 +0.140824 -0.858117 -0.46766 0.937109 -0.666551 -0.0215576 -0.0413337 0.526174 +0.937529 -0.950909 -0.0802493 -0.368285 -0.952247 0.177659 0.7287 0.225324 +-0.296159 -0.952219 -0.435089 -0.306847 -0.0509877 0.0222074 -0.929953 0.435227 +-0.623887 0.928342 0.219252 0.839628 -0.153282 -0.152008 0.0605999 0.598386 +0.12803 -0.440865 -0.201706 -0.810531 0.274716 0.294492 0.226332 -0.735106 +0.652479 0.420165 -0.482305 -0.945197 -0.042351 -0.358698 -0.155276 -0.82037 +0.322464 -0.139477 -0.687325 0.389929 0.380014 -0.360332 -0.992663 0.968118 +0.498006 -0.987473 -0.0485686 -0.447246 0.0918458 -0.644389 0.755311 0.887464 +0.429836 0.345143 -0.485296 0.182335 -0.356696 0.582101 0.832393 0.607575 +-0.223757 0.351515 0.115408 0.780621 -0.480247 -0.195 -0.773274 0.935187 +-0.128869 -0.928501 -0.661209 0.820022 -0.247699 0.168445 -0.48247 0.564638 +0.739054 -0.619004 -0.122714 0.236034 -0.430382 -0.923658 -0.683358 0.24331 +0.395269 0.606288 0.98815 -0.192725 0.0080007 -0.834696 0.131245 0.578261 +0.479883 0.455326 0.101033 0.817782 -0.80053 0.600643 -0.947445 0.590112 +0.937189 -0.470375 -0.959809 0.631907 -0.865896 0.467946 -0.10058 -0.289725 +-0.421509 0.387252 0.271291 -0.798807 -0.191348 -0.76576 0.566838 -0.648024 +0.0543221 -0.97846 -0.755844 0.495572 -0.546768 0.68395 0.710712 0.869045 +-0.0680898 -0.694386 0.683653 -0.745838 0.420444 0.90945 0.866767 0.573934 +-0.0782296 0.339832 -0.0350136 0.0327823 0.816112 -0.535942 0.821392 0.436657 +0.130665 -0.77761 0.073332 0.529 -0.0310249 0.209788 -0.168761 0.429739 +-0.206022 -0.174666 -0.591531 -0.274372 0.990813 -0.410182 0.357321 0.557301 +-0.257423 0.898744 0.0316753 -0.621787 0.0729736 -0.721405 -0.78409 0.252105 +0.25796 -0.646719 0.797532 0.657129 0.0252002 -0.264597 0.0280809 0.0296184 +0.903781 -0.359993 -0.0370503 -0.252323 -0.755103 -0.968228 0.332395 0.152309 +0.715643 0.202338 0.0211722 0.114315 -0.915303 -0.923349 -0.844118 -0.170521 +-0.559759 -0.325486 -0.6104 0.048279 0.612685 0.533573 -0.389062 0.0201878 +-0.414804 0.378705 -0.0365641 0.725253 -0.426036 -0.872704 -0.783059 -0.894508 +0.195722 0.331857 0.405579 -0.196618 -0.646433 0.31528 -0.685225 0.142291 +0.557115 -0.250782 0.109774 -0.136143 -0.771967 0.203548 -0.218052 0.389333 +-0.629642 -0.12249 0.865808 -0.091847 -0.838728 -0.982414 0.216325 -0.262573 +0.109992 -0.280158 -0.479389 0.129597 0.268368 0.673147 -0.962008 -0.866278 +-0.16216 -0.59445 0.376369 0.543022 0.559321 -0.687589 0.78088 0.942087 +-0.914894 -0.839347 0.891765 0.309621 0.530463 0.310419 0.0591803 0.548127 +0.077753 0.671682 0.689121 0.319091 -0.258157 -0.233634 -0.121386 -0.667556 +-0.864087 0.135174 0.451474 0.800652 -0.788833 0.0185349 0.824255 -0.101176 +-0.495449 -0.0897356 -0.481195 -0.329414 0.63027 -0.847425 0.481735 -0.715652 +-0.479162 0.835453 0.192061 0.0202158 0.114332 -0.592705 0.54729 -0.413141 +-0.125399 0.732418 -0.69633 -0.133807 -0.201421 -0.776236 -0.907875 0.505893 +-0.360225 -0.817624 0.342119 -0.397985 0.331854 -0.256212 -0.633924 -0.632303 +-0.472471 -0.920919 0.187211 0.0398026 0.4989 0.0805651 0.0742864 0.950357 +0.390164 0.380505 0.358938 0.006135 0.532438 -0.780838 0.507366 -0.834666 +0.305488 -0.0339484 -0.0659418 -0.945186 -0.0063168 -0.322266 0.739375 0.990767 +-0.305596 -0.887935 0.0151104 -0.701757 0.774948 -0.238107 -0.0178909 -0.87515 +-0.274157 0.530351 0.291663 0.847541 -0.00723269 -0.231056 0.448725 0.691927 +-0.997664 -0.78874 -0.777246 -0.090291 0.334912 -0.58018 -0.827108 -0.909759 +0.613561 -0.848892 -0.402654 -0.191104 -0.473759 -0.682979 0.139817 -0.596996 +0.479488 0.129539 0.73461 0.818347 0.975974 0.840722 -0.467352 0.333716 +0.132463 -0.890211 -0.175518 -0.251334 0.209338 -0.65694 0.284632 -0.0846382 +-0.208428 0.439492 -0.704196 0.75804 -0.709925 -0.533397 0.714339 0.90422 +-0.637903 0.0814424 -0.227628 0.687734 0.105665 0.754281 0.0383247 -0.20825 +0.905862 0.0235782 -0.318191 0.33822 -0.108553 -0.474966 0.572027 0.0572129 +-0.560315 0.827218 0.448415 0.572057 0.520588 0.48663 -0.0396718 0.261578 +-0.885042 -0.512612 0.463418 0.82466 -0.055316 -0.580829 -0.281855 0.277118 +0.846699 0.269458 0.664875 0.109804 -0.799353 0.484617 -0.0811441 0.675031 +0.983116 -0.320686 -0.967268 0.422405 -0.875115 -0.876388 0.244567 0.832954 +-0.711578 0.980622 0.38807 -0.056876 0.0154746 0.0850274 0.383304 0.725276 +-0.615692 0.453829 -0.114977 -0.671071 -0.182657 0.424096 -0.674289 0.608264 +0.979723 -0.14854 -0.526936 0.348416 0.337652 -0.370859 0.384555 -0.523567 +0.667058 0.647991 -0.525271 -0.387758 -0.997505 0.499909 -0.696958 0.0438556 +-0.344948 0.91037 0.310014 -0.786479 0.231515 0.83267 -0.800147 -0.71553 +-0.311102 0.290886 0.0941962 -0.146718 -0.0788699 -0.304247 -0.297134 0.312001 +-0.135024 0.333654 0.224173 -0.48049 -0.137087 -0.0851665 -0.063134 -0.370265 +-0.167541 -0.567091 0.269331 0.0842452 -0.0742686 -0.801058 0.0182561 0.770316 +0.200225 -0.824877 -0.118187 0.303305 -0.363584 -0.59466 -0.328064 0.986639 +0.69955 -0.446219 0.513832 0.940837 0.039409 -0.764758 0.553287 -0.114898 +-0.275923 0.57232 0.525424 -0.974437 -0.776375 -0.996626 0.546344 0.6603 +-0.180902 -0.369212 0.989044 -0.30809 0.993703 -0.994958 0.687437 0.594484 +-0.955314 0.653012 -0.542373 -0.863294 -0.150448 0.586242 -0.742387 -0.136533 +-0.53176 -0.0034602 0.610657 0.283423 -0.678439 0.273139 -0.92601 -0.637018 +-0.3506 -0.766942 -0.357359 0.427682 -0.384695 0.66865 -0.274092 0.396424 +0.578505 -0.835379 0.300984 -0.944219 -0.564666 0.350301 0.984021 0.404488 +0.742556 -0.570024 0.106047 -0.279436 -0.382923 0.356421 0.432863 0.884236 +0.863228 -0.120595 -0.202818 0.842471 -0.347364 -0.836418 -0.653095 -0.00384722 +0.141851 0.42798 0.159145 0.0873448 0.547416 0.637176 0.80213 -0.159199 +-0.998928 0.7877 0.806591 -0.583023 -0.64463 0.180916 -0.179182 -0.206517 +-0.491129 -0.338378 0.168081 0.174024 -0.933346 -0.267203 -0.658137 -0.782135 +-0.543445 -0.946734 -0.581929 0.997398 0.35883 -0.889394 0.744214 -0.841229 +0.241667 0.0268001 0.782658 0.848009 0.0369494 0.882349 -0.426744 -0.346987 +0.862106 0.252457 -0.439019 0.440632 -0.618553 -0.40721 -0.00100412 0.289788 +0.935614 -0.746169 0.116288 -0.0702415 -0.248752 -0.459585 0.888645 0.517373 +-0.0638119 0.421087 -0.43006 0.619832 0.532893 0.388006 -0.850096 -0.166677 +-0.0533826 0.0597424 0.284244 -0.392274 -0.48001 -0.860994 -0.575622 0.961669 +0.319127 0.431032 -0.353745 0.622434 -0.0175861 -0.160517 0.0479902 0.759641 +-0.279297 -0.372989 0.461996 0.361456 0.812175 0.364688 -0.938057 0.672262 +-0.998169 0.862792 0.365382 0.0944088 -0.00568185 -0.914102 0.345984 0.922671 +0.748825 0.0697302 -0.0838671 -0.512355 -0.645202 0.280872 0.542005 -0.512991 +0.717398 0.0148824 -0.756246 0.668985 0.551587 0.933034 -0.0302685 0.57869 +0.0135831 0.961429 0.798888 -0.490134 0.0788875 -0.732927 -0.847448 0.815737 +0.34141 -0.0631161 -0.610386 0.528839 0.516286 0.296187 -0.109325 -0.645514 +0.461527 -0.251398 0.378351 -0.447978 -0.621262 -0.677811 0.784492 0.100396 +0.888894 -0.654193 -0.827866 -0.352366 -0.554857 -0.865394 -0.0173624 0.1884 +-0.276482 0.225799 -0.379563 -0.868872 0.921386 -0.509194 0.249485 -0.194679 +-0.432662 0.0761289 0.0314111 0.924523 0.602866 -0.0592413 0.253429 0.323095 +-0.246217 0.69923 -0.936107 0.35813 0.0303942 -0.378067 0.259794 0.170069 +0.598878 -0.0956435 -0.419756 -0.812831 0.942492 0.000759372 -0.419882 0.194993 +-0.872005 -0.110201 -0.281762 -0.316407 0.281128 0.259073 0.985252 0.779942 +-0.551026 0.506062 0.621188 0.316797 0.787958 0.375718 -0.377522 -0.709219 +0.868502 -0.565741 -0.64381 -0.0949202 -0.800112 -0.187901 -0.36674 0.902865 +0.593779 0.306037 0.260546 -0.289094 0.387811 -0.854141 -0.298593 -0.746131 +-0.403865 -0.0599061 -0.175985 -0.103992 -0.182054 0.122747 -0.793396 -0.0752806 +0.118987 0.32932 -0.357681 -0.407338 0.293571 -0.838911 0.0936832 -0.127899 +-0.307963 0.573313 0.176062 -0.501988 0.131799 0.779664 0.27436 -0.846411 +-0.6298 -0.0892439 0.206789 0.536271 0.610512 -0.788464 -0.169622 -0.468959 +-0.566494 0.744672 0.283892 -0.00565353 -0.0362827 0.200455 -0.473492 -0.967341 +-0.0173342 0.768724 0.327515 0.0419136 -0.756228 -0.433718 0.21463 -0.682303 +-0.861236 0.970447 0.937002 -0.164183 0.292068 0.487319 0.381598 0.578987 +0.762385 0.942806 -0.360376 -0.532665 0.917836 -0.421796 0.054024 -0.521111 +0.961201 0.792211 0.548377 -0.50753 0.345851 0.113151 -0.148371 -0.467866 +0.475471 0.641824 0.515887 -0.549656 0.418083 -0.692525 0.797605 0.238006 +0.740897 -0.585185 0.771689 0.715425 -0.717804 0.1123 0.090004 0.645284 +-0.200492 0.439643 0.39152 -0.87713 -0.820466 -0.267014 0.858388 -0.684192 +-0.572121 -0.6481 -0.836354 -0.727361 -0.57808 0.0535239 -0.512827 -0.302114 +-0.885128 0.971046 -0.046249 0.744135 0.462079 0.737962 -0.00550365 -0.731318 +0.345713 -0.707811 0.669868 0.860885 0.316897 -0.38473 -0.850745 0.744343 +-0.826244 -0.907294 -0.632241 -0.0685697 -0.860307 0.191838 -0.8719 -0.244189 +-0.476754 0.6518 -0.0621155 -0.108737 0.45466 -0.326862 0.561656 0.614533 +-0.260912 0.0790318 -0.693098 0.686324 0.569608 0.504235 -0.92998 0.841807 +-0.505985 -0.00248717 -0.584705 -0.978566 0.523799 -0.994243 0.401884 -0.408141 +-0.461064 0.199489 0.664111 0.682063 0.828969 -0.566705 0.345817 -0.474344 +0.342875 0.792451 0.974492 0.00326968 -0.0979298 0.364309 0.952433 -0.350622 +0.246868 0.420798 -0.77104 -0.686994 0.046457 -0.646043 0.0945476 0.3939 +0.713466 -0.197333 -0.956722 -0.318996 0.0542445 0.966028 0.926643 0.927768 +-0.956614 -0.150579 -0.778315 0.27839 0.340588 0.456458 0.64809 -0.862655 +0.93772 -0.0823584 0.645405 0.152695 -0.0893484 0.079338 -0.181385 -0.149401 +0.880062 -0.899808 0.67678 0.983115 -0.793427 -0.0992431 0.10006 0.674211 +-0.25547 0.809335 0.773695 -0.0525009 0.155048 -0.397669 0.244787 0.163812 +0.0814183 0.733641 0.123502 -0.341607 -0.744109 0.549434 -0.581446 -0.534397 +-0.545486 -0.598795 0.742333 -0.932709 0.964186 -0.437112 0.429452 0.55377 +-0.804624 -0.964547 -0.410035 -0.0545865 -0.751108 -0.239502 -0.441446 -0.861369 +0.110917 0.669109 0.836676 0.518027 -0.853143 0.0849209 0.103102 -0.925186 +-0.300751 0.0979728 0.608553 -0.586374 0.868477 -0.0524241 -0.649287 -0.950954 +0.370902 -0.654803 0.0152561 -0.497862 -0.849674 -0.164914 0.850231 0.258313 +0.491816 0.823417 0.219459 0.00673006 0.104549 -0.348766 -0.24244 0.556283 +-0.522479 0.509741 0.156232 -0.54768 0.774396 0.179653 -0.588555 -0.916058 +0.0815185 -0.575153 0.252636 0.166534 0.617775 -0.304252 -0.507862 -0.450254 +0.227304 -0.494694 -0.534251 0.274714 -0.845407 -0.0655565 -0.435776 -0.567606 +-0.981232 0.550524 -0.538458 0.696908 -0.636625 0.653841 0.612047 -0.417008 +0.887174 -0.340062 -0.847439 0.774232 0.283741 -0.409639 -0.440044 -0.432796 +-0.975221 -0.967874 0.286576 0.162995 -0.27583 0.155831 0.869568 -0.153391 +-0.411653 0.267808 -0.587389 0.914526 0.34149 0.654458 -0.893734 -0.234464 +0.772245 0.271029 -0.202365 -0.860186 0.00942087 -0.40884 -0.723717 -0.864783 +0.276351 -0.529273 -0.494314 0.666065 -0.806368 0.220149 0.478168 0.0328102 +-0.250285 0.600581 0.614246 -0.681106 -0.843817 0.944788 0.518175 -0.141106 +0.213816 -0.191986 -0.00334154 -0.423007 0.040556 -0.66452 -0.204187 -0.234212 +-0.0915631 0.424535 0.287596 0.764726 0.266142 0.02135 -0.179428 0.445019 +-0.306792 -0.317645 0.798546 -0.481469 -0.437666 0.541224 0.742633 0.141972 +-0.259233 0.735648 0.18293 0.226327 0.815834 -0.169555 -0.891832 0.965041 +0.817583 -0.306246 -0.727388 0.836307 -0.0567295 -0.359821 -0.0623004 0.0146595 +-0.982549 0.470623 0.224901 0.320201 -0.422177 0.0846818 0.877561 -0.0348397 +-0.599939 0.32302 -0.696371 0.408123 -0.0737024 -0.637588 -0.98979 -0.996502 +-0.883334 0.19633 -0.89659 -0.215099 -0.550339 0.384832 -0.740544 -0.549133 +0.0599547 0.690338 -0.91832 0.938188 0.305775 0.0802236 -0.201966 0.478655 +0.550545 0.07251 0.719926 -0.048884 0.366542 -0.351833 -0.211951 0.613254 +-0.794952 0.048904 0.638651 -0.784534 0.130564 0.0426809 -0.580999 0.626428 +0.798411 0.505826 0.818592 -0.174041 0.38094 -0.272236 0.720355 0.709383 +0.857351 0.100727 -0.613272 -0.410095 0.567996 -0.00762872 0.926644 0.640707 +-0.0424957 -0.161533 0.81314 -0.246815 -0.130873 0.310154 0.402256 0.159093 +-0.389781 0.223039 -0.683524 -0.395225 -0.497549 0.791054 -0.751099 -0.724181 +-0.661612 0.891685 0.62511 -0.399175 -0.681625 0.613913 0.0347462 0.0741704 +0.92973 0.777514 0.523026 -0.188668 -0.518442 -0.154507 0.876129 -0.0304955 +0.359611 0.437814 0.215449 0.679015 -0.385793 0.244239 0.0285141 0.377071 +-0.0901188 0.861664 0.592853 -0.0103729 0.634642 0.0399738 0.375644 -0.942805 +-0.878677 -0.0977806 -0.581259 0.909113 -0.949485 0.539159 -0.269272 -0.644702 +0.396922 -0.901451 0.775878 0.743231 0.387978 0.902272 0.647426 0.204801 +-0.727022 0.221606 0.394251 0.138904 -0.0424268 0.910571 -0.508341 0.724071 +0.699054 -0.868596 0.542153 -0.840958 0.599846 -0.624429 -0.632413 -0.654074 +-0.665642 0.538683 -0.0799395 -0.896025 -0.706551 -0.786008 -0.672906 0.353977 +0.959652 -0.202836 -0.794991 -0.53457 0.781096 -0.101194 -0.171251 0.486897 +-0.859707 0.950463 -0.763817 -0.91514 -0.333851 0.936668 -0.216623 -0.0952078 +-0.894765 0.105362 -0.950423 0.562549 0.270471 -0.699869 0.315632 -0.91655 +0.882887 -0.00132108 0.980841 0.409653 -0.563253 0.885914 0.880727 0.964139 +0.823164 -0.920521 -0.649476 -0.626808 -0.285936 -0.248118 -0.361665 0.420277 +0.19636 0.0985554 0.150611 0.517697 -0.304759 0.122974 0.815924 -0.685767 +0.451288 0.321481 0.130937 0.116384 0.121141 -0.86833 0.639199 0.260986 +0.864675 0.681775 -0.218958 -0.769449 -0.677597 -0.971851 0.0532934 0.221523 +0.533964 0.15659 0.28682 -0.818857 -0.201443 -0.649906 0.542813 -0.00959073 +0.817783 0.165464 0.103392 -0.716906 0.962953 -0.202037 -0.0759537 0.186108 +0.562349 0.0929924 -0.666527 0.447057 -0.733005 -0.0808003 0.938691 0.94022 +0.377163 0.794003 0.878441 -0.585736 -0.216602 0.317632 -0.368325 0.960691 +0.35932 0.217905 -0.66962 0.757986 -0.0605952 0.369402 0.349153 0.375401 +0.128361 -0.759455 -0.454601 0.231159 0.182047 0.626316 -0.2662 0.970907 +0.417101 0.00294624 -0.31508 -0.81961 -0.645843 0.760031 -0.700553 -0.275863 +-0.643067 0.412063 0.268319 -0.878727 0.847759 -0.53539 -0.0379323 -0.756312 +0.31784 -0.727992 0.910541 0.947458 -0.616752 0.155985 -0.757064 0.0402706 +0.29477 0.486366 -0.195294 -0.44712 -0.730204 -0.224981 -0.573309 0.365301 +-0.640745 0.15997 -0.675915 -0.983852 0.582019 0.769503 -0.534825 0.822197 +0.730151 -0.652336 0.771257 -0.715613 -0.529114 -0.349577 0.334493 0.516408 +0.648553 0.539158 0.357103 -0.0156328 -0.427603 -0.911554 0.407488 0.392862 +0.879597 -0.0713534 -0.370896 0.695681 0.629233 -0.630578 -0.522855 0.574893 +0.84401 0.66487 -0.815655 -0.919033 0.258513 -0.873484 0.752816 -0.409359 +-0.62824 0.90338 0.339717 -0.61761 0.708712 0.962615 0.832122 0.00398013 +-0.885082 0.586661 -0.607857 0.0706468 0.343362 0.236728 -0.269383 -0.238784 +0.820654 0.911229 0.255108 -0.290276 0.363748 0.739205 0.626344 -0.791513 +0.157016 0.378835 0.249012 0.831632 -0.408016 0.483629 0.405754 0.547478 +0.015345 -0.932139 0.660487 0.521992 0.603381 0.245233 -0.274024 -0.335447 +0.887678 0.491729 -0.737601 -0.187352 -0.994706 0.889207 0.187995 -0.183223 +0.565283 0.82096 -0.138177 -0.527245 -0.400863 0.554744 0.761942 -0.335533 +0.309582 0.00424392 0.218933 0.0392123 0.274676 0.806379 -0.305205 0.0880121 +-0.676519 0.820172 0.265933 -0.807138 -0.155751 -0.939377 -0.649055 -0.562359 +-0.0252011 -0.727199 0.342119 -0.622712 -0.692151 -0.535785 0.0109545 -0.354449 +0.594403 -0.620663 -0.501857 -0.531579 -0.286862 -0.493018 0.931711 0.897296 +-0.188629 0.836926 0.816477 -0.514478 0.70182 -0.150489 -0.656092 -0.223061 +-0.637774 0.922224 -0.366716 -0.853182 -0.165967 -0.47444 -0.15255 0.237983 +-0.959962 0.731896 0.677249 -0.947991 0.0474711 -0.464246 0.180211 0.4343 +0.471294 0.390443 0.688116 -0.0258603 0.253201 -0.524004 0.00343533 -0.197581 +0.498937 -0.79427 -0.387358 -0.200615 -0.781537 0.0654888 -0.0235635 0.910196 +-0.654484 0.841849 0.349937 0.278838 0.641925 0.914998 -0.901531 0.22933 +-0.283348 0.922009 -0.824676 -0.71865 -0.791757 -0.625036 -0.321023 0.854829 +0.0107176 -0.664931 0.239071 0.40789 -0.654548 -0.848005 -0.750935 -0.713981 +0.506206 0.495062 -0.304657 -0.643287 0.723505 0.241457 0.119593 0.371297 +0.180474 0.468024 0.988186 -0.48715 -0.991846 0.244942 0.0528599 0.0637469 +0.833889 -0.11873 -0.17861 -0.189427 -0.298778 0.55161 0.243032 0.545208 +0.722107 -0.0935925 0.516911 -0.487714 -0.745494 -0.379238 0.257987 -0.666524 +0.497401 0.842661 0.209398 0.760874 -0.923557 0.1712 0.0554442 0.195015 +-0.936423 -0.663775 -0.104996 0.00741343 -0.744289 -0.617282 0.594674 0.979071 +0.208138 0.782254 -0.158247 0.222795 0.579382 0.147957 -0.114167 0.960539 +-0.923005 -0.898775 -0.0621371 0.552772 -0.858906 -0.068227 0.865541 0.5706 +0.781961 0.640867 -0.809071 0.136981 -0.356763 -0.0792435 0.297144 -0.538134 +-0.221544 -0.354654 0.4786 0.333252 -0.174252 -0.244583 0.869017 -0.0716268 +0.848776 0.283365 0.868168 0.0538657 -0.532768 0.579825 -0.506475 0.345407 +-0.652467 0.0745767 -0.161587 0.0106741 -0.00559021 0.74463 0.533452 -0.450377 +-0.541299 -0.547479 0.713555 -0.706911 0.158814 -0.232027 -0.642914 -0.11275 +-0.345691 -0.477523 0.309209 -0.576494 -0.709177 0.254141 0.88782 -0.0494284 +0.00376162 0.476296 0.324455 -0.0231295 0.75273 -0.678247 -0.766696 0.992602 +-0.392655 0.221898 -0.996051 0.643405 -0.289373 0.555213 -0.966631 0.388454 +0.399735 -0.0782908 0.282509 0.809283 0.0621044 0.686929 -0.287878 0.146168 +0.468366 -0.599108 0.491734 0.415345 -0.597701 -0.188818 -0.321578 0.439873 +0.933667 0.912003 -0.689847 0.776399 0.132141 -0.0142812 0.841542 0.904968 +0.932671 -0.205578 0.107385 0.059832 0.510427 -0.0480776 -0.67251 0.621484 +-0.100876 0.549002 0.634983 -0.119785 -0.446428 -0.391563 0.403919 0.590761 +-0.0603544 0.45941 0.25589 0.579738 -0.983069 -0.459147 -0.0990035 0.0473122 +0.954596 0.633348 0.609027 -0.12728 -0.442261 -0.953808 -0.452732 0.578247 +0.0964376 0.993204 0.940248 0.510918 0.32833 -0.98558 -0.614856 -0.511803 +0.761979 -0.582177 0.478123 0.168238 0.191916 -0.600198 -0.60908 0.438701 +0.779942 0.212245 -0.551264 0.909407 0.112989 0.237651 0.659996 -0.871192 +0.0781793 0.62752 -0.608189 0.948704 -0.494867 0.79049 0.940317 -0.817677 +-0.87335 0.831035 0.457211 0.991613 -0.673819 0.715329 -0.923197 0.650651 +0.505027 0.455998 0.244774 0.620398 0.896838 -0.0624675 -0.294483 -0.714691 +-0.807255 -0.184722 -0.606469 0.0510232 0.179566 -0.0579363 -0.174412 -0.863459 +0.710181 -0.587959 -0.998859 -0.779537 0.221212 -0.918746 -0.626431 0.0818739 +-0.881738 -0.0697553 0.506168 -0.434019 -0.935939 -0.120315 0.219988 -0.846367 +0.375305 -0.854521 0.182392 -0.314735 0.30013 -0.474127 -0.841578 -0.627124 +0.52294 0.382034 0.54439 0.0941296 -0.679883 -0.380568 0.572685 0.711513 +-0.316525 0.277625 0.983235 0.518219 0.241373 0.743714 0.0649138 -0.20638 +0.693347 0.403006 -0.464385 -0.823494 -0.321207 0.918251 0.647452 -0.502137 +0.441142 0.647581 0.632004 0.487662 0.731203 0.863621 0.463359 0.786659 +0.384 -0.0455528 0.481857 0.413089 -0.458782 -0.667023 0.522426 0.29537 +-0.82415 -0.550388 -0.255981 -0.735899 -0.380215 -0.627895 -0.234079 0.944972 +0.893836 0.735363 -0.769291 0.944714 0.285597 -0.0938004 -0.123621 0.755603 +-0.888358 0.278655 0.92245 -0.598397 -0.230367 0.748407 0.520847 0.348698 +-0.896829 -0.145125 0.962619 -0.92495 0.451189 -0.261137 -0.286005 -0.679152 +-0.539385 0.775541 -0.0944589 0.367213 0.542262 -0.346505 -0.532552 0.139301 +0.977876 0.734137 0.408733 0.485077 0.972942 -0.759233 0.735209 -0.552718 +-0.943534 0.544304 0.0340769 0.887574 0.901972 -0.674539 0.0974603 0.926637 +-0.330129 -0.703179 -0.577478 0.0477279 0.188415 0.855658 0.152493 -0.0639507 +-0.232286 0.224599 -0.370838 -0.712825 0.675681 0.00981678 0.389022 0.0244613 +-0.399395 0.894336 0.551905 0.89118 -0.444561 0.764462 -0.303071 0.141737 +0.786329 0.673323 0.477762 -0.167822 0.71861 0.664168 -0.268925 0.0828351 +0.863814 -0.929986 -0.434447 0.898087 -0.0612498 0.757239 -0.258106 -0.0494983 +0.392358 0.420596 0.134843 -0.944536 -0.672695 -0.387 -0.65693 0.562342 +0.881747 -0.842434 -0.0466943 -0.516486 -0.14465 -0.743237 0.874053 -0.0565631 +0.0330436 -0.311132 -0.173063 0.210661 -0.25813 0.318614 0.198463 -0.630609 +-0.166034 -0.966343 0.488652 -0.836782 0.809192 -0.263693 0.743423 -0.139854 +-0.448914 0.728159 -0.371649 0.183715 -0.382062 -0.611343 0.360754 -0.750939 +0.725689 -0.275327 0.566848 -0.258814 -0.89277 -0.198909 0.874353 -0.27228 +0.25559 -0.404302 -0.887753 0.832919 -0.60103 -0.480956 0.772441 0.973311 +0.814496 0.535915 0.530017 -0.528991 -0.287927 0.471753 0.607369 -0.930765 +0.255896 0.792492 -0.72809 -0.515453 -0.327744 -0.130237 -0.962123 -0.945513 +-0.791085 -0.155853 -0.759945 0.17272 0.012639 0.71853 -0.295496 -0.962142 +-0.738404 -0.942573 0.219774 -0.242158 -0.79843 0.567457 -0.269836 0.573959 +0.999862 -0.292232 0.296913 0.154585 -0.0319392 -0.101248 -0.0284865 0.566198 +-0.270317 0.0990491 0.800965 -0.972202 -0.758828 -0.524636 -0.795831 0.0511171 +0.74104 0.756612 -0.777225 0.890035 -0.0559034 -0.177004 0.0648665 0.159184 +0.722954 -0.44605 -0.930824 -0.892966 0.94335 -0.801206 -0.183307 0.882795 +0.071331 0.312503 -0.0158416 -0.384237 0.11333 0.190089 -0.532708 0.89314 +0.560323 0.165608 -0.487801 0.839083 0.777147 0.619958 -0.326733 -0.48473 +-0.959508 0.596919 -0.347908 -0.28008 0.708603 -0.00157721 0.895788 -0.556427 +-0.330629 0.710724 -0.820599 0.278355 -0.190401 0.0906331 0.498114 -0.751765 +-0.333808 0.420045 -0.497672 0.946621 0.0894518 -0.432735 -0.813018 0.373842 +0.426476 -0.225521 0.45047 0.819105 0.865342 -0.921414 -0.725207 -0.425674 +-0.281437 0.995249 -0.529129 -0.677178 -0.601884 0.0964011 0.361923 -0.301413 +-0.664911 0.927445 0.739841 -0.37735 -0.0321333 -0.925231 0.257107 0.0908388 +-0.176315 -0.843917 0.273098 0.716013 0.123057 0.70907 -0.217759 -0.686514 +0.733115 -0.0402991 0.0794695 0.546967 0.874903 0.170671 0.692598 0.649382 +0.116708 0.113768 0.641518 0.0478678 -0.137072 -0.241049 0.762593 0.292057 +-0.490503 -0.604258 0.0301591 -0.551319 0.302458 0.900232 0.561375 0.133538 +0.768615 0.121881 -0.720506 0.681753 -0.984649 -0.0141507 -0.930949 0.0295205 +-0.042986 -0.762953 -0.0271066 -0.0377672 0.199279 0.867505 0.494154 -0.93018 +0.990379 -0.300296 -0.549796 0.408229 -0.861129 -0.196474 0.457403 0.546383 +-0.390446 0.157214 -0.0581865 0.846007 -0.152204 0.591226 -0.703394 0.535103 +-0.332402 -0.532502 0.315163 0.111102 0.822611 0.735132 0.962867 0.336456 +0.808038 0.369777 0.0355726 -0.328323 0.362608 -0.635222 -0.31314 -0.477716 +0.810855 -0.941815 0.240262 0.999463 0.299438 -0.182634 0.168391 -0.956243 +-0.410342 -0.887757 -0.825826 0.476632 -0.633834 0.967322 0.287407 -0.803921 +-0.727006 -0.72843 0.216492 -0.807746 0.965501 0.845416 -0.179987 0.172446 +0.496043 0.741301 -0.192255 0.0823884 0.260061 0.376388 0.895602 -0.492551 +-0.67124 0.524929 0.424585 -0.588839 -0.918418 0.833771 -0.666691 -0.395147 +0.70891 -0.546548 -0.494552 0.765338 0.351682 0.208478 0.309074 -0.783014 +-0.414118 0.216203 0.311043 -0.769911 0.25044 -0.914296 0.505495 -0.862396 +-0.661161 0.318837 -0.323545 -0.749562 0.238528 -0.864356 0.0969031 0.343573 +0.910163 -0.0435227 -0.306567 -0.91579 0.758843 -0.735411 -0.657015 0.067253 +0.0824448 -0.143139 0.000233853 -0.669545 0.979572 -0.171555 -0.00872194 -0.281785 +0.553714 -0.0448039 -0.297894 -0.269935 0.0816493 -0.817265 -0.25409 0.816555 +-0.910175 0.453318 0.0867426 0.65485 0.408334 -0.109336 0.461691 0.673779 +-0.53455 0.371076 -0.413704 -0.303239 -0.20085 0.627329 -0.142815 -0.277738 +-0.376888 -0.239065 0.720016 0.992076 -0.966696 -0.850758 -0.604795 0.39294 +-0.268847 0.142458 -0.491271 -0.25731 0.839292 -0.403519 0.276029 0.275732 +-0.272131 -0.649085 -0.397107 -0.473747 0.19504 -0.315186 -0.332551 0.953764 +0.829421 -0.277897 0.291972 -0.431647 0.319913 0.532588 -0.648084 0.792957 +0.32397 0.325757 -0.530295 0.875518 0.530823 -0.369587 0.977863 -0.806537 +0.5498 -0.512532 0.631372 -0.219018 -0.309337 -0.791233 0.126655 -0.668416 +-0.907103 -0.593879 -0.258768 -0.929844 0.31005 0.643959 0.199629 0.539163 +-0.157051 -0.0516952 -0.924173 -0.313176 -0.951263 0.925897 -0.487796 0.898177 +-0.856732 -0.994336 0.980966 -0.988833 0.120569 0.071028 -0.546373 0.314786 +0.445977 -0.957414 0.668461 -0.363623 -0.943982 0.283875 0.509337 0.141872 +-0.638478 0.152685 -0.0681733 0.038048 -0.773979 0.927497 0.659393 0.135351 +-0.940054 0.211372 0.528711 -0.50352 0.805783 -0.510394 -0.569456 -0.694606 +0.0995063 -0.891677 0.57187 -0.0835409 0.565456 -0.58246 0.992037 0.395467 +0.275065 0.529805 -0.155233 0.176407 -0.0336307 0.896007 -0.9481 -0.81459 +-0.237838 -0.994235 -0.109618 0.173412 -0.748352 -0.882013 0.387504 0.673715 +0.822711 0.0505035 -0.110435 -0.783284 0.166197 0.0547938 0.927833 0.147362 +-0.657396 0.340709 0.40621 0.679443 -0.0472974 0.883564 0.82865 0.495513 +-0.0387411 0.711403 0.235356 0.777087 0.303619 0.594127 0.0310233 -0.757835 +-0.109776 -0.193426 -0.497913 0.853871 0.123684 0.176588 0.0694529 -0.201389 +-0.0402764 0.83056 0.175167 -0.107285 -0.739853 -0.232708 0.541223 0.677185 +0.501453 0.569484 -0.510039 -0.34945 0.0179517 0.943833 -0.158113 -0.919172 +-0.493293 -0.971963 -0.212403 -0.643734 0.443588 -0.641623 -0.211297 -0.466253 +-0.0285846 0.0773716 0.0650886 0.980142 -0.458166 0.0895902 0.789982 0.714124 +0.255996 -0.769745 -0.0267572 -0.166986 -0.530757 -0.915754 0.720455 -0.116985 +0.782805 -0.949967 -0.99872 0.61993 0.255601 0.802841 0.552145 0.315338 +0.084646 0.0161256 -0.0109366 0.443328 0.748397 0.30841 -0.415378 0.618193 +-0.507773 0.272894 0.858081 0.257301 -0.119435 -0.306529 -0.497836 0.704057 +0.661695 0.386045 0.397397 -0.532988 0.505115 0.188356 0.425434 -0.406217 +-0.0724046 -0.0522931 0.618651 -0.746365 0.585327 -0.164312 0.388168 -0.829286 +0.327152 -0.611959 -0.104688 -0.439687 -0.989773 0.593231 -0.359783 -0.100241 +0.395388 0.228014 -0.361063 -0.592886 0.237209 -0.85933 -0.952566 -0.567496 +-0.425794 0.707947 -0.217454 -0.948841 -0.951188 0.427717 0.649977 0.451391 +-0.0809486 0.762827 -0.208069 0.761946 0.195246 0.330323 -0.712674 0.385718 +-0.713438 -0.0104818 0.373325 -0.158264 -0.558272 -0.935253 -0.180376 0.257992 +0.963579 -0.467634 -0.991456 0.73661 0.420621 0.611541 0.129878 -0.139247 +0.121076 -0.232961 -0.685685 0.175954 0.636974 0.106251 0.771119 -0.486818 +0.0236844 0.845598 0.0274395 0.794204 -0.937526 0.593828 -0.677017 -0.46641 +-0.0135729 -0.615094 -0.398661 -0.833819 -0.523664 -0.0747468 0.2075 0.892752 +-0.846625 -0.545092 -0.043494 0.667598 -0.934632 -0.468268 -0.682847 0.355478 +0.137197 -0.336166 -0.205873 0.956068 -0.551939 -0.292111 0.62029 -0.690471 +-0.0719763 0.243208 0.906418 -0.861834 0.826217 -0.213284 0.0212987 -0.233671 +0.0813541 0.170654 0.403923 -0.187356 -0.816106 -0.151359 0.105874 -0.401042 +0.839184 0.347649 -0.0576062 0.760529 0.391581 0.9243 -0.352764 0.961582 +0.502812 0.134488 0.341987 0.788667 0.503163 0.692971 -0.780474 0.0476577 +0.0412754 -0.350309 0.454983 0.312676 0.135271 -0.523718 -0.418448 -0.362349 +-0.197467 -0.358567 -0.105724 -0.338137 0.461614 -0.0580483 0.303333 -0.0102347 +0.219552 0.908984 0.285955 -0.793621 0.608321 -0.35922 -0.554176 -0.939427 +0.549849 0.31185 0.952824 -0.612367 -0.0122756 -0.859247 -0.707739 0.599578 +0.755847 -0.487411 -0.746853 -0.356608 -0.491911 0.465175 -0.783563 0.508618 +0.747822 0.40923 -0.84765 0.00950605 -0.459484 0.215416 0.843092 -0.900749 +-0.332525 -0.528359 -0.896191 0.602761 -0.0746646 -0.976921 0.10818 -0.704926 +-0.476777 -0.739367 0.915101 0.256158 0.407109 0.512779 0.016504 -0.390586 +0.481183 -0.791426 -0.862797 -0.457648 0.183429 -0.921095 -0.586662 0.357809 +0.778921 0.753544 0.436628 0.964292 0.391287 -0.9507 0.180487 0.87763 +-0.915636 -0.357254 -0.0276632 0.0985259 0.365129 0.632246 0.0456464 0.826809 +0.162956 -0.551402 -0.100095 0.375576 0.929266 -0.768643 0.453956 -0.558734 +0.387555 0.00583336 0.0956637 0.150533 0.535709 0.224147 0.459317 -0.328455 +-0.302872 0.997435 0.693767 -0.580299 -0.923281 0.38768 0.910991 -0.944723 +0.263872 -0.00554942 0.922022 0.966055 -0.916112 0.953158 -0.0659692 0.67065 +0.771442 0.564864 -0.0156295 0.887604 0.702961 -0.705951 -0.818255 -0.528323 +-0.310714 -0.288474 -0.58712 0.717359 0.159609 0.551893 0.975287 0.827947 +0.65936 0.82215 0.939652 0.648182 0.252733 -0.17138 0.522031 -0.4215 +-0.706526 0.1775 -0.273366 -0.687876 0.854777 0.63618 0.398037 0.020683 +0.753955 0.0357367 0.332278 0.184082 -0.120687 -0.0202955 -0.494045 0.0165401 +0.563232 -0.762517 -0.758065 0.385607 0.0584629 0.0359835 0.564418 0.658008 +-0.814176 0.193863 0.340561 -0.467972 0.730094 -0.590777 0.266266 0.898681 +0.42032 -0.158488 0.0773322 0.629157 0.148051 0.788621 -0.0995409 -0.51202 +0.551366 -0.174213 0.211137 0.44097 0.627692 0.487515 -0.110838 -0.259599 +0.660744 0.808913 0.431178 -0.743901 -0.70084 -0.614744 0.873532 0.947402 +0.657012 0.677467 -0.88745 -0.848636 0.488145 -0.70814 0.21825 0.146662 +-0.640812 0.575023 0.305682 -0.321175 -0.789839 0.669056 -0.265304 -0.460024 +0.0602146 0.623089 -0.118032 -0.258082 0.32257 -0.434977 -0.706771 -0.730281 +0.785421 0.949763 0.00173022 0.307924 0.913622 0.945387 -0.192498 -0.78929 +0.0812777 -0.1087 -0.902461 -0.439343 -0.0509033 0.493594 -0.91322 -0.911076 +0.664665 -0.345977 -0.122002 -0.148442 0.995442 0.948341 -0.474989 0.717596 +0.560131 0.514181 -0.436591 -0.0717882 0.487307 -0.670861 -0.0540871 0.73297 +-0.345602 0.578287 0.131515 -0.470945 0.13739 -0.263547 -0.158584 0.305424 +-0.484451 -0.718533 -0.885015 -0.280674 -0.918536 0.212214 -0.176913 0.517279 +0.988947 -0.76769 -0.749337 0.300556 -0.37006 0.164866 0.228126 -0.759785 +-0.174493 -0.924436 -0.506373 0.482527 -0.956326 0.165372 0.633601 0.177169 +-0.517201 0.00372408 0.415542 -0.350327 0.222067 0.225172 0.815001 -0.0865672 +0.197375 0.222817 -0.747992 -0.503789 0.468773 -0.439407 0.033173 -0.129953 +0.827224 -0.466374 -0.495222 -0.0898777 -0.680222 -0.585435 0.916833 0.0594001 +0.959447 -0.380616 0.975301 -0.367369 0.40445 -0.823556 0.0115204 0.84144 +-0.472505 0.360614 0.206951 -0.583504 -0.625714 -0.748102 0.330881 -0.562482 +-0.990271 -0.739283 -0.191383 -0.00171732 0.546829 0.295452 0.0531057 -0.383237 +-0.72186 -0.835512 -0.705172 0.381392 -0.606595 0.77036 0.123339 -0.249107 +0.888597 0.00179132 -0.78501 0.794097 -0.651798 -0.813885 0.78348 0.297299 +0.81999 0.15467 -0.14832 -0.458069 -0.404541 0.832797 -0.630262 0.480856 +0.314595 0.0334145 -0.135598 -0.202529 0.999964 -0.198896 -0.246905 -0.513281 +-0.884823 0.558152 0.314944 0.438152 0.426111 0.895771 0.404761 -0.743871 +-0.0142195 0.576544 0.263497 0.550393 -0.177705 -0.0444126 -0.493675 0.149114 +0.788509 -0.967804 0.0512684 -0.000240066 0.968937 0.177356 0.894977 -0.0332478 +0.920454 -0.684096 -0.00578537 0.343446 0.376961 -0.825182 0.973292 0.59011 +-0.815357 0.00406678 0.781357 -0.772359 0.270754 0.888258 0.359646 0.399655 +-0.113866 -0.884301 -0.958318 -0.32709 0.840044 -0.628694 0.628969 -0.204064 +-0.438121 -0.670837 0.590836 -0.805603 -0.007223 0.575179 -0.82525 0.826362 +-0.547629 -0.954535 -0.644461 -0.955827 -0.766725 -0.351031 0.903685 -0.599275 +0.854089 -0.314952 0.0995219 0.0699437 -0.669311 0.942229 0.149795 0.537265 +0.309702 -0.824829 -0.548082 0.206617 -0.725008 0.180603 0.580146 0.615781 +-0.854342 0.479803 -0.9838 -0.099605 -0.763394 0.237341 0.934116 -0.420095 +0.115805 -0.208419 -0.087311 0.129972 -0.563641 -0.421101 -0.970127 0.137739 +0.44262 -0.177393 0.167527 -0.692812 0.599586 -0.743865 -0.772632 -0.176744 +-0.549924 -0.368415 0.30554 0.353603 -0.123664 -0.352592 0.847888 0.423067 +-0.413168 -0.0570652 0.847956 -0.918095 -0.741655 0.462271 -0.679351 -0.111826 +0.287593 0.46235 -0.579968 0.335121 0.6549 0.460653 -0.167511 0.622548 +-0.672489 0.443283 -0.203378 -0.216303 0.0656424 0.964999 0.400008 0.477621 +0.207475 -0.961349 -0.262596 -0.731828 -0.506035 -0.999647 0.751166 -0.764657 +0.467351 -0.367681 -0.953751 0.359332 0.754394 -0.999689 -0.531382 -0.871787 +0.250477 -0.796916 0.423656 0.909619 0.553729 -0.122082 0.977349 -0.467007 +0.520121 0.95428 -0.410991 -0.409846 0.546661 0.840189 -0.915785 0.98718 +-0.18025 -0.607312 0.0637037 0.37189 -0.847285 -0.180727 0.508935 -0.30391 +0.643897 0.352201 -0.662156 -0.883445 -0.235406 0.303709 -0.568661 -0.853786 +0.555629 -0.404865 -0.93202 0.41341 -0.61751 -0.304193 0.857318 0.10947 +0.712673 -0.808243 -0.0434287 0.0282617 0.200517 -0.420758 -0.663233 -0.804838 +-0.477177 0.173882 -0.980349 -0.973668 0.196806 -0.165048 0.889967 -0.527342 +-0.189642 0.0841829 -0.158568 0.690367 -0.68358 0.333694 0.835314 -0.687871 +-0.711753 -0.443409 0.998708 0.174378 0.91963 -0.664183 -0.811339 -0.656113 +0.0287801 0.0142831 0.551603 0.962091 -0.00350028 -0.531681 0.525424 0.25806 +-0.458069 0.485684 -0.0619558 0.833071 0.0482247 0.535973 -0.236037 0.867441 +-0.023838 -0.0643108 -0.996132 -0.567693 0.440262 -0.103496 -0.527486 0.464781 +-0.698311 -0.296613 0.0111023 -0.488601 -0.659732 -0.738163 -0.963845 0.230247 +-0.908222 -0.299702 -0.642994 -0.55212 0.260429 -0.226378 0.913648 -0.365756 +0.437429 0.162903 -0.195237 0.531475 0.091433 0.282727 0.203729 0.00381281 +0.0990043 0.819328 -0.611776 0.123238 0.6737 0.398916 -0.234533 -0.337256 +0.814935 -0.153293 -0.76881 0.169639 -0.338824 -0.85024 -0.273738 -0.613287 +-0.210824 -0.627221 -0.541288 -0.0872546 0.389206 0.701921 -0.782778 0.79226 +-0.909832 -0.215319 0.660727 0.775423 -0.372287 0.624207 -0.637745 0.932302 +0.842689 -0.874822 0.0611899 0.730969 -0.580852 -0.337593 0.67403 -0.244609 +0.22271 0.545747 -0.321391 0.866144 -0.615409 -0.860523 -0.670567 -0.749662 +-0.726717 0.681525 -0.87862 -0.620928 -0.606091 0.0870114 0.752608 0.857461 +-0.0590785 0.818145 -0.332715 0.360067 0.841109 0.216229 0.0631998 -0.885411 +0.955158 -0.937858 0.360506 -0.519713 -0.420515 -0.412394 0.668483 0.306322 +0.00551993 -0.873231 0.567241 -0.0486603 0.887307 0.0875648 0.479888 -0.155571 +0.904497 -0.342693 0.382679 -0.19778 0.53716 0.508197 -0.269558 -0.792825 +0.52473 -0.304597 -0.224985 0.751555 0.353214 -0.999656 0.783507 0.413489 +0.80228 0.66089 -0.584213 -0.968646 0.498895 0.162749 -0.338572 0.816104 +-0.557026 0.883686 0.343095 0.334774 0.344759 0.755417 0.136652 -0.945347 +-0.416951 -0.878276 -0.971276 -0.830583 0.798158 -0.499066 0.237057 0.266891 +-0.760204 0.386817 0.558751 0.27612 -0.285203 -0.0346366 -0.97617 0.0346681 +-0.146884 0.400747 -0.0775784 0.900523 0.017959 0.649192 -0.478388 0.674617 +0.74203 0.950873 0.685794 -0.64869 0.540257 0.513511 0.138377 0.322264 +-0.727548 0.706718 -0.000295323 0.629921 0.396159 -0.73155 -0.172958 0.0498129 +-0.878049 -0.118984 -0.213529 0.759694 0.833882 0.731587 0.97162 -0.613445 +-0.491061 0.196977 0.356361 -0.742985 -0.945365 0.274974 -0.489835 0.625618 +-0.630478 -0.36574 0.463239 -0.116383 0.783928 0.979597 -0.947382 0.560773 +-0.33433 0.104791 0.744223 -0.622755 0.0544037 0.687749 -0.376238 -0.977356 +0.530733 -0.95224 -0.583356 -0.262283 -0.837691 -0.114288 -0.498621 0.398882 +-0.85912 0.775853 0.96867 0.873247 -0.597385 -0.258265 -0.469445 -0.541538 +-0.657603 0.994144 -0.518487 0.717148 0.357168 0.781278 0.366237 -0.91158 +0.66088 0.979942 -0.0887133 -0.708632 0.394368 0.691787 -0.0560976 0.0170481 +0.421953 0.0205685 -0.456769 0.384411 -0.558128 -0.0706432 -0.337617 0.425415 +0.825493 -0.570805 -0.197645 0.826435 -0.975019 0.0510593 0.31627 -0.0646259 +-0.341256 -0.966377 -0.388371 -0.530386 -0.940404 -0.291 0.621017 0.938019 +0.207462 -0.835385 -0.933832 0.802338 0.576419 0.876296 -0.0189136 -0.62584 +0.566295 -0.204288 0.381545 -0.957756 0.229146 0.911575 -0.273125 -0.86176 +-0.159784 0.118258 -0.0928733 0.908685 -0.75321 0.17539 0.9311 0.919689 +-0.895679 -0.869722 -0.305613 0.978413 -0.260642 -0.22097 0.0108463 0.464738 +-0.921535 0.531013 -0.89864 -0.181785 -0.987569 -0.301404 -0.462394 0.0737861 +0.275929 -0.76026 0.881128 -0.806603 -0.375909 -0.117435 -0.324399 0.734031 +0.199174 0.951772 -0.786122 -0.469441 -0.660992 -0.839116 0.227365 -0.330594 +0.490465 -0.898334 0.179136 -0.984101 0.140673 0.909234 0.331808 0.915265 +0.0119734 0.416263 0.976076 0.496574 0.495028 0.0999223 0.712925 -0.870446 +0.00638765 0.296281 0.926079 -0.487033 0.584958 -0.50556 -0.439026 0.833546 +0.630958 -0.596538 0.605977 0.0390853 0.720553 0.89873 -0.543126 -0.975361 +-0.748472 0.0475716 -0.529878 -0.430742 -0.397697 -0.0979335 -0.674655 0.399633 +-0.48724 0.549792 0.658135 -0.309457 -0.883989 -0.732573 0.226791 0.930981 +0.332137 0.11424 -0.839425 -0.51136 -0.177398 0.102265 0.13192 -0.0157651 +-0.0631248 -0.227487 0.380461 -0.0747341 -0.61549 -0.529484 0.299037 0.690554 +-0.682568 0.532712 -0.0527239 -0.420051 0.867505 -0.599011 -0.0133785 -0.554751 +-0.859661 -0.463941 0.418014 -0.706624 0.611324 -0.157146 -0.279821 0.827332 +0.409209 -0.439493 0.0758388 -0.201192 -0.989339 -0.671252 0.649598 -0.763886 +-0.914459 -0.531413 0.484629 -0.590613 0.333156 -0.369144 -0.667669 0.831709 +-0.0354539 -0.354733 -0.36816 -0.664978 -0.657856 0.397374 0.136192 0.849048 +-0.187504 0.806837 -0.606356 0.617539 -0.66631 0.475744 -0.214508 0.0036764 +0.217461 0.652098 0.448925 -0.427721 0.0810363 0.467725 -0.360456 -0.857412 +-0.574992 -0.526611 -0.635704 -0.546381 -0.0412227 -0.340441 0.649255 -0.361588 +-0.674937 0.380113 -0.0846294 -0.94479 0.798474 0.402347 0.19684 0.536886 +-0.675463 -0.145289 -0.374791 0.953359 0.81581 0.498523 0.309522 0.0254998 +0.959249 0.559139 0.0918515 -0.367284 -0.10403 -0.586723 0.628689 -0.179668 +-0.513358 -0.496821 -0.293347 -0.909988 -0.880276 -0.776228 -0.615681 0.497814 +-0.319152 0.116039 0.912388 -0.241796 -0.301361 -0.514832 -0.856162 -0.247559 +-0.925836 -0.392175 0.176942 0.595711 -0.172777 -0.787395 0.183967 0.739094 +0.0525105 -0.0792188 0.350732 0.3928 -0.712205 0.207856 -0.768793 0.254312 +-0.141179 -0.219261 -0.260389 -0.16628 0.726619 0.475262 0.264393 -0.873328 +-0.850199 -0.00897556 -0.188208 -0.269785 0.461309 0.815468 0.420283 -0.807427 +-0.203922 0.784878 -0.0223819 0.962732 0.933451 0.441232 -0.0194445 -0.0915435 +-0.305227 -0.065699 0.800444 0.588996 -0.981894 -0.325637 -0.900863 0.437637 +-0.932576 -0.402177 -0.17346 0.634145 -0.0238627 0.963023 -0.697048 -0.351221 +-0.287877 -0.79217 0.760758 0.751295 0.660071 0.252603 -0.976328 -0.0297105 +-0.0206815 0.53749 -0.924362 0.92181 -0.442592 -0.605057 -0.450468 0.572781 +0.872323 -0.262186 -0.471666 -0.801154 -0.109649 0.101526 0.593327 -0.357968 +-0.426648 -0.874541 0.306597 -0.978336 0.149578 -0.158159 -0.398312 0.0457713 +-0.835031 0.381016 0.301201 0.472713 -0.147695 0.233435 0.72058 -0.178571 +0.38076 -0.0232382 -0.0441087 0.293799 -0.503988 0.688588 -0.275395 -0.476685 +0.529689 -0.941966 -0.669545 0.614952 0.318608 0.0132478 0.140862 -0.212678 +-0.423667 -0.677594 0.59492 -0.305622 -0.237802 -0.470778 0.0884266 0.535806 +0.797109 -0.145284 0.136003 0.334246 0.848925 0.900752 0.585877 -0.112343 +-0.192336 -0.908105 -0.334296 -0.715652 0.879834 -0.402718 -0.872987 0.296066 +-0.653681 -0.184739 0.940983 0.209873 0.544847 0.282653 0.339019 -0.428972 +-0.194294 -0.0596286 -0.810739 0.726835 0.451793 -0.707472 -0.950164 -0.236336 +0.637462 -0.256761 -0.670492 -0.193041 -0.915003 -0.731883 0.0366833 -0.245979 +-0.105886 0.743982 -0.740773 -0.865156 -0.87489 0.848912 0.523122 0.946026 +0.943791 0.325707 -0.671541 0.375961 -0.77914 0.430596 -0.032457 0.605194 +-0.416813 0.324276 0.131722 -0.258272 0.233975 -0.837174 0.594033 -0.505245 +0.817084 0.530562 -0.549989 0.444467 0.369909 -0.963979 0.301724 -0.0409435 +0.291737 0.278037 -0.110433 -0.692999 0.195792 0.158968 0.153503 0.196956 +0.0469962 0.823191 0.500532 0.255422 -0.840759 -0.393582 0.875076 0.992727 +-0.87556 0.237767 -0.912181 0.542862 0.163611 -0.453662 0.668599 -0.0388426 +0.509496 0.187931 0.693408 0.267075 0.047769 0.67806 0.273793 -0.90513 +0.941115 0.58601 -0.337077 -0.9097 0.450873 0.0433947 0.742621 0.913492 +-0.351252 -0.270526 -0.017284 0.292235 0.708252 -0.35782 0.313049 -0.47276 +-0.541737 0.477614 0.914302 0.187172 0.94786 -0.782811 -0.590241 0.803465 +0.435025 -0.298838 0.966699 0.491255 0.315439 0.61704 -0.395228 -0.392824 +0.0618606 0.597891 0.787649 -0.20335 0.281462 -0.341359 0.857565 -0.417426 +0.612807 0.878532 0.54191 -0.91607 0.910597 0.944217 0.28692 -0.872627 +-0.252343 0.483845 0.558156 0.837132 -0.354361 -0.824163 -0.0468551 0.598785 +0.458753 0.509112 -0.107625 0.358408 -0.773761 0.920507 0.5133 0.0146401 +0.509639 -0.86449 -0.980457 0.734108 0.190015 0.447651 -0.797752 -0.151256 +0.360296 0.0602842 -0.158694 0.522549 0.5189 0.105209 -0.804607 0.086694 +-0.652952 -0.91206 0.793921 -0.820705 -0.486369 0.0957001 0.426589 0.868367 +0.53759 -0.900937 -0.408052 0.440422 0.931243 -0.939854 0.697158 0.11263 +0.477773 0.598425 0.387298 -0.300583 0.593027 0.204957 0.279418 0.654208 +0.97629 -0.725834 -0.961116 0.794761 -0.262701 -0.494546 0.105579 -0.491426 +0.492469 0.610988 -0.318709 -0.0778782 -0.844701 0.345592 -0.564935 0.97157 +-0.572702 0.185061 0.297169 -0.0994182 -0.00171426 -0.524556 0.89236 -0.18742 +-0.920791 0.840442 -0.438821 0.255716 0.491834 -0.915584 -0.0704714 -0.0883544 +0.189995 -0.134067 0.97846 -0.787238 -0.106828 0.518955 -0.0981396 0.8735 +0.307827 -0.141964 -0.618969 0.390996 -0.845153 0.720349 -0.585495 -0.470719 +0.860287 0.957916 0.716103 0.645734 -0.443912 0.728765 -0.969215 -0.632284 +-0.630021 0.101462 0.505277 -0.31435 0.668509 0.262507 0.604366 -0.172558 +0.772381 0.101686 -0.207645 -0.649582 0.0250132 0.734477 0.646272 0.88122 +-0.97247 -0.124273 0.376311 0.202495 0.241541 -0.249191 0.274259 0.865586 +-0.488333 0.124564 -0.0907398 0.851215 -0.817624 -0.456055 0.178095 0.490173 +0.423917 0.385585 -0.351425 0.518931 0.852271 0.457764 0.622485 -0.757424 +0.429632 -0.0673521 -0.986684 -0.915105 -0.18279 -0.0054937 0.369554 -0.0413534 +-0.259525 -0.900449 0.869191 0.383346 -0.588504 0.0464366 -0.331381 -0.603107 +-0.0421066 0.521706 -0.457787 -0.859707 0.121332 -0.688289 -0.627297 0.147912 +-0.728273 -0.327037 -0.797175 0.124753 0.607685 0.515823 0.467392 0.624953 +0.64195 -0.921966 0.923367 -0.0103251 0.274991 -0.719075 0.666047 0.609565 +0.418002 0.0575557 0.185757 -0.440775 0.916628 -0.329855 0.139507 -0.459667 +-0.304674 0.664609 -0.687229 0.254551 -0.12832 0.225946 0.336273 -0.859519 +-0.746536 -0.479471 -0.48817 -0.720331 0.466456 -0.533169 0.349399 0.599752 +-0.0693433 -0.66859 -0.879882 -0.599289 0.237562 0.877683 -0.689928 0.312201 +-0.0717741 0.936356 0.287193 0.598347 0.280962 -0.415179 -0.631889 -0.759308 +-0.476299 0.500561 -0.389283 0.0752255 -0.823881 -0.629974 -0.777593 0.589724 +0.16367 -0.901747 0.137909 -0.200179 -0.310539 -0.730002 -0.753454 0.221545 +-0.823618 0.71099 0.120062 0.94313 -0.540315 -0.174294 0.0997371 -0.303804 +0.229812 0.166168 0.0178043 0.381846 -0.180521 0.73516 0.403749 -0.395635 +0.0992278 0.330474 -0.581984 -0.138663 -0.617203 -0.135819 0.600691 0.0268797 +-0.867314 -0.584255 0.809209 0.329158 0.90545 0.1753 -0.400219 -0.820276 +0.889715 -0.615202 0.422693 -0.512655 -0.28159 0.688616 0.16942 0.915295 +-0.161029 -0.515813 0.783674 -0.0141777 -0.208935 0.24286 -0.581803 0.900997 +-0.293134 -0.926263 0.11065 0.889701 -0.196972 0.240469 0.0977642 -0.269138 +0.947799 -0.692088 -0.0539804 0.98837 -0.0416007 0.883438 -0.574093 0.762027 +-0.753382 -0.476178 -0.120212 -0.250303 0.819984 -0.35557 -0.724674 -0.062026 +0.172574 -0.24731 0.490383 0.534608 -0.507587 -0.114624 0.343643 0.664548 +0.495146 -0.904574 -0.595895 0.768859 0.559969 0.467195 -0.774944 -0.95477 +-0.496379 -0.641125 0.517243 -0.275505 0.684218 -0.632928 0.711154 -0.404151 +0.384641 0.584677 -0.0372261 -0.243059 -0.511208 0.586556 -0.907605 -0.916789 +-0.765877 0.416646 -0.193778 0.299936 0.0225621 -0.559503 -0.502178 -0.568158 +-0.172914 -0.717633 -0.802751 0.0825455 0.629485 0.0559055 0.603573 -0.372429 +-0.433832 0.562259 0.441644 0.0365981 0.571727 -0.35747 -0.903666 0.170439 +-0.0182899 0.582303 0.396927 0.490243 0.428688 0.826028 -0.769244 0.131322 +-0.0649736 -0.486877 0.307647 -0.282122 0.00321377 -0.278147 0.188783 -0.79282 +-0.461419 0.0587373 0.00863312 -0.836072 0.982549 -0.9016 0.212936 0.769096 +-0.145638 0.854439 -0.722917 -0.676676 0.549161 0.770368 0.173006 -0.11283 +-0.285712 0.358843 0.35235 -0.10454 0.691551 -0.251248 0.720999 -0.941685 +-0.298927 -0.697801 -0.450239 0.780919 -0.708458 -0.815036 -0.271314 0.457595 +0.791149 -0.843316 0.986323 -0.546781 -0.255032 -0.426204 -0.280213 0.992756 +0.409801 -0.670451 0.40012 -0.39183 -0.345477 -0.42522 -0.966631 0.786546 +-0.312445 -0.0309838 -0.554719 0.140774 0.273426 0.832503 -0.157708 -0.171821 +0.876955 0.827097 0.328969 0.488356 -0.144097 -0.996807 -0.356181 -0.611194 +0.58955 -0.0291045 -0.332825 -0.197394 0.425674 -0.699252 0.642559 -0.794596 +-0.529947 -0.0193539 0.98977 -0.353262 -0.42003 -0.0451023 0.746347 -0.644907 +0.626559 0.780302 -0.308995 0.229609 -0.366871 -0.362754 -0.0219739 0.366236 +-0.820737 0.242969 0.358432 -0.452546 -0.731564 0.431045 -0.976861 0.198892 +-0.376432 0.77431 0.649057 0.319377 -0.850052 -0.58928 0.0156763 -0.812998 +-0.493896 0.41896 -0.517035 -0.811271 0.40643 -0.23912 -0.356455 0.6641 +-0.41023 0.700385 0.737752 -0.644895 -0.0700061 0.171841 -0.712709 0.679685 +0.538251 -0.777821 -0.00789328 0.261929 -0.679857 0.744825 -0.789269 -0.806872 +-0.232583 -0.195067 0.392618 -0.953142 -0.0904066 0.264567 0.543454 0.863769 +0.290802 -0.0484524 0.212338 0.70878 0.594766 -0.970906 0.383978 -0.11893 +0.857453 -0.598519 0.700796 -0.637398 -0.947281 -0.287379 -0.68622 -0.578451 +0.61569 -0.0413152 0.189581 -0.025467 0.591727 -0.384784 0.507341 -0.200527 +-0.327361 0.216689 0.278828 -0.610616 -0.924084 0.571235 0.658218 -0.0680971 +0.369076 -0.508041 0.07053 0.444586 0.423478 -0.771579 -0.973658 -0.133692 +0.689909 0.288778 -0.00930822 -0.40316 0.0746928 -0.730177 -0.455322 0.308062 +-0.75867 -0.902211 -0.767175 -0.50214 0.067032 -0.196716 -0.721929 -0.217908 +-0.418515 -0.0892808 0.334449 -0.530416 0.275294 0.628504 -0.519566 -0.494369 +-0.805554 -0.36026 0.697411 0.742628 0.980818 -0.986554 0.618374 -0.362962 +-0.781809 0.252234 -0.938689 0.307694 0.114816 0.43207 0.371939 -0.700677 +0.530469 -0.880949 -0.927973 -0.948703 0.888111 0.513933 0.541723 -0.232608 +-0.634947 0.83015 -0.854609 -0.868864 -0.741456 0.315889 0.372722 -0.512462 +-0.526706 -0.967388 -0.395551 0.967151 0.180373 -0.285083 -0.712694 -0.527483 +0.826659 0.197001 0.168898 0.802458 0.683358 0.603025 0.696586 0.786815 +-0.399333 0.491316 0.156492 0.155273 -0.664144 -0.0482588 0.715768 -0.964983 +-0.347052 0.276578 -0.427049 -0.665851 0.376211 -0.133866 0.833013 0.84972 +-0.550404 0.293952 -0.652923 0.263592 -0.66903 0.908735 0.13017 -0.207125 +0.558522 0.0243762 -0.252566 0.425635 0.970293 0.201025 -0.933472 0.485181 +0.418512 0.973218 0.934906 -0.851058 -0.923213 -0.00528692 0.663163 0.336733 +0.300305 -0.449919 -0.917818 0.56312 -0.846321 -0.209079 0.420273 0.414711 +-0.534024 0.782551 -0.195787 0.633653 -0.618581 -0.0647479 -0.559319 -0.689941 +0.118928 0.136822 -0.0326385 -0.767448 -0.983201 -0.608737 -0.538138 -0.771818 +0.0642788 -0.23575 -0.955825 0.531643 0.896696 -0.93714 -0.743735 0.83404 +-0.759699 -0.307215 0.897355 -0.912848 -0.202901 -0.503434 -0.127725 0.657111 +0.588039 0.642811 0.798735 -0.357405 0.429553 -0.8095 0.142669 0.281876 +0.731616 -0.745817 0.687116 -0.963179 -0.202882 -0.560052 0.219008 -0.577207 +0.171463 -0.789992 -0.26166 0.148791 -0.461787 -0.620984 0.800754 -0.533135 +0.146333 0.133831 0.129373 -0.38419 -0.852851 -0.963873 -0.754177 0.450762 +-0.0854603 0.463209 0.162718 0.14919 -0.398727 0.0412205 -0.741961 0.344254 +0.648451 0.533531 -0.305557 0.943382 0.259429 0.35427 -0.170163 -0.687101 +-0.384459 0.862088 -0.538926 -0.0551781 -0.162722 -0.610804 -0.342109 0.922671 +-0.707937 0.290735 0.500182 -0.917945 0.0717458 0.131323 -0.568289 -0.723669 +-0.821583 0.919702 -0.380865 -0.0226084 -0.0980169 -0.397053 -0.563419 0.710794 +0.933331 -0.210902 0.145008 -0.830874 0.545921 -0.766231 0.70935 0.380556 +-0.118949 0.833075 -0.138143 0.388361 0.294505 0.307174 -0.122785 0.242586 +-0.989216 0.278074 0.944563 -0.887136 -0.495663 0.0860985 -0.365618 0.539404 +0.327773 -0.00732701 -0.453755 0.49406 0.660355 -0.33187 0.600803 0.460809 +-0.823785 0.387044 0.260448 0.539937 -0.544437 -0.772416 0.882615 0.984641 +0.374367 0.764354 -0.356019 -0.124537 0.879582 -0.492949 -0.0903574 0.798317 +0.995688 0.216409 0.996199 0.896376 -0.227497 0.438396 -0.629191 0.420907 +-0.653814 0.570553 0.109743 -0.133596 -0.481663 0.863684 0.35997 -0.985733 +0.877632 -0.193981 0.700456 -0.519204 -0.0232916 0.408009 0.420762 0.891245 +0.32699 -0.195468 -0.745174 0.669308 0.567984 0.125155 0.369705 0.586686 +0.350518 0.857318 0.235782 -0.0613923 0.930641 0.442481 -0.0804044 -0.710929 +-0.160918 -0.982138 -0.358503 -0.523143 0.300813 -0.429542 -0.209023 0.313505 +-0.96121 -0.735214 0.238155 0.770734 -0.797954 0.685873 -0.435539 -0.481711 +0.226573 -0.947087 0.483706 0.88208 -0.280183 0.838936 -0.29229 0.391445 +-0.908792 0.486889 0.217232 -0.822105 0.414924 -0.482778 0.676449 0.183816 +0.0442115 0.623602 -0.65238 0.278868 -0.0683481 -0.255748 -0.937132 -0.459009 +0.863573 0.615655 -0.315832 0.0756595 -0.984566 -0.196992 -0.69228 0.814119 +-0.349865 -0.339028 -0.898581 0.673827 -0.976803 -0.226884 -0.38377 0.208712 +-0.399204 0.283016 0.270532 -0.602491 0.505236 0.957699 -0.688275 0.0937528 +-0.362006 -0.180131 -0.00592082 -0.640728 0.261582 0.991148 -0.900273 -0.806972 +0.583159 0.246894 -0.333407 -0.949928 0.864219 -0.751779 0.691914 0.384194 +0.519467 0.975468 0.330569 -0.90671 0.876544 0.528413 -0.257303 -0.443693 +0.975573 0.761322 0.906247 -0.379877 -0.301486 0.88182 -0.270344 -0.0292251 +0.133132 0.527226 0.684918 0.763549 -0.154507 0.694995 0.568294 -0.583042 +0.703709 0.335868 -0.598098 0.939269 -0.985655 -0.51328 0.666223 -0.134206 +-0.993873 -0.0213064 0.558352 0.758266 0.0838586 0.83138 -0.29162 -0.224693 +-0.0316652 -0.193959 -0.22978 0.317311 0.36578 0.515929 -0.0359695 -0.285163 +0.912247 -0.53452 0.973823 0.231653 -0.736281 -0.0860418 -0.834986 -0.790922 +-0.577686 -0.576915 -0.0706287 0.202458 0.782071 -0.625289 -0.776728 0.0224522 +-0.707905 0.50783 -0.061236 -0.617065 -0.618228 -0.131832 -0.153148 0.942724 +0.360483 -0.871978 0.993859 0.114053 0.757332 0.386036 -0.361646 0.207122 +0.908065 0.830837 0.869343 -0.73375 0.928219 -0.464749 -0.571267 0.586814 +-0.341393 -0.627896 -0.264869 -0.585668 0.700693 0.094233 0.20721 0.479512 +-0.457757 -0.473789 0.576526 0.301305 0.574675 -0.883921 0.449592 0.0104652 +0.138251 0.49342 -0.17178 -0.56035 -0.762154 -0.121695 -0.563466 -0.339857 +0.406129 -0.857286 -0.290089 0.12217 -0.820902 -0.73995 -0.321759 -0.956618 +-0.0963213 -0.5873 0.645211 -0.0321442 0.133028 0.918141 -0.628066 -0.916372 +0.0722743 -0.914343 0.414923 0.546207 -0.107927 -0.494056 -0.643561 0.900971 +-0.249978 -0.145655 -0.814521 0.0326581 0.231742 0.836964 -0.941829 -0.804002 +0.574748 0.744282 -0.485392 -0.812953 -0.441999 -0.373936 0.301269 -0.338922 +0.219447 0.0117936 -0.441458 0.803417 -0.335385 -0.690639 -0.478367 0.307749 +0.132945 0.488976 0.135689 0.0114681 -0.025846 -0.599261 0.326764 -0.935265 +-0.363688 0.695589 -0.5346 -0.407649 0.981315 0.0246431 -0.527814 0.230187 +-0.875594 0.456132 -0.888954 -0.698443 -0.217489 -0.475568 0.0283053 0.889665 +-0.0128877 0.291354 0.546735 0.0149985 0.383543 -0.842329 0.701909 -0.570953 +-0.571183 0.999504 -0.122796 -0.961091 -0.891756 0.71844 -0.0322515 -0.0286555 +0.82554 0.507298 -0.134212 -0.0271159 -0.977184 0.319353 0.531244 0.676701 +0.459324 -0.53799 0.985868 -0.836446 -0.0763077 -0.135364 0.450683 0.898561 +0.648359 0.841209 -0.551843 -0.860345 0.270765 0.326527 -0.879455 0.606743 +-0.402212 0.427867 0.314495 0.436551 -0.918564 -0.38591 0.796554 0.613382 +0.302905 -0.495404 -0.523858 -0.104942 -0.363109 -0.583927 -0.972001 0.0532944 +0.57196 0.904289 0.0753444 0.932419 -0.375329 -0.864336 0.610242 0.694952 +-0.0443916 0.933443 0.92164 0.496693 0.104307 0.0601594 -0.965775 -0.0209767 +0.898485 -0.622735 -0.780745 0.850789 -0.766448 0.29336 -0.335751 0.598825 +0.185243 -0.417636 0.618871 -0.00301566 -0.522258 0.593437 0.548895 0.895387 +-0.717995 0.370277 0.364839 -0.995687 -0.34362 0.16334 0.0853892 -0.909615 +-0.664666 -0.751413 -0.577684 -0.726584 0.560147 0.913928 0.906507 0.918903 +-0.784676 0.796495 0.24843 0.758365 0.648675 0.446033 -0.661835 0.229135 +-0.218507 -0.842401 -0.94384 -0.340522 -0.567136 -0.0856874 0.249805 0.851357 +-0.419823 0.868567 0.316477 0.601669 0.182882 0.744039 0.381101 -0.264542 +0.20937 -0.216538 0.995052 0.398241 -0.835791 0.128067 0.835295 0.871096 +0.68631 -0.67594 0.499961 0.819347 0.0212814 0.424364 0.225614 0.337487 +0.455317 -0.873514 -0.57145 -0.689051 0.94138 0.449968 -0.647846 -0.764756 +0.947225 0.408823 -0.923999 -0.326329 -0.724871 -0.818855 -0.691498 0.0741818 +0.324278 -0.937081 -0.887451 0.609746 -0.796141 -0.0630527 -0.475713 -0.148614 +-0.218216 0.577573 -0.328165 -0.74413 0.539602 -0.320021 0.16646 0.732442 +0.914569 -0.247973 0.322736 -0.646617 -0.465801 -0.225577 0.343479 -0.18574 +-0.622274 0.509186 0.16363 0.474264 0.247911 -0.0491472 -0.337898 -0.773024 +-0.455746 0.925947 0.271179 0.157244 0.918011 0.816703 0.723029 -0.407765 +0.135431 0.207946 0.454171 0.150807 0.39808 -0.181156 0.662142 0.998837 +-0.170967 -0.262359 -0.352112 -0.862965 -0.722295 0.0390601 -0.383904 -0.561961 +-0.500291 -0.300887 -0.140161 0.443431 0.973627 -0.793971 0.31385 -0.409709 +-0.437718 0.280706 0.0449257 0.581218 0.0743008 -0.506769 -0.858017 0.947134 +-0.162883 0.12211 0.58106 -0.967633 0.00458991 0.879703 -0.186182 0.447892 +0.49764 -0.700122 -0.0962428 -0.345036 0.12346 -0.431724 -0.186435 -0.522608 +-0.916139 0.0949659 -0.0479898 -0.178232 -0.838173 0.496476 -0.827512 -0.224191 +0.847845 -0.909976 -0.778024 0.428089 0.224087 0.0605156 0.825071 -0.676221 +-0.336896 -0.495372 -0.848476 0.650922 -0.65299 -0.0757912 0.131118 0.18207 +0.418753 0.124491 -0.185776 -0.428969 -0.305312 0.527287 -0.701612 0.600852 +0.568295 -0.835178 -0.839875 0.585269 0.659516 0.675947 -0.870419 -0.405351 +-0.0963861 0.0854124 0.0702742 0.0915023 -0.728222 0.508501 -0.429693 0.42044 +-0.76163 0.699498 -0.394918 0.609276 0.849858 -0.225132 -0.535513 -0.601581 +0.443189 0.845143 0.129504 0.899637 -0.495319 -0.521681 0.333595 0.313646 +0.197139 -0.5217 0.542349 0.00545544 -0.983832 -0.280804 -0.278377 0.772221 +0.375314 -0.336739 0.659778 0.613643 -0.98438 0.0728006 0.439172 0.412867 +0.0230588 -0.932134 0.73279 -0.349458 0.68099 -0.138023 -0.507766 -0.789176 +-0.503146 0.0273425 -0.555536 -0.519163 -0.058158 0.402099 -0.0639556 0.272505 +0.549357 0.364673 -0.956001 0.21719 -0.669472 -0.0098492 -0.258739 0.660656 +0.620616 0.407279 -0.113876 -0.52831 0.178259 0.162639 0.868408 -0.0754357 +-0.362482 0.159049 0.517145 -0.45285 -0.445442 0.289062 -0.253505 0.674218 +-0.357427 0.573968 0.310438 -0.313141 -0.405675 -0.611489 -0.0276639 -0.429119 +-0.668139 0.635528 0.593448 -0.183699 -0.156371 -0.437839 0.390206 -0.294725 +0.129772 -0.211686 -0.492115 -0.84819 0.387332 0.938125 0.218802 -0.830251 +0.474645 -0.988604 0.910576 -0.992808 -0.88129 0.312076 -0.106249 0.108644 +-0.345939 -0.385284 -0.300995 0.887221 -0.488168 -0.120372 0.086807 0.952477 +-0.531646 0.545158 0.997297 0.209956 0.127618 0.882957 0.522523 0.942717 +-0.652333 -0.376931 -0.353511 0.229265 -0.824008 0.188566 0.924286 0.360831 +0.863307 -0.518797 0.179152 -0.749976 0.411346 0.971809 -0.650945 0.569322 +0.407134 0.599725 0.559955 0.0969481 0.617985 0.634583 0.42873 -0.569662 +-0.800046 -0.00313865 -0.728843 0.36328 0.289795 -0.115441 0.792551 -0.518129 +0.777594 -0.612453 -0.240238 0.344502 -0.542242 0.221281 -0.888601 0.00326914 +0.360732 -0.682803 -0.107311 -0.928915 0.129344 -0.616168 -0.538422 -0.288398 +0.33447 -0.176508 -0.741403 0.372003 -0.879242 0.606991 -0.504806 0.724598 +0.311839 0.822131 -0.686503 0.253273 0.346116 -0.336598 0.363425 -0.774734 +-0.94456 0.141385 0.696468 -0.508014 0.474444 -0.206303 0.024932 0.730156 +-0.555203 -0.937368 -0.736873 -0.940357 0.41468 -0.317797 0.505206 -0.744362 +-0.047413 -0.168765 0.699887 -0.011384 -0.712655 -0.569805 0.509026 -0.527639 +0.0921165 -0.0872709 -0.63125 0.913504 -0.522371 -0.873718 0.774925 0.8211 +-0.835514 0.807243 -0.451478 0.562789 -0.648487 0.600922 -0.185889 0.443629 +0.138278 0.140251 -0.433804 0.911148 -0.986832 -0.643513 -0.73119 0.346114 +-0.14968 -0.870077 0.155331 0.432867 -0.245532 0.585842 -0.17101 -0.467997 +-0.174975 -0.191355 0.0111016 0.206618 -0.0788315 0.206557 0.700146 0.26407 +-0.599876 0.367874 0.554409 -0.678359 -0.434445 -0.0627907 0.866011 -0.631266 +0.40957 0.101284 -0.593199 -0.497476 0.734292 -0.048336 0.488333 -0.971627 +0.267436 0.860481 -0.110975 -0.547661 0.84888 -0.978113 0.177378 0.646281 +0.264242 -0.20734 -0.404393 -0.706742 -0.245965 -0.0312825 -0.177695 -0.590433 +-0.88398 -0.292129 0.652842 0.679528 0.714599 -0.31054 -0.955297 -0.180481 +0.108656 0.826234 0.574338 -0.666069 -0.0100122 0.0803361 0.162848 0.692929 +0.274484 0.683277 -0.938547 -0.490008 0.165304 0.269299 0.823205 -0.373988 +0.135267 0.963689 0.717366 -0.515998 -0.840342 -0.704418 0.248176 -0.920035 +0.658957 -0.859143 0.970355 -0.329009 -0.0468982 0.204005 -0.170679 0.540487 +-0.527316 0.520957 -0.358999 -0.925968 -0.945894 -0.997646 -0.991608 0.55757 +-0.817878 -0.503903 -0.487906 -0.0567896 0.193223 0.892943 -0.45561 0.700621 +-0.759023 0.0254688 -0.855266 0.874996 -0.645042 -0.551461 0.761377 -0.818556 +0.291934 0.905122 0.66748 -0.661038 -0.908079 -0.753333 -0.513899 -0.200027 +-0.962323 0.27371 0.895297 0.81511 -0.258531 -0.648807 0.979072 -0.884441 +-0.82089 -0.681966 -0.228665 0.51323 0.270095 0.87616 -0.638903 -0.951388 +-0.261658 0.43373 0.287688 -0.948697 0.549712 -0.438453 0.882343 0.107756 +-0.143884 0.941573 -0.733211 0.0388048 -0.227978 0.025673 -0.069112 -0.699991 +0.0481841 -0.986915 -0.0591436 -0.579039 -0.00163794 0.448317 -0.88231 -0.274336 +-0.0520785 -0.520813 0.587888 -0.0927612 0.564898 0.914219 -0.469238 -0.868434 +-0.689648 0.248501 -0.830505 -0.00817715 0.57733 -0.193782 0.640914 -0.770624 +0.604876 -0.600517 0.369522 -0.0248955 -0.803796 0.736926 0.235804 -0.114192 +-0.314167 0.029882 -0.0550515 0.902548 0.00129659 0.0887846 0.468247 -0.973941 +-0.125029 -0.822576 0.898125 0.149557 0.932975 0.299965 -0.825157 -0.881807 +-0.019497 0.520082 0.830331 0.613313 -0.712255 -0.293715 0.290778 0.910808 +-0.612102 0.442327 -0.826731 -0.586718 -0.745161 0.35706 0.496725 -0.337971 +-0.177036 0.143153 0.442151 0.315148 -0.0962316 -0.534935 0.251563 -0.573321 +-0.795171 0.356316 -0.110224 -0.772718 0.609462 -0.916863 0.156313 0.00807432 +0.51919 -0.688593 0.174565 0.330887 0.937521 0.119489 -0.029361 0.330447 +0.267624 0.0636108 -0.766347 0.0368321 -0.178892 0.754918 -0.584797 0.646224 +0.0543071 -0.244817 -0.133002 0.418942 0.156912 0.401098 -0.457923 -0.0086396 +0.31796 0.274109 -0.591155 -0.588633 0.53215 -0.803649 0.917343 -0.0162614 +-0.748638 0.358657 0.0837448 0.412766 0.628267 0.987513 -0.393735 -0.0351636 +0.340234 0.160149 -0.422025 0.929521 0.150872 -0.185484 0.644958 0.399877 +0.369833 0.622548 -0.746154 0.576763 -0.24731 -0.221174 0.990903 0.196575 +-0.374449 -0.308648 0.572227 -0.51462 -0.993824 0.528717 0.864524 -0.982967 +0.375885 0.907404 0.759051 -0.413531 -0.569807 -0.301615 -0.487152 0.0736406 +-0.0547878 -0.567737 0.868215 0.726428 0.939528 -0.613973 -0.151486 -0.143228 +0.774938 -0.315413 -0.592695 -0.55891 0.740951 -0.956491 -0.0730064 -0.0338408 +-0.337309 -0.0691164 0.338541 0.999386 -0.0193022 0.677588 0.734364 -0.856655 +-0.028869 -0.752533 -0.453042 0.274491 -0.637134 -0.398187 -0.272979 -0.430847 +-0.673989 -0.286274 -0.562854 0.12427 0.0936976 0.965523 -0.82514 -0.49618 +0.770816 0.680283 -0.897072 0.501658 -0.617746 -0.586719 -0.798991 -0.136963 +0.236992 -0.614045 0.173716 -0.0687633 -0.446663 -0.79013 -0.328581 0.215918 +0.493988 -0.932995 -0.30012 -0.678104 -0.818305 -0.251725 0.0404109 0.767502 +0.92366 0.596716 0.529179 0.69413 -0.228518 0.821449 0.382839 -0.0813092 +-0.381741 0.980686 -0.408197 0.108125 -0.707274 -0.134126 -0.610366 -0.228834 +0.78183 -0.91614 0.500856 0.750621 0.544451 0.905196 -0.32836 -0.978336 +0.421739 -0.272365 -0.537244 0.79915 0.673203 -0.529353 0.328073 -0.6235 +-0.312532 -0.708554 -0.077073 0.70549 -0.0736282 -0.933252 -0.768467 -0.795785 +-0.605335 0.722372 -0.143753 -0.83284 -0.787781 -0.474113 -0.484129 -0.957288 +-0.29693 0.879444 0.245028 -0.304153 0.861379 0.416688 -0.231506 0.595379 +-0.819934 0.0964443 -0.702166 0.279822 0.6926 0.64321 -0.00340714 -0.504682 +-0.623415 0.140376 0.517706 0.813064 -0.0192871 -0.225431 0.851822 -0.311111 +0.906409 -0.463039 -0.125906 -0.326015 0.461082 -0.345953 -0.711728 0.454559 +-0.463604 -0.506316 -0.95116 -0.773319 0.288355 0.75944 -0.606086 -0.826483 +0.25271 -0.9609 0.945414 0.329588 0.374626 -0.145722 0.355244 0.951757 +-0.0978388 0.0883752 0.819972 -0.346529 -0.701948 0.493288 -0.484703 -0.277412 +0.752528 0.81242 -0.91897 0.369705 -0.87697 -0.705945 -0.149767 0.801977 +0.220821 -0.327548 -0.875952 0.101745 0.179896 -0.161492 -0.536122 0.681313 +-0.49327 0.614592 0.670578 -0.884864 0.518873 -0.634202 0.632039 -0.132086 +0.606229 -0.487425 0.290243 0.890012 0.20712 0.648662 0.68404 -0.837515 +0.571455 0.935079 -0.366354 -0.815684 0.142722 -0.033437 -0.672339 0.38266 +0.302957 -0.546423 0.826827 -0.648203 -0.067578 -0.0800815 0.933293 -0.585709 +-0.880886 0.413273 0.500182 0.490237 -0.448977 0.505172 -0.712596 -0.649271 +-0.349604 0.104807 -0.559456 0.81238 0.0240454 -0.134857 -0.231669 0.714498 +0.121195 0.511282 -0.764937 0.3487 -0.230063 0.306971 0.721399 0.910368 +-0.164307 -0.964873 0.255116 0.18614 -0.0710032 0.847507 0.13844 -0.425006 +-0.0294202 -0.663732 0.391538 0.125527 0.865593 0.744081 0.983922 -0.196187 +-0.592124 0.761828 -0.993756 -0.0473521 -0.201354 0.819108 0.566071 -0.97679 +0.132186 -0.938286 -0.845578 0.509997 0.337286 -0.952651 0.205407 0.526075 +-0.805208 0.0574104 0.400985 0.838457 0.273258 -0.357216 -0.7291 -0.0218883 +-0.798725 0.293082 -0.83925 -0.405219 0.772495 -0.162703 0.776866 -0.0616743 +-0.718476 0.490894 0.922168 -0.234468 -0.864068 -0.726702 0.125183 -0.739661 +0.224734 -0.449467 0.860439 0.548208 -0.219997 0.413782 -0.0719829 -0.89865 +0.668905 0.140998 -0.237877 -0.245798 0.191338 0.624373 -0.514573 -0.610171 +-0.852263 -0.702425 -0.839297 -0.988417 0.616082 -0.317768 -0.490215 -0.964163 +-0.845807 0.818447 -0.0769468 0.149338 0.644181 0.775342 -0.986283 -0.842497 +0.461963 -0.751987 -0.186809 0.128579 0.567975 -0.00383664 -0.100185 -0.23146 +-0.676349 0.539082 -0.0532405 0.0730482 0.135735 -0.985184 -0.171993 -0.712114 +0.750988 -0.183431 -0.936489 0.809974 0.796974 -0.648548 0.928596 -0.0290144 +-0.764139 -0.574596 0.13775 0.163946 -0.0185631 -0.50541 -0.505162 0.337413 +0.169893 0.80255 0.0326267 -0.64676 0.591884 -0.931843 0.333031 -0.28657 +0.711617 0.566115 -0.873711 -0.447148 -0.837245 0.937222 -0.443066 0.916289 +0.857331 0.209462 -0.746399 -0.962531 -0.794518 -0.353599 0.333256 -0.399661 +0.124117 0.673644 -0.395684 -0.754722 -0.178277 0.200462 0.831671 0.229839 +-0.0436045 -0.130365 0.0559433 -0.238672 -0.741023 -0.314417 0.832164 0.49558 +0.629799 -0.019173 0.363436 -0.479682 -0.308177 -0.71409 0.175529 -0.0225631 +0.73007 -0.840835 0.0629785 0.685571 -0.902139 0.616732 0.0802994 0.758177 +-0.85408 -0.0471578 0.590884 -0.0601573 0.983901 0.99031 -0.123045 0.882654 +-0.0816098 0.619264 0.334403 0.588455 -0.603777 0.955431 -0.729233 0.541021 +-0.518286 0.739772 0.271152 -0.965414 0.0938647 0.138862 -0.490594 -0.741147 +0.560105 -0.41576 -0.805391 0.423555 -0.91956 0.677451 -0.203752 -0.711401 +0.0538332 0.745948 -0.903786 -0.804641 0.806175 0.803283 0.770014 0.614073 +0.363265 0.0423812 -0.612926 0.623838 0.544472 -0.480674 0.933129 -0.139225 +0.451303 0.349994 -0.559412 -0.153014 -0.489767 -0.777127 0.249253 -0.492274 +0.984653 0.891803 -0.532161 0.583266 0.500533 0.71927 0.372692 -0.356016 +0.242516 -0.323755 -0.0772472 0.774458 0.187239 -0.73274 0.00992747 0.136559 +-0.280286 0.720583 0.00711111 -0.800192 -0.18599 0.435274 0.867915 -0.938762 +-0.839105 0.432264 -0.0551969 -0.132463 0.677694 -0.152299 0.666318 -0.775609 +-0.696103 -0.207586 0.481987 0.718709 0.0788425 0.0415259 -0.719586 -0.264512 +0.685926 -0.93111 0.303224 0.964486 0.601764 0.334563 -0.00143469 -0.867682 +0.47876 0.917552 -0.187515 0.0117107 -0.0857956 -0.918814 -0.45574 0.323111 +-0.875695 0.550742 0.672556 -0.856563 -0.826559 -0.484963 0.657209 0.851605 +0.574605 0.575943 0.887362 -0.51758 -0.0200551 -0.347917 0.267176 -0.547546 +-0.918976 -0.591552 0.649176 -0.12985 -0.805604 0.173736 0.374882 -0.68857 +-0.21926 0.724924 0.195898 0.787601 -0.344664 -0.129131 0.322424 -0.535366 +0.525124 -0.603729 0.46486 0.203147 0.0071692 0.17777 0.195174 0.00580404 +-0.410431 0.968821 0.338612 0.419906 0.463063 -0.970917 0.57079 -0.498508 +-0.489366 0.477389 -0.578136 -0.823802 0.346119 0.264939 0.540363 0.530289 +-0.865168 -0.757669 -0.21785 -0.299619 -0.409155 0.507296 -0.774418 -0.658391 +0.313145 0.924497 0.310088 0.868992 0.68397 -0.340971 -0.993908 -0.521261 +-0.728798 -0.536925 -0.820468 0.34252 -0.285503 0.643448 -0.787477 0.456246 +-0.93774 0.415129 -0.76223 0.142001 0.839158 0.211896 0.571701 0.111681 +0.637235 0.74066 0.878211 -0.592206 -0.921065 0.0648644 0.937055 0.87811 +0.736866 0.564391 0.962762 0.191391 -0.216403 0.376728 -0.126834 -0.73718 +0.363034 -0.382508 -0.952172 0.0407933 -0.771018 0.0679968 0.193112 0.955135 +0.249875 -0.114678 -0.653656 0.630404 -0.655171 0.56021 -0.417841 0.404821 +0.516553 0.790057 -0.0447277 0.0893541 -0.61616 -0.120965 0.0667103 0.701047 +-0.138791 0.383357 -0.428867 -0.50136 0.753356 0.281848 0.329351 -0.251867 +-0.469273 0.932868 0.380054 -0.698884 0.865777 -0.541439 0.683625 -0.116086 +0.744073 0.0712213 -0.103272 0.290377 0.169962 0.390293 -0.421272 -0.132716 +-0.458002 0.255651 0.2176 -0.189844 -0.275522 0.269161 0.672978 -0.357882 +0.985702 -0.727281 0.177093 0.998714 -0.575635 -0.200188 -0.432139 -0.176382 +-0.782175 -0.283259 0.972121 0.682 0.0863075 0.673289 -0.364885 -0.969685 +-0.711504 0.909925 -0.665869 -0.730461 -0.0691128 -0.292889 -0.111506 -0.0508709 +-0.635981 -0.124585 0.275619 0.845636 0.189531 0.0483202 -0.726763 0.887665 +0.223439 -0.0510921 -0.636781 -0.596858 0.749651 -0.164003 0.382015 0.816413 +-0.74869 0.744953 0.121052 0.418714 -0.385632 -0.0246765 -0.269526 0.827996 +-0.568231 0.0798874 -0.342219 -0.845772 -0.790258 0.310717 0.202105 0.202828 +-0.323885 0.914455 -0.873757 0.270622 -0.418957 0.719904 0.597644 0.907295 +0.257158 -0.916077 0.603025 0.131385 0.0668849 -0.797673 0.589164 0.158948 +-0.0432224 0.433686 0.764993 0.19622 0.482428 0.324204 -0.360954 0.177113 +0.957828 0.780848 -0.39585 -0.302662 0.276713 -0.250807 0.497336 0.330121 +0.0917771 -0.239933 0.755576 -0.0689747 0.942656 0.851844 -0.768862 -0.284016 +-0.680781 -0.207689 0.687366 -0.27144 -0.839248 -0.687103 0.336797 -0.677944 +0.497782 -0.586443 -0.629759 -0.997223 -0.0645083 0.937243 0.623351 -0.70684 +-0.138731 -0.673768 0.649323 -0.592869 -0.342837 0.51589 -0.681159 0.892454 +-0.617808 0.797262 0.280719 0.105536 -0.539847 0.769287 0.071249 -0.74514 +-0.990808 -0.95357 -0.0156943 -0.756002 -0.560972 -0.126089 -0.887808 0.634765 +-0.338516 -0.208635 0.597976 0.0854396 0.012734 -0.785142 0.0792855 -0.880097 +-0.0764062 -0.745109 -0.992707 -0.36499 0.335626 0.855709 0.324398 0.586782 +0.19424 -0.233436 -0.629849 0.356724 0.239352 0.532618 0.414879 -0.333027 +-0.758608 0.274271 0.53069 0.404052 -0.866642 0.713566 -0.901068 0.134162 +0.779362 -0.148483 0.543867 0.352114 -0.873935 0.186967 0.455569 0.725477 +-0.724292 -0.614634 0.202163 0.707401 -0.131517 0.454659 -0.95477 0.599232 +-0.20645 -0.719682 0.910262 -0.498215 -0.105908 0.163284 -0.735948 -0.488258 +0.549961 -0.24555 -0.872877 0.247513 0.442833 -0.847675 -0.36074 0.64803 +-0.252879 -0.0200819 0.59895 -0.920402 0.354448 0.528694 0.548263 -0.92867 +-0.25331 0.499176 0.650107 -0.41606 -0.0754911 0.498998 0.38674 0.882336 +-0.339236 -0.922157 0.543701 0.385575 0.725525 -0.253489 0.021898 -0.0273315 +-0.765082 0.00328447 -0.523069 -0.608791 0.636323 0.811651 -0.532138 -0.329503 +0.829887 0.628225 -0.187006 0.225173 0.577276 -0.211055 -0.892871 -0.483464 +-0.854714 0.858207 -0.0122937 -0.658461 -0.400685 0.0794606 0.850258 -0.797366 +0.0412844 0.667351 0.0407451 0.470619 -0.603677 0.0745575 0.539431 -0.254839 +-0.627035 -0.391491 -0.93397 0.931188 -0.307649 -0.0688708 0.878511 0.195199 +0.39852 0.737091 0.968778 -0.913558 -0.152581 0.64097 0.516574 0.0750405 +-0.719413 -0.496848 -0.0895111 0.0880705 -0.868255 0.0107875 -0.35242 -0.313344 +0.968694 -0.355047 0.0447438 0.633007 -0.656497 0.730452 -0.729791 0.0827981 +0.148828 0.428359 0.255626 0.258297 0.732308 -0.766279 0.352883 0.633439 +-0.497561 0.313801 -0.320826 0.0157509 -0.212151 0.255642 -0.647177 -0.782837 +0.606544 0.340345 -0.711952 0.899099 -0.794337 0.895916 -0.52872 -0.57984 +-0.213266 0.276505 0.797944 -0.713508 0.50813 0.499895 0.326735 0.807792 +-0.709922 0.730355 -0.852953 -0.357618 -0.322249 0.847351 -0.0743483 0.862197 +-0.260705 0.591657 -0.338952 -0.736816 0.627804 0.760506 0.0370344 -0.935321 +-0.99483 0.591093 -0.214169 0.230625 -0.845151 0.67705 -0.587658 -0.956223 +-0.714011 -0.811036 0.328978 0.0862574 -0.102706 0.907204 0.51428 -0.950143 +0.825537 -0.47859 -0.832021 -0.371021 0.147028 0.829249 -0.460161 -0.579437 +0.78764 -0.443974 -0.875969 -0.146768 0.489363 -0.810822 -0.505045 0.0578246 +0.18689 -0.509896 0.599836 -0.957962 -0.222421 -0.594202 -0.795124 0.227071 +-0.582764 -0.481441 0.65536 0.670812 -0.853464 -0.405088 0.645927 -0.484566 +0.852138 0.965099 -0.541339 0.838131 -0.910702 0.331916 -0.985499 0.0882578 +-0.900796 0.546121 -0.917633 -0.205875 -0.691595 -0.906553 -0.736063 -0.825395 +0.200625 0.893539 -0.447126 0.992227 0.620585 -0.866923 -0.306836 -0.676149 +0.396613 -0.814164 0.689558 0.428812 0.904269 0.100758 0.428217 0.480116 +0.740828 -0.670401 0.470159 0.184116 0.269109 0.902811 0.0948181 0.105362 +-0.470444 0.704059 0.497044 -0.460645 0.28168 -0.401993 0.682203 -0.101029 +-0.315868 -0.794748 -0.33912 0.868196 0.321008 -0.72829 -0.950654 0.864021 +0.94353 -0.773946 -0.640697 -0.321068 -0.16959 0.120698 -0.34633 -0.576954 +-0.25532 0.396661 -0.324702 -0.20864 -0.196708 0.0595977 0.627613 -0.274521 +-0.1019 -0.0184179 0.813906 0.879106 -0.524246 -0.839458 -0.195182 0.762441 +-0.452872 -0.80778 -0.10844 -0.422918 0.117921 -0.157016 0.418023 -0.899701 +0.381207 0.770573 -0.160566 -0.803347 0.828906 -0.860895 -0.0287614 -0.120912 +-0.375971 -0.196977 0.99154 0.848828 0.709757 -0.941375 0.413689 0.129763 +-0.135432 0.058013 -0.481544 -0.956331 0.43369 -0.175228 0.352469 -0.45887 +-0.271131 -0.964791 0.493779 -0.688609 -0.0275484 0.857738 -0.461904 0.0176501 +-0.452812 0.21217 0.541749 -0.0785204 -0.0615199 -0.57467 0.930401 0.455529 +0.701331 -0.634906 -0.981788 -0.771684 -0.175897 -0.00150364 0.658368 -0.544372 +-0.852321 0.837309 -0.811165 0.927336 0.684412 0.60988 -0.432303 -0.408333 +-0.566062 0.0970141 0.508099 0.97831 0.407016 -0.775956 -0.68734 -0.34894 +0.975476 -0.685599 -0.423073 -0.739336 -0.569095 -0.9524 0.934161 0.243014 +0.347246 -0.226405 -0.692922 -0.851449 -0.0457676 0.0100628 -0.497241 0.344657 +-0.391049 -0.257704 0.815436 0.99096 -0.134007 0.806396 -0.772571 -0.740668 +-0.774868 0.767908 0.147976 0.620459 0.00462954 -0.830532 0.41766 -0.390938 +-0.669933 -0.0416615 0.0964868 0.869981 -0.260919 0.786493 -0.0750642 0.878016 +-0.983086 -0.721285 0.0356617 -0.466093 -0.0409097 -0.0963076 -0.217036 -0.406273 +0.904678 0.12219 -0.0578239 0.892585 0.571189 0.146081 0.00117287 -0.323423 +0.9889 -0.551748 -0.438811 -0.625866 0.938955 0.696542 0.894238 -0.69931 +-0.0320403 0.00533449 -0.0125391 0.753212 -0.0913314 0.867907 0.159279 -0.660979 +-0.65511 0.657473 0.201508 -0.435361 0.59615 -0.955151 -0.941454 -0.812843 +-0.768966 -0.64707 -0.449595 0.887056 -0.269047 -0.0377617 0.0294012 -0.737474 +-0.313229 0.21805 -0.643576 0.899066 -0.824893 0.5781 -0.861668 0.327946 +0.862799 -0.0611898 0.783653 0.549268 0.493201 0.609317 -0.96656 0.556559 +0.0133684 -0.527867 -0.703127 0.911624 0.799844 0.554397 0.495858 0.721182 +0.43908 -0.711218 -0.72413 -0.164134 0.957587 0.566734 -0.608718 0.721829 +-0.473956 0.239482 -0.291373 0.758672 0.99164 0.0452519 -0.835765 -0.406954 +0.335401 0.223394 -0.931716 0.52907 -0.810138 -0.0436743 -0.755524 -0.228909 +0.290202 0.439833 -0.709652 0.499486 -0.757529 0.487796 -0.750841 0.0809009 +-0.528943 0.567796 0.533682 0.991938 0.743309 -0.487622 -0.110081 0.0541543 +-0.548527 0.988634 -0.336844 0.56271 0.9076 0.286145 -0.505793 0.621384 +-0.222138 0.891092 -0.0905769 0.514477 -0.444262 0.257015 -0.790373 0.424378 +0.763666 -0.830123 -0.806007 0.386166 -0.13065 -0.874418 0.711468 0.977072 +-0.667453 0.774677 0.215033 -0.103045 -0.359772 -0.503882 -0.821811 -0.279899 +0.776916 -0.208781 0.846638 -0.839401 0.39327 0.574632 -0.789329 0.542864 +-0.228708 -0.734394 -0.224797 -0.509429 0.373326 -0.490687 -0.637614 -0.19727 +-0.238996 0.120953 -0.416065 0.242201 0.656018 0.727064 -0.980073 -0.857004 +-0.926125 -0.744431 0.0295663 -0.495074 0.878549 0.628895 -0.793609 -0.138656 +-0.687222 -0.23321 -0.664315 -0.715454 0.435467 0.0495123 0.488384 0.419708 +-0.470442 0.975884 0.0590026 -0.905845 -0.438891 -0.219989 -0.693973 0.177237 +-0.941501 -0.884588 0.69855 -0.874291 0.752482 -0.881729 0.708262 -0.93316 +-0.508954 0.0458766 -0.792059 -0.182322 0.984095 -0.582856 -0.185611 0.265929 +0.244162 -0.261541 -0.964351 -0.329159 -0.735968 0.51962 0.651772 0.467936 +-0.106126 -0.597183 -0.750275 0.482004 -0.280488 0.357224 -0.949281 -0.8064 +0.298672 0.657303 0.309271 -0.0669985 -0.217628 -0.200461 -0.894731 0.864302 +0.498891 -0.484504 0.237507 -0.516705 0.383922 -0.581693 -0.822732 -0.503028 +0.460454 -0.91012 0.923092 -0.684988 0.413275 0.658274 -0.0419288 -0.0735897 +-0.831778 0.507878 0.98194 -0.778413 0.35959 -0.329035 0.650998 -0.333126 +-0.756533 -0.845052 -0.314941 -0.76689 0.201538 0.722158 0.699828 0.414017 +-0.0437371 -0.12473 -0.860191 0.661535 -0.500183 0.706605 -0.769794 -0.976089 +0.466445 0.562851 -0.868875 -0.225531 -0.177627 0.927466 0.357603 -0.811161 +0.00656017 0.965209 -0.148819 -0.338462 -0.431935 -0.27027 0.274063 0.634862 +-0.347729 -0.0305922 0.0709034 -0.29585 -0.187039 -0.957732 -0.108768 -0.166879 +-0.674004 -0.844242 0.167912 0.562829 0.375394 -0.314415 -0.644618 -0.904611 +-0.0256775 0.43706 0.167703 -0.122045 0.702429 -0.717653 0.831582 0.293733 +-0.620773 0.406897 -0.0985464 -0.964972 0.775873 -0.220469 -0.787068 0.493256 +0.651429 -0.688814 -0.243897 -0.40135 0.00912411 -0.675226 0.139356 -0.863417 +0.931631 -0.193099 0.478894 0.256669 0.472224 -0.192646 -0.34663 0.883549 +0.882007 0.820255 0.0359719 0.569316 -0.138325 -0.784179 -0.684112 0.0195816 +-0.844701 -0.190503 -0.558551 -0.612184 0.918313 0.829079 0.830881 -0.854826 +-0.578573 0.39969 0.22331 -0.391696 0.208646 0.250025 -0.0790775 0.789384 +0.96743 0.354552 -0.997684 0.797462 0.754953 0.419684 0.251792 0.294725 +-0.302599 -0.104254 0.211014 -0.756029 -0.982209 -0.00602782 -0.806971 -0.277436 +-0.284363 0.133574 0.394061 0.224389 0.51931 0.517874 -0.223655 -0.707307 +-0.971639 0.516331 0.670884 -0.881815 0.686452 0.538432 -0.316087 -0.905712 +-0.651487 0.346597 0.234044 -0.991198 -0.379236 -0.802704 -0.198115 -0.917887 +0.899136 0.905529 0.347404 -0.793734 0.169635 -0.438555 0.598018 -0.218781 +-0.680534 0.0772033 -0.554705 0.829286 -0.760164 -0.51107 0.873015 -0.793705 +0.968168 0.948096 0.743962 0.408089 -0.736592 -0.357396 0.269436 0.0816785 +-0.558592 0.196167 -0.937529 -0.436037 0.854778 0.488349 0.850979 -0.955412 +0.0536734 -0.176532 -0.711782 -0.436239 -0.964954 -0.104726 0.451129 -0.326247 +-0.486387 0.102119 0.234256 -0.421192 0.679901 0.133501 -0.368829 -0.530326 +-0.0808063 -0.57331 0.284529 0.682669 0.736315 -0.853189 -0.689337 -0.514051 +0.515633 0.838775 -0.400992 0.477558 0.549116 0.858222 0.323168 -0.729244 +0.36016 0.0528929 -0.922323 -0.0994507 -0.62948 0.634095 -0.200443 -0.442672 +0.83715 0.192852 0.32838 -0.266968 0.0421914 -0.866337 -0.0508683 0.0878756 +-0.97411 0.506679 0.296452 0.578632 -0.620198 -0.611143 0.364563 0.0918438 +-0.938963 0.391992 0.431048 0.565726 -0.34927 0.359105 0.289028 -0.672549 +-0.707697 -0.939126 0.812606 0.497211 0.457878 0.0245149 -0.687045 -0.38471 +0.0381184 -0.378653 0.931786 -0.419089 -0.0757799 0.439691 -0.997946 -0.12534 +-0.686592 -0.432369 0.27564 0.569506 0.647944 0.590072 0.0103596 -0.800668 +0.896275 -0.992825 -0.0750274 -0.100862 -0.204293 -0.211665 -0.677872 0.559411 +-0.536664 0.0907233 -0.338986 0.992628 0.352235 -0.264914 0.547069 0.150407 +0.775416 -0.92695 -0.434443 0.252423 0.317467 -0.331904 -0.557603 0.565371 +0.602662 0.408342 -0.512091 0.0030728 0.139674 -0.108054 -0.57626 -0.921403 +-0.692144 -0.171722 -0.433231 0.755881 0.675493 -0.733586 -0.173277 0.638359 +0.872178 0.637127 -0.924613 0.0491817 -0.757412 -0.887708 0.139245 0.951704 +-0.138399 -0.605358 -0.986579 0.587042 -0.076026 -0.85188 0.148138 -0.496719 +-0.188072 0.651901 0.729753 -0.958166 0.7573 0.628388 -0.823715 -0.319704 +-0.319146 0.212294 -0.851686 -0.528566 0.0971639 -0.779318 0.00756588 0.805455 +0.410997 -0.456638 -0.444694 0.38088 -0.348983 0.326262 -0.80014 0.684784 +-0.0217769 -0.728861 -0.271593 0.0100282 -0.139043 -0.569559 0.490239 0.291991 +0.191743 -0.956743 -0.0334999 -0.362208 -0.232509 0.187365 -0.267504 -0.98481 +-0.314604 0.807347 -0.0374692 0.457703 0.347372 -0.350642 0.503465 0.149619 +0.291539 -0.508797 -0.865771 -0.868354 0.657237 0.425768 0.342987 0.266782 +-0.242675 -0.0154465 0.336309 0.0771463 -0.549974 0.786037 0.777519 -0.661664 +0.199167 0.488603 0.925073 -0.294805 0.427892 0.976814 0.354408 -0.730521 +0.00497342 -0.723675 -0.157526 -0.221206 0.997355 -0.555464 0.591398 0.933278 +-0.798625 -0.680423 0.0390295 0.611335 -0.831012 -0.984318 0.804702 -0.591644 +-0.740838 -0.488049 -0.126706 0.10938 -0.999446 0.447424 -0.0374583 -0.409728 +-0.136065 0.476407 0.34104 0.968761 -0.469901 0.046042 0.177945 0.473385 +0.84876 0.810754 -0.282497 -0.835941 -0.920369 -0.480077 -0.621141 -0.380246 +0.877481 0.0974775 0.323491 0.188718 -0.294873 0.522551 -0.783575 -0.141574 +0.982167 -0.989738 -0.755443 -0.76878 0.636702 0.221192 0.254922 -0.323343 +-0.548756 0.730088 -0.321251 0.819124 0.262294 -0.0876072 -0.0599837 0.787316 +-0.0506024 0.647385 0.836957 0.103114 0.133693 -0.42191 -0.588739 -0.832526 +0.185687 0.468747 0.317314 0.650843 0.576084 -0.918716 -0.75977 0.142646 +0.346399 -0.424681 0.472921 0.880896 -0.71694 -0.440967 -0.489734 0.906221 +-0.380201 -0.530744 -0.21443 0.339864 -0.725634 0.794353 -0.489858 -0.268242 +-0.671276 0.208873 -0.833296 0.70882 -0.627373 0.955747 -0.991261 -0.73811 +0.732094 0.437701 0.880486 -0.0873656 -0.613097 -0.218302 -0.794763 -0.770974 +-0.126436 -0.374331 -0.403368 -0.154457 -0.686789 0.619502 0.80511 0.267929 +-0.326694 0.681777 0.933906 -0.157628 0.805015 0.426671 0.931648 -0.786719 +0.636221 -0.648427 -0.536288 -0.586465 0.306729 0.177567 0.979236 0.862653 +-0.0380231 -0.102955 0.719217 -0.870774 -0.664426 -0.676106 -0.65329 -0.745433 +-0.239066 -0.0182126 -0.715331 -0.199561 -0.561092 0.132848 0.42576 0.25964 +-0.0566575 -0.170979 -0.32052 0.879041 0.321288 0.269939 0.128845 -0.114174 +-0.294883 -0.418883 -0.266252 0.697484 0.0452615 -0.45592 -0.426135 -0.532594 +0.798272 0.133508 -0.362077 0.879304 0.884913 0.00422937 -0.061545 -0.248595 +-0.984744 -0.245919 -0.653422 0.0505498 -0.0114522 0.784298 0.77642 -0.986146 +0.536832 0.965122 -0.261572 0.951519 -0.55871 0.249804 0.553907 0.210255 +0.936155 -0.623036 -0.254564 0.423069 0.305309 0.653012 -0.439647 0.0252214 +0.584988 -0.127235 0.974026 0.723807 0.170148 0.759473 0.144984 0.770854 +-0.356029 0.451229 0.575067 0.576722 0.258416 -0.814711 -0.165241 0.51859 +-0.00813152 0.752535 -0.677814 -0.864048 0.229436 0.284087 -0.167891 0.436235 +0.00788004 -0.102295 -0.940285 0.828367 0.511707 -0.490535 0.0463589 -0.213364 +-0.638034 0.211723 0.306107 -0.073834 0.19495 -0.447647 -0.310053 -0.0380121 +-0.515999 -0.501062 0.472227 -0.0865003 0.589588 0.551636 -0.7153 0.459155 +-0.036833 0.334123 -0.22177 -0.805148 -0.0341958 0.527742 0.532444 -0.688905 +-0.179861 0.0147959 0.675828 0.865579 0.975198 -0.319942 0.808325 -0.250338 +-0.643869 -0.34536 -0.93296 -0.186212 -0.219868 -0.801813 0.492328 -0.592899 +0.606531 -0.506318 -0.447056 0.589777 0.565654 0.146293 -0.745378 -0.0403156 +0.964409 0.940273 -0.689325 0.305467 0.335155 -0.140431 -0.500529 0.319785 +0.960005 0.964473 -0.439225 -0.519572 -0.549881 0.909096 -0.0727993 0.529965 +0.476247 0.710058 0.0500236 0.943053 0.648911 0.195795 0.267082 -0.0229792 +-0.691105 0.306259 0.928882 -0.980668 0.0603002 -0.906808 0.0815965 -0.541805 +0.472548 -0.17892 0.405938 -0.920382 -0.815499 0.173898 -0.0650522 0.963914 +-0.192959 -0.605192 0.535509 -0.538357 0.474006 -0.749047 0.450723 0.391387 +0.689136 0.572692 -0.624065 -0.763781 0.821114 -0.732775 -0.354682 0.392788 +-0.428872 0.370659 -0.689162 -0.383518 0.158126 -0.362763 -0.298015 0.397011 +0.761692 -0.52822 0.767065 -0.411002 -0.563805 -0.677213 -0.584136 0.977493 +0.0483114 0.867581 -0.369478 -0.80581 -0.754131 0.452109 -0.771292 -0.680477 +0.710463 0.280461 0.10484 0.137275 0.104904 0.697411 -0.321435 0.515745 +0.85039 -0.110204 -0.530962 -0.495014 0.234349 0.964586 -0.413498 0.0765348 +0.778326 0.915482 0.428292 0.983919 -0.101911 0.560052 0.596412 -0.940664 +-0.00820141 0.341059 0.0756779 -0.65676 -0.291455 0.102098 -0.557903 0.142224 +0.382496 -0.451592 0.0654742 0.509533 -0.439345 -0.881442 -0.877415 0.66565 +0.381352 0.695412 -0.758496 -0.646606 -0.861144 -0.1932 0.444279 -0.417724 +-0.21722 -0.0174348 0.0919835 0.0670942 -0.478538 0.0741871 0.364884 0.225702 +0.754242 -0.240633 -0.405087 -0.57317 -0.875154 -0.369001 -0.646432 -0.0200557 +-0.257041 0.823314 -0.296069 -0.5396 -0.811253 0.782266 0.795831 -0.942367 +0.284828 -0.271832 -0.0547863 -0.048904 0.124154 -0.80463 -0.445958 0.481062 +0.750048 -0.618551 -0.625226 -0.102515 0.25261 0.583137 -0.903711 -0.397957 +0.628092 0.465506 -0.519213 -0.498953 -0.765629 0.893854 -0.668678 0.538349 +0.549358 0.544621 -0.197553 0.427111 0.419775 0.402888 -0.714201 -0.96057 +-0.789757 -0.24699 -0.690532 -0.754698 -0.507021 0.782456 0.134618 0.138965 +-0.145837 -0.907271 -0.380181 -0.171594 -0.887093 0.151408 0.0399608 -0.967782 +-0.239428 -0.868745 0.243802 0.786926 0.398945 -0.851344 0.113376 0.420488 +-0.474001 -0.71242 0.371567 -0.243781 -0.562235 0.783651 -0.0692558 -0.240311 +-0.573088 0.227966 0.506406 -0.409247 0.0447546 -0.362153 -0.846627 -0.0100686 +0.218826 0.0538275 0.471391 0.664573 0.659483 -0.246342 0.205041 -0.376889 +-0.56742 -0.297886 0.983211 -0.0619457 0.187484 -0.392358 -0.445509 0.532601 +0.151181 -0.226808 -0.781219 -0.88863 0.514738 0.578417 -0.291603 -0.377932 +0.320535 -0.259863 0.585372 0.367507 0.199292 -0.199893 -0.165519 -0.916644 +-0.193659 -0.323366 0.144188 -0.447858 -0.932131 -0.789041 -0.819976 -0.512463 +-0.785872 0.654538 -0.117231 0.182413 0.611999 -0.468289 -0.858888 -0.579697 +0.890708 -0.850613 0.956204 0.803646 0.691517 0.340154 -0.578665 -0.486647 +0.775513 -0.429141 0.722566 0.908044 0.542147 0.753112 -0.232435 0.267161 +0.339155 0.0100213 -0.250798 0.470405 -0.167442 0.62331 0.96121 0.290845 +-0.525227 0.816981 -0.111607 0.113413 -0.737994 0.713929 -0.515309 -0.511189 +-0.0366259 0.105772 0.733191 -0.174168 -0.0891108 0.0959599 0.12254 -0.549979 +0.0936712 0.983153 -0.748721 -0.0702506 -0.539602 -0.967965 -0.953551 0.779744 +0.439294 0.591822 0.524557 0.83802 0.936916 0.15132 -0.145569 -0.70357 +0.0577606 -0.890423 0.645814 0.52633 -0.140477 0.629657 -0.0911898 -0.867438 +0.641718 0.872184 0.674205 0.925779 0.969978 -0.692878 -0.541211 0.932084 +0.127287 0.339392 -0.436132 0.446942 0.323184 -0.427856 0.0450793 -0.547228 +0.571856 0.456378 -0.212494 0.412581 0.60747 0.457908 -0.730449 -0.432328 +0.716379 -0.282181 -0.149145 0.423577 0.531272 -0.192534 0.522158 -0.0139067 +0.392458 -0.43031 0.440483 -0.420511 -0.0837572 0.349625 0.878125 0.612409 +-0.48793 0.610584 -0.878666 -0.294242 -0.488136 0.777345 -0.504048 0.782072 +-0.807702 -0.917127 -0.899227 0.823244 -0.415499 -0.734847 0.873002 0.342213 +0.205201 -0.138148 -0.752051 0.703676 0.189249 0.888606 0.0206145 -0.531954 +-0.300858 -0.938632 -0.328701 -0.544132 -0.749591 -0.9912 -0.345828 -0.455907 +-0.595073 -0.678245 0.866344 0.465099 -0.509859 -0.457841 0.466966 0.383943 +-0.060213 -0.710382 0.0313389 0.283458 0.187496 0.310622 -0.595371 0.601871 +0.562767 0.0377798 0.76085 -0.892 -0.0911599 0.265912 -0.618319 0.952178 +-0.840834 0.821741 -0.975384 -0.725079 0.603053 -0.639858 -0.633069 -0.808539 +-0.538151 -0.948088 -0.51558 0.274384 -0.0619097 -0.0826329 0.180303 -0.855399 +0.42251 0.144264 0.293215 0.190766 -0.715834 0.112131 0.430095 -0.493941 +0.0027466 0.256351 0.821961 0.0155914 0.978361 0.325366 -0.152935 0.713048 +0.155912 -0.702545 -0.559075 -0.621663 -0.499971 -0.790038 -0.723394 0.270965 +-0.452068 0.0941228 -0.507194 0.537582 -0.615952 -0.473029 -0.654752 0.16797 +0.975202 -0.278628 -0.37559 -0.459865 -0.494414 -0.522035 -0.700555 -0.713496 +-0.31939 -0.214 -0.179502 0.597574 -0.448232 0.899591 -0.698854 -0.890447 +-0.75038 0.689621 0.691946 -0.400412 0.98447 0.824083 -0.540418 0.273547 +0.751513 0.992589 0.44151 -0.176448 -0.258649 -0.570728 0.990564 0.825067 +-0.288471 -0.175124 0.728809 -0.856118 0.963137 -0.371374 -0.121704 -0.722621 +-0.560635 0.256014 0.783282 -0.0436413 -0.46044 0.528746 -0.729818 0.505957 +-0.457373 0.502338 -0.259939 -0.591323 -0.379924 0.0464475 -0.371124 0.390725 +0.736234 -0.0702791 0.764597 -0.0402704 0.144329 -0.954984 -0.329526 -0.484438 +-0.41639 -0.726601 -0.351723 -0.826754 0.725462 -0.0631057 0.275125 0.947095 +0.966303 -0.979173 -0.981785 0.536177 -0.937156 0.926273 -0.244539 -0.213392 +-0.430865 -0.765427 -0.626624 -0.903924 -0.899377 -0.169289 -0.681021 0.0820862 +-0.110559 0.0761014 -0.110221 0.520959 -0.201519 -0.922766 -0.592008 0.110752 +-0.781808 0.835112 -0.557839 0.615583 -0.934306 -0.409004 0.105904 -0.609772 +0.187986 -0.536589 0.525622 0.965509 0.994878 0.440683 -0.782722 -0.10285 +0.221736 0.238921 -0.507302 0.701848 -0.969081 -0.654852 -0.0478535 -0.668043 +0.513093 0.149467 -0.55545 0.51696 -0.989508 -0.887487 0.503948 -0.320804 +0.36926 -0.125893 0.751347 0.923279 -0.23921 -0.704303 -0.649616 0.9348 +-0.882768 -0.695332 -0.652699 0.769483 0.346243 0.429311 0.445164 -0.549846 +0.900309 0.00963954 0.121683 -0.144578 -0.731711 -0.693846 -0.0810501 0.877884 +-0.448573 0.669242 0.976741 -0.0972122 0.531226 0.497216 0.685044 0.606398 +-0.793498 -0.0199782 0.378773 -0.54014 0.33045 -0.0403891 -0.830269 0.126731 +0.957517 -0.0318155 -0.20254 0.284324 0.87273 -0.908624 -0.0335001 0.314938 +0.225949 -0.686549 0.151156 0.391466 -0.679554 -0.284395 0.994301 -0.90876 +-0.395586 0.774109 0.712459 0.352602 -0.635886 -0.420902 -0.850352 -0.318036 +0.48513 -0.834401 -0.434297 0.439986 0.729257 0.862742 0.0441958 -0.901788 +-0.638434 0.273707 -0.367312 0.0578474 0.877717 0.185739 -0.505204 -0.638063 +0.241206 -0.831992 -0.965704 -0.586159 0.169424 -0.585115 -0.0547658 0.50218 +0.753684 0.768991 -0.501 0.317682 -0.0585389 0.3068 0.772707 0.169542 +0.977906 -0.519445 0.226863 -0.733432 0.296144 -0.919477 0.657372 -0.853784 +0.00631976 0.662154 -0.86129 0.311983 -0.275507 -0.42741 0.360565 -0.904424 +-0.451835 0.518714 0.294816 0.70085 0.279951 0.201791 -0.78446 0.367603 +0.0279764 -0.698014 -0.872753 0.227458 -0.222103 -0.598081 -0.595641 0.59122 +-0.0892559 -0.754093 -0.131712 0.202004 -0.491409 0.718173 -0.168244 -0.754166 +0.0358621 0.146345 0.252568 -0.897618 -0.743443 0.590545 0.735712 0.129365 +0.535206 -0.549116 -0.322435 -0.120387 0.326257 0.857455 0.926268 0.846448 +-0.844808 -0.0579436 0.413073 -0.681191 -0.157148 -0.991291 0.982462 -0.372447 +-0.371312 0.474717 -0.659698 -0.250764 0.351652 -0.248735 0.376753 0.404496 +0.122821 -0.375758 -0.583352 0.390892 0.441815 0.611139 -0.750248 0.690489 +-0.619211 0.652251 -0.232602 -0.023077 0.510154 0.514604 0.707036 -0.088341 +0.365802 -0.288358 0.498475 0.622598 0.0884513 -0.502601 -0.0398956 -0.241912 +-0.449921 -0.0662473 -0.482305 -0.56115 0.844889 -0.968386 -0.236661 0.958662 +0.716409 0.464967 -0.63852 0.321524 -0.64652 0.754909 -0.585983 -0.554646 +-0.447716 -0.274164 -0.845825 -0.677412 0.299511 0.429741 -0.00783276 -0.625215 +-0.0666598 0.941849 -0.721826 0.175247 0.166758 0.946796 -0.441443 -0.545678 +-0.280745 -0.558744 0.0782417 0.822043 0.0373034 -0.767634 0.334889 -0.204475 +0.304197 -0.923993 0.924242 0.340491 0.826447 0.652876 0.636878 -0.00527523 +0.229423 0.0912072 -0.798967 -0.846361 -0.634938 -0.855099 -0.602047 -0.742035 +-0.899023 -0.613459 0.892855 0.0549564 -0.714598 0.818618 0.541846 0.0304994 +0.678134 -0.977333 -0.672914 0.1998 0.0666526 -0.0546959 -0.875247 0.177203 +0.386777 0.476735 0.0564501 0.607217 0.515895 0.299154 0.86858 -0.929842 +0.685959 0.19825 0.326267 0.93105 -0.2731 -0.223146 -0.388904 0.644691 +0.0917231 0.456785 0.300217 -0.418998 -0.756469 -0.18787 0.0257972 -0.510528 +0.774582 0.108108 0.217937 -0.678055 -0.857652 0.257642 -0.23537 -0.459661 +0.492765 0.329134 -0.750469 0.265036 -0.549458 0.800931 0.45043 0.654937 +0.545092 -0.405946 0.97829 -0.241211 -0.761309 0.0522561 0.489279 -0.181044 +0.595806 0.301203 0.00175219 0.0346104 -0.871983 -0.316493 -0.35869 0.750833 +-0.356902 -0.83915 0.463834 -0.799833 -0.765589 -0.00996312 0.618092 0.925763 +0.17807 0.475797 0.984541 0.0352228 0.910344 0.897265 0.64628 -0.943552 +-0.213075 0.931375 0.390993 0.759357 0.855887 -0.664187 -0.45863 -0.557136 +0.544188 -0.349897 -0.304036 -0.914146 -0.977609 -0.204913 -0.610554 -0.890574 +0.677751 -0.962213 -0.276768 -0.965943 -0.742092 0.744066 0.72906 0.803358 +-0.920121 0.851578 -0.508072 -0.749494 0.458986 0.72717 0.883557 0.211832 +-0.429776 -0.814513 -0.520569 0.331702 -0.0368137 0.40048 -0.0194574 0.286821 +-0.0945039 0.501176 -0.259392 -0.201334 -0.817095 0.110605 -0.38989 -0.556894 +-0.888289 0.419195 -0.941187 -0.703618 -0.74757 0.83368 0.397319 -0.648898 +0.140283 0.236167 0.576773 0.174286 -0.0770867 -0.970377 -0.507436 0.331816 +0.926226 -0.949527 -0.344011 -0.362622 0.476272 0.5664 -0.0610025 -0.926603 +-0.812599 0.379471 0.816848 -0.460453 0.0192854 -0.532238 0.64875 0.290428 +-0.704732 0.344577 -0.986519 0.380786 -0.963709 -0.298283 0.160948 0.725572 +-0.37787 -0.355922 0.520489 0.529633 0.463511 0.562887 0.558426 -0.21356 +0.711711 0.382962 -0.0321731 -0.168244 -0.891085 0.885591 -0.869937 0.338166 +0.594262 -0.141912 -0.688893 0.99811 0.739581 -0.379 -0.838501 0.737623 +-0.240775 -0.31584 -0.977945 0.220277 -0.700471 0.121494 0.786246 -0.609107 +-0.469262 0.615444 0.822334 -0.938985 0.00972204 0.201078 0.952333 0.219098 +0.161819 -0.58996 -0.709192 0.0850985 -0.350235 -0.0183066 -0.962063 0.552786 +-0.322579 0.535901 0.0831581 -0.0385795 -0.86019 0.506289 0.108535 0.627683 +0.653316 0.581975 -0.428346 -0.327397 -0.533502 0.191921 -0.835736 -0.671013 +0.23607 -0.764082 -0.427963 0.936417 0.812322 0.62325 -0.225402 0.473908 +0.360824 -0.31927 0.223129 -0.865486 -0.166944 0.156986 0.205085 0.00717569 +-0.560244 -0.836575 0.121307 0.962825 -0.239955 0.941542 -0.87634 0.756335 +0.379483 0.672066 0.920528 -0.425731 -0.8055 0.618419 -0.681839 0.566572 +-0.541926 -0.377947 0.260811 -0.651411 0.721151 0.796162 -0.541762 -0.576999 +-0.181808 0.639802 -0.975259 -0.663825 -0.118761 0.935995 0.850632 0.623139 +-0.0280611 -0.100807 -0.0115205 0.769508 0.975921 0.36622 -0.439825 0.182228 +-0.518802 0.677906 -0.922765 -0.650697 0.38278 -0.802091 -0.441567 -0.0682614 +-0.0606541 -0.82269 -0.757103 0.451062 0.68341 -0.21763 -0.189813 -0.719505 +0.328524 0.374754 -0.829575 -0.233745 0.603112 0.115447 -0.205495 0.495732 +-0.940007 -0.372071 -0.0567001 0.0815177 0.237495 -0.165586 0.102285 0.106442 +0.0587672 0.203151 -0.617669 0.246597 0.766063 -0.0441826 0.225723 -0.375256 +0.595638 -0.8969 -0.859182 0.924258 -0.850319 0.619827 -0.336612 0.87471 +0.253623 -0.703156 0.392904 0.754309 -0.413597 -0.550302 -0.466837 -0.0554813 +-0.171574 0.760164 -0.746511 -0.449427 0.861316 0.908235 0.939748 0.900948 +-0.866745 -0.989101 -0.105858 0.746067 0.880719 0.0791559 -0.148423 0.567304 +-0.340772 0.342627 -0.418369 0.0183479 0.663974 -0.210388 0.566031 -0.307053 +-0.796909 -0.861782 -0.41856 0.904874 0.257222 -0.849611 0.135816 -0.837315 +0.573607 0.976107 0.647015 0.169306 -0.0390818 -0.681147 -0.2512 0.186309 +-0.79281 -0.465743 -0.873903 0.415853 0.929572 0.928767 -0.917676 0.389418 +-0.189122 -0.81393 -0.482353 -0.945896 0.204562 -0.551815 -0.623091 -0.180186 +-0.601643 -0.736529 0.0744873 -0.971781 0.767349 -0.0454771 -0.0333532 0.370712 +0.953419 0.752331 0.167843 0.242817 0.792761 -0.455219 0.738609 0.422799 +0.683497 -0.156342 0.972546 -0.166608 0.434767 -0.492561 -0.635644 -0.262027 +0.0969455 -0.986278 -0.427855 0.499039 0.872608 -0.285313 0.861969 -0.00726473 +0.568782 -0.47187 -0.660013 -0.193908 -0.924188 -0.304503 0.194021 0.548087 +-0.395025 0.130907 0.458495 -0.657022 0.507126 0.566483 0.343297 -0.153337 +-0.164236 -0.93546 0.139193 0.758905 0.657126 0.0436321 0.708452 0.318435 +0.74236 -0.281163 0.462817 -0.485953 0.922327 0.551694 0.232885 -0.525846 +-0.455437 0.928112 0.328556 -0.227581 -0.097357 0.554065 0.944684 -0.795896 +-0.399629 -0.151192 -0.272881 0.384818 0.643247 0.503916 -0.919137 0.262122 +0.267216 -0.389761 -0.716136 0.124153 -0.183209 0.203462 0.558165 0.467073 +0.663323 0.184449 0.388718 0.0287672 -0.30326 0.426009 -0.0135387 -0.970393 +-0.846424 0.765307 0.654113 0.169023 0.428073 -0.972336 0.838171 -0.048438 +0.918883 -0.599371 -0.639186 0.707787 0.0389316 -0.500555 0.539954 0.572245 +0.546336 -0.851287 -0.571707 0.843092 -0.0696237 -0.77709 0.828392 -0.670245 +0.256247 0.170751 -0.74507 -0.916481 -0.198322 -0.0422062 0.201764 0.303284 +0.707147 0.538474 -0.46604 0.768481 0.450826 0.78801 -0.320954 0.0529201 +-0.457465 0.713165 0.261461 0.500716 -0.761406 0.0585499 0.266564 -0.194963 +0.0469887 0.372271 -0.814744 -0.493067 0.986417 -0.220578 -0.147642 -0.290298 +0.865739 -0.843325 -0.586935 0.558152 -0.607688 0.133677 -0.314835 -0.874994 +-0.28407 -0.0310837 -0.244577 -0.499961 0.0831651 0.611807 -0.803031 -0.324554 +-0.674089 -0.114628 -0.869776 -0.68684 -0.680338 -0.13748 0.968537 0.226829 +-0.106497 0.826638 0.175156 -0.690683 -0.20081 -0.663019 0.527855 -0.215508 +-0.569968 0.224708 -0.833994 -0.342232 0.560923 -0.520778 -0.75234 0.382951 +0.134161 -0.208342 -0.427726 -0.173193 -0.332348 0.299537 -0.234726 0.832925 +-0.402892 0.44751 0.670677 0.982216 -0.161869 -0.224028 -0.924491 0.755886 +0.124148 0.31867 0.241076 -0.869214 0.756065 -0.1096 0.973246 0.939339 +-0.804345 0.0404028 0.366816 -0.112333 0.48207 0.594207 0.0851084 -0.78472 +0.950464 0.0877894 0.237575 0.701777 -0.793751 -0.181089 0.0768191 0.438248 +-0.0821008 -0.0783405 0.501966 -0.543472 -0.125108 0.84544 0.580949 -0.127013 +-0.437705 -0.799327 -0.51293 -0.704008 0.559853 -0.676329 -0.188623 0.670392 +0.371978 0.763898 -0.481408 0.020204 -0.502421 0.773839 0.95058 0.179744 +-0.819678 0.051496 0.962227 -0.0892686 0.250977 0.594883 -0.246833 0.437308 +0.76584 -0.625579 -0.36399 0.667921 -0.30947 0.244496 -0.975459 -0.113815 +-0.52928 -0.580881 -0.430803 0.00414179 0.35355 -0.964707 0.839863 0.703258 +0.369541 0.682136 -0.0195639 0.372471 0.778789 0.0287528 0.940356 -0.240733 +-0.0878356 0.146325 -0.439308 -0.206156 -0.573423 -0.350959 -0.323891 -0.810204 +0.0112959 -0.249291 0.0271747 0.649374 0.942587 0.21371 -0.906037 -0.744209 +-0.010731 0.991442 0.885706 -0.109002 -0.189258 -0.389477 -0.452456 0.0842571 +0.878999 -0.117072 0.271111 0.329515 -0.921645 -0.948288 0.441989 0.526507 +0.780293 -0.439826 -0.826501 -0.532999 -0.733558 -0.876879 0.532704 0.378396 +-0.0936228 0.4803 -0.741781 0.00110437 -0.240193 -0.398467 -0.376829 0.945627 +0.856679 -0.857759 -0.661542 0.217709 0.00500074 0.621913 0.763219 -0.193151 +0.385666 -0.573166 -0.553545 -0.0550383 0.716349 -0.443558 0.531387 0.874882 +0.735574 -0.452782 0.862433 0.816191 -0.490542 0.127588 0.908425 0.535995 +-0.742564 -0.433178 0.915441 0.429457 0.741941 0.777874 -0.824876 -0.492205 +0.928933 0.595887 0.555872 -0.506634 -0.190822 0.405726 -0.280609 -0.896837 +0.163702 0.249171 0.255146 -0.533572 -0.378421 0.745034 0.750554 -0.783449 +-0.320676 -0.344093 0.0856638 0.164454 0.249587 0.959115 0.676873 0.531421 +0.694168 -0.948914 0.284541 0.549565 -0.392633 0.754276 -0.714306 -0.735648 +-0.190019 -0.52543 -0.05979 -0.120959 0.522829 -0.255097 -0.0403621 -0.7353 +-0.328844 -0.0182174 0.11135 -0.477302 0.791178 0.0611149 -0.0462498 -0.175987 +0.269369 -0.929168 -0.726463 0.54813 -0.937998 0.745038 -0.293154 -0.654064 +0.551288 -0.502471 0.486128 0.651546 0.369143 -0.349521 0.144616 -0.109417 +0.765235 0.877474 -0.845408 0.351489 -0.63105 -0.769469 -0.457141 -0.234768 +0.311318 0.300883 0.299567 -0.327209 -0.576271 -0.643474 -0.360074 0.981788 +0.981298 0.608698 0.0826749 -0.114287 0.743939 0.49706 -0.566342 -0.879508 +0.0800737 -0.893772 -0.912034 0.187454 -0.692667 0.522734 0.0485591 -0.645851 +-0.324429 -0.700755 0.267917 0.0402615 -0.699743 0.992684 -0.579391 -0.431563 +0.996279 -0.924962 -0.939793 0.920964 0.689077 -0.395117 -0.017921 -0.216873 +0.0636556 0.895646 -0.317375 -0.733031 -0.701854 -0.490877 -0.198355 0.129399 +-0.687348 0.719909 0.641067 0.916343 0.316081 0.816246 -0.221022 -0.14204 +0.0855796 0.67265 -0.562649 -0.147528 -0.39122 -0.611359 -0.43629 0.80869 +-0.922597 0.76178 -0.862715 -0.372038 -0.671139 0.477378 -0.502672 -0.808751 +0.253303 0.457268 0.831574 -0.773127 -0.483561 -0.24741 0.957302 -0.929012 +0.197971 -0.53769 -0.109346 0.948488 -0.686124 0.0339448 -0.118122 -0.519184 +-0.844502 0.692427 -0.688552 -0.532634 -0.759507 -0.260971 -0.796699 -0.404532 +0.0865159 -0.780443 -0.893265 0.286129 -0.963133 0.404368 -0.106939 -0.754019 +0.856322 -0.56223 0.490658 -0.128994 -0.070527 0.611366 0.172883 -0.0892844 +0.104858 0.1888 -0.648231 0.405203 0.182899 -0.215067 -0.680568 0.415602 +-0.197065 0.405019 -0.680563 0.489857 0.7812 -0.000321634 0.251133 -0.163168 +-0.0828464 -0.845147 0.138025 0.0712586 0.561523 0.418024 -0.0945405 -0.772312 +0.0421709 -0.603521 -0.893089 -0.310384 0.338777 -0.285234 -0.235222 -0.849502 +0.425383 0.769619 -0.354696 -0.719294 -0.107823 0.440272 0.985391 -0.252171 +0.146365 0.0889267 -0.401725 -0.183417 0.981461 0.486241 0.681473 -0.258455 +0.952971 -0.679307 -0.725955 0.166804 -0.461048 0.483991 0.805641 0.564412 +-0.391718 -0.885734 -0.338494 -0.758048 0.62324 -0.904924 -0.511931 -0.313077 +-0.427775 -0.462631 0.571049 0.309519 -0.633172 -0.524454 0.774625 -0.141569 +-0.27132 0.746114 -0.330058 -0.485489 -0.506717 0.00733686 0.793065 0.48465 +-0.149967 0.0249565 -0.377554 0.635322 0.926616 0.316265 0.0518561 -0.601899 +0.221472 0.121239 0.574847 0.521096 0.559327 0.942286 -0.724584 -0.855785 +-0.119323 0.0382661 -0.628763 0.436192 0.94491 -0.501119 -0.679026 -0.745567 +-0.768534 -0.877493 0.168443 -0.116303 -0.271442 -0.232377 -0.272922 -0.438878 +-0.555787 0.0546222 0.667032 -0.599897 -0.398251 -0.194041 0.7088 -0.579869 +0.945534 -0.464931 -0.976692 -0.794661 0.51902 0.652344 -0.560435 0.902057 +-0.254705 -0.567206 -0.817415 0.840607 0.740243 0.598916 0.391895 -0.394496 +-0.100858 -0.392356 -0.0955732 0.744395 -0.098339 0.356142 0.185845 0.181413 +0.0203355 -0.788697 -0.600303 0.697847 -0.700404 0.902197 -0.74871 0.302692 +-0.885 -0.338142 -0.266243 0.17608 -0.576465 -0.502188 -0.596151 -0.878618 +0.44483 0.832059 -0.173066 0.456706 0.642328 0.724746 -0.1925 -0.893404 +0.443883 -0.456011 -0.770323 -0.997234 -0.952226 -0.892065 0.20022 0.953866 +-0.711862 -0.993364 0.907505 -0.579022 -0.925414 0.500686 -0.275635 0.565904 +0.423131 -0.0968551 -0.478523 0.0238519 0.316365 0.854634 0.904365 -0.131348 +-0.548285 0.578612 -0.275744 0.407103 0.316615 -0.882478 -0.473928 0.285793 +0.63222 0.455825 0.386028 0.207057 -0.66896 -0.628345 -0.0808006 -0.807238 +0.711269 -0.784493 0.4599 0.0397161 0.527732 -0.732751 -0.601908 0.218853 +0.283443 -0.692185 0.566496 -0.68177 0.928101 0.79579 -0.493063 0.144516 +-0.149631 -0.846303 0.652118 0.841565 -0.495354 0.36171 -0.320881 -0.766979 +0.505737 0.522733 0.76624 0.202624 0.89359 0.0311913 0.872182 0.0149582 +0.574351 -0.633518 -0.825413 0.154435 -0.141215 0.140963 -0.487547 0.417802 +-0.666241 0.565788 0.756247 0.868203 -0.116211 0.75985 0.585547 0.830323 +-0.626712 -0.45364 -0.195443 0.448415 0.104229 -0.664431 0.669827 0.192545 +-0.0324374 -0.140675 -0.500651 -0.305651 -0.645708 0.988018 0.553351 -0.549405 +-0.122066 0.225076 -0.818105 -0.996791 -0.547578 -0.881317 0.752254 -0.694483 +0.476205 0.584487 -0.490537 0.5268 -0.31787 -0.482516 0.533979 0.00115596 +0.899264 0.0182342 -0.868973 0.867343 0.650678 -0.994781 -0.102045 -0.0269937 +-0.0750363 -0.453265 0.702007 -0.00121795 -0.972748 0.834929 -0.633961 -0.71164 +0.985972 -0.589411 -0.809588 0.55176 -0.351489 -0.544948 0.954608 -0.346856 +-0.699835 -0.484832 -0.834155 -0.368864 0.608062 0.0825367 0.760286 -0.0527428 +-0.799013 -0.765432 0.974613 -0.684831 0.60186 0.999952 0.79829 -0.225519 +0.690754 -0.501941 0.324644 0.316548 -0.078213 0.936501 0.980851 -0.816268 +0.0774005 -0.555405 -0.154659 0.348248 -0.467778 -0.324692 -0.629435 -0.656457 +-0.200646 0.82515 0.14657 -0.806379 -0.759421 0.0829597 -0.374377 -0.00215195 +-0.77514 0.415386 0.983687 -0.0142301 0.980576 0.600523 0.146038 -0.0822019 +-0.538879 0.116211 -0.818458 -0.740589 -0.488668 0.314551 0.649157 -0.443189 +-0.285181 0.200458 0.332028 0.3074 -0.523374 -0.551051 0.220338 -0.34828 +-0.923755 -0.1266 -0.601394 -0.0253203 -0.828103 0.490856 0.266744 -0.408953 +0.0542938 -0.215857 0.386484 -0.78468 0.0258582 0.795984 -0.183508 -0.571211 +0.552468 -0.356369 -0.196538 0.734811 -0.118357 -0.128739 0.840145 -0.93725 +-0.154347 0.873422 -0.194153 0.872663 -0.356444 0.363519 -0.273476 -0.696162 +0.583401 -0.53281 0.731566 -0.444695 -0.472582 -0.663451 0.91995 0.650943 +-0.404663 0.840018 -0.120633 -0.471824 -0.752747 -0.475972 0.646036 -0.547903 +-0.233779 0.0825393 0.942899 0.158798 0.623666 -0.631099 0.00203193 -0.235393 +-0.585184 0.883392 0.132245 -0.438164 -0.161598 -0.0969587 0.000618285 0.79207 +-0.932912 0.537109 0.367195 0.524085 -0.414115 0.494211 0.9536 -0.80306 +0.386435 -0.988085 -0.936921 0.714699 0.625112 -0.866318 -0.942141 0.336779 +0.764189 0.0251004 -0.848174 0.665548 0.147669 0.254436 -0.264234 -0.896245 +0.325485 0.754366 0.0447624 -0.585063 0.719863 -0.0696208 -0.622733 -0.387195 +-0.169277 -0.113223 0.421046 -0.0531837 -0.405825 -0.230418 -0.983003 -0.711747 +0.336613 0.164089 -0.745039 -0.807313 -0.736208 -0.10126 0.824618 -0.920568 +0.909828 -0.622685 0.332989 0.00830162 0.38507 -0.397409 0.648477 0.529428 +0.0101819 0.62799 0.33955 -0.789978 -0.969035 -0.0619933 -0.626062 -0.888456 +-0.920535 0.031577 0.209105 0.355139 -0.0742127 0.841699 0.0614381 -0.0995839 +0.985094 0.130549 0.317291 -0.966487 0.510734 0.961951 0.183114 -0.805229 +-0.652149 0.7594 -0.487267 -0.787221 0.851975 -0.873241 0.439256 0.499765 +0.541152 0.0770298 0.605506 -0.582985 -0.949134 0.0863542 0.518711 -0.496535 +0.399843 0.912941 0.268388 -0.865712 0.107298 -0.571469 0.534591 -0.976143 +-0.338867 -0.93816 0.979595 -0.325682 -0.945629 0.546945 0.828186 -0.897783 +0.241588 0.801397 0.266351 0.916368 -0.861289 0.520631 -0.350318 0.409777 +0.610429 -0.083441 0.83093 -0.670309 -0.164084 0.604357 0.0783674 -0.42118 +0.36577 -0.508371 0.416979 -0.139311 0.883315 0.362692 0.183672 0.69271 +-0.28885 0.696964 0.211831 0.489029 0.226392 0.953463 0.10962 -0.73453 +0.986815 0.600921 0.0449613 0.110881 0.578612 -0.604654 -0.810103 0.771854 +0.902732 -0.495443 -0.734904 -0.520157 0.62146 0.460401 -0.969393 -0.0602119 +-0.539116 -0.706347 -0.74457 0.971574 0.2893 0.484338 0.77608 0.282123 +0.547443 0.29363 -0.94728 -0.163755 0.388137 0.689701 0.165507 -0.452441 +0.209506 0.769668 -0.468422 0.0512967 -0.0155995 0.369681 -0.0416683 0.385239 +0.536443 -0.640138 0.0763071 0.705092 0.989851 0.828893 -0.60472 -0.28465 +-0.494723 0.921693 0.0495236 0.173518 0.741574 -0.959035 0.990642 0.353335 +0.651272 0.178445 -0.61107 0.500453 0.341522 -0.837734 -0.990673 -0.36227 +0.763702 -0.274026 0.195442 0.452955 0.676666 -0.0271457 0.441324 -0.609185 +0.423997 -0.701139 -0.410888 0.0778383 0.878795 0.15746 -0.994007 0.113326 +-0.334275 -0.442163 0.12964 -0.481628 -0.968939 -0.225538 -0.279952 -0.348539 +0.73095 0.933779 -0.804383 0.526414 0.479168 0.988399 -0.941287 0.394242 +-0.0340086 0.705096 -0.554178 -0.844025 0.165571 0.223001 0.283481 0.437085 +0.0834355 -0.563229 0.578883 0.0711771 0.619632 -0.0333454 0.186991 0.701669 +-0.321065 0.418618 -0.401531 0.405464 0.119774 -0.488364 -0.541451 0.298125 +-0.930117 -0.714498 0.96836 -0.544415 0.0404438 0.107046 -0.494357 -0.294113 +0.7649 0.891545 -0.952906 -0.0227346 0.406766 0.859156 0.300293 0.187083 +-0.391863 -0.0590129 -0.849673 0.888853 -0.925853 0.894784 0.774522 0.667416 +-0.788453 0.313785 0.0735782 -0.9446 0.0881703 -0.877804 0.115091 0.690123 +-0.298138 0.199317 -0.897659 -0.76291 -0.672211 0.439996 0.169136 -0.9143 +-0.0962146 -0.160769 0.261731 0.550875 0.97825 -0.837458 -0.890215 0.16264 +-0.655996 0.400844 -0.753987 0.144687 -0.640398 0.67667 -0.345467 0.181287 +-0.992709 0.0882317 -0.240251 0.369297 0.557474 0.425089 0.39905 0.542164 +-0.550886 -0.303266 0.414447 0.951891 -0.900641 -0.637662 -0.739914 0.599469 +0.129487 0.241247 0.196362 0.403789 0.21839 0.877744 -0.282078 0.132361 +-0.0054312 0.918197 0.188897 -0.902218 0.103391 0.139808 0.393467 -0.199445 +-0.923921 0.373623 -0.853978 0.340359 -0.57419 0.536 -0.926296 0.632232 +0.707454 0.338353 0.127895 -0.196444 -0.0319703 -0.305862 0.704341 0.618947 +0.919735 -0.750654 0.176572 -0.802977 -0.0707223 -0.320515 -0.110584 0.473198 +-0.645532 0.562394 -0.0586577 -0.265339 0.144387 0.85353 0.308196 -0.946138 +0.527819 0.914607 0.524667 0.94169 -0.185767 0.570622 0.605907 -0.423411 +-0.804722 -0.684955 -0.456404 0.365336 -0.040309 0.428063 -0.133152 0.178633 +-0.992572 0.386273 0.33409 0.865669 0.158053 -0.554986 -0.729363 0.969722 +-0.409773 -0.373148 -0.471849 0.602634 0.164685 0.783269 0.112875 0.581757 +-0.977761 -0.0302597 0.904442 0.950423 0.0675092 -0.897506 0.236307 -0.216288 +-0.277661 0.868341 0.540508 0.24097 0.443353 0.33287 -0.989548 -0.194153 +0.865029 -0.71969 0.251391 -0.806809 0.887908 0.434057 0.505243 0.37496 +0.315971 -0.163629 0.432174 0.383298 0.746031 -0.815984 -0.18584 -0.408601 +-0.555325 0.129052 -0.0885912 -0.190683 0.782567 -0.225434 -0.429651 0.483977 +0.710882 0.298927 0.713428 -0.976695 -0.275012 -0.970883 -0.47833 0.938195 +-0.409982 0.791796 -0.476071 0.11307 -0.584786 0.826539 0.869438 -0.499075 +-0.504735 -0.789846 0.837696 -0.718721 0.89905 -0.211661 0.700321 -0.263882 +-0.424087 -0.195272 0.104407 0.561988 0.315623 0.581878 0.720829 -0.253763 +0.625601 -0.577368 -0.371724 -0.80142 -0.715806 0.0741293 0.778703 0.244978 +-0.868092 -0.163168 -0.707758 -0.822344 0.501819 0.74799 0.0668078 0.812413 +0.729534 0.702338 -0.134075 0.449142 0.785552 -0.701911 0.179284 0.695407 +-0.570295 -0.551425 0.291994 0.821019 0.71508 -0.664581 -0.980156 0.888598 +0.0281019 0.283294 -0.741183 0.300605 0.703548 0.109526 -0.98041 -0.28747 +-0.97019 -0.365164 -0.0386638 -0.835926 0.114051 -0.429095 -0.374637 -0.710279 +0.321577 -0.245106 -0.560334 -0.106617 0.1186 -0.49623 -0.992678 0.110437 +0.882378 -0.636962 -0.713416 0.0834107 -0.925594 -0.352722 0.656507 -0.736961 +0.584289 -0.175682 0.247739 0.617296 -0.354663 0.629163 -0.902824 0.953023 +0.0768384 -0.717327 -0.083367 -0.618186 -0.818971 0.947659 0.653877 -0.354289 +-0.887622 0.432379 0.0866054 -0.280477 0.0676555 -0.842187 -0.0842995 -0.430422 +0.173128 -0.520141 -0.087196 -0.662103 0.961155 -0.930147 0.416494 0.584796 +0.303029 0.493141 0.374201 0.472777 -0.446954 -0.793685 -0.87863 0.619676 +0.0513011 -0.987674 0.196521 -0.998323 -0.408941 -0.466114 0.361032 0.238023 +0.319364 -0.744774 0.826224 -0.727136 0.134271 0.169153 -0.350912 0.910232 +0.62319 -0.639507 0.455339 0.958609 -0.133199 0.738603 -0.785951 0.35698 +-0.426425 0.0968416 -0.356231 -0.864742 0.319383 -0.493453 0.67159 0.332411 +0.602833 0.613828 -0.63591 0.514773 -0.645953 0.319409 -0.970493 0.541499 +0.0162915 -0.59027 -0.403851 0.45786 -0.385471 0.854787 -0.728109 0.0384164 +-0.508749 0.25453 0.0775355 0.997228 -0.957396 -0.198614 -0.945542 -0.695928 +-0.160811 0.659122 -0.937518 -0.974774 0.310763 -0.971708 -0.0595999 -0.0528106 +0.461159 -0.365737 -0.702777 -0.978425 0.0990154 -0.327472 -0.962762 0.350789 +0.795224 0.381523 -0.938263 0.479238 -0.632396 -0.0509792 0.0153148 -0.265597 +-0.0848166 0.379515 -0.291117 0.694128 0.748272 -0.493666 -0.815691 -0.6926 +-0.165031 -0.0891072 0.158474 0.10956 -0.19114 -0.77 -0.780464 0.434505 +-0.139721 -0.544348 -0.750748 -0.293889 0.757612 0.818742 -0.228336 -0.544192 +-0.858 0.358474 0.543263 0.455568 -0.598232 -0.917574 0.380048 0.780082 +-0.515837 -0.855985 0.82244 -0.477901 0.646268 -0.570199 -0.430683 0.717503 +0.717701 0.699 0.462546 0.752024 -0.981553 -0.201349 -0.761635 0.330898 +-0.479242 -0.289216 -0.0796746 -0.135831 -0.888534 -0.978519 -0.193643 0.963184 +-0.116307 0.539999 0.936034 0.531333 -0.407026 -0.506016 -0.307663 -0.91202 +-0.881043 0.537134 -0.0208986 0.790174 0.160322 0.86974 0.0347648 0.556077 +0.149292 0.89986 -0.451053 0.640971 -0.179916 -0.34306 -0.837172 0.193749 +-0.126208 -0.0227467 -0.0916505 0.872552 -0.451527 -0.225225 -0.536412 -0.484111 +0.85332 -0.370758 -0.219432 0.806461 -0.771842 0.299293 0.826374 -0.377133 +0.0974112 -0.294711 0.0150352 -0.0237784 0.723876 -0.0288437 0.787362 0.340541 +-0.358887 -0.925932 -0.0877449 0.149521 -0.941664 -0.822475 0.48412 0.420145 +0.891805 -0.435028 0.640123 -0.100903 -0.913005 -0.802434 0.221251 -0.926006 +-0.59743 -0.998152 -0.159239 -0.121085 0.0891031 -0.19614 0.71132 0.509863 +-0.766773 -0.965367 -0.66386 -0.934419 0.898039 0.44383 -0.595711 0.275202 +-0.733219 0.715742 0.559052 0.840434 -0.600565 -0.908047 0.498603 0.211169 +0.583786 -0.813278 -0.822209 -0.632192 0.929584 0.111599 -0.0819159 -0.483515 +0.0372694 0.0395407 0.61394 0.302753 -0.844206 0.851324 -0.426415 0.692142 +0.864924 -0.373763 -0.444911 -0.939984 -0.523362 -0.0627783 -0.398258 0.191987 +0.00846989 -0.0237791 -0.064829 0.429948 -0.635047 -0.657757 -0.93342 -0.525435 +0.0152487 0.89563 -0.908316 0.151498 0.534151 -0.23771 -0.247125 0.676604 +0.718967 -0.391562 -0.509936 0.0940794 -0.591401 -0.0237542 0.0989418 0.667505 +0.642065 -0.808021 -0.668695 0.825106 -0.89777 0.436322 0.0146317 -0.84359 +0.947917 0.247783 0.797738 0.904664 -0.304274 -0.860577 0.583235 -0.15636 +0.802703 -0.648104 -0.74956 -0.903054 0.298878 0.673866 0.32473 -0.0477731 +0.360735 0.617388 0.0941327 -0.469065 0.784298 0.627796 0.0719741 -0.468131 +0.831949 0.890218 0.302191 -0.024926 0.554097 -0.391123 0.543936 0.710791 +-0.13657 -0.858949 -0.565543 -0.202202 0.904933 -0.522611 -0.700196 -0.0706605 +0.68578 0.785019 -0.373929 0.320873 -0.22783 -0.983629 0.20534 0.0679298 +0.054554 -0.285939 0.0105797 0.00241309 -0.961614 0.760555 -0.712269 0.18321 +0.112195 -0.928513 -0.917439 0.447439 0.694376 0.0474544 -0.957016 0.415338 +0.565741 -0.179495 0.15515 -0.130722 0.309835 0.391258 0.300341 0.782176 diff --git a/.svn/pristine/ee/eeb29ad01a50666cd3e72d8d77efae6d702f6166.svn-base b/.svn/pristine/ee/eeb29ad01a50666cd3e72d8d77efae6d702f6166.svn-base new file mode 100644 index 0000000..4c266ae --- /dev/null +++ b/.svn/pristine/ee/eeb29ad01a50666cd3e72d8d77efae6d702f6166.svn-base @@ -0,0 +1,152 @@ + +//#define WANT_STREAM + +#include "include.h" + +#include "newmat.h" + +#include "tmt.h" + +#ifdef use_namespace +using namespace NEWMAT; +#endif + + +/**************************** test program ******************************/ + +// make sure matrices work as members of a class + +class TestClass +{ + Matrix A; + Matrix B; +public: + TestClass(); + ReturnMatrix Sum(); +}; + +TestClass::TestClass() : A(2,3) +{ + B.ReSize(2,3); + A << 1 << 4 + << 4 << 1 + << 2 << 9; + B << 8 << 5 + << 5 << 8 + << 7 << 0; +} + +ReturnMatrix TestClass::Sum() { return Matrix(A + B).ForReturn(); } + + + +void trymatb() +{ +// cout << "\nEleventh test of Matrix package\n"; + Tracer et("Eleventh test of Matrix package"); + Tracer::PrintTrace(); + int i; int j; + RowVector RV; RV.ReSize(10); + { + Tracer et1("Stage 1"); + for (i=1;i<=10;i++) RV(i)=i*i-3; + Matrix X(1,1); X(1,1) = .25; + Print(RowVector(X.i() * RV - RV / .25)); +// Print(RowVector(X.i() * Matrix(RV) - RV / .25)); // != zortech, AT&T + Print(RowVector(X.i() * RV - RV / .25)); + } + LowerTriangularMatrix L(5); UpperTriangularMatrix U(5); + for (i=1; i<=5; i++) for (j=1; j<=i; j++) + { L(i,j) = i*i + j -2.0; U(j,i) = i*i*j+3; } + DiagonalMatrix D(5); + for (i=1; i<=5; i++) D(i,i) = i*i + i + 2; + Matrix M1 = -L; Matrix M2 = L-U; Matrix M3 = U*3; Matrix M4 = U-L; + Matrix M5 = M1 - D; M1 = D * (-3) - M3; + { + Tracer et1("Stage 2"); + Print(Matrix((M2-M4*2)+M5*3-M1)); + M1 = L.t(); Print(Matrix(M1.t()-L)); + M1 = U.t(); Print(Matrix(M1.t()-U)); + } + { + Tracer et1("Stage 3"); + SymmetricMatrix S(5); + for (i=1; i<=5; i++) for (j=1; j<=i; j++) S(i,j) = i*j+i-j+5; + M2 = S.i() * M4; M1 = S; M3=M1*M2-M4; Clean(M3,0.00000001); Print(M3); + SymmetricMatrix T(5); + for (i=1; i<=5; i++) for (j=1; j<=i; j++) T(i,j) = i*i*j*j+i-j+5-i*j; + M1 = S.i() * T; M1 = S * M1; M1 = M1-T; Clean(M1,0.00000001); Print(M1); + ColumnVector CV(5); for (i=1; i<=5; i++) CV(i) = i*i*i+10; + M1 = CV * RV; + } + { + Tracer et1("Stage 4"); + M4.ReSize(5,10); + for (i=1; i<=5; i++) for (j=1; j<=10; j++) M4(i,j) = (i*i*i+10)*(j*j-3); + Print(Matrix(M1-M4)); + M1 = L.t(); M2 = U.t(); M3 = L+U; Print(Matrix(M1-M3.t()+M2)); + } +// UpperTriangularMatrix U2((const UpperTriangularMatrix&)U); // != zortech + UpperTriangularMatrix U2((UpperTriangularMatrix&)U); + { + Tracer et1("Stage 5"); + Print(Matrix(U2-U)); + M2.ReSize(10,10); + for (i=1; i<=10; i++) for (j=1; j<=10; j++) M2(i,j) = (i*i*i+10)*(j*j-3); + D << M2; L << M2; U << M2; // check copy into + Print( Matrix( (D+M2)-(L+U) ) ); + } + { + Tracer et1("Stage 6"); + M1.ReSize(6,10); + for (i=1; i<=6; i++) for (j=1; j<=10; j++) M1(i,j) = 100*i + j; + M2 = M1.SubMatrix(3,5,4,7); M3.ReSize(3,4); + for (i=3; i<=5; i++) for (j=4; j<=7; j++) M3(i-2,j-3) = 100*i + j; + Print(Matrix(M2-M3)); + } + int a1,a2,a3,a4; + { + Tracer et1("Stage 7"); + int a1,a2,a3,a4; + a1=4; a2=9; a3=4; a4=7; + U.ReSize(10); + for (i=1; i<=10; i++) for (j=i; j<=10; j++) U(i,j) = 100*i + j; + M2 = U.SubMatrix(a1,a2,a3,a4); + M3.ReSize(a2-a1+1,a4-a3+1); M3=0.0; + for (i=a1; i<=a2; i++) for (j=(i>a3) ? i : a3; j<=a4; j++) + M3(i-a1+1,j-a3+1) = 100*i + j; + Print(Matrix(M2-M3)); + } + { + Tracer et1("Stage 8"); + a1=3; a2=9; a3=2; a4=7; + U.ReSize(10); + for (i=1; i<=10; i++) for (j=i; j<=10; j++) U(i,j) = 100*i + j; + M2 = U.SubMatrix(a1,a2,a3,a4); + M3.ReSize(a2-a1+1,a4-a3+1); M3=0.0; + for (i=a1; i<=a2; i++) for (j=(i>a3) ? i : a3; j<=a4; j++) + M3(i-a1+1,j-a3+1) = 100*i + j; + Print(Matrix(M2-M3)); + } + { + Tracer et1("Stage 9"); + a1=4; a2=6; a3=2; a4=5; + U.ReSize(10); + for (i=1; i<=10; i++) for (j=i; j<=10; j++) U(i,j) = 100*i + j; + M2 = U.SubMatrix(a1,a2,a3,a4); + M3.ReSize(a2-a1+1,a4-a3+1); M3=0.0; + for (i=a1; i<=a2; i++) for (j=(i>a3) ? i : a3; j<=a4; j++) + M3(i-a1+1,j-a3+1) = 100*i + j; + Print(Matrix(M2-M3)); + } + + { + Tracer et1("Stage 10"); + TestClass TC; + Matrix M = TC.Sum() - 9; + Print(M); + } + + +// cout << "\nEnd of eleventh test\n"; +} diff --git a/.svn/pristine/ee/eec5c24dec45440fb6660c4a921ce78cec84482e.svn-base b/.svn/pristine/ee/eec5c24dec45440fb6660c4a921ce78cec84482e.svn-base new file mode 100644 index 0000000..9f33f85 --- /dev/null +++ b/.svn/pristine/ee/eec5c24dec45440fb6660c4a921ce78cec84482e.svn-base @@ -0,0 +1,463 @@ +/** + * @file + * @brief Implementation of reading 3D scans + * @author Andreas Nuechter. Jacobs University Bremen gGmbH + * @author Dorit Borrmann. Smart Systems Group, Jacobs University Bremen gGmbH, Germany. + */ + +#include "veloslam/velodefs.h" +#include "slam6d/scan_io_velodyne.h" +#include "slam6d/globals.icc" +#include +using std::ifstream; +#include +using std::cerr; +using std::endl; + +#include +using std::swap; + +#include +#include +#include +#include +#include + +using namespace std; + +#ifdef _MSC_VER +#include +#endif + +#define BLOCK_OFFSET 42+16 + +#define BLOCK_SIZE 1206 +#define CIRCLELENGTH 360 +#define VELODYNE_NUM_LASERS 64 +#define CircleBufferSize CIRCLELENGTH*32*12 +#define CIRCLEROUND CIRCLELENGTH*6 + + +#define RADIANS_PER_LSB 0.0174532925 +#define METERS_PER_LSB 0.002 +#define METERS_PER_CM 0.01 + +#define TWOPI_INV (0.5/M_PI) +#define TWOPI (2*M_PI) + +typedef struct raw_packet + { + unsigned char dat[1200]; + unsigned short revolution; + unsigned char status[4]; + } raw_packet_t; + + +typedef unsigned char BYTE; + +long CountOfLidar = 0; + +// 我们借到的雷达的标定数据 +double velodyne_calibrated[VELODYNE_NUM_LASERS][5] = +{ + { -7.1581192, -4.5, 102, 21.560343, -2.5999999}, + { -6.8178215, -3.4000001, 125, 21.516994, 2.5999999}, + { 0.31782165, 3, 130, 20.617426, -2.5999999}, + { 0.65811908, 4.5999999, 128, 20.574717, 2.5999999}, + { -6.4776502, -0.5, 112, 21.473722, -2.5999999}, + { -6.1375928, 1, 125, 21.430525, 2.5999999}, + { -8.520812, -1.5, 106, 21.734608, -2.5999999}, + { -8.1798887, 0.40000001, 127, 21.690901, 2.5999999}, + { -5.797637, 4, 111, 21.387396, -2.5999999}, + { -5.4577708, 5.5, 126, 21.34433, 2.5999999}, + { -7.8391404, 3.0999999, 113, 21.647291, -2.5999999}, + { -7.4985547, 4.5, 123, 21.603773, 2.5999999}, + { -3.0802133, -4.5, 105, 21.044245, -2.5999999}, + { -2.7406337, -3.2, 133, 21.001518, 2.5999999}, + { -5.1179824, -5.5, 110, 21.301321, -2.5999999}, + { -4.7782598, -4, 129, 21.258366, 2.5999999}, + { -2.4010365, -0.2, 111, 20.958813, -2.5999999}, + { -2.0614092, 1, 130, 20.916126, 2.5999999}, + { -4.4385905, -1.2, 115, 21.215462, -2.5999999}, + { -4.0989642, 0, 133, 21.172602, 2.5999999}, + { -1.7217404, 3.8, 113, 20.873451, -2.5999999}, + { -1.3820176, 5, 130, 20.830786, 2.5999999}, + { -3.7593663, 3, 117, 21.129782, -2.5999999}, + { -3.4197867, 4.5, 129, 21.086998, 2.5999999}, + { 0.998555, -4.5, 107, 20.531982, -2.5999999}, + { 1.339141, -3.2, 131, 20.489222, 2.5999999}, + { -1.0422293, -5.4000001, 128, 20.788124, -2.5999999}, + { -0.70236301, -4, 134, 20.745461, 2.5999999}, + { 1.679889, -0.5, 124, 20.446428, -2.5999999}, + { 2.0208123, 1, 136, 20.403601, 2.5999999}, + { -0.36240739, -1.5, 131, 20.702793, -2.5999999}, + { -0.022349782, 0.2, 136, 20.660116, 2.5999999}, + { -22.737886, -7.8000002, 101, 16.019152, -2.5999999}, + { -22.226072, -5, 88, 15.954137, 2.5999999}, + { -11.513928, 4.5, 121, 14.680806, -2.5999999}, + { -11.002114, 7.4000001, 88, 14.623099, 2.5999999}, + { -21.714685, -1, 94, 15.889649, -2.5999999}, + { -21.203688, 2, 88, 15.82566, 2.5999999}, + { -24.790272, -2.5, 114, 16.284933, -2.5999999}, + { -24.276321, 0.5, 89, 16.217583, 2.5999999}, + { -20.693031, 6, 98, 15.762167, -2.5999999}, + { -20.182682, 9, 92, 15.699132, 2.5999999}, + { -23.762968, 4.5, 107, 16.15085, -2.5999999}, + { -23.250172, 7.5, 80, 16.084715, 2.5999999}, + { -16.615318, -7.5, 121, 15.26925, -2.5999999}, + { -16.105938, -5, 92, 15.209245, 2.5999999}, + { -19.672594, -9, 119, 15.63654, -2.5999999}, + { -19.162729, -6, 89, 15.574372, 2.5999999}, + { -15.596496, -1, 109, 15.14954, -2.5999999}, + { -15.086954, 2, 88, 15.090119, 2.5999999}, + { -18.653046, -2, 117, 15.51261, -2.5999999}, + { -18.143503, 0.69999999, 88, 15.451235, 2.5999999}, + { -14.577271, 5.5, 112, 15.030966, -2.5999999}, + { -14.067405, 8.3999996, 87, 14.972065, 2.5999999}, + { -17.634062, 5, 119, 15.390228, -6.1999998}, + { -17.124681, 7.5, 97, 15.329572, 2.5999999}, + { -10.489829, -7.5, 119, 14.565539, -2.5999999}, + { -9.9770317, -4.6999998, 95, 14.508112, 2.5999999}, + { -13.557318, -8.5, 126, 14.913401, -2.5999999}, + { -13.046968, -6, 92, 14.854958, 2.5999999}, + { -9.4636793, -1, 112, 14.450804, -2.5999999}, + { -8.949728, 1.5, 93, 14.3936, 2.5999999}, + { -12.536313, -2, 121, 14.796721, -2.5999999}, + { -12.025314, 0.40000001, 96, 14.738676, 2.5999999}, +}; + +double rotCorrection[VELODYNE_NUM_LASERS]; +double vertCorrection[VELODYNE_NUM_LASERS]; +double distCorrection[VELODYNE_NUM_LASERS]; +double vertoffsetCorrection[VELODYNE_NUM_LASERS]; +double horizdffsetCorrection[VELODYNE_NUM_LASERS]; + +int physical2logical[VELODYNE_NUM_LASERS]; +int logical2physical[VELODYNE_NUM_LASERS]; + +double absf ( double a ) +{ + if ( a < 0 ) + return -a; + return a; +} + +int velodyne_physical_to_logical ( int phys ) +{ + return physical2logical[phys]; +} + +int velodyne_logical_to_physical ( int logical ) +{ + return logical2physical[logical]; +} + +int laser_phi_compare(const void *_a, const void *_b) +{ + int a = *((int*) _a); + int b = *((int*) _b); + + if (velodyne_calibrated[a][0] < velodyne_calibrated[b][0]) + return -1; + + return 1; +} + +/** valid only for v > 0 **/ +static inline double mod2pi_positive(double vin) +{ + double q = vin * TWOPI_INV + 0.5; + int qi = (int) q; + + return vin - qi*TWOPI; +} + +/** Map v to [-PI, PI] **/ +static inline double mod2pi(double vin) +{ + if (vin < 0) + return -mod2pi_positive(-vin); + else + return mod2pi_positive(vin); +} + +/** Return vin such that it is within PI degrees of ref **/ +static inline double mod2pi_ref(double ref, double vin) +{ + return ref + mod2pi(vin - ref); +} + +int velodyne_calib_precompute() +{ + int i; + int logical; + for ( i = 0; i < VELODYNE_NUM_LASERS; i++ ) + logical2physical[i] = i; + + qsort ( logical2physical, VELODYNE_NUM_LASERS, sizeof ( int ), laser_phi_compare ); + + for ( logical = 0; logical < VELODYNE_NUM_LASERS; logical++ ) + { + physical2logical[logical2physical[logical]] = logical; + } + + //vertCorrection rotCorrection distCorrection vertOffsetCorrection horizOffsetCorrection + for ( i = 0; i < VELODYNE_NUM_LASERS; i++ ) + { + vertCorrection[i] = velodyne_calibrated[i][0] * RADIANS_PER_LSB; + rotCorrection[i] = velodyne_calibrated[i][1] * RADIANS_PER_LSB; + distCorrection[i] = velodyne_calibrated[i][2] * METERS_PER_CM; + vertoffsetCorrection[i] = velodyne_calibrated[i][3] * METERS_PER_CM; + horizdffsetCorrection[i] = velodyne_calibrated[i][4] * METERS_PER_CM; + } + + return 0; +} + +int read_one_packet ( FILE *fp, vector &ptss, int maxDist, int minDist ) +{ + int maxDist2 = sqr(maxDist); + int minDist2 = sqr(minDist); + + int c, i, j; + unsigned char Head; + BYTE buf[BLOCK_SIZE]; + Point point; + BYTE *p; + unsigned short *ps; + unsigned short *pshort; + unsigned short *pt; + + double ctheta; + double theta, phi; + + double sin_ctheta, cos_ctheta; + double sin_theta, cos_theta; + double sin_phi, cos_phi; + + unsigned short physicalNO; + unsigned short logicalNO; + + float rotational; + float distance; + float corredistance; + int intensity; + int physical; + int size; + + unsigned short rot; + double x, y, z; + + int circle_col = 0; + int circle_row = 0; + + for ( c = 0 ; c < CIRCLELENGTH; c++ ) + { +#ifdef _MSC_VER + fseek(fp , BLOCK_OFFSET, SEEK_CUR); +#else + fseeko(fp , BLOCK_OFFSET, SEEK_CUR); +#endif + size=fread ( buf, 1, BLOCK_SIZE, fp ); + + if(size 2.2 ) + { + BYTE *inty = ( BYTE * ) ( p + 4 + j * 3 + 2 ); + intensity = *inty; + + ctheta = 2 * M_PI - rotational * RADIANS_PER_LSB; + if ( ctheta == 2*M_PI ) + ctheta = 0; + + sin_ctheta = sin ( ctheta ); + cos_ctheta = cos ( ctheta ); + + //vertCorrection rotCorrection distCorrection vertOffsetCorrection horizOffsetCorrection + // corredistance = ( distance + distCorrection[physicalNO] ) * ( 1.0 + vertoffsetCorrection[physicalNO] ); + corredistance = ( distance + distCorrection[physicalNO] ) ; + theta = mod2pi_ref ( M_PI, ctheta + rotCorrection[physicalNO] ); /////////????//////// + phi = vertCorrection[physicalNO]; ////////?????///////////////// + + sin_theta = sin ( theta ); + cos_theta = cos ( theta ); + sin_phi = sin ( phi ); + cos_phi = cos ( phi ); + + /////////////////////?a??×?±ê///////////////////// + x = corredistance * cos_theta * cos_phi; + y = corredistance * sin_theta * cos_phi; + z = corredistance * sin_phi +vertoffsetCorrection[physicalNO]*cos_phi; + + x -= horizdffsetCorrection[physicalNO] * cos_ctheta; + y -= horizdffsetCorrection[physicalNO] * sin_ctheta; + + point.rad = sqrt( x*x + y*y ); + point.tan_theta = y/x; + + // point.type|=POINT_TYPE_INVALID; + + point.type = POINT_TYPE_GROUND; + point.x=x*100; + point.y=z*100; + point.z=-y*100; + { + ptss.push_back(point); + } + } + } + p = p + 100; + ps = ( unsigned short * ) p; + } + + + } + + return 0; +} + + +/** + * Reads specified scans from given directory in + * the file format Riegl Laser Measurement GmbH + * uses. It will be compiled as shared lib. + * + * Scan poses will NOT be initialized after a call + * to this function. Initial pose estimation works + * only with the -p switch, i.e., trusting the initial + * estimations by Riegl. + * + * The scans have to be exported from the Riegl software + * as follows: + * 1. Export point cloud data to ASCII + * Use Scanners own Coordinate System (SOCS) + * X Y Z Range Theta Phi Reflectance + * 2. Export acqusition location (after you have registered + * with the Riegl software) + * Export SOP + * Write out as .dat file + * + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param dir The directory from which to read + * @param maxDist Reads only Points up to this Distance + * @param minDist Reads only Points from this Distance + * @param euler Initital pose estimates (will not be applied to the points + * @param ptss Vector containing the read points + */ +int ScanIO_velodyne::readScans(int start, int end, string &dir, int maxDist, int minDist, + double *euler, vector &ptss) +{ + static int fileCounter = start; + string scanFileName; + FILE *scan_in; + + if (end > -1 && fileCounter > end) return -1; // 'nuf read + + scanFileName = dir + "scan" + ".bin"; +#ifdef _MSC_VER + scan_in = fopen(scanFileName.c_str(),"rb"); +#else + scan_in = fopen64(scanFileName.c_str(),"rb"); +#endif + + if(scan_in == NULL) + { + cerr< +using std::cout; +using std::cerr; +using std::endl; +#include + +#ifdef _MSC_VER +#include +#endif + +#include +#include +using namespace boost::filesystem; + +#include "slam6d/globals.icc" + + + +#define DATA_PATH_PREFIX "ScanPos" +#define DATA_PATH_SUFFIX " - Scan001.txt" +#define POSE_PATH_PREFIX "scan" +#define POSE_PATH_SUFFIX ".pose" + + + +std::list ScanIO_ks::readDirectory(const char* dir_path, unsigned int start, unsigned int end) +{ + std::list identifiers; + for(unsigned int i = start; i <= end; ++i) { + // identifier is /d/d/d (001-999) + std::string identifier(to_string(i,3)); + // scan consists of data (.txt) and pose (.pose) files + path data(dir_path); + data /= path(std::string(DATA_PATH_PREFIX) + identifier + DATA_PATH_SUFFIX); + path pose(dir_path); + pose /= path(std::string(POSE_PATH_PREFIX) + identifier + POSE_PATH_SUFFIX); + // stop if part of a scan is missing or end by absence is detected + if(!exists(data) || !exists(pose)) + break; + identifiers.push_back(identifier); + } + return identifiers; +} + + + +void ScanIO_ks::readPose(const char* dir_path, const char* identifier, double* pose) +{ + unsigned int i; + + path pose_path(dir_path); + pose_path /= path(std::string(POSE_PATH_PREFIX) + identifier + POSE_PATH_SUFFIX); + if(!exists(pose_path)) + throw std::runtime_error(std::string("There is no pose file for [") + identifier + "] in [" + dir_path + "]"); + + // open pose file + ifstream pose_file(pose_path); + + // if the file is open, read contents + if(pose_file.good()) { + // read 6 plain doubles + for(i = 0; i < 6; ++i) pose_file >> pose[i]; + pose_file.close(); + + // CAD map -> pose correction [ks x/y/z -> slam -z/y/x] + double tmp; + tmp = pose[0]; + pose[0] = - pose[2]; + pose[2] = tmp; + + // convert coordinate to cm + for(i = 0; i < 3; ++i) pose[i] *= 100.0; + + // convert angles from deg to rad + for(i = 3; i < 6; ++i) pose[i] = rad(pose[i]); + } else { + throw std::runtime_error(std::string("Pose file could not be opened for [") + identifier + "] in [" + dir_path + "]"); + } +} + +bool ScanIO_ks::supports(IODataType type) +{ + return !!(type & (DATA_XYZ)); +} + +void ScanIO_ks::readScan(const char* dir_path, const char* identifier, PointFilter& filter, std::vector* xyz, std::vector* rgb, std::vector* reflectance, std::vector* amplitude, std::vector* type, std::vector* deviation) +{ + unsigned int i; + + // error handling + path data_path(dir_path); + data_path /= path(std::string(DATA_PATH_PREFIX) + identifier + DATA_PATH_SUFFIX); + if(!exists(data_path)) + throw std::runtime_error(std::string("There is no scan file for [") + identifier + "] in [" + dir_path + "]"); + + if(xyz != 0) { + // open data file + ifstream data_file(data_path); + data_file.exceptions(ifstream::eofbit|ifstream::failbit|ifstream::badbit); + + // overread the first line + char dummy[255]; + data_file.getline(dummy, 255); + + // read points + double point[3]; + double tmp; + while(data_file.good()) { + try { + for(i = 0; i < 3; ++i) data_file >> point[i]; + } catch(std::ios_base::failure& e) { + break; + } + + // the enemy's x/y/z is mapped to slam's x/z/y, shuffle time! + tmp = point[1]; + point[1] = point[2]; + point[2] = tmp; + + // TODO: offset is application specific, handle with care + // correct constant offset (in slam coordinates) + point[0] -= 70000.0; // x + point[2] -= 20000.0; // z + + // convert coordinate to cm + for(i = 0; i < 3; ++i) point[i] *= 100.0; + + // apply filter and insert point + if(filter.check(point)) { + for(i = 0; i < 3; ++i) xyz->push_back(point[i]); + } + } + data_file.close(); + } +} + + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_ks; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/.svn/pristine/ef/ef8ab857424b61c353b889a2f38e9ac48cb190b7.svn-base b/.svn/pristine/ef/ef8ab857424b61c353b889a2f38e9ac48cb190b7.svn-base new file mode 100644 index 0000000..ef51e06 --- /dev/null +++ b/.svn/pristine/ef/ef8ab857424b61c353b889a2f38e9ac48cb190b7.svn-base @@ -0,0 +1,97 @@ +/** + * @file cvpmd.h + * @brief pmdaccess wrappers, PMD -> OpenCV marshalling and a bit of math. + * @author Stanislav `Cfr` Serebryakov + */ +#pragma once + +#include "pmdsdk2.h" +#include + +/** + * @brief Structure for PMD IO, see initPMD. + */ +typedef struct PMD { + PMDHandle hnd; /**< handle for pmd IO */ + float *data; /**< image quering buffer */ + PMDDataDescription dd; /**< contains image size, integration time, etc */ +} PMD; + +/** + * PMD Constructor + * @param *plugin IO plugin name i.e. o3d.L32.pcp + * @param *ip PMD camera IP address + * @return initialized PMD struct + */ +PMD *initPMD(const char* plugin, const char *ip); + +/** + * Destructor + */ +void releasePMD(PMD **pmd); + + +/** + * Returns pointer to the data (used to save float data for offline mode) + */ +float *pmdDataPtr(PMD *p); + + +/** + * Converts PMD data (stored in PMD struct) to provided IplImage (new will be created if NULL passed) + * @param *p initialized PMD struct with grabbed data (i.e. pmdGetIntensities(p->hnd, p->data, p->dd.std.numColumns * p->dd.std.numRows * sizeof(float))) + * @param *img destination IplImage (default: 0, new one will be created) + * @return generated IplImage + */ +IplImage *toIplImage(const PMD *p, IplImage *img); + +/** + * Converts PMD distance point to cartesian coords with intrinsic matrix + * @param uv PMD depth point coords (row, col) //FIXME: order! + * @param dist PMD distance for given point + * @param intrinsicMatrix PMD camera' intrinsic matrix (from calibration) + * @return 3D Point in OpenCV format (CvPoint3D32f) + */ + +CvPoint3D32f *cvProjectArrayToCartesian( const CvMat *intrinsicMatrix + , const CvPoint2D32f *pts, const int ptsCnt + , CvPoint3D32f *unitVs); + + +CvPoint3D32f **pmdProjectArrayToCartesian(const PMD *p, const CvMat *intrinsicMatrix, CvPoint3D32f **pts); + +/** + * Get pmd camera' image size + * @param *p initialized PMD struct + * @return image size in OpenCV format (CvSize) + */ +CvSize pmdGetSize(const PMD *p); + +/** + * Query PMD inrensities image. Dont forget to call pmdUpdate before quering! + * @param *p initialized PMD struct + * @param *img destination IplImage (defaul: 0, new one will be created if null passed) + * @return image in OpenCV format (IplImage) + */ +IplImage *pmdQueryImage(PMD *p, IplImage *img); +IplImage *pmdQueryImageAsync(PMD *p, IplImage *img); + +/** + * Store PMD distances (inside p->data) + */ +void pmdRetriveDistances(PMD *p); +void pmdRetriveDistancesAsync(PMD *p); + + +/** + * Query PMD distance image in OpenCV format + */ +IplImage *pmdQueryDistances(PMD *p, IplImage *img); +IplImage *pmdQueryDistancesAsync(PMD *p, IplImage *img); + +/** + * Query PMD aplitudes image in OpenCV format (might be used as belief measure) + */ +IplImage *pmdQueryAmplitudes(PMD *p, IplImage *img); +IplImage *pmdQueryAmplitudesAsync(PMD *p, IplImage *img); + diff --git a/.svn/pristine/ef/ef9562916bed57f5d39128eb5f14ab1ef47ae3b3.svn-base b/.svn/pristine/ef/ef9562916bed57f5d39128eb5f14ab1ef47ae3b3.svn-base new file mode 100644 index 0000000..44f0247 --- /dev/null +++ b/.svn/pristine/ef/ef9562916bed57f5d39128eb5f14ab1ef47ae3b3.svn-base @@ -0,0 +1,87 @@ +/** + * @file + * @brief Representation of a 3D scan and implementation of scan matching + * @author Andreas Nuechter. Jacobs University Bremen, Germany + * @author Li Wei, Wuhan University, China + * @author Li Ming, Wuhan University, China + */ + +#ifndef __VELOSCAN_H__ +#define __VELOSCAN_H__ + +#ifdef _MSC_VER +#define snprintf _snprintf +#undef _STDIO_DEFINED +#define _USE_MATH_DEFINES +#endif + +#include +#include + +#include "slam6d/scan.h" +#include "veloslam/gridcell.h" +#include "veloslam/gridcluster.h" + +bool FilterNOMovingObjcets(clusterFeature &glu, cluster &gluData); + +class Trajectory +{ + public: + Trajectory(); + public: + vector path; +}; + + +/** + * @brief 3D scan representation and implementation of dynamic velodyne scan matching + */ +class VeloScan : public Scan { + +public: + VeloScan(); + VeloScan(const VeloScan& s); + ~VeloScan(); + +public: + // FIXME + void FindingAllofObject(int maxDist, int minDist); + void TrackingAllofObject(int trackingAlgo); + void ExchangePointCloud(); + void ClassifiAllofObject(); + + int DumpScan(string filename); + int DumpScanRedPoints(string filename); + int DeletePoints(); + + int CalcRadAndTheta(); + int TransferToCellArray(int maxDist, int minDist); + + void MarkStaticorMovingPointCloud(); + void FreeAllCellAndCluterMemory(); + void ClassifiAllObject(); + void ClassifibyTrackingAllObject(int currentNO ,int windowsize); + void calcReducedPoints_byClassifi(double voxelSize, int nrpts, PointType pointtype); + + int CalcScanCellFeature(); + int CalcCellFeature(cell& cellobj,cellFeature& f); + int FindAndCalcScanClusterFeature(); + int SearchNeigh(cluster& clu,charvv& flagvv,int i,int j); + int CalcClusterFeature(cluster& clu,clusterFeature& f); + void SaveObjectsInPCD(int index, cluster &gClusterData ); + void SaveFrameInPCD( ); + + bool isTrackerHandled; + long scanid; + + /** scanCellFeatureArray */ + cellArray scanCellArray; + cellFeatureArray scanCellFeatureArray; + + clusterArray scanClusterArray; + clusterFeatureArray scanClusterFeatureArray; + + int clusterNum;//the number of clusters to be tracked, added by yuanjun +}; + +#endif diff --git a/.svn/pristine/ef/efe5a5aaed0bfcdf75a1b832814a295c6f58a14c.svn-base b/.svn/pristine/ef/efe5a5aaed0bfcdf75a1b832814a295c6f58a14c.svn-base new file mode 100644 index 0000000..3377f76 --- /dev/null +++ b/.svn/pristine/ef/efe5a5aaed0bfcdf75a1b832814a295c6f58a14c.svn-base @@ -0,0 +1,199 @@ +//$$ hholder.cpp QR decomposition + +// Copyright (C) 1991,2,3,4: R B Davies + +#define WANT_MATH + +#include "include.h" + +#include "newmatap.h" + +#ifdef use_namespace +namespace NEWMAT { +#endif + +#ifdef DO_REPORT +#define REPORT { static ExeCounter ExeCount(__LINE__,16); ++ExeCount; } +#else +#define REPORT {} +#endif + + +/*************************** QR decompositions ***************************/ + +inline Real square(Real x) { return x*x; } + +void QRZT(Matrix& X, LowerTriangularMatrix& L) +{ + REPORT + Tracer et("QZT(1)"); + int n = X.Ncols(); int s = X.Nrows(); L.ReSize(s); + Real* xi = X.Store(); int k; + for (int i=0; i +#include +#include "slam6d/scan.h" +#include "veloslam/tracker.h" + +//#define NO_SLIDING_WINDOW + +using namespace std; +extern float constant_static_or_moving; +struct ClusterStatus +{ + bool FilterRet; + bool Matched; +}; + +int GetScanID_in_SlidingWindow(int absNO, int current_pos, int window_size); + + +class TrackerManager +{ +public: + TrackerManager(void); + + ~TrackerManager(void); + + int Init(void); + + int getNumberofTracker(void); + + int HandleScan(VeloScan& scanRef,int trackingAlgo); + + int ClassifiyTrackersObjects(vector allScans, int currentNO ,int windowsize); + + static bool TrackerFilter(clusterFeature &glu, cluster &gluData); + + void TrackerManagerReset(); //added by yuanjun + + void GetTwoScanRoll(Scan *CurrentScan, Scan *preScan);//added by yuanjun + ///////////////////////////////////////////////////////////////// + int DrawEgoTrajectory(); + + int DrawTrackersMovtion_Long_Number_All(vector allScans, int n); + + int DrawTrackersContrailAfterFilted(vector allScans); + ////////////////////////////////////////////////////////////////// +public: + int ListTrackers(); + + int UpdateTrackers(VeloScan& scanRef); + + int UpdateClustersPoistioninTrackers(); + + int AddTrackers(VeloScan& scanRef); + + int MatchTrackers(VeloScan& scanRef,Tracker& tracker,float kg); + + int CalculateTrackersFeature(vector allScans, int currentNO ,int windowsize); + + int MarkClassifiyTrackersResult(vector allScans, int currentNO ,int windowsize); + + int RemoveNoUsedTracker(VeloScan& scanRef); + + int FilterObject(VeloScan& scanRef); + + CMatrix ConstructCostMatrix(VeloScan &scanRef,int *clusterIndex); + + int MatchTracksWithClusters(VeloScan &scanRef); + + list tracks; + //log the new trackerNo should begin + int trackerStartID; + //only for draw the color + int colorIdx; + //log the cluster status such as bool FilterRet; bool Matched; + vector clusterStatus; //should move in cluster struct + + double delta_Theta[3], delta_Pos[3], rollAngle;//added by yuanjun + + //VeloScan *preScan; //added by yuanjun +}; + diff --git a/.svn/pristine/f0/f042f154f021767778eab6bb2b3d3e4b852f9296.svn-base b/.svn/pristine/f0/f042f154f021767778eab6bb2b3d3e4b852f9296.svn-base new file mode 100644 index 0000000..7ad5c62 --- /dev/null +++ b/.svn/pristine/f0/f042f154f021767778eab6bb2b3d3e4b852f9296.svn-base @@ -0,0 +1,447 @@ +/**************************************************************************** + + GLUI User Interface Toolkit + --------------------------- + + glui_listbox - GLUI_ListBox control class + + + -------------------------------------------------- + + Copyright (c) 1998 Paul Rademacher + + This program is freely distributable without licensing fees and is + provided without guarantee or warrantee expressed or implied. This + program is -not- in the public domain. + +*****************************************************************************/ + +#include "glui.h" +#include "stdinc.h" + +/****************************** GLUI_Listbox::mouse_down_handler() **********/ + +int GLUI_Listbox::mouse_down_handler( int local_x, int local_y ) +{ + return false; +} + + +/****************************** GLUI_Listbox::mouse_up_handler() **********/ + +int GLUI_Listbox::mouse_up_handler( int local_x, int local_y, int inside ) +{ + + return false; +} + + +/****************************** GLUI_Listbox::mouse_held_down_handler() ******/ + +int GLUI_Listbox::mouse_held_down_handler( int local_x, int local_y, + int inside) +{ + + return false; +} + + +/****************************** GLUI_Listbox::key_handler() **********/ + +int GLUI_Listbox::key_handler( unsigned char key,int modifiers ) +{ + return false; +} + + +/****************************** GLUI_Listbox::draw() **********/ + +void GLUI_Listbox::draw( int x, int y ) +{ + int orig, name_x; + + if ( NOT can_draw() ) + return; + + orig = set_to_glut_window(); + + /* draw_active_area(); */ + + name_x = MAX(text_x_offset - string_width(this->name) - 3,0); + draw_name( name_x , 13); + draw_box_inwards_outline( text_x_offset, w, + 0, h ); + + + if ( NOT active ) { + draw_box( text_x_offset+3, w-2, 2, h-2, 1.0, 1.0, 1.0 ); + if ( NOT enabled ) + glColor3b( 32, 32, 32 ); + else + glColor3f( 0.0, 0.0, 0.0 ); + glRasterPos2i( text_x_offset+5, 13 ); + draw_string( curr_text.string ); + } + else { + draw_box( text_x_offset+3, w-2, 2, h-2, .0, .0, .6 ); + glColor3f( 1.0, 1.0, 1.0 ); + glRasterPos2i( text_x_offset+5, 13 ); + draw_string( curr_text.string ); + } + + + if ( enabled ) { + glui->std_bitmaps. + draw(GLUI_STDBITMAP_LISTBOX_UP, + w-glui->std_bitmaps.bitmaps[GLUI_STDBITMAP_LISTBOX_UP].w-1, + 2 ); + } + else { + glui->std_bitmaps. + draw(GLUI_STDBITMAP_LISTBOX_UP_DIS, + w-glui->std_bitmaps.bitmaps[GLUI_STDBITMAP_LISTBOX_UP].w-1, + 2 ); + } + + restore_window(orig); +} + + +/************************************ GLUI_Listbox::update_si() **********/ + +void GLUI_Listbox::update_size( void ) +{ + int text_size, delta; + int item_text_size; + + if ( NOT glui ) + return; + + text_size = string_width( name ); + + /*** Find the longest item string ***/ + item_text_size = 0; + delta = 0; + + if ( text_x_offset < text_size +2 ) + delta = text_size+2-text_x_offset; + + text_x_offset += delta; + if ( w < text_x_offset+MAX(GLUI_EDITTEXT_MIN_TEXT_WIDTH,item_text_size)+20) + w = text_x_offset + MAX( GLUI_EDITTEXT_MIN_TEXT_WIDTH,item_text_size)+20; +} + + + +/********************************* GLUI_Listbox::set_int_val() **************/ + +void GLUI_Listbox::set_int_val( int new_val ) +{ + /* int_val = new_val; */ + + do_selection( new_val ); + + /*** Update the variable we're (possibly) pointing to, and update the main gfx ***/ + output_live(true); +} + + +/**************************** GLUI_Listbox::draw_active_area() **************/ + +void GLUI_Listbox::draw_active_area( void ) +{ + int orig; + + if ( NOT can_draw() ) + return; + + orig = set_to_glut_window(); + + restore_window(orig); +} + + +/**************************************** GLUI_Listbox::add_item() **********/ + +int GLUI_Listbox::add_item( int id, char *new_text ) +{ + GLUI_Listbox_Item *new_node = new GLUI_Listbox_Item; + GLUI_Listbox_Item *head; + + strcpy( new_node->text, new_text ); + new_node->id = id; + + head = (GLUI_Listbox_Item*) items_list.first_child(); + new_node->link_this_to_parent_last( &items_list ); + + if ( head == NULL ) { + /*** This is first item added ***/ + + int_val = id+1; /** Different than id **/ + do_selection( id ); + last_live_int = id; + + if( glui ) + glui->post_update_main_gfx(); + } + + /*** Check if we need to increase control size ***/ + if ( w < text_x_offset + MAX( GLUI_EDITTEXT_MIN_TEXT_WIDTH, string_width( new_text ) ) + 20 ) { + w = text_x_offset + MAX( GLUI_EDITTEXT_MIN_TEXT_WIDTH, string_width( new_text ) ) + 20; + + if ( glui ) + glui->refresh(); + + /* printf( "%s\n", new_text ); */ + } + + + return true; +} + + +/************************************** GLUI_Listbox::delete_item() **********/ + +int GLUI_Listbox::delete_item( char *text ) +{ + GLUI_Listbox_Item *node = get_item_ptr( text ); + + if ( node ) { + node->unlink(); + delete node; + return true; + } + else { + return false; + } +} + + +/************************************** GLUI_Listbox::delete_item() **********/ + +int GLUI_Listbox::delete_item( int id ) +{ + GLUI_Listbox_Item *node = get_item_ptr( id ); + + if ( node ) { + node->unlink(); + delete node; + return true; + } + else { + return false; + } +} + + +/************************************** GLUI_Listbox::sort_items() **********/ + +int GLUI_Listbox::sort_items( void ) +{ + return false; +} + + +/********************************************* GLUI_Listbox::dump() **********/ + +void GLUI_Listbox::dump( FILE *output ) +{ + GLUI_Listbox_Item *item; + + /* printf( "%p\n", (char*) name ); */ + + fprintf( output, "Listbox: %s\n", (char*) name ); + + item = (GLUI_Listbox_Item *) items_list.first_child(); + while( item ) { + fprintf( output, " %3d : %s\n", item->id, (char*) item->text ); + + item = (GLUI_Listbox_Item *) item->next(); + } +} + + +/************************************ GLUI_Listbox::get_item_ptr() **********/ + +GLUI_Listbox_Item *GLUI_Listbox::get_item_ptr( char *text ) +{ + GLUI_Listbox_Item *item; + + item = (GLUI_Listbox_Item *) items_list.first_child(); + while( item ) { + if ( NOT strcmp( item->text, text )) + return item; + + item = (GLUI_Listbox_Item *) item->next(); + } + + return NULL; +} + + +/************************************ GLUI_Listbox::get_item_ptr() **********/ + +GLUI_Listbox_Item *GLUI_Listbox::get_item_ptr( int id ) +{ + GLUI_Listbox_Item *item; + + item = (GLUI_Listbox_Item *) items_list.first_child(); + while( item ) { + if ( item->id == id ) + return item; + + item = (GLUI_Listbox_Item *) item->next(); + } + + return NULL; +} + + +/************************************ GLUI_Listbox::mouse_over() **********/ + +static void listbox_callback( int i ) +{ + int old_val; + + if ( NOT GLUI_Master.curr_left_button_glut_menu OR + GLUI_Master.curr_left_button_glut_menu->type != GLUI_CONTROL_LISTBOX ) + return; + + old_val = ((GLUI_Listbox*)GLUI_Master.curr_left_button_glut_menu)->int_val; + ((GLUI_Listbox*)GLUI_Master.curr_left_button_glut_menu)->set_int_val(i); + + /**** If value changed, execute callback ****/ + if ( old_val != + ((GLUI_Listbox*)GLUI_Master.curr_left_button_glut_menu)->int_val ) { + ((GLUI_Listbox*)GLUI_Master.curr_left_button_glut_menu)->execute_callback(); + } +} + + +/*************************************** GLUI_Listbox::mouse_over() **********/ + +int GLUI_Listbox::mouse_over( int state, int x, int y ) +{ + GLUI_Listbox_Item *item; + + /* printf( "x/y: %d/%d\n", x, y ); */ + + if ( state AND enabled AND x > x_abs + text_x_offset) { + /**** Build a GLUT menu for this listbox ***/ + + /* printf( "%d %d\n", x, y ); */ + + glut_menu_id = glutCreateMenu(listbox_callback); + + item = (GLUI_Listbox_Item *) items_list.first_child(); + while( item ) { + glutAddMenuEntry( item->text, item->id ); + item = (GLUI_Listbox_Item *) item->next(); + } + + glutAttachMenu( GLUT_LEFT_BUTTON); + + GLUI_Master.set_left_button_glut_menu_control( this ); + } + else if ( glut_menu_id != -1 ) { + /* printf( "OUT\n" ); */ + glutDetachMenu( GLUT_LEFT_BUTTON ); + glutDestroyMenu( glut_menu_id ); + glut_menu_id = -1; + } + + return true; +} + + +/************************************ GLUI_Listbox::do_selection() **********/ + +int GLUI_Listbox::do_selection( int item_num ) +{ + GLUI_Listbox_Item *item, *sel_item; + + /*** Is this item already selected? ***/ + if ( item_num == int_val ) + return false; + + sel_item = NULL; + item = (GLUI_Listbox_Item *) items_list.first_child(); + while( item ) { + if ( item->id == item_num ) { + sel_item = item; + break; + } + + item = (GLUI_Listbox_Item *) item->next(); + } + + if ( NOT sel_item ) + return false; + + /* printf( "-> %s\n", (char*) sel_item->text ); */ + + int_val = item_num; + strcpy( curr_text.string, sel_item->text.string ); + + translate_and_draw_front(); + + return true; +} + + +/*********************************** GLUI_Listbox::~GLUI_Listbox() **********/ + +GLUI_Listbox::~GLUI_Listbox( ) +{ + GLUI_Listbox_Item *item, *tmp_item; + + item = (GLUI_Listbox_Item *) items_list.first_child(); + while( item ) { + tmp_item = item; + + delete item; + + item = (GLUI_Listbox_Item *) tmp_item->next(); + } +} + + +/****************************** GLUI_Listbox::special_handler() **********/ + +int GLUI_Listbox::special_handler( int key,int modifiers ) +{ + GLUI_Listbox_Item *node, *new_node; + + node = get_item_ptr( int_val ); + new_node = NULL; + + if ( key == GLUT_KEY_DOWN ) { + new_node = (GLUI_Listbox_Item*) node->next(); + } + else if ( key == GLUT_KEY_UP ) { + new_node = (GLUI_Listbox_Item*) node->prev(); + } + else if ( key == GLUT_KEY_HOME ) { + new_node = (GLUI_Listbox_Item*) items_list.first_child(); + } + else if ( key == GLUT_KEY_END ) { + new_node = (GLUI_Listbox_Item*) items_list.last_child(); + } + + if ( new_node != NULL AND new_node != node ) { + node = new_node; + set_int_val( node->id ); + execute_callback(); + return true; + } + else { + return false; + } +} + + +/************************* GLUI_Listbox::increase_width( void ) ***********/ + +void GLUI_Listbox::increase_width( void ) +{ +} diff --git a/.svn/pristine/f0/f068ced0cda33daa900fe1214d3f000d423ce61f.svn-base b/.svn/pristine/f0/f068ced0cda33daa900fe1214d3f000d423ce61f.svn-base new file mode 100644 index 0000000..06d65b8 --- /dev/null +++ b/.svn/pristine/f0/f068ced0cda33daa900fe1214d3f000d423ce61f.svn-base @@ -0,0 +1,439 @@ +//---------------------------------------------------------------------- +// File: kd_util.cpp +// Programmer: Sunil Arya and David Mount +// Description: Common utilities for kd-trees +// Last modified: 01/04/05 (Version 1.0) +//---------------------------------------------------------------------- +// Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +// David Mount. All Rights Reserved. +// +// This software and related documentation is part of the Approximate +// Nearest Neighbor Library (ANN). This software is provided under +// the provisions of the Lesser GNU Public License (LGPL). See the +// file ../ReadMe.txt for further information. +// +// The University of Maryland (U.M.) and the authors make no +// representations about the suitability or fitness of this software for +// any purpose. It is provided "as is" without express or implied +// warranty. +//---------------------------------------------------------------------- +// History: +// Revision 0.1 03/04/98 +// Initial release +//---------------------------------------------------------------------- + +#include "kd_util.h" // kd-utility declarations + +#include // performance evaluation + +//---------------------------------------------------------------------- +// The following routines are utility functions for manipulating +// points sets, used in determining splitting planes for kd-tree +// construction. +//---------------------------------------------------------------------- + +//---------------------------------------------------------------------- +// NOTE: Virtually all point indexing is done through an index (i.e. +// permutation) array pidx. Consequently, a reference to the d-th +// coordinate of the i-th point is pa[pidx[i]][d]. The macro PA(i,d) +// is a shorthand for this. +//---------------------------------------------------------------------- + // standard 2-d indirect indexing +#define PA(i,d) (pa[pidx[(i)]][(d)]) + // accessing a single point +#define PP(i) (pa[pidx[(i)]]) + +//---------------------------------------------------------------------- +// annAspectRatio +// Compute the aspect ratio (ratio of longest to shortest side) +// of a rectangle. +//---------------------------------------------------------------------- + +double annAspectRatio( + int dim, // dimension + const ANNorthRect &bnd_box) // bounding cube +{ + ANNcoord length = bnd_box.hi[0] - bnd_box.lo[0]; + ANNcoord min_length = length; // min side length + ANNcoord max_length = length; // max side length + for (int d = 0; d < dim; d++) { + length = bnd_box.hi[d] - bnd_box.lo[d]; + if (length < min_length) min_length = length; + if (length > max_length) max_length = length; + } + return max_length/min_length; +} + +//---------------------------------------------------------------------- +// annEnclRect, annEnclCube +// These utilities compute the smallest rectangle and cube enclosing +// a set of points, respectively. +//---------------------------------------------------------------------- + +void annEnclRect( + ANNpointArray pa, // point array + ANNidxArray pidx, // point indices + int n, // number of points + int dim, // dimension + ANNorthRect &bnds) // bounding cube (returned) +{ + for (int d = 0; d < dim; d++) { // find smallest enclosing rectangle + ANNcoord lo_bnd = PA(0,d); // lower bound on dimension d + ANNcoord hi_bnd = PA(0,d); // upper bound on dimension d + for (int i = 0; i < n; i++) { + if (PA(i,d) < lo_bnd) lo_bnd = PA(i,d); + else if (PA(i,d) > hi_bnd) hi_bnd = PA(i,d); + } + bnds.lo[d] = lo_bnd; + bnds.hi[d] = hi_bnd; + } +} + +void annEnclCube( // compute smallest enclosing cube + ANNpointArray pa, // point array + ANNidxArray pidx, // point indices + int n, // number of points + int dim, // dimension + ANNorthRect &bnds) // bounding cube (returned) +{ + int d; + // compute smallest enclosing rect + annEnclRect(pa, pidx, n, dim, bnds); + + ANNcoord max_len = 0; // max length of any side + for (d = 0; d < dim; d++) { // determine max side length + ANNcoord len = bnds.hi[d] - bnds.lo[d]; + if (len > max_len) { // update max_len if longest + max_len = len; + } + } + for (d = 0; d < dim; d++) { // grow sides to match max + ANNcoord len = bnds.hi[d] - bnds.lo[d]; + ANNcoord half_diff = (max_len - len) / 2; + bnds.lo[d] -= half_diff; + bnds.hi[d] += half_diff; + } +} + +//---------------------------------------------------------------------- +// annBoxDistance - utility routine which computes distance from point to +// box (Note: most distances to boxes are computed using incremental +// distance updates, not this function.) +//---------------------------------------------------------------------- + +ANNdist annBoxDistance( // compute distance from point to box + const ANNpoint q, // the point + const ANNpoint lo, // low point of box + const ANNpoint hi, // high point of box + int dim) // dimension of space +{ + register ANNdist dist = 0.0; // sum of squared distances + register ANNdist t; + + for (register int d = 0; d < dim; d++) { + if (q[d] < lo[d]) { // q is left of box + t = ANNdist(lo[d]) - ANNdist(q[d]); + dist = ANN_SUM(dist, ANN_POW(t)); + } + else if (q[d] > hi[d]) { // q is right of box + t = ANNdist(q[d]) - ANNdist(hi[d]); + dist = ANN_SUM(dist, ANN_POW(t)); + } + } + ANN_FLOP(4*dim) // increment floating op count + + return dist; +} + +//---------------------------------------------------------------------- +// annSpread - find spread along given dimension +// annMinMax - find min and max coordinates along given dimension +// annMaxSpread - find dimension of max spread +//---------------------------------------------------------------------- + +ANNcoord annSpread( // compute point spread along dimension + ANNpointArray pa, // point array + ANNidxArray pidx, // point indices + int n, // number of points + int d) // dimension to check +{ + ANNcoord min = PA(0,d); // compute max and min coords + ANNcoord max = PA(0,d); + for (int i = 1; i < n; i++) { + ANNcoord c = PA(i,d); + if (c < min) min = c; + else if (c > max) max = c; + } + return (max - min); // total spread is difference +} + +void annMinMax( // compute min and max coordinates along dim + ANNpointArray pa, // point array + ANNidxArray pidx, // point indices + int n, // number of points + int d, // dimension to check + ANNcoord &min, // minimum value (returned) + ANNcoord &max) // maximum value (returned) +{ + min = PA(0,d); // compute max and min coords + max = PA(0,d); + for (int i = 1; i < n; i++) { + ANNcoord c = PA(i,d); + if (c < min) min = c; + else if (c > max) max = c; + } +} + +int annMaxSpread( // compute dimension of max spread + ANNpointArray pa, // point array + ANNidxArray pidx, // point indices + int n, // number of points + int dim) // dimension of space +{ + int max_dim = 0; // dimension of max spread + ANNcoord max_spr = 0; // amount of max spread + + if (n == 0) return max_dim; // no points, who cares? + + for (int d = 0; d < dim; d++) { // compute spread along each dim + ANNcoord spr = annSpread(pa, pidx, n, d); + if (spr > max_spr) { // bigger than current max + max_spr = spr; + max_dim = d; + } + } + return max_dim; +} + +//---------------------------------------------------------------------- +// annMedianSplit - split point array about its median +// Splits a subarray of points pa[0..n] about an element of given +// rank (median: n_lo = n/2) with respect to dimension d. It places +// the element of rank n_lo-1 correctly (because our splitting rule +// takes the mean of these two). On exit, the array is permuted so +// that: +// +// pa[0..n_lo-2][d] <= pa[n_lo-1][d] <= pa[n_lo][d] <= pa[n_lo+1..n-1][d]. +// +// The mean of pa[n_lo-1][d] and pa[n_lo][d] is returned as the +// splitting value. +// +// All indexing is done indirectly through the index array pidx. +// +// This function uses the well known selection algorithm due to +// C.A.R. Hoare. +//---------------------------------------------------------------------- + + // swap two points in pa array +#define PASWAP(a,b) { int tmp = pidx[a]; pidx[a] = pidx[b]; pidx[b] = tmp; } + +void annMedianSplit( + ANNpointArray pa, // points to split + ANNidxArray pidx, // point indices + int n, // number of points + int d, // dimension along which to split + ANNcoord &cv, // cutting value + int n_lo) // split into n_lo and n-n_lo +{ + int l = 0; // left end of current subarray + int r = n-1; // right end of current subarray + while (l < r) { + register int i = (r+l)/2; // select middle as pivot + register int k; + + if (PA(i,d) > PA(r,d)) // make sure last > pivot + PASWAP(i,r) + PASWAP(l,i); // move pivot to first position + + ANNcoord c = PA(l,d); // pivot value + i = l; + k = r; + for(;;) { // pivot about c + while (PA(++i,d) < c) ; + while (PA(--k,d) > c) ; + if (i < k) PASWAP(i,k) else break; + } + PASWAP(l,k); // pivot winds up in location k + + if (k > n_lo) r = k-1; // recurse on proper subarray + else if (k < n_lo) l = k+1; + else break; // got the median exactly + } + if (n_lo > 0) { // search for next smaller item + ANNcoord c = PA(0,d); // candidate for max + int k = 0; // candidate's index + for (int i = 1; i < n_lo; i++) { + if (PA(i,d) > c) { + c = PA(i,d); + k = i; + } + } + PASWAP(n_lo-1, k); // max among pa[0..n_lo-1] to pa[n_lo-1] + } + // cut value is midpoint value + cv = (PA(n_lo-1,d) + PA(n_lo,d))/2.0; +} + +//---------------------------------------------------------------------- +// annPlaneSplit - split point array about a cutting plane +// Split the points in an array about a given plane along a +// given cutting dimension. On exit, br1 and br2 are set so +// that: +// +// pa[ 0 ..br1-1] < cv +// pa[br1..br2-1] == cv +// pa[br2.. n -1] > cv +// +// All indexing is done indirectly through the index array pidx. +// +//---------------------------------------------------------------------- + +void annPlaneSplit( // split points by a plane + ANNpointArray pa, // points to split + ANNidxArray pidx, // point indices + int n, // number of points + int d, // dimension along which to split + ANNcoord cv, // cutting value + int &br1, // first break (values < cv) + int &br2) // second break (values == cv) +{ + int l = 0; + int r = n-1; + for(;;) { // partition pa[0..n-1] about cv + while (l < n && PA(l,d) < cv) l++; + while (r >= 0 && PA(r,d) >= cv) r--; + if (l > r) break; + PASWAP(l,r); + l++; r--; + } + br1 = l; // now: pa[0..br1-1] < cv <= pa[br1..n-1] + r = n-1; + for(;;) { // partition pa[br1..n-1] about cv + while (l < n && PA(l,d) <= cv) l++; + while (r >= br1 && PA(r,d) > cv) r--; + if (l > r) break; + PASWAP(l,r); + l++; r--; + } + br2 = l; // now: pa[br1..br2-1] == cv < pa[br2..n-1] +} + + +//---------------------------------------------------------------------- +// annBoxSplit - split point array about a orthogonal rectangle +// Split the points in an array about a given orthogonal +// rectangle. On exit, n_in is set to the number of points +// that are inside (or on the boundary of) the rectangle. +// +// All indexing is done indirectly through the index array pidx. +// +//---------------------------------------------------------------------- + +void annBoxSplit( // split points by a box + ANNpointArray pa, // points to split + ANNidxArray pidx, // point indices + int n, // number of points + int dim, // dimension of space + ANNorthRect &box, // the box + int &n_in) // number of points inside (returned) +{ + int l = 0; + int r = n-1; + for(;;) { // partition pa[0..n-1] about box + while (l < n && box.inside(dim, PP(l))) l++; + while (r >= 0 && !box.inside(dim, PP(r))) r--; + if (l > r) break; + PASWAP(l,r); + l++; r--; + } + n_in = l; // now: pa[0..n_in-1] inside and rest outside +} + +//---------------------------------------------------------------------- +// annSplitBalance - compute balance factor for a given plane split +// Balance factor is defined as the number of points lying +// below the splitting value minus n/2 (median). Thus, a +// median split has balance 0, left of this is negative and +// right of this is positive. (The points are unchanged.) +//---------------------------------------------------------------------- + +int annSplitBalance( // determine balance factor of a split + ANNpointArray pa, // points to split + ANNidxArray pidx, // point indices + int n, // number of points + int d, // dimension along which to split + ANNcoord cv) // cutting value +{ + int n_lo = 0; + for(int i = 0; i < n; i++) { // count number less than cv + if (PA(i,d) < cv) n_lo++; + } + return n_lo - n/2; +} + +//---------------------------------------------------------------------- +// annBox2Bnds - convert bounding box to list of bounds +// Given two boxes, an inner box enclosed within a bounding +// box, this routine determines all the sides for which the +// inner box is strictly contained with the bounding box, +// and adds an appropriate entry to a list of bounds. Then +// we allocate storage for the final list of bounds, and return +// the resulting list and its size. +//---------------------------------------------------------------------- + +void annBox2Bnds( // convert inner box to bounds + const ANNorthRect &inner_box, // inner box + const ANNorthRect &bnd_box, // enclosing box + int dim, // dimension of space + int &n_bnds, // number of bounds (returned) + ANNorthHSArray &bnds) // bounds array (returned) +{ + int i; + n_bnds = 0; // count number of bounds + for (i = 0; i < dim; i++) { + if (inner_box.lo[i] > bnd_box.lo[i]) // low bound is inside + n_bnds++; + if (inner_box.hi[i] < bnd_box.hi[i]) // high bound is inside + n_bnds++; + } + + bnds = new ANNorthHalfSpace[n_bnds]; // allocate appropriate size + + int j = 0; + for (i = 0; i < dim; i++) { // fill the array + if (inner_box.lo[i] > bnd_box.lo[i]) { + bnds[j].cd = i; + bnds[j].cv = inner_box.lo[i]; + bnds[j].sd = +1; + j++; + } + if (inner_box.hi[i] < bnd_box.hi[i]) { + bnds[j].cd = i; + bnds[j].cv = inner_box.hi[i]; + bnds[j].sd = -1; + j++; + } + } +} + +//---------------------------------------------------------------------- +// annBnds2Box - convert list of bounds to bounding box +// Given an enclosing box and a list of bounds, this routine +// computes the corresponding inner box. It is assumed that +// the box points have been allocated already. +//---------------------------------------------------------------------- + +void annBnds2Box( + const ANNorthRect &bnd_box, // enclosing box + int dim, // dimension of space + int n_bnds, // number of bounds + ANNorthHSArray bnds, // bounds array + ANNorthRect &inner_box) // inner box (returned) +{ + annAssignRect(dim, inner_box, bnd_box); // copy bounding box to inner + + for (int i = 0; i < n_bnds; i++) { + bnds[i].project(inner_box.lo); // project each endpoint + bnds[i].project(inner_box.hi); + } +} diff --git a/.svn/pristine/f0/f0697c4e4794845dc469c4dae838c3da06a8f802.svn-base b/.svn/pristine/f0/f0697c4e4794845dc469c4dae838c3da06a8f802.svn-base new file mode 100644 index 0000000..214e207 --- /dev/null +++ b/.svn/pristine/f0/f0697c4e4794845dc469c4dae838c3da06a8f802.svn-base @@ -0,0 +1,5 @@ +#include + +// Direct 3<->3 points estimation. rot and trn is out parameters (should be initialized before). +void estimatePose3D(CvPoint3D32f *prev, CvPoint3D32f *curr, CvMat *rot, CvMat *trn); + diff --git a/.svn/pristine/f0/f09036e8e05be086b4f7ba73f9bdcb732499ccc7.svn-base b/.svn/pristine/f0/f09036e8e05be086b4f7ba73f9bdcb732499ccc7.svn-base new file mode 100644 index 0000000..2b29350 --- /dev/null +++ b/.svn/pristine/f0/f09036e8e05be086b4f7ba73f9bdcb732499ccc7.svn-base @@ -0,0 +1,91 @@ +# Compile ANN library +SET(ANN_DIR ${CMAKE_SOURCE_DIR}/3rdparty/ann_1.1.1_modified/src/) +SET(ANN_SRCS + ${ANN_DIR}ANN.cpp + ${ANN_DIR}brute.cpp + ${ANN_DIR}kd_tree.cpp + ${ANN_DIR}kd_util.cpp + ${ANN_DIR}kd_split.cpp + ${ANN_DIR}kd_dump.cpp + ${ANN_DIR}kd_search.cpp + ${ANN_DIR}kd_pr_search.cpp + ${ANN_DIR}kd_fix_rad_search.cpp + ${ANN_DIR}bd_tree.cpp + ${ANN_DIR}bd_search.cpp + ${ANN_DIR}bd_pr_search.cpp + ${ANN_DIR}bd_fix_rad_search.cpp + ${ANN_DIR}perf.cpp) +add_library(ANN STATIC ${ANN_SRCS}) +IF(EXPORT_SHARED_LIBS) +add_library(ANN_s SHARED ${ANN_SRCS}) +ENDIF(EXPORT_SHARED_LIBS) + +# on windows systems the DLL_EXPORTS is required +if (WIN32) + SET_TARGET_PROPERTIES(ANN PROPERTIES COMPILE_FLAGS -DDLL_EXPORTS) +endif(WIN32) + +# Compile glui library +SET(GLUI_DIR ${CMAKE_SOURCE_DIR}/3rdparty/glui/) +add_library(glui STATIC + ${GLUI_DIR}glui_add_controls.cpp + ${GLUI_DIR}glui.cpp + ${GLUI_DIR}glui_bitmap_img_data.cpp + ${GLUI_DIR}glui_bitmaps.cpp + ${GLUI_DIR}glui_button.cpp + ${GLUI_DIR}glui_edittext.cpp + ${GLUI_DIR}glui_checkbox.cpp + ${GLUI_DIR}glui_node.cpp + ${GLUI_DIR}glui_radio.cpp + ${GLUI_DIR}glui_statictext.cpp + ${GLUI_DIR}glui_panel.cpp + ${GLUI_DIR}glui_separator.cpp + ${GLUI_DIR}glui_spinner.cpp + ${GLUI_DIR}glui_control.cpp + ${GLUI_DIR}glui_column.cpp + ${GLUI_DIR}glui_translation.cpp + ${GLUI_DIR}glui_rotation.cpp + ${GLUI_DIR}glui_mouse_iaction.cpp + ${GLUI_DIR}glui_listbox.cpp + ${GLUI_DIR}glui_rollout.cpp + ${GLUI_DIR}arcball.cpp + ${GLUI_DIR}algebra3.cpp + ${GLUI_DIR}quaternion.cpp ) + + + +IF(WITH_WXSHOW) + +# Compile wxthings library +SET(WXTHINGS_DIR ${CMAKE_SOURCE_DIR}/3rdparty/wxthings/src/) +add_library(wxthings STATIC + ${WXTHINGS_DIR}block.cpp + ${WXTHINGS_DIR}bmpcombo.cpp + ${WXTHINGS_DIR}dropdown.cpp + # ${WXTHINGS_DIR}filebrws.cpp # these two are not needed and would create unnecessary dependencies + #${WXTHINGS_DIR}genergdi.cpp + ${WXTHINGS_DIR}geometry.cpp + ${WXTHINGS_DIR}menubtn.cpp + ${WXTHINGS_DIR}optvalue.cpp + ${WXTHINGS_DIR}range.cpp + ${WXTHINGS_DIR}spinctld.cpp + ${WXTHINGS_DIR}toggle.cpp +) +ENDIF(WITH_WXSHOW) + +# Compile sparse library +SET(SPARSE_DIR ${CMAKE_SOURCE_DIR}/3rdparty/sparse/) +add_library(sparse STATIC ${SPARSE_DIR}csparse.cc) +IF(EXPORT_SHARED_LIBS) +add_library(sparse_s SHARED ${SPARSE_DIR}csparse.cc) +ENDIF(EXPORT_SHARED_LIBS) + + +# Compile newmat library +SET(NEWMAT_DIR ${CMAKE_SOURCE_DIR}/3rdparty/newmat/) +SET(NEWMAT_SOURCES ${NEWMAT_DIR}newmat1.cpp ${NEWMAT_DIR}newmat2.cpp ${NEWMAT_DIR}newmat3.cpp ${NEWMAT_DIR}newmat4.cpp ${NEWMAT_DIR}newmat5.cpp ${NEWMAT_DIR}newmat6.cpp ${NEWMAT_DIR}newmat7.cpp ${NEWMAT_DIR}newmat8.cpp ${NEWMAT_DIR}newmatex.cpp ${NEWMAT_DIR}bandmat.cpp ${NEWMAT_DIR}submat.cpp ${NEWMAT_DIR}myexcept.cpp ${NEWMAT_DIR}cholesky.cpp ${NEWMAT_DIR}evalue.cpp ${NEWMAT_DIR}fft.cpp ${NEWMAT_DIR}hholder.cpp ${NEWMAT_DIR}jacobi.cpp ${NEWMAT_DIR}newfft.cpp ${NEWMAT_DIR}sort.cpp ${NEWMAT_DIR}svd.cpp ${NEWMAT_DIR}newmatrm.cpp ${NEWMAT_DIR}newmat9.cpp) +add_library(newmat STATIC ${NEWMAT_SOURCES}) +IF(EXPORT_SHARED_LIBS) +add_library(newmat_s SHARED ${NEWMAT_SOURCES}) +ENDIF(EXPORT_SHARED_LIBS) + diff --git a/.svn/pristine/f0/f0ccf574ae04de76fcf34854dcab0455d973ea55.svn-base b/.svn/pristine/f0/f0ccf574ae04de76fcf34854dcab0455d973ea55.svn-base new file mode 100644 index 0000000..bff7366 --- /dev/null +++ b/.svn/pristine/f0/f0ccf574ae04de76fcf34854dcab0455d973ea55.svn-base @@ -0,0 +1,22 @@ +bool PointFilter::check(double* point) +{ + // create a new checker chain + if(m_changed) { + createCheckers(); + // mark as unchanged to avoid recreation on further calls + m_changed = false; + } + + // apply all tests to the point + Checker* checker = m_checker; + while(checker) { + if(checker->test(point)) { + checker = checker->m_next; + } else { + // if even one test fails the point is discarded + return false; + } + } + // point has passed if all tests returned true + return true; +} diff --git a/.svn/pristine/f0/f0e2e071c259b602e7fce2d560792d2b395a6e97.svn-base b/.svn/pristine/f0/f0e2e071c259b602e7fce2d560792d2b395a6e97.svn-base new file mode 100644 index 0000000..a2767a7 --- /dev/null +++ b/.svn/pristine/f0/f0e2e071c259b602e7fce2d560792d2b395a6e97.svn-base @@ -0,0 +1,615 @@ +@Article{Lowe_2004, + author = {D. Lowe}, + title = {Distinctive image features from scale-invariant keypoints}, + journal = {International Journal of Computer Vision}, + year = {2004}, + volume = {2}, + number = {60}, + pages = {91 -- 110}, +} + +@InProceedings{ICAR2005_1, + author = "A. N{\"u}chter and K. Lingemann and J. Hertzberg and H. Surmann", + title = "{A}ccurate {O}bject {L}ocalization in {3D} {L}aser {R}ange {S}cans", + booktitle = "Proceedings of the 12th International Conference on Advanced Robotics (ICAR '05)", + year = "(submitted)", +} + +@InProceedings{IROS2004, + author = "K. Lingemann and H. Surmann and A. N{\"u}chter and J. Hertzberg", + title = "{I}ndoor and {O}utdoor {L}ocalization for {F}ast {M}obile {R}obots", + booktitle = "Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS '04)", + month = "September", + pages = "2185 -- 2190", + year = "2004", + address = "Sendai, Japan", +} + +@article{RAS2005, + author = "K. Lingemann and A. N{\"u}chter and J. Hertzberg and H. Surmann", + title = "High-{S}peed {L}aser {L}ocalization for {M}obile {R}obots", + journal = "Journal Robotics and Autonomous Systems", + volume = "(accepted)", + year = "2005", +} + +@InProceedings{IAS2004, + author = "A. N{\"u}chter and H. Surmann and and J. Hertzberg", + title = "{A}utomatic {C}lassification of {O}bjects in {3D} {L}aser {R}ange {S}cans", + booktitle = "Proceedings of the 8th Conference on Intelligent Autonomous Systems (IAS '04)", + month = "March", + year = "2004", + pages = "963 -- 970", + address = "Amsterdam, The Netherlands" +} + +@InProceedings{SSRR2005, + author = "A. N{\"u}chter and K. Lingemann and J. Hertzberg and H. Surmann and K. Perv{\"o}lz and M. Hennig and K. R. Tiruchinapalli and R. Worst and T. Christaller", + title = "{M}apping of {R}escue {E}nvironments with {Kurt3D}", + booktitle = "Proceedings of the IEEE International Workshop on Rescue Robotics (SSRR '05)", + year = "(submitted)", + address = "Kobe, Japan", + month = "June", +} + +@InProceedings{IAV2004, + author = "H. Surmann and A. N{\"u}chter and K. Lingemann and J. Hertzberg", + title = "{6D SLAM} {A} {P}reliminary {R}eport on {C}losing the {L}oop in {S}ix {D}imensions", + booktitle = "Proceedings of the 5th IFAC Symposium on Intelligent Autonomous Vehicles (IAV '04)", + month = "July", + year = "2004", + address = "Lisabon, Portugal" +} + +@article{RAAS2003, + author = "H. Surmann and A. N{\"u}chter and J. Hertzberg", + title = "{A}n autonomous mobile robot with a {3D} laser range finder for {3D} exploration and digitalization of indoor en +vironments", + journal = "Robotics and Autonomous Systems", + volume = "45", + number = "3 -- 4", + month = "December", + year = "2003", + pages = "181 -- 198", +} + +@InProceedings{KI2003, + author = "A. N{\"u}chter and H. Surmann and K. Lingemann and J. Hertzberg", + title = "Consistent 3D Model Construction with Autonomous Mobile Robots", + booktitle = " KI 2003: Advances in Artificial Intelligence. 26th Annual German Conference on AI, Proceedings Springer LNAI vol. 2821", + month = "September", + year = "2003", + pages = "550 -- 564", + address = "Hamburg, Germany" +} + +@InProceedings{ICRA2004, + author = "A. N{\"u}chter and H. Surmann and K. Lingemann and J. Hertzberg and S. Thrun", + title = "{6D SLAM} with an {A}pplication in Autonomous Mine Mapping", + booktitle = "Proceedings of the IEEE International Conference on Robotics and Automation", + month = "April", + year = "2004", + pages = "1998 -- 2003", + address = "New Orleans, USA" +} + +@Article{Viola_2004, + author = {Paul Viola and Michael J. Jones}, + title = {Robust Real-Time Face Detection}, + journal = {International Journal of Computer Vision}, + year = {2004}, + OPTkey = {}, + volume = {57}, + number = {2}, + pages = {137 -- 154}, + month = {May}, + OPTnote = {}, + OPTannote = {http://www.kluweronline.com/issn/0920-5691; vorher erschienen: siehe Viola_2001} +} + +@inproceedings{Yang_1998, + author = "P. Allen and R. Yang", + title = "Registering, {I}ntegrating, and {B}uilding {CAD} {M}odels from {R}ange {D}ata", + booktitle = "Proceedings of the IEEE International Conference on Robotics and Automation (ICRA '98)", + month = "May", + year = "1998", + address = "Leuven, Belgium", +} + +@Article{Sequeira_1995, + author= "V. Sequeira and J. Goncalves and M. Ribeiro", + title = "{3D} environment modelling using laser range sensing", + year = "1995", + journal = "Robotics and Automation", + pages = "81 -- 91", + volume = "16", + publisher = "Elsevier", +} + +@inproceedings{Simon_1994, + author = "D. Simon and M. Hebert and T. Kanade", + title = "Real--time 3--{D} pose estimation using a high--speed range sensor", + booktitle = "Proceedings of IEEE International Conference on Robotics and Automation (ICRA '94)", + month = "May", + year = "1994", + volume = "3", + pages = "2235 -- 2241", + address = "San Diego, CA, USA" +} + +@InProceedings{Chen_1991, + author = "Y. Chen and G. Medioni", + title = "{O}bject {M}odelling by {R}egistration of {M}ultiple {Range} {I}mages", + booktitle = "Proceedings of the IEEE Conference on Robotics and Automation (ICRA '91)", + month = "April", + year = "1991", + address = "Sacramento, CA, USA", + pages = "2724 -- 2729", +} + +@techreport{Zhang_1992, + author = "Z. Zhang", + title = "Iterative point matching for registration of free--form curves", + number = "RR-1658", + year = "1992", + institution = "INRIA--Sophia Antipolis", + address = "Valbonne Cedex, France", + url = "citeseer.nj.nec.com/zhang92iterative.html" +} + +@Misc{Leutze, + title = {Siemens/{L}eutze {L}aserscanner, \texttt{http://www2.automation.siemens.com/cd/safety/\newline html\_00/produkte/optisch\_laser.htm}}, + year = {2005}, +} + +@Misc{Schmersal, + title = {Schmersal {L}aserscanner, \texttt{http://www.produkte.schmersal.de/585/521/23124/\newline range.html?lang=de}}, + year = {2005}, +} + +@Misc{Sick, + title = {SICK {L}aserscanner, \texttt{http://ecatalog.sick.com/Products/ProductFinder/\newline product.aspx?finder=Produktfinder\&pid=9168\&lang=de}}, + year = {2005}, +} + +@Misc{Cyberware, + title = {Cyberware Body Scanner, \texttt{http://www.cyberware.com/products/wbInfo.html}, + year = {2005}, +} + +@Misc{Cyrax, + title = {Cyrax {L}aserscanner, \texttt{http://hds.leica-geosystems.com/products/products.html}}, + year = {2005}, +} + +@Misc{Riegl, + title = {Riegl {L}aserscanner, \texttt{http://www.riegl.co.at/terrestrial\_scanners/\newline terrestrial\_scanner\_overview\_/terr\_scanner\_menu\_all.htm}}, + year = {2005}, +} + +@Misc{Zoller, + title = {Zoller und {F}r{\"o}hlich {L}aserscanner, \texttt{http://www.zf-laser.com/d\_bildgebende.html}}, + year = {2005}, +} + + + +@InProceedings{Fasano_2003, + author = "A. Fasano and M. Callieri and P. Cignoni and R. Scopigno", + title = "Exploiting Mirrors for Laser Stripe 3D Scanning", + booktitle = "Proceedings of the 4th IEEE International Conference on Recent Advances in 3D Digital Imaging and Modeling (3DIM '03)", + month = "October", + year = "2003", + address = "Banff, Canada", + pages = "243 -- 251", +} + +@InProceedings{Diebel_2004, + author = "J. Diebel and K. Reutersw{\"a}rd and S. Thrun and J. Davis and R. Gupta", + title = "{S}imultaneous {L}ocalization and {M}apping with {A}ctive {S}tereo {V}ision", + booktitle = "Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS '04)", + month = "September", + year = "2004", + pages = "3436 -- 3443", + address = "Sendai, Japan", +} + +@InProceedings{Brenneke_2003, + author = "C. Brenneke and O. Wulf and B. A. Wagner", + title = "{U}sing {3D} {L}aser {R}ange {D}ata for {SLAM} in {O}utdoor {E}nvironments", + booktitle = "Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS '03)", + month = "October", + year = "2003", + address = "Las Vegas, USA", +} + +@INCOLLECTION{ThrunMapping_2002, + AUTHOR = {S. Thrun}, + TITLE = {Robotic Mapping: A Survey}, + BOOKTITLE = {Exploring Artificial Intelligence in the New Millenium}, + PUBLISHER = {Morgan Kaufmann}, + YEAR = {2002}, + EDITOR = {Lakemeyer, G. and Nebel, B.}, +} + +@inproceedings{Michelangelo_2000, + author = "M. Levoy and K. Pulli and B. Curless and S. Rusinkiewicz and D. Koller and L. Pereira and M. Ginzton and S. Anerson and J. Davis and J. Ginsberg and J. Shade and D. Fulk", + title = "{T}he {D}igital {M}ichelangelo {P}roject: {3D} {S}canning of {L}arge {S}tatues", + booktitle = "Proceedings of the ACM SIGGRAPH", + year = "2000", + address = "New Orleans, USA", + month = "July", +} + +@article{Elfes_1989, + author = {A. Elfes}, + title = {Using Occupancy Grids for Mobile Robot Perception and Navigation}, + journal = {Computer}, + volume = {22}, + number = {6}, + year = {1989}, + issn = {0018-9162}, + pages = {46 -- 57}, + publisher = {IEEE Computer Society Press}, + } + +@Article{Elfes_1987, + author = {A. Elfes}, + title = {Sonar-based real-world mapping and navigation}, + journal = {IEEE Journal of Robotics and Automation}, + year = {1987}, + OPTkey = {}, + volume = {3}, + OPTnumber = {}, + pages = {249 -- 265}, + OPTmonth = {}, + OPTnote = {}, + OPTannote = {} +} + +@incollection{Smith_1990, + author = {R. Smith and M. Self and P. Cheeseman}, + title = {Estimating uncertain spatial relationships in robotics}, + booktitle = {Autonomous robot vehicles}, + year = {1990}, + pages = {167 -- 193}, + publisher = {Springer-Verlag New York, Inc.}, + } + + + +@Article{Choset_2001, + author = {H. Choset and K. Nagatani}, + title = {Topological simultaneous localization and mapping ({SLAM}): toward exact localization without explicit localization}, + journal = {IEEE Transactions on Robotics and Automation}, + year = {2001}, + OPTkey = {}, + volume = {17}, + number = {2}, + OPTpages = {}, + OPTmonth = {}, + OPTnote = {}, + OPTannote = {} +} + +@article{Kuipers_1991, + author = {B. Kuipers and Y. T. Byun}, + title = {A robot exploration and mapping strategy based on a semantic hierarchy of spatial representations}, + journal = {Journal of Robotics and Autonomous Systems}, + volume = "8", + year = "1991", +} + +@inproceedings{Pierce_1995, + author = {D. Pierce and B. Kuipers}, + title = {Learning to explore and build maps}, + booktitle = {Proceedings of the twelfth national Conference on Artificial Intelligence (AAAI '94)}, + year = {1994}, + pages = {1264 -- 1271}, + month = {July}, + address = {Seattle, W.A., U.S.A.}, + publisher = {American Association for Artificial Intelligence}, + } + + + +@Article{Zimmer_1996, + author = {U. R. Zimmer}, + title = {Robust World-Modelling and Navigation in a Real World}, + journal = {NeuroComputing}, + year = {1996}, + OPTkey = {}, + volume = {13}, + number = {2 - 4}, + pages = {247 -- 260}, + OPTmonth = {}, + OPTnote = {}, + OPTannote = {} +} + +@InProceedings{Kortenkamp_1994, + author = {D. Kortenkamp and T. Weymouth}, + title = { Topological mapping for mobile robots using a combination of sonar and vision sensing}, + OPTcrossref = {}, + OPTkey = {}, + booktitle = {Proceedings of the twelfth national Conference on Artificial Intelligence (AAAI '94)}, + OPTpages = {}, + year = {1994}, + OPTeditor = {}, + OPTvolume = {}, + OPTnumber = {}, + OPTseries = {}, + OPTaddress = {}, + month = {July}, + OPTorganization = {}, + OPTpublisher = {}, + OPTnote = {}, + OPTannote = {} +} + +@inproceedings{Choset_1996, + author = "H. Choset and J. W. Burdick", + title = "Sensor based motion planning: The hierarchical generalized voronoi graph", + booktitle = "Proceedings of the Workshop on Algorithmic Foundations of Robotics", + address = "Toulouse, France", + year = "1996", +} + + +@InProceedings{Frese_2001, +author = {U. Frese and G. Hirzinger}, + title = "{S}imultaneous {L}ocalization and {M}apping -- {A} {D}iscussion", + booktitle = "Proceedings of the IJCAI Workshop on Reasoning with Uncertainty in Robotics", + month = "August", + year = "2001", + pages = "17 -- 26", + address = "Seattle, USA" +} + +@Article{ThrunLiu_2004, + author = {S. Thrun and Y. Liu and D. Koller and A. Y. Ng and Z. Ghahramani and H. F. Durrant-Whyte}, + title = {Simultaneous {L}ocalization and {M}apping with {S}parse {E}xtended {I}nformation {F}ilters}, + journal = {Machine Learning and Autonomous Robots}, + year = {2004}, + OPTkey = {}, + volume = {23}, + number = {7 -- 8}, + pages = {693 -- 716}, + month = {July/August}, + OPTnote = {}, + OPTannote = {} +} + +@InProceedings{Howard_2004, + author = {A. Howard and D. F. Wolf and G. S. Sukhatme}, + title = {Towards 3D Mapping in Urban Environments}, + OPTcrossref = {}, + OPTkey = {}, + booktitle = {Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS '04)}, + OPTpages = {}, + year = {2004}, + OPTeditor = {}, + OPTvolume = {}, + OPTnumber = {}, + OPTseries = {}, + address = {Sendai, Japan}, + OPTmonth = {}, + OPTorganization = {}, + OPTpublisher = {}, + OPTnote = {}, + OPTannote = {} +} + +@Article{Moravec_1988, + author = {H. P. Moravec}, + title = {Sensor fusion in certainty grids for mobile robots.}, + journal = {AI Magazine}, + year = {1988}, + OPTkey = {}, + volume = {9}, + number = {2}, + pages = {61 -- 74}, + OPTmonth = {}, + OPTnote = {}, + OPTannote = {} +} + +@ARTICLE{Thrun_1998a, + AUTHOR = {S. Thrun}, + YEAR = {1998}, + TITLE = {Learning Metric-Topological Maps for Indoor + Mobile Robot Navigation}, + JOURNAL = {Artificial Intelligence}, + VOLUME = {99}, + NUMBER = {1}, + PAGES = {21--71} +} + + +@InProceedings{Eberst_1996, + author = "C. Eberst; J. Sicheneder", + title = "{G}eneration of {H}ypothetical {L}andmarks {S}upporting {F}ast {O}bject {R}ecognition with {A}utonomous {M}obile {R}obots", + booktitle = "Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS '96)", + month = "November", + year = "1996", + address = "Osaka, Japan", +} + +@Article{Golfarelli_2001, + author = "M. Golfarelli and D. Maio and S. Rizzi", + title = "Correction of dead-reckoning errors in map building for mobile robots", + journal = "IEEE Transaction on Robotics and Automation (TRA)", +year = "2001", + volume = {17}, + number = {1}, + month = {May}, +} +@Article{Thrun_1998, + author = {S. Thrun and W. Burgard and D. Fox}, + title = {A probabilistic approach to concurrent mapping and localization for mobile robots}, + journal = {Machine Learning}, + year = {1998}, + OPTkey = {}, + volume = {31}, + number = {5}, + pages = {29 -- 53}, + OPTmonth = {October}, + OPTnote = {}, + OPTannote = {} +} + +@article{Leonard_1991, + author = {J.J. Leonard and Hugh Durrant-Whyte}, + title = {Localization by tracking geometric beacons}, + journal = {EEE Transactions on Robotics and Automation}, + volume = {7}, + number = {6}, + year = {1991}, + } + +@article{Kweon_1992, + author = {I. S. Kweon and T. Kanade}, + title = {High-Resolution Terrain Map from Multiple Sensor Data}, + journal = {IEEE Trans. Pattern Anal. Mach. Intell.}, + volume = {14}, + number = {2}, + year = {1992}, + issn = {0162-8828}, + pages = {278--292}, + doi = {http://dx.doi.org/10.1109/34.121795}, + publisher = {IEEE Computer Society}, + } + +@inproceedings{Sequeira_1999, + author = "V. Sequeira and K. Ng and E. Wolfart and J. Goncalves and D. Hogg", + title = "{A}utomated {3D} reconstruction of interiors with multiple scan--views", + booktitle = "Proceedings of SPIE, Electronic Imaging '99, The Society for Imaging Science and Technology /SPIE's 11th Annual Symposium", + year = "1999", + address = "San Jose, CA, USA", + month = "January", +} + +@inproceedings{Allen_2001, + author = "P. Allen and I. Stamos and A. Gueorguiev and E. Gold and P. Blaer", + title = "{AVENUE:} {A}utomated {S}ite {M}odelling in {U}rban {E}nvironments", + booktitle = "Proceedings of the Third International Conference on 3D Digital Imaging and Modeling (3DIM '01)", + month = "May", + year = "2001", + address = "Quebec City, Canada", +} + +@Article{Georgiev_2004, + author = {A. Georgiev and P. K. Allen}, + title = "{L}ocalization {M}ethods for a {M}obile {R}obot in {U}rban {E}nvironments", +journal = {IEEE Transaction on Robotics and Automation (TRO)}, + year = {2004}, + OPTkey = {}, + volume = {20}, +number = "5", + pages = {851 -- 864}, + month = {October}, +} + +@inproceedings{Haehnel_2001, + author="D. H{\"a}hnel and W. Burgard and S. Thrun", + title = "Learning {C}ompact 3{D} {M}odels of {I}ndoor and {O}utdoor {E}nvironments with a {M}obile {R}obot", + booktitle = "Proceedings of the fourth European workshop on advanced mobile robots (EUROBOT '01)", + month = "September", + year = "2001", + address = "Lund, Sweden", +} + +@inproceedings{Thrun_2000, + author="S. Thrun and D. Fox and W. Burgard", + title = "A real-time algorithm for mobile robot mapping with application to multi robot and 3{D} mapping", + booktitle = "Proceedings of the IEEE International Conference on Robotics and Automation (ICRA '00)", + month = "April", + year = "2000", + address = "San Francisco, CA, USA", +} + +@inproceedings{Frueh_2001_1, + author = "C. Fr{\"u}h and A. Zakhor", + title = "3{D} {M}odel {G}eneration for {C}ities {U}sing {A}erial {P}hotographs and {G}round {L}evel {L}aser {S}cans", + Booktitle = "Proceedings of the Computer Vision and Pattern Recognition Conference (CVPR '01)", + year = "2001", + month = "December", + address = "Kauai, Hawaii, USA", +} + +@inproceedings{Zhao_2001, + author = "H. Zhao and R. Shibasaki", + title = "{R}econstructing {T}extured {CAD} {M}odel of {U}rban {E}nvironment {U}sing {V}ehicle-{B}orne {L}aser {R}ange {S}canners and {L}ine {C}ameras", + booktitle = "Second International Workshop on Computer Vision System (ICVS '01)", + year = "2001", + address = "Vancouver, Canada", + month = "July", + pages = "284 -- 295", +} + +@inproceedings{Stamos_2000, + author = "I. Stamos and P. Allen", + title = "3-{D} {M}odel {C}onstruction {U}sing {R}ange and {I}mage {D}ata", + booktitle = "Proceedings of the Conference on Computer Vision and Pattern Recognition (CVPR '00)", + month = "June", + year = "2000", + address = "USA" +} + +@InProceedings{Hebert_2001, + author = "M. Hebert and M. Deans and D. Huber and B. Nabbe and N. Vandapel", + title = "Progress in 3--{D} {M}apping and {L}ocalization", + booktitle = "Proceedings of the 9th International Symposium on Intelligent Robotic Systems, (SIRS '01)", + month = "July", + year = "2001", + address = "Toulouse, France" +} + +@InProceedings{Wulf_2004, + author = "O. Wulf and K. O. Arras and H. I. Christensen and B. A. Wagner", + title = "{2D} {M}apping of {C}luttered {I}ndoor {E}nvironments by {M}eans of {3D} {P}erception", + booktitle = "Proceedings of the IEEE International Conference on Robotics and Automation (ICRA '04)", + month = "April", + year = "2004", + pages = "4204 -- 4209", + address = "New Orleans, USA", +} + +@article{Nevado_2004, + author = "M. M. Nevado and J. G. Garcia-Bermejo and E. Z. Casanova", + title = "Obtaining {3D} models of indoor environments with a mobile robot by estimating local surface directions", + journal = "Robotics and Autonomous Systems", + volume = "48", + month = "August", + year = "2004", + pages = "131 -- 143", +} + +@inproceedings{Se_2001, + author = "S. Se and D. Lowe and J. Little", + title = "{L}ocal and {G}lobal {L}ocalization for {M}obile {R}obots using {V}isual {L}andmarks", + booktitle = "Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS '01)", + month = "October", + address = "Hawaii, USA", + year = "2001", +} + +@InProceedings{Biber_2004, + author = "P. Biber and H. Andreasson and T. Duckett and A. Schilling", + title = "{3D} {M}odeling of {I}ndoor {E}nvironments by a {M}obile {R}obot with a {L}aser {S}canner and {P}anoramic {C}amera", + booktitle = "Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS '04)", + month = "September", + year = "2004", + address = "Sendai, Japan", +} + +@article{Besl_1992, + author = "P. Besl and N. McKay", + title = "A method for {R}egistration of 3--{D} {S}hapes", + journal = "IEEE Transactions on Pattern Analysis and Machine Intelligence", + month = "February", + year = "1992", + volume = "14", + number = "2", + pages = "239 -- 256" +} \ No newline at end of file diff --git a/.svn/pristine/f0/f0e42ed8ef022a2ba31bd061e8e5d8bdb146f515.svn-base b/.svn/pristine/f0/f0e42ed8ef022a2ba31bd061e8e5d8bdb146f515.svn-base new file mode 100644 index 0000000..bd507dd --- /dev/null +++ b/.svn/pristine/f0/f0e42ed8ef022a2ba31bd061e8e5d8bdb146f515.svn-base @@ -0,0 +1,38 @@ + + +int glui_img_checkbox_1_dis[] = { 13, 13, /* width, height */ + 255,255,255, 255,255,255, 255,255,255, 255,255,255, 255,255,255, + 255,255,255, 255,255,255, 255,255,255, 255,255,255, 255,255,255, + 255,255,255, 255,255,255, 255,255,255, 128,128,128, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 255,255,255, 128,128,128, 64, 64, 64, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 255,255,255, 128,128,128, + 64, 64, 64, 192,192,192, 192,192,192, 192,192,192, 64, 64, 64, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 255,255,255, 128,128,128, 64, 64, 64, 192,192,192, + 192,192,192, 64, 64, 64, 64, 64, 64, 64, 64, 64, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 255,255,255, + 128,128,128, 64, 64, 64, 192,192,192, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 255,255,255, 128,128,128, 64, 64, 64, + 192,192,192, 64, 64, 64, 64, 64, 64, 192,192,192, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 192,192,192, 192,192,192, 192,192,192, + 255,255,255, 128,128,128, 64, 64, 64, 192,192,192, 64, 64, 64, + 192,192,192, 192,192,192, 192,192,192, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 192,192,192, 192,192,192, 255,255,255, 128,128,128, + 64, 64, 64, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 64, 64, 64, 64, 64, 64, 192,192,192, + 192,192,192, 255,255,255, 128,128,128, 64, 64, 64, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 64, 64, 64, 192,192,192, 192,192,192, 255,255,255, + 128,128,128, 64, 64, 64, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 255,255,255, 128,128,128, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 192,192,192, + 255,255,255, 128,128,128, 128,128,128, 128,128,128, 128,128,128, + 128,128,128, 128,128,128, 128,128,128, 128,128,128, 128,128,128, + 128,128,128, 128,128,128, 128,128,128, 255,255,255, +}; diff --git a/.svn/pristine/f1/f10a22e827b189331b610d049634dc592060d74e.svn-base b/.svn/pristine/f1/f10a22e827b189331b610d049634dc592060d74e.svn-base new file mode 100644 index 0000000..b5cc58a --- /dev/null +++ b/.svn/pristine/f1/f10a22e827b189331b610d049634dc592060d74e.svn-base @@ -0,0 +1,87 @@ +// ===================================================================================== +// +// Filename: test.cc +// +// Description: +// +// Version: 1.0 +// Created: 09/26/2010 12:15:50 AM +// Revision: none +// Compiler: g++ +// +// Author: Jan Elseberg (), jelseber@uos.de +// Company: Universitaet Osnabrueck +// +// ===================================================================================== + +#include +#include +#include +#include +#ifdef HAVE_GETTIMEOFDAY +#include +#endif +#ifdef HAVE_UNISTD_H +#include +#endif + +#include "pnm.h" +#include "pgm2asc.h" +#include "pcx.h" +#include "ocr0.h" +#include "progress.h" +#include "version.h" +#include "config.h" + +char filter[] = "0-9"; +void test() { + int multipnm=1; + job_t job; + + + while (multipnm==1) { + job_init(&job); + + job.cfg.out_format=XML; + job.cfg.cfilter = filter; + job.src.fname = "patch00000.pgm"; // TODO + + multipnm=readpgm(job.src.fname, &job.src.p, job.cfg.verbose); + + if (multipnm<0) break; + + pgm2asc(&job); + + int linecounter = 0; + const char *line; + line = getTextLine(linecounter++); + while (line) { + //fputs(line, stdout); + //Interpret line here + + line = getTextLine(linecounter++); + } + free_textlines(); + job_free(&job); + } + return; +} +int main() { + return 0; +} +/* +#include "gocr/pnm.h" +#include "gocr/pgm2asc.h" +#include "gocr/pcx.h" +#include "gocr/ocr0.h" +#include "gocr/progress.h" +#include "gocr/version.h" +#include "gocr/config.h" + +int main() { + job_t job; + + +return 0; +} +*/ diff --git a/.svn/pristine/f1/f147888ae4e11507aadc8b421f9f471411fd0488.svn-base b/.svn/pristine/f1/f147888ae4e11507aadc8b421f9f471411fd0488.svn-base new file mode 100644 index 0000000..a02c4a4 --- /dev/null +++ b/.svn/pristine/f1/f147888ae4e11507aadc8b421f9f471411fd0488.svn-base @@ -0,0 +1,1291 @@ +/** + * @file + * @brief Globally used functions + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __GLOBALS_ICC__ +#define __GLOBALS_ICC__ + +#ifdef _MSC_VER +#include +#define _USE_MATH_DEFINES +#include + +inline int gettimeofday (struct timeval* tp, void* tzp) +{ + unsigned long t; + t = timeGetTime(); + tp->tv_sec = t / 1000; + tp->tv_usec = t % 1000; + return 0; /* 0 indicates success. */ +} +#else +#include +#endif + +#include +using std::min; +using std::max; +#include +#include +using std::stringstream; +#include +using std::ostream; +using std::istream; +#include +using std::cout; +using std::endl; +#include +#include +using std::runtime_error; + +/** + * Set bits count + * + * @param unsigned char x + * + * @return char + * + */ +inline unsigned char _my_popcount_3(unsigned char x) { + x -= (x >> 1) & 0x55; //put count of each 2 bits into those 2 bits + x = (x & 0x33) + ((x >> 2) & 0x33); //put count of each 4 bits into those 4 bits + x = (x + (x >> 4)) & 0x0f; //put count of each 8 bits into those 8 bits + return x; +} + +/** + * Converts a class T to a string of width with padding 0 + * + * @param t output + * @param width length + * + * @return string of t + * + */ +template +inline std::string to_string(const T& t, int width) +{ + stringstream ss; + ss << std::setfill('0') << std::setw(width) << t; + return ss.str(); +} + +/** + * Converts a class T to a string of width with padding 0 + * + * @param t output + * @return string of t + * + */ +template +inline std::string to_string(const T& t) +{ + stringstream ss; + ss << t; + return ss.str(); +} + + +/** + * Overridden "<<" operator for sending a (4x4)-matrix to a stream + * + * @param os stream + * @param matrix 4x4 matrix sent to stream + * @return stream + */ +inline ostream& operator<<(ostream& os, const double matrix[16]) +{ + for (int i = 0; i < 16; os << matrix[i++] << " "); + return os; +} + +/** + * Overridden ">>" operator for reading a (4x4)-matrix from a stream.
+ * Throws a runtime error if not enough data in the stream. + * + * @param is stream + * @param matrix 4x4 matrix sent to stream + * @return stream +*/ +inline istream& operator>>(istream& is, double matrix[16]) +{ + for (int i = 0; i < 16; i++) { + if (!is.good()) throw runtime_error("Not enough elements to read for >>(istream&, double[16])"); + is >> matrix[i]; + } + return is; +} + + +/** + * Converts an angle (given in deg) to rad + * + * @param deg integer indicating, whether the figure to be drawn to show + * the clusters should be circles (0) or rectangles(1) + * + * @return the clustered image, with the clusters marked by colored figures + * + */ +template +inline T rad(const T deg) +{ + return ( (2 * M_PI * deg) / 360 ); +} + +/** + * Converts an angle (given in rad) to deg + * + * @param rad angle in rad + * @return angle in deg + */ +template +inline T deg(const T rad) +{ + return ( (rad * 360) / (2 * M_PI) ); +} + + +/** + * Calculates x^2 + * + * @param x input scalar value + * @return squared value + */ +template +static inline T sqr(const T &x) +{ + return x*x; +} + + +/** + * Computes the squared length of a 3-vector + * + * @param x input 3-vector + * @return length^2 of vector + */ +template +inline T Len2(const T *x) +{ + return sqr(x[0]) + sqr(x[1]) + sqr(x[2]); +} + + +/** + * Computes the length of a 3-vector + * + * @param x input 3-vector + * @return length of vector + */ +template +inline T Len(const T *x) +{ + return sqrt(Len2(x)); +} + + +/** + * Computes the squared Eucledian distance between two points + * in 3-space + * + * @param x1 first input vector + * @param x2 decond input vecotr + * @return Eucledian distance^2 between the two locations + */ +template +inline T Dist2(const T *x1, const F *x2) +{ + T dx = x2[0] - x1[0]; + T dy = x2[1] - x1[1]; + T dz = x2[2] - x1[2]; + + return sqr(dx) + sqr(dy) + sqr(dz); +} + +/* + * Normalization of the input 3-vector + * + * @param x input/output 3-vector + */ +template +static inline void Normalize3(T *x) +{ + T norm = sqrt(x[0]*x[0] + x[1]*x[1] + x[2]*x[2]); + x[0] /= norm; + x[1] /= norm; + x[2] /= norm; +} + +/* + * Normalization of the input 4-vector + * + * @param x input/output 4-vector + */ +template +static inline void Normalize4(T *x) +{ + T norm = sqrt((x[0]*x[0] + x[1]*x[1] + x[2]*x[2] + x[3]*x[3])); + + x[0] /= norm; + x[1] /= norm; + x[2] /= norm; + x[3] /= norm; +} + +/** + * Sets a 4x4 matrix to identity + * + * @param M 4x4 matrix + */ +template +inline void M4identity( T *M ) +{ + M[0] = M[5] = M[10] = M[15] = 1.0; + M[1] = M[2] = M[3] = M[4] = M[6] = M[7] = M[8] = M[9] = M[11] = M[12] = M[13] = M[14] = 0.0; +} + +/** + * Multiplies a 4x4 matrices in OpenGL + * (column-major) order + * + * @param M1 first input matrix + * @param M2 second input matrix + * @param Mout output matrix + * + */ +template +inline void MMult(const T *M1, + const T *M2, + T *Mout) +{ + Mout[ 0] = M1[ 0]*M2[ 0]+M1[ 4]*M2[ 1]+M1[ 8]*M2[ 2]+M1[12]*M2[ 3]; + Mout[ 1] = M1[ 1]*M2[ 0]+M1[ 5]*M2[ 1]+M1[ 9]*M2[ 2]+M1[13]*M2[ 3]; + Mout[ 2] = M1[ 2]*M2[ 0]+M1[ 6]*M2[ 1]+M1[10]*M2[ 2]+M1[14]*M2[ 3]; + Mout[ 3] = M1[ 3]*M2[ 0]+M1[ 7]*M2[ 1]+M1[11]*M2[ 2]+M1[15]*M2[ 3]; + Mout[ 4] = M1[ 0]*M2[ 4]+M1[ 4]*M2[ 5]+M1[ 8]*M2[ 6]+M1[12]*M2[ 7]; + Mout[ 5] = M1[ 1]*M2[ 4]+M1[ 5]*M2[ 5]+M1[ 9]*M2[ 6]+M1[13]*M2[ 7]; + Mout[ 6] = M1[ 2]*M2[ 4]+M1[ 6]*M2[ 5]+M1[10]*M2[ 6]+M1[14]*M2[ 7]; + Mout[ 7] = M1[ 3]*M2[ 4]+M1[ 7]*M2[ 5]+M1[11]*M2[ 6]+M1[15]*M2[ 7]; + Mout[ 8] = M1[ 0]*M2[ 8]+M1[ 4]*M2[ 9]+M1[ 8]*M2[10]+M1[12]*M2[11]; + Mout[ 9] = M1[ 1]*M2[ 8]+M1[ 5]*M2[ 9]+M1[ 9]*M2[10]+M1[13]*M2[11]; + Mout[10] = M1[ 2]*M2[ 8]+M1[ 6]*M2[ 9]+M1[10]*M2[10]+M1[14]*M2[11]; + Mout[11] = M1[ 3]*M2[ 8]+M1[ 7]*M2[ 9]+M1[11]*M2[10]+M1[15]*M2[11]; + Mout[12] = M1[ 0]*M2[12]+M1[ 4]*M2[13]+M1[ 8]*M2[14]+M1[12]*M2[15]; + Mout[13] = M1[ 1]*M2[12]+M1[ 5]*M2[13]+M1[ 9]*M2[14]+M1[13]*M2[15]; + Mout[14] = M1[ 2]*M2[12]+M1[ 6]*M2[13]+M1[10]*M2[14]+M1[14]*M2[15]; + Mout[15] = M1[ 3]*M2[12]+M1[ 7]*M2[13]+M1[11]*M2[14]+M1[15]*M2[15]; +} + +template +inline void MMult(const T *M1, + const T *M2, + float *Mout) +{ + Mout[ 0] = M1[ 0]*M2[ 0]+M1[ 4]*M2[ 1]+M1[ 8]*M2[ 2]+M1[12]*M2[ 3]; + Mout[ 1] = M1[ 1]*M2[ 0]+M1[ 5]*M2[ 1]+M1[ 9]*M2[ 2]+M1[13]*M2[ 3]; + Mout[ 2] = M1[ 2]*M2[ 0]+M1[ 6]*M2[ 1]+M1[10]*M2[ 2]+M1[14]*M2[ 3]; + Mout[ 3] = M1[ 3]*M2[ 0]+M1[ 7]*M2[ 1]+M1[11]*M2[ 2]+M1[15]*M2[ 3]; + Mout[ 4] = M1[ 0]*M2[ 4]+M1[ 4]*M2[ 5]+M1[ 8]*M2[ 6]+M1[12]*M2[ 7]; + Mout[ 5] = M1[ 1]*M2[ 4]+M1[ 5]*M2[ 5]+M1[ 9]*M2[ 6]+M1[13]*M2[ 7]; + Mout[ 6] = M1[ 2]*M2[ 4]+M1[ 6]*M2[ 5]+M1[10]*M2[ 6]+M1[14]*M2[ 7]; + Mout[ 7] = M1[ 3]*M2[ 4]+M1[ 7]*M2[ 5]+M1[11]*M2[ 6]+M1[15]*M2[ 7]; + Mout[ 8] = M1[ 0]*M2[ 8]+M1[ 4]*M2[ 9]+M1[ 8]*M2[10]+M1[12]*M2[11]; + Mout[ 9] = M1[ 1]*M2[ 8]+M1[ 5]*M2[ 9]+M1[ 9]*M2[10]+M1[13]*M2[11]; + Mout[10] = M1[ 2]*M2[ 8]+M1[ 6]*M2[ 9]+M1[10]*M2[10]+M1[14]*M2[11]; + Mout[11] = M1[ 3]*M2[ 8]+M1[ 7]*M2[ 9]+M1[11]*M2[10]+M1[15]*M2[11]; + Mout[12] = M1[ 0]*M2[12]+M1[ 4]*M2[13]+M1[ 8]*M2[14]+M1[12]*M2[15]; + Mout[13] = M1[ 1]*M2[12]+M1[ 5]*M2[13]+M1[ 9]*M2[14]+M1[13]*M2[15]; + Mout[14] = M1[ 2]*M2[12]+M1[ 6]*M2[13]+M1[10]*M2[14]+M1[14]*M2[15]; + Mout[15] = M1[ 3]*M2[12]+M1[ 7]*M2[13]+M1[11]*M2[14]+M1[15]*M2[15]; +} + +/** + * Transforms a vactor with a matrix (P = M * V) + * @param M the transformation matrix + * @param v the initial vector + * @param p the transformt vector + */ +template +inline void VTrans(const T *M, const T *V, T *P) +{ + P[0] = M[0] * V[0] + M[4] * V[1] + M[8] * V[2] + M[12]; + P[1] = M[1] * V[0] + M[5] * V[1] + M[9] * V[2] + M[13]; + P[2] = M[2] * V[0] + M[6] * V[1] + M[10] * V[2] + M[14]; +} + +/** + * Converts an Euler angle to a 3x3 matrix + * + * @param rPosTheta vector of Euler angles + * @param alignxf 3x3 matrix corresponding to the Euler angles + */ +inline void EulerToMatrix3(const double *rPosTheta, double *alignxf) +{ + double sx = sin(rPosTheta[0]); + double cx = cos(rPosTheta[0]); + double sy = sin(rPosTheta[1]); + double cy = cos(rPosTheta[1]); + double sz = sin(rPosTheta[2]); + double cz = cos(rPosTheta[2]); + + alignxf[0] = cy*cz; + alignxf[1] = sx*sy*cz + cx*sz; + alignxf[2] = -cx*sy*cz + sx*sz; + alignxf[3] = -cy*sz; + alignxf[4] = -sx*sy*sz + cx*cz; + alignxf[5] = cx*sy*sz + sx*cz; + alignxf[6] = sy; + alignxf[7] = -sx*cy; + alignxf[8] = cx*cy; +} + +/** + * Calculates the determinant of a 3x3 matrix + * + * @param M input 3x3 matrix + * @return determinant of input matrix + */ +template +inline double M3det( const T *M ) +{ + double det; + det = (double)(M[0] * ( M[4]*M[8] - M[7]*M[5] ) + - M[1] * ( M[3]*M[8] - M[6]*M[5] ) + + M[2] * ( M[3]*M[7] - M[6]*M[4] )); + return ( det ); +} + +/** + * Inverts a 3x3 matrix + * + * @param Min input 3x3 matrix + * @param Mout output 3x3 matrix + */ +template +inline void M3inv( const T *Min, T *Mout ) +{ + double det = M3det( Min ); + + if ( fabs( det ) < 0.0005 ) { + M3identity( Mout ); + return; + } + + Mout[0] = (double)( Min[4]*Min[8] - Min[5]*Min[7] ) / det; + Mout[1] = (double)(-( Min[1]*Min[8] - Min[7]*Min[2] )) / det; + Mout[2] = (double)( Min[1]*Min[5] - Min[4]*Min[2] ) / det; + + Mout[3] = (double)(-( Min[3]*Min[8] - Min[5]*Min[6] )) / det; + Mout[4] = (double)( Min[0]*Min[8] - Min[6]*Min[2] ) / det; + Mout[5] = (double)(-( Min[0]*Min[5] - Min[3]*Min[2] )) / det; + + Mout[6] = (double) ( Min[3]*Min[7] - Min[6]*Min[4] ) / det; + Mout[7] = (double)(-( Min[0]*Min[7] - Min[6]*Min[1] )) / det; + Mout[8] = (double) ( Min[0]*Min[4] - Min[1]*Min[3] ) / det; +} + + +/** + * Converts a pose into a RT matrix + * @param *rPos Pointer to the position (double[3]) + * @param *rPosTheta Pointer to the angles (double[3]) + * @param *alignxf The calculated matrix + */ +inline void EulerToMatrix4(const double *rPos, const double *rPosTheta, double *alignxf) +{ + double sx = sin(rPosTheta[0]); + double cx = cos(rPosTheta[0]); + double sy = sin(rPosTheta[1]); + double cy = cos(rPosTheta[1]); + double sz = sin(rPosTheta[2]); + double cz = cos(rPosTheta[2]); + + alignxf[0] = cy*cz; + alignxf[1] = sx*sy*cz + cx*sz; + alignxf[2] = -cx*sy*cz + sx*sz; + alignxf[3] = 0.0; + alignxf[4] = -cy*sz; + alignxf[5] = -sx*sy*sz + cx*cz; + alignxf[6] = cx*sy*sz + sx*cz; + alignxf[7] = 0.0; + alignxf[8] = sy; + alignxf[9] = -sx*cy; + alignxf[10] = cx*cy; + + alignxf[11] = 0.0; + + alignxf[12] = rPos[0]; + alignxf[13] = rPos[1]; + alignxf[14] = rPos[2]; + alignxf[15] = 1; +} + +/** + * Converts a 4x4 matrix to Euler angles. + * + * @param alignxf input 4x4 matrix + * @param rPosTheta output 3-vector of Euler angles + * @param rPos output vector of trnaslation (position) if set + * + */ +static inline void Matrix4ToEuler(const double *alignxf, double *rPosTheta, double *rPos = 0) +{ + + double _trX, _trY; + + if(alignxf[0] > 0.0) { + rPosTheta[1] = asin(alignxf[8]); + } else { + rPosTheta[1] = M_PI - asin(alignxf[8]); + } + // rPosTheta[1] = asin( alignxf[8]); // Calculate Y-axis angle + + double C = cos( rPosTheta[1] ); + if ( fabs( C ) > 0.005 ) { // Gimball lock? + _trX = alignxf[10] / C; // No, so get X-axis angle + _trY = -alignxf[9] / C; + rPosTheta[0] = atan2( _trY, _trX ); + _trX = alignxf[0] / C; // Get Z-axis angle + _trY = -alignxf[4] / C; + rPosTheta[2] = atan2( _trY, _trX ); + } else { // Gimball lock has occurred + rPosTheta[0] = 0.0; // Set X-axis angle to zero + _trX = alignxf[5]; //1 // And calculate Z-axis angle + _trY = alignxf[1]; //2 + rPosTheta[2] = atan2( _trY, _trX ); + } + + rPosTheta[0] = rPosTheta[0]; + rPosTheta[1] = rPosTheta[1]; + rPosTheta[2] = rPosTheta[2]; + + if (rPos != 0) { + rPos[0] = alignxf[12]; + rPos[1] = alignxf[13]; + rPos[2] = alignxf[14]; + } +} + + +/** + * Sets a 3x3 matrix to the identity matrix + * + * @param M input 3x3 matrix + */ +template +static inline void M3identity( T *M ) +{ + M[0] = M[4] = M[8] = 1.0; + M[1] = M[2] = M[3] = M[5] = M[6] = M[7] = 0.0; +} + +/** + * Gets the current time (in ms) + * + * @return current time (in ms) + */ +static inline unsigned long GetCurrentTimeInMilliSec() +{ + static unsigned long milliseconds; +#ifdef _MSC_VER + SYSTEMTIME stime; + GetSystemTime(&stime); + milliseconds = ((stime.wHour * 60 + stime.wMinute) * 60 + stime.wSecond) * 1000 + stime.wMilliseconds; +#else + static struct timeval tv; + gettimeofday(&tv, NULL); + milliseconds = tv.tv_sec * 1000 + tv.tv_usec / 1000; +#endif + return milliseconds; +} + +/** + * generates random numbers in [0..rnd] + * + * @param rnd maximum number + * @return random number between 0 and rnd + */ +inline int rand(int rnd) +{ + return (int) ((double)rnd * (double)std::rand() / (RAND_MAX + 1.0)); +} + +/** + * generates unsigned character random numbers in [0..rnd] + * + * @param rnd maximum number + * @return random number between 0 and rnd + */ +inline unsigned char randUC(unsigned char rnd) +{ + return (unsigned char) ((float)rnd * std::rand() / (RAND_MAX + 1.0)); +} + +/** + * Computes the angle between 2 points in polar coordinates + */ +inline double polardist(double* p, double *p2) { + double stheta = sin(p[0]) * sin(p2[0]); + double myd2 = acos( stheta * cos(p[1]) * cos(p2[1]) + + stheta * sin(p[1]) * sin(p2[1]) + + cos(p[0]) * cos(p2[0])); + return myd2; +} + + + +inline void toKartesian(double *polar, double *kart) { + kart[0] = polar[2] * cos( polar[1] ) * sin( polar[0] ); + kart[1] = polar[2] * sin( polar[1] ) * sin( polar[0] ); + kart[2] = polar[2] * cos( polar[0] ); + +} + +/** + * Transforms a point in cartesian coordinates into polar + * coordinates + */ + +inline void toPolar(double *n, double *polar) { + double phi, theta, rho; + rho = Len(n); + Normalize3(n); + + // if(fabs(1 - fabs(n[1])) < 0.001) { + // cout << "Y " << n[0] << " " << n[1] << " " << n[2] << endl; + + phi = acos(n[2]); + //if ( fabs(phi) < 0.0001) phi = 0.0001; + //if ( fabs(M_PI - phi) < 0.0001) phi = 0.0001; + + double theta0; + + if(fabs(phi) < 0.0001) { + theta = 0.0; + } else if(fabs(M_PI - phi) < 0.0001) { + theta = 0.0; + } else { + if(fabs(n[0]/sin(phi)) > 1.0) { + if(n[0]/sin(phi) < 0) { + theta0 = M_PI; + } else { + theta0 = 0.0; + } + } else { + theta0 = acos(n[0]/sin(phi)); + + } + + + double sintheta = n[1]/sin(phi); + + double EPS = 0.0001; + + if(fabs(sin(theta0) - sintheta) < EPS) { + theta = theta0; + } else if(fabs( sin( 2*M_PI - theta0 ) - sintheta ) < EPS) { + theta = 2*M_PI - theta0; + } else { + theta = 0; + cout << "Fehler" << endl; + } + + } + /* } else { + theta = 0.0; + phi = 0.0; + }*/ + polar[0] = phi; + polar[1] = theta; + polar[2] = rho; + +} + +/* + * Computes the submatrix without + * row i and column j + * + * @param Min input 4x4 matrix + * @param Mout output 3x3 matrix + * @param i row index i + * @param j column index j + */ +template +static inline void M4_submat(const T *Min, T *Mout, int i, int j ) { + int di, dj, si, sj; + // loop through 3x3 submatrix + for( di = 0; di < 3; di ++ ) { + for( dj = 0; dj < 3; dj ++ ) { + // map 3x3 element (destination) to 4x4 element (source) + si = di + ( ( di >= i ) ? 1 : 0 ); + sj = dj + ( ( dj >= j ) ? 1 : 0 ); + // copy element + Mout[di * 3 + dj] = Min[si * 4 + sj]; + } + } +} + +/* + * Computes the determinant of a 4x4 matrix + * + * @param 4x4 matrix + * @return determinant + */ +template +static inline double M4det(const T *M ) +{ + T det, result = 0, i = 1.0; + T Msub3[9]; + int n; + for ( n = 0; n < 4; n++, i *= -1.0 ) { + M4_submat( M, Msub3, 0, n ); + det = M3det( Msub3 ); + result += M[n] * det * i; + } + return( result ); +} + + +/* + * invert a 4x4 Matrix + * + * @param Min input 4x4 matrix + * @param Mout output matrix + * @return 1 if successful + */ +template +static inline int M4inv(const T *Min, T *Mout ) +{ + T mdet = M4det( Min ); + if ( fabs( mdet ) < 0.0005 ) { + cout << "Error matrix inverting!" << endl; + M4identity( Mout ); + return( 0 ); + } + T mtemp[9]; + int i, j, sign; + for ( i = 0; i < 4; i++ ) { + for ( j = 0; j < 4; j++ ) { + sign = 1 - ( (i +j) % 2 ) * 2; + M4_submat( Min, mtemp, i, j ); + Mout[i+j*4] = ( M3det( mtemp ) * sign ) / mdet; + } + } + return( 1 ); +} + +/* + * transposes a 4x4 matrix + * + * @param Min input 4x4 matrix + * @param Mout output 4x4 matrix + */ +template +static inline int M4transpose(const T *Min, T *Mout ) +{ + Mout[0] = Min[0]; + Mout[4] = Min[1]; + Mout[8] = Min[2]; + Mout[12] = Min[3]; + Mout[1] = Min[4]; + Mout[5] = Min[5]; + Mout[9] = Min[6]; + Mout[13] = Min[7]; + Mout[2] = Min[8]; + Mout[6] = Min[9]; + Mout[10] = Min[10]; + Mout[14] = Min[11]; + Mout[3] = Min[12]; + Mout[7] = Min[13]; + Mout[11] = Min[14]; + Mout[15] = Min[15]; + return( 1 ); +} + +/* +++++++++-------------++++++++++++ + * NAME + * choldc + * DESCRIPTION + * Cholesky Decomposition of a symmetric + * positive definite matrix + * Overwrites lower triangle of matrix + * Numerical Recipes, but has a bit of + * the fancy C++ template thing happening + * +++++++++-------------++++++++++++ */ +static inline bool choldc(double A[3][3], double diag[3]) +{ + for (unsigned int i = 0; i < 3; i++) { + for (unsigned int j = i; j < 3; j++) { + double sum = A[i][j]; + for (int k=i-1; k >= 0; k--) + sum -= A[i][k] * A[j][k]; + if (i == j) { + if (sum < 1.0e-7) + return false; + diag[i] = sqrt(sum); + } else { + A[j][i] = sum / diag[i]; + } + } + } + return true; +} + + +/* +++++++++-------------++++++++++++ + * NAME + * choldc + * DESCRIPTION + * Cholesky Decomposition of a symmetric + * positive definite matrix + * Overwrites lower triangle of matrix + * Numerical Recipes, but has a bit of + * the fancy C++ template thing happening + * +++++++++-------------++++++++++++ */ +static inline bool choldc(unsigned int n, double **A, double *diag) +{ + for (unsigned int i = 0; i < n; i++) { + for (unsigned int j = i; j < n; j++) { + double sum = A[i][j]; + for (int k=i-1; k >= 0; k--) + sum -= A[i][k] * A[j][k]; + if (i == j) { + if (sum < 1.0e-7) + return false; + diag[i] = sqrt(sum); + } else { + A[j][i] = sum / diag[i]; + } + } + } + return true; +} + + +/* +++++++++-------------++++++++++++ + * NAME + * cholsl + * DESCRIPTION + * Solve Ax=B after choldc + * +++++++++-------------++++++++++++ */ +static inline void cholsl(double A[3][3], + double diag[3], + double B[3], + double x[3]) +{ + for (int i=0; i < 3; i++) { + double sum = B[i]; + for (int k=i-1; k >= 0; k--) + sum -= A[i][k] * x[k]; + x[i] = sum / diag[i]; + } + for (int i=2; i >= 0; i--) { + double sum = x[i]; + for (int k=i+1; k < 3; k++) + sum -= A[k][i] * x[k]; + x[i] = sum / diag[i]; + } +} + + +/* +++++++++-------------++++++++++++ + * NAME + * cholsl + * DESCRIPTION + * Solve Ax=B after choldc + * +++++++++-------------++++++++++++ */ +static inline void cholsl(unsigned int n, + double **A, + double *diag, + double *B, + double *x) +{ + for (unsigned int i=0; i < n; i++) { + double sum = B[i]; + for (int k=(int)i-1; k >= 0; k--) + sum -= A[i][k] * x[k]; + x[i] = sum / diag[i]; + } + for (int i=(int)n-1; i >= 0; i--) { + double sum = x[i]; + for (unsigned int k=i+1; k < n; k++) + sum -= A[k][i] * x[k]; + x[i] = sum / diag[i]; + } +} + + +/** + * Transforms a a quaternion and a translation vector into a 4x4 + * Matrix + * + * @param quat input quaternion + * @param t input translation + * @param mat output matrix + */ +static inline void QuatToMatrix4(const double *quat, const double *t, double *mat) +{ + // double q00 = quat[0]*quat[0]; + double q11 = quat[1]*quat[1]; + double q22 = quat[2]*quat[2]; + double q33 = quat[3]*quat[3]; + double q03 = quat[0]*quat[3]; + double q13 = quat[1]*quat[3]; + double q23 = quat[2]*quat[3]; + double q02 = quat[0]*quat[2]; + double q12 = quat[1]*quat[2]; + double q01 = quat[0]*quat[1]; + mat[0] = 1 - 2 * (q22 + q33); + mat[5] = 1 - 2 * (q11 + q33); + mat[10] = 1 - 2 * (q11 + q22); + mat[4] = 2.0*(q12-q03); + mat[1] = 2.0*(q12+q03); + mat[8] = 2.0*(q13+q02); + mat[2] = 2.0*(q13-q02); + mat[9] = 2.0*(q23-q01); + mat[6] = 2.0*(q23+q01); + + mat[3] = mat[7] = mat[11] = 0.0; + + if (t == 0) { + mat[12] = mat[13] = mat[14] = 0.0; + } else { + mat[12] = t[0]; + mat[13] = t[1]; + mat[14] = t[2]; + } + mat[15] = 1.0; +} + + +/** + * Transforms a 4x4 Transformation Matrix into a quaternion + * + * @param mat matrix to be converted + * @param quat resulting quaternion + * @param t resulting translation + */ +static inline void Matrix4ToQuat(const double *mat, double *quat, double *t = 0) +{ + + double T, S, X, Y, Z, W; + T = 1 + mat[0] + mat[5] + mat[10]; + if ( T > 0.00000001 ) { // to avoid large distortions! + + S = sqrt(T) * 2; + X = ( mat[9] - mat[6] ) / S; + Y = ( mat[2] - mat[8] ) / S; + Z = ( mat[4] - mat[1] ) / S; + W = 0.25 * S; + } else if ( mat[0] > mat[5] && mat[0] > mat[10] ) { // Column 0: + S = sqrt( 1.0 + mat[0] - mat[5] - mat[10] ) * 2; + X = 0.25 * S; + Y = (mat[4] + mat[1] ) / S; + Z = (mat[2] + mat[8] ) / S; + W = (mat[9] - mat[6] ) / S; + } else if ( mat[5] > mat[10] ) { // Column 1: + S = sqrt( 1.0 + mat[5] - mat[0] - mat[10] ) * 2; + X = (mat[4] + mat[1] ) / S; + Y = 0.25 * S; + Z = (mat[9] + mat[6] ) / S; + W = (mat[2] - mat[8] ) / S; + } else { // Column 2: + S = sqrt( 1.0 + mat[10] - mat[0] - mat[5] ) * 2; + X = (mat[2] + mat[8] ) / S; + Y = (mat[9] + mat[6] ) / S; + Z = 0.25 * S; + W = (mat[4] - mat[1] ) / S; + } + quat[0] = W; + quat[1] = -X; + quat[2] = -Y; + quat[3] = -Z; + + Normalize4(quat); + if (t != 0) { + t[0] = mat[12]; + t[1] = mat[13]; + t[2] = mat[14]; + } +} + +/** + * Transforms a Quaternion to the corresponding Axis-Angle representation + * + * @param quat 4-vector of quaternion + * gets overridden by the axis/angle representation + */ +static inline void QuatToAA(double *quat){ + //double x, y, z, w; + double sum = 0.0; + + double cos_a, angle, x, y, z, sin_a; + + for(int i = 0; i < 4; i++){ + sum += quat[i]*quat[i]; + } + sum = sqrt(sum); + + //quaternion_normalise( |W,X,Y,Z| ); + cos_a = quat[0]/sum; + angle = acos( cos_a ) * 2; + sin_a = sqrt( 1.0 - cos_a * cos_a ); + if ( fabs( sin_a ) < 0.0005 ) sin_a = 1; + x = quat[1] / sin_a; + y = quat[2] / sin_a; + z = quat[3] / sin_a; + + quat[0] = angle; + quat[1] = x; + quat[2] = y; + quat[3] = z; +} + +/** + * Quaternion Multiplication q1 * q2 = q3 + */ +static inline void QMult(const double *q1, const double *q2, double *q3) { + q3[0] = q1[0] * q2[0] - q1[1] * q2[1] - q1[2] * q2[2] - q1[3] * q2[3]; + q3[1] = q1[0] * q2[1] + q1[1] * q2[0] + q1[2] * q2[3] - q1[3] * q2[2]; + q3[2] = q1[0] * q2[2] - q1[1] * q2[3] + q1[2] * q2[0] + q1[3] * q2[1]; + q3[3] = q1[0] * q2[3] + q1[1] * q2[2] - q1[2] * q2[1] + q1[3] * q2[0]; +} + +/** + * Quaternion SLERP + * http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/slerp/ + */ +static inline void slerp(const double *qa, const double *qb, const double t, double *qm) { + // Calculate angle between them. + double cosHalfTheta = qa[0] * qb[0] + qa[1] * qb[1] + qa[2] * qb[2] + qa[3] * qb[3]; + // if qa=qb or qa=-qb then theta = 0 and we can return qa + if (fabs(cosHalfTheta) >= 1.0) { + qm[0] = qa[0]; + qm[1] = qa[1]; + qm[2] = qa[2]; + qm[3] = qa[3]; + return; + } + // Calculate temporary values. + double halfTheta = acos(cosHalfTheta); + double sinHalfTheta = sqrt(1.0 - cosHalfTheta * cosHalfTheta); + // if theta = 180 degrees then result is not fully defined + // we could rotate around any axis normal to qa or qb + if (fabs(sinHalfTheta) < 0.001){ + qm[0] = (qa[0] * 0.5 + qb[0] * 0.5); + qm[1] = (qa[1] * 0.5 + qb[1] * 0.5); + qm[2] = (qa[2] * 0.5 + qb[2] * 0.5); + qm[3] = (qa[3] * 0.5 + qb[3] * 0.5); + Normalize4(qm); + return; + } + double ratioA = sin((1 - t) * halfTheta) / sinHalfTheta; + double ratioB = sin(t * halfTheta) / sinHalfTheta; + //calculate Quaternion. + qm[0] = (qa[0] * ratioA + qb[0] * ratioB); + qm[1] = (qa[1] * ratioA + qb[1] * ratioB); + qm[2] = (qa[2] * ratioA + qb[2] * ratioB); + qm[3] = (qa[3] * ratioA + qb[3] * ratioB); + Normalize4(qm); +} + +/* taken from ROOT (CERN) + * as well in: + * Effective Sampling and Distance Metrics for 3D Rigid Body Path Planning + * James J. Kuffner + * + * Distance between two rotations in Quaternion form + * Note: The rotation group is isomorphic to a 3-sphere + * with diametrically opposite points identified. + * The (rotation group-invariant) is the smaller + * of the two possible angles between the images of + * the two rotations on that sphere. Thus the distance + * is never greater than pi/2. + */ +inline double quat_dist(double quat1[4], double quat2[4]) { + double chordLength = std::fabs(quat1[0]*quat2[0] + quat1[1]*quat2[1] + quat1[2]*quat2[2] + quat1[3]*quat2[3]); + if (chordLength > 1) chordLength = 1; // in case roundoff fouls us up + return acos(chordLength) / M_PI * 180.0; +} + + + +/** + * Converts a Rotation given by Axis-Angle and a Translation into a + * 4x4 Transformation matrix + * + * @param aa axis and angle aa[0] is the angle + * @param trans vector containing the translation + * @param matrix matrix to be computed + */ +inline void AAToMatrix(double *aa, double *trans, double *matrix ){ + double rcos = cos(aa[0]); + double rsin = sin(aa[0]); + double u = aa[1]; + double v = aa[2]; + double w = aa[3]; + + matrix[0] = rcos + u*u*(1-rcos); + matrix[1] = w * rsin + v*u*(1-rcos); + matrix[2] = -v * rsin + w*u*(1-rcos); + matrix[3] = 0.0; + matrix[4] = -w * rsin + u*v*(1-rcos); + matrix[5] = rcos + v*v*(1-rcos); + matrix[6] = u * rsin + w*v*(1-rcos); + matrix[7] = 0.0; + matrix[8] = v * rsin + u*w*(1-rcos); + matrix[9] = -u * rsin + v*w*(1-rcos); + matrix[10] = rcos + w*w*(1-rcos); + matrix[11] = 0.0; + matrix[12] = trans[0]; + matrix[13] = trans[1]; + matrix[14] = trans[2]; + matrix[15] = 1.0; + +} + + +/** + * Factors matrix A into lower and upper triangular matrices + * (L and U respectively) in solving the linear equation Ax=b. + * + * @param A (input/output) Matrix(1:n, 1:n) In input, matrix to be + * factored. On output, overwritten with lower and + * upper triangular factors. + * + * @param indx (output) Vector(1:n) Pivot vector. Describes how + * the rows of A were reordered to increase + * numerical stability. + * + * @return return int(0 if successful, 1 otherwise) + */ +inline int LU_factor( double A[4][4], int indx[4]) +{ + int M = 4; + int N = 4; + + int i=0,j=0,k=0; + int jp=0; + + double t; + + int minMN = 4; + + for (j = 0; j < minMN; j++) + { + + // find pivot in column j and test for singularity. + + jp = j; + t = fabs(A[j][j]); + for (i = j+1; i < M; i++) + if ( fabs(A[i][j]) > t) + { + jp = i; + t = fabs(A[i][j]); + } + + indx[j] = jp; + + // jp now has the index of maximum element + // of column j, below the diagonal + + if ( A[jp][j] == 0 ) + return 1; // factorization failed because of zero pivot + + + if (jp != j) // swap rows j and jp + for (k = 0; k < N; k++) + { + t = A[j][k]; + A[j][k] = A[jp][k]; + A[jp][k] =t; + } + + if (j < M) // compute elements j+1:M of jth column + { + // note A(j,j), was A(jp,p) previously which was + // guarranteed not to be zero (Label #1) + // + double recp = 1.0 / A[j][j]; + + for (k = j+1; k < M; k++) + A[k][j] *= recp; + } + + if (j < minMN) + { + // rank-1 update to trailing submatrix: E = E - x*y; + // + // E is the region A(j+1:M, j+1:N) + // x is the column vector A(j+1:M,j) + // y is row vector A(j,j+1:N) + + int ii,jj; + + for (ii = j+1; ii < M; ii++) + for (jj = j+1; jj < N; jj++) + A[ii][jj] -= A[ii][j]*A[j][jj]; + } + } + + return 0; +} + +/** + * Solves a linear system via LU after LU factor + * + * @param A 4x4 matrix + * @param indx indices + * @param b 4 vectort + * + * @return 0 + * + */ +inline int LU_solve(const double A[4][4], const int indx[4], double b[4]) +{ + int i,ii=0,ip,j; + int n = 4; + double sum = 0.0; + + for (i = 0; i < n; i++) + { + ip=indx[i]; + sum=b[ip]; + b[ip]=b[i]; + if (ii) + for (j = ii;j <= i-1; j++) + sum -= A[i][j]*b[j]; + else if (sum) ii=i; + b[i]=sum; + } + for (i = n-1; i >= 0; i--) + { + sum=b[i]; + for (j = i+1; j < n; j++) + sum -= A[i][j]*b[j]; + b[i]=sum/A[i][i]; + } + + return 0; +} + +/** + * Calculates the cross product of two 4-vectors + * + * @param x input 1 + * @param y input 2 + * @param T output + * + */ +template +static inline void Cross(const T *x, const T *y, T *result) +{ + result[0] = x[1] * y[2] - x[2] * y[1]; + result[1] = x[2] * y[0] - x[0] * y[2]; + result[2] = x[0] * y[1] - x[1] * y[0]; + return; +} + +/** + * converts a quaternion to Euler angels in the roll pitch yaw system + */ +static inline void QuatRPYEuler(const double *quat, double *euler) +{ + double n = sqrt(quat[0]*quat[0] + quat[1]*quat[1] + quat[2]*quat[2] + quat[3]*quat[3]); + double s = n > 0?2./(n*n):0.; + + double m00, m10, m20, m21, m22; + + + double xs = quat[1]*s; + double ys = quat[2]*s; + double zs = quat[3]*s; + + double wx = quat[0]*xs; + double wy = quat[0]*ys; + double wz = quat[0]*zs; + + double xx = quat[1]*xs; + double xy = quat[1]*ys; + double xz = quat[1]*zs; + + double yy = quat[2]*ys; + double yz = quat[2]*zs; + + double zz = quat[3]*zs; + + m00 = 1.0 - (yy + zz); + m22 = 1.0 - (xx + yy); + + + m10 = xy + wz; + + m20 = xz - wy; + m21 = yz + wx; + + euler[0] = atan2(m21,m22); + euler[1] = atan2(-m20,sqrt(m21*m21 + m22*m22)); + euler[2] = atan2(m10,m00); +} + +/** + * converts from Euler angels in the roll pitch yaw system to a quaternion + */ +static inline void RPYEulerQuat(const double *euler, double *quat) +{ + double sphi = sin(euler[0]); + double stheta = sin(euler[1]); + double spsi = sin(euler[2]); + double cphi = cos(euler[0]); + double ctheta = cos(euler[1]); + double cpsi = cos(euler[2]); + + double _r[3][3] = { //create rotational Matrix + {cpsi*ctheta, cpsi*stheta*sphi - spsi*cphi, cpsi*stheta*cphi + spsi*sphi}, + {spsi*ctheta, spsi*stheta*sphi + cpsi*cphi, spsi*stheta*cphi - cpsi*sphi}, + { -stheta, ctheta*sphi, ctheta*cphi} + }; + +#define MY_MAX(a,b) (((a)>(b))?(a):(b)) + double _w = sqrt(MY_MAX(0, 1 + _r[0][0] + _r[1][1] + _r[2][2]))/2.0; + double _x = sqrt(MY_MAX(0, 1 + _r[0][0] - _r[1][1] - _r[2][2]))/2.0; + double _y = sqrt(MY_MAX(0, 1 - _r[0][0] + _r[1][1] - _r[2][2]))/2.0; + double _z = sqrt(MY_MAX(0, 1 - _r[0][0] - _r[1][1] + _r[2][2]))/2.0; + quat[0] = _w; + quat[1] = (_r[2][1] - _r[1][2])>=0?fabs(_x):-fabs(_x); + quat[2] = (_r[0][2] - _r[2][0])>=0?fabs(_y):-fabs(_y); + quat[3] = (_r[1][0] - _r[0][1])>=0?fabs(_z):-fabs(_z); +} + + +inline void transform3(const double *alignxf, double *point) +{ + double x_neu, y_neu, z_neu; + x_neu = point[0] * alignxf[0] + point[1] * alignxf[4] + point[2] * alignxf[8]; + y_neu = point[0] * alignxf[1] + point[1] * alignxf[5] + point[2] * alignxf[9]; + z_neu = point[0] * alignxf[2] + point[1] * alignxf[6] + point[2] * alignxf[10]; + point[0] = x_neu + alignxf[12]; + point[1] = y_neu + alignxf[13]; + point[2] = z_neu + alignxf[14]; +} + +inline void transform3(const double *alignxf, const double *point, double *tpoint) +{ + tpoint[0] = point[0] * alignxf[0] + point[1] * alignxf[4] + point[2] * alignxf[8] + alignxf[12]; + tpoint[1] = point[0] * alignxf[1] + point[1] * alignxf[5] + point[2] * alignxf[9] + alignxf[13]; + tpoint[2] = point[0] * alignxf[2] + point[1] * alignxf[6] + point[2] * alignxf[10] + alignxf[14]; +} + +inline std::string trim(const std::string& source) +{ + unsigned int start = 0, end = source.size() - 1; + while(source[start] == ' ') start++; + while(source[end] == ' ') end--; + return source.substr(start, end - start + 1); +} + +#endif diff --git a/.svn/pristine/f1/f1d76e217e02ea2e0e974be732f416557bc96070.svn-base b/.svn/pristine/f1/f1d76e217e02ea2e0e974be732f416557bc96070.svn-base new file mode 100644 index 0000000..0173ec6 Binary files /dev/null and b/.svn/pristine/f1/f1d76e217e02ea2e0e974be732f416557bc96070.svn-base differ diff --git a/.svn/pristine/f2/f2012ced5071b0a45a023dca3fc1e048bcd89a31.svn-base b/.svn/pristine/f2/f2012ced5071b0a45a023dca3fc1e048bcd89a31.svn-base new file mode 100644 index 0000000..cb26fe0 --- /dev/null +++ b/.svn/pristine/f2/f2012ced5071b0a45a023dca3fc1e048bcd89a31.svn-base @@ -0,0 +1,309 @@ +/* + * icp6Dapx implementation + * + * Copyright (C) Andreas Nuechter + * + * Released under the GPL version 3. + * + */ + + +/** + * @file + * @brief Implementation of the ICP error function minimization via approximation + * @author Andreas Nuechter. Jacobs University Bremen gGmbH, Germany + */ + +#include "slam6d/icp6Dapx.h" + +#include "slam6d/globals.icc" +#include +#include +using std::ios; +using std::resetiosflags; +using std::setiosflags; + +/** + * computes the rotation matrix consisting + * of a rotation and translation that + * minimizes the root-mean-square error + * of the point pairs, using the approximation + * sin(x) = x. + * + * @param Pairs Vector of point pairs (pairs of corresponding points) + * @param alignxf The resulting transformation matrix + * @return Error estimation of the matching (rms) + */ +double icp6D_APX::Point_Point_Align(const vector& Pairs, double *alignxf, + const double centroid_m[3], const double centroid_d[3]) +{ + int n = Pairs.size(); + + // ?!? <= 3 + if (n <= 3) { + M4identity(alignxf); + return 0; + } + + int i; + + double A[3][3]; + double B[3]; + memset(&A[0][0], 0, 9 * sizeof(double)); + memset(&B[0], 0, 3 * sizeof(double)); + + double sum = 0; + double p1[3], p2[3]; + + for (i = 0; i < n; i++) { + p1[0] = Pairs[i].p1.x; + p1[1] = Pairs[i].p1.y; + p1[2] = Pairs[i].p1.z; + p2[0] = Pairs[i].p2.x; + p2[1] = Pairs[i].p2.y; + p2[2] = Pairs[i].p2.z; + + double p12[3] = { p1[0] - p2[0], p1[1] - p2[1], p1[2] - p2[2] }; + double p2c[3] = { p2[0] - centroid_d[0], p2[1] - centroid_d[1], p2[2] - centroid_d[2] }; + + sum += Len2(p12); + + B[0] += (p12[2]*p2c[1] - p12[1]*p2c[2]); + B[1] += (p12[0]*p2c[2] - p12[2]*p2c[0]); + B[2] += (p12[1]*p2c[0] - p12[0]*p2c[1]); + A[0][0] += (sqr(p2c[1]) + sqr(p2c[2])); + A[0][1] -= p2c[0] * p2c[1]; + A[0][2] -= p2c[0] * p2c[2]; + A[1][1] += (sqr(p2c[0]) + sqr(p2c[2])); + A[1][2] -= p2c[1] * p2c[2]; + A[2][2] += (sqr(p2c[0]) + sqr(p2c[1])); + } + + double error = sqrt(sum / n); + if (!quiet) { + cout.setf(ios::basefield); + cout << "APX RMS point-to-point error = " + << resetiosflags(ios::adjustfield) << setiosflags(ios::internal) + << resetiosflags(ios::floatfield) << setiosflags(ios::fixed) + << std::setw(10) << std::setprecision(7) + << error + << " using " << std::setw(6) << (int)Pairs.size() << " points" << endl; + } + + // Solve eqns + double diag[3]; + if (!choldc(A, diag)) { + printf("Couldn't find transform.\n"); + return -1.0; + } + double x[3]; + cholsl(A, diag, B, x); + + // Interpret results + double sx = x[0]; + double cx = sqrt(1.0 - sx*sx); + double sy = x[1]; + double cy = sqrt(1.0 - sy*sy); + double sz = x[2]; + double cz = sqrt(1.0 - sz*sz); + + alignxf[0] = cy*cz; + alignxf[1] = sx*sy*cz + cx*sz; + alignxf[2] = -cx*sy*cz + sx*sz; + alignxf[3] = 0; + alignxf[4] = -cy*sz; + alignxf[5] = -sx*sy*sz + cx*cz; + alignxf[6] = cx*sy*sz + sx*cz; + alignxf[7] = 0; + alignxf[8] = sy; + alignxf[9] = -sx*cy; + alignxf[10] = cx*cy; + alignxf[11] = 0; + alignxf[12] = centroid_m[0] - alignxf[0]*centroid_d[0] - alignxf[4]*centroid_d[1] - alignxf[8]*centroid_d[2]; + alignxf[13] = centroid_m[1] - alignxf[1]*centroid_d[0] - alignxf[5]*centroid_d[1] - alignxf[9]*centroid_d[2]; + alignxf[14] = centroid_m[2] - alignxf[2]*centroid_d[0] - alignxf[6]*centroid_d[1] - alignxf[10]*centroid_d[2]; + alignxf[15] = 1; + + return error; +} + + +double icp6D_APX::Point_Point_Align_Parallel(const int openmp_num_threads, + const unsigned int n[OPENMP_NUM_THREADS], + const double sum[OPENMP_NUM_THREADS], + const double centroid_m[OPENMP_NUM_THREADS][3], + const double centroid_d[OPENMP_NUM_THREADS][3], + const vector pairs[OPENMP_NUM_THREADS], + double *alignxf) + +{ + +#ifdef _OPENMP + + double At[OPENMP_NUM_THREADS][3][3]; + double Bt[OPENMP_NUM_THREADS][3]; + + for (int j=0;j < OPENMP_NUM_THREADS; j++) + for (int k = 0;k < 3; k++) { + for (int l = 0; l < 3; l++) + At[j][k][l] = 0.0; + Bt[j][k] = 0.0; + } + double A[3][3]; + double B[3]; + memset(&A[0][0], 0, 9 * sizeof(double)); + memset(&B[0], 0, 3 * sizeof(double)); + + double s = 0.0; + double error; + unsigned int pairs_size = 0; + double cm[3] = {0.0, 0.0, 0.0}; // centroid m + double cd[3] = {0.0, 0.0, 0.0}; // centroid d + + double cms[3], cds[3]; + for (int i = 0; i < 3; i++) cms[i] = cds[i] = 0.0; + + for (int i = 0; i < openmp_num_threads; i++) { + s += sum[i]; + pairs_size += n[i]; + + // compute centroids for all the pairs + cm[0] += n[i] * centroid_m[i][0]; + cm[1] += n[i] * centroid_m[i][1]; + cm[2] += n[i] * centroid_m[i][2]; + cd[0] += n[i] * centroid_d[i][0]; + cd[1] += n[i] * centroid_d[i][1]; + cd[2] += n[i] * centroid_d[i][2]; + + cms[0] += centroid_m[i][0]; + cms[1] += centroid_m[i][1]; + cms[2] += centroid_m[i][2]; + cds[0] += centroid_d[i][0]; + cds[1] += centroid_d[i][1]; + cds[2] += centroid_d[i][2]; + } + + cm[0] /= pairs_size; + cm[1] /= pairs_size; + cm[2] /= pairs_size; + cd[0] /= pairs_size; + cd[1] /= pairs_size; + cd[2] /= pairs_size; + + error = sqrt(s / (double)pairs_size); + +#pragma omp parallel + { + int thread_num = omp_get_thread_num(); + for (unsigned int i = 0 ; i < (unsigned int)pairs[thread_num].size() ; i++) + { + At[thread_num][0][0] += (pairs[thread_num][i].p2.y - cd[1])*(pairs[thread_num][i].p2.y - cd[1]) + + (pairs[thread_num][i].p2.z - cd[2])*(pairs[thread_num][i].p2.z - cd[2]); + At[thread_num][0][1] -= (pairs[thread_num][i].p2.x - cd[0])*(pairs[thread_num][i].p2.y - cd[1]); + At[thread_num][0][2] -= (pairs[thread_num][i].p2.x - cd[0])*(pairs[thread_num][i].p2.z - cd[2]); + At[thread_num][1][1] += (pairs[thread_num][i].p2.x - cd[0])*(pairs[thread_num][i].p2.x - cd[0]) + + (pairs[thread_num][i].p2.z - cd[2])*(pairs[thread_num][i].p2.z - cd[2]); + At[thread_num][1][2] -= (pairs[thread_num][i].p2.y - cd[1])*(pairs[thread_num][i].p2.z - cd[2]); + At[thread_num][2][2] += (pairs[thread_num][i].p2.x - cd[0])*(pairs[thread_num][i].p2.x - cd[0]) + + (pairs[thread_num][i].p2.y - cd[1])*(pairs[thread_num][i].p2.y - cd[1]); + + Bt[thread_num][0] += (pairs[thread_num][i].p1.z - pairs[thread_num][i].p2.z) + * (pairs[thread_num][i].p2.y - cd[1]) - (pairs[thread_num][i].p1.y - pairs[thread_num][i].p2.y) + * (pairs[thread_num][i].p2.z - cd[2]); + Bt[thread_num][1] += (pairs[thread_num][i].p1.x - pairs[thread_num][i].p2.x) + * (pairs[thread_num][i].p2.z - cd[2]) - (pairs[thread_num][i].p1.z - pairs[thread_num][i].p2.z) + * (pairs[thread_num][i].p2.x - cd[0]); + Bt[thread_num][2] += (pairs[thread_num][i].p1.y - pairs[thread_num][i].p2.y) * + (pairs[thread_num][i].p2.x - cd[0]) - (pairs[thread_num][i].p1.x - pairs[thread_num][i].p2.x) + * (pairs[thread_num][i].p2.y - cd[1]); + } + } + + for (int j = 0;j < OPENMP_NUM_THREADS; j++) + for (int k = 0; k < 3; k++) { + for (int l = 0; l < 3; l++) + A[k][l] += At[j][k][l] ; + B[k] += Bt[j][k]; + } + + // continue with linear solution + + if (!quiet) { + cout.setf(ios::basefield); + cout << "PAPX RMS point-to-point error = " + << resetiosflags(ios::adjustfield) << setiosflags(ios::internal) + << resetiosflags(ios::floatfield) << setiosflags(ios::fixed) + << std::setw(10) << std::setprecision(7) + << error + << " using " << std::setw(6) << pairs_size << " points" << endl; + } + + // Solve eqns + double diag[3]; + if (!choldc(A, diag)) { + printf("Couldn't find transform.\n"); + return -1.0; + } + double x[3]; + cholsl(A, diag, B, x); + + // Interpret results + double sx = x[0]; + double cx = sqrt(1.0 - sx*sx); + double sy = x[1]; + double cy = sqrt(1.0 - sy*sy); + double sz = x[2]; + double cz = sqrt(1.0 - sz*sz); + + alignxf[0] = cy*cz; + alignxf[1] = sx*sy*cz + cx*sz; + alignxf[2] = -cx*sy*cz + sx*sz; + alignxf[3] = 0; + alignxf[4] = -cy*sz; + alignxf[5] = -sx*sy*sz + cx*cz; + alignxf[6] = cx*sy*sz + sx*cz; + alignxf[7] = 0; + alignxf[8] = sy; + alignxf[9] = -sx*cy; + alignxf[10] = cx*cy; + alignxf[11] = 0; + alignxf[12] = cm[0] - alignxf[0]*cd[0] - alignxf[4]*cd[1] - alignxf[8]*cd[2]; + alignxf[13] = cm[1] - alignxf[1]*cd[0] - alignxf[5]*cd[1] - alignxf[9]*cd[2]; + alignxf[14] = cm[2] - alignxf[2]*cd[0] - alignxf[6]*cd[1] - alignxf[10]*cd[2]; + alignxf[15] = 1; + + return error; +#else + cout << "Point_Point_Align_Parallel:"<< endl + << "Please compile with OpenMP support to use this function" << endl; + exit(-1); +#endif +} + + +void icp6D_APX::computeRt(const double *x, const double *dx, double *alignxf) +{ + double sx = x[0]; + double cx = sqrt(1.0 - sx*sx); + double sy = x[1]; + double cy = sqrt(1.0 - sy*sy); + double sz = x[2]; + double cz = sqrt(1.0 - sz*sz); + + alignxf[0] = cy*cz; + alignxf[1] = sx*sy*cz + cx*sz; + alignxf[2] = -cx*sy*cz + sx*sz; + alignxf[3] = 0; + alignxf[4] = -cy*sz; + alignxf[5] = -sx*sy*sz + cx*cz; + alignxf[6] = cx*sy*sz + sx*cz; + alignxf[7] = 0; + alignxf[8] = sy; + alignxf[9] = -sx*cy; + alignxf[10] = cx*cy; + alignxf[11] = 0; + alignxf[12] = dx[0]; + alignxf[13] = dx[1]; + alignxf[14] = dx[2]; + alignxf[15] = 1; +} diff --git a/.svn/pristine/f2/f201e6a61a676209aa2e9a2a38e842f63733d361.svn-base b/.svn/pristine/f2/f201e6a61a676209aa2e9a2a38e842f63733d361.svn-base new file mode 100644 index 0000000..c28969e --- /dev/null +++ b/.svn/pristine/f2/f201e6a61a676209aa2e9a2a38e842f63733d361.svn-base @@ -0,0 +1,285 @@ +/** + * @file + * @brief Implementation of reading 3D scans + * @author Andreas Nuechter. Jacobs University Bremen gGmbH + * @author Jan Elseberg. Smart Systems Group, Jacobs University Bremen gGmbH, Germany. + */ +/* +#include +#include +#include +#include +*/ +#include +#include +#include +#include + + +#include "slam6d/scan_io_rxp.h" +#include "slam6d/scan_io_riegl_project.h" +#include "riegl/scanlib.hpp" +#include "slam6d/globals.icc" +#include +using std::ifstream; +#include +using std::cerr; +using std::endl; + +#include + +#include +using std::swap; + +#ifdef _MSC_VER +#include +#endif + +using namespace scanlib; +using namespace std; +using namespace std::tr1; + +static vector filenames; +static vector eulers; + +static xmlNodePtr srSeekChildNodeNamed(xmlNodePtr p, const char * name){ + if(p == NULL || name == NULL) return NULL; + + for(p=p->children; p!= NULL; p=p->next){ + if(p->name && (strcmp((char*)p->name,name) == 0)){ + return p; + } + } + return NULL; +} + +static void matrixToPos(const char* matrix, double *rPos, double *rPosTheta) { + stringstream ss( stringstream::in | stringstream::out); + ss << matrix; + + double inMatrix[16], tMatrix[16]; + for (int n=0; n<16; n++) + { + ss >> inMatrix[n]; + } + tMatrix[0] = inMatrix[5]; + tMatrix[1] = -inMatrix[9]; + tMatrix[2] = -inMatrix[1]; + tMatrix[3] = -inMatrix[13]; + tMatrix[4] = -inMatrix[6]; + tMatrix[5] = inMatrix[10]; + tMatrix[6] = inMatrix[2]; + tMatrix[7] = inMatrix[14]; + tMatrix[8] = -inMatrix[4]; + tMatrix[9] = inMatrix[8]; + tMatrix[10] = inMatrix[0]; + tMatrix[11] = inMatrix[12]; + tMatrix[12] = -inMatrix[7]; + tMatrix[13] = inMatrix[11]; + tMatrix[14] = inMatrix[3]; + tMatrix[15] = inMatrix[15]; + + Matrix4ToEuler(tMatrix, rPosTheta, rPos); + rPos[0] *= 100; + rPos[1] *= 100; + rPos[2] *= 100; +} + +static int getPaths(const char* filename) { + double rPos[3]; + double rPosTheta[3]; + xmlDocPtr doc; + xmlXPathContextPtr xpathCtx; + xmlXPathObjectPtr xpathObj; + const xmlChar* names = BAD_CAST "/project/scanpositions/scanposition"; + + /* Load XML document */ + doc = xmlParseFile(filename); + if (doc == NULL) { + fprintf(stderr, "Error: unable to parse file \"%s\"\n", filename); + return(-1); + } + + /* Create xpath evaluation context */ + xpathCtx = xmlXPathNewContext(doc); + if(xpathCtx == NULL) { + fprintf(stderr,"Error: unable to create new XPath context\n"); + xmlFreeDoc(doc); + return(-1); + } + + /* Evaluate xpath expression */ + xpathObj = xmlXPathEvalExpression(names, xpathCtx); + + // parse the scanpositions + xmlNodeSetPtr nodes = xpathObj->nodesetval; + int size; + int iter; + + size = (nodes) ? nodes->nodeNr : 0; + + for(iter = 0; iter < size; iter++) { + xmlNodePtr position = nodes->nodeTab[iter]; + xmlNodePtr name = srSeekChildNodeNamed(position, "name"); + xmlNodePtr singlescans = srSeekChildNodeNamed(position, "singlescans"); + xmlNodePtr scan = srSeekChildNodeNamed(singlescans, "scan"); + xmlNodePtr file = srSeekChildNodeNamed(scan, "file"); + + xmlNodePtr sop = srSeekChildNodeNamed(position, "sop"); + xmlNodePtr matrix = srSeekChildNodeNamed(sop, "matrix"); + + + char FILEN[1024]; + char POSITIONN[1024]; + char MATRIX[1024]; + + if (file != 0 && name != 0 && matrix != 0) { + sprintf(POSITIONN, "%s", xmlNodeGetContent(name )); + sprintf(FILEN, "%s", xmlNodeGetContent(file )); + sprintf(MATRIX, "%s", xmlNodeGetContent(matrix)); + + // compute pose + double *euler = new double[6]; + matrixToPos(MATRIX, rPos, rPosTheta); + for (unsigned int i = 0; i < 3; i++) euler[i] = rPos[i]; + for (unsigned int i = 0; i < 3; i++) euler[i+3] = rPosTheta[i]; + eulers.push_back(euler); + + // put together filename + string filename = ""; + filename = "SCANS/" + (string)POSITIONN + "/SINGLESCANS/" + (string)FILEN + ""; + //cout << rPos[0] << " " << rPos[1] << " " << rPos[2] << " " << filename << endl; + cout << "Project Scan " << filename << " is mapped to index " << iter << endl; + filenames.push_back(filename); + } + + + + + } + + + + /* Cleanup of XPath data */ + xmlXPathFreeObject(xpathObj); + xmlXPathFreeContext(xpathCtx); + + /* free the document */ + xmlFreeDoc(doc); + + return(0); +} + + +/** + * Reads specified scans from given directory in + * the file format Riegl Laser Measurement GmbH + * uses. It will be compiled as shared lib. + * + * Scan poses will NOT be initialized after a call + * to this function. Initial pose estimation works + * only with the -p switch, i.e., trusting the initial + * estimations by Riegl. + * + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param dir The directory from which to read + * @param maxDist Reads only Points up to this Distance + * @param minDist Reads only Points from this Distance + * @param euler Initital pose estimates (will not be applied to the points + * @param ptss Vector containing the read points + */ +int ScanIO_riegl_project::readScans(int start, int end, string &dir, int maxDist, int minDist, + double *euler, vector &ptss) +{ + static int fileCounter = start; + + // very first call to readScans... + if (fileCounter == start) { + // parse riegl projects xml file + string xmlFileName = dir + "project.rsp"; + + getPaths(xmlFileName.c_str()); + + } + string scanFileName; + string poseFileName; + + if (end > -1 && fileCounter > end) return -1; // 'nuf read + + + scanFileName = "file://" + dir + filenames[fileCounter]; + + // read 3D scan + + cout << "Processing Scan " << scanFileName; + cout.flush(); + + + + for (unsigned int i = 0; i <= 5; i++) euler[i] = eulers[fileCounter][i]; + + cout << " @ pose (" << euler[0] << "," << euler[1] << "," << euler[2] + << "," << deg(euler[3]) << "," << deg(euler[4]) << "," << deg(euler[5]) << ")" << endl; + + // open scanfile + std::tr1::shared_ptr rc; + rc = basic_rconnection::create(scanFileName); + rc->open(); + + // decoder splits the binary file into readable chunks + decoder_rxpmarker dec(rc); + // importer interprets the chunks + importer imp(&ptss, maxDist, minDist); + + // iterate over chunks + buffer buf; + for ( dec.get(buf); !dec.eoi(); dec.get(buf) ) { + imp.dispatch(buf.begin(), buf.end()); + } + + //done + rc->close(); + + + fileCounter++; + + return fileCounter-1; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_riegl_project; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/.svn/pristine/f2/f2467a74ad3a4d2c1eefa6515a622d5239956a2e.svn-base b/.svn/pristine/f2/f2467a74ad3a4d2c1eefa6515a622d5239956a2e.svn-base new file mode 100644 index 0000000..6f957ce --- /dev/null +++ b/.svn/pristine/f2/f2467a74ad3a4d2c1eefa6515a622d5239956a2e.svn-base @@ -0,0 +1,113 @@ +/**************************************************************************** + + GLUI User Interface Toolkit + --------------------------- + + glui_statictext.cpp - GLUI_StaticText Control + + + -------------------------------------------------- + + Copyright (c) 1998 Paul Rademacher + + This program is freely distributable without licensing fees and is + provided without guarantee or warrantee expressed or implied. This + program is -not- in the public domain. + +*****************************************************************************/ + +#include "glui.h" +#include "stdinc.h" + +/****************************** GLUI_StaticText::draw() **********/ + +void GLUI_StaticText::draw( int x, int y ) +{ + int orig; + + if ( NOT can_draw() ) + return; + + orig = set_to_glut_window(); + + draw_text(); + + restore_window( orig ); +} + + +/****************************** GLUI_StaticText::set_text() **********/ + +void GLUI_StaticText::set_text( char *text ) +{ + int orig; + + /**** Erase old text first *****/ + glMatrixMode( GL_MODELVIEW ); + glPushMatrix(); + translate_to_origin(); + erase_text(); + glPopMatrix(); + + set_name( text ); + + if ( NOT can_draw() ) + return; + + orig = set_to_glut_window(); + /**** Redraw the text in the window ****/ + glMatrixMode( GL_MODELVIEW ); + glPushMatrix(); + translate_to_origin(); + draw_text(); + glPopMatrix(); + + restore_window( orig ); +} + + +/************************************ GLUI_StaticText::update_size() **********/ + +void GLUI_StaticText::update_size( void ) +{ + int text_size; + + if ( NOT glui ) + return; + + text_size = string_width( name ); + + if ( w < text_size ) + w = text_size; +} + + +/****************************** GLUI_StaticText::draw_text() **********/ + +void GLUI_StaticText::draw_text( void ) +{ + if ( NOT can_draw() ) + return; + + erase_text(); + draw_name( 0, 9 ); +} + + +/****************************** GLUI_StaticText::erase_text() **********/ + +void GLUI_StaticText::erase_text( void ) +{ + if ( NOT can_draw() ) + return; + + set_to_bkgd_color(); + glDisable( GL_CULL_FACE ); + glBegin( GL_TRIANGLES ); + glVertex2i( 0,0 ); glVertex2i( w, 0 ); glVertex2i( w, h ); + glVertex2i( 0, 0 ); glVertex2i( w, h ); glVertex2i( 0, h ); + glEnd(); +} + + + diff --git a/.svn/pristine/f3/f33703cbb6053f625e652daf442f083252e3f393.svn-base b/.svn/pristine/f3/f33703cbb6053f625e652daf442f083252e3f393.svn-base new file mode 100644 index 0000000..036c110 --- /dev/null +++ b/.svn/pristine/f3/f33703cbb6053f625e652daf442f083252e3f393.svn-base @@ -0,0 +1,243 @@ +/** + * @file + * @brief Representation of a 3D point type + * @author Jan Elsberg. Automation Group, Jacobs University Bremen gGmbH, Germany. + */ + +#ifndef __POINT_TYPE_H__ +#define __POINT_TYPE_H__ + +#include "point.h" +#include "data_types.h" + +#include +using std::string; +#include +using std::cout; +using std::cerr; +using std::endl; + +#include +#include +#include + +class Scan; + + + +class PointType { +public: + + static const unsigned int USE_NONE; + static const unsigned int USE_REFLECTANCE; + static const unsigned int USE_AMPLITUDE; + static const unsigned int USE_DEVIATION; + static const unsigned int USE_HEIGHT; + static const unsigned int USE_TYPE; + static const unsigned int USE_COLOR; + static const unsigned int USE_TIME; + static const unsigned int USE_INDEX; + + PointType(); + + PointType(unsigned int _types); + + bool hasReflectance(); + bool hasAmplitude(); + bool hasDeviation(); + bool hasType(); + bool hasColor(); + bool hasTime(); + bool hasIndex(); + + unsigned int getReflectance(); + unsigned int getAmplitude(); + unsigned int getDeviation(); + unsigned int getTime(); + unsigned int getIndex(); + unsigned int getType(); + unsigned int getType(unsigned int type); + + + unsigned int getPointDim(); + + static PointType deserialize(std::ifstream &f); + + void serialize(std::ofstream &f); + unsigned int toFlags() const; + + template + T *createPoint(const Point &P, unsigned int index=0); + + template + Point createPoint(T *p); + + //! Aquire DataPointer objects from \a scan, determined by its types + void useScan(Scan* scan); + + //! Release the DataPointer objects + void clearScan(); + + //! Create a point with attributes via the DataPointers from the scan + template + T* createPoint(unsigned int i, unsigned int index = 0); + + //! Create an array with coordinate+attribute array per point with transfer of ownership + template + T** createPointArray(Scan* scan); + +private: + /** + * collection of flags + */ + unsigned int types; + /** + * Derived from types: 3 spatial dimensions + 1 for each flag set + **/ + unsigned int pointdim; + + /** + * Stores the size of each point in bytes + **/ + unsigned int pointbytes; + + /** + * Derived from types, to map type to the array index for each point + **/ + int dimensionmap[8]; + + bool hasType(unsigned int type); + + unsigned int getScanSize(Scan* scan); + + DataXYZ* m_xyz; + DataRGB* m_rgb; + DataReflectance* m_reflectance; + DataAmplitude* m_amplitude; + DataType* m_type; + DataDeviation* m_deviation; +}; + + +template +T *PointType::createPoint(const Point &P, unsigned int index ) { + unsigned int counter = 0; + + T *p = new T[pointdim]; + p[counter++] = P.x; + p[counter++] = P.y; + p[counter++] = P.z; + if (types & USE_REFLECTANCE) { + p[counter++] = P.reflectance; + } + if (types & USE_AMPLITUDE) { + p[counter++] = P.amplitude; + } + if (types & USE_DEVIATION) { + p[counter++] = P.deviation; + } + if (types & USE_TYPE) { + p[counter++] = P.type; + } + if (types & USE_COLOR) { + memcpy(&p[counter], P.rgb, 3); + counter++; + } + if (types & USE_TIME) { +// p[counter++] = P.timestamp; + } + if (types & USE_INDEX) { + p[counter++] = index; + } + + return p; +} + +template +Point PointType::createPoint(T *p) { + Point P; + unsigned int counter = 0; + + P.x = p[counter++]; + P.y = p[counter++]; + P.z = p[counter++]; + if (types & USE_REFLECTANCE) { + P.reflectance = p[counter++]; + } + if (types & USE_AMPLITUDE) { + P.amplitude = p[counter++]; + } + if (types & USE_DEVIATION) { + P.deviation = p[counter++]; + } + if (types & USE_TYPE) { + P.type = p[counter++]; + } + if (types & USE_COLOR) { + memcpy(P.rgb, &p[counter], 3); + counter++; + } + if (types & USE_TIME) { +// P.timestamp = p[counter++]; + } + + return P; +} + +template +T *PointType::createPoint(unsigned int i, unsigned int index) { + unsigned int counter = 0; + T* p = new T[pointdim]; + + for(unsigned int j = 0; j < 3; ++j) + p[counter++] = (*m_xyz)[i][j]; + + // if a type is requested try to write the value if the scan provided one + if (types & USE_REFLECTANCE) { + p[counter++] = (m_reflectance? (*m_reflectance)[i]: 0); + } + if (types & USE_AMPLITUDE) { + p[counter++] = (m_amplitude? (*m_amplitude)[i]: 0); + } + if (types & USE_DEVIATION) { + p[counter++] = (m_deviation? (*m_deviation)[i]: 0); + } + if (types & USE_TYPE) { + p[counter++] = (m_type? (*m_type)[i]: 0); + } + if (types & USE_COLOR) { + if(m_rgb) + memcpy(&p[counter], (*m_rgb)[i], 3); + else + p[counter] = 0; + counter++; + } + if (types & USE_TIME) { + } + if (types & USE_INDEX) { + p[counter++] = index; + } + + return p; +} + +template +T** PointType::createPointArray(Scan* scan) +{ + // access data with prefetching + useScan(scan); + + // create a float array with requested attributes by pointtype via createPoint + unsigned int nrpts = getScanSize(scan); + T** pts = new T*[nrpts]; + for(unsigned int i = 0; i < nrpts; i++) { + pts[i] = createPoint(i); + } + + // unlock access to data, remove unneccessary data fields + clearScan(); + + return pts; +} + +#endif diff --git a/.svn/pristine/f3/f36d5fed1ab8322e62725cae2ac52ef887a76ae0.svn-base b/.svn/pristine/f3/f36d5fed1ab8322e62725cae2ac52ef887a76ae0.svn-base new file mode 100644 index 0000000..3411acd --- /dev/null +++ b/.svn/pristine/f3/f36d5fed1ab8322e62725cae2ac52ef887a76ae0.svn-base @@ -0,0 +1,36 @@ +/** + * @file + * @brief IO of 3D scans in Zoller+Froehlich file format + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SCAN_IO_ZUF_H__ +#define __SCAN_IO_ZUF_H__ + +#include +using std::string; +#include +using std::vector; + +#include "scan_io.h" + +/** + * @brief 3D scan loader for Riegl scans + * + * The compiled class is available as shared object file + */ +class ScanIO_zuf : public ScanIO { +public: + virtual int readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss); +}; + +// Since this shared object file is loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/.svn/pristine/f3/f3997f49e5b64d30d27a6d47200d97372414e72d.svn-base b/.svn/pristine/f3/f3997f49e5b64d30d27a6d47200d97372414e72d.svn-base new file mode 100644 index 0000000..2d07280 --- /dev/null +++ b/.svn/pristine/f3/f3997f49e5b64d30d27a6d47200d97372414e72d.svn-base @@ -0,0 +1,533 @@ +/* +This is a Optical-Character-Recognition program +Copyright (C) 2000-2009 Joerg Schulenburg + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + see README for EMAIL-address + + v0.1.0 initial version (stdin added) + v0.2.0 popen added + v0.2.7 review by Bruno Barberi Gnecco + v0.39 autoconf + v0.41 fix integer and heap overflow, change color output + v0.46 fix blank spaces problem in filenames + */ + +#include +#include +#include +#include +#ifdef HAVE_UNISTD_H +/* #include */ +#endif + +/* Windows needs extra code to work fine, ^Z in BMP's will stop input else. + * I do not have any idea when this text mode will be an advantage + * but the MS community seems to like to do simple things in a complex way. */ +#if defined(O_BINARY) && (defined(__WIN32) || defined(__WIN32__)\ + || defined(__WIN64) || defined(__WIN64__) || defined(__MSDOS__)) +# include +# define SET_BINARY(_f) do {if (!isatty(_f)) setmode (_f, O_BINARY);} while (0) +#else +# define SET_BINARY(f) (void)0 +#endif + +#include "pnm.h" +#ifdef HAVE_PAM_H +# include +# include +# include +# include +#else +# include +#endif + +#define EE() fprintf(stderr,"\nERROR "__FILE__" L%d: ",__LINE__) +#define E0(x0) {EE();fprintf(stderr,x0 "\n"); } +#define F0(x0) {EE();fprintf(stderr,x0 "\n"); exit(1);} +#define F1(x0,x1) {EE();fprintf(stderr,x0 "\n",x1); exit(1);} + +/* + * Weights to use for the different colours when converting a ppm + * to greyscale. These weights should sum to 1.0 + * + * The below values have been chosen to reflect the fact that paper + * goes a reddish-yellow as it ages. + * + * v0.41: for better performance, we use integer instead of double + * this integer value divided by 1024 (2^10) gives the factor + */ +#define PPM_RED_WEIGHT 511 /* .499 */ +#define PPM_GREEN_WEIGHT 396 /* .387 */ +#define PPM_BLUE_WEIGHT 117 /* .114 */ + +/* + feel free to expand this list of usable converting programs + Note 1: the last field must be NULL. + Note 2: "smaller" extensions must come later: ".pnm.gz" must come + before ".pnm". + calling external programs is a security risk + ToDo: for better security replace gzip by /usr/bin/gzip ! + */ +char *xlist[]={ + ".pnm.gz", "gzip -cd", /* compressed pnm-files, gzip package */ + ".pbm.gz", "gzip -cd", + ".pgm.gz", "gzip -cd", + ".ppm.gz", "gzip -cd", + ".pnm.bz2", "bzip2 -cd", + ".pbm.bz2", "bzip2 -cd", + ".pgm.bz2", "bzip2 -cd", + ".ppm.bz2", "bzip2 -cd", + ".jpg", "djpeg -gray -pnm", /* JPG/JPEG, jpeg package */ + ".jpeg", "djpeg -gray -pnm", + ".gif", "giftopnm -image=all", /* GIF, netpbm package */ + ".bmp", "bmptoppm", + ".tiff", "tifftopnm", + ".png", "pngtopnm", /* Portable Network Graphics (PNG) format */ + ".ps", "pstopnm -stdout -portrait -pgm", /* postscript */ + ".eps", "pstopnm -stdout -portrait -pgm", /* encapsulated postscript */ + /* gs -sDEVICE=pgmraw -sOutputFile=- -g609x235 -r141x141 -q -dNOPAUSE */ + ".fig", "fig2dev -L ppm -m 3", /* xfig files, transfig package */ + NULL +}; + +/* return a pointer to command converting file to pnm or NULL */ +char *testsuffix(char *name){ + int i; char *rr; + + for(i = 0; xlist[i] != NULL; i += 2 ) { + if((rr=strstr(name, xlist[i])) != NULL) + if(strlen(rr)==strlen(xlist[i])) /* handle *.eps.pbm correct */ + return xlist[i+1]; + } + return NULL; +} + + +char read_char(FILE *f1){ // filter #-comments + char c; + int m; + for(m=0;;){ + c=fgetc(f1); + if( feof(f1) ) E0("read feof"); + if( ferror(f1) ) F0("read ferror"); + if( c == '#' ) { m = 1; continue; } + if( m == 0 ) return c; + if( c == '\n' ) m = 0; + } +} + + +/* + for simplicity only PAM of netpbm is used, the older formats + PBM, PGM and PPM can be handled implicitly by PAM routines (js05) + v0.43: return 1 if multiple file (hold it open), 0 otherwise + */ +#ifdef HAVE_PAM_H +int readpgm(char *name, pix * p, int vvv) { + static FILE *fp=NULL; + static char *pip; + char magic1, magic2; + int i, j, sample, minv = 0, maxv = 0, eofP=0; + struct pam inpam; + tuple *tuplerow; + + assert(p); + + if (!fp) { // fp!=0 for multi-pnm and idx>0 + /* open file; test if conversion is needed. */ + if (name[0] == '-' && name[1] == '\0') { + fp = stdin; + SET_BINARY (fileno(fp)); // Windows needs it for correct work + } + else { + pip = testsuffix(name); + if (!pip) { + fp = fopen(name, "rb"); + if (!fp) + F1("opening file %s", name); + } + else { + char *buf = (char *)malloc((strlen(pip)+strlen(name)+4)); + sprintf(buf, "%s \"%s\"", pip, name); /* allow spaces in filename */ + if (vvv) { + fprintf(stderr, "# popen( %s )\n", buf); + } +#ifdef HAVE_POPEN + /* potential security vulnerability, if name contains tricks */ + /* example: gunzip -c dummy | rm -rf * */ + /* windows needs "rb" for correct work, linux not, cygwin? */ + /* ToDo: do you have better code to go arround this? */ +#if defined(__WIN32) || defined(__WIN32__) || defined(__WIN64) || defined(__WIN64__) + fp = popen(buf, "rb"); /* ToDo: may fail, please report */ + if (!fp) fp = popen(buf, "r"); /* 2nd try, the gnu way */ +#else + fp = popen(buf, "r"); +#endif +#else + F0("sorry, compile with HAVE_POPEN to use pipes"); +#endif + if (!fp) + F1("opening pipe %s", buf); + free(buf); + } + } + } + + /* netpbm 0.10.36 tries to write a comment to nonzero char** comment_p */ + /* patch by C.P.Schmidt 21Nov06 */ + memset (&inpam, 0, sizeof(inpam)); + + /* read pgm-header */ + /* struct pam may change between netpbm-versions, causing problems? */ +#ifdef PAM_STRUCT_SIZE /* ok for netpbm-10.35 */ + /* new-and-better? but PAM_STRUCT_SIZE is not defined in netpbm-10.18 */ + pnm_readpaminit(fp, &inpam, PAM_STRUCT_SIZE(tuple_type)); +#else /* ok for netpbm-10.18 old-and-bad for new netpbms */ + pnm_readpaminit(fp, &inpam, sizeof(inpam)); +#endif + + p->x = inpam.width; + p->y = inpam.height; + magic1=(inpam.format >> 8) & 255; /* 'P' for PNM,PAM */ + magic2=(inpam.format ) & 255; /* '7' for PAM */ + minv=inpam.maxval; + if (vvv) { + fprintf(stderr, "# readpam: format=0x%04x=%c%c h*w(d*b)=%d*%d(%d*%d)\n", + inpam.format, /* magic1*256+magic2 */ + ((magic1>31 && magic1<127)?magic1:'.'), + ((magic2>31 && magic2<127)?magic2:'.'), + inpam.height, + inpam.width, + inpam.depth, + inpam.bytes_per_sample); + } + if ( (1.*(p->x*p->y))!=((1.*p->x)*p->y) ) + F0("Error integer overflow"); + if ( !(p->p = (unsigned char *)malloc(p->x*p->y)) ) + F1("Error at malloc: p->p: %d bytes", p->x*p->y); + tuplerow = pnm_allocpamrow(&inpam); + for ( i=0; i < inpam.height; i++ ) { + pnm_readpamrow(&inpam, tuplerow); /* exit on error */ + for ( j = 0; j < inpam.width; j++ ) { + if (inpam.depth>=3) + /* tuplerow is unsigned long (see pam.h sample) */ + /* we expect 8bit or 16bit integers, + no overflow up to 32-10-2=20 bits */ + sample + = ((PPM_RED_WEIGHT * tuplerow[j][0] + 511)>>10) + + ((PPM_GREEN_WEIGHT * tuplerow[j][1] + 511)>>10) + + ((PPM_BLUE_WEIGHT * tuplerow[j][2] + 511)>>10); + else + sample = tuplerow[j][0]; + sample = 255 * sample / inpam.maxval; /* normalize to 8 bit */ + p->p[i*inpam.width+j] = sample; + if (maxvsample) minv=sample; + } + } + pnm_freepamrow(tuplerow); + pnm_nextimage(fp,&eofP); + if (vvv) + fprintf(stderr,"# readpam: min=%d max=%d eof=%d\n", minv, maxv, eofP); + p->bpp = 1; + if (eofP) { + if (!pip) fclose(fp); +#ifdef HAVE_POPEN + else pclose(fp); /* close pipe (v0.43) */ +#endif + fp=NULL; return 0; + } + return 1; /* multiple image = concatenated pnm */ +} + +#else +/* + if PAM not installed, here is the fallback routine, + which is not so powerful but needs no dependencies from other libs + */ +static int fread_num(char *buf, int bps, FILE *f1) { + int mode, j2, j3; char c1; + for (j2=0;j2>=8; + } + buf[0] += c1-'0'; + } + return 0; +} + +/* + * read image file, used to read the OCR-image and database images, + * image file can be PBM/PGM/PPM in RAW or TEXT + * name: filename of image (input) + * p: pointer where to store the loaded image (input) + * vvv: verbose mode (input) + * return: 0=ok, 1=further image follows (multiple image), -1 on error + * this is the fall back routine if libpnm cant be used + */ +int readpgm( char *name, pix *p, int vvv){ + static char c1, c2; /* magic bytes, file type */ + static char *pip; // static to survive multiple calls + int nx,ny,nc,mod,i,j; // buffer + static FILE *f1=NULL; // trigger read new file or multi image file + unsigned char *pic; + char buf[512]; + int lx, ly, dx; + int bps=1; /* bytes per sample (0..255..65535...) */ + + if (!f1) { /* first of multiple image, on MultipleImageFiles c1 was read */ + pip=NULL; + if (name[0]=='-' && name[1]==0) { + f1=stdin; /* is this correct ??? */ + SET_BINARY (fileno(f1)); // Windows needs it for correct work + } else { + pip=testsuffix(name); + if (!pip) { + f1=fopen(name,"rb"); if (!f1) F1("opening file %s",name); + } else { + sprintf(buf,"%s \"%s\"",pip,name); /* ToDo: how to prevent OVL ? */ + if (vvv) { fprintf(stderr,"# popen( %s )\n",buf); } +#ifdef HAVE_POPEN +#if defined(__WIN32) || defined(__WIN32__) || defined(__WIN64) || defined(__WIN64__) + f1 = popen(buf, "rb"); /* ToDo: may fail, please report */ + if (!f1) f1 = popen(buf, "r"); /* 2nd try, the gnu way */ +#else + f1=popen(buf,"r"); +#endif +#else + F0("only PNM files supported (compiled without HAVE_POPEN)"); +#endif + if (!f1) F1("opening pipe %s",buf); + } + } + c1=fgetc(f1); if (feof(f1)) { E0("unexpected EOF"); return -1; } + } + c2=fgetc(f1); if (feof(f1)) { E0("unexpected EOF"); return -1; } + // check the first two bytes of the PNM file + // PBM PGM PPM + // TXT P1 P2 P3 + // RAW P4 P5 P6 + if (c1!='P' || c2 <'1' || c2 >'6') { + fprintf(stderr,"\nread-PNM-error: file number is %2d," + " position %ld", fileno(f1), ftell(f1)); + fprintf(stderr,"\nread-PNM-error: bad magic bytes, expect 0x50 0x3[1-6]" + " but got 0x%02x 0x%02x", 255&c1, 255&c2); + if (f1) fclose(f1); f1=NULL; return(-1); + } + nx=ny=nc=0; if (c2=='4' || c2=='1') nc=1; + for(mod=0;((c2=='5' || c2=='2') && (mod&7)<6) + || ((c2=='6' || c2=='3') && (mod&7)<6) + || ((c2=='4' || c2=='1') && (mod&7)<4);) + { // mode: 0,2,4=[ |\t|\r|\n] + // 1=nx 3=ny 5=nc 8-13=#rem + c1=read_char(f1); // former: # mod|=8 + if( (mod & 1)==0 ) // whitespaces + if( !isspace(c1) ) mod++; + if( (mod & 1)==1 ) { + if( !isdigit(c1) ) { + if( !isspace(c1) )F0("unexpected character"); + mod++; } + else if(mod==1) nx=nx*10+c1-'0'; + else if(mod==3) ny=ny*10+c1-'0'; + else if(mod==5) nc=nc*10+c1-'0'; + } + } + if(vvv) + fprintf(stderr,"# PNM P%c h*w=%d*%d c=%d head=%ld",c2,ny,nx,nc,ftell(f1)); + if( c2=='4' && (nx&7)!=0 ){ + /* nx=(nx+7)&~7;*/ if(vvv)fprintf(stderr," PBM2PGM nx %d",(nx+7)&~7); + } + if (nc>> 8) bps=2; // bytes per color and pixel + if (nc>>16) bps=3; + if (nc>>24) bps=4; + fflush(stdout); + if ( (1.*(nx*ny))!=((1.*nx)*ny) ) + F0("Error integer overflow"); + pic=(unsigned char *)malloc( nx*ny ); + if(pic==NULL)F0("memory failed"); // no memory + for (i=0;i>10) + + ((PPM_GREEN_WEIGHT * (unsigned char)buf[2*bps-1] + 511)>>10) + + ((PPM_BLUE_WEIGHT * (unsigned char)buf[3*bps-1] + 511)>>10); + /* normalized to 0..255 */ + } + } + if( c2=='1' ) + for(mod=j=i=0,nc=255;i>3,ny,f1))F0("read"); // read all bytes + for(ly=ny-1;ly>=0;ly--) + for(lx=nx-1;lx>=0;lx--) + pic[lx+ly*nx]=( (128 & (pic[(lx+ly*dx)>>3]<<(lx & 7))) ? 0 : 255 ); + nc=255; + } + { + int minc=255, maxc=0; + for (i=0;imaxc) maxc=pic[i]; + if (pic[i]p=pic; p->x=nx; p->y=ny; p->bpp=1; + if (vvv) fprintf(stderr,"\n"); + c1=0; c1=fgetc(f1); /* needed to trigger feof() */ + if (feof(f1) || c1!='P') { /* EOF ^Z or not 'P' -> single image */ + if (vvv) fprintf(stderr,"# PNM EOF\n"); + if(name[0]!='-' || name[1]!=0){ /* do not close stdin */ + if(!pip) fclose(f1); +#ifdef HAVE_POPEN + else pclose(f1); /* close pipe (Jul00) */ +#endif + } + f1=NULL; /* set file is closed flag */ + return 0; + } + return 1; /* multiple image = concatenated pnm's */ +} +#endif /* HAVE_PAM_H */ + +int writepgm(char *nam,pix *p){// P5 raw-pgm + FILE *f1;int a,x,y; + f1=fopen(nam,"wb");if(!f1)F0("open"); // open-error + fprintf(f1,"P5\n%d %d\n255\n",p->x,p->y); + if(p->bpp==3) + for(y=0;yy;y++) + for(x=0;xx;x++){ // set bit + a=x+y*p->x; + p->p[a]=(p->p[3*a+0]+p->p[3*a+1]+p->p[3*a+2])/3; + } + if(p->y!=(int)fwrite(p->p,p->x,p->y,f1))F0("write"); // write all lines + fclose(f1); + return 0; +} + +/* adding colours, care about range */ +void addrgb(unsigned char rgb[3], int sr, int sg, int sb) { + int add[3], i; + /* add colour on dark pixels, subtract on white pixels */ + add[0]=2*sr; add[1]=2*sg; add[2]=2*sb; + if (((int)rgb[0])+((int)rgb[1])+((int)rgb[2])>=3*160) + { add[0]=(-sg-sb); add[1]=(-sr-sb); add[2]=(-sr-sg); } // rgb/2? + /* care about colour range */ + for (i=0;i<3;i++) + if (add[i]<0) rgb[i]-=(( rgb[i]<-add[i])? rgb[i]:-add[i]); + else rgb[i]+=((255-rgb[i]< add[i])?255-rgb[i]: add[i]); +} +/* + * pgmtoppm or pnmtopng, use last 3 bits for farbcoding + * replaces old writebmp variant + */ +int writeppm(char *nam, pix *p){ /* P6 raw-ppm */ + FILE *f1=NULL; int x,y,f1t=0; unsigned char rgb[3], gray, bits; + char buf[128]; + if (strchr(nam,'|')) return -1; /* no nasty code */ + if (strstr(nam,".ppm")) { f1=fopen(nam,"wb"); } +#ifdef HAVE_POPEN + /* be sure that nam contains hacker code like "dummy | rm -rf *" */ + if (!f1) { + strncpy(buf,"pnmtopng > ",12); /* no spaces within filenames allowed! */ + strncpy(buf+11,nam,111); buf[123]=0; + strncpy(buf+strlen(buf),".png",5); + /* we dont care about win "wb" here, never debug on win systems */ + f1 = popen(buf, "w"); if(f1) f1t=1; else E0("popen pnmtopng"); + } + if (!f1) { + strncpy(buf,"gzip -c > ",11); + strncpy(buf+10,nam,109); buf[120]=0; + strncpy(buf+strlen(buf),".ppm.gz",8); + /* we dont care about win "wb" here, never debug on win systems */ + f1 = popen(buf, "w"); if(f1) f1t=1; else E0("popen gzip -c"); + } +#endif + if (!f1) { + strncpy(buf,nam,113); buf[114]=0; + strncpy(buf+strlen(buf),".ppm",5); + f1=fopen(buf,"wb"); + } + if (!f1) F0("open"); /* open-error */ + fprintf(f1,"P6\n%d %d\n255\n",p->x,p->y); + if ( p->bpp==1 ) + for (y=0;yy;y++) + for (x=0;xx;x++){ + gray=p->p[x+y*p->x]; + bits=(gray&0x0F); /* save marker bits */ + /* replace used bits to get max. contrast, 160=0xA0 */ + gray = ((gray<160) ? (gray&~0x0F)>>1 : 0xC3|(gray>>1) ); + rgb[0] = rgb[1] = rgb[2] = gray; + if ((bits & 1)==1) { addrgb(rgb,0,0,8+8*((x+y)&1)); } /* dark blue */ + if ((bits & 8)==8) { addrgb(rgb,0,0, 16); } /* blue (low priority) */ + if ((bits & 6)==6) { addrgb(rgb,0,0, 32); } /* blue */ + if ((bits & 6)==4) { addrgb(rgb,0,48,0); } /* green */ + if ((bits & 6)==2) { addrgb(rgb,32,0,0); } /* red */ + if ( 1!=(int)fwrite(rgb,3,1,f1) ) { E0("write"); y=p->y; break; } + } + if ( p->bpp==3 ) + if ( p->y!=(int)fwrite(p->p,3*p->x,p->y,f1) ) E0("write"); +#ifdef HAVE_POPEN + if (f1t) { pclose (f1); f1=NULL; } +#endif + if (f1) fclose(f1); + return 0; +} + +// high bit = first, +int writepbm(char *nam,pix *p){// P4 raw-pbm + FILE *f1;int x,y,a,b,dx,i; + dx=(p->x+7)&~7; // enlarge to a factor of 8 + for(y=0;yy;y++) + for(x=0;xx;x++){ // set bit + a=(x+y*dx)>>3;b=7-(x&7); // adress an bitisnumber + i=x+y*p->x; + if(p->bpp==3) i=(p->p[3*i+0]+p->p[3*i+1]+p->p[3*i+2])/3; + else i= p->p[ i ]; + i=((i>127)?0:1); + p->p[a]=(p->p[a] & (~1<x,p->y); + if(p->y!=(int)fwrite(p->p,dx>>3,p->y,f1))F0("write"); // write all lines + fclose(f1); + return 0; +} +// ------------------------------------------------------------------------ diff --git a/.svn/pristine/f3/f39c13d0debd57fa9165d6cf81a90423a6d87aff.svn-base b/.svn/pristine/f3/f39c13d0debd57fa9165d6cf81a90423a6d87aff.svn-base new file mode 100644 index 0000000..1363a60 --- /dev/null +++ b/.svn/pristine/f3/f39c13d0debd57fa9165d6cf81a90423a6d87aff.svn-base @@ -0,0 +1,79 @@ +// ===================================================================================== +// +// Filename: scan_ransac.h +// +// Description: +// +// Version: 1.0 +// Created: 09/27/2010 01:21:49 PM +// Revision: none +// Compiler: g++ +// +// Author: Jan Elseberg (), jelseber@uos.de +// Company: Universitaet Osnabrueck +// +// ===================================================================================== + +#ifndef __SCAN_RANSAC_H__ +#define __SCAN_RANSAC_H__ + + +#include +#include "numbers.h" + +void *dummy(void *); + +class NumberDetector { + public: + vector *scan_points; + + NumberDetector(vector *points, const char *number_topic, bool _visualize) : visualize(_visualize) { + //number_publisher = n.advertise(number_topic, 10); + //marker_publisher = n.advertise("Marker_array", 10); + + scan_points = points; +/* + sn.set_numbers_size(10); + sn.set_board_p_size(10); + sn.set_char_p_size(10); + sn.set_angle_size(10); +*/ + for (unsigned int i = 0; i < 10; i++) { + detectedNumbers[i] = numberConsensus(i); + /* + sn.numbers[i].header.frame_id = "/map"; + sn.board_p[i] = 0; + sn.char_p[i] = 0; + sn.angle[i] = 0; + */ + } + + running = true; + ransac_thread = new pthread_t(); + pthread_create( ransac_thread, NULL, dummy , (void*)this); + } + + ~NumberDetector() { + running = false; + pthread_join(*ransac_thread, NULL); + + } + + void RANSAC(vector &scan_points); + private: + bool FindNumber(vector &points, double plane[4]); + void printNumbers(); + + pthread_t *ransac_thread; + numberConsensus detectedNumbers[10]; +// sickday::StampedNumbers sn; + + bool visualize; + bool running; +}; + + + + + +#endif diff --git a/.svn/pristine/f3/f3d07d6fd1844fb609b1520fee0191e1b31cc4d0.svn-base b/.svn/pristine/f3/f3d07d6fd1844fb609b1520fee0191e1b31cc4d0.svn-base new file mode 100644 index 0000000..8fe69ef --- /dev/null +++ b/.svn/pristine/f3/f3d07d6fd1844fb609b1520fee0191e1b31cc4d0.svn-base @@ -0,0 +1,27 @@ +/** + * @file + * @brief IO of a 3D scan in uos file format + * @author Thomas Escher + */ + +#ifndef __SCAN_IO_KS_RGB_H__ +#define __SCAN_IO_KS_RGB_H__ + +#include "scan_io.h" + + + +/** + * @brief 3D scan loader for KS RGB scans + * + * The compiled class is available as shared object file + */ +class ScanIO_ks_rgb : public ScanIO { +public: + virtual std::list readDirectory(const char* dir_path, unsigned int start, unsigned int end); + virtual void readPose(const char* dir_path, const char* identifier, double* pose); + virtual void readScan(const char* dir_path, const char* identifier, PointFilter& filter, std::vector* xyz, std::vector* rgb, std::vector* reflectance, std::vector* amplitude, std::vector* type, std::vector* deviation); + virtual bool supports(IODataType type); +}; + +#endif diff --git a/.svn/pristine/f4/f4410a526ca7b7b1ae591a9b2aba2bb08ea8784e.svn-base b/.svn/pristine/f4/f4410a526ca7b7b1ae591a9b2aba2bb08ea8784e.svn-base new file mode 100644 index 0000000..5bdc319 --- /dev/null +++ b/.svn/pristine/f4/f4410a526ca7b7b1ae591a9b2aba2bb08ea8784e.svn-base @@ -0,0 +1,47 @@ +ANN: Approximate Nearest Neighbors +Version: 1.1.1 +Release Date: Aug 4, 2006 +---------------------------------------------------------------------------- +Copyright (c) 1997-2005 University of Maryland and Sunil Arya and David +Mount All Rights Reserved. + +This program is free software; you can redistribute it and/or modify it +under the terms of the GNU Lesser Public License as published by the +Free Software Foundation; either version 2.1 of the License, or (at your +option) any later version. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Lesser Public License for more details. + +A copy of the terms and conditions of the license can be found in +License.txt or online at + + http://www.gnu.org/copyleft/lesser.html + +To obtain a copy, write to the Free Software Foundation, Inc., +59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +Disclaimer +---------- +The University of Maryland and the authors make no representations about +the suitability or fitness of this software for any purpose. It is +provided "as is" without express or implied warranty. +--------------------------------------------------------------------- + +Authors +------- +David Mount +Dept of Computer Science +University of Maryland, +College Park, MD 20742 USA +mount@cs.umd.edu +http://www.cs.umd.edu/~mount/ + +Sunil Arya +Dept of Computer Science +Hong University of Science and Technology +Clearwater Bay, HONG KONG +arya@cs.ust.hk +http://www.cs.ust.hk/faculty/arya/ diff --git a/.svn/pristine/f4/f4804ce45241c3da4b45f1b58b006c047ee7667a.svn-base b/.svn/pristine/f4/f4804ce45241c3da4b45f1b58b006c047ee7667a.svn-base new file mode 100644 index 0000000..3b7e6a0 --- /dev/null +++ b/.svn/pristine/f4/f4804ce45241c3da4b45f1b58b006c047ee7667a.svn-base @@ -0,0 +1,100 @@ +/** + * @file fbr_global.h + * @brief Globally used headers, functions, structures + * @author HamidReza Houshiar. Jacobs University Bremen gGmbH, Germany. + * @date 2012/05/9 14:00 + */ + +#ifndef FBR_GLOBAL_H_ +#define FBR_GLOBAL_H_ + +#include +#include +#include +#include +#include +#include +#include "slam6d/io_types.h" +#include "slam6d/globals.icc" + +using namespace std; + +namespace fbr{ + + //Vertical angle of view of scanner +#define MAX_ANGLE 60.0 +#define MIN_ANGLE -40.0 + + /** + * @enum projection_method + */ + enum projection_method{ + EQUIRECTANGULAR, + CYLINDRICAL, + MERCATOR, + RECTILINEAR, + PANNINI, + STEREOGRAPHIC, + ZAXIS, + }; + /** + * @enum panorama_map_method + */ + enum panorama_map_method{ + FARTHEST, + EXTENDED, + }; + /** + * @enum feature_method + */ + enum feature_detector_method{ + SIFT_DET, + SURF_DET, + ORB_DET, + FAST_DET, + STAR_DET, + }; + enum feature_descriptor_method{ + SIFT_DES, + SURF_DES, + ORB_DES, + }; + /** + * @enum matching_method + */ + enum matcher_method{ + BRUTEFORCE, + FLANN, + KNN, + RADIUS, + RATIO, + }; + /** + * @enum registration_method + */ + enum registration_method{ + ALL, + RANSAC, + DISABLE, + }; + //RANSAC iteration +#define RANSACITR 20000 + //Inlier influence +#define iInfluence 0.5 + + string scanFormatToString(IOType format); + IOType stringToScanFormat(string format); + string projectionMethodToString(projection_method method); + projection_method stringToProjectionMethod(string method); + string panoramaMapMethodToString(panorama_map_method method); + panorama_map_method stringToPanoramaMapMethod(string method); + string featureDetectorMethodToString(feature_detector_method method); + feature_detector_method stringToFeatureDetectorMethod(string method); + string featureDescriptorMethodToString(feature_descriptor_method method); + feature_descriptor_method stringToFeatureDescriptorMethod(string method); + string matcherMethodToString(matcher_method method); + matcher_method stringToMatcherMethod(string method); + string registrationMethodToString(registration_method method); + registration_method stringToRegistrationMethod(string method); +} +#endif /* FBR_GLOBAL_H_ */ diff --git a/.svn/pristine/f4/f4ba4c126bc87e2ca8c5bea2991b35eff9c567a0.svn-base b/.svn/pristine/f4/f4ba4c126bc87e2ca8c5bea2991b35eff9c567a0.svn-base new file mode 100644 index 0000000..927027b --- /dev/null +++ b/.svn/pristine/f4/f4ba4c126bc87e2ca8c5bea2991b35eff9c567a0.svn-base @@ -0,0 +1,271 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.svn/pristine/f5/f53abef50cf6236de7d3ec8c2f832a1e7c35845a.svn-base b/.svn/pristine/f5/f53abef50cf6236de7d3ec8c2f832a1e7c35845a.svn-base new file mode 100644 index 0000000..3b41b0c --- /dev/null +++ b/.svn/pristine/f5/f53abef50cf6236de7d3ec8c2f832a1e7c35845a.svn-base @@ -0,0 +1,32 @@ +/** + * @file + * @brief IO of a 3D scan in velodyne raw file format + * @author Liwei. Computer School of Wuhan University, China. + */ + +#ifndef __SCAN_IO_VELODYNE_H__ +#define __SCAN_IO_VELODYNE_H__ + +#include +using std::string; +#include +using std::vector; + +#include "scan_io.h" + +/** + * @brief 3D scan loader for VELODYNE scans + * + * The compiled class is available as shared object file + */ +class ScanIO_velodyne : public ScanIO { +public: + virtual std::list readDirectory(const char* dir_path, unsigned int start, unsigned int end); + virtual void readPose(const char* dir_path, const char* identifier, double* pose); + virtual void readScan(const char* dir_path, const char* identifier, PointFilter& filter, std::vector* xyz, std::vector* rgb, std::vector* reflectance, std::vector* amplitude, std::vector* type, std::vector* deviation); + virtual bool supports(IODataType type); + + int fileCounter; +}; + +#endif diff --git a/.svn/pristine/f5/f5950faa0a86da548e5702b487ca7b926abebc5b.svn-base b/.svn/pristine/f5/f5950faa0a86da548e5702b487ca7b926abebc5b.svn-base new file mode 100644 index 0000000..e20459d --- /dev/null +++ b/.svn/pristine/f5/f5950faa0a86da548e5702b487ca7b926abebc5b.svn-base @@ -0,0 +1,980 @@ +/* + * veloscan implementation + * + * Copyright (C) Andreas Nuechter, Li Wei, Li Ming + * + * Released under the GPL version 3. + * + */ + +/** + * @file + * @brief Implementation of a 3D scan and of 3D scan matching in all variants + * @author Li Wei, Wuhan University, China + * @author Li Ming, Wuhan University, China + * @author Andreas Nuechter. Jacobs University Bremen, Germany + */ + +#ifdef _MSC_VER +#ifdef OPENMP +#define _OPENMP +#endif +#endif + +#include +using std::ifstream; +using std::ofstream; + +#include +using std::cout; +using std::cerr; +using std::endl; + +#include +using std::stringstream; + +#include "veloslam/veloscan.h" + +#ifdef _OPENMP +#include +#endif + +#ifdef _MSC_VER +#include +#else +#include +#endif + +#ifdef _MSC_VER +#define strcasecmp _stricmp +#define strncasecmp _strnicmp +#else +#include +#endif + +#include +using std::flush; + +#include "slam6d/Boctree.h" +#include "veloslam/veloscan.h" +#include "veloslam/pcddump.h" +#include "veloslam/trackermanager.h" +#include "veloslam/clusterboundingbox.h" + +#ifdef _OPENMP +#include +#endif + +#ifdef _MSC_VER +#include +#else +#include +#endif + +#ifdef _MSC_VER +#define strcasecmp _stricmp +#define strncasecmp _strnicmp +#else +#include +#endif + +#include +using std::flush; + +#include +#include + +#ifdef _MSC_VER +#include +#else +#include +#endif +#include "veloslam/velodefs.h" +#include "veloslam/color_util.h" + +int scanCount =0; +TrackerManager trackMgr; +float absf(float a) +{ + return a>0?a:-a; +} + +Trajectory::Trajectory() +{ + +} + + +/** + * default Constructor + */ +VeloScan::VeloScan() + : Scan() +{ + isTrackerHandled =false; +} + +/** + * Desctuctor + */ +VeloScan::~VeloScan() +{ + FreeAllCellAndCluterMemory(); +} + +int VeloScan::DeletePoints() +{ + FreeAllCellAndCluterMemory(); + return 0; +} + +/** + * Copy constructor + */ +VeloScan::VeloScan(const VeloScan& s) + : Scan(s) +{ } + +int VeloScan::TransferToCellArray(int maxDist, int minDist) +{ +#define DefaultColumnSize 360 + Point P; + DataXYZ xyz(get("xyz")); + int size= xyz.size(); + + int columnSize= 360; //cfg.cfgPlaneDetect.ColumnSize; + int CellSize= 50; //cfg.cfgPlaneDetect.CellSize; + + int MinRad=minDist; //cfg.cfgPlaneDetect.MinRad; + int MaxRad=maxDist; //cfg.cfgPlaneDetect.MaxRad + + if((MaxRad-MinRad)%CellSize!=0) + CellSize=10; + + int i,j,count=0; + int CellNumber=(MaxRad-MinRad)/CellSize; + float flag; + int offset; + + if(columnSize==0) + return -1; + + if(columnSize%360!=0) + columnSize=DefaultColumnSize; + + int sectionSize=columnSize/8; + + scanCellArray.resize(columnSize); + for(i=0; i tanv; + vector::iterator result; + + for(i=0; i=MaxRad) + continue; + + // some point losted which on the vline or hline + if(pt.x >=0 && pt.z>=0 ) + { + if(pt.x > pt.z) + { + flag= pt.tan_theta; + result=upper_bound(tanv.begin(),tanv.end(),flag); + if(result==tanv.end()) + { + offset=sectionSize-1; + } + else + { + offset=result-tanv.begin(); + } + } + else + { + flag=1/pt.tan_theta; + result=upper_bound(tanv.begin(),tanv.end(),flag); + if(result==tanv.end()) + { + offset=sectionSize; + } + else + { + diff=result-tanv.begin(); + offset=sectionSize*2-1-(diff); + } + + } + } + + else if(pt.x <= 0 && pt.z >=0) + { + if(-pt.x>pt.z) + { + flag=-pt.tan_theta; + result=upper_bound(tanv.begin(),tanv.end(),flag); + if(result==tanv.end()) + { + offset=sectionSize*3; + } + else + { + offset=sectionSize*4-1-(result-tanv.begin()); + } + + } + else + { + flag=1/-pt.tan_theta; + result=upper_bound(tanv.begin(),tanv.end(),flag); + if(result==tanv.end()) + { + offset=sectionSize*3-1; + } + else + { + offset=sectionSize*2+(result-tanv.begin()); + } + } + } + + else if(pt.x<=0 && pt.z<=0) + { + if(-pt.x>-pt.z) + { + flag=pt.tan_theta; + result=upper_bound(tanv.begin(),tanv.end(),flag); + if(result==tanv.end()) + { + offset=sectionSize*5-1; + } + else + { + offset=sectionSize*4+(result-tanv.begin()); + } + } + else + { + flag=1/pt.tan_theta; + result=upper_bound(tanv.begin(),tanv.end(),flag); + if(result==tanv.end()) + { + offset=sectionSize*5; + } + else + { + offset=sectionSize*6-1-(result-tanv.begin()); + } + + } + } + + else if(pt.x>=0&&pt.z<=0) + { + if(pt.x>-pt.z) + { + flag=-pt.tan_theta; + result=upper_bound(tanv.begin(),tanv.end(),flag); + if(result==tanv.end()) + { + offset=sectionSize*7; + } + else + { + offset=sectionSize*8-1-(result-tanv.begin()); + } + } + else + { + flag=1/-pt.tan_theta; + result=upper_bound(tanv.begin(),tanv.end(),flag); + if(result==tanv.end()) + { + offset=sectionSize*7-1; + } + else + { + offset=sectionSize*6+(result-tanv.begin()); + } + } + } + + else + { + continue; + } + + int k= (int)((pt.rad-MinRad)/(CellSize*1.0)); + scanCellArray[offset][k].push_back(&pt); + } + return 0; +} + + + +int VeloScan::CalcCellFeature(cell& cellobj, cellFeature& f) +{ + int outlier; + float lastMaxY; + f.size=cellobj.size(); + f.cellType=0; + + if(f.size==0) + { + f.cellType|=CELL_TYPE_INVALID; + return 0; + } + + f.ave_x= f.ave_y = f.ave_z=0.0; + f.delta_y=0; + + int i=0; + for(i=0; ix; + f.ave_z+=cellobj[i]->z; + f.ave_y+=cellobj[i]->y; + + // if(cellobj[i]->type & POINT_TYPE_BELOW_R) + // f.cellType |=CELL_TYPE_BELOW_R; + + if(i==0) + { + outlier=0; + f.min_x=f.max_x=cellobj[i]->x; + f.min_z=f.max_z=cellobj[i]->z; + lastMaxY=f.min_y=f.max_y=cellobj[i]->y; + } + else + { + if(f.max_xx) f.max_x=cellobj[i]->x; + + if(f.min_x>cellobj[i]->x) f.min_x=cellobj[i]->x; + + if(f.max_zz) f.max_z=cellobj[i]->z; + + if(f.min_z>cellobj[i]->z) f.min_z=cellobj[i]->z; + + if(f.max_yy) + { + lastMaxY=f.max_y; + f.max_y=cellobj[i]->y; + outlier=i; + } + + if(f.min_y>cellobj[i]->y) + f.min_y=cellobj[i]->y; + + } + } + + if(f.size>1) + { + int y=f.ave_y-cellobj[outlier]->y; + y/=(f.size-1)*1.0; + + if(cellobj[outlier]->y-y<50) + { + outlier=-1; + f.ave_y/=f.size*1.0; + } + else + { + f.max_y=lastMaxY; + f.ave_y=y; + } + } + else + { + outlier=-1; + f.ave_y/=f.size*1.0; + } + + f.ave_x/=f.size*1.0; + f.ave_z/=f.size*1.0; + + for(i=0; iy - f.ave_y); + } + + float threshold; + threshold=f.delta_y; + + float GridThresholdGroundDetect =120; + if( threshold > GridThresholdGroundDetect) + f.cellType =CELL_TYPE_STATIC; + else + f.cellType =CELL_TYPE_GROUND; + + return 0; +} + + +int VeloScan::CalcScanCellFeature() +{ + int i,j; + + if( scanCellArray.size()==0) + return -1; + + int columnSize=scanCellArray.size(); + int cellNumber=scanCellArray[0].size(); + + if( scanCellFeatureArray.size()==0) + { + scanCellFeatureArray.resize(columnSize); + for(i=0; i 120) +// { +// scanCellFeatureArray[j][i].cellType |= CELL_TYPE_STATIC; +// for(int k=0;k type |= POINT_TYPE_ABOVE_DELTA_Y; +// +// } + + } + } + + return 0; +} + +int VeloScan::SearchNeigh(cluster& clu,charvv& flagvv,int i,int j) +{ + int columnSize=scanCellArray.size(); + int cellNumber=scanCellArray[0].size(); + + if(i==-1) + i= columnSize-1; + + if(i==columnSize) + i= 0; + + + if(i<0||i>=columnSize||j<0||j>=cellNumber) + return 0; + + if(flagvv[i][j]==1) + return 0; + if(scanCellFeatureArray[i][j].size==0) + { + flagvv[i][j]=1; + return 0; + } + + if(scanCellFeatureArray[i][j].cellType & CELL_TYPE_STATIC) + { + flagvv[i][j]=1; + + clu.push_back(&scanCellFeatureArray[i][j]); + + SearchNeigh(clu,flagvv,i-1,j-1); + SearchNeigh(clu,flagvv,i-1,j); + SearchNeigh(clu,flagvv,i-1,j+1); + SearchNeigh(clu,flagvv,i,j-1); + SearchNeigh(clu,flagvv,i,j+1); + SearchNeigh(clu,flagvv,i+1,j-1); + SearchNeigh(clu,flagvv,i+1,j); + SearchNeigh(clu,flagvv,i+1,j+1); + + SearchNeigh(clu,flagvv,i,j+2); + SearchNeigh(clu,flagvv,i,j-2); + SearchNeigh(clu,flagvv,i+2,j); + SearchNeigh(clu,flagvv,i-2,j); + + //SearchNeigh(clu,flagvv,i,j+3); + //SearchNeigh(clu,flagvv,i,j-3); + //SearchNeigh(clu,flagvv,i+3,j); + //SearchNeigh(clu,flagvv,i-3,j); + } + + return 0; +} + +int VeloScan::CalcClusterFeature(cluster& clu, clusterFeature& f) +{ + f.size=clu.size(); + + if(f.size==0) + { + return 0; + } + + f.clusterType=0; + f.pointNumber=0; + + f.avg_x =0; f.avg_y=0; f.avg_z=0; + + int i=0; + for(i=0; iave_x; + f.avg_y += clu[i]->ave_y; + f.avg_z += clu[i]->ave_z; + + if(i==0) + { + f.min_x=f.max_x=clu[i]->min_x; + f.min_z=f.max_z=clu[i]->min_z; + f.min_y=f.max_y=clu[i]->min_y; + } + else + { + if(f.max_xmax_x) + f.max_x=clu[i]->max_x; + + if(f.min_x>clu[i]->min_x) + f.min_x=clu[i]->min_x; + + if(f.max_zmax_z) + f.max_z=clu[i]->max_z; + + if(f.min_z>clu[i]->min_z) + f.min_z=clu[i]->min_z; + + if(f.max_ymax_y) + f.max_y=clu[i]->max_y; + + if(f.min_y>clu[i]->min_y) + f.min_y=clu[i]->min_y; + + } + f.pointNumber+=clu[i]->size; + f.theta += clu[i]->size*clu[i]->columnID; + f.radius += clu[i]->size*clu[i]->cellID; + } + + f.size_x=f.max_x-f.min_x; + f.size_z=f.max_z-f.min_z; + f.size_y=f.max_y-f.min_y; + + f.avg_x /= f.size; + f.avg_y /= f.size; + f.avg_z /= f.size; + + f.theta=f.theta / (f.pointNumber*1.0); + f.radius=f.radius / (f.pointNumber*1.0); + + return 0; +} + +int VeloScan::FindAndCalcScanClusterFeature() +{ + int i,j; + + if( scanCellArray.size()==0) + return -1; + + int columnSize=scanCellArray.size(); + int cellNumber=scanCellArray[0].size(); + + charvv searchedFlag; + searchedFlag.resize(columnSize); + for(i=0; i *oct = new BOctTree(PointerArray(xyz_t).get(), + xyz_t.size(), reduction_voxelSize, reduction_pointtype); + + vector center; + center.clear(); + + if (reduction_nrpts > 0) { + if (reduction_nrpts == 1) { + oct->GetOctTreeRandom(center); + } else { + oct->GetOctTreeRandom(center, reduction_nrpts); + } + } else { + oct->GetOctTreeCenter(center); + } + + // storing it as reduced scan + unsigned int size = center.size(); + DataXYZ xyz_r(create("xyz reduced", sizeof(double)*3*size)); + for(unsigned int i = 0; i < size; ++i) { + for(unsigned int j = 0; j < 3; ++j) { + xyz_r[i][j] = center[i][j]; + } + } + + delete oct; +} + +bool findBusCluster(clusterFeature &glu, cluster &gluData) +{ + /* double labelSVM; + for(int i=0;i<360;i++) + { + nod[i].index=i+1; + nod[i].value=intersectionFeature[i].slashLength/slashMaxLength; + } + nod[360].index=-1; + labelSVM= svm_predict(m,nod); + + ofstream output; + output.open("intersection.txt"); + output<<"labelSVM:"<0.5) + cout<<"intersection"< 800 || glu.size_z > 800 ) + { + return false; + } + return true; + // no filter + + //char filename[256]; + //string file; + //sprintf(filename,"c:\\filename%d.txt", objcount); + //file =filename; + //DumpPointtoFile(gluData, file); + //DumpFeaturetoFile(glu, "c:\\feature"); + //objcount++; +} + +//long objcount =0; +// In one scans find which the more like moving object such as pedestrian, car, bus. +bool FindMovingObjcets(clusterFeature &glu, cluster &gluData) +{ + // for debug moving object detections. + + if( glu.size_y > 200 && ((glu.size_x>glu.size_y?glu.size_x:glu.size_y))<360) + { + return false; + } + else if((glu.size_y>350 && glu.size_x<140)|| (glu.size_x>350 && glu.size_y<140)) + { + return false; + } + else if(glu.size_y > 250 ) + { + return false; + } + else if((glu.size_x>glu.size_y?glu.size_x:glu.size_y)>420 && glu.size_z<130) + { + return false; + } + else if((glu.size_x>glu.size_y?glu.size_x:glu.size_y)>3.5 + && ((glu.size_x>glu.size_y?glu.size_x:glu.size_y)/(glu.size_x4)) + { + return false; + } + else if(glu.size_x<700 && glu.size_z<700 && glu.size_y > 100 ) + { + return true; + } + if(glu.size_x>1500 || glu.size_z>1500 || glu.size_x*glu.size_z >600*600 ) + { + return false; + } + if (glu.size_x*glu.size_z > 500*500 && glu.size_x/glu.size_z < 1.5) + { + return false; + } + if(glu.size_y < 100) + { + return false; + } + if((glu.size_x + glu.size_y + glu.size_z)<1.5) + { + return false; + } + if(glu.size_z>700) + { + return false; + } + if(glu.size_x>700) + { + return false; + } + if(( glu.size_x + glu.size_z) <4) + { + return false; + } + if( glu.size_x/glu.size_z> 3.0) + { + return false; + } + + return true; +} + + +// bi classification for distigushed the moving or static +void VeloScan::ClassifiAllObject() +{ + int i,j; + int clustersize=scanClusterArray.size(); + + //Find moving Ojbects + for(i=0; isize(); + cell &gCell =*( gcellFreature.pCell); + + for( k=0; k< gcellFreature.pCell->size();++k) + { + // find Point in scan raw points by point_id; + Point p = *(gCell[k]); + if(gcellFreature.cellType & CELL_TYPE_STATIC) + Pt[p.point_id] = POINT_TYPE_STATIC_OBJECT; + if(gcellFreature.cellType & CELL_TYPE_MOVING) + Pt[p.point_id] = POINT_TYPE_MOVING_OBJECT; + if(gcellFreature.cellType & CELL_TYPE_GROUND) + Pt[p.point_id] = POINT_TYPE_GROUND; + } + + } + } +} + +void VeloScan::FindingAllofObject(int maxDist, int minDist) +{ + TransferToCellArray(maxDist, minDist); + CalcScanCellFeature(); + FindAndCalcScanClusterFeature(); + + return; + } + + +void VeloScan::TrackingAllofObject(int trackingAlgo) +{ + trackMgr.HandleScan(*this,trackingAlgo); + } + +void VeloScan::ClassifiAllofObject() +{ + ClassifiAllObject(); + } + +void VeloScan::ExchangePointCloud() +{ + MarkStaticorMovingPointCloud(); + return; + } diff --git a/.svn/pristine/f5/f5ab2bbd50dc2ab4cf98b901dc3ad06a9d485f95.svn-base b/.svn/pristine/f5/f5ab2bbd50dc2ab4cf98b901dc3ad06a9d485f95.svn-base new file mode 100644 index 0000000..429bf21 --- /dev/null +++ b/.svn/pristine/f5/f5ab2bbd50dc2ab4cf98b901dc3ad06a9d485f95.svn-base @@ -0,0 +1,50 @@ +/** + * @file feature_matcher.h + * @brife matches two sets of features + * This class is a feature matcher that findes the matching features. + * It determines the matching features from two sets of feature descriptors and features. + * @author HamidReza Houshiar. Jacobs University Bremen gGmbH, Germany. + * @date Date: 2012/05/29 2:00 + */ + +#ifndef FEATURE_MATCHER_H_ +#define FEATURE_MATCHER_H_ + +#include "fbr_global.h" +#include "feature.h" + +namespace fbr{ + /** + * @class feature_mathcer : match features that has same descriptor method. + * @param matches set of matched features + * @param mMethod matcher_method + * @param knn incase of knn search indecate the number of nearest neighbors + * @param radius incase of radius search indicates the radius of the search + * @param nOfMatches number of matches after the first step + * @param nOfFilteredMatches number of matches after the filteration + */ + class feature_matcher{ + vector matches; + matcher_method mMethod; + unsigned int knn; + double radius; + unsigned int nOfMatches; + unsigned int nOfFilteredMatches; + + void init(matcher_method method, int k, double r); + + public: + feature_matcher(); + feature_matcher(matcher_method method); + feature_matcher(matcher_method method, double p); + void match(feature qFeature, feature tFeature); + vector getMatches(); + matcher_method getMatcherMethod(); + unsigned int getKnn(); + double getRadius(); + unsigned int getNumberOfMatches(); + unsigned int getNumberOfFilteredMatches(); + void getDescription(); + }; +} +#endif /* FEATURE_MATCHER_H_ */ diff --git a/.svn/pristine/f5/f5ac826635c96cb9d47dc7e86ac484d61253ac48.svn-base b/.svn/pristine/f5/f5ac826635c96cb9d47dc7e86ac484d61253ac48.svn-base new file mode 100644 index 0000000..4e69843 --- /dev/null +++ b/.svn/pristine/f5/f5ac826635c96cb9d47dc7e86ac484d61253ac48.svn-base @@ -0,0 +1,207 @@ + +#define WANT_STREAM + + + +#include "include.h" + +#include "newmat.h" + +#include "tmt.h" + +#ifdef use_namespace +using namespace NEWMAT; +#endif + + +/**************************** test program ******************************/ + + +void trymat1() +{ +// cout << "\nFirst test of Matrix package\n\n"; + Tracer et("First test of Matrix package"); + Tracer::PrintTrace(); + { + Tracer et1("Stage 1"); + int i,j; + + LowerTriangularMatrix L(10); + for (i=1;i<=10;i++) for (j=1;j<=i;j++) L(i,j)=2.0+i*i+j; + SymmetricMatrix S(10); + for (i=1;i<=10;i++) for (j=1;j<=i;j++) S(i,j)=i*j+1.0; + SymmetricMatrix S1 = S / 2.0; + S = S1 * 2.0; + UpperTriangularMatrix U=L.t()*2.0; + Print(LowerTriangularMatrix(L-U.t()*0.5)); + DiagonalMatrix D(10); + for (i=1;i<=10;i++) D(i,i)=(i-4)*(i-5)*(i-6); + Matrix M=(S+U-D+L)*(L+U-D+S); + DiagonalMatrix DD=D*D; + LowerTriangularMatrix LD=L*D; + // expressions split for Turbo C + Matrix M1 = S*L + U*L - D*L + L*L + 10.0; + { M1 = M1 + S*U + U*U - D*U + L*U - S*D; } + { M1 = M1 - U*D + DD - LD + S*S; } + { M1 = M1 + U*S - D*S + L*S - 10.0; } + M=M1-M; + Print(M); + } + { + Tracer et1("Stage 2"); + int i,j; + + LowerTriangularMatrix L(9); + for (i=1;i<=9;i++) for (j=1;j<=i;j++) L(i,j)=1.0+j; + UpperTriangularMatrix U1(9); + for (j=1;j<=9;j++) for (i=1;i<=j;i++) U1(i,j)=1.0+i; + LowerTriangularMatrix LX(9); + for (i=1;i<=9;i++) for (j=1;j<=i;j++) LX(i,j)=1.0+i*i; + UpperTriangularMatrix UX(9); + for (j=1;j<=9;j++) for (i=1;i<=j;i++) UX(i,j)=1.0+j*j; + { + L=L+LX/0.5; L=L-LX*3.0; L=LX*2.0+L; + U1=U1+UX*2.0; U1=U1-UX*3.0; U1=UX*2.0+U1; + } + + + SymmetricMatrix S(9); + for (i=1;i<=9;i++) for (j=1;j<=i;j++) S(i,j)=i*i+j; + { + SymmetricMatrix S1 = S; + S=S1+5.0; + S=S-3.0; + } + + DiagonalMatrix D(9); + for (i=1;i<=9;i++) D(i,i)=S(i,i); + UpperTriangularMatrix U=L.t()*2.0; + { + U1=U1*2.0 - U; Print(U1); + L=L*2.0-D; U=U-D; + } + Matrix M=U+L; S=S*2.0; M=S-M; Print(M); + } + { + Tracer et1("Stage 3"); + int i,j; + Matrix M(10,3), N(10,3); + for (i = 1; i<=10; i++) for (j = 1; j<=3; j++) + { M(i,j) = 2*i-j; N(i,j) = i*j + 20; } + Matrix MN = M + N, M1; + + M1 = M; M1 += N; M1 -= MN; Print(M1); + M1 = M; M1 += M1; M1 = M1 - M * 2; Print(M1); + M1 = M; M1 += N * 2; M1 -= (MN + N); Print(M1); + M1 = M; M1 -= M1; Print(M1); + M1 = M; M1 -= MN + M1; M1 += N + M; Print(M1); + M1 = M; M1 -= 5; M1 -= M; M1 *= 0.2; M1 = M1 + 1; Print(M1); + Matrix NT = N.t(); + M1 = M; M1 *= NT; M1 -= M * N.t(); Print(M1); + M = M * M.t(); + DiagonalMatrix D(10); D = 2; + M1 = M; M1 += D; M1 -= M; M1 = M1 - D; Print(M1); + M1 = M; M1 -= D; M1 -= M; M1 = M1 + D; Print(M1); + M1 = M; M1 *= D; M1 /= 2; M1 -= M; Print(M1); + SymmetricMatrix SM; SM << M; + // UpperTriangularMatrix SM; SM << M; + SM += 10; M1 = SM - M; M1 /=10; M1 = M1 - 1; Print(M1); + } + { + Tracer et1("Stage 4"); + int i,j; + Matrix M(10,3), N(10,5); + for (i = 1; i<=10; i++) for (j = 1; j<=3; j++) M(i,j) = 2*i-j; + for (i = 1; i<=10; i++) for (j = 1; j<=5; j++) N(i,j) = i*j + 20; + Matrix M1; + M1 = M; M1 |= N; M1 &= N | M; + M1 -= (M | N) & (N | M); Print(M1); + M1 = M; M1 |= M1; M1 &= M1; + M1 -= (M | M) & (M | M); Print(M1); + + } + { + Tracer et1("Stage 5"); + int i,j; + BandMatrix BM1(10,2,3), BM2(10,4,1); Matrix M1(10,10), M2(10,10); + for (i=1;i<=10;i++) for (j=1;j<=10;j++) + { M1(i,j) = 0.5*i+j*j-50; M2(i,j) = (i*101 + j*103) % 13; } + BM1.Inject(M1); BM2.Inject(M2); + BandMatrix BM = BM1; BM += BM2; + Matrix M1X = BM1; Matrix M2X = BM2; Matrix MX = BM; + MX -= M1X + M2X; Print(MX); + MX = BM1; MX += BM2; MX -= M1X; MX -= M2X; Print(MX); + SymmetricBandMatrix SM1; SM1 << BM1 * BM1.t(); + SymmetricBandMatrix SM2; SM2 << BM2 * BM2.t(); + SM1 *= 5.5; + M1X *= M1X.t(); M1X *= 5.5; M2X *= M2X.t(); + SM1 -= SM2; M1 = SM1 - M1X + M2X; Print(M1); + M1 = BM1; BM1 *= SM1; M1 = M1 * SM1 - BM1; Print(M1); + M1 = BM1; BM1 -= SM1; M1 = M1 - SM1 - BM1; Print(M1); + M1 = BM1; BM1 += SM1; M1 = M1 + SM1 - BM1; Print(M1); + + } + { + Tracer et1("Stage 6"); + int i,j; + Matrix M(10,10), N(10,10); + for (i = 1; i<=10; i++) for (j = 1; j<=10; j++) + { M(i,j) = 2*i-j; N(i,j) = i*j + 20; } + GenericMatrix GM = M; + GM += N; Matrix M1 = GM - N - M; Print(M1); + DiagonalMatrix D(10); D = 3; + GM = D; GM += N; GM += M; GM += D; + M1 = D*2 - GM + M + N; Print(M1); + GM = D; GM *= 4; GM += 16; GM /= 8; GM -= 2; + GM -= D / 2; M1 = GM; Print(M1); + GM = D; GM *= M; GM *= N; GM /= 3; M1 = M*N - GM; Print(M1); + GM = D; GM |= M; GM &= N | D; M1 = GM - ((D | M) & (N | D)); + Print(M1); + GM = M; M1 = M; GM += 5; GM *= 3; M *= 3; M += 15; M1 = GM - M; + Print(M1); + D.ReSize(10); for (i = 1; i<=10; i++) D(i) = i; + M1 = D + 10; GM = D; GM += 10; M1 -= GM; Print(M1); + GM = M; GM -= D; M1 = GM; GM = D; GM -= M; M1 += GM; Print(M1); + GM = M; GM *= D; M1 = GM; GM = D; GM *= M.t(); + M1 -= GM.t(); Print(M1); + GM = M; GM += 2 * GM; GM -= 3 * M; M1 = GM; Print(M1); + GM = M; GM |= GM; GM -= (M | M); M1 = GM; Print(M1); + GM = M; GM &= GM; GM -= (M & M); M1 = GM; Print(M1); + M1 = M; M1 = (M1.t() & M.t()) - (M | M).t(); Print(M1); + M1 = M; M1 = (M1.t() | M.t()) - (M & M).t(); Print(M1); + + } + + { + Tracer et1("Stage 7"); + // test for bug in MS VC5 + int n = 3; + int k; int j; + Matrix A(n,n), B(n,n); + + //first version - MS VC++ 5 mis-compiles if optimisation is on + for (k=1; k<=n; k++) + { + for (j = 1; j <= n; j++) A(k,j) = ((k-1) * (2*j-1)); + } + + //second version + for (k=1; k<=n; k++) + { + const int k1 = k-1; // otherwise Visual C++ 5 fails + for (j = 1; j <= n; j++) B(k,j) = (k1 * (2*j-1)); + } + + if (A != B) + { + cout << "\nVisual C++ version 5 compiler error?"; + cout << "\nTurn off optimisation"; + } + + A -= B; Print(A); + + } + +// cout << "\nEnd of first test\n"; +} + diff --git a/.svn/pristine/f5/f5bc5429fdd1e2522fc25cf2cd36d6f9abd24fd9.svn-base b/.svn/pristine/f5/f5bc5429fdd1e2522fc25cf2cd36d6f9abd24fd9.svn-base new file mode 100644 index 0000000..314aa4a --- /dev/null +++ b/.svn/pristine/f5/f5bc5429fdd1e2522fc25cf2cd36d6f9abd24fd9.svn-base @@ -0,0 +1,236 @@ +/* + * graph implementation + * + * Copyright (C) Dorit Borrmann, Jan Elseberg, Kai Lingemann, Andreas Nuechter + * + * Released under the GPL version 3. + * + */ + +/** + * @file + * @brief The implementation of a graph + * @author Dorit Borrman. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Jan Elseberg. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "slam6d/graph.h" + +#include "slam6d/scan.h" +#include "slam6d/globals.icc" + +#include +using std::ifstream; +#include +using std::cout; +using std::cerr; +using std::endl; + +/** + * Constructor to create an empty graph + */ +Graph::Graph() +{ + nrScans = 0; + start = 0; +} + + +/** + * Constructor to read a Graph from a file. + * The file must have the the number of scans in the first line, + * the number of links to be read in the second and the links in + * the links in the third and fourth line + * + * Example: + * 4 + * 3 + * 0 1 + * 1 2 + * 3 4 + * 4 0 + * + * @param netfile Filename of the file to read + */ +Graph::Graph(const string &netfile) +{ + nrScans = 0; + start = 0; + int local_nrScans, local_nrLinks; + cout << "Reading network " << netfile; + + ifstream file(netfile.c_str()); + file >> local_nrScans + >> local_nrLinks; + + int f, t; + for(int j = 0; j < local_nrLinks; j++) { + if (!file.good()) { + cerr << "Error while reading network structure" << endl; + exit(1); + } + file >> f >> t; + cout << f << " " << t << endl; + addLink(f, t); + } + cout << " structure done." << endl; +} + +/** + * Constructor to build a minimally connected Graph with a given number of scans. + * The loop can optionally be closed, so that the first will be connected to the last scan. + * + * @param nScans The number of Scans + * @param loop Specifies whether the first and last scan should be linked + */ +Graph::Graph(int nScans, bool loop) +{ + int nrLinks = 0; + start = 0; + nrScans = nScans; + + if (loop) { + nrLinks = nScans; + } else { + nrLinks = nScans - 1; + } + + for(int i = 0 ;i < nrLinks; i++){ + from.push_back(i); + if (loop) { + to.push_back(i != nrLinks - 1 ? i + 1 : 0) ; + } else { + to.push_back(i + 1); + } + } +} + + +Graph::Graph(int nodes, double cldist2, int loopsize) +{ + // nodes + 1 + start = 0; + nrScans = nodes; + int nrLinks = nodes - 1; + + for(int i = 0; i < nrLinks; i++){ + from.push_back(i); + to.push_back(i + 1); + } + + // nodes + for (int j = 0; j < nodes; j++) { + for (int k = j + 1; k < nodes; k++) { + if ((abs(k-j) > loopsize) && + (Dist2(Scan::allScans[j]->get_rPos(), Scan::allScans[k]->get_rPos()) < cldist2)) { + addLink(j, k); + } + } + } +} + + + +/** + * Returns the specified link + * + * @param i The i-th link + * @param fromTo 0 is the outgoing node and 1 the ingoing + * @return An integer for the node + */ +int Graph::getLink(int i, int fromTo) +{ + if (i >= 0 && i < (int)from.size()) { + if (fromTo == 0) return from[i]; + else return to[i]; + } + return 0; +} + + +/** + * adds a link to a graph + * + * @param i from node + * @param j to node + */ +void Graph::addLink(int i, int j) +{ + int present = 0; + for (unsigned int iterator = 0; iterator < from.size(); iterator++) { + if (from[iterator] == i) present++; + if (to[iterator] == i) present++; + } + if (present == 0) nrScans++; + present = 0; + for (unsigned int iterator = 0; iterator < from.size(); iterator++) { + if (from[iterator] == j) present++; + if (to[iterator] == j) present++; + } + if (present == 0) nrScans++; + + from.push_back(i); + to.push_back(j); +} + + +/** + * Returns the number of links + * @return number of links + */ +int Graph::getNrLinks() +{ + return from.size(); +} + +/** + * Returns the number of scans + * @return number of scans + */ +int Graph::getNrScans() +{ + return nrScans; +} + +/** + * sets the number of scans + * @param number of scans + */ +void Graph::setNrScans(int _nrScans) +{ + nrScans = _nrScans; +} + +/** + * Returns the number of the first scan + * @return number of the first scan + */ +int Graph::getStart() +{ + return start; +} + +/** + * Returns the number of the last scan + * @return number of the last scan + */ +int Graph::getEnd() +{ + return start+nrScans - 1; +} + +/** + * Prints out the Graph nicely formatted + * @param os the stream to print to + * @param gr which Graph to print + * @return the resulting output stream + */ +ostream& operator<<(ostream& os, Graph* gr) +{ + for(int i = 0; i < (int)gr->from.size() ; i++){ + os << "( " << gr->getLink(i,0) << " - " << gr->getLink(i,1) << " )" << endl; + } + return os; +} diff --git a/.svn/pristine/f5/f5f397c30ba4b82cd03350f0f519cb0eeaf38c68.svn-base b/.svn/pristine/f5/f5f397c30ba4b82cd03350f0f519cb0eeaf38c68.svn-base new file mode 100644 index 0000000..e4843d7 --- /dev/null +++ b/.svn/pristine/f5/f5f397c30ba4b82cd03350f0f519cb0eeaf38c68.svn-base @@ -0,0 +1,24 @@ + + +int glui_img_spindown_dis[] = { 12, 8, /* width, height */ + 255,255,255, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 255,255,255, 127,127,127, 127,127,127, + 127,127,127, 127,127,127, 127,127,127, 127,127,127, 127,127,127, + 127,127,127, 127,127,127, 127,127,127, 64, 64, 64, 255,255,255, + 191,191,191, 191,191,191, 191,191,191, 191,191,191, 191,191,191, + 191,191,191, 191,191,191, 191,191,191, 191,191,191, 127,127,127, + 64, 64, 64, 255,255,255, 191,191,191, 191,191,191, 191,191,191, + 191,191,191, 127,127,127, 255,255,255, 191,191,191, 191,191,191, + 191,191,191, 127,127,127, 64, 64, 64, 255,255,255, 191,191,191, + 191,191,191, 191,191,191, 127,127,127, 127,127,127, 127,127,127, + 255,255,255, 191,191,191, 191,191,191, 127,127,127, 64, 64, 64, + 255,255,255, 191,191,191, 191,191,191, 127,127,127, 127,127,127, + 127,127,127, 127,127,127, 127,127,127, 255,255,255, 191,191,191, + 127,127,127, 64, 64, 64, 255,255,255, 191,191,191, 191,191,191, + 191,191,191, 191,191,191, 191,191,191, 191,191,191, 191,191,191, + 191,191,191, 191,191,191, 127,127,127, 64, 64, 64, 255,255,255, + 255,255,255, 255,255,255, 255,255,255, 255,255,255, 255,255,255, + 255,255,255, 255,255,255, 255,255,255, 255,255,255, 255,255,255, + 64, 64, 64, +}; diff --git a/.svn/pristine/f6/f6000a481d1b6c8d124bc980415cff170a396104.svn-base b/.svn/pristine/f6/f6000a481d1b6c8d124bc980415cff170a396104.svn-base new file mode 100644 index 0000000..408889a --- /dev/null +++ b/.svn/pristine/f6/f6000a481d1b6c8d124bc980415cff170a396104.svn-base @@ -0,0 +1,100 @@ +//---------------------------------------------------------------------- +// File: bd_tree.h +// Programmer: David Mount +// Description: Declarations for standard bd-tree routines +// Last modified: 01/04/05 (Version 1.0) +//---------------------------------------------------------------------- +// Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +// David Mount. All Rights Reserved. +// +// This software and related documentation is part of the Approximate +// Nearest Neighbor Library (ANN). This software is provided under +// the provisions of the Lesser GNU Public License (LGPL). See the +// file ../ReadMe.txt for further information. +// +// The University of Maryland (U.M.) and the authors make no +// representations about the suitability or fitness of this software for +// any purpose. It is provided "as is" without express or implied +// warranty. +//---------------------------------------------------------------------- +// History: +// Revision 0.1 03/04/98 +// Initial release +// Revision 1.0 04/01/05 +// Changed IN, OUT to ANN_IN, ANN_OUT +//---------------------------------------------------------------------- + +#ifndef ANN_bd_tree_H +#define ANN_bd_tree_H + +#include // all ANN includes +#include "kd_tree.h" // kd-tree includes + +//---------------------------------------------------------------------- +// bd-tree shrinking node. +// The main addition in the bd-tree is the shrinking node, which +// is declared here. +// +// Shrinking nodes are defined by list of orthogonal halfspaces. +// These halfspaces define a (possibly unbounded) orthogonal +// rectangle. There are two children, in and out. Points that +// lie within this rectangle are stored in the in-child, and the +// other points are stored in the out-child. +// +// We use a list of orthogonal halfspaces rather than an +// orthogonal rectangle object because typically the number of +// sides of the shrinking box will be much smaller than the +// worst case bound of 2*dim. +// +// BEWARE: Note that constructor just copies the pointer to the +// bounding array, but the destructor deallocates it. This is +// rather poor practice, but happens to be convenient. The list +// is allocated in the bd-tree building procedure rbd_tree() just +// prior to construction, and is used for no other purposes. +// +// WARNING: In the near neighbor searching code it is assumed that +// the list of bounding halfspaces is irredundant, meaning that there +// are no two distinct halfspaces in the list with the same outward +// pointing normals. +//---------------------------------------------------------------------- + +class ANNbd_shrink : public ANNkd_node // splitting node of a kd-tree +{ + int n_bnds; // number of bounding halfspaces + ANNorthHSArray bnds; // list of bounding halfspaces + ANNkd_ptr child[2]; // in and out children +public: + ANNbd_shrink( // constructor + int nb, // number of bounding halfspaces + ANNorthHSArray bds, // list of bounding halfspaces + ANNkd_ptr ic=NULL, ANNkd_ptr oc=NULL) // children + { + n_bnds = nb; // cutting dimension + bnds = bds; // assign bounds + child[ANN_IN] = ic; // set children + child[ANN_OUT] = oc; + } + + ~ANNbd_shrink() // destructor + { + if (child[ANN_IN]!= NULL && child[ANN_IN]!= KD_TRIVIAL) + delete child[ANN_IN]; + if (child[ANN_OUT]!= NULL&& child[ANN_OUT]!= KD_TRIVIAL) + delete child[ANN_OUT]; + if (bnds != NULL) + delete [] bnds; // delete bounds + } + + virtual void getStats( // get tree statistics + int dim, // dimension of space + ANNkdStats &st, // statistics + ANNorthRect &bnd_box); // bounding box + virtual void print(int level, ostream &out);// print node + virtual void dump(ostream &out); // dump node + + virtual void ann_search(ANNdist); // standard search + virtual void ann_pri_search(ANNdist); // priority search + virtual void ann_FR_search(ANNdist); // fixed-radius search +}; + +#endif diff --git a/.svn/pristine/f6/f63dc8476f6f5db2ce6cd5bcfff0ddbe4fe67854.svn-base b/.svn/pristine/f6/f63dc8476f6f5db2ce6cd5bcfff0ddbe4fe67854.svn-base new file mode 100644 index 0000000..576c818 --- /dev/null +++ b/.svn/pristine/f6/f63dc8476f6f5db2ce6cd5bcfff0ddbe4fe67854.svn-base @@ -0,0 +1,52 @@ +/** + * @file candidateOpening.cc + * + * @auhtor Remus Claudiu Dumitru + * @date 15 Apr 2012 + * + */ + +//============================================================================== +// Includes +//============================================================================== +#include "model/candidateOpening.h" + +//============================================================================== +// Static member initializations +//============================================================================== +const unsigned int model::CandidateOpening::NR_FEATURES = 14; + +//============================================================================== +// Class implementation +//============================================================================== +model::CandidateOpening::CandidateOpening() { + +} + +model::CandidateOpening::CandidateOpening(const Point3d& pt, const Vector3d& normal, + const std::vector& hull, + const std::vector& features, const std::vector& edges) : + Plane3d(pt, normal, hull) +{ + this->features = features; + this->edges = edges; +} + +model::CandidateOpening::CandidateOpening(const CandidateOpening& other) : Plane3d(other){ + this->features = other.features; + this->edges = other.edges; + this->edgeCoverage = other.edgeCoverage; +} + +model::CandidateOpening::~CandidateOpening() {} + +model::CandidateOpening& model::CandidateOpening::operator=(const CandidateOpening& other) { + if (this != &other) { + Plane3d::operator =(other); + this->features = other.features; + this->edges = other.edges; + this->edgeCoverage = other.edgeCoverage; + } + + return *this; +} diff --git a/.svn/pristine/f6/f6a285fc892b2f6633076a08889840d29e27b2f1.svn-base b/.svn/pristine/f6/f6a285fc892b2f6633076a08889840d29e27b2f1.svn-base new file mode 100644 index 0000000..046b1cf --- /dev/null +++ b/.svn/pristine/f6/f6a285fc892b2f6633076a08889840d29e27b2f1.svn-base @@ -0,0 +1,46 @@ +/** + * @file + * @brief + * + * @author Thomas Escher + */ + +#ifndef CACHE_IO_H +#define CACHE_IO_H + +#include + +/** + * @brief Serialization management for binary data, intended for use in CacheHandlers. + * + * This class manages the assignment of unique IDs for CacheHandlers to use to identify their files. + * Data is (de)serialized via read and write calls and existance (if so, the file-/datasize too) can be checked via check. + * All files are created in a directory given by createTemporaryDirectory which has to be called before and read/writes to function properly. All files are named 'ddddd.tco' starting from zero. + */ +class CacheIO { +public: + typedef std::string IDType; + + //! Create a directory for temporary cache objects to save in + static void createTemporaryDirectory(std::string& path); + + //! Clean up temporary files + static void removeTemporaryDirectory(); + + //! Creates a unique Id to use for these functions + static IDType getId(); + + //! Check if a physical representation of this cache entry exists and returns non-zero size for the data + static unsigned int check(IDType& id); + + //! Read from file into the data pointer + static void read(IDType& id, char* data); + + //! Write data into a file represented by id + static void write(IDType& id, char* data, unsigned int size); +private: + static std::string path; + static unsigned int free_id; +}; + +#endif //CACHE_IO_H diff --git a/.svn/pristine/f6/f6a7b1c9fb04136e50a89b54be069c22a25760d1.svn-base b/.svn/pristine/f6/f6a7b1c9fb04136e50a89b54be069c22a25760d1.svn-base new file mode 100644 index 0000000..d10ceb6 --- /dev/null +++ b/.svn/pristine/f6/f6a7b1c9fb04136e50a89b54be069c22a25760d1.svn-base @@ -0,0 +1,44 @@ + + +int glui_img_radiobutton_0_dis[] = { 14, 14, /* width, height */ + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 255,255,255, + 255,255,255, 255,255,255, 255,255,255, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 255,255,255, 255,255,255, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 255,255,255, 255,255,255, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 128,128,128, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 255,255,255, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 128,128,128, 64, 64, 64, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 255,255,255, 192,192,192, 192,192,192, + 192,192,192, 128,128,128, 64, 64, 64, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 255,255,255, 192,192,192, 192,192,192, + 128,128,128, 64, 64, 64, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 255,255,255, 192,192,192, 192,192,192, 128,128,128, + 64, 64, 64, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 255,255,255, 192,192,192, 192,192,192, 128,128,128, 64, 64, 64, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 255,255,255, + 192,192,192, 192,192,192, 192,192,192, 128,128,128, 64, 64, 64, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 255,255,255, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 128,128,128, 64, 64, 64, 64, 64, 64, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 64, 64, 64, + 64, 64, 64, 255,255,255, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 128,128,128, 128,128,128, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 128,128,128, 128,128,128, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 128,128,128, 128,128,128, + 128,128,128, 128,128,128, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, 192,192,192, 192,192,192, 192,192,192, 192,192,192, + 192,192,192, +}; diff --git a/.svn/pristine/f6/f6c7b898adc6cff6f53787b1ee21ffd665b5f837.svn-base b/.svn/pristine/f6/f6c7b898adc6cff6f53787b1ee21ffd665b5f837.svn-base new file mode 100644 index 0000000..c2f9b86 --- /dev/null +++ b/.svn/pristine/f6/f6c7b898adc6cff6f53787b1ee21ffd665b5f837.svn-base @@ -0,0 +1,215 @@ +/* + * gridlines implementation + * + * Copyright (C) Uwe Hebbelmann, Sebastian Stock, Andre Schemschat + * + * Released under the GPL version 3. + * + */ + +#include "grid/gridlines.h" +#include "grid/hough.h" + +#include +using std::cout; +using std::cerr; +using std::endl; +#include +using std::ofstream; + +#define MINIMALLINELENGTH 2 + +/** + * CTOR + * + * @param g Grid in which lines should be created + * @param max_distance the maximal relecant distance for points + */ +gridlines::gridlines(grid * g, int max_distance, double isSolidPoint) +{ + this->isSolidPoint = isSolidPoint; + createLines(g, max_distance); +} + +/** + * Creates the lines for the grid g and stores + * them in the vector "lines" (clears the vector first) + * Uses hough transformation + * + * @param g the grid that the lines will be created for + * @param max_distance the maximal relevant distance for points + */ +void gridlines::createLines(grid* g, int max_distance) +{ + // read the data out of the grid + double x, z; + vector vx; + vector vz; + + // initialize minimal and maximal x and z values + double xmin = 8000.0, xmax = -8000.0, ymin = 8000.0, ymax = -8000.0; + for (int i = 0; i < g->getSizeX(); i++) { + for (int j = 0; j < g->getSizeZ(); j++) { + //store the point if percentage > ISSOLIDPOINT + if (g->points[i][j]->getPercent() > isSolidPoint) { + x = g->points[i][j]->getX(); + z = g->points[i][j]->getZ(); + + vx.push_back(x); + vz.push_back(z); + + // calculate minimal and maximal x and z values + if (x > xmax) xmax = x; + if (x < xmin) xmin = x; + if (z > ymax) ymax = z; + if (z < ymin) ymin = z; + } + } + } + + // cut the maximal and minimal values if they are too big + if (xmax > max_distance) xmax = max_distance; + if (ymax > max_distance) ymax = max_distance; + if (xmin < -max_distance) xmin = -max_distance; + if (ymin < -max_distance) ymin = -max_distance; + + // create arrays for the "hough" class and norm values +// double array_x[vx.size()], array_z[vz.size()]; + double *array_x = new double[vx.size()]; + double *array_z = new double[vz.size()]; + for (size_t t = 0; t < vx.size(); t++) { + array_x[t] = vx.at(t) - xmin; + array_z[t] = vz.at(t) - ymin; + } + + // set and get parameters for Hough transformation + int sht_nr = 80; + double max_rho_d = sqrt(pow(xmax-xmin, 2) + pow(ymax-ymin, 2)); + + //Set maximal distance + SHT_set_max_distance(max_distance, vx.size()); + + // result variables + int sht_nr_line_pts; + double *sht_x_line_pts = new double[vx.size()]; + double *sht_y_line_pts = new double[vx.size()]; + + // get sht_resolutuion + int sht_resolution = max_distance; + sht_init(sht_resolution); + + // get sht_histogram + int **sht_histogram; + sht_histogram = SHT_alloc_histogram(sht_resolution, sht_resolution); + + // call of Hough transformation + SHT_get_hough_lines(vx.size(), + array_x, + array_z, + sht_resolution, + max_rho_d, + sht_histogram, + sht_nr, + &sht_nr_line_pts, + sht_x_line_pts, + sht_y_line_pts, + xmin, + ymin, + 1); + + cout << "Found " << sht_nr_line_pts/2 << " lines!" << endl; + + // set results back -> norm + for (int j = 0; j < sht_nr_line_pts; j++) { + sht_x_line_pts[j] += xmin; + sht_y_line_pts[j] += ymin; + } + + // delete all lines + this->lines.clear(); + + // store the calculated lines + for (int i = 0; (i < sht_nr_line_pts); i+=2) { + gridPoint* temp_point1 = new gridPoint((long) sht_x_line_pts[i], (long) sht_y_line_pts[i]); + gridPoint* temp_point2 = new gridPoint((long) sht_x_line_pts[i+1], (long) sht_y_line_pts[i+1]); + + if (temp_point1->isSmallerThan(*temp_point2)) { + lines.push_back(line(temp_point1, temp_point2)); + } else { + lines.push_back(line(temp_point2, temp_point1)); + } + } + + SHT_free_histogram(sht_histogram, sht_resolution); + + delete[] array_x; + delete[] array_z; + delete[] sht_x_line_pts; + delete[] sht_y_line_pts; +} + +/** + * Getter for the vector with the lines + * + * @returns the vector with the created lines + */ +vector* gridlines::getLines() +{ + return &this->lines; +} + +/** + * Writes the lines to a gnuplot file + * + * @param file the file to write to + */ +void gridlines::writeGnuPlot(string file) +{ + ofstream str; + str.open(file.c_str()); + if(!str.good()) + { + cerr << "ERROR: In gridlines::writeGnuPlot, unable to open the stream! " + << endl; + cerr << "(Filename: " << file << ")" << endl; + exit(1); + } + + for(size_t i = 0; i < lines.size(); i++) { + str << lines.at(i).getStartX() << " " << lines.at(i).getStartZ() << endl; + str << lines.at(i).getEndX() << " " << lines.at(i).getEndZ() << endl; + str << endl; + } + + str.close(); +} + +/** + * Writes the lines to a lin file + * + * @param file the file to write to + */ +void gridlines::writeLin(string file) +{ + ofstream str; + str.open(file.c_str()); + if(!str.good()) + { + cerr << "ERROR: In gridlines::writeLin, unable to open the stream! " + << endl; + cerr << "(Filename: " << file << ")" << endl; + exit(1); + } + + for(size_t i = 0; i < lines.size(); i++) { + if(lines.at(i).getLength() < MINIMALLINELENGTH) + continue; + + str << "BEGIN" << endl; + str << lines.at(i).getStartX() << " 0 " << lines.at(i).getStartZ() << endl; + str << lines.at(i).getEndX() << " 0 " << lines.at(i).getEndZ() << endl; + str << "END" << endl; + } + + str.close(); +} diff --git a/.svn/pristine/f7/f7136aa509b3db56971a7f96fe9648cf90174ab6.svn-base b/.svn/pristine/f7/f7136aa509b3db56971a7f96fe9648cf90174ab6.svn-base new file mode 100644 index 0000000..367896c --- /dev/null +++ b/.svn/pristine/f7/f7136aa509b3db56971a7f96fe9648cf90174ab6.svn-base @@ -0,0 +1 @@ +scanserver -b 0 \ No newline at end of file diff --git a/.svn/pristine/f7/f7b117fab7a376fcbb178518f0a3a67ac6bc1cb0.svn-base b/.svn/pristine/f7/f7b117fab7a376fcbb178518f0a3a67ac6bc1cb0.svn-base new file mode 100644 index 0000000..7c65e3a --- /dev/null +++ b/.svn/pristine/f7/f7b117fab7a376fcbb178518f0a3a67ac6bc1cb0.svn-base @@ -0,0 +1,61 @@ +/** @file + * @brief The 6D Lu Milios style SLAM in 6D + * + * @author Dorit Borrman. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Jan Elseberg. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __LUM6D_QUAT_H__ +#define __LUM6D_QUAT_H__ + +#include +using std::vector; + +#include "graphSlam6D.h" + +#include "newmat/newmatio.h" + +typedef vector vPtPair; ///< just a typedef: vPtPair = vector of type PtPair + + +/* + * @brief Representation of 3D scan matching with Lu/Milios in 6D. + * + * Reference: D. Borrmann, et al., Globally consistent 3D mapping + * with scan matching, Journal of Robotics and Autonomous + * Systems (2007), + */ +class lum6DQuat : public graphSlam6D { + +public: + /** + * Constructor (default) + */ + lum6DQuat() {}; + lum6DQuat(icp6Dminimizer *my_icp6Dminimizer, + double mdm = 25.0, + double max_dist_match = 25.0, + int max_num_iterations = 50, + bool quiet = false, + bool meta = false, + int rnd = 1, + bool eP = true, + int anim = -1, + double epsilonICP = 0.0000001, + int nns_method = simpleKD, + double epsilonLUM = 0.5); + + virtual ~lum6DQuat(); + + double doGraphSlam6D(Graph gr, vector MetaScan, int nrIt); + static void covarianceQuat(Scan *first, Scan *second, int nns_method, + int rnd, double max_dist_match2, NEWMAT::Matrix *C, NEWMAT::ColumnVector *CD=0); + +private: + void FillGB3D(Graph *gr, NEWMAT::Matrix* G, NEWMAT::ColumnVector* B, vector allScans); + +}; + +#endif diff --git a/.svn/pristine/f7/f7cceefa9609a4e286be2e74a4983a42dfc79e5d.svn-base b/.svn/pristine/f7/f7cceefa9609a4e286be2e74a4983a42dfc79e5d.svn-base new file mode 100644 index 0000000..504707b --- /dev/null +++ b/.svn/pristine/f7/f7cceefa9609a4e286be2e74a4983a42dfc79e5d.svn-base @@ -0,0 +1,157 @@ +/** + * @file + * @brief Implementation of reading 3D scans + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "slam6d/scan_io_asc.h" +#include "slam6d/globals.icc" +#include +using std::ifstream; +#include +using std::cerr; +using std::endl; + +#include +using std::swap; + +#ifdef _MSC_VER +#include +#endif + +/** + * Reads specified scans from given directory in + * the file format ZuF from Zoller+Froehlich AG + * uses. It will be compiled as shared lib. + * + * Scan poses will NOT be initialized after a call + * to this function. Initial pose estimation works + * only with the -p switch, i.e., trusting the initial + * estimations by Riegl. Actually, the Riegl poses + * are high precise and this function puts noise + * on it. + * + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param dir The directory from which to read + * @param maxDist Reads only Points up to this Distance + * @param minDist Reads only Points from this Distance + * @param euler Initital pose estimates (will not be applied to the points + * @param ptss Vector containing the read points + */ +int ScanIO_asc::readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss) +{ + static int fileCounter = start; + string scanFileName; + string poseFileName; + + ifstream scan_in, pose_in; + int my_fileNr = fileCounter; + + if (end > -1 && fileCounter > end) return -1; // 'nuf read + + + poseFileName = dir + "ScanPos" + to_string(fileCounter,2) + ".DAT"; + scanFileName = dir + "coordinates" + to_string(fileCounter,2) + ".asc"; + + scan_in.open(scanFileName.c_str()); + pose_in.open(poseFileName.c_str()); + // read 3D scan + + if (!pose_in.good() && !scan_in.good()) return -1; // no more files in the directory + if (!pose_in.good()) { cerr << "ERROR: Missing file " << poseFileName << endl; exit(1); } + if (!scan_in.good()) { cerr << "ERROR: Missing file " << scanFileName << endl; exit(1); } + cout << "Processing Scan " << scanFileName; + cout.flush(); + + /* + char firstline[255]; + scan_in.getline(firstline, 255); + */ + + double rPos[3] = { 0.0, 0.0, 0.0 }; + double rPosTheta[16] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }; + double inMatrix[16]; + /* + char dummy[255]; + pose_in.getline(dummy, 255); + pose_in.getline(dummy, 255); + scan_in.getline(dummy, 255); + */ + + for (unsigned int i = 0; i < 16; pose_in >> inMatrix[i++]); + + Matrix4ToEuler(inMatrix, rPosTheta, rPos); + + euler[0] = inMatrix[3]; + euler[1] = inMatrix[11]; + euler[2] = inMatrix[7]; + + euler[3] = rPosTheta[0]; + euler[4] = rPosTheta[2]; + euler[5] = rPosTheta[1]; + + cout << " @ pose (" << euler[0] << "," << euler[1] << "," << euler[2] + << "," << euler[3] << "," << euler[4] << "," << euler[5] << ")" << endl; + + while (scan_in.good()) { + Point p; + double intensity; + scan_in >> p.y >> p.z >> p.x >> intensity; + p.x *= 100; + p.y *= 100; + p.z *= 100; + if (intensity > 0) { + cout << p << endl; + ptss.push_back(p); + } + } + + cout << " done" << endl; + + scan_in.close(); + scan_in.clear(); + pose_in.close(); + pose_in.clear(); + fileCounter++; + + return my_fileNr; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_asc; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/.svn/pristine/f8/f81e2d1e04aaee0f56b61fccc325fcfe55ae456d.svn-base b/.svn/pristine/f8/f81e2d1e04aaee0f56b61fccc325fcfe55ae456d.svn-base new file mode 100644 index 0000000..6b43430 --- /dev/null +++ b/.svn/pristine/f8/f81e2d1e04aaee0f56b61fccc325fcfe55ae456d.svn-base @@ -0,0 +1,124 @@ +//---------------------------------------------------------------------- +// File: kd_util.h +// Programmer: Sunil Arya and David Mount +// Description: Common utilities for kd- trees +// Last modified: 01/04/05 (Version 1.0) +//---------------------------------------------------------------------- +// Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +// David Mount. All Rights Reserved. +// +// This software and related documentation is part of the Approximate +// Nearest Neighbor Library (ANN). This software is provided under +// the provisions of the Lesser GNU Public License (LGPL). See the +// file ../ReadMe.txt for further information. +// +// The University of Maryland (U.M.) and the authors make no +// representations about the suitability or fitness of this software for +// any purpose. It is provided "as is" without express or implied +// warranty. +//---------------------------------------------------------------------- +// History: +// Revision 0.1 03/04/98 +// Initial release +//---------------------------------------------------------------------- + +#ifndef ANN_kd_util_H +#define ANN_kd_util_H + +#include "kd_tree.h" // kd-tree declarations + +//---------------------------------------------------------------------- +// externally accessible functions +//---------------------------------------------------------------------- + +double annAspectRatio( // compute aspect ratio of box + int dim, // dimension + const ANNorthRect &bnd_box); // bounding cube + +void annEnclRect( // compute smallest enclosing rectangle + ANNpointArray pa, // point array + ANNidxArray pidx, // point indices + int n, // number of points + int dim, // dimension + ANNorthRect &bnds); // bounding cube (returned) + +void annEnclCube( // compute smallest enclosing cube + ANNpointArray pa, // point array + ANNidxArray pidx, // point indices + int n, // number of points + int dim, // dimension + ANNorthRect &bnds); // bounding cube (returned) + +ANNdist annBoxDistance( // compute distance from point to box + const ANNpoint q, // the point + const ANNpoint lo, // low point of box + const ANNpoint hi, // high point of box + int dim); // dimension of space + +ANNcoord annSpread( // compute point spread along dimension + ANNpointArray pa, // point array + ANNidxArray pidx, // point indices + int n, // number of points + int d); // dimension to check + +void annMinMax( // compute min and max coordinates along dim + ANNpointArray pa, // point array + ANNidxArray pidx, // point indices + int n, // number of points + int d, // dimension to check + ANNcoord& min, // minimum value (returned) + ANNcoord& max); // maximum value (returned) + +int annMaxSpread( // compute dimension of max spread + ANNpointArray pa, // point array + ANNidxArray pidx, // point indices + int n, // number of points + int dim); // dimension of space + +void annMedianSplit( // split points along median value + ANNpointArray pa, // points to split + ANNidxArray pidx, // point indices + int n, // number of points + int d, // dimension along which to split + ANNcoord &cv, // cutting value + int n_lo); // split into n_lo and n-n_lo + +void annPlaneSplit( // split points by a plane + ANNpointArray pa, // points to split + ANNidxArray pidx, // point indices + int n, // number of points + int d, // dimension along which to split + ANNcoord cv, // cutting value + int &br1, // first break (values < cv) + int &br2); // second break (values == cv) + +void annBoxSplit( // split points by a box + ANNpointArray pa, // points to split + ANNidxArray pidx, // point indices + int n, // number of points + int dim, // dimension of space + ANNorthRect &box, // the box + int &n_in); // number of points inside (returned) + +int annSplitBalance( // determine balance factor of a split + ANNpointArray pa, // points to split + ANNidxArray pidx, // point indices + int n, // number of points + int d, // dimension along which to split + ANNcoord cv); // cutting value + +void annBox2Bnds( // convert inner box to bounds + const ANNorthRect &inner_box, // inner box + const ANNorthRect &bnd_box, // enclosing box + int dim, // dimension of space + int &n_bnds, // number of bounds (returned) + ANNorthHSArray &bnds); // bounds array (returned) + +void annBnds2Box( // convert bounds to inner box + const ANNorthRect &bnd_box, // enclosing box + int dim, // dimension of space + int n_bnds, // number of bounds + ANNorthHSArray bnds, // bounds array + ANNorthRect &inner_box); // inner box (returned) + +#endif diff --git a/.svn/pristine/f8/f8402a3188af4937ba39096350ffb618c9f46e10.svn-base b/.svn/pristine/f8/f8402a3188af4937ba39096350ffb618c9f46e10.svn-base new file mode 100644 index 0000000..fbfb7cc --- /dev/null +++ b/.svn/pristine/f8/f8402a3188af4937ba39096350ffb618c9f46e10.svn-base @@ -0,0 +1,19 @@ +#pragma once +#include "veloslam/veloscan.h" +#include "veloslam/svm.h" + +class Cluster_Classification +{ +public: + Cluster_Classification(void); + ~Cluster_Classification(void); + +public: + svm_model *bus_classifier; + string *bus_classifier_filename; + svm_node *feature_nod; +}; + + + + diff --git a/.svn/pristine/f9/f901c2d8a6456df4eb0a2424d1430e06869f0710.svn-base b/.svn/pristine/f9/f901c2d8a6456df4eb0a2424d1430e06869f0710.svn-base new file mode 100644 index 0000000..b3f8305 --- /dev/null +++ b/.svn/pristine/f9/f901c2d8a6456df4eb0a2424d1430e06869f0710.svn-base @@ -0,0 +1,22 @@ + +#include "glui_img_checkbox_0.c" +#include "glui_img_checkbox_1.c" +#include "glui_img_radiobutton_0.c" +#include "glui_img_radiobutton_1.c" +#include "glui_img_uparrow.c" +#include "glui_img_downarrow.c" +#include "glui_img_leftarrow.c" +#include "glui_img_rightarrow.c" +#include "glui_img_spinup_1.c" +#include "glui_img_spinup_0.c" +#include "glui_img_spindown_1.c" +#include "glui_img_spindown_0.c" +#include "glui_img_checkbox_0_dis.c" +#include "glui_img_checkbox_1_dis.c" +#include "glui_img_radiobutton_0_dis.c" +#include "glui_img_radiobutton_1_dis.c" +#include "glui_img_spinup_dis.c" +#include "glui_img_spindown_dis.c" +#include "glui_img_listbox_up.c" +#include "glui_img_listbox_down.c" +#include "glui_img_listbox_up_dis.c" diff --git a/.svn/pristine/f9/f9881ff05b37463174c8ff919ec0b079ae99d199.svn-base b/.svn/pristine/f9/f9881ff05b37463174c8ff919ec0b079ae99d199.svn-base new file mode 100644 index 0000000..c191476 --- /dev/null +++ b/.svn/pristine/f9/f9881ff05b37463174c8ff919ec0b079ae99d199.svn-base @@ -0,0 +1,642 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: range.cpp +// Purpose: Simple min-max range class and associated selection array class +// Author: John Labenski +// Created: 12/01/2000 +// Copyright: (c) John Labenski 2004 +// Licence: wxWidgets +///////////////////////////////////////////////////////////////////////////// + +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) + #pragma implementation "range.h" +#endif + +// For compilers that support precompilation, includes "wx.h". +#include "wx/wxprec.h" + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#ifndef WX_PRECOMP + #include "wx/utils.h" +#endif // WX_PRECOMP + +#include "wx/things/range.h" +#include + +const wxRangeInt wxEmptyRangeInt(0, -1); +const wxRangeDouble wxEmptyRangeDouble(0, -1); + +#include "wx/arrimpl.cpp" +WX_DEFINE_OBJARRAY(wxArrayRangeInt); +WX_DEFINE_OBJARRAY(wxArrayRangeDouble); +WX_DEFINE_OBJARRAY(wxArrayRangeIntSelection); +WX_DEFINE_OBJARRAY(wxArrayRangeDoubleSelection); + + +// set this if you want to double check that that ranges are really working +//#define CHECK_RANGES + +//============================================================================= +// wxRangeInt +//============================================================================= + +bool wxRangeInt::Combine(int i, bool only_if_touching) +{ + if (only_if_touching) + { + if (i == m_min-1) { m_min--; return true; } + else if (i == m_max+1) { m_max++; return true; } + } + else + { + if (i < m_min) { m_min = i; return true; } + else if (i > m_max) { m_max = i; return true; } + } + return false; +} + +bool wxRangeInt::Combine( const wxRangeInt &r, bool only_if_touching ) +{ + if (only_if_touching) + { + if (Touches(r)) + { + *this+=r; + return true; + } + } + else + { + bool added = false; + if (r.m_min < m_min) { m_min = r.m_min; added = true; } + if (r.m_max > m_max) { m_max = r.m_max; added = true; } + return added; + } + return false; +} + +bool wxRangeInt::Delete( const wxRangeInt &r, wxRangeInt *right ) +{ + if (!Contains(r)) + return false; + + if (right) *right = wxEmptyRangeInt; + + if (r.m_min <= m_min) + { + if (r.m_max >= m_max) + { + *this = wxEmptyRangeInt; + return true; + } + + m_min = r.m_max + 1; + return true; + } + + if (r.m_max >= m_max) + { + m_max = r.m_min - 1; + return true; + } + + if (right) + *right = wxRangeInt(r.m_max + 1, m_max); + + m_max = r.m_min - 1; + return true; +} + +//============================================================================= +// wxRangeIntSelection +//============================================================================= +const wxRangeInt& wxRangeIntSelection::GetRange( int index ) const +{ + wxCHECK_MSG((index>=0) && (index m_ranges[count-1].m_max) return wxNOT_FOUND; + + // Binary search + int res, tmp, lo = 0, hi = count; + + while ( lo < hi ) + { + tmp = (lo + hi)/2; + res = m_ranges[tmp].Position(i); + + if (res == 0) + return tmp; + else if ( res < 0 ) + hi = tmp; + else //if ( res > 0 ) + lo = tmp + 1; + } + + return wxNOT_FOUND; +} + +int wxRangeIntSelection::Index( const wxRangeInt &r ) const +{ + register int i, count = m_ranges.GetCount(); + for (i=0; i m_ranges[count-1].m_max) return count; + + // Binary search + int res, tmp, lo = 0, hi = count; + + while ( lo < hi ) + { + tmp = (lo + hi)/2; + res = m_ranges[tmp].Position(i); + + if ( res == 0 ) + return tmp; + else if ((i >= m_ranges[tmp].m_max) && (i < m_ranges[wxMin(tmp+1, count-1)].m_min)) + return tmp; + else if ( res < 0 ) + hi = tmp; + else //if ( res > 0 ) + lo = tmp + 1; + } + + // oops shouldn't get here + wxCHECK_MSG(0, -1, wxT("Error calculating NearestIndex in wxRangeIntSelection")); +} + +int wxRangeIntSelection::GetItemCount() const +{ + register int i, items = 0, count = m_ranges.GetCount(); + for (i=0; i 0 ? NearestIndex(range.m_min) : -1; + + if ((nearest < 0) || (nearest == count)) + return false; + + wxRangeInt r; + for (i=nearest; i 0) ? i-1 : -1; + } + else if (!r.IsEmpty()) + m_ranges.Insert(r, i+1); + + done = true; + } + } + + return done; +} + +bool wxRangeIntSelection::SelectRange(const wxRangeInt &range) +{ + wxCHECK_MSG(!range.IsEmpty(), false, wxT("Invalid Selection Range") ); + + // Try to find a range that includes this one and combine it, else insert it, else append it + bool done = false; + int i, count = m_ranges.GetCount(); + int nearest = count > 0 ? NearestIndex(range.m_min) : -1; + + if (nearest < 0) + { + if (!((count > 0) && m_ranges[0].Combine(range, true))) + m_ranges.Insert(range, 0); + return true; + } + else if (nearest == count) + { + if (!((count > 0) && m_ranges[count-1].Combine(range, true))) + m_ranges.Add(range); + return true; + } + else + { + if (m_ranges[nearest].Contains(range)) + return false; + + for (i=nearest; i= range.m_min) + break; + + if (m_ranges[i].m_max < range.m_min) // range is out of bounds + { + done = true; + m_ranges.RemoveAt(i); + count--; + i--; + } + else + { + done = true; + m_ranges[i].m_min = range.m_min; + break; + } + } + + for (i = m_ranges.GetCount() - 1; i >= 0; i--) + { + if (m_ranges[i].m_max <= range.m_max) + break; + + if (m_ranges[i].m_min > range.m_max) // range is out of bounds + { + done = true; + m_ranges.RemoveAt(i); + } + else + { + done = true; + m_ranges[i].m_max = range.m_max; + break; + } + } + + return done; +} + +//============================================================================= +// wxRangeDouble +//============================================================================= + +bool wxRangeDouble::Combine(double i) +{ + if (i < m_min) { m_min = i; return true; } + else if (i > m_max) { m_max = i; return true; } + return false; +} + +bool wxRangeDouble::Combine( const wxRangeDouble &r, bool only_if_touching ) +{ + if (only_if_touching) + { + if (Contains(r)) + { + *this+=r; + return true; + } + } + else + { + bool added = false; + if (r.m_min < m_min) { m_min = r.m_min; added = true; } + if (r.m_max > m_max) { m_max = r.m_max; added = true; } + return added; + } + return false; +} + +bool wxRangeDouble::Delete( const wxRangeDouble &r, wxRangeDouble *right ) +{ + if (!Contains(r)) + return false; + + if (right) *right = wxEmptyRangeDouble; + + if (r.m_min <= m_min) + { + if (r.m_max >= m_max) + { + *this = wxEmptyRangeDouble; + return true; + } + + m_min = r.m_max; + return true; + } + + if (r.m_max >= m_max) + { + m_max = r.m_min; + return true; + } + + if (right) + *right = wxRangeDouble(r.m_max, m_max); + + m_max = r.m_min; + return true; +} + +//============================================================================= +// wxRangeDoubleSelection +//============================================================================= +const wxRangeDouble& wxRangeDoubleSelection::GetRange( int index ) const +{ + wxCHECK_MSG((index>=0) && (index m_ranges[count-1].m_max) return wxNOT_FOUND; + + // Binary search + int res, tmp, lo = 0, hi = count; + + while ( lo < hi ) + { + tmp = (lo + hi)/2; + res = m_ranges[tmp].Position(i); + + if ( res == 0 ) + return tmp; + else if ( res < 0 ) + hi = tmp; + else //if ( res > 0 ) + lo = tmp + 1; + } + + return wxNOT_FOUND; + +/* + for (register int j=0; j m_ranges[count-1].m_max) return count; + + // Binary search + int res, tmp, lo = 0, hi = count; + + while ( lo < hi ) + { + tmp = (lo + hi)/2; + res = m_ranges[tmp].Position(i); + + if ( res == 0 ) + return tmp; + else if ((i >= m_ranges[tmp].m_max) && (i < m_ranges[wxMin(tmp+1, count-1)].m_min)) + return tmp; + else if ( res < 0 ) + hi = tmp; + else //if ( res > 0 ) + lo = tmp + 1; + } + + // oops shouldn't get here + wxCHECK_MSG(0, -1, wxT("Error calculating NearestIndex in wxRangeDoubleSelection")); +} + +bool wxRangeDoubleSelection::SelectRange(const wxRangeDouble &range) +{ + wxCHECK_MSG(!range.IsEmpty(), false, wxT("Invalid Selection Range") ); + + // Try to find a range that includes this one and combine it, else insert it, else append it + bool done = false; + int i, count = m_ranges.GetCount(); + int nearest = count > 0 ? NearestIndex(range.m_min) : -1; + + if (nearest < 0) + { + if (!((count > 0) && m_ranges[0].Combine(range, true))) + m_ranges.Insert(range, 0); + return true; + } + else if (nearest == count) + { + if (!((count > 0) && m_ranges[count-1].Combine(range, true))) + m_ranges.Add(range); + return true; + } + else + { + if (m_ranges[nearest].Contains(range)) + return false; + + for (i=nearest; i 0 ? NearestIndex(range.m_min) : -1; + + if ((nearest < 0) || (nearest == count)) + return false; + + wxRangeDouble r; + for (i=nearest; i 0) ? i-1 : -1; + } + else if (!r.IsEmpty()) + m_ranges.Insert(r, i+1); + + done = true; + } + } + + return done; +} + +bool wxRangeDoubleSelection::BoundRanges(const wxRangeDouble& range) +{ + wxCHECK_MSG(!range.IsEmpty(), false, wxT("Invalid Bounding Range") ); + int i, count = m_ranges.GetCount(); + bool done = false; + + for (i = 0; i < count; i++) + { + if (m_ranges[i].m_min >= range.m_min) + break; + + if (m_ranges[i].m_max < range.m_min) // range is out of bounds + { + done = true; + m_ranges.RemoveAt(i); + count--; + i--; + } + else + { + done = true; + m_ranges[i].m_min = range.m_min; + break; + } + } + + for (i = m_ranges.GetCount() - 1; i >= 0; i--) + { + if (m_ranges[i].m_max <= range.m_max) + break; + + if (m_ranges[i].m_min > range.m_max) // range is out of bounds + { + done = true; + m_ranges.RemoveAt(i); + } + else + { + done = true; + m_ranges[i].m_max = range.m_max; + break; + } + } + + return done; +} diff --git a/.svn/pristine/fa/fa11c73a9693d4b3487fc7743404c971a5e681cd.svn-base b/.svn/pristine/fa/fa11c73a9693d4b3487fc7743404c971a5e681cd.svn-base new file mode 100644 index 0000000..cef8ad2 --- /dev/null +++ b/.svn/pristine/fa/fa11c73a9693d4b3487fc7743404c971a5e681cd.svn-base @@ -0,0 +1,18 @@ +#ifndef __DEBUG_H_ +#define __DEBUG_H_ + +#include + +/** Printouts for debugging + * @author Andre Schemschatt, Uwe Hebbelmann, Sebastian Stock + * @date 14.2.08 + */ + +#ifdef DEBUG + +#define DEBUGPRINT(msg) std::cout <<"[Debug] "<< msg << std::endl; +#else +#define DEBUGPRINT(msg) +#endif + +#endif diff --git a/.svn/pristine/fa/fa4a59844fc48f9c0a266423b0e119dde9449ac0.svn-base b/.svn/pristine/fa/fa4a59844fc48f9c0a266423b0e119dde9449ac0.svn-base new file mode 100644 index 0000000..a7262b3 --- /dev/null +++ b/.svn/pristine/fa/fa4a59844fc48f9c0a266423b0e119dde9449ac0.svn-base @@ -0,0 +1,58 @@ +/* + * metascan implementation + * + * Copyright (C) Andreas Nuechter, Kai Lingemann, Thomas Escher + * + * Released under the GPL version 3. + * + */ + +#include "slam6d/metaScan.h" + +#include "slam6d/kdMeta.h" + +#ifdef WITH_METRICS +#include "slam6d/metrics.h" +#endif + +MetaScan::MetaScan(std::vector scans, int nns_method, bool cuda_enabled) : + m_scans(scans) +{ + // add this to the global vector for addFrame reasons + Scan::allScans.push_back(this); +} + +MetaScan::~MetaScan() +{ + // remove this from the global vector for addFrame reasons + for(ScanVector::iterator it = Scan::allScans.begin(); it != Scan::allScans.end(); ++it) { + if(*it == this) { + Scan::allScans.erase(it); + break; + } + } +} + +void MetaScan::createSearchTreePrivate() +{ +#ifdef WITH_METRICS + Timer tc = ClientMetric::create_metatree_time.start(); +#endif //WITH_METRICS + + // TODO: there is no nns_type switch or cuda option for this one because no reduced points are copied, this could be implemented if e.g. cuda is required on metascans + kd = new KDtreeMetaManaged(m_scans); + +#ifdef WITH_METRICS + ClientMetric::create_metatree_time.end(tc); +#endif //WITH_METRICS +} + +unsigned int MetaScan::size() const +{ + return m_scans.size(); +} + +Scan* MetaScan::getScan(unsigned int i) const +{ + return m_scans.at(i); +} diff --git a/.svn/pristine/fa/fac1c08c2dcd58f21f8eec9e61facce31b187a05.svn-base b/.svn/pristine/fa/fac1c08c2dcd58f21f8eec9e61facce31b187a05.svn-base new file mode 100644 index 0000000..f6d8ee1 --- /dev/null +++ b/.svn/pristine/fa/fac1c08c2dcd58f21f8eec9e61facce31b187a05.svn-base @@ -0,0 +1,347 @@ +/// \defgroup rbd_common RBD common library +///@{ + +/// \file include.h +/// Set options and and details of include files. + +#ifndef INCLUDE_LIB +#define INCLUDE_LIB + +#define use_namespace // define name spaces + +//#define SETUP_C_SUBSCRIPTS // allow element access via A[i][j] + +//#define OPT_COMPATIBLE // for use with opt++ + +// Activate just one of the following 3 statements + +//#define SimulateExceptions // use simulated exceptions +#define UseExceptions // use C++ exceptions +//#define DisableExceptions // do not use exceptions + + +//#define TEMPS_DESTROYED_QUICKLY // for compilers that delete + // temporaries too quickly + +//#define TEMPS_DESTROYED_QUICKLY_R // the same thing but applied + // to return from functions only + +//#define DO_FREE_CHECK // check news and deletes balance + +#define USING_DOUBLE // elements of type double +//#define USING_FLOAT // elements of type float + +#define bool_LIB 0 // for compatibility with my older libraries + +//#define ios_format_flags ios::fmtflags // for Gnu 3 and Intel for Linux + + +//#define _STANDARD_ // using standard library + +//#define use_float_h // use float.h for precision data + +//#define HAS_INT64 // if unsigned _int64 is recognised + // used by newran03 + +// comment out next line if Exception causes a problem +#define TypeDefException + +//*********************** end of options set by user ******************** + + +// for Gnu C++ version 3 +#if defined __GNUG__ && __GNUG__ >= 3 + #define _STANDARD_ // use standard library + #define ios_format_flags ios::fmtflags +#endif + +// for Intel C++ for Linux +#if defined __ICC + #define _STANDARD_ // use standard library + #define ios_format_flags ios::fmtflags +#endif + +// for Microsoft Visual C++ 7 and above (and Intel simulating these) +#if defined _MSC_VER && _MSC_VER >= 1300 + #define _STANDARD_ // use standard library +#endif + + +#ifdef _STANDARD_ // using standard library + #include + #if defined _MSC_VER && _MSC_VER == 1200 + #include // for VC++6 + #endif + #ifdef WANT_STREAM + #include + #include + #endif + #ifdef WANT_MATH + #include + #endif + #ifdef WANT_STRING + #include + #endif + #ifdef WANT_TIME + #include + #endif + #ifdef WANT_FSTREAM + #include + #endif + using namespace std; +#else + +#define DEFAULT_HEADER // use AT&T style header + // if no other compiler is recognised + +#ifdef _MSC_VER // Microsoft + #include + +// reactivate these statements to run under MSC version 7.0 +// typedef int jmp_buf[9]; +// extern "C" +// { +// int __cdecl setjmp(jmp_buf); +// void __cdecl longjmp(jmp_buf, int); +// } + + #ifdef WANT_STREAM + #include + #include + #endif + #ifdef WANT_MATH + #include + #include + #endif + #ifdef WANT_STRING + #include + #endif + #ifdef WANT_TIME + #include + #endif + #ifdef WANT_FSTREAM + #include + #endif + #undef DEFAULT_HEADER +#endif + +#ifdef __ZTC__ // Zortech + #include + #ifdef WANT_STREAM + #include + #include + #define flush "" // not defined in iomanip? + #endif + #ifdef WANT_MATH + #include + #include + #endif + #ifdef WANT_STRING + #include + #endif + #ifdef WANT_TIME + #include + #endif + #ifdef WANT_FSTREAM + #include + #endif + #undef DEFAULT_HEADER +#endif + +#if defined __BCPLUSPLUS__ || defined __TURBOC__ // Borland or Turbo + #include + #ifdef WANT_STREAM + #include + #include + #endif + #ifdef WANT_MATH + #include + #include // Borland has both float and values + // but values.h returns +INF for + // MAXDOUBLE in BC5 + #endif + #ifdef WANT_STRING + #include + #endif + #ifdef WANT_TIME + #include + #endif + #ifdef WANT_FSTREAM + #include + #endif + #undef DEFAULT_HEADER +#endif + +#ifdef __GNUG__ // Gnu C++ + #include + #ifdef WANT_STREAM + #include + #include + #endif + #ifdef WANT_MATH + #include + #include + #endif + #ifdef WANT_STRING + #include + #endif + #ifdef WANT_TIME + #include + #endif + #ifdef WANT_FSTREAM + #include + #endif + #undef DEFAULT_HEADER +#endif + +#ifdef __WATCOMC__ // Watcom C/C++ + #include + #ifdef WANT_STREAM + #include + #include + #endif + #ifdef WANT_MATH + #include + #include + #endif + #ifdef WANT_STRING + #include + #endif + #ifdef WANT_TIME + #include + #endif + #ifdef WANT_FSTREAM + #include + #endif + #undef DEFAULT_HEADER +#endif + + +#ifdef macintosh // MPW C++ on the Mac +#include +#ifdef WANT_STREAM +#include +#include +#endif +#ifdef WANT_MATH +#include +#include +#endif +#ifdef WANT_STRING +#include +#endif +#ifdef WANT_TIME +#include +#endif +#ifdef WANT_FSTREAM +#include +#endif +#undef DEFAULT_HEADER +#endif + +#ifdef use_float_h // use float.h for precision values +#include +#ifdef WANT_STREAM +#include +#include +#endif +#ifdef WANT_MATH +#include +#include +#endif +#ifdef WANT_STRING +#include +#endif +#ifdef WANT_TIME +#include +#endif +#ifdef WANT_FSTREAM +#include +#endif +#undef DEFAULT_HEADER +#endif + + +#ifdef DEFAULT_HEADER // for example AT&T +#define ATandT +#include +#ifdef WANT_STREAM +#include +#include +#endif +#ifdef WANT_MATH +#include +#define SystemV // use System V +#include +#endif +#ifdef WANT_STRING +#include +#endif +#ifdef WANT_TIME +#include +#endif +#ifdef WANT_FSTREAM +#include +#endif +#endif // DEFAULT_HEADER + +#endif // _STANDARD_ + +#ifdef use_namespace +namespace RBD_COMMON { +#endif + + +#ifdef USING_FLOAT // set precision type to float +typedef float Real; +typedef double long_Real; +#endif + +#ifdef USING_DOUBLE // set precision type to double +typedef double Real; +typedef long double long_Real; +#endif + + +// This is for (very old) compilers that do not have bool automatically defined + +#ifndef bool_LIB +#define bool_LIB 0 + +class bool +{ + int value; +public: + bool(const int b) { value = b ? 1 : 0; } + bool(const void* b) { value = b ? 1 : 0; } + bool() {} + operator int() const { return value; } + int operator!() const { return !value; } +}; + + +const bool true = 1; +const bool false = 0; + +#endif + + +#ifdef use_namespace +} +#endif + + +#ifdef use_namespace +namespace RBD_COMMON {} +namespace RBD_LIBRARIES // access all my libraries +{ + using namespace RBD_COMMON; +} +#endif + + +#endif + + +///@} + diff --git a/.svn/pristine/fb/fb637274c9337a1a0d156f11ef69ed5c79d67ca5.svn-base b/.svn/pristine/fb/fb637274c9337a1a0d156f11ef69ed5c79d67ca5.svn-base new file mode 100644 index 0000000..a2666af --- /dev/null +++ b/.svn/pristine/fb/fb637274c9337a1a0d156f11ef69ed5c79d67ca5.svn-base @@ -0,0 +1,30 @@ +#ifndef __PARCEL_H_ +#define __PARCEL_H_ + +#include "grid/grid.h" +#include +using std::string; + +/** + * The class represents a section of the map and inherrits grid. + * The grids will be added to the parcel + * The parcel can be stored and read so that it must not permanant be + * in the memory. + * + * @author Andre Schemschatt, Uwe Hebbelmann, Sebastian Stock + * @date 17.2.08 + */ +class parcel : public grid +{ + public: + /** @brief Ctor */ + parcel(long offSetX, long offSetZ, long sizeX, long sizeZ); + + /** @brief Adds a grid to the parcel */ + void addGrid(const grid* grid); + + /** @brief Creates a parcel from the file */ + static parcel* readParcel(std::string filename); +}; + +#endif diff --git a/.svn/pristine/fb/fb98b45e5aa2f3340c57890adf225ea14b2f2406.svn-base b/.svn/pristine/fb/fb98b45e5aa2f3340c57890adf225ea14b2f2406.svn-base new file mode 100644 index 0000000..241b7fc --- /dev/null +++ b/.svn/pristine/fb/fb98b45e5aa2f3340c57890adf225ea14b2f2406.svn-base @@ -0,0 +1,22 @@ +#ifndef __FREEGLUT_H__ +#define __FREEGLUT_H__ + +/* + * freeglut.h + * + * The freeglut library include file + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#include "freeglut_std.h" +#include "freeglut_ext.h" + +/*** END OF FILE ***/ + +#endif /* __FREEGLUT_H__ */ diff --git a/.svn/pristine/fb/fbd61f7e8c377d327a980c1f6ded7424129e248c.svn-base b/.svn/pristine/fb/fbd61f7e8c377d327a980c1f6ded7424129e248c.svn-base new file mode 100644 index 0000000..84fe2e0 --- /dev/null +++ b/.svn/pristine/fb/fbd61f7e8c377d327a980c1f6ded7424129e248c.svn-base @@ -0,0 +1,21 @@ +#ifndef FRAME_H +#define FRAME_H + +/** + * @brief Simple frame class containing a transformation and type + */ +class Frame { +public: + double transformation[16]; + unsigned int type; + + Frame() {} + Frame(double* transformation, unsigned int type) { set(transformation, type); } + void set(double* transformation, unsigned int type) { + for(unsigned int i = 0; i < 16; ++i) + this->transformation[i] = transformation[i]; + this->type = type; + } +}; + +#endif //FRAME_H \ No newline at end of file diff --git a/.svn/pristine/fb/fbfc6e30beb850758097f26946b9ef5b9f92f543.svn-base b/.svn/pristine/fb/fbfc6e30beb850758097f26946b9ef5b9f92f543.svn-base new file mode 100644 index 0000000..39e0484 --- /dev/null +++ b/.svn/pristine/fb/fbfc6e30beb850758097f26946b9ef5b9f92f543.svn-base @@ -0,0 +1,49 @@ +//---------------------------------------------------------------------- +// File: kd_pr_search.h +// Programmer: Sunil Arya and David Mount +// Description: Priority kd-tree search +// Last modified: 01/04/05 (Version 1.0) +//---------------------------------------------------------------------- +// Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +// David Mount. All Rights Reserved. +// +// This software and related documentation is part of the Approximate +// Nearest Neighbor Library (ANN). This software is provided under +// the provisions of the Lesser GNU Public License (LGPL). See the +// file ../ReadMe.txt for further information. +// +// The University of Maryland (U.M.) and the authors make no +// representations about the suitability or fitness of this software for +// any purpose. It is provided "as is" without express or implied +// warranty. +//---------------------------------------------------------------------- +// History: +// Revision 0.1 03/04/98 +// Initial release +//---------------------------------------------------------------------- + +#ifndef ANN_kd_pr_search_H +#define ANN_kd_pr_search_H + +#include "kd_tree.h" // kd-tree declarations +#include "kd_util.h" // kd-tree utilities +#include "pr_queue.h" // priority queue declarations +#include "pr_queue_k.h" // k-element priority queue + +#include // performance evaluation + +//---------------------------------------------------------------------- +// Global variables +// Active for the life of each call to Appx_Near_Neigh() or +// Appx_k_Near_Neigh(). +//---------------------------------------------------------------------- + +extern double ANNprEps; // the error bound +extern int ANNprDim; // dimension of space +extern ANNpoint ANNprQ; // query point +extern double ANNprMaxErr; // max tolerable squared error +extern ANNpointArray ANNprPts; // the points +extern ANNpr_queue *ANNprBoxPQ; // priority queue for boxes +extern ANNmin_k *ANNprPointMK; // set of k closest points + +#endif diff --git a/.svn/pristine/fc/fce684eabb4586c0fb0b613bb5975f302dfcf3ef.svn-base b/.svn/pristine/fc/fce684eabb4586c0fb0b613bb5975f302dfcf3ef.svn-base new file mode 100644 index 0000000..2a01966 --- /dev/null +++ b/.svn/pristine/fc/fce684eabb4586c0fb0b613bb5975f302dfcf3ef.svn-base @@ -0,0 +1,498 @@ +/* + * matchMarker implementation + * + * Copyright (C) Dorit Borrmann + * + * Released under the GPL version 3. + * + */ + +#include +using std::string; +#include +using std::cout; +using std::cerr; +using std::endl; +#include +using std::ofstream; +using std::ifstream; +#include +#include + +#include "slam6d/scan.h" + +#include "slam6d/scan_io.h" +#include "slam6d/globals.icc" +#include "slam6d/icp6Dminimizer.h" +#include "slam6d/icp6Dsvd.h" +#include "slam6d/icp6D.h" + +#ifndef _MSC_VER +#include +#else +#include "XGetopt.h" +#endif + +struct match { + double* s_a; + double* s_b; + double* s_c; + double* t_a; + double* t_b; + double* t_c; + int n_o_m; + double variance; + double alignxf[16]; +}; + +void refine(int source, int target, match &tmp) { + // transform scan according to matching triple + Scan::allScans[target]->transformToMatrix(tmp.alignxf,Scan::INVALID); + // search for point pairs + //TODO + bool quiet = true; + icp6Dminimizer *my_icp6Dminimizer = 0; + my_icp6Dminimizer = new icp6D_SVD(quiet); + + icp6D *my_icp = 0; + double mdm = 25; + int mni = 100; + my_icp = new icp6D(my_icp6Dminimizer, mdm, mni, quiet, false, -1, false, 1, 0.0000, false, false); + + my_icp->match(Scan::allScans[source], Scan::allScans[target]); + + ////cout << "Point pairs: "<< tmp.n_o_m << endl; + const double * transMat = Scan::allScans[target]->get_transMat(); + for(int i = 0; i < 16; i++) { + //cout << tmp.alignxf[i] << " " ; + tmp.alignxf[i] = transMat[i]; + } + //cout << endl; +} + +void evaluate(int source, int target, match &tmp) { + //cout << "S1 " << tmp.s_a[0] << " " << tmp.s_a[1] << " " << tmp.s_a[2] << endl; + //cout << "T1 " << tmp.t_a[0] << " " << tmp.t_a[1] << " " << tmp.t_a[2] << endl; + //cout << "S2 " << tmp.s_b[0] << " " << tmp.s_b[1] << " " << tmp.s_b[2] << endl; + //cout << "T2 " << tmp.t_b[0] << " " << tmp.t_b[1] << " " << tmp.t_b[2] << endl; + //cout << "S3 " << tmp.s_c[0] << " " << tmp.s_c[1] << " " << tmp.s_c[2] << endl; + //cout << "T3 " << tmp.t_c[0] << " " << tmp.t_c[1] << " " << tmp.t_c[2] << endl; + + // Point pairs + vector pairs_in; + pairs_in.push_back(PtPair(tmp.s_a, tmp.t_a)); + pairs_in.push_back(PtPair(tmp.s_b, tmp.t_b)); + pairs_in.push_back(PtPair(tmp.s_c, tmp.t_c)); + + // Calculate centroids + double centroid_s[3]; + double centroid_t[3]; + centroid_s[0] = ((tmp.s_a[0] + tmp.s_b[0] + tmp.s_c[0])/3.0); + centroid_s[1] = ((tmp.s_a[1] + tmp.s_b[1] + tmp.s_c[1])/3.0); + centroid_s[2] = ((tmp.s_a[2] + tmp.s_b[2] + tmp.s_c[2])/3.0); + centroid_t[0] = ((tmp.t_a[0] + tmp.t_b[0] + tmp.t_c[0])/3.0); + centroid_t[1] = ((tmp.t_a[1] + tmp.t_b[1] + tmp.t_c[1])/3.0); + centroid_t[2] = ((tmp.t_a[2] + tmp.t_b[2] + tmp.t_c[2])/3.0); + + // transform scan according to matching triple + icp6Dminimizer *my_icp6Dminimizer = 0; + my_icp6Dminimizer = new icp6D_SVD(true); + my_icp6Dminimizer->Point_Point_Align(pairs_in, tmp.alignxf, centroid_s, centroid_t); + Scan::allScans[target]->transformToMatrix(tmp.alignxf,Scan::INVALID); + + vector pairs_out; + // search for point pairs + Scan::getPtPairs(&pairs_out, Scan::allScans[source], Scan::allScans[target], 1, 0, 25.0, centroid_s, centroid_t); + + tmp.n_o_m = pairs_out.size(); + //cout << tmp.n_o_m << endl; + + if(tmp.n_o_m > Scan::allScans[target]->get_points_red_size()) { + //cout << "Point pairs: "<< tmp.n_o_m << endl; + + /* + for(int i = 0; i < 16; i++) { + cout << tmp.alignxf[i] << " "; + } + for(int i = 0; i < pairs_out.size(); i++) { + cout << pairs_out[i].p1.x << " " << pairs_out[i].p1.y << " " << pairs_out[i].p1.z << + " " << pairs_out[i].p2.x << " " << pairs_out[i].p2.y << " " << pairs_out[i].p2.z << endl; + } + */ + } + + //cout << "S1 " << tmp.s_a[0] << " " << tmp.s_a[1] << " " << tmp.s_a[2] << endl; + //cout << "T1 " << tmp.t_a[0] << " " << tmp.t_a[1] << " " << tmp.t_a[2] << endl; + //cout << "S2 " << tmp.s_b[0] << " " << tmp.s_b[1] << " " << tmp.s_b[2] << endl; + //cout << "T2 " << tmp.t_b[0] << " " << tmp.t_b[1] << " " << tmp.t_b[2] << endl; + //cout << "S3 " << tmp.s_c[0] << " " << tmp.s_c[1] << " " << tmp.s_c[2] << endl; + //cout << "T3 " << tmp.t_c[0] << " " << tmp.t_c[1] << " " << tmp.t_c[2] << endl; + //cout << endl; + Scan::allScans[target]->resetPose(); + + delete my_icp6Dminimizer; +} + +void matchBruteForce(int start, int end) { // BOF + double* const* source = Scan::allScans[start]->get_points_red(); + double* const* target = Scan::allScans[end]->get_points_red(); + int nr_m_s = Scan::allScans[start]->get_points_red_size(); + int nr_m_t = Scan::allScans[end]->get_points_red_size(); + double dist_s[nr_m_s][nr_m_s]; + double dist_t[nr_m_t][nr_m_t]; + double eps = 5.0; + vector matching_results; + + // calculate distance graphs + for(int i = 0; i < nr_m_s; i++) { + for(int j = i; j < nr_m_s; j++) { + double dist = sqrt(Dist2(source[i], source[j])); + dist_s[i][j] = dist; + dist_s[j][i] = dist; + //cout << dist << " "; + } + //cout << endl; + } + //cout << endl; + for(int i = 0; i < nr_m_t; i++) { + for(int j = i; j < nr_m_t; j++) { + double dist = sqrt(Dist2(target[i], target[j])); + dist_t[i][j] = dist; + dist_t[j][i] = dist; + //cout << dist << " "; + } + //cout << endl; + } + //cout << endl; + //cout << "Done calculating distances" << endl; + + // do matching + for(int i = 0; i < nr_m_s; i++) { // 1 + for(int j = i + 1; j < nr_m_s; j++) { // 2 + double dist_a = dist_s[i][j]; + for(int k = 0; k < nr_m_t; k++) { // 3 + for(int l = 0; l < nr_m_t; l++) { // 4 + if(fabs(dist_t[k][l] - dist_a) < eps) { // 5 + for(int m = j + 1; m < nr_m_s; m++) { // 6 + double dist_3_i = dist_s[i][m]; + double dist_3_j = dist_s[j][m]; + for(int n = 0; n < nr_m_t; n++) { // 7 + if(fabs(dist_t[k][n] - dist_3_i) < eps) { // 8 + if(fabs(dist_t[l][n] - dist_3_j) < eps) { // 9 + //match found calculate error function + match tmp; + tmp.s_a = source[i]; + tmp.s_b = source[j]; + tmp.s_c = source[m]; + tmp.t_a = target[k]; + tmp.t_b = target[l]; + tmp.t_c = target[n]; + evaluate(start, end, tmp); + matching_results.push_back(tmp); + } // 9 + } // 8 + } // 7 + } // 6 + } // 5 + } // 4 + } // 3 + } // 2 + } // 1 + int max = 0; + int max_i = 0; + for(int i = 0; i < matching_results.size(); i++) { + if(matching_results[i].n_o_m > max) { + max_i = i; + max = matching_results[i].n_o_m; + } + //cout << i << ": " << matching_results[i].n_o_m << ", " << matching_results[i].variance << endl; + for(int j = 0; j < 16; j++) { + //cout << matching_results[i].alignxf[j] << " "; + } + } + //cout << "Max index: " << max_i << ", points: " << max << endl; + for(int i = 0; i < 16; i++) { + //cout << matching_results[max_i].alignxf[i] << " "; + } + refine(start, end, matching_results[max_i]); + //cout << endl << "Refined: " << endl; + for(int i = 0; i < 16; i++) { + cout << matching_results[max_i].alignxf[i] << " "; + } + + cout << " 2" << endl; +} // EOF + +void matchMarker(int start, int end) { // BOF + cout << start << " " << end << endl; + double* const* source = Scan::allScans[start]->get_points_red(); + double* const* target = Scan::allScans[end]->get_points_red(); + int nr_m_s = Scan::allScans[start]->get_points_red_size(); + int nr_m_t = Scan::allScans[end]->get_points_red_size(); + cout << "Points: " << nr_m_s << " " << nr_m_t << endl; + double dist_s[nr_m_s][nr_m_s]; + double dist_t[nr_m_t][nr_m_t]; + double eps = 5.0; + vector matching_results; + + // calculate distance graphs + for(int i = 0; i < nr_m_s; i++) { + for(int j = i; j < nr_m_s; j++) { + double dist = sqrt(Dist2(source[i], source[j])); + dist_s[i][j] = dist; + dist_s[j][i] = dist; + //cout << dist << " "; + } + //cout << endl; + } + //cout << endl; + for(int i = 0; i < nr_m_t; i++) { + for(int j = i; j < nr_m_t; j++) { + double dist = sqrt(Dist2(target[i], target[j])); + dist_t[i][j] = dist; + dist_t[j][i] = dist; + //cout << dist << " "; + } + //cout << endl; + } + //cout << endl; + //cout << "Done calculating distances" << endl; + for(int runs = 0; runs < 100; runs++) { + int i = (int) (nr_m_s*(rand()/(RAND_MAX+1.0))); + int j = (int) (nr_m_s*(rand()/(RAND_MAX+1.0))); + int m = (int) (nr_m_s*(rand()/(RAND_MAX+1.0))); + double dist_a = dist_s[i][j]; + double dist_3_i = dist_s[i][m]; + double dist_3_j = dist_s[j][m]; + + + // do matching + for(int k = 0; k < nr_m_t; k++) { // 3 + for(int l = 0; l < nr_m_t; l++) { // 4 + if(fabs(dist_t[k][l] - dist_a) < eps) { // 5 + + for(int n = 0; n < nr_m_t; n++) { // 7 + if(fabs(dist_t[k][n] - dist_3_i) < eps) { // 8 + if(fabs(dist_t[l][n] - dist_3_j) < eps) { // 9 + //match found calculate error function + match tmp; + tmp.s_a = source[i]; + tmp.s_b = source[j]; + tmp.s_c = source[m]; + tmp.t_a = target[k]; + tmp.t_b = target[l]; + tmp.t_c = target[n]; + evaluate(start, end, tmp); + matching_results.push_back(tmp); + } // 9 + } // 8 + } // 7 + } // 6 + // 5 + } // 4 + } // 3 + } // 1 + int max = 0; + int max_i = 0; + for(int i = 0; i < matching_results.size(); i++) { + if(matching_results[i].n_o_m > max) { + max_i = i; + max = matching_results[i].n_o_m; + //cout << i << " " << max << endl; + } + //cout << i << ": " << matching_results[i].n_o_m << ", " << matching_results[i].variance << endl; + for(int j = 0; j < 16; j++) { + //cout << matching_results[i].alignxf[j] << " "; + } + } + cout << "Really?" << endl; + //cout << "Max index: " << max_i << ", points: " << max << endl; + for(int i = 0; i < 16; i++) { + //cout << matching_results[max_i].alignxf[i] << " "; + } + refine(start, end, matching_results[max_i]); + //cout << endl << "Refined: " << endl; + for(int i = 0; i < 16; i++) { + cout << matching_results[max_i].alignxf[i] << " "; + } + + cout << " 2" << endl; +} // EOF + +/** + * Explains the usage of this program's command line parameters + */ +void usage(char* prog) +{ +#ifndef _MSC_VER + const string bold("\033[1m"); + const string normal("\033[m"); +#else + const string bold(""); + const string normal(""); +#endif + cout << endl + << bold << "USAGE " << normal << endl + << " " << prog << "-s -e [options] directory" << endl << endl; + cout << bold << "OPTIONS" << normal << endl + << endl + << bold << " -s" << normal << " NR, " << bold << "--start=" << normal << "NR" << endl + << " start at scan NR (i.e., neglects the first NR scans)" << endl + << " [ATTENTION: counting naturally starts with 0]" << endl + << endl + << bold << " -e" << normal << " NR, " << bold << "--end=" << normal << "NR" << endl + << " end after scan NR" << endl + << endl + << bold << " -f" << normal << " F, " << bold << "--format=" << normal << "F" << endl + << " using shared library F for input" << endl + << " (chose F from {uos, uos_map, uos_rgb, uos_frames, uos_map_frames, old, rts, rts_map, ifp, riegl_txt, riegl_rgb, riegl_bin, rxp,zahn, ply})" << endl + << endl + << bold << " -d" << normal << " NR, " << bold << "--dist=" << normal << "NR" << endl + << " write all points that have no corresponding point closer than NR 'units'" << endl + << endl << endl; + + cout << bold << "EXAMPLES " << normal << endl + << " " << prog << " -m 500 -d 5 dat" << endl + << " " << prog << " --max=5000 -d 10.2 dat" << endl + << endl; + exit(1); +} + +/** A function that parses the command-line arguments and sets the respective flags. + * @param argc the number of arguments + * @param argv the arguments + * @param dir the directory + * @param start first scan number 'start' + * @param end last scan number 'end' + * @param dist the maximal distance for a point pair + * @param type the scan format + * @param desc true if start is greater than end + * @return 0, if the parsing was successful. 1 otherwise + */ +int parseArgs(int argc, char **argv, string &dir, + int &start, int &end, double &dist, + IOType &type, bool &desc) +{ + int c; + // from unistd.h: + extern char *optarg; + extern int optind; + + /* options descriptor */ + // 0: no arguments, 1: required argument, 2: optional argument + static struct option longopts[] = { + { "format", required_argument, 0, 'f' }, + { "start", required_argument, 0, 's' }, + { "end", required_argument, 0, 'e' }, + { "dist", required_argument, 0, 'd' }, + { 0, 0, 0, 0} // needed, cf. getopt.h + }; + + //cout << endl; + while ((c = getopt_long(argc, argv, "f:d:s:e:", longopts, NULL)) != -1) + switch (c) + { + case 'd': + dist = atof(optarg); + break; + case 's': + start = atoi(optarg); + if (start < 0) { cerr << "Error: Cannot start at a negative scan number.\n"; exit(1); } + break; + case 'e': + end = atoi(optarg); + if (end < 0) { cerr << "Error: Cannot end at a negative scan number.\n"; exit(1); } + break; + case 'f': + try { + type = formatname_to_io_type(optarg); + } catch (...) { // runtime_error + cerr << "Format " << optarg << " unknown." << endl; + abort(); + } + break; + case '?': + usage(argv[0]); + return 1; + default: + abort (); + } + + if(start < 0 || end < 0 || start == end) { + cerr << "\n*** You need two different scans for marker based position calculation ***" << endl; + usage(argv[0]); + } + if (optind != argc-1) { + cerr << "\n*** Directory missing ***" << endl; + usage(argv[0]); + } + dir = argv[optind]; + +#ifndef _MSC_VER + if (dir[dir.length()-1] != '/') dir = dir + "/"; +#else + if (dir[dir.length()-1] != '\\') dir = dir + "\\"; +#endif + if(start > end) { + double tmp = start; + start = end; + end = tmp; + desc = true; + } + + return 0; +} + + +/** + * Main program for calculating the difference of two scans. + * Usage: bin/scan_diff -d -s -e 'dir', + * Use -s and -e for the two scans, + * -d + * and 'dir' the directory of a set of scans + * Difference scans will be written to 'dir/diff/scan[00]s.3d' + * + */ +int main(int argc, char **argv) +{ + + cout << "(c) Jacobs University Bremen, gGmbH, 2010" << endl << endl; + + if (argc <= 1) { + usage(argv[0]); + } + + // parsing the command line parameters + // init, default values if not specified + string dir; + double dist = 0; + int start = -1, end = -1; + int maxDist = -1; + int minDist = -1; + IOType type = UOS; + bool desc = false; + + parseArgs(argc, argv, dir, start, end, dist, type, desc); + + Scan::readScansRedSearch(type, start, end, dir, maxDist, minDist, -1, 1, false, false, false); + cout << "Start match marker ..." << endl; + srand(time(0)); + srand(0); + long starttime = GetCurrentTimeInMilliSec(); + // matchBruteForce(start, end-start); + matchMarker(0, end - start); + starttime = (GetCurrentTimeInMilliSec() - starttime); + cout << " done in " << starttime << " ms" << endl; + + vector ::iterator Iter = Scan::allScans.begin(); + for( ; Iter != Scan::allScans.end(); ) { + Iter = Scan::allScans.begin(); + delete (*Iter); + cout << "."; + cout.flush(); + } + Scan::allScans.clear(); + + cout << endl << endl; + cout << "Normal program end." << endl << endl; +} diff --git a/.svn/pristine/fd/fd0a5f70fcf62b6831815e327f3e80f8c069a691.svn-base b/.svn/pristine/fd/fd0a5f70fcf62b6831815e327f3e80f8c069a691.svn-base new file mode 100644 index 0000000..1c72af8 --- /dev/null +++ b/.svn/pristine/fd/fd0a5f70fcf62b6831815e327f3e80f8c069a691.svn-base @@ -0,0 +1,365 @@ +/* + * scan_red implementation + * + * Copyright (C) Dorit Borrmann + * + * Released under the GPL version 3. + * + */ + + +/** + * @file + * @brief Main program for reducing 3D scans. + * + * Program to reduce scans for use with slam6d + * Usage: bin/scan_red -r 'dir', + * Use -r for octree based reduction (voxel size=) + * and 'dir' the directory of a set of scans + * Reduced scans will be written to 'dir/reduced' + * + * @author Dorit Borrmann. Automation Group, Jacobs University Bremen gGmbH, Germany. + */ +#ifdef _MSC_VER +#if !defined _OPENMP && defined OPENMP +#define _OPENMP +#endif +#endif + +#define WANT_STREAM ///< define the WANT stream :) +#include +using std::string; +#include +using std::cout; +using std::cerr; +using std::endl; +#include +using std::ofstream; +#include + +#include "slam6d/scan.h" +#ifdef WITH_SCANSERVER +#include "scanserver/clientInterface.h" +#endif //WITH_SCANSERVER + +#include "slam6d/globals.icc" + +#ifdef _OPENMP +#include +#endif + + +#ifndef _MSC_VER +#include +#else +#include "XGetopt.h" +#endif + +#ifdef _MSC_VER +#define strcasecmp _stricmp +#define strncasecmp _strnicmp +#include +#include +#else +#include +#include +#include +#include +#endif + + +/** + * Explains the usage of this program's command line parameters + */ +void usage(char* prog) +{ +#ifndef _MSC_VER + const string bold("\033[1m"); + const string normal("\033[m"); +#else + const string bold(""); + const string normal(""); +#endif + cout << endl + << bold << "USAGE " << normal << endl + << " " << prog << " [options] -r directory" << endl << endl; + cout << bold << "OPTIONS" << normal << endl + + << bold << " -e" << normal << " NR, " << bold << "--end=" << normal << "NR" << endl + << " end after scan NR" << endl + << endl + << bold << " -f" << normal << " F, " << bold << "--format=" << normal << "F" << endl + << " using shared library F for input" << endl + << " (chose F from {uos, uos_map, uos_rgb, uos_frames, uos_map_frames, old, rts, rts_map, ifp, riegl_txt, riegl_rgb, riegl_bin, zahn, ply})" << endl + << endl + << bold << " -m" << normal << " NR, " << bold << "--max=" << normal << "NR" << endl + << " neglegt all data points with a distance larger than NR 'units'" << endl + << endl + << bold << " -M" << normal << " NR, " << bold << "--min=" << normal << "NR" << endl + << " neglegt all data points with a distance smaller than NR 'units'" << endl + << endl + << bold << " -r" << normal << " NR, " << bold << "--reduce=" << normal << "NR" << endl + << " turns on octree based point reduction (voxel size=)" << endl + << endl + << bold << " -s" << normal << " NR, " << bold << "--start=" << normal << "NR" << endl + << " start at scan NR (i.e., neglects the first NR scans)" << endl + << " [ATTENTION: counting naturally starts with 0]" << endl + << endl + << endl << endl; + + cout << bold << "EXAMPLES " << normal << endl + << " " << prog << " -m 500 -r 5 dat" << endl + << " " << prog << " --max=5000 -r 10.2 dat" << endl + << " " << prog << " -s 2 -e 10 -r dat" << endl << endl; + exit(1); +} + +/** A function that parses the command-line arguments and sets the respective flags. + * @param argc the number of arguments + * @param argv the arguments + * @param dir the directory + * @param red using point reduction? + * @param rand use randomized point reduction? + * @param start starting at scan number 'start' + * @param end stopping at scan number 'end' + * @param maxDist - maximal distance of points being loaded + * @param minDist - minimal distance of points being loaded + * @param quiet switches on/off the quiet mode + * @param veryQuiet switches on/off the 'very quiet' mode + * @return 0, if the parsing was successful. 1 otherwise + */ +int parseArgs(int argc, char **argv, string &dir, double &red, + int &start, int &end, int &maxDist, int &minDist, int &octree, + IOType &type) +{ + bool reduced = false; + int c; + // from unistd.h: + extern char *optarg; + extern int optind; + + /* options descriptor */ + // 0: no arguments, 1: required argument, 2: optional argument + static struct option longopts[] = { + { "format", required_argument, 0, 'f' }, + { "max", required_argument, 0, 'm' }, + { "min", required_argument, 0, 'M' }, + { "start", required_argument, 0, 's' }, + { "end", required_argument, 0, 'e' }, + { "reduce", required_argument, 0, 'r' }, + { "octree", optional_argument, 0, 'O' }, + { 0, 0, 0, 0} // needed, cf. getopt.h + }; + + cout << endl; + while ((c = getopt_long(argc, argv, "f:r:s:e:m:M:O:", longopts, NULL)) != -1) + switch (c) + { + case 'r': + red = atof(optarg); + reduced = true; + break; + case 's': + start = atoi(optarg); + if (start < 0) { cerr << "Error: Cannot start at a negative scan number.\n"; exit(1); } + break; + case 'e': + end = atoi(optarg); + if (end < 0) { cerr << "Error: Cannot end at a negative scan number.\n"; exit(1); } + if (end < start) { cerr << "Error: cannot be smaller than .\n"; exit(1); } + break; + case 'f': + try { + type = formatname_to_io_type(optarg); + } catch (...) { // runtime_error + cerr << "Format " << optarg << " unknown." << endl; + abort(); + } + break; + case 'm': + maxDist = atoi(optarg); + break; + case 'O': + if (optarg) { + octree = atoi(optarg); + } else { + octree = 1; + } + break; + case 'M': + minDist = atoi(optarg); + break; + case '?': + usage(argv[0]); + return 1; + default: + abort (); + } + + if(!reduced) { + cerr << "\n*** Reduction method missed ***" << endl; + usage(argv[0]); + } + if (optind != argc-1) { + cerr << "\n*** Directory missing ***" << endl; + usage(argv[0]); + } + dir = argv[optind]; + +#ifndef _MSC_VER + if (dir[dir.length()-1] != '/') dir = dir + "/"; +#else + if (dir[dir.length()-1] != '\\') dir = dir + "\\"; +#endif + + return 0; +} + + +/** + * Main program for reducing scans. + * Usage: bin/scan_red -r 'dir', + * Use -r for octree based reduction (voxel size=) + * and 'dir' the directory of a set of scans + * Reduced scans will be written to 'dir/reduced' + * + */ +int main(int argc, char **argv) +{ + + cout << "(c) Jacobs University Bremen, gGmbH, 2010" << endl << endl; + + if (argc <= 1) { + usage(argv[0]); + } + + // parsing the command line parameters + // init, default values if not specified + string dir; + double red = -1.0; + int start = 0, end = -1; + int maxDist = -1; + int minDist = -1; + int octree = 0; + IOType type = RIEGL_TXT; + + parseArgs(argc, argv, dir, red, start, end, maxDist, minDist, octree, type); + +#ifdef WITH_SCANSERVER + try { + ClientInterface::create(); + } catch(std::runtime_error& e) { + cerr << "ClientInterface could not be created: " << e.what() << endl; + cerr << "Start the scanserver first." << endl; + exit(-1); + } +#endif //WITH_SCANSERVER + + // Get Scans +#ifndef WITH_SCANSERVER + Scan::dir = dir; + int fileNr = start; +#endif //WITH_SCANSERVER + string reddir = dir + "reduced"; + +#ifdef _MSC_VER + int success = mkdir(reddir.c_str()); +#else + int success = mkdir(reddir.c_str(), S_IRWXU|S_IRWXG|S_IRWXO); +#endif + if(success == 0) { + cout << "Writing scans to " << reddir << endl; + } else if(errno == EEXIST) { + cout << "Directory " << reddir << " exists already. CONTINUE" << endl; + } else { + cerr << "Creating directory " << reddir << " failed" << endl; + exit(1); + } + +#ifndef WITH_SCANSERVER + while (fileNr <= end) { + Scan::readScans(type, fileNr, fileNr, dir, maxDist, minDist, 0); + const double* rPos = Scan::allScans[0]->get_rPos(); + const double* rPosTheta = Scan::allScans[0]->get_rPosTheta(); + + // reduction filter for current scan! + + cout << "Reducing Scan No. " << fileNr << endl; + Scan::allScans[0]->calcReducedPoints(red, octree); + + + cout << "Writing Scan No. " << fileNr ; + cout << " with " << Scan::allScans[0]->get_points_red_size() << " points" << endl; + string scanFileName; + string poseFileName; + + scanFileName = dir + "reduced/scan" + to_string(fileNr,3) + ".3d"; + poseFileName = dir + "reduced/scan" + to_string(fileNr,3) + ".pose"; + + + ofstream redptsout(scanFileName.c_str()); + for (int j = 0; j < Scan::allScans[0]->get_points_red_size(); j++) { + Point p(Scan::allScans[0]->get_points_red()[j]); + //Points in global coordinate system + redptsout << p.x << " " << p.y << " " << p.z << endl; + + } + redptsout.close(); + redptsout.clear(); +#else //WITH_SCANSERVER + Scan::readScans(type, start, end, dir, maxDist, minDist); + for(std::vector::iterator it = Scan::allScans.begin(); it != Scan::allScans.end(); ++it) + { + Scan* scan = *it; + const double* rPos = scan->get_rPos(); + const double* rPosTheta = scan->get_rPosTheta(); + + scan->calcReducedPoints(red, octree); + + const char* id = scan->getIdentifier(); + cout << "Writing Scan No. " << id; + cout << " with " << scan->getCountReduced() << " points" << endl; + string scanFileName; + string poseFileName; + + scanFileName = dir + "reduced/scan" + id + ".3d"; + poseFileName = dir + "reduced/scan" + id + ".pose"; + + ofstream redptsout(scanFileName.c_str()); + DataXYZ xyz_r(scan->getXYZReduced()); + for(unsigned int j = 0; j < xyz_r.size(); j++) { + //Points in global coordinate system + redptsout << xyz_r[j][0] << " " << xyz_r[j][1] << " " << xyz_r[j][2] << endl; + } + redptsout.close(); + redptsout.clear(); +#endif //WITH_SCANSERVER + + ofstream posout(poseFileName.c_str()); + + posout << rPos[0] << " " + << rPos[1] << " " + << rPos[2] << endl + << deg(rPosTheta[0]) << " " + << deg(rPosTheta[1]) << " " + << deg(rPosTheta[2]) << endl; + + posout.close(); + posout.clear(); + +#ifndef WITH_SCANSERVER + delete Scan::allScans[0]; + Scan::allScans.clear(); + fileNr++; +#endif //WITH_SCANSERVER + } + + cout << endl << endl; + cout << "Normal program end." << endl << endl; + +#ifdef WITH_SCANSERVER + Scan::clearScans(); + ClientInterface::destroy(); +#endif //WITH_SCANSERVER +} + diff --git a/.svn/pristine/fd/fd11353b03cdcfb49ac376d848a88a029bbde1a5.svn-base b/.svn/pristine/fd/fd11353b03cdcfb49ac376d848a88a029bbde1a5.svn-base new file mode 100644 index 0000000..278bc0d Binary files /dev/null and b/.svn/pristine/fd/fd11353b03cdcfb49ac376d848a88a029bbde1a5.svn-base differ diff --git a/.svn/pristine/fd/fd166230bc1d63d6391747cc445d10b39a7cc23b.svn-base b/.svn/pristine/fd/fd166230bc1d63d6391747cc445d10b39a7cc23b.svn-base new file mode 100644 index 0000000..3ff3364 --- /dev/null +++ b/.svn/pristine/fd/fd166230bc1d63d6391747cc445d10b39a7cc23b.svn-base @@ -0,0 +1,36 @@ +/** + * @file + * @brief IO of a 3D scan in uos + reflectance file format + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SCAN_IO_TXYZR_H__ +#define __SCAN_IO_TXYZR_H__ + +#include +using std::string; +#include +using std::vector; + +#include "scan_io.h" + +/** + * @brief 3D scan loader for UOS + time/reflectance scans + * + * The compiled class is available as shared object file + */ +class ScanIO_txyzr : public ScanIO { +public: + virtual int readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss); +}; + +// Since this shared object file is loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/.svn/pristine/fd/fd3c4581e9ae32d430fb6d38f8737be21e182a7b.svn-base b/.svn/pristine/fd/fd3c4581e9ae32d430fb6d38f8737be21e182a7b.svn-base new file mode 100644 index 0000000..c959f46 --- /dev/null +++ b/.svn/pristine/fd/fd3c4581e9ae32d430fb6d38f8737be21e182a7b.svn-base @@ -0,0 +1,6112 @@ +%PDF-1.2 +7 0 obj +<< +/Type/Encoding +/Differences[1/dotaccent/fi/fl/fraction/hungarumlaut/Lslash/lslash/ogonek/ring 11/breve/minus +14/Zcaron/zcaron/caron/dotlessi/dotlessj/ff/ffi/ffl/notequal/infinity/lessequal/greaterequal/partialdiff/summation/product/pi/grave/quotesingle/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde +128/Euro/integral/quotesinglbase/florin/quotedblbase/ellipsis/dagger/daggerdbl/circumflex/perthousand/Scaron/guilsinglleft/OE/Omega/radical/approxequal +147/quotedblleft/quotedblright/bullet/endash/emdash/tilde/trademark/scaron/guilsinglright/oe/Delta/lozenge/Ydieresis +161/exclamdown/cent/sterling/currency/yen/brokenbar/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine/guillemotright/onequarter/onehalf/threequarters/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis] +>> +endobj +10 0 obj +<< +/Encoding 7 0 R +/Type/Font +/Subtype/Type1 +/Name/F1 +/FontDescriptor 9 0 R +/BaseFont/ECVAON+NimbusRomNo9L-Regu +/FirstChar 1 +/LastChar 255 +/Widths[333 556 556 167 333 611 278 333 333 0 333 564 0 611 444 333 278 0 0 0 0 0 +0 0 0 0 0 0 0 333 180 250 333 408 500 500 833 778 333 333 333 500 564 250 333 250 +278 500 500 500 500 500 500 500 500 500 500 278 278 564 564 564 444 921 722 667 667 +722 611 556 722 722 333 389 722 611 889 722 722 556 722 667 556 611 722 722 944 722 +722 611 333 278 333 469 500 333 444 500 444 500 444 333 500 500 278 278 500 278 778 +500 500 500 500 333 389 278 500 500 722 500 500 444 480 200 480 541 0 0 0 333 500 +444 1000 500 500 333 1000 556 333 889 0 0 0 0 0 0 444 444 350 500 1000 333 980 389 +333 722 0 0 722 0 333 500 500 500 500 200 500 333 760 276 500 564 333 760 333 400 +564 300 300 333 500 453 250 333 300 310 500 750 750 750 444 722 722 722 722 722 722 +889 667 611 611 611 611 333 333 333 333 722 722 722 722 722 722 722 564 722 722 722 +722 722 722 556 500 444 444 444 444 444 444 667 444 444 444 444 444 278 278 278 278 +500 500 500 500 500 500 500 564 500 500 500 500 500 500 500 500] +>> +endobj +13 0 obj +<< +/Encoding 7 0 R +/Type/Font +/Subtype/Type1 +/Name/F2 +/FontDescriptor 12 0 R +/BaseFont/BECENO+NimbusRomNo9L-ReguItal +/FirstChar 1 +/LastChar 255 +/Widths[333 500 500 167 333 556 278 333 333 0 333 675 0 556 389 333 278 0 0 0 0 0 +0 0 0 0 0 0 0 333 214 250 333 420 500 500 833 778 333 333 333 500 675 250 333 250 +278 500 500 500 500 500 500 500 500 500 500 333 333 675 675 675 500 920 611 611 667 +722 611 611 722 722 333 444 667 556 833 667 722 611 722 611 500 556 722 611 833 611 +556 556 389 278 389 422 500 333 500 500 444 500 444 278 500 500 278 278 444 278 722 +500 500 500 500 389 389 278 500 444 667 444 444 389 400 275 400 541 0 0 0 333 500 +556 889 500 500 333 1000 500 333 944 0 0 0 0 0 0 556 556 350 500 889 333 980 389 +333 667 0 0 556 0 389 500 500 500 500 275 500 333 760 276 500 675 333 760 333 400 +675 300 300 333 500 523 250 333 300 310 500 750 750 750 500 611 611 611 611 611 611 +889 667 611 611 611 611 333 333 333 333 722 667 722 722 722 722 722 675 722 722 722 +722 722 556 611 500 500 500 500 500 500 500 667 444 444 444 444 444 278 278 278 278 +500 500 500 500 500 500 500 675 500 500 500 500 500 444 500 444] +>> +endobj +16 0 obj +<< +/Encoding 7 0 R +/Type/Font +/Subtype/Type1 +/Name/F3 +/FontDescriptor 15 0 R +/BaseFont/LAQFRY+NimbusMonL-Regu +/FirstChar 1 +/LastChar 255 +/Widths[600 600 600 600 600 600 600 600 600 0 600 600 0 600 600 600 600 0 0 0 0 0 +0 0 0 0 0 0 0 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 +600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 +600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 +600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 +600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 0 0 0 600 600 +600 600 600 600 600 600 600 600 600 0 0 0 0 0 0 600 600 600 600 600 600 600 600 600 +600 0 0 600 0 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 +600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 +600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 +600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 +600 600 600 600 600 600 600 600 600 600 600 600 600 600 600] +>> +endobj +19 0 obj +<< +/Encoding 7 0 R +/Type/Font +/Subtype/Type1 +/Name/F4 +/FontDescriptor 18 0 R +/BaseFont/DPNLEX+NimbusRomNo9L-MediItal +/FirstChar 1 +/LastChar 255 +/Widths[333 556 556 167 333 611 278 333 333 0 333 606 0 611 389 333 278 0 0 0 0 0 +0 0 0 0 0 0 0 333 278 250 389 555 500 500 833 778 333 333 333 500 570 250 333 250 +278 500 500 500 500 500 500 500 500 500 500 333 333 570 570 570 500 832 667 667 667 +722 667 667 722 778 389 500 667 611 889 722 722 611 722 667 556 611 722 667 889 667 +611 611 333 278 333 570 500 333 500 500 444 500 444 333 500 556 278 278 500 278 778 +556 500 500 500 389 389 278 556 444 667 500 444 389 348 220 348 570 0 0 0 333 500 +500 1000 500 500 333 1000 556 333 944 0 0 0 0 0 0 500 500 350 500 1000 333 1000 389 +333 722 0 0 611 0 389 500 500 500 500 220 500 333 747 266 500 606 333 747 333 400 +570 300 300 333 576 500 250 333 300 300 500 750 750 750 500 667 667 667 667 667 667 +944 667 667 667 667 667 389 389 389 389 722 722 722 722 722 722 722 570 722 722 722 +722 722 611 611 500 500 500 500 500 500 500 722 444 444 444 444 444 278 278 278 278 +500 556 500 500 500 500 500 570 500 556 556 556 556 444 500 444] +>> +endobj +22 0 obj +<< +/Encoding 7 0 R +/Type/Font +/Subtype/Type1 +/Name/F5 +/FontDescriptor 21 0 R +/BaseFont/KXVUVG+NimbusRomNo9L-Medi +/FirstChar 1 +/LastChar 255 +/Widths[333 556 556 167 333 667 278 333 333 0 333 570 0 667 444 333 278 0 0 0 0 0 +0 0 0 0 0 0 0 333 278 250 333 555 500 500 1000 833 333 333 333 500 570 250 333 250 +278 500 500 500 500 500 500 500 500 500 500 333 333 570 570 570 500 930 722 667 722 +722 667 611 778 778 389 500 778 667 944 722 778 611 778 722 556 667 722 722 1000 +722 722 667 333 278 333 581 500 333 500 556 444 556 444 333 500 556 278 333 556 278 +833 556 500 556 556 444 389 333 556 500 722 500 500 444 394 220 394 520 0 0 0 333 +500 500 1000 500 500 333 1000 556 333 1000 0 0 0 0 0 0 500 500 350 500 1000 333 1000 +389 333 722 0 0 722 0 333 500 500 500 500 220 500 333 747 300 500 570 333 747 333 +400 570 300 300 333 556 540 250 333 300 330 500 750 750 750 500 722 722 722 722 722 +722 1000 722 667 667 667 667 389 389 389 389 722 722 778 778 778 778 778 570 778 +722 722 722 722 722 611 556 500 500 500 500 500 500 722 444 444 444 444 444 278 278 +278 278 500 556 500 500 500 500 500 570 500 556 556 556 556 500 556 500] +>> +endobj +23 0 obj +<< +/Type/Encoding +/Differences[0/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/alpha/beta/gamma/delta/epsilon1/zeta/eta/theta/iota/kappa/lambda/mu/nu/xi/pi/rho/sigma/tau/upsilon/phi/chi/psi/omega/epsilon/theta1/pi1/rho1/sigma1/phi1/arrowlefttophalf/arrowleftbothalf/arrowrighttophalf/arrowrightbothalf/arrowhookleft/arrowhookright/triangleright/triangleleft/zerooldstyle/oneoldstyle/twooldstyle/threeoldstyle/fouroldstyle/fiveoldstyle/sixoldstyle/sevenoldstyle/eightoldstyle/nineoldstyle/period/comma/less/slash/greater/star/partialdiff/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/flat/natural/sharp/slurbelow/slurabove/lscript/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/dotlessi/dotlessj/weierstrass/vector/tie/psi +160/space/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi 173/Omega/alpha/beta/gamma/delta/epsilon1/zeta/eta/theta/iota/kappa/lambda/mu/nu/xi/pi/rho/sigma/tau/upsilon/phi/chi/psi/tie] +>> +endobj +26 0 obj +<< +/Encoding 23 0 R +/Type/Font +/Subtype/Type1 +/Name/F6 +/FontDescriptor 25 0 R +/BaseFont/OZLLCB+CMMI10 +/FirstChar 33 +/LastChar 196 +/Widths[622.5 466.3 591.4 828.1 517 362.8 654.2 1000 1000 1000 1000 277.8 277.8 500 +500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 777.8 500 777.8 500 530.9 +750 758.5 714.7 827.9 738.2 643.1 786.2 831.3 439.6 554.5 849.3 680.6 970.1 803.5 +762.8 642 790.6 759.3 613.2 584.4 682.8 583.3 944.4 828.5 580.6 682.6 388.9 388.9 +388.9 1000 1000 416.7 528.6 429.2 432.8 520.5 465.6 489.6 477 576.2 344.5 411.8 520.6 +298.4 878 600.2 484.7 503.1 446.4 451.2 468.7 361.1 572.5 484.7 715.9 571.5 490.3 +465 322.5 384 636.5 500 277.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 615.3 833.3 762.8 694.4 742.4 831.3 779.9 583.3 666.7 612.2 0 0 772.4 +639.7 565.6 517.7 444.4 405.9 437.5 496.5 469.4 353.9 576.2 583.3 602.5 494 437.5 +570 517 571.4 437.2 540.3 595.8 625.7 651.4 277.8] +>> +endobj +27 0 obj +<< +/Type/Encoding +/Differences[0/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/exclam/quotedblright/numbersign/dollar/percent/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/exclamdown/equal/questiondown/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/quotedblleft/bracketright/circumflex/dotaccent/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/endash/emdash/hungarumlaut/tilde/dieresis/suppress +160/space/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi 173/Omega/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/dieresis] +>> +endobj +30 0 obj +<< +/Encoding 27 0 R +/Type/Font +/Subtype/Type1 +/Name/F7 +/FontDescriptor 29 0 R +/BaseFont/ADFDHS+CMR10 +/FirstChar 33 +/LastChar 196 +/Widths[277.8 500 833.3 500 833.3 777.8 277.8 388.9 388.9 500 777.8 277.8 333.3 277.8 +500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 277.8 777.8 472.2 472.2 777.8 +750 708.3 722.2 763.9 680.6 652.8 784.7 750 361.1 513.9 777.8 625 916.7 750 777.8 +680.6 777.8 736.1 555.6 722.2 750 750 1027.8 750 750 611.1 277.8 500 277.8 500 277.8 +277.8 500 555.6 444.4 555.6 444.4 305.6 500 555.6 277.8 305.6 527.8 277.8 833.3 555.6 +500 555.6 527.8 391.7 394.4 388.9 555.6 527.8 722.2 527.8 527.8 444.4 500 1000 500 +500 500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 625 833.3 +777.8 694.4 666.7 750 722.2 777.8 722.2 777.8 0 0 722.2 583.3 555.6 555.6 833.3 833.3 +277.8 305.6 500 500 500 500 500 750 444.4 500 722.2 777.8 500 902.8 1013.9 777.8 +277.8 500] +>> +endobj +32 0 obj +<< +/Filter[/FlateDecode] +/Length 4504 +>> +stream +x跁ZKw廴鞭鏦h7儡蚒靫畆3:眆6 5xXV~}戢A俍 汉胡]锲嶇z尥 ?唿﨧忸覜千(莨^t&n<禅洴E;Pl0p=熓 伉憮鱵U櫔麿>杕迟喲蝘煥=鏢7}糖釾6蟁{j{ 揊n溰l冊蛌<饪趠;枀痉}]uA剧(I\紺7艄鱙s鐼>H痏y唄琥),+惴4H6L舚4絃湨佞Y祛b*i拡)餂a,莍4鏪}字輨!t悭i +迟9稡鰗S~3斻難线&咚ya屽bY閖絫D3~*6佺|恿#谋~6}7齪饼 屲Lv/l袻哋藛.宝;鍺M筸y 曾='荷鍿 b7嘿啤rS鸻祗b蕏 if朴閒'蓧+"?e畧黡 +F,4&9咚~鉭N墼i),鵀颦JD缃汩iN񲣣軵剮檉(橹緊|1稝t吀ZbP蔫嶉"g入甊婑ɡ暐寂/鍃$j?v::鋍.P讝W*鲘旟酨b誜mO#V$缀夹唃Z62琕@[nZZ)憖刷襦裝壹拞儜Q!9O>5∮l2守驇先 8槟qK;窤猐;W罊忤-6繦e#|q原瀱駦U<=核杪电]鞊Z癘4滐s访薷,9翦寪!R觔/ㄊ^.楎x銌I鎡y勤匑骳4虯耥呢葩苼改tX汻Y蹆B烴Q堅倏畺袧kx:锶 iaF|C向憲U/+VpE=Uc-Z9#灵膮b鷟惗SU玌1<}窦陁b楣想汍8氌h:繎4|衈ゑ蔘邬;"Πg浧⒐7.#%F蛧o&R迷蛌2/浖躃 3m}覓秩 馶鉬;蹿酭WF,龉甌鮄6m疺觷+調bF喝Y 娯o厔:櫑册躑-鉲q&蟤O[琲 嫕燐;~睿h|{殑坔00E鈢*yc趇>看E甋-鋂旭鍗灒墅鬸}o绺諳亻9e墰勳dX At7ǜ蜂﹝Bt 墳戬沵 &侒/Zo饆芜w 歿 +童椝仡萶J鶔=Y荊3[坬@棃V苓厪" 禊iβi蚲爻@"7迕嘺Y嫏e孵e#诞WJ迌)2篅;4R貝,%謧魰,嘊Q盲}燻仾[R芧鎖齀^镮社}qtQ鮵IYe6H晽e莸=澝(x虇捴_魗yPG駖R] ┥譨45硿 +礈4 +(ZBc.;懛Yi痠l浂~$戙饝剳蠌嘿鍎詰蟘XvI@覤┚癛=浏僼3Ne琢z嗴*绿5 +炇*膿=_偤("j/*7だi虢殪1KQ{緊銾(>W1`?B蓋7.蛩6寈奥a,X*枀騊>#竅.d@柗趈[4{案4#衲 +\啸嵤 耿诰7浓8"2菰$^aC搨]r 笁7礪1 +×HC鹬H/旃NF寻鮴苪j'颣姸韷泍環緐犓硋E 8罟劊瓗 .w#駵咺齖dR傇驮o`Y沩7錒炮秉劂jd豷鞈夤絻嗆Z﹡幘两侸伕_黂瓘,惣EC6e舦/恼5捪G伳*鈨爳#_U鴴@种诘1八掯.0tV稪U缯晝7}.M@謽et逎,xT>W頌稡0栒H2(U98LfrR撃彦繸摑巃陯0bG 怣0告`礓g絧尗Isb(擯=$8oK]翃虹鲑;慂x蘂&>勷R7∠`<8預B6岔彟イ\萇,嚕郍9f "M;鍿{+/擊#塿XsS53爱lV蒻JP}蕦犌I 略瘈檎+XmW脡鹇C孳CF柨婲A癬淿~O*燒2Ⅺ鏆V)X!FiJ鰤攋j IS.oM釶牎氇/'Q@+Q壿b詐暱N 鵰熴 +⺈&>9;齿a棧湈誊呀恌0受1Qi孙覗0?3#嬸啅5妲,B樌&┮Lu礔!寃"脿慼嵁y)B燘N倪@;蕕o帝Qu;5,!"昄鐿v麼 +b{闌鮵髄 邘BmPZ/ \{俤蟊 HA溠Lj馪M漟.4杋覈'Cz駊+櫂e預z镗8v 箑 偃洹錤暾,3 沇贙Ys W(罀$俼Y%I<-x瀦._*y㎎帚J郫F淍,@緋Le班敧鞤弹褄藾 )燞豧P餷UBY磧(@jF橩S譾噏P怯v=ge +%?:蓹1菽tP偍rl鮡撃葠茷u|<8>S{(顝g-侤FZ-镈+#3苀Ulg-%9#b赅B繞噒㧐_L濞攪vH+K檤j?摝簃#[lS6,9浣纵1去匤!?h*06頌$;娌7$駫姶EL9g 箺旒:b茐箸'囘乆:b腴1{繱蚏@:9d?巉厷H玽W禴KL崋﹏!蘊嚈颉鑖狽 _@鲢rc愊8濧富&S7 g戋 癄&r諸).dC载v鞭^6!劒痽K剧>ij彫糓9愆 ?0E_蝭絭5烔?滪鈆縜фlLH娂蒶#デF)畦涤71;鸂睅>zq:豸裷翝g9$'e腥騙礃5鴃(払=0喺懩 j豫FK`祖JD.;籶=﹡淴親[蹗<*9Do3 驯課)q旰CfsQpyF*譁!櫽H荒Mc蚈u9胪m組蔪\y +蠍羸^虖?検$;倫銓"q +毽#w逬yJ鼱Vr撘摷 9唫 柰dNH扬=!XLc%誴x,榘眔墜腋W<鰅)l铅途m W&彂/5?I牨S_v莥4$)畒&g*()飴)蟮q偀擉跧Q`_`8J>騟S"垃Y執妮-蝚&紶=抒司PV?ZD6鱜萍┌B駼珗愽?)"Oe%$-瀺崪锐婑⒄俊9qa辬迠飰欟牑 +A'蒩#韊屋觝;缫w邨鍵03}亳f痡O;過瞣}旽m験[廾c簪5> 礞=A)闟裿T倃:r儡6kE嗫恞+4(り鼢鱌 ?^c唍蹑熑,Ju.pr薛 +'鶆oz悊R牵5^a k琬)?\mP侽v摠黴/ヘ6lT謼6+rz]H4hひ^塃璉鎌;DV仧i脌3*N持櫟昙EP屇囑 r傛M&d族眏」髪剂9.f嚸湛犑竒媕: +替僨@頫y瘄7觚&臎(? <聧'T觇#d$Y岧衞H公z充x*犗廙[衩篌脍r┎划/+Y = 怸iхc莍4甸飈踱t妫: +6>?╃猜+Q杀 ki栙衝b砲戰0ux鸔6t<瞚細{$蘺宵鉓鑸厞鎯Dpl"尿O)謳B5絁<楆u瓥鼽逨d弴驵泓偼 x#R4{+暺,^8弸1隲 ++蔀騊ir喑焳,'鵜厯 嬰A}閲餾禥=U{$dladq鵉,廿 %=瀗"墱[%F f,%b廛5鹠Eq廣3鑫]a 贫}K魃遂遀魍牂辩-璃_喀q錕$獂h蛞鼤畿蹉凼o~﹂8 疃9炫q綵L观%c餹FΕa>伳穳峯揺翌崰芯钁 邙> u 澌乑M┫唲 捱 +0*1i#玢(H簨婾候d肸7? B2,q*珸枲歫P璕g+:W鸿e5粒鯳鋱]諛訸桲5 898諚閩[!癘Q萍椏饘z錈U睤b其rl愒瓖0争a:C辏;=茯cカZ\k.x蚓w0滖5烊p赩狨ClBN"|o打3至\ r駙2$a脐厞a?湌B毁蚎9q蕯 ]zV勣k +,略(e砯聪A历懼黙9yC 箸|稂鹀肁$ Da ^Fe_仸蚘皼汖赝\A8 酀4B3 qH-/蹨磨P4+C:?u凒O"2篩?礼~葇]弧齥嫠鍾繀R穏馅>3 E遤坹 +?G咉颪I|9I凴9<鈇綌|n掑H<7嵨挛覫顠櫓╆僼<鵢繾'叀岍橽 +襽錋砾_狔姳<骏i揓 +endstream +endobj +34 0 obj +<< +/F1 10 0 R +/F2 13 0 R +/F3 16 0 R +/F4 19 0 R +/F5 22 0 R +/F6 26 0 R +/F7 30 0 R +>> +endobj +6 0 obj +<< +/ProcSet[/PDF/Text/ImageC] +/Font 34 0 R +>> +endobj +35 0 obj +<< +/Filter[/FlateDecode] +/Width 83 +/Height 117 +/BitsPerComponent 8 +/ColorSpace/DeviceRGB +/Length 788 +>> +stream +x陧\藪 毠ve廊O X嚟濌NBb恊檛飬B$躑{s棓@[Lc般JI杫鉳甌漛.B+Al夈単=磨> V翆鬓$7v砜4蟇#%M.;0颖烳($鬈睩3_委澷hS尡,JS檷爂忡<銑T*{g薁G+~!蛢Q:櫢: 貤vM>yq襲viX"酦妇nvo綢n&&$=痦伕@猢叝斎骢^;1O拈pp?eeRk)O"濗闾<7n暈>酚~1犽^I鑦锶X'歯R珈\秱n匓( +匓“ b +endstream +endobj +40 0 obj +<< +/Encoding 27 0 R +/Type/Font +/Subtype/Type1 +/Name/F8 +/FontDescriptor 39 0 R +/BaseFont/TUVJZO+CMBX10 +/FirstChar 33 +/LastChar 196 +/Widths[350 602.8 958.3 575 958.3 894.4 319.4 447.2 447.2 575 894.4 319.4 383.3 319.4 +575 575 575 575 575 575 575 575 575 575 575 319.4 319.4 350 894.4 543.1 543.1 894.4 +869.4 818.1 830.6 881.9 755.6 723.6 904.2 900 436.1 594.4 901.4 691.7 1091.7 900 +863.9 786.1 863.9 862.5 638.9 800 884.7 869.4 1188.9 869.4 869.4 702.8 319.4 602.8 +319.4 575 319.4 319.4 559 638.9 511.1 638.9 527.1 351.4 575 638.9 319.4 351.4 606.9 +319.4 958.3 638.9 575 638.9 606.9 473.6 453.6 447.2 638.9 606.9 830.6 606.9 606.9 +511.1 575 1150 575 575 575 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 691.7 958.3 894.4 805.6 766.7 900 830.6 894.4 830.6 894.4 0 0 830.6 670.8 +638.9 638.9 958.3 958.3 319.4 351.4 575 575 575 575 575 869.4 511.1 597.2 830.6 894.4 +575 1041.7 1169.4 894.4 319.4 575] +>> +endobj +43 0 obj +<< +/Encoding 23 0 R +/Type/Font +/Subtype/Type1 +/Name/F9 +/FontDescriptor 42 0 R +/BaseFont/JEEXPI+CMMI7 +/FirstChar 33 +/LastChar 196 +/Widths[719.7 539.7 689.9 950 592.7 439.2 751.4 1138.9 1138.9 1138.9 1138.9 339.3 +339.3 585.3 585.3 585.3 585.3 585.3 585.3 585.3 585.3 585.3 585.3 585.3 585.3 339.3 +339.3 892.9 585.3 892.9 585.3 610.1 859.1 863.2 819.4 934.1 838.7 724.5 889.4 935.6 +506.3 632 959.9 783.7 1089.4 904.9 868.9 727.3 899.7 860.6 701.5 674.8 778.2 674.6 +1074.4 936.9 671.5 778.4 462.3 462.3 462.3 1138.9 1138.9 478.2 619.7 502.4 510.5 +594.7 542 557.1 557.3 668.8 404.2 472.7 607.3 361.3 1013.7 706.2 563.9 588.9 523.6 +530.4 539.2 431.6 675.4 571.4 826.4 647.8 579.4 545.8 398.6 442 730.1 585.3 339.3 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 693.8 954.4 868.9 +797.6 844.5 935.6 886.3 677.6 769.8 716.9 0 0 880 742.7 647.8 600.1 519.2 476.1 519.8 +588.6 544.1 422.8 668.8 677.6 694.6 572.8 519.8 668 592.7 662 526.8 632.9 686.9 713.8 +756 339.3] +>> +endobj +46 0 obj +<< +/Encoding 23 0 R +/Type/Font +/Subtype/Type1 +/Name/F10 +/FontDescriptor 45 0 R +/BaseFont/WZHSUD+CMMI5 +/FirstChar 33 +/LastChar 196 +/Widths[886.4 674.7 855.3 1144.8 726 578.1 918.1 1361.1 1361.1 1361.1 1361.1 458.3 +458.3 736.1 736.1 736.1 736.1 736.1 736.1 736.1 736.1 736.1 736.1 736.1 736.1 458.3 +458.3 1083.3 736.1 1083.3 736.1 749 1036.1 1037 996 1109.9 1007 867.4 1064 1110.4 +626.7 772.9 1138.9 955.6 1284 1075.7 1047.5 875.4 1082.2 1030 856.3 832.3 943.9 827.8 +1279.2 1112.9 824.3 943.1 597.2 597.2 597.2 1361.1 1361.1 597.2 774.4 633.3 649.4 +739.7 677 684 700.6 827.6 533.6 588.2 758.1 480.3 1228 880.8 702.8 739.7 658.9 671.3 +670.1 563.7 846.1 722.2 1009 791.7 730.6 688.7 533.6 553.5 889.2 736.1 458.3 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 832.6 1152.8 1047.5 +966.7 1017.7 1110.4 1065.3 840.3 944.5 893.5 0 0 1060.6 913.3 790.6 746.9 654.2 613.5 +666.7 743.8 677.1 549.8 827.6 840.3 849.8 712 666.7 831.1 726 815.2 681.6 791.7 841.7 +864.6 930.6 458.3] +>> +endobj +49 0 obj +<< +/Type/Font +/Subtype/Type1 +/Name/F11 +/FontDescriptor 48 0 R +/BaseFont/AKENVG+CMEX10 +/FirstChar 33 +/LastChar 196 +/Widths[791.7 583.3 583.3 638.9 638.9 638.9 638.9 805.6 805.6 805.6 805.6 1277.8 +1277.8 811.1 811.1 875 875 666.7 666.7 666.7 666.7 666.7 666.7 888.9 888.9 888.9 +888.9 888.9 888.9 888.9 666.7 875 875 875 875 611.1 611.1 833.3 1111.1 472.2 555.6 +1111.1 1511.1 1111.1 1511.1 1111.1 1511.1 1055.6 944.4 472.2 833.3 833.3 833.3 833.3 +833.3 1444.4 1277.8 555.6 1111.1 1111.1 1111.1 1111.1 1111.1 944.4 1277.8 555.6 1000 +1444.4 555.6 1000 1444.4 472.2 472.2 527.8 527.8 527.8 527.8 666.7 666.7 1000 1000 +1000 1000 1055.6 1055.6 1055.6 777.8 666.7 666.7 450 450 450 450 777.8 777.8 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 458.3 458.3 416.7 416.7 +472.2 472.2 472.2 472.2 583.3 583.3 0 0 472.2 472.2 333.3 555.6 577.8 577.8 597.2 +597.2 736.1 736.1 527.8 527.8 583.3 583.3 583.3 583.3 750 750 750 750 1044.4 1044.4 +791.7 777.8] +>> +endobj +52 0 obj +<< +/Encoding 27 0 R +/Type/Font +/Subtype/Type1 +/Name/F12 +/FontDescriptor 51 0 R +/BaseFont/OVJVAS+CMR7 +/FirstChar 33 +/LastChar 196 +/Widths[323.4 569.4 938.5 569.4 938.5 877 323.4 446.4 446.4 569.4 877 323.4 384.9 +323.4 569.4 569.4 569.4 569.4 569.4 569.4 569.4 569.4 569.4 569.4 569.4 323.4 323.4 +323.4 877 538.7 538.7 877 843.3 798.6 815.5 860.1 767.9 737.1 883.9 843.3 412.7 583.3 +874 706.4 1027.8 843.3 877 767.9 877 829.4 631 815.5 843.3 843.3 1150.8 843.3 843.3 +692.5 323.4 569.4 323.4 569.4 323.4 323.4 569.4 631 507.9 631 507.9 354.2 569.4 631 +323.4 354.2 600.2 323.4 938.5 631 569.4 631 600.2 446.4 452.6 446.4 631 600.2 815.5 +600.2 600.2 507.9 569.4 1138.9 569.4 569.4 569.4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 706.4 938.5 877 781.8 754 843.3 815.5 877 815.5 +877 0 0 815.5 677.6 646.8 646.8 970.2 970.2 323.4 354.2 569.4 569.4 569.4 569.4 569.4 +843.3 507.9 569.4 815.5 877 569.4 1013.9 1136.9 877 323.4 569.4] +>> +endobj +53 0 obj +<< +/Type/Encoding +/Differences[0/minus/periodcentered/multiply/asteriskmath/divide/diamondmath/plusminus/minusplus/circleplus/circleminus/circlemultiply/circledivide/circledot/circlecopyrt/openbullet/bullet/equivasymptotic/equivalence/reflexsubset/reflexsuperset/lessequal/greaterequal/precedesequal/followsequal/similar/approxequal/propersubset/propersuperset/lessmuch/greatermuch/precedes/follows/arrowleft/arrowright/arrowup/arrowdown/arrowboth/arrownortheast/arrowsoutheast/similarequal/arrowdblleft/arrowdblright/arrowdblup/arrowdbldown/arrowdblboth/arrownorthwest/arrowsouthwest/proportional/prime/infinity/element/owner/triangle/triangleinv/negationslash/mapsto/universal/existential/logicalnot/emptyset/Rfractur/Ifractur/latticetop/perpendicular/aleph/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/union/intersection/unionmulti/logicaland/logicalor/turnstileleft/turnstileright/floorleft/floorright/ceilingleft/ceilingright/braceleft/braceright/angbracketleft/angbracketright/bar/bardbl/arrowbothv/arrowdblbothv/backslash/wreathproduct/radical/coproduct/nabla/integral/unionsq/intersectionsq/subsetsqequal/supersetsqequal/section/dagger/daggerdbl/paragraph/club/diamond/heart/spade/arrowleft +161/minus/periodcentered/multiply/asteriskmath/divide/diamondmath/plusminus/minusplus/circleplus/circleminus +173/circlemultiply/circledivide/circledot/circlecopyrt/openbullet/bullet/equivasymptotic/equivalence/reflexsubset/reflexsuperset/lessequal/greaterequal/precedesequal/followsequal/similar/approxequal/propersubset/propersuperset/lessmuch/greatermuch/precedes/follows/arrowleft/spade] +>> +endobj +56 0 obj +<< +/Encoding 53 0 R +/Type/Font +/Subtype/Type1 +/Name/F13 +/FontDescriptor 55 0 R +/BaseFont/QTMLEN+CMSY10 +/FirstChar 33 +/LastChar 196 +/Widths[1000 500 500 1000 1000 1000 777.8 1000 1000 611.1 611.1 1000 1000 1000 777.8 +275 1000 666.7 666.7 888.9 888.9 0 0 555.6 555.6 666.7 500 722.2 722.2 777.8 777.8 +611.1 798.5 656.8 526.5 771.4 527.8 718.7 594.9 844.5 544.5 677.8 762 689.7 1200.9 +820.5 796.1 695.6 816.7 847.5 605.6 544.6 625.8 612.8 987.8 713.3 668.3 724.7 666.7 +666.7 666.7 666.7 666.7 611.1 611.1 444.4 444.4 444.4 444.4 500 500 388.9 388.9 277.8 +500 500 611.1 500 277.8 833.3 750 833.3 416.7 666.7 666.7 777.8 777.8 444.4 444.4 +444.4 611.1 777.8 777.8 777.8 777.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 777.8 277.8 777.8 500 777.8 500 777.8 777.8 777.8 777.8 0 0 777.8 +777.8 777.8 1000 500 500 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 +777.8 777.8 1000 1000 777.8 777.8 1000 777.8] +>> +endobj +59 0 obj +<< +/Encoding 27 0 R +/Type/Font +/Subtype/Type1 +/Name/F14 +/FontDescriptor 58 0 R +/BaseFont/ZOSDNJ+CMBX7 +/FirstChar 33 +/LastChar 196 +/Widths[397.2 667.9 1073.4 647.2 1073.4 1002.4 363.1 505.2 505.2 647.2 1002.4 363.1 +434.1 363.1 647.2 647.2 647.2 647.2 647.2 647.2 647.2 647.2 647.2 647.2 647.2 363.1 +363.1 397.2 1002.4 611.7 611.7 1002.4 967.9 914.1 931.3 985.1 844.4 808.9 1011.5 +1002 479.4 665.5 1003.4 773.4 1215.1 1002 968.3 878.6 968.3 959.9 718.3 897.2 984.9 +967.9 1323 967.9 967.9 789.3 364 667.9 364 647.2 363.1 363.1 629.5 718.3 576.2 718.3 +592.4 398.6 647.2 718.3 363.1 398.6 682.7 363.1 1073.4 718.3 647.2 718.3 682.7 534.5 +512.3 505.2 718.3 682.7 931.3 682.7 682.7 576.2 647.2 1294.4 647.2 647.2 647.2 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 773.4 1073.4 1002.4 +896.8 860.3 1002 931.3 1002.4 931.3 1002.4 0 0 931.3 761.7 726.2 726.2 1089.3 1089.3 +363.1 398.6 647.2 647.2 647.2 647.2 647.2 967.9 576.2 668.8 931.3 1002.4 647.2 1162.7 +1304.8 1002.4 363.1 647.2] +>> +endobj +60 0 obj +<< +/Type/Encoding +/Differences[0/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/arrowup/arrowdown/quotesingle/exclamdown/questiondown/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/exclam/quotedblright/numbersign/dollar/percent/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/quotedblleft/bracketright/circumflex/dotaccent/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/endash/emdash/hungarumlaut/tilde/dieresis/suppress +160/space/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi 173/Omega/arrowup/arrowdown/quotesingle/exclamdown/questiondown/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/dieresis] +>> +endobj +63 0 obj +<< +/Encoding 60 0 R +/Type/Font +/Subtype/Type1 +/Name/F15 +/FontDescriptor 62 0 R +/BaseFont/NJLXDH+CMR5 +/FirstChar 33 +/LastChar 196 +/Widths[402.8 680.6 1097.2 680.6 1097.2 1027.8 402.8 541.7 541.7 680.6 1027.8 402.8 +472.2 402.8 680.6 680.6 680.6 680.6 680.6 680.6 680.6 680.6 680.6 680.6 680.6 402.8 +402.8 1027.8 1027.8 1027.8 645.8 1027.8 980.6 934.7 958.3 1004.2 900 865.3 1033.4 +980.6 494.5 691.7 1015.3 830.6 1188.9 980.6 1027.8 900 1027.8 969.5 750 958.3 980.6 +980.6 1327.8 980.6 980.6 819.5 402.8 680.6 402.8 680.6 402.8 402.8 680.6 750 611.1 +750 611.1 437.5 680.6 750 402.8 437.5 715.3 402.8 1097.2 750 680.6 750 715.3 541.7 +548.6 541.7 750 715.3 958.3 715.3 715.3 611.1 680.6 1361.1 680.6 680.6 680.6 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 830.6 1097.2 1027.8 +911.1 888.9 980.6 958.3 1027.8 958.3 1027.8 0 0 958.3 680.6 680.6 402.8 402.8 645.8 +402.8 437.5 680.6 680.6 680.6 680.6 680.6 980.6 611.1 680.6 958.3 1027.8 680.6 1177.8 +1316.7 1027.8 402.8 680.6] +>> +endobj +66 0 obj +<< +/Encoding 53 0 R +/Type/Font +/Subtype/Type1 +/Name/F16 +/FontDescriptor 65 0 R +/BaseFont/AGRETO+CMSY7 +/FirstChar 33 +/LastChar 196 +/Widths[1138.9 585.3 585.3 1138.9 1138.9 1138.9 892.9 1138.9 1138.9 708.3 708.3 1138.9 +1138.9 1138.9 892.9 329.4 1138.9 769.8 769.8 1015.9 1015.9 0 0 646.8 646.8 769.8 +585.3 831.4 831.4 892.9 892.9 708.3 917.6 753.4 620.2 889.5 616.1 818.4 688.5 978.6 +646.5 782.1 871.7 791.7 1342.7 935.6 905.8 809.2 935.9 981 702.2 647.8 717.8 719.9 +1135.1 818.9 764.4 823.1 769.8 769.8 769.8 769.8 769.8 708.3 708.3 523.8 523.8 523.8 +523.8 585.3 585.3 462.3 462.3 339.3 585.3 585.3 708.3 585.3 339.3 938.5 859.1 954.4 +493.6 769.8 769.8 892.9 892.9 523.8 523.8 523.8 708.3 892.9 892.9 892.9 892.9 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 892.9 339.3 892.9 585.3 +892.9 585.3 892.9 892.9 892.9 892.9 0 0 892.9 892.9 892.9 1138.9 585.3 585.3 892.9 +892.9 892.9 892.9 892.9 892.9 892.9 892.9 892.9 892.9 892.9 892.9 1138.9 1138.9 892.9 +892.9 1138.9 892.9] +>> +endobj +67 0 obj +<< +/Filter[/FlateDecode] +/Length 5827 +>> +stream +x陧<賠蹻掞撇1 z续捵c蛣虣`7HBF7Z敶欠oU@醜拻=;v_埡彫3洬(將枕>弋䙡瘰o*砫uq骋IFzモ05珛.yvu駉8" G瑣圔璚k -烆-1亜)+M僕D<骰|享E琼yr酭腤而?M盿呩pld曦天#楴\C仰W潄9,鈗j?$ j缉朗俒#邻m蛃n7镨顛Mh#蛲锨-1g嘆@h2㈩r圎1餼&,m鶹朳P赖鲄sG踳|p;楍9簲鷍乥.er8M副{^靕穩-槺坄/O镕漅s/鄅鮼Y痵:e蹃$ 被鲧'度0 + ^ +u`竄拳哏軬.!蝋? 6壴qsoL=p慌缋子B2閏仧K沸B^J腒禅鞒$ +靵洰般馲ca酭芖秹々/雑亙覅堩刓改壢憥帀Y +螧Z鞠3畡DlE\'e?, 丼c纹允鱾Q壙;RwT俆菱+a訵07拴?61求珖荀bA:.$摌橿N詼d =;&湈x鬪JE/kb4J6K賕: +蝭*湼lxn想y\sv=iKa忁8】=躈7Ph奀莅,鐷4哗M<)埍.檕@%j苷 q$僶愱皑| 珗_%謩擆}皨 弱Q鼮`崥埅茾炰=洞-,2J3猷毝躅渒坤嚫[x壻6> 器嵀*罖▕柬猪锨急-P.gq夣M韟榑荋穸a闤&鯍d f蒬b@硨覘#FR&+鏶k |.埭腪_XljワKx|=]W0r麙6EL!%揚8/挨 茎J遄赭;鷞A/锰`[豵r 驝#D餬:1[O"2窪o倕6哏%隶韭S诹X 锉咓C櫬暵v#f夥a^忺/Fs,#罱-3罟鸓棬N`o[t 鋷苣hb^FgH交z锸弖V郈0馉嘌M诗捅9硎巘v惃(%爿彆麗浛垠疯Yp懊9黥k [癹猙CJ^l乼U誤鷘\!赖\雾匮勾畵.捃)-0^v蝪罠k昘M塣@俚睓^忬5涅^O=闋1潻C泶閚甅肓a 莋礀2 8馁菫盭 r<$2L3X 固3K槱墐%]驁|陼狰蕢遟 - 烍槵2 +虀e领,q◥0TltR瓉[襽槷O壿"敩皷v購腹G{.f牵肧槊 #>v~Bx邙*ogTa29唣4溉m撖~:饇墨序/茯jXB 輬穙/lB鉤x7]= 嶑V煭Ms]┡E棼溰.糒骓齰簉j裲鹰絵椥v9TK噝;+吼萞{'搂0> 達跄養e坺`湤w擽鷙侁岰釽SHD 48潸a別皘蚰宸s隺u鬠‰)竊瓖(w譴溙m筡頖X臂⑩6扔#瘬84>C齛A}2N"駹Rc=+*誎kmg|5].^鄿譈 聁,L烍 pNE NR鋄!iOr㧟c淪+泀埯}t-扶H$膩}屝药=J+秎C.撘倕a9nX書vO 誼瓫邯X玱熗0碔褙誐竽蒈g%I黶兑 <!銥塈LL)o孳M<zD鲊"[X:{OE優劖倚J牯袬3V"(瀜Be勼N嘔騮哀O{D3哀8姺!鶼C诀?噟kf{T存4i(F続rx矃<纈笌&黾杢4'1rG铨觮(至lT設燃4胶_燝竅Z尞^瓇'~靫憱爽#2i;2B犭斕%}<猳墘>鉱# tPh孨F[e衖 !g鶫F/r 寚虡yX_Hn彗3Ce$"誏泚9B9 &媛0{M澤'`︷-苓罴x4褙l咇-喑l¦=i> 秬/缫豹闖[倝嶦喍饼蝝4鍆'髟<羥吝︷<:(*v鋅}圑 P焁C駃E((冡輦$+n陖梼!M搌菶簦^0曜ZU@h壧谧取0=纈紏2拨蛔:@> >A=掔+迁o衄d鲂\顲茶$d医檓 胡旪 !3 䦃Gx媀䦂% Cヽ搴s?綳鄭O掓徚X`,y0︳歡淴9翘 }氁4䙡佲槤覐糚騃/- ZbN ⒔堩翦嫔L 蝅4id捎BZ 岒f魡鑳销~顅夢纱+蠋b?畱亱 +c阜 Xk婎󭰺F 3z +纳9秵[c6$槁(侖鑡wpN_鄺驏竐颶鞌*-旚=湄蛏X' 雪憲yr)索閦 鍖9P懪曎虇m伴朇H褭稁跆谸 +档6締5浛ECXD镏証4;奰炊鄱'"翳>b堌KMyIPzUw3Wlv解#V孱PQl擌E 賖$庣,泩cI醣.鏇N鏡數刌/穖硕薡Y佢 忱z*娇搔夅燱資嚰镴:<# DV.pxP5Ra?J(僊 菛MMMa覉C肇D.l刂写'#x%c4z駪獄K4 铌j{蜤ケs +%凅 p纮rn亏EU峓%!:逭盭號槳猙.,粲 騩+H8 )`鬮D悳隖ELd椋6%鬛r+暡)慽 )b橔Y瞑)囪祟Jh y淝蕖-贛S^揨嶉ёjr擉甃塿[3塩,Q憉1E*泄癉鋬卪翆伖t梿娕f 疀cg!`褝-Z0祏SOk覲>%}x縛#冹&)腴U#霩蕊!Nb坴"徺奍8嗓}b L揷y惨8糲杞9 y'櫎l氦 ~v玄賋焹蟫餬梛%`5x/Z%AU⺶6諒M6yZ*針$焢舾%2ePF++逪^X)a +冰-埳醣a5d!?j,Z萀%VWsw[灠1.1a汆98 +酱|唘両堌?锯偼1"浰L薗饌S`a"A &u-溽垊鄶5`, ゴ落36囷撕苯"赙镯w8耬免筤娎讃捿樁辟O1|琿Zcd7f慚仗0cY\&N拰8:赀&I:ㄍ d e鑘檢ph箒 _JN双熚DP殺滗Q眚鎝啸4W<樐棒仃'虀(摼h峏鵳l z@漓B溷X菰0年8n_棴鞿5珿疗~邧7x啼醒襊屮欝桌0汳`A-6煆+槹⿺s^/g_ 壷M|!鮖豚9Md4d4絕垶9:R婎8O>R願qY槠'1i瑒{坨g餻O譓Y躳炎俎晹iv蟘霙蒝@入g溋它&M栠擴|槅运萗XbブY戰s仦$婙I牼-6躐P籴#騋|胈鹙駩3}(冻否7M經,阦訪諱5N$8\p<钱y泹.r谁 %艺碪78ロ.P蹂U嫡涞tcU煝{雾6i#攳 YV誃矡勖豴糌t沑せ:澶寋]遒tn 覨桕S叀@4牊.P鍏苌>擊R0If1亥萻犲j稲戓H7堂I 摳5'膿(9艶~濣漷NJ绍0{霚S|9*1rnVh +DOzы苄砚訛I毛d欦L@徥'x堄^7/L垀⒆ 蹖巐摺AyB&查T.饂w髄2攅谱〓鑙@歔妀腪%Uf攒 鷴鈌'v塤<$>/(Fy*罶伷B<搰$[熐=缈 鬹稔閅J烏r3)&陬2淾现Fs/}HU\霾Z{蝠1fK.坈 ` 悏"鷧匤9 L'税筱x%-悼 (揲l暋.蜻333D鱂2焄'駶?宠s龊0aE瞇$蝛r2) 晸E7%c芝60垆qF麜懎焒DZ*趸eD垆#R鴑OE$厦c0uux涅傡[ 岆犎R}\h侀 蔠璞ON-C斞琽X>v鄙Nd*F?"?鯃q}+鍱鶬躒9k蔌#蒊锶兟4j' 詵焌鋵1{畘阒i/a汶yV0 3U i 颚h*栄48蔆Sn8崷橜x齜/[墽阊87%#噰o8祉 妤便G嬥}9%1h滭3u痻芉蘏.eD蝩爨43#n5d^艣翋s躕擝抋爭﨣捚碨s 稌SzD衎B秾r喂=轙纮~算&,;爧}w籲必6c+蛥 X癲E#K=黊4豕荵*9瑇X焍襯)n桛)篦粣A日 *桀蔲k'磘&濢罵" +C: L 9szQ餌Q釠犱A桲4O鑓3腪 E樼攸鞚?賰7鷄衏碋p:滝苺i迣浯7MyC舐q?&拰4犳疓a +lR効@V ﹨yy:s'rn,箰X,1澒'8+S),葳麬 编濒昝蘿0Vl魃鑷9"}T蚃~}聒&溺尺(哈观U 墑o傇墫2K驚d +鉲=坽 棁Y:#攀%t膾 [-穇橊R擌襦譑姼:蓞E柁_ 犗3."蜏&娰o^_ 5骺S5d鯨螕[+0)鰜对%梗摽/Mu濣/{犤x[彸 +翍云┄__+邹 +endstream +endobj +68 0 obj +<< +/F1 10 0 R +/F7 30 0 R +/F6 26 0 R +/F2 13 0 R +/F8 40 0 R +/F9 43 0 R +/F10 46 0 R +/F11 49 0 R +/F12 52 0 R +/F13 56 0 R +/F14 59 0 R +/F15 63 0 R +/F16 66 0 R +>> +endobj +37 0 obj +<< +/ProcSet[/PDF/Text/ImageC] +/Font 68 0 R +>> +endobj +69 0 obj +<< +/Filter[/FlateDecode] +/Width 83 +/Height 117 +/BitsPerComponent 8 +/ColorSpace/DeviceRGB +/Length 876 +>> +stream +x陧\K掛0簖/鞼5o3,>Vz`者1X檇味抖蹲'-;柶徺Z_pA粇 鵻27 +9W+qO鵔舙怙>睫:Q +@舐=羔Y燕┳(9}R5>l=佰o)鲩Px聚失 +鄸~ 坎 t*熵*"tB肫* 児MT蠇.3梸O}椱k t!Q靟銆歟)捬V`9`-L摯]ws莉彑"怘脆A箩駏so9煷<⿳+<奋崹a~嗿AY>[O嫆/l蝣└饊[辧x +I黖jbc 7O澬哉媏[5R丂騃霽.P]WVYO羼<-"<N踅o晽呕;h=銪m驃$L(杹DmhH骐訖△倱@9/蚤綄9栟銜`^镉73导6㳠揩巁7⺗4彑莥裝戲鴈z驪 遾x哉臟馝GD酡#XfZ_qvo-6迴砉舭q{係+睄^,Y)S撷进h:B檉Z蹝f|9[D鼝_^.'`+巐t#'C什s詺鄓0賿譝鳵$骵gP%w磯(昍#媫!r頃軩穧#B袕荻Oz塎jG#/譙謨 蔀D︵2M莎)SJ鏝簾1臽独H孌3詍鞶繃 E魦勧4醺虝菹j}]tG^H&e嚪珁c8罨溇qz惗墜`[ue $),齮 羦椧=)m㤘!蚞渠偐n鼮4剫x室6荾T闷z錒xH攷豖揬諿5彈渷曆n麥嚬M`/劉T蔛R洵X O遊5 Wa> +stream +x阱<賿跢掞|d菆X詤C帀X峝{fCV垭 h h鯖GP@侅栐綽_圔]泉;掣垼8^,桉邂鶇X$Q..:停X/Tefq钎壶轵勘G 鯴GZ/Vj赶7粆覷嚜┕主Od1觖'伐}洂懘m煄儻錂m嵲鷞顟靼J%葿E墹N桽Ha哫,V}囨鷅,饝,譓蹡蹅`]qhS8r貖哋d秷'考2WRl+!軚筸U}4節 +Vs涿桾匩m埸啜t~j p谪F}技.B榚壔s逭輙V◣t獽╞鰛E敧 't$2鹹祓晠堂58>9貘a:E"拏岱SIG1鄻膤A 倽烎皿辱郎(拐!╦盝"擓郿轎i蕻M鸸$R闄吓彳胇'Q siv;蹰1S辬縔N稧EY徣訌肐 醽菵fw鞞C羜{4礊No8鳓進丱#搙砡劺Ц?剀?卒~3^G夞仧帶}镅.`だ絉匡餱櫥9<&'rMG睠艌%睈罉= Gi+/ cT渚童铆抟呖镫;虓Mp73丩螼鄰u:~e?甈l&傖欚騍W鲁.'Y=hQ 縙瑃|zM骒S堝审1阕1擝䦆鼶垬蟼秦鴈蘙鮕* #胈)1觺Wnв?5N娷矫顟暙~3'"5i^7乀 倓5_箄 +<埳{b(Y2$敤睮4鈱坰%@%垖N塐"嬷焆 鐰痝(sr3I騉<"H鶺8惢pn79惂+$麳1昑-)P菿珰,rV聐微.锻Ms碕o苯iZ :]xS稙6糰mxS靛姐.譵cn莅胢俅.殏∕嬕幆 V弤#^隟74u珈顱 燱砡MG鍒北鸗"`轚",梍S碗`M4aI脇 圢榕K3饯蜱罫z@/+荟- FS}C謇P +q臕耽逻g酐*渚IB$ $7蜅 垁<]vNT-K~}佾'X萄>腉騻7m笨錬?T魂Wk3Rg瘐篿賠絯砿畩豃鱲 *:D+,*@.焓胢痽#祄xUm泸徛%禖I嗸`敾谷梬+3宫媇塰,乀h釲蹓、*幻荻鋔+.結军钫泲埢(E禎,C灩e褶庥咝'\UEed嫹 逸簧X2q譭钦放吶-m趲 骰昌吣避nq\擘fb啪D韧譔鋙泘4? /#e蒗藟崿2,▅Y棁w吧M麞哏.Q02住睉;壶,"朘X鞾$壷挺"A麞'2睭T<璔蜔Y糸g蘹橊舎_m珻 蟮寰-徊>T鯈e伪 c:o4祇簆uZF=7>X滱烍瘾 =M捪阘鯙'2-E潜H禅Vnn聟^貗)揝>鹹 +0,錆齶Q,@嵺u贔烝t@惻>M伝m睈3:"Yh搞6|^!唥i桩浐4匡娊濆芬y胎 牃WmS颼( +r/扛h奯 +8Y诞w墻uB%甋I`毰[ ?x卋縪涽:f6躕B独C鰓eA3黀Q䌷tCOC豓uY槆M)炛5耜广i椔充>c挊 褟 !鐪蓽饩灡4z曆げ蝤A-穗c蕉; 疵购c 裶}说tzT帆jO0c饤泠衠sU嘓6圧#5SL= 黅I!筍^'8(嶌,>蓀6囲y摍阬2遟#躀|纆饳鬄嚲 袱捬鋲飯宋0, v9機け綍苲攄鶵瞹>俓栖p诛~蟥试s{=瞺4恺x澽9NL嬮缌5Zv:I=lS汘<ㄙe6}丌鶵<嗔叐2藿w積[G┘}隇鯔{6.g@穨覭t=Pg)eQ拀紌胄zO绪A笻-;h8[~Y划B哧﹃ .喟庠g门fC鷲`UB .A疟~[ PsE夵鷠>鄈侍z篅1*$q#%C攦>C歟崖%C+Vv 褘脖j缫E 濷戙>cNt@鵢氛暌+澑齂c+贪:;~E;p蟙l编{掩觟ぅ岕d>j愍釔$'O +m註鄹o1u紴t髈甫乏)30`縖e羳8( 仞/,狉m裶∴(p鯾童╔豽灾0g7恥@_<h碕y?絤x;犔3c殛師蟧沵俳艁w<.淥T敋貊迆h贛賐憸Sf瀽穽q觌)嬋呱I嵌枞樖!十仑扤 汇萋w:z搭綒(檤谧6X审1辑&(o$雐:^犍臰!q擥/楼;嵙髅憮誻{皐譌1~j蕸敦贉&ó%b)懘qP辬%6E䦛b榑鱡<鮹蔱y'5=g}誖/)k③7酽2=s$"冣S蟙f8鍳$x)%S滘 啣\摃赗觎`~綕bチ圞|恳TYN炰9滎}獣蛷鑽茩 r!2O[e9<&/峨銝宱 F彫Pla蕹>8j驙K鐶Vgfd嘾o!U!兦聦敎 寵壬揜$镠楸+3vD 6n{胯濘柚樷婣撹q哲焔褈磑 岠明c<=Z钊KA孱嘎.萅0吥榥憣.;棴;勯2絥.F糝籧z韉+揘/22谋榕ケ褯赘y扣o丿e鈦V漍!柌+籑!"wAO蒍t=]鵫C_踏8YV橱{欱挓6譚磡2嶽 x&橔C鰓絥J!笧幬-m咒姡憕@F6V孻 仔o3к)*S癡2輶(g汁J}6#譓>傭Wc貨 ^泩 f皢 +櫑 蟖訝鹆婼,▲吮l珤pF+D'瞝7跉6嬱Yh舵d@J乿1籖h疃E蓓E`板猉康M 尊仱膎`\-9殹鷋cQC 徣H'蕁湹葧吵%C捹厫T~xZ$恅怳Ⅰ乢晧D1揹u4薂k幘2奚_:字壗7 +聢 考画型>歯.苶q膲56x扺锝媥咾7┡K|薄╠藞Nj忰≮r儏舗鋛堑l'畟:7i{Q瓤a 璐e本-78疍褘,XH$`辔v` ++ 昿穌曹6~<瘈臣6疼C古S粕,9庠脈[昘2壐鰣噵踅$僯抎P菕 *P拝8嫿un鋠儘觔^V桋-狧h](櫑 I裲WsrC/_族|鈥u 閮L澞m茏D茠e2g爖P馸恮裰N黎L~桤}仜ig俺 雡_.澝嵣晶m;伙]:.!H}y.c7峴a搑∪"笯 I砲猯隀_訂畯L\虚识赑即2脄r_媞B鋲%毋愧Gj鶖詚鍾Z趸s窝淹d韌9Yz鵬y鹕'淞涹欎鎿赏$x驣9鹂唰嗤=聫19ASC;h }B红爙圴]3\6a鷔甒HLK%F檬蛱猭I=24J砼)饠]rWfq^鍩r縻c#欺5鴖璇rC湆僩髖顗\鑟朆L"癑b$難镩R匀稃詁2 \8X% z敃缟>町H谻#O茓F购d恗沅i5|] '恋茿=屗zt歊4$|k`5rH_泑Z`=孫z熤瑾 >1 ㏒蔩顡W仵偭/心Z懈鴯<3*矸zㄋNl礘顅~玦掁}汑鲾L>聱gs^3樹D\?橖颣題,&蘉计}"p +!l +{猤蘤6T,s,抜嚣c鵳q踯盓<!沪-焢 4势o ?o癎僛(寔娥RM1_FPT8'OX嫅L剷G +E"驁赧 1廙&簮 By(齮)gV堮S)mL7譯\5舎[$粘娳}:c}D-,絫H7客箏}鞊5g5=3:譹鬞3虹+ 揖欱I専X伌株吓a C赠览耛諬繦銘罻=4P=觵s鮫g濚态 +c听鶟=G*菆<b蝢滛‘僄Ⅺ?堟N%媠D纃煷92榙獋%{帩(Q鬫稌尙Q汣鯔?柸冹U忇%0c&3)4q锩yU!=a 6 ?秙"悩\菝ㄋ忟娔骫楱0A芎'.]'挪告h籷穲岇" 儘8u 砞kc脈P挓浍:埞耭攋畿>搋SmN8膹?邺蟊隐2}"&薰HD汒塸x{ 鮜5eX苈"(F t箅飕E劼蝫S愰辇?E/菷閂阎媅凭途\_闶蹵b2习8A钦5\ri渣f飶驣u3郰塧 +訓aU藃-[硢聢屓餱蛪铡B誷玣_仙岜腅詫它暮櫖:g<曽F烱厇'促蒀&鈮r鵝J蝏 V>*5+D5穤^饁熵&膯歾豚m娟倌虱"宎=禃#j: >懴Zt  6V=羦O99+潫渵LI禵3壞zyS謽70 h"&+愅D2q克醇4&筏搐琗丕彗,~q锯綻Iㄒ駕(怂鎬j緓榉2D/*PR╒铗TP6~H%輖汪荣{4哜簍椪讦9p遏髻8餀椞7∨q阹鶂oK镲:nt閬淎濺<鯡伔-v洇陗欺贪Q豀9i>o7)&Urb"CXl\#頾柑暡~{!猊蛼嚠憷(鲶s,顱8鶜 +胞&bn[龛J枬lqywcY}?X汈 +endstream +endobj +73 0 obj +<< +/F1 10 0 R +/F8 40 0 R +/F7 30 0 R +/F9 43 0 R +/F13 56 0 R +/F11 49 0 R +/F12 52 0 R +/F16 66 0 R +/F6 26 0 R +/F10 46 0 R +/F2 13 0 R +>> +endobj +71 0 obj +<< +/ProcSet[/PDF/Text/ImageC] +/Font 73 0 R +>> +endobj +74 0 obj +<< +/Filter[/FlateDecode] +/Width 83 +/Height 117 +/BitsPerComponent 8 +/ColorSpace/DeviceRGB +/Length 886 +>> +stream +x陧\K柮0簖/碣貂M0N`偕$幜拻拻毳礦汸bnT縱匸邝曕 /堖d+鄀a髁w, &寞觷'檊1f2痸 缅}o沦 柄劃;i乱=掎z)W>C欺.4~餈 `sS芬8噥瀀s荠0Q⒂!慖::疃D氯2_敲塨呃荜<]`;5觎嬊小 騊刀凜糞# 岬榤荥H騩g3 縍H?Jn辎MxF胺爑98;Cnd洦+:聀rvf懜N fY毞 踦j/V=灦|fU7脐I:355l鯇6锘頨嶓弤'戸蝫'0蜲M矵玿嗀n<厩漖蕱菬觍wfi犌'97箴&@镹V奰輷/烚ocN荟淛dL肯}襜4翥妢蜭Z鈨峬憅cz肋欢曛md0o猥俏V鐄翴~4譬壯紡 +;拎L4緥mi梩苔s蓰  N肖CQω# 講忍k#'偬kDgxM<神跈:婕遺R)[舎鼱砷x$|霦撺w掄 +V隰(j鏛R萷.弚J+B=﹑l浘{)謨v(槽gL熼.NK靽e<恕衖Y 鴇窷噎~蕹啭>硣l袒s蜿&*t酺>re3殈碲牦0"蔞> fY裪讕噥浌#揘憣秸笓簶槨R籍4k渋卺$C " 囤Z檢W>韦,归6嬡磌 b7隼嘌f譾璌摡膧壺彈塷 :瞥t)[q"嫕u畯C狜窖佑N跌?`╚哠a4篙蜟枖敂敂敂敂敂囹咏H +endstream +endobj +77 0 obj +<< +/Filter[/FlateDecode] +/Length 5196 +>> +stream +x诃[Y撣F拁達裲 6!卻~h]v堵j蚅劋P$ 8(Y挢緳鵨 蓝4辻鐵VV謺晻W/<左./潴撣G/鼖赝拫刍0蒤/0睕F废:徕?z\dn32<7L/a@糩,砑Z$檽7 ?r蜉-朼9O氇須愫+電0夌詗潖 ]0盨韄1溸缜 艉叾訖吰8't雴A 閮祝%]!o簰'.朅蕄D巍.`[(PV鴙橲3l淢冼z桇"牿R閘g1gx&辺%濻鋗果掳?太貭r鮁~椟婖+珄B嗏z;7"i趓勎'瞢措-Z S灆 -涥N._&4F囎E.鍭2 尠階弚&7枉|7IG蹎VO摿)4襷[(舕}慕8r\証a蟷歱x?j!;;僡*奙 坝絕(=1IfAハe稶:旆2;翼.瘖3锨U7洟菴4鵐.7匳W纝迻-P璙坪駥$y4峜嵛G枯侧﹒M.6Gar:mE-Q撳sw 膠塺W ,癟[ch姕诽E涆m楏貶_哊k净b舖2 gQ`V=羌鉜HbA垛>憊〝]m]℃>&,B瞎D浻弓w5,"b饽夔_ +|yC&GqS揆Xw粹J[烴H%銈* 磏籠 梙y螧阨W钏\攴蒹)nP瓒9 戯mH礹]mi/楅u挂s5蝬t0揿$px%,("S*_鷩SB賘&掦$Jz(毣嘿C啫O蟋>5戠|占)!増臈%诓Zc礠|-&璀y㏄贑冫?Pl杳1J为IF嫐孹6巃脂1S厹估泪+@觅侁嫧Y4枠Tiy谙4濐鐟⒋k袏癙酮說'6姂lh臒辟仧烘泹656趤宄np嘻=*殆^‘.犁ry^.q䝼)鲊]抱b瓼)蒑橪紫hS縬2,S3,r屿d鎣儀0t巪hyB隟J穚歼+'?駔颚蘔籅阢V'%5[頇Lえ焽礪d禋藀獑伇- D}"蘭ZE  z`慇濉畚缧w`桟咺琗飰博:6筙!.@营襜末:a T鏝f牦跃習2╆A3虈ay啲{T秢Ft瓞栩r孜+.d蠈桓〆Em他- 仗0S俙W毽E宫冖裦9>kv耯鼙)&#%g撁*合薂N粌JGi_祀 `=cg森吶Go=欀B﹁\u脂=}鯁e垖5踘邿玃泷嫜&!! +j獟)殦戽%朚爸W鷊]6?琡Z`刎W +疣 |&5S\bō梜朸%篬扮$9 y邟rcLU{鈄7?3鯕t聜%鍶+YoBE`=X諴Afグ璁 u +/'蔹![B 皡ˇ弅嵭)中)1皇k%<1夡Lf}蘎W繮渜\C*檵税q俻*Tf功焅媀鹁B嗋fYЗ牣 ZN川R*+d)阢NDos|P途l[閍冤 侵5徑塷j-揮漮D物d$&損自{2{巆*e┲F發沃錐[bK%[ 憨诚:饋v螓`T\鲸. Lz線蘣Iq=只cOvl淵0雞肸曶绹琇02樲`cΧX舳名 s鈾%殲6舲Gc济邞絒p~F愶味E庒Op瑌{s鯊?縵瞳?焦鵳/席灲禰H豁$%磶楞0蛇叵崛尲W:Q恎涪i/?8p^ +妤老炴)朑t餽趝霧6狺f0鍎9阯(妽l"j4?诇J '滒召㈢?拍7tt8抶藘a>1嬦f 6脢iH怅K庬檼/4q搎+賗灧g笞<dWZ賞趫#7瀹瑫h暦H狖西M~鼐~yus>蹇c哉 L檧鈂喻L啚殘僊D6a亽頄KP!$'=7 /庠缣aIa孧婸/哕戋陚涠'绚1侂骸嵷爣%p*^7檤Z突%¥湜X賩鏛/fH綌K煖骭g=衼穒=3摈娶{籅冷螆兞{轌 +擇托背'zIF;镭w"<貄坞&鉼麙B峹騋P8羳褝`僫"捝S鞁渻3岠剫卯nΜ 鳹弰1妮藁 瘰^倖x9雞~妉3;I?0b(營>0厓s肢龎涆賗炠 $s|隶梁葝@餑+S#&H糌软k1l@唱W1僐磜W&vZ殾荦竅偝j脴勗苽,怛奒懄硥F袿-稙慑鮐梵fǹ槙+T汭鞥,齍n:渴&佧}乡0澂^ビ2p噯_奐雹髰1BV驱婗蚫b籑t驷轱,勫騞Y賖&25m q噊M z囅(矫蟁誻冄鴰咣a冋f駑 +c腏D馥﹤b翸蚃o豉\峮&wJ,"pXd儐vQ绢@蛶v4癠Af}棤弢/?K"T掵r>Q暋<龞胖_e詃c%婷>牪Np/氅緔I霉7y貹#H.斔kR鶞飦駻掮h遚饟呙a髋緢P2v巯緯嬢梏 8>谯^教跙粂M狿[\瓩s騰w:觞G觥廙g瀩歪笘鬵躥惱錩襹.P'o藹^淧镪ψ +d揸U荨礼畻櫢绲鈰Rd'I徽'$餫40 l Q汻枹靴oA埉躸9rb&]?L\i 鑭H"象%鱒醱侎拟p憚顖皠籑]k農昅]┪f:蛎弴洒择冐嵪o= !碰<悑n娬~H}轟R裌xx臙醾@脸癜3g +x$w郄;R 毲K靕UN8E8皙6'U;`h贌x蹙(r舞胈姸!b眊悽=鴽o~=quk吂j T嗾煝芼琣 uz"批?钫"耓聢3}鮝蒻桏5*N劯;钥 |戗G喈$C循颚b8oh嚕5騴毦肣醰3歧骾尖悟*o電/9劺广齰UC<}盠BV{瘌*蜦#O<$栀盺t"吸"嘰4%鳊縊789H凬#哞櫜?A3絧Z肘舂x騥慠zIjQuDg嶍?$g+%&薠J远$x+"3lP3Q@鉅0 '庯銂Ns?碃?伨搾)駙詜I3ks堚 +f(纆/退83崲挆╕1伷邂5>'齔鸏暥慾IB6燪ma8t聭d>獂~=閏V +endstream +endobj +78 0 obj +<< +/F1 10 0 R +/F2 13 0 R +/F6 26 0 R +/F3 16 0 R +/F7 30 0 R +/F9 43 0 R +>> +endobj +76 0 obj +<< +/ProcSet[/PDF/Text/ImageC] +/Font 78 0 R +>> +endobj +79 0 obj +<< +/Filter[/FlateDecode] +/Width 83 +/Height 117 +/BitsPerComponent 8 +/ColorSpace/DeviceRGB +/Length 872 +>> +stream +x陧\ 7s髦 D趦菨jU0@`{]----瘲1FB嬣姁!炠>9 +km* }/r:蟟A缔唭f`谂婒u偨3do堋z嚛1鳉}俑O踔!賷鹹73)铞饅 A鹪`O瑆,'-纉綉坩鸤j鋻襗鵰e閏遯仺怖歹疼窟適/ +誏罵|悻)榝芖档乍C宱G8ヰm6+cU啌4瀲H窓灁╪ッNd烏忏v瀶コ,#挩翥E貫硘)B圳u6藕筸嚇鑕餑:{x4靏tW鱭玘,`南L戌冘xk"+喂%臷a笋汦轠沂瞯Ag瀼gg`nkⅧ脂澺彠菏靶礃唷逭2L絶' >秎砈嗠_褬嫊]@_;篼[d.HD鄒盽Y*A7w侠7衒m馮比8襏 綯9$A+蝰7T犵B覎"嚦铟8諓&2襶75 +ZE6麛q枪婣~鹙傴&( ╨劫; ,)> +>> +stream +x+T032472T0AdNr.W憫厬灡X佬烫ˊ列(dj猔h``T Td捪k +endstream +endobj +83 0 obj +<< +/R7 84 0 R +>> +endobj +84 0 obj +<< +/Subtype/Image +/ColorSpace/DeviceRGB +/Width 514 +/Height 375 +/BitsPerComponent 8 +/Filter/DCTDecode +/Length 42040 +>> +stream +AdobedC +  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYw" + }!1AQa"q2亼#B绷R佯$3br +%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz儎厗噲墛挀敃枟槞殺¥ウЖ┆渤吹斗腹郝媚牌侨墒矣哉肿刭卺忏溴骁栝犟蝮趱鲼 + w!1AQaq"2B憽绷 #3Rbr +$4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz們剠唶垑姃摂晼棙櫄ⅲぅΗī炒刀犯购旅呐魄壬室釉罩棕仝忏溴骁栝牝篝貊鼬 ?箬%@=蟡qF兩閹籀&6彯i衿T湋灨 f萕$鹒0跐 ;#u80c9 SH9砷H})A$笠q殦pSr襄N玎w燿獓i"l 撉jqv9鋎v剴=ju褡宼ぼH$麒}i +扏攒y郹=)=@R!憎┪y餁 #湻40幖g譀湉lS倰F8颯糮\恵懲 丮#穕逾d耜i瓈N褠y缫梱炧XP $T`颬?'<鏈&輨噻9 酴課2k00Ny'蝡*閡xw 亷j亽r9悭&勁櫴灆颬偰p8<殥A斏┣Z?n隆h1 +燎<鈵9(bA銡{|扞= 00W 姝堿輴x颪 A苸 囵H'翻4$怉=r{8 pjd仦j儊扝 $d9<亖慠!2寔憘8= 6F蕁鄎遥蜲_JS8⺄Z +怘=馬踏!鋑GJ垎$仠z}h嶧9#覜M陙2X㧐c=陖\兩5,8┏p>.鉊厒D{冇6r[瀓K癩頁裍u5iF-<:啳╘珪w91遹 8膣)d樉衟 )(b@设;V塜L{'h錇强劊du隦e暀鼻E棎仠`拁灤8傫O@ $8eF3搨摇Y +绢珳{{砸6銌橦 欔(癨.Fs < 潐r=MU壸zR 8射姴缺& &¤1X;9;s両q=牥 鄳Q螔 a"塹I$馮!d蜨<,A脨'姒1 $搨Wz}iャ埩'瓜AI眲Q捘股)褺I *PB怈'犃#溤]tr 頳 q佉攄 親鰡9$M4 绷甚5v膌]NL 0v憗捆( p甾扡CHf┨7蓾爯?*睬倇}@`=z謮溏c字 $ +暼9sQ>qMzfQR耇d < +izd鶶 岀醒Rl鳍'wR軭荁9R +摓狻P冷狿翋y┌XT 巟3淪. `巗B0H59錈4脨zSrrq)0F9蚈 +桖OJcD=1R樍RH< j .亊梨''糕$q老jVc滀RC 翩'趓GS僈潸 +@咔8嚫P1覛 O(I4濱d鄴I嗯饈)QK i厑c0P"46饫|騪)9v牢)腊R<* 栗 e c捉.0jsh9檄4$臨`嚴8娠Sd`鐟镻俱q芝B膎9鋩)0D爡b黉巰T膫8憖=隊敾镜bRNq*l芆JxA磼2{:Uv#C逓$1艻洒ふbFGA狸j揣89|鵾c巬閯ɡ啔A-礜镨)1sx,lcpz[<鐠MY竝,F0繒@孌宔?1 z腼T槇倓晝懬灆媋#怚苸灥<嫲!@羝B駛嬙鋬憎镵\ #9圩>昮hK.爨Kf2沚 艶R昗萡99$鲻膝:`緄R@胄岲Q(螥A溻欱.C*懛p'G颛M )1亴毄d%@ tg蓼6dgO睱dQ贕9I翥5!;唝9鋌惵'$佦侩N郆HRA=y鏈F}坮膎 魅b:慐缹tg闒劉單3覙顏B =蟌Y$f=i 撓尧'妤 c8T$6N餾颲!r:歷0}h3A徠 烰)劢#玄侷膝DI8>烰s笰碿憡$3 5,m磄丆逛J4!$庻u`@ 虸.O.0?*@I+p@热宒栁i騳坺垝1恜}盄瑎癊$侷8>b3伹=閼a>`勭 l傟a悾&2孕F魍?$&''揕9$鹵燙麦倄?圣Q巼鵖%3撚姉Εy巖zc躌蓘1憺<詢嶰qU;B詃 Z剴F銗:翕.$劊8b1庈誜C篌@鎵2eH }* <H頷32I⒗9'8鞷 呹@嗓T`A8彮r 鄐慍`@Q=QR噖*鄬U苨寑j6IH笼(`<淯\rI鏉,%蕬脆岉╆, *0:`鏠0pj貳X亮騤崦Cr2s'p v/^倎B L8寎im9'=}*q 蛄#"Das8辖4灉OB'+磥48$dyeH>铬*1=摇|6鷆礙獌紓r1Iu憪r9雳8f8缲*`抪O9荶7 !$u4巈A麫g)NT`溺歯TdH9臞@噜幘旚 rQ廕Q dN3鳸鑓@@s侳0N魭O澹45潯 y#}}*`w#搨9鼄)潃cP鬆菙-+s#=<釃BFs誅2估,s]8H裼絍23 $d鄓绛RB' @>4已華 (0)>I8暇).$)((7`j{tGB莾渃=* "濴g彪姂q=3 hD[$寑==hs3挰6;t#咧"虅廘s殲8趃_j捘J 圔[r5`蹝洃Wq`視F 蕭q扆)憦碏F釰T宒g4<彯{覑 !q炣v<傑绠r*Hs笽?J6W*评9骏5儌A<5182@廞蟡劺瓵 q霘O鯌3呻詩t嵃?p娎鐝石バ8$憖9鋩@碛*涌曄rj8IpGK]腂NH8謦2y'岒i鋤 7蹉拷X朢) 焃薫 惝)I淨FsA3銙9#8荗ZBx偉0砩懬s@@<:鄑っl<鐞*Nw}JTN@芀M括翈>cLB寭爷楿8抲胛{碸F 屧%澷5yJ 寭厏`{r $罀裈纴6O覒抶N厒Q#={婴 卷你牓該)撋1fQ滫瀒$| z髪@PO┩V$8侌I4駻>昁@"2z + *GS宑)Jw 劀寧)駹<詤巬閰u⑧Zh霌巋$ +儞扞臯H 9麨攣巔粅哇F9躏M韈崸熻)Sh贤仧Z@veH#'=Zv劾扇8)皜佣I寽JL:88δ鶗8,硡p亻?危iw@>礰G懜懘p}&#9&*8$跷I=〣7c鱠溆评勼溹裰歟Q1mぇ`zLd+4蝗<zb氾割9汕颛78'$筌R 1荍h,s嶨jj瀥;菿 錅鳓珑蟐1酽 鋩A詁H濑℉ (懺w0I'F7豶y!b8=矷珔嗓,缹褙c淭 靹($幘灭b 覭$ .e*膸1廮茩3 {鹺Urp蝓$4JP膾~顈@墲#Ⅴ +w'=巗O(L[老$ +fA 扏讪FA81Or$` 跬0 u$糚  46q倓蹶}莫*#8枢鶷2?汒埨=N*糯仪剰 G'p,膼払掕Fs灋砸#g;T(扰 2H'疪Jfq2Y搭2$L$ 29鷴H$鶵#渼  鈨巶g$鷞R頴亗&襉C廠M #<y\d妌2A懒A摀) @鳍繨矔>Y伷sU哱懹4搶湠齫@BHO~粢础wz撧Ryh<阋$j01濶hn羢8苲悭Hqv妤)-98TlX綥`(鞞r(I强J埄f鄿髑Z渻"nE`灆雳蕯l儞層b弒吷蝡s>碼窌S寀奤漉蟌k銈 躉'=)胸溿>漣洗岕瀐*K`W?SH囝0爯q籁 w兓灆4む=j,騷;P蛼C溤d侳h$'歅舝G8pG8鐟H3甚4蝗袅49>咙)蠕恾)寣鲦侤9(r姆揑骻╄FpiA辽$齣#:0H8$鷳7vW芝#$ci$虥@PA=I鞵癵墟敒膈搨z欻 轚慇a犩:詆*霡虶 {y隌躽:{T厄 `rE9##福8p纁 f啴.6\{v籀粧むd灎R<涖$H碓TD烎Tq偋M)$蚰熎獏 鐞=j膁冎唨 pI<笪*Gp芆巎=  8 ?櫓地.7{糍 .H撧榬膾x鞟* 払悧鐚馬9 u$v5.醼4 +c<歏 ?Zh鄏i 8鈺l墍Hc2 d!潴V%H5\湲?*hB d伬&$囵j祇菧璂繾倅跬4缷R鵪醒N0拕`~4錼  8ノF2h鐠<*"9匥寕I驹 畐dO(9 瓼譂0隢繶.衫欽饄銥yˋ螿\娶掳鰉罍99-│O$慛.=h @<囿N,捡溤bA(z烎叾捠}癶砟>囵~昫#*d'#礡PNzs于H9'佖P袲孿珎{d雳wF ZUrA$g>建蝼怟c禣oj`9硈溿 W#香Ry|d1聬汙rE +r圄A+90K)9夛簸. rO淅RN0zR蝫t阸譄99';q蜲1 懬0瀝GK8鶳I#B)A顯\熓F;阋#9樨SNA *L撥儨覟N 狇僋A'X1渵4dd灊)噶蜨缵宒y阧BA PU 鐟湂jX'u`f#滝鄟儜邭Bq:詢p#绲4伋#7$M)8#狤^'#=隶pFJQ岓RlUa螻兀t\劢咐汨) 齤PLg犕 *蜙"榎寕H藄襽疗@2y 鐸麲ZW ''8)P2$覟G<C闕c 93逇d +8磘=┉滎0z +`809謦R峡J<亓?.3 1矽@@ ?!拤<殤y'$%#b扺滫襽Kns;謺凥I$鄑镼 侫 MJd;V冏5払15' 抪9橐*I冷4镞<缃HAg4!^9撘妚$;攱=i鄬{Z@巠:Tm噻1嶣]跂L$=┾ 夾嶮 *w`7BX驚X擣9#隖#NrZJ.嚆燸h 搨{s,pG80〢嵜戇椰脐 鋊t v+垊;韸U@;A _聵壣##绍撟;Tx }沩I紣AZfrH y +舺寶j{q丄圽摓 +~;S蕗芚3巟'8雩t'灨(~R僅Ws儉I鈿?%H NH>=B'癄12):憣鎼8齣褠3鞞乩g廕蜲) 6z詀稖41懾爍:GgN缼 雳虆A泸ヲd+@孺肩pH艪(0$炵 澩茜У,r琁 UG+燘yjI╅趹T兎# 廧h轡񙫎> 鄐丂茞'p顉](A郎4厠爘靖)2{慇 b(趣8'煡麘湠福*H$抺`鐜絽*wv rj恶翿?(類趵9覙aW$d`搻~ +A儗嘤裵綠QR怮2Tph惾c苲鏁落E2A 氵(u丘#1N陲(.@妔%U鋈=齣吶B1#疌妏*=s-鄒jL %H1$B酯\饃莭钳酭 H錈ZA +{葔9'8淩艈A8颧博lq貫*況z268n  *pI#謵枑榍&(孎P炱?匹!6R$#痳iI$O'ˉ1'vh`= 侳鏷/ⅱ d鋊詸蟎$憖pE7y湈{f侫鋟=qLv$尢0I阈ug溧`湓HHl酴僭!$巬)XC ?b 9 q<邮G&08串+R@+;9!纅? +QJ獰@{TnI{@n)F .2rH=)]I1Ol.I蝧跍!q訿隠4 x=M!p屇$髠iP##g8"搥=閔$&2_帞蠥@9=)闎 +侽ㄎive>鱭際鼥<绡贱燐銺N繰 烊 rs  +X溹dz殣率粔圊侶辅g, 4 $荙镴!D'抸PA#'烝 f@酵=P&[pr89⺷f@H苃 翬匒A捓銥咩SB堺B劀i栺儛"r rh欵2v恠酅>冷Hp)蜺( c灕8m蜪pI8鄍iY6 畿酡羇明dy媴9庻,) 鹄漋'$=J$E#'溡z deX儉@RAc逘`蟌侧怤H銣殗SL 憗夽 2*\($戈(贐滅覀4)u聻劄ae)W`s埔2j8,$`B膎*炰雯D$!袘袵z{o+=*2T怳y酡韸韸憹鋹Q廘p?:q/懺悌鮎捘H$w41W'躌菾o` +OX*7"C笇畄倅簟膅拎Jz嵽囊00F 謿c,泦HPA*杰8}@偯k9懤燰皜 衫#5}4P,2D蝢8ㄡp冧$ˋBp}i欳 疾8紝'闧 塄D亴p抒寏U<  !饚滫S9 F+1齅 憁?魍颓|袻,P苻`茯)I!8巯4nhm$ct︾鴕í(f *:粝jp 芆SOzs 蠺n鳶廛Gp*5 渮酽岀搥ホ馉v%G鄬佊讦pX滬c恓;y冃詠Nx蟩J耯惾lx前  `02)BA<詨 x橥衞#嚾\駜嫂H$倻I妫g;鹉渮謦 !(G'h碲洉 J岀< +ppI$u犂=(W剙>枨2W '搁C狧 幥03蕒{0hT 褭K韥想L(倅籀戮k遨3S垱"蛊@<@V(9$鐮颪劻缮鄁湤RIl汶丣$溹8gQㄉ闉sL е乶x-  詫#*籌恟Ni頡*}挥YT }sLc鱮s闅L兩懒殚ML曏H顉妝M>ld缃J9 +ⅸ$$猡蘰九!{憣妷c亯9'3竴霳I=*EaL9/偯##慭F@=s擁Q艃eA笃M4ㄆ赓'缰葮 偂吏8&7侫E蟡M 贸@q鞱"冷=3錠嶩84訣GQI  H鎲%1隢;Tx,惂轁絒鬼舁0x溆 榩:Z樢O1*7$侜又cp荓馡告ERlO=j=奝Ibb鶐8镈;K鈥0凩3鋎8臖)'鐑a慸繱狸O颛p胣阆峰E砀'塥 '秞7A蛄9?(L栱憖h蜇湷`撔碷0,膅俔箕t瀃 鄐生R飄(戋懬)g悧e8蜙AZc2 +岚^鏋 af!杂悋`@~魮憸J烴魕 G等 3郓Fq覞d]\荺~Tl\醱滛鈦屫Kd捓鷙 尡(餙SO*cE-毋=嚨0*'N94呢I/<歐!惽亾晴Ovp4J6GC娱E舝0v捚<:燅乫渞⊙B搻;A#鋷9齢A缺9xg?ZY 餾与J闚親9郿齣\3!w#=粆OzE屼m񍌕(rp,Q蝙爴驇H镋裸2$褹 热'(湗蚰灖牗寚8鼼J]<q摿#歺*夌$冏蟥b敛I睔hi堜髵⑷v,f?D齢 + $i0]睧Fg0ORb洀'甼CK"X +萆鑮)剸80涌礖2@8秫 蹴鞰1迲碁O4,xNzR憪3H`去鶐 Ju2z炚,﹪H d疧=-@焗r$觥渢 +++闒U癆Rs橼昺貈UI螧GJw楶p0}=i $済。P"1樝9sI宕紑@J$ '#8) 尋鐏渰P-E柆<'孲宍e鄎力宲1入J丄=鎿N醘O2 雮9棱瀂r2駟R?1從sU暻朩$糟<{zU竑"榝跔啻崚O胳)4+ )#鬣懗,~u娘%嶬dS-%&S灏"&I鷮6.侒c0鷙4 Hjq呓<竝H寁<彮]祤9eX蓃螻缧v嶄/6伝贏該vi湝4嚯ry嵥9醛Z4(*爴=槎7nnP@ +{z}jH1 vs](弐H聦N)蘒1m]摀4&銯0驒,hZ})$R蹳<:銣}{覺耫$l搧撛z鸕M庫妕;嘼Jr" #4琂爳 燆i7dNA==;乳儠%#礙 +2D#|恵z戳)uRv19?Z伐豄┻莑%\硛螶oDCvWe$i>Ds|踏鬄9脵/怑覐 闬N}pMZ僨n碦8尹俻<85滢艌凌q蹚坨娼橗隦dF 萆(䲡J攭>瓏菪Fi狧$胄噥綮魦擄 +d >粯O貶.櫫%Hb@=i`r2q]v♂)M导9 鵒n爁㎝岘F寛n :*悥 +{EC媄3eR-]3瀸眀9'佋諈v@U詼td甾瘽VP昂申|紦鷐鯕n捯%闗!黴丷恹-阱pZ@HS佖Savx#湈2= 隦R0r0:懮赜怉/茕`{s@3憯eNH8<歿 ld镼8艶1岤S5$D!坆]裾廘S簇R@ 渧e2 +n 刡z鳏轡眻聬9 >斾E`q滮*禮T)r溧*蘂 X滙M!X怖鶈0w厢M徜a亼丛d$$y鬎ド茑2I44;hM昿爯I=Oz `N釧颚"`bx>{廽鉈飈)9鹰HF祛#9溆'覟掅I鄴I4? +# 扞<``丵H迨 "t痁U%A赧 `搸Rv殲^h諍怚>樓蕷-鑬>;l'''訌Z覢z椧G/惼9r 撈Glg烍2瑥2棃稭3轾针t庽图絗%#$亐@I5も厼%軝OU=dq郗sI珤夜屯XK"~P_o璌 d犎 O#黭N[I銔葏荺趿#ㄣ5泀n皴 ["磳铮 鬱3搾佽j0閬脍1<灖摾堲L6 >S>$翲$T!6Kow<槦薭8 w绠*霿.|鏨偰IRz姡%冠羈I朐z⺻珢H蕨8粑颥錱7E桀Id7 u艶 兩8轫K 艠 $`湝 5\9<`楼+败B渹q缫爾NW闇rj耬 +rq匸2缎 甚85\C綄唨 苮?8BX 摄,p*Q膩U朽卬A#8臝,V髝鍪abF鑈'獡囹=暝跜3;儊嶨璏碔lNNG乶^ s 齇CS赮灋.k腐s-c,侼{WU$X鮱y8%H/g渮瀥臬o 嗷7B&T!蜛F渵Bm鑼戋(磶颉摗攵vg"PFT2}ju级渇)鉷}翎%-St@惆8麿颟妝q +俓 簝3{u泉u沄賰m蹧窲1穜S8' CqdJy h軩樼:䙡~U局%I恅蔄8?虦U逡监 + +[.X亼宑蝽隬憩衇苠韒銿炣P8'!_便*6はr6P9$v鼜醄摄觱聗w+rH廃寏f嚦1磄nA;渀戩g*洼^[,)衊8?6L拻浒P@9璵橏3#灓岕媒5- r,}娏Uk@笲Dor@a竸8#狛觉^h欶Fc戧}墙kB罀%1*览鷗>M BFnr$c8绳槮猨30$o辋}(3缿格?聤=n+瀤W4g鏈鵣09濊q"絫;7g#8>犘憫扩#$寎})磦1腚迡鵄Ё謵)$`g姄a1髮81鄮jS0=y郼抭&NGG鉘匎\T功W喩せD GbOO& 嵢厐@z弋 *1坜"C撋 y:徫墦m塘埪g R9勚~饮 "沋厐,圓8:O_j=喩KG#<昤O∴WCk 爬抍h0寣=}iD|(晲怓 g 鸀jUF瀬crE,& 沿湊利~担&1樔B齇J輠X錀藹2伈;抶汶>擪d灓c戼錚隴жVl阙8詼墬 掳=y踱,糩倻u稂雤鏞奍U偘寛賳@ 佦愙篡茹 +F$O=8 b寷;"% I荓彟EX阜e癚 +I#$熋$V娵壯! 嶩'彟yR+偲0Lcx鼀隭诗n醔布4!囹 席 颮Z7*(Wp 噜忒, 9愚5[ s拎{駥~^2撳躦%釩縌郺衏= 笾%奌3$L<駻 z]挺) +$$挔髢佑渭捩I2n!OA嚆诮,-nen奴=妄!Dw'4锏蝯漇# 篝ボ楞9镆籲麔Ev-ピ頊惹託庘阣#l2*]&寨颿2珹蔋_6Y蕚i 艶z踊>U卦襱霛Q盼蛧99.@拦@>勗~ 啥槕秀醐樸擻朻齆X晫6恟&V掖朴剾o 1娧)郹3俴踳e;尅校晛{RE4$$簸1鯲亚塩-D渹O抓\xbH刣税-詠廯:鎜鯄8#巔栁仁伾湋戦L浤婴,&#n )/. d~曄<4溘]L淽:{槡B v鄑_聙@HL槇'JG籶 卋s詯9缫氿鎣$c>犱\鱿p43盜 +凅 mt; <郾H閽2zg8*艫2 膩川;敉?*+m銀@$tZ3#',捓u魍B栻5蒔 伻$蠻-7,8锴4(紆﹚_1寋ub.St寔'兤q酊pj<;M!鵏噝(8銚9荿淰掶l2*掄闍帻鼸I篐醗bA$搾0I赧<*,V3厜垻Lr鼮rSNkrIqO s庛с閇"剮 瓊88献忕U通笧2奣0$′岨|螔ㄘ靌ZZ榙f凄剙腸恟G?漢Z燮 拃搧';v蚗XvBA葥'湉qV<阸袘8"⊥粖芼柉1>褣N笪=[泊Hc 萠 ㏒ 箅N7嗕0焭xu"B>bs偋寁?滳曯m蝀%谷#A锷vpd 6樍廊?\J厄;e r聻 wQ6憥1u視詡0>騃e=?酛眹暽龄泪訌ǐ璎` n999>(鳞H伭OcS蓟8 雽餓&d,Ok癧睗8F楓\瓳艻懲<艪邻 u萧泱│* 裨+搏2爡 g嫌8; 癳%pp{c织8抠堮="籏絙跲.&R剭I8羧J5涘謔贙xY!豥戕籶悮w秴F 锳j驩徊g佇: #慤 9"絋hOk1侤鄲@ b猟$醛T3+⑵汣愼荅欘ig刐6 p2 㑳蛒H馐c渱黈B=霝kVt崄bE,T2@##)d?/絪篰泏%y&Bs滜㊣4莝⑾扚矰讶20En秿iRC儢yTW贚p赝q喘'妁壡Q佔拷R剛4揨樈p%含{I=3湉┃硼=柒%XcJ映窄4輕3=淀簮姢"舡叴簿W翰楳!$vu挟s[%ebYZ事适&Kd鋋匲鋊抸奒垭X`+kn/c%Q樂茔霘驯碁'ch?o 睭鶻}蒚廚q\恿.隦B鋐.^7}超{豨3?岮u$e0$"广;臾$時鷟4牜6 2?*嶺n18,9R213郐1隭螕嵈M暳$dt88妾8#z 腩q荂芝@) !-曣惀:Fd岫 >89黿豅H谾駩H峊錾茹.襵錅>熛姯pb 鋻0A褠刣8_l肘 .@??? +*?18蝳瑜95 鰡)8`JF@*H x汝*矩炤' +P岀4貜>熊pp脙鐰 E,囂9R ]捏竵撟瞉袳囫#@I-滅q哧j{惇Rcj暼$耧貞 N{恴缇*ix鎷 9轻T扠.Y窮 +鍊笺$笕铬*"8鄰裣5)r;扱蜞g戨蟦焿ε澳 艑C烵J梜 43H* 烎颐S瓾Qzc症俸V赂`@#$騲舂Z'w摋渀_匹遏 2p茑$s儚Q蝘 +#r霫繥<耵#窑*艭!磇捤怎傈}j篔6clFg? +9]異X矌#絳鋞*鶝F <黡*9嶦PK#绉`j桓23w>A缃J奫嘡斯ePI{`Uc0襆 *9艶Ol髋N鍯(!蛱>o⊥F 楬$!@\┿*B{(蹿Rt錆悤8燎 zu芌懾跷~骏d# 1偁炵嶩螸9雠\簮;0 ?J$領"6徭8x蹑撌.a]巔1$訯埔厥唁q闉 鐘愃$S(G ;义r\隑e{;nr)焚筎懾褚)I%洿壅疡9滓 玬/Z膾3G0o碁 U_ +磓叺籐y侻䎀H稆坠 +v^胄圴IZ[瀧rMdq208*鼳#姮衱V苶k饚-話$钅梱N_荞Td鹁鹄q0${hw9`澙`z醍兠>沒$ p顈b}秕閁[G +╳!~=N8荿蒂6諬59c崜蓙~vC2p<E'-M=澦Z?儱眎#{淍鄥躾罄齤譬h 俵ck笙值5-f;u1皿蓪dt蒦<$ +侭倉単%筗譈ネ鞉9嗀獎`捾0省#向Μq2-膾C紘*;孋`B 1剰&鰩痥o+ x雬N:髌+Y7⑿E5踴潯/4R)>\袹C V$> 曧胼蕫伪]剧嵸$臏鄃}.筫 %籈m记櫵I亽G3苉馍E嗄 `2惹ō右蘶谢╦黧蟾/m7毟3襞oi:緯l勇_橽H匊+妸馮堒艸狕弞to滀A槒J暛氄O轎唚祍嚼韨r3鶹?艾'8憭 齳确駡(A g祏鳅彘秇歲<8+澙炪=F>磆;儵贕)夋BP#>囑ㄜk眩"32鐬 +渰z'a-郊 凅伭豸4霔氋捱楾騎d熇訨vv@澪扥0=蝚3?止,n 0H%?CQ拠杒峭v岄眧犗籀6﹠荼W2遚$嘍f$4满Z>(鏱毖>璻>跻/諩肢>瓵胘P忹j?‘|隁|lBAo恴咙I#譵]u-恈矜嬋 儷+5Ic鼌4篥珒鬢眆X*俌(UxZ畖D傈栶 z 愾ч?R(鹝穌z1熢uK?愛備9閷赧┪縳&躯2h埔焐擱嗷 偫憥 \'H@C摐廲职|;,1 鋧處@$ 撠q顂[Y(X抷躴擙G醊EUj饺褬 悜败鋍=x﹤4$ +e~l`prI9裂 +q伹話z鶹z陽^d瘣D =駩=騸淭(6畷缕琎7敇賹 |命h歱e]p=S黨ъ0#B*$甍?(峆c迦 t艷J碱匜pU1炤~6鍛2)槕撛禘B搝撛[槺荿I隠穩4b|呺岝=j軕0"孎r 俽A圊=X雅t"頏'd>g`2u8$(*[.N@F '巰訴?樢\8==kSP処p8`^F吁钝 0FXciL齤?v +拠懚岝'?XY岏#曺G + 漍o $1zwé!劢# '8蟐GL沭猻粿孌砾孖(艍谷黫K哬徣_pQ#?粚8b$)2嗼;鄜<5\FU釔(=硯憬(6醺,隋$@:筘v鳗$礵晩!%q俽9镉5%( HP騫$v19$佸3: r砸斱5悏 + 髮uM+Oq堝`8摄±#毢奇五軆?8'P `繒(挖蘷 bA紎杭鱓m0fA裊X酻d箉~3}I5罚hP7$疄\f@T摓5ぞ[猗ノ)#鰲犗愄迁'闕t3鱙霞*帠焥O/庡:焜 嗝積轻NgO衒 +8bO鮖b-G56q 1w +N瘣?K 閝 N}匵MT搼k 鷢?+磼韲呒礝m匛龈忀且8I^睁檹纶媫錎z@?杍聏Js2趿'鶹饡[牼擙伥徳 +P灏筼y&~啌溁亷洲籗麺L毅?=詬 +娭6Akj;$鲧陎 +蟋腎耦~狆*坂砂08鷾 嘀<蜵$; ?J*a+鄚;昫@#7{摿惘8厢U^ lL孈;-滜銕+GQ媔參佋髵?昗H儮碋v(,A9>縙驭筪褼5fF-軛怘8%駺鐝~誳虓蘃`K滖=>烏R鍠8)e(' 幺.鏅cD 9$寑请Cj怼 G緂 FT蒤鬁IF乘袪岕<9>:Tl財[憮:d䲡4!e薏$墝E簉}zg郑v$≠咥d%<2x蟖碓誸DP漤絑箲周@扜'鄗酡荩f1愀 %抭Z%t2皆5.致 0 寃 +厺K&H$彄:2A獺c捙D天墥@矪稬蜨 勦p09倾I4揃!H袿櫦;錋c=j膁<脔8 ` Ys肩侤绌閷姝 偆I 伹~^諞m$慖:唰畓酂蠺饌$7B霅3詖>膚Q9峝PYr8;\}GQ荿ⅴ秹蔗 卞;A1躦?6扖$峌@ 23硐n敜脕竷搧 誜萊TFy\囓?9C晒刞鄟y#颌/L嫺++1' X$荥t蹟鵋)y陏雭*;#+榘烁T 9宻舂.Y岥Qv1鄗g 簮疏"(2}9猡&`Y旽Ua怬弌|嶴 +2碇$ya0s彈<倇绠kD歐`涇c膢通 暲鋹??枝U $$e礈餉苧?危垝|胰頗埳酁 +|摖簃[锵腚舊劬.>V!T <鄛3TX廆G谉庐'1l$9'8 :+琫9扞鶜>z"F 鼆 莝儊邐%櫮駁;櫶2g寪2?0*O7彀1v/$y$懶u=j2芛濽%9渟憦缿熉瀾M法 駾ER3霃姓壭鍤A懥帬巹撉垮T#f嶤>藗9#$霌蚗鸚昽#8轅$溧+せ癘MH鎡H#滰7瑺rFp隯$7V伬﨎'涑礝') r1歺磏⑩_⺄m淴g鶜莧鄱=舁Lup琮驡'槑宱寍枒=IQ奆籺<雳L之kdg瑀994鄪嫧荘6?Z 妬y#;F.I 唚颇_&5,A曉鼱p枝v姼洷裑n澳槝 <麒rs鄣\ +$ +麤vC 该`廭膈-獴U撏\湞膫s3肭sVLfI E`鋍$q熡烸^|沶钯蝿◣gi汕箪i!#@N$簏!覃纕H蝯1蹮支笀[茼,怚膒s馬睁D粓掿8# +)#'萩蕃<ㄒd幑=j嬆桸艪 擬 上n輏k5懏腶咨$cp8蟔;鞇&Zk擅XH?{巬R鶓72鹢Q[e2蹗寿Y8 s荗皎m8菛p v緝m$ 甛嗐'<{s侙!c鋭BHP櫫廖}9酾X醸0c寽s儗侚g螃4sy`>Px鋠#馥$炦s!踶9鋸訆牎!悁蔋9躉#羿{袌JL奣≒v席缰崳b畇酗!9!0@1圈澺;蓈a3斮'?O璛1睂3&$8$A隦蹝辯嫬佋懤羯5$nd侱, 鑡w`r=认^鮌5"囱暡L3怘 優: #庝r橞亮郁┵ap浒I( a燎蟥f崲<狶eA 紝銙{d摕聡觓戴 $a溉O#懶鶷S"曮pv#(8#巟隦$V娥s聽9I$颭E\砄n朗鏻)慎绝ドm舗厱 鹰Fe偂z1霂瓷$ 6#剗餘LRG~^鰌X 亷^F*h51Y鰉@8咦4氜岚Vo0*'${齣b%Pll =p3荖>範,3 憪GQ鶷q睂 掋) 忈S袣尭!HrN霡*$I鍝@缹宒脨rE@,h,蛡v秡扥'姇徒V;Op#蹑陞rr籓襊 t漗藟J5蠹89鐞1塾<笸d/2HIHB@閹琊咙+F<采侰/@$H蟗9颰弧2#1@Cy9郎峀s:oX枢笕==涪iD腥爲!P 実吭RㄝpH(<拀y∩ K. + 娾G$}M:34娎C8蟐脦囫臜啖d uB3湝c撺W1矫 +@a '#Qp胞q""& v ?繱楁9`t +'雬?歷F埼Y羈NFG~芵騚桽` 戻pRkD鄱7B 蘔F+樹l∑Mr騮踆+V亘爳黴宺j90D酅渦蟦sS 6堶芬8濺寕p{G詬[?0$圍庻-运n躇1K#懓报$ 餓'k殅E_PX8计$皥悜,Kc佭伐t:2K'gQhl[jrD5挲潣昚寃碜…_> 橠嶗dN 迁颸窈庲裄仲<嶤詰圬TQ5請"蔹鐸薉鐞=峔kY賷xI[:砍掍噃# +0惄苨貛k煾兜呚厢蹨审忎G險店d~"◢f镹R㩳覃?櫘4謬媅;"Kh寣>勦娢亢懃嶔淃║G圊 熷R sQ7 魀?Pi弣4袤D-燏`凒 +9$艝玛g-$I%蟁OROzAG*戃z謸扟騵侚 +屒戛焥4惯q闞d嵌jU吹佢 +祢駸洖@雠0> .v}勻 8蘮伥岀 +a粡8觱;)'芤鎒rI隻p彥鬉U唾贖P=墾菊!uf嫸W硲vG*@rH 蜰;qYm{6蚋$3 粩NO'戃~T4韗T靑3'闙'钋P灾|蕭r 豸? +B痎隦4T纪:$淋凁7Q冊; +0颩愩鸽E+.%覒羱H<~嗶溾砸懟b逅o'吏鋐;胶 +K競ap>炦症俿 +Le軖!錅s幘撇wZu +仮8]s" -餍")8吿$滀8 :慤$+FT1旾(@鑡瀝q廮je拓(|蓐w盽%顒Z]鄉Y6鳅QT<涳嵊e莖淨O晠-*& 籤熡⒛涉d鞨榥%哋{Z玾h帕V%I!p@ p8髋Z葐@L诡Ol{泸ǖ疯J"C纟++膶纗Pq肷⺄%g滫熷Py 扐礈鼉彲?竎咥&评.溧滕襯撗 "s+滎#稳$现樁K%袠颧8$怈 x壾U荁捏&ō蔑Q+黍裹)D頙m#;6@\FO珲4鵱Q!朙TA=熉ㄛ#fb辬餔艻== +墺a=b掎D疀;%r$薮藟$w∞8流1鍖$揆菮B+術筻斋h挪,Q葫姮T0$騃鄰P錣S\ k备F⺈袖q觙@(砷1辖Gn%搠9釄9 `绻酛挔滍/ 谹@㩳8霠珿lFq,j駾;Fp0Orr絁d>閮颟诠~ TS9K偒$r寁8跞#焃瞓 :將H赑扤忐蟌斩枏AA|r 膁齫0VW崏H阚ё迡Tcw%Am籋$戕凲捗i$渄巠獗qak<盧燿懶瀯嚟g蒻5岊KF蔩x'A胂犿V擺#塉菮鋻鲼雯鋶 :侳3?畧A厶H.1:矟寈羚鹣J凢g8l剶d侅x镶Yp轡i"韚pq衼秀豒(亐萛抮Q g氍鈼5;曹E碦F述駪W蜰I螶娾闓詵F埵bO2(x瀫 y纫@PbB +愝y9氵=>堙9蠬胮%躍3 =玧s检鯡'瓕=[Vu#Q騿'╋廽揽戩t駈Nn疈杤 ̄签oe谲塥5蕗+c.2A#' 銚X鱲Wsjf;貖凙 錋0GQ+詤H穊庸[F杧<{庻諿j簭<槣 鲷黬崵秷逼鑄纏A羚=3)6韒4`:搨珚磾ケ肓螠U礚M^輊C H:災V (R輁tL炣扥蚺_瀁B`1#3Q_[5罅o$H +2x8&獘kB+鸳;Y[箹 Uem ' 瘰%饈岮p孖#=B;~u亍}[8茆碒鹤c頜E雒熀U *坲u 鲩妑荸尀礐R儤=48!5URg亷绊ON3标G-UV院髮`脾3<}*⿷弞rF7@雉狿H桺斕匿湚r听@'>浴薁裆'欱鐾W*#潠g搢鋖8霿цG錛櫾 :輡薑樍 (蕶~炧c酾哕筎X幪 壅絪鴔T嫈梤q#徠灟R5-G8h飩  +j譞"x株xeR纘(zs濵s揱>@赂赛{~]g峀牔襣g騂(i8$喨l=s龄z折 鬶&K磒C{0闉鯈煲3 憙媵矲JH8暷庹予e7巨m H+0 嘰3芆L侙巊ar溺p寽彲Q闊Z谈箹kh`梐F峱T嵤H$ #'郇┈頲芬襥L謘QOx  撒琞+'r辣覮l;撛彔鼹 +喪鎤遁侷7釬'9闇灉T3],赲&"呫戀HH8胫7紸1aJ傫>儜蟐窜mX碋轔1咴-E僡鍅t鲸瑈|卻U>CH韱 洺宺O鉎揋:%仫0@蝭潲3⒈奆*缻爞 +'<齍焧慐0]铖|)`A巖} +7Va匝eP绤零'< 搸@=J铄暦兤NNr:侀灍J# +6E`c囹=y>鏉;I0J機<幠鹵齷≦})2g(凵c蜂l懇昈顡9李O衐謚琶媭鋗价転O$~4劁栤y>z'8繠H }1R\鯽 蓃g#扜5砳綰>GyRc<'`<N}3 +2,jrx9#鋞舄[R敞( 顸轫 +%2-軰dz=I诔m&z,輊Y浍$鋷A濧珌Q%實"(FF3抸鲢?協'貶豷徙C@$侷麈擧铒礱$(# 懥#蹆自皂c/俀p1!荀'缫Ф,61 q彥チ蝈嗞.R鑣 rpq情Vp适[j.鏱 抪x未V柆鷦妮@殄煒R尀躦両,蟆#(#=F 9)譒优q(楻鷖跓f>醁穈9?P准愴瓔7礟母g$1=匙廰臗ol嶜要應亹y==侈焢鎔&!F蠫寔Tm4丮捘c~騀 8郎烚暐摀od;kp鸅-膸籅`2馮<%澵1. +]较圭誺hHW`抆Q漓{䲡刁c驥 !罬瑰3詿岁k5u&腨i襅x键6s祻%9苶{娙皋撉1愵庶鄮縹 KH"曈2萅I%撹:TwQ礂1獊摴I巟>墙7瑵稍炛醖&饎麗}GNk:[0绤)?@#x趵┹眘' x些<甾琝H孏陧褸埨偨亮隨侸WcL鉉\ ]偁D#svJI9-p颉僻渹p灵煡vp:Y煷D落吱%#倇c'颥麡喙傛怄IK選g垧喇語/K'劤超萊u$7岭鶌祜礃rb9@凄88霨z沩eYKN岊,雰兝席8缰遏齜Xm2E鰽昝腙)Bqm艼签󈛀冐罌OW6E鶂`=;餳4I-A镦 悿をH$錇茑{u湛鈁藳H洆冒 汩揬鯉F鰖刴ue!!?:!=稢]嫾嚌鎸撓$阙悙L针[槆w=8螼师覆1诙&鉵效鋵黺6杹qcb諫扜$?/鏦瓡D穛泼a崅1 鳃V#俞蓟7 !r;(泫徢诋i2ΑpS躸 毙ZD&戫a羆銦5辈'$<鹭H!-鍜_`Wppq?E_c>k^PE闪 戸舮淼╗C5d溵堁记nn2膕滝酚5<4<8嶚=6襁屻螫氽沢&< 珎:8〈y葨u蜮-儛w<│瑔6鶔扻伷s飷1隥阜d#塶!凲旴990¨;k笇摮冐詭>搞妿6), Jv厉<I'Ⅲ@唌扟L摯!)?瓳/f捼纘$﹍陏S帬EC%罞碔r瓴N *輽擮,G潃8RI 瀥'娡搠lKS\Gp芷管營=}zr絫揬的^\HSfP热 +.-=阍3审<チ+#9 [#2繕吝蝕 А=j$易@M=囀 耰#$駻 v郤頳峘將$ ps須K4螅: pN 櫫愕:\踈$DA炰u>祵濆n俩lZ銭 術滨5rI膁頛H8鹲褬n臕詰捸唖RO (鉞家沓'汩N;垎庳B估D Bd9鋻AN掬幷埳r"IH'绷'1冴M,1蓀阃G炓/=0H趵9Z$侹w%媭 扇鐚蹯3氁蒃y娙痮na辕m壧@~8麈璂 W*IL-慑I=9z郩k怪=R;20prx={T衬鞫+4]褣猍傘恳數wA舟樚"蛼 N鮗z]1盕?y\p 呻寁臠!溮D屖F鈳998隢6"$y$0U=O蝿簛2氁x鋻BB9A熓E捯牘m浡$`儜W#磌XC3盰(寽刓u蛲eE$愜蒳$N\1媚q<佦脍珪囱(愜嘉嶭o荣侷羝{踱v5◥+0嚆矜测D劋亓FGr;t4藅孳0 +VIY 8㑳3篧a/I k凥庘酿20I=i桏.L%w禖捈兾=@ó燳l 暼!9蜧S宷LYN歉H)!p8雭辄篠鎖$68巌Q|礼犎扝8錾#剽+鰒) +$9鐷寧齴鸔2噾緌#禢T8鑚IZ9L}騊#$邕$q鞪kK酝塮k5纖epw屶鄳餃T$:榳^!'壤鑡弞,i┟2寳寘 0?釤胜詅*>瑞rp9um!歛* 慭葀 < 眨k稁Z02 2p9 {觀贛*皧I脖怚l='緄cobaP`x袦術鷚'VKVR2U斯$q2eA怤xw?醃F蝃汬襀S蛼<盾H迖酯(湍獀6`<K賢WH@鲜F?!侜Rvv%愰孥蛻$_*T鐚鷳蚞#$k,牏A\`抸纁毣1硳7cLwuιDe堒0 p2^y莑R數筋uQ:m!f6稐2獡#~1幗个閈e@选&F嘢=氇謋k{9" 玚8醍f-n阝m璟4 K圱$丙宑 z:魀8鐼J局\艼脍刯钘/涓翇八廘I`[3砣6  +3~脬摺譀╅rY N.m渘巟芔嚳□潯蕲I譽道颚C些?PpG液ZI^&v陠B凵+倰 <阕U;葠Lc$O瓀4r\Z.@F<@j却Au淚p'>Z\閖+沎侳9#瑨楝躟葇≤8銎?T2鄢1屼庎幷o.9X璥刽,K膶=獹-.妌>偏h赔鍎rObC=~蛎2pOs忬鶹菽r鶘#.FA#'詜譬蒇宐]|鼗∠Q頌=砓芣蒓@rZ) +#憻C鑚xPm輰鳗 =饫H *噻咙阔姘颽吨唐(R+6pK1犳υ8N2)躯C珆I襄[v垞騚熔43.稍偅憖詺视 +h溌6.@#觽G犸G=蘭叚 $s濬J嗏 TWR#+^8 稙fh翈GT搼幗0r:T襔诒 慒泥ds烝T`28` 鷬-葪翐 淡馊  1Ub蝇.1火埊潎 x 鐞y鐐kV9砑;{WF竴慑J攡=聣M1穝 -O谝蒞嵼@绵?2?1S 桸@d.Ar:T)瘤#冾*茥;臿q:4慸!$焅弎P6蘘r爢\8?08鷳毰紊摺 鑟}楪%鋩斳@6≒zw舌 +e窏闎"TP d抪OL戂鵘璅A+汿崡 )'1 䎬狼紺a6N町Dr躦;zzW%揿伈\/蓹實9鋵d鄿冮Um鎐 蛞傺槀p@蕼溽x隬l慚笂7G1盫01邇鐽~勗Z姭哠0 醲膚?鳜-傱酝m#%W胷s仛e孠ai)洙, A荺{ZH中G!篏 !@6H' *(〉8et潐贠8]R枛緝G+-淔W/℡,s東邕+`氽9,t訐Kj+i苘睓ヌ 匬y洔=恭~詵S 9l'8詐QOp役軝 +#!Q3鐰ó衆jKvH:珋H鑡審z鈢l;廴侄犎HH瞍g'鶌堵 眖X g圹腫!!8如衾z娵c"HI$>晝婱で{hG閏6^|AgD!,F秩=vL牆守珏钳Lv隥-铡` +HT嘆<烲g4疤稹ZDtu#1訴wN昝V!&%usS'&樿葋m樉餔嗋翺唞猊笩&d##濰瀓寂^)腄#<}=鸔f涁咵┸蕃[偯# '8=lf焨獲<绱R.@牢3:v酹>IL的@F 疞弤p}z誨峷dSG:鋤yR靚M 嚹楘>F渹)%巟?C支僓[睐7* +H驶攘lx鄐彞b4 虙9A頺FyP苈7郖扐9 ?蚀.ek 输 qi#r 縻薮-諆*'2樝bon昁U斳Z佸9敹)9齷弗鹰敨$q捓潱=:舢>壊vv5-弩!G岤g妸8+,撉得袕N菑覡$唘祔腜鐉褡溹鄿饅qV%嗮@`;H'閃=U頥寠bE蘬$怗粑? + 唵濮沠镚庂t `殩)萮劆!V 寥#=GM+鋿恾8苨扤r=:.譨}D抃媺妷0@<冺5+I鰤J噶h0pEM鰘9袨:t%&@r1料c4]祣仾%衣I$咢 墍A艫楇Un$e繋2~}岒p8黴m 雪蜽渘$c镉5 邩冥 挕I'=AB諆vH襐*溏2sD$ 0暮捀n嚛${*徤1眚嫄 恜@R话潟旲$@8;豄b灓L"贎琧欵善 珞洒梐h筘躄w踖].xRH热*r=Mh^>`!%`捒徳廕途穒l萿嬏屆!9;駥鷡U跡=i&[(C%H $1偁怚*|仦睛i急;d珣捵0蔣蘞8(A'綨G殚Kζ-礄# !`鐎O#@*>翁.[Z+掄BbPo錟4吩D狗>g裂42&DT!<憺倮爂2 @砠腦 疘荏 +嵟眞}8 +獟纫Cpr$謁甯d8堌=Hd傈毵倒芿"@螸=滚Xf ,aA`o?{闔鑙麓堀蚼移I.B債覛杛奠螁0晤8 撐q渦范(.虬糴刵膎 H料#8ǒb['"擝F湝侤蠕湚=玭鲕l/K跱 竻鞱B1卹\8<=EIop3虽鄞▓yZ-Las搱 爭 撣cL彝帶l' paN頿;3韀攻wb鋻m悿L剴c热轅乳H酲牭In-鎹蜤ˊH$∴$-*藛u'o'颖#蒪憯P`尡鼀傈}ZL涆BY欿`e溹摾PT氵須-^-%鋻镊#幘!{@か繧8殪z3l"轄p&弎8鋑袑璂j4蚂F鬌$$a儉=1窖t硻"UtDd<撐zc撾诖a歩 0悾赊$$硅z`焅驲EЮ鱩u 僰欠60H駚莀J畕n3HE純 L寕缿相3]p椞広IK0 '岝绶N礜*轹甤 +"悁8@鄛*蕚m稤,FR鄬pH#Ч璖﹖ 瞇)⒁1.] J囿兿捉f閼0wr拍`F2x# 鼚jY5睉f昫c#!儌B9愕%遗c8/ #1戭?\謓Z4侂八計詴".]赂鐢:pqo塋3n +亪$%1巬rZ5A壣%K卹=覘$晒%,NA黝?祈$.ぉh撃遨$偢 `H肷#⑸r崱2Iq络蹁q岝讹媲髶H H输t汝H溣绺圝餦"R +9酩 \勅!H欑8PGL濱蜙鞷Ar$慘.3生妴嬲巧剴耒+9蕊鵕X-膼罗Q$$de0 扇/e⒃z_転^畓#↑é+紴[?酔E豭:4(gP狎I'+徝4 d禵 +=,奫P蚑矇$8*I痛怽`耖莕Bvn阖狙 d $s咣絝蒾2\C"D飩 $dz姝:悰备'扤GJ綥 + GF'8=pq霴镃j+閎H甆Ao蔃屼優>暞(p2@0pI?楏獋 y輣d9Q珀O_\訰N傚P9,Xr3H鷙~弧靂庉債嶹鍔幠#鵪長潳Ym鋖寬 !入求⿸O-#佐㑳%7%; 搻s螼鏒輹8镱惗藎#叭j皻I.'h陨2H21廚㧏#塵鄽@輺'=u蝚揊+91򠿂$u窃規禲諐{$澃巳8$>纞u塹м缹抂H,え8頕GJK蓂罭;:屻庉-頽Y腤R yp莬u$駨|譚# v尡j#捰i岡 ($懬璒%艒痪4 g昐8媳5o礖V廨X葂d鵟 懥8Y笟f秵K"&V9垒屶寃 t5惰4 焊i,楤\1炪8"簅.&転\g,樭兦ON;Ve糝 #I"G$; 鼻BM~洰R8墠Z23苳庝泗巢c緞蜊疤皞胮$侼F9#8閵dJ!2D扟B罖8?煡G缟6皓*K轔^pz庻藰g涗,ゅ򦕮 畜歲v縱N勸瘟I\*P筵恠迊pね/憘 )1q 佮e凘#0OZ;⒀>@ 9c零〓򀖴跫Q 3"MRcG緔9Δ6扫9^K湬偣 倊嚪7饕 '.NA脙鑮G啶罀J暮8~0匚鏐m玕鐶叚耐赲 勫儉蝳Fd慪 场R\Ny攘<毜ut䏝$Cd 2紏*斄..%Q2|笉崁r;`圄8玓侪50紝裗OR/怶dv渰[O0,pF P#烓 '48缒堣I* 9# 鋊隥%閐{嵿(劭n緮斓Mz0葇劓箯bA<:巶甂 6蟩:瘉呯`餆臏泮U7p奔a]怷鋎灲*H[芅褉rqP赩HiH13巹1弉3冸廧Dd劝r]鼫鄏I镂?:鸵疊1佖酙趝寧G鄗V禐 憵I%販`F{瘠襈萜澭J1&霓c'$侙鉄o9髜LFX`90}城郑駽\(赸pr!黳?齌鮡R骪7澒类鐐鶵掍I-弄e广泛2i酁Jr=++R崀謋8rg玠戩3鶸媺^8蘃 d栂 z<o床/?\泱鞒頙哟h" %{2N=撑K崽怘$1:鍤L8憙擓q虴p颥侶悟$y苨#趨 !&h[ +^7.渵鶶. 嵀∪軤! 2N8黴鑡虸 dY琓99顁qVa砳 囂B '侳0q丬覫連C"]s$'广鞷K夙侳A増 + <罅缰妻蜄F(菶郎鄵飺i晈珸2n!.屟6枻g]涯憛'繼A笥4;@趻7G搚b谩9凈颭乃"掤1*G c#婿yUm靿2B* 嶨搞彞 贿笒$FRX!l NFx斛麋覚o8鐩x嵤遘Fs蜧n*窐.8E蹘0O叭5钪T/侽$w跗xM翟.環窉[糄(6 $侵諕}n芓?68廘桩sN,Q蘃fR<$帢> LyP98銦Q邭J[_$w${m鎦m沈 BF0q巟如宗衍YLD権崂#`'$c怎猹>p3漆 {#滜v' s怈A颖l=:烴)蕀从頚 皰,@p% 搾q歹頞L歞筑S咲6!累$;:〉歱瞵漤藶緽支父岋! +筛7★寁⺷M&栰D2;偠@ <帟VIo$fp└駛=Nq閂" L瀒%06=zY鍣NDe278 惴 郣经t"2Av皎Wr$抪A肜锪肱)[府`炚D鹅1!诬s袀xj&趇%戹 刼#=xV頨$F佊;<8^z狡~緯Ik5鍵h籠笇備$搼* ,嫨!%O^弍1彞]=宦瘳E9尡 p3猓詃鸑謀秬p8vqi!-F 僀羛B$9$ 侁z*缄肿6牖煊.猥侇鑚萝皝cdC鵯 +髑=}狵唳[Y #:O遥炓穜EP. (*]PaNFH镪艒!?29 29衱鶶焘曎 D$#89==;冶!笎鑴!|t霳8==ijZ蹈WBXDJ鼻 c?=盪d苡\Vbz餈席衠R乞C~扬E噈~囓i.Ⅵ@z摓1侟鍠描4态-贗 :g剥\詘R饑e 巹寖貛趔n!S"r帬绋潴U6Urト*賎:蹊j到貪裞鸉潴鰲QY2噹WBNU< +*钆vnD|1铎鄄鸑聒{ +炥9!我犂蟎u嚮/5睝鵱 Rr咙堚戉D萡, rG≦Ed蕤l婜5X?98樾 +藫2A寬塸1垮渧螶(璦 P朒X6O藈㧟颦5塕-靝v灏3锴鉋]I23籏吶╉X黯o1U傗!$,9 w鑼U耬]B耉Ic潰蔈普窍95曫Yb弜慣哱朢@ 跸UCkt刳C,訝dh1憗廖x=眾l潥@!岮P暫儦(鑟FI%b_2q缿q寫貜O诗yd<诬溷䲠QX萀檛餃$奵,'熕*.RI'亍7g?N碤We=娨9语ce-鏼'e~剙;v q +腛斲儵庂⺄QD禠L#怈轒6\ 鶂?*穝y/"谤楃Fq睨QY=貛屋ngl澌[#岀 │Eu +拳(庌<唘 Np3E袥縧6肠T 嵐U牭1捱<0 濱E(粙┍ +鶔 +7-郄~靡槢!!怢慖湭 gZ(描gE鰪>$-噢c0s讕б Y,2爌`懴z窳'%Xgm胏9左籃涚&阍0`C雭E{埭!y鏂蔍'菳18>\w4&郇蘔 +d* z?#焃(玅VQ5劯9蒪A觘扻騀& +p1'组E咍$袀rb(3'榾禝3幚徣鏌qva溉<=H碸剸袷騅QJ椸铅;*,[狶w]表`岒>統悱UY 峈m頨傸钵98齖S#eJ潘9$ 麼?*(﹞惿=哫%袓膓宍?"1颭,戼睝菾怷亲簪姅7盽ê窎H鍽肌烨?C屸鶻褘3y膑F9(5"+N#@U O蔸q屧j沩w +园悿亹?3T7Urv(b2N彙熐讵Z%蟾炟鄜8`燃蓥潉j +p~n<颟-銲gs/)濺##胍*麍r7氒(赾S:~絆組O<侶a憟憮=0FG~碤ZR訰,轩胰娔竧P'$rq1O捹恧h槅!譳v98漢ⅱ{!3橾攔昝?石N璨泿F 嶡蹁袳d 萉檰B流稆.^21#<鋹Xg鳴E_@Di&9XC妩曦蒬$鄎鑣之菔怽まJ4$#$(8'銺EU鮈;#y'2\L5]爭鄑轼詪%8,鞁;2I cE_w绩+繕~f'钛E +endstream +endobj +85 0 obj +<< +/Length 72 +/Filter/FlateDecode +/Name/Im2 +/Type/XObject +/Subtype/Form +/BBox[0 0 2384 3370] +/FormType 1 +/Matrix[1 0 0 1 -141 -218] +/Resources<< +/ProcSet[/PDF/ImageC] +/XObject 86 0 R +>> +>> +stream +x+T032472T0AdNr.W眳灆X佬栽P夏T撂蠿宪翿烈腂弦?萛%+槽 +endstream +endobj +86 0 obj +<< +/R7 87 0 R +>> +endobj +87 0 obj +<< +/Subtype/Image +/ColorSpace/DeviceRGB +/Width 1377 +/Height 1485 +/BitsPerComponent 8 +/Filter/DCTDecode +/Length 107785 +>> +stream +AdobedC +  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYa" + }!1AQa"q2亼#B绷R佯$3br +%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz儎厗噲墛挀敃枟槞殺¥ウЖ┆渤吹斗腹郝媚牌侨墒矣哉肿刭卺忏溴骁栝犟蝮趱鲼 + w!1AQaq"2B憽绷 #3Rbr +$4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz們剠唶垑姃摂晼棙櫄ⅲぅΗī炒刀犯购旅呐魄壬室釉罩棕仝忏溴骁栝牝篝貊鼬 ?H:趭((QK(碦t孯R鳡RRF(隌锧倞ZL0Gw4 (鞩溠)h4PG4t>詃PGOJ8Aj1KIE +(4f@5(4~Q@ 迵4絟竂J)i(h傽kE'=鶵襌J)hユ)(h5QEQ@SA5t5}(P (-h僵)}>QG4P 蝖聙 +)i(hRz掩 孯R襊0拋/覓4RR襊J)(颎j)(磜ぅ( +ZJ8イ +=à 1EPE%.h擰EQ彮QEZ挆J(v((3G酙E-)s@ KHM4擰@Q@zQ@潻E'zZ?镵I@顰ぅ);欽ZJJ; +QEQE'z/謯(燼E%t顯=á-'謻拋囍?%-怰 +Z;Q@ @()QE借kI迾 +(ね/J(隕R鳏顯:P  +Z(燼趭:Q@倧j (QE磾(&h黨楍5 :袳c敠佉 IEQR1(袳僵((あ敋J( +(借ぃQER襳奐(Ew +怭鳍奐Z 愋襾镚J(牃(QGP0犙EQE訯顴屢襌鰻簸(黨?ZNQK魻bQK迬敶Q@Q %AKIK@ E擰@ 見AG鉆泞h歊)(q(4磾QBPh"幵QEP0鞥v並颎Z問摰-鈯 )~攗Ph(糱IE-%~4hQ迯苺訯EQ謴锧 迻愼觫R鳡bR(~碦襊R酰4P鳵訾Q镋QGJ(s歋L鵕vイ謯9鬛儨袬&)h埃4Q@=i{ +C@))sIH幋R1EP!hR餇c瑕o?穁1L軫鶣>層7翌㎡鷀)花軥緧蕸窺糚馡鞰((魝浐嵲)哗w +wj l褢趢忞E 燘袵LQ~tR傽j(4R襋@ I鵔K@ GPK鳵Qz1/襽覟磃拃 +(謱c緄){R颕Eア?J^鬚c(4櫏 +(Ph燩Gát(燼EQE)i(燼EJ;姻%J)h擰E-擯襰EZJ(鞥笭瘼挅亝%-QG-PE1ER +1A +(=)((燗EPEs@聤(qFqG4籀愺J:Pi/v瘼?*1IKI謤 +_z1I趢拋EQJh4溡訾(((蜤丒QE(挃襊仛J(E~JZ( +^hア撘亱I迶襌i(SEj(聤(襌袬 @イQE.hh +郇週5;w>曰("樓瞍 sE?u籗}h翣n且嵲蘻衳 7Rn){P稲瞀繀鎭nぽL⺶P1Q竎璅)q灤.釆e~霺ZL &xㄟ42緕=jel豭g0, +镠 -Q謽Q(奓zQ@ !-;RR:J`R幋PQE/jJ=ih8鎶)h(鶳-'C(彞P趦謯9(燘QKGzu1KH-%J)z艳 +J^碢 鞩E磾RR夾見=瑁-奪8挅)hQ((%)B鳎立亝%-:)x)(脍(-{衖(i;R袬 謼PQE- +1@ (4 + !襊!i)M%P}锠aE姻鎶((鎬詡奪(4Q)h:(鞞%絟(袬 E~4擰E(顯 E-('ZR鈸淧0袬滄傽 Fxむ);矷欽3:怰f屝奓鸔Z)攻鈯L褳M 帰怮趢{掩Z`磾P验E~敼'z?)s簪亰(((%EPK僇zR斃N(P)(AJ}=i){(齣E済歓 !謱q颣镚q@=閽v橗1@撓璛厜胪W=xpz#AE擱3E&i3HZ3I歀驦Q欱i3屢sE&h)<襌f岏@镚zL襊ㄏzm鎬4f拰鈥Py<覂趢E%(憬-%-)qFhQGSR;裀P~4QE緄s隌 J;褚徶怰簌莦J9.8ǎ=(隌衵QI_`t已迠`J嶛試厐&旾%[嵆VW慣blu玵)$R +;Sル欽Z)~擰@zJ\bJ)h鳡BQ@bf庺b){奐S@ 迬鬛@z((Q@儦(/jJ(( C)M!椆あ(イ燼E))}QE%-QI@い&4祠淨w鉀覘4wネ74範B蠴&i3@莊4q趯簪歽4緮f4Pㄍ74犘矺覔>魒鈥v +1Eb帞Q迉 +(鞥-'z(螈屟@Ph(v +JSE +(爑燼8E +J(隌.sE敶啂P?*ZJ(-%(鞟燩 哎イ葼戨@聨詃c&E-, 苃.饺⒘qh撎O +,舚轧穑蜲Z,$うy韶焰冊鉂焋z F3嗛E榎Ri3Hz褮泴ZJL褮@;<褮m詸8と鞩Lc尺𯷲vO訰I3@ + 敊绲&!佗4珞砃桃奵$)嬛)坁(鳎-0iOJLzEP>詆R笸@眯Pz~4倴iGJ:聫C@).O酖锧謥讱=)M +):u=墵嘁J(((E0 +( +嶊N*7燚G%)隝@BEZF猚痋责]S/j姄長)袱PR衖; S@ E(沥4v燩0(Q迠(iFh鞞抨)>絟k@u +(@)(奜镵@聯)MQIK@z(镮@參(RR袬%)掩魒)创优拹齣縅} 齣3HO鉆4g欯?4zfy&8QM螶(AJ3M鈥)sL呻趯矹M2屝驚π4()1迵隖h4QEQ3@Q@(牃3@z)(幋櫌亱&h顰4欦磾櫌倆RF{褳i3FhGZZnh瘢4梗9は(&h=hsFi3I(zTr萐w)熵Rj$湠Υ刵g9r9褛$灒隥R摓丨綒0霈sH撄ㄞ哌D蹖襣Q湂Jj) 杀s魻s迱 覑E;!]侀苅(#X.斊 熺4QGz(1KE(甫i{{掩拃詴唩熷E呆85b.臠礦6 +i$ロM @4擯 QA鞥6杸 +ロGj(襌訾顯-'AEwワA!ZJ(?J8顴% +Z(─!!G41郎獟萠漅嵣r)=i 窿镫Pri1[狧琳} h=溃3U瑙焘O祽7蠶鰡CE 闔涰 螸Pgoo省チ簦"鰭$3縝?* 蘻姉"?kZP@鞧* +r?蛗煕簸29#Ivゃ艄#豱r;s4亪?x襰孯4逛畔|: +6F}j汴i陗QX苑Czw>奾4g娎評衕燾矱6俬禧袽蟌:S戽妌h"悋 +)櫏;)ひ}i鄐N桃巋@H >歺4纕sFi(0?6幵闘襢Z:襢摽;<衖 磃 .hr(︾謳3M.h&&i 煲f"屢s迻洑3顯 +{Q歀驟/sIHM! i賉扮帧'#逌Ni+#挘攃裤@胪(崲攢) ㏕悱%P瀞熉帵愐潗A腠M>灁溞撻K+(莦m/9@o苾KHz驚 c'蠷'提僵%8Q搥O&瀮撢报烷-糊 #4櫘cx<籀摎(*Bq梗9稱簺(=(鞖3荏Fi圫驻ね1亵=榇f4g4櫍謤*E9╯R)捆"t〦D*U鞩GAGj`/覔杸4R袬〨CJ=i=魚c縵?ㄧ(`Q@锧{R酩C8颎Z悱 隟I@ I(E8ㄝ甍臚d鎭g*"侃(iFE%(憮蕲Fj歶霁Q4並B籁纯ZSH:F1Gz;PE縅'鉑IFx燽襌衕碦Q@ I謻拋<袺A鞞臓QK巋)(磾SY偐'牎*錇U扖!$F7潗;ⅩTtR銑閷lrJ\3趻3奛3TH橗h;堑#s 狛T&{褤霘"敒8も悓 +=鞪y>倵孭y里FOZJ\孭>礌g$(&敀S嘕N:戅·#訤溈v毭}(\~5實?4f摰&kA偻4苎vh螶ojMろI膳歀笈&M)wS聦钔.i紌Qvi礼Qu鏋z`H)恿鳓ㄍ%纕i3I3EZ)3I渨⑻g謳糗湫N9-Q歯}&嶸;幫2J\佫嶸+≠鎭镮竮觲. +\󠑽妡2?濋唤徲??g!s歉;QM|嵪N)踎⺻峰G硱饯{上斾})罗rp!r~旪攪#軓緃/丿?巛钦h鯮'诿 %Zm 奤绎淊X耦i 跜筊岏W啈}<囩J5?p?c 鲂頟鞥hQ譆=HZ^艊穪桬k?u宱O隣_\ㄇ殻緌O夭^"&55蜰m;/y苶8xjN8莦螿:榄x奿灂9剀#焙鐘谄蓽8てEt唣徛牫] 些o.S慐呂巊m銑杩,67珜笕3Jmrh皊U旂?b亚&瘙}廏'>ts碪伐("驢;9$酯贕q@e裈屇鋧)遦言醡槒\R皊y鵟Q代婅Z鸌碯'鞅)FDU`瞗C詯?囊hjG=盀磍? 甕!t踮簸:鬧F,c糟(Wf挑pq隱咣栵.茂錛荜V2 j闊接廰M"\櫹89囫妡c +*{蒯哝[怳簭NW=M譓哭隡鞱糹嚟s嫐CJi )Q酡丩(E碦Q@銻衖zT┮'痁*a摇Z擴!隟G~擲(ネ 4QET鞬趭N聽b袬hN鬚 ?锠0イウ9镚%)酡岏@ KIE杹@鎬Jd4jB3@姃)& 镇 )乢T礼HW.)碢)荱G&璄4 ,疛p镸^斻T迠(襌欽)hわ@叄鵔趲 奐/z()(i;袺@ 覗幋u颣E%-Q鯛aEzRP覿倢撆+0_s镼秊y[+钒微塣Gg漪)'薤6韲秕 "簋x峰]*9e;钐靮t獯F憍鍛哓窡笙酾fO2頵0 嶢ち璦釥掮昣难`鍲M!社瓉燸g潫L忧囶丑ltb鞦kw霊蒬籁熂塃呂!硇SpkJL=盙#=蕘鞥儩亇k y躰楐評絖蘏皊墙H;譎t[鳙鶌q襱輧野s 滄煙悹g9畤Bu更跅旌7y丼碐7K]嘍颻萄稤涝砑巓厎+ 4}S4綐*鲑沃荶镋類棘9髹N依 唣K啬K碧獪*_,鐚㑳 [OQ乴@tS砫 h飸G眻颈.堢DlF0s)~!戥鵚F5薝閖G錓煴{y9锍蔊躢鳶治b哧翤慀徎n?:=黻偸釓魁驩'$习鳫d焧'$v?逃鰌mP]傧<焾d輵獲膑?軐·=|q胆R]铻al}{涌/ S侇EYmv祠(? +o鲥徼|愉廰{J凜A磺(鉔磺E+kW燇誈)?蜻r前s灶=t EH4 钑X陾d珥 鳶Nz?鏕,{=N逑鳪A椕硊ij爋顖弶?:g.I擇j-^}虯嶙&q系?啁x瑂s992>4觪1觑忳; 见沖饛 5/?汔⺷唀愼f#際]侯j4寇殠g缱u刳x?镏r{熎洖q逓乮w:飙4g爿*橼Wy阔灑愁td褩sV垹逍汴k煝媷+顃琛A鵼霢ン碼*&龟(腹|螆] 繬=拸烽$筡\|* o燪M:蛨-?A\鱶C宻H9nt?鄱莪坌籮1\1覗澝礅`>璔爿q醅>犵R根F89莏x*y9 +掣蚐.8'隨z晿t性X猡9573熉MEWAQEQEQE]抉动譅&雀+*賹GM殖%M_O鼷指鋠50S唢n*凒袳'建5!'JQE% +(⺄R5S)h=z? +zu S/紹*!ィ'酅V)b(燛>淳j1P0>(P0磾E镵訯@儹驦a +J^詝(HわJz襴鎼h颎{;P>碿)唇ㄢ傽QQ梢5u56聺M齣E8 +璝媭(@Y^旉D)h4P!1E槛丗i(h燪@聤(4磫((5拃>鬛(犙P'茪Wd積q鷗3邘*郿馩迫銛?J>敶U&;-P ( +GJ((((((,4蔸翩8=*蠖O5潔!a鵟戼 X庎SpE瀹佺璫挝嶩>L; 辿妰薖1績Q8;R鎍艃rq歩湠2~灥喾S襞5B侼NzR鎒r;:(2z8U飪鞥豗q巌练6镻帲甇COFQ⑧J螭3m壬鈵:3!>縅.D'讠6H 鐨p雩膛蕠飈=*D鸟Qnz礳痦ZA7⿻F挵擰ElsQ@Q@Q@(4((枓(イ锧 J3苨M +)qE%-P (ぅユ亼K腘z褚珰(5\ + +洕4:PrO5!S搸1T< +淘j甅;f:u 惙 (y,x/绛(设*( *s幋鉷估 ~Ⅱ2HN)辸#T x醽%m橥 >^繀E$8Dd妉W>j渴8哊湱iu釩轾Qp/>獞7 +{q爷*)躄A贩Z%qΚ岞Ж燎*9豼Q]' QKE%磾 +^詖Ρ罓9ja電Ry&涢X詝奒? 烸乂忏G\wn煃W窤摴r*腃%#?摭sXH鐴Y~1L鉄+|纙狒AK:襢嵚 E&hRn鞟#)(珩F酅)qI簚聙 籔\~Twウ铨h呲槆T:vǚ 訒 并畬*P卅凧(ミT貉奻7驟G秆@婟(イ(=(4P) +(敡牑iR齢Z^敎QLB烰@9ヅ +N茥qB;奪C謹欣=桧趲倧J嶰j7燚-IJ齣淳9V"5^珿@S)粽S +3G見3E锠(4b(鶴EQEQEQEF!y=4-喨=虭灴螌條殅t6藻;鑲奪J阅(q锧 E):RPEi@ E;>詷挅拃 +( +\QN.舦駨j2奬qI@聜p2h 劚悭Df5鼙蟧J<绁;0:衄衚燻>储,0M<涄濬1簸2箖?酜鋎湔巕/佒愂⺁lR@85=! +喋隢憙SR荓P"攑嫹!})}呗8$親嘈"-w=q蒥( 孯3Fp:歅}闠\.q5TcvLナ.褋K孮])X鋘霬Z>敶%%-PR袳Q(8リ3'z(c妏阨9寊鏃槧/ǎ>攃4锫擑h;RRづ;權P弞J\4Qs@ 旫餆Z#疪去4)8閄MjuSz 2M踦卞7牋妮?嶸i虒坎;,@倽%檋 r+H膟鶇2GZ9as枪B终燰薲烎 惸v9'?JQ#|宆=蔨K|鈿-, ?Z綪c? A滙O憢$U捿YB睬潱障,~q熵姜)龞2N@l駛霁綵恪ъ榹dVXcQ聤揾锱JTz +^i!{dD镐Q飨z 獙,蓵K牏棩帟槬怱夢FphTR瀭5|蘱幋橦cp0i鏁簹: 鍝棺eb[燍G腈銽4毕耵黫/咛釻sZ欖\J7-嘷qP 8┋G跬U踄擧_覎缵F9/Q齢}ㄟ9*3踱廋@o4呄覚袣3锧迃h軁i剼C蔂84基湓g) K戅9=*P(R攣)儳驙gP凓zHs虲磭趢)MJ ht樸迠Z9Pih鎭迬{b丯づ%.)h=- =i訮u.)h槬4(隖(@aI煡.y奮潻h蟡1tノE'謤痁C鞪%驤i=h4f攖逌=楮衳15F9颫橍u+9#jJ霢覕錊i2帓F臆纾奫a觼黖謸&d奫S媲骺J7疾f玌錴┈u=h鞨JZ)储悶ys摎JPO酖隌qA鰻怭h並@顯攦酢E2奧鈳越 +瘠阋幵攕GjA@P苕J?QIE0 +(E摁P)h )h*7*9)踱恠J荸%! +iV挃c駹淯樈*絏姌梺NΝ:jqL挆隝邭@(R袳QQE敶擯奷彺`殨焗虲捛q+HF煳sI庣:+環q7p% +ZO鏚L琅6椃J1@孮))q奛R褜sFh.M-啋澠1I@ +z +LR銑(qL=jC託8&撥&#嵈A9&Gj1镾鸌w"騑8D <h4r.料.鋌$陷鉁cC邾;>D蝾7薗衠K祡){酰瘢;h)O=@や褍G*v(俐J~倫 +1鶴蕛瀅#%(髋)4r13 R馣趽隢m夁)G-)縅qづ 鎻j1@歶'4b)GJ(1閝E4sJyイ"z_-樷枈((9Q@ 迻('牋(彞PEPh(Q@ KEwLP袳QEQE~4敶P巋(((;SI困S$郟29l靓骻泖N)s\骻M5d(錇燬m副敒茰5 +3/J沋m懨佨娌殖E梶褞礵[N鐟T,G趏t-擑WZgt1V枢徆啛pO醺S犁歷As iρJ4y\轴靓嘌`箚t賃rJ+3>譕v貋隙+寲M踩緧齣42鐨1岏IZユe4R鶄/X 緃鎻4U/7奜4鳍繼驠)聁Y辤 h0酾壡璬 盢笪:補隡笄璮y瀠4歈6k/昔$拣h~g見ユ烝Etv=)3鞬P0(鎺鬚苃苺 +ZO鏓-%((燗KIK@)hう -P:RR(@%2N ㄞ 謷暕%攗4*蘁蚗嚑唇)氓5:S閫RR岩QE福倴 + 锠(悳 +*wv񬮮晲襅8┼cp1Jk*柔敭颎S灂D儹/锧袱< +閕1-'A@4個咏琚 +O茤LqKEQEMQ@M-濋hづ-溡b孯栈5D1橦Q(H盨ペ咻?昣椖杊-阩/鳬‰鯴濒 K盭F洽歘*O橒恶}1L>* dA蟣t=脰}唝Rp淫>[~T嚺o屈冣箋" 杨>Y祗g齕~T醝9㑳馮(粀U尒萸广*>b?蛏囜O}陯Oy磣鴊(h迵63*} =區僮_笕f&ǒ但媡\\屈Z爘Kx?澹~t.旹兄]讀馢4閄Wd孡泷ㄛ]箕は籗鰬波t?伧>倧靕烝\僮oZ邼h 兮+撤A撾R炅ㄔf把n;幄洼柟毛J擅>}2j詶 憭G;蹱甚[@=匩嫔裠dQ4 2徠)孺G?'曲訜!'莒?瞁#册>?诋0咚衞f#餃Q恝W焥楚投洦:_癥篈畇I搑<廀$鉠 酆猓 雹路鰨i`O鼄i~挺(薦尾嵞p嵞寠绀粬I *轸>鏺溟c搒HF8鸉 +鈤(',: 溏肢.凝Y;`贕燤.y'甬#{炂攜絭(鳋C顅j襑︼繯鲰$ 熉笩逓球"OFロ藐辡nu-(,}馡エ'萢頺壝wN历Q砑冴辡wェM纮c涵 詠\~炌珑 +9懗诘岡導MA2妔)魜O缫槷%驕 ~4yg許爱哘N貆({sJ煤EU烯⒘r:)2}jR灁X.堮JAi<ㄅ8G庉h癨剬QS㖞h実謰辱﹟瑸郤  怮VD)麾灦n#$Q`筃娋殀瑇L}j_扉堜;,忍瀭4θ$R畼狘爝21膳8F品啓鑈妛鰘}枬呂`'蚒8畩}=,薨n肖供挷.飒)=9歁⒐$;c按*幘%ln荗枴0:&襆=┨Q2党榗辽咄d氃'扢If飬]O;,k仧S]=9瑹缅iJ鐑+璾p^;o*~旔礏##iΡ猡 5髑J峡婀 倍頟:f簕H +娴V鶱:j裗椀43Hc)@ 隝:ㄍ7<褮}纝)s@&h顯'妕g殞樱<瑠)碦あ兦j*Q襽茒ZA((QEQER鸔1@Q(4t5)抌熎*9@詿視榇;譑寶@iE-X姭幍f.1L )覠<覲qN(犚PE-%QE枎訮弤磩覒迬f彞4孨0縵歐vvZ懟6="*U伝馣遽将8gS檻KRを黔ic>dDrh臡癛銣瀐肮園ⅵ+灑慣倄鵾QaQSm茿捉!徸 慶4c狿sAA8⒘蘀EL覌 槉幗*`爐埒補裇`9( ,.b,g&3R:11vX9垁'覓η9酯⒘藽兦ON䲡5vX9坴溿9^9QE儤铬镾u鈰1伾&晎觻) ,ダ鍈牥e搒8t俩笄SJ衆矋"巁4.齖;:詒時 mF%ハ郑#?|t螶癤烎EU卹癪y/鰖g餁洘Z?r6鱼>s毎 +X迉})5q躴2=>斮 I芴~抙腚E孻3溿隒Z纙:y蟐iG4腄-iE酄6鄪`:8銓a@/樃隤m94沊T驇%cu觱6/錗贏T佂;X.8y`鏱鹮HYI麐鵖1A!艁鲜=;繼;b婔&ZTP0鶷ms渷J2*暠苡痦*=x─憦Z|!9$#;K囿芋璾^=覓呜琂TEY驗堈S3+4m5dZ又苬钑Fz鰵6烰烬漲茩1雭@hgm?J]丹4*Ar>哊辤v娮](wcR畻|FZ]⒎譓圀凜鳨B9蜖"z+潞af澬~T锍? +WA#歑9I鐫t濺淫k镋衧曦藹8T僋攷H扶/.验E泄檪4毃2譗妷璦PO阢8郣n]媿*o韣*kON餐繗晒渜Dk(;=腑hB圥潞镑oSh痶;> )>Sr瑔巩盟)5$}氧:#诏贋t葈 1锤沉"磋鈥2帞綕朑蔚ㄅ鎓9邑魆I龡'B舛pj0:鈵s32N2?L覽M洤;K狸(fs儆姥 荅漷去郟>c濢琬Y襺抧 t|{Pq@s溠硵l3]'髓)x螦E脺 っ(0H:艷醈>蠶祡c01I?鱉u8鷷1GE衧葋扛h0>狳騝籁騍覌犳9)扛*<狳蠵`C豎t>s欜[驙B?!疀菴趽焐镋泄巋@冫猿Gj杈谈閅a-$lc黨9嶰P攤B烏8面H\溷孴F<伵r完w訋匼灩鳗农$qS%┫犝F1譄弩讑漨\7蠋啇x=iJ躑坎穉N#zC(鵥偅8㑳{靘鑘6ob)`軂窜zqW蜎s恞Q媩~Wo鵘$zQ鋵 +@V/*袉擟@蕚!K鋬诋y>敘9 +豏臬~Q'暈[h簸夙V供苑馺P2亴I拉QbV桑靔(3诘蜌鋊铒昆Y?J瀑莦<睝5, ┧+邐1|聪-+:L溉勔3魪夷迺$p7j閾D}:弒氃傾廯;楎'萻袽dn鄠k$#扙C6 +嶾 +.5│)7) 荥b籭t雔佹._z逡 宏*湢l*竱Fu>u栔☉ɡW` 炉5p┿敡J铔}>考Z[7q榕/!像cQS鵁皎蛙镜纤6v鸍QZ~:7j贾#>4胹1 +埑琈Tc%2漍5d塀岰蝭4Z維"M:Q鎨TtUr佚缵搚酽袳恠1蹓颒I=M%%;!]嫐3IE14Q@啅聙愌酰?E拋 F}( :R鎿&彮/zN齢摻i^i{RP%s!4g峵:VB瘰-嫥#W8稔MJ)膝:躵O醃P庿3( 踮邥N栻7DcZ血T婶(蔏id, 捡XwjpG团vs╭韁濔+jグ0u!<+G2]Os: F}?R汕+nd~餾鳷u+【歟鞶伢R.鑾睙l症垛X摎v恡y(X設ナx#鳝硸$嗂>荚'9 +iR&E礸kVF跲w2韽J闊#<獗X[軍糟页祽䦶砊屓4敶攩QEQEQEj`隣OZ`翕G旚镼 hヅ閔燽QKILR4(@v +(爑幝庺 +z)M繬 +SH)建觯bJd炘耖Q梢郗%+N斈(苅孕0z莹G絏嫢WZ{唟:冬窤唾犗8獳"%囸t窃觀h'>灻瓞庖]1U鵦r;cIk箊}P伈 陋嫨簬zn9"B憦攄鷼~ _*阘肟铂A册囃.>旛廼蓶B蕞i)颍7VoùRQ膝;"y潸婫磗F>唨鎍A訮閙O,願鍵鵴]i=*搿81] 馧 扰 +8湃{RZ8-Rv銑s佐3( IGZ@-Q@訰兮挀裢蕘婨~4~J^@ih檗-摰hx\洯.)v鶸林﹋6?Z芫ed瑀狜#HH1:跬@CqXIjw凌嫛椇諞p珿鳹z毠hpy踉椂綰攚)纁娤5﹕p,灵Y羛( 嵽萘.俲tU*8ヂ聬\琟@3熤撎s苆蒃諥8!茜4凸0郣銣 +v鎿随瑋\訂29⒚! +1肉 灅ZV 悁; +x 5(老J24葋鳨(l旾Hン4Ly/錗0;盧n螸 +B{@ 骵=9堑l嚤鈼x^h咔HG㈡`x$S 峤i'ScwpF 4裶8io微iL勽鈰 +鋶u;瞚你珞5i3兩2躻n圭&簫*o2>[8鳟99銿鏅w盚fF'櫓6撩b溩済5漼p喂晭岣乆饞5脽蚀 渲Z渏+佈囚)頲W;T握鶶񢝗□QRWA鎱RQa婨'4fwイ鳡枓 參僂0 +(も +SAわ@黔-%烰(&)* 鈷(Ph +Nii(锧4jO蕣F拎&?t|:谇9╛崔臗s攸腣]氟象隯Eq3訣佧运酲hjh!儗拿夤岲b該識刳r+曉O頫v?4 娴V械v?估蝑现附W#=s]访y堢2g=G徐榱>歌*E鐠i睍懽歱7pz妯CX摲忥z設 憔jY=臘鋛憦q@垳u铒X'鵷V坫zz奛t啉3<zVv?礪 *+屬H蘝黏=%!Q@Q@Q@ +:永N霺遥'5"廕峺j愻ㄇ郀 盓QH殜)*-)h狛擰襽'Q鳳荃ロI謨蠵)MAE:Q苎鶴行謱R袻掩屢(=*7/J嶉乚e=篠})\qJ(f[橬灵迒慝4丸N驷?漢M枣<鐬zR橹亱(89郔'濵4N郗9'覠岟+|港歾酤敬挓謸茰銕疵驕u儏锧揌Fiv2)@顮袳 qQ穁挌@胍cV爴i=*鳗蓖/蚖w躽(@q奌C\>誋宆蜴瓰刡狵乸炵败围聉0熫渠棹U%E0F胜畠枓屝ERQE擱c迻 +))iR + 襾E PzP膝byq螭棩 隕腰琚弞\`qI(b绫kK迴髱脯峸<忶醐幍摦屬炦溲懈頰跓熩"璧條?y岥证=3\l翥眝>齤U莦>*d鶷擧q磳`W-﹣1Rs止}H~碜9943斦~i衏秖]酌As儝鐭Nk 朠H饣 M誃 p)螇A闒@頸漩$`靓/蛯ㄢ燆?) 鏛0P:亷薜 6s蜚卦 广# +墢鲏肾78 t呪湢痆l[戇冣硩>!巜梐俲幁蛷勋JqVv*Fa褮 %!Q@Q@(燩帞煲R揙^i儱={涱殙~)郥c啝  +(鈯@t)h枎()1(隝@ +(櫏b;秧Lǎ醒鳳zPEb佉蝷1KI@ EP見 TrT濌9(获7╅Nj|\(>潲P8A少[Be|戲Ο藓Z* >锟2[@N1袵衄噁欱+4馆耷tえ扑q~id掮螳憓*f*葬m結eGJ挊>"z创R848鞞靓(4sK((-!m)斏FQ締烮'(~ 8嫅垛P?櫒j砒澎紂擖蚒s亰苲3緸姵蠈誂讑\w瑣頬DA〣醹╆熁酾獉) 啘8缵(x鏁F焮犉:夿?*枦y轼P{:R%F*dMj论g\ +=)膓*隱鄑↙|裶鬲痁`30寶."!恑Td湆褟渷R*髴@ tSz +楡qH,T1郤H臵h5妟("0x鞷GZLsFz鄒ダ梨澐=恰燿b<帞隯q踖z~擨o磘 wtn醧*4!oub!窔畝屾瑺%g殊,j 礝璗8性羜*Q貞W蔁挛矩搈?师J痚蜏_願+を掎EPE敶Q@z);袬參4 (4fJ?LR駧福稷亯(顴-'鉋处恥ネ%敶擰8u4煃%!J(黨襮Y贺As忬蚷椭懵O8頯Z隯,鋍瑡C1鑛嶨嫅琊㏕T152灷T擩g5蚸@'泽I 囿\鰻箇哉!=蘃伱龊譭)?z箻瓑\m8膝u~B-@+膝&剭^O=F;宣佁湻猃)1-茿隞Tㄈ8'迋咹膽撊ㄈI'灻4﨎実瘿篦;G$岥5冣湸螶迀嗼乎舋l掋!7遄豓^?鈄躻e|絀討擲X趷墈廋R芶w狋=)) (( +磾馌 +/jz1O^h绉55HzTc椡K(??R雳漢莏(4(T潻@鞦(溡襷掩詛掩夽黔-PgQ見Z;QES$镺4:K9'娪贩.9蝢>*+ 3蹚隤咻3%{pMf3;J<摊<骊b膾儱% \ +Z觕巖rz*蘛醌1鐾偸s逎巌;@)镮镵I@ 醒GZ1@ +(*)zq镸?ZQ謵覫Ji(Ei鑝墻O筅?昣.躾昺C0膢疣襞8rz妌y趛5 謹烰A滣=9?- 襾巶0s2}{衧镮見-'=閔蝬({QI鳴H棅((1E 9詞4% +)h鎬 +镋q翰砭恵峠 之椿o橑?齴薾滚琷顆褄 6瓩1鞺攞5壭j儕|j[dX繎恍T謕钋R\@H轼覼n4JqU,x 檄4ElU9'ㄞ N%攞薹a躇A靕芃嵰#;8.6┾a拳{洘悓9$鎬駨Z埿(4 +鉸殩 +`蟴22:P3f`3W痛{OL謊簇*阆呂锩4V%S臦x鷣俩鐥q雭酹艍肉+:盹H*I5(痀$姢'U攷ho[Nz.=j(fP:溣'}嚆4 群S粊药4|只C粧*瑠K它*蘶礻1轻Q璽u竓攽@専:/CY颟A饣I瓧8蒵V燭鲫i帥貇蚰鞤g撨姤袱畮揘$侑矮uGI$轳s蠻觋<ЦsE}hsIGSK蟡@h簦>磃'酖酖酔~T佳'鉋-&yPR衖1^潻(~4QG驙?9I借>裟 肷"侊G J(わM嵭 X矓zVGR礂熱4品9玂蹩卥E 諱氟靦舓帕電G婹鹴〢=$胍%.r c{g灅讴俾$'"癧厣鍦 t嗾2&峝O粨薹!媎[Io篇蹹~諔褔~擻,4)#欱d~舾羚w伞皔=瞚垗姜<上证q鶇FN:瓻F?3扻5硒潀胒嚰5泄顜++P圤琲P|軞C2糭嘯s唴y甼P3v霎矍HⅥ諥澟 +_癞+P嵌jnU琡薮Q趭@!隝Jz襊NP:RP(ア +^4斁個湸捂灤阋{zS尥IE.hME*);規磭)酩奪N魌隚ZZ)JZ 嚗-潻h +1Gz(鬚Le掼键菧zSIJA闊錍vF敃鎽j砼姜羔廚8霃鑛!;毠3蹀茜詓U盛 K沚d豼儴硵Y嫢Vf:hEぇ斦)瞄LQJzR@'z(?J)絟(iOJF镸缃7帞夾HwLo袅8⿰砨腲艓+j_昽仢"?系;m1q磢)胱q遺^槪=E&1跀)7骚c"(((淧E濟~4絟鞥R酡拹泞愌@參1~Ph鞪>磢i 瘼岥P(イ狋4穗-轌c9系nx塹r剋胫+|蓨痞鐄顟╂掉 霝k#Mh閽砀V姹:S;祶M=狪-鈲7/铰楩y扟脠墀cHbK/a<歛-燉O焣M27d8鶳囗娉疕2d:出Y黬l糋驙dqS-瑼鰣笰麛3Ny鏍,鎭"买{諛a驅彞T蔰c螗蘺玤M摦qU宕x苧 F +黼膪UW,撺 $;')喉瑟9l⺄磆捡哮S<藜Un菤6鏓溔OP1LqN軭 盨$剄凑u|鬇*物摪'趤拤软R壪4伹酛)8蔂 +w漌 绁:/蘪!OV +fHl襣讖皈t+6澷鷘穾 ]k,崲y)熧匐;阖E缕噩mM妀趝瓾5訚(彺I廈s~,尔硵;6Xㄝ蹔W娋8搗璶犵鳅氫锟闶q韀 燀刼弦帮阄_ 9狩h魻tRh +Q襽)h(レ(鞧j;殤i旛锧 跇>鮅Q徑@QN-(ぅ鞵0锧8ウ攂枈JZ(顴-QEQEQE鯛(;袳"."辖;惍剛i=Q'i&.儘戛<謪魚e渶 2? +蚐吃f糓盦串8R襸艺渹玅誕Vb鞰iM>槤槬4;蠫RzQ邐- u=ii1顯 jJSMi駣氒吂劄浛隆,|K斴这螛rc歾妫寬妠"廄+<伹迉だ銡:4/~詣s鞩瀥4釓 (犵凕k渵棍畻^U廇5躺鲝璭Ws秵粮OZ氊昿zs耀S褗売痹踋堆円董飂d(>跏YJ旼\譳圓`*YD $稂#長+6:b凳 )て?籈狼1K辁T2ZH鼼J/%< 招~4\}捶'8虀Ыo}缎薚際做燇(tчV⒎1p*-?鐮箓O戈h<;wㄚ蔠颶苮GWZ夛? +莔+<;螄h}W?5)i-H聤(甂莏 ァ泯a㑳謿寮t3ak]4ǘ霅鯋z*逶瀕踢A鶸YT?矚巓扳荪1)氓 隢((8ろJ:PNJm9(C尧5'饸5 &鈯3Et阙円円佉f杻謧y +^訮Et(奐Z((Q@sES L棔4笤})徱N鸥{t茹情Y⿲蹅剰执,[嘷|廧痺K 舋$演Ys覴"鞥-jpXQ炴U姵j矓鷅vвPzQE 隝N>倲籀!醇銡OzA謤iЛ)84覯:-;跟奾要Rd畽役溋鮌JON* m6忓V傶注yp趆鋟4sJ緃 +ZA襞-!镚 b斠} -烰Z(澓RA(昆%(R袳茙h8翩)Q簦QG酜@聤1E +\襮J(腀霽鋷璼rwwqm埶"錇+}V$G渰2籫e)F1諟炘┥璅挟胉 >嘁bw酴鋺弐淩 獾a之c@彮R}20分67_笈*9誘h动pz冗滷uI忨风T图#4); +\綞竽秛摈巤觀騁Q髶U縭(*罠烰Vk 塌欰q&q阁P鬄T严&佨潷p~瘵#綍G徠猔恪  +.W嘽随珅倨油( 9h隘rc!X覮瓋倊'8├苃!柒NE8HO95V6焇础N锖訶N銉r>垂#&谬御S2懧66様恘 )59m膁燋jAatzF膡w4{愵lR=*烙n埝Y5J=鸯?:|瑹i3!=7烻ZI∥O剃*U袥?<茙F虧:B踦[Lg8D愡髡 +"u婁>O>磏bN茏V歎!+dXT +,呿懫晇霱'+昘vc銯冞笀鄜T霮琿駃鱊2"|zhE⒐習諁A=+∞爍鶶湃U 碿镋烡/m}(A捇F? +鰘L瓝骨-姥弞(燗(づ-% R襌0ぅア拃鬛鵔屝GJ8P )镮Fh欦q9JO錔:P!sI@!<倚h蟡J14~4漣zt-0&6?)┆)9S戁諓脾q觵&笡o揝;郭锄氻<"哥归峪Qv1懒⿺wǎ82衄櫊Ρ5em>?x潜!程?疮{鉤濁摑邽蛆讜2u[礢瀞^a&葆隿)癋啸# +(1銇6/5訛曃x裺豀?憽9藴SQ7硰H骚顾鏚 2{艪#抇籒慓闏 +(デ敚&)OOj1際?J(霶IK@=zS)锧馮劲z%碦ワ奬Q粒蓼`zqGjZN 已簪 +( 鎶(EP(^聮椏濊Q酽迠(L摜>汖(;v踦紷瑗=<襢*;$&箅M 鎎'!>鬴妚aE襊!hb +(奮詳QE%-PHii奪JZ(わ@錏h黏犙@~敎R衵:1-(嗓c趭>槧幵t94漢8づ4!)瘜sN=;S[◆1溂#nɡ巜磬c+$ ]夻鼬譯o*5蒘=:/Fju閁泮c瘵灾,衠瑣T甼/U溷苿6y1泱疨餝n痦勘#鵚氹k漟畿侟胍<A"ci#?6D)i-H聤(5哮晓@嶠醍偘|a ?謤<騈垶性瞘烴 }郁#f攗9鷼QH`z:乙濊"屶u燫灁 +ZZ(殡储j!鳘^偄<^}ǎ");鈯*F磾t;ER) +(4盖=;QHwi>){P) 傽 孮FsE0 +嶢R +c簸垃殉``袘Y9?闛漁勲?y昻l甶淭穇耱囼∣璟芈泊兀礪嚗Vj蘁椀:殱=┰(=(?(=h⺄94c謥K烰A顰蝘{RPM4酾m(НLz:优 p5鬰䦷W薮詆黭#Ene_CLWME1q攆恡<歎長蜰 :搹j1(礉{PzsI4燽旣b挅{鈼熉(鈯(4磾干Q抓QI鵓隐t冘Q鳵⺶QK鵓郗:u 3? +3K@匋(i徠((鎶(鎾4倵黏)v4Q@ 赺聵姥E3GZ(>源擱袶颏\襊(4繱Fi>擯袳 R礃鸓KI鳴@-&ih(墙-橑犙E袳;袳 O聳奀HAJ)((i(赔撻EぅB襋E茥瘼擈齢SI焻(犙簦馉乙R)4泗i穰根O覠Mn櫐10郦┊收亶=@:呢撟忞]}潳鋤%O堲﹟袔j(翯舂垃Yń/U镒钪焭显唜蟡馘$孰R9Px黭衸傩@=J箫s:鼉{瘗尝0魘觍ut磾# +(衄O4襁冶糝淮 撹埂佭妺<5,澃*#躿Sb9阨GJ齝}M-!Q@iqE啑PK迴攖譃崔噧NZq镼MQ )y:sFsGaKR0嘌EtR}h}矱%-QK孕QE +_JJ)QE(隌 G(鶵&)Z^ *9:T啠搸煃Wa蚷[↘u&0R:毞{ XB鱯乊O[D蠲甔共1f,z摎N碢;V葚嶂U荶Q@婮8V滾舸%益怭KI歕I恏&悡帞%!4@8溂sBGE8歈?露A膈=(乿G卪婔)慌]ei辩(_馣滝?昚攰9)聛xg匦zP8槿箝Gq@ Ev(4工- 楅G謷 G酖R^ 荫I馌鳏Q憡:养(顰燩G﹊3H楅E繬舾G見JZ:QE僵ZZJ(i)h@@ E%-奪A@兊鎼 K趻杸z:艳侊@)ii())i(G酖酔QEQE0hI迉 乙~4 +Q(bf帞Q@倞Z(衕滿ド1F1@儱t狑燼ERR煡%0 +\襋@ I酰駹))- 襾溄U螸憦趾3麆鶊8甋SP5% `q熤韩 |埱^:-O堲袐?&/肢閵敖k&j:#逑礮:巚LKq濵鈕 辊A齥给x链塹倥p m8位? 熡x;*ZJZ +(衄(m雙&G值螶恬'B搅穷y渿#=权Z抇1遥LG6明瘼朡変AR0擯w碤@wh)逬1E釆m=h荼QK貖孁 %(─吹# +)(Q@Q@(@碤奰鈦K簸燘褜纯J磠8ZC謴z燗妽鶷ゞD^趽*1rvD禟?├愕W粆鬄x^醌瓺V^y舋[戂]駻@Z1迠朽z炸籙a姵"隰ウ疦搓c +QH&s!隝LB騣?/鉌h郠I淨@'4碢J +Q@存踻T卼烰骒踡鬐屎5婚|'泩Jzg9鄐醐 tg覍髪Z'N 烎 Z)zZQà躌h黫)i~4 +(Fx镋(系磗A訾燽簦9B(磛@jZO(イ隚ウ1唇4攧-%PE-(/J%QE-巌(枓枠磨ぅ(ア枈(vぅ蜯敶Q@Q@媒=-! E穑"QQE擈ア悇ィSらK酡亯P!iJZJ /_ZZ%)b(8 +(9 (褗L袺G酅匋hh歽澢aM=)岀5l岪v赛M`溘G烰娴睦轻]洘睬烰瀚讎礨Z8izV, U/硡廊姝殠U3瀭e敜Q1J(爑謯S謷N攖9zRR夽;礒黸5E黒馝-觙佊T宆鬛EhQEh隕S(縕礉8碢E巶 gu4雝,|秩?危D3>|∵=膯8㥮緕VS朂詗PΒ逛V綏sl咡uP歏)^+hr冤+(簸鳇i{gR2&璅j玅PぇS渵蠢3鞩謯J((镋E#懤4.E&Gí&v┚s綳zU9y 摁煺$RR襺((鶴簪q迾 Hzu44犁醑忦虚LZ3遭5荦,~漮桡6壨sU茱命&藹駳煹C鵭c\飐 跊'宾#謤<撆欮稚闓_魏O嗧䦶v緦+燅y-侪蠂 挖彮64w敶濋j@(C药赉:U衢U锲t麩呷敺 佦酲{晕:幚'13琬>妃詘┊出蓗0(1奪1F!隚jZN4爍(^扎BiW欽p籘g颰儱E黅%Q@=Q奀.h鶴(@ +(R4攂 趭^詡 +)h奓垣v阙ド-!JS8G晘雳窥巜U_jDg煚"$囩'~y5(竀<+阕S)?tc苎y=愒)CV=娔/RV芘粸*N栽rt獙,eZ粸媌歡A覠'Q-(隦~熹P姷@*半Vb步)佴)ロL穁^碦Q@ P瞗ァq@}7lR汸{U臦層*叀C欤*教G疶铤q襽3S#脂颱比┯瑿躧曄始g位 ~mⅣ3鵚'茳癭笰鼌vP剽舤,疩姃48職荸OOZC滓 +zP:z銥磛鈦婩3篆G4(辄MㄩE(鎺})i敶Q@%--&Ph鞦h4f徫)zQ4Q@'J\RRsG鉋'隠楍ね^碦R4R`渳hMiE&iEP袸 ?(愕_溠E0奪Lb悈奰8襢)h覬(4P 顴PE%(璌E&R?((愧丗((謦4礄擱)3@酡枠倴亯莏? +ZNs迠3E&}(锠BQ籁 )>唺1顯4}(2(4Pi9碢!)iH鈷亝Rg4S <覽4訜癍<御V&2C5贰)噫龟顆狺~!驇*Z<+潩(JJZJC<E M00x醐焽耨u>Q3剖E伾R漘鴗唛 鱋隩囖枔-HQ@j 釠L垸T姊廦寇?蕗<澠 痯蛆晏凎彑SV柢 槜扵bι缃H蒲N=h(0(鯛u敶OēZj灳'jg馪á槔モ丂奮隚j;掩槃b惱u迯jZ`!礃%禙粵舁轗#岝鄽 +郹穠臘ナuPN铞E>g9s鶵J熹爑 髿扜0>瘿: +.g掏玊T$$瞹M<(;褗蒯鎙3G椟﹒襾 徥=j9(礉MER身Q銑B镹魳4紛p1*膖啦Zj熚奰:擲GJp(磾〡'Ju5:R鐪UZy霁dF祚锧{冤帧姗棴C躧潌瀹揊m赲踣祥\靯證<B惍;91KD 0Fi脩跉礌岕畵凬翎G庺S覛4刽=刘绲:'襾嬽烰Z袳J(隕-QH9顴/'J^1H i繚i;倚屟酯樻;驟!-%(燗E斃(ィ隌 KE擱袶(Ef丗(4QA(8イ銺焃>碦焭N蠢(各 +_损(4Q@襢枓 馝椀J:Rw}h`Q酰(}(8@&=﹉聮枈LPsKI襾-櫊b襌襊KI孯P!hぅ鶳4溞q迊囈 燽 鳴敓JNs@扭郣4Pf問覔)i僃(鶶嚡駥泫智嚳闾VN綗)};~礸C綎+rˊ綦\醴; 郤:+筙支Y軒玕:甖=+7Moo 1i1O臬$ゾ#=1\佩胈k$惰璫=繊TcvL錯s燅陛y 燁泗5k徙鞩G猇g$2\E搾?鉝|j哗聛僁^=8R覧:牋J 2PLN +@颴Z遘傄]2宼S奿o鯍鷩o鎗怊─8'?齴垶溣b1u~邺郥+涙绨y躡挙跰+n);S埮!锧EQ奡@)xぇ!O*隦帨S;袳敐 +CHb郠荍;Q篆 R源繬舸Q@ KPQ\蔯?;p*Z叀2窐xPB從8皣h迆儚之蝎s宷殯P塦4|郁畕9粸フ('q'瀩h顴/z耷'wp:Z82D-(>斏;T斏RN刺i9}颌肑銂Rz擣I4擒lz暍缅d"珿P殮>詣X)A颪衢N)脺袹8爑R瀲=i蕄)wS鞟苅鈐曠站3T疧溡P鳂*~礚鎁ド俩`1濭址#䦟眠 +纾蚽-乃飸鶺E┫塣椴#禧夽=槔c絭h櫷+s夿GAH((淬覒} +.}h媵4:q跅R襢(颎覑-P(}(`琚夽-鳏デzZ酖( Jh繨Z1G銡(?ZJ^斂%hぅ 4碤@ 迻僵? Q@4:N) Z)(襌4倫呄斂'R牙 @鳎瘼>攓I迻 +)?JZ(*>创'謯3)(儕\袬聯奮詳ZL袬襋謼1墛8(@w>茨b?*拪)(隚OJ3@聳拸蕵 +qIG?擱袬Q瀐斻Hx4##]瀓-+?缃j蒱梟3U3[K"S蜴闺=N?耯漓1脂^ЫV 寝琋&鲆g5跳sX蛁'/<烲馰糰u鰉(拉嚇磴凯:!忣珞璶r8韞穅?=8⺷褁 癕; n sZo從譽酜q$骞3z:9妢G6孲#D寤棅kc隡)萅z缂I&跡L疂誒Uk 侄#橵D=鸋$裢U膒,<觱'?7隵,,荎X1駃n:A 瑥环rpj/礮坼籉哳銑A@襞IW]6 +嶍 +u{^蛑+玾奾+:r>阖皈M縕寠性!騨#觳>8鯛懘碤@;P)F))V椐颯┙訯Et佤=螙惸4R袬們覐燼廕( +)輩7圚1狝kkWs渞遉蠘<災~5┄`輞縅N茢m萎鍤d憰~A燻b牼澁f掭Ga跉騀J8f#妗9'&硞}N珼爼栣蠶E玈((p"瀍)`Ic躬2軭g厥豲海璛节~呜&M齵`Z骏诂*砈pcbU昁AnS意3j秖矗$黠婖劮8XP8轮.痝o媱屏祖放0錖4嶶 0A舂='趻洳靝C鎗5 痬澒鍙蟥GN衆宷J 4銻姏Xd*5}%岤PJ3HI +h鼼ZL欬'滄┺煐昢H$竤扯9;SBf:熮U韬t珫$!重>5Ppm25睜11蹚覟寎\U-&鸑懁笉3艭g+j.1腇4E_N磢h缫巤9イ鈼碤鯛4磾Rh?%/錕I孨 +(燗搳)i2hs(鳍@PKE% 奐1@ E挊碦b杸 +:袳QK趷 KIGj`Ph + 鬜REP糵悀4Q趯鶵SR鎾屢磄? +@w隟IA&sJ()( ア +J(燗歓O聦鸓j(ESJ(鎬 +;sE0? +S簸顯w衕犳樎拪Z%-))搭斢MQ@犛.:骉甇晉棠x玧v蕠?畔J黲p;濠惯C%K樝阣忷誆2G鹊*Dì噤仠VGA锁穢 e9X壆 瞼?J愦B讆 骩摷濑?齤霢随鸿.pb絚喸W椭甡凓汈婬6馞3昣矢H囿糮蓭n?瓀‵霿4&vC酔諔"] Q闙F 頵?飙F馝2鈃挢γ +[HX0载泵V凓T馹C>V7峎竼;愤.Tv4盇 垪鱪碭 ^a'?瞥tu膣3鱑Sh毷黏瀖鰻滗楇C:歓JZ亝Q@ HyR篿併陧粫考睑X膔+{\R^FF袣柏R*{4烎介(Dhロ@ 铆7彐)嶗>榽 E-殍拏)i圝\QG4G鉑趯P(;Yb堆$e皅M}蚦縬$ g=﹗糃鱼次;sV惎c& )z憺佼橏>⒐IH钎uQ愌F}EKCB襍蓖'sHa趻旚隝@5鹃荶w釆N豹g7瞳vv巜duL鴼蛶7z慕i07~璋5保K穂#‵镯VJ;拶鱟m膢v?0瓉夜璪烊0nq5見媒7!_Q;p( 巨NN?:祙滞kg鯱tp拷躶耕rx險豦?1<}M7U瞂 突薘骣 +笥肱h榉縜栣妴骳廴轸譲z姁Δ9f潪:姈PFp)厐闑FePq窻bx3=纖 @⺄洩睖c'(謘侄<2すT?晄N+(駽寙 {S@u.腢)鬜З.隫`篚珪Z鵺Z坑4愎2Z3 |#隢阨▇Q?熓摱==(伸?ZQ顂@ +i)i(}i介搦鰻岟t膪R艳(鈯9系 8(歓O聦J@-(檄%-&~礉:覟攩(顴4@#4v酰 Z)8LQKGZJ>纯wア怱i9イ4R袬áh顴鎬襼攚iHa歈G燘w隕 J(燩 襍sE%襊:矣1K()E +>攚 +zQ4t颋(ぅ4斃Z1A %/fR氧Q@ K溡t儕1A奛許丒 +(镕h-Rrh躌~T灤q趶Q?J? +>4>碤@4櫏で.O酙('覑4闖:`蹑#(仄:U呹縕2姑`焜娅硅a"l珢繫W漳裐#d轋+!8葑诟j孆牰挝轟頟Mf7l甜9贖香]*鏿鳜o 缅閺!#~u敖x隴凑6贀@d馝飒屽@(檄uI9kw緮Z勿5兆G3学穑1b熂,?怋q)篪峗ⅱ遑!o邩Л=F>ΝL痈X 莔# '\鱾I3]鋍9'坻閉U蜯醇戲灂藊(靮燒 +暿H臌乙RQE啌鳰-'饸騇Lnk矩練褂蠾K宵4z9nF}篟S垽绲礁て(hQ謵}iG4u54阛鼕)(狖R鎬3龆瞉n)垮N1rvD蔎*靷娦Lん"徛;g橤+o请031镕+Uta瀌8晏i齘D齤={V匾8'姁i躲W諢q}n=2z鐵鱥率躦鱧鵖槥/8絈L,$斋c鯰鸦渷 +橼 鲩 2铔A覠颴秒琅eR +圃ы 复h 9#5積骙艓燽5?[$ 岠WI浃 燁嚷承剽6翼蛌G職~xk咜I4嚶V=1V惌u缏6翘邜爔J躸箶⺄X4奐5 ,#伃,d!唢R4爫鰼q灁r呂fH諸( >穢踟Am鉯 苤稂#}p勗褁z:O0lpE4訛4-*oz中韁靭&X輓n]憙菍婧!C氥( 馧悱!噀踍<椰h=FsX砻0* 躾詧 ^儣->礱鈪 dv%{觬ji醲Wv  +烺砶X鉁朐庿2/e9△'蜘飢#瘠y 1c憎︻郥 gm管z敉B畐d溞丸i欐"攽倅 UF妲?C際\4勩紸$槫鈒缔|:2岂基恳价~[婔_唡闂圑Jc鑦茅イM- ⒐P邪=俩⿵毿FN8=闋篝4泱 +鬰变O鈈p)盖8靓H1阧-&1@イ9鞞 EPG鉋QE>敶s帨R`聙案(も枈(RR訰v(9; IK愚愋!h燪歚b忬謥%-? +J(袳qE((s +(銻鎼镠E/銡?N攗犙@椀鳍 +_鏓S +J)Z1I迼8攆R(民てih燗(聤O- +(犘I迼%1QHA趯Ph0JB枔云ぅ)(('謯(E}i 鈷楖袬%PI酯4斝 I豏酩)坈曢执Kt脎=j激gw$v舠U茴渺慎l崫 +2k萿[债玟⿶>雷汸噏'Ge*辊1磮的Qu%凯f巻鞄鱉圓'ㄍY鎉懫凐T ~裖薱溯躻呄麼9齅u等xl隳w谜_\>&z斁QEfh敶Ps‘kl7-宔忬5彝䥺<2悶爝4QH(れii?勑搄J|攵斫渠6'/鈹Q酩瘢縕J^濗@徘4敼4各︴8丧蔂}(0~読]趾簗讝c?蛸k臺釭鳦覞M昀 +( +CKHh;P蚺7|岇悱_里L;L皲r:T阅b枈C@#鈻枈Jk#8鏈i 泼(3x$擄Fw&z烏裍鴳e壁%'懣g衄{ 6wW )F剱=k歒搰遍Up=t<>浵:iF悈鉛h鶗硯礲i$居霁K鰣錦鋸‰[^:昮痄2/ ,埫=蟹枃6x鐨ooZ搊Q4匛&F{酽灴SR蜝懤留各魻h9sVAMX蹵j6轈犇瓰_覘O祂譫崟H頜!斿|v$譳'.吀溵踐屻i璻韇扫Km#F纄{,"/#&'岚茮w}+捲4+.9顮蜚v +>`y<貄9,>层籀3磾磤CH遲覛C行9'蓪}頖裏匹籡2 c'8'WxIń:酾茞6~7JQM奟E锧Z;3幋 03𯭑墙-笥9uf +QIK趢 R}M跨4(爂灁Q囱(R幋渮Q@ +? +;袹(#4槧袶(燘杨h硪層}( +怃wぅsERア奰 袳 +J_聮Ph(燫鴼J {袵規hh燪LbR齣(燘袶)s@聤)-)镮揑! 趯QE%.h隝\鸔顯階8%/際hi94雌%? +Z)(IKE1 GN敼4)(z袸((@QE挆胫挊命鎺:(磾Д'J*=M酽鎶\拪Jb)r8=*莘8qT%cb Wb!Yd毬┷噝g弌躘X+佹0媳琺60?) /汍[簶g +3齥_耊H趧{鴆苆!#j稱l戾宄*1证擿岝▏Z<4k芷恐腋 闩硄鳍g^}O堳)(Z(⒊5 +((蘈1+#毛婥>ck萹j损椪橚 z(Q@ I跂慅騧H僿z狉$o8k?悗瀋3\贍r躠苅)菐))O茤(阨滕萤Z_茒(鎱煴>魁bq[z黿6?惍>.+酕伵%/zC舦xQE8i1G9弞Q钱)3鞬溞東薳琊疇t四3{e]G5詗*栳イガ悽(4磫#?胱P?h寧6J殬怮EQE!镸s刢)茩6<椣M0<"鰉艷f鐠'#:鬫鴷藷咭&裣馢茺d覢时涉倣湠+ㄔ/喅峄K`襜e:槩2糔%籲Z氒OR壱I_1M>媽蛀[?<蔶&提: + +畝獐^DD溢臟躧墇T比Q) 焔4r;Rh輑埚塿篢"f轠q9蝖69鉁 '滓標3jWWWW蕣r v巘霝糑+儙 7~+鉴|樽+咄=84畏覞M臾R 'jZJ迷A宻憗鳸l熉甹媼卋x+寋>潔wR~<赎觔俼)瞄奱>瘁 @鎼Jzs屝H燗亷糝匂絟<馡瀥40 E繀'見\褮1GZ@恈疜灤QHA鳴倾E 音SH>攡t~b徠(謻 +J)i擱襊G^擰迉 +Z(EP襲磘燽Q趭(~Rd毅襽 溠EQ廕/=槩枓 袴q覗(雌QE%裹) ! )(ラ@)*J\淧荍 4煃奯聯4R溠LaEF(犘 犘>耿 +?J)b;鎿乙P:(う04QA鎿瘼傽QLAE%)E0 +(ら趢(&t*兡w帅g 砵弞抜6&x醍7朳{9 蠊蟋*潣c'9$鍓9W脽. -z衄風V 泺J誗醙rM?尴瑿]闰H磦艔 :炫qzh垅$}‘複+喎膠攡--%-dlQE2C堌廕涎,鄉Z裺'徠猧J虭`賐r>@.袳(JF镴iJ^芘q<刞;葉1瓻 z塪譵浭泇碡9脒>暲7酽6FzRR欽'ZZ巌GZJQ謤歾御Ψ\P碢U隱z @$|!X儴鶹鎶?鈂玸 +槊顁饩_ぅぎ梦 +9簪倄鎭侖珩イ)y奮q'魌$; 濡z鶞~U覹1危g哏祥]8閍閕;抑'@QERR襊lqq龄7>*Z佋洦廯*z((CM恊c组Hx阺K4碦~4 +-QE礄鳍 I翩3@簦燼I3幋攻鎼劌'zZ:籁钎'^魴4{u馉イ鞦h楏屟苲b杸\袶iIE0慖E-敼奓袬QH橹廄i2(長IE)JZ? +J3@ E%3GJQI@呪挅徥枓夽滚ぃ駹鶵QH)垂の( +(7p踱u%&耜?:C"兩 挋鰟搳,苎殌轄颩鸼{⺄Xe溠U>鼐斢{;w4Uxq捆?Z,485渘?艎,52=i (闑e鮟I箍:,4虉;妅M阫,Xg苡 駚髯鬆v5M訿u3韎YOy薊ㄟP0 灤]暢\^{b愝o攘閄/簉}恭ヌ荧悌﹕.4kZ牰崘2茨d~颶喁ey颹鋗蝢擓咒|#蝌A訴,馿D摸Z蔃+歳r;i罖dP7揮勽潓.赭5嗧RK宸旳h午晇AU"(UzV敥+ +!$T_J歂淭5襯靱_繧鍡鞥p67ㄇ螽鄎\#遥稹聳怰諪))i(攺j、氟#!戤軂5}s:謋妦Y嚕敷Χ璄RQE攪-!锧U鴺莜?⻊k檦狄jm{15so芻歰zSIHAEP@隕*簥a霘xΨZ\)(#5唬 殂++{F霄x g纩偤0麥丿1酎(飱\襲蟖A撻A悭'謻晄円=f吜モ$防詍=*镋sVJ訛琦镚Z岘郃KIKX泤Q@%-!锧6~_"-J_3NA濻乂4 佣19.z 窄黎3b9鼌qP<OsM78閮邹!\楫麭#鍏Bt漉6 U 帟嬉89xp减Px4hl阡`溒?锟7鹹?鐞?G隬觫{熌襺┙h黡枝翤儶/之#-A$r(術j|B糕 郩oH緆'悳"惇7戕键\6z夂澲撟烃攈閕i)jFQE# 學/'/噿xpX疇7耳;9>祊+姃3/鱥M蕫;娴鋷t巾灤滓8蹛菒>敌玾9^睋鲡z!悼竕汨#/*1HIA=q全霰3垀讕i~迍g(m6`續绂A5屖1禛?i] 嬚&濚歹?昋窼;銿 +x蚑:吋j 1躑)&CψCk韎﨓/赾鲦迸;w##4珁n脡}) 暃/P ;螌佂c} 阃\泳 枊牴M*z襶娙戚:Q*兠~绰瓶槫u蛔睠佈囩K氟5 pE&徇瀸:7燂V峱E鋟獠L崒n8杵峖(痊9糷螭⒘cW%fy|引QE偲32鈼鞷`饱+7鞷鷬_邓鞥偲濚3 /$螦廕,43Eg浨Po覌+;頀g)~佝倠(>鯚銮傫莏,4{QY岂(鹀鶴`4xkY遧J>筑擷,Zrw翣菔}酔偲J帖T劲彽K(癤狱i>禌雯GqG讠酡羉K4~5涼﹠i>'á羉O s2碔徑奜>L}題h癤这侴璬|宴IE偲瓵鑙r+#颮鶎G,h癤$JM迷V^飺摁仪=O鏓偲抉際d_Z {擓'裹璋X煮S歡寀a娛峗==i>鞒Yt謚^AcW韎隡7戹襄Yfx摈許M#瑡F冨5~貫mZ7躲㖞4咣忶h? +4S_砻麊愡z)琕誰赚拢:蜖1糐鋧嵱z{ +Cx輩s懑Z澷|Ck邾耦?e.荄o$#I雩舠M鈁u?t戨Q7奲膖饯{徹媳詝ハS!濩黊甉糝柯囼菻 sK谀}幊蛃麱惾谦右磋g皧I艹赶磛御vDo旑蟌焞痓+c苡K`騳?i-遮 6尤ǒ%!嶌)鸗/ 嫗X~&榞坲u乃{69s\轐=螬u梑;苹稴*訰jV睂y楦愪o?0誓蚰喳r挑頉\crk柂>5羪H\鲮V弒穙蹃懲@'宼O矢碓妲廴狸叟?蹵/鈟廍霎k&巬i{i奔$簄]跛?濡+'4櫓鰭頡幸mR峋魟&鄇烰:泽2筊鑋K肥9镣K-排舄9莈* ks4譗ci攇aa舝胯+F骃欢sX0骙愬 Z:U婳'樸&懢忙矕 ss惽*剤輩痚徳折踲3$m沂q忣ì詻淘鍥s倾Z嚳8瑌壘糝s凒覤7(C +( +i銻襳'誛&W=$8沼赀覃x{鶑s 謧災t湚wJC奃塊僆A隌(敘:S>歾b奯茒u}珄E鉕﨎発犙4趵囿 +槊溫瓚s6斷魻 +=馱#袁唼^p~曠[鞭湷0V=閕=.玉㏕乃蜉DO汞2.rjE緯z9險睃坸n挑諌瘜焎N>O,g癔4準r⺷ .1tK肒归焉酒鏚甛伳?憉袤汕┃韾经>鐮龎0lN?圵札珻豅>逻笥魻胤晀筐撥g"F+x瀪1# +=瑊嚢╲?`l)E夛& +塶筇茰|GpFL秧P{ 澃辩齛犡5梅.H檱鉔氪eZg蔺皺 齛沧 5Zs钫 者+1'緄{T?锿~"怌j93:减uRb@鳔动憖p:鈼禖粷徫1xi厨谉酮r1闙 隟"=]GKE逑酻沊仪Ef黭蠟駱<詍p腷й敯斯逕i>X &.6蹚胃O=嘚) 屋Ni{vW闸vrx; L誈4ゐ夜R鞦銮5>贓靦o>稢T焂澤茳{V6鉏殫Q舱(畣媕s7%虰oec藴麣╂er7L{滮i嗎浌:袹靨%鬀阨福]洨笭Qv4泹2) PM=[ 靤Q妘1暉;uW v帟焬=;珂櫣菭鞽^`匀鵈'譂虑Ⅷz[(瓡gPW諘简M2洒畓;譊 +弆覯. 噻歸#蜐辽鐼g紉P{氁妇筢騪j呍夊 `c欯 9︽僆RP耿屟 E'jJwa隚z1Et翣0) +\皺b<噥V/59n塇驊鷚5Fw趥 m:;h哝p袡檊$%裬←TpDB皤霔S麹N}.-螶粼囟夘戞a 腸揦w鲇X紣芖,G℃眔r岇: +像ha~8 8璵(%楤稡 +哅z茔遘5镹5遐碇-8z敓貋WGcO膱燁訤簀#]1焮偏73顢鋥悱pZ砽罕n囃4* 篸&鸽|G& 󓇾=}闆榔猓=9MA契`nJNM $層 ┯z⺶厑F|I霈m!库{~0舓2鮔z;+x桺刿敘)%-%-H聤(=)CJzQ@Y鴺^鱸诅祖j錥Y鴻_m殒矿50翣la镸斵攧/sG鉏@隌(w +i隟HZ(:矿氝規4鑶8鮓?]鈁ua蜭V鹊屟摎81]gg巌鏃鑘"枔.h-'捥gV#嗼 t滴Y)祇嶷茂碑學o堲鑭袳懜QERZC@1u栎緯7z岀螼M*Z劌QE9C邐}2C6n7笺㖞\󼏰a狓@7c)隲 -凝y憟蟸i瓌#n +1恨lrx▔6c+0(@蕒&釭5鵌S伥'i坋溶酂J栆硁2厱0qQK冢蟣渨2=櫱'瀓h鉢s5ENj;P霊騺歶(2廷蓸mlq]飥 稄椞lW潷Pk褆 F9!鈽-師覗挅 +(鬼s婧+忇譈k炛忷X1车4&s衆.5舟6l%%A+嚮萻帵糊*x跮厡 淯埡鄚纙b恉0\彮5"`3qrE4蟧蝒Oo殎 !"0I3括 +葄冭W掤#.16冏=jG箑儔恻Z鞩!T=蛂}╈k気,褳指鹆潏珂<鸖D1=q蛃棨 乽輘若5!肳4殄\On晟闲 塶T砸A切5憅恫韕EH揗avI茹貖箎y,壭鹄T礈5趻q2kGScm諯!4y衫鶶~:‵$侂M; 珢8#8︺視嶪>*9I o怤8\d獍*菁嗲灞: 劄A蜞c颟c繎`d柵穤帣Гs色L枀v2醅騭檇腅A阩畇R苿ロAぉ(uQ@))q(f蘟0s@3Gz(f屝:意4工.(4n4福i躨w6R4亷iwZ6<矦r;鸭烎 9燚赝q 焃w斈t4輱鑘轔z7歈zS 鈽[蕈珽9,鋐 歷atV躨閽q毝歵嶞(&D銈3E傱1盓j蒻j睆 萸R賂寰敩(丯閂 @r{TfH茾h<覔cT俥陷3岎 #蜇PS蔍Τ撧亷;襚Ss顴; ┐P鎸)(ri9づ;(功觻${pwS憞@jh 灁屴昚e#)L靡槈w硐5<覻薙i (((4倵4敼屟奮UB偾jL庈覈 pir爁35霆]L0p紾片鏹滏疎3'剔潊4I羮j裙蜾 '鶸9領萅桔垡崃狽耲麤{鍬?g毞釨睪m.3槺焢+2e鬄s[Z t '臝+E+鉬琭閐j浅寏u.zP閊Ef舘 <}?Z跖93辏鵙擭|V鑙5;t8臔kゅ1|Hv叟'#kdT↘m$w4t'?扔哑荻⺷薣s\1?}险 灓熌乙d鶹@u?櫎e2Y鞹糡l$d弞`4OS烲氉馉Ps:畗隿溍c1,颣I迻(() -!/讎麺/G4o嬲?S醍痏鉛矸5?S鯛 4訋i绁0 鎾旡8%跉軪;4餴碦qE :侈=4犇?萕8zZ梏狺d!]Xs,巌)G侩I]gR幋v:)qGA&MiG謱僈@X萣嘽WI薰?稜鰨 +關QE懓QERR魣受c镾S *痳 齮((CM>[m霂)茪(仉奰s;t司 "F>諆{3螒﹛+w录闂灳a㑳蟡忓J徿@職2嬗堙|V覽*欍1箂躾謺+fⅹ*菆S0熺CB9 杼W帊虯袭Ei蕤12A獬櫅1+宨彞"奟蛷覗1座裵剼晙S廕@B驤缰︺庻/抭G攝Pjc絲78缤a焃箦勸^夃p囉㖞7臾詝帠挅侾QE C\繄\嬼^轤缟疇)釬?)5Q%滃偬%獰蕸r@{詖B?*蒃挮R憙僂&G牓QH*響棸姣昛`|:hLJ浦"E旛瓲2 熏睌`45q'c `[輴虻P憾毼R帣╃蟋. +gi荙Z7w盺槠\(憅笻鑚,is"9凋8p乐揫=濲偫g" + 趿 紪3蕿苺*0煭7ハ$鷼*'z3僈)(閨観鈸'襾$灤敊@倱)隌34R18燪鳴;袴(燘QE L殷(&4&宑\70iv惹.鷌覍慹#覕NG僈磰擁 +_捶`?*⑧X7m颚逼?*"o=惹崂<}*,R咊⑧N穝{豕C怬z鏈adNn0猞吃甿b欵e誔溺5 稇vd佉灐S诊o4>?假v'扞R鸨嘍婈扽 +謇_$瞮怗_茊2茡&-櫹h6dd}iY吺y=ǐ⒄9;#迌C8媳⒘r . Xc84蓁=i 噄ヘi鍱)<蟡n覨 揑枲sHE + づ.94dA謤I1F(i礼M勼E)袶O闘襍籔蟩)I'%QEQE工4f幗9P搧蔂芆,P5$q藒T抃c錙攞S`甖p貇 by4漢竂Zr淪)A簹剀襵h巕姹廧匕;;綦祌?J覆e形垚蓮针皊i=鉥錨?'銦隵筪鄞隨L球袵┧婅J脢7萜*絫fO堿:i戼廚o2腧酴糄 覫钳5KCm趜绋8甹蹪勔7V@P吽m╅ +绛0"錘+g'攦3 鷙舡o 価愐e,イエQE擱覱Jy罪熸k糼:芥:9鲣$齅4&  +N苺魻t(磵KCP窺E諡囑=;嗀餿 +1诤=;嗀鯣虍9菉鳐b何N1);褱烎cjLR齲と鞞-霘Z汵泅8瀖诤:,?7齬j桦偗膠>QEdlQE敶`g- (('螸詴宵{邵?蕜;酼?賥刢嘼>府{QQ&#豓鲃疌c錦v陑{鱌* 頥躀筽銖~晈睦曇砷錈+;P@翑 頴执糘4涧?#焞P犁n捐MR璢rz瘞*$1覙c镽酊裃r娖#閃-G食郤>)6jA覍sLB氼|凶8砌舚*p}k佛x?豬擖m契-'-2B(=+擇1Q〨 鵿從譞zW#鈘#銖+穨MTD蘗矐蕞gk鋠5~狫9-兛 ;佣G=;F :吧懥 S蕀S渇橪AQL筁攗電WC贷!\N0銽忲9BI4鴘=!懧塙幹2蛑kY rH香]鏇糯}ゼ矣P嵢\J;醅┅GC5渆g辨谈蒦昬Ub23W5 )礤uPU嘦狉?鮙穐vаq]wg.'d_礯絫淔v肌淬9䥺瞸:u氋諫^䴙瓢 视i\醴;0颋m摓聮+滈 +(巏W毛岮吃)仞タ⊿AH閰- エ((C覑籁=)J? ke絆鐡婁擤[釶.嚳?璻2u>鎮i-%&H唽f旚イ┉譂逇阅ē詿簁ケ眬z 﨎梗職榄P滌萕V┣婅Lpi/JL齥ㄢsJ(苅;衽)犚 +_笾 驥I寃爙h謿鈐瀎 +绱翟c漷5罻=J +(⒉6 +( +(-PEPEPS%壡冏>⒐稐堟+蜷浊严颥yL77人*"B泒3戥 燌曔z?茸$fMV闑b<覛'溳Gx 菾楖}=+s$l依?蛲骏s标罄]&顡滓伏H野籊擮? z鐓逛UaV畓甹礸-蔄G<8ⅳb請X齤蘛O淨迵?-P/Q]莿@8鮨齥坁弟xMJ鑀 Kzhm鶵襷R$(C夜c鸘p鍢恒夜`jk冎1戻毃墭 缼EMMq5dZ9IO絟諻躳}險h陵qI嗎奓G镵I:{RH狼jn(4]梜烠螶 N;骔%镆:q蚙};!f*远纀;馳Z^<=柯 坻曌勼獆L鐋hZ邛趐2睪?鉢-叫;p合面h疤>? y琀89舝昭澊郔4 鏍=1V殷 ,0橄 +I蘬1閄硉Q4T扗T9#緄赯 淨GjJ(ZS讈@ 歗));!qF(2M隌4w8頊Pwの)xhRbu.E﹍zo4鼘驚`)4b$(Tx 7 +2疥/zhl牋$雳"&6羊z、$;34K餁4P駧qJe嫃斦jZ蝎|褨Z褔S矲腺x璦鄽r偑獗唛>.背癶汷F+9帼啺稂D砽颦bLs离Y6V7l衙;镻Mk,NQ詡0h竂&3nz郩s9輥* 鶶DM灁葅N鋻X詄伧4))D,i fI-H!oJw晭 ZLf=x!C0GZ敂厑 +彮.摁n4凱襢襮歀袬葼歰J(OZZm?孭奿隟)(sKJ%弗6 +^;Q]椽牃mX桙(8bB5_)oJ蝔芴ORi圢鈻摳)翠迮%簂 絋5=0豑 +)繮0枬稐m7sH8綩pj T鷄墑^韸L!a噽谍k蛹2wxz冂?鋀欽68=w鏭忈3幻慃1䲡-蝜O聧兣W?zz簯翿樟68$*:|謜HLR徕躵噷^%P FdU哮Id笐a峚@袞c扤zq閈躏s k爘>慜y餁k紓3躒H)埮壩1N任;档崧>&9?璪氊痣b窨赟C)5-%-AAEPQ趭;P歺搷^<~f~髛k柴8频r:⺷荓>c䓖蠸!4敠拏C迬擰H侊E#R嵹E;腤Omp渃zp+梟冴+┓]栋忲 +朊淴Р趤謹齣鳟RqM/J)郠跖-7Q;sI单嚓眊?S]`i j9~+|G〤郃EVF罞PE碦w((v撵y劳<訵C6矎颉蘹X蹶x伭-紧鏸h輥$ +4K痊=FYN6搶灱W樃$~fKs秊昶C暲+k]s$z`c <㑳蘉 +yd#弞璧k╪纠!+榓邙闅挋晀鰽鳘娆\彅S殐*$4%b H棚S攀_椰Dx 荍w"臾 +b>霄 禣c徫竨傣SR+鞗磾瓷 +(舢C呢^席5诪暻x煗Y;~靱<毃頚2á姴J&>課腕=8╣!"沨$*{奀/=僵h!|苕敒q蠢d嬈{/色dd`誝T莗i殷雒鑀J談4m閺隭簓墛㑳 闉*雵聐諂"瘖"髚?0 僳扥瓃姗洠^F;腛閊J梅]jt醊審浴姕儕甤覢G!(洒ㄦ 炂R骝5夳氃組舶鼾*/C=&R:姺 烏ae|Q娦柸錙9 S!憅迼 +慖簦=2::規4餴A'J)r zM%;o`Q歊)膭!PN釉RdS@鎺鼕2)礃 Q溾椀? K佦4f%丽>440寀$~t'戼9鳏蔂 蘫H#糡C4丂刕)羉榧Uj(o0 凐U2炉镐u獠猷癩柬'4;jz]弟遦戙foc蹥淉%飺=嵓#熐氭-曁 9>斲垾G!詢臾p眀骣?簨h莦乶,肢8镮代R竂澁槣 +o T{覞6逌R滜n)ヘ&検jU垰弎>'攝鏃薖:驚巌y嫂c!?]驶眱霍0iqR;.养 鈱R袬福K孮慇 E.h蔂}M%f拪\(攗ぅ甑*矊淯 +%虥c;:杤J4隟H)OJ@,#"q耕P2)dc風狌$c'5f誶苄镴"=公g +w佂U壒"惔 耳選ゞ莄U砦蹣入窹剹+嬎憻& 燎>Q䲡琪凗&廠]鐐巘|J迼膕b>o帟}隂5 }頔u#劎f拚蚗蘊沊υ焻q俄尻旯鉺 +卤諊:n汩歮匦I'&:臯+邐橶帧C單3S憭1I爑娑<紦<潎瘳\骩>a錾~t橦镋- エ(()Д:愻::爸.9*醿\l管禄O0:誊c錚?#\\縸)!眙τ┙鑔QH庺Q@ +(jho錊 碢Vs從:阞廻躝+桛:晷m穭閉xs;牙?+ㄢ)1J})_Z\{醇鸔/昨覟欥2茖I誨螦槷喒闹f礤沲裌_墳QY殔RP袸A锧 EG絴罌嗩赶8((杸 +巙嬯 迆6:8甚6o轄'i' {U馴:34X隥 l' T牡(2沔宻舤r閞辁E澨7茑x香Zz勣YV鏟SK蔈輳眨4B* &0$6qw_tZ瓓穜8U|{f S兑伬1啲D8择}(Q覞 R薦邊鋉t3\"譿醽 >縯3M_覗撘枡EP暻x湻龊轝擎k5区V9鷼K2h睤q8釫#迸]鱃苷I觕穕h!G=﹋7/#F> %籒 +)弱燘s鞵渭d +渳)7)(簩u+j1道8蟌膷禲膒3糣庶 溩e= +朕.J…n蠛&’"橨J蕒?S^$戀錃抣詎W褺?S漷i厇碪づ;Q\轆 :儦鑗?h祩锆'躓?淰緰⺪$'枌鋑覄&姃/$ +r \榺脔择T膷|薼紲~梣飯慤,$賠鸠龙謱 0騀y镮殥t!荍姢=(鈸.)1MネQ4f +J\鸔L鏃4dQ慇h隟3)4槪 P珰LR侊@Q匦悘zP=1茆颩黫q頷1觱S1砸c苄BR鵪"鎿"?嫅Gq4贱隱4}蹪癩53隟竛昗庍H娕?##9プ奘y勵哑_*理X>沼I詜鵣I晽i 佧U鴶kk聭掃{'8尒蛺澛眃W蟓偀戺兦要 霘i倾E屡深醗86戅 +彞&釆@8输4孽!娔'"擇︻4f奛)94b夿h4槩 袳QEQEQEQEQE-)%, 桗U8籔琦Q;|冝樺墹イ燾4 +(婳$l4贑@ M躊0Z+虭:.h?洃4萯爖Q倆S譩z詑q2鰠JT齅E缿q隑,邿豉堫3]縼巘yW赂璌嬾#鶺e3粊oK9MP?jqP?5謳鼁I䓖W鏵)5躛扦1庻眠⿰鋫k荲┮(縅uEnw[姈刮盩'蠺「 D4zHX餽1Z纨寇5姖+k每l5,h阨i)j + +(魻魻簦y?37齭O鋕垪齛m馕u櫩霘#\T苋遉e2歯i腵覯"RP:袳:気)詬覙嗰E-唘g捀螿与]Z徿e使CAU孋~8鸿5c浀- cR?笙ó蒳:kR,vzf誸羯k隥幙綺癞 +g㎏郋+)麬ぁ纡#蔹'6捊.Y枯壪舁暴礗X 廨8t[嗿 帧o[玟禃兢瘼殣舢Q糮1艧/Z殀`鬠蟣1膎]-瞛鰲N笔埱飃?卙V隵y╇尺]ZN"XIQ滘jw#扠撋((癨 H隟戨\$M<O矈栛V航撋秹Ku繮(竀 帬S霒掣裕絹e峛嵻# 焜榍ZMXb灂z藫蜂<鷔芝5"襜:刢鶵喴t沟&軤悙Y篺涵?F从呶迄駜#v瘴h殞9広K坵|?囖簃H湉潊dB 闊_U=@+烋巭礞忎kzg Tj埋><憽 淒跔臱攕权盧茍馣OR躣T0)凾0-'籀!薦飭x衛窿Z鄧Z锛8釫e\酋狤?勗颣I迻侭(5苮燓C)X滕譯\g壪麼W款酋獛淙挞懞~"柆懭2pFj+勦zy''奍匷喩彬謥;葬y;XCZj貺 㑳7(@緄)SH 圊燖x<襋O 餳6a差6纐`笷=閅穳騿:襌X!趿uQ剽-M{讝k駱踣M淁专苝晊瘖g/s&*鈌H閵慓槷3紛甶r鵚?吰覷XsI挙奰j\a榍隩き 浳峞萍*琖 扅5俬C诫%嘕掸蓡x壚<僆 溧0鞹kZe 什榤$zRcCh顴!階4c94( +( +( +( +\RQ@4见:倚sFM)镸桑&拪\褤@隟@ 歓A奪(P0鏃&奐z4舁閔<襋E'4R袬匉RS谎@埔幋碻g(=(顰锧 u=h(((((((GZp`)4+桗Pむq戟6\姳拚O$扥zQE(鈨謸-8tσ灁 +4襍殣P!駥*= 2軮5kn 0(&煂歲 慙軺%攣邾i乊鰼 嚽JZ詥/S鉥錧wl瓽`ErZJ匃0┊'閪喍я唘\T鲘M働哭 篜植閈咊fg筕栖鲭一 甿%t+/=Z贫荲/i驱 s阔5Z蓙嚙95處啸 PG泔IL5丰楚溍龘Xc璵鴒?消啌:篫JZ虪()ZZC謤G廛nK忣'5臠?z遉<[燀笯#\\琪 + +桞隡イ鎮B % R袬丄袳(朐dzˊ1> @妙溦殯D甫Q O蠷5(苆'貲纤vF J>黇だ酏)鸙/da邱dv∝鱝啵颍b熱諎丌槓憘I翎"巰颅l_顝蕪-?*NナP杜o0蠷鶠誧bt~T喃ゆRL<J]佾X倢J泿臹綅玊Qp盨 巻搃#"愼⑨b浧@扇侄T陱扤WGj筛u蘨f♂>檄疼w逇;[諍 l諒误 V祰j阑虔/t郅蕲 鸍秡娺T7Gmつ鯢㑳1閁餂m嵙 澻柅2  C$G寽!?.}qLQ:驤X帰悄鸢X#x;C*頢鵷b銰j搞q?欍儍*mF耦霩峲 e 3殢#酎楦狻 а奀姇G躴RㄠPG旘8鏄E/'#只 燌愘g⺻w 楜s袿5=)i=)iQE%q'9zF?璿U苮頃 澌c?璗w%檇銚覗歄8iz諕9~娄a"g殭N &愽珫<蝚た隯焞錩讧ゝ塡PQx<鳔&1焃q!>m8酽宍鄎*F>魳ZtV厐#侚請G憺?聸K +` 郀夂(槑唲耴霞d1 筮纸.Qz~柳詂]#灟鹳劂 舁%釁Y谪霆螨觌G濩/錱?椴g櫘甇鮋85受沩r.*件u昽勮命C􋬉苮蠽nv?夼h绻4z-4)躒侄|7!#琎[^涝纇cGZ)i-@聤(ろKI趢8_.5倆顓O曷竰燉嵡z罴c!a\Wp'鳢鯛l獂ぅ'欽孽燩h鞞値唩E-!镴)7瘼枈C:篫JZ@磾P1h⺄Q@ Ev燗ES)QKL奐\PIK迊@ KヅE4BD 饆虾哋1Yに亴廕涨.qN耬 +T6鴵y胓虔I纩U_吕豪徛 t牘 镻_菎鐩*熞牼忷孢蕜K<靣?4猡w胛)罣OJR爗諄O聬尪B8鋪HS聆燛r9y雠&趩4Fы1槱Pp)2m寝4礏d暻U')凶yY!\#碡~aw筇R)靑 +ZAKLQE舢+臏雿螪_錧┊/膟踘b;#'cd溴}(墘\詭@c4炮qZ詐鉁 歰A兩⺶6G酘eYNfs颭缃,趋馅橸KsDY磡K分兄Lo睧oz州粺Zど`{殭H#'絎 d扝4,9罎徥qAOSU鑬印<<+Z/S +犟-[鸺餾\弿夸%l閴核^嶕隲圏LmO1?讨鮺枃侠Njc宲x 8S臞y8;瀳'41J珵;匀 R:3碿牗"m+典嬏]诫 .睘H昬沴d>耿挃P!iG%从謻汙-+RA隌崢'5:嘱姟葅馤Gi#dx/痁0j萎+鉙z醕焗g傶HX4l蝭鏄庼 萭$#鋷諔\_*'瀃=kf=ZVe>Z餛T`4XgFEy夏簛閻?uR雮宦O缩<衽镖礰F咏掏@抽瑛pEnx 浕瑃?槵;銤>膿蒺鼄辸鵈m堟6v1(8臫J>C副絋瑰3藓b8 鱗閈凳盎'#q鷼闧顭‘^靊靮?SQ[7命D7 礲鱭[舃哙Z琨纋爋P+'{驙Ru纏腴[^鏢_鱖盄舕鴞岻?輏阎鶵襴エQE敐﹊;P 峊g屄客珕\+获墱g䴓忔章畖v4 縥Jq颩燣J;QE +Z(P迶 +亶愧屟H矈( +ZA鞬1H~敠QKLZ;RR掩棭隝E/N艚 溲謤 f搹茥嚉殹杸/xdc腝{医W漻W?饜艔7_ Χ*B觘峞夈q昿T廲N#;纙y嶠4筐廼唧趴镢峧袾鄀=瞎繊4?席﨑o癍ZJ@e閏エ聚黫4嚣鬫峣袴々濤嚘蠝覎N蜷銚ZQ啎`,0i肕,砬_皤t範5*齻晓} 縞)馐詔秬1S倚cek>$"@垼T擯EPEP暷鴮尿L/崤v钎q>#林陚;墭$鱼 9銽tI拉Lz朜9丧/<焃>栉FHp<鳏YVc橺欈0奈Q覚X酵雇i诜>淰^j輨榝S闅"&_j)3IVH郞璉炳<歵D秾m腚业ヱV~詫+曬鼽u婂隹跄3[U鳱Z腇+V=)峨勏錠zq慭G"釉9M.1*3Y夊_q褏j6鶹^①el鋳,潽x椢8飳㑳Y蹛jX 鄪1遥‐溏ME@[痗N筡廧郴蘋 )覒蜱<鶳F)(啋渮Sh(((@(鈶N .1@!榕-碦鳎f拪((Z(斱vxu((澸汮(蒇f:屨#V顝頰\`*6攗=)ZZ( +P))2hX韽虴RJ~lzTtQEQEQEQEQEⅶ坅I酲EXQ罓N)蝦挠h敘(歮溲@噒牰T 96杹慬鰀Gl;鳜鍏j$驙 ded 諰r渦)1H#Ie! +鄐蕃C;#d`t'淭束4\ 7m"m*爗z)#洿9'尻kp&过x骓荭槈o1龡5筐w踥泐忔+纖簅嗞7P潩啼梗c綂轅檅X鰼,卻茏K彇够噹鐨覍沴绡琖<:dW/v犦)艸?3]N9甹覘h3Z狰L鑭E-D∈}kN俜[瀑*+?P_躈緥Vt敷45缽D笯漀:RV讎$款熷X蔊J仞鼽u蓍i)jFQE%ǎq2悳\皲寏m\-啁琥譽 E\G骿岙瀑_迾賂籀S殯HL):掩-Q@Q#嵬$儚sE&遺)氅hb亣J;阎丠u}hR齣J)礉á E1L镚oz(擱搓:襴酯iH`zUyMX5Zn唩9c䴔1鶺℃細述[ 蘸穈(#瀯逴^懱6\7!秝TW*S鈣G⺻阢柽鉛噬;*LW|O1l? 4燄戧g屈嶸kK\?$Z欍蛝{鵷翧⿷.闃鈼+軂~n陎勤z鵥伃阦⺗禟X.w&k婠谠煍k扣Z弡~狱)騾巫+鹀R韝q脲Rk;I鸻O馥`;JZЕH蜇A$;.Kc +( +( +(笩擙(鵚m\7韗P:8檹NU社佫歩rwg森L頌孒"}8跖$剸鋍逑🀘=奛飙/)咸宨;4COZ|,U'長4>敁 +喁4禸sS銕酹話\汶KnI笍?嘕崰S愨h筚卛曾Y髑>恳筼菳幼'5悠@?蟡<围k忶櫗挈'栥)鞷6W哃G徫斂\+堲I Q礈/'鉗3漉 Z^5J宸鞱g$T/嵈j|G璆N屷'夽J茉u!樰yjXOj姕寊 +C2髿啲 凯V#C謷渮ShQEQES"橬S儕(=h"籀莹S廕LPQE +\袸@(隖i({矣i氓QE碦P:奐({藥z 4t悐Zá彮-=;伐2&0;瀐r您袳QEQEQEQEQE$櫸褼i個!( +A謻 +Bii唨丧=)#(?絍疡联戸┝ZY〇B*789蜤U勍$泴w┮l娝G螶昫#+蚳溨仪ye牢z謋顂y苖4蟶譏喹j:_閈悌歷篛閉/戮硘v痏碌綄毢辫q-1sX7gt鋼子氝+ r概a +b绉z#酔*珙?沅y 咧Πn0.=铆oW0命E 即I$u|樯霚R威鱉e樽嬉"泈k壱|~4窳舃峬p堽t扣(鍛嵁滉I瓵u怘腳Z鑭'znup7? #斤KH)j@(J(_尶泮??沇y撵;f贿q齭瞳偦\=: } +2炵)濊%啅(爑燿'慏冧覡8鎵>AE&h[K)1K迱繰襌EP 簪((h`%/CE楍ぅ顯Д'aHPyw +m鳗2h擄馦甅<9髿檊憐6~礬p)荔N郳K澢驺镾肉(銾辅R壉巠44裥S盪p&JW勡莺R"奮潹 奖R.w5q苆屎g8麸p臂 産疷-+俣爐蜃熉(((+嗰频8 ++=+喿5藢(?72W庣妟菃lu^敔+(鵾猡任2*缺9蹼酾!磙懾08;迂3C奙魍7傣y"癳3L4)峈芚矒倷E[吡鋐睞#∨a楦⺷Jv島SO螫L伪7禢X⺶%勵 拷i 陥渳謚`~羹暿漟OO51虪庿5葂岱k閹 譝8p悘亸JF 躸\G燞襣Z歑z 屯1泭 @揣L嵐G穁┩G俩規簸鎶IeHㄤ\嘣2們覕酽鳡bQK鳵PEPEPEP儜M41葼袳PzPzShS趢奮)((ρ@見(1KIEQEQE兼4a妉-舂Go^W隌Q@Q@Q@Q@Q@(襍a灁:p管漩╀;P㑳Z +){RP乙Q@=*3謹襊0燪歈襽qE(铊1妏niA 暯狜[84!:觾耀戤+朶5V駚|廕~x蚖斿╜嶈H_熹t揲[c 崁m羟5B遗%俺w慒蜙舢偲働1納橷8Q嗧森`9昕u滶曌偷埱j┆沩俐<孴r(TFkeM)s#櫿n瑠爱蓭熾[噩[争=鎖狰G國藤c~胬傈Mt膃H處銥 p悿溆=)传螻)垥z譡鄜5甿+抆照/鲈{:9鷔H铬=2枦逎A!EPR敶气堵}姰簖{苹宂@}S螂\ 䙌i嶔*82瀒攧挅拋 謳鬜2e +IG8?N圆c碎@h)隚ZS規sG4鸳Q(;>奐({QEPq趭1@ + -&r(8燽4QE 要娃瑲7zQ|8敝朞組E&鈹})(篆[嫢T^祌*V幤恡聤(E +A鳗驜% A 芭 隯:D皞\la瑟@vzv焞h攡偔TP祢铀栖q廕杹Q@Q@Q@zW瓻縚2NUO閉絩3钵媑菪獔檯摴晣|g覛S潨g4雴Qu!O桓wQ瞜8/忁.F+B +嵒wA兣6C禂c丯DfY晀赣$*q伏伖b{親h#tㄘT*&R"0i>概=風颮1Fq冭鸣颖蝳i亾讵;奪,\ r珛駬o诇酨+捕薃lO9A\/姛~絪熵8(/|'妪) f洑C\Gxびh犘M=ih?JJv3H:忧NMGS)墅&昇>%R`暻z堄懓4k50姙U鵺v∣JmQ@Q@Q@Q@<纙)萷}q%=噏覚@Q@zP:倚zPOZp镸hOJh隞qZJZZ((RQ@ +:衵襌J( +(斿u* )s邾2v鶄巰TT瑀s芤PEP((((*x侻AV撳\PS煒(9ī\顁i(燪E-4蠳i((-)鈷 颖锧 )pM!垂鈿:倚鏈琲擯柳ㄘ湟K隡 漸愄V&饒=kwIynu焊K!c偝?钼暟BO~+Z麻$架歃F~F8偦 懥U嶗遍L擃驲?xq权燁5晉鸙関儝9={职瑳釚圭廧委耺C2邸鶺4xf鷼閺\W2麳阊峺绂狊I烰Q謽塖璾^ +鏪S詌?夜D9沥峧狡锳hJZh敉:侭(犙E8忯玸瑜:喁Ngc豔爔淆e穘懔? O!颭欱aH:R袬倲h奞趤貦9墙:Q(徶朹鮢皚(あ槑幅規iM'颟(3歋H;REPE閵(R襌)h=啋(細4C2>陚?J蠼E岁,{哈f籮|悖麵s)(⒐N愧( +)廿 \瀐`趓(9Wks謾R管=3@ +崥}E)帘@ +z岩屾愋鍟^繡皀蝫鼹U"0qRD8=&l49祅俇蜊r0'璘4擰EQEPzP:PEP嬻 Rb K詃PtR灤Q((燗1E w +Z(((cm(隟孮@xQ巋1@s@ +爳$j#崵oN*$湠擰E敐閔瘁見((((慎狥|)6贔lPzSh!鎶((P S坤濣zQ'Z9闙磃 3悐鰻CJH驑"弌|訪匸nU搸{R]畴LG▁2犹癥37醆屪sZ陊^W暠荖O鳺v ? 嫍`鸵=珍砪齭<冭X毦gr9#mN嚸谶趫稘祁=搿橞 d悃j蜊);袱N2G晍傑5扭N剩r儏醍歳r8玈Pz謁!?蔚k/Q瀄琊5u~h|h氏A\詿毪x譏鑛洆齦燂笙Lm- 莏ZIu,51\聉夂澓>:)(JJ(燝#0C?茸熯鰡疉窨鷭珇)?^i桍E.x糡嶏Q$)3K顴 +p莦m(爃@:_鮢,b/H +tRs镋1]-%/zZJ:{酡幵P謯()iQE%-敶QE敿袳 +(*颊`読灰専z涍4?56)蔟i嬛燂@N辊U$5v#L 灁P04槬枈(GQV沐猚颱群U ; e#薩錝 +"珵h寇r*7鸌;桗璺紗潉w訵漒5蒀鎈\8頩F5轝`刿c浇Z-'zZ@QE!鋀焝򐯖沭隵倆W瘽谳慎臬嗏fm?s#皑3祶;V2矯⿲s昆,O!莑僆侱嬿i匀鶶l啈臚陇4聾绰1R慙4彙p}i頌羝&54犳4\R/QR慟伖栗8#r;粵i鎢禪鍂px閇鱏叟k鰔曲 N晳╢稚0麅慖櫦磞: ~Ud3E}7=G汈踨N=J婕嫖疹/嫉\纸 G錤9(爚曆F&證k:鋸碶瘆嫃戎倻k6l霚u黭J 屖砛约K!h譎3鶺7/3砷缸瀦bR亗=榻)h*曇鳦#\=8䲡/银C﨏洱葼磟愱)詡杺B( 9_墙:飋诪_5鑯7弡\s蠓䝼k/裤嘤-鞀M杂*F阩3H悽挅(隕 c?煭:O鮢镺擙Y(鄗袾Q燪@(Z=w鰻螗鞩)QGj1Z(颒:QL枓Z)(8 +3I)v疰8獉U群 +hD訯E0S麊鶺ka艒?笸晀猳_耒齭_錊t&颪( y罹q璢热襄^刱系翇f#p9䲡p躄弆臾0`御閆1i徳 +}5鶳羘=G:SS顝錕瓮愑)Zi)啢4}iT2p勗*济 w鈪3GU'联嚝# +靯X4Kz+#瞩5d(啶诱=#A沬zS泚括嶮oJf}iv1@ 认啘hQ揘*zA歺!"aL㎡9鈦R矗4酡冎()sIE.ii碢é溢ZB8ハ櫊(P跲)譸╥窬訛c*WP~e镼溞iGZJ^鈥範zP9ZJZ(pi瘵l褚泭F瞌奰D銡m?長<@5bシE扥潅犽栚!此' +:{読2萚穙礁V>TG鱧咧┯嚟%鈵聤C覓zRf拪3EPEP帞J(aq"耣V聻爓ī(佒( +Zテ)TOS@ 楇AoJe?pるHzf幵#t +)E抸溾挃廽Jp)答phE)sH PE;\C;R[屲G楹炨UI蟡u[匵羈zS昂赚譗N溽c蠸琒韾[畍射6R P糄伍=Fy珇1P膾F}3[F7g<缢c[J砚gei {V孆趐謺8[oV@X.8阚礶7稾8?┉7w+-9/S氟殜Q鴮蜙畁O跻鰨t濤pk歝鸊瀦bR 奝{卼^鉡碟忛\牾夂/ +萵躦-:R覩ZuQ@ IK@[曝6郑折A5鐥躙5z嵏抖a;&简齳鄐AOdR~Za4%'zS覑!E8SE.(,GR?5G<詮 $<矱.h訯E# +Z_J)t颋i:u凯gア亐鈯(燘襋Gz`s趭(鈯)hあ杸(玀蕃読睋I丒 4à灁S覜M"r*銾M;U群P咞处:萤);溢Rw燗)JZ@ 鳘靅獦晇.誋 h`2_鮉舢嬗=ap*幞T蛰[谴_錊奪AKH(=+讇]n錋蜨$痌^}瓘鴿]z铨*岣櫄yqN>h鳝 B樼慜ㄜ徥5"臾奰)铆s砫'SIJNM%!鈽EILo鏎辅Xx渍鼸Xj﹒'敍荘x=勸U蚁y +蔄蟴榔zU蘩鐡哉^A璬頓U晧zT泂蟡塠袋ZLb奝b仠馤歗}sOQ +猹銣f淗QH[nsP;n?要k潿v队曜EV8嗋絪6栨y昈5硙ìx祱趨{纳喹F䁖踝舷adx;!礤珲?^>反專<m=8胝 +@3腃峬K9毳萾c俬櫚=(葑$糾!'慩鰻色]7@F?漦#蟋3岼鋷p漘勣嚹g葀赶醆蟅'該]褓笼=+ +=qJ8るK@A骳醍徛燆耳忛\靯鴆峛 z師#諫ju AEP(4P/鉧䥽m]䝼k/秋k褆k彵譌蠱y3恴鳎 鲭奿9瀦詔聤(燗J:鸕R岝鯛e堦F#H +TR括匝E-H臓Q:恐怰QH-廽(隟EQ@(EZJ(i P要驮摘-&'摰+cU獦鳡(.z虵[4) 4斞謤))钎4u妘c夿8アNPG&)~磜)1@9ア摫i;R(钎2炃孲 QE(隟欯)趢r{諈聙)#-栗4" SMh!Y>lSK4鮊鎷寏缅锲sQ暻&嵒:!╗颿盃B撹)s4淨砸z馬u韧G覞Y狸猾R昮i谬=済<5C阞koJ( 5/SIKR0{袬Q@ IEQ見\褮JZ3KIG謵镴:Rb僉4擰@!ロF)樹誌g瀫)鎿pθ~n斳驚覂虳翣 墟G痁僑'│窾p婚垷pま* 魠).馯肤マMYF苏鴺bBa.)牴└RJ望Hm#0埂3,銚扅牒"$蠣7篦赉クA@ +)i- +(舣< :刨a彍馸唞W瀔侗vIp軚Q4叡K謵5Q嚀欽\d 莦拠o紸渟弞蓶X逪^珫84剘4哯4&rFn4^@s姺虀v朆LV#J[jx侜譋q:H{楪䞍]4V5w泵H踴4誰u錗:Q魙) 4):Rg4(膋炰T} 栮淆辦答ls詫*忖蹛勦 v~9鸉葼鶺M蝄G耾j'R珕羟璚輺=3氷8Q 踒謀#衄0鉙冇$U鞞庋斨崌84哯K瑄9'跅uE﹫厄阨櫒C臃)cI*2耠韂穱3卼养嶾G耹#剋拖=j\誺<灴漸3埊> 潴隮哋-嘉锸GRz~厂8侺 婂;(- 92躃)觎O隥鳡r3Es3琎謹Rw霵总V締@詍消b祂h F転>qAKs貤牕S>侭(4唭Eax楚Ac鼚y髑泓胍黇37囼5婧烾荓C4 Tg┅熉F)J((魸借$U?cP迷T莨z)p=(X梃燪HaGQH枓)E%/Z` +(1i:(燗溠趭0謹Q)唺;衟i擰GZ;UI鶸3鳸K#4蛽Q痾{>雇8)6 :亷摓礿郩d珢*凬爓5!-﹢)(礌RS蓖(sK覑?}齮_鏭溄k添裤絖鏭毥2灺奪AKHAEP髆@儵辌䏝敷5'ヨO$rd?萎$葝sO^%^刄7+b:rdft簸艶G獙 +:⺶龚(i 95 髿@R恌#殲A岀紹唅 $#噇业珿文Vu簓V冉裼電园UA鋀Y#为&pW瘺賍;75M唕E_裕sq8姕W;惆娵i簏3室宍,r[5詨,k盁^j扏}ie併>垇绛=$e飸Q98=!撴'鄭Γxq蕽泌懖@;x镸庿黔&)鍓驣@ 镕iM&(E!b寋q趭\Nh4碢i氓6ZZZu勸J簪NZ(┩)x颕E(⿹慟 +03@r**櫣臘x4敬僵;0 +x镮@魻欟剄N 镕iqJNNi鯾羊yT紵拢47i1N悐oCJe$骉欩(彪E8擱鈷 +)ph趆(*h*h(チ擱佂P(R慔:姻隌 E古%工((4м恥崦M橼攕謤&i柔P&Oz厛,}燗抓!鉁 `鏇廧iE ユRB郲<訿S留鞞﹜:遍]逌H搹4怦x8_vi0晆裖Nq.;炂\tгq狾A!EPN籀撝2|J7i鹲鶺檍}W膻5!Rt媽v济Rbj慂M謽#訪9擰ERS嘕"58?匒NSGP"v妋梃ぅ@@~(蝸锧聙2(=h燗鞥Sh枑聦P:P):袳QE炘/CF}i;欯H儕?S蕃+悱T笓(7HNzt∩g'謵儨P!蕒SM>$N5r.U8鬲瀶J^i(幋繨(敶cw0p苅觼X垫?濯:粞5鎣g*唼函蟑M妠 磦杹Q@x孚佄}do鎘襉J骩鄜踧灳c}:毟"ヽ揊*0帔['璖%N!鑙濵8舂4潻x蝖5$#t╠颯荍咢1*I譀 +yaO较CRX镨0*牣葲补}F骼+F'+b%耤#躄!駜诨戠KS嬛5[ks汝+SZV筗赙w蟋瑪b3訆銥纭 寠q唄d慚 V噎 朤#UA璃碙yP_^i9 鎶C g廕(てhロI冓>碿屟K鯛ぅ J3鳴I苮燽鎶N鬬E巋跧稐&屝m妦荬6滛鞷y0}(莲I*蘵1蛉4焹镴屩亄r>剜Jft)5#碉J#雌I隌宄HH'5!-嵚0<瀞L.Pモ瑌z擹q窹*f攞痤1靔庳陴wq頷 隣茏xoN彝*,埞 鵶鴔柕騔蓂$K $矊g痮茥R飕x#c?3薱袽u x鐬{U共RB'O蕽壒蟳R4綝J讃瘿烶瞠欌襝縜旔x-~v疬旸赚z睜 9雇;[胻菫:屘捏H d匴,缞呫 Ddb95b{2RzSIP2*#酩(B阋歘 +LP(輾わK@ x酯=('f摗ネ蠴褗J)q顴4 +3A僃8奬Q;PzZ3@酯Q)规棷J濇缆滝¬"Wq鞶灁\鷖E&( +QE$H]篓&殜]偍婧]#MX蛿e螦閆B涛ぴ藌U牫笱'$焃`f灎r}*霬是m话/共{Rg懴%怉颫 S邾1"す2脯MU鱘V苧f果.doS\SwgYR襜娙蠶謻怰儕hD兊h閲pG謫洉簢謫R荟xNbC*J喸搈=J錝P (J(=(欌筤]﹖S^b b輈螨O灒揕oc)3跬J鼘TD`RR襊妐橹)聛弸慥閁颲(S緅(v9ォv鳍挅 +(燩14P佫彮丂倢已@ KE(燪@%-'zZJZ) iJ醳熆 Fk疖S@:觝噻廕#=)棉%忥U鑷A"疍x臥墾L磛#Rf槄I戁岥{鐨Bs@ NZfi蕔h鍙鼅[dq姣蟑K+蛅釴徑&>汞J!絽イ(=+.够滅㖞63^杬W歗 菸?椋:▔暫<鶶#;{酩{$kr)膶S9u詀圁ミ姃哊!~:20 *:炸昻1錈Z?Z縦 卪I]橴vE薶定砘抝 \c)]gw9BV醤@岣⺷*'x 煡vz潹箒袔pH1曖檾2s薰[澊ex貕N>斺 +杊儳0z廋U咷+琻F:諛儚潍n=苃豖n^個Q荍寧84驧!4f枎1襽棴!^8'Q@侷鎶PO謷3@ 龙襚sI/槬鎺齢鎬)>磄(8R雅裤E)i)1@Q焭n(钊阧 }i涪z1酲 +慩;,}}:(蹚\歅?姍FEH骺Z擧矛煭W阒 S袛憮%=e屓鬲t著gQ捣"{嫋A芅>暱z蔾x52騅*鳢9剳"伾扰Y痉炦e+簜,<QI +:kr7oQrEP摧&{> ]玳M4錌缾8}6銻>磭隟梠s@ 4g孲睅砸(({欱h昆碢sKE!鰻? +LqE/"3G4Q(/ 謱S`7孮憡^敐)s94笭鳐`)範趢,I"MW 寱蹾轔JbL玉幋c$`u*h-辡5$毜cλt缅聎&篬+#G:氈軐猆Q*閦Z[(抇欳鶹簬s笸;謷姴8況wa巗隒q蟸並/ +獿L姞c馬*誽O酥A羃怞!v鐾s傧=rs氋詃賔忙x琻暶&z)YQRPЛ-4Q歜怠軧G]漟镰-4驸?鲄Gs-阙颟_圐咙猨QEQI@邙D麊伎T>?谓C_钘x脲汅 Pp蕖*&鞷5F(Rv;P:褵N絷>ZЖ"隨=瑙d鶴L (5 磾QE)i)hM鈸8扭h簦灤-攠(攗趻枓 APs姤qWMR搞4I0sR?耷j`莦x鷅枔ㄢ擯∑*蘲鷔U骆蚉w歩)|J`/澟iを浺椛4瀉謦驧#K錅y啅4鶵'癀Q i''覝 鏈! 欿鏤z紐5檩4場甓g䴕疜鞨}籁(=+惋驭勻%`O鈑C^ir女$錂熌誅L瘞i郹R/S)階 H莆郁+ M|鵧J嘻F23覐'踢Z@6s@赏另P角4∵M1橳w4簝蟹h ]瑛礸攘8瑟6裯uQ鱐V矊 +歆#姮-R獾0"憇茹幍蟢殈O錽氳9T2&鄏3懲DL琲 8唬剮F嵪*g峞]樯-[J*芚G钎c珮a珫I刨澭拻#ue<园x#颯d驪紉镼b艠9_J劖;qS妏 岨堜S慘鏌碩褷Q9⒗@氚s殢<獐`巎 `+挘#C M +8肱(>啇FiH(Q(4 +R馞=h((RP ャ% ^)F)穗@(酇ペ1臚)hUA) +巸(8绛f)6淩謥撻O{徫|h黨确郎e甾裑瑘>ΘQLGO岖95Kv构# >耜k绸霽SiQ瑩$rnEd鋤~錺煒z姝斡* +鋛憡臇;ub< +孆聽9=i刞嘤脯X/x E!00╭P仛C謵櫪&)哛G +4PE!嫻2h缫Ni)跦づ%`褗1FqF)1@ 岓F)q@i1Jx镸栗IN(9P:歰cSZ萣r罜68鰻栟H錖 d笉Lⅶk <颁`b2<災2:t2G祱菱\-.8$O酅褗2h跕 欯 m(鈼濵;wh膝>Y▌氎葱駟橚礬`銬頲Cm$╀鶹鏌駚Z佰G膉N#I-蝁謗 DU]&i鄝4淰6=;秧岥P,1N料Z"c#$撻I9鶇I帔T 蹓4誝[/烗j訉幖姦.钳j危5ぎ掏ZBDq鷖Y誫Pp鱩忈飧欒4櫎鏆M蠢PyЕ.⑾鲊禆8 䲡a窹5鬼秅6鵘姭菍玟虱P (4磾煰0]饝戝 O95辔峹?閼.韵袣郑a蓼ja锧 .03Gnz揁噖=c1裾佉支N6廕)p=讠胪'颔F{袴hsIKI@钮4倞3J)(!h(ろE閔隝@ %QE(=*旂僕O莳W襺 +e>NI僐Tk证$|肇睂猢EW9Z"P爏視x磕M6v佣 +Q謵嫩.氧4}hb +ZQ@9).i]W +簖,gS䏝疈) )i-QE!4彊鶜舫^i H淉鳋uq#は)膓黔7滬R$o&崬樷j7朴徥悌厢I鼄*TO樼&芊>3颮纮0j:犿ZS嵸旾Yl阚c礖-v#伝8蟡^櫐!^櫯F= KM*n鞨i惾儜詗琺CII婭脄V鑍夔殟悗倱姈)8唬噿)-槵奊謵?b+矌醦雰5限2落求-sJ泿荺+)h迢P輏&姁挏0櫛gxg#丩5y!7\莸}}閄.>=*駥U粵3 +珌')c]$wV頎\,A錫9甑HL.菺c蚖>漂^枓v9=5Hf$鳏>悐4QA孯敘;鈱R9犫亯趻梼F=#。(庺干づ.)p)碢鰥LsH(J鳓d褵s@豬,& +弚梗q荶6烰]瑉H4a迉#詾C懶豻&椞o蝷%蠈鉄Hp@甥求,w9侵槏m;M#Q穒6旾拜詅 %テ幾狟)a3^V屰筨~Ξs,+彩鑳錐bB=)宒禞葻)蹼舁Dg橳qU仡cH@>!C籶&毻b孽 })漢1x楞=i=唼葼粆)燫4洏幋櫑ro从%R鈥枌q謱{懗1M&測際@F)sM燘鈹b汮:1jXr$里Q娆@3(8燝MCw℅ $k瀧氹鯘+K昞1僞}c;A1u8鞿s晗4[Y幍hFU蘠Iゑ姧, `幍C崻{襃L4霧蘨GJㄇZ啌Ex5b)鎙"1&&砉\q跍;p3]弲n%俱娷堆l,@23~C5琱深c,DVmぼ軠,m鵙矸嘺丆]I擙甄5瑚R"?▅<氌4yV敿堈0-冏慗#c&ヲ@Q捍2c 4c<)7HO堇犉\穴 峜答ri姤膳J膘灱t-苄戲及#镴 u墙:>勔跋_Z}A撔:瑉毞 踡佨認d懯p=辍 l┪5焩;i8銑绗为 ﹪#飼墼酽n򴙐祌潈薙KS3歕鎬MR斸p駋蜘璢燊G撮g:u`U圣闁驱乄hQERR襊k兀鳠跎繒yvO汋=_7欓淇5搴椵o袊衅z嵑T)嚘q@哠' 螼Z]婬:覂僚/q襾弿*u黬J8燘c苎KE 6 +(鞦iR襌鐨;乙Q@ I瀒sERs歚-QZZJ(/jJ(燪趭(イh= Q斧陀蕞\R9聒)騷鉓z鈥r >:z莹D殡臬衪醌婿8イ)s顯 蟡_ j\G見3( +h +^奾<欲S鰬!kAMw悭p:?:胆<|踹 +E=兘:涋滰倞(5娉駋.~v( yぼ躂x崛齤&3%瓷#<*)0℅舂OZ妌#lzR爼x鎲晑7s 鄽y 4鏈D6[9舏YFB=O?匬秶钇1負隱H亃zc誑6GY]帰奝3叶01謷(の:8磘n1宍R 8螶VQ'魛i繜z夆>0蹽曋瞪盘@ +o踩澀訴N揫 +簕 #9跖J拹刧嶨-牛#`懴Z瘍衭cT铹 奉z gnく=缆毈8╡」4荍6)3胒敤!謵拀if枓hE(迶R觫 氧ぅ(QM苺$诰j绛3'謼'韮謴/=楣8;P!㥮!︼>达1噝n1@幌.箜@)4鄥=?*U澴C3)'!犣敛伺I岎)窕┃;妻怞榔U┊湸?J啒F:屩F&薫窟51:珲3p墳Tg暽U陊P巻q4QE`tv%8vτ嘕z鶸>nu┋Z寻2△嗀V哳U*埤式L(( +z:U琮q鋕5_癔Sw\_蛩&}O酽囆苸倶s󫻓!2(9;R鈸盃b鲡潻GZ(耩j埋U<泷┰绛(足Fi)E!婭淨謯QECKE%-%/ǎ敶QL(幋碢A=謤舄3醌陀璔袱牢擄歮9蝀觝俗>樃麰8g鯛 c5^嫢QNH蚠坾ⅷDV攇JQ見`=EyQ@ +iZ(1棱潗*籋FgXE紟i阩各Л栗06魋漐彍~5邐罂Z礬g抭鳺 +EKaii)hQE嶗My湡雃|鲼疞c&佳2葄e忬5Q寫宲E9q矾4蔑LC%XvF鐀■Z|v戤 *鵃< +=j喈醛+"蛯`逑^ζm:辩穠QE1 N*W镖殻$t黫[8=嚡^8<`NΣ缫仭籿寕国P刵9#5!5G侷9簸;<蛸釩 g(U睃閲`n鼚t<袅 *c鼖鳔滗d(尲烠讱h崉翥&煖#4s軍娽c#1i!鸯\產炧b'zz揉裠谫櫁v煞>} +隑级8dn=I:*蔨q戦帧覌.53宿)#萮"O+豫从$堿頖漲酜I0I礋QY:/〈q1陱=4刞骫e讋.嚤瑈鬕唹舊樯片躺"挱惮>d *B"⑻忆y觫澏#( 褍J(2h9Pz8ぅ犘(巋鎬.O4F汶K歲|瀭嶄v荮=)v跓 枖J錋"笺b鮜屧嗎R﨡宮鞞v撠訓6=LfL#_々c抠砽(v滘:qo!趇V贔邵业菆偬d僸?{1krE浘苡5*圬M1失専J蓠6焛m%3萹盢H蜲V媚锥;紖$f甝#3yjX蟮qi(8>钥c楙‐*8\3u; 杸#[2寶屆幖P!昴鶶{揁1啧庻3A 呻Ae9ㄩh砻覔>聯c趤噝(.( 证?*殤,鎿)賶碩kZ=鍺酜筄1s臨&C枣园(Bx護o嗝恌x综璲A醷倔3Vň辩Ii+鬋Wm鬕┫蕦}8疘廚硛|'展⿲衿06廰Z*(赔涃M頮O╂董|)i=V籢/;T焥P=愈叚4尌Vr闕漞j$ njW笁牚6s& 榕^埼总%?wДVy輳- +唺asIE (#=zRd唽{Rp)標滛#鏢N!簈Rg歀c#4'%盧憡n茑鋳 +G刊z惷c怎ト->源匒949>创})汧:b9鄓皂嶑邚U-%硟Q7C廕q鍗5罷'趷蕩s!lq\披鶙覟WG)緕s\!樂&甫钕F毚D鵔淰f +Q謨A阧@(4儦PhT鳝?楆+5&贀荟-摜蹞縔)螕l}R)())h +簾鼉.侩#^U~>I哈f絎S鏜甅5鮫酽囆舿镺~蹿@4t钎.G_J?圥: +3jZC@A髏哉t醌#覇 (zQHF堑h枎訮 ヶぅ(4攡ug 袸E0(燼E:QE(襸zRRC舀\U妾3锴Ze9睔m$膳`P==(%N乓℅訳QT"q覘 ムS儹-籁!s覚)俩Z倂4 壈q毇拊X⺶&hnj慪緯:[宖 绁05<&I篆箫荧蝲/蛌*鬸掃AE-4SQE嵚汅6鎖??套腛5掮諒螳垬搞4笄鉓& c隢q岥1擁趮t噃轾折"样導q镮chg3伆c址銓"诤〣淑j梫Fa稊 硗4 軎禔>魀{Z滣0蕬渻甘寇岶a垙复虖蜲*q詂薜M碐报谖&讨刮)丹+鶶?成?x鎭芟e 岞狌~5p豀;妅YJ:h 昘g坜(q螸諆k0L$6苼軆!9筲澅H( 帲c溠@R;袸戌篆/(89)3儛q*:(r; 礰7#薏柰雹m.袭*渝(埕ǚ鏋0s鳵i1橣辚g袜偾1#閬*e糽v?岾Z玅u8Y1{#蕁焃5襝tl>棰t泳 鹈?QS霶k3蔤蔭"EB忠疶"絣莋/迠# +嵈 ?鍎Q臗燴>c 忈4瀃zW㊣犴=騶3鑚鸬孆译>牡姀c<矴杒裚耉膓)麰B彚H繄4綃謄p>SQ鍛只冡凾g3}Q欷W qf2;R诨饡甥歛馥喵Z^蔆鲳顁^[Q宸燄娸w酾 O袋嶍蔄磲茕<碁i67 醂厘煭/"溢 魍蔄磲茔1鞱騙+硰乱狦N#鳪庠{)穱s胳jT硽C颉醍<33蹰R蔂m晐昖Q&廳彭鈗 錽=弓齩硫橹蔽瑣胳沏抪O#藓8tx>lH=佾穤p狗#鋵c F=瞲む袹琟菞I珶楏ň'祕a痦膴m醾碳{ >*峵<垤rsν備嗿祝D2娠困轻隲錀`;W鞐s菣媀擒b)雂2#8疞]鍛o┅SJ睠蜊.}驩丌^+润皶u*7c9殡mr"垀 +/耀"^*]7徝窉#s鬦.榬燋唬q )嗱!袚鳸*K/P錬餶鋙t_漂冕;d拀峩叼#'隥点瀫 +貒Ro :孏% sW#背嬵[>ⅹ5虈9~*&?y骍b5{毦dq +^ =I鶹Y憓!椥~t靷碰件掰u]H{5H绒匆s謤盿纩鞶檥EE+{SI$湟R仦擱$r憪*O&Op稑渓4r9)j莱 ?鷬錌8て=~暊4媲-8i菟g趢箾8生謽佑4醢煗蘡'".躳~镜炊q)乌p窂乻鱋錕;舛*; S((9孉l溏eH秗灒򆰲( -l濰?<鱨V +盦颙粥.1WG\b愢.&6閺j"鵑晴[鱤6鹅(暗H膌g熺S-=Y崻H蔐q坏s党8成$6k哰灁v +(ⅳaK趻Q磦(闇栈S閼UU薩醌@-蟚k55熤磋(敶_P宇3o錨Y弒z鼀O*蚪GK巰渵fCFzS疞=)?Q犁JC軗9)h勺蕃 +j聹岤心-R^9%P矣i氓f拪`:拪) :R袸-矣x%P襢(i(砼嵭)裢]a臦4椭挏輎湓個$A又蠻牯]P夎颎j9鏄ぃ煡@娅\諃y迾2c"Х鞵?5b攮04bP~𠊪舁猢砸GA]赫驶醆7嚁6硂懤 枓枑倞(?阙_鱋虔8绶'5+崭鐿螵B`s*6﹞d馫6KLDL9酽7蹄巖1R0鐜j5⺶獾&[5(詑?虱q7钭?旾怑w-.[莦s{觷婁蠬趙D胗螧?*P +'迉懽螅?徑.锳#g欽]锤罓Bc巌:vI?((熭;P86 *??#@│稓溉sWx造腋抠唔g镏瀤镮 ,橐g1M骨璉滝4骆I睕酽龓o铪党烰9顯]樋d淃啅餐偾z\鸓1<墪窩歅砱顡鳹謘趯{ +.;槪蘥郳 徛溃h=囧E舠$J例瘰媺G駳邑緜崏E洛w y ]責瀂pPa|{уJ/椇卞E!(呾g鳫dY鑙﨑_筇R秊/ +4?禖/卺鮫譁m闱躗O城鵔 龈}O隟雳GV4y鐢L_筇~Th 雳}O階簝粘臾y11@<鏯 龌`o簟/"'銯?(儒燚儮仧謺愵Z1銲话僻[㏒鞆9醅);y3鞰馽4停[棥匆N绣cEow險K嫨?;[珟L蝵旵祓鲘Q @"牘Tl4&晟 掜㤘:y╒橄G@)v畓 +軾穕犠鈇鬦屔1闦8鞦aN2嚈忊=#b~暠彔で覌吿&n褱鳎葴鬉恐屻緃竆塞-藇駹靥~瓱j)\wfH渝# +p觗=YkR棴贅4筑/鰃4+K% 矆覵w鰈Y:粡j? Qp筆X脦敘5d袳媓忦妏1 RQ鳴vDiK钥⑧ t袱=( (燫!(ユ摎C +?K僃娱E颇镋;i鶴磟裻!4烲S=h郠p斑蕦訅_JM碎@み僚&駺.c雇`: ;WNN+樦N蹱迡齅Lj/9=^M鳐GEBす}7┄廧醷灅Д74阋Q見@H +p攂 qV鶳 s丶? [_+N瞸6链k| aqZ Q@倰枓 )躱錨W蓎$~Z膻=et*蚪Dcx3M悱3=荶e (ア 溃康 覑 +雇Y^昞u 鱁跟 +)0(⒗lQE f奞@Q4(涪孭iv礋JZ`(隚zJ(h@QE0篣 庻y鶸奓 鲫i)[(S僐 +`閵}K閃Ⅺ礔.祕旴&irq趣蠢Q;褗A~個择U*5V搿觥'5<U邨黬歚i臯牚馯4稆 留o錧乳\?:榈忛]扩)磾(婋=p*蟊黖Z;鯒w5HL紾S苄f妛穗G)9}h栗J)p=qJ¨p~敓?oGcJ2棜v=6戦E繪奐v 砉颋覧纎瑗埏K秼咂寶]4籑苎膝)Rh贛統4荐4恣=(貃:. =i)Bb曅 盀{P酡,3瘢4龣籁( 2>y舂<撥僇"像 T"筜見抖堁n3隣KH寋媰餁梀&獎橜瀒GJ簃""趱8-邻+鞅K谀k2堹隐Uㄖ多r刮)蕱昙yx胫й.努+頳dz徫徥的枲}1Q5艠闍)4*<2]L荦(全乞消畘憻黏7栦|?姱h霿嘗鈳9筃袦鳄甫嫆%Nzs耀欥3鋆瑞h +Oj炃鳣黶HfaUw貗!66zQ苞R\銣Rnc邭5兌z讯洆隝煭=E狉爓 隠&0蜓暔瓜8#=Z,$恃口檺h'潃y~:Ro8泧妪7}i怀HHM&}34叏?z#闙造/馫袱.=h,;Q慞檺雌窣2Oi幖 +弞(イ觫4磾QE/酟縅5}恢|D濵%9&愋絡Jh鼽┞%幆E鱦寏姣艒ⅷD緮絲酰燼J: +u1誟烰:誯炴 蕇筲摎伹蘪qH 篣丳E椰-06<83珽丘夫W崃槒-奱KIKA((Cw高始:b靵i1=6*笳鑨颱0=x?JSG8" :隫$陖{T 筞LC 僔V㧐9臯兀=j斱倇椘 w4逯T向墾$碪鋎痧f陔pp皚*t誱郢=霋; B跖?>募*顆)}H.闱達渭 +犁<]<9颈銴蛮瀯zK/风^~簞1姘ヽ债q)?Z~$齔]魈S蝘C5櫱&L鸗壇渭ej昲愷;]鈹0辖q聒哋鈂 O圛旮Z~澎g仃w~Tf刽衷巼焭5x6靓浜S靘du(55H瞎5\烁綔欍 9詂'搳憃愼4hK/辖(e鞹配g鴩鏝鸗x)豓e矫=枞W 寠w灲赛璋F;PH[螼_謴9 隕备zRq隟吭,櫱~=j-愎マ敬瘰v–7俼揈枈弍>8X ? +s0浲L烰\詄齣7{補溲a/顴咺2j=绛吃裛%蹺 l詛輳L裛$躆>蠢J7(丧躴L 鏆Hn碭 =ㄉ颭ミE~M.j-仫歖?<蠭靑泧o蕧汩E~h墙G紌䲠o魍B!千"櫦{衐碭yh[v鸦躊cBI(ю︼s<罦面c 鑺>倵#蠺~h飱<央G(s1陸兟(?AN8雳|:Ry睛嶱鎑))s幍1G)d4浘礬酞z鈸蟎pEg9牰*櫤A#4嗩>睥嫑矷侩T聚b鉓7駥濠厵wn񤮔1脤訫獴?垀y鵜>晫谠 鳠r p鄽W]巧.迄lw︻鳟u跌2I齤6汩K=述S靦矍4絩#齭U漶聃ロ`奣&棜) Mp9 隤>縯{奮%,<吸螤g"榥 ̄鸠=}j橄吲B诃椃塊 .纰涁胏p4圃癔7k樯鎂6箆赇5>輛)a|螰揤丗L孂誺譵楟Z婓1弒'璒_U]吾麰o貧夵G蠑1o+怮N丧礓W这t忊3蒚95x哵瓤峚i哈u>贓*靗>籺[毇& 9懓MP-K'缘N+#饰rI&'=驨づCl "J~(坤 T橏写燬戕梞 R丯莏P1LAdjy鞸?G獂L鏒V輆xD摚 =J荬7窺E(k}觀M泯袣絜鹃)>腈?⻊i◆f漻◤Z朜剟(R1K腼A烏iy臮Q全C)1 砥奲54T (枏4Sh隕P(奐ZZ 5/n)hJoJ\驡zJ(钫 巻手}沥&94敪鳗(仉淪4v攖 +駐1v舄0闅_聛EQKLU[烏lU[瀯衻蕂絍 苸礩蠡昩紷8篢胍}jp?:h贬◣?伩晇跖xh伂艓柽驶Z捸碤E +( 糾禨绊壹徬燺菎驱so錨| +▔庝tぅ奜,哋z孁p8+Q笈&1ii{@ 5礲爳瞎塇5﹗兄5;J酿i緆S蕙罓c兼4襮@yG橚'氃鍣5D: +P9 <凐狝u(#毊)霉=┸V6l.贓骩0澝婃綮椛畳賬QN郚zf惼3窑P^($}i宐宍灨аG3膺w\ +拹)蟊r|賨y岮朡-鈧;S鐥q{8:a-螭k箵0黫*9廼$O矅a択7 R1?Z蜐N顪訞懹"摣>*c[愩彯 J核擏Z缍鄙 vdS鲇诈緡B5y饖w霈嚢娅 n)鹹鮤畣泅Rj渢缰猖j匠#牮4沋}鳇a眴鷅瞘蟌犱钆轇5 鵙裶扵僣挗瘩轆鮴So頳猀丱郯 /<想Ju徍*魟馟穉鮤枎礏u谹"钞H興JNO輯暄:忢鴠i蛂,MG跟秧貆Z'a 囼4嚹0矢謲<姻誦v?饜翺喒%c证 J=純暄:摨艥9酩剛,ck~UぼOZ=純晷:o眸颚潁{!畃撾'鈏{y諣tg_?蓍M> bq绸閈qA'z=紘鮴扣<涹v_顨盟zd鲆aq瞪O:苣c娔鋛FOj=曥!刭:萜065疹I漞d衕霾峅韀庬徠榰[岀>暈.9蚈禇q(畢萤N驱a弦榦2UR1)M蝾?g艃{?a鞮鸤7礏A"3"&3广q鈿f~錈茩済4c姏铂21滮i7蕮oJ. 琰"0)艵 IΡ离;襾慔Z亷jI=? +垘1H鎿4I@ 欳8籀F3J=F(jUZr< +@0iqJ!=闃﹑ &`锤雩b澏)p1阨FFh&荞F1趢篙据( 荖i銻 .M9i卅1丟cN-择嶦F犮芝坰帞艨8鬿閉 s~ 恔鷇q]%!Q@Q@+蕌<辇7褒Mz遍^S▽Op髹B4喧R `SJ曃y?JS謷亝'袬 +3毑8璝N(((#X庺糛R0镴i?ZJZJZ(;謷(h4RP觫(摻敶J)qI鯛糕╘q毦黆 庺3 =z;S﹥钣4y獐切U +擯:RE攗!GZ﹗姓盪.x!橭J笼j籶f瀐J"zT悱AcS@陴宵"甿+诞/#'q,埴Wh) 婨PEPmD鉔甿锨"P秦.22<二U缟*悪(?i苮ラ)踴隩+苡*Y嚙n*!蜮qH踸覻壢鞪瓚僅c A-Xe哩e鑘`f輗и.>鳐m轂祲q藄Rq@爐&亯E%(挐1@)薎稊 P倲 +Q@纛[癞氊|偣7飵潞媉圾SB,m郤J~䝼楬蟎 肉憜;S!鷅#G牑翣だヅ芐冖恷Η=* ~f>c簟b /R(鈦鼇镸1悒8pi +绲+"詺3Bw≠O 浙n@╚li'癎6璑j婫帣卹縶弞鉃鍣簎;蓱辽∣揲N鍺65t+XW乊ZpkX:UFT湟吺妦:鶳鞞 +奿┅瑱驚鰿僗硃N;皱亦艠|苼^)\uī倞)) *P襟Q'^2 zR簦J@jv28PQKE(ィ雨z衶}i逬LzPc颍4碽p)=瑕u澯瘼i1譃G4@ 䲠c)c E7々;RS僵p淍h慜坤#弞U恞QU瑻蕅H圈*}%Fi1N垭F苄/5:-1R奬R毅舚)H赦潕N(>躦隟硰zu顯芻S閝@ 詂歕S嚪謤4b煂襝h8倾@苼K纁`鈹sKqJ(,}j:憙@夃g9鵚K\讉:|冄囼畺慙(QE#t,郧鷀如锔餮疭=+说~/.耄烅@ER縎虲CL镹鐨Oz%揋`hWㄧ皤+耀/Z布 +:奮=瑕#Z闒R创磾{Q/Z)(枈(颎j;Q@ 趲烰AE-倢PNτQ@隌 ~暉q薮$鑛>恪砸R灕怭嚟+长QE +JZ(Λ熿滑-繒y鷆mw差<垸W犱zU!2Jp.sM;u*壉冨遵/耀遉LS籗GZRi馪K蕙虲- 氘+绌r毮渱皮iM燼O)裢)/Jq4躌b幋建 9&44杏^簨q甤J鍮 +戥啠c骚稪岧1M胍52@黠E(`捩儌i)T2t駣咰驓瘵衠P鉙л鈵(鏉忿 +v81亇i臕妏y` Ι+T)寑巎\KSh1恪9&, h\E翠U?34鱕' V簮Tc氱 惁~9颶恩J 4(uE黂c詯R!爁澐妏PG鉆鱇驓聹|衇削Q*脂>Fj) @腴E > N=j銾呴襾3@6槂、奟M%(桡赯(ゥq顯 4锤LqGj\fQN4`Pi)劓16枎魌4啙E爏坤艷譄E7 ip(=(6Z尛LG"惌G皐ㄚ:濒琧飱<砎qF(*q酾佖S鳆{倚1佒-8 +\r}(弗鶶$PG# n(4靌6溞!6襾N艵.?齌遧覟E-h意滺i樻孲迸&(1镕)詖寋R褗Q芝宻螶墄9⿹<靥GM鸣WQ\總Nl+àS(QE#t1謫5 蘬從拽曟z墪佤暱&爇c殈=#蕙~щQ灤1 阙擓S殣魻&)iZ步Vj聇訾&>奭w(# +_幛t掩廽Z)((QEzR S嘕m/j\驟梢钞z袚钪u岭I丠4/襽 (Ι鷡酅G执#1Y袐願Q)h; +璘灌j艺K-囃Vm决j砱y6齫@8駧jq跔嫅S覥7|*3雸廭軍飓嶐壂s#+博QERR袬鮯*桡?籲? +篚氵U t粻絴二U甾繒R$鞷(*@躷犱猥造9想P灤 (賻鬾?ZM绺鈵撇鄓娅薞湔yi焨"邦5箂冶n> +vぇ銑e +x2攖嗘"P砃惹紽:莹蹑澸毤忧轄 鶴uV珏-5永~Q鞰3u*N@橥P烝J'順覅慔妽涺璆苄uB@>sP尚詣5搩@娺臯PdUb>aV#xR{ +爒鏃亴qKHcH;i魧2(瓽 +^鋦禃 h爱>槱 T?ǐ簉@5ㄛ螋565岰. 布>~单 蝢僘弛昩G +;萝q鞩;覗荄溤漦"陟cZ蛻U{8貑镱毨滭 +藓`乐沁4W璛~溤熉惼Z(隟廚磰%宻S牗#┯'亸zB{^y4斈sJ繯h +馦*@軮妘&9魻h=)@呻K巕@茙)E.=)>攧%(\)H4F{P{S) {戕檨姁1M&=bj#簟𗪧阒歄(芤u=緮z1Z礈邐1樝缫奯姥@岼))i (颋h僄P魻RR礄)i(隌 E碢E(訾顯 +;P囱K2C蛑|鐭麓钪u *鏎镚z1@ +絠鈽渴烜9蚠帹C织苆腗E%- 孯f4礡珛知]p 4#$醌vxUS祅9苅艕*a譅姮/ 7&?鈍'O鮛訵a\勂u)= ̄⒒ +憛Q@Q@u3稬?羯繒y顊鳢@諄:U蠶撳熷^}溦!1銧蚃GsP侽覟E4!∨C酴[姊䲠R}閔1 +侼9╡镮仚q鱉c9瓔灋鯌?搛9螶 i掖驧 箫@)h寥)(- 鍫C嘮摦=i珜Zp鈥/i3閉E根>甲-苉Х?(狜X蝳h R帞啌g袣i齢9τ:m歧>揁 < +嵨V=*'醜b+ZN誘}甑N:PS褙`5"琊帞碦瀭惸(ダ噫菠5k茔i瑱~鰗f篽8P:瀣4d +9爃4 +銘Y于J賜J嗠I珝J=$/任z哺又& 8韕r85-X誌=荕tp5#bsR矔85G軂T&д稪吅蕴03P穁fV儫J^E-$~:寧*銑橭罃q!&庁籀 4儙敿b殸2Le8糅逈巠墙-z(9)?鄁N摭镺'廅唨隞~稹h靱弗=倐p(镉駹篝ぽ(n勪汛襊X04y'# <慇 銼鼻41 霟!褚棸'=.4閲R % 覒2枌Q@Q@Q@c鬛@@ 讑B1GCE.i3EQEQ趭))@ぅrSG訲5,z避! 逎kC肋赕с]}"炨EP (+王[凗瑶m^恴鬅f畿琦44r蝉?Z帴楋嫷:n})H)8{焃O镴兀撨蠢_錒(奓褮@-%/稪`-們襽 +ZAK@鉋碢:岩徠 镋d+>~酢'J蠝馌 丧_邱ii +@8<=kAJ鋥狰昴KER鈵1E.(,*;熀誸鸽蕞]r 02限臬v *j祅9 覈*(篢-0: 凖1?槷竟 糸驱3譚((カ铪珊蹨鵪\$h譫6咻瀔:U!1菐=髮郑m妯@鐪TD郥瓕滅5 &n櫉囊僑q=*冀*bF5 嚨P镐VE麦[2帰↘y廷^赃'趢 =O錿鈹排+1V<瑲<湏W变駥S锧q覞兾E[[~zT蒶鞱dGvMtp +未&:V恜4凉-殘H(=hM臍e4铬QQ磤t欙暫uㄩ7{覭宷E ㄜ餳.3Q籷i<栅惏毼鈽ME9鵮*_巾ZS毻摥5t顑;秩o柋4髝+X>Wh蛸鈽N 79噯" 歎隟灤噑" g苰瓔蜹馲R錦源i栃{ '=* b=z殤%$恵T嘵攳-lRe*9研U謭P;{Pf嘌?滼 FJ}2 (苆<饮S!? (Ru鞞uσ幋E龋'sF=犮雹燽幋鞄敬迌<驚籀帔S隚工yラ/~i嚟0G?N綮q揌9陗敻陒Rg閵O茙濗K趶稷棡敇鐘L渃覘盖8蝖惜8)@呴阋搩F(3E(隞Gjn(镕)q%挊)E'覘b}hj0hz彞%袬b=((Q((%-.jHFH漢佛3 ?傧隴晀~紵禄JC +(J罂5壩s煺鑷鲓棇|鏜 敿颬舂纣*伞0奡愧鎼 湚A迶襴牎A妲嫢@*x(鎶B5h%-敶Q見(ZJ3揁 +M&ihイ-挅孮@拰驚梢钞9>韌躷"1JM)zs@)搂[I>[c镺sv嵑鶶 囷 +O瑿そJ7錡Q*h鈼&を_彅奡o 陝g趮襾R$*q窋pco蕥qT畑蚷媦q潎颡淤汤韺⺄缆?毜n0ELt伤si +盏%嫢J絠蒶.>Zx稐丰訵[\弳淶軱g;O甼7诌筠1鮨R镑,褗琽m玮3鬺/璈馅#京X 8[矶叵鸗無?蝰E僞鉊汇+冮藁Mj)艄醽襓$@S氫谖q*悪(?0酴叅凂lsw4腂輏 M\趋?Z嶿:釺*苺3锑wG絏刽ZO靕捁傈閄.V7w險掴a軕垠&啓栿TFPx5<;u岦繚4xr<礴迡摴H镮閇_饙\豉}梗珟/鏓傛.=ㄞ紌V宵#Sc.~  zy嬮[?饙O咸繚饘嫌rc隕傝.jzH=+[欛髯螫 8薮X.g冥乄旼逽@橎uj= +kv鈹摅哉碃L科燩4s虌╤S鹖鳐鹢絓魞J,9躢\WC龏果泸{H熙⒘s憬舢圎|~Tb忥徥蝨帞m鋀E龏??*?盙髑錏傜:T~#腚] {|~TX.s籊4c氳勘粡蕮g飱,;滪宼95褲A羛)?X.s 隖祎_貈薃鵕bE傜=穾敾Mt貏控`tq須,9恧襪4k┡2妗#氳連憳湱0t韧&9又愼鶹潸,妱餶*[wF 兣龟):訆鶵揌酴悞1Pc滫匀p(%QE膋R揑GjC擱覩糞R襱((wQIwィP駵RQ@鈥鬛>>鞵洘瘾騮鶸)'G惶q5咖>W*|t#x +2鱻舢糞CjV1颢c)悓堖籓5谘;抭綶儚)砸琑銏鳺cQp逼樹6夕)⺄鍂yR鄎拠+(竂9廐鳳c浖r}6*滕.8.A蠗 顭皈3c鍔S鬊s鶺[Qp鄙}瀢8H%吏CO-螼"\竗孲竂祈皘1Qgu 5誦\v9避鐩y1/豱3彸9钭P\V9ビ;郯/鰐鋸魋鶺IE+佄>鐟鰏顁9齣\严釭KE淊渭圤7/裏w寉,?郈黭あ媴巔樽}裤I龥w瀈a_癞拪.9忙葶齂逰4熧窡罄逰5襋E虑6t肓,?茡60︶5已E虑44畚饞?轤瘰f#}癞帄.9哽滑s?郆楙2鑥鉣 \,s抠穏?茝燠蒙鉣づ 鹩.駹闂C锈G>篣注徠楙*缪?铼吲⑨∠稌u鑷瘢&绠阔犈R竃7'簙tc\w 麿鳹⑨d`c\z?F熤/璠\,vh氢聴lr褵卭b孮p0F?鳎鳶啀/v忬?醄敶\,a\膻cK$O+v.0N)?4夲E摖5籈 o焿?酖,窟嬽 +茛媶,Z煰鳵b蕑隱碤p心# i裡$_址h 熦4嘍|q*怪\v1盵~F旇圑z從V1Fh竂毗舙0$Q'y楎礃⑨c跨包莮唀侗E憡4g灚鵖勘[䓖识(⑨c忰^攈柮胫⑨c#䴖愦㘚篆j8㈧v2眴谉疓*>w?蹼[8㈧,dc躯燒z_靟忼篆ZZ.G2c|蹰F3胫\ 摚痠胙龓?绶9篆Z3E缕_:蟘|蹰弿鵰消但3E豖绳㖞忹疜龓矿?齴胀- m!'?钣弊䏝燐痁訯p2F尶筘?齴専笤?齴症媻芖4笤⺄嘑^覒胫']幤W*蟘|蹊OO痁糛ac,枞y戻蹰控藦跚蹼Z枊厡熿d灖胍?绌V.2睏䏝憧齴C憧齴注媮4U1控=O篆jN( #E_餆/*蟂|蹼W8㈧,e ?绌?FR痁碤v#(h:蘱^溭J岔驨A娪ア郿b痠忼驻筵胫\f@裈薱|蹰盨䏝燐痁詼Qv2埞^餆/*蟁??齴肘( 'E\q1熦?瀵;篆zZ.缕G"蟘|蹊:(炃胫\V2?盙?飨^忟Q=狂晓絢袳缕A裌䓖銦齴C飶lQE莄h唪胄t@宸蹼b.1?飨^儮G痆Qp睉龐M狂晓4锜麴飶l袳缕?/?裣4璀赼|终\V1?柏鯓~_齴C 缦莐n.1D=D?钼欭7i醐(竓aN?z刽鎻靬绀x鸁瓠蔤.#i2d蟫M7&n?讨Qq孛]莭煗J滜(繊nR裵0螐7Jo<Y隱碽媼CS諸@i崲#}s[魯\}磠,槵 L忍囵+挨o篽赶!捍 #+.8鼄*嬠v兜U?l湈櫖滥Z鬴{s歾╂U摨 *胱=)梙簪橢f枦Fx詔σE&hg趲逬nis@ KL4工仮洑3L@Q淧筹Fi规屝矦い襄@σ傽 'J''廧'J▇[=*m窑>A]Es +''諦?A]0{Q@倞(((((((((((((((((((((((((((挅JZ(挅JZ(((挅JZ((((挅J)hア(((((((((((((((((((((((((((())h=)JS覑魻1諤鹟?讨3V殖忘鋞捱讨;i崙鮚\y瓉臲汕礦榖b=e|訯`6sK炚u4y偆c柰Fd\M瀐虴 鶵鶄$謼5 慼謤&謤sP奯0P雇 昳<褳c4f珰_9i垷4Tr芤l益珯棶G40,Fyz歘=}hI:f┕鋛瀓Y&u瞷P5归^ (|!] s~ `tb:0鋨:`奐ZQI@ E%碦Q@ E%-RQ@ E%碦Q@ E%-QEQEQEQERRE碦Q@ E%-QEQERRE碦Q@ E%碦RE碦REPEPEPEPEPEPEPE%碦Q@ E%碦Q@ E%碦Q@ E%碦Q@ E%碦RE碦REPEPEPEPEPE碦Q@ E%碦REPEPEPEPEPEPEPEPEPEPEPE碦REPEPEPEPM= :歾驧yBj?澹6珿<翡V指怜#転組c颁鏄9Y%姝滅讷N悭!Q代(膍_)根禸>镩N+悃镽_/橪馁R垘yz滚W銉G 燰)樝鞒紲3醌b蜎Q`葩窓DE?ZC织}墖lR齾 dR騲 c镎?/v厬"Q诈轇{煭_{c慓鰗z(,g)霃茝):g爈跐秊亻╕轏z&?Z玄>邼;9可型騝4(裆5}氃g,肗鎤L~丹4襉)9(鎫擂达gu嚭t饡Y)!4耈g)!5妄瀺O'犳岴顫馯楛驘?顝瘭耈m项d鲩Xa嘤玖溹釉=觭3偶囬?,凤o/+貈9(6+,埋7噴璹|隼鉓>+蝻7辋54迦鏉龤Ц⑻/c1糯繕>療鲄e61鳗?矴Rh 淖劒>鰭逿筐旼>抍隮N湂q癨ph癪&燑%q汐連忴J|唼隫X4f,墿 X7究燄晱璝僌^鐜躍砍?{瘼義饡鶼7郑>G酹訔抠鞀,埋/耉缛呦饡燍?黧璗F溇i痒&0糑筐暈'酴姌疅齤┃ 2.韸,]壸臨w黧覘蜚?_:2冂烊GcE榏v%>*愻'Z據壓龖>薛C寽覽L)⒙鍯)焪鼁 酲oM谡 熼Md]駸jQOl}h皊!.z x篚4燄擼泾=恻旛襪埩X9梑侎-猁恶c阧剸稔}恻蚠=秠蒗幛祳,韧>%#媥縕Q鈁析駘耽篯畒覞.<)肮梒0鴴[批&M拂O鏝m犮me厝剮﨧J|E◣癆7赣ms霘擕:甜!QE儧嚷剰P0-4D:壩 儚鯷黭h関x?3N]2誉yH|轋$Z訟|辐翬?飽:]諃)F沨3骝0張u, 鼪黫G5#, 綶黭ti枺⺋/鰑馹謤0 钥鐒O鳫5#, 鼜@t隨,W酩+@sy?饜j?笃黨剝S~G黭{6xG鰁馴浫窿咴颃⑦?鉏峵N灯<叆躲 骝9岑陖醿?鉑 < 鼜mIR矗M蚺Z﨔鲻ピ胦糈冼t扣簬?誁'黭{>x漢箘u虷+駹k殙颦青品玖k籑 怎PV/ tqE络5獄A|И?佼孮p刮.*甭-魿O'軎敼鳍醩河r癈+R[烦颎u齃C踑mz冂蓩5颗w瓰栺5 恢忺眿5繆8⑨s^k@c葖氡〦薹>馃Vb媴q|ň沬 薮 Q1E骆诘岿h鸮<"繁G酔骆局>匸黫誠昘{+峵? l謼R嬳d舳黭z徛瓜叮/[x飭o靓珳y0峵Tb箒怉|辐仰齞燌鲀o癍? +>趲哀o瘠調?躩杩 +( 滅靓瓱-G靓< #畮:5mLD?魉P诋珡栟j瑷.s1鰄臭4熪:86~Et礃.s僘訧9磳~&濤敞兺劁屪CK@\嫖粇 揀 i縷:侉铓4c朎'躍>O萉p9岑j⺌# zO妁矜燋誳 xW? +wO9癔_@矯忲槊]角6#?醌t ?険綯cт(府`~毭DS泾礌绡J緄G' $u镴}h{S咐鞰頎迉岟?87纯漢痡v8愕 Z(盹M闛LzR兿(<~4盖襾 R鋨4; +Q社鬆c姕g伭際x=sJv#擄@=濑T嬒訋q 鹯I>功@n锵錊'>魳9H銘N銑Pq鞲礉I鎿丠q豵颫B廜9q8a箚zS 靓撏(镣.0)櫯.NiXS繞隢軭b銡Zh4範イaEPEPEPEPEPEPEPIKE%-PQKE%-PQKE%-PR袳QEQEQEQEQEQEQE敶PQKE%-PEPEPEPEPEPEPEPEPEPEPEPIKE%-PEPEPEPEPEPR袳QEQEQEpO;鸕苃'袺謤 Pic襽zR來I臾S;銡\qE槬Fh)蒑莮怎P!h=ǎA弦(>源`荶)讼})r}╆)4`s灤钼q嶮R憡L鈥g'=<笸;t鷍)莰蜽=?樓襽渜屢 rF=u-3H99 RイS硴L>;奻h@'溠撨%韸NA)@鯛Q鳵$郻毠)秒? +qм棢пM^3轸#>z層酬;(8栀䲠 繒=ぼH苅CcplZRN34戇4辿=鄴}iy4虾{S饅喤8duド4衠K繌J@+u 闇S2&濫<觼臚3+&闬jp1r( R憵@乙c夿M H嵋≥栫礘1LQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEp 奪ns广" J)犱PN(纙覔 钎0縕Zn鞖L馌&洘茲@囿豎灻鳏 q'^h鼛輎{sMR +3摐~4Nh'寠L=h詂電J(~敼=)Z&俰?荭U=篵槄=G.y镸`茀\u4鈞敬9隌9鈥~tg謨渜M 搨G鯛R潸褞:G4?溆皅覛2>旑h 膳(滣デ禧=GZQ!嫓ui厢@#工)譄94JH魻S鄣*=)犫\}┴馦Q撋?m埮.)-8/=1@勍;宒 +6恲更=>S斛S篪Rt橹棬魻墙8情Hh" qK呻z 鯛c嚢'癀榔H#Zu笮 >繚-0 sH纏Cu&0@苃䴔荍4鞉; +A訂==i鉁s寔掋鑙Bㄨs酽.A頍J~r{@p)悒J@W{颛敬Bq迼 w/蟎鶳(9〧9礒恍詩Wy-聰 9趣'=804乮荀镮懴4狥(z)BvE 莏R=JM弥J@Uσ鎬zS 昆扰FYwc4 z(妚赒幵磤-%- +((燣(QH)((((((((((((((((((((((((((((((((((((((:hzqJ)S訮Fh碇 +]爵鏉系0 \84僇q酩鈼?/R~T滯郒&%P'QIG&p1杏Cz"N倵橥3w)Fs-8 庍7?辊遴g幋鎜LSza''#欯px%N@8趣V襞A(E4侷`P╲戃 +r=y?"G譀汝sE<绲.i'&恎I簲b鲚N硽I覐zg9 酰橑4灁s籁鈹t#情J爩嘁酂9鐭jPI^Z8闅NZx蹴G龄P躲緃S?酘 砣т烎v1 =%'縥xl7il鈽rE?JvG啵腼歠訋H幙~^詄@霟J愻膳)*GLSw訰u{1藦сK仛b8)~b3歜(OlS8泷鎭併80畗?:P瓉侜无i鄄F鐨許lg篥\g94鑡慖寣靑B砷烰R<`顠}7滚榗'趢锧*{v吃1奟琋=(蕆3蠸緶{滮E( >3H憺iv齣竎苾竧 :b嵻0廿P'狲溢孲{Pp`;Q滝灤2烶(X愕" $SJ栥?>5)迉$<斖迉歸^3F) Q21J PFE +L(翣u +鎹Ы0慖戁)R汬h鳡C &y4竿!婨创敶 +(Q@Q@Q@Q@Q@6@Y鳔RPH啵.?墡sV6酾P((((((((((((((((((((((((4Ph犙HB)7R親]茒O蕣`p嚙zm恉巌4“}(Fi茔歀鎺sL)i鄽r齢)~lwぃsJ罍I儚s@SN9琅!頸迶鳵3迻 wぅ g灁)阨3荍p鳽#炟莦k"溂功!h$鶷m肧胉戻PsL=橘锖潴@隝\{G4黗R佒0=隢艵7秫S夨0蠣'J1@ +n磧8s迎'鉒炦/d珧︾犵块@\`qK)伈q擓S笪9軎撓е潕: 锧 +鈨屻?c于浨0=巭攔8搔儕x:Bu颣酚ヅ-*蹶)爗歅1苄'傑t9廋@#'願JNGN蟴芅Mz#蓖Hdu嗓N嚟H*q#O摾J1憺鎬@{心w垾熕視{h<`R恞隦tz戦廽E ??Zv&摐笕爡闑惝"榲貜聬瀯P瞨@電`nzq顰'8濰?J瞾K郇侵梛憫M +酅魍 T灁鈥P狏?(0@lS侖ほ蜯 殷豏q鈵 栰9鳎挫J=()JPs;R溉物A84泶m心优4/>旔1H愮-歾娱0(鏉C{意L驥F(燽襌袬 钇8EQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE%Q@楽OZudP4Q囱LG 荶p鐘`酰((xjwQL疗ipM(刧歕莦E隟弞P)9(#幋Zn託B<沭wq*|gg$E(($撝攕迉)鎶Usy宐7鉔+?8廧E9湟7徫潙隖0=(繬i膼h弁s苄徸4O4}i胜幋q妑懛焃6勔2恪3老鉐跥jj尠ホ<#妏$眎笭Cdq奲砪璏珐1z`?:漣}*\q顯 轻F?:p钎!塏''4嵋 鎽 幸酯P:駳m8q 8亼伵 芆$P1K8(爡擑鎬w)w +01昆1灵@ 摐E.脤悱71N$m*zR扤1H斃=匥壑\v 奾#)\"榎喞:9V黫wb亞y颕慛4L +PQr*X 籀Y9閄`9S偅奓S韽聴p 秊覕zh<笙*恴鈥>渰R嗼z寋鈦庣繼滣O3>闺J&a又匲^4佑羚4#:⺶噽: +犈4縩1N 6F:*0櫊 庿Zq愢;SH)膧z丂l寶z2奜旝趵抚1(轺y=蜱+龛)滗`僊 瓜慩鳐倩苦i@'Xc詅w>簟x鍋猓 钋"(胻:qJY}r(|z 4恆x阒槆q鑣舂秾w朽wダn灉uだa#♀嵟z奦<詒8U诬佳焃v饃AX鍐 須檾猧湃胍て奪Byはs覑8鶵4R襌(%Q@楻襋@ HN)i(dQE-QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEy饩W(=)獃>b鏌淪1讚@~0{RdzS妍猧槮r 綁#4笭跍鈵滚鞮)蓮Jq$噝:1L雩扖 鑙T&l溿&毀嶡)J +6N 倎y別馌汕"莖J^儕hl渂師_jS 苅脺-0;>寸Q畜H爈緃 d歄;覯=W"{N)軴 A]牅(膛{鏆70牲〡躳iP愒牥=i婪殦b槅錅鋌湧睋覕u亯z幺妚r2y hC鉄鎑m赦 鸕(鎭鑬歏龋 巼螃2$mO穓1騻絵*梜jX NNi!$  +鲤呤寭摓G7'跬0$#鏇憸m#鑙籦渵U霟>x斅x顯莇褮niI鈥 阨zws奪86M:⑶(録%晾(<源倴亝Q@Q@擯袽~--Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@ +endstream +endobj +88 0 obj +<< +/Length 68 +/Filter/FlateDecode +/Name/Im3 +/Type/XObject +/Subtype/Form +/BBox[0 0 2384 3370] +/FormType 1 +/Matrix[1 0 0 1 -36 -212] +/Resources<< +/ProcSet[/PDF/ImageC] +/XObject 89 0 R +>> +>> +stream +x+T032472T0AdNr.W憫供灐)X佬(chjnh╜idaj Rd捪\ +endstream +endobj +89 0 obj +<< +/R7 90 0 R +>> +endobj +90 0 obj +<< +/Subtype/Image +/ColorSpace/DeviceRGB +/Width 716 +/Height 573 +/BitsPerComponent 8 +/Filter/DCTDecode +/Length 89046 +>> +stream +AdobedC +  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY=" + }!1AQa"q2亼#B绷R佯$3br +%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz儎厗噲墛挀敃枟槞殺¥ウЖ┆渤吹斗腹郝媚牌侨墒矣哉肿刭卺忏溴骁栝犟蝮趱鲼 + w!1AQaq"2B憽绷 #3Rbr +$4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz們剠唶垑姃摂晼棙櫄ⅲぅΗī炒刀犯购旅呐魄壬室釉罩棕仝忏溴骁栝牝篝貊鼬 ?鬩护苊?(8<浮;朢J亴6歬萗槩>9:9*.S詆1撒鎬鰃銧9<継脚2I +N }q彲8bU^珞=I* R嚚エ'妍#荂呔h\硂l2轾髢@QL2叢 73覝3仦zZ( +( +( +( +( +a3._,3烴躍3&Y+:廘PB珅)辽帣?螖偱詵龄=厨~磍F 恲~恳 "r葝瘪巼倉旾%H诹pp}戏#瘠$崞X磄wA:聒dSJ7飺n鄍榭憻O蘥癀 邸fVR 儗騷癎鉆s鎔肜?覜/8;3'$0勵B綜錌.rS>滺翆睪t菘s鴅祲uy O)缾-騺'猔rA黍}^潈酱跸鳴 昊[鍾偾螝G孖摰檟珞U縯H 7蜰?茘 囅 GU馥 +亓l|蠃F8螶0 r =9#赢?~Y+鲟民4A朠膍~鞳7栫$c璅牶0(>F:騷忯#  銘劢9A耡9$r}F@膭釓#笥Thr呿凗y爞使$炀鐨~颹潴xq4`钰23盈?向ㄤ  +x轾訜q骉d鼫 縙(農酁9>礇Qv+rs蝾溏熼ptx豶q旭颩2$*7c6靏9旴熅w0<睑P酻]輮N驹惹铪Eaz?]L旃芴1吏謤%7搻1炘~驎:尃K$丯韤g绡鉔贚埱)褛ls6憧S煡+砟I贠訋齣7,7憹$z繚#面F陊|wB:~T駚2N蓑嘕b7豔~X區=y麿鏒籷p躯HН戕Ux砝?痮5v铗酕z泷 +s韩K!蜃搀肓镗妉hò +9/潺~&惇l滭漕睐鄑 晉}襕仦撄~T軖z梶a8q莑謫诏,牔B呭睅'穁4W"N銗:;幋B櫇鬲&妁沭>r枪塙t嬋O旻N 過( " > =瞚醧9?膔瓜粑N + V$$酑碛謤#w*菜 N壬S烜~緯'楟9*紥NrGL珞)T#((OO&wG溁槠 +凗~蛊*岀縗S旴.`Rc.m蝬4夿湺茔恒羽 ((((((((寍驌竌8纍颏?99葝z霟棉銪_#'$o鶁䝼晛X睖抭簾錊$7!W庄"憶z験俐刦炪匬 鄘绶o茡忩=耷dk23麸H蹸椽珸`铢3帪氵9緁b淌珡a胱 + 畃, <実閹hr堂獌=饅Rdn2>G 憔?鏟┸>怛c滜妚6矕,<衠殚貂 h╞8vWs|/N5QEQEQEQE#d)*lp 苅+喪(n=裹樘JF1麯渀S:岼! 8鷼0pr毁-侚~ベ[ /99貊荍PCe芾錙狑轻妌v!T髣脉鶳诲Ggi!壢敷矄勿x<笙9妓咕a懬 :@遯缠粌H>l瑝'酎镃d鴄鼀翳:@HNL+rH蒾40eF名脕8褉:.州疗s想Nb@+6靚.q趱镵羭豼x< 葯u恾?)F<腷T\u陑聱+G朿煍1擙:R *aT鼏?" 讧kl蜪圹(mm忎}6;細s3駟醳衠螩忿e 麏駚娱秕簝娈錽凅g=8A限N=魁to;+#鶓H鼓g2dF3/謤rL.升{t⺄ 區9Ч糸酯亝rU胱=)2 慇rU ?=彲垭@ +|n鈝 g8?^0o捭+u鱿酩a甘瀁l?1;X笄稪qR]綝*藗I漉橥/杳+<~^丛<艕蹔鱝碓 \K;A痖鞪梳F褌8砬鳳).f#楘O黏戋 孖蔟蝌P|纭苲懚91q :徸瑻嶓 侴<緮3d鍘碲哸塺駥詔鄒鎲!ZV 狟 澕幖焈(菤󂟋獩612 +铥S搻枯泓鸓琁,NW' zs眙弙衱Lz趑>鉇俅玚d蔽G肱9ND_3秠1;!~s藨鱶蹉疈 p蓫s驏;⺶!]蹃:9镞坑黨2鄛惜Oz$j浏痁d`燔獂埕殚M@(.蘥痗畜Of |珳m席玺颬X/?/Pwq澙|攲笥hrJ|彁渜"?欩鐣腱x悱2r黴如?$=B * 1%z齷 !錩98郼JR~g` m闊韁3|驮¢轫榔M 媽觚)B惾絀蝵襟H*橸9;?w?8咍噻 貙3該夫?齩JB笹史蘰F钶29銕iI羨劁ɡ聋逳hr忳羏荙篱扅閪m靝x 餳E 驙噻鍤M猅,8< +UVX9$9_!RQ罵w[稯逋),c7&姤@E冨=.T|蟎觜B銶干蹻顕9⺶鵃1r<.{P\ `鏹=O↑x捾/蝡G麸覘J噌rK:6Pjs宺o隝硬;u9XP鋽7<2儴蹴K丈脇x=) ;潃lɡoぺ8L管C懳G隌@*#!r,巗岭旘 u焭na"愮8塍K彉(抒8傀拪j扜*W0iQEQEQEQEQEQEQE]轈"ⅷ膕巠趑隞琄;匱9艷饲l`佑Ga呆\優灴滷牒'f愪摲x趑⺻icVy#鑨閾9觳D嚏 yS庉2)瑸Z爤`=p;I(弜*捤A9襄@摆籄m蘻儝=O=鎼.~柢@$o脙Q鶌岊蹘pQ8>渇剷賅h91铅FG隌)4忩巠b0鴔歨S;谚 8齢w$hW +2B0;q镹_濵QH邕痖@AD8'鎙'座P U!mP扅鸕c9s渱牖秀穁RG咈专噻KEPEPEPEP颽筗鄯>雇4壁Il攐*>擗,賒 伻蕎阍彮e,蕏榔刊lP苫z銉嶧~焵 9蕼t4莼#RU譣臸}F"懙y懚;夗3觜uYV梙迨柶H峡"滆嘬△(d 81徯~t&@蓼渴wu=q)I藭茔r鋚8鷞驫︽伳憒藥Qコ*萗@戫(纁樕7 m }r/謵*捯瓘蛔穉託顝粁1v審_K:<媤'萒2惢穛檫N肀$fg鈖:u丽鞪I;龀r 侓酲澯n憉#<冞ZH濨脂T愌澞宍z𤸾8.︵貔筙`vQ&錕l頱甈盧0Fq +@#!'銓pO^燀蹊X,錦寖顉箝﨓 +捽d灊3幙烰嵵E巐+HD 彅聱襈R靸伌:捈?/1柮签 +W苀p 織J巟倬忧署客芝 +^`脥疸 忬迉$鵜先>鱘廚樓4埩&y:q烰骩3r -橡鲲酽8,2罽r腿殚@评20i翳:c@Q|憯X@聎绉鵰蝰挷8沱,k颚v嵎F3捿=鶢 w鞶穓鍸q瀩磩y嚆黬S调礅pF淝=O8↓鯜 态2w;q錀bJI`侐亼覊d'脨葯>颺sQ$s6譭#遢術坌R?j.~G憪89楃@I V8X鱜c=聟nP宥煜${uκ宆s箠碄艪?78顉~B撌阃鏿噊Lw咓邼杨{8=}◣BX宀zA鶵F╂繧&A?萐bhv嗥國q魶r菞蒳F躶倄缲Ry藘谷袒霝攰橕80熵<流鳏1銬#髋篶?x绥馅*3痪&鉶s浑鄯錗慍& 0#8霢丽鈷d 搨8wU<;哃\声#躽鼹{R#嶐'9([=?介'RR鐡倹@'#№弞~6籱/蚯Nx,$ 9鐼'!廀B8鲷vc戙n@繇强jl + 陏痋?介锧翼庒p儝y理郗=扖沈$ 撓箝LEFI媎63嫌衪⌒bs 9 銇艷範G尷_`兝檑│$娧菙_98#oL恜zH,宜彊Ps聟@睤件=O绊黔13浒宯鵵8鑨?覟筒WfQ(巤鐭繱UG辌&9>йht  >k鄬樨P/[x鰱.O}s炴惙e\m#89䤘郌={(H誏1>P蟸盖=h@3惛卲=G#?砗芏龥泚螻繅黹H '庛#豑x*|鸅嵡齄箩槸淛寣N阈fヤ`/&B5罞廜覘i!U半湌輢Gj6侭`2彉9 "洕筛72p畫:奬朠蔬|崿?缃79m鄀 ^(X蹧*>駆䙌楦薯*护遄wl`泗Cl]凐檘9珞 溧 t稆暦穿Q滣䲠鷱昞臂蒷嶰々((((((((e*W焨櫤u=vY徦颞=H雰症Dx卖I$;z:P蝀猠$`8射;弌n!#qv;Q;扜>(,V7v聯>=?_鏠W`@O遍詆訰A\鶳宩爆H + 徆;LQ盺fb+z絳 +PUY 6pX宑岝籀﹊i蹵Gn==h0{级$(I銦N9狅'蓪*苺爂巟9邭槻镪橇胉鐶錒酇搷瑅蹴戅"琂 畐鯪汧:c渝<殀R3愅St汶僋厒!S'{硝àB&,e_q叙~# =﹋哃矊寪'鑮=絠袶騀 $30鉯埋现,QQ8b狽:g尀槯袶 rzZ(罆!N g號.嵢 @酋帼t杠X錥怉4臆瑒霳汩A`f=駶脤m^G蛉Hb瞔濭糠?(y鴝䥽僃w渘%]r黨劭铩*雴Rr?Q懜*鋬懝虹鼰蕫м!鐁漉?泚赬艙9O螛羢>[m崊z約肤2;&L(S枀汝 +燆q殚M>b簞e +铅 G,q!I7n'/^q鶳*'(|粉蹃衵`鄪V$名泷鲲歚- .萞7(ngJ蘣8;]=r咖zM4壝頏~`阌蕰X;栖$|翮鳓坡H鄀rT駩輖蟦On臾,亀7U皔>烸@y斃N櫎UBq騂G89瓭.>p8雰侴 驂倱暶?犗ozF繵華睝y莬1壚蜃>H欕殚跁戯fo/ '瀤缬8F筆c鄃躏@ } m褌料_/螖2褥T䥽翡`Ld鍂佤靬 Bv91O:琥.窆M叄9 专?覓 躀;鋍盂?蕯y趚o蠠鎕UWy 劝艸9绡甇隞娛#J韾QX觬v DХNNO幙!F派YI狼s螩顯Pp根@愷撹Z6>1&~P?>跨覛缅m両幐銘轷1_(d%S62GQ;鶂q(赭釲E=陷 +l8時胠壣龘苮?JI|鸹A縴F;}?欮鏤涅=H我3趻P父鋫TC{瀒&%杣輰肜眄齅,锹+@~|P壢&)\1i瘲 蟶? 疢0鲮8=h 甯=.;襺尕粮嬜畄辋┕蘪枧|甂ゃ??誱*侼O=>椽Q篊鹀譊G=员温}3娱腴鵕铢-9俗襽r颗 沃'n)A篪羖&pOoO堑#t匁<=鶢澮zs譅1;テxQ帶瀧蹰@ 鐒N?漪_wF 鏳( 幺r. JRH +@?狒膞nb莻=O8;a#t蹁噅U,q1zPHn +梸栗留h|釸<(8玺缈螭宑萠愥Kc殛{P@F 萚g巤彞8%cФy鮎*bNq嫌陒P*釅遠鲩軁}i]婛j2p3鵾 :#顼騲5詬遬佅钻{觻罔:"!蟖跉7晣竎箮A冷鷖(J9q霚w橼v侒,Х酰鉦瓦遨齵~1;庈Q涌緃e_玖庫Q烚呶擄a湽W 緘簌曳;軥蓣U囃鶑cJ X鼱 [侽#c驊虍纟I=?^)W*1繺抮y鸁囚偒鱭0儫&CG夹IV艪<~ ~41O鵫 燊r焇疮圻Tp脔臊)2浌D$w?埀丁讷x9鳡暼亓78它09鄬r)>襮1鑋犻龙sJ渱 Ns齢鬛EQEQEQEQEQEQEE濠mQx齣棵兏0X戯躍虍鎐埋燓( ;鄙,刮?@scF魔.I$`.3軂X瑺剴F#懺v拽Z橦,=s岏嵟cN~c侒 a[# *镟嶰肭#奲蕊濞(烊Q寖蟸q臞c疤頃 痣趩b扰H蹝盟佄h509 +酅#?i鑔s庉}初>2*鐈fv!挨屶鷠j?/+!P<0xN9J惏 +Q[=嬩zv颪@掬笱@滕c9蚶鶒沈麲3巟4左$vr7鵯p+吁撚9遬沃 洓嫒Q=堨=i禧. r鞷r a蹫啐za揹窽uB3區:^r:馠6茒2G夋p8郎黜2H !蓪滃I:s胍袄蘊91谉脧z宒頤NI唍28趵?旽U薱j鍃y稀罓 -PL搗贸@貊гr|L\ #y*AY9蕦箅灋攇o櫠Oo诹 +鹧忬8,ダ膬iRs惜ЛnFw2夺椘A跚nO錒Bvg餇贌擒鏀'$>骺覕靗`(%槓梤鋋y_嚣Ss綹Ef q咟=聰鞞K鮣 楄RsT汢眗O 衔運'v廨yㄢ爯 .=谋0{8名?9?術舁樣8崵雰&阚'驙Wb23|爝)!'兩纭OM+JW嗂FpH閹r@升y臢dL繑艑o宮 瀮廀#>辕楁蘋灉O槓1蝱PM#$綽姱溿憺0絲s)+'铞'q缨殍)dRK蚵Ir羛3老OLsL}(%昮t^On,I2'柿酬幸ど;晛+憤搞走臧W膉w22!A靰8弱鑣謪懼8験1孱览:跸J磰萄a#巼弢g9鎾4鴓;哒}熕0脐辀1琡彔GQ*X遛藽m戏=hR>"朠8 c8镪=閏m;1_傦雕籬?绡_) F6{夌隌 UU孞rq蝵灲縕6>w'=r)抬c# 碛評<蠶笆3鍖 Zk(P钔$,H~#叻鏑琱$悤蘓,x粶琰臾0劭1蝾酎)X60Ihn{~](Y觋膮==迎,%fm:捛8奧$4竌亙軓嶗;聍x2`j%;VV舍旔}s鳵M旾r })[嚇鵻轋?啐j(i嶵?#誁 0(6$w愚墭厴$嵔 嚣鶶妽q蹪Z関'酎b貥*抪?壒n"o,b{甾晙S1閽2K酲m蜁彍躾齲`貥J呫;鐭黏昚硷/栘>z圜y ` +珀{嘘濖/'a9dl^*倾鷞胸芷6M葮8#巠碛譄'"^齓?$柤NM$l20>Za嗩噹疘 +a F鋸煕辋sO據Zd6踣戇螗bA|n繬6彲Ozd] 恷*討硐隓XRr9=i蘗w`?粶瀒~`垁絸?4 +aH湻 Nz灤)_濴痃T嫺l戊鐎9疕浛w算nI`?_zi;暰`21渵唶3勆n䥽迎9 -蜪:{㧟悹标@ ~彷扛炵麸趨]W"v嚣=>揣s)祁_ lP 363=:䲠?@赇*{襚0p]鬂怇帮ObAvx +I/$敷[9 鵒={歴cs60 +尠蟔镠袦3鋑p>紵r)G兏1莨8頌yK9峲懰g眶と摷慕s栂蠷6躰`莢~?憼昙+蜞u顯2`*汤锴B +擎m鼅磰A)愪: ;d(q .y 幙 30x镗螗膎  d捘u[彯I颟轵爬A=4懔-熤0@崅捗.?蘥q>g聀貔爳F襀i9谔Q秀鐨S侺o2湳?:~TJ +捘 d?_聯p,\颢騻2Ns兣&<-虡莖苺&C)4((((((I缴A.p0O#憡PB)9莒v篁"搎Lm3rK駷糳wΒ}.~nX`8飵駠趧'q+恞圬琦S灶vl梿湘=j换2氨6゜T扥#詔渝`p岅p滬匦旤"K1艷n挫失$(蜨Z峝髜)*'幥ˉ +*睮鞅廖?zP彻Y敀[伇厨岏髢竻$焞c撎G;变3隙;觞閹XKci 鼝榱閹鎬`U\#^;NC"哷钗窆*'缨╉课cP痃聽@#\厐寑犁}8翣窝膽)F暼^8=y隡RH?yUSd@891;T枨&a抯跟鍋鮫翘9千FQ0<7溧{q艷覂6^< `0;P喂蟸斞p f轓?A撠s +懁c膧嵼F{烴21@ 踿]旵,溉鶂摄y99缭(谔\渘YG#,渢'烴酦cG=J簻捦 u "墛剹w!=w簭攼3鞞砿Y +7\*zq悀狦玉d'濰H0Kt閹<韽49 壢瀒Q(锍-F98=笸G,汤rW仦;帬p;妤掅梦鋆莌闔'8襞7%Ps弧射g犿袚歞P>rP#辩劂圭帞4摖FOS7g>举,禅 +P0Fs凒舄嶒欅!~\pA<;<鸕禖JH络?徘=\)鰱榔纝:g繺搨0@#腙1U 袮3tc-998|毖s灳)e9篥(f蛄蟐3瞅\踱塟A琊虪.薪}鸔/&p嫻 8=:%9舐爁 +絎冏鬆VeAJ|沊8R7/耷釣)挵|+3 c?堟29d葽s埸馌w(fc U睐墟E驢~u蹚N3齢v蓸 ^0}.寂蜽轾;03咕t鹰_3m9;髉8螶W$鶃W$H紽鹨H羷VU馃筠鱪槱.:{襂翜崠A┫!>`x慇 v.D0dP2<d蜦襂A儚o癀攕p@ N樟蛆顲蓱( 狣,睐}(懨 e:Y鶀(榒0蛭QW 涌Н.X鞘瘛\獣e睐}(扱T㏎妇隌藛澑=;喉惛 垘z髪I%菫蔜(邠趪`H鵓蹐N銵<,H# s忦 泥L潱 衶 宵螓2N縕榰%d钰珞鈥4-眑禪p:癀 +Z0 橧鵄憻蕬i坧豐扵o鍔$滅屙^4{銤X&8R8鄐芋:硙爀筡 z=}i.C/钬Nr蹘黀泘0膢唞.W蓚米螂@9+9Q渵b晘f@NJ嵡' 3 ~?8\撔 L8@J嵒F酦q師=n2Fy窝I飱R醱g9=?: +771打I烒黠A  偺wr>爗g颉y*尮6 r=*偷[$诽A 2庉?*6X/2[%H閺餃 N苲鋨酠e:萷 z;q牤轅(懛炧N錊蕩K|[y蝢咦>b7l[ 斸尢1腹#冏堞p飹@~Tt热鷡t魙#sA骚東倂;a> +( +( +( +( +( +(~鷮稢8?SM晑绶仸+>鈜惛P稠匾y夽尯I椱3蝢q灤!A颛蠉?│鄊fb\:`蕎I澀疮渵6,Y'.纜脼櫱2hK!]吔5崒%H4X<觉+00 +ぐ 昦搞冯MF'pd岮#p<襞FG扐,s偀{縇r*6晪姳+惽dd貅銽拍七!X綶箐{Z&e q澝羄ppy7瑀岾0犮亴{!l 濩0<=蝥訜d1E籦侧蜲_lcvM5"5蕝岰伷pq綼q獭無鹀<錘yr胐憛\绉3冔+4ㄒyi籦d #觼洒 K垐O;涽$y鐰M晴g葿pq忴胪5苈癌%p踃柪f#∠_o鏝4j9袤gh$ s追9朷焵狾髁9Ιye墹,≥灖8s鶡Z睱XG絇釴F=綀苃6F偓v*倄陑z沲鉪Y厰嶧2X{粝6I$椛L鵔p g嘮@,( +繖9%癅膪齢pr轥B;+噻訙QA=c,vI3*;渟$9鏌潵];堏?~鎬h@y,菿e惐瀭偂3>兏齴P@2@潷.@吩酎 勞2笴包泥煆O謤嫬棂*S轼嘤囁亾卨p嚒?>剓yd,y>噶缰め W蒤懾向&lO %H0p3B釯"Q筥埭蓣9T綾<2媳@僬O$跗6y&m+湋芖觻}z珋8^y$胜88; 銖aKEc橨㈨?/5 垌祼曓S彆洔p孕aVFW <鐏炃6桅V劑pq籶?6rO=0~絡@并y`.迕.髰9蝯鷥鳵H~I聭#佨1撾兾z嵓莉呠覝特p}N\O胚9~U4琂\澛M脤}域褡寃脍* 1I'樄Y驴'3俿弩雕蹘QQ9?*x灲Nq抭L騠塡 y`紝錅g>嚗LrA;癦,2m9楦鄪OK嶘澉郼9#肢<y搤?v!I$笞@)辸栁 +窋褟S焍x<罅 v偨憧閷d帻)8,UJ槻q膗笞冸K府坰w\倊亲"梟I 1宄蟦#"岵蹅#鄣 py陒屼42\兑﨨逊8A;亲斸賞伋腚篱DIvG哗鮲齣应7鎻oN螶s,x$l#膻~殙哈h>c4y 79 H殡焴弗E"' "{迎綷J +编鋨]h黯秫( +湤g熆献瘰0躘挧 =y鼚 A8菡綹滖胍2[鴻Wn#p蟔JF忄売謵錋贜K`垓ぼ宮士PO緼躊扻'6$├趱a,蝡z郄鏛v干\-8鳔3$EWpEU,}6_锧 懺g慗@#dL摯 +烓⺄r紥Fr鰻q儔:#轫Jr翑岋$lb∑??茋-寝!GV箕敇贜稷c1獉粭E潮~R03儨鐾/BJ┶醀c?鉓槭1!G枺噻╃炦49)悷6彊弎镒鬆*[>wa謼v狎 (Q霃n(,xVq驆钨n=8?b 荠蹅殃?C鏻zc侽枝╬Wp瘮*爎O^*E莘 焌uQ@Q@Q@Q@Q@Q@2挝亷:儙r 6)箮[#镐齴P@,W6蜲\孯!蹆8韽\JB$7淍*T>ws憫仵︶!lD0逝9='舂>dq煒c-蝠}箅箰騱T/О=v_孑9乩t坥缜镹P|"施9U3幼殈G*嶝 ?紋>h蒡`齫4泈掄茴 +p亵鼹尹″Y0ノ蠖N脤8郤ど缶iN藢绋?é:y[攲験)n=!1 薫p@螸麕jPG贘嶯7v9䶮J嘾厴崴J濈j捒3.7^(^剙?^$J0煋睂焞~F愵1t/宲z岀H (R太彌 D268pPx鷰( 髝蘔819槬H儁謓U稇献?J>lJ)酺> 鄍9酾︺1軂NI蹉疧妁PD(Z7*膼A认^y蟧jv邞 邴^黤兏^C宒瀥4焘ly}Oo咏G"韅'p竛糳缱?匜N$)-螬`00;泱κY<柭鶓n鋝清C彼尠rf寭\蹑慪O #`钋揠衱鸀2侸Xr廅茂*5B%攰D +bp萧?n袢q稻L釃~{q锧Af笸縳x=iA7 勶#=Fwn(\ 廇任2 +cH +搻 彅?|渜6.奷\=8胱?J~`O挞@ 烶3郄鏗瘓廖>P+/n爒区.潋's粋T0`F}z~](睉缉&v%1嘋a辇)职硩\)VMyw=NECw槹$)1BYv湆剌WW懜e`s蹫:忕@咘(l?螶璿U儿侘1釒2滁露褑#绉s5f歽]rIFz'鐘幢+.扑岊E韼 沈>%HV餙~x摄瘾 ,P 2we<29"轎~v1惴#Vwo迯$怞灖{t玺粒蜧.U郭I麋#秢0}狜L慤[nr9<黜蠷m,b.Y櫍輪$ 鋍颃夹*`n7緓靟擁NNR沋?,=蔽:!%醏w9 ?/=>魁n斣嶦1$筁庈褰;馌wn 笭蘅{9鋍滫v穐 {裆权I +撉<绡O铭籁妡,筊齭廚鯛龣B豺#胂O讕凑壴#r浬汕肓枪 A驃癚板瞴滸饭橥>7苎濱'岓脎B哺\m2c 71廘裣礗鐮-箼CG渊9u栗雽t虷嵓F蝃齘y:L(萢籵武}祧窆倐y捂y~T噕OP韾央況 +HU壣愢co`G3鵖佪蝵i鄞尓鷱又溧$8P1傎青A泷*A)?,z腴HP0677q辋M 厰槤頗隙?瞄@QEQEQEQEQEQE G7瀩dL榦渞U0x鄽\韭蝲癅'$|劲戂,V膍窝蝢檐`aG蘌[n1<鷝⺶78艭 =+7 %7' 潱诪鸳瑏媴騁匱弅$鐐) n`|嵜赶覕t_ fU8觞笸)8by蟀`侊魻钰v摶#湠權"悆皢\埨 #'歊邷Kq蟐緷)芈E卽珍@蔤M>Xmt^{鸕燰;B~>`戫霦.繺孑陗搭籟cg3?(6偸5躾撛u*#NTq凗籄,9向眾秖3>`ng'& 膋騷蝥Re谪=z黪爂pm笠}鹲鳴髉v.顫z +M窹慄筺0Q縫;Hx$崑躇 麥樒~<绫靔?!("*J 焬候:烚&%b怂*麃H1親N鐯l 8锷鯛,ep~笺斛S婏如珑%拭=:蕴o# yU莕>滙鞱谔晄竛]泐般.K #  ;?^ 6I1湿|膔(}9鳔舶 8с齤?0镘;稽粱绺}(L峋NN*欪t 簈r2怮p9黿鳙.v濑灬 c 滣獙=膲 +J'$ar0y 澶x#r23駵綦幋%癶<9鵺摳聍0 +揾*軴#秉籖w莰纕1絪)洡Xe吴駫'鶳阙綺萜2 p1爪i('+鱽}1;齤$焣V-椶Ie .9忬臝艎<惸煑屶w⻊餳ja倐8'2z搶{qH皝 怱 麮霂繊9e F8蹸7蹒幗8锱*,角榃'寽q锿B秉ㄘF銧M膩顂请LDo惐l砹芣炯>烵j&6,3咕bGl寫巸犵"岇萩怓 腠渃'恳*∈*p楉莬~'縩 壍rU娻'$z鷱Lu镾 %W!pK6NN}0?茮牿A儝$O'@鉵荮8銥冸澘\訅R勷9=鳖{uq蕄S 你荥<鄐覙梳)灔槦鑡訌聙,H嗜烨 #溧R:茮,Q愲2(橄c優r :r跘鶚};H蝐,6壤<倆巟8Ik哷グ@ 澝诪綇_ZiI嗢囮?1鷱现み濌+聼S韤}*v騅`7,#'璈咹qF漉溷稱( 憭P$t牢G傧雇4+.禄祖'$dx姊I聲+7O竭樯飨Oz99媣嫫9?慄 鎬鍦7p茜擋盂)F炱Gg$1鋑炦嵯'憡rl;1罳訜N渧莏E\斿Is硐~0y4ao卤企衧傈;ARぬv1 =耱冘T(1憸髮u褥:嚟* /馕pG◆, 鵂 I:9P3梭栬pN?*刳Ap幺姞儓裆谅9葅俰Q坉I#o=8ny 銘憥_煖鮰 灘塌钗?戙舄q:垖沺儜入讕;qVc敒蛔兑2q锧\ 0J騾餾JFA!!B璑奢蓇薵憫寏個nC尫c懤4}蠺g'蕐榍T +N聗C儞砸灮H 鶉^3A,pr 渁絆= ',藕8~=7p$ +|透禓翮豫p0q竌絆觞'm +鴇胉zw6-眻cfTOBz懭縻$Vum孈~89PА +ca銯 磢 :鐡@*)UBU记2爌q#8JC廘㥮/%$鐹c@,y`:eTy>鼁幋囩6`3徣殼aZ晋玉葈8=(籜*懨w苽劧!扇n厩縹迶妸cx=I9犵鱈Sk噡q鞞 +oPn{狅N>u鞘軳z绛7b鶐 `珡櫧{`訄$) o晩嵼堇斛襩rO=z歖朢}鸔俻崆' Ps攂0y殪? +|/*3溜惜4籃$]絶玪]菃 h垒悹熷齣)Y梹= +]窵渝麅鼛)搏m}妱7$鹋BQ:mW2皿cq粑y琊*圑_4g憹9晾荺濷\襽FBbF3法'榍6*钊n(茂 +,皡'j9(枚^G< MI\碼賉3>炬/8旴艕r_ 樵x\c=$m+yR滍^#rr:鷞P饮茚YW1宑兿=鑿w橃辮鳇䥽|rzUT紛9bGeF 悆茑裎込T袧栰厴 wO鱍髿K議-X┶H1畆;駥p8 +抷#30鬲s聦[冎 v +橽樨騤X翯#5+恲?xⅴgE$ag 嘤m]阔熂x<>哚U 佝a>l侐g胡_~E-*)夋崵bT+0rr炃璖E"U,I驉X灓帑6聙'Er凛6 +HP33掞Y`粰檰: g谣甭@ 盩觖狱舄眔i$檭n萜_*居寀黹顯 剑bf溜衫惝?1`躎 饶.F8任' H抋愴塻络羿jlsM狼蠕餑S'DcgX#$ye1呻頖 +ei/蛦b岨鼶T袷C昢\扞\熾侕镹\,湊CFr1阻h瑂濕澺疤Bp8镨z +tR鍈鎙6v廄瀦8M#'x 巖pq盈Of媟`m'n#佦腴行b}摇俷'9雭蟸sK16F袧98顊灊})鄝d :褡■纋們衦}ML檈嵺耜 里朐RU7"霃<懆朓7T 3侕?*透#,P怈閷鬁=hGS睴碿胥=0;蒩]踌f0r呻鶀8惧~吋畒9>烓帙[弤繮3纒(} n?A熼C$粯嵞oP7rH飦䏝z諊郖|爭逴~zG.q熙1灍犻鯛 +鶓 c轅揽\q衧鎹跕蚀y|迩A清蟴癅螩鄃穋彉8鋥S 鬐罹灳澫$+M伫咶1狼a讕靖=Y钵,A悵膅柄箜1颩xy'滎|=y霘a墬n_=1岨 攇i鍲9畇袕缜樁b<n纭理灴Jfd鶊藀;覞纥蔣_p9#佔肯鏎"(艛3y>彠SH屔0$)d?湂9:m%熖o粌幙*距潋q坠膿樜9c李q{c萓倳#afS鑣琊=iV8槳鉽胏巣u傈E4E6疖湺x丽蕊魻*碣禈.鲕3烻鵀)x1綌愀缬擊uX腮穖g鋞#в逕匵 r竎惈'熓捆 l#笥鷔)豓1礔1绢s颒 锹*60膌fm胔v閬3揁伤O2呦4咽`?籰=Fx黨俫+釤鏙临捓s零熐左哫喠7/\ 3穚蹻綱U 'n |04m彬*籍 ={兏仠錡#兦?O蕘渙蝰1 +pI8锴!?(~G乥1撚炤{R珸柶1昞7蛺?J +V 8谲 zPp\搾 趐刻gw(荽l}峄狑鼌 v9,1#敉4湋>b2:J\v钶#'ws3屢唋  e l庅hp朷槺)竊恜s@ 憫卍 dp:勤樄,伔糽t8证p靭簵@瀦pp:d D罆 pp:彲逘I礲嬒p&v垓翳:sqO朶聫!4筤 A鼏inB蠖[`澷鲭許`c蘕蔼脪焤z䏝P罈U 頼紟уc♀1鄸fX濬眼鑪~茨F|0ごえ89硐9脃汙#t槐鱹:r:抂 鳱;濭佞 +|佃籶Y簌u>,VI2嬑?\襫1蜏忥u鋜(楣_x避溺貃酏MMU幷圖;溷*@#<鷮P袳QEQEQEQE0靨仠r:歁-戊奝0鋮#桋檨`{愀AX摉lZh@珕耺朴滛轫NE +|9n庌迶苕|};P榙棋恴鱯;p_RiH膵驏'$1Mx俔及;I4p╗k 勩s~g疛s鹈n餃騴侢!U貣\{8媵0 rs柱8U 娩/溣Ce 伹 幗AT9摄<燄a (~]钳緄J俋矢佑g昺瓥轷だ +樒ZS)崈鍾)鐜鎭屼+|$绁 懒寞3s(!H鋥{鳕$\"訕槥=鷖芋┤#k胓=泉騾斸㩳撳蜛伴荖縙p( +EN#憦+$榍#敾.謲嶡'c刧穅q躍XnQ29仃絋 =~H +8Q蚬!c譸#6+栚p>L廇鷞該刦 嵺零x镫膝60蹣rGP鼳黎1帶Km悞y斻溹 ~%碸bIB揋惀壾瞄讙 缍j5g墁$獀6@$辋摄臃S臒&N#.過誅矸<"8n伫{徸煣JQ,屘wm l嗣vm=;w5,蚿绎0皪晈彅c 苮蟔CP:瘨憏l抳9攘#绠;u┉曓|8A;肴== 8秳麑黉瀺锶n漅簮弟J窫6祉 y&2w Q亴~c冯T鞾绻瀄+1ll-珒鬃'(鈒f,鍕2W侶t銦za蚓c,琘硶W蒕寪q攘─UC'樐熭蟔Q已4a袰粡a蝱~^"蟫Yg=G朓<渻扝=*蕀9;寴C蟛鼫7w#訳;e_ 棐@蘐 rq濰鷥W鉘0YU辫3評煃C~Cm價$m8窥䲠鬊"P燘楻29鷗e掾GFeY[漉8A碇*羈[yC渄搩$]$6qe蒡#辋zUu2  t锿=A担羈r')c8釂0y 萧叞XV罵臏幺哉咓〧 ,醼零р璍I闒zv(s箇厣$搹疦個 嵼6頢嶧I沭彞,S鵮P┴HfW疯>2HI_ +眒千s".墳;胍 +犼抸c廝3灍>!Q G8轼鶌`dV 昹w幥骨q層%定M粊郒鐘J 筹n=钳\掖a/柅筽= 髒w苢灵芜犌_/渨嗒劻Su认鍙Z扵R@匜_瘭J奒c: +:蝘傛7ww 穙v巰u锵颫F緂烁"鱪x9"戼 濦=齭籁eq"獟A飶o┿犫$FifP?(萬鮷鶷`缣骩xF 蹉峰@偯軳F}9鳔;凟唜苢鵳?屓≤4,Ae軤g :f鄬蔮p蔬+_狋鳡 A 嵐邞 {綦稌欤 軁汶慤 郎* 蝾)'<僊K冩aa9!W鷊?J絸YX瑇9郑-(烩 )煕讙j毴0T'nF烴i鈞妼糎 "鋷9c@9頗s愗 +:_<QIz阌殥7X惹藟 МF{斷v憹F +寧縇擁@掋hnJ8'<蹶3镹1穠1}y瞎求槊d9es咯Β|析(x孕ぁ倇'鶶ぢ⒊宦紩翘}笤 +橦.N:鹻鳔6X踙BxP{}(D躓1硭_\g冖󻽉9?1剛G$偮v呃 u鈨虔iz鉂捁'x織)懭澨硖幠~t `l瑁 +舿紇 俉9T*x琰彮m3pC}?ぐ升珩情镲I磀/蓽:s@纝/#3狱)榬>R束dd齪x飿菒NI|霋x>b愪褤揉q嶢鈥 官龄袢戸琦觗l柠p覨6儗|欪妅#艼F]FF>n灌2鍨 鵫 7岣羧>逌辤懓鋪妻命鶷j艠!dog鎙筮◣燔a|n9'撟綣堞.6騬Fz炣r{鰻/$d*D q +H<繾"瓞艜p犵#儌Zpsn>艑蜾濶:佣F:p(莙8鯛纮灎)贆壚螻恳歐噬A嶟 9鲱9?:c鴕贤#Gn橀B卵*IC怤3胄倅1╡W y99觯 甥蜙藇z赧4貍*勩忊n潏香R邦荞幙馅 蘒攏a髳 +渟亼唏冂]徃?QS0愴縜 欤躷彞9釨U婎wS崰t苢柞]實垏鐍嫂c'罟%窀窭蟕q专npL@侤沽莮紆>7疗~@H芮玤>範 á((((ipI鋚x0$ uh~遻ㄩMq駵d{髪E?.霩9齮*;咶p渷幝溂L苗 y長 圷p舜<穦齢舠碻盕毋灵蹚皿算m矍=驝|7陀兤=弦憄Y#╅贼>`堝2u!壿彠鳵-眬擄`伹釭4則98>>燓猈夯蝧嵓c隌 諽'#:;U垞9^O|R)$蠲餏Х汶J嬺 嵜$'煰Zv茱_黋豸燿攎 #=>礈澀翠`穙_zxq磻罪u4v#済垮跀彉6rs罓d昩0y镮磩繽簙P驚8RU8纎珉Ud錮墀p缭{s辇*觻錘2J鋼蹱~-宕臢F頬=衿y9EFy扚]乊C笽?¢颪8V扪熠6\S橄鎗5s?,崰鶓s饔更彿ozFTT"4WUd`s紌`q建?#騎'?輓a$bTl闔b3囯U皎\3aBm,T>厣妤'[*Nr:0Np(蚔栆9F*宮+流 潱p比屢]螣濌岚1<`峈kK]闏肺艃#徦W\譆a#袏=]|哎悙羠1?蟴G0y蕚橈藦蘒籜斆 h刃#j)n扜?)掗+撑)赺*9 z~*Y埝Z0aQ驊蝱^(褢膭驹\dA8熋4fH+斎#+抓V,<鵱*\}?璍0/ 肪;O/偫辄^繀? e_ 蔓z彪嶫a|艐#j侳@垠玊J8P 7q堍﹀呖錠H  x 鳘s掦楴緁1绡J峑C扠飢轱熐璉8\)|鵾猗刵]鹍跔胐sU潽 瓼S鑘%:/T蹒4)AL*3饭蹒覙HY焎 無_酛P喑r蕶$搧炟(鸅 '9車痮_n=E5繳'吚`繖憧oj尗+撐v鐀8#訉渵攪y 怷11唠y弉柱普'$d`K纁=峡;觸鎉#n釱+Hv6栁;烵篚@e;|剧%A欗4荗/恧悌'黏r}6:笄溞j,d硢萴酃額儳鈏Lq塄琗a 嶽镽H牜 笽P:咳鶵48f,讇1格粑>濪[鳜l郞=庇2.[p=s惜衵O澈锩牢X$) +葖膏9'唠组W;綟`辆1胼表䙌黉竎皳髇 [蹉攻i7m]蓑 zc)鄂翘胗庍Zf_bT儛莵芋527楾d衯黫扰晿7=0?齮仲H蘁yQ3豤恳#/曮H袯邻9樵覣蘡|觊0#搦绋c)L(陷 q曹7栺輶豛9鄓黨F!鍐 C|▌t粛堆*0莍8薮V腝仚 臑剪9g 抆B1訝飱tRnC+ Sd 焈_z滅w!=鞺-漹2鱳*攷 +rВ毋.!聫篠'誎笐$鹎錺{裰潠 9'儨 cち$甥g@s巗4噃|%(斛覵鳑s碟)%wz撓(l亞#鳾煒趿L賀7菳$9鍤-ˊ轎9:跚鏏"午3!9_Q辄:悅爜擎?蟡?67鶑萧 +q0瓮頃b醛撴2s澫倂鐎9?/9老$嵏 2=齷6抪罥繼A|g雽cC侴捋鐡觾>淨焥紇(洈eq)\弆烲鳡︱Wq窝a蜰8(9f,8!Ks8篻M凇qS"錊鲜da#焈烙&蒙蜪#鲟搶z 蛟m棿19<荖(葌U忴~T<穜}齮Q.郎(淩0獎瀙}@黨綳h婍f灸NpX!龄m嶦! )- 1f件え港翘2~a慎A<辨I紃帼襾酼蛩怉 +冱籖v,Oi>]睙凤$駨亱#vd绂iJX蚂8稟寀めI(1?海熑鉃v稔 8腔巧g@剣'$g灅f  铢?螶v@L潤岝 +?齌l_1皂脤砬_RJP乀燯 +T卓蟆@R*寣瀞轱迱蚬+熀N蕨*F脽恍溞$%"]%u8]莯;8ˊT#濕?u裥'座S頕[o +U}G c鷉⑤鲢<順't辁Jpu?tm篾鍡錸幼甇"8R瞞G懛mRq北暑绌鞰躊1f谌B壤t樽奬H芃睇d卆袃飶J"馘颬卌$ 潽z岀]*t3,9#絮>H 瑗0ta戃<襀c糯`2s捈悒霩鐭z笉憘r嗣``g鷰$e ],s屼泸香RPMnbA:樴朡柫8盹䙌h&罆8b烁O<鄴qQ潬!s"頬!=r}镠菢臱;F#8\躵z灁P儉樸柪{燄鞞wy瓳蹫髮绉N攮G.8eI|蝷寬;愰R!懏榣; 惘險鐟VV菞愁鶃W儊褥s殚襽Yu 褦哗 :t螸箨+P钽胛}+"$L臇纈pA胗鬃峕庛 +烷#?=檬堘X酁煒虋蟰/4蛔a∠#箅鶸2琫贓<9< q渇-班:娂W?)黿脎^塛nB(Fa聦gozt蜭蟐<駧鏈N蘮(_$ 濷> +`竃枢鯚濑f潉1蹠dq灆N褡=汝{熉J,嵒兵鸖銹7辉A1眽1虍薷<鎳褿鼑貊Р鞭 射>烰3籬f1陵{灲*k嵙 绕0y?欓H失q丘帲广鐨s/掎聛8q伞唚 P 9煭KT釠怺1彔= 08SW熂献歯碣!塨孤cr穃R`$Jd撚雭酯.p2T3(羚A?绲 怹Ld 禬湪 弒镛彊钵%笊LzS@U"|ズ鸺濭刊ˉ`鋾 /~焫ɡ鎿.ホ熃蝮#m躈东钿n闍#仨Ks.压X澙飞髚爚漣0v:跞郹sZ昿l籟亙華躢扎{R┴<鉰濜?纫.茓?焕b!; 繃lQ綀*罧鋙绨瀢 +摓A礼L7gq壬;䴙銉R硁,NFXr0樸w蛝蓽窼笘c?聙盠H魣c卂R驰迎燪澚C駬虅~娇OJ6菁0,2螛|较>磧x蹃祱!@*/8鲡%垵9虅e9 睑8┆w樤駚虅熕?N +弛((((>>Q曞溉)熙霂zt9廴頍聡佰亮? +b@Sr亸棫\}G^嶘R麍9鲰4豢zp呜*4`⑷Y婎'O馉 鍊U霴託];w 犓|囒п/尠X鄿隞3|憙宮槷Ga1飶JE*"澕3懽廭1Hq迦垛I88<l<`灱PL`灱㥮齴\悕薳O'o'蕷C,r|罡冿跖I萷~c憦a@聃l槔9)牆潷嶽_奟籘}+蟐M)\铄綼幗>'x鄝8鷡_錙7橀酢A;X:f 铍迉*J@|*8:3*t?\u;覫m倨7苧;4 gp V2 髚瘨}n過E0伕 +7仙v?C齴藹蘥掇銥)釗b銜$烒&飧A暑 玤擄怚跤yo晽q 仠卆偹渢4膇v錝2;坮Aa v+襄臝饰$q寣鄍1冸镼B 搇m鱄r0縴N;c戂5%廛0)u9\酂榙`pzr-0纻 湌Cдk,鵱V暦箚8韥閂h彠?{=轸$c苰蔂 +>a$ ,x䶮6U*∶鉯郼n{寀98Жp猌9僺嵌Ni +簄c菢K.F1鏎 酛矷驋 鐝诗炔M:m葎c鴷['?=*$迅`熙fP<肢被撳\鐉| 0?Q与@C t柯JN*腒 8 籹╅球隤怺e(我2 ?追ri酚6鐪,鐬G鎨粝\PW蟪%7鏸,燾扎z|v4貜"p8蟗23鞶粮v?+FF逌93許檖橮"|F靷A_系X芡拎燉[銘趻4]亜qv訙瀓+f轓塡d珪'遫st簶~x蒷g卓魻 P堁%A-'鼩G`ZC碿nz鄿g覝0$&s寱泗vra3谞r焧潱.寸迤3蟴rw:烒r4ㄛ `(廧$\9tq〩9ㄍB閱惍呋?^傀簁)摹v(_O片Q蟌f@6=H“w湩蛢88)兎┿(bW1鸀趄*s徑0K鐟*E窝滅=帳$ hp@c暳 篪T碢r沋8$犁徶愢p-碿{耠J蜬a[+黅n8}韮鎬?.Tv;璒@]Y罵梯o箅MYJ#撈Z&蝦罀I銘師襽0荼庇h*2GPM签醌UVR仂^?3@6!X絷睨?绲F咵mポ貙 凃隦萐_'归妸LZM猶礝27~煭$丵蔑1DX-莀9\<潱dlv>訧|高 艍 Pzq .J爳3渢鉆 @#.<踖C7:"俈S#|"##逎>C a媟@坈=楂+Rs得頶$跚狲Pf(2茮v#榳帻?: 顚d懶e蒨O_篝<蠾澅銇詿]Mnd朗L珣嶌 9嚣挪rI=N)brA馄 +?想J7|牀鏷鏾熓)8X鏾轚銣Grv亴恦 囖<v8嗛#疨Z@9. 荅e阹哮渣 灍齨蚧ClP +φ3橀B +爉P嬺g䴘?*U 釒?9!?LQ亐w%[縪o/%Nd呭z 哥幙Nt#cp\(蟘腠鳵 菎莌\yd鷬,pyaJ憫麲:v-禌-潤餮餆瞄K捘孒睘泿88壤乡J7J卹r@蕮蟹')ぐnWc 'J赍@nFX#蕖 +睪嶃qq289鋊*i秷鍪DゅI8烯臖W鲊,d彁麕2碛砖隌晳*`灙:v滕H2F~丨~l搹@1劢8蚊0゛尡懴8У#.睍">Wv;夣#驙凅,,犪A躿u=id`6崕`#巣症巳稆I聉^濜丬淤櫍母N7?l2绉酟rLc蕩}: 吻8躻膈稆Sv鍄愀9巖7 >V亲啁襽辦1另戏Q侢嵈q聮仡=殄撏G>W?o迍碁櫲#n}:槀vO鞶/$憜萦'櫂(=q罓(:湚ZE;炂杸 +( +d泇靋oQOěm扏寣瓱淃2髱/琰馦S蝎o~S轉酊忩(<)h/>Sz釓4洉O煋岇~氰s鞞陧鳬?uㄩ煢j棘F8Q岛钕輆侂恾鐎3崫绪C咙j皆筨rE$憦橬:z]変)轆A貔:T)Xn"0髵攘隽ㄝ儳湭喇騁鋗碓寏-賽J!焋be9 +}斒!垻#$琊珧 +逃r$4'斛鐨訝氹 +駷璃S\ 󏍔磻腸;&蔱V8倾豏8?iCc颽P缈~#萈釱髴燇症i蹚5賸날鐚蹯3顯 5>VW蘛寀霨a冇煣c纱扤%rp:斛U莡v +罒擧熼Q$w]$;`?蟡Ie巭S$鄰辁Vu2瘸;r>槠I窘嚠9沥曂彰)h(%墬ㄎ嗉忬1WA*豓u'=$ 3岓顷s=h匱斆BQpl刣c堽|zUk肾傻w&掌砬# z6{z睁gE+.p宋0s螻繂k"S棏A`H9pq+颖辖]劗蠘乔A#t绫徢溦>LM禕枉匙陒6{ 鐇]現蝧嫌z|缢,!!NGQ鬆摵V茌4齤x梛羝&籸癪啃U搶mU閹: +p 並Lc t1螹8)剴F 6?系7_篪P瑷胣 1讘唀 79GZ挌p靭Sw 兎︶鵸隒m顂鶳nAgBI 倆鼸J u戏 烯岼銆8}Q@(kt'>攕z子G O\&0闠aq灩>煣c隌 +sG蘋~p?#㤘K(,仫) 鍹孫n6徱?檺dr7憦蕗,說脫儌鏽W泳膝X# 姮@c陵v0_篝藻@E#*蕶=鸕1 +b w酴瑇C&X瀡Ё4廑塮 9棦銋黨8夠娽vs!?齴O1#竱12 ?!F9吏鲫i]X9bpp<莢屏貴;烏ī(x) +=籔^!#厪 n3鵖N<狸蹕藑過熺麜GVwxA緇裱G"靦 癴\/葆@4J G匯NGq=)隼嶈V 豤磂身湏毹c"H@)1!檫&&Y姃 E绡酅檦帳|雠!P3凲寫z z慒丯z#蝃燇2g蛱幁撨趢勎qz?'p!懊!rI幗〨Q愜噻 ;揌$"縩虧g眶 胳c潽q;徯襹瓰c>a\狛:禕鮑鄵绛+鶂菪:#捀摺鶐z廰祝>f胓绷釓p?^魨嵞;p8瑁=席~>O穛宒c邹芾祁J3?.;馢 \酀嬝鷙t;c 寠N>Q驎苝>U}Ih矔褞毗伓鋍亷I旸2腰$堂$;ztкpVM蹤y\糤s鲝jF嵰=!楓k&瀁呼惘篆 鱈r>R+)滫z楼!p臓( +(醧納澉颱?糱B,`p述R8=炅P ??n潃貊鎬嗼塢H六煱碎>猷;器顊镮v鋍![o#蟸皿囔z#銮s瓓C憛V;7儔$9=1C侹#虹熱i_衹?>箥 +臸6Dg羔F;;鳙 0蓧秨靍b?系O8_1x8鏾峰妶癥WvcàfC$~课1球)+豵阁鞒渰淪f!\皁-G遱渷韫銡矱G &%2v嶯=闖(((`d畱遧;壻憸R~G^蜜& +翯*@=>b?苺渄恜q缨煒| 88鎽築H鶅`n8'?5'I6u哏3腁$p爜蹮a鞬蓃洘88%x突9廖O<边`鄠屠象4填RSq嶣糸RLYP;嘜L褾O*扤F~旈rNA鎬3窅A申s逎ME夣>搓(*让;l88j猏涑g{" . +)镒燆(7n刮颀主鮾鞘 嵀碿朜鑮莏^2莌 鹺H8茂搞?I箶9f(柞鈥.[泎徍尿Gj-袛U邼脨軀G5q渟亖Y+椺c 牙袅M$(M +r6犩宑伐ejw扠2H轠秠#9MjJ幜v<篙 夕Fy&/d2]'g#O縚蕗7簇葕礮4^q<狰謲f>g尦默W.编 >q+J +c癓38T鸀溣楫 F趐剜84Q 颭#,3棒rjヲ7&苧漤#'倾S礈颬剷p紥8<8 ;湡N銾身貫 +205赾Fz溧?齭須嗧輈$9$ 趓FH?闵>斧劋_.)b>\6;u扫&L苁),櫢 c#炪P郦陋嶨$99#=q<槺a潝Q惒g迗槚i7帛$*愠S鳸y畐1`纴蠕罾l髱=q淧d焤捓HX nL憪Fl篪;U!H 6逦12_тzT蚬P艶, >1冇灒蛳譄 徊瀃'啃P堒"+7w?.孒沔 `g鐿^濌v鵘 +駮T :zE_#* d|繂8(慲賯p鄮胶T-#?/zb皤@脜蔹彞7n*>=tou蹨嗕9洊6w善ztgx路yl翮伕惪98覑闁\姆p9鉅珏9岟`=}凯4崳q堐淩鯌k`9茔阌緡駹.Xe@ A麌詿_jn坡淗0>PF8娠廅2澚X0贗bD剬v鮎\%蘡咖坑)s<(`#唛K懣柷A訌謤 萛ne蕪涙S衐若硪時# ㄤ<:w齮牫1羇茹鮫B=~`@术c鑮?聙v塑疢c酂槦Z\鞞N尜艻?6擗苨秫压恷翗輥朽d貅?У#0寭冤9 +Hwn紤WQ&纖P酇 濄g'懬zC埫"匹@w y郧j騉粊'$愎臘#<J螽F= q}麁H皩rxE=区諐 .铌/C麺莮莨酲T笖\J蠉「A? 巹翳*@艶誨么n1祒<糸\2S }Oざ$劀a 'P>Л&wm8m颗莨隟\岼憹*怍蔂%轂69&0缅g钅銧雯C峑1糶1巗#2罔>驹茐[pt渱鹹*皮9 2豟銖);(筅#韇4矽v陕H驻鶗(]繿}茸喳袂閹M盭蠔Q餔n'珐>艋c憆溒喔BH26y脎黨Kf輶箃< 貁瀦諍7蠂t;儏q顉~渇QEQEQE5N岣1*軍@笉肼颃M5裤茴=W0綬y;姛篐9鋡緔] +莺\>v溧c勦t'渜P(X烨 .89Z( +( +蝦飈F0#瀲誒貢RB pz- f(岆x麙{螾郿寿#撳哈,擏4#uU66釉=鞤嫹F$pP绋=Z偫?<6挔\@8蘾8]谩>*螉V敀挋A愴耤<擔藷QS|>l蜟*@'=z徥珼櫍'v#w烒 纟c%L埻斻璦ZB砠F尛鬄O'9鋨?5v钺й橠*昌莛匿v#鹕娅[彺_炒e稹0X&\腴>户睰#糀|轿襃#1峎臂鯰dU緈ょn{U)抈(s磍9藇襄歎;唒G訮鉹2鷮uW悁渆'q增=G^?*峇圵P胻g瀯絠d!妧獁.蛄蕦亷}GJ咶叩$f=蕿Gl8H姍浬苓z0W濧鷔郓*rCyq橩惸`幺FG(褩)觨穇_ 詻"莞喑7躤懥绉' f羊鋠湋渱S舄砾甔$粝如8=亢i徒;簙橏)pO@1戴茿靭Q匦皤I噤%3箱Oo^$ gs磂X 鷗隨衁6躴驌鲌煡d漱l迳q桦镶=J械g5莨 s苶GA: f抄F BYH v$幼癍908黼趢#C騻ca8QI>鐨(呹n垣扷@ g ;v<6審犰酎蚒`@ +g~'5d 毃彅礋`[1維竊A 羿紌欣別b虡`I8I⺄駥{2}蠫臀@?諐*g 伕>FFy#侙 +嵸U戼Fw颁/v鷵覞.wnb摹9韥尪?AM I*Kgo(損d%宎B銀繭[誐`臮梡繰B蓙冚劭覒@蚱>SB1钻{zR 瑎0闗8闓B琰麁2醪rwd1?|鋶8*懎q葭 +9踢岺/2e彪髹沸T6嶣取┶1钋=盒&- +溷$纔'⿺pzpc>匃>繒Q訖a)#,陑?u搨9O`;煰卾`uGE硐 +瀷吰I 衪8习睐R7u'筈湻/5>j 3灎湆s辱h锣*3/$!1择JcN3扎s硪兊擅(,罣'$繌Z謓╳讹rPE>V + +瓾8 佚h`K喋擅z鴰倹 9谇07L}?:F +_*p澵襞/蕄洚:拕z9樨螠#;鸺I辭_Z0$辱蔌蜛鬝MbN謚##竧潴佡q 籹|蔑F>bx留U$hdu-#寿G?全埮 鋘_\c5YCqB>rp9=> r暒 +1?莫A吴F88]疥^s裊顬粪u舁Q乻(蜰濧#,Gn搋*怘" 3嗃渃sq転(杦(W怉蓮瀲远8摳壁_pw?e褄耦x鎮!6Hq懥窭息専髪N珪| 熌脤Np紮0N颓唍ゾ兎ㄒ*蠲Gt+埔兤x鄲FqK拰X輳8菶<aHP%嶠?蛘环狱鶴泍9?<+盀哏4f躃pw簬快/8塬" c?Pツl《鉲*~忡6z崭)薾a򩗙Llx刼乚?49oA席鳸槞0,$鶊鵴勦q霠 á((宒B爊顪熖酡ByP3艷~荟む耇m;x!N1e无 儫嗥Zod7砣9樯屬呂銋,+霍┠4渀d`{=䝼毧vEQ灓lo衵蹊湍 鵉qOZ%${歬1 +剸鵑#渜抜AY9焦~_jh#dGp阡mm仼衫$ D擜髉y碥酹Y 厍N),爯})詟`溡EP7!L't~g 眍~烏Kp-^~榲黬培苁 鳁闅9%Ae 煏AY睋牵灷?x,W 2]GT<鹈胄7+;崩s9臂危0 突p 更ピtof^:68** 兇3岷鬺綮@(2e麅痳@竳斍$`@%塒秀佈:~ +癛Y7 綢9RFy六O釟&尬瘛;#V8闈沽 驘聙+j3頉rcT铑A跞 <灁*$覮朗臏|в姾%財8l*1雭9q戅错R8VF>Y騋I2 郭H81&5l戇;澤 8帶斧KI啐99##鶸L澙c宺sM懚F妄蠴Z}5BA繇@蕼塤i8蜧\t銧#vvQ骄l輤=蟂鵸鬠苻X.Tf;<燄腼臚7y墠燞艛g 翮 b +E瓮扭梜d络鳘EK楼@(縰={鄰_oi酅0g:砿8艶Or;泸I洪2憤8鹑 +<╙鱝簄躀蜙苲4a峜劰8\r=j8"H浲撳哘另倊繚W瀎斻9t螿肭o鹄. 粊罭胮%y鐡 +杌勃抭廅﹉橞v摶噶#緾邠Z俓|Ж疌T-)7钬嵥)#渞j颹孶s$緾@n#铑?3s锥~攰崿0>酒吚忴F[on䴔<>魻`B 3訋1迉r獃萔8-;沁酯!傢贎繽糋A燆i珡憄樌Q儫2)>]欅YX6W辊<~螠'辱5堒儋>耢|帣ゃq闛睜 +80''擐覍+湵7<B19L'橈迺zS囒苳d@~Q9鄗{f勞!膟苲鐭N斦`B嵣挧O酦 Xr舜侼T徦趢鶃*湠繕゜澶n9n怯妶懝嶴苶#/g畇顯袳!P5l6C#8旕蒖X=汝z0>W=9分忈缥躦屼騷9躹躵vH顉z詰c<(阌迾O60[$邍Z5>g蛽礕_S謤&猻它话?慄*錞湊GS巟*x輩ふm.庘w鐆汤佨t鵘6滮8蠺o櫔搨#F酅'j曍O航O怎 3DiU媯.]0B颃xㄝ挔s議艦幺Ts紜$=8= i懙3/E'咧臰伿嗠驌貃![飷207烝=篚Y埳#8帬{脾p ,B帴彲@#r捘 (m9?(*U穈潬s盈箧泴轰 硳~\3组"6Q伖衫噻腩脰m籌漉 垭⺶悬%79:稬滝泮qHp e彅`鄵剜鍑v矔輪ox鬡=;1嵞宒侴碎闛.A攳蝿黠M蒐淝荧22犁庝PH(T +X惛桔8儛e{瞘 駻 ~UT歉埠睤W挘i@厚僔H蕿>S哸d觖緹忬獞0氠涚鱻T溿#分U誑謷@3筢凔巼粝j碍崿3穫牰C3顁*H(旛,Ns嶊 + )#=痖@6d1<儊魅9$酊 +R蚓l嵜7 +謵0$ +?坤鹯{2瓙P拀W9,=佧銑r"渹?壪?楃H0芻 +镐狾( `つ7 耕驼W韫隟傐:e 托垦}?m!悢蚨 憛厈滛O骢$硛壒嗕垖2>v飨FG橝芚螰3䏝aB嚴 e夠3驢s闪g蓀s鈹帬辖-綽"厮咘bA颌绌=嚣鳕壝<瀎y 蘔懴軦?o>Z 侽_澒稔M_飳6T瀲i热膪予(( 絒~烎欉 + 暟鉔\宀深i嚇領.y赂L~\p1肉溍s怈`r)3婶88鵵FG蘳鶁蔗 ## c咏(帅宋H 懽吖鏀gr@1鴞覱鏿風撊羿Ps*/p疗#?缰2栛9d=?>,熽坭{g麸P钍y'$幐*s4敶寨~|(IF韹HS # 惌闥|z c++e縱%hz8荍&m1;9e@$鈲絨埸擿r橖 o#鴶廕7?憳`胲|\煒RHL勶Fv蚴寭袔E#7钌Iq椂q嵿z崊剩r蕕9#軒XI;w駸旂y銮鳁卡V,I粀类躠;奒,V4悞3邃卋'郦-G) ER7勃瑑$=侯圉>7Iy缣蕿橄rGZ豓颉=TB=z说%紨#蹌1:?嚱\縤スD崅頊崉2O綞jY\铂殄 ;*撒zm1軳艅揼9 +估蹼叩jPMbB錐ON*:; ,卂% 悃^&◥F樖糕5s涌Л,梙繵,<镀碡>rq6q钳9<躞@d7聩v?┇PBf限馗軂樴du辋qEyQ*┧8鏖_|#*(吰庸ON冼\姵;狥"宮宑巹侶且迟鱝=熾@<变躴箢L湈+A癠秴鵻麧座J両恟剪=鷡& +c廭3乡@t|d罘妫z*s懯冏>痾^Ardx8鈹gp愤; 鶳!'鴺1NB偫潬}摭去` a麲*2镢q潸 P栘H-拕皈灌駳嗹% 灋冘1栖6v蜧8硗+n*9^窃4L傲Q聼╅䙌椁绌珂黼莹琾棠秗;3跁T偒髉纔3擏OaB綐d.pz炘2**G'︺Hy^A7琮焅P;H$岝<员湸$齤岒矸w,:貆jH撤'w<驚QE5烝瓭鶊 w銙OO*a +蛡氰3覐1懬'佊彮**9蹍U伷:馌T禓T峥毵求J<弩熇~敠(%鰝I里御异+褑 Q#P誢T+r2r=&侒9!q邷p>)$萆B倮乎8鞮 B |p:裣S頹i箁s7q蹶j 臰9揉傑ゃ蹱鈥TppT<57$名H例W5+)PU蜙-渰 邼W楀業7d3偣 鈥;傘+:^).鎸}P}32zz!胠NGh惗A$扇'<}牋籥I>'s枨扎脾粥 9y鷵該} 紵^AQ鐣a2'}!l -繌~荡刴$t/鱃l毬#痊}3濷?卪Y涉R捭-O鉆颁1幑e'>命魧挭a1\1=楊廎垤Ё釭撄)e额比$便n橔g嫶*@8<籁*2T*HA軭鷘鰻 矞\编帨镠Wa漏慄嚛酏x茳7$哣'軒丽埩锆V漤9贶缑)m燻)埋#慨?5f鎔(]T愮;Tw畘漽歬-滒S致,捻U+冔缍8鶷`r e估OP$.~ 鷞熷d-扞#$貅>o+#=?鮃彌縅1噏镻X +狇'隣 摕沌襞L=4崒`寖1殑缓題.d仐'1态FH哿琰)n胉裎=I@(Q秔z鼪分* q苧烎/歱鍁pr<z覗佰p$'8茿F /昕:#貆泺馌 +巔2?蓊I蚆飚襵⑸狗p誊幚b摑tP$ 隌N嵿扅D鐜且 6傲繺H:c論蘢釂X/荖O鏟"$Jm8g宒廜V\ `|潳岨洨拹褡<搩湏UfDb9lr搧U2 mt擞巎茤p)葙聦q徝谁j))槿脾鵦2) 儉28'済鬃紿針接q衵q证`3鮛R嵯魻);pR, 呧熐坶Nu 鎚跔獱x鼸*pR怉zc<蹉黫儑%忀鼜@贀y,茕聍嚛g覛+传gN:h溾A渙拎庎怬lgㄨi厗I%N 闍閾灖趢.$2w詞T6诽8疙戨荄 ]谾鵴鱓禓=vN燒jjB吺懓q韪珀佞PK儫1A*琸茂M喇2Fr萁*贀x%wgx嬜蓦T媡rI-磫鋪忣鍃'@琅&1亐*0G蓦炰熋姕0鄦廚0 <"聄$3!I螿住'灁q!睗籃@8q腓嵛 &鄍@更颡;4艃,}Id汚ts閾HB⿷ 屚潱=騪繀*巇萁`羼螩羽崙鉢 +E缱>孕y咨b厘s ?聶笽憹腗G!釓0ql靐譳|瀁\冭灅擄@ T擴w(Э[`bt#懴a昵+r89n儫欳鼥 +()嵏绍c\=冂б~W弞UP醕鱫箫B1耸8:0鵣m6:/BZOO髤 9 +缣l)榒+鑨锧 +0e[筓垼 r{匽2m ~旸*葞3,2湀o燊8玍嶾1$箧0聼狋 4QEQE7踱呂琨輝=;R6▇\怈蟔抿+綣師琵;P@ /A鶖黯靭)I𛻥蟖傈iF@ n无侐x=矨?#rp粔民坠(:4纔>宻胍1軨8鲭鵕76q儜:O忾A漤%s燂蚩ws颓+豤麺,稁`沲#)!& 誇>夸話}脧鍤pA-PT5R禜a* 鬡e銦:\*┓柼c课骄"26鰮!InI,儽殮醰$虮蘷Hz囫鲊n黀[i6nJ╈咿忂àm粦<硿m慘g.}:昽聙 辌 w軇eO@靱Q8a赜K鼕s赴蒄8蟄?'穑v憧 +r蹎F'戓[+ed懯m 焮'8祿 6G$鯪~骄骏_靖dに擅铌鲨:q擏毆閵娘趧嗆 羝3頊s@瓴3,6dM :rG檖\)弉妮瞀A==px鱛Z咇&'勧F $诇rE,郌y*匯6喯脒鬆娡YoLBP 嵙櫛嶰犵邾i +教わ亍Lcq鋠f򸷇笯5膗妘A湱射 慀贗贔?球4H琔我X跟}阌阀_:Ld +I壬* 衐繄-.=爊, l_橹$歄8o-@騉>望赂8v8<焎冥砋.煷!>_j.槙,戃灤 +/2襮 +x搧懰dC齠殌$騀5* 綱s 9nI=?n9<:c唿 A篜D潝v8鳙,裐C藪3賧#禛'壣$稲?灊緝珸.Y奉 唌偃8圩Ё^+N=@; 蝢扥焞An紟齵#麺^掺O鮇熥(s甘沉弌擕慗v鶐HL廭紾泫Q苰#&r{⺌{赙䙌┦Hcq闛踉D┢Lg$嫌/w障PW*?N跨奆玵琰齢r筷捐篶>(8蛳蓰壸=2}鶳滭蘁~<7謺A枉利怯>辞鱶灎炪彞8煖蚩 忑:UI 昻儵蟅缵\1;p宻湋想酩 0櫸8\t翕8E圩薧`騵P蜰珏函@i崪1軂锔>翩懜<歌Gg钎8鹉d^煃壠夷秕>O显'o鱺跨酡?郻[灉摀自馌 "擃v2笞*鈵p8n1J#扚N1蟌cmo8'jpz泫l~',面蠸曼郼3O@3J. 鄲>8:熾H{矁絹满忦顯*憦咳躽酾7艸'}9泙V G蛥\d~t呞H P恟Go轱@)稄hV\d滛嚣=;p胿S讈苦&鈞[,跦莮8=#bc芋?,泤 粈FG?篇LB3躷螩灴傇㳠憲醼鋍9l*侽莶y8=@?刃$r9阸膣黺⑽)9怆憻瓽揣鱣kG\t闇徣熞(惹9蝻樨&%攼猉 瀥9珩 瀩W+梔$q內#珀j{亅岚T9鼛=仾ゅz>H+灅鲷盱}h疼倻 6蠣跚#5>顾(伬a廮_潍p桫 舌鐚=xy=>T箓B +鼳鐬煇 $r{濑綼垒岤 >绶覕梙8{秒苕+橙P郺繈嶤>hUoF锵璈rI p?嫹?囼 ?:v_o +>d鵊%煚bH9$戲纭Q嵇Tc沽掳9锎w#鵖ち塺VPH9>幚覺29^珏详狋擶凃R21儉G㎏ 悧PeW,8郣崱壛!O<老炳绡隑挮 {2巹冐峁 nS偸煑+6\;葞蜼5蝯抴w岭昲╢廼蹸g甆 zSTiYT:簡 單顮t鑈徦隌3$钔磑M1渦蹉迦绡*艀s刲;g澢睐*z銕犩韁焩% +o俚dy呄\g$⺄釒嬂8豷倻佣g聍(RT讫:w橡 苄黠2l朙.装<絷您R; C躓湡覈, ;婘-彥聫茢啅鳝渘!婄鋖rGh鳡 +蛻A驱鸸!N6憨 戺>cs訋>輵噜鬢N >X耜s拁揣!濥R迬8f?殳痾URT0R翂o減躯镨=鼉儫綥灉I7o +;9$$芰羘2Gb:/狅塥U澨胿/=航? +Q9'1cB?鐘気度e"FNe愢扊蕩哏殏C4v虮'# GO*C7搯l扊y$HU;N5*蔀驮S(瓭蓪<鄎咏1騱9 +慢{*B 炣巎6伿2怌r?,鳡608蹏熔咟{⺄&P 鐪d廇疢;宩@|漪<缱?Lq扏鼂J淝籶7~饅w繇覝b 熀7JhVa僷W,{vョ蛧 鉶x{}筨c儗渧鶶ノ藜q灩=)皩4渃燁愎渝8崗#Ds99鐅{溷8q邹<蝳椋芷蠲幙蝷[栭老Z莊g湡淛FxQ妯﨨暙)!$+燎fq镲衄uY|偯o8先s攐c;pO斌萤Lj1川 ^勧v缱拂O瞍痌r6眫冼腭a;晿 茯J醳噤vw苺饵<澝#煰輔|奬<薄a囩.q佔v;1廢鳔寕梁vV額 ~楽5 劤@V9n紟繍慎V +核p8<∠殚O禼瑩y乺ぉ礁顂熑耈飏0c媣N2A千穁嶧X愉8$u绌向黯X*( gny?琊婥 +<眬!A9b綁8?齍疿zU萚档O簨签$)倢烶:R&蠐&褹趐G^(`襽藣蜑珳cg岝狻.込2r9纞 A=峂/涛翭`z彲=:t隤I熂瞵r9熺欱k8厍顜玳鶵矒);I拎郛h 掿W鳾唿鏀钋迆徹*b呫麧走慗@荖0s鯛e楊~辋镆摐軳冸睨}1碣喊鳋棼仂}痭霉鶳吲坐 +怊焭F=~~_御P僢A藑笞荭uE硘嬃 g ?$7_鈕阆o獩灈婔_#е$ =緷i/轣r>*&a蹉鵕/A蹽=q荇﹢p3楋頸v0绛F娖Y#y;稖9琦S蘙訦K缮r +s郕暽$[>紆DC仢绍鷱蕗+}79呻凒鲫=id剺觟錭顀瀓谈髖蹗9c9?s酲 O\闺I袬8-羂z聺61'\茹 +W#tl0 9囿鲊锧陨Ah鄒鲜迴头勐鷇z弉 +z:簏蝵*H1嚀䴙鉐vm)挘t鷞Tq Z犓軃骘翥姚l東g攓慧:妔8]蕅=={殘鷣卲 #GQ觜鮇!>qI>^焧{䞍`恞膏d鐪|烻鶓齢y9S豾献H*0*[9=楚许J2;T扅冏呖Fl潯zt#臊逜字 r%观笎x9墅_Jⅱ8蓳j昐鎛泩銈:{臬鄙煑T0 }0x珏昑FHиK渊躑'屼v<1@癜dUO 從{U傔$飶粶'蚔s哣]慅稚8任1縅档ZVU( 萑8$岤螩vA莍;B8$ u;v從)92瓩0蛷 +O;忺SY朜_!媯v0,噻;G獋P﹩ B鄬6恞缲盃>g-8疗q搫㧐堶媽+,娂' n鋖Rz篦徑,R1輰%@荾q忈Qa綰# > s>Z{靍愵焫滭跦鋺蕩淩撴_渱7r!s:'fvL鶢1:髱:(8=i蹋)冲卫嬮71(Rs 笄檹鈕D;c%暏鑩湋 +蹉訸 :(o+6G鱘佀D噝@|翤_0讼_ROd fe览驚+v篝恍塓N檫詾?椀63昫潰`?H装須ta曎Q<6a=嬀}:籯 d1潯憷)鎜+閾隫*%扺騄趣 +漲藈?OJ緻Q@B羭唰i'=緷 J<冢f?x蝡睃/刈劺鐦鹵〩%x;y=槊樫Al寧&欿壥产嵜>敬蓴Nτ刊鉕;|菻蹅89>潖с跁咰.麕1@:SU鼯 9脍蜏 *|909请L勬Y埼7c煚Ч8]扮馌n ,N槛I䲠Z 铧)蛵死胲鹶 +讔遨mP亯!r鹮凌剜獠貐扱儛0鍝 q枋*菷褉瓝您Nk5Ha獉颽老 '齼H#圴\;|獦兆'冓樭單p.堂qㄏPQ!菤勩撗x v鬳麰 +p( 噩2rx80{儊G7實q槛38'= +炚 9 $洍# GQ辽R=筳{喑"`韃88胙嚗U笖舊HuR(L鋺嶰??趏J﹊蜕悅xa8<赢螬頬'粆趋Qgs&N筌珀*e姮qe酖0pH錛骑!H,[呧笄A槔2U"l濬~囉颲;s"#nf^洀箸妸!<4Q澃p:A +j侇颿=3恏A坨2露1霝紷r噊3che饅汴瑛&蹻匲娙阹Ws詭3沕3絩H:矠邫局2賏%轓G炟鄮>旵P锰s尺h苝v鼹t#+勤嗆鷈9绶穓﹡H粦鲏<twmv9*2=??屙K糿唑扥Q肫症M趟8'y$U汱孖鄥S8陒?!a濦朿宷軣隥鋘eNG<憥;*m鋪竴ch +9誦c稰h龞L{杠_緎湈圏煭iA椃F 摫!O~鯖bqTqs熻*>士p =P賴万 倃.OLs妐9\G猫$庎g螭浍`鄊簍=闢y蹇g鵓jG索>蝼=y鲭䎬爒?席n(\醻鱑O笸'FI栎@斛蒲鱭焙宍t謦 da劄0JL裨鬾泫溢驺=W 轸隌 +O鵪佞覽縉'座疦=~熺趩縉熺?嫹W羅 aO鱺骏; 活,軬芬恘鵻摖粝O鏎'鲊渱迿鞨貀鞚嚟=虫7啕谩靓d<份^濷8瘥瀒 彊~蝣訌哧謟廜09*?t=峡O髶@t}:縪zoW;1/疣u鷗鶊rN噊Za89#鐮靐洩忲廲渄麈l+鲹犯ē9菢z煡JI0 uN烸襽!模>S9"]N<撔qR蛺缻躾\赭ㄈm2?A/钌' 疠h舞嚆庍x~t27z $缎289膈㘎Q(蝀笱縉[?w搸齲?)#懤宿|銕Fz淧╜{伾跟p玊樼兤C隬$bm薱 6凕獢潖f缵荇鐑酢\.J疠r#轼泓鎽巬Oo聵Ny=顜闵⒍x 鷴=j筻缨O髝>啽魕"尅bOlg=玧N??雧 + !?*d)#忕R旐,N梦8廕 d.|?秘bX詡86翥@ !U钡$c9鏠叭郎帱<8; +杣饊>樓Nr扜{喯咙鼁蕎q诬韓铧1榕#鍥$豯0_篘釒f忰濦n䴗x笄宺D噆(#搩艫阺陒4d!3巟洎?囼ㄛ駨驶I%沶A$囹y8;FN騭<緌摺臦 +縣P儨潸-y枘nU踢s9lu趋G~礱;堢,H8竤U`惼谐亾輧宑貃!獳 濶鞳縒圀0r噋,啵s9矎Z6倠撩鼱78 缳G>斨"Y7>79+绘?G酦c .o饺?.s岓実審C9朇筜J铪#妻,N) 伛囕l戵濭%彴08雳蟸-逮 庚qMv) 俆嘆= 蓗/X石@扩l`s>厢隞6稆*曑I%I>屒凖a 嗆J9闪陗_pc宥鏡蚔,囝a席zP ≤V36覓&@輧=r;肖aX 悅v檘麲aMEV "慑燶濅r╈8'縕Q檇]闾翷u 齢菿`櫅3唒0騯鸠疁?xZ9錼垗O荀9#`F袷d2鄦A靛 煍鱌R3)墺c毓窷{7,狩"tvo*緆U銿Fr:藷鍛]貱c 4371氆謳 +圀7s虪o|b( +X櫚0H柒噹讱x菧綵K锄?<6r2A黫>`雽黺 + m0螰<熾膻E+<W zO隣P90;>顉﹑賴囙s若譅U転p9*$-髲枯硴牲j覐欜'=AD蒔q;a@忔粩鋵#灴琊惧ufV<鋿蟖垴睚jH蘒1wN纂Q粮D崪eB(腵q3览 :q鞶錇 $﨏鋺1咧2%82!(爼2p澓8MA34呭搇{)\撚 ㄡ住9閄%s)'恾輖靬IuH, 郯絹兦C@ ": ,寗0擎 闉琨lF*\詫鴲=檥( +峳$[jP鄴yzi`莚嚾帔冇砖 纮=欹-]"?.耞op蟸7樍絝aV>1G>咛燌礭悪塢梥锠c瀞岭邰謙徭"@%>柘9臌P挓&4Q啑赶TN驴3`O達隣澕思> {鵗i篕債頪s谞 %,(拿9^=ZY$畐)+貋廚广譈` f +侘=}交pw彌<巕:}h犘弁'悁r y荖綦郯娣霝袴/]Qd +t帼'鶺C@S%%bbS衶k瓹嵰8醁pH镩翕;2鵪,#'>鼜N礲p蹪@所扎QN仳x庚,wQ$?戡炷g t'Z┹)掱gf(瀉鶑泷猸-8蒡梧A鐜漋苑,[┢}楖鎬" bT餢餙N=嚪?Zp'v}媵/?雥g郯䲡~7撔煏 O8缈謤$q慃囸'灲?棴<佹9驛脌[;A餅孤?鏝$'+OOD锜й糸籁鏾?唛H:/N緧'酰迤>^弾?缵憗冃z瀐9>嬚堳鳓倷怯?twG饀\l忴}蠣>g凎嚝z 9 諳?+d'鳾溡熂F崌C轷>*0p縸鳅熞殻 +$*懮箜J ∈湺z{c譓R玚#S聑чW\火 蕿魁jiS祤^枪憎赮蛉 埙窘椁.[;3瀰Fz?O聙I躼5=Oе榸c撁сN犁rA?Z '?湃'檫F宒鐡闓K菳G茹飛献PJ0楞袨c躌6徆69n88鮹i?袸疗?{洛cⅸ8强'帟<¢抸?襽0%['佇蹑*7懘H雰&災2鏹0賿SHpC攤噶荗_V 0p:茦拁n螧.{@P0憮:c酽\F%F铉 zuUq卭鄛1齤+咘v辳兞 +欳搩战x'-熇qP壤┤潴冔,?聙 摣c瓳酏*6蝫s如蕖cls齢F(泐:*壡徂瘡氋1貁琨鯙Fi{Tf-橐鵺憺$撥9螼z桎浦r}繈3锷蒄$V苝s冝虹奢r;?齒>鎬}絅xq叁.:忬颪,J吧*佄:灂8倂靋枪?8+"A晌研2噤)蟠=鸗->闍拎騴䙌襄SO^杠s莔靳晴堑E諧茜$~=@768芨圊戋8钳皑貝僡榒a陕灩牲=H8闌嶨'寊髑~Na鵟{耖胛v炵+ 茬炪眴<兦=*湂M魳3钇lg@zv;Mw=綇篇Hc|63砹艸#Z嶗9P硭萗m嚢賶 胔 诿;鱟#>瞺昇X鎵沠Q3s冺霋陌蜰J?$ 砫m8d\餘8>偾l湟Uf岊蜪s髑鏎UJ T鄝NGn:驧2,戝_8@@1#饀L笻L寣 臏t雎忹顟7潽跠婁3O'褴還%(紥6颖Q翩?蕯騚騏稘嚆>9R竇d蘅.0{泺Tg痋"C骓垥偉9?顑煫 +>u.呣A濹砾巣t蒨2=a@聾遳稄洔9?@ :錊趭 S鳑>焃sAp臱彈q_碿紽[$Ff.勫1w$=╆ヤB聩痍6bU旽>`BQq#N晋$驰0h8阃99唈HH3.賷疵h4vA+雉粣i#暡]@N愣OE* 咽$j2<灯$朦M溦4麊 灕H滋摴千5$-"凉 蔥℉蚯痎疎"愂 +怉迻#W;O1憺臾p闈Х=灰秪\n胛1蠙黊嵌(犆( +.x驈痲唠N` 聉兦宋:~TnF$综蹤Ⅹ琰煡8檙 鐚g佭恐贩!W 傈#隨 膗设=皴@N3烄O_轼P榗r踨N?嘕l(獉砝 +瀫t=i0Y\錍1#2?_:遙HTc8'穛趢&pB鏷 !82砥q99鶶鋷*⒙!Y綼彄x蹊9 f鎡C節庿膅o8鍛巣鐣YYe <穝篑變黭ii "蚴寏h献奷錼H`区v縝莘z0峥Zw2| 搥3宷減Hc讥c1's擄膻$抔蚗P╜Mny;Gn{囯L;蘣庁苨頍o鹰O8 跟箜泽鶌w錇 辋z酊{姌9u=j#嶞輘抿n訄搼幟眶+B(蒴=W妙zVu懱r蟣g灊?敏;_鮫傘hq廚跨趢%C[擐穙(2_ 韺霤 e8}(e旴铑'玄}借瑛/c镖溂w,G8酊P8-,藺=齌0趘菻嵼区Ar狛箢> +G8徆 疷7HrO\耠M v瑋 ya%囸髁闕pp/滬m鷗'8',劬 H0r &R3帞 3犖~縚筮4一S媸抉__茰炉羯/J昢g拭迩ゾc塛疞d翮鶵`怈g 1宐氋;1+嗋憥>溞胮l1#傒?8俼艫 岝?'/< :隝]@ +r 0甾仢牨<@%髲铆蕬騮84KWcl#死\煍s镩K =2脼=恍n虥X2芓 )蚶|搞濶)叢燃=齺鼚?v粥v8蓪癛+澚觥J扤v`3層郿799箨O鋧﹜s磀悌3呖酅 >噗TO<瀐bI冥`c>嚍?*p#pf;玫7蔩橧谕螓c=忋@&T屻邷読圃q煍A侜灂2E&<餙N熓$慖S朿H9'Z蝜q煈v廧伷_o藠惫>U!yc詆5麪熂z~!却崄'hu?琬T渃z,m滺%莖9兀6ㄍ=﹩譗f鈁社1`煚n鬼踱箂[,l?籧廯A媵 $*arH麔湋渄泔缜芝`ボer];岀冮䙌8<8$r\鷊鼄qS6w F蹊[埸鷝r`,]眰3袔荥\s@珏+蹩1S威y缱檫妺 钴敕儫胂< +F$兕@c笾氞活(3麺朐弉= +鄝{`帳錙疭 绉J9#$錘9$e=鷗绉A@兛災|曣=.鮆|%杠 9缈n扅9N;誟 场峓9*p裹庄Jc潏鄱疳O蛼摐憙濱╀\FT*v蟔蝚 7( 彐l,0px8猞 \#J0ORc#9#932綤蕟9跚 +c谂F骊He苲t/~佟啅a魔伆c,pF"9#x@F課s#4*粏G'汶|覷刯瓼荮v恬3蔑N H2# p嚼貊8~?荨贌j 唀Q钗2 S1^!m剜噻楦绤6@$V搆*橩1\g-審A陒烰C"媦Ta嗢*0r漫t釰葘H ++/8彥?稪&4踕 FW~裨騲A從鸗姰炫贾邷(矽?q8鑫)恘無殝#*(>~踂#電E()2桖熸翛灩,gr橳`d韨3l騭坶H~u ? %兹菤Eq7Wa瀣{琁躦熤攏奓怰Bs寉佣8息饉溞カ噵+籵@8=Q-鏀u($y搉帬pN鮶&>@v蜉香y呙澕l颺革伹鉉 {c疈)f漉Z搧*亖88圉眭)枷驼';8rq 贩苺寿惯晴埴Tq 屼砾x叁埘Gf爝6z駺镫遥M粦A 牉牲s荶?3e朵熆蝰烗G獫L霪s繇9(\韾屼g蹫啒税0藔它篆M絜谿葺嶢?昋允堌 916#9gJ&鍋# )輰欙Tu9<攧7围#;~u鄏{宺h=仫I7$嶾鬢/鱚?陿10俿:伭述=*I4. 鶗術癄鵧讉*渡熔嗇訿 甀銧8'圯憴T4'審疉煛霱!峭鮔餦9鐅 癤2卙乳申H痵罷%鐟 +E诜CB2 w g酩扢鲝+岓箑>ⅲ敀靝L;敖絿?;鼱{S邧X穬:nJ錅醨昖c憎嚣鳡,p紏9缃:B_?)?拢gT`mS7箜OO慩徍舜u<?с@哊uC\蠁7.葯峉ic'熼]5zRMeI啈U2錞v鄛z缨x%羍 +竍珵p:帨璛{ぺ瑇钱z觞3險6偣蔊 蹎(0s,a>髠>@GUj#鲏$<"銚岉顊u)$屶酏?藠郸"騉藨席=胶值`d抯儵殖4蛰)PN荩鳤>灲*$铢盎 H巽p?*愴蒹m胮~l撓A4gi猫U$绌䲠娯m↓0獦+祥(恲;P鄚纆?绁?,0N\d?聶8'.Nq枝+>^柸%瞫鼑怛唪菩O?Lt顯 鵖 s砼) 蠓$ 銗Q$鼑~y衹G;蠿P 览伾'驙`[=z\0 @s迾 莘挔伭#苞慔*78硐w蠣泫冂p朊w-橼嗞F1澼z廧B$()'+烶>⺶鈬r$翥★@ $噤漪#?鐨 躏烅頖.W岵J餓情@x6斟H]紌嶧>儝H=纵絿.@=若绻靓泤蝌╕B哛~b 鋟鞢\0t|仝9#黨醁偫}顦肷LS冀偷堗朐B桶鋯绵鮚I雉 刲濄v$眍古Y%|阐 H凐Q5醄怗Bq苆皍M!鵄溷?3鵽褧]辩o;q宑炠黴@輥地嵷錆磸3磞Q弊'<* 鵤帆ch^忙煼*0U>\ a廘{w阌kp慩瀝珳怇紸卧R?(`幺8厢O窇H揞3俿泸3妸Rc d''#=8'鵦馉` O失,򯵍#侟豎蝡~v$c绡n該6迄"0X麨 9唅G柿e樁x鋨& 4漵宷虮鉾#鷆鷞謘 狍鷆蚹FVBr$`钌箅PMr阮8憙9狼:捅 +x徠2?A胱"xce豓H踦趕0咝彮R|8'OVjH銀dX鉘吻 +s{V迼b秩e$}弌C魻 +6zT17 +Qc=O~暫脧瓾簌4根傰莕莕紾泜#8我宾絷z}c罽:N3岧jo沩盂膻}*醎w=捺阋' 燍h==>熺謤(",c澫寎.}繿鱆鋺庛+盂渮圆`[銔粶`>颈0<豟zu鋑馉r珒減:m'鐶'8镹c堾9A;>糶尀儊M 8鲚@賃 Z3秣簬8旹驢33 膾O鶴,sHpA0蔷錘宮懓胐樭子#А,娮>f箦淗T.Fo>2j巠鍚m,I靫沁?F爚媖y #$>)v8DM籿+wg!F1軫訮褹%睊e巼 +>摁V)Byy扸 +齳繺詭h纃乁n櫳 l p@v[!R{哥=v儙0Y+1笉A*DN褋葟>齫C2j书 /橷=X泐每覓U1锲迓bC笎闕+ 偰篪粔物輫 瑍G)岓(溷规%邫怓_虘v &硬/畡2憙卪豁E=魅z煣錛囂@7淰\盧3渄斪菙X呝撛渞{廃錚 览3咭樆,VBwp#宇H湑*?1Q98Lol 磉黨噧: +E皘d9"L樒)鄜鵄鉾蓍衟i$*@?#g羹$ 亝+R徽M椞b锩颏q勋]d 8酺?翑樼]绹轨I嵷2IF阕蜹4o 颬T'蘋V怯嘢佭璚煏作.羾,O\幥}x"淟hcY78*聡 8錙酨F噡&3貽?椨#襽 ei2Wf2G聆蹁銦茮,v em翿兕1;忞須~纜3I25肾鋨镜V褫4娺?态OS袩膴13 84宒i2K a9檄#m 1憰焭`莆噧萧2擄N2筶.y髑鐨f 結巗迧艡篝顯^Q塖幑嚣頔8豉廘.1鴼n})v曐]厍<酤唨: 3*牗蝱鏬$摿=7牳[墵o眷V={濵t +@v;yv圹褒zz枤郯W鏆坰郭屐?*s〆3刘堑e藘 1 +;{羟9 紑溽8=N_瘾wm膷儊"7轨*豐vv擏[9?/秡清溞 $@A"'搨pP=-減[屻擐o违C麎嘋鎸1=O枫鞶隃]鍋^x=;y鎬)甎騸P>繃_ 鰼'帩?/錖P羳<徝?*D砥ps宼圁鈥^GL/#訰H讳$=s切ocJ+粈38#壪OJqR靀扝愎#撾蟧|P?`朄莗`[v?,慦哨J"F8'呄∴>镜N蘭bBm9鐷憧嶷"`醁鋚>溞礈X(m叵Q熽>攣Xcj宄蕫e䎬鞢 涚(宺d還銚莀z弞昢鐸es莹羟鉅 {7H瞡 蒼圏奲磇鲜7缆砬灳繒U, +;3.訉鐭^狌珞 嶄鋜W袢#(蓱V5SC湆炟={玳Hnl*汆軐zsUvXA轷n荸2匢 吳逑#鄣M鏙0鋎焈茹鳰7,p3磧鱴a婚Q3n;夰 c姇砀19$跚鴰8蹚\囫羱JPw犄c?瓽鏙d +KB磄g8躩%r62I89缧J&0_3渝圩闓鏎)*豟p檓攘 ~%*Evh嘛;漉v4茟踳菟岜Q弢杏:~V}I\佭瓼=:P咥08G鵔癏G?@O鉏終26~{=薰U]盖菝s 齣 尓"憣3t妁?Z漟$;HU%]P9z5= -銣:0如N樛g,唧3;)*赶蛼?>:焭  x鱸姢v戯謤*r巁鋘辱y誇X鵩 +U黦隤;LcBK搁 +筠梛曞湸e6~耧千謤$,肝馃+佔侇G^繊C柬`"-礦B铕2弋v*5e_篫Uc:縚N9槺ng罳 韤>9e +痹q +m栅MAm爘浅g鮎2'ymZ 鳣莵柶6緢顜]:z?п@馵挤b輦锷S摾雫曆済=rW緾((梶1藃v嶨枫N+佅23痭G酅 Q.=>S眄靫槗 +I嶨縹汶O 览錑6 辇) c$t靬盹顯 B 侫\笮 胂j操苓{锆鹘肯ЛV媖 A +N蛛寸錩\像鞸疽d8; 萟y炘8%1;嵭凗}*吧U数憷鸀邞礩|"A賨駧齴8Hs袔絵癸煩4剕狜鰧~?戶I儍#撿9蟐>昇渓'*~焿麋姀昐澵竩帻1综驙?qC茹幩腠灺/~崄岒}r9銚橹38莑眄垓J痾F8h蔑鐛7琰MVeY-輿n$徏zu秣s綦V%!%]</5!恉QI趓锵>擐綰D{掺怯щ襽$ 嘜筠惞IT綪 傑儉0I蟁18悡惃Kn苝v?忚=). 辀wPTr鄠牅^?L4B*Y崬2A銎?*Q槪蕫C`潣#颉;6 0|聭0>k,=g:I戀V%7暈闕L1毵3僽,纜堌@=Tp=?匩)淚$矀拭.减汩搔HY鞞2v幙( $J瘓-!c恞皢c韺'灱5稩屖IL;s蝄麕x历姨cb鏷驄瓋篓羂镠郏,w#*n3d灆96囀J磧藆( 鐷>奁涹"随)r1伌g熀镫妋簅dH渇F圄圩彵鈹0b$^"Rb0N23訋7眯 e/ 覫3術3Ow$ 曏iFRB檺$gj歒 +飼=劁q巰L鍹妁厠d貣~:炳情锧1L 負 徘/颢A鱎n/*J糺夺橜栛鱍:鍺SEf癊# ,O7胬驚蠞糿ZC苗$熕徠戰8|K*顗喞黳А4袩;頫#䏝S鲪X7;楞疉SIbNi慹c崀yz:Gb鳆訦剙n4榗 畐 俒p8銼P晬Y嶇8鏋c 输<﹍g=葼薉+篗爞A炘|挈.I貪O忓%v|躢 =}i>倗恘=h)構9蟛爩堆讓罅醅昚咮d泯凃刊制-B傐姽g@Ola=:qXs猛]熌T!P匡'#縏9厀+孎鄥邕穋趣峔躂珓,v穧巬I辖惢a/备 <饃8閵1m疙FP01渻滘r9惴94Q皂lUPA飨J痵!i翗搨u=~镜3X唙鶕肓酁?骚#~GqZ仄衧栱镮煍~g階9烰A阧汆弢馧8O愩廽h=3奟AWZ%]綶暼`苦?┃@涊W*馤l匟萵1塍酴yl馌< PXL6仠`\s]Z隗l槅9a滘0{{Rj_4析`烴请鷔@G;p:g痖橛廫姁t 8檑报觟贔H\鷗镗瘵QK酈 +8屈鵓晈rY皉s=~竟玵()磪` +7c栰2:烏0oUv;绕27 挔{j要;X寬v騁~ё圷貿萡噋=圂ー&5VB灳灆9莄隡$!Jnl`sy'縉鶵鶌鍂6镙髲Lc傲鄮! B2怘p闪:OL.G憪}9三Oz`摳b($/c򻵸!$鍡x-尓穝懳哶斿鶊上l|鷘?J<蝀拁轱伛鲼舁Q氨|(傔咷<﨩H粥;n8水2=s%$朢'9rx=)黧f NFzz8呁籕兩佦顪ú輁*滭蓑襁魻 .ReCr1蹴?3a+囏齀 * #嫦W<躏垡澕p護藵&'?Z捣nx$u脒瞑+9P昂!A.K<動┷挏 9F鹄 遰?*#粫欐扐驌8蟶q觚qW莶襭6秡s莩哕鷗]槚%J熃廋髊@尰最鋈请揁虣)耷^麌忼)粌`菭搹Vk23琫嗧欠簖ζ纴蕿s6S鶜禮竩W顉e3焜d卌v 竏`湴囀*禝紨懘儐胨s鵪螫FSz厔9T=NT瀪鲸菬8 \ 旄朐j蜧 蝧4里9)2[熰琦凩,燧嵓q[;/,.w悖髲9鮏苰蹧8澾0zv╖bK鵔曒忦嵼緹蕫紟 v跐A鼁P;B粋:酶L鷰=觏忌錡竫QA楞$擋? 骲-)vo<镒;5'梟A潈嶧A_s@蝐*晇慸 懬旸f"*)$`搥?炚j鉔呔s娆脻(}={焇鋛PF1R棠許W檵yl2蘋閵w 禇=柯 #鍡俼N;Pe8 @む铒)'I誇O錔%)c傌?1咵6云N{幅鞞0偨/虗m8$9 >詷.6虆X翩.榇(Ve?{;wF;X菕cхNBR9i嵻?!水兀魎芖蠷H7旧([岏=齮摡伓977颉蜧`銕鯆#R*s)UV蟁柯}糟j簅蕨葀. 岀k1绫鞽+)*屖s+嶰蔊馃nA2I#)F坡?=я钱i喜VYJT捈8*=pX茮p嶯摮<彧袏撲箐ip3嵞鋵鏺庉s火芣%蕟\澝+s飦煭P輩签篚玾L褼劆E宄$陣螵寃杗絲=ZF?(9 +V9?鐨A@攮;(懴穁`頏鞳@YH亗y?=X,Fs撟譀戝嶤d瀒H 錼J筘h=([L;u3$騏G苨哌隴D箥[h纍愈䲡)1^"#夵辛FI*{s醍峓矱楏N跚89鍃鄒霝y +奀辜皕尫耀$Vr畣Lcq胗岤鲷й\〾)S潷迾:鶳/$8 胮x荗е猏盄醱e\蒷 徦鼄I1$嘸溿詚誟伝誊 .鼛2@Ё嵋0郀\ㄚq傒靳鞵_槍{/c*]褷aU誇皫勸邖V絴3脇qzrH'$rG~t*鋛昄;込9銓廋兺VYe@2湇緂3劁魑G k柟Ur +畄谆t<灍酅)唂8;篱侤=┩0津1繱?C叙z鋥U*5 鏞,圣额'a9楞#覝掖%XBG+s撹:渕>:$嫾y幠宮{蹉柄酽欎#遨大股8>紃;Q8vfG扚)褉 ;q象$$蹏pz/蘊A茹蜚馉 -8罟+蟦榄2寒H爌 c=闲g颡嘻J}靈‐g熸*r槖V''滯縕惨 %P牵瀲舁薵!_+冃耖5 +s摕筠鉘A*礼厾y1o耷y榔xO瘵C禙 +0A蹒5T2-軞C$崁H劢Z )8漶S 葼e ;皙剝>鉆`蕶 ?i鵚 駷哬G钣湝v7'惥呑瓜穓澒'{簏雩#&WjNF!熺U济蒛4呝Z轉`鼕6鐭c覛eL騱怤q邚]WU,.~疥T壐w荶z少#Q籬藇8櫊L疼嬳,帨q鼆玃閟燃@錇2执 衍00帱湋忒nGlB泪皴d兎,蒹升1R種顓A氢H'娸廜柗g9)n3法?ea諊n9 ^嚡^渴1庖偕_%剁唖蹮#v珣楦躙灙2A=侈甡l$肋7 繜8妽刎錉蕽輟g朦%祲B瘣H橙蝦=囉芝'薫凫呷Rav撳举8a槲:Z]牆斾觞Nh6忊鍅_丘咭@Tu ⺳I?y禵!<{沭黼騭 朗{硎褤"韃衢>l釋~g;;}?鋋"dP聵Wac冴9仨('j偶彎s鵶彮! 长F s碜?珉JK0X太眭x +1郭彥貅魻e;2爘a3變Zi僷=毒H龙琊颪 +?蘸 A諺t鶗|妖#廞@,I,<练痏簌S$傡蘐鑢<雩鸘!)泿^(2%aS驎#隊1莸滼雽圜鼽蚃 橮0砦|焃@p9#烵髪\㥮蛼w +1抓1Tl宮晔砬_耀09腓GOJ椽 従盐s睃*gV*埔;週u8擞q2=y碡瀮镸!渨蝬_细靬4瑰喟叽93苶G骏 塓羂d渧?!与@ 蓿倓隽9煣蟥e庵E<2}#=彔厢辪漠 3瞻@如詗閼组樼;0繫蘻d庄陏($0醦H峭懴у拽j掃w%AW 寫翘逓澖鸴觤0岯戞)鑠w`庉臭钳湢aOa霟(N )哿9鉽q䏝S'*#9 r?)0杞蓮{g酩泇1悬=P.#賾笁鍒!O^葒柆 -1侳p@#蟒床扝 蛇胾 =骨鏐抌 33_~;{cㄣ"〞璚v苩鷉沴⺧D蛅逼@?酕詙U袄EA球J[p柒m胾镁釓@q﨔9塂璴@_迻五蝵|箨8镻繡$Ns禛v酁X蛆远霼bWs燁鐍H锢'侀Q:琱#N 扼蹳''敕{P蹥5B h◇ +9wn:{鵕R)鰏$ ^v/赛:笸H32C吆<Bq吱I-aU`那祦抟p}驙'W7*62bI眄颫(垕ae 驋庚鋩u莟\~濕Q跐撊轊腦餢屶~敁J瑢b_茼膟;#V渢'驙n%b]c幞鐫膤<5q&-%暣尺?飛鞶GW泩澥D盗g'麁忬丣驤蘒Z鷐!鞃8鯛塈x 瓜%yE9r痈鬈q胍7迊哥墟惪飍萈け#庉:U]嗕滣橛)O@<o阢⒈=2;SKnB?+eA]!纔'vO钳簟妵LXg鶶 !-搧笯$<~4.Q忀wcm榔3鶳孇*恵7)7杄f  ~繄ぺI蝌r3`zTs唊Y腊?.葙蒙hS后甛 n=: 齐倊啿H;򞑖實纑F;徱甇.刳"死赑eQ兞G隣x0 錅}:9赶=柿輿-''v8萸'9晁熌Pこ$[嫵1Rs'*q*k1,\畽!xz{民 %Em崟Be飳`1@<庡r7 兝<乫珫蕘讕憎OU千CZ圥已@鋩x?梦A'缵|錽箉縻熼M A'丽蟧謹+{ 焭^償_滫髲)崘0佘{S)@縍H燻~b 6OB9鰻 鰈栓纳嶊晾销V0贱湷s頌姘t蝎y 娛管x餃醐 +玊尞屏#'蕦Z晿v(臸 +H鄞03驋px隠"?文扺'xg9:>斆I"`昒翍G<$g鹜獜睴(〒$m刍颿$髑L鶳f*娛pg#G=蝢镵澪QA搃|酇$抭热8闙An yGTP瓛畑>茜9 +蔅霽%T拎cs怗Q熛4痦%X吳 +羄=;~LW憘砀韊^9?氵#◥8*页o筍厉螻?.檕t噆#d 砣?橏>傥 ?y鱅x莂侊I錷U9捸 祥妳処20S囹3岲f,鴫 8N=G=y齫@K欍怇&鋍齛幑8(柪q刞偃0?Z77矰I}AZR畃>q⺄營綆 n圉欠cs蛋!7 cw~泮鵬筨q箁c 0Н坤释"盩璎还蝦靘S!捎p堢= 荺q錔/鲗邈螅翆n1 #驺}灌琯仦圀4厤U@q鍦n噤z銑摍?绀eO4s&#+#瀲轫UU丢ㄘ咐h懺熚差( + 鄖d0妣q@闥<芖9 +UI\cуPH38?堢弊璟,]纋A肭崛齣刴 輕:~苺*-穼哹x3烗7舁n囶鋐R0'l囗'шz~s圈]+'$ns陵O痏蓲 圔侼G^23廮訮h虌"2邅凤黿絷9酲mN膒~P~x鞘G衱绛(p6税#1  潸c#雙`\菙$惘p}=? 倎&摐t裸<齴歡Kq竚eeR;鋗惹^=z巌_-N嫫:倇x=┪w0r⺻? >FO虒眚'<扊鬄yΡ蛞 0(來亐G')$`q砩?Qt繦萑A'緘@@c掕)藣+c ?Q@o,E,v8I祁韲^O紷I!龇顚 醷gp鶁b+唺=;摰巬茿虵6台I\+恲<寔焲1R]d泤l錒n4g縊O鑼;  +膕幚彔腠顯 &Xf斷`玠從SX7&5箆苳F<隣埅绍c(統<蠝S*哤C*0 i?Ju竌n髠}硪袆蟥伾`⑵縲X)莖进f欴q$s鶋)历頽>%歐@"曗R錓Tx5AfH挠7n8#鼕# +D媞㎡h纜芭竚鄑'擑Lw:懛小輬u!鏂斬阔(阕)4K;B騒裼$跬+栁<*続鷣呲侒J徘剩+笹湝覑9w0z)'b飷趡濢怘ごru奇砥)dF辝榔z餘 鮎)0 #d鄋戻鈵!刲堻9nS侂:]箉Z2缾A^厣>旼Pu{H] q&BrN疥 +瞴盉脅0;绡衄埠x厤_灨'!棫$P;q穯G)%S龗戨詮桁別C(c渷3寃淑穴IZd%4aJm穄刮p淑<宍'圛78咸:g焇佬欩6瞷.8#螫E!s膏楚5 H盹鴗〢ei9*s忳罋粸9设庚7=熓$4奊*?槑34袊#q '粝O⊥V4滛 \rs衏 楺P掛跥 I)'wf璓 6g鐝锧芇鄬f罴駨辋vT嵽BW朾pr?狫r 馌犁=讘C0?8昴銺拫򦒯纛?/蕸>bW黨輯瑆J翈衹pH>暟艫 +┥-<冮磉5媗襜Vt鵻V=s齅k<実$Vi98缮霃Q=篜扯w圪 悹袦兦lt卿,称gUd7<z'Xn帪鼇徧懦9,盼洲#t88緷X1`86z渜榱鲲酹韙$P1灵嘽辖:4颥《(U8雉雳虄y纀侹g寭冺@ #MC99郿'翕 頗$搥X{庈驨崏!vQJ$s岭槿上酫9Q菓J崂稀镫@8钇O#聓t料工A(翂R<亖缨5O${B咂糮顼{p摇2庶 .88泓:焲乄i蛊 扇潲琥S怑啇騅m帟 9|=挥vp3象#石籮捥A蟶鼾i厸 c彞8+'rg 3朽c膪S忌v寲声螨~\睐1埤Y胥飤啍!,劎玟#Z惿'8$$輶d簏〥甗 06?哩UH贁鐶?吊#慣'?禧鹷鮻J%揾<癜堇幺Y8衫$~韱菘扫Bto齄tb r?更貅鳡 歐91珐泗芝骕纍嘽q訌缤B翈笈 铥噜 碉8隸Q33蝾\玱暩>>眚搥 诿cp.=*>Cdo蕚FU䴗P]>驴8撓p靯7阚蹼渆_煈筊q樽vA辮{眸/=yE $測漽锧聪禡$ 沈7#郫域槺 +W !*z笞颞p1簏M珤}ㄋ鶐D冮戂鴜9o)儛与謸 " 舝瓑>V鄐遥8忰櫱<义該喪鱿'鶎䲠#淌'戚 A冐镶{S监eR)*y?勭朂9c&q眸v酯藧xm音屦0?褶h箩辑莊C韓g*O3麽2暼噤摕鮳q縥3=3惹过)0;鞊摉r囵}1杴 湝斷蹴Lw&H呂|紈+e 炝#n滕U 瀌+杘,m憜Al:{~f%庒.漤茇 菂赛猝VT埌撜?酫f胹柶銥8<淧I(彦雳藴夺咤銥=2肛J1喘8蘙Y1'龙S三侭喽^Pw1寲|彼6蟘徱%?襹瘮|浐騳Δ扊\'ho琥觲nS傼X涠X0=1螿F篼穊@<& !秤wv=@缳n$-像n聫|鶶鏃僳鱂銓崩捞$鐗O餹;q:郟姧 契f8舌銥$陉╣n阕鈬梔学绌綮)嫋B1a褘1 滮iA. +.H#$*$翕意a*O^?*咹琣V0}nz駚SO簞M臛 蘆褒)#* 1$爪>淧E>梤儛 如=H蝳:訴U毖8 儙{专鞼爒-畆透GPq湝憡D睭虔G27rr@$s殛((蛷扛`寫献硅)蹭(怢dt2靠O挠b[,$|话A陏闉斠|2~B3熀00踫踺嵇#杄Q湊6d渶0G縎ZG*貟3蜞H K留=鑐V #`I溧z-邹s椳=O$d鷖=(d式疼?|廭G_Oj奮cu#G=v帢#R然ス\埌壤隙~pㄟ2,F雉~d?'馉2摶rW筐r}隢T"樵)4X>醄弢cХjd艥d厶尐燹>娛覨稍吣 +懮顁禔g掄錣b 撌釅9鋈? 068鉯|熢淘舱p=塿9>鼅F?鍌俆-> 3鷱珉@,構vRR1闏L?掯═y藘朰鸸?辤s夫^措B税hNH砉叻譂M楻5錨 {+9櫊 +Hx壬k嘡r*獇?櫕F颭仚l鈷f't#灒匔,蕭R!圇湽?玉‵痺go伬2獻!ea熑 +靃!.輝?葅~匆%i 眸焈螇d>j<哵w>紛?諫Iy9e,9<躾NI7>4奁M薯彈9Q住欠4P唷B崅I^z}z#HdD}9#s宺y竢渭傠鰽=8|座^78申z氵徶29; 儗c嶨謹H被3,j?<扝雉黼@ . 劕K`鋛汝}+欛/斪AQ2優s灴e1o 妬罸a抸u跗{=彰;戾穈$0濑>&"环+嶵帲羹>&頨x H羿Z 溷责~u(霫@$>"爞q擢奻N头# r~答ベ穏q砷蜨Zq篎*K`雞"灜鐭SA攬,;GG拭\q墧2矃h伥雬唿G鬆 B鵡Q`Ka$貔K>粼7晁W聐眭9鶵碏0闔 ╮脌珲9 輼堄儫蝗氢1@嘦 藀r +G螒翓冥噤`;d沭齤缐 +屁∪\缮咙N1跂(罶!+8薽醭@9鵼绲*+9牨=09ヾ匇驺烜{伥 <0z幗X斯>1鍒'>暞罳 悙I2Fw粊蝰済僗aHCz[畇妻御Q浼掇\巆Km#18鶂bUrㄡ郭騕恴u#鵓@唃q沏9悌)略1&fp  g宻忬閇焍嵮K籋B4x$t+康XHc嶴澧o屻vч@Ic'棓蜂蘆潬`z尀I8舡磛P\萊=翃&r0>晎轝b*倨;泱軴酉罴q t и能葡煑蘲挪3翩 +mUV寭p噤澗A;K將鋪禓鼚v鱚>^y題M3v确d|撔鄘,欩0揉物鰢琦;幁昹惆瑛y8橴9;~F*A+9腧鼺 贁昦9蝱|唔SU#(ln眚奠螾鵗JМW灅P??aA爡衮GN躷O右>軀~oL叠=@哐s掃O贍鵣6覝徆鴙泺ho)w`橡{惴# 秭吊=Q_铧輻o唿s鵮繑鄵韠{P0[頿O?邛靓y!Qa+髱國裏簏鵣戲u丘z無j,?阵侟顰r覃符t#鍡珙?忀?埙=蚓RJ?伥_焨课(;#澑_閼眵O43aQ篼符~绮瑱n篾扊啕B鵭 摮渧鳆牁纍"$b1>l$泭39o灑I潤摨??芟颀螾"枯;相溷燒泝隢%1綨З紂靑#搱'?s鼅酋麳軗锷b8唼忼稔縫1犽埩#%x<褡師O枟鱟r繓~w无駜審茠97縴捸6瑛绋$塬囄笃摾鑧隌 蚨錬牅3摲尻A<倗煑.输!镒憗徛懃葥N呃 鼻啁~c餩0 翘 呃辋郀?猄鍯癮9_滀t鐝沷锧*# @砝0袭hY +6Y嶳<怺献'鵶HmA骢锟穙泗R?z{$*榏嵚|(铨G蹽1寔0韺`|L|挪ゑ鼹汩休囧箦d拜唼[籙1衜鲟rG琦J颜y.狝 n黪*衫V` 申yn澘/蔴櫶7I*?C窚駨箫RH'瀡7(# r菗訙PK)掍>f$z敁6蒯 懓9f;虹痋詬旙w"4`00?笠9@*\$F3s叻=1@ 8p*z齇阨憘~薁駰$po9玳R(o碏v$瑀'RS皲耧Q+"<:y浠勩凈漪鞞臂 +2焔W; ~紐4釻.% "J剪]q困XX2X4'駛羯P綡bB隼更A?87摌YO=1煢 %@W '犡鞕8(檞脐G0r1摨讖~i彻3蜿<$G阕*l;D0柺漉o跫}I#6栳[炪G"#v鉲R0莂墕G淝蟥詶[潃(辢橭泸 +Rv琌儠!@&ㄏcqr"]i 0蠳?O鉝Yp俼榫 卡瓆X7,"村H錞|0\価01堑3壒yA鰼訆攢纻 -W媗艣)?27P锱)嶞堇哱鐪偋=D]<ㄤ@=?ēH蕳 逍鬡=y颮Q@疇驙-5趭#戯膝p34頳6pF罏J艉J髕丬$鉮2懒0罰懜l倄魁B ιKFX`廽螃YUX%2FG#=c滽囩#9J砥檇秾a 鮎L$D-褆埰,`c9社巼腼@蘬bY/掘'慡nC`蕄3'oj+蜀鸡吨鵋4鹷埬 澑f苬鹄q胧~4e^2,粫輛.鯯xe+H劢忎3坃*e^Dj,⺶猕M锚H汆駧?䎬 0恧T娺+*H戶8"I昫W藔x芑@8;Sw!D9惃*郕?燍蚛 +岲2!3烲巋1現莧i#|($'躏鳹`^:v惴4P┐Mu*U圽0躟r?螷B+c8utys碒q憻槗熤溕GVQ>壽湳LLF呋%P$瀓眅脻On2l垥壬灆1鏆衵弚1髮摓y牰d<`瘶à挧岁x=r9飱P#DT繟#朎庶 ~廀%U,笮8鵽PD叭果儺O?6q鳸s迦I# 6I蔪r  箨}g<&m=齴湂阂)99I8<'∠穗^D罆軮叡勘鬨g'焜咹曟%$J湩9#9@*3lv01輤S喦:t鏇.,'極3蟸j&2 P蔏w熃澻筘UBcx嘴新|遑~鑄鋩@<G鏖N圔_銭Q$a( 螋銗s蟐k(d',7疸銧鈼~飓'v疦>n:涄爦8詜懁e検 峡康"禦=陸惥V邜 ?J浲 囓 1摽駋巠?覟2禔-崇F=嬜=}}p8o a8<~鳔O$勈异b溹鉯熕斎# +.X嵤G粄>驹胾j.心 21甥達蘻V~(昇r>S前熷锨譺盌芮搸鳳X/簭8!彊貫縶茺月BB昩I泪2y_怙清颴Z\慗d筓!A!~V蒇值穷贝`!laP}蚜墵 `鄂P[扵ry*y/E齤3!1鐀; 鲝LRj蛊帀豥㩳S叙}^,泱疥{?摁んH\<z炨H/c䏝譖A_旛_酧钜&~L┣=4o,习6霞z冼?LRy!,Wn 麪凖飏?R罷恟擈忓Jr +鯯g簬-+′4$邁皿V(H辡燐镄徣F瑑|A姱"H8⺋J礽X4m幢鐯{鷖⺮@BpTm}/藝?6Ir!'錽犱'飡夜粞@\痪@'1纂閵襕a筡塊 驉~b(鴙憳#W +w騼傔{烚4剢`虋c $鞳S髎瀩旰4&0赯ES岀從 +JvU孏崼鼸Y憳y朄w1;Np茜'灱}(懾o2HbN繥S嗙籲$+;W 尊I1Y軋[j9阷?C鞞FV%梖'刮Oi +-埾1$磣nG礳=鑢4H迨樍蒲'?昑暤笗^gr峡j1詭櫪(.@俏轝髉傸wOcB3.[x輴H;嵖7她k s,O?阡}` 岝汨j躧飏M)C=李$t另哌顡躊紃砽`/惉rT n滗巬鑙T(g,ō拝萡w捽睅糣Z&粮f +Q +叭 0I醦珲┿R綧8e嵥rO 霝O?^38R蹃 蛷暲 缵怞( Lc'9\r[w#?埅K+?氁+#向禬23椏9?|#,gU墛㏑'審:^/+?贘9 韆亹i瀎"贤禘躢/ 溏vT'仆虓'2m29俳滺猇1窵!弲.NG冇Y髢c+2﹎霅Ww蚇2囡-妩罧6J <::⒕l<T1^\荏,p箟硪B墅儐E牢y脔牲(纀C(.{p鄹揓陌@72鄝娔6G-粴垨"歠61P3蜚-堑LA穽Ω撏>S?廇魻!$f芑K\獛$g 悧b)%官樊v琊4睅6M跦吮]糳烓酽D蝑y 捙c .J鋑種>絵I搾踕烨%p1屋邊9G1H 碱S潂 ++s1PO ++'>=i6贂qT(鵵99<膩β咥c昤Ga:~囍懭+倃;F}嗢嶰轸Z葙鲮赮塒 +x鼀,.昜虗栙唑= ""}繾其尐=接夽駺T烚蕨#禊蹝37剩nz 䲠s/$`p1'?U疏B猠T錐 熢駧逬*;窝珤H馇垭W"XH>Vq!m霂絸猶皧F蹹q錘譓籘0?虨}彲5*坊q忺w舁dR:说J帬駙}隬2Y 厤湒is焋H=跈$"奅`網!I@'欅+妞珵婪\g侩P<肝N/t'79媵%,冨6mRs鵁祥Irフ'譾1灻煰^zP挶捨1搴3 +|堕実螃谻甯C騴`徙㳠繒H胻插圽s鲾:侟=醂3'PR煷#曺K燽W珤浵=S g38 +H$uf锶1v&騏  >匶#U`*(噤l>湈,隆=)g9轵枌䴓4愞A*囎栠N簹=衩颢kq冯认∨Z_ ,>/虪鍨冂9s鑘(((()U垣蕏 -Z蚴榷J憹瓗T憣+sf,/鎬n豔zw8殛閉漡1闹O#兘刞2Fs^OZ氝涞i聊叾ⅹ鏹镘j 涽*顺窟9S儛蝯滮O\ +岙a8泖扬G胠eo3 矁帶呀NO\粝z砳啤叭酺)Uq臊泫s庽P扩h囟永 騃^巨}[;彅悃pz 0UY :u#<岤 +km1邈%賞9;兵渟鴙z珎 偦萵唣#樾弞敱R"碿'遐p`@郼ǜ +'虅 埭x飵:w,lI%Y垥#k`絾瞼7肊6pw3亸虩蘒TR妛:敂Xc*s=幤マ玟T刅 pF0}y惆*+:┠娺1搥點'蝽帟 !P鈯1扏飨畓{仪:%先%s蜱a仵鲭N6!9軐 #该偻E#杝29#鏤┣ 飦碲!L墐挬毡七N刞绉4I"D憱S:gr狏>秒L馨秪P怷卬缉:丂涕#4崠 噐+弱=}=$忍F硫縲龗z`g跷z嘹矎莛9P{溹尀*饥 .L嘶蘒 J韃蓿3灩PD螉该,| w饈i拕3蘛槏蹦w(8;卿}z壹安7俓否c獮顭*;秈u0N d}=yY庡N賷髨彻y刻#*蓫垘=y>驭xZP厛9S聹|鱺`<紖@w2a稆JWaT昄]>鑕齴詁U薌級 .銆躤~灅梵o=笎鼝H珀碜 rO萼-O杬p1 +E 濮!Q8岨櫐> (釙?NO4Tz0'cPr}賊.迚蝣$4婇驕耇萠5滉F:r2:~擋\擕鉅來湉尿(a崱I堭94岅U忣睻垲=$宋wcvFH鵬嶧裵H聽y?O曮z摸雏Р訷Q菒1瀲睜M!慜毉築xp{}j!,-尅Q9>a+麥慎O=柢>I菹?帕釦蹕(C慉暲谝ps9厢慇哖w~鏿)辏熞濖3 芔~S闊詑Qボw8 鄹<`済鹎4倅备_鎠黹@β裞9 肭糕)S;<绌$馫 d)E囿亞齵z{淫洗多_L鯛 AR:C嗼嶨 +?0s籁 9'欗妷吖1罵2T袞缈 屢$圣媑#亼巠历{蟪#0}荩渁B?!歿~難C戣9\c$=M@e%銏'W'i悃颫31!B劾貁g?wO|v 铺~XJ亽 澉Ul诱Uツ',蓝胬c>=z{樕#`哛K.F6攓荢肾7S伙榩I跚A舌s诪(bbWdF妏p\}簈鞰Hah*C般pS8#樵⺗杂q堽s诪FX澙倉鷿刊4/Ub絯:崿y渄廭s@pF+礀拔釭q燎)~辖6嘥i*F2;釒{牀.w>鞎2$g屶zy緍標瀦aFe=;P暲 8Ry唡錆灉酲B蔤 *矑dRq穩HLz侽酭3尫$?/S裸 跚菹JTp\沏珑<硋跚[ I")2钇鲔9=x鐭I鲊7J0奜@羢呄B緒,UVb&z絆8糸赩CU樼2粓镓蹉灊h卬#"嵸b艍pU?N兛颟爧蘺|苨餆F吏馵鍌*(Q1膑蘈徇s喫z 羲G'H没nm(^= ~1Y 愢1˙3鍦埣fX!寉h1藌抸煣|鳔紛/桅HNy惘H)]搑`Jp酎G_j9h"I] 9菭齨疵0R(&Q'8霩:歊_|猉拔I8$s胱鵰迓w綜梪乳寧=?Z"欵堨.e鋹@蟧雯厔r政h6喫邵砥1襣{垥貢車9` 艻A>紏h\#嚿73观2 黳1={E1h]1讵嶡9樾Y儺Hb琝镂F}};殠m+麘0%胹憻=08 cY"@齫俒=谷惝i尼e*椽辍忨嵩姱6雞UW &JeF +阍=篢$a坈U?18,A'槿 J(ySs#曠#囜阉藔渳3擐逡矟抱#y軽t9惜)0&'eq熅义H';w眍 f◎鰕[娽捐舠撣撺Kj穈B筦鑪c濼烠香鵏 嵥刡旄2旲*i=⿱藴)U巔拣巚尓瀦te唜X蹈fd ㄡ[Ж珞霆选鵶伝t@趼 н鶷鎉2鼆'l爖詂-2蛏l 傘8莝詆诪x +蘕*熒 槛C褶1J"莅岸@=佰轻穡隦貲e0鞋艛8鄬>'橹l錉萩睃?v贍樎前荦榚:治煡A |譸 潺#T*瀉.A @cl翥藓樏,j83c>( +( +( +( +( +( +( +カt閫鋤岕霁磩0FAv'鱽蒈3尨`z* 橳唒 驑騰?=rs炪#毐盺詡7#v虄龙擁臛ij4r"6nz赭莮 6顶X得4恠椙<{璝騌寘C睌l餾岭荖恭,蝗巕叻S.蚍6膊钙令 #?榕1裋l煖徑 顼p}:Sf塟B% 渶 q鐶嵩b悊憰#蓱Qr巠u'3座)A(f贅孔1钱s隌 愌鞺苒窐嘒p9?徑8*/棿峷` n@`绂:冔撊懯IdU62?媔郿\愕$R?4.鋎c/∴渜渦蹒趢De沃DB莈a佉涘茟;嘛P'艭\寏45作匘2庈攇3眭莏徧1:+p酁y鄰蕗 U膃@苋2剳摳g叻╠FR@雰朦7杘1䁖莩8:}r>+儏橬A=r8荶|夜]般nNGN糲1壁Y兩9+#疛0>C熅麫忬斱骮&球帻y腠Mo3懙J≥惫9榱銥?τ刀偑n*p~n3濧 cq鱪[&欯8P2琌#袂j坣delㄘUr:LOg惾牰X6 憜蝯寀鷬p峷)0'9p> f惃?1Rq髆9霅z巎幇種癖<'$凎8=坤(仡7u沏赛?圁撌豞k+潳uNA<~UF@*H荿z笤Q+絻宷A耥H袸@S瀜伷@>鼸#獱9釅滣K6×阸䏝S薒@\愀<鶶H?2湋幖v胂|~T瀃邈栧絸琦鏀憘 r34'R巔 z*B'?.$蜊埼:~筒*6 鄎LV8枨应iz溼F>^Iδ'曎蘮(W埑怶s鑣镸 uc谍:8鈽纍捋攓房蕽8`XA 唷嶺a莃z齫 +  嶨^}?覕佥憪f筅4 >Q寔岤z謤澹 A$靖栗⺌驤Wpb孛N8]軖!r$x毓f]肝N1庄nZR%|櫢唣~4'烫&邹U2碱G^窫S; )p?3显SG#',賏瀡?74(+髆 騹z烵\澉(UVi7! 8鋑鷔覉恫.S錯荽.I<酖;彯G1D嘶t2向豣s尊龄歳v0嶡x専@:lz髺*瓹 巣銻2⒚俽刴,;y#溲r鉯f露[i cL^3廘sT岅櫲悏s実'彗鴜=3須6梤6 #顚銣揠鑮)~P郯球z喥萸yhど*錐r屼W狅篆NN謉脗躷燮=NG'啃P5Ij 孹y嵭硄煚擑;$圼1崸蠭 >qR* 掖hK乘*鐎9麟北#霃1?╅訆x,aC 糰F廭庛49潃c箜`2s抯饭漼'憺j8^G"U 懐 +F襉3`渦2I3啶2愯89上S湉O苺蓰憣垏9羉羿鏉蚱蒡3I皘>跨覝Y%趘7椄繮 蓥䲡Y.&Pa驑6畓焅 ?薿)33禮)?嘰琊Е+9#c1驊q寽滅$訿檔赌w,天x8 庛鶠}ipd敤,應`>?锆髪Kt Q*-窃廾3谉zt{ #琝飴p2K}忬鳕,仧$P7gb`u0 )訅I鶍哅*ㄏ_蕣Gr9#g滅'熚H, ET搻W 蟂渟轷葤gu薋W$岜炪豨'#"a(凧Iq堪$幺犿@怀fPQ潱鴱縈繀N垜 yp钽H藆?鐘谭{鱝櫾 軓|憸(+n骳)32@PgV*孝2>Ft/貂欂捄嗃 +熮c.黱8睨{b-L騂鄉s颢go蠆xV琂醰胄=O$醻n>渰諳?1懀寪q荗騢烑P産sB濝鶖瀓s!傝弜_醍?0囿羟_AS鉨C( +]('秔2}N3RW(d痗謤*y嗇晞l [霭*?@殥凉暎吺(茑 栚珟悃v玵瘶莱葲碁剄#懬礔毯d#\╬zQ:Y蹸1嶀vD墉9躵МOS樵銘H扠堄c#麎0棬霌秕│溓5朌oB?欱佫0c寣鹗x请@<<窧瑹*'獦鷰=9雰譂鏗浞nQ氖0 +)o拙>菊fQ厵颹9+窊荢炟1妝粱u#!軓鱬滸鏎瀕浜lbY乞%F狲u帼啢嶻L剱+a笐莃A崹媩銫餈昝鬅\~偒!!&E\醻e廜綗聙)砉螫At燞q髏鐞:詛и$O庘躵Qz懹隫僛*lU%2 艶9鐭UA+慍吧咸2>⑨燓=?288;G"搭]鸶荜焫駫>`q踛巬A颲]踭伓彼抷鋶?v8 +2睴~k+ 蛔辂緸"軌>VT卢伇有熷沶2Q礈1+F,d燉湼荿佟b&]虙$愣4洸鳡h荻*豥c瓼4.D帴]]犁i郹騁* 胳5F簬灓*rb:8l'擙h7m賗r8b 鲧 +\垗#o=G_n溨勾eX葦appT>=机vηhe崣$X2|必 ce熓暣抴n7!h髲綖匂鱦0(卑:d=铰癋躎審棬{酎擘4{瞕}想颒,j粅缙?愈>龇))9 ?6翧9轷訾穉 ti=篵菲唸笌v憈fRC\#<瑍<h-甃:o蕠弆g啧4s锢b纓G=k.83嵏聊|控;=秦酲裙-懠帥2仵-豈-菳8颃z氝:"37v盹衪D#i +z匼g鯛xCr7筄 +G 懴覝恩$ 渆{郫N笛e鳾孎1c=~t僆m匷鋞 b 1_A肒K,@鏂NG=}涤<醻VC清W听 屶\c3a簠}9鈥0叺 H>滖蠣Ztv2挪D!棊?麺ne 圵898i3躄踏滎鷔羿P哖駞p畬N6`顀OR6I.<紥v溏\沭颷+,I4█鍊?{坶N媭d梙3鲙s擓鈥1E鶔\*鸸`{滗~碋畛ヾ"A} 聻搁蹚=s柑麃O鱴Nq=M9 -鵂 hl珧褮飑FB.J钕蘱鱮9硝ザ秗C<毂募彅m幰}y'分羋<踕艪oA/豤 噋鼻藺陖zP2[#KSo惞#盖j'飓p挪嵒烖x鉷蝛a-6d搨^赶_萧-殟护戰9>瀐'蕶抷J宒*渻𑅃?@})埔H軵K晪%ALz你骁穦 +K濯46:湈y厢躴佚)菩z髮儌{幗}Me↘f<.A衾韼剓笃*F祿鞞y讵汕铅A$~5! )$t酂S~苹q8;v牰钍c3;廚鼆~緯+う0閯讵罁3瀝9n a竷x9氵< e針';g:cg獟J0盉屃9|鬁濱繇姃+朶3эX1DLn8=HqW p*郹s屼岤t鷅+a頥閷郔 +r###铙<&H$抯跸j掓)肈#慶蹷楋聻1宑>镜c熹H(a苸紡謹Cwq徠)瘽竓膆鑳z铅}>怌,s时懛o藪7>s骻O*&^- 阖觽p粓"nc¢檑驙 ++ca#> +>> +stream +x+T032472T0AdNr.W憫━瀴X佬吕T侠P列訪宪蠵烈豑弦?萛%+盙 +endstream +endobj +92 0 obj +<< +/R7 93 0 R +>> +endobj +93 0 obj +<< +/Subtype/Image +/ColorSpace/DeviceRGB +/Width 711 +/Height 568 +/BitsPerComponent 8 +/Filter/DCTDecode +/Length 54963 +>> +stream +AdobedC +  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY8" + }!1AQa"q2亼#B绷R佯$3br +%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz儎厗噲墛挀敃枟槞殺¥ウЖ┆渤吹斗腹郝媚牌侨墒矣哉肿刭卺忏溴骁栝犟蝮趱鲼 + w!1AQaq"2B憽绷 #3Rbr +$4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz們剠唶垑姃摂晼棙櫄ⅲぅΗī炒刀犯购旅呐魄壬室釉罩棕仝忏溴骁栝牝篝貊鼬 ?魵( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +(a硨冏i ☉P鐂Gq忨3ゴ虋劏苧q飹kybH癴pC(g矱PEPEPEPEPE0葕踄7'酯F粏q?:妶\Fv蛎v0Js忓ObWR8{éP##8#}E &3懽<䲠)懭$癟0$c9EPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP:揚忍nbE.鶝 拎'9镾2哛PjZR权r3骻>囈,QEQEQEQEQE2箧v鄮A錅c渰煣4+K 藗@K崳畍駫~甫I2デ嗣9^F伾蕊⺳垵8~胬恀^'U<佔愎 [p>k篇p O蘽Z碤($怈_飗缈狉9鞳)q==FG9鷙齢j)牍0(>$>T9麌犌=GB>註!縴] +紷帻NデFr[ + 驂$帩晴JbR苔8鍐9-隌 +飼%鱣v$o肷8犵(<扼 ++匬膾仄2>恐p鲃恟N=(蝠帯姪酈6 c瑳%d2F~['<渢]胘b髼*gP#在 +exY矑8諨鶛1任=[瀦駣咖炔兊 . 炥儨U擕h1%:&1鱅旄'邭僖u镯唴 r萜_3杞;0 *<旣亩胬卖鉘PEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPU孑瀜+瀹g/sc儫@jO齀蒡/闁寋騈3i軜dAUT-純蜪蚅 丅萒+(茳潵鷔K +d忔VP<望硞N?S﨓21f慟#E徦 颉朐踵姺Qw'疼幷苸晶幍%5:9留$蘏+旙-fO!3訯n6冨6褚%((((((ㄢ廸嗀芘(g蕠2>v.Y弊ME+ Ay0賜櫳嚣鶸姡s!秺8詎憸v'摐q唠襽&惔[!I了T笙SL姰W* a "儘脦8?页歩泑厞崑!$.鍾帕娠徛喐溮;"#<壙|燜G=鶳茷F槫弳-芅FX*zS抙cyw*熅r恴裼QYl焧咁 +*蘍QW&鎛?^:v i6倡脫6铱9銓幖廄(Z)T枢 縧73哂酯.Lj]*e陃儏鲢郐qY疒9t*$鵎UJ橱彠袱uXI9U鄯 K m +8;t B銲即*s炊鈘7c蹁s阩:葕枇晢A舊グiD垗6嗨蜧槶湏寋U鹼磥觧哂KMb@<髶)誖黱厓鶖跋9惹迉^9 ++籶贎=饄霂蔟╧皯3暽 +O万擈q髏偽q摲%簩7稗紆镒)皪惾勴H詃)9老N糲^鸼3t泎伖~8荲<謦K耎獶洎 g渨蟖炚JYIb力 .(9樽+9莮{R. +&餔缦脤帛蕑莮r=h笏#箥Tm衫n澢蒌齲ˊeyL12$渀 評<:fb9蓇\湋衟欆zSJY3c亗a-誎N3择螻V斟Ym湮紨q)善 軆宒搼耀鳪K栟鈁塜.hEps蟶} >V禖srB愳69l0鐬G8锟6H褏 +艔藴摀庂繇@琚((((((((((((((((((((((((FP蔝*F= b匾$P繪畑岶 +寊⺌絢n#祏L!b阸芆?nA{慸p$ 绌旵佇巤鳝!訛堤鴝]3謑湌8蜙P:硅袮X踫挘┿?Q@+F&6Cg)b .鲟|竆v莗:绡 2捺3.舗鍔 翳 鶳嬯6j,I卩Wq躈~铷蝳}*吳$x抈@\c鍏:K3亷}V返簢韗M2 D d萆 A\|傲嚇菐:旍FJ杄 8餆究仹磻-筣L僠E嵨襼S湬%辽=~TI;!2~靧)9搴髮宐慺芟皣析l玝N7鲺轼V ー仁慭:疩撠騫/#XK筙!%它膾犩gNF@)鴤輈稒,:枍c`犩?氥0G趾[P⒅-呚1摓胀x夽 囡$劂 溽8$m=G;證t隦 I徣z( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +神栚D?$x32极,A6/蟐W=3>晀$e* 1尀'隌袽芑備diQEQEQEQEUMJs癳8b 蟶q蟡稱\騦b嶵卄粓=(姽TI$槙yI)竌@';睝签w襭$睍THT*v噹斔ㄚo0f5?2瀀g稬從鋟r7惒!孞虀@ 螸u鯛 q,呬)' 笪0?狅毈L榈Z鎉' 湌r#^绨臬)Y尤嚍7\馆3(憳;v甇艫酊WO`1й 1嵓9/U剒}恉1哣8B┪y9撒颹喌(鋳$ukdH踲98睐PQ@Q@Q@ST0-狼AuQ@Q@ }a绷#層+Y嘠櫋[ Z5!劋楞瀞抓iк\:uQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Uk嬰[g <鑾FB撐=q榱鎬,裈沄癡e7Q頒串y8*3n渝埩鐵hF姠毥儢 r'岀5鲱浨鶵寣颏q戏iS<ほ(v9蝧磔7屳*鐭彲i抶嘗岻鸑8s厢@d丒")l饵6N9a漈x(H2p御Vt)觔}≠﨎貮削z觚=霔x.掴$R.rg剚<燓w%2 $T鄰Nq+H垿 排膓姬蘓c滒納嶯0i掄苒诮结u7a2x痏jHw癘1⑸*:黦忬卣訓KЧ繑#;!g!<嚣犏&@&D 櫪 懬硍戕7棅\Oo浍虬c煣蝷:+5扼pme惝F{鳇辉兤v峁 +絳幋已\宵&腹苰醶~u^缙q蹈Z皭兓塘Q鷡4忠'嫞 +瑹q笨GQ衾峅/宑,Z86B2灴N烎譗\h駢驣谯峡^据涾君 "鋫 + `zs颕郎閁睢V墛腔's`憸n将寚臨堃U#!vF:炴揣媇G瀍媔荞l鋺? 惛-b%v2曺鬃匾I篇V! +鍸潋@莚I鐨绠祘Y5 塝眩}槊q;憥=~碐$y$鸉0躢p仦Z胴C!"H詡cB|<p :誘򑫩叿朷牪G料<髝=x鑢#猪鈃9倻e.篌)<侢:䎬 諻蕧Ap猆婍胬薲c;麕孼 #3扼穤留酁怠 #躓iWl繖晱b倂刡 +9蹒值瓅Rm;昬朙駫21嶪汕慷;Z骖$+?iE侾蘃.zd`蹒󇪧3-軍瓗3渃亗y魫k佛I$俠9蒮鐭O萈c鰳熗憫I " +I迳砦2@├卟4-$,诽讙}s蚭穳&gS鰦|g飝t笕q显鲫q "'s贄F堀cc=餼幐< 憩Y靪捥pr雽摉麵胗郧q璠Y|能 坻>^rs荿c柄Tk鈣+/鰓fe 劬=甚ó糛d盉蒱沂胵茭u蕗阝苘4蛳Q轌蘃阹 <渧覔P矋%穣爃#菢8c'>鐘姒.鴙瓓,檒;0m犵8c滙隩[U 崨d +( +s?N貭 mOX泛焙劸T冊蒹c<亐1w跡ん(c+0Fl偧s亷Gf竎]儻.#$ Yq:鹴;)pq连玈y-鈨"y0n薋IYI跎入術筅5èc噊斖澣1湈q濷=7 ,6黉 若Z熖@7铉#J$B臗ーp@<姪,i*3v禄nz炠箱;&驳 ,觱,GS骳8镲@狙莘sb=q斛T12偑罍8#戺囋`馫 厡洢芰U軝*89清揓謖F圧/1丙竟1\鋷欬h鋝G*+琀^偾獨0"iSi佅Q?NG鏫噳 =籤;朻縰7a眄\鸺籑熆b2)}脦鉆犠 偰T!`灁}?# 细m輢0\}竞Z2郾b熂&e!8k讗=z垰虠|溥竏鐚} )u陔髠zsS9s谁债天$磰㘚v鐞@?N2k( +QD |臦 渰絀 馧玛鱭ZY-芴陲癮夘G_^灱'k欌1鯵粉HDr嗼Gd绺霟s隌敶QEQEQEQEQEQEQEQEQEQEQEQEQEVイ^jL铟~QB*}H<鳇篤凛x_RBa3F0r訇NO^j晓脑脊%x]P 眓摓+* (pq(齬缩炳敬 jQ蓧曚o,&G′~橔5鬳|日2@冉鷚蹎E趤&61f萁OP 鍓'x閷瑳Z/-鉟T佩fD v鐏澻p(%鱍藭罅菪缬蓼嬅饔2垊N琀W 7羹JqK嫆0e3懕餙瀓Tv髽 +I(歌NFEq聒SQ218?87c迎B竨2_(!b䥽nTA]逶-轅@eb#鴠筘u蛃雝#迎鲿th嶬v漩*}>n@鯛逺廚6-鋲#>P憙m#犎潴烒風队 'CdS7^GE泱臷氛 庁塭2&鼡懥繱#¢驋j跇.揾弔F谢幝pT c4Jk岮$憺-l2`n埭#渶}4穴j>@t 崨q_0@S戃}?J;;VR興覣0枕=21󔯭)楘|j瀍硣俓球醨r2H铮yk{u湪!Yp鑡r + +*诿q4柼\郉塍7 惽犖A蝬麺i稁$sF3%AR渹蝧讱Kkc鉠瘲r籆唗=#=>魱 %D"[<<`~?匥y-崪 G伭鋥铸胆仕汏Ux珍U`3潉A\髑堥V撑40#わ 渁=饈歔Vky&WR#凄2p9?^逬XV"2扚z g呔~溨蛯b+嬙还}萹* X侳yp憺s跂蜋&9bp +郹駪隊 鰁F憡+側B,蘩鲼燳纍Blm}?>曆I識狗}湃8V哨躦$渄炤谎5袠惨`辧 r广r減y陗^輍浉眥wE慺Fd邌l悞C4媡1甍p[儙 =2}獼H'鍥o餀T3>噌驾$苧g%懘d鄊=}}蚾 审l槼pcg蚴偣鵃頚 羿q滙Tdh|6(FT 耒篆i艽[f夫"gc騲槠+vN 襽Tu隬:*579 x鐜縉滜@#峝侗訏9=;SW薚e% a棢箅@.%硋,憚*0T靚灖?掮榕U敗|0縇SA豀=J泫PDe喴@(珝胿q瀜O?x:圆[cr~攠&%縵F^烗G;&+*7kS垭鶷e矤09閇7QiD頬亜e97g=鷠k5" |膕瀦跚[4鲹x101M镾樥Q偺F2@?苺"蕨;恎n3蟎蹼V#勌罺<>3盩扝琦w霏剢4;劻>`UrH8#冓'Gk鰦杤吸滣闲~TVT+3Kd8蹁s#Z嬐譖鞻1躉=駿e莨y7塢籜{~据s本&蹊w7猑襏 陃餚恠鴇役矍l"rrI衫玳O𗯤嶒U ~],_g 衊p~^凝yR 獚姰98%廜蠚=@咈>LW渄u肓繇I鬟R2)`- 鐚鷆涌;嫾獞闾A彉烎內H":G陘竎顓滕bq Y躵?N溣暠/铳@昴t'逑|郤U湨乒C)\ 嬢O'堚漖堯錱(芣噇E$呻廜Фh1碵O案蚰!藣П瞒=陰t讬Z轩扥缒.鮏 7 劁}k};0B僆N遫飐鞮歵C9U哬@V>by鐬绝 Km\L,X.]愴~ . `:鄸閻1韂Ms髭擰\F-aJ嶣<]鵣兩8樨婧 +)32!NㄦgD蘱鶏 骨?牲(W7苘Z谫穿$&R 貇a驇泲`鋝舌-䴖錓eГ睕捚2丸纔阸忕]kU墬蕰L 郎Q岝'5叚埔\賵銯箞撼9声 0<<鲺肄3 碤拡焅 +枲砳槂)岾怉翥颟(((((((((((d.U胜熑P璁sZ疹, 梜%禛脺=>\笕腴>忊y峄e2O囎,йwtTQ\C9"c眮苲TQE悿帋@噯牢;彞r毣辢M软0T驏F膬佇笃OL譥\邘麵Ajf嫨Bd稾7e *H瀝s寊+A.5_<彬X╓#!8^@9莑熲绋瓹Jt嘕暼|德%FF绷隣簿競y^t奃t%rぉ 8缱焛,>t匒fG萦яg+搸辊5M'xPM祊QQ睴#O榍= +璀A孎.莉谾佄U#煕譶h,J灰2姼9\9y婀莄,h慤VE醁dz /N:*Q93$r菳綸X愄p9+衦(T薹蛏颌#c恲 蝦I汶自庰0%6爁,6葍h+0{ 9甽_枆 ~0狆2O\鸀嚠*7F咑翝阹朴朶硐\/\t :鞕茨萡#铋鱔3焲w舠稉y%,杠A$v泱脎礹]F瞆FI)L'嵺7:渵u廆J"堏4愢<1滛Z峫&f8*惉w敁廮Z瘒(N蠤蟖⺻ヽ楓箵$扝-萪Ol颃q跁UP釘I蝢惜鎼=習B試 谷\`c工\o_=U_绷x ) *G8鐬y虭帎+c鱧笚溉 酎"H氃瑴:珙干y鐝 @ 冿? 苺2*籰慭 懬$ 仧Bq鳹莾除?纲腴䏝#;30c+k拎o艒縬恒=;{=冀澀m瀈浿1蛊pB嶪и臭$0@D 9W>gub9汕9嘀咜 ,.崄$gzT6鞘剤f妉1"c8巠?廕v礨芈$02蒹弢袅轸绛I)篹ug戰嶄昌蜲|笕汩S"!\/ 紳莺1陒E"诓(FO,烢闛瀧8 =磳%顚崸h醳潺泺鸖T蔰巑鶇%泸萔'刽脎88g}胠妏( 囹牉y荝:w泀郌hw识r┪9PU窅前G鋣eF u,zw8⿳#M&|ca闇鐡鴖芝螊纟緁[8rq玄b2塥#3廅顯亹q2纛{q垴'f唅蜁)霝縲隥5蘍玕dpT<m搼轻UZ2颐4维辳( &0y鐷RG隌祒1 +蔡╂0t'疨=:q]-r撽V6:腘2b峝惣i徏 懥缈跟斩5H踳(缕K鲧鐰m\H&錏e眆蹃Y:寉摰O駊8鑡灹 +t"規詉w'枅鞷9上骏a揸k{m欥!躳奣,I'鴛鰻v桁橨蜀A胂<蹴抓l犄70榉瀝}TE搩陒g 纜o8 廰R舙nKX)圏qV噲4(茸C)>橎O袞Yc{囔/&v)鄀<漉飱傠肦q*K + WB +躟zg吖翯^/L赧/k6:啒慫L$a b +0 `鷬艊C紪J堎FK>v8翮8膽%9鐘'嵍矏聂$8脍*[n6*佅 +(=稆斋$=姮始n郎橙鉘[i蚯x6瘩s>_9脼纮q肱u癆櫻c1梳$蝡@n輍灪{;萈曝 t蹠Vm亓=陒徠#惯寍i狕乡诘 ?h婇0宎%QC2x蜧筇觺m02嫩蘤>c怈+優惝{=c[IZ鼗攚1Ae$d亷蟐$夀O0+尿.v懶.O\哖哮V?$Y唂U輗@c嫌 瀩5b9e宮u T^U錼国h舘+%薋樏H|礡 0 t)1虤剆垸 +3)6*s搾z琊л I U坟~G&7 H;IR0=舊y'[ !6醾巼qpxmneo'钌1间 1飼+ _C缒捓 (囅贐0錢滜岀)戁-4X(a竻q`g詝)<袺8ICHQ6軉鋎珏蜪鐸鰻 dOt@鸤++社觮u%叅扞)h袀 8'崩5.3劾汯8!39厢趻驸晚鞯紣\菢r蹏Rr颏q橹囲栴:罁獋 凊鷰嚨.g叆 gs;凹亷嚀頹稼奯#+*沔O3wO鲙>蓍锻 奍hVE哨wdt茄B鐘贓ApKw儞=3i4埐KQw邦O\T㏄6哢繾1忎*M鈝2琄偸2s聦摕]^窌d 5l獑 +F'8削0酡X!菩/+溔?矡疛嶥鸇盚沍R@w{.鼡M陬#0F0F=8#身:PV +慔橳獤r缳忴V勚K-*﹑]蒇vP3淑儨8弰奦W`vw 湈侃韔鍐趚] \獥8 竢q烗 \秞臼|J肥8E黕劼!Au駷镐|眠焨q癔.饄輧獢+D殖F6>_F>枥寥倾5憂2屠繺湝TApi癫Y?tg穨чD搰 6(螸/Jz剩`鹉錅t闊SO邧~掮P'鎬4檾+3G抴 悾厯蹘x锿2y 糄 鄙C 鞴R $=N琗钿"磖楏Q9-阺湝姭r辌惢怗$`?=T=A~0澹7嚏9懳pz岤摐溾騤腈+咈 o,G呴翥=zB dN岽惂訛赶B1詒zb#1`偃S骵=y韰牋唌Vd:Eb堦僿?($@"]欍!d專.凵艪#8'疭娤奾O^\#,轤臤L褜旻:亷1岦宁@P冴識模 籎 泽磶紹岚{鋼臰抷澶V.懋ピ0^IAA"膰j騪*蹉->瓜z敥<,2蛸 侤闚z箫(9'&I0>勂]Fs:#>敄乘 燃6d 騻X嗠穙C忣噜vㄉ;HFa 籲酥橌樋x%蜪迬湈嚳缭MJv朣辣K萨9鋚zp}o螏=j釯涃I悕攘櫂nz麘D@ ╁A軠駳O$df +'孴餑95S酞63忔1臺1F"i銓yg锴廃z灤z茵藋)bHu 郿曯9'!絸癵e 猟e.8C扤s彮C-劾QE +樆v湝搸鳜蚥窿蘈闢@M$`0螮辱}蝖z捃墷ev3(貍[0Vd娄赠C`e#98襞U痨7鷟-蘗HW*B拒簏>摘鱫(y"驐%K98另蜤g5巘藮県咛Le0櫱$.襯F迍w苲謅庮(ぢ_錁`0x鋞矸ui鰗枤詪i_,窱责wm飹y黬瓶{ 叕s芷dbv*+c儝3@鶈褶>/瑐鋻.I8妽^蚴%庅d崍嫾JY['鍲n蕊螦"篗?Q]JX鎂膟m#缈缬睖sY&诺T*剳w檨V/蟩3`X述6,挾晴q*s濧悃… 粦孳K-蔔缢搇q)Q灩8羯缈z衜:)啬"4櫃 惹寻@慎囿Pc #N< +m聻:*q熤2!襜蚨芐 $o嵪8頖~3詁╖粕s移c鍣Ws&9輰宑+ x恘h聮c铕齷AV耰濪l瘛邍P7Fg管7#4!勾晳\闯&\9赬3訋CX咊A;e固坬笴8:t瞇m2G縫c. nzー1璖m-飧G5 滻`33芮?轄o韘纫$UW 窚}}阓祗=6Db埀憥裹洀鰍舤2楱壊HJジ-; +1仫擑2 [XnV粌+紟A9I ;诪z{P.龞u琡9憘=}涸薻p穜榥B)9埗0舠済彉"磤DX罵# 妥w7P^訥m穓Qㄌ '}9乴DgvA鑢1膻}*[V1(`蹭減G祎,\>荩fV0FpT駵9銓巎揁R 6$裣退ps9绺9惴W髽89S娱TVy]釆穃≮Gq舆昺郊edH萓偽T9'俻 陑銉秜j垨搇狡9绺;89猡D]牼@'遵檗耽觔x湯:>(chn17腴T惴劏!^C喥x衫卿NMWX屴Y砀<価je碷蕎:d鷳貃T8諵谷9錌\r}1歉6Q#7禙8^O#L耠蟡-*8 +Oㄏ鍩謻+Tb户P >冱*漃<说$7?p搹^:鼽狪U鉖E称O 邕a衶Q朠:X轧#$Jh$ O~捡謵H[伻<膻qI) +秃$M墚迅'щE$wd8Q鰿 H$wl>I罫鉮 =8缇*;d$袔q@MJ愵\笄Q僎湈ば帞<俄 !攤8!9觌U髪8q +c洣("嚫.K;稴5Z)囙崩9縻狅@墅N鬺屶渳8鷠{缈#*派l鵋`*昤T怗 幵闦ネ.J) +廲迎c貶抽慫惂錚Y珏u G8=:骪.飫bX汽蕾炟'?Z穥 +D &,韘鲌 鄞w嗙刡|岀ps湊=yず]奵憡 a撓@s俼rO癸翸s秕鎦4 $偳╆S@瓊竩垝1揉梟y樵T $<曩翆;p3懽侊YP傓刟 t蕩鳖j勒#f辵R0A99<泮 +洽4R錖辒H9麪s樽鹋H挮踖cd趚;簈=2O#欍&Z@N:qW穊&龠濆w蝽魻 Wy訚乺駭顤杳餚9囚C' 兤;<渨阖SUp(\鄠a荿焽昢[x@6*岫$懮銤=yt蔷 rw漶j捪妁s#笪FANF@畮茈睎:拁l湇鳪鎧!京xI%勌 #胆躀}bn娲 _3?+?齍_EI"-<秦W追nkf:h%g塡 甇鱵兀6駽q%J?$$拔蠺蝱蹉衃跥H蹟A:恟絳q哂緓/翊顃 4J$T0鲭鴙6 ㏎7\!Y鍣@?=8'8R洍徫筒'縊On3託\#vO1轃蕖牢;rs優3霘劼*矸-:刻s"t鬁估 塂籸NCI>`蜰q@$qH;19埻 S驋嵣滗~琛VbTr靝踧拽_n+汃欵%俓#y禙z醐X艿 ︰p?/旲9限9 V?嬣磋鍍;D 胉熚4鬶鼪K-と廛舜Y儝1aN7[玔棔 W梔HJFz濧砦 +傽7}糶 繠['痁咺宺[`窕眅缣@v禣~儙hVKx鈩芼姫踌< 潳c鹶Ш纆+滚嵾r笞#闅ㄒ嶀U6釫p(q蜧`X熑鷉胯& 滗鮃摿?O讑休2橙霢F8;H砦v觪oE埼 dn'I阕巣g蕞3Cn筢犱'┆韝%k朢&%)恱蕟>囿@K**~% X(C貟2J鲷镚灐敩)礣y&銆鐐F斛3]o旐阼C全繿鱡鼛:笸l,鳖.2RL綦嗜O娱@鉴5;m !02d?窤1颙neJ媭釂vm;廆q岝Q?要$娧&X蒛T鶉 肈N=2翮癃"此""庌Zd +v惴*喵h5,d 崶佄0刮涝2\9m賁 S#Q寪槛摸灂2(·lb?篃:絷\+刃0]人/鼓嚡ЫX箲姴堠 9舌鋤s1ZR矷逑+2,壪$釃岿歨箥鎻2:Vl钰捓c粸湇豩K8 +1愌d倨Oa椣('Q湭&啵滠F:扥<广?Zc2#+'?0`撨璉=*睆j葎g哴崪宒t榱*负岎9FUS渱 巖>>琌h臧寛敘籬薲篦成=+>9-劕棘2vpL煍g范j螞4+,蹠槓槞徧s3植銤腉睉兎!{1瀩W鯛 <笧臬郌汙 +`s灆55多短F@上渣織帧7冺>j彆8 @檫 $S呬N天db #tY<{吠荍z Xw鰞?1$< 抂耏&恘I9 老鐨"rp6}介蓪*1=?Jou`~Ln靳翩j暁6dA:Ns炚I9`X寙-蕃鐞6澣 ~?藷邠 乧`70EU(^絳UMF軷 轟鍁傃耠謵唔&1#轾?O蔁o虣` 躃Bょ岨M道弞%尅札制 笤m5[nA鎬y痁 y眨拁a熡=<鹴sY狗騖>刣g螵晏刴$s黔]]FG內 該燄黴毃囫熇鐘2騝q$斊$uド=)学樶w*鋪8欶 /I《呲盪$撐銣侢8$` 袹'(U,pM!uCJ>GK寸·镽)#?Q@ +K>歹厸扏}盋侴==卋J)}9苶粀鈥B豹H 雿螧9臜罺t8斛岳v/窗8谑:"F3跊$ゝa亖'懽俘魼 +1鼱=pAR壺辣砿T攃壠I缳*嵻m 如9殍~渟颲嵞2c"A(#俼懴=盖╇@)$け,牅駺\d饅蹒={調.wN虓茑箸?唈驡i r鐈8 鷊"┶cvu蝼瓞0怉<~&X簿\h厒厮6岱宺H<銦氓 +&歈$ b*囨c蹱樽豧堤0=蔍k h諘[v鏕+廇=pGN Wy#尓瑧篇 葎鐬+抸4瓮9蜊毋髗*{頖F蠡 +FyzO厐_趢s脄x纸bxD狲0鄄推~锾x峬EPEPEPEPEPEPEPEPEPEPEPE5貿輦獙扤鏽1q鉀X溻3#g;柏f 必2U慩鲼<撻閆d 葆淄葘r0q瀫撋舄"p/t鎵[蠉#b钨 亹0q?苺5顄 ?得o$)p扐 抷閷u镽b8a]F8\)#蝣髤;后8>剒s崲H嫨墁 +J錓劚黪d抖R6g(#i 蜲ДW婻-2剌紪A嫶裮>[8胂N=4栚狧-谵▌n,\牦蟴>[X[-膅鋋 馋粷=zp茡<-玚〒滗w'嶾 寧繊[嫡c捵l7Bw*I*r*:zf眜箙努X禐?*囁\ 撥帳鳝}5n$*Y窇Jw+`凃疐=j铒oe8+苧N?!<頷顟瑘#BOQ筃:鐐:廀Σ9原\琲塡莕T 諍p鹰 +*Bいd嶯帻3蝧酾 )_*技傚qg 撉謤$8hF>;1觧q9=i栁#JE m 嵞搼瀼腔+J[(aF|韥Kl_欸蒦s豦G^z,046信B7笐辽Ж醅,e9Q莑CBI9峰>斍穚 哿頗8?听(1'橕6rN8涎G蠸eV%胉嶰'?)B<坡6榍搋臘T鋻['廭{8x蹫6琰?蝘: c9)轙緉-唆鄞琰 m3!q 羆~建漯0B倆OwFe~~潸r%嘼膕嵻駙O^覝ln寋鼰;r1料篾鯛握9 软璏枢濑a壴r?^洷亢*惏肷o\n3<二4 屫 惜Je篢玱#\燊國訢8# +;偅 7性[IRu(1袖*@y虸nc邏wm<箝Jm丶d岒脺 鈥"'"挃宑=(( 鳕$佋肖2噤鸔躾嘤鉆$啬 ?甾!4芝0З鋎z睨{TC魻鼼禘KeLx?鷅< 鵖+侳辸_隌1wD 1攘绶筌}i揖]'-/,r鋺炤N鄘w颕&vJ慎Ps嶯?捭艴酉斯檞翹繲{x#兣Stg藁20H苶z惴4拿 稻`茑`濶8閼Sn⿰.獈V憘s鱴镯4禽 起r'優烗:廫Po蝁K`甆23庄滕舆Mh瓮屚嵒O'wC影噹j馶LG #蒹鍊趕亸8霞<4=12浬+惸駷zq鈥3韆 m竝錕$鹓`醐て辽,pLj矑7$g8蜲ДW8*貲 洎 帬g=~緰#惲""`鐎訜0儗:巬澗UY膏鄋圏篪誮楷=3扐8?L箜鳸 +6劇滩0痏銭o=嗖鏒!硜+夕跬t4QEQEQEQEQEQEQEQEQEQEQE敶Q@WqH%磻濫佇╨蝪;c狌Z愕铻j;)#0*GB}舫3(デ堜W濜u雮襳;攕@hVox$E% yi01礛cl縩-搂暡C愵А$w鐜儕撁瑝╕3鋮缕H9n< ~罩蚢n\L悹往r王#蟴<-桿檧rT跋筵<舢-"@茆C(1惜蟞俄e猥鑂7蛸7n`x^s呓t燠Fv栦 T紙Gcp#我d扏46b8鄏6聹.GnG伛T铪 档篃鏘e矂伕q叨:廫揦磫烀,鑷 卭攤I鐭C觼熲:8恝i漬eU$亞惝=q-鈴n牌吆2p>炘7O&59迦泚儫蘔7猃\Y畎预1呮 $ 1搸8泷9c旵G"簽AS恏-谢㏕3粁(鄬缈Lq炚(鶏晃 c*VUe*#哩图D摲 y<阌廕枮a}3&!. ).薖T侽岝GУN耠K@&0C+艫 ┶鶊撈@臜穵"fp艈愕W9む 憸zV婇柮暉硆:夵)彛:2矒耕 8犩懲f荆 顜P抓F@醔銓悝襉O猗]J)ZB盝緅坆买珢<[j鼩%愑!q儑蝵や瀮璗椕h漓簱0弒焴嘈K璉&G h虱A0砬\崳:雳沀 涭勃础倗鱄菸I8墙>o '梥Ld澒鋛巟苉:顲紗#槯b嘶lcpv阌<X]U涂,J厜敀鄏91梀H朹/0P+驉=z髱Jh耙2间71=?\Uw廯堞@3苶圁鼋s-6呟楞#孔9阨3 ePv绶癸EJ.d绋 誌缟滀g*:0q渜@ 胏> +c1c94敗I酎(ホ曷愷z鎬 +r9C吒霂絠kE8笕逈J22;腋]鏵J鄒袹痯{RP8499銖謾J1巋奱舂璖{鉵顈>姜F塙q拽?Nh蒖=躇揌T倅CV-y,亗惀晧荗蓑敘惉=GL{wj炞[p!{恾_旭Vc2yYF糗s 屼帩O*翨&銻閻{鲰熶q茀_0瀑mc尞嶙=弱T!尞"U$r0熇Ы"爑+碻),犩语v=獿槜i.F]X)#鞄蒼肢D"祳Gi#2饛答#;}H切c#9=垨kl)fS(臎 //5,z| 6A8蝢!礀樮%睋998閇67眣P n俣>ya人 1佅(煔呤宮YEA#U <<;s,M絔遠GW 圎(珂'犵灲kjU迹.P匲8R:d0G縋8 嚩,L営皩 1憣嶯y靬畚h"O悎遨诽o-Wa\渆緲'怓3氷,}巟征韉莼嗘<#9甪&釨莙,I>躼兀譾蠽篔< 篱 蜠>湪 +殍((((((((((((琠h/(各轾舛Ju楸撕;緃Xk宍熤秥?>Ёy伯貿蘮廊琦Qk+wu埔⑼毙g#9'k 糱8$(9阺@*俳洫3r6磰1"]7 匚3+%eH糓81/杝熱笄c閆鋪 }h9<0_(&Y箈 l``濬G瑛t┦0萊擞=Fi嗈籐Q鉯\mQ 樢昀/b咂雬W$ t檑虧P豊扔藀0醰桳9Px=氍赴盭轋礡閬指鞧熘殮060葡篐~牅笪s@$6鰏28貛萓e?罍=>嘀=䲣猪5諟R貹bL A^zGLsaRO*刳,[乱靀(Oq鵘櫘氣&HI\摪H\t*x鶐q犄殠5砭U;巤''=GLr:S4=廒,H豗H 苞98;眂㎜t駊eU匯\g滖犕Qi'}X蜀4麑{O掭^甏QEQEQEFWv$qI&$瑜Fr8汕5z莭R錰亢峺-朴寣熼佐熩棥!詙>閽 ̄q颷F抦蕖稘=彮6HFv錮d1逕齛锧X喝&豥 G荟螩臚気醬衐朶`鍥憧舡G穐鋶酓,懅rN8焠泅{v崄倍R:紝8蹊 ?Z&4K +泚h{姱%洧y鯨A$eN邤s渀z鐜Mh瘩<已佹憺[$侂慤菊頤軺羒戫=駿swk2 +0UP|n麨y蚐o<盧孫奁這O逯簷u倷)$蹫考2c軄佔玌y&矯皥濚鵿c鵤s挥qn潙's乃削1腠*.絒朢眗坮[09.rx斫#Y瞄9 +覕泥Ty u縻趢霃^澇@垳沐苶x,Wq* +x,囵[ +z枣 觖癩+競|赧<aj廊虸'27cq岤zT実巈K圸9Q!刍駈濋b扞[蓫T吨枨$灨1鳳V峫A蒬=绉l姰+z JP!YH{瑛忶B風笀4濰@iM鄲}蝖攽滛檓峫鈸枙C?SPcev治鍯帙`¬q舢徝 堬5 錫峁霫轱鵚Z0@)h(((((MG"嘑 4(扶}?钀湝95R眙~裪! 貥`O$紈'*瞽nYxe8胵魻 豹iE泆憨酀旬y|彽P評68蘰h$P'=3Z嶝%崓!~N9颸呬3YN鲎靉L跨緻 `蕇 )P@U蒡鄎鴡诂 粒稶v 恉%壡|驦齮5@瑖蔅┞ 撥z烽U奡B寪1亷漏f(榟C怉i:`N氅(+沊萊;?煭g袬+獢+掇 僴T郹鲲湘h]^T郾#nNH'0{毼4沎*橃 +U,#啁誩/鎄學鶀O鏤b闻槚c&琙_Od艩`33鑬Uj(套34匟 遻抷蹁灥]N巔z赈饌\i0M 铆虉瓹彄憸q鳃骪葺嵧斺'=7t?C襽 89敘6h贎2狜>佾v諷0r=z{[壺蕸斷芅‰躊z嚹錢悡"Q兦Ns=A毬璷4?埬籓蠒萛8爝z,(膩幢吗$駻鑯辄X$8諀雦郭Y±r恞'>wF畐OL朞{★髎廘鶷&rR6xN,*0H9搞 餓 &&埆F +╠峼g瓽藢亙8燜幨,┺#躻go39xt闅 ,lS唌蛼\2烒樽恴馱nヂJ$畩XI毙淧U菄奈'O8g尞袐#忈#佫 +Oi*缅軤属9'𙇇F曎鱠霧蝅9.~顈阺驅u莕t&>飼寔嵖*9hu~nw环6O'#;倿'pW尪骖@蓓C?诞4蜓 wp:0廊p醅雼燺3;懟9茿弱^1\p%P戗癏J葕 +澷寑x戣礲5y惿$籎飞"敫r柢z3Ko ,?gM蜹藛S`办H蹨3奲e"#洇\O轣 驁霾*⿸?0鄚Е@靟O益)!/-炟b:).臚`宑l栢鵟d熃 a佇Uso0i*鼟[?+d鄑 c廃話;F袂蕡巳R=棱s仳I>$$濭贔[鵹 艑L堈 `尼晉韤z|揓慖*豤zJ鐡顯dq鏾9nr扚2I8韮\遴 +酑n贘鐪}耄pd b蛘怖 +偦佖A雮幥9陏死任Fq襽;/.嶨簀寮 +G豱"Ps楖孕EPEPEPEPEPEPEPEPEPEPEPEPEPEPM晭茯O╪呮gX额鵶郎轸C1c抮~)訮F.靂L噶x橼剛8鲰躂,漩莝鞷袬[I瞱曁Lo慷F鲟赧瑘4 ]F0鱒廼, 炼6露?宒d=O閗&[椎謒綦kx蘲N砘y$3偿舥捙z$饶y亯3恲 +籕梎)驌G=机R侍憭圿8^繃Z}.睥Yh|栉坢腚购熶5I$瀍{)3蛱q伢英爭=繙袽8(菿}JYw$26蓼9殜伨$廰叄肋怉#ilp 劳:奻虮憄萋e.2*<ㄖ1鳊羝扃缵/裏碴m缗交J*芼,尞禚=辊玽遡蛴韃Iy8蝬苶z*接芷跘呛礇崃②w栠|饦e_wm=x#锧辁:宺蒼dr蛎躿sW+KIoX%琎HKK蕟溴筈灉肢O-躴=h>i5)貙Q 晆2 渧=荖滸}oF-5戮dh繞xG;ⅳ>*_I4掅!囂:烲:觘 汭l噜㧏1(/g禃t鵨奟妡秨$峁鐮;骪蛿綣畵J熏浶儐弮渮冺頹批x庢樵べ嵕V坙z誱:隤 萆暏,#1桮#裣焵僪`趠[蹹+籶Ic=廽墙碁1柺,ECmb$dg骅.)$戃]僾 1WOg烝弌耶.,挴$T2腖I F@圄獉1氞@!=鼂詛<貔硵y叭<翲dQ躯續紆狧圿>>葭 納PX灎~U眏敦'`>Bd 濦嘖e<筩;皘糜魻 +亪酎,Ns巬Z}\ue羿 逛:A(_1~`8Q!%彨c=佂aQ撽k6鶼R,7侸犵r~囬5m!;# 午x諑0F gz胪r{躳{fご冺7怺嗂e慡v3寽f穟榣⒉v#g%2–N: +兟V㈢\墭)X華镓~9 璧^蛭搡 訠H晌cj盓q:噮v4扗+)l:鋍澦埨^8陃湺2y5nv9$|p!l兿∴ ++m沄u匱鐋r裥恟Nq鴃彮Op睌(抮7坬摶p摄烺送J-醜<+m +默J宼9碹穤񞉼$尹籓文$狝;y贕)睱w°F"涓蜫騃$倄=)鼦貟1 +甀鉧肓袢0俎猈 N~m仂*'膸敄9褢T帩 +oy0清 蒱3苳d櫲5nB9+ p雴fP爭@駛徏G"喺 +晆悆髄V'o藦悓Ga閬uc!袇d/曒禢硳pO威系&禊貸咢馠 轿聬"J$f蕁e`.x螧K0ay咎、b罦钌l撚#9刍 慪7锻-乥@湿惣g1<巗讱訏H脏獭壛gD_寺湠 RGNH亰蝒b%F揻舎T<憗憹胗'姪u螳熟雰磀p楞8苮9瓂c7J哑f`狞児-嶄q艪'τ:姯-沏腕c3钷6A%N2 +A橄L鈥c0;碻竛lc#艫苝=钩%孪 睰淝朂長0V鶂=s螩&保潱o$嵄r +FF3荿=1Zq墊禖樴ev'-紸艬S@炒jヒE(&:+欘}珶誃霆&NJ獝琬x瓋#$粯煏1ul該戲漯F惉絘9#V Gpz9衳 蝥?潞赉|嶗躶勭语熉*((((((((((((((((*?"/?向撐+穨鸦櫓((((凱屦7>謎訯@Q@Q@Q@ +JriP蕄\藻ER臫,@阸専蕽EG K {绻''4鏟i訮{禂厶3yLA璼洦圬>#Ky惥菝捗B0\zt=氆8鼺d%庩O$j@𘕣蒲俽y鋥W'硉鞀W╃8璨鴒J櫃浞fv9,erO鎗玿?L2n p{∑?杊M +L$錧H椬ㄣ舄}k罢<﹎縈ie0蔋肴鲟s醍{P/4媾蘞 n !簍䦶㎝j2]狈/橑d>nFF pN9蟡褌蛭鱎y掴孝*郕.r擒姝c杆dd'*臝3儚чR禍騼濷囿専Ёu毽ZHKd姢绑#偃镶丱mJ懮 $Q摳鉷溏q荖{3кjs0禉+传虔PFp@錃跟姘ㄑ﹨鶫摕br?~厕訋纨銰窎 闪=冰VU逈蹇稾s}鲋Z澤涆[ cpp濔8猞庣KL儲L甆W蝧8 圪Q肚坛虘匋5謝]>鎞濓.瞄瓼淝qy段91 1苓O谓>莆 T贩]抱┥'4b((,埲蔉A曞q+坳1<2l-'#虔V<馎h麺+彅崒ц蝷7.昗 +k绘W!該蟹 儛pzt"';#幅KL<`骑跔筱 x聟91}至1'渟戣id磍霧郼9^1渢P幟`EP( '>?|l g妽b驤otg# @.X +幖g恲銋夆22)b; 懬S7p  +:,-侨q?奕錽佋弞p媽&擈憲;嗋Jn缪O$妞憡鶎鐉#駬舌澢擙嵯狊=昋穘 +UUO#亷滭8p(x處羱B崓风8限`:匓d鵤橬銻妼':呂='=i4yX皣;q碻鄏<槳飍 7鮓=w0' r{g袑3P9UC惂$銕-_ 鍲谷 M?萜pNq蕬sQ厹g鄞嵺 `|谷菹\}Gz#愳伿惸佯[懜 ~Y螧J\\IKX1曚@菻, +rx A@%箠蜦969F霬7c'$摕蟎U&32磳爨n&\)阖rs粝5諻蛘滠末n崃/\廧撎撎.鑝f鵦8#w<@EN"K囼醾駧狉:8<錽8l惉p#奟>[i胝,1囧%Cyf2nr3嵓搸H范R<秿挨.儝19媳苺2}埅惬膗R?熆5礨HUv塨0ALv閉''Ag +綶 +[/?♀8檓@P那#+60胬> 粖逽)J)𭧛\鐮>蠾{^Mc 嘅赩$岕#穤鯕(((((((((((((( Yc2_ 狋砷Q叮hッL朒l兞h滔恹u軕EHBB8<z`銖J d?3l + `嵔8<*(甊\NA)抏!倫:渀泱╓抛"P+iU &岽麚尊雹付駏鎈6飑侶V镹\檇H鄡侐3J歙.?軭踕[x;姽鷳c駇饴VX蹳撴}t跶\鴽SX# 埔W優9轫虵|C-觵咓G Nzc酎(需7$嬫]HB巔v聒縕 wXc)餏小堜钄W滳c栧耫赤0g拥4膪擁c,@贜ON(谚8梊講Dy裓|併 銡ck毚懏.g貒8;9黨舀1ΜJ┘i魦╦#瞉^擽X嘽否鞞烢y|楘糰|双攒2护q戧)嘥猿王粽科=N婒]C9鹵氤T8竞臌鮖嶪KI""帴;讜扫^J粷9'朅沿}W鸘緌缗髑l鵧~t焞磫娵Y穼鐿"紵{c=3I跟蹩碈<栩紽崆8㤘彮 箑砟褲+髱G?1鶌騖戃袬礂V頣$1a儜隮zBn!}鵁x鵋雉5%嶧:鏈矷我9( ⅩTz'4傹管惑賻ju飲憫佊鶵 馈隙?梛\&D枕f滭fbq巣擔祝 _M?mym遉O簧簜MlSQk橘忞o+薝 *臝嚆7?1笾=Hj趒楙_裤K淆㥮癔+漶弦蹁t剖陑2渻\喎僧\#N:V 0舌笙絚xr鰇mbW孰,3煭nk奵>羜yR筕鋩OO\鶳P$;"BA]武H =谕[íX伒瀦浞鹵 +゜/v6 +琓缲 鄔f葱>nC盢6鋠 曠o9<Go8氯+pv鴕06{~4#fm96栧睩FO股#寀q椝棄m蹸(X颍#qC⿳v1M8*~'(?4聶132ㄜB嵺菠(灎a莀Bph憚j芓v窐莗Cs窂]<鈹棇挧 Vc鱭儍<&獻&蓑姪b9a狼'8輳z斕睭陞Y梿^約>狞Х罖兯Yg薇鹗\+9蜨#%岞*Iu*捖頠8瑚=硴蚐彉Iw/廾HB绔获Nq@f箆屃;Pf7)軂l眯巤1#H;ch鲟堍D令{滬x"!c_晝 !p1躻##冮訏U|布靘 9;懴多{P█.瀉蹏弝藥`k a*2筘彌?zy繀x@j魥(((((((((((() '覗錥Q菚惾F杖鐅~\廃梈朥 aim嗚恉-~a饭蜲@吆謽牟S峰^2N銓/=;~5玸yumsi疄[12 贜O迱/8X恗&-4睜鶗r[Mj圹郗カ綖殜瓡掐=晾钱 +扞樮"扔湺3`鬁U┋fKk&_(I +捘8=yr:s@[Z倜甿-$!媹袉诨FJ#8誨閦|2F遖Q!R<鋩8萦#9繛弃x,R8'勃囏8c𒅅鈤祕3[\莡葓呒轵$g電嶄沒 +梥4焗3G{f燵(i,#督C枃禳柫苨'弍q玬p彩铡0蝰q'r愎c渮屪9{&獁,烛K忰D3駌;g(k[0.;圴尣穃 煑>茲i%撢胋痷禋H?/ 锣撟У3K榼叝nM噄$寣 鐚d?砫 跬紦yfvRb*7旟d`凃袅蝖刏嵺狥$O莺竍姟I9 c<濑8睥{蛻33-'~x垠䴔9 僌-摹&斃靽9Ef荗N)翮猨P琐Ko6 貯蹦`b~雖錇8=鏎 _Cka 备(;嘇鵁螣,谀枛职Ios6&1 Q8鄗鹩矊<泏垊騕,慳X 儝}:抺w*XI,q芟K2C+渮<齫@m&袳詰勝2L價栖宼蕿;垡誠&5,dl輰p善x钳5,耉l+2Ky嶵| +A3?昗嬠3 擁翯渞C鐆萸c鞞n跔嶅{ 鄌$񵗔$驫鶜;E3嶡暡挢腚郾瓭B孬%bT$#ib1伋#纀橌(#` 6寣騱q驻僱ctnAuR搁滀c疩濳澌 +2'o絵A绂rE;L臮x昩6TE1fI<謄I滗9锱W烦饭仚頃鋽y辥 \19'渹;4<ㄝa壎褩b軒8撉犿霁2赲0銉+"粣*蔡橳B乄nIS怚辖j5,O杢%C)S q預T謿づ +(TR1滍<;I强#:pA$zm〢$r,萅葙怗N儗+"h嶓6V%7c迩|pr1b3麮憮-斉s矑XT惹dr瑏x>lc渧 +稰軪 詶M粄 踺贤訌蘥#疛"瀈!籱l椢G#┊ 覺@[瑣囏v货>咱kG熊5喝梣鵛孫懔< 3Jp屇灊尺*鏔袒v+狱>絢M既kk盱2J饉`>鼽 '∠痁庲终%wh轧 ~F黹>獲vNw;╣-褉c=G;⺷.<葇翙%露Hs十[崋,&w砣 鑮z羯Dd敧洱瞰 鉸,r~c湬z抭鋠`gu=i靧k6鵙X犹6&2嶯渢蹒s盭瞯戶⺶滶N([&0FH^欓厢F()藢臂訜񘀔pMH癫,:魍XX彈qb膗*#&x`0F3幋 d湆㥮4l1抯8;y4虙哀'蠷g渜G膌 u黹D錑蕧笷Alcw=")'滓箺 +仚衫炘鹸 >Pr翔2笸_/睤酅攟莬扝鋷瀲觻6v嶝萛 巼渄錣虉 脪2{u窂9峓c@1闉繅?漈謤孮OU蘩y銇熞橜 +绉'娀-鋜":882惜錤q钖画匹闾9羄刊?A娰; 讙9.袉虑堓棇銕貭9%[浫>詹8*箮5L.y<J杓L絚 !D鄋>滖\磪Y蒃亟唖]O嬍j蜄鼱u笭 +^"m蕶賽錊]豛榮羚*潨綞爃遜,紷8麒羟覞璈祚q澖NO|- 5抐 t鐿Px橄鬆 KX/犁v秞摄從饶 獭TmW'錋腼樽$廊8Q椱2簮鼹t5 #+膾1岥琰=3BB曵 zt鱿C宻 楁Y6澝'88s巬1卣Vg,J鵻bp03婿荓O対栗鄳诇忛@斸緒e `寣gl箜晛.疿莔綱鍙'熋犮X蛌徭"89m/: 袂L廞[6@F奤餈V-暵9'庍Icf栻&X+M裏HS绪O#剌掓薔匲屠,F#RCH豝z宐硁o 甿璫s: X 扝溏鲻[1飹IQ鏳脰 9S忈lb-j6忉veY2:y狌bz*)/6F!塂&<U麇姛FZ奲R,哖6=簩` (g8i}~V疐<痱鶁-^A抡鑤QEQEQEQEQEQEQEQEQEQEQER`g=閕筸鄊鵴澷镩@韻皜剜憫歶A2q禫昔蒡弌行<衤5驋紁N椰:翮r讑絳ri摛qC$nH裚6v9:{T撀裫)'怌(!?-揕载6:;Nr#00H鄿鋝煡c[礮郊2v抃梟2q'蔥冏1S藑到捶憞7癢@w2rGC朼软殖qu<e歠舕du2G=鷓{T厚髈 G駺2>鎴 9'9跸C幋穒;j:m溮館LI|摐錻#滕憎W1晴凸@,b慄@e鋚?LV.唻凉fQ朰-禃穞 /#缪僈3節嬵s螨顅?脻9tr韞*$r鹧崩2pH*zj紈&邃稨褈udV胵契 溷煛朋j荗唄$U0I鏄蓄L8銡籸79@铪xBI皜耕I腠@w凡圹柖粏Bd`1旗鉷99>^誻Oo碄梫鲆$"g鼱`千*?c0@楓扝\癳蕮还9=)蜺篶'枊a 漯鷴y飱&<嘼胎]侶'8*`宻弞c婌E驢莍旵JB駚o^黷-a覷鳌_0紱8F :裔e萩3|2塥1?楎猴D8,鋹げ滍=s仠`{妸Y芈Y鍮*挔融A' 鄡.}昊枔!J癛夊酺$曧挡鋷澀漏I$)4槓'︶螋'喀{Lh陝该Da駧G=A镺vE唗} ',9覗E$Cd)躿怎溒馼璜  +9#儙 鲧4械袅kd條翫8诬q咊89鶀EG痞崨Y穱X蒤捁蒦*&!欱叉iTym竧i `戏N轨8圠哘p6:;q絨#pQO疪=&2.c杋圆局fE$餦寑s蝢农6駞u`襪bQ苭sAR23赛馲3lsG񔨭擐M)铑聨+皤朽t2@?t&dM蔨!祊<鞂]q撋#?併#哛d2茟甉贁頡篒?6A溷泆益贛 +) + pI駛1寶头房K啀X+H嚪轓21儊衯隌FX爲$<>+絹 亼撛q1瀓K滼躖2墂& 髏3岀笄R>Z⒅趦{h5pdU1鞑pq 翮宒U9-u ㎝黗惞里鴝貅 !鄆`$Wc潙6I$c迩ut零尹W^_挭垅 贗穜僪嶰98膸芐" erN佥酎閹糣鍐毣bk梖Et!壥湠橆pA銧蟴4蛿赉i'W皆鸍F媹 铖貛湠澓z襂投4/(* <鳋*蹬)8貤N w?(9.轎$vf%蝯麋鼂R}ぇ苘偔宐V1?鞈4痟藘結I釂zz篝?='9a钵蕅蝦8肭T2距a锲h驐a%郼緘象j& 渀f&穚Y媑磜蠕瀓]AQ0闲毌乘n还綦R摵X鼆`N鸓枛焟悾8$灍昢阂 ge眣QI \!=髲灾枀b埪F仆侟蛯# 嵡pz怇碧5%濿$渷嵏蝯`WP +-:<徏J饄霒抂翠( 焅撓堟+!!>狑蠣糸霘况萳V祦芨靬寥懭螰 冢禝/鎷吐DP噞3yl阩+-5つ胰姼<#玸逜l6C穬(ny^螩邐緊l豇0#.鍈岗軖N +戇`VM票sq)+s,q傎er`3Y豔Q$酂N腸=狣E懠貋 +渨w*找u鈮枕銟C<扚s?R_^G拶鹆r炕7#閾T藾棣X'!U涡 +'I飺趑钟穿c秈'億捅2 (A;棷8C2蓒 `D|艻霚n{sZ焞h鋮'0<(孤:q袬螇犐憒*仵\鱘瀞鷸ND尹琔*9'0/;P!>0I萙y8粑x珉^塣k`忐*夈B女硛;漶9疛(((((((((((((yH m|>=痡fy瓭诒瘗 c鶹熳 錟id>Zcv3讙+侎L遠S垟錣B稴寧y例>K碛Ir#9`6嗠:q业$&[+珯Hfi" l専攦騉_鹞鞑J$PO棊wc御餶!{5t墹&V浍|茑r2 ^昷:T.鞂m鞘f$d6}搁湞范tcs"篙扑鎒郴穕gz1跓扽癧垿嵲鵏8S讉8鋞榍,DBD!媑 +绡鉆G春6怌滱%佨を桨s儙0&簰B拭b(yg##亷#縗姪v-*聸沔El+戯熀Y:摓赝V;h-洳鬄菀/9L琓母=3焅蹯($詰E疮眱? 撔)蹑狦<钟埏蹈i𡫚歉彌鄙7q莑z赢..寤屚葔禉釘會-紒岓$鸘-a悍敳(橕愴$q比<銓t鎬4祐XL清芦箖|谷斾t韼@j,B鎖樭%6H=瞛 -バ廨妗貄 F鋟8'鑚m:uk9.10c q驎 +憫抸/,M4硤驉$E`03<}if*秗1uU9bA F3弱cRA肮"Wx犡崴罍籓~)懩r御Mt迤:`s螩衊葴3i<-芻V晌3帢肷荖qI4"(p?q#*#%*}K輎凡y翪pa縱r@冂搞藜孼' nc苁N$g顑聻軲V%KL插衻惛9 wó)vU!維騻岗鄚腮I鞸獻'鶣.挪XHX >e翡佖TL< 2D8蹡'ey#鄁2c襆殦,鹜傷騎尟~/#<~U眒 j獮S蔦犃 '鮐An喃*fm蜺咶1鶂蝫g=zPd膌勦捥;) 佖孭R喝\颥r咰霝I%zdG,`儩"尞T3 s実4R贝#`6鞷I減q#屼Pf葙輄T4c. ,v濰$7蛭OB*糺卑2X矛剶8?(#'濬 g]3<U`X?w扥?廱l *F鍆06灩銘噲G<本c癅面衮恲栣竈拶41;瑹9,9l錅埳3丼:I鏄酭 2冠ePO现┧p + @9黿帨;U sp 盶 -痎=-8男蛽 Cau^Uw鷣Fk,+"税婄-熡穅q羽璳3X疮彆f鐅躀$懒uY晒f/关枉瀤#寁銑bf 邖?绉鉒wgeN3曲P蘤朏d烓鄏?9cU捈S檑*#h鶑?4&q*7u圌暺觼扚3轸Z垩4容D!扅艔a 3老@塵%4>\濅`见乳肱k 矇P0焢'宯鑡E蹁K1菞+36凿溿N?漚Ow,凸鋑q麹I=(貊$耇Vd忣蜾'霂灂愳]aJs窔@8揁爾FI玅H,壖.QFI'梶蹴摺hx鄨咘=窭琥UvfrY'謤b霫d%I麾 +.奏仠隦茟耈,3実) ;郫4縞s5{r<脮p2\0={9 懄塩躝p $=眘;}欯&6pn想QX;6傷愢s熉7&肪譩秺賆垎.K肥%抷c宼S頗+9逄嗘gy'~Y仵漪1U欴汷#;O刊錗傓{ +筺3侂砷@ +<矧 麯灳哏5眅io`{戎N( 怗9鳄彔郎镼剣K叿3cR9_黭*铑K俨X滖顯猖慳*n髑 s'隮祸剧d欒I踉h庁'裹N泽圵虈瓼@??妩,E姆2y锲蛆妫Iq U凝卦g螯囧L穫k砂粷滀>议篟@N諽槹芾班NC~_Zn捣k'歽_肌8`88<瀧U辞洳﹙!N3驏彘{撐c虍e拣0鋧#徎.6)<4奛In7畝舐 攈嵿6prdq妉幃a?1o銆 +{@.Fq莬鈦!x2颮9eS償惚}甏省@汤Tdds湢绡##bX窸腢B彽`)[+耀烃%q=#y#槐栥幑畻满跷-地V! 9鬆瀶((((((((*)d4{漊Y饵萆鉆袽B臚z慛((( 滾睔E撊h5*扖鎟I哇轾W9㈱莝迹*D禿 曥8倉苭V片醬&1他茓+簅-W鷾c廚kI睿 %贤#HX!捝諜g暿墖 嫄q驇q]V襩~顼仢蒯Kd犓a灉詾+Lo03湌恟:t鯛 A7!d|窌"嵜Q 蹒烺j詓繘3(協`懌 ?)强5呜?f,愘E++2SA @蜧氶Cz籄 +蛼箭4兀嗇匠勭{ +y錼krN8lg瘗H梣騎p9}W樽寭P<蛩(*]9p3嵐<汶佒.__o+3従/+夫k2"sn%热俐g璱K%垳! 躀; N{俼閹:俰躠戄e賰煑篱卿z鈥*`o!232zu鞷"疮迮庶末蝡?/S媥氼RN6 _钎lF*橮X笏ms@W&%$3$捌:`s螿 +詝K鹊A鵲偱离 +2鑡YS+^n讪0=> 飼C7 袵訐3@!悳g濱?鐨f煔灎頤@燮j岬單"檘內鼁{巤q千狗72~Ec嵻鵴肢躚nS*bF\语繐.p欩Pt霝亵猼RXc##迉426鏦d峚幅喑uc眸L侯\ 9献衽+ %ug 厘>脽绍頿тR@榔{s +丯帳<劝腀巼v4︽踧26嶰锧 }h謆4vVc衫槔8 5崔J蜦r駭=2G_5s^淢╝wa划{磃88Q<槧誶 齳ぅ磊Ny螶s1灁z! {簢w蛢腚缨Z燀Q媎鞓Tq涡9鐚捛螂扩M论谀g构`J擎eS .O緲醅雝E尮#q銚鷡t$酉t㧐脪+}>撺C,A,I缮憧溤o!旳y5朢5晾 +銕x顉鏎Y豄tw+',AD 间s箂?蟻慠尡2滗"7皤uS陣黿C际,7 輟炁忈躸Dup~S笧>s胗駹 瀀闵Q刍;F[渻懨u泷醛顩虓cf#a]栗V撖O嵞 幰0亷I蝦y>螔頕TV7# 莀N齢O槆`\#湊7c8媵<叅宱 釔梎羏燧2嚪邹& |熔j9 ++帉亏弱$ 禊v]$傎(陓料46垕 G;『,郎搮錅w9g瞢鴈曾稽$蹨e庒榍L+>|津}; +会馶韧箯槫帉s貊鳡願((((((((ve*認G胱螬) R鄳疗q@g''攻((姧柿]窻A#=砇Sv嶅瞫寀8溩潋o薠洱橓娛0/輢9鼽F2_X鸍彸!w派Z烩M庪(b20W +z岏岭诒韀e菘旕然|众渄 儙s妆锧芦;1"菏哺S藔PrA#8 慍>鐸\醈d +p <鷓{揗圝BI姣輞 ∪ 9銇澼苸叞荔#  頊q紷# +传垨FE&妝i翘举=1 PK 牼>7尠枘~N&M娵晿1m軠8' +晥C#+lU褥 軀钙N3U穂Y"绬鵃驡@N8塬販瀭"濦淹"R鵌nzd焆缹炰TI2W╙爐婍鋺鑯^N+ +3*轣H蟅宍d娡y儉A`r吜nxy9鎬&髬7|j@9厍q錞渞 <ゑM磩~谤導銣r`笈痊剢B扚鑸跧`wvB鏿囚鈾}~虙6箦W,W*`帶伬8里螩@ st-菀-迅}粊,涹筢2A霚py=馯Uw8-驡鲀FIB9;駻艵/旐":⒏c翴朢I# +z袂T*鋚F} 驡 騡兞魃趜sP 鏺紀$r|@銓ts貙 鲬疖29`潸1蟣愣赵@壚m蓫罙脎忈a溨lp<券>恚=8<麑Kk裙vFG-8?噉5岰騟]08=7=货玥虱鎦?xw澑閽F銓g痎 0*F罽榒c昒上馻骨:魍M,柚衲鴯銶睮侶\哣榔?пH#勡4&F+!寣g籨tRжUPF栁q豍sЖ隫凑嵂Wy"$鋹;g璖愬$烏i瞊夌f颦b_轍A9< ⺄潂㧐煜蜬缱侩K<)潾&IC;88日f%槗詼窄D豧, 醽C宍鐝梭虵鷐'$rW篙廫弤:b也疖FKGo畜稞(]B>蓂橌驅t 宮:d 簧竲 㤘笥Ah觼?*39谑荔戏闚 詁URr6卨Q萳zz~b渙a +B%6'd鄑鳡[) R鸦,嵜#;囧汕:j!T-d [諦》h槨*蕩埴煕湓q*IY醜PA鵶94姲塂犁pA"澞|?0留忈鎭渣蹋滀G:9 d巸$匔(蒎╢咝d痣粝碗4呖敥w籱嵏彅偧廚'Ia咤圀<2W0I8N俌鋱醛!T\B蝭脉Kr9' +s磓*酈l($dq打x#耠U蠔i7y蕫窀均t狸莦n%櫺 E漰蔄揲术轻Sy-加$x赨1磊;簐9颯1穫4lI屎y>爂擖>IRFi &7r@G<鋟^6湈={讙簢v脧/*A恗%皅冸庿囿QFヶ P癱嵞癙r渄p8=:妕H9?知韑𶿓`:鹯Z 6孎>T 暻#w,糶疛[{v+*#82I煒'怋鋵鱽璟].提w!軤1蒕 焅"UX鎐!柴篏蒔{8CA镈╠&"e柪N闪樽痸禊6G鄲A;鍞耜 隫/A匪B鸃]隊彪吩鲼銈 注I]蓵X2脦飻G璚嗆]笌T夁彪瀯_旕怯H:TC皞QI*dq抨礲跲x兀濗gq萫@W$跋p(1)F徫掶e361斍s竖z鎾K[i|樭虝T 9f3饅搨~_a 齆缥圢'寉c'現8#瀫~9妤澩县&#a8RFO嘗1聴3 v$;IB08さ傘>Y oK騳囗檐喾鎪(+y'VU區I羯繇L篨獯劮+懮?录~9蟎師:c驅澆/ 扜\搹w4+澨幕q芃D玩;`ㄘ鸺灋鮨G栧\倷+昪憦彞Tlg彘顯 +崩珩珫V =蒊O]蟕3域5&庫膊盤茔\橐-!杅-哣t上Cr#g]l嗆$Cb禢莨8<彉鷗硪X :9䝼?蟳oJ,h$n諽v膋刮A赬)銗x闡囥幵]翬+/蛡O捃 N侏Q)pN2淯嫊慍4↖8!忦鋑t04芈''鉾с@辖"S匭*^缧}顑с毄2q秀衧S2 +燩吘_R?:iA{2NF}簙y鮌P2鐆+┯O<}, *s屼m⺻泿2!i咜9璏WQcZ谹Ke秋!;.O螋 XeH渽8溆Ω扜b铎Ilc$灥%孂wL(孎颹彠紷rH&廖x賒 +A 渀孷鲊》M:蜴)w1誌^O0姹.gy,%硨g4,穕#X愢J〢99=i{宄@ 屟烵蝹sb((:({陒EFL髝:毥膴*pO%厚䎬¬k-吜% 汩 +>寛鐣CrWy熆3r /敓命g幅鳏Fp跧鵞傛17/阀?/險銘F惾辌s烴{s@ c殿2湁 #灆鳍;沽_魤詬;灵閾肢'份亲<\)'帩? +出筿捏*{旜笣罺欆 虨偍I+JGlq脤鷞R擎<1(f轎錳w9%曍窊伻炠 =*yb2,b闵:酹K$馵烂c>澓:P锑4m濿iへf斆翘憥帶憻龉衾聕鰣0!N?_c颵㩳竑#%硲桛^昩9eF_儗c倃:窂腜抄lL蓇罵1冺射T屈%秧 +虛t页n鋺.K09 (\}q]弴<;[耍洔镲謤:J( +( +( +( +( +( +( +( +( +(狹陉q葞諗嘨<╆棭鎬.袳QEQEZ钚]l虖BH)圉?鈑栒錈L絀IUT3g籭嚤 绉=k拨KsD咽佈 +懥M軮<雹ei滠q譹檄k qV%!%廈$藨<ㄞ?/j衹M懎銁$鲢岻.峠,+ 躯-礔8棒咙(*MP骂0珔a坼佄H'戇蕲趉6 eFULx.5?脩搶=5dhzxX訹諉禹唄C9x2Gr.P軈P萹 衺=kC矺共膹菔6`N0}靇A~薁矃 壤狼4丶?汥唖(骦H L蒛恇L`煖優q讕z役k稰<_赇嶧.1祲牲箫拳籽,[`X鵗d齀頹暓啞嵺,&M籙@膣撆e酮%該耝C箖⑸!承eS寋-㎏etS卹勂!谕仳p类駺脎雄h趡鱏龇 砀?濋标;U<玸濭觞:q]Zx`涉Z'T6T{尫N0馥:4蹧hj阕Z錥es愄[:琰瀒潫餄椒3u|寕zWr4,>*聍隠傽訝,"8侎李=忕@匹qq诽m>鄌沨')n5[蹠U杤tS昍㑳踈xWO熖?紝筍 +1亷8蟂顴焻t隮式 砢佄s盂#擿嗣溣裔悅3懤9韽z2M3蘭憚*6鵃Tk釐,F栊 &鼡偪靷1堑y>{歮wA趆VK扝鄺<e掴悃穇蕗8哥(帪謏o慈cc0<n<觚y?漸Av{W73<憥Gw!o哕酁W徱8濎頄a訉揋樼p鄎蠾qf煙踝]伎麺饐i唧陔_&8_1銋9=? b=?* 涌绲艨麺饐i唧陲_&8M韤2p;Q笐寽zWwf=铳鈎3N炞饕4 _r捽秚2?#O夯烋旬{"仠焃砜 涌绲啐艨麺饐i唧陲_&8:r9Dp?宮?L凖w_饐i唧陲_&忴C4稆韜}/@鍋盐>譻u时%du1*殿憌cg 帐刌3膝v觍檇&y稖鞈丼趵?齶/䝼8上z栚阝騩.'朙g +3侢q' 錅WCQi秢,f9c"尵0:珉糗}2@+uj庲贗#槏x1歭堈硛榇銧8'9黬烃$.懛L-鸳H梠RI嫌疶V[8弩K鵽y邠朐Pfx虗Z2紇獈7錟-#鞹;伷瀔}|Hc庌 1便冰秉犋馯锻璳FW=z髸rb!$d灴囧N镭]a馦 禾酖獪A?!拄Iw泴韺7䥇涮  2簖i綠遷琱6+撞倪蓮M苽睈{|嫇砹(6变狁帆g奯睅v畸 巩.=*咈d#69垸T乼娒/8%切b9_偝 |軮杓撉nj_盚狛魘衠巬??J椟IS#珜w8﹡悉d'#$.G z仦~T=嵲Ye`2I(x9 濭?t熉湋]m鎀(偨肮切/8k}眙x穖 + 9蕬馃瞥铑lM矫3(,x悅辣/7郍瓳75儨╄A#鶅^檃3\i鲇>7骨猕U/鈻9VU3#$侩氻魚tk䝼(Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@s5尵埇:G2柄`忞] cxE劭䥺缧(鋖豉涸垼她淠鋡生舂,飬祷Fm薵t戭<宑>,Z揭>c?-簈羚е)萖gh\z僎m`NT鋟蚷M璏4l捽6r 0~欢闾皡絧3廝S瀪\SI雠]鸐墊 徍硲l 廩侓麰Uか!瑝%栦O霃锧憅*T_>梗#栽嘹d銸幥"忯Bp^p=v儫讑>鏃p=I閂剜冞 +鰖r-牖胼O@nPx~94賮FbG'8麳!砓y歸L鐖旾荗􎳶]閥4鵃限鸌lPq$F噟jIt玺%艱L ;rO=q +胺擌[吷嫗W炦-#惜稻誟q*帮FzK長\6绽?嚣黥?H%衛1lG$zq徱碱8褼颔w#茏酧-?PQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@c﨓丝䥺当X*鴙熀耨@吐3[<e纫/誘龓鬄竸淲E.O髣姫幜H89圊-]Vy鶈9湝⺄屙$滟^ S蝉7_麇柯!d箟f2!uE;3礗:摐|莞镣W嘳矑o*Fx(聼梬=My闹驰阄咹笥z熚^GY]2叭`r徰^縆@?E{泗W瘣Q@ 丂B囋元畚褤賨溩璔@L↖u洨C忓⺳Q瀯a}鸚YU垣╡#恏邵o抶Z 聼.Z6Cae噒閗 +2!恟;泓鸗憆誉〉lQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEUeCh桌岨嵯洇疭&'咹J拔2<竺赾糂3> +>> +stream +x+T032472T0AdNr.W憫叀灩1X佬乙X县B列訪宪蠵谅豑宪?萛%+伯 +endstream +endobj +95 0 obj +<< +/R7 96 0 R +>> +endobj +96 0 obj +<< +/Subtype/Image +/ColorSpace/DeviceRGB +/Width 728 +/Height 636 +/BitsPerComponent 8 +/Filter/DCTDecode +/Length 22946 +>> +stream +AdobedC +  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY|" + }!1AQa"q2亼#B绷R佯$3br +%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz儎厗噲墛挀敃枟槞殺¥ウЖ┆渤吹斗腹郝媚牌侨墒矣哉肿刭卺忏溴骁栝犟蝮趱鲼 + w!1AQaq"2B憽绷 #3Rbr +$4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz們剠唶垑姃摂晼棙櫄ⅲぅΗī炒刀犯购旅呐魄壬室釉罩棕仝忏溴骁栝牝篝貊鼬 ?魵( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +)FX=樵QEQED+热术 h(\!(n烙[搻B9'狌 h獞+L娔`庁姝EPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP22y理!#錨ЫKM 0廋@(7]蜑%PEPMu軐21N#.Fq@ 珃哉Z)濭L'sVh(((((((((((((((((((((((((((((((((((((((J%軜e#'PM鏾WL{Pq0+仇b)l9n:幽2K!2dc9 +狖 +蠍 } 珟dhg,@瑟釻2 f\鋎臬呅ue绛2辑谋b軲MHFGJZ(((FxBG公?lc=溔A茾:U(h(((((((((((((((((((((((((((((((((((((*的虓祊23毘T盥3u9\ +镐2*恐гQ"l滱=d憱^蕝槕躥Ib92j[ツ櫹-垡 %繮8哧G9?^=QP09賻8 á((((((((((((((((((((((((((((((((((((((((*)敿eW碢Ym⺁W%颟F籉q滙RQ@輪撚8 彮i遢巕屝v垃dA蟴灎I諞iNq蚈@Q@Q@ pJ惌代4侱i +E9*=蚮@'孭Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@S儴e9+((B<娛笇/+礗阌璝鷰K'蕄_痮襽/9枴$矍憥1SPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPMe4(:Y萆鋮敉]q"狖煡YP@:(((╆ <礮溏t貵晑奨檦R疙朦獅樐悵膧7J-6蓙*zヽ(x俄罭8颲((((((((((((((((((((((((((((((((((((奩$.=Z*奔噁嗄鹷鴫{鈥-裊R'`紝<J窅滃堹幋f姫仔├苻郤鵔夨鈥.裀弁缙[nu蚆@C煙%徧q/j枡#壺u毇kr虙4吐銣z*8錓FQ僒QEZ駲#V2%}k5黝;鱪餅捣PMo芨92 W觪=x~奂鲿;币璓EPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPY左珇 9'礭弝?时;4敻;KcqJ褢筫.y犞挛8釃U蚖x曁- +┶罏q覠a虫=帬$聙1睦琮*樷膽芼流猱j E0J燿GX趋#蚯鯛 趜(劜扞8olU失╫骺牜QE5圲,xdì憓0lzc娪寲岾 "s!u#~碵He乚 螼璗唤呫h憢18i7 !=铬 許w 踨7u苰E1貿K;Q該丆葢尰獛檆}莁執 +$$寓2K綞宭89鼅t=OT-} +>f燎[ g蹄鑚1–桡馉 擵\讵︵睊q驋{V課 仐hP9\pO鬆 荘枋z0连M籨阽n 電F债H5>爏y檭; 6砍恂簋c)扻杀窝譹眄侵炳譹<=~癀鸧?緭憦紷钣蓾A脥糳c帩99誘1`芖:4哬0F>h:(巙嶡翖+<姧檄%lG'蚏Gb凕j嫡鴿區5B湢8 '憿X\#帟!p%睮霝橤XIEr圭凶獡婵.0 h撝,8VB=23赎k7W唐2诫;;礁# 珕卾倅绶8;6憩Pc灤戤膯lf1蜪2矎t瀁B洎灁璹+#f8 inb噰o浶rh[樬7$ 霝⒈( P艵留濑Ub冠殉戁蜨膑{u&4h * ,@>代((((((((((((((((+64*=隞瞮鑫硰慇鉳+c;H8歘>0db A9 儌;<咷|\`褛樜f$=)碢託Wq唙a鐽i擯扥$揑 %.h%耿挆+Ls&=6憥d<鐨Z(PE-擱袬 1KE&(L衵閵(yl蝷R <袌0y蝘粗'i荶)T症p灥"}袹pz倵灅⿴:猓zf (令*H>s@ 犚鈽功杠;g&j7鸓D室T鍸z妱J)i(Y櫛扤:R具6檔\}8"猂P恅*AZ蟉]鄛* 轴兵P訮 + 閾謨@擯战5埡 >漏樱.E|gi裃EQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEJ觊礞Q2熐膣R9[隦葮u<朕焳ng坙ul抓YQ蔟┠0@"@#、恜8Q@ 3I(R莟鯫萉崭 t拼J篇XOz贸6懙>欕[2dPá(((((((((((((((+2P恩げ 媰佢搓弟>t$ 嶹4R(wo禃偤╇酾]驑諛c%cyW鳘1溦Q)$n錻综⑽纲焤Nj\劾nA勪d麸X#唐5 +广OR熓僠伍23;=4RP鳔 +h隣鞵軔# 9﹨U#x鋟<S8P剚弞()h)hQK((ア奪((ア丞c慤翍7渇E%]曅难莙槜旴0O?A隩( +U<詧A,z +撿亦$憡q礀P-鐸({"wo橉W畜蕺:V蓼画 陷 O隭Л6髍3S殔p"1衠M〩权"z敉27-@痁樖#M清M芅LbC説6 +牖衽7蘌藼錈S慛"s迾-廋|O +20IQ桋鞮p崓煭34鋗徎兦鋔h溥7鍔亯c栮in憹欩涻﹙灱c>礥瀝鄝s穝{歑.僇Y棎?嬘堑Y"歾覀辱iЛ瑜番$,P蜇瞡;I闑4`┧c/鎼c<簸 賋ゃ舁2v暽贜H庣! 2I(峌膅熥5辅-嚚┷L褮CE.iRF嵜≮谩(Ψ擮 +冉t舂k3F戁9嶶1碿ZtQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEV9栭;S逃$$8>胀扻扞$騃4f拪\見m8P睖V.m氨盖知嘏鏫⑧`|>偖j6$r炦O襽3neY=01Y囿V\6鶸a@褚)聙%_Z8轑霧lu劳@淡!濵抭S<唧芆裕O8汕{旨2y+靦橡噶-ce淆3/鯫7?g&攦;鋐衾,ZdK虒享蠽W唧?鉔K;t"S焇漍"<笃?S4;W=p1O +( +妘/姡$颟h } 瞈K输绋 蹼b"*氃筽=訝((.鈏5-幙Z6%o馨!硐鳹蔮凚FY瓆^$X|溃{8踌惤 c焠h荛r,I(T 灟;謂畤T恷繃蜳磫枓@苰4v4覴G. 8酲驣烰秈攽朵滗幋枓Z眀睥岺竤燊r偏Pぉ 9v緤傄_:'吴Td憧支(((((((((((((((驳櫴"B鵤霏)G籺PI堑r驦驢^BI>=嚨74櫌)E%( +沪"=剡W炧姢*炸#舔$|瑍У7P糩壡桘梻>Q犿 灤膾R1K9 TB*Eㄅ犙傗%懞剚g[E蘡晿1;Wf烯鰻 +镸7褬畾6m臔8琅BS9$c縥堃u!歍C$妸2藹ZCEL虽\4d羿齣MC,咺^C膛=MJ傽 E%碦Q@Z-羋h 蜀劭瓃洵鎘y襏洎殛;婋h((((((((((((((k0PK$鰻 齔肷囀B7勺硝*旦\ 嫸+偒騼霂鮏4碦Q@ J)j3#v鈥,E 萖/獙殎槜R劂儦n隽3謾@HNz欽(h袿)猗^椿蝖 4b 呺鳺Y\暞$ 轿@惴=雫+欍塎靉$y(Nz=~z娒还汗[╒41D莙RA獺 e`e-螯銕?茛臭侗\肛A +醽弦((烋'蛦nH+榜觞J莻i-錣bm3]呿草4/苰 屶,f)^6 攂8室u苟巈8=q跛iZ牨F奌薋突+詑覨"崈╄T}Q@Q@Q@Q@Q@Q@Q@Q@W祬鄬瑩4頾錠(:FVV#趻(膓崻: 詳Pn¨零狿賍A x 忲>菤擗.9-%}憸e9鳡jy瀥7菴61e,#Q匲`8V蝢軐jK籧m 專r>礬 `鏆i啼 1憙岓弦橜i )4屿3R坯8=昕V 臬碹呫隌 +i)M6奓褮Z4巯德w H 锴_鏫謐CE-r闠?锧Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@gk鵙瀀'|瘘kF弓Vs-雿艖灴S((79jC幵7ZJ栔W嗎$屷唒q鞰跔跬0E:$V潦*7(#4(# 伭g?蕶M~袺H)E9x爲ZLRh;乃$D鄪邔\苴B!chw|筆:焴緯們J抟嬷H鎁1(丐pH  +Wk鯷浜嵜9u谳}F*V咒-駼乹袙Nj睟迂裙`鎏IR;g閷猆婏Bgn@8?>鎠q;JsF潚銪q!鶑9Ukx#戜Yfm觜UЁ殍睪s菢񍌹灒謤5á+栕c ǔ @#*@阫烋錑蚍追辄<7/(覨幨Y姕#8鶺;i鍁HX渲迮6"砟 +GLz缬慭劈..<膾M灞巠鄐如RアZ礿嵔vg蘠嚆炚YT搧Wm蹺灂&蓓硋虧闺弞a隝KMZ蜒颿磼E*髐򷕻汦v鬡v憈j熐 +F;v㑳Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@ f +'祌72戴#昮'卼:粹]醈菩=}J鎕(杸S V N)勪諎\;@F;dj盃奬RP覿wqN倞s JJ)纴跐v#ォ腿$ 1扴w)揬Mp郐憸鋺撚>灁Q@>胾矼俼j88闉j院曚汛o1*?惇:ンo`粣亾寽+М籬膾.B簡鳡 (+尰E庩dQ匴`秌钞sZ0首 +Wd嵱' 奐q"O墮[ !0谇'>疙M兠.9WR 﨑隯6Z湍 f3G瀞鲊峠粭X詠刔s'(吹簥 鸶轴.hl7^(z( +( +(猈:嵔囱捻杝儌>^漼悱ZtIe=AU^寅)-袎#LU痦T祩C癐N呋 N:耧Y/~2聈-撐羁W箥b笐 c磦GnEGEQE(S $a $b╔n#锽鶙! C67^OU d3Vt萟kc鋊頁[(赃G蹞,W寕枫淩縟1嗆S豕导泏DRx;_鍉軔#轺77 2e\嚆讱4覰`U姲 儌ja(( = +v庽A漷灯[N肿 2騎8)$WP>%Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@2GX鉭c匬I>扎现&0X盫ef!T┢; hS禁d鉮膇惥㑳J奐Z)(敘e峸I犖2蔈-h簬,1玳灾霪慸撇`Hbx頌鯛m廽AJ帙+<阈攦(ゥF +罆=p*F9b@衯H吷陒V酊u倍嶖粩@3|V=磇%耀輦K鞘9==卼鐾绬槺呺衠迉2'吹竾 恫nUC":vWkpj陱粧逕懍-n藺:嵠0#:盛枈((ア奪(+バ鏕);'p签$W7[:萕{v';恈򠤵鵓Q@e肴蟗蹲鄃氃╪洱杕lm踷崵4鉓ぇJJJu%%Mmr痔錟X:`倨尧 ZvkX<刡罒|p=;⺶桏跭鍮虶Ej[霔Q緁氖{彙j勰k}3滒c~Πh炏X庢y爦5]圪缬璢T-t.bb1>殓;珛 @ >卸\24$片F鮨畿M筬^<yz甞Υ榌$e 摆FA蕬戏4譇w薍叭∶`斛R5搴J<鑾樔c幙Z&援& RUz齷?惇油%沫,郓(誱頎れN錣1f$抮I阨()h)h +Z)E:T枛骀!.阍鲲[,c蒮逤鯛zС簕9H聮Wo?膝K╔5簳f;Nq锲=*泜A<[軲馅卩s*鋩艻莕暣C)怗z鈹侄卻瞯 '+厢@礖Z3萻cT峧kw"k亪佄s忓Ym@ E%碦Q@ ]囩i-鋮篋A冂忕=W磇:$?\PWEPEPEPEPEPEPEPEPEPEP8/<藱a?)旤洀.9虏5蹍栧"VDq購Q +楷羖,'乗鞄;;湷I鳡Z)(酠範 }E鏗_o 撓|猬k騾稁22钨糯耕-罉.鯬v屶d宻N郊栻Eip6古1浲尦oyA99揉s閺隠珰JG5妹)82鶸GF崐翰瓣翣奐(ZIC坈h#簫*ynCgh炃礪吩#仏(錞峸c自 m5钾 I鄞擈憧综逈 -驡>r酈X>7mn岷RbbH艫苃緞躖,z懭齣 T cD懤/磚=阩豳J盫pA鞥kkV"鸍朏)<銿UX6R ,蒙Pp gb愛$j4轶 d;8齤v憢;31闕嗓躹扚x$bq贗鄳( m輰Fv9蕊敉-僳纱 By 环c(┈裤/蟥h迠)$ :鳗(Σ哛`冝滶q撉錗$y纹+焅堉董Т.*wF頀;?狱k(RR襊QKI@ E-擱襊QKE%碢QKE%碢EPE-:5"甎w2}h碨滲涨鳁8?%V謶Λ瑆R6Fr=A闙]鸯洲豀pd懾偞獎罪耍鄹匜L胶gx隥&穕瞰禘蹳@胄K,q!e1b;t8 栨O..匚+坜B葤$蕑8媳瑌B8翠h ,d檦fc十z 襽(Z$O1Y +潵硞H殡鳹厲湕p$兴$N瓎认#帢瑑]=:d('&U癋GOf蓍牟随,1$惽揧gWK局e塬e憬q贘SI@Q@Q@y蠫&1紺c=2*Z男.翆诨蕆炪羹繌祄EPEPEPEPEPEPEPEPE菠1磼0TQ扢dk穛旣*淙3?烰莽+O3淑,&橜RP袳ゆ匯A$;襏*8撖/5鯼頮r: +庩苴蘠vFe;s晴P揤鮄 砟孻p{Tx.茴*蔀 zs酋歽歐奇<郥"湦嚱,栵抎卢<5*=搶睈?鍝dхR圮亩髩8,A苢另УEi:yHZF崍喈A>灴埈H芘 詺剨厑*囹:嶍.排筆▁鵌/\(綯/.⿲鯭忒oZ蔻弓 K鲟坤9鲰秏E欏侶1怽G=表@軥pu=峳R芺曘le┣祐1荷簻A霈虲I73囱0+=:(煝W檲*鄐诂[羍nD發] m豷鞞+!P$J$瞇%yQ嘹 m蕿幼螵諺31F條g珒瀧忬d*p纼岓I]l6惷q#$﹑ 鏈濪,"O.6nB }聒P%錓;p紏铵璌;燍鳑氷%俳s眱/=﹉祵2AiR癴PFA蟸?J欸X鉭c匭拀;嫧m昛g鄎溨=j猑9鋍$`熥k}痕审|殉餃g荿4n睩*}.啐&,0G?6o巾ZL馌儃$h8 :DY#da昦=珰坑d磃u嵯 轷畮9>T堷氲伵=2昤#J揩郅W臩1I;p軁忒GE-)h(ぇ蜳6Fs强媿胵 gM6妑XB倆瀭 v31啀2鍱CE=聠! e靀`5//宸 >^枩臢6 s撾J矹圦$uF辍馉R7 膩濰4擯翊ps濶xg砌f02s侀KfYR5.罠}氆氨幣!ff奇=颃Ms焍D 3X笃;t雳⒎朻(裒対8畱Z=Ih q鶊软⺻殡ku$9盖椣9蝵繚dA4B6?uz黥验 +X(h脎8]濣恩弅+<嗨37Nq燓礛=鸬礁戅bpB鄥<亹y=恍塜痬F&96 歉閄:殴唓"醲渹}s擑襥扚/铈U]>靃垠玬〤ua1箮6eq-$q巬z魻 JWv|ofm'8暓> ,Ce.􍌹VU:崷A+鞆?1豙#繟\ 8閈Yv%塭 +洎8蟡阤孠瀑 +闠戕節B+;,3:dq鷬迖Q稏 䌷&呚?Z’鸷!u>`求泸 #M0 嚆9(あ奐([y使p3韂渘睩畤*}A糊.V汵呚pG088䲠r((((((((瞮雭構nZS子泄(-2褎;1蛁厜H趢 +(Z)(5糘wq 濶#Γ3, 癚焭豰/鞏,% 8A瀦s茹R皂&禍d29阸隩áF&S70<1怯*9鋚ì蘻4鋗幁跦8a悀担奌^+敊7t艷>氳擅N惴>斒讖S榖.栺扻 8霂渨终D骩答菢%曹r9}=/倄鄃%t'R婒e圛渎U劄fr00}jxn,-鉡Qp尭?x9陑W/Jň7"0穑罘Lt砼S豆狗簡X;幗卆S2,奲,$oZ#訴u扸M禞籝渄钊0k9礧H驰d霂Ux4]iwQB!3D 悜料N欑侜諯++`A鰲(&X璓+髍約镄pkZ+豰朓瀉) JF;魃鼾+澋椚摮#x墓鋥謳"IDC樹S虬 佊襽4D1_F棾o剺抒#NFy4-師D敭B0谙侽樵W5Eu口6哸3 焴晪y;鄃6m赱蝭里祥Y敂祋sn簘繖!腹贘皛Py睚+6Yn#V!蜯W* 郿驚 j杤垛;]蛝v餆z蜏"*獜)榣鐓螿9獬澡#L*陀=M_V#‘粫P玵0P0sY援宙鸷cQ祍憻陶Wv戀劐槖O紾屢憖9#驙 e "干L}曲bⅳR蕆宷C蘕$鐏Z)-%奐((ア奬Rth襀▋,=榇Phイ輂H 葛辣糓+ 逄湠~晳Ei豭d咵x贔f/粀Rq譂u<綩Us砹寧a%,]s愘蟬盈镾6\ym迦 鍐0>fQ"E宭y蝀騹藘酲w睂!麪蛊惁1崰亖枣屝/驾:;WF%C铤銮—T赲I迻拃W'$毩-YB#鍿袕吱鎶\觟E((<995刮1絰鄓?野檠J鹑睤臸NA苎P[螚0$辩c29╄((((((傗"0⺄蹭甅S之L%T潪峴{W篬>T蝫`瀓QEQE爁搳 0\ {堝Fv +憸躪6蜊8H6FUO膻x畘屝6孥綬1嫌б洑J(sI歅@ =-- 困+*H慉H戏魻4庤執J!Gi宺膧衪-hb 袳仧63@衾f&垤"+9$q峡箅P\剀Zh雯8p<﹎mo:,/窎xH'o 鼼zψ定Rc+,G`q(盂┓]q髾0#C\QEQGz)i)hj坶棃师輭c亴?鑜,b祹7鞓w鲭W枔D糒mT?輓煘*溨R剺FC喓}F閙-嫳`X鞷8?J纬k岯幔濰Χ嬶e@/恜G↑盄5v薓烐6x*┢X5朞2V12弑O∠G灮T '檡.v鄹趋綺鏗趗馑鍥i3渄 徬TPt谎(忟頀31cs;0%I<}9镯]>f楀腧廮聣琻`圛,.‵s轷酎k敞."1J粦簩鈥9酐筆篅錊蜨艷矾酻貸盫pA+筓牔rQ]s0葼辤暁(轅磀岀+I稈缣h訥硂枺h蝯馰a禡癋;悌鸀f^y^g龠o谁)绎D^a穦c8'螂]&焩[J 鄜f 俠呠 k盯8螃]靿,L剭籒W渟镼8觮'"籎(別*臱Ar)+椿祹沽 鋟J.D +它冱哇豜\﹁af_S=i玦p蝇>S d+ J煺B(U0)腎o4K篨dA渆攣N幰釾既鄳8萊s⺮]能[=鸡6(/伮邕峅eοu*倧dg);}k8脎 m%u陲泖?R粂bI銹让宓{1iy刔8:煰'啭CKI@ EP]饯雞m死q渮泱"伏;tH{V鏮oQZ撷(((险>蒱vI瞗麥g8#>(熣nM拯崘UN帕壤9黬%碦Q@ IE-sL冺!Pw7簏E2\90 +9向蠻y<倍0睳FV-酜~忓O濷&&揷蓮酇 +卧霦鹾8岗6 q瀲>4溩啔xIm錹魣rs翠t'蝼sJya"<禦側蒗圉19\H掐犬晾锴u=?ζ敹薺Z斜嵷 yS~妰爹轪俪o椲9蝚z(((((((((((((((((((((((((((((((*ヵ攚發恆囕q誐[8{媦mヲ鍮弻猓S癒z蔟q膈甐xd窌v乎Kek錾鼰0#%r2 姜 bxeh錜毻劀n傷O8嚣徑jk蛛$q_C拾A>匳l.崶躵岉 q瞢Q@煟Je!%2偋皒+B +( +( +5粦q}刞哑 '鷡裚\}栁Y睊儊顇璹tQE+孶zJ( +|h襀▋,=I稉〤k剼輠鷱馉 +胸I!I戹卋@nz霎炇;(宷 讹橌䎬甐$}B(<-磪$dz譇﹋+f"o(8p;鎬4琚牶Y気懦狫q禌犵(3V祒B踳殑■╨贖颾沟伨蛅0s冇畜5z薖y&5鋇M丘?^煑5u!%扷\<樮s(+{8恁欴f&f苜<?:礒QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEV恭<腬拦`0-s汁(垑>|r 萈伭R#欢I3嗎俫鵗鋨偄4鱥{x鱣錮D<澻U +c.湣睱lS$=? +錳*巍毒!綪@y \m歔v<8芄n惝御WG\,=奸,g #+秵A41葼卽 3讱拪((k[訢珈P嶥 A泮=\轧视<耏`玳⺮U $OJJQr?*( v痗.b抙[顟肜?椎Yx,癎$sF祸禢聩嫌>5Y峇歠`sf &翌d華8]瑤20pF=h惼A's覝攎nxa熞3Ct順淺Nw)Wn'8>#奰磻%%R燃2;鲟4薄殛饱軄剣;`:g礪椞hc2d錐x鳕撮[肭窑焊K[v欯臰 讚灒9吥D +潳礟烾徥圼2俭慖兾>棯巾虊"F媽煣灁T5嵉镱o 8z潋Of 霙[眒~ 呚慦搹5j鱉傰僈8鉹瀜殚薤PEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPP[[EkHb搾2O?峅E`x亴鏲s深?璥Wk{j棖 駷Cc8>蹬P]囷T{ywL跚q焠+潾Zu俨籝pJ鉱佋((徵垽'(A 蟣t鷔QRQ@ B姸2Х狱趺)(Y%V鋍q齤憎嗞蒖v/4n61氪嶨'瀒株桼膎膭H娰fn:漪訵vSY,▁ v3帨鯈WRQ)!伻 +B消F駺#氥fp霞鄗鼢門#Q*玩,a@^閇 +G4瞠錊8 Gn5j颅(屌賂签鳜紺U复b焒啪Fc筜y鐜嚙鮲mB^VrU苝;噊笈67嫡my詼'鎋锐@:d戃6槕)湌灎嵸肫ㄣK[杳0唇堘蹌上\z㘎砮g擣8檲-绘<*幁,#D鍚/}徸苄KO繆2层r炠&EPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP\fm/<ゎL馷漞犏k遹mEt;粡隌战紬3,Q),O茺V鎹5( a釒x;将CM雏 瘮[s箯l麀Uv +( +(8+翼n澽Da#c.瑂情X,柸蚰釮攇|脽笸d袿逼@C鵕*p纼y治潿(&\拢i~I饉qUc詥趗嬏hd臢?:雖绯粭虅乞'砻巎錫xz賾d欻姃G9兩阌5籃畋教1☉X彆r[*啗某7$)2.3糜笄婌h =JW篬[玸頊秀?犸Z昖钍 誕:扵虴iow$阁m皏弩炵^a{暩d +d9S袳QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE +endstream +endobj +97 0 obj +<< +/Length 72 +/Filter/FlateDecode +/Name/Im6 +/Type/XObject +/Subtype/Form +/BBox[0 0 2384 3370] +/FormType 1 +/Matrix[1 0 0 1 -36 -192] +/Resources<< +/ProcSet[/PDF/ImageC] +/XObject 98 0 R +>> +>> +stream +x+T032472T0AdNr.W憫叀灩1X佬乙X县B列訪宪蠵谅豑宪?萛%+伯 +endstream +endobj +98 0 obj +<< +/R7 99 0 R +>> +endobj +99 0 obj +<< +/Subtype/Image +/ColorSpace/DeviceRGB +/Width 728 +/Height 636 +/BitsPerComponent 8 +/Filter/DCTDecode +/Length 34447 +>> +stream +AdobedC +  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY|" + }!1AQa"q2亼#B绷R佯$3br +%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz儎厗噲墛挀敃枟槞殺¥ウЖ┆渤吹斗腹郝媚牌侨墒矣哉肿刭卺忏溴骁栝犟蝮趱鲼 + w!1AQaq"2B憽绷 #3Rbr +$4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz們剠唶垑姃摂晼棙櫄ⅲぅΗī炒刀犯购旅呐魄壬室釉罩棕仝忏溴骁栝牝篝貊鼬 ?魵( +( +( +( +( +( +( +( +( +( +( +( +( ++V'埠X釾蕯 灖呲槽X湘鞻'A彠Oz(甂鸼䓖銒l_黴聙:+槅鸗$奰它6廭G昨/缈8酷@mF移琔羨OA媵5k潗wlSn.%箺虣司1揁:葋鉫u= +渻O;夅R盡".s卋+蒌!y潕鞏9'4z( +鬃B握 1槐瀒ln~議撿倏?.s*張饼灩$0c幖汥怢/Q@Q@Q@r健稻p╒';愽鑛z暁^Z簲虋 寧?齴甜屈?璷?咫齥~ +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +(9屈跞3T.V賑嚾wg)7t衺祑(偅轿H䝼硦!_rcq容衺8胄f憼XK眽I!s59譪筟rㄍ%QGGvy9イ +园.m同e憁媘9y伸F旳kl'宇軰飲k`0贕=G跋鏤趍稚X夺湝躏幟驙鈯且5QpR趀"P滐钳+b2=銰骀u剚S責姶得p繊QFDd脊?璮R袹匔烁`実銉@ 乂*q恞镣%lxq埥憆v樕#稱Sk謕Co缜賌_櫜y$,Io2mu鑡焜$簃P茤ㄆ馗W 鱮1齴s且0-6坦08霎室u憾巈8=q#} P莺A"r@霏+P穞喲懧c$z~&臒襻齯日E啎J4c8畚z帑~uo襻齯日=>蜮匟遬)挔屻渦秫b幄>8 *>l寧z烝Z阍輋u[f\D PKq涌璫i聓 Q#xN=弎彠鑛fK洓I╔_sd蹁tQ@g陑忲曽3~=诫B钡鳹h轩#;`>煏>踈俫6奅懾.>魁j之&蓚捋Hx譵@`璺Oㄏ漠),瑂=:灂絓悫x絟屯掉遞(U, 8球4蠋uz-馗砊i L勵 '灴N@甕IV 1恠韧噄"4M儌#裢ej鞫讙nYF!l惜f主#燈OQ襼胣铲辠[n6c摈鰻 诜нKe:愅錱鏝膚阒猂鄗kks ,M=粌鑚j4岼 8 2囁>w畢X2哛 +憪G +鋔/恛^慨k>穦Io鷉G鍳觚+()(k[嚨窱 +Ys:b孵60" B甎~lq赛3鶺5S踋蟞绦HP傲⺶ 喻-]5睖渘夝w鷬汞芰r舵懯侶鑡:5QEWA崴樐Ol[.0:~U涎@叇kI8.殒摿v娣h((((跲凗 +盓W鹠鼳m煥?镟 U囤显黟Q鲔O凗 +盓W鹠鼳m煥?镟 U囤显黟TGT裁煷'萷z䴙繀]ⅷ经b泂p##熶8鶶秎?缈8哚@U85+K塚(硇m#鶶頾#稓輁赐祊8:⺶f(((((((((((鍤(q媸戠︽4抃Cm杊驯3\呰妄淆uo鎕菢駡d. 搹蕗:鉼nóg+}襖`)縨煒镟產4闉hb8G餏3評*玽蹈x\偹寫应hmm煒镟2忐踜?0吡G踡珂+將;?囤咸?黟Q鲔_圑 +(享犊篌}蹲a總甘(雏m5 H斜箞価稚鼌q碢S>礹3D⺧帀3硴翏(檣吶?濵c袬ZkV,磳 !赛醉講]岏茂棱购(匕匳}~躄獔7a滖侁z骅 腠t賔6yvО玱甛!39q.茶x<';錈熸轸觚)襵J咶l鬮黭潰:7窩迕+7`笊獥Z赸[2[0V艼上\鶹= e縯尗帉劭牔QEfG co喧{Vu%h闦票鵎甆y微杸 +((((9鞥QEQEQEnN翯;泱獢P頉/鳷m煩镝Pm煩镝m篚?5?踤珀h鹠唿齇 AI@蓂<硕Y蝡蘃ㄩ((Z)((JZ(,椁岶橱優/钎v%漖昁.v9舢2摸?砜氇1]QEQEQEQEQEQEQEQEQEQEQEq棢tR匨R諬樷p湃c嚶耥\礴鼊.氆3[zd9俫笁d蚣/ 庺kT>M\篇&@拘H闺L?jy,恥`揠鴝V巾襘焚b,坛*絧?09蚢轇-頩%q"a 隌QEQEQERQEQEQEQEQEQEQI@-PEPIER襌IEQEQEQEQEQEQEQEQE敶擯襋EQEQEQE-%PKIE-%-敶Q@慈毯暫27>J祀涴笏3d碄m鐜s氶((((((((((((顲欿%奨葀-骴c'凔膻zC鶡甬枈婵.跨? +V.s蛩頗䲡襋@做魢?酖魢?醈-`]螲3`]螲3已@做魢?酻u =琑の@ c黭朔 鶳 磾QEQN娮笑贩筠i亴趵臊8鰻 |RV扎厰勆o 庝憠9'箫屟d鶯c鞴i:挙坳3@碫啎o刨闼D.8香郛 +5螜q礡"澥8$ }Ma`斟襫谪N眰萈~b1瀒#穮顳B鍇湉0蹜忒C篆u0!&8T`p? +恻愤砪o6銣鶳窦nVDda0廉债!Y<稓1&q窗襄YRh瀖鼟<槄蒷骴霘亩碁閳2錐O8晴V庑;侴忥7_5穏d;d %渽嚣気6虗c2F厁d+爙蜍膪SE網*鲍侟J蟓橎玦 挭 箑g枣N脱輋P)跚LP*鰮扻0/韦滛V澟盏篇驧鍵n廃}Fy:HX6ny蹴顯[樽w1鶒耏3r:唜$俈嶶陔詆5穉┷匍蠪麢鹉沔=j抵 闫f碽#Ks肭P恫负蒌& c?Z杴*wx矇諘併字疉珹j-焓;巇飵{5鐟侴f糖燱绳T俙擟a8 z螼^啓娵5V1[(3"I 鐏圬5 澼㈩揶8袾舀NOz珩 桑0蜀 #8靓U蚔hЭ扻\0憥鬲tQEQE錑|霧m'8磳 +盨寖E=&t嵮蔌幐鐝∠*:r#8r!骣鷬栟乍#鲪乒芼.? +鳔P栍礞卵&7H 糸祥T曷$鞃,鍒\@=M6,P< 侚q鵓4歾0 \P*嵜y!s&勖su宸炇N杻8閾絡k! +筠破/蕐=疌MI 5姜皢弼$裣@s鐯41披Y椖蒧晢3滝齳㈢J捰o< 88-X副61炉梚紊渘m糢 卞軯檉c魻 +>E>D嵾;沨躳3侂M5by鶳4QE-擯鲉Xn筊F佭絫锁z@放E欁聋儻阸]EQEQEQEQEQEQEQEQEQEQEQEV烹[腠鍷'悿eA8_O璷P軯餥磻囊层絆55QEQEV壙遨+z惯I欋uKg婨PEP嘕Zh隢垜Df 顴"1V Al&匂鼻彅杽餙矾閅,m窐:)坼拌俭殟|姏晈2}h雅$$glg +3[諺裪P眦/!{銖?LvPa-屇澨~@鷓+K蓹塭寪D{R惿╘3c!蜀砬舄膛槼X湌{缨di潙潝渹x齢峇蠛d珧%歽鏠琫1扐吴=yG鳷稏$G,病1DK 善@蓐XR蕐鈬tqG顈 8旤鄮鮎鲢匣櫭V|兎班~氆8 +粋闺咧犤" l2 凓驦4ドP;A時鱵2凗皟觻p?.礠F闫:g搳汌嘬蝊诠鄎@-ONi)(9g俇&陔秀5JY?x聙;候=庚h6b蘗,NI=挈r圪["蟞'抲.K|籛1仔滖訳($婌÷滍=宗琭辈櫻#v 6獞蜱寋e 爡溡QEQEQHzP袶狄-澆hk娆>c菚v聺膁 灁苇Mn懠&怗~c螼l檤礵C侷vT讉莏d`頶趕帢#穇襽,\蟩k%X恧k鍱==耵隮碤@匽錚嵉囃8蹘s鴅橦斿IqJ琔伬銥Fh钷89?漖1虏0懀R錋==5V赆&戄#d.艣s幺亷闰9i潖R&5沎2"椀墻C晄齴藨贗苠槖O3'覔&H}2h鎬%FU夽F]#:熐侙f橫鎺h許yf?\Q蝬镮4阛鎯焃 %Q@Q@Z%6穾缶1 #液枢((((((((((( 霛"揸幡w3c!H荓zS扲0桏1zn赛+RbTP砉1撾Y鞣蛄邰6鋹s汕璱袬Q@矍,q4辳g!秴阌姎(?VB殧針陛湡q渵+爱o6翷 n;侀洽((1SYZKy7茔$编 +妧 SE::蝼韒櫰靟烰n跅#奢埚憔1CⅳHr|$侧8莕Oq擳ff垠1挡r? +帳 尼ZER膾6&疉p!1,Q耂r@8lt$Pf+z}=屪-gy;,C/罰@-髏鄃b铢 塭?>G9銮襽*H蘯/v虧缓戕籒胸;I43J懏;岶8『騛X喴标s彯? +M>趉洂 eIo綀靓"\^珟G蝢z鈥 #h蝧欽(簟 + =x爩娬桰h4嘁杛噤>\t鐚鎬3b戓p癖VGl孶棿 デtI茯mt?瓻TS嚱Z幫-鍀e侳谙瀮8戏^䲠]#.0#粡醐M4鹓磑!Djv1M2y螶┅葫﨑 /鮜亹 缈5{胵)抷媩垤y祥@7V砕JRd#硙 AZ簠蘻呌HY众闕鐯?诵蘴h$扂Pi 昆=qL=琅+Sh蛵籡Q昚#vy鼌o揲採A嫒D侤:抸v晛cvl2锓 虎湈,徠+e;)!刲AG(錢类冊u5塯,膾NI=樵QE\哟骺w陉姌蹾社=酅 1惹JX鍜&1蕼T&賃侶c玲;阋N剞f6秔Cq冿灁;Cq俼譂渖6刎悙渳=?:F 帴熊愎M玾H,a侐覕#t95T妡妭蔏(n3艶qIfYR5歧`>並($l浠濨╆#'樽癃uf鷇氫 ,(6F鱃瑻Q@Q@z 1O|耇W  0任@兆'≯テ7X=A諴EPEPEPEPEPEPEPEPEPEPEPEPEPEPEPX^%S顿皏偫熓穔 默v.N襒戼PQ@P:奅-崵懱RY2m硐<;wF莪釀4亴嬫鵄?S*=栓e8荾連8zDq)i-:姍%Bd3冀﹥(,﨎"cw灊s锧m呿c鋥禸X仦9鄜啣挡1堠咵&.7!)亲妵M惻ㄛ层%麦锴醐峬.e蜓 i 1)鞒椀s胎X{RT覨駞蠓瑖嵁 鳷T``q=i(0/渫:饵s讖~(迶妋5#C%媇L v1φ慎=FF2)杝 覨 ~靦泷N龠ME懿0靇?8珞b橸偙U柒隑瓵;陖忴V畷K9罴衮8蝭唿烰Ha箻埠朵r3?釆揫s*ぐ憛尡?7憥:鳔藄p趇X樮) 鵴閺R;v桰.bU潤x胂榕B$牉兊]i.my +冩媋wnZ蝧湊>烏%论仝 積栤 器(G<耵惴i菪Gb8<`t<23Q霟十Y5艈爦袽滭旬r脩渨颱,%蘈跜m'苶Z栣a踛7断硴燊曹運P&Ibo7$矋淋z 韥谣秈燹9c <2鳆7訜z[h烚y^渌#欵铃皕螶絨叉(闸hZ iD<}焉<襽2蒠#y2^W@q偳d?Z+飸 +粔8Q>暚慔tt&h愣db蕄#钒磶鹷6汛d噎=︷喭f6#<7у4踴..Lw然Ir9畣-B1*nU傑"珕莼#狘槉w凥#荔°彪M奆塡2 罵9蚷甓][h%浹sk+2笣"宔溹S+パ 碤$_*莶頽9 9鷃鈥9+CY6鷦國d;$g灱}sYQEP`H艪蟸Eu蕏塔映晖utQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEV/# ;曵廚GZ东#襻齯刃5EPEP]g,9 L 囈瑰1荜 )d'ZvV肕7逄仮 \u莬觮X裛i溷2!萷MD4項B)柿g,x柝蟦諞mo-豫!MH~5衃PP┤ 珩 ﹏$8刁H懛)緺9J錌;簛伣q巣u5<覅)$kl%QKc炨酻渻#$懤犻@c夺rv偆碌/熕矟穕!q8:ME屻*鈟?7疩姛Q7磿@奝&{渟詔隌&荮 #`C;.釵?7<彣銑謶栍B塂波|mt\0奢?嘮螲涔陡緲LfL2:秡v莏建H鏕 "m俱梠皇mNvk8戁U贘訪邩篪幍攚!e;旪;5j钿婪 ,h.8汶U茳4^?.褣)%pN综佊 c霟鱥惉P堜┒槚\纰窳肷荿 (馌钜<陣贡 麸R?佼d70瓽o顪8魍2谄[邀▌c,圹;H郹u橥l枰棅TE_衬踓a湻RI厢踑6騑2溿 乏@霌岓鵕A獽kq郇M琘社鴓1v5哮檰雃溶;訾剾䴘?'Z.鏂驵O2獧F岱襽"攏舖iZ:\撵2O罾<鲭9 X鏂帊宔X僐藑u2:I<尞rA<蹙昷[禐+Ss淎!誋$灱衄S]枏!桲穎粁夜亵-⒏[dT H乥A绍z:H阏<乯戃珼}?J5枏鸕}卶憹靖齭Ua5 牬a嗋;岓WC縡 + 闬q橖99q鍹痳'蜮3せGFS7#<劜8羟^蓁痪鸎 娥陋N. 挚#C框^诧$岛駼硟?:夵+蛽塔驺廭斣扝2;#匩 k豩Oq崦`8醌茿眲y捤(E 濐黿p\L获4兲c髛}j淤號﹑B槝 0q=弊?鄆1脋 ;<]B 蹖}3.垌7攰澟摄帲h崿厣H6`H蕘憻綒怺欙嵈F,l軅9>漼<⺌ъ dDs +翸⿸rx'鵗袂e,姤[P徆r扇鋨T`[6.2,輺q茿橐謠6 c焞踋;詾務鹷对`蠹礷+睅9\嶧 1鞥3.歘M傒Q!乴蹴脂滽l炇PT啂-·^0规*薶l4}0朏趯渧'迉*[镻$絘%忧!c窚g蝯姹7v搾+N鲩>fi'禸$v]○r苶:蝤_跩$ )S傄z詂 .g2+?翢楎镺X"6备窤) 虓:u圊X治墻祴%佳.閍8)臌僺p$g.v($齭Ui[%QE[&j0H刿搶g岨地P蔄R2+蛋 o咳P( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +婕C;第皿袮鷡u抑',帅诿孎氵@Q@Q@蠩}{I塖遑凝嚆=8臬歷渓剃觳G q桩r?п3t笎y@r烗忬罩+┽-厬偢榍5Q4 +G@箎Z蜬{$ll懮S懳y闇馷B:葕鑢诓5{9Z[y儔Q籨qa幭烊O赗G;(豋|S<髖l鑫BH8'熋荞N髣栄(B:09$p})步昂a-╔挰亙9渵W3#矫D+逕'楞幝A$}29搐儗駣巰:c}i奊=罋!.w0咴 3幍5魲-$捥ゃs窿痁(S*\c寧魡A豑x4i.榜-阜卋騺3膰d亰5y 槂 Q鲙s瀞鶶"礊e2:U&璄⑥圝=X亸铆V鹵踪吀檮C?(惘跟詅鈙3H|抗?/右禸痄>l杈汚o皤V9 欬迤喁>潮f%槣抷桑鸿鬕\4m!蟅c1Rc鼄科8唰窑娳i冲D騝'趠娮䙌縝琍搟0b e3圌s敉M懆尼銐懬FY#醍秺淇眔鋼/,rY捏VW贸y竔潼汩桩拪犷,鋳醐&犖zJ,mg9蒕慎Z珲X麰轿dBO犂+禎f秴槣抍4魝遺D娯鄹(煚﹉(妭赆-m辤\d/^N(篦Y4g蘽;2OEq觠黩r娗1=j瑩躄歒釡憵铌灗 应膋&%X'惕襇 +BN八9 氺幷&娾7L,=寑(暓醳 嗏, 侊?摡橐i7汉;H鲺讍餅"H琦f5"裇蝘.湆|>雇K1桋浞}曘l倰f^{鞼6w8U撹*(a仴鸤k笫g射q垧$qG韷溼F*J*9\憨r狧Q喳P擴(D鍵"歎谘编c廜aWV赢n ,?s惘'规沏灌氼珤浙=FU弙I苒絆<{s@ Im'岢銉腼主Gi- w9f岻>5Q@Q@Q@Q@澕塊0$輝$忞]er讑墨 褳? +阧倪怇簭鋕D擡KV%N;鋚?渵弛Kg鰲厡v彶=瑂0{{u V`猋 +9$S驹c捣ISl鳞+貂5憾笁彑"浝cTnv灊N犜w:rGei晆哶澵 缈襽-莡",蜉凨u#藆鐁撟倉:籜:溫Q0秹F伔 渨T@m甯o.CJ憘駜彠鉆U嚟, 甓笻|襮渢赭┐絃Vy#1礋敯$岥v猺k{dW幷 0蝧燌?cP*占Q)_軚弙F[險7騆m<幙Jmt-蛳n叭炔&TpJ佔摺甪璄uS$傄釤枫@^'梍衄 +t幰H午,膾}M6 +(44O A蠱u杖锜凗牃毹(((((((((((((((唿偋鐱-Z3.:2w>?襽9 +( +(; 2U汷劇廈8猈.煩鎘ypq寏欭)/湮>X`GJ話,2爟香@j }哹帶錸铬夤蒷腪牬iI晈咍秨氙甪簋FU%&绎!0 j觝蚺驑Z  M巗炣諔66F +9Xrq僑ldX0b@$`=A隌紣$s$悳凷髆隭hy[1耍J闡*U<徶!@宕哰hnt q*ZイHe翼劂!v耢q*QEQEQEQEQEQEQEc鴬鯥(\樭摓躐Z甂鼌C#Iノd'嗀0揽#@QEQEQE1輈B2鳫?鐪魅訛"h容FqM{Ky紣D靭 $)┻駀峑= +s恾╟穫1苢尓丼P'墊胢馓纓?櫘z椭+$s匢夢譻#琿彻篓$烜+億E;ylU綱+鵓Tn磋ケ彦 d<蹼5qX:哛H N~風x4`0"?樐s荖8垄綌\,盜nvc8$v撉F䴙笛矄RSpk2鉎嬱垆;`OR(錓V!s迥S>鵥?EY哫..Y`rD瀊倃A认鸧盡贡狗塶%F莞镘Cs責ЫR-籿Ur9hI鋨,3!-盧985U3P醆鄜t1蘌Fx黴鵖h┉乨Eb#恆狼>栽&慼hqFRlむmMr\染`霵1榇c襞C@Q@4<璑荼湺蘧Z飓伄肎w揕呬fv;瞂錈樞( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +鸟睩*;*竊迎m諲籫%+" +6O^?*鎕(絚ㄏd卌赑滍a咦舄笊鏞$钙-廘殥握铉=佞 酲(ひu3tLS侐懫颻瞥鮗F揝櫮戫倩漆呴岀冯Yt睭覱篻bNld黨躾リ Q;??櫓蛯撻懱 b0蘃<亨麋璯淌顅}裴rv:毿吁!d獮_頧掽傐臂O讱栟%穠+ FQ戺壿學>:譝q2j…d)d&"e纀皆u+杢h録躠敃#袏陓;.<J9z象蚹W?釂墚F愦侚譇@Q@Q@Q@Q@Q@Q@Q@Q/2北VQ窥誾臭禺*W朐慇QEQEQT礽浞鹰&"]桍w"gi<汩止C@e笐\3困a_颱驐m誁鍦Q俌 g>W膙籉瑕 嶡Z剅簋zA}稹<;tYJ騽麃趾轨鈿遂艀寀鶳*8cJITP=p(2%H! 戶 (((((((((*)釒奤軑詆-煠A%将$$ \潽膫09阫B┴Z蚸]=纀9_栽7PZ&殄T煚顯裈烾盚胀蘢7@O"堳[ s认万髑錊há箐泎靈q鵗S$ 寻F啬刘а@W蟷en摥绿嘨rO?桗だ!}捾').~鑕``g隴Md遡V遚;7D楁3棕z2蹳腂#2鋮#襄蝚苫T懻莫訏胣r@'报扏/貲燠#3$樸渨5@n>滮齮傗;X$塮u;Q鄲鼱1酋荍襢4稬血$c滅=1\霿8#踥,孖旾/] 銘R}甕炓Y溕淇躋B拀笙_C@o捠宸W[泦;S=Ily憬e 凼咽籡z屾疌񣹝酿cj碡9鄎颳b捵ZYchD7n 9>櫹X2挰A7鷟謔髮芅荂S/弒q奔矐3ld9>炲窌(!\佅缥O譅( m]W鶌慝壈悈俘u_+稜(((((((((((((((菂淆ro鋔臗v%よ,寻遭8( +(/桀毹冒笎@8惹綦鳵jry簩韺a二\J碃辻Sy2>#焊昴乀泮泾悍4\簦=憮援釕憣廧a魻E H猿HiY^*闡 2= :辡稘%旕憵栽,m;嫧Q:曄蜑儳eC屣>g葳佞嚆跖Ep迥@籊鍻酴$屍羀 歉s/蠲 8c鐝襽$涌!m]W鶌黼兎惷nA幙訮鹚麵"U踡b1憇挷|冱z顺"材:[9瘐宗爩寵类%尟鶧2'縗c醌:%YK蔥 *1冘獍u=9豉UY儯彆踱ㄢ;e桋瘋泆Kl恄p$趿媵鞼k徱礸疤n瀌,r@喋噅鑝鮧9誋檆$gk鰻 +疂# <3";匰憎興]@癏U'巃灘W鍤腩-⒑$榻A#熉/4慼袽蓀∑鑺錇v锧` + 陒S虂&輓Y摰硢=}耖K8au0櫜釠qQ展鷚è;I#;湷I55嵞怘)G,藷谩夾謤:浣操k$D9錇A什嵫 *碒f}岱翳8莮龚4軿KM盜驚3幗?Z縲=濂翏[竱愥肌嶅7v魻 +醖(T(~`OA汕#峰YU巩勖}*覒滜9^>+ +(&磚庲s匶撹3]舙JJ癳$09vD箽晖辸蘼B`zPQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@g犄rY噉鎚#8囿Z洰[藂d +e}L録(矕w-J惢gFz}:TL{WK狔熧铑;>燓家]轹鬃靨K勂#懫趢9猧隦:4r28) 弞岧^=翟霈 3熚( 媹釒5糹w硩哗9<灲*呭诒髣$T飛=zT贓踪nw粎厗紫釧历~祅﨟nt珫ku犯G S1辇鉆 訵w瀟藢oP佤犬 k骋2i3c!v耢q(Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@s嶬婸岢)W 鋷灊蚼-蘉r鲫鶗Ypx垿[[ 踊我瑣昐x蒙腻$FFC N哣咓(Rq彊C1]蹬暤虊$+簍'5懎0莑g祫+e聻6圳﹃Q$/6k贅冭忘$漩舡m<^釬+/_O霉2)d侫$LQ #﹌琠K遨,(v>?4%宕fX$猛Hc缨<$簞葺箠H|艗C偕'5Kod^韯扚瘄d鹶琄媥d稁{5S唖n鐪r u蟖@IR;A4倿mUPN寀麝眜c%管 犑跚'謤*訚歄潏8{彔ρ@鳪#莘;#蹮^:~甹秛à 渡YbX}飾风岪Q@t窎 yL∮s`#1佔裣閈舧QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE裂EQE澡2o覷q-婟{Z嗱V觰O磽+亞Q詂5煟撺攷$RRB2螟q炤跆P帹&3磫68轷 +Z綒菝龈dV(紳)Q抭颸譍4吧-滀 溉缮屩f +C▅b#=9 +擰@`竼($G禮$p@惙萑臬幎 啅P/3@C=Ib砨覡>a`雩D預wa吷>灖御+d"AF*s跸醍@u畫2d\F[?\渵T┚痍H秬r溴樸阀?虱袳QEQEQEQEQEQEQEQEQEQEQEQEQEF"孞d◥餥熎あ嗈W椡G睟?z殜(樦4啂O2 @戭s俊蟂灅::骢"w瀔║Jq蹑^踇4Kla>䲡jg翟l烐)#10O荻Iz顸U羡煖F'8蹒v掎豉贪銿T炪=pGNZUEr#r雭俉+sK簜钴轱6`佘{憺齍檚u难蕀昜9梜I域稆詺T信<霵臖寮睘ж 遡3 臌迹懬q诔氅卜櫘&瀁i1艻#i9鑪q淳F暁9!<)\泷aO<,k##]亖镻胀CO柷梭Y~q礊伥鳘tQEW}\ wQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE裂EQE-紴L堷rCu$柆+1!GLs:UE┘庰5滉6枍X嘰鋞儙ji<洅盐u迈绺螼像F搉鎓6寽鄗R+G):韑r?葼炴xY6瞘鋺F7騭䅟+B窾bI AEuZE杌囤s鍰禢I惘阃A(w,cnNz着s謐ト 羠蝧鼇甆 +( +铽伄疓詃縔|訳d#曪i袳QEQEQEQEQEQEQEQEQEQEQEQEQEQETS虗B蛉p2jZ…*⻊(挗((s胔ヮ$翘}巗鼌W#郇籲R5O衢c塶ZY*2絢Oй桃箤y)]鐪q屸9i隬u ,採0鹥>焃/j1m莗t麟鶶(:g搳埯M-躁袒9#唓宻倇鶷眪眂Y轴Xmy{弤 c昰剸 3 奇惝r?嬼勄媠~s%轌0 W瀝?瑧Z!笐 Q瀦諾P龞;sB$p伹讼暱U孭^-矫%@x騂苝{~f)B黜v釾酜uc凕L9ⅸ顶h?g37p]夕q笶@鱒窆I'u K6卅嵺掳&&(((((((((((((瞊F饕Z辒k笢q埸j虲qnV蛎藧H1*j↙^[+菻幷ns=k涀揠虶%橩 罀{zV骗x玱 娶搤昼$ ".mfh捺聙 炔n#< 鐨紒+6迅鄃謵u躃m/ 攍c5$ >Th纑Pcw嵊蚺GS赸蚲!x[ AEtw哞扞傕)鸳<䴔+櫕Q荽6re?;滗幟uV +( +阾+3oi姹;辫;:瀚耙e皬蟯lS/QEQEQEQEQEQEQEQEQEQEQEQEQEQEQET7V閡n腥X+c%z跬MEq1埉I*嶵g卦Ub?氆3U(圬Fc錬 8 :G柭0b碱陒g耠MtZΓ5F 莅寖诇觖P鞪赞Z4K嶚K?'q;D ;萫箋喕@09繡荁NO蜘x岺箙刯旤鄏沁1lj矋爡|q逺O懫I{襏廿禎P_<麛R乸tZm嵞案H2r .F您v虎琄`n畐旃?彾+檼7崐簮C?Q訳;雼5s8菛w扐惘C4呼7-)節# &恔%+~4光x 'M!9<幗?缰;甂鼌:棣[vkdW榗j稢献尧$橹旃繞见q*srl^0慶莳)∵L煲mF'$荤'鹜uTP$>團<鶞縸~b甕ipX蘢墹,Wo蘁?椀_ +( +( +( +( +( +( +( +( +( +( +( +( +( +*鋠覣珫櫠苇Pk瓒扞3歊[%贝烲\·Kmq杢#p! '+8I稊$猆妴戻R当鈞罋轣w2?@帄Y偍%壚溞袳,昂ZC#1#6怔`gUz瀒H"\6葐逹扞?QE踃>埝/淖g%觤賠@见q(Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@]鼽譜嬶W(,HPI j孶鞦 阠S:)嵄嵜煭Tux鎺8!I`佊q蟸祴Mn诞邬o;y貥料|覗$I 靓碃蟸{枡#柼凲"萕,+窑烱娰IK眒岗 o^z~U挆 壻蕼U5mX?V=8 ;儱4枰琇J垼c/v<:諦者韀憀株Qb)砲Q李~@g嚌烴9 +a┉Z纥;vVf禸68,*(((((((((((((((((9儤\DB萒'=〇:邰芎济;檢~兊OEr3C.绺g咷軕9銧隮B嗋'萛钊坌糶HPáWY Ha湆鬺>m!_ 繻Gy鵌'>燓盭QEWkЖ]>(yjx鶺]?囶歿W壣-p8\p?C@鬛EQEQEQEQEQEQEQEQEQEQEQEQEQEQEē:馬U{秫鸸甅鼚r2 nA +頧g茉TQ@Q@HI?x抭寶帳 幵14狜P醰搾3;c报\猡Wd纹+竊嚆#尧暦9'╃亖@ ,OzCEz=橐Fc+挧r嗎侢])QEwI碽6y笺~q喧U?P勾呤垯X范8萧隮簗g締R踀Xn8耶鴨X婢崲慸_, ┤阧爳7奩詒y莬w┽怣 +J爡u 3?R毱@r褽<材#曳m蹈.$%哸#0 ~(V娢辉'俿V3L済榱玽布鲩$4,偈7QMEPEPEPEPEPEPEPEPEPEPEPEPEP7s5酱挰~aA澒JK[労稩 硛輟猝ㄦ孧 颇卽*q讱I%鞠惩砜8)扬蜃疼v迿飱幹-m\喾^供滖8圛雸 蜜彥?璬AL轡h!{I憬_桩<氕峫ct%C拁e:誡8曉-姃槪彮G,O 攽J恵df沒v霥爘8橥r役HRTe鋩H 6==h虠%魟僢!<偖I 麄2?痊昊5橾> 9W萡H9狼Z㏄EP]員砉lえ癞~喉蒸竩r∩觜4PEPEPEPEPEPEPEPEPEPEPEPEPEPEPMe 冃莹;T 詅1=23齤+?AB +(孶)!伻#礭諠d豫d`阸偋#牚#: +嶠鮙祶.3财靤湠泋蹉炟鳘鱲蜊瞬d(匚( +JZ(苅 .砣胕趓:O幸U+攨'Y~e1-7駜兦鉆梨琷2翤P$ 6!-1禕粎$zZ( 绍蔜鷃 x"箞 +rN1R^ZKe"$踳2喞9欠镸祿蔀91潓雰]rzv榝糷n朒w陵=~悼ed泞躙宯c塾臬碢EPEPP^M鰗Iκ倛H萦=囩Sf3.昿狜!wss踷圏銒虚2匏肱\7撐? +阊2挰A慮枔z字bG\2潉顼>輍Q@Q@Q@Q@Q@Q@Q@Q@Q@跶稫频ve#'r暈5fC$gJ拃 +( +瓆r稏扟虪v冚 +砐>(W0郯蠔嗙岞泱 +嫨N 8*{u即r:U5隨顜P惂9郟gu蟦亚+D蛯:觀賓388$庻抲$笉m韺奧鍺wg瀯v*甍旱筟媢杣曘!ztQ轴&焟mcbK7\鳋g颥*懑a挦舦*v蘖荶鈎(畤.;勏圣H9﨎龟唣屈?o袳QEQEQEQEQEQEQEQEQEQEQEQEQEQEQE萰氤T渘f毕P R唿単"≒EP怌$颥Q.鏽8VS[碧RU]蘂3螻糢囚燉1Z嵈梬杢崜&c闛<隤7O歡(佯|癇渟廘隫o糸,v梩ebB囿鵘&锧 xXdQ?2R[@1娘鍑8輰筅*园A%脮峳@,yw$舡埓xb経栴禂8藍O璷,埲*纻=7J右,]4総: 胂9=y獈)梍舡豠H"XńsX'Xe绍#瑻釽w瀟藢oP佤犬k惨i袘Uv溿籈PEPEPMeR0AN8楳堤岸r孎H艷璢询s鬁C'苢鑙"呫在F$?@ш+,`H*FA鏉\螕琀磁#+匠懽玷+((((((((姧qk,穛L桹&3>祌 +(m#*您@荆g%轠kmL v醅絉鹕igd+?0$癸辁謘J1槺 n89蝧K,睳幞戜`19鈥G曳譈N +p穌%邨隮w殀秗E;裳P@庱竫賾嘊WAc瓽)賢&烀顬J鏷轙2B璎Q橦 :弞釠幰J鐐F+Xj睠チ&E昘傚AR9鄃+" +)( 俗?[tV窧俄Ry8螶鑘(((((((((((((()T 抸 +uCv%と,壤S宓wI59]N9乀á +(4tI牍昋敨8i胂櫊 +"梭 c- +⑧扏蟧JJ袵扠1~蟬>!鐮归閆柡耻o睰r6NG甼3N方7B狮(e\帶钿s镽,:姦廿-c'甀#(}|j踄wp}k+莫N湦B t5盰陲鼈'鐱9隴O?懔搿﨎筈]W踉!@鬡n祔%オ榏VGl 騫螯贻櫆谇鰻伫钳OT贷嚌畺G 盐/o隟┸Eoh辺r抐3Z&5晸輑.7@8脒痡讪;xZY[j/S屨5B+9篓re +9向醒EQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE脐p%迭盙悐F9艪5V燓爦Q@ +:詭熹98nA,c9'鋃}咟秗 11嫌薮5;鸞󋸔*3塇(@礙(U珩?65.罠?轥鎗X侳鐐GF?.h8脎熉i,,Ij-熦蹼X1霄.斘X扽19酹1i/5篂儽~渟貇}猐69lo鍓慪-竨$砝鯛帺j褃篯络M=9䲡柇 士櫠В8娆へL "M癫㏑0N隌8WK;窑C8?+ 鉿湦埲锚傲耒}溼[,2v窀巭勑送R{塒鸥彗岝 6眫蔜(篡賆H3 u┛眔餕C?x拊JYd檭K#尦qNY +G"寏駐滮A䲡r鯰-砢#y>潀=9%/別司葈1瀪廎k胵>m酶鬠 5k +莏-丷2w煕譅 #V娛"乵罓q蟂+5窴玹0羀8 桩*5屿誃媂p9@MZ娞渣珮`獲咸*╚蔸鼽ū2簝\y,K趺n 缍 蚐Bh鱉f3s苤+#`U伭 z`隯G氂蓼!7#儊媵棫j迟62e蛏轸舢.硪hl7^+k2)嶡f(-嵖Ooj雑9d买0%QKu猓椿婒!$G辘審-蘸][2 +厣^絪@][ +倮n絨S袳V筀o"呓:q醌4Q@Q@蘸][2 +厣^絪O1 )扷(蟐(桲;[付uI6硉jm抅$$^H睮粋q=辋S误[f蜑_l9┄递淲a<褪萺帊偨:~T駉貎☉k8藑s肱ME纳o! +t$H^GTA諛 +5絍;膨!\飘I灱z嵇P猭島嗇Z8限b~f炚強J4)b)n 7逪 脅埂XE 筌栰=鏜5 ;#@瞡 +瑗rpwt陵3臬1&]E厵幞w夼とg?fV 8/攘鞞●缒;烊#4隧N 'P璋蓶,;dzg也鍖3曝,孴阙榸磬;垨X況7C孴灯X5岨j*禙鳺]m0阜嶶A9堑r谲鎪A僃P6rz酁謢]$Iu9 'JQ@n鴇7檖Ca@PWO8?象*唣屈?o袳QEQEQEQEQEQEQEQEQEQEQEQEQEQEQE蒶燓爦蹩 +蠩P(贩荡硔0儫<9鉢鮋ur鱎+HI*妰'=4霒鹐鞃o|霩A>裤P暐徜V a拺捑莵齅G琙 +龠椱A'(帞&618U咵蛘欛?=縊騣fC+[<6锘粺|c瓝o>67韻箑3徝咏f橼俒r侹r3 <珲 +Y簘縟纃忬}靲8情@ 嫏8,褯 򍿐J晵{d当倒H孚K葸兎隩,&竟焑尖2眮?.Ny┐{喜贛1)躚}~Q忞謤5峁戭Kw'*齍囍X錧押簝尒娶)$嫄唞骕7i曻-坥磽)o 敬祐d1ypJ懳sq霂骏U氼;xd劻:霞:寀騮 u"F+2箦x讕x娌俞菞%醇哥 菒{橖0 Sj裓[ v禌8; V&_y乜7<褡毩G氾駙凢デ揄凿t=Oz穧-14鈶U@坋戻'訋縵簅暐xYYw羛饞z蹶-#沫,~S灘8黭#鹯8爥QVk;Os攮E+"1鍌H岀萭廧俸眣幑鏯=䲡焬"jmA+e泇蛧犖G#疧J臑顊禥<漠{=n钝5;嫒砿內鵫憱k"楀扺<∩畾;{mKm,Z錪撋$艼纚帟b鸓桇 +>牯'昨 ;峟Cv!矰pN蠿}嫖8 糸[,≡蔉# 娿扝褜嫻$@092N弞胩 檻欦2面鷝7╤B众Y亦癛0=N:琥V1VQ+oZ俭畩C+個B禪廮欠錣G慇戒鲔鼨7V迲ソ甚默邚9=+艆$秠儒X`pA 燭7Q<鲲r,孛疩蛂v航莅UY7狛鋞n?Y颤釪`蛊3撹?葼 8P +#9vU标}闖]T搆瀳W( 欮*Yrq堊q╄ +*秸姯q @俿鵖?磍j7 ⺌ +穀W哄当d@沂ぉP0?5F,w莊粂釹蜧袏聭赮G9w%夣&/闦甲 (p2櫸O畄鷞VzF蚋H褲廍Q抝6[狊鍟cL23镓證d4+X钛Z%q硈鋼>WK袨)c负`瑣绉C恾y╩憈滾}癵迨瞨x象鵇6S;Q棬漚j)驳艿罣l) 鷊鯛_]"俥舞喡0[儉3譅i宥卪裕)膜2鋪幑韽陶w/+紞朾w1签膣毐ue%蔅槫錦NF@#稯篆_捗眵W1) D蔃茳囘5嗇軋恙頃Wqf #帪攮W$mh9%h閦撡Ff駛x^z徸娤 号躓 ,Ai 秕鳘璉@RP?咫齥煯兠蝓縀PEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP%萔䝼*匢<<,,&(( Zu磜w"9e.3#侊Z~ 磵鞞窐岏璛袽$@ll|龙w笼i36椁.{g狕閆哔I龜.^F嶮ト8 幟疋R欹 $/妪鹭8閼襄N织Z{杹O睿8:拔O霃聙3)S摲 +Kp 8?绛% +` + 陑 +籫d撑v钅儞N+WC窇`I天巡"炜7^具>6凋b矵d9鍍d┼z齤Y璣谛瓋ゾ{9=s鞞 m-折:苒瓭煕蹴X篊5drY盪<伭<~5<谙沬s/綟!褉嚤3N案硞籬<*3粸欎P綦Hi錁泊搉;:鲘R詵YL檸s寘8韂C旾83*p+ +!揟2鄄イ,琞鋵P啑デ頱G懝唒{u欘2g壯N59e鄃n欗莀Z話7羗2盗S/#8蟐晪獴cd杇 q2.淝 O詚c3U桑壯$U豘@r66觚漡m璵Vsqea)蒮V#醅M椽厧q*k{i甠l1碁>Уm'=g鲏攂翈{鰻 ;8Ub/#瀫鹽23朴簇m虙]紕' s帟Z 烚Qo0_( ,v耥蕞1愕#*;rx鎿hア)h溃枈L +粗溃枈L +Z|fy闻=閌俒<窹籧8抖掙aK=阫獘O禜]旲,c{Akエ佷奶綾pNp9燎N B撼H6稷崒@%夒与@.F無穬蘃虥L`dt霃^+昹$(POA诘但ó違Q&形1热 丬諱`Q焜 Yg4宲h,睨觲88f掖5 mPKH耦*18yg. Sq9; +=@8闊][丛.俭菏U 错9溏(b6虮箰J拳3鵪蚈{p譝RNy;q姱@C鍄嬫珂2Z硉l愃oi澧/#'㏒襓#VT憰\a8隌Z@被乵|$冃縙銦颅k:k]槥軼梯8 '璼$俽^痀曜6猅0v阌(瘩&x+8%s岨54眆%9$4m%K`鈥攨 兇MJ(+O@8/樖陙 鄃 J虪P}EPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP)#.!a酛麑c潍鼌g"≒EPJsIE=なQ犯煭2(sIESW d蜹'_覚SAwqn嗜 纂顯$簰矦诛 厹瑣!蹘2GcL缸mcL煤fRk棦6沎箳U昑Gn帯锣摓荦雡& 狥镹谓囥\3佱vF臟w}=3挔1酷鰤.芗姮Wj┿vH8鳙A;6磃 f;\圻9莦纱憾蟞e昜ps)翥⑥";N踐^谖t峌4`卾吧'k毢俌g節榳硑岞=闗絡忖5DN0K#Ij掏].掩3$F8茇1Ur)G}毁沨2s侀SZM 2氝晓-?Nh艜紧懗亠 熛蕃&9穣%u呍閺\兦蕰u+h烦$蝁A膣徶[簽埇J`8麺Iu}iX 2饉s嶺z 侀舄ke;Z 騪N饫w黔T,艠捘鋼蝖耓幖詵$滽佸! !'\>苷z(k哋9脊PNK层'5i( -2[繷d堾濭煃6鱊柺5id堫8I向猀籈"2怉鳔躙Ks/3梶c4`贌#虸釔nI芮 gé]費i4酨 .rN;衽U+31N蔂 d埰╳#崿8鑮)6>茼lcvq8乡6iZiG羦9$3鵖(蓝樭粹6驐c离=kb 薽:/"磽 铧dt}窘霟2轡,b5晞aJ鐝男蓆虯欏X捦哵i|彸椴鵒)VX斌n0;缵燷R鮝, ]*;儒鋐v=K揁 歊H 憺j谝{睫Bo蹖3醌Mリ/穦L跢褭吏隮被漆鉬F +WV絰?=餅=瀺qp7I麜z澼=*翫t虸滵庖5吮椟q$ +葨陏裄Y澱zl灥 >無\$1c{3摇'憾{YJ;颇e黬 +((淺$郹g6 Q@Q@ Zz糤 uT跞郡媶+k*E!S索豎QB俁@ 颮PEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP1&PP$F绉&勃瞢'洨\61嗃子忛U(((((((((ぅ)h(((((())i((((((((((((*[yし昬壎呼8虴J(复v捯s杊該阸STJV瘦X5瀫 +( +( +( +( +( +( +( +( +( +( +( +( +( +( +(8鞷!繘蘚ob胛r <認竹\圀5揁Q@Q@Q@SG 潮dm(蹈gdX%,杠彮;霿箜?4?禺缵oh唿鸒~AE+)V*绬覗8杜;(6姷漼+am鶈哏N廗綍r鹅q骯Sき靮彲tk鄕G鉆舻厁霒蜚9柰祥殜驤钩圚鸧3侾搹B1Z慼w2膾+0= +刷瀽逩(剘稔zA}馉 +_聫鳪绀 +娶%蓄a呬i!*奨酁邊eE]坝た鵱猚飛嚣5q|=q黃D92x顯訴#觓}A8<齷?Z{xp;nAlp +`謤0+u<:檙娄G鐟N剆䴙框^0( *廒}懀韦d2!a焛镔 +鬡溅<蔐睦8+?c销z齴愧丹褜w裑辞l狫窷悒苶*宵#燈丒o9O_疷d裧*鍛嚄糶伻靐*姳岿鯚氁郁C*砠, 汬缱=}婇眯m驢藷(^龚SB鶧0[0<觖P =i='緡鳴酾燓酅.墇挷醿熇殅畨t 缒 禱r3肉2ó甿藽!娯4丯衇癘n裟-^8ZH'Us倇巗鶳/Eu哓竺o瘢摸x沩4妊V8跴(H 渄Uh+CC惔/ +行- A4譗EQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE跳怇?瓹鶜森o屈跞3Y4QE儇([ p濠汩Vj啀 ?郷V[ Ic&衦嵓B鱁仯S6溁36<滞V繒!矙銪榉A苨酋锤V R塸.1/A訋щ辚ガb(L !-氨>偕EPEP il蘗f'$4%+*.s%QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE冣+<⑤F6!顉`?]口8,8>銘@ihS@T1e 铖滯橖k64? C蠱u訯EQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEs>#忴霅瞜c膋嫺焤1濬 兄=QEu7鼈鐵-$∮a1哢嶰SH#糩iQ9貭r9惴3V窰,&R鄿袂5-暏vP樷,T讹烰♀9崕 8N漰;J桬P-賿殓C攳:烸ZuSN屒e|餐=0;bEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP\柗h肿c槚S烗擎k:胶躨覇嗥<>咷鉆}hh圑牃檄 﨎揽@uQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@蠄5(*v3宒灴挚坢膚I8bL脨{`YQE骤框 凗縔侓訯湥?璱PEeZ藩.]^澨籶x汁W3 榼FHlg#脳8'碛璽QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQESYC)V :/ 6譺梦2s莖椰圑牃壑t鼋匷_9RpH鐝伪4? A蠱u訯EQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEs$爮澥?蘍刼躙栁;q蟒{漤鈐M=-粝:)2礤#弤FiUe穽3卼R#笙^鮌褙V邋'媌腉錐s搥K02:謁酩朣,R$旪聙:=嗀p揽#W陠 郷Ts射$肝-廫 +,鉑.乷1譱瓞奂栭2曐w凿伵[赢牻 2F>0廚q螶結:2A袼F羴蹽搛髌?Z譅((((((((((((((((((((((((弓骆=DI$M艤q隴-QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE蛒崗踓^0#Ч紪嶢#p笴販糸閉u亭j> +>> +stream +x+T032472T0AdNr.W憫箲灡1X佬滦\下L列蘌侠蘃烈菻下?萛%+叭 +endstream +endobj +101 0 obj +<< +/R7 102 0 R +>> +endobj +102 0 obj +<< +/Subtype/Image +/ColorSpace/DeviceRGB +/Width 720 +/Height 576 +/BitsPerComponent 8 +/Filter/DCTDecode +/Length 37318 +>> +stream +AdobedC +  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY@" + }!1AQa"q2亼#B绷R佯$3br +%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz儎厗噲墛挀敃枟槞殺¥ウЖ┆渤吹斗腹郝媚牌侨墒矣哉肿刭卺忏溴骁栝犟蝮趱鲼 + w!1AQaq"2B憽绷 #3Rbr +$4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz們剠唶垑姃摂晼棙櫄ⅲぅΗī炒刀犯购旅呐魄壬室釉罩棕仝忏溴骁栝牝篝貊鼬 ?魵( +( +( +( +( +("濧,舧v溜Q勖橑J}嘬$徥@Asn'趙2豺0H隨襝嫖O襽0d宇抋r嬡s戫D6,飞.:c嫌5縀P河栣鍫_錠釻H(#8╋O6悒胂46F[ {u蘈竊毌ǔ%〆赥}噘䲡6$*拁镺0#' 0f +wD6V膻x荝q蝫s蜲鉠趨加$c儝r?螶蒭!C!OB{Q橽29V枟x0I$>Y3蟡Hql鄓珣[]昆=庇'煣4c甩荞冘R(&<${񳤀喇~+蹐徥缱烏f 欑粋Y@丕=(rㄍホ蔏.Q<姸颏h]MA51*多鄿|P;$紖襆鳸8TJ8^灸驲岾锲A憥碨DFUf孤廧o泧 +N3谉命驚tYe=A瑡(T抋8n漪味23岓镻52鶊臢T颛>92览傟鹑鶹嵔閼縵8錼;zW"稊▕鉩n1硪牳胰儡偆嚆蠵&躍23d`p>o龈鞻珶 sc?洿迂7蚌鳝,cR廊( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +)蘄=: +( +( +($=鵂ㄥI瘲(Lu淑4泙?wi?3q撻劭J@麠aR@晾蟐繊W昮XH#溿彮C5蠐!S0 "察.Ol覄嚆鄯j 鸈w#Y綱鰻 垿巂 n;U+松a紿悽‐妃狑)laf掮01荓s焜σY睞?u眡憶d娢痹c楪肚?象@闌懶彮Rk銲v儛'?N酭M"!Xt<焜矱 $嶧)h((((((((((((((((((((((((((((JZ( +(╣笌軨H厣MEG 惼 +髳;T-} +g蚼1<鋤(TpH腴M衮=X擄U/u禩吰F淁.w(V膜(m,1砖銓鏖*繕UI畿VJ]競H嶺9󂒅f;暆aFf'j9w郍滛Q殚氕4 +p鄐Y媙!橺iV,Wq蜯H桌\m蘽償$q跚[惏]*捹扷f蕲餼零嘜譃讋腪Du竫殖勧愢憦~@泓鈥-4窾RF3靠88`(珏'块姞襠`p$R2s郁 舞2O7G~;Rf=ㄨO~0?LK<佦趶4砬鶳渨2}?聲_縩29^盖ㄅg p銚嚣>'煋贰篱彞Ou 詷藝\劄:z鷉$()雺c<8雯l.鬂死*py蜲Oo支I晉C翟扺澂烝叩R娪贴鉹pz <棊O03;Iu1V-垑I!Q薼w?欬蕭d1R幑垭@譜J酦'墼Uc液cm 绐渨ヂ[vO奚蟩@0埔J[ㄇ5r8C$nO蔔值憝#峰cL錅J7狟蹭gq聳(Y犹'认执l堇]蘶哖@鄍y鮐7琣斾3訋旛祬&骎0郄錊QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE 讱B奨堆笇g>搓(覔w戏跐E憉y]诶 p9䲡瑂<5僪DJy@艈F~熞4/頴洞B.翕哎欼溂嵐埰Mnj曙F墣妥婿,omq冮a9隞:m/嚀K規*蘶3.遐Ч:K菛xlw'譀uu0睏$w飵js孡1咤╢渔岻LHS傽ピ奩J g<ē*鋦受f橏捘涗寔辒}TRrz~U伔蹍b1旇>偂d埄1蔊.件燒j帄N鬚湟儕J(狴蜰}猆摗螸櫔魟鈥'掆H +'+鞼5礎$撛1阋必抝[ig=x<熻hぬ7 昦O滺爩宄tN矽&並82鐣8庐#痤(許Y $ 鈿 +<$)黴@QH@=)h(((((((((((((((((((((((((((*朾$炘佋︷顺轂(訰)  庺eH#訮袳釞﹑KW瘰臂貞鞶noyd鹓4什yr,r6赇莔# 懴<鐘D&憙#Zm!(V + m躻酾A~谺"樶|糜&4{h 迁甶槼y&5?2UC#Br鄴[Уe`P跀Rb湂I +:崩{NL)#o执楸3潬 謣1?笴儒繝 嗞羭丈縻螬w.雄0s止荚:狥Uln噤dt5螰蟥嶗>鵌榍aW鶫勈Y6 昨鞞OI嶊2)$$契 儜殸骭,$hy鲲Q61*p84氌11L毼)Tzí_赗鋏Sz晆0dP秧N9M;佸9蟷娅蟤$ +鰫x5栴p%围 +F閃u禞W +脪=js@撓绪om<滅(蚹/滝釮繱嵞H豸霈雝W8\渟诂蘳2鋵}迉抓N簝o 磡<淯ó#i3皭0$尀r08騀c 傈诽9:T鲶0漝蛏3靳菭牲hM , VijZ+| +H荙鴳K4喺%泤躶辖OEA纈孌|使,:躎QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQET/m佬砟lr@<姒!稺宯;癘}躀 絿9u霁莵揁 A4炡燩箥悆x癄朡杠FG<{璒$i*釫 3.檏#1't鈥%芗チ崝怎/ml賛敱T酁>%蔸Ee懳熷@e墽誖b窭臊@q嬹+窐#oLg殤m钛禳痪9瞹*璟A !n<阒,^j+s A #8=6G1怓}规橜4枳虝8蹳:|~e脉垠P誦]n鸗机玺睑V觛i蹗劂=3X%;19$湫燛抰G絨舌~祕k{ 6F@2v邼g漫\'≤3脍苐蔆摆~mrˇ"PN:鏖V韈颦l飨zbB媐妛.侫1Q剀;,+屏q蝭闅3*0N9c鼑酹栋G曨v皩cfNs詔薪F汃i(绡=*釼攳貿#:玱泃 價3 l~虀U脿B?t湋;-'q髑4揑嫦$8f$f"璢:R貟Wб*䴔澮t蹃焅溞浥-k ^FFFq舑K$b8牀,]革揁#庨e増 u鐟诋jV錂-@iCa苲睁楢Y攼0x>汒瑿N1瀐M2HCf塇]叵'讷p冠跲|pkz&V甄鋚亊*{dO陈6)侊@4閾劻胲爚ur*錔亐Ny?儉>怨艶z鈥+]孛w嶚S阫-璭Y蒰">匁g5导櫠.栫戦O2NO_z蚀怚?飺a昈%$鷊娬\沔險岬H銔6錭%嗩辊猬EPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPQ\1HT巴KUYv=v菻|N 鉶"X9圩煭W緜k尪:廴哮eP!Q蘬窹X胶 RR尡P艪鯛 櫼<*R0v滖碲炳A8+朧6侼GH錓扤6(0菫繚S堻昀`+襽.\LL!d>P珡冷鷬x #纕澞x鵒髪」9%瓜5a(╙寒s9胛zLTH讳垝1P_\腣T U$湊J1$崄V_咭矿0$魑s@耭&ur'ju4穕Y1諊轾T 1慚d躼嶧9揱4糕z +c8>,睴 |截豤i"'膫(饘S` *仠rq譀=蘰d1算!}hΘU5蝁s戦舀7Js蘄陏4琼@莤b1,i栣浌b訩;兓錚@\)疦r猶@襅鄝EnAh朚綁n奨_ +R `1鴙㑳"厥嬺UIцi$臅pa;g .~鹎q>(5嵻60蛷煰颚"!d`A绂:喳XG礫骒Xf*;) FS9黨#Q穾_,'p1詞5泭縹傓5+箸~Cdb㏄3[秺媘0FN={(蹜;s:夥譶逊q:b3273骮妯憎0s御TT旬 +豑B8#灒紗o硺班庀-櫢=嵆錷軴狚j +,#恠兦公P%!F #8\y鶢 +鑉5 倜0%r'峢A樤CP`v4薴疽汚漪{zu┾蒃l 容劔戏h8s弋1鵖悬爉閬G杽摫rF 荶}Q侻譿L6 +]热虵"竘|罀譃藪$`鐜)#邐uQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEG3攭豟8螼茍P[x寝頷橖LL $q9B 佝阵寞p09绡_LT墪驞j蠛俆爩~F釵1蓫龊滒1栴}慨*O>鈞KD_;p漶袖s鵁蕗(L隋ⅶ饘;燇娰秧賒蚻暿俼鞵趇_7葆?*諺&跏 1烓 V&8悡)n嚀轸秱c#ㄌ厗7d ?ve蕙J)!贅5 X8向44 Q,w獛GJ┏98悭tY钲箒?{/圭撚衄"峜b +8镯H鳗衮Н<酽g鯛c殀姫谻戸τ釅"麝}Ik笓npk^4ⅱ"s帶栽W蕦颼q冇迉骈`R 'e酊諸<&欼-抮ORh樮:榽駹徣H#P窕i錘99]涉朜y蚫蓂婺萢@X0蜧Y钬藺\v8 !Xa比鹻徱ザVHBv施X厌I扏c侴N囻6釢Y姩萟M,嶡 |笇姟u=緍籒O?鐜鮭睥H贸璛7A萇3#-蝱:.7'*爲 c毌A尃 9罡宑p2=玽瞝嵰.r}8璆uD,u Y鳄锍钿鈾A<羟糕A濑l Sh玤Q蒫~疥銵噷`倭錾餆]bsZVf&i濒3詞)骂'=Xpz雯C!\n薰x⺋酹揘※Y欮/q怯黬躮6扷貀-蝢怇MEE WQ#殩 +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +(0Fi?竃6go∏黬齉,嵡违櫪{c蹚(H羆6喥?厢ZVV鹇榔 ,o!{]Kme糮斌:燆*闛 hERrJ颀(C粟騂2汤 )撴a喯<x>濌ホj!Nq错焣唿雳L靼蹪秩?!齷咳 幚竊玟|*{渢镻桿垘w}萏>\銕釜撨\鵬2y菪办>漥53nf煩隌扅姥1C羗匚□}*溝%技*籹社x虘腶騹29齅g^橇 +蘌`-#躉Z)(瓄极pN25cI'牣"*帄1@躈 弡rp琯vw,,z毞┍3*鐎躬9苎4i +籉ib憵Y渎澥懦?齬)懯󚅆a蓼#雀6bTr;s挈@ 猌P3諄=*:瑂兇<懪AF軕袃荿橖恢グ n俖輹?2onEj,;y +△n辁猝/0粯DxP1硝﹕櫺專珥嶰N荸箣捸or2V慴.移╆嘏f\笘軋!槑今熤甃嬫磔s<熕礣床斯HA#佔(齲9(m欁v9 1Xb>V O{(\Y[T 1軁*茎 屡巭鰄Q@ `rs@驲茖鍌╟庻\{"8- x珫p晛贖怖潵1莦薎$.l0 c<针旁畛鷈国 +氳3^辣⑨趵鳝P猅偅 詂瑼磌q/8]&:<諃aL;G(鼏(dtl湪\佔u醐]>G蟐 +2錢s栯[鶩镬糨q粝畝!*13忔qW"噇aUD`嶨'(A娉銙弤) 褳x1"嵦旻8<玄XJ崟嗈A=i岵旄(((((((((((((((((ㄧ2圶廓襳 窑:紴]媢廮锧 4嘙臊+&+檂砲旲II;堧蹔宫N]2 +禢x#忬鞾膶灲盄 -撋 鳗0mD塏@廠眄QPE7¨攢w =%0&O'n*毗~& 楞隝(hqO鏛咱洤8 0府僄硹 鋻=颀+焠曈X& pC=yF鸋 w卺Ot'襄Y 罔C帯A氚3 敉T急婋h|兾H隤7徲閇}*烟@峉憗侢EV}2,酜鄴(9齷縕o5哗0煞8趋比辋x両d%H┼S.唹^B厠 釒xt#W戊徃p0z溿8 v aY媠兝=*Z`q`W撉_Л/狉:鈥:卿萪.鼙p+棙0e认bs巣V直*${76x珲琁0el1a灨隌 W茨 +9陜徠ㄢ呆葌囊g%0J祊贪;!5塟殝l鑈YtS籪汧氵4f=射侀鵦熞7$鐓銓帼uK; +99绲I#岒勻建J=螀# +~`粈=}猽攄 |鍓9?梟~昖*Ua8釒?J汗焬嫕万鐆鯛FM讶pT( g鼘UT 搧巎喴弍p胱璍h鵃湡隌(((((g9鋍俰訯@R>$=Xs鞰M L'拌=)豒]0[炘翌~Q笧GU构@食!oc,-iFK扤x跗;}*;⒒憻)+拵薩c+哤m=狼jzq臖F韥0) 8i缺糮-狂蝖藤竜苢V鲰<2铅:#VY7悆懛$觜T瞞簢c芓份藿襽'F軍##8=┰嫄搸敬QEQEQEQEQEQEQEQEQEQEQEQEQEQHK1I=┇"巢岊^腷EPEPY鷽0/ZL捸聛磙+T旪%2yar7g=C狫)"$d邅蚐!B|菫8f甹 甤2}祢O镻\H佋︶磓哥懽鬆%O-xf楴M!l扞娠Jh(襮隦D綿柒h燯 +VVだ軃:值c_g韗g垸PW閉d 錋L胮]g==玼禌pb q憖h虺G,R?刢q1灷馳珁nX笡鐁y煣昅gㄇq滁褰? +恫+67!'硲隡p洺怷懥缈сUK滥H违癑8奅萉镐8鄮捡襽(((((樛)/$w>嵠 f蹵#s蹥奍\(疗踊'犿R菻e#q#拌yN関茟桝磀滖鑯魭7Q)v慬j曄B:銽sJ顠>|p薷墙6r慬㏕迩-艬g焎U懿L幯)#燄 b郺翯&[~顁A缬齤癋J蕊磤硢<};謐H匑F3疽1盈~糸gkkS!9鵄 Nq_3圢莶8'夑z`f筹u6I-儍崿:寃2怛Y卫;GO笊鋻Mh鞬3礁18殩赎yw }噪稞++4桓謤:?鞬6-+宼噜{iom\d\E弙*挄unf'狎坵寎亚襽:歿囒n鑸>o0鋞黨磠暪xgq( 澿冮X螆汮n0 = +功菝漠 oH4,C9鵉j6潑C J琋pB戼猹栓Z窸哽壬蟦~"l<7 (fg +氜q8|+!F赨睈jj凰m婀蓱 AVA#=h((((((((F;T幝奪(((畂\ 迱P峵曀闓淘%62}TF#杏鎚伤sQ#庛夿>個妌=($1L撔穌鷖蚞幼}趒惞'埸淯N诈&"戵糟O]h$詺纕莒溺'9閇7襍岏徬娐Zvhh斻s:揕﹤)^X畓魻焦]紝7Bx歒 栠﨔a<恏) H*Ob2? +k 滙@+寝淟+nc紴s蝭挢石鍘)7#8?(iUYU萔9 t蚗廞笁B潜P_z P}=)孫酅ow2> +g'/oJ涧D襈$(絀醐b@搥:揢带蘶9T:礇aD(扰鋐$湠Л6殟慘@ F3K廽4伾={b +伔8鯅1葼"蓘s曧腚戉膞薁芙Nzdt際漈鼑<忬庺獙\,rO=边迴伽轛M霳TO譬+A唃F-凅湊x蟔掖b 蕄0O萸H玟#鐚笈7~%X裾I'=);6𥙑I硿擉z佄3襽=)i荍狼?墵L|偕鶳袳QEQE(懭倃6rx長所鸉azm=~-1q怚4摔Y`h?g>&CnPH=*饺鐁/鬾茺骉mekR竍=酏Ne0齐萣弉y傽n欬蛳 =嫌5I鶐2劬瘙烰;彻,莻[欶m聂隌o6鑙騨y鐍樏m肢f暃,臚=(,5,:|铀瀹磔俼丯婂銄臇9 貂&V抷'櫾!$憧蕗(稄x:G昏芦\Z\[`虒广=Eu-t?杧荲'?8琈vT栤3佔gc懺W$R瓽ZNs镵近絽幪4磩恞V饨*姦拶蓮擋5-氎9戠`|偨zsg囩祌*Zg\:, 鞞 r衿祸$鉽>煆b?糡c潓udt55吝p 你;蓖Uwl:嗕6絵ETR⺧祭;尡?齒ν4孫蘰Il=!Cr u隩耥迉悹3L4·ⅵ傏I豰)"8i+Q4#L S茲2錇@#恞冢癧?黿又州W歉s0 tmmm1>QM6v迕y)戫清襽0R賎琪I戏6[(%\l +}Tb2璶<!s9卤蹩ir$o氱 kyJ6p}E4Hr蝵絟w[梟炿磵$u稞+=j张迥肖R晒A揉v裍,60Hc謤1冏一($H8U氬怡鐘罟_z觇(闡2灎寠G$劢A贑 4(((((((,郕输瘌酎j;媺D?hB暌 q寁c譚畡l㑳3F 炵*d-碠nJ7蘩?Z侴軂鑀; +M礼Jdi>V亲 选悳g仦*恵嗾ub~灋冫羵爯璵Q@ !吥焥 oJ霓`蔯毩()@鎬 8 徫渧鞷犵<炘衙W8靔FW囑UU03@fy\&鋨' 鐝,$[兤>礦褬N]R6%H眄V侽"6鉾熺,+$1絀薱摓^r珜"睂Oу蚎%膆,r&=:v;舘#n聋q詞繒N轙1YYB卐~2@?5*N沀 ?鸢\g詫蹴垃3<綟虂98秕疠4nrp苶he#I+6H羹t趸3 +爂;:野銜a1y,8闇T八.F鄟笓汕_私[烆<釦W澢,YO氾藣吋騴c8獥l为赉5q荁}(n梧7榲楃 彲[舂紤%+r2 ^腣u搅&8U輻i'□疺褆晳朷腊#=吁趑4.Ai,轏.9螊[:4 +籤G?镔裔锘*}尡! 蛤諛暽$鎬4!2N徐渔鋺留愣qYS^够暥)`T6懹46_\M88B)(陀萪C萢儨@ 劖鎜Uc議#沭&d#g管z猬履昵数嶷.F:u琥夿啭Q[抶翥聆 +,>\绡Zc鄑畯庚鄎抸9獪 櫏j炌K萜蕼籝:R#涛遾3G疙@箨~\"E潷'恳ǖ跛)S)留餼攩 +\A徠穖%Kky%)x1澷=鵓&H>曆j7Z硘嬫怉G"稙 H鋩U1撾鞞'8颮猅渀煒~由ai"岘6*叴2姄1葼c 蘱l+o7?聵4V嵥Cy$y銇?@>%;艶:86壊稫5 义 6糝HFT4C冭 籙H冁n晅尔蘗憙9'v:*枬c/)尴蛋F +憻讱 {7ucO緙f庸FH1腱=杲?綊w,烫v嘠1;S鎵<芓B P縳蹁陇%0埅;(傈J)ㄩ 24((((((秃劋.JU9EC3呖裤Y_jB% ┐愢儨粝>祘RvXq)d┦獪㘎r3荃琄a嫣1惝}Z崨sn纀旻~暕ukb d蘙蹼殚忛YH9iE^尧/pd1幼5<ZB 莏幰誱@蓈沏毌ㄜ`湝d熼@膛爻u'&璱1,坐q昒$徲Dg檆 稡zT欹侗]j]跙.TE禋l鞞xj[m0f;>PJ;唝:w舄p弁5爼$pP昒深?圂蚙堦[腜捓2髳Oc撚誁o,,:,噺痾<脚i'i +1鋞?3h 炵舡-鈸}迥悈师;z~璘党嗎gp瞑儐?鞞6|孎H\0膓俯8+@Y#!薝鶚>漻雩[舝诛G鍲违般?h/a嚆U佤鵧2〣1潧緇}*訴r! A蛭2?1K(╃怽>g'櫥薋`X鄬?Z>^jn跖k擏~D蔲 惛诟=厢L6W穽5P牊愾閵蒏┿,D囨霝滺殞霚昹xtMB屿"o+恦}:殏X寉V*c7湽ρ噎C} ゅ禼︻2+#=2囫%趢&u瓙}(y$Ir0a渄S霒''酾と3f?'s(RDF容b+‖{\臂卬G凯V(イ&弳?艑SCn岝嚆疨隣W@0褔鵋$`比轋锛尸)@B(谇8 銣踵3U襒)G渦9=樗u N怖v羟J畜漧梤# +*@zR]/:1e;RG↑环t羳涠:伷娅j7_ju罹湫\渃9qV瑯4v,x镄{ q臜1鴮繍剃4D +嚩焜V臃J芓辘縙櫯TK桶4h鵽柷?址m[がWqLd稙萇顩rOФ|aq兇nTRj恃4b.6G鉆 !銠d?.B辌2 r ケ粋3!% 匢. +l渶/s:琎YK0a芀?ZI瑱\)郹w}彦@VB>g''>情CKnJs<?zl+ 吆G9^~N煰酭$$嵦舩#=莂燆*瑩顆f\摈542E-腵 磊[侂40 碳>b擗+;@9<㑳VY7A蹼Q瑡Ns@n&VhwF籔鋩1户隀芅8釩G錗悁G4碢#n鵶嵷跚閆dds稀臦叶鵵c镧煣o隬&慳墹|韄J +)軤u狊衐灁濊-墙)VG*阔爩WJ7A 輵騚E2O公qH邻V +_~Kn!巣=?苺5槵鹋 &%Z06鍔駧i鷝3$y防\ &∮淢朜F 呶3蹔覇劚 #栮]=hj( +( +(霼卽c寑纃瓼G謺:20拾栽倮侷$%Q@ h驯p憧8估'P2O讑延-\Z藃x糶#?蕗$娹 0軈=y鐘星槰鈟槑褢蟂N y2 竱燻c8鳝 jFz伐"#㈨3$鮜30?滵#憡肮p恰荚Eo)<2滬貊Xゴ ` 61蟌{Ry`晈I=q5Fk竏*\D束]YQR仁咳9b>'鑯啞iB(b舦偆喽}急$穃擏e 康Ia昮F镦; u睐妭f崘"樰堔T泚鑮*Kg稨鉮耼吶 u巕翩/0c7 + <1U鲋_$尟昍G=猧 [湌2醱 黠@ey$*崟1緯鵦!;63U伨5x!H#9?鐘蝬贙脖0B豒搻拶?ZO:朗腈 痲谉筅ズ(+E晌褧錘FA?5g! S4N,p圥壍硛C bh`A争R0\求lfr@鑮;~暉4$#湷搶P1V-f6颢帩z姰y)軥昘:哠怓EGs笅f恧僓t蓹斊Q蜱環P 贝Rq?ZeoKL沑d*乒嚾槮r:冺@SI鏂庺s镕H鞥d鶵g歓N\鐚9=臝謽G哀$駬J皌憱 pp苸湚$>Y 帼t+3夺$8>俱庻▽X8P$ps屾6 巡:-藣莫翡d姗M瀎Y%iA窞菤速F皀w90稞/eQ\(Q磄# 巎炦jM=膃刟蓪;d鄛逜T&UYT偣鄰JM糛秬x8m H孮) oE"呼5乑:l滏8恏F5GVYA蚷^[(e 碣兾3@詣獾びl%y缃5羧旣驚儦+M慈]钳|詢O胵镏2)C[②r"\)'躑\ +嬲$豞cl滺袶\(= 璞亖Es縢碞簹櫖頠s ( i禹)済ny>f@*绫<值刲nX挶H稑d湊pp古t4P:T#u9舤乀1 OS幋*?7特綆h濹0f'秹2厍报灞窌諍c梹h&潫j趠:輪J{凗4賢铏t67"1閗RM.2囁v 踳JCエ忓愶'iV懸塡v:m?Z塼少rv/<AA⿸梳谅 GZlq睍Saf +&6砜阙/颡据裺FkR驳烩#s蟦咧3O4(b(b秶d侷_柷瘥~骏6诰knU搁]漴&0HN1唪2毶僇P礃N焫 +觼Z袹.%偀Q旟址+惐邃c蜪纤碹臬鷆3XD\(88獁恛tB#2m懒鶑L~\譁0Gl峷拪((((((((((((([Vm趯弈蠻*硘O讧88i冸?偏P值4$H吀 :薧,rP]jm98ZCaJ+炲唖@緑#6:鄃$V覬7"z+mc]0=( du锧qi8%蠗1屨獽3吽漪w;\DiX 騫U跶匼;1骻'镸夾,j胄-Fia2弨A|1撟5錒蕠`  +職釿绒溷犻Q捛扞>範帹躩) +,d89,.Z#棊;5D||帘焜壍7熔佭'5'邜T钽姪EN殟翲I`剨櫟7體*?竬齥;<:S镶hFmL"诐1荢譴'|酹_c朌執?tf2蹒滙:擻mG<鬁)浦輶;璦e茡,;柃\橲5&遨#n3滖婃C分4銧瀶鏥駺H`匝jRG@F:G"7)m鋿鵾 V\: 嘝\?o〧雺綱傽瑾?趒na祳巹wI ">强鉆9燎'秊樤a2;{蹙仱 +秝丂h╖eE;89侵抂竎M勖{)魜T1`'┣Z.1捨z)>磁粤`-牉N煦魻 +オ&雙厣V腓?* A=<葷3嵗屝;M摠峀"&郈懟~荟蝢E騳w鈥.闂m6(\烠跬Y:郏 鲐囅旳kc-瑂/*b6呻鴗ǒ37`畐(螦冔閵瞣⒒騚1>讗n27cпr-.&9蟸穓赻J-Q@Q@5彻q済渃酯 )h(((((((((8d骯I:nPq镽Vf!}8)侨錑簋掸@导跺銿f侰挙)'甼#閉t闾!` N琝拽;ㄙ5旞1* +薔I鈼 .nZ&c隊~T娜坈X怉wx=> wZ5劏'鐯晴U鍓;dR肘J抔c嗃淯K@$t8锧8售cR品Z$g 剨vI郎顯龆/=珲獐ED沜]iE. + 苉;Q濵 +爑谫\富娸偠X炈>#1l顊㑳檸)笭 6誛蘛北NI&嚄+遯联)m+mr@OJ弌鸵4ふFG莭枣鉨s黒VaQ蠵q;媣螶虉踳纬"S,4鍙J6G俗鬆 ?8洱禽帨c4桴LyrC伻莀17Z譓F&B\a郛j/.d01騷}7pM9d +x$鸼'鹠砌a!=; +仒硸c抷&櫦S楁 2}N( %j閷Z +p:Q┠咛鐁SU赐遠 1nH醐9cYcd~唨9锫枑3@4諸郭溉历譂裃m&顩Mei膦7}值錯X樕嵏4丠菉Zk濫Of筰 蛭榞寣獾SNx$I@藚Q屻 ;T B2kR.p|) 捹c另橛@頰 nJ3|瓙セ糳髑zケ= 雽娰糟笉"濂PY涗 璚杋集6[X89)蹚G庱<盼~\Q$拺 9`笞=闝珪有鑫Iwλx%`g r廮蝷+疲#z1颛鉠3谪,W'?T謝X禭9 {}0*G籝|H!莅恠拙(おB6醷r酓q聬桔逓1箌﹥徢=赍暋4懭繾渵Bx凞赅篁缬躎{Gj袔翴j紀詬q轷⿴$p萪RB黓惹鏎戂0&4w荝牅Td`璲(h鍨I腖湲7c$rG璮栞y"K齢蒦繕゛騪ZFW;縕u躺#oUU'.8彪縜戻鏁O鸏A4蝵熤恉`佉&F&お釬RI;午恏kN筄(B+欙揥霕Y 侫雫武\呕脝Z#傱辧c/桙潲E觳鉺庈g娷簣Mn閷渆~祲d5詬%瀙s@讘沇贩慞史?珲nnл=n暢}n&備~鞉C}}NZ鰙仭\伌8 +欽暭 +C +艌羚?漥6恣n7c岕虴mi ╝ +m葑抯Sq⑶旸蛻&溚磥侷簦nm陏鐬j91樜劯 専C幵!l2'臃:歴0rs#筕|轿(鬛Hs變嶦A=以3痤}尟筽pN;~5QEQEQEQEQEQEQEQEEF輳鯜R裊#萫Q巖2s扆3@* 糕/*c飨_閁疇綉賏${Tz飨JmB[)𵤏灳J谵F$t鄮q﨓+2錟貙1橼炑忒X=I錈蕸1妓嚪*d<悋摐鯛$B屆:諘YY-e蝥F~NS嫖A螼jQ姛PqR舥4roX憘5_p鳎p 無2!G*=涑 / +1簭ZPW謤$巌Ra*籵54笰|n28á俟~q带p_绷ω$y洔<孮╜6*U離#O" a 錇=>>,iM亏j瓡;鼼蝓鰻:炄遬m菍郿{*洘臀O衯厢徫.#唄@弬Tn +A;zO5 ] 3g犁冓檟>獐輒= >PpGNG釟<抺s=(晌s揔迶pG酅O艨邻旣奝8苃:衵奯C讑L鄪FiZ檡簇垆9 ;g岊)浺啡FA sf s恨"NIQ擑P%詋刷}衳 鐘僵%*,2G絉倾@t諹糝蒡5+*腻翊kN*/Sp 阖痔'.2玳幑 娱愋 7#烏玜吋賞凣\ 鐏廕D鞀(`{8il脃a6q徼@球7DgB睎?0P艓9=3蜘4媜. 崁@A阒?8蕻瘵lm*槣侀赛/!6摊"赬頜咅3鄹赧 $g@B.NN X7o淠錡B!qE父i斈y'?蚀E糎KЬB侞=3迉( M羗鎱绶凇蹈9 q: 帨侪垨徐W砮.q蠢A绛> {) 8=坴>硅A*嵌綡/贾W20K`摈?漦轺6胿绍蕗pN隰PEm8阉徍`諐F歜T眆f>礁-2Ljx 佇{儙恭氦盜-蝢糟儫藲s対崋W 鷅渶P`铤{P{C$R頞4杽(Gl酴n`穾"驎De?}A銕烴濋n 汉!『{r+. 觚j呎歍藂1杠Wi潇9麒1徫2殅珺+偢+1忚症;v蛙c娧胺侹 塭M!Izt0i`H-珣莘q燄 eFY<駥)頱}}+f->贔谏2广n6绡帧揔v潔紐l旄现2 均*E)2撉嘤颽,{]H6=O#鹋5d7艶s(h昩W囝J宝隋\&C櫔7钛wd鵪殥"h鄙:齢,K鐊}E哠另忛[u懍!F?/]3項[I拻26撟v}?史掘/憜=霒輥冸氳{WeV 份⺶j&962蓀?嶙?"K4w9岡犮nr濑n7/)rx;禁t啎c貨C 齴j-蓳鲝Mьs:鸘(パ]P矄n濵p燠橆狕Uk椤匭漀銹px霃螔揄~苇#)l噌刮3巕襞\0搒p港酑H'dS@ 纔蝢卓 憙qs竼%r:f-"檂 (駼;=Z殌 +( +( +(4ú$l;洙跚Z}Q@Q@&鸦w|c-QE!8<鰻m跱 c岕2戙"$s莖覟莏搨狸hB +)_粠8( +弞 r茕%'Z)h# 嶧}(崁6脂屗fL帣苢oI$垶 瓳'忨i輇婂詥析Aw$瞖蠫鬡,拥 PVW,銥s姇ll6!寧rz阒-鍜hK姦 ;Nr=9┌漃蓪?U瘹[`1曺S'笸I龝e<矜缮&鞙m野祶B錸$稴鍫銕я鮧E禍觗M訙漡雩Kq<褋,庒z9J`c~4%H.\n 尼H稂隸姆1I∟蛰鞒阸夜樺x(q絬%膋)灏N0GN磶'd. 入佧騢q呹潎#済穤r愱戓梠N丝痡01插IP狜=鹓徶)_BZ諭2猇M佥胂缛琟桰鋲了d鳕Q识嶂歩B.萸'>敳#C&苚榰俩諳Dl藤$m$z囹E<) OP14憪Y称8 7@Jx]膅$鷖淧x``〓u跬奜n敡歫喽 =诰Y巕灤跈く:w▓隌zV緱彶u$9晳ZN7讼8j隇R6櫆\VX夥o昛襇脿壤颴}謿陾僿VZ賟`宍鳜 y 3?J逽笰鎬9$AE2_鮢璤Db筶滎鶉鉛\ +咖O4v3]c(昴暽 聩~[頁济/蝀1灆荍撘崌襽-Iy,奤Kn#揜F(.拉料Q莮s眸囈梜c鈥66锰筡rB熺[蠃羚絩贛谪# 9 瓆w 8歒榔9缭*#灶L儏# rH莦sst歊鄑鵗+#e旣殖债yn緓?*掃慨竇1$ :鬅閄gP2,哻紸g痡'考竻@鑮T锧t鋣4珌|鵄9Zi▂Ji1`9崘憧n祽л(X宯.2粂+醐;ma;$C'&,h履ym灝=-盗9賲 T09 Uw󢪕wF>駬(庯M/D0c滕N:燻u齥4湪qV9V鉘扻騊繮n!E愺9愢戇TO"2% ??要d鷡U。洛O趣冿御f7kRro诙霟簶O'?垞宼繒W?xU.ncBWuS扊?耀稱ZZ唔檙vt=獻;{崚鐀贖 潿Q<揢鎎V6x騹 .8;~T毴P岚燒zvR\笚vF1锿l34%鼤I`L頤}簈孭G,瀉F茈騽焈譅疾ka箚q5珫DTo0渀*鋝盈=䲡箳锣3n @鼁b0曛準稢wp@>啰憡奍B0 A5Bm4;嗧T斓A)(f^9#诏C猍!RLc杖I靍~馡鞘9J弯x殔Y~^{銥)Y9抒;Nq⺮RP N 社枢睨Me贮瓞耢b纆<X-騂B愀赏f裌矝q 仨鏍:e裿袚翣 +嘏-<賋墝k|牅鐑鴼Aou纟f鳇鶳h﹨澷$pG鸆锇茕~^湲S8缭fY2 +I圈秊o'h团h+ \6@垸Uh鼭巇-(!侾 18*i'\頕霊襽!凅钋B +羻 e欏硨q貁殣 搮热轫X> 栧vG筁D熀I>剪橔P>Ψ7╩菳糴u9齵6W#4n3懜`N德扵樸#nGC冏8鄰繴溱J/憸/鑯昛钭2狩#s螄t挬 窿繀^扝缡$`"捠闲|#J絡ZL$摨湦荞焲w鳗嵓rn躖旻3湈_4瀴逅4扝鲫X磏c=O_S1=攰螣L憲&鋯壤T嘜鏨l.">iW%JFNo縴yl辝荺2+澑i<孳驕 鯛T踿H#鬃殽:逑冯Z怓$eYd扏=zg舄wQ鵺2!m踇h=rJ═m9荿{bヅJ7xX4NU嘊*站﹕叆>j稰x*R揾魻H婈r2)瘴舥<)9^膏陨┸$[~V }9 +鸑鉬邠8琰*7抗t趀#軫 o裓鞐w鉻颓Lq杖`耮悃9蜒X {p掶咮膶?*攋`bn1礒bK㎞睽18珉Qs#嗊硂e蹊~婄邛榘L土 +w鰠唿荊鳳"9昘帣!2麑i划p3X楠\刢闓鳷┇8|J驱搹駹 ! k!p髋'籴<-wz猕Μ鴽w垡叶鶁f绡索~?贍蝲綞'賎笼襰鞞箒%B切源烔X;奍嶯惇铵N?鉡4P 谖 ~?薁5以r藟0=$4hx 繵DBɡU丛fS蚯q之!@c竵汕Z+)0瀑61膻qUhj/<(勸軗*ば矢寽 ╇@毢殑裐儍唿JH/ㄩ掍4懖%q衏鶳稲╳T蹎D@23酹鄡!f秕(;OC)(䴖0K穈@楞5I嶿滛 #F漠槿汙倣伹嚗J栱42NYU#霝ч螫跩瑇L塍D邾瑏爿6~C郫:渄 +箉2慑41幑;~欗Lg-0)ゲ忆D"澀祤b千1焜嶀磯dts" 癸N礖6Z 1郗H|睙晉鑡謤c声GOO箫QQ@頄("暼?也顧Z褓"搻絧=*野r85J噔|鸓啍/砣`]漰願< 鶸)甍0d迅苢膣PkEq#V綳"厡鋍躑恶压G▽u?{讱.x歡芔N2q烒* Sq5i,z$瀤銓b睕Rk蒨Eid&L 礔GA炪>单$,(纅惢丑q訉鸓窇貤@帒抸釂N烚諎⑶淠)Mq巜{雠J x六喺梧08y鷆症訴I鎉 笄Lc9 >ojU!1P拶玅豈4fH*8枪 +圼M鐈B6濧>扪EQEQEQEQESX鞷H'版滶V娸a;槼躲礈? 酴U;H鶈 源P桇!妙s1伹_璒䱷1 跎q蹒璛"叆e>r`p0z源Q@E<+26N T碢u磯B砣`I1溹墿X燠prq⺻бPp窗癕槐0?2怹;寤捸旗~~Un=7 +D 脙臔t 3球yg惪腅_( ╜c衵欣d6軕丽(g'<欶P8蝬8 +梂揫菮遁8}鄁狹{7肢堂鎛Gn⒋'!`H诨匃栆?鶨=跭8揁Q2鈞X瀿>=徯屩}鬺識@KJ =+v%)瀚: +醆帲綝w&H倓$) 竜^89 +#冓/!;<淰捎杒9V1钍t<笙~H?峐Z`4琁$侶銉堑a綋ゴs碃嶧蹨扜^J鶃燎衍贔m4媌\栭瀩興蹷欇!A朵;騁敷 +V攁|面$B?嫯;r*鸜Z)U);!瞦话z姺厛騋熛CP橭A`t"@b$髝0O巬隖谧O慘2g 鲧bQZ梚m鋷曒綇=獞铥4X翮蝷 $/ 遠樝! u 硊薣l*?糽u鑣(娫簥`栣2\淯3,Cオ{鍥黨lKli優б$r寉&b顁y稔}(*娰m6姿咮3鱯辋R贲(胠萫=嶢鼄?腜Ub沽#<崔舸嵋nF*}﹥]4ィ悥aW +劈桓8'i墙n((濨 +/f5:\买yi f霈[を頴\c8拥E@&F@壬鞬\邩飉尴4鏆V崎\噤e:{蠤`A冊罀顈 +qP鱏i7@ 搄碹伔8臿5迕Fci R0x螡鳆+f9 攰4廱1謶 34蝬隮)ㄜ${r膔(廟k鬁盃 4硜垑N銥Fq籀q#>嚏辫? +"铙>NF1Dz瑎窓秡`g2咄輪埤恬M}.&%S鵗i鐋XN跲#黬E"2`蕗#揓姿 遷&6柫噿喋j饼-符燒]T>ww|簂葼g佋皎浒笉A俑c'i+g0朥,pl淤晀箑衫申h'H鞔L鵖 R辌p哭趒] x 1H@=@5禹]籿嵏1*/槽燠洇1帨⺶蛣Q済焭C摓ku芆諐14X1f'∥1@W=xヲ咷'彞m.捇踻嵎鳣滕誷ハ絸)磘bzpL6嗲5e'u!侚鷸$扤i忱鲵l恅**稉8 銉貂眙獻:2耆It;惘5n,尮 帔幋于#2獓{(rAq*x#F!/.橝 彲鄈#D溕8W曀<区*鹐崠F +媿~(z( +( +( +( +( +( +( +( +( +( +( +( +( +( +珃洯&H_骗S蔔罡⺶ 娔A"271?膝C5繖2,別,wn笃_丘醳誗`戞咵U輵斘膪焞衲恢A菩@荢升MQ +B#T 搧Ne1鵛c徶3攒8%潒n\駷繚S+v0X虑獟I#^躧E [绿嶯􄂑=┏ M竏镘A{'? +. 臓(@^兎n逕L諗R#D?3n,創搞8稆妏覡杆蔱聻脌:q镻緵7"5朶轆`3儙繅沲 7l捾儚Q9鲺蝳驫蒻冃怲7M?匼KX/X3[)衾跗*o;^)馉 -l劀d鐚嚒x跔鐇e%綾灖佅j烬卪=&鳶[A嚌矵=2 + 8笮鏖匔$j<Ж向蚟敢呕碾! 鞘4鸐0]!瀡6g%p{P憆 #贩!}R)la榙,鹷玾6让,(#侴<觧驏Nn躼消 鳳%Y鵬 3pH=}:O搅G?坪(鈳<樸D-議5%s#L姐遚黬h祜 +4n鄺霘( .Eq ;Ue婋Ea3彥訯@l栿D7I=貶╳H醍玏>b(豿蹉譢lA鰻 儱儱-*盫 僝皍 紓2+湱7i 軹YA?施V35惧蔳渵F(筸壉pPwc廧値c岞暔3Fh8隶loz`.h(ア)H%更1@ E)*k[ss72OF; Vv*:x#菸耢iXij#&b愠蚭P煼躽[7辣虸qL毕蜘Q@)0@ :澵祥RE线#o`q*拃6庠鄑虅妻&+|幥锅べ朿H耆态0蕄G妅xй娈斫9"悲 1Eo+=@鐾[苍K碢燃7栯Zt薝漐牃婒窓丮狪傧l院鼌&4π鍆%[宱bI鐵O疇径氀%柠餧渌3}3鵚IYz2蹛9 @擰EQEQEQEQEQEQEQEQEQEQE88嘁袬嵚@詡:c>絠苫hn樆3 ;羔Vk 莐 亝<ZJ{$c/ㄩ挙S(鞞\襋EL炭e宍oz訋#擯搐銻Q@E萻懧鐬鼜瘭袳@抸[秜kl<菷 䲡払L儨q乄+R稾%V@縪CS漍d庂oQ節甧.CE^佶Gh:09戀澪Y嶪4%谲,帬wey;?4袬 [簂緈:鐅O=k U潅獤c 宙傑n's_Z夀鋉簞铧qP鴗9詒桏U漐t[sW|z 觚* 囚燉1@=S吮愵 +1幐$+鵔<樜蠳3职5+婧匬帽 ;hⅱ((((((((((((((((]( 厣酾T2[E#閽s濷q凓S81≧@锧Q$,qIMeV棋##·H:rNO^Nh"荠惉@0脰毋屸 (阈t 髵=-PEPEPP]蹕玽劚P劁}jz((# q;R袬 R'r)詼'YL6佑簑躏@瑙8uu=惺餒齤鬦o.喏z謚%mE$亂A幆臵FX(u苊 gón 怗B(56F杳Nm2'翆樝*暤舯I梖PN*5HK伒=I( t1窳黫$覝.c1螧1V跶脰汕 +x}o呋=I揣挷|}ZQぞ虣T78朕郜{>r*强z繒RM)騾c詍?Z|ZP埯秭:围]F亘%薀B=J輸朾=向R搃$bs8?Z奭Fw搑,郦忿i囁匢g囫衱鐮⑽韓S皭u_*棋叻p輰<鈥0$礊2、o泚$柍屏Z&砷晅9#'淨@賷@ ni嗓1H!嵜媰揮.s嶨9"m隇S唍宖熙S荤侕d$K篎 +3寶蔧&]胻詃炸羧R]臈P>雤炚4棖癞L獃鞘rj 8Qt|弃`P膴81ⅸ=p1M笣-_&q:毶冈v<≤兿鏤e欼29c=髯?i敻] ?D惽〤嵞6T侊U顨烰$j6鋑飵4譣-& d靜錦跫磺偉躈篵恴姠l7H0F .A软( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +NwF1碢 c澔Og譄H)h@$庣&(((((浗p莗迈9镮/{掛8霂; + +掙翀PWh樣* 扚rO耀H毂順硵羦RF箫O0-4綾'h?4釬嗄拋懤 蕗9;邀瓲倄{u碕2腋5+o2卄嵓08跽媐Θ胣Y~噏@4秧m鹈箁A╳燁譏Z1.4e 碻戃 U羍j 祶O\mq鞞~箝Fj隷M磀 A鑡L婭碝牛轝鐡迂P/<<哆俜q鵦"蛉I孔x清忞]%謶*%OP瓜字湚= Ssc揁箄貭F埯澻謸祎衕侗珘' 扚&媕!e,瑍Q +~9鎬9嶞)w婇揇l煍}介?绊|悋~饉<熋sL惆8餁P菻蒨;裼蹑篻,8W\裘t?办⺪渃骈@蓇邵;dQ糲氶A,HiT羾徦N垠邵>7囥躹卫vs蠏F碿g?6~l鹻绁I銱8皂 *煙鼑专畉5傓IZ奛 +c>輍不, F@2c81鳳鹕# R递埙盖榕J4 (%%vt香U嘁歬閙欵X蒨>蹍濸緀&Q忛P瓧扻塄2擖#鴳.釋箜淪囶$摉8R4浡n埑 忁虳闞FF釘怗~助,朑q傎篢慭,&X态Fn镞8锧37Z>憇>Gb7|z髪G扬 焉鷉+S 爾轫V臾-贗,脺椩翮奨魨F'WH>e9z:讹!蜧@*暋x訩虩t怓h抶 0芯 l.衦3撠鸘(u ╜1轓FO疌毐m↘! -暿@莩h袳QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEZS 絼/*蹎靏湭靍 廖@餅礜L^適+>_鞒轾~偗P材1榙嗸雽5屭$? P$~F(#氖蓑燰E鋤*虋鬯逘燉鸋+誵留嵇蛀狪揚\屏T零鐶鉆晈/襄鞆x v珉I,[?虡m}9:d*踩琘熷;Hg`=┗锌隩 尸s紈4覐,粂1宥2<箅舀D瑋C墍c寑$q1苉[by陹pNs狱g拈>"+窚|_~hJ$q朶蹓W圬踵鋐J)a祱鋑84((((((((獨毣i蟋jY婔7H$JT渨霟nS磒臉nr縻鼄依揜紱渀祥W& l3??jXT狖蛝MMQ蕇垹砿<3鵀(xQ輂哬zr}A㤘Q4I4f9*軥$g驙 +歴z3胉汕zrF碴RLW>Zgy象>荩 $o瘵崣嗱[╣,郙U6樴┸0I8⺗薰㏑鄫祦惯饅c埴?迻5p銜C4殜`攭~|珜辋E^c$仂)iē)fr?壉擓S((((((((((((((((((((((((((騁|覓g'V榍醽鳸(挖|頉瞦瘩幷%誦8裸颉T.{抮M:n芽p嚆焭k熭筨P囿姃毷J苺htrA門+靰鑯魁cW|第W?J湔鏦s朄;熜儫馅4(((((((() S旉B 4 d朤 胗湛1)SdwJ萪 渦[uWR) 鳌Q挭狾\a $R胕閺繲攦幸袬 e軈rFF2.盌!墒紮l躏* 蔉H稀Κ*鋪$擄@ +槙デ#4匾7e響#pitu侅A苸啢E"M3昻аEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQH@a廋@ E1 矁G>齣 1攄( +鄙% [D舜喦檗YJx轫@袳T0\G9p囨C祦僑Ve j撋erwd纼PQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@W禂8憄谎庬焧=檄X⊿瞽嵡i (j)|茞wG蹖c +悓CH埍═鵓á((((((((((((((((((((((((((()~ 仄}┰PH@Q:KEQE%C>T񼙗蔆;50(((((((((((う蕝鉫V(O禦[.nc=(Zj钋蛯鸖eB$缿屼w摉$Xm8鐬妩J( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +(鏸蹖鐾=ih(( +endstream +endobj +103 0 obj +<< +/Length 72 +/Filter/FlateDecode +/Name/Im8 +/Type/XObject +/Subtype/Form +/BBox[0 0 2384 3370] +/FormType 1 +/Matrix[1 0 0 1 -36 -212] +/Resources<< +/ProcSet[/PDF/ImageC] +/XObject 104 0 R +>> +>> +stream +x+T032472T0AdNr.W憫供灐)X佬滦\显T列訪宪蠵烈菻下?萛%+盽 +endstream +endobj +104 0 obj +<< +/R7 105 0 R +>> +endobj +105 0 obj +<< +/Subtype/Image +/ColorSpace/DeviceRGB +/Width 716 +/Height 572 +/BitsPerComponent 8 +/Filter/DCTDecode +/Length 85649 +>> +stream +AdobedC +  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY<" + }!1AQa"q2亼#B绷R佯$3br +%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz儎厗噲墛挀敃枟槞殺¥ウЖ┆渤吹斗腹郝媚牌侨墒矣哉肿刭卺忏溴骁栝犟蝮趱鲼 + w!1AQaq"2B憽绷 #3Rbr +$4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz們剠唶垑姃摂晼棙櫄ⅲぅΗī炒刀犯购旅呐魄壬室釉罩棕仝忏溴骁栝牝篝貊鼬 ?魐8儡'岟Ι 傢傸琬 猎溏o9O%O,O爟袕Zn悫ZL '孲|↘0诨荺慠PU丈 +s 熱C濬褩晾$i衾H鋎扥ZFV +`=z鐘Y_藣茿L呓]Y@Q蝢 +攦憙wp蹒鼩`YD憤碹:v噷_髪` +虺>hHv悝=┭沩_$r/蘕?!<儫覠!dx僭汗 +T滍$珩囚儘炅诗y?L\绿 獖\<劂弒D膟M祫挶; @亓:tθU鐚^M罆w萓=q鵾S溱鲮#呥燘廋忬5撴#\6:d漪<㑳n@Z#驌灚料0&(7 韽聴蠈#K袆/懽r棔迯湳'镮(-'崃苨子,*@砻蔋銮┤蒁幦UU[ 0 廋@芠?鮎4柢:城 rCq垡恖壈鳪讼\O`慃=嶨襽6戇.p#唞74y軆$dN9䴓e恲o孤碓s徶o1荱羚啧⺶荼!s姕封z訛@甘岏焭b*鍮9'痣颫嘺<紕6(躃熃!zpqD欝#幷e艪芆_光I孻b奨$杘_a苮蹰V(谑';赶%橲N萺 +咐<銣鸕9甗ob0 熼要葋ga硂V}挢蹶袁尸"酃W8 煣瘿dh-;臋\q~s@韄6)cz!#煰z駊v(+7`t*;-^6t佧鄛= +t +~t%穡蝱e絳PQ鍮9臅秉O布a*鄮G q秀擬脐褋d鶚H%VG软荶`伶Ge蹘w{蝣%9┫9+RG峭鐑師<|栦J嘰佑忓*1w鋟,腘晡#~℃"芩2躻h=は!~_?襽&遡&ed鐡餁尣挷/毼A 陎腠L咹'caZ,}屿=猷圔崗bY娻c晪0扖 +Ptc廫楳ゅA8泸琦T3LP兘諍錅go_^{z曍<键翡q撣(3L榖洉穖P0s撻鞦L;U屗!,:鷰?1#r徊s$'繇殟(鶕1&@^傈?^(@戗,e乣xC瀫g唣<)$W 憣亲]u芘<荍|q鬎R>r咿菰:zTq晋傢茉赎癿莄锳囿寥翣輪訙q庛鼜蕱 2戟匿呴MT]恢%W?6庝w70=GZP8e 抭巟䲠仒葼2瀱$ J餈=)0#9爉2梧1H螑 =3搶騸4鎢\ g擓Q顀穼戦H + s鱬Gκ瓙蹎虃丽1鳳`2\匊銓绠=:Se蠓)弫 瀥<㥮_Z#+!x`F噍{"EI亀Wd氵螨(( ];)閹<烸庈S渖1 LeCy霂>溣C獴售婂霌19绤Qax鉢mT#侷徸鬆VH]赇e埼0;筮!6苧H;靳5錾.锛蘄c炪绿葲稐擉熑4鋱奇R跸,@餆S臡攙G8垩rq髛=x⺷Z)毫"ζS鋷勤渃颌遄z嗫$2=^q隌_80@绋韍戓o#蒫妻儳O枝撶鵜X 寑3赘蟸jV崱iK?y儅襀銥茆+癶艫"',粒聹湉J袌梂 瘶 _\c8蟝O3卒`8扇宒U嚷啍+-嶀OO\怇⿲aO澗赉O5]怂鑯P燛銦R全*籥虌寸宔A餆^鮙5p盝窇軓\!@ +<瀦1#+9>潽#0hQ0]軃9*y8鏌+ec箴CpY詫c=W詢Oiq0 挏1垧$MR樌,禝=q邷T晖籯l';UC笃$ 凗zU戭u~ 蟎c:䲠f奾 Nz莹((((((((Σ:2Cs上O璅pO偫$苑}袄v 毊J<髢翣斡鱹sL`7彁8$qN爽n2H d苡v幪抬9历t*韂蟼zr7~?楃O貄濹櫤`琥⺄07`樏|d?]粶扝蹫rx荍X';v8祁GQ涌z秾侻"靉幖1誙+$堘鰃-诸*衉2Vx 0牢~鼯魻a误挩4獑&c煒瀯绉評Mp狩缮9 +焃dV 芆)棋'=究F臲C爌瓭伥齷,4樳亶蕇瓻2$g2课畃9>絡T崀凸8懴Or[ぬa-鍫=s屶鐘v小cP! 惢綾'帩qI彊藙"P徍y釃OU<9寽F轄t螥?囪$[v=@倾8B琘p3呂}%}睒笆H`牣F3z焈JX酼K~娚6gn;鷘DP/斆ha*Xt銕=岺TE!|oX斛r*泚R@$婿镼M闬H.紗廊$觚M<膽愹7*=I碊P!za兵c訜錛紁F晌8')褨$+嗃硁/廆zt=鶳袢=阔v屻4 纎躓n輲r?SMYp fIcv{q拽n憦艻钽43$◣哷雩$嫲?"摀#hHD跎稂縅Xg鱷8Fx嵌(昉▉佢B鉵艷I'颽聳 +?''兾?.jH矛}酀蓑ch粝zL9 +惹裕裨黥4凞揌戾Py9榍nzT耵$懥b1殝$3]20蟧nq*拜硘瀎6盍苲鷅笂.v8:敯@'狌粀禙虦? +'i/(@瓡鵊9 隠 2侕颮矄9( 疵梧I8+惣uq dW$惸g讓J奦u!F釽𾋓礁黬H豅O守羯倾@瓶gu#; O\S憊P榛鴻F鈾+倰括ZtAWr 宑p:{S暶3湬零?謿>P9儞1?JX|y憬G  凄犲>軴酦屶fDX鋍3滯=!鍡r挧犮秇V02崕举!捂薫瀸1庍吁つrU簩戣i>梧:昁@;1r嫿v嵸 +#与昨鶷D「$Jp湊I鵴<襁!翝辗) ma熐鶶0罥芞1抯痾Y]1綌?8c儍燇鳵)P6喊Ub硆r98埔8=?fMl槓s@ 򍿅崵Fc臙$k迤砢d禞q仵霃违P涛 鵃趠{JA9WJu荗Jh[5綻寣寑zc$/'v + 琰翑仕粇j辋})^!*鴅};聒P\2)侘I1莀1鴅栖F菖A$齪?全2`I俑鋶咻隡 惡FH 83濫V朑廿鴳<鄿=#隌澚7蝪錝?1椎Y坣PJ倎繿郇銓v*ヾWE$c恜や9>紅顯 &GM懥侤W#<;Jt學蜽梾fS佦岕楞幋,4奵睏  c豤﨔,R簫鑋刲惴秀鶳 +gX鈵繿$巤覚.'oR 翮J憗:H=>檑M%2 $岤c#{%篤<溃;摐p辱zKq$k|湘 擑碁羸~h$>P9錒?嘠晴B.豅,JH,a3懫q⺄*\6< +6c<踱*葏A!繅I蕿q左⺌┻| +bx隠竃bE*錫8妆綦@ 慘 蠗戞#袂8=i蠬憏盚罍渆荤 鼄*1-!I呓響鷠Y劇嵥"頢禉>`y硝MP&q9术=縕牋#晱? 59~}㧏1羂u':z誴!'3憫払懴爵spys+副r:冺渨 +坢8T恦爂 8鋑肭^煃DN艵2.0狊嵌8羯を"矵襠旲I$u砩絟b鍠Iw粸[庈{酂aVW鱴_3敱醀稱2j倍g藮r銬#颢e&U ,脼}9䲠i)PO'$皓)0蠕侜S(((((((('&枡&6`慇E灌諙a闯1蓓U '额仉@f輹}軥琅O0`竟匲#鋖銚鬃冥+耼躴摾=(ec擣e耟偰秙闑W塿* 8绠? +~詭磸o8腍Ll|鄥社譆 om篅矞兇幙熜妢視T&佧硿H8盹B( # +F=>0'樿萢住廴雭熉5愬C萸#V鷡4乜v鐠LaTT1,LQd.x蜹悝3钳J擣dw漕噶襠⒈R諤_殂偦r嬪>@ f3)w輵寭嚽nO_菧Q盃Ue q瀤樵4硌巜潳湷1窿!衶qH6+捺r剗2y呻咭$, 2嶌瓡 泽酦++[7体豴8R?萧║研(LAw?1靟锪fg "7 +[瀪矲琫h滍e呭#歌3<2攘懺r嶧px=?蚤篅1 +胿UI髮蹰忛Q苵9>\軂3齢V蚱鎼铢病8 3臮嶅!楋$惷8镗&抷+埃 +鼏G蕬~恃堵2銉甚 凰@J-袀9鑪S栴槃`Jy>凑"崡绡絁ād@蕦菒根I?h扗.]剨!R冊c凗qO27萎伭8妗曑a}旄s栚A徦詾Y#鏱N$u *D 蚋Rr鈙千jkH瑢*x=麕敓籙 H3d897位p 騈z凓P垞b eCp}y倾邾,o鍰.釡)竃p臐╮n膝96曑o鋨壤$a)専潏zR@A悅s詅唗b奵fe~敩蕭 #=3忕@S#R粏$s灴齶2O9V瀮吞舩$怇W4劙庶楞:髱憧Nh鋩8+租灈虋媲鸤瘇q鴝覠滄莅T嵽劯 !诂a嵞憧<+D瓙某`@?/覕@锼e巚戣椎1嚃1贜y~"闼fc*A蟘詞FQ6;_閼趰鶏*Q姃粊埘C圦7箰懨趢9晽万B捾v齅HXy`爴 馪#*搼樊p}z懾 銇玺2">w2O镮qk鏯銖9偵)B$q橡裣酯w<屚*_q3頷)`6芠.A?煹1C[ Q(竑`;=S幷$瓐$啖ん槏neq(P頻撈9;P Fc0鶡" {髮SVgS" +炟=秤奷`H烩n$t88闉?菓熑cn嫶c蜰G`8隌 +婇2/挩F +g c寎氵&;薲S轀輳OzT,覄 $n=<褴冺M7D尗鍛聲|;;~d惂戏)BヴQ葥8z撾I笎贬Yc2> 弆RK蓛o樏莯G 0槖68艶菍雳4L m&完x肫1=9鶶銐激G`?y鄎灁錳P"肌9 駥?蓂W001剁R雁n;駸\t臷鞂 vVN6#+Nj 處懜@竍~3侟7i ?1婆9荞觼@ 栞-墔弙3蝠s*'昪D\晄'h#=,S鋂v猏'削0@殪:鈽"Xa嵦#Cd'媒G"&捏2扩 $惚颲\0 ]菮0J昗s2 蒷渹=贻瑳荐囿@($ +I9蠷鵫B偁呴懸@ QEQEQEQEQEQEQEQEQETS6胱渮T碢 <侘#鶷-艪'5胊v=\Q渜@ě>骏K竸 "鍂p爍鶷'玡擄(払P(笋B;:O 崩恰昅钛YW管3螯企d 熕璛X蘌頸刧s齢W丬8l儨r9╙傚yYX +Z溔恬)# 化<绡a(歍唎x薱93@ 瀁3羂s邘鼺?齍1抆E +0:b"+鵯崅A' +s渢ⅳh葙$揱C#u烯诠P 3SfW檨oO#xTf鉷d,|!x9鄐辇j腵3)A李*p1詗y墨FU&e*y$鋨熺4鱙領膮蚧2R认^阁KN$fp遳{ 彔戕瀳錼@< 8鋬蟡_鵧IY艭3﨏磦Kr薷潺@淙焫.J冂垓顯 -磍斫両H 徫顯=>焃懶;鉵c g驺駣6侾|瑗6麲J腣N窾閹贍劉C磦F8O遨譀4XR.8胐/S滺A 0f%x 觞i響L*︼棞胂襽菷 蒂癅 ⺮O剃认偳v9dc灉鶶$梧N3憣~x*h''4"#埱衽;x枢痪)眒0rFA26笾92` 躢! I驿dp愣N阒楾⑾&Z-/ ` 戻q膝XeV凄F{#槜Mps澵89 Y<T翮8鼆8鳐x撍~7!靟翡酴抐X鴳x$聻<袏f鷾P拃B`C}鎋O\sQdn@I 蟡槯;*蛠蔸wy. v髥:鬄X憞疼$婆`򻯜n*蓉@8膝,瓴2 +胛 $獟l026渀瀐貜s'x`gJh蘫.豽黹窇蠣 軋8轎-柶忒戕!窢;戇=4岷I,+6帚萧傈 L幝VI1陣酹╫魱騹*>颪x=z鷬搄 yU抒 李4HQc$a7钯吾競1爪:"5铺 t鷊赜's # +C摳岎3煍g趻T髍伾襣mz耔h旮!4錢瘷8睑T憤崆殻摯阕渄褶8Xp99en1苨9鏅pw勻c嘝&;1齌6H帯肩_憥廫q帨 倘K|焓11坠覛'd蹅!9溜湡\T~g湇0拢搥虈狌=hUV2::0施岒;煰o4$0匑[$儫焕痖A嶥8Sc鍣9?:S襀2"7嗱雯]佝|cs尦3n,扜更.Qr市 $%<熷憸鶵喱H渵e3訌謶#r]笪'#竿6CP0W飁A狡*C* ]ps鵽~U^5L巢3 +灖撢湏"F@Wi䌷#祁s{驚 $&觕゛吴'痖gYbp慮wHz(#匨)戁6嶘'勥鋷樸=*$I驕栘o訛见鹵Hn 綹baFw`苢鴙娲m鏶I賮纷礷偉vD鐜0N1{溏(蜞鄊,)c玉^镵H3亾撥倚EPEPEPEPEPEPEPEPEPMv毓苅媳2 R悊r'Dpsg姃\n$ 褛*X  饪(zJkc(w覱L喑矐侽藖佊廽#A  格哌5!(辒j2埞胵軓Oz+昿2 徫瑸h晹鲒\懺*凝馊N g -3g'蛊掭 辇)e懭 僴q7~>b9c 体FFN}A琦P昐籭's矕;龍媵*>茕n蕚A愎脒.c+:,I硄箨1眚鰻鈶,褋C4\駹堊%遂愴漕!1韮胫榐&窰乳0 綦螬踄貀e 蛦8躏衯*K}p1宷帧赸Sb蔯i_怩沾(Y崴d帬#wz誜檭磪o紤笪?鑘UM◥0悒鵽炵幐镖濼L釮e#ka簮q:愕C蘞﹀B4j甇`綵PH⑤藭p閫0珩琰He/剸惹=懱踂搩子叩FQt趤9餒霂p軝J3z7c<鄔鯛_1衻Q妬挏0n=㈱垺6` 絲~&傭#7# 阚焃d钆`2I. V\1徧篽`X<幋n巗镫L杊崃懚冘(&$ 艀$c8;訮H'駨1NS^=qN媞6儓=G鬃奩慶]葞蜑 上簋"篇X佀擒(iwn`6 =△鍁m塍镸忳愵~C屶t?xR00弱>S馥F岒⺪絲 *峾田B0 +伬#?懲8暦顇犁躦P:鋯帆p};覄+&Wh\漶抯O蕰w鶑8 +膝"Dㄅ蔡rH,s岝趢Dr嗷l8郎阮y隣Wq閾撏Dブ3,"牲[y鵄>?JBㄏ;# 壁>e■琦ㄛ穦守l|浇徑 )%rK +g嬿0曙蜨<煱橩6p岗3靬齢罷1`'┣Zk@ 1抒'?J%圝0Kc麪?廭袁J檖@'凊鈥笣; +i5bダ#ā2 Vb妥$`s豎 +yq吚抳羯濑膖C琢%百缫梮]+獙s9 +@奭塴铢pw皮s.yA柷j瑦颼罦伬,0q蹚昲袉灏?ZX罒k&1'9迺_3%誷藅<忓@.)蕫嫓囫螻遭猒r匯柏膣s迲;ip貄℉鐪~u$y戙t蕩A鄒&(^Fk抪烜)1y孶p>枞s蹉*eky*1煍廧c9劙h亜帿宑轼佔驙 D$'h伹颌Fg+搻恚斚■sE絑嵀袀猇遶|馒$﹍g(^S路+鲀d. 蜦?覗4蛟票裆颏-笙4論#驁 dr2oBO=(Habr鄄= +帾Iu呚>漻 S3H宐u禺]2l愕J螘}壉pz绡*s睑R:橾忨qs鰽酊i^Q.魟0/vH8$t)'峚嶒"镁B┹#徖冤:9Hm迷s诪熶TR.p改o.嘈滹鄑#~A*昞銥1灅〆B褧慶芄6罄=Q騼FC掵聻冃滙砖镾]耈瀀焎屻唑VeS+`mI]麿ooZd賛婇&]9闇gj_( +渐# #撉o隥33蝐ER8oO菬A@ 檵2琻娔^rN=诚颚鵴蕚6t<漲灳9QB1媽彁珤=:芋癣&躠I湴?蕗+葲|筪H螨*q術弤鎻6C 繦技喦捭庍嘷Jq蘎#'済撚弞S:圱$%G輅俗禀>糅鐒H諱 +v懽折uP屝筽?7瘇誌LA*顒bp ;`U鑶!98Z瀶Cu(((((((((牳?uF 羝jz奨窚鋵zPY6o蓊 W-更荥5,郚z剓踞u錡◆v諣$暺Wt`钕?鐘o楁槗I楎J,孑祥顯^E芫fI&>紂弢z覵1鹼畫竩夕> 2%WsU#+邹鈭洧3濬>:cX潵埨香擊長漍彼?#胬<喦ld詰镘%9wr m滵頪.龥y\翮8殡迉戙塯Y剱藮崩P=y绨#篆)%鍞旘渀3煒0莗}柄凵$X^ +6>p3岕阌徶∵Fm氖$#i艶q徱剾U犮暺x#煩冂劁H诡O秪個,膃]榗唕NFzOHδ踓"豦f鎙澉鷙 芠 籷`x?O匹忾+箾'8惴y锧垇29T >g頇?%倳f鄿v霂)g` e*%E容渀燓穅遭& Ooq荶PPp厸灳浴I芚x=x> +Hイs88'侼鶷r-酶 矬$狼儒Nx$齷螼js,P6a顧泗 2H邐勅L; +簗>鸽莏Q豁向T铍灱~T駙pN蠦zu琰鶶9藑銋鄰?鉐7l嬍W寙亷焃H体嗶'!X擖+憊匇侹=p}鷉涚Y<儳9阕R"U\0<`?ZV,s恲詄ヲ朎C菓哌跓禐2畍撦Jab夺*谀$灳鶢堅6釡簏Gx%iD灌.>鼛>敾漐$峌K澪 d民 渱T3~尿C蔱8荓袅?旾(2氽锋'熥.=@鮎>P 惝1埸鳡,v\m桧蝳z検h!yPX擄宒qM=_pLt9'抮}9(#谭;Kt vg濧範垆桶|蔃蠕酾E:鶛$(歠撶贎8x艪XT奆_?# Q:䲠柃9 F>R<Ja懥h鋵I 湊欠斛T撬+#+浏o痾兲1飰鼍湌s苸輪I7鼇6鵯Еs缨隡v_66,a?"澞z< r鉽w X8l 邕覒IY] +.寔帶睜无qf悩鄻=y顇05堛a邘 +YJ孨d!9=\rhi6**9 嶰革灩憱"P/崓佅a拥K]Z!T髇鵊8匘E}羶晧i侅{磳蘐X苧苬'ha8椣Mれ q 缬滷╢筡2盨祹込 c熢#埋媐}孉t鵌d,凈眸P =豀澛︵0 +渦瑛}(.覑 +韂粃62O隡糤1伔x沔懴9鼑JD崣檈憌瀡0~櫌浃勄 .喙螧z凗E疏馆 g蜽oO^N01U +2>钑T6:n鐯狘*v濬],烁儨犉I辉)O亝,Wg?:DF龗a~<`焜LF雪嬎 紴谷'種舄#ゥQ恞湒v㩳PJy{綺,m\<:渃4.JAa蝯uh兒眝梧$q詚笈#N翃3浏 0蟐q鶵檵FM !龄鋟'駹肏60y c颢&小仄x9'燅顟 `厡堇8昲郇ˊV08V濑y X?牋绫儨p3_jZ( +BqA8=*杰#鵑螯鎥-巣妤##慪P鎅怨#撧礣a@珩(((((( +2ij)焗\S潐b 檫瘿°=榍榕2R 鵊>垃`;f*F#卄如'肢侳K& 輝顊_Jk頰0T鋝>濌%l 擈儍蟐?皮髾a皜僳湩極}rE盬R'渢獳T虽Gj9P'=j仅tZB脸濣戂=hx4jd=?茽误*oe1鄍y騫掞升侚W''佋cуLT輹uT)躹灅-情@鵏^;H睊7任}s姕+" 粖?9胗9胄か&.翬.6礎悊9,痪PHu钠K<韋U-#?N}盜祽Yg鏱8褥~橖{f-卋埐1恪鳅5#恄!]W亝#96&鋸1O (Cq+;X滅燓$磫6r怈m<懹冯奷l*/ #庈弞%f2獏er{0q臘,1U嵖膭'顬zc紿-Q瀑8?,唀VdQ Xno沷廚匍籁yw62橮#gㄩ锧 +噅E铄囚'丵艖盶F佸K0$鷘镸 + 吀%斜T穦鄮wT侽3r敁(脫s襽.冶e:9齭弦q蕪捨瓡 佨z跬檶击吚 p6q:訒塙I6f%[8E籤 ?听馞r>RXe絧=甫萙8$h萣 Zo擳&剽bn睁膻M?鎜v讷7讖0俶緔C!RK匪91F+,穑霂CJ)f,w+爗MH=s訓蠒卄1+詗(&6RH$|叵鳵$^LEa\*瀤鯛惾衒!等8氰hr熏y.8;W飍鶷e禙%賴擞=n?^"Nn!^U萛缍O謤G *増`呄o^玫 驏-<鄬`伹n徐*匬^Nu鼼鏛g矋* '屣荗~hI⒊卨鐀9c寏="寱s0槥爙軠箅Nx螓葬榔Nq彟i翵7钲渾戊庈馌+嚆憡%6跼釡9羂!姴索辛OV<:齣J+矀}@彇汸渾芆A>磽惐2侐z蝢跁F\甂(*: R>g$戵疗qG捿 +砫摕Q:觺砉祤 1苳灱f +亷慖,!H郔Y潐nX実3k0m1V轫鶷戓ん C&NI=?扫dIZ8;瀞千9鶸埵3认4!塥[p# 鳕椡,@U$ ~+ψb19Q廞踱燪眃枚 0惴馉lq:;*y'耥N怤(9閷裼迶艍憿e/!#:v讱$巌'F1豷渟忒\笄OJI鞅$2/,8c茔馥G払後}( +S:滝鐾5=蠞 嵨F鱿梵$ B萚nNNN +篋9w?Jfc朌"辣bNz鐮妞a$晔r郾 <笞颚 飻dA藁}z~4E0咤&鴵w' 向?鐨"评弁暳凄3O'9晵P膽柹#泓h;W慪u9'<~tj ゲ彈1滝廀' 峭岒GRq鴆歴尮,婘7T2珽w9!G4襀# $1?Uf懀. F[#懭<僔g鬄) (牤bp糳澉>啝懓]&%恫=!腼@ a潝e\.s>ns憸赧崐昖繮A8l 鐚~uZY!咸F嘱9糸V瘿b>旯涡y疕&摋U奂捠瞹?*bHp_攣灊~烰%1c歷 蜞c+J%跔v撉|諸n绖P鍬)熔>单m嬘铕狆=?:瀽g紻Y誜62P1擁J$;貼觾鎬%ⅰ沐!X銦_пH3q灖隌濹e変rz諸e$滝蚈v鎃8#? +瑺I3熉禂偅>鯍)擅z僙别>>((((((Fr昘C鏥##襽*F丷搞8翕籒=)园b9俼C. <溆U凐鐬賷悿 ~|溡难!財繭 H#gf8n溹狱饯8a搹s@従$u)捀羁S⺻'8晪┸妙禢遯怇稪(0H*@= \灁Lv0#c禜|巬 ("u蜚wU骕蔽r?J北]c|棏勿q烲10&薸檧V霌溣<+\;7侒m羚朕"蘮" l熲?楇Q甥"H #Y簩懬?鈽慑鏷S嵙xn@9⺶J哷瓮艫绉8v鈥$萌岆$圔|籊Rq熛帞魀7頕l8 NW肭8渳MD餌0嫆|铁憥n4>X8侭!W椬9螩亰T $I&Ye9{t;4a去ON4亓嶶懺樜p浒' 摐E,@3铲k礗 13@C册cI6%veq冮槔險^D[6D匑R瀃嚡a苕УYIO尗s躣ю."Tx憊砩軇n$c漼Z鸥瑎01埪郼?绛L#L"0L擱8朐熤-c.捈|冂緝颞b%脪浶檁#秉8龛EH驕㏕W鵆"泵g陖砃1gr*燶 渮?玳Pm稶UmT.w 銚槿懯+O `匿懴Q鵾寛g"5V~O 瀦觔'`6q$u縚鏡肛3舜t_涘=^粼槨8肂3礼:9 +o攽紝s戂慠$辢gG5$zu稞8牳窓v#H惒6q+佑<( 妬&b#戟 1榜儞1#寊)!v2nir匑P贠?併&湇"埳豎抉邿槥掭!Y錧 +噜镉8滗sD榙/uu芅O隔寫瓼H咴隥$ 鞂#)愂pNI橄`甾&轎uE9Q责3镻霉眩2q怯姉&摺珙凕F匤1餒=O?h勴4g踨sèQ9湊孛砱,p0;瀥黫萨F夿 d呝憫{~枣 He!US霅84"0*6T+鵗m&eU'k&]噾燇轫B郦TàrG鈤'>^鈱1扂徖熤0屓F1X^(i≮m$哈庚id愢l蜪8莖覛,k+~I螻児鈥0诵32"増q [oj悁骈蠕赧幚騒.3抶跬,"鋘9`縺1鵖鰩:耧L脟g,`?.磋鱵k稿毕(篊*$鄙 +牘;焠`fgP錚 +=s邷SW~鎻葬w呧庛撚N悡攻郼(滎V凌G^(穴H鍸懭憧鉏鍳&u蒪絨ZB踒梽咡GC垭覊lA鋵嚆痭3=( 愛玛 +xq? +搆H犱兿O箅Mh汽訨糮佅繁f崟H菟+朁:鐨v湄锍n 駜寃鳕 +;$'佦皓債噚m馨 +H8?J3父wE; +$渦跬"秂e]厒s統'3怯犻I鵆1C妩窼寸廅郥呠0 澢=癸$@龓U禽$鄑$v湫N偨波'栣綸厝躏Ipd,讶脿 蜚摕鍘磽M釬<0^rxy晢[p 想焠挷R>钪q燎<鏆LM穊埲刍`<聃蕊R y剦dt-恴O斢X明鐄$bRz_zi`eq+Hけ%(q蟐搁尧屇^O滐p+宮# z`{t$3(X箁#8u;<~g覛媘v8N0Nh霬D榲"!F$p0蟌h贉H耛盖-荖汆黠S0≤坈?廓I'寋z䲡6/匰匛v8?向g彇寍';禑I囘轅Y谤3瀩?\U棊C8赥?Q蕞40m觳A銥:t齢痛+$萎2噦跙鋟'鵩#sy旲v288I 舒]7'gc9#~昛W!K,9#绉Rd`陪孛'顚>箭sM|濟灒奱*"9鞘偳舭) +G樜A9'99荗违TQeo3;釉溏=初鈽硂"=棛\^.h蕸窇!憤踿9惘C盹J咲M縢Ez_聟呇櫵d}躮沉颩'2郢鄱;碐r蜰誤2N1g>现椡X4M癲廜n鈷X运T岔/|依m蜪n傥070p1膣3<评+縺{}9銇逌#`丼伬巯汨:h +(w~O~(褬0: 楞訰軶[塾鶵Ah綪!実'#怬4濹%%Or缩4懺'vK?.話,.N溥鍖m<n籀2昂3qz觞驥(迀禁C H认?с@ #(]H鵕現<箅H顺虘_9雽:S6懙吾詚SWx10 帢鴬云F u绁C晴HG p2穙痁慏`"伕d8萠痿"C2惷h8*8|廽s9Y飽规(H$`3W=Tp包*"@覈h踳2Tc擐N;滪圱I殂х@F焉'鲉岓宼RsFd<銯zq咭繺 a塅e郿鹮⺮O岼H濿輘訜l`{P搼芩堠岏郄酩嵻"┸蔰鑨灋鈏&蛘#艌'k)鐭A滫惘J|尙拭J翮3襽 %x噩dmVR倇g82朄ト儨(=A蜙相8〇趂;^WU桻c炃8鞶琫鋓敧 纃r1零<鸓嗰鎂塥~`9Q憧鏨庐倬 ;q迉.袳QEQEQEQEQEUK睹`羟隫陼啁厦U5s肱IL悧l滖于+湝 +QR? +v9韼黷wrH蝭悱:U檱:溆&a,#鵳A9|榾I麋6匋鼱l艾*烁v,煽*考埝?螇d$崾* 暳<翥癃涑[畇咦鍣6盽 $彞N蠼0臒橌疙Kn螉娍(\g便螢Y諝2W-灊憮DcL` 鋧阕秖R攩Wu鵛XNy3D绎t#妁ㄩ鴰x=*3守X荿樸:) 肮尼傸崪w綮: I 虞;袒@鵊s岧)c峑bKn𗖮JU崜';唓鄹鷔 6nIs亼吜a仠z簏臚庱@U3( yq憖08蟌x`9冷|嚍泷鈥Cwg2瓦o8惘妃P-$艶@$凐酽3紵1iA6G=磕A儎iQ徥W㧟б好迹90Al笙<麋箰B媯蘏扻) I玄鯤H +z$馚2笘 +H=3嚣 嗢8=i隋铃27g顉瀩z歍#&?洨跚礔懤·揉$俒8}Xs=?社瘿 唺89鋎+7=絲歵0,秨至9$滮I舉L0 8=OL矵cL 膧牅d訑摶 湉jBY暲@O?峎K嗱訡k#(铐Pв?N(1.P 脙蝭)&b掝唌)拀簪H賐宑<?楏樒寿('8=䞍徫辿H 躻帔馡:B欝X碹输.{鳵!憄賋綬H鏆酻dc麬 l29愶1膱268!#>熚暆cG2勏q_5鵖铂o) 廮S;2#ym灨c&遐诲垀*;r踃驶QI蕬笋8>瑍`I$社遥咮,' ((鸜Fd1羽鈽灏華 J憗荗\簪DakhHRxn揪鬖瑩0!8蹳o?肉"祇1N蜇|潊wdp/*&y觬d蟾颍>利酩嵄劧o7h<溷據y4鏵&I#R氏睍lH囫@ q;T曖兀叾懭 悀啒?3亴*螿荿櫐缓輆樕俣抮}遍殪iv"G搅羂錈^;s丽2Y勠+顯莯鋱苝8e%&V*~P雰:t惘ZH丌吉2柸@'畕徦歴>軈酞w咙9锴縥采 +欍8c濧鄡尧髠硵吩w妗p痻#Fc +8马珧珲&惼)0GL渳:琦鯛鼠4 沴7 +r@ 鹮鵘6A] 鸊#z1~unx2幢'n毃3,8 6臋U0d簚9=G*+滩纋rG箝U瓓0Q&譆v┵;煒?┃78發1若鉆宀礤簮Fz旽\|F^8橛丧)禙`9O:PJ1:怇: s羖绶^瘣p圬d 殻%溶茕抂斧B蔎╚9H呒ER *茊,#u虰堞鞇#|狕u )w5嘸懛bC楞魻q$5|嶯}(镐w濣'黫渄溣盖鈎蕃屡0I胂知鲷雩8{<=閨卢r眠隝蕩奜<謵8#抙3憥鮜}j峓勬1鞞QEQEQEQEUy2I恞臱1$q@螬 揚鐪愉m=齤 9%OlqS凥狍Y唖曱权@溷泀/橁:蹊7y,x薵Zt燹瞤3傣颋^m23鸴AUd樅銣9腚@矬"28覠悤'鎈c卣`pq煯:U#尒8N劘#霃~9 +筕\兇t)蕍瞸)9﨏右%B 6釭=傭x㥮=FJ嵷偰腴莹暮靑a嫙拽,-絼憁Nz_疛Do`c'<幟8閂銴2鵒酅 (Fn橚t剀'Y6釗?膝,瓵/擥,s瀜锱*br4O躰@I#鯛F菜r艭伆rq羽?滻#鉷Q8幰85菙拡腥& <獏鐑鶜{1啜=y 笮鄪cF4恅拠0盹怎雩瘹`"0A艬擅.銓淭屟0撏񠵯垒烓麫"lA怲慉饞瞕A^CR2溧?莬枝L洓*I囗(霴縕嶬馕譺@贠坦~T*垼敐脅鸁覂 3. R6辫?杴㈱莶m薾(銣襞D@仏@6鶉b=竟鞞濧悘/{3m祚嗓DW.厝檙Xp1豼蝡z訙兑 4膪觸詠W;=Cu>儚謤(鵜8q寱搸哏帧u蓵 =臛衼蚄 +;博\銉朐耠")m術#綦@ l頥 d _=閽嚈F 兩KW 9趚*~煈麺B+W y鷠(翋袒_嵡畒爪\铂o/梻p籧v3=*M$b17彞6D<構n~@^B'=x@孄昆軅3皌2弭% Pv灅婶丬~t咆]明{N釹⺶–韡821苲齷萆(奬彌kc疉?萐#i侶Qy捥8霟系J遒I6鋎I削9$: +妚零=橠I:任翀(q専c庌糅塕7赽$黥蓪趨濧认8銘球酩罐b,峥X{郟DR4qy騨^*8鄃6O6`鋎 p粆齴灁枵J鏷燾9$巗笌Z崕 +; 蝱鲢1q弭h<~4嘌,#2鞞8'糸P%悩#恱悯"蝙|yd挋A蟂熥鼩ri箆塊挩蛼A膈睨x$b$.#q=1&#$5s(}脝>睃闘2&P褋晿/=GRy踵PsI偣V媕 鮌#酊RK,R$刟Al穃岷袂9彰^2ON9っ鍗鵼芆绁2S墧耻n#g蘱幚帲胏V蚀n嗋礋C弢*yx瑆'wOW%6瘻2 FV頊焇溞沓吢R%粺鐡诃掁bmO)橔裼斛*0倯窇灊┳@唱熔斁T t鷘T9 -}檄86*湲s欱1]谷碂n~骏; 専榪摁$\滀1碛\Um`W$流0HO_z盄(-#桏Cs(l鹺S3zt颙穓嫳櫥p*8`'*帢S嵄碃(騬) +件tXU楢 摇U勉蕲P袳QEQEQEU[# Z贍 +菤1N*)b8兽RaH%卿* +╂0%q9矖'謽鸋粎G)c偳$幘磋U偪|H阌覅峕I M(壎湝(<X9巭锤膟a#=颃qH!苶ZP ! z鋤鸓1霼谫減z匝Z/毩㈦嵷1彠镾Y[1!''>>6cH帱)屻宗紀#偠K/%?椺妡2鵆朇' +菫樓N 厐鍍1 崢=<肢蔮78` 礴=鬁d}救W{2"珏落=痹樜eG焤+3畠3儝=/樣圐縬Q9=0=廮镹2n.q亷>丽鰻℡nL_ r98鉙 #rQ /╇詾j$髺%!石E*8'肝?Jw'o,L莺崸<寋価hf怘1 ?3MP% 黣!G詃~i墴 G$~T%+鱪x;>!豷葞弼籹骳鸼'C轏 \x9闉qD酔贸,褠Sj侷黿(嗍崉[0=z跸7)*(刭>Lu 忎{Pヌ襉圓:岱u'字氭42R+澽X)9艫䲡'抶bIC樥B隔檫<焭I瓨$〇旾鉱釛瓜N敬m0|* +怗翕墮擑Q; 憔 敿彾h鲠罖7撥鄮@=?腵浭F|$=较荜{踱$曓8鵜I3 9撚 p銶埨錇 =砃+4`.@傧椢=o茊浭vy\(酻w|'儝:;P欵p孶谱曪涌nz妼)奙執罾扻2Ht飳u d"D4m1=閶'餁8觥"膔y綦撺J6d*.裂@$g隤gAx*e渱嫌#朕扵$妴@@P砝$儙逖$S赜o灙 蒹 (0惀6#@6甍へE襃敛喇$镼嘬:鍌1AV1谞 }B!忕殜毓 )!槣銘弌脤zS鐁矮斟#葸齲蟡dF 8|欄柠P鉼惏fめT莀]睍蒐q貟z繇隠1鸔 +钌苰脒2B1h劃孒h袓烫軒;u8#堭蹎韮nNz?朾T-埔牳> 阕隣嶰5儔J3遴8?槧2〣1瀧s廃~x肱9 +偒箮8绡8酽H鴓示`p苢佄~緶S佢徏籶3;v2*c 菸N1灓R[g噬;1<69闅Ic崝y拳xe'搼鞳s(o嚛r?".銾#滵& 鸉p渧={r笁泎鱑FN}*4寰`ぞ3熕冸 Ezd$岓煡B(藁w搁雭趱#3o0 |踿衾爲䅟` +@x#庄J斒A 傌琊1鑡荶p翆<琠v +宑狼譀n鴳褾藢s灱~BI< 藦棪NGL蔂芏[薂day聦s巕詞斍昍"継;簡l` c?хS唙Bpwd 劁{鏟凰%粭 +6 +铉#:6R衊.6玼揉v9淃 h?)򷏐=荢R>鮤T/铗8儙O:嗞%朑r%嶩$8聙F0.d厊lc佊5 l捱)捂$|偾\$淭#蜮pB禝8樨s鵗*辌lf餘0=1廜N考`d2H崵dr;冏旋)$匴潗8茕1<雄銿x骝埳恟98现殎C紜'.珸厍=t厄1@R-喽D你9漩o騣C劻U|癡1$2zwz觕%p褴mPA +G$1虔Q莀j_辻翗卆fFS蜚痵1獮b'j跋~?C>5@%椝竛d绂?2琐!i7r䜣悃#< +y蕻樬g>S閹~灖躊o灏W樝湯1td3酊Q囀时1滪篾廮~)頳厝eEVcFCg*R碧n劙_皆㥮LM酫僮'鳏b襀嶺鋝1憖3廭j r?趾?;3摕H簟\賕<:缱<牉1;弞L侳缌葶?齤l`g9bB$:Rs.U廚@鄔8 1p9n b槤8臜がm戏Jr鉧蝪髑S+g 納g #gGZ8 A笞"W#仦0{誽笄L`绻蹜屼毌s@09*zs@)A< S}駷燥衢儞Va蒎窭蟡:U仄 _(拦N椞p8=;z*?y孹訳寥 U葞PP琚(((+>噫V繇Z 苢鏎)2殆H^厝ls熺@\酤t廓遹@ R3s羚隝#緮'R偑菾'=&靋灁誺 栭 ub禀猊 +2窭认bpq闕伆2 44smVi\9惴鳏y涿瓶(R8甚蹉?嗐hq6捔q懹攻w"H鯤qN@湉+L稷`(a8閾幑9燇8崴0+偯硨 駺俐|S5憯徒 蟄呻邚隦4` 洗G$搾1䙌衾v'k`+`戣鑪詾t鄙埵0莘b対紲徧~U 7e|酀唿阒淃桔墥-菒偃绡9",杚捓c9o隢Y#驨醒剀刘 R@T ]彈茹=i<1d&6敞o|鹍P +qF +2匍御RFEq*鵗塞=>澟-〦RcQ(f氯T湈肯歺#j8 >G滙@ 06;轚^侘n类u銚徛ぼD缣uF2邫稄^鏗栏es^z +!肏<樫"銁跸L@蜉渽2伤4夽冿訌疋塻!)$侶鋤髞1T/槥枌勦`瀥5#嚷炤孹}e樼陎鞞 !ux鋓S7湿亻*DR産辸c偅 v墹TbF_3.x 62OЗ缱跊4E炉摷 +%夌肷隌 W塩 +IH坃iQ絮煥︰沱`w堮嶴柞.綢dH賲1優湈愀縣E]*墎巯l瀫銥;P咛)"e罖6袼s#蚯颢]F毁T寙S蚬珏'肢愐6謴鐂懙O$鑉;TQ沫厊<楆q!奅)  + c酷NfD<詖xS懒撓N;蛹窺>艶‰岏酊`Sm偬NB;慆^Iff- P7.倯滀煯x螶IiC;栚q'''巬0sH7蟺綻+頁睨5(h狍湥爊}高豸巇 淇 +GS 袂4$r|貥8L' 囵S钳z/尥*[1怗|鏡8FY;罾 灴绁9c?)寈`8-(陵}?偏箶!B 癙19渃?^,yxF愴榓壪__A杏#;囗 <銧鈥$7DXS挘q9求úZ鉸 虈G?焃v茰 昚XH6灅靰i%WX$ n懞.簌澘齮>E簲r駬朾G茭)矕聼-]N蹁饈?狡jTv n呋#9疕0瀁P灌褡謤QdT2F20 趇[~~P鶸}ъ使忣棒缭`姅馁%%d鏎泩鈝蒪爳勸臘矮愱G4對P4 'ㄣ颃5f9r剀?C蝖&9C,p拵|G┣ 蹶0榣*钰棬=锶Pv鵟q<斾蠑墜$滁p8顯矕I2Ibd吳=)e滲*禔躽鄘{-羏*颜昜# 蹰煣ZB禹俅|菐A 俿上Z!b犔酔 #&榏漈$Gc寽瓼;慠蔇R际基豷佅}*蓟柶%vX=q@a(A怶厍亖廕玴帖>湴'$g?1茭肇鉛慗1L"滗q锶*澞D蓆d#麦恲1廕懾)c穘9鋞3((驥鵼蕝砥 㑳$"鍢慩蹋,{O 奂2台蘐)繽笭 @踘峜+l勂0滸n蛪 +甥=:zf欮琽y6VB爮\酴#b-$晥凁滕翴楰jJ忰@lzqN蛸.we檾遁紿9榔N85]2)wp绤V1廘缨>则╃靹錣@闪 x t:"HE览o,爍=z{R亴fF @蒹巟=G!uYe昫br里>飈阚Л8哗b莍廊\d`px=;B薼L{堒鄃#灆理4蘄谔O钕 饅蝭9ハydc讕d鄰~蔌=閮>J=JA靭~r釘|珜=9陑耜Bmq暼hv;z c扲1彈9珩滯杷`#鎈`gAnq詰奭莖b@#!y^斦#;wn=茷1_ДJ櫫頍证p3溤Ql詷螸1渳;u$l尡笃9゜R  奰抴8螶Eb鳙術辐調戵p8瀤鞷幍Z霔>魁j兛9)冿 赳鲘(閃擑舄"%P蟎鬁咰擑@雬x隻頻椽qP[臬QEQEQEQEUi$劀:砓.^C鈥+儒蜲镼u5# +@9鞞5猇S輨溿#U躳H哉E#+.懴U67d#舁W扙Ed餢3@ 3◥檒q身莦Iw/6 笈Bq湌c湡ǐ骚,cy^y'湈糮MK碸_棏!A$媵牰(C捙[挧畒> +Q溘矃怉 d滝雽F鍭s+,xLoс@答菚厡.r2捎焲_aU憌J.闗p抭帳p*'暆Y#<2c$S蔽髶衏廧擏{19噻8潃<湈A:*竩%埰^=巠魍KDQ*H 藹l徯r}:蜊棘腉瀃顑偫r>漲DQ洛懨 寋c<⺄哤b荿焧珉鷾~| +恲 r9;s祿蘒R 憺 n'8脎螳+$琎滩3顟T煈睪阍~,X$S g縉99鳗p傖 禭個q 瀤=9欕X/0v錦弩贼区修n翝t 鳏 +陈Wl醳#摄瘇8c$院`B飹y 顟,2崶8` u鲣話鱤輫` 帚觞wN寢鋎鐭$嵗鷃鋧H鐼顿#T(]w澨氽9缱実鯌@T&21x=zs烲Sつ穛# @`'□赧蟡剟U祫~郎绷m刮[鸖顨D嵵B捎驿肜悃9籴lNW2g:g懫2M,@瓫2I2C讕较4鹵O櫸躳=:餘$};T64姪1!!X摳)憗;堉|窰濭O0蝭=8叁灁?imǹ(惏,y 潲*'/st陥U2U扇nq戯嶅9A谸増芡 撹y(/T$!`炳鱋O錙輸砝陷9镒朦>宜q艠匜屼麟榍/濢菵\ =3料Z,聮E_rq^!們0s隤<t厌 +澘t:鐬僵 B鹞/R9壬'渦 U被 蔉H酽h x;}?欮锼︴Y3霝緯$r6捙G岿"側rB/# +0G'湡皈mP`r7紼;fO,膊沈m=?匤狶x拴 Y踤 9乩錬y蠕|舺鹀"葓螌 a橤瘿f驥+01?鐮払"eTr茂镑矲K;4q柬`m雽巌X皍>織謤#s Ё轾N秏裧灲蜰i>icS髛餏>\囩Q浕kfeyQw{9蝌,娔`>熊擔S窨塀q 銖茥t#糄d錈栗=)憚\忰隋;g┡昘堍枅_,s1"萬撌+俼彌?嘢鶶+@騀%軦献皈@蓷0紥2怷恲沲糸@ +Ye*粀寀荖ㄥ"F%旳!~\g騭笾濢j鲺FS3銣熛G0y园尣ь鬣s魻8蛱$A鲏惤?3P剔m2Kgв>偷澷Fq竻$寽怬緼﨧:pv磨)a?w:9坋C"3鉾釓n炚NHA$*珺曐-佇:;U囒 d)萧╟嵞QJI<(飵2}边孕Dx +宖,遹榬s巬{=)"o墬q!vt锢ン;3嘪!皃敨(猫懄09=璓_嫉|鬘;C鱶宑礑$T!s訋辅廞@蹘Η喦藖颯( 抙試奪F锧 绘:萹隦P袳QEVl仂qZ5@屡热>>擿鶶睋衹iJ泺I奱n滣屢2*B簋4懨-蚂龄惴S琹y9肜豸腵恞3顯黄n!y'专ē既2*lO +i|傎\u蝬?5W瀩N(#!g詐 冿鶜O1yi%絩?/勤. 革苳wc藂怞驶溹O妣y⿲.$Ve弾T嵷飵?Д詖砾N0>4d#d∏ 胗?Z`U憆r覅f$m鋚?琦ⅷ!bI羟l}{T粁}珤面渃==)扜 L??悃痡敶耈8U,v`:悳w悭3%塷8 +灏 窕┿樵襺襭匞FQ帢=鸖枷1do8萷陈=櫌.?xH>)"9M:其秽 r?Q卣y沯韧7輌3舆炚+⒋d勎孼5l儞蝌ztCRCQaK0热/汪Ym眨\lp: s訏;揖 +D7A阺3撝'a缎!@p賞Cs訛3Vu.e壣0C<1鶁绰綳擁h穹9$鯺=夒J虙v蓮ㄤ噥镏&&尓勵)衪朦忽讶胣竢T炃]b┸P岉8s殨d嶡嶡摀;rO|赧齷]猀V\m 瘋s躏K傤Xm銗溺驯R琑F* v'疙疦 +DJr牚#戨吒鈥$`C1E聋千狭⺄x腍篛;~竂軫韤/v鄟焈JqCH罜錧瑉yNG錍 噤鬁垙n鰨筿擔)UB 潬筮`W傆:帶ш0ynIQ2F言筮朑蜳怶Za苟\uB茚鋒DKv懭IU鋻x蝵擧菒@P藤莀fV債l>a殚謾&7櫡宋諶q弢J珻瘮0ww珐欠f0)峆嗸鷖NM蕠`薰8蹾?O5愮pun羱vX8^榮-零:歇弙~f<鄭胄翮皈I篅枥瑠2p筲撋r玩2 傕v绻胗48-徏籘鷾鋚x籁* R洔c8 `袂秨~#:熵 f1憎42膰v啵藶縲℃"蹾 un.;鬼尧]苃激:9估ゝfxr噕]q仧系W4Q秅(! %[8銕?@%5.窀 u蝱鸕I宕岊鎉%=?b鵪a +O葂萿霝s*嵢Bφ F 炘%>y2穜靣?齍:-nKe坮蛊3;Jt⺋嘎嶓wn>莳K佡|賤课$鉶訌aW*Fd谸鋊鐜縍;謪7*r榙';b矏` +观鲉 +銗s壚 L9,WVe>爙O'徥,篎绒f鋆 :缈腠Tと壏f5u媑=8上鐬祕2墓o攲濬W哌5D0.H軆惜{琦PuGxp +紞爎sx*'!爗鹰S传 憛H9u斛褺 潒磣=8M!縵}仳1姱吚蛑C伕9:侙召暭;坣黎pF}E%X,x鋑6/1 t#隓玞儗煭,h@鄰a漴G?酭8d{w▎6a殲<髢撉鉆嘅1J囨^Sw\cX 柷q淪剂9羚> 蜀礪飰餼宼閂~o3-=唓J玽也? P"響U黫兞鎱 b遄隬O軴欠絊圐`珓'=G#p G逓LhxzS唥*l|%8w泮;A鎲$駸譀覘?0O菊%GV(((酙$糖p雯涱瀜荶*;朻x鳡 +酕襈xǚ赭鵃)櫯 +Y 牸Q 哣o\1 鱅閁H>bK窅鉸搶豸 P;訑q儉i樻Px麸Hv哛阈:u*'劀G筀9鶐9脉9>#e:1憠趕祒顊8黴Q<瘽]Wq诨x 追Z嵰'L诧+椳t*󕖬r幡-颉$)9弦咾朠轪8称qL#玑T啇cx$笮u臞栶鶂蕦鄋a嶰C?BI 瘈Cd酎蔂(h鋺檉龁x鼾jgS鎬rwgi顪z雳P傃d+F蘗J┫瓜颟貴埋A_=3@ 愁羝麋6@ +e谀q苆6UV 》7 膏寑N?<<1,⿵績槔(髚$p籒砻>鉁*3;1 +,仠2霨)箾f摐汶Q鉪C蘥厝F=8'^羍F+朑nV蟸莽豘VyX!.O走*X膡CG宑*w𕷂?1鴝齢PF瘳2'*狉CJ梫颬,3锽嘲$紒彲庍w?;藤蔑f肼 P`:凕\銕:HF訋龙籀4j裙W F咙C#,汼鎦v8V銓銖襽脃a櫂!980苘8镛懁 岊⺻繇R藔呂@X8`+#宑p鳇閬罣翤M机{p:詰抍( 3丧m2扷X26酅 x${N聹"鱿l葢貾 龥哮婴8I错}观䎬Hb0=L9蠩I辞>駟9缱訋*急埗K3 幕dH*张笒3藣飾绫<{鈿R,IHcH2^{9噜L姟橆迴錀?烕xl[▌cv﨏m-庝c=V翏(8a *麅∑N娞維o橖胄阋*#t尠v埳 嫌?弞.>V+>& 燃>:R⒙$%D寚`1剚蠕吱迨(E萴剌笙<搹菉琔銹卐歅@8洄3庻⒀mF蛎,N=N誔 +* 崙熂侀鳙m藋O9P[9^剧N +#<鋖墒 惴Z蝩o'2'ylN8飂蹿&18NF[ 绠Me喊1騱偦)<圏剚淙↓隗弒殜b苑^躻╃T 栧禙萘惝逳;6 e8囿盂44&E聹+8>笺唑獛0@0銙#8珟姈鐒M0lgj+8#哱筅3邐v>^)侲 幑弗G^r婪@GAR?v庉*欣 c蠵d鋧) 鎱 8玠蒗;Ukq鬅鱉Y'顃(EF:舆钣YO箯j__l/堀爝'aK躌kG_泌BjJd_r烜Q@Q@z煃e禮'焭= eh褞櫎鄿鄜t籭蹴@l^8齣6岎 颮吃覮(21覒;仹8T +9=h @鉾禘#獉prG牘|喞 镚愜韅s讱笯9鐎i巰n;髪鞍苫 2噏 M儫CJi芙T&懶埱藔y葼陋穞滗T#谯忬謺萩蟦詠钇8敉)H嚾 tr缱`:2饦蟎熓澅7|讶Xu潲H棐ch0鴈w.v0@8隡H爯瞖冻祍鞊ctl2WH餆衰V妨|羵鄋#$+*秥褱?V捰颧嵁╃ ~~袱穩簄u&<漕;庇>渀咋EY垙薭He9佝TX3}犎槿';姚 1塪`eB 8"瀈`窾xX廘詣棌>o Nz蕗污潱m囗V \駳I脋t仐 绉銥"G檪@8#敉F7甃*@楞鯛 l$@p^[恗*煲9` 认哀霺g禉釦鼼"E;嗏#9捤0.N)嵏=*辑yI飨n忒錰;v#湥m躙箝胍∷#" @ 奿E笎"(I0T勸芆s﨧8旗c* l孎庸>噾N6疃鎎JK`)Q宷鴞詪tL紲 羴$0$q=阧桦 滩B觛(痃帩s5E勋攳籛*7`琊=猟Uf 嘇1QI &芓擋t5筼:VWVY[蹉4苩i 杅H28羟Jj珥qRBシ兠7 +vEn请?毃Hbpv汩殡LIボ2YAV=簋{英b闕貋z>殛s2vㄎ秙轷櫽*C 0繌33yB呙Nq榕H姯 餆_CQ靍輽r8杫t缭("豓y7mp01莕滖@ N∕IA#踳^z2U攏$dd'9鳔醔厀F绎9$V=x紕E頕鉧V鐎9艪K$R<瑰\營y'9絢A4"HB9〕铬斛8 @e!8T ﹏O鉟N T錞6y\稡席鏪}/P^I衄溮戝卡X蜹u苶q庁 +侮粈'v攟侠##→,Ai繞堠奢'cVU *灱 惜_茮k蓇]-府郍8?(b@P郯;W醂Wd%扡寬躿 +賚*"綾8酨鋛鳹+5穜汲z#鵓B矕$}躣{$Y2炝\翊.q酏xI<9s嗕辇x考醽襽7萓蜹p攸h堾V撓#搩茔螃0y38泮H琞雨G1X 蝬锧 =r1詑宙愪叭_晄@9沫衐鬁猹|1搳0旉((*o 升*j() Z誖餭o^З鶳BI$訜滦r})ざ畗)T淧霡噤毋荂4ztn0朋訉粽愢dP>q)rG98鞧瀧検c磄熷Q虈?|r *t價?t鰻G8 6&%憸搳rジ8贠<鲢*Xm朙 0 p8! F熐>敱LBm9v蚇鲴╒ 扏<腙j瓖夔o:焃/沴h孉鄃&蘕[彾jR抒;69c誉忔?齌纤>ze笊?缫%寭6+憥説I;d 奉#鹰SR0UW吷鄷?J0dU+盰A縞纂@y畆$松髆e靟巼鶷駯e -//詖7GB ORH +*珋@tc軣!蠏嬑由a8雉䲠鎉藯谘偭躲蟩逈*o`C囚:S尃艸*烫v$疦=(2p3幢9鼆(埄鄯笻c&L鲟歇螇  0滖熕簪5~笸%p贎螿忬Nr巜託d'殭_0昤TO8 +&邩偋珞ㄥ)愗鄞o'矾=x!匮1稊殴嘃;x9Y3髳ぉ'熾ItYI8;鐎錊r0G'颿#>鋵幵(?kR=21涹ㄆ詳;`綜;)蝳8黿鶷幀讃躷秨<(3JUIa旭叩=c>n郕*鷔枝磳 ,澒際;rTFX2`A螧?齌(+,d怈nM1T鵉91螫癢萪$)8<~$劁恲莁~捡靐劏 + 鋵懤历qK蚧x\r<焍>磰Wk:pA!稂絠涑H +剀}3迉2鐺!8胏?x匒bY負瀀耥L樒YU0銥榥寝斔皶Xdnye揁(Rsㄖ!莻肠I锷綦b逛 慞ry愨c漆缈狷憟iUl`秢?8凃 詂à}艫鬑PJn零G66d俄靟p?莽鏝GWS鍛吏轼RE"腮Ab2詪髳O蜁8e鯛J0!z嶧y如孴Y乨28n菐3B珌#P(羟I嫫 盬勞s鴖@*椽僱籅~紥q~U哖㩳*搼侀唣黣u2磺$圶 鄴庛璌$|1m蘜J 駜藬2 泙F:z臝抧%f1彊X鋵凐U5Z!.杉7埔r8洒鲲S釣y庉@FV響?濊3$13(fG%眰!噉烖Te惾瀊鵥N2夔懺簋y(撳'〆l:裾y轀p:雽qP旻8鉓?萜0Os灲鸓H<珗諨H0课赶=$f醇尿峷嵙N銈O#屾掓5,E|榆{鷊軒诈&#媔]奨V鐿個4e級とR#無髿抜 $^啢炜J峹豍讶>^/滍専覡Z憐P嫂!qL?tT楔_櫢2吹朔'69硡lz減7nON瘁@ Hi扟9"榞Pv恴P爳3FO&銘<C0疗z鎬,R私躲f( +鲹颃時-Vz\ <簸#煃#潼籸'8筂籙旔C頱臝镣恲xpp$@,h"畒躈^O40眑峆`|爭砼5皰+;,豒弌囚=奢1瓡l儙8#妔9Y充呣:簖:PZWT邙寤;s鵂 +北弲b~d%y'凊酴nq勴悈迍es軁s譁3葘懗2傲鹷踱狪蚵afy) -苢亷D咺蓋B@#瘊T嗌,瘨綼蕫>9'笈2DR怘 N猅 ws磉飔羧 +,c!i*咘橬:2螾7Go揉顲类稱M懖氏*:8疥ibd@u/ ~渢廰砑竫蹋 熌d^(* B怉 +O+擊怯裢l十6怘x'=cu錐筤\嶢8辄诫Op +Q暒橸K$鄰УM#伮磲斻寀f睒~U|谉雥蠓,A;筽6蠴屮VTyx儡藼澵唓些ㄎ(0厡.硜黬茤弧攐 郹c冏寃镛22睮1瘤汕|s荿:T謕〨Pw便啃阈屈硨e!繬=顸珵櫂玡槣撛汶献醐8T/渹7獉8顈渴伯V=貐;嶹'詆躵(xFP7/甍瞹蟧Zt +世悡粈~n哭=*|j0'-點9=>烎屫浒蝵隔ΘI籯禞0r?橡4睒奧oS戯r夺.Eo0g8?>澡T哱扇攲)<甾笀尯膊u9蹒,`纎-检瘇ydd亞萛'9>璆1a倳FV󼞽=*M敎= 鐬誢7ヘe曺!A褡>苺 $騡鏼思'鳇O稡zRD9DXt:`};46 Lj Nx譮[紝魫;F蛥<6G'術谉筌x佴_08敫笄鑩猡埯桿 + }0J$Ap祯鋊缨z檲7淑兦v碹隌7晆VV壴P1寣8焃祌6鉯.[囵?SP矬 +斳兾9橛岟z~R (卺皽3蝬#4伽; #$|+;H;髪k攔厵13粝_^翕UK8'/#撓^h唅L幫虽x蹨{庛榕@鍖C 髵 鄐帟&c`撚9:K㤘s2咐缬鷞}h╇组N@Kp唤!2O痁暀諻eTRd牺:t鮎FO懜lH丿碳銮螘$4{W 3(6侭笞庻^`蘄X3菧 造 F臶;酊b牄巚埠榉+樯A q笎S礘扥范鏝1觯翇拎钕9蝳x$j ┏㖞糶咖~趑#.鮸酦rI;sP8(1=~礹;q驌?J佷@~釂噜搾Nz璑Yw阸渰P;J1u尒;Wq膬吁橄j朾縡f 鎫靷鄔泮U\ pFs梆S*3俽沏撻姾wIU驕!窍橄旷&M檿崼虔]蔸覽rC凅懯zp/Z{羧?儿崙驖'<`&C恠衊=虴'捘传2<阹D>P=⺶0D+~I}赛6鵔<被y藝S朶s隝*厑菓23麸D$ +K晽凃仦糶豥黪ヾQ賶ep蹖{|3T滗绶zb沙$G+;佷斛酊S儻敾觝* r"$*澾1 膍悃z憠蚓pA#'8膝# 禇喊蝭覞 ' g戸 涘醾c駨*Y櫜:缍酛6床窢韸\*l瀀煡5榚Xc侳迖鷡t-扚<9 +(>溤樹瀜貃 +nL摈囼靌埭d搶燄籎2cU`L騷~s茮o涘`x=#冇:H艳!$?6z┼y脎鵖g0$2@,`综襽++ 甫m J配筕酑yl:侂'恳熒芦+瓼cuJ8ub鲓e\8荖橍ㄡ懼9 Uz})鐌#g +爫綀殑矱澒巟 涘奕 +愢湬荿N}~M>鋡8豀K1実'#疨伻鲼l妊眽貥銃灒И*'^s詺虜<溿鱝 无绲,猵$纆干4夷酖<馦軥睿uE簫.7T[ㄝ@睿uE簫.7qQnK簫7P郇逷睿uM緧7P郇逷睿uO4华&%#8r9)蹧iQ'尧66g9|懜脙@%鰧rq;ia袚炣4劁b!宼﨏譄nwO,組<翴o/%7aI隆窻珎4舾u屹9鏇;  +O糖9Z!A額繀H篙牢s貆i憻攤2O=x锷¬2q吜'嶰<丂%%G;r叵_笄缦.xFp3欢 賂nR粠1帲?烙"bD湴r2飺鯛 贂 羱_檢溏緓?齭歟3bGq肫q燎許Ló3 列)旮徲4叵2[苾&C 侀澒鵢輽HRq览 ;P#l#*侘粡^19ㄥ 惉X嵤鄴{凈9^3(鎂<8螸渇⒐CTT}}pNOE负B沘,移wa睘?飘y鶜M +騝 箛瓽Oj痳瑸S(R 鋍炤莦C褰隀儠<蜻.A彮[ 虩粩3罡\G8⺷"瞈E哘邘A〇$ぎ锪';梹8糸瀓P憺'p忀砀}噊@媸[sn}靨 丘災鐝錝鍴Te$棎F?齌蓌厡i勆2 $鄑腼慛U囁2<抷驚L 备R#佚 81.@e祈剜鼹槙 H#)bWv鋥珧鈥$勞 `4 舵9醲艷湥鴻T9?邱5c罻\弞q`W;@橄玳@ 兓湊鐝蕭BJ鐭3跀嗼姺$p@i$ @珐靟謤bG蝱卪荀4[n仪 +Lc! 8閾岥R仐,U乛<莏嶘箯vI%埰a庸槪埲;檨q戃~T!憙rUO;ㄧ +&砌茗 6J餾戂髪咈VB橝 :pOA类騪X6g豎#岎匠镯(p (b橧g!x'R四蜂釧朢2A?N厍謤藔#末宷蝯慗&D﹟愇A/"*EF娹S伩櫁飨徇劓}吥 +瑊鷓I8羚╜7茕其韑彅忓虿7茠*硖1=9鼂'槴:蔅膏滀炟鳘睯膁眊QI 澻囫\]_$ #攮3賯X摕赩(云Wr兗怚=9<詏Q筣孎啶3湘(8崜藣変2}(K菨跙`t镖惵L榟诗|您 坭j6S鍓$攣子榍"-锣6 ,< n錖% +唄AG+畃iF侚6鉷l⺌: +U@eA.怘榍緖Pp9a煍笞酲輿j t?*,y鵼鐟慞鍋 豾?Js籫済蝱t䲠 U簛䙌)66觽H:C9镒駹N7 +3宺yΩm榔9蟌BI;'訉}=3A /C瑜3唿*0F櫊 7qI殢uM詎Q揁f屧y4&阇佘>#i耛港蹏>磪呻M`鏹⺄侺v?ui茿H['4殢4範鏃4翆酾;#彲<翳}3隌畇捆8苲s踱v夒慇櫍;gīR (输嬻ㄑ沯尪達?RyM$0箰毕c賖#茂MRG^=q宻I銱埲帴FI1类煰5Sl3笻8吳q?醾烨T肭lz:阋R$萣〆l鹓穨)Z*醂輬v#疧骲h弁V崊昨隫堍I嗀t倾庍BFz`s苮z霁5d,vcI颱 濎樎ㄎG9镓s3K睧 +鄶AIy拋#}:鄛9${sT疾K.p0<岨vz穚銖錚2哢诋\p始嚪O +讳&疔湈;w嘣污eV轚7暼lq? q痈げ$@X&釯8狸?椏Z慬y嶥 9 煋! ∑襾I;<t#毥枟橪嬭勺囂W涘`Cap0[嘺氅b鵇l○N(=硯個芣罷 N秨*ど!搆> +~Rq娱憞.I,Xs螯鈷&.$vV苨组幙S@>TQ墹!>鄎U菶惇斳喋 I#9顇阙(79闓n9黫鏺竨2芅Bs想@祛 nyX=w 仦 j褼琂歉6:w瘤珞λ儞!c6湑c伛肷J娙?|8倅聙+;B狶[鋽\*H$渟鑩fc鲺|i_櫰3躳仕61祳煳予:g#朑葇頉pXやgJ覙N蓵6憛Rq悀nx銦猠iH帕G籬)灱 寁鶷o !I罸绉@GJ渓ic#鎓%廫巬?请@佦)b烨w蜲Z#峸0崄Ul!\c坆鵞檆n8蜙\~t復FGI(q薮##`#緎毵@漕<鸖xYx s签 $7d<錊蜝>a;A9g鶷懕蛴vY鹃;q蟬簸{乪r漶?蕝伛b5 孒`x顂D萊8o槕藂鴖耀Il#昑蒴閂\`崒[扇*E蒹g=x輳枉O悃璄箇3s_z憜釋懭} +d幦7:C畃肝x橐 窻!V笌7旾pS冊庿F笔嬺?輇b9櫹隣h^?,瓢拜蜸濬29% 笄駧瘄t +芚(/q炪佄)糷挜Cq搧惹繰躤9002o芬撮簒 鶌昀e=<銓{>cr~义< u牗-kp +<恒摓 +樋 h奃扝N@$z濧4辞汲癝 犱兞琰mp5莜鱅纀@8~54v寘v )鉯=F\裰$DE倄鄮前i霾l潕#,d 讉x犁痏馉牰*妵-誑zu绶8ㄢ墥R婝!鶖mA软撨 )"E蚀夾fa吽 銣牗Q鎾<,俇Y9訐廋@蕟Q憜 +疼U幗= k T\*鐪q>轉扞∝@*#走唛拥VUt屛B鋪麯沔>漼@盶s1#h#8=8踵s@崉 8慄#c媪8=蹊*i(衿豑I^鐬qǚ8黑駾c#雰 Tx釹"F琧 ~寀鏈鹗惉Ё蘁虛oj惓:瘯 標&V<棷<鋸#皻I"銩礏%Tes憵俌&J鱘7l庿鲭鞵37 n:u>绌*+,寴垈湴,:閁噮6"儗膪羝}(T梬惪箭運繾g銓_Z絬#軈Q 犩熸>禑7z詫r踌~镜pO*饰Ta谀a莑=h)褷聠>橎⺶39X乷/専鹣螃+L^GE蒔陌*9酟\* 藧剆嶰'觞緮樝枲,!f +pq倅={v転y|漠缥I黥窥鐹HA*[4n!s艷pA苢鯛瞡/镫蟦pHB8酽g夿軁4?4櫐鎸隶\2醩靔< 圡溹`m隦23怗2:J庅蚲+33諌#暀 X煓睳9髑錊\ycn%G饚秒芤 ebP玚c髱Zd蠬捄$凵(r=楅G賓PKc8蝳=h鍷|彬訛啍8坉兀绲0[1嗪幺殯3'鐚:惚 WyUp32i$翲p;觲P閜q溣DS朑輹吾袔,銖i9#駈}猠凥胒(帔席 m4+)m噻#=i6 |踏8a代湏请@晼Wye AR:1旭榖eaPm +pA蟩顇螼Zm床鶢6婷cpn=髮?: 辠b渙嵟q撉v:鈥)歔堫\.7廅仃zs蕙囁慱1/蔜Yq> #T騉"鼊8?绁K鍙5d嶥 +9c3莮嚉傉A穝 C+ 蟽蟘廃T√钞鹭6=N垸%阞蕘| 銇胲烎*O%Nr蠐熌s向(蔏J nB$ 0x翳})涅*鄿|噽3j/3I#!.@损x泓奅_5YB榳s胏x顯+(+輼嶺鳋;".趴x藭柒B鲟麩覜3凇闪#/囃F上q揉鷰h#;懀A;*2"8+9~巽犉;U#弯&瓠衫鈺摴圫8鐜\y烃^鬒pK:e隔鐪=M7#`竊J橥?虶擠繧';x?j亷燃*+ 懾4 詛 p腌摳N8$抶嚣+%# W螸灊徑B葝誘V~RB羋x汤圌p嫆Q巤彟3B夈峍8'9蟐翩嶸懖+.2 绨跚|&鴲曑妔24頤Zj3骮>`腱{妜y5m棠鋟蟔zz鹅餏929(VV我=he 0zdLo_滸 u鑨4鷮FCd粨焈䝼rR2孴p湊q座驨尦Wu2旯绶zd砽媠8仳z羟4M$8蹒酴*扬t +盿 +妘d 蔊抮恍u<=(劾慬⺋赮⺁o御,s↖W敧 +'#帑g廕怨$r仌`G,N袨s舉ngi&阼6!;6u'陏頍F;洣Q囁络墻跮鑺eq扥q蓼y$h咚j蛤C 嚆噴26d卌慮Q鰮嵔\徝5鎎L~韛n莁;d`鷆蕲掁 眀l1 宼\優课狵逅朙a9#4悪 +爔@\呬 4绒FU(d噡Cp3蹰M嗆崮睈cU^I=Go螒說 +⿺&o$:c餵@C*爾4(耀7蔝睴锧&1]N鍱 +U瑛r8?缯P2L娊Z2C缴=-糉F嶒 N>裆$瀙 请颮糺*2嘼'i=G^盅<$T8^_8㑳T0H鸘18蜪8d =?袡M背攼佋幗:UG藠9TL·,軈身疗3迉*tN鋛窑慥7?殥.嫦E<鹚茹璕N_儿S/蕝Wic瀝菕H(&浭孌(P8鄃8\JF2黱n; j%朙濻[钙s䙌hげ,7g佦пN7o>柃0娱鞷蒫9? 慜氵55緷栤]蜙8s烚?Q3H脰橼濇藴锴衹+Y羧!J睋?.K{庌納u穮.F猩峡搨1黔e'vO~=纭I)l寁鰻 @`快飨譔箴欎)h畍zd9FGR盃 諵潦剳轻訌/殹0"聵掳蒈s焠熚鶈P0A丽猬ylN2C1靮冇鼮x0*c拔$"&8G輫剘扃''镾/-2鍔錘x恪翥痁掁鶆顆R#+儴~归RD幞岾e.厗:燐搴cCm<$帯咸蹒诂槃H#)稡~iz 绡8磯$苹*麸揤瑅0$a絸 u现⒍扝趘欥?@O m倾詝>#C婬鉧/$T砥Fn:炤範H '1惢9H#齮铣*繑# 0b@$?嚡供K鵯Spq_=#9<叻5+*;( $貅鄜PieU昚I\1#>溏瘵简|v綪;q儗?ZE吻H7萷X銓灆1N$ɡl($dw席?>鎈ya$弜$~)! ^Y#$l澞d>掴2I鰉{;樽儗dg庁隣h炭X鋩匐儜锧 ERl駸涶蹰,%鶁蜾P9睨5[ +Df.e蹛;认┢j夀@ .9;駬渵#yw筈籲鍝轻Q }7芨鐸1酊躁,p棥<凕 ;(oG,湁 9'8 鷗訒|穓惄潾帲幠熔ぼ嬺0蒷u8?楎,M k篅9-!?Ё酲6"7赒faq懬c瀜想Da嶰薇a78鋠ЛM<1瞸括, 9';&赬s袑t鲧Ua淌ф8O糘9$鷡=Ln媜憴Qq鱬踃w9盹謷 5(胟顋圄螿豸酴咛e&7R3:t#顸h1&+脺鲼燜 橭%waN齢 鸧K疌逮U椾bXv煏hF凅 eT濱%8绁46I(<劅峡镺罰[,矸'藇骲I2I#O蜚熉灹_1$~t欄 岊1芅:Q窫i 聛抷?=@U +搊突'1趥爯Nx橥BYl鼌po\u黨芨r珣繺撟縜覜y q欠恳; 岁{sL曇Ry6?Nl媧祻$g=篢 礠瞺飍蟔?Z拃 +h*2恵dSv笎惲悜陵8睑~礀錔钙闳溞RT`n)瞏菄 7r7v齣YN硭讇rN1趱6膩F1>8=鞞 (L(膻O4鷑[v06惝{莹寷漑s絹酂z (@<嗖?J]8l灅苮v鶅悭0 樹鐪誽dX咪驑a籭@F >脂 &>T\IT钌D囀]T狘T扛EvC? 嬎d滗亙赢}zb囂毕#蔧捞H嗬刿飵潊O4w恗诂猺錇:髑犁璘圑[蒼+g 裣煗Yw扡B7s丬{髁鯛 +)$V2坉ir鉰充般仠撊<{煡7r8豤搇ㄘ-鴳{擨$壦H]酀pt峡$拳NY窈0沔1理苃|惽0v翵x尺識貕0轝22?/q幅rn +Gs0q,@:8該蹲y灶*0<$撓n=zP癆,fR鸏姚{忱秕1E淹斉"*鼛8癀驲T`庅T|鱃蜲蝥S鏡蝐撌 +坦$巤駸N腃,p﹒紸X霴禔㑳E贖f參貰獵湲;掖^I^A"6a寧Nx=鹵酺32愌 皰4鍑巠羿}} 6ピ樖v済?'謬F奡l瘤' 儎 n碛廃雯X蕁~Vt菗zs?聅I+r尶uF{ 滅鶄h嫆釋徾;pc侙僆s倅T鵾( 窭<Z钡詙k 剺遡郼*3羿J夽^LG4|獝y'畆zzi崥?辩j0>c泽龄巌X2|椦 溏渜鑮i懞D猂L !傤闍莮樕胂^船^8銯fP娝禽?0%W Ev8$鮏烯;囿熚聲;緉N?糜< 醌BG嶮崅*A鶉3䲡厓d 舌鄏z跚J咹踚+亹3襄鷖鴉④/藧O>綁?醓YV肝=*硹萐對aHx91簸E它缅n2JIW[碥囃唓渧?绛3yH膥Rp粏釖=ONG鶋,!>钜渃妽v 3郍~偅P佇厩>r-NH+1E谫#螻逫鍏庍K尐-9 +瓙Dap 鋘<Z4聢滋辳鐲dY奫 +&'vz齵冇髏R飴T2璎C>纷瘰H泊韣U憳傢輴=鱶S种/5写&訁聄0}湖4 琞1盉6〒#r熽荥Zk粻飽寳`I 零幗)L挷菛銅1*-n杁$1y鋨课#3粋UK`$``蹶7捽兑E"6溇O\襞皹- +暼`\橚鱨q姅iSyē'>:H鐏魻阘蹥$令?犁譓k儇 銘卓笮U涤Y2痛皫闺鐵qR盷氏!嶧y胄熜7椛mq求c慛臖yl9q轷<硽X )-我Q强赢驲B敼-蘻踵`s>)+昉 s齆}瓜緌欯X鵦k锣w`p~4`鼞肌\宲;騈3莀A@ &赃縦崕2F =r;v肱H!x\艁鋪灻徥+腟o攏8*嵸闊@{英 汹}佥渘蝧子橼氫偓0仐*{倇篾T耥)c岒蝦H${晈ぬU $箭q*dJ撠+鉿3憻A熋襽墨$苁谾i8\鄏8=嘽OQ濫S逛t儕e蛹[, +aT <9漶墼T籏3r岜筄#鲧幵qp闎螃靌6=:褾;嗛Qe 眭⺶誺2091吶#灍蠟;b4[&Tc凐* 昐m炖d詩S踢!胮0rU[廀黬0霄旪領%Yq1齮獩'I傲718庚h:酣垏*蹟d炟隦撇齐 +`s郛?Z抦牍蛱E )\NYG蜳 泱锧|舎RDr'1咝噪Ghr =O$翮~<2矊獞匼灉JoE.]睊?73香@嵁A珏>銥斣n闪}鷘黬%w0`UX刦1羈=>`楊gzFx螸3胍蘇B7抸汴3邭嶣4f7T溼靳鉁)昑L娛r霊0齮袏邮 +J児[瀞;:J~蘲纖gw|c臾差#;J趿@H悆茹丣`t隌圲2k繟1䙌))b筶8>叵镽獏ぴsFeV\鶁W 肉$F *糋蜔┆9凇鞑0a岓嵼=岺\l? +M*︰渻?帴3oRJ╇鞬d&糟i閼廚詻2+繾畇酊P片 槺49m泉'$QK澺洰睿埘9%HRQ嚘鷥@ +Y斎H~攐er;x橷e ,駨誑]q]糾犁駹F0鍑棔柒Ac9阨%rc F=5[r喠霧 &镛mx#糠4G鎩轥_紇阌秈29!営讙hlJ虣 /R瓋:~Ds鉵馨蒡:奞澩1磸"欠q沏磢hA鶌囵蟡uE涊责例0@请邞Of3倅仛B檻\帑奣遒砬簦j-伕実)4趢啾86檤&+-淳89*琜裔d熕>d熌F6鐚 妲f孍y=麨濌綳:珠涙!橣98锧Gl濨蕚s變冇е$Q壬垬g` 2 d蹶zc幝朚轑閨逡8話媯I$n?(x4XC)8懽侴狲H1l馈Pq2Np{Ugc ,.HX8兞=F巆+<丁 +.迆緷x苲殅纳雳7D0R狟'庉OLP汙|"仕斴*踧!篟题HB猙78e'纟 .^hZ5#'饈籹QJ殇)R.1蒘H*IN9$`g樯扅塍v\拔8=沽鳔K晼T,2N阌躎Nc潳餡 ~^7笃 (f屲;2Hiz|瓕駷1熃P囔窉]麙UM繱廄Os屝1耞(稬 L騪篥銕尸Ⅰ奉憖呤B扅Y箝1蕞Jd\+o]慛 渢靫9贏(g,矃u.1瀮=黔"埰骟倂亴郭O<} +2z9`Yq0H<踵S辰v懱j葅:濰=;耖 倘嫼0^7`銣鵄_A@+瑴攘- c闉~>?10{`熇廠莏钌x筬贘,FIㄧ颛舤醧鰎爨A鋘\}幼走戫'@㧟X2p9耜{知s嗘8鋞鵸鳗鍬妔!R擎<澕zJ;梞翊d#鹑 P懜<佅L<(2@ B甯酘谋类鄒=O滙鞸󸃱笇3p#懳A惹^偲hCI9 s=殚Э晅>ě$鷇q佭鷝%跣VY"M爠犁<齄慈y>u 貅 o穋#鲨;SWO-櫇a6亙侕傟錤&B佌姈DP菐9:O>焱!s9鐏魻 囉EL伕礇$c糡q凇Tqy蛉B岜3熄5弁.叽逕薇('郛>碈H呍侍 凗<宍鷾q螼_*!((蒻1>3 #F8悅蠞7o棫9昄ATH9b @倇g廽哛臆y+餯F酁OLt嚳j勡M赠Cc嵔膏s庄^y-$y!8 熄=*擓褖;)$c渮g螵驸9$Q>y菠鐚w鏎泲: +/慰2拁a:t=~冮MP粇醗p K囿冴aXb怆#潬6O塑餓冷v黥Д腕娕寗|7N矩(h2c?URF `9#7蕿臙掴洆$nR倨7#滯灅6飇l|)穅z訲瀟2櫚嫊>淭戩抦鋵鯇+徑徠滀+9鋯訬牺懟ds疗{`bB稳酖-*F3甚)n槴暩砪黎O鍦}i钸x 惉89ЭJ +fM  I胄N玸堓戰 d8衫┘蛫婝|沏b穇\gZ尙ダf眰x阺術4∧惼wFy滚鈜嶩咪Rr1脗;#amペ勪t楞=狾鵲煭D〾"熁E,竆(鐏辋湸 +穑9鏖请鶷m瓶#*蓶+搥X潋3Nr╙澲<?9秕4欩 +紜.骁躦驙湵 +a 9' 奰竂' *#^=獂験#)9l凈鐘dK磮乴E:嶡<煭= +時9膝0D芦卾搧拱s齷;橌8-tRFzg鹰<枅F n浔cH亮A赛駳U辮[h鄚1酹%x"XC儴鸇L孯 dpJ灴J戃&荇c岀轼6唒 c'忦菛D[H q鴅攏'謇亲JU輳rz褛槺潳 寧NsW4Y縻n@R韦32 熕>躋刀@蝦@?JVP闡咰 階PXx麾牟H$c#сJ3. 8 Zr崻Kc龟j86f岦瓬醻g撺=鉝旗耔H,+4圞卶笰t寏t-釙稩nq尣傽v岇p2M#*谩拢FFwq烴{s妦Yc緑窝屝y`N$U# z轷颣扝n焃皌 +衎*$ 阸謤09Sd崋鋍8?1Udrh?+玶Ny{侕2o觜<\獝靝0=y嚣564c斡灱rOZ\熀漈Kg鼩2飗r 繇( 旗2箌偸秠绋)&哏柏$ 9`r0滕S%u颏鈓鐤滬 +k释.T愘r2A锴~桟 2K"搐 糌r3撐Fz鷠i"**.0榉0$鷔戛an蹜Id-俋觜T? 呪m郺^z`>?銹^\)6沽讧x;;:#H櫿紣99輲}xi 晒K夵%c大濤稁{`v颮K&鮵]22婈v凖I鳃s顯 塭奜櫾▅.qzu\P驂h晞奷m彆鄴潲簋$幮I>)$ +湠2撶$鉮苬煒滮F@鳡 +ú惮p +吼00Nq专滸橫殥Q%悁NNyEM綴a轁踂渄 J鄃炟舁顖,翭 Wj寏9鲟愕5wK/櫨'曖 +璜哖J>齨粼R8R扐+哿O 綇NJ扸S*檲耬]詀軭n@蟩陠H竔+餻9=芅8苃X86+H幃踗帔蟸冂4謆餒蘗b.D鍍g''}(崒(蛎D>X鵆@廀鷊的#愛Y誜(`{pOont蓈橝*勻犁I<撉Ы0<1 H曙#锆u緼H9FG*(O, 膅>>欑#鹰6t,矻蕆郒'愘w嵊佭x苋@P脜_;籫sP嚷6.挵媖櫃9#碓U橪ghr@-楞9u9亮GU誑@惣裼鬼9vv#縿!N=H=鬅璆#墩嵫Gt韃滖責|X.pA9搶=y=(=箯`\潈zt{v鈣玾lb鞃╁@U暪#哝缲S埵瘣撜s鑪=;昢 ;e倴X笥<動覰欅nRG_茎N1帨殖蜍(匸DpG 衵Sw▍土V虌撌亴搸?葼 涤#鶇$=3::訛哪U(S駜飪:匋卯+U翄蜁;錟[o|q恤肾瑌J馽xUYK鵦/湵%H<廲殚@B睉嗜*O!z阊唖鐶j85.$樥傜T宻OsU-鐌闼揷"px'岨Y鳐崫爫郭硢c>,8z轩LQ鵱6"Yp0抒邿jj<e,))e噻#wQ0zv]F怃pK 2s赭4騸RāIFP╟侫=厉 ザ[诗.鐰捂1儗q熚楤汫>c,r2鵓蟗Fj$翷醂'?8鐞v駻砦 +|j|荄%`鍚e'焩脎<)懅x幮粩2湽3旄>酮驳谢P窻W8?愮詁!QV4嬐~0闻扇荁:縊胜瑨l糴庘戆*冷}z) <膌暟浉$}s湉-蜛胊}9躀d幅4:紝虁旳誼v +佔##qb怭"侽1鐑鲝艴弩V鰕C晧幾c繺gg忎佗Y葶@J怲H9I槊wТ$筊%S術懽姜蹡s鱅f 膧9郼佊iXnI唚`傘帢闉尖圣竢2哬rrO\z鼹R\#墢枴羣-虎禓$烗4$W (扇藍g#驙(2x檗愵c$qㄏf9鋵衿=篝 RJ譱3宱c蟎#膃A`羷崄:嶨?A顯 eI'XN懵#宑轧 犹Q凌6'灒0V丌aB62;胶夷⊿钭b怗國佸)缴d,Kg切b堶y优篖鉷bs遮槮G碫O輵鄢艴ゝ#xPP;儉IR佤"v岇鶙v[ 觻s上殬梂brP v5 yD瑱!n7鋷1眸造鴃c 燎s@g杝娑猬亲=E9ca磖硸;話1衠翥酾"0稵苋罖蝫鵀 0].葼5G╚$98鐽r鳇馧塿L倮i1変pp?*j@VW;滅 1<鄮)茇@z鄍x( 碾9=8讶仱X鲹諉$漼胄愇.FTc恐鳜p$襁牋靿F颩酆IS 凎乥r=﹏酣C禠穠觾襄熚怗x凃亴O鏠鶊&t孅N杏攸琛皔8荙﨟俭(絪w刘蝾粩A庶7?覝w鶅vc憥h?挮疈:PlUV6_紈&}y庂d润c1崰y|c^C鹰K!騝U@膿柷滚F睿>骏& nfS袓熾N_0粁殚L7!2.\巬騵6q9 +紤減$粝@x哣,┝簦x6su:+)拾5茒cw,虓疗O推89(我# 8逮敶PL@胮<屼溻呣I/纒脒蝽O rr朴孯/ 懹9螒 o^7c溻堜穿\羚'濭n19bx 忲O(獑#8蝧彯i摠滔 p絲鳅鱼b #!8䲠荂脪| +們$s夕8 ;z'=鹲J6硸淋.H#玄5L#v6銥On9翣吉e2rH#w銣廫T #滒qI)TC!d侜詌|掽喥迠x狼^E4嗃l獙7Q瀧u舄唯押*n@pU:嗐搹鼋{v@E#yy社 3e徧p珻G袚; 9& +6懈6:t黿*夦G丹~r矩<烒W?叻ndb1 pl滝U悑Ie躍{)繴n89䴗qIF觐 q;1唛侢4址X贂蠬矿蛪社稱9惜8!3<gV,!'哈翻+>鵦犯!,y蒖@T 蹁酁堑7dc.&YFRq訿`傽 $[愿s籯n'FG;I 霂Bc禎%p匴)椚^$|譁蓹寗y偑Cc柪9#с颪<豅癌dO旐 q旲骄>S紐hN寧溧撈y捉"旻溔か痷8 檑譂7透b9$ A;瞦滀幑飪跊(R6掽& *\ g=8`渟佽(+A29pJ ~qr娚D懚繮 3ji坋I ; }徣煯1餘9i53骞拎t蹉:<+怽粀8凃漯x腴P瞁F咢RNq扂2:慥fX;鈈X砻=茹p鵾v夕j-畳鍲TE嫕顼q竤设s>$2獪2齇疞渷焇鮦祳>耶覤8t区匝$q萏#r垗陉p纐腚H萩20W*М蚜^I 1hx浯奬7 8温膸絿讕擡-忣布|彊佅崷├w ず淕uXd" h褾>U痵狸9銥縕訵佸恅>荘zG瞾 唀思爟穿嘆3躶齣鈏e-魁kl#i恱 +6岅*珶B轟廞齣肗劉#G(6根8┦⒖<呎D胘飜镯題齣 +y憯l|s嚷焅餑ˇE俨d欆 鐪圄#9=猠.Lこ'甍'鮌粩峸+|蔽W鷰驹騴哹N謄Vc;泋I x?6邨$裨b爳 栢+箳B ) :伕 渀思宦g┫ 炤赶 +D浂 跱鋌>Pq{.肽 V嵥怓p<#忿#风S}猵7聪騺唄@苮<訐蟡袝K珗藫!YA仁8鄜t廂佢岅孚鲤汝z;銿hkNT9?籤Ia.朱OK嫰0樺iP肮$T 氵>苺4c惏)M煦h?.0r;貘犳%lp-旴悌蝦q湠k5g篕匞 厺旲]=:?绛'诋嗋蔖(贙(\撍pz 檑j3碕e薱,鞀wdc幗s\羟蜌g#鏗膬*脧__е痋;儮醧莬騉\宮n2s;乗蹶=:屝_歈",o/退c$.靤扐8醌1i层鍽磄r├8蜛烒4yV9f坧 +#戼S孮呛靇藧8 p 离鞞FS睔6P2u3#<啲繡K 仛&&=饲峤A <該C鰛ct耐)a子冄Fy^礊S2*売狼9鷬l2+v幀K哵蘋}┦堭1錯%9飼'鴝q帢舂搇; Q扥P9鎾[p瘾a屇_8袭0C21佢 擮m碐8VXF9 ↖$&Q蓱2~㘎U唝1%Q軖wB 砷2*[w蘜ZY必99'齵vv腸晻G扰睳1凒銑嶱 i' Pw扷诚c涌伐$ K> +1#錸Lcv3z訝V鸏婈莫佺q岝樵涇b楨f谴e稖鐜酴+d軂f$N;}h 櫂&3 +0晤^$姑aC盾{qL礟覱&#;翊8<撊9T始←漤E'(袳hr= ~4&I5署偕泫r(恆乥 萔9S`P 颋-I囹zL 锸砢m趚 煰請哖錦d訙 u~T镮c侼20"鱢揲捛Ёn L潍嵞 sLPd谘!L跎vI$O9 巼燓縅敯u +2xcd靃$扤⺄袤淔懟鹋K` J29B9 鲩M 八胠^z1$8:P酄F*8滻*C暳隽靓aa蒭>呸噷<]臕90紡聙腈.聅芅L嘤睻$g遴/?Jr憾v脖斝/嵼B侳=夛䎬觎胉|膓迱 dnV撛蕧錛歖<郻堯 'I=x鰻材甦v?3衠衭/嫫|vy=?:z&転琋I清I楖978m+底r肥F茜>+頶8霝ZG-U絷 +_,琉鄿鄪g&饩X菰 軫q灋溡X昿W1脀阹{驲o軐^闺炥W苰惜1惛GW 苢儫鯥荍4垓硱q悟zv!fV'2z鸓P述闔X+渄 +Q\屠銈iXi`ZH誙兏)悃躊嵺嶡圹瀓9m`櫡K +;ca殦o蝃'憣v`$ex% 搹S 72搻I8雠5Zdd 蛦稢蹊*|qjv0>c2q篐喴藴憥?摁鱱 ##>塃驢6鏶<湆烴澘JV +K8b|<>(L$ +侤RN凑r鄍{P突螌゜9A'邚L熇T萣EYd[*莨@#:㑳*<繿|*-''<(澨l鶃1=聒P.罻RLx晞>頌鳐惯G*1愹=称ry閮硟n随7b@88?$&[]!丼脉?s锧萐l体渁窇竴~PF21镫镼輩i蘋顁s2醲$`倾W骃f荽6亚=垭U爂^B憹7^~Q炃懽熤Q@蚱 <摐渦鳔J慘q#K髆;|读緉9jR)UV0u鐚|仫5栄Q>a;浼M渄 恾(U虋.$鄃*9繼竈jw1WQp昖鐡廰斾8管Y冗忈髋BP癧2eT錺K'侂@ +娪 嶵&Y2嗆虨熕ǎo祲藽6p嶒頤' W湉_oz欵 璸拻抾洶鄿渄c芬槫]De1u  8镉e*決斩F$n=y胱緄`GYB匿M葊澨G烎s3桬X'=嬪<=E5vJ兲孎翏8铺e 胴{鯛I5忳nCm@葘:ん#03b9蝢撣#媝簚a 渭69楞丷嶍и<'槻 '$胫鯏錬俽s熺苸範 +熬iD1洛I$t繽°AHO梔庡J簂3押岤嶰Ojy_x暀轂=齒 笥尊ヾe掔匼D岇39囹O?Z傛"f孾斊炀+'縭y>焃GeYl惇yoC>笺克鳶詳墺Fti湗 漠:w'俋q跀笌Ss錥袋艀 驅c?61赀︱◢=秋$Pq磏\煯s垓臵^(9燸鋼=#4ó f惢|(8焣侜Tn?糬髝rIQ渊悌鷾~ 塛L去嗴籲衐ak7p{刬38 rN郼袚i爆擓_暧 詤樌祥V>e.0K=苨如磅 +銯博H 湞6O瘄T2P 爘1幑雯&& `&吆x#跸O脢玿賄宭m罎╲%艫申3拥J*]澑8,}H=O*I.a轕`r!攷}苮摱Z2 煓x<頟8鋍銝 +P彌uB_5RIdq籎wcz浉疸宼闓=徑H柉糖臎W帢洒珏敮湺 +=88蟴F駻w<檊!恈溿秖鲄:H觩f< +9W`ㄉ*;~)+2v偸WvU霡旞C瑊J懡X33 畜摯4 +穉酛鄵屶t 済9幦196儌 9@3隣Kw}猙 P罽J8躟;w﨨峃佶 髳~iN>逛蕗"+0堜?/螡Kg湬酏M倴a醜鈚x79诪豍3;F>R 鹉潸徦+)鋻1廜∩⒄59X蛰@\郼#卓簪C媨噛6%,i硃0脒熓$HU魅 +邃x灲1I=蕾鎌頨B*蛮萑'訐殥lヌe +垻B豝N3擑t靓,od橸s戺%窱>O欶c驕 兾匂阒#褰埸爢w=}1鳶酟軱閭硕2蛯 灍Q鵾 + (埳tN諹窅O詗?9y掣%骩虖i w戇#=w-粓文$m鵶湋雽缇y5+)掆鹯69 銇=:w滭%>PX冴#卂.- 蒭昞 郀1虸&( =N8羿囫@怋J酓尓J:阈搁B).=诬亷x$Gl啥f +x愮#s*K亯 禝鋈'Л"虘c滜b8L=庤澙p螦轱@蓆X幰锘=:9i.圆,!欃鱟 q镄8Et慏睭S亐7琰櫡0*3橷Pc胥瑻 芪Eyl`=2G^爮螒Y&?擣鱬a蹚訰紓賆7湒<疄WbI樸yl惴A@ +"U}$$=M678婭 凵芆a焣NWX鉟%鵜聠8鑮:襽流慁$㏄v` 珏銦萊0雮 謦f!AQ8Z崝F嗜漑{濶>恐渽假$dt悃O耜iv愘S9l漩潻7銙A0b,融G^z䶮*偅媟NM#栲oG鹜. 苢莬Pwep3蜲o髪 羪肾孎A郤姪`9邿xR尿X澕c狱鶳酺鶐愀蕗D洂 =?蟐5P 3蜍 邕6窭蹘Ny:十a玵e鏙_r罃孵珨P.$.萈灉滛镆5窰囟~b儵莖錖叀嶄g8聨r}I绉謹"*醨P3翮鹋D泇 囝]9'├1R蘾誁(鰭!蜧L忩)\"L +d=< 01嶂A䴘O茥2 e鵄竨李1愈妞嶨A1$7\)褎悪0!駟9鼼jX⺳刦 *FA#9=p0疀N2\1-撉A扐9阩V*V檚嘐喟霚A擎i諚蘕蓢f恻g 撐y鷠M 81杠;D,''诡8榕F#翯鰃蛄麍陊/c尀枚)铈]褾孊J続8鋋H$< +h藞N$9`顀蹰敉)u诃H寑¬侳8n溷ёか@蹨溙剭羦挘#螵寮t鑍Y佛8鋚1蟩捉L )梫3'澻t3礐6Zu,v紋 吏t#o驙4焍 +[|R◎亳1苳t蟘羽ǚAsp憪遺(w*8脒=;T2 ;c畓c0;)S蛵<泩袆!僁墀土#幑?Zj刹e +t蚱莨^瀮}G覙逍帘坚们喥鉵珉戨姃-襇.櫴沽 廄伹lTn吧0*7常)$t)9(&B廨#w!狰I8硇滜香M浱悙TE3呣>S=G肓臝;6螜業O9餃zR羭 (;#8S歇烗荺麈+O跺D抐)紶) 驗=睑P&嶽坆x$8 綺誓烗2 =酋 潕@伔酁:鐮zZ詈O魘7;!\憗靤胴q@>m眕汥D褍怉伸X戂┼墽Ugr?^r}1?;褓胠釸!@f$尀s熖w猓H丐袼蘢豹洇镳4萴@0熨4胥岒>糍鈏缈杹;銆{磓0偓僩蛺顀腼L穯3 +<`岂38蟔孕9J棓臎4H$抮y绉е:o伩c>A荔d倨s閃~淔汰+y羟#熖詥 XQU x~\鷕9漨簷劜>纒崱C1c腚氀heQ蒫侫,W=淭*2A溆L`泊巜gk湈3謤迠Q3'; 锴qI*胵 >霚%I8f欝03磬dt跬ㄑ&*轻(耶@!I鵢 g憻_住5ZKF栧c,P[幟:c熘1V*駫y蟡lL$?勳陒s玉 +廳沃6缵[ +z駜>nq徶憀B36x邕渦淯Im邅0鮑荓' 慏H䌷6d蠵y,#3噖v 笙=辉 10斊Av轆领>8酴騒+319_nx翥鶳陯"xGc 梊六桨L詸P g!G$3Z昚&is忳G *蘬 /b:4yxWs 罏?^*)$&懚+m3濶:岳 + w氵脍碑.#2蛂揀馱 + 灒#遍ht擪<怈>釦鄏 殍A餃褿$F谳]L.AN#q邕>齾B伟[ w扝星-蠊8OO=鼨'峈0朔k飽;@>鬰T8 W'搶 撟$熤刿紖堿曃阌Fy鷘ㄋ壡$#1")-.q霝鄮蓍遠v$L娩^Xn 巋覔 R笕槓 G茑髑銡扏)|3>3鲃x蒕9滓|樞汽哋-'g烝搻y酾(#*朠I2め(89▎+x蓣F)1(捂<?"屦觿;W堼楦阨憠穘l搐+A懭霚緝撨欵"7匩>V9@鲣笪{褶m]阡m'g逛c#鄃/樧 +N莠TF睋 ;qC $CY倕n燂龂83I#G'wS彥绕H q<,)#蚍s侴痑5 <罦zBAXt苳d鐭Vπ懘r殳箑霝;鹮燄鈲诗1麃恶兦p?I%岪萟藖2xy镼堌)#趡laO鰿禁c<鸖<#虒儒窕~n#g衐v⿲ld;倄?~B枒瓾a偸~紤*E腀e樸宒扢E2q偣 +縊=4║XJ惞U1;f3 澻98U9z阍釉1轉U 纒E纀虥譨9沏劭^建n +:゜2Ox=9?苺諫`(rH +?x6巬s熷覠禎胣"2樭烎+$,H嵙Vs(雽CN蔊02 r2==VTFぞ崃蝬?楃Q瞗+惒a7GN3苨烖詠3尣 道皒\$芖* t祸98e!8棷<~瓣H顸i5(敤芨'肯z2w<瀙1苲~\P]/8W>濟zQ9躕霑\c姂]\吨 脆噻覛T浼M寧?*o谭saS1﨧8+!pS8茾辅鋌霎嗄塈$. 揝284!w0牅麒>斷9'-嗢{R.舦U1鶐\鼾) "*wQE鋍鴽:<-0'8銣贱SfM8c*q?灛r:t5~h蕂rG蔢⺄ .x-g颛d#io箅L編9婁# <窾 (8炵( 哻抯佤mn< c UeaB($98`zG綻览 n-胗甹J`"L2X廘"橳e($Os覔鍓s碼GS)H$x隢 T灙r?楑凸s礖釘>槻#虎,樮j 霣襛@'∠鉄M`I\60y悒 +6丬T*鋻3JeH#8鈶梡艸 (锧;d;K;伻1愚櫛抲蜚 忦幺曊|詒琗eA匙?1Y劗1嵸 =刮腠@汰m1嶳>魑rv懽颉欃鉪E% '渃淭紋VG98谅恾z鏄K飯:鶔(-騹rz屁撋濞P} 闟蚍C捓転&瀬呦X[g蘼0|蟾g?4釼9総bG>9##撉>l 犒 剳朣S榜剮@牨$倢$'狅弦鑶s涙8碜锧 Hc3r90:c寁┭B/;A<炴珁K乒R籤2綩獕戩3![鹀9袄惧e鵉!睘:8>X'y銕@鞳笮"9;Q譾驵3r剻-如,O9$3讇*!盭諞v}%VeTc崵鹞=:G $涀)皅99泮&u槝|寎q荘14+嵁噄悧悃汕閄")壤⺄:哢<ゝ蜪汕覒c1杄 +吻$q滜绂OZ 糆 +H=AO`莗uV寖荝x?覀V@押9$|米酩x憭bwp:刾qK;1!Nv錞8肭^答(垗I艸P茞"﹀櫠醶淩;3影觜Q. 瀜3A忆G錋%h`騚O錔<能顅聩嵜v<`c奓 c#8#颚粩|翁 U颪m呎[io紶蹉更哺C篖y~耕抺)W2脟$#+戏zH *缹彅庉*gL>陵9{鈥 7熁薒c篌}:ZGex+7uNy)卛%%P岕亲痏皈葏觝vC旮想@幻鄴舜r@脒艹#8沐*絹鵋p'j倊"嘢匲@0篳椎5K珷G沐'?Z懹vIg>8$嵳塽%佨搞=>斣xR屍1#H']牅a懡q玄u噊G鄭76跋寖:v璳}溷*H8$tF}戟)竺1硳榤現郹鮨PB(軤 ,H頢,霝pN鈞鄡怐態阑B7懟3伻o娄穼D#1M籶rs<巟鄮85%簠嗆DYcFe;巕惹9湫qo编们%鯆毡撨=rC幺鍮姌╭磢顓{8?hb泑げ1f]踫?鼵+D乘$eYQ 撜X鋎绛5鉭晩n蓴]噾瀥:1握嵲渀 99=8胫樭頒塙p楞G奚膪qO篋`翭/򴽟%佅4ws">橸@n8#稴蝘 Jm,@78`O\G_騤R┕m1W蘗g滜象pivy瓿!dr6铋曄п侵Q屽W-故滙?*t[膉\. +宮? )║XyM堅 `K荔橡疑礥f實=x岭建# +Rcb6瓒(#>~#"O2y.dg?腞态w哹bu劾''灲絟T|葲J*@贎鄓汩鞮撶濄h買lnd缧`椰堧鍰0轃懞q璊a 藅$髑'hB慔'懟彅)涷ケ鍰罏A帢阺,%D2菒咟&崦n90O秞矆Q"!@P畆W屶笞鏯)*豟Al s蟧^is]厐挈p茣晭麳W#侐焈箝@问b:让bXu=zx泱ЦhJt91<髋<>ed濷?酠p 緌锋迈銥(蜕a寁膻{S0脖.Y 鰽眙颧(q穝 嗐* ($熌*;.@絨O殔J髠1鶶F买/$窀泓?*z║ +濒nX 慘风 隔;PA,1u磧l2;I3墟T*栗$熖乙覨餂 u鵼盹@ )eL -觧y3J泀跗(d詃嶨QB铉p0s6醾6噤c滝阩╘<滘I<櫍 9肫?鱎2H9OA苮簸(H櫏奙嶤H躢 +y8脎淌Vf0亜岭乡LY奊埇屛\禊埱L\沲Αd壠d崣 $ 䜣9c廄;朏I U剁9<{}9ts姦`柝]!樴#$z +仢n#檺$#'8牘Y 慹谖詎霋鄮:M愄$肎栟 i08^Ho詔2 x骼rI6霫_#D虥6淦艜7z缱})慉1塧Y6癅YY蝫n缍H<齄upfi0bR糳濶O 襽妴R尾2﹍r&槬姡%e噩熋#媲蛊:-8ㄙ螫桃u錽3苳z鷙崸讠僁嶩眢H濑9ⅷ<9'烒香迺"x蕱趨1?5詴旓趞跷@葶緍1蜘*I錋閼( |5嶡てY暠$;#4#4h頮hq[儊诪s呓I鵥v*1p缟鋛酩$绥F畋洮?w垴鞞C痭笯KC硟悿dC蜲Cす>kY恆 驕wr;瀒訁変a,墐级銣|龟Tu汩O91F鸦,R7:煰;m塥N3翠 2G缬璂鲥 &az3mq3稂=闕b1捆(rH'邵艸鄎熌鳓琎垺%圣ym疙幖帻"$C爽mb;;懽8aOK唄HQ]卄粁=r}8$a鈶,X 鐜灳燓獚瓧i!D侾9'99鐬h竝h驌刦9#黸y悷).w!閹}CA屗4萗梤嘦l鱯雰酩蒲ッ刪Y`*zdc讕zd轞c憘E$M<鐬銘$i H$u醰颤阖鏅化eD肎囀隔=p01抣k;xaL糾灒on(H' +?濨]敯鏾浻ㄣ橼瀌厔屃鼠e[鼁{<∣氿6伖A箝峡覞.炱C#怟d渾$g44S#攳穚搞恞)睱罼G綔咐(x遍觾暇j#鵗&0渾:8聛$ě;镘[$荂@嫞*9,#滖圈祭礁穹憻迩経耓d缻?6N?xt佞t@ 捥[錜織U鷡=@鶈B]婆蔧羜伛艪RlT仿霩諊H>rq觚hJ赠 掳薽 p#邚z{.6腟nd鮚3荖?(湋郸A$ 9趿踱撍 U&繞鐪宑q=笠V N檞o8>疸风D港71X⿵|鸓c53涉a憭鋡┍)晃塒徏rI#種岳42|貰~i>c穼齤z,<3!P[h舌t褡47哣C縮18nOc瀒岓-3m尗~^軗拽Zt娦冥h#皩Bx绶螫葯H竒8銥:w敁,(%場腙G"愳fR2茂鉔f}爛9`_泴┓(Yr6漩秡P@Xe&梥pN}>Бpf{`Q&妊BU壬#穰!鳂l涠撚駹8PT钿n<佨彠鏝U鍒v3Nu, W懭㑳2翨ㄚYH>玳@ +淠爬^>l冰@  |黷⺄e辳0=x#備n, 8吗1賷z頖4舝尡菿;幟9⺋'颿梱 +案=耠顷jJ3砨漕c詂専窑d)8蜙=?SH 壖芚曣;(ueF駼嘽扥篦-fHv*醱&Lp{q詞tB昋亙岓I#缚}囉寣溿4鄓昄1惘襽構 穾~@w'应sK近頌Q賹锶怯irTlb2屶麑襶圇煰O棊,ua#(_龙馟蔱鑧*趿獢'cocM埁U(>^FT~瞣rsI\r蘩訾mr昤痩s焃V!d\7p怎兀W敔f 廫?系9穕;1g`躮 屼gv贸逼zRH=爘焯0钹廫Pv聙20梧x靓啶ck抅嘽亙*qur迌扮擁>槝鶖8c澝诪=恭#鄉脇n鼁壚舌Scm鉿utl+閺^衄0伕鄃康 >\d\y.@沭膝**U +0RcU~o驾;}h2甋+懘䲠 +#桬 +Ns碿q=烯)ec詔鎾D橦鑄鈥#嗂r9:毆3'摓搓)琗任N8"Q 3钩撉罓O3'xP;`绻䴓齢h褖,3済烴E)e\n d郿4j夺鋷F)匝籹d 桨yé抲p"乨\u/窡蕗鉨敓囩n捺d駬仛搟龣櫃<困%F@?JfA0%搯摄8苮雩y妿伆*g%唕~謴#2w嵾/镺R鎄 牎术零=!礸bD塭P幠孚6愂y喠v蝯鷗ft鶗] O鎓1:{玺鎹獞(F稵Izm鄐衧胐䙌║ 壉誠fL溼(脎穰⺋0#c0e宑縭NG鋩+瑸If貖?9麁?齤W鋋墘~rN89鐐:qM 栙B|紓X寍絶v>U6J鉩gke咹c荇辁P譹 StD 8I3弰+迦軕貍0O攓姚H"Bヶ釛亓b8擠T琜撓!佅C栂9蝯~4p筶磂|皏)a凅dr9伹NG\T<吐hC#n9蜦?9攧D豥r3弢㥮岰pXw 穨012}(6,g3v惀H曏泥鴙yAh/蓀lx鞪 堂吤蹉$潺M:B#X擉擏Ks狼O6 gy槲霂鋛J矵♀W9A摄詛覛1椏鲗a抴?聻笉潨憗掍醧拀{zR;( 絵+樟!蜹c哂3,$8`6A_茥i橪r籒y羇螼N濤}(綵随D鐒p藛$廀鵖cq$噄ds蚬T$剮S萭(莱醧 抪O瓽5$$$葲 T(蜲q涘r*S 鄃 飹)W"旟@s偫渹邜琰jE$埜朡髝N?楅M1晬婩3深yC夡怤憕|钽#蕈们 /&Q槍pz{%+{脫+eF3班鬄夔咬U)P辧冩鶑S坭(1Wiq陕巹q沺c騺撨灊;R娵If鵵:魛悓GS彉=pp=#o漎*>蔸盂h 晤@苢T` I偕Q椼無^鎽b屍翤@鶍u紆;誜彍鐏訆l尓嫪s茹稢MP湾7騪~岺頟;0s騻I霝?*d庰粱o樖訝檄5貞O啼&3昐渮9u靍UA琾a蟡巗可FF呓X伻_┿行四.稌)O繋欪熤%祽掏惷==弤E>E瘫鶍bd亴蹴御P祚Nnq!#鷚鲘x$m<鲷酎i蘏${眰犱1廰烚斿P$k娅1bx寝琦熓z*S&C梐s酩 銯懝匸嫌镺e惎蘃;c p:旿H缾莚禂弞M@ +駛爢\滒;P忳A6 ln狦)?糾畤n:N>淪_薑堶嵒p睈滖瀲犮轫@ +,懝8(脸粸A銖O堑'HK. 甔:銘芝昄*G=概&6!翋H蒇範l3咘N蛊=)籜7敥,n9鐞A +31钴q增8執徃60F'8鐨IC欺AU=8?:dWhp.y咙敬 觵牜F肆>敱樚#=py8檫 釭o{苲~渝]:钲徫8&<剙8里蜦)I3訆D6讶孹p23敉*>心伾芫估酓A耡 gLv)a#宸+曘縊zq g 󑭟8v2籶~S妏;责G$s臘<攽四9=範D艸勿瓽C\墜b^N躦+9莖Jssu#?覝翈6癚邘 +)谀pq淭q潙勆憯卋;蝭>$gtj~n@瘭8>llp鐣8#搾I颙爛r殴'炥躁 +挅g +狇'42竑fg8飷8爩然旽t撊?q墖螊凟R6訆'x]晤逬>`H<佉滾鶓x虈w班熻(wU撖,@散EVB铛<鈪$%J2A鞶蜽1+囊lp2兩鲰P頯98苅p2:tエ娗驠>nI瀩h朞")$m!Ur{qR覷暢祦亮凌i甐HI +%# 躊啥"盿>\ i8*缺cp/灖?酭PFE"抯+儊渟颕yq紂驅蕯博PH躏@I(哨T穹岏迶 9>茞崣S艫樽擔~t┗h邆蓠襽D薷悒<岕9вWq0歶k扚L$錇啐zV岺p!~K/灆(蠘F# \G4咶z懭荍uPR.靯匚OON詰T"/в> +d[DjJㄠ1O+# 霫湄rX庂9鍳>K>0H佔惪咏Eo'檏:〆y*Jsd筂莐$z={P芣@xle$s前?#1旟{m锑v據gpQr酳巸h嶦 z1迨``戇隌|朢荣-0犾<堽u嗍睎}署~敹靎穀G8b( 孴`!w 嬍濺3潈鍀钱禚t猝閽0漤憘y鋻=僵RH,I$'#A&鼃蘅楕 +`圙 +(]鵶芅*EP2q偳'烒5旲q#渞)YU浦寖熄9診窔蔝枢嵸酨\*筺={銧螶>d蚰P|燄] C,wa+>絨鵓澟膧8邻S#憺絨镫C鍞 ~Q巔}齫JK$\.ゃ螈駣Z汝Hd>&C +篶9荂襄3eEH+8$焇,憠H 畵4歛櫛计ON3惡"4[d谂X>PG獞@垻B7斅拜 ㄞB-0鄯忈饭6_誘B靟 侟<呫E@萸瘇MG,Q竂'hq% Zv亽z琥w1+1瀝3煣銑b7)?*獞)栙UX 矞l$幔_,3臏廧r⑵騂蕥ら灩Μ撬8Q宄來$;&g%)软據4Jv.~辔9<鷣3g# 9#泉鍳m7洼1n弱苆XH8*7@鯛Nd2潃%8胂)c?礁缱丰讷Ew#墁d.乙/煑⺷h茀僲]李駥㘎P8嶾)`@l攘89I 錔騁8诠s灊閽H頁乳蝰趢\艬A蝡1邽嶂穾F宻燇歞xTc鸒O臾$ 1\鸓|翈A<`c +槆杦09蝢颭劭樢筓 p淘 )姄躢#鬆 罜侯|ON繜覞.ijN靋酡g1#宔T憵"b穑灛牅P澺圮鐨i忓貥D!F>則潗<儸j\r@$*#H2Y9#3皲竛 +軼帞琀禢8盹C*盧 S憫行爩鍕d鐪q鞞籗ljx噜3 +s09\昢炟阌凯I#崢u歶5we穋鵴轱蹕鋞历S '2ZD荅蕢Vv蔽I闅w孪|忞K-嶩u2C 薝c瀝劂颛詑T抯74笠w憸銑G ;FF0q蝬鶥3@X|=GN櫎贑e[傎`y韺N忒9T*匬亐jE]撋<溞@8> 原 埽焩i+On0扜膴橧* 8鋤Rn]鹷 匚3)訮MeW`<鷰E6d丱M#鐭z拃锍$彁),迾鳇轸Q@zq謿◎2*9齣鬚Y叮6 牢4挧$`(Β凘8$擓歶5T(老Ry9阺@ +endstream +endobj +106 0 obj +<< +/Length 71 +/Filter/FlateDecode +/Name/Im9 +/Type/XObject +/Subtype/Form +/BBox[0 0 2384 3370] +/FormType 1 +/Matrix[1 0 0 1 -36 -208] +/Resources<< +/ProcSet[/PDF/ImageC] +/XObject 107 0 R +>> +>> +stream +x+T032472T0AdNr.W憫攻瀰)X佬略P螪列訪宪蠵烈繲夏?萛%+∑X +endstream +endobj +107 0 obj +<< +/R7 108 0 R +>> +endobj +108 0 obj +<< +/Subtype/Image +/ColorSpace/DeviceRGB +/Width 516 +/Height 419 +/BitsPerComponent 8 +/Filter/DCTDecode +/Length 43993 +>> +stream +AdobedC +  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY" + }!1AQa"q2亼#B绷R佯$3br +%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz儎厗噲墛挀敃枟槞殺¥ウЖ┆渤吹斗腹郝媚牌侨墒矣哉肿刭卺忏溴骁栝犟蝮趱鲼 + w!1AQaq"2B憽绷 #3Rbr +$4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz們剠唶垑姃摂晼棙櫄ⅲぅΗī炒刀犯购旅呐魄壬室釉罩棕仝忏溴骁栝牝篝貊鼬 ?魵( +( +( +( +( +( +( +( +(4碦R抪8馌 +zpqE&A钹"樜X)厬廫^(闕g慘镻 M窌胏岎}雧E3虘W?F$笮螻漲@J乩*紈z恳4轟-儛x_\窔!-碼檧==*矢}郭K 韓抅08-専藦_ >I0 69荖礁╕ 笽R0PY'′~C螫鈓*0 z鐪w⺄3堆'3巚 3蛆舄"=聇$羘)齫垡琩P[% 渄{ +C#2跺l}样u▽鞈gvV悖c灊{7局蜈NG?=E7矢 滩mU' +鶐军銣绥n埩; s&23/蔃 礴狱猹fHn2X+2偋=?/n4Q斄I艷 䙡vw6鯯侤鳓搅錍 x闊cPY|癤鵇|圄<#痫颮2T摻x頊\2惥f砟(l廮莾怼,)頑彣戲flm~@'Э>輎<1儩l灆鶳層$煳"^幁趱54R筆dF]纁岒}粇5#3竎y繾G=rJ` 釙N旑葉;瀩OHu峝 箰?\ 帧f|惻T/蓍6NP3靐豟N;巕MuvP聻 㑳_;@肆:秡視EM娋b鱃$$煡J劙$軄磟媵, +吨^8蟎U 鹅4嵖78$v$n<}“;6庣奦刣筤16<胐c$d 帔z觩!!嘋軁)7nm\^緹JP锰+侐簟乥9噻驺#?蘴'4銮鉑IHC\(1謤Q頴R`0 tc弉煏;h莼1謴煆99鷙S藣亻淭鸦q1跐E&>l鬁c 溏碢EPEPEPEPEPEPEPEPEPE5篳 際q憘3@ 颚I落騷OJk6 g儊H淫d+brx^哏&.8?.^.F茔ǎ]襡龄 t&&褧贎b鴩O簋EA$np n摓紿⺗(G襾+壁>铬凣$0谄0@C恤砷5L莗# 闉N借姑l9pジ99:_藲z躇亐o迀(萢芠髲聻瀓瘶颢韇珪鄓5n橙"F荞蟾=3 熡 愃.`@刴"I u搁X%,r@#敷辁襶bT8R濌#o)bU|蘾蕊炣隳娨橙N)帉3Z崑[M0谲让渽3餆窑IAwF蛩93顚莏9c隩(r<眮 ==9⺄颦$$懞 .9靬](U損.y8=x T嘱奂妒'< 煭D-+A'1巤臢7嗙9輦Rx8鷗鴯傑:盪蒔挤<w弦卆 诋 y馗8 馰/罅RG8䲡%媦fBAd;皗z~tQ ?2HH鄶^8鲧鶳襂 ?x1=粡譄 (<凴r- z氵澡#DV "操9=牋庢i0 %H薵ha莂OY莪竽h骄焅㑳 +ò 黄7rz9徨"龑2c傎瘇*考亾騿=X翥4瘸$X 彊筺Hl跚J痩﹕,Hl偁OO^sVJ>[1;縻'湊苧郉s戨覇,6飁Uq喯帔煡W笒Cv;b辱3荂瀩Z沺p柽Y萈F=圭冥凛讖螭t$nv呻9焈z#腅# x@j兜 E +漪実唧蚃!ydc1l&SL簬 臱悍 8燎阆<W.ff\廘g8;*駝u缹p}缜\TGY"B籘/By庌繖╮E麊>nH#鞞A濾3mU辽t?N}: 噕謃,Y睂pq佦*(b鬽$($姴岏缕S膏恴儗滬~tb4;GLz弤=}3$屖@羆*v"马Wn笺住梧綇嶰蠧 ,+湌H$/颡Xei#俑9搊8胗?昜w 瀋2憸劁恴{~ 繳爳5鋋塏橄Lv餁lh蕸A蛸翊(#穨x>T楖攸牘纎? 3萖)P鋶樸革詞(巠U7 F腵焈犐岧@ M颚蕻>'畒#讉G镺M 踳ep繾抸绶?郑缶O,e帶粥#杋.苢恵 帨笪}崛#2粕曄 樊?例y;<忁p@荁O闅鵘廟蜕9埒p=鐰捇,HW;圭颀=Ig'([蛂2O铗?旚萣@ +9溜佣3Lt膽﹍鏹2 8#酴 +s箇v9^琑;)~q箊怬愃嚂`T{髑Z膊漊A 珕;訰1昫nB螽泸銓倊跨U橷/沈B邈寫鶡聹R7驅l7檯9鐜咭扻扏圬昇茔廅:膜0pnl>=>爵Q眓焰DTq穒N:u飨J祄?槵w滁q{)矅h2#9F<8樽榆S! } +(z{(嵦鄹躹9噊jM襃 +潽獈}3g宼齸灁 *[{b$",6F7/憸箨s@ +c哄堛懾g鵗榈UH傺p!鵘X]昱wd荺镹紣[MJ傁羢# {zu鈺/&68戻;羏Dm庶dpN3渢慎想V0绍:f,臕]丗蜧繇D夋n\釃*v鹁炃憵C塊eUG饛攇幋篱' 1;A缕y>3渽\1 pH=盖鉑挫*有:zTa睊 晌F}2q灤Ij涆g蘕巔9琦滺}束,6囹8鞪琘 砻s9?O"L凃Q旄靓 e*#.銓A1a惢c又$笙紽$ +0豙崸渮S篌疗84壏昄 钳酾.qO芭-5萓0PSH牖o +ps蟧.>brzc┰SB沇`c(9系-R 鳍(((((((( H<qC6褱蟖歎 O範氺6吧迈爞 mn@4崟抖訐湆慟旽R茵L戃:檾8b ?Nx#渟@涉蓾2w.1席<㑳橊O+洱鈟茹簹窤慪z幘抚=潄堑ThXe$-3$A䎬*%"〖翱7'銑惾"$思6N銫侀殙k¬@C0ry筮锧猐T6rA髮錅z試sn 狾:貂*礋琛c尣搾v渷撒57)B>锺0:_`ⅸ-KrX銕zS湮U洆 ;2y/'8O鏡L劵A^s蜽糸滣/1蔪#cp`籸`鋨_Wki:藠u睩馠遘蓝N?/4趞蜵韶 髮@阚)B谸蘇`鄰R?绦`'x园.穙系X蜉BE媸睃Hx汶颯壝"鍒败師缬螃蒳嫫$炖l鬬11鹰16棘疗鞈蚓pH?嘊Id嵠懒K$v&01>B[佽O酷J +*y`韓!鵆3※瞦答n3Kyr1Vwlv寊達茰b + H脏9g<訰珨粰w訉鬁鐚OZx$@ 狊HOS4扗HCQ豤q^q顊t0UL擴 菫z訫:n*r顼笪9榔?檄5K籦嵷鑩$⺄-e#?6:r}⿷\Fa;(a)9区誐E尠 窽 N9==(崡w!/q@+v]員ydg犐﨏酾%腞#>貔>蟑ex撶噻"p:琦绲20蔣 +鋏A庿胗坜4cpd怤2 ?銡Y娿鐟UW芦#f$0B麡暳0x*2$[(藁rO 餙G89a鱄漶==-艸B求.>a蹉赶颭<迸匶'駜蜲|熐X)阱KG>HDJ嵏啜蓗FA9'$v3汽軴烧港~緸絠衿'p庫G雨!@S"≧~R$c簸#$B)晭;穚=qN>糝鵃JNH+攘蹚鏚鰨鸇n僸 nB闒Zi@悎P翡8閹冔譅漀鲵声I8>䞍撥渂阅p 圊==忋殐3肉2KF靪ЫX稲娙X.8讧;O_璍9l幅臗呑 +Up0爩qQR艭/蔏 跸Z?嚋黷`霵O?Z呥;+?笾溙 1板C@匴 囗^s豐{$t餒貂;n鮢籶#?泮Ub6敯fS嗂>{s强謤' 蠬冩t熺冖鵡濖)908荿;"膭N挲 [;W┿膈┲<'p<嵟g-30螿垣應⒊4瘨X酇岭苲q汁ь晌K1宥蹯:~E=pB:酎M9桊蹘G;睙覝酶!I8缵櫢颫3nv脒:傯偂槃\灩<弉煡I濑於 v钊繲 $$秖邚O㏑Y&}y=3覕郅醽^ 9<觞1@襏Y4<~~#覗t楧砂JL)湉g耶lh衝>`S鰾蕶$_7,a{岧3燄0 O1#aPT榮囚齳㏄o勂*踴'滮? +B冷嵯RI8 焥Q纤prP9鐪t9yT,躓;臭瘭rc鄞舐o<冞殏3+靊J"8#擄?4暭藛C砜tq恴絟乪咷態蕼恠偳蕃HF錂H?^嚡橛緘:*厱纳笄>焮<悃у bGGm临\扵惈濱鋎帩9 瀏c槫3k彠畘縕曐d!鄿翡蹶浆b氖t\灋鼼舂蕦奯h奇8c寧綩9 K&la憏萜3Z戜# +T唖+8<}H#優熥廮zX萾 #^譹嶼@ z#,3訆B >iw]亇粓杖麛.s搞憗绳T疟у)/酽P缾6[#約蹼 N ?5YmPp8酙!奟ZXU熅粑8 b(((((((f +2N#s驉pG$b扚 +g闔雳霾I4嫀wu锥(砃7鵈y'h鋥uS.d蘫弪庄?旸隶92<紴[<}j 鮥 ?蘱屽q_箝@血耊.墒摕2閅洛緇窳9檱抬帔惴隥JX彄irp輳锧刺p8g呖^熱Q胎芯d臓nR赭&gGdL{w泓(8惡1::庺g,鄀<绠;g?JP\ce8鼱濬钳襞292D眲蔰滒O@x酏EX忔!1芘[#8倾襽"嵵 类H?0c袂n:.Jㄏ9 T衙. 1:z鼽〆滩釙敄>'鷔頷m豜琀a寱_SK鲿潹H!壣?噉帻j咛茜522">g}=:J9婍窗9u9撒稂#甹闔K獕7ap鋶g<幐R+F揞鉧起H蜨=茿:~uf&c#椿慖 .鼡蟣o謤% 笰 +NN tb1憎?*'w2遁漽烸O."嘂 q搸恳斊 羇寲嚣牲$Fg ;1宒.x隠i份J8&諰廞術灳絡躠(”窗8韸8鱘!\+鲊痋1@n 椑U?嚙n煭L燿 +撛b嶠b裙Rx怓?鮌縲価8 醼 J牊锦(y侲筗8 +~S廄}┤ +纆鴲w頖Z侢y%誵捿9缬4]嬏綣憌 缻荀吏情P瓶g屓3?q8x9橄<愉F% ."-崳挱讉:銦N敨棏穋b.AQ鱵﨏驙,l笒2釩诗擕脪Fzg忛踊鉼崯p怕I + `q>92襄7*泔 瘇z酴?h墡鴺岗Xn抷苲 +8暓鶓(妙<7\:鬅O(2*9F蕼翡}A璄mV滀8摄q恪沥蕈M*zt裸黨掗FdS#鴝q庣\2a#fpO|⺷ 翘G刴踀N['=镐z扝訦6vq鵦翥?ZPu,帚媲l彮$q糽X0藃蔋瞒銖瑽憟萑鄹e上阙3dm(醨丽_馉 +/$鷖廅川 矀c?楖#>#%I8;s袔pON咭'斎d 3/┫狱K+&]斡亴瀐J駶狕b&'窻粙颡呻怯>啩*6r9苰隌 冥 +_Ob1拽*?*Yq嵻p躷銮_螔6蘧[3 @FFx?桱s捗 Js彣砛`垇A-唿J*d]j(訯EQEQEQEQEQEQHHQ扏硗5:昻3臯攏窫dS#詽Su惴б06渷曣x狽考)+怤@1巤乡@崚T20\莉z瀩囙鏑崜橶pU 8-黒{銻F沐l#=FI缵0s禝08=rs򹃍.亪蒮仏蜪胍聢<菴K" 惪?\騤褽筎澈J@蒛褴z~T篃ya兗n`X`6q佭6鬟" +笞犽祖1?w;V^wN:g$`(j.1F芽6A輲絰.3昻'9鄁 ,軴X睦( +矢壤诰哏,q枒dc#挥丰T頴H 懖2 +;榬{廄)閣1晧馆0~距c蹞@嗥炳痱q鞲?滼1宑両,n{覞@ HN8系佽s籀y鄖牢酷@:b櫣鱅击~鄐0T屼i*趒抪3魻&Q; 酕q畜弢鋉1BH鍾 +禞c`記鲖#頠潷#炥軪W蛱D摈`1签НZz皪b嶖芅\倉0y蹑灛9w]銔8戏柞+m覓q喦в嵅驰o#<渢9镒1點矠<霆槞倶,q 鷆?抓9寗朥f@y撂燁O_鏠\JC葟#匯9l|~]= 2襮 梒 晌鎂8莖nx⺄鸃橙犑 y]== 鶸@冲p果 g衐粝~铡mY0磢3席锧[QP1(A $0鋷^吢Dw罾;蜯B H姙$颃"+9R0/<寧齤(瓮﨨\嗼窛r}滚Wv竽C;[湌s R,v醦N=强HY檳蜧<寖訛Gj埡+飗8佖笥9Й郼~9@8\另Q2爀M # 壬汶%& 瘘愵$g疉M8斔峰茹>鐬x请@J盚蟧/}FH帢蹑滝会莅r蹣佦978P吸l_忏圣惄Bq蜱?T惿丟樳w/阺蹰LY-鰡H妼8 u囫z隫<纃Y dL戵澒=忽祁?JP轉,躢痋鋑@+|-烒99鎼H<な簝籿q鴚*#D!d鍍 88忒onG憰e,+H席jU泀Hx*刑ē渕c翉#=;帩镻1O+cF悹P{t嶮=$p法繯瀮枫鎬%/窉W1''亷揪黃刯琲 &嫌!.T(*1nF邁} 1誌叩+8頖瘇J羢尪>濔錊8貕懖爼`O~O'"倩 馆旿髲~絰4ds* 彥强酜 ;dl +y荶?含伾廭:寊z qP壅决NA8<&\p龟8琰 +埙巔1:毈8镹#>殝{0U!?4婺h 邊羲齅R栣V鄦WU'冿讘(笏Yn]B癘9=篤3躣偛0绝^橍琰郩昤I6%F$韺Z驉y#鉬1子襽4b訡( 򄜽n斧)$挭g藫煙鴛涌Z艆b6蹖寕1冺媵璌D1F曞W'轾qv*玴vdu轻圣h寄;湺pG:廲QG燻瀼綦R*鵑踄秴萀щZ 輴Fs鳞闉究滶*H8亷>銖鏢蠲d8澉8纛z觗dTc( 冄崩<~]h爼楓vnNO_鶸i$难12 巕子 蟛 窇#蛏卿*蛲鎛髴風笞1'{rh#伌=耠黹鶶e懄艶F2>邼N鬂燚l a濷镻J渤窆8頍8镫趢AV墅\g箝>濄&yh抹'特鐪髲lS軯PB韱]n酊璑3!&融笺?Q8 弙 嶡$弦 +竦朵舮=)柖f 9`O惪锼㈩\f 蟔°>0`噌Nㄆj补驥 `狪旗錅~y9э昉錊'筦銮酯(籕U囄鐮=E<媽滎9扰L珜g撾U章盭觛;Nz)餅9=v蚶t(m瞅嶩艻膻 + ++;恲>豉.沂G;併)騧u爮L灉h贆FwmQ懴~s镩N.珵9.:灥D事89c憵]黍)_沬#8_謤*柔燬鍓98惜\g疪,3淠鄴H<_蘿 妿笯w;廞老aU鋲菽捜R<騙骒p 焭 +O 8#Pz.x0\<c濷╋鳶- 8a咐8獼/d*1/4n顆4a釲桸举闲5.諁逶誕巕躢燆i羈,bbY}嶯3''飝觜#软 绶j +\t蹌;决y#肱O-8螾A燇爪2(C4g%裹表SB l,J瘹! 蹧=8髑JcJm剾gL1}根I$Z癝c9疼單v灒茉W+3 /怗C'框頷<嗔/0NH雉'憡-7//湝wzZp5敭杓贝崸O鐡熤旟1#@;`g?N{z蔤蜦衧络瓜^9暈?8 )鋍據s蓿P 畍g>S濧26[萺m>邌3#1鉞*7~8;麦9蹒翼唂I≒胒搌鮺T i ╂內$#T2Z$0s 盈甴 创c?ZZ(94QEQEQEQEQE z僓e驎H趭鋹@便漍<2錙裹)) 頬鬸峘N朮擉o9=┊$Lp{ 烶qji2F羀泸]3/P Zd`^圛+u#幗鷡攺蔺挮生w惒:22駟艷#黫K爀Vu.9薱8鰻寕yZr昩J巕憪w哦潳灴鐨r噘GC@s礎霟鏣畧Dr3;Fzu荺䴓玠d錋酎*旉d8P$稌>Q苳箝@肮谏!_0毇 j:矋ㄤ+S懳F{g滕U名/v釕倮a 銓撠鳍捋蒀妗惏9$c'8艻^Z挶%慇$m\阀8鉁$na2y dw釟秆GpG绕]H'沸騈GZ甎,堶nda麦盹渳=3@[釪 蜚fy(GQ0;^4FH岭巤妯e选]憫柬憻O\煚煽鈥&蓍苟抳?L食籧,%脤鋺郓UれT凕<>烏^KX喰)<湠@檉!\&襭喔芆lr{ +Y'蓹?v#(r2A\遥6Y#V`r 1 d仧Pz熐歋3扄鑋 蝬?襽'W #t&@X洄C2{馦滲U鼙$`{颀M%竐劕A饊曓y':奺预-仰绷a衏垹)毺w" 髮g狘9?_Q臦W罵I$8麑?5md 酙* 儿e;G憻U爳fc)䴘2苁Y x善q:~?廧K诟cS樽奃O祱埒9 兦螻V<v廭i蜘#4y奝%饃廮筵EIfl銚䙌H0X現34x8 畇儗銑U塙J偳<蚯?熱Q噅5]啜阚4-辋M#@r9嚍烲R<媖 .@社訲3湘0 *A霊莖^EX阝7蝄戦貁觗c悁愢屻媪峡щK眞n.pRH鶶)h貍p~R冎*侼wn.Rq礼'ERG$m隙q妿GP椞%丷Lc緃G%眨q"鉦呻苨烗O敐:v镼φs 玸苮>橖)萊$$ W>!* (限m\g庉EN\$ Z尰埳鍥铐l噜荗門;<2;榗#<駧贍懟虘诇湈Op?鳳刯T尰堆兓佇~}?SLi6c灶酖o]V蛸K-笖S蝌q叻|Pj诶$8勃dq05=w0nzv哩缉晧X賤K惝3痈蹑蹹旯痡p 嵃珂G?\ZO-諦n%侳;~_Zq晜 z饆䲡+5菣祑暼S诬q阌犳 +_ +6D9樯1CH$g}彍/e$聂虰餖洚A'.焻媟`|8顯 "+詠 堻)Uw杘'薋阷恪9襞H鵅臮刣囵}>荩ec莒滙懟岏隌UF喷穘(ǎ悍蛟认堂4P伹= ,X鋊v酰瞟$撨9(9鎬瀜攮 瀝s膝3 +椢闱侢sN$6傔C@欎N8EPEPEPEPX>S冸屧QD|潿Fs憛)鲡J尀8h鲻!碁@轼*(b錛x;繖&樢$1厄q寣栥鹋4;櫵Q詜君i潨靋佊嫔韥荗笠BC.龛B&S+8 =3熄J;怌)$讕縎D#;鲁菮T_lzv稆P觧f 根P)献坶RG9慩穑逼G=*渫鉖2辩:滣瀓eo涾F 焦霃鏎 +6s#<>誕滾角\巺Nps脎鑚iD瀁 蕬=?x沲爊峳6讕澙鷅 颔g貭 +' 9晴怇結T騹媴邈 侟呟2(X)'qs8鐜x麋54l2*瓗搧戇#%暵F3岓=O胴駧,~\7*u诩儛3忞Sn鄐儍円戙G*]閼襽#h矢2Ш0邱a+*0B8闪蹁齷G,{蕿葁帶&X(n鋟趒礼鉊f诹旾t愀▕1d;9潑8稔ML$鍴霭 `嗐T欰滹P$鄙8x砩\*$懀浰朣'橈=磲!S<吳z廃zd䲠,<匵*z~T爯27$g$擃z{g覛燔圸"Tilv廃訖 >鲮嵦22}=螼qFU恅g囿鶵y熀i嬥m芗p轷<~睅X侷蘹8H#89黪ㄦ yIG;焠=s@A-&5婎鍉l悒=钎&辙屒蚛豰雽溿縊5軯阞eE憞#犗赘$l惶x~12@;0 n$r89陖Oc鞻? 2rX*宒儫鎗笀樚媭@b@=睞##弒覓8X稑貈l罅?栨 滠胶1Y雾mu螭v韓氽渵^淰騧0)悃S軂}Z酶鶊6*埫}?Nh屪,,\EI汕n邼!櫃襏俫|煍1佅x鶵辻"!羝sZ%/⑴.n$3[8歱4踀鄝0q嚣猱m仙.灛y|鷝c=}O5 1蓫莐H臚L鎾4<磻涠y;s讈 罫彈h鋍齆 XA攃\銊;9\|z錕鎫;ew('疈蜜?4眈樬/4n<+z徙稱彞I{K.宯;t9HT矤悓(<侶=F1轻蔻B鹍$40 樵鷆攮I教6觼竊q蹒葒c/欜缮 鲻肱F/1T寬0I=莰唓4lJ澣C6轚?囼镼K(uV兏檱慰A鏎]K 劜 ##+鵺玳Q穆)@,瑜0 灖耵O駍fBY鐅鑨Fy雭鄣Al鼡 x9''nh詒擛6╊K诽~PU憥\H?濑4PG'冔紾蒦 胻酽) 伬aH'扅UU诂理\榩s弤h,;樽8g撈N1P猟bO_榒姍X6v溿ZZj(梚綦N((((6澵墙P7Iv汚拫<{k@F5淢鱔崳?/9 +厱bV +〗9`8苰<渝e尨k縇眄砬=9鎬)椴H虂HFa扚rG鏩 +3.  厍鈑1Q鎾7T驩烁岝嚡Z熲賳x#衭80昀!RrI跸1鵗d⒈慹蹆邦菫9'譂7媸弆}2VY2l甦%A d:鋥泸黨欣.側_' 苢;鳏h#}貜2餃餑'閂毡鶡%r咐0配g銌<郳n羒YK朩*W=?N3S獕Y0寖懭设?/J` 4轀n鶐wcl`~u#Q"匜Nw(齲榕W捿 +H虅Ep 巰zg?dR苼 a鉌o漴A$灻"* 褸X(*嵛G~;~t睄+d 諒銖^}i3 X衞狎酆帩3颒n"iUXF;嫵i莮估┱榿崄Lc迓鲲域舄谒"q锣 韽9 e栟8鉦9AI齳臙 HT磶镫Y采#*z畿,I蝢幘紐HD-*@蒁9閁O ╞溏袂O笈g'O/(r裥殚H"i剔n>陮滬q鹰\嶥`"W 衺鲪寏_烰g毉%x偌!轂乴滽玜1凅6疫煺埇\;詐蛶W霂绛J襚|硩硒鵻-诇缈c蟡_擡纟噞嶬话zc衼芋噵,@ |O曠螬虉(${X弋s衭 wo)凛徑-擐|d 裢YO2M 8$1 +脤c煣痲Q黎錔拨頠s擋鐝Z锻盶 3 b r!q斳0Cㄣ9429S,q鶆t88#?< 軯z滗c?F0爟髷>A蝯{鷡t]鋻)0.y鄎1橄J<蠕x檬p $缧慜Tt<掌蘭^9E-绍?_脩鶳h(晀碻哵}獻+E!@5/'幗;袬sDeL#爌爌}?泉绷泵墷嘼鄝憔j肈2厊螺Np3缨改v9厉($[ 湇:倉曬磥尫擁$*眓 欰q姭時N^y镒NB砹镹<;撨扮4,檛E9輥荗s@O&柀啙!r3亙岓Qy%C屶鄛OL~}F娝瓦楡1蹚髿V7Mㄧ#'8茹襞i襐3 \1濶G?Z惌+(1遄殍(W#謲8认焷!@F8<擖i9獩灞滬 " 2済<*"@r蠉爒?9傈河篯W渓# 宼6)搇g刔H銖隡vBY@箐叵氵х鯛M%悸y蹒熷靰i褆芻躟q儗蓑P$憛嚆vz據"<蟢x佥敨m`莤鄘邹璮e 顸'燇郑uUI蠒08-甴)惶2#?:&fl┢I<熕萐*#0珂99琰4凿鍼耪@莘茭R0]N 黹乡鉾戊実9玳酽嬝晤q惜诗<蠺钹佘颏?p衿}:球 #q8u苲撉痏!簨f嚓x蠕sY婆佖eT滝秕轫A硙蔝%Fx腼䓖P蒾#1(Rq笷;u猶^囊0*X3靀=簕R5笵Q2g<帣翡瀪礘hWRIl儜趢-Iw淌産$纞梲嗘鍭槃Y;嘚焃猘%(苝萸j憼o-痹 詑绋9]劺粆;忶⺄6貱NA`v={PbE'v;<燄眑頔S亾F蘗9上輁 鸼? 婀9R;=3镹>硢# +膏熞1槗!慪筓#鷔鋡綵vG'谫s窡檱滅х硐5U2N鞋 铪1JxF1梖 凤3嶪蟔塌P堬v墒 p|亲}(6.P饃零憮譬:m荣O酴翴#厥YFAM転8鲭荍赞'奇 騼湡~0=*X<蹞+.聐q嶰L~悡1b瑓 +'侕毪y扞滩伿灖溿兝鞞S萸kn%敱-c種渵5泂獧 +l19':9ス篒硞>@z撔蕨6B鉼 +锎龟r08跟癹.I搚\搯 `t昳 弳&e&?>晋U+︴2: 扺漌H-e骅砬岿潑厪鋍闊篪鳜5暥 累座g鵾2<艌钷0~颻缨=c"*蓵趡}=噉#哫 +擿)蝬擄骚#糝a>X穖0~\飨銡o溵X遯揉`S:`6_z巹3灻襽,X\4蹃31轀烽隒2@:FT伔鲢疨I绛WYJ炔厎宀牱嚱:iL擡濦鵾扂じ-,墖8$^z 蘙)耢尾鄏悈A 滕=:T微\俔妧$3B湈蓁y欻Y 蒷寘峭冏闓oДK$t菞大恾q碜U)匥塅3兞鷱覔万I 瀋*顧苶荿邥X"5g鵓2rrz_$抣M憽*F渹@迁酽墺虐朿窅G'$瀦S]Y<賒U0Wid朦噁挽姵硟冘黯'v鸨;(婆#';裵膤翀睏粂艷^旝x.w鏹摫 w鷃︾o5pQ齭`麩n虿:{銣u鶸'杆+FYz吨Q:绻8笼i熆婈=釴#8H滕s訄F闥G弢髿*WL埗襓qj(2牌7 .H绡<0?8尓;敒s鴡t #(銆zT+#rF榯升s朦%bC珬\0z佋酴]吻${>缱昅!Fs哥熴M%HFd1≒C {{v-$Q樔Rc>齭V 「览=朠!gi>p?昚A儛A=Zj6G粊粌鵕)>Z髶 u>愕9^u"吷潼萜躻黨8Bdc觼忬鞰e9b<(9=8瓵輥蹛O熺Q:艸哨 '?忈@ +Oˋ衝輴F?袭iF馑1烴сP薽,鐅F~bq糸颫V錚鄞崹21:䲠樳嵅)苊8<颖螳n渦墙= %zm~ZEpY3< 席N方#H"鰙颿莖礣怓窳s腠鳸诺崏8c懭n胝Y爩譹_槓踴>?:b鄏r@^旪 s筗99)Q昛@傩_z惇 W*崊砮Sf鞇Ks檫璍払 俅`#=:~僰m6 1滕w4喇鹆\曃x{l蔝垒壬'楬110橄!$9霟^4泸9;頞锧 谅 銔擞{H焐g#?椊88廾麟撺0燩d琉H#飃:蹊晒櫜g.0H={&郒BU;如帢槿⺗趄豼嗜x煑‰嚣鉅x暃s岕惘種烵z9鄞&0ry#6{忂.w8荟飶長娦d脖 +3箆巬颃}殇4? 灨8镯忩ht擩d2::8R纃鹍衾腼舊无s ~V瑁=蝳Z$|f7094#鲌'噜{荥9N舏6旋闊隞撤 %皐(~I?绉謿韧鍫-扝r;清5rA,+鞷面W銚生g燓U窫6m='闛>=)渺:d焈=j磐 匳g^欞嚡гUym$W,跘嵆咭郙+.I鋞頹xA咵鵟唡(,燎\3茺H浆丣斒2绉珥W%^ U歊6椙L('9ケ栁 ;FcQ28i鍧[&1笘#狘0:鸗尕.<6r>P 轼鯈V窊1嵤H z8  s梒眬懹儗娄 |*Wo +岏蟐9`Yr$0.疩钳zowo-H桖x 30HZ&>iir蹉?9剓鉻\絸x~5],W昐賬n鐬愕N芓;苾vS= 1 >煩1bBA#篆Y.棋;#袂螬#勶蘾渳x肭A@ 2髎5z扞?檝a 鳋漵于朒9b翉Q磜倾N2T. nl轶1筛贕W?*鐏知蟙m圏磼0q9'kN+ ,堦泸Y槞1$寲鱿X\R0 -邜,w薷▇岳F9'瘵浞戝.FpI1⺳S脓6fS穒8亲託/ 眄S 鮵藍鬄櫕kc +#抌A苟黯=狧4P髆9 篝嚆溞"r鳞R黹贮訢m徽[栂nh鵜w(芐0=@趿隦ゼQ鞧X話~Q蜦+椛_蒿 +0嫾∏L亖扊5 Qm橁YOA黼笈i琄樬2亹NH?C凇8堙NF A'R7 g`w銑iG滪nc,Hq戂耵拊隣F 鐮P翡焃#+籔戀I9蟔茂J蠪,琖缢nM莉y覒 h#rO`3O三j诹 +亹r>a裹8?恀輰扜箛R;冺8$綯<滍r1嶰琰 +s樼1 7@P帮且⒏塧晩>Hl+訋:褙T惇塋`_ jc傐d窾*$w嚡゛躻紪# +d8'!O?сM$専攦黊 绛K;,d岥=簘jK+瀤阆鬆 #c洹鄯t剡髁}啧鼢靓 鱶c钽瘇絡H-'2灴蠆4贗胗絈/樔洎 鋞舎!優:昿碄2薱=EZVb叶秩R(_Z"4输o闓d貂?甾槏逛<>^P .镞翓寬-怤3'煭8 !Nv岊8_a赈唋H闾_吭穑铥鳋f厸%癠佽7}G蟒旂窾ga+鐆樔:z+H忘[r2鍙'Хzn@B6K.鄘~5r!敚躹耠抯奯 蓝蠙綰^O讼(a <鯯更荖熡鵕J珡30  z弉O>唸.%;滻n@\庉賶醿@I貔湖;魻 "_/侤蒡胂4*Xps=y错犌8998蠋䲠2  ~桎耥襽&O02O'=+:駑G宍{蹩 LbF蓪.w緯漴[i+腐EQ荖?夢S炟昚哘怈?w撾廈i梹1-9qGQ臲#is)#炤u,2w· +廫`鄔Z爂)9PT凎O瀩i濚褋 >む鈟碲ㄇ##z潾'o`}y詥璧0rかc:U[厣o;b 0戫鹰6x&%嶡z}齮nJ3c鋀鶝##蟎娅!C2~;嶯O鐬旇鈩¥瀗{扵?*夋壢Dl 碱社'坌鹲@懻2棭S湡\䴓镼|騶犮$ 芝 +筱~@ +焴( !U錅}哚缈bu 博趓8 v赏ZH噩w;r惜礧f0簵d 磏a辽$訋賦允贳l8=耳馌媖<じs髇#z4Q巗緲3P"睂湑bN溹~渮*QT3mb2軗狱z{PS鐜%R哸零誏1瑘c眂亚惑龙sRH#pX㤘烀嶨R"Pd`c庂BL泇# 1;巟韼絳$拷FM螌6嘋早跗 苯$*┿返Uie娻床,煏POp0y=粺j婁獺懫U潐W蒤v<柲篇db#熛$灲GZ蠚镋谇撛渃廚呶%籹磉x98>>o陞g-P +釓^{oO~:d獉6駟艪莏璵w熁f% 竊g吁#瘘襝s!o湌P1>絽L!憌`骶磼8V藗y鄭厣P褿 +N8=rZG'RA犩rs炘D3`B 欙閹蝖磳HT炱脰w^:w綦R#eWQ寙$dp< +兺,箂驕慀沏#擐隌.3悝褢笧伧酹蓓I紈朐 审4k桽虁p{w碇C1Q2v钋8茿?Z崄Ybf愄p98蜨鄰$D9TRIq鱐cz討烴鮬B挶].ps詚u<舁5賮O澴,r9襽>p4帿詣1{ c璝>K.I,O撻铅G>斎P6堇J+蛋19钜C$h^E>g菮 +唓黼皷 *撫鵺)'a妰'3EP笝v犪>w<~N)3w;技頵錒$cН酲械習夺甭a糡#銿-壪便焈б+1*('nNq瀼罝S祲 g痍:妠( 鑿>OJ`J錚K甍^膠f +-譹纀忦ㄢ [%X宸}轌OP蟖R惀蝈廯{v镒Mo#un>镆.萀k舌n)mn艫a熲lR ++ +< 蟠`鐑@ 冤]羛q挡H?泔SCVf!Fz`b6菣錭类g惝zt镴乘A,權2zP谂)翘FI9'=?梲  g便凒)&靨A怘1訜辖TGYdc8蝧#蛄珛g绷3~c靰*碙 ^T份|澖G9翥痁)q屈瑻瘿D声祯\lw稂9雛x饄眧粊<渁O'Z蝘R9X偣拾w狘莀璱夈宭s蔳'燊q跚g*.呫62p幟Z'm悾枢?菍o=榉R;然*pO,(萩Q吰#p 冂乏=(^/&鄊_,卌窘秫Qn埢遲a.v =N{p*lR.莠@c橌9,m鼘чN~箭hn TRY鰸艊閷p=j吿k霧P懊=彾?J姿)}$?t弉/]g,x y秡鲫hDE睳=.烵N#[<_阶亸髿尐#稟廱{慡狔wt8J朠D僢霣s肜攢罀Аau#8闇岯%櫿鋌I苳{w<1#)紸F骂搧讓?嵩S#疾3扚:済跟娂蠅漴!:~!莫 R$芸7'廮陇F蟛遼o鲉2G 齫@ 2;/O惜SWn~锟鹩 1d(簉瀦{f2跢<橜d鹓宷系Y晜恶柞䲡噛t辀d~閇嗃鲝滕蚀飛:a>b8內^氌念C"''+?鷚 冂@ 盄蹆c'╉弢锗琔^轡簈憸蹚J炐A咈 卑dv 绲. +鵵獻@8\熎1嶤d胜"芖糟;6w倃8槒 W訮忌戞痪z9'z.7y橏㈱c`}篢X #`c=1胗3@-觝澖p6趴Ac鶶wU佶c犁'=)c墕LHe羘齷挬99*2rs鵶邹%] 09 +g畇詓4.澌r竑钱~絪I&Y輸彨g#8汨:聺竃J酇请蟦朋朚褳T1蜲?璒g(胘掻汕銨錾腼O伩y皽)B8哂圌憵` *1炦脺zPY7i +鉰.6灨=齷棰轪" 9蹅 惘52皐栞蚀`昴巗?蟘 * 1笙?鐡@R7轢er嵦G4TKS⒖榖Xn<SEU嵸H$+┼畃J杛dh姪f?0q侢牥藁rpv駥J嶣1 d郹 蟴墺Pm 爛T惂寧h扞% 郊哲览鑈占,9 憸v䲡$0ˊ:喽6魅举xI02‥Q/l嘁!擳搾绉?Jp,"BFZ\凵伶* 擰(槲s擋o,4{暺駘炃穝R祱rUpF掮G螵 `俆s+熕邹I)摀摄忩hk `咿-2/;r9畴逌铕BA術=-郴n>Q_綄q渻迉'F 膧w怓q如=j=褤#1 +偕幥殡䏝訥蝸姁狫宭#Tg趫窯$e維廞幖(軈溈e镓戼w籁埆N戶胗?箱錎 (慇!Wv85 +|槓*兑0z俻z4.E!鷚锴嶂〣s <沺y<騻蛨-懬侩UbRl灉@,嵏eWp~織璛奯.釚I8鉷'鐜*娒潳礃'澕灱{炿鋙悕蝡pN躟~N邼j+:掘q捈徣l微7We-濦~犝! V拶d蒇瘙~促不惘O灁`╕楁c9?螻邅j!pF8迈鋠鑩跚鉔\鋊卯py老?L鼽\Z阍帨}?v岓5i哘琯∝9橔t︾h'x 塾熃;tㄎ$@懮(m 货 P霑;悃^8=币t℅下飨馃Л鵎c巭顰嗐痃庍8窦;P{聒渜迉姴C 蛎捏搧滅螋籀6?u阿錇L妃殣-旐Rvs 穙簖)撲,gn菹佇d訛擐4K0崼 瀥胂n?懊w朄g滣閁:鋗#v;~ⅴ\尣PO?uxb 玟*泐$d|豒畇瀦巠 +)<溹.2ppx$=N它:誀4麪寑2:}1塗+ 庪瀥脂邬`c;9g桩{`繇Na>鑃,pI#踆f成榈椏$w=錜$橓w愬v}軒>\O駹 !+搫鵳絀_4墉F傥NNH绳>羲vV0儨9'u梩c\dd烰嬺v2舙=偝V4`橓q缮膣v霏9-1+扤X=?/漏弈D埉羉稆Pc壡@:笈G18檄h隶32.2G9賢瘮榅颁鄟煢}h攲綵帱耷$駵s追^N84捼9蠓#珿R>橔P,矂 F鄛zZ褗% +尠8=s:?昒癏踒iNI@懹蠻搞UgD 7摳幟应(x灔Ic2Ez齭諽鉎蘚r2d4瑕7S*SV隽尵f砬h*P;V(q擶Wt >螨釬s鴕z焻@太"刔oz~jH0C湲xl溹鹯*(U;茗M宋*9銧鄐@*;< j2憱焲屶P!暏辒滭1籵#徝$}櫁;\+o;:峏婑I扊Q滀疧襽"炥,p0褜寎{袽簴1 gbdc痋袬HQXcr)#惽*6H丈艪谑渄滳濁F脮=s詂?嘕↖N`6戕潚W蟎r归䏝`④6Q賞楞灒蛆颙.繳軐O w怯'诃"'辋Z穼\惘ZU憒蛤H8垭埸}6X7﹏p:g廅滯村b黏矋纁?{zs┿#C9=?烰爴偋圊'滜檫椰珣椒8<倅銓w鳕nm不銔唖痯>据5L竇杖8綦豸 暄6鍰3脆/庌鯑拇3}z毞p2by$a E#!G5VQ杕3Nr;*6|罖P@n廋稔{,X,T#郾齄疵&誁=膲娚1@2图p8*x荑鳫汝?疲竲 +籋廰RDvJ镛3疮L褊唨6P6鄃帶刊OZl瞞尅"睊穦=)褕S室{灩wJ 补|珶]K塀yD*c痭拚氡C逼H襄拽礠HJ&⿲風駥戻q灊I玵橏,賫?嚀着[,88?5銹2獭1萵9籹騼摓齬Mgj捤崩279蟖蟘蟖@呍E絓,y蒨y腼颬洈777N厗N祩>襈Ab 9骂#臾琫泘I#惘:P濏!〆 <##93)`$wfM靨狚z齢幮D%\亗B cL泓妱U蜾膭26/菐借J+杊薍蹧2憰惝y臯吖焣^RwQ晤ZJ醔銖騤鬮Y] M9荿滙顯 碔!T懰19鮼嵇詒酞y|李麌渀3VQ'5 +8#n*齤tU5h锣稠'5莩[rrx=课i尕 "2憯懫z +"+⑶&rrs憥橚募浫<炚テ*7Q>滝獞FR馮<寔夸@S 2j元嗕3?(屰FA99绲b活enq豍袶Z$u2N8<螜,8骞;F嬆0 +垿嗼W=0q婶"-Z厩8P燻撽9┹釛蘀愬庄=1U `g{RIn矁n靟邿\{I竡涡H8莦tJZT +踨 9郼熡疨ㄚ鳃v d'郫鏎绳睶C憥^腁k惘匑 诬單z鬅J8b#U*ㄌ佇(/Q中鬪∏皙q5傧>f8妤簴Qm祤阢=y肫}?銾]翚G8鶡<弒@橦第览礊L瀊B0壩8鶷n幡匩H 蝳訰y9宐I +鋪兦泫I1"匲蓅庌n>赉逅t钱*籆2跚玑3琪?wpOS頍K濖\6@惴Jf3l膍錓z伹ZH亐鵦 鷘3 q; 芀t惰泜AL鐞=i挟渗(9诬惚碡OZ鰼亖漪a限?梠镾a|0'裤(G_"-扰;{踚w湝I嘃檫4墦蒌7藗N镝蟧覟s%榣镪 -宒廧嗙堐9嶧1啭奞愳򿞝銝?蠌6醈鞤絯1<)i鱀81仠{燄薀!倻峋S稔s鳳X3*膫=0=8睨x!佮:)Il蘹8?竭贓v醿湪8'寎螿N1Y独突 zs瀲熎 FF!cq2ON咦灥3驢+紘Q c9滕?籡Pw g鎜A*绞槷I千oW汶V*嫹0$嶨蘱湉膣誟,Q熎>\J瑍`z~辋GN绿`匀湕 铖肢恷昽巾湝鄏9眄轾Y纑FVC臃8('6P騪繝8鳅zgGI@2谫?煼礿L涘R (Y惑燓絞滮&)蕊ZV淇槷3+懾};llB㏎寸栭圩疦\桺$聹函n齤j^痣庈惘鞘狧朦@z袢Vg9䲠夜!:鱿昻B扨6?瞎(]J6鬎OW╋S谂q 寞;跚z,;d +胃=錈皤6*蕵賴=3佅NxG%矺o{ H漶盈N1際!XS鋟 箏s徬刽珜cv偔監PNG遥;Y貮-寙呖魻 '斉 +:帕鏽T衼鶁u慔粖dx<1;埒Ya惣mw卿+ '=(=9曫谷S屼貊珧蚦籏}z9赲t疥炪籿Ns溣懚濧m& + j+儝z颃J砶 Y,貕羖佄H'=*暏鸭B2 +罇?秘惴'8⿷w悡8Ra簽~Z烆VE8C嘼筬绡n紂舀斸7:獥邆G$霃覓GIn8 n [X1掝睰u8=q荦(竨X9a嵖L霏 鯢藺P0Ps戁沷Au#a认q肷鲦?~N瀉楞彔@xY蜛P +鄮00x砦2{雳`N溃0靣}墷[茹旑u+凛岏韽c症s戱藛b=s須S-幢`硛呄d儚筅牳橰o-8凖\廚絠矁 #V绡向懴徢殲I#)U錉 <`齷+榊$-$娷轍凗\堠寵x趓@f邶8橛ZY錌@%z笞#z鶷; !蒪2O'諍玭Gi>^Pl憧支%H虣p +鄧0L4*橯A籪3鱯凐鈯p庨ds騺瀞抓騏顎庂猢虩繂A豀悃l耢?:櫐d舍>頖彮B㘚"d鷵*i鋂 '帬䶮潍DFG怗\P駟>敩ィ垇赁s詭s2姐m 消_酠俚S(胊弞扙輛夽!_O揘戹舗X<搩*7慠3凎Z栣莱剚撳$灈}?S? ┾羆pxí憸#$zv醌柤镭飞 蠡誁芺I类渝 +0至懒碹隦2顓3儤憏陵EE -鍥9GC澑⺶!bm餐湻瓳鵒猃?c22" 磢8苶C餯鶔誘+畑#$瀳|栢47恾裼@挝袉eP橮7pq湌O6箧v`q媲䲠c1F叿1兎'}{訰8暐eu輨O4鲚桂藰鳒=q鵖H$齡蛊qOie敧>R@翠 @l181@!pN鷼2鎈耎78玳Q +W怠h蘟撴2漉1蝚ね篭,崁;撖,l膼;塡渨戏K鋭a 姇飼黵qL惼P滌Rv韺u2湊^>:F7镛8H {;a曘甙1烽谉oz蘦9^8蟡関vx貑#;硱\q鴙鑚 V7E-避呚#'8#魻 嵉X兇5) *菕6G渲嵲l%X. 溹笥唧獋匀yH# <騲鲦'穳旽v浦l嵓穅?茮=!擫鵅__9w(蚵30aI冸=ㄎ"崍\湈浐zv 歍K髣#鶹擯Y淗9苶:懽归衄+"臆緇7藔蹚B3鳹簴Q 韦 ~繇謤'm鵉蠯帶荃颭 QR3蚬e +<漊欐Y勄%`酅*釡#闄!,贈P豣I 餅繒Y8澿 Bz,S.慜3'朏忻抸笠Y;F鵗)z惜憌a 脪狜鄠}='讱D穪垙$商`兂仠{`帪*D仚J鼒雮 =圌鶷寷e蹏\|9倾%復嚃Vi9R夽n02y鯛'岊厴(s呠 +@?篇f@UA8枪=~镫叿抍濝$祥Mh庍2/悐d跷3绪镖fJ缅桜Y +堗樽诃F觢T13)8霚鐝帧礣嵷燮臕+ 瑈<噜t肷┲`w葐R鐠s:c羽鎬%嵡柅|&~8閵)谖堼Xry2d4XRARS忬9IC;篎1''歜幕弔\rO鴙玽飓鈱 x9Z#執漓I`錠a攏9;z\Z葐%f!搨?峌掛磍@H惝覧握(U?烰|1)](皗c甹眕,軠% +<.0 9f4楼寣蹧v 讜'сN\;Sp慣6:s扊彞2酛矕 +N:F{ ~鯛崐0}糋}牲+$]<旗珧鉃v$宍 ?槬笇UK0V苲鼡魻 +2逃K&7y黬'鶕灒щK2ym眤#詆絁^B彣䴘(Kv+滭屶g暧铂Jw<灾tR蒩羇鱵荿昺e鬆?(.N?L2/﨤尡$拖錚萆(鼕$q狱殀erFs滀^繚W歜.^N鞇8又蹢@S#<7幅硕x聹r3冇焣镈_,k8鄦蟐苡m尯 対脎畝5瘧n\ pzJ厑 0o焣?<鈺哽鲛P憢d7'8T荥鷟曞 砀{{f'蕺騻pygg譍.翶扏畍悭,JRw寲偃荓轸䲡"赬豢:s隌f箎祻檯S兾 ;&qn`漓8鋚i澳侮/抸绉昚崀鵟騍9蜽?4)o1緗bV狀>灳%|+笹献珹.銠6笃ED烁:ldv嚣漶@ f蛝儷pI渧;@軌(吮 c滅↑N&腸侸毞鱡%k塍/LC/氁#儉q冔=/蕰鈺ι(G%O'O酔笍胬r⺪>鱶u畖##w任颻苺堀檹# 炪稯皎鲄弆h偕缮'H赧b$@n^ⅱ)A-儒{9 $,aO2x鋧褞OSYz嗎p v0{Ej>Ko纁磧灨(;~uRdY/癮I嗊雰祥@憗霝锩c鶵腡8銣z~t?y跌豶r輖L嵸镒es傎鶐s嶪阋瀁蘮郾 搶廕1郹pzS +~驕$5H2b+N銘躎徐f8埍芓S缨1姴 n,1泗ヽ屲斲x倲 /憺微怚*$@,s砾夒庉~,[nC7*呭=翔ET/櫚p8^櫕岅N錫1儊煰n遉:HO栿飹﹥扤x蜲鐘號 敁{d+幼黬簵 +?枾广垧須昂{碃S蠡 d缱礩 X泯(PTy9響扎' +6Dg嗛0qMKeG&E芑rv灆╅毚邢q)YE.徔酹涨-FYcYf纭t膪u須蘚@y礰+I*ジS大I漇綉^J鵴畆9$撣4涘固噣;.r1諘WY3) m]├'?*墤Lド,<皩A鄎5b'X爻H@0U-盈=zP恶飦E掬dW艬犂I犾稳#優詠2鍙$擄FphFr軮?S@a冿镼绁<+7E婶瀈=峡4鋼` f3\鲟彮/4c$p宋{聸.讖巍8颔S內蔂 惾T +m溷縗~鵗Gs烁澢p鶊蝳䲠7+唽2p8圈G亸O馉 袎)隆$袂q聰1亴0^ ?它qY⺧mq犁ˇc紌<甔)赱:`溿邾 6賞A袿8碇,*q4華{$环懝O堸Ccv3壑斏宍烠 0l蜲\t呧闺Zj<ⅹL\cs涌殖=聱夜#2n蹞寭9隌8X0圐\@6:g璯掏 w@钳$q; 话O狑莮絠%o甍`{湆P湦k郄FG杹<j睝瘤 9E%rH-#恍嶅摹311颱趱At66禔l幘昒vf]挝\餽O#ī 惼餽贤组@. +4M鎑躵rqQk'櫁)鼀*@鐟扊G酲頤辷b~鹞钏湠)豩秔还~6裎\sa湬 槂`痃殡鶸#朙唋鬚G蹰戟じ X妿$:礷亭寜謆蕏靟e8蚱_1X蜪U$<鶎縴鱠88鏖䎬玨 r*4叭;`u酹rF3&GPW2蓠鵪l籓 +K蜧瓦*BB銂铍渔/~j y赵榬ON 腴焅覑 +傃;聋紦三0}h黍4⿴∩ 澻圄偓[˙軣釸I攸3Tb_2`w1Vl9<巠 u﹪私饹鬲渟9#齮$;Z}鞡A'90汶U98%嗎鲊^8) 湳鄋'9zQ晲頼楞#c跟觖睱m>G藢;w銻彬鋛鋩8匴yZI膷导坍样轱娀vH纱惸`飨?浌3鶴: ; X抶 泓:菠竒蒹W絮9懾*竍蔝噶u!蜞緌0絰箧玂q袌,6q<hnT贘2 鬫l4L 0G ==粀ápJov/躦?懯渶卲尃aq烵蝷&钨r1穪类w酢阗/樚 菬髿|屗髱YC蛊=cpiG 2媡墵颾2{c鼜鲁s1:\8乳侴逵隬'嶧28>揪礜鸹B脁<~?.=欠聙8輭r +翯PW転~bqS&2瓹6拔R8銧颵騗G迩q執y9蝡q佝]粃S^釪 +?*]搞=聒硍脆蠕髅0輳lQY勭o +(L鑩$洖緫蹰砲獔Y%'侄锠>hd伿趣35譒俋$B谷稆U[6a:鋫?襽9材5*狙蔰庣杯7形~IWu許枰Fr矄O9V墊任"蹨铘飱曧 栫8齴5W|謦醦@=?蟴 蝦@*'9?湫抦i1瀯済鼩増#遨彲5%蹡軁I%Q搸O覟褢蹚Q䙌閳亖;0q入g貚昋6z3仈仠q隡PX鼱擁V鋍 +dn 嘡A縉斴狮8徆<|?穗@$N! ;覿v=噅G`A,A須C蕦uy)s蝮? 羝3謫R$v9蟡;I< 簸9颫P膢犻⺮M(垴煍u噯'Z.罠X *冞?溲蝽8v$}?)8 r)鏿鄗炤┤1怶兩橗?#抷惴酤9p *3袴ZB錘Ty濌;9蜲瞤 鯛 ]敁亷zw 'u>炚8}.褹艵5澰晆+冃詰束苬'膻髎?8g9萳t#電牝bW8黎估'蚺J襆c赾}糴N1撚螯峍k杣谀jY.骝皉豣I玺鷗⊕鷇-识q詔E脦鏆e诬餓蒼翎zpr泚 1黹肢叔鋑'9 謋U*屷O]糶=K渴#鴱'帪兼╀恪黔I渖府灌P凷oIgO櫢~}脂嫄p泖pw7q冇薍9Q績寍=MZ劒#*wr(靮搩慇;敇&K! T錅鑫{`蹶尙呜e鵣|?楼uh厶Vl( 籬=q泉尘>鞏P2Gn#霠I咷儛}LS7/鳓9萣:}i练鄍< (_7hz絟0#魔H蔹仮7寻[s +I銣d熢T欩埩銥Yw|チ<`冐z4疖岚 鐝髪l&鷘8顷i #S_翨渕膕蔷h埍毋l{?齤拹╨dg创PZ8u旵+~b$覚%m$RI=:S[詣 z傽讨-辌*噜_崿XD琜3埸k 宷要龔 厊0柽N欟a鈊$p鈿3鋠畧iJ"O翖#1ReZ菗麲''徱9稇蹅顊[舁<貂疅2焉", 嵛~5疵11C灒懬螁*EX鵹2茜埸砲hFVvPy\褊舀\i役钶蹜z绉犌@>彳泫T q蜰pF?螶巏y`b!w朕x!$g睜 RH螺Q儗G蘃?<灂暆U9 u隒?槧3d伹 c<3L零?pu#h 滎辁t犪v澞t黫! usS,Q扊饉^=G鴠(bH<獤 +甇C苆q6W ~緳=i.(x燎q弱鬆 +k倆淫{籱9򼃻砮F靤葼,M鋿累寲髌?Jn+宔侓?)牖`A8蝱颃zRg +扞 .z香@ 孞ぐ鲡槵亀翰宲H芅{R"滝螻燇沈ua懥t=畴4鰤銬茅 o_~釜E$m駵溏=?螞pqf-L#p1摃青j[藯摲秖遥g^櫷4包麨b9踏 談檿1╞Yv綮N=裹?q|帣<鬅|(q$騷z熓歔tm磥墚请P$鸁4g鎬$o 'vH千洖攦q姃?(r9l`泭惂鴪>垣!R滅慡既U攎pA$窃TN#fTI6{,rr恖买聃〥悲0 B~R缇齍X餓嚣%2E‥\pII#筲#, `1侟E傌zg颔x抹 蘐9髑穁孈XeO藴d宻@1嗂竘 輩席胍纓v嶐]1幷 .幐隌 +粡N偆\ 划6?茠1诲9蹛s睨~&Av1善0Y冷襁(Hcbv侒 鸽閂H膘_8榔A'b2L鍭"朠~z`弒*跅骫逗 n{煩銑!tp潺愍 V +藧嵛I'<缃j^╰ M漓!楞锋;禌*(尫 +O輁Fq咙(!3镯Z[9膶7n落溧Z$29H廅0B茜燇诖頉32!撔zg#949穎vi i撊阌B矘P~鴳惷y噤聍 匆,2q寏t%=^嚐?c$鄋滕謦PUA` 渘*;"褦l?9 ?瀧覲;θ褃侴逯瀳翙7棠嚆?0?2H\钶徝幅顯梋他響蝯Q(br ~氠Y槹錑疦螯橮伯鮝负I>虐6吠!rゎS帬専J乿;d称泶韈俼#?嵋浰t悡嵜y赧 @$dC歡"N膽鎼痄尓'铍(Y憕r勪鄛茻LT弚槱#蹅Fi雌.B*z溿''9<{P@>*(職痊翗d疦i88隟@y3皩摓牉{5^m6轞P槅g*;#郻樌禊乧棊Z艞D缆瀮9㘎䴙齥6KI Z&*磵抵 `狋RO>凕奷惲r氦奊瓽謤9噉砝c标?茦AS=桱圚.y 滀襁<~响H橳+6甯鐜[哨O>燓簈yG z:.泈n 歉Эj凞c虒++s7 鷙鑩_{*寧5腙}*葔'$郹v绉N齤?+r甔noJf涨^yы挱H(h$M炕c騉o璅枋臜銹澟cf*x鷾u4*G庐餈釅荍腸s&瑢񦔎y1鑘u掾晩<錅暵壩3弆pw 1佦殍*`Ig蜲9鳡 ,蜥侅8苲酹rP簶 鏤偲@!稛r?>打U誁%杆銆;鸓樼膡d`Q攫^=H镖贄c廞鴔訆嶹cfv7pTd齴徶 2鄒N粉P 湳Nx稔?謴?蚆I$犱s请U櫡禙w灂+B饐b跢9?N踕P筒6Q+骶渀焜,2N}鳷╁忰粊莺.;詛C>褣銆_Z壸o蚺 '匫,C $9屳嶰q戌)vy郇ZE$)圻*H滰U$ $n8#=#巣f$u5d:=荗筵秨槐 )?囎@ x 岓J +8S烰竘旟a蔣橣@^8蟣褡險e媚$M儺 叨s姌楲c呭狏氵:2趁w2B┥蜧萜O幺v 艬呼zry茲:*匱!UI*yL摐冺V'2枢HC|磉茿鴕=i逸殆@樹麑芎阸從P奥)`c,p9 ++1奸6苁籉r9=椺Et踨<悃房際鍐0 饄矐恤泓隌 噋#}9(q31眊$銕}疥E,Y.<鐝聙┕妼騫讖W錊 昁甎 )炣灤祱\+軠蹼⺳JT跑磬騪 莍霂憸 聒R/狮Wv1弌S瀤# 竒#>烖踊PFT|珟z~<觔VW惓錓=9占糉pF>鯪iFH缈#紿r蜽彋烳#.zg忞䙌iA现 +む`变佋憧錊9 ' 荏>脆1軞D莘骐撣迼9系-5烻I犁=q劳"媠叻/'逛 麏o軶佇沌nzJ羿曯~t堐廛雭抪F8兺)"骂89?1,Wcc瀧R)*x,PWr0p9鳇:⺶籙,W鍿尊霘s(a跢8蝢祡0N軂U"湪34Я2萙0]佺?泔Y议/諰b讲?擓V y甾0c睼%]d蜍烠?齯 秾眣N蛯3pI螼с左 +橁虩繭<襽9僥I+a佢X'?0y╪-$嶹H夭嗂絩'瑃詌=8荗怯瘿)#頀0Us礀潸>全綤n`q磹{w鋘廄縊璽ri栂.r-艷RK('/蜲ZWm *及<憺O8垣挷eLD}0溧绁@挔6竷善~ΖK +K"偂$g捬綛瓵鵼e荓鋥T峣X}銙瞁?炂,OU賬o2s螼酋狽胿T湠V>蘶扐嚆緎;檓鰊u; +煦9鞄荐N?5F 篐绪去!7蓐蘨匟X鶉#)#娜>b@88;g烽锶pb卽绳%zw鲰P=趹晙 d#>Re暏e"Q鱃8s傈辉0*D狁9#?朑は,蠠昘扒拽O覟b$`箄轂=zt:諊礵癈骂i3刘8谲32瑀 r蛝GQ蟌42槿炘詬;蹃蜱9J役紎葘牍Ytq殡咿樁蕰))炠鐪簏侜柟o,系d(F>`8橄l綦@"d]厘p6'侚%摾七(鞗s8嚪j-K縦 d|<瀦〦稑8Ge赲uf9蝬=聙*:挤⿻ほ&鎥'w轼珩t艾rh櫎1鵄1=∨=b+4鏰潜稆炸趑Q欇旳愻珐&(Ky梅 ${<詨m7兮Hc班gpzc淬碪{几m揽P~"勰嘎:笞=~F +F0"濭&}4V嚁-0>cE.恲銕躁)嵓2鉯^wz鏾Rrrh窚懛^s)耘0棑9鬝y烻N辽9<帪敶敶刣bF1<{倚EPA奪(奙 仄{倚IAg鈻爩鍓摄趷╃#滅徥漄偰蔱逼=z箅@J囱錒` =??鉔eL1q穚贗8惴螫儜8テ 苰4熁衶娱瀂nV垠/B)硜嶪阧J( +J(顯N凑?9V`3惛$聱R*3灱漉]轰c9(煾筵歾癮 鰻寣R*呴熌揁◢糬[ P 飪社瘵;倚Siㄆ撽3冹rz巎凮脆栁[彣9+V6Hub葼櫡 喳堌K鰐X沶 e睴,=:v=r+p$*r=﹉t┏驦%萊s9餅囖虋 3攆PF'偧遈:(>;苕M m藎漶$黥 .僴=睳}j槚)譫J'Nx犁逌写[橮!鱴瑛9?璤`H鵑Gl親崵 +]@<嶡"3a兪)懩d蔢 衾zg 3F760U_j襤)W%9力:4忠!8v帮鞞虎碒?09en8漪荗聽沗廼堭)澔鋠郼诏K$AJ栖*G騹s灒=="繯S!佄9*OR3蹑*杉Z;yj縳瞺bN1鵦戨臰峐 螗%彔p简zz~-睈a歕<鋋<<棄sK6駷邕畑⺄^(鄲"q絆\`g'9镆驥,躤by ~}9鷝证愢<+葃;Q1习镻莕.&vf姨C `駺_聙2颻r垺1瑊鸹1哱?缈酜a煏D +撋頕q朽﨎崔賃d蕡*<绌'姓d岡膟c灱(l*o豿\)犗Z殉+|("L炪苞s9黮2HdV鵤 8刘8砬O勃s谷f闪茾{*奒8$p嗚G>旕A斩 0縊J枈屇噕T遻#9﨏颛亦g8f揾 [?0D躑Y;;c*B8苢颒H9>絷)犈-QESY窆C`鋎gQ@(((((貅ア(((L 儙E-PjZ((餁03 烎Q@ EPHT62寥蟡(((((( +儗pr3跂((((()h +( +( +( +( +( +(? +endstream +endobj +109 0 obj +<< +/Filter[/FlateDecode] +/Length 3913 +>> +stream +x诘藇鄹u忒笑г9>f椖y搞L邑顪炆,h 敦Pも蓔}AQN婚F父.I$嬊5o/ox#Y\鎷蹏E殫q.Tzq{鵮枯䙌聱v;,怸慼紿玠飙d玪*8Q嬽n衩誑,.叟?xMQ&B5"嫵b篎>On铣R"N2媏I鐈S?扑曁襀@洍itmィ煐"崕轄.頊O蹉 辬 #%#毆7zu颠sGGu享齊斞眓飒▆`醇5~滚藨Up褌嚟鰶錔$_慼 荽寁硇vvd0嘦誔5鄖i蘎譱B$嫊(憠秆聿T褘椬瘷N洶Q$Y,JhE\瞏?9Y琱帋S 被*撗晓W6蒘;<馂~_语 貀探隹庫峗-毒 ┚衩n@? _;"zG∣羦/句I徂|鈴魗GSo*侚繼$栘軮Q.+*漶?i嵬4@?斿t|*4V{O,讳革 9)b澷5玈z*N/ <笒L鴞甦壂NS礉驇v膀zs錎l鳓@I赗/| +t餭苞硸芪5愕(匑恷倧顒炓Yらwd'鰍Tja筯:d駆酼)恥鋩[(^扬怯m厧涤gN,霥愹Q|JQ&q( +>`䴘e蝼&愞w0昸使B)醥M堥4晗悅磆.它% p腪r 恵7鐓箏H葰E@H(U婓襮刓r捛bJ)I3f酙y膭枛8!%撶你I误3熖c9 恊A&習J漵眨Qg6堑『HF9評倦m#较昋絿狮渤SZ嵨9菊Ρ: 2擾*⒕羠愥zw鑊, 討贆齪#y昃6G美衎[.莛絽{5x冑顄M吩e鈔 ,:萌a[鉀悒7鯁亇;餻C\∨-稝b~裢陃u桄隦0u麻$谻迈5U +赎蕃[*_6x?Λ慜圫啈嚩;睫s{Y=雒q踦o]魿c.8哦埴>m 2C=灗Q叠齒wH#﹙囶槅Aaㄞp@,–,U褕nW趏N栺aXD悎~幹(<┫KACU镯,*敐p色眕Ct 鷍g隠6G盭嫓x-/ét’u{)鶧J1u濏嵫>w嘅繰骄唌a#阑a猾禬桫浒縛D涾)`毫揌(HU≠﨎H +d疵菢BEGj 6$橈O7\/楧^Xj5隠fK2>滗;;v忑撏,W村紧稅E\(.K掱冎?檃,*筮,=法9gMm殩l乙謘?8t +.8瓰蠔EiV0犁蓾暴=齉铼O2倈$IdbIth翛魧;%8"连z ;别絋鑒|凪V:U*煊 +濳E炴j\C2岴r&s┲P羬⿸:捫Br燹K5y/Ur|/臕鈪鬪 AtJ豓5匛煋D 0%娜痷最:%{惶A羀);莜祍小鳪P7 t苆┓:_M;rl疀朥唳m駢X=t8筦 & +虤樕:虣EV05寭FV(wI' 4D"' 昘讱劀悥蕅B丩陕賻J 鐱弮n/h縞Γ n z息K蹫劉K;g柱凷/!w蜳鶃#呌噔0WA釗'婮蟏Dk󃤼i繼-d擝 TrwM飾i訳6搿砭馮蝽悐!制Z \8*?xm犒}'w铞5c瘆=%0 +v駒煡-MW\鷣婄痯TF剋郼美皆殶RE舨唙囘6 >-E俰,e1N灁蜌ss焛饻苸F4%W~q瓠_w樟澿詘!2P$"面D圠3謓)z`1魔1 C&T$\e傔芁笧j桾'0爩> 羴sKZa!7伬0=芶=?櫝保〾-:,侁a狅@歫紼)1$貶l淄Gx }vB4YN2朢s* ~*J拊齈褏e r1L咓?蜩樊nB佤 w℃潦xN汬d孪4Z:迫& +濻骅/0疏劶(痣T?Q)"ND@% 恚罓阸 )$|.7レ言O9槞6 喗BD髌&*<礲c稴暧尡叨蛦 魋剒gMJ[憌=貎眵<梜 モ硒艳朆6#6Mu8¥敧&〆d3P裄>梮蘆(. h貢R磬朢"赲虖綹L#71攋1詓儱m態諚蔰2`瓉朿=3僆冠 ;B顁2T,c団a t擠ō!味罀襟漲%p纆 +,N8i淮吜k 踆c魹鰦;p } + +G靇V儩sc唃陚?=袥0U6!蠤蘩4'G帽鶭罅峱寨频恅l鰠 +u4鯚贞|!纆F絧頄n艢2 +攢裰"t1鯁4Jき8针纷<闅>窒凿僵鷆g岗7哙BT%朎魐w幯繆哽7?2E0幇 C鸽- 逢騆塵-喝'責膡篓+7$V劏FA盃竤屺=M讳+H|f鏸猲)蜩寻Q侊╞%=x潢鈎Ad糜鞸籖D颁P店!B.鎔akMe哵浬^陧X+v@ 9S墓c#撄x惌 踲h霞DPR;粻鞃璸購 +颔轛覐K鸹畕[Fu恗lx擻*,烀oN鐻W1愥]pP +仑窭 %鲇戮類腓仜p嘭蚮奴ubX@4摓0h瀉嶵qN跕N鬬竈iW褼籋嗴\1﹍1(澚懲眏VkzE-  蠐鍚=R&Σ"釭,|嗏9?酐隇璤@ ヾ婳S駼QJ酋椏a甼I璠敏鴒<)侑熟s 晀>@姛tux淮L+5赉nE諸z幍]蟷 ++蘴洳6w铖巹KOqI胎Up觵B2L帱;. 0D咸劻ka/䶮畴3Q讋t偓慷瘾骼Ig橑飵蚉瘞魒*闏1+,膐x鱿5:|覆熎W爿霴)|/咠邊岨鵥蜱cdr渺S~r脈n:}鹩)Y袦?苞榺葋 +/窌脥Ou)鄫 ㈤y嫪煅}尡悖琰)轕*(箬宿Ы銒/ M_|悲v鼱&輷/微\(朾唍N5曲岆7趭徐uM: +] +B瑁盪S茔`廊皺趩~C烊M理龁J,閛0棹ó?期 泉賦羶\鼙:鬂垬 螁掚EUe劗竬=膪鰡絘鵳莯鏹砡<4虂瑥蟿綯俅.= T堲Y綊 Y}1^~<貕k>v錥堔V輪htg攂x睛=XG%s竰疖瞘芐櫁6椣 缘Pg +;绉4AgN.4?? +endstream +endobj +110 0 obj +<< +/F1 10 0 R +/F2 13 0 R +/F6 26 0 R +/F9 43 0 R +>> +endobj +111 0 obj +<< +/Im1 82 0 R +/Im2 85 0 R +/Im3 88 0 R +/Im4 91 0 R +/Im5 94 0 R +/Im6 97 0 R +/Im7 100 0 R +/Im8 103 0 R +/Im9 106 0 R +>> +endobj +81 0 obj +<< +/ProcSet[/PDF/Text/ImageC] +/Font 110 0 R +/XObject 111 0 R +>> +endobj +112 0 obj +<< +/Filter[/FlateDecode] +/Width 83 +/Height 117 +/BitsPerComponent 8 +/ColorSpace/DeviceRGB +/Length 1671 +>> +stream +x陧\ 东 eO靿='鲣g2M眯萒>9=>烾隋f"傋u淙#?/B堄 G夿5辥魠鷛cLig9D憕#e刳縬-p<灟擳e戭c{@2[罋[fGH% 稶n珨=銖窷 ?阴膂-dwd7萢媹碕 `祖R鎟[鞤#鯿巯q,`唓傠m+閼[顴衕歉厃]6軣[7嘱y詪踙1锓峄/蛤紸 G1l銧淠/V廚鴁= +-,會惚斑Cts╙蟞徻]\c畂79x疗駯郕响d茺e壘a駈L(o!囻齐|茄謣, +赘蠮r9躓C襔e唼蔆犊迿6 +j丗Lg>焬e獒遺O#W墋[p圳at;3彜┴㘚婽8!-x陶礡 +w7F"-`7{睭鸢飈97弩nG闺o蔙嫚炦绤k##vJ樑懡c唂螗B:6嵩1分 *h!nj邙鐪彛Q鑴+Hp萨L'怮, }RNE)D7绕齸鄷f膴I瀮S漞#歟爻9O 嗕3?'庭猳刽S:奊魨 +猊Te鼌-氃蘟舀]委E7\-=/ao1ι蟼X焏_^a橷D5%+*闽珃涀*够篍,4涤傣R邵IV-悚垟/=@L:`n〩/蝃pm-軴mG1湯蠅苀嚝1,=庴O+i袱V姻,^7gF躠 ,壻-D7z*+m46T8 Xvt朧#wLes帠鈙H晶1餯rB閨7XS[枳m蜽?凸vj鎪綹皂7亸塝E符环焠覙 疅声笿襃r=篧滚QS{戴慛Nr靘质弉+/!︼;狠\鶷9峣 縐驖D迄鏸褑櫾}W誫+畘犼NR狔䥺峚颤蹒n滵\8[苴Gi莵L'黡+廮夐2?eF縨EJ>8騕篯壼淌C=绽佄扼 硑蚘z雎喞8膌螛>谲>嘃"绸沝球勥崟舜邃挲聐~駎e'C楢e蹾螀胅僬穾 漣C郿排觺 +2#擖$%so :6 丿&6炍E!矼6幾G嗾叞〝]8L瑩(蕤/濲hS龀租踉ゾ谑偿>9粧1脲*9榜%Q凸\矹臈Z岈 /钊狙e`I2OΗ^测阴F<昱沍鯰佊t畡償啍5罀蝕駏 笙國+Y穂炁>C莎 %煖巈|x*<(鉒哧熲:鋞)_I玈柍'oX 飿狵x焊5 R槒~Jg> Q榑献-俔7瑞1穴@?;q 竞R缔癳*&"銻憑%B鱭蘒 迯9r淙#G┧?6屾 +endstream +endobj +115 0 obj +<< +/Length 71 +/Filter/FlateDecode +/Name/Im10 +/Type/XObject +/Subtype/Form +/BBox[0 0 2384 3370] +/FormType 1 +/Matrix[1 0 0 1 -69 -112] +/Resources<< +/ProcSet[/PDF/ImageC] +/XObject 116 0 R +>> +>> +stream +x+T032472T0AdNr.W憗櫛瀾9X廊能H螸霖繞县蘕聊耚显?萛%+煀O +endstream +endobj +116 0 obj +<< +/R7 117 0 R +>> +endobj +117 0 obj +<< +/Subtype/Image +/ColorSpace/DeviceRGB +/Width 474 +/Height 568 +/BitsPerComponent 8 +/Filter/DCTDecode +/Length 30703 +>> +stream +AdobedC +  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY8" + }!1AQa"q2亼#B绷R佯$3br +%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz儎厗噲墛挀敃枟槞殺¥ウЖ┆渤吹斗腹郝媚牌侨墒矣哉肿刭卺忏溴骁栝犟蝮趱鲼 + w!1AQaq"2B憽绷 #3Rbr +$4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz們剠唶垑姃摂晼棙櫄ⅲぅΗī炒刀犯购旅呐魄壬室釉罩棕仝忏溴骁栝牝篝貊鼬 ?魵(<鈵V詎蛵「俳嶃88榍緌RZ芮un撃IG廲J牿/抃荐O笾擇>!巌匟營?聹G#"攲奲b魍鋎S09銘-1狲娱(pG镸>仒梜4趚a業d坹=q熤 H ]^茵+0袙H昣Uu贷䙌B3EQ圦E (@ bC3歠邲Z{u拺HJ(櫨 栌9N=~qSZ]4喤鲬仉體^靳澁*v2Z>骄uけ2(4埢⺗67sQ鰩動’w#`0$A#@灖謻<啜銻H#9粚_-欇娲fA}y*6咐鞱阽彅姃槝攪H鏃牅v燚w,R萑`瓗 赔V頣嘃f諑#疥H岯N镵﹙\98=w屧9Iぐ'槌釋乹誋爒綀g$gq鋫zU{+檔寧:盩=Kc鷆9ǖ-躗1yY>PXg焭穒胟j訮9Vz荛睺镌l纪=歩鍮{S$郤,x)篴a╚!#hTa<铒鳵辩~诋`T~圂*覝慨ㄐ# 鈥r3A鲭H +1Z儴QEQEQEQEQEQE5昡J簡Sdl0b8*陇wv 9跔pa彣﹩{謁-嵉4.s3迺爣蔋P內蹮楼7砸涗wC妰肉1^い#=j岊pi1寸Ty銹袽无#譂@pi伌駣}&s迉笴YKο刉*徽Yw脽拽鉓赢>拽畚H, c︻甼AHe凶?菸殥!舒 郿鍄G怎捁誐9襮东_梍胸=ii1社(2 +(馝!n斱q(薾GJ{!攪-#tZ眦#FU彰}k+H丙篶c姹煆\V戛舉廴G塭斻h冢擈靖脒璯$畽譐r錅謌D8_聺Mlm9訾崑($v腚[瀏頃解(笀砂鍁盨鶄=!Vík泅兲g-,y繺i$苰\又v;Ar 鬁欶─e瑧}モL挔7=承}j恎擊V2B垖J;棻齴v蚘RD齴刼SjDq酽)z觘轘迉掉 泻Y'?臓?0i涒<$+!fd zq迵翻;C墵JG;K煰o覅!无蔋襜7扎S旮喏 eq=*r@#'8毎碤E2B((((妎 怫(*灐{f潰,園?0郩蔾⒑晆 Ж# 襼EAび捄mq占s膔 姱9樰訤A谩|駧*鰙Fk(<泆_1X:乽扼#m瑒7枝鱂塥5,秢|薚Scq$j悖E-Y朽綦訮 悳`忦";S c"夤╉眄5ジ\cp= 撺tk"1掳'夜莚.#h漋)弍鄵竳c?単Sk潣;鸊 阼邾 袃籁0 +(ES8攞觟仛k#.譭4唩宒R7JE"fe韁g岓\稼暥熲歶c哣%G 庉譇誼蝚+嶡撻S4奁%6ぎ毞b縈.="x籑懺by%麋鵗褙<圇樸嶪巅)刷&9>熮t4 i$䥺嵁ut竹o蒎塗侧:r?鱏鞺t薚嗇R争t液r爻耈^Ab牅t㊣郎ㄣ峛bz瞄Mv.踂36搝l5薎 谣m跧=2珦NE +1Q2琱膍=檳9_駹/}2dp< i7{+浔#3S 栟p臃皂呭汫浮靤恰3I焖8塧t揨せ]菫@朦┍"]:輬纕_=q焃io悕宿z>bC*钗s娱R炆汮)sJ#罘唐顉~饸u蕯窽洙L錇z殜7/鈱 up婘P(聛E +r犚,痾qcps忀夫}蜖蹃0 訐撆Cxロ%Pq5ェ4鸴茆11趧洁+R窡鑊-莃 +佋熞87!r=堑:9$渰qN(()C)V`Z*з薣Iq9_栗n*I-樔遺3OΒ,jF這B@I燗q懹-E5腜(2全灋ц*Zgk旛巽艹彁羊{疺9峃碣渃4佗YP珝溯H隡験fWYn0蔔Aピ户塏@84攒s刊8)!謦ぅ燗Q*2XㄏARTUF*Ic覔*)綁 g&撏銋$e簸螭T{酲筡綝憜莞$旽a联玼,扝 +*n+嵾J-魅援婁拀妚蕱撞滥7*瓗Fq熎 Q沨l毺桋ふc崙稛敯n汭#箧碽 睭L銽E:*盆寤D缰嶯9愀5蛸*;雩帟F#zu'^F{倚IKHh濋(容岓Ek+S%谾嵐蹃蚯縅5森cnp剝2靜A俟v 汛s%窌j蔍鄵冐筠簉p2j江狈W夀w扤q帶* )nq2駥棋Jq\獵*z棑昴_鵩IQ$癱f莲巣謊禎1欼 蟒TyK|禀;露0=5Q2┭'t5乇诳:5诩=i覗ㄊ鶻 ,/$皶$n庇紸{\[檃})~}嶊疥E皧9頵.=蒖守 髪|J$p轿勩<-冻采粄;q:簪濂硛3訛泽9b蘬赙忇&w雃o/欝+熃'苍p嫕D⒎踆+x?;搘^L* 7'獝垾糹柣H埼k^$8(倓; qJ:帿逍:0慩㏄T =3V钬2 p>誖wZ墝 g8NT)6A権z僙6E舅+彈狷V%蘰讷 +rq腼] +B03N;慱H QB龄v(竘!\喟"<毦=扱E +( +)*).Q8P6q爄75RN矬#Ow纐V +(Q@桃,L 扏>U-?峴倄6 p(缢a:`秢鋛唧妷G洨袯勘wQM鶛6暪對y繽牠z+:鉒3j輢儁g曘右歕D蕁窜R餁緁6s徍px(ⅷ(R工;鈥T8澗RFO8玹朽襤ㄊ ヲ咭+濶O\驤ps鳴a[*yc甶 衻j變T(⑦BH蝢譜d怟k声?搗淶2飏 #|磻髊蕊鳹挾\:幍崻-+n 凌s櫕諷PMJc=智EH7MH鎷~M蜂z鳐嶰2 纻H雽O,v騳虶革$幺5}Ne鹭v岬慗欢嶘 )$蒤)=(宮Fp=Nh儴彉烎碤@ 5 詮qX橗o诇V<獬lC髆[荺AS-蜒KH声曩肓苢奭{鈿e@环=┉2*9鋎酢胓孬m>逭2膒泺I鄜碮,V0,明1鏥qu) *晛〆峞8 哯Vw躬擳y"H唯B嶰<舂s苆嬊$\佔 +q黑# 0z馝麙剏斷怓q灲↖ +),oL諰V2捋镊xi鲄X駵{zsZ崖 [侫$5肒摚n ex懥.c*绕闅懍*鵺)+憞槞艷o?螇,5浆Y潷,:┯呕如 +d輤岀佚ka濰 #洚9窿U沰К襙c;扚F6儙?隬f2l塞{訤閖u皱斢弇}DYw撈9?6=Tr)Hfz栫滦3>x<鄪#"樜壍摯镗臾儉hC棐35衈8嘔eU#評䲡c胆簰?蛭E撣幙X擽8琅8璠24隹釽3\碂航*軶髿質 w'!竎渵zTOQP槞1歀悾}:S!"颈u灆4訖|眬|姺*&#p嶋屧WV餧:剙U 諍]Kmr玱4╠卩0飸謹`R袻(((((())88巹c>羯,n饧姃憜T嚆迊5<烲P莉C +V銗2~帲凐2nG謧侀@ 紵N昍c銬磳(A熥:匃ガ栖>狌銮鉙Ev6棑h=O篝▄矈w織鶛楒杨$勆 c +鎿J/祠Ku(慖灏'£y黬焓弆0$:醾鋧}3F亾J!夯'袂衄韎huΕI髏k6v翂$帨襪al溿顇簦娲9./j@1K@鈦(あ傽 E吐3幤玒L眏辦桖vFS濭酾I滉'b $浲R牿+,%8e,9橛璌z僸摉诌鎘蟷il刓Kd 昪庿⺶獤钒剉/禱萄i讏[-*硐吧猲蹣聼2|泛6#D卌bw"垾w扙.脦q>趏碄$蜾寽偖0Ed\i譻J唟秵3髦?孔簟籰墑y汼v-k,ZT&SpO#樨鸗v憱竧*始= 0i扛kw咺朄垸锱> 爾V歋#柸c鉙玾f霒4躍釜1??Zh粊.62窛'螉迁荙庈t┵BO蔋鑬宯w揣PO臬9揘$穠u%橻灚娱X-y[Ld寖8搧貍+l0# 坐k涶\Ej.Vu+澧#偳<徲5何S鎖A"d% 渃懥鼸+&y臛i侪"嬪碻g組湈糚磽堵*源R慇哅 s耤晈!艶}ju务C'颬湲9阖鲼閂獎收.A颱t聦恪珉趽5啯摺= 欘a鬅虉.﨨0礼莲盇 +虐儏~瑌?螶僄F抺┸$1 {争#强鎗⒋箙i趎7睐 '鎓习*J@嵏)lp M仃)戯秋 +缪{SN9您溠$>酞1,2~時k7违嬑AbO犂棛si縲塔QMV C奷(((((/t{鱻轏碧K& 认R3戸 4扒#YA8c 夦 輂2枃xnH郐嬩|貊?楑*+xa,b#-譲5-\SKS +拰U愊5 寷緀#覎艊蓛943d犐阨罖 AA: #躌騉lP:t沥`膶61詂1b銦>JH鄎嶍鱶`赠淩谤槂j嵔▽H擎r萑&+61:R唀萡 + $郑^( +斶憘q[⑷~c9<`琰骦蛝x萸J恼鞤$峐 +哛A q凓塱:(>g'4蜞f濧'璗伔$m$烏y +侹x鈪é筙樬v驟#0f\4g拋動Xв_An衽`y&4懴s2(##3郗n繬X寧k;Ii%灶J48z昽実5秩棰鵼遒V窈"椝IP"Woa庈v;}頫%rr@舄害搊4f釯л +軂G絘Mu6暕.昳40G#+y 7$ zg囈猂遢heJ彾^涞莴~筐叇5寮孔裸9牢jr梲灗#懃匷=Fps從~旊 IR睓し/櫰 d巖G隯q0c覅通'k枫葕7賠`壽俊荶s埔;eB?+拁緯'9鵝8五訟澕騷⿰U @螸酽葤鵏be髖+;s>裕3 d溧鎬稓 +垺貑媳鞾~% $辘 d猡沾鯲s鐬越E嶯0H5Vp拜C)(['廜*製莩r嚻q鞺o脈崢8鋑熤撠覠舋孕讯党n嶧埭8傭V釆=3岤c'僚ehw撣寫FDqeJ鍄菪缇?伃筨鸇j矒R嵢陵=3予j kG挮尜I.[疰嵜 z簸+賍p{6%Kq)= ]蝆W貧妌踺穚夕i&怌 壤悐X佔奲池l馵燨1虓庫NI'戉+!UG茑7 =聩T爞 4船>g{ +A烒ウ",F~c赣$}Q@Q@Q@滅敶QE!纭-3藼獭乪艶y獁z禃吚嗞鉪7P:u趷\荔籟韌 2第v/o_Z7瑝礢}OZz阩谬Y.t_甄k卦芫p滶%峕qJ捫~彡(弱ㄌ\u芓^訮L灃犨 +幋焗~D<V>es椎7商'q幤氁蹚┆亗H≯驣=8ぺ4&鬌柹9笝鎾@.99銣~WUc`儠 }袂乥蘳邘*+禉a釨/8T浆ki?#3N阁" )U湷eA肷+\g`銘XG く3[u0刿eQ'蘱(~旉C椰愧=)hTn2)魯 GJ擞^O6鉲Gq"霯#廚醅m仄x钎Q-F4昺'嬿孫蜨蹮Ls>鏓6祹殮;`湆畗)浫e 蛸M滏爆-u<繏,W轅鶸埈缣o%櫎u崨餃d笞 +Wあ赟尤絵,1D9|?!QKL%∝x蜇佖猹摡涤n[_硳pWv;Ux譟INV蹋6X宄弉hr譩r蹤_再妢拃蘰蚛Y70 +筍煒t諔rP63.G呶央U赞]B醤 肢氌5蛖89 *6嶅偯':V磟,U|├蚋Co$晦鮃o:隟熑WK懑屈0S)契鬄++VD/jL" + }N2i薖r 陏=蠏?梏 腟]\隣<皹'┤滕远迻:)򷤯濤/C)=篠6倄4骈H戃U!訯Hs魁淧!慎唟膈壞(?劯g嗾翨嶩⒏Y暦p9鶉撠;I\薠鋼T潟00頊g?+L緁 d握'8殞棐 2苭0=8览戕痡f挝襕舍gU祈漀N=G(Y粟*r幓w)靇) @#歍O-QU壼躉'箅W$禗慣$尋r@)峨菘鵎镐v鶸X粟i~匜M菫sD恶MjxH裒>C,珣绍N%2}鋘;鎷赱T4#*雪Q#侀N╠y#崫奱FzuМ8\銮O执8Z>姀g.>敔>ya +b苞)榺渄u悱#<兰鶳$当鼷绁;緎钎-肖 镩J:rs@參悙1煡-R鋛L.C'J7夢υ恝6蕧uq搹旛润颵禯V痙3_逘/紡旛荿觉英鈃匿v4門滚摝涙;┿' +j枍y樅}Γou鰦缅伻磏o搃帑騣驰$c96 G秊尞Ko柒蜪8Z#9詬G=鼏葸EI)/酟mJK#8Pr*x!卹睜9芆鎕86>歹t韙痓'y% :凕n?片败I=Ozv@}赶COP1挔}iくt埁艶h壬20;T勦f錬乩SZr :dgp8╠ yrXb L$屾艸阧媩a (吏詮笢邘瘆8CM夋巫;'v3鶹g>鯀狧半Pn蕲C;'];1悝H98=Z;+虾摎vsM''歎P藸儗歋H?JS謤 +((燽JZJ@敶 C尧H蜨3電殥倱v癝s螶u%0FE且夽!酩+8颪a7 憺攦┃P6{詓矩 +I,2证"╦畋Y4咶}zJMN<襀幸簇瓲嶩鐢%C 89钱′Vu血瓗`苌纤擑TWz勚qF愊2D0:燄衽Z睩S7 亴隢慘v鋍5L藃睌]尮莼滫c譀=诿wo嵷蜨VP003蚒褌寷&1K瑁})許&飍寛F趱 2:S 穑侊際褽亖tp!邴)$d>4阣j懆D/l籁U 渨94那Rㄍ長D+#1v`呗{P庌i$朤𖊤廖z酹P伌迊EP!c-SUUs濶 蕣Y圲Q扞慸GwE9d苮鯛vcP1捉2Y+煑 {矣KRp)歃3嗞:鸕怮H崤"(認x[.瓡S熜籜扥縓竐m匇{w 㑳2v6&遚u/#|餵ir!g)寄嵱8鐾b燝n#v??漍輰畒膣覴頓à $尖_1Y{供J慩徎渜隩b箰F#Е*U灌q頺D焉(H碠n紅蠐8韸p榗懴;欜碖I `:S嫙搅镹 B)娡"e*S=蟸待!1琰歸冭ih $悲鬄╅電橬任QL#I1傲6"塚6|.躵p;})u+G,QQI*@H柒8麿jv駮7B炪瑜C$r泇葡砬凿籁`漠颧Q@頖,15p 0任﨑詳Q@]峍 営嶧3NQM.K托蔂QIU%篽 ; s儙z}*M亘潘DZ懩q硿酇'+簻 冺QK<#殢Oq-/巸h?置錦'pq岥t %#Uq ~礽Kq佖M)_榒41袍BE`覙_5 蛋O +7(笢l豅垛伫q2}j誡[(=2*虈 苆媖葼漹岝<歀附oaf磹E傡6寽k?D>1$噛'囙摘蘗1韸裳碍qC*髴搸鴳誒ZROA9z妅 舄0B瀜GjC蠷H蛶源骑@朽h敀3$n圣B儗烰C抖+i+kW"禫5-&8S轾`⺷拌6F<0 獠|?4F赕4蜱r4d澥F@拳歱販N-kZ邜Z硺+栨僧d6拧y欦倉+xI罓FA醛j娲阹_K*Mt9簪80B$毄2Ik%袏3m滐;@嚋鐝SS贗$栬耶<羝G拥f烠睶叉[R珨## 襌憙L虠蟗窾D鱍P栫歓cu耵)!銑ZC渜-g咻內叭8缵桟鹰桲鸇崏鏵v 钋粝Jv撮k8蹮痏5j艷俞嗈q+F q麲镑齤R鞯7敋n哙坒.摌?τ芋ň蟫CE2苫喥@唿@豻;H95YL釛\憧座崭#8壍珳u鈯搉蟮2jr;NJ憗兦弭" #0@膘+>A潢0╀}OZR4ぎ煔4h'耿扂 + )i┮滰!歓kv燽夽r*m#\H + 丧r抦`詂痹2"'悺O飱$実$史m颂败箳- 纐'3懹鶹J瑆(訃膒m槚w~-lZ畏V盐焩A窺鈓d易gQT5(o1 ;蠔>5=瑆図 X豉q忨侗锑擳箺Ψ$渘垈@Β團,婎 +π粠语廭:袐;*ナ歧$朜滝駩J犦鶵 2醌%倇%pc ;秤镜09C3.\垥@A撖裹J娪P祷b栻颼7ci~"尘簼鍫碵鷸yL髱羧 +葼?0\n镠厠癭鞱Q驇1帞赔BN絟(傖髐o +H翨K*9#鼮暐鍴Y% + z礵i秈O* Bg<撛}+"\E%'b8F蒶鍿x%矆蚼囑剺澃~*+fY棛荤8=繚i尸:fRc8>革TR酗豦+ @-转k] 8緈?0钳z睉渄dvㄑ 萓堣E) 镗髗*憙w躽 搥)irr;sKL #W敹狪$鲡杒h0 鷥奻牉e吢m躖~措x彂ne躤D$鬁`妲瓖U擳撛5暵萀A]:症夆K忯則V榭 娰!]H 2<僈棻j坏逼瑆[灟,mf簩= I@7鳎8怯礑諻>ht緌+?裦厺"I A9旾"&巬 剮5櫓]jR%*!舽U巣乳弎V%幰贆'慖7`灉熟9{8O鴖JGi禜W 宋 R翼偷矰a1bF9fR_';幮踆晱裿㥮敱沛梷珻c`9?峕撼昈xG腆奞撔g4S頍 +@忔邇屻蹰風椀撒癛蔏s鰼隟鞍籙 +==s蚎詎 姏奸褣=弹g賚喾菘蕧Sv1 f<&苃町溕)?它+ⅱ灘1b蹗IC倷#鵴稠f 冢$ +}∪@d櫌Y!酧!豔<zq鞰哇m  7愪z沐5佰y綣祗d2$鍙S弦暀镀}睽抃i鈌備惄亽藔I` {A瀉瀥焠菀俱姱猕n姿縚#却-笘 oO执{V[绍領F擻:镫齓墱S 渀冶嘤A鞮攪<瀒男鄺萬仌s辉 虋睍l笃 ▅Hk e1?弉~祐蔣^2矰cd;zpq帧娗 昬\gё珚|$彆粄UE鮡訝鷣 y冹` +0缘f )`tイ#渻-#0U,zM l渢5藎瀂熮?{w爄]<7K腖&=⺪x蜦酩kTk蘸/.銶姏瘟飶_%糞G4ユ +"Lr澉蚘ゾ宸数覍冻\圮;鬯/ +9E饭镵E )窢QE +嶩銠p璁;dt(爄踒媔l2钴爙 Dmup.悗膬ZtT颍EZ]u +(ⅷ((ⅱ箰;爄]裃/r鉵 廘姃j翁):以Sg` 鋜(d娔繛 鍦A1v磎睪答s徲#f 缵碍肰繄埪:櫪9;欠G=}8:痧W敽SR襓洳打縱F/川dq螶濾*阩緸<屆lj彅{z砸 ^ ;梭Fzc8瓐汍贙虒S+犮覜穿G嚼$Ri 抲0 $煚獝#$笫霖JAE<9泸獻2N檬h0lz鏓蘽繇隡氅1|撅s.=@6v6奣攅硨偣鄡䙌*砰_呈BeB渽G= #捺?A酽31!!芸Q韧G懶韚$2艃[;O皔j虌rQ烰稭l*娨c7a簕T=┵県bZ矶藮鑋礩W*2qi-膗;W枮\Y屄6b創顂閆7榯婩歏曓 遨┫?伂6︱--翸&鹂2r9砹 +閘eY-錒腍+姚5$〦ソ}Xⅰ秹釐朓辀]30 z烰旂u瓘=;!h 蟴P稚:M繦釒藂恟G_5嫟豄k#I$PBpb?夔耥V5}8躩^s讷B%衿y社鶸逝祠/gG.髡W2)獱雨鐍2ぴ磧-2D埔垕(悓仦jM犁讴6謌*丳'@z鋥*Y辗cn贠>$`NIa2VH虉2iD*V 鏆慏髬斱IM粐q煭jq;]撗MGWS慛R憵Zk(a凓v瑳2{⿲ou$v瞍8崀f靭}1隯幠:抮s豓u龒蒎堍;Ф劺m鶅N殳褡璂曆袯N2届E润巁(;B彅O?#[U碸E紂躋@-宯==闦qVDV殰跦( (({R袳QEQE x 已@B@-兹S磀奌&.OSc隨*呰)n^S 抺UmIM鸄,嚼珪^'捳亿E嶴褬=鶳緳臸j:暭呀勱# +豹菛r \帲阍Wr 圢g 檰 Q笍L諨 村D`D{ 3例Nk`謙鉱轁x邯J<狈骣堀++HJ舂裊 +n<冺QN@艻=i掷陎}Nw疠@鉁HQ撘帲僎愬 +Q庯R崿墂 +J橢q懠`話D@鶉4鶚;q#症#訴gM铑+;暦22夾v5含C)H 餶濰b>+怞 ,/#?C[錔腣爡8焻D/┵奞糧荪 +I8贗x镴&7lC.萼s帣飱uY嚷)誡F童-+1弎瓣*#溞9啹搵R] +6鲙n颽[6傞-兮"@麊p8钳璱+p篯狠羪Uv鷅瞣 )–y w闡d1芩灅3>漦ⅱ尽塹錦蠫莅黻9嶧zR誯k袀?3fJ騀?*蜂rF状塜昿@$疥Jh燲8^釜6楆酚厮鶷馦苟7蕈檾⑸Nq烎磩 8u5FE* 蓺Y^PZ3z镑J&掃E以 8T 5u]褍+ A憑^_Be箠[$擪2F;t姊J谂jt覘;Q/ut5褧裖2叭 N硺(((((((埻嫊噆|萛7n齤Z(爈(/=箮9^&%~d8  *z璼q錙k#3HW憺抺褚撠╛汣'U硯 硖ヮ$P匰>Y冹酂CV-"諣緡3ヅ磰翬TT憣c粀觭p +n( 訌颅Z]$苪I呐X7Q犂轼謎+茼敠∷d走練v鐼p釛bH8L0ri騀LE個z*鸽門蝬ふ0栦猘A歒Y恡銥敹 +T)%l∏9留G+稞抟1蝧Mb燿侙諤>蟳-凋,{#焭誖睩s祮FF+5$喂視;6磃5聫鳬,&菟FWi蝛r磅x6陑u揖Jˋ=A=3[u1輾字0~_"Y +靫笪#隦)鄎迶屻'襽c*蝪蠶E嶯R敽壜ㄉ>倿i(%骬3祧鈉諶H$佔璱o璙戞 +7撊8萤睐謁緱imv1DG鼦礜扗簢:倰E癳r '(稏cNr紀e_洨岰[溮桃Z埦^鋠=5筁UH +4p +}\SKS挰'x!:d謀j働骻朽/欗Z艶z飧蚮+自RXRY%0眰J湺8硪ΓIj畂儎&.]啪X习) }慔蕫G厢[懌珹d1彼岨弖m砞7虫DT chx鳍wや焒H藷JrKE"QHNCord諙輆,诧尓徢8;暄鄳堻#}k;J硉k<铺瞕鳖;螦氌獖涸渭攋.N3∫b$X兮0[+啿潂毪儻#閆5脴8灵O#5Zm觐g2糶.吁虷\1觞伶掭姿x 1帣箋鞸鴲队媹寂)鑬qQ_XG~#YcRw$nU\z6:舁V蒽甂Z戮K徤M%箪;V=諜-騅 h(藥1匛轼訯Td踤(QEQEQEQEZ鍪+卣d.r糾禂矱&8膳 ╙JN%N卍蝢蹒灍]板'-聤(QEQE^鶮槵鋥8D缱镼jk罈祷嘳跗3鑣全祮簍\砀k堒MgуQ+y^钔~>_譺蛰き$褻.4mu+零{qY疀ㄚj l|倣褝7mC鴕}? +軌赱X]A>:(8k?O誉嗈薳欄#=徽R*鋪荂T暰促话笔P鷰鉄鐪'叩Bb&En+嶾ㄈk$訫雮叶0 gm睖戸苅赢%$.验奤_1+瀦鶷YM+湺+苻Z!戅帚旹-躶懹冷Y稅扶近尙 怈鑣廭kK烏[常4訿/螿 m鋟9~I嗓q態p Y蟤/aA8Ξs從歴v螦@橥s迠*攋篪"f>LP 眮薾 g忬姷 -8b8>昁MD壹藡埑#缣槺g蹨寬OzzT窖>5救瑭*櫙$x挜@9RIns鳴銸$抒nO鶹8,熨7贒⺋2m坻w荺})!朒9x隘零訐捉9泯蒚脯B铪蒫#嬠舞 +獊=鸀2.:譏^~GGX縑u ".@菕}+P&ガ*VO迒BPd氬鏷吴佝,㥮藳chQt況遁/zZ)隔ㄥ還≒;y冷姃2oc梥2D~e苲蹥粴 +茻t/N%E晧29+Dp藂i垣 僋Τ*鉺搧撛#幨P3邾V76垲 冺巟嗀Ts瀥蟦1Vd慭鲟褡尧援>蚦$芈筌越崰$柗mpn_輸Tm爳9=鶸姭}捚8让鉺紌囜V┇跼*r>]倞(QEQEQEQEQEQEQEQES_v瀑嶘=3N;&]B6H9б8K疵i膉9h=授嶄枍k&蒮筺0=9霁h哪冤#%O${qMVh褽S;┧jP[)V儊;T b斠Ij痲钝嘟KXaT,纴驇軓髪贛qqn牞惏 炚:&6Gj鳅┰!烲沨p#l湳\憧#炘濃 Vn趎浀J郻f鳗鞻U 潴p[h\;僾镸靍 %a瑢ln鬂Sq冓ТW[HV\鶃6NNq=(揓.珏卆蒊 筘2鴞瑿k惸W{偁溹aL臬c阜8潲詑笍b鄳軄視奟V3$wG 侹y嫷睮2qV:蕌揦Y圵Qy=獸;U~*酇镼9憙G礕F蝧RS3j膉薮筅`詟鋑aIK溣H4Z婃H瀡>-T皂揠O窆苶?覔馗$鋼嚠`撓傉<1=乴?诞辡6勝$姘< +Gkzh1抸酅例Mtt殡g孞5錀酢SR絔;O氶愿寎哑I8┊o茅雷罟n';x劭侄|G3翣8 頟c燽3X>厲襓倔怯譗7铯ua爾R赀艨z巶Ps隞yɡF$tz耖N畩梋名晶<螡牘6R{``p?Y堧慲鍱^櫪嚣衂"GqF#峷獡御R幉*E.镳圏墣P $鷼IW|d撠S璀 雚p3溜P9. +靲/俆笙璈I鶙 7鹫k磞-緄|c8螨I鶵e$抦絲+ R妎頉p檟$dy}廕莰 婃唗Y#n )+ⅷ增r-QTdQM;樊賰焈juQ@Q@Q@Q@Q@欑(()23岒( 2 V禉氣G_) 鐰b璘6英7)4x埄凱c=铮I摺9l詨S72 錇9乡Qjh蚫虄鲬愱}=,諠珑 *9鋵Z黍冨m 鋈§mI;v.舚梫顰層懼H招錢*絺8皦f宥鵖e傕\D2,)伋犌C且曓崴杠藏滗宐A佭璒%2:矠噤S^<繞漉谽訇SGg泀"茋8'郑*齭Q曛 p4g{ 668 ;猝[]{甁2vF姴+V 妷⿲扥栽Zg涼艰腞r j 侴躍睥3凵J┕Jn苢戸Ш箷筬銄 R;Iq2佚?昣_0.O瞀1騬x颶f硯莈t在aIA鋟丞1Us5搻 ànp!鵗()氓-%-%儜儊<孯袬帖9e$轐媔\虾擟'1炘填霫ES ((((ΓnPpG抱PEPH d`鶵袬Q@Q@W嵓唃rRz懬隫(爄貖轌 駾>慠袳葚SY稅)訮 (mPx9D)"哠:鼴( .蔥dkr$z冔缨絔)梀 (#h鑙糇m圼)$挶r湩.g 暏c讈隠后$睚瓿a睍 2?,砸vU<R"鞞=+t57R垂扸$埣0癖摄==j辶耟uc奼熷*檁粣yh干賆扔带琩竓X頇睞Nj癃龀t$ 貵姚;侕 +蒱tTr敍栢wonx `c=!f仉9 寍佞v︴|鸓$舕8*&-1鐷韧H !hb +((燼EPQE6G屒瑨E渫H鍛r崶菍u蚛搚T茼3蝥U}2循趛螢B菫儼滳肇椐hE竖酤倔[J陡.难9施)CkI*A鑚ァV;儂g孶7求瑥6瑴G鞂8身R冇兺c>4淯穠WVdB <笾箿C +$鍒_纬觖 花鋽鄱J蝯鳝2蚻鞶>b罖藴暆踲:渁jw粆 磤2A)i+C怹( +( +( +( +( +( +( +( +( +* k.遮轅 :徶Вq粹炻(燗EPEPCH臾SUB畿溆à 倶1蓼c磄擊ǎ墤惨3庂な]荄 >n昗P闯qp籉I>煛OP阐r茖醕V)Pw轷わm ︺喂"夻 + md7u鍧佩墛2笨X渨芬璆n-乊榒 -* +2s+_F_村|酗∠桉竽@&9 21Z蚲豀E帧聄~+8虳v:玗投+洹鉀|游10霌鞮蒷8搞#1 8鈺' 嘁E蝛l孩莆衿g$<{*R*弓NQ裃Tm嵢q鍴Z0爩仏泱Q? h[ol懶(笣6檉挋*:歖喇y胪2,+:疭K歚) +JZ巊蜮f炦Z+鑕j睱&EidX椆5絤 傧Udi屽朡B翥醍峊(瘄覀茎猝蕰>īl阡U涡:< +)s晳疱老8=齣FpI'軗氄+R殩汩錐*9b蘖伭2轀w`  攘?昪畬氐P<鵯豼蹒譡岋*M60侍NX駳菸妘e熟譯齢+p韝1该/支E聲慔 r{丏6馜]臓$玈&:,QL2(擥吴3I0c$682,IEVK煙d奣侒1#磕U寖宻歐媅婨S$(((((((<檇)瀣r臮0K簌T源# 伓掬6擙鍁6Hd蝪懾怎晊Y\"34k楔飶j覨WEu9Vw)鬴"暐燉a宰 P卪珿:姡!慁濺邘qN< +Zc溧徝4vF)輸Pq驕55;)p *GY`/&栞鳗f嵮硟筿殦M曇 墽奊i贅惣c皓w/姑c盾m襂">n$q@孳浔gv芀g<炠 Kb襍^f>腡n<秦ra 文(倾S刪鈙,FT櫯U頵猓詐;H!z鬄ie!cv 駳dq/嶰==,Ld麡鎮z扭辠瘇泇ω限飵尒l幍P圹Gx亿4伋髥<钱?爷寥黭Uef/菷躃gGOZ#<褗g4欩盠C.&[xZW握霂禌} 精21'虈=獸1,竎灂昸0+99閺症]4,2v-6fA懻埩<:lJ y$払|?/Z篅(A 9恓8礶;穘 hQ抝镍8扳焜-窧v胄鈵,匟吱山Z +拹 R儦 z卐霌鵙悛痋'侙骦d銚冶\蹽 夋,筬3䓖韵c|:\榻C嬱簀援#撟$幷膊;F怯鶷 +[y t 顈r.8:}*缀瑀望Y>懘髱?*HRx銘妸轈*'#盈隥蛈誧顂;責0A鈿q瞢Z錦捸V9倿>P--窼]!f)詳Z( +)#99牲﹉((寕3娞益h町l%淛蔣塵抸襫谈潦-畣寫兞 劁fㄩn褭l?48蹞蹩ō涂嶩.;0瑯芓M)i﹖戒帔黻iQMF娝褑E:JO@I酯= 3k0r藢4>狹p$厶籄9惝?槯奖y虥秥甘巤琥t舂(\`颣VZ鍗炪D熀W#3U/`i$F餕1硇酹@` +Z福>WtT喿!俨仄s熐&6憤吐I(d<ㄇo(絼J^7黑$'酨+g'魻0巅q跗)c0*薔N迵淦A;緯*()久烟m暒$扥&奵;dS!-E<孯*鈹z心$ 渢2 p9憬U眲L飐塙*[鱝j %drP糏閃^屿皔q綰*G鎗mvm獭 ud憒直仌 苶:Qy糓槠=)#$4.1蟎苑梭+v*籐-c" eK漪(庅媞炤陎0@ +碡2;歳▍N 9另Uc77w +* +9绲'蓉z廧F*P債LO$`n飱dkkR匚3)5]6f8蒻蚨蠬'q?朵gRVJZ`' 炣S閽RR*$帶:)r1弞F' /銡$m圼=M: 腊<{ +除霘x 福⑧儊PL1i馉錃[芟A%涽 ]驇 炜Ztp琗gr膓< 觤!t茴p_潈牜渃*N!hfaEPEPEP隆l\TOo 覧rT棌%H襞LW渹Fz幑伬奛噐嗙濬錔TA`冝3膾琑M曺T,#豾d c:赋欖-8胄烏玒髦油j\铲駦t>蓐栈y餉1$1Pr;奒M jZIK覇尃S卪面腠唑`w缭裃靜磭鏷B>s隠藃ZL優zT61蒇ぱ +a8#仼轭&淽楻3迻悓"9 +頴RGB軂粹隋8sD壗v瀱┥杄T\'E莦OCH甿 i闭偖T瀝:誖秩m+測w^1S,&倩<髝>ЛJ[ 栥謰\/授苠#訡LIr]鉫H躇寏5魠癷櫎櫕> VI-伾'娲隃衩w*5缱C鳷薚mEㄊ觳`{~r幀r{姶拕1鶍屐N甹倘寭 昳v9+籋[!麪U赶"璙Z籉纔雰蕻苀WTu 耕圜鳘L胜U顧$2*Hn;S爩孯\N)6.鈜寭擄M曊6灞々嶰譀(]8蟬R袬]愛:66 亷*E酯0)) 槐訯Q'ls衶W袙奲抳侤ld妢 灂Y芹%bz哛А4埢x=)2㈨疩岗#乛抚.B;介I莃~攃溣泞(QEQEQEQERs揔E聶$*O>竒巠燎jR20k7S諉泂n捓)泈始髿婴歾*r奟kG,洂磴籀]c焢8тz襫\g#{頖)餁巏冨0X滢T醧倊昪#'ékr檾钋_b抇J $渀nl掃犸R$矷>^譧[ 敉-諟R粕$漪E『$`?!騁_┵劉ヾ4qHF#Vf 鐏逌譎膌旽`Xz瘾E狢 6G_4E i*ㄆUfaC;/>鏅|訂l1拽^*頋墭eGe纄A郩桠F@Z5$篦j紌l1j2]"(2!V橛щR⒅乞 箷疓5蛼Z $6嫫玽伵wS|B撤尵6廃绡醀fe1/>_Q幸芳邾n瑝-f2"EG1b1(穨&88社%仄 u.g{2.r隔9PP鹴/0毾詔i槹77 9臬>*y.廊A签⑸0岼旂逻焯綿,橪m亸掖# ┉僳頥  醅2q歕讥:m93儛q幋$t輲魺0OC舓壧|s颕Y橲%鋹绕C>8?吱觌$, 菥蠤:熇V茛C&裠PW寋 Y源)+n/腧6y8泭N0镄}i-鋸,?聭検x丬縮鸽Z)>fY +世酙=[々)佋G#n3懭8序*蝫q癈莩B鏷葑亦q覍嵷=q@r#'貨|a#>A鬛E +巖DLW痡拪潣攘2c汕~r溺敨湝沭眻磕 z冶聻邌i ,煒屻趷*8)詓笉廆3M埢掀z/牔|6譈S9雠M彌>裍Z(!EPEPEPEPEPg淨@3Gz@Ic惹#+釄銕)I-篃}d黯揨!TqA三j图/ +揓f`,F2q支ㄦ"%Yy=iYn_磽\t:恾E4e溹7翳淜羹!煡+(u 酱c━怞#恞Ib5堩撘潙澒)嬓F;T済卐遉9`矘5似每"38螓绛;薥┣)託柈i ;3[!窣掋 >闯2怶喀=iB*n徫s娠鞤{^,|瑒q巹Zd动q蓫嫶偢鄪l瓌 u< +z‥ +*亐 2> j-v3贊霼=秤U貟X撍擑I臟騘,&搉鸲饁阈鳘V蓅蚤=谳( .榆q䎬瑲磸B3S譂>~桙M򧊹苅翌h#f千扮萡9#簟篥4攘哮諟吩x襎殤蔢 芠;S 盍)H射4 管2;PWB贛#Eq臛p力l}臙巼$ $戅澣宄#渱乪<錇誢頔o]茻3釘旭汾┹l歃揾)|z灱T秈N7h喥焂庢P綯*葖,G蜾彮n菩墣y&7廽。[l洞y槞鋍‰相k^I#囹88+"q3鏉桵 +SN荻稗頍赙鞖R+鐪?峧媓懀_,骞?>庖;曐8Y9P躘DB琣$鷑Ei蒨%邴G蕕`妃jG耕<f蛑Fm姟 *p丆c5C圿R耸要重派I轉瀊镓H岉4 ##俉侒數Fb袳(()拞10O糋猗欼 1鹿o鈈xZ|(.3鐚摎EZ抒"(逎0jSmQE +( +( +( +( +( +( +( +( +(昆嵷PO黫鄡墟氶總~Ba幋豟+鋵撏"窗郷8`射vT0G$A創A9\==閶}Hf旟鸄繸陡 +殚TJJd藘溹g竿^荖MJ4欼$叏x7tz哉 ;騴鴈筂 ジ\蘕3欩rNO3B藹U$渂箯"遥r$$撥d泗5旫$v釟T?SmX,跷~糡m!uQ┈莌鎾澤Q臆馬"n1隠e9際ばF炩 +X蚂釈t觞hi滳*⒉悌^昡嫽|鋼圳仱賔_-&?籒丆HP獣1R#2T噔-id>eQ0D +0fPH4O彼灙 `渇Ⅱ拘U硐|ft4!“qQ遰鼮膻qNX<獵~忶-袎?椰缬Wruu#g.=)岵H<L雳c镽闍y黬I8u呼2W3紑<源锐侴S社8雩dn9胍/qhR 滗 v牥@'侊@ EPEP$d*FCu绛8`S,ヂ珏8jZ畲aEP ((((((((((1骻'1跂t匵緙Q膏g謻%'rw仝 );&岓柵)輵磳w)Zk 阍N]N:v绛*崳膇娒2oOF鸳憡Z(7卂@-P +N3佇P"柌=駱<樌猇J沿[#¬H旽羿qG壻汵.媞:F鄮爞q鶃VW$挘佂d鯌薊y0q熇T2纅檍蘄R菕2x-!嶩缱籀"O薇&NI4浇︰}馎[SeD囷d9虭韲 ╟鄗諕婎墀鮔.ゥH梳n鉘dO>鈸暀笷鱖鞄瀊,`滒顰 鶈壃Z_*閊萘 蘓揑启x榰 诈'9%Bt歆囑(N禳孽5b:\愂岀jO{峌P堂╇F矜l寥蟡u! 漶L慽q鏾=i?钋S棕P qb撎\砼9慩侤辱q取T*:o]7懶o腸 撣恱СR蘰4豜;.茯9迱罩QE2D镵EQEQEQEQEQEQES#9wyn囗9留г_g嬳?h踲V闗EP ((<奪(T(4*獉 +u2Im鄴@鮟壚搔 CJcrzMp騚`'8靭~4$b"$>1蝘挾ぴQE2(=@枈篷坡 嬆$w1芉皜=j曥(%膀侒6皇@锠`B岠%9溏腚Y璠;e钣俔m扝鄘`驧竲驗=赫変TT褡W1:鉀靏_3銑煾砬│G嵜=闘鄲=痢Lh0卫缽胦啌r佋噻旽c簡罙搶阒H哨s憣/a躶I刵鰀揊颌 螋 qN塢詞鋧zt颪(竹吺+|脦旐綥籱D^z4悫s{v缸"敦Z8p熨繱?錤s-瀜隤柩氭闥搐G'詫忖烨( O蘺弦sΓNv[%\T備Tx唢朠A=zw鞾氟$Qy撡=.@普;V擾h1珉蟌"y憫8鮪)璑X諘){疌 +枕銯椝繈 +}Z鄣淺啦)灙z妿赛= Z*颅S澷-?岟-Y! 搧P軿k桯爪鎙3.靏蓖e蒇>,谯擈懜H 庈:;lkJ*O辷E浰嬋O碝7撇:摀?腢谒M6;4X瓋鵑茱l琄糟鷚ず部蓭t4+E .Q抩!抋V霊G犭R囡'w镠F%钵狋GCL途傃E +( +( +( +( +( +( +(${w圦炵覠IH鄱闒h(&ih(( +策鈀扰duI鑢p脂V棋鹋#j踏H閹熚ぅ疪泿湣Q葓]F:妞鼢$261^俯*b+$?遚=;P焛髜s徾9J2R2<稪u&鸦w|b枡E!8階 z谭戞護讯腵冏!Xw&珿V飸礚?C舄鷝ㄔ!A蜓v.锣畗縅< #.T-畊Tk洍鋀S篧l麝)鋎鋹2xN ?缃#寭晾>緮噓}2y琅*=侀bf<&'済跂殼捓 颪9倞((((((((((9壤<笠枈((((( +跲3K嶢ア#m)薱懽跓H抮A镠嫷B侼;摀@荢X憣)9?:Rj婈S磼N障舆:4奪J 洫賕y懺`肄渖 z鉂鶯Ym華<搞УY-韁鳅%顫2暘锋A%2W許%T|舿Q萛徢鵓G舜渰7蔹 偑'瞘<驻\佄98=*9H.霳:傻賌icEUa渻哮炸%egA鏿=NC?L择苣眳U(〧砕Z妙_('嫦鑨够拷KG+?w?桻N灶Z74D&躓颀i鯶a皢$媋!FF胸溏箜迧銻J4]鱶~.+傷納Svy侤瓸;90Y7俓m 謶a #:d;U劓嬷唷虣g)?*幘櫑w摓1=)\眆m/0I鯛趹UPa@.F嗉鋵籀肉(凊%}噂渨@>爟dn錯|ta冥#=h#:lQ琎呶 9绕 -w癚E((((((((((((((((kt RD瀂`1蝦M;<鈻佭KNDH!尺疭抶#V庫F枋巠权5YD]軇鉲M冿?Z稾'檯淰?冥H鄃詼~2v6z盺e8:]磠\2"淬旷7Eだ鵉z僔.暿〣x<幥隩Ba?y夳繊'朴nO﹑ 您|勑i蔳#Z2 +宂箮]c嵲fd屲彉)閾4蒨I婎'燁詫羱f%p9⊕) %$b-5丿%ɡ阢搧栯荶# +7HG@z妡碄$丗H諼晹粚砦>$S敜紝MI鏋K$(辒亪pTt濧+j掬 暎eC鹽k/F愝j:屟Xo-6┸镩冏^忸鐀1S u55Sko識,蔢碄︶:猊╜孊)@c刭a鳓5糽蔔r疭汃{寬唔嬿暑扩TI鋵曮1夕j敄﨤扡┐喨bA}?蟌)&慤單榚9Z拀藬U搲j*^~A湉sQ6毹>bwj瞚頔渵dlX懟岊)種憜 伕猡攽唤5宷藼!rOS豍$IES$((((((((((((((()1骻'Z(03渦アk"寱鑮)詢8绛-FbS*扇epz弞I+ a圆S軨JH喸 +檄"撽*n7鉾|tk2\i惃%嵰衫擖舑Fr溺衄"/釾櫆度K!熞X趨斳&I遙鍒刳8?+b漷T燫y'侂R(f 颟镨圈蓼+栦3<5N慀'#紾崁硖憫鉅3鞐dyd榇>証潦灞h窹9D[U7s済:殜(頕惽睭珖攤' +拪(圮(QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE%&B昞u镋 瑒欼|M2 U陋艈I鐝蘍ED衂M鶁ǹ)Gp;T>垶S1硗S#ea>翐mm7抳┼鷼(セ)鐹野$*羉埸jH壛,I$憧颌奷船9湿梟2k+眥猍凼翀褸贕#隕3za'.懪[几7舵1撽}轸QZM遬(╖州嘔 + 民沎V蟱i狵%褰肹匪D8(7么迦宙降腤p,>∑*Z(獘篖维*J+ +d彴唂U寀-脍(d臸>(QEQEQEQEQEQEQEQEQE +endstream +endobj +118 0 obj +<< +/Length 72 +/Filter/FlateDecode +/Name/Im11 +/Type/XObject +/Subtype/Form +/BBox[0 0 2384 3370] +/FormType 1 +/Matrix[1 0 0 1 -37 -212] +/Resources<< +/ProcSet[/PDF/ImageC] +/XObject 119 0 R +>> +>> +stream +x+T032472T0AdNr.W憫箲灡1X佬滦\下L列蘌侠蘃烈菻下?萛%+叭 +endstream +endobj +119 0 obj +<< +/R7 120 0 R +>> +endobj +120 0 obj +<< +/Subtype/Image +/ColorSpace/DeviceRGB +/Width 720 +/Height 576 +/BitsPerComponent 8 +/Filter/DCTDecode +/Length 44480 +>> +stream +AdobedC +  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY@" + }!1AQa"q2亼#B绷R佯$3br +%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz儎厗噲墛挀敃枟槞殺¥ウЖ┆渤吹斗腹郝媚牌侨墒矣哉肿刭卺忏溴骁栝犟蝮趱鲼 + w!1AQaq"2B憽绷 #3Rbr +$4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz們剠唶垑姃摂晼棙櫄ⅲぅΗī炒刀犯购旅呐魄壬室釉罩棕仝忏溴骁栝牝篝貊鼬 ?魵( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +)1Dfq侂P盿業S裑=簕sJ(懂L[n|#揘J 箑-r惁煋z剗v3蹫彅稥VYB彳snwG玉蚘V +(Q@Q@Q@Q@Q@Q@Q@ w趧宖湩 夆Pん坤0T6N~磱脖=敶 +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +()煋.棑2x}jdBUZP亼暶⺮M簭螎 +^滜*1H淪<#┫倾S6I: {嚁DF硨;鷆L'嗛6涟湏2p?Z乺閜X%#j滛鐪阕覟L夷騿 闻F苮n;猞孳2禅勅S?{闓|S,T 駺狼鮆漳熁 e苝1伻闇溦$栂L鄎姢頰8蜩:(2 +( +( +( +( +( +( +(! +噖C臛 囸$∪橥C鵕闦K晼hYC$z uQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@G44蝭9鈰*V1惎冮俽J傐K匼鋹2ORGL跞膂q蔉勌FT 1荺躁宸篐r6"$莞4X蜪89膳D帒軭緅"8-O<鏢5煔- 煒~|*9艕窾0膶ㄅq3苶>%睗c(蹝u}W#侴璚慤蘳 p:`:襓b鴡 涌秞酹Z39{芽RQT`QEQEQEQEQEQEQE5鳩鶸E;X)膍舄u,譃培A帞匒`膔:d 斍qR礷QE +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +珄$1鶏糶鳅~礶幷'k潬o2/欏8B0_巖犴S'汹/飗;蝀8%Bd岒O隫;s堮*蓾~9 +)幬A湏颢q寭蟕:<躁芨粂8鋫6灱髿則IXu彼瑦/ 蘕侽~?爵頤 L#勖葁1$r +銓R\锔 +扰媘,2弉斻$`G#JC! d灴蠸!氙觚|埈庅祩&wA蠡co$oф*d*V%YKIA#s}qP d驫敾B苬镤秠腽*C0C菗贡抯 黴%g +)1!pC`du)酢若 +( +( +( +( +( +( +(#燒Q獫猭嚿;u█跞雯f餠C彏誰 銾廘T懟!霊锽b攐﹏奐Z((((((((((((((((((((((((((((((侥2粋 潋x<j〉e.賫峅貈: 徥2F瞐仡]軄儞镛7圽-/*>紼C澡媞Z]綶$`昹 濶N? 埅ろ1{w瓢!lQ 8锿E枎#葨B'о>c叩暸2徊+;滛翮鷘贂V8岮Vs礨u苢1滬覷妨麓鹀沃莼筤夸S_3廿m u蚦^夽CA<)kS(((((((嗙璙7 斴灂V胉鉃及蹉)熓丠览篱KP砾\又Λ9毘 +(Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@ 懚.09b{ +凸惒,潦騼災q盹Zn侱do豪僒淸42搂 7b8\g幷26ひ2VE叆V扐煙.J99(崙{) c酹7y7刍Bw(2r=:觫Gh瓹吮\(9蝬幺熺Ssn[峣"(蜇m薬溉1佭-0R 鐜菒q跚=,O瀅藺蛘99譊k 窅K+3cu#垮E儥[O腈2T7P+哶,仄8袅揟$ 盠癢 9 /菍}* 扙B觋襭I滻颕珬室 9;槻鶉錰犗9r:戯Z礑)C #霅豰膗霝務旮溦Zn +(ⅷ((((() d)j剿鬉41臸貛I倨ME弞_镮-嗏建1)r咿?溲埴!翴鴱鉜H宽礝結禦$U"&晧琚姡((((((((((((((((((((((((((((甽笓Tg'罹T/篶~笛溹鳟m甃鬆p审寘bB~櫸MgS≠匫4/DR燮激nWo刊4謈颋Q1b =蝴v,绊鞑虹k1缮橹9a潅澢鴫訯mDきa财瀉;姾(&99嵯 溉8'{z漀螊R飳卜,蘃8䴙Bv岔>浸[4X槒$p$厗T,厍ㄤu-囿m(;I髇笪I<~$@萄眃b朇2p枚zt螝づq錺O,瓊v珐究S@'g鎶+#羪E貉C骻$u鐨 Z胻B$K傃#c r:=:g蟓泇/3A隓堈&IEV(QEQEQEQEQE孊'牚LK签┊X/n縕凁ゝ蠽W8⺄勼镲Jx茉!s簦"汧h噓䲠f浲悭bX.蓠WtJ +0滝+:7|zQ;捬I滛オ2 +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +(璫羣啶a 檉,跟粘QMs箏n0脝閮R胀i凿鸿蕱辥$眓b錍l廜ㄢ1r嶆;*ˊ9宒j絪楙%o.0I@:鷡52";x;z煥乳徶¢∮N襈E!鄪槝v灆?CNG7臵)!曎8鋍岕赭硑^Xe;顊懹窑@岙 #RA鱴祁}8kp夽貢e凥騂瞎顊v*笊輩ROMS慸尙rd2捤 \哻老盔肇笁d 蕄死O職&j隰!付I聿X豱=1颲mrma-澟rs=i ;夁偋$郹灻>糡誌ks)N皴 +(楺EQEQEQEQE眔鋚鬲 + X歖*貂$漉ゝ餘趰緃郑鵾T岩佅\ +(詁佋J\ v彮:闉:U圱摷揚毣黬 4e7衂(ⅷ((((((((((((((((((((((()沎誊巹鬛EQEQEQE1敳-z`t晪隋溁b=罀>3鴃猪a({㎞禜_i(w#鶁:帮tM"ナn塈&A肜轻帰襜' 鸞+懟q綦慒F$頋.:$g赢?聳&V憡汝cPG馂踼>熴Hm齸"籇g泏Sh秕娆垓野w*[卆嵓~u4羶#虓|蹉渃徱琜&=b胪R2浶枈(0 +( +( +( +( +( +JZdZ旾茕揕=i莩M5B躋J~礄)(駹r}s@ +jQ香颕垭K鞬幗城岧9h螸⺋狊橥]9隩徲姾Fi:傃EFAEPE剠=($撘┫6釺p:RM6髱j:!N诔V(9聤((((((((((((((((((((((((瞡6.櫱輅28=G$}kZ矁7wg藣e賭亸9蚅嶈钌槵Q媘xH湝┤K竚繧&孚!苢炪垸鉂錯" 罾r鐪鐑螿萩聐r崕]r7u20;せ飍^1錌2.A萟=&璟癶.清m9=旯f 2:()阷3戯灂5栄l$n阕讴nDKQEQQEQEQEQEQETSF闲J枈潑R)C冞 2Ч0 C:"顒c欽S t}h鹶(檫ャ8镗奀奞赭酽 嵇:篪言撺N^拊v珣溒縅0zq熖Uc挠Fu6$*孊) '3ROj4ハ,觨8*j:)纶=i勼譅)Δ#j(璑((((((((((((((((((((((((J捃$懢A/?閆禆肥1.帙P憥a}阣oG$3$3灬[:PRXB0%[3岤f速+G 喈v#疛堾#7栦1蹨摓y彞"有W%絪镚O\~⺄c鶴幙Z炣w▃弉%郭"%眏)匯OAV`#0U砷T鏄骨A镮$吅煡DMCgD!mXL'廽R{S 鲦ぽ 4*^紂M锴婩Q[hQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEVb-焓 +獧b惯鱯鵷Io峻厣 狋8鳃运〉祣脤h娶+p弩箇08鶉N;{耘錣劌昪=P|膩軂=i8捵 ;萒♂Ow侀痢@2莫噄<p:亐 锪焸4}S聒q/  顀=y臤 +単;X濱l珲\I%PYO>黺愕I~雄Q$羯轸枿礒UQ@Q@Q@Q@Q@3蝢鞬I@9墒热联,0H舂f雌<4/O駹械&慢?Z\鳅uれh'耠LB廕O玺狕8邕荗/隦v酏(鑨碛证剚(镩隠陑g料4jo^倗秡雳郹~4"!4耰I殐 '0覔跉N9闅E!>粝櫸N)T4~g狕諛8\0跧甾嵠趬璄V菤QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE斒熩.鍢`X暲 +s熡玒L鼐窺" 邥{@霨84舶``瀓=轵6N384.+@&榸u鶵撏1*MR8際懠@苨兿覝鶞絏8U#s?.h9[aTAP?;晱#渻O麔,y搧9n靋'#O隔跽捩QZ丒PEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPY皘殑踁鹞A撐褳镜r4僎7q'帮灉麥#jZ輞eHWqC$lw1荿:泷#)壾)嵼s詓宼鐝支擧瑳Q:吧8'"]8母T剮3R蚥壅芻d$超樒2 鶶m菛#A!,2X/扜c蹫絠3 +6襓=厚瀩归R敼尭PQG蓪 o媒2-QEg8QEQEQEQEQEQEU9閃*敊t!︾歋讖聮犺:冇迊佝 c)觞?Jb吁P{耵⺄t绋䲠9稔w槿ル顂巋А┝胗謷S1転{R摰}鏟3d抸WbL鳋tL'磵oJ|i;Fq僋H聺蜏儚且は竆帳阚4X!燸zpq涌鑙漓9藅苳糸H  +CU5洴:帨鶶#qA + +)#>? 麥熃哥$4d撠埸驨F'9沭鍡筶 o9旖1膣誀#右硋頓嫄i 8? 犁y;=睙n礽楯烼[88#=轷F,(((((((((((((((((((((((+1F蚇@头$26{潺?媒i謈:敗PH['v6.碛圻=3S#j=}堁羿尮繤l怗J辥皥"佹n绶8麿:R唯 s:仦O聺+]82I蔃=~澘)_◤錒c笝$B酺d 驨V59w闇c圮妀+<櫈9懕"#9Y27`o;饅P+_B儬?JZ硺((((((* 憯緅z妐槏&Tw)瀒)z儰r⺄踵愕5qN#炦酟L;珩3趲O? +>囬@呴詔酯;N攢;L憜1顯n5'*64丩衱5&r殭#G鲝>尧z忬眄JI赬c觫聄!豉N眙爳 @琊香K溿撺03僉HS巗锴^摱1札L齢纅 +ɡ黫腸8球鶵肎藘蒼J膧a冇驵廜螑}衠语`u&攄Hy9 烽熥鶳遠蝠$!76UHI缃;8!绷>犕\竀泉羜帪礁#镅蜙|澻z7sL剸溻1L>U捃9'>Μ蚂霔OДRV [.F醹鬄y擎i馤j兇\vPx潸覮塃碸ⅲ嶡<粝0j罞P (((((((((((((((((((((LO↙孹2獪E,8霃笋:蠍刚?v∥翝軹gㄏn;T融栵衟"m愺诲躹mR}@鳇盌: u;馠船 逅 溧 溿ae>灊h嬏谾"U#樨襁j寥OJZA琅-YQEQEQEQEQEQE蒄c"烳竳 nP=)3鵕稴fu隣趛=)┝橛酾9鐨bb`鋐倇t﹜咦绁鶷 hw赏 :F塝滀z慶┿ 蹒酊幼#z怇&F1済a96&\t靫斛觭寧巨槧禰帩皅奿bx仱 傧鸰螌3榔=1湠璅s瀧恑 s潬餏G^韭泙y8駚NbX躰绌黫0Ywd.3據 -胵齌9褊鼜 Wh gi>垂#|胗+蛆锧%C0 +癮S兾?:cD幨r2綻1{sR埼闳8b橓絩?蟌忕Vm .浌\銧锢5F)7顨0 (袤8徬烏誤ǎ$岉鋡颲|艁F9S趑狀6莡昃z鬅蕰奟etm億e7n聅=03V⒒]捘1湠?L寘m崟p籿88顇)》U僶鄿怬o梅J[ +羳*A4禌 df羇9OA综橄5f犾P鉿辏鮷U&e*mlY24辏 ((((FP蔝`袳QEQEQEQHG)h((((((((((怶PB轣U攦鱋~紇_营r佌@<Z襷緽C驹9蕵:)黴艷~i与凇曭p)文aW╇MP/颏RVV8鞷彌媲94:g9!$`'?蕘7q0鱊=8认畾迿;鳐$鸕`B脿鈦「鐡x鳐#痩u莖蕫<<騣3骴溿砸(9厳 锋 +选 *W#8豏 沏楞灆m判m$|>闱紂擁Rrwc#倆懹滯uFv盀nK熠9<`88悃'栧䌷~R'/蘁 餴圩Be爩覭klnp7搞豱镠悐靁K,r1:盍8 鹷㑳#9*喇齼 0>茟G苋硵9镞穰np剙A嵌H砝?酅韣傭斎X鄊邅灱zpq篆5皃Sr  +?肾營豏C废腙p?狿縬K d{{tjIm(2侫苊摐 渰內熖%穘#儨m砷蟔Z胬娠豒&cR:({m$=)翭-硍蓐q岤庸#,QU處蓑 饉<磪H^q渹}(( 闌L:更<﹑N襀雰Ja 灛}耖覘1ⅳ粴&1巗扜)RQ9 lp8蟡孡 +耠K槯E[C^姭跍 8=3诂#T銾^-n:(QEQEQEQEQEQEQEQEQEQEQEQEQEQEU ̄呀;2N~:z骔?Q鎄撎鍃9#姍lkK獗.X YP焣\\鄑!70顯cv榆q怎酽柑+!9dyS烵剩(﹀]-LY,跟c腴"液n憿K鮬N鯸[袘N膶$塢<骄Z戾嘚O觴悿駠/"oA礍39鋨T篁GF1雽忬锧=鄂夘=i$输rr <詴fp(QEQEQEQEQEQERx:妶S橬:馫凇顃EqQH碓iI糸譀甶勞>б帣?QN?现毮兾~)#°瘠$焥宷I詛w䲠緶u鰻膻予{S噉s跊巟9黔Bg^G謺ya1瀲丄8<冿B噇t1Xaq瀮弎AR0<齲黫YH~;w +忣rj噕鄑飵敬娍6蓿ㄏJ^#擊湟`t芓髞襾嘰}2;{R>fpy橛в鼕C贼'覡谈ng焃牓瞯.纮s莺㧟橼昞#$荢?齴&'薴H蹇y=:熺J蔯 尞込g袂)摜卨亐鐇rM3匬vN2>烻J闎8Q o7BO隚塩栁 8轾w蟡@;骮釃滣隡 狗$*俽Fz縎O苊瀙z鏖鶶Y壦d7 }Q巌 if ,清0?C埘℡A壊T)99㘎d詇洈俌r 篝U崁3渁}>Q鞰 +M!&#憕\1-恲橄)鹥 鯻隟语c'軭砑巸囚w 土a闓L漢RN0鸆羟?8蝥鯾:鸁~;rY 9銮OZG#3?塑)橛慚9#粑O?鉓躃撿隌%@<-`8ys頌z熚氊^?,觾胕蹵鵶蜯.1z?齩瘠=啚['p額斴爩g9駧}(蚱 8勦}I圌琀=wt隦G+D鏸鵊4迄Y銖幼P@嚆伹鉆贚袔錢+^=d+岕撉z;噭'r1鞹ボ耇斞ⅱ奺梺岾V`覽Q@倞((((()9婶鞞 EPEPEPEPEPEPTo爽嗙q咙{U辍┼賿0蹥AC冿S-峣|h|jJK29朗2帔羯#宗成k啀淙慖8齤jM,眱楞鵶遥墷03Bo,{鐪绲#K=GC禘浠膟1憘绝砝鶶潋 Q?頻帩}驟籉"幢\香莖萓姢a%fQE2B((((#謨括驚%$揌EG#潲P \d炚 閾譃I=MFy5 *擁AO佬x試揌'幑y龋彲謵迊嚱`寧↑ u亰@'煣$Sz撓緄z鳓銕l:鈦![qs=:砧;焴熺)囵8砬Zh#攳#i;緳钳?8pB滜䙡:>o攔O簌~斃9)9=;{!9聹r8胲P鄠~窭?^q鵕绺a}8⺶絧 搞=齮姼拥敆fx4靣镊舂>筨0<_螜.V\1"伄禠zu)蟐逸1烝镠d昧!3毜┆. 绫 S)鎾:甘歶f|巳8=sVa疙!辖Rg<┷TZ㖞=8舄譵十y9)"X\礓溆珫8 +O~*$QE2B(((((()酙-S>`C!惹NN2A翥iX2哠怓A斺肘袳 +|壅廸砀识v戨磙$鋼T顛 豥;w2#<撏L峣n6b 蜢 愛Y躦駪{R}楨F -1l颃sN奷,駜#麐騃G蝓-浩许S粷wy脎皓6Zi4緆F$邦胢銣{ +I5膥`冥蹘老C蟡岯 鍞G 临!袭x胱讓 +m杰SFcU崸k鷰灤.W湖甛叧#‐I羮*a跖OUm$g釡6z鷳蜧^熰*誖芈j蚊]丁`グ3佋7糑y窽邧蹫O糠~*鞵`D戩 結2+犵緼莦L猧=肆乥间O晡砆蝌騡ty!蟸鮬蜁c椑O鸲}i奝巢%r)i檯Q@Q@ ER$襡DRI鞶琿P砇f態1爭;逊'袱際:烝I乳鶵$Ru鳏18酯瀝1J脦广"=阌 旭侴蹰G^q齲燽G^伥ち悌>漣@渢94?_蝷C m=腍樨酾v:w熤欦渘$:@噥驕b?7穘8漶幵' 饄侷<r螛弫膏褰>斅J湌8oC灂 虑蹒灋?詛庎{ /[垀Y9 `滖)YJ齏嵼蟌i?p6冇秨{S髥@趿鎽D圥c,v儞z*"g!H8.鷓z訙s尞訒僮:繀)+(蹖?^煭2奟NZBC怘9繼浇堻*誺蠲8銖聧肷V+8!圥9踱,I聜溷鱠帨锧鸭7樴<忕撾M9$|$憱L倉襄鵕.vgqVNTd?JcF踺擐泗爅漯 Fp:C嗐ら苝7s7c隠媝[99倭腠镹%U:,|8<騣=莔$偸@n[灾 <3焈鍤慒禣]糲覔鐀嵼蕮屻脎譒斒迓屶讕)摳[ㄣ燇殨稹HQ穛聻欎t胝~跕% +0躦瘵f8蹞<滙烰zePx琥*嬏g懶u;P_盾颃M"竷斱dt) 疙q@F+3无/50 `1䏝S&臐O┹兿8=}M牆s佂I%_z栱烓)籠盓o晱U?楅@菫[p鐀郼戇黨rp蔉A{鏛b叔綱.ry@><氵迉穜=&聍髮pd(鼄蚞衫$懛`戕à蹖2i4Teq憹膾y=I52搾y绛W實慥P抶?x`sB扏飦孯m诶鋞軸Jz 幗若獙N亮G6gx%16I寬1荺T\栦訂1E鞘枻兑u.@鼀蘝PH#臬袢颿慤 +玔扱EF!EPEPEPEPEPEPM})胏侳pj18n@莖zo厶h誘摴rrFs惜+枺ヮV")-觭>郿2@8#瘠妋睭Y淑薬I'8觞﹫Ia7 鍴2纀1荿颛繭為鈊宒曕8橄襞fu4i儠実-Cj籱9臡Z渕Y貖A+8UX鼢s戣f V[軠"1e(F貒<撔翕揟]C,x%豴犁¢焣O6欣鍵'6 :莝Y穠u +1M钌C笄$褑 W;攤8镯y磼,2㏕迿-訉z+I i< 撐1伹箅舄(f购8嗣@i \1'倧江#慪(翐L*+nPz巔I邕)񰦮蝈o況n蹫Q千\zU卹钅)F #鴩#惩5m錎愛$bH#v扃詂Sn篇Kī>蒫慳) 髭;<{⒑甘0ak.鏳J!暆堘 +61?񬰩墡Us +肥0:渨 鲰T潓M&崐"-镕X扇崞s亽Gj'DLyeAa2嗍垎%R迤~\向珃楥輛!!晹0YQ耕渃=耿 -#蓸漪鷓*T峊+FQQ堒憼 Ч腠U(-Y鈮東1^NA@?畭瓟*bX}陑娷 w8'3碲オF輩QL悽妽 +暷w壤ㄘ鈫8嫂l1巌1篟H$)<斵糝懪哂 Ol慚跤簑#呲涢Hb瀫鷓sBd9敔櫹畓Sq鯛`@,O &py蟡V胂^d笕餁Q蹨!渜襞*<{c4w<傽8专?cz藿=x扇^8ΧG)亀逤盈=橤玉馠2Gc視哫:跚b91顟懬=功挧袉钎:%鑫S:鶶x8蝸ur0蛺藿鷖颙9q任;揌W#羯锵[迋§:c哕灤&(弑6 #`鹻:*r9;嫯1钡#崢67寽辖&y\I衻軌縱C蓯l#o\= +剷馏1吤u9;z76獤8$惘犉 F?*哖r:g9'瘠U涅椾pUF>Br 肓赧雠5F +喯*Е00A再77$`鄟锷侵2澾19w5 .釨 駚渢軌撳鼠钳G?E,噐齪jA9s巋#89证k~厠k慈Y耀寭歭懇櫪 尀=?5 +嶡 稯屈:訍懽1覞贴l顕8$扝绡?<摿''Q戦!㏎粠覝账懱z75:癮臥獿翽. +<]銼篃)(蹾1Q8=闪潴@Z描dQ@Q@Q@U竩2鵌'掻r瓾?_楌隫牨W`;橔5&]=述妊>蔩k盍 髱}sR晤av:甗 +?1$B*禜噷 杚K腑墉,嘽 灌 裼咧犺z货,冒6雄5 +\怬玄TyM盋t= 罵莱r c{}j;莴;B駵x檫疻新诐尨wk謺P,a匳=銥熱Zr,H琧醽辽# Q無崯d榠I8躇姣奇H~嫒羃墙DN姱T帜Nf怐摯,lq萛襁*瓻菶;瀐O9+炪p隙=)-#濰鍚J.Ao=0H漶蠣珽:!抂嶊7+卨袅鞬}史.$UW +(?畺.颚Y<*Ot渷娱4閉c +VO櫡岀'廫zzRL讹$n埙嵴渞H镄lv藃:羉+}ˉUb0~\餈妻谷1R纘坧粶扞A閭{⺶矪%6螆%潡#穇N;眢.g憼##x貅!m%h鋕y寷淁?z旬p臢8>-#黍w勠術9苨莲r:L醌[OI鑇尙瀍睏`膸Glt溜Q塪g撍u讪F宇O\R6,B頦 軈巯n千錙ep&_$)]ü')4*銗H$p{g疪誟7尞豖磀p?<骎獞屨楻R詒68臅淋c,貭烰L} I撝儚j)?_"茻蕣SI隌砌ハs奀@鎽A臃4訍sN=零糇= +岞美5"撓\鼜LP4$兤M狼渨罓恞躻1滙餅螩软閼J茑済<鈵銓巼:徛晱瀧p懹瓽?琊寖羟肤碇憜(粑x)虍錡9?Q熚##8猡<畓89?檄鬮!<|纐憻JF^?)赧胱酩C亷蟡s(,~o|庍^賺#>腞巖Ku擎系861嶢u螝 摐d叁櫎?Ry萖缅8 9鷆4 喁$<甀鄡伧檗湰r渀a髊炃範n\ 0 鹴岞2摾鍃8蕊叻n茦 }忏飃撉ㄩ鳶 F繠0羜冸龙Ry,脐p~檐0?!傮宍2癘聱鳗"絙 埭鄳氢=j5a;斈烼4燣e3鷗1@肍'; 鐘- 捘麋9⺷ LF蛸#& M=呯q@'袂O丘* s寣滀熞泝朱0~nI?4P +悐z3闑h|噐嗖憫浑擋κr膁抸1帩A鞳爰aNH0鄎虳塄羙n邅跖!/'8)H闪84D{*y鋥{v雩埩廠'寃#稪E禛徏208邊9bO汕jo遵佑穰掺$u且D妜鳔Q*p渣鶶D桫#讦|T粘S$專詙莏镣謪隠D 茻LQ@Q@R}5崎N &咬=痹qV僬,罖騫臨瀡FW@渱膫骨@鷘ゝ从l媳暒#X 潳撧漴邰夆嵐Q羈脺?9姊妘\掃-匩渃欦舂g&(颍R劺;~9惜岕:|譭萬鹷∪T6Xz鏌+2m 7C{慞: _=Y誴B懮g姳" 玤袗1V9#/ZvM7曀 鄲OO~黆0,p1>c枯py鞹o[谭u&F鍁+粇r< +筼 柺2/F''搳吇7挼8摺厄*獹碼,!y錅筮篚7DB&;v┢8琥T岅銎b掝RIS螥q糸P忆蒤浒>s嘈 +韐齷膾 +<m𬂾`y幵 ,A昡家23擉c8砷L嶃歅"'a蛄pI#袚鴓>敓緧虸i0摳廜`8顴脳嶁埵$.0I=苳c訆.鈷0R幬 pS岞>漵绳$e欱堂頴FS# s桩*;⒖#矏秧*N89磉=(47轢窂蕧PeUF屑v秫愉R菳载d{~Z≮9褥jF!T辫M_C暱z錜[tlF衺a驹2喭U偰前1$峸*n]敃亮螣#C%陇﹤Nr膗阌脒皓5) (轝:鋪渄Gc螼錝謀煜'飽x!庫!鄬灅睨qS!fq工R佊8+谉穰槤7F览↖扫"茹-憣砬< ^崛悖奀膝'N詆燅犚CA謺'鉆娘溾旘I3H2濭隡轱隌!W?Jkr~翠#熺H'畒:坰:6z|x(G疦z*<z鉁烖dq蟌妻澅J>铷4讓羟4嬿F23@h惹渧8黪^詟浸湚V憺($⺻=閟胉d}郍o菬)糿鼹悠X顼`?齌喣蜪&9;H3岓馈NC鞞!=q撟揅 ?蟴S蚝嵗抭滣閾M 瘤绡^I壤=犻!g阀\R宯郹﨓 泗>皮V3潬襾魻(s臃 珒R+v>3HGN)伻镺)欄翿鑘煃Hd蜀璃颬R#躿痈淜TF@Fぼ8屳Ka箑d 霺袩±鐜麶"6捺'#~>昷鮻粔ZD +臢徥F;悌)$&fy鄁b乀嵖+ 騁|酂页j:';纺l8a䴗*惩ヲv2寿頊v齲鏀<9"哴1离佛閼蕈P騄)ypA輲?(#刊庼V%禘aa F1筟?1噎Urd@–剕n@9莬䲡<協惼J扺庌鮅滙嫽e}]&{R!)?.翤啉焞屿W腸+鋱r}毹uH溑"%=;⺶鹔薡B蝈@\鵚冏攮/磌.捒_膪Z%扡k?C狱k&97灻鏥_k靧%?py鎗嶌悿R8膱e .溥撺6E5v:In扡矄S鱓9扝苢熺Q莏d?.y#焇嚱;{蒇"塩 聭打81扅8唘eVrIa騻=辫01?X g ; +F躦#翻:H%蓪憣摓竟N冲恷3垬=个颶9pT暲9#姤1氬wB!FI')I + 'rI╙I9:⺄,r?椛軟N鎩痲,ci:5o橮F惲9钳疛掃n覉>餃犮 忔;T7E稄;"5*G栛sO^)3X璴6%戭寫栨m?/托&湪瀃pY阕迴8J皩#.埱鶵 + 2r垼爂埸*Ko]翵 L貆咐)'碇1蹾瞰p逸:疭&U9$?L馪#濆鉶83晱c庌: +ZtR觠寑)3奡G鏗c[欽wQ跊@袊 </錑"'裢;鳪O4渮儜痁 g垡曄'9Q@uA==2iP\箬p:@>瀲歨<趿  鋧:7戇濭40扅─嵥詎憼渹2z謼 t8鋑胪&3蜚=(梧wu#髪fy悝O笸9N慔y瑛?焃U:p 伷}Gn?=G畛熀;dq枝篖A鋍) G艻9荶b{ +zp~渨镃玸諒B向r噶跚NR彅)惚鮌2f榾D孉禓8憧N36E Hd崨9鵢┢鲭Aa蜉/ 摐95杆尫<髍 廄=})悧a鴐0 gy8潋Jy!硸;T俇}1翳*5S倖菩N呓絠耾漄渶!'<炃P&坴ㄏ索q萻嗕戯溹g語0h荘G瞥沜2oX嶰 烴颦E@8揥d5鲢驺俿轼覱9汝98淪荻8香L n>革灉zS2@~`A=z鄡鴖險.晘b 槿鐬8颲側$腚啁Tr躵T2ょ#3H;=?,╛焊!H#灱渟牯'o誊戺$=?乡S8-竻護豐dV`湋冷焃V+汒崄惏鵳攸z徠`q孵V表C;囁邚销T漤\瀭瞳昣畋+礊9肭辋sM 岚睝<崩?镕p狀鑇#Нzt( l萧&憌I\a朄i烸K.r冃y溏牘Y 栚983継艶r:裝y栧FG刵,C侴_鏗泇悹.yj酸>Y1C濌柆?(#D顐#澺嗋剉茮!蜚 +w澞r08=?:慛@9^1呹扊u 籄盍若c廽礳S寘清闥0 F纤献迾溔p7yz忨恪6玳欵=$闡穋' 鐝J@8汨=┷s灖{箅謵俋>=ZlxW螾:g沽臢瓫rvO萆9&燙捥zq苨诂,:濩t4L萅<繷城9霂O鳶 潋O打腍贯鑢螿鵖:?N:慔*r庫;c隒)*詞规堊鱀郹78隒(  訬ё<~旑 w囚<0灥湑:㊣I(0懁3..q镐倄w穘祏#3%1%峌P;}9?岶U)H萫`r樟3䌷Y狗奦;9c髏鷃唑6诤<I 瑧.8兀峄銕纐QD蚲up輆榶圶3轼擋+:@箃 +筫\onq侵牷焍( +;奥d錋'瀜向8黐頶縱1^崯9%m万:Q^檉=交B +*闓c犱u鞸郅&誐眳sGo□@ん)iR羴鷴(稰rIr鼯h挶+鍌蛝A荺焴姜>族+ +(g鉽餅欕伶璍惇膾郳n韼8舁a%T昩iKU悍Rpq纤?7貓戒6遪^O+鋗(9%吃鲟*|Q笟/9w碊0戱廮CO翈E !L朣黋:t黫 f*0"i漪闕鈦穥碅$aDEgiC趣a囂wd搧0?*敢lD,腎[9 Tb +杁9'櫲4l墭芐%S9a>9粖P2五跺囀#徛'櫟 +elW燎=01<)yEh乬/锲H酁兼歀姴; Kq:7ls?#7[鎤P$7芑J湇焈V5FeA潔*=硜靫@鵾F蒹搸伧 +b咮1$锲A;汨? +E][B胶案\nF錅6郃b{q胪X巉.Q1$惝Y\#l[1<<阒曫>c(蛟X仏=0N橎峞gヾH 9捾 ~UZgX貑#G 霟q鳸㎡ p潸泸52释a+攡??騣#艿I@pMFB聯螗ろHbw4繇@耐&@=)z襚g穅詩:C慛霅I黨X藧\0}Jqx鞨r>唇G#pq@ ^q>鐡轷=壩:g @飸詅亪8荙)8贏>苕淚1幐g:i'h芆99(趙缹厢B[ 侶嚣缵8贉N煗(?:扞閷灁密u鲢熛(麼88籁a劂=@<熉' +藺 +9b爩荗茀#v7t相1)H藹p=0=?Zlg#$├鯛]!2赶蒎壁浾彬xlr}齅:Ba嵾xq轷c$伻蹂过JlH沌"M$侸寥蝱<衐;迄#`瓬?,笮傾墉,*忝}E4 #皳;_侤涷腚L攨'b,gg玠內绉4獩P$ 0#裣q鳵嗳縫3匟99鑬P蘷eU胓 潴嶰C訋 +響H\菭*;隼;:|纚?聽厺煋8*3鳃醌斞A琿廫3屧g 螮汝}r)n竍$=i擈宍q)悇I9' 疲摶&=9<`禛L撟鉐2熔[9帩3軄湅4億鄬09醛oCXG薰2c萂\6觼乡O2[佋c镜H釠 嶇8-粐o恻O覄9]2Kue実寽s乡Om踇蟡#9佉漈`蕙O洴C9=裹*KQN轔R⺷'x札j{pd庝灩%埃,N0I肓P肺W +x㏕Uf, 9鷵Mv/涹d瀀冊` +c幑麲C鳵)贏,C7鸮3䙌j@\8-搷罏剰皓4祮 1S娠U溻RA5`>e@0减镂*筬钅隽9#鷚に鐶9]F:鷙阨筢I9*紂l@b瑺ch;熞朥bH`B撔渜:pV0G!z6:c觜T屏$.q郁R2澥3亐1>瀓=蛻懺羟s鞞'/鄖黬t]栦rH榕C扸A尀:ui囶FO~3啧+ep0佅辐詆`阚с夔*q灒~崔1兿掭s謶l,`鳔g=1岨謿奪"98鋞謦}涣鄑泓:詀趵荍]3扟齸}qRnW蘰G;屻篆#s逌q吩g搶B9=谎殚J{1p臘H;4蒱&z訿鉂溣"聤B0iy"&*.)!px糲疴棡刽╢?粿W8鶋袅襢%卾櫐1└U^d褊礛&躙vs弋}?J崳朏_11 抭蟣b戙/卟 !脃尮_?闱2^疺=轍貣蜉稘Ns幖$P=禄F綽臋龠灥>蛯衻 訏A#:鈺&搌K驕. 餅Mo納$頽r>問H$骴_ +%y覂Uq湺rW'#廜j#葝6鋺唕hl優1鶳M硂|BU輸w鋚>ⅲY^{圕@Pn恜s=駵S袟嵎)夈鶅溉<訾 *$伆闣贙=睴+Eq揊^&X3蚋x趛⑨刞矒恴滖濷q鳶 鍜蔅0o鋝粚怇涪 飥#,6p:郼辩廕C縹[d陓喬 #x炘:顦4cd兙9鲧7 r6T瀤&⒍_晨#bYAf∏~x锧i鍵2(X菳懛z銓 + 4挬 惲B滀 ?jX傩0Q2渃溷縙)Fcf 哑鸉r={侂豗d\鰷;烲 +籎1慗蟾盱:曰恐眔攑P銮~=F*%扞$b6)彅Fz帨酲)-r& 阑伓2N@胱9鶶移 +硎3/懥黥掖緯,绊~q湷H@蹫zRt7疄剱隿gv頜責鍼B0$伹S喧缱螭薱nr*2=@*ic俵彆O^A胛iIN$(诬s政,蚊沴乨o-觉澭o;::p:5欼A&Lq湕q煡Kf懄]iT鍢`dIq-'泓j<.屇m粝颟B60躢豤9<鶶%(恆K0#'塾4萒}蒺2=K1蟫鷗俳遗歌6鄎;岓2[濭聭筏C%$幘+O氎q.?<鷾瀂bl扽羉#N鈵[i躃)=:訄膎I8A巖2@磧,8 K ex汶焜s *\8$澵蝬Д.xc壤'桱a蹎~EH杠綷<9階LYxS怷/蝢Ur F_z2/,A'怚⺷_ 懬oqC皯盉O灱覘 T 骴渰=*hC籦3嶯O_镹(72夙唣嘁-阡彵=簊閷Z寣8鷠?跚84N>緷=归苃V0p/螼O譙蔁"/沶q摐v潫+rp;?Z戜f )鋵凗xZ9bOc幝樰q1僥<3w7鴔貙憺攱Co颿灨莢Oq渮廽E;cRO I#囲1侴8f乽x茹==砇)酞yu_'" 峰9鲡 V肱1'fB~H釨^$"芆_N欕镛{C*4M匯垉j郛уVUV6 垽绷 侙_鏗抧F!!1`H9黹J面"糂佶 驊7^9婶黏窇| +D腁潵@羚蝯=阤MI_;嫹茿箱h仴&BP>A悌3鯛褠褧隍6YF駦鉯#輋酻c yF 済毑圥矻xb 3郁隤0竃|碻!G\鋸B{Q╚/犢\d咰#Bsbざ}zcg焜li +-0剣骁#钻9 +.蒯EfW a鍘}嘮h窼r氖v俗=囧X澊 壹)壴 芠I缇旹么j夷郘>V×羹u:C* *羻脸>闺讱b$/醑瀋n9簦P紌"()  H踿$帲讠2簷3;厕"湐(甍蜦O蠷Fq崻F騂`~#篆m2BG'絍y2.Q羄済<嶯z炚8q2V蟡j鸯70料9欑譒旍En脁鋿*v g={皎葮y籘枪;夈'jaA潬 g'ЧZR殒樕w=癏\^zvねcV(葶V胎0縻隤D 秗/I1嫡~E祁0~煛<簿";x3dQ荍z)*襫鳙吶#鑡亴~u%縛咷/0琟1 +吳縙愕>醎禧Z5*I2*渨殡{婴怗箌邓/1 I8媵 p*2N2广=iw~d娹[纞E +f%巖]{鲰5nI蘣冟e@8岅VF 昽鍩筅硻垊$ +"G0声簑叁喤%74L闘~_7/ sRt墘蝦鋝皮#擙*宂痙鈽z歺圜Π琰(詔鉃3撚跉q各牑}颧敮#円h梈vH=y848併$dT`怚9缈{焜8h 帼F3衏嶢泫歩缍>)酇]犵哥侚R澘w8艷疢;;楞(沭 0硐滀u 庁攃87q@2漠3災dg亖穾xZR1鞣'?(&筽铣h谻rp:32ZE#;>鐚zg颣1MI玹銚4"酇i8PI鐚z鯛唫G]蛔s翁廘螑堅8锢'彯}=)'蠠9崭Z/膖鋈9 &y亮<弄愈鼔郤H煍s邭s亽 嶧3钎D"鞥)黟A<亴5"汉嵷W П臊j寶w钙u/宄|遻﨎$3s%?椞B>寓efQ搾 窳傋Z 窶讯C7(9Z Vc祮;鋬妆䲡襽煾Ozp(鶍8蝫q)rF咬摾`LRm 马邻0靠繇L, +~eq骚D'腮躲8`8跻4祽+騶嫋'a雉v踊=He +Sl29酏i鹶謇#aT岟锳; p鋵`g齴歜v(#痋z)W艷9蹁璑慅酏O蒌F~`@ 熁滕s鼜瑽Tn9?Z泇?忶寭籷H黠鵾tG"邖|(1餈v鐎3鷡 ?q 扊}}i3蟔Q碜 +錜筶8橼嶯葚龄d鷙齤L8懫鼂覾(庉峡镠粚撬帪搐辩9髑^ZW< :襚嶡鳡bzv8湵=1赛)鸽懶酯_簋ES(9<{qIs廮nFO=zN堆膪S壣頜*溹渮糲篚H籐LV蜰M/!b)GAA#$B倉zjG聻>7aHG +,5.偝髑郒绺╟pz鐘xe曫22G鬆枆卨#q壬蝱c歐哷wAT{|葕.Fr9*bA>n2^剘c3霷祸鏽?\U尦嗡"F;9BJ=赫笵帴#,瀺屻烰M爆狵醽aw?3焃*--m虝@L/%A邕<+涗噥龙P捤覚梻3銕晶0>殆# ;翴:.釽p鑮篟vv 3!7\;=隣vfp錦寕紆酎i檇E啓坄達~?q4Rrp<边*zt籀M(琫O讕橂Of!C躮峎 胻oO~0熚PQ兪鲲摐蕽司 +6\bll+  Fp>a绪9KF7s晌6寀黛?.0摀⺷碼2巀8恈nOb:幖v"實絩@玳傽璦伲2F#E覇P靣釖=~敻H麩;唜'宼Z墬湾T偑6亐W痮h琼$+89 c嬑X耒|畇銖蕢尜.莓]A缈Vc;$Gv*$尗>c伬齫R輱i渔躎浱u#薙潬d湈軠霁p爢/:櫤湝秞具J!Q匪攩弻宑8緯虣Y[2 澻t鲭歏保3藏d5元# qW|巽橔P守晌曩鋨4劀溿 兝?琥 +'F圬芝繼>EdV+愮s梖耫d餏>脑R<筜旝1丬榆rY寀9)乨蒮.噶>?酅顬鍒e煗[摯庘 蕃汚 覜b僺`镑醛q上5FGD噑s荏5VY轒蔅m介]苎F.,観昺*佘吏鳋t綼6髴落屈鶸`$2~砟x沏憜'zU腞 f沏*憚扐窅T{鋤Q=物飛<訅'襽AFwd~H呋sc蹫右 +6O9=鬅笤域儦L惪t8鎼钇砝lX骼虰镥HF蜦陪撐z釧彌1=e]J錋JL篙籜佖+筕?( +闲{S饫v ''滖郗U轞鱰s膣T鯼;w'郯颮崶+pA满c鶵盥犱搷絸枇b ^縅j挳∩9钳J2V=I闇}?香Q-純z5`:9留4岓覞 +M榙s髄=9?*E8巯8┇亞󏶌2z +, +@[=:z湂L +[┼宼鶷蚴顎OTHd 輘郫覒j餇膐<磉衺i媍w熃+綆泺~#唠M贗I<}/璉~c奷 閭n聶硂S2◤>腸鶐*6}舝zw=G_覙&"#0莑屢m=q且銚戦覒詥齢皊ka@Q揉鋡猗,3窑nUrA峥:'&8∏z鹎殞d缫()妠O)=vv<徫佒侴粠湯憮趽┼$乀偫9禝慠*怃3暺O字徧P怇愢憰廃4Q㩳i'R娻Ku齤h譲`c国鐨7U宐 l狞谩蜲觞緯:澣x#濿4g!q紲<痋S&*琹7*悌陎黬GU鶍颔p罏1舁'm,]w'A濞湖 +=舚継煲as們#+`1V菘栚 + #~^荚J堊坷世2[;x甾屓1驙9 |脺c3熓倸+<`(鴄*甇8齇_鏚*嵅8 荲#-;,'9踿9=敬驈#韾@6撚渞@鼄}h槶+ 1詿R?J奀*B> MJR?+/1x磊Ac +#qr亰俋搧苰鳡+对#v9 鶶<窪R踩Ob;泳g|<f毾悿`籧帢圄燴,s /%Xc歝!-!`け,G==轶yf3冠喋雰郫n磶 \┤欠j釳ス 8H鐬加$!籡癐領眸熺RF翪吠热ㄤ;J囔xPw? ob捡瘱Z8r⿺ <z飱缙逭9 Nq轭s烏z3繭!A?Zf怅 '摃 懺u+9nu觺闋(抴g'酹砨0"H浂玬懝蹉辙琺@轶濌浌譅籄,y +W #nq9区觷免詜鋘嵥N }絽Y;Q&~蠶癟 缅鑯:T腵 陸z#烗)p?Z^汩G@($9髑覔J_^煗熷@G7蟒T锼鵕:勏c臃狜C済譀羖c芬湢 n鰻bgO]&W9/ 亖荺鏅杗q躎瓵N焪評ㄣ潳p{扆i熀\橅<抺@轜 沱疦Ly;Xc|絟涳\佚*-$Dg8線)O9\筶饃? 偦J揁~V叁険J鋏灌庝憢黊囿)r~\9=?5折懫x9鼇%pw甍碛3w夓 lZv褵P建.N蠿罚d a*3苮=龟~窗嗖錐n9鶸:詑?>zSJ涫\F菽8A嶲溏焇;舀~~GV儒_<瀥硪杊貕# 喃`0_畱痒伇塴鍎#秖乛鉝Z蜛1邘'RyP:`.NOc宻艶s訛*tEXS昡酃詿蝷eトQ摀巗H8RH<{S⿴轍:纭f r-炜98h髞灉TBB>n㈨蟖颧曑籉Q駬冿⺻鏆蔑P沽l咦屧+H奲p喱}r历耶|濜fg倗儫闉該蚧壼;笙Q廫c5#寘F1W 鏸'5%逥,Q呠褉 )溏緕齤d+-尡б堽D9,OSH3 2纐吱苫皳~鈉p2F*崟喡w8>礶夅P)^颣6 `R*梧9胮0r91阨^=孨A寊z}jk#ㄉV晴U婀茻1#c糟<潙qr暚X+=弉*崢p狦鄃!堎聳?.訏{3S p094'X矚$$霚岦荇├(帱:鸘m缥蜙8藄⺻ 鵣m膢攢3鶷&蓪^a'?椧湊猺 '辊鏅蕗抂<棱Q杠8狥N!ㄎT羟)蝌F:鉃Fq4у}:d蒈cF飳/QM0蓱朽绛=fTm$濵'濳Oo橹枀^D,鱂3灴狋.BH轻4霑3*'鶝秨F婽"恦髌?镾[冩衾辖Booo日5\(髋S}ャ 抷镩]D镊=C氅銿d鐟拁o狱*1(0媀R9閹欓拆9= N瓼é8煚KYn;1i犾UH\ddz).,翮证=F) u徘^翪駿=q'=(B晿 s鞷 n绉錛嘵 <⺶蒬  鄿sQ+俩 菧穰(;f櫄l崗闪鷬Dnz訚@\俼邐lc襄H緜d'雗躕渵]J#槢{拽O\U#)-,l;嬺>a邹慜#驄E&Wh郂Р$#肢捐甌燖B澷{~=9觥剈V癐b蔏p':灊3Sv崩b_繝2k>闞棴煖7zt阕犗螳$`.笕' 28橛欼4&怘a+G蕸諌d焣滓澕D粵{(& :c殑3$*哫厪g态0威{蓄!曒H`J崩08蹁鹺 +w#棥,b'"2侲 臰#'*m蜰銎r囎鼌A4綵`駌>F)E貺U趕湇琀螥~儵㈣9[W&B蜵.B嵜n>钎 W1%]7ds偧c]U晻J0?(!盖>建啬|苨磡F2澦888,6悇狛抚稠e`剟; 8鋨8飵緮汧N衱$佊>;蠾MEs紏菅 n齩蕭R"埑;匧>床*0誑p缬?微慣9悈蟬庄智s@$2!Q襉%繄u'瘐獬嗤蝗弾H=漓:廧82)h0溏x菖R屗*鍾Wsl,O<蹴餁皖uS鴏賔P6`'齭)-乇YD欄虐熷臝 嘾i玉鱊缮19?蟌畣KI 稵/3v鯸焥鳸尤_\s蚎遑尌X88@繇W鲰$1肴辋苿*泹鵊=1毪S4僿z灍Z)慳穓X觴8 Mfgl渵dR艼请另鞮Z豶犃萦蓿犱):紲Rc'溞宻屼 +\尀:R6妚0{鳏[蜬p9ɡ髲~"昉U鄙┈K溧h`@楏X{ 崭 巭_N魞h敔8<裝y蘼D轠=i$墮荖涝9閫z筠=9a芞s;曋"脛骼鵕y.r2鵊Z瑄鋬有b熥倆+潰揃穴b;{*A胓瓜o纚哲阊w~y猆;仮肧惧O>2潺3NPA BpF3熺L8\0C溒1螦熷Rka藪8;咰:斳 gq蛆朐韺.)2Ш?粡)転[(厜傭S啼纒宒NU8霭8娠臊)>m娜w0S朴A楞4{+E#籤渀$壛9V'v莮齮愬Ia撨隝磭岣f9錜*bE>X\g恴uzTr7n`z s鶶蝬*)[愛T漶迁4贉w蟮癈寵欠сLC繾褧懶g:=汰侹a睠t=5婆>2@薫栂b D琛鈮 $褡>旪濡u#鍝犌诉?J\睉Q]艀`筼^3吁,禠仏oS幖g装Jo工豙錦!=;笞4*#S崨 +A鐬!察懮羧矟gb8Q郫櫁愘;_c2)%{鳘r\J,Z2磊zs爪y 9轁赩U橖9颕;2焫樂$8鸀酒セ浧*>cUw濸|览報 u閷饄>繗&F1佋c?嘋昨騂;鉈軅v镩0?湟)x搇ddg1雽}jMR哺魷)B k}肯絅鬆嵍鉺|琗zt鉅尯荒铑d 羿赧离请K1i"埉\p$)暇E;掆$5bv7椀褡?忬W虖sne系9唕P潃憺 鞮突禺]]G掬u霝栅沋r冇瑬tiLe 檑絔;a 創竷翮謭矮m姩鶊蒤*6G粟7梧5#錺v>魁j珯(XF>爗=科槈榰身妔2g3与飵槰遭B厵r 饅{鄪揈胺1P怘n)笔\[h2zi?z抛 v$寣蹶uUE鄬扥齩視5銳)狼9<儚玸7藔pj攎捣厀岭哂耥Vdq8濑\U-&结哺(粆0Q8洙詘俜倇@=y,j 30w鷑愎4I+<嵡溷?Jㄇ鞲-蝬謦/*;o&M泩1nOS橥R3梄譲瓈]骨N:s鵕l簍賜G\#u覝巸幅9▎砀滠*梧)8闛ozH,\89齵鸔r筣&*$岥鎰nps邔4@U*晖铅y䴘)媩蕉溧鈧[*觻 觽v蔺yㄤq滅jdn上;2G|};牳菩l詾dQ)銝f槵熔詂 TrP実#皎錅蔕头=嚗A$滱8^渨╨0d兯S晀y`L⺌)邪Y楪潈佅溏霚缈z"I$R豠減1郫疛"堸鞘;睘荆7:5mY卛z账v%I#鋡睨毻0镢;}Nx齅[磻R輭`9 鳊~昳阺T嚮"K!8蒴碲爂妻=q觞:B䏝萕+ 巗鴠*3鲉 枪 aGl熃\'+mv9壤'☆Ad鋞q?*H┗ H X湌N蟾4A釔|軬M[顐1烒~t峲!rA嚆帣銼"稀"6鈊抶銕滛颒7爫枋眼s炪螃偹 u -$宑p簬灴缵8c鱔s渃>鼳爒'U嶶1磍┗ 畓鷤9P椿鸣汼iP躣铬泉艱嶱鶋=逎扩槻箮5鐠@l騈3懳d4#1圚8-苶簙f惣6杄M褠遏<~旚q鍏愪.摐9=y7!~ep﹍憸2B"2管rNpq=uu"P$0B:~8<幽T泍任q?\{P售\lB勻3钱zu!祯|輖拎疧篪謅蝼鶇X腂癛>f=0;z乐儰rC虂颇襞P-蹭H$(<懊$#犳E.ヨ资l牢'癀籈1缉!尗g#佦? +傄` 岯便趕炚:怳Y悓渽a漱U[q曎0;=稀黻j%纁Y饜轛;H1贠=?J喘3"PA徝'轷ㄉ钳'榊w"秘I蟌r湬譅輶GRzJ甌y鶴q笘$R}鞈闅b忀懟撔銡埶戲($I<&$優媯婯RN ?J m#鶶$\/^@1誉l9>B泺锥q36銕濋$續炠荶N蒇}(洆翤s蟶也#?\蹶s 廻如嵻鐘曶29g徥烠68'抸(胐捈嶧9#8亲勡C軇8;嫊巄q 勹i 潱: ~ IQ磵膹御S!@蜫巕4B恦3香M鵞<帟&:|=Fy<褙齢)nOs仧螡露T綦佦螗;蟄热=q镸顠繂1徧T∠曚鋾<徸upz更揑繯捈u鑨> +渃21 韽/綆w6濦:~灧堊j##$Gl吚.2寥s暺?阶<䲠譞阚$銗u=璏侬,Y眾5w恴S縱亓 彈擄献5B,苹bp蘊L}j占瑇飵99痓 c$ 馯鎐捓偸G$悒﹦懜嵴唓料>彉 }'~斮渢cj剖|6玱O蕸"`苸革邚錘bF硖蕘嶩S腼劢#|莞沅#-袩仍!楨6孉礜IA冭溞z函攲?^?JlQ?晙F~\v=:v#廫T莚bF炘輭&香 0c駣婂K j壝澢玽95f0纜犁酢咐VT,逎{毇)Y橑曎侗B;3蝽鎟3镽E6淫悓7 凱t瓜錜芷龄ER埼2Bgv瞌>紾鉈皰24枧 0npFp9繇Y跾珰馰)8吚V脤鋑儫)#崚Bp02zJYH赬﨤 7蓽米聆P"◥籸 V!99烠H逊k帒!薿.0I 呰ps撚е4婎姩H鵨nwf蒹) ?玅矮N祁s蚎簎9]0b鼘u飨煃QV!蔕捉i-嫁Jy[w38睑㑳:jYXp搄潱,>交鷓}i痵+脕貝i.&d朌~ r9轘彉烗X駥彙蚒蘐VDq(WG^溣X鲟 黸苢 +c 鍍q亸菉嗢艶v3.=鬄啀劉ぱRp憄P=OG箅O!bQ.灓d廸銓Q) +D筨2N駧L9'泞8澵w ;~=jа偓 +秨q撠阚鴨撒nW +Ct髑讖蕭fv孒c /$笙4n蟪p}?/錊n!2s>疥X +B90憔*%? 捓熂q擄HmT +絪蟴f-_B幂?!3骱訢0n N=G鏠漆s驉Nx4$邻I邠裵P巢%扏U骨Z∩c礕N鐘<≯9稔zR9bXc8籁se #q26==})清q兗骍鉈滹R =C 岕:淔=0鵑A9鄘v!J深Q R鍃Tc是?齍,1)!&<憫薲鳇4诜fN>'=猟垕波摹寪d跸裤T` me8 :R&x`r7w;"o趚'89潴与N9似ス_Ё%,0瓼= K鎺H膝QiH?簓镃0hF煦+塾.O掣&鬁韅堲齄斚3鏦懯傸紎汶嶵徃>~>9蟡H萣 朸=鎮舟%20rI蹜済蝯~)&gv憯&;`:黼塽鸣`d s哂Л+**獉蕽>W8黶8d窗鳠沺 晢H=x离3 bH9<仺IIW$ q输绨=闐 + $偧呰 +d磻2#%$6巧'N3烗)*L侼H!旔黹蚔g&-$犎 汫$亖3A; 过趱酙$:` 2嘰d:P5嘎孽溏v=醛栂Ldg峰Q诂Z栜t鏸t辋:H'饢馑-澺A腚N熃l轱芝;T鋚py⺷望肖*{埁w杗:筦QU忱 銖笸"嵩瑏橳pA`褙裕缵q潳嵤(霨荔搮g闈眲S3g+7萜頪笈G9M囂籄鳅P$铒b迨|?9=簐=(IA峊0岪~ b0X 3Cc,6T鐜紒愚懃悪,)~撊<銖左!倕'矾UV!髼览l3跒_jS搧宍c胂秇Lr嶔.¬ [齣 鱮q髚斬#!丄驆加r拭r噶!Uzc唑叺5竑$悐y蟴 )(N〗A㑳vL(鲜1 暰镙L趱煣隦循9>I>Qb纒淬蝚7萇槼S>紝T綱訿v鉮鷝UX橌悿s1鞩}H. q盥鞾u蹻1烲筠%紑c +s籷$┫A颬鶔柔VB鹥搧秕,V罾I2&T '嶯:囫䏝T顃?uj舎 才凃邦=3;T馜檇夽0 + <嵾堼(A4愷pz泷[s[#湳=$e)逨6l)S蠕 翥尊︰X8/媝躸$0F囧 禾H扞9=i寊靀蟶獞尀紆橐昏y"-傐~閨'媵o0P:段夲銼塄v#h*6甋8=癸U疃`mE*m*:c$帶JL需Yn邸^x9|姒m瀒&鴰qSLdeX妽#~腍< '岟'wr!#恲S%8##mQ荍蠚頱辒r錪 <騀;q鷼m貓Ss馗X鶃\擈窭=裹;剰rJd\o蛄<9k9镧/0{z/,3脱哈.=F?:屯Q-郾u貶!e_亜悃$殚B 尸NUp湨F楙軺骏K皰任TN崛wnl檑K .X 鄬葋漈1r@: pJ0圦 溧撛};vl猉*寽鄎c拽酦釷OR赲,螆瘡棞c氵5.稌贀$渃U!彈呠s灴椀L鏊禉9羿w鷲 +皅倆#篢@5$pO?O9o橓懚Ns:q:)塧 +琙Lp狥3昱4>Bq袨;S鎑(絣^)條 潼脿弦&@dTg!G帑u鳜糵M鏿e$r* 午8瑁玾缵巃:H糪, +[# +l橌J邟~]絨垸誷r%H鋎9a敧苿鲹<恵淪< v(寪 * 鉷鋜3斍?R巔O^绰 e8,B捈慖欵X 罆M〕儞渃自釉K( 軥~*睱獱Y9荶歠s#g撻Bb擼膯8涗!)錊8锴0M#b爎w]*++^I&ざo0rz枝槯珬勀旴漉臚 :71C2肓锵簸X蔃*}O#疭UsU袗筫Aps堼i!憢硓9郼唠熓浟?6D1嚸偶卬2@$u戏鉌⒂q绩 +I ;T柱Y琜?睫渀P氪捔wt鄳詞6鮌丬I蒭鋑< +i蕎ZC堢kaI9$c?;所Ns狼0 畢ZVa俯$躿v汶O屒寲簜~:猕欧溉錞0纍s呺iw+L恧'#讵T溹m萊:鐬{諗鶐H髪KMF 汣Uzg?齤嶺)Ge\78萦5 X宲0,8<谢>鰍迾搃暺QI縱W犽8ㄋ(!3膏搞弉祋 +I鐝\< nb9謦b斞Qe褕$┼钇@跹 +XG∏j熕TV蓌k#D遐[<8鋈#D觗稒e 滘O^蕨颍ts蚂蹛g畓H≧ $猗驚潎榿萈軥献驙沒1K +[z sSM潈霶 咊睑磞鋘趑昗父2 羄x鳏4宒蕙鱜b輹%v6f蓼8l=O1 礨溷腚蟖覛Q Сd:s清Cc孯衴&谑欝 `帥s辇pi6帖 㧏O989 谯叐0 ++灨遥奆EV1+悆 8篱螻A?髹<{U凮鋹[βrs灖岏O1y2赤舙sL)1M)! 仦F鷬﹀乊;Wqz w"澮芟朚《0QUs邞隡3瘲6 倂瑝'歡虁6顑绉&*鋷缫誥]d1` 磥呺*櫺H嵐>0辋qY亭凗40iF俿瀤=縅Nf懨雜g + d9S怬R?N茊締9#鄮觜U%-鐋柮OVgV 1y=肯ǎ淥栧霛Ed@7;q献殸Y薽 x#y老蚘褟0 Bx2q鞮朡8赲p*粫挻葌滎I溶Nv鋼请鳴 蹐a屌J|縰L崈/9脒昨ㄢ,.8旾,}蒂EH<0+o$ ,#¬#鎂~渰焥╟冰錢詄溿痊e.O#搩戟穠b鏁詁7<y蓛籲z灆猸0爂 +鄎Q嫟"瞼NYG┝荿潽o曚弎S胓伻:U0jf恊^}?疲掅!O薷V$8蟐+"I筸|Ж艷={9$1堇鋡球k輾ㄆw(d8GZǚ覨 +爜幗?>8磥$l(蜷株I贗=}ù樭 72歩澺辩岿A鋯R '{株诶#滙镺X Bp(鋋鯓瓚蛡c1 `9社御T盇39;y9V=Z3绳惐喃9萱历q佖姒I屪c?<{ps稀渊汮3b嶥\ +r莍千S鮏图2矑у錇癍5^@2透醶'镴骺+兓崵c8=i颌Y发+蹞祒L>礪u<汵鎈1閂V鉎.@^苳`;*&⒀阮 f輧镉れ8*嶊甒vQ綜dg5秽zdv$5- 7{詏p Q页l顚{;に8厢O崒)<8餆鐘塒`pH逑=匟 灩稔G镠D奭T0 抷?溆> +I荙DDH葲c#渷顷(塡l驗;>絡屫謋 +(歌z驢U u鐾(+;x=)z傝它Z9穋;_ё鶌.绋=1R磎 H輲熺琘橄;釜銙苶絟砫蛊*韾*霽 dq冴8玅蕉D-蹒姣@1*$嗕撚;鹰(9Am` /忽黯5嶪V嫜"簠L拾J虩tc宼缍+3P簴璪R;%嘢(灶蓓6HK?籹佅S赢千N魱犣Z8O轒&sc滅镻蒴7晄絖B洬<媙v蔽H鐭犵,)鍢鋆裷Z.'瀡F(B傄g倊g灴3齮dd敧筰a'+終m狼Lz鄜敘峧薲!(鋲I%ZM營..{s$1 +@寕 +.&濪徧Kw趓w#h''諔贤'$硻鍓$ "U慉P犱髱澓*h﨎谤巚ez偯灵X踠DBe!6丷q摶>緼跒fgO2H褸 桿羂倆`z*枂rn]H|磻諩%h潦ㄜW懥 锥1OH杛q$$採8鋝8锿YB 摒槑袠 樕霊9鉂n|藅t/|膱*NON3蝧⺻v%詉蚵F幛?2~RW圭庍="亓wC銕橛擗隢歒H寢斧0鐚瀪優滬T1A',頑O菻>亖䲠zj+MHF稚 郄Q<谣捜U 2 $嵕^燾燅=*>T煾络怤A镒跔1,$"雸绍yg撾娠慗萸戊蹻=S*#dr釉R龤诒瓾$騱s肫=狶n駯p +1,胷n98另齣皤J岎琾+1轕浞^H荿熺,勭+nB饿r@ 埻'責痵U鋮d #厬貑8圮8昲#頦鎸q寧潽ケ墷Wy0竒躽苻球iI]斠匀騽*p繂,猥(989树舓.鬋娇t杠櫱Q岞?佄*dRm葃漞蟥$е婢偾s!妝g K 悱O  +桤b鄝OL"T郏糶嶃絵璚$`茷j0(9桱V眧蔏F:[䙌憱Vc穙Py衫砬隑[dPv2:zv镪)鰎!亘e +'<㑳*"\ 綿渻懮切廟?JvD股h萀v霣(98*;z笤`;垿Rp鍁恴s躶袔誶4|Ⅸqy娍)0=;`S>娘2$蓽!G 戻v!T]Y$W践L多m=^*EG筆9聨靬闇馳>蓃蓂8 ? 姝Az<矐橑F嬻(8`:箅MK3е:朰#Y2>X鋖1鐲/L~籀勐囃Y7戄Ys兾F{徯鋲\F籇k磦{n藲勡2筛潽嵗茾AL驟 +h,瞕萍玻怇矾兺匞苫東鷝*樇搚R邥b佊o\>" NT6 焜.?f鰁鰸B朥c髄#犎媳镸扝|1虪7蘲@#幖麕鯕 膭'?塈忒镚抆(蘦X#x$酎虀+│$PDe怤襂鳊r1虲 詏,$C濌0y软康Q屇敦1##畑翡~t鹒U%10pX鸴済虀6衍皁 +車岮嶡n3I%肷疾啤]Jd搾C.絡hT蠲p0O=L猓凞A︹ 柠c耵黶J欹om 跎y沿2惘=岹5章昚儌響嗎圁隨誚x'捈r8眙琦Sw:籩pS鎁'v@9ZZ枖z [!鞘$躹<酏 J祉蚬\@<齍^4;'h=s=诡)褽蓟2 *裎1擊i_BU嬏箄撳fb09#"晐 ?u餒1渟轻鶷腣BI! r:OP6瞧郥2q$t y柺jq'8献皈F6蔉釗嵷8猭Gw尪潿0:s邷淨极W穹|聺萷觬 憣 鴚膪T $tQ捘r盖t0Q%^埅8'呴隙A猞Y鋞徧ET瀲6zr=?7糢 +endstream +endobj +121 0 obj +<< +/Length 72 +/Filter/FlateDecode +/Name/Im12 +/Type/XObject +/Subtype/Form +/BBox[0 0 2384 3370] +/FormType 1 +/Matrix[1 0 0 1 -83 -36] +/Resources<< +/ProcSet[/PDF/ImageC] +/XObject 122 0 R +>> +>> +stream +x+T032472T0AdNr.W檳瀰9X镭啬R显\霖蘌县繰列訪宪?萛%+" +endstream +endobj +122 0 obj +<< +/R7 123 0 R +>> +endobj +123 0 obj +<< +/Subtype/Image +/ColorSpace/DeviceRGB +/Width 510 +/Height 916 +/BitsPerComponent 8 +/Filter/DCTDecode +/Length 32717 +>> +stream +AdobedC +  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY" + }!1AQa"q2亼#B绷R佯$3br +%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz儎厗噲墛挀敃枟槞殺¥ウЖ┆渤吹斗腹郝媚牌侨墒矣哉肿刭卺忏溴骁栝犟蝮趱鲼 + w!1AQaq"2B憽绷 #3Rbr +$4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz們剠唶垑姃摂晼棙櫄ⅲぅΗī炒刀犯购旅呐魄壬室釉罩棕仝忏溴骁栝牝篝貊鼬 ?魵( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +(+]$L鶹a#=+N饝憣d毟捛H貺f珵打佴瀓 N1E1 K奐z岏@ ㏄惔%"瑒V丷賗 徶惼3OT` +U'p权,i尭4塱!9=*仄8渊OzWe3蕨H旻(EPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPI憸Tm*帟O欂远4婽RR((((傝 瑔l6瓄 蛭M\H悓4螖颥i暍!擲ネ +2j掳酹珦(7Z哛,n9$鏄6S<-蛟擽嶡y〥TUd 宐欝湟邦k+84辍y⿻齅H4QEQEQEQEQEQEQEQEQEQEQEQEQESI7%攆熂bE0H #H搳@sMzk渟殜s僐P汢紃矒熄,鸲v=馱鎌F3U8;壁∨6婻袙 1癟U諘Z盷萳S1靕^[骪芝藖S,奊Z憭QU锑>;S减 í驷A隢/Z殜圠嚱B鰼,+嵒+灴Zひ .)颾sU玌塣L姅Q姠F覅'=W滝︰篱E莃荶PG=葉儦E壪E&夬1傧8c礻Z査Hj+)q歳莵Aw└'瑽鋼臠I>舄ld鄡V}銚B聽eN(劂迵j(EPEPEPEPEPEPEPEPEPEPEPEP联移蕆紛礖zs@U姷[Ps妸H:7c4檷:T2蒘萺qU%R)񄱵殒l馮仨40姣敍朘愒wfi4r吽f\穁咷绛R缚娤m荇括U璯p侌鐮5湚SH)付\c揓嚍4g灥綄n\郣{&sK9婱8隞砫誃sOS苃薲(蘩Ue摎y#+錇a9_#璅N;垣跷h祬筟揜 '$qN(A*MS$BM@S#礘$躳EK/s殯貃曵6撗Mj+*AK榲E8臵@輕i淼NJ妐梤衽 躿彋B9虭\1H\ㄍ+藶Zc詍{躣悱^ )l2皩9rN1V @鳐X麦迱J3N +( +( +( +( +( +( +( +( +(杸 +( +))1@(* w鮞毷R扚 P [wz,楀隩8#殼&q'歿H鏍q艵A$紴*彪Ro1厚T坆iwMⅷ/蛰6褢慣t檃GH鷃S爹6i蹋鴰*噯蕿佻2.vgEEVQ@j3(iwLS襶#彦 4z訢慇'8鐟LB蘹玅穊捁樴鋬S!=hp楞nhUz{R亣^j"H鉁/J墹 (HL_0冎熀G鴆F姽聨)64奞8港妼虐綦KF2黶+幍.Ef艬毘厧GJVj奾4闌QEQEQEQEQEQI@攆暲Z)(i(&i\イ妛hあ媭碦QE繸)(($拳R+&廪`錏\w&D~`蹆P1籀鎶制w +) (s%&(侘}殕狱B犠%髐玲x-B& 與'觀橘wElf聴僆E(b丗)񍔇;訿f淣8<隦( T`捀荬+m=4伬颩(玫*謥栤U(p5EPe哅H.茑T/氋 R3鐞)伔=b绛 +I .╆抷V烸 gs!{唖軗N窅 z05剸>*伒H隲完t臲9P}E-Ed㧐-﹫畢睂( 敶鼰JM琈 oJv驢昘(虰I'揓1E啓a2g`qJ敩R揙Q撏D丅菶))C楞謹蛽恓竘酽撻J羠罁嫔`縲D撾F(1i nM|Z 4嵘筦萖t猡(N偒$阋!=閄w%IA<;<9;稍伾5"5S跷t岥翳摗"<脀^k^"顚g笖QKT@RR掩 +( 褮((c隡庝觟sI@-憡o4Q@倻=)(4 \by>匆sH 0q溞 f檽I,捩IE0拪(あ+溫(奐(h拪JW4SM 4SsFi卵I歀1i3A4櫎; 歀襌asFi耿4RRf歕觭E8p4罭 彔AJ):5`靡磁Es2禁U刨捳,癐S缓幬,瓈:{珠芷Z祷悥轗9Y棒甼,佘\殹S]荽珏蔼,\湒?漜7viMis{9釻惘55|7峛)oSA:8%I!- vH矪+s^c 媚纼戣k梆瞽奰r灆珒"J梃ǎ箞Ph +( 袳QE磾Q@RR袸@ IER袳敶PEPGEW1窺E%-擱 I欱iぱq;4櫐鎿4;&歁7u!jC办褮fh3Q睿ua浐屝矷歩jM鶭nh!嬛妌h軱C矹 34犘砄4鄅鉁 0S2X3IK@剳E )P4m隴gj!sZA%ty-勧'蕂^諕6:|%u~1$[目Z洵作g隓帧I9盯鋳凬む*[|qRi}K閛8 蜯v贔琁,脇J漪釅"鷬鬳麏=匽5qTvZR裑釷E-%RR袳QE%-PEPEPEPEPEPE-%tTf歁&k掔E噁層3Fh竂~i ね5殎覭SY﹨?u2砸!4叒-詅$<襢$軰孩 sF陱4範鎮卅f悮~7Ty4騢軲!僋 H 8p4(4鄇%5 鏃4贐Fi扝 # q趣 1X峒'5腄0囯]讖蜴鐨狎憤瑂籀0?J +嶕u7Cc>簇爝9VV茟}K?脞鷬!鱐c爱箞麭tJ覚56 +(4VEPEPE-擱袬敶 ))i(QKE%-PR袸@碢EnHM4欽:噁4绦Z-Q揌Z楳8殞 揑歩4勑矷歯i3@Fi&iAǔK簮僈殝u&數&i益)耿3IE;4功倚仹L酅-L啝Z(`3I癵4犚妯伣)琋臃痡yㄘ鈥<勰揰桐齛綌W7q捗妉P貓"懸揳"て)jM囄巖Mz殫 f媟翢肸ss訵’躝牠i*l碤[釸袳%-PEPQKEQ@(ア(QGjJZ( +(5搔揗-M&肝冰︻&M74芤@ +M4欱i範&4勔f4RRSsFi碢鏃4贘~h74@.i梗4煊仺閔 .h罭x +h)聙 F)嘤殠a1隢蚏諶)4贃i5+鱽伢]驱+n洗映(躒懗TvbK餗9m鞅鈫򪏉|賭薌慗.#枋薢W彞D龉miAm,"T`銈 z 舚 +糔q诟1另婋4材;儙薮︴&z(奪()h +(敶Q@Q@ E-擱襊E-擱袬 E-QE糓4)等u奙う揌M斃 !4Ph))i(ぅ敂弗7螗ヅ乙鈼 +\P礌(燬傂N-8 +@T)燬謤夿isLbRD悳Q`6 +~酙恏癨M礌R袬J))i拪p4攩榾瀒奱pi&罍覭SX嘣L獺喦吃l4謏a5i仂3M卹E i鎊聽4&q殖51╔2鮾暙びM4勢+箥鄳J8 說j敉SG对愶P馋a\>薄躨!=╭)K1櫣鈥をjU垶黬t懲A9?鰆尬zS秢RXcW蘞帞魻 +Xa趷躑'杏L-炂槵W R.O熶抭夫摸秢a=冶')慝0t}.{樵*潤瀚协郖kt +?:tQEl5E焃62滐奪*屄(燽QKF(RR袻4R袬 Aア詳碦ぅ奪((ア蜕俲秈+>Ti蘕驧uW9婤n茢I颱iAナ畔3奙囫毆奭艄G蘕龋p_}桢b衸簸2猥o簸,hb袛S阵Tr}jT| +F敯TM4菒烏*-) 糢/0d&〡瀊f殺辳殞焭2j擨.祚LoznM4+%S1@(QE2HZJ锐 %棎UY溟炥酰uuB历z)p騗Ne旘zJ橨萰.L6醳9-賮*臻" 荢J幩D鵄腼X\拗3<T~Y隯>X豋漨o釘0 ,伻>韍薶-GjHRRJ$e迁\贅ˋ 奡璅翌澐yL* 堝晣訰胳袸7q]謰~范j"\x垜慥l苪,渳彡*+-Q躋QZ\%砗蝯庘佤S[虮擳濻t襩n槯qY將淭帰挐敶R擰E +)hQE()h(イQE>(1)h +ZJ((イ4啂魋@4工瀭恓&h蚅栁猡R鈼2+*襏羆葚S捗巇>R卛 闍mK9L 靑Dlz)瓉恚蠷*2R諫1V#=\政(ヌ莇U6Q戕6'?{娍IE靥筸*筊:娳u 9內ΔK墯台厴毬瀡箰砱o鸠j灾軥H#昵-衄is崼蕈s:q耆痬拍垍晎Um戾#鳜sS矧堏9`捗迓娖燧+堚弳鶳c劀俆*X,x峐6躸IH爉旪諺虵,7迉W谠L騗zn]厬R;viI(甥炸DV褋垲:殏?06 洒鑉褍8)"38'钌跬U~7$$=*F墧Fф,)茮1~闛兄f森1蓵a)谳;{R_路1蔇嬔匯d个)iWs剀墎S鲾5賉攮耼A嗩Ω晜h[%w}*黽途7僕(钞=垽$5塱獱!口巴鋺XC[&炂M4#L +垚O晽)埻塃P ZJ( +( +(颣@ EPEPEP1訯E +(訰'牘Vn倳裓瑔姸禠z歺摈ヌ囀R澏%M<[K榡%雯j跕3^跊幠+n-H"^)伽邇Hc讕1R +兾殁@zP2Z*?0w2寀燚工'姰d螩Q橦阧爱[軰窾?;r撴{[塙# +妘uB jr违 滄幋QZ磾((JZ(挅(敶P!(ア亽yg8DO +H猡㈠5`鐡R%跋'",T觿茡刚媖( +慗3u燣s慡a芤礗nz檉趣2jBqL躉J92屸澑謽蓄鎰埊zF8ㄋf琹<曤琍wぼg灑5鵢斣痩H棱6/C歫 侂Arz原忈燚膖&摊揙"珿lOQS箚鏋公&坻<[9ヌ;U巣b5!禨芤}檥M!抈M1绁=S迱毨>j豓y!鶹柈閅"O牞骞q丨猚藝*`陥8鶑P=ia疾返7蜨y抴臟,惉抲酴V 例i3:e駸J淩# &~:獨|关ppqT臈 衙}EHiz6J$!ehA挨2徑?CH窟GS)d!儅鈟臠CI;涅1馋鞶)荕娄?謥;厖3B2疟苡盦鵵帓g隟檱ej@<1L骕}鑿酧嶢$垛zb 步y褞辅Z偾j霷袖q辕EJ">凷Y +濫U6c(ヅ(Bh脯6姌[Hz-1鉪<9愳芉E-1XJ(Q@聤((4QU娼价彚)5Gc=7R(4ね稗ⅳRjn013巶aOjiJ岻虸撻H棤▊zR剋=1S$g+厔/爖R琡sO H礃ヅ +ZLREPEPRN( +:LQKEQEQEQEd隤nT1+鋷礧s譇⿵玟Xk)&%蠷*P輂イ{豱=>皱n/* E貇錖:TP榯1瞹肬j虦!,kA獗礛]鄐嘨+僨罖G*)1舢Y5圬.翫畣肞庼肓)5b枼尶vG;谈O =:懞P"雪=q*諃閖曜閂赳䲠>淯靗R袳ns墎)稶(礀4癇r9PS^5q 予 +嬉"zTod潽3臼ゃ$Tol扇`kS惃a娙芼"挼Z6猈vgH trj轨.B#珫 z﹕+-砝辥筛箳^er}AP#H衛諢R.27稪细$莏-Q轔пM%U肠I`4亯胂謧}镕阬伢蠵娔臬綳(A閉<腵vャ8臲昆吏2SR収Q@碢EPEPEPEPEPEPEPEPEPEPf炳?璥窟5滑}仉 罕攱壪氘s岎Y袔跴絩k7\暷檂:枝-5,竘腿嚾*a尧忣 +攖牎拀肞T螨肞T!暼$c寀6闡鸇湏髐_鮩5绯7/凕F;&蕬訴唫孢5+`幷メ餯&塴i 闻薐)6dR稪.渠瓇昽O锧鸘D閂粞洔 +倒2贈QEn`QEQERS].罣8裏:泶'啓抠轾諩谓u(! +?黉9&t筝An34獰SYW>!8穽>\耸Y1,枪溆 宻诔u;F噐蹀硍9;(枯弫TU`X茪Nz覱LVnM浧 .菐倫拀3侊@)1困5隣=1C豩i隢8镆憐鎮媒'豜I婍<)h +( +( +( +( +( +( +( +( +( +( +( +(2祪蘡刂陗档珶蕨嬡諶芨湩堷恾kcA烙侵秉Fxz氋袉4斛匀竘透b}袿 涱Uz瀘筆T睉蘃咮:5绮s1銙茏犥[J5鏪!c莞惚涾囅鴊?o蚭M鳙[#7жQ-!关摀M4磫u~璜篳H'讴/wL弮臬庝薴k袳箑QUoo#矉|9灾L!`钫.InR媨W烆 q檇U鱿5蔕琝蠍覑?簝ù琋櫷f牿5:+ㄈ穻?=`遤S\6 ?犗皙鋪󀩉7$21_zg謳磳 抸PH佉洔烎u芭s巌&敎 +E鈥 is4驤O({槤馧=)4逥-愬ZQ鹰1唅u lzmQ]QEQEQEQEQEQEQEQEQEQEQEQEQEcj琮!G5忞Z罕J?钪OcYKr惚渗儥Z扪F4R颣k擅H跴缘卄凢欄*[工U憓: +~*5*@i8鵭 +歰籔Rc!8禇\$ 注:铤zUI,`|SLV葬%沏氌鸶袍閇h秓">問覭娛o2o 粫fi衵鈸鴩证 Y添舄{I^泌;-櫙U飊愠仱悂伬酴f!墹s匭氣+卓.}i)$屷&2纡怛b蚩攙股の'NMs7s1IX^炴悳Q烎聅H) $聛眤 +ns苅=h]旁q8嬰M< 离@y$歋灁嬜4Bb'4􈮈绛拭{ +i潴N韸i齣' +C笈!Vj衄di:{S膅┅(憐 +u"岕鶳4E? Ye3樔h﹟爗覮G謺咷E?薺iF魻腰C隞A籀徏> .f痠D d' +З\K19RN*寂k鐿_i浬壙tХsYq(鏿<腵2岥TJ頉("儻"m 澉9徑I1g4魟溾亱湚 簸镸&梉 鑵奀譄恖揋a钎44鉓肱(麬!悃Ja<鸖騫M# 贏-噥!獅~;Q8跿5i!湈1OS灁躌)#8隬虉M咆糈(⒑8Z)(Z( +( +( +( +( +( +( +( +( +(( ⺪U"s蚙 軭s瀓鶹,;\{Q戦Q:'V缫2'籊─28飱P缰 }21c頸戚{&4O秆辉Us冾试槣?Q@;椧楀5W|锚)<z&(&cU澱囜N腛(1S長(8;h)枥4粡-fkg 忥 +,j柂俒'y鈥阺洸i腰蠟隆sS0祿v: 鈧I迼8鎻1∧ +a$馧桲傇RiA莏氼-卅涇sNAE抚)ZS覙:KrOzi臾~语J:Hs0EwZr]P雍迶馞;R僊J2u堯)X协煭)騫酴砄B潤閿敶Wq鍓E-%QE磾RR襊袸E-Q@Q@ KERR袬 E-%磾擱袬 M>[c)魯<1<鏅禮>髆偔軃'斻鴯Qk#姹f玝u#历歨# E9>誘埔叔姜xQU7,觫僂!酙臮鸜z&*藑覷)0$q許勷熴隤郤J冊 +Wh郏)黨1§ R1!鞩鱕囆裵-泃?)濦靀} W膬くVqa嶢鱠j—O40刡?+X.儿h 灤羘dLi冞8qXn萎剫N&8i2I獄喨p鏉淪8翕 l!鐘p長櫋DC湩歩魻u豔i介輎ごc=(镆櫆S寥鏇嶕CROF!GR銥糝%欺迱2i紛v颶[々_p狼 <蕳#<徫0O +醖zUQ]磾P袸E-擯袸E-擯袳QEQEQIE-擯袸E-%PGj)C@迩>ΙW&9i躬b皯珽鏖旇绝X4敠挍t誠毚p認0J憗J*x~錡5氝q緮妤?璘fS脋5W礳#T/Jt_~橰C鏖"墠%+tτcCd麊玆5VR # +J)3@姿im驕容>YV4,V壦灊匲悫%天20Ks梟I58镸A荍y顅EY O翞瘁謿Z =G觟h苆V宺逕跊宼瀓蔻N骡雍褟j峉嵙O嵋欶h姧f$奓f搎E;燒jLqJ6従?ZWД袳-w`QEQEQEQEQERQQ\射莉潱8 -o\X銝厣鱇甆h7 s毐u孑\<6軠郩9穚諏5ЕАh譓wb8衾 +婕!鎦2唕@<J閖圄&⒋參8Z叺,簥Y鈩fWT婀}G囊V裿祴%淖'|瓮5f懄僮茗偽v1骋爱惦軦钝"騁SY!^c亖腼R:Z寥蕨櫜$炨-\,2k5甦朞1'返@腆萪摨a镾皮馳秏貤{8姒摆oc溦p1纉恭/w嵸釆j<奝 5√ wλ$p甧慣{殽&眑旣)乽鸗l杲MS獺y廯須坘 +剝l寝〔47┿<裈譜硱|觇O礜/-剓歘棻4\,Ji 1o-\|偿Gqyo&C*= R袃R溶(畒's变渔櫘g+9J#Zp冬P)H奬V]N棯8M(獯Z櫑aK慡b顑`Q恑iY娙n=)A4锃5W嗩雩揊(#丒衘/^碻O茡u黔-靪^魙蘡!5I\瀊N /A杂?\淪) HH頸岥@頍zC"/V齣r壨 瀒銕2*敆衿俎1帟ZM\`埩?J綱撒慒ー鏆]s搨kn.鱌滫殫霿纤4(蒃WA-敶((((J6O5j﹋佝蠜?荬y瑟N>z>錠 摎馁嗩a秱V欵O┇讆%硡O柶Fp彩K妜严m 鰘戊捉罪n +|=卐槐9懮>鏄桶d熉(赟箮T]矱匱iq?-X@_伮 +S祒寀鳗-嵘阈z親橨歞穻'祾误私镃;\K较衵T +谦T剚莦A鳵ㄧ礎*茻4q欯zH電柶憡砩42n皮菏d媓欳陎RI锂Z_,z'd铃伬)BV9蔮裏稨Y壅峑嗁H鵃 隫`Q秮曓%\.蚔篍=飘\d"#邱QA +)I覐3$U困侂J;md嵹S'zU惛デsJ(臢胿cq隌v(隣P岕)咏b祮鋳2ir;f狣嶴跅 灤員 鈫>kn<慔Os耀绞※榗險d裕9U>職隁Y蟴cH発,葺8 l3隢K;壒瀩舅色Q睕┴%霶彊唦礒% ,~昩=&2s变>Д]廘锣" !统图潏H=[1E嶰$醌J椽淪臖w:璦@ィ8鎳&))許姳(>啌 Hん璔7;9r@} +禟缲sO暟鰤櫪) 廞Y細RV8I髋)傭R0OaM@驼箄W.@j萣},z;萻!v鷾U鴗匫郩2j瑘鎙7"垚}is3昭%擪該V#2Nv-#q魃踵VX彚53*7BVs鞥廓禥%峐H麘奯<徆_sM-+)/柮︰ +餦芬欏1膪歈幁鵓>鋣4唅[寘鯮iy"靥r臒┃狸EI礊%乄袣Q鞝S掠W盯+つ(V(Z`%磾S%!尲GRj+烁l2吾W呓q:灚>.翑Z塉臚.E璫[{0[悆涩f*潸歰G!(:悐?佟3)pzp(惆,堿-笍男O.褱w5 V愴S莦櫇-"善{Z磳!襂9阖z謀幾綇衵S]掴M蠝v2爩d蹯(l"罕c 抭R嗂05 y&m蝚b゜2i!蟌v 飦M%Tc 戵謺@褤巌H b[kgA\$祵犮迍?s!蝭Ψ%靆煥I檴 +现<孒9C{sㄝ傗ナ羕滒'杖%1寖俲よU嘁侫譀4氥e鋎煉A%挪;MS滄uF珛u跐珑琙灾,╭F F襪<趱^򰕅觥E欽-Az顀,7邾{u3u Z[萕3?2=.i0dw耶茫F湑Q蹑6套F烷'梱.腸曳獍匫萆鶸し顮Q風嵨r=%潲祜鶸4d彃}y瓊~魞穰#uY酵篩=MY8H)緖 +)扊1黫1@>鼕=41rE8"麣.n}腢戻,逜OvQN=閈凣98麺;b廀R劉0貳(譃鶶膅覑歆m儷 +54/8!=﹕!瑾储o纪鴔N&:&BO蠺玪%X +蹣颃癀 ) >偔牐SEV"袸E-敶RR襊Tu-N逳劥7vQ哉-c_喤LqbI閈{甲扤y鞾蕍BD鳁逮d鏻c畀aU#]犩 +{捌砧*▓;摕AX鶟)[D +K癳W5#s謼兝郣酖zE4c籁1H葱3m^供-"9=匯Fr愰$幹,灲嚟fk7HN; +p<涘$ +*髪M刢諅G佉 N躀減5%戼jH嗓P姆A丂x89鞟 歩b,:P螃硛v屝N駣d坴憖k{C[=k 钪稒u祷+i莚d4驽匞T.5x麾4.j岤吷gH楇蚷c泴鑳.纞5墈x'0搮5滣Q揉^Bj骩7r竘wば譺8,襰豤,V覯!a}j[X鎁Vu鋟璛裚鏢娡搔Z奺/菠0怉n5喯u+-坪)&渀r*!lㄇj=Mh歞;廚朡橾佝B¥|癨Z撬_笺) >阦隢郬幬5靂%{d<.蠷lvH 披籀徍吔 岹SN +AE繭:S箩G挨仨~Δ)vz腋狸G酦15(OjpCE缊 tR'組匙奓犼>詟`JP待泺cc踱楓U齣埳鞬粿黫o纪妑((n彾[(忀SV刯)pAN繴 ) >倲[桘艔哉(丟aRQ跐E0: +)詡枟笭催13偯?Z@uQElbQE0 +(ě;x寬癠#0PK颸豆=箓啪n酺禎r[襜樷⺷尃q揦蕔崱J葏厣+d濱5+6F莰哋-昆f獗:璥c來Q騲竑=p)])媋3皍ɡi铤覶达Q蕃"跥赙牚H蜶Yg骒* +鶔湠聲2S揤TRlq廣0/~2廧j仠摀HOsRhK繼1殙敬刑=8)v诩撢n=3Ar{詶Q \`d?;T9潐R 锡x韃鉒f'錨I喾=;茵YЖ L 恾8桍igb!噞x謸檠$裙鉄il#7FG9璕眿w芡讚彊秲SBX麣 犍>倧4 c庂"鋳t2mq姺(y惈p=単L尣垜畴lw曦'箲Q7炥礏IwH>晘0睊艠炠鞷帐L櫘P3[紃c朡恓⑸ 2噾2=ZIr鄢钎@髌紵絇嗗qDj:篝';a颲I JV(#鳳煰ja=┾3镺 !幽 ~E埁_粿+┲狜v+ 纰酯容[J祳J[廃齤A巶ぃ袪v +\QL奬QJJuG$馟煤~("罰3*趣褗娻皥8oZ1I'2J眄/4I鳏Q-酙牚薼凐s酴Dj:J龔詅{;獇L2繒#$ tV|瓔(s朮禝!蹖Ue倄],tf箎襼淡P園險睕w詡贖錨:冓**灊3Lq脐衣3鵕焨4俇]萘哦醼'N篈o!p9鏌tB .刅錾!蠔膚肬塩$耸:b,g竬0嵱礭朇r鉷楎 廔鸱缼磭:w臰h憧LP鳑* +:懺J襓<罀N9!n圭擄YM肾杅跓t蓼喨腏;S倎跐E1 E:J\RU鍢璆雳7bp1 %礡驸d,J祳8p+4涤v忲E'禀}鱲鷼W鸤C迺G鉖丁麃哞*稟袳吔kV3妎b娉s楄[夜杅.]蒮=8搸i赶$V.M0倛樻幋GrFM韺lC栴})X回cq歯2h瀥6吇 +@輹染柘n\纱p偀o;| 4X姿&碒芌 質▎_б[{湵隠D +wI闙J ?t釲1幐9鈪呟1Rもげ!&)粠p玘Di渊5,qoH蔺倽<趣#1駆蘰I堑^0H蒎E燂6hcp鱈扪>V'4U姧=c7歋,!塊r䥺F犦NF齾>TO;$ 瀾6=X郣;*欍_`7'.艔|痒W?ALWc简I禄zs奻d9圃 歺圀$.=坴y橚8嫶}m|殧[tP 藦"稜墯zqTf皬敃>频mA珶钛mCて]tqZ幷CF[M _2幝鑗陸V@u衄ynweI蕘亙]+睉J5 歖ぐcq湂7'c櫽鎎諚] 袶嗾w稵憰I f怹n鑋螬丨梭N扐0=Ya貞'-妘$qdg公Rhkl洊vf膝]仰嵴 *+H惪x乊4q刌 +隣劬3}M/皆9憇*℅秫btT丂(竵n誛<湔戗冩j嵻k$胮(Y +K72炧5Va稶e[Mh +Z)(jh:啨嚒-S鯈W*5LQ璠獘鲄[鮢珟<觋 牃J)磃拋謤r~斒.29鏱宾QT慗*M嶉R菸樑D禣蝘2[慠yZ鉳"/煈姀QBDH鄵Vq9>儦"會鋄G珳Ur'4姳蹠肴B::$8i窡EL夺IU剩f\ G搉慘攧fC>Ξ﹣O3灐)p惓⒙N m躖fy8崭 蓵p* &扖%f黴E慁檃鈎2~2j1$瘺7稟P g亾臾纰鈦<砝A笣37崤0D靬8"盾r臍.'i9<焥'瞟n8S及(偅辫9`fb 8儦4矲肀A舻礚!P1垃怊rw#閂l礓]貟:@"袑药=跠>齅_啬r邥E:嘬1.ラ戶﹎a標綐渧&殢<e責AZ缊㧟撾@儒c9~婾~Z7Wb笰鞮] 2]胞ゝ綁&荇姗"i軃R^*檇;A R 鐷u8嫪╲善M]!俜论N'桤1亗sv谺篳榨秿$bryHd9(3(P#9C丩档#2}M>绲R袳H倞(4潲猬誨 +M堽楜m:?)uX5f觍QIRE4P0┼鑚 责}覯柂7玼M钧S`9~皤UU>瘊諝Hdw戟搁V'WU荍偄y6潽2i顅=U詞圣#??sJ羢M櫮麸S汽#竸亢iD哣肜蛅鷐镖⑸釻腼CCZ歶$]MDFjXz +戸`)藮麘^偆T!=&憹?嶸oaW蕫苒睱扊瀀<焇7螪}MF譴x蔌 +d栐2 郑扻奆愓2钋'隣 d+厜^ee'経搉~馽W拋栦襺漺"$皤R%oj槾p皋i5酺7烨<抜眼▇@J$@鋗蟡玵'菻忀'VQN] *囐巔.}*笂04*仠b┙年臥w_紺v +<)'1盾蕕f#癍鉪.钶MG.購絒4"X欼,L@〦 倓bfPk偦濧'喘騬}k:鶣笈|佔謵-;T7耧R灂啁)墪碜絓嬵o;T}覹⑾杋 d哧蝚點б崇麩峢濒'眹g危t唔U=B闼竨 毣wt郇頤s+`灤栤} +PO,撀(覣尊琕[j=雗R{柖軲 H鐨h<鈥-G遥戈)馮wtE3蓼:崩4 |_|U毇w姳T勈殷)SdXi簜,UY?謿稵啐iδ%2I6 揙'&5K叱苬煗机 +@\2|塍遉矌[9 K+随on譙欌阽鏮訰j-Q璖流MW姳荭柀瀄站誔M坱|U玗 "耕昞t╃WP +蛐擖#5芲;Ms俽I僧玊o馨8甉>啯'XU4珧oT凃8醻:$C瀯P荜#<颯迷説NI鶸坺殑S0翏F繰~(稊8鶷曹cg4蕊@8 柠"jp恶 QKp呫廊 +肐撹(矃搼UN*戲*躳狣t猻nY鯢3軍-的覔絧*`%眾t +U>nM;睜Re/'8嵃鄗毧8T6娩黫旲Q\徿礝P4*Z@7SZ*U蹜V繂惸*颠(燯懸鏹鈽橒騏FzT绛T%s蚚n磫 镼蟁哧 13>軕&庿娲阆梇秀蝚襉鮞慂 +zT7陞JzTW熽許+[X缃^O鮱F豴~祕?鮰咷8鵃"碄聗?T+@聛=孧7櫘O鹒⒏-墇c5&欦珰嗞H誨6zR[夢i6罍周]襨菳呺[裻?J:椥嶛 +V苅`闅e寝$\E?t2,HY~礶氬蹼抂両!6_嫡礴1T瀯质湂鈓`(Q硞yO斏潴覇婅hEU毌2 +盡 昫XiI余簜,U7Zj錝鯁挏!瓽Z搢嚍:鉼M聜:袎bG&创昨t 联-礳"甕韠橏rA鏇*;2r流 T垈紌崭>錔'jM醌潽?1bf髋Z鞩曲簝礝p~AU陷41殙5藽填镣t殞珋k浀!u,磍J妍栈HW1鋿缃A '=阧1痊囨匮袳那孶竮殽j ,8u5(魏@#,OjI讧p杆 +幾%莼v&搼TZ!妐朿W溹f#檔僆 +孕Tw*殚T%-鏳裘﹗phO(眸嗇61*k忰u现槚邈P\岮q駹谤橕浙T砘齤衢Hb昢桡mY璽:})墔6-Z=MU磋7zCtㄧT儱G1&0i(?|栅熽臫V-嶰璠LS摇诲@㎡Jk菛麪齢U灖眯詓 氫5d钫周#9甆翕Jh灓6秚睯戯X9惾筦+{K]濱湟憅6"b麝z橯恐縌氟肦A鳗uX猰魍[獚觔+鍩z楛|%uW爺8犬Rx牅袇`;kCL*臦梽Q颲瑎7冸M8顃栦$w5v鮱R!劺玴凷$=*楍璡=*燅!jU狧n>啜{T镃+QQ仇5蝂`;缰篗H~镳5蚚0Fb誋]K26YG紿2Us*颸)弦B移戵 +-桅.3V犼j琞MZ逢j +(^ 荅>Yg?鮱lH扊辁U(G鶣5rO簀鼯逯锠y+嶪?)F5ロQ/j@请O1韧1瀗b鮶^!鱉P蝞鮶篽[冐埔??磌?H廮 +蛯Zr懇瘁 4f{"溓槫Le +Q晓癟7: 頣,#憬r椆7H舥穃荺'覄OQzH弓+-芅獗X+sIC酡ED賴镌鮚糺z2溤慅鉗75$|谊妾鯁瓰昋均傠旤+摽芹W5蛰?J浏辜苃D'+滣玍G7{6寍'^睄E鋏Gzoa莝頤妇嗒扆罺恹偉菫啯熂j<:歭CX*蚔忥姵奌n>瑷{T?tT=╞2/鮃鑛毝8f憬t殙t9jp[隡3煓jX镢xTNxΔ9箯M:腹f玃w獝瀂栽g 揙等B"鐪鈼`AV% 丳 >l*趢I颧`個#q竍ns磄蕨|T]珚 镴魢=淪镠縱嗛@灂"Q灁蹰@エM)鞷妱濫K@ +Ot 猗=({T妦QQ 9\%1y瀫撘{T隆'7j歝驫o i蔕u"?泸*箄簀殞耷鞻8礇M 靍耔絟U $…_ +xVi旫懹B q瀐P(bi 1㈧ 臗7u8隠淉m首G鱱蔧滢譝u+暫徻h灑轥哐騭蚢dG曳磶b辖)^緅z糺sB*75$x詆餁PD绁T?|站誏M埊w+暯忈舢齓鶺%x愈觥 ㄦ<疿燈羹礒+醌戵7盦荛#麄SO*躝pT= S#V陷5Pu4貕"X*臰嬶姳BCp~QP灂-茿Q敇:欩够q扢tZt9n 搧T'loZ眒彽D鲄Uh讂騇Y +稱?圥w:樉骍;誋嬰V犼jCW叅z@H[5b:訌J63G櫈8_絆↖粒{S@n从E#2吜"傕*  +xFH臾o斸憭M5篠蘪qL=(b嗓邽鏀#41 +弎4ь蛹腸4右- W`晥U扫R穼`>槧 >Q钋穰碡z殼谔#⒈珣涉蟡S冎煍括ドL)连y攀萕$+洟X)內5蟤澓渵5穕 Uc搳 +*顷}*3簀顸縅烺?籑nK亍菕U讠e霁P:SP2Z2籥YO咬?觇C"=i93L *9衷 +奯鯏t墉tq鶺+r覱液浢垘=+敻=G +4忰峴1鎪阋坬颙E呢儵┆z殲*緅X:殘R猎谊篇糺匍U4貖穱~暼葭恧抵迃襺珨忲訰輏鰶竉!'"ū鶖V啔3v碖a拈 +U>喃Q}罵遲誂哉橱MT6"H +癹確|U躷-茿Q74槍}L枯5乌魍t:欭籠肀9狜LX1琨芦硘銑砲w]E`[滾?臯`=jG4 隡0蚑緩z8獝[*扢6 螻羯 ,{S眮妅寕(S}X)'OZ捴疽釜7 蕆}j譃狢轻@鈂敯C磀謙殟6V搕舉^葠蘇琊牄捽掭M0V-h毼觗Yd%鄔B)慭!t$萮 G橻2k験"槳弞d'余o8眑獾JЕ1杛 珖)娺w晎bPJ嶦j旼R埲5D矚$[:霏Tj媘<(y憥O祅婅4霈鞥腛競蘼礇íw谤太風哖2E腄z娣+&P﹜8^N+X訾U#孇?G窑4莰榭;V8鹰鶶B{砀?肻鋻7蘷镜衙茥甧多侴'殧载怃溨梄Z苌伐n氟盧嫄肔bG敋h鶏P媝W殜O鯁qC'GA=史熽蝳+枦?Z簨名臭甞s䴕"z巁踅;V䲟 鷼缭7甬婯弍heΖ=*:殬簟 54MA麱━9門限5l舄熌i*摭敏甆Уu椏耆瓸桄聱鏆')9ea外廽%布V枒皖O\Q-妿鏛焢Uň嗒夨[嬵 +69:毝~楠儵δIV*糭~琍嗐牗OCR躷鑙01uS圼忈畓帨譋⿵菘蝃w猍詯贵蔶鍘鉾F9z祅?j忞C:堈;妾眯齤F粤.v$氃孆R+6=譧症饍閃訩b帰[攄鎹1濄,:鴉,Zu妳鎲:鑖6鶹~苠貞閆S懕楢.蕖剋4Zi隞i dj憙.j顤 2FqVl\<傢☆匕k/S弔+P 啧〾JlS*歴磰弄匐I犁"帛c/1B硁鶓2褰=6DA欫?&瑲H+t4:H酴邾V葵SD矞.$孡絿a[ 直m鷛鳗蠧訳G砪虐x斋0幣僒/>菖P见鏄.嵄隫廞Ut郉'隫忁奱蕹畘笾弞胃-幋-i佧7`雳,=jf鞨)紒Vj瓁Fz%,销pZ实寢愪=i犥┺}H輷Y2趇墣轾鸖sZ碇箔 +E6領>炸O9>-y7[?/or)m?泸C鞱諓蒳 滅啮*M茤墚_ $h燿娑#歒3o#m瓢h掅弆RB斗.hha尒<姣\帖踌w壯S>c閃g!'.3蔻茘$$sN弙戽埳 +sSG,yB4b|驼譼s宻W嵏S毌v侶銼#!.赬dr5卲]8鳝h.j畱潙S'=殪Luu欯?eJ牶`$玳Z謶yQ勽〆'!鑚8;試ˇ勈酵Mz嚬颣撆T#V猔錃lE-F@憮僜讨,听3]l4噷c蕖x羁 厧dY6;㑳·繿肝OJ冫12跟S栜兠鳵lkBtTQZ忣 +o簀狅V垲毃(`I攉5Z縑)!?v爚T鈸S,皞5まdl瑈e陹莆_巉濴渻]M釬`rT +鐨芮nf萆< +b[<筫 庘甕L挦怼~偁'赋hn1颟1鵳()1栢?!珇鮙MX疯詯蝪r€帖俭ZqN揊 +5WV4磏憷獨D/$岕珃 +.n$(=燏奀雕曟獱(.I踿3毇! ㄢ碆ER H08疙V鼽殾x0@6 +搏腮bZc僚 +$+姇膩懼ê3,纞xc"へ緮V瀝*s許8明A"#$5u>齂@-P僻9黬V鞷7J嵑61%s5?@竱礜z雨3謤膳C鯫霰鳷索臟L +玨 l猞=jJ岝4幩>妃Suy"腔k熉焑R焜陶|C8e9暹1`CN42[蘐}獂坅溹Tl''-T完譎侔酴q4 !演 S-爷U80粋=辋`U9U罓2X$彎1U#< +4$ +0MH3錅*Q%沽涉晖z錥5p: +6V洅Tq: nmロAⅳ 狅R瀱絁遲!2痵S列諂妲儭ピ OCUSV廋USM耿*@1Ef璝忣 +璙S +ho簀牜M職:明 +盪猁鮞ej%P_漿 +我潝什g\吁?2跶,#9:卣u昦,茹s跬 H泄`m唛Y`6;絪耶A8漖$#n:姟縟 /9!罞砧銻6幷%鉊BF?膤jX詢転魳弯9j莛k:t4哸k蹦轩俽: 觮 m嘻徶┸%U偓俟6(~暎2嫵f┴B澙l棸Fp贤B駩@淸#哌謶w4啤鵆d殎 >2k)婍b9 ≯q E惷惕ja:5fR堐~K煡 窢0軴i詾>瘠1拌腞'灐颟>袨嶚Uh嗹'~q臞S袣`=u*嬳 Xn蘨PI|P﹑7R}u*ΣF仹 坰檀哊堈N踿蜈涙G'蕭溆|'&C@壼bp9Tj%蟉 8B{籔︶鸈<飨L筼螑=O鏎苫;@黫聐I?孈3摎w悾I嫔Dd敀w%/惥攜 灁;L,f敱5櫕5 2+WOP睯桨櫾盠O箣u绰nB屴P S撴Bc'顨r菎渜姂斚浕娆苗JM剴輩iY伌0ZE"箠鋵痴r% 弟氄26蚮轇束溜LF岛劧fK9s醌P>痄6餏.巭軅`X蚙 I=)骕`R3;y妏1I爳2iGJ颧'>@z原鱉Ez懢楠BeQ栽痿5\w┼鑙-罆:毚z┺酔%-H聤礶>嗒礽>唳鼏獛礽獌6旋鸁璘嵚8醛 2爼汝;P仒!漎9e隲錂躽瓔9 竊K>y躆g岛''迊"艀S 9詗Hw鏸L )#m垓~t 昤M<披墙Y栞a慜^醋"GP踾^4I$籎嚴敉 /YHpO5牱慬潖抸> 父隯v ~兢g4P羹"哕搹0誠缃= j罁[碽欀閮}湻組|琐r~F!;諞阄褍Y37耸f珼+2怫H檾枾翌2E .鏕8"P霉伻Q2M! 許#尀и6m檒:T搻戭lc4K貒N晝#'9毃貺%V`1妛垅巣t2揞q憵l匤惸b斁r)'7K孕檹―#誣-篦峕紤寷蘥 T邶ep怗 +,$iih练变V任:=礇!萛娴h#R-徝{R湈鬱愕A%&U滱魻D〔x 型儌qP[顣?J檨.8q謨焃 lpU{銰谔犘噋奩Uf nc鳶Ze故哱X瓸Lr躊-櫽i,咶S怣:兀 +瞥4 j穧僤Y[楱SS明M%笁顨:毚遲誕杂`磾T佳IE((~AUj襽PM?5TU寔UE6珢=▼镌 鎰;#b暀)a`VrB烟V 庻0 毄@- +32+Vl,懳kR,q诓W["瘁c瀵<垫掂a +L袟>論23V゛娤hD敝p:找8猥ZGj睭咧愗廛t瑊樸氊$c璮 8)*)/T疩<率8 fF,H02A湟(,be'斧綝j回捛砸膧xD嶓1f亸58猓矀1r钴/AO1紤23姃EX鲧趷( +$雗蝪蹒5m#融_妭馔\孲Bex贗F騫瀭!Wし垊苲T毂p迱'q!B橥X蛩FU繱屧…軉Ee5#<@eT硔恉杚覞z?rY@t珁S蟖QK  fm,瓼;V膃_幝猍鸔;V腘X>茞!3<偋揨m鱊j擱蝣咋9>孕2斧U臤荬#}覷GZt誂M创Sw疢皿訰o^炭( h)V5e>瑕W麊獖t誙縎殏/縎歨eK燉嬼畁莟Xc畺琮b&7駹EW熓劚\誩!h伣n+ 彍阒歐m1!:泋粓:虑蟍VP諉澦t\'屪Mm鱉`榍骼5!#/5g#$餵蘓 砨昺=sVc剋瓩虌-C儞C2*i Hh谈赥c镽is溈鑚螖屩窄V繧xz鶸{H?涘$醒P{苜弟摓j踏戽猉0*疼奰`T!竿Or辉8Q歭I挡G5,望︺1t 仄i剳 2-W幷龄 Y伕=j枼'0趉6鵒溙zSD葌vO/撄kZQ麩鲁@-虷d篓蹨V粘c>Z址雯(癏荶2@錃窣臮}罁薙雙眍*疗鷤艍q嫂聧魡+冻迤淄Z篩Bn垖幷旘N扩鳓"x袯崚Tg]觬#kg隠姑+R獞I/骻织磛鋏渵u咑倗麓総钆E燪嵜T趥瓚醍HM(\臸睰洉趲W@镠 罺!麜焛D 懰5hC(Bt誕V_迴, 鄥嘧>恩*棠H,迩媤豥 穹挌巯鰒o6v6X滏硶2糢<瘠薋匶O*á鎣崲U贤镸'5Tt2聯X~齅Y撞<6r*:葸 ;鼟7jk`航帠泯b&>|廧跊挓J窃囅B棹銡}玭簖EAb暌y嫊)*摫.鍬籤?裶X`~籥搉39彼弭:矺+FI* pr{ +:葝蚥6V壨N疷#隨璽"式X嶫蝘櫍<調薸n$孌@3V'"栦栃碤m,供92>@ 9﹦蹭琞提 2 +)譎V8齤鞖|n笴祷示惽狞?; 洝j Z>S覇弾U%>Bs冥.G$-岴;侓獁q<5.IM ${#糦` +i2藡I3閅oh饾J訹茷4姝哕P靔'u駝<譂ぱ世!鞾㘚o椎\矇2 短龚h贷>[0聜j5隅蒬'迻K萉F臑-/ZY"G莚G%既莥畿勇m鍢}贽鏌97茿\讥q宥陃'樣lm螵2[9鰛*x襀疠)Xw x Wh蘮j构狊#!h儻 Tmj刧(<馌恬o巶寊┉a#娂cQ@!h哕8…/ V置贼云p(剸)e;y鶹獱1Ryt5~^匀`&祅%措h垍wu望)\ay⒍L\誽S溞u;蟌x崇颲D鸽奜(u顯)c頖z豀- Q巕蕖匢<涨F蟒椤* +塥1 RB门T_P'霷+<'棪rW氃笅螀'卌Kixc035b]%?)S亽*迧 )/i囜U捖劬鈣>K(eTf慥3牿13焅Ui5[8Ud_aVt薳k嶵`V撑*侓V0蜷婛j +e罏槊4L液绽卹Bl$H摥蝐 +刂=维d旤豞j茬;>碮&>k棫晪獇⿸紝柂mp儵?,3砱kqUq 富惪推=(嗋梳Y妰QN屇誴$橓畊歷漥夌&褓A湔%HT诠-秧&Bwv瀚2佻5(六!A鳷鉗 4閄.$t-瞌t万稟@師鸝嶙d* *K彗S弞葞葠:5~O4表p岺d侓7闻绲R烗w坬k>逺桓憱%耮唉蒄蔳-懲T擙}Z!9<鳘晓荚N)蕵rh\`S鵂 b姳%A鱞_惽妛餬殻 Nv @7i +髴F(9攗 譁+奲彈$RCPN1蚈@镻躷擕碟R+sF?v縅F爀9%姊"珨経壠蚏静欱'嘏TzPM咛!j骫楽/*侂XP枎苑F5R岑/現瘫'淩踦搿6牢姤GS殎%☉z曃侄n劃土瓫BV0=(嫶壹妫揶Α軜wc4XE潅灒⑥薮 趮f0グ踐鯔6p L.OtZv芷,崤Q认":QE2)A\悱  +懝A殫祀~uAe媜抬4,? +痱蚴A冷W3yv85眘<~cm,}>Xt傚w[|組a!毳d踤Y投<聐誅塶1F閭搧[獤馌$啉V邷氊=/|楪bda毑EQk 淩釭bc,G礷o4# 臯!鄀u +Fp憬P綁6诘笧rCJR1恢滍鍵1O穫禦隥税0湟'幾<椗I,j1P瘹88Щ睆憡C贓墭雩5&U獟軋*ē蟬XFGi$u⿹堵乖媭楦胖.惼隦X(F釟嶿=dr#W "eHY1萶*+ 餵i藨僚0饶淰& R7QV瓲*'璗璤穙茯hh.5P&@$匝酺L侂V`抷'd4\I"懁 +!N}j59榮\h+幞﹐fAmV^;xZ!樍2M>蠃1謮墻bCm,鉸$9b8~j溽;#,\5沶夤蠲1蛌:S[[X&5%協>轊8ln半舑翟ヘ譙6j5b3知鯓齤 +-4玀)镸纤L搸1Hz泮褝民爞=瓬v困緑4奲 5螶湏U$鎼葽鶵?薗鞨F8颳V;鵜鷬霘Xj1/Wf]窣fd鞿 "鄎醅gR噜r釼 +z5F7凴+x4H廕氝垟{Vn;H&#暪玥ld鬺褨`*z +爧0詷鲣妕M$GRG5N曼缎Id47錹J5A鳍9怽呼 廈) ;8qT#箇擮璈_I符g*暧忽5n諩xTWU+ R8n偉@獸Alr(^8ǎ8苝萘t 娉x蓶&p~4 崏a臮懀欯P8*F$曹5 +UFz諸歖葥A$5z宊lc璟)湗s蟐*摪毠搑莹1[S貵稆恠HYRP換磮!m K-df*[僔喔x!Pz撧歎w(慡N敫OJD硁3FS骍9槖zR;M澰蹞圼'孶VCa愤n檆影趍錋黭8_糺郥傶釄釜竂#m 姧,ジ輾g)%墷EX%h苶籁N@Hス檶噐銗摇-(2檅'$捘(1#妤&檞遗 >朽9燗# 琹j0$%%{綦ZtE聫业#旂16骦)hxF郿员8ゆh┊秩臋[夆T犕Zm\s蕹頴`錡鈻腉sg瀯Z!f=zU崰rRl刲Y薀g1Ok 渜颵厄0系-掌P影ヌ蚚(骚V<}*3s!j #p﹑阧2-[杀JA 籏t刣zTx<娮JNGABmhk壊U姜G濜争吅甂鞺鈦%}艘:挅)筠:鈹[診穚1czR驓a1黅焗h  甚0v-N/ +F]榖.,偙 M-蛓YR蘉U7閷*熌諨I蟴 k~,誚'樋!Rㄚw?y>i@乌'w鈥L7/轈Z飵d?漋伃篼冂c遠ヒ攢bp踆rń轆禄~裪講w嶼云H1[楂鎅w8e髎/消5{RD1l邎'埼aeen:9榥;叐qOr&嶸m6i倴墕zT廪acl閉 摹 d鳕x's$掋暁煾鹁第澢蒫扊&63N]瀶:壑乛;鏐N +r攡伃答#榾黫寐9爓0-4摩鹛x鎁V .行-z妶縕#+诙ヰ贖@癱荸S怛&>櫍PV睈输浔现4韪W'隨\龠X燈圶侟K泉嗧}1E茣片挆2啣鸝J忢q泐詡xI隦衸%牖!5a頲.Q=甏j 裧繨范躊+2瑩0Z赣F`#c=ヲW; +鍃龌舁 寊U佂LtG0I8﹒僡室]10跋j(丨)殣 W鈯).N躥檟H祃zQE2^򶳞俿W〈墦$螉)x硡橴 优摰1EBaLGQ&& QAC爥吧゛@奌拕箆pk'瑴袳fK軜;R 0(=蒫$存XGaE刅楁マq穼QE鑈H娆BET0Dw变殮蔠g(獸埓.$轋顣#\剩!ááGrY瞚L騝 4 僒M>A酡袶规粅やRW(牘$"◤;x5貫*焉-暑+GH秺Y:E蒅D憿訆Y帱妦($螏闗)鋻遤3 +E袻孖>鬛K┋Bk> 煭kZ囨_蕣(涠皔_4J醚唊"犍韜,1Bz%S#〾q釳Dn阼8醞做澺鴑k)繿E簹綄%寨淦氅}轶O;.蔻奻r噩$懕橽琮*秃X Lg揈檘贁bKA苨屧x寥$cE辱^嗱x9tn +"婯:G变宥 +(&d胏椄供鼒瀵錏備r膴鶊膳Sj晿d熚擰@*~U购釹惤P +endstream +endobj +124 0 obj +<< +/Length 71 +/Filter/FlateDecode +/Name/Im13 +/Type/XObject +/Subtype/Form +/BBox[0 0 2384 3370] +/FormType 1 +/Matrix[1 0 0 1 -140 -109] +/Resources<< +/ProcSet[/PDF/ImageC] +/XObject 125 0 R +>> +>> +stream +x+T032472T0AdNr.W墿榦dj`琯`╜f`ゞblbnbaRd捪灐L +endstream +endobj +125 0 obj +<< +/R7 126 0 R +>> +endobj +126 0 obj +<< +/Subtype/Image +/ColorSpace/DeviceRGB +/Width 332 +/Height 575 +/BitsPerComponent 8 +/Filter/DCTDecode +/Length 14782 +>> +stream +AdobedC +  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY?L" + }!1AQa"q2亼#B绷R佯$3br +%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz儎厗噲墛挀敃枟槞殺¥ウЖ┆渤吹斗腹郝媚牌侨墒矣哉肿刭卺忏溴骁栝犟蝮趱鲼 + w!1AQaq"2B憽绷 #3Rbr +$4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz們剠唶垑姃摂晼棙櫄ⅲぅΗī炒刀犯购旅呐魄壬室釉罩棕仝忏溴骁栝牝篝貊鼬 ?魵( +( +( +( +( +( +( +( +( +k1仠歶Cpp冝4é犅滖譂@倞(((((((((((((((((((「=q籀XH蕄跬F祉侸撐绶*[4頨夨巼穘*J4yq8鞻褽v!y򛴸踑鬛E2((((((((((((((((((鍓dR绫舄E,U騂䲠譸fwG r9烗X.2p7箭(D薭QVsQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@!zR訵 V#曒绷霋y8㏕逦8< 徥nQ蝀2r*旳像|匠+4uH 螾 +0^!藂凖祯ㄛ{q栯蟡G(p+澚d阱裼覗蘪x鋠S晡fQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE^魬蜯X獁幁匇 +Ob楂)訝鄓頸_俼卓+筮x阋+d鄧'穕詻頗藗<抶#轷槹^^Wv梣n~ ~~溣沨躝A業hP搾FjJ喿齆@H齤j- +(!EPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPYX獬櫅朼麲#?J炲鐾9Lu莦 y茹 鉫r藖炊永 變隡9僬'骘鷡砹#'悬輳犸H8R'烤;i笅買<麖;QNT裨鏛~e0G滨賶p臒鯣鐨 Wc $颢鋺兣QDe89 巰蹴唣x7`n4EE}Qb(1 +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +(3疘鸃鐎紤跉* 8複憇#Ss頌G=7官筓钞渦?祥@W醱傲s訆X0W=x 酤~旈:魊@荺鶳&醣儗镗佇隢bdG扚A郿b8 v0~锃H酙8U A$貂試纤嵜w 灾N 6鄲酻.騷3SX137'-耰r矪(@((((((((((((((((嶞$q鑚慔鋮$`熎 垟怎舁6鶑L閅轿;羂t33u9惀q鎛 /b郦08灋攁恒s逗H窹z2觞─HwfN; +掻ZL忳(粧 粊.p)t;薲p0GS*尓巬NqV,dd彆52.藕( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +((_澮篇yEF>枭8c廚旊@N)冾餞Odt鶹os*袯儠l?*斛詮髈鍒蜪:RF;喟,qJP琔軖烵oP鏺笍鯷鋤觗怉,s曧O 渘R2誋鄝%I 詛)=F 1榔Qz~t雈 z鄴艊実 鋌1Y[覶砑B纙瞍;]4iQE∪QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQHN4捓Bp痞时 咕亰?潩娀{sSH +8 `溏兄h頄H泪x疗rzz訕莫3嚣帕Q8茿/癀暀U狈0 pN~mI1鬁憦L覾棊IQ戌鵖b,A輴<悱>R菗渕蒪緮懦v!胍氥 嶡O$櫤aH賠#!滅奆挏4$寃隦謬#Vv +(Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@RP@%T壬磉圐揢V釟fn榇桇煵髮鐘涜k蒳$ $)跛b悷9鳞d杫苲u +晝wS懯怈#圻姅tKp賑如聺1m瘈Ib囑恾褏~ 伹鉐蘻怈凒T纄怖溿規倆H崋N9^笺佊橇尓鞶8骚(G +鸞=)T读熬1伇i5嬵OJ潨+(蠕猹豦w±缱拁%膩A 噶狚j撔芉稼,袽F亣B3N2 +( +( +( +( +( +( +( +( +( +( +( +( +( +( +;ry4殎:鐨#}譒Wv82 2.8△▄^#R +哷0F1仠s$&3俪幋6>噜髮烎H翗鸹抠&懅Q梭鼻?{鶴r湾9綼=A$dxa蟶v╢m>\ q滯t j艆m`P,犱nnO?N* O;O宋!j悒 鍞騭老@系5唉"篸 w3灤, + 渻JA煕 阊1;秔NKu4%鈥r泷n錉寲O軹黜&芾`pzrB.i瓐熌橍罰@蹫q镹嵝s霂旡窺E(((((((((((($#ㄤ/騪 ' {~!佊矾臾蜙壊@銓淩-璴T萖$}{w5扇s*Km@03;g$#o殗毙6桑鉿 珌窝酴%%洊 r9胪,k嗼A'N=?)劑d1幖噻咒耕跠`巟绶╉Q抬~s佅齩zzW,b*) _U料a燇鳵# I;w焝Q痶虈 砣鶵履寑A摲#璓硙1胂J%苮8?琥腋躌D燾a 堇':{S0 H沐n进蚄渃pR;單:{妰zd噜;z觗9l1愢晌*+鬁龛3#諈8潒-瀜轼覡H蜊癑3侽=1@痥懄3燎8瞒ㄡ6H豀>b簡w媝=奱X芗/B={Qa﹖ w7g,巨炯cn巕濿皈8k鼫:k鱻P{樭??聙C博+pgq苆敜娕rs優鵗籛<68x憡Là蒭粀對00x1讱d仱'j撓-诂caU`&茳鵾䲠 +"债>蝸p@郻Κ,p鐰聻 玼⒇鍤礃QE +( +( +( +( +( +( +( +( +( +( +﹡鳧L軴j稵o報"亴滅ケ%"%Sw藨兞?53尾/n軦雳6crG$'螯縅BJ;3t- T#霻x蔋Hw隫p<憘^ 菷sV仈6YX(C涁釃蘒侁}}:岯x?.罅?8*R砀|莌錺凈x根[咖驙橓$ㄣ㏑A咳↗鶔@};U呧|蕗_兢专獪 芹覒i陟kDc谳W儨qO]庎^9醧徫滧蟒陚W濶x*H阷 r>oЛ{溏j!H纤徥沽(纔0I籁9<銉貂m$268䲠虐rpx蓗M2a卤9,瑁)陃F:l1升(檺獤C胑彲"壬籶蕿蔵$ d鯓>Vc僕,沘炃Q芷S,袳g0QEQEQEQEQEQEQEQEQEQE勦d8s'Wf躿灴_閆/厕C腮O"苍郌H9'璂帤 F浅`n抯悾焥锿0q冇鈺HbCq儨{{雳櫢a伻&蒴9f 䲡c/輅H圮匔g)兞=伶昤63d恳氊泭I澷8槧wI$7覗=噁審>跨"F鈥'8=yC盀A帑v4H倂鉐򣡒稬7#0鶁ldsb:wЗ nKc?h+寲\n⿷,mv蔿J壤笸I劂#N 趱2鋌B@沱\u&颰J楹6诨陵r3撰s/颱F9CP适7崰鍮NO衪з9鸎q絪8*栨3粌4h秀 +)9系-QEQEQEQEQEQEQEQEQET訦)鉸璕N侾鬅,战E聢AzgV嗒额搞恴擄鞾藄畳懗觨Q衪 và$'?_楼濵蜛,p{仧疲摋\~U,= peS8#y5+nU'n7t疩C1岾 9⿺根睋卐鋥lU[8 r睅W恠躴䙌鋩し9'┎X 讧鼄2Af#'8D昋  +廕w六N迅`鳓鋶 儭属?)09n燮?咷斧 3巟悱;犎#榎&氁Fe砪'宲?檄J鵍翢頳扊鳗⺄ rH圴蟸鉓a彅嗆Wz伝i]6z`泮廽h\~ +泾c渹H#HΞ臹G<:馩 +A;貎伹=W笞穇裢1\愮9蟸 49*7荮O蕼c篵J'忓Q蚤_ +-偵+筃褟鬄溤p74m紷瓾悃獣>d\&8鞘rOo甶 `0罶溣3Ktl袶A去璑((((((((((:踹鞶ㄊ9&燪渾e希;u.A7l虙`8席酙槕扏 `餶7观 珻!%蝀尊禱Q蕭杏G%忋Pl憐蹣|;I吏颯徎轂@媵9i V搥pGp珂7鱽9g籲憔Q牢1硇T9爬 騲 ;{諉F屏_槔鈋 徏 乡庺0崋 O橧隞 圩 &傑幞釴{蹉;頳}衯N9畱Eg, +2﹍r}齍1La 鋟漩2%U钗Gc焃涾A狈_髪H︻悪芚#x<鼺P 嵞O^")!H'n6穇酶胗闈翂<摀仔S$t}L/">ZWQfO8顉w鷬D. ;~挈絿缗H仝B19歞7)蘥幁詾MDK"赌焣P徑镲Y钞;!<@![$佦邭k (+p?>炊鍎,OP( T暻掬`焜d4鞗}=P覺堎 +7爷肢c姠礃QE搪((((((((「m0酔MY2 輦鏷庌窘7cJq鎐X鞻 $VC雭熻8鄙禎詢驗_烴緮9~Y諛`铤*c惂%y}澪籣A兎宗<`瀲覂轸篈荿嚡鄇M:-I[ Pyo箜WJ$鐶8妯r崩躽?*9 1灆苨掖壦W{慳 7/9'y*扏裸ЕjМ链pW URH鐚注糸忞鞢=9d邙q卿yΙ8鶕h>銡X鶒闖般<籁懮垞  鲰@"1搷/臬'^狕勒p尐<?.煃>"~e u 庝u臞4巣屶g?/C腚OR~lnY诬抭9Πn鈕粧<熓慓R' 鍉广烎萪踃(1认n$纮蘶/蕕ljaP=$廲n皭捁芩寽] 鲯EB8,轱P矮%N8 +鸊昙 G{tMl踗鵟?齤扤釡喳U`錒`y荙SJ 缆炳F凩柗 d `撨愞烰覸迠 k(戵2崻27s莹諟南 #Z赋灛n甝*蝋((((((((橠q蜇'ф+9諚齦dqR輁;旼7z凮1lz珃6顅S儕豵~ +=}冲犉 +穹>聫=p>S霃簖*'m尼p;s殩停}E?tw<颭?姚.躢 O蕭)潽2З?耶[I1 欠T<#佅f戨R.2$鄜D奁3畦虹 尯崫Z珣楖 昘檹^勸)澥X憲翘O>綇贁4W孾C胏^#▼蹌;14卑ULu谫蹉菣閻7 ?^}枹F2G薮铁撣凎c樵酲n佶m牔螸圉腠B! rG\n^?螸p聭<6z}}=建oK +0|芰伩湆宔{ +侽1礎郥瀡pT佌WTR3dpGJ杢E;-亙镾BIT兓*籵S憙杏憹~?*W-畦r$鲷镽D踈:綛uQ黼廓~a +A^閵憂H +хU:i櫢6mE 0聼Y趞嗍c 岏麓kT顜戝晜(QEQEQEQEQEQEQEB蛞2劉崧1韸 戯[WGNG輑╋YY鄃23瀔)-N|簯69c橄aM纭苰:R01臕袆┓や摓齍 H骨N} 4) +藮8h=j+A晖c∏礫眬 e堢鼕j7a舩A濞聁骻壭悒憐飨?鉓b,W帳`騷^逜煗C'Q聫\f$8暗 洙8 }xゝ衍屢噔1茿Rh.:cq泸Г`/蔄#''Jj巣d鷝詟0*rA ~煗2[6c()魞慘[濻((((((((珃盟##N??則镉掖oX琻 +'昋'@x0zVr莒¥FS罠螹5_懪[孑兤 扒3鳷3紆ㄇj0f 湈紡瘛潏禽漩\岧jEB>匍Q ;渦且瑿(6H"少T##r0s酯L儌a蟧捠K97m瀤曃懒暡Pp$驦竖芏Y咰9菪麀U m.)6p:傌!坶@BR诬跖+/苲/iT璈zv阚5&╁ [98EF)酨?嚋~?醀 0鉽罟䲡Rl'$1=3燓礫F曐F糶tHOp)t9Q窑璑窺E(((((((Ж#>阌熓脝]寈哨GJ胆抍理詆溦0 mq骻?忶獬栫e% +頗b#P股诠臮=;嶚魅@*3彲璑]0A蟡dY8Zy鋚}y'!,褠F菁 珳觚ju] 煍宻邔馤塆踢0胾.菬瘵).ゾ圌鳘G4樕惐A寫 轼{Sc 觝.FO?峀p 8\倓 亷魩Pd&@|1&Vr鵽齤E崵榤6秪滣歹H誃扱 N泖@閺遐晩sw6渱臛QY0尪N2#彠錝?2 蹃艷謶B嵺搶03迁<}i挐堛?1V 8?w烴齤$P$[1靔B6萠kc;囩蚄)燧身螻唻枻, 0櫁$g∏訌7`Nv葴 g8M擛wg仢米赜@+潩8騢皵妵>S)n裣=W瑽@+<慥苌*砿%H'啭誺R燿0S诅=籘硏博a(%倿~觉 K抸l=Cc>秒S)R繤鹶9=z|跨药M 躎* 瀲?J0蒨曏r8.U刴懬掏烴黀胮`tbO]2AUv豶G^詩<'n9嘁笷b罭崴|8寊R 洉7蒇 + 窼傎雽铑?蝖Q吥lv~c=鐯3.佐芘妴Rs臫t蜾*{T磎 ^鑭H灳旈蒰聦'滙灊籘$2jA喠=6帞喴酵=8煶` n﹊儇w*韒>聤(QEQEQEQEQEQE譵╗衒滺zs@草慀f<鹒爗瓛,J汋q旟A#-鷞Ui.$瀔&龠扑A扝侔瀤>#绠Fs⺻谡`Lc酴F瞆Z膯e$匜_ '氎圥r;戸!亮牍c攮5刋a惹;槮f掛N|灯磉xg +8鉸=O險V1酇1钎※H峺l滅Д;眗G眃輈sUx摄謨w讋c誟v1毈寑G焜M褎 .r1焠砞媌臬ds誷焞g羫6皙 9銾l郯黜JZ2鄗t秫Qv="鼉悆>䶮覅间 +ょ縎>啐z,9 x~敜艙匬3荝G4]嚦廱w.糮q.r纂N鹀`*=咳AGB>頗 cqE貃8韇qtH%q)遤g卤嵐盖o錟2樒眼8冉B嶽=8且媷砞嚈 6{g})鄿}軃< Rp繿~&"69 酴税$湶,W唜Z嶳\苳&炓P06渃撚酽刺Wnv亗r?*摼腨荿A*H頨╘忛鑚! s蠣嫂薫k灻9)"錀TZ垂c)TEPy'骏j諹剫鰧F孉绲j直蒯-倞(0 +( +( +( +( +( +Bp 趑ア +FR8a其㥮昁y驢厣]拣<⺷ f#x9鐬;㑳嬡 皆a粇濋嵶熷N彲镽n,扝` 'LPXW#擋鞰c.(擓R PI!)h +( +(((((Π蕬躷=樵至R0Gz然(>6翥>跨症#纩2:⺷riO 鵶=>凯D8P圉帼"瞙飳晳I竘}:樱朕扷ep#亴詯F细ㄎNy鏍萁.J+6制s廊={>c8上;0_檁n9?*hF蒕间 z耠Wc%aa儊儗?齴7m(?粠$u苲彦眗<睊x?S迶)q#(莾鱥[ +9 +捏灵倶31\冇=~緮,j2兓#( 焜儢我廟y垹m*s=Z墲v皦r犵'狱J導 s惛鑘,yQ(c謵;樼p~q3Q肋xH倾4両#*1嶨$#蚓Nw?绛!?9\琊磉鬆)V艁冝傒!簹蘁 `更僵宀9?x}耜:馦贘卄 +B98胍啡躤{u鶙馉t鲜s鱻Zi#`鶃 <+n綛9n*@唬 擞寲c莦聍c橼4揔q-O鶷]q焅州e$$多侳O袏噪ZD猱觟硿((((((*垖懚褻c孴訮4祛9MliGO~跨瘿 v$c蟓籴I梜}駣艝.F\儙樼5寱廁U鼿y虷庛卋^隣Q撚钷絰锧! +儙磘V凄Hh2n黺8硝鬈1螶暰b腸I2勭 +L-觪0搶n*蒃銉臔氲蠕b.-1儦x暵%#滖膈ㄍ(夕z搳EYu&W朄懁蝡>柘痥0.蝃撚颌仲-裵>lr}j舓踫汐W汬QEYQEQEQEQEQEQEQE!g獠瘯扚b莄G閆誎RWb@Ns姚KCj2磻:詰尪0璅*h薽悌琎镠橮 嗆;辎5-亗s巣妝0=7c<8!,0湃9<侊踱鉔B?8=餴K{z鐆情Jws邽溡,躈FB濷鎫R~Ro7郼無鏜3.0A#擄⺮J!A\幚?^敜b蘶飨LC:憪Xs孲O蜏+}:~U4ㄉ;6餓厢妽坴q$M"摼a苝@ zc)阹 怓v巤焭L}茑6B灉 +LF躵:}铭<皈1S%営彌笄湿03伱:~ⅲ擅31驖糳鳋T旁t8-#疞翮4沎o?*鐣+蹵惘4龔N*$@^萀3+q#唟Jn葡$0^?4饘rv钰H?5r 廆pzq滕1b_篈扜 c.C箝堑Yl$巍筣层c詸Pz曂Od,酻婘8>6O颿彞(晁`侪KE瑰Q@Q@Q@Q@ +endstream +endobj +127 0 obj +<< +/Length 72 +/Filter/FlateDecode +/Name/Im14 +/Type/XObject +/Subtype/Form +/BBox[0 0 2384 3370] +/FormType 1 +/Matrix[1 0 0 1 -83 -282] +/Resources<< +/ProcSet[/PDF/ImageC] +/XObject 128 0 R +>> +>> +stream +x+T032472T0AdNr.W亼瀬X廊嚷P宪X霖蘌县繰列热\显?萛%+o +endstream +endobj +128 0 obj +<< +/R7 129 0 R +>> +endobj +129 0 obj +<< +/Subtype/Image +/ColorSpace/DeviceRGB +/Width 274 +/Height 624 +/BitsPerComponent 8 +/Filter/DCTDecode +/Length 10740 +>> +stream +AdobedC +  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYp" + }!1AQa"q2亼#B绷R佯$3br +%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz儎厗噲墛挀敃枟槞殺¥ウЖ┆渤吹斗腹郝媚牌侨墒矣哉肿刭卺忏溴骁栝犟蝮趱鲼 + w!1AQaq"2B憽绷 #3Rbr +$4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz們剠唶垑姃摂晼棙櫄ⅲぅΗī炒刀犯购旅呐魄壬室釉罩棕仝忏溴骁栝牝篝貊鼬 ?魵( +( +( +( +( +( +( +( +( +( +( +( +J)(ii碢é鈻((奐(h(奐Z((((((((())h @Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@敶QEQEQEQEQIIu苎u襥3@>奻hq源萄悒︽汨QEQEQEQEQEQI趢*%5肼W祅符礿!h4 ZJ)(sFi耿乗vh43@\SHM!5cN亩H ▉N簹N4歯h癨~詔g"B伽-丩!oZ,窔)擲h淘((((袸(qX嫭敊銘q喤4甃#璢V 29镍'@橬85贯坩6懢q隡#'咱4&A4 勓慙泤dRf觪JiびBI)h0欽\RP趭2)呴豔I奻 誜WL辖X.hQE壈QEQEQERZJm-.(眜,L唜8晊(##<薟$粬4=镰k.n&丩h1殗^睶氯yU廓a甔塁@鏋M&i屶R皼M0皑虣猀%碧镡毺 FMZ& '泭欱誠⒐g苔* 躍 S 朌瘁%T-J嶱筦娠M*詻埂D.L^搖@X褤O擶'軲/Q鈸4&逧C秆E傛軍2+愯复f榋浘潊蘇3Qnb\袽屢且f洑3@\u-0\僊蚔抗5橙{ +i\R晳蟢昕6瓬s],C舣75喓wS舥^諱>\冪Z\氊Z壠jL)工咰覙皮挮揨迸3M&54ゆ汿!hh4褱覔MZRi3HM6 4R嶯)1N{P2>h卑蛫劰>E9 \仍abijr妼)&嗭鏉糡E盠/U蔒薭AH_毈(\滿+>*竎 f(?替US篆8 +|⒐g台ncY醜躳娷訅s条=l瘹59Rx肸z圹,冷巴U=&h#嫱tZlh枒+jihX!蝚芉E缺]唈S*笋Qg=獺 汼Sj堥0&拹1i1J(笭 +QNC@)UsSF-攼袨豫EM丮+Y堍=倞v " 觬E揗$跬d慦'$z,4蠭4鰧曂;XZ不瀓<詬f撍8璖D虮犛僑J慔)"]卅鏀s覛Q+辆嶆檭镵姭z5'檻Uㄉ僚&刢鴺治0捚&祋氂艿,嵗n"6烏嬦 sf萇C]鞺&T姅饌KcHb滶 +( +( +CKE7--&)@ 跢)h4n(ネ(Q@Q@Q@%託qね&h燱X"lY阍峙`x檲酹DH惘*矌j啤Y3恑帥2頌X慎?J鄚;/棯犗 舧)&擲8懄>妋- E%あZ( +(︽ 袴3Ki4洨I0 SD;忀EA秆Ua(犘Z( +( +(樓驪緖SD萂茉馯 驲6圠悮婕K&^5畡溩1䲣Z欱{溳鹕Jh峷僐^ 矈噊僒O"詁o霁裞mǒ3RRU9鐴z5儔-"l鮍T勊i溮*柪捁葓.颲n畍MD膍鐴$=8慔M`xn騕竆逝埈硽fJ5銽襤 4鄇驨輮5%G +v餳谤愱)浌ド;帳&is@V泜 <歝6)墜淨慞礊斴"鍗聤療z($w5=B J 粴k6M4L髿".M铈 妭90j赂".-ね.jK迶P磩S 8/1K1諉+煱s酘K尻X8產轞J夼簧P1 +輏敪g(\5龠秈\綠缘輟襈:幑T鳔+6峥庪笗s]暁饧 +郵JB递Qq碐逖鍔枈W場 +c/6)4T 肖姴Pi姭榎T送0G妜ーB丕f憖"愗勪qQ04泸覂殺Jf脂巴F脦j攤(モ奲眎咵W29j挸N茘\狭虷3 姲)9Ж0*湁P+<垣璌KSvUH隌"暺E@戏傿W%鐼歱臔5`L拻)q^.觘汸妢箞餙oMu诙甙>馲癊$襤ㄊ#XA.擃+g^蝭瑓Q奷躠鶷O懹;(A爓:o垌i湉j韐欚c┍p175益n悒と"M跟Jn7PIL-F陃03Q';9圈啨15n\奵QS$R盬E7*/QE懓QEQIM萃戈倄:豫6p)珤 Ee<談&慔4猲洧@造說怬奬g*氘Σ鈌 +z淡萪5鳓l誑FM&琝]9輙c 阫-FS#祂kwK毰F骡@ s@4禹J[仢/冨踧4Y3]偠:峁冀Yxa婔糞%a|F膅 0l奵i狖恑+挆悱0)=镠颧a櫷eFW愷j瑒JI5觯a璈梣4獓<諃.O0妝AH0)r* +逖O軪%QH阿(*7闖葼M\猓,I[&榗腑Fn"魔="R縉=@剬%X<誀{┍2痞 儠﹗\尧`v佢硾灾貉,偙S搳拮Sl1阒皣訄ь丩 :l;+>⒓"RToF陽処gz牏鈐.Z∞sW$"璪褦晜69妞4艩揗坧jw3U潏4戌<渝府薼A pi※т-`侥芃J瓉Mw橭 W+H ;朓蟴xj\麔驮Q`箆(倞(挅c淭jIn1 P+ )歝!"Ε盓醓虳w +衠5绛Z3!7秘S澗^84胝_ 3豑D5we舎e$楽ubn雂 臽儢#?屠 砩Ρ篵り亶辖z^/潳@傥+J罴>4襚tu鋛V)(LV*,$T*jN)輮舋 +咾|sW⿸ 姤&&憰萳S&1O5m蘣k8ьCFE莃"茞撝澐灁!古!拑膳1愓+3迠嬎4S蠽f萄汗N嫃う瞌 +庋E ((痻矂8mm嗴g愬堧R.$芓驪i 郯:# +沓∕靟L悈u5:颮<驝v3醪>苿k敌雬 U"故詺U$a謽囨闭q鲄譗鄼断492+柇 弯k 纐奰w2,蕝纁壑摠 jl巏W"槾优)4啇芈歯qR:gx蝚鉩7pi*2y=W跁#琈<蕘 *f潗4嘤{S7`襀.H┩8拲N.?S3顴+奱#4瘣*矵CsY%sI2G|Q(臔突歫懸瘮巄馊 <b X巗R釸=-B$答涝氐$且QE"娳嬱睌儚斨o嗩 簁+Q埄|A9娝gy舃x^鉧紕K軱没檺ㄣ瑼nIvl駬R Hy銽仓苸 Z绫-h孳隲9晄隠 桲媡蚏y 贴B撤qLD啲XK錩B愠 +9k)9坳w1嫬"厣n+v9r+呑d;豉 u諲Z6鮍Z;3%th巌Q荖(54L\ +B犚袶3)綸MKN獗NH2:R,8r +|蘚'屸娲橢@瘐5q% 鈺I蚆$&@閆&g拭4RmoJ(,蚮Na儕籙鍖搼\駐f襑+ 惺H鉁蔌璔柮F4槉TpO4忉zQ╤0蓼I=j# 颩 揈傚%8H1U僸Q0qS蓂骕岂& F!颳鋥V潀-嘇*`UI梣 囹k属〇儳EhH鞷ie觍T蛄8H礷nR沗=+煆檽=蛅Z沃8嘧8)蓍L捨/#経#"猏]愵錃1"覠j湏歍彲J`j +%构ys喇驟楰ヂ{亰笊G螄藁_ >\珛詥瑣苧&彍f+q\直sso<(嫄6氳嗌塊鹉sND沏寽诱溜Le猓璄;氐慒j!L1>h)鞱Y}h錫蘋M#40Q糲+1! y狜圜㈨ B(zQSQN,))h,崳V* -Aj觝M&e2G莠95ˊ#慙h詫b璗!g9鏇*魫8Q鉦x琭檽婡畕歬 O屸欳g5iY渗2剜誌`a{V挡肣攖F嘱Y/8闅姗菇=帄%q镽8豔T驩躣l蚮lQ諉mY篧'#0颙缛鈽簬) 戕時縅v8鄃謷Q儦T護嘭PX礌鍓瘤1婊?〆櫡1)0凤鰅楓睬3M駀[Rt骉+?暙*撁qM悗-8ZB)贸EB蜽 淪皊以"P{覊a虊h.闏愭屢f讣袸(茄EQEQEQE%r8o橥u跖x灶牔垜9/f$調b=3S吓拪ΜC)荜+4N*G R@穆瓕)鋗#覒EK/n聅-,;ǐ%荍F*3J賘EZァ憱臛鏈醌FVr=暝悳X>K犇脍囀绿%M礩CP蓉╁Aヽ微┽借B5á娎 +( +( +(竜6粨\'増7麉4LWC+<霏盔殈!:,煴#"銧Vk6Br閃Y鹭+輦m\撐:W8$譍y淡軓J嬗俰嫨!郣渃逈铬劧69 &}*oSQU6Т撌箮@q啫酯4膋^皷iル翰姶q䦛焜<5祻D痄瀗 螻+c/嚯l鍒熀佼敻柵*)B丵1逇f簪蘚艑丂`j筨5楢>P箃A9Zk蘱粒憞9g +:TlEV*溣灏巩.(@(蓉(((C壹Z&]B@9縪簁项泒敉杵/r瘩y憫灂獒m薵叭鞨l婣$]邾l 能嵤z)k;C2C蛈qJ睤?)樠 `餎sI湚栾箞焜鐢鞮:堻r) ?V〆;h谆k郑=XS謽@"`淭^$yB佒~諛闏t瓲汬\v▅,壤Ro聯旖<3We?氐H鋉粶颭儬a袑中厥[徚aRGh YR獼L#a< %舂3欱Egr+<礒咋qH5i碝慪` 骎帞蹒8I杀仛*]W(捖(()(;嗃 烢5玟頶8昶猴軜,\顡亰鋻9`)6)6葪铉4蔁QW⒊;p輎鏝G瀋NC5剑\\5螌駵膚J玪蟚xピx9-嶟Dl|糕沟蓃kgR敟?璪菧#ㄡ偫{愁滰禉oЩ皮2*_莒8T蚯&礱`秷迚歁eb孼r F}*K8銊+"昭檸苐璁y'趻H甪a=1nG i攎鳙\栐 Y期Q$办hKQ6靣>k韄:P皙p溦瀞TJ3p屁<姺0<)-簶鶢6騭焃艿颇zaA亹3瑆J_4硯TYS恔柦娼瘤裣+H8" 忳W臬0\暸M-闤軈  璉搜匨囂s淤譖眠毶貉晭a%[爱嗏e錇5#b H揑簋墚$Q岤諌禛 俏Ej檮慐罿堢5}TOkh躺默姁91B璠6<)Dd觀#讧A賳z)瀃zQOAY4QEr滱EPEPR$籁fg喤嫉$v燣宓+柡繏A鰽伦[:j{牣Am#一 a9荆Q碞ZX瀅FH黎7 +晡M埾]醆k[堗糋)煲[旜8鸴笙:D円e\ 滥兘R譣WM慬玹Ψ8圓S*8 `鈫|袎蒳2j仇狜g溦鑈l燎J@妛 >敺 橣:歚)0{n1嬴*f廙lvn暻H 尛u馕E鳏蔆踺陀侼k{F樮h褩<ㄅejV砛匞\值叓資滀摎灒秴V躺 +埽|7+*迾Id5捨`} U游視Vf!毅謲弥]EC"殶4婆4K)2澵 嫂冖bH璖箻疴梮5\玽j瑓vY娶犥hナ5h:B((氳}i訮W鯴 融M_X铝眣琅RyV蠲=普 "愶s熢勩5慸9;j己h歖文屾2"R捾9甤_暁鏯液;橵欅牣>w2悟摐*;矇C嶦F".pY椳Sa囵h*腷詭誦8b 愈騣皑 苨P9呻V>>Y蜯j7oi: )*劋瞟扐閵zN+嚉3gh霎{D訢瘳2p鄎颷`曧芏说1囙屿鲜ㄇ亽 $2#恞E莄E淞鈿%餁拆j5瞪赦禦V0qw')愒縢畤适熹隫禢jAn礬鐹 畝j椛菱.Er暭*(ヌ脮QE丒PEPEP{泡n弥湲懫p*R#"1H鸵g彴ι,锐莦}晻姁[驙g3〧&;I=k礄;H涤;棷=戗枫钤粫褚'5t橶妖燒歰俳+掺08` 嵠>韙F圪│貜颭v-tXv斮\5旋滫Cx踊 fM>绡朞襭0c"簅%烤h驔]唶; wJ纼只k剴嶦g磍摭*鍤 雹浯壞堎侵凘 拢}蔞#c|廕d泲蠷訴奂呥-P叇揔M"09*予-%- LQKEQEQEQEQE%&A牅MAf鍴K烄hv2eXZ墍8╂釽x,##"烲w H鈸#帧;呔!T\⺶`F@哊i凛>#訮厁鈽Q嘡?*昘0颧`S欔奾*E驫4k詐}猇際hJ躡 +0霈!苸1犃} *"攰#囶t> +stream +x诘<賠跦掞z*B凲誳詄硕l(髂嗇 塜G惠_?yP 临vll凜#+Q;硦>=?{9G氤饲W逢,蛞聩棠╃3yIx鰔齟鲽鲮骜靇 PQ3l;=U{囤灲痕*旌:1戧W`[鶓g旅jX殕齕枘3阷U嗉G脋漫M苡.eWigU滫☆WqO'剿*辚+饞 u娺:司灍蠒姷偽v$墵铰v趉j'﹣vm2鈲筘x"=Eho飢#5 岍$=nr f郜豵W椪2蔯j靓猠鲭l5m]=;B汦0}m戫请跩~/蝮捞緹G酟"邍橱债坻粬'靻Z磺L5OV搰衏_Y霿U]缤沮瓔 7U[Y篮x俅2炚-~ -5!Nc堟:鬵W洰^m篙 ~a +I癈摱 O.4緊67m烇藎}h +易yU煫x嗃6閘E飽闺傅se苉O?xfUuu7?骑y富y秊涳飾颚碛n}Q1@P3虼!2<灖羖q嗊rww$z7^罶y)唆儏,z&忖躦鉦觥玣w稳kxKl啷蒯墈鷞C<莜牢k.jvE韽潍痌/牎贿 L糠X韋Amh枇y輦谧 渚泈鼔&星s<戼騀籗d蘚y眝i+-\r丕呉!導S櫥д焻\琉t侐翲痔駃戏s键罹理悰囡):騿 匠,w 羰 欭G?9玱 C洢漶X2n槏i妸E|d3硉愞8埉'Xa缞蠶0璍+!⑷鬇sf曗2症bKuh_ 顔虿;偑g辢O朰O擨N0蒜隀7Bfy5 芒U澿 s"際o?勗稁6権讷O瑨$簰d柇6\凓齖3*斃t诚篚价7 ;d5諯抙鰯愤髚荢m彣|╆⑤l ['2耒 +傊 L褜r#d佰鞆b踡y叹暓0媲Q阰軇鐬r}U幅鷤嚳o娬骧~たjrnR! +炚- u苜3闱核戍e P香U*劔L+躚阿鈝橮裯餣VT菒凳鳆rdm^㤘 饼副+着3.}坞|肥荴诐 ㈢臍蕑 7跰謆 峸U耍Hf淌2/?Q@*郗y娺*瀁c柰踠椊p潙+si騿3L扻鎡賎綮筴;">纯{阰 h2Z%稸恕5袔*A2l澾嶤u鯏庭中繗鼯T擡+3 嘬'俫嶦?鰁U<瓣隁丞尔wCw撜c汆租鐀懼Dゐ + 轡< `F.kH盇欂)k媕囒芭p +蟚Ts8尉T櫞H岞O'k[F偑朎嗕m昼=k(媜@瓬;麨L豷葎蒿 [!飩嚯|U4 |浔傏":踒g咹5罷"1边兠喬冴9萁鬳Ek嬃檙﹀匤*A囌:OkЕ餃姫[n{?*賨玔*l驇膠對_sMk稗]籄6閆Wj琘 m擎/2鶃 2^簂货甔}甩u慝C1{5h 僁隙y謤怏,4m巎_<喠&儎崗e1赋%赢|烉L梱滵裊ce鐲O烩O額薰Px:烖睆Hb9鹘8橶@瞳g鮐9 C(絓嘀!"D枌碥LB嬀輼xv壅阿鲚穯aHAa妵.奂秽櫡(韶)玱|萣L(劑b;a<%駤穕5{唏+~軆nW 窙7h井除f鶁q蟏V\lE畁柜%B0徇蔻[V7y蔺9|j* 谓 +9鑱鏗钜GR伇踓d褅瑬/漈':R4苧唬*畬8璖褈8R攉Q鳧慎b萉D塡峪犰 楐R騁揻B萁`\z8L帛M垲y蹶颺]/シ瑌uT楂y%瘕1厛7姕s/乴FP>h<u嚔囃莝"hX跤o簂"筇;g淼瀲fVg;姾榯H悿撑Q涫﹒ +K爷仇膣/Q欻R穊耀4镮# 蔾↑[蹷/螷兄掍鋰>曩-Pet,xs歧uN喕哛嚴4拨¬兩<3o1^s ,|嬯:gBJ3>xLwuH衷xI2朧晐覟!]C 2咣g暺% 駡d/Fh q涷楝 漯2oJn塳奻d陗.0芻!捩鄡&|`]哫うO鏠蕧喋q圩糳股鳄眛A昱+烎&v紗陿版,鷪癆 衜⺄w,RD4贔礼%m(e廬呡2旌+殜脑膬厳% 3c%td8寰褎輏儣-?黚弳=岦崟昉;p{t驡薐芣禛嗆鞮0苯d嘔F恷%R#w痀^D3{蘻v C雑{|夈nw(2閜嬲抿-s觐惹%KZ [jk骇m袯*~|馞亙頞战!採S椨懨 SDO 奜=尠ペ殉T D蕓8MW]捹鐔=.傲%=G||S鏨踐馡錆2Vt君c桩+,莒,u得 堚0瑄6霈簗Y2砵%6鴯猾嚕 孮Gz鲑[z O:髻忁 G扴k,p 8&U1ⅰ孲E*(爮\満忔oV-啊588菵関S犂囿D茝9擛A2L#vkk黈咅弣鐲低匯wmV掗暕啪.剩&櫋Dh嚭n@>奕ⅳ5堒wyZ摀毗亾%(%擡[Xl艓圱B?匛徎e琚碞'椆kda嬕R/(柳,珬s2 ^实撛2騏洴yi 崩慘Q!i}.!=貸鄳|{.K肄g嘟a冟%^]V享 B請哘罤鬢貞C胵涔&`g辳:稻\猊T8峟% 13闪N1/.vu 柽◎C惄編0镦总xd躗J呿S麯 GJi█JU"Be@鬋彖L83(@ +撫陦愳2踧慟*踖隠&?&鑽瞽毫X肣鍕Y郡XG砙蚡胾葔<~U Y謍兹D 藮4U俦(酛廁繣>褁.5(砢"RI尢 釬稍/p扩0<r<尫櫡H 顳轩桳n鏙醔&0逞镼峤!|2G檂"迯bO陭R臡瑘釮贋&鰤<﨔囝頜Q畇灤 +F9f 鎐RB 騩Lu +嚌咰Ym"棟,;i怃`g*O木Y腫&,5黤IW j!近挹%鎛懛?~幜蓀罭~澟繾鴲 +"亃蹠}t$栙A'I畓倌鷣P倹h,Y^~攵?菼狲[}軮f牭ne禣#t谂貃顾?1*鉮辵c'螫&u頽<駛祕\ρ>飫絑丱投r+/Q者嗴J1螺g鹽繄2xqt>瘗LA率呿 +~'鈳塜8囷嵃匚思鵁 tS议員偡 憱6徔2漶X俏 鑫J茩/8a5J0睪~D陆,8i熾X挝歩3*蕌m˙唒*4炞硴耚v襂Q',傹琽彭+迅暠0忪荊,Y驠鏂]莜P=y;;T VaSU"7!p籡A3悳!鄚汞<u嘦鉲zY\* @莤U軵PH制+%喃 X=煹謍頻Tq(p 氡酮斯xX麽Q⿶`  `W窔>欜哫袲坚[w垐査嚕婴0笴\纍8(e3n+O壢哹%l讀族婏亨鴤愋;<-偫u鴧s^T 2oUm_爹j倡蔎B3.艚黿者墄誣睓>b +O1ㄑWヲUd罆闊Kn槿Q賙+狾?鐞 斊甙。刋鳕6Z躝挛=);>\胭jv屏5崿s$K}:奐俞餻斎郣r掩訰i9E +毧爮/輈栳駻嘋竑 [礄8u丳擌;鐏,餏嶡粋=.D阙}(蝶隘輐E彼蟉@+缋R粐亙邶$苖8?9塯%y +>E*吨徼糨窏n|篲褅j靜%t藞B4N唄镻塸L.$碄=F近陛髑丛眀;[M嵀捱-$栩誵,v熃鼗0*訥塴橍2Quゴ摺]&k痡ㄈ峴蹳共偉圓V罋/d攅"fZHH褝D.懂#柤#B]宋毂$祖.鴪^傏谟T嗾輄亩儿\A憇j{+0,频=c籺*糖泳韪4責F) [ 犸n罦<みWk損q DY蚋慙讂6轌沷饅V觃(妣遾3怆『|a痠4O疹6bc鷓_秧XGnlm. h级YwTf4*n脬潴a64瘐T先嶆雺G9盗L湂鯷$毵m0 岾﹋y1滲赫偒8On屶 肸` 攵`鱀)澃3嚋僋Y(0.媂1W锞,8e+喉 馊媶呷沂{麚k変!瑊秺莽凍T黟{-[醬d:K*怐< 剪*$飾莅厇嵑梹鴐SDX,禲賔粶#y_並斲峳]Y\後搡猂1&骊郌閄烐H殰r罅段 +> 鈊蕣?k`焗闼 犿]Eh|犿JF3絤;丈馺-=仪舃qg-塼an妢p锨8 晀{#}B孽/疽9浅腆 4,绫}涅疩鄀晊檐^/+.崤夏諣 種e釙M0 h,8啔3咎 寲d嵄礲k島摓($荌#緂'"顡跄澜膠/v+WN +±x瑨8r/蜂6^,縜A犊 &騷納B礰叻)6 , 鴥 聊香姠[艬8簅厐e挡婈suRnF庸軋6-米霰曯 蒲t裕磑o/贱n泚叫7笕g +煲d峾蝯敵_N馢极鵈噳鑏1槿^嘬~T漝]滠2Z疫7堦意O5p槬騾乕蔈A* +1枰突垸SF簩咱q昞显翋艀针VxI=蜔Z柫焞\v+{諀,Su鉄+膹M注{闅鲐尌耖R訴\>=Wb昃揳瀱T F#sod霳瀄f嵨{S梻f!犖韈>P觍<僰瀟 噭驸h~俚 錿珺5,)睼!! +剔]猄r播洄鲳鼣+H鞓W:5蘴㎜敲e51g煑 丝Q耟O餩/犭 +endstream +endobj +131 0 obj +<< +/F1 10 0 R +/F3 16 0 R +/F2 13 0 R +>> +endobj +132 0 obj +<< +/Im10 115 0 R +/Im11 118 0 R +/Im12 121 0 R +/Im13 124 0 R +/Im14 127 0 R +>> +endobj +114 0 obj +<< +/ProcSet[/PDF/Text/ImageC] +/Font 131 0 R +/XObject 132 0 R +>> +endobj +133 0 obj +<< +/Filter[/FlateDecode] +/Width 83 +/Height 117 +/BitsPerComponent 8 +/ColorSpace/DeviceRGB +/Length 1263 +>> +stream +x陧\ 挙 鮊苌;錘箵#羦怬籌uM: +I轐临m2e蕯姿, Sy怡 9+俐k7奜崌圼g荈橃喷=gha竌)焠岶dS 终d'{蒨cA纓炾FCy$\-I.)9僣;蒙瑕袭`*僲C 瑖s覰-爗!坸0,膃冔1终頼G腭弃蓐u=瘎t堃l蠶莛񪡳垷i謸B郤楊腍V_I蘦码竾羔gV簐2a>;钍5堋湡~?l[jD 胊蟧汅阥==.eBcx撌脉y瘜0璃Q& n*%[h-昤諍 ++驚蕥S_懧鍮莩89竚臾H赥歌猈娘*袘In= 萄橽緥#茐鸢9#Qfz炽q撨洯娣鮸0 艾'岗㑳!农笼銆萴巿8{^X*膚fPP奱:鴁㈠楪\kc巷J-?N嬫鈱!蝯,臢|粪_㈱#乫%Eo蘌^寭襤G岏}睕HI"&9錪脳e)顡(X諈KgN#@d7峼/薌=跑2N亃S䦷6ii1f饧閱7Us轸r玴餉┴;翘`箤)p崺塗D;藑.s驩佹-鞥UM&3鰰犪掀`覻鳤I8璯,^nZ5&>鉶G8茻5躝\蔴YY*鵡M咳敳-犍_z槅3韽薮泷屣庱5媟o璒覼浆缰焴)E5幽$3蒙,邘鯩婺A橖/镸沃黉9I釗[羠煵硂/濷DG赨A#Wn&0郛[ bxM~K01x䎬E+醾⿲1姛QE蝕ST外@粏J8轂J_o0絟飗z暰渳e6露4桊`轐in謑['装幕M始/纓3|渚+^ mf襄啮m眊w懈8圁┝Ls稀苅穾\缹觃M/Txp访赬過w6B椀蟒篆-只旨&瓠 同⻊穸eq _紩邓UmLa俹lK+O:`4f耩 +3|#.x]<馆嬲t煆lzk桛R髑8蝺 楎v廳淂槎籛揕叚/鍰v齥鮪~Lg鴼?+ 7 畇)鮐 +璴6秪 &駭滅^8螹7)攴X5<峺毎浼"5i}7蕒e忬)841S籺訑)S2e蕯)S啜 +endstream +endobj +9 0 obj +<< +/Type/FontDescriptor +/CapHeight 850 +/Ascent 850 +/Descent -200 +/FontBBox[-168 -281 1000 924] +/FontName/ECVAON+NimbusRomNo9L-Regu +/ItalicAngle 0 +/StemV 85 +/FontFile 8 0 R +/Flags 4 +>> +endobj +8 0 obj +<< +/Filter[/FlateDecode] +/Length1 1662 +/Length2 20606 +/Length3 532 +/Length 21546 +>> +stream +x诂穋t鋧&湦c郇囟m跱:籧垤囟潕瓗;;閄喻筇虣骷3_f螄Z鄹龅筕Q挭3奪8歒J9:Y橷J@{37W5G{%G^F5K+7繽9'<%ジ嫢)梃 a +蹭h[Z$,llV^^^xJ福摋 惺犙T应ェg?&3※腴 +磖Pp反st卜t齾vT反-_乿qe]Y%i嵈&@谝烈旁犫ff4(-\-i_]v~,ゆ属K` +pu4⺷臭4穞鶪p瞭汉]V.牽59鎣n+犋/BN.-掰偐8簜\蚞N 肋*R 6鳺 p滓卵茼煍 骔 2:@枮b橸,甆vcsr䦆啗+辛?0\,璍],,]]曼毗:'赊陨晌隷迬产 WK化L瓞lc殐:33+_,朳9澔ニ +D笙绦%aj徼`鞍 +犀@譭&带郡%睚k钛材鼰ˉ莒鞌L揽o 囡1u3?嚻卧鏲j大?y齡km育?蓚L朎粤阰kX榅-篔=--T sk繵S豢5麠\恿乱鑐*+憰呭?4瑏娑4侒*K溋遶龐?长笘ú胬R屣$4紲䲣(:Z?8bb帪FV.#脒垪嵜骭@馰4=ga齏/#閌頷裣歙僉,䦷4蝞柌嬂坡塔餇鎛..囙_鈕U鸰{ai閕i 穓R4萷凎 "易缂)銵匙樿2J\ +郭* 5籰缜?S> 連炣岒6oTD\ 銄矣o涜琼S)m}eT&!難笳剎;啸$/ +d縗,,錏Vv柍唂J,TaS团r恏y z毙:娱 廂c翬>﹠鎙z杵1.留Eu牼跥 7mfp,蘣硳Q>鴯f珲YE<溠:びE5D蓈)5(&$vdXek拺T$F儇1杚1Mg代眝癢疹k%爳粬政 阕~c睇醣c歡0娬C罸]驲v迵^9ㄡ+[>液縷僇砻:"懒∷)晪煆驆沢"$q铓sり炝 ;&9忮K1缟津]n艍)胨鳉邘K汨k6趁-90Sx 蜃;壄徶/蟱VMbu渧#瓘[m"喰淘掽y'澵諴鏕0l%惔 +DY蚮2q:A賌雍l#$"竩n励赧w4b#甴T俿簯>癉/]S她橖D渚漯蠫J4充6]taY蚘齳?甤軥qN +O.菫1圚鴠胸啚.奃嗗鵃k5娚褭g譿筨餑Y)1: I獒蛞|頨遫E9Y<s* +S(vj=~魎诬.!D亁!謦=/5j?R-`)>姥埙P鋵 ッWl%D/偼p%r戄X緍v<捀,U?kch觵跺k鮂c8綻摋竮痡ㄚ輽v媘`选燷y茜S蜺碼D$槩?Jи禰^.龎畊圥蓍{$捂?H暨遮眿o慇匃.緉烏=)i惍X5ig鏻!薂琤 +怹憎臃U4袗>>鄾Eo楌 O|K烖}另-l +鐒攪跺渟~ -CQ u麶柹螷 'c濚料u`2壷⒅嫰d鷽禸/d觩烦蘌鼎Y磈Bu骚沇[:Z4蠱柤9縲Q摫9谊鰪64阎錢 瀿俟顋le/t葟酾捽滜賐誽5窏( `夼XR鄩l歠饻=\悧>9.?圝K媩 驹*擝崧bV韲R⒀敒/{m6X鸂谅b1桚w'r;m&2:膱At髲碣-徚o}q陰埕2)桝捒!衉/D+9蕤厔5譤-嘧k甞匿p%峷P}b晖劵煴W┗r,<浌dK韼Q!"+ T呃蜵-?譙薛禀 4僵+埗QBI涣^X|>Y敳~+Z浄境&R9鲒針 -":亩R&16A"嶕澯騪):G磽-Lm*U@ +契.歊祑潜¢'蚇5|8{n馽G,?H)(\螜e _恣貢s讎穻 狪{##J+囄綏疚Mw1tY賹'1,svr炛og[ 綜K虴毮W蚗iM瘽煓 姑 袷puU览7缊t5酭< YT$糋絛涞w"姭ake廹酶y=鴌鳺i蛪z$oF壐褊鬰x鹦716V┻趁W鼒ㄢ)r藑カ怲(0鍮┣楫!E=B~3}.蛟I鍻#謽3r乲 '锣8_涓险轿击[村忇d1宊鐆餂9殾砠傪K:駁P_鼟信媕沊еF*d_[ho凑巩揪輮秣,諞R$煰隋);d鎌鳀鼔1賥r擔邙d閬{`跏}鼒p鵊h姴 Q笔梺F~蛸譶do*ao/p馀產T 嫠輠觸鵛;鞶暲.6 +餧j + %沵疂挴 /漽軀R+臗4>繘瑳U蟉淳豌@珧 +朖s玎地豧L>澣荛P嵔蛕臩湬聰鮴e6h嚷O;Gm匉 選贕0惦橖[ 筚件v -s凟#諌A#"4諁' x筂Y0qA縘3 O儱3m杉AⅪ强.y.1杊2 lI{鉒 潳獀螟珂3Z噃 豯g惧懡5蛓葌[嚂谚維2^蒆2睾3誳s摥憐3wkFKYh餅!镡驞讑I震K哉=>fL锩K筗晇宸`{=鼿軒〒*=佫iepZ-餢旷 27cS}说﹢艧8鷧眸]椫溊O恗Im森哬乘滦ǹ骦/綃?瞷{嬁M駑復誆穒P弈1韘~8 Ps磒9~c憉鼜.錟\K煔撏倝:橥@C重d+@詚`淘Ut弎骧嘪鬹`u@U 耚7lb$玀姾觢!?os鑧w 雹|c 庱盶x遭英痙 蓀h4j!較V蚴S槶fI煢vy2-"!J?膴E恹\>H\寱¥ +ⅲcK鵧袬Mzモ聎A;Lz-W+G8桧xHg/鼅e敗苟磻8012G{嵵鳧龎6谲 眣F;R檈6笹 +族莿]抧,* !t桏M構Щ(>纩犗LE貅V2Wt螤(dO#4a*甬时k焀O端X常V1膘i枸z49篋K?菰c@F虎7ǔ(=:,乩,酠vc亐 wR淚3诽!繹荔`詂8壑稓锬"C兓橧^佾曌]嬩 <4/3櫂Zv韥C羂/v\孿d袾!蠑 b顮萳饎犇$iB駍I咁weq}蕌 睾濌灈単款-"y,M鰋敢E +浻n犑佚z=圮癌湈wog縺c_癕z5潫梞踩 a憃4$5术|I悯8_X 鹉[4d賉踎 l鑧怚c4蠮b*vt8酑NG!蓄)藋W伓寺b]д蛶晭畋<6坢蹵=躎w孃賷il>瘴峐7眰}Г](O I鵕趨邜'犩Z蹰瞮!穔g践侁'BP(杕BC|=L1j騷=鸒俎r鏩娼W#'靬I+a茦vx:/哿<种}LVf闦6n贲/端崽?=%)v粚84觟;_U瀻:nM汻j绊=謖 +鸞&$澙踘蛓摱$O1苨,sP&6胳鎕鴏徊遫靱g*2爋怠瘢癄;鞈 c笄饓=,嵖^蕠;!,/!浵蹽C鞽1Z錧9:W灱.Y樔.g鞼2l餲 +鮈R缀~:Bw^D雳翮"跌礜 諍E婨譒殖`偌鬋薕3腳1翊覎坝(啠82忻%9#觱-!痄tK鞊7-G6毯?籼筋}騢1凶▄雓 r菁Uǐq丐-:淓錘毯c*滺M式]>KWt$撵J?~阋岿╠5倯>铙5銡b亃:弛s朲T)虈保醮S袂=?勤N覤鴚g辸Ne÷*, 愨钙.业[庈睡J痊 剏+2T髻腕DY眴儲鐴埌蒡輻x考№m銚蹇u凯浩+ +-L畄贵8 O缻V] 畃^2qY落鋯j赗唴髲H鷔悜淇n呧C@劄)鐵w[綁A辽R鋣蔾燓枨 疀適桞8Q崏铍)砼镐妥嶙M║.睽o o溆铉凣pr +NLcx-t冠q2>?偸JZ劕aL@eB譢TS/\賈"儌睽3<剸 UwT 袾瓒Ym狇"π皕┿c泯?ie樿Z秳直鱰j(嚧尥畢僚騝惚{6#7?咑{阸C紿嵶芜m1\墡狚.諂鮓!n枼a=鉗q針'薥ZI_儞Uq-]) +斅eO姎T焒時襸2淋,%黒<躽;)*i +h蕄m 瀋3所?銯焏舞t湀0"k朄_潽蚇囹H鶍}靸hN祝n瑎5qIG骞屪饇h拮a鬣F-%6*檀ly縘6庥# yXIe=↖錞鈑;E鏏韟憶眇嗿摗伍ua堍,籊漛F 出},放U趃 nX鞰鍫P5 +カ鑕8i溓F +Us鸷鹜 鴱啿歘$I7y嵇 QTr7恘詧-0:些sS昑Vn9v心$嗔帒駒:z鶱~LC U郒 ;:k$嫱/鎯: -F軁c@櫤莴冧v午葈砩+5F0膽1Х 猥頞浜瑨榉?墵vS+泾窻製↓X)琔艀w誉fu@/擷^)幧q紳疼Mh疨0尢亮4b*?Ek捫Y'瘨頫m盔 w,v^;キ逿A%5;俞6<鮫"颵$Xa緪R3攁5b5!蓻}#_W鹁蘿豐V_jjG_<鯲!莐琓糶2]?臃圜"H"g禢 +笊}枰{7媯戌謁DN埯度D蕮&1o3{猧=鐉!5-c黆I' Q瓂&K7剶;W嚈描璑=鵖 瀘 r#8(v">仇 制 -鵱愝X觡P姙9|3}鱎呅)耠梠蚈堙V;r懛o麉滱血冇`WwAg1贡糰棛Fk止讂ㄌ|掂N簱蠀H圧+b敋蓩布Z蟄_儼④+沟瑋尞 K謲7峆 t/j$_/趽 邹"/=?洂 頮:8`軆gv鯍照﹜㤘鴻Ey喫/,]蕱抛ECD93 +棨t%绚[g+祶亳b6T侍"鐮/K0闩譑攺奩+饃b<荥'0Ub蟴+,編P]268E jU泇 m輌p%瓒;% r叧_oˇx1槶*q )嗹 wD醩4泔=`朕lN盏款莪拤}淖鈿八7酠_KJ5事sF3Wh撯F ;<c邉瞉T躧酀l|6閚艣惚,囖O朼;涰*暸5郑jp儱t[吪&痗Ay+4縘η[晬+札57柞4磴鲔圓Mk钏x)&T!鼉D8V鯳n''=U>掯8w便逊\繢8#伇霮龄G(裺锽V++>_Aw鬥镮!鴴▎狳yV)璯茛俠,靊鎰;疥Kk嗀C魕kV蚏;/Iqy 气蘯7ɡ珚侚註啁 颣遡钵t!j%%^}秎Sy苁y硎]5跭頊榌s逓瘯恹岱對w淫檎9p!W 皖y6Y'Y ce 緊蹊蹉O!寤7B;X{醖M煭W燏X犒壍譚挳(J咴崕斀埜w堓憋 P,#2RRl辭+赭.wRx#HT灋髪輲TA;2眎$q佖%43苸W\眕閾儨`_R扶&S駸韸dg+3E达x+>eф枇-眲ノl桒.鈊-l"膢F隠aO#<砶 #]er)騖,} "T瓦肗,C3軀唔屹k豆:Fa=罎$5嵞 3鼵wJ/c ╢)~ウ⑽1詯Y琚"5e~1胆uB#抍 +俋V#=+m, UY^ 夝u7uuフ^榵K釰9蹺娋(_栗剉玜脊S鍽喠 臜^aU =喀弐韷=嗚hc$仨玹+剬T }漰T濊瑂DI柜伽.'看鬷葝^熂 毾燨s&梳玩"娋JO X x3&泏粳浍廐z 鮾偡6螱a0CHQ$S UTcHK兰\邞摴琕 皰蹛e3 j杻S#狇d 闁 E魕瘖螬W皤膁,oa甎綒儡僔q蛘叡%啙秚ルx踂\0暁苏Mp竅瘷騈1鰐嶱`痄E<村u6/龖-穚#gF~b 6Z恅X㱮郎 *P該|殷魪 褜:4C6椹付-譅u饚?~CgL1 zTG]馼讑I,赭敘O筅p動姛O:+A凕泷<3$? |;jP5餗x4& ∧狰誳SX抩9` 少殧拎珍c򦫎尮籌m"甪.'l 9枤%犧朔穇烤&耎帓徢#颥謣蛐粚e/3姵悆嗊g]蓅蘓嬁笸iv+禀*^>'[菩鍁哋囶%.yw紁糀梄\9k?d燏:燺津阔倅B%%溵x1潜0屉九JG[翣醖'lo膮$騸7錜鍽G^&o-L鵨鵄崎熵啥騔qM秳蔠pT击誥P 瞰鵶x'鞏M2$_'嵼%荵颗 謺纾瀉6~yz〗bK峥殏^纄圣慁y豱[Qi:駅 +迖鴅龆涀T蟗苒15沧7檣<鵇髅笴:N櫟)荅砤%Y鉗5C侼辂仓}5i!1愷|H;特廧T路 q蚶U-0M抵庣 峰2顣ocje q镳󃹰I溸O[S茵縋氜噮$T靪~㎝查棣i&13'鷸珥p嬎?洖hN0 oW锇匹л2鄚砟0曗[朻G;鍹瞯鞨!*.峉皓O匠嵀啍喔贺1蓧 伨L羙2%1荐j郶姸c!永t<隔hL^趙`'焨"p^i 锦7 5Pz +-勨宗;xX辚/焼(阆繶.=惖 窌W銋T悺<麽1棝覶["_W< t4m;~b綨Kb狱琥9~O縄*<氼俰曊呇蠈皺乿7髲,R6韍1*谦o艰S[奟昬礽D悩e怪sw膈杊3鉖臺5Px鯼 +/湌憜凌3JE5~悱dr9秊鹳度猴跌嗥繉忧BW2'學ウ蹮.謍:筌 +鴲畜q蔁桘E}苘n绝貅寜7邠GHm 84Z \^yPg侸鴩噤偑=を8駤 E虈s 0h|9租5伵儸岡熌J?2l烻赵詵$馃鐤N 墠!u/吙b碔鏌忧ZY祥省摥LHO^辎{祩 9G/閐>桛^vO{z犣∷蒼%燨 真蓶洬hA& a:馅糚rX晛8y-2u&慥ろ0WEG媹)螩X鏀蠏歇~ 琯襯髲眿d4*J)hx袳"s擢霂18幄%鄿畹q%菗恭urMR瞽j漙)ud鰇$胶 qF諍婋7咶d.5逬怨 輑獂蠗鸶璸Y锻>棖x$ Bw盤Q'6挴2Qz郊$a馎禟阻<{VM f9G愐閡I酈%诂倧4xZg~y й.揩,决0Y楴y疞0ng萃+ 6杽畯C-q駧4 錳饫咝@%ヂn/Jr0︽駃縨i捶#~m临WF烦NP 0郀劽鄕?Z 箳锧 `因=4瞶 +溚u?1=_ 撩t&S郢晈辝識a樢&\氥_襐紘勤eTz抎["譙L鱙."徫g$薛慞*酶閴7楷A .樝 硾椘娂7憜nd蹴i躨w +鄩穬f鄱漚鋸o2擙GQL3垩卿▼\錫橔摜 we%!M 兲0匇1/齁幭炉W瘢Pz坹槕詃藴鐎3\侙鲌V縋4諶櫳=釢碧颚瞉xDWr媈桡ap嘺懱貸,Is嘚窾b韝Mc岻g疶嵨皢 餾B:/轹y25裭2縍榴b陸儳/皲 ^ &KGec{$虊HS橝/3侭f興/&;终BC+鈄雏耑瘁I愓绐Dd亨毎5t郻IO岆2 +?べ媖骒BG!穓中64D魚4侉~-颵4珃'焫>k晾3-xsa 刈嚺Q鮜訴i*:鰕*洉埦柛h1#f #謝)MQA&T涺W;s鯻岅窙e/娬榛P队畔54|鹭俫訐艖|B!笝 厀┨9岺3:*z,&鐻L粒厺蕳/KZ禾樮脐m{i3H魐潒呆Cb爅Z+(kぜ艃w#8慼o凖\g$鋏芎驊B=鼈冔沞讚a员tb鷷(晩8C猊謔3[鶽蔔釷潱懨8腤g濨嬠Yi]Zf4榹EH\灑%冄捽掯媱bMhT娒啅L鋗禩\騵s Ut啊@簝艩R4}描= 俛╗m1~8泠瘲<缮p颔')("纹;糢鯡棿=/E扼 给qg+Co;`湕%籇懧%邃灞2)兢舖8+C兛禐p{\昌r騨8饱蹾盱矧緯掲G9烔亣睯9.甁~ 狶vh 媹牞R焰s捽A2/叻猓侂浲飃猨x瀆嵤飂}柮┋LYb~鮃蘶 靳竌W麀K媍餇彫絓奙d賱愹-Cz軖^,鰆l^傟謭.u7 悅晣|U銘橆験P4x,博h 繂璕鏣傥z?椬掚@錎| ⑧迭t芟犌煽zN7卻嬤婚渔騞椖 惔墓hZ錐4"u艇遢宀s衵X,9>sxR á簖*庮袸蛲羝e%緫!╗*I/杮-,^34卛织AaIq擃吇Kc府>寏'Х履牐琵O乷鱞qW2d瞰楖瓸椲櫞坶<I勧塣Y沄=_4>ыCn屏=Z烻歐禨 ! +崅1N;[s喦 菎*j$,镖S雀'頾啚Y执鰸AB5 課ろ晝硃Y繴B髖s剾nyS埌に蒵兤B( >:撴#4$(Z肙汇博j挧逫[:_壡唩5櫼0g犍 耟皯攚h酛腓F漎)=騁撖玠k59^k跊wp}兟,W后fF鑴鏛滐 剃靠Gdkl嶹焉QP0d熼"=輾t蝕澺&≯ ? +I輓 +娾9岧Z鼱郻  +-勭俯71惠f雲鮇w) =cI:异2篙Hq責瑰俰X沥鍍>嬀暤汈萶厡b要{V* +雴耍駣6a"萹硴忸箥鄨~G.u\鷺甑珞(,瀞t蹦uqg鍲]0窱'C +R綆裟玐2沺.i!M'(&啠|w醩法 m粣逇$d\__华ND噊図q"蘝!飙< v冁誗幤糚縦PF蛭 慑NIacQA綮6嗚紤钏'禎]懶奞% 增*,\伣(L17y 塝毻V; 涛掋蓬捯_/玐x緔取礦曧譀冨3m+v槀k葘? .;f~璭9畀Q7 ;0·$/k,岁廷墰r籍T>=鯁KFiB灙閝)9匤り _<&&蟅 刐I0礝?筶]笯坝蘫_:r誥亖1佁e7$揉釀﹌鼂砱s愸礪"齤+y L堧偖,僃说軀嶃鋷 o&羪驹yUl檡o犽=桼5媃M毒A*m"朕L'A鯂)铑ye蕭]諩鵞袸^ xs労l辊痃皫鋳旐 +r孥 鋭幖醏{k饍馮鹴梚*7R褱揈 :q瀃隓齾=旸Q2ld獜)ZU白岏MFg=礤$[U班"Q舃摏S毃禉庫敎'疝褑$"济S鞯俞;衼僗^] 董8迴閒╪蛟qF8i椗e碃[ 鏝艰喉%2n僬~ 陋-x別nL況挿澅硎P懛聉会}F颼舚L溁C熧"缝谙筠輩!誱朼搀ECX杸纘亇M#鰣>78X䲡>宮ば諵y*ca:7长~KhB呬S}鈨!懧帉ス4聺b撥sM慸d阉踝[圔鳫魜顪I氲獯*Z 惪ez躕枯6滓4I梱N搽蠽箳然WS繻怫匢oO;誁G鋒 3獟䙡T橜蔘鳕鮅%闁2耆择浉椓猽墉祩{3L荞;厭鵍)M鼹騚忝)L榈兪闸傄稻h儗TJv2{繞;941鰷43w鄁州7b憏擑庽e澿egC陎i畟3蒾穽£票1V;j翥就慜5`篿 2*{pg7*\醓N娞犱 堑呄搖-客榌露飜p迌_槌煔>]h吒砫 +'v嬊B谞?c灗?f!邲搀毚 霽)锢昷saf."B,馶;0香巐 +⑩什铛竱 (摔臕\j o劚拴栀佐"傾3R阽鈰xu&龍冃k簪鼌e~歝'窞j#=磠螃V曁 +暚躤(b嬨A㱮Gw{狱M3罎/頨J麉±bi刽╔8S惃m%沁廃圑砚@,櫆已V{滁4穖蛑`kf榞壀亠幵砇u鸶 捡kuGVr5羉p<]枈<|乙朞mMY4`p胆鸒\<4湎醥蓦f鋶9眾Xd醇炽S厦"B蟼-2蝎骈Q,觮3僻怹:_xSIu譴/C谗椨拈怸/Z$B╡rKy喑冝昑g}7裴P赑R *7 闾婌麦w[Q鳰褠PM騙鱹,R]xc塉'U客V郬VpQCG 踉}管 g餑1釵鞑Lu#鱧锳攩圭棊y龠>唵搪%愶R浠攼(4瞘6#腝jw摇9=?]揲-l\蝤縟原#溡]>銡0畖炞赁=8tf毗厌跀O线椙'2s9旫@褸0腦'^样 灘k櫈韉yg趂 +襎騲M鑗)莲敜+2"c2_#镫瀂`濭5N▆!n6儹娩kc諰[;洸巷圤=砶坛+鹲 +参fM4蟀圦娯紟п﹩泺=Z++鐌7m骵y稢锧鱥疘eO爊煃%瑢Y千;劲偠錺 jw驪t:岭=4辩垈s4=鳎澋GX匮鈚爚 ヘ蹺势%~┮撤8旭'"-卫嬣畓}jsV.懕_荘D i*蜇藠9诬L:S黹仹xI郙}<4雫鑝rze<v蹵捡酖洵<橳陃谢駘釘耺鉑 l1蜡; w)`7L灜D 磋r祓x.(誘頒> gs疭酽aSu牝2众蠠黮A, >5w挙韱=w_5颸g+;[5佁G┐m>mY叒sr. 頖-鏒谕錢1碽敚攥:=藴8孞"惼脐煥 湇砵I闄F\H2宨]汎;2a 焤瞨S傛j劚l庢H隴靬s=息麅嘌c萜R)輛^O`v蒏蚪鸾.卤壀塆0,Vd痨(9W +N臲廬濈a鯨搩Hx:褔0*霍稽 +G5>G}鴣胰鵜'S帆}g嘷E8;潟胞u疚^謿啃09!>Gum:gN +U K#泮觧:%*l赛[愅:Z$紖带y."禦涍媄幥糚0泩晉耷/S^犨q旝埔醣嬞9毮'm瀦囿1赝臷9RAk y罟J謝芌nV畁Qz&敹甇w廲j舼Wom3c陦甏m紀)=崇c$]官Dc+|;飥匩4僲:狾|ym5P(伃f簃(5m { 6-玄e炁4歾 > U疪哽*壤畑[5傥栴调喦訞v{屖志+kZK鼯倢?惽5諫S ゛翑芷b欉d藄銂%釕溒,O薈袱12签] 鼢|揕 GU亴讻?|`L22 献続}v厳?W鈴c3秒酛R,xzテJ7C\軖Z)^T`\[|6剗腭X怼鑂3`tg TreBg僈媾.墧踼埓 鷏蕠/穻D-⒌訉髙jydズ3鍞甗踇$躻)聒=儽韶;盦鹃颻sbE駠乴m 黌6俣暄?髬躴^ K.取6/'I9鬑豲槒!衘屔2允洩%,╔濷vKon M賓c%抍q>r~甇摙9溪缉 柈Gj^,,%C夆r遯=…`痚[i羏牍页焔帔(#隁带鎤5)M襮 J饥R欵爮璨屄1B焹栅S孱E\鵞殄|`~躸n踉(aB)幃謭}(0註峱(L艁lYГ e8犪灴輆.叁餲 鑆=y鋸$叶絧^煪Ku擸婍F酮奝}8/>靮f妼3$骿pNL4kv靠塰",踕Joo嚟C.$憕翾l腞6dX#斗渘%W5vR睍PM餿撖8YH!qm$杗衚6袗乧<熖踂a官; 9閩W0h;7銽e釭馯o3S痹p d霤隒顆謽^tE版簆:Q p虖x浍 w滝檸JE,鴬Aゼ騱K=酑\筶+Yf7 sx蓞轤勺棉[h懿t潛 瀹]参箁"V},H_鲽'/青勜锃8閮 m奇3螈oS歯簏T!.遇L跢蹢葆B 虡j崋冎N5禼k zW1鳸F0赆>z柱#嫜釾f +頪`}鹛t~跣討v蔉婶 +騨7_a>m鼅哫﹠=mq0畚鵬朶t=挵鷼Ш{5/ 眷抬洈汪篌犷 艪3蔡縋逴K炈B㧐坽&'≈籟r$nG6滛V$S惗UK虔須19ㄜ-8鵶/O邋)駕6ⅠOr鏴6H骿3h聎l0匹H狓P鮳c 0逢凖儿箰 +碁$牘|剭H狅65hZ朓"Gj郆$肵讛>m k藿9?<$郢絃嵬$9<鬵蠋Cb)<ㄛ堾< +Z#烺Il嫀胵蘥訂痤EF9q栧{斨E褣龜遭翰嫵`嘮徭]腘.呈鈱,a +m#5g,6┇浗衃@艐n眘s紑翢h絃糧 觋瘣N景}11 %ГV傳诬循_fq陔LQ澯狠O(($殃/"湕Qc澷侹0< 痏沶E|賣1湺蟹弚&v悎$7?%砋匭gG呞zI麇Lz>?廘嬶3踳H箇c攱脥Ltc -岅&0/薝酇U>}鏨崥.R'8j xO蒼犭綇摉意鹜y 乜L/鲂Zr|揎 G88>`缳o'歷ZΥ瞹顠<闊(悉昶Cd T蠥6榜礹pw 栌|=\&r剬傍y伞逫/籛踨 谅冫鲛ㄈ幜U烉捐:`踎輬 +!@u堸3蔿WR┰虰7S熬5刺鞫肬-C占+砬0X胱FI雘喋 饉d$|+涥設1勧蹻.$龍呠荎鬛)爅5雄拹縀-f榢蹼f{+湶黌講啄N諦 垍骭筴著iべ *)e嗕y刱.ガ靈)秦诌_觨矞﹚^产瀪屭]f鵘0Q杗V喀,5co踈酽袪蕅W麽e壣J.)蠈7`S膣枙k4|扪&聟嚎2?9捗瞉+# 厃袟#笂椏|沢k鎡 C谨嬱:8?f劙菅SO_蜔[F耹进2C(M翁嬻fb愯餥9縞r鏠铣|o,(政V捸 #聪%<拄6aL征∣h05e+F粅y5囟D哻]赨aS紪YuZq勨湁7TNt婋輹輻 叐<鳔-` +fgl,Dw覘迾衄椑x迪那茻1駱驉U K碅圥乷衤;mV琐姽'*>&u>6瘡壉2霊溧aFH镑伌痦犀蠠礁铐!t疞顶'狖鸵.6皋璔}g.=聁餎颽6鬁巺}璅沽蒓謙\_\鹜=兖.贴抓2很荱v@I陴忌蕔F\#遄u嵸8PR.蜯1ky7 耑 +砗L*桾鎺>叵罚p2f處!S072s只0儌 2>.D陣Ε:郔,薀锞榽{p7^5搓Y/G)q糆E墈C年擦姿"Nㄢ筮鉒#輊杛8敫塴辕7惪M&鱴1堽 ~栘AK舵dB荰j$婘C=Z1c诞;痙餗櫦籥漀彨B~.,5@)伧銭凱頰/.湢夢x]厗燯4j)掷J獒遞'= 5z焟?q{樗瞌N2饮^F@傫-Ot溙敺iGh饧鴳饹f嚳3d呸N6ero +聮禁/.嚂英泡胒薾j.隴謷M鳞Q╗榩憺覭毆鳭/璄吷殥譚嬔A黭爥D贛i魥'敠jド癉D麩>)'吘1o芣t# u LхY黛哛;俅瞄[Zdv+懷H槰>枇P疬xG鏻:Ξ垱噊悂:x6`监yV趣1fG8眝縯P窥&54kio秔顸1}]<茊呦q饢&払簳疱权R莡癛槹蚖X)婲滖n廐=.蓔璭XD]鯁*傽=蝒柙Ck$啍伿茺G黪顷觼Gs篡m2==耿r3鏦2N=邰&瞾敹滑'(0lo(2M'鷼_零Γ$i[賹 +mJ譻E膰榌唹B +0{ '盛y樍磽&还貀-!3&S荋_倏y%ZB|I孿D色z銊佅蛆\3G6<膷砱 窱1n蒉鍨?I錁覦窓;Og f殾霂=3".崜"(o^鷡饊镃! 譵按H*$偤lE馉佷W泌恺 \K欳欓x!}%zT琌8铫rc~巸萒輚訋鏟3衅P+#fY鞾琞畕籑挕觐司0+矵%4鵞沿 ?判茩诖熻n邨裎焤78K舃2y+^G姾zo>鳉螱 ,t覥_V嶼Yi&棠2﨏l氞嶫3彸"+R煎蹩3p u摁呢欐t gv咏觪坩t1L蟭w0轁&N髜堶亏>嗔tU7麤u$4鮒灍议踣#J*U/>嘊<>蟽v/+挶6妠R<29飌<.fΕ嵺怦G蔾6餰`溄~,y煜;膈"▕唐:`蟯ur楑c}$e+;tu爮o,l筛餮'9咍O叵A48VO6淚劳脶* 簮Ijq抱{玝.缸K但; {耧熤V聲l航 涻歭]I槉h胁I鰇邨Z:窶]Y扣瑵屙卥.嶥,6糄瀧G梵<孟,8$婶螀灀T茾';<_7状yOS艴nB凪長姫Cj槏濎豉t> 9越~馂*P~5%)睡鴺耠蔮铐"J?栈,L斑朾歋q+黨S^韽!&7 挂亪Ml-志H2勌踺鬝qhM赒q鈨.踻.袐諳欥弿糥5篁K}  o#釤x钾簳A 澆⺻9!右d靴w?涬椇I譈,叨ChW戶劖Z['嶝L鑖=5蓻蓏呵dW垇1+H甬,?y劺rN 灳_0錽逳鮙沦.x⺄`~驕崍<藓蒍鷫]矁綀曍~阊仓Q縲xx泽闓aN2zs勎`X秣哬袘X褊K攏緕∞新N бv亦=,4餭i1証$3媃*,讆锗2CG齢 霌狰V饚!拠 ]l邶)澎G逹L7{z煞;f'护]F2,橺啋 i蛦龎狱樛6e9<鎻W6⑥Ⅴ袮*儔W%G痾燥 +覆冥羐z绤弊)霺D詤w~?&4%Mjw圢j緡Q爣t腿唇myd柸|x{炥U1鏆)Y起嘿.D\褜〕烮睫?!雝Gl弜L h*Yjp铜Fkウo +k9膹 焺n;熬謚5谜WBz阜瘣km褯j 貽鳁撮R嬣%嵷zU媯螧┒琠嘆!-餷A砹'黑nx昛怐)\婨酜錈qA峇FF7贙捩鑅wq頋9惧怍鵌f\癥Nd癏M毤54 圹 +貐6灲苛蓻袉寋梓底j<魮>~^}|)8 +P胁p.pJ< 嵛纩^`o\ ?E姧≈柈丸l領桧1/<姭$ 荇RU&K8鶨賢笪G1 kA豜?U豘χ颞~榱輘C%3咙+7I洅榑(' s蘢%$雯u&:g眉y绩8湣$焗闋-jX鯨4糊Q)禎&鱼鵷祂*鋾爼=″綣撟VJ)B[]c&焂)坷N'匲鱫^磑~s圱£s褣S\嚍'k隭N鬣邿+9弧叮1?Z嵅^枏QVmqq1P撝䴕褶h胜)~漟-リ_Qpゾ椎浐钀)雭m鵝秬糺0 哲差蟹窎蠲蹅V旑珖薦*磟wWSBxZ&#W!澽討}猰鰯# '擑糜ea酈;囟He &务R靘H父毅蔋柫S褍,俍:\g燴蜑硩汏emR簂  蹑V茹82惼v# 妐_w麁武le)R擲sf+5ZXぢ踼 娐"!O鰶螪儥遇Q螮<:e廯沤P4>繦7Ф塠cr$韨V昦z(:Uv茞柙[縘N>1V薋7Rz陜熉zl璻痐鼘3捪QK-0]鉗鯖庖m! 翹偬:Kng莍-S耟X9`WC玡麻侏j5WP^`荠琤L斬蛑h舘7厯A靡鹍 夌峎蛤缦,B +脄WT[~顅炃a:聀茄cd?宻拀輺ㄝ-eμ捈a熩'[煸8n6觨痬,7a1藶⊙x戞訠#璳o掻恀[O=b^+5臑 M觤w~幒碜`k鶛- +㈱嘎潿魏@]lU鉹JI"E拊:聤 64櫻S蜶eA襂肒=恚&十陲cT I鎨/辆8鷹潋川蝗囕_鶎1BI}8賖Bct搳萙譎椲成z|銙禑^駱攈2擃酮!V*f嚎c譠 +齠)4鲼遒 g給rgR9M﹨+蝯寕侭* だ贘誓涾鼔 +?M鍟 l魂涷 5譝,糎幗9苅塽 (蕶VN啲蟋c鴈C傤b穳轡疢擋l%佴榪1B&y諻鷖k\矠>泇f辚H牗龠$唗畞u蒖禾2煎髄# n6/鍏3羊v +砣轌\ 7c忍筻1%=u燌旐朔jp睹?XZ緖錤闏#皚智釺賞瞣N僂D颖蠊變c掴p褦谚e蔐p^屎]c靧 脨袝泮劷%JD駅f遹揼鋡踭闧HC髠7z]w~+SB2W{KH2嚡e倰挋鉇?2盧 莸{r+6痺&K跑#7`嘫プシs葇助5s酙}笾9奀b;.玐整溵嗆1s儤=螨麻 猾O鍀@救 T#.4%V氋H軁])錇R鍑B辄 啤&7C辗E辀稱睄嚘 |kH?;俭U繪历W#糠鈕霩原糕:酁]$崓8z鵊 嚱 c(麇J髡実捍趥譲够鳮*.51g谥鬷厕&} BF眝茶q;F衘g妮3C0痟`$皌郇重Q&霅e:锣諳<譔m蜾as[垜駌褫鎇紇6LP3ITY比沎Ma蠷5UYl+9禾!3鴕 >澼乤Ъ癪'$<昌1辈+鳶e烗詛滇鵤P們'端K2|呵`呲果桕頎姠,捲)n_惬(鈴(蘤 呦,处i璼.踶O8皳湒fp窆(t閳\iN6鰰?#冋!p桞':讓輄8|瑅=N)鸋踝gi|颸C柆n&祹p1"睸啽灹"佁B纍 +奘枳橡7 +攖赍韅S沰a'e同:nh::1胴恩3冩;R+91%`嶖r}蟻鎈|`Qa3;4珛5Fp氻 掞沺抎)+鷺Vu0x}<8邢G滮L^R::簕J>蛰雀'_晸*_9罨狼炨.j1葦顟檋K.怨S-韋摒&w歚鍡%1鮆q[搿钖,撜胇钩燙1>Hdx娆駣乺壽创乲s勎挍體蘐N@U胺99mH俣曃筈阮鞁.骾b丛齍罧倜w羉徆攲∕'畨*烜(劼笝|衧鬛M狾*Gb攉蚨K1N瓴/x堕X|彖7掚鯢拫闐T勩2醽>鶁4? 臃i菂]氡>鳺噚2卾爄縶拀-N73仏#!|娈养牸;i97漘 冤5H儇'焗$8MQ賟閨o榾%冉tm +w+驆綀炰菂]reMI誉5ul樷虡| >T襈㩳Al謄彯帄4U镘t,鉠蟒D勵F<菿"<|%sD蚈瀄鮠PRHK闣嚽藺徘E蔼aN飥H-艠譤!乪冇褐侎w薽梫W鴧齸:$<壚芪以磐艳耘栢?敩 +endstream +endobj +12 0 obj +<< +/Type/FontDescriptor +/CapHeight 850 +/Ascent 850 +/Descent -200 +/FontBBox[-169 -270 1010 924] +/FontName/BECENO+NimbusRomNo9L-ReguItal +/ItalicAngle -15.5 +/StemV 78 +/FontFile 11 0 R +/Flags 68 +>> +endobj +11 0 obj +<< +/Filter[/FlateDecode] +/Length1 1679 +/Length2 17875 +/Length3 532 +/Length 18831 +>> +stream +x诂筩t&;┴X眒Ul鄱m跧浓囟m鄱Y睋S秣躅輌熡瑚彽苨O\准鐇諼騄苬&段磳t \Y C'E;Y;NiZE3 gk繽+ )⿶伋厺伋 @湍 lb`b0rrr聬勳=-烫*妀斣4)`桉毧濶f部&講6&段!䦶昄L捂&S k悳紗劕BLV fbk怿yCk #磪憠瓝 %涝`廊沃剽熞滆㧏 8 N&F軱軑LQ霱m,湝>,f段{鄉鞍5瞯1'伩rS%d飄髯骆/樇潛硴懀吔3鄌Tya玳ln帱Ol'嬁j濋_Kc;#J鷹/蘝亝蕾妮鶡X&c '{k徔傎;Z+ ' [虁鄅bf鄅lm怃/?甍:K鲻蚨麠塘沦赡跀啈閛L#缈蓖,la [S;#每迤.5q黈(䴔士I圪Z{孧La鑕頊P鼰盠鬟G-沸G彖鼓拂B嫼X[攸肋Ec` k襽枍祦#酂卌aq5氨蚌9Wk5g?0!l威2D巳J曲o眳摠吇壉紖硲9涝历o簋%W56q炊5鵎蚩讐佱胯斖-尙la凊*[Z胈撖U綘垚埇f埝踆X8+{貨礼(5;yKP形郋巳 爀bg鴞轌N&煾b硨伋;@媮巵瘅?>y淫/0"禙v 拻硜哔麩窛姯厓媺勷逨01p2Kj溻桫w"-?$&&&F0g1+4稾瘺DZZ琖桖瑝#6抒篒韵薣练櫸崕󹦚O僿`g访湇e醀T僗咴咱鶽d瞇磖劽扖D]* 鱃攒炦oW髬屙鹼t聩騆 +Y樻堵嵒蝞葽 擸而TZ_:c鲸+/娺櫅88(x譆Z赅y6懭?m氌2c*!l幰Ξ 瓇詯脯6 倊醪,[穂%艜w苰g鯯洋p鳑f乴<嫌謼H發兤Z1/|/茉B <罰脲或Vl1薰G>!肢*W|膚e_;)嵕.貙1贝ゐ18 廃$鍩(-露鉒踉9耴辻辉糞頃+!r&鈝歸bn 6礄蹿 H.E +真鯷鑕e9U麙-7裉楤筓巁扤s3D?湊疛+cv\9( 濈)yMX!娻誢*PToO麏F)*氪<艍侺'-焊嚺*鬦R 峕軵b枪gNAlr烩1囉:M _滜?}j_嬜S 窜们綖EV卍]缇s藝Q}拚眷蝴se(┈,[謴肢s烁-TH猟眝滩 賙煇'芗B浬d罣 @"覢标?巭C圁Y謈.睰伭 粀藽2Ы7旞数桰o5B篎L灐郰:3i +pM脿(K黤 #X廥/(唥Ngc绔Uv~骹掞郍G咧d卒轋i濲寯Y豀;渣ヱ/昧霩揩vUAm Sm賟渕{ ☆4 ML6甇虨操 奄5|Sx)F4顰H酀ak騛J笅恆*n牿79牡5瘭y箌,ㄛ孟饍n4嬄劢鞘gM眽 茼=o叅N焒W"I韬綼,V靽Xc!mYw峘ゲ%*肘龀E 宼▽t)琜w櫮諥D\衑裇?f%飡)垅腅汚N抈玽赗荔猟鞮0h妴]雖Bt:侪幩霞垡E呩漱噘穴 "+M% 鲣践9EK鮾蒐嬊o*(E,uK卢跉齍拨X筢蔌\b1-纀I<桪駺K勜]ГUY8y}鶱S /匫\"呡y瀕界l噖罣鉙嬁扏F糢園;礩Kb@ ?F栂,yx謒w强篊滑q0店:c{t"繹r塋熾堗A袛轭榻倏鉍m禺F煟{#:姆鎒娐牻彚H=;恘泉蒐U鈸u%憻{菐褠o&嘻愀 #)gf蒨䅟=娧 揍W^(狈で?Jq呤FP剣4⿹鶕+u攪錈烅_毼Ey;s帗荢扎梽dz5驐y庞v图鰫B膞 梯笐sve鶑$穢|f&]5Z颠,Z頻 噟?漎[捳諶渍懄D,裊皭K硺湶@O鲄嘬+":@妢o怅!+k鞫惸 粮宨M ?+2z謶1 祵?毳I晾a聁s}竿涊O>壽T譊~T刼0栔IS a 蠴傆B豕俇m霤荀泉;币鐔簵$*圇屒};瀎╅^鳃植p泩}Lg⺶<能l標鍥c赩Nc祮`#椮琁O蟪鸗须V[闒瓺湏罇運薇1坲尺UG<赛阿4$GS(p⑺&窻簻铚醻G篇噍塩v:%G +V;婶LaRv衪茄&ьt鞷;|w7臀F砆膒妗=?2^簾@圦瑬锋箆%%姗蹏 o' 鳃橛W謦]r┥9岂Dl泣胋醤&WIy侥3򱸱b8X&#Q珇卵丿4輟dv筇x轷臨H!絕+> +籷仌I広/]灥隸鋉41聦9砜奈@D}謤銯>$)扣嶡蓜iP撯<麺5Y檱抵u 斪Z]未K阉打0UA 襳樟!峔@氖%蜮=幨5麥塊簝jTQOq|>╪庭h乩+臾 bv*/9QH扄6"塏v鷩~7A%F萬S矒ypp凱 Q洕腖岭組f防!里慓/櫁;3购{斲瑆維w痜 9d`递岅40M0鐎}<.gR +鮲5劤攡9㑇$wAU> 裼(兆?麚爏筼咅6<目W莳刉v闙 jw(>oP兘1|忾\,膤/潘M眇襟d靣鰒>歛,敎S虀稄伮 厯敀珶Hi0h簅_媐绋i'F傓絽B荼u罳;6LH柂-aDz$a ゐm塼卤ɑ= t0g:糨y18豒~鮅足#狙溅袧r塽j7嘞湠櫀;U螑6胧$\厩頩謏塘;7xa^籤Y糹 h袖.雨W$嗃t<]鎌S袏A@蛧x╘v魉挅BcZ褌kTO々驺洊盰 鳊┹鍹t膌4 剽+<#A=_䌷9筲跜彘 s卛响fq癥j b7來虑j醲暫*敡闎>nI5擵@枡<魧l遾0%槦賏&獜 薙銺c0膷澏S=湼1 + J轗銆В徉2剕緀q+-"l氟B騞尦9戄瘶8jJe!q徾J/觤N:覟N0,纟咳p摘a苼紜凼韫袶9 %D傺胧郛4K簎{惦6ⅲ辗┴" 葻52,:[8蹷3:髴st摼/纂壥族 z锎x鮬<UA`飜源{→驒P卨搏蛔.2籹榸/*硑5N} 奁)預仒)}苧ㄉ^0TUU屾 窜腙G[巽rm擅i焚貅 =I)欑Hz%鱼b55?蒁鑡"晑熫榷碲{J9║Qv.j穋y{'魽幦,(Y倓N魞n玧->3H/,儌餢2T躋1斑1ko稽g3o谅顤呂d 齋R#C诈8'!a暰痟t'bD紡謪VzQC%2辈 莹M邀z5墝跢`w_恳;娯B,劀"M醂 !楴x熪頧钮澈鉽Y隨 +bQ'':檨呅Dg燞i 韍.d纳8%嗮~続~%c脝橮婀 噍$)前s蛛O炏償;葹?"5鬭鰓zq,肵谠 go眝B涢E偅溙v&%嶯 62鏪臒讯d39禒YEOD瘜抇!#尙(\噶l+H*{悈?<纁梋蕞塩E鎯 G筒 璜{5N!)淿哌纹@\8嚽5孢= -襉o1?皧GWS=鎰c2秾'溪n3 (f#樢3Mgz4浒 88v+妰+uC镬9蘣qD¢籵躋遑 }"Q>R'E:mh癬 AoKh End^|Q襽53糶 w+,.辮*ぎ蓄次蟡竩奣ns弴0p-Mkb(悻7从fg鞱$䦟賾lC腱K諢H嫈忈| +"篖柕增判糝X迲嬤A}狞9y8虢蠑莈%=嶅Y@- +伅宼镁 呇楮懹蒚詀_熱T6攼g嵚ム褳8H t`B&R +q-瘙聮Qn頲~&詏 韝頁黶塛2t!暴t%騬>> 钂匰4玪b煡/隠4B荖錣 +夨ml缳劧-v矺邔 /.晱7J h犪LHY獸扞_bibz%{鉞#,"狋榎 v B粨v A5 ow喅蔏害軎罜臄殇涗X怕碓=誚A攑x蜴鼆"覵獝`故S倧呉<愥鳴& Y╓憥wr舊╡K0畜橈燈&c睩膞D!Dn寷!'瑶b/1j$"尋躱 橉r$聪 +'鄃<綰厍znu)by?秡&DW葖嵠u叩G檦燡,"QF牮杺儚t欦Bz如!詶蝙躤梓鄜rA"#觩't崶鮲;а8b竸级冀9D(夂W?YH駠傛瞸椁?湯1*/噇郏鲉P硠盲8A往缊.漂哰鄫( 颟蠽滁G誫B 錘2r减p.哢Xf現拻n倃y艋鞶\G建冶谲Oo腨'8*svclL淺d!-=赱挠/e獍鐇8闼./A:D$"侗検(-襗焜&(+侹魭M惧q嬆 +濅9A3f1鞷讝w丳 釞)jy +Z噃H:PP嫸?咋 +騚2W%/$/孹VQ鲂泺mY劼=炼丷尵, aE黟i爢&+鲶3?V0駢脺隽:7石8nIk幖hf菎yV廼搱圙 T⿸4稊=$1 +)瞞k抍撑lL﹖聰K鮫鯝J惉R窄=鶓X炬宝d婕8<匘畖u>.辐.fr1fu1鹓洣'6J 糾 H蹨&.,"蔮yХj縶e 閩1 崟劘-C郆mt2锈聼霊:襘k5K缗瀛雥+汌 ik#=痶敼<*壨P06r|死鐌R$A舡F祟融%)緺|咥笉4R萎致賃K\鉗P+聀褙炌P♂t*Q謋c\ 鹊昘 A 貯錯M1嘿&査遳i:W循,\墿D屛鸑厺p揟]毒~鱩鵰^鼠,-V<8讳}0\m 7羋V攮鄜|僎婷j酓pX咙菞rG-p汬=w忏2)f侱"蒹.0s:蛬猀6壢 :篩f営崎钽畫驑0Q烻蓰娌鵩Rh;.怬P律斲嘱檩缚晊甓*衻穵l8:=駈-A歌F慧 C墣笭栒SkI(][邺w艬嬰;P棹4n嫈ㄥ 繥俻&沪孀[岯7刘4稃A'吓拜怱搎L%bmI姌; 臄@9οu镤岉蚪&k$蛤[●9籤h5Y艤b饶SlDo穽嵂7|yW滖劙耩U,/そ隍9x3zhu碝H22DQ嘢qTY閿k{j \箟革"訅r^腢栋,砏檹漭宜#誰涂馏7嫒F暬秷-@?kTb葊钇4` +桺眘s !?譫蜈V_ca鵤14g罫薛╙* 沠|"2:A'磒i[H銱!*P齀E鯁'H=篮尾m戄1尘up逡GX)!u 鵭:#=栘齼p遡 9K|Fhe` |喙sl覅矂崚珕貀鄌鏸#"[ポ莽恋潾輄fL狃緢穫f*鵕5=菍9硠氟篎A挸 (;^乺摇稟E飤t薔p怙Xb【A酰o$鬠畢X絻 m陂 怜,8oGUi9w廐窶k渑0煕b矱琜锢荍性:!L屸'逕屜脇媏︿>=.慓+驌)谑HRB嫔胦f堻(Ox%H偤a莔Β愄堾昏1鰹鄜蹠倸欲臁焉擣r杄h澡Q茑诪1 Q7Sl圇龓禾蘯6鄪󸡙3$?B峕j懾彀倍跾蔀u\uq鉼渨鸸E瓬 橭惶薴跡#柄oG魌n擮鶱側9aB{i,g+囷劅j愚[{.bn")]讔绚-P鋥-tиH鮜./杀弃Z_&7 f?溿C gl,U%l山蝎ō貽矓计涻材94格ν+觗G惚枢Zk5臐壂4醵bg%榲1v鵺塓*F笼朋!崣杣鯬\4 ()Jt谩'}竰:z凙MN K,P+(["怎愵$k犹咘锴6堻H)裬b85,匳!S[齬殏騗濴崪ワ狜鸚|D揎M鎡sy 庚p@^P爜氟3=铖4寀佴*6鬙鴀<黜 +◎w搓&%|Z5蛭飉}j粗:I羘瞉荾痠R{ +wb狑I髭侚=u柼7糒|->4<垍灈)%筠岔槲传o&1躕L f蜽C9jf轮8KjkKMd曭2W& +>JY8 'R隯!n.4w"uF攂ax> 庨穮捇tljg撃M 晿g慒qkL枣喚ek鳴箙JoI 闲x=孓儛餈0鲔師;+eJO瑡齴$坭X螾UV鵰`蔕e瀶f!匜獽齸禳ku唌臍_瓈Oj%kゾ呴X夕`:p>)敓 巳躭萎9.燗z焋 Kf畲j*峄IT'@z怚,Ve霺r_d驟5鞑`Mn]甆, X槄帝rG眩噗瞧-3倢 鑇(;燾ゝ&麮t颞G`W]溋.铰2&[?薑=煎>犪K:G藵e榆4蹣p菖 +5hl岪斀藨0轠eb;M♂QQ6驺o豮见攁茗园?Z +岁a5A 戩"I锠堋 $7H偑cw+托Bv燀P2úg?q漓m('1榽P`T鞄 TXP隞諤[柉9鰋芛兴g楢詈E俶L厱磝-俻薗鮯aT|牱嚢9W衮3棦j9x酼Kv?ⅰ W嫘su荭I殧媇灀秏 刹Ve沔眽LB椷JIx絉髁彫彵胩嗋怤b蠣 5Q翖'窙羐鸋,J +輅:JE)鐍f莦墂’ 0/宑|\鄐乪[飱寇 欸 5誤絸L<擩蓁訷 Z(館~緪惱e7 +隥q銗薴邯j簚蔜'E\漐F%*]{<猴计+m弰架糁u疝詅9翟佰{|@n霪A(P誓者)%r)v J谝2_嫱萅闁+埧V?-芹zg鎪蛓霐pП∈㏒续u鴡s閍X:8鍬穝衧顖郾螝) 薧n.P'Ma}C壀敯摑&9O+A;%赌┥F╣Z抬蟙4 x磎N ?&W孞$馇槍郐l.洏腷a(谡剹船D,?f@hD;?颢竌腆^beヘG"[0稦n逶 怃1紉终:U 7 瓃G{d`:孆=1hA^[歇 >瘡熮M!繮葰_埻慮幧妎谗飛R 傥 箺q02d輽"]I诉8鰯r&q7@$骸饾瘻崸g罀礗'鄑鸤刾霘覬S涠遇叭9r鹈lff渁廤踱靄熧WS#+l鴽婡4摞|h %R+"c劰'㈨遐駢rb縬刉N媹歸}馣#vm<藩曆紾{bEr鏳*q 黷_躌0\瞢1狚B昫誺阴聵;骝:6忏閱)寽]b`2瑿 +w#玠鍖籥婒?崧曵嚯 nLuau5沠Wj+▏綴 +疞烔I +F`/Y淩灟m簿牔狻Z諛ay阎p_{躤gcEQhn橖校x愚W飳諙*F5睝S菟臣n脎&攑攷<_Q繡礛n?"`<穥 ,盡 赍q`>璝'g:旋|荪╢zs螹?瘑犹鞯鱶n袾WB傢(J鱪;飌D+I趮n晇痥g/汕Yl垘匟V纸"1嚡恣人餂VEObjz噮.覉" 慐賖WD簿@*曱S1.|6鏿睿伐枨綫茄:楊5僢愓q^50陇82骣Ⅷ.O鋼&jk簷哧eb2h $氡膀G膊剕ㄨWO洁jk%]製O1顗 槮鶀死ji].`鄝醣6U/c-㈩驵) y#歩y]鎥謃恑鼋蕴针)诫袻丵I':E壙邉魩蜦0苆鉫陕庺汲o姁:府N侕敹4ぃ肞c骖El石3娸B笰S椚.<嫼蟯>才鄗&邚魋Q骩葬煹横橒CFP&@踨;Zq#N倞 頊&徫糗c≦.NM+ 嵕鎟q荮e%夽鲁7窐d慼Km盨轰芛豋 殆Е脽峂篂骴50>毼囘%莩[泮鴝z佔锝k?9耱峩=泈官^65赎 韞蔟 熷狖濜Qao6`)懟y4 a庬忲脊a箉醛鉀痑仂鸅'殙遜:.諄磆壯 Q隞 戔3噭 +)踏秨M踋竁L.b砙]+鉗訑]宮\璢<úH饀稣; 3塚罧+[作*m岛!rzW#资簺X梫4酺瘤F+'螧造鞾轊T錔2 +5#r媚嬿4/^鯌 +嘀膺匶Yd涺_ ^)7.勼彵朸谭k' 蕤矢麠I玂x 4偐信b=Hc魇"錼秈酹麛L縈鐈6忽)>饪蘩\ 爖俟+駪3E昴N舽 \@]騒-!玷ql擅教3)uZ葊缗脫岾w總ヽ綎@莏ón:$l┧J-裎8F迋0+u>:qq常]軎铪i 6aMLT_鋜  雬貮"s¢ )纡锑劎桊Z鴚穹蟽噠0蹚:<燕韌⊕g#l~}+R% 髉B!.g:\B孆宦f#@鸍黄鍲7(⒗飵Va6N鎷cx8逎)A籛∨K7!蟽狒F盚wп絽屉铈'綤|诳 巈$y鶿,鐧員a:8釴gmWjc[)磣濿猄sb资&&丮驫~C製X却`~m敿6悱"愖f罤 轠6羕]XNJ溆"厝:9$┉踊 *媶躣t +}踲粿聪峞傁y巄M$;0岂 +佽M髊烙祯++n僰k欰浈塓 +%夈V瑬i纸慤E桔E@剎侞n5赇t/1j~鷶鄟2z筝蝞a薑镛**葫撾奛,Bm瘢cI瞼1161a坨T崖瞰9cj奸築碯=n"c耷 +抳7⊥T=带u3螸えf閑A蔊\XL尮絾r3%{f虇1W迲匞湗唳sl8昍R蛼YE)扖w5怗D0▍喝娪挥9躳,5邳薚:<禌y/''o7(A饩 繄彎H'| ;K勚)P$9騊fu;"8狱囓鑗w峈 +j逮m  Rq!;+*j76e-WK 0 T鉒輹y'A/55蜽/餖z正r&d>Y饧9帴暻晟+qlea<:诂墮鄋GM頟榌肸/% M謜z溆滾[w %e匾{=瞯RHoZ蛢&A悲>9)!m=>覍粏8N ._;5萻8棢&u櫍.杝i摅黯椌`q鳧1){]Ii{詔niO.辑塰>F +Z盌蹾Z7W)3{墪Iq靫搩銙 奋|*鲆Mq鶈CZ CQ*w,fT4z┴}!y棴熻嚪kQ=槷*躁非B^?嵵"W`◎)4p{R;消酮MN禥迏C咦9罿D厄挳疓媴绎K幚4P0蹋橿{Qz詼V锩蕑XQ滹 &c2@俪:瑻!蝸@\-睩╁41娾z/%畆覍j$结"肛橝ZJK M亀擤!鲁蕇#"b@)hqo洌-qn)勂艚塟酇糀杤祜2浡;|d-垙T=硑)w詛8锪罨淇 !dz鐱栚 +,L0~-俻J0孱e臈誖 J 汝鳝鹰踁.蛠 .s.0桱 +叞)e擂魬濼ij2_N殀蹋D# +萡揀nW济(蝸薟拟没壞{d{甘|Gjs懫垷[1脇殭郲_ 遘覜j砐濑#Xb趈~c%K鉃ㄖ-紘x着枿鹙zP{揓$O搖映*!+ +b"S&郰/LD鈪!燽nr寍嵢\髶U:T椽t;瀸徑軋Jjw> 60J_4/f哄>瘰N(鷢宜6⒛'螆咾,椽>r1懵d?蛘+UPX6秩fmk攵鼈颼DO樎躧6跴宲]超晸A;恞似Wn4肁諝鬛/耶h&1B阈綎G_J捐u>um 硶师瞮U鬩憈F個轱S7.輳*鶜凶L2@*劤&賩鄿$姯蒤屦戮蛲臊DK籚l/+8蜯|%湠 h瓢乾M睝1╆黼[贅9Z掶厷 ,,kv鬧}x瓆v|砟=mh%m蔽嶊'"d(粧J酉捙3j5虧枡姷碜2赫镋>wR']?]豃qR2娤#? 漰嵐+;鳤見穾"憅ga嬭 !a2:茉 擪殦 ; <塻)蛡SJ敢俹o3﹍z麌r蠋z+i9獓,雚h瓢湪翎s:9齪8簧僫缭3z鴩 i阏伺s喷w铸螣 .癳EVM澔哌N<磊躴0骸睉s嗈,s)W駄3]9%籄舫嶾櫾CZ综陛^儲A霵顔)4_黄痉a *蠣娯紙η;筡Yj*└諟d迊H櫴闡 ⑺,醋k&摁XB^顥SK敾患o] +阰69提桐焧>絭A(i跊N嫬5T$冉〃2隓E睩鯗麩0晭Q渚获垼k鏕wz袹^-衄癙 +藾徭S7钮@v,7e篹珌』8殑跨 k)V64K=.mA$` #荊A.<ル齘W疻鉓0mciR嫭 *廃H劝焅掞鶌%+鎙W僓.).丕噪=C莰闑-?屟A蹹魄2棂g鎰b束~yY+]q嵵v芲V獑"诡舃..鲾{2跘f﹟K獙Eo濕5詘柜- 籞8l呛柿 ;Wt釟 珜7,3渳MBb哤^陋]鄝T$晃蕜騿截朓偽dl費 瞟窵"-46嚲'S3; 齯P侀癪< 梻#g儃e遲貯es獑硛螿煱y鑾L!8,鋎O{K?澦縡嗯熐'5銾6z螙鐥BN8:X5'姅踪熅{+Y僁<:y椭諗数!╧乩诹9跺Uj此鳈";?祠儏馂01$1-愺M嗰斲Lx鳀hc?7栍 tzy '-玳僌I馱妙b咴螬Dv皆#畂G~W8<碖幬瘤~みlPY衲+拌漈+i崔釕\??勑F D預汖>螝贼絷X 揠穂-檝3汽6锥.ys姶>d /亖 +黡憩掔\>燷[耣峌? @5釘G pu|R挗j7<碘n糹堖H刪脥ㄢ=+V禌5r撋廥;滐K膼? <訊苌O=0Kp A鍻/纽1+( +⑸xG綉5捐P饩ζN蹯M℃稰'nL~牁航饚Er尴橭X些瀣#8彽澬 鄲A鄣5煟卣齞\鸲馱綬縲~桇1j慡驣锾 =>UU>a虸翭錡濵独脾蜮s9)&|,Q奴z志^C閱珰厂TS賸弤笈澥歨玫覫,鸑IJ&阇f裠3胴栚憂K"5X8W~囃 臲蚄=跹FqU絺枍珳.暑9暷覹?AIBvq{I声岲崹<橰塢,=ん卿*鮾;%9叼0=_R傓:=ㄔ膬ド1瘏i榙迩`~0憔v琲'w鵽P譊态裒PF偹笏}TA塥U:嬐敫..{鍁i&|絧烽慘uV獪lp寸a讫遍hI榲BZ+ャ肤85籢尅"|鈿鵨;疨禥:WaK }T磱>k曠洷7F%)v﹜=<┏P籤>壬诈{zd0瘷Q煃te^#璗&訁蹒o縂讧版誵颣|吜0驣 榞.k撑繼郁琋兹J'2褩切n苃岏"T'&%W:'鷲z刧翢<呚:磗埭Tt;F 先佛徯!鐛飦>鶚豮8韰斀"鵡,!%S鄨k土'泃VP潥j)庘苋ㄐe;抇f2楢Y(孉莛+$yXa$MP缚杰勻▁>胾撋I嗒ξ钣果褍虰9z撏Y 怂$鬓漊篳畕A誋铈 [蓊瑱zX7/b&鸕3(澿墜芝嘖水3盛熂惭>厁s噲Tk{鐭媰!axYz6E 纡>'IJk峋H 袧禣绾贈鱆汨 + ビ鍲跔矧k螭輝莪g椅狱殗K癈鐈蕋偖T)→u塶M湊麌恳.鈚9w檰1葡 Z=&棲 8帒{榹鋻镠F73.Wr8饯遄`$庸彐偶I毯曗真 (鰲y3~编覹á6d鬁⺁礠寐fam懄#廦瓿 O<嚛|!8]犭>F+靷晉3梋$:pd8yv咤R?s楹 妍鰛竩"鶶&-j锤&0皴v榺牼D颵4R MF-倣洜挜э惫軣WH@qs騫摱)U6瞪C'm)7讖┫8傀鴌 <嬤 逛曗-私 M瓪鬭M#{l真鷚鱣户z@铉/7鷍昷洒曗:憷{ CGPkY, 0鷺1j)亙gVz鎓)ta鎝廭!騁蓍熒D2@仑聩玚抄惕钢/y<妯鞎洛M鵯 鴒h糸nㄇ梦妿鵌.vRcGt80濽诜+(:S*#x撍罐弪t菗趛紛霷茾渼H=-繋(鑙皅h?V:哳歾T戮浭箠e簯w{!I?4G h 涵6a摤|衞@輲}悚w1.奿J躞5咛闠典4誱堬捋x╮-蝹v堧c铟mq淲u;悬倶J鳋醟,T嬎VR忔yL杆?様暟"$踅R榀却鐆骢喝sUf\$y?=茀wK拫偔Be忊+{汰L蛽j:(_碑坅體:蛘媏乯才SxR臒攩FdrxT:盉晍員Q錏*3肁x罐Aw瞶~漑%RI楀B墑%Ο黜7漍+ゾC祊=e7R4霋鏱皡匡狮籮锉 +7﨑7w5鲀8!┙鈰噥朎䅟%岜~玏A把闇徚}敷癜 团;隵^?>!廃垓湓(祈捓!〩鵪:u蟭數.)J 玵ヤ酂7絴隵缡佅垷傯繌裂一沞狻芆娾v7+(3/t.6 !幕Z-寿pS鱰發% +W(y>撤孮;%f蕚- 趫2Bc霖2笉]b4o蚶Z嚪砷 櫷J痸确烠. o3匱m沯疲O崉s=%茤?縤-1h胅饑:蟂( t#y'瘶酇蜩孍 h -糺d1坾聸Ё啎⺄Bx~捂繸鴡衭姨.l-跭疤q-Cohj揋坙摦a厔cL#R梵+4搜*敹酵奇s<@:|化謂瓊麼WS7T#f諡q訉殕Y巄<4?Z礡e垇&x晤4V$'儓#E餒蜆>vP鑒9濹硾D钏6_-伔B6\!Гx嚳呴|_󖶓vJ綄?酅H9巪G:# 移ZS浶&鑼=}~h崉?匕3Z3毭飑#pV犒C=v|I阋埀﹤\懁=$剉0糙獖▋熷廟尓&y屚8诰,珃g詊 闥氢o桂&s簦+E彍 蚧敨Xa;肐?i 划湻4.箴1(f(弄鐖,[eo犾-q待fC2V-娡命c僼╆蹟曀聨j襐=A-S豉~嬎虍疣扤0d;嬸V裼dT鐡<椫襻GX甽泖>嚖t悥s些飕B*a隳Nn癐⑵p.敱W?wz 傴澡C殦貃忡鄛櫴|&鹲Z=-覴h=8蚮 +7鼶♂\|苴=鼤搼亻_|c襐|鞲*(}脼1 樘垅|薎I8猄№椨劃堵」跺"裈秐゜z饧堲g^2n麺醞1遐b 菔5cdG鬿O!鵬%";︻+т藡[詋k;f3*{*-|彣<"/_C柴 /庹鵝嶥>覔佂h噶鶹矀Q_oD搡}_@ 镘 " fa]. +endstream +endobj +15 0 obj +<< +/Type/FontDescriptor +/CapHeight 850 +/Ascent 850 +/Descent -200 +/FontBBox[-12 -237 650 811] +/FontName/LAQFRY+NimbusMonL-Regu +/ItalicAngle 0 +/StemV 41 +/FontFile 14 0 R +/Flags 4 +>> +endobj +14 0 obj +<< +/Filter[/FlateDecode] +/Length1 1644 +/Length2 19058 +/Length3 532 +/Length 19991 +>> +stream +x诂穋t錩.踲V拵蚇:v冶憩囟m踲襋嵌m飡鲑珙{顥s鰢5苚V諀戛zj嫓D^塣胸(fk鉊咸吏 knm桁(ck#M4u5裁憮 ; 溙mmD 渶?j@c缆`驸鈧#圳;槢9═炸ii辋域O佬?<o:殯(璴憩6N!䦶/*'3 滥 +枔讗P壦膩6@+汲@谲h権:}仝S#胈,AG姥hd型h鲝`t6wt 0w:8亾-儡迫寿&"d鏯7满/樇摚憙節鄌Vy髏23p'罚鵢7乐鋙け瓚?%姣咨儡ts'!`l頷ge帼7鱛0;裵v41齇t牘亙醒/蘝后焨䲢 祆u埚_Q搩箵#惺帣錹N#Э筂蚼I[3涌砥蝪醩:AT 鮛贫6Vc ,邤3D䁖慀縀y锬/忴=Wh1g++Y肟痫al襽v寱伱'芾谲数s峥MG疑鄌3mL +履吏o9蠿捃扇 `b`醴S搏m齏3籼LL脓lfndi驩胭WEuFiA1E 篠&W|'ew豢烃G-2镀箴垚惌罁a帏洃摍冫擃_0y1pr0wh檳鵢忂瀟 尐崙?芒鋎`c黽峻пcn 鵞? 現U譌8!乶@#赣h豦>軛 襼--鯧瞿ak灞v$讧ネ﹑,嚟蚯乕堄!躜癒/Z-}瓨} +費Az9挕焹颺*`/齱窜膟炋姿箙滒姸2=~(嗻y卨3懫'譫^w&阬"璒D 漄 仞)曞g暖 ||(st+-Au葇4> R!條F)齏:釄遒魰= }悫|Y掲 綎u踭}Q涷邼2硼琹蠕醨+暓*袸O9)g袚ㄘI6va郲磭:"籈湞櫺Y禂坏Ne裙(!~"萶屏)夵W~=#覜檮饄匿E婬{g储X%鬞 L6s]煒嘿箟B缪Zp敕bi泣卡&*K浧Z鷖鯪q伊~厼"談貳Z輖[侁 O镙p=?導倘5╲a"觖!sYa猰3覠徠褍谍濛1癵鉬8B鐡蒁叔颳嗇饳<`en.j纡><嚍^:戔z抆?棉\諂鈉1礚h`Rf躤 + &*;馧U@i叜@O *蘎G屳"$~砞S慒訍n郟+轃gx7=枳{|P5u糼'厴/v蠇闀麻椏o]#+峨7\酟cy墩h庂菈瘁-#5"2妦s鸧K,彫%奬,覿<^:渢q殊\/矢紸澵V腍U礠亲m9v'忞(&H3W峢疪$%芺翨&R鐫阽A贁b|怼<~歕1S楋C趋H靲p>p m椀貜強鈰Um魉3銚!j暣T( +凃玍夐魞t峵`捝蕇&K.4褅佲鄑I? 琺<#)~b帮>=8矬邴Hp~`l_*NЭ綱~N8X#*蔳藓G[+3&槹N醭9gKq{笤R艞N*J嬋锚獙楲≌c贿<共间 +-鵴棃H,{ &衼冪mK万%窅z]靹遾顷1@~L$湽脳峟.yf<撸\獕銱泗Ymj泾0U鵴\碕7顗{汒\T蚆hK +滗"R|娳Xr磼<汬髍婊3纋櫶X瀧f"ㄩ蝘ォ估鈜軪曾 XC+[ぞ`!j~嘸愫毹 +nx4蛷e-顅(4贿,鳏牒K|H迬F洖e#[磑'?"灯鴺匆砄頃&_圦4_鼇理b4HTAJ 枮5ス螆柇e刓墐延檄y嗶謡毚+啬鋇洸 + 棄臏y櫰羊h4w愛qp寴垼ZB_=gvp毆#綉濋揚\~ 嗓w!禭{X( 2訩⒑f|jmS齄#璷閄~AU3%wE]A慇鎦?Y/$氞=緥鴙H8<彟鈣 +镬嶞鳋y諐唕E鳮kV阐!ta1参葷颷抡雀┷骘祻胜LP膨鐘歞s鰅髶蕚㤘7o[遊m甸擱琜-A怐猫鳾巩AG/<竬b烗釔倡歔觕2U圲檡@q!芐3 +鎖Q薖;均 :输﨨pk殇d齡TG8褡%踭Yoì媨a +f"肔eJ,唣伕,.y溂岒诛z壼勃辢x絆傁摲g柝毊鵶箴独sM垶淓b髙L呹霍 +茷0t3I蠘牺貁鈲&%赵/鴃$o^=擃抚 糚隧c御r満剋穉裪鈹辬#膶$X.4讳蔛A&$鸙Q匏鱣[@y奇;Sw^ x/?怍{Li忍J賘咯`VY .麻DV賤蚳#2W艚屢[栲嫃屙>棑T9~西鲑?1鎈靿YSg獏Z 讣^a▅9D楧败9瞎8] +~毘,"﹌v姏fX呻/Q癞v庉怚S壏简ZW尛k模&憯1#&鋥a竟y.^h^9麡問2攔]臔 Ozqk庇鉿`/这m垝q蘿C裡;O ; +䲡x+V鸰慧/佼JG琵(t慱矇蜞溋P蠑懰悝岃 P欸Ay璓2牄咹7BN嶡5趷区鱪#汨9湘 ux$"R劚i嵐=籆踓\嬹鐰鶦7洬邡凸 ]K}嵠Q懾 d`WdR汆>憉A>])4鸣b(傟-熁跺;^<眡嵁皭2@梍檚仈OAk萝(茠褋佨窢蛓捴硛现葥R1'<諃:壜(輙|╕d77='u.锆ツyH赑Z{翧觴9H蹡%^]6扡]G﹜Oz畬萛钨olD辥襚啀獔㖞洶e糌痘%6椫L月c髰c藁o|7鋝C旮棇%l庎w埇闟%8慔\5辮b'整$珇せ 楢FL?唸C9帖僦q蘵 冯@拊;; 誦阘hK臰 +夅7鴍#/g7zCPB到D衖zbP炞b栞均x稥4噿Z 亷|Е8趀.o巇HN坐7氚鉘?t!:Z+d冐每 e)7R斘斈蛔鼅揮隮稫儺V韍ew掴郓綧FYK囼NaYEjnc崱錼郼1傡.1瑥、2孑w3痵2垓l6bK岒-F殲6y確j|+Y銴-O*懭堒F?7S慼馨6\s㈣#X喽}髟-'7e" R澡霘秨允i'G厄 3東6鬑- +繎帔1盷 鹰Y RrM%癰Q*吱覇溶麫D o懮囒先'魌d詘熬,;Pe3臂韅6哂鬅賎隑唇P畦C揀K,柠&FY祬察慫纸:.?麣7EKY鋽K証椥/R3訄笋鐜V搕毎?鑃ZX9&+'S擗iS貄.U噔椺"J;惎哊瘇Mpm闙叟煘a] %艜*k6=Z憎*Sj @EG糨& /D*_愛!鏊]但鳙Ay6qNz蘟夀}=3g畡肣8腃滅昚h嬳_w犾叾`1"檦c2b狙鲢甜(`棒-冚9pCt賄? "溒I鬰姦+!0P2股>襄c[覚+髨 G迨1螂 +UガL$J蚘裐3C峥!慄B鋿{RG39厀F=毺湄呃K伤不胠廾a2裤沍醉*赴I潫;ㄠUg^iU蜧cx抄4萚;2F陡 << 颜?E淲p,ZF#凟.PY]"洰я读V?&Z4軦鑼嬣nt綆/x4%oqQ栮芥秎O阍淬敄8櫽芓1瘌1M鋅S{馟:诽豥i誵;屺 U6m乤=*撣錫n犙踉 叁A &:(鑓扳d^碖p蝱x-#jL-N誦鉦跶駌uq s岲-_惢刨筀f祐mZ)輶箣_) 劁wg2GxC a#簽儗2钧e皑jw今咤騔 FQ叶R"qi#7wЮ?6澍賂n篾(春B[恂k +ヨ莛U麧)&#鵛C鉃=m扏'黽煱E寒8瞲ct蕮癱ж拆#-oW鲍L偛@OF煑蕤嶢嗳&泚挂D38)滳d$jo钧薨Ut%U稶_'o禙r 恪漟d#>赻&駜Qp)p8殊J謵骆Sv<蠌%#]7$Q昴S你=誓~7鎌 ㈥仩苗枰p窟瓅7D芥5揦保oUO 捜:苝?禛焷 淪j镺v謲-/\铥=j岃霹◇劄4跒{<蜅 0唫凯碕襵[G裿捱醑y(願β[,C駒料S4*ヶ/軇X&艚ptx赴dCI萌娺{釄玬Z唾耜n豔z襤1糏搄~rS^ tem懀U7彭瞦F烮娥5Y姨?x翠霟荒梙2) う舕Fs虊/$]鄣壕魨酫隴6R觌醹A*5%槿7J漹ZN)EⅦf#W%杳谠鈞Z-誘X碊P(婋)dKC皺况"k~圫U陽[:焽溟坪守冕耧C貯8戝䴕斡=悐o!tnb瓠M攤釜[e齦蜷b眝 $;+覴q) 鴠-昁?媶鮭%UQ7簀/昞Er7誩( 迉 s悝庽x槁H睦V睂タD"癜4x璺啖i鷉爍徵Z~]媲92<靮漙CB*9vC建━洩rzBa帇c+億f9銨mm砶5"蓔 _骔O#捒X僬;鉽-/Ygエ姍 +! +r鎶9駡i )2 涮QZ垲凭⒓?碉賁! 擀 狖穅 K8髪XH: 欠殡J8Xo靘5#byd筝豇曺姜4&嚠螾!ぃ鮩N 诐<Np悦*砩WWF.6顛巕)X錝耪圃邍S垱新~3M庿攌i鳶*禑厰q鈙啾萻鮔対R萆"W憈;@疣旁 N6: +汇w A蘲旙h菍E1[v鞋+ _箼啯@o薞&朂s澪#被 ^憄猄VJ楶,F佛7G熣d啭皁A哢(舜=纽菧冢鸮U>愨狕_佩徿10赃OQ誱騺%9.o繾晩&.\靠琋s&沄\~O,l?;R69侑x霴o0RI噪Ow竵G棓閾O}啃4J籾閁P塹闹蟋T俜t鋡炍种p痵懨Xa瞾j韼*x1斔;眾煡7d_q拣r$(+vi鬋檄B隯H*杇r秡鹚爪`~簜揫I*慶'j↗e盟怺B^z囥LО普蝠釹pt"弘幢M貣X64攺}i5D蟘嫤m8猲淹婖3煫鮀#栱S&澸鶑薑槬x)嗺,肂罡:^梱9墆洹鰒}じ*釓k +懫嫯lOs嬠+(>镓idt[裏B嵺氶犇%r訪=L屙撳褌蒂葻/t6惏锡M價檢瞈K 童tK[T沲牭h(鑮皂3钘纲爣D{n');FC*0|7`古>岠⒎淉鼗巉銑kI"彁<@嵄裹{诰_ t凜q稚-吝疇 T/-穁VX^Xc友2柔⒛湈L{歖kFSiOx邙粐髲曲扷艐K剥刵W:9b{t羉 嚧 \荇鋵K蠊"纘炚w瓮K宠v4":穩 5Dw倒舛耛"'`z?諱U:^徾S羊54紱52>啞Q#"_;徇+0EAzX阽$3抖梵0憷 -ts鎜MD枖 >韢$:朸嫌J寻梽+鬯歾F8Z;9喁:i宱屽-WGf辖ReP0o瀍Ud'38or帺錻3.&杽&;茧罷|-JI鑮鱱{Og) 陲/j!廯0s)?x'%賜鑠髄射~Y槸猄Mcl璎?滰?6洇螻W稷擳A穮:7,VRK犡=韄恲B'>氥'#挈[忞瑞v `=u飹譼泊s&4i+ 滵6|怮遱t*夨О癞F 橑⺳噇瑝 +嬑浢8鹵唱lM/?役8鼆4'幺|!剄〩瞞6玊\(詏螝髨H蔃罻`^Y坃泟XR&谟V"玱om棈q-}5>孄#5! W铴u(2蹄 獀盫貫惇] 襭K樏i嵙倀 幉彦胗堆 )顐X零5+.|乯W沪s鄽恏`墛  +疣挅粙5凡蠊N$x郅$睰Pe殶1?膄LQ%#腹鱜澎`貮B5p2⑽e訫*g螇*韠|*貇#1籃粞 ,緘X秛jl緡 +礟x`昰+戧賸‵+%rVa 镻玃漿礙芿脦vL5悑沛5=峉噐R`5篘|数矽ik鋊緰9l~茼;E欖焅N鰙Y豷巄P>汴玄[頗g幍+>F爩ぐ$J3脋?礿[臞W逃$蘖 *衧蒇t獹^'彩"J#穉暧Y颥 潪a亡)O稦輤暐XA岴 |J溿杠宖P7Y'(荼柟 +倹ㄨvz.崴B鮧P珞祈w@挳誚岾#馕r+?鞛eE:Q覇摖跃蛆跋彄礴aYcN-閿秴煴蝕甪%+2滰?]<=C斻踾2仵奔ns遪|谺raF矪邵b翪鈢荅+衜50Z嫠筞`Z +腽u匶(攛m6<羲淚 +c^=蠬湸*鎻犤 o^袮_ R8+qPv?伛溴泑T俥l#`缱Q賋 +A1gH_I仦LDo氫餦}mSPy仜J歗Y*&帬作,8A飿y4F 綔o)%乊Q奲F巧Q6)i嚍)w^禝*榥束 +F庈*k溍狶鮪,z&槼帞,釷/ KHp>$] м鰄輻狊珐愀嗱+)B1昌鐺^ \撖>膮f 栿滢1$)転m埒 鵼惛3熣ヒ緄炱LD+ +擮栺]だo媵嫔勎{LM⑩纱j=腆z猦3S断[w[/腍;TB持,Z粀浙 +u嗺量抶抃8'=~Ew凣摯'妅roz唊,"K舥*P-x暻F朵釔$=TX@b_s~ 6|% 洧@fH鲶r睧og焭Y=1)e黶澕&A#sR埛:Z輔派51g皭楯鹜寯$檣 闐ⅳ>DZv晜>2C (J敷潱咋溧鸧蝘9Y暏0素8赥窽獨JKLS謺:旫8迷i?歸叶杌!;e蕅Vm胼PRt篚9駜侸oZJ 浔潪jO竄QU{!K\海[>罅(蠓m#?4=貰!図#锃恞蔡FZ别韅燋nk扡帞IW幷秒V舝溬剮茸F栅摔蕲GMn壷禼N%遖7ㄝhE骊畫(c︱`痖jUH饂覥M.|3q綪o懚8.F踅F&Mv%7`.絤(G拯H 罋麺43?A裲馍IVS#y腡袍:躌焎纣M剚} + 擹訕貫k匇ib蚸猧鞸色奋K撜汫ⅳ&蒞'j)航蜒c2p旭( 鍭9 蓋袜簎:3O蠵蚣-褗搽頻w 坠潥(4訨Z=N蛶4隉礝00G釬&:稳%榃_恔盅dY^斫U饾5牛,W勋躌]歎蕖q黹娠%-械硰磹林:禷侙q缂搳E,Jh謀'-z/?+9魟y=顙栲`钟B4.Igy>襲收4 崃0>a*璘杌! 0b玻^!%?隯艏(sVIYM弛岡詂凸囑搣銷6要{} ﹏廀涐牣骅礗k驰#D9+緰%鶾楎 +q/;鳗]33 怚Qu簤Z_~T`ea辣鎅眞奟Fg菝威蓢@=筩倠圠@:r斉坎9^J訦5尾E箙涺#3&菝[)0\夘Y眪⑤g'{骽 I惿绮蕤@zH踾ob3u,棾4 禩醙蜓!C-鮑[燞e現猣踻g謱霝魞+訯蒰w鸒7艂嶡g塎{J蓖樨N偽 +叻躜0憂^nh/秊q綅1笐7M詌蚚ナn 綪5?饐+j<&R=x剱顇v~sI]檏聦糭馕2d7;Xe蹉'猂/1 啶0zG敢竗B8c椌x磕=(艴QH脜貤走Q/"Jq5he|?U0q;f梍禁#.湵5 sJ|p孳k樉诺夢衽3f1豬0冢鄍pq棯譬摵SC.躴岸仐lXj腍蛾搇咲W#3☉举藱xaEK鲳橔l熦灇(yAEe耛BK'穜Q[薻鶻dtR蓩@&%m啖s-u?柍瑕翀尾闞(梟栯S煬)*/> Qgx)gl?Z节暀1躠弑8脠=\|捚 刑椚午彨攃斍藈x`扏t +蚯)晑壷喻颥}G *戶蛝鐋庇c墾杬kf{忖4p%]tE 懻輚do湽A2鱭/咱9垞℡1=塢`聭

!5a迵註k;;佪Y懭j萧禃o0餄u鵍s-笻嬕鰲挦彾m(9耭u>.0扅ni灛R钃+D篸擗椣兞DO:贛% +娧!尺\夨A娊誼叏}n|┎嗎f%$尅=s蜺K鉬婐q}-扮c +踽鎑S,:?Zpd⿺撱 i職= +J綀偫8燻x48屃GT%8侭飉 蕓 +3 +bF縌Vご鈊煫/3!怮A[4喾颭总 稱vPk|i庆鑖+r压菦唠cTzB0J{戩t土:嬲捍濔媿劤~x┱潔Z +@箱g>灔諑2话U黁躚梩 ,6铽1囷/惨[{謑憻 +轚p靰淄巹=,&^+Jb邂Wy g窴梵c尳0uv7卛&┨ Z'鮺 鑐莚 \a?$嚑 +撻》ユa窌跷w矯j徶閾廮琦A#巭B%挐A08媓# 涐紥}f糥:a蜘櫢戤炊杍獊iq『LH8┮捠隶瓱涩蒓劍"谈>锼9!墀&%rS 飺捱炮鄆aD榃惹硓惼f罶R戛`梤笻s 茆"\"謃跒$旺襽鎐惸(藁颈r6虿п蔰鈎U4@A鋮嶯覟mB慱%?#抻&迗篗摦"趇v:懮几9猺~嶳5^壖&8顀[ +縜噮 肹谵p猍◢獧槽鎦殴~х葩摂炚?r揨@lB:鄁枀鱸悲Z瀌癃G桯lD2膟5搤tr`v紼检醃q嚧猦靻7湉3兄﨑.TI垈踆Q7V鐽0熟鈼蠇迶俄>穻B掺鴤賌效鴣?伅]蘎*漯,鞁n>袭9K亏旂7袅芨0び袮f刕&餀蓓Xu鯰鱑=f,╰w莬靵瀏塎A,scA!俞蟶龊U廘|2拔h}躻,2#dP(膁| 揘蹌袂谌JE洲纫ㄧO剚麇;拃L瓵憩.7@碖6饐cZ`畖@x厴綑帖:v詠鴜沵骱繘v|箳@?9q觾匒申耜Y粳$#u帑(s6摸涭~)瘎糗擘L折扢Ge逤}1dc*衰P縗1芬w~#Nu页 =吆 々嵸O苖痶泒0T苚3滇欞 ] 旈憇4枝啐E$P鍯暯韅8^汯Cc慪#篁O"紂382k骽(AV/L褶矼蘴縼藶 +&7XYr柮7A$报$B鏾+$!暌维L\#EwYg1Nu淡婗偽q:*馨唵<.尩搬RE3縯#U坺嵧YHC倜z︴qJ鹢Ff皭.芊a噆髆P楶鹤 . 嘹 栦H@^刔挙ar傻<13];膱∵@ZA鏵2Narc9刘 i\+UQ 迭Z'@^K漇=蔰$跿雞} e猽-Y策嘮杻单u-㈤5fsr..*)/&$R龑翯搊角佧%UFC讥 ?u鱚轋7k聽H輬沉8aC烾焐(B曰A掷|赾?9佩预HE邂3+牺O撏WKM鬛T-靳 傮C涠o菌~?矢\瓵睍寗6x逾2i咥珥~$+啶窺 叟媏)C]氢,+鸎L#1>z鑪`㎞3娺辙m踅苬5mS湑鋄燭4东崽 p諓T弸U黏2jaI8譴x瘕 L3@枟o褵糤P 蝛乭栁蟺燑深`o稣束蝛槫CTM赼6H闯 ' J*-bΙ-牝鳪d麺舳栎D紣钼闊轅锵徢&B暃鐵F▍I惱┧!啉鵮#42萯1w#苖甠a譞釠G龃?鯽篦飫1C2閝橗dě绅1; 対笏軴&荮荢鸹屘狈錍3pX癓瞫儂贒U糝滌Z澚KF% .]n%焀H.1觪J识5qV.7r!_娈,磹D ēDW:Uw侢礹I盈炏2檭蒞眛!焀ㄕ少!穼k鱏=iI4j噉鑩d9閞_c+匓<< -"U舕2l诰Z!'匢R5蔻m6绁^蝎Y藾吊n鐇餿k蘾3G 冩瀱у[/U芷瓸#U谾oE/B尠T葦峡S )/澅ek峵!"a6t萅慢♂嶑宒"6Y鹘6@汈慪7ok%ю5#|苼韒B耹鯒>+輋E瑘AoU躁儏聙w獀龡%姃!彿塝]炢?$堭鹰(瘻 )Wge/$7pp)躩=噼5(_膴$擀G2哧z暇c緲阸┅97l'忬n8妟s墣妽}%腕璖u舵r淑蘍 讷類-X 4"叚@阒a xB擫3脬繉67a(早5蓧騀謱 Z鑓&!販I猯?!)查|W sb_U鼹嗋怏ojВ肓檮9J3诶(*蹊三岳窼m燊+NY +h3A晡髣枞gR/觉隷霎vTy爙2虡獯虗.=1礳C嶟 峨蘿鄌稚靺者D秲 `谌8{|吳燳殌-bz劧= 8 屐鸗抡蟉H>eI谞D^柱O晅瓉猡繮却:ks蔔w妍wFLl\)喸笚@鲠H凰!n碟4NVξub3)f喗`贜5雫罻7 玈."z蜍a堊罏z7龊辙闢y:琭%<'znr囶懎彙寄SW)*瞨她盳l儃獤鄂>盉凛鶆螝盏兕逝D癡懸}z +醵V gE僓覐/!黣Y青h臥珯'HI廣;慃lf岌"b,鈞鵂'Q泦=篌:餀v=笅(R闼鈗O 训w狜邱SX?蟗籞塖',孷匋骳s逎糵5&skcs](9ぱ%諌鵿V&UUu~蔕嘉;J>3d> &鏉;1偩(纾漣37P蠢鵸寪馕饄訵y键q;}鞔1XN龉猹憵動&捲 鲵賈沆n x姁'闒:)wAIuu恗餗瑏顡]簲NⅫ翞02r宏!塳(鎣誩褲zDf+灿吪姽3虰?c桘)g侪舙俥Y縂4h玼e撞u眺i桻遮^Q赈ry廠藐砒%撁瀓7)秉`緅橁7灔葵1虾=]玘稍;簮遬9蚢齎捀垡?I咜"nIp泃甁]u併鷖扟揢H LDLnM肞鰹艱鷬$僱_*镜n窇梇&雄W┸`鬢鳁?5XC崲L舘f耹v藚MV\P跽Y摫鼣豓湊駽g闤饹0MX哿脠噠a6dP6_Ws祣 Z~蚂愍uDdS>.bJ橠Ц杴腐pDg/灅0i 羥|MN液f7┉38 +9饁~X葽^TQ ~f嗆龘r頒吹鱜J蛓呏腴 p-嚖B帅 +{愱M 薔#惓3锬昚嚕'X%o偷*5U洙夞鲣3N2}w虉 +谢屒/ j湒牭福 +锚NB氍 !:/甸`裚迥b苘-頳嬹 蛊= 観椇]|ZN葬惁睁趓惬i圮`劶辄r柿妁魼6O|rJ?黯篺=S2.髇&褥荋-儃t>嘘囌}+莼8 郋鳸e鉼d8鈺]軑歜盒4m Mm聠鎢 鴎wbo)Zo╃"榉:緂磁買鐗YC堩&諔蓓=2覧3e^闺埢x鷥(+濏C耟S№KLg1g0蹪捪散賻扗泛X诺n'"酯(<湤F]儽r >\f厼:u%\D9 EE8詑滘1U.臭 揪7m览q僷$Z炇馩E/憯纙}圊侊翘X+軐絠 擾V*)鋨/.8N 邞1渱焯]雜. cjPE+R +顂矍莏<缍+D2*:Β5,6=k鱁鬠蜽}枈総誳敍ms呼v0' it﨎s箝韸溏H9塭圙C侶揯a6簱k'炣J枨~蛟I蚪&冄餰4!X+(偨冶 D剨嵂k頥yq吀%秱3嬉Xv:e +(#袡珍旛櫔+谤妲禋"兤矂a1嶫'镉 錛F?HIjQs鍏w馗崟 \:{+脆~砭[L薦頷砀*熒j街d_鬋8H4繗癘1瓇a雛;唚B_橀庳~e张N礟瓠b(0-wHI迉菋燖z貋腬.5溆,鋷?{E>庐譚~Y攸奅~夆僡@魪羛k +眱wa>\$Y筦~雕A1s蝬圃|#T7蚳懡c垓>狇4 訫}痚L湁$ゞ 竧迵讝向kh桛9I8╋頡簿呺Mov4薚n牡q冰r剤滬褅攞3莤1al8U筡kPJHHKH +﹦t 2Z&S)i6畦槃訞欼*51I闁PDb !羁莝d鸻k +俏R鐪漯l彂罞/艛^)%宗鲴s銥S%<妀星腍贯榫齑涑/I蒻:伒?-fO生跏F嗞丨挬n泯w"24U70u|聼嚔E懳H虬l杛_陮|茾=a葡暍慂抱姚薊引Ng"WWR蹓O.)鈇i捷鳧FQ灡蜨嵏溍輛+兜鵤睽纝r.埩//n剽腍E.T灬堍; )DtM0\璍No墆<廹U㧐 +]$黌動吽黍!D]u `剠[齋龋\I匝昛荐そ;苝移釐铵蛝,Z&Z觥 緲.y"劵笲酑恥qpr?e濌凋.\ア嬑雋鬀 弧癌$p}紾齻&eK]穂尫彉肒L9憆S7p亼挡¨ >1冮O鍀⑽ 凕U7历т J}-fm晌=al詌 $?+鴏(oL(玶 g'蛁硑&倿橼D@1埦?hiy,>]鶜(鷗鷮电扢[T曬x闤桩憡 xQi8昽絍i\{枛ZN庅"c榶;w:簍_[$刔52U[% 埊拷+~潤x踥ReoF.&擦j齫Y$q揼婷摋7lH/+c鲑熎苛\ Y4^碬0D疈鑾0艃9zZ uv8沞4沿!T弅任骳鎁o*矅{h遶/,0 xo? <提`梍m>埾"(O呋*筪桭盨迊g俰啭-光,]U:Ⅻ鳂渽"贤$耣临5彶Y $夙![a/嚱洂(CTCR5囚}S隿|插ケ$_胉魗*練BXp">2鼭碤9謚;OKE邅龎=?熐⺳3K婌]蟲衷?紸K%+樤o` 嬽*鳊殪`5y<缩7N軬1悅噡 且`j欉s}c2o]9&6懖Z/薍蓪m軙側 軶屌0媱FfF嫧巎y宯WI飩g寄鼣-棒橿膳z嘒1I惖 笡?闓蟜EP8>A蝓r tZ卟M爹甸齌洰b +嘣弴條G<惣 聤隩蒆j6m鑎o适"浱3继屧忞毨_(萵唆,禔悓鳮q邭Ywn]坕戢v阺盽M渍ㄑ# 闙C奄J/颩喕韟2倢R騕崓员l愆呷塵=*F扮 栚觘'9n梷梣滵&t焿>R槟毚鸖{5#炫:哲漈鮋笍痒棘pPRcv!DV;3隖BA罷礨岰6 ]he!顀6靦Q6籰3gs遯莛蠄3鏙V(\桱菽瘽=e炗螥熘5_棞錵&$6耫_p瘶惆ρ*J帼之7%蒸吐82祕,欈拃4?LL氍屚!=x驣q fx:F剎w#荶1粊赲棸i埍陳iHi檾謀4~o释|2梈醈&夅蜈0Z#煐囍豖9澽Q頿┊崬8tP_}>峺趂抦1-\2<麋呿泆忍xYQ踪濯灗倜鉠硖C#媣岯%>,<5儰p踃铑)椒耻吤篕齅韷枢$翋很傄 +庹a~[7啪袓\膿譒'{tk爱/卙訲蠔經锦#oqt%瘔t`h普AFG险0{OC奰雯樠5.HW`&曆惀;F璛謫;劷霾c2頼0玾%私劙eE歅!S栔刺剆jㄧ \塵铙佊穚),Q焂痕kNE$2W]7狃eem$嫉箅>u"0谙;蔊 鄔j|Hr鮛激坙硥@l趆 ,\"麞!8檖左 OEN P^黻冂 !岭庛乡5 ,iUHh妎俴6;戃2-冤週g樔纜0/竰Z搟t47E噺~D呏y:黾殠嚂56;澨忿膣u糀 H?誽仟0飲戛廚掠瘥i& N葠丒ZlY 蜔2x會 橋籿Qd+VK煡s測谯\7D皿+o鶀1溮 +颤懐gU1涇鵾6緷鯝A.褛\掔敼 狞隬X薥蘹u*l& +坊 m'葕袝捴6聽D蒮Q奆1欃鷭飊T∞釯渦2筫騱"窖xvt悮w;-(ye$ dA眫孶 Q█>摗_.Q簫忭a.掹=穧庻M艾5&0芸琎}+P輾&s.&{|_瑷/7曪珘勏p,K>m墪>恦0?v:惘灐咵h+x錏絔c渐I氃喤餩)#灔,>瞖暏哨 QK?0Lt珉"tx蝺3喘>)0Es]蚱ZS掊喦[為畋斕 謱鵚媒瑘\;3L磅渫u=/緕xUu鱇夸脓7D菶d8F\Δ鐛d憂嫰t焭&P/L朕港/|`Dju2H/6慰 +J7> +endobj +17 0 obj +<< +/Filter[/FlateDecode] +/Length1 1674 +/Length2 12391 +/Length3 532 +/Length 13291 +>> +stream +x陧竐P渕&娀wh=竸嘹袓5.!@囝www稝pw囙捗橱7;g蘅Ζ牍椎值鬪UO覲猨皥汣L2;gVv2刂耘Ib 醀dQ殐鍧Mlo + 崵#心 睋2q +磥)懒舷廈悇貃8-Az-um&&I榸騠洞芯=m 龆@;7mC  ,6@獛疾,^VY :%£bj6(偼vN@`笙`3暁椄郿4繖萃A{牐-厣轫vX:氊9空蹤俑罌騱@鰩7 7鞃L怃靌秝紋U晵'Ng悏骭緷纎0b瘭i1s+タ񷮭再lp;逅0;氽榵践~#硍唻匚騙0仏&庢6@'񘽽羁<S&鲻6[C牢N@ V7焒蝟-羦(l蛬紳懒䦶苘毗?0W犮kf迋01囏賦虂(l7.楚5∨- 䁖i蓿W矬縎烁刎(涁 ?{鸲hLo鴎俑7`彞-仄e谮倴貥;扛濆[wX8xX哈儩d李@sU俺`ab骎缚錤v鍬G瓠做蛨濤0M靥陬疦瘘硖=伔烗>洈Ⅳg纽鼼[鮩$5=靵酛[ b䶮嚳$$ /畏XX8~^n髉琩忪v璞巢硈迆沱瘬量袶蹤A! g;蠓丙O[O爨敆z';?逺3G欠a鴞Q? h唕壖`溩脇I舭Nリ沼9凳鍓凑i5実簺_ 敬Nw畇\藠瞹牴砘;喁[.䏝守G魢塱蚗/j沄y誃淓卹@賉 妗鱶W嘔7+旜x:3V襌墓%娎摣施朅 +皳pvK鯼g劝#g詛E1雠Ep'}艙凞囲 JO3|巑8秷m讝Pi蝡x冑悸蚼?-[e耥簩L.拍N3!0rQ8溈5珞o?6_O鴏,ta蛔l幾厵难湪w焨Wv6L堚~b疭愧醈 +9伌戦_撜%垮掰)#妕:橘y 膞{K7x硝怗呒税j鬊u; }LS|業(Z倇 ++榖=V査{鵽^?麛 n鼗ⅵ媠旈*韾"充>碗揨緃帇衭鴦'禉`Eo瑼k箼塊尫O颐g蒣滆=嵱闸4C 茦鵪膈錋:氮絵Sq砓徭e硵髞z鴧譻療4?嘃發X~Z朔]O趠!j6沐夁-?.bU瘄U<0梟A-f铔殥WLq晱薗>玨鯛洬鋿%#d\螯l剴;扢"\R嘝阪*cf蝯+寤卅V$*椬笟懋T;D抆尷  '鋾&E.揄趰鷺践愼彶桇[诔兗 K)颁?q<幪b┵嵄7#p4 簑`n以薢'V-朝E6*炨鋈鸏逸叹渏趴 =堟q z$vΥやRN圍>溉$憌z+糶預ゥ:锈M丒 | +\K話緦萊 塽臆qd叭"豜T^Ip嚉\朋 J韫烯裢萾孉J_3 77A鈂M轳谥V l倯b覇u!纗各鍑姡}#X* E 5B侕n-6:g丹嫆=儿閞QLd 憴*x晞>戁Z#鉹蔝鰔/V旨j蒏扅/G萎枆! +軁柸z^H甅ds&#&,f23瓐^顖jND拖%vG)!*槰欜 h縿滣槡藪.n縉.R通)W燆嬒垭8\Pr\I后:残蓭绣藚v琬{丹.]録HV讫sX鳲{Z*Ei攭w痃5 +Um}BY漙瞅莦賿1帷剨s亂>lr贛^2,P床盟Qr0C{舕;坫m)厒r4~圫拒煆褈夽1;l湰m旓覗"襦i趁w,n7J嚉<藶骒嵴~菄! c醔}脸)r"BE竵W褹鉒6煖Kw~V摼墊7齷廃l&0eU8鐻闌儔y"2舀x<玨拵]玜7a碞鎮J*甖1Ab東{擣,說挚嫸蟊珮TtO萾緪映F%g4&8焂鹣頓侼貦騫铄N恜疪;旟 藖VR辑孻 扃蘊嘙W +扳J!\磅 壙揩<~ 67瘐G?怏)鲉叭T 5嵬rj&袴漢/騡ytA5*y%飨沑7T棗绞擷UoX囬y莄A竑U蠫錚逋&Q<á午_鮭躨*u瓈M櫤:,5Xf9茚u鐕WiE箷R灕鍸9O返n擭 匯ak靁0卬煅D]} M癷豌蚜)+%寨懌噁k畡v騉h亰#っ,蜔鶇W紁硜q:[!挧1!S&(1疇殫p(X鐾城H妪7當甂燷(纩;摊*VaM馡!菄()汀堋-脂|$原y鬏<5i媘K軲煏%鴲私眻镜疶i'蜲寕鹋~[}褴b镙9)B=;絆偓 t巈U賂何鴉奪慸0H敫~/娷U]mVz犯E 朋舟鮎払疒(﹚巴賫腋q阚OP髦(預n閗訂Yl:e哺 Rf鑖i禮s琁z酬廹珐v) xn"豜&^7⑦n,k雕'纠e媬Y皂氀鷝 姤^恪怌>磊aU>f 53L范焾D0}_}鄗4侤=睭fQf7{1錶閐{K武;徻繶蓩`闆!x$I冘L?鏠墕C桼i踩y+"綐$9,登窅紸>遮U萩.Q葒4&轃~eJ壳+椛'繀?鹕篙颎Le飯仝廑*T:孔1-鯥o%:G?:_i*锢霔yim諁濋I裲銛碘^a&÷t鸹,n袇畁悝>d峪蔇忥袿戧aD哕翟礞n碚鎙觙䝼 猞瑹軴钲I硅drF-k*朐驒*#,筎8蕫Y庪'动]LW壽X訮曠么—閫涾s m|>aw)+屁-鞔C7鋊.N要:汳M憡v桠U砹c +犟蠊6 昰g逗瞸@1鲘[x確,tuy聙缐r猔盌@幂G(+A鹓绻奱K竩7u愔橄}t钀,,聞x!沒= 喸诒鷼L開 Q竎膶梿7t粖J靫阡&蠇眇滇tMj+架s^>.E5襏?俁0齶<8i琠艧柊陁]2徫│鱪析0- 9糤滖5膞庶 J頠w弟膪媅6v?棯$$濔8US顪崍辜凒洆搣朖 +6=A蛼B肼鶄$U=舏鉺佁l}嚲驝?[鲫B慀[拒>"彿)鸫*W_}::B牜9糏@邪繄腲\R .唚(臽-貁q<9铗债烵驷0f洈絝液%σ頹Zx3傝/循蚷O5TA镵gZE錚c#炬 .鶰'鬬q㏑蚕╣m榡霡熂珮7瘞圬s<}胠砆扮嵕RH;釴Xx燛?u5紵o*I幸t(致w?HpξV萒'Xq1A稜Bj mXa異qX)諺1謹'賟a 灀 O^(緯皒g=*t迦2拺钽#N厜8赡>j 5p艻茫蓕M灼AbK%'48簏晤灑/Ox4胺隍Pl4愴J-萡gw2 棦^嬔澣 F,畄梅9倞]邗郙孕M柘}梡:巂蘥3卆胔`美聪鉥C 7?預灛$r鴈_骗T 5䙡 熓窨覊.MZ姍癚=ヂ佭撎 矞"0輷&XP劀 t固橱QX49巖侖g&%釗+腔蒕ZdX&.g腠F_S崏i鰄矝蒽s鴳焍5O +}逦徚戏$d.-;*(綥0賂鍓琏糁怀fg^+贲c垔婂崮攈t,=秺X,匤搛:縕G!"埕b 9j缪褐暓)C哮8龖Y 貂鴓]!齎tQぱ落瓅#g廗R綳|姢<愜J:aHS F樘! #踆?跏誌W b趧'獐三搇秅{+藨繮粋燨幓醌皰┛Wt~更┰勦\仭y赎鮅@缝)蘠恖 +帞$?朲E!6壨狵AC#\\USb|O鄶D敫.l$`Yo癓s舉;$昰x幦V o齬*#荽簑關% +ㄦ{颤鸍浠7娅^袭4瞈{Yp9\熨擪|憽j0K诸梙P#` 滳捚論襣m] c槡飼Vj輙均蘏隳g錛'o~訓m "橣>S輱靴 nJL +叩K棿&窗娔攔"焻姏5F>X48雝M\,z0滕既Mfa1-sB嚎=SS儓聮Φ柰!蜭9嫊<蓄H氏蒚.8┾j4$廡6zpO鲇l绋D:媋棼鰹飛祙殗8*)2m憅齻幑>掭4J +东▽殑&(NV冂H椊挒蝡膿 +鱝)敕$S_N曙5'.3禍'槟賠烲鉃盷H {#緍薪xu~馃OSX绨Na+z婠6媲:⒎簵墎[6n蛉P獻 湗腆誑侴珙@梔燋 FN鴗0 薌$h妒C銠0桊黙 m ~)[g粇&FtE8儱┢蒨G礣"排秛4F鑼1諴d荸l韒4KMd撣炵蝂/籔s}(ii镍x粓 櫵╁縟6瀗"9'>軤8钯v'E杪綒Y趟蚤d鎖vR訚民级b扎WE縉姪&褱㈢xOe5M)^↑帣x掌:$HM1XA;崒蹸b>甑M葁YzD扻_搥5,1 椪57詋9:鶭3纔孾5贙】埜鴮偼绘che荮^55+>,葻@弣顉肈 .F顅鏁n_g毁f雓崪璉乾>cB燛G*鏝陟駷跣罡4半I窀 呆& -,p螂俉H篺/ ]骆^饃簾撾Y!托*諞1胵8渿OCL |H緪蝓5堟C醺麜B#5娀C}4凘YJ'蟢癕B +槄H絣匲樁絳靠.汘@慉aS厲駋9cM揶N:撦g墥フd弰l>瀄覑<旀+齸.F庪頑 菥跥|!襞^"]y }礈]陙\F, z殏兛 +暮1鈢\潻 医ū俓'遇"+5F=C饉NeL#.蘆/-6Q惙觝)逹j_L5鄸=★> 粀@~[蚈S澻渵縋-歮A邲lj燴<38G傤E;盌4`!G7鶩LK垤頭)Yー摦)縭+iH簦崯L歀2a醁O!}W抌籆焘e∶瑳?氃l鑘1諚婖f^m啂禡邈(K 讹_B 坜1敝L 敲靑斕Mh蛏憐C]&E-邒1:?H瑦N椾避85TU 蒖@獳X.Z\然w}b橧jv@蛍鴣鼛 趌::袣趾飤鄾翬)焭L*袵Z薈F浩腓|蒋萿eTE耀壥G5淾#iY跰翝+垰8邭BU;p鯸$"G胯"s"k旣O^蹗#3炾琀>;鶕醼麯胻截56尸胳O L辖画rN朥雌踎VUzt颡ィ娧A垢>y?齔馜亅pt临<]埗暽踫细扙O袣篯鮆N4埫刍幞,>蠕Dx猧fc鮏#覉Wu毒//aX⒕鱵竔儊Lc誕ⅴ桴酓p8讆橻鉷緁嫻<覈嫭E>D7暄!$頷+鍼袠繡v鱸5璒'Q 赟鴗b閘諹B抣m,囃q+降L┹蘬亞8錞e搘篐漽"頃95[0y蓯鸢;胠#q雍J课A帗{ydF/砰無畽讎B_痯k兄Zt颖]y塑{vd∣e`碒J^~圳 f潠 1倉鶱o膭鼭Gmg;鄒烓魿:┽)t.缿輄菎#~鄭n╦︷駧 憈鎝斃D 咗惃3OW哑釴浻Y1债狲櫱h!銁 Cz鵃浶杗掺豛( x鉿>Tv]蒇编D黳9檛糰援铢Dd) 系蒌o缵猛B邡饥4奛E褯8=89椯燏x6戹>/哂X州U岖T聳嶃=LQ灟7捖橓麂zse 9彈~阹p婍峳P[怞4娼"9)棌鷛澵藴訙p籲崟=TZ{( +恔萼Pfkh嚘何S郹T. +u[` |眃?|廪 陜4间R30*a誗-s 霾齬 $y愊_v-暈 K{_)襟t暒岴A荌烇鏡X諏e嚗$其wum呚+q薏鞮愆L;桚佻爃Yz┧b?˙ +缌饉e=陁!觪離3鞽|悼6正`C帻}s^蚰邆妘!豿v~矠~<}庶訯╉x笚乧焬綝"碷$Ra8埀T榰粃瘌%聭楽Ez耫) 04!輯嫋襢\9煮@漸C闺铠1菮3熝n斛珶fe=7P╒O1忁璏M显*ホb鶭p厂(谀;W&檢O邗佐 +6vfw;幆@(澠夭+荨X,嶒靝:Z鯍$□?ю钗'!:鎥L)v7乙`渋Z氍舍膽鞄)侲蹝P`U欚k0T肉ǒ[9wfJ倔椖{!梣1碀' 鶡z鳧< 馢U$撠磂,jOHY >2芳H灦簲粖>杆o牚?蚞赙窳ㄜ'L皺邥嘬iLc`惦r琧-6僷洍+眜i詽b榄G杌N R譣珑鹰R&w2鉹IWO=g 9佘ТM^'党鞉7~yE.]溊/|i$銱芒)2>嬧喗S苗夒2岪;笏郸 9~掹揫S荹(阃9m苿蕜R"驶橡`)*裠居鵱2T;焜貏G#瑸qの'乚圥祝1F=_癊諼%袈逈3ǖ+TN语剒j*郱绮K蔔?穳F州f樾缤7轖刉;鐵^L䲠tu@Tq進5_HQsD甎L%苢i^l$3@伨MA呔櫀艒a赽8*{蠪閅捽 0A已{拁5v頮劬鎝0d匯M#鬆匽4鬾黫qF濝2:贖I毷2虉暠a佘裠H80訊a 1垭[;軜帒u(s2k牎冚 酴蠞k蒆'┇宽搒Q廹鹢4檹91q G裱u 沬F緘D +4勸3䙌j瀳Glzc鴎`1㈠zX閛D郕kIQ#=鹃F 擼"`y*n唽常Jm︴H< l鲍澴YΥX睝硚lF!H鈓 欅瞘顣T處酠哸)?M0 P9户鵍げQE辚砯7 m'"侎D娑O7o爼喙辑嶌絙铀m駤浐蔁ゼ沈"歞A-\[俵p?zぴ/|*0u♂苙^'{d柈y.浻Z膯B鬀冰8&d吊脠椾彙m㳠1-鏂鋭檣.卺抑嫏艍O8藤&Y<糚8懌4嬉&Ge幛]僀V下摬钉{B'朝佝璢猷*諤HS郞&5盐 &U 斡F顃刨銺Gi觾u^%觔z寴Q枇<瞫峭3椱奅r肷鈩Z蚡*脥擭餹騪箨]A!=ε抓竇m彑x铢*{7婳NX*S*PX1焻鬲pら$繧舐gw ?&谙L咒g轣x埸x扣=维衏>}ЮK沪鐚P'羐t&躉y@胎詽<.Y鑚榾z俹Х5塴に;5だ蕳v2!s奡傠偅啲聎岻/D&QG騫饚嗞F陣D煬瑷觰z./Yvg珄鉩 @@妮loc~?Z3<\s6纼澀1(鍷V秨孿V琗S鴶J敹 74懻J 1t$^袙V0=~X{龢8答曮頴I8镨 +s*Xq靣臯1O淜JZ換C3飡Z儗@;橠r +K板錉繳熸傃桿雤緹n5kBe旄洯寘$G俴Jm孟,56腪醼{FcA憚銗U藭ES飼V芅r樗べ覴黃O#臚弘抡xvp簏哼&}'炋横脨d葔絩銕OJ艅k凚犔彍=U瞟盕撜2#辧h蒧 \鯆E瓠h+掊鋎*摑L隦;0D匠&L>0櫏#荋潩橌/#m湐伎繋0蜠eyRe攖'紦續菜0咢o炭*耋"鎻M煾銨讉i W3h恄責R蔫禍郖HJZ妳h%q淕扣x硕塎n倨G m葀B歙TlQs0Т闖6x/>脓<游譵|4I韷妖圙醱疊%,!晙s盺W耈准+屵"笳溷促&皍%蛔笪錯Yv>夻<众p轥鯓緻岙*#畯鑚KF四 曠 'Oフ--U9j%蝓 馍蹢s+&+獠裛伬-綽:{暺髨??憨sぅG杽W[理Bh]*鹘秎 茵狙/獴 +兢5#揰賕 鑜:T礱悮捭Q昤鍑5y謼洯揄嬁?亝案肑2蹳鳝L 帹邉M3豗鴭C. +攼LawCjU|v馯O圀12拷褫*k豮鼚 Ek3诽w(覄(LF倜+$4fm孏;勩tS/KQL斮v鮢u-蜃S摄1俟壪瘖n婔纍k>3醻?幛嵗Q=j謊s;佀犤鳙O,B+鵨b轃凨4鏆0#gD9q鉑趨5G菟G*∈羲涞袝鱷层鮨I黆閸w恣"洆g e鬴55椩v俥Y/$'\泺d謢%灐棏k滤娽庿絶>B槷[D{,>9*夻U濵:絎韽挸祄嫾溠僀qI蘆9U赡綄fcH虙%t淡摺↑Cp貵1罔s披恹詼酕"n<gQ~#渌媊烣B哖喾F骁1y 梥ミh洧i 鯎鯝!{ +欱傀D鍯噯)U鈀+L畩jUH蠛儃阇弖F^ F槙d/~祑^L"梟&XF駰%賫]籈f]祣Ne鐣2,81V0(⑨荄\敾语n羄┘蠒 奈绗x窊AD嘪輇牌c敳藹92&v貝RQ皱髩孯eBlCA唑葺籨$ +.7%/ 逕薽儲Wmq L?-~5鵾y^茤圛|祁飛橨邭-斗.紪(/R%歯媽PhOnw鲫飿Cb! 蘢R.ン鸕刷孉欚=鳉埀邝幖8歽#煔璪f4頏犥y,:翺0rd曒獙D鞽`K砋: 戬-4;崴?L:q嚄T猍蝮"煋uCg蠯昞yt碔迤S,洚苀茁奘76E崥鶳刭8N e?U~煔"嶙BR挀俪淃辈"?薟钣;雉侠3*傞主.nHh*A,婑亡f(Tw悓蚺莟B\R?螭~貖 檵滘:u&廰劻耿咲筿⊕室3:F%檭~C}奢+/R顑9觶H燤苣59>dO苌韜]梃!%綻梪w=E盅曾幸稆溋蕞3)煸穸SKlI鷜粲棢 R螲 縞-DI5w 唓ウ跧W髗 酪.T杛鼈>膹攐@讼u繥-5@徙k2z氓3 +雿ㄨ>B芫筌#疪>迹Q廡掆;R}嬗[撥b8A3X殇膄穷2&泳S鱺聓@li< VHq瀅選鹭^XAi碛爑IX杆蒣+[卅湘@鱺齔%:濊蕯2h$9餔m戍j匀.1(齒胠鞯鎯蕔筛鲛g贓輖ɡ衶5仴J愜Y貺肣#Q[肒H鷏钔;0甲脢 觹鄋萋锢['鸑.eB⺻X/勠挬 +5Wum_倇X磸烼劜烗邨莳癗|?Ay.;铁N^b'彝娾SF'|緢佁7%飩摀 愙"獯獤%qc$A勮A墢服薝#2鋫RXtT硲蚮:V+2魛泸晗.-0n:+巂6 ;湓&硫歎-氽];/勷Ms歘烇aB媰恕R┭ru敛煅~*鹙葍d秧w缥+j*颖m疇驈7:M>>!I帯4]<選狈81 v~Jbq煡f9鐉(悏#橓|G$飖瘃吤稰fo騜┭!?曈Y槟-q鲋鯦缤複捭 垽糅7挠䦅"Ct 库渜]#i妊扨櫷'忕鳢荴擮ㄇ蔶蒸霟s镠唧B邲o╢t[27媝~y喛穘%#7撫宗3.M虸躻榺05y&gk/~鶯抺剑]仹踳∶1R{衩瘻吾楆2=0箞鹣崅P櫟oi彁$<膑 樛瞕r藂l舥耦 % 术.筸!帙zb二n怭;@M妉飇A懲k櫈賁爽钕 淔夛T渼m戳矬RgJ8(墚 7o囕誢Z3帞& *:平R,i>b鹦湼h:#疄G幟岮亖少唏骑8睃Я䥽9瑈N鏾鷭0!膰hV 犵D駃K*瞧.轌$I嵊e讁+櫎☆笁塀嬐m搱#遹w蠫/蕯&啴1O:调紜/6v%]*g1h[[q虺[eyt壹錻v豳Kx鎞鍫O沛g?莇f睁戊葑k>{ N3鑥-怽蛠擝-2^0袣}戭猧N;r嶄.A"稧9稨M彽 2擜馋Ij齷e诌&傡髗ω[$[祝bE簨裻< +/扇鱩uK {"&胜阵綊$吗殟I +'示F醀俩]懬饘POM6涢*紼靎+讷(R)卆,i !骝詍W;C r貚>kQ証M肘敭嗣韧K$MO=/蜦[^]`П歟慟&T猌uO_k0喣}!ooZzF靺摬轇鳨/鷶2e穬禉QW腔]腷-犉?趚Y}1%垕5Е#JdW攅~嵂難)鞧掴>忺@8\尓kz寥F3蛢 <~?挐剈呩鞆 +F喇頓{覘]T,'n轌0R哫鸤騕w喇{弽@搇B噆L<荖AB遺欛[]扟呑з迱|$鋙?0c#驯籩凓缳K仚 心bk鈎嶒A焴 +endstream +endobj +21 0 obj +<< +/Type/FontDescriptor +/CapHeight 850 +/Ascent 850 +/Descent -200 +/FontBBox[-168 -341 1000 960] +/FontName/KXVUVG+NimbusRomNo9L-Medi +/ItalicAngle 0 +/StemV 140 +/FontFile 20 0 R +/Flags 4 +>> +endobj +20 0 obj +<< +/Filter[/FlateDecode] +/Length1 1658 +/Length2 16021 +/Length3 532 +/Length 16912 +>> +stream +x诂篶xem&籦s哦蛫+兜b妋鄱瓓m鄱*NN竭谆w焳檗?謚蚲蠘肭$'VP63娵:330,l孿湐靗潇竐M,屐p滗@Cg ;[1Cg @hXX誊苘pQ;{wG 3sg暘:5--J1囨搮-怙+汹无h朦7保2p6L-瑏QyM)9 晞*@h t4(Y[d-寔禢@j#历睗瓑?91鼚%08-輰侖ㄨ鯜G 'Э '櫍…筮8,l嵀]L餡nj/@鰩v-lS皊rv2v窗w &䁖溛鎲鋠缠貦43v辋嗼玼6窗u8轀蒭榅8賉妄7樈E縛8Y貧':#刑醒桎7踢t?/谯[僳頮V儏汹帣錹Nc缈雇,l)[S;3涌&.:AT 鮛&v吨)濗邤3H䁖狓繀z锶/楕>仔.种r6噙;饂,酂E鉨q1幢皏s株背6:)g每-5鸎 涌Nn@ gcs踹~齂甹kt炊鮛-331潑箙睍?[5R/饘2j猨涘鷒K吙S喱鈔ㄥ嚌<GD奈 郔咸爂ec䓖"怄`蟒咪黈 <0tv磒h-湁鵢忂瀟K橈镀v&虓渤…蛇Q麩窛厓 PJ靜X樃YY%5vqt;Z或 h w籰P蠫w嬻瞐慛爷~i櫹0l2帧桯xk*f戦荑笗m驜怍v埢q,魭f鐙杤薂;z烞n覶榐瀤Hz悿胼K欹⺁摉0蠗駔9窅V轣什'棷愧槄m頶+指泓3 勥潐:藮怓洣铊/t匕)繒錱ク <<虷 4+ma <沺T:焜42pi ;屢}髵8S2蛌綥2d]d5磿浳{/:Gε3B-#@运)9锖諕逷紕姕珐闫诋GzH坠HJ!朤'塵歅>4睕~# u┠塪}c閦ot鴈蕣5L&卯JTM +9VQ[0旨嫰d鄯鬬so4(~擲逞? B惥>鴷0澃婱硋!UL甔8文0败頻拋 熝&.挚[眗U@ 罧$ap攎橶捎陟慤扔蓏+3榣4^RN銘检A霁檬弤揪 z矌憭0=抏J鯭9VI.粷菿蒂颍噡魦曱戯W嫋拹$栲Jbv椝km鰼6k釒0;棫/畄e淶r盉鞱Z 碁晫z7=烰D]{eo熒搉甊}坅闛8 忊愷$∧鵴|黃F!倫诹)牯G<梺w侒3綵廿@y┯r4栔>螲o餏V撦w廋Ngv瓗|釿uaV觷麴=軨'%駦膄 $%0P§26籱焣o3zs$鹂4 ]氲C汯5璷A>衝貞襍/-3卯W*%9T≮I{畬酫 ) 犓D% G嵟剛 峰烄>$紀^騊坃>)"飅k劝wo沴r煢w嘸渗'眠)V瞟J慩;E=&{鞿M蜿8j镇紷桱 +艢\挠5丿Fwy錿腩u;櫌韑縺9癪楳],`囱E~^烂凶圇畒}遢Q)YM'铍髡w,C*z/辨 dU]S&CC;L嬏]侲1kl0O嚠顇g置)fW \Yw}$达噔U缱剆X娙q<0孞(廚B厗%'r`逩YHQ軃绕2葫粷e%奋K癇靷 Y丆.@ 請賐oか选?`{?⿴$览#/ 囒幩镰 惖 贜f 淋0餌汒Ml)夿MW锳YPF浾軐_5,码 彊3l$s睉(瓃汋~>惜1铺桿鐠)*+c`"U@(廬礲嫬``*髕狶痬6懬*7輶檗鵵5K"貴-慓4(y巳q唿>+块娮⒂爔$3:苢∞眅芣骃n:柬隗鄌lU鞖3!嚘YW厗<韖%% 菳f頯E猸_"1棵-硣n颱1X翟'鈖ZfWz:7D筚&U"d. 氘Ze2淵%浺`哬篕贅!9玂悸鲆惒H祗ソ& .$婵嵎wX,桟Kp_cj糂抨縔怙<燠詖讬HUU=诡qaZl|結嵕苭劾G~Q鍫≮:阴燓鷔纙狱栌淛` 4甶?娒I敺jO孪澉I匵%_绤T 唲:UB梠顼泣h$O2?齠雤苢=vh9郼)M罫Tv伪@qN憺F1-胂-i蚍旄'5銟よa橥@J├Y贗攑1% LI 5!撣継_D坤斏彮5M鲊瘕嫚9禌䦟玅8Hq媹pa弋m彼c佧.\;)烹Al閎C僁 襾 +Y#蒟竽洞a徳墓p霝<那Ga*鈶晛靅游es$Fdァ徠ru蚁怭U[鲐螴1X牘M%0$a)K2缓"汩梩荅1~``ou&庭F豭攴匁x柖餶A}痈p压&岯b)c䥽诎?趺]龌_悮钊1;洖9!C 茸3yGb%湨FBw蹱皛-1昫Д?5;獐労輛踂2yp庵 褣P~Zv1FgT`_?齴 瞺攭X譔T/瞮Xn3撆時裺&m!J%zwN7澲 晟e鲌礀.o檴㈤DD辽圤蚰枘猷聳 塍扟8?桐Tu8輺捻乍K锳>馏密桄*7&滀j3謚cb +j-桃肏粄⒊鮆髝獍{蹺紪椷}庠HHaa{C饰+5"轛穙跥v脴<$歿馶罯毻俦R恦)C8U嵗雛芳痓碄魼酵cS赪錶鞺u稵廦k:镇锹}g潕-i_鬺!?&X掼韸岵忑廲⑧Y.誦:1enyA寊t T橮铙Q#砟I\|e虝A珸 涼餅梬'j淣頾阸瘵]诽G:q綪読 +巾3}噻f@!許鐶m溱.鍕T>)玨1 镲-|廁al$)hd鷛N|X蕪贞PTtV5x眆肗 +rW襼谎Dzb蕝勀3醂p:燄胓冭[竡W乬湃u:皮陡>偲e]G锟洬56糯镳轲鉇Y玣Y%+n=[j贁\輈pC円 l4麐鶷;.{綇 焷z塖萞誚 >衿9f煽倗矃c>+岴5 k>*<^{蒣n讑;3:w}$$圅a捬'鐈嚮(V鲼持兤拄5蒐嵘%&禉萲殄 笢:鑉白桾跄豣劰顽=h8铒ぁ"SJ +聒 ?峥U3Mk萫y;诈/再u Q錏b踉!鉼鳑!` [%]^綼槈?a6Au耔#VF蔜y迸楨)?fr剜F3韶D>‐祼8褣_]Fa胴0*.嶹盠屳酮l⿻?S簽u*NJ粒cA℡i绦蝜n7:覶鬻5═鎤K呅颅h:刳p|'壊5墸4{n挮4釯1'晶肱 嬖Q1O!o櫖7<紶 B蚦再綐]P綶从<蟒┇鷻b0蕣L~C4<;嵪碳蝻"B玢%乩q?%鍓4l觘缥x曉x9謙斯V#5d颴徂斌1?嗕琋崱踊跘@翸V蚺&蚹飂1衔諼诈0寋軀*煭搶:1:CW'+;部毾箽;0tg\汛駸峬;蔷/羉幨>W蹭骸麵ix/O慴阖樝O锽ūd宝o覄栍G涠6憸ё[霈5ueq/,8蘅j A 汵Z鉿糚=囏蘳錿羇棼:Pq0:瘦銰玬B塤<鍰4w髏D蓣靄汙諒^AF鷘ガ蟶.寝&十Z+唥髄I跪禋<窣嘬慉q犄^傳+ &\锱/Ly +w-螯qzb9鴭"材D+O)鞓g墩Y兌貂机沔嚐餎裰|橄Y伿 頝嗧B_gY怯Q-爄対,6q礂攄 “,燣斅靓賵!栈PAㄟ蛨4'9蕧惱'9响屩rX:擞O,鶷X'﨟愯$酘4肉訒卓硋僋L在兢 @M!b笕Jp犩&⿻H@艶/h["0hl炄蹬! 模彡0\)瞩}hJQ鵢鐪S7K_!镕DpR忍_6lu疄*;室1荝!nGqR72 敽r餫旈噝$(gp諱, s"wy"=.y棳M)穻詉爪8嫾\8诠鵤5俌岔 褾6,i煛镂閳2%-c 賗MF*M6惮"O嫶O){h1扖vM家膍麻XL|E|c舱蜆/靾曞暔0|族竘単蛂埕,铋昗卭o翴 4H嬸Z*)L箽lY8鈡pU=额遯cG#恁眜p垯榀◆瓯,r&VK]:鈘妡uv `R錻z杵溴⿱嵁YK塝DJ/霨耇\TRT娎2a+搗楲U驌W2衂缩 刜髭JM>)C)+挘巒穊贠&Q$g廐8滷考4>耼酑闿薣hD]G霆P鯅嚰 縦<靯3?驼j饹^脂F箞瘶4[蔁跃z邤懰錛囘n嗒Tw肬";n繴人vDvg喥[ecE R383<覍頝曀'79F 轀/W~Q覟罡爓:赵瞱鼇詫( yb咂塛嗵5D3*绑P o輰=`琯n烥 K戕吖鈆銨屛47譇^}'■澹t)j# IG維\3算炋IR蜤!琺轨薁儵5鏅-E睔婄蔑?ShIL堖#鳥j 褊頾x樭挱Q0i> L`8肁啞A9p吡}魼藻鎲:V 矟S*崼幞賈鼱6负^pU-闘T烫魀!$g秇 蚗s碡ン`紨Rq!甘 /躱箋惒m綎宋Q鍆,;饣葰&7.蟅 +7f墁$a活,灬弧, #秩賏WA屩捠 衞8 癯嬪 ,(vN傣鰵冬K}t9KE6琌jnq,L腂Z倠i=嬃BNU捽穰XI皩撢<`=σM鎡^4#瞊mjA俠彋だBE&0憏J=u颧┘沅шv\e 莇颐r( 5n.纍蜄/47aF ""馛徣 + +oz. <+褂齘穽6w:近綷v?y+#息`%GGg鋌田抈陴Ul僶( mrjY鉩,=蚁眿;b诂SDM%歛紁閒f毜IU韒i枃8喎橹m<乙H淬孬嫊∩UhL缒蔬^f觶惺 殞鷪礇妹 qE"蟪鼷B▃新鞃氟溍6)[掳+.枕M'摦y<[咳靔愘Kq6;EG|塍鈸噯汌f1罽俏鯁S*槦 +軴.歲<>芤裶塝EC0衯;k-煨桟c芘俍e扨#-萒额禁`;$&BBd`(v蕢 轼舠\呻沩食-|(}犞73<由姛pb躇#CUv戱MH?&w@M麑稷1X乽悦烖6抡N-~I}mm伆穕Ob(鹣蓯盐h餀h瑋<巰鬫擼.Dr盖て>v5甶R娉:\叕沴{.姚g烐fQ= +(骊Q哃|Y/5u縹闼Wi稘綸韼}u +亐/伻硘 F⑨0 !@;k陖淦|#Y{灞79崘弡Hz\莫肐l'薑峛'a屇L8瀥楪[`h?涉嵙a4迕g=X:*♀pa?Zy伴 T朹C蔲猌_铅m>齓+k羫_廼恽q<庲XD@z盖G橺#剨薸%猞擯:岘`aj1湉V猄箵 桗棽焌6 47)~w祒!W-!%2昺4q蜫k犐玱f8F墉也 + 匼L*岬忏#阷mhJ珶N朕r甂疝ILh;k'沑飄<摗 k晪)怅缱坡衒QL箟`XZ巛穸[z躷`!(58)柲趱BAFq痎尋;撦窋"澖藁襽G;鹇b?~*驆Tw 鰵掱5K矗>钘1舸l伲粅^; |p鮗x徸恁 抯d瑬釲呈豳佸沣mZ:R +7_;*飍e恀姣%J翼{$:|58羨#{者赉鏿冂eo检峱a皋湣S)?LpJ裊Z秝 税衲S蘛.忋厤 秊hFc紺"毃嶔恚Dκ荞囎Gn%奼k3鷎堘VQ点EK#佁QM勷8,+1?,碲3=縸欱桄V~Rjィ蒟攗蕣鵄Awju萟覸 +G$/鯦鱎8 ,俢ぬ惓笃p3}Wc9BS娅J浶氣U6OFW,r扱佢盂w0唒I% 摺g懰尡b礴[At剫QW陪螬8邁mV, 3壖lrA5鰂嚜膁拗ik_賗BO4喀%~鲤樏怖-耪 椁釡鰳懝冼LV駂 /w0鲇周秹席景蕨'馠猬~犬癓裃LN1R鳱藓f換⿺氱"g~b髋9d铑旙+0孄徬:d漷迫浉璩黮I峯[蛅2 =普騌龊筠 4吺细Q媅褻泝偃 v鈺禘欣c驝羸監孔偕沐]瀺羌n%蚍]:翷玜D嵠欇尸3XHyr 龜稔酑"写霹怊&Y竓s颻|嘚nj}s枛y扛e珮躃锏徇x铏弋哒━6y_n !膉餍香洎 隊Q滑叽$銧譮:爥s ,"f蘁l宾`╜-eZ閤 儌2泠|_汱1噼u覟(嫢澏c^t/ZCH 堿(`(E桫g㈣锑姽9磹謢KM罦鞚赴u秜q .牻q7矒k鸉瞅*8谼=]9}9}聣9&'~,w`2欔'6蔨F[抛損躽V,'7靿^F~⒐霮^ 淤8塬0ga漱K盈T鑶炙├{7輪偼劷E頍3Fl墵 Ks竞Ue$?龣螹虋6=LA睈g&蘜梠*F浚"2v0孄*'UL靿6yIh鮫瓢X"]輎殉l諴2棧鄙泵劾b媫h埝s鹠:螘梣颞輊f-陹 r馱_a?騿?O鵛_+~d6\9蓦瓒 |FQ缄35S塨債q$濳y榻瞡部卒:+dИ8a苯`_ +綀帘~)ⅴ嬣0}0妰扤5N煼K錻夝B蛬=潊n嗾舰5#娏|驑6[ aM輯P 籪y猋YK符>i鐡5刅抸p蓼榧席U冈U寇<錍廥欌(.d悒@噆邁譣T$鏘脮畡)t憄DZ漊9鵬巼w鄬胼:96严駢k辒駣嫢溋}審oAI桍經xF泜v弆c&!謤普袱g~W#倛eFg3xv蝊稑cF劇鰤~0::K_ 6 昡懀d傊莶q8醿>W膌uJ鉋<#鹾緇觮5t劆*鎅詋灰髤-充G*r/JB0槣7敧5暳犛Cj摻)e-P悦衉n莄/陦n2晊D;Rv胬*瘈@阛豮%拂M瑬2!J}旈7m!Qim.デ騦! 阳E黒]91T蜊焧櫳,EX_])g(櫯瀨6C8F/&嵦瑂鵢よ饀;M殨 䲟3m{Dz<俠鈟Oc6w憖6◤<師梢痴仡g0壍!鎲Dι酶婦(捨<瓷*`(钒nQ舽Yュ鐛&臬>! <5 +4VA鐣U庂4錋'8鲨(婷幠槖b齆萬驤l!rPYo椸o那踽 虂3礊#崭E栿奰夯偾#绍蓵犭鰯%wXl挸泍鵧 )榲tY蠦x$e'糬A:鴻M炷勉:F擸H刮=1g7%罏狴筂)#6X窆)i5c]註F緾戭)祫岈Paゎ氶罴 (2O畬唓聃=菲圇e歕坂鳄> +jO眊~醥苟UO 渆3+馒-z藊?扈╧W#姲A笈6U5享9匭*圜8Q碩m氾J6 '燪遖麌?>來u缵f蕿Z=b<艈;靡>" 鷻'薼6_夌 G冖6徒赑h&獣l彐[)^#鲣 Uw欄 U兏2EU鴸8應閜洹4D馜9X洬)T_痽酪Ov禫wF懴岣 梘^嬆噐覘&猆#1 L觻o +?+BA0q灥P冟8^06鹿57夋K,旁1旖r帆N観W4U幐k2лqb5痿媛摟呩S脚遨QOd箯60X潛鷛~醦餥k凴w隦体M=Α8b逼@紜|%娞穯垙+鯯<-鏷坑 #琂 ;%86CU粙 唬旽7M岳鴪蘰4c滂錊W8僊9 񂇥薤f酂 9\喅铨=洼&If偀N 櫸膀~淦@娖齸誾風樷/损r帋$b 㑇龣8寀ツX赂熇呱鮰叙5XH|叏驧巾掼Y甕:3襥X <.c?9 l 1訆蚵閫膒:薐vo/^-c0銹|鑰礹0铤Q%酌簛欏娕+(瓌q旈踚乶道'鈃9;疘m鸪#愡垶叏1I$*Z檯蛂潕粣34U濉$ F9_[9P{m?"屧騻鉡惓V颕蜑bQ稂2宫搴V钾lO%y&9u^韼++*鬮魣谋逷 滿殭蟠,N靘i30簠脂%誋D?籹~爥J=$>;嗯紀n+E彗鯹4SdI &|溛茼u`#臠0炚4Yrq0媠秱霩嫋鍊咯腺鍐藜EP/滊F8傧鶎旔u' t7 剛3a #ㄞ荲踜13厃8N怾l$徱Y[y潱)饩幚媤褐长罵#dQuS炐sd{禤%蜭始 \2顷I隺牏% +魄F邑 <9"y挊舢鬵.逧 w胨/晼yp{N翸_坥鷽c僃玘 +硰ヂp*4兘乸k鳆T S趘x捧Y雖9案]焛(螩]厒5u羫j聦$棒}叽3-*灄紓\秓Q鼜门$l髊穨y|鱈捀鉶0M产喻坔"崽鑘凴,>J匈iL挔杆)眹hx艶pr;胭棝耸1'伐鏄浰m眶泖蝃辈uMB#酼帉28s儘勳潨擄0r頌e嶉僫t镐Ti薥y噐2蝽殠0O觲I3椕x:鴭摖0Bi頲q2﹦蝻檦1鏹65T荀lH匯搇醶r俺l锒撲儳![UV僣%竱枞n$Y>巬G2BN +J*丐+狠9誔楴*3薂&梘R4軆w +畝d9W #7 慪 }}郎D繣d睙T縂伛=氦b摯 f瓴[氣V.0x檱>餉$x鋭F繸3伆範/ШYK孤2k 篏?[)'b愽c曉蘿髿A_1} _瓣鮵| _oAmY磷!Cn!%r螺祹F6鵬,旫7迄`TP扪泘囻H穙z >a|=箟/<曾弍廎E 閃C|笫怀q蚜k暛 +韼B+觧R4朡E鲜T8A:冓縯﹞摩~靁6沘"竄vs +芿Bu绐|垡覭x丩憜鐒搦Vr’x刐b耛嶮倜z鄞6冨zv^N鸺)dG欒韙M_+袮鯯昦隌顺櫫液迩 +嫔倐瞞鳚\x縕履祫錏淔緿㈠\B'C琌喑峦錅d.BNa鉑钭嬧较-$D唾"鰩C&X8嬓鴸瓐颏f頩會揣橶O%X橒:!/A+堼 >JSy2柣kbi雋傜紛''i2释旃I+p甫4ujZ#]I慊h. X>绺盍H?潣& YS? +騔 榜2#n^Q{魅琒'梆2>黉 劬踵蝒英畂侕N崇n涓UU浈Cfyp紃糐邻熑"O輝 竓S霚&R"u畡A[+骕恠MPl羋(祮e赱fW樕紆逖躆蓋=碝;騽X茱蚅淏諨孨7C?"鰽聩?>@(B鞟J脕l蠵蜲!詐躄*.-( j驾 2ˉI羺疟=唵㈡丛n闭遳f2齍殙.Cm螀趨zK章妼勳郾%}E擾鳚,WX壼2h\[榦F洇靬荧;塴擇"E)7Q#鋭Ik顃hu罞锓#8,+m瓟魟;∞8艶恡-迾墶寨J hc彭m4屵)风z`q7C蔬忬r'G0J[抵=闼W祬僌hpFu涓C相錓琜gQ荁吔,7 +^,d(磛.L$潪悂皝皣r→聬涙qL漥 X參櫦7 枺鼴緎 hv臄司薋9麛肁J噓-&+u蔚P&@c譪瞁勪6侞Shhl|08綷 攫m泟所 +棚龉鲿7瑥:餥[疵>陬輶2痳5?懀踰'#N桽O等昂颎,$:炳硎搉<&籦頪=m憒;P窔笤褦讨:噯p玴:_`?$ cf栻%!媔}焔{mrl 糋鏦朠 繳崢$郚P?薔糊頜鞅y澽譴+mB}椰懈虵峍琑u邒抏n籦#{g耻)僪艤CC4L嵑識Q) ㄋ韧3}菺伃Kwo嫻NZ5# 袽l-鬮袻&@擀%%(2 0済5\\y匬窥絪`"鲽c>珒O笿2黂n}妍 埓':﨏喇鳊送趫-u/~葶7Y 3哘敌NJkQ斐sO羭l<`扣鎅#-7T$‰黿屻叏'a塧 z摨ˉ嬤A#霣@k襌鯍暾1X/[媫Q刺)^桩旬V睕f:証B乡竁$Ljぉxu#J蝍恵 z〥(宫磹组憃2蘸)QB战pT鏄#~庩8炊燿Oh罻N r吓薍e=麌"蒷H]幓頬鷍ep 狖+>祈`〓X"+y 薯-5騶骎宔zO廝靾鷰轊q#約#7扽g/禣n!嵉骖圃瘁r36瘗敤蜑tj﨓%B:辂;Y対 客-硯醿殻 眀驲I蘽 鬻膐$W@郼塮⺈稡糖穻^AaBV嗓茬]抱!d珀$緭鹝繗&ァ腛⒄ +,>(y橏;b*广,:熟,実听泿鳃hk@Lg5尾牲 J_鹕|t=Ⅳj饼記&yX'器# 0y;丶鳰 藻N%賽(鱬cuW鸯td豥0$4}x迻駾來dA摌绥w殁蚦骝卤舳泬4p唬/S+畽\轩^}琪擤Q'jK= 5酱=儙5k戊#?0俹 翦c>腀.悴U退葡:桉芀6籋転d-塢)訞T' G佗仼筸鼞妑,抹K蟫艵翹阻L.F眆馭78'歳#I^ 靻.UA~焟iQNv丛婋A!w丆+:+oE賌跓軩力胂9~ㄞ羕笳职4眞籁7=,竇酲!J'圞D漥dm%!翣=櫴#诳薧騰湊悢3Q肜場cSMO祛H5辫{曋ァ0規己5灳"绂P湞7 喱 ゅ餇 +|n\噾槐 ?V壂姬媯 +TM猥∨*隸)1}牋近刳蛰€~郺佶'猋柯j捉&淳勐W萸祱瘇 +K互混″[F腕幝 玱3A韈`鬡0惀護0螳$ k+鎿Q轃# 类q挹顝摵厙)屖鴾韱硐b脌W腁淛:艫墩TSSLE峊"熉7粯k〕,0yh廅K病G>┊W茁#荰宣>鲣玳o)6&|J惡蹈J槪.55覄v.Q:饍# t豃?`诫屠~,3M符V踐/8趢悌4 j7mih枔(漌z糷精應+耎檯φL.牋p駻iD諱`亁隘囘鍖铏┽9Q榨茙|鱚醫 ユ欛j,潆,sDQpeVM尣鯳z?枱濰熏涉%漶哃縼, %嗓濍#y 5RI7>柢"*7E(嗓&9/坪5k疺埰.=J,Ik<+47A钜d棧艳⑸諭鈄|;+嫀}5=!T __炤./]A颭褸\\慩蟜Ic鼥F TV碔$]黓C嶚%c,b魫#昘麉($zaU4趮0珰x@TW*,枃ol8踎軬+{Z_崞}6 佫4韋鎓  +v*F槗沟寒菳]n吺脇Nsf銑凌8锨4S醩绀os鐊KA T虊嶿gfY&'<=o靕 %l>陴Ir鰊③餾*脹\X4$)*%绱駨?躶{蠳鉘睚j_楱萻on/9黺p铒鶦酯7篼淧$X痴'4‵pcM7騍h蔮闅++&8沿l縋2瑳桕Z幌#"傌V+岓滝ⅰ翦3A畎1+娫至;h蔩鎟.嵚2!骻濳╱5s:嬑夥 R 隄I祐>6pkZ拧桿_泋╔蝅.|葠Y戾 0紻f烅粱 惉=硋蘿=`=包摴N攩G顕:^-䦆r帒x娍Yq蜹怍 塬a|!*阔鮟_& Jtn1膨瞣bN>頓 桿T紕3戧苍` J6馕廓巩t?瘞s巀4衤\E姯瞻呠m#﹖>溬誂s\慦尗%唿-副wa#69x?WF`蕇箯訂Gˊ{夣欺砡VSw佈 i钆纁 蛴p蜊x⑩jn+乾 L"!8M4+魿nP鐮 壳xK蘵壛5轌隿&戚?-訏>毐队]吅蟥鷦z偣綞X-|!晝!^挀5:园弸 浚入"鴠纒.Jt倯鑻{撪@#W2餗媼P竑V2吏鋠1'劅腭瘨翶Vz描愘'FV埾瓗 +懗.亜郏x峁闬蛋炪6愳沞T9Tり徲 S;葢u嘖賟)o*螧锆毮暠鮗7x嶱舝捇玘留S0慇[ +R帟d頚z榠2谧狖g 5謃c噩A坺[楽6yZ[炫 x嫚nl&z-l邶凎& V鄥}f$+z摐恅抚H秥"-阍綖鏯噛却X?塰"Um驓$0媻淭幒*岓壑HWMW湶ar缤ド=晸?eH侇"聺朰寵:Q>棅崦姅/8僪壼o喡缍K榄",z祃{t惠攸禛]3J撕7玸~篙p澫-lW&fe;k!#叄袾u毛 f$I@捚8S晌啤J8-采]р7t璖e烙荜暬R眦玚S>.>/i剖].B:踻琻脍3薈賽訷駑Re酶y!b懏79應殸胍hM 4鼫K梃櫠-撪>fK(z6{榈鮧恙卤U濦LL&砞昺b摂+60媞脠钿UZ纓椒檮V?|6:粌GxK主&蓄,PW靉胨84i栉寊S恞瑗9愚 笺dZ!$<E}ǎ扽譬茎&馅Y0猟0U7?z7赪6% 馨式x⺋篕朲蓙 +N`7媼00*6'z4bWW% *-揥坍5 /s乭a⺋7a}] 饕W:&99卦伯善旧薵/f1柵筌縶竷Hw巋瀈餅痂x戈E絋蒡配!x访Y藩g2藙醧纃^禣箥檝U燝)曢 式敠丗4p蚐Fx輠狔鷁:k抬橆fP黐Q%鲝s瞀2忴筰AR[g!鷅.q{.^+_鯄T[梉5*峎RbF;餠蟮鍩wl0^?{鏿 婽AoQ6h魎胊鑼F@嶲w%呮kT.~匤巋堧庖瀗弮埼p鬢檮4'<=滿 舴p耋M&+ S醔蠏Q[qJ'铸dJ蟵)槐眊f4腋[塌h5帅蹨{f莾辘舋.倭a旟朵)sl虎潩鱆/筕R馘卜颬螽-W鞮M飾/)3<醐;吙潸怆5嚺]Q濏3i赊踍斤壏*輽;民錍慲嵑魞g?畑踙:yoT峆瞀瞈/匯nhr惠.蚱>.9I潩N霕^w`OC眶朳梬.sM火$叽,=I_F掐w{磢65Z8t颧鯒.桵3921鯪Z掐蟪罹^危7缧S巛檒G邃Nm5p0, H蜪M,*上M,舒旜 +endstream +endobj +25 0 obj +<< +/Type/FontDescriptor +/CapHeight 850 +/Ascent 850 +/Descent -200 +/FontBBox[-32 -250 1048 750] +/FontName/OZLLCB+CMMI10 +/ItalicAngle -14.04 +/StemV 72 +/FontFile 24 0 R +/Flags 68 +>> +endobj +24 0 obj +<< +/Filter[/FlateDecode] +/Length1 727 +/Length2 5964 +/Length3 533 +/Length 6525 +>> +stream +x陧扷T溳柈!Hp 紁/ 富Cp噦*牋鹇兓wK<8A侹餔!@`殪镙=9丬漲緐虫滐z壮7贅 !顅Pw7 PP牗.(纁cS魝0w7%0*h !3!塯xlEw/槪扩弱(@戳'{0`鄋"<o>赍 耩=`u劰狁K萃 4那氵%_.鏮?w7xu楞譹s1迈ws8\禚汋?阘W<郷 +wW 犿亃过]j'6髊齵U喢戾酨煚0P@鵁y樂 + +褍!鞚`7舣< 騱?媰_譢KKQ佺_鳠U=0 a鼦X鹂?]騻,挚wV籑偻ss 纍?揓A凛?圤=3m耣裧]h篝仾+ 垑 +=+k镢uC5^雩IP?/L8 \aU3瑐怭M愞:拹西H︽朣悆|藂歠蚂锪q′盼+B餴髶垑亜I7鍟Z_鱙3 +軵L磏Uc靨Pf舃kwP(匵 +$8琨炗烩%/(XEt~﨤溅x6O愐橉*萋O粔蚌~Jh棙*I吢芄曘蒡檨f澊?&y:a脔RB锝:i>蓱\酛v殧泧a妴 京p挦偢x苊E氬(鐲臻 +W︿宆'酹觠㘎舻 Y砄0┋N>1詃淠|腍 i^jg啔邰 -4丿y\覭B >薎:'啭擘唔 2茁h崺廲%拰o毢l 骗z7転阑{Z.}p硉9,忻/慟丙困nh堕槣jU遊T蜈Z130q>-!H.>0S"廤螼H锋昳=蓋("P兵糈E5睠 4酬#3>awgRl咝I拖^鞚=pG鸫E¢X%郧勑飿:p(鷧喍籐1,倍d灥鰯Ju屝h鈮M錌柃靫蹫Y媊3;圪0v赖 3认诉麡R朋瓚4]漈 茘円腥挳鯴尉菜[対颴课虅h&奨f庲逇瀍4 `$F$攒!n&諫z7寒軣]彇<'q蟗7幛};z>穛瞁[韁猆x腤6V.鐐>; 蹥>灴棋郃1沟5.浣裏2<鏮qzg爛眊PHi糥笼8咜3燃[楏;v騿瓣罨吆(}跄9柌ln(粠VH厖[旊dZ潒艳|Q範搉n!1)?; +T誻Ue髕纲)祏膅Q=鯤桨bD痊X'-w躹餾晛%]cSn怼z^喩I3Za Q儦Pk筥[=~沸掭唲s菹剶烧+s晶爯遷運4訥Qw~3 挰钷Kr<偰`脕渾薀鵴撍,窓諐/ >(嶙:%L 伐So昗叼從 A鈎賷glH,&[^鯹褴##Y鏕嫛_/aE{|瘄t*  ∈豰6/晚d9C;狃 1m3^f馣囷(鷉蕋揌/葉馾@摸 9t鄈&剏顮vV>溯慎鐘孀.諰P磼颳邀H1播:噸5HwKqE28繋ldi鈼氄纑ocU武嶒PP艷杉榊y>C毉圄搒辝6蜣)u槓/B獔亠 R栩X顋YS钨慃Q{稇)肘 礝/Ac觋>?彻閟 +径L}億2 +9@癛詖7礞7鷪絁逖V3,";oW壊涋焦鉄C#鯿瀇詍a嚽疜W倀] W馐△X +淽4軛姹t|l +躿4w氂m 煥螸┼ 9熭E!?壗n烴&f?IN疼韒〗慏乓K1`F売'~圪3e2%蚖 1煎?)礼眱9鸙喳课R蔁Es閤詪樗誶5% +e缜残%Ql蚦xlJ毀5琚顑灛鲽Fe/誅u迲笟=焮熭T昰72 4[⒕b菪騭)騶a_ tp4'脧嘇棻xA[霙(袻鼏~Zh闅茷榶糧玚燅D{諟溬臼#抛畿椠hOi0 沋I}嚳k/S螄鯦4瑞,凔\f槱憓,b*[託驛B}-琷+s蘜T伖TYG飈g桄J7鮶}Т醹臽=〾泽Xt鷔|r鱲懚溑欏礛郲艆"∞X臅$e脺RHNc韃(誼9BM祪5H顒箱+>.嫖飺罏s'NE0Ayar+Q枯缎衋覕Ifl"2EH厀鱡鏄Q1颠扒 垻穧龕_拃7I瘂鄗硬 tM)6>桌蜍 o&>烴O <5醯e嫁22破閙,瀊,[=*,@|峏@%4DTb0IG藦曜圗玆4哫 s忮齿ㄒ84拘邔4)烹iUk瞕+卋tac疥蕯r専/^x'0/-CЭ$啀铚L$葜m娍劇瘒2'U7匋)|鎵H桶9鞯]e嵼闹h\Q3E<激#b扵 缂?爧穔C{賔汀*琨&贁腢4舔妕洹=W棪巧6Df鎪x屫羋F搘q樒(儿t蒅/锘,-嶬扻涣 +胧笹榠<#嗢c:R驘>q户!`訬鶿硆駢ye芳H亊~,綿)fi'(9垶X菂贙縂矄秹眠剖那訢慙逳T,|2遐R稜蛹懒Z;縩偦夠y鵌蝸&6FMS鶾(氣c呅熦@乛gmH>|谥∑郗沇餴騵<|(酳z(散9夘,0銗 sI鹻晕!鰢嬅9帳嬪o2ugK簩)櫐O u噿I辂问荱y".啯聹鳾%5搛战vm\澩!d樾*鰄樺 -|颙): Lぺ9鰭篷 炠脽*庐z#Yu偸鼣⑧`yh_,*罎O,嬱 R+辕骍&@.{$焁Ko''尃溯骂(]銪煷允椐1犛lIo皾K`/_q屩8nǘ罈&Cv痝笝犪vG叜}恐V敿&#錁櫜郇哺襴6e%l%K)~狔諭*繚f$9s:0嶧z糶8勑 : +踔崐U蚊邼c-跦aUa6]*痁誂s逸P`-)叶e司植饔B固8软憽窯媯.= 3泬撇IvG鱯如;p问F +&襽布T庫踱> +暑Z t&T髤&fBGn$a驃VNR翻r`靛装柝JN0 ^龝岿11冊[N臎[凌e1娢*$峒.%7騼卅284耓踊v滭嫐殉=(7cx膘鶄1粐I5瑯"嫐&泸瓫隐&稇縬s嬙U騥鲕W疱b;逆/陉髭 悈庞mO婾璘擲1扇;U嗘+6贅翂)-Q蓠G棸 y骣鵷&8 m?^\毹誓|笣百Xr.〨V懧鈛砄 @V'U鯲鳆q捋蝢KF壅锥2恋d济玜(_鷵q搿$%擌﹩9埄 Z鹌轉腹韵帖y玃镦~D磝\揈$碏]2-#y锋藨R!k<奱襋蠈Lb;+!;BxTO)[1嵆籀d>粰;譬礜織3+c"精` r|l讀Y广"鬻S,睵恌嘇?g崙裥yq煭CGK(鮷x,蕲bSx'}p瓀朂姀炉3B麛:袣腔U歘帵瀙C赨3+匈=l#思陠UEs膨谱倸蝵5嗄7魆4UYd瀰2暛〓m. 爐3l袗卵j拼乩夅k羧a黠泏楎滵3押 sS;m饌邠塌dv防惹甿鑨W媗拦豿鲃緹*3v"yEe彖1wg营9乿L弍Y?呾Fn# >D"澫-V<轺邈O弃窷$筈4鑈_>-t颞楔シJ迲爰CO*.1倜珴;z瘪t藔l##N^<9隙s渝 i睾壄裰 璐邋<6B8(L9賄8%}澘W點F箊7S8毡椸畜 訜Z徖Q@爩羞b仳蘔"!噧蹚 jKI埆M玅唲HgYUi叹%杌祎骸t箦 ,跶豨瑊c60n躋5韹@=z坓搌馤Dr_炨;巭b<銽c屎⒘瀝~rF竎哱r肪麥5uh{b 戄嬓>w﹝I8沆玪孃K椵砭7}O鎻4qaFc灶∥0伎剜蹃n_"S$YIy-濲郏S抄繶 "q黷"x Ur鶧蕞Y%/ 鋑GjK/鄞-螳峼zO翊暳4>a巓衣根cOM雫oN它&4援,寫8n玃琟豩馞 Y胞s0愀_G狾織U趃犅1跄Xt眴a,w恲+N謗b鏌4d项觹戌 &冢棉l"橕+}Wp5縤覷 y2鼣7f2淐M埍_甝JP复zrg;YBU)镆6 {湉蛍婰.h >a甦綳餆z*鷰层5dG勈廄>R鹍蓈朕q碓vX猑倁骨p.)Db#獗4稐#69^$e%碬陬轎磴鄁am>>絋b/桧曢:[嚴B +聬rRS +櫬T +y<4駻嶟_卍Y甤11豮3H楊淤 繄p藰) r-2 ;HQ鈖/6E醸f伝畭棒s:Aw$纂+囥鍼唸<碃t汵i踈:榘/Tq稊&ys蚗 v篐;时 YЩ蒮M鶞拺W胡墡樊M|F掷y琹3簽;'屧绥宓c氇銠茕\䴕=q+#鐻靹3给(D螏𴝎肫佗俓[y(rx!.扃璎z諯韦7漤緕紊(甖艙碡L~^躭e袎呿/t绒={苤6硔鷙膧$鷸窶Fc~3B覩䴕癄8岜兎O{y攃鐶鳉е,接 蛨&薇p,o瓯{扯m5铧N镊疍捖J賟遺巅'E/4D琔Z#錣E蠕W礤:旗`n ^VUkF:緯uZ钽屸噵d碮噅б=%9鐶'y畻/:zl'A諣-挗Q詡汄;螣吥E.Z4掏 弖屧徰男c訵陓p5籱S惘畎Y 纗_亓o鬴&O惪∫壳"嚭41J業炠灴|帉V靶翧鉦甪)Zo篜孏蛎O孛/劵+厮?,鏊 +endstream +endobj +29 0 obj +<< +/Type/FontDescriptor +/CapHeight 850 +/Ascent 850 +/Descent -200 +/FontBBox[-251 -250 1009 969] +/FontName/ADFDHS+CMR10 +/ItalicAngle 0 +/StemV 69 +/FontFile 28 0 R +/Flags 4 +>> +endobj +28 0 obj +<< +/Filter[/FlateDecode] +/Length1 720 +/Length2 3873 +/Length3 533 +/Length 4425 +>> +stream +x陧杫8旓壳4┠豾f,俪 腿Ncf0楺寎"黄2凭W柸.2謭霣謉"KH,?=窟刮鱳9座颸鐈炿诡乡髜搠膣荀 櫎&掠 ╃壛J偉朗@m)K丂ZAAm/$ 嬺蔫腊He XII▏t:=黍r黍2 P垠n逝 Rj^(8 劼爱H魴 4髣) P用ho)殄婦H`0亗c丯H 龥沆 T+嶐果蠏/宜麑 (驀Tx茐鹉xHg磻缳|31悯ws=#^齕咶y鼑}嬼B=H/踢瓤貭H鎭俴b\<怈衉)敺0Fa岙@g槆7騉堿猬s5u魌敉Z挚娖0kp鱛犊b苂眈BmAg 项庮黰2] 伮桶0 鎱鳺膺〈<齼$e淞莱踪>仈J讛Wui丂 +J瞤//$鹓'滮?cg訷怘$鹄*&2鈖( 9* S礟8馪汮X狾熐U 飗㎡縯忎Y_:|)ub(栙G汞簀0赵抆胔廍畓g2S(椶纫0Xo佼濲P祽nf诜鞠c厤螒129z.SwK輝\兓!qtЦ +n挕抻霆_=;>潁aq逽虪溤圊q#鳓雅;到G硇4蒕,8┴咔荎踾?A&~篣a枞9硱%N@墜nS(銟済&熵饿 x]銫L娍B:'7牎!%I楓(晵Z憷6痝鉏嗈R骦#蚄霽D&謣|N7宿=禌鑏V鞋鋜G<綋]竊mBk$>d=萃襵27屽朜v堁;|Y蓻?93隬i獡薮-Q.6黛愊抒!↙濝N孬湉序箧眰译E5'i蚿韱W$+v胨w^簊擏8n爖龛轮枼鎖&溴b4橀潾%!栰'-Y秝k [徢斤猙鷿d鴾 >屬尻rl挳.农轃锇x_s釚襾阌9偉!尷鋝蒽糇27‵駞爘煗試' 觓m((FQx{U& 騒e斟V/_娣LR円:讨毽柂帀呰d萝Y8僬韬6D.秡㈱犎lAmf9#魖匊\'掯仺稃寧F27N-实N呮沙鏆垠r}"4nN*o0']顚>牭7/z胊+^(麁Wf像佩DTB韠镓U@U`eZ戸鱔XeW[憞岮N7l焏絚`x魸T銪o畳-4訤f釉鄩a仉)鉐/眘I蠸韘呙_)<7琧 :儒_箚攥o+x罻 R+M<珠銄rb袭伞\;[忺僯p苾珇z7待掲侉v科ⅷ墎 (xF0鍴R=笮r羐昦j捸楕y韞o82.熊o仐痐W%疄.a:=蠯晿1鑬[圳絾j醻魤能禐炬2峥 +濌);~,骨[y_√蝈嵮$M00堊闾荳郶鐸Fc准#h懇 魡a昌r蹞覟稲[鏽J|I脲捷`&央趘1嘹扥煩Gy!#噶M猅俥pBq筎$=籹8ぺ9=殟猱匸趥桵躒呣/愉嘾掬鏁o櫷!j[緤拜泎u旍/0&襡E瞴aZ蝬锴罫娢沋曄撌tT閪#讌^划@赨踾ε2n祐 葇9 4 BJ奛~甽$P(/笍v翚鋋B廕 yNxy夥仚 +魕洡葀┅;痸;}QD魺敁 颺w遂騼;弌jQ4 Pg7崿銦}庂/筶豫&芃v紋L葽): 謟B雍>O实Dh愔E鞻n-8哥Nv痂y_魶_.疪(弦|e齼+'谾=nユ謄袑堭/f樀&纟q︸$^孈其A?/蒜窬#>矦 忦i訸 糨K柜 鰻淼+桎駃b毶:$l鸖≌頄焿欂8\岅╆"#碻r 鰠袕嚙NE獥驫駓7G求琂5妽餳dfo#榑nT懻雋 [鱸韁6i.帖楨E|k蚂0朏|#弋祉箤Aㄢ,鯖 +O肄}Co.e輲/癛rejx髐eyVwη擥y&"t綋痘秊惓%殽+鱉1X鄵'膅-密筩:"勍鳚皈-> +S_]1巆:F竍'逅{肩{5戧)^"ohI蔇賺wNQ总盵叢 w叜龤垒 碡鲧7蝩胁 +尨K/岀溑虖鈖+|零[@根_ 綅7.k媑"t+o|C鋖q/@<記<O豫む漞"贉j魞挔耬&簕约"\蕑/u兀.郏馑隳犰G 毁-X悇h喈S5棵暩註拵浞Zh褅zg莵<会瑘R忡=籷8*觋^扏︸H鸟犌鄋嶎蕓 G販E0瘢1諫 )=mQ骕貘#<)灅,9V蛢6EysS针襖 /u擲g汜3ベ柼糋甂藧FZ斐'Q_4錪擰浾1U>簝~)DZ茱e鬴廬'镜 氓烔獑'J醘袪%{7鄛硳g庪W殑珃涷U$3|K&鸇3莤鐋茫秦)xgМ谗y鵊虬蛦诱I眕&棈!m锆~jI銋浇鰌煏+^峹篽w9蹳q摣 +慪癉Z回巢晿厶粦@v]鹔酕齶" 1呈谆f-~a频34s!埇9R@K檻?拈 +絰.踪鎷'藗8*fo輿])5赗手嶕經rw俐軨W輩ZB鬽霻F蠧麴P曃贞栬塆E嫍屁.魪稠昁o 88H鞳zy洉趎S_6禨灧d嬮>??郿^溃嫈.J譽3<;;3H6恷 踗玫 x豟攓鈽_x籭珞剙BuDW蹕5&=騼o雗w眴[,l囷^没笨斵苵U券估澉桡zb譥6u厾v揭愝径 r +u砵2U栯p巡c^:嵺?豏 3;r垠凅衎(劃^邹麝國茄壥餣h齶o &蚯[褠Z愊鶕瘰詂2贽i茅]荂+ko龘r娱訃$鈁盲 +$私韸8珠妆Z'忷ゲt妳刺分<"慠斡氘^誩%%3/Z簎陧莏厀|X宩h诜巘娘 [n( 嘽I'W=<9>d颜=馵箃 G⑴SS絽廬莪 轗xu陆瓹焇I瑶泾珂!3倆宮 +%悰繑>o@謁洸p╤趱>儝摯B垭i 遃1]毬寓暫Kbm黟坞5譻 +!V!栣锺,荍吩MC 広 g东莍戥C獯标驔撝文役\;"5軥2蹛h>棩]33|獻榹I8-糖$鼮坰jq@F]"継9廬鰁壈YQ薙&4媋瘖 Y啴枎_\旊{!钗mQ/&饵EhRt`沞矔镸H岛m﹎#法-鄷歱g~~p=敲毼,弟今共w9偼梟(臈鬨魑y萶a0殥&+tx鴔筼4茾蔀l7`剐>翘嘉訷t好e堍8夦郯簧羝磻尺趪绤僳w"籲fQ脰 +鷂^7?a鰼录盀h槜;2`3 +endstream +endobj +39 0 obj +<< +/Type/FontDescriptor +/CapHeight 850 +/Ascent 850 +/Descent -200 +/FontBBox[-301 -250 1164 946] +/FontName/TUVJZO+CMBX10 +/ItalicAngle 0 +/StemV 114 +/FontFile 38 0 R +/Flags 4 +>> +endobj +38 0 obj +<< +/Filter[/FlateDecode] +/Length1 721 +/Length2 5246 +/Length3 533 +/Length 5798 +>> +stream +x陧桿T\蹡唭 勦爌嘊;=丳痢 +U伮B)\%椸.!8 .5@版渟镯宴鯧弤胙{飮5琰?=鱶Y, :锨ub+禌&1蕺.忲縢r&7鋓2闹氹/!蒥鵩毎<贺'%@eS潈豉TH锺E梹罯D)皊%嶂皾-EJ_,FwK:赶S\崠e佼~\瑗鰶W$罱_ 妐1;s楒彅Idpe9VU$v鸀辧$蓮Z沠鄎Y胧u\狪脓y rT.帪笨垥匥峿|窰Eg饶[.射蕅褢蘃歸sB满砆FTyr杄瀪呄#J 拒~盔魂鋩趫{嘾X儇煚浸瑠 邴黉lSHA%凷枥^戲mO扵v鮱戍N啲TB展賌S6魕]'概轠S弯E!'j)祅J畨#K敘跡熢垚oPCSu::腙 +BW,;m譁\FgZ8塊鈈倫(s糊=飘|zbG; + 宓邼6O"峵,i8.;磳榤|%-"LQ/^瑗塕$Q=[U稔Y蕓搦fD郕箿9椐dI縵6甍6`慱N/_0趋;O +X承0_>稨B啩菷jk尧{莲汲5瑇摧S簝 鉲"~)湙蔜衃臎庿#*醐蘵畅\霾!B誌咎U苆彡筱愉%7v觼闧DtO@;&觡鸭V3>梻bM"BG穛Bd?儂鍟8e戸M錱z寉歼in%h厚3旡"E….q{f\ 曕𼙰Z暁捥aLK.:k桧~.演眢$&凓|_騾絣:琴 +~d宩嗔儱*m韰R濋赴/x|鶉it>螜锩 煻] 氙 +釒槼訓闧 R伦8UD腅7"+駊oI钤n珐禬碬-.BrC0^q9膄峇%驋?綮嗋簟\c{U頯]iv鱅豩`頒1q椬绛鰯佻瑭榻vk#j?緵贮騷嘋褋羟 聙W┑A5?To嵵啠6D臜炆漡韷y?纒?呩XK釺t(_b皐 饊;p亍bqj荄湃Gv氎I濈堑搴53C~sw7L9萼韀C璂莿S粱忥Q渼伃,E捙"%i厇乀FTky+ +bG猽沾I@=乧.旵V畐%?s齵睛517尒欔h6Q鑽▋lf欐鷄月w紴RLE5?铻羭昪崘a嶫琸 窕~持"xT% \尘轷蘮/ +(cbH鸌1黌肣亚]'3qg沃;摂M祫櫵髳煦Ol:鷇k蹌炿n叩拔V胲楮i烺'.~ hB!5夽 @%鯞讽eh撵S3 -n7趽ㄏ9暶4鐞嘥V! dv纼r(q=必AY大(,细_匲U +厚#F暌n~陝L舘0宄 +[F&.)笧=/p硎+'3榖徨 0AJ飧摢C 褩uE傳媝埤j58親 9f0Oジ/fu +韆<3*砽溙豼E-,М1薨mX繗!o晟bA1Q疶K9蝭JN *`ぜR)翊命.*<;E籼u埵.i-岐R@軼B禴A-:Y葆飆 誀柡竵+瑡1)'6f4}末虰儏稨mp<糴+z9庨樘 蘭 誛塤5W<挈邢%篽?37\I&0桘殘!6#a獟W憞隞莹5㊣z~ц:脑庮薢Uu鱎&嚑pG}z鮼鞤秓 SY靉緽7~ οD宠瑷?&澖誽l;t嬿M渥韁o丫諘碒併C佡醸醃4}5hk+/沥拯 〈_奴,x盟虸肵fKN)愹拹洼{走(绞& T咒Bj0n@;W炥7櫉.矉跑S$&V髷鯷M掓姧tx/=d柑輔~毙諏U柣V烥g-z)丝鱽崦+%晱2郷膿裞賄8燝 中y 爷D飅~<辒R?4賻zs渁;畿婿#謻跾筶t 牻0謻a%(&閨#n⑥敫+Kˋ謿&割嫶沺&`(Ew~k 溉.)8蕘幵Y涭蟣|m 綒犥闓$GAp娨5F讧-僚筺4M凓b邨 2W右赅#+ジ:wNV"a#屐翣R5T/WA鹧餕z$<断柏帬诜L箑$n縌鹛m%鷗L~xΟc!c餸雛O佐蚗V卑獑偉%鈃gp洹:g>/龂q熋蝫O\k侵曫馅sや勴jsㄣ瞀汪踯7醐\i六Cg脇Bl!櫳[>*I8躞T袑.aF6D坓隧%g倢Ll碙n$E迥T3V訂柙t廔膂e"嘘I蹧秈腩絓螥Y+N`蟬<襶=/r@伛Pr(!? +b:瘎'g骊5t鬆1+ +;81.yX-IM扠匠-[^h3j纪I7o咤H≥肓埬讂眥簓陓歰嫡炒$陂阏E弸d缙漚 =∏%鬂焍菭gZ6愫X?cU燠昮i 素-ET鈐gaYl`?j嗳:虠kt薴乾L +G< 䲢!佔伉8<8!+垁 x7眨B鹠燒宠1+Q咊樥Lo#悮#|圩L7堢罯F瑢謇芮&D 4椺鳲*晴)r既{狰wS/摁俧栿{垆吩蒍鹛枲梄OgiGh鈎妐b_委d G骥巨Qc;}qi軕镮=稡碙#緒獨o4栅┈u 肒淰黤~6$媾舱⑻碤亽| 瓠b>.裪骃收輌湰氈粛o8賆"龚涳讛(M妲}"該QdJzB砽! rk惻gJOㄝ卤辷 +;H2-D崂y, j避剺iXe'*箹汝,?嵵礫^烐8>Γ齽cW焔RF4`餶點T梪)/DW{^ib囦au鑛\r.Dd=1Ty6V敂~泵窒餛冺氻w裙i?e'阺K昫葄' T愔"-M偉n4v齓〞#Rfg熸O鼲仇减!袾\捛|vH欨An憙寀vb羛瀜TF4畅 8-$粽椪睭%I娣# ~鸔娾は9?=恁;8='n|Z瀂Z|j钁zg=x 3骰{销9I6%" jk苸刺顒W彜庾r绿'坲劒cぜ.V殌g淐Q zNPCM辏l箼倍D篘e淸姏塳玓0浿曎- 譈o~5伧隬u*﨧E妓1忲5; OIP 莥惼躺犾瑴踖k譂配^忧惤李溈郷dr鍿N笝奣②&!丛叀&o岆憕礮_2T篗瀍╤=~K8甞嬄煿S鋼躲(戺,uA~谒p+刭2s吪沷"u"4欴Y4肨蠀Q侊瘾+鈒lA:e眄F啯z3臓逿W/z刌攵篤%杬#BQQ嵽:樂婩佛樂^-i叾爇d(#榃m簿SY忡J搦Bbe囹踁偀X:$eqm'暡 墥n潵u迟镅茇#仏x鋀膔峍kW;z粝諿熲+T渀碨灭纯|Z.[U湙F怩舟& wl,鶚)烰]麃雴Z=:秣(帅Tyauk晉楣uSé8+^/o忧i澁4yj?(嬋n嘕=釠lS葿K刴$9裈R駂斥(擇盉&趰 苩邮 揾偐y鶰_$邏z靈"f毒颏%齲沥噡M朼溦Z曌 T%'硪$萙:幹^0G&葡鱡.!O獉桁讘{贿V檘雄鹄撰t曂嘌竉>黾敝沬YR榡驥q9rq誨 ~$穮鑢#v;鯇罃Yb猵V熺v傯餜qQl:|X傶trh忡苁藒>踤澐c` 綘"(騹A/l→盁軄L0诶M,FS峊祥m啾孁4器鹦Xr懆f悤僚8F[}4&╅鯺啉6瞢4`]nK t帩趸h+礏?傔訑穈蓉枊轵 :Ne呥磜Jd餞蛆{$D槊E徼輩3C;洏良%A峌逪L鏙顝鰼c= 鼢駼?;靀",崐+遏*3杤釾梻8烞-b;嵘俇綖慠魑{ ' +t鈸^瑛楂.稱麹衢T"耏qY紧W勪蛽/抽}z88W貯e绊溮譪剹舠 6e*蟁觖Vlc旟U飙*啁ZF魭丈惩鵵葲撙-襺o鹯h帊%躸嘨J愀uyBs♂&榅謑郪鄄YO杍K暄$螳 Cclm$@ x近24D曭&W毖b勁鬛(汩K.Q(遏(痜矖潅p绌睋&耯.藪wu筺蜂>O$\'Ub=E飢價]鞈-麳躄程+:d邔鍚しiz懲Z戮蠴>bO臔馃砩MR嫂絶l;i虪&麴 Cq街K薺IMw{d菊刯,7?/6?Yh 鼊癰郷螢ex'OJQ芣\*-e婲駴筓W苣裯詈*ro鱍qo解s2"悶鶲>祀'鰑厗焷餴#@ u5aj馼5W_ 洲茈d骚赐}摫仛軋錛澈z齼禒诏"鐸佼血〝2粽a亚玧6n斞-]9鋢m贯e疷.o賚0T佸0婞M沒鈵 =靭h\奪-E:佟2A}麋媜R1悑鐔!w囕廸_R?秏畛剀'歚韼N1?6膣聝V+檒0b鱡_2t杅W(/s`p攗柃E娪C│刓15嬗璿蟐禜躰Tˋ毻3绁nl栬|麊F櫦4~M蝀礷Tm蚣B儘I骀穉l淆[衽To莯穛7\Q徳u;嫰0欦妥暇GJQ镍x粱i-5膔M喢HcO鼞珕B輳6饄姴ex橮Z箾Rd焟#牾DC~蕴* ?,纲⻊稍|lv羠獖K袿切俧&幪S#{+.V%aU頺i鬭r咪踴扇祥A濷濚锹yP颸NV髫洙诚pOM'OUi陈R懈y"鍚2"灇]s 銒;,x児'罫O骯9R樛幃T黖^o美 + +秔B繿N鰔x} +endstream +endobj +42 0 obj +<< +/Type/FontDescriptor +/CapHeight 850 +/Ascent 850 +/Descent -200 +/FontBBox[0 -250 1171 750] +/FontName/JEEXPI+CMMI7 +/ItalicAngle -14.04 +/StemV 81 +/FontFile 41 0 R +/Flags 68 +>> +endobj +41 0 obj +<< +/Filter[/FlateDecode] +/Length1 722 +/Length2 4152 +/Length3 533 +/Length 4704 +>> +stream +x陧抔8\k磺(Q!z紾孵杞 脴魵(!z.z圢勮濊紻跠耴飣摅^g跨斯畏s澋謬琬~隵+搸>={ + H荡阅wK朗獔個=" 悙獅聙侭@悩休Ho匝取腮嘖 ( +AA砝p孛 鈠bvP垏7(觜xq嚑 鰘j磪8B?ㄔ犡_步'驘-/数 锐')'饚噛!~m妮~;1悯鱬OL禚G锄6 +簋殚AVc萠lZ{ě脒籮`訬y匇@镻w(b醢s:a類?u荥$w沱搩_]Y貲G嶜鸚S 厈x#!@锌f剛 >H辔xwse蛿醰{(嗃僎);攤  +妧b@1隆n5%H\LH\餙瘴厒=< w燐馅z7!  {嚁J(虃V狅墘U鑁V∧O籍r┞S2R<趉銓櫻H%銬(羊獠ū兢q39H档^唌 玏瑋V谨j 囷Y錎M硂  8錪拴%k竄 綹蠢>5D沈R\4>鴙N駒(2*诅#儿 *獠_CB縌≡產o櫈{く憤.桝鉗?膎)賂K徘藫,薰齦n寡觲洐綛w燍綻鐡抧U猌㎡鱹蛛樒j4*琩+-蚙最戭秕h6䎬涣Tn跌uO0kk( 坪櫈堳坧I8\-炀髨'@榐[偼垲穇9,鞩6e'霪1!猘恻,明泅篲臝?漫釲愊佀駀碤遘B簃螛3榯貖* 懥凬w狂 )恤溘鉬fn蟂冐嶰Ra兗坥祆))壃R帟i访鏹E6!hf (*伻鐉暸寸杨35檺[Tz 脈狴]P灔碯_}l鱖飼閜5gf颐$罧F5ck诓0逥锣酯5撕g灂,5阍M籕eKW垪褆. _恲稭^.; +剥0愞撛C-q嬁!誒芷pze煘兯瀄Q,(娩旝鰎1驾998膕Ozu埌 搠s餒蝴=栒Tm熍F迿z|]2f>"漜!捺n駱a摦R鮨"何&^J呥 +1拠-9\_f紨槚,抇頉滎N,}诇粟V昮N麡`SihZ)#q禗蔓s*駐儁\ng# /&?w庠g嘨懸Qc4矟S葀瑰乪l劣黪+Z攥焂Y乔9鯲.p殞坁E滬飾c"$家敧愀9錶Mx0u桏紻庩pZ蘲嚼N蘣r &j?樍ん-歡,l-c轫#躄鮈.消鞊輦蕷㈡梞$<燶贾9V溾韅\岝汜馟㎎h力ⅦK瑬C鐦珣絋ぜm^憼碣侊1飛昷K&z8Q*-?a9鉫U1尹猦$焫炩d荄X箃2觟5\镆鄗/晟:哺鳬@废z錴諀隞{J珕:劔眵罘鷔崼[硋m$阥s逡勺mXi'蟊伖尠賚矮-贕w5>:(i;欔癀.S鴼 3=]裹碀y!7U漫уLz/c汔GesL=E展09鮋E#Tc;斦r5揙%37举鋆輏懷馥&_9 ++層䱷a!7FQ`k眎圬B$"隱fp>gO輲)杂 /顡曁A柿 砈鸓哲琼<囏*ь2缓\5Q6停┰杫夊朇ec +峣 i狈 )iF Y,7l烪W~隤,1鱫8*i3趲厺D晥5蒪洂眄粁泆}賗戚薭PY届=>"骄%3鷩洜尕蠌贚z卌~冫\絉妨3俇踯j轈}好粻 郪|EU;鈯閌U !蹞馈屑4a戧<k揦/拶謅伡u俅篾o9麪恗韄 7匇腸靰茡Y留速E僇_瀺铼誹vnJi傊袣庚Io+^從轑罀鰪W蚌%;鳰Y*7z.9wч-濑哛j=欏& 砪 L摣/没兹~纡g踐S'^栦显蕮`}饚dtx&稉x劬佢覈dぎ貲学0\氷mr-勛%驩h寱bA&u蠯輀 p蒋o5蕜 釠V菥'8kW/巳+寶b+]醌侉A*.Es:戰~ +勘: 漮鲜hG讣mD椷2"驭H擹B飽s豀bQ摒獮W觗 3踘=,<Z辺戅鱍夺榲I 藁R坅襅=. 所恦畮東輊{荦ī狄丷鋱$@眾>靠t}烖崷`飘(秠蓻磜慡8o$7崍H鵼 fs&9b跤?oN⑼Tf[轖`b7^"}鯇F菩D 1vZ浏仌S:駭曁诜,烹窜勋喳 ?"$#鮘\郎$誩x惫#p殠C遄鬋k蓙/R扰瑻挫鈴冶A胏课南&夔槆EQ- 鋇撲\賜=聀6偻1At竻摷 c1于艱E韃= L/攞3V +8s瞤踮c.甍碖&鑕鶾荨bHXM囸浔孝佧G癈雄湊莆優$\'%E睊1僨+YsNfA蚞aP ;螖佁6 贎g媖W浀nw7S$捈*甹zf测'掙┻榎殮<俊oF H譹蜍靭滨哣/齮4袒"3尼5%#*梻改>Y(]名修N僪E綱k鐗+u-n澤磥鰎l鯳澨婌5YU陝hA羯兤阪豗袯媧XJ齣Oa壖爪幉D樣j證=9@吉U延懎濿貽栛ⅵ偾錏#i舩匩,l胥`]I咡匥%A 蕿氙 My(硣i-u藯岎}睗-K|刊嚷 呷~庿貸v嬚槗l=d鷶H噍颠鉅&睪qs鬯Lu6馒m蒅&;虎d荴J\紉C,丩墊6Q綥ZR=鲃(粧掿@羗q俴;哄l1?鲡RO};檒谝'壘綶@v寐縩-8g; +&刂7A&~ +约u[0菾笋祮紎斦=mZ1瘨鎪LF [觞蓨稯炴σ阞6郻逞'骵眕|首a扷=-勺劖1瀄F覅蠿⑵S冏进_硞y1鴌 讚nCi虃E<妤3蓃兘Z噾Wм煽亵 +泤Wzo忤蚪k旭[蒴<)i@=蟷OkT.懩箔搝1拖ucS>雐!pY蔙m菐鮳奾鋲糋I鷄[噲?}kU艀=嶕bz@娣輷P狒-媺p嚸W槤 |?顛扃撵 I酗Ⅵ-jG笓5( S 鑐@峧獡甝8)珽靂]i碲m%忝t5;臎`E頤料廼s婙 〇 庚N鎾镮鐯嘁u噯xSBn_vvu(@g衰q硣WKJ黺G蕫踋秖O/魖c捦+絫k \0蛷乮|聯%v蔘榹[.F`⑴.聑t樯t_'/CPEo磌33a礴篁~膴g9酏qoO禫9莼Xz抇哝塸疃r 椌;豒-'╝焅慄p襨s@保蠑槾9丸踅廴#н磒Ja琸庝6I貄S觕U 痔熧+c襔3:8=骬v.z z唙,户杫~澁|{ +S鯷r0疚N+蝑靍H%u8*dX硤愎_C~?丌騸閉颷鐺簅6糴巤m;n/0z捖d&T珪S预,oLY0I +IwX麕0oD臹>岃5dI +毛r奄#迡惛婑娍[塿傳<悷k鬣 酠¢李,駹蟊s榹F<>駪3缀cL薢6闀P锧>=Of┅J 耑Oc> +endobj +44 0 obj +<< +/Filter[/FlateDecode] +/Length1 723 +/Length2 2318 +/Length3 533 +/Length 2857 +>> +stream +x陧抷<噪仑蕱%蚈至0c浥a霷葰 竺,賡2〾R塪'DB%'R創,Gu=茏绢簏髚窟象y尴鱵溼hEバ酘-$0烦逞稐DY贉忾D*O1LB@牨:H,(嬖10镁狿)O邵&䎬郘'傯-0%Н[B'0-D:)懑T6*鸀&0(厑葱m.@) 劓$P)@错┷鐏41乜狷衍夾"巽蒧砜鲫/e<橦婙噣Jf蠥`G%4蕪R7;H 2?Vm鑨堰H8RO △=O "唭"?罁B羙y怋鴳d粆8摧<:籞h|埏E<態w臒阰1蛳x籊4b8鄥蠦 愛马淑嚸,)⺄8玉濬鴊獐Pff责(]籽GH]= 褿狞旴 a6>嵰E圁g衕 咡3l喵8篙" !qz癀硹埛腂a醿三魚輐:~醊罞fN3珑容覹 /h瀻:\暬鎂鈑/咪檝E&闕2養宖,敟嘭+kナ紓冂S.>g1*鐌觶r峵嚤 +)] '鐭S婓Y鸕z%汹3@濩QSx!抁$]U<納^Im#ip7 軱Pz魷巈0盓妿穨鼋駔ぞ佢9c尪M!'粽Aɑ悋薭檮煱嵓櫗 c貑+Jq;芲a屻棌7o薦v<鴧@_>鯉V騕欳筁Y?N蟃ci.=加W-寖ev鉱np9l 獵a"痕筴wv&颞謭垾烦uИ:正喦%阕孞'y動驃兡"繄(G嗸畀'伃O攟r之}"植A 褥h[絔閲rP総6?黸翙隂Eu眷9qa唿藒耦郄/磼醛'綇仏i.骧繦`99Zz鈱辢躡n^佒|+r绷躹F1雘 .I*鹘殲肒鍴d覟G瘨d%紺:|E芑瘐]B>硻*L虒Z8[璇≈2g?9皔繧qE叕伔~gQ蛩喙C楖K^噑-貢惉鼛#2]矈琗甙撰灰6黃篯j~酣鯯!誝!狿淸晩曼渶u鍧演赼nb*; 3V鲉皱 +'Jyv5O?滗)差峩馦4畝3;餪 +A稦僭Rul棇ぶqsIZ魧沫冓扡墽峖!oOV,甘城Ncdw蹹}朻 N^N*Q莌 鍑M#";g唯軭弟翛蕽0_斉甾恋u/~酰嬰姴蟜溗 `/恭蓉tE蟡伻惔鞜d氂Q8y厾∏+这+麖H骢h楑ru1#竦C硰3J:u竇鯒E稈,{曮陫E霎/o椒酺爓 楂骶1 |;狙.w讇7 -斕At@庶罠4B麹蕂g蠆:删0*{a傗憫眯n齞_涅㘎R'汆sA8時U8T⺶材I秀$I媞Z鬎[蝃A:吻蹺彍瀖:#覿'z8v飜摖膊v)棠摞卍?钣r]M&Z5胿禾匚鉠 $霯娯U髫W8廛翶P_竆溦裡哓蒔誺GA跔x>臘!MMi仙椛8)GrE庬H胃zQl溓p鋘狋餓[;ジ紽栓 帹隨煼<轎荝s"k#4闂j*UJHq勰劫$\耱&(垅A%匧t建.䴗契痧ㄡ>\|憉-閱綛內蠕,篲I"娭%>'k3 +x囥g贲襓岩 滎搦bl眘@y "卒䱷v綗KHY<+u]$Y昩籰隬錣粅B0]BoW邈蛠騟踣枂 蕟"GE=n坝.z?"O1uOIAC=cU}L毐'd沊r}o_仸昂虤Xl弳[妛lf鯂}鷧&|腹恶扨ぶ1ujnU5S胲眂E栚猗鬾1撽y%鯿O'摒鐰?v狷惒(X<7娈9Y|%9Wb攬c67筺x蓿淮琳@錛v眹緖T勘却c3o缿剖X缀輞ⅲ噮觧鲔e|V[臂犟糣/6;芕j訠硢)瀰&G罫磨2#3鑘cdlT粖婴斞F炲%/扪鋶J魫 +醨朰寪芪籍槕X︾艍'-$h# 蹢O[Д0m膓媅!8r簎p"煺癇k誅s楝劅y婳[愥c頡+青鰫:>←jtlf晽餂鄢5硠^?@ *袿c7"=O^磣礡;:H3he8_惬)q遂O眭(孚菐$L8蒸█馘鏍7宻y-5鵔^韢閶5'DW匠澌N瑧裧宫<\鍂 淌蕔x鹣s乙`饓~瓘JE~~乮0举濲X r鰉矫燒[扒$氰礒I佣q┰0:蝟豰疩佧椥l淼}畳) U9鞔福杉廸bXBb啎梷',挩鯋/ J7⊥羦螏)29煮繜%驹rM函*c靡隓!啰蔰G梠4堵 u駓淽︻-#靳苴 \{佒O叿鲱綱d珓t裘媨v輐"<書4S`熯 +c綉晜F\YX-n8?1崣4┿"K5?呀范L鬊t儏俉W禶冾~=]K瑗稧ov瓝?|绩殤灌繵 漕<痉+x韮6]$ц%莢P趯4栧镧516)漞奌> +endobj +47 0 obj +<< +/Filter[/FlateDecode] +/Length1 1162 +/Length2 2962 +/Length3 534 +/Length 3691 +>> +stream +x陧搚<攎矍暐 掛i"厶豦洷藮$J4虆a芵贖劜%"{"凲Y 賶靍3榫哕=?镧<柞蟯咩鴿侩8蜸舭)i$嗚 di \6训喢 &乭2朒蠥揂U尲pB@繳UyeD&蝴挵.d@\[鈍膬$#槧. &鈭嶺愳+H傍Y X 娜@ p8:K叁teHp"J柯/骺7H颏h61D纮NYS"m;恌祀滨Цg娖斶n湛q4嬻+儓w"$绖I?S蟺刻檧﨩jHF惆嶩3`緽XO=,臉c蓭. n茿鍻次m[怑炐5狄楛k9K [忣萧5氈 渻 %肄靠睕.翍埩剛"&懶 媝K纮ば,耸坉Z @隞郉$A~d菅$悁澣X鐭/傴媗忨HI牆 +欥鬄仨&鼺*;鬚;嫈a;鮲"y5d鬟q暆;ⅫN愉遯X ~铐閰莖_(2往o⒓僠盀8达oZHhG袇寀}7軄妣揽N黲.績{Q暨 +E敠㊣#Ti銜W敂埃/+崢()Q宬?剅1(梩I駜幀6e/頬BF{U 鼻 "褝呍拉斨LCd滈h蓍.6棑j孂焢L*;I陵?蒒1_H񨊩0蘙ズ9_E焅べ詫恹羄燓]W趖P%合筎釢最嶣摯 4s`\Ф剴ン晰fk粃M噐嶏鍾崸 u#/迾\\*昗X*蜼毘U肮叿sJ食嚹1^嗡U &3馫坽霋Fv蟉柞j鮄,c 逿 (J伀鴱祄m嫐)淃Wa涚妤f>A搹麆n斾%x卂2 +惧l尗翔澼僜'.萺i崛玭鏙炂}釅潈=1 才W压ko飷gP1k霙錴娚晬街76 }烈ねP圩N蘢+榭6焘8麮PiN佊鳛'$/蚧#X 64%0劦蕳&5,( 21lVf+鶓k񠵱毋|柬 j浊*嫈涳镞#墓摩鵐濄]o~靖翁g瘠膛7K 栩a 龅癖%W搁搕.e獈荇XCAy餼麛~K@所c秜汚+揠_泡^j4_qu_嬍蕓7)6 )m愮涳2嶴炯G竓6%?uX马P夥$v遵/獜涎鼈 0丰f)剡噣2嬢鸽懺狛D +沪Jヌe此([-穃纩^匍黙8廏濂 鞉M 34a翧?w焖kF5+n /E倓pD靟(=熇3甲)弎攔|褀c>w!娮l籒}骟6┣魫 鵤h儓s4橳蘪?T *╞: +8蓄=Zch撵坐腡R*bz辪枙桻騰k茔e陝刜EN沶槹c>旓*歪,楕竨6),`駬誼-峿f徟mNpV'}涑,仹髂JE砄LV龉粏★?徾=i>gP鑡孿3齵海Z碗k隢f泑语l9v絞啹?膏_覙4!]愠N稺頜兿鸺摠~-酱飖8 -嚬J灒{? 韑斳芉|鐐筡V梪嗑q緫葵3K豭O儖 i1珕銝}4GZ淇!矽"07Y潭r簪悘犔琻享9f5烌刈撝O?-7筯凣啉焥S5旿1y⺄敜;&橪>,w陣岜|職w2&巋蕴pW%{ /#1U豆E?;诱.G怡嘓荸姓挡&]匨煈 馣颜閯鵜Le梣ORz稕(&稷d|iU呇.艱8镥閘0簻{zk筎Qj鼵匡操64衵^9龃近寻擹藨跫瑽k&鱃砋b狄; +"H┓梼t砡hQ蹰[*%bA钶镤=o'\M $)3!y-桑{鶴x0O[泗K4Rv箱呍4輁c鑖砥p┛焺劒瑠╧塪跣韸☆mq0C?橏=瑳蕏=胄,眅:} 0偾肥腅+%b鷑调隲V?'颒龢-7&N緫熦*2鬴衿%颦穼栉辙 c%輣恙鵴唽,r _c牗髎K5含优'^俟u@y4n暿翬砌鏮迼料5s諂犭軡镗o_0黯{c 談烿紩挹S$}宂黿牚啭呫L駰簓8 珞_ G&憠x4 栟熿 +endstream +endobj +51 0 obj +<< +/Type/FontDescriptor +/CapHeight 850 +/Ascent 850 +/Descent -200 +/FontBBox[-27 -250 1122 750] +/FontName/OVJVAS+CMR7 +/ItalicAngle 0 +/StemV 79 +/FontFile 50 0 R +/Flags 4 +>> +endobj +50 0 obj +<< +/Filter[/FlateDecode] +/Length1 712 +/Length2 2111 +/Length3 533 +/Length 2642 +>> +stream +x陧抷<旐莔QC"矟1f蕁F茽恾{iT鰅媪0 c娜Pc-I^,QdIYSR鲮籰/ +I楱N稆溵笙鶞午耛厷栟覊K搹俅餧FI +7\讑)m!1F應v8|祟1%恍2(5;1N L颡}古9V徖\2Y玒缒叢鮅埠蜘虄俑4S簙靆媇L壜鋧q脡r寝程枮 66 痼-N蹣媛>d =rH雑jbw烀悫餮!BEFVc焆畱Qf6丗!嶙1糋;&檞97譑.CevF嚲曙, r幞`挊6昩(,yW諭p鏛+A^餴歲y蔢Oz8搭楦蹆;X/轩X吽EK 宴*_褝殛鵹9h輔籘譢趗襞隓S旣 昢捂振蛙赘s蟜4嫒;休>嶅玱肉;橔I昼擁J/FGI创K腭畷掻|騜I59 "~r#YM刧倬 k婑樋躅R( 栩岝-j]邐I溛 JJ9挡 蓐諩サ冀z镔%鐀HTf+D鯬r=晛Lf,糖*腺-c&"?~7Y豭Q逸aoV焖VDi隫xa婫G{E桎cTDT5o妬締峙t魔涫騵诈M拌<_笵蘀:P枏孒5鷩a圣L -際浤Ik牵(埔寜閥瀔=+此З^-0琂济娅>M[媷o1莭辡摴7雮虨{7鯵叆胖~M僺挫 託濇譢馔鐅96^)-J炱,忸漌9l$!fm揵襘眰緽h簷贀桘鼄{竲#u鏐劣@熺熧枛免挀E啿467d3\轾!-}綨WxO 誟k垦\u樽鈍匭耱v朶_凌k俔1 +ks7p镕)厈hD篇|:F自3 蘴隿4懸|黳*豴Q-盚*fu铬=S畀{q予"u庹pi牯浜筩P秌uE螵W渗蚺鴕E%AV*p糹觇迣駮給H 県诧檤昲礠;繾i畖詬塯V8測/夤y`c趹4餽魷涕嬧T +濆{嫓b叟怔螠鑐v倲崏w厧0jr{箁"緼肥!r漿鮪'{萜S Kms䓖!蘬褀!謖*昱墷34藂< 鄈歮 =鑒)%i8[.#?1+/+毅痻幼乒;阘婲讙dq0x8{z7蝄- +崍∫矢.5漊牖"削そ\2株髏壑.M]}4鶱3[镔4沯cb锤謇宏_sE搘v48G賥澉(]柵3w.|舛$M=灼~!#媃馫椬u綡`0L$h7霠岂 bd鍪b+H鵸pAo罰I忨《7Q嚾veRx槮#臵mu▔p8衽8)J;踰M 5(鰥胗 +/ 诲嫗&HZ埥曋蝎鮑穊8窤噄顎aH攫皛凁蛁 'P⌒6D暥l長HP暈-}馈0} g3恟钶犰&騛5N瀟f冥备hq掸-箟w K"恈-忔抹5煒缓軀F*`XU<{g兲k籥瀞删5V)9紊Q;享難s略O~N礡dpl喩9苴[杢3:咱漃u)eqL窽識22柣韍錱嵉坈蛏q拜2浘]铴g氦驳栅蟢Y廵=a搗Ng勉#黙烒O抳 !湹畱管鏳翆-X`g"g咤ozo9G!c9騔攚4繈f銬88泬齄&c覒诠'}(y阯唝@bzi-乇栿GH(;;臣3佤("婑鑟S”; +1谷$5cC箸娮sP d齁矬n誠5濡T箮槮彚 +迭X}O[霴<麛nUH!鈜?*棦c歶* 梤r軰暔N,$sDZ7*半1燇s袝Cd62訁idt堪絪溱糚櫋硩U+[郂劉e]鱖战S:〓.58\{.冎sy駲iee E懦8c惑R帆e剆运詋缠4鷁f/隋M汃|\襟檆M粷{跍軆(u墷惛焂 4莓寽?很幫'椱7呵韔薧朼蠀q漧.屗0`:瓙4&F +l顕!zCR鱤鞳吠Z陴=s&"^Vr絊秋嗻/'$G󁷙騱n j +endstream +endobj +55 0 obj +<< +/Type/FontDescriptor +/CapHeight 850 +/Ascent 850 +/Descent -200 +/FontBBox[-29 -960 1116 775] +/FontName/QTMLEN+CMSY10 +/ItalicAngle -14.035 +/StemV 85 +/FontFile 54 0 R +/Flags 68 +>> +endobj +54 0 obj +<< +/Filter[/FlateDecode] +/Length1 724 +/Length2 1831 +/Length3 533 +/Length 2372 +>> +stream +x陧択8旊+M!ez)f 啞4FN5r8T2f^c槂f喥攃鍞 !刪Hr蘗'C斨(t矂,╈¬{]坏快k圩~/飣=黧ī;帘dh蒬p郒$泪澻﹥醁 慍e2, 崓6 牎P5囚bQ)>営BX:娶拡 O澍tQ塇湗$* ,8~齾 8俵抲燩$ SI P莜P6 o&&A[繢湚垝蘢袀2 盏c奦E,1挚→92F#铱赃t"滼 沥p@g扐鉭 挬魺U慒%a缿:斄w伿钉rA=旵級462?器 D揍 ~^;?忲籮O28凕A駰齕嶞崏E:Rd?編赹塈2(嚾 Y6﨨en武瀫pcC裊C" 4 鴂嵨 瓯衅0@ Fz)I,揉|ń) $A32‘<辳狵}{香 葝vI帎陸灋籞趕恭踊F=6笩n"Ik5=敖N }}[z`1J徳!1<觹c洫7+渉^"鹼^ !玬"U鱟'fG矖x憺番)JewM]漩轜Oa:A棖f谮?;r(b )╤┪mr!趡 抵\鴺fn挮彪夀躤[﨨 硁媴fcBY裋甿I郄я%k碃浑]阞糚廮6鲜v鵬鹒\绿漼1簂鳐y騂冩7¤o鶿獀^f╇+k賡銥s 蝰滒$揨鍌gJ鵊<;愀n<艓犨众鸲楄暮 擥奬o譬衞寙wA*吶8临1順&saNt后Wx\畈 +簘;崂跃P鲖U稯w't鴠邽┴惋P灉挲窾童,渹l7Ur囁e隇桹i0W艉汝盅 +f隵覹3pi*_縵 *驷<㈨錘瘽茚(l宵芕DI頿擝页炻g稉*伄[?>鹼9鐳\(踷U鳡铭e礽汾a鬸43R8鄘m,缱 y堟j垬$m鵔w)じ2璧-雗荱嶋侟$舼倳0?K忓B杄[ 堏yr唵S@粃g毑膏訹楄丢9拼LGpq眗島兮5 8搛∫G鲁龇殟爝L⑵磍澽){!^%倯斳0夥議骪鶈)俑J苛Z渑Bgur蚔A作蚚3缶2鎵魟VKX吡鲇磖Ofn $S珖塮*澮w芆 ?eN"d鴚歏迎{y罯搩b4坮 +遤_, 鎭'稣m堹&┍揟絓0糐冁伀b朹GM觧 箟M輒斐誦M!<8氬偹>:[恷滠D~鲅恼騝撦虴i)嶫辦"弲Z鈣攃傩6^苝<成压dKi5衤靵3韥n<c葢";嬃G羁榅M{M+貼}i凿茟锛煽R5O-*.飥雍? +7o庞駢U 苰&,xv}to.销h鼸[犷5本笼w曾v5.鵃夷=磿琦糨C 賫鑎c§]3}艭恊6K1盻+-炯]薍螤 +襱Yo馠卿9彰孼KX鸽如EE?lG絯]湋3娙d (e-xs廣(=v瞏*P肰~cFl;*逵碿!碷驙+袮顝"韞qW 駞陆齢_毝腉繕铚S猟_仉 + 蛈怑鶐琦*宔窔|袋7圂QV斒澒Uo状K漒T\?H>o檝 碃e焝E堉缆q追.崣瞩ノぞ^*霜RZ{籁畿 瘀P嗦=遗Gw擰譨>l冈熻邜 濿黢欺9譝"敝劜P唓憫鞂ゃF蒣拨1糴}通鑍U絰绌#師'+f斟!/. !1胨ex## s槂[4i琕3q]3}.x掹饡寲S| D;4窋c庩*V 箮敕葑oj"萀婍函6d‘Y9*Y&{7kzbl~BZq\98\顬r饗霄V勳 瘋电.暖糞筫柭湛L萗疳鲓甐6獍瑯Wg餎L|坪du踅 拔 {1> +endobj +57 0 obj +<< +/Filter[/FlateDecode] +/Length1 713 +/Length2 1304 +/Length3 533 +/Length 1836 +>> +stream +x陧抺8T荱甤󇅒栯峚唵\J3.吤萴)寵5,媛虤楶{;旀處⒇谪m卹M鍁.rKN斎Qr澼vkN<?9濈蟴匡w}呦z紫H纤崸sBAFc桶秬!罋aFF嶾 +Cm瑣 荔 挡的兕睞 GN攢 厖已d誩 郰 賭Y 鴓h 蟙瞢or弨t3 B0垗0_ere38鹾L鏕}j< 攑J:囃t悂0麂H脒P}盥g2=┈狰=}薛 ︵+僜纼C轨檄$p潔繿~12!毯馶燲愵链pAe蚶5d?G恖m 罍L魆騮C絮b镁偍?bW輐5鰺礵9\(燻0(?=3浧0Σ門.酜(嚻Nr,v8l驴P4tup 期 +乏银\.葐佷? Hi 9[ 力讪鶒功>}噎銮^堹Y8q緁g藬"S片?鈊rぷ /QぎCJ1淮&qP矦燯2牴撗VGy9o[篕綒佳紂 ⅡqqA2蕛3魘8猘巾5媫鲝5<怮 濼_邧播9歉烢] _梕w8疑贳-X墫+~雏衺莧D帴﹙7逸 +*飊0!<肹5硘}聃P/墾Q鑳聺O>(爞. 袜w潛{[K耾艡响P蓖憾7稩穕浖瘩=°洂17鄄愷h眘"幄V釥堼+7R翩袪;e幒%D阫潲[t>鬇轕颿c|遾5什BDY鹶v(ec}J酿淣f葻篜ゐx鈚兗传0p愨;*瀝C&j馫20澯呾e数Xgt2盹)uAA?f_~曯]X)囓,6?祮迴撻轪璏嫛疲鹩飭V曤苶+诨>乩K;j*/$(U T]?縲镶jx牳礙z;鉢W乎馇A8hX覱濬B砇Te駙独+z簜H荇b櫰媋qy鯩i"3C{顶艁6@憢>$V#昙催糤婌9)s壈纎s v +Es趏唄)湛潛vvqi6 佺矽iI豋稳髒蔄F酽b萤c珑$~坏鴴 趕 U)J7蜈Bqc蠤;1-yR*鮢a瘖墦釷潎鲪uSsL 5 # 瑅*+弄i}験?*nX竲贤U邥厠bY眹輈驖梠屯N巻L扃肺█頮f焴茄ㄞw丟$=騮u9哑夎I嫕#疋9絊w<顦m4呮菉縷飞泍K齑﹞~亏 /婮裏-FN酩漚|軃{VN3 +4,Sk璭 寷,啨k蟅lZ葪o--1籬/ж"铷殗唛緱I怩骻87Mh壇Zz ?8眭_>ht抛娧SU韘w楧2廓I櫖T喌坊=QL2\Q]灋6o>{绰N琥羂K!M}21ur娫}阚泬|\/瘜蘧T 荤\弊礎鉎0<濒!隱"_素z5╈鼠?擗鶠`汎mP噼殩k=]/媸籿7獐E鰲橀灹繅畣o\蜘紞骋L皚辕U?鲷婻符偾磽栵%0$狂a,命褧⒘}蒭院燃稊\D|戲8sn&鐁!|軘艸燦彣4團侪8 窻y,$#AK駶>蔄恕瑢k攼W軙];腹>炘鰥A莬暡+煦メ|所I\褡|牤e諐鶭[~0箹咘//'hL愂9,*7侙h族 +endstream +endobj +62 0 obj +<< +/Type/FontDescriptor +/CapHeight 850 +/Ascent 850 +/Descent -200 +/FontBBox[-341 -250 1304 965] +/FontName/NJLXDH+CMR5 +/ItalicAngle 0 +/StemV 89 +/FontFile 61 0 R +/Flags 4 +>> +endobj +61 0 obj +<< +/Filter[/FlateDecode] +/Length1 717 +/Length2 1396 +/Length3 533 +/Length 1927 +>> +stream +x陧抺8T牵秜Sn=雅RF屘︿6a*譭Vffi.11工B-鯪I棫P$r熫sIE!工溤S戁壱99C粆瀋蝧;蟉k{唢w}燉N讔al # d*`镡A兠袤`P燶(僖p剝 鵆$ 兀a"" 鏫鎬-!L 竴#a俵2X "- x探<`>;C 哃 )傕`剫!蜛压,0迒刟?0/ 鍵 9'剅"俌+*栍`唊a福愅v9s耱Q齀9[艋巖聞笭蹄.磟逻裓`r猼菷樁躟6 惥#Cn垁癅6烇肻h!剕pDW'g/贜y燏]s甡(鞆9髚M-|H蜷掑Fc宸`/.n0\銩4dg嘑D洑c + 洅-窨:鱮B楴($绍耣舅騲0W0f!蝰纏棠0躚 <^EZP╫鱌枱穖7墩銛椪6}簃=T妷律(++FМ吞vD;Y菨頗}(搛嘅割钌鳦麞鄹~V7+ 譒u睳鰷桒莤曺噆#紴婑祡=5)GhsH唬t齜О痑k鵨粀:_(辪証搟9N&龛貊5◥1f新[n&bq*勆u鹜O媻啈z空|瓘唙蕦蒖慫赫U廜xKq)\誸茢P#絫V②崪节k踔陁徨3~z3}殟y^5O) 賸釗_騖2<襃-匠1IA↓A+誧銀#!E匚泟綷 飚籱烮 酉M芘Z翊 獛 B/櫍d华gl鞪誼芄w︴鰧AE櫵t|迎輠}諂 +g嶌怽EKR籲壁索 $す欧隷_k寎S櫂c'粤5僂 %挗7讦镦瀇,笰#򵲭叴9憙_虲3L芅*篖-S-緀X'9呑b;40U -_ i岞2;蕘疳屜絢y6偛m ′ +菝瘾嘶辉 荽甞>飜6敆 8n熦'痖戀斠]eOy偿洳俘濸呠K靤晬 +:y#Aj嫶|6c腰s炬g咳峄f+[!qAwlL朴惕1典o淮7fA}_琒&嚺K屋x远t邌.)皃髏亷>8非<菸瘭8赟:{^鐘睠5獠a肰鍋O愹ET%邩_)%俳挣甾棘U}轑扜秺忉丈*巘轨1逥?E1涤耰c鴏}7湝鱤蜥珬5酵儠w7鸏霪i 扒枬淡Zrb殒`5跥沛=z{魪鞏汀FN柄榁蹙峕{;=蟋瘆鈹%颶厎 丿_`慛鄖Gre^sq统冎kQKEp[驚,/瀂%xぱ堊{'?捑M司)獅呤竊Aк╙;+铯瓀Az莥xya?纃 Or@^(泼p +endstream +endobj +65 0 obj +<< +/Type/FontDescriptor +/CapHeight 850 +/Ascent 850 +/Descent -200 +/FontBBox[-15 -951 1252 782] +/FontName/AGRETO+CMSY7 +/ItalicAngle -14.035 +/StemV 93 +/FontFile 64 0 R +/Flags 68 +>> +endobj +64 0 obj +<< +/Filter[/FlateDecode] +/Length1 721 +/Length2 691 +/Length3 533 +/Length 1205 +>> +stream +x赟U 謚L蒓Ju讼+󙬕碦p 4W03郣Uu.JM,商蟬I,I礡0创4Tp,MW04U002225忖RUp/,蔐(Q衟2Wp蘉-蔐N蘏餗,蒆挏槪湡湙ZR┃犩槗襌擹淶T枤⑶舉h◥挋\敋灆钎r揼^Z緜9D8ゴ&U朲T t梻袧 +@W︿珏T*い辂mK簠dgaq横n99~壒 鉇釀!潣洐S U悷[PZ抁む洘抁攪4<6咴斕襖tY蠏臏蘢羌魷T]C=cS圖f盵fEjJ@fIr咮ZbNq*X<5/)佬;D哐=5腳蓘奶紥愂俆刯0RQf匓磥瀬!P!耎県柟%绉d妤+$妤$ダ0邃擾Q LC簴 +咶 +F胆 +C2 KS=]L , 土⑸E﹜%嗄0専 ぴ詩詃sD3鉼d悼&|9pU)|讐s77蘎徻d(閣緄rkS具糌s鐜k雦^1筇=鶝6Zs踑s達y2-3酥%熶阁^Ψ 嬻J趽}9鎋夲哺+l墸5鼹_ ?軟华%a縶T耗嗐6醾驭,夛v3k0枡2<柴鏪辫R閆頻e蝯 6騨? 猶芨s)_磺3四侃F&磀<暠sЯ捸X佴:&潍笏'o钫┻y剆ue毛玵篼硾3t\鼤[$r玈 4c疜E忿+捍rSV姀'_縜2鰑颣+vp蟲7鏽桵诩+魸_-{镊~箒^)o哮傒婽I杞1葛铦>呴膦L娣栱g2)近蓦D^c]Q,'$'兄齔胥浘 癖l>槮硊y斪錄;'4茷滇麞5Kj纥_{(鞐j缄35档宾\K<n鬗薠n裻 K葬鳅>嶙UOf&宏JsW<豗昃噩v綤 窡厵除旅;^*/ 荪l瓢$?O38韇鳗5櫮咛赗1S欹C幕 :惘4洡t愍q抁瘙樺拶鱴%>鮕茈q%u梢プ巿隩yW巳I鱨{鍪拙j猥趶舑鐣/藚?芪窖鄂绕筭|钫駔鸯+q禀 +嫃D椖8桙壬?&跌L耭仴+,凓K"?菧鉸⺶y懻5*+頪"x飰郢5訜,k]!隚S2'御7J%趖渣厐k詟aa@rNjbQI~nbQ6<8 +endstream +endobj +1 0 obj +<< +/Creator( TeX output 2007.09.14:1617) +/Producer(dvipdfm 0.13.2c, Copyright \251 1998, by Mark A. Wicks) +/CreationDate(D:20070914161805+01'00') +>> +endobj +5 0 obj +<< +/Type/Page +/Resources 6 0 R +/Contents[31 0 R 4 0 R 32 0 R 33 0 R] +/Thumb 35 0 R +/Parent 3 0 R +>> +endobj +36 0 obj +<< +/Type/Page +/Resources 37 0 R +/Contents[31 0 R 4 0 R 67 0 R 33 0 R] +/Thumb 69 0 R +/Parent 134 0 R +>> +endobj +70 0 obj +<< +/Type/Page +/Resources 71 0 R +/Contents[31 0 R 4 0 R 72 0 R 33 0 R] +/Thumb 74 0 R +/Parent 134 0 R +>> +endobj +134 0 obj +<< +/Type/Pages +/Count 2 +/Kids[36 0 R 70 0 R] +/Parent 3 0 R +>> +endobj +75 0 obj +<< +/Type/Page +/Resources 76 0 R +/Contents[31 0 R 4 0 R 77 0 R 33 0 R] +/Thumb 79 0 R +/Parent 3 0 R +>> +endobj +80 0 obj +<< +/Type/Page +/Resources 81 0 R +/Contents[31 0 R 4 0 R 109 0 R 33 0 R] +/Thumb 112 0 R +/Parent 135 0 R +>> +endobj +113 0 obj +<< +/Type/Page +/Resources 114 0 R +/Contents[31 0 R 4 0 R 130 0 R 33 0 R] +/Thumb 133 0 R +/Parent 135 0 R +>> +endobj +135 0 obj +<< +/Type/Pages +/Count 2 +/Kids[80 0 R 113 0 R] +/Parent 3 0 R +>> +endobj +3 0 obj +<< +/Type/Pages +/Count 6 +/Kids[5 0 R 134 0 R 75 0 R 135 0 R] +/MediaBox[0 0 595 842] +>> +endobj +31 0 obj +<< +/Length 1 +>> +stream + +endstream +endobj +33 0 obj +<< +/Length 1 +>> +stream + +endstream +endobj +4 0 obj +<< +/Length 33 +>> +stream +1.00028 0 0 1.00028 72 769.82 cm +endstream +endobj +136 0 obj +<< +>> +endobj +137 0 obj +null +endobj +138 0 obj +<< +>> +endobj +2 0 obj +<< +/Type/Catalog +/Pages 3 0 R +/Outlines 136 0 R +/Threads 137 0 R +/Names 138 0 R +>> +endobj +xref +0 139 +0000000000 65535 f +0000855253 00000 n +0000856641 00000 n +0000856290 00000 n +0000856491 00000 n +0000855417 00000 n +0000015923 00000 n +0000000009 00000 n +0000721950 00000 n +0000721751 00000 n +0000001823 00000 n +0000743822 00000 n +0000743612 00000 n +0000002961 00000 n +0000762966 00000 n +0000762770 00000 n +0000004102 00000 n +0000783284 00000 n +0000783074 00000 n +0000005235 00000 n +0000796894 00000 n +0000796692 00000 n +0000006379 00000 n +0000007523 00000 n +0000814117 00000 n +0000813923 00000 n +0000008477 00000 n +0000009423 00000 n +0000820944 00000 n +0000820756 00000 n +0000010328 00000 n +0000856391 00000 n +0000011246 00000 n +0000856441 00000 n +0000015824 00000 n +0000015984 00000 n +0000855532 00000 n +0000034430 00000 n +0000825673 00000 n +0000825483 00000 n +0000016909 00000 n +0000831776 00000 n +0000831585 00000 n +0000017846 00000 n +0000836786 00000 n +0000836594 00000 n +0000018840 00000 n +0000839946 00000 n +0000839757 00000 n +0000019845 00000 n +0000843938 00000 n +0000843752 00000 n +0000020822 00000 n +0000021788 00000 n +0000846889 00000 n +0000846694 00000 n +0000023404 00000 n +0000849563 00000 n +0000849375 00000 n +0000024356 00000 n +0000025371 00000 n +0000851700 00000 n +0000851513 00000 n +0000026339 00000 n +0000853935 00000 n +0000853741 00000 n +0000027347 00000 n +0000028357 00000 n +0000034258 00000 n +0000034492 00000 n +0000855651 00000 n +0000041527 00000 n +0000035505 00000 n +0000041379 00000 n +0000041589 00000 n +0000855849 00000 n +0000047970 00000 n +0000042612 00000 n +0000047882 00000 n +0000048032 00000 n +0000855966 00000 n +0000575722 00000 n +0000049041 00000 n +0000049332 00000 n +0000049365 00000 n +0000091556 00000 n +0000091850 00000 n +0000091883 00000 n +0000199822 00000 n +0000200111 00000 n +0000200144 00000 n +0000289341 00000 n +0000289634 00000 n +0000289667 00000 n +0000344781 00000 n +0000345074 00000 n +0000345107 00000 n +0000368204 00000 n +0000368497 00000 n +0000368530 00000 n +0000403128 00000 n +0000403423 00000 n +0000403458 00000 n +0000440928 00000 n +0000441223 00000 n +0000441258 00000 n +0000527059 00000 n +0000527353 00000 n +0000527388 00000 n +0000571533 00000 n +0000575521 00000 n +0000575588 00000 n +0000575802 00000 n +0000856087 00000 n +0000720268 00000 n +0000577612 00000 n +0000577907 00000 n +0000577942 00000 n +0000608797 00000 n +0000609093 00000 n +0000609128 00000 n +0000653760 00000 n +0000654055 00000 n +0000654090 00000 n +0000686959 00000 n +0000687255 00000 n +0000687290 00000 n +0000702224 00000 n +0000702520 00000 n +0000702555 00000 n +0000713447 00000 n +0000720119 00000 n +0000720175 00000 n +0000720349 00000 n +0000855770 00000 n +0000856210 00000 n +0000856573 00000 n +0000856596 00000 n +0000856618 00000 n +trailer +<< +/Size 139 +/Root 2 0 R +/Info 1 0 R +>> +startxref +856739 +%%EOF diff --git a/.svn/pristine/fd/fd3d907bff15ca64cf40d1164a7bfe340bb37dd5.svn-base b/.svn/pristine/fd/fd3d907bff15ca64cf40d1164a7bfe340bb37dd5.svn-base new file mode 100644 index 0000000..fe73c33 --- /dev/null +++ b/.svn/pristine/fd/fd3d907bff15ca64cf40d1164a7bfe340bb37dd5.svn-base @@ -0,0 +1,56 @@ +/** + * @file + * @brief + * + * @author Thomas Escher + */ + +#ifndef CACHE_DATA_ACCESS_H +#define CACHE_DATA_ACCESS_H + +#include "slam6d/data_types.h" + +#include +#include + +// hide the boost namespace and shorten others +namespace +{ + namespace ip = boost::interprocess; +} + + + +/** + * @brief Access object for data in a CacheObject. + * + * This object functions as a reading lock on the data in a CacheObject. While any of these objects exists with a lock on a CacheObject it is guaranteed the CacheManager won't remove it from memory when flushing the cache. + * It is derived from the DataPointer class, which already represents application-specific access operators for this data, and builds the locking functionality on top of it. + * A CacheDataAccess is returned by the accessing function in a CacheObject as a temporary and is constructed by these means (&&-ctor). Size and data pointer will be copied and the reading lock will also be obtained. When all CacheDataAccess instances for a given CacheObject are destroyed (fell out of scope) all read locks are gone and the CacheManager is able to remove its contained data from memory. + */ +class CacheDataAccess : public DataPointer { + class Lock : public PrivateImplementation { + public: + Lock(ip::interprocess_upgradable_mutex& mutex); + // on destruction, the lock has to be released, which comes from m_lock destruction + virtual ~Lock() {} + private: + ip::sharable_lock m_lock; + }; +public: + // CacheDataAccess& operator=(const CacheDataAccess&) = delete; + // CacheDataAccess(const CacheDataAccess&) = delete; + + //! Aquires a lock on the mutex and takes assigned data + CacheDataAccess(ip::interprocess_upgradable_mutex& mutex, unsigned int& size, unsigned char* data); + + CacheDataAccess(CacheDataAccess&& other) : DataPointer(other) {} + + //! Non-locking version + //CacheDataAccess(unsigned int& size, unsigned char* data); + + //! Transfers the lock to this instance and also takes assigned data + //CacheDataAccess(const CacheDataAccess& other); +}; + +#endif //CACHE_DATA_ACCESS_H diff --git a/.svn/pristine/fd/fd72205590e8900acdb6b9b87b545c48759d6569.svn-base b/.svn/pristine/fd/fd72205590e8900acdb6b9b87b545c48759d6569.svn-base new file mode 100644 index 0000000..4d3d5bf --- /dev/null +++ b/.svn/pristine/fd/fd72205590e8900acdb6b9b87b545c48759d6569.svn-base @@ -0,0 +1,16 @@ + +Always remember Arnold's Laws of Documentation: + + (1) If it should exist, it doesn't. + (2) If it does exist, it's out of date. + (3) Only documentation for useless programs transcends the + first two laws. + + +If you're still interested in the documentation, you can generate both +a doxygen version and some more information about the mathematical background +by typing "make docu" in the parent directory. + +Furthermore, there are some relevant publications in the 'papers' directory, +which are also cited in the source code. + diff --git a/.svn/pristine/fd/fd8591c2a4d3c28e6565e6e0c078d0cf6c63457c.svn-base b/.svn/pristine/fd/fd8591c2a4d3c28e6565e6e0c078d0cf6c63457c.svn-base new file mode 100644 index 0000000..fdb0a22 --- /dev/null +++ b/.svn/pristine/fd/fd8591c2a4d3c28e6565e6e0c078d0cf6c63457c.svn-base @@ -0,0 +1,181 @@ +///////////////////////////////////////////////////////////////////////////// +// Matrix.h : +// Interface of the class CMatrix +// Author : freeia +// Modified Date : 3/11/2003 +// E-mail : freeia@163.com +// Company/School : hdcad +///////////////////////////////////////////////////////////////////////////// + +#ifndef _MATRIX_H +#define _MATRIX_H + +#include + +using namespace std; + +typedef vector VDOUBLE; +typedef vector TMatrix; + + +class CMatrix +{ + + /************************************************************************ + * the interface function of the class CMatrix * + ************************************************************************/ +public: + + ///////////////////////////////////////////////////////////////////////// + // Construction and Destruction + CMatrix(); + + CMatrix(CMatrix& cMatrixB); + + ~CMatrix(); + + TMatrix m_pTMatrix; + + ///////////////////////////////////////////////////////////////////////// + // According to the parameters nRow & nCol to construct a matrix + CMatrix(unsigned int nRow, unsigned int nCol); + + + ///////////////////////////////////////////////////////////////////////// + // This function initialize the matrix : + // the matrix which has been initialized has 0 row & 0 column, and + // all elements in it is zeros. + // + void Initialize(); + + ///////////////////////////////////////////////////////////////////////// + // This function initialize the matrix : + // all elements in it is zeros. + // + void InitializeZero(); + + ///////////////////////////////////////////////////////////////////////// + // To make random in the elements of the matrix and the elements of the + // matrix has been randomized between -1 and 1.These elements must be + // decimal fractions. + // + void RandomInitialize(); + + ///////////////////////////////////////////////////////////////////////// + // Overload Operations + + // 'CMatrix + CMatrix' + CMatrix operator + (CMatrix& cMatrixB); + // 'CMatrix - CMatrix' + CMatrix operator - (CMatrix& cMatrixB); + // 'CMatrix * CMatrix' + CMatrix operator * (CMatrix& cMatrixB); + // 'CMatrix * double' + CMatrix operator * (double nValue); + // 'CMatrix = CMatrix' + CMatrix& operator = (CMatrix& cMatrixB); + CMatrix& operator = (const CMatrix& cMatrixB); + // 'CMatrix += CMatrix' + CMatrix& operator += (CMatrix& cMatrixB); + // 'CMatrix .* CMatrix' + CMatrix operator / (CMatrix& cMatrixB); + + CMatrix Transpose(); + + ///////////////////////////////////////////////////////////////////////// + // Inverse the matrix + // + CMatrix Inverse(); + + unsigned int GetMatrixRowNumber() const + { + return m_nRow; + } + + ///////////////////////////////////////////////////////////////////////// + // Get the matrix Colum Number + // + unsigned int GetMatrixColNumber() const + { + return m_nCol; + } + + void CopySubMatrixFromVector(CMatrix& cMatrix,unsigned int nIndex); + + void CopySubMatrix(CMatrix& cMatrix,unsigned int nStartX,unsigned int nStartY); + + void CopyMatrix(CMatrix& cMatrix); + + CMatrix MergeColumnsToColumnVector(); + + CMatrix Sigmoid(); + + CMatrix SigmoidDerivative(); + + CMatrix tanh(); + + CMatrix tanhDerivative(); + + CMatrix Tansig(); + + CMatrix TansigDerivative(); + + void MakeAllColumnElementsSameValue(unsigned int nRowIndex); + + void Eye(); + + double GetSystemError() const; + + CMatrix AbsoluteValue(); + + void GetMatrixData(CMatrix& cMatrix, unsigned int nIndex); + + void SetMatrixData(CMatrix& cMatrix, unsigned int nIndex); + + + void GetMatrixRowData(CMatrix& cMatrix, unsigned int nIndex, unsigned int nRow); + + + void SetMatrixRowData(CMatrix& cMatrix, unsigned int nIndex, unsigned int nRow); + + ///////////////////////////////////////////////////////////////////////// + // Get the total value of the matrix + double GetTotalElementValue(); + + + void nncpyi(CMatrix &cMatrix, unsigned int nTimes); + + + void nncpyd(CMatrix &cMatrix); + + + void nncpy (CMatrix& cMatrix, unsigned int nTimes); + + + +public: + + unsigned int m_nRow; + unsigned int m_nCol; + + + void SetMatrixRowNumber(unsigned int nRow); + + void SetMatrixColNumber(unsigned int nCol); + + void SetMatrixRowAndCol(unsigned int nRow,unsigned int nCol); + + void SwapMatrixRow(unsigned int nRow1,unsigned int nRow2); + + void SwapMatrixCol(unsigned int nCol1,unsigned int nCol2); +}; + + +///////////////////////////////////////////////////////////////////////////// +// overload operator 'double - CMatrix' +CMatrix operator - (double nValue,CMatrix& cMatrixB); + +CMatrix MergeMatrix(CMatrix& cMatrixA,CMatrix& cMatrixB); + + +#endif // _MATRIX_H \ No newline at end of file diff --git a/.svn/pristine/fd/fde409cc42903b18bb17d1ac8c050379dbf58b6d.svn-base b/.svn/pristine/fd/fde409cc42903b18bb17d1ac8c050379dbf58b6d.svn-base new file mode 100644 index 0000000..34caa70 --- /dev/null +++ b/.svn/pristine/fd/fde409cc42903b18bb17d1ac8c050379dbf58b6d.svn-base @@ -0,0 +1,37 @@ +/** + * @file + * @brief IO of a 3D scan in Kurt3D file format + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SCAN_IO_OLD_H__ +#define __SCAN_IO_OLD_H__ + +#include +using std::string; +#include +using std::vector; + +#include "scan_io.h" + +/** + * @brief 3D scan loader for Kurt3D scans + * + * The compiled class is available as shared object file + */ +class ScanIO_old : public ScanIO { +public: + virtual int readScans(int start, int end, string &dir, + int maxDist, int mindist, + double *euler, vector &ptss); +}; + +// Since this shared object file is loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/.svn/pristine/fe/fe0c1544b027a27566620eaaa9af21cde30bdcd6.svn-base b/.svn/pristine/fe/fe0c1544b027a27566620eaaa9af21cde30bdcd6.svn-base new file mode 100644 index 0000000..c54e33d --- /dev/null +++ b/.svn/pristine/fe/fe0c1544b027a27566620eaaa9af21cde30bdcd6.svn-base @@ -0,0 +1,28 @@ +#pragma once + +#include + +struct Frame { + CvMat *trn; + CvMat *rot; + IplImage *img; + CvPoint **status; + CvPoint3D32f **pts; + CvSize sz; + double alignError; +}; + +Frame *allocFrame3DData(CvSize pmdSz); +void fillFrame(Frame *f, IplImage *img, CvSize pmdSz, CvPoint3D32f **pts, CvPoint **status + , CvMat *rot, CvMat *trn, double alignError); +void releaseFrame(Frame **f); + +struct History { + Frame *frame; + History *prev; +}; + +History *createHistory(); +History *addFrame(History *h, Frame *f); +void releaseTail(History *h); +void checkHistoryLen(History *h, int maxLen); diff --git a/.svn/pristine/fe/fe5ef4662457c1e4a038422f8b74c4fb625f4caa.svn-base b/.svn/pristine/fe/fe5ef4662457c1e4a038422f8b74c4fb625f4caa.svn-base new file mode 100644 index 0000000..ff00049 --- /dev/null +++ b/.svn/pristine/fe/fe5ef4662457c1e4a038422f8b74c4fb625f4caa.svn-base @@ -0,0 +1,32 @@ +/** + * @file graph balancer implementation and utility functions + * @author Jochen Sprickerhof. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __ELCH6D_H__ +#define __ELCH6D_H__ + +#include "loopSlam6D.h" + +class elch6D : public loopSlam6D { + + public: + elch6D(bool _quiet, icp6Dminimizer *my_icp6Dminimizer, double mdm, int max_num_iterations, + int rnd, bool eP, int anim, double epsilonICP, int nns_method) + : loopSlam6D(_quiet, my_icp6Dminimizer, mdm, max_num_iterations, rnd, eP, anim, epsilonICP, nns_method) {} + + static void graph_balancer(graph_t &g, int f, int l, double *weights); + + static void graph_weight_out(graph_t &g, int first, int last, double *weights); + static void graph_weight_out(graph_t &g, int first, int last, double *weights, string &out_file); + static void graph_pos_out(graph_t &g, const vector &allScans); + static void graph_pos_out(graph_t &g, const vector &allScans, string &out_file); + static void dot_pos_out(graph_t &g, const vector &allScans, string &out_file); + static void graph_out(graph_t &g); + + static void graph_out(graph_t &g, string &out_file); + static void slim_graph_out(graph_t g); + static void slim_graph_out(graph_t g, string &out_file); +}; + +#endif diff --git a/.svn/pristine/fe/feb82c42a082a97f3aba8a02f943e5ac3a7d87f8.svn-base b/.svn/pristine/fe/feb82c42a082a97f3aba8a02f943e5ac3a7d87f8.svn-base new file mode 100644 index 0000000..71a4eaf --- /dev/null +++ b/.svn/pristine/fe/feb82c42a082a97f3aba8a02f943e5ac3a7d87f8.svn-base @@ -0,0 +1,84 @@ +function correctedData = testICP(anglex, angley, anglez) + % erstellung der testrotation, Winkelangabe in grad + Rz = [cos(anglez) -sin(anglez) 0; + sin(anglez) cos(anglez) 0; + 0 0 1]; + + Ry = [ cos(angley) 0 sin(angley); + 0 1 0; + -sin(angley) 0 cos(angley)]; + + Rx = [1 0 0; + 0 cos(anglex) -sin(anglex); + 0 sin(anglex) cos(anglex)]; + + R = Rz * Ry * Rx; + + %% generate random model + model = rand(3, 10)*100 + + %% generate noise + noise = rand(3, 10)*5; + + % rotate and translate model to use as data to be matched + %data = R * model + 200; + + % rotate and translate model to use as data to be matched and add noise + data = R * model + 200 + noise; + + + %% center model cloud + cm = sum(model')' / size(model,2); + centerModel = model - repmat(cm, 1, size(model,2)); + + %% center data cloud + cd = sum(data')' / size(data,2); + centerData = data - repmat(cd, 1, size(data,2)); + + %% correlation matrix H + H = zeros(3,3); + for i=1:size(data,2) + for j=1:3 + for k=1:3 + H(j,k) = H(j,k) + centerModel(j,i)*centerData(k,i); + end + end + end + +% H = zeros(3,3); +% for i=1:3 +% for j=1:3 +% H(i,j) = model(i,:) *data(j,:)'; +% end +% end + + %% rotation + % error in the paper: not H*H' but H'*H! + HH = H'*H; + + [eVec, eVal] = eig(HH); + + lamb1=eVal(1,1); + lamb2=eVal(2,2); + lamb3=eVal(3,3); + + u1=eVec(:,1); + u2=eVec(:,2); + u3=eVec(:,3); + + R=H*(1/sqrt(lamb1)*(u1*u1') + 1/sqrt(lamb2)*(u2*u2') + 1/sqrt(lamb3)*(u3*u3')) + + + %% translation + t=(cm - R*cd) + + + %% transform data to match the model + transformeddata = R*data + repmat(t, 1, size(data,2)) + + %%plot model and transformed data + plot3(transformeddata(1,:),transformeddata(2,:),transformeddata(3,:), 'r.', model(1,:),model(2,:),model(3,:),'go') + legend ('transformed data', 'model', 'Location','NorthEast') + +end + \ No newline at end of file diff --git a/.svn/pristine/ff/ff20af39715cd552a2d39649ce50dbdbf290673c.svn-base b/.svn/pristine/ff/ff20af39715cd552a2d39649ce50dbdbf290673c.svn-base new file mode 100644 index 0000000..8a31065 --- /dev/null +++ b/.svn/pristine/ff/ff20af39715cd552a2d39649ce50dbdbf290673c.svn-base @@ -0,0 +1,31 @@ +if(WITH_MODEL) + + # Module name + set(MODULE "Model") + set(UNIX_LIBS shape scan newmat dl ANN) + set(WIN32_LIBS shape scan newmat XGetopt) + + # Set CXX flags for CGAL + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -frounding-math") + + # Sources + file(GLOB SOURCES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.cc") + + # Binaries + add_executable(model ${SOURCES}) + + # Find libraries + find_library(LIB_CGAL CGAL) + find_library(LIB_GMP gmp) + find_package(Boost REQUIRED) + find_package(OpenCV REQUIRED) + + if(UNIX) + target_link_libraries(model ${UNIX_LIBS} ${LIB_CGAL} ${Boost_LIBS} ${LIB_GMP} ${OpenCV_LIBS}) + endif(UNIX) + + if (WIN32) + target_link_libraries(model ${UNIX_LIBS} ${LIB_CGAL} ${Boost_LIBS} ${LIB_GMP} ${OpenCV_LIBS}) + endif(WIN32) + +endif(WITH_MODEL) diff --git a/.svn/pristine/ff/ffc633e3b12c41182619e2d4c688f35c12352632.svn-base b/.svn/pristine/ff/ffc633e3b12c41182619e2d4c688f35c12352632.svn-base new file mode 100644 index 0000000..a3033c6 --- /dev/null +++ b/.svn/pristine/ff/ffc633e3b12c41182619e2d4c688f35c12352632.svn-base @@ -0,0 +1,7 @@ +Authors (in chronological order): + +Joerg Schulenburg (remove NO+SPAM for valid EMAIL address) + * Original idea and creation, programmer leader + +Bruno Barberi Gnecco + * Programmer diff --git a/.svn/pristine/ff/fffcf1a03a22d599d51337c8e1b99d71f1d20347.svn-base b/.svn/pristine/ff/fffcf1a03a22d599d51337c8e1b99d71f1d20347.svn-base new file mode 100644 index 0000000..b420a69 --- /dev/null +++ b/.svn/pristine/ff/fffcf1a03a22d599d51337c8e1b99d71f1d20347.svn-base @@ -0,0 +1,9 @@ + +#include "pnm.h" + +void readpcx(char *name,pix *p,int vvv); + +/* write 8bit palette no RLE, ToDo: obsolete? */ +void writebmp(char *name,pix p,int vvv); + +/* ------------------------------------------------------------------------ */ diff --git a/.svn/wc.db b/.svn/wc.db new file mode 100644 index 0000000..3547808 Binary files /dev/null and b/.svn/wc.db differ diff --git a/3rdparty/CMakeLists.txt b/3rdparty/CMakeLists.txt new file mode 100644 index 0000000..2b29350 --- /dev/null +++ b/3rdparty/CMakeLists.txt @@ -0,0 +1,91 @@ +# Compile ANN library +SET(ANN_DIR ${CMAKE_SOURCE_DIR}/3rdparty/ann_1.1.1_modified/src/) +SET(ANN_SRCS + ${ANN_DIR}ANN.cpp + ${ANN_DIR}brute.cpp + ${ANN_DIR}kd_tree.cpp + ${ANN_DIR}kd_util.cpp + ${ANN_DIR}kd_split.cpp + ${ANN_DIR}kd_dump.cpp + ${ANN_DIR}kd_search.cpp + ${ANN_DIR}kd_pr_search.cpp + ${ANN_DIR}kd_fix_rad_search.cpp + ${ANN_DIR}bd_tree.cpp + ${ANN_DIR}bd_search.cpp + ${ANN_DIR}bd_pr_search.cpp + ${ANN_DIR}bd_fix_rad_search.cpp + ${ANN_DIR}perf.cpp) +add_library(ANN STATIC ${ANN_SRCS}) +IF(EXPORT_SHARED_LIBS) +add_library(ANN_s SHARED ${ANN_SRCS}) +ENDIF(EXPORT_SHARED_LIBS) + +# on windows systems the DLL_EXPORTS is required +if (WIN32) + SET_TARGET_PROPERTIES(ANN PROPERTIES COMPILE_FLAGS -DDLL_EXPORTS) +endif(WIN32) + +# Compile glui library +SET(GLUI_DIR ${CMAKE_SOURCE_DIR}/3rdparty/glui/) +add_library(glui STATIC + ${GLUI_DIR}glui_add_controls.cpp + ${GLUI_DIR}glui.cpp + ${GLUI_DIR}glui_bitmap_img_data.cpp + ${GLUI_DIR}glui_bitmaps.cpp + ${GLUI_DIR}glui_button.cpp + ${GLUI_DIR}glui_edittext.cpp + ${GLUI_DIR}glui_checkbox.cpp + ${GLUI_DIR}glui_node.cpp + ${GLUI_DIR}glui_radio.cpp + ${GLUI_DIR}glui_statictext.cpp + ${GLUI_DIR}glui_panel.cpp + ${GLUI_DIR}glui_separator.cpp + ${GLUI_DIR}glui_spinner.cpp + ${GLUI_DIR}glui_control.cpp + ${GLUI_DIR}glui_column.cpp + ${GLUI_DIR}glui_translation.cpp + ${GLUI_DIR}glui_rotation.cpp + ${GLUI_DIR}glui_mouse_iaction.cpp + ${GLUI_DIR}glui_listbox.cpp + ${GLUI_DIR}glui_rollout.cpp + ${GLUI_DIR}arcball.cpp + ${GLUI_DIR}algebra3.cpp + ${GLUI_DIR}quaternion.cpp ) + + + +IF(WITH_WXSHOW) + +# Compile wxthings library +SET(WXTHINGS_DIR ${CMAKE_SOURCE_DIR}/3rdparty/wxthings/src/) +add_library(wxthings STATIC + ${WXTHINGS_DIR}block.cpp + ${WXTHINGS_DIR}bmpcombo.cpp + ${WXTHINGS_DIR}dropdown.cpp + # ${WXTHINGS_DIR}filebrws.cpp # these two are not needed and would create unnecessary dependencies + #${WXTHINGS_DIR}genergdi.cpp + ${WXTHINGS_DIR}geometry.cpp + ${WXTHINGS_DIR}menubtn.cpp + ${WXTHINGS_DIR}optvalue.cpp + ${WXTHINGS_DIR}range.cpp + ${WXTHINGS_DIR}spinctld.cpp + ${WXTHINGS_DIR}toggle.cpp +) +ENDIF(WITH_WXSHOW) + +# Compile sparse library +SET(SPARSE_DIR ${CMAKE_SOURCE_DIR}/3rdparty/sparse/) +add_library(sparse STATIC ${SPARSE_DIR}csparse.cc) +IF(EXPORT_SHARED_LIBS) +add_library(sparse_s SHARED ${SPARSE_DIR}csparse.cc) +ENDIF(EXPORT_SHARED_LIBS) + + +# Compile newmat library +SET(NEWMAT_DIR ${CMAKE_SOURCE_DIR}/3rdparty/newmat/) +SET(NEWMAT_SOURCES ${NEWMAT_DIR}newmat1.cpp ${NEWMAT_DIR}newmat2.cpp ${NEWMAT_DIR}newmat3.cpp ${NEWMAT_DIR}newmat4.cpp ${NEWMAT_DIR}newmat5.cpp ${NEWMAT_DIR}newmat6.cpp ${NEWMAT_DIR}newmat7.cpp ${NEWMAT_DIR}newmat8.cpp ${NEWMAT_DIR}newmatex.cpp ${NEWMAT_DIR}bandmat.cpp ${NEWMAT_DIR}submat.cpp ${NEWMAT_DIR}myexcept.cpp ${NEWMAT_DIR}cholesky.cpp ${NEWMAT_DIR}evalue.cpp ${NEWMAT_DIR}fft.cpp ${NEWMAT_DIR}hholder.cpp ${NEWMAT_DIR}jacobi.cpp ${NEWMAT_DIR}newfft.cpp ${NEWMAT_DIR}sort.cpp ${NEWMAT_DIR}svd.cpp ${NEWMAT_DIR}newmatrm.cpp ${NEWMAT_DIR}newmat9.cpp) +add_library(newmat STATIC ${NEWMAT_SOURCES}) +IF(EXPORT_SHARED_LIBS) +add_library(newmat_s SHARED ${NEWMAT_SOURCES}) +ENDIF(EXPORT_SHARED_LIBS) + diff --git a/3rdparty/CMakeModules/CountProcessors.cmake b/3rdparty/CMakeModules/CountProcessors.cmake new file mode 100644 index 0000000..950e6af --- /dev/null +++ b/3rdparty/CMakeModules/CountProcessors.cmake @@ -0,0 +1,26 @@ +if(NOT DEFINED PROCESSOR_COUNT) + # Unknown: + set(PROCESSOR_COUNT 0) + + # Linux: + set(cpuinfo_file "/proc/cpuinfo") + if(EXISTS "${cpuinfo_file}") + file(STRINGS "${cpuinfo_file}" procs REGEX "^processor.: [0-9]+$") + list(LENGTH procs PROCESSOR_COUNT) + endif() + + # Mac: + if(APPLE) + find_program(cmd_sys_pro "system_profiler") + if(cmd_sys_pro) + execute_process(COMMAND ${cmd_sys_pro} OUTPUT_VARIABLE info) + string(REGEX REPLACE "^.*Total Number Of Cores: ([0-9]+).*$" "\\1" + PROCESSOR_COUNT "${info}") + endif() + endif() + + # Windows: + if(WIN32) + set(PROCESSOR_COUNT "$ENV{NUMBER_OF_PROCESSORS}") + endif() +endif() diff --git a/3rdparty/CMakeModules/FindCUDA.cmake b/3rdparty/CMakeModules/FindCUDA.cmake new file mode 100644 index 0000000..5f36be4 --- /dev/null +++ b/3rdparty/CMakeModules/FindCUDA.cmake @@ -0,0 +1,802 @@ +############################################################################### +# For more information, please see: http://software.sci.utah.edu +# +# The MIT License +# +# Copyright (c) 2007-2008 +# Scientific Computing and Imaging Institute, University of Utah +# +# License for the specific language governing rights and limitations under +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +# DEALINGS IN THE SOFTWARE. +# +# This script locates the Nvidia Compute Unified Driver Architecture (CUDA) +# tools. It should work on linux, windows, and mac and should be reasonably +# up to date with cuda releases. +# +# The script will prompt the user to specify CUDA_INSTALL_PREFIX if the +# prefix cannot be determined by the location of nvcc in the system path. To +# use a different installed version of the toolkit set the environment variable +# CUDA_BIN_PATH before running cmake (e.g. CUDA_BIN_PATH=/usr/local/cuda1.0 +# instead of the default /usr/local/cuda). +# +# Set CUDA_BUILD_EMULATION to ON for Emulation mode. Defaults to OFF (device +# mode). +# _DEVICEEMU is defined when CUDA_BUILD_EMULATION is TRUE. +# +# Set CUDA_HOST_COMPILATION_CPP to OFF for C compilation of host code. +# Default TRUE. +# +# Set CUDA_BUILD_CUBIN to "ON" or "OFF" to enable and extra compilation pass +# with the -cubin option in Device mode. The output is parsed and register, +# shared memory usage is printed during build. Default ON. +# +# Set CUDA_ATTACH_VS_BUILD_RULE_TO_CUDA_FILE to ON if you want the custom build +# rule to be attached to the source file in Visual Studio. Defaults to OFF. +# +# This allows the user to build the target from the CUDA file, however bad +# things can happen if the CUDA source file is added to multiple targets. When +# performing parallel builds it is possible for the custom build command to be +# run more than once and in parallel causing cryptic build errors. This is +# because VS runs the rules for every source file in the target, and a source +# can have only one rule no matter how many projects it is added to. Therefore, +# the rule assigned to the source file really only applies to one target you get +# clashes when it is run from multiple targets. Eventually everything will get +# built, but if the user is unaware of this behavior, there may be confusion. +# It would be nice if we could detect the reuse of source files across multiple +# targets and turn the option off for the user, but no good solution could be +# found. +# +# Set CUDA_64_BIT_DEVICE_CODE to ON to compile for 64 bit devices. Defaults to +# match host bit size. Note that making this different than the host code when +# generating C files from CUDA code just won't work, because size_t gets defined +# by nvcc in the generated source. If you compile to PTX and then load the file +# yourself, you can mix bit sizes between device and host. +# +# Set CUDA_VERBOSE_BUILD to ON to see all the commands used when building the +# CUDA file. When using a Makefile generator the value defaults to VERBOSE (run +# make VERBOSE=1 to see output). You can override this by setting +# CUDA_VERBOSE_BUILD to ON. +# +# The script creates the following macros: +# CUDA_INCLUDE_DIRECTORIES( path0 path1 ... ) +# -- Sets the directories that should be passed to nvcc +# (e.g. nvcc -Ipath0 -Ipath1 ... ). These paths usually contain other .cu +# files. +# +# CUDA_ADD_LIBRARY( cuda_target file0 file1 ... ) +# -- Creates a shared library "cuda_target" which contains all of the source +# (*.c, *.cc, etc.) specified and all of the nvcc'ed .cu files specified. +# All of the specified source files and generated .cpp files are compiled +# using the standard CMake compiler, so the normal INCLUDE_DIRECTORIES, +# LINK_DIRECTORIES, and TARGET_LINK_LIBRARIES can be used to affect their +# build and link. +# +# CUDA_ADD_CUFFT_TO_TARGET( cuda_target ) +# -- Adds the cufft library to the target. Handles whether you are in emulation +# mode or not. +# +# CUDA_ADD_CUBLAS_TO_TARGET( cuda_target ) +# -- Adds the cublas library to the target. Handles whether you are in emulation +# mode or not. +# +# CUDA_ADD_EXECUTABLE( cuda_target file0 file1 ... ) +# -- Same as CUDA_ADD_LIBRARY except that an exectuable is created. +# +# CUDA_COMPILE( cuda_files file0 file1 ... ) +# -- Returns a list of build commands in the first argument to be used with +# ADD_LIBRARY or ADD_EXECUTABLE. +# +# CUDA_BUILD_CLEAN_TARGET() +# -- Creates a convience target that deletes all the dependency files generated. +# You should make clean after running this target to ensure the dependency +# files get regenerated. +# +# The script defines the following variables: +# +# ( Note CUDA_ADD_* macros setup cuda/cut library dependencies automatically. +# These variables are only needed if a cuda API call must be made from code in +# a outside library or executable. ) +# +# CUDA_INCLUDE_DIRS -- Include directory for cuda headers. +# CUDA_LIBRARIES -- Cuda RT library. +# CUDA_CUT_INCLUDE_DIRS -- Include directory for cuda SDK headers (cutil.h). +# CUDA_CUT_LIBRARIES -- SDK libraries. +# CUDA_NVCC_FLAGS -- Additional NVCC command line arguments. NOTE: +# multiple arguments must be semi-colon delimited +# e.g. --compiler-options;-Wall +# CUFFT_LIBRARIES -- Device or emulation library for the Cuda FFT +# implementation (alternative to: +# CUDA_ADD_CUFFT_TO_TARGET macro) +# CUBLAS_LIBRARIES -- Device or emulation library for the Cuda BLAS +# implementation (alterative to: +# CUDA_ADD_CUBLAS_TO_TARGET macro). +# +# +# It might be necessary to set CUDA_INSTALL_PATH manually on certain platforms, +# or to use a cuda runtime not installed in the default location. In newer +# versions of the toolkit the cuda library is included with the graphics +# driver- be sure that the driver version matches what is needed by the cuda +# runtime version. +# +# -- Abe Stephens SCI Institute -- http://www.sci.utah.edu/~abe/FindCuda.html +# -- James Bigler NVIDIA Corp +############################################################################### + +# FindCUDA.cmake + +# This macro helps us find the location of helper files we will need the full path to +MACRO(CUDA_FIND_HELPER_FILE _name _extension) + SET(_full_name "${_name}.${_extension}") + # CMAKE_CURRENT_LIST_FILE contains the full path to the file currently being + # processed. Using this variable, we can pull out the current path, and + # provide a way to get access to the other files we need local to here. + GET_FILENAME_COMPONENT(CMAKE_CURRENT_LIST_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) + FIND_FILE(CUDA_${_name} ${_full_name} PATHS ${CMAKE_CURRENT_LIST_DIR} NO_DEFAULT_PATH) + IF(NOT CUDA_${_name}) + SET(error_message "${_full_name} not found in CMAKE_MODULE_PATH") + IF(CUDA_FIND_REQUIRED) + MESSAGE(FATAL_ERROR "${error_message}") + ELSE(CUDA_FIND_REQUIRED) + IF(NOT CUDA_FIND_QUIETLY) + MESSAGE(STATUS "${error_message}") + ENDIF(NOT CUDA_FIND_QUIETLY) + ENDIF(NOT CUDA_FIND_REQUIRED) + ENDIF(NOT CUDA_${_name}) + # Set this variable as internal, so the user isn't bugged with it. + SET(CUDA_${_name} ${CUDA_${_name}} CACHE INTERNAL "Location of ${_full_name}" FORCE) +ENDMACRO(CUDA_FIND_HELPER_FILE) + +##################################################################### +## CUDA_INCLUDE_NVCC_DEPENDENCIES +## + +# So we want to try and include the dependency file if it exists. If +# it doesn't exist then we need to create an empty one, so we can +# include it. + +# If it does exist, then we need to check to see if all the files it +# depends on exist. If they don't then we should clear the dependency +# file and regenerate it later. This covers the case where a header +# file has disappeared or moved. + +# Need to locate the empty.depend.in file, because CONFIGURE_FILE requires +# full paths. +CUDA_FIND_HELPER_FILE(empty "depend.in") + +MACRO(CUDA_INCLUDE_NVCC_DEPENDENCIES dependency_file) + SET(CUDA_NVCC_DEPEND) + SET(CUDA_NVCC_DEPEND_REGENERATE FALSE) + + + # Include the dependency file. Create it first if it doesn't exist + # for make files except for IDEs (see below). The INCLUDE puts a + # dependency that will force CMake to rerun and bring in the new info + # when it changes. DO NOT REMOVE THIS (as I did and spent a few hours + # figuring out why it didn't work. +# IF(${CMAKE_MAKE_PROGRAM} MATCHES "make") + IF(NOT EXISTS ${dependency_file}) + #message("configuring dependency_file = ${dependency_file}") + CONFIGURE_FILE( + ${CUDA_empty} + ${dependency_file} IMMEDIATE) + ENDIF(NOT EXISTS ${dependency_file}) + # Always include this file to force CMake to run again next + # invocation and rebuild the dependencies. + #message("including dependency_file = ${dependency_file}") + INCLUDE(${dependency_file}) +# ELSE(${CMAKE_MAKE_PROGRAM} MATCHES "make") +# # for IDE generators like MS dev only include the depend files +# # if they exist. This is to prevent ecessive reloading of +# # workspaces after each build. This also means +# # that the depends will not be correct until cmake +# # is run once after the build has completed once. +# # the depend files are created in the wrap tcl/python sections +# # when the .xml file is parsed. +# INCLUDE(${dependency_file} OPTIONAL RESULT_VARIABLE found) +# if (found) +# message("included dependency_file (${dependency_file}) found") +# else() +# message("included dependency_file (${dependency_file}) NOT found") +# endif() +# ENDIF(${CMAKE_MAKE_PROGRAM} MATCHES "make") + + # Now we need to verify the existence of all the included files + # here. If they aren't there we need to just blank this variable and + # make the file regenerate again. +# if(DEFINED CUDA_NVCC_DEPEND) +# message("CUDA_NVCC_DEPEND set") +# else() +# message("CUDA_NVCC_DEPEND NOT set") +# endif() + IF(CUDA_NVCC_DEPEND) + #message("CUDA_NVCC_DEPEND true") + FOREACH(f ${CUDA_NVCC_DEPEND}) + #message("searching for ${f}") + IF(NOT EXISTS ${f}) + #message("file ${f} not found") + SET(CUDA_NVCC_DEPEND_REGENERATE TRUE) + ENDIF() + ENDFOREACH(f) + ELSE(CUDA_NVCC_DEPEND) + #message("CUDA_NVCC_DEPEND false") + # No dependencies, so regenerate the file. + SET(CUDA_NVCC_DEPEND_REGENERATE TRUE) + ENDIF(CUDA_NVCC_DEPEND) + + #message("CUDA_NVCC_DEPEND_REGENERATE = ${CUDA_NVCC_DEPEND_REGENERATE}") + # No incoming dependencies, so we need to generate them. Make the + # output depend on the dependency file itself, which should cause the + # rule to re-run. + IF(CUDA_NVCC_DEPEND_REGENERATE) + SET(CUDA_NVCC_DEPEND ${dependency_file}) + # Force CMake to run again next build + CONFIGURE_FILE( + ${CUDA_empty} + ${dependency_file} IMMEDIATE) + ENDIF(CUDA_NVCC_DEPEND_REGENERATE) + +ENDMACRO(CUDA_INCLUDE_NVCC_DEPENDENCIES) + +############################################################################### +############################################################################### +# Locate CUDA, Set Build Type, etc. +############################################################################### +############################################################################### + +# Set whether we are using emulation or device mode. +OPTION(CUDA_BUILD_EMULATION "Build in Emulation mode" OFF) +# Parse HOST_COMPILATION mode. +OPTION(CUDA_HOST_COMPILATION_CPP "Generated file extension" ON) +# Allow the user to specify if the device code is supposed to be 32 or 64 bit. +if(CMAKE_SIZEOF_VOID_P EQUAL 8) + set(CUDA_64_BIT_DEVICE_CODE_DEFAULT ON) +else() + set(CUDA_64_BIT_DEVICE_CODE_DEFAULT OFF) +endif() +OPTION(CUDA_64_BIT_DEVICE_CODE "Compile device code in 64 bit mode" ${CUDA_64_BIT_DEVICE_CODE_DEFAULT}) +# Prints out extra information about the cuda file during compilation +OPTION(CUDA_BUILD_CUBIN "Generate and parse .cubin files in Device mode." ON) +# Extra user settable flags +SET(CUDA_NVCC_FLAGS "" CACHE STRING "Semi-colon delimit multiple arguments.") +# Attach the build rule to the source file in VS. This option +OPTION(CUDA_ATTACH_VS_BUILD_RULE_TO_CUDA_FILE "Attach the build rule to the CUDA source file. Enable only when the CUDA source file is added to at most one target." OFF) +# Specifies whether the commands used when compiling the .cu file will be printed out. +OPTION(CUDA_VERBOSE_BUILD "Print out the commands run while compiling the CUDA source file. With the Makefile generator this defaults to VERBOSE variable specified on the command line, but can be forced on with this option." OFF) + +# Search for the cuda distribution. +IF(NOT CUDA_INSTALL_PREFIX) + + # Search in the CUDA_BIN_PATH first. + FIND_PATH(CUDA_INSTALL_PREFIX + NAMES nvcc nvcc.exe + PATHS ENV CUDA_BIN_PATH + DOC "Toolkit location." + NO_DEFAULT_PATH + ) + # Now search default paths + FIND_PATH(CUDA_INSTALL_PREFIX + NAMES nvcc nvcc.exe + PATHS /usr/local/bin + /usr/local/cuda/bin + DOC "Toolkit location." + ) + + IF (CUDA_INSTALL_PREFIX) + STRING(REGEX REPLACE "[/\\\\]?bin[/\\\\]?$" "" CUDA_INSTALL_PREFIX ${CUDA_INSTALL_PREFIX}) + # We need to force this back into the cache. + SET(CUDA_INSTALL_PREFIX ${CUDA_INSTALL_PREFIX} CACHE PATH "Toolkit location." FORCE) + ENDIF(CUDA_INSTALL_PREFIX) + IF (NOT EXISTS ${CUDA_INSTALL_PREFIX}) + MESSAGE(FATAL_ERROR "Specify CUDA_INSTALL_PREFIX") + ENDIF (NOT EXISTS ${CUDA_INSTALL_PREFIX}) +ENDIF (NOT CUDA_INSTALL_PREFIX) + +# CUDA_NVCC +IF (NOT CUDA_NVCC) + FIND_PROGRAM(CUDA_NVCC + NAMES nvcc + PATHS "${CUDA_INSTALL_PREFIX}/bin" + ENV CUDA_BIN_PATH + NO_DEFAULT_PATH + ) + # Search default search paths, after we search our own set of paths. + FIND_PROGRAM(CUDA_NVCC nvcc) + IF(NOT CUDA_NVCC) + MESSAGE(FATAL_ERROR "Could not find nvcc") + ELSE(NOT CUDA_NVCC) + MARK_AS_ADVANCED(CUDA_NVCC) + ENDIF(NOT CUDA_NVCC) +ENDIF(NOT CUDA_NVCC) + +# IF (NOT FOUND_CUDA_NVCC_INCLUDE) +FIND_PATH(FOUND_CUDA_NVCC_INCLUDE + device_functions.h # Header included in toolkit + PATHS "${CUDA_INSTALL_PREFIX}/include" + ENV CUDA_INC_PATH + NO_DEFAULT_PATH + ) +# Search default search paths, after we search our own set of paths. +FIND_PATH(FOUND_CUDA_NVCC_INCLUDE device_functions.h) + +IF(NOT FOUND_CUDA_NVCC_INCLUDE) + MESSAGE(FATAL_ERROR "Could not find CUDA headers") +ELSE(NOT FOUND_CUDA_NVCC_INCLUDE) + # Set the user list of include dir to nothing to initialize it. + SET (CUDA_NVCC_INCLUDE_ARGS_USER "") + SET (CUDA_INCLUDE_DIRS ${FOUND_CUDA_NVCC_INCLUDE}) + + MARK_AS_ADVANCED( + FOUND_CUDA_NVCC_INCLUDE + ) +ENDIF(NOT FOUND_CUDA_NVCC_INCLUDE) + +# ENDIF(NOT FOUND_CUDA_NVCC_INCLUDE) + + +MACRO(FIND_LIBRARY_LOCAL_FIRST _var _names _doc) + FIND_LIBRARY(${_var} + NAMES ${_names} + PATHS "${CUDA_INSTALL_PREFIX}/lib" + ENV CUDA_LIB_PATH + DOC ${_doc} + NO_DEFAULT_PATH + ) + # Search default search paths, after we search our own set of paths. + FIND_LIBRARY(${_var} NAMES ${_names} DOC ${_doc}) +ENDMACRO() + +# CUDA_LIBRARIES +IF (NOT CUDA_LIBRARIES) + + FIND_LIBRARY_LOCAL_FIRST(FOUND_CUDART cudart "\"cudart\" library") + + # Check to see if cudart library was found. + IF(NOT FOUND_CUDART) + MESSAGE(FATAL_ERROR "Could not find cudart library (cudart)") + ENDIF(NOT FOUND_CUDART) + + # 1.1 toolkit on linux doesn't appear to have a separate library on + # some platforms. + FIND_LIBRARY_LOCAL_FIRST(FOUND_CUDA cuda "\"cuda\" library (older versions only).") + + # Add cuda library to the link line only if it is found. + IF (FOUND_CUDA) + SET(CUDA_LIBRARIES ${FOUND_CUDA}) + ENDIF(FOUND_CUDA) + + # Always add cudart to the link line. + IF(FOUND_CUDART) + SET(CUDA_LIBRARIES + ${CUDA_LIBRARIES} ${FOUND_CUDART} + ) + MARK_AS_ADVANCED( + CUDA_LIBRARIES + CUDA_LIB + FOUND_CUDA + FOUND_CUDART + ) + ELSE(FOUND_CUDART) + MESSAGE(FATAL_ERROR "Could not find cuda libraries.") + ENDIF(FOUND_CUDART) + +ENDIF(NOT CUDA_LIBRARIES) + +FIND_PATH(CUDA_SDK_INSTALL_PREFIX common/inc/cutil.h + "/usr/local/src/NVIDIA_GPU_Computing_SDK/C/" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\NVIDIA Corporation\\Installed Products\\NVIDIA SDK 10\\Compute;InstallDir]" + "$ENV{NVSDKCUDA_ROOT}" + ) + +# Keep the CUDA_INSTALL_PREFIX first in order to be able to override the +# environment variables. +SET(CUDA_SDK_SEARCH_PATH + "${CUDA_SDK_INSTALL_PREFIX}" + "${CUDA_INSTALL_PREFIX}/local/NVSDK0.2" + "${CUDA_INSTALL_PREFIX}/NVSDK0.2" + "${CUDA_INSTALL_PREFIX}/NV_CUDA_SDK" + "$ENV{HOME}/NVIDIA_CUDA_SDK" + "$ENV{HOME}/NVIDIA_CUDA_SDK_MACOSX" + "/Developer/CUDA" + ) +# CUDA_CUT_INCLUDE_DIRS +IF(NOT CUDA_CUT_INCLUDE_DIRS) + FIND_PATH(FOUND_CUT_INCLUDE + cutil.h + PATHS ${CUDA_SDK_SEARCH_PATH} + PATH_SUFFIXES "common/inc" + DOC "Location of cutil.h" + NO_DEFAULT_PATH + ) + # Now search system paths + FIND_PATH(FOUND_CUT_INCLUDE cutil.h DOC "Location of cutil.h") + + IF(FOUND_CUT_INCLUDE) + SET(CUDA_CUT_INCLUDE_DIRS ${FOUND_CUT_INCLUDE}) + MARK_AS_ADVANCED( + FOUND_CUT_INCLUDE + ) + ENDIF(FOUND_CUT_INCLUDE) +ENDIF(NOT CUDA_CUT_INCLUDE_DIRS) + + +# CUDA_CUT_LIBRARIES +IF(NOT CUDA_CUT_LIBRARIES) + # cutil library is called cutil64 for 64 bit builds on windows. We don't want + # to get these confused, so we are setting the name based on the word size of + # the build. + IF(CMAKE_SIZEOF_VOID_P EQUAL 8) + SET(cuda_cutil_name cutil64) + ELSE(CMAKE_SIZEOF_VOID_P EQUAL 8) + SET(cuda_cutil_name cutil32) + ENDIF(CMAKE_SIZEOF_VOID_P EQUAL 8) + + FIND_LIBRARY(FOUND_CUT + NAMES cutil ${cuda_cutil_name} + PATHS ${CUDA_SDK_SEARCH_PATH} + # The new version of the sdk shows up in common/lib, but the old one is in lib + PATH_SUFFIXES "common/lib" "lib" + DOC "Location of cutil library" + NO_DEFAULT_PATH + ) + # Now search system paths + FIND_LIBRARY(FOUND_CUT NAMES cutil ${cuda_cutil_name} DOC "Location of cutil library") + + IF(FOUND_CUT) + SET(CUDA_CUT_LIBRARIES ${FOUND_CUT}) + MARK_AS_ADVANCED(FOUND_CUT) + ENDIF(FOUND_CUT) + + MACRO(FIND_CUDA_HELPER_LIBS _name) + FIND_LIBRARY_LOCAL_FIRST(FOUND_${_name} ${_name} "\"${_name}\" library") + MARK_AS_ADVANCED(FOUND_${_name}) + ENDMACRO(FIND_CUDA_HELPER_LIBS) + + # Search for cufft and cublas libraries. + FIND_CUDA_HELPER_LIBS(cufftemu) + FIND_CUDA_HELPER_LIBS(cublasemu) + FIND_CUDA_HELPER_LIBS(cufft) + FIND_CUDA_HELPER_LIBS(cublas) + + if (CUDA_BUILD_EMULATION) + SET(CUFFT_LIBRARIES ${FOUND_cufftemu}) + SET(CUBLAS_LIBRARIES ${FOUND_cublasemu}) + else() + SET(CUFFT_LIBRARIES ${FOUND_cufft}) + SET(CUBLAS_LIBRARIES ${FOUND_cublas}) + endif() + +ENDIF(NOT CUDA_CUT_LIBRARIES) + + +############################################################################### +# Add include directories to pass to the nvcc command. +MACRO(CUDA_INCLUDE_DIRECTORIES) + FOREACH(dir ${ARGN}) + list(APPEND CUDA_NVCC_INCLUDE_ARGS_USER "-I${dir}") + ENDFOREACH(dir ${ARGN}) +ENDMACRO(CUDA_INCLUDE_DIRECTORIES) + +CUDA_FIND_HELPER_FILE(parse_cubin cmake) +CUDA_FIND_HELPER_FILE(make2cmake cmake) +CUDA_FIND_HELPER_FILE(run_nvcc cmake) + +############################################################################## +############################################################################## +# This helper macro populates the following variables and setups up custom +# commands and targets to invoke the nvcc compiler to generate C or PTX source +# dependant upon the format parameter. The compiler is invoked once with -M +# to generate a dependency file and a second time with -cuda or -ptx to generate +# a .cpp or .ptx file. +# INPUT: +# cuda_target - Target name +# format - PTX or C +# OUTPUT: +# ${target_srcs} - List of the generated C or PTX source files +# ${cuda_cu_sources} - List of the original CU files +############################################################################## +############################################################################## + +MACRO(CUDA_add_custom_commands cuda_target format) + + IF( ${format} MATCHES "PTX" ) + SET( compile_to_ptx ON ) + ELSEIF( ${format} MATCHES "C") + SET( compile_to_ptx OFF ) + ELSE() + MESSAGE( "Invalid format flag passed to CUDA_add_custom_commands: '${format}'. Defaulting to C") + SET( compile_to_ptx OFF ) + ENDIF() + + # Set up all the command line flags here, so that they can be overriden on a per target basis. + + set(nvcc_flags "") + + # Emulation if the card isn't present. + IF (CUDA_BUILD_EMULATION) + # Emulation. + SET(nvcc_flags ${nvcc_flags} --device-emulation -D_DEVICEEMU -g) + ELSE(CUDA_BUILD_EMULATION) + # Device mode. No flags necessary. + ENDIF(CUDA_BUILD_EMULATION) + + IF(CUDA_HOST_COMPILATION_CPP) + SET(generated_extension cpp) + ELSE(CUDA_HOST_COMPILATION_CPP) + SET(generated_extension c) + SET(nvcc_flags ${nvcc_flags} --host-compilation C) + ENDIF(CUDA_HOST_COMPILATION_CPP) + + IF(CUDA_64_BIT_DEVICE_CODE) + SET(nvcc_flags ${nvcc_flags} -m64) + ELSE() + SET(nvcc_flags ${nvcc_flags} -m32) + ENDIF() + + # This needs to be passed in at this stage, because VS needs to fill out the + # value of VCInstallDir from withing VS. + IF(CMAKE_GENERATOR MATCHES "Visual Studio") + IF( CMAKE_SIZEOF_VOID_P EQUAL 8 ) + # Add nvcc flag for 64b Windows + SET(ccbin_flags -D "\"CCBIN:PATH=$(VCInstallDir)bin\"" ) + ENDIF( CMAKE_SIZEOF_VOID_P EQUAL 8 ) + ENDIF(CMAKE_GENERATOR MATCHES "Visual Studio") + + # Initialize our list of includes with the user ones followed by the CUDA system ones. + set(CUDA_NVCC_INCLUDE_ARGS ${CUDA_NVCC_INCLUDE_ARGS_USER} -I${CUDA_INCLUDE_DIRS} -I${CUDA_CUT_INCLUDE_DIRS}) + # Get the include directories for this directory and use them for our nvcc command. + get_directory_property(CUDA_NVCC_INCLUDE_DIRECTORIES INCLUDE_DIRECTORIES) + if(CUDA_NVCC_INCLUDE_DIRECTORIES) + foreach(dir ${CUDA_NVCC_INCLUDE_DIRECTORIES}) + list(APPEND CUDA_NVCC_INCLUDE_ARGS "-I${dir}") + endforeach() + endif() + + SET(target_srcs "") + SET(cuda_cu_sources "") + + # Iterate over the macro arguments and create custom + # commands for all the .cu files. + FOREACH(file ${ARGN}) + IF(${file} MATCHES ".*\\.cu$") + + # Add a custom target to generate a c or ptx file. ###################### + GET_FILENAME_COMPONENT( basename ${file} NAME ) + IF( compile_to_ptx ) + SET(generated_file "${CMAKE_BINARY_DIR}/lib/ptx/${cuda_target}_generated_${basename}.ptx") + SET(format_flag "-ptx") + FILE(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/lib/ptx) + ELSE( compile_to_ptx ) + SET(generated_file "${CMAKE_BINARY_DIR}/src/cuda/${cuda_target}_generated_${basename}.${generated_extension}") + SET(format_flag "-cuda") + FILE(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/src/cuda) + ENDIF( compile_to_ptx ) + + SET(generated_target "${file}_target") + + + SET(source_file ${CMAKE_CURRENT_SOURCE_DIR}/${file}) + + # Bring in the dependencies. Creates a variable CUDA_NVCC_DEPEND ####### + SET(cmake_dependency_file "${generated_file}.depend") + CUDA_INCLUDE_NVCC_DEPENDENCIES(${cmake_dependency_file}) + SET(NVCC_generated_dependency_file "${generated_file}.NVCC-depend") + + # Convience string for output ########################################### + IF(CUDA_BUILD_EMULATION) + SET(cuda_build_type "Emulation") + ELSE(CUDA_BUILD_EMULATION) + SET(cuda_build_type "Device") + ENDIF(CUDA_BUILD_EMULATION) + + # Build the NVCC made dependency file ################################### + SET(build_cubin OFF) + IF ( NOT CUDA_BUILD_EMULATION AND CUDA_BUILD_CUBIN ) + IF ( NOT compile_to_ptx ) + SET ( build_cubin ON ) + + # Initialize a string containing commands to produce the cubin report. + SET(generated_cubin_file ${generated_file}.cubin.txt) + + ENDIF( NOT compile_to_ptx ) + ENDIF( NOT CUDA_BUILD_EMULATION AND CUDA_BUILD_CUBIN ) + + # Configure the build script + set(custom_target_script "${generated_file}.cmake") + configure_file("${CUDA_run_nvcc}" "${custom_target_script}" @ONLY) + + # So if a user specifies the same cuda file as input more than once, you + # can have bad things happen with dependencies. Here we check an option + # to see if this is the behavior they want. + if(CUDA_ATTACH_VS_BUILD_RULE_TO_CUDA_FILE) + set(main_dep MAIN_DEPENDENCY ${source_file}) + else() + set(main_dep DEPENDS ${source_file}) + endif() + + if(CUDA_VERBOSE_BUILD) + set(verbose_output ON) + elseif(CMAKE_GENERATOR MATCHES "Makefiles") + set(verbose_output "$(VERBOSE)") + else() + set(verbose_output OFF) + endif() + + # Build the generated file and dependency file ########################## + add_custom_command( + OUTPUT ${generated_file} + # These output files depend on the source_file and the contents of cmake_dependency_file + ${main_dep} + DEPENDS ${CUDA_NVCC_DEPEND} + DEPENDS ${custom_target_script} + COMMAND ${CMAKE_COMMAND} ARGS -D verbose:BOOL=${verbose_output} ${ccbin_flags} -P "${custom_target_script}" + COMMENT "Building (${cuda_build_type}) NVCC ${source_file}: ${generated_file}" + ) + + # Make sure the build system knows the file is generated. + set_source_files_properties(${generated_file} PROPERTIES GENERATED TRUE) + + # Add the generated file name to the source list. ###################### + SET(cuda_cu_sources ${cuda_cu_sources} ${source_file}) + SET(target_srcs ${target_srcs} ${generated_file}) + + # Add the other files that we want cmake to clean on a cleanup ########## + list(APPEND CUDA_ADDITIONAL_CLEAN_FILES "${cmake_dependency_file}") + list(REMOVE_DUPLICATES CUDA_ADDITIONAL_CLEAN_FILES) + set(CUDA_ADDITIONAL_CLEAN_FILES ${CUDA_ADDITIONAL_CLEAN_FILES} CACHE INTERNAL "List of intermediate files that are part of the cuda dependency scanning.") + + ELSE(${file} MATCHES ".*\\.cu$") + + # Otherwise add the file name to the source list. + SET(target_srcs ${target_srcs} ${file}) + + ENDIF(${file} MATCHES ".*\\.cu$") + ENDFOREACH(file) + +ENDMACRO(CUDA_add_custom_commands) + + +############################################################################### +############################################################################### +# ADD LIBRARY +############################################################################### +############################################################################### +MACRO(CUDA_ADD_LIBRARY cuda_target) + + # Create custom commands and targets for each file. + CUDA_add_custom_commands( ${cuda_target} C ${ARGN} ) + + # Add the library. + ADD_LIBRARY(${cuda_target} + ${target_srcs} + ${cuda_cu_sources} + ) + + TARGET_LINK_LIBRARIES(${cuda_target} + ${CUDA_LIBRARIES} + ) + +ENDMACRO(CUDA_ADD_LIBRARY cuda_target) + + +############################################################################### +############################################################################### +# ADD EXECUTABLE +############################################################################### +############################################################################### +MACRO(CUDA_ADD_EXECUTABLE cuda_target) + + # Create custom commands and targets for each file. + CUDA_add_custom_commands( ${cuda_target} C ${ARGN} ) + + # Add the library. + ADD_EXECUTABLE(${cuda_target} + ${target_srcs} + ${cuda_cu_sources} + ) + + TARGET_LINK_LIBRARIES(${cuda_target} + ${CUDA_LIBRARIES} + ) + + +ENDMACRO(CUDA_ADD_EXECUTABLE cuda_target) + + +############################################################################### +############################################################################### +# CUDA COMPILE +############################################################################### +############################################################################### +MACRO(CUDA_COMPILE file_variable) + + # Create custom commands and targets for each file. + CUDA_add_custom_commands( cuda_compile C ${ARGN} ) + + SET(${file_variable} ${target_srcs} ${cuda_cu_sources}) + +ENDMACRO(CUDA_COMPILE) + + +############################################################################### +############################################################################### +# CUDA COMPILE PTX +############################################################################### +############################################################################### +MACRO(CUDA_COMPILE_PTX ptx_files cuda_files ) + + # Create custom commands and targets for each file. + CUDA_add_custom_commands( cuda_compile_ptx PTX ${ARGN} ) + + SET( ${ptx_files} ${target_srcs} ) + SET( ${cuda_files} ${cuda_cu_sources} ) + +ENDMACRO(CUDA_COMPILE_PTX) + +############################################################################### +############################################################################### +# CUDA ADD CUTIL TO TARGET +############################################################################### +############################################################################### +macro(CUDA_ADD_CUTIL_TO_TARGET target) + target_link_libraries(${target} ${CUDA_CUT_LIBRARIES}) +endmacro() + +############################################################################### +############################################################################### +# CUDA ADD CUFFT TO TARGET +############################################################################### +############################################################################### +macro(CUDA_ADD_CUFFT_TO_TARGET target) + if (CUDA_BUILD_EMULATION) + target_link_libraries(${target} ${FOUND_cufftemu}) + else() + target_link_libraries(${target} ${FOUND_cufft}) + endif() +endmacro() + +############################################################################### +############################################################################### +# CUDA ADD CUBLAS TO TARGET +############################################################################### +############################################################################### +macro(CUDA_ADD_CUBLAS_TO_TARGET target) + if (CUDA_BUILD_EMULATION) + target_link_libraries(${target} ${FOUND_cublasemu}) + else() + target_link_libraries(${target} ${FOUND_cublas}) + endif() +endmacro() + +############################################################################### +############################################################################### +# CUDA BUILD CLEAN TARGET +############################################################################### +############################################################################### +macro(CUDA_BUILD_CLEAN_TARGET) + # Call this after you add all your CUDA targets, and you will get a convience + # target. You should also make clean after running this target to get the + # build system to generate all the code again. + add_custom_target(CleanCudaDepends + COMMAND ${CMAKE_COMMAND} -E remove ${CUDA_ADDITIONAL_CLEAN_FILES}) + + # Clear out the variable, so the next time we configure it will be empty. + # This is useful so that the files won't persist in the list after targets + # have been removed. + set(CUDA_ADDITIONAL_CLEAN_FILES "" CACHE INTERNAL "List of intermediate files that are part of the cuda dependency scanning.") +endmacro(CUDA_BUILD_CLEAN_TARGET) diff --git a/3rdparty/CMakeModules/empty.depend.in b/3rdparty/CMakeModules/empty.depend.in new file mode 100644 index 0000000..e69de29 diff --git a/3rdparty/CMakeModules/make2cmake.cmake b/3rdparty/CMakeModules/make2cmake.cmake new file mode 100644 index 0000000..ab0167d --- /dev/null +++ b/3rdparty/CMakeModules/make2cmake.cmake @@ -0,0 +1,61 @@ + +# For more information, please see: http://software.sci.utah.edu +# +# The MIT License +# +# Copyright (c) 2007 +# Scientific Computing and Imaging Institute, University of Utah +# +# License for the specific language governing rights and limitations under +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +# DEALINGS IN THE SOFTWARE. + +# Make2cmake CMake Script +# Abe Stephens and James Bigler +# (c) 2007 Scientific Computing and Imaging Institute, University of Utah +# Note that the REGEX expressions may need to be tweaked for different dependency generators. + +FILE(READ ${input_file} depend_text) + +IF (${depend_text} MATCHES ".+") + + # MESSAGE("FOUND DEPENDS") + + # Remember, four backslashes is escaped to one backslash in the string. + STRING(REGEX REPLACE "\\\\ " " " depend_text ${depend_text}) + + # This works for the nvcc -M generated dependency files. + STRING(REGEX REPLACE "^.* : " "" depend_text ${depend_text}) + STRING(REGEX REPLACE "[ \\\\]*\n" ";" depend_text ${depend_text}) + + FOREACH(file ${depend_text}) + + STRING(REGEX REPLACE "^ +" "" file ${file}) + + IF(NOT IS_DIRECTORY ${file}) + SET(cuda_nvcc_depend "${cuda_nvcc_depend} \"${file}\"\n") + ENDIF(NOT IS_DIRECTORY ${file}) + + ENDFOREACH(file) + +ELSE() + # MESSAGE("FOUND NO DEPENDS") +ENDIF() + + +FILE(WRITE ${output_file} "# Generated by: make2cmake.cmake\nSET(CUDA_NVCC_DEPEND\n ${cuda_nvcc_depend})\n\n") diff --git a/3rdparty/CMakeModules/parse_cubin.cmake b/3rdparty/CMakeModules/parse_cubin.cmake new file mode 100644 index 0000000..07bb7ee --- /dev/null +++ b/3rdparty/CMakeModules/parse_cubin.cmake @@ -0,0 +1,105 @@ +# For more information, please see: http://software.sci.utah.edu +# +# The MIT License +# +# Copyright (c) 2007 +# Scientific Computing and Imaging Institute, University of Utah +# +# License for the specific language governing rights and limitations under +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +# DEALINGS IN THE SOFTWARE. + +# .cubin Parsing CMake Script +# Abe Stephens +# (c) 2007 Scientific Computing and Imaging Institute, University of Utah + +FILE(READ ${input_file} file_text) + +IF (${file_text} MATCHES ".+") + + # Remember, four backslashes is escaped to one backslash in the string. + STRING(REGEX REPLACE ";" "\\\\;" file_text ${file_text}) + STRING(REGEX REPLACE "\ncode" ";code" file_text ${file_text}) + + LIST(LENGTH file_text len) + + FOREACH(line ${file_text}) + + # Only look at "code { }" blocks. + IF(line MATCHES "^code") + + # Break into individual lines. + STRING(REGEX REPLACE "\n" ";" line ${line}) + + FOREACH(entry ${line}) + + # Extract kernel names. + IF (${entry} MATCHES "[^g]name = ([^ ]+)") + STRING(REGEX REPLACE ".* = ([^ ]+)" "\\1" entry ${entry}) + + # Check to see if the kernel name starts with "_" + SET(skip FALSE) + # IF (${entry} MATCHES "^_") + # Skip the rest of this block. + # MESSAGE("Skipping ${entry}") + # SET(skip TRUE) + # ELSE (${entry} MATCHES "^_") + MESSAGE("Kernel: ${entry}") + # ENDIF (${entry} MATCHES "^_") + + ENDIF(${entry} MATCHES "[^g]name = ([^ ]+)") + + # Skip the rest of the block if necessary + IF(NOT skip) + + # Registers + IF (${entry} MATCHES "reg = ([^ ]+)") + STRING(REGEX REPLACE ".* = ([^ ]+)" "\\1" entry ${entry}) + MESSAGE("Registers: ${entry}") + ENDIF(${entry} MATCHES "reg = ([^ ]+)") + + # Local memory + IF (${entry} MATCHES "lmem = ([^ ]+)") + STRING(REGEX REPLACE ".* = ([^ ]+)" "\\1" entry ${entry}) + MESSAGE("Local: ${entry}") + ENDIF(${entry} MATCHES "lmem = ([^ ]+)") + + # Shared memory + IF (${entry} MATCHES "smem = ([^ ]+)") + STRING(REGEX REPLACE ".* = ([^ ]+)" "\\1" entry ${entry}) + MESSAGE("Shared: ${entry}") + ENDIF(${entry} MATCHES "smem = ([^ ]+)") + + IF (${entry} MATCHES "^}") + MESSAGE("") + ENDIF(${entry} MATCHES "^}") + + ENDIF(NOT skip) + + + ENDFOREACH(entry) + + ENDIF(line MATCHES "^code") + + ENDFOREACH(line) + +ELSE() + # MESSAGE("FOUND NO DEPENDS") +ENDIF() + + diff --git a/3rdparty/CMakeModules/run_nvcc.cmake b/3rdparty/CMakeModules/run_nvcc.cmake new file mode 100644 index 0000000..e772025 --- /dev/null +++ b/3rdparty/CMakeModules/run_nvcc.cmake @@ -0,0 +1,183 @@ +# This file runs the nvcc commands to produce the desired output file along with +# the dependency file needed by CMake to compute dependencies. In addition the +# file checks the output of each command and if the command fails it deletes the +# output files. + +# Input variables +# +# verbose:BOOL=<> OFF: Be as quiet as possible (default) +# ON : Describe each step +# + +# Set these up as variables to make reading the generated file easier +set(CMAKE_COMMAND "@CMAKE_COMMAND@") +set(source_file "@source_file@") +set(generated_file "@generated_file@") +set(NVCC_generated_dependency_file "@NVCC_generated_dependency_file@") +set(cmake_dependency_file "@cmake_dependency_file@") +set(CUDA_make2cmake "@CUDA_make2cmake@") +set(generated_cubin_file "@generated_cubin_file@") +set(CUDA_parse_cubin "@CUDA_parse_cubin@") +set(build_cubin @build_cubin@) + +set(CUDA_NVCC "@CUDA_NVCC@") +set(CUDA_NVCC_FLAGS "@CUDA_NVCC_FLAGS@") +set(nvcc_flags "@nvcc_flags@") +set(CUDA_NVCC_INCLUDE_ARGS "@CUDA_NVCC_INCLUDE_ARGS@") +set(format_flag "@format_flag@") + +if(DEFINED CCBIN) + set(CCBIN -ccbin "${CCBIN}") +endif() + +if(debug) + set(CMAKE_COMMAND "C:/code/CMake-cuda-staging/build-32/src/debug/args.exe") + set(CUDA_NVCC "C:/code/CMake-cuda-staging/build-32/src/debug/args.exe") +endif() + +# cuda_execute_process - Executes a command with optional command echo and status message. +# +# status - Status message to print if verbose is true +# command - COMMAND argument from the usual execute_process argument structure +# ARGN - Remaining arguments are the command with arguments +# +# CUDA_result - return value from running the command +# +# Make this a macro instead of a function, so that things like RESULT_VARIABLE +# and other return variables are present after executing the process. +macro(cuda_execute_process status command) + set(_command ${command}) + if(NOT _command STREQUAL "COMMAND") + message(FATAL_ERROR "Malformed call to cuda_execute_process. Missing COMMAND as second argument. (command = ${command})") + endif() + if(verbose) + execute_process(COMMAND "${CMAKE_COMMAND}" -E echo -- ${status}) + # Now we need to build up our command string. We are accounting for quotes + # and spaces, anything else is left up to the user to fix if they want to + # copy and paste a runnable command line. + set(cuda_execute_process_string) + foreach(arg ${ARGN}) + # If there are quotes, excape them, so they come through. + string(REPLACE "\"" "\\\"" arg ${arg}) + # Args with spaces need quotes around them to get them to be parsed as a single argument. + if(arg MATCHES " ") + list(APPEND cuda_execute_process_string "\"${arg}\"") + else() + list(APPEND cuda_execute_process_string ${arg}) + endif() + endforeach() + # Echo the command + execute_process(COMMAND ${CMAKE_COMMAND} -E echo ${cuda_execute_process_string}) + endif(verbose) + # Run the command + execute_process(COMMAND ${ARGN} RESULT_VARIABLE CUDA_result ) +endmacro() + +# Delete the target file +cuda_execute_process( + "Removing ${generated_file}" + COMMAND "${CMAKE_COMMAND}" -E remove "${generated_file}" + ) + +# Generate the dependency file +cuda_execute_process( + "Generating dependency file: ${NVCC_generated_dependency_file}" + COMMAND "${CUDA_NVCC}" + "${source_file}" + ${CUDA_NVCC_FLAGS} + ${nvcc_flags} + ${CCBIN} + -DNVCC + -M + -o "${NVCC_generated_dependency_file}" + ${CUDA_NVCC_INCLUDE_ARGS} + ) + +if(CUDA_result) + message(FATAL_ERROR "Error generating ${generated_file}") +endif() + +# Generate the cmake readable dependency file to a temp file. Don't put the +# quotes just around the filenames for the input_file and output_file variables. +# CMake will pass the quotes through and not be able to find the file. +cuda_execute_process( + "Generating temporary cmake readable file: ${cmake_dependency_file}.tmp" + COMMAND "${CMAKE_COMMAND}" + -D "input_file:FILEPATH=${NVCC_generated_dependency_file}" + -D "output_file:FILEPATH=${cmake_dependency_file}.tmp" + -P "${CUDA_make2cmake}" + ) + +if(CUDA_result) + message(FATAL_ERROR "Error generating ${generated_file}") +endif() + +# Copy the file if it is different +cuda_execute_process( + "Copy if different ${cmake_dependency_file}.tmp to ${cmake_dependency_file}" + COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${cmake_dependency_file}.tmp" "${cmake_dependency_file}" + ) + +if(CUDA_result) + message(FATAL_ERROR "Error generating ${generated_file}") +endif() + +# Delete the temporary file +cuda_execute_process( + "Removing ${cmake_dependency_file}.tmp and ${NVCC_generated_dependency_file}" + COMMAND "${CMAKE_COMMAND}" -E remove "${cmake_dependency_file}.tmp" "${NVCC_generated_dependency_file}" + ) + +if(CUDA_result) + message(FATAL_ERROR "Error generating ${generated_file}") +endif() + +# Generate the code +cuda_execute_process( + "Generating ${generated_file}" + COMMAND "${CUDA_NVCC}" + "${source_file}" + ${CUDA_NVCC_FLAGS} + ${nvcc_flags} + ${CCBIN} + -DNVCC + ${format_flag} -o "${generated_file}" + ${CUDA_NVCC_INCLUDE_ARGS} + ) + +if(CUDA_result) + # Since nvcc can sometimes leave half done files make sure that we delete the output file. + cuda_execute_process( + "Removing ${generated_file}" + COMMAND "${CMAKE_COMMAND}" -E remove "${generated_file}" + ) + message(FATAL_ERROR "Error generating file ${generated_file}") +else() + message("Generated ${generated_file} successfully.") +endif() + +# Cubin resource report commands. +if( build_cubin ) + # Run with -cubin to produce resource usage report. + cuda_execute_process( + "Generating ${generated_cubin_file}" + COMMAND "${CUDA_NVCC}" + "${source_file}" + ${CUDA_NVCC_FLAGS} + ${nvcc_flags} + ${CCBIN} + -DNVCC + -cubin + -o "${generated_cubin_file}" + ${CUDA_NVCC_INCLUDE_ARGS} + ) + + # Execute the parser script. + cuda_execute_process( + "Executing the parser script" + COMMAND "${CMAKE_COMMAND}" + -D "input_file:STRING=${generated_cubin_file}" + -P "${CUDA_parse_cubin}" + ) + +endif( build_cubin ) diff --git a/3rdparty/ann_1.1.1_modified/Copyright.txt b/3rdparty/ann_1.1.1_modified/Copyright.txt new file mode 100755 index 0000000..5bdc319 --- /dev/null +++ b/3rdparty/ann_1.1.1_modified/Copyright.txt @@ -0,0 +1,47 @@ +ANN: Approximate Nearest Neighbors +Version: 1.1.1 +Release Date: Aug 4, 2006 +---------------------------------------------------------------------------- +Copyright (c) 1997-2005 University of Maryland and Sunil Arya and David +Mount All Rights Reserved. + +This program is free software; you can redistribute it and/or modify it +under the terms of the GNU Lesser Public License as published by the +Free Software Foundation; either version 2.1 of the License, or (at your +option) any later version. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Lesser Public License for more details. + +A copy of the terms and conditions of the license can be found in +License.txt or online at + + http://www.gnu.org/copyleft/lesser.html + +To obtain a copy, write to the Free Software Foundation, Inc., +59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +Disclaimer +---------- +The University of Maryland and the authors make no representations about +the suitability or fitness of this software for any purpose. It is +provided "as is" without express or implied warranty. +--------------------------------------------------------------------- + +Authors +------- +David Mount +Dept of Computer Science +University of Maryland, +College Park, MD 20742 USA +mount@cs.umd.edu +http://www.cs.umd.edu/~mount/ + +Sunil Arya +Dept of Computer Science +Hong University of Science and Technology +Clearwater Bay, HONG KONG +arya@cs.ust.hk +http://www.cs.ust.hk/faculty/arya/ diff --git a/3rdparty/ann_1.1.1_modified/License.txt b/3rdparty/ann_1.1.1_modified/License.txt new file mode 100755 index 0000000..456ea97 --- /dev/null +++ b/3rdparty/ann_1.1.1_modified/License.txt @@ -0,0 +1,450 @@ +---------------------------------------------------------------------- +The ANN Library (all versions) is provided under the terms and +conditions of the GNU Lesser General Public Library, which is stated +below. It can also be found at: + + http://www.gnu.org/copyleft/lesser.html + +---------------------------------------------------------------------- + +GNU LESSER GENERAL PUBLIC LICENSE + +Version 2.1, February 1999 + +Copyright (C) 1991, 1999 Free Software Foundation, Inc. +59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +Everyone is permitted to copy and distribute verbatim copies +of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts +as the successor of the GNU Library Public License, version 2, hence the +version number 2.1.] + +Preamble + +The licenses for most software are designed to take away your freedom to +share and change it. By contrast, the GNU General Public Licenses are +intended to guarantee your freedom to share and change free software--to +make sure the software is free for all its users. + +This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the Free +Software Foundation and other authors who decide to use it. You can use +it too, but we suggest you first think carefully about whether this +license or the ordinary General Public License is the better strategy to +use in any particular case, based on the explanations below. + +When we speak of free software, we are referring to freedom of use, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish); that you receive source code or can get it if +you want it; that you can change the software and use pieces of it in +new free programs; and that you are informed that you can do these +things. + +To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for you +if you distribute copies of the library or if you modify it. + +For example, if you distribute copies of the library, whether gratis or +for a fee, you must give the recipients all the rights that we gave you. +You must make sure that they, too, receive or can get the source code. +If you link other code with the library, you must provide complete +object files to the recipients, so that they can relink them with the +library after making changes to the library and recompiling it. And you +must show them these terms so they know their rights. + +We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + +To protect each distributor, we want to make it very clear that there is +no warranty for the free library. Also, if the library is modified by +someone else and passed on, the recipients should know that what they +have is not the original version, so that the original author's +reputation will not be affected by problems that might be introduced by +others. + +Finally, software patents pose a constant threat to the existence of any +free program. We wish to make sure that a company cannot effectively +restrict the users of a free program by obtaining a restrictive license +from a patent holder. Therefore, we insist that any patent license +obtained for a version of the library must be consistent with the full +freedom of use specified in this license. + +Most GNU software, including some libraries, is covered by the ordinary +GNU General Public License. This license, the GNU Lesser General Public +License, applies to certain designated libraries, and is quite different +from the ordinary General Public License. We use this license for +certain libraries in order to permit linking those libraries into +non-free programs. + +When a program is linked with a library, whether statically or using a +shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the entire +combination fits its criteria of freedom. The Lesser General Public +License permits more lax criteria for linking other code with the +library. + +We call this license the "Lesser" General Public License because it does +Less to protect the user's freedom than the ordinary General Public +License. It also provides other free software developers Less of an +advantage over competing non-free programs. These disadvantages are the +reason we use the ordinary General Public License for many libraries. +However, the Lesser license provides advantages in certain special +circumstances. + +For example, on rare occasions, there may be a special need to encourage +the widest possible use of a certain library, so that it becomes a +de-facto standard. To achieve this, non-free programs must be allowed to +use the library. A more frequent case is that a free library does the +same job as widely used non-free libraries. In this case, there is +little to gain by limiting the free library to free software only, so we +use the Lesser General Public License. + +In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of free +software. For example, permission to use the GNU C Library in non-free +programs enables many more people to use the whole GNU operating system, +as well as its variant, the GNU/Linux operating system. + +Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is linked +with the Library has the freedom and the wherewithal to run that program +using a modified version of the Library. + +The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or other +authorized party saying it may be distributed under the terms of this +Lesser General Public License (also called "this License"). Each +licensee is addressed as "you". + +A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + +The "Library", below, refers to any such software library or work which +has been distributed under these terms. A "work based on the Library" +means either the Library or any derivative work under copyright law: +that is to say, a work containing the Library or a portion of it, either +verbatim or with modifications and/or translated straightforwardly into +another language. (Hereinafter, translation is included without +limitation in the term "modification".) + +"Source code" for a work means the preferred form of the work for making +modifications to it. For a library, complete source code means all the +source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and +installation of the library. + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of running +a program using the Library is not restricted, and output from such a +program is covered only if its contents constitute a work based on the +Library (independent of the use of the Library in a tool for writing +it). Whether that is true depends on what the Library does and what the +program that uses the Library does. + +1. You may copy and distribute verbatim copies of the Library's complete +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the notices +that refer to this License and to the absence of any warranty; and +distribute a copy of this License along with the Library. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Library or any portion of +it, thus forming a work based on the Library, and copy and distribute +such modifications or work under the terms of Section 1 above, provided +that you also meet all of these conditions: + + a) The modified work must itself be a software library. + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has +a purpose that is entirely well-defined independent of the application. +Therefore, Subsection 2d requires that any application-supplied function +or table used by this function must be optional: if the application does +not supply it, the square root function must still compute square +roots.) + + These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, and +can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based on +the Library, the distribution of the whole must be on the terms of this +License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + + Thus, it is not the intent of this section to claim rights or +contest your rights to work written entirely by you; rather, the intent +is to exercise the right to control the distribution of derivative or +collective works based on the Library. + + In addition, mere aggregation of another work not based on the +Library with the Library (or with a work based on the Library) on a +volume of a storage or distribution medium does not bring the other work +under the scope of this License. + +3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so that +they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in these +notices. + +Once this change is made in a given copy, it is irreversible for that +copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + +This option is useful when you wish to copy part of the code of the +Library into a program that is not a library. + +4. You may copy and distribute the Library (or a portion or derivative +of it, under Section 2) in object code or executable form under the +terms of Sections 1 and 2 above provided that you accompany it with the +complete corresponding machine-readable source code, which must be +distributed under the terms of Sections 1 and 2 above on a medium +customarily used for software interchange. + +If distribution of object code is made by offering access to copy from a +designated place, then offering equivalent access to copy the source +code from the same place satisfies the requirement to distribute the +source code, even though third parties are not compelled to copy the +source along with the object code. + +5. A program that contains no derivative of any portion of the Library, +but is designed to work with the Library by being compiled or linked +with it, is called a "work that uses the Library". Such a work, in +isolation, is not a derivative work of the Library, and therefore falls +outside the scope of this License. + +However, linking a "work that uses the Library" with the Library creates +an executable that is a derivative of the Library (because it contains +portions of the Library), rather than a "work that uses the library". +The executable is therefore covered by this License. Section 6 states +terms for distribution of such executables. + +When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be linked +without the Library, or if the work is itself a library. The threshold +for this to be true is not precisely defined by law. + +If such an object file uses only numerical parameters, data structure +layouts and accessors, and small macros and small inline functions (ten +lines or less in length), then the use of the object file is +unrestricted, regardless of whether it is legally a derivative work. +(Executables containing this object code plus portions of the Library +will still fall under Section 6.) + +Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, whether +or not they are linked directly with the Library itself. + +6. As an exception to the Sections above, you may also combine or link a +"work that uses the Library" with the Library to produce a work +containing portions of the Library, and distribute that work under terms +of your choice, provided that the terms permit modification of the work +for the customer's own use and reverse engineering for debugging such +modifications. + +You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work during +execution displays copyright notices, you must include the copyright +notice for the Library among them, as well as a reference directing the +user to the copy of this License. Also, you must do one of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood that + the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + c) Accompany the work with a written offer, valid for at least + three years, to give the same user the materials specified in + Subsection 6a, above, for a charge no more than the cost of + performing this distribution. + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + +For an executable, the required form of the "work that uses the Library" +must include any data and utility programs needed for reproducing the +executable from it. However, as a special exception, the materials to be +distributed need not include anything that is normally distributed (in +either source or binary form) with the major components (compiler, +kernel, and so on) of the operating system on which the executable runs, +unless that component itself accompanies the executable. + +It may happen that this requirement contradicts the license restrictions +of other proprietary libraries that do not normally accompany the +operating system. Such a contradiction means you cannot use both them +and the Library together in an executable that you distribute. + +7. You may place library facilities that are a work based on the Library +side-by-side in a single library together with other library facilities +not covered by this License, and distribute such a combined library, +provided that the separate distribution of the work based on the Library +and of the other library facilities is otherwise permitted, and provided +that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + +8. You may not copy, modify, sublicense, link with, or distribute the +Library except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense, link with, or distribute the +Library is void, and will automatically terminate your rights under this +License. However, parties who have received copies, or rights, from you +under this License will not have their licenses terminated so long as +such parties remain in full compliance. + +9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and all +its terms and conditions for copying, distributing or modifying the +Library or works based on it. + +10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + +11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot distribute +so as to satisfy simultaneously your obligations under this License and +any other pertinent obligations, then as a consequence you may not +distribute the Library at all. For example, if a patent license would +not permit royalty-free redistribution of the Library by all those who +receive copies directly or indirectly through you, then the only way you +could satisfy both it and this License would be to refrain entirely from +distribution of the Library. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply, and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is implemented +by public license practices. Many people have made generous +contributions to the wide range of software distributed through that +system in reliance on consistent application of that system; it is up to +the author/donor to decide if he or she is willing to distribute +software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be +a consequence of the rest of this License. + +12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may +add an explicit geographical distribution limitation excluding those +countries, so that distribution is permitted only in or among countries +not thus excluded. In such case, this License incorporates the +limitation as if written in the body of this License. + +13. The Free Software Foundation may publish revised and/or new versions +of the Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a license +version number, you may choose any version ever published by the Free +Software Foundation. + +14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free Software +Foundation; we sometimes make exceptions for this. Our decision will be +guided by the two goals of preserving the free status of all derivatives +of our free software and of promoting the sharing and reuse of software +generally. + +NO WARRANTY + +15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER +EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE +ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH +YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL +NECESSARY SERVICING, REPAIR OR CORRECTION. + +16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR +DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL +DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY +(INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED +INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF +THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR +OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. diff --git a/3rdparty/ann_1.1.1_modified/MS_Win32/Ann.sln b/3rdparty/ann_1.1.1_modified/MS_Win32/Ann.sln new file mode 100755 index 0000000..c0a1969 --- /dev/null +++ b/3rdparty/ann_1.1.1_modified/MS_Win32/Ann.sln @@ -0,0 +1,46 @@ +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dll", "dll\dll.vcproj", "{A7D00B21-CB9C-4BBB-8DEE-51025104F867}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sample", "sample\sample.vcproj", "{C76F5A10-7A4A-4546-9414-296DB38BE825}" + ProjectSection(ProjectDependencies) = postProject + {A7D00B21-CB9C-4BBB-8DEE-51025104F867} = {A7D00B21-CB9C-4BBB-8DEE-51025104F867} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test", "test\test.vcproj", "{6AC673C7-7B3F-4520-A761-647B212A4BEF}" + ProjectSection(ProjectDependencies) = postProject + {A7D00B21-CB9C-4BBB-8DEE-51025104F867} = {A7D00B21-CB9C-4BBB-8DEE-51025104F867} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ann2fig", "ann2fig\ann2fig.vcproj", "{622DD7D8-0C0A-4303-9176-C9A8AF467E70}" + ProjectSection(ProjectDependencies) = postProject + {A7D00B21-CB9C-4BBB-8DEE-51025104F867} = {A7D00B21-CB9C-4BBB-8DEE-51025104F867} + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {A7D00B21-CB9C-4BBB-8DEE-51025104F867}.Debug|Win32.ActiveCfg = Debug|Win32 + {A7D00B21-CB9C-4BBB-8DEE-51025104F867}.Debug|Win32.Build.0 = Debug|Win32 + {A7D00B21-CB9C-4BBB-8DEE-51025104F867}.Release|Win32.ActiveCfg = Release|Win32 + {A7D00B21-CB9C-4BBB-8DEE-51025104F867}.Release|Win32.Build.0 = Release|Win32 + {C76F5A10-7A4A-4546-9414-296DB38BE825}.Debug|Win32.ActiveCfg = Debug|Win32 + {C76F5A10-7A4A-4546-9414-296DB38BE825}.Debug|Win32.Build.0 = Debug|Win32 + {C76F5A10-7A4A-4546-9414-296DB38BE825}.Release|Win32.ActiveCfg = Release|Win32 + {C76F5A10-7A4A-4546-9414-296DB38BE825}.Release|Win32.Build.0 = Release|Win32 + {6AC673C7-7B3F-4520-A761-647B212A4BEF}.Debug|Win32.ActiveCfg = Debug|Win32 + {6AC673C7-7B3F-4520-A761-647B212A4BEF}.Debug|Win32.Build.0 = Debug|Win32 + {6AC673C7-7B3F-4520-A761-647B212A4BEF}.Release|Win32.ActiveCfg = Release|Win32 + {6AC673C7-7B3F-4520-A761-647B212A4BEF}.Release|Win32.Build.0 = Release|Win32 + {622DD7D8-0C0A-4303-9176-C9A8AF467E70}.Debug|Win32.ActiveCfg = Debug|Win32 + {622DD7D8-0C0A-4303-9176-C9A8AF467E70}.Debug|Win32.Build.0 = Debug|Win32 + {622DD7D8-0C0A-4303-9176-C9A8AF467E70}.Release|Win32.ActiveCfg = Release|Win32 + {622DD7D8-0C0A-4303-9176-C9A8AF467E70}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/3rdparty/ann_1.1.1_modified/MS_Win32/ann2fig/ann2fig.vcproj b/3rdparty/ann_1.1.1_modified/MS_Win32/ann2fig/ann2fig.vcproj new file mode 100755 index 0000000..977f639 --- /dev/null +++ b/3rdparty/ann_1.1.1_modified/MS_Win32/ann2fig/ann2fig.vcproj @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/3rdparty/ann_1.1.1_modified/MS_Win32/dll/dll.vcproj b/3rdparty/ann_1.1.1_modified/MS_Win32/dll/dll.vcproj new file mode 100755 index 0000000..d28c41b --- /dev/null +++ b/3rdparty/ann_1.1.1_modified/MS_Win32/dll/dll.vcproj @@ -0,0 +1,589 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/3rdparty/ann_1.1.1_modified/MS_Win32/sample/sample.vcproj b/3rdparty/ann_1.1.1_modified/MS_Win32/sample/sample.vcproj new file mode 100755 index 0000000..927027b --- /dev/null +++ b/3rdparty/ann_1.1.1_modified/MS_Win32/sample/sample.vcproj @@ -0,0 +1,271 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/3rdparty/ann_1.1.1_modified/MS_Win32/test/test.vcproj b/3rdparty/ann_1.1.1_modified/MS_Win32/test/test.vcproj new file mode 100755 index 0000000..9dbd36c --- /dev/null +++ b/3rdparty/ann_1.1.1_modified/MS_Win32/test/test.vcproj @@ -0,0 +1,302 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/3rdparty/ann_1.1.1_modified/Make-config b/3rdparty/ann_1.1.1_modified/Make-config new file mode 100755 index 0000000..2c6f26a --- /dev/null +++ b/3rdparty/ann_1.1.1_modified/Make-config @@ -0,0 +1,194 @@ +#----------------------------------------------------------------------- +# Makefile variations depending on different configurations +# +# ANN: Approximate Nearest Neighbors +# Version: 1.1 05/03/05 +# +# (This Make-config structure is based on the one used by Mesa by Brian +# Paul. If you succeed in porting ANN to your favorite system, please +# send email to mount@cs.umd.edu, and I'll try to include it in this +# list.) +# +#---------------------------------------------------------------------- +# The following configuration-dependent variables are passed to each +# the Makefile in subdirectories: +# +# ANNLIB The name of the ANN library file (usually libANN.a) +# C++ The C compiler (usually CC or g++) +# MAKELIB The command and flags to make a library file (usually +# "ar ...") +# CFLAGS Flags to C++ compiler +# RANLIB For "ranlib" = use ranlib, "true" = don't use ranlib +#---------------------------------------------------------------------- +# Revision 0.1 09/06/97 +# Initial release +# Revision 0.2 06/24/98 +# Minor changes to fix compilation errors on SGI systems. +# Revision 1.0 04/01/05 +# Modifications for alpha with cxx +# Removed CFLAGS2 options (just write your own) +# Removed -DUSING... (Compilers are pretty consistent these days) +# Added linux-g++ target +# Revision 1.1 05/03/05 +# Added macosx-g++ target +#----------------------------------------------------------------------------- + +#----------------------------------------------------------------------------- +# Compilation options (add these, as desired, to the CFLAGS variable +# in the desired compilation target below). For example, +# +# "CFLAGS = -O3 -Wall -DANN_PERF" +# +# -g Debugging. +# -O? Run-time optimization. +# -Wall Be verbose about warnings. +# +# -DANN_PERF Enable performance evaluation. (This may slow execution +# slightly.) +# +# -DANN_NO_LIMITS_H +# Use this if limits.h or float.h does not exist on your +# system. (Also see include/ANN/ANN.h for other changes +# needed.) +# +# -DANN_NO_RANDOM +# Use this option if srandom()/random() are not available +# on your system. Pseudo-random number generation is used +# in the utility program test/ann_test. The combination +# srandom()/random() is considered the best pseudo-random +# number generator, but is not available on all systems. +# If they are not available on your system (for example, +# Visual C++) then srand()/rand() will be used instead by +# setting this parameter. +# +# -DWIN32 +# This is used only for compilation under windows systems +# (but instead of using this, use the various .vcproj +# files in the MS_WIN32 directory). +#----------------------------------------------------------------------------- + +# Linux using g++ +linux-g++: + $(MAKE) targets \ + "ANNLIB = libANN.a" \ +# "C++ = g++" \ +# "CFLAGS = -O3" \ + "MAKELIB = ar ruv" \ + "RANLIB = true" + +# Mac OS X using g++ +macosx-g++: + $(MAKE) targets \ + "ANNLIB = libANN.a" \ +# "C++ = g++" \ +# "CFLAGS = -O3" \ + "MAKELIB = libtool -static -o " \ + "RANLIB = true" + +# SunOS5 +sunos5: + $(MAKE) targets \ + "ANNLIB = libANN.a" \ + "C++ = CC" \ + "CFLAGS = -O" \ + "MAKELIB = ar ruv" \ + "RANLIB = true" + +# SunOS5 with shared libraries +sunos5-sl: + $(MAKE) targets \ + "ANNLIB = libANN.a" \ + "C++ = CC" \ + "CFLAGS = -Kpic -O" \ + "MAKELIB = ld -G -o" \ + "RANLIB = true" + +# SunOS5 with g++ +sunos5-g++: + $(MAKE) targets \ + "ANNLIB = libANN.a" \ + "C++ = g++" \ + "CFLAGS = -O3" \ + "MAKELIB = ar ruv" \ + "RANLIB = true" + +# SunOS5 with g++ and shared libraries +sunos5-g++-sl: + $(MAKE) targets \ + "ANNLIB = libANN.so" \ + "C++ = g++" \ + "CFLAGS = -fpic -O3" \ + "MAKELIB = ld -G -o" \ + "RANLIB = true" + +#----------------------------------------------------------------------- +# Used for the author's testing and debugging only +#----------------------------------------------------------------------- + +# debugging version for authors +authors-debug: + $(MAKE) targets \ + "ANNLIB = libANN.a" \ + "C++ = g++" \ + "CFLAGS = -g -DANN_PERF -Wall" \ + "MAKELIB = ar ruv" \ + "RANLIB = true" + +# performance testing version for authors +authors-perf: + $(MAKE) targets \ + "ANNLIB = libANN.a" \ + "C++ = g++" \ + "CFLAGS = -O3 -DANN_PERF -Wall" \ + "MAKELIB = ar ruv" \ + "RANLIB = true" + +#----------------------------------------------------------------------- +# Some older ones that I have not tested with the latest version. +#----------------------------------------------------------------------- + +sgi: + $(MAKE) targets \ + "ANNLIB = libANN.a" \ + "C++ = CC -ansi" \ + "CFLAGS = -O2" \ + "MAKELIB = ar ruv" \ + "RANLIB = true" + +# DEC Alpha with g++ +alpha-g++: + $(MAKE) targets \ + "ANNLIB = libANN.a" \ + "C++ = g++" \ + "CFLAGS = -O3" \ + "MAKELIB = ar ruv" \ + "RANLIB = ranlib" + +# SunOS4 +sunos4: + $(MAKE) targets \ + "ANNLIB = libANN.a" \ + "C++ = CC" \ + "CFLAGS = -O" \ + "MAKELIB = ar ruv" \ + "RANLIB = ranlib" + +# SunOS4 with g++ +sunos4-g++: + $(MAKE) targets \ + "ANNLIB = libANN.a" \ + "C++ = g++" \ + "CFLAGS = -O3" \ + "MAKELIB = ar ruv" \ + "RANLIB = ranlib" + +# SunOS4 with g++ and shared libraries +sunos4-g++-sl: + $(MAKE) targets \ + "ANNLIB = libANN.so" \ + "C++ = g++" \ + "CC = g++" \ + "CFLAGS = -fPIC -O3" \ + "MAKELIB = ld -assert pure-text -o" \ + "RANLIB = true" + diff --git a/3rdparty/ann_1.1.1_modified/Makefile b/3rdparty/ann_1.1.1_modified/Makefile new file mode 100755 index 0000000..9d02e0e --- /dev/null +++ b/3rdparty/ann_1.1.1_modified/Makefile @@ -0,0 +1,124 @@ +#----------------------------------------------------------------------------- +# Top-level Makefile for ANN. +# +# ANN: Approximate Nearest Neighbors +# Version: 1.1 05/03/05 +#----------------------------------------------------------------------------- +# Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +# David Mount. All Rights Reserved. +# +# This software and related documentation is part of the Approximate +# Nearest Neighbor Library (ANN). This software is provided under +# the provisions of the Lesser GNU Public License (LGPL). See the +# file ../ReadMe.txt for further information. +# +# The University of Maryland (U.M.) and the authors make no +# representations about the suitability or fitness of this software for +# any purpose. It is provided "as is" without express or implied +# warranty. +#----------------------------------------------------------------------------- +# Revision 0.1 09/06/97 +# alpha release +# Revision 0.2 06/26/98 +# Minor changes to fix compilation errors on SGI systems. +# Revision 1.0 04/01/05 +# Initial release (finally!) +# Added linux-g++ target +# Revision 1.1 05/03/05 +# Added macosx-g++ target +#----------------------------------------------------------------------------- + +#----------------------------------------------------------------------------- +# default: list the options +# The following legacy targets are also available. +# make sunos4 for Sun with SunOS 4.x +# make sunos4-g++ for Sun with SunOS 4.x and g++ +# make alpha-g++ for DEC Alpha and g++ +# The following targets are used for internal development only +# make authors-debug author's debugging +# make authors-perf author's performance evaluations +# make distribution author's generation of distribution file +#----------------------------------------------------------------------------- +default: + @echo "Enter one of the following:" + @echo " make linux-g++ for Linux and g++" + @echo " make macosx-g++ for Mac OS X and g++" + @echo " make sunos5 for Sun with SunOS 5.x" + @echo " make sunos5-sl for Sun with SunOS 5.x, make shared libs" + @echo " make sunos5-g++ for Sun with SunOS 5.x and g++" + @echo " make sunos5-g++-sl for Sun with SunOS 5.x, g++, make shared libs" + @echo " make clean remove .o files" + @echo " make realclean remove .o, library and executable files" + @echo " " + @echo "See file Makefile for other compilation options, such as disabling" + @echo "performance measurement code." + +#----------------------------------------------------------------------------- +# main make entry point +#----------------------------------------------------------------------------- +alpha-g++ macosx-g++ linux-g++ sgi sunos4 sunos4-g++ sunos5 sunos5-g++ sunos5-g++-sl authors-debug authors-perf: + cd src ; $(MAKE) $@ + cd test ; $(MAKE) $@ + cd sample ; $(MAKE) $@ + cd ann2fig ; $(MAKE) $@ + +#----------------------------------------------------------------------------- +# Remove .o files and core files +#----------------------------------------------------------------------------- +clean: + cd src ; $(MAKE) clean + cd test ; $(MAKE) clean + cd sample ; $(MAKE) clean + cd ann2fig ; $(MAKE) clean + cd doc ; $(MAKE) clean + cd MS_Win32; $(MAKE) clean + cd validate ; $(MAKE) clean + +#----------------------------------------------------------------------------- +# Remove everthing that can be remade +#----------------------------------------------------------------------------- +realclean: + -rm -f lib/* + -rm -f bin/* + cd src ; $(MAKE) realclean + cd test ; $(MAKE) realclean + cd sample ; $(MAKE) realclean + cd ann2fig ; $(MAKE) realclean + cd doc ; $(MAKE) realclean + cd MS_Win32; $(MAKE) realclean + cd validate ; $(MAKE) realclean + +#----------------------------------------------------------------------------- +# Install (Deyuan Qiu) +#----------------------------------------------------------------------------- +install: + cp lib/*.a /usr/local/lib/ANN + cp include/ANN/*.h /usr/local/include/ANN + cp src/kd_tree.h /usr/local/include/ANN + + +#----------------------------------------------------------------------------- +# Make distribution package (for use by authors only) +#----------------------------------------------------------------------------- +DISTR = ann_1.1.1 + +distribution: realclean + cd .. ; mv -f $(DISTR) $(DISTR)-old; mkdir $(DISTR) + cp Copyright.txt ../$(DISTR) + cp License.txt ../$(DISTR) + cp Make-config ../$(DISTR) + cp Makefile ../$(DISTR) + cp ReadMe.txt ../$(DISTR) + cp -r MS_Win32 ../$(DISTR) +# cd ..; mv -f $(DISTR)_MS_Win32_bin $(DISTR)_MS_Win32_bin-old + cp -r MS_Win32_bin ../$(DISTR)_MS_Win32_bin + cp -r bin ../$(DISTR) + cp -r include ../$(DISTR) + cp -r lib ../$(DISTR) + cp -r src ../$(DISTR) + cp -r test ../$(DISTR) + cp -r sample ../$(DISTR) + cp -r ann2fig ../$(DISTR) + cd ../$(DISTR); mkdir doc + cp doc/*.pdf ../$(DISTR)/doc +# cd .. ; tar -cfv $(DISTR).tar $(DISTR) ; gzip $(DISTR).tar diff --git a/3rdparty/ann_1.1.1_modified/ReadMe.txt b/3rdparty/ann_1.1.1_modified/ReadMe.txt new file mode 100755 index 0000000..50b7664 --- /dev/null +++ b/3rdparty/ann_1.1.1_modified/ReadMe.txt @@ -0,0 +1,68 @@ +ANN: Approximate Nearest Neighbors +Version: 1.1.1 +Release date: Aug 4, 2006 +---------------------------------------------------------------------------- +Copyright (c) 1997-2005 University of Maryland and Sunil Arya and David +Mount. All Rights Reserved. See Copyright.txt and License.txt for +complete information on terms and conditions of use and distribution of +this software. +---------------------------------------------------------------------------- + +Authors +------- +David Mount +Dept of Computer Science +University of Maryland, +College Park, MD 20742 USA +mount@cs.umd.edu +http://www.cs.umd.edu/~mount/ + +Sunil Arya +Dept of Computer Science +Hong University of Science and Technology +Clearwater Bay, HONG KONG +arya@cs.ust.hk +http://www.cs.ust.hk/faculty/arya/ + +Introduction +------------ +ANN is a library written in the C++ programming language to support both +exact and approximate nearest neighbor searching in spaces of various +dimensions. It was implemented by David M. Mount of the University of +Maryland, and Sunil Arya of the Hong Kong University of Science and +Technology. ANN (pronounced like the name ``Ann'') stands for +Approximate Nearest Neighbors. ANN is also a testbed containing +programs and procedures for generating data sets, collecting and +analyzing statistics on the performance of nearest neighbor algorithms +and data structures, and visualizing the geometric structure of these +data structures. + +The ANN source code and documentation is available from the following +web page: + + http://www.cs.umd.edu/~mount/ANN + +For more information on ANN and its use, see the ``ANN Programming +Manual,'' which is provided with the software distribution. + +---------------------------------------------------------------------------- +History + Version 0.1 03/04/98 + Preliminary release + Version 0.2 06/24/98 + Changes for SGI compiler. + Version 1.0 04/01/05 + Fixed a number of small bugs + Added dump/load operations + Added annClose to eliminate minor memory leak + Improved compatibility with current C++ compilers + Added compilation for Microsoft Visual Studio.NET + Added compilation for Linux 2.x + Version 1.1 05/03/05 + Added make target for Mac OS X + Added fixed-radius range searching and counting + Added instructions on compiling/using ANN on Windows platforms + Fixed minor output bug in ann2fig + Version 1.1.1 08/04/06 + Added "planted" distribution + Updated old source comments for GNU LPL. diff --git a/3rdparty/ann_1.1.1_modified/ann2fig/Makefile b/3rdparty/ann_1.1.1_modified/ann2fig/Makefile new file mode 100755 index 0000000..0644d17 --- /dev/null +++ b/3rdparty/ann_1.1.1_modified/ann2fig/Makefile @@ -0,0 +1,87 @@ +#----------------------------------------------------------------------------- +# Makefile for ann2fig +# +# ANN: Approximate Nearest Neighbors +# Version: 1.1.1 08/04/06 +#----------------------------------------------------------------------------- +# Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +# David Mount. All Rights Reserved. +# +# This software and related documentation is part of the Approximate +# Nearest Neighbor Library (ANN). This software is provided under +# the provisions of the Lesser GNU Public License (LGPL). See the +# file ../ReadMe.txt for further information. +# +# The University of Maryland (U.M.) and the authors make no +# representations about the suitability or fitness of this software for +# any purpose. It is provided "as is" without express or implied +# warranty. +#----------------------------------------------------------------------------- +# Revision 0.1 03/04/98 +# Initial release +# Revision 1.1.1 08/04/06 +# Added copyright/license +#----------------------------------------------------------------------------- + +#----------------------------------------------------------------------------- +# Basic definitions +# BASEDIR where include, src, lib, ... are +# INCDIR include directory +# LIBDIR library directory +# BINDIR bin directory +# LDFLAGS loader flags +# ANNLIB ANN library +# OTHERLIB other libraries +#----------------------------------------------------------------------------- + +BASEDIR = .. +INCDIR = $(BASEDIR)/include +LIBDIR = $(BASEDIR)/lib +BINDIR = $(BASEDIR)/bin +LDFLAGS = -L$(LIBDIR) +ANNLIBS = -lANN +OTHERLIBS = -lm + +#----------------------------------------------------------------------------- +# Some more definitions +# ANN2FIG name of executable +#----------------------------------------------------------------------------- + +ANN2FIG = ann2fig +SOURCES = ann2fig.cpp +OBJECTS = $(SOURCES:.cpp=.o) + +#----------------------------------------------------------------------------- +# Make the program +#----------------------------------------------------------------------------- + +default: + @echo "Specify a target configuration" + +targets: $(BINDIR)/$(ANN2FIG) + +$(BINDIR)/$(ANN2FIG): $(OBJECTS) + $(C++) $(OBJECTS) -o $(ANN2FIG) $(LDFLAGS) $(ANNLIBS) $(OTHERLIBS) + mv $(ANN2FIG) $(BINDIR) + +#----------------------------------------------------------------------------- +# configuration definitions +#----------------------------------------------------------------------------- + +include ../Make-config + +#----------------------------------------------------------------------------- +# Objects +#----------------------------------------------------------------------------- + +ann2fig.o: ann2fig.cpp + $(C++) -c -I$(INCDIR) ann2fig.cpp + +#----------------------------------------------------------------------------- +# Cleaning +#----------------------------------------------------------------------------- + +clean: + -rm -f *.o core + +realclean: clean diff --git a/3rdparty/ann_1.1.1_modified/ann2fig/ann2fig.cpp b/3rdparty/ann_1.1.1_modified/ann2fig/ann2fig.cpp new file mode 100755 index 0000000..3d2c62f --- /dev/null +++ b/3rdparty/ann_1.1.1_modified/ann2fig/ann2fig.cpp @@ -0,0 +1,585 @@ +//---------------------------------------------------------------------- +// File: ann2fig.cpp +// Programmer: David Mount +// Last modified: 05/03/05 +// Description: convert ann dump file to fig file +//---------------------------------------------------------------------- +// Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +// David Mount. All Rights Reserved. +// +// This software and related documentation is part of the Approximate +// Nearest Neighbor Library (ANN). This software is provided under +// the provisions of the Lesser GNU Public License (LGPL). See the +// file ../ReadMe.txt for further information. +// +// The University of Maryland (U.M.) and the authors make no +// representations about the suitability or fitness of this software for +// any purpose. It is provided "as is" without express or implied +// warranty. +//---------------------------------------------------------------------- +// History: +// Revision 0.1 03/04/98 +// Initial release +// Revision 1.0 04/01/05 +// Changed dump file suffix from .ann to .dmp. +// Revision 1.1 05/03/05 +// Fixed usage output string. +//---------------------------------------------------------------------- +// This program inputs an ann dump file of a search structure +// perhaps along with point coordinates, and outputs a fig (Ver 3.1) +// file (see fig2dev (1)) displaying the tree. The fig file may +// then be displayed using xfig, or converted to any of a number of +// other formats using fig2dev. +// +// If the dimension is 2 then the entire tree is display. If the +// dimension is larger than 2 then the user has the option of +// selecting which two dimensions will be displayed, and the slice +// value for each of the remaining dimensions. All leaf cells +// intersecting the slice are shown along with the points in these +// cells. See the procedure getArgs() below for the command-line +// arguments. +//---------------------------------------------------------------------- + +#include // C standard I/O +#include // file I/O +#include // string manipulation +#include // all ANN includes + +using namespace std; // make std:: accessible + +//---------------------------------------------------------------------- +// Globals and their defaults +//---------------------------------------------------------------------- + +const int STRING_LEN = 500; // string lengths +const int MAX_DIM = 1000; // maximum dimension +const double DEF_SLICE_VAL = 0; // default slice value +const char FIG_HEAD[] = {"#FIG 3.1"}; // fig file header +const char DUMP_SUFFIX[] = {".dmp"}; // suffix for dump file +const char FIG_SUFFIX[] = {".fig"}; // suffix for fig file + +char file_name[STRING_LEN]; // (root) file name (say xxx) +char infile_name[STRING_LEN];// input file name (xxx.dmp) +char outfile_name[STRING_LEN];// output file name (xxx.fig) +char caption[STRING_LEN]; // caption line (= command line) +ofstream ofile; // output file stream +ifstream ifile; // input file stream +int dim_x = 0; // horizontal dimension +int dim_y = 1; // vertical dimension +double slice_val[MAX_DIM]; // array of slice values +double u_per_in = 1200; // fig units per inch (version 3.1) +double in_size = 5; // size of figure (in inches) +double in_low_x = 1; // fig upper left corner (in inches) +double in_low_y = 1; // fig upper left corner (in inches) +double u_size = 6000; // size of figure (in units) +double u_low_x = 1200; // fig upper left corner (in units) +double u_low_y = 1200; // fig upper left corner (in units) +int pt_size = 10; // point size (in fig units) + +int dim; // dimension +int n_pts; // number of points +ANNpointArray pts = NULL; // point array + +double scale; // scale factor for transformation +double offset_x; // offsets for transformation +double offset_y; + + // transformations +#define TRANS_X(p) (offset_x + scale*(p[dim_x])) +#define TRANS_Y(p) (offset_y - scale*(p[dim_y])) + +//---------------------------------------------------------------------- +// Error handler +//---------------------------------------------------------------------- + +void Error(char *msg, ANNerr level) +{ + if (level == ANNabort) { + cerr << "ann2fig: ERROR------->" << msg << "<-------------ERROR\n"; + exit(1); + } + else { + cerr << "ann2fig: WARNING----->" << msg << "<-------------WARNING\n"; + } +} + +//---------------------------------------------------------------------- +// set_slice_val - set all slice values to given value +//---------------------------------------------------------------------- + +void set_slice_val(double val) +{ + for (int i = 0; i < MAX_DIM; i++) { + slice_val[i] = val; + } +} + +//---------------------------------------------------------------------- +// getArgs - get input arguments +// +// Syntax: +// ann2fig [-upi scale] [-x low_x] [-y low_y] +// [-sz size] [-dx dim_x] [-dy dim_y] [-sl dim value]* +// [-ps pointsize] +// file +// +// where: +// -upi scale fig units per inch (default = 1200) +// -x low_x x and y offset of upper left corner (inches) +// -y low_y ...(default = 1) +// -sz size maximum side length of figure (in inches) +// ...(default = 5) +// -dx dim_x horizontal dimension (default = 0) +// -dy dim_y vertical dimension (default = 1) +// -sv value default slice value (default = 0) +// -sl dim value each such pair defines the value along the +// ...given dimension at which to slice. This +// ...may be supplied for all dimensions except +// ...dim_x and dim_y. +// -ps pointsize size of points in fig units (def = 10) +// file file (input=file.dmp, output=file.fig) +// +//---------------------------------------------------------------------- + +void getArgs(int argc, char **argv) +{ + int i; + int sl_dim; // temp slice dimension + double sl_val; // temp slice value + + set_slice_val(DEF_SLICE_VAL); // set initial slice-values + + if (argc <= 1) { + cerr << "Syntax:\n\ + ann2fig [-upi scale] [-x low_x] [-y low_y]\n\ + [-sz size] [-dx dim_x] [-dy dim_y] [-sl dim value]*\n\ + file\n\ + \n\ + where:\n\ + -upi scale fig units per inch (default = 1200)\n\ + -x low_x x and y offset of upper left corner (inches)\n\ + -y low_y ...(default = 1)\n\ + -sz size maximum side length of figure (in inches)\n\ + ...(default = 5)\n\ + -dx dim_x horizontal dimension (default = 0)\n\ + -dy dim_y vertical dimension (default = 1)\n\ + -sv value default slice value (default = 0)\n\ + -sl dim value each such pair defines the value along the\n\ + ...given dimension at which to slice. This\n\ + ...may be supplied for each dimension except\n\ + ...dim_x and dim_y.\n\ + -ps pointsize size of points in fig units (def = 10)\n\ + file file (input=file.dmp, output=file.fig)\n"; + exit(0); + } + + ANNbool fileSeen = ANNfalse; // file argument seen? + + for (i = 1; i < argc; i++) { + if (!strcmp(argv[i], "-upi")) { // process -upi option + sscanf(argv[++i], "%lf", &u_per_in); + } + else if (!strcmp(argv[i], "-x")) { // process -x option + sscanf(argv[++i], "%lf", &in_low_x); + } + else if (!strcmp(argv[i], "-y")) { // process -y option + sscanf(argv[++i], "%lf", &in_low_y); + } + else if (!strcmp(argv[i], "-sz")) { // process -sz option + sscanf(argv[++i], "%lf", &in_size); + } + else if (!strcmp(argv[i], "-dx")) { // process -dx option + sscanf(argv[++i], "%d", &dim_x); + } + else if (!strcmp(argv[i], "-dy")) { // process -dy option + sscanf(argv[++i], "%d", &dim_y); + } + else if (!strcmp(argv[i], "-sv")) { // process -sv option + sscanf(argv[++i], "%lf", &sl_val); + set_slice_val(sl_val); // set slice values + } + else if (!strcmp(argv[i], "-sl")) { // process -sl option + sscanf(argv[++i], "%d", &sl_dim); + if (sl_dim < 0 || sl_dim >= MAX_DIM) { + Error("Slice dimension out of bounds", ANNabort); + } + sscanf(argv[++i], "%lf", &slice_val[sl_dim]); + } + if (!strcmp(argv[i], "-ps")) { // process -ps option + sscanf(argv[++i], "%i", &pt_size); + } + else { // must be file name + fileSeen = ANNtrue; + sscanf(argv[i], "%s", file_name); + strcpy(infile_name, file_name); // copy to input file name + strcat(infile_name, DUMP_SUFFIX); + strcpy(outfile_name, file_name); // copy to output file name + strcat(outfile_name, FIG_SUFFIX); + } + } + + if (!fileSeen) { // no file seen + Error("File argument is required", ANNabort); + } + + ifile.open(infile_name, ios::in); // open for reading + if (!ifile) { + Error("Cannot open input file", ANNabort); + } + ofile.open(outfile_name, ios::out); // open for writing + if (!ofile) { + Error("Cannot open output file", ANNabort); + } + + u_low_x = u_per_in * in_low_x; // convert inches to fig units + u_low_y = u_per_in * in_low_y; + u_size = u_per_in * in_size; + + strcpy(caption, argv[0]); // copy command line to caption + for (i = 1; i < argc; i++) { + strcat(caption, " "); + strcat(caption, argv[i]); + } +} + +//---------------------------------------------------------------------- +// Graphics utilities for fig output +// +// writeHeader write header for fig file +// writePoint write a point +// writeBox write a box +// writeLine write a line +//---------------------------------------------------------------------- + +void writeHeader() +{ + ofile << FIG_HEAD << "\n" // fig file header + << "Portrait\n" + << "Center\n" + << "Inches\n" + << (int) u_per_in << " 2\n"; +} + +void writePoint(ANNpoint p) // write a single point +{ + // filled black point object + ofile << "1 3 0 1 -1 7 0 0 0 0.000 1 0.0000 "; + int cent_x = (int) TRANS_X(p); // transform center coords + int cent_y = (int) TRANS_Y(p); + ofile << cent_x << " " << cent_y << " " // write center, radius, bounds + << pt_size << " " << pt_size << " " + << cent_x << " " << cent_y << " " + << cent_x + pt_size << " " << cent_y + pt_size << "\n"; +} + +void writeBox(const ANNorthRect &r) // write box +{ + // unfilled box object + ofile << "2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5\n"; + + int p0_x = (int) TRANS_X(r.lo); // transform endpoints + int p0_y = (int) TRANS_Y(r.lo); + int p1_x = (int) TRANS_X(r.hi); + int p1_y = (int) TRANS_Y(r.hi); + ofile << "\t" + << p0_x << " " << p0_y << " " // write vertices + << p1_x << " " << p0_y << " " + << p1_x << " " << p1_y << " " + << p0_x << " " << p1_y << " " + << p0_x << " " << p0_y << "\n"; +} + +void writeLine(ANNpoint p0, ANNpoint p1) // write line +{ + // unfilled line object + ofile << "2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2\n"; + + int p0_x = (int) TRANS_X(p0); // transform endpoints + int p0_y = (int) TRANS_Y(p0); + int p1_x = (int) TRANS_X(p1); + int p1_y = (int) TRANS_Y(p1); + ofile << "\t" + << p0_x << " " << p0_y << " " // write vertices + << p1_x << " " << p1_y << "\n"; +} + +void writeCaption( // write caption text + const ANNorthRect &bnd_box, // bounding box + char *caption) // caption +{ + if (!strcmp(caption, "\0")) return; // null string? + int px = (int) TRANS_X(bnd_box.lo); // put .5 in. lower left + int py = (int) (TRANS_Y(bnd_box.lo) + 0.50 * u_per_in); + ofile << "4 0 -1 0 0 0 20 0.0000 4 255 2000 "; + ofile << px << " " << py << " " << caption << "\\001\n"; +} + +//---------------------------------------------------------------------- +// overlap - test whether a box overlap slicing region +// +// The slicing region is a 2-dimensional plane in space +// which contains points (x1, x2, ..., xn) satisfying the +// n-2 linear equalities: +// +// xi == slice_val[i] for i != dim_x, dim_y +// +// This procedure returns true of the box defined by +// corner points box.lo and box.hi overlap this plane. +//---------------------------------------------------------------------- + +ANNbool overlap(const ANNorthRect &box) +{ + for (int i = 0; i < dim; i++) { + if (i != dim_x && i != dim_y && + (box.lo[i] > slice_val[i] || box.hi[i] < slice_val[i])) + return ANNfalse; + } + return ANNtrue; +} + +//---------------------------------------------------------------------- +// readTree, recReadTree - inputs tree and outputs figure +// +// readTree procedure initializes things and then calls recReadTree +// which does all the work. +// +// recReadTree reads in a node of the tree, makes any recursive +// calls as needed to input the children of this node (if internal) +// and maintains the bounding box. Note that the bounding box +// is modified within this procedure, but it is the responsibility +// of the procedure that it be restored to its original value +// on return. +// +// Recall that these are the formats. The tree is given in +// preorder. +// +// Leaf node: +// leaf ... +// Splitting nodes: +// split +// Shrinking nodes: +// shrink +// +// +// ... (repeated n_bnds times) +// +// On reading a leaf we determine whether we should output the +// cell's points (if dimension = 2 or this cell overlaps the +// slicing region). For splitting nodes we check whether the +// current cell overlaps the slicing plane and whether the +// cutting dimension coincides with either the x or y drawing +// dimensions. If so, we output the corresponding splitting +// segment. +//---------------------------------------------------------------------- + +void recReadTree(ANNorthRect &box) +{ + char tag[STRING_LEN]; // tag (leaf, split, shrink) + int n_pts; // number of points in leaf + int idx; // point index + int cd; // cut dimension + ANNcoord cv; // cut value + ANNcoord lb; // low bound + ANNcoord hb; // high bound + int n_bnds; // number of bounding sides + int sd; // which side + + ifile >> tag; // input node tag + if (strcmp(tag, "leaf") == 0) { // leaf node + + ifile >> n_pts; // input number of points + // check for overlap + if (dim == 2 || overlap(box)) { + for (int i = 0; i < n_pts; i++) { // yes, write the points + ifile >> idx; + writePoint(pts[idx]); + } + } + else { // input but ignore points + for (int i = 0; i < n_pts; i++) { + ifile >> idx; + } + } + } + else if (strcmp(tag, "split") == 0) { // splitting node + + ifile >> cd >> cv >> lb >> hb; + if (lb != box.lo[cd] || hb != box.hi[cd]) { + Error("Bounding box coordinates are fishy", ANNwarn); + } + + ANNcoord lv = box.lo[cd]; // save bounds for cutting dim + ANNcoord hv = box.hi[cd]; + + //-------------------------------------------------------------- + // The following code is rather fragile so modify at your + // own risk. We first decrease the high-end of the bounding + // box down to the cutting plane and then read the left subtree. + // Then we increase the low-end of the bounding box up to the + // cutting plane (thus collapsing the bounding box to a d-1 + // dimensional hyperrectangle). Then we draw the projection of + // its diagonal if it crosses the slicing plane. This will have + // the effect of drawing its intersection on the slicing plane. + // Then we restore the high-end of the bounding box and read + // the right subtree. Finally we restore the low-end of the + // bounding box, before returning. + //-------------------------------------------------------------- + box.hi[cd] = cv; // decrease high bounds + recReadTree(box); // read left subtree + // check for overlap + box.lo[cd] = cv; // increase low bounds + if (dim == 2 || overlap(box)) { // check for overlap + if (cd == dim_x || cd == dim_y) { // cut through slice plane + writeLine(box.lo, box.hi); // draw cutting line + } + } + box.hi[cd] = hv; // restore high bounds + + recReadTree(box); // read right subtree + box.lo[cd] = lv; // restore low bounds + } + else if (strcmp(tag, "shrink") == 0) { // splitting node + + ANNorthRect inner(dim, box); // copy bounding box + ifile >> n_bnds; // number of bounding sides + for (int i = 0; i < n_bnds; i++) { + ifile >> cd >> cv >> sd; // input bounding halfspace + ANNorthHalfSpace hs(cd, cv, sd); // create orthogonal halfspace + hs.project(inner.lo); // intersect by projecting + hs.project(inner.hi); + } + if (dim == 2 || overlap(inner)) { + writeBox(inner); // draw inner rectangle + } + recReadTree(inner); // read inner subtree + recReadTree(box); // read outer subtree + } + else { + Error("Illegal node type in dump file", ANNabort); + } +} + +void readTree(ANNorthRect &bnd_box) +{ + writeHeader(); // output header + writeBox(bnd_box); // draw bounding box + writeCaption(bnd_box, caption); // write caption + recReadTree(bnd_box); // do it +} + +//---------------------------------------------------------------------- +// readANN - read the ANN dump file +// +// This procedure reads in the dump file. See the format below. +// It first reads the header line with version number. If the +// points section is present it reads them (otherwise just leaves +// points = NULL), and then it reads the tree section. It inputs +// the bounding box and determines the parameters for transforming +// the image to figure units. It then invokes the procedure +// readTree to do all the real work. +// +// Dump File Format: = coordinate value (ANNcoord) +// +// #ANN [END_OF_LINE] +// points (point coordinates: this is optional) +// 0 ... (point indices and coordinates) +// 1 ... +// ... +// tree +// ... (lower end of bounding box) +// ... (upper end of bounding box) +// If the tree is null, then a single line "null" is +// output. Otherwise the nodes of the tree are printed +// one per line in preorder. Leaves and splitting nodes +// have the following formats: +// Leaf node: +// leaf ... +// Splitting nodes: +// split +// Shrinking nodes: +// shrink +// +// +// ... (repeated n_bnds times) +// +// Note: Infinite lo_ and hi_bounds are printed as the special +// values "-INF" and "+INF", respectively. We do not +// check for this, because the current version of ANN +// starts with a finite bounding box if the tree is +// nonempty. +//---------------------------------------------------------------------- + +void readANN() +{ + int j; + char str[STRING_LEN]; // storage for string + char version[STRING_LEN]; // storage for version + int bkt_size; // bucket size + + ifile >> str; // input header + if (strcmp(str, "#ANN") != 0) { // incorrect header + Error("Incorrect header for dump file", ANNabort); + } + ifile.getline(version, STRING_LEN); // get version (ignore) + ifile >> str; // get major heading + if (strcmp(str, "points") == 0) { // points section + ifile >> dim; // read dimension + ifile >> n_pts; // number of points + pts = annAllocPts(n_pts, dim); // allocate points + for (int i = 0; i < n_pts; i++) { // input point coordinates + int idx; // point index + ifile >> idx; // input point index + if (idx < 0 || idx >= n_pts) { + Error("Point index is out of range", ANNabort); + } + for (j = 0; j < dim; j++) { + ifile >> pts[idx][j]; // read point coordinates + } + } + ifile >> str; // get next major heading + } + if (strcmp(str, "tree") == 0) { // tree section + ifile >> dim; // read dimension + if (dim_x > dim || dim_y > dim) { + Error("Dimensions out of bounds", ANNabort); + } + ifile >> n_pts; // number of points + ifile >> bkt_size; // bucket size (ignored) + // read bounding box + ANNorthRect bnd_box(dim); // create bounding box + for (j = 0; j < dim; j++) { + ifile >> bnd_box.lo[j]; // read box low coordinates + } + for (j = 0; j < dim; j++) { + ifile >> bnd_box.hi[j]; // read box high coordinates + } + // compute scaling factors + double box_len_x = bnd_box.hi[dim_x] - bnd_box.lo[dim_x]; + double box_len_y = bnd_box.hi[dim_y] - bnd_box.lo[dim_y]; + // longer side determines scale + if (box_len_x > box_len_y) scale = u_size/box_len_x; + else scale = u_size/box_len_y; + // compute offsets + offset_x = u_low_x - scale*bnd_box.lo[dim_x]; + offset_y = u_low_y + scale*bnd_box.hi[dim_y]; + readTree(bnd_box); // read the tree and process + } + else if (strcmp(str, "null") == 0) return; // empty tree + else { + cerr << "Input string: " << str << "\n"; + Error("Illegal ann format. Expecting section heading", ANNabort); + } +} + +//---------------------------------------------------------------------- +// Main program +// +// Gets the command-line arguments and invokes the main scanning +// procedure. +//---------------------------------------------------------------------- + +main(int argc, char **argv) +{ + getArgs(argc, argv); // get input arguments + readANN(); // read the dump file +} diff --git a/3rdparty/ann_1.1.1_modified/changelog.txt b/3rdparty/ann_1.1.1_modified/changelog.txt new file mode 100755 index 0000000..99bfc1b --- /dev/null +++ b/3rdparty/ann_1.1.1_modified/changelog.txt @@ -0,0 +1,4 @@ +modified by Deyuan Qiu: +.../include/ANN.h line779 +.../src/kd_tree.h line87 line155 +.../MAKEFILE line94 diff --git a/3rdparty/ann_1.1.1_modified/doc/ANNmanual.pdf b/3rdparty/ann_1.1.1_modified/doc/ANNmanual.pdf new file mode 100755 index 0000000..00e9e90 Binary files /dev/null and b/3rdparty/ann_1.1.1_modified/doc/ANNmanual.pdf differ diff --git a/3rdparty/ann_1.1.1_modified/include/ANN/ANN.h b/3rdparty/ann_1.1.1_modified/include/ANN/ANN.h new file mode 100755 index 0000000..f39082e --- /dev/null +++ b/3rdparty/ann_1.1.1_modified/include/ANN/ANN.h @@ -0,0 +1,914 @@ +//---------------------------------------------------------------------- +// File: ANN.h +// Programmer: Sunil Arya and David Mount +// Last modified: 05/03/05 (Release 1.1) +// Description: Basic include file for approximate nearest +// neighbor searching. +//---------------------------------------------------------------------- +// Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +// David Mount. All Rights Reserved. +// +// This software and related documentation is part of the Approximate +// Nearest Neighbor Library (ANN). This software is provided under +// the provisions of the Lesser GNU Public License (LGPL). See the +// file ../ReadMe.txt for further information. +// +// The University of Maryland (U.M.) and the authors make no +// representations about the suitability or fitness of this software for +// any purpose. It is provided "as is" without express or implied +// warranty. +//---------------------------------------------------------------------- +// History: +// Revision 0.1 03/04/98 +// Initial release +// Revision 1.0 04/01/05 +// Added copyright and revision information +// Added ANNcoordPrec for coordinate precision. +// Added methods theDim, nPoints, maxPoints, thePoints to ANNpointSet. +// Cleaned up C++ structure for modern compilers +// Revision 1.1 05/03/05 +// Added fixed-radius k-NN searching +//---------------------------------------------------------------------- + +//---------------------------------------------------------------------- +// ANN - approximate nearest neighbor searching +// ANN is a library for approximate nearest neighbor searching, +// based on the use of standard and priority search in kd-trees +// and balanced box-decomposition (bbd) trees. Here are some +// references to the main algorithmic techniques used here: +// +// kd-trees: +// Friedman, Bentley, and Finkel, ``An algorithm for finding +// best matches in logarithmic expected time,'' ACM +// Transactions on Mathematical Software, 3(3):209-226, 1977. +// +// Priority search in kd-trees: +// Arya and Mount, ``Algorithms for fast vector quantization,'' +// Proc. of DCC '93: Data Compression Conference, eds. J. A. +// Storer and M. Cohn, IEEE Press, 1993, 381-390. +// +// Approximate nearest neighbor search and bbd-trees: +// Arya, Mount, Netanyahu, Silverman, and Wu, ``An optimal +// algorithm for approximate nearest neighbor searching,'' +// 5th Ann. ACM-SIAM Symposium on Discrete Algorithms, +// 1994, 573-582. +//---------------------------------------------------------------------- + +#ifndef ANN_H +#define ANN_H + +#ifdef WIN32 + //---------------------------------------------------------------------- + // For Microsoft Visual C++, externally accessible symbols must be + // explicitly indicated with DLL_API, which is somewhat like "extern." + // + // The following ifdef block is the standard way of creating macros + // which make exporting from a DLL simpler. All files within this DLL + // are compiled with the DLL_EXPORTS preprocessor symbol defined on the + // command line. In contrast, projects that use (or import) the DLL + // objects do not define the DLL_EXPORTS symbol. This way any other + // project whose source files include this file see DLL_API functions as + // being imported from a DLL, wheras this DLL sees symbols defined with + // this macro as being exported. + //---------------------------------------------------------------------- + #ifdef DLL_EXPORTS + #define DLL_API __declspec(dllexport) + #else + #define DLL_API __declspec(dllimport) + #endif + //---------------------------------------------------------------------- + // DLL_API is ignored for all other systems + //---------------------------------------------------------------------- +#else + #define DLL_API +#endif + +//---------------------------------------------------------------------- +// basic includes +//---------------------------------------------------------------------- + +#include // math includes +#include // I/O streams +#include // I/O manipulators + +//---------------------------------------------------------------------- +// Limits +// There are a number of places where we use the maximum double value as +// default initializers (and others may be used, depending on the +// data/distance representation). These can usually be found in limits.h +// (as LONG_MAX, INT_MAX) or in float.h (as DBL_MAX, FLT_MAX). +// +// Not all systems have these files. If you are using such a system, +// you should set the preprocessor symbol ANN_NO_LIMITS_H when +// compiling, and modify the statements below to generate the +// appropriate value. For practical purposes, this does not need to be +// the maximum double value. It is sufficient that it be at least as +// large than the maximum squared distance between between any two +// points. +//---------------------------------------------------------------------- +#ifdef ANN_NO_LIMITS_H // limits.h unavailable + #include // replacement for limits.h + const double ANN_DBL_MAX = MAXDOUBLE; // insert maximum double +#else + #include + #include + const double ANN_DBL_MAX = DBL_MAX; +#endif + +#define ANNversion "1.1.1" // ANN version and information +#define ANNversionCmt "" +#define ANNcopyright "David M. Mount and Sunil Arya" +#define ANNlatestRev "Aug 4, 2006" + +//---------------------------------------------------------------------- +// ANNbool +// This is a simple boolean type. Although ANSI C++ is supposed +// to support the type bool, some compilers do not have it. +//---------------------------------------------------------------------- + +enum ANNbool {ANNfalse = 0, ANNtrue = 1}; // ANN boolean type (non ANSI C++) + +//---------------------------------------------------------------------- +// ANNcoord, ANNdist +// ANNcoord and ANNdist are the types used for representing +// point coordinates and distances. They can be modified by the +// user, with some care. It is assumed that they are both numeric +// types, and that ANNdist is generally of an equal or higher type +// from ANNcoord. A variable of type ANNdist should be large +// enough to store the sum of squared components of a variable +// of type ANNcoord for the number of dimensions needed in the +// application. For example, the following combinations are +// legal: +// +// ANNcoord ANNdist +// --------- ------------------------------- +// short short, int, long, float, double +// int int, long, float, double +// long long, float, double +// float float, double +// double double +// +// It is the user's responsibility to make sure that overflow does +// not occur in distance calculation. +//---------------------------------------------------------------------- + +typedef double ANNcoord; // coordinate data type +typedef double ANNdist; // distance data type + +//---------------------------------------------------------------------- +// ANNidx +// ANNidx is a point index. When the data structure is built, the +// points are given as an array. Nearest neighbor results are +// returned as an integer index into this array. To make it +// clearer when this is happening, we define the integer type +// ANNidx. Indexing starts from 0. +// +// For fixed-radius near neighbor searching, it is possible that +// there are not k nearest neighbors within the search radius. To +// indicate this, the algorithm returns ANN_NULL_IDX as its result. +// It should be distinguishable from any valid array index. +//---------------------------------------------------------------------- + +typedef int ANNidx; // point index +const ANNidx ANN_NULL_IDX = -1; // a NULL point index + +//---------------------------------------------------------------------- +// Infinite distance: +// The code assumes that there is an "infinite distance" which it +// uses to initialize distances before performing nearest neighbor +// searches. It should be as larger or larger than any legitimate +// nearest neighbor distance. +// +// On most systems, these should be found in the standard include +// file or possibly . If you do not have these +// file, some suggested values are listed below, assuming 64-bit +// long, 32-bit int and 16-bit short. +// +// ANNdist ANN_DIST_INF Values (see or ) +// ------- ------------ ------------------------------------ +// double DBL_MAX 1.79769313486231570e+308 +// float FLT_MAX 3.40282346638528860e+38 +// long LONG_MAX 0x7fffffffffffffff +// int INT_MAX 0x7fffffff +// short SHRT_MAX 0x7fff +//---------------------------------------------------------------------- + +const ANNdist ANN_DIST_INF = ANN_DBL_MAX; + +//---------------------------------------------------------------------- +// Significant digits for tree dumps: +// When floating point coordinates are used, the routine that dumps +// a tree needs to know roughly how many significant digits there +// are in a ANNcoord, so it can output points to full precision. +// This is defined to be ANNcoordPrec. On most systems these +// values can be found in the standard include files or +// . For integer types, the value is essentially ignored. +// +// ANNcoord ANNcoordPrec Values (see or ) +// -------- ------------ ------------------------------------ +// double DBL_DIG 15 +// float FLT_DIG 6 +// long doesn't matter 19 +// int doesn't matter 10 +// short doesn't matter 5 +//---------------------------------------------------------------------- + +#ifdef DBL_DIG // number of sig. bits in ANNcoord + const int ANNcoordPrec = DBL_DIG; +#else + const int ANNcoordPrec = 15; // default precision +#endif + +//---------------------------------------------------------------------- +// Self match? +// In some applications, the nearest neighbor of a point is not +// allowed to be the point itself. This occurs, for example, when +// computing all nearest neighbors in a set. By setting the +// parameter ANN_ALLOW_SELF_MATCH to ANNfalse, the nearest neighbor +// is the closest point whose distance from the query point is +// strictly positive. +//---------------------------------------------------------------------- + +const ANNbool ANN_ALLOW_SELF_MATCH = ANNtrue; + +//---------------------------------------------------------------------- +// Norms and metrics: +// ANN supports any Minkowski norm for defining distance. In +// particular, for any p >= 1, the L_p Minkowski norm defines the +// length of a d-vector (v0, v1, ..., v(d-1)) to be +// +// (|v0|^p + |v1|^p + ... + |v(d-1)|^p)^(1/p), +// +// (where ^ denotes exponentiation, and |.| denotes absolute +// value). The distance between two points is defined to be the +// norm of the vector joining them. Some common distance metrics +// include +// +// Euclidean metric p = 2 +// Manhattan metric p = 1 +// Max metric p = infinity +// +// In the case of the max metric, the norm is computed by taking +// the maxima of the absolute values of the components. ANN is +// highly "coordinate-based" and does not support general distances +// functions (e.g. those obeying just the triangle inequality). It +// also does not support distance functions based on +// inner-products. +// +// For the purpose of computing nearest neighbors, it is not +// necessary to compute the final power (1/p). Thus the only +// component that is used by the program is |v(i)|^p. +// +// ANN parameterizes the distance computation through the following +// macros. (Macros are used rather than procedures for +// efficiency.) Recall that the distance between two points is +// given by the length of the vector joining them, and the length +// or norm of a vector v is given by formula: +// +// |v| = ROOT(POW(v0) # POW(v1) # ... # POW(v(d-1))) +// +// where ROOT, POW are unary functions and # is an associative and +// commutative binary operator mapping the following types: +// +// ** POW: ANNcoord --> ANNdist +// ** #: ANNdist x ANNdist --> ANNdist +// ** ROOT: ANNdist (>0) --> double +// +// For early termination in distance calculation (partial distance +// calculation) we assume that POW and # together are monotonically +// increasing on sequences of arguments, meaning that for all +// v0..vk and y: +// +// POW(v0) #...# POW(vk) <= (POW(v0) #...# POW(vk)) # POW(y). +// +// Incremental Distance Calculation: +// The program uses an optimized method of computing distances for +// kd-trees and bd-trees, called incremental distance calculation. +// It is used when distances are to be updated when only a single +// coordinate of a point has been changed. In order to use this, +// we assume that there is an incremental update function DIFF(x,y) +// for #, such that if: +// +// s = x0 # ... # xi # ... # xk +// +// then if s' is equal to s but with xi replaced by y, that is, +// +// s' = x0 # ... # y # ... # xk +// +// then the length of s' can be computed by: +// +// |s'| = |s| # DIFF(xi,y). +// +// Thus, if # is + then DIFF(xi,y) is (yi-x). For the L_infinity +// norm we make use of the fact that in the program this function +// is only invoked when y > xi, and hence DIFF(xi,y)=y. +// +// Finally, for approximate nearest neighbor queries we assume +// that POW and ROOT are related such that +// +// v*ROOT(x) = ROOT(POW(v)*x) +// +// Here are the values for the various Minkowski norms: +// +// L_p: p even: p odd: +// ------------------------- ------------------------ +// POW(v) = v^p POW(v) = |v|^p +// ROOT(x) = x^(1/p) ROOT(x) = x^(1/p) +// # = + # = + +// DIFF(x,y) = y - x DIFF(x,y) = y - x +// +// L_inf: +// POW(v) = |v| +// ROOT(x) = x +// # = max +// DIFF(x,y) = y +// +// By default the Euclidean norm is assumed. To change the norm, +// uncomment the appropriate set of macros below. +//---------------------------------------------------------------------- + +//---------------------------------------------------------------------- +// Use the following for the Euclidean norm +//---------------------------------------------------------------------- +#define ANN_POW(v) ((v)*(v)) +#define ANN_ROOT(x) sqrt(x) +#define ANN_SUM(x,y) ((x) + (y)) +#define ANN_DIFF(x,y) ((y) - (x)) + +//---------------------------------------------------------------------- +// Use the following for the L_1 (Manhattan) norm +//---------------------------------------------------------------------- +// #define ANN_POW(v) fabs(v) +// #define ANN_ROOT(x) (x) +// #define ANN_SUM(x,y) ((x) + (y)) +// #define ANN_DIFF(x,y) ((y) - (x)) + +//---------------------------------------------------------------------- +// Use the following for a general L_p norm +//---------------------------------------------------------------------- +// #define ANN_POW(v) pow(fabs(v),p) +// #define ANN_ROOT(x) pow(fabs(x),1/p) +// #define ANN_SUM(x,y) ((x) + (y)) +// #define ANN_DIFF(x,y) ((y) - (x)) + +//---------------------------------------------------------------------- +// Use the following for the L_infinity (Max) norm +//---------------------------------------------------------------------- +// #define ANN_POW(v) fabs(v) +// #define ANN_ROOT(x) (x) +// #define ANN_SUM(x,y) ((x) > (y) ? (x) : (y)) +// #define ANN_DIFF(x,y) (y) + +//---------------------------------------------------------------------- +// Array types +// The following array types are of basic interest. A point is +// just a dimensionless array of coordinates, a point array is a +// dimensionless array of points. A distance array is a +// dimensionless array of distances and an index array is a +// dimensionless array of point indices. The latter two are used +// when returning the results of k-nearest neighbor queries. +//---------------------------------------------------------------------- + +typedef ANNcoord* ANNpoint; // a point +typedef ANNpoint* ANNpointArray; // an array of points +typedef ANNdist* ANNdistArray; // an array of distances +typedef ANNidx* ANNidxArray; // an array of point indices + +//---------------------------------------------------------------------- +// Basic point and array utilities: +// The following procedures are useful supplements to ANN's nearest +// neighbor capabilities. +// +// annDist(): +// Computes the (squared) distance between a pair of points. +// Note that this routine is not used internally by ANN for +// computing distance calculations. For reasons of efficiency +// this is done using incremental distance calculation. Thus, +// this routine cannot be modified as a method of changing the +// metric. +// +// Because points (somewhat like strings in C) are stored as +// pointers. Consequently, creating and destroying copies of +// points may require storage allocation. These procedures do +// this. +// +// annAllocPt() and annDeallocPt(): +// Allocate a deallocate storage for a single point, and +// return a pointer to it. The argument to AllocPt() is +// used to initialize all components. +// +// annAllocPts() and annDeallocPts(): +// Allocate and deallocate an array of points as well a +// place to store their coordinates, and initializes the +// points to point to their respective coordinates. It +// allocates point storage in a contiguous block large +// enough to store all the points. It performs no +// initialization. +// +// annCopyPt(): +// Creates a copy of a given point, allocating space for +// the new point. It returns a pointer to the newly +// allocated copy. +//---------------------------------------------------------------------- + +DLL_API ANNdist annDist( + int dim, // dimension of space + ANNpoint p, // points + ANNpoint q); + +DLL_API ANNpoint annAllocPt( + int dim, // dimension + ANNcoord c = 0); // coordinate value (all equal) + +DLL_API ANNpointArray annAllocPts( + int n, // number of points + int dim); // dimension + +DLL_API void annDeallocPt( + ANNpoint &p); // deallocate 1 point + +DLL_API void annDeallocPts( + ANNpointArray &pa); // point array + +DLL_API ANNpoint annCopyPt( + int dim, // dimension + ANNpoint source); // point to copy + +//---------------------------------------------------------------------- +//Overall structure: ANN supports a number of different data structures +//for approximate and exact nearest neighbor searching. These are: +// +// ANNbruteForce A simple brute-force search structure. +// ANNkd_tree A kd-tree tree search structure. ANNbd_tree +// A bd-tree tree search structure (a kd-tree with shrink +// capabilities). +// +// At a minimum, each of these data structures support k-nearest +// neighbor queries. The nearest neighbor query, annkSearch, +// returns an integer identifier and the distance to the nearest +// neighbor(s) and annRangeSearch returns the nearest points that +// lie within a given query ball. +// +// Each structure is built by invoking the appropriate constructor +// and passing it (at a minimum) the array of points, the total +// number of points and the dimension of the space. Each structure +// is also assumed to support a destructor and member functions +// that return basic information about the point set. +// +// Note that the array of points is not copied by the data +// structure (for reasons of space efficiency), and it is assumed +// to be constant throughout the lifetime of the search structure. +// +// The search algorithm, annkSearch, is given the query point (q), +// and the desired number of nearest neighbors to report (k), and +// the error bound (eps) (whose default value is 0, implying exact +// nearest neighbors). It returns two arrays which are assumed to +// contain at least k elements: one (nn_idx) contains the indices +// (within the point array) of the nearest neighbors and the other +// (dd) contains the squared distances to these nearest neighbors. +// +// The search algorithm, annkFRSearch, is a fixed-radius kNN +// search. In addition to a query point, it is given a (squared) +// radius bound. (This is done for consistency, because the search +// returns distances as squared quantities.) It does two things. +// First, it computes the k nearest neighbors within the radius +// bound, and second, it returns the total number of points lying +// within the radius bound. It is permitted to set k = 0, in which +// case it effectively answers a range counting query. If the +// error bound epsilon is positive, then the search is approximate +// in the sense that it is free to ignore any point that lies +// outside a ball of radius r/(1+epsilon), where r is the given +// (unsquared) radius bound. +// +// The generic object from which all the search structures are +// dervied is given below. It is a virtual object, and is useless +// by itself. +//---------------------------------------------------------------------- + +class DLL_API ANNpointSet { +public: + virtual ~ANNpointSet() {} // virtual distructor + + virtual void annkSearch( // approx k near neighbor search + ANNpoint q, // query point + int k, // number of near neighbors to return + ANNidxArray nn_idx, // nearest neighbor array (modified) + ANNdistArray dd, // dist to near neighbors (modified) + double eps=0.0 // error bound + ) = 0; // pure virtual (defined elsewhere) + + virtual int annkFRSearch( // approx fixed-radius kNN search + ANNpoint q, // query point + ANNdist sqRad, // squared radius + int k = 0, // number of near neighbors to return + ANNidxArray nn_idx = NULL, // nearest neighbor array (modified) + ANNdistArray dd = NULL, // dist to near neighbors (modified) + double eps=0.0 // error bound + ) = 0; // pure virtual (defined elsewhere) + + virtual int theDim() = 0; // return dimension of space + virtual int nPoints() = 0; // return number of points + // return pointer to points + virtual ANNpointArray thePoints() = 0; +}; + +//---------------------------------------------------------------------- +// Brute-force nearest neighbor search: +// The brute-force search structure is very simple but inefficient. +// It has been provided primarily for the sake of comparison with +// and validation of the more complex search structures. +// +// Query processing is the same as described above, but the value +// of epsilon is ignored, since all distance calculations are +// performed exactly. +// +// WARNING: This data structure is very slow, and should not be +// used unless the number of points is very small. +// +// Internal information: +// --------------------- +// This data structure bascially consists of the array of points +// (each a pointer to an array of coordinates). The search is +// performed by a simple linear scan of all the points. +//---------------------------------------------------------------------- + +class DLL_API ANNbruteForce: public ANNpointSet { + int dim; // dimension + int n_pts; // number of points + ANNpointArray pts; // point array +public: + ANNbruteForce( // constructor from point array + ANNpointArray pa, // point array + int n, // number of points + int dd); // dimension + + ~ANNbruteForce(); // destructor + + void annkSearch( // approx k near neighbor search + ANNpoint q, // query point + int k, // number of near neighbors to return + ANNidxArray nn_idx, // nearest neighbor array (modified) + ANNdistArray dd, // dist to near neighbors (modified) + double eps=0.0); // error bound + + int annkFRSearch( // approx fixed-radius kNN search + ANNpoint q, // query point + ANNdist sqRad, // squared radius + int k = 0, // number of near neighbors to return + ANNidxArray nn_idx = NULL, // nearest neighbor array (modified) + ANNdistArray dd = NULL, // dist to near neighbors (modified) + double eps=0.0); // error bound + + int theDim() // return dimension of space + { return dim; } + + int nPoints() // return number of points + { return n_pts; } + + ANNpointArray thePoints() // return pointer to points + { return pts; } +}; + +//---------------------------------------------------------------------- +// kd- and bd-tree splitting and shrinking rules +// kd-trees supports a collection of different splitting rules. +// In addition to the standard kd-tree splitting rule proposed +// by Friedman, Bentley, and Finkel, we have introduced a +// number of other splitting rules, which seem to perform +// as well or better (for the distributions we have tested). +// +// The splitting methods given below allow the user to tailor +// the data structure to the particular data set. They are +// are described in greater details in the kd_split.cc source +// file. The method ANN_KD_SUGGEST is the method chosen (rather +// subjectively) by the implementors as the one giving the +// fastest performance, and is the default splitting method. +// +// As with splitting rules, there are a number of different +// shrinking rules. The shrinking rule ANN_BD_NONE does no +// shrinking (and hence produces a kd-tree tree). The rule +// ANN_BD_SUGGEST uses the implementors favorite rule. +//---------------------------------------------------------------------- + +enum ANNsplitRule { + ANN_KD_STD = 0, // the optimized kd-splitting rule + ANN_KD_MIDPT = 1, // midpoint split + ANN_KD_FAIR = 2, // fair split + ANN_KD_SL_MIDPT = 3, // sliding midpoint splitting method + ANN_KD_SL_FAIR = 4, // sliding fair split method + ANN_KD_SUGGEST = 5}; // the authors' suggestion for best +const int ANN_N_SPLIT_RULES = 6; // number of split rules + +enum ANNshrinkRule { + ANN_BD_NONE = 0, // no shrinking at all (just kd-tree) + ANN_BD_SIMPLE = 1, // simple splitting + ANN_BD_CENTROID = 2, // centroid splitting + ANN_BD_SUGGEST = 3}; // the authors' suggested choice +const int ANN_N_SHRINK_RULES = 4; // number of shrink rules + +//---------------------------------------------------------------------- +// kd-tree: +// The main search data structure supported by ANN is a kd-tree. +// The main constructor is given a set of points and a choice of +// splitting method to use in building the tree. +// +// Construction: +// ------------- +// The constructor is given the point array, number of points, +// dimension, bucket size (default = 1), and the splitting rule +// (default = ANN_KD_SUGGEST). The point array is not copied, and +// is assumed to be kept constant throughout the lifetime of the +// search structure. There is also a "load" constructor that +// builds a tree from a file description that was created by the +// Dump operation. +// +// Search: +// ------- +// There are two search methods: +// +// Standard search (annkSearch()): +// Searches nodes in tree-traversal order, always visiting +// the closer child first. +// Priority search (annkPriSearch()): +// Searches nodes in order of increasing distance of the +// associated cell from the query point. For many +// distributions the standard search seems to work just +// fine, but priority search is safer for worst-case +// performance. +// +// Printing: +// --------- +// There are two methods provided for printing the tree. Print() +// is used to produce a "human-readable" display of the tree, with +// indenation, which is handy for debugging. Dump() produces a +// format that is suitable reading by another program. There is a +// "load" constructor, which constructs a tree which is assumed to +// have been saved by the Dump() procedure. +// +// Performance and Structure Statistics: +// ------------------------------------- +// The procedure getStats() collects statistics information on the +// tree (its size, height, etc.) See ANNperf.h for information on +// the stats structure it returns. +// +// Internal information: +// --------------------- +// The data structure consists of three major chunks of storage. +// The first (implicit) storage are the points themselves (pts), +// which have been provided by the users as an argument to the +// constructor, or are allocated dynamically if the tree is built +// using the load constructor). These should not be changed during +// the lifetime of the search structure. It is the user's +// responsibility to delete these after the tree is destroyed. +// +// The second is the tree itself (which is dynamically allocated in +// the constructor) and is given as a pointer to its root node +// (root). These nodes are automatically deallocated when the tree +// is deleted. See the file src/kd_tree.h for further information +// on the structure of the tree nodes. +// +// Each leaf of the tree does not contain a pointer directly to a +// point, but rather contains a pointer to a "bucket", which is an +// array consisting of point indices. The third major chunk of +// storage is an array (pidx), which is a large array in which all +// these bucket subarrays reside. (The reason for storing them +// separately is the buckets are typically small, but of varying +// sizes. This was done to avoid fragmentation.) This array is +// also deallocated when the tree is deleted. +// +// In addition to this, the tree consists of a number of other +// pieces of information which are used in searching and for +// subsequent tree operations. These consist of the following: +// +// dim Dimension of space +// n_pts Number of points currently in the tree +// n_max Maximum number of points that are allowed +// in the tree +// bkt_size Maximum bucket size (no. of points per leaf) +// bnd_box_lo Bounding box low point +// bnd_box_hi Bounding box high point +// splitRule Splitting method used +// +//---------------------------------------------------------------------- + + +//---------------------------------------------------------------------- +// Orthogonal (axis aligned) rectangle +// Orthogonal rectangles are represented by two points, one +// for the lower left corner (min coordinates) and the other +// for the upper right corner (max coordinates). +// +// The constructor initializes from either a pair of coordinates, +// pair of points, or another rectangle. Note that all constructors +// allocate new point storage. The destructor deallocates this +// storage. +// +// BEWARE: Orthogonal rectangles should be passed ONLY BY REFERENCE. +// (C++'s default copy constructor will not allocate new point +// storage, then on return the destructor free's storage, and then +// you get into big trouble in the calling procedure.) +//---------------------------------------------------------------------- + +class ANNorthRect { +public: + ANNpoint lo; // rectangle lower bounds + ANNpoint hi; // rectangle upper bounds +// + ANNorthRect( // basic constructor + int dd, // dimension of space + ANNcoord l=0, // default is empty + ANNcoord h=0) + { lo = annAllocPt(dd, l); hi = annAllocPt(dd, h); } + + ANNorthRect( // (almost a) copy constructor + int dd, // dimension + const ANNorthRect &r) // rectangle to copy + { lo = annCopyPt(dd, r.lo); hi = annCopyPt(dd, r.hi); } + + ANNorthRect( // construct from points + int dd, // dimension + ANNpoint l, // low point + ANNpoint h) // hight point + { lo = annCopyPt(dd, l); hi = annCopyPt(dd, h); } + + ~ANNorthRect() // destructor + { annDeallocPt(lo); annDeallocPt(hi); } + + ANNbool inside(int dim, ANNpoint p);// is point p inside rectangle? +}; + +void annAssignRect( // assign one rect to another + int dim, // dimension (both must be same) + ANNorthRect &dest, // destination (modified) + const ANNorthRect &source); // source + +//---------------------------------------------------------------------- +// Some types and objects used by kd-tree functions +// See src/kd_tree.h and src/kd_tree.cpp for definitions +//---------------------------------------------------------------------- +class ANNkdStats; // stats on kd-tree +//class ANNkd_node; // generic node in a kd-tree + +//---------------------------------------------------------------------- +// Generic kd-tree node +// +// Nodes in kd-trees are of two types, splitting nodes which contain +// splitting information (a splitting hyperplane orthogonal to one +// of the coordinate axes) and leaf nodes which contain point +// information (an array of points stored in a bucket). This is +// handled by making a generic class kd_node, which is essentially an +// empty shell, and then deriving the leaf and splitting nodes from +// this. +//---------------------------------------------------------------------- + +class ANNkd_node{ // generic kd-tree node (empty shell) +public: + virtual ~ANNkd_node() {} // virtual distroyer + + virtual void ann_search(ANNdist) = 0; // tree search + virtual void ann_pri_search(ANNdist) = 0; // priority search + virtual void ann_FR_search(ANNdist) = 0; // fixed-radius search + + virtual void getStats( // get tree statistics + int dim, // dimension of space + ANNkdStats &st, // statistics + ANNorthRect &bnd_box) = 0; // bounding box + // print node + virtual void print(int level, std::ostream &out) = 0; + virtual void dump(std::ostream &out) = 0; // dump node + virtual bool isLeaf() {return false;} //Deyuan Qiu + + friend class ANNkd_tree; // allow kd-tree to access us +}; + +typedef ANNkd_node* ANNkd_ptr; // pointer to a kd-tree node + +class DLL_API ANNkd_tree: public ANNpointSet { +protected: + int dim; // dimension of space + int n_pts; // number of points in tree + int bkt_size; // bucket size + ANNpointArray pts; // the points + ANNidxArray pidx; // point indices (to pts array) + ANNkd_ptr root; // root of kd-tree + ANNpoint bnd_box_lo; // bounding box low point + ANNpoint bnd_box_hi; // bounding box high point + + void SkeletonTree( // construct skeleton tree + int n, // number of points + int dd, // dimension + int bs, // bucket size + ANNpointArray pa = NULL, // point array (optional) + ANNidxArray pi = NULL); // point indices (optional) + +public: + ANNkd_tree( // build skeleton tree + int n = 0, // number of points + int dd = 0, // dimension + int bs = 1); // bucket size + + ANNkd_tree( // build from point array + ANNpointArray pa, // point array + int n, // number of points + int dd, // dimension + int bs = 1, // bucket size + ANNsplitRule split = ANN_KD_SUGGEST); // splitting method + + ANNkd_tree( // build from dump file + std::istream& in); // input stream for dump file + + ~ANNkd_tree(); // tree destructor + + void annkSearch( // approx k near neighbor search + ANNpoint q, // query point + int k, // number of near neighbors to return + ANNidxArray nn_idx, // nearest neighbor array (modified) + ANNdistArray dd, // dist to near neighbors (modified) + double eps=0.0); // error bound + + void annkPriSearch( // priority k near neighbor search + ANNpoint q, // query point + int k, // number of near neighbors to return + ANNidxArray nn_idx, // nearest neighbor array (modified) + ANNdistArray dd, // dist to near neighbors (modified) + double eps=0.0); // error bound + + int annkFRSearch( // approx fixed-radius kNN search + ANNpoint q, // the query point + ANNdist sqRad, // squared radius of query ball + int k, // number of neighbors to return + ANNidxArray nn_idx = NULL, // nearest neighbor array (modified) + ANNdistArray dd = NULL, // dist to near neighbors (modified) + double eps=0.0); // error bound + + int theDim() // return dimension of space + { return dim; } + + int nPoints() // return number of points + { return n_pts; } + + ANNpointArray thePoints() // return pointer to points + { return pts; } + + virtual void Print( // print the tree (for debugging) + ANNbool with_pts, // print points as well? + std::ostream& out); // output stream + + virtual void Dump( // dump entire tree + ANNbool with_pts, // print points as well? + std::ostream& out); // output stream + + virtual void getStats( // compute tree statistics + ANNkdStats& st); // the statistics (modified) + + ANNkd_ptr getRoot() //Deyuan Qiu + { return root; } +}; + +//---------------------------------------------------------------------- +// Box decomposition tree (bd-tree) +// The bd-tree is inherited from a kd-tree. The main difference +// in the bd-tree and the kd-tree is a new type of internal node +// called a shrinking node (in the kd-tree there is only one type +// of internal node, a splitting node). The shrinking node +// makes it possible to generate balanced trees in which the +// cells have bounded aspect ratio, by allowing the decomposition +// to zoom in on regions of dense point concentration. Although +// this is a nice idea in theory, few point distributions are so +// densely clustered that this is really needed. +//---------------------------------------------------------------------- + +class DLL_API ANNbd_tree: public ANNkd_tree { +public: + ANNbd_tree( // build skeleton tree + int n, // number of points + int dd, // dimension + int bs = 1) // bucket size + : ANNkd_tree(n, dd, bs) {} // build base kd-tree + + ANNbd_tree( // build from point array + ANNpointArray pa, // point array + int n, // number of points + int dd, // dimension + int bs = 1, // bucket size + ANNsplitRule split = ANN_KD_SUGGEST, // splitting rule + ANNshrinkRule shrink = ANN_BD_SUGGEST); // shrinking rule + + ANNbd_tree( // build from dump file + std::istream& in); // input stream for dump file +}; + +//---------------------------------------------------------------------- +// Other functions +// annMaxPtsVisit Sets a limit on the maximum number of points +// to visit in the search. +// annClose Can be called when all use of ANN is finished. +// It clears up a minor memory leak. +//---------------------------------------------------------------------- + +DLL_API void annMaxPtsVisit( // max. pts to visit in search + int maxPts); // the limit + +DLL_API void annClose(); // called to end use of ANN + +#endif diff --git a/3rdparty/ann_1.1.1_modified/include/ANN/ANNperf.h b/3rdparty/ann_1.1.1_modified/include/ANN/ANNperf.h new file mode 100755 index 0000000..614a66f --- /dev/null +++ b/3rdparty/ann_1.1.1_modified/include/ANN/ANNperf.h @@ -0,0 +1,226 @@ +//---------------------------------------------------------------------- +// File: ANNperf.h +// Programmer: Sunil Arya and David Mount +// Last modified: 03/04/98 (Release 0.1) +// Description: Include file for ANN performance stats +// +// Some of the code for statistics gathering has been adapted +// from the SmplStat.h package in the g++ library. +//---------------------------------------------------------------------- +// Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +// David Mount. All Rights Reserved. +// +// This software and related documentation is part of the Approximate +// Nearest Neighbor Library (ANN). This software is provided under +// the provisions of the Lesser GNU Public License (LGPL). See the +// file ../ReadMe.txt for further information. +// +// The University of Maryland (U.M.) and the authors make no +// representations about the suitability or fitness of this software for +// any purpose. It is provided "as is" without express or implied +// warranty. +//---------------------------------------------------------------------- +// History: +// Revision 0.1 03/04/98 +// Initial release +// Revision 1.0 04/01/05 +// Added ANN_ prefix to avoid name conflicts. +//---------------------------------------------------------------------- + +#ifndef ANNperf_H +#define ANNperf_H + +#undef min +#undef max + +//---------------------------------------------------------------------- +// basic includes +//---------------------------------------------------------------------- + +#include // basic ANN includes + +//---------------------------------------------------------------------- +// kd-tree stats object +// This object is used for collecting information about a kd-tree +// or bd-tree. +//---------------------------------------------------------------------- + +class ANNkdStats { // stats on kd-tree +public: + int dim; // dimension of space + int n_pts; // no. of points + int bkt_size; // bucket size + int n_lf; // no. of leaves (including trivial) + int n_tl; // no. of trivial leaves (no points) + int n_spl; // no. of splitting nodes + int n_shr; // no. of shrinking nodes (for bd-trees) + int depth; // depth of tree + float sum_ar; // sum of leaf aspect ratios + float avg_ar; // average leaf aspect ratio + // + // reset stats + void reset(int d=0, int n=0, int bs=0) + { + dim = d; n_pts = n; bkt_size = bs; + n_lf = n_tl = n_spl = n_shr = depth = 0; + sum_ar = avg_ar = 0.0; + } + + ANNkdStats() // basic constructor + { reset(); } + + void merge(const ANNkdStats &st); // merge stats from child +}; + +//---------------------------------------------------------------------- +// ANNsampStat +// A sample stat collects numeric (double) samples and returns some +// simple statistics. Its main functions are: +// +// reset() Reset to no samples. +// += x Include sample x. +// samples() Return number of samples. +// mean() Return mean of samples. +// stdDev() Return standard deviation +// min() Return minimum of samples. +// max() Return maximum of samples. +//---------------------------------------------------------------------- +class DLL_API ANNsampStat { + int n; // number of samples + double sum; // sum + double sum2; // sum of squares + double minVal, maxVal; // min and max +public : + void reset() // reset everything + { + n = 0; + sum = sum2 = 0; + minVal = ANN_DBL_MAX; + maxVal = -ANN_DBL_MAX; + } + + ANNsampStat() { reset(); } // constructor + + void operator+=(double x) // add sample + { + n++; sum += x; sum2 += x*x; + if (x < minVal) minVal = x; + if (x > maxVal) maxVal = x; + } + + int samples() { return n; } // number of samples + + double mean() { return sum/n; } // mean + + // standard deviation + double stdDev() { return sqrt((sum2 - (sum*sum)/n)/(n-1));} + + double min() { return minVal; } // minimum + double max() { return maxVal; } // maximum +}; + +//---------------------------------------------------------------------- +// Operation count updates +//---------------------------------------------------------------------- + +#ifdef ANN_PERF + #define ANN_FLOP(n) {ann_Nfloat_ops += (n);} + #define ANN_LEAF(n) {ann_Nvisit_lfs += (n);} + #define ANN_SPL(n) {ann_Nvisit_spl += (n);} + #define ANN_SHR(n) {ann_Nvisit_shr += (n);} + #define ANN_PTS(n) {ann_Nvisit_pts += (n);} + #define ANN_COORD(n) {ann_Ncoord_hts += (n);} +#else + #define ANN_FLOP(n) + #define ANN_LEAF(n) + #define ANN_SPL(n) + #define ANN_SHR(n) + #define ANN_PTS(n) + #define ANN_COORD(n) +#endif + +//---------------------------------------------------------------------- +// Performance statistics +// The following data and routines are used for computing performance +// statistics for nearest neighbor searching. Because these routines +// can slow the code down, they can be activated and deactiviated by +// defining the ANN_PERF variable, by compiling with the option: +// -DANN_PERF +//---------------------------------------------------------------------- + +//---------------------------------------------------------------------- +// Global counters for performance measurement +// +// visit_lfs The number of leaf nodes visited in the +// tree. +// +// visit_spl The number of splitting nodes visited in the +// tree. +// +// visit_shr The number of shrinking nodes visited in the +// tree. +// +// visit_pts The number of points visited in all the +// leaf nodes visited. Equivalently, this +// is the number of points for which distance +// calculations are performed. +// +// coord_hts The number of times a coordinate of a +// data point is accessed. This is generally +// less than visit_pts*d if partial distance +// calculation is used. This count is low +// in the sense that if a coordinate is hit +// many times in the same routine we may +// count it only once. +// +// float_ops The number of floating point operations. +// This includes all operations in the heap +// as well as distance calculations to boxes. +// +// average_err The average error of each query (the +// error of the reported point to the true +// nearest neighbor). For k nearest neighbors +// the error is computed k times. +// +// rank_err The rank error of each query (the difference +// in the rank of the reported point and its +// true rank). +// +// data_pts The number of data points. This is not +// a counter, but used in stats computation. +//---------------------------------------------------------------------- + +extern int ann_Ndata_pts; // number of data points +extern int ann_Nvisit_lfs; // number of leaf nodes visited +extern int ann_Nvisit_spl; // number of splitting nodes visited +extern int ann_Nvisit_shr; // number of shrinking nodes visited +extern int ann_Nvisit_pts; // visited points for one query +extern int ann_Ncoord_hts; // coordinate hits for one query +extern int ann_Nfloat_ops; // floating ops for one query +extern ANNsampStat ann_visit_lfs; // stats on leaf nodes visits +extern ANNsampStat ann_visit_spl; // stats on splitting nodes visits +extern ANNsampStat ann_visit_shr; // stats on shrinking nodes visits +extern ANNsampStat ann_visit_nds; // stats on total nodes visits +extern ANNsampStat ann_visit_pts; // stats on points visited +extern ANNsampStat ann_coord_hts; // stats on coordinate hits +extern ANNsampStat ann_float_ops; // stats on floating ops +//---------------------------------------------------------------------- +// The following need to be part of the public interface, because +// they are accessed outside the DLL in ann_test.cpp. +//---------------------------------------------------------------------- +DLL_API extern ANNsampStat ann_average_err; // average error +DLL_API extern ANNsampStat ann_rank_err; // rank error + +//---------------------------------------------------------------------- +// Declaration of externally accessible routines for statistics +//---------------------------------------------------------------------- + +DLL_API void annResetStats(int data_size); // reset stats for a set of queries + +DLL_API void annResetCounts(); // reset counts for one queries + +DLL_API void annUpdateStats(); // update stats with current counts + +DLL_API void annPrintStats(ANNbool validate); // print statistics for a run + +#endif diff --git a/3rdparty/ann_1.1.1_modified/include/ANN/ANNx.h b/3rdparty/ann_1.1.1_modified/include/ANN/ANNx.h new file mode 100755 index 0000000..f968aed --- /dev/null +++ b/3rdparty/ann_1.1.1_modified/include/ANN/ANNx.h @@ -0,0 +1,119 @@ +//---------------------------------------------------------------------- +// File: ANNx.h +// Programmer: Sunil Arya and David Mount +// Last modified: 03/04/98 (Release 0.1) +// Description: Internal include file for ANN +// +// These declarations are of use in manipulating some of +// the internal data objects appearing in ANN, but are not +// needed for applications just using the nearest neighbor +// search. +// +// Typical users of ANN should not need to access this file. +//---------------------------------------------------------------------- +// Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +// David Mount. All Rights Reserved. +// +// This software and related documentation is part of the Approximate +// Nearest Neighbor Library (ANN). This software is provided under +// the provisions of the Lesser GNU Public License (LGPL). See the +// file ../ReadMe.txt for further information. +// +// The University of Maryland (U.M.) and the authors make no +// representations about the suitability or fitness of this software for +// any purpose. It is provided "as is" without express or implied +// warranty. +//---------------------------------------------------------------------- +// History: +// Revision 0.1 03/04/98 +// Initial release +// Revision 1.0 04/01/05 +// Changed LO, HI, IN, OUT to ANN_LO, ANN_HI, etc. +//---------------------------------------------------------------------- + +#ifndef ANNx_H +#define ANNx_H + +#include // I/O manipulators +#include // ANN includes + +//---------------------------------------------------------------------- +// Global constants and types +//---------------------------------------------------------------------- +enum {ANN_LO=0, ANN_HI=1}; // splitting indices +enum {ANN_IN=0, ANN_OUT=1}; // shrinking indices + // what to do in case of error +enum ANNerr {ANNwarn = 0, ANNabort = 1}; + +//---------------------------------------------------------------------- +// Maximum number of points to visit +// We have an option for terminating the search early if the +// number of points visited exceeds some threshold. If the +// threshold is 0 (its default) this means there is no limit +// and the algorithm applies its normal termination condition. +//---------------------------------------------------------------------- + +extern int ANNmaxPtsVisited; // maximum number of pts visited +extern int ANNptsVisited; // number of pts visited in search + +//---------------------------------------------------------------------- +// Global function declarations +//---------------------------------------------------------------------- + +void annError( // ANN error routine + char *msg, // error message + ANNerr level); // level of error + +void annPrintPt( // print a point + ANNpoint pt, // the point + int dim, // the dimension + std::ostream &out); // output stream + + + +//---------------------------------------------------------------------- +// Orthogonal (axis aligned) halfspace +// An orthogonal halfspace is represented by an integer cutting +// dimension cd, coordinate cutting value, cv, and side, sd, which is +// either +1 or -1. Our convention is that point q lies in the (closed) +// halfspace if (q[cd] - cv)*sd >= 0. +//---------------------------------------------------------------------- + +class ANNorthHalfSpace { +public: + int cd; // cutting dimension + ANNcoord cv; // cutting value + int sd; // which side +// + ANNorthHalfSpace() // default constructor + { cd = 0; cv = 0; sd = 0; } + + ANNorthHalfSpace( // basic constructor + int cdd, // dimension of space + ANNcoord cvv, // cutting value + int sdd) // side + { cd = cdd; cv = cvv; sd = sdd; } + + ANNbool in(ANNpoint q) const // is q inside halfspace? + { return (ANNbool) ((q[cd] - cv)*sd >= 0); } + + ANNbool out(ANNpoint q) const // is q outside halfspace? + { return (ANNbool) ((q[cd] - cv)*sd < 0); } + + ANNdist dist(ANNpoint q) const // (squared) distance from q + { return (ANNdist) ANN_POW(q[cd] - cv); } + + void setLowerBound(int d, ANNpoint p)// set to lower bound at p[i] + { cd = d; cv = p[d]; sd = +1; } + + void setUpperBound(int d, ANNpoint p)// set to upper bound at p[i] + { cd = d; cv = p[d]; sd = -1; } + + void project(ANNpoint &q) // project q (modified) onto halfspace + { if (out(q)) q[cd] = cv; } +}; + + // array of halfspaces +typedef ANNorthHalfSpace *ANNorthHSArray; + +#endif diff --git a/3rdparty/ann_1.1.1_modified/sample/Makefile b/3rdparty/ann_1.1.1_modified/sample/Makefile new file mode 100755 index 0000000..360579e --- /dev/null +++ b/3rdparty/ann_1.1.1_modified/sample/Makefile @@ -0,0 +1,90 @@ +#----------------------------------------------------------------------------- +# Makefile for the sample program +# +# ANN: Approximate Nearest Neighbors +# Version: 1.1.1 08/04/06 +#----------------------------------------------------------------------------- +# Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +# David Mount. All Rights Reserved. +# +# This software and related documentation is part of the Approximate +# Nearest Neighbor Library (ANN). This software is provided under +# the provisions of the Lesser GNU Public License (LGPL). See the +# file ../ReadMe.txt for further information. +# +# The University of Maryland (U.M.) and the authors make no +# representations about the suitability or fitness of this software for +# any purpose. It is provided "as is" without express or implied +# warranty. +#----------------------------------------------------------------------------- +# Revision 0.1 03/04/98 +# Initial release +# Revision 1.1.1 08/04/06 +# Added copyright/license +#----------------------------------------------------------------------------- +# Note: For full performance measurements, it is assumed that the library +# and this program have both been compiled with the -DPERF flag. See the +# Makefile in the ANN base directory for this flag. +#----------------------------------------------------------------------------- + +#----------------------------------------------------------------------------- +# Basic definitions +# BASEDIR where include, src, lib, ... are +# INCDIR include directory +# LIBDIR library directory +# BINDIR bin directory +# LDFLAGS loader flags +# ANNLIBS libraries +#----------------------------------------------------------------------------- + +BASEDIR = .. +INCDIR = $(BASEDIR)/include +LIBDIR = $(BASEDIR)/lib +BINDIR = $(BASEDIR)/bin +LDFLAGS = -L$(LIBDIR) +ANNLIBS = -lANN -lm + +#----------------------------------------------------------------------------- +# Some more definitions +# ANNSAMP name of sample program +#----------------------------------------------------------------------------- + +ANNSAMP = ann_sample + +SAMPSOURCES = ann_sample.cpp +SAMPOBJECTS = $(SAMPSOURCES:.cpp=.o) + +#----------------------------------------------------------------------------- +# Make the program +#----------------------------------------------------------------------------- + +default: + @echo "Specify a target configuration" + +targets: $(BINDIR)/$(ANNSAMP) + +$(BINDIR)/$(ANNSAMP): $(SAMPOBJECTS) $(LIBDIR)/$(ANNLIB) + $(C++) $(SAMPOBJECTS) -o $(ANNSAMP) $(LDFLAGS) $(ANNLIBS) + mv $(ANNSAMP) $(BINDIR) + +#----------------------------------------------------------------------------- +# configuration definitions +#----------------------------------------------------------------------------- + +include ../Make-config + +#----------------------------------------------------------------------------- +# Objects +#----------------------------------------------------------------------------- + +ann_sample.o: ann_sample.cpp + $(C++) -c -I$(INCDIR) $(CFLAGS) ann_sample.cpp + +#----------------------------------------------------------------------------- +# Cleaning +#----------------------------------------------------------------------------- + +clean: + -rm -f *.o *.out core + +realclean: clean diff --git a/3rdparty/ann_1.1.1_modified/sample/ann_sample.cpp b/3rdparty/ann_1.1.1_modified/sample/ann_sample.cpp new file mode 100755 index 0000000..5506376 --- /dev/null +++ b/3rdparty/ann_1.1.1_modified/sample/ann_sample.cpp @@ -0,0 +1,198 @@ +//---------------------------------------------------------------------- +// File: ann_sample.cpp +// Programmer: Sunil Arya and David Mount +// Last modified: 03/04/98 (Release 0.1) +// Description: Sample program for ANN +//---------------------------------------------------------------------- +// Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +// David Mount. All Rights Reserved. +// +// This software and related documentation is part of the Approximate +// Nearest Neighbor Library (ANN). This software is provided under +// the provisions of the Lesser GNU Public License (LGPL). See the +// file ../ReadMe.txt for further information. +// +// The University of Maryland (U.M.) and the authors make no +// representations about the suitability or fitness of this software for +// any purpose. It is provided "as is" without express or implied +// warranty. +//---------------------------------------------------------------------- + +#include // C standard library +#include // C I/O (for sscanf) +#include // string manipulation +#include // file I/O +#include // ANN declarations + +using namespace std; // make std:: accessible + +//---------------------------------------------------------------------- +// ann_sample +// +// This is a simple sample program for the ANN library. After compiling, +// it can be run as follows. +// +// ann_sample [-d dim] [-max mpts] [-nn k] [-e eps] [-df data] [-qf query] +// +// where +// dim is the dimension of the space (default = 2) +// mpts maximum number of data points (default = 1000) +// k number of nearest neighbors per query (default 1) +// eps is the error bound (default = 0.0) +// data file containing data points +// query file containing query points +// +// Results are sent to the standard output. +//---------------------------------------------------------------------- + +//---------------------------------------------------------------------- +// Parameters that are set in getArgs() +//---------------------------------------------------------------------- +void getArgs(int argc, char **argv); // get command-line arguments + +int k = 1; // number of nearest neighbors +int dim = 2; // dimension +double eps = 0; // error bound +int maxPts = 1000; // maximum number of data points + +istream* dataIn = NULL; // input for data points +istream* queryIn = NULL; // input for query points + +bool readPt(istream &in, ANNpoint p) // read point (false on EOF) +{ + for (int i = 0; i < dim; i++) { + if(!(in >> p[i])) return false; + } + return true; +} + +void printPt(ostream &out, ANNpoint p) // print point +{ + out << "(" << p[0]; + for (int i = 1; i < dim; i++) { + out << ", " << p[i]; + } + out << ")\n"; +} + +int main(int argc, char **argv) +{ + int nPts; // actual number of data points + ANNpointArray dataPts; // data points + ANNpoint queryPt; // query point + ANNidxArray nnIdx; // near neighbor indices + ANNdistArray dists; // near neighbor distances + ANNkd_tree* kdTree; // search structure + + getArgs(argc, argv); // read command-line arguments + + queryPt = annAllocPt(dim); // allocate query point + dataPts = annAllocPts(maxPts, dim); // allocate data points + nnIdx = new ANNidx[k]; // allocate near neigh indices + dists = new ANNdist[k]; // allocate near neighbor dists + + nPts = 0; // read data points + + cout << "Data Points:\n"; + while (nPts < maxPts && readPt(*dataIn, dataPts[nPts])) { + printPt(cout, dataPts[nPts]); + nPts++; + } + + kdTree = new ANNkd_tree( // build search structure + dataPts, // the data points + nPts, // number of points + dim); // dimension of space + + while (readPt(*queryIn, queryPt)) { // read query points + cout << "Query point: "; // echo query point + printPt(cout, queryPt); + + kdTree->annkSearch( // search + queryPt, // query point + k, // number of near neighbors + nnIdx, // nearest neighbors (returned) + dists, // distance (returned) + eps); // error bound + + cout << "\tNN:\tIndex\tDistance\n"; + for (int i = 0; i < k; i++) { // print summary + dists[i] = sqrt(dists[i]); // unsquare distance + cout << "\t" << i << "\t" << nnIdx[i] << "\t" << dists[i] << "\n"; + } + } + delete [] nnIdx; // clean things up + delete [] dists; + delete kdTree; + annClose(); // done with ANN + + return EXIT_SUCCESS; +} + +//---------------------------------------------------------------------- +// getArgs - get command line arguments +//---------------------------------------------------------------------- + +void getArgs(int argc, char **argv) +{ + static ifstream dataStream; // data file stream + static ifstream queryStream; // query file stream + + if (argc <= 1) { // no arguments + cerr << "Usage:\n\n" + << " ann_sample [-d dim] [-max m] [-nn k] [-e eps] [-df data]" + " [-qf query]\n\n" + << " where:\n" + << " dim dimension of the space (default = 2)\n" + << " m maximum number of data points (default = 1000)\n" + << " k number of nearest neighbors per query (default 1)\n" + << " eps the error bound (default = 0.0)\n" + << " data name of file containing data points\n" + << " query name of file containing query points\n\n" + << " Results are sent to the standard output.\n" + << "\n" + << " To run this demo use:\n" + << " ann_sample -df data.pts -qf query.pts\n"; + exit(0); + } + int i = 1; + while (i < argc) { // read arguments + if (!strcmp(argv[i], "-d")) { // -d option + dim = atoi(argv[++i]); // get dimension to dump + } + else if (!strcmp(argv[i], "-max")) { // -max option + maxPts = atoi(argv[++i]); // get max number of points + } + else if (!strcmp(argv[i], "-nn")) { // -nn option + k = atoi(argv[++i]); // get number of near neighbors + } + else if (!strcmp(argv[i], "-e")) { // -e option + sscanf(argv[++i], "%lf", &eps); // get error bound + } + else if (!strcmp(argv[i], "-df")) { // -df option + dataStream.open(argv[++i], ios::in);// open data file + if (!dataStream) { + cerr << "Cannot open data file\n"; + exit(1); + } + dataIn = &dataStream; // make this the data stream + } + else if (!strcmp(argv[i], "-qf")) { // -qf option + queryStream.open(argv[++i], ios::in);// open query file + if (!queryStream) { + cerr << "Cannot open query file\n"; + exit(1); + } + queryIn = &queryStream; // make this query stream + } + else { // illegal syntax + cerr << "Unrecognized option.\n"; + exit(1); + } + i++; + } + if (dataIn == NULL || queryIn == NULL) { + cerr << "-df and -qf options must be specified\n"; + exit(1); + } +} diff --git a/3rdparty/ann_1.1.1_modified/sample/data.pts b/3rdparty/ann_1.1.1_modified/sample/data.pts new file mode 100755 index 0000000..191790d --- /dev/null +++ b/3rdparty/ann_1.1.1_modified/sample/data.pts @@ -0,0 +1,20 @@ +-0.297462 0.176102 +0.565538 -0.361496 +0.909313 -0.182785 +0.920712 0.478408 +0.167682 0.0499836 +0.305223 -0.0805835 +0.114973 0.882453 +0.742916 0.16376 +0.0724605 -0.826775 +0.690960 -0.559284 +0.188485 -0.643934 +0.749427 -0.942415 +-0.970662 -0.223466 +0.916110 0.879597 +0.927417 -0.382593 +-0.711327 0.278713 +-0.519172 0.986146 +0.135338 0.924588 +-0.0837537 0.61687 +0.0520465 0.896306 diff --git a/3rdparty/ann_1.1.1_modified/sample/query.pts b/3rdparty/ann_1.1.1_modified/sample/query.pts new file mode 100755 index 0000000..6c04dbc --- /dev/null +++ b/3rdparty/ann_1.1.1_modified/sample/query.pts @@ -0,0 +1,10 @@ +0.0902484 -0.207129 +-0.419567 0.485743 +0.826225 -0.30962 +0.694758 0.987088 +-0.410807 -0.465182 +-0.836501 0.490184 +0.588289 0.656408 +0.325807 0.38721 +-0.532226 -0.727036 +-0.52506 -0.853508 diff --git a/3rdparty/ann_1.1.1_modified/sample/sample.save b/3rdparty/ann_1.1.1_modified/sample/sample.save new file mode 100755 index 0000000..d8173a2 --- /dev/null +++ b/3rdparty/ann_1.1.1_modified/sample/sample.save @@ -0,0 +1,51 @@ +Data Points: +(-0.297462, 0.176102) +(0.565538, -0.361496) +(0.909313, -0.182785) +(0.920712, 0.478408) +(0.167682, 0.0499836) +(0.305223, -0.0805835) +(0.114973, 0.882453) +(0.742916, 0.16376) +(0.0724605, -0.826775) +(0.69096, -0.559284) +(0.188485, -0.643934) +(0.749427, -0.942415) +(-0.970662, -0.223466) +(0.91611, 0.879597) +(0.927417, -0.382593) +(-0.711327, 0.278713) +(-0.519172, 0.986146) +(0.135338, 0.924588) +(-0.0837537, 0.61687) +(0.0520465, 0.896306) +Query point: (0.0902484, -0.207129) + NN: Index Distance + 0 5 0.249455 +Query point: (-0.419567, 0.485743) + NN: Index Distance + 0 0 0.332847 +Query point: (0.826225, -0.30962) + NN: Index Distance + 0 14 0.124759 +Query point: (0.694758, 0.987088) + NN: Index Distance + 0 13 0.246071 +Query point: (-0.410807, -0.465182) + NN: Index Distance + 0 8 0.60357 +Query point: (-0.836501, 0.490184) + NN: Index Distance + 0 15 0.245741 +Query point: (0.588289, 0.656408) + NN: Index Distance + 0 3 0.37708 +Query point: (0.325807, 0.38721) + NN: Index Distance + 0 4 0.372458 +Query point: (-0.532226, -0.727036) + NN: Index Distance + 0 8 0.612857 +Query point: (-0.52506, -0.853508) + NN: Index Distance + 0 8 0.598118 diff --git a/3rdparty/ann_1.1.1_modified/src/ANN.cpp b/3rdparty/ann_1.1.1_modified/src/ANN.cpp new file mode 100755 index 0000000..4e61cec --- /dev/null +++ b/3rdparty/ann_1.1.1_modified/src/ANN.cpp @@ -0,0 +1,199 @@ +//---------------------------------------------------------------------- +// File: ANN.cpp +// Programmer: Sunil Arya and David Mount +// Description: Methods for ANN.h and ANNx.h +// Last modified: 01/04/05 (Version 1.0) +//---------------------------------------------------------------------- +// Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +// David Mount. All Rights Reserved. +// +// This software and related documentation is part of the Approximate +// Nearest Neighbor Library (ANN). This software is provided under +// the provisions of the Lesser GNU Public License (LGPL). See the +// file ../ReadMe.txt for further information. +// +// The University of Maryland (U.M.) and the authors make no +// representations about the suitability or fitness of this software for +// any purpose. It is provided "as is" without express or implied +// warranty. +//---------------------------------------------------------------------- +// History: +// Revision 0.1 03/04/98 +// Initial release +// Revision 1.0 04/01/05 +// Added performance counting to annDist() +//---------------------------------------------------------------------- + +#include +#include // all ANN includes +#include // ANN performance + +using namespace std; // make std:: accessible + +//---------------------------------------------------------------------- +// Point methods +//---------------------------------------------------------------------- + +//---------------------------------------------------------------------- +// Distance utility. +// (Note: In the nearest neighbor search, most distances are +// computed using partial distance calculations, not this +// procedure.) +//---------------------------------------------------------------------- + +ANNdist annDist( // interpoint squared distance + int dim, + ANNpoint p, + ANNpoint q) +{ + register int d; + register ANNcoord diff; + register ANNcoord dist; + + dist = 0; + for (d = 0; d < dim; d++) { + diff = p[d] - q[d]; + dist = ANN_SUM(dist, ANN_POW(diff)); + } + ANN_FLOP(3*dim) // performance counts + ANN_PTS(1) + ANN_COORD(dim) + return dist; +} + +//---------------------------------------------------------------------- +// annPrintPoint() prints a point to a given output stream. +//---------------------------------------------------------------------- + +void annPrintPt( // print a point + ANNpoint pt, // the point + int dim, // the dimension + std::ostream &out) // output stream +{ + for (int j = 0; j < dim; j++) { + out << pt[j]; + if (j < dim-1) out << " "; + } +} + +//---------------------------------------------------------------------- +// Point allocation/deallocation: +// +// Because points (somewhat like strings in C) are stored +// as pointers. Consequently, creating and destroying +// copies of points may require storage allocation. These +// procedures do this. +// +// annAllocPt() and annDeallocPt() allocate a deallocate +// storage for a single point, and return a pointer to it. +// +// annAllocPts() allocates an array of points as well a place +// to store their coordinates, and initializes the points to +// point to their respective coordinates. It allocates point +// storage in a contiguous block large enough to store all the +// points. It performs no initialization. +// +// annDeallocPts() should only be used on point arrays allocated +// by annAllocPts since it assumes that points are allocated in +// a block. +// +// annCopyPt() copies a point taking care to allocate storage +// for the new point. +// +// annAssignRect() assigns the coordinates of one rectangle to +// another. The two rectangles must have the same dimension +// (and it is not possible to test this here). +//---------------------------------------------------------------------- + +ANNpoint annAllocPt(int dim, ANNcoord c) // allocate 1 point +{ + ANNpoint p = new ANNcoord[dim]; + for (int i = 0; i < dim; i++) p[i] = c; + return p; +} + +ANNpointArray annAllocPts(int n, int dim) // allocate n pts in dim +{ + ANNpointArray pa = new ANNpoint[n]; // allocate points + ANNpoint p = new ANNcoord[n*dim]; // allocate space for coords + for (int i = 0; i < n; i++) { + pa[i] = &(p[i*dim]); + } + return pa; +} + +void annDeallocPt(ANNpoint &p) // deallocate 1 point +{ + delete [] p; + p = NULL; +} + +void annDeallocPts(ANNpointArray &pa) // deallocate points +{ + delete [] pa[0]; // dealloc coordinate storage + delete [] pa; // dealloc points + pa = NULL; +} + +ANNpoint annCopyPt(int dim, ANNpoint source) // copy point +{ + ANNpoint p = new ANNcoord[dim]; + for (int i = 0; i < dim; i++) p[i] = source[i]; + return p; +} + + // assign one rect to another +void annAssignRect(int dim, ANNorthRect &dest, const ANNorthRect &source) +{ + for (int i = 0; i < dim; i++) { + dest.lo[i] = source.lo[i]; + dest.hi[i] = source.hi[i]; + } +} + + // is point inside rectangle? +ANNbool ANNorthRect::inside(int dim, ANNpoint p) +{ + for (int i = 0; i < dim; i++) { + if (p[i] < lo[i] || p[i] > hi[i]) return ANNfalse; + } + return ANNtrue; +} + +//---------------------------------------------------------------------- +// Error handler +//---------------------------------------------------------------------- + +void annError(char *msg, ANNerr level) +{ + if (level == ANNabort) { + cerr << "ANN: ERROR------->" << msg << "<-------------ERROR\n"; + exit(1); + } + else { + cerr << "ANN: WARNING----->" << msg << "<-------------WARNING\n"; + } +} + +//---------------------------------------------------------------------- +// Limit on number of points visited +// We have an option for terminating the search early if the +// number of points visited exceeds some threshold. If the +// threshold is 0 (its default) this means there is no limit +// and the algorithm applies its normal termination condition. +// This is for applications where there are real time constraints +// on the running time of the algorithm. +//---------------------------------------------------------------------- + +int ANNmaxPtsVisited = 0; // maximum number of pts visited +int ANNptsVisited; // number of pts visited in search + +//---------------------------------------------------------------------- +// Global function declarations +//---------------------------------------------------------------------- + +void annMaxPtsVisit( // set limit on max. pts to visit in search + int maxPts) // the limit +{ + ANNmaxPtsVisited = maxPts; +} diff --git a/3rdparty/ann_1.1.1_modified/src/Makefile b/3rdparty/ann_1.1.1_modified/src/Makefile new file mode 100755 index 0000000..d8d5d21 --- /dev/null +++ b/3rdparty/ann_1.1.1_modified/src/Makefile @@ -0,0 +1,117 @@ +#----------------------------------------------------------------------------- +# Makefile for ANN library +#---------------------------------------------------------------------- +# Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +# David Mount. All Rights Reserved. +# +# This software and related documentation is part of the Approximate +# Nearest Neighbor Library (ANN). This software is provided under +# the provisions of the Lesser GNU Public License (LGPL). See the +# file ../ReadMe.txt for further information. +# +# The University of Maryland (U.M.) and the authors make no +# representations about the suitability or fitness of this software for +# any purpose. It is provided "as is" without express or implied +# warranty. +#---------------------------------------------------------------------- +# History: +# Revision 0.1 03/04/98 +# Initial release +# Revision 1.0 04/01/05 +# Renamed files from .cc to .cpp for Microsoft Visual C++ +# Added kd_dump.cpp +# Revision 1.1 05/03/05 +# Added kd_fix_rad_search.cpp and bd_fix_rad_search.cpp +#---------------------------------------------------------------------- + +#----------------------------------------------------------------------------- +# Configuration definitions +#----------------------------------------------------------------------------- + +include ../../../Makefile.options + +#----------------------------------------------------------------------------- +# Some basic definitions: +# BASEDIR where include, src, lib, ... are +# INCLIB include directory +# LIBLIB library directory +#----------------------------------------------------------------------------- +ANNLIB = ../../../obj/libANN.a +OBJDIR = ../../../obj/ +INCDIR = ../include/ + +SOURCES = ANN.cpp brute.cpp kd_tree.cpp kd_util.cpp kd_split.cpp \ + kd_dump.cpp kd_search.cpp kd_pr_search.cpp kd_fix_rad_search.cpp \ + bd_tree.cpp bd_search.cpp bd_pr_search.cpp bd_fix_rad_search.cpp \ + perf.cpp + +OBJECTS = $(OBJDIR)ANN.o $(OBJDIR)brute.o $(OBJDIR)kd_tree.o $(OBJDIR)kd_util.o $(OBJDIR)kd_split.o \ + $(OBJDIR)kd_dump.o $(OBJDIR)kd_search.o $(OBJDIR)kd_pr_search.o $(OBJDIR)kd_fix_rad_search.o \ + $(OBJDIR)bd_tree.o $(OBJDIR)bd_search.o $(OBJDIR)bd_pr_search.o $(OBJDIR)bd_fix_rad_search.o \ + $(OBJDIR)perf.o + +#----------------------------------------------------------------------------- +# Make the library +#----------------------------------------------------------------------------- + +default: $(LIBDIR)/$(ANNLIB) + +$(LIBDIR)/$(ANNLIB): $(OBJECTS) + @ar rs $(ANNLIB) $(OBJECTS) + @ranlib $(ANNLIB) + +#----------------------------------------------------------------------------- +# Make object files +#----------------------------------------------------------------------------- + +$(OBJDIR)ANN.o: ANN.cpp + $(GPP) -c -I$(INCDIR) $(CFLAGS) ANN.cpp -o $(OBJDIR)ANN.o + +$(OBJDIR)brute.o: brute.cpp + $(GPP) -c -I$(INCDIR) $(CFLAGS) brute.cpp -o $(OBJDIR)brute.o + +$(OBJDIR)kd_tree.o: kd_tree.cpp + $(GPP) -c -I$(INCDIR) $(CFLAGS) kd_tree.cpp -o $(OBJDIR)kd_tree.o + +$(OBJDIR)kd_util.o: kd_util.cpp + $(GPP) -c -I$(INCDIR) $(CFLAGS) kd_util.cpp -o $(OBJDIR)kd_util.o + +$(OBJDIR)kd_split.o: kd_split.cpp + $(GPP) -c -I$(INCDIR) $(CFLAGS) kd_split.cpp -o $(OBJDIR)kd_split.o + +$(OBJDIR)kd_search.o: kd_search.cpp + $(GPP) -c -I$(INCDIR) $(CFLAGS) kd_search.cpp -o $(OBJDIR)kd_search.o + +$(OBJDIR)kd_pr_search.o: kd_pr_search.cpp + $(GPP) -c -I$(INCDIR) $(CFLAGS) kd_pr_search.cpp -o $(OBJDIR)kd_pr_search.o + +$(OBJDIR)kd_fix_rad_search.o: kd_fix_rad_search.cpp + $(GPP) -c -I$(INCDIR) $(CFLAGS) kd_fix_rad_search.cpp -o $(OBJDIR)kd_fix_rad_search.o + +$(OBJDIR)kd_dump.o: kd_dump.cpp + $(GPP) -c -I$(INCDIR) $(CFLAGS) kd_dump.cpp -o $(OBJDIR)kd_dump.o + +$(OBJDIR)bd_tree.o: bd_tree.cpp + $(GPP) -c -I$(INCDIR) $(CFLAGS) bd_tree.cpp -o $(OBJDIR)bd_tree.o + +$(OBJDIR)bd_search.o: bd_search.cpp + $(GPP) -c -I$(INCDIR) $(CFLAGS) bd_search.cpp -o $(OBJDIR)bd_search.o + +$(OBJDIR)bd_pr_search.o: bd_pr_search.cpp + $(GPP) -c -I$(INCDIR) $(CFLAGS) bd_pr_search.cpp -o $(OBJDIR)bd_pr_search.o + +$(OBJDIR)bd_fix_rad_search.o: bd_fix_rad_search.cpp + $(GPP) -c -I$(INCDIR) $(CFLAGS) bd_fix_rad_search.cpp -o $(OBJDIR)bd_fix_rad_search.o + +$(OBJDIR)perf.o: perf.cpp + $(GPP) -c -I$(INCDIR) $(CFLAGS) perf.cpp -o $(OBJDIR)perf.o + +#----------------------------------------------------------------------------- +# Cleaning +#----------------------------------------------------------------------------- + +clean: + -rm -f *.o core + +realclean: clean + diff --git a/3rdparty/ann_1.1.1_modified/src/bd_fix_rad_search.cpp b/3rdparty/ann_1.1.1_modified/src/bd_fix_rad_search.cpp new file mode 100755 index 0000000..dea3f6b --- /dev/null +++ b/3rdparty/ann_1.1.1_modified/src/bd_fix_rad_search.cpp @@ -0,0 +1,61 @@ +//---------------------------------------------------------------------- +// File: bd_fix_rad_search.cpp +// Programmer: David Mount +// Description: Standard bd-tree search +// Last modified: 05/03/05 (Version 1.1) +//---------------------------------------------------------------------- +// Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +// David Mount. All Rights Reserved. +// +// This software and related documentation is part of the Approximate +// Nearest Neighbor Library (ANN). This software is provided under +// the provisions of the Lesser GNU Public License (LGPL). See the +// file ../ReadMe.txt for further information. +// +// The University of Maryland (U.M.) and the authors make no +// representations about the suitability or fitness of this software for +// any purpose. It is provided "as is" without express or implied +// warranty. +//---------------------------------------------------------------------- +// History: +// Revision 1.1 05/03/05 +// Initial release +//---------------------------------------------------------------------- + +#include "bd_tree.h" // bd-tree declarations +#include "kd_fix_rad_search.h" // kd-tree FR search declarations + +//---------------------------------------------------------------------- +// Approximate searching for bd-trees. +// See the file kd_FR_search.cpp for general information on the +// approximate nearest neighbor search algorithm. Here we +// include the extensions for shrinking nodes. +//---------------------------------------------------------------------- + +//---------------------------------------------------------------------- +// bd_shrink::ann_FR_search - search a shrinking node +//---------------------------------------------------------------------- + +void ANNbd_shrink::ann_FR_search(ANNdist box_dist) +{ + // check dist calc term cond. + if (ANNmaxPtsVisited != 0 && ANNptsVisited > ANNmaxPtsVisited) return; + + ANNdist inner_dist = 0; // distance to inner box + for (int i = 0; i < n_bnds; i++) { // is query point in the box? + if (bnds[i].out(ANNkdFRQ)) { // outside this bounding side? + // add to inner distance + inner_dist = (ANNdist) ANN_SUM(inner_dist, bnds[i].dist(ANNkdFRQ)); + } + } + if (inner_dist <= box_dist) { // if inner box is closer + child[ANN_IN]->ann_FR_search(inner_dist);// search inner child first + child[ANN_OUT]->ann_FR_search(box_dist);// ...then outer child + } + else { // if outer box is closer + child[ANN_OUT]->ann_FR_search(box_dist);// search outer child first + child[ANN_IN]->ann_FR_search(inner_dist);// ...then outer child + } + ANN_FLOP(3*n_bnds) // increment floating ops + ANN_SHR(1) // one more shrinking node +} diff --git a/3rdparty/ann_1.1.1_modified/src/bd_pr_search.cpp b/3rdparty/ann_1.1.1_modified/src/bd_pr_search.cpp new file mode 100755 index 0000000..d16d632 --- /dev/null +++ b/3rdparty/ann_1.1.1_modified/src/bd_pr_search.cpp @@ -0,0 +1,62 @@ +//---------------------------------------------------------------------- +// File: bd_pr_search.cpp +// Programmer: David Mount +// Description: Priority search for bd-trees +// Last modified: 01/04/05 (Version 1.0) +//---------------------------------------------------------------------- +// Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +// David Mount. All Rights Reserved. +// +// This software and related documentation is part of the Approximate +// Nearest Neighbor Library (ANN). This software is provided under +// the provisions of the Lesser GNU Public License (LGPL). See the +// file ../ReadMe.txt for further information. +// +// The University of Maryland (U.M.) and the authors make no +// representations about the suitability or fitness of this software for +// any purpose. It is provided "as is" without express or implied +// warranty. +//---------------------------------------------------------------------- +//History: +// Revision 0.1 03/04/98 +// Initial release +//---------------------------------------------------------------------- + +#include "bd_tree.h" // bd-tree declarations +#include "kd_pr_search.h" // kd priority search declarations + +//---------------------------------------------------------------------- +// Approximate priority searching for bd-trees. +// See the file kd_pr_search.cc for general information on the +// approximate nearest neighbor priority search algorithm. Here +// we include the extensions for shrinking nodes. +//---------------------------------------------------------------------- + +//---------------------------------------------------------------------- +// bd_shrink::ann_search - search a shrinking node +//---------------------------------------------------------------------- + +void ANNbd_shrink::ann_pri_search(ANNdist box_dist) +{ + ANNdist inner_dist = 0; // distance to inner box + for (int i = 0; i < n_bnds; i++) { // is query point in the box? + if (bnds[i].out(ANNprQ)) { // outside this bounding side? + // add to inner distance + inner_dist = (ANNdist) ANN_SUM(inner_dist, bnds[i].dist(ANNprQ)); + } + } + if (inner_dist <= box_dist) { // if inner box is closer + if (child[ANN_OUT] != KD_TRIVIAL) // enqueue outer if not trivial + ANNprBoxPQ->insert(box_dist,child[ANN_OUT]); + // continue with inner child + child[ANN_IN]->ann_pri_search(inner_dist); + } + else { // if outer box is closer + if (child[ANN_IN] != KD_TRIVIAL) // enqueue inner if not trivial + ANNprBoxPQ->insert(inner_dist,child[ANN_IN]); + // continue with outer child + child[ANN_OUT]->ann_pri_search(box_dist); + } + ANN_FLOP(3*n_bnds) // increment floating ops + ANN_SHR(1) // one more shrinking node +} diff --git a/3rdparty/ann_1.1.1_modified/src/bd_search.cpp b/3rdparty/ann_1.1.1_modified/src/bd_search.cpp new file mode 100755 index 0000000..f057018 --- /dev/null +++ b/3rdparty/ann_1.1.1_modified/src/bd_search.cpp @@ -0,0 +1,61 @@ +//---------------------------------------------------------------------- +// File: bd_search.cpp +// Programmer: David Mount +// Description: Standard bd-tree search +// Last modified: 01/04/05 (Version 1.0) +//---------------------------------------------------------------------- +// Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +// David Mount. All Rights Reserved. +// +// This software and related documentation is part of the Approximate +// Nearest Neighbor Library (ANN). This software is provided under +// the provisions of the Lesser GNU Public License (LGPL). See the +// file ../ReadMe.txt for further information. +// +// The University of Maryland (U.M.) and the authors make no +// representations about the suitability or fitness of this software for +// any purpose. It is provided "as is" without express or implied +// warranty. +//---------------------------------------------------------------------- +// History: +// Revision 0.1 03/04/98 +// Initial release +//---------------------------------------------------------------------- + +#include "bd_tree.h" // bd-tree declarations +#include "kd_search.h" // kd-tree search declarations + +//---------------------------------------------------------------------- +// Approximate searching for bd-trees. +// See the file kd_search.cpp for general information on the +// approximate nearest neighbor search algorithm. Here we +// include the extensions for shrinking nodes. +//---------------------------------------------------------------------- + +//---------------------------------------------------------------------- +// bd_shrink::ann_search - search a shrinking node +//---------------------------------------------------------------------- + +void ANNbd_shrink::ann_search(ANNdist box_dist) +{ + // check dist calc term cond. + if (ANNmaxPtsVisited != 0 && ANNptsVisited > ANNmaxPtsVisited) return; + + ANNdist inner_dist = 0; // distance to inner box + for (int i = 0; i < n_bnds; i++) { // is query point in the box? + if (bnds[i].out(ANNkdQ)) { // outside this bounding side? + // add to inner distance + inner_dist = (ANNdist) ANN_SUM(inner_dist, bnds[i].dist(ANNkdQ)); + } + } + if (inner_dist <= box_dist) { // if inner box is closer + child[ANN_IN]->ann_search(inner_dist); // search inner child first + child[ANN_OUT]->ann_search(box_dist); // ...then outer child + } + else { // if outer box is closer + child[ANN_OUT]->ann_search(box_dist); // search outer child first + child[ANN_IN]->ann_search(inner_dist); // ...then outer child + } + ANN_FLOP(3*n_bnds) // increment floating ops + ANN_SHR(1) // one more shrinking node +} diff --git a/3rdparty/ann_1.1.1_modified/src/bd_tree.cpp b/3rdparty/ann_1.1.1_modified/src/bd_tree.cpp new file mode 100755 index 0000000..0977dea --- /dev/null +++ b/3rdparty/ann_1.1.1_modified/src/bd_tree.cpp @@ -0,0 +1,417 @@ +//---------------------------------------------------------------------- +// File: bd_tree.cpp +// Programmer: David Mount +// Description: Basic methods for bd-trees. +// Last modified: 01/04/05 (Version 1.0) +//---------------------------------------------------------------------- +// Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +// David Mount. All Rights Reserved. +// +// This software and related documentation is part of the Approximate +// Nearest Neighbor Library (ANN). This software is provided under +// the provisions of the Lesser GNU Public License (LGPL). See the +// file ../ReadMe.txt for further information. +// +// The University of Maryland (U.M.) and the authors make no +// representations about the suitability or fitness of this software for +// any purpose. It is provided "as is" without express or implied +// warranty. +//---------------------------------------------------------------------- +// History: +// Revision 0.1 03/04/98 +// Initial release +// Revision l.0 04/01/05 +// Fixed centroid shrink threshold condition to depend on the +// dimension. +// Moved dump routine to kd_dump.cpp. +//---------------------------------------------------------------------- + +#include "bd_tree.h" // bd-tree declarations +#include "kd_util.h" // kd-tree utilities +#include "kd_split.h" // kd-tree splitting rules + +#include // performance evaluation + +//---------------------------------------------------------------------- +// Printing a bd-tree +// These routines print a bd-tree. See the analogous procedure +// in kd_tree.cpp for more information. +//---------------------------------------------------------------------- + +void ANNbd_shrink::print( // print shrinking node + int level, // depth of node in tree + ostream &out) // output stream +{ + child[ANN_OUT]->print(level+1, out); // print out-child + + out << " "; + for (int i = 0; i < level; i++) // print indentation + out << ".."; + out << "Shrink"; + for (int j = 0; j < n_bnds; j++) { // print sides, 2 per line + if (j % 2 == 0) { + out << "\n"; // newline and indentation + for (int i = 0; i < level+2; i++) out << " "; + } + out << " ([" << bnds[j].cd << "]" + << (bnds[j].sd > 0 ? ">=" : "< ") + << bnds[j].cv << ")"; + } + out << "\n"; + + child[ANN_IN]->print(level+1, out); // print in-child +} + +//---------------------------------------------------------------------- +// kd_tree statistics utility (for performance evaluation) +// This routine computes various statistics information for +// shrinking nodes. See file kd_tree.cpp for more information. +//---------------------------------------------------------------------- + +void ANNbd_shrink::getStats( // get subtree statistics + int dim, // dimension of space + ANNkdStats &st, // stats (modified) + ANNorthRect &bnd_box) // bounding box +{ + ANNkdStats ch_stats; // stats for children + ANNorthRect inner_box(dim); // inner box of shrink + + annBnds2Box(bnd_box, // enclosing box + dim, // dimension + n_bnds, // number of bounds + bnds, // bounds array + inner_box); // inner box (modified) + // get stats for inner child + ch_stats.reset(); // reset + child[ANN_IN]->getStats(dim, ch_stats, inner_box); + st.merge(ch_stats); // merge them + // get stats for outer child + ch_stats.reset(); // reset + child[ANN_OUT]->getStats(dim, ch_stats, bnd_box); + st.merge(ch_stats); // merge them + + st.depth++; // increment depth + st.n_shr++; // increment number of shrinks +} + +//---------------------------------------------------------------------- +// bd-tree constructor +// This is the main constructor for bd-trees given a set of points. +// It first builds a skeleton kd-tree as a basis, then computes the +// bounding box of the data points, and then invokes rbd_tree() to +// actually build the tree, passing it the appropriate splitting +// and shrinking information. +//---------------------------------------------------------------------- + +ANNkd_ptr rbd_tree( // recursive construction of bd-tree + ANNpointArray pa, // point array + ANNidxArray pidx, // point indices to store in subtree + int n, // number of points + int dim, // dimension of space + int bsp, // bucket space + ANNorthRect &bnd_box, // bounding box for current node + ANNkd_splitter splitter, // splitting routine + ANNshrinkRule shrink); // shrinking rule + +ANNbd_tree::ANNbd_tree( // construct from point array + ANNpointArray pa, // point array (with at least n pts) + int n, // number of points + int dd, // dimension + int bs, // bucket size + ANNsplitRule split, // splitting rule + ANNshrinkRule shrink) // shrinking rule + : ANNkd_tree(n, dd, bs) // build skeleton base tree +{ + pts = pa; // where the points are + if (n == 0) return; // no points--no sweat + + ANNorthRect bnd_box(dd); // bounding box for points + // construct bounding rectangle + annEnclRect(pa, pidx, n, dd, bnd_box); + // copy to tree structure + bnd_box_lo = annCopyPt(dd, bnd_box.lo); + bnd_box_hi = annCopyPt(dd, bnd_box.hi); + + switch (split) { // build by rule + case ANN_KD_STD: // standard kd-splitting rule + root = rbd_tree(pa, pidx, n, dd, bs, bnd_box, kd_split, shrink); + break; + case ANN_KD_MIDPT: // midpoint split + root = rbd_tree(pa, pidx, n, dd, bs, bnd_box, midpt_split, shrink); + break; + case ANN_KD_SUGGEST: // best (in our opinion) + case ANN_KD_SL_MIDPT: // sliding midpoint split + root = rbd_tree(pa, pidx, n, dd, bs, bnd_box, sl_midpt_split, shrink); + break; + case ANN_KD_FAIR: // fair split + root = rbd_tree(pa, pidx, n, dd, bs, bnd_box, fair_split, shrink); + break; + case ANN_KD_SL_FAIR: // sliding fair split + root = rbd_tree(pa, pidx, n, dd, bs, + bnd_box, sl_fair_split, shrink); + break; + default: + annError("Illegal splitting method", ANNabort); + } +} + +//---------------------------------------------------------------------- +// Shrinking rules +//---------------------------------------------------------------------- + +enum ANNdecomp {SPLIT, SHRINK}; // decomposition methods + +//---------------------------------------------------------------------- +// trySimpleShrink - Attempt a simple shrink +// +// We compute the tight bounding box of the points, and compute +// the 2*dim ``gaps'' between the sides of the tight box and the +// bounding box. If any of the gaps is large enough relative to +// the longest side of the tight bounding box, then we shrink +// all sides whose gaps are large enough. (The reason for +// comparing against the tight bounding box, is that after +// shrinking the longest box size will decrease, and if we use +// the standard bounding box, we may decide to shrink twice in +// a row. Since the tight box is fixed, we cannot shrink twice +// consecutively.) +//---------------------------------------------------------------------- +const float BD_GAP_THRESH = 0.5; // gap threshold (must be < 1) +const int BD_CT_THRESH = 2; // min number of shrink sides + +ANNdecomp trySimpleShrink( // try a simple shrink + ANNpointArray pa, // point array + ANNidxArray pidx, // point indices to store in subtree + int n, // number of points + int dim, // dimension of space + const ANNorthRect &bnd_box, // current bounding box + ANNorthRect &inner_box) // inner box if shrinking (returned) +{ + int i; + // compute tight bounding box + annEnclRect(pa, pidx, n, dim, inner_box); + + ANNcoord max_length = 0; // find longest box side + for (i = 0; i < dim; i++) { + ANNcoord length = inner_box.hi[i] - inner_box.lo[i]; + if (length > max_length) { + max_length = length; + } + } + + int shrink_ct = 0; // number of sides we shrunk + for (i = 0; i < dim; i++) { // select which sides to shrink + // gap between boxes + ANNcoord gap_hi = bnd_box.hi[i] - inner_box.hi[i]; + // big enough gap to shrink? + if (gap_hi < max_length*BD_GAP_THRESH) + inner_box.hi[i] = bnd_box.hi[i]; // no - expand + else shrink_ct++; // yes - shrink this side + + // repeat for high side + ANNcoord gap_lo = inner_box.lo[i] - bnd_box.lo[i]; + if (gap_lo < max_length*BD_GAP_THRESH) + inner_box.lo[i] = bnd_box.lo[i]; // no - expand + else shrink_ct++; // yes - shrink this side + } + + if (shrink_ct >= BD_CT_THRESH) // did we shrink enough sides? + return SHRINK; + else return SPLIT; +} + +//---------------------------------------------------------------------- +// tryCentroidShrink - Attempt a centroid shrink +// +// We repeatedly apply the splitting rule, always to the larger subset +// of points, until the number of points decreases by the constant +// fraction BD_FRACTION. If this takes more than dim*BD_MAX_SPLIT_FAC +// splits for this to happen, then we shrink to the final inner box +// Otherwise we split. +//---------------------------------------------------------------------- + +const float BD_MAX_SPLIT_FAC = 0.5; // maximum number of splits allowed +const float BD_FRACTION = 0.5; // ...to reduce points by this fraction + // ...This must be < 1. + +ANNdecomp tryCentroidShrink( // try a centroid shrink + ANNpointArray pa, // point array + ANNidxArray pidx, // point indices to store in subtree + int n, // number of points + int dim, // dimension of space + const ANNorthRect &bnd_box, // current bounding box + ANNkd_splitter splitter, // splitting procedure + ANNorthRect &inner_box) // inner box if shrinking (returned) +{ + int n_sub = n; // number of points in subset + int n_goal = (int) (n*BD_FRACTION); // number of point in goal + int n_splits = 0; // number of splits needed + // initialize inner box to bounding box + annAssignRect(dim, inner_box, bnd_box); + + while (n_sub > n_goal) { // keep splitting until goal reached + int cd; // cut dim from splitter (ignored) + ANNcoord cv; // cut value from splitter (ignored) + int n_lo; // number of points on low side + // invoke splitting procedure + (*splitter)(pa, pidx, inner_box, n_sub, dim, cd, cv, n_lo); + n_splits++; // increment split count + + if (n_lo >= n_sub/2) { // most points on low side + inner_box.hi[cd] = cv; // collapse high side + n_sub = n_lo; // recurse on lower points + } + else { // most points on high side + inner_box.lo[cd] = cv; // collapse low side + pidx += n_lo; // recurse on higher points + n_sub -= n_lo; + } + } + if (n_splits > dim*BD_MAX_SPLIT_FAC)// took too many splits + return SHRINK; // shrink to final subset + else + return SPLIT; +} + +//---------------------------------------------------------------------- +// selectDecomp - select which decomposition to use +//---------------------------------------------------------------------- + +ANNdecomp selectDecomp( // select decomposition method + ANNpointArray pa, // point array + ANNidxArray pidx, // point indices to store in subtree + int n, // number of points + int dim, // dimension of space + const ANNorthRect &bnd_box, // current bounding box + ANNkd_splitter splitter, // splitting procedure + ANNshrinkRule shrink, // shrinking rule + ANNorthRect &inner_box) // inner box if shrinking (returned) +{ + ANNdecomp decomp = SPLIT; // decomposition + + switch (shrink) { // check shrinking rule + case ANN_BD_NONE: // no shrinking allowed + decomp = SPLIT; + break; + case ANN_BD_SUGGEST: // author's suggestion + case ANN_BD_SIMPLE: // simple shrink + decomp = trySimpleShrink( + pa, pidx, // points and indices + n, dim, // number of points and dimension + bnd_box, // current bounding box + inner_box); // inner box if shrinking (returned) + break; + case ANN_BD_CENTROID: // centroid shrink + decomp = tryCentroidShrink( + pa, pidx, // points and indices + n, dim, // number of points and dimension + bnd_box, // current bounding box + splitter, // splitting procedure + inner_box); // inner box if shrinking (returned) + break; + default: + annError("Illegal shrinking rule", ANNabort); + } + return decomp; +} + +//---------------------------------------------------------------------- +// rbd_tree - recursive procedure to build a bd-tree +// +// This is analogous to rkd_tree, but for bd-trees. See the +// procedure rkd_tree() in kd_split.cpp for more information. +// +// If the number of points falls below the bucket size, then a +// leaf node is created for the points. Otherwise we invoke the +// procedure selectDecomp() which determines whether we are to +// split or shrink. If splitting is chosen, then we essentially +// do exactly as rkd_tree() would, and invoke the specified +// splitting procedure to the points. Otherwise, the selection +// procedure returns a bounding box, from which we extract the +// appropriate shrinking bounds, and create a shrinking node. +// Finally the points are subdivided, and the procedure is +// invoked recursively on the two subsets to form the children. +//---------------------------------------------------------------------- + +ANNkd_ptr rbd_tree( // recursive construction of bd-tree + ANNpointArray pa, // point array + ANNidxArray pidx, // point indices to store in subtree + int n, // number of points + int dim, // dimension of space + int bsp, // bucket space + ANNorthRect &bnd_box, // bounding box for current node + ANNkd_splitter splitter, // splitting routine + ANNshrinkRule shrink) // shrinking rule +{ + ANNdecomp decomp; // decomposition method + + ANNorthRect inner_box(dim); // inner box (if shrinking) + + if (n <= bsp) { // n small, make a leaf node + if (n == 0) // empty leaf node + return KD_TRIVIAL; // return (canonical) empty leaf + else // construct the node and return + return new ANNkd_leaf(n, pidx); + } + + decomp = selectDecomp( // select decomposition method + pa, pidx, // points and indices + n, dim, // number of points and dimension + bnd_box, // current bounding box + splitter, shrink, // splitting/shrinking methods + inner_box); // inner box if shrinking (returned) + + if (decomp == SPLIT) { // split selected + int cd; // cutting dimension + ANNcoord cv; // cutting value + int n_lo; // number on low side of cut + // invoke splitting procedure + (*splitter)(pa, pidx, bnd_box, n, dim, cd, cv, n_lo); + + ANNcoord lv = bnd_box.lo[cd]; // save bounds for cutting dimension + ANNcoord hv = bnd_box.hi[cd]; + + bnd_box.hi[cd] = cv; // modify bounds for left subtree + ANNkd_ptr lo = rbd_tree( // build left subtree + pa, pidx, n_lo, // ...from pidx[0..n_lo-1] + dim, bsp, bnd_box, splitter, shrink); + bnd_box.hi[cd] = hv; // restore bounds + + bnd_box.lo[cd] = cv; // modify bounds for right subtree + ANNkd_ptr hi = rbd_tree( // build right subtree + pa, pidx + n_lo, n-n_lo,// ...from pidx[n_lo..n-1] + dim, bsp, bnd_box, splitter, shrink); + bnd_box.lo[cd] = lv; // restore bounds + // create the splitting node + return new ANNkd_split(cd, cv, lv, hv, lo, hi); + } + else { // shrink selected + int n_in; // number of points in box + int n_bnds; // number of bounding sides + + annBoxSplit( // split points around inner box + pa, // points to split + pidx, // point indices + n, // number of points + dim, // dimension + inner_box, // inner box + n_in); // number of points inside (returned) + + ANNkd_ptr in = rbd_tree( // build inner subtree pidx[0..n_in-1] + pa, pidx, n_in, dim, bsp, inner_box, splitter, shrink); + ANNkd_ptr out = rbd_tree( // build outer subtree pidx[n_in..n] + pa, pidx+n_in, n - n_in, dim, bsp, bnd_box, splitter, shrink); + + ANNorthHSArray bnds = NULL; // bounds (alloc in Box2Bnds and + // ...freed in bd_shrink destroyer) + + annBox2Bnds( // convert inner box to bounds + inner_box, // inner box + bnd_box, // enclosing box + dim, // dimension + n_bnds, // number of bounds (returned) + bnds); // bounds array (modified) + + // return shrinking node + return new ANNbd_shrink(n_bnds, bnds, in, out); + } +} diff --git a/3rdparty/ann_1.1.1_modified/src/bd_tree.h b/3rdparty/ann_1.1.1_modified/src/bd_tree.h new file mode 100755 index 0000000..408889a --- /dev/null +++ b/3rdparty/ann_1.1.1_modified/src/bd_tree.h @@ -0,0 +1,100 @@ +//---------------------------------------------------------------------- +// File: bd_tree.h +// Programmer: David Mount +// Description: Declarations for standard bd-tree routines +// Last modified: 01/04/05 (Version 1.0) +//---------------------------------------------------------------------- +// Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +// David Mount. All Rights Reserved. +// +// This software and related documentation is part of the Approximate +// Nearest Neighbor Library (ANN). This software is provided under +// the provisions of the Lesser GNU Public License (LGPL). See the +// file ../ReadMe.txt for further information. +// +// The University of Maryland (U.M.) and the authors make no +// representations about the suitability or fitness of this software for +// any purpose. It is provided "as is" without express or implied +// warranty. +//---------------------------------------------------------------------- +// History: +// Revision 0.1 03/04/98 +// Initial release +// Revision 1.0 04/01/05 +// Changed IN, OUT to ANN_IN, ANN_OUT +//---------------------------------------------------------------------- + +#ifndef ANN_bd_tree_H +#define ANN_bd_tree_H + +#include // all ANN includes +#include "kd_tree.h" // kd-tree includes + +//---------------------------------------------------------------------- +// bd-tree shrinking node. +// The main addition in the bd-tree is the shrinking node, which +// is declared here. +// +// Shrinking nodes are defined by list of orthogonal halfspaces. +// These halfspaces define a (possibly unbounded) orthogonal +// rectangle. There are two children, in and out. Points that +// lie within this rectangle are stored in the in-child, and the +// other points are stored in the out-child. +// +// We use a list of orthogonal halfspaces rather than an +// orthogonal rectangle object because typically the number of +// sides of the shrinking box will be much smaller than the +// worst case bound of 2*dim. +// +// BEWARE: Note that constructor just copies the pointer to the +// bounding array, but the destructor deallocates it. This is +// rather poor practice, but happens to be convenient. The list +// is allocated in the bd-tree building procedure rbd_tree() just +// prior to construction, and is used for no other purposes. +// +// WARNING: In the near neighbor searching code it is assumed that +// the list of bounding halfspaces is irredundant, meaning that there +// are no two distinct halfspaces in the list with the same outward +// pointing normals. +//---------------------------------------------------------------------- + +class ANNbd_shrink : public ANNkd_node // splitting node of a kd-tree +{ + int n_bnds; // number of bounding halfspaces + ANNorthHSArray bnds; // list of bounding halfspaces + ANNkd_ptr child[2]; // in and out children +public: + ANNbd_shrink( // constructor + int nb, // number of bounding halfspaces + ANNorthHSArray bds, // list of bounding halfspaces + ANNkd_ptr ic=NULL, ANNkd_ptr oc=NULL) // children + { + n_bnds = nb; // cutting dimension + bnds = bds; // assign bounds + child[ANN_IN] = ic; // set children + child[ANN_OUT] = oc; + } + + ~ANNbd_shrink() // destructor + { + if (child[ANN_IN]!= NULL && child[ANN_IN]!= KD_TRIVIAL) + delete child[ANN_IN]; + if (child[ANN_OUT]!= NULL&& child[ANN_OUT]!= KD_TRIVIAL) + delete child[ANN_OUT]; + if (bnds != NULL) + delete [] bnds; // delete bounds + } + + virtual void getStats( // get tree statistics + int dim, // dimension of space + ANNkdStats &st, // statistics + ANNorthRect &bnd_box); // bounding box + virtual void print(int level, ostream &out);// print node + virtual void dump(ostream &out); // dump node + + virtual void ann_search(ANNdist); // standard search + virtual void ann_pri_search(ANNdist); // priority search + virtual void ann_FR_search(ANNdist); // fixed-radius search +}; + +#endif diff --git a/3rdparty/ann_1.1.1_modified/src/brute.cpp b/3rdparty/ann_1.1.1_modified/src/brute.cpp new file mode 100755 index 0000000..d7cba2c --- /dev/null +++ b/3rdparty/ann_1.1.1_modified/src/brute.cpp @@ -0,0 +1,109 @@ +//---------------------------------------------------------------------- +// File: brute.cpp +// Programmer: Sunil Arya and David Mount +// Description: Brute-force nearest neighbors +// Last modified: 05/03/05 (Version 1.1) +//---------------------------------------------------------------------- +// Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +// David Mount. All Rights Reserved. +// +// This software and related documentation is part of the Approximate +// Nearest Neighbor Library (ANN). This software is provided under +// the provisions of the Lesser GNU Public License (LGPL). See the +// file ../ReadMe.txt for further information. +// +// The University of Maryland (U.M.) and the authors make no +// representations about the suitability or fitness of this software for +// any purpose. It is provided "as is" without express or implied +// warranty. +//---------------------------------------------------------------------- +// History: +// Revision 0.1 03/04/98 +// Initial release +// Revision 1.1 05/03/05 +// Added fixed-radius kNN search +//---------------------------------------------------------------------- + +#include // all ANN includes +#include "pr_queue_k.h" // k element priority queue + +//---------------------------------------------------------------------- +// Brute-force search simply stores a pointer to the list of +// data points and searches linearly for the nearest neighbor. +// The k nearest neighbors are stored in a k-element priority +// queue (which is implemented in a pretty dumb way as well). +// +// If ANN_ALLOW_SELF_MATCH is ANNfalse then data points at distance +// zero are not considered. +// +// Note that the error bound eps is passed in, but it is ignored. +// These routines compute exact nearest neighbors (which is needed +// for validation purposes in ann_test.cpp). +//---------------------------------------------------------------------- + +ANNbruteForce::ANNbruteForce( // constructor from point array + ANNpointArray pa, // point array + int n, // number of points + int dd) // dimension +{ + dim = dd; n_pts = n; pts = pa; +} + +ANNbruteForce::~ANNbruteForce() { } // destructor (empty) + +void ANNbruteForce::annkSearch( // approx k near neighbor search + ANNpoint q, // query point + int k, // number of near neighbors to return + ANNidxArray nn_idx, // nearest neighbor indices (returned) + ANNdistArray dd, // dist to near neighbors (returned) + double eps) // error bound (ignored) +{ + ANNmin_k mk(k); // construct a k-limited priority queue + int i; + + if (k > n_pts) { // too many near neighbors? + annError("Requesting more near neighbors than data points", ANNabort); + } + // run every point through queue + for (i = 0; i < n_pts; i++) { + // compute distance to point + ANNdist sqDist = annDist(dim, pts[i], q); + if (ANN_ALLOW_SELF_MATCH || sqDist != 0) + mk.insert(sqDist, i); + } + for (i = 0; i < k; i++) { // extract the k closest points + dd[i] = mk.ith_smallest_key(i); + nn_idx[i] = mk.ith_smallest_info(i); + } +} + +int ANNbruteForce::annkFRSearch( // approx fixed-radius kNN search + ANNpoint q, // query point + ANNdist sqRad, // squared radius + int k, // number of near neighbors to return + ANNidxArray nn_idx, // nearest neighbor array (returned) + ANNdistArray dd, // dist to near neighbors (returned) + double eps) // error bound +{ + ANNmin_k mk(k); // construct a k-limited priority queue + int i; + int pts_in_range = 0; // number of points in query range + // run every point through queue + for (i = 0; i < n_pts; i++) { + // compute distance to point + ANNdist sqDist = annDist(dim, pts[i], q); + if (sqDist <= sqRad && // within radius bound + (ANN_ALLOW_SELF_MATCH || sqDist != 0)) { // ...and no self match + mk.insert(sqDist, i); + pts_in_range++; + } + } + for (i = 0; i < k; i++) { // extract the k closest points + if (dd != NULL) + dd[i] = mk.ith_smallest_key(i); + if (nn_idx != NULL) + nn_idx[i] = mk.ith_smallest_info(i); + } + + return pts_in_range; +} diff --git a/3rdparty/ann_1.1.1_modified/src/kd_dump.cpp b/3rdparty/ann_1.1.1_modified/src/kd_dump.cpp new file mode 100755 index 0000000..2355377 --- /dev/null +++ b/3rdparty/ann_1.1.1_modified/src/kd_dump.cpp @@ -0,0 +1,446 @@ +//---------------------------------------------------------------------- +// File: kd_dump.cc +// Programmer: David Mount +// Description: Dump and Load for kd- and bd-trees +// Last modified: 01/04/05 (Version 1.0) +//---------------------------------------------------------------------- +// Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +// David Mount. All Rights Reserved. +// +// This software and related documentation is part of the Approximate +// Nearest Neighbor Library (ANN). This software is provided under +// the provisions of the Lesser GNU Public License (LGPL). See the +// file ../ReadMe.txt for further information. +// +// The University of Maryland (U.M.) and the authors make no +// representations about the suitability or fitness of this software for +// any purpose. It is provided "as is" without express or implied +// warranty. +//---------------------------------------------------------------------- +// History: +// Revision 0.1 03/04/98 +// Initial release +// Revision 1.0 04/01/05 +// Moved dump out of kd_tree.cc into this file. +// Added kd-tree load constructor. +//---------------------------------------------------------------------- +// This file contains routines for dumping kd-trees and bd-trees and +// reloading them. (It is an abuse of policy to include both kd- and +// bd-tree routines in the same file, sorry. There should be no problem +// in deleting the bd- versions of the routines if they are not +// desired.) +//---------------------------------------------------------------------- + +#include +#include +#include "kd_tree.h" // kd-tree declarations +#include "bd_tree.h" // bd-tree declarations + +using namespace std; // make std:: available + +//---------------------------------------------------------------------- +// Constants +//---------------------------------------------------------------------- + +const int STRING_LEN = 500; // maximum string length +const double EPSILON = 1E-5; // small number for float comparison + +enum ANNtreeType {KD_TREE, BD_TREE}; // tree types (used in loading) + +//---------------------------------------------------------------------- +// Procedure declarations +//---------------------------------------------------------------------- + +static ANNkd_ptr annReadDump( // read dump file + istream &in, // input stream + ANNtreeType tree_type, // type of tree expected + ANNpointArray &the_pts, // new points (if applic) + ANNidxArray &the_pidx, // point indices (returned) + int &the_dim, // dimension (returned) + int &the_n_pts, // number of points (returned) + int &the_bkt_size, // bucket size (returned) + ANNpoint &the_bnd_box_lo, // low bounding point + ANNpoint &the_bnd_box_hi); // high bounding point + +static ANNkd_ptr annReadTree( // read tree-part of dump file + istream &in, // input stream + ANNtreeType tree_type, // type of tree expected + ANNidxArray the_pidx, // point indices (modified) + int &next_idx); // next index (modified) + +//---------------------------------------------------------------------- +// ANN kd- and bd-tree Dump Format +// The dump file begins with a header containing the version of +// ANN, an optional section containing the points, followed by +// a description of the tree. The tree is printed in preorder. +// +// Format: +// #ANN [END_OF_LINE] +// points (point coordinates: this is optional) +// 0 ... (point indices and coordinates) +// 1 ... +// ... +// tree +// ... (lower end of bounding box) +// ... (upper end of bounding box) +// If the tree is null, then a single line "null" is +// output. Otherwise the nodes of the tree are printed +// one per line in preorder. Leaves and splitting nodes +// have the following formats: +// Leaf node: +// leaf ... +// Splitting nodes: +// split +// +// For bd-trees: +// +// Shrinking nodes: +// shrink +// +// +// ... (repeated n_bnds times) +//---------------------------------------------------------------------- + +void ANNkd_tree::Dump( // dump entire tree + ANNbool with_pts, // print points as well? + ostream &out) // output stream +{ + out << "#ANN " << ANNversion << "\n"; + out.precision(ANNcoordPrec); // use full precision in dumping + if (with_pts) { // print point coordinates + out << "points " << dim << " " << n_pts << "\n"; + for (int i = 0; i < n_pts; i++) { + out << i << " "; + annPrintPt(pts[i], dim, out); + out << "\n"; + } + } + out << "tree " // print tree elements + << dim << " " + << n_pts << " " + << bkt_size << "\n"; + + annPrintPt(bnd_box_lo, dim, out); // print lower bound + out << "\n"; + annPrintPt(bnd_box_hi, dim, out); // print upper bound + out << "\n"; + + if (root == NULL) // empty tree? + out << "null\n"; + else { + root->dump(out); // invoke printing at root + } + out.precision(0); // restore default precision +} + +void ANNkd_split::dump( // dump a splitting node + ostream &out) // output stream +{ + out << "split " << cut_dim << " " << cut_val << " "; + out << cd_bnds[ANN_LO] << " " << cd_bnds[ANN_HI] << "\n"; + + child[ANN_LO]->dump(out); // print low child + child[ANN_HI]->dump(out); // print high child +} + +void ANNkd_leaf::dump( // dump a leaf node + ostream &out) // output stream +{ + if (this == KD_TRIVIAL) { // canonical trivial leaf node + out << "leaf 0\n"; // leaf no points + } + else{ + out << "leaf " << n_pts; + for (int j = 0; j < n_pts; j++) { + out << " " << bkt[j]; + } + out << "\n"; + } +} + +void ANNbd_shrink::dump( // dump a shrinking node + ostream &out) // output stream +{ + out << "shrink " << n_bnds << "\n"; + for (int j = 0; j < n_bnds; j++) { + out << bnds[j].cd << " " << bnds[j].cv << " " << bnds[j].sd << "\n"; + } + child[ANN_IN]->dump(out); // print in-child + child[ANN_OUT]->dump(out); // print out-child +} + +//---------------------------------------------------------------------- +// Load kd-tree from dump file +// This rebuilds a kd-tree which was dumped to a file. The dump +// file contains all the basic tree information according to a +// preorder traversal. We assume that the dump file also contains +// point data. (This is to guarantee the consistency of the tree.) +// If not, then an error is generated. +// +// Indirectly, this procedure allocates space for points, point +// indices, all nodes in the tree, and the bounding box for the +// tree. When the tree is destroyed, all but the points are +// deallocated. +// +// This routine calls annReadDump to do all the work. +//---------------------------------------------------------------------- + +ANNkd_tree::ANNkd_tree( // build from dump file + istream &in) // input stream for dump file +{ + int the_dim; // local dimension + int the_n_pts; // local number of points + int the_bkt_size; // local number of points + ANNpoint the_bnd_box_lo; // low bounding point + ANNpoint the_bnd_box_hi; // high bounding point + ANNpointArray the_pts; // point storage + ANNidxArray the_pidx; // point index storage + ANNkd_ptr the_root; // root of the tree + + the_root = annReadDump( // read the dump file + in, // input stream + KD_TREE, // expecting a kd-tree + the_pts, // point array (returned) + the_pidx, // point indices (returned) + the_dim, the_n_pts, the_bkt_size, // basic tree info (returned) + the_bnd_box_lo, the_bnd_box_hi); // bounding box info (returned) + + // create a skeletal tree + SkeletonTree(the_n_pts, the_dim, the_bkt_size, the_pts, the_pidx); + + bnd_box_lo = the_bnd_box_lo; + bnd_box_hi = the_bnd_box_hi; + + root = the_root; // set the root +} + +ANNbd_tree::ANNbd_tree( // build bd-tree from dump file + istream &in) : ANNkd_tree() // input stream for dump file +{ + int the_dim; // local dimension + int the_n_pts; // local number of points + int the_bkt_size; // local number of points + ANNpoint the_bnd_box_lo; // low bounding point + ANNpoint the_bnd_box_hi; // high bounding point + ANNpointArray the_pts; // point storage + ANNidxArray the_pidx; // point index storage + ANNkd_ptr the_root; // root of the tree + + the_root = annReadDump( // read the dump file + in, // input stream + BD_TREE, // expecting a bd-tree + the_pts, // point array (returned) + the_pidx, // point indices (returned) + the_dim, the_n_pts, the_bkt_size, // basic tree info (returned) + the_bnd_box_lo, the_bnd_box_hi); // bounding box info (returned) + + // create a skeletal tree + SkeletonTree(the_n_pts, the_dim, the_bkt_size, the_pts, the_pidx); + bnd_box_lo = the_bnd_box_lo; + bnd_box_hi = the_bnd_box_hi; + + root = the_root; // set the root +} + +//---------------------------------------------------------------------- +// annReadDump - read a dump file +// +// This procedure reads a dump file, constructs a kd-tree +// and returns all the essential information needed to actually +// construct the tree. Because this procedure is used for +// constructing both kd-trees and bd-trees, the second argument +// is used to indicate which type of tree we are expecting. +//---------------------------------------------------------------------- + +static ANNkd_ptr annReadDump( + istream &in, // input stream + ANNtreeType tree_type, // type of tree expected + ANNpointArray &the_pts, // new points (returned) + ANNidxArray &the_pidx, // point indices (returned) + int &the_dim, // dimension (returned) + int &the_n_pts, // number of points (returned) + int &the_bkt_size, // bucket size (returned) + ANNpoint &the_bnd_box_lo, // low bounding point (ret'd) + ANNpoint &the_bnd_box_hi) // high bounding point (ret'd) +{ + int j; + char str[STRING_LEN]; // storage for string + char version[STRING_LEN]; // ANN version number + ANNkd_ptr the_root = NULL; + + //------------------------------------------------------------------ + // Input file header + //------------------------------------------------------------------ + in >> str; // input header + if (strcmp(str, "#ANN") != 0) { // incorrect header + annError("Incorrect header for dump file", ANNabort); + } + in.getline(version, STRING_LEN); // get version (ignore) + + //------------------------------------------------------------------ + // Input the points + // An array the_pts is allocated and points are read from + // the dump file. + //------------------------------------------------------------------ + in >> str; // get major heading + if (strcmp(str, "points") == 0) { // points section + in >> the_dim; // input dimension + in >> the_n_pts; // number of points + // allocate point storage + the_pts = annAllocPts(the_n_pts, the_dim); + for (int i = 0; i < the_n_pts; i++) { // input point coordinates + ANNidx idx; // point index + in >> idx; // input point index + if (idx < 0 || idx >= the_n_pts) { + annError("Point index is out of range", ANNabort); + } + for (j = 0; j < the_dim; j++) { + in >> the_pts[idx][j]; // read point coordinates + } + } + in >> str; // get next major heading + } + else { // no points were input + annError("Points must be supplied in the dump file", ANNabort); + } + + //------------------------------------------------------------------ + // Input the tree + // After the basic header information, we invoke annReadTree + // to do all the heavy work. We create our own array of + // point indices (so we can pass them to annReadTree()) + // but we do not deallocate them. They will be deallocated + // when the tree is destroyed. + //------------------------------------------------------------------ + if (strcmp(str, "tree") == 0) { // tree section + in >> the_dim; // read dimension + in >> the_n_pts; // number of points + in >> the_bkt_size; // bucket size + the_bnd_box_lo = annAllocPt(the_dim); // allocate bounding box pts + the_bnd_box_hi = annAllocPt(the_dim); + + for (j = 0; j < the_dim; j++) { // read bounding box low + in >> the_bnd_box_lo[j]; + } + for (j = 0; j < the_dim; j++) { // read bounding box low + in >> the_bnd_box_hi[j]; + } + the_pidx = new ANNidx[the_n_pts]; // allocate point index array + int next_idx = 0; // number of indices filled + // read the tree and indices + the_root = annReadTree(in, tree_type, the_pidx, next_idx); + if (next_idx != the_n_pts) { // didn't see all the points? + annError("Didn't see as many points as expected", ANNwarn); + } + } + else { + annError("Illegal dump format. Expecting section heading", ANNabort); + } + return the_root; +} + +//---------------------------------------------------------------------- +// annReadTree - input tree and return pointer +// +// annReadTree reads in a node of the tree, makes any recursive +// calls as needed to input the children of this node (if internal). +// It returns a pointer to the node that was created. An array +// of point indices is given along with a pointer to the next +// available location in the array. As leaves are read, their +// point indices are stored here, and the point buckets point +// to the first entry in the array. +// +// Recall that these are the formats. The tree is given in +// preorder. +// +// Leaf node: +// leaf ... +// Splitting nodes: +// split +// +// For bd-trees: +// +// Shrinking nodes: +// shrink +// +// +// ... (repeated n_bnds times) +//---------------------------------------------------------------------- + +static ANNkd_ptr annReadTree( + istream &in, // input stream + ANNtreeType tree_type, // type of tree expected + ANNidxArray the_pidx, // point indices (modified) + int &next_idx) // next index (modified) +{ + char tag[STRING_LEN]; // tag (leaf, split, shrink) + int n_pts; // number of points in leaf + int cd; // cut dimension + ANNcoord cv; // cut value + ANNcoord lb; // low bound + ANNcoord hb; // high bound + int n_bnds; // number of bounding sides + int sd; // which side + + in >> tag; // input node tag + + if (strcmp(tag, "null") == 0) { // null tree + return NULL; + } + //------------------------------------------------------------------ + // Read a leaf + //------------------------------------------------------------------ + if (strcmp(tag, "leaf") == 0) { // leaf node + + in >> n_pts; // input number of points + int old_idx = next_idx; // save next_idx + if (n_pts == 0) { // trivial leaf + return KD_TRIVIAL; + } + else { + for (int i = 0; i < n_pts; i++) { // input point indices + in >> the_pidx[next_idx++]; // store in array of indices + } + } + return new ANNkd_leaf(n_pts, &the_pidx[old_idx]); + } + //------------------------------------------------------------------ + // Read a splitting node + //------------------------------------------------------------------ + else if (strcmp(tag, "split") == 0) { // splitting node + + in >> cd >> cv >> lb >> hb; + + // read low and high subtrees + ANNkd_ptr lc = annReadTree(in, tree_type, the_pidx, next_idx); + ANNkd_ptr hc = annReadTree(in, tree_type, the_pidx, next_idx); + // create new node and return + return new ANNkd_split(cd, cv, lb, hb, lc, hc); + } + //------------------------------------------------------------------ + // Read a shrinking node (bd-tree only) + //------------------------------------------------------------------ + else if (strcmp(tag, "shrink") == 0) { // shrinking node + if (tree_type != BD_TREE) { + annError("Shrinking node not allowed in kd-tree", ANNabort); + } + + in >> n_bnds; // number of bounding sides + // allocate bounds array + ANNorthHSArray bds = new ANNorthHalfSpace[n_bnds]; + for (int i = 0; i < n_bnds; i++) { + in >> cd >> cv >> sd; // input bounding halfspace + // copy to array + bds[i] = ANNorthHalfSpace(cd, cv, sd); + } + // read inner and outer subtrees + ANNkd_ptr ic = annReadTree(in, tree_type, the_pidx, next_idx); + ANNkd_ptr oc = annReadTree(in, tree_type, the_pidx, next_idx); + // create new node and return + return new ANNbd_shrink(n_bnds, bds, ic, oc); + } + else { + annError("Illegal node type in dump file", ANNabort); + exit(0); // to keep the compiler happy + } +} diff --git a/3rdparty/ann_1.1.1_modified/src/kd_fix_rad_search.cpp b/3rdparty/ann_1.1.1_modified/src/kd_fix_rad_search.cpp new file mode 100755 index 0000000..87eb757 --- /dev/null +++ b/3rdparty/ann_1.1.1_modified/src/kd_fix_rad_search.cpp @@ -0,0 +1,183 @@ +//---------------------------------------------------------------------- +// File: kd_fix_rad_search.cpp +// Programmer: Sunil Arya and David Mount +// Description: Standard kd-tree fixed-radius kNN search +// Last modified: 05/03/05 (Version 1.1) +//---------------------------------------------------------------------- +// Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +// David Mount. All Rights Reserved. +// +// This software and related documentation is part of the Approximate +// Nearest Neighbor Library (ANN). This software is provided under +// the provisions of the Lesser GNU Public License (LGPL). See the +// file ../ReadMe.txt for further information. +// +// The University of Maryland (U.M.) and the authors make no +// representations about the suitability or fitness of this software for +// any purpose. It is provided "as is" without express or implied +// warranty. +//---------------------------------------------------------------------- +// History: +// Revision 1.1 05/03/05 +// Initial release +//---------------------------------------------------------------------- + +#include "kd_fix_rad_search.h" // kd fixed-radius search decls + +//---------------------------------------------------------------------- +// Approximate fixed-radius k nearest neighbor search +// The squared radius is provided, and this procedure finds the +// k nearest neighbors within the radius, and returns the total +// number of points lying within the radius. +// +// The method used for searching the kd-tree is a variation of the +// nearest neighbor search used in kd_search.cpp, except that the +// radius of the search ball is known. We refer the reader to that +// file for the explanation of the recursive search procedure. +//---------------------------------------------------------------------- + +//---------------------------------------------------------------------- +// To keep argument lists short, a number of global variables +// are maintained which are common to all the recursive calls. +// These are given below. +//---------------------------------------------------------------------- + +int ANNkdFRDim; // dimension of space +ANNpoint ANNkdFRQ; // query point +ANNdist ANNkdFRSqRad; // squared radius search bound +double ANNkdFRMaxErr; // max tolerable squared error +ANNpointArray ANNkdFRPts; // the points +ANNmin_k* ANNkdFRPointMK; // set of k closest points +int ANNkdFRPtsVisited; // total points visited +int ANNkdFRPtsInRange; // number of points in the range + +//---------------------------------------------------------------------- +// annkFRSearch - fixed radius search for k nearest neighbors +//---------------------------------------------------------------------- + +int ANNkd_tree::annkFRSearch( + ANNpoint q, // the query point + ANNdist sqRad, // squared radius search bound + int k, // number of near neighbors to return + ANNidxArray nn_idx, // nearest neighbor indices (returned) + ANNdistArray dd, // the approximate nearest neighbor + double eps) // the error bound +{ + ANNkdFRDim = dim; // copy arguments to static equivs + ANNkdFRQ = q; + ANNkdFRSqRad = sqRad; + ANNkdFRPts = pts; + ANNkdFRPtsVisited = 0; // initialize count of points visited + ANNkdFRPtsInRange = 0; // ...and points in the range + + ANNkdFRMaxErr = ANN_POW(1.0 + eps); + ANN_FLOP(2) // increment floating op count + + ANNkdFRPointMK = new ANNmin_k(k); // create set for closest k points + // search starting at the root + root->ann_FR_search(annBoxDistance(q, bnd_box_lo, bnd_box_hi, dim)); + + for (int i = 0; i < k; i++) { // extract the k-th closest points + if (dd != NULL) + dd[i] = ANNkdFRPointMK->ith_smallest_key(i); + if (nn_idx != NULL) + nn_idx[i] = ANNkdFRPointMK->ith_smallest_info(i); + } + + delete ANNkdFRPointMK; // deallocate closest point set + return ANNkdFRPtsInRange; // return final point count +} + +//---------------------------------------------------------------------- +// kd_split::ann_FR_search - search a splitting node +// Note: This routine is similar in structure to the standard kNN +// search. It visits the subtree that is closer to the query point +// first. For fixed-radius search, there is no benefit in visiting +// one subtree before the other, but we maintain the same basic +// code structure for the sake of uniformity. +//---------------------------------------------------------------------- + +void ANNkd_split::ann_FR_search(ANNdist box_dist) +{ + // check dist calc term condition + if (ANNmaxPtsVisited != 0 && ANNkdFRPtsVisited > ANNmaxPtsVisited) return; + + // distance to cutting plane + ANNcoord cut_diff = ANNkdFRQ[cut_dim] - cut_val; + + if (cut_diff < 0) { // left of cutting plane + child[ANN_LO]->ann_FR_search(box_dist);// visit closer child first + + ANNcoord box_diff = cd_bnds[ANN_LO] - ANNkdFRQ[cut_dim]; + if (box_diff < 0) // within bounds - ignore + box_diff = 0; + // distance to further box + box_dist = (ANNdist) ANN_SUM(box_dist, + ANN_DIFF(ANN_POW(box_diff), ANN_POW(cut_diff))); + + // visit further child if in range + if (box_dist * ANNkdFRMaxErr <= ANNkdFRSqRad) + child[ANN_HI]->ann_FR_search(box_dist); + + } + else { // right of cutting plane + child[ANN_HI]->ann_FR_search(box_dist);// visit closer child first + + ANNcoord box_diff = ANNkdFRQ[cut_dim] - cd_bnds[ANN_HI]; + if (box_diff < 0) // within bounds - ignore + box_diff = 0; + // distance to further box + box_dist = (ANNdist) ANN_SUM(box_dist, + ANN_DIFF(ANN_POW(box_diff), ANN_POW(cut_diff))); + + // visit further child if close enough + if (box_dist * ANNkdFRMaxErr <= ANNkdFRSqRad) + child[ANN_LO]->ann_FR_search(box_dist); + + } + ANN_FLOP(13) // increment floating ops + ANN_SPL(1) // one more splitting node visited +} + +//---------------------------------------------------------------------- +// kd_leaf::ann_FR_search - search points in a leaf node +// Note: The unreadability of this code is the result of +// some fine tuning to replace indexing by pointer operations. +//---------------------------------------------------------------------- + +void ANNkd_leaf::ann_FR_search(ANNdist box_dist) +{ + register ANNdist dist; // distance to data point + register ANNcoord* pp; // data coordinate pointer + register ANNcoord* qq; // query coordinate pointer + register ANNcoord t; + register int d; + + for (int i = 0; i < n_pts; i++) { // check points in bucket + + pp = ANNkdFRPts[bkt[i]]; // first coord of next data point + qq = ANNkdFRQ; // first coord of query point + dist = 0; + + for(d = 0; d < ANNkdFRDim; d++) { + ANN_COORD(1) // one more coordinate hit + ANN_FLOP(5) // increment floating ops + + t = *(qq++) - *(pp++); // compute length and adv coordinate + // exceeds dist to k-th smallest? + if( (dist = ANN_SUM(dist, ANN_POW(t))) > ANNkdFRSqRad) { + break; + } + } + + if (d >= ANNkdFRDim && // among the k best? + (ANN_ALLOW_SELF_MATCH || dist!=0)) { // and no self-match problem + // add it to the list + ANNkdFRPointMK->insert(dist, bkt[i]); + ANNkdFRPtsInRange++; // increment point count + } + } + ANN_LEAF(1) // one more leaf node visited + ANN_PTS(n_pts) // increment points visited + ANNkdFRPtsVisited += n_pts; // increment number of points visited +} diff --git a/3rdparty/ann_1.1.1_modified/src/kd_fix_rad_search.h b/3rdparty/ann_1.1.1_modified/src/kd_fix_rad_search.h new file mode 100755 index 0000000..6b3f5c5 --- /dev/null +++ b/3rdparty/ann_1.1.1_modified/src/kd_fix_rad_search.h @@ -0,0 +1,44 @@ +//---------------------------------------------------------------------- +// File: kd_fix_rad_search.h +// Programmer: Sunil Arya and David Mount +// Description: Standard kd-tree fixed-radius kNN search +// Last modified: 05/03/05 (Version 1.1) +//---------------------------------------------------------------------- +// Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +// David Mount. All Rights Reserved. +// +// This software and related documentation is part of the Approximate +// Nearest Neighbor Library (ANN). This software is provided under +// the provisions of the Lesser GNU Public License (LGPL). See the +// file ../ReadMe.txt for further information. +// +// The University of Maryland (U.M.) and the authors make no +// representations about the suitability or fitness of this software for +// any purpose. It is provided "as is" without express or implied +// warranty. +//---------------------------------------------------------------------- +// History: +// Revision 1.1 05/03/05 +// Initial release +//---------------------------------------------------------------------- + +#ifndef ANN_kd_fix_rad_search_H +#define ANN_kd_fix_rad_search_H + +#include "kd_tree.h" // kd-tree declarations +#include "kd_util.h" // kd-tree utilities +#include "pr_queue_k.h" // k-element priority queue + +#include // performance evaluation + +//---------------------------------------------------------------------- +// Global variables +// These are active for the life of each call to +// annRangeSearch(). They are set to save the number of +// variables that need to be passed among the various search +// procedures. +//---------------------------------------------------------------------- + +extern ANNpoint ANNkdFRQ; // query point (static copy) + +#endif diff --git a/3rdparty/ann_1.1.1_modified/src/kd_pr_search.cpp b/3rdparty/ann_1.1.1_modified/src/kd_pr_search.cpp new file mode 100755 index 0000000..edb0479 --- /dev/null +++ b/3rdparty/ann_1.1.1_modified/src/kd_pr_search.cpp @@ -0,0 +1,219 @@ +//---------------------------------------------------------------------- +// File: kd_pr_search.cpp +// Programmer: Sunil Arya and David Mount +// Description: Priority search for kd-trees +// Last modified: 01/04/05 (Version 1.0) +//---------------------------------------------------------------------- +// Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +// David Mount. All Rights Reserved. +// +// This software and related documentation is part of the Approximate +// Nearest Neighbor Library (ANN). This software is provided under +// the provisions of the Lesser GNU Public License (LGPL). See the +// file ../ReadMe.txt for further information. +// +// The University of Maryland (U.M.) and the authors make no +// representations about the suitability or fitness of this software for +// any purpose. It is provided "as is" without express or implied +// warranty. +//---------------------------------------------------------------------- +// History: +// Revision 0.1 03/04/98 +// Initial release +//---------------------------------------------------------------------- + +#include "kd_pr_search.h" // kd priority search declarations + +//---------------------------------------------------------------------- +// Approximate nearest neighbor searching by priority search. +// The kd-tree is searched for an approximate nearest neighbor. +// The point is returned through one of the arguments, and the +// distance returned is the SQUARED distance to this point. +// +// The method used for searching the kd-tree is called priority +// search. (It is described in Arya and Mount, ``Algorithms for +// fast vector quantization,'' Proc. of DCC '93: Data Compression +// Conference}, eds. J. A. Storer and M. Cohn, IEEE Press, 1993, +// 381--390.) +// +// The cell of the kd-tree containing the query point is located, +// and cells are visited in increasing order of distance from the +// query point. This is done by placing each subtree which has +// NOT been visited in a priority queue, according to the closest +// distance of the corresponding enclosing rectangle from the +// query point. The search stops when the distance to the nearest +// remaining rectangle exceeds the distance to the nearest point +// seen by a factor of more than 1/(1+eps). (Implying that any +// point found subsequently in the search cannot be closer by more +// than this factor.) +// +// The main entry point is annkPriSearch() which sets things up and +// then call the recursive routine ann_pri_search(). This is a +// recursive routine which performs the processing for one node in +// the kd-tree. There are two versions of this virtual procedure, +// one for splitting nodes and one for leaves. When a splitting node +// is visited, we determine which child to continue the search on +// (the closer one), and insert the other child into the priority +// queue. When a leaf is visited, we compute the distances to the +// points in the buckets, and update information on the closest +// points. +// +// Some trickery is used to incrementally update the distance from +// a kd-tree rectangle to the query point. This comes about from +// the fact that which each successive split, only one component +// (along the dimension that is split) of the squared distance to +// the child rectangle is different from the squared distance to +// the parent rectangle. +//---------------------------------------------------------------------- + +//---------------------------------------------------------------------- +// To keep argument lists short, a number of global variables +// are maintained which are common to all the recursive calls. +// These are given below. +//---------------------------------------------------------------------- + +double ANNprEps; // the error bound +int ANNprDim; // dimension of space +ANNpoint ANNprQ; // query point +double ANNprMaxErr; // max tolerable squared error +ANNpointArray ANNprPts; // the points +ANNpr_queue *ANNprBoxPQ; // priority queue for boxes +ANNmin_k *ANNprPointMK; // set of k closest points + +//---------------------------------------------------------------------- +// annkPriSearch - priority search for k nearest neighbors +//---------------------------------------------------------------------- + +void ANNkd_tree::annkPriSearch( + ANNpoint q, // query point + int k, // number of near neighbors to return + ANNidxArray nn_idx, // nearest neighbor indices (returned) + ANNdistArray dd, // dist to near neighbors (returned) + double eps) // error bound (ignored) +{ + // max tolerable squared error + ANNprMaxErr = ANN_POW(1.0 + eps); + ANN_FLOP(2) // increment floating ops + + ANNprDim = dim; // copy arguments to static equivs + ANNprQ = q; + ANNprPts = pts; + ANNptsVisited = 0; // initialize count of points visited + + ANNprPointMK = new ANNmin_k(k); // create set for closest k points + + // distance to root box + ANNdist box_dist = annBoxDistance(q, + bnd_box_lo, bnd_box_hi, dim); + + ANNprBoxPQ = new ANNpr_queue(n_pts);// create priority queue for boxes + ANNprBoxPQ->insert(box_dist, root); // insert root in priority queue + + while (ANNprBoxPQ->non_empty() && + (!(ANNmaxPtsVisited != 0 && ANNptsVisited > ANNmaxPtsVisited))) { + ANNkd_ptr np; // next box from prior queue + + // extract closest box from queue + ANNprBoxPQ->extr_min(box_dist, (void *&) np); + + ANN_FLOP(2) // increment floating ops + if (box_dist*ANNprMaxErr >= ANNprPointMK->max_key()) + break; + + np->ann_pri_search(box_dist); // search this subtree. + } + + for (int i = 0; i < k; i++) { // extract the k-th closest points + dd[i] = ANNprPointMK->ith_smallest_key(i); + nn_idx[i] = ANNprPointMK->ith_smallest_info(i); + } + + delete ANNprPointMK; // deallocate closest point set + delete ANNprBoxPQ; // deallocate priority queue +} + +//---------------------------------------------------------------------- +// kd_split::ann_pri_search - search a splitting node +//---------------------------------------------------------------------- + +void ANNkd_split::ann_pri_search(ANNdist box_dist) +{ + ANNdist new_dist; // distance to child visited later + // distance to cutting plane + ANNcoord cut_diff = ANNprQ[cut_dim] - cut_val; + + if (cut_diff < 0) { // left of cutting plane + ANNcoord box_diff = cd_bnds[ANN_LO] - ANNprQ[cut_dim]; + if (box_diff < 0) // within bounds - ignore + box_diff = 0; + // distance to further box + new_dist = (ANNdist) ANN_SUM(box_dist, + ANN_DIFF(ANN_POW(box_diff), ANN_POW(cut_diff))); + + if (child[ANN_HI] != KD_TRIVIAL)// enqueue if not trivial + ANNprBoxPQ->insert(new_dist, child[ANN_HI]); + // continue with closer child + child[ANN_LO]->ann_pri_search(box_dist); + } + else { // right of cutting plane + ANNcoord box_diff = ANNprQ[cut_dim] - cd_bnds[ANN_HI]; + if (box_diff < 0) // within bounds - ignore + box_diff = 0; + // distance to further box + new_dist = (ANNdist) ANN_SUM(box_dist, + ANN_DIFF(ANN_POW(box_diff), ANN_POW(cut_diff))); + + if (child[ANN_LO] != KD_TRIVIAL)// enqueue if not trivial + ANNprBoxPQ->insert(new_dist, child[ANN_LO]); + // continue with closer child + child[ANN_HI]->ann_pri_search(box_dist); + } + ANN_SPL(1) // one more splitting node visited + ANN_FLOP(8) // increment floating ops +} + +//---------------------------------------------------------------------- +// kd_leaf::ann_pri_search - search points in a leaf node +// +// This is virtually identical to the ann_search for standard search. +//---------------------------------------------------------------------- + +void ANNkd_leaf::ann_pri_search(ANNdist box_dist) +{ + register ANNdist dist; // distance to data point + register ANNcoord* pp; // data coordinate pointer + register ANNcoord* qq; // query coordinate pointer + register ANNdist min_dist; // distance to k-th closest point + register ANNcoord t; + register int d; + + min_dist = ANNprPointMK->max_key(); // k-th smallest distance so far + + for (int i = 0; i < n_pts; i++) { // check points in bucket + + pp = ANNprPts[bkt[i]]; // first coord of next data point + qq = ANNprQ; // first coord of query point + dist = 0; + + for(d = 0; d < ANNprDim; d++) { + ANN_COORD(1) // one more coordinate hit + ANN_FLOP(4) // increment floating ops + + t = *(qq++) - *(pp++); // compute length and adv coordinate + // exceeds dist to k-th smallest? + if( (dist = ANN_SUM(dist, ANN_POW(t))) > min_dist) { + break; + } + } + + if (d >= ANNprDim && // among the k best? + (ANN_ALLOW_SELF_MATCH || dist!=0)) { // and no self-match problem + // add it to the list + ANNprPointMK->insert(dist, bkt[i]); + min_dist = ANNprPointMK->max_key(); + } + } + ANN_LEAF(1) // one more leaf node visited + ANN_PTS(n_pts) // increment points visited + ANNptsVisited += n_pts; // increment number of points visited +} diff --git a/3rdparty/ann_1.1.1_modified/src/kd_pr_search.h b/3rdparty/ann_1.1.1_modified/src/kd_pr_search.h new file mode 100755 index 0000000..39e0484 --- /dev/null +++ b/3rdparty/ann_1.1.1_modified/src/kd_pr_search.h @@ -0,0 +1,49 @@ +//---------------------------------------------------------------------- +// File: kd_pr_search.h +// Programmer: Sunil Arya and David Mount +// Description: Priority kd-tree search +// Last modified: 01/04/05 (Version 1.0) +//---------------------------------------------------------------------- +// Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +// David Mount. All Rights Reserved. +// +// This software and related documentation is part of the Approximate +// Nearest Neighbor Library (ANN). This software is provided under +// the provisions of the Lesser GNU Public License (LGPL). See the +// file ../ReadMe.txt for further information. +// +// The University of Maryland (U.M.) and the authors make no +// representations about the suitability or fitness of this software for +// any purpose. It is provided "as is" without express or implied +// warranty. +//---------------------------------------------------------------------- +// History: +// Revision 0.1 03/04/98 +// Initial release +//---------------------------------------------------------------------- + +#ifndef ANN_kd_pr_search_H +#define ANN_kd_pr_search_H + +#include "kd_tree.h" // kd-tree declarations +#include "kd_util.h" // kd-tree utilities +#include "pr_queue.h" // priority queue declarations +#include "pr_queue_k.h" // k-element priority queue + +#include // performance evaluation + +//---------------------------------------------------------------------- +// Global variables +// Active for the life of each call to Appx_Near_Neigh() or +// Appx_k_Near_Neigh(). +//---------------------------------------------------------------------- + +extern double ANNprEps; // the error bound +extern int ANNprDim; // dimension of space +extern ANNpoint ANNprQ; // query point +extern double ANNprMaxErr; // max tolerable squared error +extern ANNpointArray ANNprPts; // the points +extern ANNpr_queue *ANNprBoxPQ; // priority queue for boxes +extern ANNmin_k *ANNprPointMK; // set of k closest points + +#endif diff --git a/3rdparty/ann_1.1.1_modified/src/kd_search.cpp b/3rdparty/ann_1.1.1_modified/src/kd_search.cpp new file mode 100755 index 0000000..5004ef7 --- /dev/null +++ b/3rdparty/ann_1.1.1_modified/src/kd_search.cpp @@ -0,0 +1,210 @@ +//---------------------------------------------------------------------- +// File: kd_search.cpp +// Programmer: Sunil Arya and David Mount +// Description: Standard kd-tree search +// Last modified: 01/04/05 (Version 1.0) +//---------------------------------------------------------------------- +// Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +// David Mount. All Rights Reserved. +// +// This software and related documentation is part of the Approximate +// Nearest Neighbor Library (ANN). This software is provided under +// the provisions of the Lesser GNU Public License (LGPL). See the +// file ../ReadMe.txt for further information. +// +// The University of Maryland (U.M.) and the authors make no +// representations about the suitability or fitness of this software for +// any purpose. It is provided "as is" without express or implied +// warranty. +//---------------------------------------------------------------------- +// History: +// Revision 0.1 03/04/98 +// Initial release +// Revision 1.0 04/01/05 +// Changed names LO, HI to ANN_LO, ANN_HI +//---------------------------------------------------------------------- + +#include "kd_search.h" // kd-search declarations + +//---------------------------------------------------------------------- +// Approximate nearest neighbor searching by kd-tree search +// The kd-tree is searched for an approximate nearest neighbor. +// The point is returned through one of the arguments, and the +// distance returned is the squared distance to this point. +// +// The method used for searching the kd-tree is an approximate +// adaptation of the search algorithm described by Friedman, +// Bentley, and Finkel, ``An algorithm for finding best matches +// in logarithmic expected time,'' ACM Transactions on Mathematical +// Software, 3(3):209-226, 1977). +// +// The algorithm operates recursively. When first encountering a +// node of the kd-tree we first visit the child which is closest to +// the query point. On return, we decide whether we want to visit +// the other child. If the box containing the other child exceeds +// 1/(1+eps) times the current best distance, then we skip it (since +// any point found in this child cannot be closer to the query point +// by more than this factor.) Otherwise, we visit it recursively. +// The distance between a box and the query point is computed exactly +// (not approximated as is often done in kd-tree), using incremental +// distance updates, as described by Arya and Mount in ``Algorithms +// for fast vector quantization,'' Proc. of DCC '93: Data Compression +// Conference, eds. J. A. Storer and M. Cohn, IEEE Press, 1993, +// 381-390. +// +// The main entry points is annkSearch() which sets things up and +// then call the recursive routine ann_search(). This is a recursive +// routine which performs the processing for one node in the kd-tree. +// There are two versions of this virtual procedure, one for splitting +// nodes and one for leaves. When a splitting node is visited, we +// determine which child to visit first (the closer one), and visit +// the other child on return. When a leaf is visited, we compute +// the distances to the points in the buckets, and update information +// on the closest points. +// +// Some trickery is used to incrementally update the distance from +// a kd-tree rectangle to the query point. This comes about from +// the fact that which each successive split, only one component +// (along the dimension that is split) of the squared distance to +// the child rectangle is different from the squared distance to +// the parent rectangle. +//---------------------------------------------------------------------- + +//---------------------------------------------------------------------- +// To keep argument lists short, a number of global variables +// are maintained which are common to all the recursive calls. +// These are given below. +//---------------------------------------------------------------------- + +int ANNkdDim; // dimension of space +ANNpoint ANNkdQ; // query point +double ANNkdMaxErr; // max tolerable squared error +ANNpointArray ANNkdPts; // the points +ANNmin_k *ANNkdPointMK; // set of k closest points + +//---------------------------------------------------------------------- +// annkSearch - search for the k nearest neighbors +//---------------------------------------------------------------------- + +void ANNkd_tree::annkSearch( + ANNpoint q, // the query point + int k, // number of near neighbors to return + ANNidxArray nn_idx, // nearest neighbor indices (returned) + ANNdistArray dd, // the approximate nearest neighbor + double eps) // the error bound +{ + + ANNkdDim = dim; // copy arguments to static equivs + ANNkdQ = q; + ANNkdPts = pts; + ANNptsVisited = 0; // initialize count of points visited + + if (k > n_pts) { // too many near neighbors? + annError("Requesting more near neighbors than data points", ANNabort); + } + + ANNkdMaxErr = ANN_POW(1.0 + eps); + ANN_FLOP(2) // increment floating op count + + ANNkdPointMK = new ANNmin_k(k); // create set for closest k points + // search starting at the root + root->ann_search(annBoxDistance(q, bnd_box_lo, bnd_box_hi, dim)); + + for (int i = 0; i < k; i++) { // extract the k-th closest points + dd[i] = ANNkdPointMK->ith_smallest_key(i); + nn_idx[i] = ANNkdPointMK->ith_smallest_info(i); + } + delete ANNkdPointMK; // deallocate closest point set +} + +//---------------------------------------------------------------------- +// kd_split::ann_search - search a splitting node +//---------------------------------------------------------------------- + +void ANNkd_split::ann_search(ANNdist box_dist) +{ + // check dist calc term condition + if (ANNmaxPtsVisited != 0 && ANNptsVisited > ANNmaxPtsVisited) return; + + // distance to cutting plane + ANNcoord cut_diff = ANNkdQ[cut_dim] - cut_val; + + if (cut_diff < 0) { // left of cutting plane + child[ANN_LO]->ann_search(box_dist);// visit closer child first + + ANNcoord box_diff = cd_bnds[ANN_LO] - ANNkdQ[cut_dim]; + if (box_diff < 0) // within bounds - ignore + box_diff = 0; + // distance to further box + box_dist = (ANNdist) ANN_SUM(box_dist, + ANN_DIFF(ANN_POW(box_diff), ANN_POW(cut_diff))); + + // visit further child if close enough + if (box_dist * ANNkdMaxErr < ANNkdPointMK->max_key()) + child[ANN_HI]->ann_search(box_dist); + + } + else { // right of cutting plane + child[ANN_HI]->ann_search(box_dist);// visit closer child first + + ANNcoord box_diff = ANNkdQ[cut_dim] - cd_bnds[ANN_HI]; + if (box_diff < 0) // within bounds - ignore + box_diff = 0; + // distance to further box + box_dist = (ANNdist) ANN_SUM(box_dist, + ANN_DIFF(ANN_POW(box_diff), ANN_POW(cut_diff))); + + // visit further child if close enough + if (box_dist * ANNkdMaxErr < ANNkdPointMK->max_key()) + child[ANN_LO]->ann_search(box_dist); + + } + ANN_FLOP(10) // increment floating ops + ANN_SPL(1) // one more splitting node visited +} + +//---------------------------------------------------------------------- +// kd_leaf::ann_search - search points in a leaf node +// Note: The unreadability of this code is the result of +// some fine tuning to replace indexing by pointer operations. +//---------------------------------------------------------------------- + +void ANNkd_leaf::ann_search(ANNdist box_dist) +{ + register ANNdist dist; // distance to data point + register ANNcoord* pp; // data coordinate pointer + register ANNcoord* qq; // query coordinate pointer + register ANNdist min_dist; // distance to k-th closest point + register ANNcoord t; + register int d; + + min_dist = ANNkdPointMK->max_key(); // k-th smallest distance so far + + for (int i = 0; i < n_pts; i++) { // check points in bucket + + pp = ANNkdPts[bkt[i]]; // first coord of next data point + qq = ANNkdQ; // first coord of query point + dist = 0; + + for(d = 0; d < ANNkdDim; d++) { + ANN_COORD(1) // one more coordinate hit + ANN_FLOP(4) // increment floating ops + + t = *(qq++) - *(pp++); // compute length and adv coordinate + // exceeds dist to k-th smallest? + if( (dist = ANN_SUM(dist, ANN_POW(t))) > min_dist) { + break; + } + } + + if (d >= ANNkdDim && // among the k best? + (ANN_ALLOW_SELF_MATCH || dist!=0)) { // and no self-match problem + // add it to the list + ANNkdPointMK->insert(dist, bkt[i]); + min_dist = ANNkdPointMK->max_key(); + } + } + ANN_LEAF(1) // one more leaf node visited + ANN_PTS(n_pts) // increment points visited + ANNptsVisited += n_pts; // increment number of points visited +} diff --git a/3rdparty/ann_1.1.1_modified/src/kd_search.h b/3rdparty/ann_1.1.1_modified/src/kd_search.h new file mode 100755 index 0000000..1adcdd4 --- /dev/null +++ b/3rdparty/ann_1.1.1_modified/src/kd_search.h @@ -0,0 +1,48 @@ +//---------------------------------------------------------------------- +// File: kd_search.h +// Programmer: Sunil Arya and David Mount +// Description: Standard kd-tree search +// Last modified: 01/04/05 (Version 1.0) +//---------------------------------------------------------------------- +// Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +// David Mount. All Rights Reserved. +// +// This software and related documentation is part of the Approximate +// Nearest Neighbor Library (ANN). This software is provided under +// the provisions of the Lesser GNU Public License (LGPL). See the +// file ../ReadMe.txt for further information. +// +// The University of Maryland (U.M.) and the authors make no +// representations about the suitability or fitness of this software for +// any purpose. It is provided "as is" without express or implied +// warranty. +//---------------------------------------------------------------------- +// History: +// Revision 0.1 03/04/98 +// Initial release +//---------------------------------------------------------------------- + +#ifndef ANN_kd_search_H +#define ANN_kd_search_H + +#include "kd_tree.h" // kd-tree declarations +#include "kd_util.h" // kd-tree utilities +#include "pr_queue_k.h" // k-element priority queue + +#include // performance evaluation + +//---------------------------------------------------------------------- +// More global variables +// These are active for the life of each call to annkSearch(). They +// are set to save the number of variables that need to be passed +// among the various search procedures. +//---------------------------------------------------------------------- + +extern int ANNkdDim; // dimension of space (static copy) +extern ANNpoint ANNkdQ; // query point (static copy) +extern double ANNkdMaxErr; // max tolerable squared error +extern ANNpointArray ANNkdPts; // the points (static copy) +extern ANNmin_k *ANNkdPointMK; // set of k closest points +extern int ANNptsVisited; // number of points visited + +#endif diff --git a/3rdparty/ann_1.1.1_modified/src/kd_split.cpp b/3rdparty/ann_1.1.1_modified/src/kd_split.cpp new file mode 100755 index 0000000..8d5b3d8 --- /dev/null +++ b/3rdparty/ann_1.1.1_modified/src/kd_split.cpp @@ -0,0 +1,428 @@ +//---------------------------------------------------------------------- +// File: kd_split.cpp +// Programmer: Sunil Arya and David Mount +// Description: Methods for splitting kd-trees +// Last modified: 01/04/05 (Version 1.0) +//---------------------------------------------------------------------- +// Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +// David Mount. All Rights Reserved. +// +// This software and related documentation is part of the Approximate +// Nearest Neighbor Library (ANN). This software is provided under +// the provisions of the Lesser GNU Public License (LGPL). See the +// file ../ReadMe.txt for further information. +// +// The University of Maryland (U.M.) and the authors make no +// representations about the suitability or fitness of this software for +// any purpose. It is provided "as is" without express or implied +// warranty. +//---------------------------------------------------------------------- +// History: +// Revision 0.1 03/04/98 +// Initial release +// Revision 1.0 04/01/05 +//---------------------------------------------------------------------- + +#include "kd_tree.h" // kd-tree definitions +#include "kd_util.h" // kd-tree utilities +#include "kd_split.h" // splitting functions + +//---------------------------------------------------------------------- +// Constants +//---------------------------------------------------------------------- + +const double ERR = 0.001; // a small value +const double FS_ASPECT_RATIO = 3.0; // maximum allowed aspect ratio + // in fair split. Must be >= 2. + +//---------------------------------------------------------------------- +// kd_split - Bentley's standard splitting routine for kd-trees +// Find the dimension of the greatest spread, and split +// just before the median point along this dimension. +//---------------------------------------------------------------------- + +void kd_split( + ANNpointArray pa, // point array (permuted on return) + ANNidxArray pidx, // point indices + const ANNorthRect &bnds, // bounding rectangle for cell + int n, // number of points + int dim, // dimension of space + int &cut_dim, // cutting dimension (returned) + ANNcoord &cut_val, // cutting value (returned) + int &n_lo) // num of points on low side (returned) +{ + // find dimension of maximum spread + cut_dim = annMaxSpread(pa, pidx, n, dim); + n_lo = n/2; // median rank + // split about median + annMedianSplit(pa, pidx, n, cut_dim, cut_val, n_lo); +} + +//---------------------------------------------------------------------- +// midpt_split - midpoint splitting rule for box-decomposition trees +// +// This is the simplest splitting rule that guarantees boxes +// of bounded aspect ratio. It simply cuts the box with the +// longest side through its midpoint. If there are ties, it +// selects the dimension with the maximum point spread. +// +// WARNING: This routine (while simple) doesn't seem to work +// well in practice in high dimensions, because it tends to +// generate a large number of trivial and/or unbalanced splits. +// Either kd_split(), sl_midpt_split(), or fair_split() are +// recommended, instead. +//---------------------------------------------------------------------- + +void midpt_split( + ANNpointArray pa, // point array + ANNidxArray pidx, // point indices (permuted on return) + const ANNorthRect &bnds, // bounding rectangle for cell + int n, // number of points + int dim, // dimension of space + int &cut_dim, // cutting dimension (returned) + ANNcoord &cut_val, // cutting value (returned) + int &n_lo) // num of points on low side (returned) +{ + int d; + + ANNcoord max_length = bnds.hi[0] - bnds.lo[0]; + for (d = 1; d < dim; d++) { // find length of longest box side + ANNcoord length = bnds.hi[d] - bnds.lo[d]; + if (length > max_length) { + max_length = length; + } + } + ANNcoord max_spread = -1; // find long side with most spread + for (d = 0; d < dim; d++) { + // is it among longest? + if (double(bnds.hi[d] - bnds.lo[d]) >= (1-ERR)*max_length) { + // compute its spread + ANNcoord spr = annSpread(pa, pidx, n, d); + if (spr > max_spread) { // is it max so far? + max_spread = spr; + cut_dim = d; + } + } + } + // split along cut_dim at midpoint + cut_val = (bnds.lo[cut_dim] + bnds.hi[cut_dim]) / 2; + // permute points accordingly + int br1, br2; + annPlaneSplit(pa, pidx, n, cut_dim, cut_val, br1, br2); + //------------------------------------------------------------------ + // On return: pa[0..br1-1] < cut_val + // pa[br1..br2-1] == cut_val + // pa[br2..n-1] > cut_val + // + // We can set n_lo to any value in the range [br1..br2]. + // We choose split so that points are most evenly divided. + //------------------------------------------------------------------ + if (br1 > n/2) n_lo = br1; + else if (br2 < n/2) n_lo = br2; + else n_lo = n/2; +} + +//---------------------------------------------------------------------- +// sl_midpt_split - sliding midpoint splitting rule +// +// This is a modification of midpt_split, which has the nonsensical +// name "sliding midpoint". The idea is that we try to use the +// midpoint rule, by bisecting the longest side. If there are +// ties, the dimension with the maximum spread is selected. If, +// however, the midpoint split produces a trivial split (no points +// on one side of the splitting plane) then we slide the splitting +// (maintaining its orientation) until it produces a nontrivial +// split. For example, if the splitting plane is along the x-axis, +// and all the data points have x-coordinate less than the x-bisector, +// then the split is taken along the maximum x-coordinate of the +// data points. +// +// Intuitively, this rule cannot generate trivial splits, and +// hence avoids midpt_split's tendency to produce trees with +// a very large number of nodes. +// +//---------------------------------------------------------------------- + +void sl_midpt_split( + ANNpointArray pa, // point array + ANNidxArray pidx, // point indices (permuted on return) + const ANNorthRect &bnds, // bounding rectangle for cell + int n, // number of points + int dim, // dimension of space + int &cut_dim, // cutting dimension (returned) + ANNcoord &cut_val, // cutting value (returned) + int &n_lo) // num of points on low side (returned) +{ + int d; + + ANNcoord max_length = bnds.hi[0] - bnds.lo[0]; + for (d = 1; d < dim; d++) { // find length of longest box side + ANNcoord length = bnds.hi[d] - bnds.lo[d]; + if (length > max_length) { + max_length = length; + } + } + ANNcoord max_spread = -1; // find long side with most spread + for (d = 0; d < dim; d++) { + // is it among longest? + if ((bnds.hi[d] - bnds.lo[d]) >= (1-ERR)*max_length) { + // compute its spread + ANNcoord spr = annSpread(pa, pidx, n, d); + if (spr > max_spread) { // is it max so far? + max_spread = spr; + cut_dim = d; + } + } + } + // ideal split at midpoint + ANNcoord ideal_cut_val = (bnds.lo[cut_dim] + bnds.hi[cut_dim])/2; + + ANNcoord min, max; + annMinMax(pa, pidx, n, cut_dim, min, max); // find min/max coordinates + + if (ideal_cut_val < min) // slide to min or max as needed + cut_val = min; + else if (ideal_cut_val > max) + cut_val = max; + else + cut_val = ideal_cut_val; + + // permute points accordingly + int br1, br2; + annPlaneSplit(pa, pidx, n, cut_dim, cut_val, br1, br2); + //------------------------------------------------------------------ + // On return: pa[0..br1-1] < cut_val + // pa[br1..br2-1] == cut_val + // pa[br2..n-1] > cut_val + // + // We can set n_lo to any value in the range [br1..br2] to satisfy + // the exit conditions of the procedure. + // + // if ideal_cut_val < min (implying br2 >= 1), + // then we select n_lo = 1 (so there is one point on left) and + // if ideal_cut_val > max (implying br1 <= n-1), + // then we select n_lo = n-1 (so there is one point on right). + // Otherwise, we select n_lo as close to n/2 as possible within + // [br1..br2]. + //------------------------------------------------------------------ + if (ideal_cut_val < min) n_lo = 1; + else if (ideal_cut_val > max) n_lo = n-1; + else if (br1 > n/2) n_lo = br1; + else if (br2 < n/2) n_lo = br2; + else n_lo = n/2; +} + +//---------------------------------------------------------------------- +// fair_split - fair-split splitting rule +// +// This is a compromise between the kd-tree splitting rule (which +// always splits data points at their median) and the midpoint +// splitting rule (which always splits a box through its center. +// The goal of this procedure is to achieve both nicely balanced +// splits, and boxes of bounded aspect ratio. +// +// A constant FS_ASPECT_RATIO is defined. Given a box, those sides +// which can be split so that the ratio of the longest to shortest +// side does not exceed ASPECT_RATIO are identified. Among these +// sides, we select the one in which the points have the largest +// spread. We then split the points in a manner which most evenly +// distributes the points on either side of the splitting plane, +// subject to maintaining the bound on the ratio of long to short +// sides. To determine that the aspect ratio will be preserved, +// we determine the longest side (other than this side), and +// determine how narrowly we can cut this side, without causing the +// aspect ratio bound to be exceeded (small_piece). +// +// This procedure is more robust than either kd_split or midpt_split, +// but is more complicated as well. When point distribution is +// extremely skewed, this degenerates to midpt_split (actually +// 1/3 point split), and when the points are most evenly distributed, +// this degenerates to kd-split. +//---------------------------------------------------------------------- + +void fair_split( + ANNpointArray pa, // point array + ANNidxArray pidx, // point indices (permuted on return) + const ANNorthRect &bnds, // bounding rectangle for cell + int n, // number of points + int dim, // dimension of space + int &cut_dim, // cutting dimension (returned) + ANNcoord &cut_val, // cutting value (returned) + int &n_lo) // num of points on low side (returned) +{ + int d; + ANNcoord max_length = bnds.hi[0] - bnds.lo[0]; + cut_dim = 0; + for (d = 1; d < dim; d++) { // find length of longest box side + ANNcoord length = bnds.hi[d] - bnds.lo[d]; + if (length > max_length) { + max_length = length; + cut_dim = d; + } + } + + ANNcoord max_spread = 0; // find legal cut with max spread + cut_dim = 0; + for (d = 0; d < dim; d++) { + ANNcoord length = bnds.hi[d] - bnds.lo[d]; + // is this side midpoint splitable + // without violating aspect ratio? + if (((double) max_length)*2.0/((double) length) <= FS_ASPECT_RATIO) { + // compute spread along this dim + ANNcoord spr = annSpread(pa, pidx, n, d); + if (spr > max_spread) { // best spread so far + max_spread = spr; + cut_dim = d; // this is dimension to cut + } + } + } + + max_length = 0; // find longest side other than cut_dim + for (d = 0; d < dim; d++) { + ANNcoord length = bnds.hi[d] - bnds.lo[d]; + if (d != cut_dim && length > max_length) + max_length = length; + } + // consider most extreme splits + ANNcoord small_piece = max_length / FS_ASPECT_RATIO; + ANNcoord lo_cut = bnds.lo[cut_dim] + small_piece;// lowest legal cut + ANNcoord hi_cut = bnds.hi[cut_dim] - small_piece;// highest legal cut + + int br1, br2; + // is median below lo_cut ? + if (annSplitBalance(pa, pidx, n, cut_dim, lo_cut) >= 0) { + cut_val = lo_cut; // cut at lo_cut + annPlaneSplit(pa, pidx, n, cut_dim, cut_val, br1, br2); + n_lo = br1; + } + // is median above hi_cut? + else if (annSplitBalance(pa, pidx, n, cut_dim, hi_cut) <= 0) { + cut_val = hi_cut; // cut at hi_cut + annPlaneSplit(pa, pidx, n, cut_dim, cut_val, br1, br2); + n_lo = br2; + } + else { // median cut preserves asp ratio + n_lo = n/2; // split about median + annMedianSplit(pa, pidx, n, cut_dim, cut_val, n_lo); + } +} + +//---------------------------------------------------------------------- +// sl_fair_split - sliding fair split splitting rule +// +// Sliding fair split is a splitting rule that combines the +// strengths of both fair split with sliding midpoint split. +// Fair split tends to produce balanced splits when the points +// are roughly uniformly distributed, but it can produce many +// trivial splits when points are highly clustered. Sliding +// midpoint never produces trivial splits, and shrinks boxes +// nicely if points are highly clustered, but it may produce +// rather unbalanced splits when points are unclustered but not +// quite uniform. +// +// Sliding fair split is based on the theory that there are two +// types of splits that are "good": balanced splits that produce +// fat boxes, and unbalanced splits provided the cell with fewer +// points is fat. +// +// This splitting rule operates by first computing the longest +// side of the current bounding box. Then it asks which sides +// could be split (at the midpoint) and still satisfy the aspect +// ratio bound with respect to this side. Among these, it selects +// the side with the largest spread (as fair split would). It +// then considers the most extreme cuts that would be allowed by +// the aspect ratio bound. This is done by dividing the longest +// side of the box by the aspect ratio bound. If the median cut +// lies between these extreme cuts, then we use the median cut. +// If not, then consider the extreme cut that is closer to the +// median. If all the points lie to one side of this cut, then +// we slide the cut until it hits the first point. This may +// violate the aspect ratio bound, but will never generate empty +// cells. However the sibling of every such skinny cell is fat, +// and hence packing arguments still apply. +// +//---------------------------------------------------------------------- + +void sl_fair_split( + ANNpointArray pa, // point array + ANNidxArray pidx, // point indices (permuted on return) + const ANNorthRect &bnds, // bounding rectangle for cell + int n, // number of points + int dim, // dimension of space + int &cut_dim, // cutting dimension (returned) + ANNcoord &cut_val, // cutting value (returned) + int &n_lo) // num of points on low side (returned) +{ + int d; + ANNcoord min, max; // min/max coordinates + int br1, br2; // split break points + + ANNcoord max_length = bnds.hi[0] - bnds.lo[0]; + cut_dim = 0; + for (d = 1; d < dim; d++) { // find length of longest box side + ANNcoord length = bnds.hi[d] - bnds.lo[d]; + if (length > max_length) { + max_length = length; + cut_dim = d; + } + } + + ANNcoord max_spread = 0; // find legal cut with max spread + cut_dim = 0; + for (d = 0; d < dim; d++) { + ANNcoord length = bnds.hi[d] - bnds.lo[d]; + // is this side midpoint splitable + // without violating aspect ratio? + if (((double) max_length)*2.0/((double) length) <= FS_ASPECT_RATIO) { + // compute spread along this dim + ANNcoord spr = annSpread(pa, pidx, n, d); + if (spr > max_spread) { // best spread so far + max_spread = spr; + cut_dim = d; // this is dimension to cut + } + } + } + + max_length = 0; // find longest side other than cut_dim + for (d = 0; d < dim; d++) { + ANNcoord length = bnds.hi[d] - bnds.lo[d]; + if (d != cut_dim && length > max_length) + max_length = length; + } + // consider most extreme splits + ANNcoord small_piece = max_length / FS_ASPECT_RATIO; + ANNcoord lo_cut = bnds.lo[cut_dim] + small_piece;// lowest legal cut + ANNcoord hi_cut = bnds.hi[cut_dim] - small_piece;// highest legal cut + // find min and max along cut_dim + annMinMax(pa, pidx, n, cut_dim, min, max); + // is median below lo_cut? + if (annSplitBalance(pa, pidx, n, cut_dim, lo_cut) >= 0) { + if (max > lo_cut) { // are any points above lo_cut? + cut_val = lo_cut; // cut at lo_cut + annPlaneSplit(pa, pidx, n, cut_dim, cut_val, br1, br2); + n_lo = br1; // balance if there are ties + } + else { // all points below lo_cut + cut_val = max; // cut at max value + annPlaneSplit(pa, pidx, n, cut_dim, cut_val, br1, br2); + n_lo = n-1; + } + } + // is median above hi_cut? + else if (annSplitBalance(pa, pidx, n, cut_dim, hi_cut) <= 0) { + if (min < hi_cut) { // are any points below hi_cut? + cut_val = hi_cut; // cut at hi_cut + annPlaneSplit(pa, pidx, n, cut_dim, cut_val, br1, br2); + n_lo = br2; // balance if there are ties + } + else { // all points above hi_cut + cut_val = min; // cut at min value + annPlaneSplit(pa, pidx, n, cut_dim, cut_val, br1, br2); + n_lo = 1; + } + } + else { // median cut is good enough + n_lo = n/2; // split about median + annMedianSplit(pa, pidx, n, cut_dim, cut_val, n_lo); + } +} diff --git a/3rdparty/ann_1.1.1_modified/src/kd_split.h b/3rdparty/ann_1.1.1_modified/src/kd_split.h new file mode 100755 index 0000000..ef80461 --- /dev/null +++ b/3rdparty/ann_1.1.1_modified/src/kd_split.h @@ -0,0 +1,85 @@ +//---------------------------------------------------------------------- +// File: kd_split.h +// Programmer: Sunil Arya and David Mount +// Description: Methods for splitting kd-trees +// Last modified: 01/04/05 (Version 1.0) +//---------------------------------------------------------------------- +// Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +// David Mount. All Rights Reserved. +// +// This software and related documentation is part of the Approximate +// Nearest Neighbor Library (ANN). This software is provided under +// the provisions of the Lesser GNU Public License (LGPL). See the +// file ../ReadMe.txt for further information. +// +// The University of Maryland (U.M.) and the authors make no +// representations about the suitability or fitness of this software for +// any purpose. It is provided "as is" without express or implied +// warranty. +//---------------------------------------------------------------------- +// History: +// Revision 0.1 03/04/98 +// Initial release +//---------------------------------------------------------------------- + +#ifndef ANN_KD_SPLIT_H +#define ANN_KD_SPLIT_H + +#include "kd_tree.h" // kd-tree definitions + +//---------------------------------------------------------------------- +// External entry points +// These are all splitting procedures for kd-trees. +//---------------------------------------------------------------------- + +void kd_split( // standard (optimized) kd-splitter + ANNpointArray pa, // point array (unaltered) + ANNidxArray pidx, // point indices (permuted on return) + const ANNorthRect &bnds, // bounding rectangle for cell + int n, // number of points + int dim, // dimension of space + int &cut_dim, // cutting dimension (returned) + ANNcoord &cut_val, // cutting value (returned) + int &n_lo); // num of points on low side (returned) + +void midpt_split( // midpoint kd-splitter + ANNpointArray pa, // point array (unaltered) + ANNidxArray pidx, // point indices (permuted on return) + const ANNorthRect &bnds, // bounding rectangle for cell + int n, // number of points + int dim, // dimension of space + int &cut_dim, // cutting dimension (returned) + ANNcoord &cut_val, // cutting value (returned) + int &n_lo); // num of points on low side (returned) + +void sl_midpt_split( // sliding midpoint kd-splitter + ANNpointArray pa, // point array (unaltered) + ANNidxArray pidx, // point indices (permuted on return) + const ANNorthRect &bnds, // bounding rectangle for cell + int n, // number of points + int dim, // dimension of space + int &cut_dim, // cutting dimension (returned) + ANNcoord &cut_val, // cutting value (returned) + int &n_lo); // num of points on low side (returned) + +void fair_split( // fair-split kd-splitter + ANNpointArray pa, // point array (unaltered) + ANNidxArray pidx, // point indices (permuted on return) + const ANNorthRect &bnds, // bounding rectangle for cell + int n, // number of points + int dim, // dimension of space + int &cut_dim, // cutting dimension (returned) + ANNcoord &cut_val, // cutting value (returned) + int &n_lo); // num of points on low side (returned) + +void sl_fair_split( // sliding fair-split kd-splitter + ANNpointArray pa, // point array (unaltered) + ANNidxArray pidx, // point indices (permuted on return) + const ANNorthRect &bnds, // bounding rectangle for cell + int n, // number of points + int dim, // dimension of space + int &cut_dim, // cutting dimension (returned) + ANNcoord &cut_val, // cutting value (returned) + int &n_lo); // num of points on low side (returned) + +#endif diff --git a/3rdparty/ann_1.1.1_modified/src/kd_tree.cpp b/3rdparty/ann_1.1.1_modified/src/kd_tree.cpp new file mode 100755 index 0000000..2828fd2 --- /dev/null +++ b/3rdparty/ann_1.1.1_modified/src/kd_tree.cpp @@ -0,0 +1,405 @@ +//---------------------------------------------------------------------- +// File: kd_tree.cpp +// Programmer: Sunil Arya and David Mount +// Description: Basic methods for kd-trees. +// Last modified: 01/04/05 (Version 1.0) +//---------------------------------------------------------------------- +// Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +// David Mount. All Rights Reserved. +// +// This software and related documentation is part of the Approximate +// Nearest Neighbor Library (ANN). This software is provided under +// the provisions of the Lesser GNU Public License (LGPL). See the +// file ../ReadMe.txt for further information. +// +// The University of Maryland (U.M.) and the authors make no +// representations about the suitability or fitness of this software for +// any purpose. It is provided "as is" without express or implied +// warranty. +//---------------------------------------------------------------------- +// History: +// Revision 0.1 03/04/98 +// Initial release +// Revision 1.0 04/01/05 +// Increased aspect ratio bound (ANN_AR_TOOBIG) from 100 to 1000. +// Fixed leaf counts to count trivial leaves. +// Added optional pa, pi arguments to Skeleton kd_tree constructor +// for use in load constructor. +// Added annClose() to eliminate KD_TRIVIAL memory leak. +//---------------------------------------------------------------------- + +#include "kd_tree.h" // kd-tree declarations +#include "kd_split.h" // kd-tree splitting rules +#include "kd_util.h" // kd-tree utilities +#include // performance evaluation + +//---------------------------------------------------------------------- +// Global data +// +// For some splitting rules, especially with small bucket sizes, +// it is possible to generate a large number of empty leaf nodes. +// To save storage we allocate a single trivial leaf node which +// contains no points. For messy coding reasons it is convenient +// to have it reference a trivial point index. +// +// KD_TRIVIAL is allocated when the first kd-tree is created. It +// must *never* deallocated (since it may be shared by more than +// one tree). +//---------------------------------------------------------------------- +static int IDX_TRIVIAL[] = {0}; // trivial point index +ANNkd_leaf *KD_TRIVIAL = NULL; // trivial leaf node + +//---------------------------------------------------------------------- +// Printing the kd-tree +// These routines print a kd-tree in reverse inorder (high then +// root then low). (This is so that if you look at the output +// from the right side it appear from left to right in standard +// inorder.) When outputting leaves we output only the point +// indices rather than the point coordinates. There is an option +// to print the point coordinates separately. +// +// The tree printing routine calls the printing routines on the +// individual nodes of the tree, passing in the level or depth +// in the tree. The level in the tree is used to print indentation +// for readability. +//---------------------------------------------------------------------- + +void ANNkd_split::print( // print splitting node + int level, // depth of node in tree + ostream &out) // output stream +{ + child[ANN_HI]->print(level+1, out); // print high child + out << " "; + for (int i = 0; i < level; i++) // print indentation + out << ".."; + out << "Split cd=" << cut_dim << " cv=" << cut_val; + out << " lbnd=" << cd_bnds[ANN_LO]; + out << " hbnd=" << cd_bnds[ANN_HI]; + out << "\n"; + child[ANN_LO]->print(level+1, out); // print low child +} + +void ANNkd_leaf::print( // print leaf node + int level, // depth of node in tree + ostream &out) // output stream +{ + + out << " "; + for (int i = 0; i < level; i++) // print indentation + out << ".."; + + if (this == KD_TRIVIAL) { // canonical trivial leaf node + out << "Leaf (trivial)\n"; + } + else{ + out << "Leaf n=" << n_pts << " <"; + for (int j = 0; j < n_pts; j++) { + out << bkt[j]; + if (j < n_pts-1) out << ","; + } + out << ">\n"; + } +} + +void ANNkd_tree::Print( // print entire tree + ANNbool with_pts, // print points as well? + ostream &out) // output stream +{ + out << "ANN Version " << ANNversion << "\n"; + if (with_pts) { // print point coordinates + out << " Points:\n"; + for (int i = 0; i < n_pts; i++) { + out << "\t" << i << ": "; + annPrintPt(pts[i], dim, out); + out << "\n"; + } + } + if (root == NULL) // empty tree? + out << " Null tree.\n"; + else { + root->print(0, out); // invoke printing at root + } +} + +//---------------------------------------------------------------------- +// kd_tree statistics (for performance evaluation) +// This routine compute various statistics information for +// a kd-tree. It is used by the implementors for performance +// evaluation of the data structure. +//---------------------------------------------------------------------- + +#define MAX(a,b) ((a) > (b) ? (a) : (b)) + +void ANNkdStats::merge(const ANNkdStats &st) // merge stats from child +{ + n_lf += st.n_lf; n_tl += st.n_tl; + n_spl += st.n_spl; n_shr += st.n_shr; + depth = MAX(depth, st.depth); + sum_ar += st.sum_ar; +} + +//---------------------------------------------------------------------- +// Update statistics for nodes +//---------------------------------------------------------------------- + +const double ANN_AR_TOOBIG = 1000; // too big an aspect ratio + +void ANNkd_leaf::getStats( // get subtree statistics + int dim, // dimension of space + ANNkdStats &st, // stats (modified) + ANNorthRect &bnd_box) // bounding box +{ + st.reset(); + st.n_lf = 1; // count this leaf + if (this == KD_TRIVIAL) st.n_tl = 1; // count trivial leaf + double ar = annAspectRatio(dim, bnd_box); // aspect ratio of leaf + // incr sum (ignore outliers) + st.sum_ar += float(ar < ANN_AR_TOOBIG ? ar : ANN_AR_TOOBIG); +} + +void ANNkd_split::getStats( // get subtree statistics + int dim, // dimension of space + ANNkdStats &st, // stats (modified) + ANNorthRect &bnd_box) // bounding box +{ + ANNkdStats ch_stats; // stats for children + // get stats for low child + ANNcoord hv = bnd_box.hi[cut_dim]; // save box bounds + bnd_box.hi[cut_dim] = cut_val; // upper bound for low child + ch_stats.reset(); // reset + child[ANN_LO]->getStats(dim, ch_stats, bnd_box); + st.merge(ch_stats); // merge them + bnd_box.hi[cut_dim] = hv; // restore bound + // get stats for high child + ANNcoord lv = bnd_box.lo[cut_dim]; // save box bounds + bnd_box.lo[cut_dim] = cut_val; // lower bound for high child + ch_stats.reset(); // reset + child[ANN_HI]->getStats(dim, ch_stats, bnd_box); + st.merge(ch_stats); // merge them + bnd_box.lo[cut_dim] = lv; // restore bound + + st.depth++; // increment depth + st.n_spl++; // increment number of splits +} + +//---------------------------------------------------------------------- +// getStats +// Collects a number of statistics related to kd_tree or +// bd_tree. +//---------------------------------------------------------------------- + +void ANNkd_tree::getStats( // get tree statistics + ANNkdStats &st) // stats (modified) +{ + st.reset(dim, n_pts, bkt_size); // reset stats + // create bounding box + ANNorthRect bnd_box(dim, bnd_box_lo, bnd_box_hi); + if (root != NULL) { // if nonempty tree + root->getStats(dim, st, bnd_box); // get statistics + st.avg_ar = st.sum_ar / st.n_lf; // average leaf asp ratio + } +} + +//---------------------------------------------------------------------- +// kd_tree destructor +// The destructor just frees the various elements that were +// allocated in the construction process. +//---------------------------------------------------------------------- + +ANNkd_tree::~ANNkd_tree() // tree destructor +{ + if (root != NULL) delete root; + if (pidx != NULL) delete [] pidx; + if (bnd_box_lo != NULL) annDeallocPt(bnd_box_lo); + if (bnd_box_hi != NULL) annDeallocPt(bnd_box_hi); +} + +//---------------------------------------------------------------------- +// This is called with all use of ANN is finished. It eliminates the +// minor memory leak caused by the allocation of KD_TRIVIAL. +//---------------------------------------------------------------------- +void annClose() // close use of ANN +{ + if (KD_TRIVIAL != NULL) { + delete KD_TRIVIAL; + KD_TRIVIAL = NULL; + } +} + +//---------------------------------------------------------------------- +// kd_tree constructors +// There is a skeleton kd-tree constructor which sets up a +// trivial empty tree. The last optional argument allows +// the routine to be passed a point index array which is +// assumed to be of the proper size (n). Otherwise, one is +// allocated and initialized to the identity. Warning: In +// either case the destructor will deallocate this array. +// +// As a kludge, we need to allocate KD_TRIVIAL if one has not +// already been allocated. (This is because I'm too dumb to +// figure out how to cause a pointer to be allocated at load +// time.) +//---------------------------------------------------------------------- + +void ANNkd_tree::SkeletonTree( // construct skeleton tree + int n, // number of points + int dd, // dimension + int bs, // bucket size + ANNpointArray pa, // point array + ANNidxArray pi) // point indices +{ + dim = dd; // initialize basic elements + n_pts = n; + bkt_size = bs; + pts = pa; // initialize points array + + root = NULL; // no associated tree yet + + if (pi == NULL) { // point indices provided? + pidx = new ANNidx[n]; // no, allocate space for point indices + for (int i = 0; i < n; i++) { + pidx[i] = i; // initially identity + } + } + else { + pidx = pi; // yes, use them + } + + bnd_box_lo = bnd_box_hi = NULL; // bounding box is nonexistent + if (KD_TRIVIAL == NULL) // no trivial leaf node yet? + KD_TRIVIAL = new ANNkd_leaf(0, IDX_TRIVIAL); // allocate it +} + +ANNkd_tree::ANNkd_tree( // basic constructor + int n, // number of points + int dd, // dimension + int bs) // bucket size +{ SkeletonTree(n, dd, bs); } // construct skeleton tree + +//---------------------------------------------------------------------- +// rkd_tree - recursive procedure to build a kd-tree +// +// Builds a kd-tree for points in pa as indexed through the +// array pidx[0..n-1] (typically a subarray of the array used in +// the top-level call). This routine permutes the array pidx, +// but does not alter pa[]. +// +// The construction is based on a standard algorithm for constructing +// the kd-tree (see Friedman, Bentley, and Finkel, ``An algorithm for +// finding best matches in logarithmic expected time,'' ACM Transactions +// on Mathematical Software, 3(3):209-226, 1977). The procedure +// operates by a simple divide-and-conquer strategy, which determines +// an appropriate orthogonal cutting plane (see below), and splits +// the points. When the number of points falls below the bucket size, +// we simply store the points in a leaf node's bucket. +// +// One of the arguments is a pointer to a splitting routine, +// whose prototype is: +// +// void split( +// ANNpointArray pa, // complete point array +// ANNidxArray pidx, // point array (permuted on return) +// ANNorthRect &bnds, // bounds of current cell +// int n, // number of points +// int dim, // dimension of space +// int &cut_dim, // cutting dimension +// ANNcoord &cut_val, // cutting value +// int &n_lo) // no. of points on low side of cut +// +// This procedure selects a cutting dimension and cutting value, +// partitions pa about these values, and returns the number of +// points on the low side of the cut. +//---------------------------------------------------------------------- + +ANNkd_ptr rkd_tree( // recursive construction of kd-tree + ANNpointArray pa, // point array + ANNidxArray pidx, // point indices to store in subtree + int n, // number of points + int dim, // dimension of space + int bsp, // bucket space + ANNorthRect &bnd_box, // bounding box for current node + ANNkd_splitter splitter) // splitting routine +{ + if (n <= bsp) { // n small, make a leaf node + if (n == 0) // empty leaf node + return KD_TRIVIAL; // return (canonical) empty leaf + else // construct the node and return + return new ANNkd_leaf(n, pidx); + } + else { // n large, make a splitting node + int cd; // cutting dimension + ANNcoord cv; // cutting value + int n_lo; // number on low side of cut + ANNkd_node *lo, *hi; // low and high children + + // invoke splitting procedure + (*splitter)(pa, pidx, bnd_box, n, dim, cd, cv, n_lo); + + ANNcoord lv = bnd_box.lo[cd]; // save bounds for cutting dimension + ANNcoord hv = bnd_box.hi[cd]; + + bnd_box.hi[cd] = cv; // modify bounds for left subtree + lo = rkd_tree( // build left subtree + pa, pidx, n_lo, // ...from pidx[0..n_lo-1] + dim, bsp, bnd_box, splitter); + bnd_box.hi[cd] = hv; // restore bounds + + bnd_box.lo[cd] = cv; // modify bounds for right subtree + hi = rkd_tree( // build right subtree + pa, pidx + n_lo, n-n_lo,// ...from pidx[n_lo..n-1] + dim, bsp, bnd_box, splitter); + bnd_box.lo[cd] = lv; // restore bounds + + // create the splitting node + ANNkd_split *ptr = new ANNkd_split(cd, cv, lv, hv, lo, hi); + + return ptr; // return pointer to this node + } +} + +//---------------------------------------------------------------------- +// kd-tree constructor +// This is the main constructor for kd-trees given a set of points. +// It first builds a skeleton tree, then computes the bounding box +// of the data points, and then invokes rkd_tree() to actually +// build the tree, passing it the appropriate splitting routine. +//---------------------------------------------------------------------- + +ANNkd_tree::ANNkd_tree( // construct from point array + ANNpointArray pa, // point array (with at least n pts) + int n, // number of points + int dd, // dimension + int bs, // bucket size + ANNsplitRule split) // splitting method +{ + SkeletonTree(n, dd, bs); // set up the basic stuff + pts = pa; // where the points are + if (n == 0) return; // no points--no sweat + + ANNorthRect bnd_box(dd); // bounding box for points + annEnclRect(pa, pidx, n, dd, bnd_box);// construct bounding rectangle + // copy to tree structure + bnd_box_lo = annCopyPt(dd, bnd_box.lo); + bnd_box_hi = annCopyPt(dd, bnd_box.hi); + + switch (split) { // build by rule + case ANN_KD_STD: // standard kd-splitting rule + root = rkd_tree(pa, pidx, n, dd, bs, bnd_box, kd_split); + break; + case ANN_KD_MIDPT: // midpoint split + root = rkd_tree(pa, pidx, n, dd, bs, bnd_box, midpt_split); + break; + case ANN_KD_FAIR: // fair split + root = rkd_tree(pa, pidx, n, dd, bs, bnd_box, fair_split); + break; + case ANN_KD_SUGGEST: // best (in our opinion) + case ANN_KD_SL_MIDPT: // sliding midpoint split + root = rkd_tree(pa, pidx, n, dd, bs, bnd_box, sl_midpt_split); + break; + case ANN_KD_SL_FAIR: // sliding fair split + root = rkd_tree(pa, pidx, n, dd, bs, bnd_box, sl_fair_split); + break; + default: + annError("Illegal splitting method", ANNabort); + } +} diff --git a/3rdparty/ann_1.1.1_modified/src/kd_tree.h b/3rdparty/ann_1.1.1_modified/src/kd_tree.h new file mode 100755 index 0000000..e9c8f07 --- /dev/null +++ b/3rdparty/ann_1.1.1_modified/src/kd_tree.h @@ -0,0 +1,186 @@ +//---------------------------------------------------------------------- +// File: kd_tree.h +// Programmer: Sunil Arya and David Mount +// Description: Declarations for standard kd-tree routines +// Last modified: 05/03/05 (Version 1.1) +//---------------------------------------------------------------------- +// Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +// David Mount. All Rights Reserved. +// +// This software and related documentation is part of the Approximate +// Nearest Neighbor Library (ANN). This software is provided under +// the provisions of the Lesser GNU Public License (LGPL). See the +// file ../ReadMe.txt for further information. +// +// The University of Maryland (U.M.) and the authors make no +// representations about the suitability or fitness of this software for +// any purpose. It is provided "as is" without express or implied +// warranty. +//---------------------------------------------------------------------- +// History: +// Revision 0.1 03/04/98 +// Initial release +// Revision 1.1 05/03/05 +// Added fixed radius kNN search +//---------------------------------------------------------------------- + +#ifndef ANN_kd_tree_H +#define ANN_kd_tree_H + +#include // all ANN includes + +using namespace std; // make std:: available + + + +//---------------------------------------------------------------------- +// kd-splitting function: +// kd_splitter is a pointer to a splitting routine for preprocessing. +// Different splitting procedures result in different strategies +// for building the tree. +//---------------------------------------------------------------------- + +typedef void (*ANNkd_splitter)( // splitting routine for kd-trees + ANNpointArray pa, // point array (unaltered) + ANNidxArray pidx, // point indices (permuted on return) + const ANNorthRect &bnds, // bounding rectangle for cell + int n, // number of points + int dim, // dimension of space + int &cut_dim, // cutting dimension (returned) + ANNcoord &cut_val, // cutting value (returned) + int &n_lo); // num of points on low side (returned) + +//---------------------------------------------------------------------- +// Leaf kd-tree node +// Leaf nodes of the kd-tree store the set of points associated +// with this bucket, stored as an array of point indices. These +// are indices in the array points, which resides with the +// root of the kd-tree. We also store the number of points +// that reside in this bucket. +//---------------------------------------------------------------------- + +class ANNkd_leaf: public ANNkd_node // leaf node for kd-tree +{ + int n_pts; // no. points in bucket + ANNidxArray bkt; // bucket of points +public: + ANNkd_leaf( // constructor + int n, // number of points + ANNidxArray b) // bucket + { + n_pts = n; // number of points in bucket + bkt = b; // the bucket + } + + ~ANNkd_leaf() { } // destructor (none) + + virtual void getStats( // get tree statistics + int dim, // dimension of space + ANNkdStats &st, // statistics + ANNorthRect &bnd_box); // bounding box + virtual void print(int level, ostream &out);// print node + virtual void dump(ostream &out); // dump node + + virtual void ann_search(ANNdist); // standard search + virtual void ann_pri_search(ANNdist); // priority search + virtual void ann_FR_search(ANNdist); // fixed-radius search + ANNidxArray getIdxArray() // Deyuan Qiu + { return bkt; } + bool isLeaf() // Deyuan Qiu + { return true; } +}; + +//---------------------------------------------------------------------- +// KD_TRIVIAL is a special pointer to an empty leaf node. Since +// some splitting rules generate many (more than 50%) trivial +// leaves, we use this one shared node to save space. +// +// The pointer is initialized to NULL, but whenever a kd-tree is +// created, we allocate this node, if it has not already been +// allocated. This node is *never* deallocated, so it produces +// a small memory leak. +//---------------------------------------------------------------------- + +extern ANNkd_leaf *KD_TRIVIAL; // trivial (empty) leaf node + +//---------------------------------------------------------------------- +// kd-tree splitting node. +// Splitting nodes contain a cutting dimension and a cutting value. +// These indicate the axis-parellel plane which subdivide the +// box for this node. The extent of the bounding box along the +// cutting dimension is maintained (this is used to speed up point +// to box distance calculations) [we do not store the entire bounding +// box since this may be wasteful of space in high dimensions]. +// We also store pointers to the 2 children. +//---------------------------------------------------------------------- + +class ANNkd_split : public ANNkd_node // splitting node of a kd-tree +{ + int cut_dim; // dim orthogonal to cutting plane + ANNcoord cut_val; // location of cutting plane + ANNcoord cd_bnds[2]; // lower and upper bounds of + // rectangle along cut_dim + ANNkd_ptr child[2]; // left and right children +public: + ANNkd_split( // constructor + int cd, // cutting dimension + ANNcoord cv, // cutting value + ANNcoord lv, ANNcoord hv, // low and high values + ANNkd_ptr lc=NULL, ANNkd_ptr hc=NULL) // children + { + cut_dim = cd; // cutting dimension + cut_val = cv; // cutting value + cd_bnds[ANN_LO] = lv; // lower bound for rectangle + cd_bnds[ANN_HI] = hv; // upper bound for rectangle + child[ANN_LO] = lc; // left child + child[ANN_HI] = hc; // right child + } + + ~ANNkd_split() // destructor + { + if (child[ANN_LO]!= NULL && child[ANN_LO]!= KD_TRIVIAL) + delete child[ANN_LO]; + if (child[ANN_HI]!= NULL && child[ANN_HI]!= KD_TRIVIAL) + delete child[ANN_HI]; + } + + virtual void getStats( // get tree statistics + int dim, // dimension of space + ANNkdStats &st, // statistics + ANNorthRect &bnd_box); // bounding box + virtual void print(int level, ostream &out);// print node + virtual void dump(ostream &out); // dump node + + virtual void ann_search(ANNdist); // standard search + virtual void ann_pri_search(ANNdist); // priority search + virtual void ann_FR_search(ANNdist); // fixed-radius search + ANNkd_ptr getLeftChild() // Deyuan Qiu + { return child[0]; } + ANNkd_ptr getRightChild() // Deyuan Qiu + { return child[1]; } + ANNcoord getCutVal() // Deyuan Qiu + { return cut_val; } + int getCutDim() // Deyuan Qiu + { return cut_dim; } + bool isLeaf() // Deyuan Qiu + { return false; } + float getLoBound() // Deyuan Qiu + { return (float)cd_bnds[0]; } + float getHiBound() // Deyuan Qiu + { return (float)cd_bnds[1]; } +}; + +//---------------------------------------------------------------------- +// External entry points +//---------------------------------------------------------------------- + +ANNkd_ptr rkd_tree( // recursive construction of kd-tree + ANNpointArray pa, // point array (unaltered) + ANNidxArray pidx, // point indices to store in subtree + int n, // number of points + int dim, // dimension of space + int bsp, // bucket space + ANNorthRect &bnd_box, // bounding box for current node + ANNkd_splitter splitter); // splitting routine + +#endif diff --git a/3rdparty/ann_1.1.1_modified/src/kd_util.cpp b/3rdparty/ann_1.1.1_modified/src/kd_util.cpp new file mode 100755 index 0000000..06d65b8 --- /dev/null +++ b/3rdparty/ann_1.1.1_modified/src/kd_util.cpp @@ -0,0 +1,439 @@ +//---------------------------------------------------------------------- +// File: kd_util.cpp +// Programmer: Sunil Arya and David Mount +// Description: Common utilities for kd-trees +// Last modified: 01/04/05 (Version 1.0) +//---------------------------------------------------------------------- +// Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +// David Mount. All Rights Reserved. +// +// This software and related documentation is part of the Approximate +// Nearest Neighbor Library (ANN). This software is provided under +// the provisions of the Lesser GNU Public License (LGPL). See the +// file ../ReadMe.txt for further information. +// +// The University of Maryland (U.M.) and the authors make no +// representations about the suitability or fitness of this software for +// any purpose. It is provided "as is" without express or implied +// warranty. +//---------------------------------------------------------------------- +// History: +// Revision 0.1 03/04/98 +// Initial release +//---------------------------------------------------------------------- + +#include "kd_util.h" // kd-utility declarations + +#include // performance evaluation + +//---------------------------------------------------------------------- +// The following routines are utility functions for manipulating +// points sets, used in determining splitting planes for kd-tree +// construction. +//---------------------------------------------------------------------- + +//---------------------------------------------------------------------- +// NOTE: Virtually all point indexing is done through an index (i.e. +// permutation) array pidx. Consequently, a reference to the d-th +// coordinate of the i-th point is pa[pidx[i]][d]. The macro PA(i,d) +// is a shorthand for this. +//---------------------------------------------------------------------- + // standard 2-d indirect indexing +#define PA(i,d) (pa[pidx[(i)]][(d)]) + // accessing a single point +#define PP(i) (pa[pidx[(i)]]) + +//---------------------------------------------------------------------- +// annAspectRatio +// Compute the aspect ratio (ratio of longest to shortest side) +// of a rectangle. +//---------------------------------------------------------------------- + +double annAspectRatio( + int dim, // dimension + const ANNorthRect &bnd_box) // bounding cube +{ + ANNcoord length = bnd_box.hi[0] - bnd_box.lo[0]; + ANNcoord min_length = length; // min side length + ANNcoord max_length = length; // max side length + for (int d = 0; d < dim; d++) { + length = bnd_box.hi[d] - bnd_box.lo[d]; + if (length < min_length) min_length = length; + if (length > max_length) max_length = length; + } + return max_length/min_length; +} + +//---------------------------------------------------------------------- +// annEnclRect, annEnclCube +// These utilities compute the smallest rectangle and cube enclosing +// a set of points, respectively. +//---------------------------------------------------------------------- + +void annEnclRect( + ANNpointArray pa, // point array + ANNidxArray pidx, // point indices + int n, // number of points + int dim, // dimension + ANNorthRect &bnds) // bounding cube (returned) +{ + for (int d = 0; d < dim; d++) { // find smallest enclosing rectangle + ANNcoord lo_bnd = PA(0,d); // lower bound on dimension d + ANNcoord hi_bnd = PA(0,d); // upper bound on dimension d + for (int i = 0; i < n; i++) { + if (PA(i,d) < lo_bnd) lo_bnd = PA(i,d); + else if (PA(i,d) > hi_bnd) hi_bnd = PA(i,d); + } + bnds.lo[d] = lo_bnd; + bnds.hi[d] = hi_bnd; + } +} + +void annEnclCube( // compute smallest enclosing cube + ANNpointArray pa, // point array + ANNidxArray pidx, // point indices + int n, // number of points + int dim, // dimension + ANNorthRect &bnds) // bounding cube (returned) +{ + int d; + // compute smallest enclosing rect + annEnclRect(pa, pidx, n, dim, bnds); + + ANNcoord max_len = 0; // max length of any side + for (d = 0; d < dim; d++) { // determine max side length + ANNcoord len = bnds.hi[d] - bnds.lo[d]; + if (len > max_len) { // update max_len if longest + max_len = len; + } + } + for (d = 0; d < dim; d++) { // grow sides to match max + ANNcoord len = bnds.hi[d] - bnds.lo[d]; + ANNcoord half_diff = (max_len - len) / 2; + bnds.lo[d] -= half_diff; + bnds.hi[d] += half_diff; + } +} + +//---------------------------------------------------------------------- +// annBoxDistance - utility routine which computes distance from point to +// box (Note: most distances to boxes are computed using incremental +// distance updates, not this function.) +//---------------------------------------------------------------------- + +ANNdist annBoxDistance( // compute distance from point to box + const ANNpoint q, // the point + const ANNpoint lo, // low point of box + const ANNpoint hi, // high point of box + int dim) // dimension of space +{ + register ANNdist dist = 0.0; // sum of squared distances + register ANNdist t; + + for (register int d = 0; d < dim; d++) { + if (q[d] < lo[d]) { // q is left of box + t = ANNdist(lo[d]) - ANNdist(q[d]); + dist = ANN_SUM(dist, ANN_POW(t)); + } + else if (q[d] > hi[d]) { // q is right of box + t = ANNdist(q[d]) - ANNdist(hi[d]); + dist = ANN_SUM(dist, ANN_POW(t)); + } + } + ANN_FLOP(4*dim) // increment floating op count + + return dist; +} + +//---------------------------------------------------------------------- +// annSpread - find spread along given dimension +// annMinMax - find min and max coordinates along given dimension +// annMaxSpread - find dimension of max spread +//---------------------------------------------------------------------- + +ANNcoord annSpread( // compute point spread along dimension + ANNpointArray pa, // point array + ANNidxArray pidx, // point indices + int n, // number of points + int d) // dimension to check +{ + ANNcoord min = PA(0,d); // compute max and min coords + ANNcoord max = PA(0,d); + for (int i = 1; i < n; i++) { + ANNcoord c = PA(i,d); + if (c < min) min = c; + else if (c > max) max = c; + } + return (max - min); // total spread is difference +} + +void annMinMax( // compute min and max coordinates along dim + ANNpointArray pa, // point array + ANNidxArray pidx, // point indices + int n, // number of points + int d, // dimension to check + ANNcoord &min, // minimum value (returned) + ANNcoord &max) // maximum value (returned) +{ + min = PA(0,d); // compute max and min coords + max = PA(0,d); + for (int i = 1; i < n; i++) { + ANNcoord c = PA(i,d); + if (c < min) min = c; + else if (c > max) max = c; + } +} + +int annMaxSpread( // compute dimension of max spread + ANNpointArray pa, // point array + ANNidxArray pidx, // point indices + int n, // number of points + int dim) // dimension of space +{ + int max_dim = 0; // dimension of max spread + ANNcoord max_spr = 0; // amount of max spread + + if (n == 0) return max_dim; // no points, who cares? + + for (int d = 0; d < dim; d++) { // compute spread along each dim + ANNcoord spr = annSpread(pa, pidx, n, d); + if (spr > max_spr) { // bigger than current max + max_spr = spr; + max_dim = d; + } + } + return max_dim; +} + +//---------------------------------------------------------------------- +// annMedianSplit - split point array about its median +// Splits a subarray of points pa[0..n] about an element of given +// rank (median: n_lo = n/2) with respect to dimension d. It places +// the element of rank n_lo-1 correctly (because our splitting rule +// takes the mean of these two). On exit, the array is permuted so +// that: +// +// pa[0..n_lo-2][d] <= pa[n_lo-1][d] <= pa[n_lo][d] <= pa[n_lo+1..n-1][d]. +// +// The mean of pa[n_lo-1][d] and pa[n_lo][d] is returned as the +// splitting value. +// +// All indexing is done indirectly through the index array pidx. +// +// This function uses the well known selection algorithm due to +// C.A.R. Hoare. +//---------------------------------------------------------------------- + + // swap two points in pa array +#define PASWAP(a,b) { int tmp = pidx[a]; pidx[a] = pidx[b]; pidx[b] = tmp; } + +void annMedianSplit( + ANNpointArray pa, // points to split + ANNidxArray pidx, // point indices + int n, // number of points + int d, // dimension along which to split + ANNcoord &cv, // cutting value + int n_lo) // split into n_lo and n-n_lo +{ + int l = 0; // left end of current subarray + int r = n-1; // right end of current subarray + while (l < r) { + register int i = (r+l)/2; // select middle as pivot + register int k; + + if (PA(i,d) > PA(r,d)) // make sure last > pivot + PASWAP(i,r) + PASWAP(l,i); // move pivot to first position + + ANNcoord c = PA(l,d); // pivot value + i = l; + k = r; + for(;;) { // pivot about c + while (PA(++i,d) < c) ; + while (PA(--k,d) > c) ; + if (i < k) PASWAP(i,k) else break; + } + PASWAP(l,k); // pivot winds up in location k + + if (k > n_lo) r = k-1; // recurse on proper subarray + else if (k < n_lo) l = k+1; + else break; // got the median exactly + } + if (n_lo > 0) { // search for next smaller item + ANNcoord c = PA(0,d); // candidate for max + int k = 0; // candidate's index + for (int i = 1; i < n_lo; i++) { + if (PA(i,d) > c) { + c = PA(i,d); + k = i; + } + } + PASWAP(n_lo-1, k); // max among pa[0..n_lo-1] to pa[n_lo-1] + } + // cut value is midpoint value + cv = (PA(n_lo-1,d) + PA(n_lo,d))/2.0; +} + +//---------------------------------------------------------------------- +// annPlaneSplit - split point array about a cutting plane +// Split the points in an array about a given plane along a +// given cutting dimension. On exit, br1 and br2 are set so +// that: +// +// pa[ 0 ..br1-1] < cv +// pa[br1..br2-1] == cv +// pa[br2.. n -1] > cv +// +// All indexing is done indirectly through the index array pidx. +// +//---------------------------------------------------------------------- + +void annPlaneSplit( // split points by a plane + ANNpointArray pa, // points to split + ANNidxArray pidx, // point indices + int n, // number of points + int d, // dimension along which to split + ANNcoord cv, // cutting value + int &br1, // first break (values < cv) + int &br2) // second break (values == cv) +{ + int l = 0; + int r = n-1; + for(;;) { // partition pa[0..n-1] about cv + while (l < n && PA(l,d) < cv) l++; + while (r >= 0 && PA(r,d) >= cv) r--; + if (l > r) break; + PASWAP(l,r); + l++; r--; + } + br1 = l; // now: pa[0..br1-1] < cv <= pa[br1..n-1] + r = n-1; + for(;;) { // partition pa[br1..n-1] about cv + while (l < n && PA(l,d) <= cv) l++; + while (r >= br1 && PA(r,d) > cv) r--; + if (l > r) break; + PASWAP(l,r); + l++; r--; + } + br2 = l; // now: pa[br1..br2-1] == cv < pa[br2..n-1] +} + + +//---------------------------------------------------------------------- +// annBoxSplit - split point array about a orthogonal rectangle +// Split the points in an array about a given orthogonal +// rectangle. On exit, n_in is set to the number of points +// that are inside (or on the boundary of) the rectangle. +// +// All indexing is done indirectly through the index array pidx. +// +//---------------------------------------------------------------------- + +void annBoxSplit( // split points by a box + ANNpointArray pa, // points to split + ANNidxArray pidx, // point indices + int n, // number of points + int dim, // dimension of space + ANNorthRect &box, // the box + int &n_in) // number of points inside (returned) +{ + int l = 0; + int r = n-1; + for(;;) { // partition pa[0..n-1] about box + while (l < n && box.inside(dim, PP(l))) l++; + while (r >= 0 && !box.inside(dim, PP(r))) r--; + if (l > r) break; + PASWAP(l,r); + l++; r--; + } + n_in = l; // now: pa[0..n_in-1] inside and rest outside +} + +//---------------------------------------------------------------------- +// annSplitBalance - compute balance factor for a given plane split +// Balance factor is defined as the number of points lying +// below the splitting value minus n/2 (median). Thus, a +// median split has balance 0, left of this is negative and +// right of this is positive. (The points are unchanged.) +//---------------------------------------------------------------------- + +int annSplitBalance( // determine balance factor of a split + ANNpointArray pa, // points to split + ANNidxArray pidx, // point indices + int n, // number of points + int d, // dimension along which to split + ANNcoord cv) // cutting value +{ + int n_lo = 0; + for(int i = 0; i < n; i++) { // count number less than cv + if (PA(i,d) < cv) n_lo++; + } + return n_lo - n/2; +} + +//---------------------------------------------------------------------- +// annBox2Bnds - convert bounding box to list of bounds +// Given two boxes, an inner box enclosed within a bounding +// box, this routine determines all the sides for which the +// inner box is strictly contained with the bounding box, +// and adds an appropriate entry to a list of bounds. Then +// we allocate storage for the final list of bounds, and return +// the resulting list and its size. +//---------------------------------------------------------------------- + +void annBox2Bnds( // convert inner box to bounds + const ANNorthRect &inner_box, // inner box + const ANNorthRect &bnd_box, // enclosing box + int dim, // dimension of space + int &n_bnds, // number of bounds (returned) + ANNorthHSArray &bnds) // bounds array (returned) +{ + int i; + n_bnds = 0; // count number of bounds + for (i = 0; i < dim; i++) { + if (inner_box.lo[i] > bnd_box.lo[i]) // low bound is inside + n_bnds++; + if (inner_box.hi[i] < bnd_box.hi[i]) // high bound is inside + n_bnds++; + } + + bnds = new ANNorthHalfSpace[n_bnds]; // allocate appropriate size + + int j = 0; + for (i = 0; i < dim; i++) { // fill the array + if (inner_box.lo[i] > bnd_box.lo[i]) { + bnds[j].cd = i; + bnds[j].cv = inner_box.lo[i]; + bnds[j].sd = +1; + j++; + } + if (inner_box.hi[i] < bnd_box.hi[i]) { + bnds[j].cd = i; + bnds[j].cv = inner_box.hi[i]; + bnds[j].sd = -1; + j++; + } + } +} + +//---------------------------------------------------------------------- +// annBnds2Box - convert list of bounds to bounding box +// Given an enclosing box and a list of bounds, this routine +// computes the corresponding inner box. It is assumed that +// the box points have been allocated already. +//---------------------------------------------------------------------- + +void annBnds2Box( + const ANNorthRect &bnd_box, // enclosing box + int dim, // dimension of space + int n_bnds, // number of bounds + ANNorthHSArray bnds, // bounds array + ANNorthRect &inner_box) // inner box (returned) +{ + annAssignRect(dim, inner_box, bnd_box); // copy bounding box to inner + + for (int i = 0; i < n_bnds; i++) { + bnds[i].project(inner_box.lo); // project each endpoint + bnds[i].project(inner_box.hi); + } +} diff --git a/3rdparty/ann_1.1.1_modified/src/kd_util.h b/3rdparty/ann_1.1.1_modified/src/kd_util.h new file mode 100755 index 0000000..6b43430 --- /dev/null +++ b/3rdparty/ann_1.1.1_modified/src/kd_util.h @@ -0,0 +1,124 @@ +//---------------------------------------------------------------------- +// File: kd_util.h +// Programmer: Sunil Arya and David Mount +// Description: Common utilities for kd- trees +// Last modified: 01/04/05 (Version 1.0) +//---------------------------------------------------------------------- +// Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +// David Mount. All Rights Reserved. +// +// This software and related documentation is part of the Approximate +// Nearest Neighbor Library (ANN). This software is provided under +// the provisions of the Lesser GNU Public License (LGPL). See the +// file ../ReadMe.txt for further information. +// +// The University of Maryland (U.M.) and the authors make no +// representations about the suitability or fitness of this software for +// any purpose. It is provided "as is" without express or implied +// warranty. +//---------------------------------------------------------------------- +// History: +// Revision 0.1 03/04/98 +// Initial release +//---------------------------------------------------------------------- + +#ifndef ANN_kd_util_H +#define ANN_kd_util_H + +#include "kd_tree.h" // kd-tree declarations + +//---------------------------------------------------------------------- +// externally accessible functions +//---------------------------------------------------------------------- + +double annAspectRatio( // compute aspect ratio of box + int dim, // dimension + const ANNorthRect &bnd_box); // bounding cube + +void annEnclRect( // compute smallest enclosing rectangle + ANNpointArray pa, // point array + ANNidxArray pidx, // point indices + int n, // number of points + int dim, // dimension + ANNorthRect &bnds); // bounding cube (returned) + +void annEnclCube( // compute smallest enclosing cube + ANNpointArray pa, // point array + ANNidxArray pidx, // point indices + int n, // number of points + int dim, // dimension + ANNorthRect &bnds); // bounding cube (returned) + +ANNdist annBoxDistance( // compute distance from point to box + const ANNpoint q, // the point + const ANNpoint lo, // low point of box + const ANNpoint hi, // high point of box + int dim); // dimension of space + +ANNcoord annSpread( // compute point spread along dimension + ANNpointArray pa, // point array + ANNidxArray pidx, // point indices + int n, // number of points + int d); // dimension to check + +void annMinMax( // compute min and max coordinates along dim + ANNpointArray pa, // point array + ANNidxArray pidx, // point indices + int n, // number of points + int d, // dimension to check + ANNcoord& min, // minimum value (returned) + ANNcoord& max); // maximum value (returned) + +int annMaxSpread( // compute dimension of max spread + ANNpointArray pa, // point array + ANNidxArray pidx, // point indices + int n, // number of points + int dim); // dimension of space + +void annMedianSplit( // split points along median value + ANNpointArray pa, // points to split + ANNidxArray pidx, // point indices + int n, // number of points + int d, // dimension along which to split + ANNcoord &cv, // cutting value + int n_lo); // split into n_lo and n-n_lo + +void annPlaneSplit( // split points by a plane + ANNpointArray pa, // points to split + ANNidxArray pidx, // point indices + int n, // number of points + int d, // dimension along which to split + ANNcoord cv, // cutting value + int &br1, // first break (values < cv) + int &br2); // second break (values == cv) + +void annBoxSplit( // split points by a box + ANNpointArray pa, // points to split + ANNidxArray pidx, // point indices + int n, // number of points + int dim, // dimension of space + ANNorthRect &box, // the box + int &n_in); // number of points inside (returned) + +int annSplitBalance( // determine balance factor of a split + ANNpointArray pa, // points to split + ANNidxArray pidx, // point indices + int n, // number of points + int d, // dimension along which to split + ANNcoord cv); // cutting value + +void annBox2Bnds( // convert inner box to bounds + const ANNorthRect &inner_box, // inner box + const ANNorthRect &bnd_box, // enclosing box + int dim, // dimension of space + int &n_bnds, // number of bounds (returned) + ANNorthHSArray &bnds); // bounds array (returned) + +void annBnds2Box( // convert bounds to inner box + const ANNorthRect &bnd_box, // enclosing box + int dim, // dimension of space + int n_bnds, // number of bounds + ANNorthHSArray bnds, // bounds array + ANNorthRect &inner_box); // inner box (returned) + +#endif diff --git a/3rdparty/ann_1.1.1_modified/src/perf.cpp b/3rdparty/ann_1.1.1_modified/src/perf.cpp new file mode 100755 index 0000000..91bb044 --- /dev/null +++ b/3rdparty/ann_1.1.1_modified/src/perf.cpp @@ -0,0 +1,134 @@ +//---------------------------------------------------------------------- +// File: perf.cpp +// Programmer: Sunil Arya and David Mount +// Description: Methods for performance stats +// Last modified: 01/04/05 (Version 1.0) +//---------------------------------------------------------------------- +// Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +// David Mount. All Rights Reserved. +// +// This software and related documentation is part of the Approximate +// Nearest Neighbor Library (ANN). This software is provided under +// the provisions of the Lesser GNU Public License (LGPL). See the +// file ../ReadMe.txt for further information. +// +// The University of Maryland (U.M.) and the authors make no +// representations about the suitability or fitness of this software for +// any purpose. It is provided "as is" without express or implied +// warranty. +//---------------------------------------------------------------------- +// History: +// Revision 0.1 03/04/98 +// Initial release +// Revision 1.0 04/01/05 +// Changed names to avoid namespace conflicts. +// Added flush after printing performance stats to fix bug +// in Microsoft Windows version. +//---------------------------------------------------------------------- + +#include // basic ANN includes +#include // performance includes + +using namespace std; // make std:: available + +//---------------------------------------------------------------------- +// Performance statistics +// The following data and routines are used for computing +// performance statistics for nearest neighbor searching. +// Because these routines can slow the code down, they can be +// activated and deactiviated by defining the PERF variable, +// by compiling with the option: -DPERF +//---------------------------------------------------------------------- + +//---------------------------------------------------------------------- +// Global counters for performance measurement +//---------------------------------------------------------------------- + +int ann_Ndata_pts = 0; // number of data points +int ann_Nvisit_lfs = 0; // number of leaf nodes visited +int ann_Nvisit_spl = 0; // number of splitting nodes visited +int ann_Nvisit_shr = 0; // number of shrinking nodes visited +int ann_Nvisit_pts = 0; // visited points for one query +int ann_Ncoord_hts = 0; // coordinate hits for one query +int ann_Nfloat_ops = 0; // floating ops for one query +ANNsampStat ann_visit_lfs; // stats on leaf nodes visits +ANNsampStat ann_visit_spl; // stats on splitting nodes visits +ANNsampStat ann_visit_shr; // stats on shrinking nodes visits +ANNsampStat ann_visit_nds; // stats on total nodes visits +ANNsampStat ann_visit_pts; // stats on points visited +ANNsampStat ann_coord_hts; // stats on coordinate hits +ANNsampStat ann_float_ops; // stats on floating ops +// +ANNsampStat ann_average_err; // average error +ANNsampStat ann_rank_err; // rank error + +//---------------------------------------------------------------------- +// Routines for statistics. +//---------------------------------------------------------------------- + +DLL_API void annResetStats(int data_size) // reset stats for a set of queries +{ + ann_Ndata_pts = data_size; + ann_visit_lfs.reset(); + ann_visit_spl.reset(); + ann_visit_shr.reset(); + ann_visit_nds.reset(); + ann_visit_pts.reset(); + ann_coord_hts.reset(); + ann_float_ops.reset(); + ann_average_err.reset(); + ann_rank_err.reset(); +} + +DLL_API void annResetCounts() // reset counts for one query +{ + ann_Nvisit_lfs = 0; + ann_Nvisit_spl = 0; + ann_Nvisit_shr = 0; + ann_Nvisit_pts = 0; + ann_Ncoord_hts = 0; + ann_Nfloat_ops = 0; +} + +DLL_API void annUpdateStats() // update stats with current counts +{ + ann_visit_lfs += ann_Nvisit_lfs; + ann_visit_nds += ann_Nvisit_spl + ann_Nvisit_lfs; + ann_visit_spl += ann_Nvisit_spl; + ann_visit_shr += ann_Nvisit_shr; + ann_visit_pts += ann_Nvisit_pts; + ann_coord_hts += ann_Ncoord_hts; + ann_float_ops += ann_Nfloat_ops; +} + + // print a single statistic +void print_one_stat(char *title, ANNsampStat s, double div) +{ + cout << title << "= [ "; + cout.width(9); cout << s.mean()/div << " : "; + cout.width(9); cout << s.stdDev()/div << " ]<"; + cout.width(9); cout << s.min()/div << " , "; + cout.width(9); cout << s.max()/div << " >\n"; +} + +DLL_API void annPrintStats( // print statistics for a run + ANNbool validate) // true if average errors desired +{ + cout.precision(4); // set floating precision + cout << " (Performance stats: " + << " [ mean : stddev ]< min , max >\n"; + print_one_stat(" leaf_nodes ", ann_visit_lfs, 1); + print_one_stat(" splitting_nodes ", ann_visit_spl, 1); + print_one_stat(" shrinking_nodes ", ann_visit_shr, 1); + print_one_stat(" total_nodes ", ann_visit_nds, 1); + print_one_stat(" points_visited ", ann_visit_pts, 1); + print_one_stat(" coord_hits/pt ", ann_coord_hts, ann_Ndata_pts); + print_one_stat(" floating_ops_(K) ", ann_float_ops, 1000); + if (validate) { + print_one_stat(" average_error ", ann_average_err, 1); + print_one_stat(" rank_error ", ann_rank_err, 1); + } + cout.precision(0); // restore the default + cout << " )\n"; + cout.flush(); +} diff --git a/3rdparty/ann_1.1.1_modified/src/pr_queue.h b/3rdparty/ann_1.1.1_modified/src/pr_queue.h new file mode 100755 index 0000000..3f4b75c --- /dev/null +++ b/3rdparty/ann_1.1.1_modified/src/pr_queue.h @@ -0,0 +1,125 @@ +//---------------------------------------------------------------------- +// File: pr_queue.h +// Programmer: Sunil Arya and David Mount +// Description: Include file for priority queue and related +// structures. +// Last modified: 01/04/05 (Version 1.0) +//---------------------------------------------------------------------- +// Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +// David Mount. All Rights Reserved. +// +// This software and related documentation is part of the Approximate +// Nearest Neighbor Library (ANN). This software is provided under +// the provisions of the Lesser GNU Public License (LGPL). See the +// file ../ReadMe.txt for further information. +// +// The University of Maryland (U.M.) and the authors make no +// representations about the suitability or fitness of this software for +// any purpose. It is provided "as is" without express or implied +// warranty. +//---------------------------------------------------------------------- +// History: +// Revision 0.1 03/04/98 +// Initial release +//---------------------------------------------------------------------- + +#ifndef PR_QUEUE_H +#define PR_QUEUE_H + +#include // all ANN includes +#include // performance evaluation + +//---------------------------------------------------------------------- +// Basic types. +//---------------------------------------------------------------------- +typedef void *PQinfo; // info field is generic pointer +typedef ANNdist PQkey; // key field is distance + +//---------------------------------------------------------------------- +// Priority queue +// A priority queue is a list of items, along with associated +// priorities. The basic operations are insert and extract_minimum. +// +// The priority queue is maintained using a standard binary heap. +// (Implementation note: Indexing is performed from [1..max] rather +// than the C standard of [0..max-1]. This simplifies parent/child +// computations.) User information consists of a void pointer, +// and the user is responsible for casting this quantity into whatever +// useful form is desired. +// +// Because the priority queue is so central to the efficiency of +// query processing, all the code is inline. +//---------------------------------------------------------------------- + +class ANNpr_queue { + + struct pq_node { // node in priority queue + PQkey key; // key value + PQinfo info; // info field + }; + int n; // number of items in queue + int max_size; // maximum queue size + pq_node *pq; // the priority queue (array of nodes) + +public: + ANNpr_queue(int max) // constructor (given max size) + { + n = 0; // initially empty + max_size = max; // maximum number of items + pq = new pq_node[max+1]; // queue is array [1..max] of nodes + } + + ~ANNpr_queue() // destructor + { delete [] pq; } + + ANNbool empty() // is queue empty? + { if (n==0) return ANNtrue; else return ANNfalse; } + + ANNbool non_empty() // is queue nonempty? + { if (n==0) return ANNfalse; else return ANNtrue; } + + void reset() // make existing queue empty + { n = 0; } + + inline void insert( // insert item (inlined for speed) + PQkey kv, // key value + PQinfo inf) // item info + { + if (++n > max_size) annError("Priority queue overflow.", ANNabort); + register int r = n; + while (r > 1) { // sift up new item + register int p = r/2; + ANN_FLOP(1) // increment floating ops + if (pq[p].key <= kv) // in proper order + break; + pq[r] = pq[p]; // else swap with parent + r = p; + } + pq[r].key = kv; // insert new item at final location + pq[r].info = inf; + } + + inline void extr_min( // extract minimum (inlined for speed) + PQkey &kv, // key (returned) + PQinfo &inf) // item info (returned) + { + kv = pq[1].key; // key of min item + inf = pq[1].info; // information of min item + register PQkey kn = pq[n--].key;// last item in queue + register int p = 1; // p points to item out of position + register int r = p<<1; // left child of p + while (r <= n) { // while r is still within the heap + ANN_FLOP(2) // increment floating ops + // set r to smaller child of p + if (r < n && pq[r].key > pq[r+1].key) r++; + if (kn <= pq[r].key) // in proper order + break; + pq[p] = pq[r]; // else swap with child + p = r; // advance pointers + r = p<<1; + } + pq[p] = pq[n+1]; // insert last item in proper place + } +}; + +#endif diff --git a/3rdparty/ann_1.1.1_modified/src/pr_queue_k.h b/3rdparty/ann_1.1.1_modified/src/pr_queue_k.h new file mode 100755 index 0000000..c2f01c3 --- /dev/null +++ b/3rdparty/ann_1.1.1_modified/src/pr_queue_k.h @@ -0,0 +1,118 @@ +//---------------------------------------------------------------------- +// File: pr_queue_k.h +// Programmer: Sunil Arya and David Mount +// Description: Include file for priority queue with k items. +// Last modified: 01/04/05 (Version 1.0) +//---------------------------------------------------------------------- +// Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +// David Mount. All Rights Reserved. +// +// This software and related documentation is part of the Approximate +// Nearest Neighbor Library (ANN). This software is provided under +// the provisions of the Lesser GNU Public License (LGPL). See the +// file ../ReadMe.txt for further information. +// +// The University of Maryland (U.M.) and the authors make no +// representations about the suitability or fitness of this software for +// any purpose. It is provided "as is" without express or implied +// warranty. +//---------------------------------------------------------------------- +// History: +// Revision 0.1 03/04/98 +// Initial release +//---------------------------------------------------------------------- + +#ifndef PR_QUEUE_K_H +#define PR_QUEUE_K_H + +#include // all ANN includes +#include // performance evaluation + +//---------------------------------------------------------------------- +// Basic types +//---------------------------------------------------------------------- +typedef ANNdist PQKkey; // key field is distance +typedef int PQKinfo; // info field is int + +//---------------------------------------------------------------------- +// Constants +// The NULL key value is used to initialize the priority queue, and +// so it should be larger than any valid distance, so that it will +// be replaced as legal distance values are inserted. The NULL +// info value must be a nonvalid array index, we use ANN_NULL_IDX, +// which is guaranteed to be negative. +//---------------------------------------------------------------------- + +const PQKkey PQ_NULL_KEY = ANN_DIST_INF; // nonexistent key value +const PQKinfo PQ_NULL_INFO = ANN_NULL_IDX; // nonexistent info value + +//---------------------------------------------------------------------- +// ANNmin_k +// An ANNmin_k structure is one which maintains the smallest +// k values (of type PQKkey) and associated information (of type +// PQKinfo). The special info and key values PQ_NULL_INFO and +// PQ_NULL_KEY means that thise entry is empty. +// +// It is currently implemented using an array with k items. +// Items are stored in increasing sorted order, and insertions +// are made through standard insertion sort. (This is quite +// inefficient, but current applications call for small values +// of k and relatively few insertions.) +// +// Note that the list contains k+1 entries, but the last entry +// is used as a simple placeholder and is otherwise ignored. +//---------------------------------------------------------------------- + +class ANNmin_k { + struct mk_node { // node in min_k structure + PQKkey key; // key value + PQKinfo info; // info field (user defined) + }; + + int k; // max number of keys to store + int n; // number of keys currently active + mk_node *mk; // the list itself + +public: + ANNmin_k(int max) // constructor (given max size) + { + n = 0; // initially no items + k = max; // maximum number of items + mk = new mk_node[max+1]; // sorted array of keys + } + + ~ANNmin_k() // destructor + { delete [] mk; } + + PQKkey ANNmin_key() // return minimum key + { return (n > 0 ? mk[0].key : PQ_NULL_KEY); } + + PQKkey max_key() // return maximum key + { return (n == k ? mk[k-1].key : PQ_NULL_KEY); } + + PQKkey ith_smallest_key(int i) // ith smallest key (i in [0..n-1]) + { return (i < n ? mk[i].key : PQ_NULL_KEY); } + + PQKinfo ith_smallest_info(int i) // info for ith smallest (i in [0..n-1]) + { return (i < n ? mk[i].info : PQ_NULL_INFO); } + + inline void insert( // insert item (inlined for speed) + PQKkey kv, // key value + PQKinfo inf) // item info + { + register int i; + // slide larger values up + for (i = n; i > 0; i--) { + if (mk[i-1].key > kv) + mk[i] = mk[i-1]; + else + break; + } + mk[i].key = kv; // store element here + mk[i].info = inf; + if (n < k) n++; // increment number of items + ANN_FLOP(k-i+1) // increment floating ops + } +}; + +#endif diff --git a/3rdparty/ann_1.1.1_modified/test/Makefile b/3rdparty/ann_1.1.1_modified/test/Makefile new file mode 100755 index 0000000..c3e0233 --- /dev/null +++ b/3rdparty/ann_1.1.1_modified/test/Makefile @@ -0,0 +1,96 @@ +#----------------------------------------------------------------------------- +# Makefile for the test and evaluation program +# +# ANN: Approximate Nearest Neighbors +# Version: 1.1.1 08/04/06 +#----------------------------------------------------------------------------- +# Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +# David Mount. All Rights Reserved. +# +# This software and related documentation is part of the Approximate +# Nearest Neighbor Library (ANN). This software is provided under +# the provisions of the Lesser GNU Public License (LGPL). See the +# file ../ReadMe.txt for further information. +# +# The University of Maryland (U.M.) and the authors make no +# representations about the suitability or fitness of this software for +# any purpose. It is provided "as is" without express or implied +# warranty. +#----------------------------------------------------------------------------- +# Revision 0.1 03/04/98 +# Initial release +# Revision 1.1.1 08/04/06 +# Added copyright/license +#----------------------------------------------------------------------------- +# Note: For full performance measurements, it is assumed that the library +# and this program have both been compiled with the -DANN_PERF flag. See +# the Makefile in the ANN base directory for this flag. +#----------------------------------------------------------------------------- + +#----------------------------------------------------------------------------- +# Basic definitions +# BASEDIR where include, src, lib, ... are +# INCDIR include directory +# LIBDIR library directory +# BINDIR bin directory +# LDFLAGS loader flags +# ANNLIBS ANN library +# OTHERLIBS other libraries +#----------------------------------------------------------------------------- + +BASEDIR = .. +INCDIR = $(BASEDIR)/include +LIBDIR = $(BASEDIR)/lib +BINDIR = $(BASEDIR)/bin +LDFLAGS = -L$(LIBDIR) +ANNLIBS = -lANN +OTHERLIBS = -lm + +#----------------------------------------------------------------------------- +# Some more definitions +# ANNTEST name of test program +#----------------------------------------------------------------------------- + +ANNTEST = ann_test + +HEADERS = rand.h +TESTSOURCES = ann_test.cpp rand.cpp +TESTOBJECTS = $(TESTSOURCES:.cpp=.o) + +#----------------------------------------------------------------------------- +# Make the program +#----------------------------------------------------------------------------- + +default: + @echo "Specify a target configuration" + +targets: $(BINDIR)/$(ANNTEST) + +$(BINDIR)/$(ANNTEST): $(TESTOBJECTS) $(LIBDIR)/$(ANNLIB) + $(C++) $(TESTOBJECTS) -o $(ANNTEST) $(LDFLAGS) $(ANNLIBS) $(OTHERLIBS) + mv $(ANNTEST) $(BINDIR) + +#----------------------------------------------------------------------------- +# configuration definitions +#----------------------------------------------------------------------------- + +include ../Make-config + +#----------------------------------------------------------------------------- +# Objects +#----------------------------------------------------------------------------- + +ann_test.o: ann_test.cpp + $(C++) -c -I$(INCDIR) $(CFLAGS) ann_test.cpp + +rand.o: rand.cpp + $(C++) -c -I$(INCDIR) $(CFLAGS) rand.cpp + +#----------------------------------------------------------------------------- +# Cleaning +#----------------------------------------------------------------------------- + +clean: + -rm -f *.o *.out core + +realclean: clean diff --git a/3rdparty/ann_1.1.1_modified/test/ann_test.cpp b/3rdparty/ann_1.1.1_modified/test/ann_test.cpp new file mode 100755 index 0000000..7bee44d --- /dev/null +++ b/3rdparty/ann_1.1.1_modified/test/ann_test.cpp @@ -0,0 +1,1640 @@ +//---------------------------------------------------------------------- +// File: ann_test.cpp +// Programmer: Sunil Arya and David Mount +// Description: test program for ANN (approximate nearest neighbors) +// Last modified: 08/04/06 (Version 1.1.1) +//---------------------------------------------------------------------- +// Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +// David Mount. All Rights Reserved. +// +// This software and related documentation is part of the Approximate +// Nearest Neighbor Library (ANN). This software is provided under +// the provisions of the Lesser GNU Public License (LGPL). See the +// file ../ReadMe.txt for further information. +// +// The University of Maryland (U.M.) and the authors make no +// representations about the suitability or fitness of this software for +// any purpose. It is provided "as is" without express or implied +// warranty. +//---------------------------------------------------------------------- +// History: +// Revision 0.1 03/04/98 +// Initial release +// Revision 0.2 06/26/98 +// Added CLOCKS_PER_SEC definition if needed +// Revision 1.0 04/01/05 +// Added comments (from "#" to eol) +// Added clus_orth_flats and clus_ellipsoids distributions +// Fixed order of fair and midpt in split_table +// Added dump/load operations +// Cleaned up C++ for modern compilers +// Revision 1.1 05/03/05 +// Added fixed radius kNN search +// Revision 1.1.1 08/04/06 +// Added planted distribution +//---------------------------------------------------------------------- + +#include // clock +#include // math routines +#include // C string ops +#include // file I/O + +#include // ANN declarations +#include // more ANN declarations +#include // performance evaluation + +#include "rand.h" // random point generation + +#ifndef CLOCKS_PER_SEC // define clocks-per-second if needed + #define CLOCKS_PER_SEC 1000000 +#endif + +using namespace std; // make std:: available + +//---------------------------------------------------------------------- +// ann_test +// +// This program is a driver for testing and evaluating the ANN library +// for computing approximate nearest neighbors. It allows the user to +// generate data and query sets of various sizes, dimensions, and +// distributions, to build kd- and bbd-trees of various types, and then +// run queries and outputting various performance statistics. +// +// Overview: +// --------- +// The test program is run as follows: +// +// ann_test < test_input > test_output +// +// where the test_input file contains a list of directives as described +// below. Directives consist of a directive name, followed by list of +// arguments (depending on the directive). Arguments and directives are +// separated by white space (blank, tab, and newline). String arguments +// are not quoted, and consist of a string of nonwhite chacters. A +// character "#" denotes a comment. The following characters up to +// the end of line are ignored. Comments may only be inserted between +// directives (not within the argument list of a directive). +// +// Basic operations: +// ----------------- +// The test program can perform the following operations. How these +// operations are performed depends on the options which are described +// later. +// +// Data Generation: +// ---------------- +// read_data_pts Create a set of data points whose +// coordinates are input from file . +// gen_data_pts Create a set of data points whose +// coordinates are generated from the +// current point distribution. +// +// Building the tree: +// ------------------ +// build_ann Generate an approximate nearest neighbor +// structure for the current data set, using +// the selected splitting rules. Any existing +// tree will be destroyed. +// +// Query Generation/Searching: +// --------------------------- +// read_query_pts Create a set of query points whose +// coordinates are input from file . +// gen_query_pts Create a set of query points whose +// coordinates are generated from the +// current point distribution. +// run_queries Apply nearest neighbor searching to the +// query points using the approximate nearest +// neighbor structure and the given search +// strategy. Possible strategies are: +// standard = standard kd-tree search +// priority = priority search +// +// Miscellaneous: +// -------------- +// output_label Output a label to the output file. +// dump Dump the current structure to given file. +// (The dump format is explained further in +// the source file kd_tree.cc.) +// load Load a tree from a data file which was +// created by the dump operation. Any +// existing tree will be destroyed. +// +// Options: +// -------- +// How these operations are performed depends on a set of options. +// If an option is not specified, a default value is used. An option +// retains its value until it is set again. String inputs are not +// enclosed in quotes, and must contain no embedded white space (sorry, +// this is C++'s convention). +// +// Options affecting search tree structure: +// ---------------------------------------- +// split_rule Type of splitting rule to use in building +// the search tree. Choices are: +// kd = optimized kd-tree +// midpt = midpoint split +// fair = fair split +// sl_midpt = sliding midpt split +// sl_fair = sliding fair split +// suggest = authors' choice for best +// The default is "suggest". See the file +// kd_split.cc for more detailed information. +// +// shrink_rule Type of shrinking rule to use in building +// a bd-tree data structure. If "none" is +// given, then no shrinking is performed and +// the result is a kd-tree. Choices are: +// none = perform no shrinking +// simple = simple shrinking +// centroid = centroid shrinking +// suggest = authors' choice for best +// The default is "none". See the file +// bd_tree.cc for more information. +// bucket_size Bucket size, that is, the maximum number of +// points stored in each leaf node. +// +// Options affecting data and query point generation: +// -------------------------------------------------- +// dim Dimension of space. +// seed Seed for random number generation. +// data_size Number of data points. When reading data +// points from a file, this indicates the +// maximum number of points for storage +// allocation. Default = 100. +// query_size Same as data_size for query points. +// std_dev Standard deviation (used in gauss, +// planted, and clustered distributions). +// This is the "small" distribution for +// clus_ellipsoids. Default = 1. +// std_dev_lo Low and high standard deviations (used in +// std_dev_hi clus_ellipsoids). Default = 1. +// corr_coef Correlation coefficient (used in co-gauss +// and co_lapace distributions). Default = 0.05. +// colors Number of color classes (clusters) (used +// in the clustered distributions). Default = 5. +// new_clust Once generated, cluster centers are not +// normally regenerated. This is so that both +// query points and data points can be generated +// using the same set of clusters. This option +// forces new cluster centers to be generated +// with the next generation of either data or +// query points. +// max_clus_dim Maximum dimension of clusters (used in +// clus_orth_flats and clus_ellipsoids). +// Default = 1. +// distribution Type of input distribution +// uniform = uniform over cube [-1,1]^d. +// gauss = Gaussian with mean 0 +// laplace = Laplacian, mean 0 and var 1 +// co_gauss = correlated Gaussian +// co_laplace = correlated Laplacian +// clus_gauss = clustered Gaussian +// clus_orth_flats = clusters of orth flats +// clus_ellipsoids = clusters of ellipsoids +// planted = planted distribution +// See the file rand.cpp for further information. +// +// Options affecting nearest neighbor search: +// ------------------------------------------ +// epsilon Error bound for approx. near neigh. search. +// near_neigh Number of nearest neighbors to compute. +// max_pts_visit Maximum number of points to visit before +// terminating. (Used in applications where +// real-time performance is important.) +// (Default = 0, which means no limit.) +// radius_bound Sets an upper bound on the nearest +// neighbor search radius. If the bound is +// positive, then fixed-radius nearest +// neighbor searching is performed, and the +// count of the number of points in the +// range is returned. If the bound is +// zero, then standard search is used. +// This can only be used with standard, not +// priority, search. (Default = 0, which +// means standard search.) +// +// Options affection general program behavior: +// ------------------------------------------- +// stats Level of statistics output +// silent = no output, +// exec_time += execution time only +// prep_stats += preprocessing statistics +// query_stats += query performance stats +// query_res += results of queries +// show_pts += show the data points +// show_struct += print search structure +// validate Validate experiment and compute average +// error. Since validation causes exact +// nearest neighbors to be computed by the +// brute force method, this can take a long +// time. Valid arguments are: +// on = turn validation on +// off = turn validation off +// true_near_neigh Number of true nearest neighbors to compute. +// When validating, we compute the difference +// in rank between each reported nearest neighbor +// and the true nearest neighbor of the same +// rank. Thus it is necessary to compute a +// few more true nearest neighbors. By default +// we compute 10 more than near_neigh. With +// this option the exact number can be set. +// (Used only when validating.) +// +// Example: +// -------- +// output_label test_run_0 # output label for this run +// validate off # do not perform validation +// dim 16 # points in dimension 16 +// stats query_stats # output performance statistics for queries +// seed 121212 # random number seed +// data_size 1000 +// distribution uniform +// gen_data_pts # 1000 uniform data points in dim 16 +// query_size 100 +// std_dev 0.05 +// distribution clus_gauss +// gen_query_pts # 100 points in 10 clusters with std_dev 0.05 +// bucket_size 2 +// split_rule kd +// shrink_rule none +// build_ann # kd-tree, bucket size 2 +// epsilon 0.1 +// near_neigh 5 +// max_pts_visit 100 # stop search if more than 100 points seen +// run_queries standard # run queries; 5 nearest neighbors, 10% error +// data_size 500 +// read_data_pts data.in # read up to 500 points from file data.in +// split_rule sl_midpt +// shrink_rule simple +// build_ann # bd-tree; simple shrink, sliding midpoint split +// epsilon 0 +// run_queries priority # run same queries; 0 allowable error +// +//------------------------------------------------------------------------ + +//------------------------------------------------------------------------ +// Constants +//------------------------------------------------------------------------ + +const int STRING_LEN = 500; // max string length +const double ERR = 0.00001; // epsilon (for float compares) + +//------------------------------------------------------------------------ +// Enumerated values and conversions +//------------------------------------------------------------------------ + +typedef enum {DATA, QUERY} PtType; // point types + +//------------------------------------------------------------------------ +// Statistics output levels +//------------------------------------------------------------------------ + +typedef enum { // stat levels + SILENT, // no output + EXEC_TIME, // just execution time + PREP_STATS, // preprocessing info + QUERY_STATS, // query performance + QUERY_RES, // query results + SHOW_PTS, // show data points + SHOW_STRUCT, // show tree structure + N_STAT_LEVELS} // number of levels + StatLev; + +const char stat_table[N_STAT_LEVELS][STRING_LEN] = { + "silent", // SILENT + "exec_time", // EXEC_TIME + "prep_stats", // PREP_STATS + "query_stats", // QUERY_STATS + "query_res", // QUERY_RES + "show_pts", // SHOW_PTS + "show_struct"}; // SHOW_STRUCT + +//------------------------------------------------------------------------ +// Distributions +//------------------------------------------------------------------------ + +typedef enum { // distributions + UNIFORM, // uniform over cube [-1,1]^d. + GAUSS, // Gaussian with mean 0 + LAPLACE, // Laplacian, mean 0 and var 1 + CO_GAUSS, // correlated Gaussian + CO_LAPLACE, // correlated Laplacian + CLUS_GAUSS, // clustered Gaussian + CLUS_ORTH_FLATS, // clustered on orthog flats + CLUS_ELLIPSOIDS, // clustered on ellipsoids + PLANTED, // planted distribution + N_DISTRIBS} + Distrib; + +const char distr_table[N_DISTRIBS][STRING_LEN] = { + "uniform", // UNIFORM + "gauss", // GAUSS + "laplace", // LAPLACE + "co_gauss", // CO_GAUSS + "co_laplace", // CO_LAPLACE + "clus_gauss", // CLUS_GAUSS + "clus_orth_flats", // CLUS_ORTH_FLATS + "clus_ellipsoids", // CLUS_ELLIPSOIS + "planted"}; // PLANTED + +//------------------------------------------------------------------------ +// Splitting rules for kd-trees (see ANN.h for types) +//------------------------------------------------------------------------ + +const int N_SPLIT_RULES = 6; +const char split_table[N_SPLIT_RULES][STRING_LEN] = { + "standard", // standard optimized kd-tree + "midpt", // midpoint split + "fair", // fair split + "sl_midpt", // sliding midpt split + "sl_fair", // sliding fair split + "suggest"}; // authors' choice for best + +//------------------------------------------------------------------------ +// Shrinking rules for bd-trees (see ANN.h for types) +//------------------------------------------------------------------------ + +const int N_SHRINK_RULES = 4; +const char shrink_table[N_SHRINK_RULES][STRING_LEN] = { + "none", // perform no shrinking (kd-tree) + "simple", // simple shrinking + "centroid", // centroid shrinking + "suggest"}; // authors' choice for best + +//---------------------------------------------------------------------- +// Short utility functions +// Error - general error routine +// printPoint - print a point to standard output +// lookUp - look up a name in table and return index +//---------------------------------------------------------------------- + +void Error( // error routine + char *msg, // error message + ANNerr level) // abort afterwards +{ + if (level == ANNabort) { + cerr << "ann_test: ERROR------->" << msg << "<-------------ERROR\n"; + exit(1); + } + else { + cerr << "ann_test: WARNING----->" << msg << "<-------------WARNING\n"; + } +} + +void printPoint( // print point + ANNpoint p, // the point + int dim) // the dimension +{ + cout << "["; + for (int i = 0; i < dim; i++) { + cout << p[i]; + if (i < dim-1) cout << ","; + } + cout << "]"; +} + +int lookUp( // look up name in table + const char *arg, // name to look up + const char (*table)[STRING_LEN], // name table + int size) // table size +{ + int i; + for (i = 0; i < size; i++) { + if (!strcmp(arg, table[i])) return i; + } + return i; +} + +//------------------------------------------------------------------------ +// Function declarations +//------------------------------------------------------------------------ + +void generatePts( // generate data/query points + ANNpointArray &pa, // point array (returned) + int n, // number of points + PtType type, // point type + ANNbool new_clust, // new cluster centers desired? + ANNpointArray src = NULL, // source array (for PLANTED) + int n_src = 0); // source size (for PLANTED) + +void readPts( // read data/query points from file + ANNpointArray &pa, // point array (returned) + int &n, // number of points + char *file_nm, // file name + PtType type); // point type (DATA, QUERY) + +void doValidation(); // perform validation +void getTrueNN(); // compute true nearest neighbors + +void treeStats( // print statistics on kd- or bd-tree + ostream &out, // output stream + ANNbool verbose); // print stats + +//------------------------------------------------------------------------ +// Default execution parameters +//------------------------------------------------------------------------ +const int extra_nn = 10; // how many extra true nn's? + +const int def_dim = 2; // def dimension +const int def_data_size = 100; // def data size +const int def_query_size = 100; // def number of queries +const int def_n_color = 5; // def number of colors +const ANNbool def_new_clust = ANNfalse; // def new clusters flag +const int def_max_dim = 1; // def max flat dimension +const Distrib def_distr = UNIFORM; // def distribution +const double def_std_dev = 1.00; // def standard deviation +const double def_corr_coef = 0.05; // def correlation coef +const int def_bucket_size = 1; // def bucket size +const double def_epsilon = 0.0; // def error bound +const int def_near_neigh = 1; // def number of near neighbors +const int def_max_visit = 0; // def number of points visited +const int def_rad_bound = 0; // def radius bound + // def number of true nn's +const int def_true_nn = def_near_neigh + extra_nn; +const int def_seed = 0; // def seed for random numbers +const ANNbool def_validate = ANNfalse; // def validation flag + // def statistics output level +const StatLev def_stats = QUERY_STATS; +const ANNsplitRule // def splitting rule + def_split = ANN_KD_SUGGEST; +const ANNshrinkRule // def shrinking rule + def_shrink = ANN_BD_NONE; + +//------------------------------------------------------------------------ +// Global variables - Execution options +//------------------------------------------------------------------------ + +int dim; // dimension +int data_size; // data size +int query_size; // number of queries +int n_color; // number of colors +ANNbool new_clust; // generate new clusters? +int max_dim; // maximum flat dimension +Distrib distr; // distribution +double corr_coef; // correlation coef +double std_dev; // standard deviation +double std_dev_lo; // low standard deviation +double std_dev_hi; // high standard deviation +int bucket_size; // bucket size +double epsilon; // error bound +int near_neigh; // number of near neighbors +int max_pts_visit; // max number of points to visit +double radius_bound; // maximum radius search bound +int true_nn; // number of true nn's +ANNbool validate; // validation flag +StatLev stats; // statistics output level +ANNsplitRule split; // splitting rule +ANNshrinkRule shrink; // shrinking rule + +//------------------------------------------------------------------------ +// More globals - pointers to dynamically allocated arrays and structures +// +// It is assumed that all these values are set to NULL when nothing +// is allocated. +// +// data_pts, query_pts The data and query points +// the_tree Points to the kd- or bd-tree for +// nearest neighbor searching. +// apx_nn_idx, apx_dists Record approximate near neighbor +// indices and distances +// apx_pts_in_range Counts of the number of points in +// the in approx range, for fixed- +// radius NN searching. +// true_nn_idx, true_dists Record true near neighbor +// indices and distances +// min_pts_in_range, max_... Min and max counts of the number +// of points in the in approximate +// range. +// valid_dirty To avoid repeated validation, +// we only validate query results +// once. This validation becomes +// invalid, if a new tree, new data +// points or new query points have +// been generated. +// tree_data_size The number of points in the +// current tree. (This will be the +// same a data_size unless points have +// been added since the tree was +// built.) +// +// The approximate and true nearest neighbor results are stored +// in: apx_nn_idx, apx_dists, and true_nn_idx, true_dists. +// They are really flattened 2-dimensional arrays. Each of these +// arrays consists of query_size blocks, each of which contains +// near_neigh (or true_nn) entries, one for each of the nearest +// neighbors for a given query point. +//------------------------------------------------------------------------ + +ANNpointArray data_pts; // data points +ANNpointArray query_pts; // query points +ANNbd_tree* the_tree; // kd- or bd-tree search structure +ANNidxArray apx_nn_idx; // storage for near neighbor indices +ANNdistArray apx_dists; // storage for near neighbor distances +int* apx_pts_in_range; // storage for no. of points in range +ANNidxArray true_nn_idx; // true near neighbor indices +ANNdistArray true_dists; // true near neighbor distances +int* min_pts_in_range; // min points in approx range +int* max_pts_in_range; // max points in approx range + +ANNbool valid_dirty; // validation is no longer valid + +//------------------------------------------------------------------------ +// Initialize global parameters +//------------------------------------------------------------------------ + +void initGlobals() +{ + dim = def_dim; // init execution parameters + data_size = def_data_size; + query_size = def_query_size; + distr = def_distr; + corr_coef = def_corr_coef; + std_dev = def_std_dev; + std_dev_lo = def_std_dev; + std_dev_hi = def_std_dev; + new_clust = def_new_clust; + max_dim = def_max_dim; + n_color = def_n_color; + bucket_size = def_bucket_size; + epsilon = def_epsilon; + near_neigh = def_near_neigh; + max_pts_visit = def_max_visit; + radius_bound = def_rad_bound; + true_nn = def_true_nn; + validate = def_validate; + stats = def_stats; + split = def_split; + shrink = def_shrink; + annIdum = -def_seed; // init. global seed for ran0() + + data_pts = NULL; // initialize storage pointers + query_pts = NULL; + the_tree = NULL; + apx_nn_idx = NULL; + apx_dists = NULL; + apx_pts_in_range = NULL; + true_nn_idx = NULL; + true_dists = NULL; + min_pts_in_range = NULL; + max_pts_in_range = NULL; + + valid_dirty = ANNtrue; // (validation must be done) +} + +//------------------------------------------------------------------------ +// getDirective - skip comments and read next directive +// Returns ANNtrue if directive read, and ANNfalse if eof seen. +//------------------------------------------------------------------------ + +ANNbool skipComment( // skip any comments + istream &in) // input stream +{ + char ch = 0; + // skip whitespace + do { in.get(ch); } while (isspace(ch) && !in.eof()); + while (ch == '#' && !in.eof()) { // comment? + // skip to end of line + do { in.get(ch); } while(ch != '\n' && !in.eof()); + // skip whitespace + do { in.get(ch); } while(isspace(ch) && !in.eof()); + } + if (in.eof()) return ANNfalse; // end of file + in.putback(ch); // put character back + return ANNtrue; +} + +ANNbool getDirective( + istream &in, // input stream + char *directive) // directive storage +{ + if (!skipComment(in)) // skip comments + return ANNfalse; // found eof along the way? + in >> directive; // read directive + return ANNtrue; +} + + +//------------------------------------------------------------------------ +// main program - driver +// The main program reads input options, invokes the necessary +// routines to process them. +//------------------------------------------------------------------------ + +int main(int argc, char** argv) +{ + long clock0; // clock time + char directive[STRING_LEN]; // input directive + char arg[STRING_LEN]; // all-purpose argument + + cout << "------------------------------------------------------------\n" + << "ann_test: Version " << ANNversion << " " << ANNversionCmt << "\n" + << " Copyright: " << ANNcopyright << ".\n" + << " Latest Revision: " << ANNlatestRev << ".\n" + << "------------------------------------------------------------\n\n"; + + initGlobals(); // initialize global values + + //-------------------------------------------------------------------- + // Main input loop + //-------------------------------------------------------------------- + // read input directive + while (getDirective(cin, directive)) { + //---------------------------------------------------------------- + // Read options + //---------------------------------------------------------------- + if (!strcmp(directive,"dim")) { + cin >> dim; + } + else if (!strcmp(directive,"colors")) { + cin >> n_color; + } + else if (!strcmp(directive,"new_clust")) { + new_clust = ANNtrue; + } + else if (!strcmp(directive,"max_clus_dim")) { + cin >> max_dim; + } + else if (!strcmp(directive,"std_dev")) { + cin >> std_dev; + } + else if (!strcmp(directive,"std_dev_lo")) { + cin >> std_dev_lo; + } + else if (!strcmp(directive,"std_dev_hi")) { + cin >> std_dev_hi; + } + else if (!strcmp(directive,"corr_coef")) { + cin >> corr_coef; + } + else if (!strcmp(directive, "data_size")) { + cin >> data_size; + } + else if (!strcmp(directive,"query_size")) { + cin >> query_size; + } + else if (!strcmp(directive,"bucket_size")) { + cin >> bucket_size; + } + else if (!strcmp(directive,"epsilon")) { + cin >> epsilon; + } + else if (!strcmp(directive,"max_pts_visit")) { + cin >> max_pts_visit; + valid_dirty = ANNtrue; // validation must be redone + } + else if (!strcmp(directive,"radius_bound")) { + cin >> radius_bound; + valid_dirty = ANNtrue; // validation must be redone + } + else if (!strcmp(directive,"near_neigh")) { + cin >> near_neigh; + true_nn = near_neigh + extra_nn; // also reset true near neighs + valid_dirty = ANNtrue; // validation must be redone + } + else if (!strcmp(directive,"true_near_neigh")) { + cin >> true_nn; + valid_dirty = ANNtrue; // validation must be redone + } + //---------------------------------------------------------------- + // seed option + // The seed is reset by setting the global annIdum to the + // negation of the seed value. See rand.cpp. + //---------------------------------------------------------------- + else if (!strcmp(directive,"seed")) { + cin >> annIdum; + annIdum = -annIdum; + } + //---------------------------------------------------------------- + // validate option + //---------------------------------------------------------------- + else if (!strcmp(directive,"validate")) { + cin >> arg; // input argument + if (!strcmp(arg, "on")) { + validate = ANNtrue; + cout << "validate = on " + << "(Warning: this may slow execution time.)\n"; + } + else if (!strcmp(arg, "off")) { + validate = ANNfalse; + } + else { + cerr << "Argument: " << arg << "\n"; + Error("validate argument must be \"on\" or \"off\"", ANNabort); + } + } + //---------------------------------------------------------------- + // distribution option + //---------------------------------------------------------------- + else if (!strcmp(directive,"distribution")) { + cin >> arg; // input name and translate + distr = (Distrib) lookUp(arg, distr_table, N_DISTRIBS); + if (distr >= N_DISTRIBS) { // not something we recognize + cerr << "Distribution: " << arg << "\n"; + Error("Unknown distribution", ANNabort); + } + } + //---------------------------------------------------------------- + // stats option + //---------------------------------------------------------------- + else if (!strcmp(directive,"stats")) { + cin >> arg; // input name and translate + stats = (StatLev) lookUp(arg, stat_table, N_STAT_LEVELS); + if (stats >= N_STAT_LEVELS) { // not something we recognize + cerr << "Stats level: " << arg << "\n"; + Error("Unknown statistics level", ANNabort); + } + if (stats > SILENT) + cout << "stats = " << arg << "\n"; + } + //---------------------------------------------------------------- + // split_rule option + //---------------------------------------------------------------- + else if (!strcmp(directive,"split_rule")) { + cin >> arg; // input split_rule name + split = (ANNsplitRule) lookUp(arg, split_table, N_SPLIT_RULES); + if (split >= N_SPLIT_RULES) { // not something we recognize + cerr << "Splitting rule: " << arg << "\n"; + Error("Unknown splitting rule", ANNabort); + } + } + //---------------------------------------------------------------- + // shrink_rule option + //---------------------------------------------------------------- + else if (!strcmp(directive,"shrink_rule")) { + cin >> arg; // input split_rule name + shrink = (ANNshrinkRule) lookUp(arg, shrink_table, N_SHRINK_RULES); + if (shrink >= N_SHRINK_RULES) { // not something we recognize + cerr << "Shrinking rule: " << arg << "\n"; + Error("Unknown shrinking rule", ANNabort); + } + } + //---------------------------------------------------------------- + // label operation + //---------------------------------------------------------------- + else if (!strcmp(directive,"output_label")) { + cin >> arg; + if (stats > SILENT) + cout << "<" << arg << ">\n"; + } + //---------------------------------------------------------------- + // gen_data_pts operation + //---------------------------------------------------------------- + else if (!strcmp(directive,"gen_data_pts")) { + if (distr == PLANTED) { // planted distribution + Error("Cannot use planted distribution for data points", ANNabort); + } + generatePts( // generate data points + data_pts, // data points + data_size, // data size + DATA, // data points + new_clust); // new clusters flag + valid_dirty = ANNtrue; // validation must be redone + new_clust = ANNfalse; // reset flag + } + //---------------------------------------------------------------- + // gen_query_pts operation + // If the distribution is PLANTED, then the query points + // are planted near the data points (which must already be + // generated). + //---------------------------------------------------------------- + else if (!strcmp(directive,"gen_query_pts")) { + if (distr == PLANTED) { // planted distribution + if (data_pts == NULL) { + Error("Must generate data points before query points for planted distribution", ANNabort); + } + generatePts( // generate query points + query_pts, // point array + query_size, // number of query points + QUERY, // query points + new_clust, // new clusters flag + data_pts, // plant around data pts + data_size); + } + else { // all other distributions + generatePts( // generate query points + query_pts, // point array + query_size, // number of query points + QUERY, // query points + new_clust); // new clusters flag + } + valid_dirty = ANNtrue; // validation must be redone + new_clust = ANNfalse; // reset flag + } + //---------------------------------------------------------------- + // read_data_pts operation + //---------------------------------------------------------------- + else if (!strcmp(directive,"read_data_pts")) { + cin >> arg; // input file name + readPts( + data_pts, // point array + data_size, // number of points + arg, // file name + DATA); // data points + valid_dirty = ANNtrue; // validation must be redone + } + //---------------------------------------------------------------- + // read_query_pts operation + //---------------------------------------------------------------- + else if (!strcmp(directive,"read_query_pts")) { + cin >> arg; // input file name + readPts( + query_pts, // point array + query_size, // number of points + arg, // file name + QUERY); // query points + valid_dirty = ANNtrue; // validation must be redone + } + //---------------------------------------------------------------- + // build_ann operation + // We always invoke the constructor for bd-trees. Note + // that when the shrinking rule is NONE (which is true by + // default), then this constructs a kd-tree. + //---------------------------------------------------------------- + else if (!strcmp(directive,"build_ann")) { + //------------------------------------------------------------ + // Build the tree + //------------------------------------------------------------ + if (the_tree != NULL) { // tree exists already + delete the_tree; // get rid of it + } + clock0 = clock(); // start time + + the_tree = new ANNbd_tree( // build it + data_pts, // the data points + data_size, // number of points + dim, // dimension of space + bucket_size, // maximum bucket size + split, // splitting rule + shrink); // shrinking rule + + //------------------------------------------------------------ + // Print summary + //------------------------------------------------------------ + long prep_time = clock() - clock0; // end of prep time + + if (stats > SILENT) { + cout << "[Build ann-structure:\n"; + cout << " split_rule = " << split_table[split] << "\n"; + cout << " shrink_rule = " << shrink_table[shrink] << "\n"; + cout << " data_size = " << data_size << "\n"; + cout << " dim = " << dim << "\n"; + cout << " bucket_size = " << bucket_size << "\n"; + + if (stats >= EXEC_TIME) { // output processing time + cout << " process_time = " + << double(prep_time)/CLOCKS_PER_SEC << " sec\n"; + } + + if (stats >= PREP_STATS) // output or check tree stats + treeStats(cout, ANNtrue); // print tree stats + else + treeStats(cout, ANNfalse); // check stats + + if (stats >= SHOW_STRUCT) { // print the whole tree + cout << " (Structure Contents:\n"; + the_tree->Print(ANNfalse, cout); + cout << " )\n"; + } + cout << "]\n"; + } + } + //---------------------------------------------------------------- + // dump operation + //---------------------------------------------------------------- + else if (!strcmp(directive,"dump")) { + cin >> arg; // input file name + if (the_tree == NULL) { // no tree + Error("Cannot dump. No tree has been built yet", ANNwarn); + } + else { // there is a tree + // try to open file + ofstream out_dump_file(arg); + if (!out_dump_file) { + cerr << "File name: " << arg << "\n"; + Error("Cannot open dump file", ANNabort); + } + // dump the tree and points + the_tree->Dump(ANNtrue, out_dump_file); + if (stats > SILENT) { + cout << "(Tree has been dumped to file " << arg << ")\n"; + } + } + } + //---------------------------------------------------------------- + // load operation + // Since this not only loads a tree, but loads a new set + // of data points. + //---------------------------------------------------------------- + else if (!strcmp(directive,"load")) { + cin >> arg; // input file name + if (the_tree != NULL) { // tree exists already + delete the_tree; // get rid of it + } + if (data_pts != NULL) { // data points exist already + delete data_pts; // get rid of them + } + + ifstream in_dump_file(arg); // try to open file + if (!in_dump_file) { + cerr << "File name: " << arg << "\n"; + Error("Cannot open file for loading", ANNabort); + } + // build tree by loading + the_tree = new ANNbd_tree(in_dump_file); + + dim = the_tree->theDim(); // new dimension + data_size = the_tree->nPoints(); // number of points + data_pts = the_tree->thePoints(); // new points + + valid_dirty = ANNtrue; // validation must be redone + + if (stats > SILENT) { + cout << "(Tree has been loaded from file " << arg << ")\n"; + } + if (stats >= SHOW_STRUCT) { // print the tree + cout << " (Structure Contents:\n"; + the_tree->Print(ANNfalse, cout); + cout << " )\n"; + } + } + //---------------------------------------------------------------- + // run_queries operation + // This section does all the query processing. It consists + // of the following subsections: + // + // ** input the argument (standard or priority) and output + // the header describing the essential information. + // ** allocate space for the results to be stored. + // ** run the queries by invoking the appropriate search + // procedure on the query points. Print nearest neighbor + // if requested. + // ** print final summaries + // + // The approach for processing multiple nearest neighbors is + // pretty crude. We allocate an array whose size is the + // product of the total number of queries times the number of + // nearest neighbors (k), and then use each k consecutive + // entries to store the results of each query. + //---------------------------------------------------------------- + else if (!strcmp(directive,"run_queries")) { + + //------------------------------------------------------------ + // Input arguments and print summary + //------------------------------------------------------------ + enum {STANDARD, PRIORITY} method; + + cin >> arg; // input argument + if (!strcmp(arg, "standard")) { + method = STANDARD; + } + else if (!strcmp(arg, "priority")) { + method = PRIORITY; + } + else { + cerr << "Search type: " << arg << "\n"; + Error("Search type must be \"standard\" or \"priority\"", + ANNabort); + } + if (data_pts == NULL || query_pts == NULL) { + Error("Either data set and query set not constructed", ANNabort); + } + if (the_tree == NULL) { + Error("No search tree built.", ANNabort); + } + + //------------------------------------------------------------ + // Set up everything + //------------------------------------------------------------ + + #ifdef ANN_PERF // performance only + annResetStats(data_size); // reset statistics + #endif + + clock0 = clock(); // start time + // deallocate existing storage + if (apx_nn_idx != NULL) delete [] apx_nn_idx; + if (apx_dists != NULL) delete [] apx_dists; + if (apx_pts_in_range != NULL) delete [] apx_pts_in_range; + // allocate apx answer storage + apx_nn_idx = new ANNidx[near_neigh*query_size]; + apx_dists = new ANNdist[near_neigh*query_size]; + apx_pts_in_range = new int[query_size]; + + annMaxPtsVisit(max_pts_visit); // set max points to visit + + //------------------------------------------------------------ + // Run the queries + //------------------------------------------------------------ + // pointers for current query + ANNidxArray curr_nn_idx = apx_nn_idx; + ANNdistArray curr_dists = apx_dists; + + for (int i = 0; i < query_size; i++) { + #ifdef ANN_PERF + annResetCounts(); // reset counters + #endif + apx_pts_in_range[i] = 0; + + if (radius_bound == 0) { // no radius bound + if (method == STANDARD) { + the_tree->annkSearch( + query_pts[i], // query point + near_neigh, // number of near neighbors + curr_nn_idx, // nearest neighbors (returned) + curr_dists, // distance (returned) + epsilon); // error bound + } + else if (method == PRIORITY) { + the_tree->annkPriSearch( + query_pts[i], // query point + near_neigh, // number of near neighbors + curr_nn_idx, // nearest neighbors (returned) + curr_dists, // distance (returned) + epsilon); // error bound + } + else { + Error("Internal error - invalid method", ANNabort); + } + } + else { // use radius bound + if (method != STANDARD) { + Error("A nonzero radius bound assumes standard search", + ANNwarn); + } + apx_pts_in_range[i] = the_tree->annkFRSearch( + query_pts[i], // query point + ANN_POW(radius_bound), // squared radius search bound + near_neigh, // number of near neighbors + curr_nn_idx, // nearest neighbors (returned) + curr_dists, // distance (returned) + epsilon); // error bound + } + curr_nn_idx += near_neigh; // increment current pointers + curr_dists += near_neigh; + + #ifdef ANN_PERF + annUpdateStats(); // update stats + #endif + } + + long query_time = clock() - clock0; // end of query time + + if (validate) { // validation requested + if (valid_dirty) getTrueNN(); // get true near neighbors + doValidation(); // validate + } + + //------------------------------------------------------------ + // Print summaries + //------------------------------------------------------------ + + if (stats > SILENT) { + cout << "[Run Queries:\n"; + cout << " query_size = " << query_size << "\n"; + cout << " dim = " << dim << "\n"; + cout << " search_method = " << arg << "\n"; + cout << " epsilon = " << epsilon << "\n"; + cout << " near_neigh = " << near_neigh << "\n"; + if (max_pts_visit != 0) + cout << " max_pts_visit = " << max_pts_visit << "\n"; + if (radius_bound != 0) + cout << " radius_bound = " << radius_bound << "\n"; + if (validate) + cout << " true_nn = " << true_nn << "\n"; + + if (stats >= EXEC_TIME) { // print exec time summary + cout << " query_time = " << + double(query_time)/(query_size*CLOCKS_PER_SEC) + << " sec/query"; + #ifdef ANN_PERF + cout << " (biased by perf measurements)"; + #endif + cout << "\n"; + } + + if (stats >= QUERY_STATS) { // output performance stats + #ifdef ANN_PERF + cout.flush(); + annPrintStats(validate); + #else + cout << " (Performance statistics unavailable.)\n"; + #endif + } + + if (stats >= QUERY_RES) { // output results + cout << " (Query Results:\n"; + cout << " Pt\tANN\tDist\n"; + curr_nn_idx = apx_nn_idx; // subarray pointers + curr_dists = apx_dists; + // output nearest neighbors + for (int i = 0; i < query_size; i++) { + cout << " " << setw(4) << i; + for (int j = 0; j < near_neigh; j++) { + // exit if no more neighbors + if (curr_nn_idx[j] == ANN_NULL_IDX) { + cout << "\t[no other pts in radius bound]\n"; + break; + } + else { // output point info + cout << "\t" << curr_nn_idx[j] + << "\t" << ANN_ROOT(curr_dists[j]) + << "\n"; + } + } + // output range count + if (radius_bound != 0) { + cout << " pts_in_radius_bound = " + << apx_pts_in_range[i] << "\n"; + } + // increment subarray pointers + curr_nn_idx += near_neigh; + curr_dists += near_neigh; + } + cout << " )\n"; + } + cout << "]\n"; + } + } + //---------------------------------------------------------------- + // Unknown directive + //---------------------------------------------------------------- + else { + cerr << "Directive: " << directive << "\n"; + Error("Unknown directive", ANNabort); + } + } + //-------------------------------------------------------------------- + // End of input loop (deallocate stuff that was allocated) + //-------------------------------------------------------------------- + if (the_tree != NULL) delete the_tree; + if (data_pts != NULL) annDeallocPts(data_pts); + if (query_pts != NULL) annDeallocPts(query_pts); + if (apx_nn_idx != NULL) delete [] apx_nn_idx; + if (apx_dists != NULL) delete [] apx_dists; + if (apx_pts_in_range != NULL) delete [] apx_pts_in_range; + + annClose(); // close ANN + + return EXIT_SUCCESS; +} + +//------------------------------------------------------------------------ +// generatePts - call appropriate routine to generate points of a +// given distribution. +//------------------------------------------------------------------------ + +void generatePts( + ANNpointArray &pa, // point array (returned) + int n, // number of points to generate + PtType type, // point type + ANNbool new_clust, // new cluster centers desired? + ANNpointArray src, // source array (if distr=PLANTED) + int n_src) // source size (if distr=PLANTED) +{ + if (pa != NULL) annDeallocPts(pa); // get rid of any old points + pa = annAllocPts(n, dim); // allocate point storage + + switch (distr) { + case UNIFORM: // uniform over cube [-1,1]^d. + annUniformPts(pa, n, dim); + break; + case GAUSS: // Gaussian with mean 0 + annGaussPts(pa, n, dim, std_dev); + break; + case LAPLACE: // Laplacian, mean 0 and var 1 + annLaplacePts(pa, n, dim); + break; + case CO_GAUSS: // correlated Gaussian + annCoGaussPts(pa, n, dim, corr_coef); + break; + case CO_LAPLACE: // correlated Laplacian + annCoLaplacePts(pa, n, dim, corr_coef); + break; + case CLUS_GAUSS: // clustered Gaussian + annClusGaussPts(pa, n, dim, n_color, new_clust, std_dev); + break; + case CLUS_ORTH_FLATS: // clustered on orthog flats + annClusOrthFlats(pa, n, dim, n_color, new_clust, std_dev, max_dim); + break; + case CLUS_ELLIPSOIDS: // clustered ellipsoids + annClusEllipsoids(pa, n, dim, n_color, new_clust, std_dev, + std_dev_lo, std_dev_hi, max_dim); + break; + case PLANTED: // planted distribution + annPlanted(pa, n, dim, src, n_src, std_dev); + break; + default: + Error("INTERNAL ERROR: Unknown distribution", ANNabort); + break; + } + + if (stats > SILENT) { + if(type == DATA) cout << "[Generating Data Points:\n"; + else cout << "[Generating Query Points:\n"; + cout << " number = " << n << "\n"; + cout << " dim = " << dim << "\n"; + cout << " distribution = " << distr_table[distr] << "\n"; + if (annIdum < 0) + cout << " seed = " << annIdum << "\n"; + if (distr == GAUSS || distr == CLUS_GAUSS + || distr == CLUS_ORTH_FLATS) + cout << " std_dev = " << std_dev << "\n"; + if (distr == CLUS_ELLIPSOIDS) { + cout << " std_dev = " << std_dev << " (small) \n"; + cout << " std_dev_lo = " << std_dev_lo << "\n"; + cout << " std_dev_hi = " << std_dev_hi << "\n"; + } + if (distr == CO_GAUSS || distr == CO_LAPLACE) + cout << " corr_coef = " << corr_coef << "\n"; + if (distr == CLUS_GAUSS || distr == CLUS_ORTH_FLATS + || distr == CLUS_ELLIPSOIDS) { + cout << " colors = " << n_color << "\n"; + if (new_clust) + cout << " (cluster centers regenerated)\n"; + } + if (distr == CLUS_ORTH_FLATS || distr == CLUS_ELLIPSOIDS) { + cout << " max_dim = " << max_dim << "\n"; + } + } + // want to see points? + if ((type == DATA && stats >= SHOW_PTS) || + (type == QUERY && stats >= QUERY_RES)) { + if(type == DATA) cout << "(Data Points:\n"; + else cout << "(Query Points:\n"; + for (int i = 0; i < n; i++) { + cout << " " << setw(4) << i << "\t"; + printPoint(pa[i], dim); + cout << "\n"; + } + cout << " )\n"; + } + cout << "]\n"; +} + +//------------------------------------------------------------------------ +// readPts - read a collection of data or query points. +//------------------------------------------------------------------------ + +void readPts( + ANNpointArray &pa, // point array (returned) + int &n, // number of points + char *file_nm, // file name + PtType type) // point type (DATA, QUERY) +{ + int i; + //-------------------------------------------------------------------- + // Open input file and read points + //-------------------------------------------------------------------- + ifstream in_file(file_nm); // try to open data file + if (!in_file) { + cerr << "File name: " << file_nm << "\n"; + Error("Cannot open input data/query file", ANNabort); + } + // allocate storage for points + if (pa != NULL) annDeallocPts(pa); // get rid of old points + pa = annAllocPts(n, dim); + + for (i = 0; i < n; i++) { // read the data + if (!(in_file >> pa[i][0])) break; + for (int d = 1; d < dim; d++) { + in_file >> pa[i][d]; + } + } + + char ignore_me; // character for EOF test + in_file >> ignore_me; // try to get one more character + if (!in_file.eof()) { // exhausted space before eof + if (type == DATA) + Error("`data_size' too small. Input file truncated.", ANNwarn); + else + Error("`query_size' too small. Input file truncated.", ANNwarn); + } + n = i; // number of points read + + //-------------------------------------------------------------------- + // Print summary + //-------------------------------------------------------------------- + if (stats > SILENT) { + if (type == DATA) { + cout << "[Read Data Points:\n"; + cout << " data_size = " << n << "\n"; + } + else { + cout << "[Read Query Points:\n"; + cout << " query_size = " << n << "\n"; + } + cout << " file_name = " << file_nm << "\n"; + cout << " dim = " << dim << "\n"; + // print if results requested + if ((type == DATA && stats >= SHOW_PTS) || + (type == QUERY && stats >= QUERY_RES)) { + cout << " (Points:\n"; + for (i = 0; i < n; i++) { + cout << " " << i << "\t"; + printPoint(pa[i], dim); + cout << "\n"; + } + cout << " )\n"; + } + cout << "]\n"; + } +} + +//------------------------------------------------------------------------ +// getTrueNN +// Computes the true nearest neighbors. For purposes of validation, +// this intentionally done in a rather dumb (but safe way), by +// invoking the brute-force search. +// +// The number of true nearest neighbors is somewhat larger than +// the number of nearest neighbors. This is so that the validation +// can determine the expected difference in element ranks. +// +// This procedure is invoked just prior to running queries. Since +// the operation takes a long time, it is performed only if needed. +// In particular, once generated, it will be regenerated only if +// new query or data points are generated, or if the requested number +// of true near neighbors or approximate near neighbors has changed. +// +// To validate fixed-radius searching, we compute two counts, one +// with the original query radius (trueSqRadius) and the other with +// a radius shrunken by the error factor (minSqradius). We then +// check that the count of points inside the approximate range is +// between these two bounds. Because fixed-radius search is +// allowed to ignore points within the shrunken radius, we only +// compute exact neighbors within this smaller distance (for we +// cannot guarantee that we will even visit the other points). +//------------------------------------------------------------------------ + +void getTrueNN() // compute true nearest neighbors +{ + if (stats > SILENT) { + cout << "(Computing true nearest neighbors for validation. This may take time.)\n"; + } + // deallocate existing storage + if (true_nn_idx != NULL) delete [] true_nn_idx; + if (true_dists != NULL) delete [] true_dists; + if (min_pts_in_range != NULL) delete [] min_pts_in_range; + if (max_pts_in_range != NULL) delete [] max_pts_in_range; + + if (true_nn > data_size) { // can't get more nn than points + true_nn = data_size; + } + + // allocate true answer storage + true_nn_idx = new ANNidx[true_nn*query_size]; + true_dists = new ANNdist[true_nn*query_size]; + min_pts_in_range = new int[query_size]; + max_pts_in_range = new int[query_size]; + + ANNidxArray curr_nn_idx = true_nn_idx; // current locations in arrays + ANNdistArray curr_dists = true_dists; + + // allocate search structure + ANNbruteForce *the_brute = new ANNbruteForce(data_pts, data_size, dim); + // compute nearest neighbors + for (int i = 0; i < query_size; i++) { + if (radius_bound == 0) { // standard kNN search + the_brute->annkSearch( // compute true near neighbors + query_pts[i], // query point + true_nn, // number of nearest neighbors + curr_nn_idx, // where to put indices + curr_dists); // where to put distances + } + else { // fixed radius kNN search + // search radii limits + ANNdist trueSqRadius = ANN_POW(radius_bound); + ANNdist minSqRadius = ANN_POW(radius_bound / (1+epsilon)); + min_pts_in_range[i] = the_brute->annkFRSearch( + query_pts[i], // query point + minSqRadius, // shrunken search radius + true_nn, // number of near neighbors + curr_nn_idx, // nearest neighbors (returned) + curr_dists); // distance (returned) + max_pts_in_range[i] = the_brute->annkFRSearch( + query_pts[i], // query point + trueSqRadius, // true search radius + 0, NULL, NULL); // (ignore kNN info) + } + curr_nn_idx += true_nn; // increment nn index pointer + curr_dists += true_nn; // increment nn dist pointer + } + delete the_brute; // delete brute-force struct + valid_dirty = ANNfalse; // validation good for now +} + +//------------------------------------------------------------------------ +// doValidation +// Compares the approximate answers to the k-nearest neighbors +// against the true nearest neighbors (computed earlier). It is +// assumed that the true nearest neighbors and indices have been +// computed earlier. +// +// First, we check that all the results are within their allowed +// limits, and generate an internal error, if not. For the sake of +// performance evaluation, we also compute the following two +// quantities for nearest neighbors: +// +// Average Error +// ------------- +// The relative error between the distance to a reported nearest +// neighbor and the true nearest neighbor (of the same rank), +// +// Rank Error +// ---------- +// The difference in rank between the reported nearest neighbor and +// its position (if any) among the true nearest neighbors. If we +// cannot find this point among the true nearest neighbors, then +// it assumed that the rank of the true nearest neighbor is true_nn+1. +// +// Because of the possibility of duplicate distances, this is computed +// as follows. For the j-th reported nearest neighbor, we count the +// number of true nearest neighbors that are at least this close. Let +// this be rnk. Then the rank error is max(0, j-rnk). (In the code +// below, j is an array index and so the first item is 0, not 1. Thus +// we take max(0, j+1-rnk) instead.) +// +// For the results of fixed-radious range count, we verify that the +// reported number of points in the range lies between the actual +// number of points in the shrunken and the true search radius. +//------------------------------------------------------------------------ + +void doValidation() // perform validation +{ + int* curr_apx_idx = apx_nn_idx; // approx index pointer + ANNdistArray curr_apx_dst = apx_dists; // approx distance pointer + int* curr_tru_idx = true_nn_idx; // true index pointer + ANNdistArray curr_tru_dst = true_dists; // true distance pointer + int i, j; + + if (true_nn < near_neigh) { + Error("Cannot validate with fewer true near neighbors than actual", ANNabort); + } + + for (i = 0; i < query_size; i++) { // validate each query + //---------------------------------------------------------------- + // Compute result errors + // In fixed radius search it is possible that not all k + // nearest neighbors were computed. Because the true + // results are computed over the shrunken radius, we should + // have at least as many true nearest neighbors as + // approximate nearest neighbors. (If not, an infinite + // error will be generated, and so an internal error will + // will be generated. + // + // Because nearest neighbors are sorted in increasing order + // of distance, as soon as we see a null index, we can + // terminate the distance checking. The error in the + // result should not exceed epsilon. However, if + // max_pts_visit is nonzero (meaning that the search is + // terminated early) this might happen. + //---------------------------------------------------------------- + for (j = 0; j < near_neigh; j++) { + if (curr_tru_idx[j] == ANN_NULL_IDX)// no more true neighbors? + break; + // true i-th smallest distance + double true_dist = ANN_ROOT(curr_tru_dst[j]); + // reported i-th smallest + double rept_dist = ANN_ROOT(curr_apx_dst[j]); + // better than optimum? + if (rept_dist < true_dist*(1-ERR)) { + Error("INTERNAL ERROR: True nearest neighbor incorrect", + ANNabort); + } + + double resultErr; // result error + if (true_dist == 0.0) { // let's not divide by zero + if (rept_dist != 0.0) resultErr = ANN_DBL_MAX; + else resultErr = 0.0; + } + else { + resultErr = (rept_dist - true_dist) / ((double) true_dist); + } + + if (resultErr > epsilon && max_pts_visit == 0) { + Error("INTERNAL ERROR: Actual error exceeds epsilon", + ANNabort); + } + #ifdef ANN_PERF + ann_average_err += resultErr; // update statistics error + #endif + } + //-------------------------------------------------------------------- + // Compute rank errors (only needed for perf measurements) + //-------------------------------------------------------------------- + #ifdef ANN_PERF + for (j = 0; j < near_neigh; j++) { + if (curr_tru_idx[i] == ANN_NULL_IDX) // no more true neighbors? + break; + + double rnkErr = 0.0; // rank error + // reported j-th distance + ANNdist rept_dist = curr_apx_dst[j]; + int rnk = 0; // compute rank of this item + while (rnk < true_nn && curr_tru_dst[rnk] <= rept_dist) + rnk++; + if (j+1-rnk > 0) rnkErr = (double) (j+1-rnk); + ann_rank_err += rnkErr; // update average rank error + } + #endif + //---------------------------------------------------------------- + // Check range counts from fixed-radius query + //---------------------------------------------------------------- + if (radius_bound != 0) { // fixed-radius search + if (apx_pts_in_range[i] < min_pts_in_range[i] || + apx_pts_in_range[i] > max_pts_in_range[i]) + Error("INTERNAL ERROR: Invalid fixed-radius range count", + ANNabort); + } + + curr_apx_idx += near_neigh; + curr_apx_dst += near_neigh; + curr_tru_idx += true_nn; // increment current pointers + curr_tru_dst += true_nn; + } +} + +//---------------------------------------------------------------------- +// treeStats +// Computes a number of statistics related to kd_trees and +// bd_trees. These statistics are printed if in verbose mode, +// and otherwise they are only printed if they are deemed to +// be outside of reasonable operating bounds. +//---------------------------------------------------------------------- + +#define log2(x) (log(x)/log(2.0)) // log base 2 + +void treeStats( + ostream &out, // output stream + ANNbool verbose) // print stats +{ + const int MIN_PTS = 20; // min no. pts for checking + const float MAX_FRAC_TL = 0.50; // max frac of triv leaves + const float MAX_AVG_AR = 20; // max average aspect ratio + + ANNkdStats st; // statistics structure + + the_tree->getStats(st); // get statistics + // total number of nodes + int n_nodes = st.n_lf + st.n_spl + st.n_shr; + // should be O(n/bs) + int opt_n_nodes = (int) (2*(float(st.n_pts)/st.bkt_size)); + int too_many_nodes = 10*opt_n_nodes; + if (st.n_pts >= MIN_PTS && n_nodes > too_many_nodes) { + out << "-----------------------------------------------------------\n"; + out << "Warning: The tree has more than 10x as many nodes as points.\n"; + out << "You may want to consider a different split or shrink method.\n"; + out << "-----------------------------------------------------------\n"; + verbose = ANNtrue; + } + // fraction of trivial leaves + float frac_tl = (st.n_lf == 0 ? 0 : ((float) st.n_tl)/ st.n_lf); + if (st.n_pts >= MIN_PTS && frac_tl > MAX_FRAC_TL) { + out << "-----------------------------------------------------------\n"; + out << "Warning: A significant fraction of leaves contain no points.\n"; + out << "You may want to consider a different split or shrink method.\n"; + out << "-----------------------------------------------------------\n"; + verbose = ANNtrue; + } + // depth should be O(dim*log n) + int too_many_levels = (int) (2.0 * st.dim * log2((double) st.n_pts)); + int opt_levels = (int) log2(double(st.n_pts)/st.bkt_size); + if (st.n_pts >= MIN_PTS && st.depth > too_many_levels) { + out << "-----------------------------------------------------------\n"; + out << "Warning: The tree is more than 2x as deep as (dim*log n).\n"; + out << "You may want to consider a different split or shrink method.\n"; + out << "-----------------------------------------------------------\n"; + verbose = ANNtrue; + } + // average leaf aspect ratio + if (st.n_pts >= MIN_PTS && st.avg_ar > MAX_AVG_AR) { + out << "-----------------------------------------------------------\n"; + out << "Warning: Average aspect ratio of cells is quite large.\n"; + out << "This may slow queries depending on the point distribution.\n"; + out << "-----------------------------------------------------------\n"; + verbose = ANNtrue; + } + + //------------------------------------------------------------------ + // Print summaries if requested + //------------------------------------------------------------------ + if (verbose) { // output statistics + out << " (Structure Statistics:\n"; + out << " n_nodes = " << n_nodes + << " (opt = " << opt_n_nodes + << ", best if < " << too_many_nodes << ")\n" + << " n_leaves = " << st.n_lf + << " (" << st.n_tl << " contain no points)\n" + << " n_splits = " << st.n_spl << "\n" + << " n_shrinks = " << st.n_shr << "\n"; + out << " empty_leaves = " << frac_tl*100 + << " percent (best if < " << MAX_FRAC_TL*100 << " percent)\n"; + out << " depth = " << st.depth + << " (opt = " << opt_levels + << ", best if < " << too_many_levels << ")\n"; + out << " avg_aspect_ratio = " << st.avg_ar + << " (best if < " << MAX_AVG_AR << ")\n"; + out << " )\n"; + } +} diff --git a/3rdparty/ann_1.1.1_modified/test/rand.cpp b/3rdparty/ann_1.1.1_modified/test/rand.cpp new file mode 100755 index 0000000..9bf6204 --- /dev/null +++ b/3rdparty/ann_1.1.1_modified/test/rand.cpp @@ -0,0 +1,594 @@ +//---------------------------------------------------------------------- +// File: rand.cpp +// Programmer: Sunil Arya and David Mount +// Description: Routines for random point generation +// Last modified: 08/04/06 (Version 1.1.1) +//---------------------------------------------------------------------- +// Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +// David Mount. All Rights Reserved. +// +// This software and related documentation is part of the Approximate +// Nearest Neighbor Library (ANN). This software is provided under +// the provisions of the Lesser GNU Public License (LGPL). See the +// file ../ReadMe.txt for further information. +// +// The University of Maryland (U.M.) and the authors make no +// representations about the suitability or fitness of this software for +// any purpose. It is provided "as is" without express or implied +// warranty. +//---------------------------------------------------------------------- +// History: +// Revision 0.1 03/04/98 +// Initial release +// Revision 0.2 03/26/98 +// Changed random/srandom declarations for SGI's. +// Revision 1.0 04/01/05 +// annClusGauss centers distributed over [-1,1] rather than [0,1] +// Added annClusOrthFlats distribution +// Changed procedure names to avoid namespace conflicts +// Added annClusFlats distribution +// Added rand/srand option and fixed annRan0() initialization. +// Revision 1.1.1 08/04/06 +// Added planted distribution +//---------------------------------------------------------------------- + +#include "rand.h" // random generator declarations + +using namespace std; // make std:: accessible + +//---------------------------------------------------------------------- +// Globals +//---------------------------------------------------------------------- +int annIdum = 0; // used for random number generation + +//------------------------------------------------------------------------ +// annRan0 - (safer) uniform random number generator +// +// The code given here is taken from "Numerical Recipes in C" by +// William Press, Brian Flannery, Saul Teukolsky, and William +// Vetterling. The task of the code is to do an additional randomizing +// shuffle on the system-supplied random number generator to make it +// safer to use. +// +// Returns a uniform deviate between 0.0 and 1.0 using the +// system-supplied routine random() or rand(). Set the global +// annIdum to any negative value to initialise or reinitialise +// the sequence. +//------------------------------------------------------------------------ + +double annRan0() +{ + const int TAB_SIZE = 97; // table size: any large number + int j; + + static double y, v[TAB_SIZE]; + static int iff = 0; + const double RAN_DIVISOR = double(ANN_RAND_MAX + 1UL); + if (RAN_DIVISOR < 0) { + cout << "RAN_DIVISOR " << RAN_DIVISOR << endl; + exit(0); + } + + //-------------------------------------------------------------------- + // As a precaution against misuse, we will always initialize on the + // first call, even if "annIdum" is not set negative. Determine + // "maxran", the next integer after the largest representable value + // of type int. We assume this is a factor of 2 smaller than the + // corresponding value of type unsigned int. + //-------------------------------------------------------------------- + + if (annIdum < 0 || iff == 0) { // initialize + iff = 1; + ANN_SRAND(annIdum); // (re)seed the generator + annIdum = 1; + + for (j = 0; j < TAB_SIZE; j++) // exercise the system routine + ANN_RAND(); // (values intentionally ignored) + + for (j = 0; j < TAB_SIZE; j++) // then save TAB_SIZE-1 values + v[j] = ANN_RAND(); + y = ANN_RAND(); // generate starting value + } + + //-------------------------------------------------------------------- + // This is where we start if not initializing. Use the previously + // saved random number y to get an index j between 1 and TAB_SIZE-1. + // Then use the corresponding v[j] for both the next j and as the + // output number. + //-------------------------------------------------------------------- + + j = int(TAB_SIZE * (y / RAN_DIVISOR)); + y = v[j]; + v[j] = ANN_RAND(); // refill the table entry + return y / RAN_DIVISOR; +} + +//------------------------------------------------------------------------ +// annRanInt - generate a random integer from {0,1,...,n-1} +// +// If n == 0, then -1 is returned. +//------------------------------------------------------------------------ + +static int annRanInt( + int n) +{ + int r = (int) (annRan0()*n); + if (r == n) r--; // (in case annRan0() == 1 or n == 0) + return r; +} + +//------------------------------------------------------------------------ +// annRanUnif - generate a random uniform in [lo,hi] +//------------------------------------------------------------------------ + +static double annRanUnif( + double lo, + double hi) +{ + return annRan0()*(hi-lo) + lo; +} + +//------------------------------------------------------------------------ +// annRanGauss - Gaussian random number generator +// Returns a normally distributed deviate with zero mean and unit +// variance, using annRan0() as the source of uniform deviates. +//------------------------------------------------------------------------ + +static double annRanGauss() +{ + static int iset=0; + static double gset; + + if (iset == 0) { // we don't have a deviate handy + double v1, v2; + double r = 2.0; + while (r >= 1.0) { + //------------------------------------------------------------ + // Pick two uniform numbers in the square extending from -1 to + // +1 in each direction, see if they are in the circle of radius + // 1. If not, try again + //------------------------------------------------------------ + v1 = annRanUnif(-1, 1); + v2 = annRanUnif(-1, 1); + r = v1 * v1 + v2 * v2; + } + double fac = sqrt(-2.0 * log(r) / r); + //----------------------------------------------------------------- + // Now make the Box-Muller transformation to get two normal + // deviates. Return one and save the other for next time. + //----------------------------------------------------------------- + gset = v1 * fac; + iset = 1; // set flag + return v2 * fac; + } + else { // we have an extra deviate handy + iset = 0; // so unset the flag + return gset; // and return it + } +} + +//------------------------------------------------------------------------ +// annRanLaplace - Laplacian random number generator +// Returns a Laplacian distributed deviate with zero mean and +// unit variance, using annRan0() as the source of uniform deviates. +// +// prob(x) = b/2 * exp(-b * |x|). +// +// b is chosen to be sqrt(2.0) so that the variance of the Laplacian +// distribution [2/(b^2)] becomes 1. +//------------------------------------------------------------------------ + +static double annRanLaplace() +{ + const double b = 1.4142136; + + double laprand = -log(annRan0()) / b; + double sign = annRan0(); + if (sign < 0.5) laprand = -laprand; + return(laprand); +} + +//---------------------------------------------------------------------- +// annUniformPts - Generate uniformly distributed points +// A uniform distribution over [-1,1]. +//---------------------------------------------------------------------- + +void annUniformPts( // uniform distribution + ANNpointArray pa, // point array (modified) + int n, // number of points + int dim) // dimension +{ + for (int i = 0; i < n; i++) { + for (int d = 0; d < dim; d++) { + pa[i][d] = (ANNcoord) (annRanUnif(-1,1)); + } + } +} + +//---------------------------------------------------------------------- +// annGaussPts - Generate Gaussian distributed points +// A Gaussian distribution with zero mean and the given standard +// deviation. +//---------------------------------------------------------------------- + +void annGaussPts( // Gaussian distribution + ANNpointArray pa, // point array (modified) + int n, // number of points + int dim, // dimension + double std_dev) // standard deviation +{ + for (int i = 0; i < n; i++) { + for (int d = 0; d < dim; d++) { + pa[i][d] = (ANNcoord) (annRanGauss() * std_dev); + } + } +} + +//---------------------------------------------------------------------- +// annLaplacePts - Generate Laplacian distributed points +// Generates a Laplacian distribution (zero mean and unit variance). +//---------------------------------------------------------------------- + +void annLaplacePts( // Laplacian distribution + ANNpointArray pa, // point array (modified) + int n, // number of points + int dim) // dimension +{ + for (int i = 0; i < n; i++) { + for (int d = 0; d < dim; d++) { + pa[i][d] = (ANNcoord) annRanLaplace(); + } + } +} + +//---------------------------------------------------------------------- +// annCoGaussPts - Generate correlated Gaussian distributed points +// Generates a Gauss-Markov distribution of zero mean and unit +// variance. +//---------------------------------------------------------------------- + +void annCoGaussPts( // correlated-Gaussian distribution + ANNpointArray pa, // point array (modified) + int n, // number of points + int dim, // dimension + double correlation) // correlation +{ + double std_dev_w = sqrt(1.0 - correlation * correlation); + for (int i = 0; i < n; i++) { + double previous = annRanGauss(); + pa[i][0] = (ANNcoord) previous; + for (int d = 1; d < dim; d++) { + previous = correlation*previous + std_dev_w*annRanGauss(); + pa[i][d] = (ANNcoord) previous; + } + } +} + +//---------------------------------------------------------------------- +// annCoLaplacePts - Generate correlated Laplacian distributed points +// Generates a Laplacian-Markov distribution of zero mean and unit +// variance. +//---------------------------------------------------------------------- + +void annCoLaplacePts( // correlated-Laplacian distribution + ANNpointArray pa, // point array (modified) + int n, // number of points + int dim, // dimension + double correlation) // correlation +{ + double wn; + double corr_sq = correlation * correlation; + + for (int i = 0; i < n; i++) { + double previous = annRanLaplace(); + pa[i][0] = (ANNcoord) previous; + for (int d = 1; d < dim; d++) { + double temp = annRan0(); + if (temp < corr_sq) + wn = 0.0; + else + wn = annRanLaplace(); + previous = correlation * previous + wn; + pa[i][d] = (ANNcoord) previous; + } + } +} + +//---------------------------------------------------------------------- +// annClusGaussPts - Generate clusters of Gaussian distributed points +// Cluster centers are uniformly distributed over [-1,1], and the +// standard deviation within each cluster is fixed. +// +// Note: Once cluster centers have been set, they are not changed, +// unless new_clust = true. This is so that subsequent calls generate +// points from the same distribution. It follows, of course, that any +// attempt to change the dimension or number of clusters without +// generating new clusters is asking for trouble. +// +// Note: Cluster centers are not generated by a call to uniformPts(). +// Although this could be done, it has been omitted for +// compatibility with annClusGaussPts() in the colored version, +// rand_c.cc. +//---------------------------------------------------------------------- + +void annClusGaussPts( // clustered-Gaussian distribution + ANNpointArray pa, // point array (modified) + int n, // number of points + int dim, // dimension + int n_clus, // number of colors + ANNbool new_clust, // generate new clusters. + double std_dev) // standard deviation within clusters +{ + static ANNpointArray clusters = NULL;// cluster storage + + if (clusters == NULL || new_clust) {// need new cluster centers + if (clusters != NULL) // clusters already exist + annDeallocPts(clusters); // get rid of them + clusters = annAllocPts(n_clus, dim); + // generate cluster center coords + for (int i = 0; i < n_clus; i++) { + for (int d = 0; d < dim; d++) { + clusters[i][d] = (ANNcoord) annRanUnif(-1,1); + } + } + } + + for (int i = 0; i < n; i++) { + int c = annRanInt(n_clus); // generate cluster index + for (int d = 0; d < dim; d++) { + pa[i][d] = (ANNcoord) (std_dev*annRanGauss() + clusters[c][d]); + } + } +} + +//---------------------------------------------------------------------- +// annClusOrthFlats - points clustered along orthogonal flats +// +// This distribution consists of a collection points clustered +// among a collection of axis-aligned low dimensional flats in +// the hypercube [-1,1]^d. A set of n_clus orthogonal flats are +// generated, each whose dimension is a random number between 1 +// and max_dim. The points are evenly distributed among the clusters. +// For each cluster, we generate points uniformly distributed along +// the flat within the hypercube. +// +// This is done as follows. Each cluster is defined by a d-element +// control vector whose components are either: +// +// CO_FLAG indicating that this component is to be generated +// uniformly in [-1,1], +// x a value other than CO_FLAG in the range [-1,1], +// which indicates that this coordinate is to be +// generated as x plus a Gaussian random deviation +// with the given standard deviation. +// +// The number of zero components is the dimension of the flat, which +// is a random integer in the range from 1 to max_dim. The points +// are disributed between clusters in nearly equal sized groups. +// +// Note: Once cluster centers have been set, they are not changed, +// unless new_clust = true. This is so that subsequent calls generate +// points from the same distribution. It follows, of course, that any +// attempt to change the dimension or number of clusters without +// generating new clusters is asking for trouble. +// +// To make this a bad scenario at query time, query points should be +// selected from a different distribution, e.g. uniform or Gaussian. +// +// We use a little programming trick to generate groups of roughly +// equal size. If n is the total number of points, and n_clus is +// the number of clusters, then the c-th cluster (0 <= c < n_clus) +// is given floor((n+c)/n_clus) points. It can be shown that this +// will exactly consume all n points. +// +// This procedure makes use of the utility procedure, genOrthFlat +// which generates points in one orthogonal flat, according to +// the given control vector. +// +//---------------------------------------------------------------------- +const double CO_FLAG = 999; // special flag value + +static void genOrthFlat( // generate points on an orthog flat + ANNpointArray pa, // point array + int n, // number of points + int dim, // dimension + double *control, // control vector + double std_dev) // standard deviation +{ + for (int i = 0; i < n; i++) { // generate each point + for (int d = 0; d < dim; d++) { // generate each coord + if (control[d] == CO_FLAG) // dimension on flat + pa[i][d] = (ANNcoord) annRanUnif(-1,1); + else // dimension off flat + pa[i][d] = (ANNcoord) (std_dev*annRanGauss() + control[d]); + } + } +} + +void annClusOrthFlats( // clustered along orthogonal flats + ANNpointArray pa, // point array (modified) + int n, // number of points + int dim, // dimension + int n_clus, // number of colors + ANNbool new_clust, // generate new clusters. + double std_dev, // standard deviation within clusters + int max_dim) // maximum dimension of the flats +{ + static ANNpointArray control = NULL; // control vectors + + if (control == NULL || new_clust) { // need new cluster centers + if (control != NULL) { // clusters already exist + annDeallocPts(control); // get rid of them + } + control = annAllocPts(n_clus, dim); + + for (int c = 0; c < n_clus; c++) { // generate clusters + int n_dim = 1 + annRanInt(max_dim); // number of dimensions in flat + for (int d = 0; d < dim; d++) { // generate side locations + // prob. of picking next dim + double Prob = ((double) n_dim)/((double) (dim-d)); + if (annRan0() < Prob) { // add this one to flat + control[c][d] = CO_FLAG; // flag this entry + n_dim--; // one fewer dim to fill + } + else { // don't take this one + control[c][d] = annRanUnif(-1,1);// random value in [-1,1] + } + } + } + } + int offset = 0; // offset in pa array + for (int c = 0; c < n_clus; c++) { // generate clusters + int pick = (n+c)/n_clus; // number of points to pick + // generate the points + genOrthFlat(pa+offset, pick, dim, control[c], std_dev); + offset += pick; // increment offset + } +} + +//---------------------------------------------------------------------- +// annClusEllipsoids - points clustered around axis-aligned ellipsoids +// +// This distribution consists of a collection points clustered +// among a collection of low dimensional ellipsoids whose axes +// are alligned with the coordinate axes in the hypercube [-1,1]^d. +// The objective is to model distributions in which the points are +// distributed in lower dimensional subspaces, and within this +// lower dimensional space the points are distributed with a +// Gaussian distribution (with no correlation between the +// dimensions). +// +// The distribution is given the number of clusters or "colors" +// (n_clus), maximum number of dimensions (max_dim) of the lower +// dimensional subspace, a "small" standard deviation +// (std_dev_small), and a "large" standard deviation range +// (std_dev_lo, std_dev_hi). +// +// The algorithm generates n_clus cluster centers uniformly from +// the hypercube [-1,1]^d. For each cluster, it selects the +// dimension of the subspace as a random number r between 1 and +// max_dim. These are the dimensions of the ellipsoid. Then it +// generates a d-element std dev vector whose entries are the +// standard deviation for the coordinates of each cluster in the +// distribution. Among the d-element control vector, r randomly +// chosen values are chosen uniformly from the range [std_dev_lo, +// std_dev_hi]. The remaining values are set to std_dev_small. +// +// Note that annClusGaussPts is a special case of this in which +// max_dim = 0, and std_dev = std_dev_small. +// +// If the flag new_clust is set, then new cluster centers are +// generated. +// +// This procedure makes use of the utility procedure genGauss +// which generates points distributed according to a Gaussian +// distribution. +// +//---------------------------------------------------------------------- + +static void genGauss( // generate points on a general Gaussian + ANNpointArray pa, // point array + int n, // number of points + int dim, // dimension + double *center, // center vector + double *std_dev) // standard deviation vector +{ + for (int i = 0; i < n; i++) { + for (int d = 0; d < dim; d++) { + pa[i][d] = (ANNcoord) (std_dev[d]*annRanGauss() + center[d]); + } + } +} + +void annClusEllipsoids( // clustered around ellipsoids + ANNpointArray pa, // point array (modified) + int n, // number of points + int dim, // dimension + int n_clus, // number of colors + ANNbool new_clust, // generate new clusters. + double std_dev_small, // small standard deviation + double std_dev_lo, // low standard deviation for ellipses + double std_dev_hi, // high standard deviation for ellipses + int max_dim) // maximum dimension of the flats +{ + static ANNpointArray centers = NULL; // cluster centers + static ANNpointArray std_dev = NULL; // standard deviations + + if (centers == NULL || new_clust) { // need new cluster centers + if (centers != NULL) // clusters already exist + annDeallocPts(centers); // get rid of them + if (std_dev != NULL) // std deviations already exist + annDeallocPts(std_dev); // get rid of them + + centers = annAllocPts(n_clus, dim); // alloc new clusters and devs + std_dev = annAllocPts(n_clus, dim); + + for (int i = 0; i < n_clus; i++) { // gen cluster center coords + for (int d = 0; d < dim; d++) { + centers[i][d] = (ANNcoord) annRanUnif(-1,1); + } + } + for (int c = 0; c < n_clus; c++) { // generate cluster std dev + int n_dim = 1 + annRanInt(max_dim); // number of dimensions in flat + for (int d = 0; d < dim; d++) { // generate std dev's + // prob. of picking next dim + double Prob = ((double) n_dim)/((double) (dim-d)); + if (annRan0() < Prob) { // add this one to ellipse + // generate random std dev + std_dev[c][d] = annRanUnif(std_dev_lo, std_dev_hi); + n_dim--; // one fewer dim to fill + } + else { // don't take this one + std_dev[c][d] = std_dev_small;// use small std dev + } + } + } + } + + int offset = 0; // next slot to fill + for (int c = 0; c < n_clus; c++) { // generate clusters + int pick = (n+c)/n_clus; // number of points to pick + // generate the points + genGauss(pa+offset, pick, dim, centers[c], std_dev[c]); + offset += pick; // increment offset in array + } +} + +//---------------------------------------------------------------------- +// annPlanted - Generates points from a "planted" distribution +// In high dimensional spaces, interpoint distances tend to be +// highly clustered around the mean value. Approximate nearest +// neighbor searching makes little sense in this context, unless it +// is the case that each query point is significantly closer to its +// nearest neighbor than to other points. Thus, the query points +// should be planted close to the data points. Given a source data +// set, this procedure generates a set of query points having this +// property. +// +// We are given a source data array and a standard deviation. We +// generate points as follows. We select a random point from the +// source data set, and we generate a Gaussian point centered about +// this random point and perturbed by a normal distributed random +// variable with mean zero and the given standard deviation along +// each coordinate. +// +// Note that this essentially the same a clustered Gaussian +// distribution, but where the cluster centers are given by the +// source data set. +//---------------------------------------------------------------------- + +void annPlanted( // planted nearest neighbors + ANNpointArray pa, // point array (modified) + int n, // number of points + int dim, // dimension + ANNpointArray src, // source point array + int n_src, // source size + double std_dev) // standard deviation about source +{ + for (int i = 0; i < n; i++) { + int c = annRanInt(n_src); // generate source index + for (int d = 0; d < dim; d++) { + pa[i][d] = (ANNcoord) (std_dev*annRanGauss() + src[c][d]); + } + } +} diff --git a/3rdparty/ann_1.1.1_modified/test/rand.h b/3rdparty/ann_1.1.1_modified/test/rand.h new file mode 100755 index 0000000..b87cb41 --- /dev/null +++ b/3rdparty/ann_1.1.1_modified/test/rand.h @@ -0,0 +1,131 @@ +//---------------------------------------------------------------------- +// File: rand.h +// Programmer: Sunil Arya and David Mount +// Description: Basic include file for random point generators +// Last modified: 08/04/06 (Version 1.1.1) +//---------------------------------------------------------------------- +// Copyright (c) 1997-2005 University of Maryland and Sunil Arya and +// David Mount. All Rights Reserved. +// +// This software and related documentation is part of the Approximate +// Nearest Neighbor Library (ANN). This software is provided under +// the provisions of the Lesser GNU Public License (LGPL). See the +// file ../ReadMe.txt for further information. +// +// The University of Maryland (U.M.) and the authors make no +// representations about the suitability or fitness of this software for +// any purpose. It is provided "as is" without express or implied +// warranty. +//---------------------------------------------------------------------- +// History: +// Revision 0.1 03/04/98 +// Initial release +// Revision 1.0 04/01/05 +// Added annClusOrthFlats distribution +// Changed procedure names to avoid namespace conflicts +// Added annClusFlats distribution +// Revision 1.1.1 08/04/06 +// Added planted distribution +//---------------------------------------------------------------------- + +#ifndef rand_H +#define rand_H + +//---------------------------------------------------------------------- +// Basic includes +//---------------------------------------------------------------------- +#include // standard includes (rand/random) +#include // math routines +#include // basic ANN includes + +//---------------------------------------------------------------------- +// Although random/srandom is a more reliable random number generator, +// many systems do not have it. If it is not available, set the +// preprocessor symbol ANN_NO_RANDOM, and this will substitute the use +// of rand/srand for them. +//---------------------------------------------------------------------- +#ifdef ANN_NO_RANDOM // for systems not having random() + #define ANN_RAND rand + #define ANN_SRAND srand + #define ANN_RAND_MAX RAND_MAX +#else // otherwise use rand() + #define ANN_RAND random + #define ANN_SRAND srandom + #define ANN_RAND_MAX 2147483647UL // 2**{31} - 1 + // #define ANN_RAND_MAX 1073741824UL // 2**{30} +#endif + +//---------------------------------------------------------------------- +// Globals +//---------------------------------------------------------------------- +extern int annIdum; // random number seed + +//---------------------------------------------------------------------- +// External entry points +//---------------------------------------------------------------------- + +void annUniformPts( // uniform distribution + ANNpointArray pa, // point array (modified) + int n, // number of points + int dim); // dimension + +void annGaussPts( // Gaussian distribution + ANNpointArray pa, // point array (modified) + int n, // number of points + int dim, // dimension + double std_dev); // standard deviation + +void annCoGaussPts( // correlated-Gaussian distribution + ANNpointArray pa, // point array (modified) + int n, // number of points + int dim, // dimension + double correlation); // correlation + +void annLaplacePts( // Laplacian distribution + ANNpointArray pa, // point array (modified) + int n, // number of points + int dim); // dimension + +void annCoLaplacePts( // correlated-Laplacian distribution + ANNpointArray pa, // point array (modified) + int n, // number of points + int dim, // dimension + double correlation); // correlation + +void annClusGaussPts( // clustered-Gaussian distribution + ANNpointArray pa, // point array (modified) + int n, // number of points + int dim, // dimension + int n_clus, // number of colors (clusters) + ANNbool new_clust, // generate new cluster centers + double std_dev); // standard deviation within clusters + +void annClusOrthFlats( // clustered along orthogonal flats + ANNpointArray pa, // point array (modified) + int n, // number of points + int dim, // dimension + int n_clus, // number of colors + ANNbool new_clust, // generate new clusters. + double std_dev, // standard deviation within clusters + int max_dim); // maximum dimension of the flats + +void annClusEllipsoids( // clustered around ellipsoids + ANNpointArray pa, // point array (modified) + int n, // number of points + int dim, // dimension + int n_clus, // number of colors + ANNbool new_clust, // generate new clusters. + double std_dev_small, // small standard deviation + double std_dev_lo, // low standard deviation for ellipses + double std_dev_hi, // high standard deviation for ellipses + int max_dim); // maximum dimension of the flats + +void annPlanted( // planted nearest neighbors + ANNpointArray pa, // point array (modified) + int n, // number of points + int dim, // dimension + ANNpointArray src, // source point array + int n_src, // source size + double std_dev); // standard deviation about source + +#endif diff --git a/3rdparty/ann_1.1.1_modified/test/test1-data.pts b/3rdparty/ann_1.1.1_modified/test/test1-data.pts new file mode 100755 index 0000000..191790d --- /dev/null +++ b/3rdparty/ann_1.1.1_modified/test/test1-data.pts @@ -0,0 +1,20 @@ +-0.297462 0.176102 +0.565538 -0.361496 +0.909313 -0.182785 +0.920712 0.478408 +0.167682 0.0499836 +0.305223 -0.0805835 +0.114973 0.882453 +0.742916 0.16376 +0.0724605 -0.826775 +0.690960 -0.559284 +0.188485 -0.643934 +0.749427 -0.942415 +-0.970662 -0.223466 +0.916110 0.879597 +0.927417 -0.382593 +-0.711327 0.278713 +-0.519172 0.986146 +0.135338 0.924588 +-0.0837537 0.61687 +0.0520465 0.896306 diff --git a/3rdparty/ann_1.1.1_modified/test/test1-query.pts b/3rdparty/ann_1.1.1_modified/test/test1-query.pts new file mode 100755 index 0000000..6c04dbc --- /dev/null +++ b/3rdparty/ann_1.1.1_modified/test/test1-query.pts @@ -0,0 +1,10 @@ +0.0902484 -0.207129 +-0.419567 0.485743 +0.826225 -0.30962 +0.694758 0.987088 +-0.410807 -0.465182 +-0.836501 0.490184 +0.588289 0.656408 +0.325807 0.38721 +-0.532226 -0.727036 +-0.52506 -0.853508 diff --git a/3rdparty/ann_1.1.1_modified/test/test1.in b/3rdparty/ann_1.1.1_modified/test/test1.in new file mode 100755 index 0000000..8f3255f --- /dev/null +++ b/3rdparty/ann_1.1.1_modified/test/test1.in @@ -0,0 +1,15 @@ + validate on + stats query_stats + dim 2 + data_size 20 + query_size 10 +read_data_pts test1-data.pts +read_query_pts test1-query.pts + bucket_size 1 + near_neigh 3 + split_rule suggest + shrink_rule none +build_ann + epsilon 0.0 +run_queries standard +run_queries priority diff --git a/3rdparty/ann_1.1.1_modified/test/test1.save b/3rdparty/ann_1.1.1_modified/test/test1.save new file mode 100755 index 0000000..f92a2f5 --- /dev/null +++ b/3rdparty/ann_1.1.1_modified/test/test1.save @@ -0,0 +1,76 @@ +------------------------------------------------------------ +ann_test: Version 1.0 + Copyright: David M. Mount and Sunil Arya. + Latest Revision: Mar 1, 2005. +------------------------------------------------------------ + +validate = on (Warning: this may slow execution time.) +stats = query_stats +[Read Data Points: + data_size = 20 + file_name = test1-data.pts + dim = 2 +] +[Read Query Points: + query_size = 10 + file_name = test1-query.pts + dim = 2 +] +[Build ann-structure: + split_rule = suggest + shrink_rule = none + data_size = 20 + dim = 2 + bucket_size = 1 + process_time = 0 sec + (Structure Statistics: + n_nodes = 39 (opt = 40, best if < 400) + n_leaves = 20 (0 contain no points) + n_splits = 19 + n_shrinks = 0 + empty_leaves = 0 percent (best if < 50 percent) + depth = 6 (opt = 4, best if < 17) + avg_aspect_ratio = 1.48847 (best if < 20) + ) +] +(Computing true nearest neighbors for validation. This may take time.) +[Run Queries: + query_size = 10 + dim = 2 + search_method = standard + epsilon = 0 + near_neigh = 3 + true_nn = 13 + query_time = 0 sec/query (biased by perf measurements) + (Performance stats: [ mean : stddev ]< min , max > + leaf_nodes = [ 6.3 : 2.751 ]< 4 , 11 > + splitting_nodes = [ 8.8 : 3.676 ]< 5 , 15 > + shrinking_nodes = [ 0 : 0 ]< 0 , 0 > + total_nodes = [ 15.1 : 6.35 ]< 9 , 26 > + points_visited = [ 6.3 : 2.751 ]< 4 , 11 > + coord_hits/pt = [ 0.57 : 0.2201 ]< 0.35 , 0.95 > + floating_ops_(K) = [ 0.156 : 0.0563 ]< 0.101 , 0.254 > + average_error = [ 0 : 0 ]< 0 , 0 > + rank_error = [ 0 : 0 ]< 0 , 0 > + ) +] +[Run Queries: + query_size = 10 + dim = 2 + search_method = priority + epsilon = 0 + near_neigh = 3 + true_nn = 13 + query_time = 0 sec/query (biased by perf measurements) + (Performance stats: [ mean : stddev ]< min , max > + leaf_nodes = [ 5.9 : 2.025 ]< 4 , 9 > + splitting_nodes = [ 8.7 : 3.498 ]< 5 , 15 > + shrinking_nodes = [ 0 : 0 ]< 0 , 0 > + total_nodes = [ 14.6 : 5.42 ]< 9 , 24 > + points_visited = [ 5.9 : 2.025 ]< 4 , 9 > + coord_hits/pt = [ 0.535 : 0.1667 ]< 0.35 , 0.8 > + floating_ops_(K) = [ 0.1719 : 0.05861 ]< 0.114 , 0.267 > + average_error = [ 0 : 0 ]< 0 , 0 > + rank_error = [ 0 : 0 ]< 0 , 0 > + ) +] diff --git a/3rdparty/ann_1.1.1_modified/test/test2-data.pts b/3rdparty/ann_1.1.1_modified/test/test2-data.pts new file mode 100755 index 0000000..beca833 --- /dev/null +++ b/3rdparty/ann_1.1.1_modified/test/test2-data.pts @@ -0,0 +1,5000 @@ +-0.297462 0.176102 0.565538 -0.361496 0.909313 -0.182785 0.920712 0.478408 +0.167682 0.0499836 0.305223 -0.0805835 0.114973 0.882453 0.742916 0.16376 +0.0724605 -0.826775 0.69096 -0.559284 0.188485 -0.643934 0.749427 -0.942415 +-0.970662 -0.223466 0.91611 0.879597 0.927417 -0.382593 -0.711327 0.278713 +-0.519172 0.986146 0.135338 0.924588 -0.0837537 0.61687 0.0520465 0.896306 +0.901473 -0.325291 0.0652063 -0.120574 -0.488327 0.751363 -0.697499 -0.947413 +-0.987624 0.963139 0.369289 -0.211379 -0.883509 -0.708899 0.600525 -0.582872 +-0.643506 0.71497 0.575093 0.00459678 0.539812 -0.258652 0.869204 -0.00241996 +0.772744 -0.676832 -0.897886 -0.196002 -0.628767 0.30896 0.570148 0.26033 +-0.386577 -0.874337 -0.259992 0.312917 -0.0935399 0.573666 0.239825 0.85421 +-0.796208 0.678532 -0.642731 -0.143502 -0.381581 0.356034 0.65693 0.401868 +-0.218174 0.780909 0.499682 0.523531 0.214211 -0.29589 -0.291622 0.0764825 +0.091177 0.447957 -0.848885 -0.752714 -0.40904 0.733853 0.721019 0.0583175 +0.663434 -0.344447 0.696992 0.511178 0.723191 0.159443 -0.988504 -0.898227 +-0.972966 -0.467816 -0.756507 -0.00932436 0.665708 -0.215697 0.193261 -0.73054 +-0.503446 -0.623009 0.0161417 -0.0152601 -0.586458 0.358857 0.480893 -0.481899 +0.231917 -0.216164 -0.302167 0.938651 -0.337667 -0.550426 0.304921 0.733026 +0.881044 -0.953436 0.468168 0.290473 0.624624 -0.88191 -0.173327 0.594642 +-0.616391 0.222285 0.780042 0.915883 0.152626 0.500683 0.679114 0.974283 +0.111703 -0.193509 -0.932136 0.47911 -0.99438 -0.865367 -0.0967407 -0.375721 +0.876059 0.397368 0.90637 -0.91502 -0.254416 -0.770248 -0.95772 0.192315 +0.543171 0.18398 -0.605726 -0.108319 0.366217 -0.226911 -0.46079 0.683085 +0.337 -0.447926 0.728826 -0.72444 0.25202 0.201194 0.2288 -0.595918 +-0.989507 -0.323679 0.812735 -0.786256 -0.498072 -0.386284 0.049872 0.0345352 +0.575 0.358321 -0.63589 0.0972841 -0.205853 0.931691 -0.638675 0.374053 +0.335957 -0.223622 -0.627704 0.37217 -0.994567 -0.557683 -0.57658 -0.701232 +0.0755894 0.974534 0.715631 -0.206894 -0.526541 0.501268 0.571862 0.212854 +-0.869894 -0.151379 0.296696 0.616219 0.804961 0.216442 0.169456 -0.387354 +-0.417341 -0.677607 -0.101949 0.336936 0.759843 -0.780843 0.118637 -0.563597 +0.0711953 0.678427 -0.291873 0.388899 -0.369805 -0.543637 -0.272861 0.757796 +0.164091 0.2259 0.593925 -0.60811 -0.876473 -0.859748 -0.555799 -0.0760664 +-0.0258962 0.842516 -0.273949 0.755465 0.718062 0.698204 0.411453 0.57304 +-0.718382 0.878294 0.340659 -0.866202 -0.842228 -0.358782 -0.0827611 0.19 +0.195705 0.702977 -0.139206 0.49806 0.292129 -0.711906 0.460747 0.415933 +0.0301255 -0.0247891 0.655832 -0.28719 -0.980266 0.0435323 -0.218995 -0.328763 +0.152072 0.101915 -0.733531 0.979024 -0.402967 0.996893 -0.0937599 0.560043 +-0.146347 0.638532 -0.455591 0.757517 0.736552 -0.402962 0.279153 0.392166 +0.935555 -0.435862 -0.220478 -0.216536 -0.486893 -0.999307 0.870995 -0.219688 +0.874182 0.687041 0.818154 0.888706 -0.409832 -0.0864898 0.548772 -0.2601 +0.634894 0.752933 0.694626 0.568505 -0.53463 0.823661 -0.128738 0.589029 +0.876153 -0.936599 0.558147 0.461222 0.83707 -0.394617 0.293574 0.397603 +-0.605902 0.147833 0.883365 0.934395 -0.517984 -0.518272 0.15289 -0.197287 +-0.841908 -0.189046 -0.687789 -0.400047 -0.0059939 0.636801 -0.926915 0.456876 +0.895508 -0.273416 0.809081 -0.91928 -0.203844 0.216291 0.863094 -0.268931 +-0.0429209 0.67578 -0.352266 0.411506 0.81286 0.68938 0.852793 -0.629614 +-0.339257 0.526827 0.531975 0.187766 0.22966 0.453669 -0.662857 0.298569 +-0.710394 0.81991 -0.0218645 0.713223 -0.531523 0.0181046 -0.152334 -0.116328 +-0.907862 -0.406953 0.925716 -0.539728 0.785887 -0.971309 -0.413071 0.975195 +-0.648158 -0.12306 0.122396 -0.524215 -0.586375 0.803927 -0.1532 -0.714185 +0.393997 -0.147598 0.309933 0.780862 0.756713 -0.275399 -0.333717 0.65411 +-0.0393073 0.238394 0.329379 -0.529649 0.338274 0.355714 -0.0642789 0.790386 +0.854227 -0.538818 -0.137987 -0.352855 -0.438209 0.0361346 0.277982 -0.831233 +-0.619246 0.342369 0.641529 -0.388092 -0.0129252 0.649824 0.407042 0.60878 +-0.555105 -0.682711 0.150686 0.73807 0.164439 -0.579306 0.417745 -0.585381 +-0.338461 -0.483024 -0.726698 0.0718554 -0.107977 -0.182788 -0.390668 0.342764 +-0.0275691 -0.962499 0.7334 -0.106491 0.297794 -0.33725 -0.17166 -0.638197 +0.586193 0.352238 -0.0854822 0.654726 -0.476064 0.656265 0.66643 0.852146 +0.616724 -0.709663 0.684614 -0.148603 0.354114 -0.230582 0.277798 -0.631456 +-0.905237 0.403059 -0.699449 -0.898671 0.31476 0.878856 0.336509 -0.387219 +0.45696 0.0752823 -0.171288 0.555415 0.596403 0.901777 -0.441202 0.194817 +-0.192999 -0.88183 -0.254202 0.053615 0.441121 -0.094888 -0.225595 0.658495 +0.956766 -0.897565 -0.387446 0.444515 0.300364 0.864927 -0.74361 0.263379 +0.612994 -0.854378 0.0613588 0.837108 -0.535565 0.461418 -0.412153 -0.995443 +-0.649823 -0.976708 -0.188926 -0.456246 0.364738 0.0958001 -0.581642 0.271749 +-0.367256 -0.110651 0.723649 0.948672 0.824979 0.173978 -0.804377 -0.529976 +0.700675 -0.839077 0.211385 0.781518 -0.98416 0.0010383 -0.735942 -0.820944 +-0.21899 -0.698457 0.0323291 0.358671 -0.237131 0.766883 0.722428 -0.615278 +0.925019 0.477009 0.0929154 -0.963981 -0.770475 -0.66034 -0.412604 -0.989395 +0.188951 -0.899547 0.659488 0.000167491 0.241788 -0.833199 0.890115 -0.51071 +-0.567007 0.171081 -0.313735 0.263977 -0.452386 0.058921 0.245298 -0.681204 +-0.706525 0.541778 0.337212 0.527072 0.25638 -0.199825 0.935215 -0.303665 +-0.671715 0.928582 0.382235 -0.747164 -0.70352 -0.833457 0.486566 -0.880991 +0.00239932 -0.303997 -0.580476 0.159374 -0.766379 0.662052 -0.406566 0.247808 +0.72319 0.154886 -0.681147 -0.136651 -0.658755 0.119839 -0.396113 0.341413 +-0.846152 -0.765456 0.305871 0.317983 -0.416314 -0.0165978 0.579588 0.628929 +0.214003 0.0627324 -0.375235 0.0384183 -0.543795 -0.525115 -0.335451 -0.343502 +0.373437 -0.99614 -0.29953 0.819305 -0.350093 0.623615 -0.298837 0.593464 +-0.528475 0.623557 -0.0741295 0.437527 -0.145454 -0.915441 0.63253 -0.803763 +-0.106869 -0.0737426 -0.446327 0.475409 0.626033 -0.963294 -0.299805 0.942468 +0.892964 0.170889 0.311687 0.716786 -0.39085 -0.986859 0.484436 0.995274 +-0.706496 -0.537461 -0.762442 -0.904428 -0.433185 0.564872 0.470109 0.123817 +-0.262784 0.902148 0.774335 0.663736 -0.624472 -0.0984558 -0.337614 -0.720203 +-0.866238 -0.375162 -0.278362 -0.900335 0.530593 -0.519309 0.947509 -0.864766 +0.541422 -0.517111 0.969367 -0.00489309 -0.999942 -0.813808 -0.232481 -0.546827 +0.72111 0.500202 0.225871 0.601391 -0.530886 0.0662849 0.25603 0.0269803 +-0.55402 -0.733515 -0.474599 0.293354 -0.830255 -0.632472 0.591209 -0.958008 +0.190085 -0.953903 -0.102418 -0.31927 -0.808489 -0.0164479 0.965921 0.859736 +-0.045593 0.0761261 0.815027 0.0726849 -0.739992 -0.324571 0.37797 0.766814 +-0.53319 0.870626 0.882681 0.876645 0.335389 -0.91757 -0.645386 0.695575 +-0.654247 0.936453 0.3427 -0.897004 -0.631964 0.645085 -0.722994 0.782582 +-0.596276 -0.969859 -0.379385 0.862274 -0.162028 -0.78108 -0.779214 0.657125 +-0.389549 -0.139342 -0.226078 -0.629354 0.658266 0.749323 -0.712046 -0.463735 +-0.515695 -0.590335 -0.260976 0.836529 -0.43391 0.992155 -0.372528 0.256853 +-0.728294 -0.545911 -0.932695 0.607095 0.252943 0.679097 0.357944 -0.544717 +-0.522439 -0.597402 0.789478 0.216115 0.308621 0.906395 -0.446619 0.311532 +-0.354402 0.859965 0.73919 0.564627 0.799822 0.0650698 0.796785 0.0643813 +-0.822488 0.356159 0.73162 -0.950163 0.0307983 0.707154 -0.0150776 0.768888 +0.293397 0.470361 0.999707 -0.105452 0.265617 -0.0899393 -0.139308 0.247726 +-0.814213 0.000165209 0.743174 0.723423 -0.495665 -0.569869 0.20464 0.226699 +0.797078 -0.910643 0.638684 0.708226 -0.473388 -0.682395 0.937041 0.962691 +-0.599728 -0.0115274 0.0426607 0.77116 0.0906074 -0.225591 -0.476268 0.435468 +-0.825989 0.96699 0.402459 0.746756 0.0971159 0.960465 0.734328 -0.616388 +0.120195 -0.770287 0.700157 -0.362726 -0.977723 0.801883 0.572893 -0.86369 +-0.640466 0.160692 -0.0868509 0.337732 -0.365243 0.287518 0.00417294 -0.221229 +0.808683 0.9046 -0.714129 -0.142761 -0.885229 -0.491364 0.0646426 0.46698 +-0.639558 0.162556 0.261822 -0.785512 0.621871 -0.173387 0.57077 0.885758 +0.937931 -0.895746 -0.424813 0.396573 0.119719 -0.777125 0.503697 -0.929197 +0.317781 -0.437269 0.905695 -0.233495 0.531483 -0.117484 -0.433652 -0.210996 +0.237316 0.870417 0.499755 0.154555 -0.855437 0.993596 0.606112 -0.484495 +-0.871784 -0.00282462 -0.999517 -0.404143 0.332888 -0.401976 0.917133 -0.062792 +0.984408 0.979356 0.444104 -0.22763 0.780517 -0.335999 0.996501 -0.312278 +-0.959262 0.424283 -0.860627 -0.0694463 -0.733332 0.24356 0.704195 -0.629933 +-0.568364 -0.926862 -0.660816 -0.717476 -0.430908 0.312 0.0532743 0.621865 +-0.604698 -0.195759 -0.528853 -0.0751889 0.634449 0.376064 0.0408941 -0.233978 +0.86435 0.881091 -0.381823 0.415693 0.329333 0.533571 -0.472293 0.0100355 +-0.848382 -0.421601 0.325856 0.0402104 0.0375616 0.160701 -0.0488019 -0.821447 +-0.830876 -0.577031 0.668062 0.244227 0.786971 0.641181 0.185922 0.557849 +-0.222176 0.873644 -0.842672 0.0822688 0.1352 -0.720617 -0.753538 0.351144 +0.33882 -0.69687 0.670628 0.854046 0.0373551 -0.245094 -0.685852 0.465421 +-0.255688 -0.533918 -0.636433 0.782628 -0.908956 0.257956 0.127924 0.176628 +0.346114 -0.825391 -0.798756 -0.673796 0.0464586 -0.564756 -0.649834 -0.93799 +-0.872198 -0.525028 0.655929 -0.33057 0.578602 -0.0980388 0.18996 0.624275 +0.0377116 0.20725 0.534533 0.941527 -0.49673 -0.302692 -0.305545 -0.434091 +-0.892842 0.272028 0.621542 0.880808 0.461609 -0.575953 0.00533898 0.407816 +0.798509 -0.652709 -0.953708 0.363563 -0.6924 -0.506284 -0.854446 -0.900739 +0.42303 0.140742 -0.982719 -0.486268 0.619562 0.242502 -0.691598 -0.82573 +0.281322 0.738703 -0.745971 -0.921568 -0.0965933 -0.458791 -0.0239777 -0.391412 +0.737994 0.506724 0.408581 0.914318 0.944033 0.470169 0.517512 -0.582022 +0.854393 0.638642 0.925928 -0.266903 0.249463 0.348856 -0.373119 -0.272758 +0.359209 -0.00257437 -0.0371977 -0.0566714 -0.104687 -0.927367 -0.878102 0.915497 +-0.980826 -0.831506 -0.392008 0.98813 -0.796466 0.932677 0.751053 -0.268263 +-0.931643 -0.837905 0.246372 0.244269 -0.894743 -0.789657 0.791453 -0.811077 +0.354346 -0.970716 -0.632394 -0.321787 0.00575287 -0.309555 -0.0123187 0.175477 +0.180362 -0.284787 0.777856 0.93745 0.839013 0.184939 0.102242 0.0720602 +0.256497 -0.470638 -0.507036 -0.321465 0.848751 -0.745974 -0.921839 -0.743009 +0.393878 -0.842621 0.0562395 0.922845 0.141543 0.0318582 0.0349252 -0.0904675 +-0.229106 0.696157 0.770312 0.0376088 -0.673544 -0.282075 -0.90807 0.162741 +-0.926558 -0.74316 -0.55728 0.278791 -0.497663 -0.893535 0.3457 -0.395518 +-0.336464 -0.829243 -0.711496 0.136823 -0.599154 0.237323 -0.18359 0.770229 +-0.145921 0.482492 -0.71054 0.987273 0.741452 0.729582 -0.0281977 0.917108 +-0.458362 0.0658424 -0.0279174 0.856926 0.709681 -0.783696 -0.961252 0.688503 +0.973118 0.849728 -0.814271 -0.469361 -0.653283 -0.104521 -0.960699 0.245302 +-0.911346 0.999177 -0.148402 -0.549248 -0.128112 -0.0623094 0.602351 0.0236946 +-0.766632 -0.244277 0.434017 -0.175912 0.530235 0.51945 0.933491 0.795817 +0.135716 0.0875148 -0.117921 -0.964061 -0.884529 -0.444931 -0.113143 -0.49756 +-0.155353 0.381952 -0.549882 0.304886 0.085705 0.409697 0.326658 -0.401568 +0.661057 0.785486 -0.682437 -0.371898 -0.47805 -0.545586 0.349588 0.0399875 +0.283964 0.117143 -0.388108 -0.0946642 0.73372 0.41185 -0.117624 0.269631 +0.665895 -0.170339 -0.367877 -0.134399 -0.338441 -0.0982146 0.128465 -0.30942 +-0.588202 -0.901838 0.206724 0.15348 0.906219 -0.990114 0.668819 -0.942605 +-0.367757 0.180424 -0.472094 0.731779 -0.329447 -0.332298 -0.0121267 0.29385 +-0.739351 -0.68326 -0.789779 0.293027 0.248523 0.574044 0.282377 -0.654182 +-0.327741 0.769444 -0.45172 -0.485067 -0.687509 0.712137 -0.245604 -0.802737 +0.462452 0.287437 -0.862168 -0.0115283 0.180286 -0.0755134 0.00532817 -0.314071 +0.299825 0.304382 0.790399 0.539985 -0.132184 -0.116863 -0.450487 0.177349 +0.46726 -0.497682 -0.919405 -0.136883 -0.239881 0.38042 -0.657034 -0.58277 +0.408087 -0.352302 0.533597 -0.221728 -0.401964 -0.468149 -0.582847 0.0768009 +0.698612 0.482192 -0.863302 -0.848353 -0.637903 0.889848 0.338528 -0.121574 +-0.57544 0.386562 0.196173 -0.395793 -0.658929 -0.0862365 -0.134087 -0.503467 +-0.596217 -0.889683 -0.297276 -0.228813 0.0438439 -0.57411 -0.615104 0.398265 +0.723855 -0.750041 -0.539976 -0.936613 0.355356 0.352291 0.839291 -0.88281 +0.299302 -0.219931 0.0672785 -0.288995 -0.218354 0.800048 0.754672 0.318256 +0.572547 0.260125 0.792013 0.244274 -0.640165 -0.595878 0.403371 -0.188557 +-0.894039 -0.638266 -0.856429 0.24191 -0.296712 0.976669 0.609767 0.573067 +-0.445127 -0.973205 0.388411 0.603933 0.853165 -0.441861 0.0535785 -0.648563 +0.770047 -0.82881 -0.295716 0.465457 0.538209 0.157396 0.730344 0.786522 +-0.275821 -0.913917 0.839515 0.0459649 -0.20751 -0.125001 -0.805479 -0.657282 +-0.851585 0.989703 0.947285 -0.727628 0.831814 0.625855 -0.63615 -0.381488 +-0.0655911 -0.808206 0.600867 0.899066 -0.278109 0.910354 0.473494 0.142634 +0.808929 -0.168982 -0.847232 0.459863 -0.910526 0.656583 -0.285735 -0.404819 +-0.0320648 -0.825178 -0.387763 0.0331624 -0.946075 0.551552 0.328367 -0.520419 +0.664296 0.307382 0.78977 0.998128 -0.784913 -0.623012 -0.855921 -0.38578 +0.417838 -0.0115991 -0.188635 0.546942 0.0187048 -0.513309 0.0977445 0.683181 +-0.654691 -0.707864 -0.655903 -0.27102 0.494584 -0.64251 -0.822701 0.948065 +0.0520526 -0.7392 0.301475 -0.367139 0.0226178 0.3656 0.493187 -0.833477 +0.546452 0.25182 -0.240083 0.663908 0.233792 -0.40176 -0.523707 -0.958207 +0.637881 -0.434266 0.937711 -0.884153 0.967427 -0.2417 0.423966 0.338289 +0.580809 0.251979 -0.627208 -0.799636 0.556872 -0.367169 0.251983 0.792732 +-0.976935 0.0116265 0.982995 -0.792821 -0.951236 -0.669607 -0.580612 0.69541 +-0.477557 -0.462184 -0.940225 -0.358341 -0.908887 0.453559 0.248522 -0.777471 +-0.445277 0.195476 0.00953749 -0.637083 0.666037 -0.318406 -0.510122 0.157887 +-0.233629 0.404874 0.757236 0.73776 0.885794 0.604826 -0.0677713 -0.572471 +0.77151 0.61707 0.415902 0.310543 -0.580839 0.489709 -0.650273 -0.325419 +0.412893 -0.955568 0.956084 0.130488 0.0726098 -0.569455 0.596294 0.839599 +-0.298585 0.246649 0.950922 -0.735803 -0.0357101 -0.0360352 -0.260508 -0.817461 +0.216787 -0.426844 0.107673 -0.515836 0.249557 -0.532994 -0.352223 0.62053 +-0.0782868 -0.00041177 -0.100859 -0.0858553 0.847271 0.689137 0.170866 -0.47497 +0.0473733 0.288673 0.984627 -0.675146 -0.767599 -0.305889 -0.727514 -0.0746797 +0.443565 0.113971 -0.128798 0.689816 0.331141 0.878447 -0.0820185 -0.685195 +0.152155 0.232343 0.620349 0.810755 0.805267 -0.645301 0.371111 0.999969 +0.771033 -0.518711 -0.46167 -0.778356 -0.303337 0.338897 -0.788653 -0.641049 +-0.601934 -0.331875 -0.356332 -0.97196 -0.428272 0.489866 0.815942 -0.0266128 +-0.827429 -0.195289 0.949786 0.0602482 0.614102 -0.629974 -0.88504 -0.797522 +0.092041 0.467493 -0.907994 0.859784 0.514958 0.195214 0.533135 0.443255 +0.373345 -0.834546 -0.990051 0.482633 -0.576983 -0.78488 0.258782 0.143983 +0.0252336 -0.35831 0.267115 0.602956 0.567865 -0.0744821 0.350106 -0.965662 +-0.0995878 -0.0662973 -0.403141 0.363913 0.0576992 -0.778704 -0.0906451 0.132037 +0.901541 0.193029 0.958542 -0.279989 0.748255 0.523988 -0.178916 -0.122212 +0.662571 0.599512 -0.692118 -0.140859 0.943946 0.374829 -0.577019 -0.317454 +-0.569703 -0.421185 0.209724 -0.0272069 -0.825385 -0.299885 -0.702465 -0.841303 +-0.625022 -0.939014 -0.646478 -0.929883 -0.872406 0.240342 0.329466 0.982431 +-0.548367 -0.233095 -0.934782 0.563045 0.458769 0.805903 -0.395638 -0.335692 +0.0298147 0.93917 -0.641635 -0.93952 0.808355 0.0620558 0.272624 0.91682 +0.685732 -0.454605 0.895198 0.535367 -0.195084 0.798437 0.78036 0.0728712 +0.748921 0.613001 -0.586845 -0.368276 0.607438 0.44901 -0.860836 0.0710699 +0.160246 -0.912767 0.793088 -0.0789475 0.86137 -0.646717 -0.418569 -0.504365 +-0.714887 -0.158707 -0.312812 0.0879129 0.150715 0.0164083 -0.488934 0.0938861 +-0.671302 0.831696 0.215217 -0.394584 0.86001 -0.41718 -0.584042 -0.28624 +-0.493184 0.740163 -0.570726 -0.0863252 0.396933 0.379573 0.761653 -0.529462 +-0.0744424 0.903038 -0.587916 -0.666138 -0.602562 0.580486 -0.0215209 0.610203 +-0.0184679 0.767602 -0.617271 -0.70958 -0.401369 0.76296 0.730919 -0.0675959 +0.202507 0.0970708 0.813517 -0.379081 0.500343 -0.891592 -0.947009 -0.130569 +-0.3293 0.0190248 0.130283 0.0215455 0.468149 0.487996 -0.91982 0.263618 +0.166966 0.257769 -0.870823 -0.742854 0.347766 -0.517503 0.0991567 -0.937943 +0.177273 0.654459 -0.12014 0.0798352 0.328079 -0.41541 -0.981877 0.650573 +-0.416929 0.864492 -0.616631 -0.543461 -0.816447 0.627673 0.12846 -0.0171272 +-0.00616636 -0.927528 0.748037 0.627434 -0.763391 -0.43345 -0.631288 0.529012 +0.283554 -0.648569 0.872216 -0.546691 0.576309 0.996444 -0.243198 -0.933623 +-0.930564 0.547018 0.18931 -0.698586 0.151469 -0.842365 0.637498 -0.163121 +-0.00261068 0.704759 0.27449 -0.242241 -0.607262 0.580741 0.245604 0.92185 +0.582213 -0.823424 -0.10619 -0.990174 -0.0735172 -0.909104 0.520764 -0.820255 +0.900447 -0.94827 0.155163 0.417331 0.0114175 -0.00628024 -0.910574 -0.283187 +-0.187358 -0.139705 0.562407 0.292244 0.890497 -0.977713 -0.0115719 -0.0382545 +-0.690194 -0.0973353 -0.155404 0.0832844 0.162616 0.568383 -0.753987 0.435038 +0.291621 -0.5899 0.396798 -0.0742157 0.0331849 0.684662 0.655881 -0.261075 +0.872796 0.850441 0.888413 -0.469705 -0.100169 -0.416602 0.926549 0.101557 +-0.873468 -0.197107 -0.675292 0.49963 0.365601 -0.429868 0.132738 0.0865636 +-0.103572 -0.0652441 0.763867 -0.803298 0.438389 0.0059869 0.961121 0.149466 +0.156736 -0.240026 -0.016764 0.493385 0.197859 0.959152 -0.559036 -0.355299 +-0.129929 -0.100494 -0.324997 -0.932065 -0.439955 -0.908395 -0.815456 -0.0763179 +-0.51843 -0.429505 -0.404266 0.773386 0.669001 0.405253 -0.362474 -0.657479 +-0.326284 0.91793 -0.113967 0.27732 0.0900128 -0.0141997 -0.101568 -0.177652 +0.253364 0.944982 -0.981293 0.681051 0.220457 0.678805 0.117425 0.81758 +0.76245 0.882228 0.588842 -0.0966178 0.0846132 -0.814894 -0.599803 -0.157418 +0.602957 0.776127 0.436864 -0.0315237 -0.380279 -0.577336 -0.687014 -0.40178 +-0.138798 -0.105822 0.841678 -0.0263646 0.640965 -0.921257 -0.787924 0.262715 +-0.332249 0.699275 0.160189 -0.277205 -0.0486838 -0.735237 -0.00192763 0.880213 +-0.0118682 -0.907686 -0.196037 0.14673 -0.583138 0.602316 0.174741 -0.242854 +0.128001 0.0702017 -0.520309 0.950693 0.983046 0.976974 -0.696315 0.339818 +-0.220227 0.959419 -0.447921 0.772382 0.245944 -0.231034 0.781869 0.566132 +-0.739302 0.827347 0.564051 -0.450396 0.131851 -0.627369 0.0814461 0.792095 +-0.707655 0.761645 -0.347376 0.952777 -0.782499 0.000215353 0.130336 -0.123162 +0.200002 -0.651541 0.765025 -0.502356 -0.000344623 -0.349748 -0.700109 -0.847312 +0.636117 -0.129245 0.676774 -0.576404 0.0827873 -0.203879 0.701524 -0.809694 +0.434977 0.179651 -0.290366 -0.0791204 0.263298 0.639721 0.629461 0.670814 +0.00186741 -0.432625 -0.00158293 -0.831541 -0.823676 0.472602 -0.961719 -0.66056 +-0.984705 0.190091 0.565003 -0.884111 -0.559499 0.233506 -0.713269 0.547719 +0.355859 -0.245797 -0.742472 -0.677628 -0.970212 0.149376 -0.392426 0.544144 +-0.147631 0.907208 0.391922 -0.312962 0.963317 0.973541 0.291944 0.448386 +0.29835 -0.982196 0.707691 0.449114 0.460402 -0.526763 -0.993272 -0.782804 +0.304143 0.122948 0.493004 -0.717811 -0.37569 0.844869 -0.788104 0.617283 +0.743039 0.955465 0.235476 0.707989 -0.066996 0.420538 -0.721263 0.825603 +0.0494904 0.559394 -0.670968 -0.191983 -0.0920988 0.22054 0.580336 0.547939 +-0.188052 0.239844 0.27005 -0.188772 0.592379 -0.193501 0.501971 0.892349 +0.859846 0.604318 0.715631 -0.0350142 -0.386098 -0.253564 0.626177 -0.227681 +-0.867934 -0.332436 0.279554 -0.389763 0.528261 0.264091 0.292911 -0.265678 +0.566285 -0.180326 0.809413 0.526826 0.941549 0.383176 -0.515368 -0.477709 +0.965153 0.397489 0.82954 -0.696508 -0.64787 -0.324891 0.614777 -0.965558 +-0.0796109 -0.790563 -0.845366 -0.650756 -0.956735 -0.616139 0.246225 0.633251 +-0.0871428 -0.472832 -0.105659 0.22979 0.375183 0.486171 0.119254 0.872361 +0.681773 -0.0360835 0.262123 0.0616381 0.530013 -0.916977 -0.0935366 0.980232 +0.132328 -0.570867 -0.10049 -0.327286 0.515566 -0.46658 -0.539151 -0.91762 +0.296509 -0.4306 0.212748 -0.819735 0.863 0.396073 -0.804393 0.938419 +0.301962 0.126031 -0.422601 -0.538843 -0.730788 -0.672684 0.357379 0.19197 +0.0436512 0.947901 -0.200379 0.294212 -0.263388 0.889449 -0.158338 0.742788 +-0.857164 -0.794924 0.960183 0.462791 0.909592 0.621129 -0.979916 -0.483498 +-0.950737 0.509248 -0.415408 0.339305 0.0395366 0.326865 -0.0173424 -0.184521 +0.926779 -0.695107 0.178422 -0.0335427 0.558427 0.873586 -0.798514 0.59477 +0.0116028 -0.639165 -0.99498 -0.817078 -0.75414 0.997985 -0.149242 -0.757341 +-0.854019 -0.0510839 0.0171485 -0.499207 0.312593 0.354565 -0.726875 -0.509954 +-0.0973036 -0.97082 0.686793 -0.523589 -0.0157376 0.782279 0.692317 0.0632247 +0.778373 0.749199 -0.288588 -0.125306 0.483981 0.692396 0.0789724 0.616047 +0.563043 -0.109978 0.236749 -0.460316 -0.0637256 -0.939167 -0.218829 0.671097 +0.96692 0.293831 -0.285168 -0.125799 0.760805 0.894275 0.417545 -0.673229 +0.768438 0.955127 0.752221 0.554419 0.586243 -0.299753 0.0538873 0.857052 +-0.251428 -0.178101 0.598394 -0.783113 -0.312652 0.751426 -0.327546 -0.417581 +-0.373495 0.580349 -0.671673 0.191876 -0.524553 0.480578 -0.697009 0.121584 +0.940414 -0.420872 -0.399819 -0.734092 0.228542 0.438589 -0.656298 -0.94457 +-0.215194 -0.255169 0.305846 -0.796909 0.983606 -0.502691 0.736112 -0.0623938 +0.40672 -0.387792 0.688816 0.498798 -0.450368 0.732224 -0.592412 0.104975 +-0.81188 0.208479 0.16719 -0.649639 0.912674 0.644033 0.714323 -0.332735 +-0.58738 0.069026 0.281932 -0.93151 0.11176 -0.847874 -0.907921 -0.618208 +-0.0166421 0.32995 -0.413312 0.987446 -0.663446 -0.848917 -0.660166 0.918778 +-0.472898 -0.619355 0.081946 0.977692 0.424855 -0.698976 -0.247465 -0.414872 +-0.709575 0.437799 0.819009 -0.603688 0.911107 -0.0593075 0.6424 -0.841602 +-0.301987 0.0139387 0.703714 -0.142194 0.346217 0.886637 0.351668 0.0953612 +-0.798206 0.515067 0.350112 -0.118378 0.627946 -0.196216 -0.119848 -0.666486 +-0.0960841 -0.0905893 -0.401865 0.367503 0.522487 0.172046 0.405863 -0.703013 +0.681311 0.251237 0.726527 -0.788047 0.608837 0.87006 0.19911 -0.756488 +-0.367448 0.847017 -0.483341 -0.934484 0.484957 0.310926 -0.141077 0.799676 +0.129294 -0.939129 0.434043 0.928614 -0.784234 -0.155421 0.56559 0.42488 +-0.81969 -0.365195 -0.0990222 -0.659092 0.935576 0.997549 0.261516 0.479096 +-0.30282 0.597882 -0.0400856 -0.359952 0.65592 0.0900222 0.526692 0.387967 +-0.106283 0.985081 0.479074 0.825846 0.485159 0.432059 0.825164 0.975166 +-0.629375 -0.271564 -0.865987 -0.513429 -0.363984 -0.760674 -0.725854 -0.883243 +-0.724934 -0.00115233 -0.800608 -0.585264 -0.854157 -0.767145 -0.503937 -0.859145 +-0.437062 0.218128 0.339113 0.777923 -0.129217 -0.45072 -0.694891 0.195081 +0.253737 -0.0208482 -0.0750381 -0.924029 0.996339 0.482457 -0.625736 -0.844848 +-0.536997 -0.122948 -0.952199 0.298501 -0.572839 0.803669 0.846795 -0.204753 +-0.814245 0.856752 -0.854549 0.0121502 -0.244473 -0.477249 -0.926179 0.38471 +-0.622075 0.950099 -0.234329 -0.635224 0.689427 -0.242433 0.887506 -0.363187 +-0.268139 -0.997729 -0.0682811 0.697112 0.717812 0.817084 0.821962 0.354532 +0.281839 0.122168 -0.872511 -0.0787717 -0.433926 -0.297339 0.234911 -0.700059 +-0.442467 0.964492 -0.434611 0.75884 -0.90507 -0.0809998 -0.123331 -0.486963 +0.629516 -0.671634 -0.667595 -0.680669 0.00628531 -0.0160714 -0.0682033 0.404433 +0.493993 -0.5621 -0.300429 -0.541774 -0.609693 0.477616 -0.611964 0.777714 +-0.820392 -0.194439 -0.843868 0.548159 0.933125 0.0682794 0.90077 -0.912988 +0.346994 0.460742 0.0711625 0.143112 -0.322344 0.706363 0.581826 0.85121 +-0.340411 0.13449 -0.340575 -0.846684 -0.478047 0.177675 -0.409092 0.334076 +-0.944282 -0.814166 -0.83139 0.548307 0.512799 0.51377 -0.977379 -0.256738 +0.327306 0.449161 -0.589384 -0.377997 -0.980277 -0.317601 -0.825479 0.668345 +0.476947 -0.231503 -0.230226 0.291133 0.867569 -0.483659 -0.699588 -0.866898 +-0.417091 0.0796027 0.74786 0.663857 0.495741 0.14875 0.834061 -0.406024 +0.473261 0.140245 -0.84201 -0.513092 0.173684 -0.171047 -0.270411 -0.740897 +-0.279202 0.242499 -0.0531898 0.01875 -0.368387 0.11644 -0.22019 -0.844834 +-0.183708 -0.737165 0.850556 -0.345713 0.653315 0.773672 0.645283 0.926115 +0.505334 0.348271 0.312431 -0.0445571 -0.329575 -0.271828 0.0056622 -0.666408 +-0.649974 -0.683124 -0.000972694 0.317819 0.0950826 -0.979677 -0.816691 -0.619386 +0.679926 0.0729124 -0.823981 0.2991 0.448544 0.0401972 -0.756171 0.371164 +-0.840083 0.959263 -0.830681 -0.598575 0.0837273 -0.733904 -0.79105 0.484256 +0.412114 -0.407305 0.943331 0.608559 -0.323736 -0.0952373 -0.456893 0.464353 +-0.670586 -0.865889 -0.40852 -0.0711989 -0.0330043 0.374488 -0.747553 -0.00226158 +0.751611 0.0783874 0.80301 0.184682 -0.327936 0.246717 -0.910611 0.264174 +0.514412 -0.473595 0.6392 0.668385 0.84815 0.827681 0.222833 -0.37884 +-0.180982 -0.361258 0.407307 0.744511 0.469552 -0.544188 -0.780816 0.833719 +-0.665318 0.209095 0.0774345 -0.130712 -0.763488 0.624944 -0.350726 0.0769057 +0.703306 0.147031 -0.108821 0.0217217 -0.441957 -0.235285 -0.946216 0.0952471 +0.468648 0.922992 0.32141 0.611106 -0.828832 0.329353 0.0698133 -0.0894808 +-0.682444 0.155833 -0.76055 -0.926175 0.552841 -0.127039 0.215525 -0.129632 +0.928951 -0.145428 -0.983338 -0.242727 0.570928 0.484034 -0.372604 -0.0987295 +-0.373366 -0.583479 0.00910048 -0.678305 0.168452 0.754081 0.646345 -0.499036 +-0.17539 0.263483 0.988656 0.322723 -0.732819 -0.532137 0.0227312 -0.635047 +0.525417 0.0649438 0.6975 0.0404561 -0.544791 0.620582 -0.709808 -0.477295 +-0.334942 0.324497 0.847588 0.662796 -0.132046 -0.482696 0.991537 0.923082 +-0.20068 0.74449 -0.489799 0.63289 -0.866579 -0.282239 -0.625266 0.843382 +-0.135319 0.873575 -0.561836 -0.576817 0.0431551 -0.848525 -0.335841 0.774156 +-0.649615 0.740492 -0.645749 -0.361132 -0.205354 -0.675642 0.931562 -0.533698 +0.192217 0.0832572 0.543377 0.408635 -0.943419 -0.646391 -0.967457 -0.481755 +0.281202 0.868417 -0.114176 0.671657 -0.153338 0.73452 0.574116 -0.955257 +0.557163 -0.223188 0.962339 0.452624 0.613705 0.900581 0.645901 0.329851 +-0.598393 -0.487692 -0.602136 -0.472586 0.881521 -0.883675 0.537421 0.0677523 +0.263266 0.203235 -0.829731 0.189255 0.102929 -0.79814 0.254124 0.612319 +-0.0713455 -0.375519 0.419743 -0.225415 0.964394 0.109494 -0.709433 -0.331222 +0.843804 -0.183654 -0.341667 0.537221 0.250964 0.701849 0.730312 0.0704345 +0.284205 -0.673898 -0.298678 -0.468715 -0.997889 0.732829 -0.825887 -0.94121 +0.904557 -0.0467022 0.475033 0.270049 -0.736836 0.470416 0.0970923 -0.598756 +-0.424076 0.136916 0.524596 0.374663 0.203456 -0.681284 0.0263966 -0.699673 +0.0130246 -0.0532326 -0.0615701 -0.339619 -0.852729 -0.0357394 -0.83475 -0.89354 +0.987203 -0.0959013 0.0851994 -0.724039 -0.26461 -0.682084 -0.47515 -0.177745 +-0.877482 -0.537615 0.248853 0.0758161 0.28464 -0.359021 0.713614 -0.549527 +-0.336066 0.723184 0.424637 -0.609074 -0.0372588 0.694688 0.161025 0.00549367 +0.450152 0.566343 0.0599369 0.60323 0.331496 0.156181 0.228176 0.197368 +0.584285 0.30046 0.66568 0.818899 0.0788251 0.0212786 -0.352632 -0.489074 +0.479954 -0.201059 0.474697 0.74284 -0.143695 -0.829963 0.326414 -0.832921 +0.988085 -0.278915 0.605341 -0.152305 0.78077 0.881069 -0.818724 0.474738 +-0.436552 0.712162 -0.0635374 0.244215 -0.571331 0.204936 -0.111836 -0.0682449 +-0.0709972 0.574723 -0.909965 0.335705 0.269968 0.465588 -0.918693 0.091444 +0.98582 -0.0754521 -0.547262 -0.380355 -0.0867791 -0.0747597 -0.0866743 0.42908 +0.419141 0.100784 -0.917742 -0.638208 0.971851 0.0873342 0.508788 0.511826 +0.254514 -0.379363 0.344608 -0.253227 -0.126856 0.211372 -0.760917 -0.0370611 +0.461313 0.0262896 0.634298 0.447411 -0.731852 0.734685 -0.349677 -0.158824 +0.334537 -0.180378 -0.0369194 0.256403 0.0446841 -0.493594 0.54217 0.294292 +-0.0925171 -0.180654 0.701996 -0.634091 0.173207 0.15828 0.0562676 0.831866 +0.878095 0.981166 0.563838 -0.527609 -0.891458 0.55635 -0.369676 -0.816483 +-0.505458 0.434734 0.837874 -0.634362 -0.295461 -0.310891 -0.270371 0.78806 +0.0550179 -0.2884 -0.946651 0.276765 0.765948 0.803761 0.987376 0.339298 +0.363058 -0.200504 0.269844 -0.846002 0.821406 -0.899048 0.452818 -0.965904 +0.240888 -0.723617 0.850907 0.77804 0.416406 -0.881811 0.475796 -0.706006 +0.949923 0.703903 -0.577528 0.484688 -0.151916 -0.614139 0.278253 0.750611 +-0.562183 -0.840888 0.201305 -0.863502 -0.841988 0.963908 0.553503 -0.265581 +0.556983 0.914997 0.175021 0.676986 -0.515886 -0.708668 -0.0416682 -0.240647 +-0.470628 0.0114494 0.556913 -0.473869 -0.647865 -0.857761 -0.131074 -0.5774 +0.100571 0.572337 -0.86835 -0.772119 -0.895905 0.185833 0.820328 0.50272 +-0.145288 -0.879785 0.735591 0.143136 0.183041 -0.848571 0.770955 0.895035 +0.860503 0.638752 -0.923975 -0.776266 -0.0339876 0.392074 -0.409834 0.904356 +0.665608 -0.377151 0.539506 -0.885743 0.587655 -0.247009 0.929327 0.41128 +-0.333 0.693968 -0.200711 0.825734 -0.709479 -0.580446 0.0255974 0.0384008 +0.131076 0.347609 -0.372302 -0.57721 0.115747 -0.296598 -0.683664 0.3911 +-0.764893 0.147385 0.886291 -0.185818 -0.662009 -0.772474 0.27857 0.249265 +0.801509 0.807046 0.367588 -0.854962 0.493405 -0.290518 -0.641011 -0.775767 +0.286831 -0.691024 -0.444923 -0.0338499 0.339135 0.0460713 -0.329586 0.76591 +0.802283 0.0193814 -0.789017 0.473164 0.0212489 -0.635791 0.6961 -0.596351 +-0.596642 -0.998232 0.0136001 -0.276802 0.915992 0.691271 -0.300357 0.320925 +0.637074 -0.0804191 0.151036 -0.351331 0.542885 -0.289594 -0.821636 0.743944 +0.578408 0.0780374 -0.281724 -0.544973 -0.716897 0.932581 -0.476661 0.019135 +-0.380527 -0.443295 -0.546443 -0.0261096 -0.533649 -0.386573 -0.693799 -0.478674 +-0.046097 0.13709 -0.241074 -0.312128 -0.172706 0.414745 0.677841 -0.971149 +0.363223 0.655025 0.273508 -0.728881 0.288561 -0.417987 0.216158 0.297134 +-0.0229396 0.274697 -0.572701 -0.00854633 -0.891319 0.497741 0.707254 -0.0715516 +-0.166197 -0.175614 -0.382295 0.221078 0.31008 -0.40528 0.555547 0.206632 +0.0926327 -0.897087 -0.537789 0.423398 0.615531 -0.383331 0.485904 0.520743 +-0.992939 -0.571718 -0.43316 -0.714167 0.849937 0.646327 0.94783 -0.198636 +-0.174774 0.806576 -0.0249607 0.65846 -0.477966 0.209632 -0.397504 0.388044 +-0.558192 -0.478565 -0.071865 -0.788793 0.33193 -0.259333 -0.32999 0.807504 +0.407392 -0.293065 -0.620214 -0.342446 0.655084 -0.709866 0.276465 0.472418 +-0.742165 0.464929 -0.735399 0.827727 0.501501 -0.745092 0.151738 0.895937 +0.728639 -0.673592 0.805636 0.407921 -0.27646 -0.595708 0.786234 0.277305 +0.965162 -0.299604 0.0224402 -0.736399 0.99229 0.403263 -0.672184 -0.195072 +0.732057 0.242696 -0.842716 -0.981741 0.910077 0.37308 0.189254 -0.711949 +-0.112862 0.508801 -0.784562 -0.260952 -0.141216 -0.884663 0.659708 -0.645477 +0.137565 0.961694 -0.402307 -0.237631 0.879642 0.818971 -0.934519 -0.156967 +-0.369574 -0.448501 -0.0253348 -0.156766 -0.774773 -0.315431 0.0272124 0.383744 +-0.265289 0.0890106 -0.341694 0.749724 0.691768 0.210621 -0.946144 0.692789 +-0.366599 0.272157 -0.355304 -0.198237 0.896213 0.627534 0.0261838 -0.141295 +0.45492 0.302257 -0.0468647 0.649361 0.158008 0.117297 0.282796 0.953413 +-0.159449 -0.296339 -0.0335203 -0.523948 -0.872181 0.88031 -0.285115 -0.0267583 +0.572534 -0.0236469 0.274608 -0.931378 -0.0453279 -0.712016 -0.380912 -0.424716 +-0.934625 -0.456438 -0.661584 -0.116224 0.977467 0.0170871 -0.115195 -0.792868 +0.0637042 0.0229216 -0.00697457 -0.0529792 0.964685 0.231166 0.229974 0.3553 +0.789391 0.0625273 0.0602473 0.244722 0.645841 0.17548 -0.689109 -0.244772 +-0.690024 -0.095846 0.900466 -0.208639 -0.969796 -0.227784 0.108467 0.0271702 +-0.15074 -0.833923 0.128248 0.430724 0.482692 -0.969463 -0.632649 -0.145399 +-0.37713 0.0774293 -0.236528 0.922563 -0.81271 0.299678 -0.932778 0.492247 +0.188545 -0.529713 0.624936 -0.469141 0.987246 0.431504 0.854037 -0.762246 +-0.0552025 0.372414 0.869929 0.159012 -0.687834 -0.139634 -0.39739 -0.498658 +0.578699 0.910161 -0.154866 0.769141 -0.659524 -0.891779 -0.353737 0.622878 +0.901131 -0.957311 0.384053 -0.244528 -0.698428 0.14552 0.451192 0.547946 +-0.560394 0.785912 -0.671458 0.637162 -0.608589 -0.109387 -0.0562739 0.749011 +-0.235035 0.975024 -0.720015 0.423625 -0.194715 -0.844956 0.904767 0.334961 +-0.250385 0.278003 -0.960428 -0.560063 0.459592 0.549588 -0.587277 -0.317793 +-0.672238 -0.0193841 -0.609921 -0.743995 0.347307 -0.950875 0.304479 -0.0682391 +-0.738912 0.871768 -0.80597 0.943043 0.584323 0.184483 -0.823518 -0.450663 +-0.299693 0.658124 -0.0920184 -0.517681 -0.167155 -0.885931 -0.252782 -0.859972 +0.301004 -0.715509 -0.878621 0.343585 -0.305201 0.300754 -0.0804703 0.88171 +0.146689 -0.0406856 0.502733 -0.728415 0.667357 -0.681166 0.635528 -0.569843 +-0.605522 -0.389553 0.97596 -0.544883 -0.499722 -0.739967 0.936435 0.569182 +0.115188 -0.933271 0.618308 0.771824 -0.273154 0.973603 -0.548468 -0.377346 +0.289198 0.400707 0.341007 0.242693 0.629546 -0.841992 -0.902661 -0.680752 +0.790193 0.450719 -0.676837 -0.998801 -0.953709 -0.514285 -0.608983 -0.063873 +-0.845608 0.13869 0.308817 0.573333 -0.111053 0.850081 -0.130535 -0.626792 +0.557385 -0.668952 -0.517374 -0.837176 -0.0946193 -0.342095 0.329456 -0.725253 +-0.996383 0.298292 0.613085 0.279964 -0.341768 -0.0500832 0.836943 -0.382539 +-0.257443 -0.334236 0.341544 -0.762126 0.830931 -0.755055 -0.629344 -0.366851 +-0.00481919 0.954593 -0.807561 -0.415451 0.182417 -0.154364 -0.364854 0.835567 +-0.237453 0.829338 -0.0698139 0.596618 -0.349329 0.796922 -0.890895 0.178854 +-0.64816 0.967274 0.945728 0.734379 -0.994984 -0.931034 -0.267934 -0.924349 +0.473281 0.542363 -0.339317 -0.232638 0.56468 0.349527 -0.929153 0.944001 +-0.289266 0.588317 -0.0176391 0.735485 -0.997942 -0.885337 0.20366 0.112654 +-0.558884 0.940195 -0.889159 -0.673324 -0.995184 0.0471987 0.185648 0.949386 +0.196061 -0.930484 0.00639625 0.637149 -0.307618 0.998405 -0.0294353 -0.594105 +0.0552998 -0.11803 0.382521 0.119049 -0.0321779 0.0782131 -0.412258 -0.704946 +-0.76376 0.628232 0.832789 -0.0694965 0.126545 0.0439213 0.607367 0.335537 +-0.579641 -0.740907 -0.351012 0.88042 0.633933 -0.241521 -0.625853 0.625727 +0.560657 -0.526308 -0.829512 -0.802544 -0.670859 0.1376 -0.991083 -0.257036 +0.3691 0.714599 0.399681 -0.317525 0.271002 0.575944 -0.506426 0.00972196 +-0.0498428 0.299066 0.767105 0.383995 -0.0707558 -0.928393 0.797721 0.546903 +0.166821 -0.883638 -0.596293 0.511645 0.46263 -0.248875 0.885323 0.692066 +-0.466133 -0.432107 -0.921983 -0.0902192 -0.0991836 -0.391786 -0.227445 0.170829 +-0.19356 0.0902635 0.688871 0.763108 0.416828 -0.274712 -0.225387 -0.250981 +0.958279 -0.0519003 -0.323055 -0.685343 0.315093 -0.0760968 -0.136304 0.711662 +-0.368057 0.920782 -0.149644 0.991639 0.72477 0.312863 -0.493577 0.588193 +0.492952 0.505702 -0.689534 -0.634408 -0.794865 -0.562177 0.25718 0.61149 +-0.852158 0.425178 0.201842 -0.356184 -0.717887 -0.778701 -0.220887 -0.820186 +-0.0936795 -0.0265722 -0.297521 -0.983691 0.949468 0.688647 0.524366 -0.671308 +0.68033 -0.645956 -0.580308 -0.0508978 0.644663 0.504026 0.446264 -0.672277 +-0.594764 0.318113 -0.918364 0.932367 0.309752 0.428791 0.543422 -0.15454 +0.623329 -0.275694 -0.235256 0.276813 -0.679186 -0.694129 0.315376 0.85814 +0.265107 -0.403794 0.154762 0.599364 -0.183366 -0.486222 -0.603675 -0.967964 +0.00159266 0.345222 -0.71807 -0.691834 0.112445 0.421346 0.762269 -0.165408 +-0.583827 0.307018 -0.406981 -0.0445757 -0.0681729 0.596643 0.159363 0.441615 +-0.255382 0.406932 0.653552 -0.677342 -0.735519 0.896659 -0.541693 0.590323 +0.816429 0.683525 0.663796 -0.105868 0.335355 0.144513 0.6088 -0.71196 +0.905091 0.461875 0.748461 -0.631851 -0.22203 0.835632 0.701367 0.494544 +0.703343 0.960029 0.0364494 0.753041 -0.460295 -0.320132 -0.0610723 -0.990114 +0.841779 -0.607848 0.564599 0.626047 -0.274692 -0.474232 0.548603 0.574891 +-0.915994 0.245424 -0.980944 -0.0317871 -0.0595176 0.965232 -0.190413 0.309468 +0.265267 0.328185 -0.755614 0.0244079 0.859598 0.599836 0.182496 0.0869868 +0.678263 0.64813 -0.140393 0.965751 0.266443 0.896842 0.487152 0.366294 +-0.374064 -0.425941 0.364628 0.0217471 -0.819208 0.996813 -0.0982184 0.752044 +0.852448 0.954876 0.831177 -0.557424 -0.570651 0.0823429 0.194555 0.547086 +-0.00831721 0.374227 -0.169066 -0.393005 0.881835 -0.172907 -0.292724 -0.637595 +0.353033 -0.128384 0.017136 -0.967027 -0.0267362 -0.784259 0.738713 -0.479217 +0.781405 -0.0243668 0.0528664 -0.42977 0.309843 -0.981927 -0.458865 -0.373984 +0.686457 -0.859277 -0.4438 -0.319241 0.925002 -0.757436 0.371107 0.785337 +0.0687281 -0.227704 -0.716049 0.618614 0.809186 -0.323491 0.21301 0.558899 +-0.473516 -0.260677 -0.653484 -0.337515 -0.471802 -0.246028 -0.657803 -0.641357 +0.257195 0.333542 0.144983 0.906458 -0.221926 -0.179038 0.292535 -0.238652 +-0.444515 -0.597292 -0.140636 -0.138139 0.457578 -0.369601 -0.993449 0.59436 +0.331135 0.318457 -0.149608 0.906395 -0.566347 -0.603843 -0.157088 -0.745638 +0.854311 0.156158 -0.0937663 -0.177936 -0.331773 0.806838 0.0753236 0.48724 +0.734952 -0.803158 -0.789472 0.758886 0.667306 -0.658141 -0.453839 0.543691 +-0.0331302 0.673922 -0.0424407 -0.134746 0.980874 0.822616 -0.805295 -0.469583 +-0.241237 0.870376 0.537135 -0.257666 0.615657 0.718748 0.268031 0.0668715 +-0.397724 -0.830642 0.091248 -0.457051 0.802427 0.700776 0.65742 0.198644 +-0.0240565 0.027776 -0.976066 0.175095 0.00973869 -0.367777 0.571263 -0.210909 +-0.636901 0.827491 0.550051 0.183547 -0.585769 -0.370358 0.166339 -0.330917 +0.565224 -0.939577 -0.458682 0.9171 0.467549 -0.759357 -0.183062 -0.284542 +0.363913 -0.886314 -0.0413776 -0.351271 0.869881 -0.231896 -0.0871829 0.615437 +0.724921 0.342138 -0.891776 0.419366 -0.258134 -0.000122475 -0.329935 0.225855 +-0.0432628 -0.216738 0.848847 0.956695 0.363199 0.704409 -0.0599769 0.239999 +0.583261 0.411418 0.166635 -0.518895 0.240378 0.225784 -0.494503 -0.403743 +-0.150441 -0.474896 0.223493 0.588753 -0.737874 0.347776 -0.0871865 0.548901 +0.615756 0.829829 -0.939853 0.172147 -0.433539 -0.840024 -0.892388 -0.501087 +-0.203193 0.535319 -0.308958 0.587202 0.416361 -0.758153 -0.00744435 0.91033 +0.340677 -0.39525 -0.648123 -0.573656 0.610198 0.517564 0.154642 0.596717 +0.367509 0.610028 0.547478 0.925487 -0.637296 0.456543 0.65985 0.065585 +0.681616 0.260005 0.557239 0.923106 0.262336 -0.720056 0.164285 -0.620676 +-0.359834 -0.882962 -0.897786 0.429535 -0.702074 -0.766166 0.964263 -0.233261 +-0.237624 -0.790538 0.582138 -0.83352 -0.288147 -0.133838 -0.774226 -0.786283 +-0.748984 0.428917 0.231277 0.0558497 0.557488 0.154205 0.987467 -0.168732 +-0.348904 0.121741 0.887333 0.116473 0.335068 -0.607775 -0.0431827 0.970477 +-0.242826 -0.85206 0.794075 -0.587371 0.440513 -0.825878 0.695418 -0.755786 +-0.810785 -0.21277 -0.443549 0.435317 -0.278752 -0.532933 -0.793485 -0.699513 +0.122329 0.104611 -0.42504 0.606581 -0.444402 -0.435393 0.267759 -0.92598 +-0.274437 -0.920847 -0.972989 0.363913 0.83342 0.69625 -0.856296 -0.124536 +0.148277 -0.249354 0.692935 -0.133297 0.157911 -0.999667 -0.0986783 0.154615 +0.398736 0.531996 0.865322 -0.640611 -0.960076 0.131621 -0.0102551 0.392264 +0.0295367 -0.352277 0.0305908 -0.0388276 0.735082 0.0192332 0.643458 0.853862 +0.763109 0.93205 -0.576725 -0.184735 0.0222924 -0.960971 -0.630598 0.09047 +-0.602926 -0.465131 0.58007 -0.231048 0.32844 -0.408513 -0.0611884 -0.19347 +-0.565888 -0.406195 -0.50918 0.930646 0.116224 -0.284601 -0.939067 0.0921216 +0.381663 0.359147 -0.79389 0.915396 0.525897 0.553779 0.294566 -0.559796 +-0.955401 0.773148 -0.030864 0.47044 -0.485715 0.577058 0.501647 0.148485 +0.649985 0.187823 0.257612 0.234403 0.562823 -0.232794 0.466006 0.866358 +-0.967552 0.698507 0.973176 0.713228 -0.50343 -0.465678 0.565198 0.240488 +0.731744 0.860012 0.285087 -0.774288 -0.31705 0.157733 0.734589 -0.548765 +-0.575229 -0.389898 0.958725 0.580675 -0.549094 -0.881739 0.158066 0.504872 +0.248021 -0.711627 0.256419 0.982309 -0.819137 0.701679 -0.788117 -0.655522 +-0.977658 0.996174 0.222797 0.698182 -0.796879 -0.217397 -0.152265 0.00811935 +0.734854 -0.230751 -0.738565 -0.416549 0.148439 -0.734261 -0.0874713 0.197338 +0.431863 -0.617537 -0.369529 -0.152348 -0.547801 -0.920963 -0.0698932 0.115991 +0.863838 0.467625 -0.590202 0.731417 -0.111158 -0.0108276 -0.141117 0.388947 +-0.460448 -0.00358 -0.431949 0.448622 0.120444 0.281721 0.27916 -0.48844 +0.748822 0.72906 -0.814608 0.720227 -0.620837 -0.933228 0.592673 -0.715689 +-0.127509 -0.880016 0.23264 0.576413 -0.124992 0.581517 -0.119071 0.100669 +-0.754226 -0.130812 -0.83735 -0.467967 0.472236 0.277411 -0.604429 -0.495482 +0.468701 0.67957 -0.183306 -0.288385 0.536939 0.455635 -0.101417 0.480532 +0.131223 0.739641 -0.75708 0.521296 -0.74665 0.681778 -0.0432743 0.957592 +0.984619 -0.793028 -0.492116 -0.101056 -0.660434 0.716401 0.479151 0.711206 +-0.836175 0.751225 0.772158 -0.164186 -0.88874 0.507996 0.704264 0.600089 +0.0560691 -0.376625 -0.548074 0.299412 -0.934393 0.514745 0.499281 -0.904859 +-0.203049 -0.0873434 -0.917847 -0.78063 0.83491 0.464976 -0.579076 -0.659313 +-0.921206 0.566957 -0.314978 -0.765169 0.190357 -0.250332 -0.96709 -0.584996 +-0.905697 0.862693 -0.534835 -0.184377 0.797527 -0.0554951 0.484088 -0.35793 +0.00261279 0.478205 0.0564249 -0.543993 -0.40644 0.963891 0.699088 0.157682 +0.140747 0.236231 -0.240204 -0.897283 -0.725133 0.37085 0.375177 -0.690336 +-0.393322 0.628132 0.435174 0.309909 0.924293 -0.585999 -0.665178 -0.173297 +-0.741262 0.286904 0.466634 -0.11632 -0.332832 -0.298046 -0.129136 0.201002 +0.576918 -0.756116 -0.444226 0.219374 -0.644529 0.592023 -0.0436092 0.0751134 +-0.17499 0.0570784 -0.362637 -0.044791 0.137197 0.0987175 0.565834 0.843653 +0.234925 -0.852282 -0.420832 0.0505005 -0.693224 -0.355616 -0.286931 -0.786463 +0.225882 0.771209 -0.398083 -0.846683 0.86721 -0.242219 -0.784639 -0.0026907 +-0.293549 0.6105 -0.320505 -0.411405 0.724511 0.912 -0.00921325 -0.921633 +-0.52302 0.802085 -0.742938 -0.0560601 0.751242 -0.82785 0.432593 -0.969704 +-0.844137 0.394251 0.895536 -0.465464 0.00182795 0.411128 -0.890464 0.825167 +0.0722815 0.923014 -0.217788 0.731359 0.919544 -0.400096 -0.801688 0.679209 +-0.753574 -0.448565 -0.779133 -0.310703 0.681793 0.376105 -0.00229828 0.886417 +-0.0785138 -0.174144 0.364852 -0.724653 -0.00245858 -0.110276 -0.14491 0.901792 +0.363281 0.0423805 -0.446579 -0.414802 0.488114 0.635499 0.984603 0.754421 +-0.232388 -0.913675 -0.829001 0.483703 0.157112 -0.0105208 0.0124018 0.982927 +0.732588 -0.403144 0.0405142 0.666896 -0.983896 -0.88312 -0.598408 -0.102636 +0.235983 -0.194344 -0.899966 0.818913 -0.307926 0.605328 0.00938062 -0.979785 +0.00486521 -0.296775 -0.336182 -0.773916 -0.135781 -0.254591 -0.887617 -0.22463 +0.776907 -0.00507311 0.575003 0.0972172 0.0917146 0.299598 0.908971 0.371128 +0.154097 0.662223 -0.327984 0.809309 0.505141 -0.801119 -0.640887 -0.175704 +-0.621285 -0.93906 0.88343 -0.335682 -0.414518 -0.270482 -0.21631 0.938979 +-0.131579 0.914072 -0.764339 0.685784 0.948479 0.952585 -0.964771 -0.631935 +0.306776 -0.212961 -0.315976 0.614698 -0.0898369 0.780489 0.360809 0.416606 +-0.468014 0.404283 -0.96396 -0.189297 -0.791442 0.773885 0.587043 -0.0782596 +-0.480517 0.70835 -0.211486 0.732444 -0.276463 -0.75612 0.726469 -0.719253 +-0.622656 -0.699469 -0.946631 -0.530526 -0.0741792 0.961648 -0.727138 -0.679362 +0.474522 -0.510806 -0.284161 0.478636 0.241942 0.793324 0.864238 -0.0188507 +-0.861661 0.0884048 0.189929 0.755653 0.498479 -0.103323 -0.214646 0.876877 +0.540655 0.468286 0.761424 0.234187 0.311882 -0.949578 -0.301205 0.351382 +0.153818 0.516557 -0.833179 0.779226 0.833771 0.332097 0.682078 -0.621843 +0.054233 0.352558 -0.312155 0.823886 -0.967821 -0.442538 -0.940638 0.928046 +-0.287713 -0.320047 0.915229 -0.506667 0.836883 0.81554 0.523616 -0.477319 +-0.666288 -0.756207 -0.4391 -0.166991 -0.463488 -0.224589 -0.567453 -0.813841 +0.921816 0.233968 0.503249 -0.780836 0.661116 -0.878693 0.272364 0.653018 +0.0982718 0.955343 -0.00116737 0.0515896 -0.900309 0.162698 -0.405466 -0.622419 +0.274121 0.00532402 -0.278421 0.187935 0.737302 -0.288707 0.468913 0.0727112 +-0.645074 0.396039 0.918114 0.699024 -0.64576 -0.346968 0.968304 0.509498 +0.959975 0.275805 0.770663 0.264169 -0.546041 0.0894624 0.916164 -0.531846 +-0.220712 0.176343 -0.285256 0.428888 -0.806397 0.470583 -0.436048 0.352457 +0.827127 0.663989 0.197963 0.295046 -0.162647 -0.629688 0.0927522 0.528304 +-0.0948724 -0.449113 0.15219 -0.681607 0.439602 -0.556948 0.827255 0.30789 +0.633612 0.177003 0.197909 0.0607861 0.813352 -0.478578 0.849208 -0.0559195 +-0.621938 -0.938186 -0.344109 0.344632 -0.653958 -0.2633 -0.401879 -0.224379 +0.569173 -0.186415 -0.394973 -0.911254 -0.126121 0.722517 -0.336122 -0.606807 +0.336334 -0.737192 0.646788 0.590685 0.908107 -0.52367 0.407099 0.7393 +0.179463 0.948656 -0.959131 0.660897 0.973779 -0.819904 0.777307 0.707572 +0.805222 0.47696 0.792415 -0.153259 -0.34436 0.489184 0.178155 -0.676351 +-0.366101 -0.905987 0.370496 0.913466 -0.576158 0.0581566 -0.630027 0.624738 +0.240351 0.423925 -0.965376 -0.6155 0.167325 0.37747 0.6683 0.800608 +0.733028 -0.985473 -0.231205 0.147117 0.860921 0.797464 0.325777 -0.272022 +0.99405 -0.719682 -0.514499 -0.625007 -0.194546 0.149532 0.769961 -0.47702 +0.969417 -0.560176 0.136726 -0.084649 0.389179 0.916409 0.362402 -0.140272 +0.572255 0.967829 0.269192 0.278367 -0.512647 -0.80402 -0.424621 -0.495134 +0.74935 0.330136 0.37711 -0.219175 0.126386 0.643323 -0.0506832 -0.637607 +0.677819 0.147174 -0.883904 -0.674671 -0.702196 -0.609653 -0.360972 -0.411869 +0.0473199 0.885646 -0.447124 -0.310008 0.0355451 -0.661485 0.839227 0.301716 +-0.785281 0.731203 -0.962014 0.882407 0.762484 -0.0631677 0.0461328 0.556399 +0.836915 -0.880616 -0.20345 0.195834 -0.280629 -0.254905 0.541897 -0.944301 +-0.953188 0.637588 -0.999833 0.204481 0.493087 0.438599 -0.372864 0.646388 +-0.172526 0.402667 -0.0226788 0.132275 0.84847 -0.975069 0.400631 0.699629 +0.60715 -0.237398 0.851343 -0.469023 -0.246306 -0.126365 -0.22573 0.801854 +0.973127 -0.336768 0.426195 -0.82333 0.686216 -0.272869 -0.376275 -0.184089 +-0.834437 0.984273 -0.690948 0.536909 -0.969076 0.0569001 0.0944958 -0.847545 +0.350913 0.742704 -0.0888435 0.661019 -0.180019 -0.850345 -0.732034 0.287116 +0.42318 -0.0784443 0.76352 -0.287245 -0.0895427 0.107832 0.240182 -0.618388 +0.733383 -0.822303 0.779953 0.349853 -0.741592 0.23154 -0.164536 0.939154 +-0.529592 -0.0682568 -0.850412 0.236524 0.951305 0.835525 0.876292 0.434137 +-0.889841 -0.0897097 0.271357 -0.113305 0.541147 -0.65919 0.247945 -0.818463 +0.103092 -0.527044 -0.896553 0.594214 -0.937021 0.284395 0.297577 0.125347 +0.495554 -0.439143 -0.251043 0.0232232 0.865299 -0.109303 -0.171189 -0.875226 +0.57307 -0.578949 -0.608173 -0.684583 -0.107306 0.0709148 -0.0246238 -0.0624843 +-0.715761 -0.273036 -0.0475207 -0.574422 -0.70413 -0.840535 -0.823665 0.810428 +0.0481544 -0.712767 -0.756264 0.224144 -0.567741 0.944005 0.259615 -0.692591 +0.979149 0.0738153 -0.596483 0.0797648 0.0513163 -0.538501 -0.800301 0.706676 +-0.557846 -0.394867 0.63447 -0.100628 0.712387 0.00607913 0.515474 -0.208223 +0.425765 0.518023 0.770432 -0.926689 -0.327345 0.82541 0.425676 -0.334855 +-0.832356 0.754433 0.639186 -0.907847 -0.646159 -0.842478 -0.7382 -0.944428 +-0.527099 -0.544425 -0.0802107 -0.536255 -0.69648 -0.947971 -0.97821 -0.671188 +-0.385232 0.671455 0.676753 -0.388442 -0.770879 -0.455934 -0.532879 0.0420204 +-0.877769 -0.0561897 0.3066 0.977451 0.400127 0.473004 -0.664074 0.538949 +0.700269 0.477385 0.416165 0.283032 -0.736692 0.96748 0.818292 0.393618 +-0.591449 -0.66396 -0.552564 -0.248555 -0.0538592 0.0149328 -0.715989 -0.301757 +-0.961856 -0.480595 -0.224266 -0.600355 -0.313135 -0.373333 0.621861 0.119805 +-0.0289787 -0.867208 -0.352495 -0.670025 0.839881 0.416516 -0.584136 0.82359 +0.873906 -0.455942 0.744804 -0.701634 -0.240905 0.44596 0.264161 -0.894824 +0.650648 -0.210614 0.695181 0.230454 0.134154 -0.378442 0.68298 0.974372 +-0.616655 -0.654828 0.106464 -0.35322 -0.855384 0.868473 -0.197215 0.922002 +-0.713525 -0.0435003 -0.864588 0.656072 0.868593 0.173013 0.00212877 -0.775055 +0.911177 0.793915 -0.374071 0.495409 -0.771561 -0.163497 -0.880465 0.09295 +0.662883 0.901321 -0.682988 0.51054 0.905844 -0.645043 -0.378337 0.849723 +0.0722367 0.944185 -0.192626 0.234598 -0.73386 -0.920794 -0.355706 0.101956 +-0.743876 -0.37457 0.789534 -0.670556 -0.477737 -0.0691285 -0.602454 -0.991518 +-0.469718 -0.939276 -0.442335 -0.407247 -0.193899 0.378604 -0.376943 0.766453 +0.814289 -0.641182 0.415069 -0.407948 -0.693805 -0.118009 -0.836475 -0.116981 +-0.329729 -0.370857 -0.437681 0.100834 0.454515 -0.971288 0.171979 -0.705728 +-0.500349 -0.146904 -0.918759 -0.193116 0.0928924 -0.251882 -0.593915 0.51246 +-0.864867 -0.312605 -0.324324 -0.877312 0.816048 -0.69731 0.96412 0.654401 +0.652711 0.186415 0.873401 -0.835052 0.398853 -0.00100471 -0.795989 -0.40831 +0.122206 -0.673676 -0.455272 -0.977259 0.691944 -0.46109 0.6438 0.763297 +-0.254397 -0.978692 -0.930729 -0.491152 0.458397 0.58434 0.355154 0.975119 +0.221987 0.498127 -0.276902 -0.5598 -0.958984 -0.45776 0.846432 -0.723353 +-0.170915 0.730709 0.451446 -0.436452 -0.387114 0.680566 -0.107194 -0.536168 +0.375747 -0.0831178 0.965975 0.947039 0.452417 0.288673 0.852116 0.882378 +-0.299774 -0.00230704 0.707474 -0.0906821 0.06061 0.77999 0.355836 0.560197 +0.623911 0.51013 0.0369807 0.501648 -0.0966267 0.41681 -0.119264 0.114759 +-0.515069 0.52296 0.962316 -0.547326 -0.304037 0.0283051 -0.439579 -0.478872 +0.918665 0.580931 0.783695 -0.604643 0.896858 -0.688057 0.217374 -0.218612 +-0.692767 0.905495 0.850366 -0.612433 -0.573719 0.606877 0.918137 -0.645591 +0.0845819 -0.384892 0.898472 -0.591445 0.261452 0.880986 -0.170558 0.748134 +-0.845194 0.489728 -0.892401 -0.523616 0.608827 0.298731 -0.513934 -0.599622 +-0.441465 0.890703 -0.883215 0.847724 0.4496 -0.0929575 0.607727 -0.0115072 +-0.302087 0.0883766 -0.0491913 0.572896 -0.656623 0.200039 -0.99019 -0.622263 +-0.0611687 0.559847 -0.160513 0.914396 -0.789758 -0.0322675 0.243944 -0.873612 +0.383492 -0.227006 0.857748 -0.691379 -0.119268 0.906544 0.0676283 -0.941901 +0.362183 0.110534 0.118316 0.355861 0.538892 -0.499587 -0.476783 -0.80109 +-0.395513 0.313769 -0.854058 0.312002 -0.980265 0.589553 -0.231006 0.255777 +0.408053 0.417829 0.481733 -0.789267 0.91658 -0.771752 -0.61247 -0.842104 +-0.907614 0.915451 0.687083 0.89316 -0.181949 0.519122 0.195216 -0.897277 +0.109486 0.648038 -0.966609 -0.191132 -0.515898 -0.400711 -0.0251581 -0.694888 +0.507398 -0.436314 -0.918196 0.886837 -0.89631 -0.298954 0.133382 0.987254 +-0.847858 -0.890704 -0.485997 -0.243752 0.404901 0.056256 -0.0530081 -0.663969 +0.207087 0.022262 0.293799 0.738427 -0.659575 -0.37452 -0.222543 -0.660175 +-0.54719 0.5073 -0.203394 0.42828 0.270223 -0.268403 -0.576576 -0.196087 +-0.201262 0.865856 0.62896 0.166951 -0.797367 -0.394524 -0.223129 -0.708701 +-0.101959 -0.725559 0.798945 0.271839 0.0692502 -0.979058 -0.99892 0.0419966 +0.53545 0.922479 0.778318 -0.781238 0.398312 -0.577787 0.897057 -0.744146 +-0.62022 -0.373106 0.908867 -0.685094 -0.393671 -0.0789112 0.591853 0.681938 +0.616694 0.0851848 -0.781406 0.650371 -0.00992323 -0.725596 -0.725729 -0.212746 +-0.629517 -0.897357 0.530401 0.197561 -0.723204 0.5815 0.486909 0.791385 +0.332906 0.875343 -0.0229728 -0.26032 0.538418 -0.840019 -0.523949 0.923199 +0.454019 0.42438 -0.000983201 0.477238 -0.554344 0.0758181 -0.443851 0.645411 +0.704459 -0.16484 -0.283569 0.419795 0.515995 -0.707621 -0.127128 -0.00579609 +0.788275 0.123504 0.21663 0.573395 -0.115169 -0.266037 0.701736 0.196113 +0.356737 -0.529321 -0.616597 0.916584 0.437721 0.578161 -0.941679 0.0760077 +-0.360035 0.079058 0.246907 0.378028 0.0462992 -0.427991 -0.167935 0.784062 +-0.867621 0.228581 -0.0104227 -0.226125 -0.119777 0.778775 0.492626 0.928746 +-0.197559 -0.939388 0.868273 0.261652 -0.900631 -0.382494 -0.347938 0.537963 +-0.114143 0.123893 -0.106055 -0.416625 -0.104318 0.12035 0.509647 -0.428684 +0.978424 0.876989 0.838603 -0.0887538 0.334778 -0.66115 -0.335466 0.343176 +-0.820025 -0.908138 0.874542 0.314593 -0.818071 -0.257017 -0.836866 0.0887811 +0.656548 -0.291373 0.933373 0.256272 -0.898607 -0.399715 -0.503581 0.394048 +0.362886 -0.549097 -0.0870603 -0.0583177 -0.72757 0.925943 -0.133231 -0.547881 +-0.108116 0.469448 -0.145514 0.558468 0.799794 0.0360063 -0.703488 0.514873 +-0.256492 -0.113745 -0.45644 0.877031 -0.155099 0.675648 0.0225446 0.889124 +-0.997824 -0.275151 -0.0816768 -0.117119 -0.199962 0.793884 0.135836 -0.517578 +-0.85956 0.762486 -0.632285 0.0615244 -0.704787 0.880425 0.528767 -0.945482 +-0.0437808 -0.369173 0.113644 -0.0113774 -0.834023 0.500225 0.966642 -0.35483 +0.690285 -0.131156 -0.759254 0.853709 0.458314 -0.797575 -0.603178 0.439594 +0.0444817 0.901667 0.0658321 0.789708 -0.10006 -0.528711 0.955701 -0.980148 +0.306586 0.866876 -0.080387 0.245783 0.717017 -0.809001 0.484824 0.782623 +-0.632013 -0.677042 -0.014166 -0.995771 0.970022 0.883048 -0.133481 0.628743 +-0.688194 -0.17207 0.686293 -0.41734 0.496601 -0.074268 0.75973 -0.490093 +0.771534 0.0304465 0.296286 -0.27083 -0.836945 0.123148 0.902198 0.043503 +0.647878 0.224745 0.609021 0.193213 0.179697 -0.605319 0.79772 0.0173175 +0.075366 0.294109 0.417857 -0.326649 -0.565692 -0.474323 -0.224209 -0.666198 +0.133962 -0.427347 0.00741124 0.63284 -0.949592 -0.392416 -0.442946 -0.733096 +-0.561296 0.924184 0.626388 0.247312 -0.681852 -0.271314 -0.635791 0.857857 +0.477755 -0.998126 0.542267 -0.684616 0.657366 0.842474 -0.731047 0.880506 +0.0999426 -0.788276 0.907031 -0.66577 -0.34713 -0.813638 -0.924886 0.0799697 +0.000974058 0.879143 -0.917237 -0.0658394 0.536149 -0.897546 0.517589 0.878819 +-0.00976123 -0.234068 -0.195261 -0.865796 0.909201 0.694289 0.181825 -0.830926 +0.68441 0.462165 -0.502413 0.0498697 -0.0708356 -0.707278 -0.863705 0.926523 +0.0847125 -0.0993972 -0.93918 0.52679 0.899829 -0.154097 0.467359 -0.377423 +0.782743 0.212666 -0.882375 0.662286 0.0817885 0.466493 -0.947296 -0.561182 +0.984956 0.995736 -0.956063 -0.675235 -0.208349 -0.279891 -0.562258 0.0238953 +-0.973069 0.308437 -0.818147 0.46848 0.72665 -0.655727 -0.541774 0.671946 +0.187228 0.634296 -0.383014 -0.0904102 0.259885 0.57266 0.959802 -0.389448 +-0.684243 -0.11016 -0.953932 -0.0495816 -0.131607 0.728629 0.697163 -0.721516 +-0.181418 -0.382948 -0.722509 -0.695144 0.0787127 -0.245262 -0.498048 -0.739869 +0.830178 0.914575 -0.454904 0.745695 -0.239102 0.553015 0.294614 -0.175759 +0.984054 -0.0581829 0.446551 0.73675 0.868628 0.707773 0.717387 0.0422369 +-0.730983 0.194695 0.0743934 0.25252 -0.267732 -0.471383 0.297828 0.0322841 +0.655256 -0.560019 -0.641681 0.661432 -0.266061 0.052572 -0.955081 -0.282528 +-0.415285 0.226273 -0.90604 0.184445 -0.989665 -0.0912558 0.61949 -0.805614 +-0.500972 0.611884 0.8492 0.7098 -0.0588433 0.348041 -0.414189 -0.858704 +-0.648221 -0.759019 -0.811462 0.271084 0.737339 0.0153722 -0.592471 -0.826956 +-0.323454 0.611526 0.859839 0.716502 0.292863 -0.9588 -0.678535 0.938754 +0.154796 -0.115514 -0.739081 0.573985 -0.631539 0.589655 -0.14831 0.549913 +0.0906076 -0.651253 0.0283252 -0.946034 0.560444 -0.0612346 -0.199005 0.220301 +-0.0975565 -0.465731 -0.933866 0.111095 -0.465958 -0.828732 0.729906 -0.921229 +0.541046 0.152101 0.627026 0.919834 0.980592 0.278033 -0.357773 0.685608 +0.163656 -0.820748 0.219899 -0.101181 0.375515 -0.933299 0.515094 -0.8771 +0.603751 0.221247 0.446117 -0.989361 0.993051 0.0945616 -0.628518 0.819361 +-0.828535 -0.801524 -0.987235 0.928514 -0.0875665 0.861287 0.716365 -0.898612 +-0.170997 0.917167 -0.71157 0.475425 0.768015 -0.696612 0.204355 0.570293 +-0.827697 -0.28734 -0.0396248 -0.306508 -0.317003 -0.914925 -0.271988 -0.21109 +-0.841498 -0.252688 0.316755 -0.38155 -0.332195 0.289861 0.7727 -0.320135 +0.510168 0.169364 -0.498838 0.209328 0.514153 0.593351 -0.380651 0.311029 +-0.602362 0.678853 0.273814 -0.366988 0.909642 -0.953147 0.882081 0.884784 +0.521452 -0.495593 0.160721 0.176382 0.458051 -0.617109 -0.172667 0.145778 +0.817753 -0.144844 0.443388 0.514065 -0.635053 0.729437 -0.547013 0.235895 +0.0339596 0.0366261 0.349729 0.57932 0.181026 -0.785278 -0.61222 0.353273 +0.081437 0.0810859 -0.458834 0.342 -0.509965 -0.213191 -0.530875 0.748608 +-0.00403304 -0.730842 0.640446 -0.812574 -0.631621 -0.693543 -0.533125 0.240443 +0.736345 0.164469 -0.232611 -0.682714 0.0391465 0.215764 0.181629 -0.170527 +-0.316153 0.849775 -0.713543 -0.992168 0.226637 0.899808 -0.983037 0.615648 +0.593865 0.613709 0.964471 -0.0694818 -0.554318 -0.944957 0.404677 0.569198 +0.854136 -0.567775 0.624205 -0.0638568 0.227571 0.423304 0.804173 0.607347 +-0.57195 0.771232 0.949745 0.913996 0.033205 -0.674982 0.450981 -0.776398 +-0.00892122 0.28499 0.224971 0.83427 -0.677952 0.780563 -0.459848 -0.169539 +0.674748 0.550088 0.309164 0.650185 0.986459 0.479641 -0.759661 -0.070167 +0.131979 0.214995 0.57041 -0.426954 0.666856 -0.367388 -0.659574 0.729844 +-0.826653 -0.334649 -0.777172 -0.312917 -0.213826 -0.648087 0.361105 0.419723 +-0.60796 0.660562 0.877929 -0.317686 0.835597 0.770875 -0.669502 -0.354348 +-0.173571 -0.558255 0.288056 -0.0195096 0.216895 -0.697269 -0.936962 -0.110495 +-0.769401 0.205658 -0.422241 -0.418914 0.224285 0.724838 0.329769 -0.176675 +-0.608851 0.504321 0.401991 0.38628 -0.864586 -0.723579 0.528884 0.139734 +0.129013 0.832588 0.636092 0.379191 -0.47732 -0.774767 0.106628 -0.458607 +0.600563 -0.0212063 -0.6852 -0.986305 -0.894318 -0.499191 -0.0669232 0.65708 +-0.17459 -0.571405 0.45184 0.451606 -0.209903 -0.144011 0.0814855 0.394845 +0.801352 -0.184869 -0.700182 -0.58335 0.122312 0.483505 -0.938643 0.763043 +-0.694568 0.738964 0.144524 0.405695 0.0687771 0.852866 0.233823 -0.634871 +-0.441766 0.666858 0.917758 -0.0621066 0.898027 0.776859 -0.591587 0.538725 +-0.129871 0.86815 0.328025 -0.797892 -0.200945 -0.00775088 -0.787212 -0.0477195 +0.411625 -0.935478 0.97188 -0.4774 0.880431 -0.295131 -0.0397297 0.742689 +-0.468279 0.665199 -0.00262621 -0.306908 0.55242 -0.876837 -0.0766511 0.588279 +-0.384238 0.0945892 0.295707 0.210992 -0.239061 -0.0312253 0.963805 0.910599 +0.59308 -0.890281 0.360783 -0.441871 -0.18166 -0.842993 0.614948 0.372101 +-0.282672 0.484205 -0.390907 -0.641843 -0.900236 -0.419012 -0.127662 0.460704 +0.721775 0.869937 -0.550456 0.663482 -0.0202616 -0.493301 -0.404294 -0.255343 +-0.621552 -0.0546371 0.741689 -0.0772868 0.599692 0.960398 -0.099038 0.557427 +0.291379 0.851408 -0.688359 -0.376174 0.60419 -0.512245 -0.200478 0.441748 +0.30017 0.669317 0.0157743 0.864596 0.46077 -0.444435 -0.690974 -0.815909 +0.934688 -0.559636 -0.944507 0.573606 -0.210941 -0.0144233 -0.178447 -0.734446 +0.372047 0.115652 -0.184899 0.186208 0.350788 -0.707895 0.145772 0.0159335 +0.250639 0.683152 0.344556 -0.650937 0.994165 0.886205 -0.261378 -0.414116 +0.125493 -0.682846 0.8503 -0.795054 -0.547047 0.201266 0.951237 -0.570226 +-0.832089 -0.76452 -0.00559059 -0.0127649 -0.623252 0.695241 -0.0741697 -0.926311 +-0.870471 0.86697 -0.409793 0.185559 0.841404 0.775766 -0.661608 0.630784 +-0.0418847 0.510854 0.832215 0.574998 -0.993502 -0.659399 0.302716 -0.949432 +0.251255 -0.256833 0.17971 0.349283 0.823358 0.0684997 0.484002 0.0554339 +-0.0812522 0.530946 -0.0502746 -0.425602 0.402146 -0.149901 -0.00779549 0.496858 +0.308736 -0.105052 0.912841 0.839152 -0.305452 0.499928 0.95626 0.321928 +-0.3285 0.0754262 -0.978408 0.276809 0.890524 -0.191066 -0.37462 0.869924 +-0.843673 -0.317329 0.324965 0.899363 0.305543 -0.618414 -0.0500692 -0.305687 +0.776532 -0.565459 -0.694585 -0.461779 0.724174 0.724395 0.401296 0.937612 +0.184945 0.596819 -0.112383 -0.109576 -0.140985 -0.774741 -0.609435 0.0236652 +0.953433 -0.486151 0.655185 0.766429 -0.701394 -0.370928 -0.820288 -0.877196 +0.572462 0.709389 -0.316934 -0.81279 0.0864481 0.582348 0.482659 -0.223883 +0.515367 0.126074 -0.424637 -0.558138 0.176037 -0.735063 -0.448309 -0.74732 +-0.0720739 -0.0230992 -0.020745 0.243751 -0.0196581 -0.776428 0.372864 0.353649 +0.285757 0.60437 0.514482 0.200558 -0.0784612 0.491931 -0.391741 -0.219148 +-0.533693 0.928068 0.782882 0.29664 -0.189146 -0.4963 0.0980167 -0.959944 +0.608752 0.144835 -0.710443 0.601716 0.948639 -0.0447879 -0.518276 -0.00486581 +-0.254559 -0.329286 0.734333 0.130947 -0.00577986 -0.721763 -0.341906 -0.421621 +-0.855017 0.174414 -0.848329 0.214249 -0.58743 0.49036 -0.593059 0.659447 +0.526415 -0.727025 0.26561 0.669341 0.843729 0.0761335 0.169667 -0.116155 +-0.526465 -0.447057 -0.615264 0.489265 -0.974332 0.956576 0.835828 0.00231343 +0.613543 -0.325269 0.900706 -0.233333 0.137425 -0.0920977 0.654766 0.513183 +-0.491512 0.680511 -0.860143 0.000219877 0.158272 0.46976 -0.634852 0.550822 +-0.551847 -0.398146 0.1887 -0.631267 -0.644479 0.300039 -0.304721 0.542797 +-0.242835 -0.813084 -0.822062 0.898453 0.961803 -0.968091 -0.0286443 -0.383386 +0.921859 -0.268503 0.330602 -0.752452 -0.36633 0.706127 -0.853998 -0.163032 +0.356645 0.571826 -0.975479 0.616479 -0.701651 -0.44157 -0.281014 -0.1878 +-0.243982 -0.0327769 -0.0568341 -0.557591 -0.702275 -0.830818 -0.160744 -0.383181 +-0.606415 -0.993561 0.935008 0.237088 -0.626452 -0.279491 -0.0299587 0.096851 +-0.811084 0.697592 -0.358233 -0.624643 0.879112 0.98145 0.134991 -0.113781 +0.677045 0.173258 0.198926 -0.130985 0.692711 0.235918 -0.463143 -0.97181 +0.128611 -0.196469 -0.143549 -0.877259 -0.22387 0.911893 0.938579 -0.602357 +-0.558379 0.0831053 0.755255 -0.0633384 0.766946 -0.217916 0.803606 -0.69906 +0.378348 -0.577776 0.290786 0.72261 0.374513 -0.0515563 0.119249 -0.883982 +0.494366 -0.501015 0.221005 0.676703 -0.343459 0.239507 -0.43485 0.484132 +-0.0240771 -0.0695587 -0.767498 -0.426817 0.349456 0.815025 0.592253 0.0434642 +0.900908 -0.0224957 -0.227291 0.712525 -0.17387 0.423376 0.699817 0.0650314 +0.715058 0.981705 0.463282 -0.488915 0.225502 -0.579498 0.474955 0.0182237 +0.857074 -0.0382085 -0.560685 0.240137 0.713133 0.950877 0.839938 -0.222778 +-0.759526 -0.48741 -0.110886 0.589902 -0.178458 -0.533093 -0.336843 0.620609 +0.0139508 0.752568 -0.156613 0.316151 -0.0609667 -0.0964161 0.966551 -0.904765 +-0.460361 0.292631 0.780214 0.315363 0.707871 0.92645 -0.71585 0.321802 +-0.694523 0.944745 0.980457 0.706664 -0.327244 0.886355 0.877686 -0.999405 +-0.737367 -0.876693 0.594778 -0.23487 0.390236 -0.79106 0.712837 -0.382474 +-0.654429 -0.600899 -0.754773 -0.115959 -0.174276 -0.921064 -0.696421 -0.168972 +0.0708496 -0.735405 0.268682 0.566339 0.956091 -0.965215 -0.528977 -0.211907 +0.0595766 -0.271321 0.0586539 0.872684 -0.164932 -0.217101 -0.110703 -0.994614 +-0.100716 -0.21279 0.0343801 0.121225 -0.481159 -0.984074 0.423633 -0.524078 +0.677134 -0.121567 -0.719651 0.403784 -0.0439599 -0.0956062 -0.872936 -0.0305165 +0.603626 0.664413 -0.66371 0.677597 -0.635079 0.677114 0.274386 -0.565885 +-0.368999 0.395814 0.593433 0.071033 -0.517066 0.679989 -0.896466 -0.19466 +0.620615 -0.902769 -0.446372 0.71205 -0.0134724 0.792839 0.442742 0.705649 +0.448554 0.0907248 -0.875912 -0.78133 0.550768 0.401435 -0.2083 -0.548377 +-0.636633 -0.509317 -0.886577 0.836475 -0.244503 0.405991 0.435771 0.172506 +0.5809 0.193259 0.469274 -0.516108 0.116578 0.720497 0.492518 0.813402 +-0.764552 0.693023 0.813783 0.754981 0.505089 0.726952 0.72732 -0.579995 +0.609565 0.490126 0.354568 0.881088 -0.16121 -0.845049 -0.776224 -0.870536 +0.249554 0.737273 -0.873171 0.978158 0.972466 -0.191672 -0.759513 0.876725 +0.480007 0.890844 -0.29484 0.381001 -0.0617632 -0.397249 0.985152 0.245097 +0.588217 -0.748707 -0.723281 0.960338 0.332118 0.507824 -0.899531 -0.850595 +-0.528361 -0.0907407 -0.66284 0.194275 0.226352 0.939166 -0.796648 -0.560345 +-0.0018087 -0.488208 0.268087 -0.691234 -0.166023 0.857149 0.887926 -0.822825 +-0.255971 0.220112 -0.598075 0.0654637 -0.587158 -0.580129 -0.112089 -0.205686 +0.922303 0.926634 0.342239 -0.450665 0.960983 -0.0389203 0.0641601 0.166471 +0.478002 -0.208739 -0.505577 0.486465 -0.611075 0.835469 -0.388308 0.918577 +-0.945503 -0.489629 0.0602579 0.852291 0.898433 -0.523384 0.428025 -0.0249408 +0.448862 0.0653039 -0.833613 0.416429 -0.418658 -0.575603 0.283643 0.0631906 +0.472831 -0.233259 0.321724 -0.521398 -0.0559032 0.904495 0.0420803 -0.68707 +-0.418759 -0.243526 0.261977 -0.20153 0.363749 0.0561165 -0.901287 0.380951 +0.0356224 0.709165 0.687935 0.0385029 -0.360781 -0.0977945 -0.0523092 0.587724 +0.606512 0.606752 -0.948712 -0.0413094 -0.163546 -0.374833 -0.742109 -0.941404 +-0.591905 -0.527455 -0.364899 0.703861 -0.250776 0.13719 -0.547711 0.990142 +-0.188902 0.564909 0.927158 -0.906163 -0.417163 0.135594 -0.170626 0.874103 +0.0848013 0.132844 -0.735145 -0.093525 -0.421543 -0.397611 0.158808 -0.0642251 +0.985356 0.733467 -0.249225 -0.402127 0.153127 -0.194697 0.966564 -0.699326 +-0.92745 0.665489 -0.347215 0.693321 -0.957146 -0.653181 0.511458 -0.753823 +-0.713669 0.106806 0.116199 -0.42533 -0.423685 -0.615305 0.353406 0.455503 +0.913431 0.771845 0.325587 0.919554 -0.777534 -0.521801 -0.22661 -0.248731 +-0.987823 0.299457 0.651216 0.705278 -0.657446 0.861857 0.241607 0.781219 +0.666632 -0.940135 -0.465348 -0.997609 -0.97654 0.837899 0.583858 0.373042 +0.994313 -0.635854 -0.878991 -0.727423 0.782306 -0.892377 0.905096 0.074571 +0.554527 0.920449 -0.772302 -0.498784 0.957279 0.989656 -0.175314 -0.0813478 +0.930287 -0.50704 -0.239235 0.821616 -0.647472 -0.11052 0.247848 -0.5883 +-0.54487 -0.173971 -0.00350076 -0.259568 -0.845643 -0.968549 0.738096 0.262694 +0.523131 -0.923979 0.744681 0.813637 0.247499 -0.961381 -0.314356 -0.0229167 +-0.695943 0.421685 -0.198657 -0.511001 0.419557 -0.879891 0.531399 -0.659729 +-0.637058 -0.935509 0.718733 0.13937 -0.0334449 -0.192238 0.359693 0.626302 +0.552849 -0.919393 0.646026 0.437715 0.000286214 0.299565 0.44429 -0.341682 +0.464539 -0.527284 -0.44486 0.820841 0.930996 0.568054 0.386079 0.468224 +-0.294328 -0.808375 -0.529592 -0.106826 -0.321099 -0.984758 -0.115137 0.398672 +0.286542 0.295766 0.222531 -0.0306655 0.330739 0.906166 -0.413205 -0.761751 +-0.308349 0.428458 0.285334 0.999387 -0.876236 -0.41015 -0.572476 -0.581781 +0.0986278 -0.701512 -0.152086 0.554128 -0.729661 0.928477 0.248127 0.250132 +-0.301041 0.298569 0.336602 0.780929 0.389382 -0.968069 -0.645047 0.648065 +0.173302 -0.1454 0.24924 -0.968054 -0.267053 -0.706765 0.750725 0.768158 +-0.450792 -0.347903 0.687592 0.578171 -0.919444 0.426823 0.600826 0.455884 +0.125016 0.503402 0.168666 -0.267666 -0.27683 -0.886591 -0.771492 -0.948732 +0.876239 -0.355067 0.901132 0.871746 0.916059 -0.29615 -0.799335 -0.844642 +0.0149953 -0.608281 -0.500099 0.538077 0.378825 0.520402 0.575124 0.859247 +-0.610797 0.328011 -0.523517 -0.898361 0.00218621 -0.887533 0.0194196 -0.33779 +-0.616134 0.0660449 -0.31806 -0.30886 0.766834 -0.978261 -0.486737 -0.399618 +-0.0917382 0.277186 0.839681 -0.473801 -0.549823 -0.602682 -0.585298 0.293436 +-0.103361 -0.555463 -0.234813 0.432113 -0.468597 0.888812 -0.22229 -0.187223 +0.781542 0.0750056 -0.536047 -0.80232 -0.915122 0.428795 0.203037 -0.293338 +0.810786 -0.0354941 -0.675073 -0.645535 0.106937 0.354792 -0.872742 -0.412236 +-0.538382 -0.763935 -0.854645 -0.912881 -0.115333 -0.743536 -0.0770939 -0.465974 +0.741225 -0.43547 0.103791 0.763534 -0.513783 -0.870602 0.737691 -0.261385 +-0.0622958 0.204415 -0.915488 0.160516 -0.67954 0.190377 -0.50775 0.620587 +-0.119934 0.405527 -0.756127 -0.470831 0.609895 0.754775 -0.52016 0.342044 +0.440928 0.382402 -0.526856 -0.604671 -0.123643 0.0473221 0.681299 0.432775 +0.35705 -0.631322 0.335415 -0.160106 -0.511203 0.108416 -0.187068 -0.19273 +0.818762 0.955804 0.253726 0.243133 -0.866393 -0.713879 0.831281 0.48583 +-0.598078 -0.237423 -0.732799 -0.837698 -0.813628 -0.568913 0.975931 -0.414931 +-0.70244 0.670657 -0.627528 0.684003 0.879295 -0.780104 0.45747 0.717542 +0.742923 0.28711 0.427397 -0.804295 -0.935748 -0.63725 0.185404 0.195977 +0.523175 0.164912 -0.226626 0.473188 -0.903959 0.111465 0.962655 -0.649899 +0.811926 -0.150801 -0.148576 -0.314315 -0.378293 0.120209 -0.717872 0.475651 +0.527778 0.38538 0.294788 -0.284074 -0.43133 0.400691 0.6078 0.152683 +0.712556 0.5142 0.401574 -0.948874 0.628844 0.97335 -0.298696 -0.601937 +-0.991927 0.576505 0.407119 -0.467578 -0.189144 0.360232 0.517798 -0.435152 +-0.835849 0.981422 0.411036 0.965548 0.692699 -0.00998499 0.371297 -0.00133145 +-0.767232 0.09019 0.602586 0.912263 0.354785 -0.333148 0.653425 -0.649789 +-0.809157 0.21328 -0.835589 0.352537 0.358959 0.781091 0.0597904 0.466797 +-0.833931 0.470528 0.122331 -0.477634 -0.417411 0.421302 -0.191153 -0.132141 +0.45709 -0.959619 0.912188 -0.99528 -0.600182 -0.56223 -0.423687 -0.193773 +0.0216373 0.146337 0.905906 0.334817 -0.324455 -0.819952 0.347551 -0.277488 +-0.319623 0.209662 0.0298132 0.939739 -0.069773 0.888707 0.996402 -0.054304 +-0.821955 0.819168 -0.853819 0.571645 -0.834139 -0.861082 -0.873796 -0.237357 +0.236371 0.744487 0.741755 -0.471208 -0.78459 -0.443649 0.271483 -0.0455994 +0.851346 -0.208521 -0.131185 -0.796203 -0.255105 -0.698859 -0.612414 -0.816121 +-0.122906 -0.600864 -0.936747 -0.321419 -0.151019 -0.827735 0.136891 0.0296146 +0.735648 0.193249 -0.426487 -0.23817 -0.71209 0.423922 -0.347415 -0.378162 +0.778483 0.18169 -0.735153 0.984382 -0.306176 -0.99738 -0.107892 -0.795631 +-0.805644 0.112209 -0.298002 0.610045 0.0361954 -0.882893 0.282081 -0.989255 +-0.162802 0.138385 -0.476159 -0.34362 -0.0208122 0.547458 -0.397081 -0.597724 +0.884562 0.954509 0.571493 -0.00982217 0.869722 -0.729849 0.0274898 0.977989 +0.13102 0.704919 0.468061 -0.815591 0.402209 -0.521649 0.471525 -0.170029 +0.34004 0.298699 -0.269258 0.954558 -0.874734 0.193975 -0.827563 -0.400525 +0.157099 -0.292881 0.306565 -0.0130616 -0.158665 -0.149573 0.839071 -0.0153065 +0.45548 0.424047 -0.837859 0.741006 0.800953 0.938368 -0.691706 0.823846 +-0.601256 -0.357712 0.179111 0.175019 -0.385855 0.813766 0.717624 -0.232948 +-0.444183 0.955079 0.836534 -0.902232 -0.81723 -0.696455 0.540988 -0.59834 +-0.456177 0.51899 -0.226569 0.286242 0.0182484 -0.569708 0.0927978 0.351204 +0.42471 0.418102 0.544486 0.806483 -0.499258 -0.749449 -0.723003 -0.700478 +0.898082 0.908541 0.699173 -0.292711 0.297043 -0.990494 0.995252 0.851631 +0.594536 -0.732215 0.328213 0.133244 -0.528041 0.529194 0.787225 -0.309067 +-0.872484 -0.526274 -0.368968 0.620617 0.59385 -0.197271 -0.531257 0.160596 +-0.911691 0.992716 0.138414 0.439126 -0.856473 0.458083 -0.724759 -0.949265 +0.445634 0.941434 0.383013 0.119187 0.360761 0.224577 -0.406873 -0.14874 +-0.850024 0.406242 -0.987686 0.419716 0.833527 -0.810417 0.30594 -0.00712326 +-0.190325 0.903821 -0.160207 -0.185619 -0.546711 -0.368094 0.835662 -0.140476 +0.398994 -0.701222 -0.607329 0.172177 -0.970453 0.830484 -0.50775 0.782039 +-0.467062 -0.00650276 0.950333 0.176548 -0.210942 -0.558266 -0.0952733 -0.0479317 +0.100437 -0.393928 -0.847001 -0.829858 -0.441968 -0.0318336 -0.490883 0.848848 +-0.631143 -0.528653 0.631995 0.695675 -0.51902 -0.396995 -0.7112 -0.740444 +-0.26705 -0.555723 -0.914737 -0.545952 -0.280876 0.852172 -0.965218 -0.79901 +0.292693 0.340534 -0.403736 -0.0187143 -0.403433 -0.653135 -0.873989 -0.252567 +-0.321953 -0.00175426 -0.0982173 0.529045 -0.341277 -0.629041 -0.599386 0.661672 +0.910626 -0.537007 0.203493 -0.00364493 0.937403 -0.464218 0.533787 0.746203 +-0.437352 0.581493 0.320334 -0.147759 0.358775 0.289687 0.779021 -0.0177836 +-0.882005 0.455478 -0.218773 -0.372343 0.989746 0.41922 -0.198826 -0.661025 +0.87591 -0.712593 -0.304432 0.826156 -0.642761 -0.933846 -0.291615 -0.316973 +0.604414 0.88602 0.782185 0.470725 0.711684 -0.061264 0.525596 -0.200641 +0.248111 -0.608594 -0.851087 0.310291 -0.372669 0.95437 0.103978 0.91879 +-0.101975 0.704781 0.305341 0.560117 0.517339 -0.660969 0.858211 0.224984 +0.437192 -0.697103 -0.335884 -0.83529 0.0265226 -0.0506648 0.937622 0.312205 +0.266575 -0.439799 -0.429115 0.589414 0.540477 0.611981 -0.592582 0.780986 +0.298469 0.289732 -0.382572 -0.257052 0.293741 -0.291227 0.375649 0.297089 +0.206021 0.580981 0.886214 -0.0433701 0.751282 0.900529 -0.214723 0.772611 +-0.172119 -0.642249 0.0190451 -0.143636 0.253911 -0.203335 0.0485596 0.17505 +-0.843601 -0.513378 -0.291131 -0.040763 0.772936 0.911256 0.395748 0.408965 +0.287581 0.520859 -0.94936 -0.553394 -0.674212 -0.0944238 -0.685162 0.890514 +0.529198 -0.500136 -0.638627 0.424193 0.467577 -0.561498 0.39007 -0.925369 +0.3854 0.0436241 -0.880083 -0.420581 0.374951 -0.337581 -0.624367 0.443054 +0.132368 -0.878239 -0.574338 -0.274575 0.00250376 0.494147 0.173526 0.883387 +0.61281 0.174375 -0.622462 -0.0826392 -0.412087 0.0339736 0.441503 -0.591437 +0.68225 0.844676 -0.122762 -0.179799 -0.660691 -0.485314 -0.559874 -0.565694 +0.649297 -0.625909 0.759782 -0.870365 -0.372888 -0.267214 0.630475 0.540693 +-0.311311 0.804323 0.861152 0.86655 0.751852 -0.556321 0.374448 -0.869674 +0.671019 0.110837 -0.897409 -0.725767 -0.0471085 -0.221898 -0.339532 -0.454421 +0.195124 -0.869949 -0.279884 0.793026 0.296529 -0.815951 -0.58896 0.923199 +-0.709055 0.470964 0.835874 0.0816438 0.307834 -0.603159 -0.528858 -0.844923 +-0.721763 0.838714 -0.871618 -0.182521 -0.0532893 -0.0895496 -0.916913 -0.196797 +-0.311177 -0.963831 -0.81429 -0.783186 0.160698 -0.525185 -0.0447396 0.0220367 +-0.602121 -0.792035 -0.571744 0.186665 0.580744 0.928993 -0.542637 0.545755 +-0.878623 -0.289613 0.0795839 0.424377 0.695898 -0.236941 -0.500899 -0.900809 +-0.27813 0.325782 0.104022 -0.648674 0.385746 0.858498 -0.778167 0.640713 +-0.920418 -0.297414 0.951722 -0.502752 -0.500822 0.906769 0.475276 -0.120436 +0.0555665 -0.781139 -0.100632 -0.240305 0.350214 -0.236548 -0.856435 -0.536652 +0.82334 0.100009 0.635653 0.423638 -0.742337 -0.882165 -0.947683 -0.902723 +0.633898 0.696032 -0.840314 -0.758485 0.840569 0.297607 -0.0833301 0.0548925 +-0.946265 0.785038 0.0966939 -0.805429 0.869914 -0.642478 -0.131833 -0.149584 +0.723076 0.201727 0.722296 0.292561 0.546842 -0.991661 -0.240245 -0.576672 +-0.298388 -0.230718 -0.960268 0.525073 -0.0687227 0.426996 -0.84886 -0.352525 +0.875025 -0.136292 -0.0825568 -0.401207 -0.143353 0.897022 -0.586978 0.815228 +0.991454 0.693501 0.420691 -0.252937 -0.883019 -0.80479 -0.282766 0.132104 +0.50084 0.261296 -0.292088 0.171744 -0.975827 0.966368 -0.02166 -0.457527 +-0.867127 0.596761 0.909639 -0.0600934 -0.991778 -0.0624672 0.167349 0.652688 +-0.72436 0.474212 0.511686 0.47024 -0.325579 0.761913 -0.591578 -0.550693 +-0.87061 0.159126 -0.666693 0.51595 0.308097 -0.794654 -0.955128 -0.683876 +-0.0890715 -0.658886 0.259221 -0.487484 -0.598891 -0.597186 -0.518363 0.631827 +0.157736 -0.119963 0.56765 -0.630407 0.0792633 -0.40219 0.23451 0.275624 +-0.59349 0.874425 0.172097 0.308708 -0.0750917 -0.0565186 0.30194 0.430169 +0.751406 -0.472457 -0.754903 0.175155 -0.828196 -0.271119 0.441171 -0.822592 +-0.874723 -0.902089 0.779307 -0.549314 0.0049205 -0.814337 -0.569034 -0.388881 +-0.0496898 -0.438871 -0.164657 -0.133288 0.0280757 0.604918 0.434283 0.133385 +-0.44948 -0.417847 0.14142 0.890699 -0.630288 -0.505602 -0.0243172 0.467915 +-0.357174 0.165959 -0.620437 -0.925041 0.882595 -0.690612 -0.246178 -0.745699 +-0.661864 0.135524 0.893137 0.459743 0.81759 0.759988 0.919215 0.172754 +-0.979926 0.185689 0.365976 -0.408455 0.496844 0.828914 0.116831 -0.537032 +0.438368 0.32504 -0.0374737 0.466047 0.526118 0.173433 -0.417122 0.942193 +0.851893 0.778213 0.462288 0.993282 0.390593 -0.982581 0.295066 -0.321388 +0.614328 -0.807427 -0.562029 0.0568302 0.660809 -0.642214 -0.928537 -0.852186 +0.249547 0.175475 0.933737 -0.28369 0.229133 -0.147816 0.443864 -0.203126 +-0.9688 0.450049 0.20203 0.784042 -0.295913 -0.0312097 -0.457373 -0.770108 +0.533278 -0.373477 -0.379462 0.438474 0.200825 -0.0519506 -0.425382 0.505706 +0.355871 0.386051 0.743153 0.454655 0.744657 0.953363 -0.35094 -0.977463 +0.366017 -0.62106 0.905681 -0.947607 0.906391 0.797143 0.266247 0.528978 +-0.549458 -0.684604 0.0390662 -0.32929 -0.677886 -0.784919 -0.786702 -0.610963 +0.321161 -0.701703 -0.196161 0.675761 -0.395796 -0.276971 0.439669 -0.806306 +0.635941 0.640764 0.952784 -0.654622 -0.421039 -0.201594 -0.394228 -0.448705 +-0.3584 -0.341399 -0.0177754 -0.513204 -0.671774 0.961536 0.346114 -0.487067 +-0.60647 0.815841 0.703981 -0.821304 0.0687581 0.809137 -0.000827548 0.41432 +-0.522778 0.371105 0.116334 -0.59484 0.912115 -0.611119 -0.587923 0.269186 +0.267031 0.965863 0.697034 0.702101 0.781557 0.99254 -0.49076 -0.815809 +0.87365 -0.839719 -0.279633 -0.22592 0.813012 0.0435874 0.747437 0.86291 +-0.133208 0.796063 0.85827 0.770385 0.78936 -0.00305904 -0.714272 0.198962 +0.45192 0.938234 0.00246251 0.929763 -0.33744 0.51791 -0.855774 -0.424807 +-0.484192 0.694311 -0.107501 -0.783608 0.341487 0.126003 -0.630579 0.0317058 +-0.523726 -0.282109 0.350271 0.0073639 0.224109 -0.525064 0.819749 -0.126559 +0.349715 -0.818691 0.979166 0.335877 0.827511 0.448404 -0.178738 -0.998246 +-0.986554 0.843464 0.0494969 0.874156 0.644035 0.377021 -0.108501 0.927281 +-0.165659 0.217427 0.696053 -0.418239 0.722399 0.340772 -0.133902 0.0457679 +-0.322195 0.864682 0.296428 -0.455825 -0.161267 -0.94023 0.59127 -0.930389 +-0.607985 -0.666585 0.815694 0.0222016 -0.352874 -0.558811 -0.25617 0.216572 +-0.741508 -0.965064 -0.171648 0.795252 -0.806555 0.0642285 0.262478 0.1701 +0.0294231 -0.022182 -0.569997 -0.302406 0.406219 0.0899895 -0.669984 0.1125 +0.567577 -0.191888 -0.941946 -0.136822 0.06772 0.532028 0.754898 -0.387807 +-0.355954 -0.527357 -0.766761 0.823577 -0.23552 -0.692847 0.674303 0.279432 +0.414774 0.793844 -0.0556157 -0.123008 -0.0587105 0.260584 -0.322527 -0.287282 +0.219779 0.904389 -0.986921 0.431746 0.423658 -0.967195 0.499086 -0.996652 +-0.909703 0.539895 -0.630127 0.869508 0.122599 0.658514 0.425301 -0.860719 +-0.199796 0.661064 -0.105205 -0.66879 0.44428 0.360143 0.492939 -0.460633 +-0.591228 0.955616 -0.928397 -0.33865 -0.0100055 0.678019 0.859405 -0.884136 +0.257959 0.938057 0.733089 -0.508656 -0.327347 -0.226158 -0.788497 0.890343 +0.0917658 0.0452882 0.736755 -0.718124 0.702182 0.623431 -0.307694 0.707526 +-0.448969 -0.0976383 0.261963 -0.060521 -0.407749 0.0671337 0.722232 0.917006 +0.0939932 -0.493438 0.731232 -0.637236 -0.729693 -0.899482 -0.606368 -0.818409 +0.0924388 -0.724056 0.0637412 -0.858471 0.306947 -0.56491 -0.177466 -0.140946 +0.963139 0.657961 -0.550621 -0.532091 0.388969 -0.168796 0.200818 0.954923 +-0.927948 -0.144509 0.851824 0.282163 -0.6838 0.440361 0.793712 0.237032 +-0.761038 -0.344333 0.482373 0.272288 0.330062 -0.89687 -0.750929 -0.895303 +0.891593 0.17512 0.0368649 0.656235 -0.602655 -0.52724 -0.324825 -0.218512 +-0.178757 0.106361 -0.786419 0.385929 0.482041 0.418832 -0.0239656 -0.699096 +0.476948 0.386084 -0.491765 0.218255 0.195142 -0.229045 -0.201467 -0.716236 +-0.245364 -0.178718 0.0261941 0.79052 0.79242 -0.992083 -0.692832 0.41532 +-0.0163223 0.52435 0.557524 0.823774 0.955016 0.0161157 -0.981033 0.143466 +-0.32114 -0.926067 -0.970764 0.534577 0.454701 0.926327 0.24691 -0.0345573 +0.746455 0.290984 0.820033 -0.975666 0.28493 -0.68386 -0.0184387 0.349946 +0.121368 0.824574 0.909234 0.972388 -0.875856 0.931241 -0.190719 0.419245 +0.957067 0.750502 -0.189851 -0.403203 0.790796 0.310838 0.57588 -0.832113 +-0.99678 -0.177133 0.0847001 0.149754 -0.223304 0.0277731 -0.746891 0.124499 +0.328892 -0.558507 0.952343 0.63907 -0.160313 0.359808 -0.0896632 -0.920504 +-0.703425 0.599164 0.454539 0.280253 0.343914 0.268915 0.121279 0.0706275 +0.0819806 -0.0260664 -0.452012 0.534075 0.665468 -0.777891 0.473708 0.82371 +-0.433046 0.034782 0.522489 0.121652 -0.393345 0.677849 0.845486 -0.523482 +0.0787604 0.748632 -0.224027 -0.739522 -0.411641 0.389571 -0.999132 -0.795857 +-0.0229049 0.691355 -0.165205 -0.592761 -0.325611 -0.720616 -0.102312 -0.330572 +0.865303 0.156614 -0.79352 0.255691 0.0807876 -0.626587 0.793079 0.0290817 +-0.945279 -0.0846664 -0.374888 -0.667183 -0.504733 0.235353 -0.194729 0.451198 +-0.624138 -0.522172 0.485696 -0.188533 -0.861529 0.71042 -0.107355 0.129584 +-0.032633 0.103963 -0.973725 0.6503 0.598923 0.543365 -0.222287 0.200471 +0.50997 0.287462 0.546289 0.092789 0.247406 0.306928 0.907567 -0.0817465 +-0.602545 0.429731 -0.160718 0.409995 0.0603658 0.699852 0.944123 -0.279073 +-0.617229 0.94587 -0.293599 0.249853 0.185483 -0.15985 0.376199 0.478009 +-0.913821 0.902843 -0.0319189 -0.163233 0.06097 0.303983 0.388982 0.825583 +0.803066 0.0602229 0.607606 0.264056 -0.0273412 0.368949 -0.448388 0.0894237 +0.474698 -0.0853695 -0.276576 0.12158 -0.466526 -0.106598 0.837411 -0.962005 +0.963205 -0.36027 -0.46135 -0.450732 -0.688112 0.909647 -0.485183 -0.726725 +-0.98335 -0.483217 0.440138 -0.882965 0.591247 0.705897 0.51467 0.311796 +0.932707 -0.482583 0.50795 0.905327 -0.136499 -0.159968 0.572432 -0.833733 +0.308466 -0.918981 0.736131 -0.241078 0.566423 -0.820824 0.0762153 0.998902 +-0.574397 -0.896001 -0.0140756 -0.787536 -0.608351 -0.146387 -0.714798 0.937753 +-0.12184 0.95313 -0.86626 0.164525 -0.780993 -0.286156 0.223559 0.186948 +-0.922137 0.14814 0.484396 -0.208987 -0.999587 0.378318 -0.326022 0.613935 +0.084696 -0.884513 -0.572624 0.0844671 -0.577091 0.275735 0.825845 -0.0805973 +0.925467 -0.330806 -0.466913 0.611224 0.453998 -0.353312 -0.431593 -0.293111 +0.560446 0.913154 0.0906239 -0.663937 -0.347225 -0.329733 -0.0634993 0.460402 +-0.383723 0.114834 -0.905004 -0.691624 0.835869 0.344849 -0.939217 0.537941 +-0.721011 -0.348403 -0.00576813 -0.989891 0.0723988 -0.567613 -0.779642 -0.78354 +0.385344 -0.455507 -0.0233818 0.788528 0.109993 -0.213506 0.456872 -0.834098 +-0.48394 -0.98133 -0.919482 0.17167 -0.371616 0.148954 -0.383733 0.758057 +-0.375511 -0.558951 -0.502408 0.891249 -0.353771 0.560189 -0.16795 -0.543868 +-0.37115 -0.573654 0.510089 0.906864 0.433786 0.510185 0.971383 -0.101245 +-0.234985 -0.683994 0.629377 0.714775 -0.25377 0.821737 0.147973 -0.902029 +0.622774 0.109474 -0.925719 0.954841 -0.838217 -0.838764 0.794163 -0.359638 +-0.969295 -0.70625 -0.169544 -0.944458 -0.715546 0.86016 0.708005 -0.945322 +0.46898 -0.814756 -0.0936694 -0.625662 0.290876 -0.292345 0.804004 -0.756511 +-0.942462 0.461271 -0.133129 0.187726 0.0946201 0.696192 0.359844 -0.844139 +0.563431 0.314016 -0.618401 -0.349053 -0.779491 -0.229991 -0.23926 -0.866743 +0.655119 -0.297929 0.882511 -0.970511 0.438275 0.927748 0.818598 -0.695924 +0.27305 0.391222 -0.55341 0.874844 -0.69446 0.0146682 -0.818413 0.331227 +-0.629138 -0.77631 -0.409139 -0.972164 -0.482111 0.0919363 -0.048589 0.616701 +0.603334 0.440657 -0.708531 0.148558 0.741351 0.171211 -0.913832 0.225193 +-0.290597 0.985929 -0.18809 0.973706 -0.404376 0.997051 -0.14134 0.679776 +0.87582 -0.122859 -0.716285 -0.412934 0.71662 -0.164979 -0.750002 -0.219348 +-0.342228 0.515422 0.356727 0.716068 0.255808 -0.981862 0.299258 0.0274295 +-0.309099 0.407465 -0.940287 -0.642382 0.153391 0.331409 0.506176 0.707616 +-0.974934 0.919957 -0.14204 -0.100708 0.286887 -0.312046 0.323156 -0.146763 +0.665122 0.930822 0.78843 0.0628672 -0.176518 0.810625 0.0252852 -0.838717 +-0.630099 -0.31493 -0.435586 0.778668 -0.161566 0.108783 -0.233434 -0.590801 +0.786437 0.677349 0.905807 0.825616 0.97916 0.884624 0.498115 0.42734 +-0.295858 0.593155 -0.259452 -0.941386 0.492692 -0.445883 0.404013 -0.419882 +-0.795611 0.863705 0.0558309 -0.614871 -0.585717 -0.582341 0.116653 -0.671626 +-0.524893 0.338942 0.334323 -0.755656 0.448694 -0.53751 0.890865 0.728529 +-0.647052 -0.743385 0.710565 0.780498 -0.413726 0.912974 0.750723 0.361914 +0.274769 -0.810813 -0.22343 0.838632 0.603144 -0.780761 -0.39045 -0.74793 +-0.225211 0.115451 -0.0529903 -0.85687 -0.970864 0.711897 -0.163225 0.742498 +-0.698407 0.871296 -0.432346 0.297334 0.578215 0.0895254 0.713119 -0.98793 +-0.380986 -0.125795 -0.435093 -0.354766 0.718332 0.343689 -0.670844 0.373268 +-0.979723 -0.937316 0.311361 -0.291178 0.516959 0.977806 -0.815439 -0.674165 +-0.0323153 -0.710142 -0.743586 0.0624365 -0.701897 -0.190656 0.226054 0.292736 +-0.493086 0.0295618 -0.205672 0.65815 0.129321 0.378478 0.50234 -0.216347 +0.584741 0.84211 0.167401 0.607226 -0.714133 -0.217052 0.412324 0.729219 +0.118591 -0.39914 0.0803751 0.6693 0.566324 0.721258 0.262219 -0.616252 +-0.997376 -0.604019 0.0656538 0.599502 0.00110348 -0.637884 -0.779426 -0.15533 +0.902245 -0.83549 -0.0556138 0.06506 0.651397 0.970983 0.750116 -0.313178 +0.123484 0.0431771 0.060113 0.47014 -0.276801 0.324975 0.0506168 -0.492554 +0.724213 0.68835 0.331324 -0.702835 -0.178587 -0.228648 -0.0399587 0.128594 +-0.0320557 -0.554456 0.665615 -0.089894 0.304825 -0.330259 0.14179 -0.812656 +0.626568 -0.644126 0.937721 -0.882729 0.704299 0.610393 -0.0757684 0.924555 +-0.625918 -0.948106 0.0951738 -0.993843 -0.502306 -0.489336 -0.282158 -0.318153 +-0.207382 0.044949 0.0964022 -0.484303 -0.365384 -0.555911 -0.90306 0.360545 +-0.230588 -0.207239 -0.347432 -0.0525925 0.24211 0.420735 -0.496557 0.612099 +-0.110829 0.428517 0.896458 0.0240659 -0.0684408 0.158986 0.992357 0.789784 +-0.594865 0.180221 -0.509125 -0.784086 -0.603065 0.902279 -0.13072 -0.0459181 +0.972982 -0.128882 -0.191688 -0.271181 0.467487 0.834183 -0.226382 0.124324 +0.226513 -0.713675 -0.133761 0.390153 0.266047 -0.688886 -0.65987 0.0485102 +0.856414 -0.0471387 -0.835046 0.744284 -0.484911 -0.937073 -0.916864 -0.3921 +0.173184 0.481602 -0.582463 0.0924304 0.944067 -0.955617 -0.579323 0.282798 +0.0778271 0.273025 -0.21682 -0.910587 0.249759 -0.903923 0.8988 -0.0383336 +0.278796 -0.383595 -0.337323 -0.0574443 0.32618 -0.518353 0.586899 0.882512 +-0.145354 -0.365954 -0.350825 -0.453288 -0.340702 -0.366973 0.840828 -0.903173 +-0.826925 -0.524238 -0.725683 -0.363874 0.882786 -0.893936 0.834338 -0.845758 +0.981676 0.38459 0.403841 -0.852946 0.831358 0.134174 0.600342 0.319108 +-0.965339 -0.529092 -0.110751 -0.0104939 0.879482 -0.649905 -0.575851 0.43798 +-0.562991 0.0273841 -0.296924 0.374767 -0.0715699 0.59238 -0.257965 0.467256 +-0.163342 0.675786 0.0404688 0.772686 -0.800894 -0.0960582 0.792491 -0.277204 +-0.838616 -0.704292 -0.606351 0.512386 -0.0721938 -0.373044 -0.482231 0.381387 +-0.300435 -0.811809 0.0690514 0.793722 -0.850233 -0.571292 -0.676329 -0.236226 +-0.916339 0.461819 -0.7495 -0.130893 -0.299153 0.856143 0.200783 -0.027939 +-0.782393 -0.379879 0.26394 -0.0156787 0.553081 -0.0766997 0.0507427 -0.923302 +0.860352 -0.170888 0.968314 -0.181919 0.546342 -0.973947 0.312326 -0.799889 +0.81222 -0.451001 -0.68649 0.142295 0.170818 0.760639 -0.681591 0.385237 +0.217836 0.307764 0.314993 0.232972 -0.59703 -0.478095 -0.980271 -0.135897 +0.553113 0.547028 0.957202 0.798325 0.627305 0.0203087 -0.0433017 -0.553673 +-0.0016148 0.951573 -0.418186 -0.496682 -0.239602 0.73593 -0.473037 0.621046 +0.433566 -0.580368 -0.0956536 0.210872 -0.740542 -0.332272 0.850168 -0.0238131 +-0.205609 0.153521 -0.402918 -0.713328 -0.265156 -0.773804 0.725339 0.470349 +0.558929 0.412309 0.730158 -0.0374842 0.479966 0.898242 0.440661 0.497333 +0.629008 0.437205 -0.361182 -0.663844 0.157557 -0.199986 0.113008 -0.41816 +-0.0826236 -0.978743 0.815084 0.39091 -0.338941 0.880036 -0.13348 -0.299471 +0.584767 0.365066 -0.636932 -0.157548 0.542492 -0.193568 -0.0480755 0.30407 +0.361588 0.229671 0.987737 0.157145 -0.472845 -0.3861 -0.858493 -0.471023 +0.724432 0.402472 0.54433 0.687866 -0.103772 0.314791 0.558369 0.870504 +0.901182 -0.117562 -0.687705 -0.434755 -0.532181 -0.407797 -0.975511 0.280664 +-0.1908 -0.588684 -0.937916 0.975736 0.795355 0.50423 -0.708375 0.879924 +0.280243 -0.819291 -0.280556 -0.266857 0.941041 0.275321 0.87149 0.349788 +-0.377843 -0.75705 0.958412 0.88434 0.627061 -0.282291 -0.270561 0.727935 +-0.573253 0.999137 -0.137561 0.787423 -0.277337 0.603983 0.709329 0.71357 +-0.786407 -0.541805 -0.41953 0.0447377 0.0205872 0.602401 0.562479 -0.0216093 +-0.0703607 -0.160516 0.541279 0.130353 0.541861 -0.0802796 -0.144014 0.751182 +0.601665 0.138491 -0.680005 -0.267557 0.381164 0.955646 0.264988 -0.876559 +-0.827176 -0.616917 0.396616 0.382655 -0.10695 -0.506198 -0.741015 -0.473331 +0.88219 -0.745805 0.965667 0.962275 0.950847 -0.407496 0.617847 0.836703 +-0.0415932 0.439522 -0.07451 -0.470155 0.456856 0.875438 0.610125 0.604677 +0.270323 0.320618 -0.0947187 -0.365721 0.760394 -0.472468 0.896321 0.224609 +-0.158006 -0.14951 0.717 0.655573 -0.454379 0.895668 -0.657176 0.248163 +0.138563 -0.0180113 0.191786 0.900287 -0.623111 0.0718001 -0.419325 -0.928102 +0.721988 0.450695 0.054242 0.675887 -0.046098 -0.0776113 0.649494 -0.541712 +-0.973227 0.811297 0.671414 0.254526 0.658319 0.57909 0.600238 -0.675435 +-0.011479 0.86599 0.366494 0.225368 0.140601 -0.000124131 0.144893 0.225741 +-0.0838095 0.387244 -0.689906 0.586899 0.246606 0.218082 -0.774383 -0.177423 +-0.725591 0.175092 0.102378 0.965872 -0.587109 0.543606 -0.0260682 -0.51752 +0.197836 -0.702652 0.520644 0.819619 -0.678164 0.947498 -0.277995 0.107026 +0.776415 -0.875923 0.394003 -0.354281 0.70118 -0.695215 -0.256926 0.0904048 +0.481263 0.146732 -0.425491 0.537589 0.355505 -0.688914 0.989679 -0.663574 +0.915144 0.721881 -0.799716 -0.337425 0.1607 0.381086 -0.954813 -0.90889 +0.861045 0.809379 0.0106808 0.188282 -0.92879 -0.139722 0.235875 0.912959 +0.317596 0.0962255 -0.52784 0.329931 0.619167 -0.369354 0.57385 0.76421 +-0.788329 -0.375513 -0.635246 0.448801 0.614954 -0.0946107 0.431591 -0.475603 +-0.247791 -0.387756 0.501257 0.161509 -0.416007 0.965461 -0.490639 0.951325 +0.351507 -0.5273 0.75251 -0.265674 0.715974 0.228488 0.55418 -0.878948 +-0.231026 0.968163 -0.661585 -0.999387 0.540818 -0.0698159 0.521574 -0.00717663 +0.960331 -0.484705 -0.341116 -0.613373 0.937889 -0.318486 -0.726292 0.527913 +-0.119951 0.300227 -0.44361 -0.56629 0.334748 -0.722119 0.797099 -0.14651 +-0.204771 -0.143151 0.805168 -0.886228 0.0897569 0.547813 -0.237215 0.124713 +0.405914 0.636952 -0.842242 -0.0302225 0.839292 -0.75642 -0.259522 0.396902 +0.38835 0.433439 0.397809 -0.568495 -0.23167 -0.0718805 0.193332 0.0820198 +-0.469228 -0.608177 0.260098 -0.651517 0.367638 -0.650733 0.523926 0.347477 +0.191905 -0.0680753 -0.364185 0.137717 -0.440258 0.312023 -0.725152 0.180157 +-0.103302 0.896225 0.416362 -0.519851 0.774741 0.160886 0.708706 0.721492 +-0.466633 -0.0893367 0.826321 -0.870924 0.761161 0.513968 0.329094 -0.386737 +0.907783 0.365883 -0.366647 0.00331088 0.804544 0.20207 -0.633814 -0.555848 +-0.235618 -0.0339699 -0.0185517 0.360198 0.551649 0.964854 -0.668951 -0.648484 +0.939624 0.34939 -0.744987 0.583514 0.825694 0.369501 -0.455276 -0.478728 +0.867588 0.0923404 0.473362 -0.391421 -0.625188 0.405277 -0.663635 0.23118 +0.98559 0.452073 0.397196 -0.161284 0.824009 0.0686514 -0.243402 -0.458581 +-0.64569 0.941453 -0.71447 -0.113639 -0.492668 0.791628 -0.181362 -0.478111 +-0.0637608 -0.468836 -0.0765535 -0.171667 0.517801 -0.698574 0.962859 -0.893231 +0.451662 0.053278 -0.892541 0.779971 0.526298 -0.187434 0.479513 0.769857 +0.464148 0.910832 0.754622 0.56699 -0.512335 -0.443822 -0.959895 0.00641124 +-0.612024 -0.974763 0.0887326 0.723811 0.250143 -0.678394 0.93651 0.687853 +-0.0962185 0.453788 -0.894264 -0.4403 -0.503982 -0.362084 0.898738 -0.921332 +-0.795003 -0.490026 -0.10242 -0.768762 -0.360123 0.20174 0.227832 0.779859 +-0.869027 -0.166382 -0.837505 0.2924 -0.996497 0.833509 -0.71889 -0.704882 +-0.618075 -0.0733225 -0.972386 0.383851 -0.832165 -0.0710698 0.0938433 -0.0574702 +0.105864 0.95241 -0.468853 0.977143 0.098734 0.621518 0.0742271 -0.225418 +0.758995 0.084791 0.522413 -0.535609 0.738139 -0.56859 -0.880642 -0.833513 +0.575114 0.104168 0.384118 0.948417 -0.881103 -0.720524 -0.453562 -0.60447 +0.453197 -0.484345 -0.498019 0.0352992 -0.506009 -0.813873 -0.866188 0.123789 +0.458891 -0.997015 -0.873448 0.384451 -0.864472 -0.981493 0.886432 -0.821239 +-0.174388 0.731022 0.564594 0.0486276 0.578099 -0.0255768 0.220408 -0.353769 +-0.250461 0.310739 0.54473 -0.0545715 0.806352 -0.10376 0.134289 0.42747 +-0.633519 0.0503947 0.899446 -0.5244 0.877891 -0.540384 -0.237581 -0.236054 +0.51793 -0.402829 -0.74295 -0.50237 0.486262 -0.522252 0.17971 -0.0238329 +0.918786 -0.51196 -0.314827 -0.400451 -0.220271 0.28387 0.309916 -0.139415 +-0.454818 -0.845796 -0.434315 -0.304371 -0.664384 0.15454 -0.198632 -0.0817048 +0.321019 -0.69302 0.0532293 -0.131409 0.53806 -0.624413 0.0382679 -0.71237 +-0.318035 0.46381 0.557568 0.63931 0.909057 0.123634 0.499409 -0.761453 +0.0792408 -0.343298 0.274612 -0.762256 -0.527155 -0.491915 0.258529 -0.485005 +0.831757 0.654417 0.76289 -0.98712 0.540921 -0.358934 0.0907502 -0.795737 +0.438672 0.545536 -0.40142 -0.95785 0.860667 0.31558 0.316762 0.765004 +0.536493 0.973878 -0.480902 -0.227973 0.693516 0.989617 -0.378439 0.265221 +-0.644759 0.301819 -0.644533 0.601933 -0.641316 0.181153 -0.86458 -0.135988 +-0.542538 -0.848576 0.692349 0.079111 0.270207 0.283374 0.0606738 -0.29633 +-0.756621 0.897779 -0.269115 0.164742 0.501106 -0.244866 -0.32088 -0.914074 +-0.0498213 -0.0570648 0.263523 0.908372 0.564612 -0.705888 -0.86702 0.82604 +0.524106 -0.605483 0.537845 0.810716 0.542551 -0.708089 -0.30362 -0.919583 +0.0033156 0.236522 -0.274942 0.907076 0.991233 -0.488817 -0.927317 0.604774 +0.753357 0.437084 -0.321181 -0.330611 -0.88642 -0.500423 0.435738 0.883124 +0.726302 0.0567875 0.619763 -0.0224197 -0.56383 0.792938 0.517057 -0.774178 +-0.0755045 0.52396 -0.316418 -0.527674 0.61262 0.0490231 0.820156 -0.461446 +0.921259 0.74196 0.701823 -0.368448 0.0144466 0.0792542 -0.7888 -0.925565 +0.976048 -0.350421 -0.454161 -0.426072 0.720985 0.208408 0.0451211 -0.866218 +0.274607 0.681934 -0.996008 0.746247 -0.807708 0.408563 -0.923163 -0.37162 +-0.756702 0.875637 0.356668 0.567545 -0.699811 -0.882049 -0.854333 0.362533 +-0.512753 0.774731 -0.67637 -0.745905 -0.774444 0.124573 -0.570468 0.243402 +-0.0898509 -0.22061 -0.458399 -0.0416534 -0.0878776 0.142848 -0.477647 0.756049 +0.000349967 0.480484 -0.232482 0.732368 0.429491 0.470299 0.768061 0.741892 +0.890118 0.0577898 0.152233 0.417615 -0.941858 0.319885 -0.190016 0.71424 +-0.978877 -0.382177 0.944849 0.100975 -0.15484 -0.802377 -0.601933 -0.54424 +-0.228456 0.171383 0.232305 0.103878 -0.0456658 0.163971 0.771114 0.0675747 +0.0165751 0.62803 0.0934436 -0.327452 -0.670034 -0.777859 -0.397378 -0.543197 +0.504346 0.329616 0.687922 -0.925564 0.503927 -0.344951 0.238153 -0.575422 +-0.225979 -0.488465 -0.21703 0.375165 -0.463176 -0.607798 0.378912 0.736663 +-0.140162 -0.114695 -0.463715 -0.359241 -0.0816379 -0.838987 -0.298994 0.661456 +-0.923774 0.996942 0.00563778 0.492051 -0.809241 -0.220833 0.496805 -0.913763 +0.140333 -0.0130841 -0.854971 -0.760718 0.0336346 0.0254133 -0.170119 -0.638502 +0.361199 0.241009 0.856447 0.165383 0.0618192 -0.319219 -0.483658 -0.606498 +-0.124282 0.909326 0.388856 -0.0583138 -0.574562 -0.457529 0.824842 -0.623682 +0.38279 -0.935983 0.825104 0.382438 0.6676 0.801026 0.587021 -0.872922 +0.229531 -0.331683 -0.343916 0.835561 0.10239 -0.429101 0.967624 0.821956 +-0.135739 -0.353168 -0.0449242 0.188729 0.536394 0.992154 0.0872412 0.938832 +-0.994855 0.374559 0.0957442 -0.614064 -0.221976 0.973031 -0.446563 -0.419641 +-0.302373 -0.299059 -0.872026 -0.711552 0.0355826 -0.651896 -0.738868 -0.854359 +0.377706 -0.255825 -0.737457 -0.771 -0.333372 0.151784 -0.524131 -0.482389 +-0.111203 -0.470208 -0.781669 0.638474 -0.681036 -0.219878 0.324534 -0.497162 +0.861592 0.459932 -0.954288 0.341893 0.949 0.324577 -0.613932 0.773538 +-0.33621 0.348251 0.418902 0.139857 -0.666187 0.159527 0.736503 0.152294 +-0.466221 0.397112 -0.606685 -0.771545 -0.302752 0.415823 0.64901 0.0614916 +0.581623 0.774078 0.708457 0.962784 -0.711574 0.940553 0.580483 0.540611 +-0.28569 -0.412809 -0.00786611 -0.54289 -0.898176 0.380764 -0.688689 0.504092 +-0.811939 -0.274285 0.815974 0.481681 -0.32469 -0.934366 0.839547 -0.169832 +0.209099 -0.571355 -0.0470802 0.218184 -0.517936 -0.821072 -0.123108 -0.389733 +0.515922 -0.0245071 0.429742 0.826203 -0.283113 -0.315026 0.598175 -0.118725 +0.00876872 -0.837834 -0.0497919 -0.0266431 -0.984383 -0.179382 0.676681 0.241681 +-0.294095 0.408535 -0.856501 0.385449 0.264363 0.580878 0.369414 -0.426799 +-0.835825 -0.544945 -0.734543 0.780376 0.298703 0.90176 -0.286362 0.955803 +0.392917 0.456737 0.292057 -0.404861 0.467663 0.325697 -0.350189 -0.986631 +0.0282557 0.234152 0.0634116 0.945357 0.495868 -0.816892 0.602026 -0.707111 +0.299164 0.529442 -0.256736 0.184076 -0.548297 0.848613 -0.40698 -0.696608 +0.0445485 -0.531856 -0.0068861 -0.876519 -0.674682 0.973914 0.0447032 0.514157 +-0.0992711 -0.652818 -0.0439884 -0.641035 0.723269 0.859504 -0.905632 -0.882526 +-0.890704 0.782478 -0.424662 -0.192941 -0.66712 -0.349342 -0.6031 0.964571 +0.526555 -0.0567282 0.581412 0.316658 -0.311291 -0.344182 -0.176196 0.0270604 +0.793437 -0.604303 -0.928391 -0.799126 -0.630315 -0.610741 -0.588965 -0.1293 +-0.906492 0.272001 0.341823 0.796484 0.0523215 0.123696 0.904695 -0.12076 +-0.972747 -0.648288 -0.602745 -0.722191 -0.351104 0.500287 0.088745 -0.319842 +0.500934 0.282794 0.0454934 0.605164 -0.780366 -0.329965 0.939782 -0.178307 +-0.838816 0.874248 0.18245 -0.969468 -0.91579 -0.0267874 -0.759045 -0.589663 +0.211185 0.465236 -0.240739 -0.498714 -0.675289 0.587301 -0.337304 -0.872029 +-0.276362 0.622924 0.585823 0.277861 0.063359 -0.754191 0.423178 0.286404 +0.322527 0.338383 0.622437 0.809099 -0.037747 -0.21445 0.00934567 -0.290484 +-0.182961 0.0311626 0.966787 -0.367836 0.177457 -0.173187 -0.43698 -0.39583 +-0.758299 -0.70009 -0.865822 0.612413 0.897207 -0.255269 -0.466869 0.0620859 +0.0918929 -0.34017 -0.402086 -0.162409 -0.348218 -0.827295 0.547759 -0.0633793 +-0.427105 0.89858 0.709572 0.00684876 0.476413 0.83969 -0.478957 0.632089 +-0.371331 -0.672297 0.528203 0.767076 -0.58556 -0.442409 -0.418912 0.135802 +0.267323 -0.200532 0.454927 -0.896557 0.938315 0.55772 -0.563894 -0.74007 +0.870471 -0.72489 -0.972334 0.395925 -0.105143 0.629998 0.518278 -0.517841 +-0.29891 0.832678 0.549625 0.271397 -0.823728 0.875052 -0.456435 -0.448438 +-0.0586764 0.194515 0.407848 0.14095 0.619632 -0.980324 -0.117258 -0.815876 +-0.933897 -0.28261 0.634805 0.301492 -0.972994 -0.134614 -0.12992 0.701162 +0.639765 -0.406018 -0.59692 0.570878 0.640079 -0.825857 -0.291862 0.34047 +-0.583488 0.12816 0.688513 -0.575937 0.53116 0.845981 0.116178 -0.549486 +-0.777821 -0.177186 0.730038 0.98904 -0.89302 0.885844 0.840692 0.631682 +0.632508 0.219905 -0.244135 -0.412468 -0.668984 0.943456 -0.0197695 0.104622 +-0.0940114 0.233033 -0.747028 0.376862 -0.980243 -0.284161 0.221297 -0.957587 +-0.901751 -0.402335 0.615905 -0.468134 0.247774 0.397941 -0.884356 -0.888632 +0.130646 0.0827703 -0.603369 0.271076 0.423045 -0.260751 -0.373238 0.419404 +-0.687241 -0.523622 0.814121 -0.55475 0.880876 0.663568 0.812579 0.376562 +-0.262174 0.356007 0.267313 -0.658261 0.0691339 -0.663666 -0.18604 0.395529 +-0.165158 0.488524 0.855688 -0.523008 -0.129683 0.46563 0.78824 -0.791651 +-0.581014 0.597263 -0.0503741 -0.165992 -0.8116 0.79565 0.92139 0.23766 +-0.672821 0.60898 0.752071 0.483987 0.146269 -0.91847 0.108537 0.243277 +0.923749 -0.243402 0.308673 -0.911232 -0.677737 -0.440247 0.744561 -0.398138 +0.575828 0.407175 0.760658 -0.172748 -0.00405966 0.415096 -0.679837 0.934977 +0.0950945 -0.0456896 -0.872209 0.989618 -0.049148 -0.555535 -0.321886 0.272169 +0.487764 -0.27916 0.871749 -0.984377 -0.376352 0.561644 0.229217 -0.994861 +0.872511 -0.101974 0.105318 -0.140537 -0.183839 -0.0312317 -0.866099 -0.298308 +0.699842 0.155432 0.87801 0.64462 0.00403796 0.466432 -0.795627 -0.685231 +-0.683326 0.751886 -0.69546 -0.568289 -0.76068 -0.508528 -0.484421 0.249769 +-0.528628 -0.291938 -0.141746 -0.770612 -0.186257 0.883314 0.388875 -0.234146 +0.350193 -0.428158 -0.7459 -0.349548 0.572079 -0.0250603 -0.228663 -0.977659 +-0.388133 -0.876622 -0.253835 -0.557926 0.458291 0.639308 -0.0519916 -0.04663 +0.161414 -0.00827725 -0.107576 0.629214 -0.633143 0.348901 -0.749198 -0.74827 +-0.0587521 -0.759471 0.947034 -0.225698 -0.0076309 0.166646 0.72231 0.962406 +0.228604 -0.656118 0.492903 0.591451 -0.0412384 -0.763194 0.218953 -0.75096 +-0.0853158 -0.0288549 -0.395504 0.596218 0.532552 -0.0724938 0.599071 0.685863 +-0.309642 0.0939375 -0.143125 -0.722295 0.357981 0.498287 -0.774542 0.786052 +0.261744 -0.306346 0.472413 0.705548 0.481577 -0.582633 -0.716086 -0.336843 +0.09798 -0.556612 -0.511358 -0.975902 -0.234911 0.101811 -0.0825996 -0.694234 +-0.0738821 -0.525627 -0.651907 0.375882 -0.250062 0.713097 0.124152 -0.769629 +0.217827 -0.70236 0.770399 -0.361043 -0.776906 0.577841 0.283512 -0.0524186 +0.373881 0.0340662 -0.696774 0.76993 -0.0190527 -0.989262 0.318189 0.285332 +0.0795496 0.0930517 -0.354266 -0.865884 -0.647234 0.190744 -0.212696 -0.607302 +0.697017 -0.3633 0.763994 0.56485 0.852337 0.65899 -0.852101 -0.00132943 +0.840541 0.238459 -0.594806 -0.96931 -0.102222 -0.47928 -0.0224324 0.0384352 +0.496916 0.577207 -0.441211 -0.877902 -0.618756 -0.677445 -0.849987 0.0307652 +-0.391906 -0.934762 -0.476748 0.904321 -0.666687 0.456262 -0.913208 0.538686 +-0.622405 0.747127 0.355453 0.941675 -0.138281 -0.364041 0.859529 -0.705589 +-0.220003 -0.828672 -0.418765 -0.304503 -0.56044 -0.0464992 0.980377 0.174231 +-0.873058 -0.367132 -0.811555 -0.34624 -0.146387 -0.089031 -0.343529 0.640726 +-0.463947 -0.158464 -0.469379 0.618198 -0.866839 0.893599 -0.378412 0.473208 +-0.433498 0.1337 0.133971 0.797691 0.689436 -0.900095 0.647485 0.229876 +0.822318 -0.0500753 0.654512 -0.801272 0.973569 -0.908658 -0.213578 -0.596733 +-0.175229 -0.30907 -0.229341 -0.799842 0.14742 -0.71894 -0.271957 -0.809688 +0.756969 0.0647562 -0.556409 -0.867341 0.935732 0.705752 0.867598 0.403568 +0.900701 0.616795 -0.804695 -0.357841 0.849394 0.968658 -0.153075 -0.0127006 +0.459091 0.244803 -0.988288 0.50804 0.310159 -0.619608 0.104331 -0.271515 +-0.0131555 0.081407 -0.53846 0.72394 0.37893 -0.00165161 0.0607774 0.833515 +0.0147606 -0.791332 0.347137 0.15768 0.533896 -0.555295 -0.162536 -0.230331 +-0.618749 -0.0898566 -0.630924 0.374219 -0.959814 0.315794 0.701011 0.477475 +0.0400638 0.568849 -0.760913 -0.68221 0.514091 -0.312234 -0.345115 0.261302 +-0.20384 -0.318684 0.166508 0.37568 0.0633076 0.231149 -0.813706 0.651435 +-0.043047 0.192414 0.327987 -0.293963 0.875594 0.89737 0.275166 -0.151287 +0.447596 0.840841 -0.933354 0.249121 -0.595451 -0.259476 -0.52932 -0.772351 +0.738218 -0.287759 -0.716446 -0.769356 -0.347781 -0.893608 -0.560328 0.716437 +-0.41101 -0.804579 0.977996 -0.351573 -0.392059 -0.757424 0.375409 0.0162358 +0.0480087 0.934702 -0.672329 0.635712 -0.00300719 0.214493 -0.832019 -0.771661 +-0.421777 -0.271635 0.718182 0.583991 -0.626458 -0.00333879 0.727638 0.823556 +-0.0382401 -0.262535 0.972411 -0.399773 -0.669322 -0.422892 0.206397 -0.543495 +0.703215 -0.855285 -0.604492 -0.282483 0.441433 -0.24338 -0.154623 -0.48984 +-0.58621 0.541519 0.546088 0.794191 -0.882634 -0.605676 -0.298874 0.374352 +-0.126557 0.555681 -0.287025 0.318666 0.530153 -0.397346 0.576145 -0.638613 +-0.917444 0.296461 0.955836 -0.65721 0.695861 0.043674 -0.624715 0.690593 +0.986136 -0.660492 -0.733043 0.576596 -0.553081 -0.775878 -0.931387 0.573468 +-0.527571 -0.575773 -0.579764 0.788955 0.315556 -0.335398 -0.184458 0.72793 +0.0136059 0.0681429 0.548535 0.142222 0.0239615 0.995879 -0.866157 -0.142694 +-0.557506 -0.0331198 -0.0317959 0.515413 0.283685 0.604645 0.922669 -0.154334 +0.883074 -0.505844 -0.460389 0.485507 0.401237 0.265223 0.104808 0.428291 +-0.661414 0.39231 -0.25108 0.57457 0.387117 -0.877487 -0.749304 0.404519 +0.534068 -0.331007 -0.146343 -0.977265 0.20961 0.160137 0.437703 -0.609875 +-0.308816 -0.665959 0.47042 0.0504511 -0.626521 0.811507 -0.852126 0.760364 +-0.078426 -0.438817 0.381848 -0.0238299 0.565028 -0.570837 0.534991 -0.889088 +-0.931507 0.186301 0.797062 -0.223884 -0.178746 0.786467 0.891901 -0.766474 +0.170792 0.938991 0.213343 0.33078 0.972223 0.157726 0.754286 -0.469261 +-0.153329 0.636921 0.888783 -0.6106 -0.702787 -0.120373 -0.0259913 -0.573057 +-0.681333 0.351697 0.819066 0.782317 0.299589 -0.209447 -0.0239501 -0.708697 +-0.0485829 -0.849968 0.366031 0.894566 -0.236988 0.417351 -0.027951 -0.454019 +-0.504835 -0.286129 -0.744047 -0.974466 0.422891 0.305965 -0.658884 0.455997 +0.443154 -0.872624 -0.69793 -0.217703 0.119623 0.382854 0.731145 0.764561 +-0.103426 -0.429499 0.861196 0.513499 0.467221 0.278728 0.888892 -0.859868 +-0.236591 0.982268 -0.123918 -0.870957 -0.485913 -0.384631 0.269559 0.681465 +-0.969833 -0.419319 0.64387 -0.824699 -0.601057 0.0015978 0.526771 -0.182932 +0.167587 -0.992645 -0.771173 0.278499 -0.0384297 -0.0274552 0.418631 -0.410953 +-0.265885 0.301537 -0.14445 0.463352 0.590728 -0.158784 -0.0902518 0.678023 +-0.807479 0.661826 -0.403457 -0.430091 0.668091 0.59243 -0.310691 0.454404 +-0.575875 -0.37056 -0.359989 -0.7231 -0.712069 -0.528939 0.641205 -0.226798 +-0.218395 0.206113 -0.29861 -0.879979 0.0130812 0.311978 0.727739 -0.388292 +-0.927151 -0.558819 -0.519273 -0.0980931 0.665045 0.665278 -0.232994 0.351635 +-0.977552 -0.80713 -0.647368 0.637197 0.0915763 0.809541 0.274054 -0.224862 +-0.164315 0.364527 -0.800353 -0.792172 0.847013 0.187365 0.0990939 -0.412477 +0.372143 -0.551978 0.402478 0.312149 -0.0522783 -0.856704 0.901229 -0.118029 +-0.345782 -0.821606 -0.679754 0.990239 -0.0118953 0.214492 0.69436 -0.0135066 +-0.436876 0.929784 0.497388 0.200406 -0.598338 0.589664 -0.852718 0.820035 +0.0563828 -0.95758 -0.845192 -0.798894 0.707567 -0.738946 0.958976 0.965312 +-0.135131 -0.42393 -0.39051 0.791436 0.532899 0.910974 0.193791 -0.200857 +0.873451 -0.58441 -0.118604 -0.798794 -0.0241556 0.309326 0.402356 -0.854476 +-0.714225 0.669105 0.153772 -0.335128 -0.545302 -0.910632 -0.428904 0.0103926 +-0.0911475 -0.0617885 0.525746 -0.993839 0.262267 -0.730372 0.0696819 -0.561545 +-0.421976 0.889024 -0.211543 -0.643264 0.0494218 0.343296 0.119638 -0.107548 +0.36477 -0.506497 -0.784439 0.736339 -0.908276 0.276037 0.615321 0.280225 +-0.570541 0.0991791 -0.0575483 -0.612905 0.760565 -0.11731 0.498152 0.720806 +-0.173592 -0.932767 -0.324539 0.551885 0.542661 0.982325 0.141416 0.0749308 +-0.64489 -0.937608 -0.424643 -0.89868 0.676486 0.470915 0.541542 0.645032 +-0.58852 -0.517797 0.91728 0.797466 0.171727 0.537008 0.413464 0.0792674 +0.725099 -0.467204 0.419716 -0.453448 -0.12609 -0.600627 -0.876101 -0.0280678 +0.500841 -0.629449 0.216681 -0.331148 -0.574679 -0.648917 -0.488191 0.577152 +-0.739027 0.228226 -0.567767 -0.969028 -0.253798 -0.717974 0.0696748 0.0938428 +-0.927949 -0.423073 0.787491 0.331996 0.0850664 0.7873 0.163322 0.436217 +0.0308512 0.228962 0.0324198 0.494983 0.874798 0.206818 -0.0354002 -0.0951359 +-0.298199 0.635572 -0.750356 -0.16748 -0.213532 -0.246433 0.239039 -0.347236 +-0.625589 0.14159 0.82336 -0.450564 0.553692 -0.598211 0.299441 0.759206 +0.348087 -0.713231 0.372781 0.385948 0.642597 -0.738866 -0.895538 -0.743501 +-0.382141 -0.396326 -0.971747 0.696216 -0.292185 0.573439 0.247653 -0.147936 +0.80625 0.800385 -0.700048 0.351293 -0.926384 0.257988 0.55101 -0.815838 +0.409352 -0.0711105 -0.701948 0.925536 0.310476 -0.0162135 -0.969555 -0.790082 +-0.528257 -0.209494 -0.483273 -0.155396 0.604412 0.990433 0.519163 -0.795194 +0.769942 0.442149 0.421451 0.588982 0.969506 0.201319 0.0616305 0.94586 +-0.973679 0.215293 -0.941432 0.908672 0.136433 -0.188619 -0.379484 -0.104493 +-0.415368 -0.919933 -0.223428 0.236506 0.410394 -0.264152 -0.117417 0.243977 +0.322721 -0.305795 -0.877695 -0.289087 -0.252315 0.34939 -0.183321 0.709864 +-0.261912 -0.687879 0.565977 -0.834074 0.158382 -0.518495 0.885207 0.697517 +0.205533 -0.042898 0.8289 0.0454625 -0.0248576 0.763017 0.962756 -0.572692 +0.959316 -0.036971 -0.094245 0.323684 0.663768 -0.199927 0.351647 0.81876 +-0.826478 -0.365443 0.420705 0.962953 0.794163 0.427182 -0.611511 -0.61819 +0.475511 -0.793381 -0.723674 -0.852891 -0.889669 0.640189 0.856983 -0.290165 +0.633274 0.292767 -0.253832 0.242778 0.873079 -0.99642 0.892524 0.361816 +-0.863646 -0.913512 -0.288336 -0.756333 -0.397216 0.686055 -0.136304 -0.678875 +-0.633119 -0.744407 -0.588538 -0.00867756 -0.226401 0.0968277 0.362938 0.565491 +0.915974 -0.737677 -0.0173621 -0.384381 0.0729694 0.215846 0.904642 0.237143 +-0.185859 0.631033 -0.801478 0.997759 -0.723299 0.93095 0.773143 0.594227 +-0.289559 0.322607 0.757116 0.559505 0.949622 -0.27274 -0.792751 0.391485 +0.289462 -0.822898 0.0272 -0.445521 0.620849 -0.00287989 0.312331 -0.797289 +-0.154895 0.767109 -0.267342 -0.953723 0.543938 -0.866447 -0.0941029 -0.339166 +0.519829 -0.821429 0.75125 -0.113211 -0.617758 0.296394 0.028915 0.370434 +-0.391275 0.576168 -0.961182 0.48575 0.798456 0.0891443 0.832443 -0.964255 +0.912362 0.819835 0.900146 0.0447154 0.639345 0.702846 0.911199 0.0560238 +0.0315657 -0.358377 0.349247 0.630195 0.249739 -0.969036 0.744419 0.565511 +0.280934 0.125016 -0.580872 0.536871 0.348812 -0.88015 -0.660975 -0.999603 +-0.15396 0.313619 0.261226 -0.222399 -0.71731 -0.451114 0.311605 -0.303305 +-0.033923 -0.940143 -0.648723 -0.776813 0.381103 -0.368571 0.270384 0.0804864 +0.293465 0.729439 -0.794396 -0.165949 -0.481165 0.565788 -0.951154 -0.347625 +0.885893 -0.648988 0.676499 -0.0471971 -0.748788 -0.460324 -0.019368 -0.957997 +0.202859 -0.954417 0.33712 -0.117888 0.400289 -0.941898 0.75673 0.303229 +0.596352 0.454783 0.858148 0.771329 -0.720131 0.99016 0.994014 0.759047 +-0.592595 -0.629853 0.733491 -0.459211 -0.441861 0.0822931 -0.409895 -0.0787478 +0.184709 0.533202 -0.847097 -0.907619 0.0118464 0.936569 0.196118 0.254834 +-0.884053 -0.532799 0.910126 0.475674 0.666932 -0.628023 -0.576535 -0.469368 +0.891465 -0.793515 0.50095 0.842043 -0.462611 0.0398849 0.62048 0.596908 +0.43778 0.300052 -0.0114264 -0.323756 0.571497 -0.330773 0.805934 -0.284496 +-0.792036 -0.0501875 0.437801 0.148841 0.734703 0.30062 -0.715432 0.108541 +0.845658 -0.162659 0.154013 -0.0147165 -0.102836 -0.518214 -0.0524601 0.211388 +0.774781 0.709874 -0.68275 -0.899831 -0.562339 0.421571 0.669019 0.749238 +0.948515 0.834915 0.27058 0.269523 -0.721323 0.232853 0.123963 -0.8937 +-0.265647 -0.589781 0.14842 -0.845417 -0.698621 -0.220769 0.851933 -0.798709 +0.559397 -0.899814 -0.726456 -0.41406 -0.339211 0.557953 0.52204 0.932899 +-0.022377 0.950529 -0.667494 -0.215668 -0.938877 -0.214596 -0.809057 0.046996 +-0.408067 -0.980112 0.238443 -0.752431 -0.799308 -0.336314 0.319919 0.189053 +-0.763031 0.277874 0.120553 -0.854431 0.867596 -0.510476 -0.385128 -0.992872 +-0.0576368 0.137547 0.563772 -0.864928 -0.769947 -0.434662 -0.342907 0.620904 +-0.0160516 -0.132959 0.244994 -0.188478 -0.777315 0.992548 -0.0024895 0.979159 +-0.730022 -0.00247484 0.990202 0.312306 0.237458 -0.35138 0.137266 0.455564 +0.956368 0.310525 -0.854778 0.411043 -0.952062 0.358463 0.231315 -0.0518105 +-0.0672578 -0.207477 0.288971 0.0380662 0.690969 -0.268031 0.919081 -0.115396 +-0.704587 -0.154296 0.136428 0.954856 0.330782 0.481386 0.471715 -0.219455 +-0.203376 0.920095 0.697111 0.55034 0.383709 -0.262638 -0.817549 0.227347 +-0.463615 -0.291141 0.0250162 -0.00726496 -0.198275 0.58227 -0.211953 0.593673 +0.857279 0.841782 -0.449536 0.64487 -0.0307082 -0.0592299 0.648799 0.563618 +0.341086 -0.806764 0.890553 0.7288 0.389373 0.0534525 0.768573 -0.853393 +0.735197 -0.527257 -0.0361665 -0.0291081 0.524811 -0.753464 0.590635 0.242473 +0.758816 -0.904507 -0.294953 0.400438 0.625616 -0.542324 -0.846579 0.207886 +-0.773352 0.584384 -0.906816 0.790825 0.564684 -0.997325 0.363822 -0.0303743 +0.849792 0.34236 -0.47525 0.187017 0.809634 -0.330487 -0.0429083 -0.451028 +-0.518092 -0.772305 -0.785787 -0.0447383 0.194206 0.98632 -0.195761 -0.700767 +-0.522136 -0.931827 -0.800064 -0.154929 -0.274584 -0.987216 0.515634 -0.833795 +0.665241 -0.869177 -0.747338 -0.0971025 -0.502152 0.244928 0.811075 -0.423818 +0.630245 -0.945272 0.859781 -0.986722 0.231161 -0.615765 0.772432 0.61465 +0.884009 -0.935077 0.361179 -0.517252 0.247166 -0.107838 0.275589 0.0451575 +0.239435 -0.932808 -0.389149 -0.541961 0.612902 -0.285752 0.315727 0.632086 +0.439833 0.462677 -0.675846 0.0639894 -0.971488 -0.497908 -0.994998 -0.983985 +-0.665924 0.158148 -0.574551 -0.539711 0.329338 0.658037 -0.836134 -0.549203 +0.323902 -0.767664 0.743178 -0.20366 -0.702825 0.572041 -0.0672957 -0.820981 +0.929342 -0.232172 0.912706 0.492563 0.594423 -0.765973 -0.777843 0.222314 +-0.353925 -0.714375 -0.745331 -0.590585 0.608246 0.316576 0.25868 -0.181157 +-0.954547 -0.268678 -0.0259193 0.636473 -0.00576454 0.504652 -0.983029 -0.999909 +-0.977427 -0.439742 -0.634293 -0.443093 -0.208878 -0.917314 0.460906 0.668095 +0.404642 0.172564 -0.313897 0.0348753 0.314359 0.582387 0.587393 -0.406708 +-0.683042 -0.730176 0.28103 0.0451851 -0.536919 -0.440717 0.647332 -0.499174 +0.181887 0.957391 -0.937752 0.599208 -0.537083 -0.426277 -0.11741 -0.50889 +0.246802 -0.644743 0.906881 -0.0991696 -0.00592176 0.808702 -0.0879378 -0.136421 +-0.654269 0.913209 0.936144 0.186601 0.286651 -0.505364 -0.711188 0.216235 +0.897288 0.68245 0.773807 -0.519927 0.482965 0.963589 0.901341 -0.5257 +0.0480231 -0.66276 0.274623 -0.612045 0.546233 -0.565404 0.521747 0.0284632 +0.556798 0.111723 -0.317132 0.582086 0.743024 -0.231451 0.842579 -0.639296 +-0.17357 0.131176 0.67723 -0.844804 0.273531 0.41979 0.146505 -0.209657 +-0.621485 -0.292841 0.473998 0.0377861 -0.150556 0.27686 0.795891 0.154968 +-0.880345 -0.421512 -0.893228 -0.558276 -0.660662 0.233274 0.279943 -0.724258 +-0.00866459 -0.869644 -0.510631 -0.675563 0.874323 -0.647973 0.361705 -0.0513744 +-0.765622 -0.840489 0.349422 -0.45233 0.372522 -0.879064 -0.255937 0.883011 +0.289411 0.796227 -0.906529 0.303926 -0.720834 0.0183671 -0.244382 0.266483 +0.20845 -0.849936 0.0364291 0.769035 0.388537 0.208324 0.719498 -0.817213 +0.571492 0.296124 -0.612299 -0.268751 -0.59594 -0.612136 0.527542 -0.401115 +-0.554466 0.040609 0.27548 -0.765129 0.200401 0.0717073 0.968369 0.20067 +0.491465 -0.79106 0.011206 -0.793763 -0.246114 0.612065 -0.16963 0.0736798 +-0.496521 -0.157787 0.868321 -0.521676 -0.685509 -0.240769 -0.0398775 0.552004 +0.165768 -0.963096 -0.568903 -0.983895 0.824196 0.0279871 0.454328 0.218824 +0.740034 -0.912918 -0.887235 -0.599089 0.79243 -0.512696 0.518684 -0.00402916 +-0.327851 0.914753 0.890236 -0.656269 0.852599 -0.427016 0.365611 0.612482 +0.066393 0.255606 -0.843267 -0.643871 -0.112525 -0.464752 0.81926 0.463016 +-0.467603 0.410669 -0.423947 0.119199 -0.687074 -0.784492 0.63345 -0.286635 +0.98679 0.456341 -0.678906 0.0648139 -0.737 0.248312 0.731778 -0.409536 +0.513261 0.661747 0.565116 -0.625691 0.648478 -0.163854 0.143801 0.499486 +0.840303 -0.817532 -0.231689 0.39123 -0.903837 -0.47848 0.225207 -0.852077 +0.123674 -0.311777 0.290866 -0.0950451 -0.426041 0.86066 -0.748283 -0.632109 +-0.521492 0.0864328 -0.32038 0.840318 -0.77951 -0.606943 0.782581 0.777126 +-0.15473 -0.511288 -0.730831 0.793147 -0.586367 0.0114341 0.200563 0.879166 +0.250878 -0.199742 -0.729809 -0.487566 0.422522 0.864251 -0.0122899 -0.0645909 +0.397044 -0.205551 0.886822 -0.436877 0.369261 0.480061 0.318214 0.575161 +-0.841199 0.463341 0.281459 -0.848436 0.756315 0.572097 -0.846394 -0.746386 +-0.44147 -0.181421 -0.623874 -0.901199 -0.761866 -0.702611 0.66056 0.560011 +0.00865089 0.617429 0.60499 0.0953529 -0.0678855 -0.701857 -0.802685 -0.219635 +0.420718 -0.839643 -0.332753 -0.0244583 -0.254837 -0.157819 -0.155316 0.596616 +0.721415 -0.690868 -0.533421 0.857715 -0.526885 -0.887416 -0.554687 -0.315093 +-0.0237967 0.247744 0.0436885 0.0905536 0.697041 -0.942072 -0.73151 0.357572 +-0.0985748 0.2026 -0.533896 0.827953 -0.147183 0.18746 0.553788 -0.560407 +0.244526 -0.0242629 0.959511 -0.35888 0.827606 0.525406 0.916333 0.116075 +-0.862214 0.0870938 0.355415 0.25719 -0.912298 0.832491 0.291841 -0.209333 +-0.103273 0.299104 0.102417 -0.755506 0.395904 0.449318 -0.922041 0.343038 +-0.996375 0.539566 -0.810872 -0.457363 -0.00370834 -0.915863 -0.0582603 -0.773698 +-0.502701 0.281822 0.333183 -0.984507 0.568097 0.635937 -0.32079 -0.505801 +0.853921 -0.36294 0.152173 0.703791 0.173053 0.747136 -0.708884 -0.807983 +-0.146087 0.983002 -0.0854224 -0.899636 -0.945061 0.545917 -0.844186 -0.956619 +-0.159242 0.40135 -0.970597 0.814538 0.248151 -0.984629 0.0420052 0.150303 +0.68965 -0.0845069 -0.118973 -0.0804514 -0.342862 -0.809644 0.484086 -0.940726 +-0.591145 0.284674 0.491459 -0.0577902 -0.102593 -0.776112 -0.712163 0.795008 +-0.415303 -0.79179 -0.962326 0.959955 -0.405948 -0.173242 0.690971 0.631169 +-0.472481 -0.726465 0.330005 -0.521806 0.674279 -0.651179 -0.199559 -0.0987495 +-0.777557 -0.788969 -0.835652 -0.13577 0.506319 0.995402 -0.210915 0.143186 +0.523246 -0.71789 -0.963673 0.264485 0.989123 -0.411849 0.746188 0.0228331 +-0.783776 0.708437 -0.923628 -0.34587 0.184657 -0.955679 0.874086 0.0372084 +-0.821056 -0.172536 -0.871285 -0.812582 -0.426327 0.489858 0.505255 0.787761 +0.523894 0.509191 0.450586 -0.948326 0.336666 0.328266 0.175533 0.132165 +-0.0335831 -0.713004 -0.271654 -0.362875 -0.987953 -0.142638 0.349005 0.328507 +0.0100541 -0.799865 -0.733318 -0.792683 -0.745214 0.613791 0.753187 0.362633 +0.884437 0.500743 0.742149 0.738966 -0.666168 0.50721 -0.412618 -0.956246 +0.732696 -0.908065 0.535723 0.535157 0.351496 -0.902803 -0.683144 0.138511 +-0.132169 -0.434749 -0.72639 0.314277 -0.516514 0.61994 0.0519247 -0.308297 +0.317812 -0.37567 -0.495581 0.750164 -0.569595 -0.657367 -0.831786 0.372993 +-0.932849 0.260294 -0.989796 0.358031 0.32691 0.612817 0.666925 -0.604385 +-0.414279 -0.470107 0.846858 -0.310571 0.971106 0.667517 -0.140636 -0.287537 +0.35593 0.240565 0.773082 0.827102 0.891107 0.818325 -0.633923 -0.716162 +0.569729 0.48686 -0.573935 -0.0971379 0.242509 0.621819 0.343014 -0.889115 +-0.22017 0.67562 -0.106311 0.0444585 -0.020977 0.695225 0.00345053 0.715914 +0.674576 -0.421233 0.65987 -0.431844 0.542729 0.605938 0.858969 0.438134 +0.963366 -0.837117 0.0781909 -0.838091 -0.168628 -0.2336 0.937015 0.739941 +0.718574 0.581652 -0.858404 -0.401037 -0.00716871 -0.707419 -0.467581 -0.78914 +-0.151921 -0.94791 0.6188 0.817459 -0.709341 -0.926268 0.0723514 0.336622 +0.96258 -0.75766 0.396941 0.718143 -0.169828 0.122031 -0.0367065 0.7384 +0.263628 -0.880443 -0.124994 0.266299 -0.257957 -0.0265027 0.921781 0.844244 +0.998924 -0.233981 0.673804 0.185795 -0.399473 -0.367174 0.850937 0.784937 +-0.562042 0.346308 0.765645 -0.946488 0.623402 0.530048 -0.14034 -0.347501 +-0.999026 -0.186878 0.17968 -0.46803 0.507831 0.843023 -0.837577 0.531084 +-0.10777 -0.88443 0.280961 0.19961 0.516423 -0.0250554 -0.0374467 0.944339 +0.648775 0.43716 -0.0294552 -0.291237 0.429182 -0.014207 -0.999934 0.616593 +0.5151 -0.370435 0.925594 0.127702 0.91067 -0.950674 -0.852667 -0.451298 +0.551099 0.201026 -0.216906 0.435788 -0.0886131 0.835681 -0.452632 0.06121 +-0.762853 -0.275637 -0.0452351 -0.43197 0.348678 0.692471 -0.0250651 -0.837511 +-0.000705068 0.693438 0.329145 0.784132 -0.837982 -0.270238 0.876447 0.288744 +0.581061 0.875979 -0.22214 -0.977312 -0.286251 0.654071 -0.431568 -0.132034 +0.118309 0.37006 -0.278813 -0.166397 0.344885 -0.41479 -0.708495 -0.401663 +0.50952 0.85496 -0.42861 0.258136 0.864074 -0.705577 -0.547031 0.548996 +0.603454 -0.379478 -0.447613 -0.704614 0.294644 -0.646423 -0.662817 -0.353713 +0.629235 -0.855449 -0.501383 -0.180815 0.0642744 0.978021 -0.885866 0.667011 +-0.277067 -0.800078 0.357491 0.852214 0.214084 0.602324 0.630773 -0.934377 +0.822629 -0.42572 -0.0414185 -0.238885 -0.897346 0.952023 0.468097 0.50996 +0.187288 -0.396971 -0.909384 -0.229735 0.723638 -0.0262056 -0.663937 -0.517033 +-0.744808 -0.305843 -0.0132199 0.0133952 0.592778 -0.817288 0.785724 0.226325 +0.115543 -0.674744 -0.430768 0.475621 -0.201807 0.223091 -0.162097 -0.525051 +-0.280492 0.0154554 -0.850462 -0.793395 0.630453 -0.482961 -0.0385223 -0.377634 +-0.113907 -0.562943 -0.49774 -0.96475 -0.803074 -0.648262 0.7712 -0.263702 +-0.42579 0.264327 0.772499 0.707879 -0.663871 -0.0649428 0.845919 -0.573576 +-0.968266 -0.011629 0.618734 -0.539617 0.501684 0.156367 0.260198 0.326613 +-0.616168 0.731211 -0.346115 0.838324 0.680605 -0.582237 0.588383 -0.736307 +0.22 0.781366 0.404332 0.363306 0.280824 0.0860145 -0.844068 -0.346392 +-0.989464 0.816089 0.396796 0.13281 0.306754 0.0244165 -0.558434 -0.041283 +-0.571711 -0.561174 -0.756804 -0.761599 0.726301 -0.435965 -0.42099 0.310841 +-0.3506 -0.177054 -0.100774 0.828329 0.903417 0.444617 0.786963 -0.364767 +0.576912 -0.247691 0.940025 0.124626 -0.345186 -0.799237 0.972112 0.293386 +-0.756064 0.0174836 0.346254 0.729743 0.177827 -0.989281 -0.626815 -0.181518 +0.0113047 0.710335 -0.157297 0.8192 -0.7834 -0.972748 0.880057 0.686708 +-0.984164 -0.776617 0.224398 0.397543 0.665649 0.254794 0.802654 0.728762 +0.331912 0.983285 -0.161468 -0.634742 0.608703 -0.442285 0.636728 0.566193 +-0.141833 0.931464 -0.392285 -0.117315 -0.665514 -0.718371 -0.68684 0.134075 +0.0653097 -0.0704623 -0.254018 0.905615 0.45013 -0.657428 -0.404572 0.000768281 +-0.685062 0.280918 0.325373 -0.885701 0.336282 0.216995 0.641761 -0.608141 +-0.607014 0.749325 0.587225 -0.0221953 -0.0550681 0.646176 0.42147 0.338693 +0.635026 0.20767 0.662579 -0.0780125 -0.850308 -0.438233 0.166219 -0.623084 +0.861369 -0.456771 -0.915508 -0.469572 0.451801 0.0122024 0.0242943 0.322577 +-0.414223 0.784582 -0.433078 0.799838 -0.324865 -0.991578 -0.622669 0.178575 +0.0565888 0.135022 0.619722 0.671557 0.425162 -0.421601 -0.25108 0.821844 +-0.797878 -0.220905 0.0967337 -0.743334 -0.649678 -0.979725 0.179823 0.741467 +-0.456997 0.616709 -0.802383 0.504038 -0.273702 0.192112 -0.273834 0.586739 +-0.184189 0.347775 0.980186 -0.107538 -0.619015 -0.866729 -0.691914 -0.87061 +-0.147123 -0.123446 0.933143 -0.627955 -0.864982 0.857844 0.446014 0.636984 +0.579715 -0.664341 -0.663416 0.60679 0.961587 -0.955314 -0.46082 0.323185 +-0.763326 -0.317488 -0.0296931 -0.543851 0.196844 -0.503798 -0.326354 -0.043125 +-0.470543 -0.541783 -0.314201 -0.795537 -0.759185 0.0990609 0.911611 -0.64058 +0.0664862 0.722826 0.899792 0.741519 0.782599 0.0647453 0.457447 0.695179 +0.58767 -0.818951 -0.0449839 0.446339 0.0756951 0.0465723 0.899595 -0.645389 +-0.604101 -0.215408 0.316787 0.99631 -0.280395 0.256987 -0.791317 -0.420584 +0.00783592 0.389534 0.827462 0.736468 -0.485448 -0.206538 0.202916 -0.706972 +0.851653 -0.615325 0.958712 -0.782672 -0.727878 0.547352 -0.64593 0.118389 +0.221741 0.89213 -0.801569 0.883675 0.289008 0.426343 -0.843248 -0.956447 +-0.1651 0.121533 0.617531 -0.735839 0.547591 -0.715481 0.960951 0.313266 +0.804189 -0.616054 0.91116 0.606297 0.65658 -0.48108 0.748657 0.16065 +0.794865 0.0766061 -0.980672 0.706476 -0.816405 0.184429 -0.911435 0.537995 +0.716987 0.0314115 -0.671708 -0.400309 0.685982 0.432049 -0.806327 -0.412623 +0.745035 0.0077021 -0.43329 0.758352 0.34165 -0.0448048 -0.635356 -0.0756354 +-0.824857 -0.498955 0.236824 0.468947 -0.0306672 0.596619 -0.686569 0.458268 +-0.0301541 -0.000230301 -0.764087 -0.40606 -0.812309 0.260076 0.910427 -0.0361387 +-0.281342 0.996378 -0.174217 0.396589 0.828647 0.62871 -0.0241627 -0.901862 +-0.989947 0.279349 0.6173 0.506768 -0.598962 -0.467246 -0.479589 0.795945 +-0.568429 -0.708814 -0.305729 0.556525 0.2365 -0.12609 -0.950731 -0.849946 +-0.393335 0.110022 0.408178 -0.189781 0.153311 -0.0509175 0.13667 -0.635806 +0.515497 0.226554 -0.457446 0.963648 0.138001 0.198869 0.55655 0.275074 +0.833916 -0.907625 -0.431839 0.580657 0.844465 -0.59836 0.709453 -0.607478 +0.708596 0.323194 -0.363549 -0.152327 0.801959 0.194822 -0.796287 0.643948 +-0.438857 0.921563 0.289893 -0.00920486 0.440235 -0.935067 -0.150133 -0.0879078 +-0.439521 0.360491 0.483873 0.622308 -0.719552 0.247959 -0.174353 -0.753308 +0.823863 -0.581082 -0.724696 0.966331 0.928865 -0.207342 0.370228 0.369655 +0.0637058 -0.95021 -0.293585 -0.568655 0.812117 0.118339 -0.589146 -0.151276 +-0.479777 0.787033 -0.66087 -0.891266 0.521678 0.83649 -0.42658 -0.756782 +-0.614751 -0.23329 -0.463254 -0.982015 0.742681 -0.524214 -0.286417 -0.197657 +0.836815 0.623114 0.195545 -0.169787 0.890554 0.488276 -0.0398315 0.809048 +-0.982284 -0.872347 0.0571053 0.977138 -0.785018 -0.25923 0.196843 0.428123 +-0.398294 -0.581749 0.0954772 -0.469722 0.147785 -0.0476722 0.580913 -0.871628 +-0.616744 -0.838678 -0.359308 -0.0478123 0.823345 0.641562 0.53659 0.969992 +0.544305 -0.142675 0.378207 0.890251 -0.136662 -0.867295 0.809838 -0.159524 +0.690661 -0.208898 0.0603975 0.935953 0.520713 0.0285134 0.84775 -0.830052 +0.485369 -0.660915 0.102891 0.635658 -0.549607 -0.199088 0.116683 -0.644873 +-0.204462 0.41009 0.239874 -0.135912 -0.52821 0.741063 0.418835 0.886441 +-0.659746 -0.990784 0.526589 0.476916 -0.632939 -0.789347 -0.261617 -0.43198 +-0.812314 0.552784 -0.502973 -0.520641 -0.642169 -0.85452 0.566397 0.0104621 +-0.534805 -0.663166 -0.00239012 0.724684 0.492722 -0.509403 -0.863882 0.365751 +0.784838 -0.769144 0.271731 -0.304991 -0.18287 -0.937801 -0.202343 -0.0235132 +0.410138 -0.00510835 -0.894632 0.74949 -0.135095 -0.099285 -0.889814 -0.852642 +-0.244566 -0.982174 -0.22027 -0.445252 -0.532723 -0.23535 -0.832387 -0.516421 +-0.945681 0.187503 0.27538 -0.782043 0.334733 -0.859677 -0.192137 0.680349 +0.749007 -0.861941 0.33958 -0.772802 -0.184557 0.375975 0.317242 0.803211 +0.180729 -0.827121 -0.932489 0.212849 -0.0774885 -0.561804 0.832561 0.924228 +-0.51261 0.934506 -0.0985754 0.615137 0.0265231 0.966255 -0.905823 -0.222526 +-0.212689 -0.908656 -0.511251 0.384387 0.222447 0.44556 0.431341 0.886168 +0.81375 -0.20064 0.24307 -0.99242 -0.585578 -0.974598 0.366026 -0.463103 +-0.898744 0.0204658 0.348743 -0.461792 0.402921 0.992579 -0.972558 -0.136229 +0.58008 0.0991207 -0.689031 -0.839114 -0.968505 -0.298291 -0.487098 -0.618124 +-0.621908 -0.982348 -0.0978592 0.0026808 -0.754653 0.835372 -0.626442 0.0567296 +0.542684 -0.845997 -0.930758 -0.062581 0.709223 -0.630462 0.475657 0.4694 +0.233525 -0.639955 0.461843 -0.498573 0.135962 0.648516 -0.860887 0.593932 +0.881612 -0.484931 0.709647 0.146055 0.157837 -0.461421 0.800285 -0.904641 +0.524459 0.684703 -0.832042 -0.339311 0.0214582 -0.36108 -0.876202 -0.297081 +-0.963736 -0.225418 0.0667202 -0.141799 -0.0067285 0.416775 0.608885 -0.445757 +0.0835383 -0.783474 -0.941268 0.717977 -0.40279 -0.400818 -0.201124 -0.91622 +0.343427 0.765246 0.712287 -0.286136 0.493127 -0.659244 -0.0693339 0.830604 +-0.60618 -0.367933 -0.307954 -0.722405 -0.486379 -0.749567 0.392966 0.470268 +-0.329486 -0.892206 -0.967454 -0.0256706 -0.322041 -0.231606 -0.273662 0.467779 +0.00864375 -0.81182 -0.548585 -0.0300353 -0.0434251 0.796928 0.669132 -0.863061 +-0.0340044 0.945618 0.208824 -0.637676 -0.00122878 0.181622 -0.217756 0.919925 +-0.438567 0.894487 -0.123102 -0.0219841 0.615826 -0.209102 -0.407801 -0.565796 +0.715973 -0.0374182 -0.152052 -0.879616 -0.111176 0.487921 0.623314 -0.442354 +-0.939463 0.998591 -0.840935 -0.717716 -0.928034 0.760342 -0.460224 -0.711057 +-0.339058 0.446081 -0.529201 0.169856 -0.713303 -0.28214 0.23864 -0.64956 +-0.368286 0.342269 -0.0480571 -0.767477 -0.237158 -0.374401 -0.417466 0.103495 +0.70439 0.947576 0.88951 -0.484411 0.82739 -0.0317333 -0.374721 0.728774 +-0.164127 0.998379 3.58187e-05 -0.478777 -0.886255 -0.718046 -0.530109 -0.372583 +0.447814 0.751623 -0.844977 -0.0501045 0.328442 -0.554447 0.32604 -0.512797 +0.125453 0.948951 -0.251164 -0.0734488 -0.724174 0.382493 0.565093 -0.380303 +-0.959134 0.129028 0.905471 -0.430826 0.33407 -0.865566 -0.102439 -0.847552 +-0.671577 0.547515 -0.405553 -0.533779 0.792841 0.940761 -0.240287 -0.790082 +0.261696 -0.468283 0.636685 0.172508 -0.712444 -0.511514 0.0697376 0.323731 +0.967268 0.0701916 0.70247 0.961297 0.532989 0.209927 -0.863799 -0.988658 +-0.738586 -0.957943 -0.227758 0.439528 0.638227 -0.361157 -0.550217 -0.0740309 +-0.167978 -0.671522 -0.590948 0.788766 0.900721 -0.436472 0.701945 -0.283663 +-0.933055 0.308208 -0.48667 -0.965686 0.424975 0.916878 0.870325 0.307718 +-0.440769 -0.136783 -0.717385 0.978844 -0.978524 0.894935 -0.955621 0.0347861 +-0.402571 0.932431 -0.69001 -0.854947 -0.704255 -0.843845 0.439145 0.332507 +0.884315 0.358231 -0.0204979 -0.905149 0.311102 -0.134503 -0.504413 -0.351413 +0.93749 -0.419078 -0.606983 -0.861235 -0.528741 -0.316415 0.0760611 0.556028 +-0.481772 0.0528745 0.912388 -0.648943 -0.528738 -0.0836405 0.45518 0.134116 +0.65148 -0.0730722 -0.102746 -0.248844 -0.275548 0.245518 -0.402454 -0.434698 +-0.736554 0.94961 0.725272 0.0492115 0.755981 0.876823 -0.969465 0.806371 +-0.691828 0.047525 0.496619 0.528133 -0.411473 -0.441943 0.133401 -0.361174 +-0.533397 0.840733 0.126147 0.612444 0.284063 0.598789 0.878335 -0.0490234 +0.604006 0.818177 -0.723031 -0.113028 0.672895 0.157053 -0.367267 -0.514891 +-0.226723 0.715447 0.0342616 0.0163529 -0.7168 -0.454648 0.615421 -0.639414 +0.788543 -0.114448 -0.618044 0.931844 0.397526 -0.323861 0.766333 -0.685741 +0.672859 -0.165548 -0.0151693 -0.0820926 0.217384 -0.899237 0.90086 -0.968222 +0.309018 0.896308 -0.405664 -0.497062 0.916715 0.0237754 -0.106368 -0.861573 +-0.269966 0.102866 0.762425 0.2448 -0.432779 -0.96265 -0.627808 0.205983 +0.310784 -0.173406 0.518453 0.344953 0.0330906 0.931382 -0.240309 -0.474299 +0.982172 -0.60229 0.707335 0.920388 0.528837 -0.567362 -0.379323 0.271828 +-0.854471 0.885482 0.569127 -0.279502 -0.984145 -0.986498 0.0491782 -0.856641 +0.251908 0.345603 -0.117219 0.047237 -0.872522 0.137715 -0.76625 0.14018 +-0.397734 -0.298491 -0.12443 -0.516682 -0.565237 -0.787377 0.0348365 -0.110158 +-0.904191 -0.440638 0.267592 0.838202 0.644222 0.0461281 -0.323435 -0.181573 +-0.193219 0.123638 -0.726347 0.257066 0.622249 -0.394583 0.927198 -0.616079 +-0.881052 -0.725467 0.999209 0.0472901 -0.585616 -0.366093 -0.243887 -0.512779 +-0.929443 0.916092 -0.327464 0.494227 -0.55818 -0.772939 -0.585813 -0.0464067 +-0.980349 0.595058 0.0355612 0.423679 -0.105675 0.274351 0.658272 0.478176 +0.00210862 0.767072 -0.85446 -0.796965 0.244109 -0.269706 -0.911463 -0.355583 +0.812399 0.711786 -0.69391 0.516279 -0.715963 -0.648673 -0.226655 -0.420628 +-0.489381 0.661046 0.958852 -0.148027 -0.161704 0.324932 -0.967644 -0.249043 +-0.754152 0.627913 -0.411467 -0.441104 -0.713304 -0.654139 -0.469572 -0.393992 +-0.873313 0.0239746 0.782447 -0.743247 0.600311 0.372719 0.701501 0.610132 +0.478536 0.468219 -0.571597 0.714447 -0.16895 -0.168505 -0.870466 0.498229 +-0.559904 -0.857032 0.333161 -0.28656 -0.301776 0.486585 -0.765691 -0.913841 +0.730426 -0.225736 -0.747767 0.582975 0.499248 0.517178 0.371442 0.597353 +0.606516 0.048935 -0.556591 -0.148378 -0.752258 0.00501431 -0.0688888 -0.417933 +0.581317 -0.588115 -0.547754 -0.36809 0.514811 -0.653504 0.540169 0.0116083 +0.539994 0.0387363 -0.373906 -0.195572 0.681116 -0.537351 -0.480147 0.341481 +-0.726982 0.416172 -0.442743 0.873262 0.77925 0.866927 0.0864211 0.59553 +0.88649 0.266731 0.937636 0.868009 0.20473 0.524346 -0.438782 -0.554437 +0.426115 -0.164787 0.64804 -0.0793962 0.00412427 -0.300663 0.0455931 0.520787 +0.51715 0.98294 0.100624 -0.972808 0.0351265 -0.595614 -0.0868222 -0.00845374 +-0.108488 0.787103 -0.379717 0.0959567 -0.880038 -0.600296 0.388735 0.084587 +-0.864644 -0.667847 -0.240725 -0.253896 -0.88752 -0.772616 -0.570779 0.395807 +-0.21042 0.947049 0.475964 0.975556 -0.00100742 -0.438765 -0.293878 0.683117 +0.0379649 0.0255203 0.41284 -0.726212 0.535715 0.0914284 -0.941792 -0.134525 +0.493006 0.550706 0.179805 -0.281732 0.825291 -0.732768 -0.776553 -0.80783 +0.519644 0.505448 -0.141743 -0.00348875 0.0889648 0.714917 -0.00428693 0.164767 +0.103408 -0.717194 -0.341366 -0.515549 -0.119209 0.70495 -0.932573 -0.786965 +0.0231636 0.945253 0.104304 -0.519617 0.569347 -0.325106 -0.0486517 -0.212616 +-0.0491609 -0.15152 0.217699 0.336631 -0.517949 0.851969 0.656025 0.203582 +0.466604 0.728384 0.376079 -0.240832 -0.983118 0.914609 0.950797 0.301587 +0.798194 -0.582151 -0.841621 -0.801487 0.200817 0.0549527 -0.517497 -0.803304 +0.514074 0.135644 -0.177831 -0.862979 -0.449721 0.240401 -0.915253 0.131752 +-0.00652486 0.901605 -0.878675 -0.69349 0.90813 0.591722 -0.493227 -0.895225 +0.173175 -0.0949145 0.662523 0.993257 0.500343 -0.262429 -0.933478 -0.836239 +-0.363235 0.647656 -0.0540754 0.517371 -0.897888 -0.127308 0.76276 0.95806 +0.73717 -0.579742 -0.515394 -0.0900528 -0.422909 -0.867229 0.118616 -0.619266 +-0.789218 0.395874 -0.263162 -0.218993 -0.989462 -0.412965 -0.34815 -0.252564 +-0.167916 -0.867763 0.562551 -0.132474 -0.828412 -0.239798 -0.527397 0.525177 +-0.677053 0.60444 0.166432 -0.622612 -0.99513 -0.904785 0.469131 -0.122162 +-0.86848 0.743779 0.136043 -0.0355452 -0.858098 0.337151 -0.20756 0.754075 +0.898261 0.333916 0.578844 0.0165041 -0.482019 0.268773 -0.232733 -0.511812 +-0.310141 0.984661 -0.0355772 -0.0615404 0.261641 0.772658 -0.415472 -0.739663 +-0.931102 -0.96816 -0.456587 -0.761168 -0.181398 0.427283 -0.569672 0.325545 +0.548456 0.437026 -0.0967424 0.874929 -0.945728 0.219869 -0.28097 -0.0350449 +-0.924421 0.0953952 -0.945492 -0.741848 -0.88119 -0.788247 0.154273 0.823235 +-0.349462 -0.300058 0.516437 0.790399 0.0226538 -0.397157 -0.652717 -0.210641 +-0.0566707 -0.958777 0.944967 0.571243 0.0727161 0.954246 -0.989825 0.312317 +0.0674175 -0.199475 0.602463 0.140729 -0.523178 0.944059 -0.133752 -0.55164 +-0.858503 0.430255 -0.320692 0.274377 0.981339 -0.487528 0.65521 0.0438374 +0.633114 -0.331395 -0.1199 -0.430513 0.601308 -0.342459 -0.0434577 -0.23422 +0.0754465 0.685361 -0.405587 0.831622 0.147556 0.803707 0.751314 0.867704 +-0.798783 0.575314 -0.0780584 0.374875 -0.78028 -0.55593 -0.652663 0.0566913 +0.545555 0.333988 0.293725 -0.458525 0.725412 0.210956 0.0573337 0.659658 +-0.919578 -0.276029 -0.394873 0.0204002 -0.492932 0.356923 -0.966322 -0.217896 +0.254969 -0.724236 0.629989 0.909324 -0.492372 -0.91706 -0.988393 -0.784333 +-0.64209 -0.846022 0.747568 -0.742917 -0.467237 0.808793 -0.607423 0.783012 +-0.062119 -0.0346325 -0.981145 -0.242132 0.468866 0.177845 0.279318 -0.407476 +-0.82309 -0.475214 0.816436 0.80076 -0.828438 -0.0744201 -0.755459 -0.592288 +0.188374 -0.824065 -0.364972 0.265613 -0.0671335 0.862794 -0.559167 -0.185972 +0.956574 0.443286 0.938111 0.99978 -0.61782 0.606602 -0.710399 -0.399743 +0.373872 -0.536204 0.879088 0.830825 -0.37226 -0.62618 -0.737087 0.528716 +-0.247862 -0.08905 -0.885543 0.631119 0.999098 0.950532 -0.865904 0.301747 +-0.543677 -0.777999 -0.103366 -0.767815 0.206858 -0.327054 0.269201 0.834288 +0.584777 -0.0853758 -0.391491 -0.874293 -0.160799 -0.864734 0.420523 0.137826 +-0.104722 -0.664662 -0.188868 -0.367055 -0.602064 -0.943215 0.368623 0.130933 +0.755609 0.954666 0.538894 0.323516 0.691233 -0.427272 -0.583608 -0.143928 +-0.872202 -0.0515559 0.462139 0.544525 -0.582221 -0.119367 -0.723396 0.663627 +-0.0425203 0.780898 -0.431425 0.25698 0.421757 0.54623 -0.185291 0.06734 +-0.526959 -0.255149 -0.852612 0.00240849 -0.596438 0.487974 0.996254 -0.277034 +-0.250355 -0.542272 -0.0105174 0.965026 0.842351 0.742194 0.360429 0.392727 +-0.0712163 0.215971 -0.655292 -0.417113 -0.604008 0.505837 0.188779 0.778084 +0.72285 0.0481556 0.338723 -0.620417 -0.0949132 0.170445 -0.886654 -0.667965 +0.0722872 -0.884601 -0.398315 -0.570663 -0.717769 0.293513 0.86843 0.131688 +0.635362 -0.217584 -0.801661 -0.159571 -0.64837 0.170806 -0.0798785 0.00159534 +-0.522543 0.623366 -0.975635 0.486717 -0.697985 -0.480893 0.242301 0.907825 +-0.682965 -0.862529 -0.529999 -0.469402 -0.0689268 0.638641 -0.261971 0.162454 +0.924986 -0.838339 0.41012 -0.328706 0.0662599 0.841739 0.787578 0.621908 +0.855472 0.881251 0.036657 -0.778922 0.213021 0.511113 -0.634199 -0.989152 +0.702894 -0.237175 0.525947 -0.593405 -0.934287 0.942147 0.223931 0.175514 +0.360713 0.796448 0.00851988 0.649489 0.439841 -0.908649 -0.743818 0.980769 +-0.887181 -0.988196 0.326568 0.529733 -0.17162 -0.474393 0.779824 0.836944 +0.469429 -0.546156 0.0698695 0.699024 0.601318 0.350035 -0.394446 -0.905387 +0.960154 -0.711228 -0.778727 0.480277 -0.643098 0.129766 0.839766 -0.683655 +0.152151 0.482563 0.257712 0.12372 0.852753 -0.958938 0.57036 0.157611 +-0.0485753 0.556195 -0.229038 0.588178 -0.70367 -0.597682 0.822591 -0.521196 +0.436099 -0.126062 -0.4454 0.134319 0.0551376 0.796622 0.202384 0.890468 +0.965482 0.626513 -0.562947 -0.269078 0.39698 -0.742422 0.130553 0.929076 +0.683358 -0.97097 -0.730346 -0.68618 -0.0400286 0.235318 -0.867485 -0.346546 +0.333295 -0.445525 -0.963462 -0.533717 -0.449516 -0.601454 -0.245269 -0.299874 +-0.447599 0.153277 0.601545 -0.917766 0.631199 0.671554 -0.348887 0.971254 +-0.987207 -0.0343355 -0.264064 -0.632789 -0.645582 0.850846 -0.43561 -0.139635 +0.507676 0.745846 -0.57733 -0.116314 -0.804799 -0.871462 0.231639 -0.457229 +-0.352731 -0.483039 -0.608581 -0.240055 -0.194946 0.390388 0.0721848 0.37785 +-0.108104 -0.372327 0.56838 -0.513627 0.789168 0.587824 -0.939963 0.0481087 +-0.0373395 -0.477224 0.386216 0.981896 -0.442703 0.978169 -0.535139 0.0158854 +-0.768252 -0.79301 0.720239 -0.911349 0.897648 -0.690076 0.215503 0.499193 +0.501812 0.255198 0.1391 -0.158408 -0.153084 0.220766 0.332727 0.583619 +-0.745589 -0.953123 0.740416 -0.965433 -0.946512 -0.984059 -0.221339 0.166907 +-0.983864 0.676227 0.55923 0.0408475 -0.923848 0.768858 0.656617 -0.820871 +0.205957 -0.321971 0.997178 0.863801 -0.95386 -0.212687 -0.552148 -0.994185 +-0.751285 0.891413 -0.251897 0.219731 -0.846847 0.491592 0.437694 0.305215 +-0.49895 -0.943796 0.107967 0.858461 0.739407 0.935811 -0.872678 0.667908 +-0.662264 0.617156 0.219431 0.923692 0.968059 0.905166 0.188744 -0.21665 +0.265055 -0.160066 0.275978 -0.180617 0.838283 -0.840746 0.622687 -0.586854 +-0.563731 -0.00539522 -0.436826 -0.268258 -0.167928 -0.151694 0.836768 0.0803586 +0.678223 0.192053 0.294282 -0.792568 0.520835 -0.374463 0.73826 -0.804014 +-0.422662 0.920872 -0.74267 -0.913076 -0.482928 -0.427512 0.0909748 0.476928 +-0.395764 0.573938 -0.339744 0.0564879 0.121589 0.327182 0.76153 0.029828 +0.357279 -0.0736123 -0.216815 0.993638 0.554024 0.945262 0.9521 0.992713 +0.41563 0.835111 0.333971 0.243163 0.854872 -0.244089 0.821639 -0.601421 +-0.547932 -0.802817 0.165144 -0.918539 0.0972188 -0.296996 -0.214255 -0.767947 +0.939733 -0.107441 -0.176512 0.927349 -0.739474 0.422475 -0.970313 0.188903 +-0.963026 0.594481 -0.228628 -0.341258 -0.933545 -0.716736 -0.943601 -0.480241 +-0.976579 -0.734036 0.139383 -0.525071 0.275555 0.733044 -0.164632 0.877818 +0.469534 -0.157197 -0.340027 -0.229847 -0.907174 -0.812643 -0.377661 -0.668763 +0.160111 -0.981113 -0.454339 -0.839043 -0.272351 0.81987 0.199865 -0.449337 +0.748273 0.510208 -0.994967 0.925383 -0.24439 0.999317 -0.226718 0.471643 +-0.867453 -0.532115 0.0845664 -0.819005 0.0369521 -0.0195426 0.542037 0.15077 +-0.689657 -0.948521 0.617848 -0.52699 -0.572121 0.167283 -0.65349 -0.00733644 +-0.705351 0.432267 -0.416052 -0.255617 0.2413 -0.96528 0.741295 0.595977 +-0.746777 -0.218203 -0.882464 0.451746 0.714665 -0.281248 -0.800118 -0.54971 +-0.740157 -0.354166 -0.155435 -0.32114 0.324222 0.163949 0.918079 0.841913 +0.0871473 0.811038 0.610476 0.542277 -0.380087 -0.624198 0.176843 -0.322804 +-0.966303 -0.610082 0.351537 0.537812 -0.56573 0.896842 0.0409576 0.938087 +-0.89567 0.550195 -0.421399 -0.773171 -0.095841 0.89622 0.224035 0.425158 +-0.23045 0.0829561 -0.960155 -0.878914 -0.693009 0.843461 -0.698353 -0.125659 +0.361473 -0.514447 -0.171557 0.475797 -0.0174048 -0.528989 -0.971387 0.288903 +0.863352 -0.613576 0.402034 0.926998 -0.562214 0.791953 0.29749 0.131722 +-0.358312 -0.319234 -0.541508 -0.476338 -0.724377 -0.0146154 0.0106356 -0.161128 +0.348456 -0.460724 0.553631 0.491866 0.583169 0.914039 0.762895 0.812704 +0.646607 -0.547933 0.775984 0.306783 0.5141 -0.744085 -0.90439 -0.121258 +-0.0858139 -0.0963209 0.159597 -0.90429 0.707903 -0.75263 0.405992 0.362285 +0.0398405 0.941671 -0.886079 0.0271912 0.213453 -0.836911 0.485894 -0.555229 +-0.292586 0.667731 -0.555299 0.814736 0.342754 0.570431 0.89559 0.194648 +0.175206 -0.125579 0.156772 -0.674121 0.149871 -0.929366 -0.754064 0.0298566 +0.185215 -0.214766 0.126068 -0.917025 0.880563 0.683523 -0.805319 -0.130271 +0.223479 0.302833 -0.423818 -0.283243 -0.147496 0.674922 -0.275212 0.287667 +-0.844565 -0.649853 0.0212764 -0.119313 -0.871784 -0.202159 0.588148 0.708281 +-0.620201 -0.448051 -0.497644 0.59911 0.367225 0.178448 -0.857665 -0.885693 +0.136695 -0.223891 0.875414 0.925696 0.717649 0.0990003 0.339096 0.151777 +-0.700985 0.328839 0.0452361 0.510211 0.231076 -0.822707 0.578956 0.618465 +-0.66974 -0.504158 0.997141 -0.983956 -0.601804 0.83153 -0.251907 0.131129 +-0.23875 -0.276582 -0.763665 -0.286273 -0.578402 -0.605575 0.487201 -0.264368 +-0.279441 -0.75415 0.653356 0.313241 -0.162724 0.550417 -0.422391 -0.67508 +0.556955 0.692698 -0.559814 -0.740492 0.55263 -0.948635 0.944135 0.452505 +0.887133 -0.381995 0.565063 -0.918914 0.0693192 -0.354579 -0.201351 -0.528456 +0.488967 -0.813855 0.700582 -0.591998 0.00517579 -0.259065 0.730442 -0.162142 +-0.188417 0.54958 -0.466756 0.958246 -0.770873 -0.351427 0.256662 -0.887696 +0.940295 -0.359559 -0.383567 -0.418849 -0.0287466 -0.2082 0.912299 0.906447 +0.355532 0.219688 -0.592271 0.408647 0.963538 0.442974 0.255207 -0.54769 +0.999579 -0.647976 -0.430347 0.313431 0.956103 0.0244352 -0.21198 -0.781166 +-0.609333 0.695023 -0.00585951 -0.429169 -0.468694 0.64518 0.565546 0.786551 +0.539956 -0.76661 0.479248 -0.395474 0.989707 -0.869991 0.35182 -0.200015 +-0.610083 0.456946 -0.749989 -0.540906 -0.25171 -0.55211 0.122659 0.182224 +-0.289133 0.118245 -0.706109 0.000286182 -0.507599 0.659099 -0.352538 -0.548111 +-0.575608 0.431426 -0.435646 -0.0638061 0.573575 -0.772363 -0.543486 0.171232 +0.361416 0.79796 -0.0645699 0.121489 -0.174803 0.689077 -0.950937 -0.772784 +0.355538 0.997686 -0.324652 0.408147 0.100385 -0.83699 0.362303 0.812052 +0.57894 -0.42062 0.105521 -0.0371584 0.294148 -0.960073 -0.987327 -0.716768 +0.675003 -0.950628 0.962732 0.145438 0.0151505 0.670395 -0.702705 -0.955056 +0.368931 0.25731 0.848675 0.393233 0.365112 0.704958 -0.964903 -0.337374 +-0.0870159 -0.895422 0.530613 0.3966 0.420916 0.913206 0.92198 -0.08298 +0.525101 -0.81229 0.565656 -0.533193 -0.202546 0.475332 -0.218514 -0.88693 +-0.924348 -0.269925 0.180285 0.344104 -0.300888 -0.519645 -0.504408 0.0156576 +-0.275531 0.39835 -0.512057 -0.0724003 0.314598 -0.299159 0.524368 -0.874405 +-0.862982 -0.511945 -0.349759 0.142268 -0.123326 -0.418009 0.302254 -0.0370469 +-0.472337 -0.34847 -0.0240024 -0.320894 0.652825 -0.565138 0.952537 -0.976899 +0.162668 0.97598 0.328564 -0.641333 -0.157184 0.715958 0.139089 0.171088 +-0.715707 -0.792925 0.851959 0.0239201 0.229325 0.888776 0.242874 -0.0956594 +0.0730154 -0.22137 -0.930213 0.691392 -0.0133478 -0.183844 0.828858 0.719249 +0.710041 -0.0774391 -0.214347 -0.0990236 0.389698 0.976301 -0.893467 0.198271 +-0.755695 0.741752 -0.31524 0.812909 -0.769951 -0.288885 0.267208 -0.218886 +-0.886653 -0.633374 0.808661 0.745247 0.124286 -0.5126 -0.995492 -0.5198 +-0.692688 -0.147346 0.187424 -0.925055 -0.439214 -0.111269 -0.975173 -0.658201 +-0.831075 0.673083 -0.873982 0.888561 -0.909797 -0.477867 0.93234 -0.282008 +-0.290956 0.856362 -0.537572 0.862711 0.0502476 0.436749 0.634669 -0.055289 +-0.948314 -0.463479 -0.271359 0.83194 0.876005 -0.380152 0.564686 0.842261 +0.651726 -0.349592 -0.672053 0.811869 0.169962 -0.133927 -0.172151 0.0341328 +0.759291 0.358957 -0.58414 -0.530041 0.60161 -0.528868 -0.0799708 -0.307838 +0.671058 -0.459334 -0.689521 0.266444 -0.388679 -0.924294 -0.772005 -0.165673 +-0.642888 -0.736954 -0.424283 -0.104637 0.246528 0.137349 0.0379861 0.832927 +-0.170774 0.0669082 -0.6996 -0.579342 0.34972 -0.348279 -0.35229 -0.270538 +-0.945031 -0.524023 -0.552039 -0.114057 0.234116 0.501137 0.977221 -0.395418 +-0.409068 0.69399 0.374419 -0.0462875 -0.0465554 0.766255 0.774782 0.675965 +0.779158 -0.166837 0.821032 -0.714979 0.686341 0.539111 0.566031 0.277188 +0.538449 -0.848217 0.206875 0.862397 -0.38221 0.405983 0.282527 0.737116 +0.898407 -0.176659 0.0464721 -0.174439 -0.270702 0.100901 0.520358 -0.561523 +-0.979069 0.967672 0.792619 -0.610577 -0.974206 -0.751801 0.74998 -0.749505 +0.263804 0.723652 0.739677 -0.842901 -0.860151 -0.705391 -0.62765 -0.382012 +-0.130688 -0.30586 0.0984786 -0.262746 0.489062 -0.202678 -0.427006 0.896134 +0.516793 -0.0821588 -0.223608 -0.479332 -0.338764 -0.166683 0.511858 -0.188652 +-0.308261 0.0582935 -0.907996 0.145248 0.173322 0.894237 0.930443 0.37919 +-0.055568 -0.843438 0.895721 -0.894053 -0.602729 -0.347945 0.548196 0.767499 +-0.360557 -0.832566 0.938689 -0.968412 -0.498284 -0.0476192 -0.630211 0.169322 +-0.340761 0.225727 0.626826 0.770033 -0.589029 -0.869995 0.635105 0.140516 +-0.275869 0.150278 0.226437 -0.35612 0.307429 -0.514314 -0.102084 0.787112 +-0.56936 0.715269 0.483321 -0.677539 0.718327 -0.996698 0.288105 -0.329191 +0.0826611 -0.905288 0.948848 0.561249 0.103266 0.4488 -0.35026 -0.197099 +-0.880391 0.224373 0.950568 -0.3324 0.396463 0.578104 -0.967929 0.271137 +0.993101 -0.461551 -0.621999 0.619373 0.783432 0.365015 -0.34766 -0.600584 +0.00402216 0.290309 -0.904297 0.656952 0.191966 0.370522 0.332878 -0.24234 +0.214094 0.438921 -0.78707 0.688227 0.90262 0.885032 -0.451939 -0.305912 +-0.777585 -0.708842 -0.858883 -0.251773 0.374764 0.595089 0.312957 0.775746 +-0.740073 -0.108861 0.455241 0.86918 0.569907 -0.962557 -0.25648 0.804496 +-0.912671 0.499386 -0.95459 0.381183 -0.848648 0.988888 0.707242 0.510946 +-0.0352051 -0.0379785 0.4072 -0.0128833 0.807337 0.425928 0.570978 -0.910252 +0.626974 0.482988 -0.410612 0.175324 0.130045 -0.64675 0.20158 0.252041 +0.093055 -0.381027 0.343075 0.32612 -0.0966218 -0.24313 -0.0175112 -0.152642 +0.848891 0.0384485 -0.0553651 0.589269 -0.78618 -0.126579 -0.719034 0.482478 +-0.729124 0.43077 -0.00256574 0.33618 0.517282 0.329004 -0.295313 0.785522 +0.858593 0.167835 0.483022 0.119475 -0.515303 0.565839 -0.0836063 -0.654593 +-0.730218 0.591172 -0.898234 0.986936 0.836221 -0.975197 -0.810416 -0.76165 +0.695011 -0.868217 0.470301 -0.99774 0.692654 -0.0821989 -0.0844141 -0.423707 +0.400773 -0.0689255 0.0364469 0.876054 0.0382845 0.0188337 -0.350705 -0.151997 +-0.720572 0.586418 -0.199424 0.926402 0.615271 0.111343 0.427535 -0.369212 +-0.53713 -0.27109 -0.856338 0.554745 0.123548 0.522981 0.628222 -0.299325 +0.953218 -0.683508 0.684732 0.871014 -0.164698 -0.639858 -0.329335 0.517082 +0.0442618 -0.516209 0.15372 0.669799 0.506915 -0.571725 0.554727 -0.544378 +0.436668 0.928487 0.347232 -0.43956 -0.685853 -0.355098 0.574867 0.577127 +0.403338 0.200018 0.121288 0.0687721 0.395435 0.20708 0.929302 0.133507 +-0.0135593 -0.0567897 0.716383 -0.829264 -0.447934 0.797416 0.113515 0.57257 +-0.469182 -0.69959 -0.886091 -0.48694 -0.328326 0.63613 0.72095 -0.105447 +-0.347547 0.834653 0.326223 -0.232592 0.442301 -0.584429 -0.161556 0.221195 +-0.817152 -0.648083 -0.6338 -0.617803 0.877637 -0.309426 0.986573 -0.761129 +0.0437569 -0.917417 -0.901463 0.187357 0.262695 0.0747365 -0.75528 0.998739 +-0.707196 -0.956231 -0.0671567 0.533672 -0.756212 -0.024034 0.130722 -0.219808 +-0.135062 0.522076 -0.63458 -0.357056 0.770788 -0.60991 -0.279767 -0.308377 +0.559967 -0.91155 -0.649344 -0.202197 0.0450569 0.0936384 0.960643 0.862273 +0.321983 -0.58597 0.817368 -0.983835 -0.369924 -0.712908 -0.806488 -0.481701 +0.185647 -0.00648949 0.966832 0.442513 0.850818 0.018954 0.710457 -0.277024 +-0.972975 0.0417475 -0.652856 -0.418745 0.791432 -0.260435 0.755233 0.586012 +0.982456 -0.0963127 0.297784 0.437391 0.0971326 -0.654282 -0.813028 -0.845197 +-0.923037 -0.141157 -0.419079 -0.135268 0.340604 0.906165 0.440158 0.465527 +0.145523 0.263577 0.71804 -0.89 -0.45117 0.899872 0.53504 -0.94317 +0.524796 0.768644 -0.802586 -0.0936898 -0.749671 -0.0920919 0.749551 -0.626382 +-0.80644 -0.891784 0.31891 -0.120768 0.16823 -0.516945 -0.345036 -0.568261 +0.793169 -0.978639 0.27872 -0.959108 -0.338635 -0.117787 0.152006 -0.855402 +-0.870878 -0.474037 -0.901367 -0.212822 0.443774 0.341581 -0.249137 0.542928 +0.0741436 0.130848 0.354614 -0.265943 -0.668795 0.483405 0.685919 -0.383351 +0.878892 -0.131983 0.560014 -0.424243 0.116246 0.331165 0.533075 0.0968753 +-0.403953 0.380238 -0.242981 0.222949 0.712495 -0.216949 0.932865 -0.0829776 +-0.69437 0.174616 0.783624 -0.576855 0.0601987 -0.0695508 -0.545245 -0.441067 +0.102256 0.980114 0.118383 0.556969 0.344759 -0.240915 0.154121 -0.140074 +-0.799409 -0.444041 0.964764 -0.844537 -0.658997 0.636795 -0.362719 -0.0759832 +-0.0020397 -0.390442 -0.807246 -0.426076 -0.786194 0.712275 -0.016741 -0.435245 +-0.022729 0.975231 -0.591688 0.814654 -0.565707 -0.335615 -0.803594 -0.897355 +0.659914 -0.433625 -0.0638004 -0.799626 0.844321 0.174313 0.484576 -0.518126 +0.0825412 0.995173 -0.030989 -0.577059 0.113051 0.53154 -0.837545 -0.869107 +-0.985299 0.251115 0.392605 -0.0264367 0.411883 0.861677 0.440783 -0.700776 +0.657025 0.228187 0.483658 0.0184127 0.510077 0.640849 -0.429233 0.645621 +-0.212764 0.979465 -0.0700215 0.852905 0.745117 -0.740672 0.592321 0.476026 +-0.0570856 -0.206335 -0.567143 0.251576 0.973209 -0.0473433 -0.550067 0.153031 +0.361088 0.423245 -0.958558 0.243484 0.746056 -0.695582 0.312399 -0.823769 +0.74667 -0.839898 0.870564 -0.55274 0.240814 0.220124 -0.909308 -0.315429 +0.332682 -0.374113 -0.888994 -0.699781 -0.519364 -0.68096 0.0941501 0.500746 +-0.478334 0.642977 0.578055 -0.402882 0.287253 0.26079 -0.545313 -0.790074 +0.279175 0.79182 -0.0225746 0.105242 -0.0304137 -0.668448 0.331735 -0.55909 +-0.0788047 -0.381013 0.292915 0.553269 0.168335 0.213994 -0.51418 -0.391753 +0.265128 0.840426 -0.822027 0.560019 -0.397816 0.177753 -0.0649444 -0.75469 +-0.837923 0.475437 -0.775741 0.111428 0.713371 0.927307 0.824662 0.630516 +-0.554579 -0.34954 0.281128 0.571655 -0.400387 0.541733 -0.439061 0.237519 +-0.737327 0.315332 -0.467477 -0.682537 0.370516 0.319608 0.27339 0.36382 +-0.185508 0.33086 0.676371 -0.701803 -0.254673 -0.900504 -0.50075 0.551068 +0.972067 0.507886 -0.650132 -0.135926 0.306056 -0.256413 0.922394 -0.156155 +0.395757 -0.527971 0.159301 -0.263157 0.587493 -0.478528 -0.621343 -0.289296 +-0.855766 0.494758 -0.146443 0.666901 0.399917 0.204614 -0.929095 0.276574 +0.106647 0.129908 0.801299 -0.469317 0.912648 0.813049 0.709985 0.0299976 +-0.447052 -0.294152 -0.984121 0.826067 -0.758664 0.859195 -0.887033 -0.126497 +-0.525572 0.297714 -0.467697 -0.996458 -0.156444 -0.780756 0.684544 -0.849622 +0.338088 0.0297275 0.176656 -0.107333 0.66221 0.470726 0.425236 0.712842 +0.265663 -0.679335 0.928894 -0.514168 -0.652477 -0.60961 -0.581951 0.475835 +-0.682929 0.850813 -0.828784 0.92308 -0.731889 0.410259 0.900516 -0.224582 +-0.985953 0.171351 -0.259284 -0.358424 -0.427112 0.171932 0.0957721 -0.918852 +0.649038 -0.181069 0.847588 -0.0878832 -0.660489 -0.190686 0.291881 -0.371576 +0.386358 -0.526922 0.0181347 0.132002 0.799416 -0.0414992 0.346399 0.987424 +0.0904239 0.919841 0.472689 -0.299126 -0.30447 0.839527 -0.186602 -0.0457745 +-0.314095 -0.0583921 -0.174376 -0.458928 0.89156 0.318632 0.776904 0.598496 +-0.502987 0.248515 0.776473 0.685687 0.187229 -0.331967 -0.740824 0.192051 +0.453311 0.456026 -0.197498 -0.0530535 -0.811066 0.215611 0.05142 0.827801 +0.668463 -0.816578 -0.630663 -0.947085 -0.560805 -0.55766 0.582363 -0.176172 +-0.571445 -0.931439 -0.00676455 0.994012 0.514398 -0.066941 0.13035 0.614353 +0.499379 -0.203294 0.872702 0.329388 0.347085 -0.684774 0.186549 -0.741651 +-0.496264 0.169345 -0.0523917 0.00680297 0.321116 -0.0408015 0.827076 0.405007 +-0.742955 -0.496809 -0.655286 0.608952 0.941601 -0.400993 0.436962 -0.859172 +-0.343765 0.42654 -0.878849 0.887708 0.136542 0.333953 0.278177 -0.883513 +0.334913 0.549629 0.260482 0.214592 -0.812072 0.806985 -0.672151 0.223634 +0.350486 0.700689 0.264024 -0.0858438 -0.736967 0.910123 -0.0365574 -0.721711 +-0.758495 -0.71386 0.269364 0.654538 -0.127509 0.490754 0.505888 -0.227744 +-0.410972 0.825348 0.556706 0.93449 -0.315437 0.046301 -0.355252 -0.499265 +-0.198761 0.693901 0.0809512 0.598022 0.216152 -0.0557807 0.633541 -0.920389 +-0.105208 0.820162 -0.841928 0.197307 0.775155 0.479185 -0.0129137 -0.920868 +-0.00289153 -0.848301 0.497239 -0.116999 -0.778492 -0.449622 -0.307548 0.707701 +0.643452 0.805278 -0.868296 -0.663651 0.964767 -0.598762 -0.95075 0.814099 +0.702587 0.022535 -0.382656 0.605942 -0.69756 0.38932 -0.194961 -0.371336 +0.725439 -0.73543 0.35924 0.221953 0.502839 0.170354 0.0902493 0.89545 +0.272991 -0.23815 -0.368274 -0.527361 -0.204286 0.144316 -0.55093 0.673088 +-0.221703 -0.277757 0.760379 0.261115 0.122372 -0.785284 -0.302733 0.707354 +-0.83038 0.631834 -0.848415 0.814266 -0.943272 -0.189483 -0.0581163 0.34286 +-0.744309 -0.560878 -0.157826 0.253617 -0.500915 -0.0487691 -0.349202 -0.270705 +-0.360954 -0.664127 0.859286 -0.280102 0.654414 -0.51319 -0.108095 -0.576189 +0.862022 -0.302638 -0.285045 -0.571026 -0.276549 -0.122277 -0.0148892 0.0524154 +-0.781367 -0.0358786 -0.862979 0.796873 0.718916 0.624263 0.492487 -0.412841 +-0.674732 0.44741 0.12108 0.165215 0.308106 0.877464 0.350762 -0.137168 +0.944773 -0.525673 0.539535 0.805693 -0.590677 -0.473832 -0.86767 0.230023 +-0.704677 -0.951173 0.238569 0.247775 -0.738827 -0.339384 -0.993212 -0.114532 +-0.903368 -0.0239983 -0.321369 -0.0601956 -0.808445 0.158124 0.624174 0.421578 +-0.849332 0.27961 -0.472397 -0.994164 -0.765143 -0.987517 -0.349657 -0.401462 +-0.640832 0.244533 -0.27625 0.841018 0.950529 0.621075 0.918131 -0.225662 +0.745814 -0.428672 0.646151 0.0741225 -0.0211338 0.464879 -0.851963 -0.916987 +-0.101954 -0.276708 -0.0872924 -0.49987 0.755351 -0.846396 0.710409 0.334835 +0.24353 -0.213543 -0.857267 0.322163 0.826677 0.459816 -0.569691 0.343797 +-0.498103 -0.0150314 -0.0622409 0.0777802 0.739183 -0.0612893 0.90107 0.211244 +0.783052 -0.32894 -0.61945 0.532135 0.282544 -0.993743 -0.118648 0.971226 +-0.0875874 -0.0864152 0.471729 -0.366368 -0.71376 -0.384434 -0.686004 0.868823 +-0.821418 0.670089 -0.0223627 -0.242403 -0.85078 -0.168284 0.158154 0.652704 +0.519088 -0.176841 -0.778506 0.170754 0.293266 -0.732885 -0.199528 -0.880297 +0.954958 -0.207707 -0.95033 -0.29616 0.381677 -0.835554 0.500021 0.272155 +-0.341774 0.503913 0.328025 0.530894 -0.426435 0.997955 -0.00143635 -0.236397 +0.675025 -0.705682 -0.117268 -0.59063 -0.261205 -0.909041 0.835805 -0.180595 +0.194336 0.217548 -0.0826236 0.322955 0.787922 0.635806 -0.601225 0.849099 +-0.883491 -0.532006 0.819639 0.00105429 0.921199 0.736782 -0.00753231 -0.0718162 +0.637852 -0.892649 0.827382 -0.336917 0.633483 -0.330272 -0.560808 -0.552755 +0.419203 -0.24472 -0.788399 0.827093 0.174324 -0.881508 0.288636 -0.167812 +-0.631573 -0.919389 -0.316457 -0.123103 0.191612 0.679214 -0.650922 -0.0655893 +-0.754231 -0.307079 0.286307 -0.707389 -0.555264 -0.532295 -0.979045 0.174008 +0.0956924 -0.376153 0.215392 0.931178 0.471885 0.350595 0.0816649 0.559682 +0.995234 -0.17001 -0.225094 -0.0199892 -0.476462 -0.620546 0.670361 -0.734298 +0.0618002 0.511107 0.126024 -0.911874 -0.515122 0.199259 -0.153888 -0.14643 +0.55341 0.814418 -0.401288 0.0908439 -0.411111 -0.159649 -0.094307 -0.901488 +0.268385 -0.42747 0.769464 0.743663 0.991108 -0.12387 0.382316 0.100802 +-0.997442 0.38077 -0.821689 0.210547 -0.818763 -0.969185 -0.995689 0.098865 +-0.941008 0.0415596 0.209826 -0.562129 0.737192 0.801041 -0.233382 -0.832159 +-0.756248 -0.713343 -0.845329 0.45093 0.980933 0.182862 -0.542358 -0.286078 +-0.0376019 0.958241 -0.304717 0.746084 0.433264 0.442267 0.404 0.54026 +-0.0714448 -0.714976 -0.96135 -0.222457 0.694713 0.740249 0.196941 -0.677119 +0.0420683 0.252027 -0.162027 -0.651752 0.0830012 0.664514 -0.73259 0.71592 +-0.820265 0.360586 -0.734685 0.140403 -0.956773 -0.189421 0.939188 0.210828 +-0.58817 -0.0206047 0.971823 -0.634373 -0.623086 -0.539548 0.606546 0.944775 +-0.981771 -0.846209 0.0250994 -0.294033 0.913781 0.234707 0.943602 -0.823085 +0.71755 0.25391 -0.265289 -0.186836 -0.0160964 0.733051 0.0945265 0.0544957 +-0.189257 0.291791 0.213208 0.276115 0.526883 -0.497135 -0.23261 0.357334 +-0.834497 -0.516587 -0.701262 0.758542 0.604283 -0.898403 0.483098 -0.725842 +0.286748 0.923059 -0.878815 -0.566687 0.109317 -0.454299 0.993513 -0.613102 +0.0633329 0.335537 -0.488599 0.458213 -0.876552 -0.594897 -0.805268 -0.113543 +-0.806828 0.252615 0.939087 0.9549 -0.468198 0.339006 -0.27214 -0.73677 +0.377358 0.7833 0.00540191 0.500714 -0.32138 0.0955231 0.911839 -0.86314 +-0.52298 -0.419656 0.48054 -0.568488 0.84489 0.700685 -0.935709 -0.649709 +0.779817 0.0622625 -0.70091 -0.299574 0.714823 -0.319211 0.0138431 0.534249 +-0.0930375 -0.928566 -0.501586 0.88442 -0.313336 0.0877296 -0.388998 -0.656063 +0.918037 0.965761 -0.526943 0.72899 -0.187046 0.569136 0.641175 -0.881373 +-0.868506 0.708643 -0.845511 0.0423333 -0.653447 0.104797 -0.971814 -0.0592641 +0.113582 0.0982362 0.296222 0.844357 0.618947 -0.76513 -0.357092 -0.226115 +-0.892713 -0.107977 0.780329 -0.117651 0.70063 0.113163 -0.881551 0.124592 +0.679055 -0.253271 -0.389185 0.273218 -0.168828 0.984187 -0.53537 -0.366435 +0.178635 0.0965333 -0.809133 -0.646821 0.598732 -0.690665 -0.12513 0.00995571 +0.596674 -0.0551118 -0.849999 -0.202192 0.720032 0.71466 0.433842 0.330282 +-0.360911 -0.0179244 0.617987 0.206179 0.439985 0.941844 0.260142 0.958835 +-0.130109 -0.608319 -0.407372 0.258944 -0.546059 -0.149142 -0.414605 -0.930047 +0.246275 -0.307401 0.885364 0.931141 0.850374 -0.507991 0.993946 0.860865 +-0.00735639 -0.376057 -0.141489 -0.0791886 -0.94232 0.262036 -0.332814 0.864286 +-0.623501 -0.108497 -0.915583 -0.197976 -0.0446641 -0.98592 0.0157384 -0.285527 +0.0800298 -0.211889 0.183531 -0.0259725 -0.140507 0.331835 -0.441566 -0.0824537 +0.349123 0.101694 0.648666 0.423303 0.0503596 -0.634703 -0.758321 0.878317 +0.968075 -0.888882 -0.885247 0.239309 -0.430522 -0.557886 0.981217 -0.861691 +-0.25365 -0.251681 0.41785 0.255933 0.790183 -0.082351 -0.145108 -0.714586 +0.325073 0.906998 -0.146159 -0.832511 0.191264 -0.742264 0.342077 -0.0963672 +0.475946 0.68986 0.0607583 -0.617167 -0.866828 -0.35384 0.658142 0.6789 +0.998507 -0.322951 0.907556 -0.574775 0.905785 -0.941915 -0.971645 -0.716665 +-0.669851 0.267652 0.273679 -0.0975457 0.235855 0.946079 0.683143 -0.732098 +0.48798 0.528768 0.166133 -0.59308 -0.569879 -0.573397 0.260883 0.32438 +-0.511057 -0.640244 -0.492433 -0.573725 -0.0806553 0.124341 -0.277098 -0.638164 +-0.747998 -0.484261 -0.849188 0.115952 0.180504 -0.667777 -0.969912 0.0727628 +0.963349 0.761828 -0.745403 -0.43181 -0.487012 0.827165 -0.646577 -0.160079 +-0.764275 0.907474 0.329591 0.159052 0.290096 0.163844 -0.327156 0.387687 +0.615459 0.56839 0.487407 0.917093 0.0743702 -0.484865 0.461471 0.917078 +-0.708641 0.835115 -0.372658 0.254261 -0.423061 0.268536 0.485171 -0.664508 +-0.660714 0.978831 0.241741 -0.737719 -0.0879775 -0.0736933 0.328497 0.62788 +0.365053 0.219433 -0.973205 -0.354778 -0.325695 0.831896 0.639059 -0.630742 +0.784274 -0.6332 -0.133621 -0.568539 0.423926 0.530975 0.772903 0.969602 +0.689438 -0.272964 0.691828 -0.127472 0.157738 0.113051 -0.589811 -0.750684 +0.381831 -0.0884335 0.0316414 -0.230055 -0.0134921 -0.284282 0.59055 0.749157 +0.403634 0.829692 0.245198 0.247367 0.887491 -0.314775 -0.00336517 0.915281 +0.407755 -0.141263 0.0458666 0.710067 0.413619 -0.754431 0.411961 -0.326802 +0.501326 -0.222584 0.20897 0.731039 -0.225906 -0.81537 -0.225643 -0.624335 +-0.331887 0.360021 0.629249 0.011293 0.294649 0.993715 0.913614 0.512187 +-0.966964 0.413302 -0.228988 0.600816 0.949428 0.491869 -0.135294 -0.61582 +-0.743862 -0.671765 0.630707 0.465107 0.898169 -0.693695 0.777233 -0.095741 +-0.603113 0.402744 -0.806204 0.347373 0.310882 -0.43267 -0.26291 -0.542884 +-0.247632 0.294954 0.781344 -0.356017 -0.900273 -0.382095 -0.562438 0.941904 +0.0925794 -0.160435 0.378564 -0.893988 -0.965652 -0.222735 0.000143474 0.226441 +-0.611725 0.338148 -0.239605 0.609967 -0.259542 -0.454734 -0.639997 0.346785 +-0.710872 0.728833 0.27258 0.950759 -0.797826 -0.301731 -0.101216 0.425688 +0.374105 0.587368 0.659061 0.353339 -0.499129 -0.97268 0.25812 -0.210001 +0.364602 0.345639 -0.229452 -0.515252 -0.0821484 -0.349889 0.391311 0.880473 +-0.392072 0.27623 -0.0272775 0.681752 -0.313177 0.335266 -0.141426 -0.102619 +0.290725 -0.989626 0.071846 -0.233169 0.569509 -0.739351 -0.389236 -0.671164 +-0.846608 0.266524 0.966217 0.151338 -0.895552 -0.437395 -0.700916 0.224747 +0.868884 -0.113134 -0.0122065 -0.117899 0.423913 0.232129 -0.351079 0.470261 +0.283962 -0.17001 0.0315349 0.256011 -0.639937 -0.37519 0.305536 0.614595 +0.199122 -0.216066 0.00690402 0.900753 -0.439018 -0.368711 0.624255 0.1382 +-0.0846128 0.0448389 -0.792859 -0.683196 -0.111982 0.4918 -0.773415 -0.637275 +-0.69179 0.922291 0.514366 -0.359919 0.919197 -0.212761 -0.0490307 0.159089 +-0.592126 0.913464 0.373748 0.686366 -0.0837567 0.582358 0.542379 -0.710981 +0.776816 -0.0300756 0.593407 0.385193 -0.18663 -0.101923 -0.448378 0.79683 +0.876291 0.682979 0.00792547 0.590353 0.0662863 0.827135 0.36273 0.703052 +0.619674 -0.738234 0.117859 0.897781 -0.763085 -0.59241 -0.300285 0.763047 +0.151579 0.447337 0.13128 -0.542545 -0.548617 -0.968609 -0.345168 -0.261123 +-0.412593 0.649262 -0.0421784 -0.970225 0.274411 -0.692277 0.692538 0.718578 +0.323079 0.506911 0.97922 0.658567 -0.37656 0.274636 -0.327808 -0.163211 +-0.198701 0.898417 -0.686527 -0.455088 0.294022 -0.627006 -0.36186 -0.913923 +0.424909 -0.0379385 -0.965039 -0.977996 -0.0997874 0.328052 -0.014271 0.736479 +0.787764 0.777855 -0.477795 0.749913 0.740409 0.194397 -0.514953 -0.0555138 +0.555525 0.927322 0.194017 -0.622111 0.399491 0.846684 -0.602196 -0.51277 +0.114974 0.128285 -0.391519 0.684282 0.656746 -0.072509 0.86117 0.191379 +-0.141111 0.417114 0.427917 -0.0169738 0.581725 -0.173114 0.205534 0.831369 +-0.667783 0.920361 -0.164443 -0.699943 0.328983 0.178066 0.324884 0.483594 +0.290897 0.590753 0.800007 -0.406528 0.0108895 -0.481459 0.762413 -0.87964 +-0.0374459 0.455109 0.583535 -0.407589 -0.641308 0.743001 -0.0543311 0.931398 +0.105705 -0.808965 0.622163 0.119456 -0.0576327 0.86564 -0.485867 0.536879 +-0.853874 0.378509 0.543008 -0.199228 -0.214181 -0.837815 -0.321409 -0.353931 +-0.722147 -0.252559 0.152847 -0.275855 -0.811723 -0.416028 -0.459245 -0.793537 +0.193833 0.423986 -0.281668 -0.529538 -0.414685 0.195773 0.530865 0.663184 +-0.658142 0.916743 0.103524 0.893851 0.248385 -0.863959 -0.493926 0.600878 +0.652699 0.372216 0.90989 -0.859484 0.459355 -0.664908 -0.943507 -0.264866 +0.267349 0.263592 0.942405 -0.160659 -0.690987 -0.137588 -0.126636 -0.763782 +0.420644 0.414345 0.270858 -0.751345 0.522227 0.75386 0.24366 0.713402 +0.920577 -0.37329 -0.673177 0.519007 -0.0448376 -0.801103 -0.132771 0.87576 +0.572886 0.965373 0.720584 0.0116552 0.157656 0.567011 0.0979474 0.858477 +-0.191483 0.0111142 -0.0405819 0.439271 -0.00114045 0.138384 0.952113 0.238512 +-0.878561 0.766138 -0.829573 -0.813322 0.69347 -0.384524 0.0914315 0.470025 +0.615343 -0.770406 -0.0247067 0.602883 -0.608007 0.42336 0.501264 -0.714984 +-0.890308 0.412663 0.482641 0.217433 -0.593223 0.0251279 -0.830907 -0.538826 +0.284212 -0.740456 -0.250777 0.610698 -0.43747 -0.931171 0.726396 0.511639 +-0.975656 0.393448 -0.900851 -0.685102 0.952177 -0.523442 -0.115032 -0.583663 +0.743824 -0.520495 -0.680266 0.807349 0.83317 0.114616 -0.513738 -0.73344 +0.229743 0.930853 -0.689057 0.94333 0.378999 0.404477 -0.678043 -0.515842 +-0.200405 0.333877 -0.20619 -0.110618 -0.27048 0.971163 -0.0294844 0.241777 +0.711951 -0.664789 -0.668293 0.561827 -0.868251 -0.296878 0.606881 -0.998199 +-0.792886 0.066126 0.941762 0.205742 0.343292 -0.43991 0.159765 0.302223 +0.123834 -0.246352 0.688239 -0.800765 -0.632175 0.753347 -0.263937 0.245751 +-0.85339 -0.543006 -0.813026 -0.213682 -0.299409 0.880484 -0.0594784 -0.115971 +0.0247822 -0.986925 0.532953 0.910922 -0.445822 0.0334869 0.920333 0.882088 +0.42718 0.658115 0.369245 0.895163 -0.824924 0.175481 0.472521 0.0824934 +0.379481 0.345051 0.849693 0.504958 -0.189682 -0.943164 -0.703458 0.444428 +0.861471 0.244628 -0.243541 -0.792561 0.245301 -0.295087 -0.0212582 -0.378426 +0.979916 0.414535 0.659639 -0.387006 -0.417387 0.478365 -0.332829 0.777529 +0.616686 -0.37674 0.121101 -0.108845 -0.950854 -0.836815 -0.395289 0.65502 +0.991669 -0.274754 -0.136351 -0.728001 -0.876925 -0.37137 0.175147 0.723281 +0.832188 0.924674 -0.596478 -0.869862 0.881561 0.741873 0.651392 0.51925 +-0.427572 0.00906724 -0.558908 -0.589578 -0.338921 0.830095 0.26632 -0.740495 +-0.446695 -0.0702259 0.997073 -0.701311 0.899308 -0.129431 -0.567768 0.941529 +-0.790527 -0.672531 0.392716 -0.203615 0.850462 0.299535 -0.0747023 0.418255 +-0.59688 0.0231533 -0.0109927 -0.240299 -0.222859 -0.547847 0.478953 -0.604809 +0.239525 -0.867907 0.398413 0.367716 0.275771 -0.885413 -0.393816 0.143464 +0.930022 -0.675525 -0.0909771 0.0710653 0.0960455 -0.0694187 -0.052106 -0.591057 +-0.0231766 -0.864838 0.6411 0.344139 -0.201789 -0.262545 -0.557 -0.345325 +0.59342 0.152716 0.434344 0.89218 0.0986881 -0.780129 -0.868729 0.625606 +0.00818566 -0.488817 0.741293 0.42078 -0.263251 -0.840337 0.500478 0.142849 +0.660305 -0.480487 0.25653 0.165858 0.547334 0.211187 0.169976 -0.708666 +-0.272326 -0.863905 -0.978446 -0.0991408 -0.369753 -0.438594 0.823899 0.309049 +-0.0849499 -0.837982 0.539864 0.643419 0.0885973 -0.486783 -0.978469 -0.0165461 +0.317965 0.782542 0.0914338 0.31265 -0.129641 0.688271 -0.86896 0.731073 +-0.66639 0.95396 -0.25294 -0.661787 -0.119636 0.0576572 0.51083 0.823934 +-0.0862847 -0.831097 0.622062 0.480839 -0.837853 0.0321093 -0.203866 -0.459344 +-0.515805 -0.922669 -0.835204 0.444568 -0.0733216 0.794002 -0.323481 -0.0936258 +0.133534 -0.166693 -0.190366 -0.678033 -0.468401 -0.531849 0.564241 -0.122906 +0.881661 0.044731 -0.478211 -0.380869 0.890735 -0.860411 -0.794993 -0.194394 +0.0201941 0.732144 0.553071 0.766648 0.523756 0.952517 -0.0856112 0.143381 +0.198553 -0.0327278 -0.945738 -0.756521 0.331658 0.0809548 -0.89392 -0.885436 +0.647726 -0.516117 0.553898 -0.271229 -0.407122 0.199254 -0.509396 -0.33208 +-0.899161 -0.0597467 -0.74211 0.91456 -0.551628 0.525144 -0.374348 -0.978749 +0.964722 0.0358027 0.187102 0.0683323 -0.937071 -0.705447 -0.804941 -0.50421 +-0.151172 -0.337901 -0.96729 -0.915654 -0.465939 0.256953 -0.290618 -0.225787 +0.152924 -0.820449 -0.064029 -0.270565 0.972987 -0.346386 0.780181 0.517794 +-0.45025 0.613471 0.608074 0.891807 0.250031 0.525261 0.945701 -0.803949 +0.458817 -0.133452 0.499495 -0.693867 -0.122164 -0.121782 0.756054 0.59001 +0.729794 0.12912 0.579871 0.808181 -0.937923 0.752947 -0.888688 -0.0572164 +-0.0213048 0.234291 0.0756045 0.146937 -0.806819 0.376335 -0.927768 0.51411 +-0.442081 -0.491403 -0.756449 0.633985 0.353856 -0.211605 0.46728 0.684738 +-0.587787 -0.648858 0.867078 0.727426 -0.380667 -0.171875 -0.793082 -0.719459 +-0.379344 -0.0453489 0.300836 0.00645384 0.921641 0.0624578 0.279266 -0.817832 +-0.93532 0.3827 0.999977 -0.455193 0.180612 0.674355 0.785228 -0.880989 +0.276895 -0.0498514 -0.743932 -0.94604 0.0460987 0.556896 0.580312 0.476311 +-0.815368 -0.757894 0.00689569 0.26726 -0.825702 -0.40052 0.986792 0.679104 +0.0618043 0.122066 0.988848 0.128116 -0.0267133 -0.974641 0.877536 0.119517 +-0.623966 -0.782174 -0.220243 0.00570844 0.123463 0.473008 -0.721568 0.573985 +0.629938 -0.191704 0.044033 0.189455 -0.319255 -0.399956 0.903219 0.784092 +0.971801 0.41164 -0.128211 -0.885582 -0.23368 0.55743 0.759247 0.960679 +-0.709077 0.867762 0.65299 -0.928537 0.377655 0.912603 0.975816 0.161785 +-0.357524 -0.548823 0.938905 0.203863 0.34696 0.670413 -0.19962 -0.789242 +-0.702756 -0.153727 -0.821328 0.0472297 0.378057 0.248361 -0.277278 -0.913699 +0.541585 -0.172727 0.764302 -0.861468 0.20947 0.812251 -0.728814 0.257396 +0.682423 -0.192835 -0.167988 -0.833954 0.706607 -0.0935099 -0.98626 0.951032 +0.549769 0.872987 -0.793829 -0.293233 -0.515632 0.472482 0.529231 -0.218298 +0.00249768 -0.508924 -0.630586 -0.159767 0.826932 -0.525461 0.430755 -0.881606 +0.338152 0.362913 0.731648 -0.154969 -0.293888 0.714924 0.679079 0.705427 +-0.360239 -0.546798 0.972064 -0.585367 -0.753076 0.282928 -0.0254499 -0.904648 +-0.977429 0.0421894 -0.769564 -0.180918 -0.516198 0.660201 0.537819 0.724147 +-0.374937 0.75315 0.360724 0.501295 -0.344399 0.108865 -0.685019 -0.362472 +0.902537 -0.844042 -0.902645 0.0327107 0.746802 -0.896137 0.89488 -0.38186 +0.00799492 -0.0255363 -0.158411 0.865279 0.562249 -0.786371 -0.990776 -0.98752 +-0.0287431 0.626907 -0.827029 -0.046212 -0.021303 -0.339383 -0.495085 0.112493 +-0.593129 0.0889764 0.793592 0.190739 0.697384 0.29409 -0.739642 0.574616 +0.533346 -0.79939 -0.0947867 -0.758435 -0.252366 0.420454 0.0992783 -0.90679 +0.791362 0.108924 -0.852472 -0.410327 0.89312 0.37903 -0.910593 -0.979168 +0.822607 0.113178 -0.780245 -0.0861847 0.203481 -0.960967 0.794187 0.499256 +0.0157146 -0.854559 0.959378 -0.752122 -0.431942 -0.914425 -0.100344 -0.703418 +0.639176 -0.492071 0.630305 0.0156427 0.391215 -0.231858 -0.99141 0.709872 +0.715364 -0.0279243 -0.809327 -0.64058 -0.760974 0.823927 -0.350474 -0.900163 +-0.343778 0.790012 0.302519 0.845171 0.470429 -0.74919 0.106579 -0.198452 +0.345597 0.678188 -0.249415 -0.0986324 0.31822 -0.682419 -0.0894058 -0.159801 +-0.927773 -0.0583743 0.707291 -0.407067 0.189784 -0.358025 0.483922 -0.67485 +-0.858836 0.784199 -0.757571 -0.172145 0.594192 0.934726 -0.783253 -0.547583 +-0.422483 0.0463805 -0.91506 0.477381 0.639314 -0.505029 0.614802 0.718891 +-0.137746 -0.276347 0.421175 0.675612 0.922327 0.81178 -0.0665909 -0.47881 +0.651853 -0.528218 0.225201 -0.74441 0.25099 -0.114694 -0.255129 -0.177056 +-0.80798 0.782718 0.422031 0.86857 0.938546 0.0929628 0.834163 -0.317626 +-0.408741 -0.945791 0.84471 -0.612027 0.810331 0.894789 0.13357 0.359048 +0.293323 -0.980481 0.937842 0.0598322 -0.840713 -0.957666 -0.407442 -0.993255 +0.60878 -0.904276 0.976301 -0.911836 -0.37507 0.926083 -0.552848 0.588328 +-0.895595 -0.458053 -0.915578 -0.364804 -0.873578 0.346265 -0.864188 0.271065 +0.554131 0.887265 0.968452 0.499216 0.446189 -0.885185 -0.267792 -0.0813319 +-0.973781 -0.917278 -0.922124 0.755966 -0.560364 -0.152761 0.73279 0.214736 +-0.0959491 0.355175 -0.305867 0.493368 0.689713 -0.68866 -0.974056 0.853615 +0.872727 0.0279295 0.91701 -0.503722 0.810464 -0.596978 -0.457862 0.233401 +0.862179 0.110614 -0.962337 -0.0959645 0.727667 -0.486606 -0.618321 0.226816 +-0.0372636 -0.341771 0.449044 0.505915 0.887379 0.537463 -0.390808 -0.676399 +0.877213 0.328224 0.826247 -0.383743 0.770792 0.357184 -0.224052 -0.357501 +-0.774513 0.651501 -0.584021 0.748626 0.276732 0.277809 0.399628 0.290414 +-0.11288 0.492465 0.854089 -0.387016 0.553205 0.286692 0.386178 0.434708 +-0.271317 0.825526 -0.0900205 -0.606965 -0.550913 -0.374639 -0.828632 0.901892 +-0.215649 0.716365 -0.591051 -0.682146 0.0558905 0.946952 0.43916 0.315786 +-0.421451 -0.237249 0.605612 0.0499465 0.969081 -0.495375 -0.522025 0.997612 +-0.932361 -0.660013 0.757458 -0.322021 -0.897498 -0.727323 -0.0540161 0.905532 +-0.145957 0.102737 -0.835887 0.503569 -0.912842 0.95257 -0.426563 -0.938148 +-0.647317 0.995824 0.723835 -0.716276 -0.207958 0.263358 0.82976 -0.714866 +0.0152628 -0.0180885 0.89722 -0.0578 -0.231579 -0.833811 0.373745 -0.0693651 +-0.512399 -0.690217 0.941337 -0.366201 -0.537408 0.416734 -0.613837 0.8855 +0.672429 0.880776 -0.792689 -0.204073 -0.906482 0.922812 0.104828 0.460221 +0.619748 0.769417 -0.873343 0.664736 -0.0494597 -0.249347 0.900202 -0.458901 +0.659488 0.192534 0.163689 0.0586922 -0.902261 -0.172069 -0.82588 -0.149118 +0.077176 0.308493 -0.106334 0.993873 0.520081 0.376014 -0.788564 -0.533899 +0.130135 0.74021 -0.528029 0.223747 -0.737436 0.579668 -0.788358 -0.130166 +0.501493 -0.74121 -0.0851298 -0.308201 0.0299741 -0.242361 -0.330355 0.452635 +0.745454 0.335935 -0.199234 -0.433497 0.112833 0.752673 -0.119819 -0.986114 +0.919548 0.578935 0.542923 -0.10352 -0.766806 -0.978232 -0.34755 0.788593 +0.62738 0.0990158 -0.166868 0.194295 0.351127 0.814015 0.676045 -0.356309 +0.510406 -0.419944 0.523977 0.392391 -0.334614 -0.344021 0.266684 -0.142563 +-0.758684 0.211365 -0.605222 -0.592752 -0.677406 -0.661907 0.188426 -0.851318 +0.260054 -0.933099 -0.112497 -0.71334 0.617495 0.233812 -0.810667 -0.0764758 +0.20642 0.395384 -0.24246 -0.983552 -0.634481 -0.0824766 0.0806025 0.532388 +0.0280422 0.365149 0.167271 -0.0171417 0.274566 -0.822412 -0.0184639 -0.853725 +0.412007 0.18347 -0.0791277 0.391852 -0.276179 -0.0103696 -0.100715 0.698667 +0.511202 0.427406 0.72993 0.127507 0.361402 -0.952601 0.18617 0.221879 +0.209074 -0.49027 -0.199655 0.328483 0.638837 0.220071 0.567806 -0.955906 +-0.116366 0.8109 -0.303113 -0.839278 0.853005 -0.121356 0.588508 0.365637 +0.058076 -0.980878 0.35331 -0.15642 -0.2379 0.229284 0.541109 -0.186901 +-0.787957 0.934787 0.706604 0.532961 -0.256714 0.309883 0.396585 -0.261672 +0.355373 -0.179306 -0.411972 0.368987 -0.917634 0.948915 -0.584951 -0.829728 +0.637541 -0.173326 0.210325 0.607454 0.572296 0.841261 0.0494415 -0.0763956 +-0.591643 -0.444647 -0.504743 0.434822 0.849002 -0.211766 -0.0788843 0.989326 +-0.337477 0.385435 0.445913 0.309361 0.918501 0.6652 0.944211 0.0257118 +-0.23916 -0.451166 -0.609886 -0.0659227 -0.0375864 0.737618 0.367575 -0.820003 +0.496646 -0.576896 0.767511 -0.689981 0.705403 0.712963 -0.0780863 -0.333201 +0.608137 0.487054 0.100392 0.300656 -0.84303 0.719292 -0.982492 0.980654 +-0.818826 -0.0389666 -0.476579 -0.184201 -0.632971 0.420708 0.0329246 0.56942 +-0.865627 -0.239283 0.872223 0.986551 0.974816 0.729962 -0.204364 0.942937 +-0.686741 0.234766 -0.0289711 0.32923 0.0281623 0.651585 0.505194 0.278144 +-0.869217 0.942754 0.656311 -0.884832 -0.755165 0.722221 -0.555994 0.181614 +-0.794462 0.96172 -0.444081 0.497709 -0.576258 -0.507055 -0.960692 0.897876 +-0.189972 0.47366 -0.620641 0.831582 0.908929 0.399992 -0.620239 0.866167 +0.166999 0.57064 0.386637 0.293375 -0.235856 -0.925089 0.908138 -0.459595 +0.84173 0.361143 0.277008 -0.699575 -0.328956 -0.949933 0.587514 0.0271074 +0.892804 -0.805868 -0.971652 -0.0706002 0.780361 -0.427233 0.569584 0.921465 +-0.701738 0.553394 -0.434867 0.950728 -0.602964 -0.231112 0.142276 0.436999 +-0.921229 0.963686 0.0121928 0.478565 -0.903602 -0.797991 0.763195 -0.551912 +-0.119594 -0.366926 0.991877 -0.533825 0.79025 -0.26983 -0.843712 -0.633321 +0.514414 -0.731802 0.388953 0.695488 0.281179 0.0614743 0.854952 -0.639278 +0.653624 -0.93081 -0.703172 -0.952874 0.467182 0.439103 0.664818 -0.870386 +-0.461089 0.681186 -0.837432 -0.551937 -0.915217 0.724061 -0.980872 0.949939 +-0.412469 0.18445 -0.63193 0.467245 0.110388 -0.871162 0.407215 -0.554955 +0.604099 -0.592378 -0.503853 0.199651 0.215938 -0.0685861 0.936613 -0.34603 +-0.916616 0.105062 -0.113299 -0.849665 -0.153681 -0.24699 -0.0431739 -0.99078 +0.688881 0.0168708 -0.273708 0.559642 0.202772 0.0186263 -0.825888 0.175398 +0.327059 -0.781869 -0.179969 0.923801 -0.601341 -0.908216 -0.18981 -0.337681 +0.450217 -0.940719 -0.374239 0.707066 -0.946993 -0.568042 0.457238 0.25565 +-0.134222 -0.426903 0.13369 0.124935 -0.867752 -0.958096 0.40148 0.590237 +0.511295 0.322837 0.0731732 -0.380006 -0.11069 0.774001 0.174249 0.168671 +0.589268 -0.657451 -0.866506 0.261098 -0.413224 0.673675 0.0814509 -0.470938 +-0.868213 0.604029 0.744615 0.599093 0.0384209 0.125244 -0.685501 -0.0630482 +-0.0304775 -0.108923 -0.429019 0.196518 -0.859279 -0.794601 -0.911809 0.163866 +0.644154 -0.562387 -0.790462 -0.595303 -0.553399 0.697125 -0.725724 0.469391 +-0.152077 0.741402 -0.0546205 -0.932208 0.840667 -0.293023 0.588662 0.606879 +-0.252727 -0.93542 -0.92383 0.692652 -0.59087 -0.454228 0.880038 -0.520625 +-0.0330253 0.327793 -0.175133 0.5013 0.542762 0.878107 -0.445413 0.198224 +-0.174487 -0.549524 0.037043 -0.673611 0.818549 -0.520281 0.624963 0.846791 +0.567396 0.336605 -0.0631226 -0.0271266 0.564415 -0.813487 0.149925 -0.935113 +0.379675 0.431089 -0.880337 -0.09441 0.950797 -0.375657 0.774873 0.339918 +-0.892763 0.876422 0.618538 0.134364 0.931439 0.959874 0.760375 0.12029 +-0.632104 0.593841 0.772795 0.516281 0.634152 0.974791 0.823063 -0.166161 +0.315663 0.768764 0.433545 0.311113 -0.324854 0.957896 -0.490663 -0.737455 +-0.304496 0.733789 0.793955 0.411901 -0.498453 0.293996 0.420119 0.422718 +0.670829 0.773441 0.696162 -0.513205 -0.202708 0.427208 -0.0306869 -0.841357 +0.920577 0.765176 -0.853106 0.370126 -0.989349 -0.546866 -0.575291 0.287968 +-0.757095 0.192672 0.814395 -0.453257 0.604847 -0.876354 0.367886 -0.0151331 +0.235559 0.875296 0.477356 -0.218342 0.26972 -0.808785 -0.682001 -0.647294 +-0.752228 -0.524457 -0.84528 -0.548262 0.0279057 0.746114 0.170418 0.0449894 +-0.392635 -0.597178 -0.939452 0.46004 0.422517 0.0810758 -0.850889 0.449146 +-0.409177 0.415453 -0.54126 -0.0305021 -0.31647 -0.0866191 0.224091 -0.719058 +-0.810073 0.187324 -0.832119 -0.189144 -0.830587 0.593345 0.770149 -0.330896 +-0.535108 0.273231 -0.0951172 -0.928801 0.389627 -0.232366 0.882369 -0.853362 +-0.497017 0.601427 -0.554973 0.608969 -0.781784 -0.180138 -0.0446734 0.149021 +0.454688 0.633539 -0.0790617 0.388466 -0.616397 -0.863969 0.410837 -0.680489 +-0.148318 -0.339283 0.163559 -0.0209041 -0.300157 0.430034 0.940282 0.602268 +-0.518671 0.275683 0.698899 -0.575999 -0.502948 0.182458 0.48962 -0.440142 +-0.617709 0.936434 -0.936071 -0.0633253 0.570726 -0.408753 -0.0703058 -0.0714649 +0.101372 -0.546566 -0.671765 0.986878 0.638177 -0.452032 0.639692 -0.769896 +0.174799 -0.0577958 0.322054 0.658358 -0.709421 -0.945225 -0.735239 -0.513385 +-0.109145 -0.227472 0.751624 -0.315295 -0.66989 -0.748413 -0.539431 0.72071 +0.966609 -0.432091 0.292787 0.91216 0.361899 -0.884765 0.110524 -0.243311 +-0.839594 0.737413 -0.020524 -0.577383 0.274459 -0.641296 0.294426 0.266055 +-0.0777944 -0.12732 0.519281 0.0816115 -0.238187 0.645786 -0.319999 0.885084 +-0.783431 0.243143 -0.78833 0.320227 -0.601606 0.430834 0.191957 0.204063 +-0.938407 0.98457 -0.306877 -0.546397 0.974052 0.331455 0.972354 0.943355 +0.586176 -0.828675 -0.323056 0.160293 -0.920361 -0.0660152 0.622205 0.641198 +0.872164 -0.338022 -0.143586 0.745673 -0.27235 -0.942767 -0.846036 -0.658522 +-0.347873 0.14824 -0.827163 0.0277554 0.215965 0.462571 0.150729 -0.719356 +0.710976 -0.0125055 -0.661091 0.0458706 0.279894 -0.452641 -0.805444 -0.949556 +0.303348 0.904368 0.50278 0.0118716 0.574233 -0.482165 -0.328897 0.85348 +0.494556 0.750216 0.279848 0.79234 0.299291 -0.332139 0.402305 -0.708261 +-0.185838 -0.168782 0.512185 0.411594 -0.182905 0.855864 -0.650474 -0.0487407 +0.274737 0.00184485 0.119464 0.0808393 0.455276 0.328098 0.790185 0.771224 +-0.750247 0.991348 0.575928 0.392401 -0.419237 -0.791278 0.7272 -0.662481 +0.518297 0.866057 -0.0971389 -0.656726 -0.00456969 -0.530444 0.74639 0.545359 +-0.913198 0.168062 0.44004 0.47359 -0.893752 -0.632574 0.0189093 -0.285474 +0.121985 -0.0851743 -0.358886 0.443117 0.232953 0.383373 0.428068 0.330468 +-0.952961 -0.689825 0.902817 0.988628 -0.242252 -0.0696776 0.403773 0.610098 +-0.558115 0.0430609 -0.152619 -0.856945 -0.743948 -0.964333 0.0213278 -0.350069 +0.951536 -0.715168 0.908198 0.0755313 -0.302643 -0.0346488 -0.932556 -0.953335 +0.716817 0.169996 0.446301 -0.890338 -0.650838 0.288421 0.0217752 0.827143 +-0.423832 -0.319625 0.57522 0.492049 -0.954419 0.0321517 -0.571249 -0.428418 +-0.929349 -0.147587 -0.777471 -0.105646 -0.233346 0.448064 -0.637381 -0.24875 +-0.505605 0.705017 -0.0959733 -0.750152 -0.9875 0.237013 0.611796 -0.0658917 +-0.754473 0.975777 -0.311153 0.811346 0.816528 0.479834 -0.417514 -0.0501505 +-0.336015 -0.436469 0.246355 -0.860231 -0.795712 0.132214 0.220806 0.224177 +-0.464325 -0.807899 0.226076 0.463425 0.277786 -0.0949832 -0.628236 0.685393 +-0.610457 -0.830874 0.0182248 0.487999 -0.434955 0.417479 0.662097 -0.590251 +-0.868883 0.28932 -0.52939 0.583749 -0.853499 -0.446555 0.640106 -0.312221 +-0.571267 0.499154 0.449614 0.395598 -0.0409316 -0.914739 0.419068 -0.0674042 +-0.411804 0.270978 0.264104 -0.324432 -0.519737 -0.662117 0.763018 -0.222477 +0.524455 -0.560286 -0.562702 0.292157 -0.533457 0.584337 -0.508795 -0.929743 +-0.762652 -0.971874 0.802773 0.791144 0.00753262 0.766991 0.540942 0.622855 +0.18138 -0.690126 0.60004 -0.94918 -0.190943 0.163418 -0.196051 0.122354 +-0.85054 -0.616725 0.0901593 0.598235 0.122568 0.877437 0.273597 -0.357027 +0.431568 -0.892009 0.840537 0.741927 0.580244 -0.352159 -0.57254 -0.727205 +0.0600962 -0.0731579 0.564756 0.229222 0.713273 -0.771259 0.114384 0.0744715 +0.816392 -0.98539 -0.640545 0.681416 0.601987 -0.169311 0.835319 0.545517 +-0.638803 0.904986 -0.985946 0.0495214 0.808597 0.192554 -0.00420704 0.350903 +0.353323 0.639512 -0.423534 0.765067 0.76902 -0.433274 -0.486244 -0.889671 +-0.398864 0.353809 0.317748 -0.151293 0.721683 -0.462832 -0.144684 0.394665 +0.498871 0.226772 -0.696744 -0.708177 0.688459 0.938859 0.249073 -0.349694 +-0.543234 -0.775247 0.450643 -0.847143 -0.239568 -0.226471 0.160416 -0.915136 +-0.311468 -0.136463 -0.072374 -0.231853 -0.706321 -0.342557 -0.856242 -0.523405 +-0.0887504 0.878851 0.357334 -0.20889 0.6194 0.623697 0.682307 -0.643001 +0.786759 0.497659 0.523058 0.352989 -0.377757 -0.568991 0.575593 0.248978 +-0.44774 -0.526464 0.137441 0.0368045 -0.138769 -0.719269 -0.636638 0.205365 +0.754234 0.290974 0.118056 0.926953 0.340107 0.647463 -0.165792 0.524386 +0.862808 -0.808229 0.986318 -0.333334 0.938955 0.504754 -0.948564 -0.627975 +-0.737627 -0.850771 -0.872538 -0.337812 0.281918 -0.121811 -0.0542474 0.247375 +-0.306369 0.127887 0.728652 0.0133278 0.751216 -0.125756 -0.356234 -0.19106 +0.202586 0.309792 -0.453417 0.692834 0.69547 0.70986 -0.85682 0.760528 +-0.131201 0.144543 -0.178906 -0.157251 -0.533544 0.888226 0.208771 -0.977268 +-0.504413 -0.0699119 -0.435211 -0.91065 0.312126 0.75234 0.97395 0.544 +0.894817 0.511993 0.287178 -0.23484 -0.581139 -0.584932 -0.625012 0.0210486 +-0.286104 0.254178 -0.542006 0.161124 0.766974 0.742791 0.912037 0.632687 +-0.60916 -0.885383 -0.756673 -0.777782 0.277766 0.991106 0.900554 -0.391421 +-0.142503 -0.818095 -0.45911 -0.918373 -0.298651 -0.277392 0.725643 -0.854794 +-0.649908 -0.187901 0.0247095 -0.60228 0.793194 -0.617519 -0.997789 -0.274494 +-0.280149 0.898711 -0.360574 -0.976312 0.476091 0.916732 -0.169414 -0.72465 +-0.411932 -0.32515 0.871157 0.599611 0.134385 -0.102408 0.394689 0.7496 +0.104619 -0.175166 0.904801 0.0569862 -0.0476467 0.376232 -0.110904 0.740176 +0.52391 0.230445 -0.167388 -0.522466 0.227577 0.29069 -0.0534199 0.0569272 +0.625561 0.549869 0.861022 0.10075 0.72685 -0.0568357 0.509931 0.0672989 +-0.346833 -0.551593 -0.389969 0.0073665 0.288691 -0.804029 0.088699 0.532961 +-0.767316 -0.343539 -0.357081 -0.0846586 0.600049 0.835556 0.816295 -0.263728 +0.58262 -0.116763 0.636783 -0.618889 -0.416884 -0.309726 -0.468009 0.871142 +-0.823144 0.986674 0.95286 -0.361432 0.55619 0.958338 -0.136065 0.00978749 +0.157041 -0.134212 0.276699 0.145281 -0.485878 0.862085 0.902173 -0.76561 +-0.138389 -0.182146 0.889744 0.297919 0.740105 0.147681 0.503145 -0.736469 +-0.685033 -0.485946 0.201931 0.296399 0.480032 0.935205 0.238879 -0.803755 +-0.615923 0.079203 -0.319049 -0.402563 -0.124385 -0.320356 -0.438738 0.347248 +-0.26052 0.160195 0.763041 -0.255672 0.994378 0.909226 -0.0298997 -0.997844 +-0.276995 -0.453403 0.634612 0.0875058 0.650583 -0.96219 0.523689 -0.100822 +-0.177809 -0.937384 -0.28952 -0.220639 0.271869 0.790844 -0.139988 0.387136 +-0.157078 0.472966 -0.67483 -0.991139 -0.822019 -0.444225 0.934609 0.994294 +-0.209155 -0.386623 0.541155 0.466955 0.684132 -0.637023 -0.000662698 -0.366198 +0.5711 0.205397 -0.738076 0.182721 -0.283388 -0.842837 0.19663 -0.599122 +-0.674715 -0.0732164 -0.941004 -0.512716 0.927311 0.184827 -0.281494 -0.300882 +-0.547956 0.999928 0.959472 0.0852394 0.689922 0.514692 -0.127357 0.413696 +-0.0377045 0.197385 0.991193 -0.987554 -0.991909 -0.741119 -0.0827873 -0.851644 +0.789856 -0.0561885 -0.918343 0.134567 0.329217 0.687128 0.467436 -0.435116 +-0.471794 0.73237 0.977324 0.694653 -0.451916 0.454989 0.00498822 -0.257135 +0.748528 0.450546 -0.743392 -0.450777 0.758868 -0.320118 0.728743 0.0153246 +-0.531501 -0.892419 0.633288 0.658013 0.263826 0.12886 0.385882 0.0323802 +0.687212 -0.24275 0.751322 -0.730946 0.937416 0.0921673 0.405329 0.241475 +-0.213351 0.774039 -0.049899 -0.25581 0.000732646 0.684335 0.151096 0.649219 +0.26154 0.333546 -0.80676 -0.119055 0.364801 0.177554 -0.691678 -0.62992 +0.52007 -0.12052 0.983154 0.806358 -0.00997916 0.889552 -0.877461 -0.215677 +0.757724 -0.741531 0.156651 -0.68095 -0.0755776 0.486172 -0.359773 0.0925162 +-0.692822 -0.0141875 0.81207 -0.00906921 -0.00493599 0.47499 -0.625689 0.90352 +0.649982 -0.812876 0.895096 -0.0379297 -0.338638 -0.478548 -0.0943941 0.272687 +0.724685 -0.022035 0.0457361 -0.716353 0.344336 0.176737 -0.126939 -0.752648 +-0.936457 -0.233943 -0.648857 -0.45973 0.73649 0.932867 0.757983 0.962803 +0.170945 0.490496 0.952495 0.763113 -0.68094 0.720786 -0.667562 0.950296 +0.977082 -0.497909 0.727733 0.610678 0.0265574 0.00265843 0.391433 -0.765324 +0.619972 0.541125 0.708 0.997773 -0.272605 0.712599 0.0736995 0.272346 +-0.940861 0.0762346 0.0136436 -0.537222 0.594253 -0.907104 -0.372755 0.22729 +0.873806 -0.528205 0.477191 -0.943149 -0.439462 0.117662 -0.252288 0.516592 +0.657385 -0.518584 -0.946717 -0.854304 -0.952449 -0.752462 0.207444 0.0728009 +-0.645599 0.340758 0.657169 -0.331184 -0.598246 -0.274908 -0.0250179 -0.304901 +0.686562 -0.654303 0.27842 -0.115524 0.473662 0.0127028 0.553789 0.990883 +0.393672 0.600265 -0.920467 0.532092 -0.349666 -0.615626 0.633596 -0.841394 +0.131594 -0.708877 0.585439 0.45468 0.378988 -0.0539827 -0.596616 0.645908 +0.892736 0.0992729 -0.0382379 0.427434 -0.350509 -0.360955 0.979282 0.139371 +0.267914 -0.492926 -0.622307 -0.674663 0.164849 -0.229132 -0.035842 0.959332 +-0.731852 0.327502 -0.575435 -0.0297323 0.980193 -0.612321 -0.280145 0.0856629 +0.643568 -0.513787 -0.134338 0.232088 -0.149599 -0.584207 -0.579692 0.157425 +0.614703 0.736502 -0.0833472 0.514622 -0.293587 -0.650099 0.533982 0.186323 +-0.675352 -0.119661 -0.515183 -0.210644 -0.85384 0.307861 0.700693 -0.877282 +0.274578 0.473508 0.406831 -0.538001 0.956363 0.646266 -0.546682 0.992454 +-0.87327 -0.00296215 0.0414035 0.0500699 -0.670198 0.853049 0.914707 0.116119 +0.190999 -0.700027 -0.859726 -0.639689 -0.501863 0.951785 0.43509 -0.938298 +0.907065 0.087347 0.317729 -0.55167 0.694181 -0.298263 -0.173535 -0.405605 +0.894403 -0.584206 -0.0723924 0.633117 0.570955 -0.560545 0.467796 0.122046 +-0.796304 0.528693 0.00108817 -0.890026 -0.820986 0.412875 0.221054 -0.558606 +0.219785 -0.199144 0.467752 0.0898112 -0.5489 -0.178627 -0.974027 -0.70176 +-0.279536 -0.355732 0.829754 0.206678 0.92681 0.725132 0.59638 -0.652078 +0.901265 0.691778 -0.10057 0.967704 0.233985 -0.877128 -0.40284 0.149152 +-0.764962 -0.204784 0.770602 -0.837699 0.776018 0.632944 0.201403 -0.586494 +-0.132137 0.720944 -0.452181 0.0467145 0.515932 -0.23395 -0.944926 -0.525222 +0.180312 -0.85565 0.960342 0.854501 0.25741 -0.336411 0.473119 0.792189 +-0.6289 -0.0291849 0.0420405 -0.452139 0.238573 0.429904 0.270788 -0.750278 +0.847802 0.426038 0.353717 -0.950472 0.981075 0.888408 0.766313 -0.765033 +0.283318 0.683637 -0.594716 -0.258368 -0.949117 -0.306491 -0.793554 0.163335 +0.571415 -0.561182 0.741436 -0.11306 -0.226107 -0.542048 -0.623548 -0.686956 +0.2674 -0.838761 -0.117915 -0.193575 0.0629765 0.705599 0.0882624 -0.255399 +0.791962 -0.154414 0.155621 -0.496132 -0.378271 0.939525 0.970834 0.564463 +0.335219 0.801393 -0.211062 -0.0313083 0.268018 -0.299146 -0.232611 0.714823 +-0.426097 0.567041 0.649474 0.0358228 -0.299913 -0.0713698 -0.633735 -0.784617 +0.0232393 0.662918 0.0372392 0.231156 -0.691952 0.433214 -0.603794 -0.213686 +0.905391 0.415682 0.402408 -0.211226 0.240961 0.636125 -0.0358785 0.492232 +0.107998 0.778871 0.011083 0.514138 0.63688 -0.634362 0.161362 -0.00531217 +-0.684938 0.930207 0.806177 0.46788 -0.00147245 0.466066 0.847943 -0.677591 +-0.00649523 0.806737 -0.302778 -0.145562 -0.863794 -0.0302537 0.772421 0.187482 +0.619861 -0.0637037 -0.110914 0.0793783 0.256422 -0.0290565 -0.392131 0.864709 +-0.0191528 0.927415 -0.082349 0.525604 -0.931214 -0.466625 -0.914915 0.872849 +-0.17235 0.646809 0.949734 -0.81783 -0.322976 0.127121 -0.200871 0.0826042 +-0.632413 0.0674995 0.978769 -0.318435 -0.186217 -0.663021 0.57249 0.926005 +0.0181546 0.0713998 0.709013 -0.385123 0.946755 -0.0728979 -0.103564 -0.188298 +-0.683118 0.320875 -0.391775 -0.335778 -0.0798763 -0.972134 0.219379 0.492908 +0.579168 0.799142 0.295507 -0.764597 -0.761547 -0.26899 0.872283 0.0791589 +-0.606292 0.794086 0.137936 0.637808 0.0615395 -0.389156 -0.614971 0.924965 +0.713525 0.884743 0.661499 0.615001 0.396643 0.619282 -0.887594 0.863704 +0.124719 -0.669662 0.0415935 0.892271 0.296006 -0.419755 -0.34637 0.161909 +0.953529 -0.461741 -0.476569 -0.150034 0.703462 -0.918889 -0.914346 -0.635682 +0.625844 -0.910335 0.412728 0.684072 -0.573945 -0.506028 0.150957 0.164161 +-0.455554 0.302384 0.94253 -0.149663 -0.681389 0.0460208 0.501568 0.00589114 +0.473585 0.858584 -0.630107 0.962347 -0.902829 -0.423111 0.516332 -0.101748 +0.491872 0.668381 -0.402207 0.712402 0.574147 0.810886 0.221889 -0.789166 +0.555292 -0.966892 -0.250653 -0.698821 -0.770122 0.468273 -0.189857 0.486777 +-0.274678 0.475475 0.090513 0.0941176 0.833517 -0.0989901 0.732688 0.929906 +0.933572 0.558267 -0.959083 -0.0707562 -0.371505 0.797705 0.464027 0.922195 +0.719289 0.503181 0.582471 0.763781 -0.0555772 -0.39836 -0.0366971 0.115712 +-0.522027 -0.321389 0.131675 0.89057 0.716248 -0.446274 0.974616 0.543703 +0.419614 0.463716 0.0980643 -0.985997 -0.407129 -0.948701 -0.115993 -0.546362 +-0.0715668 0.849654 0.403235 -0.910678 -0.117649 -0.604286 0.184488 0.729098 +-0.93474 -0.599825 0.0214467 0.670089 0.363606 0.988076 0.432029 0.148693 +0.819119 -0.251876 0.271394 -0.764731 0.607854 0.562658 0.699353 -0.222141 +0.9961 0.262391 -0.479401 0.275457 0.461772 0.816849 -0.762862 -0.697602 +0.581109 0.350793 -0.120216 -0.312196 -0.929956 0.407073 -0.312881 -0.705924 +-0.668388 0.984213 0.273338 0.639527 0.501369 -0.614373 0.214894 -0.218285 +-0.124574 0.7385 -0.00144546 -0.0154488 -0.0514818 0.703353 0.875083 0.169949 +0.11434 0.471679 -0.665672 0.598294 -0.213896 -0.10477 -0.45066 -0.832872 +0.574354 0.606272 -0.71956 -0.597004 -0.394706 -0.183679 -0.304551 0.535606 +0.572686 0.214173 -0.812911 0.32976 -0.611692 0.244669 -0.0058671 -0.10343 +-0.197952 0.346636 -0.587875 -0.352256 -0.277861 0.507426 -0.911851 0.406888 +-0.0069995 -0.171561 0.767617 -0.682493 -0.493422 -0.556888 -0.412298 -0.633811 +-0.299201 0.488389 -0.642966 0.551488 0.456489 -0.952984 -0.414757 -0.593406 +0.343825 0.725008 0.24153 -0.851154 -0.374948 0.122291 -0.766575 0.725006 +-0.779711 0.385846 0.323872 -0.765733 -0.202113 -0.143466 0.298488 -0.26644 +-0.503339 -0.662685 0.0770419 -0.119041 0.863646 0.525176 -0.130999 -0.422811 +0.422938 0.147297 0.16718 0.437515 -0.36838 -0.630864 -0.800768 0.961757 +-0.0641101 -0.715403 0.246984 -0.452333 -0.387947 0.343553 0.273382 -0.902628 +-0.541774 -0.914521 -0.593925 -0.6866 0.453686 -0.563833 0.622579 0.622065 +-0.539202 -0.667677 0.338388 -0.753619 0.597776 -0.649447 -0.490685 -0.760126 +-0.368934 -0.984469 -0.162553 0.535268 -0.0581524 -0.270395 0.117763 0.376106 +0.421615 -0.269914 0.0908834 -0.428551 -0.0659017 -0.674737 0.343036 -0.809389 +0.381187 0.054868 -0.736517 -0.0805571 0.238274 0.392724 -0.858288 -0.555801 +-0.668288 0.0322469 -0.17407 0.709696 -0.228347 -0.405828 -0.741468 0.112184 +0.586689 0.877233 0.353419 -0.269228 0.246214 0.0663341 -0.265378 0.0738752 +-0.846392 -0.896188 0.599184 -0.989711 0.815948 -0.891413 -0.717648 0.928854 +0.847613 0.497684 0.653577 0.256727 -0.941993 0.687621 0.885548 -0.0328761 +-0.835823 -0.633593 -0.778862 0.101114 -0.297876 0.514077 -0.0219575 -0.35025 +0.020711 0.559037 0.316685 -0.583087 0.540192 -0.435422 -0.675302 -0.521982 +0.745565 -0.292312 -0.0292307 -0.239998 -0.381024 -0.450953 0.0987404 -0.942122 +-0.742454 0.257428 0.934171 0.809179 0.19012 0.2545 0.907287 0.284899 +-0.672138 -0.161404 0.3675 0.0488093 0.931938 0.176262 0.88015 -0.329395 +-0.025253 0.316535 -0.206743 0.0107128 0.702844 -0.384482 0.30496 0.368379 +0.84283 -0.132163 -0.871323 0.839478 0.451141 0.275397 -0.67559 0.884972 +-0.424877 -0.0780003 -0.675793 0.0674848 0.120192 0.85349 0.825394 -0.23963 +0.964721 0.288912 0.784952 0.0211033 0.776431 -0.168673 -0.827909 -0.0470922 +-0.137226 -0.295394 -0.758961 -0.358091 0.719381 0.22567 0.465528 0.238049 +0.846867 0.593485 0.402443 0.0197375 -0.326613 -0.389345 0.210102 0.585761 +-0.251388 0.975586 0.765576 0.0105263 0.0485571 -0.144259 -0.225171 -0.846924 +0.904802 -0.306201 0.973132 0.0169053 0.54403 0.146896 -0.67209 -0.100314 +-0.305925 -0.649057 -0.961895 0.10197 0.773901 0.251404 -0.68321 -0.999172 +0.803232 0.831024 -0.194258 -0.21741 0.519616 -0.26428 -0.871257 0.459452 +0.495183 -0.315436 0.988942 0.0946434 -0.145408 -0.780088 0.478292 -0.440063 +0.140639 -0.666605 -0.394771 0.209669 -0.882781 -0.866785 0.822876 0.313566 +0.289734 -0.351428 0.0652073 0.0207896 -0.880111 -0.289536 0.655548 -0.866614 +-0.55384 -0.263566 0.324455 -0.907539 -0.429209 -0.674557 0.171382 -0.749217 +0.573479 -0.606619 -0.99615 -0.841321 -0.624034 -0.16957 0.40645 -0.857816 +0.6124 0.515271 -0.476764 0.712873 -0.13435 0.456959 0.976651 0.049353 +-0.38961 -0.554669 -0.961053 0.597428 -0.980611 -0.306856 0.237047 -0.0528948 +0.436825 0.067787 0.553998 -0.973296 0.589735 -0.965539 0.933691 -0.092189 +-0.756253 0.657371 -0.131657 -0.393731 -0.401185 -0.61353 0.0998119 -0.0482496 +0.88094 0.068662 -0.311243 -0.541921 0.6701 -0.631771 0.6582 0.837739 +0.553374 -0.311691 0.895415 0.427898 -0.466342 0.639683 0.0199094 -0.290336 +-0.27462 -0.924421 0.433571 0.152194 0.391239 0.572982 -0.898181 -0.437818 +0.400034 0.193773 -0.397168 -0.61091 0.0983465 -0.122479 0.214126 0.148631 +-0.639838 0.703216 -0.709621 -0.159355 -0.979139 0.227143 0.646861 -0.882124 +0.435646 0.598844 0.553529 0.0650148 -0.482796 0.131495 -0.909386 -0.984489 +-0.91282 -0.486764 0.565165 -0.365891 -0.625747 -0.968751 -0.5831 0.760851 +0.41417 0.88422 -0.528985 -0.79639 0.769148 0.0281669 0.278321 0.233352 +0.043172 -0.119929 0.744422 0.204351 -0.181731 0.207236 0.00826885 -0.89295 +0.481915 0.327717 0.041896 -0.408631 -0.0673356 -0.873874 -0.508949 0.513303 +-0.670448 -0.135228 -0.224288 0.429496 0.716588 0.108394 -0.672017 0.813268 +-0.823246 0.284042 -0.89564 -0.660131 -0.622931 0.386008 0.642158 -0.46408 +0.124811 0.91243 -0.131516 0.580109 0.273929 0.620618 -0.60207 -0.940485 +0.242091 -0.842635 0.558778 -0.708394 0.959491 0.807801 0.260162 -0.860087 +0.701188 -0.286316 0.665152 0.0836808 0.0777449 0.665974 0.190459 0.229637 +-0.573788 0.553263 0.401587 -0.254484 0.453416 0.320535 0.124292 -0.674375 +-0.772557 0.286658 0.286858 -0.610604 0.164543 -0.461166 -0.111085 -0.467779 +0.755912 -0.835414 -0.523273 0.124686 0.625215 0.254365 -0.621343 0.721486 +0.723409 0.800257 -0.473727 -0.977582 -0.692884 0.415379 0.536753 0.757392 +0.836582 -0.563446 0.361799 0.49473 -0.65864 -0.873374 0.991183 0.520681 +-0.0842182 0.655348 0.417902 -0.607633 0.288775 -0.92892 0.96663 -0.822085 +0.962041 -0.131105 -0.235819 0.988614 -0.637875 -0.738374 0.741394 -0.474423 +0.466231 -0.931568 0.460443 -0.20345 -0.628494 -0.994319 0.931444 0.675085 +0.972864 -0.20814 0.460001 -0.885232 0.124898 -0.985502 0.888845 -0.579836 +-0.29524 -0.680225 0.122174 -0.219773 0.64414 -0.447162 0.359855 0.266702 +-0.668839 -0.772446 0.581573 -0.0510943 -0.212979 0.966907 0.613242 0.857691 +-0.0390333 -0.919343 0.916039 0.0784157 0.861652 -0.650292 -0.994993 -0.646119 +-0.92435 -0.640192 0.861895 -0.751346 0.64982 -0.566795 0.724396 -0.911267 +0.87906 0.649922 0.854086 -0.556599 0.352613 -0.790212 0.0402968 0.187952 +-0.0738641 0.202716 0.0614971 -0.151917 0.416292 0.530612 0.774077 -0.394695 +-0.133099 -0.693308 -0.385959 0.669784 -0.851992 0.331418 -0.496843 -0.887921 +0.840795 0.221318 0.823693 0.680852 -0.248194 0.869303 0.702691 0.942566 +0.226746 -0.649925 -0.411488 0.193243 0.85133 0.435078 0.199276 -0.310649 +-0.326584 0.252741 0.768958 0.318801 -0.300594 0.867793 -0.253636 0.702688 +0.930336 -0.221198 -0.419854 0.40996 0.221548 -0.105628 0.92983 -0.256735 +0.597607 0.00693479 -0.509817 0.437797 -0.983077 0.508448 0.809127 0.196139 +-0.407975 -0.976637 0.950385 -0.764164 0.853928 -0.417241 0.765138 -0.343425 +0.27828 0.432838 -0.276489 -0.193367 -0.376719 0.0728322 -0.243358 0.393985 +0.950319 -0.818687 0.629642 -0.359023 0.0925039 -0.382067 -0.573574 0.982943 +-0.350449 -0.399127 -0.93732 -0.444581 0.698315 0.237874 -0.475988 -0.835617 +0.536712 -0.822973 0.259625 0.297349 0.79306 0.13849 0.755881 -0.78431 +0.431106 -0.127735 -0.463165 -0.591191 -0.153523 -0.211218 0.503748 0.23995 +-0.365947 -0.33267 -0.293726 -0.212914 0.336077 0.934874 -0.627893 -0.691594 +-0.0518001 0.0367222 -0.393038 -0.321993 -0.739019 0.335645 -0.67634 0.180534 +-0.259305 0.0203263 0.877685 -0.466853 0.849428 -0.61377 0.477269 -0.15404 +-0.879647 -0.90787 -0.358828 0.862563 0.795065 -0.0406532 -0.551764 0.174125 +0.643761 0.690572 0.289164 0.38959 0.410595 -0.720023 0.57238 -0.917611 +0.674706 -0.590643 0.159813 0.4123 0.767407 -0.517906 -0.316851 -0.298961 +0.363192 0.188104 -0.210612 -0.473926 0.279279 0.938374 -0.358034 0.0612207 +0.931987 0.35805 0.846323 0.408925 -0.646355 0.500204 -0.429592 -0.519569 +0.515194 -0.386515 -0.404967 -0.226663 -0.975967 -0.630693 0.307084 0.927822 +-0.942307 -0.791655 -0.898573 0.480521 0.380706 0.303901 0.456812 0.991757 +-0.048805 0.631629 0.89261 -0.821022 -0.969259 0.640607 0.371623 -0.896981 +-0.43813 -0.713409 0.415642 -0.125709 0.50242 0.476583 -0.74203 0.786028 +-0.195922 0.196466 0.440618 -0.507517 0.199694 -0.667823 0.151653 0.620218 +-0.75496 -0.652103 -0.940331 -0.184016 0.998388 0.406921 -0.119219 0.716519 +0.318588 0.704902 0.291492 0.983082 0.50794 0.88594 -0.880253 -0.836508 +0.0566302 -0.853426 0.420597 0.399746 -0.78373 -0.412174 0.415964 0.137116 +0.241168 -0.237681 0.236262 0.958907 -0.467803 -0.287174 0.917187 0.80971 +-0.183402 -0.249486 -0.0956603 -0.329253 0.32755 -0.55554 0.0461645 0.151975 +-0.832858 0.00999473 0.799883 0.611502 -0.0333815 0.0269128 0.788707 -0.05049 +-0.466655 -0.0359917 -0.178252 -0.75571 -0.352506 -0.385766 -0.775035 -0.225194 +0.653347 -0.214511 0.392336 0.351973 0.675455 -0.432383 -0.590565 -0.00247393 +0.83193 0.427776 -0.397143 -0.524797 0.0329433 -0.712917 0.586987 -0.597506 +0.955054 -0.422828 -0.156757 -0.900635 -0.993511 -0.453753 -0.900185 0.184881 +0.32201 -0.872906 -0.18668 -0.826279 -0.203369 -0.905251 -0.993372 -0.439943 +-0.785225 -0.105336 -0.637984 0.818458 0.570591 -0.403852 -0.946671 0.224589 +0.200085 -0.849365 0.607434 0.0208227 -0.654719 0.803037 0.618628 0.807793 +-0.693831 -0.813777 0.864736 -0.716155 -0.180395 0.240294 -0.614494 -0.338928 +0.75223 -0.550192 -0.48055 0.952716 -0.348465 -0.581164 0.994858 -0.279835 +-0.558747 -0.165934 0.440945 -0.68293 -0.61582 0.593773 0.710021 -0.722819 +0.0810007 0.930372 -0.791776 -0.770294 -0.272479 -0.524799 0.697685 -0.970154 +0.948796 0.577075 -0.558255 0.575764 -0.2287 -0.195658 0.230724 -0.987664 +-0.741981 -0.083787 0.285034 0.544847 0.00336 -0.219707 0.512473 0.0111617 +0.487292 0.0635702 -0.711597 -0.0247088 -0.370464 -0.404298 -0.666299 -0.101871 +0.598502 0.510439 -0.756427 -0.512909 0.583027 0.375139 0.156568 0.131014 +-0.17058 0.990818 0.612171 0.120444 0.103895 0.541877 0.0448434 -0.16348 +-0.397441 -0.467477 0.719242 -0.465148 -0.439904 -0.964904 -0.43302 -0.816664 +0.453677 -0.824843 0.797395 0.549664 -0.948966 0.546001 -0.880261 -0.273346 +-0.953964 0.620678 -0.520965 -0.253769 -0.272652 -0.679127 -0.982491 -0.566005 +0.64798 -0.266019 -0.573181 0.977262 -0.463859 -0.330665 -0.734435 -0.92418 +0.803465 0.735973 -0.0784778 0.359947 -0.656448 -0.0861305 -0.0149736 0.938578 +-0.855584 -0.921477 -0.831869 -0.33965 0.693436 -0.963245 0.56718 -0.0405202 +-0.634494 -0.621353 -0.67548 -0.619686 -0.616101 0.806266 -0.746468 0.823212 +-0.234292 0.62324 -0.404441 -0.0396719 -0.353624 -0.0309763 -0.0210264 -0.765736 +0.794504 0.721823 0.323607 0.0348415 -0.450974 -0.311555 0.143033 -0.101537 +0.307413 -0.228631 -0.709472 -0.479056 -0.183105 0.241753 -0.258827 -0.431294 +0.729868 -0.867868 -0.819651 0.982833 -0.0388093 0.473378 0.167372 0.31321 +-0.431609 0.969556 0.544448 -0.350157 0.67349 -0.463998 0.188472 -0.487228 +-0.352616 -0.734989 -0.164356 -0.721236 -0.0695177 -0.963942 -0.216112 -0.344447 +0.737561 0.146819 0.823387 -0.894282 -0.198945 -0.193143 -0.409891 0.650166 +0.379543 0.831259 -0.0890597 -0.285106 0.19873 -0.349228 0.722469 -0.0811125 +0.162026 0.788818 0.22839 0.640705 0.341505 -0.563131 0.0293779 -0.0870272 +-0.965161 -0.309858 -0.401846 0.479686 -0.388533 0.266861 0.404528 -0.698517 +0.218193 -0.700151 -0.111992 -0.77773 -0.537417 0.0594156 -0.791989 -0.341195 +-0.0491561 0.188822 -0.807967 -0.438611 -0.408479 0.0560279 0.0305076 -0.165252 +-0.133245 -0.842566 0.375244 -0.787213 -0.862269 0.466999 -0.798118 0.195476 +0.299756 0.479351 -0.222634 0.80622 -0.379803 0.71845 -0.11904 0.41572 +0.92435 0.739867 -0.503637 0.532559 -0.541676 0.581079 0.316796 -0.521131 +0.0671036 -0.923564 0.970237 0.438984 0.964438 0.931545 -0.858427 -0.867754 +0.469373 -0.690432 0.632152 0.30219 0.516518 0.376453 0.942618 -0.510809 +-0.374131 -0.616714 -0.235787 0.381932 0.340483 -0.0552866 0.154077 -0.97495 +0.0478047 0.334196 -0.63611 0.379448 0.60729 -0.299805 0.701503 -0.37992 +0.916858 0.50276 0.614059 0.980054 0.6831 -0.0876382 -0.317726 -0.706322 +-0.164709 -0.359572 0.793866 -0.129485 0.758523 0.441986 -0.171055 0.490299 +-0.64881 -0.222841 0.538741 0.722652 0.306283 0.0446685 0.0302669 0.340515 +-0.0870664 -0.921692 -0.288006 0.401609 -0.699856 -0.464328 0.605429 0.201644 +0.443318 0.775192 0.339284 0.923055 0.272059 -0.926282 -0.84369 0.640364 +-0.435417 0.305676 0.183887 0.18005 0.93121 -0.597983 0.633152 -0.748446 +-0.444077 -0.152974 0.901408 0.00567173 0.337209 0.249761 -0.465012 -0.572423 +0.14441 -0.217803 0.886623 -0.298584 -0.992069 -0.910329 -0.865043 -0.79585 +0.0427073 0.169323 -0.610172 0.606651 -0.925988 0.248012 0.438596 0.80506 +0.580341 0.278589 -0.98893 0.999265 0.794102 0.809174 -0.0091269 0.349602 +-0.785846 -0.639567 0.411711 -0.517947 -0.331774 -0.00407746 -0.306337 0.998251 +-0.0411384 0.862358 -0.265456 0.834848 -0.168149 -0.652118 -0.286001 -0.955105 +-0.973704 0.054507 -0.421655 -0.7494 0.734801 0.733003 0.716725 -0.675356 +0.411991 -0.493809 0.140858 0.594907 -0.470983 0.563757 0.493642 -0.913018 +0.0848154 0.588962 0.52998 -0.612874 0.180051 0.98097 0.786611 -0.317053 +-0.345644 -0.437166 0.810846 0.858096 0.665159 0.478925 -0.0875771 0.0923788 +-0.241872 -0.0142244 0.147105 0.311358 -0.481969 0.53812 0.788871 -0.263556 +0.831506 0.640901 -0.932048 0.998328 -0.556773 -0.508118 0.937576 -0.67691 +-0.647504 -0.246892 -0.436839 -0.43205 0.656722 0.900011 -0.940555 -0.482263 +-0.749823 -0.919295 -0.680736 -0.293111 -0.581066 -0.28322 -0.138873 -0.544922 +-0.23649 0.571688 -0.364229 0.779989 -0.367618 -0.281898 0.597353 0.192759 +0.262706 -0.238745 -0.188718 -0.254212 0.37893 0.793777 -0.729617 -0.415413 +0.0467543 0.767762 -0.829876 0.775823 -0.313896 -0.0956588 0.97448 -0.21157 +-0.439962 0.461296 -0.221232 -0.979795 0.790144 -0.248104 0.242984 -0.88226 +0.0864715 0.982388 0.171117 -0.249684 -0.334482 -0.808296 -0.221967 0.822003 +0.632996 0.94374 -0.775281 -0.686826 -0.778744 -0.759771 0.927022 0.0224117 +0.379151 -0.615238 -0.0501672 0.641635 -0.337415 0.703021 -0.580354 0.875055 +-0.141639 -0.156486 -0.250025 -0.568296 -0.242664 -0.396983 -0.608354 0.675347 +0.62325 -0.391065 -0.762547 -0.809897 0.283655 -0.288219 0.350484 0.156588 +-0.776012 0.274076 0.294224 0.368845 0.796698 -0.454758 -0.834285 -0.955352 +-0.634363 -0.80141 -0.706988 -0.550012 0.948761 -0.412028 -0.416648 -0.928917 +-0.0891207 0.376098 -0.964987 -0.917623 0.94218 0.967984 -0.885209 0.953605 +-0.282277 -0.827035 -0.193524 0.663693 0.254509 0.634436 0.796459 0.720589 +0.88988 0.0108032 -0.228537 -0.0757205 -0.349577 -0.891614 -0.287738 0.796168 +0.196442 0.45566 -0.663953 0.332061 0.624401 -0.41001 0.877254 -0.578532 +0.907596 -0.606834 -0.720908 0.949873 0.307714 -0.720114 0.589878 0.0596667 +0.598985 -0.777062 -0.239063 0.244857 -0.866087 0.500555 -0.313432 0.999761 +-0.647462 -0.615176 0.861202 0.406797 -0.460893 -0.290523 0.659345 0.165012 +-0.96857 0.849776 -0.569581 0.694598 0.638149 -0.109018 -0.589715 0.826114 +-0.0027549 -0.930053 0.89528 0.976338 0.710978 -0.0452181 0.523359 -0.810643 +-0.670165 0.0473472 0.497387 0.694714 -0.458602 0.958052 -0.0847757 -0.857943 +-0.285355 -0.0624846 0.297264 0.0787774 0.572124 -0.0933931 -0.965279 0.910607 +-0.802499 -0.195514 0.600725 -0.736912 -0.0388842 0.217021 -0.901233 0.851295 +-0.835873 -0.0623102 -0.830387 0.960948 0.397927 -0.705977 0.313747 0.537092 +0.952972 -0.506664 0.00583154 0.860835 0.278171 0.530486 0.549018 -0.994979 +0.19622 -0.933826 -0.760742 0.248686 -0.603 -0.35062 -0.0153036 -0.577148 +-0.941617 0.517287 -0.268814 -0.210716 -0.0391231 -0.209571 0.533472 -0.80421 +-0.662987 0.839977 -0.348736 0.987334 0.136113 -0.936907 0.676846 -0.183018 +-0.244292 -0.501728 0.680024 -0.948987 -0.256957 -0.0360509 0.0846798 -0.3269 +-0.914367 -0.70277 -0.219623 -0.0701372 0.291313 0.848735 -0.766073 0.290009 +-0.239939 0.551149 0.828111 -0.921141 0.555425 0.904696 0.0177353 -0.72478 +-0.69786 -0.227274 0.389082 -0.491666 0.35536 0.290257 0.503103 0.201486 +-0.634598 0.969934 0.402552 -0.0453698 0.786254 0.9334 0.630699 0.881358 +-0.00591691 0.304347 -0.792962 0.823663 0.0365753 0.229457 -0.378103 -0.140421 +0.974196 0.451824 -0.0269083 -0.509734 0.408524 -0.893785 0.736339 0.827325 +0.12172 -0.884968 -0.613209 -0.778287 -0.985988 -0.383091 -0.91481 0.463101 +0.661399 -0.675849 0.040684 0.245202 0.472531 -0.035824 -0.93978 -0.134191 +0.587334 0.107128 -0.797056 0.945834 -0.990166 -0.117561 0.679656 0.958143 +-0.960443 -0.302675 0.29185 0.15371 0.0143037 0.372646 -0.519729 -0.974672 +-0.910563 -0.375314 -0.375177 -0.882413 0.728729 -0.10515 -0.827114 -0.950809 +0.692252 0.755329 0.606595 0.972517 0.418286 -0.11729 -0.571962 -0.813254 +0.803214 0.36952 0.289499 -0.336532 0.916552 0.221312 0.51359 -0.537217 +-0.561784 -0.529544 -0.802465 -0.0332391 0.428501 -0.219429 -0.278968 -0.284951 +-0.562281 0.274244 0.90186 -0.891902 0.900667 0.291199 0.00631785 -0.638341 +-0.49093 -0.530458 0.0828044 0.482718 -0.680165 -0.269098 -0.594883 0.849732 +0.879348 -0.298821 0.390532 0.102698 0.706264 -0.124483 -0.14492 -0.318506 +-0.358964 0.348387 -0.723543 -0.399297 -0.698828 0.455239 0.391509 0.548327 +-0.392957 0.422771 -0.627696 -0.192509 0.0241379 0.0278262 -0.312123 0.380219 +0.68006 0.626891 0.0441748 0.451729 -0.879991 0.0161236 -0.513503 0.310096 +0.365854 -0.984841 0.219854 -0.366791 0.519929 -0.580663 0.876846 0.730039 +-0.581241 -0.0153402 0.014145 0.981295 -0.498005 0.327281 -0.965842 -0.864351 +-0.105895 -0.855385 -0.138845 -0.964329 -0.842362 0.456257 -0.957012 -0.828246 +0.292177 -0.416624 0.71723 -0.623425 0.298619 0.488671 0.49368 -0.36694 +0.560037 -0.717505 0.68229 -0.162798 -0.42066 -0.0649666 0.312833 0.110852 +0.838137 0.767129 -0.256094 -0.657869 0.99366 0.875143 -0.0659944 -0.129317 +0.967663 0.195352 -0.507424 0.810117 -0.438656 0.321165 -0.387351 -0.922342 +0.426811 -0.895498 0.380813 0.454062 -0.842164 0.942753 -0.361861 -0.62961 +-0.0222192 -0.377454 0.870297 -0.863223 -0.179788 -0.820079 -0.220045 -0.520223 +-0.771642 0.499579 0.980336 -0.89382 0.138686 -0.0278531 0.48178 0.499688 +0.4789 0.198088 0.240406 -0.00892653 0.187878 -0.94387 0.420187 -0.827594 +-0.224953 0.499761 0.208712 0.426446 -0.416422 0.913984 -0.897736 0.0182281 +0.799346 0.535787 -0.815264 0.658569 0.752995 0.493531 -0.998731 0.358444 +0.205353 0.158476 -0.975775 0.405028 0.429149 0.970673 0.593034 0.162828 +-0.934039 0.702637 -0.894025 -0.625242 -0.130516 -0.17667 -0.328593 0.781197 +0.238078 -0.255501 0.97914 0.431254 0.522377 0.326107 0.648545 0.976772 +0.208661 -0.590069 -0.533551 -0.649294 0.76325 0.589831 0.234321 -0.0510115 +-0.69793 0.68513 0.930427 0.588933 0.774451 0.237988 -0.808147 0.169682 +0.0349228 0.514847 0.778509 -0.129969 0.0390609 -0.207936 -0.297653 0.472766 +0.512546 0.159146 0.727731 -0.177057 -0.809416 -0.602289 -0.787647 0.38428 +-0.186697 0.779926 0.660422 0.500904 -0.0689695 0.0559962 0.333259 -0.0574155 +-0.728707 -0.0706758 -0.888296 -0.238565 -0.250264 0.839343 0.493229 -0.576019 +-0.809987 0.220358 0.205609 0.757369 0.143384 0.615678 0.330835 0.977295 +-0.391994 -0.684258 0.205786 -0.00734942 0.726512 -0.71284 -0.0306872 0.456416 +0.499907 0.567074 -0.205645 0.251682 -0.186756 0.280597 -0.0836714 -0.108558 +-0.28285 0.0691123 0.530537 -0.185215 -0.606915 0.0682439 0.0027849 0.559894 +0.991504 -0.59958 -0.125012 0.831124 -0.662051 -0.764216 -0.731422 -0.351546 +0.0504676 0.349729 0.858409 0.0808612 -0.826867 0.43127 -0.254422 -0.630537 +0.3472 0.216606 0.227496 0.239261 0.416589 -0.974391 -0.766833 -0.789926 +-0.612068 0.932691 0.578923 -0.137452 0.000133821 -0.952855 0.0602413 -0.231185 +-0.801073 0.0313484 -0.580106 0.161526 -0.722227 -0.0439152 0.553315 0.906336 +0.0287729 -0.964495 0.955237 -0.447544 -0.0758286 0.528293 0.201741 -0.739478 +-0.781629 -0.284645 -0.483844 0.362895 -0.42788 -0.786034 0.850566 0.872203 +0.000988529 -0.872803 0.395764 -0.0222731 -0.462379 -0.363251 0.800724 -0.170503 +0.317611 0.694185 0.97882 -0.519405 -0.835364 0.771746 -0.618922 -0.0419782 +0.555083 0.230567 -0.573056 -0.401002 -0.660464 0.101558 -0.896003 0.474492 +0.541582 -0.388696 0.723882 0.278064 0.957648 -0.645315 0.0103556 -0.228311 +-0.876491 0.895205 -0.059744 0.556219 0.953718 0.982976 0.996312 0.802643 +-0.268706 -0.950022 0.648118 -0.218916 -0.536437 -0.89109 0.477512 -0.703463 +0.840411 -0.234881 -0.98169 0.665541 -0.675073 -0.79018 0.122206 0.107823 +0.940919 -0.588458 0.0397954 -0.973241 -0.768445 -0.843359 -0.114625 -0.712586 +-0.763167 0.336097 0.92266 0.358382 -0.598842 -0.775323 0.980411 -0.806153 +-0.312086 0.157702 0.789472 -0.503158 -0.257445 -0.743381 -0.828678 0.86506 +-0.0126923 -0.392215 -0.13923 0.83301 -0.524511 -0.176745 -0.114381 0.28772 +-0.0400626 0.657065 0.58184 0.600973 0.362788 -0.950236 -0.314557 0.184622 +0.0749907 0.697958 0.330292 -0.640931 0.11142 0.925076 -0.694668 -0.638676 +0.493009 0.145296 -0.520822 -0.98083 -0.914793 0.733923 -0.373969 -0.440337 +-0.970714 -0.175843 0.98078 -0.737724 -0.0116679 -0.0424787 -0.794543 0.294647 +-0.139649 -0.897596 0.0889451 0.331298 0.880008 0.851879 0.135868 -0.899387 +-0.507133 0.936525 -0.857716 -0.633908 -0.655703 -0.554029 -0.402635 -0.446275 +-0.985789 0.610474 -0.938237 -0.0277712 -0.785777 -0.500821 0.592228 0.541555 +-0.985032 0.177672 -0.384303 -0.961241 0.928837 -0.272532 0.132935 0.878376 +0.465095 0.675375 0.438776 0.538609 -0.763695 -0.14723 -0.531163 -0.592394 +-0.838288 0.000891291 -0.519412 -0.0231059 -0.733383 0.948007 -0.158819 -0.297876 +-0.925951 -0.1423 -0.51796 0.0954837 0.159675 -0.916505 -0.203607 -0.017358 +-0.92074 0.99374 -0.0859041 0.770165 0.722163 -0.653699 -0.130248 -0.207295 +-0.462486 0.0955302 -0.698791 -0.212344 0.200033 0.647105 0.821219 -0.132371 +-0.565166 0.0770586 0.961235 -0.508404 -0.442225 -0.953534 -0.293995 -0.708842 +-0.849335 0.209508 -0.448546 -0.556959 0.934118 -0.0660197 0.0713486 0.739346 +0.890078 0.402817 -0.800801 -0.191642 -0.766558 0.982021 -0.278174 -0.0073298 +-0.963572 0.284708 -0.58032 -0.706186 -0.95045 0.0150127 0.0315615 0.96933 +0.840222 -0.683602 0.910108 -0.343273 0.441095 0.63458 0.89769 0.554707 +0.491723 -0.774222 -0.692531 -0.0468481 0.706801 -0.339504 0.59126 -0.686917 +-0.445663 -0.649241 -0.863431 -0.710597 -0.921198 -0.901963 -0.129142 0.760962 +0.0320171 -0.285886 0.338763 -0.768237 0.252418 -0.205757 -0.574938 -0.879478 +0.301201 -0.413578 -0.519134 0.047605 0.462966 -0.441339 -0.94419 -0.427017 +-0.358283 -0.96023 -0.598302 -0.0410851 0.557403 -0.534843 0.747025 -0.134568 +0.880795 0.610099 -0.582609 -0.456949 0.95577 0.576349 0.684508 0.665622 +-0.237965 0.384696 -0.179683 0.324595 -0.992583 0.0704854 0.401968 0.796009 +-0.00203615 0.69546 0.328352 -0.509609 -0.447603 -0.265674 -0.475372 -0.0344349 +-0.589852 0.338638 -0.361372 -0.868961 -0.736954 0.113487 0.704388 0.555416 +-0.130052 -0.0963523 0.362398 0.762927 0.0542655 -0.558715 0.613645 0.611645 +-0.0890763 0.073031 -0.520539 0.53027 -0.0493678 0.27893 -0.324707 0.48077 +0.485537 -0.209992 -0.278468 0.0241694 0.504499 0.0158526 0.212986 0.896538 +-0.918242 -0.347432 0.0817963 -0.190843 0.898233 -0.91068 -0.212327 0.761878 +0.0486397 -0.154782 0.17479 -0.282162 0.319754 -0.349857 -0.819006 0.953552 +-0.600682 0.33818 -0.569613 -0.966094 0.389177 0.00301871 -0.460958 -0.802867 +0.897449 0.218671 0.834667 0.383977 0.24897 -0.471332 0.311505 0.275869 +-0.955746 0.310375 -0.782398 -0.559921 0.0162922 -0.368741 0.689078 0.788591 +0.312957 0.474791 0.789484 0.12461 0.0376771 0.358785 0.264312 -0.090945 +-0.187699 0.693019 0.0338453 0.981572 -0.667717 -0.222581 0.969189 -0.492898 +-0.162957 0.414095 -0.525001 -0.542582 0.761473 0.867993 -0.479436 0.969725 +0.122143 -0.367049 -0.211531 -0.813606 -0.735177 -0.588383 -0.363287 -0.682746 +-0.0615493 -0.111727 0.0677509 -0.994696 -0.482459 0.71518 0.714496 0.816877 +0.477809 -0.845984 -0.104193 0.841676 0.98396 -0.14268 -0.174282 0.178472 +0.227179 -0.00360693 0.695781 -0.551831 0.36939 0.227701 0.849255 -0.591003 +0.327169 0.788534 -0.511301 -0.22985 -0.817921 0.331116 -0.214407 -0.910214 +-0.708966 0.208188 -0.508084 -0.540582 -0.193875 0.608349 0.967027 -0.279604 +0.364089 0.768508 -0.430323 0.781235 0.229113 -0.531661 0.315563 -0.797436 +-0.771633 -0.964051 0.887155 0.0490612 -0.49456 0.60161 -0.577165 -0.42747 +0.631762 -0.10653 -0.87284 -0.791872 -0.397926 -0.815688 -0.443718 0.676639 +0.237383 0.627652 0.581267 -0.0624467 0.481185 -0.734953 0.105723 -0.930586 +0.281403 0.460436 -0.00877237 -0.219244 0.891316 -0.769947 -0.576876 -0.577317 +-0.264914 0.949003 0.242688 0.122196 -0.537458 0.642368 -0.401507 -0.305504 +-0.644836 -0.679715 0.308287 -0.116654 -0.350678 0.827556 0.269841 0.875639 +-0.0122482 0.788323 -0.0636885 -0.920086 -0.558517 -0.581069 -6.7954e-05 0.377795 +-0.83225 0.981355 -0.231438 -0.0760357 -0.381715 -0.107074 -0.117899 0.190844 +0.947034 -0.0348618 0.250442 0.191565 -0.775705 0.154775 -0.0833674 0.672069 +-0.651433 -0.85605 -0.218248 0.339136 0.812395 0.793409 0.203541 0.140841 +-0.15254 0.249303 -0.773216 0.477813 -0.726266 -0.186391 -0.042282 0.863566 +-0.22177 0.165006 0.119711 -0.99751 0.462757 -0.0655601 -0.141857 0.907958 +0.457659 0.189563 0.373878 -0.584828 -0.839178 -0.413517 -0.902242 -0.962533 +0.636505 0.614248 -0.307533 -0.0669895 0.68695 0.974162 -0.414596 0.909689 +-0.771077 -0.738859 -0.750467 0.519689 -0.998582 -0.0267039 0.972495 0.0175519 +0.765825 -0.287436 0.222765 0.961867 -0.305154 0.788899 -0.295583 0.709795 +-0.246841 0.961723 -0.777986 0.893427 -0.423192 -0.109563 -0.925778 -0.753771 +0.104348 0.302678 -0.912214 0.00249155 -0.312287 0.396746 0.168541 0.115341 +0.014949 -0.252524 -0.657262 -0.20561 0.199603 0.228653 0.720772 -0.918958 +-0.774701 0.975592 -0.946264 -0.849281 -0.455914 0.192243 0.424375 0.56935 +0.66413 0.862284 0.34288 0.819815 0.280028 -0.0379026 0.776205 -0.0816372 +-0.693112 0.654071 -0.385478 -0.673351 0.674679 -0.128085 -0.327999 0.123251 +-0.863902 -0.605326 -0.768949 -0.732213 -0.859094 -0.910892 -0.753148 0.852136 +0.139327 0.647198 -0.695638 -0.650699 0.488065 0.710881 -0.052738 0.979065 +0.96188 -0.882517 -0.487372 -0.895156 -0.731849 -0.752382 -0.0555075 -0.841653 +0.289452 0.190389 -0.439215 0.963425 -0.180696 -0.41886 0.626262 -0.832502 +0.0952616 0.145581 -0.944876 -0.890151 -0.990307 -0.899171 -0.906756 0.715892 +-0.758892 -0.167672 -0.989394 0.903334 -0.220127 -0.353353 0.656034 0.0925861 +0.257189 -0.913204 0.124925 -0.641496 -0.503652 -0.30457 0.0317497 -0.808368 +0.811121 0.674702 -0.0342996 -0.664897 -0.0646336 -0.654337 0.825959 -0.422053 +0.850755 0.0808313 -0.0784897 -0.66403 -0.293737 -0.549064 0.453074 0.550516 +-0.506625 0.500224 0.502962 0.271969 0.539411 0.329842 -0.549577 0.0854797 +-0.351406 0.052171 0.941238 0.03936 -0.123868 0.150834 0.81009 0.975996 +0.599451 0.36938 0.6028 0.653908 -0.721486 -0.396746 -0.646534 0.923577 +-0.232604 -0.897794 -0.0260559 0.91711 -0.838969 -0.0474446 -0.251691 -0.0617259 +0.060493 -0.464392 0.661492 -0.285598 -0.635514 -0.369137 0.352977 -0.890196 +-0.955907 -0.116436 0.812475 -0.899991 -0.408582 0.916462 -0.60746 0.00521365 +-0.982504 -0.106176 -0.0219168 -0.509379 -0.419312 -0.878456 -0.503178 -0.484892 +-0.978184 0.338475 0.462099 -0.621855 0.479982 0.361033 -0.151682 0.197591 +-0.144616 0.646619 -0.0578232 -0.742414 0.541164 -0.67586 0.381051 0.51102 +0.351967 -0.890665 0.120717 -0.0687964 0.986809 -0.934492 0.887835 -0.113176 +-0.70413 -0.629716 -0.939221 0.0804935 0.644462 -0.4129 0.67533 0.209738 +0.521936 -0.787522 0.892707 0.670515 0.461472 -0.904075 -0.107031 -0.940442 +-0.98956 -0.603699 -0.31856 0.276867 -0.317106 0.348596 0.773518 -0.154266 +-0.8903 -0.884725 -0.868828 0.188125 -0.300871 0.530784 0.131985 0.105447 +-0.144031 0.304302 -0.985802 -0.384027 0.37946 -0.332699 0.517149 -0.455308 +-0.119757 0.677374 0.925894 -0.929066 0.786887 0.960437 0.788471 0.715683 +0.958458 0.568038 0.222981 -0.817089 0.939071 0.249736 0.320322 -0.487564 +0.703385 -0.393002 -0.688667 -0.903855 -0.971126 0.712135 -0.668344 -0.580313 +0.0283297 0.392803 0.873114 -0.787694 0.557397 0.0225545 -0.0324734 -0.131235 +0.712484 0.1031 -0.0644722 0.895062 -0.617746 0.389033 0.587848 0.61443 +0.957954 0.323512 -0.915179 0.958706 0.502953 0.183585 0.794429 0.447973 +0.0684171 -0.859266 0.199364 -0.00677877 0.775452 0.959018 0.815097 0.76503 +0.032451 -0.0488488 0.305582 0.864427 0.495644 -0.345989 -0.563957 0.604405 +-0.465654 -0.40132 0.284185 -0.36625 -0.455115 -0.558626 0.399088 -0.804661 +0.148858 -0.55583 0.745466 0.348599 -0.984103 -0.306385 -0.147229 0.0302473 +-0.199802 0.493632 -0.478577 0.443527 0.759946 0.600887 0.00843066 0.0412703 +-0.799267 0.333701 -0.38604 0.635409 0.281086 0.211121 0.718651 -0.512993 +0.950882 -0.173535 0.495208 -0.507966 0.885123 -0.79731 -0.334338 -0.844913 +0.676898 0.686809 0.673109 0.608432 -0.262318 0.897646 0.547983 0.742935 +-0.839834 0.51153 0.304554 -0.534904 -0.665482 -0.105767 0.447829 -0.395065 +0.24932 -0.959949 -0.845937 0.790385 -0.36664 -0.0685263 -0.763679 -0.341931 +0.770678 0.104919 0.67285 -0.475033 -0.281144 -0.535127 -0.104696 -0.167921 +0.406637 -0.400048 -0.529971 0.945332 -0.716183 0.554581 -0.858926 0.530261 +-0.130121 0.45542 -0.799044 -0.514247 -0.885435 0.0658838 -0.112793 0.922899 +-0.632733 -0.839631 0.657114 -0.0595196 0.85263 -0.483647 -0.588631 0.434639 +-0.763286 0.829716 -0.774419 -0.135791 -0.226617 -0.971946 0.450276 -0.748912 +-0.829521 -0.219481 0.00672118 -0.794178 -0.568094 0.184311 0.603022 -0.0555631 +-0.818178 -0.904793 0.518201 -0.14007 -0.86115 0.624831 -0.536512 0.268663 +0.747958 -0.978679 0.647341 0.187085 0.788826 0.944593 0.60351 0.378025 +0.896682 0.152103 -0.640573 -0.916862 0.809931 -0.718852 0.746217 -0.288638 +0.132065 0.853987 -0.946194 0.178117 -0.234832 -0.787313 0.724442 -0.804484 +0.841424 -0.935334 -0.219099 0.853492 -0.425391 -0.666394 0.804367 0.450022 +-0.0559757 0.89209 -0.666535 -0.27427 -0.950254 0.386653 0.669156 -0.469244 +-0.639528 0.746106 0.900671 0.298351 -0.558404 0.187357 -0.474758 0.856625 +0.943668 0.272076 -0.47407 0.246344 0.502997 -0.183403 0.849963 0.0174011 +0.677586 -0.502934 0.454683 0.605003 -0.92176 -0.616544 0.487946 0.397674 +-0.551589 0.609696 -0.489814 0.925535 -0.413836 -0.967745 -0.76 0.00678453 +-0.836005 -0.798824 0.893406 -0.748916 -0.439515 -0.106358 -0.455938 0.830748 +0.0613894 -0.367138 -0.901316 0.340187 -0.329082 0.448266 -0.0103162 -0.510146 +-0.925967 -0.348735 -0.617499 -0.466985 0.0377553 0.305652 -0.373743 -0.563813 +-0.215901 0.971575 -0.387115 -0.552134 -0.335928 0.891275 0.107977 -0.353687 +0.346958 0.0134376 0.972283 -0.0779874 0.960555 0.44081 0.313072 -0.20081 +0.50655 0.966124 0.531481 0.536602 -0.0962096 -0.645679 -0.748907 -0.114082 +-0.730333 -0.309869 -0.558686 -0.33768 0.27867 0.701115 0.105935 -0.930818 +0.470554 0.381202 0.607257 -0.267815 0.566203 0.409737 0.553764 0.258616 +-0.367004 0.738815 -0.0804347 -0.0459079 0.721225 -0.582668 0.622424 -0.292641 +0.545229 0.166704 -0.202632 -0.481201 -0.878181 0.0831667 0.758087 0.259266 +0.754528 0.474816 0.00861407 0.406863 -0.604234 -0.435677 -0.54182 0.709244 +-0.913399 -0.364028 0.572926 0.307614 -0.425578 -0.963852 -0.643343 0.261065 +-0.603916 0.909204 0.196812 -0.351592 -0.445108 0.398432 0.616995 0.623206 +0.850149 -0.0909519 -0.29138 -0.602343 -0.669736 -0.629829 0.172692 -0.473004 +0.248849 0.0156421 0.17716 0.0974834 0.152069 0.802682 0.543331 -0.506565 +0.729818 0.122228 -0.0971823 -0.244587 0.415095 0.977121 0.210393 0.0410674 +0.879973 0.135216 -0.704358 -0.917243 -0.840452 0.276222 0.93666 -0.692741 +-0.933786 0.664264 0.173459 0.375414 -0.8766 0.788061 -0.399528 -0.0286686 +-0.642726 -0.618546 -0.537998 0.641385 -0.292247 -0.0933617 0.873355 -0.487486 +0.183198 0.671922 0.838543 0.191269 -0.377824 0.967969 0.0460472 -0.386277 +-0.0989322 -0.614006 -0.42701 -0.636265 0.0925185 -0.539117 0.354915 -0.504088 +0.167572 0.457611 0.54502 0.0310795 0.519358 0.275429 0.916363 0.881313 +-0.0726403 0.414511 -0.716541 -0.391977 0.690113 0.716706 0.281276 -0.842286 +0.287011 -0.432998 0.781827 -0.166975 -0.194825 0.455087 -0.760107 -0.836116 +-0.170192 0.876408 -0.834564 -0.960086 -0.952722 0.52316 0.0729177 0.501935 +-0.662812 0.875393 0.843351 -0.187418 0.773837 0.735443 -0.717014 0.553597 +-0.157824 -0.159628 -0.419416 0.15577 -0.812527 0.360696 -0.217718 0.0164864 +-0.740506 -0.103478 0.0169908 0.419559 0.821638 0.62033 0.65779 -0.343858 +0.452492 0.2548 -0.795943 -0.694096 -0.52172 -0.544809 0.531331 -0.960923 +-0.657693 -0.882995 0.0375964 0.22507 -0.920386 0.330874 -0.615008 0.585572 +0.205102 0.581671 0.789423 -0.845662 -0.209172 0.564361 0.667472 0.578153 +0.0689673 -0.0126824 0.241653 -0.327017 -0.512004 -0.449905 0.164354 -0.211784 +-0.297128 0.886296 0.348349 0.633904 0.388161 -0.335727 -0.842603 -0.572757 +0.283042 0.113655 -0.763819 0.566521 -0.804337 0.790946 -0.422361 0.066902 +0.54913 0.123015 0.829041 -0.391733 0.39943 -0.636955 -0.695998 0.0905171 +0.175117 0.606036 -0.673416 0.249112 -0.496315 -0.167191 -0.091044 0.513134 +0.877112 0.396982 0.685741 -0.792368 -0.235322 0.618024 -0.137511 0.12308 +0.490078 0.0671532 0.162762 -0.420424 -0.0875615 -0.199071 -0.783905 -0.241668 +0.64501 0.304917 0.418164 -0.212675 0.521454 0.708504 -0.0821817 0.0594873 +-0.820473 0.0948298 -0.886739 -0.550107 -0.652213 -0.819744 -0.0997843 0.353467 +0.306612 -0.39133 -0.348201 0.448639 -0.789163 0.0186648 0.295967 0.914176 +-0.533277 -0.0339372 0.104407 0.324413 0.212383 -0.878661 0.209887 0.306651 +-0.881642 0.25031 -0.415166 0.855903 0.214193 0.025399 -0.22203 0.571824 +0.71636 0.396948 -0.892458 0.858979 0.904456 -0.624258 -0.997935 -0.209621 +-0.302727 0.358524 -0.281995 -0.245178 0.00841442 -0.11592 -0.774032 0.561263 +0.948927 0.16215 -0.390985 -0.424176 0.379584 0.206267 -0.286016 0.558752 +-0.47546 0.6948 -0.971628 -0.3329 0.464283 0.822603 0.590005 -0.128156 +-0.265066 -0.712716 0.355359 -0.210927 0.86857 -0.405269 0.0154551 -0.0524003 +-0.0342695 0.785197 -0.12004 -0.619969 0.0305008 -0.323594 -0.0334806 0.0765711 +0.234872 -0.665406 -0.677282 0.392269 0.739396 -0.241054 0.167588 0.774975 +-0.764842 -0.122105 0.85323 -0.707777 -0.631841 0.436807 -0.160758 -0.0016953 +0.567043 0.614199 -0.0145614 0.142769 -0.377262 -0.237247 0.461966 0.690182 +0.0134212 -0.0299085 0.0534913 -0.374947 -0.627306 -0.356386 0.476337 -0.891982 +0.468098 -0.574631 -0.456699 -0.918161 0.208839 0.566924 -0.115736 0.869802 +0.0793177 0.490222 -0.185521 0.189923 -0.0943652 0.562403 -0.410622 -0.712502 +-0.951183 -0.12032 0.776452 0.529138 -0.84233 0.972017 -0.605747 -0.0206698 +-0.256617 0.729897 -0.727987 -0.526322 -0.0425027 0.168154 0.0810821 -0.540821 +-0.548331 0.853898 -0.504343 -0.0463173 -0.0713747 -0.314358 0.606325 -0.419281 +0.892865 -0.604713 0.574714 0.125193 0.486 -0.727891 0.576456 0.967208 +0.568343 -0.982626 0.312736 -0.681818 0.317003 -0.121853 -0.0536441 0.860819 +0.826723 0.318229 -0.736094 0.0134885 0.965055 -0.247302 -0.688274 0.482682 +-0.0292887 -0.358691 0.261033 -0.0598555 -0.876009 -0.557208 0.744197 0.276602 +-0.604998 0.332384 -0.983015 -0.304436 0.923102 0.749504 -0.757294 -0.377615 +-0.0648532 0.922708 -0.930013 -0.752686 -0.744714 0.0273013 0.0490791 0.857023 +-0.424368 0.826781 -0.879546 0.311477 0.700447 0.160418 -0.998176 -0.242925 +-0.209553 -0.192164 -0.442874 -0.816464 -0.989184 0.332274 -0.790085 0.54333 +-0.874551 0.0181679 -0.516911 -0.994742 -0.102463 0.348485 -0.0252379 -0.938111 +-0.640902 0.18803 0.64721 0.0115315 0.787931 -0.321811 0.39656 -0.803182 +0.0414234 -0.690448 -0.0515842 0.470013 0.446467 -0.109847 -0.43762 -0.888103 +-0.244172 -0.810811 -0.463355 0.508295 -0.954523 0.752755 0.819407 0.336853 +-0.645397 -0.708511 -0.269597 0.0576244 -0.907121 -0.908286 0.840547 0.271441 +0.213379 0.204338 -0.224331 -0.470491 -0.747464 0.586295 -0.193571 0.727277 +0.667593 0.846802 -0.92505 -0.967607 -0.21128 -0.20069 0.8426 -0.912126 +-0.094351 0.754726 0.692247 -0.8727 -0.435482 0.729205 0.329841 -0.239777 +0.482003 0.540016 0.400182 0.584533 0.594352 -0.224742 -0.99018 -0.365495 +-0.123584 -0.547139 0.170261 0.704244 0.704143 -0.46706 0.128778 0.543696 +-0.209179 -0.400937 -0.458475 -0.338609 -0.924137 -0.130142 -0.384185 -0.267361 +0.394728 -0.300397 0.502588 -5.66998e-05 -0.754345 0.733919 -0.225551 -0.225447 +0.798904 0.313307 0.885807 -0.804789 0.841102 -0.17677 0.665423 0.934713 +0.133434 0.862782 0.706749 0.743111 0.803831 -0.405349 -0.680002 -0.65964 +0.709679 -0.578185 0.742372 0.913493 0.750212 -0.81846 0.817477 0.779722 +-0.646891 0.480178 -0.833644 -0.297043 -0.855037 -0.323747 0.196813 0.841262 +0.27306 -0.867964 -0.36413 -0.527862 0.899337 -0.651062 -0.0152727 0.510921 +-0.62046 -0.860057 -0.603597 -0.497356 -0.85335 -0.667626 0.981406 0.663257 +-0.236741 0.87578 -0.635824 -0.0714842 -0.577548 0.248457 -0.314388 -0.774441 +0.0308561 0.877784 0.882683 0.599996 0.69647 0.0172356 0.016956 0.925496 +0.888874 0.411776 0.660213 -0.981331 -0.861061 -0.283163 -0.36206 0.218147 +0.171534 0.600916 0.34933 0.158056 -0.214328 0.354213 0.797588 0.630514 +0.766312 0.484621 -0.592262 -0.498101 0.976096 0.702271 -0.765422 0.709424 +0.0999393 -0.768355 -0.480068 0.266339 0.133088 -0.829619 -0.164323 0.110434 +-0.300064 -0.235681 0.341673 -0.241589 -0.342955 0.0950661 -0.820896 0.304435 +-0.501493 0.746096 0.728828 0.483865 -0.471456 0.0280791 -0.723644 0.860073 +0.142364 -0.795489 -0.708879 -0.317509 -0.201062 0.923447 0.367666 0.0252843 +-0.476622 -0.347662 -0.855173 0.00143293 0.141859 -0.303242 0.358551 -0.0809706 +0.932145 -0.18086 -0.978378 0.979316 -0.338207 -0.365419 0.328332 0.396093 +0.964991 -0.140835 0.301633 -0.0695005 0.0705005 -0.957443 -0.804295 0.601779 +0.830231 -0.879194 -0.156087 -0.697821 -0.700792 0.601835 0.727405 -0.282395 +-0.931165 0.331703 0.789664 0.693819 0.678749 0.449265 -0.955396 0.298338 +0.176182 0.87002 -0.446887 0.657141 0.773813 -0.883434 0.938524 -0.479869 +-0.249151 -0.725152 0.266159 -0.0654869 0.0862028 0.763146 0.900775 -0.581974 +0.845321 -0.0729742 -0.831248 -0.903661 0.324603 0.339655 0.815701 -0.0998833 +-0.559835 -0.851241 -0.663833 -0.906784 -0.433688 0.176868 -0.390089 -0.478584 +0.144606 0.369814 0.0372999 0.412716 0.494503 -0.82662 -0.572932 -0.174767 +0.0859566 0.925116 -0.285663 0.508513 -0.411593 -0.715404 -0.373222 -0.460061 +0.551503 0.667559 -0.436541 0.0951149 -0.752639 0.931708 0.546945 0.359672 +-0.212842 -0.298282 0.0607391 0.030647 0.401654 -0.96886 -0.5564 -0.229788 +-0.924008 -0.811365 0.639315 0.26512 -0.769191 -0.902165 -0.251788 0.848436 +0.808648 0.805774 -0.472114 0.705025 0.55845 0.17971 0.289988 -0.307662 +-0.361655 -0.759789 0.989953 -0.0391764 -0.051465 0.900116 -0.393512 0.440551 +0.0763763 0.489862 -0.666779 0.562786 0.291706 0.170673 0.787105 -0.289259 +-0.257504 -0.43626 0.792029 0.274716 -0.617916 -0.654418 -0.958838 0.0568095 +0.616259 -0.914804 -0.0190587 -0.704978 -0.242336 -0.973583 0.496185 -0.615579 +0.920462 0.866854 -0.829198 -0.136917 -0.492731 -0.922408 -0.951137 0.727202 +0.00348854 -0.391947 -0.231838 0.493274 -0.996519 -0.260075 0.771868 0.870124 +0.830233 -0.925175 0.996539 0.826752 -0.418671 0.417069 -0.828469 0.228377 +0.821491 -0.49821 -0.163306 -0.818344 -0.0498616 -0.170444 0.0328762 -0.731516 +0.667227 -0.332722 0.953548 -0.405401 0.620377 -0.939604 -0.755965 -0.0372982 +-0.092582 0.692445 0.944956 -0.20967 -0.941755 0.0343647 0.968934 -0.566135 +-0.141614 0.356234 -0.131954 -0.51963 -0.0972306 -0.995663 0.184744 0.135003 +0.46079 -0.0962763 0.666713 -0.13341 0.380956 -0.00794642 -0.61904 0.328261 +0.430556 -0.112199 -0.77223 -0.711065 0.352103 -0.057003 -0.120917 -0.418046 +0.703284 -0.343972 -0.934621 0.18446 0.194894 0.0768015 0.748957 0.893926 +-0.6781 0.591317 -0.876744 0.341167 0.840744 0.479815 -0.998961 -0.668906 +-0.564083 -0.120834 0.356981 0.989786 0.227531 0.680774 0.978001 0.715466 +-0.414349 0.160306 -0.100453 -0.19362 0.706187 -0.221035 -0.632907 -0.632393 +0.747987 0.955967 0.396999 -0.967516 0.563976 0.781441 0.872177 0.211161 +-0.48628 0.343442 0.924508 -0.473322 -0.105208 0.954776 0.412598 -0.276284 +0.641808 0.664805 0.422078 0.804798 0.624479 0.193849 0.463262 0.674536 +0.940558 0.876727 0.357005 0.757128 0.312283 -0.967821 0.528998 0.677824 +-0.583199 0.316136 0.0934153 0.175373 0.363483 0.264127 -0.98363 -0.228808 +0.311756 -0.54244 -0.593852 -0.66438 0.342554 0.00448297 0.391012 0.501337 +0.82219 0.114693 0.857205 -0.113997 -0.80673 0.12687 -0.0537883 -0.877063 +-0.128875 -0.624697 -0.98395 -0.926508 0.664611 0.729306 -0.827396 -0.359327 +-0.24602 0.52598 -0.0437766 0.574809 -0.993097 0.727501 -0.316276 -0.348622 +-0.285874 0.490093 0.125751 -0.393087 -0.714803 0.434096 -0.411678 -0.253062 +0.141284 -0.218594 -0.290909 -0.0756113 0.319561 0.33128 -0.869283 0.475909 +-0.933981 0.481987 -0.118591 -0.611428 0.796587 0.654279 -0.450943 0.225717 +0.584282 0.0561487 -0.551652 -0.706212 0.782172 0.457304 0.826883 -0.294561 +-0.00654909 -0.0238666 -0.606697 0.171336 0.522634 0.414978 0.67485 0.159151 +-0.66459 0.154426 0.60672 0.336923 0.785555 -0.737444 0.917125 0.0064614 +-0.577299 -0.834931 -0.358861 -0.765279 0.834001 0.471985 -0.160271 0.0363573 +-0.290718 0.186945 -0.0422565 0.671869 -0.0464416 -0.527829 0.179027 -0.094191 +0.823146 -0.0989166 -0.185364 -0.412318 0.105894 -0.31185 0.76524 -0.468312 +-0.537756 0.944155 -0.113883 -0.636604 -0.575465 -0.00326705 0.314706 -0.507163 +0.51412 0.521641 0.938342 -0.499935 -0.205773 -0.495695 -0.160574 0.184923 +-0.742075 -0.842996 -0.808609 -0.690305 -0.676926 -0.343345 0.445905 0.486126 +-0.0634245 -0.207896 -0.16498 -0.925668 0.582142 -0.666177 -0.841095 -0.453497 +-0.154675 0.622874 0.669864 0.00453511 -0.958206 -0.702163 0.237264 -0.511588 +0.653803 -0.441264 -0.0604796 -0.602637 0.167087 0.128361 0.389147 0.271361 +0.574152 -0.275057 -0.883065 0.195813 0.643444 -0.930003 -0.904643 -0.609023 +-0.868801 0.112228 0.697994 0.645571 -0.63435 0.783179 0.732564 -0.934264 +0.814669 -0.194712 0.150047 0.947009 -0.826012 0.896548 0.781659 -0.189373 +-0.504756 0.358911 0.0557541 -0.482806 0.8569 -0.21997 0.885924 -0.908434 +0.6879 0.0709806 0.387706 -0.321125 0.19731 0.115749 0.354793 0.495713 +0.295946 0.44123 -0.339491 0.825531 0.271526 0.686722 0.45988 0.471292 +-0.70877 0.656621 -0.799589 -0.285575 -0.191575 -0.647724 -0.611062 -0.236987 +-0.933419 0.967166 0.688633 -0.0451107 -0.608065 0.0354303 0.234907 -0.335263 +0.0183814 0.15336 -0.797535 0.303284 0.0978846 0.310774 -0.184561 -0.207435 +-0.378662 0.802281 0.523453 -0.45621 -0.224442 -0.0527786 0.28046 -0.85757 +-0.563993 0.720886 0.745362 0.936508 0.105535 -0.40803 -0.673072 -0.509342 +-0.558965 -0.534701 -0.949386 -0.497307 -0.845344 0.952257 0.774218 -0.784747 +-0.226164 -0.353859 -0.0276497 -0.138868 0.893743 0.263379 -0.742459 -0.73528 +0.920107 0.257864 0.398545 0.143756 0.760314 0.455289 -0.501466 -0.596911 +0.408561 -0.727019 0.912709 0.533152 0.329288 -0.348257 0.965502 0.34198 +-0.411456 0.652547 -0.299001 -0.896395 -0.656623 0.0781634 0.380077 0.914864 +-0.326664 -0.131558 -0.491358 0.832212 -0.468633 0.576658 0.901296 -0.366231 +-0.270571 0.3933 -0.0355827 0.864757 -0.149494 0.185708 -0.608046 0.415472 +0.299774 0.282516 -0.483964 -0.841935 -0.483778 0.425422 0.446914 0.480453 +0.529066 -0.362368 0.247862 0.889101 0.248018 -0.426146 -0.93691 0.0142508 +0.394014 -0.992437 -0.0965593 0.425013 -0.584837 -0.34293 -0.121579 -0.240481 +-0.381852 0.980143 0.557916 -0.207325 -0.265601 -0.0745425 0.916415 0.0431458 +0.787258 0.27153 0.185874 -0.183988 -0.32713 0.817681 0.0656985 0.606756 +0.0447763 -0.0805468 0.94682 -0.166576 0.578229 0.739584 0.698273 -0.14163 +0.488017 0.857431 0.875631 0.564616 -0.344284 -0.933559 -0.704433 0.450133 +0.707089 -0.458679 -0.01303 -0.274325 -0.427044 -0.392301 -0.925996 -0.948434 +-0.783134 0.910236 -0.650189 -0.95997 -0.24753 -0.219915 -0.406262 0.607386 +0.812164 0.691252 0.808511 -0.230207 -0.00842888 -0.764701 -0.479814 -0.157139 +-0.416275 0.394686 0.367218 -0.966156 0.582522 -0.614079 0.954274 0.473963 +-0.549753 -0.00547251 -0.36182 -0.712263 0.530485 0.621769 -0.539101 -0.271036 +-0.618533 -0.218757 0.155714 0.422001 -0.21221 0.562021 0.739202 0.769531 +-0.0498263 -0.0162003 0.267082 0.775233 0.91126 0.749903 0.735397 0.724286 +0.81932 -0.843928 0.529529 0.259539 -0.184566 -0.245879 0.905974 -0.856265 +-0.903726 -0.248198 -0.770753 0.474829 -0.952649 0.0330828 -0.556191 0.956247 +-0.624436 0.47964 0.131432 -0.168345 -0.477246 -0.0911477 0.778222 0.135703 +0.735938 0.658457 0.206606 0.421425 0.385614 -0.812726 -0.306028 -0.419352 +0.0394456 0.847125 0.668017 0.110562 0.337858 0.183032 -0.551017 0.783097 +-0.704871 -0.480713 0.646156 0.16095 -0.765813 0.735973 0.625862 0.729738 +0.18318 0.0945581 0.55991 0.628873 -0.960968 -0.329497 -0.809604 -0.0621605 +0.7643 0.65972 -0.103192 0.023295 0.957597 0.835945 -0.19354 -0.298343 +0.601999 -0.650217 0.787204 -0.0923997 -0.043043 -0.502477 0.819477 0.91156 +-0.80225 0.629247 0.485568 0.884574 0.661799 -0.0913704 -0.717703 0.0780696 +0.852178 -0.55987 -0.782186 0.392126 -0.165152 -0.364592 -0.571183 0.854628 +-0.993015 -0.884956 -0.876392 0.303986 -0.653503 -0.934443 0.30092 -0.239616 +-0.373432 -0.994714 -0.0860847 -0.127951 -0.226855 0.898356 -0.118759 -0.15347 +0.753139 0.587493 -0.76116 0.800912 -0.0664921 0.717756 0.546394 -0.818198 +-0.848135 0.920414 0.089797 -0.10953 0.487352 -0.0413274 0.160116 -0.922569 +0.620857 0.913376 -0.5371 -0.888848 -0.547893 0.965342 -0.0102596 0.642646 +0.228929 -0.383441 0.616893 -0.215024 -0.110073 0.0767176 0.664356 0.051058 +-0.141747 -0.351581 0.631057 -0.134139 -0.873394 -0.342096 -0.370005 0.686414 +-0.476121 0.953787 0.846469 -0.970234 -0.908107 0.871893 0.278422 0.96444 +0.154088 -0.856321 0.299098 0.465107 -0.982717 0.729739 -0.330896 -0.523069 +-0.647891 0.518537 0.265766 -0.8496 -0.365555 0.250577 -0.860084 0.965434 +0.180901 0.839412 0.0102612 0.519798 0.433035 0.525283 -0.227114 -0.787815 +-0.623962 0.745481 0.822129 0.189897 0.473787 -0.145218 0.685099 0.933544 +-0.990604 0.119522 0.22156 -0.116173 0.727771 0.229791 -0.636448 -0.977407 +0.347856 -0.82244 0.565478 0.633358 0.69042 -0.572761 0.816634 0.921053 +0.50877 0.935481 -0.297248 -0.295278 0.475637 0.833435 0.390233 -0.901122 +-0.604076 0.291104 -0.723547 0.783539 -0.735368 0.977447 -0.000195883 -0.315096 +-0.0472228 0.48099 -0.989383 -0.83706 0.278294 0.0993613 0.134936 0.675335 +0.228965 -0.915804 -0.138968 -0.802494 -0.563767 0.179447 0.246339 -0.156208 +-0.557728 -0.00987051 0.240962 0.789866 0.732192 0.71669 0.367024 -0.738044 +-0.258237 -0.348335 0.323778 0.0357073 -0.0524682 0.558493 -0.33209 0.720644 +-0.526678 0.688981 0.205941 0.279382 -0.455743 0.175003 0.106483 0.472977 +0.604514 0.24659 0.850118 0.916246 0.55859 -0.68052 -0.794915 0.0871143 +0.440163 0.240024 -0.584987 -0.106263 0.255702 0.451313 0.705061 -0.13135 +0.282462 0.612703 0.712391 0.247212 0.924635 -0.924864 -0.0714029 -0.424631 +0.121823 -0.862768 -0.774174 -0.426802 -0.55929 0.0617382 0.204368 0.286078 +0.509855 -0.190018 0.16875 -0.285439 -0.949994 -0.643695 0.285811 -0.855972 +-0.381486 -0.207199 0.0960123 -0.181356 0.992789 0.756944 0.69183 0.118718 +-0.783188 -0.946586 0.0521069 -0.127942 -0.0577861 0.332436 0.0785184 -0.536647 +0.923994 -0.483284 0.333174 0.0843593 0.4227 -0.675179 0.0593178 0.751924 +0.44757 0.469096 -0.817663 -0.614827 -0.149585 0.596369 -0.189046 -0.0777454 +0.273003 0.68871 -0.148789 -0.328606 -0.335955 -0.67944 0.412775 0.769597 +-0.731963 0.346327 0.517231 0.287071 0.152039 0.428483 -0.651829 0.744116 +0.635242 -0.609571 -0.542329 -0.851562 -0.961134 0.389616 -0.376796 -0.126802 +-0.0180099 -0.331095 0.251956 -0.914776 -0.903607 -0.461179 -0.675812 -0.544263 +0.562364 0.401615 -0.25766 -0.00929416 0.265503 -0.836285 0.946206 -0.0850661 +0.669014 0.744431 -0.473584 0.476114 0.125088 0.6667 0.592061 0.475967 +-0.584397 0.535709 0.853683 0.269452 0.25484 0.0672744 0.179976 -0.013398 +0.867427 -0.883255 -0.470908 0.229988 0.85815 -0.292816 -0.311314 -0.0952967 +0.772391 0.71723 -0.298444 0.860807 0.905866 0.801083 -0.257112 0.865618 +0.91475 0.35208 0.739183 0.5542 0.885793 -0.762854 -0.114436 -0.390397 +-0.00238038 0.13775 -0.176457 0.8346 -0.817934 -0.676072 -0.792165 -0.534726 +0.545058 -0.495617 -0.517554 -0.996651 -0.812834 0.601195 -0.0579808 0.931626 +0.702873 0.864469 -0.0558588 0.84158 0.220361 -0.911474 0.381343 0.933388 +0.340707 0.42134 0.98726 -0.843155 0.852878 0.591611 -0.259672 0.0175789 +-0.577658 -0.876924 0.00399223 -0.193853 0.203345 -0.276663 -0.502468 -0.180009 +0.0177999 0.00340674 0.056276 -0.198192 -0.312252 0.633585 0.598034 0.197541 +-0.159061 0.800112 0.784389 0.0723555 0.0359479 0.759342 -0.34009 0.905375 +0.338589 -0.310562 0.883088 0.753153 -0.750019 0.0217613 0.0432865 0.767058 +-0.657262 0.101825 0.149319 0.509225 -0.30078 0.00550695 0.14276 0.927615 +0.893967 0.256508 0.246723 -0.684237 0.140062 0.280849 -0.0466129 -0.328157 +-0.90317 0.446809 0.405565 0.895497 0.106392 -0.597579 0.898757 -0.364794 +0.581448 -0.313556 -0.374284 0.221787 -0.444622 -0.0981259 0.791659 0.714229 +0.499203 -0.985318 -0.950079 -0.433976 -0.459 -0.80906 -0.319202 -0.563101 +0.333075 -0.854522 -0.378698 0.564525 0.0147096 0.75404 -0.0901849 -0.723399 +-0.892629 0.700876 -0.76047 -0.698236 0.721126 0.645856 -0.123505 -0.711135 +-0.740339 -0.796952 0.22256 -0.652009 0.454916 -0.173672 0.647484 0.962477 +-0.46539 0.652972 -0.668187 -0.409683 -0.253592 -0.808649 0.0459738 0.346145 +-0.131851 0.481449 0.274155 0.327115 0.538323 -0.855945 0.376928 -0.464248 +-0.311477 0.60781 0.0647915 0.0349144 -0.906979 -0.221873 -0.293571 -0.0705909 +0.255457 0.393087 -0.200897 0.724084 0.752364 0.359745 -0.0612326 -0.343136 +-0.959241 0.204038 -0.877381 0.183352 0.936718 0.669003 -0.822116 -0.688967 +-0.0105198 0.11415 0.676121 -0.0160809 0.207737 -0.899675 -0.742513 -0.600623 +0.139435 0.192258 0.0616812 0.137983 0.817877 -0.947131 0.941711 -0.14502 +-0.408732 0.837576 -0.80274 -0.183649 -0.0150065 -0.0972932 -0.0893301 0.570324 +-0.855058 0.000896283 0.963632 0.269734 0.669349 0.869792 -0.22901 -0.380569 +0.244925 0.665405 -0.546693 -0.744555 0.781028 0.257806 -0.26532 -0.776705 +0.167019 0.945111 -0.267772 0.527467 0.694969 -0.387071 0.87623 -0.813872 +-0.174104 0.503103 0.313091 0.709993 0.763812 -0.642976 0.546306 -0.197767 +0.24718 0.855926 -0.99392 0.185421 -0.080989 -0.193255 -0.13245 0.817247 +0.538442 -0.806945 0.38069 0.512923 -0.704145 0.897306 0.180391 -0.908193 +0.522868 0.0509071 0.604966 -0.70499 -0.338617 -0.160258 0.606294 -0.272594 +-0.105343 0.71768 0.622049 -0.802764 -0.683397 -0.266077 0.998037 -0.0913231 +-0.435137 0.938807 0.894503 -0.454815 0.149053 -0.924636 0.365601 0.186184 +0.8702 -0.621265 0.791263 0.0014155 -0.416484 0.616878 0.0670925 -0.632963 +0.0549841 0.442197 -0.878079 0.776771 0.256464 0.6385 -0.763827 -0.217914 +0.468603 0.337946 0.276022 -0.65522 0.208541 -0.0905303 -0.305621 0.852601 +0.979409 -0.51722 0.106743 0.0763094 -0.797137 -0.88488 0.504488 -0.168023 +-0.266514 0.260147 -0.416327 -0.475632 -0.121679 0.752852 -0.450344 -0.796255 +-0.666477 -0.686081 0.0558797 0.891521 -0.213814 -0.632339 0.132522 0.669797 +0.478548 0.25804 -0.73034 -0.763098 -0.7187 -0.123103 0.396324 0.747569 +0.250672 -0.0969102 0.565463 -0.269419 -0.113583 0.885196 0.221078 -0.754703 +0.809342 -0.679751 -0.952205 0.869309 -0.144359 0.203847 -0.39146 0.626885 +0.126664 0.689631 -0.990055 0.102341 -0.548834 -0.436249 0.638882 0.257144 +0.679681 -0.662895 -0.682011 0.908557 -0.286349 0.502272 0.0131963 0.458774 +0.956644 0.585121 0.123999 -0.528068 0.018217 -0.109967 -0.49207 -0.963983 +0.661237 -0.437022 0.285641 -0.542122 0.34798 0.483353 0.200802 -0.575863 +-0.293233 0.101943 0.776871 -0.716736 0.339757 0.348393 -0.877006 0.0756994 +-0.192361 -0.429056 0.698857 0.0690558 0.571109 0.689003 0.558945 -0.20103 +0.304939 -0.75176 -0.234605 -0.531447 0.962697 -0.81432 0.287845 0.0611473 +0.0303345 0.50117 0.256422 0.390316 -0.943237 0.880831 0.812167 -0.918173 +-0.460962 -0.456693 -0.256297 0.400444 -0.0476327 0.112099 0.933638 -0.0833243 +0.0664529 -0.490261 0.818026 -0.579211 -0.405074 -0.293812 -0.835751 0.818004 +0.589462 0.752656 -0.851615 0.598916 -0.991793 0.59601 -0.387809 -0.234004 +0.312491 -0.744039 -0.393213 0.12193 -0.205172 0.964511 -0.396016 0.823664 +0.241052 -0.527564 0.757131 -0.0885936 -0.440873 -0.0562625 -0.108217 0.997197 +-0.348426 0.939195 0.764351 0.111117 -0.509492 0.794485 0.547293 0.811958 +0.265172 -0.726696 -0.646237 0.852409 -0.752579 -0.529954 -0.892903 0.744079 +0.991331 -0.968149 0.582996 -0.799841 0.130517 -0.0319984 -0.369265 0.661045 +0.905755 -0.101298 -0.520091 0.470791 0.827143 0.148135 -0.843935 -0.00181772 +0.517024 -0.391846 0.360668 -0.288355 0.40142 0.962982 0.370957 -0.375467 +-0.639948 -0.908811 0.925173 -0.258794 -0.986795 -0.958077 -0.771582 0.833089 +0.323493 0.219279 0.202369 -0.662371 0.216746 -0.212691 -0.595568 -0.237929 +-0.253571 -0.302909 0.00829868 0.593948 -0.661691 0.252085 0.290047 0.340127 +-0.0323342 -0.0986575 0.471169 0.606045 0.472742 0.856805 0.478151 0.262277 +-0.823422 -0.999551 -0.701375 -0.628034 0.810717 0.478998 -0.439586 -0.402394 +-0.0149096 0.462762 -0.218376 -0.128703 0.583629 0.540675 -0.950508 -0.945796 +0.196795 -0.681972 0.199658 -0.0528746 0.852323 -0.781498 -0.180707 0.928392 +-0.0355948 0.245186 0.941033 -0.930629 -0.607334 -0.173449 0.189164 -0.794443 +0.211917 0.959464 0.346092 -0.150506 -0.943057 -0.513279 0.495248 -0.598726 +-0.706505 -0.22289 0.798774 0.579023 -0.662528 -0.703043 0.466128 -0.976256 +-0.0865377 0.920782 -0.313851 -0.6782 0.499931 -0.288394 0.515319 -0.955472 +0.10862 0.255546 0.442373 -0.830397 0.936627 -0.750215 0.594367 0.814511 +0.106111 -0.645144 -0.159128 0.0610745 0.434246 -0.577104 0.634405 -0.660151 +0.135706 0.975158 0.0848757 -0.221776 -0.48962 -0.581868 -0.732632 -0.269339 +-0.326039 -0.608257 -0.764748 0.246634 0.743877 -0.427327 0.341363 -0.534626 +0.213119 -0.414106 -0.453311 0.91909 -0.195049 0.585568 0.8036 -0.580623 +-0.289366 -0.0875174 0.116103 -0.715581 0.49478 0.27594 -0.896851 0.0897983 +-0.579688 0.423732 0.150584 -0.222251 0.913455 0.00843966 -0.696864 0.616172 +-0.625069 0.3232 -0.658514 -0.383288 0.304153 -0.260416 0.995483 -0.192514 +0.608195 -0.121528 -0.500296 -0.120621 0.63437 -0.15617 0.555762 -0.503402 +0.56234 0.920326 -0.655406 0.556227 -0.41102 -0.122466 -0.503406 0.212939 +0.539643 -0.374674 -0.254096 -0.85075 0.637897 0.751731 -0.764317 -0.44745 +0.238889 -0.763641 -0.618631 0.569259 -0.882638 0.228504 0.688651 -0.433042 +0.795766 0.735439 -0.421045 0.459934 0.659391 0.574466 -0.860603 0.239672 +-0.538707 -0.409461 0.333454 0.882338 -0.189935 0.217746 -0.250618 0.249167 +-0.193758 -0.773611 0.0261545 -0.170627 0.297779 0.0666907 -0.0758429 0.291201 +-0.275088 -0.989135 0.52482 0.243216 -0.0715602 0.244083 -0.742632 0.996286 +-0.604519 0.919673 -0.731785 -0.388208 0.804942 -0.616248 -0.646098 0.343847 +-0.545362 0.521995 0.325602 -0.0462079 -0.0576605 -0.196755 -0.32192 -0.0395811 +-0.929555 -0.795383 -0.769878 0.937597 -0.572317 -0.545074 0.844056 0.440964 +0.648816 -0.0202996 -0.188947 -0.828698 -0.351649 -0.729544 0.32248 -0.814613 +-0.103441 0.916185 -0.64055 -0.374267 -0.266359 -0.691093 0.329788 -0.916444 +0.0855057 -0.663682 0.824731 0.390845 -0.430675 -0.16314 0.151002 -0.750227 +0.0942286 0.815537 0.991439 0.186997 -0.692234 0.195049 0.339283 -0.666759 +-0.481371 0.410785 0.0426052 -0.235143 0.334306 0.00832484 -0.753941 -0.660511 +0.452498 -0.864517 0.348422 0.203458 0.914861 0.406036 -0.0652651 0.0171851 +0.989941 -0.218013 0.533689 -0.297949 0.461208 0.838649 0.139251 -0.0197546 +-0.535147 -0.96055 -0.917169 0.920994 0.953047 -0.49934 -0.516132 0.806737 +0.681463 0.357143 -0.466521 -0.613908 -0.329098 -0.00111562 -0.567387 0.360135 +-0.925069 0.228135 0.43766 0.669042 -0.782738 -0.854043 0.0615008 -0.62869 +-0.964794 -0.402917 0.173154 0.263791 0.191719 0.921239 -0.726624 0.0206387 +-0.177547 0.92641 0.0257005 0.567644 0.25378 -0.317255 0.326914 0.955374 +-0.481678 -0.561897 -0.810486 -0.011175 -0.20251 0.0821776 -0.225426 0.828019 +0.319734 0.0455197 -0.650943 0.403695 -0.13328 0.0532351 -0.555217 0.483623 +-0.709679 0.359185 -0.653807 0.40202 0.791759 -0.628203 -0.775551 -0.1609 +-0.00967711 -0.278382 -0.0138448 -0.850629 -0.90164 -0.863227 -0.147169 -0.835083 +0.572079 -0.858894 -0.540333 -0.0858082 0.699962 0.676926 -0.920167 0.57445 +0.94329 -0.0960854 0.448321 -0.181658 0.622784 0.319869 -0.649597 0.526803 +-0.385788 0.81949 0.779691 0.650257 0.622329 0.177045 -0.346547 0.147598 +0.815096 -0.256498 -0.10321 0.330242 -0.253005 0.708998 0.793137 0.642095 +-0.906686 -0.465188 0.641827 -0.888046 0.948462 0.578915 -0.85646 0.415115 +0.189503 -0.231009 -0.504437 0.145098 -0.439487 0.600806 -0.111601 -0.867408 +0.960378 0.263207 -0.255279 -0.831335 -0.250174 -0.566223 0.413952 0.174853 +0.210605 0.915587 -0.95212 -0.781721 0.126896 -0.652111 0.216699 0.97238 +0.569672 -0.811293 -0.060879 0.836581 0.594458 -0.17383 0.273041 -0.579067 +0.438901 -0.738221 -0.171059 -0.515204 0.725874 -0.999104 -0.946137 0.198549 +-0.562374 -0.271372 -0.923062 0.928222 0.678984 -0.178428 -0.565382 -0.417847 +0.0589951 0.846803 -0.982789 -0.83878 -0.823362 0.382187 0.559251 -0.85245 +0.281434 0.186205 0.518949 0.579525 -0.578728 -0.313613 0.566895 0.989014 +0.385349 -0.844833 0.965636 -0.29242 -0.0320836 0.188487 -0.486568 0.609471 +0.812515 -0.0955862 -0.221162 0.293421 0.133897 -0.316121 0.17491 -0.0731692 +-0.851469 -0.629898 -0.430684 -0.959584 0.926379 0.772077 0.666256 0.0218093 +0.841021 0.897457 -0.924708 -0.420437 -0.169368 0.382381 0.976445 -0.404921 +0.283016 0.883067 -0.0180705 0.414147 0.9427 0.595938 0.167437 -0.286301 +0.604149 -0.468205 -0.225634 -0.114448 -0.144297 -0.524006 0.818634 0.736907 +-0.0805167 -0.499092 -0.198474 -0.794759 -0.02127 0.730269 0.627705 0.113475 +0.903352 -0.0252357 0.870841 -0.148878 0.213653 0.197376 -0.0670939 -0.475582 +0.629193 -0.739515 -0.198465 0.721853 -0.28623 0.970282 -0.940538 0.230602 +-0.281755 -0.773608 -0.39371 0.371552 -0.00568323 -0.252002 0.189924 0.825681 +-0.682856 -0.442933 0.782342 -0.551643 -0.301092 0.58446 -0.698666 -0.0942016 +0.381089 0.248401 -0.175918 -0.477737 -0.968251 0.0262816 0.439686 0.778217 +-0.23532 0.853349 -0.715212 0.542211 -0.917156 -0.976299 0.335364 -0.728281 +-0.879117 0.816838 0.741221 -0.304429 -0.620405 0.0690136 -0.402444 -0.87388 +0.411968 0.630165 -0.847352 0.481918 -0.217918 0.565266 -0.0122791 -0.795835 +0.0234592 0.870668 0.438645 -0.603354 0.602228 0.912884 0.688535 -0.606993 +-0.654541 0.646906 -0.29001 -0.965252 -0.275964 0.664379 -0.00808228 0.0235506 +0.0100944 0.152887 -0.304005 -0.795911 0.369806 0.43199 0.734702 0.747264 +0.446445 0.333043 0.930935 -0.694211 -0.601388 0.147061 -0.0998489 -0.93187 +0.74102 0.948449 -0.519778 -0.432951 0.665825 -0.130346 0.816236 0.886446 +-0.345459 -0.705149 -0.343866 -0.463113 -0.45104 0.215277 0.498107 0.55857 +0.172837 -0.25636 -0.727345 -0.501137 -0.900514 -0.535885 -0.673991 -0.627859 +-0.840898 -0.225774 0.937815 0.685105 0.833471 0.929874 -0.479996 -0.635103 +-0.849378 0.0766661 -0.621978 0.863871 0.711126 -0.391414 0.955512 0.760642 +0.771356 -0.257743 -0.321609 -0.492456 0.380348 -0.408613 0.94531 -0.719525 +0.40955 0.357061 -0.375443 0.129784 -0.844371 -0.693414 -0.131407 -0.417468 +0.0317405 -0.242657 0.137224 0.489892 0.0742063 0.622838 -0.536855 -0.144005 +0.838209 -0.94144 -0.396847 -0.5825 -0.00177164 -0.2439 0.698392 -0.79463 +-0.0847977 -0.28233 -0.0612805 0.964329 -0.594445 0.393508 -0.271259 0.0163982 +0.858929 -0.801424 0.817041 -0.496205 0.0243399 0.933555 -0.454056 0.738247 +0.201018 0.88881 -0.918101 -0.596397 0.76459 0.286093 0.0988432 0.979148 +-0.0484204 -0.468678 -0.126223 0.178388 0.943972 0.518688 0.982847 -0.223554 +0.0139024 -0.876422 0.180538 0.732026 0.540794 0.791659 0.488013 0.92101 +-0.573541 -0.966942 -0.345976 -0.264077 -0.354252 0.111363 -0.0798913 -0.953628 +-0.886551 -0.609552 -0.512374 -0.250939 0.0299737 -0.161727 -0.850325 0.784233 +-0.65672 -0.810091 0.720265 -0.367129 0.0745166 -0.755664 -0.716485 0.694168 +-0.224685 -0.254047 0.778674 0.478427 0.736657 -0.397138 -0.250502 -0.562233 +-0.757017 -0.24048 0.939309 -0.300419 -0.936982 0.461805 -0.281682 -0.267151 +-0.812877 -0.594169 -0.630813 0.704813 0.349527 -0.0717624 -0.158619 0.625095 +-0.79515 0.949354 0.0317152 0.417216 -0.831035 0.544364 -0.249483 0.0506718 +-0.560894 -0.155408 0.705131 -0.773296 -0.543498 0.625823 -0.555176 0.617108 +-0.335133 0.957534 -0.0844158 0.727917 0.210453 -0.875149 -0.468757 0.669607 +0.89199 0.264511 0.192064 0.697532 -0.274442 -0.595215 0.525028 -0.894577 +-0.690688 0.328797 -0.779329 -0.601845 -0.0847156 -0.27547 0.658439 -0.0165512 +0.804787 0.49006 -0.463583 0.933438 -0.961176 0.784489 0.952389 -0.725538 +-0.259765 0.0255164 -0.72265 0.43701 -0.991672 0.436923 -0.15044 -0.449078 +-0.701744 -0.596686 0.505973 -0.335453 0.715539 0.811012 -0.496299 0.0725392 +-0.488745 -0.155034 0.478185 0.900486 -0.868652 0.544572 0.179341 0.210153 +0.0340945 -0.174927 -0.655313 0.294701 0.087628 0.789314 0.541003 0.626333 +-0.759713 -0.726705 0.248022 0.837257 0.827688 0.248072 -0.275017 0.815465 +-0.446743 -0.950319 -0.664201 -0.655403 0.937845 -0.529307 0.966991 0.29705 +-0.595593 0.0431616 -0.317064 -0.515757 -0.295014 -0.179958 0.906339 -0.679403 +0.830869 -0.583668 -0.936455 -0.904527 0.145552 0.331073 0.103653 0.0448009 +-0.3558 -0.789052 0.499721 0.0566035 0.691236 -0.780277 -0.517583 -0.5023 +-0.962397 0.721471 0.958446 -0.289021 -0.729467 0.0894384 -0.940042 0.790251 +0.0555765 -0.158012 -0.481045 -0.784203 0.254878 -0.442009 -0.217187 0.149968 +0.771778 0.469362 0.295287 -0.238196 0.525796 0.841417 0.471167 -0.223849 +0.418275 -0.823732 0.675104 -0.529826 -0.217189 -0.735826 0.694598 0.0404085 +-0.737136 -0.635519 -0.816541 -0.53935 0.900962 -0.628396 0.189722 -0.779302 +-0.535194 0.53962 0.975443 0.348913 0.150123 -0.26131 0.520848 -0.730596 +0.978975 -0.0471649 0.201077 0.873904 0.288306 -0.379299 0.994282 0.549067 +-0.505652 0.258319 -0.600744 0.127497 0.314517 0.678104 0.106161 0.757435 +-0.308022 0.0824012 0.550073 -0.810625 0.665014 -0.668955 0.559599 0.957784 +-0.79884 0.670301 -0.367139 -0.891605 0.323452 0.199292 0.381776 -0.639931 +-0.256317 -0.536244 -0.325341 0.521513 -0.670016 -0.396123 -0.511194 -0.430955 +0.975777 0.14726 -0.773959 -0.511971 0.70116 -0.457476 0.601153 0.581795 +0.227825 -0.860724 0.370203 -0.0947922 -0.97406 0.0451292 -0.239343 -0.817037 +-0.470012 0.604172 -0.0921631 -0.717006 -0.0819806 0.403823 -0.139446 0.833008 +0.822054 0.227319 -0.0375581 -0.0493148 -0.260897 -0.62889 -0.370465 -0.0977058 +0.598783 0.812078 -0.0660498 0.259183 -0.506962 -0.510327 -0.942989 -0.468865 +-0.259301 0.743864 -0.218953 0.715528 0.196164 0.232278 -0.395251 0.139116 +0.791498 0.106472 0.0452309 0.629534 0.954354 0.311 -0.142481 -0.14749 +0.611771 0.875423 0.122703 -0.715426 -0.777026 -0.658008 0.488373 0.73403 +0.928229 -0.275799 0.639149 -0.615548 0.0611227 -0.805727 -0.145858 0.0201392 +0.435509 0.463819 -0.240368 -0.0902166 0.0443554 -0.478563 0.0194528 0.376945 +0.471205 -0.27338 -0.035732 -0.729623 0.722559 0.108647 -0.16389 0.613536 +0.978695 0.632154 0.679019 0.111165 -0.152862 0.364563 -0.149085 -0.0789087 +0.622036 0.794577 -0.330212 0.752239 0.0228988 0.920498 -0.711901 -0.00787498 +-0.469051 0.917879 -0.0811375 0.20919 0.557763 -0.84167 0.0757235 0.575219 +0.800904 -0.308932 0.376545 -0.384286 0.432287 -0.935728 0.357876 0.591294 +-0.768239 -0.508914 -0.226472 -0.381764 -0.308265 -0.501238 -0.358439 -0.711269 +0.863075 -0.649126 -0.559737 0.242747 -0.0833645 -0.48658 0.545111 -0.749735 +0.560645 0.0981928 0.98915 0.386877 0.998202 -0.923064 -0.143429 0.0120489 +-0.172888 -0.987736 -0.019919 0.900102 -0.706244 -0.800856 -0.863956 -0.134379 +-0.657668 0.618311 0.579982 0.852182 -0.621864 -0.65489 -0.0406368 0.235367 +0.528019 0.954676 -0.761864 -0.840649 -0.566082 0.516921 0.511785 0.0612233 +0.737796 0.317777 0.373947 -0.155693 0.839091 0.578526 0.283004 0.328822 +0.482275 -0.246011 -0.514408 -0.996551 0.186639 -0.353908 -0.710367 -0.95679 +-0.542976 0.379978 0.388341 -0.50985 -0.71483 -0.305278 -0.380838 -0.672205 +-0.0465311 0.777669 0.340097 0.100179 -0.531904 -0.723961 -0.981274 -0.0394776 +0.244866 0.0632913 -0.101809 0.376018 -0.553911 0.506234 0.843822 0.261087 +-0.34388 -0.985927 0.649291 0.30278 0.920758 0.180314 0.634717 -0.35386 +0.142797 -0.701537 0.163084 -0.211039 0.661914 -0.363659 -0.873628 0.728903 +0.815882 -0.217997 -0.466938 -0.0983389 -0.745205 0.664456 0.494475 0.0985773 +-0.2489 -0.321198 0.5543 0.391957 -0.827394 -0.67636 0.435296 0.3459 +-0.513688 -0.916884 0.882012 0.0695999 0.0376325 0.510818 -0.536005 -0.705857 +0.5442 0.41657 0.402025 -0.0543298 0.865691 -0.763821 0.106548 -0.838279 +-0.820634 -0.405408 -0.139101 -0.797438 -0.0440854 0.823462 0.758196 -0.581836 +-0.283799 0.76933 0.593534 -0.456088 0.387223 0.616003 -0.738034 -0.21752 +0.323996 0.614662 -0.950994 -0.40592 0.154952 -0.601096 -0.909662 0.277428 +0.685618 0.517136 0.886496 -0.485098 -0.788357 -0.208862 -0.725962 0.458484 +0.982799 -0.0979862 -0.94766 -0.885644 0.080183 0.263394 0.828962 0.53429 +0.430696 -0.368712 -0.474724 0.490441 0.875802 0.847952 0.740507 0.529319 +-0.32743 -0.869403 0.709334 -0.575641 -0.527952 -0.0762286 -0.237205 -0.822635 +-0.350666 -0.684212 -0.457443 -0.740521 0.996867 0.573595 0.730673 -0.260659 +-0.558065 -0.231694 0.506373 0.371054 -0.359671 -0.327323 0.440685 -0.233344 +0.492332 0.704796 0.546572 -0.197951 -0.581357 0.838951 -0.0710844 -0.0748296 +0.301623 -0.222486 -0.36994 0.758046 -0.604416 0.0381278 0.0866519 0.0076825 +-0.108616 0.473392 -0.0826879 0.20341 -0.587521 0.762725 0.235206 -0.956744 +-0.222462 -0.131956 0.330108 0.326434 0.0916936 0.959663 0.198013 0.973006 +-0.0065452 -0.157656 -0.568667 0.640993 0.371594 0.229192 -0.612711 0.807077 +-0.124147 -0.330151 -0.377112 0.0423615 -0.289726 0.664887 0.139732 -0.744687 +0.369068 -0.207116 -0.812014 0.431813 0.901761 0.184991 0.809224 0.664435 +-0.140696 0.658488 -0.380659 -0.100359 0.132319 0.290516 -0.7908 -0.303609 +0.950275 0.294591 0.813284 0.255675 0.379241 0.752181 0.21117 -0.0879986 +-0.788587 0.674907 -0.639197 0.843933 0.546026 0.133486 0.340824 0.737389 +0.551478 -0.665144 0.572637 -0.251883 0.667913 -0.652631 0.262991 -0.628928 +-0.00829559 0.827264 -0.659673 0.677435 -0.582898 0.861656 0.807052 -0.241922 +0.53029 0.276406 -0.850369 0.606148 0.417719 0.322676 -0.718059 0.814904 +0.0509127 -0.77916 0.38724 -0.0618599 0.321472 0.294822 0.536563 0.222844 +0.183128 -0.961351 0.469498 -0.107124 -0.998764 -0.974323 -0.561324 -0.778491 +0.705104 -0.16619 0.246858 0.853025 0.933275 -0.96025 -0.2306 -0.581463 +-0.135804 -0.291501 -0.453964 -0.0667871 -0.0116701 -0.530398 -0.636346 -0.989861 +-0.883888 0.868279 0.686281 0.365628 -0.280309 -0.613791 -0.2066 0.274597 +0.291794 0.775417 0.23292 0.0894797 0.292737 -0.163122 -0.638439 -0.594163 +-0.830332 -0.275543 -0.585718 0.270686 0.383448 -0.836213 0.777362 0.100967 +0.664511 0.30164 -0.128448 -0.948827 0.862502 -0.430376 -0.942581 0.0512758 +0.711924 -0.285207 -0.654959 -0.988625 0.392955 -0.359291 0.863404 -0.106388 +-0.659953 0.917055 -0.799197 0.651361 0.370245 0.391718 0.223717 0.723495 +0.123549 -0.945111 -0.555769 -0.649814 0.499219 -0.619066 -0.601799 0.69068 +-0.618715 0.32131 0.759993 -0.0737941 -0.229136 -0.391153 0.0804427 -0.0470107 +-0.705316 0.341965 0.61163 -0.48823 -0.791244 -0.859084 0.325526 0.469497 +-0.38023 -0.0987179 -0.939405 0.435456 0.393173 -0.892511 0.631725 0.58999 +0.942535 0.0601412 -0.392017 0.285243 0.870367 -0.147963 0.332054 0.395072 +-0.483855 -0.0679516 -0.824674 -0.564758 0.56754 -0.57824 -0.624811 -0.711699 +-0.2866 -0.174484 -0.926319 0.34033 0.624304 -0.384439 -0.42727 -0.446075 +0.213221 0.51746 -0.717439 0.833329 -0.769489 0.325338 0.596314 0.224083 +0.0602668 0.344342 0.489977 -0.580508 0.843116 -0.315491 0.168088 -0.601734 +0.321409 0.129467 -0.292062 0.46742 0.521776 0.903115 -0.424467 0.0117525 +0.777867 0.75377 -0.158987 0.149591 0.0631847 -0.526191 0.926621 -0.952158 +-0.108637 -0.591344 -0.457731 -0.33968 0.835762 0.178632 0.0384074 -0.474663 +0.363637 -0.350786 -0.601748 -0.756875 0.854744 0.372593 -0.175902 0.303099 +-0.0330089 0.146971 -0.769861 -0.99727 0.46859 -0.195382 -0.455002 -0.172157 +0.0297913 0.539815 -0.983084 0.38095 0.0792756 0.70725 0.820313 0.487679 +0.0484071 0.0412326 0.914358 -0.536642 -0.958456 0.340165 0.0820479 0.992099 +-0.159312 -0.449366 -0.0792356 0.181913 0.539605 0.950556 0.387085 -0.0460472 +0.308555 0.816409 -0.226476 -0.976578 -0.95974 0.92481 -0.10954 0.944659 +-0.487201 0.334477 -0.222606 0.887994 -0.245868 0.924337 -0.191241 0.258974 +-0.516916 -0.431767 -0.362052 -0.956869 0.140973 -0.525674 -0.829216 -0.864134 +0.467598 -0.0623155 -0.562673 0.387059 0.417803 -0.156728 -0.132967 -0.851912 +-0.0159641 0.681031 0.789737 0.61295 -0.382811 -0.437122 -0.575667 0.139461 +0.201726 -0.0284665 0.126787 -0.770721 -0.378973 -0.871242 -0.93124 0.167806 +-0.906587 0.755051 0.805754 -0.466284 0.846402 -0.265639 -0.399551 0.783611 +-0.330639 0.799403 -0.365028 0.152432 -0.457075 -0.880786 0.951629 -0.637468 +0.0939051 0.972762 0.673671 -0.0251475 -0.416985 -0.586914 -0.212876 -0.518802 +0.26211 -0.158193 0.0879568 0.133352 0.294339 0.806577 0.347484 0.284492 +0.18738 0.601394 -0.288238 0.929328 -0.430584 0.144805 -0.0861466 0.9678 +-0.672234 -0.577955 -0.226058 0.795892 0.372343 0.433359 -0.307655 -0.355279 +-0.91036 -0.593156 -0.0141378 0.367605 -0.69358 -0.889241 -0.390859 0.67733 +0.986818 0.965071 0.535801 0.19849 -0.598978 -0.787907 -0.977443 0.297804 +0.594224 -0.532425 0.28695 -0.972223 0.155023 0.323215 0.256217 0.506544 +-0.927605 -0.829722 0.276827 0.356957 0.832604 -0.96117 0.531935 -0.147619 +0.89414 -0.248586 -0.0725506 -0.825005 0.51739 0.465548 0.381324 0.908398 +0.736161 0.0285865 0.0647281 -0.631369 0.562227 0.329487 0.435297 -0.89194 +0.168549 0.237941 0.0677357 0.690194 -0.657008 0.348647 0.438995 0.119896 +-0.490611 -0.240686 -0.412573 0.472571 0.751665 -0.264279 0.911799 -0.870605 +0.982511 -0.626581 -0.46597 0.60857 -0.575409 0.697278 0.671233 -0.559026 +0.670154 -0.810728 0.0135843 -0.252631 -0.964883 -0.64613 0.0921187 0.202064 +0.560799 0.432354 0.906522 -0.611299 -0.641625 0.0577759 -0.883151 -0.415086 +-0.612934 0.25347 -0.619802 -0.689669 -0.772393 0.328471 -0.154783 0.20487 +0.927717 0.232525 0.24183 -0.411393 0.169979 0.203034 -0.391018 0.781991 +-0.0575303 0.244628 -0.331141 0.156427 -0.436854 -0.620626 0.497404 0.936758 +-0.755519 -0.694919 -0.0139654 0.258019 -0.871405 -0.0450511 -0.492955 -0.298025 +0.202794 -0.141868 -0.938724 0.311757 -0.0128749 -0.112618 -0.524556 0.873593 +-0.334348 -0.705892 0.758689 -0.700964 0.260453 0.212106 0.67753 0.149304 +-0.119876 0.0868582 0.166572 0.462281 0.345725 0.184584 0.671379 0.134625 +-0.143818 0.879489 -0.434038 -0.804062 0.879466 0.420275 0.757427 -0.635403 +-0.531995 -0.642183 -0.813272 0.501051 0.389997 -0.420186 -0.645479 -0.111166 +-0.302184 -0.774725 -0.315015 -0.978614 -0.275317 0.716474 0.0844563 0.428733 +0.283421 0.260302 -0.881416 -0.798459 -0.83066 0.551997 0.437974 0.515384 +0.755976 0.845284 0.561146 -0.0527445 -0.262402 -0.187658 -0.311828 0.867852 +-0.989924 -0.219227 -0.550345 -0.154239 0.467149 -0.672575 -0.300683 0.0634565 +-0.724787 0.352666 -0.110587 -0.554322 0.00744583 -0.975196 -0.86003 -0.966098 +0.151237 0.633514 0.776802 0.71245 0.0024771 0.62805 -0.940123 0.04355 +0.601368 0.15256 -0.534149 0.107194 0.583994 0.72257 0.488926 -0.127211 +-0.296958 -0.655767 0.815496 0.62545 -0.66598 -0.696658 0.422174 0.227705 +-0.838788 -0.255448 -0.418342 -0.239067 -0.468444 -0.493054 -0.617915 0.46068 +-0.10102 -0.844915 -0.772289 -0.255899 0.855761 -0.865344 0.465499 0.993729 +-0.696099 0.602138 -0.866223 0.616719 -0.638643 -0.117135 -0.467626 0.682793 +-0.467108 0.926499 0.633912 0.879862 -0.490802 -0.25296 0.454019 -0.851356 +0.294904 -0.56879 -0.889959 -0.585637 0.329798 0.886105 -0.283169 -0.632372 +0.854875 0.799757 -0.336953 -0.140972 -0.687957 0.890311 -0.628454 0.915021 +-0.631309 -0.296261 0.323326 -0.923162 0.132575 -0.051929 -0.123272 -0.780163 +0.247462 0.138162 0.970424 -0.0159447 0.765595 -0.63247 0.526467 0.329408 +0.558882 0.991274 0.762702 0.148037 -0.812295 0.320623 -0.360074 0.890414 +-0.193575 0.836558 0.66645 0.369587 0.894989 0.724637 0.134832 -0.103241 +-0.373098 0.522283 -0.509777 -0.408407 0.281541 0.491888 0.295896 0.885464 +-0.435318 -0.15438 0.295375 -0.0130003 -0.370649 -0.939891 0.979149 0.441866 +-0.0458628 0.0889234 -0.00384797 -0.172882 0.654266 0.0200125 0.93788 -0.229084 +0.232796 0.331426 0.137932 -0.1588 0.746055 -0.611013 0.0580773 -0.984885 +-0.274608 0.0274619 0.236169 -0.00557469 0.63567 -0.41614 -0.738035 0.678355 +-0.777497 -0.274965 -0.978902 -0.94074 -0.998772 -0.371096 0.918989 0.470693 +-0.351333 0.600498 -0.279957 0.982019 0.686641 0.463126 -0.951743 -0.774277 +-0.693266 0.587143 0.806982 -0.0391043 0.687868 0.836473 0.758257 0.814607 +-0.155583 0.559107 -0.180078 -0.901172 -0.564174 0.950115 0.658405 -0.995456 +-0.179338 -0.769771 0.63757 -0.800916 -0.941813 0.901739 -0.835243 -0.399236 +0.200282 0.56488 -0.695449 -0.784017 -0.169102 0.163009 -0.681538 -0.422385 +0.877868 -0.858239 -0.0760585 0.969674 0.0520049 0.650256 -0.174781 -0.592959 +-0.643602 0.490123 0.0763367 -0.133388 0.603845 -0.399696 0.421458 -0.623528 +0.621015 0.394125 0.58665 -0.318446 -0.242279 -0.0396681 -0.215221 0.910531 +0.679511 -0.69743 0.219824 -0.109131 -0.908851 0.362093 -0.323557 -0.842242 +-0.572823 0.174681 0.121563 -0.798144 0.918647 -0.0353657 -0.618057 -0.963881 +0.875206 0.628925 -0.285123 -0.745414 -0.951678 0.627636 0.4282 -0.261089 +-0.180566 0.0979852 0.161239 0.501575 -0.340417 0.793822 -0.609995 -0.209603 +-0.522707 0.472491 -0.49147 -0.626946 0.731457 -0.92191 0.381342 0.535288 +0.230116 -0.411899 -0.376975 -0.0727894 0.407803 0.797609 -0.617944 -0.102145 +0.470748 -0.680442 -0.052813 0.485381 0.259645 0.314615 0.982611 0.798367 +0.767657 0.413682 0.403979 -0.364973 -0.0227396 -0.587921 -0.459537 -0.56456 +-0.817581 0.0230745 0.122747 -0.272514 -0.151073 -0.571134 -0.12752 0.308456 +-0.234365 -0.896628 -0.543475 -0.928624 0.755612 0.511077 -0.599918 -0.599189 +-0.614712 0.0293457 -0.508606 -0.920826 0.164886 0.904763 -0.528188 0.0844406 +0.902556 0.119671 0.994113 -0.269736 -0.424784 0.264042 -0.657939 -0.806347 +-0.750066 -0.245443 -0.808003 0.442991 -0.209324 -0.808908 -0.981794 -0.510847 +-0.610594 0.900685 0.754698 -0.95254 0.420727 -0.330646 -0.906228 -0.181319 +0.067648 0.377454 0.519654 -0.886214 -0.720197 0.137773 -0.220185 0.760907 +-0.698287 0.697118 -0.598066 -0.491931 0.661839 -0.178514 0.446478 0.725278 +0.854846 -0.959739 0.449098 0.829102 -0.676333 0.786899 0.379883 -0.454514 +-0.170446 -0.570646 0.513767 0.689225 0.0637064 0.047249 0.194648 0.70846 +-0.914489 -0.84392 -0.378201 -0.361538 -0.356328 0.127385 -0.67819 0.168057 +0.125882 0.453762 0.630228 -0.307048 0.0558355 0.423292 -0.156626 0.409801 +0.545793 -0.272674 -0.228218 -0.18991 -0.940324 0.648011 0.48258 -0.539391 +0.652456 -0.809515 0.320749 -0.509295 0.136827 0.341681 -0.374427 -0.216659 +0.674087 -0.0444064 0.15684 0.0964682 -0.254558 0.862153 0.816423 0.29775 +-0.228888 0.203158 -0.720184 0.665157 -0.155045 -0.483388 -0.476821 -0.378136 +-0.261212 -0.853161 -0.908703 0.118185 0.539272 0.15899 0.9865 0.275421 +-0.895025 -0.826869 -0.27963 -0.242447 -0.163778 -0.692896 0.66349 0.0390357 +-0.427301 -0.277379 -0.231296 -0.415472 -0.752861 -0.299575 0.729758 -0.213146 +0.375921 -0.565423 0.096258 -0.583626 -0.263709 0.675703 -0.0166036 0.0170838 +-0.639753 0.126037 -0.106663 0.220402 0.257187 -0.743703 -0.403632 0.268798 +-0.95692 -0.875367 0.337192 -0.509973 -0.731753 -0.894748 -0.598928 -0.808364 +0.512275 -0.583381 -0.974964 0.847309 0.921829 -0.676939 -0.796804 0.0290198 +0.140113 -0.915027 0.793142 0.977794 -0.894313 -0.250609 -0.513954 0.188916 +-0.597928 0.982209 -0.572229 0.191877 0.127513 0.284272 -0.624505 0.600551 +-0.0618661 0.974959 -0.936933 -0.757253 0.865399 -0.810305 -0.25958 -0.62859 +0.179969 -0.394173 -0.272225 -0.273774 0.705135 -0.529459 0.534434 0.198125 +-0.00457802 0.906561 0.432007 0.311682 0.504192 0.881337 0.803117 0.409709 +-0.623662 0.414641 -0.774825 -0.883711 0.133717 0.697851 -0.0338443 0.382461 +-0.487514 -0.613888 0.160689 -0.111202 -0.96655 -0.702182 0.0501156 -0.206706 +-0.550074 0.749546 -0.431205 -0.567424 -0.680566 0.942111 -0.721449 -0.403556 +0.235001 0.191921 0.439872 -0.279121 -0.688673 -0.193997 -0.672952 0.62718 +-0.444838 -0.231392 0.209668 -0.342187 0.432978 0.289592 0.554435 -0.318237 +-0.27749 0.354259 -0.107901 0.240673 -0.82693 -0.0822021 0.580248 0.954766 +-0.770102 0.697206 -0.98903 -0.652434 0.86804 -0.0104531 0.49113 0.792418 +0.657355 0.689204 -0.0956647 0.225194 -0.12617 0.302542 0.808653 -0.0638344 +0.100763 0.488962 -0.472099 0.415373 0.255599 -0.767797 -0.759042 -0.981816 +0.82712 0.512842 -0.574906 -0.675571 -0.108577 0.134561 0.691657 0.364584 +0.717932 0.644293 -0.891336 -0.14146 -0.752995 0.466326 0.0956557 0.748409 +-0.639551 0.993796 0.23663 -0.860338 0.546328 -0.0134221 -0.190639 -0.774242 +-0.168998 0.809897 -0.0724687 0.880509 0.924059 0.914387 -0.356067 -0.70861 +-0.665771 0.0469613 -0.344686 -0.639886 -0.794659 -0.752005 -0.538779 -0.554446 +0.358273 0.810189 0.589195 0.0768694 -0.363041 0.466094 -0.612151 -0.798805 +-0.176668 0.773198 -0.531688 0.653239 -0.487518 -0.748874 -0.115973 -0.95675 +0.379019 -0.187013 -0.694737 0.435753 0.733395 -0.375554 0.901036 0.576703 +-0.878736 0.859948 0.594482 0.731464 0.656825 0.185427 0.703121 0.475483 +0.451083 -0.605168 -0.567243 -0.829023 -0.855582 0.0894606 -0.701407 -0.934292 +-0.734215 -0.871833 -0.751409 -0.851524 0.442948 0.324741 0.0601873 -0.545492 +-0.645031 -0.159748 -0.73442 -0.0663618 0.524607 -0.30848 0.984521 -0.14582 +0.251307 -0.84424 0.527263 -0.119836 0.814 0.513187 0.663162 0.053065 +0.171631 0.608003 -0.390446 0.0240444 0.632319 0.302603 -0.974016 -0.550811 +-0.519843 0.20318 0.646409 -0.469461 0.815997 0.828373 0.525019 -0.33928 +-0.312998 -0.930874 0.748211 0.50108 -0.426059 0.24332 -0.761835 -0.888036 +-0.0430873 0.93541 0.607379 -0.930788 0.748549 -0.629869 -0.327984 -0.802965 +-0.893623 -0.94416 0.644368 -0.793722 -0.371427 -0.574178 0.538288 -0.599681 +0.991865 0.942398 0.502691 -0.721589 -0.0177585 0.69164 -0.739599 0.308632 +-0.948865 -0.462305 0.481357 0.239694 -0.687471 0.972791 -0.759844 -0.101514 +-0.427971 0.817675 0.37791 0.717362 0.780244 0.687148 0.817492 -0.356595 +0.408544 0.481804 0.634608 -0.292359 -0.333752 -0.730047 -0.146216 -0.379925 +-0.411169 0.480939 0.111173 0.719619 0.791424 -0.478602 -0.543974 0.983891 +0.328765 -0.252362 0.148485 -0.707759 0.783393 0.360622 -0.813371 -0.387891 +-0.732258 0.0508194 -0.468909 -0.104074 -0.402039 0.562892 -0.797813 -0.351684 +-0.531397 0.563291 0.757849 0.419854 0.0848375 -0.538672 -0.130978 0.29123 +0.581819 0.769303 -0.768847 0.296335 0.46928 0.686351 -0.452858 0.42095 +-0.468421 0.354316 0.320273 -0.683124 0.733479 0.959525 -0.466906 -0.562437 +-0.320985 0.662557 -0.469076 0.731449 -0.792907 -0.522255 -0.810503 -0.0463208 +-0.135518 -0.548003 0.821454 -0.596468 -0.221672 0.722425 0.677631 0.239664 +0.240495 0.518917 -0.560083 -0.533732 -0.316851 -0.384751 0.472647 -0.736067 +0.963678 0.279479 0.730123 0.767116 0.368007 -0.722811 -0.896892 0.947205 +0.363038 0.890507 -0.57866 -0.448616 -0.486435 0.378788 -0.0279786 -0.259052 +0.783014 0.730993 -0.845192 -0.448047 0.815635 -0.755785 0.676373 -0.367349 +-0.0086781 -0.325064 -0.795016 -0.764885 -0.497666 0.546077 0.15676 -0.347416 +-0.442516 0.831899 0.539601 -0.946358 0.42282 -0.733471 0.986251 -0.216558 +0.149417 -0.976062 0.843743 -0.709507 -0.949645 -0.444824 0.623921 -0.212131 +0.889061 -0.714132 0.886256 -0.524226 0.260209 -0.425858 -0.335331 -0.608121 +0.163371 -0.653703 -0.731777 -0.000247172 -0.188642 0.924377 0.298805 -0.388973 +0.762605 -0.842116 0.869683 -0.830962 0.677016 0.142839 -0.12232 0.522901 +-0.690976 -0.576243 0.773121 0.520893 -0.24379 0.197899 -0.222619 0.359383 +-0.462497 -0.296712 0.673668 0.87853 -0.46955 -0.69347 0.111819 0.845106 +0.175018 -0.934832 0.679228 0.637092 -0.0536522 -0.826904 0.908255 -0.239506 +0.145944 -0.31197 0.548688 0.900027 0.390772 0.910796 -0.22158 -0.549628 +0.24904 0.135123 -0.10011 -0.514924 -0.984626 0.938774 -0.904509 -0.770618 +-0.639954 0.877993 -0.188124 -0.182481 0.146301 -0.285402 -0.0191776 0.528271 +-0.387525 0.482188 0.979864 -0.349333 -0.545409 0.399055 -0.883834 0.979338 +-0.699892 -0.672811 -0.831444 0.613173 0.13007 -0.189966 -0.142866 0.160236 +0.0910655 -0.996865 0.0246345 -0.904468 -0.274297 -0.293687 -0.728378 -0.326509 +-0.309902 0.428136 -0.612639 -0.0769603 -0.889623 0.22853 -0.235892 0.534631 +0.78105 -0.525496 0.103986 0.125321 -0.00833412 -0.780349 -0.156386 0.23734 +0.958042 0.2222 -0.516709 0.302859 0.356197 0.621717 -0.375293 -0.325277 +-0.950257 -0.567975 -0.557345 0.227985 0.962381 0.0284058 -0.946306 0.993726 +0.689634 -0.0610698 -0.181399 0.341457 0.303838 0.48898 0.234354 0.840447 +-0.280721 -0.220603 0.613225 0.369206 -0.991763 -0.37548 -0.561312 -0.559419 +-0.562699 0.464465 -0.484657 -0.845516 0.286717 -0.325758 0.359892 0.250142 +-0.108194 -0.228172 0.946117 -0.502686 -0.0465551 0.712636 0.772485 0.179967 +-0.737207 -0.408187 0.466146 0.953815 0.157193 -0.050292 -0.515917 0.516513 +0.543843 -0.0965304 0.884514 -0.637205 -0.796977 -0.926221 0.798812 -0.185254 +-0.753853 -0.665576 -0.236124 -0.371611 0.561697 -0.752251 0.84445 -0.721008 +0.415113 -0.419192 0.81641 -0.498895 0.156293 0.675782 -0.582893 -0.507618 +0.4038 0.53983 -0.748939 -0.0885593 0.832176 -0.930937 -0.179189 0.895717 +-0.616491 -0.0931225 -0.190058 0.969533 0.271779 0.502087 0.859372 -0.962636 +-0.576212 -0.0748974 0.131519 0.12715 -0.953877 0.89019 0.632441 0.908584 +0.515387 -0.161986 -0.844445 -0.172084 0.179543 -0.09881 -0.646958 0.218213 +-0.846388 -0.731861 -0.0872301 0.792956 -0.00136626 -0.616736 -0.198031 -0.0934711 +0.193242 -0.18113 -0.149347 0.852692 0.414392 0.455737 0.77598 0.651056 +0.085765 -0.943946 -0.295603 0.162231 0.618967 0.406141 0.667482 -0.163063 +0.651067 0.481217 -0.848668 -0.730323 0.702711 0.674271 0.639327 0.11048 +0.792505 -0.148969 0.670314 0.155321 0.236991 -0.725394 -0.85646 -0.861638 +0.0494774 -0.0744954 0.406126 -0.854873 -0.959164 0.948478 0.124809 -0.80229 +-0.628362 0.375658 0.545496 0.076435 -0.467406 -0.345889 -0.110965 -0.503293 +-0.976087 0.459429 -0.260363 0.846721 -0.0974471 -0.673193 0.476279 0.749357 +0.857776 0.0693236 -0.409274 -0.428415 0.673289 -0.136668 0.824272 0.381379 +0.820045 0.804361 -0.317322 0.142192 -0.310016 0.854062 0.402185 0.831183 +-0.296965 0.034647 -0.719021 -0.853171 0.948462 -0.317786 -0.682242 0.851529 +-0.360539 -0.28977 -0.540494 -0.871484 -0.0713698 -0.202932 0.283497 0.32302 +-0.368837 -0.902355 0.0806888 0.937038 0.0197885 0.855694 0.6758 0.624621 +-0.642331 0.114485 -0.214602 -0.430039 -0.12427 0.267638 0.173853 -0.447229 +0.30979 0.280358 -0.567427 0.169455 0.205752 -0.689963 0.714521 0.0473829 +0.383499 0.0804055 0.550963 0.0282557 0.349583 -0.812192 0.992022 -0.586029 +-0.0443168 -0.695056 -0.491459 0.289843 0.0399156 0.729499 -0.59989 -0.686555 +-0.329796 0.392133 0.818108 0.897126 -0.755773 -0.225375 -0.276367 0.433383 +-0.438587 0.308626 0.753066 0.570264 -0.6305 -0.00913223 0.694738 -0.0574015 +-0.000567365 0.56681 0.781076 -0.141968 0.983244 0.492774 0.533332 0.229013 +0.19993 0.200886 0.0562647 0.477792 -0.385539 -0.929566 0.992027 0.869331 +0.355324 -0.0744283 -0.280209 0.147904 -0.837536 -0.575321 -0.026675 0.576413 +-0.854892 0.448117 -0.632357 0.884104 0.460515 -0.38821 -0.309308 -0.83903 +0.545732 0.821317 -0.301445 0.132048 0.432038 0.319904 -0.324767 0.655713 +0.32467 -0.22967 0.904307 0.727212 -0.776325 0.0210347 -0.182459 -0.865849 +-0.948423 -0.102846 0.522964 -0.9679 -0.540413 0.9555 -0.906271 0.366339 +0.905601 -0.824081 0.806826 0.635544 -0.581854 -0.668167 0.636123 -0.954634 +-0.435015 -0.0557779 0.702212 0.874607 -0.653595 -0.212491 -0.784918 0.126354 +0.937068 0.672375 0.577975 -0.607661 -0.0178115 0.44509 -0.821401 -0.0571128 +0.0953985 0.212275 -0.532983 -0.320107 0.386387 0.19727 0.132351 0.103074 +0.653617 -0.279407 -0.926383 0.361078 -0.774375 -0.175768 -0.725556 0.834164 +0.651801 0.94774 0.254977 0.316746 0.213899 0.00485267 0.922421 -0.488591 +-0.3543 -0.471387 0.965173 0.173607 0.846795 -0.446685 -0.468995 0.541162 +-0.932263 -0.700538 0.0437374 -0.600939 0.637763 -0.853614 -0.89898 -0.59456 +0.822556 0.441414 0.664329 0.541246 -0.499665 0.342649 -0.441652 -0.56069 +0.524078 0.809887 0.655461 -0.168242 -0.610231 0.579368 0.031113 -0.166155 +-0.526537 -0.400588 -0.587946 0.529077 -0.390321 -0.203477 -0.253867 -0.660506 +0.865728 -0.896361 -0.166965 0.334866 0.237346 0.545053 -0.33189 -0.66649 +-0.465374 0.977072 -0.0195884 -0.978674 -0.986898 -0.0328485 0.579987 -0.71977 +-0.274641 -0.741784 -0.411774 -0.0662335 -0.413689 -0.105837 -0.65194 0.00284367 +-0.630715 -0.462553 -0.697124 -0.423515 -0.948907 0.422678 -0.845514 0.392979 +-0.612671 0.965431 0.221359 0.449319 0.305557 0.406974 0.703473 0.359746 +0.557118 0.655683 0.770181 0.166699 0.390762 0.267572 -0.630432 0.506798 +0.642224 0.581337 0.995115 -0.154745 -0.642818 -0.0617701 0.225192 -0.871905 +0.684701 0.000151154 0.866918 0.279185 -0.0704296 -0.574974 0.354941 -0.258214 +0.259761 -0.631192 -0.457332 0.285686 0.699099 -0.896124 -0.99771 -0.221524 +0.765276 -0.626306 0.705763 0.612461 -0.947382 0.988387 0.864967 -0.344337 +0.369436 0.302681 0.93184 -0.489951 -0.178039 -0.554152 -0.636793 0.0947663 +-0.745905 0.765296 -0.0878794 0.54381 -0.566166 0.0709023 -0.621111 -0.658188 +-0.439942 -0.393803 0.0993992 -0.0673843 -0.71495 -0.5793 0.796486 0.596146 +0.347069 -0.0333286 0.663615 0.716399 0.928039 0.0243541 0.0211747 -0.647925 +0.231801 -0.953452 -0.28938 -0.785405 0.0021042 -0.418424 -0.954474 0.0944015 +-0.795226 -0.786352 -0.629143 -0.0268838 0.612522 -0.707865 -0.464972 -0.190053 +0.221904 0.148953 -0.874814 -0.950534 0.303472 -0.203122 -0.297299 -0.844548 +0.140824 -0.858117 -0.46766 0.937109 -0.666551 -0.0215576 -0.0413337 0.526174 +0.937529 -0.950909 -0.0802493 -0.368285 -0.952247 0.177659 0.7287 0.225324 +-0.296159 -0.952219 -0.435089 -0.306847 -0.0509877 0.0222074 -0.929953 0.435227 +-0.623887 0.928342 0.219252 0.839628 -0.153282 -0.152008 0.0605999 0.598386 +0.12803 -0.440865 -0.201706 -0.810531 0.274716 0.294492 0.226332 -0.735106 +0.652479 0.420165 -0.482305 -0.945197 -0.042351 -0.358698 -0.155276 -0.82037 +0.322464 -0.139477 -0.687325 0.389929 0.380014 -0.360332 -0.992663 0.968118 +0.498006 -0.987473 -0.0485686 -0.447246 0.0918458 -0.644389 0.755311 0.887464 +0.429836 0.345143 -0.485296 0.182335 -0.356696 0.582101 0.832393 0.607575 +-0.223757 0.351515 0.115408 0.780621 -0.480247 -0.195 -0.773274 0.935187 +-0.128869 -0.928501 -0.661209 0.820022 -0.247699 0.168445 -0.48247 0.564638 +0.739054 -0.619004 -0.122714 0.236034 -0.430382 -0.923658 -0.683358 0.24331 +0.395269 0.606288 0.98815 -0.192725 0.0080007 -0.834696 0.131245 0.578261 +0.479883 0.455326 0.101033 0.817782 -0.80053 0.600643 -0.947445 0.590112 +0.937189 -0.470375 -0.959809 0.631907 -0.865896 0.467946 -0.10058 -0.289725 +-0.421509 0.387252 0.271291 -0.798807 -0.191348 -0.76576 0.566838 -0.648024 +0.0543221 -0.97846 -0.755844 0.495572 -0.546768 0.68395 0.710712 0.869045 +-0.0680898 -0.694386 0.683653 -0.745838 0.420444 0.90945 0.866767 0.573934 +-0.0782296 0.339832 -0.0350136 0.0327823 0.816112 -0.535942 0.821392 0.436657 +0.130665 -0.77761 0.073332 0.529 -0.0310249 0.209788 -0.168761 0.429739 +-0.206022 -0.174666 -0.591531 -0.274372 0.990813 -0.410182 0.357321 0.557301 +-0.257423 0.898744 0.0316753 -0.621787 0.0729736 -0.721405 -0.78409 0.252105 +0.25796 -0.646719 0.797532 0.657129 0.0252002 -0.264597 0.0280809 0.0296184 +0.903781 -0.359993 -0.0370503 -0.252323 -0.755103 -0.968228 0.332395 0.152309 +0.715643 0.202338 0.0211722 0.114315 -0.915303 -0.923349 -0.844118 -0.170521 +-0.559759 -0.325486 -0.6104 0.048279 0.612685 0.533573 -0.389062 0.0201878 +-0.414804 0.378705 -0.0365641 0.725253 -0.426036 -0.872704 -0.783059 -0.894508 +0.195722 0.331857 0.405579 -0.196618 -0.646433 0.31528 -0.685225 0.142291 +0.557115 -0.250782 0.109774 -0.136143 -0.771967 0.203548 -0.218052 0.389333 +-0.629642 -0.12249 0.865808 -0.091847 -0.838728 -0.982414 0.216325 -0.262573 +0.109992 -0.280158 -0.479389 0.129597 0.268368 0.673147 -0.962008 -0.866278 +-0.16216 -0.59445 0.376369 0.543022 0.559321 -0.687589 0.78088 0.942087 +-0.914894 -0.839347 0.891765 0.309621 0.530463 0.310419 0.0591803 0.548127 +0.077753 0.671682 0.689121 0.319091 -0.258157 -0.233634 -0.121386 -0.667556 +-0.864087 0.135174 0.451474 0.800652 -0.788833 0.0185349 0.824255 -0.101176 +-0.495449 -0.0897356 -0.481195 -0.329414 0.63027 -0.847425 0.481735 -0.715652 +-0.479162 0.835453 0.192061 0.0202158 0.114332 -0.592705 0.54729 -0.413141 +-0.125399 0.732418 -0.69633 -0.133807 -0.201421 -0.776236 -0.907875 0.505893 +-0.360225 -0.817624 0.342119 -0.397985 0.331854 -0.256212 -0.633924 -0.632303 +-0.472471 -0.920919 0.187211 0.0398026 0.4989 0.0805651 0.0742864 0.950357 +0.390164 0.380505 0.358938 0.006135 0.532438 -0.780838 0.507366 -0.834666 +0.305488 -0.0339484 -0.0659418 -0.945186 -0.0063168 -0.322266 0.739375 0.990767 +-0.305596 -0.887935 0.0151104 -0.701757 0.774948 -0.238107 -0.0178909 -0.87515 +-0.274157 0.530351 0.291663 0.847541 -0.00723269 -0.231056 0.448725 0.691927 +-0.997664 -0.78874 -0.777246 -0.090291 0.334912 -0.58018 -0.827108 -0.909759 +0.613561 -0.848892 -0.402654 -0.191104 -0.473759 -0.682979 0.139817 -0.596996 +0.479488 0.129539 0.73461 0.818347 0.975974 0.840722 -0.467352 0.333716 +0.132463 -0.890211 -0.175518 -0.251334 0.209338 -0.65694 0.284632 -0.0846382 +-0.208428 0.439492 -0.704196 0.75804 -0.709925 -0.533397 0.714339 0.90422 +-0.637903 0.0814424 -0.227628 0.687734 0.105665 0.754281 0.0383247 -0.20825 +0.905862 0.0235782 -0.318191 0.33822 -0.108553 -0.474966 0.572027 0.0572129 +-0.560315 0.827218 0.448415 0.572057 0.520588 0.48663 -0.0396718 0.261578 +-0.885042 -0.512612 0.463418 0.82466 -0.055316 -0.580829 -0.281855 0.277118 +0.846699 0.269458 0.664875 0.109804 -0.799353 0.484617 -0.0811441 0.675031 +0.983116 -0.320686 -0.967268 0.422405 -0.875115 -0.876388 0.244567 0.832954 +-0.711578 0.980622 0.38807 -0.056876 0.0154746 0.0850274 0.383304 0.725276 +-0.615692 0.453829 -0.114977 -0.671071 -0.182657 0.424096 -0.674289 0.608264 +0.979723 -0.14854 -0.526936 0.348416 0.337652 -0.370859 0.384555 -0.523567 +0.667058 0.647991 -0.525271 -0.387758 -0.997505 0.499909 -0.696958 0.0438556 +-0.344948 0.91037 0.310014 -0.786479 0.231515 0.83267 -0.800147 -0.71553 +-0.311102 0.290886 0.0941962 -0.146718 -0.0788699 -0.304247 -0.297134 0.312001 +-0.135024 0.333654 0.224173 -0.48049 -0.137087 -0.0851665 -0.063134 -0.370265 +-0.167541 -0.567091 0.269331 0.0842452 -0.0742686 -0.801058 0.0182561 0.770316 +0.200225 -0.824877 -0.118187 0.303305 -0.363584 -0.59466 -0.328064 0.986639 +0.69955 -0.446219 0.513832 0.940837 0.039409 -0.764758 0.553287 -0.114898 +-0.275923 0.57232 0.525424 -0.974437 -0.776375 -0.996626 0.546344 0.6603 +-0.180902 -0.369212 0.989044 -0.30809 0.993703 -0.994958 0.687437 0.594484 +-0.955314 0.653012 -0.542373 -0.863294 -0.150448 0.586242 -0.742387 -0.136533 +-0.53176 -0.0034602 0.610657 0.283423 -0.678439 0.273139 -0.92601 -0.637018 +-0.3506 -0.766942 -0.357359 0.427682 -0.384695 0.66865 -0.274092 0.396424 +0.578505 -0.835379 0.300984 -0.944219 -0.564666 0.350301 0.984021 0.404488 +0.742556 -0.570024 0.106047 -0.279436 -0.382923 0.356421 0.432863 0.884236 +0.863228 -0.120595 -0.202818 0.842471 -0.347364 -0.836418 -0.653095 -0.00384722 +0.141851 0.42798 0.159145 0.0873448 0.547416 0.637176 0.80213 -0.159199 +-0.998928 0.7877 0.806591 -0.583023 -0.64463 0.180916 -0.179182 -0.206517 +-0.491129 -0.338378 0.168081 0.174024 -0.933346 -0.267203 -0.658137 -0.782135 +-0.543445 -0.946734 -0.581929 0.997398 0.35883 -0.889394 0.744214 -0.841229 +0.241667 0.0268001 0.782658 0.848009 0.0369494 0.882349 -0.426744 -0.346987 +0.862106 0.252457 -0.439019 0.440632 -0.618553 -0.40721 -0.00100412 0.289788 +0.935614 -0.746169 0.116288 -0.0702415 -0.248752 -0.459585 0.888645 0.517373 +-0.0638119 0.421087 -0.43006 0.619832 0.532893 0.388006 -0.850096 -0.166677 +-0.0533826 0.0597424 0.284244 -0.392274 -0.48001 -0.860994 -0.575622 0.961669 +0.319127 0.431032 -0.353745 0.622434 -0.0175861 -0.160517 0.0479902 0.759641 +-0.279297 -0.372989 0.461996 0.361456 0.812175 0.364688 -0.938057 0.672262 +-0.998169 0.862792 0.365382 0.0944088 -0.00568185 -0.914102 0.345984 0.922671 +0.748825 0.0697302 -0.0838671 -0.512355 -0.645202 0.280872 0.542005 -0.512991 +0.717398 0.0148824 -0.756246 0.668985 0.551587 0.933034 -0.0302685 0.57869 +0.0135831 0.961429 0.798888 -0.490134 0.0788875 -0.732927 -0.847448 0.815737 +0.34141 -0.0631161 -0.610386 0.528839 0.516286 0.296187 -0.109325 -0.645514 +0.461527 -0.251398 0.378351 -0.447978 -0.621262 -0.677811 0.784492 0.100396 +0.888894 -0.654193 -0.827866 -0.352366 -0.554857 -0.865394 -0.0173624 0.1884 +-0.276482 0.225799 -0.379563 -0.868872 0.921386 -0.509194 0.249485 -0.194679 +-0.432662 0.0761289 0.0314111 0.924523 0.602866 -0.0592413 0.253429 0.323095 +-0.246217 0.69923 -0.936107 0.35813 0.0303942 -0.378067 0.259794 0.170069 +0.598878 -0.0956435 -0.419756 -0.812831 0.942492 0.000759372 -0.419882 0.194993 +-0.872005 -0.110201 -0.281762 -0.316407 0.281128 0.259073 0.985252 0.779942 +-0.551026 0.506062 0.621188 0.316797 0.787958 0.375718 -0.377522 -0.709219 +0.868502 -0.565741 -0.64381 -0.0949202 -0.800112 -0.187901 -0.36674 0.902865 +0.593779 0.306037 0.260546 -0.289094 0.387811 -0.854141 -0.298593 -0.746131 +-0.403865 -0.0599061 -0.175985 -0.103992 -0.182054 0.122747 -0.793396 -0.0752806 +0.118987 0.32932 -0.357681 -0.407338 0.293571 -0.838911 0.0936832 -0.127899 +-0.307963 0.573313 0.176062 -0.501988 0.131799 0.779664 0.27436 -0.846411 +-0.6298 -0.0892439 0.206789 0.536271 0.610512 -0.788464 -0.169622 -0.468959 +-0.566494 0.744672 0.283892 -0.00565353 -0.0362827 0.200455 -0.473492 -0.967341 +-0.0173342 0.768724 0.327515 0.0419136 -0.756228 -0.433718 0.21463 -0.682303 +-0.861236 0.970447 0.937002 -0.164183 0.292068 0.487319 0.381598 0.578987 +0.762385 0.942806 -0.360376 -0.532665 0.917836 -0.421796 0.054024 -0.521111 +0.961201 0.792211 0.548377 -0.50753 0.345851 0.113151 -0.148371 -0.467866 +0.475471 0.641824 0.515887 -0.549656 0.418083 -0.692525 0.797605 0.238006 +0.740897 -0.585185 0.771689 0.715425 -0.717804 0.1123 0.090004 0.645284 +-0.200492 0.439643 0.39152 -0.87713 -0.820466 -0.267014 0.858388 -0.684192 +-0.572121 -0.6481 -0.836354 -0.727361 -0.57808 0.0535239 -0.512827 -0.302114 +-0.885128 0.971046 -0.046249 0.744135 0.462079 0.737962 -0.00550365 -0.731318 +0.345713 -0.707811 0.669868 0.860885 0.316897 -0.38473 -0.850745 0.744343 +-0.826244 -0.907294 -0.632241 -0.0685697 -0.860307 0.191838 -0.8719 -0.244189 +-0.476754 0.6518 -0.0621155 -0.108737 0.45466 -0.326862 0.561656 0.614533 +-0.260912 0.0790318 -0.693098 0.686324 0.569608 0.504235 -0.92998 0.841807 +-0.505985 -0.00248717 -0.584705 -0.978566 0.523799 -0.994243 0.401884 -0.408141 +-0.461064 0.199489 0.664111 0.682063 0.828969 -0.566705 0.345817 -0.474344 +0.342875 0.792451 0.974492 0.00326968 -0.0979298 0.364309 0.952433 -0.350622 +0.246868 0.420798 -0.77104 -0.686994 0.046457 -0.646043 0.0945476 0.3939 +0.713466 -0.197333 -0.956722 -0.318996 0.0542445 0.966028 0.926643 0.927768 +-0.956614 -0.150579 -0.778315 0.27839 0.340588 0.456458 0.64809 -0.862655 +0.93772 -0.0823584 0.645405 0.152695 -0.0893484 0.079338 -0.181385 -0.149401 +0.880062 -0.899808 0.67678 0.983115 -0.793427 -0.0992431 0.10006 0.674211 +-0.25547 0.809335 0.773695 -0.0525009 0.155048 -0.397669 0.244787 0.163812 +0.0814183 0.733641 0.123502 -0.341607 -0.744109 0.549434 -0.581446 -0.534397 +-0.545486 -0.598795 0.742333 -0.932709 0.964186 -0.437112 0.429452 0.55377 +-0.804624 -0.964547 -0.410035 -0.0545865 -0.751108 -0.239502 -0.441446 -0.861369 +0.110917 0.669109 0.836676 0.518027 -0.853143 0.0849209 0.103102 -0.925186 +-0.300751 0.0979728 0.608553 -0.586374 0.868477 -0.0524241 -0.649287 -0.950954 +0.370902 -0.654803 0.0152561 -0.497862 -0.849674 -0.164914 0.850231 0.258313 +0.491816 0.823417 0.219459 0.00673006 0.104549 -0.348766 -0.24244 0.556283 +-0.522479 0.509741 0.156232 -0.54768 0.774396 0.179653 -0.588555 -0.916058 +0.0815185 -0.575153 0.252636 0.166534 0.617775 -0.304252 -0.507862 -0.450254 +0.227304 -0.494694 -0.534251 0.274714 -0.845407 -0.0655565 -0.435776 -0.567606 +-0.981232 0.550524 -0.538458 0.696908 -0.636625 0.653841 0.612047 -0.417008 +0.887174 -0.340062 -0.847439 0.774232 0.283741 -0.409639 -0.440044 -0.432796 +-0.975221 -0.967874 0.286576 0.162995 -0.27583 0.155831 0.869568 -0.153391 +-0.411653 0.267808 -0.587389 0.914526 0.34149 0.654458 -0.893734 -0.234464 +0.772245 0.271029 -0.202365 -0.860186 0.00942087 -0.40884 -0.723717 -0.864783 +0.276351 -0.529273 -0.494314 0.666065 -0.806368 0.220149 0.478168 0.0328102 +-0.250285 0.600581 0.614246 -0.681106 -0.843817 0.944788 0.518175 -0.141106 +0.213816 -0.191986 -0.00334154 -0.423007 0.040556 -0.66452 -0.204187 -0.234212 +-0.0915631 0.424535 0.287596 0.764726 0.266142 0.02135 -0.179428 0.445019 +-0.306792 -0.317645 0.798546 -0.481469 -0.437666 0.541224 0.742633 0.141972 +-0.259233 0.735648 0.18293 0.226327 0.815834 -0.169555 -0.891832 0.965041 +0.817583 -0.306246 -0.727388 0.836307 -0.0567295 -0.359821 -0.0623004 0.0146595 +-0.982549 0.470623 0.224901 0.320201 -0.422177 0.0846818 0.877561 -0.0348397 +-0.599939 0.32302 -0.696371 0.408123 -0.0737024 -0.637588 -0.98979 -0.996502 +-0.883334 0.19633 -0.89659 -0.215099 -0.550339 0.384832 -0.740544 -0.549133 +0.0599547 0.690338 -0.91832 0.938188 0.305775 0.0802236 -0.201966 0.478655 +0.550545 0.07251 0.719926 -0.048884 0.366542 -0.351833 -0.211951 0.613254 +-0.794952 0.048904 0.638651 -0.784534 0.130564 0.0426809 -0.580999 0.626428 +0.798411 0.505826 0.818592 -0.174041 0.38094 -0.272236 0.720355 0.709383 +0.857351 0.100727 -0.613272 -0.410095 0.567996 -0.00762872 0.926644 0.640707 +-0.0424957 -0.161533 0.81314 -0.246815 -0.130873 0.310154 0.402256 0.159093 +-0.389781 0.223039 -0.683524 -0.395225 -0.497549 0.791054 -0.751099 -0.724181 +-0.661612 0.891685 0.62511 -0.399175 -0.681625 0.613913 0.0347462 0.0741704 +0.92973 0.777514 0.523026 -0.188668 -0.518442 -0.154507 0.876129 -0.0304955 +0.359611 0.437814 0.215449 0.679015 -0.385793 0.244239 0.0285141 0.377071 +-0.0901188 0.861664 0.592853 -0.0103729 0.634642 0.0399738 0.375644 -0.942805 +-0.878677 -0.0977806 -0.581259 0.909113 -0.949485 0.539159 -0.269272 -0.644702 +0.396922 -0.901451 0.775878 0.743231 0.387978 0.902272 0.647426 0.204801 +-0.727022 0.221606 0.394251 0.138904 -0.0424268 0.910571 -0.508341 0.724071 +0.699054 -0.868596 0.542153 -0.840958 0.599846 -0.624429 -0.632413 -0.654074 +-0.665642 0.538683 -0.0799395 -0.896025 -0.706551 -0.786008 -0.672906 0.353977 +0.959652 -0.202836 -0.794991 -0.53457 0.781096 -0.101194 -0.171251 0.486897 +-0.859707 0.950463 -0.763817 -0.91514 -0.333851 0.936668 -0.216623 -0.0952078 +-0.894765 0.105362 -0.950423 0.562549 0.270471 -0.699869 0.315632 -0.91655 +0.882887 -0.00132108 0.980841 0.409653 -0.563253 0.885914 0.880727 0.964139 +0.823164 -0.920521 -0.649476 -0.626808 -0.285936 -0.248118 -0.361665 0.420277 +0.19636 0.0985554 0.150611 0.517697 -0.304759 0.122974 0.815924 -0.685767 +0.451288 0.321481 0.130937 0.116384 0.121141 -0.86833 0.639199 0.260986 +0.864675 0.681775 -0.218958 -0.769449 -0.677597 -0.971851 0.0532934 0.221523 +0.533964 0.15659 0.28682 -0.818857 -0.201443 -0.649906 0.542813 -0.00959073 +0.817783 0.165464 0.103392 -0.716906 0.962953 -0.202037 -0.0759537 0.186108 +0.562349 0.0929924 -0.666527 0.447057 -0.733005 -0.0808003 0.938691 0.94022 +0.377163 0.794003 0.878441 -0.585736 -0.216602 0.317632 -0.368325 0.960691 +0.35932 0.217905 -0.66962 0.757986 -0.0605952 0.369402 0.349153 0.375401 +0.128361 -0.759455 -0.454601 0.231159 0.182047 0.626316 -0.2662 0.970907 +0.417101 0.00294624 -0.31508 -0.81961 -0.645843 0.760031 -0.700553 -0.275863 +-0.643067 0.412063 0.268319 -0.878727 0.847759 -0.53539 -0.0379323 -0.756312 +0.31784 -0.727992 0.910541 0.947458 -0.616752 0.155985 -0.757064 0.0402706 +0.29477 0.486366 -0.195294 -0.44712 -0.730204 -0.224981 -0.573309 0.365301 +-0.640745 0.15997 -0.675915 -0.983852 0.582019 0.769503 -0.534825 0.822197 +0.730151 -0.652336 0.771257 -0.715613 -0.529114 -0.349577 0.334493 0.516408 +0.648553 0.539158 0.357103 -0.0156328 -0.427603 -0.911554 0.407488 0.392862 +0.879597 -0.0713534 -0.370896 0.695681 0.629233 -0.630578 -0.522855 0.574893 +0.84401 0.66487 -0.815655 -0.919033 0.258513 -0.873484 0.752816 -0.409359 +-0.62824 0.90338 0.339717 -0.61761 0.708712 0.962615 0.832122 0.00398013 +-0.885082 0.586661 -0.607857 0.0706468 0.343362 0.236728 -0.269383 -0.238784 +0.820654 0.911229 0.255108 -0.290276 0.363748 0.739205 0.626344 -0.791513 +0.157016 0.378835 0.249012 0.831632 -0.408016 0.483629 0.405754 0.547478 +0.015345 -0.932139 0.660487 0.521992 0.603381 0.245233 -0.274024 -0.335447 +0.887678 0.491729 -0.737601 -0.187352 -0.994706 0.889207 0.187995 -0.183223 +0.565283 0.82096 -0.138177 -0.527245 -0.400863 0.554744 0.761942 -0.335533 +0.309582 0.00424392 0.218933 0.0392123 0.274676 0.806379 -0.305205 0.0880121 +-0.676519 0.820172 0.265933 -0.807138 -0.155751 -0.939377 -0.649055 -0.562359 +-0.0252011 -0.727199 0.342119 -0.622712 -0.692151 -0.535785 0.0109545 -0.354449 +0.594403 -0.620663 -0.501857 -0.531579 -0.286862 -0.493018 0.931711 0.897296 +-0.188629 0.836926 0.816477 -0.514478 0.70182 -0.150489 -0.656092 -0.223061 +-0.637774 0.922224 -0.366716 -0.853182 -0.165967 -0.47444 -0.15255 0.237983 +-0.959962 0.731896 0.677249 -0.947991 0.0474711 -0.464246 0.180211 0.4343 +0.471294 0.390443 0.688116 -0.0258603 0.253201 -0.524004 0.00343533 -0.197581 +0.498937 -0.79427 -0.387358 -0.200615 -0.781537 0.0654888 -0.0235635 0.910196 +-0.654484 0.841849 0.349937 0.278838 0.641925 0.914998 -0.901531 0.22933 +-0.283348 0.922009 -0.824676 -0.71865 -0.791757 -0.625036 -0.321023 0.854829 +0.0107176 -0.664931 0.239071 0.40789 -0.654548 -0.848005 -0.750935 -0.713981 +0.506206 0.495062 -0.304657 -0.643287 0.723505 0.241457 0.119593 0.371297 +0.180474 0.468024 0.988186 -0.48715 -0.991846 0.244942 0.0528599 0.0637469 +0.833889 -0.11873 -0.17861 -0.189427 -0.298778 0.55161 0.243032 0.545208 +0.722107 -0.0935925 0.516911 -0.487714 -0.745494 -0.379238 0.257987 -0.666524 +0.497401 0.842661 0.209398 0.760874 -0.923557 0.1712 0.0554442 0.195015 +-0.936423 -0.663775 -0.104996 0.00741343 -0.744289 -0.617282 0.594674 0.979071 +0.208138 0.782254 -0.158247 0.222795 0.579382 0.147957 -0.114167 0.960539 +-0.923005 -0.898775 -0.0621371 0.552772 -0.858906 -0.068227 0.865541 0.5706 +0.781961 0.640867 -0.809071 0.136981 -0.356763 -0.0792435 0.297144 -0.538134 +-0.221544 -0.354654 0.4786 0.333252 -0.174252 -0.244583 0.869017 -0.0716268 +0.848776 0.283365 0.868168 0.0538657 -0.532768 0.579825 -0.506475 0.345407 +-0.652467 0.0745767 -0.161587 0.0106741 -0.00559021 0.74463 0.533452 -0.450377 +-0.541299 -0.547479 0.713555 -0.706911 0.158814 -0.232027 -0.642914 -0.11275 +-0.345691 -0.477523 0.309209 -0.576494 -0.709177 0.254141 0.88782 -0.0494284 +0.00376162 0.476296 0.324455 -0.0231295 0.75273 -0.678247 -0.766696 0.992602 +-0.392655 0.221898 -0.996051 0.643405 -0.289373 0.555213 -0.966631 0.388454 +0.399735 -0.0782908 0.282509 0.809283 0.0621044 0.686929 -0.287878 0.146168 +0.468366 -0.599108 0.491734 0.415345 -0.597701 -0.188818 -0.321578 0.439873 +0.933667 0.912003 -0.689847 0.776399 0.132141 -0.0142812 0.841542 0.904968 +0.932671 -0.205578 0.107385 0.059832 0.510427 -0.0480776 -0.67251 0.621484 +-0.100876 0.549002 0.634983 -0.119785 -0.446428 -0.391563 0.403919 0.590761 +-0.0603544 0.45941 0.25589 0.579738 -0.983069 -0.459147 -0.0990035 0.0473122 +0.954596 0.633348 0.609027 -0.12728 -0.442261 -0.953808 -0.452732 0.578247 +0.0964376 0.993204 0.940248 0.510918 0.32833 -0.98558 -0.614856 -0.511803 +0.761979 -0.582177 0.478123 0.168238 0.191916 -0.600198 -0.60908 0.438701 +0.779942 0.212245 -0.551264 0.909407 0.112989 0.237651 0.659996 -0.871192 +0.0781793 0.62752 -0.608189 0.948704 -0.494867 0.79049 0.940317 -0.817677 +-0.87335 0.831035 0.457211 0.991613 -0.673819 0.715329 -0.923197 0.650651 +0.505027 0.455998 0.244774 0.620398 0.896838 -0.0624675 -0.294483 -0.714691 +-0.807255 -0.184722 -0.606469 0.0510232 0.179566 -0.0579363 -0.174412 -0.863459 +0.710181 -0.587959 -0.998859 -0.779537 0.221212 -0.918746 -0.626431 0.0818739 +-0.881738 -0.0697553 0.506168 -0.434019 -0.935939 -0.120315 0.219988 -0.846367 +0.375305 -0.854521 0.182392 -0.314735 0.30013 -0.474127 -0.841578 -0.627124 +0.52294 0.382034 0.54439 0.0941296 -0.679883 -0.380568 0.572685 0.711513 +-0.316525 0.277625 0.983235 0.518219 0.241373 0.743714 0.0649138 -0.20638 +0.693347 0.403006 -0.464385 -0.823494 -0.321207 0.918251 0.647452 -0.502137 +0.441142 0.647581 0.632004 0.487662 0.731203 0.863621 0.463359 0.786659 +0.384 -0.0455528 0.481857 0.413089 -0.458782 -0.667023 0.522426 0.29537 +-0.82415 -0.550388 -0.255981 -0.735899 -0.380215 -0.627895 -0.234079 0.944972 +0.893836 0.735363 -0.769291 0.944714 0.285597 -0.0938004 -0.123621 0.755603 +-0.888358 0.278655 0.92245 -0.598397 -0.230367 0.748407 0.520847 0.348698 +-0.896829 -0.145125 0.962619 -0.92495 0.451189 -0.261137 -0.286005 -0.679152 +-0.539385 0.775541 -0.0944589 0.367213 0.542262 -0.346505 -0.532552 0.139301 +0.977876 0.734137 0.408733 0.485077 0.972942 -0.759233 0.735209 -0.552718 +-0.943534 0.544304 0.0340769 0.887574 0.901972 -0.674539 0.0974603 0.926637 +-0.330129 -0.703179 -0.577478 0.0477279 0.188415 0.855658 0.152493 -0.0639507 +-0.232286 0.224599 -0.370838 -0.712825 0.675681 0.00981678 0.389022 0.0244613 +-0.399395 0.894336 0.551905 0.89118 -0.444561 0.764462 -0.303071 0.141737 +0.786329 0.673323 0.477762 -0.167822 0.71861 0.664168 -0.268925 0.0828351 +0.863814 -0.929986 -0.434447 0.898087 -0.0612498 0.757239 -0.258106 -0.0494983 +0.392358 0.420596 0.134843 -0.944536 -0.672695 -0.387 -0.65693 0.562342 +0.881747 -0.842434 -0.0466943 -0.516486 -0.14465 -0.743237 0.874053 -0.0565631 +0.0330436 -0.311132 -0.173063 0.210661 -0.25813 0.318614 0.198463 -0.630609 +-0.166034 -0.966343 0.488652 -0.836782 0.809192 -0.263693 0.743423 -0.139854 +-0.448914 0.728159 -0.371649 0.183715 -0.382062 -0.611343 0.360754 -0.750939 +0.725689 -0.275327 0.566848 -0.258814 -0.89277 -0.198909 0.874353 -0.27228 +0.25559 -0.404302 -0.887753 0.832919 -0.60103 -0.480956 0.772441 0.973311 +0.814496 0.535915 0.530017 -0.528991 -0.287927 0.471753 0.607369 -0.930765 +0.255896 0.792492 -0.72809 -0.515453 -0.327744 -0.130237 -0.962123 -0.945513 +-0.791085 -0.155853 -0.759945 0.17272 0.012639 0.71853 -0.295496 -0.962142 +-0.738404 -0.942573 0.219774 -0.242158 -0.79843 0.567457 -0.269836 0.573959 +0.999862 -0.292232 0.296913 0.154585 -0.0319392 -0.101248 -0.0284865 0.566198 +-0.270317 0.0990491 0.800965 -0.972202 -0.758828 -0.524636 -0.795831 0.0511171 +0.74104 0.756612 -0.777225 0.890035 -0.0559034 -0.177004 0.0648665 0.159184 +0.722954 -0.44605 -0.930824 -0.892966 0.94335 -0.801206 -0.183307 0.882795 +0.071331 0.312503 -0.0158416 -0.384237 0.11333 0.190089 -0.532708 0.89314 +0.560323 0.165608 -0.487801 0.839083 0.777147 0.619958 -0.326733 -0.48473 +-0.959508 0.596919 -0.347908 -0.28008 0.708603 -0.00157721 0.895788 -0.556427 +-0.330629 0.710724 -0.820599 0.278355 -0.190401 0.0906331 0.498114 -0.751765 +-0.333808 0.420045 -0.497672 0.946621 0.0894518 -0.432735 -0.813018 0.373842 +0.426476 -0.225521 0.45047 0.819105 0.865342 -0.921414 -0.725207 -0.425674 +-0.281437 0.995249 -0.529129 -0.677178 -0.601884 0.0964011 0.361923 -0.301413 +-0.664911 0.927445 0.739841 -0.37735 -0.0321333 -0.925231 0.257107 0.0908388 +-0.176315 -0.843917 0.273098 0.716013 0.123057 0.70907 -0.217759 -0.686514 +0.733115 -0.0402991 0.0794695 0.546967 0.874903 0.170671 0.692598 0.649382 +0.116708 0.113768 0.641518 0.0478678 -0.137072 -0.241049 0.762593 0.292057 +-0.490503 -0.604258 0.0301591 -0.551319 0.302458 0.900232 0.561375 0.133538 +0.768615 0.121881 -0.720506 0.681753 -0.984649 -0.0141507 -0.930949 0.0295205 +-0.042986 -0.762953 -0.0271066 -0.0377672 0.199279 0.867505 0.494154 -0.93018 +0.990379 -0.300296 -0.549796 0.408229 -0.861129 -0.196474 0.457403 0.546383 +-0.390446 0.157214 -0.0581865 0.846007 -0.152204 0.591226 -0.703394 0.535103 +-0.332402 -0.532502 0.315163 0.111102 0.822611 0.735132 0.962867 0.336456 +0.808038 0.369777 0.0355726 -0.328323 0.362608 -0.635222 -0.31314 -0.477716 +0.810855 -0.941815 0.240262 0.999463 0.299438 -0.182634 0.168391 -0.956243 +-0.410342 -0.887757 -0.825826 0.476632 -0.633834 0.967322 0.287407 -0.803921 +-0.727006 -0.72843 0.216492 -0.807746 0.965501 0.845416 -0.179987 0.172446 +0.496043 0.741301 -0.192255 0.0823884 0.260061 0.376388 0.895602 -0.492551 +-0.67124 0.524929 0.424585 -0.588839 -0.918418 0.833771 -0.666691 -0.395147 +0.70891 -0.546548 -0.494552 0.765338 0.351682 0.208478 0.309074 -0.783014 +-0.414118 0.216203 0.311043 -0.769911 0.25044 -0.914296 0.505495 -0.862396 +-0.661161 0.318837 -0.323545 -0.749562 0.238528 -0.864356 0.0969031 0.343573 +0.910163 -0.0435227 -0.306567 -0.91579 0.758843 -0.735411 -0.657015 0.067253 +0.0824448 -0.143139 0.000233853 -0.669545 0.979572 -0.171555 -0.00872194 -0.281785 +0.553714 -0.0448039 -0.297894 -0.269935 0.0816493 -0.817265 -0.25409 0.816555 +-0.910175 0.453318 0.0867426 0.65485 0.408334 -0.109336 0.461691 0.673779 +-0.53455 0.371076 -0.413704 -0.303239 -0.20085 0.627329 -0.142815 -0.277738 +-0.376888 -0.239065 0.720016 0.992076 -0.966696 -0.850758 -0.604795 0.39294 +-0.268847 0.142458 -0.491271 -0.25731 0.839292 -0.403519 0.276029 0.275732 +-0.272131 -0.649085 -0.397107 -0.473747 0.19504 -0.315186 -0.332551 0.953764 +0.829421 -0.277897 0.291972 -0.431647 0.319913 0.532588 -0.648084 0.792957 +0.32397 0.325757 -0.530295 0.875518 0.530823 -0.369587 0.977863 -0.806537 +0.5498 -0.512532 0.631372 -0.219018 -0.309337 -0.791233 0.126655 -0.668416 +-0.907103 -0.593879 -0.258768 -0.929844 0.31005 0.643959 0.199629 0.539163 +-0.157051 -0.0516952 -0.924173 -0.313176 -0.951263 0.925897 -0.487796 0.898177 +-0.856732 -0.994336 0.980966 -0.988833 0.120569 0.071028 -0.546373 0.314786 +0.445977 -0.957414 0.668461 -0.363623 -0.943982 0.283875 0.509337 0.141872 +-0.638478 0.152685 -0.0681733 0.038048 -0.773979 0.927497 0.659393 0.135351 +-0.940054 0.211372 0.528711 -0.50352 0.805783 -0.510394 -0.569456 -0.694606 +0.0995063 -0.891677 0.57187 -0.0835409 0.565456 -0.58246 0.992037 0.395467 +0.275065 0.529805 -0.155233 0.176407 -0.0336307 0.896007 -0.9481 -0.81459 +-0.237838 -0.994235 -0.109618 0.173412 -0.748352 -0.882013 0.387504 0.673715 +0.822711 0.0505035 -0.110435 -0.783284 0.166197 0.0547938 0.927833 0.147362 +-0.657396 0.340709 0.40621 0.679443 -0.0472974 0.883564 0.82865 0.495513 +-0.0387411 0.711403 0.235356 0.777087 0.303619 0.594127 0.0310233 -0.757835 +-0.109776 -0.193426 -0.497913 0.853871 0.123684 0.176588 0.0694529 -0.201389 +-0.0402764 0.83056 0.175167 -0.107285 -0.739853 -0.232708 0.541223 0.677185 +0.501453 0.569484 -0.510039 -0.34945 0.0179517 0.943833 -0.158113 -0.919172 +-0.493293 -0.971963 -0.212403 -0.643734 0.443588 -0.641623 -0.211297 -0.466253 +-0.0285846 0.0773716 0.0650886 0.980142 -0.458166 0.0895902 0.789982 0.714124 +0.255996 -0.769745 -0.0267572 -0.166986 -0.530757 -0.915754 0.720455 -0.116985 +0.782805 -0.949967 -0.99872 0.61993 0.255601 0.802841 0.552145 0.315338 +0.084646 0.0161256 -0.0109366 0.443328 0.748397 0.30841 -0.415378 0.618193 +-0.507773 0.272894 0.858081 0.257301 -0.119435 -0.306529 -0.497836 0.704057 +0.661695 0.386045 0.397397 -0.532988 0.505115 0.188356 0.425434 -0.406217 +-0.0724046 -0.0522931 0.618651 -0.746365 0.585327 -0.164312 0.388168 -0.829286 +0.327152 -0.611959 -0.104688 -0.439687 -0.989773 0.593231 -0.359783 -0.100241 +0.395388 0.228014 -0.361063 -0.592886 0.237209 -0.85933 -0.952566 -0.567496 +-0.425794 0.707947 -0.217454 -0.948841 -0.951188 0.427717 0.649977 0.451391 +-0.0809486 0.762827 -0.208069 0.761946 0.195246 0.330323 -0.712674 0.385718 +-0.713438 -0.0104818 0.373325 -0.158264 -0.558272 -0.935253 -0.180376 0.257992 +0.963579 -0.467634 -0.991456 0.73661 0.420621 0.611541 0.129878 -0.139247 +0.121076 -0.232961 -0.685685 0.175954 0.636974 0.106251 0.771119 -0.486818 +0.0236844 0.845598 0.0274395 0.794204 -0.937526 0.593828 -0.677017 -0.46641 +-0.0135729 -0.615094 -0.398661 -0.833819 -0.523664 -0.0747468 0.2075 0.892752 +-0.846625 -0.545092 -0.043494 0.667598 -0.934632 -0.468268 -0.682847 0.355478 +0.137197 -0.336166 -0.205873 0.956068 -0.551939 -0.292111 0.62029 -0.690471 +-0.0719763 0.243208 0.906418 -0.861834 0.826217 -0.213284 0.0212987 -0.233671 +0.0813541 0.170654 0.403923 -0.187356 -0.816106 -0.151359 0.105874 -0.401042 +0.839184 0.347649 -0.0576062 0.760529 0.391581 0.9243 -0.352764 0.961582 +0.502812 0.134488 0.341987 0.788667 0.503163 0.692971 -0.780474 0.0476577 +0.0412754 -0.350309 0.454983 0.312676 0.135271 -0.523718 -0.418448 -0.362349 +-0.197467 -0.358567 -0.105724 -0.338137 0.461614 -0.0580483 0.303333 -0.0102347 +0.219552 0.908984 0.285955 -0.793621 0.608321 -0.35922 -0.554176 -0.939427 +0.549849 0.31185 0.952824 -0.612367 -0.0122756 -0.859247 -0.707739 0.599578 +0.755847 -0.487411 -0.746853 -0.356608 -0.491911 0.465175 -0.783563 0.508618 +0.747822 0.40923 -0.84765 0.00950605 -0.459484 0.215416 0.843092 -0.900749 +-0.332525 -0.528359 -0.896191 0.602761 -0.0746646 -0.976921 0.10818 -0.704926 +-0.476777 -0.739367 0.915101 0.256158 0.407109 0.512779 0.016504 -0.390586 +0.481183 -0.791426 -0.862797 -0.457648 0.183429 -0.921095 -0.586662 0.357809 +0.778921 0.753544 0.436628 0.964292 0.391287 -0.9507 0.180487 0.87763 +-0.915636 -0.357254 -0.0276632 0.0985259 0.365129 0.632246 0.0456464 0.826809 +0.162956 -0.551402 -0.100095 0.375576 0.929266 -0.768643 0.453956 -0.558734 +0.387555 0.00583336 0.0956637 0.150533 0.535709 0.224147 0.459317 -0.328455 +-0.302872 0.997435 0.693767 -0.580299 -0.923281 0.38768 0.910991 -0.944723 +0.263872 -0.00554942 0.922022 0.966055 -0.916112 0.953158 -0.0659692 0.67065 +0.771442 0.564864 -0.0156295 0.887604 0.702961 -0.705951 -0.818255 -0.528323 +-0.310714 -0.288474 -0.58712 0.717359 0.159609 0.551893 0.975287 0.827947 +0.65936 0.82215 0.939652 0.648182 0.252733 -0.17138 0.522031 -0.4215 +-0.706526 0.1775 -0.273366 -0.687876 0.854777 0.63618 0.398037 0.020683 +0.753955 0.0357367 0.332278 0.184082 -0.120687 -0.0202955 -0.494045 0.0165401 +0.563232 -0.762517 -0.758065 0.385607 0.0584629 0.0359835 0.564418 0.658008 +-0.814176 0.193863 0.340561 -0.467972 0.730094 -0.590777 0.266266 0.898681 +0.42032 -0.158488 0.0773322 0.629157 0.148051 0.788621 -0.0995409 -0.51202 +0.551366 -0.174213 0.211137 0.44097 0.627692 0.487515 -0.110838 -0.259599 +0.660744 0.808913 0.431178 -0.743901 -0.70084 -0.614744 0.873532 0.947402 +0.657012 0.677467 -0.88745 -0.848636 0.488145 -0.70814 0.21825 0.146662 +-0.640812 0.575023 0.305682 -0.321175 -0.789839 0.669056 -0.265304 -0.460024 +0.0602146 0.623089 -0.118032 -0.258082 0.32257 -0.434977 -0.706771 -0.730281 +0.785421 0.949763 0.00173022 0.307924 0.913622 0.945387 -0.192498 -0.78929 +0.0812777 -0.1087 -0.902461 -0.439343 -0.0509033 0.493594 -0.91322 -0.911076 +0.664665 -0.345977 -0.122002 -0.148442 0.995442 0.948341 -0.474989 0.717596 +0.560131 0.514181 -0.436591 -0.0717882 0.487307 -0.670861 -0.0540871 0.73297 +-0.345602 0.578287 0.131515 -0.470945 0.13739 -0.263547 -0.158584 0.305424 +-0.484451 -0.718533 -0.885015 -0.280674 -0.918536 0.212214 -0.176913 0.517279 +0.988947 -0.76769 -0.749337 0.300556 -0.37006 0.164866 0.228126 -0.759785 +-0.174493 -0.924436 -0.506373 0.482527 -0.956326 0.165372 0.633601 0.177169 +-0.517201 0.00372408 0.415542 -0.350327 0.222067 0.225172 0.815001 -0.0865672 +0.197375 0.222817 -0.747992 -0.503789 0.468773 -0.439407 0.033173 -0.129953 +0.827224 -0.466374 -0.495222 -0.0898777 -0.680222 -0.585435 0.916833 0.0594001 +0.959447 -0.380616 0.975301 -0.367369 0.40445 -0.823556 0.0115204 0.84144 +-0.472505 0.360614 0.206951 -0.583504 -0.625714 -0.748102 0.330881 -0.562482 +-0.990271 -0.739283 -0.191383 -0.00171732 0.546829 0.295452 0.0531057 -0.383237 +-0.72186 -0.835512 -0.705172 0.381392 -0.606595 0.77036 0.123339 -0.249107 +0.888597 0.00179132 -0.78501 0.794097 -0.651798 -0.813885 0.78348 0.297299 +0.81999 0.15467 -0.14832 -0.458069 -0.404541 0.832797 -0.630262 0.480856 +0.314595 0.0334145 -0.135598 -0.202529 0.999964 -0.198896 -0.246905 -0.513281 +-0.884823 0.558152 0.314944 0.438152 0.426111 0.895771 0.404761 -0.743871 +-0.0142195 0.576544 0.263497 0.550393 -0.177705 -0.0444126 -0.493675 0.149114 +0.788509 -0.967804 0.0512684 -0.000240066 0.968937 0.177356 0.894977 -0.0332478 +0.920454 -0.684096 -0.00578537 0.343446 0.376961 -0.825182 0.973292 0.59011 +-0.815357 0.00406678 0.781357 -0.772359 0.270754 0.888258 0.359646 0.399655 +-0.113866 -0.884301 -0.958318 -0.32709 0.840044 -0.628694 0.628969 -0.204064 +-0.438121 -0.670837 0.590836 -0.805603 -0.007223 0.575179 -0.82525 0.826362 +-0.547629 -0.954535 -0.644461 -0.955827 -0.766725 -0.351031 0.903685 -0.599275 +0.854089 -0.314952 0.0995219 0.0699437 -0.669311 0.942229 0.149795 0.537265 +0.309702 -0.824829 -0.548082 0.206617 -0.725008 0.180603 0.580146 0.615781 +-0.854342 0.479803 -0.9838 -0.099605 -0.763394 0.237341 0.934116 -0.420095 +0.115805 -0.208419 -0.087311 0.129972 -0.563641 -0.421101 -0.970127 0.137739 +0.44262 -0.177393 0.167527 -0.692812 0.599586 -0.743865 -0.772632 -0.176744 +-0.549924 -0.368415 0.30554 0.353603 -0.123664 -0.352592 0.847888 0.423067 +-0.413168 -0.0570652 0.847956 -0.918095 -0.741655 0.462271 -0.679351 -0.111826 +0.287593 0.46235 -0.579968 0.335121 0.6549 0.460653 -0.167511 0.622548 +-0.672489 0.443283 -0.203378 -0.216303 0.0656424 0.964999 0.400008 0.477621 +0.207475 -0.961349 -0.262596 -0.731828 -0.506035 -0.999647 0.751166 -0.764657 +0.467351 -0.367681 -0.953751 0.359332 0.754394 -0.999689 -0.531382 -0.871787 +0.250477 -0.796916 0.423656 0.909619 0.553729 -0.122082 0.977349 -0.467007 +0.520121 0.95428 -0.410991 -0.409846 0.546661 0.840189 -0.915785 0.98718 +-0.18025 -0.607312 0.0637037 0.37189 -0.847285 -0.180727 0.508935 -0.30391 +0.643897 0.352201 -0.662156 -0.883445 -0.235406 0.303709 -0.568661 -0.853786 +0.555629 -0.404865 -0.93202 0.41341 -0.61751 -0.304193 0.857318 0.10947 +0.712673 -0.808243 -0.0434287 0.0282617 0.200517 -0.420758 -0.663233 -0.804838 +-0.477177 0.173882 -0.980349 -0.973668 0.196806 -0.165048 0.889967 -0.527342 +-0.189642 0.0841829 -0.158568 0.690367 -0.68358 0.333694 0.835314 -0.687871 +-0.711753 -0.443409 0.998708 0.174378 0.91963 -0.664183 -0.811339 -0.656113 +0.0287801 0.0142831 0.551603 0.962091 -0.00350028 -0.531681 0.525424 0.25806 +-0.458069 0.485684 -0.0619558 0.833071 0.0482247 0.535973 -0.236037 0.867441 +-0.023838 -0.0643108 -0.996132 -0.567693 0.440262 -0.103496 -0.527486 0.464781 +-0.698311 -0.296613 0.0111023 -0.488601 -0.659732 -0.738163 -0.963845 0.230247 +-0.908222 -0.299702 -0.642994 -0.55212 0.260429 -0.226378 0.913648 -0.365756 +0.437429 0.162903 -0.195237 0.531475 0.091433 0.282727 0.203729 0.00381281 +0.0990043 0.819328 -0.611776 0.123238 0.6737 0.398916 -0.234533 -0.337256 +0.814935 -0.153293 -0.76881 0.169639 -0.338824 -0.85024 -0.273738 -0.613287 +-0.210824 -0.627221 -0.541288 -0.0872546 0.389206 0.701921 -0.782778 0.79226 +-0.909832 -0.215319 0.660727 0.775423 -0.372287 0.624207 -0.637745 0.932302 +0.842689 -0.874822 0.0611899 0.730969 -0.580852 -0.337593 0.67403 -0.244609 +0.22271 0.545747 -0.321391 0.866144 -0.615409 -0.860523 -0.670567 -0.749662 +-0.726717 0.681525 -0.87862 -0.620928 -0.606091 0.0870114 0.752608 0.857461 +-0.0590785 0.818145 -0.332715 0.360067 0.841109 0.216229 0.0631998 -0.885411 +0.955158 -0.937858 0.360506 -0.519713 -0.420515 -0.412394 0.668483 0.306322 +0.00551993 -0.873231 0.567241 -0.0486603 0.887307 0.0875648 0.479888 -0.155571 +0.904497 -0.342693 0.382679 -0.19778 0.53716 0.508197 -0.269558 -0.792825 +0.52473 -0.304597 -0.224985 0.751555 0.353214 -0.999656 0.783507 0.413489 +0.80228 0.66089 -0.584213 -0.968646 0.498895 0.162749 -0.338572 0.816104 +-0.557026 0.883686 0.343095 0.334774 0.344759 0.755417 0.136652 -0.945347 +-0.416951 -0.878276 -0.971276 -0.830583 0.798158 -0.499066 0.237057 0.266891 +-0.760204 0.386817 0.558751 0.27612 -0.285203 -0.0346366 -0.97617 0.0346681 +-0.146884 0.400747 -0.0775784 0.900523 0.017959 0.649192 -0.478388 0.674617 +0.74203 0.950873 0.685794 -0.64869 0.540257 0.513511 0.138377 0.322264 +-0.727548 0.706718 -0.000295323 0.629921 0.396159 -0.73155 -0.172958 0.0498129 +-0.878049 -0.118984 -0.213529 0.759694 0.833882 0.731587 0.97162 -0.613445 +-0.491061 0.196977 0.356361 -0.742985 -0.945365 0.274974 -0.489835 0.625618 +-0.630478 -0.36574 0.463239 -0.116383 0.783928 0.979597 -0.947382 0.560773 +-0.33433 0.104791 0.744223 -0.622755 0.0544037 0.687749 -0.376238 -0.977356 +0.530733 -0.95224 -0.583356 -0.262283 -0.837691 -0.114288 -0.498621 0.398882 +-0.85912 0.775853 0.96867 0.873247 -0.597385 -0.258265 -0.469445 -0.541538 +-0.657603 0.994144 -0.518487 0.717148 0.357168 0.781278 0.366237 -0.91158 +0.66088 0.979942 -0.0887133 -0.708632 0.394368 0.691787 -0.0560976 0.0170481 +0.421953 0.0205685 -0.456769 0.384411 -0.558128 -0.0706432 -0.337617 0.425415 +0.825493 -0.570805 -0.197645 0.826435 -0.975019 0.0510593 0.31627 -0.0646259 +-0.341256 -0.966377 -0.388371 -0.530386 -0.940404 -0.291 0.621017 0.938019 +0.207462 -0.835385 -0.933832 0.802338 0.576419 0.876296 -0.0189136 -0.62584 +0.566295 -0.204288 0.381545 -0.957756 0.229146 0.911575 -0.273125 -0.86176 +-0.159784 0.118258 -0.0928733 0.908685 -0.75321 0.17539 0.9311 0.919689 +-0.895679 -0.869722 -0.305613 0.978413 -0.260642 -0.22097 0.0108463 0.464738 +-0.921535 0.531013 -0.89864 -0.181785 -0.987569 -0.301404 -0.462394 0.0737861 +0.275929 -0.76026 0.881128 -0.806603 -0.375909 -0.117435 -0.324399 0.734031 +0.199174 0.951772 -0.786122 -0.469441 -0.660992 -0.839116 0.227365 -0.330594 +0.490465 -0.898334 0.179136 -0.984101 0.140673 0.909234 0.331808 0.915265 +0.0119734 0.416263 0.976076 0.496574 0.495028 0.0999223 0.712925 -0.870446 +0.00638765 0.296281 0.926079 -0.487033 0.584958 -0.50556 -0.439026 0.833546 +0.630958 -0.596538 0.605977 0.0390853 0.720553 0.89873 -0.543126 -0.975361 +-0.748472 0.0475716 -0.529878 -0.430742 -0.397697 -0.0979335 -0.674655 0.399633 +-0.48724 0.549792 0.658135 -0.309457 -0.883989 -0.732573 0.226791 0.930981 +0.332137 0.11424 -0.839425 -0.51136 -0.177398 0.102265 0.13192 -0.0157651 +-0.0631248 -0.227487 0.380461 -0.0747341 -0.61549 -0.529484 0.299037 0.690554 +-0.682568 0.532712 -0.0527239 -0.420051 0.867505 -0.599011 -0.0133785 -0.554751 +-0.859661 -0.463941 0.418014 -0.706624 0.611324 -0.157146 -0.279821 0.827332 +0.409209 -0.439493 0.0758388 -0.201192 -0.989339 -0.671252 0.649598 -0.763886 +-0.914459 -0.531413 0.484629 -0.590613 0.333156 -0.369144 -0.667669 0.831709 +-0.0354539 -0.354733 -0.36816 -0.664978 -0.657856 0.397374 0.136192 0.849048 +-0.187504 0.806837 -0.606356 0.617539 -0.66631 0.475744 -0.214508 0.0036764 +0.217461 0.652098 0.448925 -0.427721 0.0810363 0.467725 -0.360456 -0.857412 +-0.574992 -0.526611 -0.635704 -0.546381 -0.0412227 -0.340441 0.649255 -0.361588 +-0.674937 0.380113 -0.0846294 -0.94479 0.798474 0.402347 0.19684 0.536886 +-0.675463 -0.145289 -0.374791 0.953359 0.81581 0.498523 0.309522 0.0254998 +0.959249 0.559139 0.0918515 -0.367284 -0.10403 -0.586723 0.628689 -0.179668 +-0.513358 -0.496821 -0.293347 -0.909988 -0.880276 -0.776228 -0.615681 0.497814 +-0.319152 0.116039 0.912388 -0.241796 -0.301361 -0.514832 -0.856162 -0.247559 +-0.925836 -0.392175 0.176942 0.595711 -0.172777 -0.787395 0.183967 0.739094 +0.0525105 -0.0792188 0.350732 0.3928 -0.712205 0.207856 -0.768793 0.254312 +-0.141179 -0.219261 -0.260389 -0.16628 0.726619 0.475262 0.264393 -0.873328 +-0.850199 -0.00897556 -0.188208 -0.269785 0.461309 0.815468 0.420283 -0.807427 +-0.203922 0.784878 -0.0223819 0.962732 0.933451 0.441232 -0.0194445 -0.0915435 +-0.305227 -0.065699 0.800444 0.588996 -0.981894 -0.325637 -0.900863 0.437637 +-0.932576 -0.402177 -0.17346 0.634145 -0.0238627 0.963023 -0.697048 -0.351221 +-0.287877 -0.79217 0.760758 0.751295 0.660071 0.252603 -0.976328 -0.0297105 +-0.0206815 0.53749 -0.924362 0.92181 -0.442592 -0.605057 -0.450468 0.572781 +0.872323 -0.262186 -0.471666 -0.801154 -0.109649 0.101526 0.593327 -0.357968 +-0.426648 -0.874541 0.306597 -0.978336 0.149578 -0.158159 -0.398312 0.0457713 +-0.835031 0.381016 0.301201 0.472713 -0.147695 0.233435 0.72058 -0.178571 +0.38076 -0.0232382 -0.0441087 0.293799 -0.503988 0.688588 -0.275395 -0.476685 +0.529689 -0.941966 -0.669545 0.614952 0.318608 0.0132478 0.140862 -0.212678 +-0.423667 -0.677594 0.59492 -0.305622 -0.237802 -0.470778 0.0884266 0.535806 +0.797109 -0.145284 0.136003 0.334246 0.848925 0.900752 0.585877 -0.112343 +-0.192336 -0.908105 -0.334296 -0.715652 0.879834 -0.402718 -0.872987 0.296066 +-0.653681 -0.184739 0.940983 0.209873 0.544847 0.282653 0.339019 -0.428972 +-0.194294 -0.0596286 -0.810739 0.726835 0.451793 -0.707472 -0.950164 -0.236336 +0.637462 -0.256761 -0.670492 -0.193041 -0.915003 -0.731883 0.0366833 -0.245979 +-0.105886 0.743982 -0.740773 -0.865156 -0.87489 0.848912 0.523122 0.946026 +0.943791 0.325707 -0.671541 0.375961 -0.77914 0.430596 -0.032457 0.605194 +-0.416813 0.324276 0.131722 -0.258272 0.233975 -0.837174 0.594033 -0.505245 +0.817084 0.530562 -0.549989 0.444467 0.369909 -0.963979 0.301724 -0.0409435 +0.291737 0.278037 -0.110433 -0.692999 0.195792 0.158968 0.153503 0.196956 +0.0469962 0.823191 0.500532 0.255422 -0.840759 -0.393582 0.875076 0.992727 +-0.87556 0.237767 -0.912181 0.542862 0.163611 -0.453662 0.668599 -0.0388426 +0.509496 0.187931 0.693408 0.267075 0.047769 0.67806 0.273793 -0.90513 +0.941115 0.58601 -0.337077 -0.9097 0.450873 0.0433947 0.742621 0.913492 +-0.351252 -0.270526 -0.017284 0.292235 0.708252 -0.35782 0.313049 -0.47276 +-0.541737 0.477614 0.914302 0.187172 0.94786 -0.782811 -0.590241 0.803465 +0.435025 -0.298838 0.966699 0.491255 0.315439 0.61704 -0.395228 -0.392824 +0.0618606 0.597891 0.787649 -0.20335 0.281462 -0.341359 0.857565 -0.417426 +0.612807 0.878532 0.54191 -0.91607 0.910597 0.944217 0.28692 -0.872627 +-0.252343 0.483845 0.558156 0.837132 -0.354361 -0.824163 -0.0468551 0.598785 +0.458753 0.509112 -0.107625 0.358408 -0.773761 0.920507 0.5133 0.0146401 +0.509639 -0.86449 -0.980457 0.734108 0.190015 0.447651 -0.797752 -0.151256 +0.360296 0.0602842 -0.158694 0.522549 0.5189 0.105209 -0.804607 0.086694 +-0.652952 -0.91206 0.793921 -0.820705 -0.486369 0.0957001 0.426589 0.868367 +0.53759 -0.900937 -0.408052 0.440422 0.931243 -0.939854 0.697158 0.11263 +0.477773 0.598425 0.387298 -0.300583 0.593027 0.204957 0.279418 0.654208 +0.97629 -0.725834 -0.961116 0.794761 -0.262701 -0.494546 0.105579 -0.491426 +0.492469 0.610988 -0.318709 -0.0778782 -0.844701 0.345592 -0.564935 0.97157 +-0.572702 0.185061 0.297169 -0.0994182 -0.00171426 -0.524556 0.89236 -0.18742 +-0.920791 0.840442 -0.438821 0.255716 0.491834 -0.915584 -0.0704714 -0.0883544 +0.189995 -0.134067 0.97846 -0.787238 -0.106828 0.518955 -0.0981396 0.8735 +0.307827 -0.141964 -0.618969 0.390996 -0.845153 0.720349 -0.585495 -0.470719 +0.860287 0.957916 0.716103 0.645734 -0.443912 0.728765 -0.969215 -0.632284 +-0.630021 0.101462 0.505277 -0.31435 0.668509 0.262507 0.604366 -0.172558 +0.772381 0.101686 -0.207645 -0.649582 0.0250132 0.734477 0.646272 0.88122 +-0.97247 -0.124273 0.376311 0.202495 0.241541 -0.249191 0.274259 0.865586 +-0.488333 0.124564 -0.0907398 0.851215 -0.817624 -0.456055 0.178095 0.490173 +0.423917 0.385585 -0.351425 0.518931 0.852271 0.457764 0.622485 -0.757424 +0.429632 -0.0673521 -0.986684 -0.915105 -0.18279 -0.0054937 0.369554 -0.0413534 +-0.259525 -0.900449 0.869191 0.383346 -0.588504 0.0464366 -0.331381 -0.603107 +-0.0421066 0.521706 -0.457787 -0.859707 0.121332 -0.688289 -0.627297 0.147912 +-0.728273 -0.327037 -0.797175 0.124753 0.607685 0.515823 0.467392 0.624953 +0.64195 -0.921966 0.923367 -0.0103251 0.274991 -0.719075 0.666047 0.609565 +0.418002 0.0575557 0.185757 -0.440775 0.916628 -0.329855 0.139507 -0.459667 +-0.304674 0.664609 -0.687229 0.254551 -0.12832 0.225946 0.336273 -0.859519 +-0.746536 -0.479471 -0.48817 -0.720331 0.466456 -0.533169 0.349399 0.599752 +-0.0693433 -0.66859 -0.879882 -0.599289 0.237562 0.877683 -0.689928 0.312201 +-0.0717741 0.936356 0.287193 0.598347 0.280962 -0.415179 -0.631889 -0.759308 +-0.476299 0.500561 -0.389283 0.0752255 -0.823881 -0.629974 -0.777593 0.589724 +0.16367 -0.901747 0.137909 -0.200179 -0.310539 -0.730002 -0.753454 0.221545 +-0.823618 0.71099 0.120062 0.94313 -0.540315 -0.174294 0.0997371 -0.303804 +0.229812 0.166168 0.0178043 0.381846 -0.180521 0.73516 0.403749 -0.395635 +0.0992278 0.330474 -0.581984 -0.138663 -0.617203 -0.135819 0.600691 0.0268797 +-0.867314 -0.584255 0.809209 0.329158 0.90545 0.1753 -0.400219 -0.820276 +0.889715 -0.615202 0.422693 -0.512655 -0.28159 0.688616 0.16942 0.915295 +-0.161029 -0.515813 0.783674 -0.0141777 -0.208935 0.24286 -0.581803 0.900997 +-0.293134 -0.926263 0.11065 0.889701 -0.196972 0.240469 0.0977642 -0.269138 +0.947799 -0.692088 -0.0539804 0.98837 -0.0416007 0.883438 -0.574093 0.762027 +-0.753382 -0.476178 -0.120212 -0.250303 0.819984 -0.35557 -0.724674 -0.062026 +0.172574 -0.24731 0.490383 0.534608 -0.507587 -0.114624 0.343643 0.664548 +0.495146 -0.904574 -0.595895 0.768859 0.559969 0.467195 -0.774944 -0.95477 +-0.496379 -0.641125 0.517243 -0.275505 0.684218 -0.632928 0.711154 -0.404151 +0.384641 0.584677 -0.0372261 -0.243059 -0.511208 0.586556 -0.907605 -0.916789 +-0.765877 0.416646 -0.193778 0.299936 0.0225621 -0.559503 -0.502178 -0.568158 +-0.172914 -0.717633 -0.802751 0.0825455 0.629485 0.0559055 0.603573 -0.372429 +-0.433832 0.562259 0.441644 0.0365981 0.571727 -0.35747 -0.903666 0.170439 +-0.0182899 0.582303 0.396927 0.490243 0.428688 0.826028 -0.769244 0.131322 +-0.0649736 -0.486877 0.307647 -0.282122 0.00321377 -0.278147 0.188783 -0.79282 +-0.461419 0.0587373 0.00863312 -0.836072 0.982549 -0.9016 0.212936 0.769096 +-0.145638 0.854439 -0.722917 -0.676676 0.549161 0.770368 0.173006 -0.11283 +-0.285712 0.358843 0.35235 -0.10454 0.691551 -0.251248 0.720999 -0.941685 +-0.298927 -0.697801 -0.450239 0.780919 -0.708458 -0.815036 -0.271314 0.457595 +0.791149 -0.843316 0.986323 -0.546781 -0.255032 -0.426204 -0.280213 0.992756 +0.409801 -0.670451 0.40012 -0.39183 -0.345477 -0.42522 -0.966631 0.786546 +-0.312445 -0.0309838 -0.554719 0.140774 0.273426 0.832503 -0.157708 -0.171821 +0.876955 0.827097 0.328969 0.488356 -0.144097 -0.996807 -0.356181 -0.611194 +0.58955 -0.0291045 -0.332825 -0.197394 0.425674 -0.699252 0.642559 -0.794596 +-0.529947 -0.0193539 0.98977 -0.353262 -0.42003 -0.0451023 0.746347 -0.644907 +0.626559 0.780302 -0.308995 0.229609 -0.366871 -0.362754 -0.0219739 0.366236 +-0.820737 0.242969 0.358432 -0.452546 -0.731564 0.431045 -0.976861 0.198892 +-0.376432 0.77431 0.649057 0.319377 -0.850052 -0.58928 0.0156763 -0.812998 +-0.493896 0.41896 -0.517035 -0.811271 0.40643 -0.23912 -0.356455 0.6641 +-0.41023 0.700385 0.737752 -0.644895 -0.0700061 0.171841 -0.712709 0.679685 +0.538251 -0.777821 -0.00789328 0.261929 -0.679857 0.744825 -0.789269 -0.806872 +-0.232583 -0.195067 0.392618 -0.953142 -0.0904066 0.264567 0.543454 0.863769 +0.290802 -0.0484524 0.212338 0.70878 0.594766 -0.970906 0.383978 -0.11893 +0.857453 -0.598519 0.700796 -0.637398 -0.947281 -0.287379 -0.68622 -0.578451 +0.61569 -0.0413152 0.189581 -0.025467 0.591727 -0.384784 0.507341 -0.200527 +-0.327361 0.216689 0.278828 -0.610616 -0.924084 0.571235 0.658218 -0.0680971 +0.369076 -0.508041 0.07053 0.444586 0.423478 -0.771579 -0.973658 -0.133692 +0.689909 0.288778 -0.00930822 -0.40316 0.0746928 -0.730177 -0.455322 0.308062 +-0.75867 -0.902211 -0.767175 -0.50214 0.067032 -0.196716 -0.721929 -0.217908 +-0.418515 -0.0892808 0.334449 -0.530416 0.275294 0.628504 -0.519566 -0.494369 +-0.805554 -0.36026 0.697411 0.742628 0.980818 -0.986554 0.618374 -0.362962 +-0.781809 0.252234 -0.938689 0.307694 0.114816 0.43207 0.371939 -0.700677 +0.530469 -0.880949 -0.927973 -0.948703 0.888111 0.513933 0.541723 -0.232608 +-0.634947 0.83015 -0.854609 -0.868864 -0.741456 0.315889 0.372722 -0.512462 +-0.526706 -0.967388 -0.395551 0.967151 0.180373 -0.285083 -0.712694 -0.527483 +0.826659 0.197001 0.168898 0.802458 0.683358 0.603025 0.696586 0.786815 +-0.399333 0.491316 0.156492 0.155273 -0.664144 -0.0482588 0.715768 -0.964983 +-0.347052 0.276578 -0.427049 -0.665851 0.376211 -0.133866 0.833013 0.84972 +-0.550404 0.293952 -0.652923 0.263592 -0.66903 0.908735 0.13017 -0.207125 +0.558522 0.0243762 -0.252566 0.425635 0.970293 0.201025 -0.933472 0.485181 +0.418512 0.973218 0.934906 -0.851058 -0.923213 -0.00528692 0.663163 0.336733 +0.300305 -0.449919 -0.917818 0.56312 -0.846321 -0.209079 0.420273 0.414711 +-0.534024 0.782551 -0.195787 0.633653 -0.618581 -0.0647479 -0.559319 -0.689941 +0.118928 0.136822 -0.0326385 -0.767448 -0.983201 -0.608737 -0.538138 -0.771818 +0.0642788 -0.23575 -0.955825 0.531643 0.896696 -0.93714 -0.743735 0.83404 +-0.759699 -0.307215 0.897355 -0.912848 -0.202901 -0.503434 -0.127725 0.657111 +0.588039 0.642811 0.798735 -0.357405 0.429553 -0.8095 0.142669 0.281876 +0.731616 -0.745817 0.687116 -0.963179 -0.202882 -0.560052 0.219008 -0.577207 +0.171463 -0.789992 -0.26166 0.148791 -0.461787 -0.620984 0.800754 -0.533135 +0.146333 0.133831 0.129373 -0.38419 -0.852851 -0.963873 -0.754177 0.450762 +-0.0854603 0.463209 0.162718 0.14919 -0.398727 0.0412205 -0.741961 0.344254 +0.648451 0.533531 -0.305557 0.943382 0.259429 0.35427 -0.170163 -0.687101 +-0.384459 0.862088 -0.538926 -0.0551781 -0.162722 -0.610804 -0.342109 0.922671 +-0.707937 0.290735 0.500182 -0.917945 0.0717458 0.131323 -0.568289 -0.723669 +-0.821583 0.919702 -0.380865 -0.0226084 -0.0980169 -0.397053 -0.563419 0.710794 +0.933331 -0.210902 0.145008 -0.830874 0.545921 -0.766231 0.70935 0.380556 +-0.118949 0.833075 -0.138143 0.388361 0.294505 0.307174 -0.122785 0.242586 +-0.989216 0.278074 0.944563 -0.887136 -0.495663 0.0860985 -0.365618 0.539404 +0.327773 -0.00732701 -0.453755 0.49406 0.660355 -0.33187 0.600803 0.460809 +-0.823785 0.387044 0.260448 0.539937 -0.544437 -0.772416 0.882615 0.984641 +0.374367 0.764354 -0.356019 -0.124537 0.879582 -0.492949 -0.0903574 0.798317 +0.995688 0.216409 0.996199 0.896376 -0.227497 0.438396 -0.629191 0.420907 +-0.653814 0.570553 0.109743 -0.133596 -0.481663 0.863684 0.35997 -0.985733 +0.877632 -0.193981 0.700456 -0.519204 -0.0232916 0.408009 0.420762 0.891245 +0.32699 -0.195468 -0.745174 0.669308 0.567984 0.125155 0.369705 0.586686 +0.350518 0.857318 0.235782 -0.0613923 0.930641 0.442481 -0.0804044 -0.710929 +-0.160918 -0.982138 -0.358503 -0.523143 0.300813 -0.429542 -0.209023 0.313505 +-0.96121 -0.735214 0.238155 0.770734 -0.797954 0.685873 -0.435539 -0.481711 +0.226573 -0.947087 0.483706 0.88208 -0.280183 0.838936 -0.29229 0.391445 +-0.908792 0.486889 0.217232 -0.822105 0.414924 -0.482778 0.676449 0.183816 +0.0442115 0.623602 -0.65238 0.278868 -0.0683481 -0.255748 -0.937132 -0.459009 +0.863573 0.615655 -0.315832 0.0756595 -0.984566 -0.196992 -0.69228 0.814119 +-0.349865 -0.339028 -0.898581 0.673827 -0.976803 -0.226884 -0.38377 0.208712 +-0.399204 0.283016 0.270532 -0.602491 0.505236 0.957699 -0.688275 0.0937528 +-0.362006 -0.180131 -0.00592082 -0.640728 0.261582 0.991148 -0.900273 -0.806972 +0.583159 0.246894 -0.333407 -0.949928 0.864219 -0.751779 0.691914 0.384194 +0.519467 0.975468 0.330569 -0.90671 0.876544 0.528413 -0.257303 -0.443693 +0.975573 0.761322 0.906247 -0.379877 -0.301486 0.88182 -0.270344 -0.0292251 +0.133132 0.527226 0.684918 0.763549 -0.154507 0.694995 0.568294 -0.583042 +0.703709 0.335868 -0.598098 0.939269 -0.985655 -0.51328 0.666223 -0.134206 +-0.993873 -0.0213064 0.558352 0.758266 0.0838586 0.83138 -0.29162 -0.224693 +-0.0316652 -0.193959 -0.22978 0.317311 0.36578 0.515929 -0.0359695 -0.285163 +0.912247 -0.53452 0.973823 0.231653 -0.736281 -0.0860418 -0.834986 -0.790922 +-0.577686 -0.576915 -0.0706287 0.202458 0.782071 -0.625289 -0.776728 0.0224522 +-0.707905 0.50783 -0.061236 -0.617065 -0.618228 -0.131832 -0.153148 0.942724 +0.360483 -0.871978 0.993859 0.114053 0.757332 0.386036 -0.361646 0.207122 +0.908065 0.830837 0.869343 -0.73375 0.928219 -0.464749 -0.571267 0.586814 +-0.341393 -0.627896 -0.264869 -0.585668 0.700693 0.094233 0.20721 0.479512 +-0.457757 -0.473789 0.576526 0.301305 0.574675 -0.883921 0.449592 0.0104652 +0.138251 0.49342 -0.17178 -0.56035 -0.762154 -0.121695 -0.563466 -0.339857 +0.406129 -0.857286 -0.290089 0.12217 -0.820902 -0.73995 -0.321759 -0.956618 +-0.0963213 -0.5873 0.645211 -0.0321442 0.133028 0.918141 -0.628066 -0.916372 +0.0722743 -0.914343 0.414923 0.546207 -0.107927 -0.494056 -0.643561 0.900971 +-0.249978 -0.145655 -0.814521 0.0326581 0.231742 0.836964 -0.941829 -0.804002 +0.574748 0.744282 -0.485392 -0.812953 -0.441999 -0.373936 0.301269 -0.338922 +0.219447 0.0117936 -0.441458 0.803417 -0.335385 -0.690639 -0.478367 0.307749 +0.132945 0.488976 0.135689 0.0114681 -0.025846 -0.599261 0.326764 -0.935265 +-0.363688 0.695589 -0.5346 -0.407649 0.981315 0.0246431 -0.527814 0.230187 +-0.875594 0.456132 -0.888954 -0.698443 -0.217489 -0.475568 0.0283053 0.889665 +-0.0128877 0.291354 0.546735 0.0149985 0.383543 -0.842329 0.701909 -0.570953 +-0.571183 0.999504 -0.122796 -0.961091 -0.891756 0.71844 -0.0322515 -0.0286555 +0.82554 0.507298 -0.134212 -0.0271159 -0.977184 0.319353 0.531244 0.676701 +0.459324 -0.53799 0.985868 -0.836446 -0.0763077 -0.135364 0.450683 0.898561 +0.648359 0.841209 -0.551843 -0.860345 0.270765 0.326527 -0.879455 0.606743 +-0.402212 0.427867 0.314495 0.436551 -0.918564 -0.38591 0.796554 0.613382 +0.302905 -0.495404 -0.523858 -0.104942 -0.363109 -0.583927 -0.972001 0.0532944 +0.57196 0.904289 0.0753444 0.932419 -0.375329 -0.864336 0.610242 0.694952 +-0.0443916 0.933443 0.92164 0.496693 0.104307 0.0601594 -0.965775 -0.0209767 +0.898485 -0.622735 -0.780745 0.850789 -0.766448 0.29336 -0.335751 0.598825 +0.185243 -0.417636 0.618871 -0.00301566 -0.522258 0.593437 0.548895 0.895387 +-0.717995 0.370277 0.364839 -0.995687 -0.34362 0.16334 0.0853892 -0.909615 +-0.664666 -0.751413 -0.577684 -0.726584 0.560147 0.913928 0.906507 0.918903 +-0.784676 0.796495 0.24843 0.758365 0.648675 0.446033 -0.661835 0.229135 +-0.218507 -0.842401 -0.94384 -0.340522 -0.567136 -0.0856874 0.249805 0.851357 +-0.419823 0.868567 0.316477 0.601669 0.182882 0.744039 0.381101 -0.264542 +0.20937 -0.216538 0.995052 0.398241 -0.835791 0.128067 0.835295 0.871096 +0.68631 -0.67594 0.499961 0.819347 0.0212814 0.424364 0.225614 0.337487 +0.455317 -0.873514 -0.57145 -0.689051 0.94138 0.449968 -0.647846 -0.764756 +0.947225 0.408823 -0.923999 -0.326329 -0.724871 -0.818855 -0.691498 0.0741818 +0.324278 -0.937081 -0.887451 0.609746 -0.796141 -0.0630527 -0.475713 -0.148614 +-0.218216 0.577573 -0.328165 -0.74413 0.539602 -0.320021 0.16646 0.732442 +0.914569 -0.247973 0.322736 -0.646617 -0.465801 -0.225577 0.343479 -0.18574 +-0.622274 0.509186 0.16363 0.474264 0.247911 -0.0491472 -0.337898 -0.773024 +-0.455746 0.925947 0.271179 0.157244 0.918011 0.816703 0.723029 -0.407765 +0.135431 0.207946 0.454171 0.150807 0.39808 -0.181156 0.662142 0.998837 +-0.170967 -0.262359 -0.352112 -0.862965 -0.722295 0.0390601 -0.383904 -0.561961 +-0.500291 -0.300887 -0.140161 0.443431 0.973627 -0.793971 0.31385 -0.409709 +-0.437718 0.280706 0.0449257 0.581218 0.0743008 -0.506769 -0.858017 0.947134 +-0.162883 0.12211 0.58106 -0.967633 0.00458991 0.879703 -0.186182 0.447892 +0.49764 -0.700122 -0.0962428 -0.345036 0.12346 -0.431724 -0.186435 -0.522608 +-0.916139 0.0949659 -0.0479898 -0.178232 -0.838173 0.496476 -0.827512 -0.224191 +0.847845 -0.909976 -0.778024 0.428089 0.224087 0.0605156 0.825071 -0.676221 +-0.336896 -0.495372 -0.848476 0.650922 -0.65299 -0.0757912 0.131118 0.18207 +0.418753 0.124491 -0.185776 -0.428969 -0.305312 0.527287 -0.701612 0.600852 +0.568295 -0.835178 -0.839875 0.585269 0.659516 0.675947 -0.870419 -0.405351 +-0.0963861 0.0854124 0.0702742 0.0915023 -0.728222 0.508501 -0.429693 0.42044 +-0.76163 0.699498 -0.394918 0.609276 0.849858 -0.225132 -0.535513 -0.601581 +0.443189 0.845143 0.129504 0.899637 -0.495319 -0.521681 0.333595 0.313646 +0.197139 -0.5217 0.542349 0.00545544 -0.983832 -0.280804 -0.278377 0.772221 +0.375314 -0.336739 0.659778 0.613643 -0.98438 0.0728006 0.439172 0.412867 +0.0230588 -0.932134 0.73279 -0.349458 0.68099 -0.138023 -0.507766 -0.789176 +-0.503146 0.0273425 -0.555536 -0.519163 -0.058158 0.402099 -0.0639556 0.272505 +0.549357 0.364673 -0.956001 0.21719 -0.669472 -0.0098492 -0.258739 0.660656 +0.620616 0.407279 -0.113876 -0.52831 0.178259 0.162639 0.868408 -0.0754357 +-0.362482 0.159049 0.517145 -0.45285 -0.445442 0.289062 -0.253505 0.674218 +-0.357427 0.573968 0.310438 -0.313141 -0.405675 -0.611489 -0.0276639 -0.429119 +-0.668139 0.635528 0.593448 -0.183699 -0.156371 -0.437839 0.390206 -0.294725 +0.129772 -0.211686 -0.492115 -0.84819 0.387332 0.938125 0.218802 -0.830251 +0.474645 -0.988604 0.910576 -0.992808 -0.88129 0.312076 -0.106249 0.108644 +-0.345939 -0.385284 -0.300995 0.887221 -0.488168 -0.120372 0.086807 0.952477 +-0.531646 0.545158 0.997297 0.209956 0.127618 0.882957 0.522523 0.942717 +-0.652333 -0.376931 -0.353511 0.229265 -0.824008 0.188566 0.924286 0.360831 +0.863307 -0.518797 0.179152 -0.749976 0.411346 0.971809 -0.650945 0.569322 +0.407134 0.599725 0.559955 0.0969481 0.617985 0.634583 0.42873 -0.569662 +-0.800046 -0.00313865 -0.728843 0.36328 0.289795 -0.115441 0.792551 -0.518129 +0.777594 -0.612453 -0.240238 0.344502 -0.542242 0.221281 -0.888601 0.00326914 +0.360732 -0.682803 -0.107311 -0.928915 0.129344 -0.616168 -0.538422 -0.288398 +0.33447 -0.176508 -0.741403 0.372003 -0.879242 0.606991 -0.504806 0.724598 +0.311839 0.822131 -0.686503 0.253273 0.346116 -0.336598 0.363425 -0.774734 +-0.94456 0.141385 0.696468 -0.508014 0.474444 -0.206303 0.024932 0.730156 +-0.555203 -0.937368 -0.736873 -0.940357 0.41468 -0.317797 0.505206 -0.744362 +-0.047413 -0.168765 0.699887 -0.011384 -0.712655 -0.569805 0.509026 -0.527639 +0.0921165 -0.0872709 -0.63125 0.913504 -0.522371 -0.873718 0.774925 0.8211 +-0.835514 0.807243 -0.451478 0.562789 -0.648487 0.600922 -0.185889 0.443629 +0.138278 0.140251 -0.433804 0.911148 -0.986832 -0.643513 -0.73119 0.346114 +-0.14968 -0.870077 0.155331 0.432867 -0.245532 0.585842 -0.17101 -0.467997 +-0.174975 -0.191355 0.0111016 0.206618 -0.0788315 0.206557 0.700146 0.26407 +-0.599876 0.367874 0.554409 -0.678359 -0.434445 -0.0627907 0.866011 -0.631266 +0.40957 0.101284 -0.593199 -0.497476 0.734292 -0.048336 0.488333 -0.971627 +0.267436 0.860481 -0.110975 -0.547661 0.84888 -0.978113 0.177378 0.646281 +0.264242 -0.20734 -0.404393 -0.706742 -0.245965 -0.0312825 -0.177695 -0.590433 +-0.88398 -0.292129 0.652842 0.679528 0.714599 -0.31054 -0.955297 -0.180481 +0.108656 0.826234 0.574338 -0.666069 -0.0100122 0.0803361 0.162848 0.692929 +0.274484 0.683277 -0.938547 -0.490008 0.165304 0.269299 0.823205 -0.373988 +0.135267 0.963689 0.717366 -0.515998 -0.840342 -0.704418 0.248176 -0.920035 +0.658957 -0.859143 0.970355 -0.329009 -0.0468982 0.204005 -0.170679 0.540487 +-0.527316 0.520957 -0.358999 -0.925968 -0.945894 -0.997646 -0.991608 0.55757 +-0.817878 -0.503903 -0.487906 -0.0567896 0.193223 0.892943 -0.45561 0.700621 +-0.759023 0.0254688 -0.855266 0.874996 -0.645042 -0.551461 0.761377 -0.818556 +0.291934 0.905122 0.66748 -0.661038 -0.908079 -0.753333 -0.513899 -0.200027 +-0.962323 0.27371 0.895297 0.81511 -0.258531 -0.648807 0.979072 -0.884441 +-0.82089 -0.681966 -0.228665 0.51323 0.270095 0.87616 -0.638903 -0.951388 +-0.261658 0.43373 0.287688 -0.948697 0.549712 -0.438453 0.882343 0.107756 +-0.143884 0.941573 -0.733211 0.0388048 -0.227978 0.025673 -0.069112 -0.699991 +0.0481841 -0.986915 -0.0591436 -0.579039 -0.00163794 0.448317 -0.88231 -0.274336 +-0.0520785 -0.520813 0.587888 -0.0927612 0.564898 0.914219 -0.469238 -0.868434 +-0.689648 0.248501 -0.830505 -0.00817715 0.57733 -0.193782 0.640914 -0.770624 +0.604876 -0.600517 0.369522 -0.0248955 -0.803796 0.736926 0.235804 -0.114192 +-0.314167 0.029882 -0.0550515 0.902548 0.00129659 0.0887846 0.468247 -0.973941 +-0.125029 -0.822576 0.898125 0.149557 0.932975 0.299965 -0.825157 -0.881807 +-0.019497 0.520082 0.830331 0.613313 -0.712255 -0.293715 0.290778 0.910808 +-0.612102 0.442327 -0.826731 -0.586718 -0.745161 0.35706 0.496725 -0.337971 +-0.177036 0.143153 0.442151 0.315148 -0.0962316 -0.534935 0.251563 -0.573321 +-0.795171 0.356316 -0.110224 -0.772718 0.609462 -0.916863 0.156313 0.00807432 +0.51919 -0.688593 0.174565 0.330887 0.937521 0.119489 -0.029361 0.330447 +0.267624 0.0636108 -0.766347 0.0368321 -0.178892 0.754918 -0.584797 0.646224 +0.0543071 -0.244817 -0.133002 0.418942 0.156912 0.401098 -0.457923 -0.0086396 +0.31796 0.274109 -0.591155 -0.588633 0.53215 -0.803649 0.917343 -0.0162614 +-0.748638 0.358657 0.0837448 0.412766 0.628267 0.987513 -0.393735 -0.0351636 +0.340234 0.160149 -0.422025 0.929521 0.150872 -0.185484 0.644958 0.399877 +0.369833 0.622548 -0.746154 0.576763 -0.24731 -0.221174 0.990903 0.196575 +-0.374449 -0.308648 0.572227 -0.51462 -0.993824 0.528717 0.864524 -0.982967 +0.375885 0.907404 0.759051 -0.413531 -0.569807 -0.301615 -0.487152 0.0736406 +-0.0547878 -0.567737 0.868215 0.726428 0.939528 -0.613973 -0.151486 -0.143228 +0.774938 -0.315413 -0.592695 -0.55891 0.740951 -0.956491 -0.0730064 -0.0338408 +-0.337309 -0.0691164 0.338541 0.999386 -0.0193022 0.677588 0.734364 -0.856655 +-0.028869 -0.752533 -0.453042 0.274491 -0.637134 -0.398187 -0.272979 -0.430847 +-0.673989 -0.286274 -0.562854 0.12427 0.0936976 0.965523 -0.82514 -0.49618 +0.770816 0.680283 -0.897072 0.501658 -0.617746 -0.586719 -0.798991 -0.136963 +0.236992 -0.614045 0.173716 -0.0687633 -0.446663 -0.79013 -0.328581 0.215918 +0.493988 -0.932995 -0.30012 -0.678104 -0.818305 -0.251725 0.0404109 0.767502 +0.92366 0.596716 0.529179 0.69413 -0.228518 0.821449 0.382839 -0.0813092 +-0.381741 0.980686 -0.408197 0.108125 -0.707274 -0.134126 -0.610366 -0.228834 +0.78183 -0.91614 0.500856 0.750621 0.544451 0.905196 -0.32836 -0.978336 +0.421739 -0.272365 -0.537244 0.79915 0.673203 -0.529353 0.328073 -0.6235 +-0.312532 -0.708554 -0.077073 0.70549 -0.0736282 -0.933252 -0.768467 -0.795785 +-0.605335 0.722372 -0.143753 -0.83284 -0.787781 -0.474113 -0.484129 -0.957288 +-0.29693 0.879444 0.245028 -0.304153 0.861379 0.416688 -0.231506 0.595379 +-0.819934 0.0964443 -0.702166 0.279822 0.6926 0.64321 -0.00340714 -0.504682 +-0.623415 0.140376 0.517706 0.813064 -0.0192871 -0.225431 0.851822 -0.311111 +0.906409 -0.463039 -0.125906 -0.326015 0.461082 -0.345953 -0.711728 0.454559 +-0.463604 -0.506316 -0.95116 -0.773319 0.288355 0.75944 -0.606086 -0.826483 +0.25271 -0.9609 0.945414 0.329588 0.374626 -0.145722 0.355244 0.951757 +-0.0978388 0.0883752 0.819972 -0.346529 -0.701948 0.493288 -0.484703 -0.277412 +0.752528 0.81242 -0.91897 0.369705 -0.87697 -0.705945 -0.149767 0.801977 +0.220821 -0.327548 -0.875952 0.101745 0.179896 -0.161492 -0.536122 0.681313 +-0.49327 0.614592 0.670578 -0.884864 0.518873 -0.634202 0.632039 -0.132086 +0.606229 -0.487425 0.290243 0.890012 0.20712 0.648662 0.68404 -0.837515 +0.571455 0.935079 -0.366354 -0.815684 0.142722 -0.033437 -0.672339 0.38266 +0.302957 -0.546423 0.826827 -0.648203 -0.067578 -0.0800815 0.933293 -0.585709 +-0.880886 0.413273 0.500182 0.490237 -0.448977 0.505172 -0.712596 -0.649271 +-0.349604 0.104807 -0.559456 0.81238 0.0240454 -0.134857 -0.231669 0.714498 +0.121195 0.511282 -0.764937 0.3487 -0.230063 0.306971 0.721399 0.910368 +-0.164307 -0.964873 0.255116 0.18614 -0.0710032 0.847507 0.13844 -0.425006 +-0.0294202 -0.663732 0.391538 0.125527 0.865593 0.744081 0.983922 -0.196187 +-0.592124 0.761828 -0.993756 -0.0473521 -0.201354 0.819108 0.566071 -0.97679 +0.132186 -0.938286 -0.845578 0.509997 0.337286 -0.952651 0.205407 0.526075 +-0.805208 0.0574104 0.400985 0.838457 0.273258 -0.357216 -0.7291 -0.0218883 +-0.798725 0.293082 -0.83925 -0.405219 0.772495 -0.162703 0.776866 -0.0616743 +-0.718476 0.490894 0.922168 -0.234468 -0.864068 -0.726702 0.125183 -0.739661 +0.224734 -0.449467 0.860439 0.548208 -0.219997 0.413782 -0.0719829 -0.89865 +0.668905 0.140998 -0.237877 -0.245798 0.191338 0.624373 -0.514573 -0.610171 +-0.852263 -0.702425 -0.839297 -0.988417 0.616082 -0.317768 -0.490215 -0.964163 +-0.845807 0.818447 -0.0769468 0.149338 0.644181 0.775342 -0.986283 -0.842497 +0.461963 -0.751987 -0.186809 0.128579 0.567975 -0.00383664 -0.100185 -0.23146 +-0.676349 0.539082 -0.0532405 0.0730482 0.135735 -0.985184 -0.171993 -0.712114 +0.750988 -0.183431 -0.936489 0.809974 0.796974 -0.648548 0.928596 -0.0290144 +-0.764139 -0.574596 0.13775 0.163946 -0.0185631 -0.50541 -0.505162 0.337413 +0.169893 0.80255 0.0326267 -0.64676 0.591884 -0.931843 0.333031 -0.28657 +0.711617 0.566115 -0.873711 -0.447148 -0.837245 0.937222 -0.443066 0.916289 +0.857331 0.209462 -0.746399 -0.962531 -0.794518 -0.353599 0.333256 -0.399661 +0.124117 0.673644 -0.395684 -0.754722 -0.178277 0.200462 0.831671 0.229839 +-0.0436045 -0.130365 0.0559433 -0.238672 -0.741023 -0.314417 0.832164 0.49558 +0.629799 -0.019173 0.363436 -0.479682 -0.308177 -0.71409 0.175529 -0.0225631 +0.73007 -0.840835 0.0629785 0.685571 -0.902139 0.616732 0.0802994 0.758177 +-0.85408 -0.0471578 0.590884 -0.0601573 0.983901 0.99031 -0.123045 0.882654 +-0.0816098 0.619264 0.334403 0.588455 -0.603777 0.955431 -0.729233 0.541021 +-0.518286 0.739772 0.271152 -0.965414 0.0938647 0.138862 -0.490594 -0.741147 +0.560105 -0.41576 -0.805391 0.423555 -0.91956 0.677451 -0.203752 -0.711401 +0.0538332 0.745948 -0.903786 -0.804641 0.806175 0.803283 0.770014 0.614073 +0.363265 0.0423812 -0.612926 0.623838 0.544472 -0.480674 0.933129 -0.139225 +0.451303 0.349994 -0.559412 -0.153014 -0.489767 -0.777127 0.249253 -0.492274 +0.984653 0.891803 -0.532161 0.583266 0.500533 0.71927 0.372692 -0.356016 +0.242516 -0.323755 -0.0772472 0.774458 0.187239 -0.73274 0.00992747 0.136559 +-0.280286 0.720583 0.00711111 -0.800192 -0.18599 0.435274 0.867915 -0.938762 +-0.839105 0.432264 -0.0551969 -0.132463 0.677694 -0.152299 0.666318 -0.775609 +-0.696103 -0.207586 0.481987 0.718709 0.0788425 0.0415259 -0.719586 -0.264512 +0.685926 -0.93111 0.303224 0.964486 0.601764 0.334563 -0.00143469 -0.867682 +0.47876 0.917552 -0.187515 0.0117107 -0.0857956 -0.918814 -0.45574 0.323111 +-0.875695 0.550742 0.672556 -0.856563 -0.826559 -0.484963 0.657209 0.851605 +0.574605 0.575943 0.887362 -0.51758 -0.0200551 -0.347917 0.267176 -0.547546 +-0.918976 -0.591552 0.649176 -0.12985 -0.805604 0.173736 0.374882 -0.68857 +-0.21926 0.724924 0.195898 0.787601 -0.344664 -0.129131 0.322424 -0.535366 +0.525124 -0.603729 0.46486 0.203147 0.0071692 0.17777 0.195174 0.00580404 +-0.410431 0.968821 0.338612 0.419906 0.463063 -0.970917 0.57079 -0.498508 +-0.489366 0.477389 -0.578136 -0.823802 0.346119 0.264939 0.540363 0.530289 +-0.865168 -0.757669 -0.21785 -0.299619 -0.409155 0.507296 -0.774418 -0.658391 +0.313145 0.924497 0.310088 0.868992 0.68397 -0.340971 -0.993908 -0.521261 +-0.728798 -0.536925 -0.820468 0.34252 -0.285503 0.643448 -0.787477 0.456246 +-0.93774 0.415129 -0.76223 0.142001 0.839158 0.211896 0.571701 0.111681 +0.637235 0.74066 0.878211 -0.592206 -0.921065 0.0648644 0.937055 0.87811 +0.736866 0.564391 0.962762 0.191391 -0.216403 0.376728 -0.126834 -0.73718 +0.363034 -0.382508 -0.952172 0.0407933 -0.771018 0.0679968 0.193112 0.955135 +0.249875 -0.114678 -0.653656 0.630404 -0.655171 0.56021 -0.417841 0.404821 +0.516553 0.790057 -0.0447277 0.0893541 -0.61616 -0.120965 0.0667103 0.701047 +-0.138791 0.383357 -0.428867 -0.50136 0.753356 0.281848 0.329351 -0.251867 +-0.469273 0.932868 0.380054 -0.698884 0.865777 -0.541439 0.683625 -0.116086 +0.744073 0.0712213 -0.103272 0.290377 0.169962 0.390293 -0.421272 -0.132716 +-0.458002 0.255651 0.2176 -0.189844 -0.275522 0.269161 0.672978 -0.357882 +0.985702 -0.727281 0.177093 0.998714 -0.575635 -0.200188 -0.432139 -0.176382 +-0.782175 -0.283259 0.972121 0.682 0.0863075 0.673289 -0.364885 -0.969685 +-0.711504 0.909925 -0.665869 -0.730461 -0.0691128 -0.292889 -0.111506 -0.0508709 +-0.635981 -0.124585 0.275619 0.845636 0.189531 0.0483202 -0.726763 0.887665 +0.223439 -0.0510921 -0.636781 -0.596858 0.749651 -0.164003 0.382015 0.816413 +-0.74869 0.744953 0.121052 0.418714 -0.385632 -0.0246765 -0.269526 0.827996 +-0.568231 0.0798874 -0.342219 -0.845772 -0.790258 0.310717 0.202105 0.202828 +-0.323885 0.914455 -0.873757 0.270622 -0.418957 0.719904 0.597644 0.907295 +0.257158 -0.916077 0.603025 0.131385 0.0668849 -0.797673 0.589164 0.158948 +-0.0432224 0.433686 0.764993 0.19622 0.482428 0.324204 -0.360954 0.177113 +0.957828 0.780848 -0.39585 -0.302662 0.276713 -0.250807 0.497336 0.330121 +0.0917771 -0.239933 0.755576 -0.0689747 0.942656 0.851844 -0.768862 -0.284016 +-0.680781 -0.207689 0.687366 -0.27144 -0.839248 -0.687103 0.336797 -0.677944 +0.497782 -0.586443 -0.629759 -0.997223 -0.0645083 0.937243 0.623351 -0.70684 +-0.138731 -0.673768 0.649323 -0.592869 -0.342837 0.51589 -0.681159 0.892454 +-0.617808 0.797262 0.280719 0.105536 -0.539847 0.769287 0.071249 -0.74514 +-0.990808 -0.95357 -0.0156943 -0.756002 -0.560972 -0.126089 -0.887808 0.634765 +-0.338516 -0.208635 0.597976 0.0854396 0.012734 -0.785142 0.0792855 -0.880097 +-0.0764062 -0.745109 -0.992707 -0.36499 0.335626 0.855709 0.324398 0.586782 +0.19424 -0.233436 -0.629849 0.356724 0.239352 0.532618 0.414879 -0.333027 +-0.758608 0.274271 0.53069 0.404052 -0.866642 0.713566 -0.901068 0.134162 +0.779362 -0.148483 0.543867 0.352114 -0.873935 0.186967 0.455569 0.725477 +-0.724292 -0.614634 0.202163 0.707401 -0.131517 0.454659 -0.95477 0.599232 +-0.20645 -0.719682 0.910262 -0.498215 -0.105908 0.163284 -0.735948 -0.488258 +0.549961 -0.24555 -0.872877 0.247513 0.442833 -0.847675 -0.36074 0.64803 +-0.252879 -0.0200819 0.59895 -0.920402 0.354448 0.528694 0.548263 -0.92867 +-0.25331 0.499176 0.650107 -0.41606 -0.0754911 0.498998 0.38674 0.882336 +-0.339236 -0.922157 0.543701 0.385575 0.725525 -0.253489 0.021898 -0.0273315 +-0.765082 0.00328447 -0.523069 -0.608791 0.636323 0.811651 -0.532138 -0.329503 +0.829887 0.628225 -0.187006 0.225173 0.577276 -0.211055 -0.892871 -0.483464 +-0.854714 0.858207 -0.0122937 -0.658461 -0.400685 0.0794606 0.850258 -0.797366 +0.0412844 0.667351 0.0407451 0.470619 -0.603677 0.0745575 0.539431 -0.254839 +-0.627035 -0.391491 -0.93397 0.931188 -0.307649 -0.0688708 0.878511 0.195199 +0.39852 0.737091 0.968778 -0.913558 -0.152581 0.64097 0.516574 0.0750405 +-0.719413 -0.496848 -0.0895111 0.0880705 -0.868255 0.0107875 -0.35242 -0.313344 +0.968694 -0.355047 0.0447438 0.633007 -0.656497 0.730452 -0.729791 0.0827981 +0.148828 0.428359 0.255626 0.258297 0.732308 -0.766279 0.352883 0.633439 +-0.497561 0.313801 -0.320826 0.0157509 -0.212151 0.255642 -0.647177 -0.782837 +0.606544 0.340345 -0.711952 0.899099 -0.794337 0.895916 -0.52872 -0.57984 +-0.213266 0.276505 0.797944 -0.713508 0.50813 0.499895 0.326735 0.807792 +-0.709922 0.730355 -0.852953 -0.357618 -0.322249 0.847351 -0.0743483 0.862197 +-0.260705 0.591657 -0.338952 -0.736816 0.627804 0.760506 0.0370344 -0.935321 +-0.99483 0.591093 -0.214169 0.230625 -0.845151 0.67705 -0.587658 -0.956223 +-0.714011 -0.811036 0.328978 0.0862574 -0.102706 0.907204 0.51428 -0.950143 +0.825537 -0.47859 -0.832021 -0.371021 0.147028 0.829249 -0.460161 -0.579437 +0.78764 -0.443974 -0.875969 -0.146768 0.489363 -0.810822 -0.505045 0.0578246 +0.18689 -0.509896 0.599836 -0.957962 -0.222421 -0.594202 -0.795124 0.227071 +-0.582764 -0.481441 0.65536 0.670812 -0.853464 -0.405088 0.645927 -0.484566 +0.852138 0.965099 -0.541339 0.838131 -0.910702 0.331916 -0.985499 0.0882578 +-0.900796 0.546121 -0.917633 -0.205875 -0.691595 -0.906553 -0.736063 -0.825395 +0.200625 0.893539 -0.447126 0.992227 0.620585 -0.866923 -0.306836 -0.676149 +0.396613 -0.814164 0.689558 0.428812 0.904269 0.100758 0.428217 0.480116 +0.740828 -0.670401 0.470159 0.184116 0.269109 0.902811 0.0948181 0.105362 +-0.470444 0.704059 0.497044 -0.460645 0.28168 -0.401993 0.682203 -0.101029 +-0.315868 -0.794748 -0.33912 0.868196 0.321008 -0.72829 -0.950654 0.864021 +0.94353 -0.773946 -0.640697 -0.321068 -0.16959 0.120698 -0.34633 -0.576954 +-0.25532 0.396661 -0.324702 -0.20864 -0.196708 0.0595977 0.627613 -0.274521 +-0.1019 -0.0184179 0.813906 0.879106 -0.524246 -0.839458 -0.195182 0.762441 +-0.452872 -0.80778 -0.10844 -0.422918 0.117921 -0.157016 0.418023 -0.899701 +0.381207 0.770573 -0.160566 -0.803347 0.828906 -0.860895 -0.0287614 -0.120912 +-0.375971 -0.196977 0.99154 0.848828 0.709757 -0.941375 0.413689 0.129763 +-0.135432 0.058013 -0.481544 -0.956331 0.43369 -0.175228 0.352469 -0.45887 +-0.271131 -0.964791 0.493779 -0.688609 -0.0275484 0.857738 -0.461904 0.0176501 +-0.452812 0.21217 0.541749 -0.0785204 -0.0615199 -0.57467 0.930401 0.455529 +0.701331 -0.634906 -0.981788 -0.771684 -0.175897 -0.00150364 0.658368 -0.544372 +-0.852321 0.837309 -0.811165 0.927336 0.684412 0.60988 -0.432303 -0.408333 +-0.566062 0.0970141 0.508099 0.97831 0.407016 -0.775956 -0.68734 -0.34894 +0.975476 -0.685599 -0.423073 -0.739336 -0.569095 -0.9524 0.934161 0.243014 +0.347246 -0.226405 -0.692922 -0.851449 -0.0457676 0.0100628 -0.497241 0.344657 +-0.391049 -0.257704 0.815436 0.99096 -0.134007 0.806396 -0.772571 -0.740668 +-0.774868 0.767908 0.147976 0.620459 0.00462954 -0.830532 0.41766 -0.390938 +-0.669933 -0.0416615 0.0964868 0.869981 -0.260919 0.786493 -0.0750642 0.878016 +-0.983086 -0.721285 0.0356617 -0.466093 -0.0409097 -0.0963076 -0.217036 -0.406273 +0.904678 0.12219 -0.0578239 0.892585 0.571189 0.146081 0.00117287 -0.323423 +0.9889 -0.551748 -0.438811 -0.625866 0.938955 0.696542 0.894238 -0.69931 +-0.0320403 0.00533449 -0.0125391 0.753212 -0.0913314 0.867907 0.159279 -0.660979 +-0.65511 0.657473 0.201508 -0.435361 0.59615 -0.955151 -0.941454 -0.812843 +-0.768966 -0.64707 -0.449595 0.887056 -0.269047 -0.0377617 0.0294012 -0.737474 +-0.313229 0.21805 -0.643576 0.899066 -0.824893 0.5781 -0.861668 0.327946 +0.862799 -0.0611898 0.783653 0.549268 0.493201 0.609317 -0.96656 0.556559 +0.0133684 -0.527867 -0.703127 0.911624 0.799844 0.554397 0.495858 0.721182 +0.43908 -0.711218 -0.72413 -0.164134 0.957587 0.566734 -0.608718 0.721829 +-0.473956 0.239482 -0.291373 0.758672 0.99164 0.0452519 -0.835765 -0.406954 +0.335401 0.223394 -0.931716 0.52907 -0.810138 -0.0436743 -0.755524 -0.228909 +0.290202 0.439833 -0.709652 0.499486 -0.757529 0.487796 -0.750841 0.0809009 +-0.528943 0.567796 0.533682 0.991938 0.743309 -0.487622 -0.110081 0.0541543 +-0.548527 0.988634 -0.336844 0.56271 0.9076 0.286145 -0.505793 0.621384 +-0.222138 0.891092 -0.0905769 0.514477 -0.444262 0.257015 -0.790373 0.424378 +0.763666 -0.830123 -0.806007 0.386166 -0.13065 -0.874418 0.711468 0.977072 +-0.667453 0.774677 0.215033 -0.103045 -0.359772 -0.503882 -0.821811 -0.279899 +0.776916 -0.208781 0.846638 -0.839401 0.39327 0.574632 -0.789329 0.542864 +-0.228708 -0.734394 -0.224797 -0.509429 0.373326 -0.490687 -0.637614 -0.19727 +-0.238996 0.120953 -0.416065 0.242201 0.656018 0.727064 -0.980073 -0.857004 +-0.926125 -0.744431 0.0295663 -0.495074 0.878549 0.628895 -0.793609 -0.138656 +-0.687222 -0.23321 -0.664315 -0.715454 0.435467 0.0495123 0.488384 0.419708 +-0.470442 0.975884 0.0590026 -0.905845 -0.438891 -0.219989 -0.693973 0.177237 +-0.941501 -0.884588 0.69855 -0.874291 0.752482 -0.881729 0.708262 -0.93316 +-0.508954 0.0458766 -0.792059 -0.182322 0.984095 -0.582856 -0.185611 0.265929 +0.244162 -0.261541 -0.964351 -0.329159 -0.735968 0.51962 0.651772 0.467936 +-0.106126 -0.597183 -0.750275 0.482004 -0.280488 0.357224 -0.949281 -0.8064 +0.298672 0.657303 0.309271 -0.0669985 -0.217628 -0.200461 -0.894731 0.864302 +0.498891 -0.484504 0.237507 -0.516705 0.383922 -0.581693 -0.822732 -0.503028 +0.460454 -0.91012 0.923092 -0.684988 0.413275 0.658274 -0.0419288 -0.0735897 +-0.831778 0.507878 0.98194 -0.778413 0.35959 -0.329035 0.650998 -0.333126 +-0.756533 -0.845052 -0.314941 -0.76689 0.201538 0.722158 0.699828 0.414017 +-0.0437371 -0.12473 -0.860191 0.661535 -0.500183 0.706605 -0.769794 -0.976089 +0.466445 0.562851 -0.868875 -0.225531 -0.177627 0.927466 0.357603 -0.811161 +0.00656017 0.965209 -0.148819 -0.338462 -0.431935 -0.27027 0.274063 0.634862 +-0.347729 -0.0305922 0.0709034 -0.29585 -0.187039 -0.957732 -0.108768 -0.166879 +-0.674004 -0.844242 0.167912 0.562829 0.375394 -0.314415 -0.644618 -0.904611 +-0.0256775 0.43706 0.167703 -0.122045 0.702429 -0.717653 0.831582 0.293733 +-0.620773 0.406897 -0.0985464 -0.964972 0.775873 -0.220469 -0.787068 0.493256 +0.651429 -0.688814 -0.243897 -0.40135 0.00912411 -0.675226 0.139356 -0.863417 +0.931631 -0.193099 0.478894 0.256669 0.472224 -0.192646 -0.34663 0.883549 +0.882007 0.820255 0.0359719 0.569316 -0.138325 -0.784179 -0.684112 0.0195816 +-0.844701 -0.190503 -0.558551 -0.612184 0.918313 0.829079 0.830881 -0.854826 +-0.578573 0.39969 0.22331 -0.391696 0.208646 0.250025 -0.0790775 0.789384 +0.96743 0.354552 -0.997684 0.797462 0.754953 0.419684 0.251792 0.294725 +-0.302599 -0.104254 0.211014 -0.756029 -0.982209 -0.00602782 -0.806971 -0.277436 +-0.284363 0.133574 0.394061 0.224389 0.51931 0.517874 -0.223655 -0.707307 +-0.971639 0.516331 0.670884 -0.881815 0.686452 0.538432 -0.316087 -0.905712 +-0.651487 0.346597 0.234044 -0.991198 -0.379236 -0.802704 -0.198115 -0.917887 +0.899136 0.905529 0.347404 -0.793734 0.169635 -0.438555 0.598018 -0.218781 +-0.680534 0.0772033 -0.554705 0.829286 -0.760164 -0.51107 0.873015 -0.793705 +0.968168 0.948096 0.743962 0.408089 -0.736592 -0.357396 0.269436 0.0816785 +-0.558592 0.196167 -0.937529 -0.436037 0.854778 0.488349 0.850979 -0.955412 +0.0536734 -0.176532 -0.711782 -0.436239 -0.964954 -0.104726 0.451129 -0.326247 +-0.486387 0.102119 0.234256 -0.421192 0.679901 0.133501 -0.368829 -0.530326 +-0.0808063 -0.57331 0.284529 0.682669 0.736315 -0.853189 -0.689337 -0.514051 +0.515633 0.838775 -0.400992 0.477558 0.549116 0.858222 0.323168 -0.729244 +0.36016 0.0528929 -0.922323 -0.0994507 -0.62948 0.634095 -0.200443 -0.442672 +0.83715 0.192852 0.32838 -0.266968 0.0421914 -0.866337 -0.0508683 0.0878756 +-0.97411 0.506679 0.296452 0.578632 -0.620198 -0.611143 0.364563 0.0918438 +-0.938963 0.391992 0.431048 0.565726 -0.34927 0.359105 0.289028 -0.672549 +-0.707697 -0.939126 0.812606 0.497211 0.457878 0.0245149 -0.687045 -0.38471 +0.0381184 -0.378653 0.931786 -0.419089 -0.0757799 0.439691 -0.997946 -0.12534 +-0.686592 -0.432369 0.27564 0.569506 0.647944 0.590072 0.0103596 -0.800668 +0.896275 -0.992825 -0.0750274 -0.100862 -0.204293 -0.211665 -0.677872 0.559411 +-0.536664 0.0907233 -0.338986 0.992628 0.352235 -0.264914 0.547069 0.150407 +0.775416 -0.92695 -0.434443 0.252423 0.317467 -0.331904 -0.557603 0.565371 +0.602662 0.408342 -0.512091 0.0030728 0.139674 -0.108054 -0.57626 -0.921403 +-0.692144 -0.171722 -0.433231 0.755881 0.675493 -0.733586 -0.173277 0.638359 +0.872178 0.637127 -0.924613 0.0491817 -0.757412 -0.887708 0.139245 0.951704 +-0.138399 -0.605358 -0.986579 0.587042 -0.076026 -0.85188 0.148138 -0.496719 +-0.188072 0.651901 0.729753 -0.958166 0.7573 0.628388 -0.823715 -0.319704 +-0.319146 0.212294 -0.851686 -0.528566 0.0971639 -0.779318 0.00756588 0.805455 +0.410997 -0.456638 -0.444694 0.38088 -0.348983 0.326262 -0.80014 0.684784 +-0.0217769 -0.728861 -0.271593 0.0100282 -0.139043 -0.569559 0.490239 0.291991 +0.191743 -0.956743 -0.0334999 -0.362208 -0.232509 0.187365 -0.267504 -0.98481 +-0.314604 0.807347 -0.0374692 0.457703 0.347372 -0.350642 0.503465 0.149619 +0.291539 -0.508797 -0.865771 -0.868354 0.657237 0.425768 0.342987 0.266782 +-0.242675 -0.0154465 0.336309 0.0771463 -0.549974 0.786037 0.777519 -0.661664 +0.199167 0.488603 0.925073 -0.294805 0.427892 0.976814 0.354408 -0.730521 +0.00497342 -0.723675 -0.157526 -0.221206 0.997355 -0.555464 0.591398 0.933278 +-0.798625 -0.680423 0.0390295 0.611335 -0.831012 -0.984318 0.804702 -0.591644 +-0.740838 -0.488049 -0.126706 0.10938 -0.999446 0.447424 -0.0374583 -0.409728 +-0.136065 0.476407 0.34104 0.968761 -0.469901 0.046042 0.177945 0.473385 +0.84876 0.810754 -0.282497 -0.835941 -0.920369 -0.480077 -0.621141 -0.380246 +0.877481 0.0974775 0.323491 0.188718 -0.294873 0.522551 -0.783575 -0.141574 +0.982167 -0.989738 -0.755443 -0.76878 0.636702 0.221192 0.254922 -0.323343 +-0.548756 0.730088 -0.321251 0.819124 0.262294 -0.0876072 -0.0599837 0.787316 +-0.0506024 0.647385 0.836957 0.103114 0.133693 -0.42191 -0.588739 -0.832526 +0.185687 0.468747 0.317314 0.650843 0.576084 -0.918716 -0.75977 0.142646 +0.346399 -0.424681 0.472921 0.880896 -0.71694 -0.440967 -0.489734 0.906221 +-0.380201 -0.530744 -0.21443 0.339864 -0.725634 0.794353 -0.489858 -0.268242 +-0.671276 0.208873 -0.833296 0.70882 -0.627373 0.955747 -0.991261 -0.73811 +0.732094 0.437701 0.880486 -0.0873656 -0.613097 -0.218302 -0.794763 -0.770974 +-0.126436 -0.374331 -0.403368 -0.154457 -0.686789 0.619502 0.80511 0.267929 +-0.326694 0.681777 0.933906 -0.157628 0.805015 0.426671 0.931648 -0.786719 +0.636221 -0.648427 -0.536288 -0.586465 0.306729 0.177567 0.979236 0.862653 +-0.0380231 -0.102955 0.719217 -0.870774 -0.664426 -0.676106 -0.65329 -0.745433 +-0.239066 -0.0182126 -0.715331 -0.199561 -0.561092 0.132848 0.42576 0.25964 +-0.0566575 -0.170979 -0.32052 0.879041 0.321288 0.269939 0.128845 -0.114174 +-0.294883 -0.418883 -0.266252 0.697484 0.0452615 -0.45592 -0.426135 -0.532594 +0.798272 0.133508 -0.362077 0.879304 0.884913 0.00422937 -0.061545 -0.248595 +-0.984744 -0.245919 -0.653422 0.0505498 -0.0114522 0.784298 0.77642 -0.986146 +0.536832 0.965122 -0.261572 0.951519 -0.55871 0.249804 0.553907 0.210255 +0.936155 -0.623036 -0.254564 0.423069 0.305309 0.653012 -0.439647 0.0252214 +0.584988 -0.127235 0.974026 0.723807 0.170148 0.759473 0.144984 0.770854 +-0.356029 0.451229 0.575067 0.576722 0.258416 -0.814711 -0.165241 0.51859 +-0.00813152 0.752535 -0.677814 -0.864048 0.229436 0.284087 -0.167891 0.436235 +0.00788004 -0.102295 -0.940285 0.828367 0.511707 -0.490535 0.0463589 -0.213364 +-0.638034 0.211723 0.306107 -0.073834 0.19495 -0.447647 -0.310053 -0.0380121 +-0.515999 -0.501062 0.472227 -0.0865003 0.589588 0.551636 -0.7153 0.459155 +-0.036833 0.334123 -0.22177 -0.805148 -0.0341958 0.527742 0.532444 -0.688905 +-0.179861 0.0147959 0.675828 0.865579 0.975198 -0.319942 0.808325 -0.250338 +-0.643869 -0.34536 -0.93296 -0.186212 -0.219868 -0.801813 0.492328 -0.592899 +0.606531 -0.506318 -0.447056 0.589777 0.565654 0.146293 -0.745378 -0.0403156 +0.964409 0.940273 -0.689325 0.305467 0.335155 -0.140431 -0.500529 0.319785 +0.960005 0.964473 -0.439225 -0.519572 -0.549881 0.909096 -0.0727993 0.529965 +0.476247 0.710058 0.0500236 0.943053 0.648911 0.195795 0.267082 -0.0229792 +-0.691105 0.306259 0.928882 -0.980668 0.0603002 -0.906808 0.0815965 -0.541805 +0.472548 -0.17892 0.405938 -0.920382 -0.815499 0.173898 -0.0650522 0.963914 +-0.192959 -0.605192 0.535509 -0.538357 0.474006 -0.749047 0.450723 0.391387 +0.689136 0.572692 -0.624065 -0.763781 0.821114 -0.732775 -0.354682 0.392788 +-0.428872 0.370659 -0.689162 -0.383518 0.158126 -0.362763 -0.298015 0.397011 +0.761692 -0.52822 0.767065 -0.411002 -0.563805 -0.677213 -0.584136 0.977493 +0.0483114 0.867581 -0.369478 -0.80581 -0.754131 0.452109 -0.771292 -0.680477 +0.710463 0.280461 0.10484 0.137275 0.104904 0.697411 -0.321435 0.515745 +0.85039 -0.110204 -0.530962 -0.495014 0.234349 0.964586 -0.413498 0.0765348 +0.778326 0.915482 0.428292 0.983919 -0.101911 0.560052 0.596412 -0.940664 +-0.00820141 0.341059 0.0756779 -0.65676 -0.291455 0.102098 -0.557903 0.142224 +0.382496 -0.451592 0.0654742 0.509533 -0.439345 -0.881442 -0.877415 0.66565 +0.381352 0.695412 -0.758496 -0.646606 -0.861144 -0.1932 0.444279 -0.417724 +-0.21722 -0.0174348 0.0919835 0.0670942 -0.478538 0.0741871 0.364884 0.225702 +0.754242 -0.240633 -0.405087 -0.57317 -0.875154 -0.369001 -0.646432 -0.0200557 +-0.257041 0.823314 -0.296069 -0.5396 -0.811253 0.782266 0.795831 -0.942367 +0.284828 -0.271832 -0.0547863 -0.048904 0.124154 -0.80463 -0.445958 0.481062 +0.750048 -0.618551 -0.625226 -0.102515 0.25261 0.583137 -0.903711 -0.397957 +0.628092 0.465506 -0.519213 -0.498953 -0.765629 0.893854 -0.668678 0.538349 +0.549358 0.544621 -0.197553 0.427111 0.419775 0.402888 -0.714201 -0.96057 +-0.789757 -0.24699 -0.690532 -0.754698 -0.507021 0.782456 0.134618 0.138965 +-0.145837 -0.907271 -0.380181 -0.171594 -0.887093 0.151408 0.0399608 -0.967782 +-0.239428 -0.868745 0.243802 0.786926 0.398945 -0.851344 0.113376 0.420488 +-0.474001 -0.71242 0.371567 -0.243781 -0.562235 0.783651 -0.0692558 -0.240311 +-0.573088 0.227966 0.506406 -0.409247 0.0447546 -0.362153 -0.846627 -0.0100686 +0.218826 0.0538275 0.471391 0.664573 0.659483 -0.246342 0.205041 -0.376889 +-0.56742 -0.297886 0.983211 -0.0619457 0.187484 -0.392358 -0.445509 0.532601 +0.151181 -0.226808 -0.781219 -0.88863 0.514738 0.578417 -0.291603 -0.377932 +0.320535 -0.259863 0.585372 0.367507 0.199292 -0.199893 -0.165519 -0.916644 +-0.193659 -0.323366 0.144188 -0.447858 -0.932131 -0.789041 -0.819976 -0.512463 +-0.785872 0.654538 -0.117231 0.182413 0.611999 -0.468289 -0.858888 -0.579697 +0.890708 -0.850613 0.956204 0.803646 0.691517 0.340154 -0.578665 -0.486647 +0.775513 -0.429141 0.722566 0.908044 0.542147 0.753112 -0.232435 0.267161 +0.339155 0.0100213 -0.250798 0.470405 -0.167442 0.62331 0.96121 0.290845 +-0.525227 0.816981 -0.111607 0.113413 -0.737994 0.713929 -0.515309 -0.511189 +-0.0366259 0.105772 0.733191 -0.174168 -0.0891108 0.0959599 0.12254 -0.549979 +0.0936712 0.983153 -0.748721 -0.0702506 -0.539602 -0.967965 -0.953551 0.779744 +0.439294 0.591822 0.524557 0.83802 0.936916 0.15132 -0.145569 -0.70357 +0.0577606 -0.890423 0.645814 0.52633 -0.140477 0.629657 -0.0911898 -0.867438 +0.641718 0.872184 0.674205 0.925779 0.969978 -0.692878 -0.541211 0.932084 +0.127287 0.339392 -0.436132 0.446942 0.323184 -0.427856 0.0450793 -0.547228 +0.571856 0.456378 -0.212494 0.412581 0.60747 0.457908 -0.730449 -0.432328 +0.716379 -0.282181 -0.149145 0.423577 0.531272 -0.192534 0.522158 -0.0139067 +0.392458 -0.43031 0.440483 -0.420511 -0.0837572 0.349625 0.878125 0.612409 +-0.48793 0.610584 -0.878666 -0.294242 -0.488136 0.777345 -0.504048 0.782072 +-0.807702 -0.917127 -0.899227 0.823244 -0.415499 -0.734847 0.873002 0.342213 +0.205201 -0.138148 -0.752051 0.703676 0.189249 0.888606 0.0206145 -0.531954 +-0.300858 -0.938632 -0.328701 -0.544132 -0.749591 -0.9912 -0.345828 -0.455907 +-0.595073 -0.678245 0.866344 0.465099 -0.509859 -0.457841 0.466966 0.383943 +-0.060213 -0.710382 0.0313389 0.283458 0.187496 0.310622 -0.595371 0.601871 +0.562767 0.0377798 0.76085 -0.892 -0.0911599 0.265912 -0.618319 0.952178 +-0.840834 0.821741 -0.975384 -0.725079 0.603053 -0.639858 -0.633069 -0.808539 +-0.538151 -0.948088 -0.51558 0.274384 -0.0619097 -0.0826329 0.180303 -0.855399 +0.42251 0.144264 0.293215 0.190766 -0.715834 0.112131 0.430095 -0.493941 +0.0027466 0.256351 0.821961 0.0155914 0.978361 0.325366 -0.152935 0.713048 +0.155912 -0.702545 -0.559075 -0.621663 -0.499971 -0.790038 -0.723394 0.270965 +-0.452068 0.0941228 -0.507194 0.537582 -0.615952 -0.473029 -0.654752 0.16797 +0.975202 -0.278628 -0.37559 -0.459865 -0.494414 -0.522035 -0.700555 -0.713496 +-0.31939 -0.214 -0.179502 0.597574 -0.448232 0.899591 -0.698854 -0.890447 +-0.75038 0.689621 0.691946 -0.400412 0.98447 0.824083 -0.540418 0.273547 +0.751513 0.992589 0.44151 -0.176448 -0.258649 -0.570728 0.990564 0.825067 +-0.288471 -0.175124 0.728809 -0.856118 0.963137 -0.371374 -0.121704 -0.722621 +-0.560635 0.256014 0.783282 -0.0436413 -0.46044 0.528746 -0.729818 0.505957 +-0.457373 0.502338 -0.259939 -0.591323 -0.379924 0.0464475 -0.371124 0.390725 +0.736234 -0.0702791 0.764597 -0.0402704 0.144329 -0.954984 -0.329526 -0.484438 +-0.41639 -0.726601 -0.351723 -0.826754 0.725462 -0.0631057 0.275125 0.947095 +0.966303 -0.979173 -0.981785 0.536177 -0.937156 0.926273 -0.244539 -0.213392 +-0.430865 -0.765427 -0.626624 -0.903924 -0.899377 -0.169289 -0.681021 0.0820862 +-0.110559 0.0761014 -0.110221 0.520959 -0.201519 -0.922766 -0.592008 0.110752 +-0.781808 0.835112 -0.557839 0.615583 -0.934306 -0.409004 0.105904 -0.609772 +0.187986 -0.536589 0.525622 0.965509 0.994878 0.440683 -0.782722 -0.10285 +0.221736 0.238921 -0.507302 0.701848 -0.969081 -0.654852 -0.0478535 -0.668043 +0.513093 0.149467 -0.55545 0.51696 -0.989508 -0.887487 0.503948 -0.320804 +0.36926 -0.125893 0.751347 0.923279 -0.23921 -0.704303 -0.649616 0.9348 +-0.882768 -0.695332 -0.652699 0.769483 0.346243 0.429311 0.445164 -0.549846 +0.900309 0.00963954 0.121683 -0.144578 -0.731711 -0.693846 -0.0810501 0.877884 +-0.448573 0.669242 0.976741 -0.0972122 0.531226 0.497216 0.685044 0.606398 +-0.793498 -0.0199782 0.378773 -0.54014 0.33045 -0.0403891 -0.830269 0.126731 +0.957517 -0.0318155 -0.20254 0.284324 0.87273 -0.908624 -0.0335001 0.314938 +0.225949 -0.686549 0.151156 0.391466 -0.679554 -0.284395 0.994301 -0.90876 +-0.395586 0.774109 0.712459 0.352602 -0.635886 -0.420902 -0.850352 -0.318036 +0.48513 -0.834401 -0.434297 0.439986 0.729257 0.862742 0.0441958 -0.901788 +-0.638434 0.273707 -0.367312 0.0578474 0.877717 0.185739 -0.505204 -0.638063 +0.241206 -0.831992 -0.965704 -0.586159 0.169424 -0.585115 -0.0547658 0.50218 +0.753684 0.768991 -0.501 0.317682 -0.0585389 0.3068 0.772707 0.169542 +0.977906 -0.519445 0.226863 -0.733432 0.296144 -0.919477 0.657372 -0.853784 +0.00631976 0.662154 -0.86129 0.311983 -0.275507 -0.42741 0.360565 -0.904424 +-0.451835 0.518714 0.294816 0.70085 0.279951 0.201791 -0.78446 0.367603 +0.0279764 -0.698014 -0.872753 0.227458 -0.222103 -0.598081 -0.595641 0.59122 +-0.0892559 -0.754093 -0.131712 0.202004 -0.491409 0.718173 -0.168244 -0.754166 +0.0358621 0.146345 0.252568 -0.897618 -0.743443 0.590545 0.735712 0.129365 +0.535206 -0.549116 -0.322435 -0.120387 0.326257 0.857455 0.926268 0.846448 +-0.844808 -0.0579436 0.413073 -0.681191 -0.157148 -0.991291 0.982462 -0.372447 +-0.371312 0.474717 -0.659698 -0.250764 0.351652 -0.248735 0.376753 0.404496 +0.122821 -0.375758 -0.583352 0.390892 0.441815 0.611139 -0.750248 0.690489 +-0.619211 0.652251 -0.232602 -0.023077 0.510154 0.514604 0.707036 -0.088341 +0.365802 -0.288358 0.498475 0.622598 0.0884513 -0.502601 -0.0398956 -0.241912 +-0.449921 -0.0662473 -0.482305 -0.56115 0.844889 -0.968386 -0.236661 0.958662 +0.716409 0.464967 -0.63852 0.321524 -0.64652 0.754909 -0.585983 -0.554646 +-0.447716 -0.274164 -0.845825 -0.677412 0.299511 0.429741 -0.00783276 -0.625215 +-0.0666598 0.941849 -0.721826 0.175247 0.166758 0.946796 -0.441443 -0.545678 +-0.280745 -0.558744 0.0782417 0.822043 0.0373034 -0.767634 0.334889 -0.204475 +0.304197 -0.923993 0.924242 0.340491 0.826447 0.652876 0.636878 -0.00527523 +0.229423 0.0912072 -0.798967 -0.846361 -0.634938 -0.855099 -0.602047 -0.742035 +-0.899023 -0.613459 0.892855 0.0549564 -0.714598 0.818618 0.541846 0.0304994 +0.678134 -0.977333 -0.672914 0.1998 0.0666526 -0.0546959 -0.875247 0.177203 +0.386777 0.476735 0.0564501 0.607217 0.515895 0.299154 0.86858 -0.929842 +0.685959 0.19825 0.326267 0.93105 -0.2731 -0.223146 -0.388904 0.644691 +0.0917231 0.456785 0.300217 -0.418998 -0.756469 -0.18787 0.0257972 -0.510528 +0.774582 0.108108 0.217937 -0.678055 -0.857652 0.257642 -0.23537 -0.459661 +0.492765 0.329134 -0.750469 0.265036 -0.549458 0.800931 0.45043 0.654937 +0.545092 -0.405946 0.97829 -0.241211 -0.761309 0.0522561 0.489279 -0.181044 +0.595806 0.301203 0.00175219 0.0346104 -0.871983 -0.316493 -0.35869 0.750833 +-0.356902 -0.83915 0.463834 -0.799833 -0.765589 -0.00996312 0.618092 0.925763 +0.17807 0.475797 0.984541 0.0352228 0.910344 0.897265 0.64628 -0.943552 +-0.213075 0.931375 0.390993 0.759357 0.855887 -0.664187 -0.45863 -0.557136 +0.544188 -0.349897 -0.304036 -0.914146 -0.977609 -0.204913 -0.610554 -0.890574 +0.677751 -0.962213 -0.276768 -0.965943 -0.742092 0.744066 0.72906 0.803358 +-0.920121 0.851578 -0.508072 -0.749494 0.458986 0.72717 0.883557 0.211832 +-0.429776 -0.814513 -0.520569 0.331702 -0.0368137 0.40048 -0.0194574 0.286821 +-0.0945039 0.501176 -0.259392 -0.201334 -0.817095 0.110605 -0.38989 -0.556894 +-0.888289 0.419195 -0.941187 -0.703618 -0.74757 0.83368 0.397319 -0.648898 +0.140283 0.236167 0.576773 0.174286 -0.0770867 -0.970377 -0.507436 0.331816 +0.926226 -0.949527 -0.344011 -0.362622 0.476272 0.5664 -0.0610025 -0.926603 +-0.812599 0.379471 0.816848 -0.460453 0.0192854 -0.532238 0.64875 0.290428 +-0.704732 0.344577 -0.986519 0.380786 -0.963709 -0.298283 0.160948 0.725572 +-0.37787 -0.355922 0.520489 0.529633 0.463511 0.562887 0.558426 -0.21356 +0.711711 0.382962 -0.0321731 -0.168244 -0.891085 0.885591 -0.869937 0.338166 +0.594262 -0.141912 -0.688893 0.99811 0.739581 -0.379 -0.838501 0.737623 +-0.240775 -0.31584 -0.977945 0.220277 -0.700471 0.121494 0.786246 -0.609107 +-0.469262 0.615444 0.822334 -0.938985 0.00972204 0.201078 0.952333 0.219098 +0.161819 -0.58996 -0.709192 0.0850985 -0.350235 -0.0183066 -0.962063 0.552786 +-0.322579 0.535901 0.0831581 -0.0385795 -0.86019 0.506289 0.108535 0.627683 +0.653316 0.581975 -0.428346 -0.327397 -0.533502 0.191921 -0.835736 -0.671013 +0.23607 -0.764082 -0.427963 0.936417 0.812322 0.62325 -0.225402 0.473908 +0.360824 -0.31927 0.223129 -0.865486 -0.166944 0.156986 0.205085 0.00717569 +-0.560244 -0.836575 0.121307 0.962825 -0.239955 0.941542 -0.87634 0.756335 +0.379483 0.672066 0.920528 -0.425731 -0.8055 0.618419 -0.681839 0.566572 +-0.541926 -0.377947 0.260811 -0.651411 0.721151 0.796162 -0.541762 -0.576999 +-0.181808 0.639802 -0.975259 -0.663825 -0.118761 0.935995 0.850632 0.623139 +-0.0280611 -0.100807 -0.0115205 0.769508 0.975921 0.36622 -0.439825 0.182228 +-0.518802 0.677906 -0.922765 -0.650697 0.38278 -0.802091 -0.441567 -0.0682614 +-0.0606541 -0.82269 -0.757103 0.451062 0.68341 -0.21763 -0.189813 -0.719505 +0.328524 0.374754 -0.829575 -0.233745 0.603112 0.115447 -0.205495 0.495732 +-0.940007 -0.372071 -0.0567001 0.0815177 0.237495 -0.165586 0.102285 0.106442 +0.0587672 0.203151 -0.617669 0.246597 0.766063 -0.0441826 0.225723 -0.375256 +0.595638 -0.8969 -0.859182 0.924258 -0.850319 0.619827 -0.336612 0.87471 +0.253623 -0.703156 0.392904 0.754309 -0.413597 -0.550302 -0.466837 -0.0554813 +-0.171574 0.760164 -0.746511 -0.449427 0.861316 0.908235 0.939748 0.900948 +-0.866745 -0.989101 -0.105858 0.746067 0.880719 0.0791559 -0.148423 0.567304 +-0.340772 0.342627 -0.418369 0.0183479 0.663974 -0.210388 0.566031 -0.307053 +-0.796909 -0.861782 -0.41856 0.904874 0.257222 -0.849611 0.135816 -0.837315 +0.573607 0.976107 0.647015 0.169306 -0.0390818 -0.681147 -0.2512 0.186309 +-0.79281 -0.465743 -0.873903 0.415853 0.929572 0.928767 -0.917676 0.389418 +-0.189122 -0.81393 -0.482353 -0.945896 0.204562 -0.551815 -0.623091 -0.180186 +-0.601643 -0.736529 0.0744873 -0.971781 0.767349 -0.0454771 -0.0333532 0.370712 +0.953419 0.752331 0.167843 0.242817 0.792761 -0.455219 0.738609 0.422799 +0.683497 -0.156342 0.972546 -0.166608 0.434767 -0.492561 -0.635644 -0.262027 +0.0969455 -0.986278 -0.427855 0.499039 0.872608 -0.285313 0.861969 -0.00726473 +0.568782 -0.47187 -0.660013 -0.193908 -0.924188 -0.304503 0.194021 0.548087 +-0.395025 0.130907 0.458495 -0.657022 0.507126 0.566483 0.343297 -0.153337 +-0.164236 -0.93546 0.139193 0.758905 0.657126 0.0436321 0.708452 0.318435 +0.74236 -0.281163 0.462817 -0.485953 0.922327 0.551694 0.232885 -0.525846 +-0.455437 0.928112 0.328556 -0.227581 -0.097357 0.554065 0.944684 -0.795896 +-0.399629 -0.151192 -0.272881 0.384818 0.643247 0.503916 -0.919137 0.262122 +0.267216 -0.389761 -0.716136 0.124153 -0.183209 0.203462 0.558165 0.467073 +0.663323 0.184449 0.388718 0.0287672 -0.30326 0.426009 -0.0135387 -0.970393 +-0.846424 0.765307 0.654113 0.169023 0.428073 -0.972336 0.838171 -0.048438 +0.918883 -0.599371 -0.639186 0.707787 0.0389316 -0.500555 0.539954 0.572245 +0.546336 -0.851287 -0.571707 0.843092 -0.0696237 -0.77709 0.828392 -0.670245 +0.256247 0.170751 -0.74507 -0.916481 -0.198322 -0.0422062 0.201764 0.303284 +0.707147 0.538474 -0.46604 0.768481 0.450826 0.78801 -0.320954 0.0529201 +-0.457465 0.713165 0.261461 0.500716 -0.761406 0.0585499 0.266564 -0.194963 +0.0469887 0.372271 -0.814744 -0.493067 0.986417 -0.220578 -0.147642 -0.290298 +0.865739 -0.843325 -0.586935 0.558152 -0.607688 0.133677 -0.314835 -0.874994 +-0.28407 -0.0310837 -0.244577 -0.499961 0.0831651 0.611807 -0.803031 -0.324554 +-0.674089 -0.114628 -0.869776 -0.68684 -0.680338 -0.13748 0.968537 0.226829 +-0.106497 0.826638 0.175156 -0.690683 -0.20081 -0.663019 0.527855 -0.215508 +-0.569968 0.224708 -0.833994 -0.342232 0.560923 -0.520778 -0.75234 0.382951 +0.134161 -0.208342 -0.427726 -0.173193 -0.332348 0.299537 -0.234726 0.832925 +-0.402892 0.44751 0.670677 0.982216 -0.161869 -0.224028 -0.924491 0.755886 +0.124148 0.31867 0.241076 -0.869214 0.756065 -0.1096 0.973246 0.939339 +-0.804345 0.0404028 0.366816 -0.112333 0.48207 0.594207 0.0851084 -0.78472 +0.950464 0.0877894 0.237575 0.701777 -0.793751 -0.181089 0.0768191 0.438248 +-0.0821008 -0.0783405 0.501966 -0.543472 -0.125108 0.84544 0.580949 -0.127013 +-0.437705 -0.799327 -0.51293 -0.704008 0.559853 -0.676329 -0.188623 0.670392 +0.371978 0.763898 -0.481408 0.020204 -0.502421 0.773839 0.95058 0.179744 +-0.819678 0.051496 0.962227 -0.0892686 0.250977 0.594883 -0.246833 0.437308 +0.76584 -0.625579 -0.36399 0.667921 -0.30947 0.244496 -0.975459 -0.113815 +-0.52928 -0.580881 -0.430803 0.00414179 0.35355 -0.964707 0.839863 0.703258 +0.369541 0.682136 -0.0195639 0.372471 0.778789 0.0287528 0.940356 -0.240733 +-0.0878356 0.146325 -0.439308 -0.206156 -0.573423 -0.350959 -0.323891 -0.810204 +0.0112959 -0.249291 0.0271747 0.649374 0.942587 0.21371 -0.906037 -0.744209 +-0.010731 0.991442 0.885706 -0.109002 -0.189258 -0.389477 -0.452456 0.0842571 +0.878999 -0.117072 0.271111 0.329515 -0.921645 -0.948288 0.441989 0.526507 +0.780293 -0.439826 -0.826501 -0.532999 -0.733558 -0.876879 0.532704 0.378396 +-0.0936228 0.4803 -0.741781 0.00110437 -0.240193 -0.398467 -0.376829 0.945627 +0.856679 -0.857759 -0.661542 0.217709 0.00500074 0.621913 0.763219 -0.193151 +0.385666 -0.573166 -0.553545 -0.0550383 0.716349 -0.443558 0.531387 0.874882 +0.735574 -0.452782 0.862433 0.816191 -0.490542 0.127588 0.908425 0.535995 +-0.742564 -0.433178 0.915441 0.429457 0.741941 0.777874 -0.824876 -0.492205 +0.928933 0.595887 0.555872 -0.506634 -0.190822 0.405726 -0.280609 -0.896837 +0.163702 0.249171 0.255146 -0.533572 -0.378421 0.745034 0.750554 -0.783449 +-0.320676 -0.344093 0.0856638 0.164454 0.249587 0.959115 0.676873 0.531421 +0.694168 -0.948914 0.284541 0.549565 -0.392633 0.754276 -0.714306 -0.735648 +-0.190019 -0.52543 -0.05979 -0.120959 0.522829 -0.255097 -0.0403621 -0.7353 +-0.328844 -0.0182174 0.11135 -0.477302 0.791178 0.0611149 -0.0462498 -0.175987 +0.269369 -0.929168 -0.726463 0.54813 -0.937998 0.745038 -0.293154 -0.654064 +0.551288 -0.502471 0.486128 0.651546 0.369143 -0.349521 0.144616 -0.109417 +0.765235 0.877474 -0.845408 0.351489 -0.63105 -0.769469 -0.457141 -0.234768 +0.311318 0.300883 0.299567 -0.327209 -0.576271 -0.643474 -0.360074 0.981788 +0.981298 0.608698 0.0826749 -0.114287 0.743939 0.49706 -0.566342 -0.879508 +0.0800737 -0.893772 -0.912034 0.187454 -0.692667 0.522734 0.0485591 -0.645851 +-0.324429 -0.700755 0.267917 0.0402615 -0.699743 0.992684 -0.579391 -0.431563 +0.996279 -0.924962 -0.939793 0.920964 0.689077 -0.395117 -0.017921 -0.216873 +0.0636556 0.895646 -0.317375 -0.733031 -0.701854 -0.490877 -0.198355 0.129399 +-0.687348 0.719909 0.641067 0.916343 0.316081 0.816246 -0.221022 -0.14204 +0.0855796 0.67265 -0.562649 -0.147528 -0.39122 -0.611359 -0.43629 0.80869 +-0.922597 0.76178 -0.862715 -0.372038 -0.671139 0.477378 -0.502672 -0.808751 +0.253303 0.457268 0.831574 -0.773127 -0.483561 -0.24741 0.957302 -0.929012 +0.197971 -0.53769 -0.109346 0.948488 -0.686124 0.0339448 -0.118122 -0.519184 +-0.844502 0.692427 -0.688552 -0.532634 -0.759507 -0.260971 -0.796699 -0.404532 +0.0865159 -0.780443 -0.893265 0.286129 -0.963133 0.404368 -0.106939 -0.754019 +0.856322 -0.56223 0.490658 -0.128994 -0.070527 0.611366 0.172883 -0.0892844 +0.104858 0.1888 -0.648231 0.405203 0.182899 -0.215067 -0.680568 0.415602 +-0.197065 0.405019 -0.680563 0.489857 0.7812 -0.000321634 0.251133 -0.163168 +-0.0828464 -0.845147 0.138025 0.0712586 0.561523 0.418024 -0.0945405 -0.772312 +0.0421709 -0.603521 -0.893089 -0.310384 0.338777 -0.285234 -0.235222 -0.849502 +0.425383 0.769619 -0.354696 -0.719294 -0.107823 0.440272 0.985391 -0.252171 +0.146365 0.0889267 -0.401725 -0.183417 0.981461 0.486241 0.681473 -0.258455 +0.952971 -0.679307 -0.725955 0.166804 -0.461048 0.483991 0.805641 0.564412 +-0.391718 -0.885734 -0.338494 -0.758048 0.62324 -0.904924 -0.511931 -0.313077 +-0.427775 -0.462631 0.571049 0.309519 -0.633172 -0.524454 0.774625 -0.141569 +-0.27132 0.746114 -0.330058 -0.485489 -0.506717 0.00733686 0.793065 0.48465 +-0.149967 0.0249565 -0.377554 0.635322 0.926616 0.316265 0.0518561 -0.601899 +0.221472 0.121239 0.574847 0.521096 0.559327 0.942286 -0.724584 -0.855785 +-0.119323 0.0382661 -0.628763 0.436192 0.94491 -0.501119 -0.679026 -0.745567 +-0.768534 -0.877493 0.168443 -0.116303 -0.271442 -0.232377 -0.272922 -0.438878 +-0.555787 0.0546222 0.667032 -0.599897 -0.398251 -0.194041 0.7088 -0.579869 +0.945534 -0.464931 -0.976692 -0.794661 0.51902 0.652344 -0.560435 0.902057 +-0.254705 -0.567206 -0.817415 0.840607 0.740243 0.598916 0.391895 -0.394496 +-0.100858 -0.392356 -0.0955732 0.744395 -0.098339 0.356142 0.185845 0.181413 +0.0203355 -0.788697 -0.600303 0.697847 -0.700404 0.902197 -0.74871 0.302692 +-0.885 -0.338142 -0.266243 0.17608 -0.576465 -0.502188 -0.596151 -0.878618 +0.44483 0.832059 -0.173066 0.456706 0.642328 0.724746 -0.1925 -0.893404 +0.443883 -0.456011 -0.770323 -0.997234 -0.952226 -0.892065 0.20022 0.953866 +-0.711862 -0.993364 0.907505 -0.579022 -0.925414 0.500686 -0.275635 0.565904 +0.423131 -0.0968551 -0.478523 0.0238519 0.316365 0.854634 0.904365 -0.131348 +-0.548285 0.578612 -0.275744 0.407103 0.316615 -0.882478 -0.473928 0.285793 +0.63222 0.455825 0.386028 0.207057 -0.66896 -0.628345 -0.0808006 -0.807238 +0.711269 -0.784493 0.4599 0.0397161 0.527732 -0.732751 -0.601908 0.218853 +0.283443 -0.692185 0.566496 -0.68177 0.928101 0.79579 -0.493063 0.144516 +-0.149631 -0.846303 0.652118 0.841565 -0.495354 0.36171 -0.320881 -0.766979 +0.505737 0.522733 0.76624 0.202624 0.89359 0.0311913 0.872182 0.0149582 +0.574351 -0.633518 -0.825413 0.154435 -0.141215 0.140963 -0.487547 0.417802 +-0.666241 0.565788 0.756247 0.868203 -0.116211 0.75985 0.585547 0.830323 +-0.626712 -0.45364 -0.195443 0.448415 0.104229 -0.664431 0.669827 0.192545 +-0.0324374 -0.140675 -0.500651 -0.305651 -0.645708 0.988018 0.553351 -0.549405 +-0.122066 0.225076 -0.818105 -0.996791 -0.547578 -0.881317 0.752254 -0.694483 +0.476205 0.584487 -0.490537 0.5268 -0.31787 -0.482516 0.533979 0.00115596 +0.899264 0.0182342 -0.868973 0.867343 0.650678 -0.994781 -0.102045 -0.0269937 +-0.0750363 -0.453265 0.702007 -0.00121795 -0.972748 0.834929 -0.633961 -0.71164 +0.985972 -0.589411 -0.809588 0.55176 -0.351489 -0.544948 0.954608 -0.346856 +-0.699835 -0.484832 -0.834155 -0.368864 0.608062 0.0825367 0.760286 -0.0527428 +-0.799013 -0.765432 0.974613 -0.684831 0.60186 0.999952 0.79829 -0.225519 +0.690754 -0.501941 0.324644 0.316548 -0.078213 0.936501 0.980851 -0.816268 +0.0774005 -0.555405 -0.154659 0.348248 -0.467778 -0.324692 -0.629435 -0.656457 +-0.200646 0.82515 0.14657 -0.806379 -0.759421 0.0829597 -0.374377 -0.00215195 +-0.77514 0.415386 0.983687 -0.0142301 0.980576 0.600523 0.146038 -0.0822019 +-0.538879 0.116211 -0.818458 -0.740589 -0.488668 0.314551 0.649157 -0.443189 +-0.285181 0.200458 0.332028 0.3074 -0.523374 -0.551051 0.220338 -0.34828 +-0.923755 -0.1266 -0.601394 -0.0253203 -0.828103 0.490856 0.266744 -0.408953 +0.0542938 -0.215857 0.386484 -0.78468 0.0258582 0.795984 -0.183508 -0.571211 +0.552468 -0.356369 -0.196538 0.734811 -0.118357 -0.128739 0.840145 -0.93725 +-0.154347 0.873422 -0.194153 0.872663 -0.356444 0.363519 -0.273476 -0.696162 +0.583401 -0.53281 0.731566 -0.444695 -0.472582 -0.663451 0.91995 0.650943 +-0.404663 0.840018 -0.120633 -0.471824 -0.752747 -0.475972 0.646036 -0.547903 +-0.233779 0.0825393 0.942899 0.158798 0.623666 -0.631099 0.00203193 -0.235393 +-0.585184 0.883392 0.132245 -0.438164 -0.161598 -0.0969587 0.000618285 0.79207 +-0.932912 0.537109 0.367195 0.524085 -0.414115 0.494211 0.9536 -0.80306 +0.386435 -0.988085 -0.936921 0.714699 0.625112 -0.866318 -0.942141 0.336779 +0.764189 0.0251004 -0.848174 0.665548 0.147669 0.254436 -0.264234 -0.896245 +0.325485 0.754366 0.0447624 -0.585063 0.719863 -0.0696208 -0.622733 -0.387195 +-0.169277 -0.113223 0.421046 -0.0531837 -0.405825 -0.230418 -0.983003 -0.711747 +0.336613 0.164089 -0.745039 -0.807313 -0.736208 -0.10126 0.824618 -0.920568 +0.909828 -0.622685 0.332989 0.00830162 0.38507 -0.397409 0.648477 0.529428 +0.0101819 0.62799 0.33955 -0.789978 -0.969035 -0.0619933 -0.626062 -0.888456 +-0.920535 0.031577 0.209105 0.355139 -0.0742127 0.841699 0.0614381 -0.0995839 +0.985094 0.130549 0.317291 -0.966487 0.510734 0.961951 0.183114 -0.805229 +-0.652149 0.7594 -0.487267 -0.787221 0.851975 -0.873241 0.439256 0.499765 +0.541152 0.0770298 0.605506 -0.582985 -0.949134 0.0863542 0.518711 -0.496535 +0.399843 0.912941 0.268388 -0.865712 0.107298 -0.571469 0.534591 -0.976143 +-0.338867 -0.93816 0.979595 -0.325682 -0.945629 0.546945 0.828186 -0.897783 +0.241588 0.801397 0.266351 0.916368 -0.861289 0.520631 -0.350318 0.409777 +0.610429 -0.083441 0.83093 -0.670309 -0.164084 0.604357 0.0783674 -0.42118 +0.36577 -0.508371 0.416979 -0.139311 0.883315 0.362692 0.183672 0.69271 +-0.28885 0.696964 0.211831 0.489029 0.226392 0.953463 0.10962 -0.73453 +0.986815 0.600921 0.0449613 0.110881 0.578612 -0.604654 -0.810103 0.771854 +0.902732 -0.495443 -0.734904 -0.520157 0.62146 0.460401 -0.969393 -0.0602119 +-0.539116 -0.706347 -0.74457 0.971574 0.2893 0.484338 0.77608 0.282123 +0.547443 0.29363 -0.94728 -0.163755 0.388137 0.689701 0.165507 -0.452441 +0.209506 0.769668 -0.468422 0.0512967 -0.0155995 0.369681 -0.0416683 0.385239 +0.536443 -0.640138 0.0763071 0.705092 0.989851 0.828893 -0.60472 -0.28465 +-0.494723 0.921693 0.0495236 0.173518 0.741574 -0.959035 0.990642 0.353335 +0.651272 0.178445 -0.61107 0.500453 0.341522 -0.837734 -0.990673 -0.36227 +0.763702 -0.274026 0.195442 0.452955 0.676666 -0.0271457 0.441324 -0.609185 +0.423997 -0.701139 -0.410888 0.0778383 0.878795 0.15746 -0.994007 0.113326 +-0.334275 -0.442163 0.12964 -0.481628 -0.968939 -0.225538 -0.279952 -0.348539 +0.73095 0.933779 -0.804383 0.526414 0.479168 0.988399 -0.941287 0.394242 +-0.0340086 0.705096 -0.554178 -0.844025 0.165571 0.223001 0.283481 0.437085 +0.0834355 -0.563229 0.578883 0.0711771 0.619632 -0.0333454 0.186991 0.701669 +-0.321065 0.418618 -0.401531 0.405464 0.119774 -0.488364 -0.541451 0.298125 +-0.930117 -0.714498 0.96836 -0.544415 0.0404438 0.107046 -0.494357 -0.294113 +0.7649 0.891545 -0.952906 -0.0227346 0.406766 0.859156 0.300293 0.187083 +-0.391863 -0.0590129 -0.849673 0.888853 -0.925853 0.894784 0.774522 0.667416 +-0.788453 0.313785 0.0735782 -0.9446 0.0881703 -0.877804 0.115091 0.690123 +-0.298138 0.199317 -0.897659 -0.76291 -0.672211 0.439996 0.169136 -0.9143 +-0.0962146 -0.160769 0.261731 0.550875 0.97825 -0.837458 -0.890215 0.16264 +-0.655996 0.400844 -0.753987 0.144687 -0.640398 0.67667 -0.345467 0.181287 +-0.992709 0.0882317 -0.240251 0.369297 0.557474 0.425089 0.39905 0.542164 +-0.550886 -0.303266 0.414447 0.951891 -0.900641 -0.637662 -0.739914 0.599469 +0.129487 0.241247 0.196362 0.403789 0.21839 0.877744 -0.282078 0.132361 +-0.0054312 0.918197 0.188897 -0.902218 0.103391 0.139808 0.393467 -0.199445 +-0.923921 0.373623 -0.853978 0.340359 -0.57419 0.536 -0.926296 0.632232 +0.707454 0.338353 0.127895 -0.196444 -0.0319703 -0.305862 0.704341 0.618947 +0.919735 -0.750654 0.176572 -0.802977 -0.0707223 -0.320515 -0.110584 0.473198 +-0.645532 0.562394 -0.0586577 -0.265339 0.144387 0.85353 0.308196 -0.946138 +0.527819 0.914607 0.524667 0.94169 -0.185767 0.570622 0.605907 -0.423411 +-0.804722 -0.684955 -0.456404 0.365336 -0.040309 0.428063 -0.133152 0.178633 +-0.992572 0.386273 0.33409 0.865669 0.158053 -0.554986 -0.729363 0.969722 +-0.409773 -0.373148 -0.471849 0.602634 0.164685 0.783269 0.112875 0.581757 +-0.977761 -0.0302597 0.904442 0.950423 0.0675092 -0.897506 0.236307 -0.216288 +-0.277661 0.868341 0.540508 0.24097 0.443353 0.33287 -0.989548 -0.194153 +0.865029 -0.71969 0.251391 -0.806809 0.887908 0.434057 0.505243 0.37496 +0.315971 -0.163629 0.432174 0.383298 0.746031 -0.815984 -0.18584 -0.408601 +-0.555325 0.129052 -0.0885912 -0.190683 0.782567 -0.225434 -0.429651 0.483977 +0.710882 0.298927 0.713428 -0.976695 -0.275012 -0.970883 -0.47833 0.938195 +-0.409982 0.791796 -0.476071 0.11307 -0.584786 0.826539 0.869438 -0.499075 +-0.504735 -0.789846 0.837696 -0.718721 0.89905 -0.211661 0.700321 -0.263882 +-0.424087 -0.195272 0.104407 0.561988 0.315623 0.581878 0.720829 -0.253763 +0.625601 -0.577368 -0.371724 -0.80142 -0.715806 0.0741293 0.778703 0.244978 +-0.868092 -0.163168 -0.707758 -0.822344 0.501819 0.74799 0.0668078 0.812413 +0.729534 0.702338 -0.134075 0.449142 0.785552 -0.701911 0.179284 0.695407 +-0.570295 -0.551425 0.291994 0.821019 0.71508 -0.664581 -0.980156 0.888598 +0.0281019 0.283294 -0.741183 0.300605 0.703548 0.109526 -0.98041 -0.28747 +-0.97019 -0.365164 -0.0386638 -0.835926 0.114051 -0.429095 -0.374637 -0.710279 +0.321577 -0.245106 -0.560334 -0.106617 0.1186 -0.49623 -0.992678 0.110437 +0.882378 -0.636962 -0.713416 0.0834107 -0.925594 -0.352722 0.656507 -0.736961 +0.584289 -0.175682 0.247739 0.617296 -0.354663 0.629163 -0.902824 0.953023 +0.0768384 -0.717327 -0.083367 -0.618186 -0.818971 0.947659 0.653877 -0.354289 +-0.887622 0.432379 0.0866054 -0.280477 0.0676555 -0.842187 -0.0842995 -0.430422 +0.173128 -0.520141 -0.087196 -0.662103 0.961155 -0.930147 0.416494 0.584796 +0.303029 0.493141 0.374201 0.472777 -0.446954 -0.793685 -0.87863 0.619676 +0.0513011 -0.987674 0.196521 -0.998323 -0.408941 -0.466114 0.361032 0.238023 +0.319364 -0.744774 0.826224 -0.727136 0.134271 0.169153 -0.350912 0.910232 +0.62319 -0.639507 0.455339 0.958609 -0.133199 0.738603 -0.785951 0.35698 +-0.426425 0.0968416 -0.356231 -0.864742 0.319383 -0.493453 0.67159 0.332411 +0.602833 0.613828 -0.63591 0.514773 -0.645953 0.319409 -0.970493 0.541499 +0.0162915 -0.59027 -0.403851 0.45786 -0.385471 0.854787 -0.728109 0.0384164 +-0.508749 0.25453 0.0775355 0.997228 -0.957396 -0.198614 -0.945542 -0.695928 +-0.160811 0.659122 -0.937518 -0.974774 0.310763 -0.971708 -0.0595999 -0.0528106 +0.461159 -0.365737 -0.702777 -0.978425 0.0990154 -0.327472 -0.962762 0.350789 +0.795224 0.381523 -0.938263 0.479238 -0.632396 -0.0509792 0.0153148 -0.265597 +-0.0848166 0.379515 -0.291117 0.694128 0.748272 -0.493666 -0.815691 -0.6926 +-0.165031 -0.0891072 0.158474 0.10956 -0.19114 -0.77 -0.780464 0.434505 +-0.139721 -0.544348 -0.750748 -0.293889 0.757612 0.818742 -0.228336 -0.544192 +-0.858 0.358474 0.543263 0.455568 -0.598232 -0.917574 0.380048 0.780082 +-0.515837 -0.855985 0.82244 -0.477901 0.646268 -0.570199 -0.430683 0.717503 +0.717701 0.699 0.462546 0.752024 -0.981553 -0.201349 -0.761635 0.330898 +-0.479242 -0.289216 -0.0796746 -0.135831 -0.888534 -0.978519 -0.193643 0.963184 +-0.116307 0.539999 0.936034 0.531333 -0.407026 -0.506016 -0.307663 -0.91202 +-0.881043 0.537134 -0.0208986 0.790174 0.160322 0.86974 0.0347648 0.556077 +0.149292 0.89986 -0.451053 0.640971 -0.179916 -0.34306 -0.837172 0.193749 +-0.126208 -0.0227467 -0.0916505 0.872552 -0.451527 -0.225225 -0.536412 -0.484111 +0.85332 -0.370758 -0.219432 0.806461 -0.771842 0.299293 0.826374 -0.377133 +0.0974112 -0.294711 0.0150352 -0.0237784 0.723876 -0.0288437 0.787362 0.340541 +-0.358887 -0.925932 -0.0877449 0.149521 -0.941664 -0.822475 0.48412 0.420145 +0.891805 -0.435028 0.640123 -0.100903 -0.913005 -0.802434 0.221251 -0.926006 +-0.59743 -0.998152 -0.159239 -0.121085 0.0891031 -0.19614 0.71132 0.509863 +-0.766773 -0.965367 -0.66386 -0.934419 0.898039 0.44383 -0.595711 0.275202 +-0.733219 0.715742 0.559052 0.840434 -0.600565 -0.908047 0.498603 0.211169 +0.583786 -0.813278 -0.822209 -0.632192 0.929584 0.111599 -0.0819159 -0.483515 +0.0372694 0.0395407 0.61394 0.302753 -0.844206 0.851324 -0.426415 0.692142 +0.864924 -0.373763 -0.444911 -0.939984 -0.523362 -0.0627783 -0.398258 0.191987 +0.00846989 -0.0237791 -0.064829 0.429948 -0.635047 -0.657757 -0.93342 -0.525435 +0.0152487 0.89563 -0.908316 0.151498 0.534151 -0.23771 -0.247125 0.676604 +0.718967 -0.391562 -0.509936 0.0940794 -0.591401 -0.0237542 0.0989418 0.667505 +0.642065 -0.808021 -0.668695 0.825106 -0.89777 0.436322 0.0146317 -0.84359 +0.947917 0.247783 0.797738 0.904664 -0.304274 -0.860577 0.583235 -0.15636 +0.802703 -0.648104 -0.74956 -0.903054 0.298878 0.673866 0.32473 -0.0477731 +0.360735 0.617388 0.0941327 -0.469065 0.784298 0.627796 0.0719741 -0.468131 +0.831949 0.890218 0.302191 -0.024926 0.554097 -0.391123 0.543936 0.710791 +-0.13657 -0.858949 -0.565543 -0.202202 0.904933 -0.522611 -0.700196 -0.0706605 +0.68578 0.785019 -0.373929 0.320873 -0.22783 -0.983629 0.20534 0.0679298 +0.054554 -0.285939 0.0105797 0.00241309 -0.961614 0.760555 -0.712269 0.18321 +0.112195 -0.928513 -0.917439 0.447439 0.694376 0.0474544 -0.957016 0.415338 +0.565741 -0.179495 0.15515 -0.130722 0.309835 0.391258 0.300341 0.782176 diff --git a/3rdparty/ann_1.1.1_modified/test/test2-query.pts b/3rdparty/ann_1.1.1_modified/test/test2-query.pts new file mode 100755 index 0000000..987c96b --- /dev/null +++ b/3rdparty/ann_1.1.1_modified/test/test2-query.pts @@ -0,0 +1,100 @@ +0.0902484 -0.207129 -0.419567 0.485743 0.826225 -0.30962 0.694758 0.987088 +-0.410807 -0.465182 -0.836501 0.490184 0.588289 0.656408 0.325807 0.38721 +-0.532226 -0.727036 -0.52506 -0.853508 0.28637 0.938617 -0.864754 0.622397 +-0.408646 -0.522319 0.0388774 -0.893642 0.385806 0.890013 -0.38066 -0.524536 +0.916427 -0.941696 0.219294 -0.971436 -0.706532 0.566439 -0.0591963 0.27756 +0.692452 -0.210879 0.927987 0.587037 0.610211 0.895158 -0.228196 -0.314064 +-0.13253 0.711121 0.605841 0.771335 -0.945103 0.356652 0.00215608 -0.54444 +0.0611156 0.921316 0.245255 0.92896 0.562614 0.160313 -0.457179 -0.432326 +-0.813199 -0.0630237 0.149021 0.0301869 0.669399 0.984082 -0.304983 0.480589 +0.311004 0.515906 -0.667349 -0.464028 -0.554472 0.123471 -0.932191 0.153486 +0.488214 -0.456547 0.695901 -0.693933 -0.775879 -0.940794 0.710796 -0.79388 +-0.73914 -0.733084 0.300943 0.0726274 -0.722715 -0.414562 0.463033 -0.378469 +-0.178166 -0.846243 -0.319029 0.186783 -0.364517 0.915747 -0.300208 -0.599272 +-0.544192 0.173829 -0.0957917 0.889828 0.775796 0.148865 -0.430932 0.0342097 +-0.969596 -0.545995 -0.98045 -0.57569 0.465756 -0.166752 0.622912 -0.580526 +0.0918901 0.635361 -0.934228 -0.0273098 0.65055 0.227406 -0.628807 0.213824 +0.216987 -0.653221 -0.789576 0.6252 0.124467 0.477613 -0.259097 0.913287 +0.587512 0.377176 -0.393846 0.293478 0.275818 -0.298198 0.063539 -0.592623 +0.867649 0.64842 -0.929959 0.677208 -0.302289 -0.230779 0.267189 -0.140577 +-0.360362 0.910053 -0.26718 0.167234 -0.0203549 -0.190717 -0.291433 0.756657 +0.637052 0.538531 0.200832 0.420082 0.688092 0.500134 0.78368 -0.542742 +0.00257324 0.53221 -0.899835 0.503303 -0.46265 0.13425 -0.66756 0.125758 +-0.28673 -0.255891 0.0805643 0.154396 -0.304337 0.942248 0.404729 -0.530016 +0.330364 -0.469459 0.492101 0.923757 -0.0870035 0.114578 -0.321104 0.586945 +0.104922 -0.620678 -0.27497 0.905927 0.219188 -0.495436 -0.762684 0.557364 +-0.665582 -0.75013 -0.249321 0.667873 -0.288485 -0.765806 -0.45304 0.919665 +-0.493835 0.239472 -0.917625 0.418003 0.273087 0.54198 -0.836992 -0.842215 +-0.576808 -0.958153 0.73833 0.0770337 -0.82097 0.0731924 -0.192127 -0.369044 +-0.204979 -0.564608 -0.792166 0.356056 -0.50905 -0.217096 -0.45753 -0.998959 +0.735413 0.347442 -0.644887 0.178 0.935974 -0.630639 -0.624678 0.946812 +0.72101 -0.881322 -0.0914539 0.80997 0.619855 0.299585 -0.0544264 -0.932907 +-0.454196 0.903609 0.216595 -0.515838 0.650697 0.322145 -0.0598022 0.29879 +0.56218 0.548496 0.116056 -0.109011 0.35975 0.375862 -0.473017 0.179013 +0.790441 0.202804 0.370116 -0.299956 -0.789657 0.66881 -0.429629 -0.203547 +0.870951 -0.240769 0.472253 -0.874723 -0.67061 -0.434253 0.661868 -0.515051 +-0.45736 0.0815795 0.924138 0.0979838 -0.00884649 0.0643335 0.803118 -0.542487 +-0.177146 -0.625442 -0.840198 -0.158722 -0.596283 -0.673887 -0.738309 0.439504 +0.186587 -0.465294 0.81993 0.754213 -0.929469 0.5224 -0.567962 -0.0020964 +-0.727445 0.654887 0.237451 -0.81993 0.461061 -0.330429 -0.423304 -0.11565 +-0.638766 -0.623638 0.33871 -0.295169 -0.864833 0.715051 -0.443567 0.530583 +0.81889 0.288548 -0.558678 -0.588774 -0.961246 0.46669 0.585559 0.566684 +-0.336336 0.911721 -0.353767 -0.387489 -0.0397957 -0.544424 0.388611 -0.49438 +0.389995 -0.989308 0.0531768 -0.119235 0.8707 0.190555 -0.829453 -0.0377095 +-0.754985 0.722122 -0.486071 -0.0543854 -0.00514588 -0.0407811 -0.923871 0.768664 +-0.257839 -0.963332 0.27127 0.90108 0.2946 0.295975 0.133463 -0.203565 +0.128047 -0.0221978 0.565967 0.441817 -0.885341 -0.294394 0.752 0.655274 +0.455767 -0.659883 0.40248 0.600338 -0.83844 -0.844635 -0.436961 -0.694439 +0.494475 -0.85312 -0.703241 -0.0320226 -0.0312604 -0.804464 -0.967423 0.134369 +-0.823558 0.72077 0.692424 -0.331696 0.28281 0.956438 -0.512021 0.343271 +-0.120567 0.85007 -0.634148 0.479445 0.999095 -0.362764 -0.547786 0.0405272 +-0.759062 -0.595061 0.891393 -0.772615 0.699682 0.433783 0.496053 0.989183 +-0.830714 0.673363 -0.774558 -0.428386 -0.163786 -0.576139 0.870208 -0.403316 +-0.358526 -0.816022 -0.40667 0.888208 0.0927729 0.567724 -0.993948 -0.315037 +0.173889 0.324026 0.971654 0.445513 -0.836598 -0.335657 -0.193173 0.544429 +-0.383334 0.0514736 -0.667312 -0.650427 -0.173149 -0.785155 -0.427284 -0.773588 +-0.942451 -0.429928 -0.296064 0.478439 -0.21067 -0.583727 -0.172756 -0.867286 +0.0722371 0.969577 -0.667728 -0.673244 0.975295 -0.468511 0.283715 -0.838649 +-0.135551 0.0966441 -0.899046 -0.107455 -0.233247 -0.784231 -0.273956 -0.735285 +-0.0414323 0.633082 0.756714 -0.941008 0.7334 -0.558333 0.515249 -0.0495845 +0.151553 0.897797 0.535985 -0.435869 0.276652 0.950385 -0.588415 -0.908762 +0.836871 -0.309154 0.542942 -0.555574 0.296423 -0.852823 0.0586046 0.907905 +-0.037232 -0.50382 0.828129 0.852639 -0.187631 0.110954 -0.520551 0.2231 +-0.669727 -0.670437 -0.395765 0.938759 -0.71912 -0.299401 -0.857412 0.136054 +-0.426925 -0.323029 0.847521 -0.768077 -0.737279 -0.73427 0.409976 -0.424011 +-0.485806 -0.842531 0.425504 0.928987 0.885911 0.193509 -0.786534 -0.0521742 +0.477176 0.948246 -0.81151 -0.461006 0.140611 -0.0403634 0.904953 0.527849 +0.278327 -0.960566 -0.745472 0.449632 -0.221733 -0.67303 0.0901394 -0.365342 +0.350109 0.412389 0.22772 -0.743153 0.374894 -0.674853 -0.940435 0.284267 +0.0780486 0.00241877 -0.793647 -0.801883 -0.931572 -0.906159 -0.325908 0.129096 +0.251037 -0.32573 -0.0132674 0.16178 -0.391019 0.541115 0.186404 0.804935 +-0.457725 0.0676978 -0.679403 -0.287371 -0.0475436 -0.433919 -0.777655 -0.648854 +-0.0915583 -0.911684 -0.450737 0.330562 0.51434 -0.989688 -0.394102 0.621241 +-0.475504 -0.0645391 0.836504 0.636607 -0.294769 0.747648 -0.23722 0.750184 +-0.767895 -0.446372 0.758335 -0.407514 -0.304965 0.551426 0.467747 0.962403 +-0.550376 0.261992 0.65622 -0.274081 0.87838 0.931551 -0.329732 0.0551602 +0.911471 0.324545 0.0503461 -0.796273 0.150228 0.760694 -0.428716 -0.677338 +0.320243 0.908401 -0.406211 -0.0914938 -0.0383119 0.971036 -0.996626 -0.420682 +-0.632748 0.159697 0.350173 0.188661 -0.463423 -0.79209 -0.321071 -0.849934 +-0.493952 0.59222 -0.239915 0.0675535 -0.209439 -0.896104 0.215966 -0.804748 +0.470257 -0.814033 0.0936659 -0.279521 0.631632 -0.00510561 -0.694679 -0.554847 +0.0193325 -0.515019 -0.502347 -0.0691725 0.0823693 0.218677 0.484909 0.230698 +0.411173 -0.360974 -0.0687193 0.982974 -0.62282 -0.808528 0.391168 0.509953 +-0.123533 0.573365 0.918135 -0.570049 0.0766659 0.916687 -0.189227 0.105294 +-0.436078 0.565401 0.107861 -0.321394 -0.681098 0.372357 -0.911342 -0.836162 +0.20572 0.550261 -0.578777 -0.236365 -0.582914 0.473617 -0.745445 -0.401362 +-0.268776 -0.00963149 -0.870677 -0.315329 -0.327188 0.571639 -0.922104 -0.889744 +-0.653846 0.42571 0.484338 0.786735 -0.924095 -0.777902 0.424617 -0.11099 +0.314249 -0.488492 -0.09607 -0.285476 -0.257726 -0.803911 -0.806167 0.4756 +-0.41036 -0.669857 -0.36997 0.551767 -0.906633 0.189437 -0.684472 -0.449454 +-0.813612 -0.0906479 0.286132 0.680878 0.675851 0.0646878 -0.2403 -0.310925 +-0.685114 0.0677462 -0.95481 -0.179017 0.857301 -0.87579 -0.329674 0.562246 +0.0735071 -0.575949 0.50454 -0.686882 -0.0657996 0.874931 0.927272 -0.333088 +-0.245092 -0.109308 -0.713837 -0.613438 -0.0236157 0.140357 -0.512282 -0.518118 +0.184375 -0.865972 0.707001 -0.612003 0.67617 -0.709794 -0.885369 0.826005 +-0.157901 0.836454 0.245372 0.589479 -0.930075 0.106183 0.420879 -0.510301 +-0.466877 -0.115361 -0.736242 0.493482 -0.785855 -0.55306 0.617798 -0.904856 +-0.830296 0.557992 -0.204564 -0.500123 0.153565 -0.773108 0.287265 0.823092 +0.986858 -0.323913 -0.914362 0.535652 -0.535098 -0.945814 0.974316 0.434805 +0.732686 0.221111 0.559403 0.584674 -0.447866 0.508206 0.907212 -0.782827 +-0.970814 -0.13434 -0.550199 0.523038 -0.373701 -0.359454 0.0321578 0.840907 diff --git a/3rdparty/ann_1.1.1_modified/test/test2.in b/3rdparty/ann_1.1.1_modified/test/test2.in new file mode 100755 index 0000000..980b689 --- /dev/null +++ b/3rdparty/ann_1.1.1_modified/test/test2.in @@ -0,0 +1,21 @@ + validate on + stats query_stats + dim 8 + data_size 5000 +read_data_pts test2-data.pts + query_size 100 +read_query_pts test2-query.pts + bucket_size 1 + near_neigh 3 + split_rule suggest + shrink_rule none +build_ann + epsilon 0.0 +run_queries standard +run_queries priority + epsilon 0.10 +run_queries standard +run_queries priority + epsilon 0.50 +run_queries standard +run_queries priority diff --git a/3rdparty/ann_1.1.1_modified/test/test2.save b/3rdparty/ann_1.1.1_modified/test/test2.save new file mode 100755 index 0000000..01a5c19 --- /dev/null +++ b/3rdparty/ann_1.1.1_modified/test/test2.save @@ -0,0 +1,156 @@ +------------------------------------------------------------ +ann_test: Version 1.0 + Copyright: David M. Mount and Sunil Arya. + Latest Revision: Mar 1, 2005. +------------------------------------------------------------ + +validate = on (Warning: this may slow execution time.) +stats = query_stats +[Read Data Points: + data_size = 5000 + file_name = test2-data.pts + dim = 8 +] +[Read Query Points: + query_size = 100 + file_name = test2-query.pts + dim = 8 +] +[Build ann-structure: + split_rule = suggest + shrink_rule = none + data_size = 5000 + dim = 8 + bucket_size = 1 + process_time = 0.18 sec + (Structure Statistics: + n_nodes = 9999 (opt = 10000, best if < 100000) + n_leaves = 5000 (0 contain no points) + n_splits = 4999 + n_shrinks = 0 + empty_leaves = 0 percent (best if < 50 percent) + depth = 17 (opt = 12, best if < 196) + avg_aspect_ratio = 2.03396 (best if < 20) + ) +] +(Computing true nearest neighbors for validation. This may take time.) +[Run Queries: + query_size = 100 + dim = 8 + search_method = standard + epsilon = 0 + near_neigh = 3 + true_nn = 13 + query_time = 0.0008 sec/query (biased by perf measurements) + (Performance stats: [ mean : stddev ]< min , max > + leaf_nodes = [ 269.6 : 154.1 ]< 68 , 1046 > + splitting_nodes = [ 448.2 : 259.2 ]< 100 , 1858 > + shrinking_nodes = [ 0 : 0 ]< 0 , 0 > + total_nodes = [ 717.8 : 412.6 ]< 168 , 2904 > + points_visited = [ 269.6 : 154.1 ]< 68 , 1046 > + coord_hits/pt = [ 0.1975 : 0.1075 ]< 0.0446 , 0.6974 > + floating_ops_(K) = [ 8.492 : 4.716 ]< 1.939 , 32.61 > + average_error = [ 0 : 0 ]< 0 , 0 > + rank_error = [ 0 : 0 ]< 0 , 0 > + ) +] +[Run Queries: + query_size = 100 + dim = 8 + search_method = priority + epsilon = 0 + near_neigh = 3 + true_nn = 13 + query_time = 0.0011 sec/query (biased by perf measurements) + (Performance stats: [ mean : stddev ]< min , max > + leaf_nodes = [ 237.7 : 131.6 ]< 68 , 801 > + splitting_nodes = [ 408.1 : 227.7 ]< 100 , 1398 > + shrinking_nodes = [ 0 : 0 ]< 0 , 0 > + total_nodes = [ 645.8 : 358.5 ]< 168 , 2149 > + points_visited = [ 237.7 : 131.6 ]< 68 , 801 > + coord_hits/pt = [ 0.1679 : 0.08993 ]< 0.0472 , 0.5492 > + floating_ops_(K) = [ 10.83 : 6.344 ]< 2.638 , 38.3 > + average_error = [ 0 : 0 ]< 0 , 0 > + rank_error = [ 0 : 0 ]< 0 , 0 > + ) +] +[Run Queries: + query_size = 100 + dim = 8 + search_method = standard + epsilon = 0.1 + near_neigh = 3 + true_nn = 13 + query_time = 0.0006 sec/query (biased by perf measurements) + (Performance stats: [ mean : stddev ]< min , max > + leaf_nodes = [ 200.9 : 115.8 ]< 51 , 762 > + splitting_nodes = [ 344.9 : 202.4 ]< 77 , 1407 > + shrinking_nodes = [ 0 : 0 ]< 0 , 0 > + total_nodes = [ 545.9 : 317.4 ]< 128 , 2169 > + points_visited = [ 200.9 : 115.8 ]< 51 , 762 > + coord_hits/pt = [ 0.1548 : 0.08517 ]< 0.0348 , 0.5494 > + floating_ops_(K) = [ 6.606 : 3.703 ]< 1.513 , 25.14 > + average_error = [ 0 : 0 ]< 0 , 0 > + rank_error = [ 0 : 0 ]< 0 , 0 > + ) +] +[Run Queries: + query_size = 100 + dim = 8 + search_method = priority + epsilon = 0.1 + near_neigh = 3 + true_nn = 13 + query_time = 0.0007 sec/query (biased by perf measurements) + (Performance stats: [ mean : stddev ]< min , max > + leaf_nodes = [ 176.1 : 101.1 ]< 49 , 629 > + splitting_nodes = [ 314.3 : 186.9 ]< 77 , 1285 > + shrinking_nodes = [ 0 : 0 ]< 0 , 0 > + total_nodes = [ 490.4 : 286.6 ]< 128 , 1914 > + points_visited = [ 176.1 : 101.1 ]< 49 , 629 > + coord_hits/pt = [ 0.1309 : 0.07112 ]< 0.0374 , 0.4332 > + floating_ops_(K) = [ 8.205 : 4.999 ]< 2.032 , 33.27 > + average_error = [ 0 : 0 ]< 0 , 0 > + rank_error = [ 0 : 0 ]< 0 , 0 > + ) +] +[Run Queries: + query_size = 100 + dim = 8 + search_method = standard + epsilon = 0.5 + near_neigh = 3 + true_nn = 13 + query_time = 0.0002 sec/query (biased by perf measurements) + (Performance stats: [ mean : stddev ]< min , max > + leaf_nodes = [ 83.07 : 46.06 ]< 23 , 264 > + splitting_nodes = [ 163.4 : 94.86 ]< 42 , 512 > + shrinking_nodes = [ 0 : 0 ]< 0 , 0 > + total_nodes = [ 246.5 : 140.2 ]< 67 , 776 > + points_visited = [ 83.07 : 46.06 ]< 23 , 264 > + coord_hits/pt = [ 0.0765 : 0.03992 ]< 0.0182 , 0.2192 > + floating_ops_(K) = [ 3.224 : 1.734 ]< 0.891 , 9.572 > + average_error = [ 0.0009039 : 0.009619 ]< 0 , 0.1516 > + rank_error = [ 0 : 0 ]< 0 , 0 > + ) +] +[Run Queries: + query_size = 100 + dim = 8 + search_method = priority + epsilon = 0.5 + near_neigh = 3 + true_nn = 13 + query_time = 0.0004 sec/query (biased by perf measurements) + (Performance stats: [ mean : stddev ]< min , max > + leaf_nodes = [ 69.72 : 38.29 ]< 21 , 246 > + splitting_nodes = [ 146.8 : 81.69 ]< 40 , 475 > + shrinking_nodes = [ 0 : 0 ]< 0 , 0 > + total_nodes = [ 216.5 : 118.8 ]< 65 , 721 > + points_visited = [ 69.72 : 38.29 ]< 21 , 246 > + coord_hits/pt = [ 0.06206 : 0.03155 ]< 0.0182 , 0.194 > + floating_ops_(K) = [ 3.608 : 1.989 ]< 1.126 , 12.28 > + average_error = [ 0.001425 : 0.011 ]< 0 , 0.1516 > + rank_error = [ 0 : 0 ]< 0 , 0 > + ) +] diff --git a/3rdparty/cvblob/CMakeFiles/CMakeDirectoryInformation.cmake b/3rdparty/cvblob/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000..5839d88 --- /dev/null +++ b/3rdparty/cvblob/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,22 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 2.8 + +# Relative path conversion top directories. +SET(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/dborrman/Jacobs/software/slam6d/trunk") +SET(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/dborrman/Jacobs/software/slam6d/trunk") + +# Force unix paths in dependencies. +SET(CMAKE_FORCE_UNIX_PATHS 1) + +# The C and CXX include file search paths: +SET(CMAKE_C_INCLUDE_PATH + "/usr/include/opencv" + ) +SET(CMAKE_CXX_INCLUDE_PATH ${CMAKE_C_INCLUDE_PATH}) +SET(CMAKE_Fortran_INCLUDE_PATH ${CMAKE_C_INCLUDE_PATH}) + +# The C and CXX include file regular expressions for this directory. +SET(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +SET(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +SET(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +SET(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/3rdparty/cvblob/CMakeFiles/cvblob.dir/CXX.includecache b/3rdparty/cvblob/CMakeFiles/cvblob.dir/CXX.includecache new file mode 100644 index 0000000..e283f30 --- /dev/null +++ b/3rdparty/cvblob/CMakeFiles/cvblob.dir/CXX.includecache @@ -0,0 +1,240 @@ +#IncludeRegexLine: ^[ ]*#[ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvaux.cpp +cmath +- +cv.h +- +opencv/cv.h +- +cvblob.h +/home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvblob.h + +/home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvblob.cpp +cmath +- +iostream +- +cv.h +- +highgui.h +- +opencv/cv.h +- +opencv/highgui.h +- +cvblob.h +/home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvblob.h + +/home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvblob.h +cvblob.h +/home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvblob.h +iostream +- +map +- +list +- +vector +- +limits +- +cv.h +- +opencv/cv.h +- + +/home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvcolor.cpp +cmath +- +iostream +- +cv.h +- +opencv/cv.h +- +cvblob.h +/home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvblob.h + +/home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvcontour.cpp +climits +- +cmath +- +deque +- +iostream +- +fstream +- +sstream +- +cv.h +- +opencv/cv.h +- +cvblob.h +/home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvblob.h + +/home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvlabel.cpp +stdexcept +- +iostream +- +cv.h +- +opencv/cv.h +- +cvblob.h +/home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvblob.h + +/home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvtrack.cpp +cmath +- +iostream +- +sstream +- +cv.h +- +opencv/cv.h +- +cvblob.h +/home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvblob.h + +/usr/include/opencv/cv.h +chdl.h +- +cxcore.h +/usr/include/opencv/cxcore.h +cvtypes.h +/usr/include/opencv/cvtypes.h +cv.hpp +/usr/include/opencv/cv.hpp +cvcompat.h +/usr/include/opencv/cvcompat.h + +/usr/include/opencv/cv.hpp + +/usr/include/opencv/cvcompat.h +string.h +- + +/usr/include/opencv/cvtypes.h +assert.h +- +stdlib.h +- + +/usr/include/opencv/cvver.h + +/usr/include/opencv/cxcore.h +ipl.h +/usr/include/opencv/ipl.h +ipl/ipl.h +/usr/include/opencv/ipl/ipl.h +cxtypes.h +/usr/include/opencv/cxtypes.h +cxerror.h +/usr/include/opencv/cxerror.h +cvver.h +/usr/include/opencv/cvver.h +cxcore.hpp +/usr/include/opencv/cxcore.hpp + +/usr/include/opencv/cxcore.hpp +cxmisc.h +/usr/include/opencv/cxmisc.h +algorithm +- +cmath +- +complex +- +map +- +new +- +string +- +vector +- +cxoperations.hpp +/usr/include/opencv/cxoperations.hpp +cxmat.hpp +/usr/include/opencv/cxmat.hpp +cxflann.h +/usr/include/opencv/cxflann.h + +/usr/include/opencv/cxerror.h + +/usr/include/opencv/cxflann.h + +/usr/include/opencv/cxmat.hpp +limits.h +- + +/usr/include/opencv/cxmisc.h +limits.h +- +malloc.h +- +alloca.h +- +stdlib.h +- + +/usr/include/opencv/cxoperations.hpp +string.h +- +limits.h +- +ext/atomicity.h +- +bits/atomicity.h +- +windows.h +/usr/include/opencv/windows.h + +/usr/include/opencv/cxtypes.h +assert.h +- +stdlib.h +- +string.h +- +float.h +- +stdint.h +- +intrin.h +- +emmintrin.h +- +fastmath.h +- +math.h +- +ipl.h +- +ipl/ipl.h +- + +/usr/include/opencv/highgui.h +cxcore.h +/usr/include/opencv/cxcore.h +windows.h +- +chdl.h +- +highgui.hpp +/usr/include/opencv/highgui.hpp + +/usr/include/opencv/highgui.hpp + diff --git a/3rdparty/cvblob/CMakeFiles/cvblob.dir/DependInfo.cmake b/3rdparty/cvblob/CMakeFiles/cvblob.dir/DependInfo.cmake new file mode 100644 index 0000000..7b88e87 --- /dev/null +++ b/3rdparty/cvblob/CMakeFiles/cvblob.dir/DependInfo.cmake @@ -0,0 +1,18 @@ +# The set of languages for which implicit dependencies are needed: +SET(CMAKE_DEPENDS_LANGUAGES + "CXX" + ) +# The set of files for implicit dependencies of each language: +SET(CMAKE_DEPENDS_CHECK_CXX + "/home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvaux.cpp" "/home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/CMakeFiles/cvblob.dir/cvaux.cpp.o" + "/home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvblob.cpp" "/home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/CMakeFiles/cvblob.dir/cvblob.cpp.o" + "/home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvcolor.cpp" "/home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcolor.cpp.o" + "/home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvcontour.cpp" "/home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcontour.cpp.o" + "/home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvlabel.cpp" "/home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/CMakeFiles/cvblob.dir/cvlabel.cpp.o" + "/home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvtrack.cpp" "/home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/CMakeFiles/cvblob.dir/cvtrack.cpp.o" + ) +SET(CMAKE_CXX_COMPILER_ID "GNU") + +# Targets to which this target links. +SET(CMAKE_TARGET_LINKED_INFO_FILES + ) diff --git a/3rdparty/cvblob/CMakeFiles/cvblob.dir/build.make b/3rdparty/cvblob/CMakeFiles/cvblob.dir/build.make new file mode 100644 index 0000000..34bc225 --- /dev/null +++ b/3rdparty/cvblob/CMakeFiles/cvblob.dir/build.make @@ -0,0 +1,239 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 2.8 + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canoncical targets will work. +.SUFFIXES: + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E remove -f + +# The program to use to edit the cache. +CMAKE_EDIT_COMMAND = /usr/bin/ccmake + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/dborrman/Jacobs/software/slam6d/trunk + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/dborrman/Jacobs/software/slam6d/trunk + +# Include any dependencies generated for this target. +include 3rdparty/cvblob/CMakeFiles/cvblob.dir/depend.make + +# Include the progress variables for this target. +include 3rdparty/cvblob/CMakeFiles/cvblob.dir/progress.make + +# Include the compile flags for this target's objects. +include 3rdparty/cvblob/CMakeFiles/cvblob.dir/flags.make + +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvblob.cpp.o: 3rdparty/cvblob/CMakeFiles/cvblob.dir/flags.make +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvblob.cpp.o: 3rdparty/cvblob/cvblob.cpp + $(CMAKE_COMMAND) -E cmake_progress_report /home/dborrman/Jacobs/software/slam6d/trunk/CMakeFiles $(CMAKE_PROGRESS_1) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building CXX object 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvblob.cpp.o" + cd /home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob && /usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/cvblob.dir/cvblob.cpp.o -c /home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvblob.cpp + +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvblob.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/cvblob.dir/cvblob.cpp.i" + cd /home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob && /usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -E /home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvblob.cpp > CMakeFiles/cvblob.dir/cvblob.cpp.i + +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvblob.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/cvblob.dir/cvblob.cpp.s" + cd /home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob && /usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -S /home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvblob.cpp -o CMakeFiles/cvblob.dir/cvblob.cpp.s + +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvblob.cpp.o.requires: +.PHONY : 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvblob.cpp.o.requires + +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvblob.cpp.o.provides: 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvblob.cpp.o.requires + $(MAKE) -f 3rdparty/cvblob/CMakeFiles/cvblob.dir/build.make 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvblob.cpp.o.provides.build +.PHONY : 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvblob.cpp.o.provides + +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvblob.cpp.o.provides.build: 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvblob.cpp.o +.PHONY : 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvblob.cpp.o.provides.build + +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvlabel.cpp.o: 3rdparty/cvblob/CMakeFiles/cvblob.dir/flags.make +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvlabel.cpp.o: 3rdparty/cvblob/cvlabel.cpp + $(CMAKE_COMMAND) -E cmake_progress_report /home/dborrman/Jacobs/software/slam6d/trunk/CMakeFiles $(CMAKE_PROGRESS_2) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building CXX object 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvlabel.cpp.o" + cd /home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob && /usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/cvblob.dir/cvlabel.cpp.o -c /home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvlabel.cpp + +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvlabel.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/cvblob.dir/cvlabel.cpp.i" + cd /home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob && /usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -E /home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvlabel.cpp > CMakeFiles/cvblob.dir/cvlabel.cpp.i + +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvlabel.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/cvblob.dir/cvlabel.cpp.s" + cd /home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob && /usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -S /home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvlabel.cpp -o CMakeFiles/cvblob.dir/cvlabel.cpp.s + +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvlabel.cpp.o.requires: +.PHONY : 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvlabel.cpp.o.requires + +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvlabel.cpp.o.provides: 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvlabel.cpp.o.requires + $(MAKE) -f 3rdparty/cvblob/CMakeFiles/cvblob.dir/build.make 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvlabel.cpp.o.provides.build +.PHONY : 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvlabel.cpp.o.provides + +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvlabel.cpp.o.provides.build: 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvlabel.cpp.o +.PHONY : 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvlabel.cpp.o.provides.build + +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvaux.cpp.o: 3rdparty/cvblob/CMakeFiles/cvblob.dir/flags.make +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvaux.cpp.o: 3rdparty/cvblob/cvaux.cpp + $(CMAKE_COMMAND) -E cmake_progress_report /home/dborrman/Jacobs/software/slam6d/trunk/CMakeFiles $(CMAKE_PROGRESS_3) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building CXX object 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvaux.cpp.o" + cd /home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob && /usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/cvblob.dir/cvaux.cpp.o -c /home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvaux.cpp + +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvaux.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/cvblob.dir/cvaux.cpp.i" + cd /home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob && /usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -E /home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvaux.cpp > CMakeFiles/cvblob.dir/cvaux.cpp.i + +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvaux.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/cvblob.dir/cvaux.cpp.s" + cd /home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob && /usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -S /home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvaux.cpp -o CMakeFiles/cvblob.dir/cvaux.cpp.s + +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvaux.cpp.o.requires: +.PHONY : 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvaux.cpp.o.requires + +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvaux.cpp.o.provides: 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvaux.cpp.o.requires + $(MAKE) -f 3rdparty/cvblob/CMakeFiles/cvblob.dir/build.make 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvaux.cpp.o.provides.build +.PHONY : 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvaux.cpp.o.provides + +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvaux.cpp.o.provides.build: 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvaux.cpp.o +.PHONY : 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvaux.cpp.o.provides.build + +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcontour.cpp.o: 3rdparty/cvblob/CMakeFiles/cvblob.dir/flags.make +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcontour.cpp.o: 3rdparty/cvblob/cvcontour.cpp + $(CMAKE_COMMAND) -E cmake_progress_report /home/dborrman/Jacobs/software/slam6d/trunk/CMakeFiles $(CMAKE_PROGRESS_4) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building CXX object 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcontour.cpp.o" + cd /home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob && /usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/cvblob.dir/cvcontour.cpp.o -c /home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvcontour.cpp + +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcontour.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/cvblob.dir/cvcontour.cpp.i" + cd /home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob && /usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -E /home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvcontour.cpp > CMakeFiles/cvblob.dir/cvcontour.cpp.i + +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcontour.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/cvblob.dir/cvcontour.cpp.s" + cd /home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob && /usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -S /home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvcontour.cpp -o CMakeFiles/cvblob.dir/cvcontour.cpp.s + +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcontour.cpp.o.requires: +.PHONY : 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcontour.cpp.o.requires + +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcontour.cpp.o.provides: 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcontour.cpp.o.requires + $(MAKE) -f 3rdparty/cvblob/CMakeFiles/cvblob.dir/build.make 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcontour.cpp.o.provides.build +.PHONY : 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcontour.cpp.o.provides + +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcontour.cpp.o.provides.build: 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcontour.cpp.o +.PHONY : 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcontour.cpp.o.provides.build + +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvtrack.cpp.o: 3rdparty/cvblob/CMakeFiles/cvblob.dir/flags.make +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvtrack.cpp.o: 3rdparty/cvblob/cvtrack.cpp + $(CMAKE_COMMAND) -E cmake_progress_report /home/dborrman/Jacobs/software/slam6d/trunk/CMakeFiles $(CMAKE_PROGRESS_5) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building CXX object 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvtrack.cpp.o" + cd /home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob && /usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/cvblob.dir/cvtrack.cpp.o -c /home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvtrack.cpp + +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvtrack.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/cvblob.dir/cvtrack.cpp.i" + cd /home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob && /usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -E /home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvtrack.cpp > CMakeFiles/cvblob.dir/cvtrack.cpp.i + +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvtrack.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/cvblob.dir/cvtrack.cpp.s" + cd /home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob && /usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -S /home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvtrack.cpp -o CMakeFiles/cvblob.dir/cvtrack.cpp.s + +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvtrack.cpp.o.requires: +.PHONY : 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvtrack.cpp.o.requires + +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvtrack.cpp.o.provides: 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvtrack.cpp.o.requires + $(MAKE) -f 3rdparty/cvblob/CMakeFiles/cvblob.dir/build.make 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvtrack.cpp.o.provides.build +.PHONY : 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvtrack.cpp.o.provides + +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvtrack.cpp.o.provides.build: 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvtrack.cpp.o +.PHONY : 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvtrack.cpp.o.provides.build + +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcolor.cpp.o: 3rdparty/cvblob/CMakeFiles/cvblob.dir/flags.make +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcolor.cpp.o: 3rdparty/cvblob/cvcolor.cpp + $(CMAKE_COMMAND) -E cmake_progress_report /home/dborrman/Jacobs/software/slam6d/trunk/CMakeFiles $(CMAKE_PROGRESS_6) + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Building CXX object 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcolor.cpp.o" + cd /home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob && /usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -o CMakeFiles/cvblob.dir/cvcolor.cpp.o -c /home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvcolor.cpp + +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcolor.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/cvblob.dir/cvcolor.cpp.i" + cd /home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob && /usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -E /home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvcolor.cpp > CMakeFiles/cvblob.dir/cvcolor.cpp.i + +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcolor.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/cvblob.dir/cvcolor.cpp.s" + cd /home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob && /usr/bin/c++ $(CXX_DEFINES) $(CXX_FLAGS) -S /home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvcolor.cpp -o CMakeFiles/cvblob.dir/cvcolor.cpp.s + +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcolor.cpp.o.requires: +.PHONY : 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcolor.cpp.o.requires + +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcolor.cpp.o.provides: 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcolor.cpp.o.requires + $(MAKE) -f 3rdparty/cvblob/CMakeFiles/cvblob.dir/build.make 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcolor.cpp.o.provides.build +.PHONY : 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcolor.cpp.o.provides + +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcolor.cpp.o.provides.build: 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcolor.cpp.o +.PHONY : 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcolor.cpp.o.provides.build + +# Object files for target cvblob +cvblob_OBJECTS = \ +"CMakeFiles/cvblob.dir/cvblob.cpp.o" \ +"CMakeFiles/cvblob.dir/cvlabel.cpp.o" \ +"CMakeFiles/cvblob.dir/cvaux.cpp.o" \ +"CMakeFiles/cvblob.dir/cvcontour.cpp.o" \ +"CMakeFiles/cvblob.dir/cvtrack.cpp.o" \ +"CMakeFiles/cvblob.dir/cvcolor.cpp.o" + +# External object files for target cvblob +cvblob_EXTERNAL_OBJECTS = + +3rdparty/cvblob/libcvblob.a: 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvblob.cpp.o +3rdparty/cvblob/libcvblob.a: 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvlabel.cpp.o +3rdparty/cvblob/libcvblob.a: 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvaux.cpp.o +3rdparty/cvblob/libcvblob.a: 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcontour.cpp.o +3rdparty/cvblob/libcvblob.a: 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvtrack.cpp.o +3rdparty/cvblob/libcvblob.a: 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcolor.cpp.o +3rdparty/cvblob/libcvblob.a: 3rdparty/cvblob/CMakeFiles/cvblob.dir/build.make +3rdparty/cvblob/libcvblob.a: 3rdparty/cvblob/CMakeFiles/cvblob.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --red --bold "Linking CXX static library libcvblob.a" + cd /home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob && $(CMAKE_COMMAND) -P CMakeFiles/cvblob.dir/cmake_clean_target.cmake + cd /home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/cvblob.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +3rdparty/cvblob/CMakeFiles/cvblob.dir/build: 3rdparty/cvblob/libcvblob.a +.PHONY : 3rdparty/cvblob/CMakeFiles/cvblob.dir/build + +3rdparty/cvblob/CMakeFiles/cvblob.dir/requires: 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvblob.cpp.o.requires +3rdparty/cvblob/CMakeFiles/cvblob.dir/requires: 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvlabel.cpp.o.requires +3rdparty/cvblob/CMakeFiles/cvblob.dir/requires: 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvaux.cpp.o.requires +3rdparty/cvblob/CMakeFiles/cvblob.dir/requires: 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcontour.cpp.o.requires +3rdparty/cvblob/CMakeFiles/cvblob.dir/requires: 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvtrack.cpp.o.requires +3rdparty/cvblob/CMakeFiles/cvblob.dir/requires: 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcolor.cpp.o.requires +.PHONY : 3rdparty/cvblob/CMakeFiles/cvblob.dir/requires + +3rdparty/cvblob/CMakeFiles/cvblob.dir/clean: + cd /home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob && $(CMAKE_COMMAND) -P CMakeFiles/cvblob.dir/cmake_clean.cmake +.PHONY : 3rdparty/cvblob/CMakeFiles/cvblob.dir/clean + +3rdparty/cvblob/CMakeFiles/cvblob.dir/depend: + cd /home/dborrman/Jacobs/software/slam6d/trunk && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/dborrman/Jacobs/software/slam6d/trunk /home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob /home/dborrman/Jacobs/software/slam6d/trunk /home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob /home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/CMakeFiles/cvblob.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : 3rdparty/cvblob/CMakeFiles/cvblob.dir/depend + diff --git a/3rdparty/cvblob/CMakeFiles/cvblob.dir/cmake_clean.cmake b/3rdparty/cvblob/CMakeFiles/cvblob.dir/cmake_clean.cmake new file mode 100644 index 0000000..83614d9 --- /dev/null +++ b/3rdparty/cvblob/CMakeFiles/cvblob.dir/cmake_clean.cmake @@ -0,0 +1,15 @@ +FILE(REMOVE_RECURSE + "CMakeFiles/cvblob.dir/cvblob.cpp.o" + "CMakeFiles/cvblob.dir/cvlabel.cpp.o" + "CMakeFiles/cvblob.dir/cvaux.cpp.o" + "CMakeFiles/cvblob.dir/cvcontour.cpp.o" + "CMakeFiles/cvblob.dir/cvtrack.cpp.o" + "CMakeFiles/cvblob.dir/cvcolor.cpp.o" + "libcvblob.pdb" + "libcvblob.a" +) + +# Per-language clean rules from dependency scanning. +FOREACH(lang CXX) + INCLUDE(CMakeFiles/cvblob.dir/cmake_clean_${lang}.cmake OPTIONAL) +ENDFOREACH(lang) diff --git a/3rdparty/cvblob/CMakeFiles/cvblob.dir/cmake_clean_target.cmake b/3rdparty/cvblob/CMakeFiles/cvblob.dir/cmake_clean_target.cmake new file mode 100644 index 0000000..bcf408f --- /dev/null +++ b/3rdparty/cvblob/CMakeFiles/cvblob.dir/cmake_clean_target.cmake @@ -0,0 +1,3 @@ +FILE(REMOVE_RECURSE + "libcvblob.a" +) diff --git a/3rdparty/cvblob/CMakeFiles/cvblob.dir/depend.internal b/3rdparty/cvblob/CMakeFiles/cvblob.dir/depend.internal new file mode 100644 index 0000000..a6c2fc9 --- /dev/null +++ b/3rdparty/cvblob/CMakeFiles/cvblob.dir/depend.internal @@ -0,0 +1,101 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 2.8 + +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvaux.cpp.o + /home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvaux.cpp + /home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvblob.h + /usr/include/opencv/cv.h + /usr/include/opencv/cv.hpp + /usr/include/opencv/cvcompat.h + /usr/include/opencv/cvtypes.h + /usr/include/opencv/cvver.h + /usr/include/opencv/cxcore.h + /usr/include/opencv/cxcore.hpp + /usr/include/opencv/cxerror.h + /usr/include/opencv/cxflann.h + /usr/include/opencv/cxmat.hpp + /usr/include/opencv/cxmisc.h + /usr/include/opencv/cxoperations.hpp + /usr/include/opencv/cxtypes.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvblob.cpp.o + /home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvblob.cpp + /home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvblob.h + /usr/include/opencv/cv.h + /usr/include/opencv/cv.hpp + /usr/include/opencv/cvcompat.h + /usr/include/opencv/cvtypes.h + /usr/include/opencv/cvver.h + /usr/include/opencv/cxcore.h + /usr/include/opencv/cxcore.hpp + /usr/include/opencv/cxerror.h + /usr/include/opencv/cxflann.h + /usr/include/opencv/cxmat.hpp + /usr/include/opencv/cxmisc.h + /usr/include/opencv/cxoperations.hpp + /usr/include/opencv/cxtypes.h + /usr/include/opencv/highgui.h + /usr/include/opencv/highgui.hpp +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcolor.cpp.o + /home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvblob.h + /home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvcolor.cpp + /usr/include/opencv/cv.h + /usr/include/opencv/cv.hpp + /usr/include/opencv/cvcompat.h + /usr/include/opencv/cvtypes.h + /usr/include/opencv/cvver.h + /usr/include/opencv/cxcore.h + /usr/include/opencv/cxcore.hpp + /usr/include/opencv/cxerror.h + /usr/include/opencv/cxflann.h + /usr/include/opencv/cxmat.hpp + /usr/include/opencv/cxmisc.h + /usr/include/opencv/cxoperations.hpp + /usr/include/opencv/cxtypes.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcontour.cpp.o + /home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvblob.h + /home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvcontour.cpp + /usr/include/opencv/cv.h + /usr/include/opencv/cv.hpp + /usr/include/opencv/cvcompat.h + /usr/include/opencv/cvtypes.h + /usr/include/opencv/cvver.h + /usr/include/opencv/cxcore.h + /usr/include/opencv/cxcore.hpp + /usr/include/opencv/cxerror.h + /usr/include/opencv/cxflann.h + /usr/include/opencv/cxmat.hpp + /usr/include/opencv/cxmisc.h + /usr/include/opencv/cxoperations.hpp + /usr/include/opencv/cxtypes.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvlabel.cpp.o + /home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvblob.h + /home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvlabel.cpp + /usr/include/opencv/cv.h + /usr/include/opencv/cv.hpp + /usr/include/opencv/cvcompat.h + /usr/include/opencv/cvtypes.h + /usr/include/opencv/cvver.h + /usr/include/opencv/cxcore.h + /usr/include/opencv/cxcore.hpp + /usr/include/opencv/cxerror.h + /usr/include/opencv/cxflann.h + /usr/include/opencv/cxmat.hpp + /usr/include/opencv/cxmisc.h + /usr/include/opencv/cxoperations.hpp + /usr/include/opencv/cxtypes.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvtrack.cpp.o + /home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvblob.h + /home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/cvtrack.cpp + /usr/include/opencv/cv.h + /usr/include/opencv/cv.hpp + /usr/include/opencv/cvcompat.h + /usr/include/opencv/cvtypes.h + /usr/include/opencv/cvver.h + /usr/include/opencv/cxcore.h + /usr/include/opencv/cxcore.hpp + /usr/include/opencv/cxerror.h + /usr/include/opencv/cxflann.h + /usr/include/opencv/cxmat.hpp + /usr/include/opencv/cxmisc.h + /usr/include/opencv/cxoperations.hpp + /usr/include/opencv/cxtypes.h diff --git a/3rdparty/cvblob/CMakeFiles/cvblob.dir/depend.make b/3rdparty/cvblob/CMakeFiles/cvblob.dir/depend.make new file mode 100644 index 0000000..493e65b --- /dev/null +++ b/3rdparty/cvblob/CMakeFiles/cvblob.dir/depend.make @@ -0,0 +1,101 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 2.8 + +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvaux.cpp.o: 3rdparty/cvblob/cvaux.cpp +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvaux.cpp.o: 3rdparty/cvblob/cvblob.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvaux.cpp.o: /usr/include/opencv/cv.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvaux.cpp.o: /usr/include/opencv/cv.hpp +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvaux.cpp.o: /usr/include/opencv/cvcompat.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvaux.cpp.o: /usr/include/opencv/cvtypes.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvaux.cpp.o: /usr/include/opencv/cvver.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvaux.cpp.o: /usr/include/opencv/cxcore.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvaux.cpp.o: /usr/include/opencv/cxcore.hpp +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvaux.cpp.o: /usr/include/opencv/cxerror.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvaux.cpp.o: /usr/include/opencv/cxflann.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvaux.cpp.o: /usr/include/opencv/cxmat.hpp +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvaux.cpp.o: /usr/include/opencv/cxmisc.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvaux.cpp.o: /usr/include/opencv/cxoperations.hpp +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvaux.cpp.o: /usr/include/opencv/cxtypes.h + +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvblob.cpp.o: 3rdparty/cvblob/cvblob.cpp +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvblob.cpp.o: 3rdparty/cvblob/cvblob.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvblob.cpp.o: /usr/include/opencv/cv.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvblob.cpp.o: /usr/include/opencv/cv.hpp +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvblob.cpp.o: /usr/include/opencv/cvcompat.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvblob.cpp.o: /usr/include/opencv/cvtypes.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvblob.cpp.o: /usr/include/opencv/cvver.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvblob.cpp.o: /usr/include/opencv/cxcore.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvblob.cpp.o: /usr/include/opencv/cxcore.hpp +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvblob.cpp.o: /usr/include/opencv/cxerror.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvblob.cpp.o: /usr/include/opencv/cxflann.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvblob.cpp.o: /usr/include/opencv/cxmat.hpp +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvblob.cpp.o: /usr/include/opencv/cxmisc.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvblob.cpp.o: /usr/include/opencv/cxoperations.hpp +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvblob.cpp.o: /usr/include/opencv/cxtypes.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvblob.cpp.o: /usr/include/opencv/highgui.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvblob.cpp.o: /usr/include/opencv/highgui.hpp + +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcolor.cpp.o: 3rdparty/cvblob/cvblob.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcolor.cpp.o: 3rdparty/cvblob/cvcolor.cpp +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcolor.cpp.o: /usr/include/opencv/cv.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcolor.cpp.o: /usr/include/opencv/cv.hpp +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcolor.cpp.o: /usr/include/opencv/cvcompat.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcolor.cpp.o: /usr/include/opencv/cvtypes.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcolor.cpp.o: /usr/include/opencv/cvver.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcolor.cpp.o: /usr/include/opencv/cxcore.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcolor.cpp.o: /usr/include/opencv/cxcore.hpp +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcolor.cpp.o: /usr/include/opencv/cxerror.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcolor.cpp.o: /usr/include/opencv/cxflann.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcolor.cpp.o: /usr/include/opencv/cxmat.hpp +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcolor.cpp.o: /usr/include/opencv/cxmisc.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcolor.cpp.o: /usr/include/opencv/cxoperations.hpp +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcolor.cpp.o: /usr/include/opencv/cxtypes.h + +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcontour.cpp.o: 3rdparty/cvblob/cvblob.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcontour.cpp.o: 3rdparty/cvblob/cvcontour.cpp +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcontour.cpp.o: /usr/include/opencv/cv.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcontour.cpp.o: /usr/include/opencv/cv.hpp +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcontour.cpp.o: /usr/include/opencv/cvcompat.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcontour.cpp.o: /usr/include/opencv/cvtypes.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcontour.cpp.o: /usr/include/opencv/cvver.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcontour.cpp.o: /usr/include/opencv/cxcore.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcontour.cpp.o: /usr/include/opencv/cxcore.hpp +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcontour.cpp.o: /usr/include/opencv/cxerror.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcontour.cpp.o: /usr/include/opencv/cxflann.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcontour.cpp.o: /usr/include/opencv/cxmat.hpp +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcontour.cpp.o: /usr/include/opencv/cxmisc.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcontour.cpp.o: /usr/include/opencv/cxoperations.hpp +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcontour.cpp.o: /usr/include/opencv/cxtypes.h + +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvlabel.cpp.o: 3rdparty/cvblob/cvblob.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvlabel.cpp.o: 3rdparty/cvblob/cvlabel.cpp +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvlabel.cpp.o: /usr/include/opencv/cv.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvlabel.cpp.o: /usr/include/opencv/cv.hpp +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvlabel.cpp.o: /usr/include/opencv/cvcompat.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvlabel.cpp.o: /usr/include/opencv/cvtypes.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvlabel.cpp.o: /usr/include/opencv/cvver.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvlabel.cpp.o: /usr/include/opencv/cxcore.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvlabel.cpp.o: /usr/include/opencv/cxcore.hpp +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvlabel.cpp.o: /usr/include/opencv/cxerror.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvlabel.cpp.o: /usr/include/opencv/cxflann.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvlabel.cpp.o: /usr/include/opencv/cxmat.hpp +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvlabel.cpp.o: /usr/include/opencv/cxmisc.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvlabel.cpp.o: /usr/include/opencv/cxoperations.hpp +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvlabel.cpp.o: /usr/include/opencv/cxtypes.h + +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvtrack.cpp.o: 3rdparty/cvblob/cvblob.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvtrack.cpp.o: 3rdparty/cvblob/cvtrack.cpp +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvtrack.cpp.o: /usr/include/opencv/cv.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvtrack.cpp.o: /usr/include/opencv/cv.hpp +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvtrack.cpp.o: /usr/include/opencv/cvcompat.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvtrack.cpp.o: /usr/include/opencv/cvtypes.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvtrack.cpp.o: /usr/include/opencv/cvver.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvtrack.cpp.o: /usr/include/opencv/cxcore.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvtrack.cpp.o: /usr/include/opencv/cxcore.hpp +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvtrack.cpp.o: /usr/include/opencv/cxerror.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvtrack.cpp.o: /usr/include/opencv/cxflann.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvtrack.cpp.o: /usr/include/opencv/cxmat.hpp +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvtrack.cpp.o: /usr/include/opencv/cxmisc.h +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvtrack.cpp.o: /usr/include/opencv/cxoperations.hpp +3rdparty/cvblob/CMakeFiles/cvblob.dir/cvtrack.cpp.o: /usr/include/opencv/cxtypes.h + diff --git a/3rdparty/cvblob/CMakeFiles/cvblob.dir/flags.make b/3rdparty/cvblob/CMakeFiles/cvblob.dir/flags.make new file mode 100644 index 0000000..a35a95c --- /dev/null +++ b/3rdparty/cvblob/CMakeFiles/cvblob.dir/flags.make @@ -0,0 +1,8 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 2.8 + +# compile CXX with /usr/bin/c++ +CXX_FLAGS = -I/usr/include/opencv + +CXX_DEFINES = + diff --git a/3rdparty/cvblob/CMakeFiles/cvblob.dir/link.txt b/3rdparty/cvblob/CMakeFiles/cvblob.dir/link.txt new file mode 100644 index 0000000..450d488 --- /dev/null +++ b/3rdparty/cvblob/CMakeFiles/cvblob.dir/link.txt @@ -0,0 +1,2 @@ +/usr/bin/ar cr libcvblob.a CMakeFiles/cvblob.dir/cvblob.cpp.o CMakeFiles/cvblob.dir/cvlabel.cpp.o CMakeFiles/cvblob.dir/cvaux.cpp.o CMakeFiles/cvblob.dir/cvcontour.cpp.o CMakeFiles/cvblob.dir/cvtrack.cpp.o CMakeFiles/cvblob.dir/cvcolor.cpp.o +/usr/bin/ranlib libcvblob.a diff --git a/3rdparty/cvblob/CMakeFiles/cvblob.dir/progress.make b/3rdparty/cvblob/CMakeFiles/cvblob.dir/progress.make new file mode 100644 index 0000000..027e046 --- /dev/null +++ b/3rdparty/cvblob/CMakeFiles/cvblob.dir/progress.make @@ -0,0 +1,7 @@ +CMAKE_PROGRESS_1 = +CMAKE_PROGRESS_2 = 18 +CMAKE_PROGRESS_3 = +CMAKE_PROGRESS_4 = 19 +CMAKE_PROGRESS_5 = 20 +CMAKE_PROGRESS_6 = + diff --git a/3rdparty/cvblob/CMakeFiles/progress.marks b/3rdparty/cvblob/CMakeFiles/progress.marks new file mode 100644 index 0000000..00750ed --- /dev/null +++ b/3rdparty/cvblob/CMakeFiles/progress.marks @@ -0,0 +1 @@ +3 diff --git a/3rdparty/cvblob/CMakeLists.txt b/3rdparty/cvblob/CMakeLists.txt new file mode 100644 index 0000000..2837e95 --- /dev/null +++ b/3rdparty/cvblob/CMakeLists.txt @@ -0,0 +1,45 @@ +# Copyright (C) 2007 by Crist贸bal Carnero Li帽谩n +# grendel.ccl@gmail.com +# +# This file is part of cvBlob. +# +# cvBlob is free software: you can redistribute it and/or modify +# it under the terms of the Lesser GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cvBlob is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# Lesser GNU General Public License for more details. +# +# You should have received a copy of the Lesser GNU General Public License +# along with cvBlob. If not, see . +# + +IF (WITH_THERMO) + +MESSAGE(STATUS "With cvblob") +find_package(OpenCV REQUIRED) + +set(CVBLOB_SRCS + cvblob.cpp + cvlabel.cpp + cvaux.cpp + cvcontour.cpp + cvtrack.cpp + cvcolor.cpp +) + +set_source_files_properties(${cvBlob_SRC} + PROPERTIES + COMPILE_FLAGS "-O3" +) + +add_library(cvblob STATIC ${CVBLOB_SRCS}) + +IF(EXPORT_SHARED_LIBS) +add_library(cvblob_s SHARED ${CVBLOB_SRCS}) +ENDIF(EXPORT_SHARED_LIBS) + +ENDIF (WITH_THERMO) diff --git a/3rdparty/cvblob/COPYING b/3rdparty/cvblob/COPYING new file mode 100644 index 0000000..94a9ed0 --- /dev/null +++ b/3rdparty/cvblob/COPYING @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/3rdparty/cvblob/COPYING.LESSER b/3rdparty/cvblob/COPYING.LESSER new file mode 100644 index 0000000..fc8a5de --- /dev/null +++ b/3rdparty/cvblob/COPYING.LESSER @@ -0,0 +1,165 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/3rdparty/cvblob/Makefile b/3rdparty/cvblob/Makefile new file mode 100644 index 0000000..2c51c28 --- /dev/null +++ b/3rdparty/cvblob/Makefile @@ -0,0 +1,299 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 2.8 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canoncical targets will work. +.SUFFIXES: + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E remove -f + +# The program to use to edit the cache. +CMAKE_EDIT_COMMAND = /usr/bin/ccmake + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/dborrman/Jacobs/software/slam6d/trunk + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/dborrman/Jacobs/software/slam6d/trunk + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake cache editor..." + /usr/bin/ccmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# The main all target +all: cmake_check_build_system + cd /home/dborrman/Jacobs/software/slam6d/trunk && $(CMAKE_COMMAND) -E cmake_progress_start /home/dborrman/Jacobs/software/slam6d/trunk/CMakeFiles /home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob/CMakeFiles/progress.marks + cd /home/dborrman/Jacobs/software/slam6d/trunk && $(MAKE) -f CMakeFiles/Makefile2 3rdparty/cvblob/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/dborrman/Jacobs/software/slam6d/trunk/CMakeFiles 0 +.PHONY : all + +# The main clean target +clean: + cd /home/dborrman/Jacobs/software/slam6d/trunk && $(MAKE) -f CMakeFiles/Makefile2 3rdparty/cvblob/clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + cd /home/dborrman/Jacobs/software/slam6d/trunk && $(MAKE) -f CMakeFiles/Makefile2 3rdparty/cvblob/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd /home/dborrman/Jacobs/software/slam6d/trunk && $(MAKE) -f CMakeFiles/Makefile2 3rdparty/cvblob/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd /home/dborrman/Jacobs/software/slam6d/trunk && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +# Convenience name for target. +3rdparty/cvblob/CMakeFiles/cvblob.dir/rule: + cd /home/dborrman/Jacobs/software/slam6d/trunk && $(MAKE) -f CMakeFiles/Makefile2 3rdparty/cvblob/CMakeFiles/cvblob.dir/rule +.PHONY : 3rdparty/cvblob/CMakeFiles/cvblob.dir/rule + +# Convenience name for target. +cvblob: 3rdparty/cvblob/CMakeFiles/cvblob.dir/rule +.PHONY : cvblob + +# fast build rule for target. +cvblob/fast: + cd /home/dborrman/Jacobs/software/slam6d/trunk && $(MAKE) -f 3rdparty/cvblob/CMakeFiles/cvblob.dir/build.make 3rdparty/cvblob/CMakeFiles/cvblob.dir/build +.PHONY : cvblob/fast + +cvaux.o: cvaux.cpp.o +.PHONY : cvaux.o + +# target to build an object file +cvaux.cpp.o: + cd /home/dborrman/Jacobs/software/slam6d/trunk && $(MAKE) -f 3rdparty/cvblob/CMakeFiles/cvblob.dir/build.make 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvaux.cpp.o +.PHONY : cvaux.cpp.o + +cvaux.i: cvaux.cpp.i +.PHONY : cvaux.i + +# target to preprocess a source file +cvaux.cpp.i: + cd /home/dborrman/Jacobs/software/slam6d/trunk && $(MAKE) -f 3rdparty/cvblob/CMakeFiles/cvblob.dir/build.make 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvaux.cpp.i +.PHONY : cvaux.cpp.i + +cvaux.s: cvaux.cpp.s +.PHONY : cvaux.s + +# target to generate assembly for a file +cvaux.cpp.s: + cd /home/dborrman/Jacobs/software/slam6d/trunk && $(MAKE) -f 3rdparty/cvblob/CMakeFiles/cvblob.dir/build.make 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvaux.cpp.s +.PHONY : cvaux.cpp.s + +cvblob.o: cvblob.cpp.o +.PHONY : cvblob.o + +# target to build an object file +cvblob.cpp.o: + cd /home/dborrman/Jacobs/software/slam6d/trunk && $(MAKE) -f 3rdparty/cvblob/CMakeFiles/cvblob.dir/build.make 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvblob.cpp.o +.PHONY : cvblob.cpp.o + +cvblob.i: cvblob.cpp.i +.PHONY : cvblob.i + +# target to preprocess a source file +cvblob.cpp.i: + cd /home/dborrman/Jacobs/software/slam6d/trunk && $(MAKE) -f 3rdparty/cvblob/CMakeFiles/cvblob.dir/build.make 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvblob.cpp.i +.PHONY : cvblob.cpp.i + +cvblob.s: cvblob.cpp.s +.PHONY : cvblob.s + +# target to generate assembly for a file +cvblob.cpp.s: + cd /home/dborrman/Jacobs/software/slam6d/trunk && $(MAKE) -f 3rdparty/cvblob/CMakeFiles/cvblob.dir/build.make 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvblob.cpp.s +.PHONY : cvblob.cpp.s + +cvcolor.o: cvcolor.cpp.o +.PHONY : cvcolor.o + +# target to build an object file +cvcolor.cpp.o: + cd /home/dborrman/Jacobs/software/slam6d/trunk && $(MAKE) -f 3rdparty/cvblob/CMakeFiles/cvblob.dir/build.make 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcolor.cpp.o +.PHONY : cvcolor.cpp.o + +cvcolor.i: cvcolor.cpp.i +.PHONY : cvcolor.i + +# target to preprocess a source file +cvcolor.cpp.i: + cd /home/dborrman/Jacobs/software/slam6d/trunk && $(MAKE) -f 3rdparty/cvblob/CMakeFiles/cvblob.dir/build.make 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcolor.cpp.i +.PHONY : cvcolor.cpp.i + +cvcolor.s: cvcolor.cpp.s +.PHONY : cvcolor.s + +# target to generate assembly for a file +cvcolor.cpp.s: + cd /home/dborrman/Jacobs/software/slam6d/trunk && $(MAKE) -f 3rdparty/cvblob/CMakeFiles/cvblob.dir/build.make 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcolor.cpp.s +.PHONY : cvcolor.cpp.s + +cvcontour.o: cvcontour.cpp.o +.PHONY : cvcontour.o + +# target to build an object file +cvcontour.cpp.o: + cd /home/dborrman/Jacobs/software/slam6d/trunk && $(MAKE) -f 3rdparty/cvblob/CMakeFiles/cvblob.dir/build.make 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcontour.cpp.o +.PHONY : cvcontour.cpp.o + +cvcontour.i: cvcontour.cpp.i +.PHONY : cvcontour.i + +# target to preprocess a source file +cvcontour.cpp.i: + cd /home/dborrman/Jacobs/software/slam6d/trunk && $(MAKE) -f 3rdparty/cvblob/CMakeFiles/cvblob.dir/build.make 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcontour.cpp.i +.PHONY : cvcontour.cpp.i + +cvcontour.s: cvcontour.cpp.s +.PHONY : cvcontour.s + +# target to generate assembly for a file +cvcontour.cpp.s: + cd /home/dborrman/Jacobs/software/slam6d/trunk && $(MAKE) -f 3rdparty/cvblob/CMakeFiles/cvblob.dir/build.make 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvcontour.cpp.s +.PHONY : cvcontour.cpp.s + +cvlabel.o: cvlabel.cpp.o +.PHONY : cvlabel.o + +# target to build an object file +cvlabel.cpp.o: + cd /home/dborrman/Jacobs/software/slam6d/trunk && $(MAKE) -f 3rdparty/cvblob/CMakeFiles/cvblob.dir/build.make 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvlabel.cpp.o +.PHONY : cvlabel.cpp.o + +cvlabel.i: cvlabel.cpp.i +.PHONY : cvlabel.i + +# target to preprocess a source file +cvlabel.cpp.i: + cd /home/dborrman/Jacobs/software/slam6d/trunk && $(MAKE) -f 3rdparty/cvblob/CMakeFiles/cvblob.dir/build.make 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvlabel.cpp.i +.PHONY : cvlabel.cpp.i + +cvlabel.s: cvlabel.cpp.s +.PHONY : cvlabel.s + +# target to generate assembly for a file +cvlabel.cpp.s: + cd /home/dborrman/Jacobs/software/slam6d/trunk && $(MAKE) -f 3rdparty/cvblob/CMakeFiles/cvblob.dir/build.make 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvlabel.cpp.s +.PHONY : cvlabel.cpp.s + +cvtrack.o: cvtrack.cpp.o +.PHONY : cvtrack.o + +# target to build an object file +cvtrack.cpp.o: + cd /home/dborrman/Jacobs/software/slam6d/trunk && $(MAKE) -f 3rdparty/cvblob/CMakeFiles/cvblob.dir/build.make 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvtrack.cpp.o +.PHONY : cvtrack.cpp.o + +cvtrack.i: cvtrack.cpp.i +.PHONY : cvtrack.i + +# target to preprocess a source file +cvtrack.cpp.i: + cd /home/dborrman/Jacobs/software/slam6d/trunk && $(MAKE) -f 3rdparty/cvblob/CMakeFiles/cvblob.dir/build.make 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvtrack.cpp.i +.PHONY : cvtrack.cpp.i + +cvtrack.s: cvtrack.cpp.s +.PHONY : cvtrack.s + +# target to generate assembly for a file +cvtrack.cpp.s: + cd /home/dborrman/Jacobs/software/slam6d/trunk && $(MAKE) -f 3rdparty/cvblob/CMakeFiles/cvblob.dir/build.make 3rdparty/cvblob/CMakeFiles/cvblob.dir/cvtrack.cpp.s +.PHONY : cvtrack.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... cvblob" + @echo "... edit_cache" + @echo "... rebuild_cache" + @echo "... cvaux.o" + @echo "... cvaux.i" + @echo "... cvaux.s" + @echo "... cvblob.o" + @echo "... cvblob.i" + @echo "... cvblob.s" + @echo "... cvcolor.o" + @echo "... cvcolor.i" + @echo "... cvcolor.s" + @echo "... cvcontour.o" + @echo "... cvcontour.i" + @echo "... cvcontour.s" + @echo "... cvlabel.o" + @echo "... cvlabel.i" + @echo "... cvlabel.s" + @echo "... cvtrack.o" + @echo "... cvtrack.i" + @echo "... cvtrack.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + cd /home/dborrman/Jacobs/software/slam6d/trunk && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/3rdparty/cvblob/README b/3rdparty/cvblob/README new file mode 100644 index 0000000..cebd81f --- /dev/null +++ b/3rdparty/cvblob/README @@ -0,0 +1,90 @@ +README for 0.10.3 cvBlob. + + +1. DOWNLOAD LATEST SOURCE + +You need Subversion ( http://subversion.tigris.org ). + +Read only checkout: + + svn checkout http://cvblob.googlecode.com/svn/trunk/ cvblob-read-only + + +2. DEPENDENCIES + +In order to compile cvBlob you need the following: + + * CMAKE ( http://www.cmake.org ) + * OpenCV ( http://opencvlibrary.sourceforge.net ) + +2.1 Instalation of dependencies in Debian type SO (Ubuntu,...) using apt: + +If you are in a Debian style distribution (Ubuntu, for example) you can do something +like this: + + sudo aptitude install cmake libcv4 libcv-dev libcvaux4 + +2.2 Instalation of dependencies in SuSE using Yast + +Type this: + + su -c "yast -i libopencv1 opencv opencv-debuginfo opencv-debugsource opencv-devel opencv-python cmake cmake-gui" + + +3. COMPILING AND INSTALLING + +In Linux, if you have unpacked the source in $CVBLOB, enter in a console: + + cd $CVBLOB + cmake . + make + sudo make install + +In Windows it must be as easy as in Linux (changing "make" for the equivalent in your compiler). +If problems, please read: + http://www.cmake.org/HTML/RunningCMake.html + +3.1 OpenCV path + +You can tell CMake where OpenCV is installed, in case it can't find it, using the "OpenCV_DIR" variable: + + cmake . -DOpenCV_DIR= + +3.2 Installation path + +To change the destination path for the installation, set "CMAKE_INSTALL_PREFIX" variable: + + cmake . -DCMAKE_INSTALL_PREFIX= + +3.3 Problems + +Latest information about compiling: + http://code.google.com/p/cvblob/wiki/HowToCompile + + +4. INFORMATION + +The official home page of cvBlob is: + http://cvblob.googlecode.com + +Downloads: + http://code.google.com/p/cvblob/downloads/list + +Documentation: + http://code.google.com/p/cvblob/wiki/WikiIndex?tm=6 + +Bug reports: + http://code.google.com/p/cvblob/issues/list + + +5. MAIN AUTHOR + +Comments, suggestions and, why not, donations (PayPal) to: + + Crist贸bal Carnero Li帽谩n E-mail: grendel.ccl@gmail.com + + +6. CONTRIBUTORS + + Stefan Gachter Web page: http://gachter.name + Kouichi Nishino diff --git a/3rdparty/cvblob/cmake_install.cmake b/3rdparty/cvblob/cmake_install.cmake new file mode 100644 index 0000000..9b1c6bf --- /dev/null +++ b/3rdparty/cvblob/cmake_install.cmake @@ -0,0 +1,34 @@ +# Install script for directory: /home/dborrman/Jacobs/software/slam6d/trunk/3rdparty/cvblob + +# Set the install prefix +IF(NOT DEFINED CMAKE_INSTALL_PREFIX) + SET(CMAKE_INSTALL_PREFIX "/usr/local") +ENDIF(NOT DEFINED CMAKE_INSTALL_PREFIX) +STRING(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +IF(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + IF(BUILD_TYPE) + STRING(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + ELSE(BUILD_TYPE) + SET(CMAKE_INSTALL_CONFIG_NAME "") + ENDIF(BUILD_TYPE) + MESSAGE(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +ENDIF(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + +# Set the component getting installed. +IF(NOT CMAKE_INSTALL_COMPONENT) + IF(COMPONENT) + MESSAGE(STATUS "Install component: \"${COMPONENT}\"") + SET(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + ELSE(COMPONENT) + SET(CMAKE_INSTALL_COMPONENT) + ENDIF(COMPONENT) +ENDIF(NOT CMAKE_INSTALL_COMPONENT) + +# Install shared libraries without execute permission? +IF(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + SET(CMAKE_INSTALL_SO_NO_EXE "1") +ENDIF(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + diff --git a/3rdparty/cvblob/cvaux.cpp b/3rdparty/cvblob/cvaux.cpp new file mode 100644 index 0000000..0404c88 --- /dev/null +++ b/3rdparty/cvblob/cvaux.cpp @@ -0,0 +1,79 @@ +// Copyright (C) 2007 by Crist贸bal Carnero Li帽谩n +// grendel.ccl@gmail.com +// +// This file is part of cvBlob. +// +// cvBlob is free software: you can redistribute it and/or modify +// it under the terms of the Lesser GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// cvBlob is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// Lesser GNU General Public License for more details. +// +// You should have received a copy of the Lesser GNU General Public License +// along with cvBlob. If not, see . +// + +#include + +#if (defined(_WIN32) || defined(__WIN32__) || defined(__TOS_WIN__) || defined(__WINDOWS__) || (defined(__APPLE__) & defined(__MACH__))) +#include +#else +#include +#endif + +#include "cvblob.h" + +namespace cvb +{ + + ////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // http://www.topcoder.com/tc?module=Static&d1=tutorials&d2=geometry1 + + double cvDotProductPoints(CvPoint const &a, CvPoint const &b, CvPoint const &c) + { + double abx = b.x-a.x; + double aby = b.y-a.y; + double bcx = c.x-b.x; + double bcy = c.y-b.y; + + return abx*bcx + aby*bcy; + } + + double cvCrossProductPoints(CvPoint const &a, CvPoint const &b, CvPoint const &c) + { + double abx = b.x-a.x; + double aby = b.y-a.y; + double acx = c.x-a.x; + double acy = c.y-a.y; + + return abx*acy - aby*acx; + } + + double cvDistancePointPoint(CvPoint const &a, CvPoint const &b) + { + double abx = a.x-b.x; + double aby = a.y-b.y; + + return sqrt(abx*abx + aby*aby); + } + + double cvDistanceLinePoint(CvPoint const &a, CvPoint const &b, CvPoint const &c, bool isSegment) + { + if (isSegment) + { + double dot1 = cvDotProductPoints(a, b, c); + if (dot1>0) return cvDistancePointPoint(b, c); + + double dot2 = cvDotProductPoints(b, a, c); + if(dot2>0) return cvDistancePointPoint(a, c); + } + + return fabs(cvCrossProductPoints(a,b,c)/cvDistancePointPoint(a,b)); + } + ////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +} diff --git a/3rdparty/cvblob/cvblob.cpp b/3rdparty/cvblob/cvblob.cpp new file mode 100644 index 0000000..83126d8 --- /dev/null +++ b/3rdparty/cvblob/cvblob.cpp @@ -0,0 +1,344 @@ +// Copyright (C) 2007 by Crist贸bal Carnero Li帽谩n +// grendel.ccl@gmail.com +// +// This file is part of cvBlob. +// +// cvBlob is free software: you can redistribute it and/or modify +// it under the terms of the Lesser GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// cvBlob is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// Lesser GNU General Public License for more details. +// +// You should have received a copy of the Lesser GNU General Public License +// along with cvBlob. If not, see . +// + +#include +#include +using namespace std; + +#if (defined(_WIN32) || defined(__WIN32__) || defined(__TOS_WIN__) || defined(__WINDOWS__) || (defined(__APPLE__) & defined(__MACH__))) +#include +#include +#else +#include +#include +#endif + +#include "cvblob.h" + +namespace cvb +{ + + CvLabel cvGreaterBlob(const CvBlobs &blobs) + { + CvLabel label=0; + unsigned int maxArea=0; + + for (CvBlobs::const_iterator it=blobs.begin();it!=blobs.end();++it) + { + CvBlob *blob=(*it).second; + //if ((!blob->_parent)&&(blob->area>maxArea)) + if (blob->area>maxArea) + { + label=blob->label; + maxArea=blob->area; + } + } + + return label; + } + + void cvFilterByArea(CvBlobs &blobs, unsigned int minArea, unsigned int maxArea) + { + CvBlobs::iterator it=blobs.begin(); + while(it!=blobs.end()) + { + CvBlob *blob=(*it).second; + if ((blob->areaarea>maxArea)) + { + cvReleaseBlob(blob); + + CvBlobs::iterator tmp=it; + ++it; + blobs.erase(tmp); + } + else + ++it; + } + } + + void cvFilterByLabel(CvBlobs &blobs, CvLabel label) + { + CvBlobs::iterator it=blobs.begin(); + while(it!=blobs.end()) + { + CvBlob *blob=(*it).second; + if (blob->label!=label) + { + delete blob; + CvBlobs::iterator tmp=it; + ++it; + blobs.erase(tmp); + } + else + ++it; + } + } + + /*void cvCentralMoments(CvBlob *blob, const IplImage *img) + { + CV_FUNCNAME("cvCentralMoments"); + __CV_BEGIN__; + if (!blob->centralMoments) + { + CV_ASSERT(img&&(img->depth==IPL_DEPTH_LABEL)&&(img->nChannels==1)); + + //cvCentroid(blob); // Here? + + blob->u11=blob->u20=blob->u02=0.; + + // Only in the bounding box + int stepIn = img->widthStep / (img->depth / 8); + int img_width = img->width; + int img_height = img->height; + int img_offset = 0; + if(0 != img->roi) + { + img_width = img->roi->width; + img_height = img->roi->height; + img_offset = img->roi->xOffset + (img->roi->yOffset * stepIn); + } + + CvLabel *imgData=(CvLabel *)img->imageData + (blob->miny * stepIn) + img_offset; + for (unsigned int r=blob->miny; + rmaxy; + r++,imgData+=stepIn) + for (unsigned int c=blob->minx;cmaxx;c++) + if (imgData[c]==blob->label) + { + double tx=(c-blob->centroid.x); + double ty=(r-blob->centroid.y); + blob->u11+=tx*ty; + blob->u20+=tx*tx; + blob->u02+=ty*ty; + } + + blob->centralMoments = true; + } + __CV_END__; + }*/ + + void cvRenderBlob(const IplImage *imgLabel, CvBlob *blob, IplImage *imgSource, IplImage *imgDest, unsigned short mode, CvScalar const &color, double alpha) + { + CV_FUNCNAME("cvRenderBlob"); + __CV_BEGIN__; + + CV_ASSERT(imgLabel&&(imgLabel->depth==IPL_DEPTH_LABEL)&&(imgLabel->nChannels==1)); + CV_ASSERT(imgDest&&(imgDest->depth==IPL_DEPTH_8U)&&(imgDest->nChannels==3)); + + if (mode&CV_BLOB_RENDER_COLOR) + { + int stepLbl = imgLabel->widthStep/(imgLabel->depth/8); + int stepSrc = imgSource->widthStep/(imgSource->depth/8); + int stepDst = imgDest->widthStep/(imgDest->depth/8); + int imgLabel_width = imgLabel->width; + int imgLabel_height = imgLabel->height; + int imgLabel_offset = 0; + int imgSource_width = imgSource->width; + int imgSource_height = imgSource->height; + int imgSource_offset = 0; + int imgDest_width = imgDest->width; + int imgDest_height = imgDest->height; + int imgDest_offset = 0; + if(imgLabel->roi) + { + imgLabel_width = imgLabel->roi->width; + imgLabel_height = imgLabel->roi->height; + imgLabel_offset = (imgLabel->nChannels * imgLabel->roi->xOffset) + (imgLabel->roi->yOffset * stepLbl); + } + if(imgSource->roi) + { + imgSource_width = imgSource->roi->width; + imgSource_height = imgSource->roi->height; + imgSource_offset = (imgSource->nChannels * imgSource->roi->xOffset) + (imgSource->roi->yOffset * stepSrc); + } + if(imgDest->roi) + { + imgDest_width = imgDest->roi->width; + imgDest_height = imgDest->roi->height; + imgDest_offset = (imgDest->nChannels * imgDest->roi->xOffset) + (imgDest->roi->yOffset * stepDst); + } + + CvLabel *labels = (CvLabel *)imgLabel->imageData + imgLabel_offset + (blob->miny * stepLbl); + unsigned char *source = (unsigned char *)imgSource->imageData + imgSource_offset + (blob->miny * stepSrc); + unsigned char *imgData = (unsigned char *)imgDest->imageData + imgDest_offset + (blob->miny * stepDst); + + for (unsigned int r=blob->miny; rmaxy; r++, labels+=stepLbl, source+=stepSrc, imgData+=stepDst) + for (unsigned int c=blob->minx; cmaxx; c++) + { + if (labels[c]==blob->label) + { + imgData[imgDest->nChannels*c+0] = (unsigned char)((1.-alpha)*source[imgSource->nChannels*c+0]+alpha*color.val[0]); + imgData[imgDest->nChannels*c+1] = (unsigned char)((1.-alpha)*source[imgSource->nChannels*c+1]+alpha*color.val[1]); + imgData[imgDest->nChannels*c+2] = (unsigned char)((1.-alpha)*source[imgSource->nChannels*c+2]+alpha*color.val[2]); + } + } + } + + if (mode) + { + if (mode&CV_BLOB_RENDER_TO_LOG) + { + std::clog << "Blob " << blob->label << std::endl; + std::clog << " - Bounding box: (" << blob->minx << ", " << blob->miny << ") - (" << blob->maxx << ", " << blob->maxy << ")" << std::endl; + std::clog << " - Bounding box area: " << (1 + blob->maxx - blob->minx) * (1 + blob->maxy - blob->miny) << std::endl; + std::clog << " - Area: " << blob->area << std::endl; + std::clog << " - Centroid: (" << blob->centroid.x << ", " << blob->centroid.y << ")" << std::endl; + std::clog << std::endl; + } + + if (mode&CV_BLOB_RENDER_TO_STD) + { + std::cout << "Blob " << blob->label << std::endl; + std::cout << " - Bounding box: (" << blob->minx << ", " << blob->miny << ") - (" << blob->maxx << ", " << blob->maxy << ")" << std::endl; + std::cout << " - Bounding box area: " << (1 + blob->maxx - blob->minx) * (1 + blob->maxy - blob->miny) << std::endl; + std::cout << " - Area: " << blob->area << std::endl; + std::cout << " - Centroid: (" << blob->centroid.x << ", " << blob->centroid.y << ")" << std::endl; + std::cout << std::endl; + } + + if (mode&CV_BLOB_RENDER_BOUNDING_BOX) + cvRectangle(imgDest, cvPoint(blob->minx, blob->miny), cvPoint(blob->maxx-1, blob->maxy-1), CV_RGB(255., 0., 0.)); + + if (mode&CV_BLOB_RENDER_ANGLE) + { + double angle = cvAngle(blob); + + double x1,y1,x2,y2; + double lengthLine = MAX(blob->maxx-blob->minx, blob->maxy-blob->miny)/2.; + + x1=blob->centroid.x-lengthLine*cos(angle); + y1=blob->centroid.y-lengthLine*sin(angle); + x2=blob->centroid.x+lengthLine*cos(angle); + y2=blob->centroid.y+lengthLine*sin(angle); + cvLine(imgDest,cvPoint(int(x1),int(y1)),cvPoint(int(x2),int(y2)),CV_RGB(0.,255.,0.)); + } + + if (mode&CV_BLOB_RENDER_CENTROID) + { + cvLine(imgDest,cvPoint(int(blob->centroid.x)-3,int(blob->centroid.y)),cvPoint(int(blob->centroid.x)+3,int(blob->centroid.y)),CV_RGB(0.,0.,255.)); + cvLine(imgDest,cvPoint(int(blob->centroid.x),int(blob->centroid.y)-3),cvPoint(int(blob->centroid.x),int(blob->centroid.y)+3),CV_RGB(0.,0.,255.)); + } + } + + __CV_END__; + } + + /////////////////////////////////////////////////////////////////////////////////////////////////// + // Based on http://en.wikipedia.org/wiki/HSL_and_HSV + + /// \def _HSV2RGB_(H, S, V, R, G, B) + /// \brief Color translation between HSV and RGB. +#define _HSV2RGB_(H, S, V, R, G, B) \ + { \ + double _h = H/60.; \ + int _hf = (int)floor(_h); \ + int _hi = ((int)_h)%6; \ + double _f = _h - _hf; \ + \ + double _p = V * (1. - S); \ + double _q = V * (1. - _f * S); \ + double _t = V * (1. - (1. - _f) * S); \ + \ + switch (_hi) \ + { \ + case 0: \ + R = 255.*V; G = 255.*_t; B = 255.*_p; \ + break; \ + case 1: \ + R = 255.*_q; G = 255.*V; B = 255.*_p; \ + break; \ + case 2: \ + R = 255.*_p; G = 255.*V; B = 255.*_t; \ + break; \ + case 3: \ + R = 255.*_p; G = 255.*_q; B = 255.*V; \ + break; \ + case 4: \ + R = 255.*_t; G = 255.*_p; B = 255.*V; \ + break; \ + case 5: \ + R = 255.*V; G = 255.*_p; B = 255.*_q; \ + break; \ + } \ + } + /////////////////////////////////////////////////////////////////////////////////////////////////// + + typedef std::map Palete; + + void cvRenderBlobs(const IplImage *imgLabel, CvBlobs &blobs, IplImage *imgSource, IplImage *imgDest, unsigned short mode, double alpha) + { + CV_FUNCNAME("cvRenderBlobs"); + __CV_BEGIN__; + { + + CV_ASSERT(imgLabel&&(imgLabel->depth==IPL_DEPTH_LABEL)&&(imgLabel->nChannels==1)); + CV_ASSERT(imgDest&&(imgDest->depth==IPL_DEPTH_8U)&&(imgDest->nChannels==3)); + + Palete pal; + if (mode&CV_BLOB_RENDER_COLOR) + { + + unsigned int colorCount = 0; + for (CvBlobs::const_iterator it=blobs.begin(); it!=blobs.end(); ++it) + { + CvLabel label = (*it).second->label; + + double r, g, b; + + _HSV2RGB_((double)((colorCount*77)%360), .5, 1., r, g, b); + colorCount++; + + pal[label] = CV_RGB(r, g, b); + } + } + + for (CvBlobs::iterator it=blobs.begin(); it!=blobs.end(); ++it) + cvRenderBlob(imgLabel, (*it).second, imgSource, imgDest, mode, pal[(*it).second->label], alpha); + + } + __CV_END__; + } + + // Returns radians + double cvAngle(CvBlob *blob) + { + CV_FUNCNAME("cvAngle"); + __CV_BEGIN__; + + return .5*atan2(2.*blob->u11,(blob->u20-blob->u02)); + + __CV_END__; + } + + void cvSaveImageBlob(const char *filename, IplImage *img, CvBlob const *blob) + { + CvRect roi = cvGetImageROI(img); + cvSetImageROItoBlob(img, blob); + cvSaveImage(filename, img); + cvSetImageROI(img, roi); + } + +} + +ostream& operator<< (ostream& output, const cvb::CvBlob& b) +{ + output << b.label << ": " << b.area << ", (" << b.centroid.x << ", " << b.centroid.y << "), [(" << b.minx << ", " << b.miny << ") - (" << b.maxx << ", " << b.maxy << ")]"; + + return output; +} diff --git a/3rdparty/cvblob/cvblob.h b/3rdparty/cvblob/cvblob.h new file mode 100644 index 0000000..f5d7c3c --- /dev/null +++ b/3rdparty/cvblob/cvblob.h @@ -0,0 +1,585 @@ +// Copyright (C) 2007 by Crist贸bal Carnero Li帽谩n +// grendel.ccl@gmail.com +// +// This file is part of cvBlob. +// +// cvBlob is free software: you can redistribute it and/or modify +// it under the terms of the Lesser GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// cvBlob is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// Lesser GNU General Public License for more details. +// +// You should have received a copy of the Lesser GNU General Public License +// along with cvBlob. If not, see . +// + +/// \file cvblob.h +/// \brief OpenCV Blob header file. + +#ifdef SWIG +%module cvblob +%{ +#include "cvblob.h" +%} +#endif + +#ifndef CVBLOB_H +#define CVBLOB_H + +#include +#include +#include +#include +#include + +#if (defined(_WIN32) || defined(__WIN32__) || defined(__TOS_WIN__) || defined(__WINDOWS__) || (defined(__APPLE__) & defined(__MACH__))) +#include +#else +#include +#endif + +#ifndef __CV_BEGIN__ +#define __CV_BEGIN__ __BEGIN__ +#endif +#ifndef __CV_END__ +#define __CV_END__ __END__ +#endif + +#ifdef __cplusplus +extern "C" { +#endif + + namespace cvb + { + + //////////////////////////////////////////////////////////////////////////////////////////////////////////// + // Contours + + // Chain code: + // 7 0 1 + // 6 2 + // 5 4 3 +#define CV_CHAINCODE_UP 0 ///< Up. +#define CV_CHAINCODE_UP_RIGHT 1 ///< Up and right. +#define CV_CHAINCODE_RIGHT 2 ///< Right. +#define CV_CHAINCODE_DOWN_RIGHT 3 ///< Down and right. +#define CV_CHAINCODE_DOWN 4 ///< Down. +#define CV_CHAINCODE_DOWN_LEFT 5 ///< Down and left. +#define CV_CHAINCODE_LEFT 6 ///< Left. +#define CV_CHAINCODE_UP_LEFT 7 ///< Up and left. + + /// \brief Move vectors of chain codes. + /// \see CV_CHAINCODE_UP + /// \see CV_CHAINCODE_UP_LEFT + /// \see CV_CHAINCODE_LEFT + /// \see CV_CHAINCODE_DOWN_LEFT + /// \see CV_CHAINCODE_DOWN + /// \see CV_CHAINCODE_DOWN_RIGHT + /// \see CV_CHAINCODE_RIGHT + /// \see CV_CHAINCODE_UP_RIGHT + const char cvChainCodeMoves[8][2] = { { 0, -1}, + { 1, -1}, + { 1, 0}, + { 1, 1}, + { 0, 1}, + {-1, 1}, + {-1, 0}, + {-1, -1} + }; + + /// \brief Direction. + /// \see CV_CHAINCODE_UP + /// \see CV_CHAINCODE_UP_LEFT + /// \see CV_CHAINCODE_LEFT + /// \see CV_CHAINCODE_DOWN_LEFT + /// \see CV_CHAINCODE_DOWN + /// \see CV_CHAINCODE_DOWN_RIGHT + /// \see CV_CHAINCODE_RIGHT + /// \see CV_CHAINCODE_UP_RIGHT + typedef unsigned char CvChainCode; + + /// \brief Chain code. + /// \see CvChainCode + typedef std::list CvChainCodes; + + /// \brief Chain code contour. + /// \see CvChainCodes + struct CvContourChainCode + { + CvPoint startingPoint; ///< Point where contour begin. + CvChainCodes chainCode; ///< Polygon description based on chain codes. + }; + + typedef std::list CvContoursChainCode; ///< List of contours (chain codes type). + + /// \brief Polygon based contour. + typedef std::vector CvContourPolygon; + + /// \fn void cvRenderContourChainCode(CvContourChainCode const *contour, IplImage const *img, CvScalar const &color=CV_RGB(255, 255, 255)) + /// \brief Draw a contour. + /// \param contour Chain code contour. + /// \param img Image to draw on. + /// \param color Color to draw (default, white). + /// \see CvContourChainCode + void cvRenderContourChainCode(CvContourChainCode const *contour, IplImage const *img, CvScalar const &color=CV_RGB(255, 255, 255)); + + /// \fn CvContourPolygon *cvConvertChainCodesToPolygon(CvContourChainCode const *cc) + /// \brief Convert a chain code contour to a polygon. + /// \param cc Chain code contour. + /// \return A polygon. + /// \see CvContourChainCode + /// \see CvContourPolygon + CvContourPolygon *cvConvertChainCodesToPolygon(CvContourChainCode const *cc); + + /// \fn void cvRenderContourPolygon(CvContourPolygon const *contour, IplImage *img, CvScalar const &color=CV_RGB(255, 255, 255)) + /// \brief Draw a polygon. + /// \param contour Polygon contour. + /// \param img Image to draw on. + /// \param color Color to draw (default, white). + /// \see CvContourPolygon + void cvRenderContourPolygon(CvContourPolygon const *contour, IplImage *img, CvScalar const &color=CV_RGB(255, 255, 255)); + + /// \fn double cvContourPolygonArea(CvContourPolygon const *p) + /// \brief Calculates area of a polygonal contour. + /// \param p Contour (polygon type). + /// \return Area of the contour. + double cvContourPolygonArea(CvContourPolygon const *p); + + /// \fn double cvContourChainCodePerimeter(CvContourChainCode const *c) + /// \brief Calculates perimeter of a chain code contour. + /// \param c Contour (chain code type). + /// \return Perimeter of the contour. + double cvContourChainCodePerimeter(CvContourChainCode const *c); + + /// \fn double cvContourPolygonPerimeter(CvContourPolygon const *p) + /// \brief Calculates perimeter of a polygonal contour. + /// \param p Contour (polygon type). + /// \return Perimeter of the contour. + double cvContourPolygonPerimeter(CvContourPolygon const *p); + + /// \fn double cvContourPolygonCircularity(const CvContourPolygon *p) + /// \brief Calculates the circularity of a polygon (compactness measure). + /// \param p Contour (polygon type). + /// \return Circularity: a non-negative value, where 0 correspond with a circumference. + double cvContourPolygonCircularity(const CvContourPolygon *p); + + /// \fn CvContourPolygon *cvSimplifyPolygon(CvContourPolygon const *p, double const delta=1.) + /// \brief Simplify a polygon reducing the number of vertex according the distance "delta". + /// Uses a version of the Ramer-Douglas-Peucker algorithm (http://en.wikipedia.org/wiki/Ramer-Douglas-Peucker_algorithm). + /// \param p Contour (polygon type). + /// \param delta Minimun distance. + /// \return A simplify version of the original polygon. + CvContourPolygon *cvSimplifyPolygon(CvContourPolygon const *p, double const delta=1.); + + /// \fn CvContourPolygon *cvPolygonContourConvexHull(CvContourPolygon const *p) + /// \brief Calculates convex hull of a contour. + /// Uses the Melkman Algorithm. Code based on the version in http://w3.impa.br/~rdcastan/Cgeometry/. + /// \param p Contour (polygon type). + /// \return Convex hull. + CvContourPolygon *cvPolygonContourConvexHull(CvContourPolygon const *p); + + /// \fn void cvWriteContourPolygonCSV(const CvContourPolygon& p, const std::string& filename) + /// \brief Write a contour to a CSV (Comma-separated values) file. + /// \param p Polygon contour. + /// \param filename File name. + void cvWriteContourPolygonCSV(const CvContourPolygon& p, const std::string& filename); + + /// \fn void cvWriteContourPolygonSVG(const CvContourPolygon& p, const std::string& filename, const CvScalar& stroke=cvScalar(0,0,0), const CvScalar& fill=cvScalar(255,255,255)) + /// \brief Write a contour to a SVG file (http://en.wikipedia.org/wiki/Scalable_Vector_Graphics). + /// \param p Polygon contour. + /// \param filename File name. + /// \param stroke Stroke color (black by default). + /// \param fill Fill color (white by default). + void cvWriteContourPolygonSVG(const CvContourPolygon& p, const std::string& filename, const CvScalar& stroke=cvScalar(0,0,0), const CvScalar& fill=cvScalar(255,255,255)); + + //////////////////////////////////////////////////////////////////////////////////////////////////////////// + // Blobs + + /// \brief Type of label. + /// \see IPL_DEPTH_LABEL + typedef unsigned int CvLabel; + //typedef unsigned char CvLabel; + + /// \def IPL_DEPTH_LABEL + /// \brief Size of a label in bits. + /// \see CvLabel +#define IPL_DEPTH_LABEL (sizeof(cvb::CvLabel)*8) + + /// \def CV_BLOB_MAX_LABEL + /// \brief Max label number. + /// \see CvLabel. +#define CV_BLOB_MAX_LABEL std::numeric_limits::max() + + /// \brief Type of identification numbers. + typedef unsigned int CvID; + + /// \brief Struct that contain information about one blob. + struct CvBlob + { + CvLabel label; ///< Label assigned to the blob. + + union + { + unsigned int area; ///< Area (moment 00). + unsigned int m00; ///< Moment 00 (area). + }; + + unsigned int minx; ///< X min. + unsigned int maxx; ///< X max. + unsigned int miny; ///< Y min. + unsigned int maxy; ///< y max. + + CvPoint2D64f centroid; ///< Centroid. + + double m10; ///< Moment 10. + double m01; ///< Moment 01. + double m11; ///< Moment 11. + double m20; ///< Moment 20. + double m02; ///< Moment 02. + + double u11; ///< Central moment 11. + double u20; ///< Central moment 20. + double u02; ///< Central moment 02. + + double n11; ///< Normalized central moment 11. + double n20; ///< Normalized central moment 20. + double n02; ///< Normalized central moment 02. + + double p1; ///< Hu moment 1. + double p2; ///< Hu moment 2. + + CvContourChainCode contour; ///< Contour. + CvContoursChainCode internalContours; ///< Internal contours. + }; + + /// \var typedef std::map CvBlobs + /// \brief List of blobs. + /// A map is used to access each blob from its label number. + /// \see CvLabel + /// \see CvBlob + typedef std::map CvBlobs; + + /// \var typedef std::pair CvLabelBlob + /// \brief Pair (label, blob). + /// \see CvLabel + /// \see CvBlob + typedef std::pair CvLabelBlob; + + /// \fn unsigned int cvLabel (IplImage const *img, IplImage *imgOut, CvBlobs &blobs); + /// \brief Label the connected parts of a binary image. + /// Algorithm based on paper "A linear-time component-labeling algorithm using contour tracing technique" of Fu Chang, Chun-Jen Chen and Chi-Jen Lu. + /// \param img Input binary image (depth=IPL_DEPTH_8U and num. channels=1). + /// \param imgOut Output image (depth=IPL_DEPTH_LABEL and num. channels=1). + /// \param blobs List of blobs. + /// \return Number of pixels that has been labeled. + unsigned int cvLabel (IplImage const *img, IplImage *imgOut, CvBlobs &blobs); + + //IplImage *cvFilterLabel(IplImage *imgIn, CvLabel label); + + /// \fn void cvFilterLabels(IplImage *imgIn, IplImage *imgOut, const CvBlobs &blobs) + /// \brief Draw a binary image with the blobs that have been given. + /// \param imgIn Input image (depth=IPL_DEPTH_LABEL and num. channels=1). + /// \param imgOut Output binary image (depth=IPL_DEPTH_8U and num. channels=1). + /// \param blobs List of blobs to be drawn. + /// \see cvLabel + void cvFilterLabels(IplImage *imgIn, IplImage *imgOut, const CvBlobs &blobs); + + /// \fn CvLabel cvGetLabel(IplImage const *img, unsigned int x, unsigned int y) + /// \brief Get the label value from a labeled image. + /// \param img Label image. + /// \param x X coordenate. + /// \param y Y coordenate. + /// \return Label value. + /// \see CvLabel + CvLabel cvGetLabel(IplImage const *img, unsigned int x, unsigned int y); + + /// \fn inline void cvReleaseBlob(CvBlob *blob) + /// \brief Clear a blob structure. + /// \param blob Blob. + /// \see CvBlob + inline void cvReleaseBlob(CvBlob *blob) + { + if (blob) + { + for (CvContoursChainCode::iterator jt=blob->internalContours.begin(); jt!=blob->internalContours.end(); ++jt) + { + CvContourChainCode *contour = *jt; + if (contour) + delete contour; + } + blob->internalContours.clear(); + + delete blob; + } + } + + /// \fn inline void cvReleaseBlobs(CvBlobs &blobs) + /// \brief Clear blobs structure. + /// \param blobs List of blobs. + /// \see CvBlobs + inline void cvReleaseBlobs(CvBlobs &blobs) + { + for (CvBlobs::iterator it=blobs.begin(); it!=blobs.end(); ++it) + { + cvReleaseBlob((*it).second); + } + blobs.clear(); + } + + /// \fn CvLabel cvGreaterBlob(const CvBlobs &blobs) + /// \brief Find greater blob. + /// \param blobs List of blobs. + /// \return Label of the greater blob or 0 if there are no blobs. + /// \see cvLabel + CvLabel cvGreaterBlob(const CvBlobs &blobs); + + /// \fn void cvFilterByArea(CvBlobs &blobs, unsigned int minArea, unsigned int maxArea) + /// \brief Filter blobs by area. + /// Those blobs whose areas are not in range will be erased from the input list of blobs. + /// \param blobs List of blobs. + /// \param minArea Minimun area. + /// \param maxArea Maximun area. + void cvFilterByArea(CvBlobs &blobs, unsigned int minArea, unsigned int maxArea); + + /// \fn void cvFilterByLabel(CvBlobs &blobs, CvLabel label) + /// \brief Filter blobs by label. + /// Delete all blobs except those with label l. + /// \param blobs List of blobs. + /// \param label Label to leave. + void cvFilterByLabel(CvBlobs &blobs, CvLabel label); + + /// \fn inline CvPoint2D64f cvCentroid(CvBlob *blob) + /// \brief Calculates centroid. + /// Centroid will be returned and stored in the blob structure. + /// \param blob Blob whose centroid will be calculated. + /// \return Centroid. + /// \see CvBlob + inline CvPoint2D64f cvCentroid(CvBlob *blob) + { + return blob->centroid=cvPoint2D64f(blob->m10/blob->area, blob->m01/blob->area); + } + + /// \fn double cvAngle(CvBlob *blob) + /// \brief Calculates angle orientation of a blob. + /// This function uses central moments so cvCentralMoments should have been called before for this blob. + /// \param blob Blob. + /// \return Angle orientation in radians. + /// \see cvCentralMoments + /// \see CvBlob + double cvAngle(CvBlob *blob); + + /// \fn cvSaveImageBlob(const char *filename, IplImage *img, CvBlob const *blob) + /// \brief Save the image of a blob to a file. + /// The function uses an image (that can be the original pre-processed image or a processed one, or even the result of cvRenderBlobs, for example) and a blob structure. + /// Then the function saves a copy of the part of the image where the blob is. + /// \param filename Name of the file. + /// \param img Image. + /// \param blob Blob. + /// \see CvBlob + /// \see cvRenderBlob + void cvSaveImageBlob(const char *filename, IplImage *img, CvBlob const *blob); + +#define CV_BLOB_RENDER_COLOR 0x0001 ///< Render each blog with a different color. \see cvRenderBlobs +#define CV_BLOB_RENDER_CENTROID 0x0002 ///< Render centroid. \see cvRenderBlobs +#define CV_BLOB_RENDER_BOUNDING_BOX 0x0004 ///< Render bounding box. \see cvRenderBlobs +#define CV_BLOB_RENDER_ANGLE 0x0008 ///< Render angle. \see cvRenderBlobs +#define CV_BLOB_RENDER_TO_LOG 0x0010 ///< Print blob data to log out. \see cvRenderBlobs +#define CV_BLOB_RENDER_TO_STD 0x0020 ///< Print blob data to std out. \see cvRenderBlobs + + /// \fn void cvRenderBlob(const IplImage *imgLabel, CvBlob *blob, IplImage *imgSource, IplImage *imgDest, unsigned short mode=0x000f, CvScalar const &color=CV_RGB(255, 255, 255), double alpha=1.) + /// \brief Draws or prints information about a blob. + /// \param imgLabel Label image (depth=IPL_DEPTH_LABEL and num. channels=1). + /// \param blob Blob. + /// \param imgSource Input image (depth=IPL_DEPTH_8U and num. channels=3). + /// \param imgDest Output image (depth=IPL_DEPTH_8U and num. channels=3). + /// \param mode Render mode. By default is CV_BLOB_RENDER_COLOR|CV_BLOB_RENDER_CENTROID|CV_BLOB_RENDER_BOUNDING_BOX|CV_BLOB_RENDER_ANGLE. + /// \param color Color to render (if CV_BLOB_RENDER_COLOR is used). + /// \param alpha If mode CV_BLOB_RENDER_COLOR is used. 1.0 indicates opaque and 0.0 translucent (1.0 by default). + /// \see CV_BLOB_RENDER_COLOR + /// \see CV_BLOB_RENDER_CENTROID + /// \see CV_BLOB_RENDER_BOUNDING_BOX + /// \see CV_BLOB_RENDER_ANGLE + /// \see CV_BLOB_RENDER_TO_LOG + /// \see CV_BLOB_RENDER_TO_STD + void cvRenderBlob(const IplImage *imgLabel, CvBlob *blob, IplImage *imgSource, IplImage *imgDest, unsigned short mode=0x000f, CvScalar const &color=CV_RGB(255, 255, 255), double alpha=1.); + + /// \fn void cvRenderBlobs(const IplImage *imgLabel, CvBlobs &blobs, IplImage *imgSource, IplImage *imgDest, unsigned short mode=0x000f, double alpha=1.) + /// \brief Draws or prints information about blobs. + /// \param imgLabel Label image (depth=IPL_DEPTH_LABEL and num. channels=1). + /// \param blobs List of blobs. + /// \param imgSource Input image (depth=IPL_DEPTH_8U and num. channels=3). + /// \param imgDest Output image (depth=IPL_DEPTH_8U and num. channels=3). + /// \param mode Render mode. By default is CV_BLOB_RENDER_COLOR|CV_BLOB_RENDER_CENTROID|CV_BLOB_RENDER_BOUNDING_BOX|CV_BLOB_RENDER_ANGLE. + /// \param alpha If mode CV_BLOB_RENDER_COLOR is used. 1.0 indicates opaque and 0.0 translucent (1.0 by default). + /// \see CV_BLOB_RENDER_COLOR + /// \see CV_BLOB_RENDER_CENTROID + /// \see CV_BLOB_RENDER_BOUNDING_BOX + /// \see CV_BLOB_RENDER_ANGLE + /// \see CV_BLOB_RENDER_TO_LOG + /// \see CV_BLOB_RENDER_TO_STD + void cvRenderBlobs(const IplImage *imgLabel, CvBlobs &blobs, IplImage *imgSource, IplImage *imgDest, unsigned short mode=0x000f, double alpha=1.); + + /// \fn void cvSetImageROItoBlob(IplImage *img, CvBlob const *blob) + /// \brief Set the ROI of an image to the bounding box of a blob. + /// \param img Image. + /// \param blob Blob. + /// \see CvBlob + inline void cvSetImageROItoBlob(IplImage *img, CvBlob const *blob) + { + cvSetImageROI(img, cvRect(blob->minx, blob->miny, blob->maxx-blob->minx, blob->maxy-blob->miny)); + }; + + //////////////////////////////////////////////////////////////////////////////////////////////////////////// + // Color + + /// \fn CvScalar cvBlobMeanColor(CvBlob const *blob, IplImage const *imgLabel, IplImage const *img) + /// \brief Calculates mean color of a blob in an image. + /// \param blob Blob. + /// \param imgLabel Image of labels. + /// \param img Original image. + /// \return Average color. + CvScalar cvBlobMeanColor(CvBlob const *blob, IplImage const *imgLabel, IplImage const *img); + + //////////////////////////////////////////////////////////////////////////////////////////////////////////// + // Aux + + /// \fn double cvDotProductPoints(CvPoint const &a, CvPoint const &b, CvPoint const &c) + /// \brief Dot product of the vectors ab and bc. + /// \param a First point. + /// \param b Middle point. + /// \param c Last point. + /// \return Dot product of ab and bc. + double cvDotProductPoints(CvPoint const &a, CvPoint const &b, CvPoint const &c); + + /// \fn double cvCrossProductPoints(CvPoint const &a, CvPoint const &b, CvPoint const &c) + /// \brief Cross product of the vectors ab and bc. + /// \param a Point. + /// \param b Point. + /// \param c Point. + /// \return Cross product of ab and bc. + double cvCrossProductPoints(CvPoint const &a, CvPoint const &b, CvPoint const &c); + + /// \fn double cvDistancePointPoint(CvPoint const &a, CvPoint const &b) + /// \brief Distance between two points. + /// \param a Point. + /// \param b Point. + /// \return Distance. + double cvDistancePointPoint(CvPoint const &a, CvPoint const &b); + + /// \fn double cvDistanceLinePoint(CvPoint const &a, CvPoint const &b, CvPoint const &c, bool isSegment=true) + /// \brief Distance between line ab and point c. + /// \param a First point of the segment. + /// \param b Second point of the segment. + /// \param c Point. + /// \param isSegment If false then the distance will be calculated from the line defined by the points a and b, to the point c. + /// \return Distance between ab and c. + double cvDistanceLinePoint(CvPoint const &a, CvPoint const &b, CvPoint const &c, bool isSegment=true); + + //////////////////////////////////////////////////////////////////////////////////////////////////////////// + // Tracking + + /// \brief Struct that contain information about one track. + /// \see CvID + /// \see CvLabel + struct CvTrack + { + CvID id; ///< Track identification number. + + CvLabel label; ///< Label assigned to the blob related to this track. + + unsigned int minx; ///< X min. + unsigned int maxx; ///< X max. + unsigned int miny; ///< Y min. + unsigned int maxy; ///< y max. + + CvPoint2D64f centroid; ///< Centroid. + + unsigned int lifetime; ///< Indicates how much frames the object has been in scene. + unsigned int active; ///< Indicates number of frames that has been active from last inactive period. + unsigned int inactive; ///< Indicates number of frames that has been missing. + }; + + /// \var typedef std::map CvTracks + /// \brief List of tracks. + /// \see CvID + /// \see CvTrack + typedef std::map CvTracks; + + /// \var typedef std::pair CvIDTrack + /// \brief Pair (identification number, track). + /// \see CvID + /// \see CvTrack + typedef std::pair CvIDTrack; + + /// \fn inline void cvReleaseTracks(CvTracks &tracks) + /// \brief Clear tracks structure. + /// \param tracks List of tracks. + /// \see CvTracks + inline void cvReleaseTracks(CvTracks &tracks) + { + for (CvTracks::iterator it=tracks.begin(); it!=tracks.end(); it++) + { + CvTrack *track = (*it).second; + if (track) delete track; + } + + tracks.clear(); + } + + /// \fn cvUpdateTracks(CvBlobs const &b, CvTracks &t, const double thDistance, const unsigned int thInactive, const unsigned int thActive=0) + /// \brief Updates list of tracks based on current blobs. + /// Tracking based on: + /// A.聽Senior,聽A.聽Hampapur,聽Y-L聽Tian,聽L.聽Brown,聽S.聽Pankanti,聽R.聽Bolle.聽Appearance聽Models聽for + /// Occlusion聽Handling.聽Second聽International聽workshop聽on聽Performance聽Evaluation聽of聽Tracking聽and + /// Surveillance聽Systems聽&聽CVPR'01.聽December,聽2001. + /// (http://www.research.ibm.com/peoplevision/PETS2001.pdf) + /// \param b List of blobs. + /// \param t List of tracks. + /// \param thDistance Max distance to determine when a track and a blob match. + /// \param thInactive Max number of frames a track can be inactive. + /// \param thActive If a track becomes inactive but it has been active less than thActive frames, the track will be deleted. + /// \see CvBlobs + /// \see Tracks + void cvUpdateTracks(CvBlobs const &b, CvTracks &t, const double thDistance, const unsigned int thInactive, const unsigned int thActive=0); + +#define CV_TRACK_RENDER_ID 0x0001 ///< Print the ID of each track in the image. \see cvRenderTracks +#define CV_TRACK_RENDER_BOUNDING_BOX 0x0002 ///< Draw bounding box of each track in the image. \see cvRenderTracks +#define CV_TRACK_RENDER_TO_LOG 0x0010 ///< Print track info to log out. \see cvRenderTracks +#define CV_TRACK_RENDER_TO_STD 0x0020 ///< Print track info to log out. \see cvRenderTracks + + /// \fn void cvRenderTracks(CvTracks const tracks, IplImage *imgSource, IplImage *imgDest, unsigned short mode=0x00ff, CvFont *font=NULL) + /// \brief Prints tracks information. + /// \param tracks List of tracks. + /// \param imgSource Input image (depth=IPL_DEPTH_8U and num. channels=3). + /// \param imgDest Output image (depth=IPL_DEPTH_8U and num. channels=3). + /// \param mode Render mode. By default is CV_TRACK_RENDER_ID|CV_TRACK_RENDER_BOUNDING_BOX. + /// \param font OpenCV font for print on the image. + /// \see CV_TRACK_RENDER_ID + /// \see CV_TRACK_RENDER_BOUNDING_BOX + /// \see CV_TRACK_RENDER_TO_LOG + /// \see CV_TRACK_RENDER_TO_STD + void cvRenderTracks(CvTracks const tracks, IplImage *imgSource, IplImage *imgDest, unsigned short mode=0x000f, CvFont *font=NULL); + } +#ifdef __cplusplus +} +#endif + +/// \fn std::ostream& operator<< (std::ostream& output, const cvb::CvBlob& b) +/// \brief Overload operator "<<" for printing blob structure. +/// \return Stream. +std::ostream& operator<< (std::ostream& output, const cvb::CvBlob& b); + +/// \fn std::ostream& operator<< (std::ostream& output, const cvb::CvContourPolygon& p) +/// \brief Overload operator "<<" for printing polygons in CSV format. +/// \return Stream. +std::ostream& operator<< (std::ostream& output, const cvb::CvContourPolygon& p); + +/// \fn std::ostream& operator<< (std::ostream& output, const cvb::CvTrack& t) +/// \brief Overload operator "<<" for printing track structure. +/// \return Stream. +std::ostream& operator<< (std::ostream& output, const cvb::CvTrack& t); +#endif diff --git a/3rdparty/cvblob/cvcolor.cpp b/3rdparty/cvblob/cvcolor.cpp new file mode 100644 index 0000000..fda20d4 --- /dev/null +++ b/3rdparty/cvblob/cvcolor.cpp @@ -0,0 +1,104 @@ +// Copyright (C) 2007 by Crist贸bal Carnero Li帽谩n +// grendel.ccl@gmail.com +// +// This file is part of cvBlob. +// +// cvBlob is free software: you can redistribute it and/or modify +// it under the terms of the Lesser GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// cvBlob is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// Lesser GNU General Public License for more details. +// +// You should have received a copy of the Lesser GNU General Public License +// along with cvBlob. If not, see . +// + +#include +#include +using namespace std; + +#if (defined(_WIN32) || defined(__WIN32__) || defined(__TOS_WIN__) || defined(__WINDOWS__) || (defined(__APPLE__) & defined(__MACH__))) +#include +#else +#include +#endif + +#include "cvblob.h" + +namespace cvb +{ + + CvScalar cvBlobMeanColor(CvBlob const *blob, IplImage const *imgLabel, IplImage const *img) + { + CV_FUNCNAME("cvBlobMeanColor"); + __CV_BEGIN__; + { + CV_ASSERT(imgLabel&&(imgLabel->depth==IPL_DEPTH_LABEL)&&(imgLabel->nChannels==1)); + CV_ASSERT(img&&(img->depth==IPL_DEPTH_8U)&&(img->nChannels==3)); + + int stepLbl = imgLabel->widthStep/(imgLabel->depth/8); + int stepImg = img->widthStep/(img->depth/8); + int imgLabel_width = imgLabel->width; + int imgLabel_height = imgLabel->height; + int imgLabel_offset = 0; + int img_width = img->width; + int img_height = img->height; + int img_offset = 0; + if(imgLabel->roi) + { + imgLabel_width = imgLabel->roi->width; + imgLabel_height = imgLabel->roi->height; + imgLabel_offset = (imgLabel->nChannels * imgLabel->roi->xOffset) + (imgLabel->roi->yOffset * stepLbl); + } + if(img->roi) + { + img_width = img->roi->width; + img_height = img->roi->height; + img_offset = (img->nChannels * img->roi->xOffset) + (img->roi->yOffset * stepImg); + } + + CvLabel *labels = (CvLabel *)imgLabel->imageData + imgLabel_offset; + unsigned char *imgData = (unsigned char *)img->imageData + img_offset; + + double mb = 0; + double mg = 0; + double mr = 0; + double pixels = (double)blob->area; + + for (unsigned int r=0; r<(unsigned int)imgLabel_height; r++, labels+=stepLbl, imgData+=stepImg) + for (unsigned int c=0; c<(unsigned int)imgLabel_width; c++) + { + if (labels[c]==blob->label) + { + mb += ((double)imgData[img->nChannels*c+0])/pixels; // B + mg += ((double)imgData[img->nChannels*c+1])/pixels; // G + mr += ((double)imgData[img->nChannels*c+2])/pixels; // R + } + } + + /*double mb = 0; + double mg = 0; + double mr = 0; + double pixels = (double)blob->area; + for (unsigned int y=0; yheight; y++) + for (unsigned int x=0; xwidth; x++) + { + if (cvGetLabel(imgLabel, x, y)==blob->label) + { + CvScalar color = cvGet2D(img, y, x); + mb += color.val[0]/pixels; + mg += color.val[1]/pixels; + mr += color.val[2]/pixels; + } + }*/ + + return cvScalar(mr, mg, mb); + } + __CV_END__; + } + +} diff --git a/3rdparty/cvblob/cvcontour.cpp b/3rdparty/cvblob/cvcontour.cpp new file mode 100644 index 0000000..71b514d --- /dev/null +++ b/3rdparty/cvblob/cvcontour.cpp @@ -0,0 +1,436 @@ +// Copyright (C) 2007 by Crist贸bal Carnero Li帽谩n +// grendel.ccl@gmail.com +// +// This file is part of cvBlob. +// +// cvBlob is free software: you can redistribute it and/or modify +// it under the terms of the Lesser GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// cvBlob is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// Lesser GNU General Public License for more details. +// +// You should have received a copy of the Lesser GNU General Public License +// along with cvBlob. If not, see . +// + +#include + +#define _USE_MATH_DEFINES +#include + +#include +#include +#include +#include +using namespace std; + +#if (defined(_WIN32) || defined(__WIN32__) || defined(__TOS_WIN__) || defined(__WINDOWS__) || (defined(__APPLE__) & defined(__MACH__))) +#include +#else +#include +#endif + +#include "cvblob.h" + +#ifdef M_PI +const double pi = M_PI; +#else +const double pi = std::atan(1.)*4.; +#endif // M_PI + +namespace cvb +{ + + void cvRenderContourChainCode(CvContourChainCode const *contour, IplImage const *img, CvScalar const &color) + { + CV_FUNCNAME("cvRenderContourChainCode"); + __CV_BEGIN__; + { + CV_ASSERT(img&&(img->depth==IPL_DEPTH_8U)&&(img->nChannels==3)); + + int stepDst = img->widthStep/(img->depth/8); + int img_width = img->width; + int img_height = img->height; + int img_offset = 0; + + if(img->roi) + { + img_width = img->roi->width; + img_height = img->roi->height; + img_offset = (img->nChannels * img->roi->xOffset) + (img->roi->yOffset * stepDst); + } + + unsigned char *imgData = (unsigned char *)img->imageData + img_offset; + + unsigned int x = contour->startingPoint.x; + unsigned int y = contour->startingPoint.y; + + for (CvChainCodes::const_iterator it=contour->chainCode.begin(); it!=contour->chainCode.end(); ++it) + { + imgData[img->nChannels*x+img->widthStep*y+0] = (unsigned char)(color.val[0]); // Blue + imgData[img->nChannels*x+img->widthStep*y+1] = (unsigned char)(color.val[1]); // Green + imgData[img->nChannels*x+img->widthStep*y+2] = (unsigned char)(color.val[2]); // Red + + x += cvChainCodeMoves[*it][0]; + y += cvChainCodeMoves[*it][1]; + } + } + __CV_END__; + } + + CvContourPolygon *cvConvertChainCodesToPolygon(CvContourChainCode const *cc) + { + CV_FUNCNAME("cvConvertChainCodesToPolygon"); + __CV_BEGIN__; + { + CV_ASSERT(cc!=NULL); + + CvContourPolygon *contour = new CvContourPolygon; + + unsigned int x = cc->startingPoint.x; + unsigned int y = cc->startingPoint.y; + contour->push_back(cvPoint(x, y)); + + if (cc->chainCode.size()) + { + CvChainCodes::const_iterator it=cc->chainCode.begin(); + CvChainCode lastCode = *it; + + x += cvChainCodeMoves[*it][0]; + y += cvChainCodeMoves[*it][1]; + + ++it; + + for (; it!=cc->chainCode.end(); ++it) + { + if (lastCode!=*it) + { + contour->push_back(cvPoint(x, y)); + lastCode=*it; + } + + x += cvChainCodeMoves[*it][0]; + y += cvChainCodeMoves[*it][1]; + } + } + + return contour; + } + __CV_END__; + } + + void cvRenderContourPolygon(CvContourPolygon const *contour, IplImage *img, CvScalar const &color) + { + CV_FUNCNAME("cvRenderContourPolygon"); + __CV_BEGIN__; + { + CV_ASSERT(img&&(img->depth==IPL_DEPTH_8U)&&(img->nChannels==3)); + + CvContourPolygon::const_iterator it=contour->begin(); + + if (it!=contour->end()) + { + unsigned int fx, x, fy, y; + fx = x = it->x; + fy = y = it->y; + + for (; it!=contour->end(); ++it) + { + cvLine(img, cvPoint(x, y), cvPoint(it->x, it->y), color, 1); + x = it->x; + y = it->y; + } + + cvLine(img, cvPoint(x, y), cvPoint(fx, fy), color, 1); + } + } + __CV_END__; + } + + double cvContourPolygonArea(CvContourPolygon const *p) + { + CV_FUNCNAME("cvContourPolygonArea"); + __CV_BEGIN__; + { + CV_ASSERT(p!=NULL); + + if (p->size()<=2) + return 1.; + + CvContourPolygon::const_iterator it=p->begin(); + CvPoint lastPoint = p->back(); + + double a = 0.; + + for (; it!=p->end(); ++it) + { + a += lastPoint.x*it->y - lastPoint.y*it->x; + lastPoint = *it; + } + + return a*0.5; + } + __CV_END__; + } + + double cvContourChainCodePerimeter(CvContourChainCode const *c) + { + CV_FUNCNAME("cvContourChainCodePerimeter"); + __CV_BEGIN__; + { + CV_ASSERT(c!=NULL); + + double perimeter = 0.; + + for(CvChainCodes::const_iterator it=c->chainCode.begin(); it!=c->chainCode.end(); ++it) + { + if ((*it)%2) + perimeter+=sqrt(1.+1.); + else + perimeter+=1.; + } + + return perimeter; + } + __CV_END__; + } + + double cvContourPolygonPerimeter(CvContourPolygon const *p) + { + CV_FUNCNAME("cvContourPolygonPerimeter"); + __CV_BEGIN__; + { + CV_ASSERT(p!=NULL); + + double perimeter = cvDistancePointPoint((*p)[p->size()-1], (*p)[0]); + + for (unsigned int i=0; isize()-1; i++) + perimeter+=cvDistancePointPoint((*p)[i], (*p)[i+1]); + + return perimeter; + } + __CV_END__; + } + + double cvContourPolygonCircularity(const CvContourPolygon *p) + { + CV_FUNCNAME("cvContourPolygonCircularity"); + __CV_BEGIN__; + { + CV_ASSERT(p!=NULL); + + double l = cvContourPolygonPerimeter(p); + double c = (l*l/cvContourPolygonArea(p)) - 4.*pi; + + if (c>=0.) + return c; + else // This could happen if the blob it's only a pixel: the perimeter will be 0. Another solution would be to force "cvContourPolygonPerimeter" to be 1 or greater. + return 0.; + } + __CV_END__; + } + + void simplifyPolygonRecursive(CvContourPolygon const *p, int const i1, int const i2, bool *pnUseFlag, double const delta) + { + CV_FUNCNAME("cvSimplifyPolygonRecursive"); + __CV_BEGIN__; + { + int endIndex = (i2<0)?p->size():i2; + + if (abs(i1-endIndex)<=1) + return; + + CvPoint firstPoint = (*p)[i1]; + CvPoint lastPoint = (i2<0)?p->front():(*p)[i2]; + + double furtherDistance=0.; + int furtherIndex=0; + + for (int i=i1+1; i=delta)&&(d>furtherDistance)) + { + furtherDistance=d; + furtherIndex=i; + } + } + + if (furtherIndex) + { + pnUseFlag[furtherIndex]=true; + + simplifyPolygonRecursive(p, i1, furtherIndex, pnUseFlag, delta); + simplifyPolygonRecursive(p, furtherIndex, i2, pnUseFlag, delta); + } + } + __CV_END__; + } + + CvContourPolygon *cvSimplifyPolygon(CvContourPolygon const *p, double const delta) + { + CV_FUNCNAME("cvSimplifyPolygon"); + __CV_BEGIN__; + { + CV_ASSERT(p!=NULL); + + double furtherDistance=0.; + unsigned int furtherIndex=0; + + CvContourPolygon::const_iterator it=p->begin(); + ++it; + for (unsigned int i=1; it!=p->end(); ++it, i++) + { + double d = cvDistancePointPoint(*it, p->front()); + + if (d>furtherDistance) + { + furtherDistance = d; + furtherIndex = i; + } + } + + if (furtherDistancepush_back(p->front()); + return result; + } + + bool *pnUseFlag = new bool[p->size()]; + for (unsigned int i=1; isize(); i++) pnUseFlag[i] = false; + + pnUseFlag[0] = pnUseFlag[furtherIndex] = true; + + simplifyPolygonRecursive(p, 0, furtherIndex, pnUseFlag, delta); + simplifyPolygonRecursive(p, furtherIndex, -1, pnUseFlag, delta); + + CvContourPolygon *result = new CvContourPolygon; + + for (unsigned int i=0; isize(); i++) + if (pnUseFlag[i]) + result->push_back((*p)[i]); + + delete[] pnUseFlag; + + return result; + } + __CV_END__; + } + + CvContourPolygon *cvPolygonContourConvexHull(CvContourPolygon const *p) + { + CV_FUNCNAME("cvPolygonContourConvexHull"); + __CV_BEGIN__; + { + CV_ASSERT(p!=NULL); + + if (p->size()<=3) + { + return new CvContourPolygon(p->begin(), p->end()); + } + + deque dq; + + if (cvCrossProductPoints((*p)[0], (*p)[1], (*p)[2])>0) + { + dq.push_back((*p)[0]); + dq.push_back((*p)[1]); + } + else + { + dq.push_back((*p)[1]); + dq.push_back((*p)[0]); + } + + dq.push_back((*p)[2]); + dq.push_front((*p)[2]); + + for (unsigned int i=3; isize(); i++) + { + int s = dq.size(); + + if ((cvCrossProductPoints((*p)[i], dq.at(0), dq.at(1))>=0) && (cvCrossProductPoints(dq.at(s-2), dq.at(s-1), (*p)[i])>=0)) + continue; // TODO Optimize. + + while (cvCrossProductPoints(dq.at(s-2), dq.at(s-1), (*p)[i])<0) + { + dq.pop_back(); + s = dq.size(); + } + + dq.push_back((*p)[i]); + + while (cvCrossProductPoints((*p)[i], dq.at(0), dq.at(1))<0) + dq.pop_front(); + + dq.push_front((*p)[i]); + } + + return new CvContourPolygon(dq.begin(), dq.end()); + } + __CV_END__; + } + + void cvWriteContourPolygonCSV(const CvContourPolygon& p, const string& filename) + { + ofstream f; + f.open(filename.c_str()); + + f << p << endl; + + f.close(); + } + + void cvWriteContourPolygonSVG(const CvContourPolygon& p, const string& filename, const CvScalar& stroke, const CvScalar& fill) + { + int minx=INT_MAX; + int miny=INT_MAX; + int maxx=INT_MIN; + int maxy=INT_MIN; + + stringstream buffer(""); + + for (CvContourPolygon::const_iterator it=p.begin(); it!=p.end(); ++it) + { + if (it->x>maxx) + maxx = it->x; + if (it->xx; + + if (it->y>maxy) + maxy = it->y; + if (it->yy; + + buffer << it->x << "," << it->y << " "; + } + + ofstream f; + f.open(filename.c_str()); + + f << "" << endl; + f << "" << endl; + f << "" << endl; + + f << "" << endl; + + f << "" << endl; + + f.close(); + } + +} + +ostream& operator<< (ostream& output, const cvb::CvContourPolygon& p) +{ + for (cvb::CvContourPolygon::const_iterator it=p.begin(); it!=p.end(); ++it) + output << it->x << ", " << it->y << endl; + + return output; +} diff --git a/3rdparty/cvblob/cvlabel.cpp b/3rdparty/cvblob/cvlabel.cpp new file mode 100644 index 0000000..70be761 --- /dev/null +++ b/3rdparty/cvblob/cvlabel.cpp @@ -0,0 +1,441 @@ +// Copyright (C) 2007 by Crist贸bal Carnero Li帽谩n +// grendel.ccl@gmail.com +// +// This file is part of cvBlob. +// +// cvBlob is free software: you can redistribute it and/or modify +// it under the terms of the Lesser GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// cvBlob is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// Lesser GNU General Public License for more details. +// +// You should have received a copy of the Lesser GNU General Public License +// along with cvBlob. If not, see . +// + +#include +#include +using namespace std; + +#if (defined(_WIN32) || defined(__WIN32__) || defined(__TOS_WIN__) || defined(__WINDOWS__) || (defined(__APPLE__) & defined(__MACH__))) +#include +#else +#include +#endif + +#include "cvblob.h" + +namespace cvb +{ + const char movesE[4][3][4] = { { {-1, -1, 3, CV_CHAINCODE_UP_LEFT }, { 0, -1, 0, CV_CHAINCODE_UP }, { 1, -1, 0, CV_CHAINCODE_UP_RIGHT } }, + { { 1, -1, 0, CV_CHAINCODE_UP_RIGHT }, { 1, 0, 1, CV_CHAINCODE_RIGHT}, { 1, 1, 1, CV_CHAINCODE_DOWN_RIGHT } }, + { { 1, 1, 1, CV_CHAINCODE_DOWN_RIGHT}, { 0, 1, 2, CV_CHAINCODE_DOWN }, {-1, 1, 2, CV_CHAINCODE_DOWN_LEFT } }, + { {-1, 1, 2, CV_CHAINCODE_DOWN_LEFT }, {-1, 0, 3, CV_CHAINCODE_LEFT }, {-1, -1, 3, CV_CHAINCODE_UP_LEFT } } + }; + + const char movesI[4][3][4] = { { { 1, -1, 3, CV_CHAINCODE_UP_RIGHT }, { 0, -1, 0, CV_CHAINCODE_UP }, {-1, -1, 0, CV_CHAINCODE_UP_LEFT } }, + { {-1, -1, 0, CV_CHAINCODE_UP_LEFT }, {-1, 0, 1, CV_CHAINCODE_LEFT }, {-1, 1, 1, CV_CHAINCODE_DOWN_LEFT } }, + { {-1, 1, 1, CV_CHAINCODE_DOWN_LEFT }, { 0, 1, 2, CV_CHAINCODE_DOWN }, { 1, 1, 2, CV_CHAINCODE_DOWN_RIGHT } }, + { { 1, 1, 2, CV_CHAINCODE_DOWN_RIGHT }, { 1, 0, 3, CV_CHAINCODE_RIGHT}, { 1, -1, 3, CV_CHAINCODE_UP_RIGHT } } + }; + + + unsigned int cvLabel (IplImage const *img, IplImage *imgOut, CvBlobs &blobs) + { + CV_FUNCNAME("cvLabel"); + __CV_BEGIN__; + { + CV_ASSERT(img&&(img->depth==IPL_DEPTH_8U)&&(img->nChannels==1)); + CV_ASSERT(imgOut&&(imgOut->depth==IPL_DEPTH_LABEL)&&(img->nChannels==1)); + + unsigned int numPixels=0; + + cvSetZero(imgOut); + + CvLabel label=0; + cvReleaseBlobs(blobs); + + unsigned int stepIn = img->widthStep / (img->depth / 8); + unsigned int stepOut = imgOut->widthStep / (imgOut->depth / 8); + unsigned int imgIn_width = img->width; + unsigned int imgIn_height = img->height; + unsigned int imgIn_offset = 0; + unsigned int imgOut_width = imgOut->width; + unsigned int imgOut_height = imgOut->height; + unsigned int imgOut_offset = 0; + if(img->roi) + { + imgIn_width = img->roi->width; + imgIn_height = img->roi->height; + imgIn_offset = img->roi->xOffset + (img->roi->yOffset * stepIn); + } + if(imgOut->roi) + { + imgOut_width = imgOut->roi->width; + imgOut_height = imgOut->roi->height; + imgOut_offset = imgOut->roi->xOffset + (imgOut->roi->yOffset * stepOut); + } + + unsigned char *imgDataIn = (unsigned char *)img->imageData + imgIn_offset; + CvLabel *imgDataOut = (CvLabel *)imgOut->imageData + imgOut_offset; + +#define imageIn(X, Y) imgDataIn[(X) + (Y)*stepIn] +#define imageOut(X, Y) imgDataOut[(X) + (Y)*stepOut] + + CvLabel lastLabel = 0; + CvBlob *lastBlob = NULL; + + for (unsigned int y=0; y0) + imageOut(x, y-1) = CV_BLOB_MAX_LABEL; + + CvBlob *blob = new CvBlob; + blob->label = label; + blob->area = 1; + blob->minx = x; blob->maxx = x; + blob->miny = y; blob->maxy = y; + blob->m10=x; blob->m01=y; + blob->m11=x*y; + blob->m20=x*x; blob->m02=y*y; + blob->internalContours.clear(); + blobs.insert(CvLabelBlob(label,blob)); + + lastLabel = label; + lastBlob = blob; + + blob->contour.startingPoint = cvPoint(x, y); + + unsigned char direction=1; + unsigned int xx = x; + unsigned int yy = y; + + + bool contourEnd = false; + + do + { + for (unsigned int numAttempts=0; numAttempts<3; numAttempts++) + { + bool found = false; + + for (unsigned char i=0; i<3; i++) + { + int nx = xx+movesE[direction][i][0]; + int ny = yy+movesE[direction][i][1]; + if ((nx=0)&&(ny=0)) + { + if (imageIn(nx, ny)) + { + found = true; + + blob->contour.chainCode.push_back(movesE[direction][i][3]); + + xx=nx; + yy=ny; + + direction=movesE[direction][i][2]; + break; + } + else + { + imageOut(nx, ny) = CV_BLOB_MAX_LABEL; + } + } + } + + if (!found) + direction=(direction+1)%4; + else + { + imageOut(xx, yy) = label; + numPixels++; + + if (xxminx) blob->minx = xx; + else if (xx>blob->maxx) blob->maxx = xx; + if (yyminy) blob->miny = yy; + else if (yy>blob->maxy) blob->maxy = yy; + + blob->area++; + blob->m10+=xx; blob->m01+=yy; + blob->m11+=xx*yy; + blob->m20+=xx*xx; blob->m02+=yy*yy; + + break; + } + + if (contourEnd = ((xx==x) && (yy==y) && (direction==1))) + break; + } + } + while (!contourEnd); + + } + + if ((y+1second; + lastLabel = l; + lastBlob = blob; + } + blob->area++; + blob->m10+=x; blob->m01+=y; + blob->m11+=x*y; + blob->m20+=x*x; blob->m02+=y*y; + } + else + { + l = imageOut(x, y); + + if (l==lastLabel) + blob = lastBlob; + else + { + blob = blobs.find(l)->second; + lastLabel = l; + lastBlob = blob; + } + } + + // XXX This is not necessary (I believe). I only do this for consistency. + imageOut(x, y+1) = CV_BLOB_MAX_LABEL; + + CvContourChainCode *contour = new CvContourChainCode; + contour->startingPoint = cvPoint(x, y); + + unsigned char direction = 3; + unsigned int xx = x; + unsigned int yy = y; + + do + { + for (unsigned int numAttempts=0; numAttempts<3; numAttempts++) + { + bool found = false; + + for (unsigned char i=0; i<3; i++) + { + int nx = xx+movesI[direction][i][0]; + int ny = yy+movesI[direction][i][1]; + if (imageIn(nx, ny)) + { + found = true; + + contour->chainCode.push_back(movesI[direction][i][3]); + + xx=nx; + yy=ny; + + direction=movesI[direction][i][2]; + break; + } + else + { + imageOut(nx, ny) = CV_BLOB_MAX_LABEL; + } + } + + if (!found) + direction=(direction+1)%4; + else + { + if (!imageOut(xx, yy)) + { + imageOut(xx, yy) = l; + numPixels++; + + blob->area++; + blob->m10+=xx; blob->m01+=yy; + blob->m11+=xx*yy; + blob->m20+=xx*xx; blob->m02+=yy*yy; + } + + break; + } + } + } + while (!(xx==x && yy==y)); + + blob->internalContours.push_back(contour); + } + + //else if (!imageOut(x, y)) + if (!labeled) + { + // Internal pixel + CvLabel l = imageOut(x-1, y); + + imageOut(x, y) = l; + numPixels++; + + CvBlob *blob = NULL; + if (l==lastLabel) + blob = lastBlob; + else + { + blob = blobs.find(l)->second; + lastLabel = l; + lastBlob = blob; + } + blob->area++; + blob->m10+=x; blob->m01+=y; + blob->m11+=x*y; + blob->m20+=x*x; blob->m02+=y*y; + } + } + } + } + + for (CvBlobs::iterator it=blobs.begin(); it!=blobs.end(); ++it) + { + cvCentroid((*it).second); + + (*it).second->u11 = (*it).second->m11 - ((*it).second->m10*(*it).second->m01)/(*it).second->m00; + (*it).second->u20 = (*it).second->m20 - ((*it).second->m10*(*it).second->m10)/(*it).second->m00; + (*it).second->u02 = (*it).second->m02 - ((*it).second->m01*(*it).second->m01)/(*it).second->m00; + + double m00_2 = (*it).second->m00 * (*it).second->m00; + + (*it).second->n11 = (*it).second->u11 / m00_2; + (*it).second->n20 = (*it).second->u20 / m00_2; + (*it).second->n02 = (*it).second->u02 / m00_2; + + (*it).second->p1 = (*it).second->n20 + (*it).second->n02; + + double nn = (*it).second->n20 - (*it).second->n02; + (*it).second->p2 = nn*nn + 4.*((*it).second->n11*(*it).second->n11); + } + + return numPixels; + + } + __CV_END__; + } + + void cvFilterLabels(IplImage *imgIn, IplImage *imgOut, const CvBlobs &blobs) + { + CV_FUNCNAME("cvFilterLabels"); + __CV_BEGIN__; + { + CV_ASSERT(imgIn&&(imgIn->depth==IPL_DEPTH_LABEL)&&(imgIn->nChannels==1)); + CV_ASSERT(imgOut&&(imgOut->depth==IPL_DEPTH_8U)&&(imgOut->nChannels==1)); + + int stepIn = imgIn->widthStep / (imgIn->depth / 8); + int stepOut = imgOut->widthStep / (imgOut->depth / 8); + int imgIn_width = imgIn->width; + int imgIn_height = imgIn->height; + int imgIn_offset = 0; + int imgOut_width = imgOut->width; + int imgOut_height = imgOut->height; + int imgOut_offset = 0; + if(imgIn->roi) + { + imgIn_width = imgIn->roi->width; + imgIn_height = imgIn->roi->height; + imgIn_offset = imgIn->roi->xOffset + (imgIn->roi->yOffset * stepIn); + } + if(imgOut->roi) + { + imgOut_width = imgOut->roi->width; + imgOut_height = imgOut->roi->height; + imgOut_offset = imgOut->roi->xOffset + (imgOut->roi->yOffset * stepOut); + } + + char *imgDataOut=imgOut->imageData + imgOut_offset; + CvLabel *imgDataIn=(CvLabel *)imgIn->imageData + imgIn_offset; + + for (unsigned int r=0;r<(unsigned int)imgIn_height;r++, + imgDataIn+=stepIn,imgDataOut+=stepOut) + { + for (unsigned int c=0;c<(unsigned int)imgIn_width;c++) + { + if (imgDataIn[c]) + { + if (blobs.find(imgDataIn[c])==blobs.end()) imgDataOut[c]=0x00; + else imgDataOut[c]=(char)0xff; + } + else + imgDataOut[c]=0x00; + } + } + } + __CV_END__; + } + + + CvLabel cvGetLabel(IplImage const *img, unsigned int x, unsigned int y) + { + CV_FUNCNAME("cvGetLabel"); + __CV_BEGIN__; + { + CV_ASSERT(img&&(img->depth==IPL_DEPTH_LABEL)&&(img->nChannels==1)); + + int step = img->widthStep / (img->depth / 8); + int img_width = 0; + int img_height= 0; + int img_offset = 0; + if(img->roi) + { + img_width = img->roi->width; + img_height = img->roi->height; + img_offset = img->roi->xOffset + (img->roi->yOffset * step); + } + else + { + img_width = img->width; + img_height= img->height; + } + + CV_ASSERT((x>=0)&&(x=0)&&(yimageData + img_offset))[x + y*step]; + } + __CV_END__; + } + +} diff --git a/3rdparty/cvblob/cvtrack.cpp b/3rdparty/cvblob/cvtrack.cpp new file mode 100644 index 0000000..6bc8ca1 --- /dev/null +++ b/3rdparty/cvblob/cvtrack.cpp @@ -0,0 +1,419 @@ +// Copyright (C) 2007 by Crist贸bal Carnero Li帽谩n +// grendel.ccl@gmail.com +// +// This file is part of cvBlob. +// +// cvBlob is free software: you can redistribute it and/or modify +// it under the terms of the Lesser GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// cvBlob is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// Lesser GNU General Public License for more details. +// +// You should have received a copy of the Lesser GNU General Public License +// along with cvBlob. If not, see . +// + +#include +#include +#include +using namespace std; + +#if (defined(_WIN32) || defined(__WIN32__) || defined(__TOS_WIN__) || defined(__WINDOWS__) || (defined(__APPLE__) & defined(__MACH__))) +#include +#else +#include +#endif + +#include "cvblob.h" + +namespace cvb +{ + + double distantBlobTrack(CvBlob const *b, CvTrack const *t) + { + double d1; + if (b->centroid.xminx) + { + if (b->centroid.yminy) + d1 = MAX(t->minx - b->centroid.x, t->miny - b->centroid.y); + else if (b->centroid.y>t->maxy) + d1 = MAX(t->minx - b->centroid.x, b->centroid.y - t->maxy); + else // if (t->miny < b->centroid.y)&&(b->centroid.y < t->maxy) + d1 = t->minx - b->centroid.x; + } + else if (b->centroid.x>t->maxx) + { + if (b->centroid.yminy) + d1 = MAX(b->centroid.x - t->maxx, t->miny - b->centroid.y); + else if (b->centroid.y>t->maxy) + d1 = MAX(b->centroid.x - t->maxx, b->centroid.y - t->maxy); + else + d1 = b->centroid.x - t->maxx; + } + else // if (t->minx =< b->centroid.x) && (b->centroid.x =< t->maxx) + { + if (b->centroid.yminy) + d1 = t->miny - b->centroid.y; + else if (b->centroid.y>t->maxy) + d1 = b->centroid.y - t->maxy; + else + return 0.; + } + + double d2; + if (t->centroid.xminx) + { + if (t->centroid.yminy) + d2 = MAX(b->minx - t->centroid.x, b->miny - t->centroid.y); + else if (t->centroid.y>b->maxy) + d2 = MAX(b->minx - t->centroid.x, t->centroid.y - b->maxy); + else // if (b->miny < t->centroid.y)&&(t->centroid.y < b->maxy) + d2 = b->minx - t->centroid.x; + } + else if (t->centroid.x>b->maxx) + { + if (t->centroid.yminy) + d2 = MAX(t->centroid.x - b->maxx, b->miny - t->centroid.y); + else if (t->centroid.y>b->maxy) + d2 = MAX(t->centroid.x - b->maxx, t->centroid.y - b->maxy); + else + d2 = t->centroid.x - b->maxx; + } + else // if (b->minx =< t->centroid.x) && (t->centroid.x =< b->maxx) + { + if (t->centroid.yminy) + d2 = b->miny - t->centroid.y; + else if (t->centroid.y>b->maxy) + d2 = t->centroid.y - b->maxy; + else + return 0.; + } + + return MIN(d1, d2); + } + + // Access to matrix +#define C(blob, track) close[((blob) + (track)*(nBlobs+2))] + // Access to accumulators +#define AB(label) C((label), (nTracks)) +#define AT(id) C((nBlobs), (id)) + // Access to identifications +#define IB(label) C((label), (nTracks)+1) +#define IT(id) C((nBlobs)+1, (id)) + // Access to registers +#define B(label) blobs.find(IB(label))->second +#define T(id) tracks.find(IT(id))->second + + void getClusterForTrack(unsigned int trackPos, CvID *close, unsigned int nBlobs, unsigned int nTracks, CvBlobs const &blobs, CvTracks const &tracks, list &bb, list &tt); + + void getClusterForBlob(unsigned int blobPos, CvID *close, unsigned int nBlobs, unsigned int nTracks, CvBlobs const &blobs, CvTracks const &tracks, list &bb, list &tt) + { + for (unsigned int j=0; j1) + { + getClusterForTrack(j, close, nBlobs, nTracks, blobs, tracks, bb, tt); + } + } + } + } + + void getClusterForTrack(unsigned int trackPos, CvID *close, unsigned int nBlobs, unsigned int nTracks, CvBlobs const &blobs, CvTracks const &tracks, list &bb, list &tt) + { + for (unsigned int i=0; i1) + { + getClusterForBlob(i, close, nBlobs, nTracks, blobs, tracks, bb, tt); + } + } + } + } + + void cvUpdateTracks(CvBlobs const &blobs, CvTracks &tracks, const double thDistance, const unsigned int thInactive, const unsigned int thActive) + { + CV_FUNCNAME("cvUpdateTracks"); + __CV_BEGIN__; + + unsigned int nBlobs = blobs.size(); + unsigned int nTracks = tracks.size(); + + // Proximity matrix: + // Last row/column is for ID/label. + // Last-1 "/" is for accumulation. + CvID *close = new unsigned int[(nBlobs+2)*(nTracks+2)]; // XXX Must be same type than CvLabel. + + try + { + // Inicialization: + unsigned int i=0; + for (CvBlobs::const_iterator it = blobs.begin(); it!=blobs.end(); ++it, i++) + { + AB(i) = 0; + IB(i) = it->second->label; + } + + CvID maxTrackID = 0; + + unsigned int j=0; + for (CvTracks::const_iterator jt = tracks.begin(); jt!=tracks.end(); ++jt, j++) + { + AT(j) = 0; + IT(j) = jt->second->id; + if (jt->second->id > maxTrackID) + maxTrackID = jt->second->id; + } + + // Proximity matrix calculation and "used blob" list inicialization: + for (i=0; iinactive++; + track->label = 0; + } + } + + // Detect new tracks + for (i=0; iid = maxTrackID; + track->label = blob->label; + track->minx = blob->minx; + track->miny = blob->miny; + track->maxx = blob->maxx; + track->maxy = blob->maxy; + track->centroid = blob->centroid; + track->lifetime = 0; + track->active = 0; + track->inactive = 0; + tracks.insert(CvIDTrack(maxTrackID, track)); + } + } + + // Clustering + for (j=0; j tt; tt.push_back(T(j)); + list bb; + + getClusterForTrack(j, close, nBlobs, nTracks, blobs, tracks, bb, tt); + + // Select track + CvTrack *track; + unsigned int area = 0; + for (list::const_iterator it=tt.begin(); it!=tt.end(); ++it) + { + CvTrack *t = *it; + + unsigned int a = (t->maxx-t->minx)*(t->maxy-t->miny); + if (a>area) + { + area = a; + track = t; + } + } + + // Select blob + CvBlob *blob; + area = 0; + //cout << "Matching blobs: "; + for (list::const_iterator it=bb.begin(); it!=bb.end(); ++it) + { + CvBlob *b = *it; + + //cout << b->label << " "; + + if (b->area>area) + { + area = b->area; + blob = b; + } + } + //cout << endl; + + // Update track + //cout << "Matching: track=" << track->id << ", blob=" << blob->label << endl; + track->label = blob->label; + track->centroid = blob->centroid; + track->minx = blob->minx; + track->miny = blob->miny; + track->maxx = blob->maxx; + track->maxy = blob->maxy; + if (track->inactive) + track->active = 0; + track->inactive = 0; + + // Others to inactive + for (list::const_iterator it=tt.begin(); it!=tt.end(); ++it) + { + CvTrack *t = *it; + + if (t!=track) + { + //cout << "Inactive: track=" << t->id << endl; + t->inactive++; + t->label = 0; + } + } + } + } + ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + for (CvTracks::iterator jt=tracks.begin(); jt!=tracks.end();) + if ((jt->second->inactive>=thInactive)||((jt->second->inactive)&&(thActive)&&(jt->second->activesecond; + tracks.erase(jt++); + } + else + { + jt->second->lifetime++; + if (!jt->second->inactive) + jt->second->active++; + ++jt; + } + } + catch (...) + { + delete[] close; + throw; // TODO: OpenCV style. + } + + delete[] close; + + __CV_END__; + } + + CvFont *defaultFont = NULL; + + void cvRenderTracks(CvTracks const tracks, IplImage *imgSource, IplImage *imgDest, unsigned short mode, CvFont *font) + { + CV_FUNCNAME("cvRenderTracks"); + __CV_BEGIN__; + + CV_ASSERT(imgDest&&(imgDest->depth==IPL_DEPTH_8U)&&(imgDest->nChannels==3)); + + if ((mode&CV_TRACK_RENDER_ID)&&(!font)) + { + if (!defaultFont) + { + font = defaultFont = new CvFont; + cvInitFont(font, CV_FONT_HERSHEY_DUPLEX, 0.5, 0.5, 0, 1); + // Other fonts: + // CV_FONT_HERSHEY_SIMPLEX, CV_FONT_HERSHEY_PLAIN, + // CV_FONT_HERSHEY_DUPLEX, CV_FONT_HERSHEY_COMPLEX, + // CV_FONT_HERSHEY_TRIPLEX, CV_FONT_HERSHEY_COMPLEX_SMALL, + // CV_FONT_HERSHEY_SCRIPT_SIMPLEX, CV_FONT_HERSHEY_SCRIPT_COMPLEX + } + else + font = defaultFont; + } + + if (mode) + { + for (CvTracks::const_iterator it=tracks.begin(); it!=tracks.end(); ++it) + { + if (mode&CV_TRACK_RENDER_ID) + if (!it->second->inactive) + { + stringstream buffer; + buffer << it->first; + cvPutText(imgDest, buffer.str().c_str(), cvPoint((int)it->second->centroid.x, (int)it->second->centroid.y), font, CV_RGB(0.,255.,0.)); + } + + if (mode&CV_TRACK_RENDER_BOUNDING_BOX) + if (it->second->inactive) + cvRectangle(imgDest, cvPoint(it->second->minx, it->second->miny), cvPoint(it->second->maxx-1, it->second->maxy-1), CV_RGB(0., 0., 50.)); + else + cvRectangle(imgDest, cvPoint(it->second->minx, it->second->miny), cvPoint(it->second->maxx-1, it->second->maxy-1), CV_RGB(0., 0., 255.)); + + if (mode&CV_TRACK_RENDER_TO_LOG) + { + clog << "Track " << it->second->id << endl; + if (it->second->inactive) + clog << " - Inactive for " << it->second->inactive << " frames" << endl; + else + clog << " - Associated with blob " << it->second->label << endl; + clog << " - Lifetime " << it->second->lifetime << endl; + clog << " - Active " << it->second->active << endl; + clog << " - Bounding box: (" << it->second->minx << ", " << it->second->miny << ") - (" << it->second->maxx << ", " << it->second->maxy << ")" << endl; + clog << " - Centroid: (" << it->second->centroid.x << ", " << it->second->centroid.y << ")" << endl; + clog << endl; + } + + if (mode&CV_TRACK_RENDER_TO_STD) + { + cout << "Track " << it->second->id << endl; + if (it->second->inactive) + cout << " - Inactive for " << it->second->inactive << " frames" << endl; + else + cout << " - Associated with blobs " << it->second->label << endl; + cout << " - Lifetime " << it->second->lifetime << endl; + cout << " - Active " << it->second->active << endl; + cout << " - Bounding box: (" << it->second->minx << ", " << it->second->miny << ") - (" << it->second->maxx << ", " << it->second->maxy << ")" << endl; + cout << " - Centroid: (" << it->second->centroid.x << ", " << it->second->centroid.y << ")" << endl; + cout << endl; + } + } + } + + __CV_END__; + } + +} diff --git a/3rdparty/glui/LICENSE.txt b/3rdparty/glui/LICENSE.txt new file mode 100644 index 0000000..7c7481e --- /dev/null +++ b/3rdparty/glui/LICENSE.txt @@ -0,0 +1,33 @@ + GLUI User Interface Toolkit + --------------------------- + + (The ZLIB License) + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + + History of GLUI's License: + -------------------------- + Originally, GLUI was licensed under LGPL because Paul Rademacher + just wanted something that was very permissive, and LGPL was the + thing he had heard of. I discussed the license with Paul at + SIGGRAPH 2006, where he told me the above, and also told me he was + supportive of changing the license to one of the less restrictive + open source licenses. So after contacting all the authors to get + their OK, GLUI is now under the ZLIB license. + + Bill Baxter -- November 2007 diff --git a/3rdparty/glui/algebra3.cpp b/3rdparty/glui/algebra3.cpp new file mode 100644 index 0000000..f6b9a87 --- /dev/null +++ b/3rdparty/glui/algebra3.cpp @@ -0,0 +1,1037 @@ +/************************************************************************** + + algebra3.cpp, algebra3.h - C++ Vector and Matrix Algebra routines + + There are three vector classes and two matrix classes: vec2, vec3, + vec4, mat3, and mat4. + + All the standard arithmetic operations are defined, with '*' + for dot product of two vectors and multiplication of two matrices, + and '^' for cross product of two vectors. + + Additional functions include length(), normalize(), homogenize for + vectors, and print(), set(), apply() for all classes. + + There is a function transpose() for matrices, but note that it + does not actually change the matrix, + + When multiplied with a matrix, a vector is treated as a row vector + if it precedes the matrix (v*M), and as a column vector if it + follows the matrix (M*v). + + Matrices are stored in row-major form. + + A vector of one dimension (2d, 3d, or 4d) can be cast to a vector + of a higher or lower dimension. If casting to a higher dimension, + the new component is set by default to 1.0, unless a value is + specified: + vec3 a(1.0, 2.0, 3.0 ); + vec4 b( a, 4.0 ); // now b == {1.0, 2.0, 3.0, 4.0}; + When casting to a lower dimension, the vector is homogenized in + the lower dimension. E.g., if a 4d {X,Y,Z,W} is cast to 3d, the + resulting vector is {X/W, Y/W, Z/W}. It is up to the user to + insure the fourth component is not zero before casting. + + There are also the following function for building matrices: + identity2D(), translation2D(), rotation2D(), + scaling2D(), identity3D(), translation3D(), + rotation3D(), rotation3Drad(), scaling3D(), + perspective3D() + + + --------------------------------------------------------------------- + + Author: Jean-Francois DOUEg + Revised: Paul Rademacher + Version 3.2 - Feb 1998 + +**************************************************************************/ + +#include +#include "algebra3.h" +#include + +/**************************************************************** +* * +* vec2 Member functions * +* * +****************************************************************/ + +/******************** vec2 CONSTRUCTORS ********************/ + +vec2::vec2(void) +{n[VX] = n[VY] = 0.0; } + +vec2::vec2(const float x, const float y) +{ n[VX] = x; n[VY] = y; } + +vec2::vec2(const float d) +{ n[VX] = n[VY] = d; } + +vec2::vec2(const vec2& v) +{ n[VX] = v.n[VX]; n[VY] = v.n[VY]; } + +vec2::vec2(const vec3& v) // it is up to caller to avoid divide-by-zero +{ n[VX] = v.n[VX]/v.n[VZ]; n[VY] = v.n[VY]/v.n[VZ]; }; + +vec2::vec2(const vec3& v, int dropAxis) { + switch (dropAxis) { + case VX: n[VX] = v.n[VY]; n[VY] = v.n[VZ]; break; + case VY: n[VX] = v.n[VX]; n[VY] = v.n[VZ]; break; + default: n[VX] = v.n[VX]; n[VY] = v.n[VY]; break; + } +} + + +/******************** vec2 ASSIGNMENT OPERATORS ******************/ + +vec2& vec2::operator = (const vec2& v) +{ n[VX] = v.n[VX]; n[VY] = v.n[VY]; return *this; } + +vec2& vec2::operator += ( const vec2& v ) +{ n[VX] += v.n[VX]; n[VY] += v.n[VY]; return *this; } + +vec2& vec2::operator -= ( const vec2& v ) +{ n[VX] -= v.n[VX]; n[VY] -= v.n[VY]; return *this; } + +vec2& vec2::operator *= ( const float d ) +{ n[VX] *= d; n[VY] *= d; return *this; } + +vec2& vec2::operator /= ( const float d ) +{ float d_inv = 1./d; n[VX] *= d_inv; n[VY] *= d_inv; return *this; } + +float& vec2::operator [] ( int i) { + if (i < VX || i > VY) + //VEC_ERROR("vec2 [] operator: illegal access; index = " << i << '\n') + VEC_ERROR("vec2 [] operator: illegal access" ); + return n[i]; +} + + +/******************** vec2 SPECIAL FUNCTIONS ********************/ + +float vec2::length(void) +{ return sqrt(length2()); } + +float vec2::length2(void) +{ return n[VX]*n[VX] + n[VY]*n[VY]; } + +vec2& vec2::normalize(void) // it is up to caller to avoid divide-by-zero +{ *this /= length(); return *this; } + +vec2& vec2::apply(V_FCT_PTR fct) +{ n[VX] = (*fct)(n[VX]); n[VY] = (*fct)(n[VY]); return *this; } + +void vec2::set( float x, float y ) +{ n[VX] = x; n[VY] = y; } + +/******************** vec2 FRIENDS *****************************/ + +vec2 operator - (const vec2& a) +{ return vec2(-a.n[VX],-a.n[VY]); } + +vec2 operator + (const vec2& a, const vec2& b) +{ return vec2(a.n[VX]+ b.n[VX], a.n[VY] + b.n[VY]); } + +vec2 operator - (const vec2& a, const vec2& b) +{ return vec2(a.n[VX]-b.n[VX], a.n[VY]-b.n[VY]); } + +vec2 operator * (const vec2& a, const float d) +{ return vec2(d*a.n[VX], d*a.n[VY]); } + +vec2 operator * (const float d, const vec2& a) +{ return a*d; } + +vec2 operator * (const mat3& a, const vec2& v) { + vec3 av; + + av.n[VX] = a.v[0].n[VX]*v.n[VX] + a.v[0].n[VY]*v.n[VY] + a.v[0].n[VZ]; + av.n[VY] = a.v[1].n[VX]*v.n[VX] + a.v[1].n[VY]*v.n[VY] + a.v[1].n[VZ]; + av.n[VZ] = a.v[2].n[VX]*v.n[VX] + a.v[2].n[VY]*v.n[VY] + a.v[2].n[VZ]; + return av; +} + +vec2 operator * (const vec2& v, mat3& a) +{ return a.transpose() * v; } + +vec3 operator * (const mat3& a, const vec3& v) { + vec3 av; + + av.n[VX] = + a.v[0].n[VX]*v.n[VX] + a.v[0].n[VY]*v.n[VY] + a.v[0].n[VZ]*v.n[VZ]; + av.n[VY] = + a.v[1].n[VX]*v.n[VX] + a.v[1].n[VY]*v.n[VY] + a.v[1].n[VZ]*v.n[VZ]; + av.n[VZ] = + a.v[2].n[VX]*v.n[VX] + a.v[2].n[VY]*v.n[VY] + a.v[2].n[VZ]*v.n[VZ]; + return av; +} + +vec3 operator * (const vec3& v, mat3& a) +{ return a.transpose() * v; } + +float operator * (const vec2& a, const vec2& b) +{ return (a.n[VX]*b.n[VX] + a.n[VY]*b.n[VY]); } + +vec2 operator / (const vec2& a, const float d) +{ float d_inv = 1./d; return vec2(a.n[VX]*d_inv, a.n[VY]*d_inv); } + +vec3 operator ^ (const vec2& a, const vec2& b) +{ return vec3(0.0, 0.0, a.n[VX] * b.n[VY] - b.n[VX] * a.n[VY]); } + +int operator == (const vec2& a, const vec2& b) +{ return (a.n[VX] == b.n[VX]) && (a.n[VY] == b.n[VY]); } + +int operator != (const vec2& a, const vec2& b) +{ return !(a == b); } + +/*ostream& operator << (ostream& s, vec2& v) +{ return s << "| " << v.n[VX] << ' ' << v.n[VY] << " |"; } +*/ + +/*istream& operator >> (istream& s, vec2& v) { + vec2 v_tmp; + char c = ' '; + + while (isspace(c)) + s >> c; + // The vectors can be formatted either as x y or | x y | + if (c == '|') { + s >> v_tmp[VX] >> v_tmp[VY]; + while (s >> c && isspace(c)) ; + if (c != '|') + ;//s.set(_bad); + } + else { + s.putback(c); + s >> v_tmp[VX] >> v_tmp[VY]; + } + if (s) + v = v_tmp; + return s; +} +*/ + +void swap(vec2& a, vec2& b) +{ vec2 tmp(a); a = b; b = tmp; } + +vec2 min_vec(const vec2& a, const vec2& b) +{ return vec2(MIN(a.n[VX], b.n[VX]), MIN(a.n[VY], b.n[VY])); } + +vec2 max_vec(const vec2& a, const vec2& b) +{ return vec2(MAX(a.n[VX], b.n[VX]), MAX(a.n[VY], b.n[VY])); } + +vec2 prod(const vec2& a, const vec2& b) +{ return vec2(a.n[VX] * b.n[VX], a.n[VY] * b.n[VY]); } + +/**************************************************************** +* * +* vec3 Member functions * +* * +****************************************************************/ + +// CONSTRUCTORS + +vec3::vec3(void) +{n[VX] = n[VY] = n[VZ] = 0.0;} + +vec3::vec3(const float x, const float y, const float z) +{ n[VX] = x; n[VY] = y; n[VZ] = z; } + +vec3::vec3(const float d) +{ n[VX] = n[VY] = n[VZ] = d; } + +vec3::vec3(const vec3& v) +{ n[VX] = v.n[VX]; n[VY] = v.n[VY]; n[VZ] = v.n[VZ]; } + +vec3::vec3(const vec2& v) +{ n[VX] = v.n[VX]; n[VY] = v.n[VY]; n[VZ] = 1.0; } + +vec3::vec3(const vec2& v, float d) +{ n[VX] = v.n[VX]; n[VY] = v.n[VY]; n[VZ] = d; } + +vec3::vec3(const vec4& v) // it is up to caller to avoid divide-by-zero +{ n[VX] = v.n[VX] / v.n[VW]; n[VY] = v.n[VY] / v.n[VW]; + n[VZ] = v.n[VZ] / v.n[VW]; } + +vec3::vec3(const vec4& v, int dropAxis) { + switch (dropAxis) { + case VX: n[VX] = v.n[VY]; n[VY] = v.n[VZ]; n[VZ] = v.n[VW]; break; + case VY: n[VX] = v.n[VX]; n[VY] = v.n[VZ]; n[VZ] = v.n[VW]; break; + case VZ: n[VX] = v.n[VX]; n[VY] = v.n[VY]; n[VZ] = v.n[VW]; break; + default: n[VX] = v.n[VX]; n[VY] = v.n[VY]; n[VZ] = v.n[VZ]; break; + } +} + + +// ASSIGNMENT OPERATORS + +vec3& vec3::operator = (const vec3& v) +{ n[VX] = v.n[VX]; n[VY] = v.n[VY]; n[VZ] = v.n[VZ]; return *this; } + +vec3& vec3::operator += ( const vec3& v ) +{ n[VX] += v.n[VX]; n[VY] += v.n[VY]; n[VZ] += v.n[VZ]; return *this; } + +vec3& vec3::operator -= ( const vec3& v ) +{ n[VX] -= v.n[VX]; n[VY] -= v.n[VY]; n[VZ] -= v.n[VZ]; return *this; } + +vec3& vec3::operator *= ( const float d ) +{ n[VX] *= d; n[VY] *= d; n[VZ] *= d; return *this; } + +vec3& vec3::operator /= ( const float d ) +{ float d_inv = 1./d; n[VX] *= d_inv; n[VY] *= d_inv; n[VZ] *= d_inv; + return *this; } + +float& vec3::operator [] ( int i) { + if (i < VX || i > VZ) + //VEC_ERROR("vec3 [] operator: illegal access; index = " << i << '\n') + VEC_ERROR("vec3 [] operator: illegal access" ); + + return n[i]; +} + + +// SPECIAL FUNCTIONS + +float vec3::length(void) +{ return sqrt(length2()); } + +float vec3::length2(void) +{ return n[VX]*n[VX] + n[VY]*n[VY] + n[VZ]*n[VZ]; } + +vec3& vec3::normalize(void) // it is up to caller to avoid divide-by-zero +{ *this /= length(); return *this; } + +vec3& vec3::homogenize(void) // it is up to caller to avoid divide-by-zero +{ n[VX] /= n[VZ]; n[VY] /= n[VZ]; n[VZ] = 1.0; return *this; } + +vec3& vec3::apply(V_FCT_PTR fct) +{ n[VX] = (*fct)(n[VX]); n[VY] = (*fct)(n[VY]); n[VZ] = (*fct)(n[VZ]); +return *this; } + +void vec3::set( float x, float y, float z ) // set vector +{ n[VX] = x; n[VY] = y; n[VZ] = z; } + +void vec3::print( FILE *file, char *name ) // print vector to a file +{ + fprintf( file, "%s: <%f, %f, %f>\n", name, n[VX], n[VY], n[VZ] ); +} + +// FRIENDS + +vec3 operator - (const vec3& a) +{ return vec3(-a.n[VX],-a.n[VY],-a.n[VZ]); } + +vec3 operator + (const vec3& a, const vec3& b) +{ return vec3(a.n[VX]+ b.n[VX], a.n[VY] + b.n[VY], a.n[VZ] + b.n[VZ]); } + +vec3 operator - (const vec3& a, const vec3& b) +{ return vec3(a.n[VX]-b.n[VX], a.n[VY]-b.n[VY], a.n[VZ]-b.n[VZ]); } + +vec3 operator * (const vec3& a, const float d) +{ return vec3(d*a.n[VX], d*a.n[VY], d*a.n[VZ]); } + +vec3 operator * (const float d, const vec3& a) +{ return a*d; } + +vec3 operator * (const mat4& a, const vec3& v) +{ return a * vec4(v); } + +vec3 operator * (const vec3& v, mat4& a) +{ return a.transpose() * v; } + +float operator * (const vec3& a, const vec3& b) +{ return (a.n[VX]*b.n[VX] + a.n[VY]*b.n[VY] + a.n[VZ]*b.n[VZ]); } + +vec3 operator / (const vec3& a, const float d) +{ float d_inv = 1./d; return vec3(a.n[VX]*d_inv, a.n[VY]*d_inv, + a.n[VZ]*d_inv); } + +vec3 operator ^ (const vec3& a, const vec3& b) { + return vec3(a.n[VY]*b.n[VZ] - a.n[VZ]*b.n[VY], + a.n[VZ]*b.n[VX] - a.n[VX]*b.n[VZ], + a.n[VX]*b.n[VY] - a.n[VY]*b.n[VX]); +} + +int operator == (const vec3& a, const vec3& b) +{ return (a.n[VX] == b.n[VX]) && (a.n[VY] == b.n[VY]) && (a.n[VZ] == b.n[VZ]); +} + +int operator != (const vec3& a, const vec3& b) +{ return !(a == b); } + +/*ostream& operator << (ostream& s, vec3& v) +{ return s << "| " << v.n[VX] << ' ' << v.n[VY] << ' ' << v.n[VZ] << " |"; } + +istream& operator >> (istream& s, vec3& v) { + vec3 v_tmp; + char c = ' '; + + while (isspace(c)) + s >> c; + // The vectors can be formatted either as x y z or | x y z | + if (c == '|') { + s >> v_tmp[VX] >> v_tmp[VY] >> v_tmp[VZ]; + while (s >> c && isspace(c)) ; + if (c != '|') + ;//s.set(_bad); + } + else { + s.putback(c); + s >> v_tmp[VX] >> v_tmp[VY] >> v_tmp[VZ]; + } + if (s) + v = v_tmp; + return s; +} +*/ + +void swap(vec3& a, vec3& b) +{ vec3 tmp(a); a = b; b = tmp; } + +vec3 min_vec(const vec3& a, const vec3& b) +{ return vec3(MIN(a.n[VX], b.n[VX]), MIN(a.n[VY], b.n[VY]), MIN(a.n[VZ], + b.n[VZ])); } + +vec3 max_vec(const vec3& a, const vec3& b) +{ return vec3(MAX(a.n[VX], b.n[VX]), MAX(a.n[VY], b.n[VY]), MAX(a.n[VZ], + b.n[VZ])); } + +vec3 prod(const vec3& a, const vec3& b) +{ return vec3(a.n[VX] * b.n[VX], a.n[VY] * b.n[VY], a.n[VZ] * b.n[VZ]); } + +/**************************************************************** +* * +* vec4 Member functions * +* * +****************************************************************/ + +// CONSTRUCTORS + +vec4::vec4(void) +{n[VX] = n[VY] = n[VZ] = 0.0; n[VW] = 1.0; } + +vec4::vec4(const float x, const float y, const float z, const float w) +{ n[VX] = x; n[VY] = y; n[VZ] = z; n[VW] = w; } + +vec4::vec4(const float d) +{ n[VX] = n[VY] = n[VZ] = n[VW] = d; } + +vec4::vec4(const vec4& v) +{ n[VX] = v.n[VX]; n[VY] = v.n[VY]; n[VZ] = v.n[VZ]; n[VW] = v.n[VW]; } + +vec4::vec4(const vec3& v) +{ n[VX] = v.n[VX]; n[VY] = v.n[VY]; n[VZ] = v.n[VZ]; n[VW] = 1.0; } + +vec4::vec4(const vec3& v, const float d) +{ n[VX] = v.n[VX]; n[VY] = v.n[VY]; n[VZ] = v.n[VZ]; n[VW] = d; } + + +// ASSIGNMENT OPERATORS + +vec4& vec4::operator = (const vec4& v) +{ n[VX] = v.n[VX]; n[VY] = v.n[VY]; n[VZ] = v.n[VZ]; n[VW] = v.n[VW]; +return *this; } + +vec4& vec4::operator += ( const vec4& v ) +{ n[VX] += v.n[VX]; n[VY] += v.n[VY]; n[VZ] += v.n[VZ]; n[VW] += v.n[VW]; +return *this; } + +vec4& vec4::operator -= ( const vec4& v ) +{ n[VX] -= v.n[VX]; n[VY] -= v.n[VY]; n[VZ] -= v.n[VZ]; n[VW] -= v.n[VW]; +return *this; } + +vec4& vec4::operator *= ( const float d ) +{ n[VX] *= d; n[VY] *= d; n[VZ] *= d; n[VW] *= d; return *this; } + +vec4& vec4::operator /= ( const float d ) +{ float d_inv = 1./d; n[VX] *= d_inv; n[VY] *= d_inv; n[VZ] *= d_inv; + n[VW] *= d_inv; return *this; } + +float& vec4::operator [] ( int i) { + if (i < VX || i > VW) + //VEC_ERROR("vec4 [] operator: illegal access; index = " << i << '\n') + VEC_ERROR("vec4 [] operator: illegal access" ); + + return n[i]; +} + + +// SPECIAL FUNCTIONS + +float vec4::length(void) +{ return sqrt(length2()); } + +float vec4::length2(void) +{ return n[VX]*n[VX] + n[VY]*n[VY] + n[VZ]*n[VZ] + n[VW]*n[VW]; } + +vec4& vec4::normalize(void) // it is up to caller to avoid divide-by-zero +{ *this /= length(); return *this; } + +vec4& vec4::homogenize(void) // it is up to caller to avoid divide-by-zero +{ n[VX] /= n[VW]; n[VY] /= n[VW]; n[VZ] /= n[VW]; n[VW] = 1.0; return *this; } + +vec4& vec4::apply(V_FCT_PTR fct) +{ n[VX] = (*fct)(n[VX]); n[VY] = (*fct)(n[VY]); n[VZ] = (*fct)(n[VZ]); +n[VW] = (*fct)(n[VW]); return *this; } + +void vec4::print( FILE *file, char *name ) // print vector to a file +{ + fprintf( file, "%s: <%f, %f, %f, %f>\n", name, n[VX], n[VY], n[VZ], n[VW] ); +} + +void vec4::set( float x, float y, float z, float a ) +{ + n[0] = x; n[1] = y; n[2] = z; n[3] = a; +} + + +// FRIENDS + +vec4 operator - (const vec4& a) +{ return vec4(-a.n[VX],-a.n[VY],-a.n[VZ],-a.n[VW]); } + +vec4 operator + (const vec4& a, const vec4& b) +{ return vec4(a.n[VX] + b.n[VX], a.n[VY] + b.n[VY], a.n[VZ] + b.n[VZ], + a.n[VW] + b.n[VW]); } + +vec4 operator - (const vec4& a, const vec4& b) +{ return vec4(a.n[VX] - b.n[VX], a.n[VY] - b.n[VY], a.n[VZ] - b.n[VZ], + a.n[VW] - b.n[VW]); } + +vec4 operator * (const vec4& a, const float d) +{ return vec4(d*a.n[VX], d*a.n[VY], d*a.n[VZ], d*a.n[VW] ); } + +vec4 operator * (const float d, const vec4& a) +{ return a*d; } + +vec4 operator * (const mat4& a, const vec4& v) { + #define ROWCOL(i) a.v[i].n[0]*v.n[VX] + a.v[i].n[1]*v.n[VY] \ + + a.v[i].n[2]*v.n[VZ] + a.v[i].n[3]*v.n[VW] + return vec4(ROWCOL(0), ROWCOL(1), ROWCOL(2), ROWCOL(3)); + #undef ROWCOL +} + +vec4 operator * (const vec4& v, mat4& a) +{ return a.transpose() * v; } + +float operator * (const vec4& a, const vec4& b) +{ return (a.n[VX]*b.n[VX] + a.n[VY]*b.n[VY] + a.n[VZ]*b.n[VZ] + + a.n[VW]*b.n[VW]); } + +vec4 operator / (const vec4& a, const float d) +{ float d_inv = 1./d; return vec4(a.n[VX]*d_inv, a.n[VY]*d_inv, a.n[VZ]*d_inv, + a.n[VW]*d_inv); } + +int operator == (const vec4& a, const vec4& b) +{ return (a.n[VX] == b.n[VX]) && (a.n[VY] == b.n[VY]) && (a.n[VZ] == b.n[VZ]) + && (a.n[VW] == b.n[VW]); } + +int operator != (const vec4& a, const vec4& b) +{ return !(a == b); } + +/*ostream& operator << (ostream& s, vec4& v) +{ return s << "| " << v.n[VX] << ' ' << v.n[VY] << ' ' << v.n[VZ] << ' ' + << v.n[VW] << " |"; } + +istream& operator >> (istream& s, vec4& v) { + vec4 v_tmp; + char c = ' '; + + while (isspace(c)) + s >> c; + // The vectors can be formatted either as x y z w or | x y z w | + if (c == '|') { + s >> v_tmp[VX] >> v_tmp[VY] >> v_tmp[VZ] >> v_tmp[VW]; + while (s >> c && isspace(c)) ; + if (c != '|') + ;//s.set(_bad); + } + else { + s.putback(c); + s >> v_tmp[VX] >> v_tmp[VY] >> v_tmp[VZ] >> v_tmp[VW]; + } + if (s) + v = v_tmp; + return s; +} +*/ +void swap(vec4& a, vec4& b) +{ vec4 tmp(a); a = b; b = tmp; } + +vec4 min_vec(const vec4& a, const vec4& b) +{ return vec4(MIN(a.n[VX], b.n[VX]), MIN(a.n[VY], b.n[VY]), MIN(a.n[VZ], + b.n[VZ]), MIN(a.n[VW], b.n[VW])); } + +vec4 max_vec(const vec4& a, const vec4& b) +{ return vec4(MAX(a.n[VX], b.n[VX]), MAX(a.n[VY], b.n[VY]), MAX(a.n[VZ], + b.n[VZ]), MAX(a.n[VW], b.n[VW])); } + +vec4 prod(const vec4& a, const vec4& b) +{ return vec4(a.n[VX] * b.n[VX], a.n[VY] * b.n[VY], a.n[VZ] * b.n[VZ], + a.n[VW] * b.n[VW]); } + + +/**************************************************************** +* * +* mat3 member functions * +* * +****************************************************************/ + +// CONSTRUCTORS + +mat3::mat3(void) { *this = identity2D(); } + +mat3::mat3(const vec3& v0, const vec3& v1, const vec3& v2) +{ this->set( v0, v1, v2 ); }; + +mat3::mat3(const float d) +{ v[0] = v[1] = v[2] = vec3(d); } + +mat3::mat3(const mat3& m) +{ v[0] = m.v[0]; v[1] = m.v[1]; v[2] = m.v[2]; } + + +// ASSIGNMENT OPERATORS + +mat3& mat3::operator = ( const mat3& m ) +{ v[0] = m.v[0]; v[1] = m.v[1]; v[2] = m.v[2]; return *this; } + +mat3& mat3::operator += ( const mat3& m ) +{ v[0] += m.v[0]; v[1] += m.v[1]; v[2] += m.v[2]; return *this; } + +mat3& mat3::operator -= ( const mat3& m ) +{ v[0] -= m.v[0]; v[1] -= m.v[1]; v[2] -= m.v[2]; return *this; } + +mat3& mat3::operator *= ( const float d ) +{ v[0] *= d; v[1] *= d; v[2] *= d; return *this; } + +mat3& mat3::operator /= ( const float d ) +{ v[0] /= d; v[1] /= d; v[2] /= d; return *this; } + +vec3& mat3::operator [] ( int i) { + if (i < VX || i > VZ) + //VEC_ERROR("mat3 [] operator: illegal access; index = " << i << '\n') + VEC_ERROR("mat3 [] operator: illegal access" ); + return v[i]; +} + +void mat3::set( const vec3& v0, const vec3& v1, const vec3& v2 ) { + v[0] = v0; v[1] = v1; v[2] = v2; +} + +// SPECIAL FUNCTIONS + +mat3 mat3::transpose(void) { + return mat3(vec3(v[0][0], v[1][0], v[2][0]), + vec3(v[0][1], v[1][1], v[2][1]), + vec3(v[0][2], v[1][2], v[2][2])); +} + +mat3 mat3::inverse(void) // Gauss-Jordan elimination with partial pivoting + { + mat3 a(*this), // As a evolves from original mat into identity + b(identity2D()); // b evolves from identity into inverse(a) + int i, j, i1; + + // Loop over cols of a from left to right, eliminating above and below diag + for (j=0; j<3; j++) { // Find largest pivot in column j among rows j..2 + i1 = j; // Row with largest pivot candidate + for (i=j+1; i<3; i++) + if (fabs(a.v[i].n[j]) > fabs(a.v[i1].n[j])) + i1 = i; + + // Swap rows i1 and j in a and b to put pivot on diagonal + swap(a.v[i1], a.v[j]); + swap(b.v[i1], b.v[j]); + + // Scale row j to have a unit diagonal + if (a.v[j].n[j]==0.) + VEC_ERROR("mat3::inverse: singular matrix; can't invert\n"); + b.v[j] /= a.v[j].n[j]; + a.v[j] /= a.v[j].n[j]; + + // Eliminate off-diagonal elems in col j of a, doing identical ops to b + for (i=0; i<3; i++) + if (i!=j) { + b.v[i] -= a.v[i].n[j]*b.v[j]; + a.v[i] -= a.v[i].n[j]*a.v[j]; + } + } + return b; +} + +mat3& mat3::apply(V_FCT_PTR fct) { + v[VX].apply(fct); + v[VY].apply(fct); + v[VZ].apply(fct); + return *this; +} + + +// FRIENDS + +mat3 operator - (const mat3& a) +{ return mat3(-a.v[0], -a.v[1], -a.v[2]); } + +mat3 operator + (const mat3& a, const mat3& b) +{ return mat3(a.v[0] + b.v[0], a.v[1] + b.v[1], a.v[2] + b.v[2]); } + +mat3 operator - (const mat3& a, const mat3& b) +{ return mat3(a.v[0] - b.v[0], a.v[1] - b.v[1], a.v[2] - b.v[2]); } + +mat3 operator * (mat3& a, mat3& b) { + #define ROWCOL(i, j) \ + a.v[i].n[0]*b.v[0][j] + a.v[i].n[1]*b.v[1][j] + a.v[i].n[2]*b.v[2][j] + return mat3(vec3(ROWCOL(0,0), ROWCOL(0,1), ROWCOL(0,2)), + vec3(ROWCOL(1,0), ROWCOL(1,1), ROWCOL(1,2)), + vec3(ROWCOL(2,0), ROWCOL(2,1), ROWCOL(2,2))); + #undef ROWCOL +} + +mat3 operator * (const mat3& a, const float d) +{ return mat3(a.v[0] * d, a.v[1] * d, a.v[2] * d); } + +mat3 operator * (const float d, const mat3& a) +{ return a*d; } + +mat3 operator / (const mat3& a, const float d) +{ return mat3(a.v[0] / d, a.v[1] / d, a.v[2] / d); } + +int operator == (const mat3& a, const mat3& b) +{ return (a.v[0] == b.v[0]) && (a.v[1] == b.v[1]) && (a.v[2] == b.v[2]); } + +int operator != (const mat3& a, const mat3& b) +{ return !(a == b); } + +/*ostream& operator << (ostream& s, mat3& m) +{ return s << m.v[VX] << '\n' << m.v[VY] << '\n' << m.v[VZ]; } + +istream& operator >> (istream& s, mat3& m) { + mat3 m_tmp; + + s >> m_tmp[VX] >> m_tmp[VY] >> m_tmp[VZ]; + if (s) + m = m_tmp; + return s; +} +*/ + +void swap(mat3& a, mat3& b) +{ mat3 tmp(a); a = b; b = tmp; } + +void mat3::print( FILE *file, char *name ) +{ + int i, j; + + fprintf( stderr, "%s:\n", name ); + + for( i = 0; i < 3; i++ ) + { + fprintf( stderr, " " ); + for( j = 0; j < 3; j++ ) + { + fprintf( stderr, "%f ", v[i][j] ); + } + fprintf( stderr, "\n" ); + } +} + + + +/**************************************************************** +* * +* mat4 member functions * +* * +****************************************************************/ + +// CONSTRUCTORS + +mat4::mat4(void) { *this = identity3D();} + +mat4::mat4(const vec4& v0, const vec4& v1, const vec4& v2, const vec4& v3) +{ v[0] = v0; v[1] = v1; v[2] = v2; v[3] = v3; } + +mat4::mat4(const float d) +{ v[0] = v[1] = v[2] = v[3] = vec4(d); } + +mat4::mat4(const mat4& m) +{ v[0] = m.v[0]; v[1] = m.v[1]; v[2] = m.v[2]; v[3] = m.v[3]; } + +mat4::mat4(const float a00, const float a01, const float a02, const float a03, + const float a10, const float a11, const float a12, const float a13, + const float a20, const float a21, const float a22, const float a23, + const float a30, const float a31, const float a32, const float a33 ) +{ + v[0][0] = a00; v[0][1] = a01; v[0][2] = a02; v[0][3] = a03; + v[1][0] = a10; v[1][1] = a11; v[1][2] = a12; v[1][3] = a13; + v[2][0] = a20; v[2][1] = a21; v[2][2] = a22; v[2][3] = a23; + v[3][0] = a30; v[3][1] = a31; v[3][2] = a32; v[3][3] = a33; +} + +// ASSIGNMENT OPERATORS + +mat4& mat4::operator = ( const mat4& m ) +{ v[0] = m.v[0]; v[1] = m.v[1]; v[2] = m.v[2]; v[3] = m.v[3]; +return *this; } + +mat4& mat4::operator += ( const mat4& m ) +{ v[0] += m.v[0]; v[1] += m.v[1]; v[2] += m.v[2]; v[3] += m.v[3]; +return *this; } + +mat4& mat4::operator -= ( const mat4& m ) +{ v[0] -= m.v[0]; v[1] -= m.v[1]; v[2] -= m.v[2]; v[3] -= m.v[3]; +return *this; } + +mat4& mat4::operator *= ( const float d ) +{ v[0] *= d; v[1] *= d; v[2] *= d; v[3] *= d; return *this; } + +mat4& mat4::operator /= ( const float d ) +{ v[0] /= d; v[1] /= d; v[2] /= d; v[3] /= d; return *this; } + +vec4& mat4::operator [] ( int i) { + if (i < VX || i > VW) + //VEC_ERROR("mat4 [] operator: illegal access; index = " << i << '\n') + VEC_ERROR("mat4 [] operator: illegal access" ); + return v[i]; +} + +// SPECIAL FUNCTIONS; + +mat4 mat4::transpose(void) { + return mat4(vec4(v[0][0], v[1][0], v[2][0], v[3][0]), + vec4(v[0][1], v[1][1], v[2][1], v[3][1]), + vec4(v[0][2], v[1][2], v[2][2], v[3][2]), + vec4(v[0][3], v[1][3], v[2][3], v[3][3])); +} + +mat4 mat4::inverse(void) // Gauss-Jordan elimination with partial pivoting +{ + mat4 a(*this), // As a evolves from original mat into identity + b(identity3D()); // b evolves from identity into inverse(a) + int i, j, i1; + + // Loop over cols of a from left to right, eliminating above and below diag + for (j=0; j<4; j++) { // Find largest pivot in column j among rows j..3 + i1 = j; // Row with largest pivot candidate + for (i=j+1; i<4; i++) + if (fabs(a.v[i].n[j]) > fabs(a.v[i1].n[j])) + i1 = i; + + // Swap rows i1 and j in a and b to put pivot on diagonal + swap(a.v[i1], a.v[j]); + swap(b.v[i1], b.v[j]); + + // Scale row j to have a unit diagonal + if (a.v[j].n[j]==0.) + VEC_ERROR("mat4::inverse: singular matrix; can't invert\n"); + b.v[j] /= a.v[j].n[j]; + a.v[j] /= a.v[j].n[j]; + + // Eliminate off-diagonal elems in col j of a, doing identical ops to b + for (i=0; i<4; i++) + if (i!=j) { + b.v[i] -= a.v[i].n[j]*b.v[j]; + a.v[i] -= a.v[i].n[j]*a.v[j]; + } + } + return b; +} + +mat4& mat4::apply(V_FCT_PTR fct) +{ v[VX].apply(fct); v[VY].apply(fct); v[VZ].apply(fct); v[VW].apply(fct); +return *this; } + + +void mat4::print( FILE *file, char *name ) +{ + int i, j; + + fprintf( stderr, "%s:\n", name ); + + for( i = 0; i < 4; i++ ) + { + fprintf( stderr, " " ); + for( j = 0; j < 4; j++ ) + { + fprintf( stderr, "%f ", v[i][j] ); + } + fprintf( stderr, "\n" ); + } +} + +void mat4::swap_rows( int i, int j ) +{ + vec4 t; + + t = v[i]; + v[i] = v[j]; + v[j] = t; +} + +void mat4::swap_cols( int i, int j ) +{ + float t; + int k; + + for(k=0; k<4; k++ ) { + t = v[k][i]; + v[k][i] = v[k][j]; + v[k][j] = t; + } +} + + +// FRIENDS + +mat4 operator - (const mat4& a) +{ return mat4(-a.v[0], -a.v[1], -a.v[2], -a.v[3]); } + +mat4 operator + (const mat4& a, const mat4& b) +{ return mat4(a.v[0] + b.v[0], a.v[1] + b.v[1], a.v[2] + b.v[2], + a.v[3] + b.v[3]); +} + +mat4 operator - (const mat4& a, const mat4& b) +{ return mat4(a.v[0] - b.v[0], a.v[1] - b.v[1], a.v[2] - b.v[2], a.v[3] - b.v[3]); } + +mat4 operator * (mat4& a, mat4& b) { + #define ROWCOL(i, j) a.v[i].n[0]*b.v[0][j] + a.v[i].n[1]*b.v[1][j] + \ + a.v[i].n[2]*b.v[2][j] + a.v[i].n[3]*b.v[3][j] + return mat4( + vec4(ROWCOL(0,0), ROWCOL(0,1), ROWCOL(0,2), ROWCOL(0,3)), + vec4(ROWCOL(1,0), ROWCOL(1,1), ROWCOL(1,2), ROWCOL(1,3)), + vec4(ROWCOL(2,0), ROWCOL(2,1), ROWCOL(2,2), ROWCOL(2,3)), + vec4(ROWCOL(3,0), ROWCOL(3,1), ROWCOL(3,2), ROWCOL(3,3)) + ); +} + +mat4 operator * (const mat4& a, const float d) +{ return mat4(a.v[0] * d, a.v[1] * d, a.v[2] * d, a.v[3] * d); } + +mat4 operator * (const float d, const mat4& a) +{ return a*d; } + +mat4 operator / (const mat4& a, const float d) +{ return mat4(a.v[0] / d, a.v[1] / d, a.v[2] / d, a.v[3] / d); } + +int operator == (const mat4& a, const mat4& b) +{ return ((a.v[0] == b.v[0]) && (a.v[1] == b.v[1]) && (a.v[2] == b.v[2]) && + (a.v[3] == b.v[3])); } + +int operator != (const mat4& a, const mat4& b) +{ return !(a == b); } + +/*ostream& operator << (ostream& s, mat4& m) +{ return s << m.v[VX] << '\n' << m.v[VY] << '\n' << m.v[VZ] << '\n' << m.v[VW]; } + +istream& operator >> (istream& s, mat4& m) +{ + mat4 m_tmp; + + s >> m_tmp[VX] >> m_tmp[VY] >> m_tmp[VZ] >> m_tmp[VW]; + if (s) + m = m_tmp; + return s; +} +*/ +void swap(mat4& a, mat4& b) +{ mat4 tmp(a); a = b; b = tmp; } + + +/**************************************************************** +* * +* 2D functions and 3D functions * +* * +****************************************************************/ + +mat3 identity2D(void) +{ return mat3(vec3(1.0, 0.0, 0.0), + vec3(0.0, 1.0, 0.0), + vec3(0.0, 0.0, 1.0)); } + +mat3 translation2D(vec2& v) +{ return mat3(vec3(1.0, 0.0, v[VX]), + vec3(0.0, 1.0, v[VY]), + vec3(0.0, 0.0, 1.0)); } + +mat3 rotation2D(vec2& Center, const float angleDeg) { + float angleRad = angleDeg * M_PI / 180.0, + c = cos(angleRad), + s = sin(angleRad); + + return mat3(vec3(c, -s, Center[VX] * (1.0-c) + Center[VY] * s), + vec3(s, c, Center[VY] * (1.0-c) - Center[VX] * s), + vec3(0.0, 0.0, 1.0)); +} + +mat3 scaling2D(vec2& scaleVector) +{ return mat3(vec3(scaleVector[VX], 0.0, 0.0), + vec3(0.0, scaleVector[VY], 0.0), + vec3(0.0, 0.0, 1.0)); } + +mat4 identity3D(void) +{ return mat4(vec4(1.0, 0.0, 0.0, 0.0), + vec4(0.0, 1.0, 0.0, 0.0), + vec4(0.0, 0.0, 1.0, 0.0), + vec4(0.0, 0.0, 0.0, 1.0)); } + +mat4 translation3D(vec3& v) +{ return mat4(vec4(1.0, 0.0, 0.0, v[VX]), + vec4(0.0, 1.0, 0.0, v[VY]), + vec4(0.0, 0.0, 1.0, v[VZ]), + vec4(0.0, 0.0, 0.0, 1.0)); } + +mat4 rotation3D(vec3& Axis, const float angleDeg) { + float angleRad = angleDeg * M_PI / 180.0, + c = cos(angleRad), + s = sin(angleRad), + t = 1.0 - c; + + Axis.normalize(); + return mat4(vec4(t * Axis[VX] * Axis[VX] + c, + t * Axis[VX] * Axis[VY] - s * Axis[VZ], + t * Axis[VX] * Axis[VZ] + s * Axis[VY], + 0.0), + vec4(t * Axis[VX] * Axis[VY] + s * Axis[VZ], + t * Axis[VY] * Axis[VY] + c, + t * Axis[VY] * Axis[VZ] - s * Axis[VX], + 0.0), + vec4(t * Axis[VX] * Axis[VZ] - s * Axis[VY], + t * Axis[VY] * Axis[VZ] + s * Axis[VX], + t * Axis[VZ] * Axis[VZ] + c, + 0.0), + vec4(0.0, 0.0, 0.0, 1.0)); +} + +mat4 rotation3Drad(vec3& Axis, const float angleRad) { + float c = cos(angleRad), + s = sin(angleRad), + t = 1.0 - c; + + Axis.normalize(); + return mat4(vec4(t * Axis[VX] * Axis[VX] + c, + t * Axis[VX] * Axis[VY] - s * Axis[VZ], + t * Axis[VX] * Axis[VZ] + s * Axis[VY], + 0.0), + vec4(t * Axis[VX] * Axis[VY] + s * Axis[VZ], + t * Axis[VY] * Axis[VY] + c, + t * Axis[VY] * Axis[VZ] - s * Axis[VX], + 0.0), + vec4(t * Axis[VX] * Axis[VZ] - s * Axis[VY], + t * Axis[VY] * Axis[VZ] + s * Axis[VX], + t * Axis[VZ] * Axis[VZ] + c, + 0.0), + vec4(0.0, 0.0, 0.0, 1.0)); +} + +mat4 scaling3D(vec3& scaleVector) +{ return mat4(vec4(scaleVector[VX], 0.0, 0.0, 0.0), + vec4(0.0, scaleVector[VY], 0.0, 0.0), + vec4(0.0, 0.0, scaleVector[VZ], 0.0), + vec4(0.0, 0.0, 0.0, 1.0)); } + +mat4 perspective3D(const float d) +{ return mat4(vec4(1.0, 0.0, 0.0, 0.0), + vec4(0.0, 1.0, 0.0, 0.0), + vec4(0.0, 0.0, 1.0, 0.0), + vec4(0.0, 0.0, 1.0/d, 0.0)); } diff --git a/3rdparty/glui/algebra3.h b/3rdparty/glui/algebra3.h new file mode 100644 index 0000000..9842ee7 --- /dev/null +++ b/3rdparty/glui/algebra3.h @@ -0,0 +1,474 @@ +/************************************************************************** + + algebra3.cpp, algebra3.h - C++ Vector and Matrix Algebra routines + + There are three vector classes and two matrix classes: vec2, vec3, + vec4, mat3, and mat4. + + All the standard arithmetic operations are defined, with '*' + for dot product of two vectors and multiplication of two matrices, + and '^' for cross product of two vectors. + + Additional functions include length(), normalize(), homogenize for + vectors, and print(), set(), apply() for all classes. + + There is a function transpose() for matrices, but note that it + does not actually change the matrix, + + When multiplied with a matrix, a vector is treated as a row vector + if it precedes the matrix (v*M), and as a column vector if it + follows the matrix (M*v). + + Matrices are stored in row-major form. + + A vector of one dimension (2d, 3d, or 4d) can be cast to a vector + of a higher or lower dimension. If casting to a higher dimension, + the new component is set by default to 1.0, unless a value is + specified: + vec3 a(1.0, 2.0, 3.0 ); + vec4 b( a, 4.0 ); // now b == {1.0, 2.0, 3.0, 4.0}; + When casting to a lower dimension, the vector is homogenized in + the lower dimension. E.g., if a 4d {X,Y,Z,W} is cast to 3d, the + resulting vector is {X/W, Y/W, Z/W}. It is up to the user to + insure the fourth component is not zero before casting. + + There are also the following function for building matrices: + identity2D(), translation2D(), rotation2D(), + scaling2D(), identity3D(), translation3D(), + rotation3D(), rotation3Drad(), scaling3D(), + perspective3D() + + NOTE: When compiling for Windows, include this file first, to avoid + certain name conflicts + + --------------------------------------------------------------------- + + Author: Jean-Francois DOUEg + Revised: Paul Rademacher + Version 3.2 - Feb 1998 + +**************************************************************************/ + +#ifndef _ALGEBRA3_H_ +#define _ALGEBRA3_H_ + +#include +#include +#include + +// this line defines a new type: pointer to a function which returns a +// float and takes as argument a float +typedef float (*V_FCT_PTR)(float); + +// min-max macros +#ifndef MIN +#define MIN(A,B) ((A) < (B) ? (A) : (B)) +#define MAX(A,B) ((A) > (B) ? (A) : (B)) +#endif + +//#include +// error handling macro +//#define VEC_ERROR(E) { cerr << E; exit(1); } +/*#define << +#define >>*/ + +#ifdef VEC_ERROR_FATAL +#ifndef VEC_ERROR +#define VEC_ERROR(E) { printf( "VERROR %s\n", E ); exit(1); } +#endif +#else +#ifndef VEC_ERROR +#define VEC_ERROR(E) { printf( "VERROR %s\n", E ); } +#endif +#endif + +class vec2; +class vec3; +class vec4; +class mat3; +class mat4; + +/*#ifndef X +enum {X,Y,Z,W}; +#endif +*/ + +/*#ifndef R +enum {R,G,B,ALPHA}; +#endif +*/ + +#ifndef M_PI +#define M_PI 3.141592654 +#endif + + +enum {VX, VY, VZ, VW}; // axes +enum {PA, PB, PC, PD}; // planes +enum {RED, GREEN, BLUE, ALPHA}; // colors +enum {KA, KD, KS, ES}; // phong coefficients + +/**************************************************************** +* * +* 2D Vector * +* * +****************************************************************/ + +class vec2 +{ +protected: + + float n[2]; + +public: + + // Constructors + + vec2(void); + vec2(const float x, const float y); + vec2(const float d); + vec2(const vec2& v); // copy constructor + vec2(const vec3& v); // cast v3 to v2 + vec2(const vec3& v, int dropAxis); // cast v3 to v2 + + // Assignment operators + + vec2& operator = ( const vec2& v ); // assignment of a vec2 + vec2& operator += ( const vec2& v ); // incrementation by a vec2 + vec2& operator -= ( const vec2& v ); // decrementation by a vec2 + vec2& operator *= ( const float d ); // multiplication by a constant + vec2& operator /= ( const float d ); // division by a constant + float& operator [] ( int i); // indexing + + // special functions + + float length(void); // length of a vec2 + float length2(void); // squared length of a vec2 + vec2& normalize(void); // normalize a vec2 + vec2& apply(V_FCT_PTR fct); // apply a func. to each component + void set( float x, float y ); // set vector + + // friends + + friend vec2 operator - (const vec2& v); // -v1 + friend vec2 operator + (const vec2& a, const vec2& b); // v1 + v2 + friend vec2 operator - (const vec2& a, const vec2& b); // v1 - v2 + friend vec2 operator * (const vec2& a, const float d); // v1 * 3.0 + friend vec2 operator * (const float d, const vec2& a); // 3.0 * v1 + friend vec2 operator * (const mat3& a, const vec2& v); // M . v + friend vec2 operator * (const vec2& v, mat3& a); // v . M + friend float operator * (const vec2& a, const vec2& b); // dot product + friend vec2 operator / (const vec2& a, const float d); // v1 / 3.0 + friend vec3 operator ^ (const vec2& a, const vec2& b); // cross product + friend int operator == (const vec2& a, const vec2& b); // v1 == v2 ? + friend int operator != (const vec2& a, const vec2& b); // v1 != v2 ? + //friend ostream& operator << (ostream& s, vec2& v); // output to stream + //friend istream& operator >> (istream& s, vec2& v); // input from strm. + friend void swap(vec2& a, vec2& b); // swap v1 & v2 + friend vec2 min_vec(const vec2& a, const vec2& b); // min(v1, v2) + friend vec2 max_vec(const vec2& a, const vec2& b); // max(v1, v2) + friend vec2 prod(const vec2& a, const vec2& b); // term by term * + + // necessary friend declarations + + friend class vec3; +}; + +/**************************************************************** +* * +* 3D Vector * +* * +****************************************************************/ + +class vec3 +{ +protected: + + float n[3]; + +public: + + // Constructors + + vec3(void); + vec3(const float x, const float y, const float z); + vec3(const float d); + vec3(const vec3& v); // copy constructor + vec3(const vec2& v); // cast v2 to v3 + vec3(const vec2& v, float d); // cast v2 to v3 + vec3(const vec4& v); // cast v4 to v3 + vec3(const vec4& v, int dropAxis); // cast v4 to v3 + + // Assignment operators + + vec3& operator = ( const vec3& v ); // assignment of a vec3 + vec3& operator += ( const vec3& v ); // incrementation by a vec3 + vec3& operator -= ( const vec3& v ); // decrementation by a vec3 + vec3& operator *= ( const float d ); // multiplication by a constant + vec3& operator /= ( const float d ); // division by a constant + float& operator [] ( int i); // indexing + + // special functions + + float length(void); // length of a vec3 + float length2(void); // squared length of a vec3 + vec3& normalize(void); // normalize a vec3 + vec3& homogenize(void); // homogenize (div by Z) + vec3& apply(V_FCT_PTR fct); // apply a func. to each component + void set( float x, float y, float z ); // set vector + void print( FILE *file, char *name ); // print vector to a file + + // friends + + friend vec3 operator - (const vec3& v); // -v1 + friend vec3 operator + (const vec3& a, const vec3& b); // v1 + v2 + friend vec3 operator - (const vec3& a, const vec3& b); // v1 - v2 + friend vec3 operator * (const vec3& a, const float d); // v1 * 3.0 + friend vec3 operator * (const float d, const vec3& a); // 3.0 * v1 + friend vec3 operator * (const mat4& a, const vec3& v); // M . v + friend vec3 operator * (const vec3& v, mat4& a); // v . M + friend float operator * (const vec3& a, const vec3& b); // dot product + friend vec3 operator / (const vec3& a, const float d); // v1 / 3.0 + friend vec3 operator ^ (const vec3& a, const vec3& b); // cross product + friend int operator == (const vec3& a, const vec3& b); // v1 == v2 ? + friend int operator != (const vec3& a, const vec3& b); // v1 != v2 ? + //friend ostream& operator << (ostream& s, vec3& v); // output to stream + //friend istream& operator >> (istream& s, vec3& v); // input from strm. + friend void swap(vec3& a, vec3& b); // swap v1 & v2 + friend vec3 min_vec(const vec3& a, const vec3& b); // min(v1, v2) + friend vec3 max_vec(const vec3& a, const vec3& b); // max(v1, v2) + friend vec3 prod(const vec3& a, const vec3& b); // term by term * + + // necessary friend declarations + + friend class vec2; + friend class vec4; + friend class mat3; + friend vec2 operator * (const mat3& a, const vec2& v); // linear transform + friend vec3 operator * (const mat3& a, const vec3& v); // linear transform + friend mat3 operator * (mat3& a, mat3& b); // matrix 3 product + + }; + +/**************************************************************** +* * +* 4D Vector * +* * +****************************************************************/ + +class vec4 +{ +protected: + + float n[4]; + +public: + + // Constructors + + vec4(void); + vec4(const float x, const float y, const float z, const float w); + vec4(const float d); + vec4(const vec4& v); // copy constructor + vec4(const vec3& v); // cast vec3 to vec4 + vec4(const vec3& v, const float d); // cast vec3 to vec4 + + // Assignment operators + + vec4& operator = ( const vec4& v ); // assignment of a vec4 + vec4& operator += ( const vec4& v ); // incrementation by a vec4 + vec4& operator -= ( const vec4& v ); // decrementation by a vec4 + vec4& operator *= ( const float d ); // multiplication by a constant + vec4& operator /= ( const float d ); // division by a constant + float& operator [] ( int i); // indexing + + // special functions + + float length(void); // length of a vec4 + float length2(void); // squared length of a vec4 + vec4& normalize(void); // normalize a vec4 + vec4& apply(V_FCT_PTR fct); // apply a func. to each component + vec4& homogenize(void); + void print( FILE *file, char *name ); // print vector to a file + void set( float x, float y, float z, float a ); + + // friends + + friend vec4 operator - (const vec4& v); // -v1 + friend vec4 operator + (const vec4& a, const vec4& b); // v1 + v2 + friend vec4 operator - (const vec4& a, const vec4& b); // v1 - v2 + friend vec4 operator * (const vec4& a, const float d); // v1 * 3.0 + friend vec4 operator * (const float d, const vec4& a); // 3.0 * v1 + friend vec4 operator * (const mat4& a, const vec4& v); // M . v + friend vec4 operator * (const vec4& v, mat4& a); // v . M + friend float operator * (const vec4& a, const vec4& b); // dot product + friend vec4 operator / (const vec4& a, const float d); // v1 / 3.0 + friend int operator == (const vec4& a, const vec4& b); // v1 == v2 ? + friend int operator != (const vec4& a, const vec4& b); // v1 != v2 ? + //friend ostream& operator << (ostream& s, vec4& v); // output to stream + //friend istream& operator >> (istream& s, vec4& v); // input from strm. + friend void swap(vec4& a, vec4& b); // swap v1 & v2 + friend vec4 min_vec(const vec4& a, const vec4& b); // min(v1, v2) + friend vec4 max_vec(const vec4& a, const vec4& b); // max(v1, v2) + friend vec4 prod(const vec4& a, const vec4& b); // term by term * + + // necessary friend declarations + + friend class vec3; + friend class mat4; + friend vec3 operator * (const mat4& a, const vec3& v); // linear transform + friend mat4 operator * (mat4& a, mat4& b); // matrix 4 product + }; + +/**************************************************************** +* * +* 3x3 Matrix * +* * +****************************************************************/ + +class mat3 +{ +protected: + + vec3 v[3]; + +public: + + // Constructors + + mat3(void); + mat3(const vec3& v0, const vec3& v1, const vec3& v2); + mat3(const float d); + mat3(const mat3& m); + + // Assignment operators + + mat3& operator = ( const mat3& m ); // assignment of a mat3 + mat3& operator += ( const mat3& m ); // incrementation by a mat3 + mat3& operator -= ( const mat3& m ); // decrementation by a mat3 + mat3& operator *= ( const float d ); // multiplication by a constant + mat3& operator /= ( const float d ); // division by a constant + vec3& operator [] ( int i); // indexing + + // special functions + + mat3 transpose(void); // transpose + mat3 inverse(void); // inverse + mat3& apply(V_FCT_PTR fct); // apply a func. to each element + void print( FILE *file, char *name ); // print matrix to a file + void set(const vec3& v0, const vec3& v1, const vec3& v2); + + + // friends + + friend mat3 operator - (const mat3& a); // -m1 + friend mat3 operator + (const mat3& a, const mat3& b); // m1 + m2 + friend mat3 operator - (const mat3& a, const mat3& b); // m1 - m2 + friend mat3 operator * (mat3& a, mat3& b); // m1 * m2 + friend mat3 operator * (const mat3& a, const float d); // m1 * 3.0 + friend mat3 operator * (const float d, const mat3& a); // 3.0 * m1 + friend mat3 operator / (const mat3& a, const float d); // m1 / 3.0 + friend int operator == (const mat3& a, const mat3& b); // m1 == m2 ? + friend int operator != (const mat3& a, const mat3& b); // m1 != m2 ? + //friend ostream& operator << (ostream& s, mat3& m); // output to stream + //friend istream& operator >> (istream& s, mat3& m); // input from strm. + friend void swap(mat3& a, mat3& b); // swap m1 & m2 + + // necessary friend declarations + + friend vec3 operator * (const mat3& a, const vec3& v); // linear transform + friend vec2 operator * (const mat3& a, const vec2& v); // linear transform + }; + +/**************************************************************** +* * +* 4x4 Matrix * +* * +****************************************************************/ + +class mat4 +{ +protected: +public: + + vec4 v[4]; + + + // Constructors + + mat4(void); + mat4(const vec4& v0, const vec4& v1, const vec4& v2, const vec4& v3); + mat4(const float d); + mat4(const mat4& m); + mat4(const float a00, const float a01, const float a02, const float a03, + const float a10, const float a11, const float a12, const float a13, + const float a20, const float a21, const float a22, const float a23, + const float a30, const float a31, const float a32, const float a33 ); + + + // Assignment operators + + mat4& operator = ( const mat4& m ); // assignment of a mat4 + mat4& operator += ( const mat4& m ); // incrementation by a mat4 + mat4& operator -= ( const mat4& m ); // decrementation by a mat4 + mat4& operator *= ( const float d ); // multiplication by a constant + mat4& operator /= ( const float d ); // division by a constant + vec4& operator [] ( int i); // indexing + + // special functions + + mat4 transpose(void); // transpose + mat4 inverse(void); // inverse + mat4& apply(V_FCT_PTR fct); // apply a func. to each element + void print( FILE *file, char *name ); // print matrix to a file + void swap_rows( int i, int j ); // swap rows i and j + void swap_cols( int i, int j ); // swap cols i and j + + // friends + + friend mat4 operator - (const mat4& a); // -m1 + friend mat4 operator + (const mat4& a, const mat4& b); // m1 + m2 + friend mat4 operator - (const mat4& a, const mat4& b); // m1 - m2 + friend mat4 operator * (mat4& a, mat4& b); // m1 * m2 + friend mat4 operator * (const mat4& a, const float d); // m1 * 4.0 + friend mat4 operator * (const float d, const mat4& a); // 4.0 * m1 + friend mat4 operator / (const mat4& a, const float d); // m1 / 3.0 + friend int operator == (const mat4& a, const mat4& b); // m1 == m2 ? + friend int operator != (const mat4& a, const mat4& b); // m1 != m2 ? + //friend ostream& operator << (ostream& s, mat4& m); // output to stream + //friend istream& operator >> (istream& s, mat4& m); // input from strm. + friend void swap(mat4& a, mat4& b); // swap m1 & m2 + + // necessary friend declarations + + friend vec4 operator * (const mat4& a, const vec4& v); // linear transform + //friend vec4 operator * (const vec4& v, const mat4& a); // linear transform + friend vec3 operator * (const mat4& a, const vec3& v); // linear transform + friend vec3 operator * (const vec3& v, const mat4& a); // linear transform + }; + +/**************************************************************** +* * +* 2D functions and 3D functions * +* * +****************************************************************/ + +mat3 identity2D(void); // identity 2D +mat3 translation2D(vec2& v); // translation 2D +mat3 rotation2D(vec2& Center, const float angleDeg); // rotation 2D +mat3 scaling2D(vec2& scaleVector); // scaling 2D +mat4 identity3D(void); // identity 3D +mat4 translation3D(vec3& v); // translation 3D +mat4 rotation3D(vec3& Axis, const float angleDeg); // rotation 3D +mat4 rotation3Drad(vec3& Axis, const float angleRad); // rotation 3D +mat4 scaling3D(vec3& scaleVector); // scaling 3D +mat4 perspective3D(const float d); // perspective 3D + + +vec3 operator * (const vec3& v, mat3& a); +vec2 operator * (const vec2& v, mat3& a); +vec3 operator * (const vec3& v, mat4& a); +vec4 operator * (const vec4& v, mat4& a); + + +#endif diff --git a/3rdparty/glui/arcball.cpp b/3rdparty/glui/arcball.cpp new file mode 100644 index 0000000..49f8889 --- /dev/null +++ b/3rdparty/glui/arcball.cpp @@ -0,0 +1,223 @@ +/********************************************************************** + + arcball.cpp + + + -------------------------------------------------- + + Copyright (c) 1998 Paul Rademacher + + This program is freely distributable without licensing fees and is + provided without guarantee or warrantee expressed or implied. This + program is -not- in the public domain. + +**********************************************************************/ + + +#include "arcball.h" +#include + + +/**************************************** Arcball::Arcball() ****/ +/* Default (void) constructor for Arcball */ + +Arcball::Arcball( void ) +{ + rot_ptr = &rot; + + init(); +} + + +/**************************************** Arcball::Arcball() ****/ +/* Takes as argument a mat4 to use instead of the internal rot */ + +Arcball::Arcball( mat4 *mtx ) +{ + rot_ptr = mtx; +} + + +/**************************************** Arcball::Arcball() ****/ +/* A constructor that accepts the screen center and arcball radius*/ + +Arcball::Arcball( vec2 _center, float _radius ) +{ + rot_ptr = &rot; + + init(); + set_params( _center, _radius ); +} + + +/************************************** Arcball::set_params() ****/ + +void Arcball::set_params( vec2 _center, float _radius ) +{ + center = _center; + radius = _radius; +} + + +/*************************************** Arcball::init() **********/ + +void Arcball::init( void ) +{ + center.set( 0.0, 0.0 ); + radius = 1.0; + q_now = quat_identity(); + *rot_ptr = identity3D(); + q_increment = quat_identity(); + rot_increment = identity3D(); + is_mouse_down = false; + is_spinning = false; + damp_factor = 0.0; + zero_increment = true; +} + + +/*********************************** Arcball::mouse_to_sphere() ****/ + +vec3 Arcball::mouse_to_sphere( vec2 p ) +{ + float mag; + vec2 v2 = (p - center) / radius; + vec3 v3( v2[0], v2[1], 0.0 ); + + mag = v2*v2; + + if ( mag > 1.0 ) { + v3.normalize(); + } + else { + v3[VZ] = sqrt( 1.0 - mag ); + } + + /* Now we add constraints - X takes precedence over Y */ + if ( constraint_x ) { + v3 = constrain_vector( v3, vec3( 1.0, 0.0, 0.0 )); + } else if ( constraint_y ) { + v3 = constrain_vector( v3, vec3( 0.0, 1.0, 0.0 )); + } + + return v3; +} + + +/************************************ Arcball::constrain_vector() ****/ + +vec3 Arcball::constrain_vector( vec3 vector, vec3 axis ) +{ + return (vector-(vector*axis)*axis).normalize(); +} + +/************************************ Arcball::mouse_down() **********/ + +void Arcball::mouse_down( int x, int y ) +{ + down_pt.set( (float)x, (float) y ); + is_mouse_down = true; + + q_increment = quat_identity(); + rot_increment = identity3D(); + zero_increment = true; +} + + +/************************************ Arcball::mouse_up() **********/ + +void Arcball::mouse_up( void ) +{ + q_now = q_drag * q_now; + is_mouse_down = false; +} + + +/********************************** Arcball::mouse_motion() **********/ + +void Arcball::mouse_motion( int x, int y, int shift, int ctrl, int alt ) +{ + /* Set the X constraint if CONTROL key is pressed, Y if ALT key */ + set_constraints( ctrl != 0, alt != 0 ); + + vec2 new_pt( (float)x, (float) y ); + vec3 v0 = mouse_to_sphere( down_pt ); + vec3 v1 = mouse_to_sphere( new_pt ); + + vec3 cross = v0^v1; + + q_drag.set( cross, v0 * v1 ); + + // *rot_ptr = (q_drag * q_now).to_mat4(); + mat4 temp = q_drag.to_mat4(); + *rot_ptr = *rot_ptr * temp; + + down_pt = new_pt; + + /* We keep a copy of the current incremental rotation (= q_drag) */ + q_increment = q_drag; + rot_increment = q_increment.to_mat4(); + + set_constraints( false, false ); + + if ( q_increment.s < .999999 ) { + is_spinning = true; + + zero_increment = false; + } + else { + is_spinning = false; + zero_increment = true; + } +} + + +/********************************** Arcball::mouse_motion() **********/ + +void Arcball::mouse_motion( int x, int y ) +{ + mouse_motion( x, y, 0, 0, 0 ); +} + + +/***************************** Arcball::set_constraints() **********/ + +void Arcball::set_constraints( Bool _constraint_x, Bool _constraint_y ) +{ + constraint_x = _constraint_x; + constraint_y = _constraint_y; +} + +/***************************** Arcball::idle() *********************/ + +void Arcball::idle( void ) +{ + if ( is_mouse_down ) { + is_spinning = false; + zero_increment = true; + } + + if ( damp_factor < 1.0 ) { + q_increment.scale_angle( 1.0 - damp_factor ); + } + + rot_increment = q_increment.to_mat4(); + + if ( q_increment.s >= .999999 ) { + is_spinning = false; + zero_increment = true; + } +} + + +/************************ Arcball::set_damping() *********************/ + +void Arcball::set_damping( float d ) +{ + damp_factor = d; +} + + + + + diff --git a/3rdparty/glui/arcball.h b/3rdparty/glui/arcball.h new file mode 100644 index 0000000..d286e1c --- /dev/null +++ b/3rdparty/glui/arcball.h @@ -0,0 +1,85 @@ +/********************************************************************** + + Arcball.h + + A C++ class that implements the Arcball, as described by Ken + Shoemake in Graphics Gems IV. + This class takes as input mouse events (mouse down, mouse drag, + mouse up), and creates the appropriate quaternions and 4x4 matrices + to represent the rotation given by the mouse. + + This class is used as follows: + - initialize [either in the constructor or with set_params()], the + center position (x,y) of the arcball on the screen, and the radius + - on mouse down, call mouse_down(x,y) with the mouse position + - as the mouse is dragged, repeatedly call mouse_motion() with the + current x and y positions. One can optionally pass in the current + state of the SHIFT, ALT, and CONTROL keys (passing zero if keys + are not pressed, non-zero otherwise), which constrains + the rotation to certain axes (X for CONTROL, Y for ALT). + - when the mouse button is released, call mouse_up() + + Axis constraints can also be explicitly set with the + set_constraints() function. + + The current rotation is stored in the 4x4 float matrix 'rot'. + It is also stored in the quaternion 'q_now'. + + ------------------------------------------------------------------ + + Feb 25, 1998 - Paul Rademacher (rademach@cs.unc.edu) + +**********************************************************************/ + + +#ifndef _ARCBALL_H_ +#define _ARCBALL_H_ + + +#include "stdinc.h" +#include "algebra3.h" +#include "quaternion.h" + +#ifdef __APPLE__ +#include +#else +#include +#endif + +class Arcball { +public: + Bool constraint_x, constraint_y; + vec2 center; + float radius, damp_factor; + int zero_increment; + + vec3 constrain_vector( vec3 vector, vec3 axis ); + vec3 mouse_to_sphere( vec2 p ); + + //public: + int is_mouse_down; /* true for down, false for up */ + int is_spinning; + quat q_now, q_down, q_drag, q_increment; + vec2 down_pt; + mat4 rot, rot_increment; + mat4 *rot_ptr; + + void set_damping( float d ); + void idle( void ); + void mouse_down( int x, int y ); + void mouse_up( void ); + void mouse_motion( int x, int y, int shift, int ctrl, int alt ); + void mouse_motion( int x, int y ); + void set_constraints( Bool constrain_x, Bool constrain_y ); + void set_params( vec2 center, float radius ); + void reset_mouse( void ); + void init( void ); + + Arcball( void ); + Arcball( mat4 *mtx ); + Arcball( vec2 center, float radius ); +}; + + +#endif + diff --git a/3rdparty/glui/glui.cpp b/3rdparty/glui/glui.cpp new file mode 100644 index 0000000..54b4b15 --- /dev/null +++ b/3rdparty/glui/glui.cpp @@ -0,0 +1,1977 @@ +/**************************************************************************** + + GLUI User Interface Toolkit + --------------------------- + + glui.cpp + + + -------------------------------------------------- + + Copyright (c) 1998 Paul Rademacher + + This program is freely distributable without licensing fees and is + provided without guarantee or warrantee expressed or implied. This + program is -not- in the public domain. + +*****************************************************************************/ + +#include "glui.h" +#include "stdinc.h" + + +void (*show_glut_keyboard_CB)(unsigned char, int, int); +void (*show_glut_special_CB)(int, int, int); + + +/*** This object must be used to create a GLUI ***/ + +GLUI_Master_Object GLUI_Master; + + +/************************************ finish_drawing() ************/ + +void finish_drawing( void ) +{ + glFlush(); + glFinish(); +} + +/************************************************ GLUI::GLUI() **********/ + +int GLUI::init( char *text, long flags, int x, int y, int parent_window ) +{ + int old_glut_window; + + this->flags = flags; + + strncpy( window_name.string, text, sizeof(GLUI_String)); + + /*** We copy over the current window callthroughs ***/ + /*** (I think this might actually only be needed for subwindows) ***/ + /* glut_keyboard_CB = GLUI_Master.glut_keyboard_CB; + glut_reshape_CB = GLUI_Master.glut_reshape_CB; + glut_special_CB = GLUI_Master.glut_special_CB; + glut_mouse_CB = GLUI_Master.glut_mouse_CB;*/ + + + if ( (flags & GLUI_SUBWINDOW) != GLUI_SUBWINDOW ) { + old_glut_window = glutGetWindow(); + + create_standalone_window( window_name, x, y ); + setup_default_glut_callbacks(); + + if ( old_glut_window > 0 ) + glutSetWindow( old_glut_window ); + + top_level_glut_window_id = glut_window_id; + } + else { + old_glut_window = glutGetWindow(); + + create_subwindow( parent_window, flags ); + setup_default_glut_callbacks(); + + if ( old_glut_window > 0 ) + glutSetWindow( old_glut_window ); + + top_level_glut_window_id = parent_window; + + /* + glutReshapeFunc( glui_parent_window_reshape_func ); + glutSpecialFunc( glui_parent_window_special_func ); + glutKeyboardFunc( glui_parent_window_keyboard_func ); + glutMouseFunc( glui_parent_window_mouse_func ); + */ + + } + + return true; +} + + +/**************************** GLUI_Main::create_standalone_window() ********/ + +void GLUI_Main::create_standalone_window( char *name, int x, int y ) +{ + glutInitWindowSize( 100, 100 ); + if ( x >= 0 OR y >= 0 ) + glutInitWindowPosition( x, y ); + glutInitDisplayMode( GLUT_RGB | GLUT_SINGLE ); /* | GLUT_DOUBLE ); */ + glut_window_id = glutCreateWindow( name ); + glDisable( GL_DEPTH_TEST ); + glCullFace( GL_BACK ); + glDisable( GL_CULL_FACE ); + glDisable( GL_LIGHTING ); + glDrawBuffer( GL_FRONT ); +} + + +/******************************** GLUI_Main::create_subwindow() **********/ + +void GLUI_Main::create_subwindow( int parent_window, int window_alignment ) +{ + glut_window_id = glutCreateSubWindow( parent_window, 0,0, 100, 100 ); + glDisable( GL_DEPTH_TEST ); + glCullFace( GL_BACK ); + glDisable( GL_CULL_FACE ); + glDisable( GL_LIGHTING ); + glDrawBuffer( GL_FRONT ); + + this->parent_window = parent_window; +} + + +/**************************** GLUI_Main::setup_default_glut_callbacks() *****/ + +void GLUI_Main::setup_default_glut_callbacks( void ) +{ + glutDisplayFunc( glui_display_func ); + glutReshapeFunc( glui_reshape_func ); + glutKeyboardFunc( glui_keyboard_func ); + glutSpecialFunc( glui_special_func ); + glutMouseFunc( glui_mouse_func ); + glutMotionFunc( glui_motion_func ); + glutPassiveMotionFunc( glui_passive_motion_func ); + glutEntryFunc( glui_entry_func ); + glutVisibilityFunc( glui_visibility_func ); + /* glutIdleFunc( glui_idle_func ); */ +} + + +/********************************************** glui_display_func() ********/ + +void glui_display_func( void ) +{ + GLUI *glui; + + /* printf( "display func\n" ); */ + + glui = GLUI_Master.find_glui_by_window_id( glutGetWindow() ); + + if ( glui ) { + glui->display(); + /* + Do not do anything after the above line, b/c the GLUI + window might have just closed itself + */ + } +} + + +/********************************************** glui_reshape_func() ********/ + +void glui_reshape_func( int w, int h ) +{ + GLUI *glui; + GLUI_Glut_Window *glut_window; + int current_window; + + // printf( "glui_reshape_func(): %d w/h: %d/%d\n", glutGetWindow(), w, h ); + + current_window = glutGetWindow(); + + /*** First check if this is main glut window ***/ + glut_window = GLUI_Master.find_glut_window( current_window ); + if ( glut_window ) { + glut_window->glut_reshape_CB(w,h); + + /*** Now send reshape events to all subwindows ***/ + glui = (GLUI*) GLUI_Master.gluis.first_child(); + while(glui) { + if ( TEST_AND( glui->flags, GLUI_SUBWINDOW) AND + glui->parent_window == current_window ) { + glutSetWindow( glui->get_glut_window_id()); + glui->reshape(w,h); + /* glui->check_subwindow_position(); */ + } + glui = (GLUI*) glui->next(); + } + } + else { + /*** A standalone GLUI window ***/ + + glui = GLUI_Master.find_glui_by_window_id( current_window ); + + if ( glui ) { + glui->reshape(w,h); + } + } +} + +/********************************************** glui_keyboard_func() ********/ + +void glui_keyboard_func(unsigned char key, int x, int y) +{ + GLUI *glui; + int current_window; + GLUI_Glut_Window *glut_window; + + current_window = glutGetWindow(); + glut_window = GLUI_Master.find_glut_window( current_window ); + + if ( glut_window ) { /** Was event in a GLUT window? **/ + if ( GLUI_Master.active_control_glui AND GLUI_Master.active_control ) { + glutSetWindow( GLUI_Master.active_control_glui->get_glut_window_id() ); + + GLUI_Master.active_control_glui->keyboard(key,x,y); + finish_drawing(); + + glutSetWindow( current_window ); + } + else { + glut_window->glut_keyboard_CB( key, x, y ); + } + } + else { /*** Nope, event was in a standalone GLUI window **/ + glui = GLUI_Master.find_glui_by_window_id( glutGetWindow() ); + if ( glui ) { + glui->keyboard(key,x,y); + finish_drawing(); + } + } + + show_glut_keyboard_CB(key, x, y); +} + + +/************************************************ glui_special_func() ********/ + +void glui_special_func(int key, int x, int y) +{ + GLUI *glui; + int current_window; + GLUI_Glut_Window *glut_window; + + current_window = glutGetWindow(); + glut_window = GLUI_Master.find_glut_window( current_window ); + + if ( glut_window ) { /** Was event in a GLUT window? **/ + if ( GLUI_Master.active_control_glui AND GLUI_Master.active_control ) { + glutSetWindow( GLUI_Master.active_control_glui->get_glut_window_id() ); + + GLUI_Master.active_control_glui->special(key,x,y); + finish_drawing(); + + glutSetWindow( current_window ); + } + else { + glut_window->glut_special_CB( key, x, y ); + } + } + else { /*** Nope, event was in a standalone GLUI window **/ + glui = GLUI_Master.find_glui_by_window_id( glutGetWindow() ); + + if ( glui ) { + glui->special(key, x, y); + finish_drawing(); + } + } + show_glut_special_CB(key, x, y); +} + + + +/********************************************** glui_mouse_func() ********/ + +void glui_mouse_func(int button, int state, int x, int y) +{ + GLUI *glui; + int current_window; + GLUI_Glut_Window *glut_window; + + current_window = glutGetWindow(); + glut_window = GLUI_Master.find_glut_window( current_window ); + + if ( glut_window ) { /** Was event in a GLUT window? **/ + if ( GLUI_Master.active_control_glui != NULL ) + GLUI_Master.active_control_glui->disactivate_current_control(); + + glut_window->glut_mouse_CB( button, state, x, y ); + finish_drawing(); + } + else { /** Nope - event was in a GLUI standalone window **/ + glui = GLUI_Master.find_glui_by_window_id( glutGetWindow() ); + if ( glui ) { + glui->passive_motion( 0,0 ); + glui->mouse( button, state, x, y ); + finish_drawing(); + } + } + +} + + +/********************************************** glui_motion_func() ********/ + +void glui_motion_func(int x, int y) +{ + GLUI *glui; + + glui = GLUI_Master.find_glui_by_window_id( glutGetWindow() ); + + if ( glui ) { + glui->motion(x,y); + finish_drawing(); + } + +} + + +/**************************************** glui_passive_motion_func() ********/ + +void glui_passive_motion_func(int x, int y) +{ + GLUI *glui; + + glui = GLUI_Master.find_glui_by_window_id( glutGetWindow() ); + + if ( glui ) { + glui->passive_motion(x,y); + finish_drawing(); + } +} + + +/********************************************** glui_entry_func() ********/ + +void glui_entry_func(int state) +{ + GLUI *glui; + + glui = GLUI_Master.find_glui_by_window_id( glutGetWindow() ); + + if ( glui ) { + glui->entry(state); + } +} + + +/******************************************** glui_visibility_func() ********/ + +void glui_visibility_func(int state) +{ + GLUI *glui; + + /* printf( "IN GLUI VISIBILITY()\n" ); */ + /* fflush( stdout ); */ + + glui = GLUI_Master.find_glui_by_window_id( glutGetWindow() ); + + if ( glui ) { + glui->visibility(state); + } +} + + +/********************************************** glui_idle_func() ********/ +/* Send idle event to each glui, then to the main window */ + +void glui_idle_func(void) +{ + GLUI *glui; + + glui = (GLUI*) GLUI_Master.gluis.first_child(); + while( glui ) { + glui->idle(); + finish_drawing(); + + glui = (GLUI*) glui->next(); + } + + if ( GLUI_Master.glut_idle_CB ) { + /*** We set the current glut window before calling the user's + idle function, even though glut explicitly says the window id is + undefined in an idle callback. ***/ + + /** Check what the current window is first ***/ + + /*** Arbitrarily set the window id to the main gfx window of the + first glui window ***/ + /* int current_window, new_window; */ + /* current_window = glutGetWindow(); */ + /* if (GLUI_Master.gluis.first_child() != NULL ) { */ + /* new_window = ((GLUI_Main*)GLUI_Master.gluis.first_child())-> */ + /* main_gfx_window_id; */ + /* if ( new_window > 0 AND new_window != old_window ) { */ + /* --- Window is changed only if its not already the current window ---*/ + /* glutSetWindow( new_window ); */ + /* } */ + /*} */ + + GLUI_Master.glut_idle_CB(); + } +} + + +/*********************************** GLUI_Master_Object::create_glui() ******/ + +GLUI *GLUI_Master_Object::create_glui( char *name, long flags,int x,int y ) +{ + GLUI *new_glui; + + new_glui = new GLUI; + + if ( new_glui ) { + new_glui->init( name, flags, x, y, -1 ); + new_glui->link_this_to_parent_last( &this->gluis ); + return new_glui; + } + else { + return NULL; + } +} + + +/************************** GLUI_Master_Object::create_glui_subwindow() ******/ + +GLUI *GLUI_Master_Object::create_glui_subwindow( int parent_window, + long flags ) +{ + GLUI *new_glui; + char new_name[80]; + + new_glui = new GLUI; + + if ( new_glui ) { + sprintf( new_name, "subwin_%p", this ); + + new_glui->init( new_name, flags | GLUI_SUBWINDOW, 0,0, + parent_window ); + new_glui->main_panel->set_int_val( GLUI_PANEL_EMBOSSED ); + new_glui->link_this_to_parent_last( &this->gluis ); + return new_glui; + } + else { + return NULL; + } +} + + + +/********************** GLUI_Master_Object::find_glui_by_window_id() ********/ + +GLUI *GLUI_Master_Object::find_glui_by_window_id( int window_id ) +{ + GLUI_Node *node; + + node = gluis.first_child(); + while( node ) { + if ( ((GLUI*)node)->get_glut_window_id() == window_id ) + return (GLUI*) node; + + node = node->next(); + } + return NULL; +} + + +/******************************************** GLUI_Main::display() **********/ + +void GLUI_Main::display( void ) +{ + int win_w, win_h; + + /*glutSetWindow(1);///WOW WHAT A HACK */ + + /**** This function is used as a special place to do 'safe' processing, + e.g., handling window close requests. + That is, we can't close the window directly in the callback, so + we set a flag, post a redisplay message (which eventually calls + this function), then close the window safely in here. ****/ + if ( closing == true ) { + close_internal(); + return; + } + + /* if ( TEST_AND( this->flags, GLUI_SUBWINDOW )) + check_subwindow_position(); + */ + + /******* Draw GLUI window ******/ + + glClearColor( (float) bkgd_color.r / 255.0, + (float) bkgd_color.g / 255.0, + (float) bkgd_color.b / 255.0, + 1.0 ); + glClear( GL_COLOR_BUFFER_BIT ); /* | GL_DEPTH_BUFFER_BIT ); */ + + /* glutSwapBuffers(); //performs flush also // %%%%%%%%%% */ + /* return; */ + + win_w = glutGet( GLUT_WINDOW_WIDTH ); + win_h = glutGet( GLUT_WINDOW_HEIGHT ); + + /*** Check here if the window needs resizing ***/ + if ( win_w != main_panel->w OR win_h != main_panel->h ) { + glutReshapeWindow( main_panel->w, main_panel->h ); + return; + } + + set_ortho_projection(); + + glMatrixMode( GL_MODELVIEW ); + glLoadIdentity(); + + /*** Rotate image so y increases upwards, contrary to OpenGL axes ***/ + glTranslatef( (float) win_w/2.0, (float) win_h/2.0, 0.0 ); + glRotatef( 180.0, 0.0, 1.0, 0.0 ); + glRotatef( 180.0, 0.0, 0.0, 1.0 ); + glTranslatef( (float) -win_w/2.0, (float) -win_h/2.0, 0.0 ); + + /* glDrawBuffer( GL_BACK ); // Is there ever a need to draw to back buffer?? */ + + // main_panel->draw_bkgd_box( 0, 0, win_w, win_h ); + main_panel->draw_recursive( 0, 0 ); + + /*glutSwapBuffers(); //performs flush also */ + finish_drawing(); +} + + + + +/*************************************** _glutBitmapWidthString() **********/ + +int _glutBitmapWidthString( void *font, char *s ) +{ + char *p = s; + int width = 0; + + while( *p != '\0' ) { + width += glutBitmapWidth( font, *p ); + p++; + } + + return width; +} + +/************************************ _glutBitmapString *********************/ +/* Displays the contents of a string using GLUT's bitmap character function */ +/* Does not handle newlines */ + +void _glutBitmapString( void *font, const char *s ) +{ + const char *p = s; + + while( *p != '\0' ) { + glutBitmapCharacter( font, *p ); + p++; + } +} + + + +/****************************** GLUI_Main::reshape() **************/ + +void GLUI_Main::reshape( int reshape_w, int reshape_h ) +{ + int new_w, new_h; + + pack_controls(); + + new_w = main_panel->w;/* + 1; */ + new_h = main_panel->h;/* + 1; */ + + if ( reshape_w != new_w OR reshape_h != new_h ) { + this->w = new_w; + this->h = new_h; + + glutReshapeWindow( new_w, new_h ); + } + else { + } + + if ( TEST_AND( this->flags, GLUI_SUBWINDOW ) ) { + check_subwindow_position(); + + /***** if ( TEST_AND(this->flags,GLUI_SUBWINDOW_LEFT )) { + } + else if ( TEST_AND(this->flags,GLUI_SUBWINDOW_LEFT )) { + } + else if ( TEST_AND(this->flags,GLUI_SUBWINDOW_LEFT )) { + } + else if ( TEST_AND(this->flags,GLUI_SUBWINDOW_RIGHT )) { + } + ****/ + } + + glViewport( 0, 0, new_w, new_h ); + + // printf( "%d: %d\n", glutGetWindow(), this->flags ); + + //@@@ + glutPostRedisplay(); +} + + +/****************************** GLUI_Main::keyboard() **************/ + +void GLUI_Main::keyboard(unsigned char key, int x, int y) +{ + GLUI_Control *new_control; + + curr_modifiers = glutGetModifiers(); + + /*** If it's a tab or shift tab, we don't pass it on to the controls. + Instead, we use it to cycle through active controls ***/ + if ( key == '\t' AND mouse_button_down == false ) { + if ( curr_modifiers & GLUT_ACTIVE_SHIFT ) { + new_control = find_prev_control( active_control ); + } + else { + new_control = find_next_control( active_control ); + } + + /* if ( new_control ) + printf( "new_control: %s\n", new_control->name ); + */ + + disactivate_current_control(); + activate_control( new_control, GLUI_ACTIVATE_TAB ); + } + else if ( key == ' ' AND active_control + AND active_control->spacebar_mouse_click == true ) { + /*** If the user presses the spacebar, and a non-edittext control + is active, we send it a mouse down event followed by a mouse up + event (simulated mouse-click) ***/ + + active_control->mouse_down_handler( 0, 0 ); + active_control->mouse_up_handler( 0, 0, true ); + } else { + /*** Pass the keystroke onto the active control, if any ***/ + if ( active_control != NULL ) + active_control->key_handler( key, curr_modifiers ); + } +} + + +/****************************** GLUI_Main::special() **************/ + +void GLUI_Main::special(int key, int x, int y) +{ + curr_modifiers = glutGetModifiers(); + + /*** Pass the keystroke onto the active control, if any ***/ + if ( active_control != NULL ) { + active_control->special_handler( key, glutGetModifiers() ); + } +} + + +/*********************** GLUI_Master_Object::set_glutMouseFunc() **********/ + +void GLUI_Main::set_glutMouseFunc(void (*f)(int button, int state, + int x, int y)) +{ + glut_mouse_CB = f; +// glutMouseFunc( glui_mouse_func ); +// add_cb_to_glut_window( glutGetWindow(), GLUI_GLUT_MOUSE, (void*) f); +} + +/****************************** GLUI_Main::mouse() **************/ + +void GLUI_Main::mouse(int button, int state, int x, int y) +{ + int callthrough; + GLUI_Control *control; + + /* printf( "MOUSE: %d %d\n", button, state ); */ + + callthrough = true; + + curr_modifiers = glutGetModifiers(); + + if ( button == GLUT_LEFT ) { + control = find_control( x, y ); + + /*if ( control ) printf( "control: %s\n", control->name.string ); */ + + if ( mouse_button_down AND active_control != NULL AND + state == GLUT_UP ) { + /** We just released the mouse, which was depressed at some + control **/ + + callthrough = active_control-> + mouse_up_handler( x, y, control==active_control); + glutSetCursor( GLUT_CURSOR_LEFT_ARROW ); + + if ( active_control AND + active_control->active_type == + GLUI_CONTROL_ACTIVE_MOUSEDOWN AND 0){ + /*** This is a control that needs to be disactivated when the + mouse button is released ****/ + disactivate_current_control(); + } + } + else { + if ( control ) { + if ( NOT mouse_button_down AND state == GLUT_DOWN ) { + /*** We just pressed the mouse down at some control ***/ + + if ( active_control != control ) { + if ( active_control != NULL ) { + /** There is an active control still - disactivate it ***/ + disactivate_current_control(); + } + } + + if ( control->enabled ) { + activate_control( control, GLUI_ACTIVATE_MOUSE ); + callthrough = control->mouse_down_handler( x, y ); + } + } + } + } + + if ( state == GLUT_DOWN ) + mouse_button_down = true; + else if ( state == GLUT_UP ) + mouse_button_down = false; + } + + /** + NO CALLTHROUGH NEEDED FOR MOUSE EVENTS + if ( callthrough AND glut_mouse_CB ) + glut_mouse_CB( button, state, x, y ); + **/ + if ( glut_mouse_CB ) + glut_mouse_CB( button, state, x, y ); + + callthrough=callthrough; /* To get rid of compiler warnings */ +} + + +/****************************** GLUI_Main::motion() **************/ + +void GLUI_Main::motion(int x, int y) +{ + int callthrough; + GLUI_Control *control; + + /* printf( "MOTION: %d %d\n", x, y ); */ + + callthrough = true; + + control = find_control(x,y); + + if ( mouse_button_down AND active_control != NULL ) { + callthrough = + active_control->mouse_held_down_handler(x,y,control==active_control); + } + + /** + NO CALLTHROUGH NEEDED FOR MOUSE EVENTS + + if ( callthrough AND glut_motion_CB ) + glut_motion_CB(x,y); + **/ + + callthrough=callthrough; /* To get rid of compiler warnings */ +} + + +/*********************** GLUI_Main::passive_motion() **************/ + +void GLUI_Main::passive_motion(int x, int y) +{ + GLUI_Control *control; + + control = find_control( x, y ); + + /* printf( "%p %p\n", control, mouse_over_control ); */ + + if ( control != mouse_over_control ) { + if ( mouse_over_control ) { + mouse_over_control->mouse_over( false, x, y ); + } + + if ( control ) { + control->mouse_over( true, x, y ); + mouse_over_control = control; + } + } + + /* + if ( curr_cursor != GLUT_CURSOR_INHERIT ) { + curr_cursor = GLUT_CURSOR_INHERIT; + glutSetCursor( GLUT_CURSOR_INHERIT ); + }*/ + +} + + +/****************************** GLUI_Main::entry() **************/ + +void GLUI_Main::entry(int state) +{ + /*if ( NOT active_control OR ( active_control AND ( active_control->type == GLUI_CONTROL_EDITTEXT + OR active_control->type == GLUI_CONTROL_SPINNER) ) )*/ + glutSetCursor( GLUT_CURSOR_LEFT_ARROW ); +} + + +/****************************** GLUI_Main::visibility() **************/ + +void GLUI_Main::visibility(int state) +{ +} + + +/****************************** GLUI_Main::idle() **************/ + +void GLUI_Main::idle(void) +{ + /*** Pass the idle event onto the active control, if any ***/ + + /* printf( "IDLE \t" ); */ + + if ( active_control != NULL ) { + /* First we check if the control actually needs the idle right now. + Otherwise, let's avoid wasting cycles and OpenGL context switching */ + + if ( active_control->needs_idle() ) { + /*** Set the current glut window to the glui window */ + /*** But don't change the window if we're already at that window ***/ + + if ( glut_window_id > 0 AND glutGetWindow() != glut_window_id ) { + glutSetWindow( glut_window_id ); + } + + active_control->idle(); + } + } +} + + +/******************************************* GLUI_Main::find_control() ******/ + +GLUI_Control *GLUI_Main::find_control( int x, int y ) +{ + GLUI_Control *node, *last_container; + + last_container = NULL; + + node = main_panel; + while( node != NULL ) { + if ( node->type != GLUI_CONTROL_COLUMN AND + PT_IN_BOX( x, y, + node->x_abs, node->x_abs + node->w, + node->y_abs, node->y_abs + node->h ) ) { + /*** Point is inside current node ***/ + + if ( node->first_child() == NULL ) { + /*** SPECIAL CASE: for edittext boxes, we make sure click is + in box, and not on name string. This should be generalized + for all controls later... ***/ + if ( node->type == GLUI_CONTROL_EDITTEXT ) { + if ( x < node->x_abs + ((GLUI_EditText*)node)->text_x_offset ) + return (GLUI_Control*) node->parent(); + } + + return node; /* point is inside this node, and node has no children, + so return this node as the selected node */ + } + else { + /*** This is a container class ***/ + last_container = node; + node = (GLUI_Control*) node->first_child(); /* Descend into child */ + } + + } + else { + node = (GLUI_Control*) node->next(); + } + } + + /** No leaf-level nodes found to accept the mouse click, so + return the last container control found which DOES accept the click **/ + + if ( last_container ) { + /* printf( "ctrl: '%s'\n", last_container->name ); */ + + return last_container; + } + else { + return NULL; + } +} + + +/************************************* GLUI_Main::pack_controls() ***********/ + +void GLUI_Main::pack_controls( void ) +{ + main_panel->pack(0,0); + + /**** Now align controls within their bounds ****/ + align_controls( main_panel ); + + /*** If this is a subwindow, expand panel to fit parent window ***/ + if ( TEST_AND( this->flags, GLUI_SUBWINDOW ) ) { + int parent_h, parent_w; + int orig_window; + + orig_window = glutGetWindow(); + glutSetWindow( this->top_level_glut_window_id ); + parent_h = glutGet( GLUT_WINDOW_HEIGHT ); + parent_w = glutGet( GLUT_WINDOW_WIDTH ); + + glutSetWindow( orig_window ); + + /* printf( "%d %d\n", parent_h, parent_w ); */ + + if ( 1 ) { + if ( TEST_AND(this->flags,GLUI_SUBWINDOW_TOP )) { + main_panel->w = MAX( main_panel->w, parent_w ); + } + else if ( TEST_AND(this->flags,GLUI_SUBWINDOW_LEFT )) { + main_panel->h = MAX( main_panel->h, parent_h ); + } + else if ( TEST_AND(this->flags,GLUI_SUBWINDOW_BOTTOM )) { + main_panel->w = MAX( main_panel->w, parent_w ); + } + else if ( TEST_AND(this->flags,GLUI_SUBWINDOW_RIGHT )) { + main_panel->h = MAX( main_panel->h, parent_h ); + } + } + } + + this->w = main_panel->w; + this->h = main_panel->h; +} + + +/************************************ GLUI_Main::align_controls() **********/ + +void GLUI_Main::align_controls( GLUI_Control *control ) +{ + GLUI_Control *child; + + control->align(); + + child = (GLUI_Control*) control->first_child(); + + while( child != NULL ) { + align_controls( child ); + + child = (GLUI_Control*)child->next(); + } +} + + + +/*********************************** GLUI::set_main_gfx_window() ************/ + +void GLUI::set_main_gfx_window( int window_id ) +{ + main_gfx_window_id = window_id; +} + + +/********************************* GLUI_Main::post_update_main_gfx() ********/ + +void GLUI_Main::post_update_main_gfx( void ) +{ + int old_window; + + if ( main_gfx_window_id > 0 ) { + old_window = glutGetWindow(); + glutSetWindow( main_gfx_window_id ); + glutPostRedisplay(); + if( old_window > 0 ) + glutSetWindow( old_window ); + } +} + + +/********************************* GLUI_Main::set_front_draw_buffer() ********/ + +int GLUI_Main::set_front_draw_buffer( void ) +{ + GLint state; + + glGetIntegerv( GL_DRAW_BUFFER, &state ); + + glDrawBuffer( GL_FRONT ); + + return (int)state; +} + + +/********************************* GLUI_Main::restore_draw_buffer() **********/ + +void GLUI_Main::restore_draw_buffer( int buffer_state ) +{ + glDrawBuffer( buffer_state ); +} + + +/******************************************** GLUI_Main::GLUI_Main() ********/ + +GLUI_Main::GLUI_Main( void ) +{ + mouse_button_down = false; + w = 0; + h = 0; + active_control = NULL; + mouse_over_control = NULL; + main_gfx_window_id = -1; + glut_window_id = -1; + curr_modifiers = 0; + closing = false; + parent_window = -1; + glui_id = GLUI_Master.glui_id_counter; + GLUI_Master.glui_id_counter++; + + font = GLUT_BITMAP_HELVETICA_12; + curr_cursor = GLUT_CURSOR_LEFT_ARROW; + + bkgd_color.set( 200, 200, 200 ); + bkgd_color_f[0] = 200.0 / 255.0; + bkgd_color_f[1] = 200.0 / 255.0; + bkgd_color_f[2] = 200.0 / 255.0; + + /*** Create the main panel ***/ + main_panel = new GLUI_Panel; + main_panel->set_int_val( GLUI_PANEL_NONE ); + main_panel->glui = (GLUI*) this; + main_panel->name = "\0"; + glut_mouse_CB = NULL; +} + +/************************************ GLUI_Main::draw_raised_box() **********/ + +void GLUI_Main::draw_raised_box( int x, int y, int w, int h ) +{ + w = w+x; + h = h+y; + + glColor3ub( bkgd_color.r, bkgd_color.g, bkgd_color.b ); + glBegin( GL_LINE_LOOP ); + glVertex2i( x+1, y+1 ); glVertex2i( w-1, y+1 ); + glVertex2i( w-1, h-1 ); glVertex2i( x+1, h-1 ); + glEnd(); + + glColor3d( 1.0, 1.0, 1.0 ); + glBegin( GL_LINE_STRIP ); + glVertex2i( x, h ); glVertex2i( x, y ); glVertex2i( w, y ); + glEnd(); + + glColor3d( 0.0, 0.0, 0.0 ); + glBegin( GL_LINE_STRIP ); + glVertex2i( w, y ); glVertex2i( w, h ); glVertex2i( x, h ); + glEnd(); + + glColor3d( .5, .5, .5 ); + glBegin( GL_LINE_STRIP ); + glVertex2i( w-1, y+1 ); glVertex2i( w-1, h-1 ); glVertex2i( x+1, h-1 ); + glEnd(); +} + + +/************************************ GLUI_Main::draw_lowered_box() **********/ +/* Not quite perfect... **/ + +void GLUI_Main::draw_lowered_box( int x, int y, int w, int h ) +{ + w = w+x; + h = h+y; + + glColor3ub( bkgd_color.r, bkgd_color.g, bkgd_color.b ); + glBegin( GL_LINE_LOOP ); + glVertex2i( x+1, y+1 ); glVertex2i( w-1, y+1 ); + glVertex2i( w-1, h-1 ); glVertex2i( x+1, h-1 ); + glEnd(); + + glColor3d( 0.0, 0.0, 0.0 ); + glBegin( GL_LINE_STRIP ); + glVertex2i( x, h ); glVertex2i( x, y ); glVertex2i( w, y ); + glEnd(); + + glColor3d( 1.0, 1.0, 1.0 ); + glBegin( GL_LINE_STRIP ); + glVertex2i( w, y ); glVertex2i( w, h ); glVertex2i( x, h ); + glEnd(); + + glColor3d( .5, .5, .5 ); + glBegin( GL_LINE_STRIP ); + glVertex2i( w-1, y+1 ); glVertex2i( w-1, h-1 ); glVertex2i( x+1, h-1 ); + glEnd(); +} + + +/************************************* GLUI_Main::activate_control() *********/ + +void GLUI_Main::activate_control( GLUI_Control *control, int how ) +{ + /** Are we not activating a control in the same window as the + previous active control? */ + if ( GLUI_Master.active_control_glui AND + this != (GLUI_Main*) GLUI_Master.active_control_glui ) { + GLUI_Master.active_control_glui->disactivate_current_control(); + } + + /******* Now activate it *****/ + if ( control != NULL AND control->can_activate AND control->enabled ) { + active_control = control; + + control->activate(how); + + /*if ( NOT active_control->is_container OR */ + /* active_control->type == GLUI_CONTROL_ROLLOUT) { */ + active_control->translate_and_draw_front(); + /*} */ + } + else { + active_control = NULL; + } + + /* printf( "activate: %d\n", glutGetWindow() ); */ + GLUI_Master.active_control = active_control; + GLUI_Master.active_control_glui = (GLUI*) this; +} + + +/************************* GLUI_Main::disactivate_current_control() **********/ + +void GLUI_Main::disactivate_current_control( void ) +{ + int orig; + + if ( active_control != NULL ) { + orig = active_control->set_to_glut_window(); + + active_control->disactivate(); + + /** If this isn't a container control, then redraw it in its + disactivated state. Container controls, such as panels, look + the same activated or not **/ + + /*if ( NOT active_control->is_container OR */ + /* active_control->type == GLUI_CONTROL_ROLLOUT ) { */ + active_control->translate_and_draw_front(); + /*} */ + + active_control->restore_window( orig ); + + active_control = NULL; + } + + /* printf( "disactivate: %d\n", glutGetWindow() ); */ + GLUI_Master.active_control = NULL; + GLUI_Master.active_control_glui = NULL; +} + + +/****************************** GLUI_Main::find_next_control() **************/ + +GLUI_Control *GLUI_Main::find_next_control_( GLUI_Control *control ) +{ + /*** THIS IS NOT find_next_control()! This is an unused older + version (look at the underscore at the end) ***/ + + if ( control == NULL ) + return find_next_control_rec( main_panel ); + else + return find_next_control_rec( control ); +} + +/****************************** GLUI_Main::find_next_control() **************/ + +GLUI_Control *GLUI_Main::find_next_control_rec( GLUI_Control *control ) +{ + GLUI_Control *child = NULL, *rec_control, *sibling; + + /*** Recursively investigate children ***/ + child = (GLUI_Control*) control->first_child(); + if ( child ) { + /*** If we can activate the first child, then do so ***/ + if ( child->can_activate AND child->enabled ) + return child; + else /*** Recurse into first child ***/ + rec_control = find_next_control_rec( child ); + + if ( rec_control ) + return rec_control; + } + + /*** At this point, either we don't have children, or the child cannot + be activated. So let's try the next sibling ***/ + + sibling = (GLUI_Control*) control->next(); + if ( sibling ) { + if ( sibling->can_activate AND sibling->enabled ) + return sibling; + else /*** Recurse into sibling ***/ + rec_control = find_next_control_rec( sibling ); + + if ( rec_control ) + return rec_control; + } + + return NULL; +} + + +/****************************** GLUI_Main::find_next_control() **************/ + +GLUI_Control *GLUI_Main::find_next_control( GLUI_Control *control ) +{ + GLUI_Control *tmp_control = NULL; + int back_up; + + if ( control == NULL ) + control = main_panel; + + while( control != NULL ) { + /** see if this control has a child **/ + tmp_control = (GLUI_Control*) control->first_child(); + + if ( tmp_control != NULL ) { + if ( tmp_control->can_activate AND tmp_control->enabled ) + return tmp_control; + + control = tmp_control; /* Descend into child */ + continue; + } + + /*** At this point, control has no children ***/ + + /** see if this control has a next sibling **/ + tmp_control = (GLUI_Control*) control->next(); + + if ( tmp_control != NULL ) { + if ( tmp_control->can_activate AND tmp_control->enabled ) + return tmp_control; + + control = tmp_control; + continue; + } + + /** back up until we find a sibling of an ancestor **/ + back_up = true; + while ( control->parent() AND back_up ) { + control = (GLUI_Control*) control->parent(); + + if ( control->next() ) { + control = (GLUI_Control*) control->next(); + if ( control->can_activate AND control->enabled ) + return control; + else + back_up = false; + + /*** if ( control->is_container ) { + tmp_control = control; + control = NULL; + break; + } + else { + back_up = false; + } + ***/ + } + } + + /** Check if we've cycled back to the top... if so, return NULL **/ + if ( control == main_panel ) { + return NULL; + } + } + /* + if ( tmp_control != NULL AND tmp_control->can_activate AND + tmp_control->enabled ) { + return tmp_control; + }*/ + + return NULL; +} + + +/****************************** GLUI_Main::find_prev_control() **************/ + +GLUI_Control *GLUI_Main::find_prev_control( GLUI_Control *control ) +{ + GLUI_Control *tmp_control, *next_control; + + if ( control == NULL ) { /* here we find the last valid control */ + next_control = main_panel; + + do { + tmp_control = next_control; + next_control = find_next_control( tmp_control ); + } while( next_control != NULL ); + + return tmp_control; + } + else { /* here we find the actual previous control */ + next_control = main_panel; + + do { + tmp_control = next_control; + next_control = find_next_control( tmp_control ); + } while( next_control != NULL AND next_control != control ); + + if ( next_control == NULL OR tmp_control == main_panel ) + return NULL; + else + return tmp_control; + } +} + +/************************* GLUI_Master_Object::set_glutIdleFunc() ***********/ + +void GLUI_Master_Object::set_glutIdleFunc(void (*f)(void)) +{ + glut_idle_CB = f; + glutIdleFunc( glui_idle_func ); +} + + +/**************************************** GLUI::disable() ********************/ + +void GLUI::disable( void ) +{ + disactivate_current_control(); + main_panel->disable(); +} + + +/******************************************** GLUI::sync_live() **************/ + +void GLUI::sync_live( void ) +{ + main_panel->sync_live(true, true); +} + + +/********************************* GLUI_Master_Object::sync_live_all() *****/ + +void GLUI_Master_Object::sync_live_all( void ) +{ + GLUI *glui; + + glui = (GLUI*) GLUI_Master.gluis.first_child(); + while( glui ) { + + glui->sync_live(); /** sync it **/ + + glui = (GLUI*) glui->next(); + } +} + + +/************************************* GLUI_Master_Object::close() **********/ + +void GLUI_Master_Object::close_all( void ) +{ + GLUI *glui; + + glui = (GLUI*) GLUI_Master.gluis.first_child(); + while( glui ) { + + glui->close(); /** Set flag to close **/ + + glui = (GLUI*) glui->next(); + } +} + + +/************************************* GLUI_Main::close_internal() **********/ + +void GLUI_Main::close_internal( void ) +{ + glutDestroyWindow(glutGetWindow()); /** Close this window **/ + + this->unlink(); + + if ( GLUI_Master.active_control_glui == this ) { + GLUI_Master.active_control = NULL; + GLUI_Master.active_control_glui = NULL; + } + + if ( parent_window != -1 ) { + glutSetWindow( parent_window ); + int win_w = glutGet( GLUT_WINDOW_WIDTH ); + int win_h = glutGet( GLUT_WINDOW_HEIGHT ); + glutReshapeWindow(win_w+1, win_h); + glutReshapeWindow(win_w-1, win_h); + } + + delete this->main_panel; + + delete this; +} + + +/************************************************** GLUI::close() **********/ + +void GLUI::close( void ) +{ + int old_glut_window; + + closing = true; + + old_glut_window = glutGetWindow(); + glutSetWindow( get_glut_window_id() ); + glutPostRedisplay(); + + glutSetWindow( old_glut_window ); +} + + +/************************** GLUI_Main::check_subwindow_position() **********/ + +void GLUI_Main::check_subwindow_position( void ) +{ + /*** Reposition this window if subwindow ***/ + if ( TEST_AND( this->flags, GLUI_SUBWINDOW ) ) { + + int parent_w, parent_h, new_x, new_y; + int old_window = glutGetWindow(); + + glutSetWindow( glut_window_id ); + + glutSetWindow( glutGet( GLUT_WINDOW_PARENT )); + parent_w = glutGet( GLUT_WINDOW_WIDTH ); + parent_h = glutGet( GLUT_WINDOW_HEIGHT ); + + glutSetWindow( glut_window_id ); + + if ( TEST_AND(this->flags,GLUI_SUBWINDOW_RIGHT )) { + new_x = parent_w - this->w; + new_y = 0; + } + else if ( TEST_AND(this->flags,GLUI_SUBWINDOW_LEFT )) { + new_x = 0; + new_y = 0; + } + else if ( TEST_AND(this->flags,GLUI_SUBWINDOW_BOTTOM )) { + new_x = 0; + new_y = parent_h - this->h; + } + else { /*** GLUI_SUBWINDOW_TOP ***/ + new_x = 0; + new_y = 0; + } + + /** Now make adjustments based on presence of other subwindows **/ + GLUI *curr_glui; + curr_glui = (GLUI*) GLUI_Master.gluis.first_child(); + while( curr_glui ) { + if ( TEST_AND( curr_glui->flags, GLUI_SUBWINDOW) AND + curr_glui->parent_window == this->parent_window ) { + + if ( TEST_AND( curr_glui->flags,GLUI_SUBWINDOW_LEFT ) ) { + } + else if ( TEST_AND( curr_glui->flags,GLUI_SUBWINDOW_BOTTOM ) ) { + } + else if ( TEST_AND( curr_glui->flags,GLUI_SUBWINDOW_RIGHT ) ) { + } + else if ( TEST_AND( curr_glui->flags,GLUI_SUBWINDOW_TOP ) AND + ( TEST_AND( this->flags,GLUI_SUBWINDOW_LEFT ) OR + TEST_AND( this->flags,GLUI_SUBWINDOW_RIGHT ) ) ) { + /** If we are a RIGHT or LEFT subwindow, and there exists some + TOP subwindow, bump our position down **/ + + new_y += curr_glui->h; + } + + /** CHeck multiple subwins at same position **/ + /** We check the glui_id's: only the glui with the higher + ID number (meaning it was created later) gets bumped over **/ + if ( curr_glui != this AND this->glui_id > curr_glui->glui_id ) { + if ( TEST_AND( this->flags,GLUI_SUBWINDOW_LEFT ) AND + TEST_AND( curr_glui->flags,GLUI_SUBWINDOW_LEFT ) ) { + new_x += curr_glui->w; + } + else if ( TEST_AND( this->flags,GLUI_SUBWINDOW_TOP ) AND + TEST_AND( curr_glui->flags,GLUI_SUBWINDOW_TOP ) ) { + new_y += curr_glui->h; + } + else if ( TEST_AND( this->flags,GLUI_SUBWINDOW_BOTTOM ) AND + TEST_AND( curr_glui->flags,GLUI_SUBWINDOW_BOTTOM ) ) { + new_y -= curr_glui->h; + } + else if ( TEST_AND( this->flags,GLUI_SUBWINDOW_RIGHT ) AND + TEST_AND( curr_glui->flags,GLUI_SUBWINDOW_RIGHT ) ) { + new_x -= curr_glui->w; + } + + } + } + + curr_glui = (GLUI*) curr_glui->next(); + } + + + + CLAMP( new_x, 0, new_x ); + CLAMP( new_y, 0, new_y ); + + glutPositionWindow( new_x, new_y ); + /* glutPostRedisplay(); */ + + glutSetWindow( old_window ); + } +} + + +/********************************* GLUI_Master_Object::reshape() **********/ +/* This gets called by the user from a GLUT reshape callback. So we look */ +/* for subwindows that belong to the current window */ + +void GLUI_Master_Object::reshape( void ) +{ + GLUI *glui; + int current_window; + + current_window = glutGetWindow(); + + glui = (GLUI*) GLUI_Master.gluis.first_child(); + while( glui ) { + if ( TEST_AND( glui->flags, GLUI_SUBWINDOW) AND + glui->parent_window == current_window ) { + glutSetWindow( glui->get_glut_window_id()); + glui->check_subwindow_position(); + } + + glui = (GLUI*) glui->next(); + } + + glutSetWindow(current_window); +} + + +/**************************** GLUI_Master_Object::set_glutReshapeFunc() *****/ + +void GLUI_Master_Object::set_glutReshapeFunc(void (*f)(int width, int height)) +{ + glutReshapeFunc( glui_reshape_func ); + add_cb_to_glut_window( glutGetWindow(), GLUI_GLUT_RESHAPE, (void*) f); +} + + +/**************************** GLUI_Master_Object::set_glutKeyboardFunc() ****/ + +void GLUI_Master_Object::set_glutKeyboardFunc(void (*f)(unsigned char key, + int x, int y)) +{ + show_glut_keyboard_CB = f; + // glutKeyboardFunc( glui_keyboard_func ); + // add_cb_to_glut_window( glutGetWindow(), GLUI_GLUT_KEYBOARD, (void*) f); +} + + +/*********************** GLUI_Master_Object::set_glutSpecialFunc() **********/ + +void GLUI_Master_Object::set_glutSpecialFunc(void (*f)(int key, + int x, int y)) +{ + show_glut_special_CB = f; + // glutSpecialFunc( glui_special_func ); + // add_cb_to_glut_window( glutGetWindow(), GLUI_GLUT_SPECIAL, (void*) f); +} + + +/*********************** GLUI_Master_Object::set_glutMouseFunc() **********/ + +void GLUI_Master_Object::set_glutMouseFunc(void (*f)(int button, int state, + int x, int y)) +{ + glutMouseFunc( glui_mouse_func ); + add_cb_to_glut_window( glutGetWindow(), GLUI_GLUT_MOUSE, (void*) f); +} + + +/****************************** glui_parent_window_reshape_func() **********/ +/* This is the reshape callback for a window that contains subwindows */ + +void glui_parent_window_reshape_func( int w, int h ) +{ + int current_window; + GLUI *glui; + int first = true; + + /* printf( "glui_parent_window_reshape_func: %d\n", glutGetWindow() ); */ + + current_window = glutGetWindow(); + + glui = (GLUI*) GLUI_Master.gluis.first_child(); + while( glui ) { + if ( TEST_AND( glui->flags, GLUI_SUBWINDOW) AND + glui->parent_window == current_window ) { + glutSetWindow( glui->get_glut_window_id()); + glui->check_subwindow_position(); + glutSetWindow( current_window ); + + if ( first ) { + glui->glut_reshape_CB( w, h ); + + first = false; + } + } + + glui = (GLUI*) glui->next(); + } +} + + +/****************************** glui_parent_window_keyboard_func() **********/ + +void glui_parent_window_keyboard_func(unsigned char key, int x, int y) +{ + /* printf( "glui_parent_window_keyboard_func: %d\n", glutGetWindow() ); */ + + int current_window; + GLUI *glui; + + current_window = glutGetWindow(); + + if ( GLUI_Master.active_control_glui AND GLUI_Master.active_control ) { + glutSetWindow( GLUI_Master.active_control_glui->get_glut_window_id() ); + + GLUI_Master.active_control_glui->keyboard(key,x,y); + + glutSetWindow( current_window ); + } + else { + glui = (GLUI*) GLUI_Master.gluis.first_child(); + while( glui ) { + if ( TEST_AND( glui->flags, GLUI_SUBWINDOW) AND + glui->parent_window == current_window ) { + glui->glut_keyboard_CB( key, x, y ); + break; + } + + glui = (GLUI*) glui->next(); + } + } +} + + +/****************************** glui_parent_window_special_func() **********/ + +void glui_parent_window_special_func(int key, int x, int y) +{ + /*printf( "glui_parent_window_special_func: %d\n", glutGetWindow() ); */ + + int current_window; + GLUI *glui; + + /** If clicking in the main area of a window w/subwindows, + disactivate any current control **/ + if ( GLUI_Master.active_control_glui != NULL ) + GLUI_Master.active_control_glui->disactivate_current_control(); + + /*** Now pass on the mouse event ***/ + + current_window = glutGetWindow(); + + glui = (GLUI*) GLUI_Master.gluis.first_child(); + while( glui ) { + if ( TEST_AND( glui->flags, GLUI_SUBWINDOW) AND + glui->parent_window == current_window ) { + glutSetWindow( glui->get_glut_window_id()); + glui->glut_special_CB( key, x, y ); + break; + } + + glui = (GLUI*) glui->next(); + } +} + + +/****************************** glui_parent_window_mouse_func() **********/ + +void glui_parent_window_mouse_func(int button, int state, int x, int y) +{ + int current_window; + GLUI *glui; + + /** If clicking in the main area of a window w/subwindows, + disactivate any current control **/ + if ( GLUI_Master.active_control_glui != NULL ) + GLUI_Master.active_control_glui->disactivate_current_control(); + + + /*** Now pass on the mouse event ***/ + + current_window = glutGetWindow(); + + glui = (GLUI*) GLUI_Master.gluis.first_child(); + while( glui ) { + if ( TEST_AND( glui->flags, GLUI_SUBWINDOW) AND + glui->parent_window == current_window ) { + glutSetWindow( glui->get_glut_window_id()); + glui->glut_mouse_CB( button, state, x, y ); + break; + } + + glui = (GLUI*) glui->next(); + } + +} + + +/************************** GLUI_Master_Object::find_glut_window() **********/ + +GLUI_Glut_Window *GLUI_Master_Object::find_glut_window( int window_id ) +{ + GLUI_Glut_Window *window; + + window = (GLUI_Glut_Window*) glut_windows.first_child(); + while( window ) { + if ( window->glut_window_id == window_id ) + return window; + + window = (GLUI_Glut_Window*) window->next(); + } + + /*** Window not found - return NULL ***/ + return NULL; +} + + +/******************** GLUI_Master_Object::add_cb_to_glut_window() **********/ + +void GLUI_Master_Object::add_cb_to_glut_window(int window_id, + int cb_type,void *cb) +{ + GLUI_Glut_Window *window; + + window = find_glut_window( window_id ); + if ( NOT window ) { + /*** Allocate new window structure ***/ + + window = new GLUI_Glut_Window; + window->glut_window_id = window_id; + window->link_this_to_parent_last( (GLUI_Node*) &this->glut_windows ); + } + + switch( cb_type ) { + case GLUI_GLUT_RESHAPE: + window->glut_reshape_CB = (void(*)(int,int)) cb; + break; + case GLUI_GLUT_DISPLAY: + window->glut_display_CB = (void(*)()) cb; + break; + case GLUI_GLUT_KEYBOARD: + window->glut_keyboard_CB = (void(*)(unsigned char,int,int)) cb; + break; + case GLUI_GLUT_SPECIAL: + window->glut_special_CB = (void(*)(int,int,int)) cb; + break; + case GLUI_GLUT_MOUSE: + window->glut_mouse_CB = (void(*)(int,int,int,int)) cb; + break; + case GLUI_GLUT_MOTION: + window->glut_motion_CB = (void(*)(int,int)) cb; + break; + case GLUI_GLUT_PASSIVE_MOTION: + window->glut_passive_motion_CB = (void(*)(int,int)) cb; + break; + case GLUI_GLUT_ENTRY: + window->glut_entry_CB = (void(*)(int)) cb; + break; + case GLUI_GLUT_VISIBILITY: + window->glut_visibility_CB= (void(*)(int)) cb; + break; + } +} + + +/************* GLUI_Master_Object::set_left_button_glut_menu_control() *****/ + +void GLUI_Master_Object::set_left_button_glut_menu_control( + GLUI_Control *control ) +{ + curr_left_button_glut_menu = control; +} + + +/******************************* GLUI_Main::set_ortho_projection() **********/ + +void GLUI_Main::set_ortho_projection( void ) +{ + int win_h, win_w; + + win_w = glutGet( GLUT_WINDOW_WIDTH ); + win_h = glutGet( GLUT_WINDOW_HEIGHT ); + + glMatrixMode( GL_PROJECTION ); + glLoadIdentity(); + /* gluOrtho2D( 0.0, (float) win_w, 0.0, (float) win_h ); */ + glOrtho( 0.0, (float)win_w, 0.0, (float) win_h, -1000.0, 1000.0 ); + + glMatrixMode( GL_MODELVIEW ); + + return; /****-----------------------------------------------***/ + + glMatrixMode( GL_MODELVIEW ); + glLoadIdentity(); + + /*** Rotate image so y increases upwards, contrary to OpenGL axes ***/ + glTranslatef( (float) win_w/2.0, (float) win_h/2.0, 0.0 ); + glRotatef( 180.0, 0.0, 1.0, 0.0 ); + glRotatef( 180.0, 0.0, 0.0, 1.0 ); + glTranslatef( (float) -win_w/2.0, (float) -win_h/2.0, 0.0 ); +} + + +/******************************* GLUI_Main::set_viewport() **********/ + +void GLUI_Main::set_viewport( void ) +{ + glViewport( 0, 0, main_panel->w, main_panel->h ); +} + + +/****************************** GLUI_Main::refresh() ****************/ + +void GLUI_Main::refresh( void ) +{ + int orig; + int new_w, new_h; + + /****** GLUI_Glut_Window *glut_window; + int current_window; + current_window = glutGetWindow(); + glut_window = GLUI_Master.find_glut_window( current_window ); + if ( glut_window ) { + glut_window->glut_reshape_CB(w,h); + ******/ + + orig = glutGetWindow(); + + pack_controls(); + + if ( TEST_AND( this->flags, GLUI_SUBWINDOW ) ) { + /*** GLUI subwindow ***/ + + check_subwindow_position(); + + if ( glut_window_id > 0 ) + glutSetWindow( glut_window_id ); + glutPostRedisplay(); + + /* printf( "top_level: %d\n", top_level_glut_window_id );*/ + glutSetWindow( top_level_glut_window_id ); + } + else { + /*** Standalone GLUI window ***/ + + if ( glut_window_id > 0 ) + glutSetWindow( glut_window_id ); + + new_h = glutGet( GLUT_WINDOW_HEIGHT ); + new_w = glutGet( GLUT_WINDOW_WIDTH ); + + new_h = this->h; + new_w = this->w; + + glutReshapeWindow( new_w, new_h ); + + glutPostRedisplay(); + } + + glutSetWindow( orig); +} + + + +/***************** GLUI_Master_Object::get_main_gfx_viewport() ***********/ + +void GLUI_Master_Object::get_viewport_area( int *x, int *y, + int *w, int *h ) +{ + GLUI *curr_glui; + int curr_x, curr_y, curr_w, curr_h; + int curr_window; + + curr_window = glutGetWindow(); + curr_x = 0; + curr_y = 0; + curr_w = glutGet( GLUT_WINDOW_WIDTH ); + curr_h = glutGet( GLUT_WINDOW_HEIGHT ); + + curr_glui = (GLUI*) gluis.first_child(); + while( curr_glui ) { + if ( TEST_AND( curr_glui->flags, GLUI_SUBWINDOW) AND + curr_glui->parent_window == curr_window ) { + + /* printf( "%s -> %d %d %d\n", curr_glui->window_name.string, curr_glui->flags, + curr_glui->w, curr_glui->h );*/ + + if ( TEST_AND( curr_glui->flags,GLUI_SUBWINDOW_LEFT ) ) { + curr_x += curr_glui->w; + curr_w -= curr_glui->w; + } + else if ( TEST_AND( curr_glui->flags,GLUI_SUBWINDOW_BOTTOM ) ) { + curr_y += curr_glui->h; + curr_h -= curr_glui->h; + } + else if ( TEST_AND( curr_glui->flags,GLUI_SUBWINDOW_RIGHT ) ) { + curr_w -= curr_glui->w; + } + else if ( TEST_AND( curr_glui->flags,GLUI_SUBWINDOW_TOP ) ) { + curr_h -= curr_glui->h; + } + } + + curr_glui = (GLUI*) curr_glui->next(); + } + + curr_x = MAX( 0, curr_x ); + curr_y = MAX( 0, curr_y ); + curr_w = MAX( 0, curr_w ); + curr_h = MAX( 0, curr_h ); + + *x = curr_x; + *y = curr_y; + *w = curr_w; + *h = curr_h; +} + + +/*****************GLUI_Master_Object::auto_set_main_gfx_viewport() **********/ + +void GLUI_Master_Object::auto_set_viewport( void ) +{ + int x, y, w, h; + + get_viewport_area( &x, &y, &w, &h ); + glViewport( MAX(x,0), MAX(y,0), MAX(w,0), MAX(h,0) ); +} + + + +/***************************************** GLUI::show() **********************/ + +void GLUI::show( void ) +{ + int orig_window; + + orig_window = main_panel->set_to_glut_window(); + + glutShowWindow(); + + main_panel->restore_window(orig_window); +} + + + +/***************************************** GLUI::hide() **********************/ + +void GLUI::hide( void ) +{ + int orig_window; + + this->disactivate_current_control(); + + orig_window = main_panel->set_to_glut_window(); + + glutHideWindow(); + + main_panel->restore_window(orig_window); +} diff --git a/3rdparty/glui/glui.h b/3rdparty/glui/glui.h new file mode 100644 index 0000000..864ee0d --- /dev/null +++ b/3rdparty/glui/glui.h @@ -0,0 +1,1701 @@ +/**************************************************************************** + + GLUI User Interface Toolkit + --------------------------- + + glui.h - Main header for GLUI User Interface Toolkit + + + -------------------------------------------------- + + Copyright (c) 1998 Paul Rademacher + + This program is freely distributable without licensing fees and is + provided without guarantee or warrantee expressed or implied. This + program is -not- in the public domain. + +*****************************************************************************/ + + +#ifndef _GLUI_H_ +#define _GLUI_H_ + +#include +#include +#include + +#ifdef __APPLE__ +#include +#else +#include +#endif + +#define GLUI_VERSION 2.01f /********** Current version **********/ + + +#ifdef WIN32 +#pragma comment(lib, "glui32.lib") // Link against GLUI library +#endif + +class Arcball; + +/********** Do some basic defines *******/ +#ifndef false +#define true 1 +#define false 0 +#endif + +#ifndef Byte +#define Byte unsigned char +#endif + +#ifndef _RGBC_ +class RGBc { +public: + Byte r, g, b; + + void set(Byte r,Byte g,Byte b) {this->r=r;this->g=g;this->b=b;}; + + RGBc( void ) {}; + RGBc( Byte r, Byte g, Byte b ) { set( r, g, b ); }; +}; +#define _RGBC_ +#endif + +/********** List of GLUT callbacks ********/ + +enum GLUI_Glut_CB_Types { + GLUI_GLUT_RESHAPE, + GLUI_GLUT_KEYBOARD, + GLUI_GLUT_DISPLAY, + GLUI_GLUT_MOUSE, + GLUI_GLUT_MOTION, + GLUI_GLUT_SPECIAL, + GLUI_GLUT_PASSIVE_MOTION, + GLUI_GLUT_ENTRY, + GLUI_GLUT_VISIBILITY +}; + +/********** List of control types **********/ +enum GLUI_Control_Types { + GLUI_CONTROL_CHECKBOX =1, + GLUI_CONTROL_BUTTON, + GLUI_CONTROL_RADIOBUTTON, + GLUI_CONTROL_RADIOGROUP, + GLUI_CONTROL_SLIDER, + GLUI_CONTROL_STATICTEXT, + GLUI_CONTROL_EDITTEXT, + GLUI_CONTROL_BITMAP, + GLUI_CONTROL_PANEL, + GLUI_CONTROL_SPINNER, + GLUI_CONTROL_SEPARATOR, + GLUI_CONTROL_COLUMN, + GLUI_CONTROL_LISTBOX, + GLUI_CONTROL_MOUSE_INTERACTION, + GLUI_CONTROL_ROTATION, + GLUI_CONTROL_TRANSLATION, + GLUI_CONTROL_ROLLOUT +}; + + +/********* Constants for window placement **********/ +#define GLUI_XOFF 6 +#define GLUI_YOFF 6 +#define GLUI_ITEMSPACING 3 +#define GLUI_CHECKBOX_SIZE 13 +#define GLUI_RADIOBUTTON_SIZE 13 +#define GLUI_BUTTON_SIZE 20 +#define GLUI_STATICTEXT_SIZE 13 +#define GLUI_SEPARATOR_HEIGHT 8 +#define GLUI_DEFAULT_CONTROL_WIDTH 100 +#define GLUI_DEFAULT_CONTROL_HEIGHT 13 +#define GLUI_EDITTEXT_BOXINNERMARGINX 3 +#define GLUI_EDITTEXT_HEIGHT 20 +#define GLUI_EDITTEXT_WIDTH 130 +#define GLUI_EDITTEXT_MIN_INT_WIDTH 35 +#define GLUI_EDITTEXT_MIN_TEXT_WIDTH 50 +#define GLUI_PANEL_NAME_DROP 8 +#define GLUI_PANEL_EMBOSS_TOP 4 +/* #define GLUI_ROTATION_WIDTH 60*/ +/* #define GLUI_ROTATION_HEIGHT 78 */ +#define GLUI_ROTATION_WIDTH 50 +#define GLUI_ROTATION_HEIGHT (GLUI_ROTATION_WIDTH+18) +#define GLUI_MOUSE_INTERACTION_WIDTH 50 +#define GLUI_MOUSE_INTERACTION_HEIGHT (GLUI_MOUSE_INTERACTION_WIDTH)+18 + + +/** Different panel control types **/ +#define GLUI_PANEL_NONE 0 +#define GLUI_PANEL_EMBOSSED 1 +#define GLUI_PANEL_RAISED 2 + + +/** Max # of els in control's float_array **/ +#define GLUI_DEF_MAX_ARRAY 30 + +/********* The control's 'active' behavior *********/ +#define GLUI_CONTROL_ACTIVE_MOUSEDOWN 1 +#define GLUI_CONTROL_ACTIVE_PERMANENT 2 + + +/********* Control alignment types **********/ +#define GLUI_ALIGN_CENTER 1 +#define GLUI_ALIGN_RIGHT 2 +#define GLUI_ALIGN_LEFT 3 + + +/********** Limit types - how to limit spinner values *********/ +#define GLUI_LIMIT_NONE 0 +#define GLUI_LIMIT_CLAMP 1 +#define GLUI_LIMIT_WRAP 2 + + +/********** Translation control types ********************/ + +#define GLUI_TRANSLATION_XY 0 +#define GLUI_TRANSLATION_Z 1 +#define GLUI_TRANSLATION_X 2 +#define GLUI_TRANSLATION_Y 3 + +#define GLUI_TRANSLATION_LOCK_NONE 0 +#define GLUI_TRANSLATION_LOCK_X 1 +#define GLUI_TRANSLATION_LOCK_Y 2 + +/********** How was a control activated? *****************/ +#define GLUI_ACTIVATE_MOUSE 1 +#define GLUI_ACTIVATE_TAB 2 + + +/********** What type of live variable does a control have? **********/ +#define GLUI_LIVE_NONE 0 +#define GLUI_LIVE_INT 1 +#define GLUI_LIVE_FLOAT 2 +#define GLUI_LIVE_TEXT 3 +#define GLUI_LIVE_DOUBLE 4 +#define GLUI_LIVE_FLOAT_ARRAY 5 + + +/********** Translation codes **********/ + +enum TranslationCodes { + GLUI_TRANSLATION_MOUSE_NONE=0, + GLUI_TRANSLATION_MOUSE_UP, + GLUI_TRANSLATION_MOUSE_DOWN, + GLUI_TRANSLATION_MOUSE_LEFT, + GLUI_TRANSLATION_MOUSE_RIGHT, + GLUI_TRANSLATION_MOUSE_UP_LEFT, + GLUI_TRANSLATION_MOUSE_UP_RIGHT, + GLUI_TRANSLATION_MOUSE_DOWN_LEFT, + GLUI_TRANSLATION_MOUSE_DOWN_RIGHT +}; + +/************ A string type for us to use **********/ +/* typedef char GLUI_String[300]; */ +class GLUI_String +{ +public: + char string[300]; + + char &operator[]( int i ) { + return string[i]; + } + + operator char*() { return (char*) &string[0]; }; + /* operator void*() { return (void*) &string[0]; }; */ + + GLUI_String( void ) { + string[0] = '\0'; + } + + GLUI_String( char *text ) { + strcpy( string, text ); + } +}; + + +/********* Pre-declare the various classes *********/ +class GLUI; +class GLUI_Control; +class GLUI_Listbox; +class GLUI_Rotation; +class GLUI_Translation; +class GLUI_Mouse_Interaction; +class GLUI_Checkbox; +class GLUI_Slider; +class GLUI_Button; +class GLUI_StaticText; +class GLUI_Bitmap; +class GLUI_EditText; +class GLUI_Node; +class GLUI_Main; +class GLUI_Panel; +class GLUI_Spinner; +class GLUI_RadioButton; +class GLUI_RadioGroup; +class GLUI_Separator; +class GLUI_Column; +class GLUI_Master; +class GLUI_Glut_Window; +class GLUI_Rollout; + + + +/*** Flags for GLUI class constructor ***/ +#define GLUI_SUBWINDOW ((long)(1<< 1)) +#define GLUI_SUBWINDOW_TOP ((long)(1<< 2)) +#define GLUI_SUBWINDOW_BOTTOM ((long)(1<< 3)) +#define GLUI_SUBWINDOW_LEFT ((long)(1<< 4)) +#define GLUI_SUBWINDOW_RIGHT ((long)(1<< 5)) + +/*** Codes for different type of edittext boxes and spinners ***/ +#define GLUI_EDITTEXT_TEXT 1 +#define GLUI_EDITTEXT_INT 2 +#define GLUI_EDITTEXT_FLOAT 3 +#define GLUI_SPINNER_INT GLUI_EDITTEXT_INT +#define GLUI_SPINNER_FLOAT GLUI_EDITTEXT_FLOAT + + + +/*** Definition of callbacks ***/ +typedef void (*GLUI_Update_CB) (int id); +typedef void (*Int1_CB) (int); +typedef void (*Int2_CB) (int, int); +typedef void (*Int3_CB) (int, int, int); +typedef void (*Int4_CB) (int, int, int, int); + + + +/************************************************************/ +/* */ +/* Base class, for hierarchical relationships */ +/* */ +/************************************************************/ + +class GLUI_Node { +protected: + GLUI_Node *parent_node; + GLUI_Node *child_head; + GLUI_Node *child_tail; + GLUI_Node *next_sibling; + GLUI_Node *prev_sibling; + +public: + GLUI_Node *first_sibling( void ); + GLUI_Node *last_sibling( void ); + GLUI_Node *prev( void ); + GLUI_Node *next( void ); + GLUI_Node *first_child( void ) { return child_head; }; + GLUI_Node *last_child( void ) { return child_tail; }; + GLUI_Node *parent(void) { return parent_node; }; + + void link_this_to_parent_last( GLUI_Node *parent ); + void link_this_to_parent_first( GLUI_Node *parent ); + void link_this_to_sibling_next( GLUI_Node *sibling ); + void link_this_to_sibling_prev( GLUI_Node *sibling ); + void unlink( void ); + + void dump( FILE *out, char *name ) { + fprintf( out, "GLUI_node: %s\n", name ); + fprintf( out, " parent: %p child_head: %p child_tail: %p\n", + parent_node, child_head, child_tail ); + fprintf( out, " next: %p prev: %p\n", next_sibling, prev_sibling ); + } + + GLUI_Node( void ) { + parent_node= child_head = child_tail = next_sibling = prev_sibling = NULL; + }; + + friend class GLUI_Rollout; + friend class GLUI_Main; +}; + + + +/************************************************************/ +/* */ +/* Standard Bitmap stuff */ +/* */ +/************************************************************/ + +enum GLUI_StdBitmaps_Codes { + GLUI_STDBITMAP_CHECKBOX_OFF=0, + GLUI_STDBITMAP_CHECKBOX_ON, + GLUI_STDBITMAP_RADIOBUTTON_OFF, + GLUI_STDBITMAP_RADIOBUTTON_ON, + GLUI_STDBITMAP_UP_ARROW, + GLUI_STDBITMAP_DOWN_ARROW, + GLUI_STDBITMAP_LEFT_ARROW, + GLUI_STDBITMAP_RIGHT_ARROW, + GLUI_STDBITMAP_SPINNER_UP_OFF, + GLUI_STDBITMAP_SPINNER_UP_ON, + GLUI_STDBITMAP_SPINNER_DOWN_OFF, + GLUI_STDBITMAP_SPINNER_DOWN_ON, + + GLUI_STDBITMAP_CHECKBOX_OFF_DIS, /*** Disactivated control bitmaps ***/ + GLUI_STDBITMAP_CHECKBOX_ON_DIS, + GLUI_STDBITMAP_RADIOBUTTON_OFF_DIS, + GLUI_STDBITMAP_RADIOBUTTON_ON_DIS, + GLUI_STDBITMAP_SPINNER_UP_DIS, + GLUI_STDBITMAP_SPINNER_DOWN_DIS, + GLUI_STDBITMAP_LISTBOX_UP, + GLUI_STDBITMAP_LISTBOX_DOWN, + GLUI_STDBITMAP_LISTBOX_UP_DIS, + /*** + GLUI_STDBITMAP_SLIDER_TAB, + ***/ + GLUI_STDBITMAP_NUM_ITEMS +}; + + +/************ Image Bitmap arrays **********/ +extern int glui_img_checkbox_0[]; +extern int glui_img_checkbox_1[]; +extern int glui_img_radiobutton_0[]; +extern int glui_img_radiobutton_1[]; +extern int glui_img_uparrow[]; +extern int glui_img_downarrow[]; +extern int glui_img_leftarrow[]; +extern int glui_img_rightarrow[]; +extern int glui_img_spinup_0[]; +extern int glui_img_spinup_1[]; +extern int glui_img_spindown_0[]; +extern int glui_img_spindown_1[]; +extern int glui_img_checkbox_0_dis[]; +extern int glui_img_checkbox_1_dis[]; +extern int glui_img_radiobutton_0_dis[]; +extern int glui_img_radiobutton_1_dis[]; +extern int glui_img_spinup_dis[]; +extern int glui_img_spindown_dis[]; +extern int glui_img_listbox_up[]; +extern int glui_img_listbox_down[]; +extern int glui_img_listbox_up_dis[]; + +extern int *bitmap_arrays[]; + + + +/************************************************************/ +/* */ +/* Class GLUI_Bitmap */ +/* */ +/************************************************************/ +class GLUI_Bitmap +{ +public: + unsigned char *pixels; + int w, h; + + void load_from_array( int *array ); + + GLUI_Bitmap( void ) { + pixels = NULL; + w = 0; + h = 0; + } +}; + + + + +/************************************************************/ +/* */ +/* Class GLUI_StdBitmap */ +/* */ +/************************************************************/ +class GLUI_StdBitmaps +{ +public: + GLUI_Bitmap bitmaps[ GLUI_STDBITMAP_NUM_ITEMS ]; + + void draw( int bitmap_num, int x, int y ); + + GLUI_StdBitmaps( void ) { + int i; + + for( i=0; i

GOCR-documentation

+

Jörg Schulenburg

+

Magdeburg, June 3, 2002

+ +

Abstract:

+
+In this documentation I describe some ideas for my OCR-program. +It contains algorithms and examples and gives you + an impression of what the program can (or could) do. +
+

+ + +

+


+ + + + + + +

Introduction +

+First I have to say that I am not a expert in pattern recognition +or similar things. My knowledge is based mostly on experiments with my +program. +Therefore do not worry about stupid algorithms I put in this document. +In this documentation I describe some ideas for my OCR-program. +The examples give you an impression of how the program handles +your images. +If you have comments regarding contents or spelling please +write to the author. + +

Segmentation of textual regions / Layout analysis

+ +This is implemented as a recursive division in two parts. + +
    +
  • look for the thickest horizontal or vertical gap through the box
  • +
  • if the gap is less than five times longer than thick do not divide
  • +
  • do the same with the two new parts
  • +
+I know that this algorithm is not as good as you wish, +but I do not know a better one. + +

+It would be very helpful to know about a function which is able to + decide whether the box represents a single text line or a more complex object. + +

Line detection

+

+Line detection is very importand for good recognition. + For example it is difficult to distinguish between lowercase letter p + and uppercase letter P without having a baseline (same total height). + The lowercase version of p has a depht (the lower end is below the + baseline) and therefore its easy to distinguish from the uppercase version + if the baseline is known. The line detection is responsible for finding the + baseline of every text line. + +

+Lines of characters are detected by looking for interline spaces. + These are characterized by a large number of non-black pixels in a + row. Image rotation (skewing) presents a problem, therefore the program + first looks only at the left half of the image. When a line is + found, the left half of the right side is scanned, because lines + are often short. The variation in height gives an indication of + the rotation angle. Using this angle, a second run detects lines + more accurately. Line detection may fail if there is dust on the + image. + +

+In version v0.2.3 this behaviour is slightly changed. + To detect the rotation angle, the line through the most + characters is detected. + +

Cluster detection

+ +A cluster is a group of pixels which are connected with each other. +The simplest way to detect a cluster is to look for a pixel. +If you find one, look to the neighbouring pixels. This can be done recursively. + +

+This method needs a lot of stack space if a cluster is very large, +and can cause problems with the memory. + +

+Do you remember the algorithm for leaving a maze? +Go along the right (or left) wall. This seems to be a good approach +for detecting clusters without recursion. +The following picture shows a trace of the maze algorithm. + +

+ + +
+
+first 35 steps     next 36 steps     
+..@@@@@..@@@@<..   ..v<<<<..v<<<@..   * = starting point
+..@@@@@@@@@.@^<.   ..>>v@^<<<@.@@@.   >^<v = go right,up,left,down
+....@@@@@...@@^.   ....v@@@@...@@@.   @ = black pixel
+....@@@@....@@^.   ....v@@@....@@@.
+....@@@.....@@^.   ....v@@.....@@@.
+....@@@.....@@^.   ....v@@.....@@@.
+...@@@@.....@@^.   ...v<@@.....@@@.
+...@@@......@@^.   ...v@@......@@@.
+...@@@......@@^.   ...v@@......@@@.
+...@@@.....@@@^.   ...v@@.....@@@@.
+...@@@.....@@>^.   ...v@@.....@@@@.
+...@@@.....@@^..   ...v@@.....@@@..
+..@@@@.....@@^..   ..v<@@.....@@@..
+..@@@@....@@@^..   ..v@@@....@@@@..
+*>>>>>>>>>>>>^<<   @@@@@@@@@@@@@@@@
+
+ +

+The minimum and maximum coordinates can be used to create a box around the +cluster. But does this algorithm work with diagonally connected pixels? + +

Engines

+ +GOCR is able to work with different recognition engines. +Since version 0.37 engines have to return a probability value together +with the recognized character or a table of values to a table of characters. +If the probability value is 100, the engine is 100% sure to have found the +right character otherwise the value is less. This gives GOCR the possibility +to compare results of different engines or in case of a not recognized character +to inform the user or another +application (spell checker) which characters probably could be there. + +

Base-Engine

+The base engine (src/ocrX.c) is the original engine used in the first implementation +of GOCR by Jörg. The idea was to get a fast and acceptable result +without learning theoretical background. Later it should be replaced or completed +by a better engine. +The base engine is a rule based engine. +The engine was written without theoretical +background and is improved by try and error method but is is still far from +perfect. The algorithm is very tolerant to size and form af characters +(omnifont). +How does the engine identify a character? For the explanation look at the +following pattern. + +

+ + +
+
+vvvv         vv- white regions
+......@@......  <- crossing one line
+......@@......  
+.....@@@@.....
+.....@@@@.....
+.....@@@@.....
+....@..@@@....  <- white hole / crossing two lines
+....@..@@@....  <- crossing two lines
+....@..@@@....
+...@....@@@...
+...@....@@@...
+...@....@@@...
+..@@@@@@@@@@..  <- horizontal line near center
+..@......@@@..
+..@......@@@..  
+.@........@@@.  v- increasing width of pattern
+.@........@@@.  v
+.@........@@@.  v
+@@@......@@@@@
+    ^^^-- gap
+
+ +

+In the future the program +should detect edges, vertices, gaps, angles and so on. +This is called feature extraction (as far as I know). +With such data the engine could make a cluster analysis. +But this is a difficult task, if the scanned image is noisy. + +

Database-Engine

+The database engine (src/database.c) was the second engine added to GOCR. +It was primary written to give users a simple tool to recognize +special language-specific characters. The program generates a list +(text file db.lst of image filenames and character codes) +and image samples (pnm-files) in a database path (./db/). +The database can be created by hand or extern programs or by GOCR itself +using option (-m 130). In the last case GOCR prompts the user +for not recognized characters. If he enters the character the pattern +is saved in the database path as pnm-file and its file name is added +to the database list (db.lst) together with the text string the pattern +should be replaced by. +For recognition GOCR first loads the database into memory (option -m 2). +The main algorithm compares not recognized characters with stored images +and calculates a distance value. If the distance value is small enough, +the character is treated as recognized. + +

Remove pixels

+ +The following picture shows an n which has additional pixels at the +bottom. Therefore it can not be detected as n. What can be done? + +
    +
  • classify horizontal (=) and vertical (I) pixels by + comparing the distance between the next vertical and next horizontal white + pixels (.) +
  • +
  • measure mean thickness of vertical and horizontal clusters +
  • +
  • erase unusually thin horizontal pixels at the bottom line +
  • +
+ +

+ + +
+
+..@@@@@..@@@@@..     ..==III..===II.. dx=16 dy=15
+..@@@@@@@@@.@@@.     ..==III====.III. thickness 2 to 3
+....@@@@@...@@@.     ....III==...III.
+....@@@@....@@@.     ....III=....III.
+....@@@.....@@@.     ....III.....III.
+....@@@.....@@@.     ....III.....III.
+...@@@@.....@@@.     ...IIII.....III.
+...@@@......@@@.     ...III......III.
+...@@@......@@@.     ...III......III.
+...@@@.....@@@@.     ...III.....IIII.
+...@@@.....@@@@.     ...III.....IIII.
+...@@@.....@@@..     ...III.....III..
+..@@@@.....@@@..     ..IIII.....III..
+..@@@@....@@@@..     ..IIII....IIII..
+@@@@@@@@@@@@@@@@     ================
+      ^^^ 
+      this causes the problem
+
+ +

+A better way is to find serifs (horizontal lines glued on the lower end +of vertical lines) which touch together (v0.2.5). + +

+The next picture shows blind pixels which are caused by dust on the paper. +The upper right dots are not connected with the rest of the character. +This can be detected via fill-algorithms. Currently the program +assumes that dots near the upper end of a character are ``i''-dots +or diaereses (umlaut dots). + +

+ + +
+
+..........................O...     ..........................O...
+..........................O...     ..........................O...
+..............................     ..............................
+..............................     ..............................
+..........@@@.......@@@@......     ..........@@@.......@@@@......
+..@@@@..@@@@@@@...@@@@@@@.....     ..@@@@..@@@@@@@...@@@@@@@.....
+@@@@@@@@@@@@@@@@.@@@@@@@@@....     @@@@@@@@@@@@@@@@.@@@@@@@@@....
+..@@@@@@....@@@@@@.....@@@@...     ..@@@@@@....@@@@@@.....@@@@...
+..@@@@.......@@@@......@@@@...     ..@@@@.......@@@@......@@@@...
+..@@@@.......@@@.......@@@@...     ..@@@@.......@@@.......@@@@...
+..@@@@.......@@@.......@@@@...     ..@@@@.......@@@.......@@@@...
+..@@@@.......@@@.......@@@@...     ..@@@@.......@@@.......@@@@...
+..@@@@.......@@@@......@@@@...     ..@@@@.......@@@@......@@@@...
+..@@@@.......@@@.......@@@@...     ..@@@@.......@@@.......@@@@...
+..@@@@.......@@@@......@@@@...     ..@@@@.......@@@@......@@@@...
+..@@@@.......@@@.......@@@@...     ..@@@@.......@@@.......@@@@...
+..@@@@.......@@@.......@@@@...     ..@@@@.......@@@.......@@@@...
+..@@@@.......@@@.......@@@@...     ..@@@@.......@@@.......@@@@...
+..@@@@.......@@@.......@@@@...     ..@@@@.......@@@.......@@@@...
+..@@@@.......@@@.......@@@@...     ..@@@@.......@@@.......@@@@...
+..@@@@.......@@@@......@@@@...     ..@@@@.......@@@@......@@@@...
+..@@@@......@@@@@......@@@@@..     ..@@@@......@@@@@......@@@@@..
+@@@@@@@@..@@@@@@@@@..@@@@@@@@@     @@@@@@@@..@@@@@@@@@..@@@@@@@@@
+
+ +

+Add pixels +

+The following picture shows an m. The legs are only barely connected. +How do we handle this? + +
    +
  • if the engine has failed, a filter is switched on and the engine + starts over +
  • +
  • the 2x2 filter sets pixels to (O) near barely connected pixels +
  • +
+ +

+ + +
+
+   vv   vv
+@@@.@@@..@@@...     @@@.@@@..@@@...
+.@@.@@@@.@@@@..<    .@@O@@@@O@@@@..  filter: .@ => O@     @. => @O
+.@@@..@@@..@@..<    .@@@..@@@..@@..          @. => @.     .@ => .@
+.@@@..@@@..@@@.     .@@@..@@@..@@@.
+.@@@..@@@..@@@.     .@@@..@@@..@@@.     
+.@@@..@@@..@@@.     .@@@..@@@..@@@.     
+.@@@..@@@..@@@.     .@@@..@@@..@@@.
+.@@@..@@@..@@@.     .@@@..@@@..@@@.
+.@@@..@@@..@@@.     .@@@..@@@..@@@.
+.@@@..@@@..@@@.     .@@@..@@@..@@@.
+.@@@..@@@..@@@.     .@@@..@@@..@@@.
+.@@@..@@@..@@@.     .@@@..@@@..@@@.
+.@@@..@@@..@@@.     .@@@..@@@..@@@.
+@@@@@.@@@@.@@@@     @@@@@.@@@@.@@@@
+
+ +

+Similarity analyzer +

+Some characters are a little bit noisy. These characters can be identified by +comparison with other, already recognized characters. This can be done +via a good distance function. May be +the distance function in the actual version of GOCR is not very good. +Feel free to send me your ideas, but be sure it does not waste my time. + +

+Overlapping characters +

+The following picture shows an overlapping ru. +How do we handle this? + +
    +
  • look for 3 weak connections (sum over y is small, start in the middle) +
  • +
  • test if the right and left part can be detected by the engine +
  • +
  • correction of surrounding box +
  • +
+ +

+ + +
+
+....@@...@@@@@@@@@@....@@@@@@@..     ....@@...@@@@@@@@@@....@@@@@@@..
+..@@@@..@@@@@..@@@@......@@@@@..     ..@@@@..@@@@@..@@@@......@@@@@..
+@@@@@@@@@@@@@.,.@@@.......@@@@..     @@@@@@@@@@@@@...@@@.......@@@@..
+..@@@@@@..@@@...@@@.......@@@@..     ..@@@@@@..@@@...@@@.......@@@@..
+...@@@@.......,.@@@@......@@@@..     ...@@@@.........@@@@......@@@@..
+...@@@@.........@@@@......@@@@..     ...@@@@.........@@@@......@@@@..
+...@@@@.......,.@@@.......@@@@..     ...@@@@.........@@@.......@@@@..
+...@@@@.........@@@.......@@@@..     ...@@@@.........@@@.......@@@@..
+...@@@........,.@@@@......@@@@..     ...@@@..........@@@@......@@@@..
+...@@@..........@@@@......@@@@..     ...@@@..........@@@@......@@@@..
+...@@@........,.@@@@......@@@@..     ...@@@..........@@@@......@@@@..
+...@@@..........@@@.......@@@@..     ...@@@..........@@@.......@@@@..
+...@@@........,.@@@@......@@@@..     ...@@@..........@@@@......@@@@..
+...@@@..........@@@@......@@@@..     ...@@@..........@@@@......@@@@..
+...@@@........,.@@@@......@@@@..     ...@@@..........@@@@......@@@@..
+...@@@..........@@@@@...@@@@@@@.     ...@@@..........@@@@@...@@@@@@@.
+..@@@@@.......,..@@@@@@@@@.@@@@@     ..@@@@@..........@@@@@@@@@.@@@@@
+@@@@@@@@@.........@@@@@@@..@@@..     @@@@@@@@@.........@@@@@@@..@@@..
+..............,....@@@..........     ...................@@@..........
+             ^^^
+             213 weak vertical lines
+
+ +

+Of course the situation is more difficult with slanted characters. + +

+The following example shows, how to deal with larger clusters. +To get a fast program a first test should select the possible positions of +division. That can be done by following upper and lower bows to a crease or a break. Than try to break on all detected creases, start at most +important one (not implemented yet v0.2.4). + +

+ + +
+
+             >>>>vvv<<<<<       >>vv<<<<         >>>vvv<<<<
+......@@@@@@@..................@@.........@@@@@@@..........@@@@@@@.....
+....@@@@@@@@@@@...............@@@.......@@@@@@@@@@@......@@@@@@@@@@@...
+...@@@@@@@@@@@@@.............@@@@......@@@@@@@@@@@@@....@@@@@@@@@@@@@..
+..@@@@.......@@@@...........@@@@@.....@@@@.......@@@@..@@@@.......@@@@.
+..@@@........@@@@..........@@@@@@@....@@@........@@@@@@@@@........@@@@.
+.@@@@..........@@.........@@@@@@@@...@@@@..........@@@@@@@.........@@@@
+.@@@.....................@@@@.@@@@...@@@..............@@...........@@@@
+.@@@....................@@@@@.@@@@...@@@...........................@@@@
+@@@...@@@@@@@...........@@@@..@@@...@@@...@@@@@@...................@@@.
+@@@@.@@@@@@@@@@........@@@@...@@@@..@@@@.@@@@@@@@@@...............@@@@.
+@@@@@@@@@@@@@@@.......@@@@....@@@@..@@@@@@@@@@@@@@@...............@@@..
+@@@@@@@.....@@@@@.....@@@.....@@@@..@@@@@@......@@@@@............@@@@..
+@@@@.........@@@@...@@@@......@@@@..@@@@@........@@@@...........@@@....
+@@@@..........@@@@.@@@@.......@@@@..@@@@..........@@@..........@@@@....
+@@@@..........@@@@@@@@@.......@@@@.@@@@@..........@@@.........@@@@.....
+@@@@..........@@@@@@@@@@@@@@@@@@@@@@@@@@..........@@@@.......@@@@......
+@@@@..........@@@@@@@@@@@@@@@@@@@@@@@@@@..........@@@@......@@@........
+.@@@..........@@@@@@@@@@@@@@@@@@@@@@.@@@..........@@@@....@@@@@........
+.@@@@........@@@@.............@@@@...@@@@........@@@@....@@@@..........
+..@@@@.......@@@@.............@@@@....@@@@.......@@@@...@@@@...........
+..@@@@@....@@@@@..............@@@@.....@@@@....@@@@@...@@@@@@..........
+....@@@@@@@@@@@...............@@@@......@@@@@@@@@@@...@@@@@@@@@@@@@@@@@
+.....@@@@@@@@@................@@@@........@@@@@@@@....@@@@@@@@@@@@@@@@@
+........@@@@...................@@..........@@@@@........@@@@@@@..@.@@@.
+            >>>>^            ^<<>>^ ^<<<<<        >>>^<<<      ^^ ^
+
+>,< show the path of the detection algorithm
+
+ +

+The latest version of GOCR may use different algorithms. +You have to look at the sources learn more. + +

+Black/White, Gray and Colors +

+For simplicity colored images are converted to gray internally. +That means a red text on green background will not be detected. +You should use your own filter for this purpose. + +

+If the original image is gray, a critical value is calculated to +extract characters from the background. This can fail, if images are +on the scanned page or tha scan is bad (dark edges or borders). +It is difficult to overcome this problem because graylevels are mostly +restricted to the 8 bit limit (16 bit would help to overcome this problem). + +

+Black/White images are internally converted to gray with two levels (0 and +255). + +

+The lowest 4 bits are not used, because they are used by internal functions +(this can be changed in future). + +

+After calculation of the threshold value (otsu.c) the brightness of +every pixel is recalculated to a new internal threshold value +of 160 (128+32). +This is a bit above the middle of the 8 bit range. The idea is to +make the live easier for the other routines. Pixels which does not sure +belong to the white or black ones get a value near the threshold value. +Some routines can use this bit of more information to ignore outriders. +Second point is, that this is necessary for using lowest for bits +without destroying image informations. + +

Pictures on scanned pages +

+At first all objects on the scanned page are detected. +Objects are clusters of black pixels. +Pictures are detected if they are larger than 4 times the mean size of +all objects. This rule is very simple and can fail some times. +But it works fast and mostly the result is ok. + +

Tools

+ +

+

+
pbmclean:
+
This program is written by Angus Duggan and Jef Poskanzer. + It cleans up ``snow'' on bitmap images. +
+
pnmtools:
+
This tools are used to convert different image-formats to + easy readable PNM (PBM,PGM,PPM) format. + GOCR uses the popen-routine to call this programs if the + suffix of the filename matches to a list in pnm.c. + This will fail if pnmtools are missing. +
+
+ +

related projects (to learn from)

+ +

+

+
unpaper:
+
unpaper - + post-processing scanned and photocopied book pages, + written by Jens Gulden 2005, GPL +
+
+ +

glossary

+
font series:
bold, condensed
+
font shape:
normal, italic, slanted, sc...
+
points:
+
length unit used for font size, 1/72 inch, + but I do not know its exact relation to the font size (height? + totalheight? width? 10pt and 300dpi results in 40 pixel heigh font?) +
+
sans serif:
+
font without the (often thin) lines on the ends + of the character +
+
descewing:
+
compensation of (slightly) rotated text +
+
+ +

More information?

+
+
·
+
see "/usr/share/doc/package/tetex/texmf/.../fntguide.dvi" + in the documentation of the tetex package + +
+
·
+
the fonts-HOWTO file is helpfully too + ("www.faqs.org/faqs/fonts-faq/") + +
+
RTF:
+
RichTextFormat - does someone have a good documontation? +
+
+ +

About this document

+This Document was originaly written in LaTeX. +In May 2002 Joerg has convertet it to HTML. The reason is, that +you can read it now directly and you does not need to have LaTeX and +Ghostscript installed on your computer to read it. +As a side effect you do not need tetex package to build the gocr.rpm-package. +A good viewer to read this document is lynx, links or w3m. + +
+
+
jNOschulen-at-gSmPAMx.de (remove NO+S+PAM)
+ + + \ No newline at end of file diff --git a/3rdparty/gocr-0.48/doc/unicode.txt b/3rdparty/gocr-0.48/doc/unicode.txt new file mode 100644 index 0000000..a2cfe83 --- /dev/null +++ b/3rdparty/gocr-0.48/doc/unicode.txt @@ -0,0 +1,57 @@ +This file is intended to clarify why and how we are using Unicode in gocr. It's +probably only interesting if you intend to do something similar in a project of +yours or to develop gocr. + +History +0.1 initial version + +--- +Why to use Unicode? While in this early development stage gocr doesn't +recognize much more than the ASCII characters, we hope that someday it will +support many different languages with different character sets; that it will +recognize mathematical expressions, and so on. Even in this early stage, we are +trying to support other Latin languages --- accented characters. Since once we +aren't using ASCII characters anymore we are subject to the character set +loaded in the machine if we use the 0x80-0xFF characters, we had to solve the +problem. + +Against what Andrew Tanenbaum once said, "The good thing about standards is +that there are so many to choose from", we decided to not invent a new one and +stick to one of the current; Unicode is the most famous, so we chose it. + +To my dismay, Unicode's support, at this time, sucks. There are few libraries +around to deal with it, contrary to what one would expect. The libraries I +found, though very good, did not provide the kind of support we needed in gocr: +to work internally with hundreds of different characters. They were all focused +in handling external files, user interface --- i18n, in short --- something that +I'm sure is much more needed and used than what gocr needs. + +That's why we wrote our own Unicode code. We implemented only what we needed, +and in a practical way to the developer --- composing characters, etc. Since no +one I know will want the output of their scanned and OCR document in Unicode or +UTF-8 format (though I hope that one format will eventually be used in every OS +and computer around, and ASCII will go to a museum, and though gocr can output +in one of these formats too), we had to output in some format more friendly; +the choices are existing character maps, TeX, SGML and HTML initially, and who +knows what else later. Once we can recognize the text and keep the formatting, +these formats will be desired even more. + +How to implement it (careful: developer's view)? Fortunatedly, there is partial +support for it now. The wchar_t type defined in is a standard (only +sometimes 16, sometimes 32, perhaps even 64 somewhere). Do we need the libc's +string functions? If we do, they also exist for wchar_t. Some conversion +functions were needed: ASCII -> Unicode, Unicode -> everything else. + +The ASCII -> Unicode conversion (done by the compose() function) is written to +be called by the ocr engine, when it recognizes a character. You can also use +the Unicode codes #defined in unicode.h, but the compose function allows a +simpler use. It's recommended to use the symbols itself for ASCII codes (don't +need to LATIN_CAPITAL_LETTER_A, use 'A'). + +The Unicode -> etc conversion (done by decode()) is a bit more difficult +sometimes, since previous symbols may interact with the current one. For +example, if you're converting to TeX, two characters that are in math mode will +call two times math mode; for example, "\( \pi \) \( \iota \)", instead of +"\( \pi \iota \)". Possibly a wider conversion function, decode_text(), which +deals with the entire text at once should be provided; this function will also +create headers, etc. diff --git a/3rdparty/gocr-0.48/gocr.spec b/3rdparty/gocr-0.48/gocr.spec new file mode 100644 index 0000000..256ef5a --- /dev/null +++ b/3rdparty/gocr-0.48/gocr.spec @@ -0,0 +1,143 @@ +%define name gocr +%define version 0.48 +%define release 1 + +%define prefix %{_prefix} +%define _xprefix /usr +%define _xbindir %{_xprefix}/bin + +Summary: Gocr is an OCR (Optical Character Recognition) program. +Name: %{name} +Version: %{version} +Release: %{release} +URL: http://jOCR.sourceforge.net/ +License: GPL +Group: Graphics +Source0: http://prdownloads.sourceforge.net/jocr/%{name}-%{version}.tar.gz +#Source1: %{name}-16x16.xpm.bz2 +#Source2: %{name}-32x32.xpm.bz2 +#Patch0: %{name}-DESTDIR.patch.bz2 +#Patch1: %{name}-paths.patch.bz2 +#following packages are not really needed, but recommended +#BuildRequires: libnetpbm1-devel +#BuildRequires: gtk+-devel >= 1.2.8 +#BuildRequires: transfig +# set RPM_BUILD_ROOT to /var/tmp/gocr-buildroot , overwritten by .rpmmacros +BuildRoot: %{_tmppath}/%{name}-buildroot + +%description +GOCR is an optical character recognition program. +It reads images in many formats and outputs a text file. +Possible image formats are pnm, pbm, pgm, ppm, some pcx and +tga image files. Other formats like pnm.gz, pnm.bz2, png, jpg, tiff, gif, +bmp will be automatically converted using the netpbm-progs, gzip and bzip2 +via unix pipe. +A simple graphical frontend written in tcl/tk and some +sample files (you need transfig for the sample files) are included. +Gocr is also able to recognize and translate barcodes. +You do not have to train the program or store large font bases. +Simply call gocr from the command line and get your results. + + +#%package -n %{name}-devel +#Summary: Development tools for gocr. +#Group: Development/C + +#%description -n %{name}-devel +#GOCR is an optical character recognition program. +#If you want to develop programs which will manipulate gocr, you should +#install gocr-devel. You'll also need to install the gocr package. + + +# not tested, what about gocr.tcl ??? +# switched off because gtk-devel was not available on my PC (joerg Aug06) +# and you dont need it to get gocr working +#%package -n %{name}-gtk +#Summary: Gtk+ frontend for gocr +#Group: Graphics +#Requires: %{name} = %{version} +#BuildRequires: gtk-devel >= 1.2.8 + +#% description -n %{name}-gtk +#Gtk-gocr is a graphical frontend to GOCR the +#optical character recognition program. +# +#Gtk+-based frontend for gocr. + +# rpmbuild -bp: unpacking sources and applaying patches +%prep +rm -rf $RPM_BUILD_ROOT + +%setup -q +#%patch0 -p1 +#%patch1 -p1 + +# rpmbuild -bc: build, after prep, invokes make +# please help +%build +%configure --with-netpbm=no +%{__make} DESTDIR=$RPM_BUILD_ROOT +echo "build end" + +# [ -e config.cache ] && rm -f config.cache +# % configure --with-netpbm=no --prefix=%{_xprefix} --bindir=%{_xbindir} +# % {__make} + +# rpmbuild -bi: install-stage +%install + +%{__make} install DESTDIR=$RPM_BUILD_ROOT + +# not needed anymore +# % post -n %name-gtk +# % {update_menus} +# +# % postun -n %name-gtk +# % {clean_menus} +echo "install end" + +%clean +rm -rf $RPM_BUILD_ROOT +echo "clean end" + +# rpmbuild -bl: list check, check that every file exists +%files -n %{name} +%defattr(-, root, root) +%doc AUTHORS BUGS CREDITS HISTORY README REMARK.txt TODO +%doc doc/{examples.txt,gocr.html,unicode.txt} +%doc examples/{ex.fig,font2.fig,ocr-a.png,ocr-b.png} +%{_mandir}/man1/* +%attr(755,root,root) %{_bindir}/* + +#%files -n %{name}-devel +#%defattr(-, root, root) +#%doc AUTHORS REVIEW +#%{_libdir}/libPgm2asc.a +#%{_includedir}/gocr.h + +#%files -n %{name}-gtk +#%defattr(-, root, root) +#%doc frontend/gnome/{AUTHORS,README,TODO} +##%{_menudir}/* +##%{_iconsdir}/* +#%attr(755,root,root) %{_xbindir}/* + +%changelog +* Tue Feb 5 2008 Joerg Schulenburg, 0.46 +- remove devel part (for simplicity) + +* Wed Aug 30 2006 Joerg Schulenburg, 0.41 +- remove gtk-part (dont work on my PC) + +* Sat Dec 27 2003 Nick Urbanik 0.38-1.1nu +- Change %make to %{__make} +- check config.cache exists before trying to delete it +- Fix the files list for documentation. +- add back the gtk frontend +- Added the correct build require for gtk frontend +- various other fixes to get it to build. + +* Tue Jan 29 2001 Joerg Schulenburg 0.3.6-1 +- gocr.spec taken krom Marcel Pol + +# check: rpmbuild -ba --nobuild gocr.spec diff --git a/3rdparty/gocr-0.48/gpl.html b/3rdparty/gocr-0.48/gpl.html new file mode 100644 index 0000000..101fb0e --- /dev/null +++ b/3rdparty/gocr-0.48/gpl.html @@ -0,0 +1,537 @@ + + + +GNU General Public License - GNU Project - Free Software Foundation (FSF) + + + +

GNU General Public License

+ [image of a Philosophical GNU] + +

+

+

+


+ +

+ +

Table of Contents

+ + +

+ +


+ +

+ + + +

GNU GENERAL PUBLIC LICENSE

+

+Version 2, June 1991 + +

+ +
+Copyright (C) 1989, 1991 Free Software Foundation, Inc.  
+59 Temple Place - Suite 330, Boston, MA  02111-1307, USA
+
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+
+ + + +

Preamble

+ +

+ The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + +

+

+ When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + +

+

+ To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + +

+

+ For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + +

+

+ We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + +

+

+ Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + +

+

+ Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + +

+

+ The precise terms and conditions for copying, distribution and +modification follow. + +

+ + +

TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

+ + +

+ +0. + This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". +

+ +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + +

+ +1. + You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. +

+ +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. +

+ +2. + You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: +

+ +

    + +
  • a) + You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + +

    +

  • b) + You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + +

    +

  • c) + If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) +
+ +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. +

+ +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. +

+ +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + +

+ +3. + You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + + + +

    + +
  • a) + Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + +

    +

  • b) + Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + +

    +

  • c) + Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) +
+ +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. +

+ +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. +

+ +4. + You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + +

+ +5. + You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +

+ +6. + Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + +

+ +7. + If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. +

+ +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. +

+ +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. +

+ +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + +

+ +8. + If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + +

+ +9. + The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. +

+ +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + +

+ + +10. + If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + + +

NO WARRANTY

+ +

+ +11. + BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + +

+ +12. + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + +

+ + +

END OF TERMS AND CONDITIONS

+ + + +

How to Apply These Terms to Your New Programs

+ +

+ If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + +

+

+ To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + +

+ +
+one line to give the program's name and an idea of what it does.
+Copyright (C) yyyy  name of author
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+
+ +

+Also add information on how to contact you by electronic and paper mail. + +

+

+If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + +

+ +
+Gnomovision version 69, Copyright (C) year name of author
+Gnomovision comes with ABSOLUTELY NO WARRANTY; for details
+type `show w'.  This is free software, and you are welcome
+to redistribute it under certain conditions; type `show c' 
+for details.
+
+ +

+The hypothetical commands `show w' and `show c' should show +the appropriate parts of the General Public License. Of course, the +commands you use may be called something other than `show w' and +`show c'; they could even be mouse-clicks or menu items--whatever +suits your program. + +

+

+You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + +

+ +
+Yoyodyne, Inc., hereby disclaims all copyright
+interest in the program `Gnomovision'
+(which makes passes at compilers) written 
+by James Hacker.
+
+signature of Ty Coon, 1 April 1989
+Ty Coon, President of Vice
+
+ +

+This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. + +


+ +Return to GNU's home page. +

+FSF & GNU inquiries & questions to +gnu@gnu.org. +Other ways to contact the FSF. +

+Comments on these web pages to +webmasters@www.gnu.org, +send other questions to +gnu@gnu.org. +

+Copyright notice above.
+Free Software Foundation, Inc., +59 Temple Place - Suite 330, Boston, MA 02111, USA +

+Updated: + +12 Mar 2000 tower + +


+ + diff --git a/3rdparty/gocr-0.48/include/.cvsignore b/3rdparty/gocr-0.48/include/.cvsignore new file mode 100644 index 0000000..7b8264b --- /dev/null +++ b/3rdparty/gocr-0.48/include/.cvsignore @@ -0,0 +1,2 @@ +.cvsignore +config.h diff --git a/3rdparty/gocr-0.48/include/config.h b/3rdparty/gocr-0.48/include/config.h new file mode 100644 index 0000000..7cc24ed --- /dev/null +++ b/3rdparty/gocr-0.48/include/config.h @@ -0,0 +1,37 @@ +/* include/config.h. Generated by configure. */ +/* include/config.h.in. Generated automatically from configure.in by autoheader. */ + +/* Define to empty if the keyword does not work. */ +/* #undef const */ + +/* Define if the setvbuf function takes the buffering type as its second + argument and the buffer pointer as the third, as on System V + before release 3. */ +/* #undef SETVBUF_REVERSED */ + +/* Define if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* Define if you have the gettimeofday function. */ +#define HAVE_GETTIMEOFDAY 1 + +/* Define if you have the popen function. */ +#define HAVE_POPEN 1 + +/* Define if you have the wcschr function. */ +#define HAVE_WCSCHR 1 + +/* Define if you have the wcsdup function. */ +#define HAVE_WCSDUP 1 + +/* Define if you have the header file. */ +//#define HAVE_PAM_H 1 + +/* Define if you have the header file. */ +#define HAVE_PNM_H 1 + +/* Define if you have the header file. */ +#define HAVE_UNISTD_H 1 + +/* Define if you have the header file. */ +#define HAVE_WCHAR_H 1 diff --git a/3rdparty/gocr-0.48/include/config.h.in b/3rdparty/gocr-0.48/include/config.h.in new file mode 100644 index 0000000..6452083 --- /dev/null +++ b/3rdparty/gocr-0.48/include/config.h.in @@ -0,0 +1,36 @@ +/* include/config.h.in. Generated automatically from configure.in by autoheader. */ + +/* Define to empty if the keyword does not work. */ +#undef const + +/* Define if the setvbuf function takes the buffering type as its second + argument and the buffer pointer as the third, as on System V + before release 3. */ +#undef SETVBUF_REVERSED + +/* Define if you have the ANSI C header files. */ +#undef STDC_HEADERS + +/* Define if you have the gettimeofday function. */ +#undef HAVE_GETTIMEOFDAY + +/* Define if you have the popen function. */ +#undef HAVE_POPEN + +/* Define if you have the wcschr function. */ +#undef HAVE_WCSCHR + +/* Define if you have the wcsdup function. */ +#undef HAVE_WCSDUP + +/* Define if you have the header file. */ +#undef HAVE_PAM_H + +/* Define if you have the header file. */ +#undef HAVE_PNM_H + +/* Define if you have the header file. */ +#undef HAVE_UNISTD_H + +/* Define if you have the header file. */ +#undef HAVE_WCHAR_H diff --git a/3rdparty/gocr-0.48/include/version.h b/3rdparty/gocr-0.48/include/version.h new file mode 100644 index 0000000..41fe06b --- /dev/null +++ b/3rdparty/gocr-0.48/include/version.h @@ -0,0 +1,2 @@ +#define version_string "0.48" +#define release_string "20090802" diff --git a/3rdparty/gocr-0.48/src/.cvsignore b/3rdparty/gocr-0.48/src/.cvsignore new file mode 100644 index 0000000..cac8548 --- /dev/null +++ b/3rdparty/gocr-0.48/src/.cvsignore @@ -0,0 +1,4 @@ +.cvsignore +Makefile +gocr +*.o diff --git a/3rdparty/gocr-0.48/src/Makefile b/3rdparty/gocr-0.48/src/Makefile new file mode 100644 index 0000000..f4a5827 --- /dev/null +++ b/3rdparty/gocr-0.48/src/Makefile @@ -0,0 +1,132 @@ +# +# Makefile for ./src path, used by configure +# + +EXEEXT = +PROGRAM = gocr$(EXEEXT) +# lib removed for simplification (v0.46) +# but Igor from OSRA an optical chemical structure recognition software +# wants it (v0.47 Mar09) +PGMASCLIB = Pgm2asc +#LIBPGMASCLIB = lib$(PGMASCLIB).a +# ToDo: need a better pgm2asc.h for lib users +#INCLUDEFILES = gocr.h +# avoid german compiler messages +LANG=C + +LIBOBJS=pgm2asc.o \ + box.o \ + database.o \ + detect.o \ + barcode.o \ + lines.o \ + list.o \ + ocr0.o \ + ocr0n.o \ + ocr1.o \ + otsu.o \ + output.o \ + pixel.o \ + unicode.o \ + remove.o \ + pnm.o \ + pcx.o \ + progress.o \ + job.o + +# these two lines are for cross-compiling, not tested +#srcdir = . +#VPATH = . +bindir = ${exec_prefix}/bin +# lib removed for simplification +#libdir = ${exec_prefix}/lib +#includedir = ${prefix}/include + +CC=gcc +# lib removed for simplification +# ar,ranlib detection removed from configure (simplicity) +# but needed by some developpers (linux only) for for (make libs) +# RANLIB = @RANLIB@ +# AR = @AR@ +RANLIB = ranlib +AR = ar +INSTALL=/usr/bin/install -c +# shell is needed for OS/2 to let if test -r $(PROGRAM) ... work +SHELL=/bin/bash + +DEFS=-DHAVE_CONFIG_H +CPPFLAGS= +# to see the config.h +CFLAGS=-g -O2 -fPIC $(CPPFLAGS) -I../include $(DEFS) +LDFLAGS=-lm +LIBS=-lnetpbm +DESTDIR=/usr/local + +.SUFFIXES: .s .o .c .h +# do not look for files if help (etc) is given +.PHONY : doc clean install libs default + +.c.o: gocr.h pgm2asc.h ../include/config.h + $(CC) $(CFLAGS) -c -o $*.o $< + +default: all + +# all: $(PROGRAM) lib$(PGMASCLIB).a +all: $(PROGRAM) + +gocr.o: gocr.h Makefile ../include/version.h + +.c.h: + +#$(PROGRAM): lib$(PGMASCLIB).a gocr.o +$(PROGRAM): $(LIBOBJS) gocr.o + # make it conform to ld --as-needed + #$(CC) -o $@ $(LDFLAGS) gocr.o ./lib$(PGMASCLIB).a $(LIBS) + $(CC) -o $@ $(LDFLAGS) gocr.o $(LIBOBJS) $(LIBS) + if test -r $(PROGRAM); then cp $@ ../bin; fi + +libs: lib$(PGMASCLIB).a lib$(PGMASCLIB).0.48.so + +lib$(PGMASCLIB).0.48.so: $(LIBOBJS) + $(CC) -fPIC -shared -Wl,-h$@ -o $@ $(LIBOBJS) + -ln -s $@ lib$(PGMASCLIB).so + +lib$(PGMASCLIB).a: $(LIBOBJS) + # -rm -f $@ + $(AR) cru $@ $(LIBOBJS) + $(RANLIB) $@ + +$(LIBOBJS): Makefile + +# PHONY = don't look at file clean, -rm = start rm and ignore errors +.PHONY : clean proper install uninstall +install: all + #$(INSTALL) -d $(DESTDIR)$(bindir) $(DESTDIR)$(libdir) $(DESTDIR)$(includedir) + $(INSTALL) -d $(DESTDIR)$(bindir) + $(INSTALL) ../bin/$(PROGRAM) $(DESTDIR)$(bindir) + $(INSTALL) ../bin/gocr.tcl $(DESTDIR)$(bindir) # better X11/bin? + if test -f lib$(PGMASCLIB).a; then\ + $(INSTALL) lib$(PGMASCLIB).a $(DESTDIR)$(libdir);\ + $(INSTALL) lib$(PGMASCLIB).0.48.so $(DESTDIR)$(libdir);\ + $(INSTALL) lib$(PGMASCLIB).so $(DESTDIR)$(libdir);\ + fi + # ToDo: not sure that the link will be installed correctly + #$(INSTALL) $(INCLUDEFILES) $(DESTDIR)$(includedir) + +# directories are not removed +uninstall: + -rm -f $(DESTDIR)$(bindir)/$(PROGRAM) + -rm -f $(DESTDIR)$(bindir)/gocr.tcl + -rm -f $(DESTDIR)$(libdir)/lib$(PGMASCLIB).a + -rm -f $(DESTDIR)$(libdir)/lib$(PGMASCLIB).0.48.so + -rm -f $(DESTDIR)$(libdir)/lib$(PGMASCLIB).so + # ToDo: set to old version.so ? + #for X in $(INCLUDEFILES); do rm -f $(DESTDIR)$(includedir)/$$X; done + +clean: + -rm -f *.o *~ + +proper: clean + -rm -f gocr libPgm2asc.* + -rm -f gocr + diff --git a/3rdparty/gocr-0.48/src/Makefile.in b/3rdparty/gocr-0.48/src/Makefile.in new file mode 100644 index 0000000..a029a74 --- /dev/null +++ b/3rdparty/gocr-0.48/src/Makefile.in @@ -0,0 +1,132 @@ +# +# Makefile for ./src path, used by configure +# + +EXEEXT = @EXEEXT@ +PROGRAM = gocr$(EXEEXT) +# lib removed for simplification (v0.46) +# but Igor from OSRA an optical chemical structure recognition software +# wants it (v0.47 Mar09) +PGMASCLIB = Pgm2asc +#LIBPGMASCLIB = lib$(PGMASCLIB).a +# ToDo: need a better pgm2asc.h for lib users +#INCLUDEFILES = gocr.h +# avoid german compiler messages +LANG=C + +LIBOBJS=pgm2asc.o \ + box.o \ + database.o \ + detect.o \ + barcode.o \ + lines.o \ + list.o \ + ocr0.o \ + ocr0n.o \ + ocr1.o \ + otsu.o \ + output.o \ + pixel.o \ + unicode.o \ + remove.o \ + pnm.o \ + pcx.o \ + progress.o \ + job.o + +# these two lines are for cross-compiling, not tested +#srcdir = @srcdir@ +#VPATH = @srcdir@ +bindir = @bindir@ +# lib removed for simplification +#libdir = @libdir@ +#includedir = @includedir@ + +CC=@CC@ +# lib removed for simplification +# ar,ranlib detection removed from configure (simplicity) +# but needed by some developpers (linux only) for for (make libs) +# RANLIB = @RANLIB@ +# AR = @AR@ +RANLIB = ranlib +AR = ar +INSTALL=@INSTALL@ +# shell is needed for OS/2 to let if test -r $(PROGRAM) ... work +SHELL=@SHELL@ + +DEFS=@DEFS@ +CPPFLAGS=@CPPFLAGS@ +# to see the config.h +CFLAGS=@CFLAGS@ $(CPPFLAGS) -I../include $(DEFS) +LDFLAGS=@LDFLAGS@ +LIBS=@LIBS@ +DESTDIR=@prefix@ + +.SUFFIXES: .s .o .c .h +# do not look for files if help (etc) is given +.PHONY : doc clean install libs default + +.c.o: gocr.h pgm2asc.h ../include/config.h + $(CC) $(CFLAGS) -c -o $*.o $< + +default: all + +# all: $(PROGRAM) lib$(PGMASCLIB).a +all: $(PROGRAM) + +gocr.o: gocr.h Makefile ../include/version.h + +.c.h: + +#$(PROGRAM): lib$(PGMASCLIB).a gocr.o +$(PROGRAM): $(LIBOBJS) gocr.o + # make it conform to ld --as-needed + #$(CC) -o $@ $(LDFLAGS) gocr.o ./lib$(PGMASCLIB).a $(LIBS) + $(CC) -o $@ $(LDFLAGS) gocr.o $(LIBOBJS) $(LIBS) + if test -r $(PROGRAM); then cp $@ ../bin; fi + +libs: lib$(PGMASCLIB).a lib$(PGMASCLIB).@PACKAGE_VERSION@.so + +lib$(PGMASCLIB).@PACKAGE_VERSION@.so: $(LIBOBJS) + $(CC) -fPIC -shared -Wl,-h$@ -o $@ $(LIBOBJS) + -ln -s $@ lib$(PGMASCLIB).so + +lib$(PGMASCLIB).a: $(LIBOBJS) + # -rm -f $@ + $(AR) cru $@ $(LIBOBJS) + $(RANLIB) $@ + +$(LIBOBJS): Makefile + +# PHONY = don't look at file clean, -rm = start rm and ignore errors +.PHONY : clean proper install uninstall +install: all + #$(INSTALL) -d $(DESTDIR)$(bindir) $(DESTDIR)$(libdir) $(DESTDIR)$(includedir) + $(INSTALL) -d $(DESTDIR)$(bindir) + $(INSTALL) ../bin/$(PROGRAM) $(DESTDIR)$(bindir) + $(INSTALL) ../bin/gocr.tcl $(DESTDIR)$(bindir) # better X11/bin? + if test -f lib$(PGMASCLIB).a; then\ + $(INSTALL) lib$(PGMASCLIB).a $(DESTDIR)$(libdir);\ + $(INSTALL) lib$(PGMASCLIB).@PACKAGE_VERSION@.so $(DESTDIR)$(libdir);\ + $(INSTALL) lib$(PGMASCLIB).so $(DESTDIR)$(libdir);\ + fi + # ToDo: not sure that the link will be installed correctly + #$(INSTALL) $(INCLUDEFILES) $(DESTDIR)$(includedir) + +# directories are not removed +uninstall: + -rm -f $(DESTDIR)$(bindir)/$(PROGRAM) + -rm -f $(DESTDIR)$(bindir)/gocr.tcl + -rm -f $(DESTDIR)$(libdir)/lib$(PGMASCLIB).a + -rm -f $(DESTDIR)$(libdir)/lib$(PGMASCLIB).@PACKAGE_VERSION@.so + -rm -f $(DESTDIR)$(libdir)/lib$(PGMASCLIB).so + # ToDo: set to old version.so ? + #for X in $(INCLUDEFILES); do rm -f $(DESTDIR)$(includedir)/$$X; done + +clean: + -rm -f *.o *~ + +proper: clean + -rm -f gocr libPgm2asc.* + -rm -f gocr + diff --git a/3rdparty/gocr-0.48/src/amiga.h b/3rdparty/gocr-0.48/src/amiga.h new file mode 100644 index 0000000..794b21d --- /dev/null +++ b/3rdparty/gocr-0.48/src/amiga.h @@ -0,0 +1,31 @@ +/* + this file was suggested by Uffe Holst Jun05,2000 + to compile gocr using SAS/C under AmigaOS + + uhc@post6.tele.dk + + SAS/C propably does not support ANSI C++, therefore this changes + + I am a little bit confused about using declaration and + macro definition of abs(). I think that should not be necessary. + Tell me, if you have an Amiga and you can give answer + to the following questions. + + Joerg Schulenburg, see README for EMAIL-address + + */ + +#ifdef _AMIGA +#ifdef __SASC +#if 0 +#include /* may be this can be removed ??? */ +#include /* may be this can be removed ??? */ +extern int abs(int); /* may be this can be removed ??? */ +#endif +#ifndef abs +#define abs(i) ((i) < 0 ? -(i) : (i)) +#endif +#endif +#endif + + diff --git a/3rdparty/gocr-0.48/src/barcode.c b/3rdparty/gocr-0.48/src/barcode.c new file mode 100644 index 0000000..8d30bea --- /dev/null +++ b/3rdparty/gocr-0.48/src/barcode.c @@ -0,0 +1,846 @@ +/* +This is a Optical-Character-Recognition program +Copyright (C) 2000-2009 Joerg Schulenburg + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + see README for email address + + ToDo: + - transform special xml bar code symbols (<>&) to xml symbols (<>&) + +*/ + +#include +#include +#include +/* #include -- we do not want unnecessary dependencies */ +#include "pgm2asc.h" +#include "gocr.h" +#include "pnm.h" + +#ifndef DO_DEBUG /* can be defined outside (configure --with-debug) */ +#define DO_DEBUG 0 /* 0 is the default */ +#endif + +#undef g_debug +#if DO_DEBUG +# define g_debug(a) if (JOB->cfg.verbose&1) { a } +#else +# define g_debug(a) +#endif + +/* + detect barcode and add a XML-string to the box (obj-pointer, ToDo) + ToDo: barcode-output stderr->stdout +*/ + +double sqr(double x) { return(x*x); } + +/* ----------------------------- code128 ---------------------------- * + * "BSBSBS", B=Bar, S=Space, better using 2*6=12bit-integer? */ +#define Num128 107 +const char *code128[Num128+1]={ /* can be generated by an algorithm? */ +/* 00 */"212222","222122","222221","121223","121322","131222","122213","122312", +/* 08 */"132212","221213","221312","231212","112232","122132","122231","113222", +/* 16 */"123122","123221","223211","221132","221231","213212","223112","312131", +/* 24 */"311222","321122","321221","312212","322112","322211","212123","212321", +/* 32 */"232121","111323","131123","131321","112313","132113","132311","211313", +/* 40 */"231113","231311","112133","112331","132131","113123","113321","133121", +/* 48 */"313121","211331","231131","213113","213311","213131","311123","311321", +/* 56 */"331121","312113","312311","332111","314111","221411","431111","111224", +/* 64 */"111422","121124","121421","141122","141221","112214","112412","122114", +/* 72 */"122411","142112","142211","241211","221114","413111","241112","134111", +/* 80 */"111242","121142","121241","114212","124112","124211","411212","421112", +/* 88 */"421211","212141","214121","412121","111143","111341","131141","114113", +/* 96 */"114311","411113","411311","113141","114131","311141","411131","211412", +/*104 */"211214","211232","2331112","???"}; + +/* + code128: see code128.tex by Petr Olsak (108 codes) + quiet_zone: size=10 (before and after code128) + num_bars=3*(start+chars[N]+crc+stop)+1 + B=bar S=space char=BSBSBS (size=11), stop=BSBSBSB (size=11+2) + Width: Bar,Space=1,[2,3,4] char=11 code=11*(N+3)+2 sumB=even,sumS=odd + startA="211412"=103 startB="211214"=104 startC="211232"=105(2dec_digits) + mode/code 0..95 96 97 98 99 100 101 102 103 104 105 106 + 1=A x20-x5f,0-x20 F3 F2 uB mC mB F4 F1 ^A ^B ^C $ + 2=B x20-x7f F3 F2 uA mC F4 mA F1 ^A ^B ^C $ + 3=C "00"-"95" "96" "97" "98" "99" mB mA F1 ^A ^B ^C $ + uA,uB: switch mode for next char, mA,mB: switch mode permanently + crc=(start+1*char1+2*char2+3*char3+...+N*charN) mod 103 + $=stop="2331112"=106 (4bars, with=13) => start/end==211 + return num of chars or string + + size B+W even-variants odd-variants num_codes + 11 = 8+3 = (1+3+4,2+2+4,2+3+3)+(1+1+1) => (6+3+3)*(1) = 12 + = 6+5 = (1+1+4,1+2+3,2+2+2)+(1+1+3,1+2+2) => (3+6+1)*(3+3) = 60 + = 4+7 = (1+1+2)+(1+2+4,1+3+3,2+2+3) => (3)*(6+3+3) = 36 + sum = 108 + */ + /* example: barcode -E -e 128c -b 1434600120000884 >a.eps */ + /* example: barcode -E -e 128b -b 14Test41 >a.eps */ + /* example: barcode -E -e 128raw -b 105 17 14 30 >a.eps */ + +char *decode_code128(int *wb, int num_bars){ + int i, w, i1, i2, i3=0, i4, i5=0, crc, mode=1; + double dww, dw, err, min_err; char cc, *buf; + char *result=NULL; /* malloc and store the result */ + + for(w=i=0;i<2*num_bars-1;i++) w+=wb[i]; /* summ all bars and spaces */ + + /* test code128 characteristics, ToDo: look for correct start/stop 211 seq. */ + if ((num_bars-1)%3!=0 || num_bars<10 || w<11*(num_bars-1)/3+2) + return 0; + g_debug(fprintf(stderr," code128 b%d s%d b%d\n",wb[0],wb[1],wb[2]);) + if (3*wb[0]<4* wb[1] + || 3*wb[0]<4* wb[2] + || 4*wb[0]<3*(wb[1]+wb[2]) + || 3*wb[0]>4*(wb[1]+wb[2])) return 0; /* 211 */ + dw=3.0*w/((num_bars-1)*11+6); + /* get enough memory for all digits in longest mode C */ + buf =(char *) malloc( (num_bars-7)/3*2+1); if (!buf) return result; + result=(char *) malloc(256+(num_bars-7)/3*2+1); + + dww=crc=0; + for(i4=i1=0;i1<(num_bars-1)/3;i1++) { + for(min_err=1e8,i3=Num128,i5=0;i5102 && i3<106) mode=i3-103+1; crc=i3; } /* start */ + if(i1>0 && i1<(num_bars-1)/3-2){ + crc+=i3*(i1); cc=0; /* first * 1 + second * 2 + third * 3 ... */ + i5=((mode>3)?mode>>2:mode&3); mode&=3; /* mode can be modified now */ + switch (i5) { /* mode=1..3=modeA..modeC */ + case 1: if (i3>=64 && i3<96) cc=i3-64; /* modeA: x20-x5f,0-x20 */ + else cc=i3+32; + if (i3==101) mode=1; /* switch to mode A */ + if (i3== 99) mode=3; /* switch to mode C */ + if (i3== 98) mode|=2<<2; /* shift to mode B */ + break; + case 2: cc=i3+32; /* modeB: x20-x7f */ + if (i3==100) mode=2; /* switch to mode B */ + if (i3== 99) mode=3; /* switch to mode C */ + if (i3== 98) mode|=1<<2; /* shift to mode A */ + break; + case 3: + if (i3==101) mode=1; /* switch to mode A */ + if (i3==100) mode=2; /* switch to mode B */ + } + if (i5==3) { buf[i4]='0'+i3/10; i4++; + buf[i4]='0'+i3%10; i4++; } /* modeC: two digits */ + else { + if (cc>=0x20 && i3<=0x7f) { buf[i4]=cc; i4++; } /* modeA+B: one digit */ + if (cc>=0 && cc< 0x20) { buf[i4]='^'; i4++; + buf[i4]=cc+'@'; i4++; } + } + } + if(i1==(num_bars-1)/3-2){ crc=(crc+103-i3)%103; } + if(i1==(num_bars-1)/3-1){ if(i3!=106) i3=-1; } /* stop code */ + mode &= 3; /* remove shift */ + } + else fprintf(stderr," %s=%02d? ",buf,i5); + } + buf[i4]=0; /* end of string */ + if (result) + sprintf(result,"", + i4,buf,crc,dww/((num_bars-1))); + free(buf); + return result; +} + +/* -------------------------------------------------------------------- UPC + EAN 13 (UPC,(1+6+1+6+1)*2bars,size=3+6*7+5+6*7+3=95) + EAN 8 (UPC,(1+4+1+4+1)*2bars,size=3+4*7+5+4*7+3=67) + UPC: (10 codes) + BSB SBSB^n SBSBS BSBS^n BSB + bsb ...... sbsbs ...... bsb + 111 ...... 11111 ...... 111 + num_bars=2*(2*6+3) middle=SBSBS=11111 right/left=BSB=111="101" + char: left=SBSB right=BSBS (size=7) only_dec_digits + SS+BB = (S+S) + (B+B) => BB:SS = 5:2 or 3:4 + size ev+odd even + odd => variants + 7 = 2 + 5 = (1+1) + (1+4,2+3) => (1)*(2+2) = 4 codes + = 4 + 3 = (1+3,2+2) + (1+3) => (2+1)*(2) = 6 codes += 10 codes + ToDo: make it more robust + - return error as mean deviation + * -------------------------------------------------------------------- */ + /* example: barcode -E -e upc -b 12345678901 >a.eps # ok */ + /* example: barcode -E -e ean -b 123456789012 >a.eps # ok */ +#define NumUPC 20 +const char *codeUPC[NumUPC+1]={ /* 0..9, first n = SBSB, last n = BSBS */ + "3211","2221","2122","1411","1132", /* 0,1,2,3,4 normal (+0bit) */ + "1231","1114","1312","1213","3112", /* 5,6,7,8,9 */ + "1123","1222","2212","1141","2311", /* 0,1,2,3,4 mirrored (+1bit) */ + "1321","4111","2131","3121","2113", /* 5,6,7,8,9 */ + "????"}; /* not found */ + +char *decode_UPC(int *wb, int num_bars){ /* ToDo: char *dest, int len */ + int i, w, i1, i2, i3, i4, i5, crc, mirrored, ean; + double err, min_err, dw, dww=0.0; char digit; + char *result=NULL, *buf=NULL; /* malloc and store the result */ + for(w=i=0;i<2*num_bars-1;i++) w+=wb[i]; + + dw=2.0*w/((num_bars-6)*7+2*11); /* or min(wb[]) */ + crc=0; + if ((num_bars)%2!=0 || num_bars<10 || w<7*(num_bars-6)/2+11 + || ((num_bars-6)/2)%2!=0) return 0; /* should be balanced */ + /* check front BSB, middle SBSBS and end BSB */ + dww=0; + for (i=0;i<3;i++) { dww=sqr(wb[i ]/dw-1); if (dww>0.4) return 0; } + for (i=0;i<5;i++) { dww=sqr(wb[i+ num_bars-3]/dw-1); if (dww>0.4) return 0; } + for (i=0;i<3;i++) { dww=sqr(wb[i+2*num_bars-4]/dw-1); if (dww>0.4) return 0; } + buf =(char *)malloc( (num_bars-6)/2+1); if (!buf) return result; + result=(char *)malloc(256+(num_bars-6)/2+1); + + for(ean=i5=0,i1=3;i1<2*num_bars-4;i1+=4) { /* each digit (2bars+2spaces) */ + if (i1==num_bars-3) { i1++; continue; } /* skip middle sync SBSBS */ + for (i4=NumUPC,mirrored=0,digit='?',min_err=16e8,i2=0;i2 0yyyyy */ + switch (ean) { + case 11: ean=1; break; + case 13: ean=2; break; + case 14: ean=3; break; + case 19: ean=4; break; + case 25: ean=5; break; + case 28: ean=6; break; + case 21: ean=7; break; + case 22: ean=8; break; + case 26: ean=9; break; + default: ean=0; /* no or invalid EAN digit or UPC-extension */ + } crc+=ean*1; + /* ToDo: fix possible buffer OVL, complement crc */ + buf[i5]=0; + if (result) + sprintf(result,"", + i5+1,ean,buf,(10-crc%10)%10,dww/((num_bars-6)*2)); + free(buf); + return result; +} + + /* EAN/UPC add-on is either 2 or 5 digits. It always starts with a + * guard bar BSB, followed by ([digit + SB] * (N-1)) + digit. Digit is + * SBSB. Two digit add-on's have 7 bars, and 5 digit add ons have 16. + */ +char *decode_UPC_addon(int *wb, int num_bars){ /* ToDo: char *dest, int len */ + int i, w, i1, i2, i3, i4, i5, digits=num_bars/3; + double err, min_err, dw, dww=0.0; char digit; + char *result=NULL, *buf=NULL; /* malloc and store the result */ + if (num_bars!=7 && num_bars!=16) + return 0; + for(w=i=0;i<2*num_bars-1;i++) w+=wb[i]; + + dw=1.0*w/(digits*7+4 + (digits-1)*2); + /* check front BSB, and delineators SB */ + dww=0; + for (i=0;i<2;i++) { dww=sqr(wb[i]/dw-1); if (dww>0.4) return 0; } + dww=sqr(wb[i]*0.5/dw-1); if (dww>0.4) return 0; + for (i=1;i 0.4) return 0; + } + } + buf =(char *)malloc( digits+1); if (!buf) return result; + result=(char *)malloc(256+digits+1); + + for(i5=0,i1=3;i1<2*num_bars-1;i1+=6) { /* each digit (2bars+2spaces) */ + for (i4=NumUPC,digit='?',min_err=16e8,i2=0;i2", + i5, buf, dww/((num_bars-6)*2)); + free(buf); + return result; +} + + +/* --------------------------------------------------------- * + * code 3 of 9, 3 thick of 9 bars + * BSBSBSBSB size=7+3*aw aw=2(3), sumS/sumB=2/1? + * two widths: size=1 or size=2or3, digit_width=13(16) + * 5 bars and 4(+1) spaces per digit, last space is not used + * with 2 (or 0) wide bars, 1 (or 3) wide spaces per digit + * => 3 of 9 => max=9*8*7=504 + * evenBB=(0of5)+(2of5) oddSS=(1of4)+(3of4) max=44 + * ToDo: better code -...-.-.. as 046 or 083 (even,even,odd) + */ +#define Num39 (40+4) /* (3of9)=(2of5)(1of4)+(0of5)(3of4), (2of5)(.-..)=0..9 */ +const char *code39= /* rearranged to BBBBBSSSS (bars,spaces) */ + "0..--..-.." +"1-...-.-..""2.-..-.-..""3--....-..""4..-.-.-..""5-.-...-.." +"6.--...-..""7...--.-..""8-..-..-..""9.-.-..-.." +"A-...-..-.""B.-..-..-.""C--.....-.""D..-.-..-.""E-.-....-." +"F.--....-.""G...--..-.""H-..-...-.""I.-.-...-.""J..--...-." +"K-...-...-""L.-..-...-""M--......-""N..-.-...-""O-.-.....-" +"P.--.....-""Q...--...-""R-..-....-""S.-.-....-""T..--....-" +"U-...--...""V.-..--...""W--...-...""X..-.--...""Y-.-..-..." +"Z.--..-...""-...---..."".-..-.-..."" .-.-.-...""*..--.-..." +/* (0of5)(3of4)=(.....)(3of4) store only 3of4? */ +"$.....---.""/.....--.-""+.....-.--""%......---" +"?xxxxxxxxx"; + +/* example: barcode -E -e 39 -b 123abc | gs -sDEVICE=pnggray -r100 */ + +/* return index[] according to sorted values[], big first */ +void sort(int *value, int *idx, int len){ + int i,j; + for (j=0;jdw*2 || wb[ 1]<=dw*2 || wb[ 2]> dw*2) return 0; + if (wb[i-0]>dw*2 || wb[i-1]> dw*2 || wb[i-2]<=dw*2) return 0; +#endif + g_debug(fprintf(stderr," code39 base=%.3f chars=%2d\n ",dw,(num_bars)/5);) + buf =(char *)malloc( 1+(num_bars)/5); if (!buf) return result; + result=(char *)malloc(256+(num_bars)/5); + + for(i5=i1=0;i1<2*num_bars-3;i1+=10) { + /* ToDo: looking for three widest bars/gaps, 0 or 2 bars, 1 or 3 spaces */ + sort(wb+i1,idx,9); + for(err=0,i3=3;i3<9;i3++) // estimate error ?? + err+=sqr(wb[i1+idx[i3]]/dw-1.0); /* narrow=1, wide=2..3 */ + dww+=err; + for(i3=0;i30 && i5", + i5,buf,code39[(crc%44)*10],dww/((num_bars/5)*6)); + free(buf); + return result; +} + +/* code interleaved 2 of 5 numbers-only (10 bars+spaces = 2 decimal digits) + B B B B B <= digit1 bars=1,3,5,... + S S S S S <= digit2 spaces=2,4,6,... + 1122447700 <= weight digit=sum(bit*weight)%11 (except 7+4=11 means 0) + N = narrow bar, W = wide bar, n = narrow space, w = wide space + "NnNn"+interleaved+"WnN" (odd num W, even num w) + 18 digits/inch + see http://www.barcode-1.net/i25code.html (Jun 2009) + minN=0.19mm=0.0075inch + sizeN>0.02inch: sizeW=2..3*sizeN (but constant) + sizeN<0.02inch: sizeW=2.2..3*sizeN + quite zones 10*sizeN or 0.25inch + heigh=max(0.15*symbol_length,0.25inch) + Len = (numChars*(2*(sizeW/sizeN)+3) + 6 + (sizeW/sizeN)) * sizeN + */ +#define Num25 10 +const char *code25= /* is the code sorted randomly? */ +"1-...-2.-..-3--...4..-.-5-.-..6.--..7...--8-..-.9.-.-.0..--."; + +/* example: barcode -E -e i25 -b 123456 >a.eps */ + +/* + add i25, patch by: Chris Lee, 13 Jul 2009 + ToDo: check correctness + */ +char *decode_i25(int *wb, int num_bars){ /* ToDo: char *dest, int len */ + int i, w, i1, i3, i5, crc, idx[7], pos; + double dw, dww, err; char *buf; + char *result=NULL; /* malloc and store the result */ + + int *wb_temp; + int *wb_check; + int code_chars; + + if ((num_bars)%5!=4) return 0; /* chars*5bars + 4 start/stop bars */ + code_chars = ((num_bars - 4) / 5) * 2; +// dw=w*1.0/(9*(num_bars/3)); /* threshold = 1.5..2 */ + + wb_temp = (int *)malloc((code_chars * 5)*sizeof(int)); if (!wb_temp) { return NULL; } + wb_check = (int *)malloc( 7 *sizeof(int)); if (!wb_check) { return NULL; } + + for (i=0; i<(code_chars * 5)+7; i++) { + if (i<4) { wb_check[i] = wb[i]; } /* start sequence NnNn... */ + else if (i > ((code_chars*5)+3)) { /* end sequence ...WnN */ + wb_check[(int)(i-(code_chars*5))] = wb[i]; } + else { + pos = i - 4; + /* reinterleave 0,5,1,6,2,7,3,8,4,9,... to 0,1,2,3,4,5,6,7,8,9,... */ + // pos = (int)(10*(int)(pos/10) + 1.0*(pos%10)/2.0 + 4.5*(pos%2)); + pos = 10*(pos/10) + (pos%10)/2 + 5*(pos&1); + wb_temp[pos] = wb[i]; + } + } + wb = wb_temp; + + /* check start / finish codes */ + sort(wb_check,idx,7); + if (idx[0] != 4 /* widest bar W must be the 4th = 1st of end */ + || wb_check[idx[0]]==wb_check[idx[1]]) { /* exact 1 widest */ + free(wb_temp); + free(wb_check); + g_debug(fprintf(stderr," need exact 1 widest at start of end, abort\n");) + return 0; + } + + for(w=i=0; i<5*code_chars;i++ ) w+=wb[i]; /* summ width */ + dw=w*1.0/(16*(num_bars/5)); /* threshold = 1.5..2 */ + /* whats best and most rigorosely for dw=threshold_width? + * - (1.5..2)*mean_width of every 5th space + * - (1.5..2)*summ(5bars+5spaces)/(13..16) + * - 3/4*summ(three thickest)/3 + */ + dww=crc=0; /* error and checksum (not supported yet) */ +#if 0 /* should we exclude any non-standard code39? */ + /* check for correct start and end symbol * or NwNnWnWnN Narrow+Wide */ + i=2*num_bars-2; + if (wb[ 0]>dw*2 || wb[ 1]<=dw*2 || wb[ 2]> dw*2) return 0; + if (wb[i-0]>dw*2 || wb[i-1]> dw*2 || wb[i-2]<=dw*2) return 0; +#endif + g_debug(fprintf(stderr," code25 base=%.3f chars=%2d\n ",dw,code_chars);) + buf =malloc( code_chars); if (!buf) return result; + result=malloc(256+code_chars); + + for(i5=i1=0;i1<5*code_chars;i1+=5) { + /* ToDo: looking for three widest bars/gaps */ + sort(wb+i1,idx,5); + for(err=0,i3=2;i3<5;i3++) + err+=sqr(wb[i1+idx[i3]]/dw-1.0); /* narrow=1, wide=2..3 */ + dww+=err; + for(i3=0;i30 && i5 3th widest */ + if (wb[i1+idx[1]]==wb[i1+idx[2]]) { + free(buf); free(result); + g_debug(fprintf(stderr," need exact 2 widest, abort\n");) + return 0; + } + } + } + buf[i5]=0; + if (result) // ToDo: fix CRC (not defined?) + sprintf(result,"", i5,buf,code25[(crc%10)*10],dww/((num_bars/5)*6)); + + free(wb_temp); + free(wb_check); + free(buf); + return result; +} + +/* code codabar, numbers only, 4 bars per char (1*wide bar, 1*wide space) + robust code (dot-matrix printer) + characters have same length (distance between 1st bar to 4th space) + ??? codeproject: 6*n+2*w=12 or 5*n+3*w=14 + ??? suchymips.de: + variant 1: 18 different bar widths (Monarch code) + variant 2: 2 different bar widths (Codabar Matrix or ABC-Codabar) + 9..11 digits/inch, N=narrow bar, W=wide bar, n=narrow space, w=wide space + see http://www.barcodeman.com/info/codabar.php (Jul 2009) + minN=0.17mm=0.0065inch, 11 digits/inch = 0.0909 = 14*minN + 2of7 + extensions + extensions: 1 wide bar + 2 wide spaces (no narrow space between 2 wide) + 4 start/stop sets = a/t, b/m, c/ *, d/e + - mean wide = thickest of 4 bars + - mean narrow = thinnest of 4 bars, thinnest of 3 (4) spaces or every 4th + wiki-sample: a31117013206375b (wide spaces between chars) schraeg! + barcode: t1234567t n=N=1 w=W=3 c=12,14 (not const.) + */ +const char *code27= /* 4bars+3spaces, 12+12 chars */ +// 0..11: 3 nbar + 1 wbar + 2 nspace + 1 wspace +"0.....--1....--.2...-..-3--.....4..-..-." +"5-....-.6.-....-7.-..-..8.--....9-..-...-...--..$..--..." +// 12..15: 1 nbar + 3 wbar + 3 nspace + 0 wspace +":-...-.-/-.-...-.-.-.-..+..-.-.-" +// 16..23: 3 nbar + 1 wbar + 1 nspace + 2 wspace +"a..--.-.b.-.-..-c...-.--d...---.t..--.-.n.-.-..-*...-.--e...---." +// EOS +"????????"; + +/* example: barcode -E -e cbr -b 123456 >a.eps */ + +char *decode_27(int *wb, int num_bars){ /* ToDo: char *dest, int len */ + int i, i1, i2, i3, i4, i5, b_idx[4], s_idx[3], b_w[4], s_w[3], + max_wdiff, err=0; + // double dw, err; + char *buf, char27[8]="......"; + char *result=NULL; /* malloc and store the result */ + + int code_chars; +#if 0 // ToDo: verifications nb_max < wb_min etc. + int nb_min=99999, nb_max=0, nb_sum=0, nb_num=0; // narrow bar + int ns_min=99999, ns_max=0, ns_sum=0, ns_num=0; // narrow space + int wb_min=99999, wb_max=0, wb_sum=0, wb_num=0; // wide bar + int ws_min=99999, ws_max=0, ws_sum=0, ws_num=0; // wide space +#endif + + if ((num_bars)%4!=0) return 0; /* chars*4bars */ + code_chars = num_bars / 4; +// dw=w*1.0/(9*(num_bars/3)); /* threshold = 1.5..2 */ + + g_debug(fprintf(stderr," codabar chars= %d\n ", code_chars);) + buf =malloc( code_chars); if (!buf) return result; + result=malloc(256+code_chars); + i5=0; // index output string + for (i=0; i< code_chars; i++) { + b_w[0]=wb[i*8+0]; // 1st bar + b_w[1]=wb[i*8+2]; // 2nd bar + b_w[2]=wb[i*8+4]; // 3th bar + b_w[3]=wb[i*8+6]; // 4th bar + s_w[0]=wb[i*8+1]; // 1st space + s_w[1]=wb[i*8+3]; // 2nd space + s_w[2]=wb[i*8+5]; // 3th space + sort(b_w,b_idx,4); /* idx[0] points to widest bar */ + sort(s_w,s_idx,3); /* idx[0] points to widest space */ + g_debug(for(i3=0;i3<7;i3++)fprintf(stderr,"%02d ",wb[8*i+i3]);) + if (b_w[b_idx[0]]==b_w[b_idx[3]]) { err=__LINE__; break; } // min. 1 wide + narrow + // search max. diff between sorted widths + i2=b_w[b_idx[0]]-b_w[b_idx[1]]; i1=1; max_wdiff=i2; // diff widest - 2nd wides + i2=b_w[b_idx[1]]-b_w[b_idx[2]]; if (i2>max_wdiff) { i1=2; max_wdiff=i2; } + i2=b_w[b_idx[2]]-b_w[b_idx[3]]; if (i2>max_wdiff) { i1=3; max_wdiff=i2; } + if (i1==2) { err=__LINE__; break; } // 2 wide + 2 narrow bars not allowed + for (i3=0;i3<7;i3++) char27[i3]='.'; // reset char + if (i1==1) { // 1 wide bar (1 or 2 wspaces) + if (s_w[s_idx[0]]-s_w[s_idx[1]] + >s_w[s_idx[1]]-s_w[s_idx[2]]) { // 1 wspace + char27[2*b_idx[0]+0]='-'; + char27[2*s_idx[0]+1]='-'; + } else { // assume 2 wspaces + if (s_w[s_idx[2]]==s_w[s_idx[1]]) { err=__LINE__; break; } + char27[2*b_idx[0]+0]='-'; + char27[2*s_idx[0]+1]='-'; + char27[2*s_idx[1]+1]='-'; + } + } else { // assume 3 wbars + 0 wspaces + char27[2*s_idx[0]+0]='-'; + char27[2*s_idx[1]+0]='-'; + char27[2*s_idx[2]+0]='-'; + } + for(i4=24,i3=0;i3<24;i3++) { + if (code27[8*i3+1]==char27[0] + && code27[8*i3+2]==char27[1] + && code27[8*i3+3]==char27[2] + && code27[8*i3+4]==char27[3] + && code27[8*i3+5]==char27[4] + && code27[8*i3+6]==char27[5] + && code27[8*i3+7]==char27[6]) { + i4=i3; buf[i5++]=code27[8*i3]; break; } + } + g_debug(fprintf(stderr," %s c27= %c\n ", char27, ((i5)?buf[i5-1]:'?'));) + if (i4==24) { err=__LINE__; break; } + } // each char + if (i>=code_chars) { // else: inconsistent char + g_debug(fprintf(stderr," code27 base=%.3f chars=%2d\n ",0.0,code_chars);) + } else { + g_debug(fprintf(stderr," error %d at char %d, abort\n", err, i);) + free(result); result=0; + } + buf[i5]=0; + if (result) // ToDo: fix CRC (not defined?) + sprintf(result,"", i5,buf,'?',0.0); + + free(buf); + return result; // free at parent! +} + + +/* + decode barcode + - check main characteristics (num bars, min+max width, etc.) + - detect code type + - the current algorithm measures the width of bars and spaces + called by detect_barcode() + ToDo: - like storing sequence of widths for 1D code + store array of bits for 2D matrix code and decode later + */ +char *decode_barcode(struct box *bb){ /* ToDo: char *dest, int len */ + int i, num_bars, yy, w, ww, dx, xx, cs=JOB->cfg.cs, *wb; + char *result=NULL; /* store the result */ + yy=(bb->y0+bb->y1)/2; + w=ww=bb->x1-bb->x0+1; + num_bars = num_cross(bb->x0,bb->x1,yy,yy,bb->p,JOB->cfg.cs); + if(JOB->cfg.verbose) + fprintf(stderr,"\n# ... detect bars=%3d w=%4d",num_bars,ww); + + /* store width of bars and spaces to buffer wb */ + wb=(int *)malloc(2*num_bars*sizeof(int)); if(!wb) return NULL; + xx=bb->x0; + xx-=loop(bb->p,xx,yy, 8,cs,1,LE); + xx+=loop(bb->p,xx,yy,ww,cs,0,RI); /* start with a bar! */ + for (i=0;i<2*num_bars;i++) { + dx=loop(bb->p,xx,yy,w,cs,1^(i&1),RI); + xx+=dx; + w-=dx; + wb[i]=dx; + } wb[2*num_bars-1]=0; + + /* ToDo: what about probability? if not unique + * - add argument char *result which can be modified or not, + * - or add box2? (would reuse of this code more difficult) + */ + /* test code128 characteristics, ToDo: look for correct start/stop 211 seq. */ + if ((num_bars-1)%3==0 && num_bars>=10 && ww>=11*(num_bars-1)/3+2){ + if (!result) result=decode_code128(wb,num_bars); + } + /* test UPC/EAN characteristics */ + if ((num_bars)%2==0 && num_bars>=8 && ww>=7*(num_bars-6)/2+11 + && ((num_bars-6)/2)%2==0){ /* should be balanced */ + if (!result) result=decode_UPC(wb,num_bars); + } + /* test UPC_addon by Michael van Rooyen, often on books */ + if (num_bars==7 || num_bars==16) + if (!result) result=decode_UPC_addon(wb,num_bars); + + /* test code39 characteristics */ + if ((num_bars)%5==0 && num_bars>14){ + if (!result) result=decode_39(wb,num_bars); + } + /* test i2of5 chartacteristics */ + if ((num_bars)%5==4 && num_bars>3) { + if (!result) result=decode_i25(wb,num_bars); + } + + /* test codabar chartacteristics */ + if ((num_bars)%4==0 && num_bars>3) { + if (!result) result=decode_27(wb,num_bars); + } + + free(wb); + return result; +} + +/* + * taking the list of boxes and search for groups of bars (1D-barcodes) + */ +int detect_barcode(job_t *job) +{ + int j=0, j2=0, bx0, by0, bx1, by1, bdx, bdy, bbx, rm, + x0, y0, dx, dy, cs, y, yl0, yl1, yr0, yr1; + struct box *box2, *box3; + + if(JOB->cfg.verbose) + fprintf(stderr,"# barcode.c detect_barcode "); + x0=y0=0; rm=0; dx=job->src.p.x; dy=job->src.p.y; cs=JOB->cfg.cs; + for_each_data(&(JOB->res.boxlist)) { + box2 = (struct box *)list_get_current(&(JOB->res.boxlist)); + /* detect width (bdx) and height (bdy) of possible bar */ + /* ToDo: better check for a line */ + bdx=box2->x1-box2->x0+1 /* substract correction for skewed bars */ + -loop(box2->p,box2->x1,(box2->y0+box2->y1)/2,box2->x1-box2->x0,cs,0,LE) + -loop(box2->p,box2->x0,(box2->y0+box2->y1)/2,box2->x1-box2->x0,cs,0,RI); + bdy=box2->y1-box2->y0+1; + if (box2->c == PICTURE || box2->c == UNKNOWN) + if (box2->y0 >= y0 && box2->y1 <= y0 + dy /* within frame? */ + && box2->x0 >= x0 && box2->x1 <= x0 + dx + && box2->y1 - box2->y0 > 19 /* min. length */ + && box2->y1 - box2->y0 > 8 * bdx + ) { /* a bar? */ + j=1; /* number of bars */ + bx0=box2->x0; bx1=box2->x1; /* initial values for barcode frame */ + by0=box2->y0; by1=box2->y1; + bbx=bx1-bx0+2; /* width of bar */ + /* this is for scans which are not exactly horizontal */ + yl0=yr0=by0; /* left and right upper bound */ + yl1=yr1=by1; /* left and right lower bound */ + /* --- iteratively take into account next nearest bar --- + * this is important, because bar-boxes are not in right order */ + for (j2=1;j2;) { + j2=0; + /* expand a frame around the potential barcode (bx0,by0,bx1,by1) */ + for_each_data(&(JOB->res.boxlist)) { + box3 = (struct box *)list_get_current(&(JOB->res.boxlist)); + /* bdy=box3->y1-box3->y0+1; */ + if (box2!=box3) + if (box3->c == PICTURE || box3->c == UNKNOWN) + if (box3->y0 >= y0 && box3->y1 <= y0 + dy /* within image */ + && box3->x0 >= x0 && box3->x1 <= x0 + dx + && box3->y1 - box3->y0 > 19 /* min. length */ + && box3->y1 - box3->y0 > 4 * (bdx) /* height > 4*width2 */ + && box3->x1 - box3->x0 < 4 * (bdy) /* width < height/4 = bar */ + && (( abs(box3->y0-by0)y1-by1)y0-yl0)y1-yl1)x0 <= bx0 ) + ||( abs(box3->y0-yr0)y1-yr1)x0 >= bx1 ) ) + && box3->x0 > bx0 - 12*bbx /* startspace=5...10 */ + && box3->x1 < bx1 + 12*bbx + && box3->x0 > bx0 - bdy/2 /* dont glue two barcodes together */ + && box3->x1 < bx1 + bdy/2 /* ex: ean13a.jpg */ + /* dont check bars which already within the frame twice ? */ + && ( box3->x1 > bx1 || box3->x0 < bx0 ) + ) { /* a bar? -> extend barcode frame only in x direction */ + /* take minimum of y to have valid barcode for all y */ + if (box3->x0x0; yl0=box3->y0; yl1=box3->y1; } + if (box3->x1>bx1) { bx1=box3->x1; yr0=box3->y0; yr1=box3->y1; } + if (4*(box3->y1-box3->y0)>3*(by1-by0)) { /* carefull reduce */ + if (box3->y0>by0) by0=box3->y0; /* ToDo: fix for non-horizontal */ + if (box3->y1y1; + } + j++; /* found a near bar and count to num bars */ + j2=1; /* continue searching (endless loop?) */ + } + } end_for_each(&(JOB->res.boxlist)); + } + /* j is the num of bars found above, some inner bars are not counted */ + /* ToDo: better iterative add next nearest bars from sorted list near bars? */ + if (j>5) { + char *code=0; + box2->c=PICTURE; /* BARCODE */ + box2->x0=bx0; box2->y0=by0; + box2->x1=bx1; box2->y1=by1; + /* ToDo: add pointer to decoded text */ + + y=(box2->y0+box2->y1)/2; + if (JOB->cfg.verbose){ + int nbars; + nbars=num_cross(box2->x0,box2->x1,y,y,box2->p,JOB->cfg.cs); + fprintf(stderr,"\n# barcode at %3d %3d size %3d %3d nbars %d (%d)", + bx0,by0,bx1-bx0+1,by1-by0+1,nbars,j); + if (j!=nbars) + fprintf(stderr,"\n# ... trouble: num_found_bars != num_cross"); + /* this is because some far bars are detected before near bars */ + } + /* transport the info to the gocr-output (development) */ + /* ToDo: decode and print/store barcode bars=j */ + code=decode_barcode(box2); /* ToDo: char *dest, int len */ + if (!code) { /* failed */ + code=(char *)malloc(128); + /* ToDo: analyze and output num_bars, width of bars etc. */ + if(code) strncpy(code,"",128); + } + if (JOB->cfg.verbose) + fprintf(stderr,"\n# ... decoded as: %s", code); + setas(box2,code,99); /* ToDo: set a better weight */ + free(code); + + /* remove inner boxes, only if sure!? (ToDo: use cfg.certainty) */ + for_each_data(&(JOB->res.boxlist)) { + box3 = (struct box *)list_get_current(&(JOB->res.boxlist)); + /* bdy=box3->y1-box3->y0+1; */ + if (box2!=box3) + if (box3->c == PICTURE || box3->c == UNKNOWN) + if ( abs(box3->y0-by0)y1-by1)x1 <= bx1 + && box3->x0 >= bx0 + ) { + rm++; /* count removed boxes */ + list_del(&(JOB->res.boxlist),box3); + free_box(box3); + } + } end_for_each(&(JOB->res.boxlist)); + if (JOB->cfg.verbose) + fprintf(stderr,"\n# ... removed boxes: %d", rm); + rm=0; + } + } + } end_for_each(&(JOB->res.boxlist)); + + /* recalculate averages without bars */ + JOB->res.numC=JOB->res.sumX=JOB->res.sumY=j2=0; + for_each_data(&(JOB->res.boxlist)) { + j2++; + box3 = (struct box *)list_get_current(&(JOB->res.boxlist)); + if (box3->c==PICTURE) continue; + JOB->res.numC++; /* count remaining boxes */ + JOB->res.sumX+=box3->x1-box3->x0+1; + JOB->res.sumY+=box3->y1-box3->y0+1; + } end_for_each(&(JOB->res.boxlist)); + if(JOB->cfg.verbose) + fprintf(stderr,"\n# ... boxes %d nC %d\n", + j2, JOB->res.numC); + + /* ToDo: detect DataMatrix = iec16022 + * search square of 2 lines and 2 dottet lines (first no rotation) + * output characteristics pixel size, bytes, code type, etc. + */ + + return 0; +} + diff --git a/3rdparty/gocr-0.48/src/barcode.c.orig b/3rdparty/gocr-0.48/src/barcode.c.orig new file mode 100644 index 0000000..0f8e99a --- /dev/null +++ b/3rdparty/gocr-0.48/src/barcode.c.orig @@ -0,0 +1,593 @@ +/* +This is a Optical-Character-Recognition program +Copyright (C) 2000-2008 Joerg Schulenburg + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + see README for email address + + ToDo: + - transform special xml bar code symbols (<>&) to xml symbols (<>&) + +*/ + +#include +#include +#include +#include "pgm2asc.h" +#include "gocr.h" +#include "pnm.h" + +#ifndef DO_DEBUG /* can be defined outside (configure --with-debug) */ +#define DO_DEBUG 0 /* 0 is the default */ +#endif + +#undef g_debug +#if DO_DEBUG +# define g_debug(a) a +#else +# define g_debug(a) +#endif + +/* + detect barcode and add a XML-string to the box (obj-pointer, ToDo) + ToDo: barcode-output stderr->stdout +*/ + +double sqr(double x) { return(x*x); } + +/* ----------------------------- code128 ---------------------------- * + * "BSBSBS", B=Bar, S=Space, better using 2*6=12bit-integer? */ +#define Num128 107 +const char *code128[Num128+1]={ /* can be generated by an algorithm? */ +/* 00 */"212222","222122","222221","121223","121322","131222","122213","122312", +/* 08 */"132212","221213","221312","231212","112232","122132","122231","113222", +/* 16 */"123122","123221","223211","221132","221231","213212","223112","312131", +/* 24 */"311222","321122","321221","312212","322112","322211","212123","212321", +/* 32 */"232121","111323","131123","131321","112313","132113","132311","211313", +/* 40 */"231113","231311","112133","112331","132131","113123","113321","133121", +/* 48 */"313121","211331","231131","213113","213311","213131","311123","311321", +/* 56 */"331121","312113","312311","332111","314111","221411","431111","111224", +/* 64 */"111422","121124","121421","141122","141221","112214","112412","122114", +/* 72 */"122411","142112","142211","241211","221114","413111","241112","134111", +/* 80 */"111242","121142","121241","114212","124112","124211","411212","421112", +/* 88 */"421211","212141","214121","412121","111143","111341","131141","114113", +/* 96 */"114311","411113","411311","113141","114131","311141","411131","211412", +/*104 */"211214","211232","2331112","???"}; + +/* + code128: see code128.tex by Petr Olsak (108 codes) + quiet_zone: size=10 (before and after code128) + num_bars=3*(start+chars[N]+crc+stop)+1 + B=bar S=space char=BSBSBS (size=11), stop=BSBSBSB (size=11+2) + Width: Bar,Space=1,[2,3,4] char=11 code=11*(N+3)+2 sumB=even,sumS=odd + startA="211412"=103 startB="211214"=104 startC="211232"=105(2dec_digits) + mode/code 0..95 96 97 98 99 100 101 102 103 104 105 106 + 1=A x20-x5f,0-x20 F3 F2 uB mC mB F4 F1 ^A ^B ^C $ + 2=B x20-x7f F3 F2 uA mC F4 mA F1 ^A ^B ^C $ + 3=C "00"-"95" "96" "97" "98" "99" mB mA F1 ^A ^B ^C $ + uA,uB: switch mode for next char, mA,mB: switch mode permanently + crc=(start+1*char1+2*char2+3*char3+...+N*charN) mod 103 + $=stop="2331112"=106 (4bars, with=13) => start/end==211 + return num of chars or string + + size B+W even-variants odd-variants num_codes + 11 = 8+3 = (1+3+4,2+2+4,2+3+3)+(1+1+1) => (6+3+3)*(1) = 12 + = 6+5 = (1+1+4,1+2+3,2+2+2)+(1+1+3,1+2+2) => (3+6+1)*(3+3) = 60 + = 4+7 = (1+1+2)+(1+2+4,1+3+3,2+2+3) => (3)*(6+3+3) = 36 + sum = 108 + */ + /* example: barcode -E -e 128c -b 1434600120000884 >a.eps */ + /* example: barcode -E -e 128b -b 14Test41 >a.eps */ + /* example: barcode -E -e 128raw -b 105 17 14 30 >a.eps */ + +char *decode_code128(int *wb, int num_bars){ + int i, w, i1, i2, i3=0, i4, i5=0, crc, mode=1; + double dww, dw, err, min_err; char cc, *buf; + char *result=NULL; /* malloc and store the result */ + + for(w=i=0;i<2*num_bars-1;i++) w+=wb[i]; /* summ all bars and spaces */ + + /* test code128 characteristics, ToDo: look for correct start/stop 211 seq. */ + if ((num_bars-1)%3!=0 || num_bars<10 || w<11*(num_bars-1)/3+2) + return 0; + g_debug(fprintf(stderr,"\n code128 b%d s%d b%d",wb[0],wb[1],wb[2]);) + if (3*wb[0]<4* wb[1] + || 3*wb[0]<4* wb[2] + || 4*wb[0]<3*(wb[1]+wb[2]) + || 3*wb[0]>4*(wb[1]+wb[2])) return 0; /* 211 */ + dw=3.0*w/((num_bars-1)*11+6); + /* get enough memory for all digits in longest mode C */ + buf =(char *) malloc( (num_bars-7)/3*2+1); if (!buf) return result; + result=(char *) malloc(256+(num_bars-7)/3*2+1); + + dww=crc=0; + for(i4=i1=0;i1<(num_bars-1)/3;i1++) { + for(min_err=1e8,i3=Num128,i5=0;i5102 && i3<106) mode=i3-103+1; crc=i3; } /* start */ + if(i1>0 && i1<(num_bars-1)/3-2){ + crc+=i3*(i1); cc=0; /* first * 1 + second * 2 + third * 3 ... */ + i5=((mode>3)?mode>>2:mode&3); mode&=3; /* mode can be modified now */ + switch (i5) { /* mode=1..3=modeA..modeC */ + case 1: if (i3>=64 && i3<96) cc=i3-64; /* modeA: x20-x5f,0-x20 */ + else cc=i3+32; + if (i3==101) mode=1; /* switch to mode A */ + if (i3== 99) mode=3; /* switch to mode C */ + if (i3== 98) mode|=2<<2; /* shift to mode B */ + break; + case 2: cc=i3+32; /* modeB: x20-x7f */ + if (i3==100) mode=2; /* switch to mode B */ + if (i3== 99) mode=3; /* switch to mode C */ + if (i3== 98) mode|=1<<2; /* shift to mode A */ + break; + case 3: + if (i3==101) mode=1; /* switch to mode A */ + if (i3==100) mode=2; /* switch to mode B */ + } + if (i5==3) { buf[i4]='0'+i3/10; i4++; + buf[i4]='0'+i3%10; i4++; } /* modeC: two digits */ + else { + if (cc>=0x20 && i3<=0x7f) { buf[i4]=cc; i4++; } /* modeA+B: one digit */ + if (cc>=0 && cc< 0x20) { buf[i4]='^'; i4++; + buf[i4]=cc+'@'; i4++; } + } + } + if(i1==(num_bars-1)/3-2){ crc=(crc+103-i3)%103; } + if(i1==(num_bars-1)/3-1){ if(i3!=106) i3=-1; } /* stop code */ + mode &= 3; /* remove shift */ + } + else fprintf(stderr," %s=%02d? ",buf,i5); + } + buf[i4]=0; /* end of string */ + if (result) + sprintf(result,"", + i4,buf,crc,dww/((num_bars-1))); + free(buf); + return result; +} + +/* -------------------------------------------------------------------- UPC + EAN 13 (UPC,(1+6+1+6+1)*2bars,size=3+6*7+5+6*7+3=95) + EAN 8 (UPC,(1+4+1+4+1)*2bars,size=3+4*7+5+4*7+3=67) + UPC: (10 codes) + BSB SBSB^n SBSBS BSBS^n BSB + bsb ...... sbsbs ...... bsb + 111 ...... 11111 ...... 111 + num_bars=2*(2*6+3) middle=SBSBS=11111 right/left=BSB=111="101" + char: left=SBSB right=BSBS (size=7) only_dec_digits + SS+BB = (S+S) + (B+B) => BB:SS = 5:2 or 3:4 + size ev+odd even + odd => variants + 7 = 2 + 5 = (1+1) + (1+4,2+3) => (1)*(2+2) = 4 codes + = 4 + 3 = (1+3,2+2) + (1+3) => (2+1)*(2) = 6 codes += 10 codes + ToDo: make it more robust + - return error as mean deviation + * -------------------------------------------------------------------- */ + /* example: barcode -E -e upc -b 12345678901 >a.eps # ok */ + /* example: barcode -E -e ean -b 123456789012 >a.eps # ok */ +#define NumUPC 20 +const char *codeUPC[NumUPC+1]={ /* 0..9, first n = SBSB, last n = BSBS */ + "3211","2221","2122","1411","1132", /* 0,1,2,3,4 normal (+0bit) */ + "1231","1114","1312","1213","3112", /* 5,6,7,8,9 */ + "1123","1222","2212","1141","2311", /* 0,1,2,3,4 mirrored (+1bit) */ + "1321","4111","2131","3121","2113", /* 5,6,7,8,9 */ + "????"}; /* not found */ + +char *decode_UPC(int *wb, int num_bars){ /* ToDo: char *dest, int len */ + int i, w, i1, i2, i3, i4, i5, crc, mirrored, ean; + double err, min_err, dw, dww=0.0; char digit; + char *result=NULL, *buf=NULL; /* malloc and store the result */ + for(w=i=0;i<2*num_bars-1;i++) w+=wb[i]; + + dw=2.0*w/((num_bars-6)*7+2*11); /* or min(wb[]) */ + crc=0; + if ((num_bars)%2!=0 || num_bars<10 || w<7*(num_bars-6)/2+11 + || ((num_bars-6)/2)%2!=0) return 0; /* should be balanced */ + /* check front BSB, middle SBSBS and end BSB */ + dww=0; + for (i=0;i<3;i++) { dww=sqr(wb[i ]/dw-1); if (dww>0.4) return 0; } + for (i=0;i<5;i++) { dww=sqr(wb[i+ num_bars-3]/dw-1); if (dww>0.4) return 0; } + for (i=0;i<3;i++) { dww=sqr(wb[i+2*num_bars-4]/dw-1); if (dww>0.4) return 0; } + buf =(char *)malloc( (num_bars-6)/2+1); if (!buf) return result; + result=(char *)malloc(256+(num_bars-6)/2+1); + + for(ean=i5=0,i1=3;i1<2*num_bars-4;i1+=4) { /* each digit (2bars+2spaces) */ + if (i1==num_bars-3) { i1++; continue; } /* skip middle sync SBSBS */ + for (i4=NumUPC,mirrored=0,digit='?',min_err=16e8,i2=0;i2 0yyyyy */ + switch (ean) { + case 11: ean=1; break; + case 13: ean=2; break; + case 14: ean=3; break; + case 19: ean=4; break; + case 25: ean=5; break; + case 28: ean=6; break; + case 21: ean=7; break; + case 22: ean=8; break; + case 26: ean=9; break; + default: ean=0; /* no or invalid EAN digit or UPC-extension */ + } crc+=ean*1; + /* ToDo: fix possible buffer OVL, complement crc */ + buf[i5]=0; + if (result) + sprintf(result,"", + i5+1,ean,buf,(10-crc%10)%10,dww/((num_bars-6)*2)); + free(buf); + return result; +} + + /* EAN/UPC add-on is either 2 or 5 digits. It always starts with a + * guard bar BSB, followed by ([digit + SB] * (N-1)) + digit. Digit is + * SBSB. Two digit add-on's have 7 bars, and 5 digit add ons have 16. + */ +char *decode_UPC_addon(int *wb, int num_bars){ /* ToDo: char *dest, int len */ + int i, w, i1, i2, i3, i4, i5, digits=num_bars/3; + double err, min_err, dw, dww=0.0; char digit; + char *result=NULL, *buf=NULL; /* malloc and store the result */ + if (num_bars!=7 && num_bars!=16) + return 0; + for(w=i=0;i<2*num_bars-1;i++) w+=wb[i]; + + dw=1.0*w/(digits*7+4 + (digits-1)*2); + /* check front BSB, and delineators SB */ + dww=0; + for (i=0;i<2;i++) { dww=sqr(wb[i]/dw-1); if (dww>0.4) return 0; } + dww=sqr(wb[i]*0.5/dw-1); if (dww>0.4) return 0; + for (i=1;i 0.4) return 0; + } + } + buf =(char *)malloc( digits+1); if (!buf) return result; + result=(char *)malloc(256+digits+1); + + for(i5=0,i1=3;i1<2*num_bars-1;i1+=6) { /* each digit (2bars+2spaces) */ + for (i4=NumUPC,digit='?',min_err=16e8,i2=0;i2", + i5, buf, dww/((num_bars-6)*2)); + free(buf); + return result; +} + + +/* --------------------------------------------------------- * + * code 3 of 9, 3 thick of 9 bars + * BSBSBSBSB size=7+3*aw aw=2(3), sumS/sumB=2/1? + * two widths: size=1 or size=2or3, digit_width=13(16) + * 5 bars and 4(+1) spaces per digit, last space is not used + * with 2 (or 0) thick bars, 1 (or 3) thick spaces per digit + * => 3 of 9 => max=9*8*7=504 + * evenBB=(0of5)+(2of5) oddSS=(1of4)+(3of4) max=44 + * ToDo: better code -...-.-.. as 046 or 083 (even,even,odd) + */ +#define Num39 (40+4) /* (3of9)=(2of5)(1of4)+(0of5)(3of4), (2of5)(.-..)=0..9 */ +const char *code39= /* rearranged to BBBBBSSSS (bars,spaces) */ + "0..--..-.." +"1-...-.-..""2.-..-.-..""3--....-..""4..-.-.-..""5-.-...-.." +"6.--...-..""7...--.-..""8-..-..-..""9.-.-..-.." +"A-...-..-.""B.-..-..-.""C--.....-.""D..-.-..-.""E-.-....-." +"F.--....-.""G...--..-.""H-..-...-.""I.-.-...-.""J..--...-." +"K-...-...-""L.-..-...-""M--......-""N..-.-...-""O-.-.....-" +"P.--.....-""Q...--...-""R-..-....-""S.-.-....-""T..--....-" +"U-...--...""V.-..--...""W--...-...""X..-.--...""Y-.-..-..." +"Z.--..-...""-...---..."".-..-.-..."" .-.-.-...""*..--.-..." +/* (0of5)(3of4)=(.....)(3of4) store only 3of4? */ +"$.....---.""/.....--.-""+.....-.--""%......---" +"?xxxxxxxxx"; + +/* example: barcode -E -e 39 -b 123abc | gs -sDEVICE=pnggray -r100 */ + +/* return index[] according to sorted values[], big first */ +void sort(int *value, int *idx, int len){ + int i,j; + for (j=0;jdw*2 || wb[ 1]<=dw*2 || wb[ 2]> dw*2) return 0; + if (wb[i-0]>dw*2 || wb[i-1]> dw*2 || wb[i-2]<=dw*2) return 0; +#endif + g_debug(fprintf(stderr," code39 base=%.3f chars=%2d\n ",dw,(num_bars)/5);) + buf =(char *)malloc( 1+(num_bars)/5); if (!buf) return result; + result=(char *)malloc(256+(num_bars)/5); + + for(i5=i1=0;i1<2*num_bars-3;i1+=10) { + /* ToDo: looking for three widest bars/gaps */ + sort(wb+i1,idx,9); + for(err=0,i3=3;i3<9;i3++) err+=sqr(wb[i1+idx[i3]]/dw-1.0); /* narrow=1, wide=2..3 */ + dww+=err; + for(i3=0;i30 && i5", + i5,buf,code39[(crc%44)*10],dww/((num_bars/5)*6)); + free(buf); + return result; +} + +/* code interleaved 2 of 5 + B B B B B <= digit 1,3,5,... + S S S S S <= digit 2,4,6,... + 1 2 4 7 0 <= weight digit=sum(bit*weight)%11 + */ +const char *code25= /* is the code sorted randomly? */ +"1-...-2.-..-3--...4..-.-5-.-..6.--..7...--8-..-.9.-.-.0..--."; + +/* example: barcode -E -e i25 -b 123456 >a.eps */ + +/* ToDo: decode_i25 (low priority) */ + +/* + decode barcode + - check main characteristics (num bars, min+max width, etc.) + - detect code type + - the current algorithm measures the width of bars and spaces + called by detect_barcode() + */ +char *decode_barcode(struct box *bb){ /* ToDo: char *dest, int len */ + int i, num_bars, yy, w, ww, dx, xx, cs=JOB->cfg.cs, *wb; + char *result=NULL; /* store the result */ + yy=(bb->y0+bb->y1)/2; + w=ww=bb->x1-bb->x0+1; + num_bars = num_cross(bb->x0,bb->x1,yy,yy,bb->p,JOB->cfg.cs); + if(JOB->cfg.verbose) + fprintf(stderr,"\n# ... detect bars=%3d w=%4d",num_bars,ww); + + /* store width of bars and spaces to buffer wb */ + wb=(int *)malloc(2*num_bars*sizeof(int)); if(!wb) return NULL; + xx=bb->x0; + xx-=loop(bb->p,xx,yy, 8,cs,1,LE); + xx+=loop(bb->p,xx,yy,ww,cs,0,RI); /* start with a bar! */ + for (i=0;i<2*num_bars;i++) { + dx=loop(bb->p,xx,yy,w,cs,1^(i&1),RI); + xx+=dx; + w-=dx; + wb[i]=dx; + } wb[2*num_bars-1]=0; + + /* ToDo: what about probability? if not unique + * - add argument char *result which can be modified or not, + * - or add box2? (would reuse of this code more difficult) + */ + /* test code128 characteristics, ToDo: look for correct start/stop 211 seq. */ + if ((num_bars-1)%3==0 && num_bars>=10 && ww>=11*(num_bars-1)/3+2){ + if (!result) result=decode_code128(wb,num_bars); + } + /* test UPC/EAN characteristics */ + if ((num_bars)%2==0 && num_bars>=8 && ww>=7*(num_bars-6)/2+11 + && ((num_bars-6)/2)%2==0){ /* should be balanced */ + if (!result) result=decode_UPC(wb,num_bars); + } + /* test UPC_addon by Michael van Rooyen, often on books */ + if (num_bars==7 || num_bars==16) + if (!result) result=decode_UPC_addon(wb,num_bars); + + /* test code39 characteristics */ + if ((num_bars)%5==0 && num_bars>14){ + if (!result) result=decode_39(wb,num_bars); + } + free(wb); + return result; +} + +/* + * taking the list of boxes and search for groups of bars (1D-barcodes) + */ +int detect_barcode(job_t *job) +{ + int j=0, j2=0, bx0, by0, bx1, by1, bdx, bdy, bbx, rm, + x0, y0, dx, dy, cs, y, yl0, yl1, yr0, yr1; + struct box *box2, *box3; + + if(JOB->cfg.verbose) + fprintf(stderr,"# barcode.c detect_barcode "); + x0=y0=0; rm=0; dx=job->src.p.x; dy=job->src.p.y; cs=JOB->cfg.cs; + for_each_data(&(JOB->res.boxlist)) { + box2 = (struct box *)list_get_current(&(JOB->res.boxlist)); + /* detect width (bdx) and height (bdy) of possible bar */ + /* ToDo: better check for a line */ + bdx=box2->x1-box2->x0+1 /* substract correction for skewed bars */ + -loop(box2->p,box2->x1,(box2->y0+box2->y1)/2,box2->x1-box2->x0,cs,0,LE) + -loop(box2->p,box2->x0,(box2->y0+box2->y1)/2,box2->x1-box2->x0,cs,0,RI); + bdy=box2->y1-box2->y0+1; + if (box2->c == PICTURE || box2->c == UNKNOWN) + if (box2->y0 >= y0 && box2->y1 <= y0 + dy /* within frame? */ + && box2->x0 >= x0 && box2->x1 <= x0 + dx + && box2->y1 - box2->y0 > 19 /* min. length */ + && box2->y1 - box2->y0 > 8 * bdx + ) { /* a bar? */ + j=1; /* number of bars */ + bx0=box2->x0; bx1=box2->x1; /* initial values for barcode frame */ + by0=box2->y0; by1=box2->y1; + bbx=bx1-bx0+2; /* width of bar */ + /* this is for scans which are not exactly horizontal */ + yl0=yr0=by0; /* left and right upper bound */ + yl1=yr1=by1; /* left and right lower bound */ + /* --- iteratively take into account next nearest bar --- + * this is important, because bar-boxes are not in right order */ + for (j2=1;j2;) { + j2=0; + /* expand a frame around the potential barcode (bx0,by0,bx1,by1) */ + for_each_data(&(JOB->res.boxlist)) { + box3 = (struct box *)list_get_current(&(JOB->res.boxlist)); + /* bdy=box3->y1-box3->y0+1; */ + if (box2!=box3) + if (box3->c == PICTURE || box3->c == UNKNOWN) + if (box3->y0 >= y0 && box3->y1 <= y0 + dy /* within image */ + && box3->x0 >= x0 && box3->x1 <= x0 + dx + && box3->y1 - box3->y0 > 19 /* min. length */ + && box3->y1 - box3->y0 > 4 * (bdx) /* height > 4*width2 */ + && box3->x1 - box3->x0 < 4 * (bdy) /* width < height/4 = bar */ + && (( abs(box3->y0-by0)y1-by1)y0-yl0)y1-yl1)x0 <= bx0 ) + ||( abs(box3->y0-yr0)y1-yr1)x0 >= bx1 ) ) + && box3->x0 > bx0 - 12*bbx /* startspace=5...10 */ + && box3->x1 < bx1 + 12*bbx + && box3->x0 > bx0 - bdy/2 /* dont glue two barcodes together */ + && box3->x1 < bx1 + bdy/2 /* ex: ean13a.jpg */ + /* dont check bars which already within the frame twice ? */ + && ( box3->x1 > bx1 || box3->x0 < bx0 ) + ) { /* a bar? -> extend barcode frame only in x direction */ + /* take minimum of y to have valid barcode for all y */ + if (box3->x0x0; yl0=box3->y0; yl1=box3->y1; } + if (box3->x1>bx1) { bx1=box3->x1; yr0=box3->y0; yr1=box3->y1; } + if (4*(box3->y1-box3->y0)>3*(by1-by0)) { /* carefull reduce */ + if (box3->y0>by0) by0=box3->y0; /* ToDo: fix for non-horizontal */ + if (box3->y1y1; + } + j++; /* found a near bar and count to num bars */ + j2=1; /* continue searching (endless loop?) */ + } + } end_for_each(&(JOB->res.boxlist)); + } + /* j is the num of bars found above, some inner bars are not counted */ + /* ToDo: better iterative add next nearest bars from sorted list near bars? */ + if (j>5) { + char *code=0; + box2->c=PICTURE; /* BARCODE */ + box2->x0=bx0; box2->y0=by0; + box2->x1=bx1; box2->y1=by1; + /* ToDo: add pointer to decoded text */ + + y=(box2->y0+box2->y1)/2; + if (JOB->cfg.verbose){ + int nbars; + nbars=num_cross(box2->x0,box2->x1,y,y,box2->p,JOB->cfg.cs); + fprintf(stderr,"\n# barcode at %3d %3d size %3d %3d nbars %d (%d)", + bx0,by0,bx1-bx0+1,by1-by0+1,nbars,j); + if (j!=nbars) + fprintf(stderr,"\n# ... trouble: num_found_bars != num_cross"); + /* this is because some far bars are detected before near bars */ + } + /* transport the info to the gocr-output (development) */ + /* ToDo: decode and print/store barcode bars=j */ + code=decode_barcode(box2); /* ToDo: char *dest, int len */ + if (!code) { /* failed */ + code=(char *)malloc(128); + /* ToDo: analyze and output num_bars, width of bars etc. */ + if(code) strncpy(code,"",128); + } + if (JOB->cfg.verbose) + fprintf(stderr,"\n# ... decoded as: %s", code); + setas(box2,code,99); /* ToDo: set a better weight */ + free(code); + + /* remove inner boxes, only if sure!? (ToDo: use cfg.certainty) */ + for_each_data(&(JOB->res.boxlist)) { + box3 = (struct box *)list_get_current(&(JOB->res.boxlist)); + /* bdy=box3->y1-box3->y0+1; */ + if (box2!=box3) + if (box3->c == PICTURE || box3->c == UNKNOWN) + if ( abs(box3->y0-by0)y1-by1)x1 <= bx1 + && box3->x0 >= bx0 + ) { + rm++; /* count removed boxes */ + list_del(&(JOB->res.boxlist),box3); + free_box(box3); + } + } end_for_each(&(JOB->res.boxlist)); + if (JOB->cfg.verbose) + fprintf(stderr,"\n# ... removed boxes: %d", rm); + rm=0; + } + } + } end_for_each(&(JOB->res.boxlist)); + + /* recalculate averages without bars */ + JOB->res.numC=JOB->res.sumX=JOB->res.sumY=j2=0; + for_each_data(&(JOB->res.boxlist)) { + j2++; + box3 = (struct box *)list_get_current(&(JOB->res.boxlist)); + if (box3->c==PICTURE) continue; + JOB->res.numC++; /* count remaining boxes */ + JOB->res.sumX+=box3->x1-box3->x0+1; + JOB->res.sumY+=box3->y1-box3->y0+1; + } end_for_each(&(JOB->res.boxlist)); + if(JOB->cfg.verbose) + fprintf(stderr,"\n# ... boxes %d nC %d\n", + j2, JOB->res.numC); + + return 0; +} + diff --git a/3rdparty/gocr-0.48/src/barcode.h b/3rdparty/gocr-0.48/src/barcode.h new file mode 100644 index 0000000..aa10cf2 --- /dev/null +++ b/3rdparty/gocr-0.48/src/barcode.h @@ -0,0 +1,11 @@ +#ifndef _BARCODE_H +#define _BARCODE_H +#include "pnm.h" + +/* + detect barcode and add a string to the box (obj-pointer) +*/ + +int detect_barcode(job_t *job); + +#endif diff --git a/3rdparty/gocr-0.48/src/box.c b/3rdparty/gocr-0.48/src/box.c new file mode 100644 index 0000000..8d7078b --- /dev/null +++ b/3rdparty/gocr-0.48/src/box.c @@ -0,0 +1,372 @@ +/* +This is a Optical-Character-Recognition program +Copyright (C) 2000-2009 Joerg Schulenburg + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + see README for EMAIL address + + */ + +#include +#include +#include +#include +/* do we need #include ? conflicts with INFINITY in unicode.h */ +#include "gocr.h" +#include "pgm2asc.h" + +/* for sorting letters by position on the image +/ ToDo: - use function same line like this or include lines.m1 etc. */ +int box_gt(struct box *box1, struct box *box2) { + // box1 after box2 ? + if (box1->line > box2->line) + return 1; + if (box1->line < box2->line) + return 0; + if (box1->x0 > box2->x1) // before + return 1; + if (box1->x1 < box2->x0) // before + return 0; + if (box1->x0 > box2->x0) // before, overlapping! + return 1; + + return 0; +} + +/* --- copy part of pix p into new pix b ---- len=10000 + * Returns: 0 on success, 1 on error. + * naming it as copybox isnt very clever, because it dont have to do with the + * char boxes (struct box) + */ +int copybox (pix * p, int x0, int y0, int dx, int dy, pix * b, int len) { + int x, y; + + /* test boundaries */ + if (b->p == NULL || dx < 0 || dy < 0 || dx * dy > len) { + fprintf(stderr, " error-copybox x=%5d %5d d=%5d %5d\n", x0, y0, dx, dy); + return 1; + } + + b->x = dx; + b->y = dy; + b->bpp = 1; +#ifdef FASTER_INCOMPLETE + for (y = 0; y < dy; y++) + memcpy(&pixel_atp(b, 0, y), &pixel_atp(p, x0, y + y0 ), dx); + // and unmark pixels +#else + for (y = 0; y < dy; y++) + for (x = 0; x < dx; x++) + pixel_atp(b, x, y) = getpixel(p, x + x0, y + y0); +#endif + + return 0; +} + +/* reset table of alternative chars (and free memory) */ +int reset_box_ac(struct box *box){ + int i; + for (i=0; inum_ac; i++) + if (box->tas[i]) { + /* fprintf(stderr,"DBG free_s[%d] %p %s\n",i,box->tas[i],box->tas[i]); */ + free(box->tas[i]); + box->tas[i]=0; /* prevent double freeing */ + } + box->num_ac=0; /* mark as freed */ + return 0; +} + +/* ini or copy a box: get memory for box and initialize the memory */ +struct box *malloc_box (struct box *inibox) { + struct box *buf; + int i; + + buf = (struct box *) malloc(sizeof(struct box)); + if (!buf) + return NULL; + if (inibox) { + memcpy(buf, inibox, sizeof(struct box)); + /* only pointer are copied, we want to copy the contents too */ + for (i=0;inum_ac;i++) { + if (inibox->tas[i]) { + buf->tas[i]=(char *)malloc(strlen(inibox->tas[i])+1); + memcpy(buf->tas[i], inibox->tas[i], strlen(inibox->tas[i])+1); + } + } + } + else { /* ToDo: init it */ + buf->num_ac=0; + buf->num_frames=0; + } + /* fprintf(stderr,"\nDBG ini_box %p",buf); */ + return buf; +} + +/* free memory of box */ +int free_box (struct box *box) { + if (!box) return 0; + /* fprintf(stderr,"DBG free_box %p\n",box); out_x(box); */ + reset_box_ac(box); /* free alternative char table */ + free(box); /* free the box memory */ + return 0; +} + +/* simplify the vectorgraph, + * but what is the best way? + * a) melting two neighbouring vectors with nearly same direction? + * (nearest angle to pi) + * b) melting three neigbours with smallest area? + * ToDo: + * mode = 0 - only lossless + * mode = 1 - reduce one vector, smallest possible loss + * mode = 2 - remove jitter (todo, or somewhere else) + * ToDo: include also loop around (last - first element) + * ToDo: reduce by 10..50% + */ +int reduce_vectors ( struct box *box1, int mode ) { + int i1, i2, nx, ny, mx, my, len, + minlen=1024, /* minlength of to neighbouring vectors */ + besti1=0, /* frame for best reduction */ + besti2=2; /* vector replacing its predecessor */ + double sprod, maxsprod=-1; + if (mode!=1) fprintf(stderr,"ERR not supported yet, ToDo\n"); + for (i2=1,i1=0; i1num_frames; i1++) { /* every frame */ + for (;i2num_frame_vectors[i1]-1; i2++) { /* every vector */ + /* predecessor n */ + nx = box1->frame_vector[i2-0][0] - box1->frame_vector[i2-1][0]; + ny = box1->frame_vector[i2-0][1] - box1->frame_vector[i2-1][1]; + /* successor m */ + mx = box1->frame_vector[i2+1][0] - box1->frame_vector[i2-0][0]; + my = box1->frame_vector[i2+1][1] - box1->frame_vector[i2-0][1]; + /* angle is w = a*b/(|a|*|b|) = 1 means parallel */ + /* normalized: minimize w^2 = (a*b/(|a|*|b|)-1)^2 */ + /* -1=90grd, 0=0grd, -2=180grd */ + sprod = /* fabs */(abs(nx*mx+ny*my)*(nx*mx+ny*my) + /(1.*(nx*nx+ny*ny)*(mx*mx+my*my))-1); + /* we dont include math.h because INFINITY conflicts to unicode,h */ + if (sprod<0) sprod=-sprod; + len = (mx*mx+my*my)*(nx*nx+ny*ny); /* sum lengths^2 */ +// ..c ###c ... .. ... +// .b. len=2+2 #b.. len=2+5 #bc len=1+2 bc len=1+1 b#a len=4+5 +// a.. spr=0 a... spr=1/10 a.. spr=1/4 a. spr=1 ##c spr=9/5 +// + if ( len* sprod* sprod* sprod* sprod + num_frames>0) + for (i2=besti2; i2num_frame_vectors[ box1->num_frames-1 ]-1; i2++) { + box1->frame_vector[i2][0]=box1->frame_vector[i2+1][0]; + box1->frame_vector[i2][1]=box1->frame_vector[i2+1][1]; + } + for (i1=besti1; i1num_frames; i1++) + box1->num_frame_vectors[i1]--; +// fprintf(stderr,"\nDBG_reduce_vectors i= %d nv= %d sprod=%f len2=%d\n# ...", +// besti2,box1->num_frame_vectors[ box1->num_frames-1 ],maxsprod,minlen); +// out_x(box1); + return 0; +} + +/* add the contents of box2 to box1 + * especially add vectors of box2 to box1 + */ +int merge_boxes( struct box *box1, struct box *box2 ) { + int i1, i2, i3, i4; + struct box tmpbox, *bsmaller, *bbigger; /* for mixing and sorting */ + /* DEBUG, use valgrind to check uninitialized memory */ +#if 0 + fprintf(stderr,"\nDBG merge_boxes_input:"); out_x(box1); out_x(box2); +#endif + /* pair distance is to expendable, taking borders is easier */ + if ((box2->x1 - box2->x0)*(box2->y1 - box2->y0) + >(box1->x1 - box1->x0)*(box1->y1 - box1->y0)) { + bbigger=box2; bsmaller=box1; } + else { + bbigger=box1; bsmaller=box2; } + /* ToDo: does not work if a third box is added */ + if (box2->y0>box1->y1 || box2->y1y0 + || box2->x0>box1->x1 || box2->x1x0) { + box1->num_boxes += box2->num_boxes; /* num seperate objects 2=ij */ + } else { + if (box2->num_boxes>box1->num_boxes) box1->num_boxes=box2->num_boxes; + box1->num_subboxes += box2->num_subboxes+1; /* num holes 1=abdepq 2=B */ + } + box1->dots += box2->dots; /* num i-dots */ + if ( box2->x0 < box1->x0 ) box1->x0 = box2->x0; + if ( box2->x1 > box1->x1 ) box1->x1 = box2->x1; + if ( box2->y0 < box1->y0 ) box1->y0 = box2->y0; + if ( box2->y1 > box1->y1 ) box1->y1 = box2->y1; + i1 = i2 = 0; + if (bbigger->num_frames) + i1 = bbigger->num_frame_vectors[ bbigger->num_frames - 1 ]; + if (bsmaller->num_frames) + i2 = bsmaller->num_frame_vectors[ bsmaller->num_frames - 1 ]; + while (i1+i2 > MaxFrameVectors) { + if (i1>i2) { reduce_vectors( bbigger, 1 ); i1--; } + else { reduce_vectors( bsmaller, 1 ); i2--; } + } + /* if i1+i2>MaxFrameVectors simplify the vectorgraph */ + /* if sum num_frames>MaxNumFrames through shortest graph away and warn */ + /* first copy the bigger box */ + memcpy(&tmpbox, bbigger, sizeof(struct box)); + /* attach the smaller box */ + for (i4=i3=0; i3num_frames; i3++) { + if (tmpbox.num_frames>=MaxNumFrames) break; + + for (; i4num_frame_vectors[i3]; i4++) { + memcpy(tmpbox.frame_vector[i1], + bsmaller->frame_vector[i4],2*sizeof(int)); + i1++; + } + tmpbox.num_frame_vectors[ tmpbox.num_frames ] = i1; + tmpbox.frame_vol[ tmpbox.num_frames ] = bsmaller->frame_vol[ i3 ]; + tmpbox.frame_per[ tmpbox.num_frames ] = bsmaller->frame_per[ i3 ]; + tmpbox.num_frames++; + if (tmpbox.num_frames>=MaxNumFrames) { + if (JOB->cfg.verbose) + fprintf(stderr,"\nDBG merge_boxes MaxNumFrames reached"); + break; + } + } + /* copy tmpbox to destination */ + box1->num_frames = tmpbox.num_frames; + memcpy(box1->num_frame_vectors, + tmpbox.num_frame_vectors,sizeof(int)*MaxNumFrames); + memcpy(box1->frame_vol, + tmpbox.frame_vol,sizeof(int)*MaxNumFrames); + memcpy(box1->frame_per, + tmpbox.frame_per,sizeof(int)*MaxNumFrames); + memcpy(box1->frame_vector, + tmpbox.frame_vector,sizeof(int)*2*MaxFrameVectors); +#if 0 + if (JOB->cfg.verbose) + fprintf(stderr,"\nDBG merge_boxes_result:"); out_x(box1); +#endif + return 0; +} + +/* used for division of glued chars + * after a box is splitted into 2, where vectors are copied to both, + * vectors outside the new box are cutted and thrown away, + * later replaced by + * - 1st remove outside vectors with outside neighbours (complete frames?) + * add vector on outside vector with inside neighbours + * care about connections through box between outside vectors + * - 2nd reduce outside crossings (inclusive splitting frames if necessary) + * depending on direction (rotation) of outside connections + * - 3th shift outside vectors to crossing points + * - split add this points, connect only in-out...out-in, + * - cutting can result in more objects + * ToDo: + * dont connect --1---2--------3----4-- new-y1 (inside above not drawn) + * \ \->>>>-/ / outside + * \----<<<<-----/ old-y1 + * |======| subtractable? + * + * only connect --1---2--------3----4-- new-y1 + * \>>/ \>>>/ old-y1 outside + * ToDo: what about cutting 2 frames (example: 2fold melted MN) + * better restart framing algo? + * + * ToDo: new vol, per + */ +int cut_box( struct box *box1) { + int i1, i2, i3, i4, x, y, lx, ly, dbg=0; + if (JOB->cfg.verbose) dbg=1; // debug level, enlarge to get more output + if (dbg) fprintf(stderr,"\n cut box x= %3d %3d", box1->x0, box1->y0); + /* check if complete frames are outside the box */ + for (i1=0; i1num_frames; i1++){ + if (dbg>2) fprintf(stderr,"\n checking frame %d outside", i1); + i2 = ((i1)?box1->num_frame_vectors[ i1-1 ]:0); // this frame + i3 = box1->num_frame_vectors[ i1 ]; // next frame + for (i4=i2; i4 < i3; i4++) { + x = box1->frame_vector[i4][0]; + y = box1->frame_vector[i4][1]; + /* break, if one vector is lying inside */ + if (x>=box1->x0 && x<=box1->x1 && y>=box1->y0 && y<=box1->y1) break; + } + if (i4==i3) { /* all vectors outside */ + if (dbg>1) fprintf(stderr,"\n remove frame %d",i1); + /* replace all frames i1,i1+1,... by i1+1,i1+2,... */ + /* replace (x,y) pairs first */ + for (i4=i2; i4num_frame_vectors[ box1->num_frames-1 ]-(i3-i2); + i4++) { + box1->frame_vector[i4][0] = box1->frame_vector[i4+i3-i2][0]; + box1->frame_vector[i4][1] = box1->frame_vector[i4+i3-i2][1]; + } + /* replace the num_frame_vectors */ + for (i4=i1; i4num_frames-1; i4++) + box1->num_frame_vectors[ i4 ] = + box1->num_frame_vectors[ i4+1 ]-(i3-i2); + box1->num_frames--; i1--; + } + } + /* remove vectors outside the box */ + i3=0; + for (i1=0; i1num_frames; i1++){ + if (dbg>2) fprintf(stderr,"\n check cutting vectors on frame %d", i1); + x = box1->frame_vector[0][0]; /* last x */ + y = box1->frame_vector[0][1]; /* last y */ + /* ToDo: start inside to get a closed object */ + if (xx0 || x>box1->x1 || yy0 || y>box1->y1) i3=1; + for (i2=0; i2num_frame_vectors[ i1 ]; i2++) { + lx = x; /* last x */ + ly = y; /* last y */ + x = box1->frame_vector[i2][0]; + y = box1->frame_vector[i2][1]; + // fprintf(stderr,"DBG LEV3 i2= %3d xy= %3d %3d",i2,x,y); + /* check if outside */ + if (xx0 || x>box1->x1 || yy0 || y>box1->y1) { + /* replace by nearest point at border, ToDo: better crossingpoint */ + if (i3==0) { /* wrong if it starts outside */ + if (x < box1->x0) x = box1->frame_vector[i2][0] = box1->x0; + if (x > box1->x1) x = box1->frame_vector[i2][0] = box1->x1; + if (y < box1->y0) y = box1->frame_vector[i2][1] = box1->y0; + if (y > box1->y1) y = box1->frame_vector[i2][1] = box1->y1; + } else { + /* remove vector */ + if (dbg>1) fprintf(stderr,"\n remove vector[%d][%d] x= %2d %2d",i1,i2,x-box1->x0,y-box1->y0); + for (i4=i2;i4num_frame_vectors[ box1->num_frames-1 ]-1;i4++) { + box1->frame_vector[i4][0] = box1->frame_vector[i4+1][0]; + box1->frame_vector[i4][1] = box1->frame_vector[i4+1][1]; + } + for (i4=i1; i4num_frames; i4++) + box1->num_frame_vectors[ i4 ]--; + i2--; /* next element is shiftet now, setting back the counter */ + } + i3++; + // fprintf(stderr," outside i3= %d\n",i3); + continue; + } + // fprintf(stderr," inside i3= %d",i3); + if (i3) { /* ToDo: better crossing point last vector and border */ + if (lx < box1->x0) lx = box1->x0; + if (lx > box1->x1) lx = box1->x1; + if (ly < box1->y0) ly = box1->y0; + if (ly > box1->y1) ly = box1->y1; + x = box1->frame_vector[i2][0] = lx; + y = box1->frame_vector[i2][1] = ly; + i3 = 0; + } + // fprintf(stderr," xy= %3d %3d\n",x,y); + } + } + if (dbg>2) { fprintf(stderr,"\nDBG cut_box_result:"); out_x(box1); } + return 0; +} + diff --git a/3rdparty/gocr-0.48/src/database.c b/3rdparty/gocr-0.48/src/database.c new file mode 100644 index 0000000..e8cb9a3 --- /dev/null +++ b/3rdparty/gocr-0.48/src/database.c @@ -0,0 +1,462 @@ +/* +This is a Optical-Character-Recognition program +Copyright (C) 2000-2009 Joerg Schulenburg + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + see README for EMAIL address + */ + +#include +#include +#include "gocr.h" +#include "pnm.h" +#include "pgm2asc.h" +#include +#include + +#define Blen 256 + +// load boxes from database into boxlist (for faster access) +// used as alternate engine, comparing chars with database +int load_db(void) { + FILE *f1; + char s1[Blen+1], + s2[Blen+1] = "./db/", /* ToDo: replace by constant! by configure */ + *s3; + int i, j, ii, i2, line; + struct box *box1; + pix *pp; + + if( JOB->cfg.db_path ) strncpy(s2,JOB->cfg.db_path,Blen-1); + i2=strlen(s2); + if (JOB->cfg.verbose) + fprintf(stderr, "# load database %s %s ... ",s2,JOB->cfg.db_path); + + strncpy(s2+i2,"db.lst",Blen-i2);s2[Blen]=0; + f1 = fopen(s2, "r"); + if (!f1) { + fprintf(stderr, " DB %s not found\n",s2); + return 1; + } + + line = 0; /* line counter for better error report */ + for (ii = 0; !feof(f1); ii++) { +/* bbg: should write a better input routine */ + if (!fgets(s1, Blen, f1)) break; line++; + j = strlen(s1); + /* remove carriage return sequences from line */ + while (j > 0 && (s1[j - 1] == '\r' || s1[j - 1] == '\n')) + s1[--j] = 0; + if (!j) continue; /* skip empty line */ + if (s1[0]=='#') continue; /* skip comments (v0.44) */ + /* copy file name */ + for (i = 0; i < j && i+i2 < Blen && strchr(" \t,;",s1[i]) == 0; i++) + s2[i2 + i] = s1[i]; + s2[i2+i]=0; + /* skip spaces */ + for (; i < j && strchr(" \t",s1[i]) != 0; i++); + /* by now: read pix, fill box, goto next ??? */ + pp = (pix *)malloc(sizeof(pix)); + if( !pp ) fprintf(stderr,"malloc error in load_db pix\n"); + + // if (JOB->cfg.verbose) fprintf(stderr,"\n# readpgm %s ",s2); + if (readpgm(s2, pp, 0 * JOB->cfg.verbose)!=0) { + fprintf(stderr,"\ndatabase error: readpgm %s\n", s2); + exit(-1); + } + + box1 = (struct box *)malloc_box(NULL); + if(!box1) fprintf(stderr,"malloc error in load_db box1\n"); + box1->x0 = 0; + box1->x1 = pp->x-1; // white border 1 pixel width + box1->y0 = 0; + box1->y1 = pp->y-1; + box1->x = 1; + box1->y = 1; + box1->dots = 0; + box1->c = 0; + box1->modifier = 0; /* ToDo: obsolete */ + box1->tas[0]=NULL; + box1->tac[0]=0; + box1->wac[0]=100; /* really 100% sure? */ + box1->num_ac=1; + if (s1[i]=='"'){ /* parse a string */ + j=strrchr(s1+i+1,'"')-(s1+i+1); /* we only look for first and last "" */ + if (j>=1) { + s3=(char *)malloc(j+1); + if (!s3) fprintf (stderr, "malloc error in load_db s3\n"); + if (s3) { + memcpy(s3,s1+i+1,j); + s3[j]=0; + box1->tas[0]=s3; + // fprintf(stderr,"\nstring=%s",s3); + } + } else { fprintf(stderr,"load_db: string parse error L%d\n",line); } + } else { + box1->tac[0] = box1->c = s1[i]; /* try to interpret as ASCII */ + /* we can live without hexcode in future if we use UTF8-strings */ + s3=s1+i; + j=strtol( s1+i, &s3, 16); /* try to read 4 to 8 digit hex unicode */ + /* if its an hexcode, ASCII interpretation is overwritten */ + if( j && i+3<=Blen && s3-s1-i>3 ) box1->tac[0] = box1->c = j; + // fprintf(stderr,"\nhexcode=%04x=%04x %d",(int)j,(int)box1->c,s3-s1-i); + } + box1->num = 0; + box1->line = -1; + box1->m1 = 0; /* ToDo: should be given too in the database! */ + box1->m2 = 0; + box1->m3 = 0; + box1->m4 = 0; + box1->p = pp; + list_app(&JOB->tmp.dblist, box1); // append to list +#if 0 + out_x(box1); +#endif + } + fclose(f1); + if (JOB->cfg.verbose) + fprintf(stderr, " %d chars loaded\n", ii); + return 0; +} + +// expand database from box/boxlist name=db_$utime.pbm +// this is added in version v0.3.3 +int store_db(struct box *box1) { + FILE *f1; + char s2[Blen+1] = "./db/", s3[Blen+1]; + int i2, dx, dy; + unsigned c_out; + pix b; /* temporary mini page */ + + if( JOB->cfg.db_path ) strncpy(s2,JOB->cfg.db_path,Blen-1); + i2=strlen(s2); + + /* add (first) char and time to the file name for better debugging */ + + /* decide between 7bit ASCII and UTF8-char or string */ + c_out = ((box1->num_ac && box1->tas[0]) ? + (unsigned char )box1->tas[0][0] /* char */ : + box1->c /* wchar */); + /* (unsigned int)(( char)0x80) = 0xffffff80 */ + /* (unsigned int)((unsigned char)0x80) = 0x00000080 */ + + /* name generation can cause problems, if called twice within a second */ + sprintf(s3,"db_%04x_%08lx.pbm", c_out, (unsigned long)time(NULL)); + /* ToDo: the file name may be not unique */ + + strncpy(s2+i2,"db.lst",Blen-i2);s2[Blen]=0; + f1 = fopen(s2, "a"); + if (!f1) { + fprintf(stderr, " could not access %s\n",s2); + return 1; + } + strncpy(s2+i2,s3,strlen(s3)); s2[i2+strlen(s3)]=0; + /* store image and infos about the char */ + /* ToDo: store the vector list instead of the pixelarray */ + + if (JOB->cfg.verbose) + fprintf(stderr, "store_db: add file %s to database (nac=%d c=%04x)" + "\n#",s3, box1->num_ac, c_out); + + dx=box1->x1-box1->x0+1; + dy=box1->y1-box1->y0+1; + b.p = (unsigned char *) malloc( dx * dy ); + if( !b.p ){ + fprintf( stderr, "\nFATAL: malloc failed, skip store_db" ); + return 2; + } + if (copybox(box1->p, box1->x0, box1->y0, dx, dy, &b, dx * dy)) + return -1; + + writepbm(s2,&b); /* What is to do on error? */ + free(b.p); + + /* store the database line */ + /* some infos about box1->m1,..,m4 should added (base line, high etc.) */ + if (box1->num_ac && box1->tas[0]) { + fprintf(f1, "%s \"%s\"\n",s3,box1->tas[0]); + /* ToDo: what if tas contains '"'? */ + } else { + if( (box1->c >= '0' && box1->c <= '9') + || (box1->c >= 'A' && box1->c <= 'Z') + || (box1->c >= 'a' && box1->c <= 'z') ) + fprintf(f1, "%s %c\n",s3,(char)box1->c); + else { + if (((box1->c)>>16)>>16) + fprintf(f1, "%s %08x\n",s3,(unsigned int)box1->c); + else + fprintf(f1, "%s %04x\n",s3,(unsigned int)box1->c); + } + } + fclose(f1); + return 0; +} + +/* function is only for user prompt on console to identify chars + it prints out a part of pixmap b at point x0,y0 to stderr + using dots .,; if no pixel, and @xoO for pixels + */ +void out_env(struct box *px ){ + int x0,y0,x1,y1,dx,dy,x,y,x2,y2,yy0,tx,ty,i,cs; + char c1, c2; pix *b; + cs=JOB->cfg.cs; + yy0=px->y0; + { /* overwrite rest of arguments */ + b=px->p; + x0=px->x0; x1=px->x1; dx=x1-x0+1; + y0=px->y0; y1=px->y1; dy=y1-y0+1; + y0-=2; y1+=2; + if (px->m4 && y0>px->m1) y0=px->m1; + if (px->m4 && y1m4) y1=px->m4; + if (x1-x0+1<52) { x0-=10; x1+=10; } /* fragment? expand frame */ + if (x1-x0+1<52) { x0-=10; x1+=10; } /* fragment? expand frame */ + if (x1-x0+1<62) { x0-=5; x1+=5; } + if (y1-y0+1<10) { y0-= 4; y1+= 4; } /* fragment? */ + if (x0<0) x0=0; if (x1>=b->x) x1=b->x-1; + if (y0<0) y0=0; if (y1>=b->y) y1=b->y-1; + dx=x1-x0+1; + dy=y1-y0+1; yy0=y0; + fprintf(stderr,"\n# show box + environment"); + fprintf(stderr,"\n# show box x= %4d %4d d= %3d %3d r= %d %d", + px->x0, px->y0, px->x1 - px->x0 + 1, px->y1 - px->y0 + 1, + px->x - px->x0, px->y - px->y0); + if (px->num_ac){ /* output table of chars and its probabilities */ + fprintf(stderr,"\n# list box char: "); + for(i=0;inum_ac && itas[i]) + fprintf(stderr," %s(%d)", px->tas[i] ,px->wac[i]); + else + fprintf(stderr," %s(%d)",decode(px->tac[i],ASCII),px->wac[i]); + } + fprintf(stderr,"\n"); + if (px->dots && px->m2 && px->m1m1; dy=px->y1-yy0+1; } + } + tx=dx/80+1; + ty=dy/40+1; // step, usually 1, but greater on large maps + fprintf(stderr,"# show pattern x= %4d %4d d= %3d %3d t= %d %d\n", + x0,y0,dx,dy,tx,ty); + if (dx>0) + for(y=yy0;yx0 || x > px->x1 + || y+ty-1 < px->y0 || y > px->y1) c1=((c1=='#')?'O':','); + fprintf(stderr,"%c", c1 ); + } + + c1=c2=' '; + /* mark lines with < */ + if (px) if (y==px->m1 || y==px->m2 || y==px->m3 || y==px->m4) c1='<'; + if (y==px->y0 || y==px->y1) c2='-'; /* boxmarks */ + fprintf(stderr,"%c%c\n",c1,c2); + } +} + + +/* +// second variant, for database (with slightly other behaviour) +// new variant +// look at the environment of the pixel too (contrast etc.) +// detailed analysis only of diff pixels! +// +// 100% * distance, 0 is best fit +// = similarity of 2 chars for recognition of noisy chars +// weigth of pixels with only one same neighbour set to 0 +// look at contours too! + ToDo: especially on small boxes distance should only be 0 if + characters are 100% identical! +*/ +// #define DEBUG 2 +int distance2( pix *p1, struct box *box1, + pix *p2, struct box *box2, int cs){ + int rc=0,x,y,v1,v2,i1,i2,rgood=0,rbad=0, + x1,y1,x2,y2,dx,dy,dx1,dy1,dx2,dy2,tx,ty; +#if DEBUG == 2 + if(JOB->cfg.verbose) + fprintf(stderr," DEBUG: distance2\n"); +#endif + x1=box1->x0;y1=box1->y0;x2=box2->x0;y2=box2->y0; + dx1=box1->x1-box1->x0+1; dx2=box2->x1-box2->x0+1; dx=((dx1>dx2)?dx1:dx2);dx=dx1; + dy1=box1->y1-box1->y0+1; dy2=box2->y1-box2->y0+1; dy=((dy1>dy2)?dy1:dy2);dy=dy1; + if(abs(dx1-dx2)>1+dx/16 || abs(dy1-dy2)>1+dy/16) rbad++; // how to weight? + // compare relations to baseline and upper line + if(box1->m4>0 && box2->m4>0){ // used ??? + if(2*box1->y1>box1->m3+box1->m4 && 2*box2->y1m3+box2->m4) rbad+=128; + if(2*box1->y0>box1->m1+box1->m2 && 2*box2->y0m1+box2->m2) rbad+=128; + } + tx=dx/16; if(dx<17)tx=1; // raster + ty=dy/32; if(dy<33)ty=1; + // compare pixels + for( y=0;y0) + rbad+=16*v1; + } + if(rgood+rbad) rc= 100*rbad/(rgood+rbad); else rc=99; + /* if width/high is not correct add badness */ + rc += ( abs(dx1*dy2-dx2*dy1) * 10 ) / (dy1*dy2); + if (rc>100) rc=100; + if(/* rc<10 && */ JOB->cfg.verbose /* &1024 */){ +#if DEBUG == 2 + fprintf(stderr," distance2 rc=%d rgood=%d rbad=%d\n",rc,rgood,rbad); +// out_b(NULL,p1,box1->x0,box1->y0,box1->x1-box1->x0+1, +// box1->y1-box1->y0+1,cs); +// out_b(NULL,p2,box2->x0,box2->y0,box2->x1-box2->x0+1, +// box2->y1-box2->y0+1,cs); + out_x(box1); + out_x(box2); +#endif + } + return rc; +} + +wchar_t ocr_db(struct box *box1) { + int dd = 1000, dist = 1000; + wchar_t c = UNKNOWN; + unsigned char buf[200]; /* Oct08 JS: add unsigned to avoid UTF problems */ + Box *box2, *box3; + + if (!list_empty(&JOB->tmp.dblist)){ + box3 = (Box *)list_get_header(&JOB->tmp.dblist); + if(JOB->cfg.verbose) + fprintf(stderr,"\n#DEBUG: ocr_db (%d,%d) ",box1->x0, box1->y0); + + for_each_data(&JOB->tmp.dblist) { + box2 = (Box *)list_get_current(&JOB->tmp.dblist); + /* do preselect!!! distance() slowly */ + dd = distance2( box2->p, box2, box1->p, box1, JOB->cfg.cs); + if (dd <= dist) { /* new best fit */ + dist = dd; + box3 = box2; /* box3 is a pointer and not copied box2 */ + + if (dist<100 && 100-dist >= JOB->cfg.certainty) { + /* some deviation of the pattern is tolerated */ + int i, wa; + for (i=0;inum_ac;i++) { + wa = (100-dist)*box3->wac[i]/100; /* weight *= (100-dist) */ + if (box3->tas[i]) setas(box1,box3->tas[i],wa); + else setac(box1,box3->tac[i],wa); + } + if (box3->num_ac) c=box3->tac[0]; /* 0 for strings (!UNKNOWN) */ + if (JOB->cfg.verbose) + fprintf(stderr, " dist=%4d c= %c 0x%02x %s wc= %3d", dist, + ((box3->c>32 && box3->c<127) ? (char) box3->c : '.'), + (int)box3->c, ((box3->tas[0])?box3->tas[0]:""), box3->wac[0]); + } + if (dd<=0 && ((box3->num_ac && box3->tas[0]) || box3->c >= 128 + || !strchr ("l1|I0O", box3->c))) + break; /* speedup if found */ + } + } end_for_each(&JOB->tmp.dblist); + + } + + if( (JOB->cfg.mode&128) != 0 && c == UNKNOWN ) { /* prompt the user */ + /* should the output go to stderr or special pipe??? */ + int utf8_ok=0; /* trigger this flag if input is ok */ + int i, endchar; /* index */ + out_env(box1); /* old: out_x(box1); */ + fprintf(stderr,"The above pattern was not recognized.\n" + "Enter UTF8 char or string for above pattern. Leave empty if unsure.\n" + "Press RET at the end (ALT+RET to store into RAM only) : " + ); /* ToDo: empty + alt-return (0x1b 0x0a) for help? ^a for skip all */ + /* UTF-8 (man 7 utf-8): + * 7bit = 0xxxxxxx (0000-007F) + * 11bit = 110xxxxx 10xxxxxx (0080-07FF) + * 16bit = 1110xxxx 10xxxxxx 10xxxxxx (0800-FFFF) + * 21bit = 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx + * 26bit = 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx + * 31bit = 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx + */ + buf[0]=0; + /* shift/ctrl/altgr-enter acts like enter or ^j or ^m, + * alt-enter returns 0x1b 0x0a and returns from fgets() + * ^d (EOF) returns (nil) from fgets() + * x+(2*)ctrl-d returns from fgets() without returning a 0x0a + * if not UTF-input-mode, we are in trouble? + * ^a=0x01, ^b=0x02, ^e=05, ..., ToDo: meaning of no-input or <=space + */ + fgets((char *)buf,200,stdin); /* including \n=0x0a */ + dd=strlen((char *)buf); + /* output hexcode if verbose set */ + if (JOB->cfg.verbose) { + fprintf(stderr, "\n# fgets [%d]:", dd); + for(i=0; icfg.mode&=~128; } /* skip all */ + buf[dd=i]=0; /* replace final 0x0a or other special codes */ + if (dd==1 && !(buf[0]&128)) { c=buf[0]; utf8_ok=1; } /* single char */ + if (dd>1 && dd<7) { /* try to decode single wide char (utf8) */ + int u0, u1; /* define UTF8-start sequences, u0=0bits u1=1bits */ + u0= 1<<(7-dd); /* compute start byte from UTF8-length */ + u1=255&~((1<<(8-dd))-1); + /* count number of following 10xxxxxx bytes to i */ + for (i=1;i0){ /* ToDo: skip space and tab too? */ + if (utf8_ok==1) { setac(box1, c, 100); } /* store single wchar */ + if (utf8_ok==0) { /* store a string of chars (UTF8-string) */ + c='_'; /* what should we do with c? probably a bad idea? */ + setas(box1, (char *)buf, 100); + } + /* decide between + * 0) just help gocr to find the results and (dont remember, 0x01) + * 1) help and remember in the same run (store to memory, 0x1b) + * 2) expand the database (dont store ugly chars to the database!) + */ + if (endchar!=0x01){ /* ^a before hit return */ + /* is there a reason to dont store to memory? */ + list_app(&JOB->tmp.dblist, box1); /* append to list for 1+2 */ + } + if (endchar!=0x01 && endchar!=0x1b){ + store_db(box1); /* store to disk for 2 */ + } + if (JOB->cfg.verbose) + fprintf(stderr, " got char= %c 16bit= 0x%04x string= \"%s\"\n", + ((c>32 && c<127)?(char)c:'.'), (int)c, buf); + } + } + + return c; +} diff --git a/3rdparty/gocr-0.48/src/detect.c b/3rdparty/gocr-0.48/src/detect.c new file mode 100644 index 0000000..37f8d23 --- /dev/null +++ b/3rdparty/gocr-0.48/src/detect.c @@ -0,0 +1,943 @@ +/* +This is a Optical-Character-Recognition program +Copyright (C) 2000-2007 Joerg Schulenburg + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + check README for my email address +*/ + +#include +#include +#include +#include // toupper, tolower +#include "pgm2asc.h" +#include "gocr.h" + +// ----- detect lines --------------- +/* suggestion: Fourier transform and set line frequency where the + amplitude has a maximum (JS: slow and not smarty enough). + + option: range for line numbers 1..1000 or similar + todo: look for thickest line, and divide if thickness=2*mean_thickness + Set these elements of the box structs: + + m1 <-- top of upper case letters and (bdfhkl) (can differ) + m2 <-- top of letters (acegmnopqrsuvwxyz) + m3 <-- baseline + m4 <-- bottom of hanging letters (gqpy) + + performance can be improved by working with a temporary + list of boxes of the special text line + + - Jun23,00 more robustness of m3 (test liebfrau1) + - Feb01,02 more robustness of m4 (test s46_084.pgm) + - Dec03,12 fix problems with footnotes + ToDo: + - generate lists of boxes per line (faster access) + - use statistics + - for each box look at it neighbours and set box-m1..m4 + - m[1..4].max .min if m4.min-m3.max<1 probability lower + */ +int detect_lines1(pix * p, int x0, int y0, int dx, int dy) +{ + int i, jj, j2, y, yy, my, mi, mc, i1, i2, i3, i4, + m1, m2, m3, m4, ma1, ma2, ma3, ma4, m3pre, m4pre; + struct box *box2, *box3; /* box3 is for verbose / debugging */ + struct tlines *lines = &JOB->res.lines; + + /* ToDo: optional read line-data from external source??? */ + if (lines->num == 0) { // initialize one dummy-line for pictures etc. + lines->m4[0] = 0; + lines->m3[0] = 0; + lines->m2[0] = 0; + lines->m1[0] = 0; + lines->x0[0] = p->x; /* expand to left end during detection */ + lines->x1[0] = 0; /* expand to right end */ + lines->pitch[0] = JOB->cfg.spc; /* default word pitch */ + lines->mono[0] = 0; /* default spacing, 0 = prop */ + lines->num++; + } + i = lines->num; + if (dy < 4) + return 0; /* image is to low for latin chars */ + my = jj = 0; + // get the mean height of all hollow chars + // (better than mean value of everything including bg-pattern or dust?) + for_each_data(&(JOB->res.boxlist)) { + box2 = (struct box *)list_get_current(&(JOB->res.boxlist)); + if ( box2->c != PICTURE + && box2->num_frames>1 && box2->num_frames<3 /* 1 or 2 holes */ + && box2->y0 >= y0 && box2->y1 <= y0 + dy + && box2->x0 >= x0 && box2->x1 <= x0 + dx + && box2->frame_vol[0]>0 + && box2->frame_vol[1]<0 + ) { + jj++; + my += box2->y1 - box2->y0 + 1; + } + } end_for_each(&(JOB->res.boxlist)); + if (jj==0) { + // get the mean height of all chars + for_each_data(&(JOB->res.boxlist)) { + box2 = (struct box *)list_get_current(&(JOB->res.boxlist)); + if ( box2->c != PICTURE + && box2->y1 - box2->y0 + 1 >= 4 /* 4x6 font */ + && box2->y0 >= y0 && box2->y1 <= y0 + dy + && box2->x0 >= x0 && box2->x1 <= x0 + dx ) { + jj++; + my += box2->y1 - box2->y0 + 1; + } + } end_for_each(&(JOB->res.boxlist)); + } + if (jj == 0) + return 0; /* no chars detected */ + + + /* ToDo: a better way could be to mark good boxes (of typical high a-zA-Z0-9) + * first and handle only marked boxes for line scan, exclude ?!,.:;etc + * but without setect the chars itself (using good statistics) + * see adjust_text_lines() + */ + my /= jj; /* we only care about chars with high arround my */ + if (JOB->cfg.verbose & 16) + fprintf(stderr,"\n# detect_lines1(%d %d %d %d) vvv&16 chars=%d my=%d\n# ", + x0, y0, dx, dy, jj, my); + // "my" is the average over the whole image (bad, if different fontsizes) + + if (my < 4) + return 0; /* mean high is to small => error */ + + m4pre=m3pre=y0; /* lower bond of upper line */ + // better function for scanning line around a letter ??? + // or define lines around known chars "eaTmM" + for (j2 = y = y0; y < y0 + dy; y++) { + // look for max. of upper and lower bound of next line + m1 = y0 + dy; + jj = 0; +#if 1 + /* this is only for test runs */ + if (JOB->cfg.verbose & 16) + fprintf(stderr,"searching new line %d\n# ",i /* lines->num */); +#endif + + box3 = NULL; /* mark the most upper box starting next line */ + // find highest point of next line => store to m1-min (m1>=y) + // only objects greater 2/3*my and smaller 3*my are allowed + // a higher "!" at end of line can result in a to low m1 + for_each_data(&(JOB->res.boxlist)) { + box2 = (struct box *)list_get_current(&(JOB->res.boxlist)); + if (box2->line>0 || box2->c == PICTURE) continue; + if (lines->dx) + yy = lines->dy * box2->x0 / (lines->dx); /* correct crooked lines */ + else yy=0; + if ( box2->y0 >= y + yy && box2->y1 < y0 + dy // lower than y + && box2->x0 >= x0 && box2->x1 < x0 + dx // within box ? + && box2->c != PICTURE // no picture + && box2->num_boxes <= 1 // ignore 2 for "!?i" 3 for "ä" + && 3 * (box2->y1 - box2->y0) > 2 * my // not to small + && (box2->y1 - box2->y0) < 3 * my // not to big + && (box2->y1 - box2->y0) > 4) // minimum absolute size + { + if (box2->y0 < m1 + yy) { + m1 = box2->y0 - yy; /* highest upper boundary */ + box3 = box2; + } + // fprintf(stderr,"\n %3d %3d %+3d %d m1= %3d", + // box2->x0, box2->y0, box2->y1 - box2->y0 + 1, box2->num_boxes, m1); + } + } end_for_each(&(JOB->res.boxlist)); + if (!box3 || m1 >= y0+dy) break; /* no further line found */ + if (JOB->cfg.verbose & 16) + fprintf(stderr," most upper box at new line xy= %4d %4d %+4d %+4d\n# ", + box3->x0, box3->y0, box3->x1-box3->x0, box3->y1-box3->y0); + + // at the moment values depend from single chars, which can + // result in bad values (ex: 4x6 /\=) + // ToDo: 2) mean size of next line (store list of y0,y1) + // ToDo: 3) count num0[(y0-m1)*16/my], num1[(y1-m1)*16/my] + // ToDo: or down-top search horizontal nerarest neighbours + lines->x0[i] = x0 + dx - 1; /* expand during operation to left end */ + lines->x1[i] = x0; /* expand to the right end of line */ + m4=m2=m1; mi=m1+my; m3=m1+2*my; jj=0; + // find limits for upper bound, base line and ground line + // m2-max m3-min m4-max + for_each_data(&(JOB->res.boxlist)) { + box2 = (struct box *)list_get_current(&(JOB->res.boxlist)); + if (box2->line>0 || box2->c == PICTURE) continue; + if ( box2->y0 < y0 || box2->y1 >= y0 + dy + || box2->x0 < x0 || box2->x1 >= x0 + dx ) continue; // out of image + if (lines->dx) yy = lines->dy * box2->x0 / (lines->dx); + else yy=0; + /* check for ij-dots, used if chars of same high */ + if ( box2->y0 >= y + yy + && box2->y0 >= y + && (box2->y1 - box2->y0) < my + && box2->y1 < m1 + yy + my/4 + && box2->y0 < mi + yy ) { + mi = box2->y0 - yy; /* highest upper boundary i-dot */ + } + // fprintf(stderr,"\n check %3d %3d-%3d y=%d yy=%d m1=%d", box2->x0, box2->y0, box2->y1, y, yy, m1); + /* get m2-max m3-min m4-max */ + if ( box2->y0 >= y + yy // lower than y + && 3 * (box2->y1 - box2->y0 + 1) > 2 * my // right size ? + && (box2->y1 - box2->y0 + 1) < 3 * my // font mix, size = 2.6*my + && (box2->y1 - box2->y0 + 1) > 3 // 4x6 lowercase=4 + && box2->y0 >= m1 // in m1 range? + && box2->y0 <= m1 + yy + 9 * my / 8 // my can be to small if mixed + // ToDo: we need a better (local?) algorithm for big headlines > 2*my + && box2->y1 <= m1 + yy + 3 * my + && box2->y1 >= m1 + yy + my / 2 + // lines can differ in high, my may be to small (smaller headlines) + && box2->y0+box2->y1 <= 2*box3->y1 + ) + { + jj++; // count chars for debugging purpose + if (box2->y0 > m2 + yy) { + m2 = box2->y0 - yy; /* highest upper boundary */ + if (JOB->cfg.verbose & 16) + fprintf(stderr," set m2= %d yy= %d\n# ",m2, yy); + } + if (box2->y1 > m4 + yy && (my>6 || box2->y1 < m3+my)) { + m4 = box2->y1 - yy; /* lowest lower boundary, small font lines can touch */ + } + if ( box2->y1 < m3 + yy + && ( ( 2*box2->y1 > m2+ m4+yy && m2>m1) + || ( 4*box2->y1 > m1+3*m4+yy) ) ) // care for TeX: \(^1\)Footnote 2003 + /* "'!?" could cause trouble here, therefore this lines */ + /* ToDo: get_bw costs time, check pre and next */ + if( get_bw(box2->x0,box2->x1,box2->y1+1 ,box2->y1+my/2,box2->p,JOB->cfg.cs,1) == 0 + || get_bw(box2->x0,box2->x1,box2->y1+my/2,box2->y1+my/2,box2->p,JOB->cfg.cs,1) == 1 + || num_cross(box2->x0,box2->x1,(box2->y0+box2->y1)/2,(box2->y0+box2->y1)/2,box2->p,JOB->cfg.cs)>2 ) + { + m3 = box2->y1 - yy; /* highest lower boundary */ + // printf("\n# set1 m3 m=%3d %+2d %+2d %+2d",m1,m2-m1,m3-m1,m4-m1); + // out_x(box2); + } + if (box2->y0 + box2->y1 > 2*(m3 + yy) + && box2->y1 < m4 + yy - my/4 -1 + && box2->y1 >= (m2 + m4)/2 // care for TeX: \(^1\)Footnote 2003 + && m2 > m1 ) // be sure to not use ', m2 must be ok + { + m3 = box2->y1 - yy; /* highest lower boundary */ + // printf("\n# set2 m3 m=%3d %+2d %+2d %+2d",m1,m2-m1,m3-m1,m4-m1); + // out_x(box2); + } + if (box2->x1>lines->x1[i]) lines->x1[i] = box2->x1; /* right end */ + if (box2->x0x0[i]) lines->x0[i] = box2->x0; /* left end */ + // printf(" m=%3d %+2d %+2d %+2d yy=%3d\n",m1,m2-m1,m3-m1,m4-m1,yy); + } + } end_for_each(&(JOB->res.boxlist)); + +#if 1 + /* this is only for test runs */ + if (JOB->cfg.verbose & 16) + fprintf(stderr," step 1 y=%4d m= %4d %+3d %+3d %+3d" + " my=%2d chars=%3d\n# ", + y, m1, m2-m1, m3-m1, m4-m1, my, jj); +#endif + + if (m3 == m1) + break; +#if 1 /* make averages about the line */ + // same again better estimation + mc = (3 * m3 + m1) / 4; /* lower center ? */ + ma1 = ma2 = ma3 = ma4 = i1 = i2 = i3 = i4 = jj = 0; + for_each_data(&(JOB->res.boxlist)) { + box2 = (struct box *)list_get_current(&(JOB->res.boxlist)); + if (box2->line>0 || box2->c == PICTURE) continue; + if (lines->dx) yy = lines->dy * box2->x0 / (lines->dx); else yy=0; + if (box2->y0 >= y + yy && box2->y1 < y0 + dy // lower than y + && box2->x0 >= x0 && box2->x1 < x0 + dx // in box ? + && box2->c != PICTURE // no picture + && 2 * (box2->y1 - box2->y0) > my // right size ? + && (box2->y1 - box2->y0) < 4 * my) { + if ( box2->y0 - yy >= m1-my/4 + && box2->y0 - yy <= m2+my/4 + && box2->y1 - yy >= m3-my/4 + && box2->y1 - yy <= m4+my/4 ) { /* its within allowed range! */ + // jj++; // not used + if (abs(box2->y0 - yy - m1) <= abs(box2->y0 - yy - m2)) + { i1++; ma1 += box2->y0 - yy; } + else { i2++; ma2 += box2->y0 - yy; } + if (abs(box2->y1 - yy - m3) < abs(box2->y1 - yy - m4)) + { i3++; ma3 += box2->y1 - yy; } + else { i4++; ma4 += box2->y1 - yy; } + if (box2->x1>lines->x1[i]) lines->x1[i] = box2->x1; /* right end */ + if (box2->x0x0[i]) lines->x0[i] = box2->x0; /* left end */ + } + } + } end_for_each(&(JOB->res.boxlist)); + + if (i1) m1 = (ma1+i1/2) / i1; /* best rounded */ + if (i2) m2 = (ma2+i2/2) / i2; + if (i3) m3 = (ma3+i3-1) / i3; /* round up */ + if (i4) m4 = (ma4+i4-1) / i4; + // printf("\n# .. set3 m3 m=%3d %+2d %+2d %+2d",m1,m2-m1,m3-m1,m4-m1); + +#endif + + /* expand right and left end of line */ + for_each_data(&(JOB->res.boxlist)) { + box2 = (struct box *)list_get_current(&(JOB->res.boxlist)); + if (box2->line>0 || box2->c == PICTURE) continue; + if (lines->dx) yy = lines->dy * box2->x0 / (lines->dx); else yy=0; + if ( box2->y0 >= y0 && box2->y1 < y0 + dy + && box2->x0 >= x0 && box2->x1 < x0 + dx // in box ? + && box2->c != PICTURE // no picture + && box2->y0 >= m1-1 + && box2->y0 <= m4 + && box2->y1 >= m1 + && box2->y1 <= m4+1 ) { /* its within line */ + if (box2->x1>lines->x1[i]) lines->x1[i] = box2->x1; /* right end */ + if (box2->x0x0[i]) lines->x0[i] = box2->x0; /* left end */ + } + } end_for_each(&(JOB->res.boxlist)); + +#if 1 + /* this is only for test runs */ + if (JOB->cfg.verbose & 16) + fprintf(stderr," step 2 y=%4d m= %4d %+3d %+3d %+3d\n# ", + y,m1,m2-m1,m3-m1,m4-m1); +#endif + + if (m4 == m1) { + if(m3+m4>2*y) y = (m4+m3)/2; /* lower end may overlap the next line */ + continue; + } + jj=0; + lines->wt[i] = 100; + if (5 * (m2 - m1 +1) < m3 - m2 || (m2 - m1) < 2) jj|=1; /* same high */ + if (5 * (m4 - m3 +1) < m3 - m2 || (m4 - m3) < 1) jj|=2; /* same base */ + if (jj&1) lines->wt[i] = 75*lines->wt[i]/100; + if (jj&2) lines->wt[i] = 75*lines->wt[i]/100; + if (jj>0 && JOB->cfg.verbose) { + fprintf(stderr," trouble on line %d, wt*100= %d\n",i,lines->wt[i]); + fprintf(stderr,"# m= %4d %+3d %+3d %+3d\n",m1,m2-m1,m3-m1,m4-m1); + fprintf(stderr,"# i= %3d %3d %3d %3d (counts)\n",i1,i2,i3,i4); + if (jj==3) fprintf(stderr,"# all boxes of same high!\n# "); + if (jj==1) fprintf(stderr,"# all boxes of same upper bound!\n# "); + if (jj==2) fprintf(stderr,"# all boxes of same lower bound!\n# "); + } + /* ToDo: check for dots ij,. to get the missing information */ +#if 1 + /* jj=3: ABCDEF123456 or mnmno or gqpy or lkhfdtb => we are in trouble */ + if (jj==3 && (m4-m1)>my) { jj=0; m2=m1+my/8+1; m4=m3+my/8+1; } /* ABC123 */ + /* using idots, may fail on "ABCDEFGÄÜÖ" */ + if (jj==3 && mi>0 && mim4pre) { jj=2; m1=mi; } /* use ij dots */ + if (jj==1 && m2-(m3-m2)/4>m3pre ) { /* expect: acegmnopqrsuvwxyz */ + if (m1-m4pre0 && JOB->cfg.verbose & 16) { + fprintf(stderr," m= %4d %+2d %+2d %+2d my= %4d\n# ", + m1, m2-m1, m3-m1, m4-m1, my); + } +#endif + + + { // empty space between lines + lines->m4[i] = m4; + lines->m3[i] = m3; + lines->m2[i] = m2; + lines->m1[i] = m1; + lines->pitch[i] = JOB->cfg.spc; /* default word pitch */ + lines->mono[i] = 0; /* default spacing, 0=prop, 1=mono */ + if (JOB->cfg.verbose & 16) + fprintf(stderr, " m= %4d %+3d %+3d %+3d w= %d (line=%d)\n# ", + m1, m2 - m1, m3 - m1, m4 - m1, lines->wt[i], i); + if (i < MAXlines && m4 - m1 > 4) + i++; + if (i >= MAXlines) { + fprintf(stderr, "Warning: lines>MAXlines\n"); + break; + } + } + if (m3+m4>2*y) y = (m3+m4)/2; /* lower end may overlap the next line */ + if (m3>m3pre) m3pre = m3; else m3=y0; /* set for next-line scan */ + if (m4>m4pre) m4pre = m4; else m4=y0; /* set for next-line scan */ + } + lines->num = i; + if (JOB->cfg.verbose) + fprintf(stderr, " num_lines= %d", lines->num-1); + return 0; +} + +// ----- layout analyzis of dx*dy region at x0,y0 ----- +// ----- detect lines via recursive division (new version) --------------- +// what about text in frames??? +// ToDo: change to bottom-top analyse or/and take rotation into account +int detect_lines2(pix *p,int x0,int y0,int dx,int dy,int r){ + int i,x2,y2,x3,y3,x4,y4,x5,y5,y6,mx,my,x30,x31,y30,y31; + struct box *box2,*box3; + // shrink box + if(dx<=0 || dy<=0) return 0; + if(y0+dy< p->y/128 && y0==0) return 0; /* looks like dust */ + if(y0>p->y-p->y/128 && y0+dy==p->y) return 0; /* looks like dust */ + + if(r>1000){ return -1;} // something is wrong + if(JOB->cfg.verbose)fprintf(stderr,"\n# r=%2d ",r); + + mx=my=i=0; // mean thickness + // remove border, shrink size + x2=x0+dx-1; // min x + y2=y0+dy-1; // min y + x3=x0; // max x + y3=y0; // max y + for_each_data(&(JOB->res.boxlist)) { + box3 = (struct box *)list_get_current(&(JOB->res.boxlist)); + if(box3->y0>=y0 && box3->y1x0>=x0 && box3->x1x1 > x3 ) x3=box3->x1; // max x + if( box3->x0 < x2 ) x2=box3->x0; // min x + if( box3->y1 > y3 ) y3=box3->y1; // max y + if( box3->y0 < y2 ) y2=box3->y0; // min y + if(box3->c!=PICTURE) + if( box3->y1 - box3->y0 > 4 ) + { + i++; + mx+=box3->x1-box3->x0+1; // mean x + my+=box3->y1-box3->y0+1; // mean y + } + } + } end_for_each(&(JOB->res.boxlist)); + x0=x2; dx=x3-x2+1; + y0=y2; dy=y3-y2+1; + + if(i==0 || dx<=0 || dy<=0) return 0; + mx/=i;my/=i; + // better look for widest h/v-gap, ToDo: vertical lines? + if(r<8){ // max. depth + + // detect widest horizontal gap + y2=y3=y4=y5=y6=0; + x2=x3=x4=x5=y5=0;// min. 3 lines + // position and thickness of gap, y6=num_gaps, nbox^2 ops + for_each_data(&(JOB->res.boxlist)) { // not very efficient, sorry + box2 = (struct box *)list_get_current(&(JOB->res.boxlist)); + if( box2->c!=PICTURE ) /* ToDo: not sure, that this is a good idea */ + if( box2->y0>=y0 && box2->y1x0>=x0 && box2->x1y1-box2->y0>my/2 ){ // no pictures & dust??? + + y4=y0+dy-1; // nearest vert. box + x4=x0+dx-1; + // ToDo: rotate back box2->x1,y1 to x21,y21 + // look for nearest lowest (y4) and right (x4) neighbour + // of every box (box2) + for_each_data(&(JOB->res.boxlist)) { + box3 = (struct box *)list_get_current(&(JOB->res.boxlist)); + if(box3!=box2) + if(box3->y0>=y0 && box3->y1x0>=x0 && box3->x1c!=PICTURE) /* ToDo: not sure, that this is a good idea */ + if(box3->y1-box3->y0>my/2 ){ + // ToDo: here we need the rotation around box2 + x30=box3->x0; + x31=box3->x1; + y30=box3->y0; + y31=box3->y1; + // get min. distances to lower and to right direction + if( y31 > box2->y1 && y30 < y4 ) y4=y30-1; + if( x31 > box2->x1 && x30 < x4 ) x4=x30-1; + } + } end_for_each(&(JOB->res.boxlist)); + // set the witdht and position of largest hor./vert. gap + // largest gap: width position + if( y4-box2->y1 > y3 ) { y3=y4-box2->y1; y2=(y4+box2->y1)/2; } + if( x4-box2->x1 > x3 ) { x3=x4-box2->x1; x2=(x4+box2->x1)/2; } + } + } end_for_each(&(JOB->res.boxlist)); + // fprintf(stderr,"\n widest y-gap= %4d %4d",y2,y3); + // fprintf(stderr,"\n widest x-gap= %4d %4d",x2,x3); + + i=0; // i=1 at x, i=2 at y + // this is the critical point + // is this a good decision or not??? + if(x3>0 || y3>0){ + if(x3>mx && x3>2*y3 && (dy>5*x3 || (x3>10*y3 && y3>0))) i=1; else + if(dx>5*y3 && y3>my) i=2; + } + + // compare with largest box??? + for_each_data(&(JOB->res.boxlist)) { // not very efficient, sorry + box2 = (struct box *)list_get_current(&(JOB->res.boxlist)); + if( box2->c == PICTURE ) + if( box2->y0>=y0 && box2->y1x0>=x0 && box2->x1x1-box2->x0+4 > dx && box2->y1+4y1+1; i=2; break; } + if( box2->x1-box2->x0+4 > dx && box2->y0-4>y0 ) { y3=1; y2=box2->y0-1; i=2; break; } + if( box2->y1-box2->y0+4 > dy && box2->x1+4x1+1; i=1; break; } + if( box2->y1-box2->y0+4 > dy && box2->x0-4>x0 ) { x3=1; x2=box2->x0-1; i=1; break; } + } + } end_for_each(&(JOB->res.boxlist)); + if(JOB->cfg.verbose)fprintf(stderr," i=%d",i); + + if(JOB->cfg.verbose && i) fprintf(stderr," divide at %s x=%4d y=%4d dx=%4d dy=%4d", + ((i)?( (i==1)?"x":"y" ):"?"),x2,y2,x3,y3); + // divide horizontally if v-gap is thicker than h-gap + // and length is larger 5*width + if(i==1){ detect_lines2(p,x0,y0,x2-x0+1,dy,r+1); + return detect_lines2(p,x2,y0,x0+dx-x2+1,dy,r+1); } + // divide vertically + if(i==2){ detect_lines2(p,x0,y0,dx,y2-y0+1,r+1); + return detect_lines2(p,x0,y2,dx,y0+dy-y2+1,r+1); + } + } + + + if(JOB->cfg.verbose) if(dx<5 || dy<7)fprintf(stderr," empty box"); + if(dx<5 || dy<7) return 0; // do not care about dust + if(JOB->cfg.verbose)fprintf(stderr, " box detected at %4d %4d %4d %4d",x0,y0,dx,dy); + if(JOB->tmp.ppo.p){ + for(i=0;itmp.ppo,x0+i ,y0 ,255,16); + for(i=0;itmp.ppo,x0+i ,y0+dy-1,255,16); + for(i=0;itmp.ppo,x0 ,y0+i ,255,16); + for(i=0;itmp.ppo,x0+dx-1,y0+i ,255,16); + // writebmp("out10.bmp",p2,JOB->cfg.verbose); // colored should be better + } + return detect_lines1(p,x0-0*1,y0-0*2,dx+0*2,dy+0*3); + +/* + struct tlines *lines = &JOB->res.lines; + i=lines->num; lines->num++; + lines->m1[i]=y0; lines->m2[i]=y0+5*dy/16; + lines->m3[i]=y0+12*dy/16; lines->m4[i]=y0+dy-1; + lines->x0[i]=x0; lines->x1[i]=x0+dx-1; + if(JOB->cfg.verbose)fprintf(stderr," - line= %d",lines->num); + return 0; + */ +} + +/* ToDo: herons algorithm for square root x=(x+y/x)/2 is more efficient + * than interval subdivision (?) (germ.: Intervallschachtelung) + * without using matlib + * see http://www.math.vt.edu/people/brown/doc/sqrts.pdf + */ +int my_sqrt(int x){ + int y0=0,y1=x,ym; + for (;y0res.lines.{dx,dy} + * pass 1: get mean vector to nearest char + * pass 2: get mean vector to nearest char without outriders to pass 1 + * extimate direction as (dx,dy,num)[pass] + * ToDo: estimate an error, boxes only work fine for zero-rotation + * for 45 degree use vectors, not boxes to get base line + */ +#define INorm 1024 /* integer unit 1.0 */ +int detect_rotation_angle(job_t *job){ + struct box *box2, *box3, + *box_nn; /* nearest neighbour box */ + int x2, y2, x3, y3, dist, mindist, pass, + rx=0, ry=0, re=0, // final result + /* to avoid 2nd run, wie store pairs in 2 different categories */ + nn[4]={0,0,0,0}, /* num_pairs used for estimation [(pass-1)%2,pass%2] */ + dx[4]={0,0,0,0}, /* x-component of rotation vector per pass */ + dy[4]={0,0,0,0}, /* y-component of rotation vector per pass */ + er[4]={INorm/4,0,0,0}; /* mean angle deviation to pass-1 (radius^2) */ + // de; /* ToDo: absolute maximum error (dx^2+dy^2) */ + // ToDo: next pass: go to bigger distances and reduce max error + // error is diff between passes? or diff of bottoms and top borders (?) + + rx=1024; ry=0; // default + for (pass=0;pass<4;pass++) { + for_each_data(&(job->res.boxlist)) { + box2 = (struct box *)list_get_current(&(job->res.boxlist)); + if (box2->c==PICTURE) continue; + /* subfunction probability of char */ + // i? + // if (box2->x1 - box2->x0 < 3) continue; /* smallest font is 4x6 */ + if (box2->y1 - box2->y0 < 4) continue; + /* set maximum possible distance */ + box_nn=box2; // initial box to compare with + + // ToDo: clustering or majority + // the algorithm is far from being perfect, pitfalls are likely + // but its better than the old algorithm, ToDo: database-rotated-images + mindist = job->src.p.x * job->src.p.x + job->src.p.y * job->src.p.y; + /* get middle point of the box */ + x2 = (box2->x0 + box2->x1)/2; + y2 = (box2->y0 + box2->y1)/2; + re=0; + /* search for nearest neighbour box_nn[pass+1] of box_nn[pass] */ + for_each_data(&(job->res.boxlist)) { + box3 = (struct box *)list_get_current(&(job->res.boxlist)); + /* try to select only potential neighbouring chars */ + /* select out all senseless combinations */ + if (box3->c==PICTURE || box3==box2) continue; + x3 = (box3->x0 + box3->x1)/2; + y3 = (box3->y0 + box3->y1)/2; /* get middle point of the box */ + if (x3 pass-1? + // scalprod max in direction, cross prod min in direction + // a,b (vectors): ^2/(|a|*|b|)^2 = 0(90deg)..0.5(45deg).. 1(0deg) + // * 1024 ?? + if (pass>0) { // new variant = scalar product + // danger of int overflow, ToDo: use int fraction + re =(int) ((1.*(x3-x2)*dx[pass-1]+(y3-y2)*dy[pass-1]) + *(1.*(x3-x2)*dx[pass-1]+(y3-y2)*dy[pass-1])*INorm + /(1.*((x3-x2)*(x3-x2)+(y3-y2)*(y3-y2)) + *(1.*dx[pass-1]*dx[pass-1]+dy[pass-1]*dy[pass-1]))); + if (INorm-re>er[pass-1]) continue; // hits mean deviation + } + /* neighbours should have same order of size (?) */ + if (3*(box3->y1-box3->y0+4) < 2*(box2->y1-box2->y0+1)) continue; + if (2*(box3->y1-box3->y0+1) > 3*(box2->y1-box2->y0+4)) continue; + if (2*(box3->x1-box3->x0+1) > 5*(box2->x1-box2->x0+4)) continue; + if (5*(box3->x1-box3->x0+4) < 2*(box2->x1-box2->x0+1)) continue; + /* should be in right range, Idea: center3 outside box2? noholes */ + if ((x3x1-1) && (x3>box2->x0+1) + && (y3y1-1) && (y3>box2->y0+1)) continue; + // if chars are of different size, connect careful + if ( abs(x3-x2) > 2*(box2->x1 - box2->x0 + box3->x1 - box3 ->x0 + 2)) continue; + if ( abs(y3-y2) > (box2->x1 - box2->x0 + box3->x1 - box3 ->x0 + 2)) continue; + dist = (y3-y2)*(y3-y2) + (x3-x2)*(x3-x2); + // make distances in pass-1 directions shorter or continue if not in pass-1 range? + if (dist<9) continue; /* minimum distance^2 is 3^2 */ + if (distres.boxlist)); + + if (box_nn==box2) continue; /* has no neighbour, next box */ + + box3=box_nn; dist=mindist; + x3 = (box3->x0 + box3->x1)/2; + y3 = (box3->y0 + box3->y1)/2; /* get middle point of the box */ + // dist = my_sqrt(1024*((x3-x2)*(x3-x2)+(y3-y2)*(y3-y2))); + // compare with first box + x2 = (box2->x0 + box2->x1)/2; + y2 = (box2->y0 + box2->y1)/2; + // if the high of neighbouring boxes differ, use min diff (y0,y1) + if (pass>0 && 16*abs(dy[pass-1]) < dx[pass-1]) // dont work for strong rot. + if (abs(box2->y1-box2->y0-box3->y1+box3->y0)>(box2->y1-box2->y0)/8) { + // ad eh ck ... + if (abs(box2->y1-box3->y1)y1; y3=box3->y1; } + // ag ep qu ... + if (abs(box2->y0-box3->y0)y0; y3=box3->y0; } + } + if (abs(x3-x2)<4) continue; + dx[pass]+=(x3-x2)*1024; /* normalized before averaging */ + dy[pass]+=(y3-y2)*1024; /* 1024 is for the precision */ + nn[pass]++; + if (pass>0) { // set error = mean deviation from pass -1 + re = INorm-(int)((1.*(x3-x2)*dx[pass-1]+(y3-y2)*dy[pass-1]) + *(1.*(x3-x2)*dx[pass-1]+(y3-y2)*dy[pass-1])*INorm + /((1.*(x3-x2)*(x3-x2)+(y3-y2)*(y3-y2)) + *(1.*dx[pass-1]*dx[pass-1]+dy[pass-1]*dy[pass-1])) + ); + er[pass]+=re; + } +#if 0 + if(JOB->cfg.verbose) + fprintf(stderr,"# next nb (x,y,dx,dy,re) %6d %6d %5d %5d %5d pass %d\n", + x2, y2, x3-x2, y3-y2, re, pass+1); +#endif + } end_for_each(&(job->res.boxlist)); + if (!nn[pass]) break; + if (nn[pass]) { + /* meanvalues */ + rx=dx[pass]/=nn[pass]; + ry=dy[pass]/=nn[pass]; + if (pass>0) er[pass]/=nn[pass]; + } + if(JOB->cfg.verbose) + fprintf(stderr,"# rotation angle (x,y,maxr,num)" + " %6d %6d %6d %4d pass %d\n", + rx, ry, er[pass], nn[pass], pass+1); + } + if (abs(ry*100)>abs(rx*50)) + fprintf(stderr,"\n"); + /* ToDo: normalize to 2^10 bit (square fits to 32 it) */ + JOB->res.lines.dx=rx; + JOB->res.lines.dy=ry; + return 0; +} + +/* ----- detect lines --------------- */ +int detect_text_lines(pix * pp, int mo) { + + if (JOB->cfg.verbose) + fprintf(stderr, "# detect.c detect_text_lines (vvv=16 for more info) "); + if (mo & 4){ + if (JOB->cfg.verbose) fprintf(stderr, "# zoning\n# ... "); + detect_lines2(pp, 0, 0, pp->x, pp->y, 0); // later replaced by better algo + } else + detect_lines1(pp, 0, 0, pp->x, pp->y); // old algo + + if(JOB->cfg.verbose) fprintf(stderr,"\n"); + return 0; +} + + +/* ----- adjust lines --------------- */ +// rotation angle? JOB->res.lines.dy, .x0 removed later +// this is for cases, where m1..m4 is not very sure detected before +// chars are recognized +int adjust_text_lines(pix * pp, int mo) { + struct box *box2; + int *m, /* summ m1..m4, num_chars for m1..m4, min m1..m4, max. m1..m4 */ + l, i, dy, dx, diff=0, y0, y1; + + if ((l=JOB->res.lines.num)<2) return 0; // ??? + if (JOB->cfg.verbose) + fprintf(stderr, "# adjust text lines "); + m=(int *)malloc(l*16*sizeof(int)); + if (!m) { fprintf(stderr," malloc failed\n"); return 0;} + for (i=0;i<16*l;i++) m[i]=0; /* initialize */ + dy=JOB->res.lines.dy; /* tan(alpha) of skewing */ + dx=JOB->res.lines.dx; /* old: width of image */ + // js: later skewing is replaced by one transformation of vectorized image + + if (dx) + for_each_data(&(JOB->res.boxlist)) { + box2 = (struct box *)list_get_current(&(JOB->res.boxlist)); + if (box2->line<=0) continue; + if (box2->num_ac<1) continue; + if (box2->wac[0]<95) continue; + if (box2->m2==0 || box2->y1m2) continue; // char outside line + if (box2->m3==4 || box2->y0>box2->m3) continue; // char outside line + y0=box2->y0-((box2->x1)*dy/dx); /* corrected by page skewing */ + y1=box2->y1-((box2->x1)*dy/dx); + if (strchr("aemnr",(char)box2->tac[0])) { // cC vV sS oO ... is unsure! + m[box2->line*16+1]+=y0; m[box2->line*16+5]++; // num m2 + m[box2->line*16+2]+=y1; m[box2->line*16+6]++; // num m3 + if (m[box2->line*16+ 9]>y0) m[box2->line*16+ 9]=y0; /* min m2 */ + if (m[box2->line*16+13]line*16+13]=y0; /* max m2 */ + if (m[box2->line*16+10]>y1) m[box2->line*16+10]=y1; /* min m3 */ + if (m[box2->line*16+14]line*16+14]=y1; /* max m3 */ + } + if (strchr("bdhklABDEFGHIKLMNRT123456789",(char)box2->tac[0])) { + m[box2->line*16+0]+=y0; m[box2->line*16+4]++; // num m1 + m[box2->line*16+2]+=y1; m[box2->line*16+6]++; // num m3 + if (m[box2->line*16+ 8]>y0) m[box2->line*16+ 8]=y0; /* min m1 */ + if (m[box2->line*16+12]line*16+12]=y0; /* max m1 */ + if (m[box2->line*16+10]>y1) m[box2->line*16+10]=y1; /* min m3 */ + if (m[box2->line*16+14]line*16+14]=y1; /* max m3 */ + } + if (strchr("gq",(char)box2->tac[0])) { + m[box2->line*16+1]+=y0; m[box2->line*16+5]++; // num m2 + m[box2->line*16+3]+=y1; m[box2->line*16+7]++; // num m4 + if (m[box2->line*16+ 9]>y0) m[box2->line*16+ 9]=y0; /* min m2 */ + if (m[box2->line*16+13]line*16+13]=y0; /* max m2 */ + if (m[box2->line*16+11]>y1) m[box2->line*16+11]=y1; /* min m4 */ + if (m[box2->line*16+15]line*16+15]=y1; /* max m4 */ + } + } end_for_each(&(JOB->res.boxlist)); + + for (i=1;ires.lines.m1[i]-m[i*16+0]/m[i*16+4]); + if (m[i*16+5]) diff+=abs(JOB->res.lines.m2[i]-m[i*16+1]/m[i*16+5]); + if (m[i*16+6]) diff+=abs(JOB->res.lines.m3[i]-m[i*16+2]/m[i*16+6]); + if (m[i*16+7]) diff+=abs(JOB->res.lines.m4[i]-m[i*16+3]/m[i*16+7]); + /* recalculate sureness, empirically */ + if (m[i*16+4]*m[i*16+5]*m[i*16+6]*m[i*16+7] > 0) + JOB->res.lines.wt[i]=(JOB->res.lines.wt[i]+100)/2; + else + JOB->res.lines.wt[i]=(JOB->res.lines.wt[i]*90)/100; + // set mean values of sure detected bounds (rounded precisely) + if ( m[i*16+4]) JOB->res.lines.m1[i]=(m[i*16+0]+m[i*16+4]/2)/m[i*16+4]; + if ( m[i*16+5]) JOB->res.lines.m2[i]=(m[i*16+1]+m[i*16+5]/2)/m[i*16+5]; + if ( m[i*16+6]) JOB->res.lines.m3[i]=(m[i*16+2]+m[i*16+6]/2)/m[i*16+6]; + if ( m[i*16+7]) JOB->res.lines.m4[i]=(m[i*16+3]+m[i*16+7]/2)/m[i*16+7]; + // care about very small fonts + if (JOB->res.lines.m2[i]-JOB->res.lines.m1[i]<=1 && m[i*16+5]==0 && m[i*16+4]) + JOB->res.lines.m2[i]=JOB->res.lines.m1[i]+2; + if (JOB->res.lines.m2[i]-JOB->res.lines.m1[i]<=1 && m[i*16+4]==0 && m[i*16+5]) + JOB->res.lines.m1[i]=JOB->res.lines.m2[i]-2; + if (JOB->res.lines.m4[i]-JOB->res.lines.m3[i]<=1 && m[i*16+7]==0 && m[i*16+6]) + JOB->res.lines.m4[i]=JOB->res.lines.m3[i]+2; + if (JOB->res.lines.m4[i]-JOB->res.lines.m3[i]<=1 && m[i*16+6]==0 && m[i*16+7]) + JOB->res.lines.m3[i]=JOB->res.lines.m4[i]-2; + if ( m[i*16+7]<1 && + JOB->res.lines.m4[i] + <=JOB->res.lines.m3[i]+(JOB->res.lines.m3[i]-JOB->res.lines.m2[i])/4 ) + JOB->res.lines.m4[i]= + JOB->res.lines.m3[i]+(JOB->res.lines.m3[i]-JOB->res.lines.m2[i])/4; + if ( m[i*16+7]<1 && m[i*16+12+2]>0 && // m4 < max.m3+.. + JOB->res.lines.m4[i] < 2*m[i*16+12+2]-JOB->res.lines.m3[i]+2 ) + JOB->res.lines.m4[i] = 2*m[i*16+12+2]-JOB->res.lines.m3[i]+2; + if (JOB->res.lines.m4[i]<=JOB->res.lines.m3[i]) + JOB->res.lines.m4[i]= JOB->res.lines.m3[i]+1; /* 4x6 */ + + if (JOB->cfg.verbose & 17) + fprintf(stderr, "\n# line= %3d m= %4d %+3d %+3d %+3d " + " n= %2d %2d %2d %2d w= %3d diff= %d", + i, JOB->res.lines.m1[i], + JOB->res.lines.m2[i] - JOB->res.lines.m1[i], + JOB->res.lines.m3[i] - JOB->res.lines.m1[i], + JOB->res.lines.m4[i] - JOB->res.lines.m1[i], + m[i*16+4],m[i*16+5],m[i*16+6],m[i*16+7], + JOB->res.lines.wt[i], diff); + } + diff=0; // count adjusted chars +#if 1 + if (dx) + for_each_data(&(JOB->res.boxlist)) { + box2 = (struct box *)list_get_current(&(JOB->res.boxlist)); + if (box2->line<=0) continue; + /* check if box was on the wrong line, ToDo: search a better line */ + if (2*box2->y0<2*JOB->res.lines.m1[box2->line] + -JOB->res.lines.m4[box2->line] + +JOB->res.lines.m1[box2->line]) box2->line=0; + if (2*box2->y1>2*JOB->res.lines.m4[box2->line] + +JOB->res.lines.m4[box2->line] + -JOB->res.lines.m1[box2->line]) box2->line=0; + /* do adjustments */ + if (box2->num_ac>0 + && box2->num_ac > 31 && box2->tac[0] < 127 /* islower(>256) may SIGSEGV */ + && strchr("cCoOpPsSuUvVwWxXyYzZ",(char)box2->tac[0])) { // no_wchar + if (box2->y0-((box2->x1)*dy/dx) + < (JOB->res.lines.m1[box2->line]+JOB->res.lines.m2[box2->line])/2 + && islower(box2->tac[0]) + ) { setac(box2,toupper((char)box2->tac[0]),(box2->wac[0]+101)/2); diff++; } + if (box2->y0-((box2->x1)*dy/dx) + > (JOB->res.lines.m1[box2->line]+JOB->res.lines.m2[box2->line]+1)/2 + && isupper(box2->tac[0]) + ){ setac(box2,tolower((char)box2->tac[0]),(box2->wac[0]+101)/2); diff++; } + } + box2->m1=JOB->res.lines.m1[box2->line]+((box2->x1)*dy/dx); + box2->m2=JOB->res.lines.m2[box2->line]+((box2->x1)*dy/dx); + box2->m3=JOB->res.lines.m3[box2->line]+((box2->x1)*dy/dx); + box2->m4=JOB->res.lines.m4[box2->line]+((box2->x1)*dy/dx); + } end_for_each(&(JOB->res.boxlist)); +#endif + + free(m); + if(JOB->cfg.verbose) fprintf(stderr,"\n# changed_chars= %d\n",diff); + return(diff); +} + +/* ---- measure mean character + * recalculate mean width and high after changes in boxlist + * ToDo: only within a Range? + */ +int calc_average() { + int i = 0, x0, y0, x1, y1; + struct box *box4; + + JOB->res.numC = 0; + JOB->res.sumY = 0; + JOB->res.sumX = 0; + for_each_data(&(JOB->res.boxlist)) { + box4 = (struct box *)list_get_current(&(JOB->res.boxlist)); + if( box4->c != PICTURE ){ + x0 = box4->x0; x1 = box4->x1; + y0 = box4->y0; y1 = box4->y1; + i++; + if (JOB->res.avX * JOB->res.avY > 0) { + if (x1 - x0 + 1 > 4 * JOB->res.avX + && y1 - y0 + 1 > 4 * JOB->res.avY) continue; /* small picture */ + if (4 * (y1 - y0 + 1) < JOB->res.avY || y1 - y0 < 2) + continue; // dots .,-_ etc. + } + if (x1 - x0 + 1 < 4 + && y1 - y0 + 1 < 6 ) continue; /* dots etc */ + JOB->res.sumX += x1 - x0 + 1; + JOB->res.sumY += y1 - y0 + 1; + JOB->res.numC++; + } + } end_for_each(&(JOB->res.boxlist)); + if ( JOB->res.numC ) { /* avoid div 0 */ + JOB->res.avY = (JOB->res.sumY+JOB->res.numC/2) / JOB->res.numC; + JOB->res.avX = (JOB->res.sumX+JOB->res.numC/2) / JOB->res.numC; + } + if (JOB->cfg.verbose){ + fprintf(stderr, "# averages: mXmY= %d %d nC= %d n= %d\n", + JOB->res.avX, JOB->res.avY, JOB->res.numC, i); + } + return 0; +} + + +/* ---- analyse boxes, find pictures and mark (do this first!!!) + */ +int detect_pictures(job_t *job) { + int i = 0, x0, y0, x1, y1, num_h; + struct box *box2, *box4; + + if ( job->res.numC == 0 ) { + if (job->cfg.verbose) fprintf(stderr, + "# detect.c L%d Warning: numC=0\n", __LINE__); + return -1; + } + /* ToDo: set Y to uppercase mean value? */ + job->res.avY = (job->res.sumY+job->res.numC/2) / job->res.numC; + job->res.avX = (job->res.sumX+job->res.numC/2) / job->res.numC; + /* ToDo: two highest volumes? crosses, on extreme volume + on border */ + if (job->cfg.verbose) + fprintf(stderr, "# detect.c L%d pictures, frames, mXmY= %d %d ... ", + __LINE__, job->res.avX, job->res.avY); + for_each_data(&(job->res.boxlist)) { + box2 = (struct box *)list_get_current(&(job->res.boxlist)); + if (box2->c == PICTURE) continue; + x0 = box2->x0; x1 = box2->x1; + y0 = box2->y0; y1 = box2->y1; + + /* pictures could be of unusual size */ + if (x1 - x0 + 1 > 4 * job->res.avX || y1 - y0 + 1 > 4 * job->res.avY) { + /* count objects on same baseline which could be chars */ + /* else: big headlines could be misinterpreted as pictures */ + num_h=0; + for_each_data(&(job->res.boxlist)) { + box4 = (struct box *)list_get_current(&(job->res.boxlist)); + if (box4->c == PICTURE) continue; + if (box4->y1-box4->y0 > 2*(y1-y0)) continue; + if (2*(box4->y1-box4->y0) < y1-y0) continue; + if (box4->y0 > y0 + (y1-y0+1)/2 + || box4->y0 < y0 - (y1-y0+1)/2 + || box4->y1 > y1 + (y1-y0+1)/2 + || box4->y1 < y1 - (y1-y0+1)/2) continue; + // ToDo: continue if numcross() only 1, example: |||IIIll||| + num_h++; + } end_for_each(&(job->res.boxlist)); + if (num_h>4) continue; + box2->c = PICTURE; + i++; + } + /* ToDo: pictures could have low contrast=Sum((pixel(p,x,y)-160)^2) */ + } end_for_each(&(job->res.boxlist)); + // start second iteration + if (job->cfg.verbose) { + fprintf(stderr, " %d - boxes %d\n", i, job->res.numC-i); + } + calc_average(); + return 0; +} diff --git a/3rdparty/gocr-0.48/src/gocr.c b/3rdparty/gocr-0.48/src/gocr.c new file mode 100644 index 0000000..16e017d --- /dev/null +++ b/3rdparty/gocr-0.48/src/gocr.c @@ -0,0 +1,374 @@ +/* +This is a Optical-Character-Recognition program +Copyright (C) 2000-2009 Joerg Schulenburg + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + see README for EMAIL-address + + sometimes I have written comments in german language, sorry for that + + This file was retrieved from pgm2asc.cc of Joerg, in order to have + a library of the ocr-engine from Klaas Freitag + + */ +#include "config.h" +#include +#include +#include +#include +#ifdef HAVE_GETTIMEOFDAY +#include +#endif +#ifdef HAVE_UNISTD_H +#include +#endif + +#include "pnm.h" +#include "pgm2asc.h" +#include "pcx.h" +#include "ocr0.h" /* only_numbers */ +#include "progress.h" +#include "version.h" + +static void out_version(int v) { + fprintf(stderr, " Optical Character Recognition --- gocr " + version_string " " release_string "\n" + " Copyright (C) 2001-2009 Joerg Schulenburg GPG=1024D/53BDFBE3\n" + " released under the GNU General Public License\n"); + /* as recommended, (c) and license should be part of the binary */ + /* no email because of SPAM, see README for contacting the author */ + if (v) + fprintf(stderr, " use option -h for help\n"); + if (v & 2) + exit(1); + return; +} + +static void help(void) { + out_version(0); + /* output is shortened to essentials, see manual page for details */ + fprintf(stderr, + " using: gocr [options] pnm_file_name # use - for stdin\n" + " options (see gocr manual pages for more details):\n" + " -h, --help\n" + " -i name - input image file (pnm,pgm,pbm,ppm,pcx,...)\n" + " -o name - output file (redirection of stdout)\n" + " -e name - logging file (redirection of stderr)\n" + " -x name - progress output to fifo (see manual)\n" + " -p name - database path including final slash (default is ./db/)\n"); + fprintf(stderr, /* string length less than 509 bytes for ISO C89 */ + " -f fmt - output format (ISO8859_1 TeX HTML XML UTF8 ASCII)\n" + " -l num - threshold grey level 0<160<=255 (0 = autodetect)\n" + " -d num - dust_size (remove small clusters, -1 = autodetect)\n" + " -s num - spacewidth/dots (0 = autodetect)\n" + " -v num - verbose (see manual page)\n" + " -c string - list of chars (debugging, see manual)\n" + " -C string - char filter (ex. hexdigits: ""0-9A-Fx"", only ASCII)\n" + " -m num - operation modes (bitpattern, see manual)\n"); + fprintf(stderr, /* string length less than 509 bytes for ISO C89 */ + " -a num - value of certainty (in percent, 0..100, default=95)\n" + " -u string - output this string for every unrecognized character\n"); + fprintf(stderr, /* string length less than 509 bytes for ISO C89 */ + " examples:\n" + "\tgocr -m 4 text1.pbm # do layout analyzis\n" + "\tgocr -m 130 -p ./database/ text1.pbm # extend database\n" + "\tdjpeg -pnm -gray text.jpg | gocr - # use jpeg-file via pipe\n" + "\n"); + fprintf(stderr, " webpage: http://jocr.sourceforge.net/\n"); + exit(0); +} + +#ifdef HAVE_GETTIMEOFDAY +/* from the glibc documentation */ +static int timeval_subtract (struct timeval *result, struct timeval *x, + struct timeval *y) { + + /* Perform the carry for the later subtraction by updating Y. */ + if (x->tv_usec < y->tv_usec) { + int nsec = (y->tv_usec - x->tv_usec) / 1000000 + 1; + y->tv_usec -= 1000000 * nsec; + y->tv_sec += nsec; + } + if (x->tv_usec - y->tv_usec > 1000000) { + int nsec = (x->tv_usec - y->tv_usec) / 1000000; + y->tv_usec += 1000000 * nsec; + y->tv_sec -= nsec; + } + + /* Compute the time remaining to wait. + `tv_usec' is certainly positive. */ + result->tv_sec = x->tv_sec - y->tv_sec; + result->tv_usec = x->tv_usec - y->tv_usec; + + /* Return 1 if result is negative. */ + return x->tv_sec < y->tv_sec; +} +#endif + +static void process_arguments(job_t *job, int argn, char *argv[]) +{ + int i; + char *s1; + + assert(job); + + if (argn <= 1) { + out_version(1); + exit(0); + } +#ifdef HAVE_PGM_H + pnm_init(&argn, &argv); +#endif + + /* process arguments */ + for (i = 1; i < argn; i++) { + if (strcmp(argv[i], "--help") == 0) + help(); /* and quits */ + if (argv[i][0] == '-' && argv[i][1] != 0) { + s1 = ""; + if (i + 1 < argn) + s1 = argv[i + 1]; + switch (argv[i][1]) { + case 'h': /* help */ + help(); + break; + case 'i': /* input image file */ + job->src.fname = s1; + i++; + break; + case 'e': /* logging file */ + if (s1[0] == '-' && s1[1] == '\0') { +#ifdef HAVE_UNISTD_H + dup2(STDOUT_FILENO, STDERR_FILENO); /* -e /dev/stdout works */ +#else + fprintf(stderr, "stderr redirection not possible without unistd.h\n"); +#endif + } + else if (!freopen(s1, "w", stderr)) { + fprintf(stderr, "stderr redirection to %s failed\n", s1); + } + i++; + break; + case 'p': /* database path */ + job->cfg.db_path=s1; + i++; + break; + case 'o': /* output file */ + if (s1[0] == '-' && s1[1] == '\0') { /* default */ + } + else if (!freopen(s1, "w", stdout)) { + fprintf(stderr, "stdout redirection to %s failed\n", s1); + }; + i++; + break; + case 'f': /* output format */ + if (strcmp(s1, "ISO8859_1") == 0) job->cfg.out_format=ISO8859_1; else + if (strcmp(s1, "TeX") == 0) job->cfg.out_format=TeX; else + if (strcmp(s1, "HTML") == 0) job->cfg.out_format=HTML; else + if (strcmp(s1, "XML") == 0) job->cfg.out_format=XML; else + if (strcmp(s1, "SGML") == 0) job->cfg.out_format=SGML; else + if (strcmp(s1, "UTF8") == 0) job->cfg.out_format=UTF8; else + if (strcmp(s1, "ASCII") == 0) job->cfg.out_format=ASCII; else + fprintf(stderr,"Warning: unknown format (-f %s)\n",s1); + i++; + break; + case 'c': /* list of chars (_ = not recognized chars) */ + job->cfg.lc = s1; + i++; + break; + case 'C': /* char filter, default: NULL (all chars) */ + /* ToDo: UTF8 input, wchar */ + job->cfg.cfilter = s1; + i++; + break; + case 'd': /* dust size */ + job->cfg.dust_size = atoi(s1); + i++; + break; + case 'l': /* grey level 0<160<=255, 0 for autodetect */ + job->cfg.cs = atoi(s1); + i++; + break; + case 's': /* spacewidth/dots (0 = autodetect) */ + job->cfg.spc = atoi(s1); + i++; + break; + case 'v': /* verbose mode */ + job->cfg.verbose |= atoi(s1); + i++; + break; + case 'm': /* operation modes */ + job->cfg.mode |= atoi(s1); + i++; + break; + case 'n': /* numbers only */ + job->cfg.only_numbers = atoi(s1); + i++; + break; + case 'x': /* initialize progress output s1=fname */ + ini_progress(s1); + i++; + break; + case 'a': /* set certainty */ + job->cfg.certainty = atoi(s1);; + i++; + break; + case 'u': /* output marker for unrecognized chars */ + job->cfg.unrec_marker = s1; + i++; + break; + default: + fprintf(stderr, "# unknown option use -h for help\n"); + } + continue; + } + else /* argument can be filename v0.2.5 */ if (argv[i][0] != '-' + || argv[i][1] == '\0' ) { + job->src.fname = argv[i]; + } + } +} + +static void mark_start(job_t *job) { + assert(job); + + if (job->cfg.verbose) { + out_version(0); + /* insert some helpful info for support */ + fprintf(stderr, "# compiled: " __DATE__ ); +#if defined(__GNUC__) + fprintf(stderr, " GNUC-%d", __GNUC__ ); +#endif +#ifdef __GNUC_MINOR__ + fprintf(stderr, ".%d", __GNUC_MINOR__ ); +#endif +#if defined(__linux) + fprintf(stderr, " linux"); +#elif defined(__unix) + fprintf(stderr, " unix"); +#endif +#if defined(__WIN32) || defined(__WIN32__) + fprintf(stderr, " WIN32"); +#endif +#if defined(__WIN64) || defined(__WIN64__) + fprintf(stderr, " WIN64"); +#endif +#if defined(__VERSION__) + fprintf(stderr, " version " __VERSION__ ); +#endif + fprintf(stderr, "\n"); + fprintf(stderr, + "# options are: -l %d -s %d -v %d -c %s -m %d -d %d -n %d -a %d -C \"%s\"\n", + job->cfg.cs, job->cfg.spc, job->cfg.verbose, job->cfg.lc, job->cfg.mode, + job->cfg.dust_size, job->cfg.only_numbers, job->cfg.certainty, + job->cfg.cfilter); + fprintf(stderr, "# file: %s\n", job->src.fname); +#ifdef USE_UNICODE + fprintf(stderr,"# using unicode\n"); +#endif +#ifdef HAVE_GETTIMEOFDAY + gettimeofday(&job->tmp.init_time, NULL); +#endif + } +} + +static void mark_end(job_t *job) { + assert(job); + +#ifdef HAVE_GETTIMEOFDAY + /* show elapsed time */ + if (job->cfg.verbose) { + struct timeval end, result; + gettimeofday(&end, NULL); + timeval_subtract(&result, &end, &job->tmp.init_time); + fprintf(stderr,"Elapsed time: %d:%02d:%3.3f.\n", (int)result.tv_sec/60, + (int)result.tv_sec%60, (float)result.tv_usec/1000); + } +#endif +} + +static int read_picture(job_t *job) { + int rc=0; + assert(job); + + if (strstr(job->src.fname, ".pcx")) + readpcx(job->src.fname, &job->src.p, job->cfg.verbose); + else + rc=readpgm(job->src.fname, &job->src.p, job->cfg.verbose); + return rc; /* 1 for multiple images, 0 else */ +} + +/* subject of change, we need more output for XML (ToDo) */ +void print_output(job_t *job) { + int linecounter = 0; + const char *line; + + assert(job); + + linecounter = 0; + line = getTextLine(linecounter++); + while (line) { + /* notice: decode() is shiftet to getTextLine since 0.38 */ + fputs(line, stdout); + if (job->cfg.out_format==HTML) fputs("
",stdout); + if (job->cfg.out_format!=XML) fputc('\n', stdout); + line = getTextLine(linecounter++); + } + free_textlines(); +} + +/* FIXME jb: remove JOB; */ +job_t *JOB; + + +/* ------------------------------------------------------------- +// ------ MAIN - replace this by your own aplication! +// ------------------------------------------------------------- */ +int main(int argn, char *argv[]) { + int multipnm=1; + job_t job; + + JOB = &job; + setvbuf(stdout, (char *) NULL, _IONBF, 0); /* not buffered */ + + while (multipnm==1) { + + job_init(&job); + + process_arguments(&job, argn, argv); + + mark_start(&job); + + multipnm = read_picture(&job); + /* separation of main and rest for using as lib + this will be changed later => introduction of set_option() + for better communication to the engine */ + if (multipnm<0) break; /* read error */ + + /* call main loop */ + pgm2asc(&job); + + mark_end(&job); + + print_output(&job); + + job_free(&job); + + } + + return 0; +} + diff --git a/3rdparty/gocr-0.48/src/gocr.h b/3rdparty/gocr-0.48/src/gocr.h new file mode 100644 index 0000000..fc798c4 --- /dev/null +++ b/3rdparty/gocr-0.48/src/gocr.h @@ -0,0 +1,288 @@ +/* +This is a Optical-Character-Recognition program +Copyright (C) 2000-2006 Joerg Schulenburg + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + see README for EMAIL-address + + sometimes I have written comments in german language, sorry for that + + - look for ??? for preliminary code +*/ + +/* General headerfile with gocr-definitions */ + +#ifndef __GOCR_H__ +#define __GOCR_H__ + +#include "pnm.h" +#include "unicode.h" +#include "list.h" +#include +#ifdef HAVE_GETTIMEOFDAY +#include +#endif + +/* + * wchar_t should always exist (ANSI), but WCHAR.H is sometimes missing + * USE_UNICODE should be removed or replaced by HAVE_WCHAR_H in future + */ +#ifdef HAVE_WCHAR_H +#define USE_UNICODE 1 +#endif + +/* extern "C"{ */ +/* ------------------------ feature extraction ----------------- */ +#define AT 7 /* mark */ +#define M1 1 /* mark */ +enum direction { + UP=1, DO, RI, LE +}; +typedef enum direction DIRECTION; +#define ST 7 /* stop */ +/* ------------------------------------------------------------- */ +/* detect maximas in of line overlapps (return in %) and line koord */ +#define HOR 1 /* horizontal */ +#define VER 2 /* vertikal */ +#define RIS 3 /* rising=steigend */ +#define FAL 4 /* falling=fallend */ + +#define MAXlines 1024 + +/* ToDo: if we have a tree instead of a list, a line could be a node object */ +struct tlines { + int num; + int dx, dy; /* direction of text lines (straight/skew) */ + int m1[MAXlines], /* start of line = upper bound of 'A' */ + m2[MAXlines], /* upper bound of 'e' */ + m3[MAXlines], /* lower bound of 'e' = baseline */ + m4[MAXlines]; /* stop of line = lower bound of 'q' */ + /* ToDo: add sureness per m1,m2 etc? */ + int x0[MAXlines], + x1[MAXlines]; /* left and right border */ + int wt[MAXlines]; /* weight, how sure thats correct in percent, v0.41 */ + int pitch[MAXlines]; /* word pitch (later per box?), v0.41 */ + int mono[MAXlines]; /* spacing type, 0=proportional, 1=monospaced */ +}; + +#define NumAlt 10 /* maximal number of alternative chars (table length) */ +#define MaxNumFrames 8 /* maximum number of frames per char/box */ +#define MaxFrameVectors 128 /* maximum vectors per frame (*8=1KB/box) */ +/* ToDo: use only malloc_box(),free_box(),copybox() for creation, destroy etc. + * adding reference_counter to avoid pointer pointing to freed box + */ +struct box { /* this structure should contain all pixel infos of a letter */ + int x0,x1,y0,y1,x,y,dots; /* xmin,xmax,ymin,ymax,reference-pixel,i-dots */ + int num_boxes, /* 1 "abc", 2 "!i?", 3 "ä" (composed objects) 0.41 */ + num_subboxes; /* 1 for "abdegopqADOPQR", 2 for "B" (holes) 0.41 */ + wchar_t c; /* detected char (same as tac[0], obsolete?) */ + wchar_t modifier; /* default=0, see compose() in unicode.c */ + int num; /* same number = same char */ + int line; /* line number (points to struct tlines lines) */ + int m1,m2,m3,m4; /* m2 = upper boundary, m3 = baseline */ + /* planed: sizeof hole_1, hole_2, certainty (run1=100%,run2=90%,etc.) */ + pix *p; /* pointer to pixmap (v0.2.5) */ + /* tac, wac is used together with setac() to manage very similar chars */ + int num_ac; /* length of table (alternative chars), default=0 */ + wchar_t tac[NumAlt]; /* alternative chars, only used by setac(),getac() */ + int wac[NumAlt]; /* weight of alternative chars */ + char *tas[NumAlt]; /* alternative UTF8-strings or XML codes if tac[]=0 */ + /* replacing old obj */ + /* ToDo: (*obj)[NumAlt] + olen[NumAlt] ??? */ + /* ToDo: bitmap for possible Picture|Object|Char ??? */ +/* char *obj; */ /* pointer to text-object ... -> replaced by tas[] */ + /* ... (melted chars, barcode, picture coords, ...) */ + /* must be freed before box is freed! */ + /* do _not_ copy only the pointer to object */ + /* -------------------------------------------------------- + * extension since v0.41 js05, Store frame vectors, + * which is a table of vectors sourrounding the char and its + * inner white holes. The advantage is the independence from + * resolution, handling of holes, overlap and rotation. + * --------------------------------------------------------- */ + int num_frames; /* number of frames: 1 for cfhklmnrstuvwxyz */ + /* 2 for abdegijopq */ + int frame_vol[MaxNumFrames]; /* volume inside frame +/- (black/white) */ + int frame_per[MaxNumFrames]; /* periphery, summed length of vectors */ + int num_frame_vectors[MaxNumFrames]; /* index to next frame */ + /* biggest frame should be stored first (outer frame) */ + /* biggest has the maximum pair distance */ + /* num vector loops */ + int frame_vector[MaxFrameVectors][2]; /* may be 16*int=fixpoint_number */ + +}; +typedef struct box Box; + +/* true if the coordination pair (a,b) is outside the image p */ +#define outbounds(p, a, b) (a < 0 || b < 0 || a >= (p)->x || b >= (p)->y) + +/* ToDo: this structure seems to be obsolete, remove it */ +typedef struct path { + int start; /* color at the beginning of the path, (0=white, 1=black) */ + int *x; /* x coordinates of transitions */ + int *y; /* y coordinates of transitions */ + int num; /* current number of entries in x or y */ + int max; /* maximum number of entries in x or y */ + /* (if more values need to be stored, the arrays are enlarged) */ +} path_t; + +/* job_t contains all information needed for an OCR task */ +typedef struct job_s { + struct { /* source data */ + char *fname; /* input filename; default value: "-" */ + pix p; /* source pixel data, pixelmap 8bit gray */ + } src; + struct { /* temporary stuff, e.g. buffers */ +#ifdef HAVE_GETTIMEOFDAY + struct timeval init_time; /* starting time of this job */ +#endif + pix ppo; /* pixmap for visual debugging output, obsolete */ + + /* sometimes recognition function is called again and again, if result was 0 + n_run tells the pixel function to return alternative results */ + int n_run; /* num of run, if run_2 critical pattern get other results */ + /* used for 2nd try, pixel uses slower filter function etc. */ + List dblist; /* list of boxes loaded from the character database */ + } tmp; + struct { /* results */ + List boxlist; /* store every object in a box, which contains */ + /* the characteristics of the object (see struct box) */ + List linelist; /* recognized text lines after recognition */ + + struct tlines lines; /* used to access to line-data (statistics) */ + /* here the positions (frames) of lines are */ + /* stored for further use */ + int avX,avY; /* average X,Y (avX=sumX/numC) */ + int sumX,sumY,numC; /* sum of all X,Y; num chars */ + } res; + struct { /* configuration */ + int cs; /* critical grey value (pixel black pixel) */ + /* range: 0..255, 0 means autodetection */ + int spc; /* spacewidth/dots (0 = autodetect); default value: 0 */ + int mode; /* operation modes; default value: 0 */ + /* operation mode (see --help) */ + int dust_size; /* dust size; default value: 10 */ + int only_numbers; /* numbers only; default value: 0 */ + int verbose; /* verbose mode; default value: 0 */ + /* verbose option (see --help) */ + FORMAT out_format; /* output format; default value: ISO8859_1*/ + char *lc; /* debuglist of chars (_ = not recognized chars) */ + /* default value: "_" */ + char *db_path; /* pathname for database; default value: NULL */ + char *cfilter; /* char filter; default value: NULL, ex: "A-Za-z" */ + /* limit of certainty where chars are accepted as identified */ + int certainty; /* in units of 100 (percent); 0..100; default 95 */ + char *unrec_marker; /* output this string for every unrecognized char */ + } cfg; +} job_t; + +/* initialze job structure */ +void job_init(job_t *job); + +/* free job structure */ +void job_free(job_t *job); + +/*FIXME jb: remove JOB; */ +extern job_t *JOB; + +/* calculate the overlapp of the line (0-1) with black points + * by rekursiv bisection + * (evl. Fehlertoleranz mit pixel in Umgebung dx,dy suchen) (umschaltbar) ??? + * MidPoint Line Algorithm (Bresenham) Foley: ComputerGraphics better? + * will be replaced by vector functions + */ + +/* gerade y=dy/dx*x+b, implizit d=F(x,y)=dy*x-dx*y+b*dx=0 + * incrementell y(i+1)=m*(x(i)+1)+b, F(x+1,y+1)=f(F(x,y)) */ +int get_line(int x0, int y0, int x1, int y1, pix *p, int cs, int ret); +int get_line2(int x0, int y0, int x1, int y1, pix *p, int cs, int ret); + +/* look for white 0x02 or black 0x01 dots (0x03 = white+black) */ +char get_bw(int x0, int x1, int y0, int y1, + pix *p, int cs,int mask); + +/* look for black crossing a line x0,y0,x1,y1 + * follow line and count crossings ([white]-black-transitions) + */ +int num_cross(int x0, int x1, int y0, int y1, + pix *p, int cs); + +/* memory allocation with error checking */ +void *xrealloc(void *ptr, size_t size); + +/* follow a line x0,y0,x1,y1 recording locations of transitions, + * return count of transitions + */ +int follow_path(int x0, int x1, int y0, int y1, pix *p, int cs, path_t *path); + +/* ------------------------------------------------------------- + * mark edge-points + * - first move forward until b/w-edge + * - more than 2 pixel? + * - loop around + * - if forward pixel : go up, rotate right + * - if forward no pixel : rotate left + * - stop if found first 2 pixel in same order + * mit an rechter-Wand-entlang-gehen strategie + * -------------------------------------------------------------- + * turmite game: inp: start-x,y, regel r_black=UP,r_white=RIght until border + * out: last-position + * Zaehle dabei, Schritte,Sackgassen,xmax,ymax,ro-,ru-,lo-,lu-Ecken + * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + * + * is this the right place for declaration? + */ +void turmite(pix *p, int *x, int *y, + int x0, int x1, int y0, int y1, int cs, int rw, int rb); + +/* test if points are connected via t-pixel (rekursiv!) */ +int joined(pix *p, int x0, int y0, int x1, int y1, int cs); + +/* move from x,y to direction r until pixel or l steps + * return number of steps + */ +int loop(pix *p, int x, int y, int l, int cs, int col, DIRECTION r); + +#define MAX_HOLES 3 +typedef struct list_holes { + int num; /* numbers of holes, initialize with 0 */ + struct hole_s { + int size,x,y,x0,y0,x1,y1; /* size, start point, outer rectangle */ + } hole[MAX_HOLES]; +} holes_t; + +/* look for white holes surrounded by black points + * at moment white point with black in all four directions + */ +int num_hole(int x0, int x1, int y0, int y1, pix *p, int cs, holes_t *holes); + +/* count for black nonconnected objects --- used for i,auml,ouml,etc. */ +int num_obj(int x0, int x1, int y0, int y1, pix *p, int cs); + +int distance( pix *p1, struct box *box1, /* box-frame */ + pix *p2, struct box *box2, int cs); + +/* call the OCR engine ;) */ +/* char whatletter(struct box *box1,int cs); */ + +/* declared in pixel.c */ +/* getpixel() was pixel() but it may collide with netpnm pixel declaration */ +int getpixel(pix *p, int x, int y); +int marked(pix *p, int x, int y); +void put(pix * p, int x, int y, int ia, int io); + +/* } */ /* extern C */ +#endif /* __GOCR_H__ */ diff --git a/3rdparty/gocr-0.48/src/jconv.c b/3rdparty/gocr-0.48/src/jconv.c new file mode 100644 index 0000000..bd90654 --- /dev/null +++ b/3rdparty/gocr-0.48/src/jconv.c @@ -0,0 +1,168 @@ +/* OCR Aug00 JS +// PGM gray ASCII=P2 RAW=P5 +// PPM RGB ASCII=P3 RAW=P6 +// PBM B/W ASCII=P1 RAW=P4 +// ToDo: +// - pbm-raw to pgm also for x!=0 (mod 8) +// v0.01 bug eliminated +// v0.02 convert renamed into jconv because ImageMagick uses same name +// v0.03 code review bbg +// program is not used anymore, use "convert -verbose -crop 0x0+1+1" instead +*/ + +// #include +#include "config.h" +#include +#include +#include +#include +#include "pnm.h" +#ifdef HAVE_PAM_H +# include +#endif +#include "pcx.h" +#include "tga.h" + +void help( void ) { + printf("jconv version Aug2000 JS (pnm-raw,pcx8,tga24)\n" + "use: jconv [options] ?infile.pnm? ?outfile.pgm? ?ox? ?oy? ?dx? ?dy?\n" + "options: -shrink -pbm -? -help\n" + "example: jconv -shrink -pbm font.pbm font.pbm 0 0 0 0\n"); + exit(1); +} + +int main(int argn, char *argv[]) +{ + char *inam, *onam; + pix bild; + int ox, oy, dx, dy, x, y, i, vvv = 0; + +#ifdef HAVE_PAM_H + pnm_init(&argn, argv); +#endif + // skip options + for (i = 1; i < argn; i++) { + if (argv[i][0] != '-') + break; + if (!strcmp(argv[i], "-?")) + help(); + else if (!strcmp(argv[i], "-help")) + help(); + else if (!strcmp(argv[i], "-shrink")) + vvv |= 2; + else if (!strcmp(argv[i], "-pbm")) + vvv |= 4; + else + printf("unknown option: %s\n", argv[i]); + } + + if (argn - i != 6) + help(); + inam = argv[i++]; + onam = argv[i++]; + ox = atoi(argv[i++]); + oy = atoi(argv[i++]); + dx = atoi(argv[i++]); + dy = atoi(argv[i++]); + printf("# in=%s out=%s offs=%d,%d len=%d,%d vvv=%d\n", + inam, onam, ox, oy, dx, dy, vvv); + + // ----- read picture + if (strstr(inam, ".pbm") || + strstr(inam, ".pgm") || + strstr(inam, ".ppm") || + strstr(inam, ".pnm") || + strstr(inam, ".pam")) + readpgm(inam, &bild, 1); + else if (strstr(inam, ".pcx")) + readpcx(inam, &bild, 1); + else if (strstr(inam, ".tga")) + readtga(inam, &bild, ((vvv > 1) ? 0 : 1)); + else { + printf("Error: unknown suffix\n"); + exit(1); + } + if (ox < 0 || ox >= bild.x) + ox = 0; + if (oy < 0 || ox >= bild.y) + oy = 0; + if (dx <= 0 || ox + dx > bild.x) + dx = bild.x - ox; + if (dy <= 0 || oy + dy > bild.y) + dy = bild.y - oy; + if ((vvv & 2) == 2 && bild.bpp == 1) { // -shrink + int x, y; + printf("# shrinking PGM: offs=%d,%d len=%d,%d\n", ox, oy, dx, dy); + for (y = 0; y < dy; y++) { // shrink upper border + for (x = 0; x < dx; x++) + if (bild.p[x + ox + (y + oy) * bild.x] < 127) + break; + if (x < dx) { + if (y > 0) + y--; + oy += y; + dy -= y; + break; + } + } + for (y = 0; y < dy; y++) { // shrink lower border + for (x = 0; x < dx; x++) + if (bild.p[ox + x + (oy + dy - y - 1) * bild.x] < 127) + break; + if (x < dx) { + if (y > 0) + y--; + dy -= y; + break; + } + } + for (x = 0; x < dx; x++) { // shrink left border + for (y = 0; y < dy; y++) + if (bild.p[x + ox + (y + oy) * bild.x] < 127) + break; + if (y < dy) { + if (x > 0) + x--; + ox += x; + dx -= x; + break; + } + } + for (x = 0; x < dx; x++) { // shrink right border + for (y = 0; y < dy; y++) + if (bild.p[ox + dx - x - 1 + (oy + y) * bild.x] < 127) + break; + if (y < dy) { + if (x > 0) + x--; + dx -= x; + break; + } + } + } + printf("# final dimension: offs=%d,%d len=%d,%d bpp=%d\n", + ox, oy, dx, dy, bild.bpp); + +/* bbg: could be changed to memmoves */ + // ---- new size + for (y = 0; y < dy; y++) + for (x = 0; x < dx; x++) + for (i = 0; i < 3; i++) + bild.p[i + bild.bpp * (x + dx * y)] = + bild.p[i + bild.bpp * (x + ox + (y + oy) * bild.x)]; + bild.x = dx; + bild.y = dy; + // ---- write internal picture of textsite + printf("# write %s\n", onam); + if (strstr(onam, ".pbm")) + writepbm(onam, &bild); + else if (strstr(onam, ".pgm")) + writepgm(onam, &bild); + else if (strstr(onam, ".ppm")) + writeppm(onam, &bild); + else if (strstr(onam, ".pnm")) + writepgm(onam, &bild); + else + printf("Error: unknown suffix"); + free( bild.p ); +} diff --git a/3rdparty/gocr-0.48/src/job.c b/3rdparty/gocr-0.48/src/job.c new file mode 100644 index 0000000..e33adb0 --- /dev/null +++ b/3rdparty/gocr-0.48/src/job.c @@ -0,0 +1,84 @@ +/* +This is a Optical-Character-Recognition program +Copyright (C) 2000-2006 Joerg Schulenburg + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + see README for email address */ + +#include "pgm2asc.h" +#include "gocr.h" + +/* initialize job structure */ +void job_init(job_t *job) { + /* init source */ + job->src.fname = "-"; + /* FIXME jb: init pix */ + job->src.p.p = NULL; + + /* init results */ + list_init( &job->res.boxlist ); + list_init( &job->res.linelist ); + job->res.avX = 5; + job->res.avY = 8; + job->res.sumX = 0; + job->res.sumY = 0; + job->res.numC = 0; + job->res.lines.dy=0; + job->res.lines.num=0; + + /* init temporaries */ + list_init( &job->tmp.dblist ); + job->tmp.n_run = 0; + /* FIXME jb: init ppo */ + job->tmp.ppo.p = NULL; + job->tmp.ppo.x = 0; + job->tmp.ppo.y = 0; + + /* init cfg */ + job->cfg.cs = 0; + job->cfg.spc = 0; + job->cfg.mode = 0; + job->cfg.dust_size = -1; /* auto detect */ + job->cfg.only_numbers = 0; + job->cfg.verbose = 0; + job->cfg.out_format = UTF8; /* old: ISO8859_1; */ + job->cfg.lc = "_"; + job->cfg.db_path = (char*)NULL; + job->cfg.cfilter = (char*)NULL; + job->cfg.certainty = 95; + job->cfg.unrec_marker = "_"; +} + +/* free job structure */ +void job_free(job_t *job) { + + /* if tmp is just a copy of the pointer to the original image */ + if (job->tmp.ppo.p==job->src.p.p) job->tmp.ppo.p=NULL; + + /* FIMXE jb: free lists + * list_free( &job->res.linelist ); + * list_free( &job->tmp.dblist ); + */ + + list_and_data_free(&(job->res.boxlist), (void (*)(void *))free_box); + + /* FIXME jb: free pix */ + if (job->src.p.p) { free(job->src.p.p); job->src.p.p=NULL; } + + /* FIXME jb: free pix */ + if (job->tmp.ppo.p) { free(job->tmp.ppo.p); job->tmp.ppo.p=NULL; } + +} diff --git a/3rdparty/gocr-0.48/src/lgocr.c b/3rdparty/gocr-0.48/src/lgocr.c new file mode 100644 index 0000000..9115ae3 --- /dev/null +++ b/3rdparty/gocr-0.48/src/lgocr.c @@ -0,0 +1,340 @@ +/* +This is a Optical-Character-Recognition program +Copyright (C) 2000-2009 Joerg Schulenburg + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + see README for EMAIL-address + + sometimes I have written comments in german language, sorry for that + + This file was retrieved from pgm2asc.cc of Joerg, in order to have + a library of the ocr-engine from Klaas Freitag + + */ +#include "config.h" +#include +#include +#include +#include +#ifdef HAVE_GETTIMEOFDAY +#include +#endif +#ifdef HAVE_UNISTD_H +#include +#endif + +#include "pnm.h" +#include "pgm2asc.h" +#include "pcx.h" +#include "ocr0.h" /* only_numbers */ +#include "progress.h" +#include "version.h" + +static void out_version(int v) { + fprintf(stderr, " Optical Character Recognition --- gocr " + version_string " " release_string "\n" + " Copyright (C) 2001-2009 Joerg Schulenburg GPG=1024D/53BDFBE3\n" + " released under the GNU General Public License\n"); + /* as recommended, (c) and license should be part of the binary */ + /* no email because of SPAM, see README for contacting the author */ + if (v) + fprintf(stderr, " use option -h for help\n"); + if (v & 2) + exit(1); + return; +} + +static void help(void) { + out_version(0); + /* output is shortened to essentials, see manual page for details */ + fprintf(stderr, + " using: gocr [options] pnm_file_name # use - for stdin\n" + " options (see gocr manual pages for more details):\n" + " -h, --help\n" + " -i name - input image file (pnm,pgm,pbm,ppm,pcx,...)\n" + " -o name - output file (redirection of stdout)\n" + " -e name - logging file (redirection of stderr)\n" + " -x name - progress output to fifo (see manual)\n" + " -p name - database path including final slash (default is ./db/)\n"); + fprintf(stderr, /* string length less than 509 bytes for ISO C89 */ + " -f fmt - output format (ISO8859_1 TeX HTML XML UTF8 ASCII)\n" + " -l num - threshold grey level 0<160<=255 (0 = autodetect)\n" + " -d num - dust_size (remove small clusters, -1 = autodetect)\n" + " -s num - spacewidth/dots (0 = autodetect)\n" + " -v num - verbose (see manual page)\n" + " -c string - list of chars (debugging, see manual)\n" + " -C string - char filter (ex. hexdigits: ""0-9A-Fx"", only ASCII)\n" + " -m num - operation modes (bitpattern, see manual)\n"); + fprintf(stderr, /* string length less than 509 bytes for ISO C89 */ + " -a num - value of certainty (in percent, 0..100, default=95)\n" + " -u string - output this string for every unrecognized character\n"); + fprintf(stderr, /* string length less than 509 bytes for ISO C89 */ + " examples:\n" + "\tgocr -m 4 text1.pbm # do layout analyzis\n" + "\tgocr -m 130 -p ./database/ text1.pbm # extend database\n" + "\tdjpeg -pnm -gray text.jpg | gocr - # use jpeg-file via pipe\n" + "\n"); + fprintf(stderr, " webpage: http://jocr.sourceforge.net/\n"); + exit(0); +} + +#ifdef HAVE_GETTIMEOFDAY +/* from the glibc documentation */ +static int timeval_subtract (struct timeval *result, struct timeval *x, + struct timeval *y) { + + /* Perform the carry for the later subtraction by updating Y. */ + if (x->tv_usec < y->tv_usec) { + int nsec = (y->tv_usec - x->tv_usec) / 1000000 + 1; + y->tv_usec -= 1000000 * nsec; + y->tv_sec += nsec; + } + if (x->tv_usec - y->tv_usec > 1000000) { + int nsec = (x->tv_usec - y->tv_usec) / 1000000; + y->tv_usec += 1000000 * nsec; + y->tv_sec -= nsec; + } + + /* Compute the time remaining to wait. + `tv_usec' is certainly positive. */ + result->tv_sec = x->tv_sec - y->tv_sec; + result->tv_usec = x->tv_usec - y->tv_usec; + + /* Return 1 if result is negative. */ + return x->tv_sec < y->tv_sec; +} +#endif + +static void process_arguments(job_t *job, int argn, char *argv[]) +{ + int i; + char *s1; + + assert(job); + + if (argn <= 1) { + out_version(1); + exit(0); + } +#ifdef HAVE_PGM_H + pnm_init(&argn, &argv); +#endif + + /* process arguments */ + for (i = 1; i < argn; i++) { + if (strcmp(argv[i], "--help") == 0) + help(); /* and quits */ + if (argv[i][0] == '-' && argv[i][1] != 0) { + s1 = ""; + if (i + 1 < argn) + s1 = argv[i + 1]; + switch (argv[i][1]) { + case 'h': /* help */ + help(); + break; + case 'i': /* input image file */ + job->src.fname = s1; + i++; + break; + case 'e': /* logging file */ + if (s1[0] == '-' && s1[1] == '\0') { +#ifdef HAVE_UNISTD_H + dup2(STDOUT_FILENO, STDERR_FILENO); /* -e /dev/stdout works */ +#else + fprintf(stderr, "stderr redirection not possible without unistd.h\n"); +#endif + } + else if (!freopen(s1, "w", stderr)) { + fprintf(stderr, "stderr redirection to %s failed\n", s1); + } + i++; + break; + case 'p': /* database path */ + job->cfg.db_path=s1; + i++; + break; + case 'o': /* output file */ + if (s1[0] == '-' && s1[1] == '\0') { /* default */ + } + else if (!freopen(s1, "w", stdout)) { + fprintf(stderr, "stdout redirection to %s failed\n", s1); + }; + i++; + break; + case 'f': /* output format */ + if (strcmp(s1, "ISO8859_1") == 0) job->cfg.out_format=ISO8859_1; else + if (strcmp(s1, "TeX") == 0) job->cfg.out_format=TeX; else + if (strcmp(s1, "HTML") == 0) job->cfg.out_format=HTML; else + if (strcmp(s1, "XML") == 0) job->cfg.out_format=XML; else + if (strcmp(s1, "SGML") == 0) job->cfg.out_format=SGML; else + if (strcmp(s1, "UTF8") == 0) job->cfg.out_format=UTF8; else + if (strcmp(s1, "ASCII") == 0) job->cfg.out_format=ASCII; else + fprintf(stderr,"Warning: unknown format (-f %s)\n",s1); + i++; + break; + case 'c': /* list of chars (_ = not recognized chars) */ + job->cfg.lc = s1; + i++; + break; + case 'C': /* char filter, default: NULL (all chars) */ + /* ToDo: UTF8 input, wchar */ + job->cfg.cfilter = s1; + i++; + break; + case 'd': /* dust size */ + job->cfg.dust_size = atoi(s1); + i++; + break; + case 'l': /* grey level 0<160<=255, 0 for autodetect */ + job->cfg.cs = atoi(s1); + i++; + break; + case 's': /* spacewidth/dots (0 = autodetect) */ + job->cfg.spc = atoi(s1); + i++; + break; + case 'v': /* verbose mode */ + job->cfg.verbose |= atoi(s1); + i++; + break; + case 'm': /* operation modes */ + job->cfg.mode |= atoi(s1); + i++; + break; + case 'n': /* numbers only */ + job->cfg.only_numbers = atoi(s1); + i++; + break; + case 'x': /* initialize progress output s1=fname */ + ini_progress(s1); + i++; + break; + case 'a': /* set certainty */ + job->cfg.certainty = atoi(s1);; + i++; + break; + case 'u': /* output marker for unrecognized chars */ + job->cfg.unrec_marker = s1; + i++; + break; + default: + fprintf(stderr, "# unknown option use -h for help\n"); + } + continue; + } + else /* argument can be filename v0.2.5 */ if (argv[i][0] != '-' + || argv[i][1] == '\0' ) { + job->src.fname = argv[i]; + } + } +} + +static void mark_start(job_t *job) { + assert(job); + + if (job->cfg.verbose) { + out_version(0); + /* insert some helpful info for support */ + fprintf(stderr, "# compiled: " __DATE__ ); +#if defined(__GNUC__) + fprintf(stderr, " GNUC-%d", __GNUC__ ); +#endif +#ifdef __GNUC_MINOR__ + fprintf(stderr, ".%d", __GNUC_MINOR__ ); +#endif +#if defined(__linux) + fprintf(stderr, " linux"); +#elif defined(__unix) + fprintf(stderr, " unix"); +#endif +#if defined(__WIN32) || defined(__WIN32__) + fprintf(stderr, " WIN32"); +#endif +#if defined(__WIN64) || defined(__WIN64__) + fprintf(stderr, " WIN64"); +#endif +#if defined(__VERSION__) + fprintf(stderr, " version " __VERSION__ ); +#endif + fprintf(stderr, "\n"); + fprintf(stderr, + "# options are: -l %d -s %d -v %d -c %s -m %d -d %d -n %d -a %d -C \"%s\"\n", + job->cfg.cs, job->cfg.spc, job->cfg.verbose, job->cfg.lc, job->cfg.mode, + job->cfg.dust_size, job->cfg.only_numbers, job->cfg.certainty, + job->cfg.cfilter); + fprintf(stderr, "# file: %s\n", job->src.fname); +#ifdef USE_UNICODE + fprintf(stderr,"# using unicode\n"); +#endif +#ifdef HAVE_GETTIMEOFDAY + gettimeofday(&job->tmp.init_time, NULL); +#endif + } +} + +static void mark_end(job_t *job) { + assert(job); + +#ifdef HAVE_GETTIMEOFDAY + /* show elapsed time */ + if (job->cfg.verbose) { + struct timeval end, result; + gettimeofday(&end, NULL); + timeval_subtract(&result, &end, &job->tmp.init_time); + fprintf(stderr,"Elapsed time: %d:%02d:%3.3f.\n", (int)result.tv_sec/60, + (int)result.tv_sec%60, (float)result.tv_usec/1000); + } +#endif +} + +static int read_picture(job_t *job) { + int rc=0; + assert(job); + + if (strstr(job->src.fname, ".pcx")) + readpcx(job->src.fname, &job->src.p, job->cfg.verbose); + else + rc=readpgm(job->src.fname, &job->src.p, job->cfg.verbose); + return rc; /* 1 for multiple images, 0 else */ +} + +/* subject of change, we need more output for XML (ToDo) */ +void print_output(job_t *job) { + int linecounter = 0; + const char *line; + + assert(job); + + linecounter = 0; + line = getTextLine(linecounter++); + while (line) { + /* notice: decode() is shiftet to getTextLine since 0.38 */ + fputs(line, stdout); + if (job->cfg.out_format==HTML) fputs("
",stdout); + if (job->cfg.out_format!=XML) fputc('\n', stdout); + line = getTextLine(linecounter++); + } + free_textlines(); +} + +/* FIXME jb: remove JOB; */ +job_t *JOB; + + +/* ------------------------------------------------------------- +// ------ MAIN - replace this by your own aplication! +// ------------------------------------------------------------- */ + diff --git a/3rdparty/gocr-0.48/src/lgocr.h b/3rdparty/gocr-0.48/src/lgocr.h new file mode 100644 index 0000000..fc798c4 --- /dev/null +++ b/3rdparty/gocr-0.48/src/lgocr.h @@ -0,0 +1,288 @@ +/* +This is a Optical-Character-Recognition program +Copyright (C) 2000-2006 Joerg Schulenburg + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + see README for EMAIL-address + + sometimes I have written comments in german language, sorry for that + + - look for ??? for preliminary code +*/ + +/* General headerfile with gocr-definitions */ + +#ifndef __GOCR_H__ +#define __GOCR_H__ + +#include "pnm.h" +#include "unicode.h" +#include "list.h" +#include +#ifdef HAVE_GETTIMEOFDAY +#include +#endif + +/* + * wchar_t should always exist (ANSI), but WCHAR.H is sometimes missing + * USE_UNICODE should be removed or replaced by HAVE_WCHAR_H in future + */ +#ifdef HAVE_WCHAR_H +#define USE_UNICODE 1 +#endif + +/* extern "C"{ */ +/* ------------------------ feature extraction ----------------- */ +#define AT 7 /* mark */ +#define M1 1 /* mark */ +enum direction { + UP=1, DO, RI, LE +}; +typedef enum direction DIRECTION; +#define ST 7 /* stop */ +/* ------------------------------------------------------------- */ +/* detect maximas in of line overlapps (return in %) and line koord */ +#define HOR 1 /* horizontal */ +#define VER 2 /* vertikal */ +#define RIS 3 /* rising=steigend */ +#define FAL 4 /* falling=fallend */ + +#define MAXlines 1024 + +/* ToDo: if we have a tree instead of a list, a line could be a node object */ +struct tlines { + int num; + int dx, dy; /* direction of text lines (straight/skew) */ + int m1[MAXlines], /* start of line = upper bound of 'A' */ + m2[MAXlines], /* upper bound of 'e' */ + m3[MAXlines], /* lower bound of 'e' = baseline */ + m4[MAXlines]; /* stop of line = lower bound of 'q' */ + /* ToDo: add sureness per m1,m2 etc? */ + int x0[MAXlines], + x1[MAXlines]; /* left and right border */ + int wt[MAXlines]; /* weight, how sure thats correct in percent, v0.41 */ + int pitch[MAXlines]; /* word pitch (later per box?), v0.41 */ + int mono[MAXlines]; /* spacing type, 0=proportional, 1=monospaced */ +}; + +#define NumAlt 10 /* maximal number of alternative chars (table length) */ +#define MaxNumFrames 8 /* maximum number of frames per char/box */ +#define MaxFrameVectors 128 /* maximum vectors per frame (*8=1KB/box) */ +/* ToDo: use only malloc_box(),free_box(),copybox() for creation, destroy etc. + * adding reference_counter to avoid pointer pointing to freed box + */ +struct box { /* this structure should contain all pixel infos of a letter */ + int x0,x1,y0,y1,x,y,dots; /* xmin,xmax,ymin,ymax,reference-pixel,i-dots */ + int num_boxes, /* 1 "abc", 2 "!i?", 3 "ä" (composed objects) 0.41 */ + num_subboxes; /* 1 for "abdegopqADOPQR", 2 for "B" (holes) 0.41 */ + wchar_t c; /* detected char (same as tac[0], obsolete?) */ + wchar_t modifier; /* default=0, see compose() in unicode.c */ + int num; /* same number = same char */ + int line; /* line number (points to struct tlines lines) */ + int m1,m2,m3,m4; /* m2 = upper boundary, m3 = baseline */ + /* planed: sizeof hole_1, hole_2, certainty (run1=100%,run2=90%,etc.) */ + pix *p; /* pointer to pixmap (v0.2.5) */ + /* tac, wac is used together with setac() to manage very similar chars */ + int num_ac; /* length of table (alternative chars), default=0 */ + wchar_t tac[NumAlt]; /* alternative chars, only used by setac(),getac() */ + int wac[NumAlt]; /* weight of alternative chars */ + char *tas[NumAlt]; /* alternative UTF8-strings or XML codes if tac[]=0 */ + /* replacing old obj */ + /* ToDo: (*obj)[NumAlt] + olen[NumAlt] ??? */ + /* ToDo: bitmap for possible Picture|Object|Char ??? */ +/* char *obj; */ /* pointer to text-object ... -> replaced by tas[] */ + /* ... (melted chars, barcode, picture coords, ...) */ + /* must be freed before box is freed! */ + /* do _not_ copy only the pointer to object */ + /* -------------------------------------------------------- + * extension since v0.41 js05, Store frame vectors, + * which is a table of vectors sourrounding the char and its + * inner white holes. The advantage is the independence from + * resolution, handling of holes, overlap and rotation. + * --------------------------------------------------------- */ + int num_frames; /* number of frames: 1 for cfhklmnrstuvwxyz */ + /* 2 for abdegijopq */ + int frame_vol[MaxNumFrames]; /* volume inside frame +/- (black/white) */ + int frame_per[MaxNumFrames]; /* periphery, summed length of vectors */ + int num_frame_vectors[MaxNumFrames]; /* index to next frame */ + /* biggest frame should be stored first (outer frame) */ + /* biggest has the maximum pair distance */ + /* num vector loops */ + int frame_vector[MaxFrameVectors][2]; /* may be 16*int=fixpoint_number */ + +}; +typedef struct box Box; + +/* true if the coordination pair (a,b) is outside the image p */ +#define outbounds(p, a, b) (a < 0 || b < 0 || a >= (p)->x || b >= (p)->y) + +/* ToDo: this structure seems to be obsolete, remove it */ +typedef struct path { + int start; /* color at the beginning of the path, (0=white, 1=black) */ + int *x; /* x coordinates of transitions */ + int *y; /* y coordinates of transitions */ + int num; /* current number of entries in x or y */ + int max; /* maximum number of entries in x or y */ + /* (if more values need to be stored, the arrays are enlarged) */ +} path_t; + +/* job_t contains all information needed for an OCR task */ +typedef struct job_s { + struct { /* source data */ + char *fname; /* input filename; default value: "-" */ + pix p; /* source pixel data, pixelmap 8bit gray */ + } src; + struct { /* temporary stuff, e.g. buffers */ +#ifdef HAVE_GETTIMEOFDAY + struct timeval init_time; /* starting time of this job */ +#endif + pix ppo; /* pixmap for visual debugging output, obsolete */ + + /* sometimes recognition function is called again and again, if result was 0 + n_run tells the pixel function to return alternative results */ + int n_run; /* num of run, if run_2 critical pattern get other results */ + /* used for 2nd try, pixel uses slower filter function etc. */ + List dblist; /* list of boxes loaded from the character database */ + } tmp; + struct { /* results */ + List boxlist; /* store every object in a box, which contains */ + /* the characteristics of the object (see struct box) */ + List linelist; /* recognized text lines after recognition */ + + struct tlines lines; /* used to access to line-data (statistics) */ + /* here the positions (frames) of lines are */ + /* stored for further use */ + int avX,avY; /* average X,Y (avX=sumX/numC) */ + int sumX,sumY,numC; /* sum of all X,Y; num chars */ + } res; + struct { /* configuration */ + int cs; /* critical grey value (pixel black pixel) */ + /* range: 0..255, 0 means autodetection */ + int spc; /* spacewidth/dots (0 = autodetect); default value: 0 */ + int mode; /* operation modes; default value: 0 */ + /* operation mode (see --help) */ + int dust_size; /* dust size; default value: 10 */ + int only_numbers; /* numbers only; default value: 0 */ + int verbose; /* verbose mode; default value: 0 */ + /* verbose option (see --help) */ + FORMAT out_format; /* output format; default value: ISO8859_1*/ + char *lc; /* debuglist of chars (_ = not recognized chars) */ + /* default value: "_" */ + char *db_path; /* pathname for database; default value: NULL */ + char *cfilter; /* char filter; default value: NULL, ex: "A-Za-z" */ + /* limit of certainty where chars are accepted as identified */ + int certainty; /* in units of 100 (percent); 0..100; default 95 */ + char *unrec_marker; /* output this string for every unrecognized char */ + } cfg; +} job_t; + +/* initialze job structure */ +void job_init(job_t *job); + +/* free job structure */ +void job_free(job_t *job); + +/*FIXME jb: remove JOB; */ +extern job_t *JOB; + +/* calculate the overlapp of the line (0-1) with black points + * by rekursiv bisection + * (evl. Fehlertoleranz mit pixel in Umgebung dx,dy suchen) (umschaltbar) ??? + * MidPoint Line Algorithm (Bresenham) Foley: ComputerGraphics better? + * will be replaced by vector functions + */ + +/* gerade y=dy/dx*x+b, implizit d=F(x,y)=dy*x-dx*y+b*dx=0 + * incrementell y(i+1)=m*(x(i)+1)+b, F(x+1,y+1)=f(F(x,y)) */ +int get_line(int x0, int y0, int x1, int y1, pix *p, int cs, int ret); +int get_line2(int x0, int y0, int x1, int y1, pix *p, int cs, int ret); + +/* look for white 0x02 or black 0x01 dots (0x03 = white+black) */ +char get_bw(int x0, int x1, int y0, int y1, + pix *p, int cs,int mask); + +/* look for black crossing a line x0,y0,x1,y1 + * follow line and count crossings ([white]-black-transitions) + */ +int num_cross(int x0, int x1, int y0, int y1, + pix *p, int cs); + +/* memory allocation with error checking */ +void *xrealloc(void *ptr, size_t size); + +/* follow a line x0,y0,x1,y1 recording locations of transitions, + * return count of transitions + */ +int follow_path(int x0, int x1, int y0, int y1, pix *p, int cs, path_t *path); + +/* ------------------------------------------------------------- + * mark edge-points + * - first move forward until b/w-edge + * - more than 2 pixel? + * - loop around + * - if forward pixel : go up, rotate right + * - if forward no pixel : rotate left + * - stop if found first 2 pixel in same order + * mit an rechter-Wand-entlang-gehen strategie + * -------------------------------------------------------------- + * turmite game: inp: start-x,y, regel r_black=UP,r_white=RIght until border + * out: last-position + * Zaehle dabei, Schritte,Sackgassen,xmax,ymax,ro-,ru-,lo-,lu-Ecken + * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + * + * is this the right place for declaration? + */ +void turmite(pix *p, int *x, int *y, + int x0, int x1, int y0, int y1, int cs, int rw, int rb); + +/* test if points are connected via t-pixel (rekursiv!) */ +int joined(pix *p, int x0, int y0, int x1, int y1, int cs); + +/* move from x,y to direction r until pixel or l steps + * return number of steps + */ +int loop(pix *p, int x, int y, int l, int cs, int col, DIRECTION r); + +#define MAX_HOLES 3 +typedef struct list_holes { + int num; /* numbers of holes, initialize with 0 */ + struct hole_s { + int size,x,y,x0,y0,x1,y1; /* size, start point, outer rectangle */ + } hole[MAX_HOLES]; +} holes_t; + +/* look for white holes surrounded by black points + * at moment white point with black in all four directions + */ +int num_hole(int x0, int x1, int y0, int y1, pix *p, int cs, holes_t *holes); + +/* count for black nonconnected objects --- used for i,auml,ouml,etc. */ +int num_obj(int x0, int x1, int y0, int y1, pix *p, int cs); + +int distance( pix *p1, struct box *box1, /* box-frame */ + pix *p2, struct box *box2, int cs); + +/* call the OCR engine ;) */ +/* char whatletter(struct box *box1,int cs); */ + +/* declared in pixel.c */ +/* getpixel() was pixel() but it may collide with netpnm pixel declaration */ +int getpixel(pix *p, int x, int y); +int marked(pix *p, int x, int y); +void put(pix * p, int x, int y, int ia, int io); + +/* } */ /* extern C */ +#endif /* __GOCR_H__ */ diff --git a/3rdparty/gocr-0.48/src/lines.c b/3rdparty/gocr-0.48/src/lines.c new file mode 100644 index 0000000..ca46fc1 --- /dev/null +++ b/3rdparty/gocr-0.48/src/lines.c @@ -0,0 +1,358 @@ +/* +This is a Optical-Character-Recognition program +Copyright (C) 2000-2009 Joerg Schulenburg + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + see README for EMAIL-address +*/ + +#include +#include +#include +#include +#include +#include "pgm2asc.h" +#include "gocr.h" +#include "unicode.h" + +const char *getTextLine (int line) { + int i; + Element *elem; + + if (line < 0 || line > list_total(&(JOB->res.linelist))) + return NULL; + + for ( i = 0, elem = JOB->res.linelist.start.next; i < line && elem != NULL; i++ ) + elem = elem->next; + + if ( elem != NULL ) + return (const char *)elem->data; + + return NULL; +} + +void free_textlines(void) { + for_each_data(&(JOB->res.linelist)) { + if (list_get_current(&(JOB->res.linelist))) + free(list_get_current(&(JOB->res.linelist))); + } end_for_each(&(JOB->res.linelist)); + list_free(&(JOB->res.linelist)); +} + +/* append a string (s1) to the string buffer (buffer) of length (len) + * if buffer is to small or len==0 realloc buffer, len+=512 + */ +char *append_to_line(char *buffer, const char *s1, int *len) { + char *temp; + int slen=0, alen; + if( s1==NULL || s1[0] == 0 ){ + fprintf(stderr,"\n#BUG: appending 0 to a line makes no sense!"); + return buffer; + } + if ( *len>0 ) slen= strlen(buffer); // used buffer + alen = strlen(s1); + if ( slen+alen+1 >= *len ) { + *len+=512; + temp = (char *)realloc(buffer, *len); + if( !temp ) { fprintf(stderr,"realloc failed!\n"); *len-=512; return buffer; } + else buffer = temp; // buffer successfull enlarged + } + temp = buffer + slen; // end of buffered string + memcpy(temp,s1,alen+1); // copy including end sign '\0' + return buffer; +} + +int calc_median_gap(struct tlines * lines) { + int gaps[MAXlines], l; + if (lines->num<2) return 0; + for (l = 0; l < lines->num - 1; l++) + gaps[l] = lines->m2[l + 1] - lines->m3[l]; + qsort(gaps, lines->num - 1, sizeof(gaps[0]), intcompare); + return gaps[(lines->num - 1) / 2]; +} + +/* + * Return the indent in pixels of the least-indented line. + * Will be subtracted as base_indent to avoid negativ indent. + * + * This is adjusted to account for an angle on the page as + * a whole. For instance, if the page is rotated clockwise, + * lower lines may be physically closer to the left edge + * than higher lines that are logically less indented. + * We rotate around (0,0). Note that this rotation could + * rotate lines "off the left margin", leading to a negative + * indent. + * + * boxlist -- list of character boxes. + * dx, dy -- rotation angle as vector + */ +int get_least_line_indent(List * boxlist, int dx, int dy) { + int min_indent = INT_MAX; + int adjusted_indent; + struct box * box2; + if (JOB->cfg.verbose) + fprintf(stderr, "get_least_line_indent: rot.vector dxdy %d %d\n", + dx, dy); + for_each_data(boxlist) { + box2 = (struct box *)list_get_current(boxlist); + /* if num == -1, indicates this is a space or newline box, + * inserted in list_insert_spaces. */ + if (box2->num != -1) { + adjusted_indent = box2->x0; + if (dx) adjusted_indent += box2->y0 * dy / dx; + if (adjusted_indent < min_indent) { + min_indent = adjusted_indent; + if (dy!=0 && JOB->cfg.verbose) + fprintf(stderr, + "# Line %2d, unadjusted xy %3d %3d, adjusted x %2d\n", + box2->line, box2->x0, box2->y0, adjusted_indent); + } + } + } end_for_each(boxlist); + if (JOB->cfg.verbose) + fprintf(stderr, "# Minimum adjusted x: %d (min_indent)\n", min_indent); + return min_indent; +} + +/* collect all the chars from the box tree and write them to a string buffer + mo is the mode: mode&8 means, use chars even if unsure recognized + ToDo: store full text(?), store decoded text+boxes+position chars (v0.4) + (HTML,UTF,ASCII,XML), not wchar incl. descriptions (at<95% in red) + remove decode(*c, job->cfg.out_format) from gocr.c! + XML add alternate-tags, format tags and position tags + ToDo: better output XML to stdout instead of circumstantial store to lines + not all texts/images follow the line concept? + Better use a tree of objects where leafes are chars instead of simple list. + Chars or objects are taken into account. Objects can be text strings + or XML strings. + */ +void store_boxtree_lines(int mo) { + char *buffer; /* temp buffer for text */ + int i = 0, j = 0; + int len = 1024; // initial buffer length for text line + struct box *box2; + int median_gap = 0; + int max_single_space_gap = 0; + struct tlines line_info; + int line, line_gap, oldline=-1; + int left_margin; + int i1=0, i2=0; + + buffer = (char *)malloc(len); + if ( !buffer ) { + fprintf(stderr,"malloc failed!\n"); // ToDo: index_to_error_list + return; + } + *buffer = 0; + + if ( JOB->cfg.verbose&1 ) + fprintf(stderr,"# store boxtree to lines ..."); + + /* wew: calculate the median line gap, to determine line spacing + * for the text output. The line gap used is between one line's + * m3 (baseline) and the next line's m2 (height of non-rising + * lowercase). We use these lines as they are the least likely + * to vary according to actual character content of lines. + */ + median_gap = calc_median_gap(&JOB->res.lines); + if (median_gap <= 0) { + fprintf(stderr, "# Warning: non-positive median line gap of %d\n", + median_gap); + median_gap = 8; + max_single_space_gap = 12; /* arbitrary */ + } else { + max_single_space_gap = median_gap * 7 / 4; + } + + // Will be subtracted as base_indent to avoid negativ indent. + left_margin = get_least_line_indent(&JOB->res.boxlist, + JOB->res.lines.dx, + JOB->res.lines.dy); + + if (JOB->cfg.out_format==XML) { /* subject of change */ + char s1[255]; /* ToDo: avoid potential buffer overflow !!! */ + /* output lot of usefull information for XML filter */ + sprintf(s1,"\n", + 0,0,0,0); +// buffer=append_to_line(buffer,s1,&len); + sprintf(s1,"\n", + 0,0,0,0); +// buffer=append_to_line(buffer,s1,&len); + } + + for_each_data(&(JOB->res.boxlist)) { + box2 = (struct box *)list_get_current(&(JOB->res.boxlist)); + line = box2->line; + line_info = JOB->res.lines; + /* reset the output char if certainty is below the limit v0.44 */ + if (box2->num_ac && box2->wac[0]cfg.certainty) box2->c=UNKNOWN; + if (line!=oldline) { + if (JOB->cfg.out_format==XML && oldline>-1) { /* subject of change */ +// buffer=append_to_line(buffer,"
\n",&len); + list_app( &(JOB->res.linelist), (void *)strdup(buffer) ); // wcsdup + memset(buffer, 0, len); + j=0; // reset counter for new line + } + if (JOB->cfg.out_format==XML) { /* subject of change */ + char s1[255]; /* ToDo: avoid potential buffer overflow !!! */ + /* output lot of usefull information for XML filter */ + sprintf(s1,"\n", + line_info.x0[line],line_info.m1[line], + line_info.x1[line]-line_info.x0[line]+1, + line_info.m4[line]-line_info.m1[line],line); + // buffer=append_to_line(buffer,s1,&len); + } + oldline=line; + } + if (box2->c > ' ' && + box2->c <= 'z') i1++; /* count non-space chars */ + if (box2->c == '\n') { + if (JOB->cfg.out_format!=XML) { /* subject of change */ + line_info = JOB->res.lines; + line = box2->line; + if (line > 0) { + line_gap = line_info.m2[line] - line_info.m3[line - 1]; + for (line_gap -= max_single_space_gap; line_gap > 0; + line_gap -= median_gap) { + buffer=append_to_line(buffer,"\n",&len); + j++; /* count chars in line */ + } + } + list_app( &(JOB->res.linelist), (void *)strdup(buffer) ); // wcsdup + memset(buffer, 0, len); + j=0; // reset counter for new line + } + } + if (box2->c == ' ') // fill large gaps with spaces + { + if (JOB->res.avX) { /* avoid SIGFPE */ + if (JOB->cfg.out_format==XML) { /* subject of change */ + char s1[255]; /* ToDo: avoid potential buffer overflow !!! */ + /* output lot of usefull information for XML filter */ + sprintf(s1," \n", + box2->x0,box2->y0,box2->x1-box2->x0+1,box2->y1-box2->y0+1); +// buffer=append_to_line(buffer,s1,&len); + } else + for (i = (box2->x1 - box2->x0) / (2 * JOB->res.avX) + 1; i > 0; i--) { + buffer=append_to_line(buffer," ",&len); + j++; /* number of chars in line */ + } + } + } + else if (box2->c != '\n') { + if (j==0 && JOB->res.avX) /* first char in new line? */ { + int indent = box2->x0 - JOB->res.lines.x0[box2->line]; + /* correct for angle of page as a whole. */ + if (JOB->res.lines.dx) + indent += box2->y0 * JOB->res.lines.dy / JOB->res.lines.dx; + /* subtract the base margin. */ + indent -= left_margin; + if (JOB->cfg.out_format==XML) { /* subject of change */ + char s1[255]; /* ToDo: avoid potential buffer overflow !!! */ + /* output lot of usefull information for XML filter */ + sprintf(s1," \n", + box2->x0,box2->y0,box2->x1-box2->x0+1,box2->y1-box2->y0+1); +// buffer=append_to_line(buffer,s1,&len); + } else + for (i = indent / JOB->res.avX; i > 0; i--) { + buffer=append_to_line(buffer," ",&len); j++; + } + } + if (JOB->cfg.out_format==XML) { /* subject of change */ + char s1[255]; /* ToDo: avoid potential buffer overflow !!! */ + /* output lot of usefull information for XML filter */ +// sprintf(s1," x0,box2->y0,box2->x1-box2->x0+1,box2->y1-box2->y0+1); + sprintf(s1," %d %d ", + box2->x1-box2->x0+1,box2->y1-box2->y0+1); + buffer=append_to_line(buffer,s1,&len); + if (box2->num_ac>1) { /* ToDo: output a list of alternatives */ + } + } + if (box2->c != UNKNOWN && box2->c != 0) { + buffer= + append_to_line(buffer,decode(box2->c,JOB->cfg.out_format),&len); + if (box2->c > ' ' && + box2->c <= 'z') i2++; /* count non-space chars */ + } else { /* c == UNKNOWN or 0 */ + wchar_t cc; cc=box2->c; + if (box2->num_ac>0 && box2->tas[0] + && (JOB->cfg.out_format!=XML || box2->tas[0][0]!='<')) { + /* output glued chars or ... (?) Jan08 */ + buffer=append_to_line(buffer,box2->tas[0],&len); + j+=strlen(box2->tas[0]); + } else { /* ToDo: leave string empty? set placeholder per option */ + /* output dummy string to mark UNKNOWN */ + if(JOB->cfg.unrec_marker[0]) + buffer = append_to_line(buffer, JOB->cfg.unrec_marker, &len); + } + } + if (JOB->cfg.out_format==XML) { + if (box2->num_ac>-1) { + /* output alist ToDo: separate */ + int i1; char s1[256]; +// sprintf(s1,"\" numac=\"%d\" weights=\"",box2->num_ac); + sprintf(s1," %d ",box2->num_ac); + buffer=append_to_line(buffer,s1,&len); + for (i1=0;i1num_ac;i1++) { + sprintf(s1,"%d",box2->wac[i1]); + buffer=append_to_line(buffer,s1,&len); +// if (i1+1num_ac) buffer=append_to_line(buffer,",",&len); + if (i1+1num_ac) buffer=append_to_line(buffer," ",&len); + } + if (box2->num_ac>1) +// buffer=append_to_line(buffer,"\" achars=\"",&len); + buffer=append_to_line(buffer," ",&len); + for (i1=1;i1num_ac;i1++) { + if (box2->tas[i1] && box2->tas[i1][0]!='<') +// buffer=append_to_line(buffer,box2->tas[i1],&len); + buffer=append_to_line(buffer,box2->tas[i1],&len); + else + buffer=append_to_line(buffer, + decode(box2->tac[i1],JOB->cfg.out_format),&len); + // ToDo: add tas[] (achars->avalues or alternate_strings? +// if (i1+1num_ac) buffer=append_to_line(buffer,",",&len); + if (i1+1num_ac) buffer=append_to_line(buffer," ",&len); + } + } +// buffer=append_to_line(buffer,"\" />\n",&len); + buffer=append_to_line(buffer,"\n",&len); + } + if (box2->num_ac && box2->tas[0]) { + if (box2->tas[0][0]=='<') { /* output special XML object */ +// buffer=append_to_line(buffer,box2->tas[0],&len); + buffer=append_to_line(buffer,"\n",&len); + j+=strlen(box2->tas[0]); + } + } + j++; /* number of chars in line */ + } + i++; + } end_for_each(&(JOB->res.boxlist)); + if (JOB->cfg.out_format==XML && oldline>-1) { /* subject of change */ +// buffer=append_to_line(buffer,"\n",&len); + } + if (JOB->cfg.out_format==XML) { /* subject of change */ +// buffer=append_to_line(buffer,"\n\n",&len); + } + + /* do not forget last line */ + // is there no \n in the last line? If there is, delete next line. + list_app( &(JOB->res.linelist), (void *)strdup(buffer) ); + free(buffer); + if( JOB->cfg.verbose&1 ) + fprintf(stderr,"... %d lines, boxes= %d, chars= %d\n",i,i1,i2); +} diff --git a/3rdparty/gocr-0.48/src/list.c b/3rdparty/gocr-0.48/src/list.c new file mode 100644 index 0000000..332d2bd --- /dev/null +++ b/3rdparty/gocr-0.48/src/list.c @@ -0,0 +1,334 @@ +/* +This is a Optical-Character-Recognition program +Copyright (C) 2000-2006 Joerg Schulenburg + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + see README for email address + + ***********************************IMPORTANT********************************* + Notes to the developers: read the following notes before using these + functions. + * Be careful when using for_each_data() recursively and calling list_del. + It may mangle with the current[] pointers, and possibly segfault or do an + unpredictable or just undesirable behavior. We have been working on a + solution for this problem, and solved some of the biggest problems. + In a few words, the problem is this: when you delete a node, it may be + the current node of a lower level loop. The current code takes care of + access to previous/next elements of the now defunct node. So, if you do + something like: + + for_each_data(l) { + for_each_data(l) { + list_del(l, header_data); + free(header_data); + } end_for_each(l); ++ tempnode = list_cur_next(l); + } end_for_each(l); + + It will work, even though the current node in the outer loop was deleted. + However, if you replace the line marked with + with the following code: + + tempnode = list_next(l, list_get_current(l)); + + it will break, since list_get_current is likely to return NULL or garbage, + since you deleted header_data(). + Conclusion: use list_del carefully. The best way to avoid this problem is + to not use list_del inside a big stack of loops. + * If you have two elements with the same data, the functions will assume + that the first one is the wanted one. Not a bug, a feature. ;-) + * avoid calling list_prev and list_next. They are intensive and slow + functions. Keep the result in a variable or, if you need something more, + use list_get_element_from_data. + + */ + +#include +#include +#include "list.h" +#include "progress.h" + +void list_init( List *l ) { + if ( !l ) + return; + + l->start.next = &l->stop; + l->stop.previous = &l->start; + l->start.previous = l->stop.next = NULL; + l->start.data = l->stop.data = NULL; + l->current = NULL; + l->level = -1; + l->n = 0; +} + +/* inserts data before data_after. If data_after == NULL, appends. + Returns 1 on error, 0 if OK. */ +int list_ins( List *l, void *data_after, void *data) { + Element *e, *after_element; + + /* test arguments */ + if ( !l || !data ) + return 1; + + if ( !data_after || !l->n ) + return list_app(l, data); + + /* get data_after element */ + if ( !(after_element = list_element_from_data(l, data_after)) ) + return 1; + + /* alloc a new element */ + if( !(e = (Element *)malloc(sizeof(Element))) ) + return 1; + e->data = data; + e->next = after_element; + e->previous = after_element->previous; + after_element->previous->next = e; + after_element->previous = e; + l->n++; + + return 0; +} + +/* appends data to the list. Returns 1 on error, 0 if OK. */ +/* same as list_ins(l,NULL,data) ??? */ +int list_app( List *l, void *data ) { + Element *e; + + if ( !l || !data ) + return 1; + if ( !(e = (Element *)malloc(sizeof(Element))) ) + return 1; + + e->data = data; + e->previous = l->stop.previous; + e->next = l->stop.previous->next; + l->stop.previous->next = e; + l->stop.previous = e; + l->n++; + return 0; +} + +/* returns element associated with data. */ +Element *list_element_from_data( List *l, void *data ) { + Element *temp; + + if ( !l || !data || !l->n) + return NULL; + + temp = l->start.next; + + while ( temp->data != data ) { + if ( !temp || temp==&l->stop ) + return NULL; + temp = temp->next; + } + return temp; +} + +/* deletes (first) element with data from list. User must free data. + Returns 0 if OK, 1 on error. + This is the internal version, that shouldn't be called usually. Use the + list_del() macro instead. + */ +int list_del( List *l, void *data ) { + Element *temp; + int i; + + if (!data) return 1; /* do not delete start or stop element */ + + /* find element associated with data */ + if ( !(temp = list_element_from_data(l, data)) ) + return 1; + + /* test if the deleted node is current in some nested loop, and fix it. */ + for ( i = l->level; i >= 0; i-- ) { + if ( l->current[i] == temp ) { + l->current[i] = temp->previous; + } + } + + temp->previous->next = temp->next; + temp->next->previous = temp->previous; + temp->previous = temp->next = NULL; /* mark as freed */ +/* + fprintf(stderr,"\n# list_del=%p start=%p stop=%p",temp,&l->start,&l->stop); +*/ + + /* and free stuff */ + free(temp); /* element pointing to data, fixed mem-leak 0.41 */ + l->n--; + return 0; +} + +/* frees list. See also list_and_data_free() */ +void list_free( List *l ) { + Element *temp, *temp2; + + if ( !l || !l->n ) + return; + + if ( l->current ) { + free(l->current); + } + l->current = NULL; + + temp = l->start.next; + while ( temp && temp!=&l->stop) { + temp2 = temp->next; + free(temp); + temp = temp2; + } + l->start.next = &l->stop; + l->stop.previous = &l->start; +} + +/* setup a new level of for_each */ +int list_higher_level( List *l ) { + Element **newcur; + + if ( !l ) return(1); + + /* + Security-check: NULL pointer passed to realloc. + ANSI allows this, but it may cause portability problems. + */ + newcur = (Element **)realloc(l->current, (l->level+2)*sizeof(Element *)); + if (newcur) { + l->current = newcur; + l->level++; + l->current[l->level] = l->start.next; + } + g_debug(fprintf(stderr, " level++=%d current[]=%p\n", + l->level, l->current);) + if ( !newcur ) { + fprintf(stderr, " realloc failed! abort\n"); return(1); + } + return 0; +} + +void list_lower_level( List *l ) { + if ( !l ) + return; + + if (!l->level) { + free(l->current); /* calm -lefence */ + l->current = NULL; /* could be important */ + } else { + l->current = (Element **)realloc(l->current, l->level*sizeof(Element *)); + } + l->level--; + g_debug(fprintf(stderr, " level--=%d current[]=%p\n", l->level, + l->current);) +} + +/* returns the next item data */ +void *list_next( List *l, void *data ) { + Element *temp; + + if ( !l || !(temp = list_element_from_data(l, data)) ) + return NULL; + if( !temp->next ) return NULL; + return (temp->next->data); +} + +/* returns the previous item data */ +void *list_prev( List *l, void *data ) { + Element *temp; + + if ( !l || !(temp = list_element_from_data(l, data)) ) + return NULL; + if( !temp->previous ) return NULL; + return (temp->previous->data); +} + +/* Similar to qsort. Sorts list, using the (*compare) function, which is + provided by the user. The comparison function must return an integer less + than, equal to, or greater than zero if the first argument is considered to + be respectively less than, equal to, or greater than the second. + Uses the bubble sort algorithm. + */ +void list_sort( List *l, int (*compare)(const void *, const void *) ) { + Element *temp, *prev; + int i, sorted; + progress_counter_t *pc = NULL; + + if ( !l ) + return; + + /* start progress meter, sorting is slow for huge number of elements */ + /* l->n is the worst case, real time is less or equal estimated time */ + pc = open_progress(l->n,"list_sort"); + + for (i = 0; i < l->n; i++ ) { + sorted = 1; /* Flag for early break */ + for ( temp = l->start.next->next; + temp != NULL && temp != &l->stop; temp = temp->next ) { + if ( temp->previous == &l->start ) continue; + if ( compare((const void *)temp->previous->data, + (const void *)temp->data) > 0 ) { + + sorted = 0; /* rest flag */ + /* swap with the previous node */ + prev = temp->previous; + prev->previous->next = temp; + temp->next->previous = prev; + temp->previous = prev->previous; + prev->next = temp->next; + prev->previous = temp; + temp->next = prev; + /* and make sure the node in the for loop is correct */ + temp = prev; + +#ifdef SLOWER_BUT_KEEP_BY_NOW +/* this is a slower version, but guaranteed to work */ + void *data; + + data = temp->data; + prev = temp->previous; + list_del(l, data); + list_ins(l, prev->data, data); + temp = prev; +#endif + } + } + if (sorted) break; + progress(i,pc); /* progress meter */ + } + + close_progress(pc); + g_debug(fprintf(stderr, "list_sort()\n");) +} + +/* calls free_data() for each data in list l, + * before free list with list_free() */ +int list_and_data_free( List *l, void (*free_data)(void *data)) { + void *data; + + if ( !l ) return 0; + if ( !free_data ) return 1; + + for_each_data(l) { + if ((data = list_get_current(l))) + free_data(data); + } end_for_each(l); + + list_free(l); + + g_debug(fprintf(stderr, "list_and_data_free()\n");) + + return 0; +} + diff --git a/3rdparty/gocr-0.48/src/list.h b/3rdparty/gocr-0.48/src/list.h new file mode 100644 index 0000000..dd30099 --- /dev/null +++ b/3rdparty/gocr-0.48/src/list.h @@ -0,0 +1,90 @@ +/* +This is a Optical-Character-Recognition program +Copyright (C) 2000 Joerg Schulenburg + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + see README for EMAIL-address + + */ + +#ifndef GOCR_LIST_H +#define GOCR_LIST_H + +#ifdef DEBUG +#define g_debug(a) a +#else +#define g_debug(a) +#endif + +/* + * Structures + */ + +struct element { + struct element *next, *previous; + void *data; +}; +typedef struct element Element; + +struct list { + Element start; /* simplifies for(each_element) { ... */ + Element stop; /* ... list_del() ... } v0.41 */ + Element **current; /* for(each_element) */ + int n; /* number of elements */ + int level; /* level of nested fors */ +}; +typedef struct list List; + +/* + * Functions + */ + +void list_init ( List *l ); +int list_app ( List *l, void *data ); +int list_ins ( List *l, void *data_after, void *data); +Element*list_element_from_data ( List *l, void *data ); +int list_del ( List *l, void *data ); +void list_free ( List *l ); +int list_and_data_free ( List *l, void (*free_data)(void *data)); +int list_higher_level ( List *l ); +void list_lower_level ( List *l ); +void * list_next ( List *l, void *data ); +void * list_prev ( List *l, void *data ); +void list_sort ( List *l, int (*compare)(const void *, const void *) ); + +#define list_empty(l) ((l)->start.next == &(l)->stop ? 1 : 0) +#define list_get_header(l) ((l)->start.next->data) +#define list_get_tail(l) ((l)->stop.previous->data) +#define list_get_current(l) ((l)->current[(l)->level]->data) +#define list_get_cur_prev(l) ((l)->current[(l)->level]->previous == NULL ? \ + NULL : (l)->current[(l)->level]->previous->data ) +#define list_get_cur_next(l) ((l)->current[(l)->level]->next == NULL ? \ + NULL : (l)->current[(l)->level]->next->data ) +#define list_total(l) ((l)->n) + +#define for_each_data(l) \ + if (list_higher_level(l) == 0) { \ + for ( ; (l)->current[(l)->level] \ + && (l)->current[(l)->level]!=&(l)->stop; (l)->current[(l)->level] = \ + (l)->current[(l)->level]->next ) { + + +#define end_for_each(l) \ + } \ + list_lower_level(l); \ + } + +#endif diff --git a/3rdparty/gocr-0.48/src/ocr0.c b/3rdparty/gocr-0.48/src/ocr0.c new file mode 100644 index 0000000..ad75d0e --- /dev/null +++ b/3rdparty/gocr-0.48/src/ocr0.c @@ -0,0 +1,6756 @@ +/* + rule based OCR engine, partly rewritten for edges (old=pixel) + */ +/* +This is a Optical-Character-Recognition program +Copyright (C) 2000-2009 Joerg Schulenburg + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + see README for email address + + >>> DO NOT EDIT THIS FILE IF YOU NOT REALLY KNOW WHAT YOU ARE DOING! <<< + + I have invested lot of time, to write this part of the program. + This engine should recognize chars allways right or return UNKNOWN. + If you change something, test all other example files too, + to be sure that all things work better. (JoergS) + + This engine was pixelbased until 0.40 which was not successfull enough. + Also code changes always hade side effects. The vectorisation of the code + starts from version 0.41 with the chars XNz and seems to be much better + to handle. Vectorization means we frame each character by a chain of + vectors and dont care about pixels anymore. Unfortunatly I have to + replace all the pixel codes, which is a long process. Old code will be lost. + (JorgS) + + +ToDo: + - if box1->p and b differ, reduce probability + - probability makes life much easier here + - use only one box!?, may be bits have usefull infos + - divide this file, suggestion: classify chars: + high=ABCDEFGHIJKLMNOPQRSTUVWXYZbdfhklt, low=acegijmnopqrsuvwxyz + or + often_used=etianmsurwdkgo rarely_used=hvjcflpqxyz.,: + or + every char (large overhead) + - two-pass version (first pass without tolerance) + 2nd pass with tolerance (ex: one tiny more in sdata->holes) + + general feature extraction: + - white holes at middle, upper, lower position (cost much time) + - test lines and triangles insteat of rectangles + + char is removed, wchar_t is used (better code) + + making a static global variable-set x.x0,x.x1, and call test_a, + test_b ... (faster compilation, but not reentrant!) + + - adding slant-angle (if detected) to distinguish between l and / ? + - ac (alternate chars) as string add_ac(box1,"/") => box1->ac="Il/"; + for better context correction or output: "Ha[lI][lI]o!" + +*/ + +#include +#include +// #include "pgm2asc.h" +#include "ocr0.h" +// #include "ocr1.h" +#include "amiga.h" +#include "pnm.h" +#include "gocr.h" + +#define IFV if(JOB->cfg.verbose&4) +#define MM {IFV fprintf(stderr,"\nDBG %c L%04d (%d,%d): ",(char)c_ask,__LINE__,box1->x0,box1->y0);} + +// the old debug mode (0.40) was only for a special char, for another char +// code must be recompiled with C_ASK='char' +// new debug mode (0.41) explains why char is declined or accepted as ABC... +// the output can be filtered by external scripts +// ToDo: we could reduce output to filter string +#ifndef DO_DEBUG /* can be defined outside (configure --with-debug) */ +#define DO_DEBUG 0 /* 0 is the default */ +#endif + +/* this macro is for debugging output: "if char is declined, why?" */ +#if DO_DEBUG /* 0=Work mode, 1=debugging mode */ +// Setac: output, that char is choosen with a probability +// Break: output, why the char is not choosen +// MSG: debugging functions for char C_ASK, mostly messages +// DBG: definitions usefull only for debugging +#define Setac(box1,ac,ad) { MM;IFV fprintf(stderr,"setac %d",ad);setac(box1,ac,ad); } +#define Break { MM;IFV fprintf(stderr,"break"); break; } +#define MSG(x) { MM;IFV x } +#define DBG(x) x +#else +#define Setac(box1,ac,ad) setac(box1,ac,ad) +#define Break break +#define MSG(x) +#define DBG(x) +#endif + +/* extern "C"{ */ + +// static inline int sq(int x) { return x*x; } /* square */ + +/* + * go from vector j1 to vector j2 and measure maximum deviation of + * the steps from the line connecting j1 and j2 + * return the squared maximum distance + * in units of the box size times 1024 + * ToDo: 1) better give back max-dx and max-dy ??? + * errors if j1 and j2 are in different frames or belong to + * more then one frame? + * 2) Better get deviation from a complete vector graphic? + * The vectorgraphic is the ideal test char adapted to the + * extrem vertices of the real char. + */ +int line_deviation( struct box *box1, int j1, int j2 ) { + int r1x, r1y, r2x, r2y, r3x, r3y, i, x, y, d, dist, maxdist=0, frame, l2; + r1x=box1->frame_vector[j1][0]; + r1y=box1->frame_vector[j1][1]; + r2x=box1->frame_vector[j2][0]; + r2y=box1->frame_vector[j2][1]; + if (!box1->num_frames) return(-1); + if (j1<0 || j1>box1->num_frame_vectors[box1->num_frames-1] || + j2<0 || j2>box1->num_frame_vectors[box1->num_frames-1]) { + fprintf(stderr,"Error in "__FILE__" L%d: idx out of range",__LINE__); + return(-1); + } + /* get the frame the endvector belongs to */ + for (i=0;inum_frames;i++) + if (j2num_frame_vectors[i]) break; + frame=i; + /* frame(j1)<=frame(j2) possible */ + for (i=j1;;i++) { // do it for each vector between j1 and j2 + if (i >= box1->num_frame_vectors[frame]) + i=((frame)?box1->num_frame_vectors[frame-1]:0); /* go around */ + if (i==j2) break; + // for (i=j1;i!=j2;i=(i+1)%box1->num_frame_vectors[0]) {~} + r3x=box1->frame_vector[i][0]; + r3y=box1->frame_vector[i][1]; + // Language=german + // german: Abstand Punkt von Strecke, Laenge Lotrechte + // germ.Strecke : l1=(r1+r2)/2+d*(r2-r1)/2 for d=-1..1 + // germ.Lotrechte: l2=r3+b*[-(r2-r1).y,(r2-r1).x] + // Schnittpunkt : l1=l2, + // eq1x: (r1x+r2x)/2-r3x+d*(r2x-r1x)/2+b*(r2y-r1y)=0 + // eq1y: (r1y+r2y)/2-r3y+d*(r2y-r1y)/2-b*(r2x-r1x)=0 + // eq2x: b*(r2x-r1x)*(r2y-r1y)=-((r1x+r2x)/2-r3x+d*(r2x-r1x)/2)*(r2x-r1x) + // eq2y: b*(r2x-r1x)*(r2y-r1y)= ((r1y+r2y)/2-r3y+d*(r2y-r1y)/2)*(r2y-r1y) + // eq2y-eq2x: ... in units of 1024 (fast integer rounded correctly) + l2=sq(r2x-r1x)+sq(r2y-r1y); // square of distance r2-r1 + if (l2==0) { + // fprintf(stderr,"ocr0 L%d: r1==r2 r1= %d %d",__LINE__, r1x, r1y); // debugging + d=-1024; + } else + d=-( ((r1x+r2x)-2*r3x)*(r2x-r1x) + +((r1y+r2y)-2*r3y)*(r2y-r1y))*1024/l2; // ..-1024..+1024.. + if (d<=-1024) { x=r1x; y=r1y; } // starting point + else { + if (d>=1024) { x=r2x; y=r2y; } // end point + else { + x=((r1x+r2x)+1)/2+(d*(r2x-r1x))/2048; + y=((r1y+r2y)+1)/2+(d*(r2y-r1y))/2048; + /* we have the crossing point x,y now */ + } + } + dist=sq((x-r3x)*1024/(box1->x1-box1->x0+1)) + +sq((y-r3y)*1024/(box1->y1-box1->y0+1)); // 0..2*sq(1024) + if (dist>maxdist) maxdist=dist; + // for debugging: + // fprintf(stderr,"\nDBG dev: %d-%d-%d dist=%5d max=%5d d=%d %d,%d-%d,%d" + // " vector= %d %d crosspoint= %d %d ", + // j1,i,j2,dist,maxdist,d,r1x,r1y,r2x,r2y,r3x,r3y,x,y); + } + return maxdist; +} + +/* + * search vectors between j1 and j2 for nearest point a to point r + * example: + * + * r-> $$...$$ $ - mark vectors + * @@$..@@ @ - black pixels + * @@$..@@ . - white pixels + * @@@@.$@ + * a-> @@$@$@@ + * @$.@@@@ + * @@..$@@ + * @@..$@@ + * j1 --> $$...$$ <-- j2 + * + * ToDo: vector aa[5] = {rx,ry,x,y,d^2,idx} statt rx,ry? + * j1 and j2 must be in the same frame + * return aa? + * 2009-07: + * - change from normalized (dx=128,dy=128) to absolute distance + * - simpler and no squeeze effect (problem getting right i2 for "3") + */ +int nearest_frame_vector( struct box *box1, int j1, int j2, int rx, int ry) { + int x,y,d,i,aa[4]; /* x,y,normalized_distance^2,vector_index */ + int frame=0; + // int x0=box1->x0, y0=box1->y0, + // x1=box1->x1, y1=box1->y1; + // int dx=box1->x1-x0+1, dy=box1->y1-y0+1; + if (!box1->num_frames) return(-1); + if (j1<0 || j1>box1->num_frame_vectors[box1->num_frames-1] || + j2<0 || j2>box1->num_frame_vectors[box1->num_frames-1]) { + fprintf(stderr,"Error in "__FILE__" L%d: idx %d-%d out of range\n",__LINE__,j1,j2); + out_x(box1); + return(-1); + } + aa[0]=x=box1->frame_vector[j2][0]; /* x */ + aa[1]=y=box1->frame_vector[j2][1]; /* y */ + /* maximum is (distance*128)^2 if r is inside the box */ + // aa[2]=d=2*sq(128)+sq((rx-(x0+x1)/2)*128/dx)+sq((ry-(y0+y1)/2)*128/dy); + aa[2]=d=2*(sq(x-rx)+sq(y-ry)); /* must be greater than min. dist, Jul09 */ + aa[3]=j2; /* vector index */ + /* get the frame the endvector belongs to */ + for (i=0;inum_frames;i++) + if (j2num_frame_vectors[i]) break; + frame=i; + /* frame(j1)<=frame(j2) possible */ + for (i=j1;;i++) { + if (i >= box1->num_frame_vectors[frame]) + i=((frame)?box1->num_frame_vectors[frame-1]:0); /* go around */ + x=box1->frame_vector[i][0]; /* take a vector */ + y=box1->frame_vector[i][1]; + /* distance to upper left end, normalized to 128 */ + // d=sq((x-rx)*128/dx)+sq((y-ry)*128/dy); // old 2009-07 + d=sq(x-rx)+sq(y-ry); + if (d0 and m==1 box1 is changed +// m>0 modify box1->dots +// m==2 modify box1->y0 +// called by pgm2asc + ocr0(?) +int testumlaut(struct box *box1, int cs, int m, wchar_t *modifier){ + // pix p=*(box1->p); + int r,y,x,x0,x1,y0,y1,dx,dy,m1,m2,m3, + xl,xr,yu,yl; // left, right, upper and lower border of dots + wchar_t mod='\0'; /* (TeX-) modifier ~"'` for compose() */ + DBG( wchar_t c_ask='"'; ) + r=0; + x0=box1->x0; x1=box1->x1; dx=x1-x0+1; + y0=box1->y0; y1=box1->y1; dy=y1-y0+1; + m1=box1->m1; m2=box1->m2; m3=box1->m3; + xl=x0; xr=x1; yu=yl=y0; + if( dy < 5 || 4*y0 > 3*m2+m3 ) return 0; // no low chars: .,-= + /* modifier in box included? */ + if( 2*y1 > m1+m2 ){ + /* modifier in box included? */ + for(y=y0;2*yp,cs,1)==0 ) break; + if( 2*y extract */ + yl=y; + while( get_bw(xl,xr,y,y,box1->p,cs,1)==0 && 2*y<=y0+y1) y++; + if( m&2 ) box1->y0=y; /* set new upper bond */ + } + } + if( yu>=yl ) { if(m) box1->dots=0; return 0; } /* nothing found */ + if( get_bw(xl-1,xl-1,yu,yl-1,box1->p,cs,1)==1 ) // neighbour overlap? + while( get_bw(xl ,xl ,yu,yl-1,box1->p,cs,1)==1 && 2*xlp,cs,1)==1 ) break; + for(;xr>xl;xr--)if( get_bw(xr,xr,yu,yl,box1->p,cs,1)==1 ) break; + + if ( yl-1>yu ) { // tall box ij"a"o"u +#if 0 + x=box1->y0; box1->y0=m1; out_x(box1); box1->y0=x; + fprintf(stderr,"\n#testumlaut x= %d %d m1=%d m2=%d",x0,y0,m1-y0,m2-y0); + fprintf(stderr," yu=%d yl=%d xl=%d xr=%d",yu-y0,yl-y0,xl-x0,xr-x0); +#define DEBUG 1 +#endif + { + + x=xl;y=yu; + if( get_bw(xl,x1+1,yu,yl-1,box1->p,cs,1)==0 ) r=0; // neighbour overlap? + else + if( get_bw(xl ,xl ,yu,yl-1,box1->p,cs,1)==0 + || get_bw(xl-1,xl-1,yu,yl-1,box1->p,cs,1)==0 ) // be sure there are gap to neighbours + if( get_bw(xr ,xr ,yu,yl-1,box1->p,cs,1)==0 + || get_bw(xr+1,xr+1,yu,yl-1,box1->p,cs,1)==0 ) + { int i,j,x; + r=1; + // ...@@@.... RING_ABOVE // ..@@@..@@. TILDE + // ..@...@... // @@.@@@@@.. + // ..@...@... // @......... + // ..@..@@... + // ...@@@.... + for (i=yu;ip,cs,1)==1) break; + for ( ;ip,cs,1)==0) break; + for (j=xl;jp,cs,1)==1) break; + for ( ;jp,cs,1)==0) break; + for ( x=j;xp,cs,1)==1) break; + // vert. gap detected + if( j2 + && num_obj(xl,xr,yu,yl-1,box1->p,cs)>=2 // not best!!! + && num_cross(xl,xr,yu +(yl-yu)/4,yu+ (yl-yu)/4,box1->p,cs) == 2 + && num_cross(xl,xr,yl-1-(yl-yu)/2,yl-1-(yl-yu)/2,box1->p,cs) == 2 + ){ // may be the following lines are not quite ok + while( get_bw(xl,xr,yl,yl,box1->p,cs,1)==0 && 2*yly0=yl; +/* if( m&2 ) box1->y0= ( (r==1) ? yu : yl ); */ + // out_x(box1); + } + if(r==0){ // divided fr != fi + while( get_bw(x0,x1,yu,yu,box1->p,cs,1)==0 && 2*yuy0=yu; + } + if( r==1 ){ yl--; +// .@@@. ..@@. +// .@@.. .@@.. +// .@... .@@.. +// +// if( loop(box1->p,xl,yu,xr-xl,cs,0,RI) +// > loop(box1->p,xl,yl,xr-xl,cs,0,RI) // +dx/8 +// && loop(box1->p,xr,yu,xr-xl,cs,0,LE) +// < loop(box1->p,xr,yl,xr-xl,cs,0,LE)) // -dx/8 ) // é Nov03 + if( loop(box1->p,xl,yu,xr-xl,cs,0,RI) + - loop(box1->p,xr,yu,xr-xl,cs,0,LE) + > loop(box1->p,xl,yl,xr-xl,cs,0,RI) // +dx/8 + - loop(box1->p,xr,yl,xr-xl,cs,0,LE)+1) // -dx/8 ) // é Nov03 + mod = ACUTE_ACCENT; // ' + + if( xr-xl+1 > 3*(yl-yu+1) + && get_bw(xl,xr,yu,yl,box1->p,cs,2)==0 ) + mod = MACRON; // "-" above + +// .@@@. .@@.. +// ..@@. ..@@. +// ...@. ..@@. +// +// if( loop(box1->p,xl,yu,xr-xl,cs,0,RI) +// < loop(box1->p,xl,yl,xr-xl,cs,0,RI) // -dx/8 +// && loop(box1->p,xr,yu,xr-xl,cs,0,LE) +// > loop(box1->p,xr,yl,xr-xl,cs,0,LE) ) // +dx/8 ) à Nov03 + if( loop(box1->p,xl,yu,xr-xl,cs,0,RI) + - loop(box1->p,xr,yu,xr-xl,cs,0,LE) + < loop(box1->p,xl,yl,xr-xl,cs,0,RI) // -dx/8 + - loop(box1->p,xr,yl,xr-xl,cs,0,LE) -1 ) // +dx/8 ) à Nov03 + mod = GRAVE_ACCENT; // ` + +#ifdef DEBUG + fprintf(stderr,"\n#testumlaut x= %d %d m1=%d m2=%d",x0,y0,m1-y0,m2-y0); + fprintf(stderr," yu=%d yl=%d xl=%d xr=%d",yu-y0,yl-y0,xl-x0,xr-x0); +#endif + if( (xr-xl+1) < 2*(yl-yu+1)+2 + && 2*(xr-xl+1)+2 > (yl-yu+1) ) { + int i,i1,i2,i3,i4; + i1=loop(box1->p,xl ,(yu+yl)/2,xr-xl+1,cs,0,RI); + i1=loop(box1->p,xl+i1,(yu+yl)/2,xr-xl+1,cs,1,RI); + i2=loop(box1->p,(xl+xr)/2,yu ,yl-yu+1,cs,0,DO); + i2=loop(box1->p,(xl+xr)/2,yu+i2,yl-yu+1,cs,1,DO); + for (i=0;ip,xl+i,yu+i)< cs) break; i3=i; + for ( ;ip,xl+i,yu+i)>=cs) break; i3=i-i3; + for (i=0;ip,xr-i,yu+i)< cs) break; i4=i; + for ( ;ip,xr-i,yu+i)>=cs) break; i4=i-i4; +#ifdef DEBUG + fprintf(stderr,"\n#DEBUG DOT_ABOVE %d %d %d %d",i1,i2,i3,i4); +#endif + if ( (xr-xl<5 && yl-yu<8) /* to small */ + || (i1>=(xr-xl+1)/2+2 && i2>=(yl-yu+1)/2+2 /* symmetrical */ + && abs(i3-i4)<=i1/4+2 && abs(i1-i2)<=i1/4+2 + && abs(i3-i1)<=i1/4+4 && abs(i4-i2)<=i1/4+4) + ) + mod = DOT_ABOVE; // "." above, ToDo: improve it! + } + + if( ( loop(box1->p,xl,yu ,xr-xl,cs,0,RI) + > loop(box1->p,xl,yl ,xr-xl,cs,0,RI)-dx/8 + || loop(box1->p,xl,yu ,xr-xl,cs,0,RI) + > loop(box1->p,xl,yl-1,xr-xl,cs,0,RI)-dx/8 ) + && ( loop(box1->p,xr,yu ,xr-xl,cs,0,LE) + > loop(box1->p,xr,yl ,xr-xl,cs,0,LE)-dx/8 + || loop(box1->p,xr,yu ,xr-xl,cs,0,LE) + > loop(box1->p,xr,yl-1,xr-xl,cs,0,LE)-dx/8 ) + && num_cross(xl,xr,yu ,yu ,box1->p,cs) == 1 + && ( num_cross(xl,xr,yl ,yl ,box1->p,cs) == 2 + || num_cross(xl,xr,yl-1,yl-1,box1->p,cs) == 2 )) + mod = CIRCUMFLEX_ACCENT; // "^" + + if( ( loop(box1->p,xl,yu ,xr-xl,cs,0,RI) + < loop(box1->p,xl,yl ,xr-xl,cs,0,RI)-dx/10 + || loop(box1->p,xl,yu+1,xr-xl,cs,0,RI) + < loop(box1->p,xl,yl ,xr-xl,cs,0,RI)-dx/10 ) + && ( loop(box1->p,xr,yu ,xr-xl,cs,0,LE) + < loop(box1->p,xr,yl ,xr-xl,cs,0,LE)-dx/10 + || loop(box1->p,xr,yu+1,xr-xl,cs,0,LE) + < loop(box1->p,xr,yl ,xr-xl,cs,0,LE)-dx/10 ) + && ( num_cross(xl,xr,yu ,yu ,box1->p,cs) == 2 + || num_cross(xl,xr,yu+1,yu+1,box1->p,cs) == 2 ) + && num_cross(xl,xr,yl ,yl ,box1->p,cs) == 1 ) + mod = CARON; // "v" above + + if( /* test for bow (new0.3.6) */ + loop(box1->p,xl,yu ,xr-xl,cs,0,RI) + + loop(box1->p,xl,yl ,xr-xl,cs,0,RI) + - 2*loop(box1->p,xl,(yl+yu)/2,xr-xl,cs,0,RI) > dx/16+1 + && xr-xl>10) + if( ( loop(box1->p,xl,yu ,xr-xl,cs,0,RI) + < loop(box1->p,xl,yl ,xr-xl,cs,0,RI)-dx/10 + || loop(box1->p,xl,yu+1,xr-xl,cs,0,RI) + < loop(box1->p,xl,yl ,xr-xl,cs,0,RI)-dx/10 ) + && ( loop(box1->p,xr,yu ,xr-xl,cs,0,LE) + < loop(box1->p,xr,yl ,xr-xl,cs,0,LE)-dx/10 + || loop(box1->p,xr,yu+1,xr-xl,cs,0,LE) + < loop(box1->p,xr,yl ,xr-xl,cs,0,LE)-dx/10 ) + && ( num_cross(xl,xr,yu ,yu ,box1->p,cs) == 2 + || num_cross(xl,xr,yu+1,yu+1,box1->p,cs) == 2 ) + && num_cross(xl,xr,yl ,yl ,box1->p,cs) == 1 ) + mod = BREVE; // round "u" above + + if( xr-xl>3 && yl-yu>1 ) + if( loop(box1->p,xl,yu,xr-xl,cs,0,RI) + > loop(box1->p,xl,yl,xr-xl,cs,0,RI) + && loop(box1->p,xr,yu,xr-xl,cs,0,LE) + < loop(box1->p,xr,yl,xr-xl,cs,0,LE) + && num_cross(xl,xr,yu,yu,box1->p,cs) == 2 + && num_cross(xl,xr,yl,yl,box1->p,cs) == 2 ) + mod = TILDE; + + if( xr-xl>2 && yl-yu>2) + if( num_cross(xl,xr,(yu+yl)/2,(yu+yl)/2,box1->p,cs) >1 ) + if( num_cross((xl+xr)/2,(xl+xr)/2,yu,yl,box1->p,cs) >1 ) + if( num_hole(xl,xr,yu,yl,box1->p,cs,NULL) == 1 ) + mod = RING_ABOVE; + +#ifdef DEBUG + printf("\n#DEBUG umlaut mod=0x%04x x=%d..%d y=%d..%d r=%d %s", + (int)mod,yu-box1->y0,yl-box1->y0, + xl-box1->x0,xr-box1->x0,r,((mod==CARON)?"CARON": + ((mod==ACUTE_ACCENT)?"ACUTE": + ((mod==TILDE)?"TILDE":"?")))); + out_x(box1); +#endif + + } + } + if (m) box1->dots=r; // set to 0 also possible after division + if (m) box1->modifier=mod; /* should be resetted after compose ??? */ + MSG(fprintf(stderr,"umlaut mod=%s dots=%d y0o=%d",decode(mod,ASCII),r,y0);) + } +// printf(" modifier=%c",mod); + if (modifier) *modifier=mod; /* set modifier */ + return r; +} + + +static wchar_t ocr0_eE(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + int i,i1,i2,j,d,x,y,hchar=sdata->hchar,gchar=sdata->gchar,bad_e=0, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1,cs=sdata->cs; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + ad; /* tmp-vars */ + int (*aa)[4]=sdata->aa; /* corner-points, (x,y,dist^2,vector_idx) */ + + // --- most frequent letter e first!!! + // --- test e --------------------------------------------------- + for(ad=d=100;dx>2 && dy>3;){ // min 3x4 (smallest seen is 5x6) + DBG( wchar_t c_ask='e'; ) + if (sdata->holes.num > 2) Break; /* tolerant against a tiny hole */ + if (sdata->holes.num != 1) ad=97*ad/100; + /* ToDo: may be a two pass version intolerant/tolerant is better */ + if( loop(box1->p,x0,y0+dy/2,x1-x0,cs,0,RI)>dx/3 ) Break; // rough test + if( loop(box1->p,x0+dx/2,y0,y1-y0,cs,0,DO)>dy/3 ) Break; + if( loop(box1->p,x0+dx/2,y1,y1-y0,cs,0,UP)>dy/3 ) Break; + if( num_cross(x0,x1,y0+dy/4 ,y0+dy/4 ,box1->p,cs) > 2 + && num_cross(x0,x1,y0+dy/4+1,y0+dy/4+1,box1->p,cs) > 2 ) Break; // gt + x=(x0+x1)/2;i= num_cross(x,x,y0,y1,box1->p,cs); // v0.40 + if (i!=3) { x=(x0+2*x1)/3;i= num_cross(x,x,y0,y1,box1->p,cs); } + if (i!=3) { x=(x0+3*x1)/4;i= num_cross(x,x,y0,y1,box1->p,cs); } + if (i!=3) { i= num_cross((x0+2*x1)/3,(x0+x1)/2,y0,y1,box1->p,cs); } + i=loop(box1->p,x0,y0+dy/2,x1-x0,cs,0,RI); if( i>dx/2 ) Break; + j=loop(box1->p,x0,y0 ,x1-x0,cs,0,RI); if( jp,x0,y1 ,x1-x0,cs,0,RI); if( jp,x0+dx/2,y0,y1-y0,cs,0,DO); if( i>dx/2 ) Break; + j=loop(box1->p,x1-dx/3,y0,y1-y0,cs,0,DO); if( jp,x0 ,y0,y1-y0,cs,0,DO); if( jp,x1 ,y0,y1-y0,cs,0,DO); if( jp,x0+dx/2,y1,y1-y0,cs,0,UP); if( i>dx/2 ) Break; + j=loop(box1->p,x0 ,y1,y1-y0,cs,0,UP); if( jp,x1 ,y1,y1-y0,cs,0,UP); if( jp,x0, (y0+y1)/2,x1-x0,cs,0,RI) + -loop(box1->p,x0,(3*y0+y1)/4,x1-x0,cs,0,RI) + -loop(box1->p,x0,(y0+3*y1)/4,x1-x0,cs,0,RI); + if (dx>3 && j>=dx/4) Break; // ~g 4x6font + for(y=1;yp,cs) == 2 ) break; + if( y==dy/2 ) Break; // v0.2.5 ~ bad_t + for(i=0,j=x0+dx/4;j<=x1-dx/4 && i<=dx/4;j++) + if( num_cross(j,j,y0,y1,box1->p,cs) == 3 ) i++; + if( dx>4 && dy>5 && (i set x,y + for(x=0,y=i=y0+dy/3;ip,x1,i,y1-y0,cs,0,LE); + if(j>=x) { x=j;y=i; } + } + if (x 2* smallest thickness right + for(i1=dx,i=y0+dy/3;ip,x0 ,i,y1-y0,cs,0,RI); if (j>dx/2) break; + j =loop(box1->p,x0+j,i,y1-y0,cs,1,RI); + if (jp,x1 ,i,y1-y0,cs,0,LE); + j =loop(box1->p,x1-j,i,y1-y0,cs,1,LE); + if(j2*i1) Break; // not accepted, if right line is not very thinn + x =loop(box1->p,x1 ,y,y1-y0,cs,0,LE); + x+=loop(box1->p,x1-x,y,y1-y0,cs,1,LE); + x+=loop(box1->p,x1-x,y,y1-y0,cs,0,LE); + if (3*i2>i1) ad=99*ad/100; + if (2*i2>i1) ad=99*ad/100; + bad_e=60; // used later? + } + if (xp,cs) > 1 ) i=0; + if( i ) Break; +// ..@@@@...<- +// .@@@@@@;. +// @@,...@@. +// @@.....@, +// @@@@@@@@@ +// @@.,;.@,. <- problem (y) == bad_e>50 +// @@.....@. +// @@,...@@. +// .@@@,@@@. +// ..@@@@;..<- + if (dy>11 && bad_e<50) + if ( num_cross(x0,x1,y,y,box1->p,cs) != 1 ) Break; // except "geschwungenem e" + if ( num_cross(x0,x1-dx/3,y ,y ,box1->p,cs) != 1 + && num_cross(x0,x1-dx/3,y+1,y+1,box1->p,cs) != 1 ) Break; + // if( num_hole(x0, x1, y0 , y ,box1->p,cs,NULL) < 1 ){ + if( sdata->holes.num == 0 || sdata->holes.hole[0].y1 >= y-y0){ + if( sdata->hchar ) Break; // ~ \it t + // look if thinn font (may be h-line is broken) Mai00 + for(j=0,i=x0+dx/8;ip,cs,1) == 1 ) j++; + if(j<2*dx/4) Break; + } + if( sdata->holes.num>0 && sdata->holes.hole[0].y0 > y-y0) Break; + if( sdata->holes.num>1 && sdata->holes.hole[1].y0 > y-y0) Break; + if( sdata->holes.num==1 && sdata->holes.hole[0].x0 >= dx/2) { + ad=95*ad/100; } /* 8*10 @ (=at) is not an e */ + // look for horizontal gap + for(x=0,y=i=y0+dy/4;ip,x0,i,x1-x0,cs,0,RI); + if(j>=x) { x=j;y=i; } + } + if (y>y0+dy/4 && ydx/2) Break; // s + if (x>dx/4) ad=99*ad/100; + + if( num_cross(x0+dx/2,x1 ,y1-dy/4,y1 ,box1->p,cs) == 0 + && num_cross(x0+dx/2,x1-1,y1-dy/4,y1 ,box1->p,cs) == 0 + && num_cross(x0+dx/2,x1 ,y1-dy/4,y1-1,box1->p,cs) == 0 ) { + if (sdata->gchar) Break; // ~p + ad=99*ad/100; + } + /* upper case is for 5x6 box */ + if( sdata->hchar // broken B ? should also work when linedetection fails + && loop(box1->p,x1,y1-dy/3,dx,cs,0,LE)<=dx/8 ) { + x = loop(box1->p,x0,y0+dy/2,dx,cs,0,RI); + if( loop(box1->p,x0,y0+dy/4,dx,cs,0,RI)<=x + && loop(box1->p,x0,y0+dy/8,dx,cs,0,RI)<=x ) Break; + if( loop(box1->p,x0,y1-dy/4,dx,cs,0,RI)<=x + && loop(box1->p,x0,y1-dy/8,dx,cs,0,RI)<=x ) Break; + } + x = loop(sdata->bp,0,dy-2 ,dx,cs,0,RI); + if( loop(sdata->bp,0,dy-1-dy/8,dx,cs,0,RI)>x && dy>16) Break; // some Q + if (box1->m2) { + if (sdata->gchar) ad=99*ad/100; + if (sdata->hchar) ad=99*ad/100; + } else ad=99*ad/100; + + Setac(box1,(wchar_t)'e',ad); + if (ad>=100) return 'e'; + break; + } + // --- test E --------------------------------------------------- + for(ad=d=100;dx>2 && dy>4 ;){ // min 3x4 + // rewritten for vectors 0.43 + int i1, i2, i3, i4, i5; // line derivation + corners + DBG( wchar_t c_ask='E'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + /* half distance to the center */ + d=2*sq(128/4); + /* now we check for the upper right end of the h */ + if (aa[3][2]>d/2) Break; /* [2] = distance, ~dj... */ + if (aa[0][2]>d/2) Break; /* upper left end */ + if (aa[1][2]>d/2) Break; /* lower left end */ + if (aa[2][2]>d/2) Break; /* lowerright end */ +/* + E f near E + + OOOOOOOO OOOO + O5 O O + O4 O + OOOO3 OOOOOO + O2 O + O O + O1 O O + OOOOOOOO OOOOOO +*/ + // check the bow from below + for (i=aa[1][3];i!=aa[2][3];i=(i+1)%box1->num_frame_vectors[0]) { + if (y1-box1->frame_vector[ i][1]>dy/4) break; // fatal! + } if (i!=aa[2][3]) Break; // ~AHKMNRX + // search most left+down between bottom right and top right + i1=nearest_frame_vector(box1, aa[2][3],aa[3][3], x0, y1); + i5=nearest_frame_vector(box1, i1,aa[3][3], x0, y0); + i3=nearest_frame_vector(box1, i1, i5, x1, (y0+y1)/2); + i2=nearest_frame_vector(box1, i1, i3, x0, (2*y0+y1)/3); + i4=nearest_frame_vector(box1, i3, i5, x0, (y0+2*y1)/3); + i =nearest_frame_vector(box1, aa[0][3],aa[1][3], x0-dx/4, (y0+y1)/2); + if (2*box1->frame_vector[i][0] < aa[0][0]+aa[1][0]-1-dx/16) Break; + if (2*box1->frame_vector[i][0] < aa[0][0]+aa[1][0]) ad=99*ad/100; // f + + MSG(fprintf(stderr,"i1-5 %d %d %d %d %d",i1,i2,i3,i4,i5);) + // holes right open? + for( i=1,y=y0; yp,cs,2) == 0 ) i=0; + if( i ) Break; + for( i=1,y=y1; y>y1-dy/4 && i; y-- ) // long black line + if( get_bw(x0+dx/6,x1-dx/4,y,y,box1->p,cs,2) == 0 ) i=0; + if( i ) Break; + for( i=1,y=y0+dy/3; yp,x0 ,y,dx,cs,0,RI); + j=loop(box1->p,x0+j,y,dx,cs,1,RI); if( j>dx/3 ) i=0; + } if( i ) Break; + x=x1-dx/3; y=y0; // von oben durchbohren! + turmite(box1->p,&x,&y,x0,x1,y0,y1,cs,DO,ST); if( y>y0+dy/4 ) Break; + turmite(box1->p,&x,&y,x0,x1,y0,y1,cs,ST,DO); if( y>y0+dy/3 ) Break; + turmite(box1->p,&x,&y,x0,x1,y0,y1,cs,RI,DO); if( x<=x1 || y>y0+dy/2 ) Break; + x=x1-dx/3; y=y1; // von unten durchbohren! + turmite(box1->p,&x,&y,x0,x1,y0,y1,cs,UP,ST); if( yp,&x,&y,x0,x1,y0,y1,cs,ST,UP); if( yp,&x,&y,x0,x1,y0,y1,cs,RI,UP); if( x<=x1 || yp,&x,&y,x0,x1,y0,y1,cs,DO,ST); if( y>y0+dy/4 ) Break; + turmite(box1->p,&x,&y,x0,x1,y0,y1,cs,ST,DO); if( y>y0+dy/3 ) Break; + y+=dy/15; + turmite(box1->p,&x,&y,x0,x1,y0,y1,cs,LE,ST); if( x15 && x==x0) ad=99*ad/100; // to thin + x+=dx/15+1; + turmite(box1->p,&x,&y,x0,x1,y0,y1,cs,DO,ST); if( y>y1-dy/3 ) Break; + // if( num_hole(x0, x1, y0 , y1 ,box1->p,cs,NULL) > 0 ) Break; + if (sdata->holes.num > 0) Break; + i=loop(box1->p,x0,y0+dy/4,dx,cs,0,RI); if(i>dx/2) Break; + j=loop(box1->p,x0,y0+dy/2,dx,cs,0,RI); if(ji+dx/8) Break; i=j; + j=loop(box1->p,x0,y1-dy/4,dx,cs,0,RI); if(ji+dx/8) Break; + j=loop(box1->p,x1,y1-dy/4,dx,cs,0,LE); + for( x=dx,y=y0+dy/6; yp,x0,y,dx,cs,0,RI); + if (i>j/2 && ad>98) ad=99*ad/100; + if (i>dx/4) break; + if(i3*dx) // ~[ + if( get_bw(x0+dx/2,x0+dx/2,y0+dy/4,y1-dy/4,box1->p,cs,1) == 0 ) Break; + + if (box1->m2) { + if (!hchar) ad=ad*99/100; + if ( gchar) ad=ad*99/100; + } + Setac(box1,(wchar_t)'E',ad); + if (ad>=100) return 'E'; + break; + } + return box1->c; +} + +static wchar_t ocr0_n(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + int i,j,d,x,y,i1,i2,i3,handwritten=0, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1,cs=sdata->cs; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + ad; /* tmp-vars */ + + // --- test n --------------------------------------------------- + // glued rm is very similar to glued nn -> thickness of h-line should grow + // may02: tested for 8x12 font + for(ad=d=100;dx>2 && dy>3;){ // min 3x4 + DBG( wchar_t c_ask='n'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + i= num_cross( 0,dx-1,dy/4,dy/4,sdata->bp,cs); + j= num_cross( 0,dx-1,dy/2,dy/2,sdata->bp,cs); + if( (i<2 || i>3) && j!=2 ) Break; + if( loop(sdata->bp,dx/2,0,dy,cs,0,DO) > dy/8 && sdata->hchar ) Break; /* tt */ + y=5*dy/8; /* also for handwritten n, where first bow goes not down enough */ + if( num_cross( 0,dx/2,y ,y ,sdata->bp,cs) != 1 + && num_cross( 0,dx/2,y-1,y-1,sdata->bp,cs) != 1 + && num_cross(dx/2,dx-1,y ,y ,sdata->bp,cs) < 1 ) Break; // n rr + // ~thick_w + y=loop(sdata->bp,dx-1-dx/4,0,dy,cs,0,DO); if(y>dy/2) Break; + if(y>1)if( get_bw(dx-1-dx/4,dx-1,0,y-2,sdata->bp,cs,1) == 1 ) Break; + + y=3*dy/4; + if( num_cross(0, dx/2,y ,y ,sdata->bp,cs) == 1 + && num_cross(dx/2,dx-1,y ,y ,sdata->bp,cs) == 0 ) Break; // ~p + y=dy/2; + if( num_cross(0,dx-1,dy/2-dy/8,dy/2-dy/8,sdata->bp,cs) == 2 + && num_cross(0,dx-1,dy/2, dy/2 ,sdata->bp,cs) == 2 ) { // n rr + /* printed n */ + x =loop(sdata->bp,0,y,dx ,cs,0,RI); if(x> dx/4) Break; // search 1st v-line + x+=loop(sdata->bp,x,y,dx-x,cs,1,RI); if(x> dx/2) Break; i1=x; // 1st gap + x+=loop(sdata->bp,x,y,dx-x,cs,0,RI); if(x< dx/2) Break; i2=x; // 2nd v-line + x+=loop(sdata->bp,x,y,dx-x,cs,1,RI); if(x<3*dx/4) Break; i3=x; // 2nd gap + i=dy/4; y=13*dy/16; + if( num_cross(dx/2,dx-1,y,y,sdata->bp,cs)==2 ) i=3*dy/8; // \it n + if (i<2 && il1 l2 l3 l4 ??? + for(x=i1;xbp,x, 0,dy,cs,0,DO)>=i ) break; + if(x bp,x,dy-1,dy,cs,0,UP) >dy/4 ) break; + if(x==i2) Break; // no gap detected (glued serifs ??? ) + // glued rm as nn ??? + for(y=0,x=(i1+i2)/2;xbp,x,0,dy,cs,0,DO); + i=loop(sdata->bp,x,i,dy,cs,1,DO); // measure thickness + if( i>y ) y=i; if( i7 ) + if( loop(sdata->bp,dx-1,dy-1-dy/8,dx,cs,0,LE) + +loop(sdata->bp, 0,dy-1-dy/8,dx,cs,0,RI)-dx/8-1 + > loop(sdata->bp,dx-1,dy-1-dy/2,dx,cs,0,LE) + +loop(sdata->bp, 0,dy-1-dy/2,dx,cs,0,RI) ) ad=90*ad/100; // broken o + if( dy>7 && dx>7 ) + if( loop(sdata->bp,dx-1, dy/2,dx,cs,0,LE)==0 + && loop(sdata->bp,dx-1,dy-1-dy/8,dx,cs,0,RI)>dx/8 ) ad=98*ad/100; // broken o + } else { /* check handwritten n */ + if( num_cross(0,dx-1,dy/2, dy/2 ,sdata->bp,cs) != 3 + && num_cross(0,dx-1,dy/2-dy/8,dy/2-dy/8,sdata->bp,cs) != 3 ) Break; + i =loop(sdata->bp,0,dy/2-dy/8,dx,cs,0,RI); if (i>dx/4) Break; + i+=loop(sdata->bp,i,dy/2-dy/8,dx,cs,1,RI); if (i>dx/2) Break; + i+=loop(sdata->bp,i,dy/2-dy/8,dx,cs,0,RI); + if( num_cross(i,i, 0,dy/2-2*dy/8,sdata->bp,cs) != 0 ) Break; + i+=loop(sdata->bp,i,dy/2-dy/8,dx,cs,1,RI); + if( num_cross(i,i,dy/2+1, dy-1,sdata->bp,cs) != 0 ) Break; + handwritten=80; + } + + i= loop(sdata->bp,dx-1 ,dy/2,dx,cs,0,LE); if(i>5) + if( get_bw(dx-1-i/2,dx-1-i/2,0,dy/2,sdata->bp,cs,1) == 1 ) Break; // ~rr + i+=loop(sdata->bp,dx-1-i,dy/2,dx,cs,1,LE); + if( get_bw(dx-1-i ,dx-1-i ,0,dy/2,sdata->bp,cs,1) == 0 ) Break; // ~rv + + if( get_bw(dx/2,dx/2,dy/4,dy/4,sdata->bp,cs,1) == 0 + && get_bw(dx/2,dx-1,dy-2,dy-2,sdata->bp,cs,1) == 0 + && get_bw(dx/2,dx/2,dy/4,dy-2,sdata->bp,cs,1) == 1 ) Break; // ~P + + // glued ri ??? + if( box1->dots>0 && box1->m1 ) + if( get_bw((x1+x0)/2,x1,box1->m1,y0-1,box1->p,cs,1) == 1 ) + if( num_cross( 0,dx-1,0 ,0 ,sdata->bp,cs) >2 + || num_cross( 0,dx-1,1 ,1 ,sdata->bp,cs) >2 ) Break; + + + i=loop(sdata->bp,dx-1, dy-1,dx,cs,0,LE); if (i>dx/2) + i=loop(sdata->bp,dx-1, dy-2,dx,cs,0,LE); + x=loop(sdata->bp,dx-1,dy-1-dy/4,dx,cs,0,LE); + if (sdata->hchar && i-x>1) Break; // ß + x=loop(sdata->bp, 0,dy-1,dx,cs,0,LE); // check for serifs + i=loop(sdata->bp, 0,dy-2,dx,cs,0,LE); if (ibp, 0, 1,dx,cs,0,LE); if (ibp, 0, 2,dx,cs,0,LE); if (ihchar && x>0) Break; // fl + + if (num_cross( 0,dx-1,dy/4,dy/4,sdata->bp,cs)>=3) ad=98*ad/100; // small M + if (sdata->hchar || 2*y0m1+box1->m2) ad=96*ad/100; + if (sdata->gchar) ad=96*ad/100; // ß fl + if (dx<5) { // for small fonts no middle line is possible for m + ad=99*ad/100; // 4x6 m + if (num_cross(0,dx-1,dy/8,dy/8,sdata->bp,cs)>=2) { + ad=97*ad/100; // ~m + if (dy<=4) Setac(box1,'m',97); // only for 4x6 font! + } + } + Setac(box1,'n',ad); + break; + } + return box1->c; +} + +static wchar_t ocr0_M(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + pix *bp=sdata->bp; + int d,x,y,i0,i1,i2,i3,t1,hchar=sdata->hchar,gchar=sdata->gchar, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1,cs=sdata->cs; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + ad; /* tmp-vars */ + + // ------------------ test M --------------------------- + for(ad=d=100;dx>3 && dy>3;){ // dy<=dx nicht perfekt! besser mittleres + // min-suchen fuer m + DBG( wchar_t c_ask='M'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + for (y=dy/4;y<=3*dy/4;y++) + if (num_cross(0,dx-1,y,y,bp,cs)>=3) break; + if (y>3*dy/4 && dx>4) Break; + if( num_cross(0,dx-1, dy/4, dy/4,bp,cs)<2 + && num_cross(0,dx-1, dy/8, dy/8,bp,cs)<2 ) Break; /* fat M */ + if( num_cross(0,dx-1,3*dy/4,3*dy/4,bp,cs)<2 ) Break; + + x = loop(bp,dx-1 ,dy-1,dx,cs,0,LE); // ~ melted kl + x = loop(bp,dx-1-x,dy-1,dx,cs,1,LE); if( x>dx/2 ) Break; + + if( loop(bp, 0,7*dy/16,dx,cs,0,RI) + + loop(bp,dx-1,7*dy/16,dx,cs,0,LE) > dx/2 ) Break; // ~K + + if( dy>8 /* following lines should be extend to range check */ + && loop(bp, dx/4,dy-1, dy,cs,0,UP) 2 + && num_cross(0,dx-1,3*dy/4,3*dy/4,bp,cs)> 2 ) Break; // ~it_u + if( num_cross(0 ,dx-1,3*dy/4,3*dy/4,bp,cs)==2 + && num_cross(dx/2,dx/2,3*dy/4, dy-1,bp,cs)> 0 ) Break; // ~it_v + + if( loop(bp,3*dx/4, 0,dy,cs,0,DO) + > loop(bp,2*dx/4, 0,dy,cs,0,DO) + && loop(bp,3*dx/4,dy-1,dy,cs,0,UP) + < loop(bp,2*dx/4,dy-1,dy,cs,0,UP) ) Break; // ~N + if( loop(bp,3*dx/4, dy/8,dy,cs,0,DO) + > loop(bp,2*dx/4, dy/8,dy,cs,0,DO) + && loop(bp,3*dx/4,dy-1-dy/8,dy,cs,0,UP) + < loop(bp,2*dx/4,dy-1-dy/8,dy,cs,0,UP) ) Break; // ~serif_N + + // i0 is lower end of upper serifen (widest gap? ) + i0=0; + + if( num_cross(0,dx-1,dy/2,dy/2,bp,cs)!=4 ){ // Is it a N ? + if( num_cross(0,dx-1,dy/2,dy/2,bp,cs)==3 ){ + for(y=dy/2+1;yy-2 ) Break; // ~N + } + } + } + // MNWK + for(i2=0,i1=x=dx/2;xi2) {i2=y;i1=x;} else break; } + i3=i2+loop(bp,i1,i2,dy-i2,cs,1,DO); + if(i2hchar) Break; // rm + ad=99*ad/100; + } + if (i2==0 && dx>8 && dy>12) Break; // glued and bad splitted serifen-MN + + // if( num_hole(x0, x1, y0 , y1 ,box1->p,cs,NULL) != 0 ) Break; // small A + if (sdata->holes.num != 0) Break; + t1=loop(bp,0 ,3*dy/4,dx,cs,0,RI); + t1=loop(bp,t1,3*dy/4,dx,cs,1,RI); // thickness of line? + if( 7*(t1+1)=i2 ) Break; // no good M + i1+=loop(bp,i1, dy/4,dx,cs,1,RI); + i2+=loop(bp,i2,3*dy/4,dx,cs,1,RI); + if( i1>=i2 ) Break; // no good M + i1+=loop(bp,i1, dy/4,dx,cs,0,RI); + i2+=loop(bp,i2,3*dy/4,dx,cs,0,RI); + if( i1<=i2 ) Break; // no good M + } + if( num_cross(0,dx-1,dy/2,dy/2,bp,cs)==2 + && num_cross(0,dx-1,dy/4,dy/4,bp,cs)==2 && !hchar ) Break; // ~ \it u + + if (dy<17) + if( num_cross(0,dx-1, 0, 0,bp,cs)<2 ) ad=99*ad/100; + if (dx>5) /* 4x6 font has only 1 cross at y=1 */ + if( num_cross(0,dx-1, 1, 1,bp,cs)<2 ) ad=96*ad/100; // kt + if( num_cross(dx/2,dx/2, 0, dy-1,bp,cs)!=1) ad=98*ad/100; // kt + if (dx<5 && loop(bp,dx/2,0,dy,cs,0,DO)>=3*dy/8) ad=96*ad/100; // 4x6 H + + if( num_cross(0,dx-1, dy/4, dy/4,bp,cs)<=2 + && num_cross(0,dx-1,3*dy/4,3*dy/4,bp,cs)<=2 + && dx>8 && dy>12 ){ + ad=98*ad/100; + for(y=5*dy/16;y<5*dy/8;y++) // look for H-line + if( num_cross(0,dx-1,y ,y ,bp,cs)==1 ) break; + if( y<5*dy/8 ) ad=95*ad/100; + if( y<5*dy/8 ) + if( num_cross(2+dx/6,dx-3-dx/6,y-2,y-2,bp,cs)==0 + || num_cross(2+dx/6,dx-3-dx/6,y-1,y-1,bp,cs)==0 ) Break; // ~H bad! + } + + if( loop(bp,3*dx/8, 0,dy,cs,0,DO) >dy/2 + && loop(bp,5*dx/8,dy-1,dy,cs,0,UP) >dy/2 ) ad=95*ad/100; + + if(!hchar){ + ad=98*ad/100; /* not sure */ + if( loop(bp,0, dy/4,dx,cs,0,RI) + < loop(bp,0,dy-1-dy/8,dx,cs,0,RI)-dx/16 ) Break; // ~wi glued + } + if( gchar ) ad=98*ad/100; + if (ad>99 && dx<8) ad=99*ad/100; /* give 5x8 N a chance */ + Setac(box1,'M',ad); + break; + } + return box1->c; +} + +static wchar_t ocr0_N(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + int d,x,y,i1,i2,i3,hchar=sdata->hchar,gchar=sdata->gchar, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + (*aa)[4]=sdata->aa, /* corner-points, (x,y,dist^2,vector_idx) */ + dbg[9], + ad; /* tmp-vars */ + + // --- test N ------- +hchar -gchar + for(ad=d=100;dx>3 && dy>3;){ // 4x6font + int j; + DBG( wchar_t c_ask='N'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + if (sdata->holes.num > 0) ad=98*ad/100; /* # */ + if (dx<6) ad=99*ad/100; + if (dx<5) ad=99*ad/100; + /* half distance to the center */ + d=2*sq(128/4); + /* now we check for the 4 ends of the x */ + if (aa[0][2]>d) Break; + if (aa[1][2]>d) Break; + if (aa[2][2]>d) Break; + if (aa[3][2]>d) Break; + if (aa[3][0]-aa[0][0](dy+2)/5) Break; /* glued tu */ + if (abs(aa[3][1]-aa[0][1])>(dy+4)/8) ad=98*ad/100; /* glued tu */ + /* left and right vertical line */ + d=line_deviation(box1, aa[0][3], aa[1][3]); if (d>2*sq(1024/4)) Break; + ad=(100-(d-sq(1024)/2)/sq(1024)/4)*ad/100; + d=line_deviation(box1, aa[2][3], aa[3][3]); if (d>2*sq(1024/4)) Break; + + /* i1: uppermost left ^ from bottom (near 0,0) */ + i1=nearest_frame_vector(box1,aa[1][3],aa[2][3], x0+dx/8, y0); + x=box1->frame_vector[i1][0]; + y=box1->frame_vector[i1][1]; + MSG( fprintf(stderr,"i1= %d (%d,%d) left ^ from below", i1,x-x0,y-y0);) + if (y-y0 > 5*dy/8) Break; + if (x-x0 > 5*dx/8) Break; + /* i3: uppermost right ^ ~H */ + i3=nearest_frame_vector(box1,aa[1][3],aa[2][3], x1, y0); + MSG( fprintf(stderr,"i3= %d (%d,%d) right ^ (ad=%d)",\ + i3, box1->frame_vector[i3][0]-x0,box1->frame_vector[i3][1]-y0,ad);) + + /* check lower border of diagonal line, may fail on fonts where + * line ends on middle of right vertical line (screen font) */ + dbg[0]=d=line_deviation(box1,i1, aa[2][3]); + /* check right border of left vertical line */ + /* but split to possible lower left serif + vert. line */ + j=nearest_frame_vector(box1,aa[1][3],i1, x0+dx/2, y1+dy/2); + dbg[1]=d=line_deviation(box1, aa[1][3],j ); + +line_deviation(box1, j,i1); + MSG(fprintf(stderr," i1-a2 %d a1_serif-i1 %d ad=%d",dbg[0],dbg[1],ad);) + if (dbg[0] > sq(1024/4)) Break; + if (dx>4 && dbg[1] > sq(1024/4)) ad=97*ad/100; // d=0..2*sq(1024) + if (dx>4 && dbg[1] > sq(1024/3)) Break; // d=0..2*sq(1024) + // serif N has d=sq(1024/3)=116508 + MSG( fprintf(stderr,"ad %d", ad); ) + + /* i2: lowest right v from top, same frame? N-tilde etc.? */ + i2=nearest_frame_vector(box1,aa[3][3],aa[0][3], x1, y1-dy/8); + x=box1->frame_vector[i2][0]; + y=box1->frame_vector[i2][1]; + MSG( fprintf(stderr,"i2= %d (%d,%d) lowest right v from top",\ + i2, box1->frame_vector[i2][0]-x0,box1->frame_vector[i2][1]-y0);) + if (y-y0 < 3*dy/8) Break; + if (x-x0 < 3*dx/8) Break; + // test H + if ( box1->frame_vector[i3][0]-box1->frame_vector[i1][0]> dx/4 + && box1->frame_vector[i3][1]-box1->frame_vector[i1][1]<=dy/8 + && y<=box1->frame_vector[i1][1]) Break; + /* check if upper left and lower right point are joined directly */ + /* but split to possible upper right serif + down line */ + j=nearest_frame_vector(box1,i2,aa[0][3], x0+dx/2, y0-dy/2); + dbg[2]=d=line_deviation(box1,i2, j) + +line_deviation(box1, j, aa[0][3]); + /* check if upper right and lower right point are joined directly */ + /* but split to possible upper right serif + vert. line */ + j=nearest_frame_vector(box1,aa[3][3],i2, x0+dx/2, y0-dy/2); + dbg[3]=d=line_deviation(box1, aa[3][3],j) + +line_deviation(box1, j,i2); // ToDo: split once more? + MSG( fprintf(stderr," i2-a0 %d a3-i2 %d ad %d",dbg[2],dbg[3], ad); ) + if (dbg[2] > sq(1024/4)) Break; + // serif N, ToDo: do it better + if (dbg[3] > sq(1024/4)) ad=97*ad/100; + if (dbg[3] > sq(1024/3)) Break; + MSG( fprintf(stderr,"ad %d", ad); ) + + MSG( fprintf(stderr,"check against melted tu"); ) + // i1 = left ^ from below, i2 = lowest right v from top + // sample gocr_Device*: 3-8,dy=27 + if ( (box1->frame_vector[i1][1]-y0) + -(y1-box1->frame_vector[i2][1])>dy/8) ad=99*ad/100; /* ~ tu */ + MSG( fprintf(stderr,"tu ad %d", ad); ) + if (box1->frame_vector[i2][0] + -box1->frame_vector[i1][0]<=dx/8) Break; /* nonsignificant distance */ + MSG( fprintf(stderr,"i2-i1<=dx/8 ad %d", ad); ) + /* i1: uppermost left ^ from bottom (near 0,0) */ + /* i2: lowest right v from top, same frame? N-tilde etc.? */ + if (box1->frame_vector[i2][1] + -box1->frame_vector[i1][1]<=dy/8) { + // may happen on screen fonts 7x10 + if (dx>8) ad=97*ad/100; /* too flat (ff,H) */ + } + MSG( fprintf(stderr,"i2-i1<=dy/8 ad %d", ad); ) + if (box1->frame_vector[i2][1] + -box1->frame_vector[i1][1]<=dy/2) ad=99*ad/100; + MSG( \ + fprintf(stderr,"^v %d %d %d %d line dev %d %d %d %d max %d %d ad %d",\ + box1->frame_vector[i1][0]-x0,box1->frame_vector[i1][1]-y0,\ + box1->frame_vector[i2][0]-x0,box1->frame_vector[i2][1]-y0,\ + dbg[0],dbg[1],dbg[2],dbg[3],sq(1024/4),sq(1024),ad);) + ad=(100-(dbg[0]-sq(1024)/2)/sq(1024)/4)*ad/100; + MSG( fprintf(stderr,"ad %d", ad); ) + ad=(100-(dbg[1]-sq(1024)/2)/sq(1024)/4)*ad/100; + MSG( fprintf(stderr,"ad %d", ad); ) + ad=(100-(dbg[2]-sq(1024)/2)/sq(1024)/4)*ad/100; + MSG( fprintf(stderr,"ad %d", ad); ) + ad=(100-(dbg[3]-sq(1024)/2)/sq(1024)/4)*ad/100; + MSG( fprintf(stderr,"ad %d", ad); ) + + if (!hchar) ad=99*ad/100; + if ( gchar) ad=98*ad/100; // \sc N + Setac(box1,'N',ad); + break; + } + return box1->c; +} + +static wchar_t ocr0_h(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + pix *bp=sdata->bp; + int i,d,x,y,hchar=sdata->hchar,gchar=sdata->gchar, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1,cs=sdata->cs; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + ad; /* tmp-vars */ + int (*aa)[4]=sdata->aa; /* corner-points, (x,y,dist^2,vector_idx) */ + + // --- test h --------------------------------------------------- + for(ad=d=100;dx>2 && dy>3;){ // min 3x4 + // rewritten for vectors 0.42 + int i1, i2, i3, i4, i5, i6, i7, i8; // line derivation + corners + DBG( wchar_t c_ask='h'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + /* half distance to the center */ + d=2*sq(128/4); + /* now we check for the upper right end of the h */ + if (aa[3][2]d/2) Break; /* upper left end */ + if (aa[1][2]>d/2) Break; /* lower left end */ + if (aa[2][2]>d/2) Break; /* lowerright end */ +/* + type A B=italic ??? + 18 OOO + O O O + O O + O7OOO OOOO + O4 O O O + O O O O + O O O O O + 2O3 5O6 O OOO +*/ + i1=i8=aa[0][3]; + i2=i3=aa[1][3]; + i5=i6=aa[2][3]; + // check the bow from below (fails on melted serifs) + for (i4=i=i2;i!=i5;i=(i+1)%box1->num_frame_vectors[0]) { + if (box1->frame_vector[ i][1] + frame_vector[i4][1]) i4=i; // get next maximum + if (box1->frame_vector[ i][1]<=y0) break; // fatal! + } + if (box1->frame_vector[i4][1]-y0frame_vector[i4][1]18 ) + if( get_bw(dx-1-dx/3,dx-1,dy/6 ,dy/5 ,bp,cs,1) == 1 ) Break; + if( get_bw(dx-1-dx/3,dx-1,dy-1-dy/4,dy-1 ,bp,cs,1) == 0 ) Break; // s- + for( x=x0+dx/3;xp,cs,1) == 0 ) break; + if( x>=x1-dx/3 ) Break; + for(i=dy/4,y=y0+dy/3;y<=y1 && i;y++){ + if( num_cross(x0,x1 ,y,y, box1->p,cs) == 2 ) i--; + } if( i ) Break; + for(i=dy/4,y=y0;y<=y0+dy/2 && i;y++){ + if( num_cross(x0,x0+dx/2,y,y, box1->p,cs) == 1 ) i--; + } if( i ) Break; + // if( num_hole(x0, x1, y0 , y1 ,box1->p,cs,NULL) > 0 ) // could happen + if (sdata->holes.num > 0) + if (sdata->holes.hole[0].y0 > dy/3 + && sdata->holes.hole[0].y1 < dy-1-dy/3) Break; + // if( num_hole(x0, x1, y0+dy/3 , y1-dy/3 ,box1->p,cs,NULL) != 1 ) Break; // mini + if( loop(bp,dx-1,dy/3,dx,cs,0,LE)+dx/8 + < loop(bp,dx-1,dy/2,dx,cs,0,LE) + && loop(bp,dx-1,dy-1-dy/8,dx,cs,0,LE)+dx/8 + < loop(bp,dx-1,dy/2,dx,cs,0,LE)) Break; // ~k Okt00 + i=loop(bp,0,dy-1-dy/4,dx,cs,0,RI); + if (i>1 && num_cross(x0,x0,y0+dy/8+2,y0+dy/2, box1->p,cs) == 1 ){ // fi fu + ad=(99-(1<p,cs) == 0 ) ad=97*ad/100; + if (num_cross(x0+dx/2,x0+dx/2,y0,y0+dy/8+2, box1->p,cs) == 1 ) ad=97*ad/100; + if (ad<1) break; + } + i =loop(bp,0,dy/4,dx,cs,0,RI); + i+=loop(bp,i,dy/4,dx,cs,1,RI)+1; + for ( ; i5*dy/8 ) { + ad=98*ad/100; // melted hi, li, but handwritten h + MSG(fprintf(stderr,"ad=%d",ad);) } + if( num_cross(x0,x0,y0+(dy+3)/8,y1,box1->p,cs) > 1 ) { + ad=98*ad/100; // melted fr + MSG(fprintf(stderr,"ad=%d",ad);) } + + i=loop(bp,dx-1,3*dy/4,dx,cs,0,LE); // melted "fr" for vertikal letters + if (i>dx/4 && loop(bp,dx-1-i,dy-1,dy,cs,1,UP)>dy/2) { + ad=94*ad/100; MSG(fprintf(stderr,"ad=%d",ad);) } + + i=loop(bp,dx-1,1+dy/16,dx,cs,0,LE); if (i 0 ) { + ad=95*ad/100; // melted fi + MSG(fprintf(stderr,"ad=%d",ad);) } + if (loop(box1->p,x1,y0+1+dy/16,dx,cs,0,LE)p,x1,y0 ,dx,cs,0,LE)p,x1,y0+1,dx,cs,0,LE)holes.num > 0) ad=97*ad/100; + if (box1->m2) { + if ( gchar) ad=98*ad/100; + if (!hchar) ad=97*ad/100; + } else ad=99*ad/100; + Setac(box1,'h',ad); + break; + } + return box1->c; +} + +static wchar_t ocr0_H(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + pix *bp=sdata->bp; + int i,j,j1,d,x,y,ya,i1,i2,i3,hchar=sdata->hchar,gchar=sdata->gchar, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1,cs=sdata->cs; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + ad; /* tmp-vars */ + + // --- test H --------------------------------------------------- + for(ad=d=100;dx>2 && dy>3;){ // min 3x4 + DBG( wchar_t c_ask='H'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + if ( num_cross(0,dx-1,dy/4 ,dy/4 ,bp,cs) != 2 + && num_cross(0,dx-1,dy/4-1,dy/4-1,bp,cs) != 2 ) Break; + if ( num_cross(0,dx-1,3*dy/4 ,3*dy/4 ,bp,cs) != 2 + && num_cross(0,dx-1,3*dy/4+1,3*dy/4+1,bp,cs) != 2 ) Break; + if ( loop(bp,0 ,dy/8,dx,cs,0,RI) + + loop(bp,dx-1,dy/8,dx,cs,0,LE)>dx/2 ) Break; // ~A + for ( j1=0,i=1,y=y0+dy/10; yp,x0 ,y,dx,cs,0,RI) + +loop(box1->p,x1 ,y,dx,cs,0,LE); if( j>dx/2 ) i=0; if(j>j1)j1=j; } + if ( !i ) Break; + for ( i=1,y=dy/4; ydx/5 ) i=0; } + if (!i) Break; // ~K Jul00 + for (i=0,ya=y=y0+dy/3; yp,x0 ,y,dx,cs,0,RI); + j=loop(box1->p,x0+j,y,dx,cs,1,RI); if( j>i ) { i=j; ya=y; } } + if (i<=dx/2) Break; ya-=y0; + if (num_cross(0,dx-1,ya ,ya ,bp,cs) != 1 + && num_cross(0,dx-1,ya+1,ya+1,bp,cs) != 1 ) Break; /* Dec00 */ + for (y=ya; y 2 + && num_cross(0,dx-1,y+1,y+1,bp,cs) > 2 ) break; + if (yp,cs,1) == 0 ) i=0; + } if (i) Break; + for(i=1,x=x0+dx/4;x<=x1-dx/4 && i;x++){ + if (get_bw( x, x,y1-dy/4,y1 ,box1->p,cs,1) == 0 ) i=0; + } if (i) Break; + for(i=1,x=x0+dx/4;x<=x1-dx/4 && i;x++){ + if (num_cross(x,x,y0+dy/8,y1-dy/8, box1->p,cs) == 1 ) i=0; + } if (i) Break; + for (i=1,y=y0;y<=y0+dy/4 && i;y++){ + if (num_cross(x0,x1,y,y, box1->p,cs) == 2 ) i=0; + } if (i) Break; + for(i=1,y=y1-dy/4;y<=y1 && i;y++){ + if (num_cross(x0,x1,y,y, box1->p,cs) == 2 ) i=0; + } if (i) Break; + if (get_bw(x1-dx/8, x1 , y0, y0+dy/8,box1->p,cs,1) != 1 ) Break; + if (get_bw(x0 , x0+dx/8, y1-dy/8, y1,box1->p,cs,1) != 1 ) Break; + i1=loop(bp,dx-1, dy/4,dx,cs,0,LE); if(i1>dx/2) Break; + i2=loop(bp,dx-1, dy/2,dx,cs,0,LE); if(i2i1+dx/8) Break; + i3=loop(bp,dx-1,dy-1-dy/4,dx,cs,0,LE); if(i3i2+dx/8) Break; + if (abs(i1+i3-2*i2)>dx/16+1) Break; + // test for thick tall N looking like a H + if (num_cross(x0,x1,y0, y1 , box1->p,cs) < 2 ) Break; // sure N + if (num_cross(x0,x1,y0,(y0+y1)/2, box1->p,cs) < 2 ) Break; // sure N + i1=loop(bp, 0, dy/4,dx,cs,0,RI); + i1=loop(bp, i1, dy/4,dx,cs,1,RI); // right side of left vert. line + i2=loop(bp, 0,dy-1-dy/4,dx,cs,0,RI); + i2=loop(bp, i2,dy-1-dy/4,dx,cs,1,RI); // right side of left vert. line + i3=loop(bp,dx-1 ,dy-1-dy/4,dx,cs,0,LE); + i3=loop(bp,dx-1-i3,dy-1-dy/4,dx,cs,1,LE); // left side of right vert. line + if (dx<10 && i1-i2>dx/4) Break; + if (dx<10 && i1-i2>dx/8) ad=99*ad/100; // 7x10 ~N + i =loop(bp, 0,dy/2+1+dy/8,dx,cs,0,RI); + i+=loop(bp, i,dy/2+1+dy/8,dx,cs,1,RI); + i =loop(bp, i,dy/2+1+dy/8,dx,cs,0,RI); + if (i6*i2 && 5*i3>6*i2 && i1>i2 && i3>i2) Break; // ??? + if (dx>8) + if (loop(bp,dx-1, 3*dy/8,dx,cs,0,LE) + -loop(bp,dx-1, dy/8,dx,cs,0,LE)>dx/4 + && loop(bp,dx-1, 3*dy/8,dx,cs,0,LE) + -loop(bp,dx-1,dy-1-dy/8,dx,cs,0,LE)>dx/4 ) Break; // ~K + // if( num_hole(x0,x1,y0,y1,box1->p,cs,NULL) != 0 ) Break; + if (sdata->holes.num != 0) Break; + MSG( fprintf(stderr,"i123 %d %d %d",i1,i2,i3); ) + if ( gchar) ad=99*ad/100; + if (!hchar) ad=98*ad/100; + Setac(box1,'H',ad); + break; + } + return box1->c; +} + +static wchar_t ocr0_k(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + pix *bp=sdata->bp; + int i,j,x,y,hchar=sdata->hchar,gchar=sdata->gchar, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1,cs=sdata->cs; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + ad; /* tmp-vars */ + int (*aa)[4]=sdata->aa; /* corner-points, (x,y,dist^2,vector_idx) */ + + // --- test k --------------------------------------------------- + for(ad=100;dx>2 && dy>3;){ // min 3x4 + // rewritten for vectors 0.43 + int d, i1, i2, i3, i4, i5, i6, i7, i8; // line derivation + corners + DBG( wchar_t c_ask='k'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + /* half distance to the center */ + d=2*sq(128/4); + /* now we check for the upper right end of the h */ + if (aa[3][2]d/2) Break; /* upper left end */ + if (aa[1][2]>d/2) Break; /* lower left end */ + if (aa[2][2]>d/2) Break; /* lowerright end */ +/* + type A B=italic ??? + 18 OOO + O O O + O O6 O + O7 OO O OO + O4OO OO OO + O OO O O + O OO O O O + 2O3 O5 O OOO +*/ + i1=i8=aa[0][3]; + i2=i3=aa[1][3]; + i5= aa[2][3]; + // check the bow from below + for (i4=i=i2;i!=i5;i=(i+1)%box1->num_frame_vectors[0]) { + if (box1->frame_vector[ i][1] + frame_vector[i4][1]) i4=i; // get next maximum + if (box1->frame_vector[ i][1]<=y0) break; // fatal! + } + if (box1->frame_vector[i4][1]-y0frame_vector[i4][1]frame_vector[i][0]frame_vector[i][0]dx/2) Break; + i3=loop(bp,0,dy/2+dy/4,dx,cs,0,RI); + if (abs(i1+i3-2*i2)>(dx+8)/16+1 || i1p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/2,x1, y1-dy/3,y1 ,box1->p,cs,1) != 1 ) Break; + if( get_bw(x1-dx/4,x1, y0 ,y0+3*dy/16,box1->p,cs,1) == 1 ) Break; + if( get_bw(x1-dx/4,x1, y0+dy/4,y1-dy/4,box1->p,cs,1) != 1 ) Break; //~1 + if( get_bw(x1-dx/4,x1, y1-dy/8,y1 ,box1->p,cs,1) != 1 ) Break; + if (sdata->holes.num > 0) + if (sdata->holes.hole[0].y0 > dy/4) Break; + // if( num_hole(x0,x1,y0+dy/4,y1,box1->p,cs,NULL) != 0 ) Break; + for(y=y0+1;yp,cs,1) == 0 ) break; + if( yp,cs,100)>50) i=0; + if( i ) Break; // no vertikal line! + + /* check for falling line in the lower left corner */ + for (j=x=0,y=5*dy/8;y<7*dy/8;y++) { + i= loop(bp,dx-1,y,dx,cs,0,LE); if(i>x) { x=i;j=y; } + } // x=dx/6 on fat k + if (x + loop(bp,dx-1-x,y,dx,cs,1,LE)/2 dx/2) + i =loop(bp,dx-1,dy-2,dx,cs,0,LE); if(i>dx/2) Break; + i+=loop(bp,dx-1-i,dy-1,dx,cs,1,LE)/2; + if( get_line(x,y,dx-1-i,dy-1,bp,cs,100)<60 ) Break; + + for(y=y0+dy/3;yp,cs)==2 ) break; + if( y==y1 ) Break; + if( + // num_hole(x0,x1 ,y0 ,y1 ,box1->p,cs,NULL)>0 // ~A happens! + sdata->holes.num > 0 ) + if (sdata->holes.hole[0].x1>dx-1-dx/4 + || sdata->holes.hole[0].y1>dy-1-dy/4 + || sdata->holes.hole[0].y0< dy/4) Break; + // if ( num_hole(x0,x1-dx/4,y0+dy/4,y1-dy/4,box1->p,cs,NULL)==0 ) Break; + i=loop(bp,0,dy-1,dx,cs,0,RI); + i=loop(bp,i,dy-1,dx,cs,1,RI); if (dx>8 && 4*i>3*dx) Break; // ~glued_tz + i =loop(bp,0,dy/4,dx,cs,0,RI); + if (i>dx/4 + && i+loop(bp,i,dy/4,dx,cs,1,RI)>dx/2 + && loop(bp, 0,0,dx,cs,0,RI)<=dx/4 + && loop(bp,dx-1,0,dx,cs,0,LE)>=dx/2 ) ad=90*ad/100; // divided Q + + if( 2*y0>(box1->m1+box1->m2) ) ad=99*ad/100; + + if ( gchar) ad=99*ad/100; + if (!hchar) ad=99*ad/100; + Setac(box1,'k',ad); + break; + } + return box1->c; +} + +static wchar_t ocr0_K(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + pix *bp=sdata->bp; + int i,j,i1,i2,d,x,y,hchar=sdata->hchar,gchar=sdata->gchar, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1,cs=sdata->cs; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + ad,ya,xa,yb,xb,yc,xc,yd,xd,ye,xe,yf,xf; /* tmp-vars */ + + // --- test K --------------------------------------------------- + for(ad=d=100;dx>2 && dy>3;){ // Mar2000 perfect??? no ocr-a X Jul09 + DBG( wchar_t c_ask='K'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + for(y=dy/8;yp,x,y0,y1-y0,cs,0,DO); if (y>3*dy/4) { i=1;break; } + if (dy>15 && j>dy/8){ + j =loop(box1->p,x-1,y0+y-1,x1-x0,cs,0,LE)/2; + y+=loop(box1->p,x-j,y0+y-1,y1-y0,cs,0,DO)-1; + } + if(y>=dy/4) i=0; /* ok, found gap */ + } if( i ) Break; + for(y=0,x=x0+dx/4;x<=x1-dx/4;x++){ // lower h-gap + i=loop(box1->p,x,y1,dy,cs,0,UP); + /* on small chars bypass possible low left serifs */ + if (i>0) { i2=loop(box1->p,x-1,y1-i-1,dy,cs,0,UP); + if (i2>1) i+=i2-1; } + if (i>y) { y=i; i1=x; } + } if( y<=dy/8 ) Break; if (yp,cs) == 2 ) i=0; + } if( i ) Break; + for(i=1,y=y0;y<=y0+dy/4 && i;y++){ + if( num_cross(x0,x1,y,y, box1->p,cs) == 2 ) i=0; + } if( i ) Break; + if( dx<10 ){ + for(i=1,y=y0+dy/3;y<=y1-dy/3 && i;y++){ + if( num_cross(x0,x1,y,y, box1->p,cs) == 1 ) i=0; + } if( i ) Break; + } + for(i=1,y=y1-dy/4;y<=y1 && i;y++){ + if( num_cross(x0,x1,y,y, box1->p,cs) == 2 ) i=0; + } if( i ) Break; + if( get_bw(x1-dx/3,x1,y0,y0+dy/8,box1->p,cs,1) != 1 ) Break; // ~k + if( loop(bp,0, dy/4,dx,cs,0,RI) + +loop(bp,0,3*dy/4,dx,cs,0,RI) + <2*loop(bp,0, dy/2,dx,cs,0,RI)-2-dx/32 ) + { if (dy>=16) { Break; } else ad=98*ad/100; } // ~X Jul09 + + i=loop(box1->p,x1,y0+ dy/4,x1-x0+1,cs,0,LE); if(i>dx/2) Break; + j=loop(box1->p,x1,y0+ dy/2,x1-x0+1,cs,0,LE); + x=loop(box1->p,x1,y0+3*dy/8,x1-x0+1,cs,0,LE); if(x>j) j=x; + if(j<=i ) Break; i=j; + j=loop(box1->p,x1,y1-dy/4,x1-x0+1,cs,0,LE); if(j>=i ) Break; + // out_x(box1); // detailed analysis + // + // a d <= that are main points of K + // | / + // b/e + // | \ . + // c f + ya= dy/4;xa=loop(bp,0,ya,dx,cs,0,RI);xa+=loop(bp,xa,ya,dx,cs,1,RI)/2; + yc=dy-dy/4;xc=loop(bp,0,yc,dx,cs,0,RI);xc+=loop(bp,xc,yc,dx,cs,1,RI)/2; + yb=dy/2; xb=dx-1-loop(bp,dx-1,dy/2,dx,cs,0,LE); + for(yd=ye=yf=xe=y=i=0,xf=xd=dx;yxe){ xe=x;ye=dy/2+y; } + x =loop(bp,dx-1,dy/2-y,dx,cs,0,LE); if(x>xe){ xe=x;ye=dy/2-y; } +#if 0 // removed v0.2.4a2 + x =loop(bp,0 ,dy/2+y,dx,cs,0,RI); // middle left border + x+=loop(bp,x ,dy/2+y,dx,cs,1,RI); // test 2nd cross + x+=loop(bp,x ,dy/2+y,dx,cs,0,RI); if(x8 ){ // example szaka0103 + if( xe>5*dx/8 || xb>5*dx/8 ) Break; // ~{\it n} + i=loop(bp,xb,yb,xb,cs,1,LE); // thick center? see font22 + if( get_line2(xb,yb,xd,yd,bp,cs,100)<95 ) // right up + if( get_line2(xb-i/2,yb,xd,yd,bp,cs,100)<95 ) Break; + if( get_line2(xe,ye,xf,yf,bp,cs,100)<95 ) Break; // right down + xe+=loop(bp,xe,ye,dx,cs,1,RI); if( xe>=xf ) Break; // ~{\it n} + } else { + if( dy<16 && !hchar ) Break; + if( loop(bp,0,1,dy,cs,1,DO)<=3*dx/4 + && loop(bp,1,1,dy,cs,1,DO)<=3*dx/4 + && loop(bp,2,1,dy,cs,1,DO)<=3*dx/4 ) Break; // ~x + } + if (loop(bp,dx-1,dy-1-dy/4,dx,cs,0,LE)<=dx/8){ + ad=99*ad/100; /* broken B ? */ + if (sdata->holes.num > 0) + if (sdata->holes.hole[0].y1 < dy-1-dy/3) Break; + // if( num_hole(x0,x1,y0,(y0+2*y1)/3,box1->p,cs,NULL)>0) Break; // broken B + } + if(box1->m3 && !hchar) ad=99*ad/100; + if(box1->m3 && gchar) ad=99*ad/100; + // printf(" ok xe=%d",xe); + Setac(box1,'K',ad); + break; + } + return box1->c; +} + +static wchar_t ocr0_f(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + pix *bp=sdata->bp; + int i,j,d,x,y,hchar=sdata->hchar,gchar=sdata->gchar, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1,cs=sdata->cs; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + (*aa)[4]=sdata->aa, /* the for line ends, (x,y,dist^2,vector_idx) */ + ab[8][4], /* special points (x,y,dist^2,vector_idx) */ + ad; /* tmp-vars */ + /* x=mindist_to_a y=0 "t" + 0>..$$. 0>..$$ 0>..$$ end right bow a--..$$ a--.$7. y>0 "f" + 1>.$..$ 1>.$.. 1>.$$$ start right bow .$7. .$.. + .@... .@.. 2>.@@. start upper end .@.. .@.. + 2>.$... 2>.$.. 3>$$$$ crossing bar .$.. $$$. + 3>$@$$. 3>$@$. $@@$ $@$. .@.. + 4>.$... 4>.$.. 4>.$$. lower end .$.. .$.. + .@... .@.. .@@. .@.. .@.. + .@... .@.. .@@. .@.. .@.. + 5>.$... 5>.$.. 5>.$$. lower start .$.. .$.. + 6>..... 6>$... 6>.... optional left bow + */ + // --- test f like t --------------------------------------------------- + for(ad=d=100;dx>2 && dy>5;){ // sometimes no hchar! + // rewritten for vectors 0.43 + int d, i1, i2, i3, i4, i5, i6, i7, i8, i9; // line derivation + corners + DBG( wchar_t c_ask='f'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + /* half distance to the center */ + d=2*sq(128/4); + /* now we check for the upper right end of the h */ + if (aa[3][2]>d/2) Break; /* [2] = distance, ~BCDEF... */ + if (aa[0][2]>d ) Break; /* upper left end */ +/* + 9 + OOO + O 7 O8 + O6 + 1OOOO5 + O4 + O + 2O3 + OOOOO +*/ + i1=nearest_frame_vector(box1,aa[0][3],aa[1][3],x0-dx/2,(5*y0+3*y1)/8); + /* we need i for 4x6 font, where left side of h-bar is near (x0,y1) */ + i =aa[1][3]; if (box1->frame_vector[i][1]frame_vector[i2][0]-x0>dx/2) Break; // ~3 + i =nearest_frame_vector(box1, aa[0][3], i2, x1+2*dx, (y0+y1)/2); + // MSG(fprintf(stderr,"i %d",i);) + if (box1->frame_vector[i ][0] + -box1->frame_vector[i9][0]>dx/8) Break; // ~3 + + if( (box1->dots) ) Break; // Bold-face is gchar + if (dy<=box1->m3-box1->m2+1) Break; + for(x=0,j=y=2+(3*dy+4)/32;y<=5*dy/8;y++){ // upper cross line min=2 + i=loop(bp,0,y,dx,cs,0,RI); if( y>dy/4 && i>5*dx/8 ) break; + i=loop(bp,i,y,dx,cs,1,RI); if( i>x ) { x=i;j=y; } + if( y<3*dy/4 && y>dy/4 + && num_cross(0,dx-1,y ,y ,bp,cs) != 1 + && num_cross(0,dx-1,y+1,y+1,bp,cs) != 1 // against noise + ) break; + } if( y<=5*dy/8 ) Break; y=j;// if( y>dy/2 || ydy/8 + && num_cross( 0, (dx+1)/2,i,i,bp,cs) > 0 + && num_cross((dx+1)/2,dx-1,i,i,bp,cs) > 0 ) Break; // ~Y + + if (loop(bp,3*dx/4, 0,dy,cs,0,DO)>dy/8 + && loop(bp,3*dx/4-1,0,dy,cs,0,DO)>dy/8) Break; // upper bow + i=3*dy/4; if (box1->m3 && i>=box1->m3) i=box1->m3-1; + if (num_cross(0,dx-1,i,i,bp,cs)!=1) Break; + + // the middle bar appear in a wide vertical range, get part below + for (i1=dx,i2=y,j=y+1;jframe_vector[i3][0]-x0,box1->frame_vector[i3][1]-y0);) + ab[7][0]=box1->frame_vector[i3][0]; + ab[7][1]=box1->frame_vector[i3][1]; + ab[7][3]=i3; + if (ab[7][1]-y0<=dy/16) ad=95*ad/100; // ~t + // because of the dx,dy scaling the horiz. bar could be nearer to (x1,y0) + // as the upper right end of the "t" + if (aa[3][0]-x0>3*dx/4 && aa[3][1]-y0>3*dy/16) ad=99*ad/100; // ~t + + + j=loop(bp,0,dy/8,dx,cs,0,RI); // if j>dx/2 we have italic f + if ((2*x(j+dx/4)) break; + if (iloop(bp,0, 1,dx,cs,0,RI) ) Break; // ~X + + i=y;j=1; // j used as flag + if( num_cross(0,dx-1,0,0,bp,cs)==1 && hchar) //~r + if( num_cross(0,dx-1,dy-1,dy-1,bp,cs)!=1 + && num_cross(0,dx-1,dy-2,dy-2,bp,cs)!=1 ) Break; // ~* etc. + // check for upper bow to right + for(y=1;j && y=cs || dx<7) && getpixel(bp,x+1,y )>=cs + && getpixel(bp,x ,y-1)< cs && getpixel(bp,x+1,y-1)< cs ) + { j=0;break; } + } if(j) ad=98*ad/100; // not detected + + // if( num_hole (x0 , x1 , y0, y1,box1->p,cs,NULL) != 0 ) Break; // ~e + if (sdata->holes.num != 0) Break; // ~e + for(i1=i2=dx,y=7*dy/8;yi2+dx/4) Break; // ~t ~e + if(i1>i2+1) ad=96*ad/100; // ~t ~e + if( loop(bp,0,3*dy/4,dx,cs,0,RI)5 && !hchar) + if( loop(bp,dx-1,dy/2,dx,cs,0,LE)>3*dx/4 ) + if( loop(bp,dx-1,dy-1,dy,cs,0,UP)8 ) + if( loop(bp, 0,2*dy/3 ,dx,cs,0,RI)>2*dx/3 + || loop(bp, 0,2*dy/3-1,dx,cs,0,RI)>2*dx/3 ) + if( loop(bp,dx-1, dy/4 ,dx,cs,0,LE)>2*dx/3 ) Break; // ~5 ~S + + if (!hchar) + if ( get_bw(x0+dx/8,x0+dx/8,y0+dy/4,y1-dy/16,box1->p,cs,2) == 0 + && num_cross(x1-dx/4,x1-dx/4,y0,y1,box1->p,cs)!=2 + && num_cross(x1-dx/8,x1-dx/8,y0,y1,box1->p,cs)!=2 ) Break; // ~r + + if (dy>15) + if( num_cross(x0,x1,y1-dy/4,y1-dy/4,box1->p,cs)>1 + && num_cross(x0,x1,y0+dy/4,y0+dy/4,box1->p,cs)>1 ) Break; // ~H + + if( dx>4 ) + if( loop(bp,dx-1 ,3*dy/4,dx,cs,0,LE)- + loop(bp,0 ,3*dy/4,dx,cs,0,RI)>dx/5+1 + && loop(bp,dx-1-dx/8,dy-1 ,dy,cs,0,UP)=dx/5+1) ad=98*ad/100; // ~E + i=loop(bp,dx/8,0,dy,cs,0,DO); + if (idy/2) { + ad=98*ad/100; // ~E, could also be a "f" with big serifs + MSG(fprintf(stderr,"ad=%d",ad);) } + if (!gchar) { ad=98*ad/100; + MSG(fprintf(stderr,"ad=%d",ad);) } + } + i = loop(bp,dx-1 ,3*dy/4,dx ,cs,0,LE)/2; + if (loop(bp,dx-1-i , dy-1,dy/2,cs,0,UP)1 + && loop(bp,0, 0,dy/4,cs,0,DO)p,cs,2) == 0) { // white pixels? + ad=98*ad/100; // F + MSG(fprintf(stderr,"ad=%d",ad);) } + + if (!hchar) ad=ad*98/100; // d*=100;d/=128 // not 100% ! + if (box1->m4>0 && gchar && ad<99 && + 8*box1->y1 >= box1->m4*7+box1->m3) ad++; + Setac(box1,'f',ad); + break; + } + return box1->c; +} + +static wchar_t ocr0_bB(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + pix *bp=sdata->bp; + int i,j,d,x,y,i1,i2,i3,hchar=sdata->hchar,gchar=sdata->gchar, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1,cs=sdata->cs; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + ad; /* tmp-vars */ + + // --- test B --------------------------------------------------- + for(ad=d=100;dx>2 && dy>4;){ // min 3x4 + DBG( wchar_t c_ask='B'; ) + if (sdata->holes.num < 2) Break; /* tolerant against a tiny hole */ + for(i=1,y=y0;yp,cs,1) != 1 ) i=0; + if( !i ) Break; + for(i=1,y=y1-dy/2;yp,cs,1) != 1 ) i=0; + if( !i ) Break; + if( get_bw(x1,x1 , y0 , y0 ,box1->p,cs,1) == 1 ) Break; + if( num_cross(x0+dx/2, x0+dx/2,y0,y1 ,box1->p,cs) != 3 ) + if( num_cross(x1-dx/3, x1-dx/3,y0,y1 ,box1->p,cs) != 3 ) Break; + /* --- detect center of lower hole --- */ + y = loop(box1->p,x0+dx/2,y1 ,dy,cs,0,UP); if (y>1+dy/8) Break; + y+= loop(box1->p,x0+dx/2,y1-y,dy,cs,1,UP); if (y>dy/3) Break; + y=y1-y-loop(box1->p,x0+dx/2,y1-y,dy,cs,0,UP)/2; if (yp,x0,y0+ y ,dx,cs,0,RI) + > loop(box1->p,x0,y0+dy/4,dx,cs,0,RI)+dx/32 ) + if( get_bw(x0,x0,y0,y0,box1->p,cs,1) == 0 ) + if( get_bw(x0,x0,y1,y1,box1->p,cs,1) == 0 ) Break; // ~8 + i1=loop(box1->p,x0,y0+dy/4,dx,cs,0,RI); + i2=loop(box1->p,x0,y0+dy/2,dx,cs,0,RI); + i =loop(box1->p,x0,y0+dy/2-dy/ 8,dx,cs,0,RI); if(i>i2) i2=i; + i =loop(box1->p,x0,y0+dy/2-dy/16,dx,cs,0,RI); if(i>i2) i2=i; + i3=loop(box1->p,x0,y1-dy/4,dx,cs,0,RI); + if(dy>16 && i3p,x0,y0+ 1 ,dx,cs,0,RI) + >= loop(box1->p,x0,y0+ 3 ,dx,cs,0,RI)+dx/32 ) + if( loop(box1->p,x0,y0+ 0 ,dx,cs,0,RI) + > loop(box1->p,x0,y0+ 3 ,dx,cs,0,RI)+dx/32 ) + if( loop(box1->p,x0,y1- 0 ,dx,cs,0,RI) + > loop(box1->p,x0,y1- 3 ,dx,cs,0,RI)+dx/32 ) + if( loop(box1->p,x0,y1- 1 ,dx,cs,0,RI) + > loop(box1->p,x0,y1- 3 ,dx,cs,0,RI)+dx/32 ) Break; // ~8 Aug00 + } + + if (sdata->holes.num != 2) Break; + if (sdata->holes.hole[0].y0 < y-1 + && sdata->holes.hole[1].y0 < y-1 ) Break; + if (sdata->holes.hole[0].y1 > y+1 + && sdata->holes.hole[1].y1 > y+1 ) Break; + // if( num_hole(0,dx-1,0 ,y+1 ,bp,cs,NULL) != 1 ) Break; + // if( num_hole(0,dx-1,y-1,dy-1,bp,cs,NULL) != 1 ) Break; + // out_x(box1); + + for( x=dx,y=dy/6; yp,x0,y0+y,dx,cs,0,RI); if( i>x+dx/9 ) break; + if(ix )break; + } if( yx) x=i; // allow dust + i=loop(bp,0,dy/2+1,dx,cs,0,RI); if (i>x) x=i; + if ( loop(bp,0, dy/8,dx,cs,0,RI) + +loop(bp,0,7*dy/8,dx,cs,0,RI) > 2*x+1 ) Break; // not konvex! + + if(!hchar){ // ~ fat_a + ad=99*ad/100; + x =loop(bp,0,dy/4,dx,cs,0,RI); + if(loop(bp,0,dy/2,dx,cs,0,RI)>x+dx/8) ad=97*ad/100; + } + + if ( (!hchar) && (dx<=10 || dy<=10) ) ad=97*ad/100; // hchar or good_quality + if (gchar) ad=99*ad/100; + Setac(box1,'B',ad); + break; + } + // --- test b --------------------------------------------------- + for(ad=d=100;dx>3 && dy>4;){ // min 3x4 + DBG( wchar_t c_ask='b'; ) + if (sdata->holes.num < 1) Break; /* tolerant against a tiny hole */ + for(y=y0;yp,cs,1) != 1 ) Break; + if(yp,cs,1) != 1 ) Break; + if( get_bw(x1- dx/2, x1 , y1-dy/3, y1-dy/3,box1->p,cs,1) != 1 ) Break; + if( get_bw(x1- dx/3, x1 , y0 , y0+dy/5,box1->p,cs,1) == 1 ) Break; + if( get_bw(x1-4*dx/9, x1 , y0+dy/5, y0+dy/5,box1->p,cs,1) == 1 ) Break; + if( num_cross(x0,x1,y0+dy/4 ,y0+dy/4 ,box1->p,cs) > 1 ) // & + if( num_cross(x0,x1,y0+dy/4-1,y0+dy/4-1,box1->p,cs) > 1 ) + if( dy<16 || + num_cross(x0,x1,y0+dy/5 ,y0+dy/5 ,box1->p,cs) > 1 ) Break; // fat b + for(i=j=0,y=dy/2;yholes.num != 1) Break; + if (sdata->holes.hole[0].y0 < dy/4) Break; + if ((sdata->holes.hole[0].y1-sdata->holes.hole[0].y0+1) + *(sdata->holes.hole[0].x1-sdata->holes.hole[0].x0+1)*16 + < dx*dy) ad=90*ad/100; // hole to small + if( num_hole( x0, x1 , y0+dy/4, y1,box1->p,cs,NULL) != 1 ) Break; + i=loop(bp,dx-1,dy-1 ,dx,cs,0,LE); + j=loop(bp,dx-1,dy-1-dy/8,dx,cs,0,LE); if(j>i) Break; + if (!hchar) ad=99*ad/100; + if ( gchar) ad=99*ad/100; + Setac(box1,'b',ad); + if (ad>=100) return 'b'; + break; + } + return box1->c; +} + +static wchar_t ocr0_dD(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + pix *bp=sdata->bp; + int i,d,x,y,ya,yb,hchar=sdata->hchar,gchar=sdata->gchar, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1,cs=sdata->cs; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + ad; /* tmp-vars */ + + // --- test D --------------------------------------------------- + for(ad=d=100;dx>2 && dy>3;){ // min 3x4 + DBG( wchar_t c_ask='D'; ) + if (sdata->holes.num < 1) Break; /* tolerant against a tiny hole */ + if( get_bw(x0 ,x0+dx/3,y0+dy/2,y0+dy/2,box1->p,cs,1) != 1 ) Break; + if( get_bw(x1-dx/3,x1 ,y0+dy/2,y0+dy/2,box1->p,cs,1) != 1 ) Break; + if( get_bw(x1 ,x1 ,y0 ,y0+dy/16,box1->p,cs,1) == 1 ) Break; + if( get_bw(x1-dx/2,x1 ,y0+dy/4,y0+dy/4 ,box1->p,cs,1) != 1 ) Break; + if( num_cross(x0+dx/2,x0+dx/2,y0 ,y1 ,box1->p,cs) != 2 ) + if( num_cross(x1-dx/3,x1-dx/3,y0 ,y1 ,box1->p,cs) != 2 ) Break; + if( num_cross(x0 ,x1 ,y0+dy/3,y0+dy/3,box1->p,cs) != 2 ) Break; + if( num_cross(x0 ,x1 ,y1-dy/3,y1-dy/3,box1->p,cs) != 2 ) Break; + if (sdata->holes.num != 1) Break; + if (sdata->holes.hole[0].y0 > dy/3) Break; + if (sdata->holes.hole[0].y1 < dy-1-dy/3) Break; + // if( num_hole (x0 ,x1 ,y0 ,y1 ,box1->p,cs,NULL) != 1 ) Break; + // test if left edge is straight + for(x=0,y=bp->y-1-dy/8;y>=dy/5;y--){ + i=loop(bp,0,y,x1-x0,cs,0,RI); + if( i+2+dx/16<=x ) break; + if( i>x ) x=i; + } + if (y>=dy/5 ) Break; + /* test if right edge is falling */ + for(x=dx,y=0;yx-1,y,x1-x0,cs,0,LE); + if( i>x+dx/16 ) break; + if( iy-1;y>2*dy/3;y--){ + i=loop(bp,bp->x-1,y,x1-x0,cs,0,LE); + if( i>x+dx/16 ) break; + if( i2*dy/3 ) Break; + if( loop(bp,dx-1,dy-1 ,dx,cs,0,LE) <= + loop(bp,dx-1,dy-2-dy/16,dx,cs,0,LE) ) Break; // P + + y=loop(bp,dx/2,dy-1,dy,cs,0,UP)-1; if (dy>16) y/=2; + if ( y>=dy/16 ) { y-=dy/16; + if (get_bw(dx/2,dx-1,dy-1-y,dy-1-y,bp,cs,1)==1) Break; // ~A + } + + ya=loop(bp, 0,dy-1,dy,cs,0,UP); + yb=loop(bp,dx/16+1,dy-1,dy,cs,0,UP); + if (yady/16 && ya>yb) Break; // ~O + if (loop(bp, 0,dy-1-dy/16,dx,cs,0,RI)>dx/16) ad=99*ad/100; // O? 0907 + if (loop(bp, 0,dy-1-dy/16,dx,cs,0,RI)>= + loop(bp,dx-1,dy-1-dy/16,dx,cs,0,LE)) ad=97*ad/100; // ~O 0907 + + if ( loop(bp, dx/2, 0,dy,cs,0,DO) + -loop(bp, dx/2,dy-1,dy,cs,0,UP) > dy/8 ) ad=97*ad/100; // ~b + + + + if (loop(bp, 0, 0,dx,cs,0,RI)>=dx/2 + && loop(bp,dx-1,dy-1,dx,cs,0,LE)>=dx/2 + && loop(bp, 0,dy/2,dx,cs,0,RI)< 2 ) ad=96*ad/100; // thin O + + if(box1->dots) ad=ad*94/100; + if ( gchar) ad=99*ad/100; + if (!hchar) ad=99*ad/100; + Setac(box1,'D',ad); + break; + } + // --- test d --------------------------------------------------- + for(d=100;dx>2 && dy>3;){ // min 3x4 + DBG( wchar_t c_ask='d'; ) + ad=100; + if (sdata->holes.num < 1) Break; /* tolerant against a tiny hole */ + if( get_bw(x0 , x0+dx/2, y1-dy/6, y1-dy/9,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0 , x0+dx/2, y1-dy/3, y1-dy/3,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/2, x1 , y1-dy/3, y1-dy/3,box1->p,cs,1) != 1 ) Break; + if( get_bw(x1-dx/4, x1 , y0+dy/8, y0+dy/8,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/2, x0+dx/2, y1-dy/4, y1 ,box1->p,cs,1) != 1 ) Break; + if(dy>19) // 0..dx/3 dont work on serif d, 0..dx/4 is more safe + if( get_bw(x0 , x0+dx/4, y0 , y0+dy/5,box1->p,cs,1) == 1 ) Break; + if( get_bw(x0 , x0+dx/4, y0 , y0+dy/6,box1->p,cs,1) == 1 ) Break; + if( get_bw(x0 , x0+dx/4, y1-dy/8, y1 ,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/2-1,x0+dx/2,y1-dy/8, y1 ,box1->p,cs,1) != 1 ) Break; // ~"A + if( loop(bp,bp->x-1, bp->y/4,x1-x0,cs,0,LE) > + loop(bp,bp->x-1,3*bp->y/4,x1-x0,cs,0,LE)+1 ) Break; + // more than dx/8 of width should show two horizontal lines (o-like) + for (i=dx/8+1,x=0;x1) Break; // "d as a" patch + if (i==1) ad=99*ad/100; // "d as a" patch, serif? + for(i=dy/6+1,y=dy/4;y 3 ) i++; // ~al + } if( i ) ad=98*ad/100; + for(i=dy/8+1,y=0;yholes.num<1) Break; + if (sdata->holes.num>1) { + if (dx<6) Break; ad=95*ad/100; } // glued j above 8 (4x6 sample) + MSG(fprintf(stderr,"hole[0].y0,y1= %d %d",sdata->holes.hole[0].y0,sdata->holes.hole[0].y1);); + if ( sdata->holes.hole[0].y0 < dy/4 ) Break; + if (dy-sdata->holes.hole[0].y1 > dy/4+1) Break; // glued et + // if( num_hole(x0 , x1 , y0+dy/4 , y1 ,box1->p,cs,NULL) !=1 ) Break; + if( num_cross(0 ,dx-1,dy-1-dy/4,dy-1-dy/4,bp,cs) != 2 ) { // glued al + if (dy>15) { Break; } else ad=96*ad/100; + } + if (!hchar) ad=98*ad/100; + if ( gchar) ad=99*ad/100; + Setac(box1,'d',ad); + break; + } + return box1->c; +} + +static wchar_t ocr0_F(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + pix *bp=sdata->bp; + int i,j,d,x,y,hchar=sdata->hchar,gchar=sdata->gchar, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1,cs=sdata->cs; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + ad; /* tmp-vars */ + + // --- test F --------------------------------------------------- + for(ad=d=100;dx>2 && dy>4;){ // dx>1 dy>2*dx + DBG( wchar_t c_ask='F'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + if( get_bw(x0+dx/2,x0+dx/2,y0,y0+dy/8,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0,x0+dx/4,y1-dy/4,y1-dy/4,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0,x0+dx/2,y0+dy/4,y0+dy/4,box1->p,cs,1) != 1 ) Break; + + for (x=0,y=0;yx) x=j; + } if (ydx/2 ) i=0; } + if( i ) Break; + + x=loop(bp,0,dy-1-dy/4,dx,cs,0,RI); + x=loop(bp,x,dy-1-dy/4,dx,cs,1,RI); // strichdicke + for( i=1,y=dy/3; ydx/3 && ((j>2*x && dx>8) || j>x+1)) i=0; } + if( i ) Break; + + y=dy/8; if (y<1) y=1; + for( i=1; y=dx/3) { i=0; break; } + } + if( i ) Break; + + // check for vertical line on left side + for(i=1,y=1;y<=dy/2 && i;y++) + if( get_bw(0,dx/2,y,y,bp,cs,1) != 1 ) i=0; + if( !i ) Break; + + for(i=1,y=dy/2;ydx/8 // no serif + || loop(bp, 0, dy-3,dx,cs,0,RI)<1) break; + ad=99*ad/100; + } + if( get_bw(dx-1-dx/4,dx-1,dy-1-dy/4,dy-1,bp,cs,1) == 1 ) Break; // ~E + if( get_bw(dx-1 ,dx-1,0 ,dy/3,bp,cs,1) != 1 ) Break; + + if( loop(bp,0, bp->y/4,dx,cs,0,RI) < + loop(bp,0,3*bp->y/4,dx,cs,0,RI)-1 ) Break; + // if( num_hole(x0 , x1 , y0 , y1 ,box1->p,cs,NULL) >0 ) Break; + if (sdata->holes.num > 0) Break; + for(i=0,x=dx/4;xy/4,dx,cs,0,RI)-1; + if (i>=0 && loop(bp,dy-1,i,dy,cs,0,UP)<=3*dy/4 ) ad=ad*98/100; + + // check for screen font P + i= loop(bp,bp->x-1,bp->y/4,dx,cs,0,LE); + if (i<1) { + j=i+loop(bp,bp->x-1-i,bp->y/4, dx ,cs,1,LE); + j= loop(bp,bp->x-1-j,bp->y/4,3*dy/4,cs,0,DO); + if (j<=dy/2) { + i=loop(bp,bp->x-1,0,dx,cs,0,LE); + ad=ad*98/100; + if (i>dx/8) Break; + if (i) ad=98*ad/100; + } + } + + if (!hchar) if ((box1->m2-box1->y0)*8>=dy) { // ignore bad m1..4 + if ( num_cross(2*dx/3,2*dx/3,0,dy-1,bp,cs) < 2 ) ad=90*ad/100; // ~r + } + if (gchar) ad=99*ad/100; + Setac(box1,'F',ad); + break; + } + return box1->c; +} + +static wchar_t ocr0_uU(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + pix *bp=sdata->bp; + int i,j,d,x,y,hchar=sdata->hchar,gchar=sdata->gchar, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1,cs=sdata->cs; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + ad; /* tmp-vars */ + wchar_t bc=UNKNOWN; + + // --- test uU --------------------------------------------------- + // in Mitte so breit wie oben (bei V kontinuierlich schmaler) + for(ad=d=100;dx>2 && dy>3;){ // min 3x4 + DBG( wchar_t c_ask='u'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + for(y=y0+dy/4;yp,cs) < 2 ) break; + if( yi)i=y; if(y1) break; + } if( idy/2)?dx/8:0),y,y,bp,cs); + if( y1 ) i--; // ~{\it v} + if( y2) ) { i--; ad=90*ad/100; } + if( y>dy/2 && j!=1 ) { i--; ad=95*ad/100; } + } if( !i ) Break; + for(i=dy/16+1,y=dy/8;ydy/2 && (j<1 && j>2) ) i--; + if( yp,cs,1) != 1 ) i=0; + } if( i ) Break; + for(i=dx/4+1,x=x0+dx/3;x<=x1-dx/3 && i;x++){ + if( get_bw( x, x,y0+dy/3,y1-dy/3,box1->p,cs,3) != 2 ) i--; + } if( !i ) Break; + for(i=1,x=x0+dx/3;x<=x1-dx/3 && i;x++){ + if( get_bw( x, x,y1-dy/2,y1,box1->p,cs,3) == 2 ) i=0; + if( get_bw( x, x,y1-dy/3,y1,box1->p,cs,3) == 2 ) ad=98*ad/100; + } if( !i ) Break; + if( num_cross(0 ,dx/2, dy/4, dy/4,bp,cs)==2 + && num_cross(dx-dx/2,dx-1,dy-dy/4,dy-dy/4,bp,cs)==1 ) Break; // ~{\it v} + + i=loop(bp,0,dy-1-dy/16,dx,cs,0,RI); + j=loop(bp,0,dy-1-dy/8 ,dx,cs,0,RI); + if( i15) + if( loop(bp,dx-1,dy/16,dx,cs,0,LE) + > loop(bp,dx-1,dy/8 ,dx,cs,0,LE)+1+dx/32 ) Break; // ~bad 0 (thinn) + if( hchar && dy>7) + if( loop(bp, 0, dy-1,dx,cs,1,RI)==dx + && loop(bp,dx-1,3*dy/4,dx,cs,0,LE)>dx/16 + && loop(bp, 0,3*dy/4,dx,cs,0,RI)>dx/16 + && loop(bp,dx-1, dy/2,dx,cs,0,LE)>dx/16 + && loop(bp, 0, dy/2,dx,cs,0,RI)>dx/16 + ) Break; // melted ll + + i=loop(bp, 0,dy-2-dy/8,dx,cs,0,RI); + j=loop(bp,dx-1,dy-2-dy/8,dx,cs,0,LE); + if ( i>dx/4 && j>dx/4 && i+j>=dx/2) Break; // v + if (i+j>=dx/2) ad=97*ad/100; + + if ( num_cross(0,dx-1,dy/2,dy/2,bp,cs)!=2 ) ad=96*ad/100; // w + if ( loop(bp,dx/2,dy-1,dy,cs,0,UP)>0 ) ad=98*ad/100; // w + + if (ad==100) ad=99; // ToDo: only if lines.wt<100 + bc='u'; + if (gchar) ad=98*ad/100; + if (hchar) bc='U'; + if (box1->dots>0) ad=99*ad/100; + Setac(box1,bc,ad); + break; + } + return box1->c; +} + +static wchar_t ocr0_micro(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + pix *bp=sdata->bp; + int i,j,d,x,y,i2,hchar=sdata->hchar,gchar=sdata->gchar, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1,cs=sdata->cs; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + ad; /* tmp-vars */ + + // --- test \mu µ MICRO_SIGN -------------------------------------- + // in Mitte so breit wie oben (bei V kontinuierlich schmaler) + if( gchar && !hchar ) + for(ad=d=100;dx>2 && dy>4;){ // min 3x4 + DBG( wchar_t c_ask='u'; ) + if (sdata->holes.num > 1) break; /* tolerant against a tiny hole */ + for(y=y0+dy/8;ym3-dy/4;y++) + if( num_cross(x0,x1,y,y,box1->p,cs) < 2 ) break; + if( ym3-dy/4 ) break; + if( get_bw(dx/2,dx/2,3*dy/8,7*dy/8,bp,cs,1)==0 ) break; + if( get_bw(dx/2,dx-1,3*dy/8,7*dy/8,bp,cs,1)==0 ) break; + for(y=dy/2;y5*dx) break; + } if( y>=dy || 2*y>box1->m3+box1->m4) break; i2=y; + for(i=0,x=2*dx/8;xi)i=y; if(y1) break; + } if( im4-box1->m3)-dy/4 && i;y++){ // 12%+1 Fehler + j=num_cross(0,dx/2,y,y,bp,cs); + if( y1 ) i--; // ~{\it v} + if( y2) ) i--; + if( y>dy/2 && j!=1 ) i--; + } if( !i ) break; + for(i=dy/16+1,y=dy/8;ym4-box1->m3)-dy/4 && i;y++){ // 12%+1 Fehler + j=num_cross(dx-dx/2,dx-1,y,y,bp,cs); + if( y>dy/2 && (j<1 && j>2) ) i--; + if( yp,cs,1) != 1 ) i=0; + } if( i ) break; + for(i=dx/4+1,x=x0+dx/3;x<=x1-dx/3 && i;x++){ + if( get_bw( x, x,y0+dy/4,y1-dy/2,box1->p,cs,3) != 2 ) i--; + } if( !i ) break; + if( num_cross(0 ,dx/2, dy/4, dy/4,bp,cs)!=1 ) break; + if( num_cross(dx-dx/2,dx-1,dy-dy/2,dy-dy/2,bp,cs)!=1 ) break; + if( get_bw( (dx+2)/4,dx-1,dy-2-3*dy/16,dy-1,bp,cs,1) == 1 ) break; + if( num_cross(0,dx/4,dy-1,dy-1,bp,cs)!=1 ) break; + + Setac(box1,MICRO_SIGN,ad); + break; + } + return box1->c; +} + +static wchar_t ocr0_vV(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + pix *bp=sdata->bp; + int i,j,d,x,y,i1,i2,i3,hchar=sdata->hchar,gchar=sdata->gchar, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1,cs=sdata->cs; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + ad; /* tmp-vars */ + wchar_t bc=UNKNOWN; + + // --- test v ------------------------------------------------- + for(ad=d=100;dx>2 && dy>3;){ // min 3x4 + DBG( wchar_t c_ask='v'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + x=loop(bp,dx/2,0,dx,cs,1,RI)+dx/2; // be sure in the upper gap + y=loop(bp, x,0,(dy+1)/2,cs,0,DO)-1; // (x,y) should be in the gap + if (x>3*dx/4 || yp,cs,1) != 1 ) Break; + if( get_bw(x0+x,x1,y0+y,y0+y,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+x,x0+x,y1-dy/2,y1, box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+x, x0+x ,y0, y0+dy/3,box1->p,cs,1) == 1 ) // it v? + if( get_bw(x0+x+1,x0+x+1,y0, y0+dy/3,box1->p,cs,1) == 1 ) Break; + + // UVW + if(((num_cross( 0,dx/2+1,dy/ 8,dy/ 8,bp,cs)!=1) + && (num_cross( 0,dx/2+1,dy/16,dy/16,bp,cs)!=1) // it v + && (num_cross(dx/2+1,dx -1,dy/ 8,dy/ 8,bp,cs)!=1)) /* () added on Sep00 */ + || ((num_cross( 0,dx-1,dy-1-dy/8,dy-1-dy/8,bp,cs)> 1) + && (num_cross( 0,dx-1,dy-1 ,dy-1 ,bp,cs)> 1)) ) Break; + // UV + if( get_bw(0 ,dx/8,dy-1-dy/6,dy-1,bp,cs,1)==1 ) Break; + if( get_bw(dx-1-dx/8,dx-1,dy-1-dy/6,dy-1,bp,cs,1)==1 ) Break; + if( loop(bp,0 ,dy/6 ,dx,cs,0,RI) + >=loop(bp,0 ,dy-1-dy/3,dx,cs,0,RI) && dy>6 ) Break; + if( loop(bp,0 ,dy-1-dy/3,dx,cs,0,RI) + >loop(bp,0 ,dy-1-dy/8,dx,cs,0,RI) + && loop(bp,dx-1,dy-1-dy/3,dx,cs,0,LE) + >loop(bp,dx-1,dy-1-dy/8,dx,cs,0,LE) ) Break; // better OR ? + if( loop(bp,0 ,dy-1-dy/3,dx,cs,0,RI) + >=loop(bp,0 ,dy-1-dy/8,dx,cs,0,RI) + && loop(bp,dx-1,dy-1-dy/3,dx,cs,0,LE) + >=loop(bp,dx-1,dy-1-dy/8,dx,cs,0,LE) ) ad=99*ad/100; // font21 + if( loop(bp,dx-1,dy/6 ,dx,cs,0,LE) + >=loop(bp,dx-1,dy-1-dy/3,dx,cs,0,LE) && dy>6 ) Break; + x=loop(bp,0,dy-1,dx,cs,0,RI); // 3*x>dx changed to 2*x>dx May2001 JS + x=loop(bp,x,dy-1,dx,cs,1,RI); if ( dx>14 && 2*x>dx ) Break; // U + if( num_cross(0 ,dx/2, dy/4, dy/4,bp,cs)==2 + && num_cross(dx-dx/2,dx-1,dy-dy/4,dy-dy/4,bp,cs)==2 ) Break; // ~{\it u} + +#if 0 + // measure thickness of lower v + i=loop(bp, 0,dy-1-dy/16,dx,cs,0,RI) + +loop(bp,dx-1,dy-1-dy/16,dx,cs,0,LE); + j=loop(bp, 0,dy-1-dy/4 ,dx,cs,0,RI) + +loop(bp,dx-1,dy-1-dy/4 ,dx,cs,0,LE); + if( box1->m1 && hchar && dy>15 && j>=i-dx/32 ) Break; // ~Y +#endif + /* V has serifs only on upper site! Y also on bottom, check it. Okt00 */ + i=loop(bp, 0, 0,dx,cs,0,RI); + i=loop(bp, i, 0,dx,cs,1,RI); i1=i; // thickness + i=loop(bp, 0, 1,dx,cs,0,RI); + i=loop(bp, i, 1,dx,cs,1,RI); if(i>i1) i1=i; // thiggest + i=loop(bp, 0,dy/4,dx,cs,0,RI); + i=loop(bp, i,dy/4,dx,cs,1,RI); i2=i; + i=loop(bp, 0,dy ,dx,cs,0,RI); + i=loop(bp, i,dy ,dx,cs,1,RI); i3=i; // thickness + i=loop(bp, 0,dy-1,dx,cs,0,RI); + i=loop(bp, i,dy-1,dx,cs,1,RI); if(i>i3) i3=i; // thiggest + if( y0 < box1->m2 ) + if( i1-i2 > dx/32+2 + && i3-i2 > dx/32+2 ) Break; // ~serif_Y + + if( y0 < box1->m2 ) // uppercase V ? + if( i1-i2 < dx/32+2 ) /* no serif detected */ + if( num_cross(0,dx-1,dy-1-dy/4,dy-1-dy/4,bp,cs)==1 ){ + j=loop(bp, 0,dy-1-dy/4 ,dx,cs,0,RI); + j=loop(bp, j,dy-1-dy/4 ,dx,cs,1,RI); + if (jloop(bp,0 ,dy-1 ,dx,cs,0,RI) ) ad=96*ad/100; + + if (num_cross(0,dx-1, dy/2, dy/2,bp,cs)==1 + && num_cross(0,dx-1,3*dy/4,3*dy/4,bp,cs)> 1) Break; // 5x8 * Jul09 + + if (gchar) ad=99*ad/100; + bc='v'; + if( hchar ) bc='V'; + Setac(box1, bc, ad); + break; + } + return box1->c; +} + +static wchar_t ocr0_rR(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + pix *bp=sdata->bp; + int i,j,d,x,y,i1,i2,i3,hchar=sdata->hchar,gchar=sdata->gchar, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1,cs=sdata->cs; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + ad; /* tmp-vars */ + + // --- test r ------- + for(ad=d=100;dy>3 && dx>1;){ // dy>dx, 4x6 font, dx=2 smallest prop-font + DBG( wchar_t c_ask='r'; ) + if (sdata->holes.num > 0 + && ( sdata->holes.hole[0].y1 > dy/2 // tiny hole in upper left + || sdata->holes.hole[0].x1 > dx/2 ) // is tolerated, ~Pp + ) Break; /* tolerant against a tiny hole */ + if( 2*dym3-box1->m1) Break; + + if( loop(bp,dx-1,dy/2,dx,cs,0,LE)<=dx/8 ) Break; + x= loop(bp,dx-1,dy/2,dx,cs,0,LE); if (x<=dx/2) ad=99*ad/100; // ~t + if (loop(bp,dx-1-x/2,0,dy,cs,0,DO)>dy/8) ad=99*ad/100; // ~t + if( dx>4 ) + if( loop(bp,dx-1,dy/2,dx,cs,0,LE)<=dx/8+2 ) Break; // ~v Jun00 + + i=dy-(dy+20)/32; // ignore dust on the ground + + for( y=4*dy/8; y3*dx/8) break; + i2= loop(bp,dx-1,y,dx,cs,0,LE); if(i1>i2) break; + if( (i1+(dx-i2 + -1))/2 >= 4*dx/8 ) break; // mass middle should be left + } + if (y5*dx/8 // not a C + && get_bw(dx-1-dx/8,dx-1,dy-1-dy/4,dy-1,bp,cs,1) ==1 ) Break; + + if( loop(bp, 0,5*dy/8,dx,cs,0,RI)<=dx/8 + && loop(bp,dx-1,5*dy/8,dx,cs,0,LE)>=5*dy/8 + && loop(bp,dx/2, dy-1,dy,cs,0,UP)<=dy/8 ) Break; // ~c + + if( loop(bp, 0,3*dy/8,dx,cs,0,RI) + > loop(bp,dx-1,3*dy/8,dx,cs,0,LE)+dx/8 ) { + if( loop(bp, 0, dy/8,dx,cs,0,RI)3*dx/4 ) Break; // ~i + if( loop(bp,0,dy/4,dx,cs,0,RI)>3*dx/8 // ~I + && get_bw(0,dx/8,0,dy/4,bp,cs,1) ==1 ) Break; + if( num_cross(0,dx-1,dy/2, dy/2 ,bp,cs)!=1 + && num_cross(0,dx-1,dy/2+1,dy/2+1,bp,cs)!=1 ) Break; // ~n 024a3 + + // itallic t is sometimes not high enough, look for v-like shape + for(y=3*dy/4;y1 ) ad=95*ad/100; // ~f + if( num_cross(dx/2 ,dx/2 ,0,dy-1,bp,cs)>2 + && num_cross(dx/2+1,dx/2+1,0,dy-1,bp,cs)>2 ) Break; // ~f + + if (box1->dots) ad=98*ad/100; /* could be modified latin2-r */ + if (hchar) ad=96*ad/100; + if (gchar) ad=97*ad/100; + Setac(box1,'r',ad); + break; // not 100% sure! + } + // --- test R --------------------------------------------------- + for(ad=d=100;dx>2 && dy>3;){ // min 3x4 + DBG( wchar_t c_ask='R'; ) + if (sdata->holes.num > 2) Break; /* tolerant against a tiny hole */ + if( num_cross(x0,x1,y1-dy/8,y1-dy/8, box1->p,cs) < 2 ) Break; // ~P + if (loop(bp, dx/2, dy/4,dy,cs,0,DO)>dy/2) Break; // ~C + if (loop(bp, dx/2, 0,dy,cs,0,DO)>dy/8 + && loop(bp, dx/2,dy/16,dx,cs,0,RI)=16 ) Break; + for(i=1,y=y0+dy/8;y<=y1-dy/8 && i;y++){ // left v-line + if( get_bw(x0 , x0+dx/2,y, y,box1->p,cs,1) != 1 ) i=0; + } if( !i ) Break; + for(i=1,x=x0+3*dx/8;x<=x1-dx/4 && i;x++){ // upper h-line + if( get_bw( x, x, y0, y0+dy/4,box1->p,cs,1) != 1 ) i=0; + } if( !i ) Break; + for(y=0,x=x0+dx/4;x<=x1-dx/4;x++){ // lower h-gap + i=loop(box1->p,x,y1,dy,cs,0,UP); + /* on small chars bypass possible low left serifs */ + if (i>0) { i2=loop(box1->p,x-1,y1-i-1,dy,cs,0,UP); + if (i2>1) i+=i2-1; } + if (i>y) { y=i; i1=x; } + } if( y<=dy/8 ) Break; if (yp,cs) == 2 ) i=0; + } if( i ) Break; + for(i=1,y=y0;y<=y0+3*dy/8 && i;y++){ // upper 2 vert lines + if( num_cross(x0,x1,y,y, box1->p,cs) == 2 ) i=0; + } if( i ) Break; + for(i=1,y=y0+dy/3;y<=y1-dy/3 && i;y++){ // midle h line + if( num_cross(x0,x1,y,y, box1->p,cs) == 1 ) i=0; + } if( i ) ad=95*ad/100; /* sometimes there is a small gap */ + for(i=1,y=y1-dy/4;y<=y1 && i;y++){ // lower 2 vert lies + if( num_cross(x0,x1,y,y, box1->p,cs) == 2 ) i=0; + } if( i ) Break; + if( get_bw(x1-dx/3,x1,y0,y0+dy/4,box1->p,cs,1) != 1 ) Break; // pixel ru + x=loop(bp,dx-1, dy/4,dx,cs,0,LE); if(x>dx/2) Break; i=x; // ru + x=loop(bp,dx-1, dy/2,dx,cs,0,LE); if(x<=i ) Break; i=x; // rc + x=loop(bp,dx-1, 5*dy/8,dx,cs,0,LE); if(x>i ) i=x; + x=loop(bp,dx-1, 6*dy/8,dx,cs,0,LE); if(x>i ) i=x; + x=loop(bp,dx-1,dy-1-dy/8,dx,cs,0,LE); if(x>=i ) Break; // rd + + i1=loop(bp,0, dy/4,dx,cs,0,RI); // straight + i2=loop(bp,0, dy/2,dx,cs,0,RI); + i3=loop(bp,0,dy-1-dy/4,dx,cs,0,RI); if( abs(i1+i3-2*i2)>1+dx/16 ) Break; + if (dy>15) + if (loop(bp,dx-1, dy/2,dx,cs,0,LE)>=loop(bp,dx-1, dy-1,dx,cs,0,LE) + && loop(bp,dx-1,3*dy/16,dx,cs,0,LE)>=loop(bp,dx-1,dy/16,dx,cs,0,LE)+dx/8 ) Break; // ~ff + if (dy>7) + if (loop(bp,dx-1,dy-2 ,dx,cs,0,LE) + >loop(bp,dx-1,dy-2-dy/8,dx,cs,0,LE)) { + ad=98*ad/100; + if (loop(bp,dx-1,dy-1-dy/4,dx,cs,0,LE)==0 + && loop(bp,dx-1,dy-2-dy/8,dx,cs,0,LE)>0 ) Break; // broken B ?? + } + j=sdata->holes.num; + if (j != 1) { + i=num_hole (x0,x1,y0,y1-dy/3,box1->p,cs,NULL); + // j=num_hole (x0,x1,y0,y1 ,box1->p,cs,NULL); + if (i==0) ad=90*ad/100; /* some times there is a small gap */ + if (j>1 || j>i) Break; + } + if (sdata->holes.num < 1) ad=90*ad/100; + if (sdata->holes.num==1) + if (sdata->holes.hole[0].y1 > 3*dy/4) ad=95*ad/100; // alpha + + if (!hchar) ad=98*ad/100; + if ( gchar) ad=98*ad/100; + Setac(box1,'R',ad); + break; + } + return box1->c; +} + +static wchar_t ocr0_m(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + pix *bp=sdata->bp; + int i,d,x,y,i1,i2,i3,i4,i5,hchar=sdata->hchar,gchar=sdata->gchar, + handwritten=0, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1,cs=sdata->cs; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + ad; /* tmp-vars */ + + // --- test m ------- + for(ad=d=100;dx>4 && dy>3;){ + DBG( wchar_t c_ask='m'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + if (sdata->holes.num > 0) ad=96*ad/100; + x =loop(bp,dx-1,dy/2,dx,cs,0,LE); if(3*x>dx) Break; // ~K + y=dy/2; + i=num_cross(0,dx-1,y ,y ,bp,cs); if (i!=3) + i=num_cross(0,dx-1,y+1,y+1,bp,cs); + if (num_cross(0,dx-1,dy/2,dy/2,bp,cs)==1) Break; // 5x8 * Jul09 + if (i<3 && i>5) Break; // m ru rn, handwritten m + // im or glued.mm cut to nm + if (i>3) { ad=99*ad/100; MSG(fprintf(stderr,"ad=%d",ad);) } + if (i>=5) { // melted rw ? (Oct08 JS) + x =loop(bp,0,y,dx ,cs,0,RI); if(x> dx/4) Break; // 1st v-line + x+=loop(bp,x,y,dx-x,cs,1,RI); if(x> dx/2) Break; i1=x; // 1st gap + x+=loop(bp,x,y,dx-x,cs,0,RI); if(x>3*dx/4) Break; i1=x-i1; // 2nd v-line + x+=loop(bp,x,y,dx-x,cs,1,RI); if(x>6*dx/8) Break; i2=x;// 2nd gap + x+=loop(bp,x,y,dx-x,cs,0,RI); i2=x-i2; // 3th v-line + // printf("\nDBG i1,i2 %d %d", i1, i2); + if (i1>2*i2) Break; // rw + } + for (i=0,y=dy-1-dy/8;y>dy/2;y--) { + i=num_cross(0,dx-1,y,y,bp,cs); if (i>2) break; + } if (i>3) Break; + for ( ;y>dy/2;y--) { + i=num_cross(0,dx-1,y,y,bp,cs); if (i!=3) break; + } if (i>5) Break; y++; i5=y; + if (y> dy/2) handwritten=10; + if (y>3*dy/4) handwritten=60; + /* @@............... + @@......,........ + @@,...@@@....@@@. + @@,,.@@@@..@@@@@, + @@@.@@@@@.@@@@@@, + @@;@@@@@@@@@;,@@, + @@@@@,.@@@@,,,@@@ <- i5 + ,@@@...;@@....@@@ + .@;...........,@@ + ...............@@ + i1 i2 i3 i4 + */ + x =loop(bp,0,y,dx ,cs,0,RI); if(x> dx/4) Break; // search 1st v-line + x+=loop(bp,x,y,dx-x,cs,1,RI); if(x> dx/2) Break; i1=x; // first gap + x+=loop(bp,x,y,dx-x,cs,0,RI); if(x>3*dx/4) Break; i2=x; // 2nd v-line + x+=loop(bp,x,y,dx-x,cs,1,RI); if(x>6*dx/8) Break; i3=x; // 2nd gap + x+=loop(bp,x,y,dx-x,cs,0,RI); if(x<5*dx/8) Break; i4=x; // 3th v-line + if (x>=dx) Break; // missing 3th v-line, ~W + MSG(fprintf(stderr,"y=%d x=%d %d %d %d",y,i1,i2,i3,i4);) + if( abs((i2-i1)-(i4-i3)) > 2+((i2-i1)+(i4-i3))/4 ) Break; // same gap width? rn + if( abs((i2-i1)-(i4-i3)) > 2+((i2-i1)+(i4-i3))/8 ) ad=98*ad/100; // same gap width? rn + // the same game for the lower part =>l1 l2 l3 l4 ??? + i =loop(bp,0,5*dy/8,dx,cs,0,RI); + i =loop(bp,i,5*dy/8,dx,cs,1,RI); + x =loop(bp,0,dy-dy/32-1,dx,cs,0,RI); + x =loop(bp,x,dy-dy/32-1,dx,cs,1,RI); + if( x > i+1 ) i=1; else i=0; /* looks like serif m, Okt00 */ + for(y=0,x=i1;xy) y=i; + } + if(yy) y=i; + } + if(y=dy/2 ) break; + if(xi4-i3+dx/16){ + for(y=0,x=(i1+i2)/2;xy ) y=i; if( 2*i3 ) Break; // melted WT + + x=loop(bp,dx-1,dy/2,dx,cs,0,LE); + if (x>2 && loop(bp,dx-1-x/2,0,dy,cs,0,DO)dy/2) Break; // N + + // {\it m} + if( loop(bp,1, dy/4,dx,cs,0,RI) + >loop(bp,0,7*dy/8,dx,cs,0,RI) ) + Setac(box1,'m',98*ad/100); + + if (handwritten<10){ + x =loop(bp,0,dy/4,dx,cs,0,RI); + x+=loop(bp,x,dy/4,dx,cs,1,RI); + for( ;x=dy/4) ad=99*ad/100; + if (i>(dy+2)/4) ad=95*ad/100; + if (3*i>dy) Break; + } + if(xdots) ad=99*ad/100; + Setac(box1,'m',ad); + if (ad>=100) return 'm'; + break; + + } + return box1->c; +} + +static wchar_t ocr0_tT(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + pix *bp=sdata->bp; + int i,i1,i2,i3,i4,j,d,x,y,yb,hchar=sdata->hchar,gchar=sdata->gchar, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1,cs=sdata->cs; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + ad; /* tmp-vars */ + + // --- test T --------------------------------------------------- + for(ad=d=100;dx>2 && dy>3;){ // dx>1 dy>2*dx + DBG( wchar_t c_ask='T'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + // upper horizontal line + i1= loop (bp, dx/8,0,dy,cs,0,DO); // left side + i2= loop (bp,dx-1-dx/8,0,dy,cs,0,DO); // right side + i3= loop (bp, dx/8,i1,dy,cs,1,DO); // left side + i4= loop (bp,dx-1-dx/8,i2,dy,cs,1,DO); // right side + if (i1>dy/4 || i2>dy/4) Break; + for (x=dx/8;xi1+dy/8 && i>i2+dy/8) break; + if (idx+1 || i+j>=dx || i3*x) break; //~I + } if( y3*dx/4) Break; // ~7 + i+= loop(bp,i ,dy/4,dx,cs,1,RI);if(i>3*dx/4) Break; + + if( num_cross(0,dx-1, dy-1, dy-1,bp,cs) != 1 + && num_cross(0,dx-1, dy-2, dy-2,bp,cs) != 1 ) Break; + if( num_cross(0,dx-1,2*dy/3,2*dy/3,bp,cs) != 1 + && num_cross(0,dx-1,2*dy/3,2*dy/3,bp,cs) != 1 ) Break; + if (box1->m3 && 2*y1>box1->m3+box1->m4 + && loop(bp,0, 0,dy/2,cs,0,DO)>=dy/4 + && loop(bp,0,dy-1,dy ,cs,0,UP)<=dy/2) ad=96*ad/100; // ~J + if (gchar) ad=98*ad/100; + if( loop(bp,0,dy-1,dx,cs,0,RI)<=dx/8) ad=99*ad/100; // ~J + i = loop(bp,0,dy/2,dx,cs,0,RI); + j = loop(bp,i,dy/2,dx,cs,1,RI); + if( 2*i>=dx || 2*(dx-j-i)=100) return 'T'; + break; + } + // --- test t --------------------------------------------------- + // written t can look like a + or even with missing right side + // smallest t found in win-screenshot (prop-font) dx=2 + for(ad=d=100;dx>1 && dy>=box1->m3-box1->m2-1;){ // sometimes no hchar! + DBG( wchar_t c_ask='t'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + if (dy<=box1->m3-box1->m2+1) ad=96*ad/100; // bad line detection? + if (num_cross(0,dx-1,0 ,0 ,bp,cs) != 1) { // font4x5 *=x+- + if (dy<10) Break; ad=98*ad/100; + } + if (num_cross(0,dx-1,dy-1,dy-1,bp,cs) != 1) { // *=x+- + if (dy<10) Break; ad=98*ad/100; + } + for(x=0,yb=j=y=dy/32+3*dy/16;y<5*dy/8;y++)if(y>0){ // upper cross line + i=loop(bp,0,y,dx,cs,0,RI); + i=loop(bp,i,y,dx,cs,1,RI); if( i>x ) { x=i;yb=j=y; } // hor. line + i=num_cross(0,dx-1,y ,y ,bp,cs); + j=num_cross(0,dx-1,y+1,y+1,bp,cs); if (i>2 && j>2) break; + if( y<11*dy/16 + && num_cross(0,dx-1,y ,y ,bp,cs) != 1 + && ( num_cross(0,dx-1,y+dy/8,y+dy/8,bp,cs) != 1 || dy<13) // against noise + ) break; + } if( y<4*dy/8 ) Break; + if (dy>12 && x>4 && x>dx/2 && yb<=(dy+4)/8) + if ( loop(bp,dx-1-3*x/4,yb,dy,cs,1,UP) + <=loop(bp,dx-1-1*x/4,yb,dy,cs,1,UP)+1 ) + if ( loop(bp,0 ,dy/2,dy,cs,1,UP)>dx/8 ) Break; // ~C + + if (x=dx && 9*dx>=8*dy) { ad=99*ad/100; } // + + + i=loop(bp,dx-1,0,dx,cs,0,LE); + for(y=0;y1) break; i=j; + } + if( yi ) break; + if( y==yb ) break; + + j=loop(bp,0, dy/2,dx,cs,0,RI); + j=loop(bp,j, dy/2,dx,cs,1,RI); i=j; // thickness + j=loop(bp,0, dy/4,dx,cs,0,RI); + j=loop(bp,j, dy/4,dx,cs,1,RI); if (j=loop(bp,dx-1,yb/2,dx,cs,0,LE) ) Break; // ~1 ??? + + j=1; + for(y=1;j && y=cs && getpixel(bp,x+1,y )>=cs + && getpixel(bp,x ,y-1)< cs && getpixel(bp,x+1,y-1)< cs ) { j=0;break; } + } if(!j) Break; + + if( num_cross(0,dx-1,dy-2,dy-2,bp,cs) == 2 + && num_cross(0,dx-1,dy-1,dy-1,bp,cs) == 2 ) Break; // ~* (5er) + + if( dy>= 16 + && loop(bp, 0, 3*dy/4,dx,cs,0,RI) + >=loop(bp, 0, dy-2,dx,cs,0,RI) + && loop(bp,dx-1, 3*dy/4,dx,cs,0,LE) + <=loop(bp,dx-1, dy-2,dx,cs,0,LE) + && loop(bp,dx-1, 1,dx,cs,0,LE)+dx/16 + loop(bp, 0,3*dy/16,dx,cs,0,RI)+dx/16 + || loop(bp,dx-1, 0,dx,cs,0,LE)==0 + || loop(bp,dx-1, 1,dx,cs,0,LE)==0) ) ad=96*ad/100; // ~f Jan02 + if(dx<8 && dy>12){ // thin f's could easily confound with t + x=loop(bp,dx-1,3*dy/16,dx,cs,0,LE); + if (x) + if (loop(bp,dx-x,0,dy,cs,0,DO)<3*dy/16 + && loop(bp, 0, 3*dy/4,dx,cs,0,RI)+1 + >=loop(bp, 0, dy-2,dx,cs,0,RI) + && loop(bp,dx-1, 3*dy/4,dx,cs,0,LE) + <=loop(bp,dx-1, dy-2,dx,cs,0,LE) ) Break; + } + if (dx>7) + if( num_cross( 0,dx-1,2*dy/3,2*dy/3,bp,cs) > 1 + && num_cross( 0,dx/2,2*dy/3,2*dy/3,bp,cs) > 0 + && num_cross(dx/2,dx-1,2*dy/3,2*dy/3,bp,cs) > 0 ) + if (sdata->holes.num > 0) + if (sdata->holes.hole[0].y0 > dy/4) Break; // ~6 + // if ( num_hole( x0, x1, y0+dy/4, y1, box1->p,cs,NULL) > 0 ) Break; // ~6 + + if( num_cross(0,dx-1,3*dy/4, 3*dy/4, bp,cs) >= 2 + && num_cross(0,dx-1,3*dy/4-1,3*dy/4-1,bp,cs) >= 2 ){ + ad=99*ad/100; /* italic t ? */ + if (loop(bp,dx/2 ,dy-1,dy,cs,0,UP)>dy/4) Break; // ~h + if (loop(bp,dx/2+1,dy-1,dy,cs,0,UP)>dy/4) Break; // ~h + } + + x= loop(bp,dx-1,dy/2,dx,cs,0,LE); + i= loop(bp,dx-1,dy/8,dx,cs,0,LE); + if (i>x && loop(bp,dx-x,0,dy,cs,0,DO)>=dy/2) ad=90*ad/100; /* ~\ */ + + x= loop(bp,0, 0,dx,cs,0,RI); + i= loop(bp,0, 1,dx,cs,0,RI); if (i1) Break; // l + + // this happens quite often, do not be to strong + if (!box1->m2) ad=99*ad/100; + if (box1->m2) { + if (!hchar) ad=99*ad/100; /* some times t is not long enough */ + if( y0>=box1->m2-(box1->m2-box1->m1)/4 ) ad=99*ad/100; /* to short */ + if( y0>=box1->m2 ) ad=99*ad/100; /* to short */ + } + + if (sdata->holes.num > 0) ad=95*ad/100; + if (gchar) ad=99*ad/100; + if (box1->dots) ad=90*ad/100; + Setac(box1,'t',ad); + break; + } + return box1->c; +} + +static wchar_t ocr0_sS(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + pix *bp=sdata->bp; + int d,x,y,i1,i2,i3,hchar=sdata->hchar,gchar=sdata->gchar, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1,cs=sdata->cs; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + ad; /* tmp-vars */ + wchar_t ac; + + // --- test sS near 5 --------------------------------------------------- + for(ad=d=100;dx>2 && dy>3;){ // min 3x4 (4x6 font) + DBG( wchar_t c_ask='s'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + if( num_cross( dx/2, dx/2,0,dy-1,bp,cs)!=3 + && num_cross(5*dx/8,3*dx/8,0,dy-1,bp,cs)!=3 + && dy>4 ) Break; + if( num_cross(0,dx-1,dy/2 ,dy/2 ,bp,cs)!=1 + && num_cross(0,dx-1,dy/2-1,dy/2-1,bp,cs)!=1 ) Break; + // get the upper and lower hole koords + y=dy/4; + x =loop(bp,0,dy/4,dx,cs,0,RI); if(x>3*dx/8) Break; /* slanted too */ + x +=loop(bp,x,dy/4,dx,cs,1,RI); if(x>5*dx/8) Break; /* fat too */ + i1 =loop(bp,x,dy/4,dx,cs,0,RI); i1=(i1+2*x)/2; // upper center x + y=11*dy/16; + x =loop(bp,dx-1 ,y,dx,cs,0,LE); if(x>dx/4) Break; + x +=loop(bp,dx-1-x,y,dx,cs,1,LE); if(dx>5 && dy>7 && x>dx/2) Break; + if (x>3*dx/4) Break; if(x>dx/2) { ad=98*ad/100; MSG({})} + i2 =loop(bp,dx-1-x,y,dx,cs,0,LE); i2=dx-1-(i2+2*x)/2; // upper center x + MSG(fprintf(stderr,"~3 upper right gap (i1=%d,dy/4)",i1);) + // use i3 temporary for x of left upper border of slanted S + i3 =loop(bp,0,dy/4,dx,cs,0,RI); + for( y=dy/4;yi3+dx/8 + && loop(bp,x-1,y,dx,cs,0,UP)>dy/8+1) break; // +1 for s font 5x8 Jul09 + } + if( ydx/8) break; + } + if(y==dy/2) Break; // Mai00 + + y=dy/2+loop(bp,0,dy/2,dy/2,cs,1,DO); + if( !joined(bp,0,y,i2,11*dy/16,cs) ) Break; + + if (sdata->holes.num > 0) + if (sdata->holes.hole[0].y0 > dy/4) Break; // ??? + // if( num_hole( x0, x1, y0+dy/4, y1, box1->p,cs,NULL) > 0 ) Break; + + i1=loop(bp,dx-1,dy-1,dx,cs,0,LE); + i2=loop(bp,dx-1,dy-2,dx,cs,0,LE); + if (i2-i1 >= dx/4) Break; // ~{ 5x7font + + i1=loop(bp, 0, 0,dx,cs,0,RI); + i2=loop(bp, 0, 1,dx,cs,0,RI); + if (i2-i1 >= dx/4) Break; // ~} 5x7font + + // sS5 \sl z left upper v-bow ? + + i1=loop(bp, 0,dy/2,dx,cs,0,RI); + i1=loop(bp, i1,dy/2,dx,cs,1,RI); + if (4*i1>=3*dx) ad=97*ad/100; // ~5 7-segment + + i1=loop(bp,0, dy/16,dx,cs,0,RI); + i2=loop(bp,0,4*dy/16,dx,cs,0,RI); + i3=loop(bp,0,7*dy/16,dx,cs,0,RI); + if( 2*i2+dx/32 >= i1+i3 ){ + if( 2*i2+dx/32 > i1+i3 || dx>9 ) Break; + // very small s? + i1+=loop(bp,i1, dy/16,dx,cs,1,RI); + i2+=loop(bp,i2,4*dy/16,dx,cs,1,RI); + i3+=loop(bp,i3,7*dy/16,dx,cs,1,RI); + if( 2*i2+dx/32 >= i1+i3 ) Break; + } + + for(y=7*dy/16;y<5*dy/8;y++){ + if( num_cross( 0,dx-1,y ,y ,bp,cs)==2 ) + if( num_cross( 0,dx-1,y+1,y+1,bp,cs)==1 ) + if( num_cross( 0,dx/4,y,y,bp,cs)==1 ) break; // ~5 + } if(y<5*dy/8) Break; // v0.2.4a5 + if ( loop(bp, dx-1,dy-2-dy/32,dx,cs,0,LE) + > loop(bp, 0, 1+dy/32,dx,cs,0,RI) + dx/4 ) Break; // ~5 Dec00 + ac='s'; + if (gchar) { ad=98*ad/100; MSG(fprintf(stderr,"gchar=bad");) } + if ( loop(bp, dx-1, 0,dx,cs,1,LE) // ToDo: improve + > loop(bp, 0,dy-1,dx,cs,1,RI)+dx/8 ) ad=98*ad/100; // ~5 4x5 font + if( hchar ){ // (slanted) S but 5 is very similar! check it + ac='S'; + if ( loop(bp,3*dx/4, 0,dy,cs,1,DO) // ToDo: improve + > loop(bp, dx/4,dy-1,dy,cs,1,UP) ) ad=99*ad/100; // ~5 + if ( loop(bp, dx-1,dy-1-dy/32,dx,cs,0,LE) + > loop(bp, 0, 0+dy/32,dx,cs,0,RI) ) ad=99*ad/100; // ~5 + if ( loop(bp, 0,dy-1-dy/32,dx,cs,0,RI) + > loop(bp, dx-1, 0+dy/32,dx,cs,0,LE) ) ad=99*ad/100; // ~5 + } + Setac(box1,ac,ad); + break; + } + return box1->c; +} + +static wchar_t ocr0_gG(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + pix *bp=sdata->bp; + int i,j,d,x,y,i1,i2,i3,hchar=sdata->hchar,gchar=sdata->gchar, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1,cs=sdata->cs; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + ad; /* tmp-vars */ + + // --- test g --------------------------------------------------- + /* some g's have crotchet at upper right end, so hchar can be set */ + // ~italic g + for(ad=d=100;dx>2 && dy>4;){ // min 3x5 + DBG( wchar_t c_ask='g'; ) + if (sdata->holes.num > 3) Break; /* tolerant against a tiny hole */ + if( get_bw(x0+dx/2, x0+dx/2, y1-dy/2, y1,box1->p,cs,1) != 1 ) Break; + if( get_bw(x1-dx/4, x1 , y1-dy/4, y1,box1->p,cs,1) != 1 ) Break; // ~p + if( get_bw(x0+dx/2, x0+dx/2, y0, y0+dy/2,box1->p,cs,1) != 1 ) Break; + + if( num_cross(x0+dx/2, x0+dx/2, y0, y1, box1->p,cs) < 3 ) + if( num_cross(x1-dx/2, x1-dx/2, y0, y1, box1->p,cs) < 3 ) Break; + if (sdata->holes.num < 1) Break; + for (i=0;iholes.num;i++){ + if (sdata->holes.hole[i].y1 < 5*dy/8+1) break; + } if (i==sdata->holes.num) Break; // no upper hole found + // if( num_hole ( x0, x1, y0, y0+5*dy/8, box1->p,cs,NULL) != 1 ) Break; + for(y=dy/4;y=15*dy) Break; // ~B + + if (num_cross(x1, x1, (y0+y1)/2, y1, box1->p,cs)>1) { + ad=98*ad/100; // ~& + if (num_cross(x1 , x1 , y0, (y0+y1)/2, box1->p,cs)<1 ) ad=96*ad/100; + if (num_cross(x1-1, x1-1, y0, (y0+y1)/2, box1->p,cs)<1 ) ad=95*ad/100; + } + // looking for a gap + for (x=0,y=dy/4;yx) x=i; + } // in a good font x is greater dx/2 + + if (xp,cs) > 2 + || num_cross(x0,x1 ,y0+dy/8,y0+dy/8,box1->p,cs) > 2) ad=90*ad/100; + if( num_cross(x0,x1+dx/4,y1-dy/4,y1-dy/4,box1->p,cs) > 2 + || num_cross(x0,x1+dx/4,y1-dy/8,y1-dy/8,box1->p,cs) > 2) ad=90*ad/100; + } + if( num_cross(0,dx-1,dy/2,dy/2,bp,cs) >2 ) ad=99*ad/100; // ~/o + + /* test for horizontal symmetry ~8 */ + for (y=0;ym4==0) ad=98*ad/100; + if ( hchar) ad=96*ad/100; + if (!gchar) ad=96*ad/100; + ad=98*ad/100; + Setac(box1,'g',ad); + break; + } + // --- test rundes G --------------------------------------------- + for(ad=d=100;dx>3 && dy>4;){ // min 3x4 + DBG( wchar_t c_ask='G'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + if( get_bw(x0 ,x0+dx/2,y0+dy/3,y0+dy/3,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/2,x1-dx/4,y0 ,y0+dy/4,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/2,x0+dx/2,y1-dy/4,y1 ,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0 ,x0+dx/2,y1-dy/3,y1-dy/3,box1->p,cs,1) != 1 ) Break; // ~S + for( y=y0+dy/4;yp,cs,1) == 0 ) break; + if( y==y1-dy/3 ) Break; // no gap + + if( num_cross(x0+dx/2 , x0+dx/2 , y0, y, box1->p,cs) != 1 + || num_cross(x0+dx/2+1, x0+dx/2+1, y0, y, box1->p,cs) != 1 ) Break; // ~e + + x=x0; y=y1; + turmite(box1->p,&x,&y,x0,x1,y0,y1,cs,UP,ST); // left bow? + if( yp,&x,&y,x0,x1,y0,y1,cs,LE,ST); + if( xp,&x,&y,x0,x1,y0,y1,cs,ST,LE); + if( xp,&x,&y,x0,x1,y0,y1,cs,LE,ST); + turmite(box1->p,&x,&y,x0,x1,y0,y1,cs,ST,LE); + if( xp,&x,&y,x0,x1,y0,y1,cs,RI,UP); // upper end right midle + if( x<=x1 ) Break; + if( yy1-dy/4 ) Break; + + x=x1-dx/3;y=y1; // follow left C-bow, filter S + turmite(box1->p,&x,&y,x0,x1,y0+dy/4,y1,cs,LE,UP); // w=LE b=UP + if( y>y0+dy/4+1 ) Break; /* leave box below for S or on top for CG */ + MSG(fprintf(stderr,"xy= %d %d",x-x0,y-y0);) + /* if (yp,&x,&y,x0,x1,y0 ,y1,cs,RI,UP); + MSG(fprintf(stderr,"xy= %d %d",x-x0,y-y0);) + if( y>y0 ) Break; + if (sdata->holes.num > 0) Break; + // if( num_hole(x0,x1,y0,y1,box1->p,cs,NULL) > 0 ) Break; + if( dx>4 && dy>6){ // no (<[ + for(i=1,y=0;i && y Z + if( xi ) i=x; + } if( yi){ i=x;i1=y; } + } if( i1<=dy/4 || i1>=dy-dy/4 ) Break; // around the middle ? + // check from above for gap and left vertical line (~S) + x =loop(bp,0,i1,dx ,cs,0,RI); + x+=loop(bp,x,i1,dx-x,cs,1,RI); // left vertical bow + x+=loop(bp,x,i1,dx-x,cs,0,RI); if (x>=dx) ad=90*ad/100; + MSG(fprintf(stderr,"h-bar y dx %d %d ad= %d",i1,i,ad);) + + i=1; // Mar06: adapted to 4x6 font + for(x=dx/2;x=cs + && getpixel(bp,x+1,y )< cs + && getpixel(bp,x+1,y-1)< cs + && getpixel(bp,x ,y-1)< cs ) { i=0;break; } + } + if(i) ad=95*ad/100; // ~C + if(!hchar) ad=98*ad/100; + if( gchar) ad=98*ad/100; + + Setac(box1,'G',ad); + break; + } + // --- test \it g like 9 ---------------------------------------------- + for(ad=d=100;dx>2 && dy>4;){ // dx>1 dy>2*dx + DBG( wchar_t c_ask='g'; ) + if (sdata->holes.num > 2) Break; /* tolerant against a tiny hole */ + if( num_cross(x0+dx/2,x0+dx/2,y0,y1,box1->p,cs) != 3 // pre select + && num_cross(x0+dx/4,x1-dx/4,y0,y1,box1->p,cs) != 3 ) Break; + for( x=0,i=y=y0+dy/2;y<=y1-3*dy/16;y++){ // suche kerbe + j=loop(box1->p,x0,y,dx,cs,0,RI); + if( j>2 && j>dx/4 && yp,x0+j-2,y+1,dx,cs,0,RI)-2; + if( j>x ) { x=j; i=y; } + } + if( x<4*dx/8 ) Break; + if( num_cross(x0+dx/2,x1,i ,y1,box1->p,cs) != 1 + && num_cross(x0+dx/2,x1,i+1,y1,box1->p,cs) != 1 ) Break; + if( num_hole(x0,x1,y0,i+1,box1->p,cs,NULL)!=1 ) Break; + if( num_hole(x0,x1,i-1,y1,box1->p,cs,NULL)!=0 ) Break; + if( loop(box1->p,x0,y1 ,dy,cs,0,RI)>dx/3 && + loop(box1->p,x0,y1-1,dy,cs,0,RI)>dx/3) Break; // no q + for( x=0,i=y=y0+dy/3;y<=y1-dy/3;y++){ // suche kerbe + j=loop(box1->p,x1,y,dx,cs,0,LE); + if( j>x ) { x=j; i=y; } + } if( x>dx/2 ) Break; // no g + i1=loop(bp,dx-1,dy/8 ,dx,cs,0,LE); if(i1>dx/2) Break; + i3=loop(bp,dx-1,dy-1-dy/8,dx,cs,0,LE); + i2=loop(bp,dx-1,dy/2 ,dx,cs,0,LE); if(i1+i3<2*i2-dx/8) Break; // konvex + i1=loop(bp,dx-1,dy/4 ,dx,cs,0,LE); if(i1>dx/2) Break; + i3=loop(bp,dx-1,dy-1-dy/8,dx,cs,0,LE); + for(y=dy/4;y0){ x--; // robust + y=loop(bp,dx-x-1, dy-1,dy,cs,0,UP); + if(yp,cs) > 2) ad=90*ad/100; + if( num_cross(x0,x1+dx/4,y1-dy/4,y1-dy/4,box1->p,cs) > 2 + || num_cross(x0,x1+dx/4,y1-dy/8,y1-dy/8,box1->p,cs) > 2) ad=90*ad/100; + + if (box1->m4==0) ad=98*ad/100; + if ( hchar) ad=96*ad/100; + if (!gchar) { + if (box1->m4 - box1->m3 > 2) ad=96*ad/100; + else { + if (y1 > box1->m3) ad=99*ad/100; + else ad=97*ad/100; + } + } + if (ad>99) ad=99; // never be sure to have a 9 + Setac(box1,'g',ad); + break; + } + return box1->c; +} + +// rewritten for vector usage v0.41 +static wchar_t ocr0_xX(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + // pix *bp=sdata->bp; // obsolete + int i,j,d,x,y,hchar=sdata->hchar,gchar=sdata->gchar, + x0=box1->x0, x1=box1->x1, y0=box1->y0, y1=box1->y1; // ,cs=sdata->cs; + int dx=x1-x0+1, dy=y1-y0+1, /* size */ + (*aa)[4]=sdata->aa, /* the for line ends, (x,y,dist^2,vector_idx) */ + ad; /* tmp-vars */ + wchar_t bc=UNKNOWN; + + // --- test xX --------------------------------------------------- + // rewritten for vectors 0.41 + for(ad=d=100;dx>2 && dy>3;){ // min 3x4 + int ld, i1, i2, i3, i4; // lien derivation, 4 inner edges + DBG( wchar_t c_ask='x'; ) + if (sdata->holes.num > 0) Break; /* # */ + /* half distance to the center */ + d=2*sq(128/4); + /* now we check for the 4 ends of the x */ + if (aa[0][2]>d) Break; + if (aa[1][2]>d) Break; + if (aa[2][2]>d) Break; + if (aa[3][2]>d) Break; + if (aa[3][0]-aa[0][0] dy/16 + && aa[3][1]-y0 > dy/16 + && y1-aa[1][1] > dy/16 + && y1-aa[2][1] > dy/16) Break; // 10x10 ~* (X + vert. line) + /* searching for 4 notches between neighbouring ends */ + + /* 0907: false positive on font4x5 '*'='-' | 'x' */ + i1=nearest_frame_vector(box1, aa[0][3], aa[1][3], x0+dx, y0+dy/4); + i3=nearest_frame_vector(box1, aa[0][3], aa[1][3], x0+dx, y1-dy/4); + i2=nearest_frame_vector(box1, i1, i3, x0, y0+dy/2); + if (box1->frame_vector[i2][0]<=x0+ dx/8) Break; + if (box1->frame_vector[i2][0]<=x0+ dx/4) ad=98*ad/100; + i1=nearest_frame_vector(box1, aa[2][3], aa[3][3], x0 , y0+dy/4); + i3=nearest_frame_vector(box1, aa[2][3], aa[3][3], x0 , y1-dy/4); + i2=nearest_frame_vector(box1, i1, i3, x1, y0+dy/2); + if (box1->frame_vector[i2][0]>=x1- dx/8) Break; + if (box1->frame_vector[i2][0]>=x1- dx/4) ad=98*ad/100; + + /* only left side */ + for (j=i=aa[0][3];i!=aa[1][3];i=(i+1)%box1->num_frame_vectors[0]) { + if (box1->frame_vector[i][0] + >=box1->frame_vector[j][0]) j=i; /* notice most right vector */ + } if (j==i) Break; + /* calculate the distance to the center */ + x=box1->frame_vector[j][0]; + y=box1->frame_vector[j][1]; i1=j; + if (abs(aa[0][0]+aa[1][0]+aa[2][0]+aa[3][0]-4*x)>(dx+2)) Break; + if (abs(aa[0][1]+aa[1][1]+aa[2][1]+aa[3][1]-4*y)>(dy+2)) Break; + if ( aa[0][0]+aa[1][0]-2*x>=0) Break; + if ( aa[1][0] >= x ) Break; + if ( aa[0][0] > x ) Break; + if ( aa[0][0] >= x ) ad=99*ad/100; + if (x-x02*sq(1024/4)) Break; + /* check if lower left and center point are joined directly */ + ld=line_deviation(box1, j, aa[1][3]); + MSG(fprintf(stderr," X-1 %d %d dist= %d/%d",x-x0,y-y0,ld,2*sq(1024/4));) + if (ld >2*sq(1024/4)) Break; + + /* only lower side */ + for (j=i=aa[1][3];i!=aa[2][3];i=(i+1)%box1->num_frame_vectors[0]) { + if (box1->frame_vector[i][1] + <=box1->frame_vector[j][1]) j=i; /* notice most upper vector */ + } if (j==i) Break; + /* calculate the distance to the center */ + x=box1->frame_vector[j][0]; + y=box1->frame_vector[j][1]; i2=j; + if (abs(aa[0][0]+aa[1][0]+aa[2][0]+aa[3][0]-4*x)>(dx+2)) Break; + if (abs(aa[0][1]+aa[1][1]+aa[2][1]+aa[3][1]-4*y)>(dy+2)) Break; + if ( aa[1][1]+aa[2][1]-2*y<=0) Break; + /* check if lower left and center point are joined directly */ + ld=line_deviation(box1, aa[1][3], j); + MSG(fprintf(stderr," 1-X %d %d dist= %d/%d",x-x0,y-y0,ld,2*sq(1024/4));) + if (ld >2*sq(1024/4)) Break; + /* check if lower right and center point are joined directly */ + ld=line_deviation(box1, j, aa[2][3]); + MSG(fprintf(stderr," X-2 %d %d dist= %d/%d",x-x0,y-y0,ld,2*sq(1024/4));) + if (ld >2*sq(1024/4)) Break; + + /* only right side */ + for (j=i=aa[2][3];i!=aa[3][3];i=(i+1)%box1->num_frame_vectors[0]) { + if (box1->frame_vector[i][0] + <=box1->frame_vector[j][0]) j=i; /* notice most left vector */ + } if (j==i) Break; + /* calculate the distance to the center */ + x=box1->frame_vector[j][0]; + y=box1->frame_vector[j][1]; i3=j; + if (abs(aa[0][0]+aa[1][0]+aa[2][0]+aa[3][0]-4*x)>(dx+2)) Break; + if (abs(aa[0][1]+aa[1][1]+aa[2][1]+aa[3][1]-4*y)>(dy+2)) Break; + if ( aa[2][0]+aa[3][0]-2*x<=0) Break; + if ( aa[3][0] <= x ) Break; + if ( aa[2][0] < x ) Break; + if ( aa[2][0] <= x ) ad=99*ad/100; + if (dx-(x-x0)2*sq(1024/4)) Break; + /* check if upper right and center point are joined directly */ + ld=line_deviation(box1, j, aa[3][3]); + MSG(fprintf(stderr," X-3 %d %d dist= %d/%d",x-x0,y-y0,ld,2*sq(1024/4));) + if (ld >2*sq(1024/4)) Break; + + /* only upper side */ + for (j=i=aa[3][3];i!=aa[0][3];i=(i+1)%box1->num_frame_vectors[0]) { + if (box1->frame_vector[i][1] + >=box1->frame_vector[j][1]) j=i; /* notice lowest vector */ + } if (j==i) Break; + /* calculate the distance to the center */ + x=box1->frame_vector[j][0]; + y=box1->frame_vector[j][1]; i4=j; + if (abs(aa[0][0]+aa[1][0]+aa[2][0]+aa[3][0]-4*x)>(dx+2)) Break; + if (abs(aa[0][1]+aa[1][1]+aa[2][1]+aa[3][1]-4*y)>(dy+2)) Break; + if ( aa[3][1]+aa[0][1]-2*y>=0) Break; + /* check if upper left and center point are joined directly */ + ld=line_deviation(box1, aa[3][3], j); + MSG(fprintf(stderr," 3-X %d %d dist= %d/%d",x-x0,y-y0,ld,2*sq(1024/4));) + if (ld >2*sq(1024/4)) Break; + /* check if lower left and center point are joined directly */ + ld=line_deviation(box1, j, aa[0][3]); + MSG(fprintf(stderr," X-0 %d %d dist= %d/%d",x-x0,y-y0,ld,2*sq(1024/4));) + if (ld >2*sq(1024/4)) Break; + + // center crossing of diagonal lines is small? + if (box1->frame_vector[i3][0] - box1->frame_vector[i1][0] > dx/2) Break; + + if (gchar) ad=99*ad/100; + bc='x'; if(hchar) bc='X'; + Setac(box1,bc,ad); + break; + } + // --- test \it x --------------------------------------------------- +#if 0 + for(ad=d=99;dx>4 && dy>4;){ // min 3x4 + DBG( wchar_t c_ask='x'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + if( get_bw(x0,x0+dx/4,y0+dy/2,y0+dy/2,box1->p,cs,1) != 0 ) Break; + if( get_bw(x1-dx/4,x1,y0+dy/2,y0+dy/2,box1->p,cs,1) != 0 ) Break; + if( num_cross(x0+dx/4,x1-dx/4,y0+dy/2,y0+dy/2, box1->p,cs) != 1 ) Break; + if( num_cross(x0,x1,y0+dy/4,y0+dy/4, box1->p,cs) != 3 + && num_cross(x0,x1,y0+dy/8,y0+dy/8, box1->p,cs) < 3 ) Break; + if( num_cross(x0,x1,y1-dy/4,y1-dy/4, box1->p,cs) != 3 + && num_cross(x0,x1,y1-dy/8,y1-dy/8, box1->p,cs) < 3 ) Break; + if( gchar ) ad=97*ad/100; + if( hchar ) ad=96*ad/100; + bc='x'; + Setac(box1,bc,ad); + break; + } +#endif + return box1->c; +} + +static wchar_t ocr0_yY(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + pix *bp=sdata->bp; + int i,j,d,x,y,hchar=sdata->hchar,gchar=sdata->gchar, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1,cs=sdata->cs; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + ad,xa,ya,xb,yb,xc,yc,xd,yd; /* tmp-vars */ + wchar_t bc=UNKNOWN; + + // --- test italic yY -------------------------------------------- + for(ad=d=100;dx>2 && dy>3;){ // min 3x4 + DBG( wchar_t c_ask='y'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + if (sdata->holes.num > 0) ad=97*ad/100; + if( num_cross(0,dx-1,dy/8,dy/8,bp,cs) < 2 + && num_cross(0,dx-1, 1, 1,bp,cs) < 2 ) Break; + if( num_cross(0,dx-1,dy-1,dy-1,bp,cs) != 1 + && num_cross(0,dx-1,dy-2,dy-2,bp,cs) != 1 ) Break; + if( num_cross(dx-1,dx-1,0,dy-1,bp,cs) != 1 + && num_cross(dx-2,dx-2,0,dy-1,bp,cs) != 1 ) Break; + if( num_cross(dx/3,dx/3,dy/4,dy-1,bp,cs) != 2 + && num_cross(dx/2,dx/2,dy/4,dy-1,bp,cs) != 2 ) Break; + for(yc=y=0,xc=x=dx/4;xy){ yc=y=i;xc=x; } + } if( y>12*dy/16 || y<3*dy/8 ) Break; + ya=dy/8; xa=xc-loop(bp,xc,ya,dx,cs,0,LE); if(xa< 0) Break; + yb=dy/8; xb=xc+loop(bp,xc,yb,dx,cs,0,RI); if(xb>=dx) Break; + for(y=dy/8;y6*dx/8) ad=99*ad/100; // why this??? + if (loop(bp,dx-1,dy-1,dx,cs,0,LE)<1) Break; + // printf(" abcd=%d %d %d %d %d %d %d %d -",xa,ya,xb,yb,xc,yc,xd,yd); + if( get_line2(xb,yb,xd,yd,bp,cs,100)<95 ) Break; + // if( get_line2(xc,yc,xd,yd,bp,cs,100)<95 ) Break; + // printf("ok"); + bc='y'; + if(gchar && !hchar) bc='y'; else + if(hchar && (!gchar || dy<14)) bc='Y'; else ad=98*ad/100; // SMALL-CAPS ??? + Setac(box1,bc,ad); + break; + } + // --- test yY --------------------------------------------------- + for(ad=d=100;dx>2 && dy>3;){ // min 3x4 + DBG( wchar_t c_ask='y'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + if( get_bw(x0,x0,y1-dy/8,y1,box1->p,cs,1) == 1 ) { + if( get_bw(x0,x0+4*dx/8,y0+dy/8,y0+dy/8,box1->p,cs,1) != 1 ) Break; + } else { + if( get_bw(x0,x0+3*dx/8,y0+dy/8,y0+dy/8,box1->p,cs,1) != 1 ) Break; + } + if( num_cross(0,dx-1,dy/8,dy/8,bp,cs) != 2 + && num_cross(0,dx-1, 1, 1,bp,cs) != 2 ) Break; + if( num_cross(dx/2,dx/2,0, 1,bp,cs) != 0 ) Break; + if( num_cross(0,dx-1,dy-1,dy-1,bp,cs) != 1 + && num_cross(0,dx-1,dy-2,dy-2,bp,cs) != 1 ) Break; + if( num_cross(dx-1,dx-1,0,dy-1,bp,cs) != 1 + && num_cross(dx-2,dx-2,0,dy-1,bp,cs) != 1 + && num_cross(dx-dx/8-1,dx-dx/8-1,0,dy-1,bp,cs) != 1 ) Break; + if( loop(bp,dx-1,dy-1-dy/8,dx,cs,0,LE)+dx/8+1 // Jul00 + < loop(bp, 0,dy-1-dy/8,dx,cs,0,RI) ) Break; + for(y=0,x=dx/4;xy) y=i; + } if( y>10*dy/16 || y<2*dy/8 ) Break; + for(xc=xb=xa=dx,yc=yb=ya=y=0;ydy/8) Break; + for(i=dx,yc=y=dy/4;y<3*dy/4;y++){ + if( num_cross(0,dx-1,y,y,bp,cs) < 2 ) break; + x =loop(bp,dx-1 ,y,dx,cs,0,LE); + x+=loop(bp,dx-1-x,y,dx,cs,1,LE); + j =loop(bp,dx-1-x,y,dx,cs,0,LE); if(j<=i){ i=j;yc=y;xc=dx-1-x-j/2; } + } yc+=dy/16+1; + yc+=loop(bp,xc,yc,i,cs,1,DO)/2; + xa+= loop(bp,xa ,ya,dx,cs,1,RI)/2; + xb=dx-1-loop(bp,dx-1,yb,dx,cs,1,LE)/2; + yd=dy-1-dy/8;xd=dx-1-loop(bp,dx-1,yd,dx,cs,0,LE); if(xd>6*dx/8) Break; + /* check for serife at lower end */ + for (i=0,x=dx-1;ix+dx/16+1) break; /* detect serif */ + if (j=5*dy/8 && !gchar) + if( get_line2(xa,ya,xd ,yd,bp,cs,100)>95 ) + if( get_line2(xb,yb,xd ,yd,bp,cs,100)>95 ) + { if (dx>4) { Break; } else ad=ad*98/100; } // ~V + xa=loop(bp,0,dy/8,dx,cs,0,RI); + xb=loop(bp,0,dy/2,dx,cs,0,RI); + xc=loop(bp,0,dy-1,dx,cs,0,RI); + if( 2*xb< xa+xc ) ad=98*ad/100; // ~V + if( 2*xb<=xa+xc ) ad=98*ad/100; + if( 2*xb<=xa+xc+1 ) ad=98*ad/100; + + bc='y'; + if ((!gchar) && (!hchar)) ad=98*ad/100; + if(y0m2-(box1->m2-box1->m1)/4) + { bc='Y'; if(gchar) ad=98*ad/100; } + // SMALL-CAPS ??? + Setac(box1,bc,ad); + break; + } + return box1->c; +} + +static wchar_t ocr0_zZ(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + int i1,i2,i3,i4,i5,dbg[9], + d,x,y,hchar=sdata->hchar,gchar=sdata->gchar, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + (*aa)[4]=sdata->aa, /* the for line ends, (x,y,dist^2,vector_idx) */ + ad; /* tmp-vars */ + wchar_t bc=UNKNOWN; + + // --- test zZ ------- + for(ad=d=100;dx>3 && dy>3;){ // dy>dx + DBG( wchar_t c_ask='z'; ) /* for debugging purpose */ + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + if (sdata->holes.num > 0) ad=98*ad/100; /* # */ + /* half distance to the center */ + d=2*sq(128/4); + /* now we check for the 4 edges of the z */ + if (aa[0][2]>d) Break; + if (aa[1][2]>d) Break; + if (aa[2][2]>d) Break; + if (aa[3][2]>d) Break; + if (aa[3][0]-aa[0][0]dy/8) ad=99*ad/100; + if (aa[0][1]-y0>dy/8) ad=99*ad/100; + if (2*dx2*sq(1024/4)) Break; + ad=(100-(d-sq(1024)/2)/sq(1024)/4)*ad/100; + d=line_deviation(box1, aa[1][3], aa[2][3]); if (d>2*sq(1024/4)) Break; + + /* search uppermost right > from left side */ + i1=nearest_frame_vector(box1,aa[0][3],aa[1][3], x1, y0); + x=box1->frame_vector[i1][0]; + y=box1->frame_vector[i1][1]; + if (y-y0 > 5*dy/8) Break; + if (x-x0 < 3*dx/8) Break; + if (x-aa[0][0]<=dx/4) Break; // ~lI + if (x-aa[0][0]<=dx/3) ad=98*ad/100; // ~lI + if (x-aa[0][0]< dx/2) ad=99*ad/100; // ~lI, dx/2 for fat 8x10 font + /* search most right > ~2 from left side */ + i3=nearest_frame_vector(box1,aa[0][3],aa[1][3], x1+2*dx, (y0+y1)/2); + MSG(fprintf(stderr,"i23xy= %d %d %d %d ad %d",x-x0,y-y0,box1->frame_vector[i3][0]-x0,box1->frame_vector[i3][1]-y0,ad);) + /* dy=7 i3.y=2 for fat screen font (Apr09) */ + if ( box1->frame_vector[i3][1]-y0> (dy+2)/4 + && box1->frame_vector[i3][0]-x>= 0) Break; + if ( box1->frame_vector[i3][1]-y> dy/8+1 // +1 needed for 5x7 Z Jul09 + && box1->frame_vector[i3][0]-x>=-dx/8) ad=98*ad/100; + if ( box1->frame_vector[i3][1]-y> dy/8+1 + && box1->frame_vector[i3][0]-x>= 0) ad=97*ad/100; + if ( box1->frame_vector[i3][1]-y> dy/16+1) ad=99*ad/100; // 9x10 ~2 + if (box1->frame_vector[i3][0]-aa[0][0] + < aa[3][0]-box1->frame_vector[i3][0]) Break; // ~lI + if (box1->frame_vector[i3][0]-aa[0][0] + <(aa[3][0]-box1->frame_vector[i3][0]-1)*2) ad=98*ad/100; // ~lI + /* better test for a bow or peaked angle */ + /* upper part of a 2, on a Z a and b should be at c + .....$@@@@@@a...c. o1 (o1-a)=(dx+5)^2 =dx^2+10*dx+25 + ...$$@@@@@@@@@.... (o1-b)=(dx+1)^2+4^2=dx^2+ 2*dx+18 + ..$@@$@@@$@@@@@... + ..@@@.....$$@@@@.. + ..@@.......@$@@@b. + ..$.........$@@@@. + .$$..........$@@@. + .$...........@@@@. + .............@@@@.< + .............$@@$. + ............$@@@.. + ............@@$... + ............$@$... + --- snip ---- + */ + i4=nearest_frame_vector(box1,aa[2][3],aa[0][3], x1+dx, y0); + i5=nearest_frame_vector(box1,aa[2][3],aa[0][3], x1, y0-dx); + d=sq(box1->frame_vector[i5][0]-box1->frame_vector[i4][0]) + +sq(box1->frame_vector[i5][1]-box1->frame_vector[i4][1]); + if (d>2*sq(dx/8+1)) Break; + if (d>0 && dx<8 ) ad=99*ad/100; // 7x10 2 ~Z + if (d>1 && dx<16) ad=98*ad/100; // 9x10 2 ~Z d=2 + MSG( fprintf(stderr,"i45xy %d %d d %d ad %d upper right bow?",i4,i5,d,ad); ) + + /* check if upper left and upper right point are joined directly */ + dbg[0]=d=line_deviation(box1, aa[0][3], i1); if (d >2*sq(1024/4)) Break; + /* check if lower right and upper left point are joined directly */ + dbg[1]=d=line_deviation(box1, i1, aa[1][3]); if (d >2*sq(1024/4)) Break; + + /* search lowest left < from right side */ + i2=nearest_frame_vector(box1,aa[2][3],aa[3][3], x0, y1); + x=box1->frame_vector[i2][0]; + y=box1->frame_vector[i2][1]; + if (y-y0 < 3*dy/8) Break; + if (x-x0 > 5*dx/8) Break; + if (aa[2][0]-x<=dx/4) Break; // ~lI + if (aa[2][0]-x<=dx/3) ad=98*ad/100; // ~lI + if (aa[2][0]-x< dx/2) ad=99*ad/100; // ~lI, dx/2 for 9x7 fat3 z + /* check if upper right and lower left point are joined directly */ + dbg[2]=d=line_deviation(box1,i2, aa[3][3]); + MSG(fprintf(stderr,"left diag line? d= %d krit= 2..3*%d",d,sq(1024/4));) + if ( d >3*sq(1024/4)) Break; + if (dx>9 && d >2*sq(1024/4)) Break; // to strong for 5x7 Z + /* check if lower left and lower right point are joined directly */ + dbg[3]=d=line_deviation(box1, aa[2][3],i2); if (d >2*sq(1024/4)) Break; + + MSG( fprintf(stderr," i12 %d %d ad %d", i1, i2, ad); ) + /* upper right nick - lower left nick, 0 for fat screen fonts 8x10 */ + if (box1->frame_vector[i1][0] + -box1->frame_vector[i2][0]frame_vector[i1][0]-x0,box1->frame_vector[i1][1]-y0,\ + box1->frame_vector[i2][0]-x0,box1->frame_vector[i2][1]-y0,\ + dbg[0], dbg[1], dbg[2], dbg[3], sq(1024)/16, ad);) + ad=(100-dbg[0]/sq(1024/4))*ad/100; + ad=(100-dbg[1]/sq(1024/4))*ad/100; + ad=(100-dbg[2]/sq(1024/4))*ad/100; + ad=(100-dbg[3]/sq(1024/4))*ad/100; + + if ( gchar) ad=98*ad/100; + bc='z'; + if( hchar ) bc='Z'; + Setac(box1,bc,ad); + break; + } + return box1->c; +} + +static wchar_t ocr0_wW(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + pix *bp=sdata->bp; + int i,j,d,x,y,hchar=sdata->hchar,gchar=sdata->gchar,handwritten=0, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1,cs=sdata->cs; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + ad,ya,yb,xa,xb,xc,xd,xe,t1; /* tmp-vars */ + wchar_t ac; + + // ------- test w ~{\it w} --------------- + for(ad=d=100;dx>3 && dy>3;){ // dy<=dx + DBG( wchar_t c_ask='w'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + // xa xe + // \ xc / <=ya connected xa-xb-xc-xd-xe + // xb xd <=yb + // get two lowest points i3,i4,ya + // out_x(box1); + // ~ul ~uf + // out_x(box1); + for(y=dy/8;y< dy/2;y++) if( num_cross(0,dx-1,y,y,bp,cs)< 2 ) break; + if(y4) { /* 4x6 is to small */ + for(y=dy-1-dy/16;y>3*dy/4;y--) + if( num_cross(0,dx-1,y,y,bp,cs)==2 ) break; + if(y==3*dy/4) Break; + } + yb=y; + t1=loop(bp,0 ,dy/4,dx,cs,0,RI); + t1=loop(bp,t1,dy/4,dx,cs,1,RI); // thickness of line? + for(i=j=0 ;y> dy/4;y--) if( num_cross(0,dx-1,y,y,bp,cs)==4 ) i++; + else if( num_cross(0,dx-1,y,y,bp,cs)>=3 ) j++; + if(i+56 || dx>4)) Break; + if(i+j==0 && dx<=4){ + if (abs(loop(bp, 1,dy-1,dy,cs,0,UP) + -loop(bp,dx-2,dy-1,dy,cs,0,UP))>dy/8+1) Break; // 4x6 N + if ( ( loop(bp, 1, 0,dy,cs,0,DO)>=dy-2 + && loop(bp, 0,dy-1,dy,cs,0,UP)>0) + || ( loop(bp,dx-2, 0,dy,cs,0,DO)>=dy-2 + && loop(bp,dx-1,dy-1,dy,cs,0,UP)>0)) Break; // 4x6 UV + ad=ad*99/100; // 4x6 font + MSG(fprintf(stderr,"ad=%d",ad);) + } + if( num_cross(0,dx-1, 1, 1,bp,cs)< 2 + && num_cross(0,dx-1,dy/16,dy/16,bp,cs)< 2 ) Break; + x =loop(bp,0 ,yb,dx,cs,0,RI); + xb=loop(bp,x ,yb,dx,cs,1,RI);xb=x+xb/2; if(xb>dx/2) Break; + x =loop(bp,dx-1 ,yb,dx,cs,0,LE); + xd=loop(bp,dx-1-x,yb,dx,cs,1,LE);xd=dx-1-x-xd/2;if(xd<3*dx/8) Break; + for(y=0,xc=x=xb+1;xy){xc=x;y=i;} + if(dx>4 && !y) Break; + ya=dy-1-y; // flat + y=loop(bp,xc,ya,dy,cs,1,UP);if(y)y--; + if (dy>6 || dx>4) { // ~4x6 font + if( num_cross(0 ,xc ,ya-y ,ya-y ,bp,cs)!= 2 + && num_cross(0 ,xc ,ya-y/2,ya-y/2,bp,cs)!= 2 ) Break; + if( num_cross(xc,dx-1,ya-y ,ya-y ,bp,cs)!= 2 + && num_cross(xc,dx-1,ya-y/2,ya-y/2,bp,cs)!= 2 ) Break; + } + ya-=y/2; + x =loop(bp,0 ,1 ,dx,cs,0,RI); + xa=loop(bp,x ,1 ,dx,cs,1,RI); + if( x+xa>xb ){ // may be, here is a small but thick letter + // later add some proofs + xa=x+xa/4; + } else { + xa=x+xa/2; + } + x =loop(bp,dx-1 ,1 ,dx,cs,0,LE); + xe=loop(bp,dx-1-x,1 ,dx,cs,1,LE);xe=dx-1-x-xe/2; + MSG( fprintf(stderr,"a-e: %d %d %d %d %d %d %d %d %d %d", + xa,1,xb,yb,xc,ya,xd,yb,xe,1);) + if (ya94 ) break; + if (x==xa+i) Break; // no vert. line found + if( get_line2(xb,yb-1,xc,ya ,bp,cs,100)<95 + && get_line2(xb,yb-1,xc,ya+dy/32,bp,cs,100)<95 + && get_line2(xb,yb-1,xc,ya+dy/16,bp,cs,100)<95 ) Break; + if( get_line2(xc, ya,xd, yb,bp,cs,100)<95 + && get_line2(xc+1,ya,xd, yb,bp,cs,100)<95 ) Break; + if( get_line2(xd,yb,xe ,1+dy/16,bp,cs,100)<95 + && get_line2(xd,yb,dx-1 ,1+dy/8 ,bp,cs,100)<95 // round w + && get_line2(xd,yb,xe+dx/20,1+dy/16,bp,cs,100)<95 ) Break; + // if( num_hole(0,dx-1,0,dy-1,bp,cs,NULL) != 0 ) Break; + // ~ur + MSG(fprintf(stderr,"ad=%d",ad);) + for(i=0,y=5*dy/8;yi ) i=x; if( x3 && dy>3;){ // dy<=dx 4x6font (like a H with fat bar) + DBG( wchar_t c_ask='w'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + // ~ul ~uf + if( num_cross(0,dx-1,dy/2,dy/2,bp,cs)<2 ) Break; + if( num_cross(0,dx-1,dy/8,dy/8,bp,cs)<2 ) handwritten=40; + if( num_cross(0,dx-1,dy/4,dy/4,bp,cs)<2 ) handwritten=80; + for(i=0,y=0;ydx/2) Break; + xb=loop(bp,x ,yb,dx,cs,0,RI);xb=x+xb/2; if(xb>dx/2) Break; + x =loop(bp,dx-1 ,yb,dx,cs,0,LE); + x+=loop(bp,dx-1-x,yb,dx,cs,1,LE); + xd=loop(bp,dx-1-x,yb,dx,cs,0,LE);xd=dx-1-x-xd/2;if(xd<3*dx/8) Break; + if( num_cross(xb,xd,yb,yb ,bp,cs)!= 1 ) Break; + if( num_cross(xb,xb,yb,dy-1,bp,cs)!= 1 ) Break; + if( num_cross(xd,xd,yb,dy-1,bp,cs)!= 1 ) Break; + if( num_cross(xb,xb, 0,yb ,bp,cs)!= 0 ) Break; + if( num_cross(xd,xd, 0,yb ,bp,cs)!= 0 ) Break; + // if( num_hole(0,dx-1,0,dy-1,bp,cs,NULL) != 0 ) Break; + if (sdata->holes.num != 0) Break; + // ~ur + for(i=0,y=3*dy/4;yi ) i=x; if( xc; +} + +static wchar_t ocr0_aA(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + pix *bp=sdata->bp; + int i,d,x,y,i1,i2,i3,i4,hchar=sdata->hchar,gchar=sdata->gchar, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1,cs=sdata->cs; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + ad,ya; /* tmp-vars */ + + // --- test A --------------------------------------------------- + for(ad=d=100;dx>2 && dy>3;){ // min 3x4 + DBG( wchar_t c_ask='A'; ) + if (sdata->holes.num > 2) Break; /* tolerant against a tiny hole */ + // first selection (rough sieve) + if( get_bw(dx/2 ,dx/2 ,dy-1-dy/8,dy-1,bp,cs,1) == 1 + && get_bw(dx/2-1,dx/2-1,dy-1-dy/8,dy-1,bp,cs,1) == 1 ) Break; // ~B + ya=0; /* upper end, not 0 for modified A etc. */ + if (box1->modifier) + for (ya=0;ya=dy/2) ya=0; // already subtracted? + if( num_cross(0,dx-1,ya+ 1 ,ya+ 1 ,bp,cs)!=1 // 600dpi + && num_cross(0,dx-1,ya+ dy/8 ,ya+ dy/8 ,bp,cs)!=1 + && num_cross(0,dx-1,ya+ dy/16 ,ya+ dy/16 ,bp,cs)!=1 + && num_cross(0,dx-1,ya+ dy/8+1,ya+ dy/8+1,bp,cs)!=1 ) Break; + if( num_cross(0,dx-1, 7*dy/8 , 7*dy/8 ,bp,cs)!=2 + && num_cross(0,dx-1, 7*dy/8-1, 7*dy/8-1,bp,cs)!=2 ) Break; + if ( num_cross( 0,dx/8,ya+dy/8,ya+0,bp,cs)>0 ) Break; // ~R + for(y=ya+dy/8;y 1 ) break; + if( y==ya+dy/2 ) Break; i1=y; + if (dy>20) i1++; /* get arround some noise fat font */ + + x =loop(bp,0,i1,dx,cs,0,RI); if(x>3*dx/4) Break; + x+=loop(bp,x,i1,dx,cs,1,RI); if(x>3*dx/4) Break; i2=x; + x+=loop(bp,x,i1,dx,cs,0,RI); if(x<3*dx/8) Break; i2=(x+i2)/2; + // hole (i2,i1) + y+=loop(bp,i2,y,dy,cs,1,DO); + y+=loop(bp,i2,y,dy,cs,0,DO); if(y>3*dy/4) ad=ad*99/100; + if (y>5*dy/6) { MSG(fprintf(stderr,"x,y,i1,i2= %d %d %d %d",x,y,i1,i2);) } + if (y>5*dy/6) Break; + + if( sdata->holes.num != ((box1->modifier==RING_ABOVE)?2:1) + || sdata->holes.hole[0].y1-ya >= dy-1-dy/4) Break; + // if( num_hole ( x0, x1, y0, y1-dy/4 ,box1->p,cs,NULL) != 1 ) Break; + // out_x(box1); + i3=0;i4=0; + for(x=dx/3;x<2*dx/3;x++){ + i4=num_cross(i2,x,y ,dy-1,bp,cs);if(i4<1 || i4>2) + i4=num_cross(i2,x,y+dy/16,dy-1,bp,cs);if(i4<1 || i4>2) break; + if(i4==1) i3=x; + } if(i4<1 || i4>2 || i3==0){ +// ToDo: MSG(fprintf(stderr,"x,y,i4,i3= %d %d %d %d",x,y,i4,i3);) + Break; + } + if( get_bw(dx-1-dx/4, dx-1, dy-1-dy/4, dy-1, bp,cs,1) != 1 ) Break; + + i1=loop(bp,dx-1,ya+ (dy-ya)/4,dx,cs,0,LE); + i2=loop(bp,dx-1,ya+ (dy-ya)/2,dx,cs,0,LE); + i3=loop(bp,dx-1,dy-1-(dy-ya)/4,dx,cs,0,LE); + if( 2*i2-dx/8>i1+i3 ) ad=99*ad/100; /* 6*8 font */ + if( 2*i2+dx/4i1+i3 ) Break; + + i1=loop(bp,0 ,ya+ (dy-ya)/4,dx,cs,0,RI); // linke senkr. linie + i2=loop(bp,0 ,ya+ (dy-ya)/2,dx,cs,0,RI); + i3=loop(bp,0 ,dy-1-(dy-ya)/4,dx,cs,0,RI); + if( 2*i2-dx/8>i1+i3 ) ad=98*ad/100; /* 6*8 font */ + if( 2*i2+dx/4i1+i3 || i1i3+dx/16) break; if( i1+120) ad=97*ad/100; // italic-a + + if (!hchar) ad=99*ad/100; // italic-a + Setac(box1,'A',ad); + break; + } + // --- test a ------------------------------------------- + // with a open bow above the circle starting + // on the right side of the circle + for(ad=d=100;dx>2 && dy>3;){ // min 3x4 + DBG( wchar_t c_ask='a'; ) + if (sdata->holes.num > 2) Break; /* tolerant against a tiny hole */ + if( get_bw(x0 , x0+dx/2, y1-dy/3, y1-dy/3,box1->p,cs,1) != 1 ) Break; + if( get_bw(x1-dx/3, x1 , y0+dy/3, y0+dy/3,box1->p,cs,1) != 1 ) Break; + if( get_bw(x1-dx/3, x1 , y0+dy/4, y0+dy/4,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/2, x0+dx/2, y1-dy/3, y1, box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/2, x0+dx/2, y0 , y0+dy/3,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/3, x1-dx/3, y0 , y0 ,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/4, x1-dx/2, y1 , y1 ,box1->p,cs,1) != 1 ) + if( get_bw(x0+dx/4, x1-dx/3, y1-1 , y1-1 ,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0 , x0 , y0+dy/2, y1 ,box1->p,cs,1) != 1 ) + if( get_bw(x0+dx/8, x0+dx/8, y0+dy/2, y1 ,box1->p,cs,1) != 1 ) Break; + if( loop(bp,3*dx/8,0,dy,cs,0,DO) > 3*dy/16 ) Break; // ~d + if( num_cross(0,dx-1,dy/4 ,dy/4 , bp,cs) >2 // ~glued am != an + && num_cross(0,dx-1,dy/4+1,dy/4+1, bp,cs) >2 ) Break; + + for( x=dx/4;xdy/2) break; + i=loop(bp,x,dy-1,y1-y0,cs,0,UP); if (i>dy/2) break; + } if( xy-1, bp,cs) == 3 ) i--; + } if( i ) Break; + + i1=loop(bp,0, dy/8,dx,cs,0,RI); + i3=loop(bp,0,3*dy/4,dx,cs,0,RI); + for(y=dy/8+1;y<3*dy/4;y++){ + i2=loop(bp,0,y,dx,cs,0,RI);if(2*i2>i1+i3+1) break; + } if(y==3*dy/4) Break; // ~6 + // ~ s (small thick s), look for vertikal line piece + for(x=3*dx/4;xdy/4 ) break; + if( x==dx ) Break; + + if (sdata->holes.num != 1) ad=96*ad/100; else + if (sdata->holes.num == 1) + if( num_hole ( x0, x1, y0+dy/3, y1 ,box1->p,cs,NULL) != 1 ) Break; + // if( num_hole ( x0, x1, y0, y1, box1->p,cs,NULL) != 1 ) Break; + if( num_hole ( x0, x1, y0, y1-dy/3 ,box1->p,cs,NULL) != 0 ){ + i =loop(bp,0,dy/4,dx,cs,0,RI); + i =loop(bp,i,dy/4,dx,cs,1,RI); + if(ii) Break; // ~ 8 + } + /* test for horizontal symmetry ~8 */ + for (y=0;ydy/4) Break; // ~ serif d + + if (hchar) ad=96*ad/100; + if (gchar) ad=96*ad/100; + Setac(box1,'a',ad); + break; + } + // --- test hand written a --------------------------------------------------- + // rarely char, without bow above the circle + for(ad=d=100;dx>3 && dy>3;){ // min 4x4 + DBG( wchar_t c_ask='a'; ) + if (sdata->holes.num > 2) Break; /* tolerant against a tiny hole */ + if( get_bw(x0 , x0+dx/2,y0+dy/2 , y0+dy/2,box1->p,cs,1) != 1 ) Break; + if( get_bw(x1-dx/2 , x1 ,y0+dy/2 , y0+dy/2,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/2 , x0+dx/2,y1-dy/2 , y1, box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/2 , x0+dx/2,y0 , y0+dy/2,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/3 , x0+dx/3,y0 , y0+dy/2,box1->p,cs,1) != 1 ) Break; + i = loop(bp,dx/2, 0 ,dy,cs,0,DO); if (i>dy/4) Break; + i+= loop(bp,dx/2, i ,dy,cs,1,DO); if (i>dy/2) Break; + i = loop(bp,dx/2, i ,dy,cs,0,DO); if (ip,cs,1) == 1 ) Break; + + if( num_cross(x0+dx/2,x0+dx/2,y0 , y1 ,box1->p,cs) != 2 ) Break; + if( num_cross(x0+dx/3,x1-dx/3,y0 , y0 ,box1->p,cs) != 1 ) // AND + if( num_cross(x0+dx/3,x1-dx/3,y0+1 , y0+1 ,box1->p,cs) != 1 ) Break; + i = loop(bp,dx/2,dy-1 ,dy,cs,0,UP); if (i>dy/3) Break; + y = i+loop(bp,dx/2,dy-1-i,dy,cs,1,UP); if (i>dy/2) Break; + // normal 'a' has a well separated vertical line right from the circle + // but fat 'a' is like a 'o', only bigger on the right side + if( num_cross(x0+dx/2-1,x1,y1 ,y1 ,box1->p,cs) < 2 /* 4x6font */ + && num_cross(x0+dx/2-1,x1,y1-i,y1-i ,box1->p,cs) < 2 /* 2 or 3 */ + && num_cross(x0+dx/2-1,x1,y1-y,y1-y ,box1->p,cs) < 2 ) + { if (loop(bp, 0,dy-1-dy/16,dx,cs,0,RI) + <4*loop(bp,dx-1,dy-1-dy/16,dx,cs,0,LE)) { Break;} + else ad=98*ad/100; + } + if( num_cross(x0,x1,y0+dy/2 , y0+dy/2,box1->p,cs) < 2 + || num_cross(x0,x1,y0+dy/3 , y0+dy/3,box1->p,cs) < 2 ) Break; // Jun00 + + if( num_cross(x0 ,x0 ,y0+dy/3 , y1-dy/4,box1->p,cs) != 1 ) + if( num_cross(x0+1 ,x0+1 ,y0+dy/3 , y1-dy/4,box1->p,cs) != 1 ) Break; + if (sdata->holes.num != 1) + if( num_hole(x0,x1-2,y0 ,y1 ,box1->p,cs,NULL) != 1 ) + // if( num_hole(x0,x1 ,y0 ,y1 ,box1->p,cs,NULL) != 1 ) + Break; + if( num_hole(x0,x1 ,y0+dy/3,y1-1 ,box1->p,cs,NULL) != 0 ) Break; + + if( loop(bp,0 ,0 ,x1-x0,cs,0,RI)<= + loop(bp,0 ,2 ,x1-x0,cs,0,RI) ) Break; + + if( loop(bp,dx-1,dy-1,x1-x0,cs,0,LE)> dx/4 + && loop(bp,dx-1,dy-2,x1-x0,cs,0,LE)> (dx+4)/8 ) ad=97*ad/100; + + x=loop(bp,dx-1,dy-1-dy/4,dx,cs,0,LE); + i=loop(bp,dx-1, dy/4,dx,cs,0,LE); if (abs(x-i)>dx/4) Break; + + for( x=dx/4;xdy/2) break; + i=loop(bp,x,dy-1,y1-y0,cs,0,UP); if (i>dy/2) break; + } if( xp,cs) == 1 ) + if( num_cross(x0 , x1, y0, y0,box1->p,cs) == 1 ) + if( loop(bp,dx-1, 0,y1-y0,cs,0,DO)> dy/4 + && loop(bp,dx-1,dy-1,y1-y0,cs,0,UP)> dy/4 ) Break; // ~o + if( loop(bp,dx/2,dy-1,y1-y0,cs,0,UP)> dy/4 ) Break; // ~q + + if (hchar) ad=98*ad/100; + if (gchar) ad=98*ad/100; + // handwritten-a (alpha) + Setac(box1,'a',ad); + break; + } + // --- test A_A_WITH_OGONEK 0x0104 Centr.Eur.Font ------------------------- + /* not sure if we should move this to a get_CentralEuropean-function */ + for(ad=d=100;dx>2 && dy>4;){ // min 3x4 + DBG( wchar_t c_ask='A'; ) + if (sdata->holes.num > 2) break; /* tolerant against a tiny hole */ + // first selection (grobes Sieb) + if( get_bw(dx/2,dx/2,dy-1-dy/8,dy-1,bp,cs,1) == 1 ) break; // ~B + if( num_cross(0,dx-1, 1 , 1 ,bp,cs)!=1 // 600dpi + && num_cross(0,dx-1, dy/8 , dy/8 ,bp,cs)!=1 + && num_cross(0,dx-1, dy/16 , dy/16 ,bp,cs)!=1 + && num_cross(0,dx-1, dy/8+1, dy/8+1,bp,cs)!=1 ) break; + if( num_cross(0,dx-1, dy-1 , dy-1 ,bp,cs)!=1 ) break; + if( num_cross(0,dx-1, dy/4 , dy/4 ,bp,cs)!=2 + && num_cross(0,dx-1, dy/3 , dy/3 ,bp,cs)!=2 ) break; + if ( num_cross( 0,dx/8,dy/8, 0,bp,cs)>0 ) break; // ~R + for(y=dy/8;y 1 ) break; + if( y==dy/2 ) break; i1=y; + if (dy>20) i1++; /* get arround some noise fat font */ + + x =loop(bp,0,i1,dx,cs,0,RI); if(x>3*dx/4) break; + x+=loop(bp,x,i1,dx,cs,1,RI); if(x>3*dx/4) break; i2=x; + x+=loop(bp,x,i1,dx,cs,0,RI); if(x<3*dx/8) break; i2=(x+i2)/2; + // hole (i2,i1) + y+=loop(bp,i2,y,dy,cs,1,DO); + y+=loop(bp,i2,y,dy,cs,0,DO); if(y>3*dy/4) ad=ad*99/100; + if (y>5*dy/6) break; + + if( sdata->holes.num != 1 || sdata->holes.hole[0].y1 >= dy-1-dy/4) break; + // if( num_hole ( x0, x1, y0, y1-dy/4 ,box1->p,cs,NULL) != 1 ) break; + // out_x(box1); + i3=0;i4=0; + for(x=dx/3;x<2*dx/3;x++){ + i4=num_cross(i2,x,y ,dy-1,bp,cs);if(i4<1 || i4>2) + i4=num_cross(i2,x,y+dy/16,dy-1,bp,cs);if(i4<1 || i4>2) break; + if(i4==1) i3=x; + } if(i4<1 || i4>2 || i3==0){ +// ToDo: g_debug_A(printf(" A: x,y,i4,i3= %d %d %d %d\n",x,y,i4,i3);) + break; + } + if( get_bw(dx-1-dx/4, dx-1, dy-1-dy/4, dy-1, bp,cs,1) != 1 ) break; + /* dy/4 changed to dy/6 because of screenfonts */ + /* there are strange fonts, one has a serif on the upper end of A */ + if ( num_cross( 0,dx/8,dy/6, 0,bp,cs)>0 ) break; + if ( num_cross(dx-1-dx/4,dx-1, 0,dy/6,bp,cs)>0 ) break; + + i1=loop(bp,dx-1, dy/4,dx,cs,0,LE); + i2=loop(bp,dx-1, dy/2,dx,cs,0,LE); + i3=loop(bp,dx-1,dy-1-dy/4,dx,cs,0,LE); + if( 2*i2+dx/4i1+i3 ) break; + + i1=loop(bp,0 , dy/4,dx,cs,0,RI); // linke senkr. linie + i2=loop(bp,0 , dy/2,dx,cs,0,RI); + i3=loop(bp,0 ,dy-1-dy/4,dx,cs,0,RI); + if( 2*i2+dx/4i1+i3 || i1i3+dx/16) break; if( i1+12c; +} + +static wchar_t ocr0_cC(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + pix *bp=sdata->bp; + int i,j,d,x,y,i1,i2,i3,i4,i5,hchar=sdata->hchar,gchar=sdata->gchar, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1,cs=sdata->cs; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + ad,t1; /* tmp-vars */ + wchar_t bc=UNKNOWN; + + // --- test c,C --------------------------------------------------- + for(ad=d=100;dx>2 && dy>2;){ // min 3x4 + DBG( wchar_t c_ask='c'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + if( get_bw(x0 , x0+dx/3,y0+dy/2, y0+dy/2,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/2, x0+dx/2,y1-dy/3, y1, box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/2, x0+dx/2,y0 , y0+dy/3,box1->p,cs,1) != 1 ) Break; + if( num_cross(x0,(x0+x1)/2,(y0+y1)/2,(y0+y1)/2,box1->p,cs) > 1 ) Break; // ~ocr-a-[ + + for(y=y0+dy/4;yp,cs,1) == 0 ) break; + if( y==y0+3*dy/4 ) Break; i1=y; // i1: upper end of right gap + + // measure thickness of line! + t1=loop(bp, 0,dy/2,dx,cs,0,RI); + t1=loop(bp,t1,dy/2,dx,cs,1,RI); + if (t1>dx/2) Break; + + for(y=i1,i2=0,x=x0+dx/2;xp,x0+dx/2,i1,dy,cs,0,DO); + if( i>i2 ) { i2=i; } + } if(i2p,x0+5*dx/8,i1,dy,cs,0,UP); + i =i1+1-loop(box1->p,x0+4*dx/8,i1,dy,cs,0,UP); if(iy0+ dy/4+t1/2) Break; // highest, i3: highest point below top-line + + for(y=i1;yp,cs,1) == 1 ) break; + if( y-i1p,cs) < 1 ) Break; // ~L + if (loop(box1->p,x0,y0+3*dy/4,dx,cs,0,RI)>dx/16) + if( num_cross(x0+dx/2,x1,i3 ,y1,box1->p,cs) < 1 + && num_cross(x0+dx/2,x1,y1-dy/4,y1,box1->p,cs) < 1 // may fail + && num_cross(x1 ,x1,y1-dy/4,y1,box1->p,cs) < 1 ) Break; // ~r + + i=1; + for(x=dx/2;x=cs + && getpixel(bp,x+1,y )< cs + && getpixel(bp,x+1,y-1)< cs + && getpixel(bp,x ,y-1)< cs ) { i=0;break; } + } + if(!i) ad=95*ad/100; // ~G + + i=loop(bp,0,dy/2,dx,cs,0,RI); + for(y=0;y=dy/4;y--){ + x =loop(bp,0,y,dx,cs,0,RI); + x+=loop(bp,x,y,dx,cs,1,RI); if(x>i5) i5=x; + i =loop(bp,x,y,dx,cs,0,RI); if(ii4+dx/32 ) break; // unusual for c, more a bad e? + } if( y>=dy/4 ) Break; + + if( !hchar ){ // test for e where the middle line is partly removed + x= loop(bp,0,dy/2,dx,cs,0,RI); + x=x +loop(bp,x,dy/2,dx,cs,1,RI); + y=dy/2-loop(bp,x,dy/2,dy,cs,0,UP)-1; + i=x +loop(bp,x,y,dx,cs,1,RI); + i=i +loop(bp,i,y,dx,cs,0,RI); + if( num_cross(x ,x ,1,dy/2,bp,cs) > 1 + || num_cross(x+1,x+1,1,dy/2,bp,cs) > 1 ) + if( num_cross(i-1,i-1,1,dy/2,bp,cs) > 1 + || num_cross(i ,i ,1,dy/2,bp,cs) > 1 ) Break; // ~bad e + } + if( dy>16 && dy>3*dx && hchar ){ // ~[ + x= loop(bp,0, dy/16,dx,cs,0,RI); + x=+loop(bp,0,dy-1-dy/16,dx,cs,0,RI); + i= loop(bp,0, dy/2 ,dx,cs,0,RI)*2; + if( i>=x ) + if( num_cross(0,dx-1,dy/4,dy/4,bp,cs) < 2 ) Break; + + } + if( get_bw(x0,x0,y0 ,y1 ,box1->p,cs,2) != 2 + && get_bw(x0,x1,y0 ,y0 ,box1->p,cs,2) != 2 + && get_bw(x0,x1,y1 ,y1 ,box1->p,cs,2) != 2 + && get_bw(x1,x1,y0+1,y1-1,box1->p,cs,1) != 1 ) Break; /* ~[ */ + + x =loop(bp, 0,dy/2,dx,cs,0,RI); + i =loop(bp,dx-1,dy/2,dx,cs,0,LE); + if( (i7 ) + if( loop(bp, 0,7*dy/8,dx,cs,0,RI) > x+dx/8 + && loop(bp, 0, dy/8,dx,cs,0,RI) > x+dx/8 + && loop(bp,dx-1,dy-1-dy/ 8,dx,cs,0,LE) + > loop(bp,dx-1,dy-1-dy/16,dx,cs,0,LE) + && loop(bp,dx-1, dy/ 8,dx,cs,0,LE) + > loop(bp,dx-1, dy/16,dx,cs,0,LE) ) Break; // ~( + +// printf(" hchar=%d i1=%d i2=%d %d\n",hchar,i1-y0,i2-y0,9*dy/16); + // ~G without characteristic crotchet + if (hchar && dy>15 && dx>7 && i2-y0<9*dy/16 && i1-y0<=dy/4) + if ( loop(bp,5*dx/8,i2-y0,dy,cs,0,DO) > 2*dy/8 ){ + Setac(box1,'G',90); + Break; + } + + if (hchar){ + i=1; + for(x=dx/2;x=cs + && getpixel(bp,x+1,y )< cs + && getpixel(bp,x+1,y-1)< cs + && getpixel(bp,x ,y-1)< cs ) { i=0;break; } + } + if (i) ad=98*ad/100; // ~( + if (dy>2*dx) ad=99*ad/100; + } + if( loop(bp,dx-1,dy/2,dx,cs,0,LE) < 6*dx/8 ) ad=98*ad/100; + + i= loop(bp,dx-1,dy/16,dx,cs,0,LE); + j= loop(bp,dx/2,0 ,dy,cs,0,DO); + if (i>=dx/2 && j>dy/8 && j>2 && j=3*dx && dy>12) ad=99*ad/100; // ( + i= loop(bp,dx-1,dy-1,dy,cs,0,UP); + j= loop(bp,dx/2,dy-1,dy,cs,0,UP); + if (i==0 && j>dy/8) ad=95*ad/100; // < + i= loop(bp,dx-1, 0,dy,cs,0,DO); + j= loop(bp,dx/2, 0,dy,cs,0,DO); + if (i==0 && j>dy/8) ad=95*ad/100; // < + if (loop(bp,0,dy-1-dy/8,dx,cs,0,RI)>= 3*dx/4) ad=98*ad/100; // < + if (loop(bp,0,dy-1-dy/8,dx,cs,0,RI)>=(dx+1)/2) ad=98*ad/100; // < + if (loop(bp,0, dy/8,dx,cs,0,RI)>=dx/2) ad=98*ad/100; // < + + if (gchar) ad=98*ad/100; // could happen for 5x7 font + bc=((hchar)?'C':'c'); + Setac(box1,bc,ad); + break; + } + return box1->c; +} + +static wchar_t ocr0_lL(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + pix *bp=sdata->bp; + int i,j,d,x,y,i0,i1,i2,i3,i4,hchar=sdata->hchar,gchar=sdata->gchar, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1,cs=sdata->cs; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + ad; /* tmp-vars */ + + // --- test L --------------------------------------------------- + for(ad=d=100;dx>2 && dy>4;){ // min 3x4 + DBG( wchar_t c_ask='L'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + i=loop(bp,dx-1,dy/2,dx,cs,0,LE); + if (i<3 && dy>8) {Break;} + if (ip,x0 ,y,dx,cs,0,RI); + j=loop(box1->p,x0+j,y,dx,cs,1,RI); if( j>i ){ i=j;i1=y; } + } if( i<3*dx/4 ) Break; i1=i; // length of horizontal line + // line thickness (i2) + i=loop(box1->p,x0 ,y0+dy/2,dx,cs,0,RI); if( i>dx/2 ) Break; + j=loop(box1->p,x0+i,y0+dy/2,dx,cs,1,RI); if( i+j>dx/2 ) Break; i2=j; + if (loop(bp,dx-1, 0,dx,cs,0,LE)dx/2 + && loop(bp, 0,5*dy/8,dx,cs,0,RI)p,x0 ,y,dx,cs,0,RI); + if ( j>(dx+2)/4+(y1-dy/4-y)*dx/2/dy ) { i=0; break; } + x=loop(box1->p,x0+j,y,dx,cs,1,RI); + if( ((x>i2+1 || 4*x<3*i2) && y>y0+dy/8) || 4*x>3*i1 ) i=0; + } if( !i ) Break; + if( num_cross(0, dx-1-dx/8, dy-1-dy/2, dy-1-dy/2,bp,cs) != 1 ) Break; + if( num_cross(0, dx-1 , dy/3 , dy/3,bp,cs) != 1 ) Break; + if( num_cross(0, dx-1 , dy/8 , dy/8,bp,cs) != 1 ) Break; + if (loop(bp,0,dy-1,dx,cs,0,RI) + -loop(bp,0,dy-3,dx,cs,0,RI)>1+dx/16) ad=96*ad/100; // ~c + if (loop(box1->p,x0+dx/4,y1,dy,cs,0,UP)>1+dy/16) ad=99*ad/100; // ~4 + + if ( gchar) ad=98*ad/100; + if (!hchar) ad=99*ad/100; + if (5*dx<2*dy && loop(box1->p,x0,y1,dx,cs,0,RI)>dx/4) ad=99*ad/100; // ~l + Setac(box1,'L',ad); + break; + } + // --- test l --------------------------------------------------- + // recognize a "l" is a never ending problem, because there are lots of + // variants and the char is not very unique (under construction) + // --- test italic l --------------------------------------------------- + // --- test l ~italic (set flag-italic) -------------------------------- + // if unsure d should be multiplied by 80..90% + for(ad=d=100; dy>dx && dy>5;){ // min 3x4 + DBG( wchar_t c_ask='l'; ) + if( box1->dots>0 ) Break; + if( num_cross(0, dx-1,dy/2,dy/2,bp,cs) != 1 + || num_cross(0, dx-1,dy/4,dy/4,bp,cs) != 1 ) Break; + // mesure thickness + for(i1=0,i2=dx,y=dy/4;yi1 ) { i1=j; } // thickest + if( j2*i2 ) Break; + if(box1->m3 && dy<=box1->m3-box1->m2) ad=94*ad/100; + if( box1->m2-box1->m1>1 && y0>=box1->m2 ) ad=94*ad/100; + for(i0=0,i3=0,y=0;yi3 ) { i3=j; } // widest space + j = loop(bp,j,y,dx,cs,1,RI); + if( j>i0 ) { i0=j;i3=0; } // thickest + } + if ( i0>4*i2 || 3*i3>2*dx) + if ( loop(bp,dx-1,dy-1,dx,cs,0,LE)>3*dx/8 + || loop(bp, 0,dy-1,dx,cs,0,RI)>3*dx/8) Break; // ~7 + + // detect serifs + x =loop(bp,0, 0,dx,cs,0,RI); + i3=loop(bp,x, 0,dx,cs,0,RI); + x =loop(bp,0, 1,dx,cs,0,RI); + x =loop(bp,x, 1,dx,cs,0,RI); if(x>i3) i3=x; + x =loop(bp,0,dy-1,dx,cs,0,RI); + i4=loop(bp,x,dy-1,dx,cs,0,RI); + x =loop(bp,0,dy-2,dx,cs,0,RI); + x =loop(bp,x,dy-2,dx,cs,0,RI); if(x>i4) i4=x; + if( i3>i1+dx/8+1 && i4>i1+dx/8+1 ) Break; // ~I + + for(i=dx,j=0,y=1;yi+1) break; i=x; + if( num_cross(0,dx-1,y ,y ,bp,cs)==2 + && num_cross(0,dx-1,y+1+dy/32,y+1+dy/32,bp,cs)==2 ) j=1; + } if ( y3) + if( get_bw(dx-1-dx/8,dx-1,0,dy/6,bp,cs,1) != 1 ) + if( get_bw(dx-1-dx/8,dx-1,0,dy/2,bp,cs,1) == 1 ) Break; + + if( get_bw(dx-1-dx/8,dx-1,dy/4,dy/3,bp,cs,1) != 1 ) // large I ??? + if( get_bw(0 ,dx/8,dy/4,dy/3,bp,cs,1) != 1 ) + if( get_bw(dx-1-dx/8,dx-1,0 ,dy/8,bp,cs,1) == 1 ) + if( get_bw(0 ,dx/8,0 ,dy/8,bp,cs,1) == 1 ) ad=ad*97/100; + if( get_bw(dx-1-dx/8,dx-1,dy/2,dy-1,bp,cs,1) != 1 ) // r ??? + if( get_bw(0 ,dx/8,dy/2,dy-1,bp,cs,1) == 1 ) + if( get_bw(dx-1-dx/8,dx-1,0 ,dy/3,bp,cs,1) == 1 ) + if( get_bw(0 ,dx/8,0 ,dy/3,bp,cs,1) == 1 ) Break; + + for( y=1;y<12*dy/16;y++ ) + if( num_cross(0, dx-1, y , y ,bp,cs) != 1 // sure ? + && num_cross(0, dx-1, y-1, y-1,bp,cs) != 1 ) break; + if( y<12*dy/16 ) Break; + + if(dx>3){ + for( y=dy/2;yy-1-5*dy/16;y>=dy/5;y--){ // rechts abfallende Kante/Knick? + i=loop(bp,bp->x-1,y,x1-x0,cs,0,LE); + if( i-2-dx/16>=x ) break; + if( i=dy/5 ) Break; + + // test ob linke Kante gerade + for(x=0,y=bp->y-1-dy/5;y>=dy/5;y--){ // rechts abfallende Kante/Knick? + i=loop(bp,0,y,x1-x0,cs,0,RI); + if( i+2+dx/16x ) x=i; + } + if (y>=dy/5 ) Break; + if (box1->m4 && y1m4) + if ( get_bw(x0,x1,y1+1,box1->m4+dy/8,box1->p,cs,1) == 1 ) + ad=ad*97/100; // unsure !l| + i=loop(bp,dx-1,dy/16,dx,cs,0,LE); + j=loop(bp,dx-1,dy/2 ,dx,cs,0,LE); + if( i>3 && j>3 ) + if( get_bw(dx-1-i/2,dx-1-i/2,0,dy/2,bp,cs,1) == 1 ) Break; // ~t + + for(y=5*dy/8;y8 + && loop(bp, 0,3*dy/4,dx,cs,0,RI)>=dx/4 + && loop(bp, 0,7*dy/8,dx,cs,0,RI)<=dx/8 + && loop(bp,dx-1,3*dy/4,dx,cs,0,LE)<=dx/8 + && loop(bp,dx-1,7*dy/8,dx,cs,0,LE)<=dx/8 ) Break; // ~J + + if ( 2*i3>5*i1 ) // hmm \tt l can look very similar to 7 + if ( loop(bp,0,dy/4,dx,cs,0,RI)>dx/2 + && get_bw(0,dx/8,0,dy/4,bp,cs,1) == 1 ) Break; // ~7 + + if ( loop(bp,dx-1,dy/2,dx,cs,0,LE)>dx/2 + && get_bw(3*dx/4,dx-1,3*dy/4,dy-1,bp,cs,1) == 1) { + if (loop(bp,0,dy-1,dx,cs,0,RI)2*dy) ad=99*ad/100; // ~L + if(5*dx>3*dy) ad=99*ad/100; // ~L + } + if(!hchar){ // right part (bow) of h is never a l + if( get_bw(dx/4,dx/4, 0,dy/4,bp,cs,1) == 1 + && get_bw(dx/4,dx/4,dy/2,dy-1,bp,cs,1) == 0 ) Break; + } + if( dx>3 && dy>3*dx ) + if( loop(bp,dx/4,dy-1 ,dy,cs,0,UP)< dy/4 + && loop(bp, 0,dy-1-dy/8,dx,cs,0,RI)>=dx/2 + && loop(bp,dx-1,dy-1-dy/8,dx,cs,0,LE)<=dx/4 ){ + ad=98*ad/100; // ~] + if ( loop(bp,dx-1,dy/2,dx,cs,0,LE)==0 ) Break; + } + + for(x=0;xi ) break; + } + if( x>=loop(bp,0,y+1,dx,cs,0,RI) ) + if( loop(bp,0 ,0,dy,cs,0,DO)>1 ) + if( loop(bp,0 ,0,dy,cs,0,DO) + - loop(bp,dx/16+1,0,dy,cs,0,DO) < dx/16+1 ) Break; // ~1 Jul00,Nov00 + if( num_cross(0,dx/2,y-1,y-1,bp,cs)==2 ) Break; // ~1 + } + if(dx<8 && dy<12){ // screen font + i= loop(bp,0,0,dy,cs,0,DO); + if( loop(bp,dx/2,1,dy,cs,1,DO)>=dy-2 + && loop(bp,0,dy/2,dx,cs,0,RI)>=2 + && i>1 && ip,cs,2) != 2 + && get_bw(x0,x1,y0 ,y0 ,box1->p,cs,2) != 2 + && get_bw(x0,x1,y1 ,y1 ,box1->p,cs,2) != 2 + && get_bw(x0,x0+dx/4,y0+1+dy/16,y1-1-dy/16,box1->p,cs,1) != 1 ) Break; /* ~] */ + i=loop(bp,dx-1,dy/2,dx,cs,0,LE); + if( loop(bp, 0,dy/2,dx,cs,0,RI)>=dx/2 + && (ip,cs,2) != 2 + && get_bw(x0,x1,y0 ,y0 ,box1->p,cs,2) != 2 + && get_bw(x0,x1,y1 ,y1 ,box1->p,cs,2) != 2 + && get_bw(x1-dx/4,x1,y0+1+dy/16,y1-1-dy/16,box1->p,cs,1) != 1 ) Break; /* ~[ */ + + x =loop(bp, 0,dy/2,dx,cs,0,RI); // konvex/konkav? ~() + i =loop(bp,dx-1,dy/2,dx,cs,0,LE); + if( loop(bp, 0,7*dy/8,dx,cs,0,RI) > x+dx/8 + && loop(bp, 0, dy/8,dx,cs,0,RI) > x+dx/8 + && loop(bp,dx-1,7*dy/8,dx,cs,0,LE) < i-dx/8 + && loop(bp,dx-1, dy/8,dx,cs,0,LE) < i-dx/8 ) Break; // ~( + if( loop(bp, 0,7*dy/8,dx,cs,0,RI) < x-dx/8 + && loop(bp, 0, dy/8,dx,cs,0,RI) < x-dx/8 + && loop(bp,dx-1,7*dy/8,dx,cs,0,LE) > i+dx/8 + && loop(bp,dx-1, dy/8,dx,cs,0,LE) > i+dx/8 ) Break; // ~) + + i= loop(bp, 0, 0,dy,cs,0,DO); // horizontal line? + if(dy>=12 && i>dy/8 && iloop(bp,dx-1, i,dx,cs,0,LE) + || loop(bp,dx-1,3*dy/16,dx,cs,0,LE)-dx/8 + >loop(bp,dx-1, i+1,dx,cs,0,LE) ) + if( loop(bp,dx-1,8*dy/16,dx,cs,0,LE)-dx/8 + >loop(bp,dx-1, i,dx,cs,0,LE) + || loop(bp,dx-1,8*dy/16,dx,cs,0,LE)-dx/8 + >loop(bp,dx-1, i+1,dx,cs,0,LE) ) + if( loop(bp, 0,3*dy/16,dx,cs,0,RI)-dx/8 + >loop(bp, 0, i,dx,cs,0,RI) + || loop(bp, 0,3*dy/16,dx,cs,0,RI)-dx/8 + >loop(bp, 0, i+1,dx,cs,0,RI) ) + if( loop(bp, 0,8*dy/16,dx,cs,0,RI)-dx/8 + >loop(bp, 0, i,dx,cs,0,RI) + || loop(bp, 0,8*dy/16,dx,cs,0,RI)-dx/8 + >loop(bp, 0, i+1,dx,cs,0,RI) ) Break; // ~t + if( loop(bp, 0,i-1,dx,cs,0,RI)>1 && dx<6 ) Break; // ~t + if( loop(bp, 0,8*dy/16,dx,cs,0,RI)>dx/8 + && loop(bp, 0, i,dx,cs,1,RI)>=dx-1 + && loop(bp,dx-1,8*dy/16,dx,cs,0,LE)>dx/8 + && loop(bp,dx-1, i-1,dx,cs,0,LE)>dx/8 ) Break; // ~t + } +// if( vertical_detected && dx>5 ) + if( loop(bp,0, 1,dx,cs,0,RI)>=dx/2 + && ( loop(bp,0,dy-2,dx,cs,0,RI)<=dx/8 + || loop(bp,0,dy-1,dx,cs,0,RI)<=dx/8 ) ) + if( ( loop(bp,dx-1, 0,dx,cs,0,LE)<=dx/8 + || loop(bp,dx-1, 1,dx,cs,0,LE)<=dx/8 ) + && loop(bp,dx-1,dy-2,dx,cs,0,LE)>=dx/2 ) ad=98*ad/100; // ~/ + + if( get_bw(x0,x1,y0,y1,box1->p,cs,2) == 0 ) ad=99*ad/100; + + if (!hchar || loop(bp,0,dy/4,dx,cs,0,RI)>dx/2){ // ~z + i=loop(bp,0,dy/16 ,dx,cs,0,RI); + i=loop(bp,i,dy/16 ,dx,cs,1,RI); j=i; + i=loop(bp,0,dy/16+1,dx,cs,0,RI); + i=loop(bp,i,dy/16+1,dx,cs,1,RI); if (i>j) j=i; + i=loop(bp,0,dy/16+2,dx,cs,0,RI); + i=loop(bp,i,dy/16+2,dx,cs,1,RI); if (i>j) j=i; + if (j*4>=dx*3) ad=98*ad/100; // ~z + if (j*8>=dx*7) ad=96*ad/100; // ~z + } + + if( get_bw(x0,x0,y1,y1,box1->p,cs,2) == 0 ) ad=99*ad/100; + if( get_bw(x1,x1,y1,y1,box1->p,cs,2) == 0 ) ad=99*ad/100; + if (ad==100) ad--; /* I have to fix that: + .@@@@.<- + @@..@@ + ....@@ + ....@@< + ...@@. + ..@@@. + ..@@.. + .@@... + @@.... + @@@@@@<- + */ + if(!hchar) ad=ad*99/100; + if( gchar) ad=ad*99/100; + Setac(box1,'l',ad); +// if( i<100 ) Break; ???? +// if( loop(bp,0, 1,dx,cs,0,RI)<=dx/8 +// && loop(bp,0,dy/2,dx,cs,0,RI)<=dx/8 +// && loop(bp,0,dy-2,dx,cs,0,RI)<=dx/8 ) vertical_detected=1; + break; + } + return box1->c; +} + +static wchar_t ocr0_oO(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + pix *bp=sdata->bp; + int i,j,d,x,y,hchar=sdata->hchar,gchar=sdata->gchar, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1,cs=sdata->cs; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + ad; /* tmp-vars */ + wchar_t bc=UNKNOWN; + + // --- test o,O --------------------------------------------------- + for(ad=d=100;dx>2 && dy>3;){ // min 3x4 + DBG( wchar_t c_ask='o'; ) + if (sdata->holes.num !=1 ) Break; + if( get_bw(x0 , x0+dx/2,y0+dy/2 , y0+dy/2,box1->p,cs,1) != 1 ) Break; + if( get_bw(x1-dx/2 , x1 ,y0+dy/2 , y0+dy/2,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/2 , x0+dx/2,y1-dy/2 , y1, box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/2 , x0+dx/2,y0 , y0+dy/2,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/2 , x0+dx/2,y0+dy/2 , y1-dy/3,box1->p,cs,1) != 0 ) Break; + if (sdata->holes.hole[0].y0 > dy/3 + || sdata->holes.hole[0].y1 < dy-1-dy/3) Break; + + if( num_cross(x0+dx/2 ,x0+dx/2 ,y0, y1 ,box1->p,cs) != 2 + && num_cross(x0+dx/2+1,x0+dx/2+1,y0, y1 ,box1->p,cs) != 2 ) Break; + if( num_cross(x0+dx/3,x1-dx/4,y0 , y0 ,box1->p,cs) != 1 ) // AND + if( num_cross(x0+dx/3,x1-dx/4,y0+1 , y0+1,box1->p,cs) != 1 ) Break; + if( num_cross(x0+dx/4,x1-dx/3,y1 , y1 ,box1->p,cs) != 1 ) // against "rauschen" + if( num_cross(x0+dx/4,x1-dx/3,y1-1 , y1-1,box1->p,cs) != 1 ) Break; + if( num_cross(x0 ,x0 ,y0+dy/3 , y1-dy/3,box1->p,cs) != 1 ) + if( num_cross(x0+1 ,x0+1 ,y0+dy/3 , y1-dy/3,box1->p,cs) != 1 ) Break; + if( num_cross(x1 ,x1 ,y0+dy/3 , y1-dy/3,box1->p,cs) != 1 ) + if( num_cross(x1-1 ,x1-1 ,y0+dy/3 , y1-dy/3,box1->p,cs) != 1 ) Break; + + if( loop(bp,0 ,0 ,x1-x0,cs,0,RI)<= + loop(bp,0 ,2 ,x1-x0,cs,0,RI) ) Break; + + x=loop(bp,dx-1,dy-1-dy/3,x1-x0,cs,0,LE); // should be minimum + for( y=dy-1-dy/3;ydx/8 ) + if( loop(bp,0 , dy/16,dx,cs,0,RI)dx/8 ) + if( loop(bp,0 ,dy-1-dy/16,dx,cs,0,RI)p,cs,1) == 0 + && get_bw(x1-dx/32,x1,y1-dy/32,y1,box1->p,cs,1) == 0 +// && ( get_bw(x0,x0+dx/32,y0,y0+dy/32,box1->p,cs,1) == 1 + && ( get_bw(0,dx/32,0,dy/32,bp,cs,1) == 1 + || get_bw(x0,x0+dx/32,y1-dy/32,y1,box1->p,cs,1) == 1 ) ) Break; // ~D + + // search lowest inner white point + for(y=dy,j=x=0;x 1 ) ad=99*ad/100; // ~a \it a + for(y=0;y 2 ) ad=98*ad/100; // ~a \it a + if (loop(bp,dx-1,dy-1,x1-x0,cs,0,LE)dy/8 + || num_cross(0,dx-1, 0, 0,bp,cs) > 1 + || num_cross(0,dx-1,dy-1,dy-1,bp,cs) > 1 + ) ad=98*ad/100; // ~bq + + // corrections for wrong recognized m1,m2 (all chars of same high) + if (hchar && 2*y0m1+box1->m2) i=1; else i=0; + if (gchar) ad=99*ad/100; + bc='o'; + if (i){ bc='O'; } + if ( bc=='O' && ad>99) ad=99; /* we can never 100% sure, 0O */ + if (bc=='o' && (!hchar) && y0m2) { + Setac(box1,'O',98*ad/100); + Setac(box1,'0',98*ad/100); + } + Setac(box1,bc,ad); + if (bc=='O') Setac(box1,'0',ad); + if (bc=='o') Setac(box1,'0',98*ad/100); + break; + } + return box1->c; +} + +static wchar_t ocr0_pP(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + pix *bp=sdata->bp; + int i,j,d,x,y,i1,i2,i3,i4,hchar=sdata->hchar,gchar=sdata->gchar, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1,cs=sdata->cs; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + ad; /* tmp-vars */ + wchar_t bc=UNKNOWN; + + // --- test pP --------------------------------------------------- + for(ad=d=100;dx>2 && dy>3;){ // min 3x4 + DBG( wchar_t c_ask='p'; ) + if (sdata->holes.num > 2) Break; /* tolerant against a tiny hole */ + if( get_bw(0 , dx/2,3*dy/4,3*dy/4,bp,cs,1) != 1 ) Break; + if( get_bw(0 , dx/2, dy/2, dy/2,bp,cs,1) < 1 ) Break; + if( get_bw(dx/4, dx-1, dy/4, dy/4,bp,cs,1) != 1 ) Break; + i= loop(bp,dx-1,3*dy/4,dx,cs,0,LE); if (ip,cs) != 2 ) + if( num_cross(x0+dx/2 ,x0+dx/2 , y0, y1-3*dy/16,box1->p,cs) != 2 ) + if( num_cross(x0+dx/2+1,x0+dx/2+1, y0, y1-3*dy/16,box1->p,cs) != 2 ) Break; + if( num_cross(0,dx-1,7*dy/8 ,7*dy/8 ,bp,cs) != 1 ) + if( num_cross(0,dx-1,7*dy/8-1,7*dy/8-1,bp,cs) != 1 ) Break; + if( num_cross(0,dx-1, dy/4 , dy/4 ,bp,cs) != 2 ) + if( num_cross(0,dx-1, dy/4-1, dy/4-1,bp,cs) != 3 ) // \it p with nice kurve + if( num_cross(0,dx-1, dy/4 , dy/4 ,bp,cs) != 2 ) + if( num_cross(0,dx-1, dy/4+1, dy/4+1,bp,cs) != 2 ) Break; + + i= loop(bp,0,dy/2,dx,cs,0,RI); if(i<1) i++; + if( num_cross(i-1,dx-1, dy/4 , dy/4 ,bp,cs) != 2 ) + if( num_cross(i-1,dx-1, dy/4+1, dy/4+1,bp,cs) != 2 ) Break; + + i1= loop(bp, 0,3*dy/8,dx,cs,0,RI); if (i1>=dx/2) ad=90*ad/100; + i2=i1+loop(bp,i1,3*dy/8,dx,cs,1,RI); // upper x-position of v line + i3= loop(bp, 0,7*dy/8,dx,cs,0,RI); + i4=i3+loop(bp,i3,7*dy/8,dx,cs,1,RI); // lower x-position of v line + // out_x(box1);printf(" p:"); + for ( y=dy/8; y<7*dy/8; y++ ){ + x=i2+ (8*y-3*dy)*(i4-i2)/(4*dy); // right limit of line + i= loop(bp,0,y,dx,cs,0,RI); if(i>x+dx/16) break; + } if ( y<7*dy/8 ) Break; + for ( x=0,j=y=dy/3; yx ) { x=i; j=y; } if(x>dx/2) break; + } if ( x=dx) Break; + if( get_bw(3*dx/4,dx-1, y , dy-1,bp,cs,1) == 1 ) Break; + + i=num_hole (x0,x1,y0,y1-dy/5,box1->p,cs,NULL); + // j=num_hole (x0,x1,y0,y1 ,box1->p,cs,NULL); + j=sdata->holes.num; + + if (j!=1 && dx< 8) ad=96*ad/100; + if (j!=1 && dx>=8) ad=98*ad/100; + if (i==0 && j==0) ad=90*ad/100; /* some times there is a small gap */ + if (i>1 || j>1 || j>i) Break; + + // check for serif F + i= loop(bp,bp->x-1, bp->y/4, dx ,cs,0,LE); + i=i+loop(bp,bp->x-1-i,bp->y/4, dx ,cs,1,LE); + j= loop(bp,bp->x-1-i,bp->y/4,3*dy/4,cs,0,DO); + if (j>dy/2) ad=80*ad/100; // its an serif-F + + if( ((!hchar) && (!gchar)) || (hchar && gchar)) ad=95*ad/100; + bc='p'; + if( hchar && ((!gchar) || dy<14)) bc='P'; + if ( hchar && gchar) ad=98*ad/100; // \ss sz + if ((!hchar) && !gchar) ad=98*ad/100; + + Setac(box1,bc,ad); + break; + } + return box1->c; +} + +static wchar_t ocr0_qQ(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + pix *bp=sdata->bp; + int i,j,d,x,y,hchar=sdata->hchar,gchar=sdata->gchar, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1,cs=sdata->cs; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + ad; /* tmp-vars */ + + // --- test Q --------------------------------------------------- + for(ad=d=100;dx>2 && dy>4;){ // min 3x4 + DBG( wchar_t c_ask='Q'; ) + if (sdata->holes.num > 2) Break; /* tolerant against a tiny hole */ + if( get_bw(x0 ,x0+dx/3,y0+dy/3,y0+dy/3,box1->p,cs,1) != 1 ) Break; + if( get_bw(x1-dx/3,x1 ,y0+dy/3,y0+dy/3,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/2,x0+dx/2,y1-dy/3,y1, box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/2,x0+dx/2,y0 ,y0+dy/4,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/2,x0+dx/2,y0+dy/3,y1-dy/2,box1->p,cs,1) == 1 ) Break; + if( get_bw(x1 ,x1 ,y0 ,y0 ,box1->p,cs,1) == 1 ) Break; //alpha + if( num_cross(x0+dx/2,x0+dx/2,y0 , y1 ,box1->p,cs) < 2 ) Break; + if( num_cross(x0+dx/5,x1-dx/5,y0 , y0 ,box1->p,cs) != 1 ) // AND + if( num_cross(x0+dx/5,x1-dx/5,y0+1 , y0+1 ,box1->p,cs) != 1 ) Break; + if( num_cross(x0 ,x0 ,y0+dy/3 , y1-dy/3,box1->p,cs) != 1 ) + if( num_cross(x0+1 ,x0+1 ,y0+dy/3 , y1-dy/3,box1->p,cs) != 1 ) Break; + if( get_bw(x1 ,x1 ,y1-dy/8 , y1 ,box1->p,cs,1) == 0 ) + if( num_cross(x1 ,x1 ,y0+dy/3 , y1-dy/3,box1->p,cs) != 1 ) + if( num_cross(x1-1 ,x1-1 ,y0+dy/3 , y1-dy/3,box1->p,cs) != 1 ) Break; + // i=num_hole(x0,x1,y0,y1,box1->p,cs,NULL); + i=sdata->holes.num; + if(!i) Break; + if( i!=1 && (i!=2 || num_hole(x0,x1,y0+dy/2,y1,box1->p,cs,NULL)!=1) ) Break; + x=x1;y=y1; + turmite(box1->p,&x,&y,x0,x1,y0,y1,cs,LE,ST); if( xp,&x,&y,x0,x1,y0,y1,cs,ST,LE); + if( x 5*dx/8 ) Break; // ~4 Okt00 + + x= loop(bp,dx-1,3*dy/8,dy,cs,0,LE); if( x>dx/4 ) Break; + if( loop(bp,dx-1-x,0 ,dy,cs,0,DO) + <= loop(bp,dx-2-x,0 ,dy,cs,0,DO) ) Break; // 4 + + if( loop(bp,dx-1,dy-2,dx,cs,0,LE) + <= loop(bp,dx-1,dy/2,dx,cs,0,LE) ) + if( loop(bp, 1,dy-1,dy,cs,0,UP) + <= loop(bp,dx/2,dy-1,dy,cs,0,UP) ) + if( loop(bp, 0,dy-2,dx,cs,0,RI)>dx/2 ) + if( loop(bp, 0, 0,dx,cs,0,RI)>dx/2 ) Break; // 4 + + if( loop(bp,dx-1,3*dy/4,dx,cs,0,LE) + + loop(bp, 0,3*dy/4,dx,cs,0,RI) + < loop(bp,dx-1,2*dy/4,dx,cs,0,LE) + + loop(bp, 0,2*dy/4,dx,cs,0,RI) ) ad=94*ad/100; // 4 + if( loop(bp,0 ,3*dy/4,dx,cs,1,RI) >= dx ) ad=94*ad/100; // 4 + + + if( loop(bp,dx-1,dy/3,dx,cs,0,LE)> dx/4 ) Break; + j=loop(bp,dx/2,dy-1,dy,cs,0,UP); + if (j>1 && j>dy/8) { + if( get_bw(0,dx/2,dy-1-j/2,dy-1-j/2,bp,cs,1) == 1 ) { // ~RA + if (j<5) ad=95*ad/100; + else Break; + } + } + + // italic a + for(i=0,y=0;y 2 ) i++; if(i>dy/8) Break; // ~a \it a + if (i>0) ad=99*ad/100; + + // ~o look at the lower right side for falling line + for(j=x=0,y=dy/2;yx){ x=i; } + if (x-i>j) j=x-i; + if( j>dx/16 ) Break; // falling line detected + } + if (j==0) Break; // no falling line => no Q + if (j<=dx/16) ad=98*ad/100; + if(y1<=box1->m3) ad=98*ad/100; // ~q no underlength! rare + if(!hchar) ad=96*ad/100; + Setac(box1,'Q',ad); + break; + } + // --- test q --------------------------------------------------- + for(ad=d=100;dx>2 && dy>3;){ // min 3x4 + DBG( wchar_t c_ask='q'; ) + if (sdata->holes.num > 2) Break; /* tolerant against a tiny hole */ + for ( y=y0; 2*y<=y0+y1; y++ ){ // detect ring + if( num_cross(x0,x1, y, y,box1->p,cs) == 2 ) Break; + } if (2*y>y0+y1) Break; /* < */ + for ( y=(y0+y1)/2; y<=y1; y++ ){ // detect vert line + if( num_cross(x0, x1, y, y,box1->p,cs) == 1 + && num_cross(x0,x0+dx/2, y, y,box1->p,cs) == 0 ) Break; + } if (y>y1) Break; /* O (y==y1 for 4x6font-q) */ + for ( x=0,j=y=y0+dy/3; y<=y1-dy/8; y++ ){ // detect baseline + i=loop(box1->p,x0,y,dx,cs,0,RI); + if ( i>x ) { x=i; j=y; } + if ( x>dx/2 ) break; + } if ( x=dx) Break; + if (y1-j+1p,cs) != 0 ) ad=96*ad/100; // ~g + if( loop(box1->p,x0+dx/16,j,dy,cs,0,UP)<1+dy/16 ){ + ad=97*ad/100; + if (hchar || !gchar) Break; // 4 + } + if( loop(box1->p,x0+dx/16,j-dy/32-1,dy,cs,1,RI)>=dx-dx/8 + || loop(box1->p,x0+dx/16,j-dy/16-1,dy,cs,1,RI)>=dx-dx/8 ){ + ad=96*ad/100; // 4 + } + if( get_bw(x1-dx/3, x1, y0+dy/3, y0+dy/3,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0, x0+dx/3, y0+dy/3, y0+dy/3,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0, x0+dx/4, y1-dy/8, y1-dy/9,box1->p,cs,1) == 1 ) Break; + if( get_bw(x0, x0+dx/4, y1-dy/5, y1-dy/9,box1->p,cs,1) == 1 ) ad=99*ad/100; + if( num_cross(x0+dx/2,x0+dx/2, y0, j ,box1->p,cs) != 2 ) Break; + // if( num_hole (x0 ,x1 , y0, y1 ,box1->p,cs,NULL) != 1 ) + if (sdata->holes.num != 1) + { if (dx<16) ad=98*ad/100; else Break; } + if( num_hole (x0 ,x1 , y0, j ,box1->p,cs,NULL) != 1 ) + { if (dx<16) ad=98*ad/100; else Break; } + // ~\it g + if( loop(bp,0,dy-1-dy/4,dx,cs,0,RI)>5*dx/8 + && get_bw(dx/4,dx/4,dy-1-dy/4,dy-1,bp,cs,1)==1 ) Break; // ~\it g + // what about unsure m1-m4? + if(!gchar){ ad=ad*99/100; } // ~4 + if( hchar){ ad=ad*99/100; } // ~49 + Setac(box1,'q',ad); + break; + } + return box1->c; +} + +static wchar_t ocr0_iIjJ(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + pix *bp=sdata->bp; + int i,j,d,x,y,i1,i2,i3,i4,i5,hchar=sdata->hchar,gchar=sdata->gchar, + ax,ay,bx,by,cx,cy,ex,ey, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1,cs=sdata->cs; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + ad,ya,yb,yc,yd,ye,yf,xa,xb, /* tmp-vars */ + (*aa)[4]=sdata->aa; /* the for line ends, (x,y,dist^2,vector_idx) */ + + // --- test i --------------------------------------------------- + // if(box1->dots==1) // what about \it neighbouring ij + for(ad=d=100;dy>3 && dx>0;){ // min 3x4 without dot + DBG( wchar_t c_ask='i'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + // ToDo: ':' check that high of dot is smaller than the vert. line! + /* + * o <== ya + * o + * + * ooo <== yb + * o + * o + * o + * ooo + */ + ya=y0; + if (box1->dots!=1) ad=98*ad/100; + while(dy>3*dx && box1->m2){ // test for vertical i without detected dot + i= loop(bp,dx/2,dy-1 ,dy,cs,0,UP); + if (dy-1-im3-2) break; + i+=loop(bp,dx/2,dy-1-i,dy,cs,1,UP); + // distance upper end to m2 > (m2-m1)/3 + if (3*abs(dy-1-i-box1->m2)>box1->m2-box1->m1) break; + if( get_bw(x0,x1,y0,(box1->m1+box1->m2)/2,box1->p,cs,1) == 1 ) + if( get_bw(x0,x1,y1-i ,y1-i ,box1->p,cs,1) == 0 + || get_bw(x0,x1,y1-i-1,y1-i-1,box1->p,cs,1) == 0 + || get_bw(x0,x1,y1-i-2,y1-i-2,box1->p,cs,1) == 0 ) + { + Setac(box1,'i',ad); + return 'i'; /* beleave me, thats an "i"! */ + } break; + } +// if( box1->dots!=1 ) Break; + if( box1->m2 && 2*y0>=box1->m2+box1->m1 ) ya=box1->m1; + +// out_x(box1); + for (y=ya;2*yp,cs,1) == 1 ) break; + if (2*y>=ya+y1) Break; // hmm, gap only, no dot? + ya=y; + if (box1->m2 && ya>box1->m2+2) Break; + for ( ;2*yp,cs,1) != 1 ) break; + if (2*y>=ya+y1) Break; // hmm no gap + for ( ;2*yp,cs,1) == 1 ) break; + yb=y; + if (5*yb>=3*ya+2*y1) ad=99*ad/100; // large gap + if (2*yb>= ya+ y1) ad=97*ad/100; // very large gap, ~: + if (5*yb>=2*ya+3*y1) Break; // huge gap, ~: + if (loop(bp,dx-1,y+(y1-ya+1)/32,dx,cs,0,LE)>dx/2) // unusual (right part of ouml) + ad=95*ad/100; + + // printf(" num_cross dy/2=%d %d\n",dy/2, num_cross(0,dx-1,dy/2,dy/2,bp,cs)); + // printf(" dots=%d\n",box1->dots); out_x(box1); + // \sl ~f. ! + for (y=y1;y>ya;y--) if( get_bw(x0,x1,y,y,box1->p,cs,1) != 1 ) break; + if (y>(ya+3*y1)/4) Break; + if (y>(ya+2*y1)/3) ad=96*ad/100; + + y=(y1-yb+1)/2+yb-y0; /* only one vertical line, italic i is more an tall S */ + if( num_cross(0,dx-1,y,y,bp,cs) != 1 ) Break; + for(;y<=y1-y0;y++){ if( num_cross(0,dx-1,y,y,bp,cs) != 1 ) break; } yc=y; + for(;y<=y1-y0;y++){ if( num_cross(0,dx-1,y,y,bp,cs) != 2 ) break; } yd=y; + if( yd<3*(y1-yb+1)/4+yb-y0 ) Break; + y=(y1-yb+1)/2+yb-y0; + for(;y>0;y--){ if( num_cross(0,dx-1,y,y,bp,cs) != 1 ) break; } ye=y; + for(;y>0;y--){ if( num_cross(0,dx-1,y,y,bp,cs) != 2 ) break; } yf=y; + if( yf>(y1-yb+1)/4+yb-y0 ) Break; + if(yd>yc+2){ + xa=loop(bp, 0,yc-1,dx,cs,0,RI); + xb=loop(bp,dx-1,yc-1,dx,cs,0,LE); + if( + xb-loop(bp,dx-1,yc,dx,cs,0,LE) /* Dec00 */ + > xa-loop(bp, 0,yc,dx,cs,0,RI) ){ + y= loop(bp,dx-xb,yc-1,dy,cs,0,DO); + if(y>0){ + i=loop(bp,dx-xb-1,yc-1+y-1,dy,cs,0,DO); + if( i>0 ) y+=i-1; + } + if( yc-1+y < yd-1 ) Break; + } else { + y= loop(bp,11*xa/16,yc-1,dy,cs,0,DO); + if( yc-1+y < yd-2 ) Break; + } + } + if(yf0 ) y+=i-1; + if( ye+1-y > yf+1 ) Break; + } + if( 2*y0 <= box1->m1+box1->m2 + && loop(bp,0, 0,dx,cs,0,RI)+1 + < loop(bp,0,dx/2,dx,cs,0,RI) ) ad=97*ad/100; + + if( gchar ) // i is more often than j, be sure that realy correct Mai00 + if( loop(bp, 0,2*dy/4,dx,cs,0,RI) + -loop(bp,dx-1,2*dy/4,dx,cs,0,LE)>dx/8 ) Break; + + // could be a broken + or similar thing? + if( 3 * ya > box1->m1 + 2*box1->m2 ) ad=90*ad/100; + + if( loop(bp,dx-1,3*dy/4,dx,cs,0,LE)>dx/2 + && loop(bp,dx-1, dy-1,dx,cs,0,LE)5 && num_cross(x0+dx/2,x0+dx/2, ya, y1 ,box1->p,cs) >= 3 ) + ad=95*ad/100; + + Setac(box1,'i',ad); + break; + } + // --- test j --------------------------------------------------- + // if(box1->dots==1) // what about \it neighbouring ij + for(ad=d=100;dy>4 && dx>0;){ // min 3x4 + DBG( wchar_t c_ask='j'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + ya=y0; + if( box1->m2 && 2*y0>=box1->m2+box1->m1 ) ya=box1->m1; + + for(y=ya;2*yp,cs,1) == 1 ) break; + if(2*y>=ya+y1) Break; // hmm only gap + ya=y; + if( box1->m2 && ya>box1->m2+2 ) Break; + for( ;2*yp,cs,1) != 1 ) break; + if(2*y>=ya+y1) Break; // hmm no gap + for( ;2*yp,cs,1) == 1 ) break; + if(2*y>=ya+y1) Break; // hmm very large gap + yb=y; + if( loop(bp,dx-1,y+(y1-ya+1)/32,dx,cs,0,LE)>dx/2 ) Break; // unusual (right part of ouml) + + // printf(" num_cross dy/2=%d %d\n",dy/2, num_cross(0,dx-1,dy/2,dy/2,bp,cs)); + // printf(" dots=%d\n",box1->dots); out_x(box1); + // \sl ~f. ! + for(y=(ya+y1)/2;y<=y1;y++) if( get_bw(x0,x1,y,y,box1->p,cs,1) != 1 ) break; + if(y<=y1) Break; + + y=(y1-yb+1)/2+yb-y0; /* only one vertical line, italic i is more an tall S */ + if( num_cross(0,dx-1,y,y,bp,cs) >2 ) Break; + for(;y<=y1-y0;y++){ if( num_cross(0,dx-1,y,y,bp,cs) != 1 ) break; } yc=y; + for(;y<=y1-y0;y++){ if( num_cross(0,dx-1,y,y,bp,cs) != 2 ) break; } yd=y; + if( yd<3*(y1-yb+1)/4+yb-y0 ) Break; + y=(y1-yb+1)/2+yb-y0; + for(;y>0;y--){ if( num_cross(0,dx-1,y,y,bp,cs) != 1 ) break; } ye=y; + for(;y>0;y--){ if( num_cross(0,dx-1,y,y,bp,cs) != 2 ) break; } yf=y; + if( yf>(y1-yb+1)/4+yb-y0 ) Break; + if(yd>yc+2){ + xa=loop(bp, 0,yc-1,dx,cs,0,RI); + xb=loop(bp,dx-1,yc-1,dx,cs,0,LE); + if( + xb-loop(bp,dx-1,yc,dx,cs,0,LE) /* Dec00 */ + > xa-loop(bp, 0,yc,dx,cs,0,RI) ){ + y= loop(bp,dx-xb,yc-1,dy,cs,0,DO); + if(y>0){ + i=loop(bp,dx-xb-1,yc-1+y-1,dy,cs,0,DO); + if( i>0 ) y+=i-1; + } + if( yc-1+y < yd-1 ) Break; + } else { + y= loop(bp,11*xa/16,yc-1,dy,cs,0,DO); + if( yc-1+y < yd-2 ) Break; + } + } + if(yf0 ) y+=i-1; + if( ye+1-y > yf+1 ) Break; + } + if( 2*y0 <= box1->m1+box1->m2 + && loop(bp,0, 0,dx,cs,0,RI)+1 + < loop(bp,0,dx/2,dx,cs,0,RI) ) ad=97*ad/100; + if (loop(bp,0,dy-1,dx,cs,0,RI) + -loop(bp,0,dy-3,dx,cs,0,RI)>1+dx/16) ad=96*ad/100; // ~c + + if( gchar ) // i is more often than j, be sure that realy correct Mai00 + if( loop(bp, 0,2*dy/4,dx,cs,0,RI) + -loop(bp,dx-1,2*dy/4,dx,cs,0,LE)<=dx/8 ) Break; + // could be a broken + or similar thing? + if( 3 * ya > box1->m1 + 2*box1->m2 ) ad=80*ad/100; + if (!gchar) ad=96*ad/100; + if( box1->dots!=1 ) ad=98*ad/100; + + Setac(box1,'j',ad); + + break; + } + // --- test I --------------------------------------------------- + for(ad=d=100;dy>4 && dy>dx && 5*dy>4*(box1->m3-box1->m2);){ // min 3x4 + DBG( wchar_t c_ask='I'; ) + if( box1->dots==1 ) Break; + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + + x =loop(bp,0, dy/2,dx,cs,0,RI); // konvex? divided Q + if(loop(bp,0,7*dy/8,dx,cs,0,RI) > x+dx/8) Break; + for( y=dy/16;y1+dx/8 ) break; + } if( y<3*dy/4 ) Break; + // out_x(box1); + + // upper max width + for(i2=i1=0,y=0;yi1){ i1=x;i2=y; } + } + for(i4=i3=0,y=3*dy/4;yi3){ i3=x;i4=y; } + } + if( abs(i3-i1)>1+dx/8 ) Break; // if i3>>i5 more sure! + if( i1>i5 ){ // look for edges else *80% + } + if(i1+1i2 ) i2=i; + + // printf(" get_line(%d,%d) %d\n",i1,i2, + // get_line2(i1,dy/8,i2,dy-1-dy/8,bp,cs,100)); + if( get_line2(i1,dy/8,i2,dy-1-dy/8,bp,cs,100)<95 ) Break; + x =(i1-i2+4)/8; i1+=x; i2-=x; + + // upper and lower width (what about serifs?) + y=dy/8; + x =loop(bp,i1, y+0,dx,cs,1,LE); i=x; + x =loop(bp,i1, y+1,dx,cs,1,LE); if(x>i)i=x; + x =loop(bp,i1, y+0,dx,cs,1,RI); j=x; + x =loop(bp,i1, y+1,dx,cs,1,RI); if(x>j)j=x; if(abs(i-j)>1+dx/8)Break; + x =loop(bp,i2,dy-y-1,dx,cs,1,LE); j=x; + x =loop(bp,i2,dy-y-2,dx,cs,1,LE); if(x>j)j=x; if(abs(i-j)>1+dx/8)Break; + x =loop(bp,i2,dy-y-1,dx,cs,1,RI); j=x; + x =loop(bp,i2,dy-y-2,dx,cs,1,RI); if(x>j)j=x; if(abs(i-j)>1+dx/8)Break; + + if(dy>15) // v024a4 + if( loop(bp,dx-1,dy/16 ,dx,cs,0,LE) + > loop(bp,dx-1,dy/4 ,dx,cs,0,LE)+1+dx/32 ) Break; // ~bad ) (thinn) + + for(i=0,y=dy/16;y<15*dy/16 && i<2;y++) + if( num_cross(0,dx-1,y,y,bp,cs) != 1 ) i++; + if( i>1 ) Break; + + if(!hchar){ // right part (bow) of h is never a l + if( get_bw(dx/4,dx/4, 0,dy/4,bp,cs,1) == 1 + && get_bw(dx/4,dx/4,dy/2,dy-1,bp,cs,1) == 0 ) Break; + if( loop(bp, 0,dy/4,dx,cs,0,RI)> dx/4 + && loop(bp,dx-1,dy/4,dx,cs,0,LE)<=dx/4 + && loop(bp, 1, 0,dy,cs,0,DO)<=dy/4 ) Break; // ~z + } + + if( get_bw(x1,x1,y0 ,y1 ,box1->p,cs,2) != 2 + && get_bw(x0,x1,y0 ,y0 ,box1->p,cs,2) != 2 + && get_bw(x0,x1,y1 ,y1 ,box1->p,cs,2) != 2 + && get_bw(x0,x0,y0+1,y1-1,box1->p,cs,1) != 1 ) Break; /* ~] */ + + if ( loop(bp,dx-1, dy/4,dx,cs,0,LE) > dx/2 + && loop(bp,dx-1,3*dy/4,dx,cs,0,LE) > dx/2 + && loop(bp, 0, dy/2,dx,cs,0,RI) < dx/4 ) Break; /* ~[ */ + + x =loop(bp, 0,dy/2,dx,cs,0,RI); // konvex/konkav? ~() + i =loop(bp,dx-1,dy/2,dx,cs,0,LE); + if( loop(bp, 0,7*dy/8,dx,cs,0,RI) > x+dx/8 + && loop(bp, 0, dy/8,dx,cs,0,RI) > x+dx/8 + && loop(bp,dx-1,7*dy/8,dx,cs,0,LE) < i-dx/8 + && loop(bp,dx-1, dy/8,dx,cs,0,LE) < i-dx/8 ) Break; // ~( + if( loop(bp, 0,7*dy/8,dx,cs,0,RI) < x-dx/8 + && loop(bp, 0, dy/8,dx,cs,0,RI) < x-dx/8 + && loop(bp,dx-1,7*dy/8,dx,cs,0,LE) > i+dx/8 + && loop(bp,dx-1, dy/8,dx,cs,0,LE) > i+dx/8 ) Break; // ~) + if( loop(bp, 0, dy/8,dx,cs,0,RI) + -(dx-loop(bp,dx-1,7*dy/8,dx,cs,0,LE)) > dx/4 ) Break; // ~/ + if( loop(bp, 0, 0,dx,cs,0,RI) > dx/2 // ToDo: check for serifs + && loop(bp, 0, dy/8,dx,cs,0,RI) > dx/2 + && loop(bp,dx-1,dy-1 ,dx,cs,0,LE) > dx/2 + && loop(bp,dx-1,dy-1-dy/8,dx,cs,0,LE) > dx/2 ) ad=99*ad/100; // ~/ + + if (box1->m2 && 3*y0>box1->m1+2*box1->m2) + if( get_bw(x0+dx/8,x1-dx/8,box1->m1,(box1->m1+box1->m2)/2,box1->p,cs,1) == 1 ) + Break; // ~i + + if(i1+1p,cs,1) != 1 + || get_bw(x0+i4/4,x0+i4/4,y1-dy/4,y1,box1->p,cs,1) != 1 ) + { ad=99*ad/100; MSG(fprintf(stderr,"ad=%d",ad);) } // ToDo: improve it + if(!hchar){ ad=96*ad/100; MSG({}) } // ~bad_small_r + if (box1->m4 && y1m4) { // probably lower dot? + if ((dx>2 && get_bw(x0+1,x1-1,y1+1,box1->m4,box1->p,cs,1) == 1) + || (dx<3 && get_bw(x0 ,x1 ,y1+1,box1->m4,box1->p,cs,1) == 1)) { + ad=96*ad/100; + } + } // ~! + // a---b + // I + // I + // c---e + // check against Z + for(bx=0,ax=dx,ay=by=y=0;ybx) { bx=dx-1-i; by=y; } + i+=loop(bp,dx-1-i,y,dx,cs,1,LE); if (dx-i-1dy-1-dy/4;y--){ + i =loop(bp,0,y,dx,cs,0,RI); if (iex) { ex=i; ey=y; } + } + x=(3*ax+cx)/4; y=(3*ay+cy)/4; i= loop(bp,x,y,dx,cs,0,RI); + x=(3*bx+ex)/4; y=(3*by+ey)/4; j= loop(bp,x,y,dx,cs,0,LE); + if (j>0 && (2*i>3*j || 3*i<2*j )) ad=99*ad/100; + if (j>0 && ( i>2*j || 2*i< j )) ad=97*ad/100; + i=loop(bp,0,0,dy,cs,0,DO); + if (i>dy/8 && idx/4) ad=96*ad/100; // ~l 5x7 + + if( get_bw(x0,x1,y0,y1,box1->p,cs,2) == 0 ) ad=99*ad/100; + if (gchar) ad=98*ad/100; // J + if (box1->m3 && 2*y1<=box1->m2+box1->m3) ad=96*ad/100; // ' + + Setac(box1,'I',ad); + break; + } + // --- test J --------------------------------------------------- 22Nov06 + for(ad=d=100;dy>4 && dy>=dx && dx>2;){ // min 3x4 ~Y)]d', + // rewritten for vectors 0.42 + int ld, i1, i2, i3, i4, i5, i6, i7; // line derivation + corners + DBG( wchar_t c_ask='J'; ) + if (sdata->holes.num > 0) Break; /* no hole */ + /* half distance to the center */ + d=2*sq(128/4); + /* now we check for the upper right end of the J */ + if (aa[3][2]>d) Break; /* [2] = distance */ + /* searching for 4 notches between neighbouring ends */ + +/* + type A B + + 6OOOO 6O5 + 7O5 7O + O O + O O + 2O 1O4 1O4 + OO 2OO + 3 3 +*/ + + /* Warning: aa0 can be left upper or left lower point for type B */ + /* get a point on the inner low left side of the J */ + i =nearest_frame_vector(box1,aa[3][3],aa[1][3],(x0+x1)/2,y0); + /* failed for slanted J before Jun09 */ + i1=nearest_frame_vector(box1,i ,aa[1][3], x1+dx/8,y1-dy/8); + /* get the most left point on the lower part of the J */ + i2=nearest_frame_vector(box1,i1,aa[3][3], x0-2*dx, y1-dy/8); + /* get a point on the middle of the bottom of the J */ + i3=nearest_frame_vector(box1,aa[1][3],aa[2][3], (x0+x1)/2, y1); + /* get a point on the outer low right side of the J */ + i4=nearest_frame_vector(box1,aa[1][3],aa[3][3], x1, (y0+2*y1)/3); + /* get a point on the outer right side below top serif */ + i5=nearest_frame_vector(box1,aa[2][3],aa[3][3], (x0+2*x1)/3,y0); + /* get a point on the left side of upper serif */ + i6=nearest_frame_vector(box1,aa[3][3],i1, x0, y0); + /* get a point on the most right left side of upper serif */ + i7=nearest_frame_vector(box1,i6,i1, x1, y0); + MSG(fprintf(stderr," i1-i7 %d %d %d %d %d %d %d",i1,i2,i3,i4,i5,i6,i7);) + + /* check the highest point on lower left area */ + i =nearest_frame_vector(box1,i1,i3,x0,y0); + if (box1->frame_vector[i ][1]-y0frame_vector[i ][1]-y0<=dy/2) ad=97*ad/100; // imperfect a + /* check the lowest point on upper left area, serife? */ + j =nearest_frame_vector(box1,i6,i7,x0,y1); + if (box1->frame_vector[i ][1] + -box1->frame_vector[j ][1]<=dy/4) Break; // imperfect a + if (box1->frame_vector[i7][1]>y0+dy/4) Break; // not to low + if (box1->frame_vector[i1][1] + -box1->frame_vector[i7][1]frame_vector[i4][1] + -box1->frame_vector[i5][1]frame_vector[i7][0]frame_vector[i1][0] + -box1->frame_vector[i2][0]<=dx/8) Break; // ~1 + if (box1->frame_vector[i1][0] + -box1->frame_vector[i2][0]<=dx/4) ad=ad*99/100; // ~1 + if (box1->frame_vector[i6][1]>y0+dy/8) ad=99*ad/100; // ~1 + if (aa[0][2]==0) { // ]? + ad=99*ad/100; + if (aa[1][2]==0) ad=98*ad/100; + if (aa[2][2]<=aa[3][2]) ad=97*ad/100; + } + + /* check for left bow */ + for (j=i=i2;i!=i4;i=(i+1)%box1->num_frame_vectors[0]) { + if (box1->frame_vector[ i][0] /* [0]=x */ + frame_vector[i1][0]) break; /* curve? */ + } if (i==i4) Break; // ~I + /* check for no right bow */ + for (j=i=i2;i!=i4;i=(i+1)%box1->num_frame_vectors[0]) { + if (box1->frame_vector[ i][0] /* [0]=x */ + >box1->frame_vector[i4][0]) break; + } if (i!=i4) Break; // ~I + /* check for no right bow */ + for (j=i=i5;i!=i6;i=(i+1)%box1->num_frame_vectors[0]) { + if (box1->frame_vector[ i][1] > y0+dy/4) break; + } if (i!=i6) Break; // ~Y + /* check if upper left and lower left points are joined directly */ + ld=line_deviation(box1, i7, i1); + MSG(fprintf(stderr," i7,i1 %d %d linedist= %d/%d",i7,i1,ld,2*sq(1024/4));) + if (ld >2*sq(1024/4)) Break; + if (5*ld >4*2*sq(1024/4)) ad=99*ad/100; // ~3 + if (6*ld >4*2*sq(1024/4)) ad=99*ad/100; // ~3 + if (7*ld >4*2*sq(1024/4)) ad=99*ad/100; // ~3 + if (8*ld >4*2*sq(1024/4)) ad=99*ad/100; // ~3 + /* check if lower right and upper right points are joined directly */ + ld=line_deviation(box1, i4, i5); + MSG(fprintf(stderr," i4,i5 %d %d linedist= %d/%d",i4,i5,ld,2*sq(1024/4));) + if (ld >2*sq(1024/4)) Break; + if (5*ld >4*2*sq(1024/4)) ad=99*ad/100; + + // J exists as gchar and ~gchar + if (!hchar){ ad=99*ad/100; } + if (box1->num_frames>1) { + ad=98*ad/100; // j + } + Setac(box1,'J',ad); + break; + } + return box1->c; +} + +static wchar_t ocr0_brackets(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + pix *bp=sdata->bp; + int i,j,d,x,y,i1,i2,i3,i4,i5,i6,hchar=sdata->hchar, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1,cs=sdata->cs; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + (*aa)[4]=sdata->aa, /* corner-points, (x,y,dist^2,vector_idx) */ + ad,r1,r2; /* tmp-vars */ + wchar_t bc=UNKNOWN; + + // --- test > derived from xX --------------------------------------------------- + // rewritten for vectors v0.41 + for(ad=d=100;dx>1 && dy>2;){ // min 3x2 + // 0 - indizes 0,1,i1,i2 pointing to edges of the char + // \ . + // \ . + // i1,i2 + // / + // / + // 1 + DBG( wchar_t c_ask='>'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + if (sdata->holes.num > 0 && (dx<6 || dy<6)) Break; /* # */ + /* calculate the half distance to the center */ + d=2*sq(128/4); + /* now we check for the 2 left ends of the > */ + if (aa[0][2]>d) Break; /* upper left end */ + if (aa[1][2]>d) Break; /* lower left end */ + if (aa[1][1]-aa[0][1]num_frame_vectors[0]) { + if (box1->frame_vector[i][0] + >=box1->frame_vector[j][0]) j=i; /* notice most right vector */ + } if (j==i || j==aa[0][3]) Break; + /* calculate the distance to the center */ + x=box1->frame_vector[j][0]; + y=box1->frame_vector[j][1]; + if (2*x-aa[0][0]-aa[1][0](dy+2)) Break; + if ( aa[0][0]+aa[1][0]-2*x>=0) Break; + i1=j; + d=line_deviation(box1, aa[0][3], j) >sq(1024/4); + /* check if upper left and center point are joined directly */ + MSG(fprintf(stderr,"x %d %d dist= %d/%d",x-x0,y-y0,d,sq(1024/4));) + if (d >sq(1024/4)) Break; ad=ad-d*100/sq(1024); + MSG(fprintf(stderr,"ad=%d", ad);) + d=line_deviation(box1, j, aa[1][3]); + /* check if lower left and center point are joined directly */ + MSG(fprintf(stderr,"x %d %d dist= %d/%d",x-x0,y-y0,d,sq(1024/4));) + if (d >sq(1024/4)) Break; ad=ad-d*100/sq(1024); + MSG(fprintf(stderr,"ad=%d", ad);) + + /* run along right side from bottom to top */ + for (j=i=aa[1][3];i!=aa[0][3];i=(i+1)%box1->num_frame_vectors[0]) { + if (box1->frame_vector[i][0] + >=box1->frame_vector[j][0]) j=i; /* notice most right vector */ + // MSG(fprintf(stderr,"search right: %d %d %d %d",i,j,aa[1][3],aa[0][3]);) + } if (j==i || j==aa[1][3]) Break; + /* calculate the distance to the center */ + x=box1->frame_vector[j][0]; + y=box1->frame_vector[j][1]; + if ( (aa[0][0]+aa[1][0]-2*x)>= 0 ) Break; + if (abs(aa[0][1]+aa[1][1]-2*y)>(dy+2)/4) Break; + if (aa[0][0]>=x || aa[1][0]>=x) Break; + i2=j; + d=line_deviation(box1, j, aa[0][3]); + /* check if upper left and center point are directly joined directly */ + MSG(fprintf(stderr,"x %d %d dist= %d/%d",x-x0,y-y0,d,sq(1024/4));) + if (d >sq(1024/4)) Break; ad=ad-d*100/sq(1024); + MSG(fprintf(stderr,"ad=%d", ad);) + d=line_deviation(box1, aa[1][3], j); + /* check if lower left and center point are directly joined */ + MSG(fprintf(stderr,"x %d %d dist= %d/%d",x-x0,y-y0,d,sq(1024/4));) + if (d >sq(1024/4)) Break; ad=ad-d*100/sq(1024); + MSG(fprintf(stderr,"ad=%d", ad);) + + /* + ToDo: calculate momentums or max derivations + along lines to distinguish )]}> + i1,i2 + */ + + if (sdata->gchar) ad=98*ad/100; + if (sdata->hchar) ad=99*ad/100; + bc='>'; + Setac(box1,bc,ad); + break; + } + // --- test /\\ ------------------------------------------------ +// if(bc==UNKNOWN) +// if(!box1->dots) + for(ad=d=100;dx>3 && dy>3;){ // min 4x4 for 4x6 font + DBG( wchar_t c_ask='/'; ) + if (sdata->holes.num > 0) Break; /* tolerant against a tiny hole */ +#if 1 + for(i=y=0;y2 || (i>0 && dy<16)) Break; +#endif + /* get the center as exact as possible */ + i2=dx-1-loop(bp,dx-1,dy/2 ,dx,cs,0,LE) // be exact for small fonts + +dx-1-loop(bp,dx-1,dy/2+dy%2-1,dx,cs,0,LE) + + loop(bp, 0,dy/2 ,dx,cs,0,RI) + + loop(bp, 0,dy/2+dy%2-1,dx,cs,0,RI); + if (abs(i2-2*dx)>1+dx/2) Break; + if (abs(i2-2*dx)> dx/2) ad=99*ad/100; + + i1=loop(bp,dx-1,dy/16,dx,cs,0,LE); // right side + i3=loop(bp,dx-1,dy-1 ,dx,cs,0,LE); + i4=loop(bp, 0,0 ,dx,cs,0,RI); // left side + i6=loop(bp, 0,dy-1 ,dx,cs,0,RI); + i=(box1->m4+box1->m3)/2-box1->m2; + // + // out_x(box1);printf("() %d %d %d %d %d %d %d\n",i,i1,i2,i3,i4,i5,i6); + + // ~lI + for(i=i4,y=0;ydx/6+1 ) break; i=x; + } if( ydx/6+1 ) break; i=x; + } if( ydx/4 ) { Setac(box1,(bc='/'),ad);break; } + if(i4<=dx/8 && i3<=dx/8 && i6-(dx-i1)>dx/4 ) { Setac(box1,(bc='\\'),ad);break; } + Break; + } + // --- test ()<> ------------------------------------------------ +// if(bc==UNKNOWN) +// if(!box1->dots) + for(ad=d=100;dx>1 && dy>4;){ // min 3x4 + DBG( wchar_t c_ask='('; ) + if (sdata->holes.num > 1) {Break;}; /* tolerant against a tiny hole */ +#if 1 + for(i=y=0;y2 || (i>0 && dy<16)) {Break;}; +#endif + /* look for the extrema => r1..r2 */ + for(i=dx,r1=r2=y=dy/2-dy/8;y<=dy/2+dy/8;y++){ + j=loop(bp, 0,y,dx,cs,0,RI); if(j==i) r2=y; if(jdy){ +// from Aug06 vector-version of greater is used +// if(i2==0 && 3*i5>dx && i4<=dx/8 && i6<=dx/8) { Setac(box1,(bc='>'),98);{Break;}; } + if(i5==0 && 3*i2>dx && i1<=dx/8 && i3<=dx/8) { Setac(box1,(bc='<'),98);{Break;}; } + } + if( dx > 2 && 9*dx>=5*dy ){ // 4x6 screen-font (3*5) + ad=98; + if (dx<8) ad=99*ad/100; + if (dx<6) ad=96*ad/100; + if( 2*dx > JOB->res.avX && 4*dx>dy ) ad=98; +// printf(" %d %d %d %d %d %d\n",i5,i1,i3,i2,i4,i6); + if( i5==0 && i1<=dx/8+1 && i3<=dx/8+1 && i1+i3<=dx/8+1 + && i2>=dx/2 && i4>=3*dx/4 && i6>=3*dx/4 ) { + if (2*loop(bp, 0, y/2,dx,cs,0,RI)+1+dx/16=dx/2 && i1>=3*dx/4 && i3>=3*dx/4 ) { + if (2*loop(bp,dx-1, y/2,dx,cs,0,LE)+1+dx/16m4+box1->m3)/2-box1->m2; + // + // out_x(box1);printf("() %d %d %d %d %d %d %d\n",i,i1,i2,i3,i4,i5,i6); + if(2*i2i4+i6 && 2*dx=i){ + Setac(box1,(bc=')'),98);break; } + if(2*i2>i1+i3 && 2*i5=i){ + if(2*i2<=i1+i3+1 || 2*i5>=i4+i6-1) ad=98*ad/100; + if(2*i2<=i1+i3+2 || 2*i5>=i4+i6-2) ad=98*ad/100; + for(x=y=0;yx ) x=i; + } + for(y=0;y<(dy+2)/4;y++){ + i=loop(bp,0,y+dy/8,dx,cs,0,RI);if( i=dx/8+1) ad=99*ad/100; // ~{ Jul09 + if (loop(bp,0,dy/2-dy/8,dx,cs,0,RI)-i5>=dx/8+1) ad=99*ad/100; // ~{ Jul09 + Setac(box1,(bc='('),ad); break; + } + Break; + } + // --------- test [] -------------------------------- + for(ad=d=98;dx>2 && dy>4 && dy>=2*dx;){ // (3,6) on 4x6 font + DBG( wchar_t c_ask=']'; ) + if (sdata->holes.num > 1) { Break;} /* tolerant against a tiny hole */ + if (!hchar) ad=97*ad/100; + for(y=0;yp,cs,2) == 2 + && get_bw(x0,x1,y0+1,y0+1,box1->p,cs,2) == 2 ) {Break;}; + if( get_bw(x0,x1,y1 ,y1 ,box1->p,cs,2) == 2 + && get_bw(x0,x1,y1-1,y1-1,box1->p,cs,2) == 2 ) {Break;}; + if( get_bw(x0 ,x0,y0 ,y1 ,box1->p,cs,2) == 0 + || get_bw(x0+1 ,x0+1,y0 ,y1 ,box1->p,cs,2) == 0 ) + if( get_bw(x0+dx/2,x1,y0+dy/4,y1-dy/4,box1->p,cs,1) == 0 ) + { Setac(box1,(bc='['),ad);break; } + if( get_bw(x1 ,x1,y0 ,y1 ,box1->p,cs,2) == 0 + || get_bw(x1-1 ,x1-1,y0 ,y1 ,box1->p,cs,2) == 0 ) + if( get_bw(x0,x1-dx/2,y0+dy/4,y1-dy/4,box1->p,cs,1) == 0 ) + { Setac(box1,(bc=']'),ad);break; } + break; + } + +#if CODE_NOT_COMPLETED + // --- test ] ------- + for(ad=d=100;dx>2 && dy>3;){ + DBG( wchar_t c_ask=']'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + if (sdata->holes.num > 0) ad=98*ad/100; /* # */ + /* 1/8 distance to the center */ + d=2*sq(128/16); + /* now we check for the 4 ends of the x */ + if (aa[0][2]>d) Break; + if (aa[1][2]>d) Break; + if (aa[2][2]>d) Break; + if (aa[3][2]>d) Break; + if (aa[3][0]-aa[0][0]<7*dx/8) Break; + if (aa[2][0]-aa[1][0]<7*dx/8) Break; + if (aa[1][1]-aa[0][1]<7*dy/8) Break; + if (aa[2][1]-aa[3][1]<7*dy/8) Break; + if (aa[3][0]-aa[0][0]<2) Break; /* to small */ + if (aa[2][0]-aa[1][0]<2) Break; /* to small */ + MSG( fprintf(stderr," aa %d %d %d %d %d %d %d %d d %d %d %d %d",\ + aa[0][0]-x0,aa[0][1]-y0,aa[1][0]-x0,aa[1][1]-y0,\ + aa[2][0]-x0,aa[2][1]-y0,aa[3][0]-x0,aa[3][1]-y0,\ + aa[0][2],aa[1][2],aa[2][2],aa[3][2]);) + /* left and right vertical line */ + d=line_deviation(box1, aa[0][3], aa[1][3]); if (d>2*sq(1024/4)) Break; + ad=(100-(d-sq(1024)/2)/sq(1024)/4)*ad/100; + d=line_deviation(box1, aa[2][3], aa[3][3]); if (d>2*sq(1024/4)) Break; + + /* search uppermost left ^ */ + i1=nearest_frame_vector(box1,aa[1][3],aa[2][3], x0, y0); + x=box1->frame_vector[i1][0]; + y=box1->frame_vector[i1][1]; + if (y-y0 > 5*dy/8) Break; + if (x-x0 > 5*dx/8) Break; + /* search uppermost right ^ ~H */ + i3=nearest_frame_vector(box1,aa[1][3],aa[2][3], x1, y0); + if ( box1->frame_vector[i3][0]-x> dx/4 + && box1->frame_vector[i3][1]-y<=dy/8) Break; + + /* check if upper left and lower right point are joined directly */ + dbg[0]=d=line_deviation(box1,i1, aa[2][3]); if (d >2*sq(1024/4)) Break; + /* check if lower left and lower left point are joined directly */ + dbg[1]=d=line_deviation(box1, aa[1][3],i1); if (d >2*sq(1024/4)) Break; + + if (!hchar) ad=99*ad/100; + if ( gchar) ad=98*ad/100; // \sc N + ac=(wchar_t) ']'; + Setac(box1,ac,ad); + if (ad>=100) return ac; + break; + } +#endif + // --------- test ocr-a-[] -------------------------------- + if(bc==UNKNOWN) + for(ad=d=98;dx>5 && dy>7 && 2*dy>3*dx;){ // only for accurate font at the moment + DBG( wchar_t c_ask='['; ) + if (sdata->holes.num > 2) break; /* tolerant against a tiny hole */ + if (!hchar) ad=97*ad/100; + if( num_cross(0,dx-1, 0, 0,bp,cs) != 1 ) break; + if( num_cross(0,dx-1,dy-1,dy-1,bp,cs) != 1 ) break; + if ( loop(bp,dx-1,dy/2,dx,cs,0,LE) + +loop(bp, 0,dy/2,dx,cs,0,RI) <= dx/4 ) break; // O + for(y=dy/8;yp,cs,1) == 0) + { Setac(box1,(bc='['),ad);break; } + if( get_bw(x0,(5*x0+3*x1)/8,y0+3*dy/16,y1-3*dy/16,box1->p,cs,1) == 0) + { Setac(box1,(bc=']'),ad);break; } + break; + } + // --------- test {} -------------------------------- + for(ad=d=99;dx>2 && dy>5 && 2*dy>3*dx;){ + DBG( wchar_t c_ask='{'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + if (!hchar) ad=97*ad/100; + for(y=0;y3*dx/4 ) ad=99*ad/100; + if ( loop(bp,0, 0,dx,cs,0,RI)>3*dx/4 ) ad=99*ad/100; // < + if ( loop(bp,0, 0,dy,cs,0,DO)=dx/8 ) ad=98*ad/100; // < + if ( loop(bp,dx-2,dy-1,dy,cs,0,UP)>dy/4 ) Break; // f + if ( get_bw(x0,x0,y0,y0+dy/4,box1->p,cs,1) == 1 + || get_bw(x0,x0,y1-dy/4,y1,box1->p,cs,1) == 1 ) Break; + Setac(box1,(bc='{'),ad);Break; + } + for(ad=d=99;dx>2 && dy>5 && 2*dy>3*dx;){ + DBG( wchar_t c_ask='}'; ) + if (!hchar) ad=97*ad/100; + for(y=0;y3*dx/4 ) {ad=99*ad/100;} + if ( loop(bp,dx-1, 0,dx,cs,0,LE)>3*dx/4 ) {ad=99*ad/100;} // > + if ( loop(bp,dx-1, 0,dy,cs,0,DO)=dx/8 ) ad=98*ad/100; // < + if ( loop(bp,1,dy-1,dy,cs,0,UP)>dy/4 ) Break; // ??? + if ( get_bw(x1,x1,y0,y0+dy/4,box1->p,cs,1) == 1 + || get_bw(x1,x1,y1-dy/4,y1,box1->p,cs,1) == 1 ) Break; + Setac(box1,(bc='}'),ad);Break; + } + return box1->c; +} + +#if 0 +/* ---------- empty prototype function for copy and expand ---------- */ +static wchar_t ocr0_XXX(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + pix *bp=sdata->bp; + int i,j,d,x,y,i0,i1,i2,i3,hchar=sdata->hchar,gchar=sdata->gchar, + x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1,cs=sdata->cs; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + ac,ad; /* tmp-vars */ + + // --- test XXX --------------------------------------------------- + return box1->c; +} +#endif + + +/* ----------------------- part9 -------------------------------- */ +static wchar_t ocr0p9(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + pix *bp=sdata->bp; + int i,j,d,x,y,x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + i1,i2,i3,i4; /* tmp-vars */ + int xa,xb, /* used for store significant points of char */ + dbg[9]={0,0,0,0,0,0,0,0,0}, /* debugging space */ + ya,yb,ad,cs=sdata->cs; + wchar_t ac,bc=UNKNOWN; // bestletter + int hchar; // char is higher than e + int gchar; // char has ink lower than m3 + // --- hchar --- gchar ------------------------- + hchar=0;if( 2*y0<=2*box1->m2-(box1->m2-box1->m1) ) hchar=1; + gchar=0;if( 2*y1>=2*box1->m3+(box1->m4-box1->m3) ) gchar=1; + // if the char is slightly moved down correction can be done + if ( y0m2 && y1>box1->m3 && 2*y1m3+box1->m4) // moved + if( 2*(y0-(y1-box1->m3))<=2*box1->m2-(box1->m2-box1->m1) ) hchar=1; + + /* reserved for the future */ + // --- test beta,\3,sz,"s --------------------------------------------- + if(bc==UNKNOWN && hchar) + for(ad=d=100;dx>3 && dy>6;){ // min 4x7 + DBG( wchar_t c_ask='S'; ) + if (sdata->holes.num > 2) break; /* tolerant against a tiny hole */ + /* this part is provisorium, should be changed! + a-\ + | d + b| / + | \ + -c / + */ + if( num_cross(x0 ,x1 ,y0+dy/4 ,y0+dy/4 ,box1->p,cs) != 2 + && num_cross(x0 ,x1 ,y0+dy/4+1,y0+dy/4+1,box1->p,cs) != 2 ) break; + for(i=1+dy/16,y=y0+dy/8;y0;y++){ + if( yp,cs) != 2 ) i--;} + else { if( num_cross(x0 ,x1 ,y,y,box1->p,cs) < 2 ) i--;} + if( get_bw(x0,x0+dx/2,y,y,box1->p,cs,1) == 0 ) i--; + if( yp,cs,1) == 0 ) i--; + } if( i<=0 ) break; + // out_x(box1); + + for(y=y0+dy/3;yp,x1,y,dx,cs,0,LE); + if( i>=dx/8 ) break; + i+=loop(box1->p,x1-i,y,dx,cs,1,LE); + if( i>=dx/2 ) break; + } if( y>=y1-dy/3 ) break; + + for(y=y0+dy/5;yp,cs,1) == 1 ) break; + if( y>=y0+dy/3 ) break; + + for(y=y0+dy/2;yp,cs,1) == 1 ) break; + if( y>=y1 ) break; + + for(y=y1-dy/3;yp,x1,y,dx,cs,0,LE); + if( i>dx/4 + && get_bw(x1-dx/8,x1-dx/8,y,y1,box1->p,cs,1) == 1 ) break; + } if( ym3==0 || 2*y1m3+box1->m4 ) + if( loop(box1->p,x1,y1, dx,cs,0,LE)==0 + && loop(box1->p,x1,y1-dy/4,dx,cs,0,LE)>dx/8 ) break; // ~R + + + for(x=x0+dx/4;xp,cs) == 3 ) break; + if( x>=x1-dx/4 ) break; + + i=loop(bp,dx/2,dy-1,dy,cs,0,UP)+dy/64; // Jul00 + for(x=dx/5;x i ) break; + if( x==dx/2 ) break; + + x=x0+loop(bp,0,dy/4,dx,cs,0,RI); + for(;xp,cs,1) == 0 ) break; + if( xp,cs,NULL) != 0 ) break; + if (sdata->holes.num != 0) break; + + bc=LATIN_SMALL_LETTER_SHARP_S; + Setac(box1,(wchar_t)bc,98); + break; + } + // --- test + ------------------------------------------------ + for(ad=d=100;dx>2 && dy>2;){ // min 3x3 + DBG( wchar_t c_ask='+'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + xa=(dx+1)/3-1; ya=(dy+1)/3-1; /* size of the 4 gaps = 1/3 * 1/3 */ + xb=(dx+1)/4; yb=(dy+2)/4; /* smaller gap */ + if( get_bw(x0,x0+xa,y0,y0+ya,box1->p,cs,1) == 1 ) Break; // left upper + if( get_bw(x0,x0+xa,y1-ya,y1,box1->p,cs,1) == 1 ) Break; // left lower + if( get_bw(x1-xb,x1,y0,y0+ya,box1->p,cs,1) == 1 ) Break; // right upper + if( get_bw(x1-xa,x1,y1-ya,y1,box1->p,cs,1) == 1 ) { // right lower + if( get_bw(x1-xa,x1,y1-yb,y1,box1->p,cs,1) == 1 ) Break; + ad=99*ad/100; // smoothed inner corner? 0907 + } + for(i=0,y=y0+ya;y<=y1-ya;y++){ // horizontal line + if( get_bw(x0+dx/9,x1-dx/9,y,y,box1->p,cs,2) == 0 ) { i=y; break; } + } + if (3*dx<2*dy) ad=99*ad/100; // ~t + if( !i ) Break; + ac=(wchar_t) '+'; + Setac(box1,ac,ad); + if (ad>=100) return ac; + break; + } + // --- test $ ------------------------------------------------ + for(ad=d=99;dx>3 && dy>5;){ // min 3x4 + DBG( wchar_t c_ask='$'; ) + if (sdata->holes.num != 2) Break; + + if( get_bw(x0,x0+dx/5,y0 ,y0+dy/18,box1->p,cs,1) == 1 ) Break; + if( get_bw(x0,x0+dx/9,y1-dy/23,y1 ,box1->p,cs,1) == 1 ) Break; + if( get_bw(x1-dx/9,x1,y0 ,y0+dy/18,box1->p,cs,1) == 1 ) Break; + if( get_bw(x1-dx/5,x1,y1-dy/23,y1 ,box1->p,cs,1) == 1 ) Break; + if( get_bw(x0,x0+dx/3,y0+dy/3 ,y0+dy/2 ,box1->p,cs,1) != 1 ) Break; + if( get_bw(x1-dx/3,x1,y1-dy/2 ,y1-dy/3 ,box1->p,cs,1) != 1 ) Break; + i1=x0+loop(box1->p,x0,y0,dx,cs,0,RI); if( i1x1-dx/5 ) Break; + i2=x0+loop(box1->p,x0,y1,dx,cs,0,RI); if( i2i1 ) Break; + ad= get_line2(i1,y0,i2,y1,box1->p,cs,100)*ad/100; + // check upper left and lower right half circle, $ (Oct08: removed) + // Oct08 JS: check the position of holes (better for tiny fonts) + // upper hole must be the first!? (hole[].x0 = relative coordinates) + if ( sdata->holes.hole[0].y0 < + sdata->holes.hole[1].y0 ) i4=0; else i4=1; /* sort to [idx^i4] */ + if ( sdata->holes.hole[0^i4].y1 > + sdata->holes.hole[1^i4].y0 ) Break; /* no y-overlap allowed */ + // upper left hole + // fprintf(stderr,"\nDBG hole[0]=x0=%d %d", sdata->holes.hole[0^i4].x0, sdata->holes.hole[0^i4].x1); + if ( sdata->holes.hole[0^i4].x0 > (dx+1)/3 ) Break; + if ( sdata->holes.hole[0^i4].x1 > dx/2+dx/4 ) Break; + if ( sdata->holes.hole[0^i4].y1 >= dy/2+dy/8 ) Break; + if ( sdata->holes.hole[0^i4].y0 > dy/2-dy/8 ) Break; + // lower right hole + // fprintf(stderr,"\nDBG hole[1]=x0=%d %d", sdata->holes.hole[1^i4].x0, sdata->holes.hole[1^i4].x1); + if ( sdata->holes.hole[1^i4].x0 <= dx/2-dx/4 ) Break; + if ( sdata->holes.hole[1^i4].x1 < dx/2+dx/4 ) Break; + if ( sdata->holes.hole[1^i4].y1 < dy/2+dy/8 ) Break; + if ( sdata->holes.hole[1^i4].y0 <= dy/2-dy/8 ) Break; + if (ad<95) Break; + ac=(wchar_t) '$'; + Setac(box1,ac,ad); + if (ad>=100) return ac; + break; + } + // --- test & ------------------------------------------------ + for(ad=d=99;dx>3 && dy>4;){ /* 4x6 font */ + DBG( wchar_t c_ask='&'; ) + if (sdata->holes.num != 2) Break; + if( get_bw(x1-dx/9,x1,y0,y0+dy/4,box1->p,cs,1) == 1 ) Break; // g + if( loop(bp,dx/2,0,dy,cs,0,DO)>dy/2) Break; + i1=loop(bp,0,dy/8 ,dx,cs,0,RI); if (i1>dx/2) Break; + i =loop(bp,0,dy/4 ,dx,cs,0,RI); if (i1>dx/2) Break; if (idx/2) Break; + i =loop(bp,0,dy-dy/4-1,dx,cs,0,RI); if (i3>dx/2) Break; if (ii1) Break; + for( i2=0, y=dy/4; y<=dy/2+1; y++ ){ + i =loop(bp,0,y,dx,cs,0,RI); if( i>i2 ) i2=i; + } + if(2*i2-i1-i3<1) Break; + // if( num_hole(x0,x1 ,y0,y1,box1->p,cs,NULL)!=2 ) Break; + if( num_hole(x0,x1-dx/4,y0,y1,box1->p,cs,NULL)!=2 ) Break; + if( num_cross(dx-1,dx-1,dy/4,dy-1,bp,cs) < 1 ) Break; + for( x=dx-1; x>=dx/2; x-- ){ + if( num_cross(x,x,dy/4,dy-1,bp,cs) > 1 ) break; + } if( x<=3*dx/4 && x 3 ) { // glued ah + if (dy>15) { Break; } else ad=96*ad/100; + } + if (!hchar) ad=98*ad/100; + bc=(wchar_t) '&'; + Setac(box1,bc,ad); + if (ad>=100) return bc; + break; + } + // --- test \it & like \epsilon\tau ------------------------------ + if(bc==UNKNOWN) + for(ad=d=100;dx>7 && dy>7;){ + DBG( wchar_t c_ask='&'; ) + if (sdata->holes.num > 2) break; /* tolerant against a tiny hole */ + if( num_cross(0,dx-1, dy/4, dy/4,bp,cs) != 3 ) break; + if( num_cross(0,dx-1, dy/2, dy/2,bp,cs) != 4 ) break; + if( num_cross(dx/2,dx-1,dy/2, dy/2,bp,cs) != 2 ) break; + if( num_cross(0,dx-1,3*dy/4,3*dy/4,bp,cs) != 2 ) break; + if( num_cross(0,dx-1, dy-1, dy-1,bp,cs) != 1 ) break; + if( num_cross( 0, 0,0,dy-1,bp,cs) != 1 ) break; + if( num_cross( dx/3, dx/3,0,dy-1,bp,cs) != 4 ) break; + if( num_cross(13*dx/16,13*dx/16,0,dy/8,bp,cs) != 0 ) break; + if( num_cross(4*dx/8,4*dx/8,dy-dy/4,dy-1,bp,cs) != 1 ) break; + if( num_cross(3*dx/8,3*dx/8,dy-dy/4,dy-1,bp,cs) != 1 ) break; + if( num_cross(5*dx/8,5*dx/8,dy-dy/4,dy-1,bp,cs) != 1 ) break; + if( num_hole(x0 ,(x0+x1)/2,y0, y1,box1->p,cs,NULL) != 1 ) break; + if( num_hole(x0+dx/8,x1-dx/4,y0,y1-dy/4,box1->p,cs,NULL) != 1 ) break; + ac=(wchar_t) '&'; + Setac(box1,ac,ad); + if (ad>=100) return ac; + break; + } + // --- test ? --------------------------------------------------- + for(ad=d=98;dx>2 && dy>5;){ // min 3x(4+2) + DBG( wchar_t c_ask='?'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + if ( num_cross(x0, x1, y0, y0, box1->p, cs) !=1 ) Break; // ~? + if ( num_cross(x0, x1, y1, y1, box1->p, cs) > 1 ) Break; // ~? + for(y=y0;yp,cs,1) != 1 ) break; // lower end + if (2*ym4) { // probably lower dot not catched in box? + if (get_bw(x0+1,x1-1,y1+1,box1->m4,box1->p,cs,1) != 1 ) Break; + i1=box1->m4; + for(;i1>y1;i1--) // new y1 + if( get_bw(x0, x1,i1,i1,box1->p,cs,1) == 1 ) break; // lower dot + } + y--; i=y-y0+1; // new dy + for (y=0;yp, cs) == 2 ) break; + if (y==dy/2) Break; + // if( num_hole( x0, x1, y0, y1, box1->p,cs,NULL) > 0 ) Break; + if (sdata->holes.num > 0) Break; + for(y=y0+dy/2;y<=i1;y++) + if( get_bw(x0,x1,y,y,box1->p,cs,1) == 0 ) break; + if( y==i1 ) Break; + for( ;y<=i1;y++) + if( get_bw(x0,x1,y,y,box1->p,cs,1) == 1 ) break; + if( get_bw(x0,x1,y,y,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+7*dx/8,x1,y,i1,box1->p,cs,1) == 1 ) Break; // broken thin 2 + bc='?'; + Setac(box1,(wchar_t)bc,98); + return bc; + } + // --- test !| --------------------------------------------------- + for(ad=d=99; dy>4 && dy>2*dx;){ // min 3x4 + DBG( wchar_t c_ask='!'; ) + if (sdata->holes.num > 1) Break; /* tolerant against a tiny hole */ + // measure thickness + if (num_cross(x0,x1,y0 ,y0 ,box1->p,cs)!=1) Break; + if (num_cross(x0,x1,y0+dy/2,y0+dy/2,box1->p,cs)!=1) Break; + for(y=y0;yp,cs,1) != 1 ) break; // lower end + if (2*ybox1->m3-dy/8) ad=ad*97/100; /* missing dot? */ + i1=y1; + if (y==y1 && box1->m4) { // probably lower dot not catched in box? + if ((dx>2 && get_bw(x0+1,x1-1,y1+1,box1->m4,box1->p,cs,1) == 1) + || (dx<3 && get_bw(x0 ,x1 ,y1+1,box1->m4,box1->p,cs,1) == 1 )) { + i1=box1->m4; + for(;i1>y1;i1--) // new y1 + if( get_bw(x0, x1,i1,i1,box1->p,cs,1) == 1 ) break; // lower dot + } + } i2=i1; + for( i1=0,y=y0;y<=i2;y++){ + i=num_cross(x0,x1,y,y,box1->p,cs); if(i>1) break; + if(i==0 && i1==0) i1=y; + } if(y<=i2 || i1==0 || i1dx/4+1 ) Break; // f + + if (!hchar) ad=96*ad/100; + Setac(box1,(wchar_t)'!',ad); + break; + } + // --- test * five egdes (jagges? beames?) what is the right english word? ---- + for(ad=d=99;dx>2 && dy>4;){ + DBG( wchar_t c_ask='*'; ) + if (sdata->holes.num > 0) Break; /* tolerant against a tiny hole */ + if( num_cross(0,dx-1, 0,dy-1,bp,cs) != 1 + && num_cross(0,dx-1, 1,dy-2,bp,cs) != 1 ) Break; + if( num_cross(0,dx-1,dy-1,dy-1,bp,cs) != 2 + && num_cross(0,dx-1,dy-2,dy-2,bp,cs) != 2 ) Break; + x=dx/2;y=(6*dy+8)/16; // center point 6/8=6/2^3 rounded + /* upwarts from center */ + dbg[0]=i=get_line2(x,y,x ,0,bp,cs,100); if(i<95) Break; + if (dx<8) /* be exact on small fonts, where get_line2 returns 100 (ToDo change) */ + if (get_bw(x,x,0,y,bp,cs,2)==2) Break; + /* horizontal */ + dbg[1]=i=get_line2(0,y,dx-1,y,bp,cs,100); if(i<95) Break; + if (dy<8) + if (get_bw(0,dx-1,y ,y ,bp,cs,2)==2 + && get_bw(0,dx-1,y+1,y+1,bp,cs,2)==2) Break; + /* down (right) */ + i=get_line2(x,y,(5*dx+4)/8,dy-1,bp,cs,100); + j=get_line2(x,y,(6*dx+4)/8,dy-1,bp,cs,100); if(j>i) dbg[2]=i=j; + if(i<95) Break; + /* down (left) */ + dbg[3]=i=get_line2(x, y,(2*dx+4)/8,dy-1,bp,cs,100); if(i<95) Break; // straight up + /* check for lower gap at bottom */ + dbg[4]=i=get_bw( x, x,dy-1-dy/8,dy-1,bp,cs,1); if(i==1) Break; + dbg[5]=i=get_line2( dx/4,dy/4, 0,0,bp,cs,101); if(i<95) Break; // upper left gap + dbg[6]=i=get_line2(dx-1-dx/4,dy/4,dx-1,0,bp,cs,101); if(i<95) Break; // upper right gap + MSG(fprintf(stderr,"%d %d %d %d %d %d %d",dbg[0],dbg[1],dbg[2],dbg[3],dbg[4],dbg[5],dbg[6]);) + Setac(box1,(wchar_t)'*',ad); + break; + } + // --- test * six egdes (jagges? beames?) incl. vert. line (|+X) ---- + for(ad=d=100;dx>4 && dy>4;){ + DBG( wchar_t c_ask='*'; ) + if (sdata->holes.num > 0) Break; /* tolerant against a tiny hole */ + if( num_cross(0,dx-1, dy/8, dy/8,bp,cs) != 3 + && num_cross(0,dx-1, 1+dy/8, 1+dy/8,bp,cs) != 3) Break; + if( num_cross(0,dx-1,dy-2-dy/8,dy-2-dy/8,bp,cs) != 3) Break; + if( num_cross(0 , 0, 0,dy-1,bp,cs) != 2) Break; + if( num_cross(dx-1,dx-1, 0,dy-1,bp,cs) != 2) Break; + if( num_cross(0,dx-1,dy/2,dy/2,bp,cs) != 1) Break; + if( num_cross( 0 ,dx/8,dy/2,dy/2,bp,cs) != 0) Break; + if( num_cross(dx-1-dx/8,dx-1,dy/2,dy/2,bp,cs) != 0) Break; + if (dx>5) { + dbg[0]=i=get_line2(0,dy-2-dy/8,dx-1,dy/8,bp,cs,100); if(i<95) Break; // black upwarts beam + dbg[1]=i=get_line2(0,dy/8,dx-1,dy-2-dy/8,bp,cs,100); if(i<95) Break; // black downwards beam + /* check vertical line */ + dbg[2]=i=get_line2(dx/2,0,dx/2, dy-1,bp,cs,100); if(i<95) Break; + } + MSG(fprintf(stderr,"%d %d %d %d %d %d",dbg[0],dbg[1],dbg[2],dbg[3],dbg[4],dbg[5]);) + Setac(box1,(wchar_t)'*',99); + break; + } + // --- test * six egdes '*'='x'+'-' incl. horizontal line ---- + for(ad=d=100;dx>3 && dy>4;){ + DBG( wchar_t c_ask='*'; ) + if (sdata->holes.num > 0) Break; /* tolerant against a tiny hole */ + if( num_cross( dx/8, dx/8, 0, dy-1,bp,cs) != 3 + && num_cross(1+dx/8,1+dx/8, 0, dy-1,bp,cs) != 3) Break; + if( num_cross(dx-1-dx/8,dx-1-dx/8,0,dy-1,bp,cs) != 3 + && num_cross(dx-2-dx/8,dx-2-dx/8,0,dy-1,bp,cs) != 3) Break; + if( num_cross( 0,dx-1, 0, 0,bp,cs) != 2) Break; + if( num_cross( 0,dx-1,dy-1,dy-1,bp,cs) != 2) Break; + if( num_cross(dx/2,dx/2,0,dy-1,bp,cs) != 1) Break; + // check upper and lower gap + if( num_cross(dx/2,dx/2,0,dy/8,bp,cs) != 0) Break; + if( num_cross(dx/2,dx/2,dy-1-dy/8,dy-1,bp,cs) != 0) Break; + if (dx>5) { + dbg[0]=i=get_line2(dx-2-dx/8,0,dx/8,dy-1,bp,cs,100); if(i<95) Break; // black upwarts beam + dbg[1]=i=get_line2(dx/8,0,dx-2-dx/8,dy-1,bp,cs,100); if(i<95) Break; // black downwards beam + /* check horizontal line */ + dbg[2]=i=get_line2(0,dy/2,dx-1,dy/2,bp,cs,100); if(i<95) Break; + } + MSG(fprintf(stderr,"%d %d %d %d %d %d",dbg[0],dbg[1],dbg[2],dbg[3],dbg[4],dbg[5]);) + Setac(box1,(wchar_t)'*',98); + break; + } + // --- test @ - a popular char should be detectable! added in version v0.2.4a5 + if(bc==UNKNOWN) + for(ad=d=99;dx>5 && dy>7;){ + DBG( wchar_t c_ask='@'; ) + if (sdata->holes.num > 3) Break; /* tolerant against a tiny hole */ + // check ~ 7x10 0 with dot in it + // num_holes==1 + hole.y0<=dy/8,>=y1-dy/8 + if (sdata->holes.num==1 + && sdata->holes.hole[0].y0<=y0+dy/8 + && sdata->holes.hole[0].y1>=y1-dy/8) Break; + if (loop(bp, 0,dy/2,dx,cs,0,RI)>dx/4) Break; + if (loop(bp,dx-1,dy/2,dx,cs,0,LE)>dx/4) Break; + if (loop(bp,dx/2,dy-1,dy,cs,0,UP)>dx/8) Break; + if (loop(bp,dx/2, 0,dy,cs,0,DO)>dx/8) Break; + /* ..@@@@..<- 8x10 example + .@@..@@. + @@....@@ + @@..@@@@< + @@.@@.@@ + @@.@@.@@ + @@..@@@. + @@...... + .@@...@@ + ..@@@@@.<- */ + x=6*dx/16; + y=dy/2; + i=num_cross(0,dx-1,y,y,bp,cs); + if (i<3 || i>4) Break; + if( i != 4 && dx>8 ) ad=98*ad/100; + + i=num_cross(x,x,0,dy-1,bp,cs); if (i<2) Break; + if (i!=4) { j=num_cross(x+1,x+1,0,dy-1,bp,cs); + if (abs(4-j)4) Break; + if (i!=4) ad=97*ad/100; + if( num_cross(0, x,y,y,bp,cs) != 2 ) Break; + if( num_cross(x,dx-1,y,y,bp,cs) != 2 ) Break; + if( num_cross(x,x,0, y,bp,cs) != 2 ) Break; + if( num_cross(x,x,y,dy-1,bp,cs) != 2 ) Break; + if (dx>7) { + // if( num_hole(x0,x1,y0,y1,box1->p,cs,NULL) != 1 ) Break; + if (sdata->holes.num != 1) Break; + if( num_hole(x0+dx/8,x1-3*dx/16,y0+dy/8,y1-dy/8,box1->p,cs,NULL) != 1 ) Break; + } + Setac(box1,(wchar_t)'@',ad); + break; + } + // --- test paragraph v0.2.6 + if(bc==UNKNOWN && hchar) + for(ad=d=100;dx>4 && dy>15;){ + DBG( wchar_t c_ask='$'; ) + if (sdata->holes.num > 3) break; /* tolerant against a tiny hole */ + if( get_bw( 0,dx/2,3*dy/4,3*dy/4,bp,cs,1) == 1 ) break; + if( get_bw(3*dx/4,dx-1,3*dy/4,3*dy/4,bp,cs,1) == 0 ) break; + if( get_bw( 0,dx/4, dy/4, dy/4,bp,cs,1) == 0 ) break; + if( get_bw( dx/2,dx-1, dy/4, dy/4,bp,cs,1) == 1 ) break; + if( get_bw(dx/2,dx/2, 0, dy/4,bp,cs,1) == 0 ) break; + if( get_bw(dx/2,dx/2,dy-1-dy/4, dy-1,bp,cs,1) == 0 ) break; + if( num_cross(dx/2,dx/2,0,dy-1,bp,cs) != 4 ) break; + if( num_cross(x0,x1,y0+dy/2,y0+dy/2,box1->p,cs) != 2 ) break; + if( num_hole( x0,x1,y0+dy/4,y1-dy/4,box1->p,cs,NULL) != 1 ) break; + Setac(box1,SECTION_SIGN,96); + break; // paragraph=0xA7=167 + } + + return bc; +} + +/* ----------------------- partx -------------------------------- */ +static wchar_t ocr0px(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + pix *bp=sdata->bp; + int i,j,d,x,y,x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + i1,i2,i3,i4,j1,cs=sdata->cs; /* tmp-vars */ + int ya,ad; /* used for store significant points of char */ + wchar_t ac,bc=UNKNOWN; // bestletter + int hchar; // char is higher than e + int gchar; // char has ink lower than m3 + // --- hchar --- gchar ------------------------- + hchar=0;if( 2*y0<=2*box1->m2-(box1->m2-box1->m1) ) hchar=1; + gchar=0;if( 2*y1>=2*box1->m3+(box1->m4-box1->m3) ) gchar=1; + // if the char is slightly moved down correction can be done + if ( y0m2 && y1>box1->m3 && 2*y1m3+box1->m4) // moved + if( 2*(y0-(y1-box1->m3))<=2*box1->m2-(box1->m2-box1->m1) ) hchar=1; + + /* reserved for special chars, to test at the end */ + // --- test 'ff' --------------------------------------------------- + // ToDo: better check and call test 'f' and 'f' with subboxes + if( bc==UNKNOWN ) + for(ad=98;dx>4 && dy>6;){ // Dec00 body copied from H + DBG( wchar_t c_ask='f'; ) + if (sdata->holes.num > 2) break; /* tolerant against a tiny hole */ + if( num_cross(0,dx-1, dy/4 , dy/4 ,bp,cs) != 2 + && num_cross(0,dx-1,3*dy/16,3*dy/16,bp,cs) != 2 ) break; + if( num_cross(0,dx-1,3*dy/4 ,3*dy/4 ,bp,cs) != 2 + && num_cross(0,dx-1,3*dy/4+1,3*dy/4+1,bp,cs) != 2 ) break; + if( loop(bp,0 ,dy/8,dx,cs,0,RI) + + loop(bp,dx-1,dy/8,dx,cs,0,LE)>dx/2 ) break; // ~A + for( j1=0,i=1,y=y0+dy/10; yp,x0 ,y,dx,cs,0,RI) + +loop(box1->p,x1 ,y,dx,cs,0,LE); + if( j>10*dx/16 ) i=0; if ( j>j1 ) j1=j; } + if( !i ) break; + for( x=dx/4; x 3*dy/8 ) break; + if ( 10*y > dy ){ /* italic */ + i=loop(bp,x ,dy-y,dx,cs,0,RI); + if( i>1 && y+loop(bp,x+i-1,dy-y,dy,cs,0,UP)>3*dy/8 ) break; + } + } if( x>=dx/2 ) break; + x=loop(box1->p,x0 ,y1-dy/8,dx,cs,0,RI) + +loop(box1->p,x1 ,y1-dy/8,dx,cs,0,LE); + for( i=1,y=dy/4; ydx/5 ) i=0; } + if( !i ) break; // ~K Jul00 + for( i=0,ya=y=y0+dy/4; yp,x0 ,y,dx,cs,0,RI); + j=loop(box1->p,x0+j,y,dx,cs,1,RI); if( j>i ) { i=j; ya=y; } } + if( i<=dx/2 ) break; ya-=y0; + if( num_cross(0,dx-1,ya ,ya ,bp,cs) != 1 + && num_cross(0,dx-1,ya+1,ya+1,bp,cs) != 1 ) break; /* Dec00 */ + for( y=ya; y 2 + && num_cross(0,dx-1,y+1,y+1,bp,cs) > 2 ) break; + if ( yp,cs,1) == 0 ) i=0; + } if( !i ) break; + for(i=1,x=x0+dx/4;x<=x1-dx/4 && i;x++){ + if( get_bw( x, x,y1-dy/4,y1 ,box1->p,cs,1) == 0 ) i=0; + } if( i ) break; + for(i=1,x=x0+dx/4;x<=x1-dx/4 && i;x++){ + if( num_cross(x,x,y0+dy/8,y1-dy/8, box1->p,cs) == 1 ) i=0; + } if( i ) break; + for(i=1,y=y0;y<=y0+dy/4 && i;y++){ + if( num_cross(x0,x1,y,y, box1->p,cs) == 2 ) i=0; + } if( i ) break; + for(i=1,y=y1-dy/4;y<=y1 && i;y++){ + if( num_cross(x0,x1,y,y, box1->p,cs) == 2 ) i=0; + } if( i ) break; + if( num_cross(x0 ,x0+dx/8 ,y0+dy/8 ,y0 ,box1->p,cs) != 0 ) ad=96*ad/100; + if( get_bw(x1-dx/8, x1 , y0, y0+dy/8,box1->p,cs,1) != 1 ) break; + if( get_bw(x0 , x0+dx/8, y1-dy/8, y1,box1->p,cs,1) != 1 ) break; + i1=loop(bp,dx-1, dy/4,dx,cs,0,LE); if(i1>dx/2) break; + i2=loop(bp,dx-1, dy/2,dx,cs,0,LE); if(i2i1+dx/8) break; + i3=loop(bp,dx-1,dy-1-dy/4,dx,cs,0,LE); if(i3i2+dx/8) break; + if(abs(i1+i3-2*i2)>dx/16+1) break; + if( num_hole(x0,x1,y0+dy/4,y1,box1->p,cs,NULL) != 0 ) break; + if (!hchar) ad=96*ad/100; + if (!gchar) ad=99*ad/100; + ac=LATIN_SMALL_LIGATURE_FF; + Setac(box1,ac,ad); + break; + } + // --- test ae --------------------------------------------------- + if( bc==UNKNOWN ) + for(ad=98;dx>4 && dy>6;){ // provisorium + DBG( wchar_t c_ask=LATIN_SMALL_LETTER_AE; ) + if (sdata->holes.num > 4) Break; /* tolerant against a tiny hole */ + if( num_cross( dx/4,dx-1,3*dy/16,3*dy/16,bp,cs) != 2 + && num_cross(dx-1-dx/4,dx-1,3*dy/16,3*dy/16,bp,cs) != 1 ) Break; + if( num_cross(0,dx-1,3*dy/ 4,3*dy/ 4,bp,cs) < 2 ) Break; + if( num_cross(0,dx-1, 0, dy-1,bp,cs) < 3 ) Break; + if( num_cross(dx-1,0, 0, dy-1,bp,cs) < 3 ) Break; + if( num_cross(0,dx-1, dy/16, dy/16,bp,cs) < 2 ) + if( num_cross(0,dx-1,1+dy/16,1+dy/16,bp,cs) < 2 ) Break; + if( num_cross(0,dx-1,dy-1-dy/16,dy-1-dy/16,bp,cs) < 2 ) Break; + for( x=0,i2=y=dy/4; y<3*dy/4; y++ ){ + j=loop(bp,0,y,dx,cs,0,RI); if(j>x) { i2=y; x=j; } + } if( x3*dx/4 ) Break; + for( x=0,i4=y=dy/4; y<3*dy/4; y++ ){ + j=loop(bp,dx-1,y,dx,cs,0,LE); if(j>x) { i4=y; x=j; } + } if( x3*dx/4 ) Break; + for( x=0,i4=y=dy/8; y<3*dy/4; y++ ){ + j=loop(bp,dx-1 ,y,dx,cs,0,LE); + j=loop(bp,dx-1-j,y,dx,cs,1,LE); + if(j>x) { i4=y; x=j; } + } if( xp,cs,NULL) != 1 ) Break; + if( num_hole(x0+dx/2-1,x1,y0,y1-dy/4,box1->p,cs,NULL) != 1 ) Break; + ac=LATIN_SMALL_LETTER_AE; + Setac(box1,ac,ad); + if (ad>=100) return ac; + break; + + } + // --- test AE --------------------------------------------------- + if( bc==UNKNOWN ) + for(ad=98;dx>5 && dy>6;){ // provisorium + DBG( wchar_t c_ask=LATIN_CAPITAL_LETTER_AE; ) + if (sdata->holes.num > 2) Break; /* tolerant against a tiny hole */ + if( num_cross(0,dx-1,3*dy/16,3*dy/16,bp,cs) < 2 ) Break; + if( num_cross(0,dx-1,3*dy/ 4,3*dy/ 4,bp,cs) < 2 ) Break; + if( num_cross(0,dx-1, 0, dy-1,bp,cs) < 3 ) Break; + if( num_cross(0,dx-1, dy/16, dy/16,bp,cs) != 1 + && num_cross(0,dx-1, dy/32, dy/32,bp,cs) != 1 + && num_cross(0,dx-1, 0, 0,bp,cs) != 1 ) Break; + // check for upper horizontal line + j=loop(bp,dx-1 ,0,dx,cs,0,LE); x=j; + j=loop(bp,dx-1-j,0,dx,cs,1,LE); + i=loop(bp,dx-1 ,1,dx,cs,0,LE); if (ij) j=i; + if (x>dx/8) Break; + if (jx) break; x=j; + j=loop(bp, j,y,dx,cs,1,RI); if(j>i1) { i1=j; i2=y; } + j=loop(bp,dx-1 ,y,dx,cs,0,LE); + j=loop(bp,dx-1-j,y,dx,cs,1,LE); if(j>i3) { i3=j; i4=y; } + } if( y<3*dy/4 || i1i1) { i1=j; } + j=loop(bp,dx-1 ,dy-1-y,dx,cs,0,LE); + j=loop(bp,dx-1-j,dy-1-y,dx,cs,1,LE); if(j>i3) { i3=j; } + } if( i1<=dx/4 || i3<=dx/4 ) Break; + for( x=dx-1-dx/8; x>dx/2; x-- ){ // look for right the E + if( num_cross(x,x, 0,dy-1,bp,cs) == 3 ) + if( num_cross(x,x, 0,dy/4,bp,cs) == 1 ) + if( num_cross(x-1,dx-1-dx/8,3*dy/4,3*dy/4,bp,cs) == 0 ) + if( num_cross(x,x,3*dy/4,dy-1,bp,cs) == 1 ) break; + } if (x<=dx/2) Break; // not found + if (sdata->holes.num != 1) Break; + if( num_hole(x0,x0+3*dx/4,y0,y1-dy/4,box1->p,cs,NULL) != 1 ) Break; + // if( num_hole(x0, x1,y0,y1 ,box1->p,cs,NULL) != 1 ) Break; + ac=LATIN_CAPITAL_LETTER_AE; + Setac(box1,ac,ad); + if (ad>=100) return ac; + break; + + } + // --- test /0 /o /O O_WITH_STROKE ----------------------------------------- + for(ad=99;dx>4 && dy>4;){ // provisorium + DBG( wchar_t c_ask=LATIN_SMALL_LETTER_O_WITH_STROKE; ) + if (sdata->holes.num > 3) Break; /* tolerant against a tiny hole */ + if( num_cross( 0,dx-1,dy/2,dy/2,bp,cs) != 3 ) Break; + if( num_cross(dx/2,dx/2, 0,dy-1,bp,cs) != 3 ) Break; + if (loop(bp,dx-1,3*dy/8,dx,cs,0,RI)>dx/8) Break; + if (loop(bp, 0,5*dy/8,dx,cs,0,RI)>dx/8) Break; + if( num_cross( 0,dx-1, 0, 0,bp,cs) > 2 ) Break; + if( num_cross(dx/4,dx-1, 0, 0,bp,cs) > 2 ) Break; + if( num_cross( 0,dx-1,dy-1,dy-1,bp,cs) > 2 ) Break; + if( num_cross( 0,3*dx/4,dy-1,dy-1,bp,cs) > 2 ) Break; + if( num_cross( 0, 0, 0,dy-1,bp,cs) > 2 ) Break; + if( num_cross(dx-1,dx-1, 0,dy-1,bp,cs) > 2 ) Break; + if( num_cross( 0, 0,dy/4,dy-1,bp,cs) > 2 ) Break; + if( num_cross(dx-1,dx-1, 0,3*dy/4,bp,cs) > 2 ) Break; + i1 =loop(bp,dx-1 , 0,dx,cs,0,LE); if( i1>dx/8 ) Break; + i1+=loop(bp,dx-1-i1, 0,dx,cs,1,LE); if( i1>dx/3 ) Break; i1=dx-1-i1; + i2 =loop(bp, 0,dy-1,dx,cs,0,RI); if( i2>dx/8 ) Break; + for(y=1;y3*dx/16 ) break; + } if( yholes.num != 2) Break; + // if( num_hole(x0,x1,y0,y1,box1->p,cs,NULL) != 2 ) Break; + + if ( hchar && 2*y0m1+box1->m2 ) + ac=LATIN_CAPITAL_LETTER_O_WITH_STROKE; + else ac=LATIN_SMALL_LETTER_O_WITH_STROKE; + Setac(box1,ac,ad); + if (ad>=100) return ac; + break; + + } + // --- test /c /C C_WITH_STROKE CENT_SIGN -------------------------- + // here only the version with a continuously vertical line (not broken variant) + if( bc==UNKNOWN ) + for(ad=98;dx>4 && dy>4;){ // provisorium + DBG( wchar_t c_ask=CENT_SIGN; ) + if (sdata->holes.num > 2) Break; /* tolerant against a tiny hole */ + if( num_cross( 0,dx-1,dy/2,dy/2,bp,cs) != 2 ) Break; + if( num_cross(0,dx-1-dx/4,dy/2,dy/2,bp,cs) != 2 ) Break; + if( num_cross(dx/2,dx/2, 0,dy-1,bp,cs) != 3 ) Break; + if( num_cross( 0,dx-1, 0, 0,bp,cs) > 2 ) Break; + if( num_cross(dx/4,dx-1, 0, 0,bp,cs) > 2 ) Break; + if( num_cross( 0,dx-1,dy-1,dy-1,bp,cs) > 2 ) Break; + if( num_cross( 0,3*dx/4,dy-1,dy-1,bp,cs) > 2 ) Break; + if( num_cross( 0, 0, 0,dy-1,bp,cs) > 2 ) Break; + if( num_cross(dx-1,dx-1, 0,dy-1,bp,cs) > 3 ) Break; + if( num_cross( 0, 0,dy/4,dy-1,bp,cs) > 2 ) Break; + if( num_cross(dx-1,dx-1, 0,3*dy/4,bp,cs) > 3 ) Break; + i1 =loop(bp,dx-1 , 0,dx,cs,0,LE); if( i1>dx/4 ) Break; + i1+=loop(bp,dx-1-i1, 0,dx,cs,1,LE); if( i1>dx/4 ) Break; i1=dx-1-i1; + i2 =loop(bp, 0,dy-1,dx,cs,0,RI); if( i2>dx/4 ) Break; + for(y=0;ydx/16+1) x-=dx/16+1; + j=loop(bp,x,y,dx,cs,0,RI); // fprintf(stderr,"\n x=%d j=%d",x,j); + if( j>(dx+4)/8 ) ad=96*ad/100; + if( j>(dx+2)/4 ) break; + } if( yp,cs,NULL) != 1 ) Break; + if (sdata->holes.num != 1) Break; + + ac=CENT_SIGN; + Setac(box1,ac,ad); + if (ad>=100) return ac; + break; + + } + // --- test EURO_CURRENCY_SIGN ----------------------------------------- + if( bc==UNKNOWN ) + for(ad=98;dx>4 && dy>6;){ // provisorium + DBG( wchar_t c_ask='&'; ) + if (sdata->holes.num > 1) break; /* tolerant against a tiny hole */ + if( num_cross(dx/2,dx/2, 0,dy-1,bp,cs) != 4 ) break; + if( num_cross( 0,dx-1, 0, 0,bp,cs) != 1 ) break; + if( num_cross( 0,dx-1,dy-1,dy-1,bp,cs) != 1 ) break; + if( num_cross( 0,dx-1,dy/2,dy/2,bp,cs) != 1 ) break; + for(i=0,y=dy/4;ydx/4 ) break; + j=loop(bp,x,y,dx,cs,1,RI); if( j>i ) i=j; + } if( ydx/2 ) break; + } if( y>=dy-dy/4-1 ) break; + // if( num_hole(x0,x1,y0,y1,box1->p,cs,NULL) != 0 ) break; + if (sdata->holes.num != 0) break; + ac=EURO_CURRENCY_SIGN; + Setac(box1,ac,ad); + if (ad>=100) return ac; + break; + } + // --- test LETTER_C_WITH_CEDILLA --------------------------------------------------- + if (bc==UNKNOWN) + if (gchar) + for(ad=98;dx>3 && dy>6;){ // provisorium + DBG( wchar_t c_ask='c'; ) + if (sdata->holes.num > 0) break; /* no tolerant against tiny holes */ + j=loop(bp,dx-1,dy/16 ,dy,cs,0,LE); + x=loop(bp,dx-1,dy/16+1,dy,cs,0,LE); if (xdx) Break; // ~4 ocr-b + if( num_cross(0,dx-1,3*dy/16,3*dy/16,bp,cs) > 2 ) break; + if( num_cross(0,dx-1, 0, dy-1,bp,cs) < 2 ) break; + if( num_cross(0,dx-1, dy/16, dy/16,bp,cs) > 2 ) break; + for( x=dx,i2=y=dy/4; y<3*dy/4; y++ ){ + j=loop(bp,0,y,dx,cs,0,RI); if(j0 ) break; i1=x; + for( x=0,i4=y=dy/4; y<5*dy/8; y++ ){ + j=loop(bp,dx-1,y,dx,cs,0,LE); if(j>x) { i4=y; x=j; } + } if( xdy/4) break; + j =loop(bp,dx/2,j,dy,cs,0,DO); if(j3*dx) break; + j =loop(bp,dx-1-j/2,dy-1-dy/8,dy,cs,0,UP); if(j>dy/2) break; // ~() + // if( num_hole(x0,x1,y0,y1,box1->p,cs,NULL) != 0 ) break; + if (sdata->holes.num) break; + if( hchar ) ac= LATIN_CAPITAL_LETTER_C_WITH_CEDILLA; + else ac= LATIN_SMALL_LETTER_C_WITH_CEDILLA; + Setac(box1,ac,ad); + if (ad>=100) return ac; + break; + + } + // --- test # --------------------------------------------------- + for(ad=99;dx>4 && dy>4;){ // never sure? + DBG( wchar_t c_ask='#'; ) + if (sdata->holes.num > 2) Break; /* tolerant against a tiny hole */ + if (sdata->holes.num < 1) Break; + if( num_cross(0,dx-1, dy/8, dy/8,bp,cs) != 2 ) Break; + if( num_cross(0,dx-1,dy-1-dy/8,dy-1-dy/8,bp,cs) != 2 ) Break; + if( num_cross(0,dx-1, dy/2, dy/2,bp,cs) != 2 ) Break; + if( num_cross(0,dx/2, dy/2, dy/2,bp,cs) != 1 ) Break; + /* fat "#" have only small ends on left and right side, we tolerate this */ + j=loop(bp, 0,dy/8,dx,cs,0,RI); if(j<1 || j=dx/2) Break; if (j=dx/2) Break; if (j3*dx/4) { i1=0; break; } + j=loop(bp,j, y,dx,cs,1,RI); if(j>i1) { i1=j; } + j=loop(bp,0,dy-1-y,dx,cs,0,RI); if(j>3*dx/4) { i1=0; break; } + j=loop(bp,j,dy-1-y,dx,cs,1,RI); if(j>i3) { i3=j; } + } + if (i1holes.num != 1) {ad=95*ad/100;} + if( num_hole(x0+dx/8,x1-dx/8,y0+dy/8,y1-dy/8,box1->p,cs,NULL) != 1 ) Break; + // if( num_hole(x0 ,x1 ,y0 ,y1 ,box1->p,cs,NULL) != 1 ) Break; + + ac=(wchar_t) '#'; + if( gchar ) {ad=99*ad/100;} + Setac(box1,ac,ad); + if (ad>=100) return ac; + break; + } + // --- test bullet, full_box, grabbed cursor, ZapfDingBats_156 + if (bc==UNKNOWN) + for(ad=96;dx>4 && dy>4 && 2*dx>dy;){ // provisorium + DBG( wchar_t c_ask='#'; ) + if( get_bw(x0,x1,y0,y1,box1->p,cs,2) != 0 ) break; + ac=BULLET; + if (gchar && !hchar) ad=80*ad/100; + Setac(box1,ac,ad); + if (ad>=100) return ac; + break; + } + /* --- test | (vertical line, could be a I or l) --- */ + for(ad=99;dy>4 && 2*dxp,cs,2) != 0 ) break; + /* more unsure if the borders are not exact */ + if( get_bw(x0 ,x0+dx/8,y0+dy/9,y1-dy/9,box1->p,cs,2) != 0 ) ad=99*ad/100; + if( get_bw(x1-dx/8,x1 ,y0+dy/9,y1-dy/9,box1->p,cs,2) != 0 ) ad=99*ad/100; + if( get_bw(x0+dx/8,x1-dx/8,y0 ,y0+dy/8,box1->p,cs,2) != 0 ) ad=99*ad/100; + if( get_bw(x0+dx/8,x1-dx/8,y1-dy/8,y1 ,box1->p,cs,2) != 0 ) ad=99*ad/100; + if (3*dxm2 && 2*y1> box1->m2+box1->m3) Break; + if (box1->m2 && 3*y1>2*box1->m2+box1->m3) ad=95*ad/100; + ac='|'; + if (!hchar) ad=98*ad/100; + Setac(box1,ac,ad); + break; + } + // --- test % --------------------------------------------------- + for(ad=100;dx>5 && dy>7;){ // provisorium + DBG( wchar_t c_ask='%'; ) + if (sdata->holes.num > 2) break; /* tolerant against a tiny hole */ + if( num_cross(x0,x1 ,y0+dy/4,y0+dy/4,box1->p,cs) != 3 + && num_cross(x0,x1 ,y0+dy/8,y0+dy/8,box1->p,cs) != 3 ) Break; + if( num_cross(x0,x1+dx/4,y1-dy/4,y1-dy/4,box1->p,cs) != 3 + && num_cross(x0,x1+dx/4,y1-dy/8,y1-dy/8,box1->p,cs) != 3 ) Break; + if( num_cross(x0,x1, y0, y1,box1->p,cs) < 4 + && num_cross(x0+dx/8,x1, y0, y1,box1->p,cs) < 4 + && num_cross(x0,x1+dx/4, y0, y1,box1->p,cs) < 4 + && dx>7 && dy>15) Break; + if( num_cross(x0,x1, y0, y1,box1->p,cs) !=5 ) ad=99*ad/100; + + if (dx>7 && dy>12) { + if( num_hole(x0 ,x1 ,y0,y1-dy/4,box1->p,cs,NULL) != 1 ) Break; + if( num_hole(x0+dx/4,x1+dx/4,y0+dy/4,y1,box1->p,cs,NULL) != 1 ) Break; + if( num_hole(x0 ,x1+dx/4,y0,y1 ,box1->p,cs,NULL) != 2 ) Break; + } else ad=98*ad/100; + // use box1->p instead of b, because % is a sum of 3 objects + if ( loop(box1->p,x0,y0 ,dx,cs,0,RI) + <= loop(box1->p,x0,y0+dy/16+1,dx,cs,0,RI) ) ad=96*ad/100; // X + if ( loop(box1->p,x1,y1 ,dx,cs,0,LE) + <= loop(box1->p,x1,y1-1-dy/16,dx,cs,0,LE) ) ad=96*ad/100; // X + for (x=0;xp,cs,2) != 2 ) break; + } if (x=100) return ac; + break; + } + // --- test Omega --------------------------------------------------- + for(ad=d=99;dx>7 && dy>7;){ // min 3x4 + DBG( wchar_t c_ask=GREEK_CAPITAL_LETTER_OMEGA; ) + if( get_bw(x0 , x0+dx/2,y0+dy/2 , y0+dy/2,box1->p,cs,1) != 1 ) Break; + if( get_bw(x1-dx/2 , x1 ,y0+dy/2 , y0+dy/2,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/2 , x0+dx/2,y0 , y0+dy/2,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/2 , x0+dx/2,y0+dy/3 , y1-dy/3,box1->p,cs,1) != 0 ) Break; + + if( num_cross(x0+dx/2,x0+dx/2,y0 , y1-dy/3,box1->p,cs) != 1 ) Break; + if( num_cross(x0+dx/3,x1-dx/3,y0 , y0 ,box1->p,cs) != 1 ) // AND + if( num_cross(x0+dx/3,x1-dx/3,y0+1 , y0+1 ,box1->p,cs) != 1 ) Break; + if( num_cross(x0+dx/3,x1-dx/3,y1 , y1 ,box1->p,cs) != 2 ) // against "rauschen" + if( num_cross(x0+dx/3,x1-dx/3,y1-1 , y1-1 ,box1->p,cs) != 2 ) Break; + if( num_cross(x0 ,x0 ,y0+dy/3 , y1-dy/3,box1->p,cs) != 1 ) + if( num_cross(x0+1 ,x0+1 ,y0+dy/3 , y1-dy/3,box1->p,cs) != 1 ) Break; + if( num_cross(x1 ,x1 ,y0+dy/3 , y1-dy/3,box1->p,cs) != 1 ) + if( num_cross(x1-1 ,x1-1 ,y0+dy/3 , y1-dy/3,box1->p,cs) != 1 ) Break; + if (sdata->holes.num) Break; + // if( num_hole(x0,x1,y0,y1,box1->p,cs,NULL) != 0 ) break; + + if( loop(bp,0 ,0 ,x1-x0,cs,0,RI)<= + loop(bp,0 ,2 ,x1-x0,cs,0,RI) ) Break; + if( loop(bp,dx/2,dy-dy/4,x1-x0,cs,0,RI)>dx/4 + || loop(bp,dx/2,dy-dy/4,x1-x0,cs,0,LE)>dx/4 ) Break; + if( loop(bp,dx/2,3*dy/8,x1-x0,cs,0,RI)dx/8) Break; + x=loop(bp,i,dy-1-dy/16,x1-x0,cs,1,RI); i+=x; if(i<3*dx/8 || i>dx/2) Break; + x=loop(bp,i,dy-1-dy/16,x1-x0,cs,0,RI); i+=x; if(i5*dx/8) Break; + x=loop(bp,i,dy-1-dy/16,x1-x0,cs,1,RI); i+=x; if(i<7*dx/8) Break; + + /* look for a vertikal gap at lower end */ + for( x=dx/4;x<3*dx/4;x++ ){ + i=loop(bp,x,dy-1,y1-y0,cs,0,UP); + if( i>3*dy/4 ) break; + } + if( x>=3*dx/4 ) Break; + + if( !hchar ) ad=60*ad/100; + bc=GREEK_CAPITAL_LETTER_OMEGA; + Setac(box1,bc,ad); + break; + } + + return bc; +} + +// -------------------- OCR engine ;) ---------------------------- +wchar_t ocr0(struct box *box1, pix *bp, int cs){ + // pix p=*(box1->p); + int i,j,d,x,y,x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1; + int dx=x1-x0+1,dy=y1-y0+1, /* size */ + rx,ry,r1,r2,i1,i2,ad; /* tmp-vars */ + // ad,ac will be used in future + wchar_t bc = UNKNOWN; // bestletter + wchar_t um = SPACE; // modifier '" + int hchar; // char is higher than e + int gchar; // char has ink lower than m3 + int aa[4][4]; /* corner points, see xX, (x,y,dist^2,vector_idx) v0.41 */ + ocr0_shared_t sdata; // data used in all subfunctions + + sdata.box1=box1; + sdata.bp=bp; + sdata.cs=cs; + // --- hchar --- gchar ------------------------- + hchar=0;if( y0 < box1->m2-(box1->m2-box1->m1)/2 ) hchar=1; + gchar=0;if( y1 > box1->m3+(box1->m4-box1->m3)/2 ) gchar=1; + // if the char is slightly moved down correction can be done + if ( y0m2 && y1>box1->m3 && 2*y1m3+box1->m4) // moved + if( 2*(y0-(y1-box1->m3))<=2*box1->m2-(box1->m2-box1->m1) ) hchar=1; + + sdata.hchar=hchar; + sdata.gchar=gchar; + + /* search for nearest points to the 4 courners, typical for xX */ + /* this is faster as calling nearest_frame_vector 4 times */ + aa[0][0]=aa[1][0]=aa[2][0]=aa[3][0]=(x0+x1)/2; /* set to center */ + aa[0][1]=aa[1][1]=aa[2][1]=aa[3][1]=(y0+y1)/2; /* set to center */ + aa[0][2]=aa[1][2]=aa[2][2]=aa[3][2]=2*sq(128); /* distance to box edges */ + aa[0][3]=aa[1][3]=aa[2][3]=aa[3][3]=0; /* vector index */ + /* searching for 4 diagonal line ends */ + for (i=0;inum_frame_vectors[0];i++) { + x=box1->frame_vector[i][0]; /* take a vector */ + y=box1->frame_vector[i][1]; + /* distance to upper left end, normalized to 128 */ + j=0; d=sq((x-x0)*128/dx)+sq((y-y0)*128/dy); + // fprintf(stderr," setaa i= %2d xy= %3d %3d d=%5d aa[3]=%2d\n",i,x-x0,y-y0,d,aa[0][3]); + if (dnum_frames>0) // speedup v0.42 + num_hole(x0,x1,y0,y1,box1->p,cs,&sdata.holes); // call once + // printf(" num_holes=%d\n",sdata.holes.num); + + /* + after division of two glued chars, boundaries could be wrong, + check this first (ToDo: only if a flag set?) + */ + if (2*y0 < box1->m2+box1->m3) + if (box1->m4>box1->m3 && 2*box1->y1>box1->m4+box1->m3){ + /* could be a "I" from divided "Ij" or "Ig" */ + for(y=(box1->m3+box1->m2)/2;2*ym3+box1->m4;y++) + if( get_bw(x0,x1,y,y,box1->p,cs,1)==0 ) break; + if(2*ym3+box1->m4) + if( get_bw((x0+x1)/2,(x0+x1)/2,y,box1->m4,box1->p,cs,1)==0 ){ + /* be sure, ~_ */ + if (y>y0) y1=box1->y1=y; + } + } + + DBG( IFV fprintf(stderr,"\nDBG L%d (%d,%d): ",__LINE__,box1->x0,box1->y0); ) + DBG( IFV out_b(box1,sdata.bp,0,0,dx,dy,160); ) + DBG( IFV fprintf(stderr,"# aa[] %d %d %d %d %d %d %d %d (4 corners)" + " d= %d %d %d %d", + aa[0][0]-x0,aa[0][1]-y0,aa[1][0]-x0,aa[1][1]-y0, + aa[2][0]-x0,aa[2][1]-y0,aa[3][0]-x0,aa[3][1]-y0, + aa[0][2], aa[1][2], aa[2][2], aa[3][2]);) + DBG( IFV fprintf(stderr,"\n# holes %d gchar=%d hchar=%d",sdata.holes.num, gchar, hchar);) + + // --- test thin lines - --------------------------------- + for( ad=100; 2*dym3-box1->m2 && 3*dx>=4*dy && dx>2; ){ // min 3x3 (small font) + DBG( wchar_t c_ask='-'; ) + if( get_bw(x0+dx/8+1,x1-dx/8-1,y0+dy/8+((dy>2)?1:0), + y1-dy/8-((dy>2)?1:0),box1->p,cs,2)==2 ) break; + if( box1->dots ) { Setac(box1,'=',97);break; } + if (dx<=2*dy) ad=98*ad/100; + if (dx<=3*dy) ad=99*ad/100; + if (!box1->m4) ad=96*ad/100; + else { + if (y1>=box1->m3) { + if ( dx<2*dy) ad=98*ad/100; + if (2*dx<3*dy) ad=98*ad/100; + Setac(box1,'_',ad); + break; + } + } + Setac(box1,'-',ad); if (ad>=100) return '-'; + break; + } + // --- test thin lines = --------------------------------- + for( ; dy>2 && dx>2; ){ // min 3x3 (small font) + DBG( wchar_t c_ask='='; ) + for( y=y0;yp,cs,1)==1 ) break; + if( get_bw(x0+dx/10,x1-dx/10,y ,y ,box1->p,cs,2)==2 ) break; + if( get_bw(x0 ,x1 ,(y+y1)/2,(y+y1)/2,box1->p,cs,1)==1 ) break; + if( get_bw(x0+dx/10,x1-dx/10,y1 ,y1 ,box1->p,cs,2)==2 ) break; + Setac(box1,'=',100); + return '='; + } + // --- test dots : --------------------------------- + for( ad=100; dy>2 && dy>=2*dx; ){ // max 3x3 (small font) + + DBG( wchar_t c_ask=':'; ) + // check the gap hight + for( i1=dy/16;i1p,cs,1)==0 ) break; + if (i1>=dy/2) Break; + for( i2=dy/16;i2p,cs,1)==0 ) break; + if (i2>=dy/2) Break; + MSG(fprintf(stderr,"gap y12 %d %d",i1,i2);) + + if (box1->m3 && y1>box1->m3) ad=98*ad/100; // ~; + if (box1->m3 && 2*y0> box1->m2+box1->m1) ad=98*ad/100; // ~i + if (gchar) ad=99*ad/100; + ad=ad-abs(i1-i2)/dy*20; + if (abs(i1-dx)>dy/4) Break; // round or quadratic dots? + if (abs(i1-dx)>dy/8) ad=98*ad/100; + if (abs(i2-dx)>dy/4) Break; // round or quadratic dots? + if (abs(i2-dx)>dy/8) ad=98*ad/100; + if (box1->dots!=1) ad=96*ad/100; + Setac(box1,':',ad); // dx<=3 ad-- + if (ad>=100) return ':'; + break; + } + // --- test dots ; --------------------------------- + if( 2*y0> box1->m2+box1->m1 ) // ~i + if( 4*y1>=3*box1->m3+box1->m2 ) // ~: + for( ad=100; dy>5 && dx>1 && dy>2*dx; ){ // max 3x3 (small font) + DBG( wchar_t c_ask=';'; ) + // better would it be to detect round pixelcluster on top + // check high of upper and lower dot + for( i1=0;i1p,cs,1)==0 ) break; + if (i1>=dy/2) break; + for( i2=0;i2p,cs,1)==0 ) break; + if (i2m3) ad=97*ad/100; + if (i2-i1=100) return ';'; + break; + } + // --- first test small dots . --------------------------------- + if( 3*dym4-box1->m1 && abs(dx-dy)<(dx+dy)/4+2 + && 3*y1>=(2*box1->m3+ box1->m2) // dot near baseline? + && 5*y0>=(3*box1->m3+2*box1->m2) ){ // Jul00 + DBG( wchar_t c_ask='.'; ) + d=0; r1=60;r2=140; ad=99; + for(x=x0;x<=x1;x++)for(y=y0;y<=y1;y++){ /* circle equation */ + rx=100*(2*x-(x0+x1))/dx; // normalize to 15bit number + ry=100*(2*y-(y0+y1))/dy; + if( rx*rx + ry*ry < r1*r1 ) if( getpixel(box1->p,x,y)>=cs ){ d++;x=x1+1;y=y1+1; } + if( rx*rx + ry*ry > r2*r2 ) if( getpixel(box1->p,x,y)< cs ){ d++;x=x1+1;y=y1+1; } + // MSG( fprintf(stderr,"x= %3d %3d r= %6d %6d %6d", rx, ry, rx*rx+ry*ry, r1*r1, r2*r2); ) + } + if (loop(box1->p,x0,y0+dy/2,x1-x0,cs,0,RI)> dx/8) { ad=98*ad/100; // , + if (loop(box1->p,x0,y1 ,x1-x0,cs,0,RI)<=dx/8) ad=98*ad/100; } // , + MSG( fprintf(stderr,"d= %3d ad= %3d", d, ad); ) + if(d==0) + if( loop(box1->p,x0,y0,x1-x0,cs,0,RI) + <= loop(box1->p,x0,y1,x1-x0,cs,0,RI) + || loop(box1->p,x1,y0,x1-x0,cs,0,LE) + >= loop(box1->p,x1,y1,x1-x0,cs,0,LE) ) + { + bc='.'; + if (box1->dots) { Setac(box1,':',ad); ad=98*ad/100; } + Setac(box1,bc,ad); + } + } + // --- first test small dots , --------------------------------- + if( 3*dy<2*(box1->m4-box1->m1) + && 2*y0> box1->m2+box1->m3 + && (2*dx<3*dy + || get_bw(0,dx/2,dy/2,dy-1,bp,cs,1)==0) ){ // ocr-a-, + DBG( wchar_t c_ask=','; ) + ad=100; bc=','; + if (dy==1 && dx==1) ad=98*ad/100; + if (dy==2 && dx==1) ad=99*ad/100; // this is a problem case + if (dx>=dy) ad=99*ad/100; + if( 2*dy >= box1->m4-box1->m1) ad=98*ad/100; + if( loop(box1->p,x0,y0,x1-x0,cs,0,RI) /* simple line */ + > loop(box1->p,x0,y1,x1-x0,cs,0,RI) + && loop(box1->p,x1,y0,x1-x0,cs,0,LE) + < loop(box1->p,x1,y1,x1-x0,cs,0,LE) ) { ad=99*ad/100; } + else { /* with upper circle */ + if( loop(box1->p,x0,(y0+y1+1)/2,x1-x0,cs,0,RI)p,x1, y1 ,x1-x0,cs,0,LE)p,x0,y1-((dy>5)?1:0),x1-x0,cs,0,LE)>(dx+1)/2 ) + if( loop(box1->p,x0, y1 ,x1-x0,cs,0,LE)>(dx+1)/2 ) ad=96*ad/100; + } + if(box1->dots==1) { Setac(box1,';',ad); ad=99*ad/100; } + Setac(box1,bc,ad); + } + // --- first test small dots '" --------------------------------- + if( 2*dy < box1->m4 -box1->m1+1 + && 2*y0 < box1->m2 +box1->m3 + && 3*y1 < box1->m2+2*box1->m3+2 ){ + DBG( wchar_t c_ask='\''; ) + ad=100; bc='\''; + if (2*y1 >= box1->m2+box1->m3) { ad=96*ad/100; MSG({}) } // ~! + if (3*y1>=2*box1->m2+box1->m3) { ad=96*ad/100; MSG({}) } + if (get_bw(x0,x1,(box1->m2+box1->m3)/2,box1->m4,box1->p,cs,1)!=0) + { ad=98*ad/100; MSG({}) } + if (dx>4 + && num_cross(x0,x1,y1,y1,box1->p,cs) == 2) { // " " + bc='"'; + // ocr-a-" has no gap! + if ( get_bw((x0+x1)/2,(x0+x1)/2,y0,y1,box1->p,cs,1)!=0 ) ad=96*ad/100; + } else { + if ( num_cross(x0,x1, y0 , y0 ,box1->p,cs)!=1) ad=96*ad/100; + if ( num_cross(x0,x1,(y0+y1)/2,(y0+y1)/2,box1->p,cs)!=1) ad=98*ad/100; + if (dx>dy) { ad=96*ad/100; MSG({}) } + } + if ( num_cross(x1,x1, y0 , y1 ,box1->p,cs)!=1) ad=99*ad/100; + if ( num_cross(x0,x1, y0+dy/4 , y0+dy/4 ,box1->p,cs)>2) ad=97*ad/100; + if ( num_cross(x0,x1, y1-dy/4 , y1-dy/4 ,box1->p,cs)>2) ad=97*ad/100; // * 5x8font + if (2*y0 > box1->m1+box1->m2) ad=99*ad/100; + Setac(box1,bc,ad); + if (ad>=100) return bc; + } + // --- TILDE ~ --------------------------------- + if( 2*dym4-box1->m1 && dx>=dy && dx>3 && dy>1 + && 2*y0< box1->m1+box1->m2 + && 3*y1<2*box1->m2+box1->m3 ){ + if( loop(box1->p,x0,y0,dx,cs,0,RI) + > loop(box1->p,x0,y1,dx,cs,0,RI) + && loop(box1->p,x1,y0,dx,cs,0,LE) + < loop(box1->p,x1,y1,dx,cs,0,LE) + && num_cross(x0,x1,y0,y0,box1->p,cs) == 2 + && num_cross(x0,x1,y1,y1,box1->p,cs) == 2 ) { + DBG( wchar_t c_ask='~'; ) + bc=TILDE; + Setac(box1,bc,99); + } + } + // --- CIRCUMFLEX, hat ^ --------------------------------- + if( 2*dym4-box1->m1 && dx>=dy && dx>2 && dy>1 + && 2*y0< box1->m1+box1->m2 + && 3*y1<2*box1->m2+box1->m3 ){ + DBG( wchar_t c_ask='^'; ) + if( ( loop(box1->p,x0,y0 ,dx,cs,0,RI) + > loop(box1->p,x0,y1 ,dx,cs,0,RI)-dx/8 + || loop(box1->p,x0,y0 ,dx,cs,0,RI) + > loop(box1->p,x0,y1-1,dx,cs,0,RI)-dx/8 ) + && ( loop(box1->p,x1,y0 ,dx,cs,0,LE) + > loop(box1->p,x1,y1 ,dx,cs,0,LE)-dx/8 + || loop(box1->p,x1,y0 ,dx,cs,0,LE) + > loop(box1->p,x1,y1-1,dx,cs,0,LE)-dx/8 ) + && num_cross(x0,x1,y0 ,y0 ,box1->p,cs) == 1 + && ( num_cross(x0,x1,y1 ,y1 ,box1->p,cs) == 2 + || num_cross(x0,x1,y1-1,y1-1,box1->p,cs) == 2 )) { + bc='^'; + Setac(box1,bc,99); + } + } + // ------------------------------------------------------ +// if( dots==1 ){ um='\''; } +#if 0 /* ToDo: change to vectors, call here or in whatletter */ + if (box1->dots==0) { // i-dots ??? (if dots==0 is wrong) + y=box1->m1; + for(;yp,cs,1)==1) break; + { i1=y; + if( yp,cs,1)==0) break; + if( ybox1->m2-box1->m1){ + testumlaut(box1,cs,2,&um); // set modifier + new y0 ??? + + } + } + } +#else + um = box1->modifier; +#endif + if ( /* um==ACUTE_ACCENT || */ um==DIAERESIS){ + for(y=y1;y>y0;y--) + if( get_bw(x0,x1,y,y,box1->p,cs,1)==0) { y0=y; dy=y1-y0+1; break; } // scan "a "o "u + } + + // --- test numbers 0..9 --- separated for faster compilation + if( JOB->cfg.only_numbers ) return ocr0n(&sdata); + + // bc=ocr1(box1,bp,cs); + if(bc!=UNKNOWN && box1->num_ac>0 && box1->wac[0]==100) + return bc; // for fast compilable tests + + // ------ separated for faster compilation + // ToDo: inser ocr0_shared_t here and split into a,b,cC,d,e,f,g9,... +#define IF_NOT_SURE if(bc==UNKNOWN || box1->num_ac==0 || box1->wac[0]<100) + + IF_NOT_SURE bc=ocr0_eE(&sdata); + IF_NOT_SURE bc=ocr0_f(&sdata); + IF_NOT_SURE bc=ocr0_bB(&sdata); + IF_NOT_SURE bc=ocr0_dD(&sdata); + IF_NOT_SURE bc=ocr0_F(&sdata); + IF_NOT_SURE bc=ocr0_uU(&sdata); + IF_NOT_SURE bc=ocr0_micro(&sdata); + IF_NOT_SURE bc=ocr0_vV(&sdata); + IF_NOT_SURE bc=ocr0_rR(&sdata); + IF_NOT_SURE bc=ocr0_m(&sdata); + IF_NOT_SURE bc=ocr0_tT(&sdata); + IF_NOT_SURE bc=ocr0_sS(&sdata); + IF_NOT_SURE bc=ocr0_gG(&sdata); + IF_NOT_SURE bc=ocr0_xX(&sdata); + IF_NOT_SURE bc=ocr0_yY(&sdata); + IF_NOT_SURE bc=ocr0_zZ(&sdata); + IF_NOT_SURE bc=ocr0_wW(&sdata); + IF_NOT_SURE bc=ocr0_aA(&sdata); + IF_NOT_SURE bc=ocr0_cC(&sdata); + IF_NOT_SURE bc=ocr0_lL(&sdata); + IF_NOT_SURE bc=ocr0_oO(&sdata); + IF_NOT_SURE bc=ocr0_pP(&sdata); + IF_NOT_SURE bc=ocr0_qQ(&sdata); + IF_NOT_SURE bc=ocr0_iIjJ(&sdata); + IF_NOT_SURE bc=ocr0_n(&sdata); + IF_NOT_SURE bc=ocr0_M(&sdata); + IF_NOT_SURE bc=ocr0_N(&sdata); + IF_NOT_SURE bc=ocr0_h(&sdata); + IF_NOT_SURE bc=ocr0_H(&sdata); + IF_NOT_SURE bc=ocr0_k(&sdata); + IF_NOT_SURE bc=ocr0_K(&sdata); + IF_NOT_SURE bc=ocr0n(&sdata); + IF_NOT_SURE bc=ocr0_brackets(&sdata); + IF_NOT_SURE bc=ocr0p9(&sdata); + IF_NOT_SURE bc=ocr0px(&sdata); + + + if(box1->num_ac==0 && bc!=UNKNOWN) fprintf(stderr,""); + if(box1->num_ac>0 && box1->wac[0]>95) box1->c=bc=box1->tac[0]; + /* will be removed later, only fix old things */ + for (i=0;inum_ac;i++) if (box1->tac[i]==bc) { bc=box1->tac[0]; } + + return bc; +} + + diff --git a/3rdparty/gocr-0.48/src/ocr0.h b/3rdparty/gocr-0.48/src/ocr0.h new file mode 100644 index 0000000..4c67d77 --- /dev/null +++ b/3rdparty/gocr-0.48/src/ocr0.h @@ -0,0 +1,63 @@ +#ifndef _OCR0_H +#define _OCR0_H +#include "pgm2asc.h" + +/* ---------------------------------------------------------------- + - functions with thousand of lines make the compilation very slow + therefore the ocr0-function is splitted in subfunctions + - shared data used often in ocr0-subroutines are stored + in ocr0_shared structure. + * ------------------------------------------------------------ */ + +typedef struct ocr0_shared { /* shared variables and properties */ + + struct box *box1; /* box in whole image */ + pix *bp; /* extracted temporarly box, cleaned */ + int cs; /* global threshold value (gray level) */ + + /* ToDo: or MACROS: X0 = box1->x0 */ + int x0, x1, y0, y1; /* box coordinates related to box1 */ + int dx, dy; /* size of box */ + int hchar, gchar; /* relation to m1..m4 */ + int aa[4][4]; /* corner points, see xX (x,y,dist^2,vector_idx) v0.41 */ + holes_t holes; /* list of holes (max MAX_HOLES) */ + +} ocr0_shared_t; + +/* tests for umlaut */ +int testumlaut(struct box *box1, int cs, int m, wchar_t *modifier); +/* detect chars */ +wchar_t ocr0(struct box *box1, pix *b, int cs); +/* detect numbers */ +wchar_t ocr0n(ocr0_shared_t *sdata); + +static inline int sq(int x) { return x*x; } /* square */ + +/* + * go from vector j1 to vector j2 and measure maximum deviation of + * the steps from the line connecting j1 and j2 + * return the squared maximum distance + * in units of the box size times 1024 + */ +int line_deviation( struct box *box1, int j1, int j2 ); + +/* + * search vectors between j1 and j2 for nearest point a to point r + * example: + * + * r-> $$...$$ $ - mark vectors + * @@$..@@ @ - black pixels + * @@$..@@ . - white pixels + * @@@@.$@ + * a-> @@$@$@@ + * @$.@@@@ + * @@..$@@ + * @@..$@@ + * j1 --> $$...$$ <-- j2 + * + * ToDo: vector aa[5] = {rx,ry,x,y,d^2,idx} statt rx,ry? + * j1 and j2 must be in the same frame + * return aa? + */ +int nearest_frame_vector( struct box *box1, int j1, int j2, int rx, int ry); +#endif diff --git a/3rdparty/gocr-0.48/src/ocr0n.c b/3rdparty/gocr-0.48/src/ocr0n.c new file mode 100644 index 0000000..efa2997 --- /dev/null +++ b/3rdparty/gocr-0.48/src/ocr0n.c @@ -0,0 +1,1475 @@ +/* ocr-engine numbers only */ +/* +This is a Optical-Character-Recognition program +Copyright (C) 2000-2009 Joerg Schulenburg + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + see README for EMAIL-address + + OCR engine (c) Joerg Schulenburg + first engine: rule based --- numbers 0..9 + +*/ + +#include +#include +/* #include "pgm2asc.h" */ +#include "ocr0.h" +#include "ocr1.h" +#include "amiga.h" +#include "pnm.h" +#include "gocr.h" + +/* only for debugging and development */ +#define IFV if(JOB->cfg.verbose&4) +#define MM {IFV fprintf(stderr,"\nDBG %c L%04d (%d,%d): ",(char)c_ask,__LINE__,box1->x0,box1->y0);} + +/* the old debug mode (0.40) was only for a special char, for another char + * code must be recompiled with C_ASK='char' + * new debug mode (0.41) explains why char is declined or accepted as ABC... + * the output can be filtered by external scripts + * ToDo: we could reduce output to filter string + */ +#ifndef DO_DEBUG /* can be defined outside */ +#define DO_DEBUG 0 /* 0 is the default */ +#endif + +/* this macro is for debugging output: "if char is declined, why?" */ +#if DO_DEBUG /* 0=Work mode, 1=debugging mode */ +// Setac: output, that char is choosen with a probability +// Break: output, why the char is not choosen +// MSG: debugging functions for char C_ASK, mostly messages +// DBG: definitions usefull only for debugging +#define Setac(box1,ac,ad) { MM;IFV fprintf(stderr,"setac %d",ad);setac(box1,ac,ad); } +#define Break { MM;IFV fprintf(stderr,"break"); break; } +#define MSG(x) { MM;IFV x } +#define DBG(x) x +#else +#define Setac(box1,ac,ad) setac(box1,ac,ad) +#define Break break +#define MSG(x) +#define DBG(x) +#endif + +/* extern "C"{ */ + +// OCR engine ;) +wchar_t ocr0n(ocr0_shared_t *sdata){ + struct box *box1=sdata->box1; + pix *bp=sdata->bp; + int d,x,y,x0=box1->x0,x1=box1->x1,y0=box1->y0,y1=box1->y1; + int dx=x1-x0+1,dy=y1-y0+1,cs=sdata->cs; // size + int xa,xb,ya,yb, /* tmp-vars */ + i1,i2,i3,i4,i,j; + int (*aa)[4]=sdata->aa; /* corner-points, (x,y,dist^2,vector_idx) */ + wchar_t bc=UNKNOWN; // best char + int ad=0; // propability 0..100 + int hchar=sdata->hchar; // char is higher than 'e' + int gchar=sdata->gchar; // char has ink lower than m3 + int dots=box1->dots; + // --- test 5 near S --------------------------------------------------- + for(ad=d=100;dx>2 && dy>4;){ // min 3x4 + DBG( char c_ask='5'; ) + if (sdata->holes.num > 1) Break; /* be tolerant */ + if( num_cross( dx/2, dx/2,0,dy-1,bp,cs)!=3 + && num_cross(5*dx/8,3*dx/8,0,dy-1,bp,cs)!=3 ) Break; + + i1=loop(bp,dx-1,dy-1,dx,cs,0,LE); + i2=loop(bp,dx-1,dy-2,dx,cs,0,LE); + if (i2-i1 >= dx/4) Break; // ~{ 5x7font + + // get the upper and lower hole koords, y around dy/4 ??? + x=5*dx/8; + y =loop(bp,x,0,dy,cs,0,DO); if(y>dy/8) Break; + y +=loop(bp,x,y,dy,cs,1,DO); if(y>dy/4) Break; + i1 =loop(bp,x,y,dy,cs,0,DO)+y; if(i1>5*dy/8) Break; + i3=y=(y+i1)/2; // upper end can be shifted to the right for italic + x =loop(bp,0,y,dx,cs,0,RI); if(x>4*dx/8) Break; + x +=loop(bp,x,y,dx,cs,1,RI); if(x>5*dx/8) Break; + i1 =loop(bp,x,y,dx,cs,0,RI); i1=(i1+2*x)/2; // upper center (i1,i3) + y=11*dy/16; + x =loop(bp,dx-1 ,y,dx,cs,0,LE); if(x>dx/4) Break; + x +=loop(bp,dx-1-x,y,dx,cs,1,LE); if(x>dx/2) Break; + i2 =loop(bp,dx-1-x,y,dx,cs,0,LE); i2=dx-1-(i2+2*x)/2; // lower center x + + MSG( fprintf(stderr,"i1,i3=%d,%d i2=%d (upper+lower center)",i1,i3,i2);) + + y =loop(bp,i1,0,dy,cs,0,DO); + y +=loop(bp,i1,y,dy,cs,1,DO); + y =(3*y+i3)/4; + if( num_cross( i1, dx-1, y, y,bp,cs)>0 ){ /* S or serif5 ? */ + y =loop(bp,i1 ,i3,dy,cs,0,DO); + i =loop(bp,i1-1,i3,dy,cs,0,DO); + if (y>i ) ad=99*ad/100; /* looks like S */ + y =loop(bp,i1 ,i3,dy,cs,0,UP); + i =loop(bp,i1+1,i3,dy,cs,0,UP); + if (ii ) ad=99*ad/100; /* looks like S */ + if( num_cross( 0, dx/2, dy-1, dy-1,bp,cs)>1 + && num_cross( dx/2,dx-1, 0, 0,bp,cs)>1 ) ad=98*ad/100; /* serifs */ + if (loop(bp,0,dy-1,dx,cs,0,RI)==0) ad=98*ad/100; /* S or 7segment */ + ad=99*ad/100; + } + + for(y=dy/5;y<3*dy/4;y++) // right gap? + if( num_cross(i1,dx-1,y,y,bp,cs)==0 ) break; + if( y==3*dy/4 ) Break; + + for(y=dy/4;y<=11*dy/16;y++) // left gap? + if( num_cross(0,i2,y,y,bp,cs)==0 ) break; + if( y>11*dy/16 ) Break; + + // if( num_hole( x0, x1, y0, y1, box1->p,cs,NULL) > 0 ) break; + if (sdata->holes.num>0) Break; + + // sS5 \sl z left upper v-bow ? + for(x=dx,i=y=dy/4;yi2 ) i2=i; + i3=loop(bp,0, y ,dx,cs,0,RI); + i =loop(bp,0, y-1,dx,cs,0,RI); if( i=20 && dx<16 ) /* tall S */ + if( loop(bp,0, dy/5 ,dx,cs,0,RI) + ==loop(bp,0, dy/4 ,dx,cs,0,RI) + && + loop(bp,0, dy/10 ,dx,cs,0,RI) + >loop(bp,0, dy/4 ,dx,cs,0,RI) + && + loop(bp,0, 1 ,dx,cs,0,RI) + >loop(bp,0, dy/4 ,dx,cs,0,RI)+1 + && + loop(bp,dx-1, 0 ,dx,cs,0,LE) + >loop(bp,dx-1, 1 ,dx,cs,0,LE) ) Break; + + if( dy>=30 && dx>15 ) /* large S */ + if( loop(bp,dx/4,3*dy/10,dy,cs,1,DO)>0 ) // check start + if( loop(bp,dx-2,3*dy/4 ,dy,cs,1,UP)>0 ) // check end + if( num_cross(dx/4,dx-2,3*dy/10,3*dy/4,bp,cs)==1 ) Break; // connected? + MSG(fprintf(stderr,"~S ad=%d",ad);) + + // small fat s is very similar to rounded serif 5 + // but has a fat diagonal arrea (Oct08 JS) + if ( num_cross(dx/8,dx-1-dx/8,3*dy/10,3*dy/4,bp,cs)==1 ) ad=98*ad/100; + MSG(fprintf(stderr,"~S ad=%d",ad);) + + if( dy>17 && dx>9 ) /* S */ + if( loop(bp, 0,dy/2 ,dx,cs,0,RI)0 ) // check start + if( loop(bp,dx-2,2*dy/3 ,dy,cs,1,UP)>0 ) // check end + if( loop(bp, 0, dy/16,dx,cs,0,RI) + >= loop(bp,dx-1, dy-1-dy/16,dx,cs,0,LE) ) ad=ad*98/100; + MSG(fprintf(stderr,"~S ad=%d",ad);) + if( loop(bp,3*dx/4 , 0,dy,cs,1,DO) // ToDo: improve! + < loop(bp, dx/4 ,dy-1,dy,cs,1,UP) + && loop(bp,3*dx/4-1, 0,dy,cs,0,DO) + < loop(bp, dx/4+1,dy-1,dy,cs,0,UP) ) ad=ad*98/100; + MSG(fprintf(stderr,"~S ad=%d",ad);) + + if ( gchar) ad=99*ad/100; + if (!hchar) ad=99*ad/100; + Setac(box1,(wchar_t)'5',ad); + if (ad==100) return '5'; + break; + + } + // --- test 1 --------------------------------------------------- + for(ad=d=100;dy>4 && dy>dx && 2*dy>box1->m3-box1->m2;){ // min 3x4 + DBG( char c_ask='1'; ) + if( dots==1 ) Break; + if (sdata->holes.num > 1) Break; /* be tolerant */ + + if( num_cross(0, dx-1, 0 , 0 ,bp,cs) != 1 + && num_cross(0, dx-1, 1 , 1 ,bp,cs) != 1 ) Break; + if( num_cross(0, dx-1,dy/2,dy/2,bp,cs) != 1 ) Break; + if( num_cross(0, dx-1,dy-1,dy-1,bp,cs) != 1 + && num_cross(0, dx-1,dy-2,dy-2,bp,cs) != 1 ) Break; + /* 5x7 micr ocr-a + + ooo @@@.. + .$. ooo ..@.. + $@. oo ..@.. + .$. oo ..@.. + .@. ooooo ..@.@ + .$. ooooo ..@.@ + $@$ ooooo @@@@@ + + */ + i4=0; // human font + if( num_cross(0, dx-1,3*dy/4,3*dy/4,bp,cs) != 2 ) { // except ocr-a + for( y=1; y=dy/2) ad=98*ad/100; + for( i=dy/8,y=7*dy/16;y8 && !i ) Break; + } else { // ocr-a-1 + i= loop(bp,dx/2,0,dy,cs,0,DO); + if (loop(bp,dx/2,i,dy,cs,1,DO) 1 + && num_cross(0, dx-1, 1 , 1 ,bp,cs) > 1 ) Break; // ~/it_7 + + // calculate upper and lower mass center (without lower serif) + + x =loop(bp,0,7*dy/8-1,dx,cs,0,RI); i2=x; + x+=loop(bp,x,7*dy/8-1,dx,cs,1,RI)-1; i2=(i2+x)/2; + + i1=loop(bp,dx-1 ,1+0* dy/4,dx,cs,0,LE); i1=dx-1-i1-(x-i2)/2; + + x =(i1-i2+4)/8; i1+=x; i2-=x; + + if( get_line2(i1,0,i2,dy-1,bp,cs,100)<95 ) { // dont work for ocr-a-1 + i1=loop(bp,dx-1 ,1+0* dy/4,dx,cs,0,LE); i1=dx-1-i1; + if( get_line2(i1,0,i2,dy-1,bp,cs,100)<95 ) Break; + } + // upper and lower width + x =loop(bp,(i1+i2)/2,dy/2,dx,cs,1,RI); i=x; i3=0; + for(y=0;y<7*dy/8;y++) + if( loop(bp,i1+y*(i2-i1)/dy, y,dx,cs,1,RI)-i > 1+dx/8 ) break; + if(y<7*dy/8) ad=98*ad/100; // serif or ocr-a-1 ? + if(y<6*dy/8) ad=99*ad/100; /* MICR E-13B font Jan07 */ + if(y<4*dy/8) Break; + MSG(fprintf(stderr,"i12 %d %d ad= %d", i1,i2,ad);) +// out_x(box1); printf(" i12=%d %d\n",i1,i2); + x =loop(bp,i2,dy-1,dx,cs,1,LE); j=x; + x =loop(bp,i2,dy-2,dx,cs,1,LE); if(x>j)j=x; i=j; + x =loop(bp,i2,dy-1,dx,cs,1,RI); j=x; + x =loop(bp,i2,dy-2,dx,cs,1,RI); if(x>j)j=x; + if(abs(i-j)>1+dx/8) i3|=1; + if(i3) Break; +// out_x(box1);printf(" 11 i=%d j=%d i2=%d dx=%d\n",i,j,i1,dx); + // get most left upper point (i,j) + for(i=dx,j=y=0;y<7*dy/16;y++){ + x =loop(bp,0,y,dx,cs,0,RI); if(x 7*dx/16 MICR E-13B font + if ( i1-i<4*dx/16 ) Break; + MSG(fprintf(stderr,"i12 %d %d ad= %d", i1,i2,ad);) + x =loop(bp,0,dy/2,dx,cs,0,RI); // right distance + j =loop(bp,x,dy/2,dx,cs,1,RI); // thickness + if( j>x+(dy+16)/32 ) ad=98*ad/100; // ~l but MICR E-13B font + x =loop(bp,0,0,dx,cs,0,RI); // straight line ??? + j =loop(bp,0,1,dx,cs,0,RI); if( j>x ) Break; // ~l + if( x==j ) j =loop(bp,0,dy/8,dx,cs,0,RI); if( j>x && !i4) Break; + if( x==j ) if(loop(bp,0,dy/4,dx,cs,0,RI)>x) { // ~l + // check micr-1 first before taken as 'l' + if (loop(bp,dx-1,dy/8,dx,cs,0,LE)<=dx/4 + && loop(bp, 0,3*dy/4,dx,cs,1,RI)< dx-1) ad=97*ad/100; + } + MSG(fprintf(stderr,"1l check ad= %d", ad);) + x=j; +// j =loop(bp,0,2,dx,cs,0,RI); if( j>=x ) Break; x=j; // ~l +// j =loop(bp,0, 0,dx,cs,0,DO); if( !j ) Break; // ~7 + if( !hchar ) // ~ right part of n + /* look for upper right side, not going from nw to se */ + if( loop(bp,dx-1, 1,dx,cs,0,LE)-dy/6 + > loop(bp,dx-1,dy/4,dx,cs,0,LE) + // failes on small fonts with 1 point spaces between chars + // also do not know what the purpose of this line was (JS Oct08) + // || get_bw(x1+1,x1+2,y0,y0+dy/8,box1->p,cs,1)==1 + ) Break; // Mai00 + if( loop(bp,dx-1,3*dy/4,dx,cs,0,LE) > dx/2 + && get_bw(x1-dx/4,x1,y1-1,y1,box1->p,cs,1)==1 ) Break; // ~z Jun00 + + i=loop(bp, dx/8,0,dy,cs,0,DO); + for (y=dy,x=dx/2;x<3*dx/4;x++){ /* get upper end y */ + j=loop(bp,x,0,dy,cs,0,DO); if (j=i) ad=98*ad/100; // ~\tt l ??? ocr-a_1 + MSG(fprintf(stderr,"1l check i= %d y= %d ad= %d", i, y, ad);) + + if( loop(bp, 0, dy/8,dx,cs,0,RI) + -(dx-loop(bp,dx-1,7*dy/8,dx,cs,0,LE)) > dx/4 ) Break; // ~/ + + i= loop(bp, 0, 0,dy,cs,0,DO); // horizontal line? + if(dy>=12 && i>dy/8 && iloop(bp,dx-1, i,dx,cs,0,LE) + || loop(bp,dx-1,3*dy/16,dx,cs,0,LE)-dx/8 + >loop(bp,dx-1, i+1,dx,cs,0,LE) ) Break; // ~t,~f + i= loop(bp, 0,dy-1-dy/32,dx,cs,0,RI); + x= loop(bp, 0,dy-2-dy/32,dx,cs,0,RI); if (idx/8 + && loop(bp,dx-1, 3*dy/4,dx,cs,0,LE)-dx/8 + >loop(bp,dx-1,dy-1-dy/32,dx,cs,0,LE) ) Break; // ~t + if( loop(bp, 0,i-1,dx,cs,0,RI)>1 && dx<6) { + ad=99*ad/100; + if ( loop(bp,dx-1,i-1,dx,cs,0,LE)>1 ) Break; // ~t + } + } + + if (dx>8){ + if (loop(bp,0,3*dy/4,dx,cs,0,RI)- + loop(bp,0,dy/2-1,dx,cs,0,RI)>dx/4) ad=95*ad/100; // ~3 + if (loop(bp,dx-1,dy/2-1,dx,cs,0,LE)- + loop(bp,dx-1,3*dy/4,dx,cs,0,LE)>dx/8) ad=99*ad/100; // ~3 ocr-a? + if (loop(bp,dx-1, dy/16,dx,cs,0,LE)- + loop(bp,dx-1, dy/4,dx,cs,0,LE)>dx/8) ad=95*ad/100; // ~23 + MSG(fprintf(stderr,"23 check ad= %d", ad);) + } + /* font 5x9 "2" recognized as "1" */ + i=loop(bp,dx-1-dx/8,dy-1,dy,cs,0,UP); + if (i<=dy/4) { + i+=loop(bp,dx-1-dx/8,dy-1-i,dy,cs,1,UP); + if (i<=dy/4) { + i=loop(bp,dx-1-dx/8,dy-1-i,dy,cs,0,LE); + if (2*i>=dx && loop(bp,dx/4,0,dy,cs,0,DO)i+dx/8) { break; } + } if (y>=dy/2) ad=95*ad/100; // Feb07 care plates, right black border + MSG(fprintf(stderr,"ad= %d", ad);) + + if (sdata->holes.num > 0) Break; // mini holes should be filtered + if (!box1->m3 && ad>98) ad=98; else { + if (!hchar) ad=99*ad/100; + if (box1->y0>box1->m2) ad=98*ad/100; + if (box1->y1<(1*box1->m2+3*box1->m3)/4) ad=98*ad/100; + if (box1->y1-box1->y0<(box1->m3-box1->m1)/2) ad=98*ad/100; + if ( gchar) ad=99*ad/100; + } + + Setac(box1,(wchar_t)'1',ad); + break; + } + // --- test 2 old pixelbased - remove! ----------------------------- +#ifdef Old_pixel_based + for(ad=d=100;dx>2 && dy>4;){ // min 3x4 + DBG( char c_ask='2'; ) + if (sdata->holes.num > 1) Break; /* be tolerant */ + if( get_bw(x0+dx/2, x0+dx/2 , y1-dy/5, y1 ,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/2, x0+dx/2 , y0 , y0+dy/5,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/8, x1-dx/3 , y1-dy/3, y1-dy/3,box1->p,cs,1) != 1 ) Break; + + if( get_bw(x1-dx/3, x1 , y0+dy/3 , y0+dy/3,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0 , x0+dx/ 8, y1-dy/16, y1 ,box1->p,cs,1) != 1 ) Break; + if( num_cross(x0, x1-dx/8, y0+dy/2, y0+dy/2,box1->p,cs) != 1 ) Break; + if( get_bw(x0, x0+dx/9 , y0 , y0 ,box1->p,cs,1) == 1 + && get_bw(x0, x0+dx/2 ,y0+3*dy/16,y0+3*dy/16,box1->p,cs,1) == 1 ) Break; + if( get_bw(x0, x0+dx/9 , y0 , y0 ,box1->p,cs,1) + != get_bw(x1-dx/9, x1 , y0 , y0 ,box1->p,cs,1) ) + { if (dx<6 && dy<9) ad=99*ad/100; else Break; } + // out_x(box1); + + for( x=x0+dx/4;xp,cs) == 2 ) break; + if( x>=x1-dx/6 ) Break; + + for( x=x0+dx/4;xp,cs) == 2 ) break; + if( x>=x1-dx/6 ) Break; + + for(i=1,y=y0;yp,cs) == 2 ) i=0; + if( i ) ad=99*ad/100; // ToDo: ocr-a-2 should have 100% + + for(i=1,y=y0+dy/5;yp,cs,1) == 0 ) i=0; + if( i ) Break; + + x=x1-dx/3,y=y1; /* center bottom */ + turmite(box1->p,&x,&y,x0,x1,y0,y1,cs,UP,ST); if( yp,&x,&y,x0,x1,y0,y1,cs,ST,UP); if( yp,&x,&y,x0,x1,y0,y1,cs,UP,ST); if( yp,&x,&y,x0,x1,y0,y1,cs,RI,ST); + if( xp,&x,&y,x0,x1,y0,y1,cs,UP,ST); if( yp,&x,&y,x0,x1,y0,y1,cs,RI,ST); + if( xp,x1,y0+y,dx,cs,0,LE); // use p (not b) for broken chars + if( ix ) x=i; + } + if (y>dy/3 ) Break; // z + + // hole is only allowed in beauty fonts + // if( num_hole( x0, x1, y0, y1,box1->p,cs,NULL) > 0 ) // there is no hole + // if( num_hole( x0, x0+dx/2, y0, y0+dy/2,box1->p,cs,NULL) == 0 ) // except in some beauty fonts + if (sdata->holes.num>0) + if (sdata->holes.hole[0].x1 >= dx/2 || sdata->holes.hole[0].y1 >= dy/2) + Break; + + if (loop(bp,dx-1, 0,dx,cs,0,LE) + =i1 ) Break; // ~z + i1=loop(bp,dx-1,dy-3*dy/16,dx,cs,0,LE); + i2=loop(bp, 0,dy-3*dy/16,dx,cs,0,RI); if( i2>i1 ) ad=98*ad/100; // ~i + if (dots) ad=98*ad/100; // i + if (loop(bp,dx-1,dy-1-dy/16,dx,cs,0,LE)>dx/4) ad=96*ad/100; // \it i + + if ((!hchar) && box1->m4!=0) ad=80*ad/100; + Setac(box1,(wchar_t)'2',ad); + if (ad==100) return '2'; + break; + } +#endif + // --- test 2 new edge based v0.44 -------------------------------------- + for(ad=d=100;dx>2 && dy>4;){ // min 3x4 + // rewritten for vectors 0.42 + int ld, i1, i2, i3, i4, i5, i6, i7; // line derivation + corners + DBG( wchar_t c_ask='2'; ) + if (sdata->holes.num > 0) Break; /* no hole */ + /* half distance to the center */ + d=2*sq(128/4); + /* now we check for the lower ends, must be near to the corner */ + if (aa[1][2]>d/4) Break; /* [2] = distance, ~7... */ + if (aa[2][2]>d/2) Break; /* [2] = distance, ~r... */ + if (aa[0][2]>d/1) Break; /* [2] = distance, ~d... */ + if (aa[3][2]>d/1) Break; /* [2] = distance, ~bhk... */ + /* searching for 4 notches between neighbouring ends */ + +/* + type A B + + 1OOO OO + 2 1 2 <- 6 + 7-> OOOO O + O O <- 5 + 3OO4 3OO4 +*/ + + // ToDo: replace by vector code (get point on line at dy/4) + if (loop(bp,dx-1, 0,dx,cs,0,LE) + num_frame_vectors[0] - 1; + /* rightmost point on upper left side */ + i2=nearest_frame_vector(box1, aa[0][3], aa[1][3], x1+dx, y0+dy/4); + /* upper leftmost vector */ + i1=nearest_frame_vector(box1, aa[0][3], i2, x0-dx, (y0+y1)/2); + i3=aa[1][3]; + /* low leftmost vector */ + i5=nearest_frame_vector(box1, aa[2][3], aa[3][3], x0, y1); + /* low mostright vector */ + i4=nearest_frame_vector(box1, aa[1][3], i5, x1+dx, y1); + /* next local max_x-point after i5 */ + i6=i5; + for (i=i5;i!=aa[0][3];i=(i+1)%box1->num_frame_vectors[0]) { + if (box1->frame_vector[ i][0] + >box1->frame_vector[i6][0]) i6=i; // get next maximum + if (box1->frame_vector[ i][0]frame_vector[ i][1]frame_vector[i6][0]>x0+dx/2) break; // 5 + } + /* which type? ToDo: have a more sure algorithm */ + i7=nearest_frame_vector(box1, i2, i3, x0-dx/8, (y0+y1)/2); + if (box1->frame_vector[i7][0]<=x0+ dx/4 + && box1->frame_vector[i7][1]<=y0+2*dy/3) { + MSG(fprintf(stderr,"7-segment-type");) + } else { /* regular-book-type */ + MSG( fprintf(stderr,"upper bow not z-like? ad %d", ad); ) + if (aa[3][0]>=x1-dx/8 // x of upper right point + && aa[3][1]< y0+dy/8) ad=99*ad/100; // y of upper right point + if (aa[0][0]<=x0+dx/8 // x of upper left point + && aa[0][1]< y0+dy/8) ad=99*ad/100; // y of upper left point + if (aa[3][2]<=aa[1][2]) ad=97*ad/100; // dist to (maxx,0) <= (0,maxy) + } + // ToDo: output no=(x,y) + MSG( fprintf(stderr,"i1-7 %d %d %d %d %d %d %d ad %d", + i1,i2,i3,i4,i5,i6,i7,ad); ) + if (i5==i6) Break; // ~+ + + if (box1->frame_vector[i5][1] + -box1->frame_vector[i6][1]frame_vector[i1][1]>y0+dy/2) Break; // not to low + if (box1->frame_vector[i1][0]>x0+dx/8+dx/16) Break; // slanted ? + if (box1->frame_vector[i2][1]>(y0+ y1)/2) Break; + if (box1->frame_vector[i2][1]>(5*y0+3*y1)/8) ad=99*ad/100; + MSG( fprintf(stderr,"ad %d", ad); ) + if (box1->frame_vector[i2][0]<(x0+x1+1)/2) Break; // fat tiny fonts? + if (box1->frame_vector[i2][0]<(x0+2*x1)/3) ad=99*ad/100; + MSG( fprintf(stderr,"ad %d", ad); ) + if (box1->frame_vector[i3][0]>(3*x0+x1)/4) Break; + if (box1->frame_vector[i3][0]>(7*x0+x1)/8) ad=99*ad/100; + MSG( fprintf(stderr,"ad %d", ad); ) + /* check lowest left point */ + if (box1->frame_vector[i3][1]<(y0+3*y1)/4) Break; + if (box1->frame_vector[i3][1]<(y0+7*y1)/8) ad=99*ad/100; + MSG( fprintf(stderr,"ad %d", ad); ) + /* check lower leftmost point from right side */ + if (box1->frame_vector[i5][0]>(x0+2*x1)/3) Break; + if (box1->frame_vector[i5][0]>(x0+ x1)/2) ad=98*ad/100; + if (box1->frame_vector[i5][0]>(2*x0+2+x1)/3) ad=99*ad/100; /* 9x10 2 */ + MSG( fprintf(stderr,"ad %d", ad); ) + if (box1->frame_vector[i5][1]<(3*y0+5*y1)/8) Break; + if (box1->frame_vector[i5][1]<(y0+3*y1)/4) ad=99*ad/100; + MSG( fprintf(stderr,"ad %d", ad); ) + if (box1->frame_vector[i6][1]>(y0+2*y1)/3) Break; + if (box1->frame_vector[i6][1]>(y0+ y1)/2) ad=99*ad/100; + MSG( fprintf(stderr,"ad %d", ad); ) + if (box1->frame_vector[i6][0]<(x0+3*x1)/4) Break; + if (box1->frame_vector[i6][0]<(x0+7*x1)/8) ad=99*ad/100; + + /* check for zZ */ + + /* check if lower left and right points are joined directly */ + ld=line_deviation(box1, i3, i4); + MSG(fprintf(stderr,"i1-i2 %d %d dist= %d/%d",i1,i2,ld,2*sq(1024/4));) + if (ld >2*sq(1024/4)) Break; + if (ld > sq(1024/4)) ad=99*ad/100; + + if (box1->m3) { + if(!hchar){ ad=99*ad/100; } + if( gchar){ ad=99*ad/100; } + } else { if (ad==100) ad=99; } /* not 100% sure */ + Setac(box1,'2',ad); + if (ad==100) return '2'; + break; + } + // --- test 3 ------- + for(ad=d=100;dx>3 && dy>4;){ // dy<=dx nicht perfekt! besser mittleres + // min-suchen fuer m + int i1, i2, i3, i4, i5, i6, i7, i8; // line derivation + corners + DBG( char c_ask='3'; ) + if (sdata->holes.num > 1) Break; /* be tolerant */ + if (sdata->holes.num > 0) ad=98*ad/100; /* be tolerant */ + if (4*dxd/1) Break; /* [2] = distance, ~7... */ + if (aa[2][2]>d/1) Break; /* [2] = distance, ~r... */ + if (aa[0][2]>d/1) Break; /* [2] = distance, ~d... */ + if (aa[3][2]>d/1) Break; /* [2] = distance, ~bhk... */ +/* + type A B C + + 1OO8 1OO 1OO8 + O 8 2 <- 7,8 + 2 2 7 + 1-5-> 3OO7 37 3OO + 4 4 4 + O 6 6 <- 6 + 5OO6 5OO 5OO +*/ + /* rightmost point on upper left side */ + i2=nearest_frame_vector(box1, aa[0][3], aa[1][3], x1, y0+3*dy/16); + /* rightmost point on lower left side */ + i4=nearest_frame_vector(box1, aa[0][3], aa[1][3], x1, y1-dy/4); + /* leftmost point on middle left side */ + i3=nearest_frame_vector(box1, i2, i4, x0, y0+dy/2); + /* upper leftmost vector */ + i1=nearest_frame_vector(box1, aa[0][3], i2, x0-dx, (y0+y1)/2); + i5=aa[1][3]; // points to vector point in point list + i6=aa[2][3]; + i8=aa[3][3]; + /* leftmost point on middle right side */ + i7=nearest_frame_vector(box1, i6, i8, x0 , y0+dy/2); + /* which type? ToDo: have a more sure algorithm */ + if (box1->frame_vector[i7][0]>=x1- dx/4 + && box1->frame_vector[i6][0]>=x1- dx/8 // ToDo: ... + && box1->frame_vector[i6][1]>=y1- dy/8) { + MSG(fprintf(stderr,"7-segment-type");) + } else { /* regular-book-type */ + } + // ToDo: output no=(x,y) + MSG(fprintf(stderr,"i1-8 %d %d %d %d %d %d %d %d",i1,i2,i3,i4,i5,i6,i7,i8);) + // if (i5==i6) Break; // ~+ + + // i2 = upper left gap ) , i3 = middle left < + if (box1->frame_vector[i2][0] + -box1->frame_vector[i3][0]frame_vector[i4][0] + -box1->frame_vector[i3][0]frame_vector[i4][0] + -box1->frame_vector[i5][0]frame_vector[i2][0] + -box1->frame_vector[i1][0]frame_vector[i1][1]>y0+dy/2) Break; // not to low + if (box1->frame_vector[i1][0]>x0+dx/4+dx/16) Break; // slanted? + if (box1->frame_vector[i5][1]frame_vector[i5][0]>x0+dx/4) Break; + // ToDo .... + + // --- pixel based old code --- + // if( get_bw(x0+dx/2,x0+dx/2,y0,y0+dy/4,box1->p,cs,1) == 0 ) Break; // ~4 + // if( get_bw(x0+dx/2,x0+dx/2,y1-dy/8,y1,box1->p,cs,1) == 0 ) Break; // ~4 + // if( num_cross(x0+dx/2,x0+dx/2,y0 ,y1,box1->p,cs) < 2 ) Break; + // if( num_cross(x0+dx/4,x0+dx/4,y1-dy/2,y1,box1->p,cs) == 0 ) Break; + if( get_bw(dx/2,dx/2, 0,dy/6,bp,cs,1) == 0 ) Break; // ~4 + if( get_bw(dx/2,dx-1, dy/6,dy/6,bp,cs,1) == 0 ) Break; // ~j + if( get_bw(dx/2,dx/2,dy-1-dy/8,dy-1,bp,cs,1) == 0 ) Break; // ~4 + if( num_cross(dx/2,dx/2,0 ,dy-1,bp,cs) < 2 // normal + && num_cross(dx/3,dx/3,0 ,dy-1,bp,cs) < 2 ) Break; // fat LCD + if( num_cross(dx/4,dx/4,dy-1-dy/2,dy-1,bp,cs) == 0 ) Break; + if( loop(bp,dx/2, 0 ,dy,cs,0,DO)>dy/4 ) Break; + if( loop(bp,dx/2, dy-1,dy,cs,0,UP)>dy/4 ) Break; + if( loop(bp,dx-1, dy/3,dy,cs,0,LE)>dy/4 /* 3 with upper bow */ + && loop(bp,dx-1, dy/8,dy,cs,0,LE)>dy/4 /* 3 with horizontal line */ + && loop(bp,dx/4, dy/8,dy,cs,1,RI)dy/4 ) Break; + if( loop(bp,dx-1,3*dy/4,dy,cs,0,LE)>dy/2 ) Break; // ~2 Feb06 + if( loop(bp,dx-1,7*dy/8,dy,cs,0,LE)>dy/2 ) Break; // ~2 Feb06 + // search upper right half circle (may fail on 4x5 font) + for( i3=x=0,i1=y=dy/5;yx) { i3=x=i; i1=y; } + } i3--; + if( loop(bp,i3,i1,1,cs,0,UP)==1 ) { // find hidden gap in tiny fonts + i1--; i3+=loop(bp,i3,i1,dx,cs,0,RI)-1; + } + if (i31+dx/8) ad=ad*99/100; // ~1 with a pixel + // search lower right half circle + for( i4=x=0,i2=y=dy-1-dy/8;y>=dy/2;y-- ){ + i=loop(bp,0,y,dx,cs,0,RI); + if( i>x ) { i4=x=i;i2=y; } + } i4--; if(i41+dx/8) ad=ad*99/100; // ~1 with a pixel + + for( x=xa=0,ya=y=dy/4;y<3*dy/4;y++ ){ // right gap, not on LCD-font + i=loop(bp,dx-1,y,dx,cs,0,LE); + if (i>=xa) { xa=i;ya=y;x=xa+loop(bp,dx-1-xa,y,dx,cs,1,LE); } + } if (dy>3*dx) if (xa<2 && x-xa1+dx/8 // noLCD + && xa<=loop(bp,dx-1,i2,dx,cs,0,LE)) ad=ad*99/100; // ~1 with a pixel + if (xa>1+dx/8 // noLCD + && xa<=loop(bp,dx-1,i1,dx,cs,0,LE)) ad=ad*99/100; // ~1 with a pixel + + // upper left gap = (i3,i1) + // lower left gap = (i4,i2) + MSG(fprintf(stderr,"left white gaps (%d,%d) (%d,%d)",i3,i1,i4,i2);) + if( get_bw(i3,i3,i1,i2 ,bp,cs,1) != 1 ) Break; // no hor. middle line? + if( get_bw(i4,i4,i1,i2 ,bp,cs,1) != 1 ) Break; + if( get_bw(i3,i3,0 ,i1 ,bp,cs,1) != 1 ) Break; // no upper bow? + if( get_bw(i4,i4,i2,dy-1,bp,cs,1) != 1 ) Break; // no lower bow? + // hole is only allowed in beauty fonts + // if( num_hole( x0, x1, y0, y1,box1->p,cs,NULL) > 0 ) // there is no hole + // if( num_hole( x0, x0+dx/2, y0, y0+dy/2,box1->p,cs,NULL) == 0 ) // except in some beauty fonts + if (sdata->holes.num>0) + if (sdata->holes.hole[0].x1 >= dx/2 || sdata->holes.hole[0].y1 >= dy/2) + Break; + Setac(box1,(wchar_t)'3',ad); + if (ad==100) return '3'; + break; + } + // --- test 4 --------------------------------------------------- 25Nov06 + for(ad=d=100;dy>3 && dx>2;){ // min 3x4 ~holes.num > 1) Break; /* no or one hole */ + /* half distance to the center */ + d=2*sq(128/4); /* 2048 */ + /* now we check for the lower left end, must be far away */ + /* lowest is 144 for 9x10 screen font (Apr2009) */ + if (aa[1][2]num_frame_vectors[0] - 1; + /* leftmost upper point */ + i1=nearest_frame_vector(box1, 0, i, x0, y0-dy); + /* lowest from leftmost vector can be very low (20/23) */ + i2=nearest_frame_vector(box1, 0, i, x0-2*dx, (y0+7*y1)/8); + /* lowest vector */ + i4=nearest_frame_vector(box1, 0, i, (x0+2*x1)/3, y1+dy); + /* right center crossing point */ + i3=nearest_frame_vector(box1, i2, i4, x1, (3*y0+y1)/4); + /* get a point on the outer right side below top serif */ + /* next local max_y-point after i4 */ + i5=i4; + for (i=i4;i!=i2;i=(i+1)%box1->num_frame_vectors[0]) { + if (box1->frame_vector[ i][1] + frame_vector[i5][1]) i5=i; // get next maximum + if (box1->frame_vector[ i][1] + >box1->frame_vector[i5][1]+1) break; // break after maximum + if (box1->frame_vector[ i][0]num_frames>1) { // type C D + i = box1->num_frame_vectors[0] - 1; // end outer loop + j = box1->num_frame_vectors[1] - 1; // end inner loop + if (box1->num_frames>2) { // see font2.png, 2nd one pixel hole + j = box1->num_frame_vectors[2] - 1; // end inner loop + ad=99*ad/100; // little bit unsure + } + i6=nearest_frame_vector(box1, i+1, j, x1, y1); + i7=nearest_frame_vector(box1, i+1, j, x0, y1); + if (box1->frame_vector[i1][0] + -box1->frame_vector[i2][0]frame_vector[i ][0]-x0frame_vector[i ][1]-y07) ad=97*ad/100; // q + + } else { // type A B + i6=nearest_frame_vector(box1, i5, i1, (x0+3*x1)/4, y1-dy/8); + i7=nearest_frame_vector(box1, i5, i1, x0 , y1-dy/8); + MSG(fprintf(stderr,"open type");) + if (box1->frame_vector[i6][1]-y0>3*dy/4 + || box1->frame_vector[i7][1]-y0>3*dy/4) ad=96*ad/100; // ~uU + } + // ToDo: output no=(x,y) + MSG(fprintf(stderr,"i1-7 %d %d %d %d %d %d %d",i1,i2,i3,i4,i5,i6,i7);) + if (i5==i6) Break; // ~+ + + if (box1->frame_vector[i1][1]>y0+dy/8) Break; // not to low + if (box1->frame_vector[i2][1] + -box1->frame_vector[i1][1]frame_vector[i3][0] + -box1->frame_vector[i2][0]frame_vector[i3][1] + -box1->frame_vector[i2][1])>dy/4) Break; + if (box1->frame_vector[i2][0]>x0+dx/8) Break; + if (box1->frame_vector[i2][1]>y1-dy/8) Break; + if (box1->frame_vector[i4][1] + -box1->frame_vector[i2][1]frame_vector[i4][1] + -box1->frame_vector[i2][1]frame_vector[i4][1] + -box1->frame_vector[i3][1]<1+dy/16) Break; + if ((box1->frame_vector[i4][1] + -box1->frame_vector[i3][1])*2<= + (box1->frame_vector[i3][1] + -box1->frame_vector[i6][1])) Break; // 090728 gas_meter (flat-ulike) + if ((box1->frame_vector[i4][1] + -box1->frame_vector[i3][1])< + (box1->frame_vector[i3][1] + -box1->frame_vector[i6][1])) ad=99*ad/100; + if (box1->frame_vector[i4][1] + -box1->frame_vector[i3][1]frame_vector[i4][1] + -box1->frame_vector[i3][1]frame_vector[i4][1]frame_vector[i3][0]frame_vector[i3][0]frame_vector[i3][1]>y1-1) Break; + if (box1->frame_vector[i3][1]>y1-dy/16) Break; + if (box1->frame_vector[i3][1]>=y1) Break; // ~5x5# + if (box1->frame_vector[i5][0]frame_vector[i5][1]>y0+2*dy/3) Break; + if (box1->frame_vector[i6][1] + -box1->frame_vector[i5][1]<1+dy/16) Break; + if (box1->frame_vector[i6][0]frame_vector[i7][0]>x0+dx/2) Break; + if (box1->frame_vector[i7][0]>x0+dx/3) ad=ad*99/100; + if (box1->frame_vector[i6][1]frame_vector[i6][0]frame_vector[i6][0]=y1-1-dy/8) ad=96*ad/100; // ~ 42 + if (box1->frame_vector[i7][1]frame_vector[i3][1] + -box1->frame_vector[i2][1])>dy/4) Break; + + /* check if upper left and lower left points are joined directly */ + ld=line_deviation(box1, i1, i2); + MSG(fprintf(stderr," i1-i2 %d %d dist= %d/%d",i1,i2,ld,2*sq(1024/4));) + if (ld >2*sq(1024/4)) Break; + /* check if lower right and upper right points are joined directly */ + ld=line_deviation(box1, i2, i3); + MSG(fprintf(stderr," i2-i3 %d %d dist= %d/%d",i2,i3,ld,2*sq(1024/4));) + if (ld > sq(1024/4)) Break; + /* check if lower right and upper right points are joined directly */ + ld=line_deviation(box1, i3, i4); + MSG(fprintf(stderr," i3-i4 %d %d dist= %d/%d",i3,i4,ld,2*sq(1024/4));) + if (ld > sq(1024/4)) Break; + /* check if lower right and upper right points are joined directly */ + ld=line_deviation(box1, i6, i7); + MSG(fprintf(stderr," i6-i7 %d %d dist= %d/%d",i6,i7,ld,2*sq(1024/4));) + if (ld >2*sq(1024/4)) Break; + + // 4 exists as gchar and ~gchar + if(!hchar){ ad=99*ad/100; } + Setac(box1,'4',ad); + break; + } +#ifdef Old_pixel_based + // --- old test 4 pixelbased ------- remove! + for(ad=d=100;dx>3 && dy>5;){ // dy>dx, min 4x6 font + DBG( char c_ask='4'; ) + if (sdata->holes.num > 2) Break; /* be tolerant */ + if (sdata->holes.num > 1) ad=97*ad/100; + // upper raising or vertical line + if( loop(bp,0 ,3*dy/16,dx,cs,0,RI) + < loop(bp,0 ,2*dy/4 ,dx,cs,0,RI)-dx/8 ) Break; + // search for a vertical line on lower end + for (y=0;y= dx/2 ) break; + if (y>=dy/4) Break; + if( loop(bp,0 ,dy-1-dy/8,dx,cs,0,RI) < dx/4 ) Break; + // --- follow line from (1,0) to (0,.7) + y=0; x=loop(bp,0,0,dx,cs,0,RI); + if (x<=dx/4) { // ocr-a-4 + i=loop(bp,0,dy/4,dx,cs,0,RI); if (i>dx/4) Break; + i=loop(bp,i,dy/4,dx,cs,1,RI); if (i>dx/2) Break; + j=loop(bp,i,dy/4,dy,cs,0,DO)+dy/4; if (j>7*dy/8) Break; + } + turmite(bp,&x,&y,0,dx-1,0,dy-1,cs,DO,LE); if( x>=0 ) Break; + + y=loop(bp,0,0,dy,cs,0,DO); + if( (y+loop(bp,0,y,dy,cs,1,DO)) < dy/2 ) Break; + if( get_bw(x0 , x0+3*dx/8, y1-dy/7, y1-dy/7,box1->p,cs,1) == 1 ) Break; + if( get_bw(x0+dx/2, x1 , y1-dy/3, y1-dy/3,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/2, x0+dx/2, y0+dy/3, y1-dy/5,box1->p,cs,1) != 1 ) Break; + i=loop(bp,bp->x-1, bp->y/4,dx,cs,0,LE); + if( i > loop(bp,bp->x-1,2*bp->y/4,dx,cs,0,LE)+1 + && i > loop(bp,bp->x-1,3*bp->y/8,dx,cs,0,LE)+1 ) Break; + if (loop(bp,0,0,dx,cs,0,RI)>dx/4) { + for(i=dx/8+1,x=0;x15 && i ) Break; + for(i=dy/10+1,y=dy-1-dy/4;yp,cs,NULL); + // ToDo: + // - get start and endpoint of left edge of left vert. line + // and check if that is an streight line + // - check the right edge of the inner hole (if there) too + i4 = sdata->holes.num; + if (sdata->holes.num >0) { // ~q + i = loop(bp,0,dy/16,dx,cs,0,RI); + if (i < dx/3) Break; + if (i < dx/2) ad=98*ad/100; // hole? + if ( loop(bp, 0,dy-1,dy,cs,0,UP) + -loop(bp,dx/8+1,dy-1,dy,cs,0,UP)>dy/16) ad=97*ad/100; + } + // thickness of left vertical line + for (j=y=0;yj) j=i; + } + if (j>=dx/2) ad=98*ad/100; // ~q handwritten a (or very thinn 4) + // ToDo: check y of masscenter of the hole q4 + + if( i4 ) if( dx > 15 ) + if( loop(bp, dx/2, 0,dy,cs,0,DO)3*dx/4 + && i-loop(bp,dx-1,dy-1-dy/8,dx,cs,0,LE)>dx/4 ) Break; + + i =loop(bp,dx-1-dx/4,dy-1,dx,cs,0,UP); + if (i> dy/2) ad=97*ad/100; + if (i>3*dy/4) ad=97*ad/100; /* handwritten n */ + + if( num_cross(0 ,dx-1,dy/16 ,dy/16 , bp,cs) == 2 // ~9 + && loop(bp,dx-1,dy/16 ,dx,cs,0,LE)> + loop(bp,dx-1,dy/16+1+dy/32,dx,cs,0,LE) ) Break; + if ( !hchar) ad=99*ad/100; + if (gchar && !hchar) ad=98*ad/100; // ~q + Setac(box1,(wchar_t)'4',ad); + if (ad>99) bc='4'; + break; + } +#endif + // --- test 6 ------- ocr-a-6 looks like a b :( + for(ad=d=100;dx>3 && dy>4;){ // dy>dx + DBG( char c_ask='6'; ) + if (sdata->holes.num > 2) Break; /* be tolerant */ + if( loop(bp, 0, dy/4,dx,cs,0,RI)>dx/2 // ocr-a=6 + && loop(bp,dx-1, 0,dy,cs,0,DO)>dy/4 ) Break; // italic-6 + if( loop(bp, 0, dy/2,dx,cs,0,RI)>dx/4 ) Break; + if( loop(bp, 0,3*dy/4,dx,cs,0,RI)>dx/4 ) Break; + if( loop(bp,dx-1,3*dy/4,dx,cs,0,LE)>dx/2 ) Break; + if( num_cross(x0+ dx/2,x0+ dx/2,y0 ,y1 ,box1->p,cs) != 3 + && num_cross(x0+5*dx/8,x0+5*dx/8,y0 ,y1 ,box1->p,cs) != 3 ) { + if( num_cross(x0+ dx/2,x0+ dx/2,y0+dy/4,y1 ,box1->p,cs) != 2 + && num_cross(x0+5*dx/8,x0+5*dx/8,y0+dy/4,y1 ,box1->p,cs) != 2 ) Break; + // here we have the problem to decide between ocr-a-6 and b + if ( loop(box1->p,(x0+x1)/2,y0,dy,cs,0,DO)p,x0+dx/2,y0,dx,cs,0,DO)>dy/8 + && loop(box1->p,x1-dx/4,y0,dx,cs,0,DO)>dy/8 ) Break; + } + if( num_cross(x0 ,x1 ,y1-dy/4,y1-dy/4,box1->p,cs) != 2 ) Break; + for( y=y0+dy/6;yp,x1 ,y ,dx,cs,0,LE); if( x>dx/2 ) break; + x+=loop(box1->p,x1-x+1,y-1,dx,cs,0,LE); if( x>dx/2 ) break; + } if( y>=y0+dy/2 ) Break; + if (loop(box1->p,x0,y1-dy/3,dx,cs,0,RI)>dx/4 ) Break; + if (loop(box1->p,x1,y1-dy/3,dx,cs,0,LE)>dx/4 ) Break; + + if (sdata->holes.num != 1) Break; + if (sdata->holes.hole[0].y1 < dy/2) ad=95*ad/100; // whats good for? + if (sdata->holes.hole[0].y0 < dy/4) Break; + MSG( fprintf(stderr,"hole[0].x0,x1 %d %d", sdata->holes.hole[0].x0, + sdata->holes.hole[0].x1); ) + if (sdata->holes.hole[0].x0<1 + && dx-1-sdata->holes.hole[0].x1>2) ad=ad*99/100; // melted serif sS ? + if (loop(box1->p,x0,y0+dy/2,dx,cs,0,RI)>0 + && loop(box1->p,x0,y0+dy/4,dx,cs,0,RI)==0 + && loop(box1->p,x0,y1-dy/4,dx,cs,0,RI)==0) ad=97*ad/100; // molten serif sS +// if( num_hole ( x0, x1, y0, y0+dy/2,box1->p,cs,NULL) > 0 ) ad=95*ad/100; +// if( num_hole ( x0, x1, y0+dy/4, y1,box1->p,cs,NULL) != 1 ) Break; +// if( num_hole ( x0, x1, y0 , y1,box1->p,cs,NULL) != 1 ) Break; +// out_x(box1); printf(" x0 y0 %d %d\n",x0,y0); + /* check left vertical bow */ + i1=loop(bp,0,dy/8 ,dx,cs,0,RI); + i3=loop(bp,0,dy-1-dy/8,dx,cs,0,RI); + i2=loop(bp,0,dy/2 ,dx,cs,0,RI); + if(i1+i3-2*i2<-2-dx/16 && i1+i2+i3>0) Break; // convex from left + if(i1+i3-2*i2<1 && i1+i2+i3>0) ad=99*ad/100; // 7-segment-font + for( x=dx,y=0;ydx/2 && i2>dx/4) break; /* its a 6 (example: 7-segment) */ + if (i1x) break; /* may be serifen b */ + } if (y 1 ) i++; if( i>dy/8 ) break; + } if( ydots ) ad=98*ad/100; + Setac(box1,(wchar_t)'6',ad); + bc='6'; + break; + } + // --- test 7 --------------------------------------------------- + for(ad=d=100;dx>2 && dy>4;){ // dx>1 dy>2*dx + DBG( char c_ask='7'; ) + if (sdata->holes.num > 1) Break; /* be tolerant */ + if( loop(bp,dx/2,0,dy,cs,0,DO)>dy/8 ) Break; + if( num_cross(0,dx-1,3*dy/4,3*dy/4,bp,cs) != 1 ) Break; // preselect + for( yb=xb=y=0;y0 && j>dx/4) break; // gap after h-line + j=loop(bp,j,y,dx,cs,1,RI);if(j>xb){ xb=j;yb=y; } // h-line + } if( xbx ) x=j-1; + } if( yj) Break; + j=loop(bp, 0,j,dx,cs,0,RI); + if(j>dx/4 && j<=i+dx/16) Break; // tall T + } + + MSG( fprintf(stderr,"7: ad= %d",ad); ) + if( loop(bp, 0,3*dy/8,dx,cs,0,RI) + <=loop(bp,dx-1,3*dy/8,dx,cs,0,LE)+dx/8 ) ad=ad*98/100; // l + MSG( fprintf(stderr,"7: ad= %d",ad); ) + if( num_cross(0,dx-1,dy/4,dy/4,bp,cs) == 1 + && loop(bp,0,dy/4,dx,cs,0,RI) < dx/2 ) ad=ad*96/100; // J + MSG( fprintf(stderr,"7: ad= %d",ad); ) + + if (box1->m3 && dym3-box1->m2) ad=99*ad/100; // too small + if (box1->m3 && 2*dym3-box1->m2) ad=96*ad/100; // too small + if (dy>3*dx) ad=99*ad/100; // ) + if ( gchar) ad=99*ad/100; // J + if (!hchar) ad=99*ad/100; + Setac(box1,(wchar_t)'7',ad); + break; + } + // --- test 8 --------------------------------------------------- + // last change: May15th,2000 JS + for(ad=d=100;dx>2 && dy>4;){ // or we need large height + DBG( char c_ask='8'; ) + if (sdata->holes.num != 2) Break; + if( num_cross(x0,x1,y0 +dy/4,y0 +dy/4,box1->p,cs) != 2 ) Break; // ~gr (glued) + if( num_cross(x0,x1,y1 -dy/4,y1 -dy/4,box1->p,cs) != 2 + && num_cross(x0,x1,y1-3*dy/8,y1-3*dy/8,box1->p,cs) != 2 ) Break; + if( get_bw(x0,x0+dx/4,y1-dy/4,y1-dy/4,box1->p,cs,1) == 0 ) Break; // ~9 + if( get_bw(x0,x0+dx/2,y0+dy/4,y0+dy/4,box1->p,cs,1) == 0 ) Break; + if( get_bw(x0+dx/2,x0+dx/2,y0+dy/4,y1-dy/4,box1->p,cs,1) == 0 ) Break; // ~0 +// MSG( printf(" x0 y0 %d %d\n",x0,y0); ) + for( i2=i1=x=0,i=y=y0+dy/3;y<=y1-dy/3;y++){ // check left middle nick + j=loop(box1->p,x0,y,dx,cs,0,RI); + if (j>x || (abs(j-x)<=dx/8 /* care about MICR E-13B font */ + && (i1=loop(box1->p,x0+j,y,dx,cs,1,RI))>dx/2)) { + if (j>x) x=j; i=y; if (i1>i2) i2=i1; } + } if(i>=y1-dy/3 || (xdx/2) Break; // no gB + if (x< dx/4) ad=99*ad/100; // no B + if (x<=dx/8) ad=98*ad/100; // no B + j = loop(box1->p,x1,y1- dy/4,dx,cs,0,LE); + if( j>loop(box1->p,x1,y1- dy/5,dx,cs,0,LE) + && j>loop(box1->p,x1,y1-2*dy/5,dx,cs,0,LE) ) Break; // & + // check for upper hole + for (j=0;jholes.num;j++) { + if (sdata->holes.hole[j].y1 < i-y0+1 ) break; + if (sdata->holes.hole[j].y1 < i-y0+dy/8) break; + } if (j==sdata->holes.num) Break; // not found + // if( num_hole(x0,x1,y0,i+1 ,box1->p,cs,NULL)!=1 ) + // if( num_hole(x0,x1,y0,i+dy/8,box1->p,cs,NULL)!=1 ) Break; // upper hole + // check for lower hole + for (j=0;jholes.num;j++) { + if (sdata->holes.hole[j].y0 > i-y0-1 ) break; + } if (j==sdata->holes.num) Break; // not found + // if( num_hole(x0,x1,i-1,y1,box1->p,cs,NULL)!=1 ) Break; + i1=i; // left middle nick + /* find the middle right nick */ + for( x=0,i2=i=y=y0+dy/3;y<=y1-dy/3;y++){ + j=loop(box1->p,x1,y,dx,cs,0,LE); if( j>=x ) i2=y; + /* we care also for 7-segment and unusual fonts */ + if (j>x || (abs(j-x)<=(dx+4)/8 + && loop(box1->p,x1-j,y,dx,cs,1,LE)>dx/2)){ + if (j>x) x=j; i=y; } + // MSG(fprintf(stderr," yjix %d %d %d %d %d %d",y-y0,j,i-y0,x,loop(box1->p,x1-j,y,dx,cs,1,LE),dx/2);) + } + if( i>y0+dy/2+dy/10 ) Break; + // if( xdx/2 ) Break; + MSG(fprintf(stderr,"center bar at y= %d %d x=%d+%d i1=%d",i-y0,i2-y0,x,j,i1);) + if( num_cross(x0,x1, i , i ,box1->p,cs) != 1 + && num_cross(x0,x1, i+1 , i+1 ,box1->p,cs) != 1 + && num_cross(x0,x1,(i+i2)/2,(i+i2)/2,box1->p,cs) != 1 ) Break; // no g + if(abs(i1-i)>(dy+5)/10) ad=99*ad/100; // y-distance right-left-nick + if(abs(i1-i)>(dy+4)/8) ad=99*ad/100; // y-distance right-left-nick + if(abs(i1-i)>(dy+2)/4) Break; + // ~B ff + for(i=dx,y=0;yi+dx/16 ) break; + } if( yi+dx/16 ) break; + } if( y16 && num_cross(0,dx-1,dy-1,dy-1,bp,cs) > 1 + && loop(bp,0,dy-1,dx,cs,0,RI) 2 ) i++; if( i>dy/8 ) break; + } if( y 1) ad=98*ad/100; // & + if (num_cross(dx-1,dx-1,dy/2,dy-1,bp,cs) > 1) ad=98*ad/100; // & + if (num_cross( 0,dx-1, 0, 0,bp,cs) > 1) ad=98*ad/100; + if (dy>15) + if (num_cross( 0,dx-1, 1, 1,bp,cs) > 1) ad=98*ad/100; + /* if m1..4 is unsure ignore hchar and gchar ~ga */ + if (!hchar) { + if ((box1->m2-box1->y0)*8>=dy) ad=98*ad/100; + else ad=99*ad/100; + } + if ( gchar + && (box1->y1-box1->m3)*8>=dy) ad=99*ad/100; + Setac(box1,(wchar_t)'8',ad); + break; + } + // --- test 9 \it g --------------------------------------------------- + /* + * + * lcd micr round + * ooo ooo ooo + * o o o o o o + * ooo ooo ooo + * o o o + * ooo o o + */ + for(ad=d=100;dx>2 && dy>4;){ // dx>1 dy>2*dx + DBG( char c_ask='9'; ) + if (sdata->holes.num > 1) Break; + if( num_cross(x0+ dx/2,x0+ dx/2,y0,y1-dy/4,box1->p,cs) != 2 // pre select + && num_cross(x0+ dx/2,x0+ dx/2,y0, y1,box1->p,cs) != 3 // pre select + && num_cross(x0+3*dx/8,x0+3*dx/8,y0,y1,box1->p,cs) != 3 + && num_cross(x0+ dx/4,x1 -dx/4,y0,y1,box1->p,cs) != 3 ) Break; + if( num_cross(x0+ dx/2,x0 +dx/2,y0,y0+dy/4,box1->p,cs) < 1 ) Break; + if( num_cross(x0+ dx/2,x1, y0+dy/2 ,y0+dy/2,box1->p,cs) < 1 ) Break; + if( num_cross(x0,x1, y0+ dy/4 ,y0+ dy/4,box1->p,cs) != 2 + && num_cross(x0,x1, y0+3*dy/8 ,y0+3*dy/8,box1->p,cs) != 2 ) Break; + if( num_cross(x1-dx/8,x1,y0+dy/4,y0+dy/4,box1->p,cs) == 0) ad=ad*97/100; // ~4 + for( x=0,i=y=y0+dy/2;y<=y1-dy/4;y++){ // find notch (suche kerbe) + j=loop(box1->p,x0,y,dx,cs,0,RI); + if( j>x ) { x=j; i=y; } + } if (x<1 || xp,x0+x-1,y,dy/8+1,cs,0,DO)/2; y=i=y+j; + j=loop(box1->p,x0+x-1,y,dx/2 ,cs,0,RI); x+=j; + if (x5) + if( num_cross(x0+dx/2,x1,i,y1 ,box1->p,cs) != 1 /* fails on 5x8 */ + && num_cross(x0+dx/2,x1,i,y1-dy/8,box1->p,cs) != 1 ) Break; + if( num_cross(x0+dx/2,x0+dx/2,i,y1,box1->p,cs) > 1 ) Break; + if( num_cross(x0+dx/2,x1 ,i, i,box1->p,cs) != 1 ) Break; + + if (sdata->holes.num < 1) { /* happens for 5x7 font */ + if (dx<8) ad=98*ad/100; else Break; } + else { + if (sdata->holes.hole[0].y1 >= i+1) Break; + if (sdata->holes.hole[0].y0 > i-1) Break; + if (sdata->holes.num > 1) + if (sdata->holes.hole[1].y0 > i-1) Break; + // if( num_hole(x0,x1,y0,i+1,box1->p,cs,NULL)!=1 ) Break; + // if( num_hole(x0,x1,i-1,y1,box1->p,cs,NULL)!=0 ) Break; + } + if( loop(box1->p,x0,y1 ,dy,cs,0,RI)>dx/3 && + loop(box1->p,x0,y1-1,dy,cs,0,RI)>dx/3 + && (box1->m3==0 || (box1->m3!=0 && (!hchar || gchar)))) ad=98*ad/100; // no q OR ocr-a-9 + for( x=0,i=y=y0+dy/3;y<=y1-dy/3;y++){ // suche kerbe + j=loop(box1->p,x1,y,dx,cs,0,LE); + if( j>x ) { x=j; i=y; } + } if( x>dx/2 ) Break; // no g + i1=loop(bp,dx-1,dy/8 ,dx,cs,0,LE); if(i1>dx/2) Break; + i3=loop(bp,dx-1,dy-1-dy/8,dx,cs,0,LE); + i2=loop(bp,dx-1,dy/2 ,dx,cs,0,LE); if(i1+i3-2*i2<-1-dx/16) Break; // konvex + i1=loop(bp,dx-1,dy/4 ,dx,cs,0,LE); if(i1>dx/2) Break; + i3=loop(bp,dx-1,dy-1-dy/8,dx,cs,0,LE); + for(y=dy/4;yi1+(i3-i1)*(2*y-dy/2)/dy+dx/16) break; + // MSG(fprintf(stderr," y i2 %d %d %d",y,i2,i1+(i3-i1)*(2*y-dy/2)/dy);) + } if(y0){ + x--; // robust + y=loop(bp,dx-x-1, dy-1,dy,cs,0,UP); + if(y=16 && dx>9 + && loop(bp, 0,dy/ 4,dx,cs,0,RI) + -loop(bp, 0,dy/16,dx,cs,0,RI)>dx/6 + && loop(bp,dx-1,dy/ 4,dx,cs,0,LE) + -loop(bp,dx-1,dy/16,dx,cs,0,LE)>dx/6) Break; // ~ serif yY + + if (box1->m3) { + if ( gchar) ad=99*ad/100; /* unsure (italic g)? */ + if (box1->m2 && (!gchar) && y1 > box1->m3){ + ad=99*ad/100; + if (box1->m4-box1->m3<3) ad=99*ad/100; + // if (!hchar) ad = 99*ad/100; + } + if (!hchar) ad=99*ad/100; /* unsure */ + } else { if (ad==100) ad=99; } /* not 100% sure */ + Setac(box1,(wchar_t)'9',ad); + break; + } + // 0 is same as O !? + // --- test 0 (with one big hole in it ) ----------------------------- + for(d=ad=100;dx>2 && dy>3;){ // min 3x4 + DBG( char c_ask='0'; ) + if (sdata->holes.num > 1) Break; /* be tolerant */ + if( get_bw(x0 , x0+dx/3,y0+dy/2 , y0+dy/2,box1->p,cs,1) != 1 ) Break; + if( get_bw(x1-dx/3 , x1 ,y0+dy/2 , y0+dy/2,box1->p,cs,1) != 1 ) Break; + /* could be an O, unless we find a dot in the center */ + if( get_bw(x0 , x1 ,y0+dy/2 , y0+dy/2,box1->p,cs,1) != 3 ) ad=99; + if( get_bw(x0+dx/2 , x0+dx/2,y1-dy/3 , y1,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/2 , x0+dx/2,y0 , y0+dy/3,box1->p,cs,1) != 1 ) Break; + /* accept 0 with dot in center, accept \/0 too ... */ + if( get_bw(x0+dx/2 , x0+dx/2,y0+dy/3 , y1-dy/3,box1->p,cs,1) != 0 ) Break; + + if( num_cross(x0+dx/2,x0+dx/2,y0 , y1 ,box1->p,cs) != 2 ) Break; + if( num_cross(x0+dx/3,x1-dx/3,y0 , y0 ,box1->p,cs) != 1 ) // AND + if( num_cross(x0+dx/3,x1-dx/3,y0+1 , y0+1 ,box1->p,cs) != 1 ) Break; + if( num_cross(x0+dx/3,x1-dx/3,y1 , y1 ,box1->p,cs) != 1 ) // against "rauschen" + if( num_cross(x0+dx/3,x1-dx/3,y1-1 , y1-1 ,box1->p,cs) != 1 ) Break; + if( num_cross(x0 ,x0 ,y0+dy/3 , y1-dy/3,box1->p,cs) != 1 ) + if( num_cross(x0+1 ,x0+1 ,y0+dy/3 , y1-dy/3,box1->p,cs) != 1 ) Break; + if( num_cross(x1 ,x1 ,y0+dy/3 , y1-dy/3,box1->p,cs) != 1 ) + if( num_cross(x1-1 ,x1-1 ,y0+dy/3 , y1-dy/3,box1->p,cs) != 1 ) Break; + // if( num_hole(x0,x1,y0,y1,box1->p,cs,NULL) != 1 ) Break; + if (sdata->holes.num != 1) Break; + + i= loop(bp,0 ,0 ,x1-x0,cs,0,RI)- + loop(bp,0 ,2 ,x1-x0,cs,0,RI); + if (i<0) Break; + if (i==0) { + if (loop(bp,dx-1,0 ,x1-x0,cs,0,LE)> + loop(bp,dx-1,2 ,x1-x0,cs,0,LE) ) ad=98*ad/100; + ad=99*ad/100; /* LCD-type? */ + } + + x=loop(bp,dx-1,dy-1-dy/3,x1-x0,cs,0,LE); // should be minimum + for (y=dy-1-dy/3;yx) x=i; + } + if( ydx/8 ) + if( loop(bp,0 , dy/16,dx,cs,0,RI)dx/8 ) + if( loop(bp,0 ,dy-1-dy/16,dx,cs,0,RI)p,cs,1) == 0 + && get_bw(x1-dx/32,x1,y1-dy/32,y1,box1->p,cs,1) == 0 + && ( get_bw(x0,x0+dx/32,y0,y0+dy/32,box1->p,cs,1) == 1 + || get_bw(x0,x0+dx/32,y1-dy/32,y1,box1->p,cs,1) == 1 ) ) { + if (dx<32) ad=ad*99/100; else Break; // ~D + } + + // search lowest inner white point + for(y=dy,j=x=0;x 1 ) ad=99*ad/100; // ~a \it a + + if (loop(bp, 0, 0,x1-x0,cs,0,RI)>=dx/8) { // round, notLCD + if (loop(bp,dx-1,dy-1,x1-x0,cs,0,LE)dy/8 + || num_cross(0,dx-1, 0, 0,bp,cs) > 1 + || num_cross(0,dx-1,dy-1,dy-1,bp,cs) > 1 + ) ad=98*ad/100; // ~bq + + if (box1->m3) { + if (!hchar) ad=98*ad/100; else // ~o + if ( gchar) ad=99*ad/100; // wrong line detection? + } else { if (ad==100) ad=99; } /* not 100% sure */ + if (ad>99) ad=99; /* we can never be sure having a O, + let context correction decide, see below! */ + Setac(box1,(wchar_t)'0',ad); + break; + } + // --- test 0 with a straight line in it ------------------- + for(ad=100;dx>4 && dy>5;){ /* v0.3.1+ */ + DBG( char c_ask='0'; ) + if (sdata->holes.num > 3) Break; /* be tolerant */ + if (sdata->holes.num < 1) Break; + if (sdata->holes.num != 2) ad=95*ad/100; + if( get_bw(x0 , x0+dx/2,y0+dy/2 , y0+dy/2,box1->p,cs,1) != 1 ) Break; + if( get_bw(x1-dx/2 , x1 ,y0+dy/2 , y0+dy/2,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/2 , x0+dx/2,y1-dy/2 , y1,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/2 , x0+dx/2,y0 , y0+dy/2,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/2 , x0+dx/2,y0+dy/3 , y1-dy/3,box1->p,cs,1) != 1 ) Break; + // out_x(box1); printf(" x0 y0 %d %d\n",x0,y0); + if( num_cross(x0+dx/2,x0+dx/2,y0 , y1 ,box1->p,cs) != 3 ) Break; + if( num_cross(x0+dx/3,x1-dx/3,y0 , y0 ,box1->p,cs) != 1 ) // AND + if( num_cross(x0+dx/3,x1-dx/3,y0+1 , y0+1 ,box1->p,cs) != 1 ) Break; + if( num_cross(x0+dx/3,x1-dx/3,y1 , y1 ,box1->p,cs) != 1 ) // against "rauschen" + if( num_cross(x0+dx/3,x1-dx/3,y1-1 , y1-1 ,box1->p,cs) != 1 ) Break; + if( num_cross(x0 ,x0 ,y0+dy/3 , y1-dy/3,box1->p,cs) != 1 ) + if( num_cross(x0+1 ,x0+1 ,y0+dy/3 , y1-dy/3,box1->p,cs) != 1 ) Break; + if( num_cross(x1 ,x1 ,y0+dy/3 , y1-dy/3,box1->p,cs) != 1 ) + if( num_cross(x1-1 ,x1-1 ,y0+dy/3 , y1-dy/3,box1->p,cs) != 1 ) Break; + // if( num_hole(x0,x1,y0,y1,box1->p,cs,NULL) != 2 ) Break; + if (sdata->holes.num != 2) ad=85*ad/100; + + if( loop(bp,0 , 0,x1-x0,cs,0,RI)<= + loop(bp,0 , 2+dy/32,x1-x0,cs,0,RI) ) Break; + x= loop(bp,0 ,dy/2 ,x1-x0,cs,0,RI); + i= loop(bp,0 ,dy/2-1,x1-x0,cs,0,RI); if (i>x) x=i; + i= loop(bp,0 ,dy/2-2,x1-x0,cs,0,RI); if (i>x && dy>8) x=i; + if( loop(bp,0 , dy/4,x1-x0,cs,0,RI)x) x=i; + i= loop(bp,dx-1,dy/2-1,x1-x0,cs,0,LE); if(i>x && dy>8) x=i; + if( loop(bp,dx-1,3*dy/4,x1-x0,cs,0,LE)x) x=i; + } + if( ydy/4) Break; + y+=loop(bp,dx/2,dy-1-y,y1-y0,cs,1,UP); if(y>dy/3) Break; if (y>dy/4) ad=ad*99/100; + y+=loop(bp,dx/2,dy-1-y,y1-y0,cs,0,UP); if(3*y>2*dy) Break; + x =loop(bp,dx/2,dy-y,dx/2,cs,0,RI); if(x==0) Break; + // MM; fprintf(stderr," y=%d x=%d\n",y-1,x); + if( loop(bp,dx/2+x-1-dx/16,dy-y,y1-y0,cs,0,UP)==0 ) Break; + // $ + for(i=0,y=dy/4;y dx/4 + || loop(bp,dx-1,y,dx-1,cs,0,LE) > dx/4 ) break; + if( ydx/8 ) + if( loop(bp,0 , dy/16,dx,cs,0,RI)dx/8 ) + if( loop(bp,0 ,dy-1-dy/16,dx,cs,0,RI)p,cs,1) == 0 + && get_bw(x1-dx/32,x1,y1-dy/32,y1,box1->p,cs,1) == 0 + && ( get_bw(x0,x0+dx/32,y0,y0+dy/32,box1->p,cs,1) == 1 + || get_bw(x0,x0+dx/32,y1-dy/32,y1,box1->p,cs,1) == 1 ) ) Break; // ~D + + /* 5x9 font "9" is like "0" */ + if (dx<16) + if ( num_cross(x0,x0,y0,y1,box1->p,cs) != 1 ) ad=98*ad/100; + + // italic a + for(i=0,y=6*dy/8;y 2 ) i++; else i--; + if(i>0) ad=ad*98/100; // ~'a' \it a + if( !hchar ) ad=90*ad/100; + Setac(box1,(wchar_t)'0',ad); + break; + } + // --- test 0 with a straight dot in it ------------------- + for(ad=100;dx>4 && dy>5;){ /* v0.46+ */ + DBG( char c_ask='0'; ) + if (sdata->holes.num != 1) Break; /* do not be tolerant */ + if (sdata->box1->num_frames != 2) ad=85*ad/100; + if( get_bw(x0 , x0+dx/2,y0+dy/2 , y0+dy/2,box1->p,cs,1) != 1 ) Break; + if( get_bw(x1-dx/2 , x1 ,y0+dy/2 , y0+dy/2,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/2 , x0+dx/2,y1-dy/2 , y1,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/2 , x0+dx/2,y0 , y0+dy/2,box1->p,cs,1) != 1 ) Break; + if( get_bw(x0+dx/2 , x0+dx/2,y0+dy/3 , y1-dy/3,box1->p,cs,1) != 1 ) Break; + // out_x(box1); printf(" x0 y0 %d %d\n",x0,y0); + if( num_cross(x0+dx/2,x0+dx/2,y0 , y1 ,box1->p,cs) != 3 ) Break; + if( num_cross(x0+dx/3,x1-dx/3,y0 , y0 ,box1->p,cs) != 1 ) // AND + if( num_cross(x0+dx/3,x1-dx/3,y0+1 , y0+1 ,box1->p,cs) != 1 ) Break; + if( num_cross(x0+dx/3,x1-dx/3,y1 , y1 ,box1->p,cs) != 1 ) // against "rauschen" + if( num_cross(x0+dx/3,x1-dx/3,y1-1 , y1-1 ,box1->p,cs) != 1 ) Break; + if( num_cross(x0 ,x0 ,y0+dy/3 , y1-dy/3,box1->p,cs) != 1 ) + if( num_cross(x0+1 ,x0+1 ,y0+dy/3 , y1-dy/3,box1->p,cs) != 1 ) Break; + if( num_cross(x1 ,x1 ,y0+dy/3 , y1-dy/3,box1->p,cs) != 1 ) + if( num_cross(x1-1 ,x1-1 ,y0+dy/3 , y1-dy/3,box1->p,cs) != 1 ) Break; + // if( num_hole(x0,x1,y0,y1,box1->p,cs,NULL) != 2 ) Break; + + if( loop(bp,0 , 0,x1-x0,cs,0,RI)<= + loop(bp,0 , 2+dy/32,x1-x0,cs,0,RI) ) Break; + x= loop(bp,0 ,dy/2 ,x1-x0,cs,0,RI); + i= loop(bp,0 ,dy/2-1,x1-x0,cs,0,RI); if (i>x) x=i; + i= loop(bp,0 ,dy/2-2,x1-x0,cs,0,RI); if (i>x && dy>8) x=i; + if( loop(bp,0 , dy/4,x1-x0,cs,0,RI)x) x=i; + i= loop(bp,dx-1,dy/2-1,x1-x0,cs,0,LE); if(i>x && dy>8) x=i; + if( loop(bp,dx-1,3*dy/4,x1-x0,cs,0,LE)x) x=i; + } + if( ydy/4) Break; + y+=loop(bp,dx/2,dy-1-y,y1-y0,cs,1,UP); if(y>dy/3) Break; if (y>dy/4) ad=ad*99/100; + y+=loop(bp,dx/2,dy-1-y,y1-y0,cs,0,UP); if(3*y>2*dy) Break; + x =loop(bp,dx/2,dy-y,dx/2,cs,0,RI); if(x==0) Break; + // MM; fprintf(stderr," y=%d x=%d\n",y-1,x); + if( loop(bp,dx/2+x-1-dx/16,dy-y,y1-y0,cs,0,UP)==0 ) Break; + // $ + for(i=0,y=dy/4;y dx/4 + || loop(bp,dx-1,y,dx-1,cs,0,LE) > dx/4 ) break; + if( ydx/8 ) + if( loop(bp,0 , dy/16,dx,cs,0,RI)dx/8 ) + if( loop(bp,0 ,dy-1-dy/16,dx,cs,0,RI)p,cs,1) == 0 + && get_bw(x1-dx/32,x1,y1-dy/32,y1,box1->p,cs,1) == 0 + && ( get_bw(x0,x0+dx/32,y0,y0+dy/32,box1->p,cs,1) == 1 + || get_bw(x0,x0+dx/32,y1-dy/32,y1,box1->p,cs,1) == 1 ) ) Break; // ~D + + /* 5x9 font "9" is like "0" */ + if (dx<16) + if ( num_cross(x0,x0,y0,y1,box1->p,cs) != 1 ) ad=98*ad/100; + + // italic a + for(i=0,y=6*dy/8;y 2 ) i++; else i--; + if(i>0) ad=ad*98/100; // ~'a' \it a + if( !hchar ) ad=90*ad/100; + Setac(box1,(wchar_t)'0',ad); + break; + } + return box1->c; +} diff --git a/3rdparty/gocr-0.48/src/ocr1.c b/3rdparty/gocr-0.48/src/ocr1.c new file mode 100644 index 0000000..9104034 --- /dev/null +++ b/3rdparty/gocr-0.48/src/ocr1.c @@ -0,0 +1,85 @@ +// test routines - faster to compile +#include +#include +#include "pgm2asc.h" +#include "unicode.h" +#include "amiga.h" +#include "gocr.h" + +// for learn_mode/analyze_mode high, with, yoffset, num of pattern_i, +// - holes (center,radius in relative coordinates) etc. => cluster analyze +// num_hole => min-volume, tolerance border +// pattern: @@ @. @@ +// .@ @. .. +// regular filter for large resolutions to make edges more smooth (on boxes) +// extra-filter (only if not recognized?) +// map + same color to (#==change) +// - anti color +// . not used +// strongest neighbour pixels (3x3) => directions +// second/third run with more and more tolerance!? + +/* FIXME jb: following is unused */ +#if 0 +struct lobj { // line-object (for fitting to near lines) + int x0,y0; // starting point (left up) + int x1,y1; // end point (right down) + int mt; // minimum thickness + int q; // quality, overlapp +}; + +/* FIXME jb global */ +struct lobj obj1; +#endif + +// that is the first draft of feature extraction +// detect main lines and bows +// seems bad implemented, looking for better algorithms (ToDo: use autotrace) +#define MAXL 10 +void ocr2(pix *b,int cs){ + int x1,y1,x2,y2,l,i,j,xa[MAXL],ya[MAXL],xb[MAXL],yb[MAXL],ll[MAXL]; + for(i=0;ix;x1++) // very slowly, but simple to program + for(y1=0;y1y;y1++) // brute force + for(x2=0;x2x;x2++) + for(y2=y1+1;y2y;y2++) + { + if( get_line2(x1,y1,x2,y2,b,cs,100)>99 ) + { // line ??? + l=(x2-x1)*(x2-x1)+(y2-y1)*(y2-y1); // len + for(i=0;ix/2 + && abs(y1+y2-ya[i]-yb[i])<1+b->y/2 + && abs(y1-ya[i])<1+b->y/4 + && abs(x1-xa[i])<1+b->x/4 + ) + { + if( l>ll[i] ) + { + for(j=i;jll[i] ){ // insert if larger + for(j=MAXL-1;j>i;j--){ // shift table + xa[j]=xa[j-1];ya[j]=ya[j-1]; + xb[j]=xb[j-1];yb[j]=yb[j-1];ll[j]=ll[j-1]; + } + xa[i]=x1;ya[i]=y1;xb[i]=x2;yb[i]=y2;ll[i]=l; + break; + } + } + } + } + for(i=0;i + + The algorithm is very simple but works good hopefully. + + Compare the grayscale histogram with a mass density diagram: + I think the algorithm is a kind of + divide a body into two parts in a way that the mass + centers have the largest distance from each other, + the function is weighted in a way that same masses have a advantage + + - otsu algorithm is failing on diskrete multi color images + + TODO: + RGB: do the same with all colors (CMYG?) seperately + + test: hardest case = two colors + bbg: test done, using a two color gray file. Output: + # threshold: Value = 43 gmin=43 gmax=188 + + my changes: + - float -> double + - debug option added (vvv & 1..2) + - **image => *image, &image[i][1] => &image[i*cols+1] + - do only count pixels near contrast regions + this makes otsu much better for shadowed fonts or multi colored text + on white background + + (m) Joerg Schulenburg (see README for email address) + + ToDo: + - measure contrast + - detect low-contrast regions + + */ + +#include +#include + +#define Abs(x) ((x<0)?-(x):x) + +/*======================================================================* + * global thresholding routine * + * takes a 2D unsigned char array pointer, number of rows, and * + * number of cols in the array. returns the value of the threshold * + * x0,y0,x0+dx,y0+dy are the edgepoints of the interesting region * + * vvv is the verbosity for debugging purpose * + *======================================================================*/ +int +otsu (unsigned char *image, int rows, int cols, + int x0, int y0, int dx, int dy, int vvv) { + + unsigned char *np; // pointer to position in the image we are working with + unsigned char op1, op2; // predecessor of pixel *np (start value) + int maxc=0; // maximum contrast (start value) + int thresholdValue=1; // value we will threshold at + int ihist[256]; // image histogram + int chist[256]; // contrast histogram + + int i, j, k; // various counters + int is, i1, i2, ns, n1, n2, gmin, gmax; + double m1, m2, sum, csum, fmax, sb; + + // zero out histogram ... + memset(ihist, 0, sizeof(ihist)); + memset(chist, 0, sizeof(chist)); + op1=op2=0; + + gmin=255; gmax=0; k=dy/512+1; + // v0.43 first get max contrast, dont do it together with next step + // because it failes if we have pattern as background (on top) + for (i = 0; i < dy ; i+=k) { + np = &image[(y0+i)*cols+x0]; + for (j = 0; j < dx ; j++) { + ihist[*np]++; + if(*np > gmax) gmax=*np; + if(*np < gmin) gmin=*np; + if (Abs(*np-op1)>maxc) maxc=Abs(*np-op1); /* new maximum contrast */ + if (Abs(*np-op2)>maxc) maxc=Abs(*np-op2); /* new maximum contrast */ + /* we hope that maxc will be find its maximum very fast */ + op2=op1; /* shift old pixel to next older */ + op1=*np; /* store old pixel for contrast check */ + np++; /* next pixel */ + } + } + + // generate the histogram + // Aug06 images with large white or black homogeneous + // areas give bad results, so we only add pixels on contrast edges + for (i = 0; i < dy ; i+=k) { + np = &image[(y0+i)*cols+x0]; + for (j = 0; j < dx ; j++) { + if (Abs(*np-op1)>maxc/4 + || Abs(*np-op2)>maxc/4) + chist[*np]++; // count only relevant pixels + op2=op1; /* shift old pixel to next older */ + op1=*np; /* store old pixel for contrast check */ + np++; /* next pixel */ + } + } + + // set up everything + sum = csum = 0.0; + ns = 0; + is = 0; + + for (k = 0; k <= 255; k++) { + sum += (double) k * (double) chist[k]; /* x*f(x) cmass moment */ + ns += chist[k]; /* f(x) cmass */ + is += ihist[k]; /* f(x) imass */ + // Debug: output to out_hist.dat? + // fprintf(stderr,"\chistogram %3d %6d (brightness weight)", k, ihist[k]); + } + + if (!ns) { + // if n has no value we have problems... + fprintf (stderr, "NOT NORMAL, thresholdValue = 160\n"); + return (160); + } + + // ToDo: only care about extremas in a 3 pixel environment + // check if there are more than 2 mass centers (more colors) + // return object colors and color radius instead of threshold value + // also the reagion, where colored objects are found + // what if more than one background color? no otsu at all? + // whats background? box with lot of other boxes in it + // threshold each box (examples/invers.png,colors.png) + // get maximum white and minimum black pixel color (possible range) + // check range between them for low..high contrast ??? + // typical scenes (which must be covered): + // - white page with text of different colors (gray values) + // - binear page: background (gray=1) + black text (gray=0) + // - text mixed with big (dark) images + // ToDo: recursive clustering for maximum multipol moments? + // idea: normalize ihist to max=1024 before otsu? + + // do the otsu global thresholding method + + if ((vvv&1)) // Debug + fprintf(stderr,"# threshold: value ihist chist mass_dipol_moment\n"); + fmax = -1.0; + n1 = 0; + for (k = 0; k < 255; k++) { + n1 += chist[k]; // left mass (integration) + if (!n1) continue; // we need at least one foreground pixel + n2 = ns - n1; // right mass (num pixels - left mass) + if (n2 == 0) break; // we need at least one background pixel + csum += (double) k *chist[k]; // left mass moment + m1 = csum / n1; // left mass center (black chars) + m2 = (sum - csum) / n2; // right mass center (white background) + // max. dipol moment? + // orig: sb = (double) n1 *(double) n2 * (m1 - m2) * (m1 - m2); + sb = (double) n1 *(double) n2 * (m2 - m1); // seems to be better Aug06 + /* bbg: note: can be optimized. */ + if (sb > fmax) { + fmax = sb; + thresholdValue = k + 1; + // thresholdValue = (m1 + 3 * m2) / 4; + } + if ((vvv&1) && ihist[k]) // Debug + fprintf(stderr,"# threshold: %3d %6d %6d %8.2f\n", + k, ihist[k], chist[k], + sb/(dx*dy)); /* normalized dipol moment */ + } + // ToDo: error = left/right point where sb is 90% of maximum? + // now we count all pixels for background detection + i1 = 0; + for (k = 0; k < thresholdValue; k++) { + i1 += ihist[k]; // left mass (integration) + } + i2 = is - i1; // right mass (num pixels - left mass) + + // at this point we have our thresholding value + // black_char: value=cs + + // can it happen? check for sureness + if (thresholdValue > gmax) { + fprintf(stderr,"# threshold: Value >gmax\n"); + thresholdValue = gmax; + } + if (thresholdValue <= gmin) { + fprintf(stderr,"# threshold: Value<=gmin\n"); + thresholdValue = gmin+1; + } + + // debug code to display thresholding values + if ( vvv & 1 ) + fprintf(stderr,"# threshold: Value = %d gmin=%d gmax=%d cmax=%d" + " b/w= %d %d\n", + thresholdValue, gmin, gmax, maxc, i1, i2); + + // this is a primitive criteria for inversion and should be improved + // old: i1 >= 4*i2, but 0811qemu1.png has a bit above 1/4 + if (2*i1 > 7*i2) { // more black than white, obviously black is background + if ( vvv & 1 ) + fprintf(stderr,"# threshold: invert the image\n"); + // we do inversion here (no data lost) + for (i = 0; i < dy ; i++) { + np = &image[(y0+i)*cols+x0]; + for (j = 0; j < dx ; j++) { + *np=255-*np; + np++; /* next pixel */ + } + } + thresholdValue=255-thresholdValue+1; + } + + return(thresholdValue); + /* range: 0 < thresholdValue <= 255, example: 1 on b/w images */ + /* 0..threshold-1 is foreground */ + /* threshold..255 is background */ + /* ToDo: min=blackmasscenter/2,thresh,max=(whitemasscenter+255)/2 */ +} + +/*======================================================================*/ +/* thresholding the image (set threshold to 128+32=160=0xA0) */ +/* now we have a fixed thresholdValue good to recognize on gray image */ +/* - so lower bits can used for other things (bad design?) */ +/* ToDo: different foreground colors, gray on black/white background */ +/*======================================================================*/ +int +thresholding (unsigned char *image, int rows, int cols, + int x0, int y0, int dx, int dy, int thresholdValue) { + + unsigned char *np; // pointer to position in the image we are working with + + int i, j; // various counters + int gmin=255,gmax=0; + int nmin=255,nmax=0; + + // calculate min/max (twice?) + for (i = y0 + 1; i < y0 + dy - 1; i++) { + np = &image[i*cols+x0+1]; + for (j = x0 + 1; j < x0 + dx - 1; j++) { + if(*np > gmax) gmax=*np; + if(*np < gmin) gmin=*np; + np++; /* next pixel */ + } + } + + /* allowed_threshold=gmin+1..gmax v0.43 */ + if (thresholdValue<=gmin || thresholdValue>gmax){ + thresholdValue=(gmin+gmax+1)/2; /* range=0..1 -> threshold=1 */ + fprintf(stderr,"# thresholdValue out of range %d..%d, reset to %d\n", + gmin, gmax, thresholdValue); + } + + /* b/w: min=0,tresh=1,max=1 v0.43 */ + // actually performs the thresholding of the image... + // later: grayvalues should also be used, only rescaling threshold=160=0xA0 + // sometimes images have no contrast (thresholdValue == gmin) + for (i = y0; i < y0+dy; i++) { + np = &image[i*cols+x0]; + for (j = x0; j < x0+dx; j++) { + *np = (unsigned char) (*np >= thresholdValue || thresholdValue == gmin ? + (255-(gmax - *np)* 80/(gmax - thresholdValue + 1)) : + ( 0+(*np - gmin)*150/(thresholdValue - gmin )) ); + if(*np > nmax) nmax=*np; + if(*np < nmin) nmin=*np; + np++; + } + } + + // fprintf(stderr,"# thresholding: nmin=%d nmax=%d\n", nmin, nmax); + + return(128+32); // return the new normalized threshold value + /* 0..159 is foreground */ + /* 160..255 is background */ +} + diff --git a/3rdparty/gocr-0.48/src/otsu.h b/3rdparty/gocr-0.48/src/otsu.h new file mode 100644 index 0000000..acb1637 --- /dev/null +++ b/3rdparty/gocr-0.48/src/otsu.h @@ -0,0 +1,23 @@ +/* + + see README for EMAIL-address + + */ + + +/*======================================================================*/ +/* OTSU global thresholding routine */ +/* takes a 2D unsigned char array pointer, number of rows, and */ +/* number of cols in the array. returns the value of the threshold */ +/*======================================================================*/ +int +otsu (unsigned char *image, int rows, int cols, int x0, int y0, int dx, int dy, int vvv); + + +/*======================================================================*/ +/* thresholding the image (set threshold to 128+32=160=0xA0) */ +/* now we have a fixed thresholdValue good to recognize on gray image */ +/* - so lower bits can used for other things (bad design?) */ +/*======================================================================*/ +int +thresholding (unsigned char *image, int rows, int cols, int x0, int y0, int dx, int dy, int thresholdValue); diff --git a/3rdparty/gocr-0.48/src/output.c b/3rdparty/gocr-0.48/src/output.c new file mode 100644 index 0000000..7ea8a96 --- /dev/null +++ b/3rdparty/gocr-0.48/src/output.c @@ -0,0 +1,289 @@ +/* +This is a Optical-Character-Recognition program +Copyright (C) 2000-2009 Joerg Schulenburg + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + see README for EMAIL address +*/ + +#include +#include "unicode.h" +#include "output.h" +#include "pcx.h" +#include "gocr.h" /* extern job_t JOB; */ + +/* function is only for debugging and for developing + it prints out a part of pixmap b at point x0,y0 to stderr + using dots .,; if no pixel, and @xoO for pixels + modify n_run and print out what would happen on 2nd, 3th loop! + new: output original and copied pixmap in the same figure + */ +void out_b(struct box *px, pix *b, int x0, int y0, int dx, int dy, int cs ){ + int x,y,x2,y2,yy0,tx,ty,n1,i; + char c1, c2; + yy0=y0; + if (px) { /* overwrite rest of arguments */ + if (!b) { + b=px->p; + x0=px->x0; dx=px->x1-px->x0+1; + y0=px->y0; dy=px->y1-px->y0+1; yy0=y0; + } + if(cs==0) cs=JOB->cfg.cs; + fprintf(stderr,"\n# list box x= %4d %4d d= %3d %3d r= %3d %3d" + " nrun=%d p=%p", /* ToDo: r,nrun is obsolete */ + px->x0, px->y0, px->x1 - px->x0 + 1, px->y1 - px->y0 + 1, + px->x - px->x0, px->y - px->y0, JOB->tmp.n_run, (void*)px); + fprintf(stderr,"\n# dots=%d boxes=%d subboxes=%d c=%s mod=%s" + " line=%d m= %d %d %d %d", + px->dots, px->num_boxes, px->num_subboxes, + decode(px->c,ASCII), decode(px->modifier,ASCII), px->line, + px->m1 - px->y0, px->m2 - px->y0, px->m3 - px->y0, px->m4 - px->y0); + if (px->num_frames) { + int i,j,jo; + fprintf(stderr,"\n# frames= %d (sumvects=%d)",px->num_frames, + ((px->num_frames)?px->num_frame_vectors[px->num_frames-1]:-1)); + for (jo=j=i=0; inum_frames; i++, jo=j) { + fprintf(stderr,"\n# frame %d (%+4d,%3d,%2d) ", + i, px->frame_vol[i], px->frame_per[i], + px->num_frame_vectors[i]-jo); + /* print only the first vectors of each frame */ + for (;jnum_frame_vectors[i] && jframe_vector[j][0] - px->x0, + px->frame_vector[j][1] - px->y0); + } + } + if (px->num_ac){ /* output table of chars and its probabilities */ + fprintf(stderr,"\n# list box char: "); + for(i=0;inum_ac && itas[i]) + fprintf(stderr," %s(%d)", px->tas[i] ,px->wac[i]); + else + fprintf(stderr," %s(%d)",decode(px->tac[i],ASCII),px->wac[i]); + } + fprintf(stderr,"\n"); + if (px->m2 && px->m1dots || y0>px->m2)) { + yy0=px->m1; dy=px->y1-yy0+1; + } + } + tx=dx/80+1; + ty=dy/40+1; /* step, usually 1, but greater on large maps */ + fprintf(stderr,"# list pattern x= %4d %4d d= %3d %3d t= %d %d yy0= %d\n", + x0,y0,dx,dy,tx,ty,yy0); + if (dx>0) + for(y=yy0;yp,x2-x0+px->x0, + y2-y0+px->y0)num_frames) { /* mark vectors */ + int i; + if (c1!='$' && c1!='S') /* dont mark twice */ + for (i=0;inum_frame_vectors[px->num_frames-1];i++) + if ((px->frame_vector[i][0]-px->x0)/tx==(x-x0)/tx + && (px->frame_vector[i][1]-px->y0)/ty==(y-y0)/ty) + { c1=((c1=='@')?'$':'S'); break; } + } + fprintf(stderr,"%c", c1 ); + } + + /* 2nd image is the boxframe in the original bitmap */ + if (dx<40) fprintf(stderr," "); + if (dx<40) /* do it only, if we have enough place */ + for(x=x0;xy0==px->m1 || y-y0+px->y0==px->m2 + || y-y0+px->y0==px->m3 || y-y0+px->y0==px->m4) c1='<'; + if (y==y0 || y==yy0+dy-1) c2='-'; /* boxmarks */ + + fprintf(stderr,"%c%c\n",c1,c2); + } +} + +/* same as out_b, but for faster use, only a box as argument + */ +void out_x(struct box *px) { + out_b(px,NULL,0, 0, 0, 0, JOB->cfg.cs); +} + + +/* print out two boxes side by side, for debugging comparision algos */ +void out_x2(struct box *box1, struct box *box2){ + int x,y,i,tx,ty,dy; + /*FIXME jb static*/static char *c1="OXXXXxx@.,,,,,,,"; + pix *b=&JOB->src.p; + dy=(box1->y1-box1->y0+1); + if(dyy1-box2->y0+1)dy=box2->y1-box2->y0+1; + tx=(box1->x1-box1->x0)/40+1; + ty=(box1->y1-box1->y0)/40+1; /* step, usually 1, but greater on large maps */ + if(box2)fprintf(stderr,"\n# list 2 patterns"); + for(i=0;iy0+i; + for(x=box1->x0;x<=box1->x1;x+=tx) + fprintf(stderr,"%c", c1[ ((getpixel(b,x,y)cfg.cs)?0:8)+marked(b,x,y) ] ); + if(!box2) continue; + fprintf(stderr," "); y=box2->y0+i; + for(x=box2->x0;x<=box2->x1;x+=tx) + fprintf(stderr,"%c", c1[ ((getpixel(b,x,y)cfg.cs)?0:8)+marked(b,x,y) ] ); + } +} + + +/* ---- list output ---- for debugging --- + * list all boxes where the results can be found within the c-option + */ +int output_list(job_t *job) { + int i = 0, j; + struct box *box2; + pix *pp = &job->src.p; + char *lc = job->cfg.lc; + + fprintf(stderr,"\n# list shape for charlist %s",lc); + for_each_data(&(JOB->res.boxlist)) { + box2 = (struct box *) list_get_current(&(JOB->res.boxlist)); + for (j=0; jnum_ac; j++) + if (!lc || (box2->tac[j] && strchr(lc, box2->tac[j])) + || (box2->tas[j] && strstr(lc, box2->tas[j]))) break; + if (jnum_ac) + fprintf(stderr,"\n# box found in charlist"); + if (!lc || (strchr(lc, box2->c) && box2->c < 256 && box2->c) + || (strchr(lc, '_') && box2->c==UNKNOWN) /* for compability */ + || jnum_ac ){ /* also list alternative chars */ + if (!pp) pp=box2->p; + fprintf(stderr, + "\n# list shape %3d x=%4d %4d d= %3d %3d vf=%d ac=%d %04x %s", + i, box2->x0, box2->y0, + box2->x1 - box2->x0 + 1, + box2->y1 - box2->y0 + 1, + box2->num_frames, box2->num_ac, + (int)box2->c, /* wchar_t -> char ???? */ + decode(box2->c,ASCII) ); + if (JOB->cfg.verbose & 4) out_x(box2); + } + i++; + } end_for_each(&(JOB->res.boxlist)); + fprintf(stderr,"\n"); + return 0; +} + +/* --- output of image incl. corored lines usefull for developers --- + * debugging + * bit 0+1 is used for color coding (optical marker) + * color/gray: 0x01=red, 0x02=blue, 0x04=green??? + * opt: 1 - mark unknown boxes red (first pass) + * 2 - mark unknown boxes more red (final pass) + * 4 - mark lines blue + * 8 - reset coloring (remove old marker) + */ +int debug_img(char *fname, struct job_s *job, int opt) { + struct box *box2; + int x, y, ic, dx, i, j, col; + unsigned char *np; + pix *pp = &job->tmp.ppo; + + if ( opt & 8 ) { /* clear debug bits in image */ + for(y=0;yy;y++) { + np=&pp->p[(pp->x)*y]; + for(x=0;xx;x++) { + *np = *np & 0xF1; + np++; + } + } + } + + /* mark longest line which was used to estimate the rotation angle */ + if ((job->cfg.verbose&32) && job->res.lines.dx) + for(i=0;ix;i++) { + y=pp->y/2; + if (job->res.lines.dx) y+=job->res.lines.dy*i/job->res.lines.dx; + x=i; + if (x<0 || x>=pp->x || y<0 || y>=pp->y) continue; + np=&pp->p[x + (pp->x)*y]; + if (*np<160) continue; + if((x&7)<5 && !(x&1)) /* dotted line */ + put(pp,x,y,255,8); + } + + ic = ((opt & 2) ? 1 : 2); /* obsolete */ + for_each_data(&(job->res.boxlist)) { + box2 = (struct box *) list_get_current(&(job->res.boxlist)); + /* mark boxes in 32=0x40=blue */ + if (box2->c == ' ' || box2->c == '\n') continue; + /* mark chars with green left and under line */ + col = 4; /* green */ + if (box2->c == UNKNOWN && (opt & 3)) col=2; /* red */ + if (box2->x0>1) + for (y = box2->y0; y <= box2->y1; y++) { + np=&pp->p[box2->x0-1 + y * pp->x]; if (*np<160) continue; *np|=col; } + if (box2->y1+1y) + for (x = box2->x0; x <= box2->x1; x++) { + np=&pp->p[x + (box2->y1+1) * pp->x]; if (*np<160) continue; *np|=col; } + /* mark pictures by green cross */ + if (box2->c == PICTURE) + for (x = 0; x < box2->x1-box2->x0+1; x++){ + y=(box2->y1-box2->y0+1)*x/(box2->x1-box2->x0+1); + pp->p[(box2->x0+x) + (box2->y0+y) * pp->x] |= 4; + pp->p[(box2->x1-x) + (box2->y0+y) * pp->x] |= 4; + } + } end_for_each(&(job->res.boxlist)); + + if( opt & 4 ) + { + struct tlines *lines = &job->res.lines; + int yr; + if (job->cfg.verbose) + fprintf(stderr, "# mark lines for %s.ppm\n", fname); + /* or read from outside??? */ + for (i = 0; i < lines->num; i++) { /* mark lines by 0x08 = blue */ + dx = lines->x1[i] - lines->x0[i] + 1; + for (j = -1; j < dx+1; j++) { + x = lines->x0[i] + j; + if (x<0 || x>=pp->x) continue; + for (y=lines->m1[i];y<=lines->m4[i];y++) { + /* box arround m2-m3 */ + if (y>=lines->m2[i] && y<=lines->m3[i] && j>-1 && jdx) yr += lines->dy * x / (lines->dx); + if (yr<0 || yr>=pp->y) continue; + np = &(pp->p[x + (pp->x)*yr]); + if (*np<160) continue; /* do not touch dark pixels */ + if ((*np&6)!=0) continue; /* only change white pixels */ + put(pp, x, yr, 255, 6); /* UPN: 255 and 6 or */ + } + } + } + } + + if (job->cfg.verbose&1) + fprintf(stderr,"# writing %s.ppm\n", fname); + writeppm(fname, pp); + return 0; +} diff --git a/3rdparty/gocr-0.48/src/output.h b/3rdparty/gocr-0.48/src/output.h new file mode 100644 index 0000000..3066614 --- /dev/null +++ b/3rdparty/gocr-0.48/src/output.h @@ -0,0 +1,37 @@ +/* +This is a Optical-Character-Recognition program +Copyright (C) 2000 Joerg Schulenburg + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + see README for EMAIL-address */ + +#ifndef OUTPUT_H +#define OUTPUT_H + +#include +#include +#include "pnm.h" +#include "gocr.h" +#include "list.h" + +void out_b(struct box *px, pix *b, int x0, int y0, int dx, int dy, int cs ); +void out_x(struct box *px); +void out_x2(struct box *box1,struct box *box2); +int output_list(job_t *job); +int debug_img(char *fname, struct job_s *job, int opt); + + +#endif diff --git a/3rdparty/gocr-0.48/src/pcx.c b/3rdparty/gocr-0.48/src/pcx.c new file mode 100644 index 0000000..85280dd --- /dev/null +++ b/3rdparty/gocr-0.48/src/pcx.c @@ -0,0 +1,153 @@ +/* +This is a Optical-Character-Recognition program +Copyright (C) 1999 Joerg Schulenburg + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + see README for EMAIL-address + */ +/* plan: use popen("ppm2pcx -packed ...","w"); for writing pcx */ + +#include +#include +/* #include */ + +#include "pcx.h" + +typedef unsigned char byte; + +#define ERR(x) { fprintf(stderr,"ERROR "__FILE__" L%d: " x "\n",__LINE__);exit(1);} + +int err; +/* --- needed for reading PCX-files */ +unsigned char read_b(FILE *f1){ + unsigned char c=0; c=fgetc(f1); if(feof(f1) || ferror(f1))err=1; return c; +} + +/* something here is wrong! */ +void readpcx(char *name,pix *p,int vvv){ /* see pcx.format.txt */ + int page,pages,nx,ny,i,j,b,x,y,bpl,bits,pal[256][3]; + FILE *f1; + unsigned char *pic,h[128],bb,b1,b2,b3; + err=0; + for(i=0;i<256;i++)for(j=0;j<3;j++)pal[i][j]=i; + f1=fopen(name,"rb"); if(!f1) ERR("open"); + if(fread(h,1,128,f1)!=128)ERR("read PCX header"); /* 128 Byte lesen -> h[] */ + if(h[0]!=10)ERR("no ZSoft sign"); /* ZSoft sign */ + if(h[2]> 1)ERR("unknown coding"); /* run length encoding */ + bits = h[3]; /* 1 or 8 */ + if(bits!=1 && bits!=8)ERR("only 1 or 8 bits supported"); + nx = h[ 9]*256+h[ 8] - h[ 5]*256-h[ 4] +1; /* Xmax-Xmin */ + ny = h[11]*256+h[10] - h[ 7]*256-h[ 6] +1; /* Ymax-Ymin */ + pages=h[65]; bpl=h[66]+256*h[67]; /* bytes per line */ + if(vvv) + fprintf(stderr,"# PCX version=%d bits=%d x=%d y=%d HRes=%d VRes=%d\n" + "# NPlanes=%d BytesPerLine=%d Palette=%s", + h[1],bits,nx,ny,h[12]+256*h[13],h[14]+256*h[15], + pages,bpl,((h[68]==1)?"1=color/bw":"2=gray")); + /* line1(NP=4): RRRRR...,GGGG....,BBBBB...,IIII...., line2: RRRR...,GGGG.... */ + /* C4 EF = (C4&3F)*EF = EF EF EF EF */ + fflush(stdout); + /* palette: for(i=0;i<16;i++) for(j=0;j<3;j++) h[16+3*i+j] */ + if(pages>1)for(b=0;b<16;b++) for(i=0;i<16;i++) + for(j=0;j< 3;j++) pal[b*16+i][j]=h[16+3*i+j]>>2; + if(bits>7){ + fseek(f1,-3*256,2); if(fread(pal,3,256,f1)!=256)ERR("read palette"); + for(i=0;i<256;i++) for(j=0;j<3;j++) pal[i][j]>>=2; + } + fseek(f1,128,0); + pic=(unsigned char *)malloc( nx*ny ); + if(pic==NULL)ERR("no memory"); /* no memory */ + x=y=0; + do { + for(page=0;page b1=counter */ + do { + b1=1; bb=read_b(f1); b2=bb; if(b1==192)fprintf(stderr,"?"); + if((b2>=192) && (h[2]==1)){b1=b2&63;bb=read_b(f1);b2=bb;} + if(err){fprintf(stderr,"\nread error x=%d y=%d\n",x,y);x=nx;y=ny;break;} + for(b3=0;b3>(8-bits-b)) & ~((~0)<p=pic; p->x=nx; p->y=ny; p->bpp=1; + if(vvv)fprintf(stderr,"\n"); +} + +/* ----------------------------------------------------------------------- +// write bmp 8bit palette no RLE +// bit 2+3 used for color coding (markers) +// replaced by writeppm (ppm.gz) and is obsolate now, removed later + */ +void writebmp(char *name,pix p,int vvv){ /* see pcx.format.txt */ + int nx,ny,i,y,rest[4]={0,0,0,0}; + FILE *f1; + /*FIXME jb static*/static unsigned char *pic, h[54+4*256]; + long fs,fo,hs,is; /* filesize, offset, headersize, imagesize */ + + nx=p.x; ny=p.y; pic=p.p; + if (nx&3) nx+=4-(nx&3); /* must be mod4 ? */ + hs=40; /* bmi headersize fix */ + is=nx*ny; /* imagesize */ + fo=14+hs+4*256; + fs=fo+is; + for(i=0;i<54;i++){ h[i]=0; } + /* BITMAPFILEHEADER */ + h[ 0]='B'; h[ 1]='M'; /* type of file BMP */ + h[ 2]= fs &255; h[ 3]=(fs>> 8)&255; + h[ 4]=(fs>>16)&255; h[ 5]=(fs>>24)&255; /* size of file */ + h[10]= fo &255; h[11]=(fo>> 8)&255; + h[12]=(fo>>16)&255; h[13]=(fo>>24)&255; /* offset to image data */ + /* BITMAPINFO (BITMAPCOREHEADER not used here) */ + /* 14 - HEADER */ + h[14]= hs &255; h[15]=(hs>> 8)&255; + h[16]=(hs>>16)&255; h[17]=(hs>>24)&255; /* bmi-header size */ + h[18]= nx &255; h[19]=(nx>> 8)&255; + h[20]=(0l>>16)&255; h[21]=(0l>>24)&255; /* WIDTH/pixel */ + h[22]= ny &255; h[23]=(ny>> 8)&255; + h[24]=(0l>>16)&255; h[25]=(0l>>24)&255; /* HIGH/pixel */ + h[26]=1; /* planes */ + h[28]=8; /* bits/pixel 1,4,8,24 */ + h[30]=0; /* compression */ + h[34]= is &255; h[35]=(is>> 8)&255; + h[36]=(is>>16)&255; h[37]=(is>>24)&255; /* sizeImage (can be 0 if ~RLE) */ + h[38]=0;h[39]=1; /* ca 100dpi, x/meter */ + h[42]=0;h[43]=1; /* y/meter */ + h[46]=0;h[47]=1; /* colorused (0=maximum) */ + h[50]=0;h[51]=1; /* colorimportand (0=all) */ + /* 54 - endofheader */ + for(i=0;i<256;i++){ + h[54+4*i+0]=((~((i & 2)*64)) & (i & (128+64)))|63; + h[54+4*i+1]=((~((i & 2)*64)) & (~((i & 4)*32)) & (i & (128+64)))|63; + h[54+4*i+2]=( ((i & 2)* 8) | ((~((i & 4)*32)) & (i & (128+64)))|63); + } /* blue-green-red */ + f1=fopen(name,"wb"); if(!f1) fprintf(stderr," error opening file\n"); + if(!f1)ERR("open"); /* open-error */ + if(fwrite(h,1,54+4*256,f1)!=54+4*256)ERR("write head"); + if(vvv) fprintf(stderr,"# write BMP x=%d y=%d\n",nx,ny); + for(y=ny-1;y>=0;y--){ + if(((int)fwrite(pic+p.x*y,1,p.x,f1))!=p.x)ERR("write"); + if(nx>p.x) + if(((int)fwrite(rest,1,nx-p.x,f1))!=nx-p.x)ERR("write"); + } + fclose(f1); +} + +/* ---------------------------------------------------------------------- */ diff --git a/3rdparty/gocr-0.48/src/pcx.h b/3rdparty/gocr-0.48/src/pcx.h new file mode 100644 index 0000000..b420a69 --- /dev/null +++ b/3rdparty/gocr-0.48/src/pcx.h @@ -0,0 +1,9 @@ + +#include "pnm.h" + +void readpcx(char *name,pix *p,int vvv); + +/* write 8bit palette no RLE, ToDo: obsolete? */ +void writebmp(char *name,pix p,int vvv); + +/* ------------------------------------------------------------------------ */ diff --git a/3rdparty/gocr-0.48/src/pgm2asc.c b/3rdparty/gocr-0.48/src/pgm2asc.c new file mode 100644 index 0000000..02899af --- /dev/null +++ b/3rdparty/gocr-0.48/src/pgm2asc.c @@ -0,0 +1,2893 @@ +/* +This is a Optical-Character-Recognition program +Copyright (C) 2000-2009 Joerg Schulenburg + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + see README for EMAIL-address + + sometimes I have written comments in german language, sorry for that + + - look for ??? for preliminary code + - space: avX=22 11-13 (empirical estimated) + avX=16 5-7 + avX= 7 5-6 + + ToDo: - add filter (r/s mismatch) g300c1 + - better get_line2 function (problems on high resolution) + - write parallelizable code! + - learnmode (optimize filter) + - use ispell for final control or if unsure + - better line scanning (if not even) + - step 5: same chars differ? => expert mode + - chars dx>dy and above 50% hor-crossing > 4 is char-group ? + - detect color of chars and background + - better word space calculation (look at the examples) + (distance: left-left, middle-middle, left-right, thickness of e *0.75) + + GLOBAL DATA (mostly structures) + - pix : image - one byte per pixel bits0-2=working + - lines : rows of the text (points to pix) + - box : list of bounding box for character + - obj : objects (lines, splines, etc. building a character) + */ + + +#include +#include +#include +#include +#include +#include "config.h" +#ifdef HAVE_WCHAR_H +#include +#endif + +#include "amiga.h" +#include "list.h" +#include "pgm2asc.h" +// #include "pcx.h" /* needed for writebmp (removed later) */ +/* ocr1 is the test-engine - remember: this is development version */ +#include "ocr1.h" +/* first engine */ +#include "ocr0.h" +#include "otsu.h" +#include "barcode.h" +#include "progress.h" + +#include "gocr.h" + +/* wew: will be exceeded by capitals at 1200dpi */ +#define MaxBox (100*200) // largest possible letter (buffersize) +#define MAX(a,b) ((a) >= (b) ? (a) : (b)) + +/* if the system does not know about wchar.h, define functions here */ +#ifndef HAVE_WCHAR_H +/* typedef unsigned wchar_t; */ +/* Find the first occurrence of WC in WCS. */ +wchar_t *wcschr (wchar_t *wcs, wchar_t wc) { + int i; for(i=0;wcs[i];i++) if (wcs[i]==wc) return wcs+i; return NULL; +} +wchar_t *wcscpy (wchar_t *dest, const wchar_t *src) { + int i; for(i=0;src[i];i++) dest[i]=src[i]; dest[i]=0; return dest; +} +size_t wcslen (const wchar_t *s){ + size_t i; for(i=0;s[i];i++); return i; +} +#endif +#ifndef HAVE_WCSDUP +wchar_t * wcsdup (const wchar_t *WS) { /* its a gnu extension */ + wchar_t *copy; + copy = (wchar_t *) malloc((wcslen(WS)+1)*sizeof(wchar_t)); + if (!copy)return NULL; + wcscpy(copy, WS); + return copy; +} +#endif + +// ------------------------ feature extraction ----------------- +// ------------------------------------------------------------- +// detect maximas in of line overlaps (return in %) and line coordinates +// this is for future use +#define HOR 1 // horizontal +#define VER 2 // vertical +#define RIS 3 // rising=steigend +#define FAL 4 // falling=fallend + +/* exchange two variables */ +static void swap(int *a, int *b) { + int c = *a; + *a = *b; + *b = c; +} + +// calculate the overlapping of the line (0-1) with black points +// by recursive bisection +// line: y=dy/dx*x+b, implicit form: d=F(x,y)=dy*x-dx*y+b*dx=0 +// incremental y(i+1)=m*(x(i)+1)+b, F(x+1,y+1)=f(F(x,y)) +// ret & 1 => inverse pixel! +// d=2*F(x,y) integer numbers +int get_line(int x0, int y0, int x1, int y1, pix *p, int cs, int ret){ + int dx,dy,incrE,incrNE,d,x,y,r0,r1,ty,tx, + *px,*py,*pdx,*pdy,*ptx,*pty,*px1; + dx=abs(x1-x0); tx=((x1>x0)?1:-1); // tx=x-spiegelung (new) + dy=abs(y1-y0); ty=((y1>y0)?1:-1); // ty=y-spiegelung (new) + // rotate coordinate system if dy>dx +/*bbg: can be faster if instead of pointers we use the variables and swaps? */ +/*js: Do not know, I am happy that the current code is working and is small */ + if(dx>dy){ pdx=&dx;pdy=&dy;px=&x;py=&y;ptx=&tx;pty=&ty;px1=&x1; } + else { pdx=&dy;pdy=&dx;px=&y;py=&x;ptx=&ty;pty=&tx;px1=&y1; } + if( *ptx<0 ){ swap(&x0,&x1);swap(&y0,&y1);tx=-tx;ty=-ty; } + d=((*pdy)<<1)-(*pdx); incrE=(*pdy)<<1; incrNE=((*pdy)-(*pdx))<<1; + x=x0; y=y0; r0=r1=0; /* dd=tolerance (store max drift) */ + while( (*px)<=(*px1) ){ + if( ((getpixel(p,x,y) percentage % +} + +// this function should detect whether a direct connection between points +// exists or not, not finally implemented +// ret & 1 => inverse pixel! +// d=2*F(x,y) integer numbers, ideal line: ,I pixel: I@ +// ..@ @@@ .@. ...,@2@. +1..+3 floodfill around line ??? +// ..@ .@@ .@. ...,.@@@ +2..+4 <= that's not implemented yet +// ..@ ..@ .@. ...,.@@@ +2..+4 +// @.@ @.. .@. ...,@@@. +1..+3 +// @.@ @@. .@. ...I@@@. 0..+3 +// @@@ @@@ .@. ..@1@@.. 0..+2 +// 90% 0% 100% 90% r1-r2 +// I am not satisfied with it +int get_line2(int x0, int y0, int x1, int y1, pix *p, int cs, int ret){ + int dx,dy,incrE,incrNE,d,x,y,r0,r1,ty,tx,q,ddy,rx,ry, + *px,*py,*pdx,*pdy,*ptx,*pty,*px1; + dx=abs(x1-x0); tx=((x1>x0)?1:-1); // tx=x-spiegelung (new) + dy=abs(y1-y0); ty=((y1>y0)?1:-1); // ty=y-spiegelung (new) + // rotate coordinate system if dy>dx + if(dx>dy){ pdx=&dx;pdy=&dy;px=&x;py=&y;ptx=&tx;pty=&ty;px1=&x1;rx=1;ry=0; } + else { pdx=&dy;pdy=&dx;px=&y;py=&x;ptx=&ty;pty=&tx;px1=&y1;rx=0;ry=1; } + if( *ptx<0 ){ swap(&x0,&x1);swap(&y0,&y1);tx=-tx;ty=-ty; } + d=((*pdy)<<1)-(*pdx); incrE=(*pdy)<<1; incrNE=((*pdy)-(*pdx))<<1; + x=x0; y=y0; r0=r1=0; ddy=3; // tolerance = bit 1 + bit 0 = left+right + // int t=(*pdx)/16,tl,tr; // tolerance, left-,right delimiter + while( (*px)<=(*px1) ){ // not finaly implemented + q=((getpixel(p,x,y) percentage % +} + +/* Look for dots in the rectangular region x0 <= x <= x1 and y0 <= y + <= y1 in pixmap p. The two low order bits in mask indicate the color + of dots to look for: If mask==1 then look for black dots (where a + pixel value less than cs is considered black). If mask==2 then look + for white dots. If mask==3 then look for both black and white dots. + If the dots are found, the corresponding bits are set in the returned + value. Heavily used by the engine ocr0*.cc */ +char get_bw(int x0, int x1, int y0, int y1, pix * p, int cs, int mask) { + char rc = 0; // later with error < 2% (1 dot) + int x, y; + + if (x0 < 0) x0 = 0; + if (x1 >= p->x) x1 = p->x - 1; + if (y0 < 0) y0 = 0; + if (y1 >= p->y) y1 = p->y - 1; + + for ( y = y0; y <= y1; y++) + for ( x = x0; x <= x1; x++) { + rc |= ((getpixel(p, x, y) < cs) ? 1 : 2); // break if rc==3 + if ((rc & mask) == mask) + return mask; // break loop + } + return (rc & mask); +} + +/* more general Mar2000 (x0,x1,y0,y1 instead of x0,y0,x1,y1! (history)) + * look for black crossings throw a line from x0,y0 to x1,y1 and count them + * follow line and count crossings ([white]-black-transitions) + * ex: horizontal num_cross of 'm' would return 3 + * + * fail for: .a... a-to-b counts no transitions, but there is + * ...#. + * ..#.. + * .#..b + */ +int num_cross(int x0, int x1, int y0, int y1, pix *p, int cs) { + int rc = 0, col = 0, k, x, y, i, d; // rc=crossings col=0=white + int dx = x1 - x0, dy = y1 - y0; + + d = MAX(abs(dx), abs(dy)); + for (i = 0, x = x0, y = y0; i <= d; i++) { + if (d) { + x = x0 + i * dx / d; + y = y0 + i * dy / d; + } + k = ((getpixel(p, x, y) < cs) ? 1 : 0); // 0=white 1=black + if (col == 0 && k == 1) // found a white-black transition + rc++; + col = k; // last color + } + return rc; +} + +/* check if test matches pattern + * possible pattern: "a-zA-Z0-9+--\\" (x-y dont work for c>127) + * return: 0 means dont fit, 1 means found + * ToDo: wchar_t cc + matching UTF-8 pattern for nonASCII + */ +int my_strchr( char *pattern, wchar_t cc ) { + char *s1; + if (pattern==(char *)NULL) return 0; + + /* if (!(cc&0x80)) s1=strchr(pattern,(char)cc); else */ + switch (cc) { + case '-': /* used as a special character */ + s1=strstr(pattern,"--"); /* search string -- in pattern */ + if (s1) return 1; break; + default: + s1=strstr(pattern,decode(cc, UTF8)); /* search string cc in pattern */ + if (s1) return 1; /* cc simply matches */ + /* single char not found, now check the ranges */ + s1=pattern; + while (s1) { + s1=strchr(s1+1,'-'); /* look for next '-' */ + if ((!s1) || (!s1[0]) || (!s1[1])) return 0; /* nothing found or end */ + if (*(s1-1)=='-' || *(s1+1)=='-') continue; /* skip -- pattern */ + if (*(s1-1)<=cc && *(s1+1)>=cc) return 1; /* within range */ + } + } + return 0; +} + +/* set alternate chars and its weight, called from the engine + if a char is recognized to (weight) percent + can be used for filtering (only numbers etc) + often usefull if Il1 are looking very similar + should this function stay in box.c ??? + weight is between 0 and 100 in percent, 100 means absolutely sure + - not final, not time critical (js) + - replace it by a string-function setaobj(*b,"string",weight) + and let call setac the setas function + */ + +int setas(struct box *b, char *as, int weight){ + int i,j; + if (b->num_ac > NumAlt || b->num_ac<0) { + fprintf(stderr,"\nDBG: There is something wrong with setas()!"); + b->num_ac=0; + } + if (as==NULL) { + fprintf(stderr,"\nDBG: setas(NULL) makes no sense!"); return 0; } + if (as[0]==0) { + fprintf(stderr,"\nDBG: setas(\"\") makes no sense!" + " x= %d %d", b->x0, b->y0); + // out_x(b); + return 0; + } + + /* char filter (ex: only numbers) ToDo: cfilter as UTF-8 */ + if (JOB->cfg.cfilter) { + /* do not accept chars which are not in the cfilter string */ + if ( as[0]>0 && as[1]==0 ) + if ( !my_strchr(JOB->cfg.cfilter,as[0]) ) return 0; + } +#if 0 /* obsolete, done in setac */ + /* not sure that this is the right place, but where else? */ + if ( as[0]>0 && as[1]==0 ) + if (b->modifier != SPACE && b->modifier != 0) { + wchar_t newac; + newac = compose(as[0], b->modifier); + as = (char *)decode(newac, UTF8); /* was (const char *) */ + if (newac == as[0]) { /* nothing composed */ + fprintf(stderr, "\nDBG setas compose was useless %d %d",b->x0,b->y0); + // out_x(b); + } + } +#endif + + /* only the first run gets the full weight */ + weight=(100-JOB->tmp.n_run)*weight/100; + + /* remove same entries from table */ + for (i=0;inum_ac;i++) + if (b->tas[i]) + if (strcmp(as,b->tas[i])==0) break; + if (b->num_ac>0 && inum_ac){ + if (weight<=b->wac[i]) return 0; /* if found + less weight ignore it */ + /* to insert the new weigth on the right place, we remove it first */ + if (b->tas[i]) free(b->tas[i]); + for (j=i;jnum_ac-1;j++){ /* shift lower entries */ + b->tac[j]=b->tac[j+1]; /* copy the char */ + b->tas[j]=b->tas[j+1]; /* copy the pointer to the string */ + b->wac[j]=b->wac[j+1]; /* copy the weight */ + } + b->num_ac--; /* shrink table */ + } + /* sorting and add it to the table */ + for (i=0;inum_ac;i++) if (weight>b->wac[i]) break; + if (b->num_acnum_ac++; /* enlarge table */ + for (j=b->num_ac-1;j>i;j--){ /* shift lower entries */ + b->tac[j]=b->tac[j-1]; /* copy the char */ + b->tas[j]=b->tas[j-1]; /* copy the pointer to the string */ + b->wac[j]=b->wac[j-1]; /* copy the weight */ + } + if (inum_ac) { /* insert new entry */ + b->tac[i]=0; /* insert the char=0 ... */ + b->tas[i]=(char *)malloc(strlen(as)+1); /* ... string */ + if (b->tas[i]) memcpy(b->tas[i],as,strlen(as)+1); + b->wac[i]=weight; /* ... and its weight */ + } + if (i==0) b->c=b->tac[0]; /* char or 0 for string */ + return 0; +} + +/* ToDo: this function will be replaced by a call of setas() later */ +int setac(struct box *b, wchar_t ac, int weight){ + int i,j; + if ((!b) || b->num_ac > NumAlt || b->num_ac<0) { + fprintf(stderr,"\nDBG: This is a bad call to setac()!"); + if(b && (JOB->cfg.verbose & 6)) out_x(b); + b->num_ac=0; + } + if (ac==0 || ac==UNKNOWN) { + fprintf(stderr,"\nDBG: setac(0) makes no sense!"); + return 0; + } + /* char filter (ex: only numbers) ToDo: cfilter as UTF-8 */ + if (JOB->cfg.cfilter) { + /* do not accept chars which are not in the cfilter string */ + /* if ( ac>255 || !strchr(JOB->cfg.cfilter,(char)ac) ) return 0; */ + if ( !my_strchr(JOB->cfg.cfilter,ac) ) return 0; + } + /* not sure that this is the right place, but where else? */ + if (b->modifier != SPACE && b->modifier != 0) { + wchar_t newac; + newac = compose(ac, b->modifier); + if (newac == ac) { /* nothing composed */ + if(JOB->cfg.verbose & 7) + fprintf(stderr, "\nDBG setac(%s): compose was useless @ %d %d", + decode(ac,ASCII), b->x0, b->y0); + /* if(JOB->cfg.verbose & 6) out_x(b); */ + } + ac = newac; + } + + /* only the first run gets the full weight */ + weight=(100-JOB->tmp.n_run)*weight/100; + + /* remove same entries from table */ + for (i=0;inum_ac;i++) if (ac==b->tac[i]) break; + if (b->num_ac>0 && inum_ac){ + if (weight<=b->wac[i]) return 0; + if (b->tas[i]) free(b->tas[i]); + for (j=i;jnum_ac-1;j++){ /* shift lower entries */ + b->tac[j]=b->tac[j+1]; /* copy the char */ + b->tas[j]=b->tas[j+1]; /* copy the pointer to the string */ + b->wac[j]=b->wac[j+1]; /* copy the weight */ + } + b->num_ac--; /* shrink table */ + } + /* sorting it to the table */ + for (i=0;inum_ac;i++) if (weight>b->wac[i]) break; + if (b->num_acnum_ac++; /* enlarge table */ + for (j=b->num_ac-1;j>i;j--){ /* shift lower entries */ + b->tac[j]=b->tac[j-1]; /* copy the char */ + b->tas[j]=b->tas[j-1]; /* copy the pointer to the string */ + b->wac[j]=b->wac[j-1]; /* copy the weight */ + } + if (inum_ac) { /* insert new entry */ + b->tac[i]=ac; /* insert the char ... */ + b->tas[j]=NULL; /* ... no string (?) */ + b->wac[i]=weight; /* ... and its weight */ + } + if (i==0) b->c=ac; /* store best result to b->c (will be obsolete) */ + + return 0; +} + +/* test if ac in wac-table + usefull for contextcorrection and box-splitting + return 0 if not found + return wac if found (wac>0) + */ +int testac(struct box *b, wchar_t ac){ + int i; + if (b->num_ac > NumAlt || b->num_ac<0) { + fprintf(stderr,"\n#DEBUG: There is something wrong with testac()!"); + b->num_ac=0; + } + /* search entries in table */ + for (i=0;inum_ac;i++) if (ac==b->tac[i]) return b->wac[i]; + return 0; +} + + +/* look for edges: follow a line from x0,y0 to x1,y1, record the + * location of each transition, and return their number. + * ex: horizontal num_cross of 'm' would return 6 + * remark: this function is not used, obsolete? ToDo: remove? + */ +int follow_path(int x0, int x1, int y0, int y1, pix *p, int cs, path_t *path) { + int rc = 0, prev, x, y, i, d, color; // rc=crossings col=0=white + int dx = x1 - x0, dy = y1 - y0; + + d = MAX(abs(dx), abs(dy)); + prev = getpixel(p, x0, y0) < cs; // 0=white 1=black + path->start = prev; + for (i = 1, x = x0, y = y0; i <= d; i++) { + if (d) { + x = x0 + i * dx / d; + y = y0 + i * dy / d; + } + color = getpixel(p, x, y) < cs; // 0=white 1=black + if (color != prev){ + if (rc>=path->max){ + int n=path->max*2+10; + path->x = (int *) xrealloc(path->x, n*sizeof(int)); + path->y = (int *) xrealloc(path->y, n*sizeof(int)); + path->max = n; + } + path->x[rc]=x; + path->y[rc]=y; + rc++; + } + prev = color; + } + path->num=rc; + return rc; +} + +/* ToDo: only used in follow_path, which is obsolete, remove? */ +void *xrealloc(void *ptr, size_t size){ + void *p; + p = realloc(ptr, size); + if (size>0 && (!p)){ + fprintf(stderr, "insufficient memory"); + exit(1); + } + return p; +} + +/* + * ------------------------------------------------------------- + * mark edge-points + * - first move forward until b/w-edge + * - more than 2 pixel? + * - loop around + * - if forward pixel : go up, rotate right + * - if forward no pixel : rotate left + * - stop if found first 2 pixel in same order + * go_along_the_right_wall strategy is very similar and used otherwhere + * -------------------------------------------------------------- + * turmite game: inp: start-x,y, regel r_black=UP,r_white=RIght until border + * out: last-position + * + * could be used to extract more features: + * by counting stepps, dead-end streets ,xmax,ymax,ro-,ru-,lo-,lu-edges + * + * use this little animal to find features, I first was happy about it + * but now I prefer the loop() function + */ + +void turmite(pix *p, int *x, int *y, + int x0, int x1, int y0, int y1, int cs, int rw, int rb) { + int r; + if (outbounds(p, x0, y0)) // out of pixmap + return; + while (*x >= x0 && *y >= y0 && *x <= x1 && *y <= y1) { + r = ((getpixel(p, *x, *y) < cs) ? rb : rw); // select rule + switch (r) { + case UP: (*y)--; break; + case DO: (*y)++; break; + case RI: (*x)++; break; + case LE: (*x)--; break; + case ST: break; + default: assert(0); + } + if( r==ST ) break; /* leave the while-loop */ + } +} + +/* search a way from p0 to p1 without crossing pixels of type t + * only two directions, useful to test if there is a gap 's' + * labyrinth algorithm - do you know a faster way? */ +int joined(pix *p, int x0, int y0, int x1, int y1, int cs){ + int t,r,x,y,dx,dy,xa,ya,xb,yb; + x=x0;y=y0;dx=1;dy=0; + if(x1>x0){xa=x0;xb=x1;} else {xb=x0;xa=x1;} + if(y1>y0){ya=y0;yb=y1;} else {yb=y0;ya=y1;} + t=((getpixel(p,x,y)=xa && x+dy<=xb && y-dx>=ya && y-dx<=yb) // wall + { r=dy;dy=-dx;dx=r;x+=dx;y+=dy; } // rotate right and step forward + else { r=dx;dx=-dy;dy=r; } // rotate left + // fprintf(stderr," path xy %d-%d %d-%d %d %d %d %d\n",xa,xb,ya,yb,x,y,dx,dy); + if( x==x1 && y==y1 ) return 1; + if( x==x0 && y==y0 && dx==1) return 0; + } + // return 0; // endless loop ? +} + +/* move from x,y to direction r until pixel of color col is found + * or maximum of l steps + * return the number of steps done */ +int loop(pix *p,int x,int y,int l,int cs,int col, DIRECTION r){ + int i=0; + if(x>=0 && y>=0 && xx && yy){ + switch (r) { + case UP: + for( ;i=0;i++,y--) + if( (getpixel(p,x,y)y;i++,y++) + if( (getpixel(p,x,y)=0;i++,x--) + if( (getpixel(p,x,y)x;i++,x++) + if( (getpixel(p,x,y)maxstack) maxstack=blen; + blen--; /* reduce the stack */ + x=buf[blen*2+0]; + y=buf[blen*2+1]; + if (y < *y0) *y0 = y; + if (y > *y1) *y1 = y; + /* first go to leftmost pixel */ + for ( ; x>0 && (col == ((getpixel(p, x-1, y) < cs) ? 0 : 1)) ; x--); + if ((marked(p,x,y)&mark)==mark) continue; /* already scanned */ + for (dx=-1;dx<2;dx+=2) /* look at upper and lower line, left */ + if ( diag && xx && x-1>0 && y+dx >=0 && y+dx < p->y + && col != ((getpixel(p, x , y+dx) < cs) ? 0 : 1) + && col == ((getpixel(p, x-1, y+dx) < cs) ? 0 : 1) + && !((marked(p,x-1,y+dx)&mark)==mark) + ) { + if (blen+1>=bmax) { overflow|=1; continue; } + buf[blen*2+0]=x-1; + buf[blen*2+1]=y+dx; + blen++; + } + if (x < *x0) *x0 = x; + /* second go right, mark and get new starting points */ + for ( ; xx && (col == ((getpixel(p, x , y) < cs) ? 0 : 1)) ; x++) { + p->p[x + y * p->x] |= (mark & 7); rc++; /* mark pixel */ + /* enlarge frame */ + if (x > *x1) *x1 = x; + for (dx=-1;dx<2;dx+=2) /* look at upper and lower line */ + if ( col == ((getpixel(p, x , y+dx) < cs) ? 0 : 1) + && ( + col != ((getpixel(p, x-1, y ) < cs) ? 0 : 1) + || col != ((getpixel(p, x-1, y+dx) < cs) ? 0 : 1) ) + && !((marked(p,x,y+dx)&mark)==mark) && y+dxy && y+dx>=0 + ) { + if (blen+1>=bmax) { overflow|=1; continue; } + buf[blen*2+0]=x; + buf[blen*2+1]=y+dx; + blen++; + } + } + for (dx=-1;dx<2;dx+=2) /* look at upper and lower line, right */ + if ( diag && xx && x-1>0 && y+dx >=0 && y+dx < p->y + && col == ((getpixel(p, x-1, y ) < cs) ? 0 : 1) + && col != ((getpixel(p, x , y ) < cs) ? 0 : 1) + && col != ((getpixel(p, x-1, y+dx) < cs) ? 0 : 1) + && col == ((getpixel(p, x , y+dx) < cs) ? 0 : 1) + && !((marked(p,x,y+dx)&mark)==mark) + ) { + if (blen+1>=bmax) { overflow|=1; continue; } + buf[blen*2+0]=x; + buf[blen*2+1]=y+dx; + blen++; + } + } + + /* debug, ToDo: use info maxstack and pixels for image classification */ + g_debug(fprintf(stderr," maxstack= %4d pixels= %6d",maxstack,rc);) + if (overflow==1){ + overflow|=2; + fprintf(stderr,"# Warning: frame_nn stack oerflow\n"); + } + free(buf); +#else /* old version, ToDo: improve it for tmp04/005*.pgm.gz */ + int i, j, d, dx, ox, oy, od, nx, ny, rc = 0, rot = 0, x2 = x, y2 = y, ln; + + static const int d0[8][2] = { { 0, -1} /* up */, {-1, -1}, + {-1, 0} /* left */, {-1, 1}, + { 0, 1} /* down */, { 1, 1}, + { 1, 0} /* right */, { 1, -1}}; + + /* check bounds */ + if (outbounds(p, x, y)) + return 0; + /* check if already marked */ + if ((marked(p,x,y)&mark)==mark) + return 0; + + i = ((getpixel(p, x, y) < cs) ? 0 : 1); + rc = 0; + + g_debug(fprintf(stderr," start frame:");) + + for (ln = 0; ln < 2 && rot >= 0; ln++) { // repeat if right-loop + g_debug(fprintf(stderr," ln=%d diag=%d cs=%d x=%d y=%d - go to border\n",ln,diag,cs,x,y);) + + od=d=(8+4*ln-diag)&7; // start robot looks up, right is a wall + // go to right (left) border + if (ln==1) { + x=x2; y=y2; + } + /* start on leftmost position */ + for (dx = 1 - 2*ln; x + dx < p->x && x + dx >= 0 /* bounds */ && + i == ((getpixel(p, x + dx, y) < cs) ? 0 : 1) /* color */; + x += dx); + + g_debug(fprintf(stderr," ln=%d diag=%d cs=%d x=%d y=%d\n",ln,diag,cs,x,y);) + + /* robot stores start-position */ + ox = x; oy = y; + for (rot = 0; abs(rot) <= 64; ) { /* for sure max. 8 spirals */ + /* leftmost position */ + if (ln == 0 && x < x2) { + x2 = x; y2 = y; + } + + g_debug(fprintf(stderr," x=%3d y=%3d d=%d i=%d p=%3d rc=%d\n",x,y,d,i,getpixel(p,x,y),rc);) + + if ( abs(d0[d][1]) ) { /* mark left (right) pixels */ + for (j = 0, dx = d0[d][1]; x + j >= 0 && x + j < p->x + && i == ((getpixel(p, x + j, y) < cs) ? 0 : 1); j += dx) { + if (!((marked(p, x + j, y)&mark)==mark)) + rc++; + p->p[x + j + y * p->x] |= (mark & 7); + } + } + /* look to the front of robot */ + nx = x + d0[d][0]; + ny = y + d0[d][1]; + /* if right is a wall */ + if ( outbounds(p, nx, ny) || i != ((getpixel(p,nx,ny) *x1) *x1 = x; + if (y < *y0) *y0 = y; + if (y > *y1) *y1 = y; + } + if(x==ox && y==oy && d==od) break; // round trip finished + } + } + g_debug(fprintf(stderr," rot=%d\n",rot);) +#endif + return rc; +} + +/* obsolete! replaced by vectors + * mark neighbouring pixel of same color, return number + * better with neighbours of same color (more general) ??? + * parameters: (&~7)-pixmap, start-point, critical_value, mark + * recursion is removed */ +int mark_nn(pix * p, int x, int y, int cs, int r) { + /* out of bounds or already marked? */ + if (outbounds(p, x, y) || (marked(p, x, y)&r)==r) + return 0; + { + int x0, x1, y0, y1; + x0 = x1 = x; + y0 = y1 = y; // not used + return frame_nn(p, x, y, &x0, &x1, &y0, &y1, cs, r, JOB->tmp.n_run & 1); + // using same scheme + } +} + +/* ToDo: finish to replace old frame by this new one + * + * @...........#@@@@@@@. # = marked as already scanned black pixels + * @........@@@@@@@@@@@# only left and right border + * .......#@@@@@@@@@@@@@ left side on even y + * ......@@@@@@@@#.@@@@# right side on odd y + * .....#@@@@@......#@@@ no border is marked twice + * ....@@@@@#......@@@#. works also for thinn lines + * ...#@@@@........#@@@. - outer loop is stored as first + * ..@@@@#........@@@#.. - inner loop is stored as second + * .#@@@@........#@@@@.. 1st in an extra box (think on white chars) + * @@@@#.......@@@@#.... 2nd merge in an extra step + * #@@@@@....#@@@@@..... + * @@@@@@@@@@@@@@#...... + * .#@@@@@@@@@@@@....... + * + * run around the chape using laby-robot + * - used for scanning boxes, look for horizontal b/w transitions + * with unmarked black pixels and call this routine + * - stop if crossing a marked box in same direction (left=up, right=down) + * box - char box, store frame_vectors and box + * x,y - starting point + * mark - 3 bit marker, mark each valid pixel with it + * diag - 0: only pi/2 direction, 1: pi/4 directions (diagonal) + * ds - start direction, 6=right of right border, 2=left of left border + * ret - 0=ok, -1=already marked, -2=max_num_frames_exceeded + * -7=no border in direction ds + */ +#if 0 +#undef g_debug +#define g_debug(x) x +#endif +/* grep keywords: scan_vectors frame_vector */ +int frame_vector(struct box *box1, int x, int y, + int cs, int mark, int diag, int ds) { + int i1, i2, i2o, + new_x=1, /* flag for storing the vector x,y */ + steps=1, /* steps between stored vectors, speedup for big frames */ + d, /* direction */ + ox, oy, /* starting point */ + nx, ny, mx, my, /* used for simplification */ + /* ToDo: add periphery to box (german: Umfang?) */ + rc = 1, /* return code, circumference, sum vector lengths */ + rot = 0, /* memory for rotation, rot=8 means one full rotation */ + vol = 0; /* volume inside frame, negative for white inside black */ + pix *p=box1->p; + + /* translate the 8 directions to (x,y) pairs, + * if only four directions are used, only every 2nd vector is accessed, + * +1 turn left, -1 turn right + */ + static const int d0[8][2] = + { { 0, -1}, /* up */ {-1, -1}, /* up-le */ + {-1, 0}, /* left */ {-1, 1}, /* do-le */ + { 0, 1}, /* down */ { 1, 1}, /* do-ri */ + { 1, 0}, /* right */ { 1, -1} }; /* up-ri */ + + /* check bounds */ + if (outbounds(p, x, y)) + return 0; + + /* pixel color we are looking for, 0=black, 1=white */ + d = ds; + i1 = ((getpixel(p, x, y ) < cs) ? 0 : 1); + i2 = ((getpixel(p, x + d0[d][0], y + d0[d][1]) < cs) ? 0 : 1); + + g_debug(fprintf(stderr,"\nLEV2 frame_vector @ %3d %3d d%d %2d %2d" + " %d-%d pix=%3d mark=%d cs=%d",\ + x,y,ds,d0[ds][0],d0[ds][1],i1,i2,getpixel(p,x,y),mark,cs);) + + if (i1==i2){ + fprintf(stderr,"ERROR frame_vector: no border\n"); + return -7; /* no border detected */ + } + + /* initialize boxframe outside this function + box1->x0=box1->x1=x; + box1->y0=box1->y1=y; + */ + + /* initialize boxvector outside this function + box1->num_frames=0 + num_frame_vectors[0]=0 ??? + and store start value + */ + if (box1->num_frames > MaxNumFrames) return -2; + /* index to next (x,y) */ + i2o=i2=( (box1->num_frames==0)?0: + box1->num_frame_vectors[ box1->num_frames ] ); +#if 0 // obsolete v0.43 + box1->frame_vector[i2][0]=x; + box1->frame_vector[i2][1]=y; + i2++; + box1->num_frame_vectors[ box1->num_frames ]=i2; +#endif + box1->num_frames++; + + /* robot stores start-position */ + ox = x; oy = y; /* look forward to white pixel */ + + for (;;) { /* stop if same marked pixel touched */ + + g_debug(fprintf(stderr,"\nLEV3: x= %3d %3d d= %d rot= %2d %3d",x,y,d,rot,i2);) + + /* ToDo: store max. abs(rot) ??? for better recognition */ + if (new_x) { + g_debug(fprintf(stderr,"\nLEV2: markB xy= %3d %3d ", x, y);) + p->p[x + y * p->x] |= (mark & 7); /* mark black pixel */ + } + + /* store a new vector or enlarge the predecessor */ + if (new_x && (rc%steps)==0) { /* dont store everything on big chars */ + if (i2>=MaxFrameVectors) { + box1->num_frame_vectors[ box1->num_frames-1 ]=i2; + reduce_vectors(box1,1); /* simplify loop */ + i2=box1->num_frame_vectors[ box1->num_frames-1 ]; + /* enlarge steps on big chars getting speedup */ + steps=(box1->y1-box1->y0+box1->x1-box1->x0)/32+1; + } + /* store frame-vector */ + if (i2frame_vector[i2][0]=x; + box1->frame_vector[i2][1]=y; + /* test if older vector points to the same direction */ + if (i2>1) { + /* get predecessor */ + nx=box1->frame_vector[i2-1][0]-box1->frame_vector[i2-2][0]; + ny=box1->frame_vector[i2-1][1]-box1->frame_vector[i2-2][1]; + mx=x -box1->frame_vector[i2-1][0]; + my=y -box1->frame_vector[i2-1][1]; + /* same direction? */ + if (nx*my-ny*mx==0 && nx*mx>=0 && ny*my>=0) { + /* simplify by removing predecessor */ + i2--; + box1->frame_vector[i2][0]=x; + box1->frame_vector[i2][1]=y; + } /* do not simplify */ + } + i2++; + box1->num_frame_vectors[ box1->num_frames-1 ]=i2; + } + g_debug(fprintf(stderr," stored @ %3d steps= %d", i2-1, steps);) + } + new_x=0; /* work for new pixel (x,y) done */ + + /* check if round trip is finished */ + if (x==ox && y==oy && abs(rot)>=8) break; + + /* look to the front of robot (turtle or ant) */ + nx = x + d0[d][0]; + ny = y + d0[d][1]; + + /* next step, if right is a wall turn the turtle left */ + if ( outbounds(p, nx, ny) || i1 != ((getpixel(p,nx,ny)=0 && nxx) { /* if inbound */ + g_debug(fprintf(stderr,"\nLEV2: markW xy= %3d %3d ", nx, ny);) + p->p[nx + ny * p->x] |= (mark & 7); /* mark white pixel */ + } + /* rotate left 90 or 45 degrees */ + d=(d+2-diag) & 7; rot+=2-diag; + /* calculate volume inside frame */ + switch (d+diag) { + case 2+2: vol-=x-1; break; + case 6+2: vol+=x; break; + } + } + else { /* if no wall, go forward and turn right (90 or 45 degrees) */ + x=nx; y=ny; + /* turn back and rotate left */ + d=(d+4+2-diag) & 7; rot+=2-diag-4; + rc++; /* counting steps, used for speedup */ + + /* enlarge frame */ + if (x < box1->x0) box1->x0 = x; + if (x > box1->x1) box1->x1 = x; + if (y < box1->y0) box1->y0 = y; + if (y > box1->y1) box1->y1 = y; + + new_x=1; + } + } + + /* to distinguish inner and outer frames, store volume as +v or -v */ + box1->frame_vol[ box1->num_frames-1 ] = vol; + box1->frame_per[ box1->num_frames-1 ] = rc-1; + + /* dont count and store the first vector twice */ + if (i2-i2o>1) { + i2--; rc--; box1->num_frame_vectors[ box1->num_frames-1 ]=i2; + } + /* output break conditions */ + g_debug(fprintf(stderr,"\nLEV2 o= %3d %3d x= %3d %3d r=%d v=%d",ox,oy,x,y,rot,vol);) + /* rc=1 for a single point, rc=2 for a two pixel sized point */ + g_debug(fprintf(stderr," steps= %3d vectors= %3d",rc,i2);) + /* out_x(box1); ToDo: output only the first thousend */ + return rc; /* return number of bordering pixels = periphery? */ +} + + + +/* clear lowest 3 (marked) bits (they are used for marking) */ +void clr_bits(pix * p, int x0, int x1, int y0, int y1) { + int x, y; + for ( y=y0; y <= y1; y++) + for ( x=x0; x <= x1; x++) + p->p[x+y*p->x] &= ~7; +} + +/* look for white holes surrounded by black points + * at the moment look for white point with black in all four directions + * - store position of hole in coordinates relativ to box! + * ToDo: count only holes with vol>10% ??? + * ToDo: rewrite for frame vectors (faster, no malloc) + * holes are frames rotating left hand + * obsolete, do it with vectors + */ +int num_hole(int x0, int x1, int y0, int y1, pix * p, int cs, holes_t *holes) { + int num_holes = 0, x, y, hole_size; + pix b; // temporary mini-page + int dx = x1 - x0 + 1, dy = y1 - y0 + 1; + unsigned char *buf; // 2nd copy of picture, for working + + if (holes) holes->num=0; + if(dx<3 || dy<3) return 0; + b.p = buf = (unsigned char *) malloc( dx * dy ); + if( !buf ){ + fprintf( stderr, "\nFATAL: malloc(%d) failed, skip num_hole", dx*dy ); + return 0; + } + if (copybox(p, x0, y0, dx, dy, &b, dx * dy)) + { free(b.p); return -1;} + + // printf(" num_hole("); + /* --- mark white-points connected with border */ + for (x = 0; x < b.x; x++) { + if (getpixel(&b, x, 0) >= cs) + mark_nn(&b, x, 0, cs, AT); + if (getpixel(&b, x, b.y - 1) >= cs) + mark_nn(&b, x, b.y - 1, cs, AT); + } + for (y = 0; y < b.y; y++) { + if (getpixel(&b, 0, y) >= cs) + mark_nn(&b, 0, y, cs, AT); + if (getpixel(&b, b.x - 1, y) >= cs) + mark_nn(&b, b.x - 1, y, cs, AT); + } + + g_debug(out_b(NULL,&b,0,0,b.x,b.y,cs);) + // --- look for unmarked white points => hole + for (x = 0; x < b.x; x++) + for (y = 0; y < b.y; y++) + if (!((marked(&b, x, y)&AT)==AT)) // unmarked + if (getpixel(&b, x, y) >= cs) { // hole found +#if 0 + hole_size=mark_nn(&b, x, y, cs, AT); /* old version */ + if (hole_size > 1 || dx * dy <= 40) + num_holes++; +#else + { /* new version, for future store of hole characteristics */ + int x0, x1, y0, y1, i, j; + x0 = x1 = x; + y0 = y1 = y; // not used + hole_size=frame_nn(&b, x, y, &x0, &x1, &y0, &y1, cs, AT, JOB->tmp.n_run & 1); + // store hole for future use, num is initialized with 0 + if (hole_size > 1 || dx * dy <= 40){ + num_holes++; + if (holes) { + // sort in table + for (i=0;inum && ihole[i].size < hole_size) break; + for (j=MAX_HOLES-2;j>=i;j--) + holes->hole[j+1]=holes->hole[j]; + if (ihole[i].size=hole_size; + holes->hole[i].x=x; + holes->hole[i].y=y; + holes->hole[i].x0=x0; + holes->hole[i].y0=y0; + holes->hole[i].x1=x1; + holes->hole[i].y1=y1; + } + holes->num++; + } + } + } +#endif + } + free(b.p); + // printf(")=%d",num_holes); + return num_holes; +} + +/* count for black nonconnected objects --- used for i,auml,ouml,etc. */ +/* ToDo: obsolete, replaced by vectors and box.num_boxes */ +int num_obj(int x0, int x1, int y0, int y1, pix * p, int cs) { + int x, y, rc = 0; // rc=num_obj + unsigned char *buf; // 2nd copy of picture, for working + pix b; + + if(x1x0;y1=box1->y0;x2=box2->x0;y2=box2->y0; + dx1=box1->x1-box1->x0+1; dx2=box2->x1-box2->x0+1; dx=((dx1>dx2)?dx1:dx2); + dy1=box1->y1-box1->y0+1; dy2=box2->y1-box2->y0+1; dy=((dy1>dy2)?dy1:dy2); + if(abs(dx1-dx2)>1+dx/16 || abs(dy1-dy2)>1+dy/16) return 100; + // compare relations to baseline and upper line + if(2*box1->y1>box1->m3+box1->m4 && 2*box2->y1m3+box2->m4) rbad+=128; + if(2*box1->y0>box1->m1+box1->m2 && 2*box2->y0m1+box2->m2) rbad+=128; + // compare pixels + for( y=0;y0) rbad+=16*v1; + else rbad++; + } + if(rgood+rbad) rc= (100*rbad+(rgood+rbad-1))/(rgood+rbad); else rc=99; + if(rc<10 && JOB->cfg.verbose & 7){ + fprintf(stderr,"\n# distance rc=%d good=%d bad=%d",rc,rgood,rbad); +// out_x(box1);out_x(box2); + } + return rc; +} + + + +// ============================= call OCR engine ================== ;) +// nrun=0 from outside, nrun=1 from inside (allows modifications, oobsolete) +wchar_t whatletter(struct box *box1, int cs, int nrun){ + wchar_t bc=UNKNOWN; // best letter + wchar_t um=SPACE; // umlaut? '" => modifier + pix *p=box1->p; // whole image + int x,y,dots,xa,ya,x0,x1,y0,y1,dx,dy,i; + pix b; // box + struct box bbuf=*box1; // restore after modifikation! + + if (box1->num_ac>0 && box1->wac[0]>=JOB->cfg.certainty && bc==UNKNOWN) { + bc=box1->tac[0]; + } + // if (bc!=UNKNOWN) return bc; + // if whatletter() called again, only unknown chars are processed + // bad for splitting! + + // store box data, which can be modified for modified chars in 2nd run + bbuf.x0=box1->x0; bbuf.y0=box1->y0; + bbuf.x1=box1->x1; bbuf.y1=box1->y1; + + xa=box1->x; ya=box1->y; + x0=box1->x0; y0=box1->y0; + x1=box1->x1; y1=box1->y1; + // int vol=(y1-y0+1)*(x1-x0+1); // volume + // crossed l-m , divided chars + while( get_bw(x0,x1,y0,y0,p,cs,1)!=1 && y0+15 && box1->num_boxes>1) + testumlaut(box1,cs,2,&um); /* set box1->modifier + new y0 */ + + dots=box1->dots; + y0 =box1->y0; // dots==2 => y0 below double dots + dy =y1-y0+1; + + // move upper and lower border (for divided letters) + while( get_bw(x0,x1,y0,y0,p,cs,1)==0 && y0+1x0=x0; box1->y0=y0; // set reduced frame + box1->x1=x1; box1->y1=y1; + + // set good startpoint (probably bad from division)? + if( xax1 || yay1 + || getpixel(p,xa,ya)>=cs /* || 2*ya0 ){ + // subfunction? also called after division of two glued chars? + for(y=y1;y>=y0;y--) // low to high (not i-dot) + for(x=(x0+x1)/2,i=0;x>=x0 && x<=x1;i++,x+=((2*i&2)-1)*i) /* is that ok? */ + if (getpixel(p,x,y)x,y be set? */ + } + + // ----- create char-only-box ------------------------------------- + // ToDo: this will be obsolete if vectors are used only + if(dx<1 || dy<1) return bc; /* should not happen */ + b.p = (unsigned char *) malloc( dx * dy ); + if (!b.p) fprintf(stderr,"Warning: malloc failed L%d\n",__LINE__); + if( copybox(p,x0,y0,dx,dy,&b,dx*dy) ) + { free(b.p); return bc; } + // clr_bits(&b,0,b.x-1,0,b.y-1); + // ------ use diagonal too (only 2nd run?) + /* following code failes on ! and ? obsolete if vectors are used + ToDo: + - mark pixels neighoured to pixels outside and remove them from &b + v0.40 + will be replaced by list of edge vectors + - mark accents, dots and remove them from &b + */ +#if 1 /* becomes obsolate by vector code */ + if (y0>0) // mark upper overlap + for ( x=x0; x<=x1; x++) { + if (getpixel(p,x,y0-1)0) // mark left overlap + for ( y=y0; y<=y1; y++) { + if (getpixel(p,x0-1,y)x-1) // mark right overlap + for ( y=y0; y<=y1; y++) { + if (getpixel(p,x1+1,y)num_ac>0 && box1->wac[0]>=JOB->cfg.certainty && bc==UNKNOWN) { + bc=box1->tac[0]; + } + + if (um!=0 && um!=SPACE && bc<127) { /* ToDo: is that obsolete now? */ + wchar_t newbc; + newbc = compose(bc, um ); + if (newbc == bc) { /* nothing composed */ + if(JOB->cfg.verbose & 7) + fprintf(stderr, "\nDBG whatletter: compose(%s) was useless (%d,%d)", + decode(bc,ASCII), box1->x0, box1->y0); + // if(JOB->cfg.verbose & 6) out_x(box1); + } + bc = newbc; + } + // restore modified boxes + box1->x0=bbuf.x0; box1->y0=bbuf.y0; + box1->x1=bbuf.x1; box1->y1=bbuf.y1; +// if (box1->c==UNKNOWN) out_b(box1,&b,0,0,dx,dy,cs); // test + + free(b.p); + return bc; +} + +/* +** creates a list of boxes/frames around objects detected +** on the pixmap p for further work +** returns number of boxes created. +** - by the way: get average X, Y (avX=sumX/numC,..) +*/ +int scan_boxes( pix *p ){ + int x, y, nx, cs, rc, ds; + struct box *box3; + + if (JOB->cfg.verbose) + fprintf(stderr,"# scanning boxes"); + + cs = JOB->cfg.cs; + JOB->res.sumX = JOB->res.sumY = JOB->res.numC = 0; + + /* clear the lowest bits of each pixel, later used as "scanned"-marker */ + clr_bits( p, 0, p->x - 1, 0, p->y - 1); + + for (y=0; y < p->y; y++) + for (x=0; x < p->x; x++) + for (ds=2; ds<7; ds+=4) { // NO - dust of size 1 is not removed !!! + nx=x+((ds==2)?-1:+1); + if (nx<0 || nx>=p->x) continue; /* out of image, ex: recframe */ + if ( getpixel(p, x,y)>=cs || getpixel(p,nx,y)< cs) // b/w transition? + continue; + if ((marked(p, x,y) & 1)&&(marked(p, nx, y) & 1)) + continue; + /* check (and mark) only horizontal b/w transitions */ + // --- insert new box in list + box3 = (struct box *)malloc_box(NULL); + box3->x0=box3->x1=box3->x=x; + box3->y0=box3->y1=box3->y=y; + box3->num_frames=0; + box3->dots=0; + box3->num_boxes=1; + box3->num_subboxes=0; + box3->modifier='\0'; + box3->num=JOB->res.numC; + box3->line=0; // not used here + box3->m1=0; box3->m2=0; box3->m3=0; box3->m4=0; + box3->p=p; + box3->num_ac=0; // for future use + +/* frame, vectorize and mark only odd/even horizontal b/w transitions + * args: box, x,y, cs, mark, diag={0,1}, ds={2,6} + * ds - start direction, 6=right of right border, 2=left of left border + * ret - 0=ok, -1=already marked, -2=max_num_frames_exceeded + * -7=no border in direction ds + * ToDo: count errors and print out for debugging + */ + rc=frame_vector(box3, x, y, cs, 1, 1, ds); + g_debug(fprintf(stderr,"\n# ... scan xy= %3d %3d rc= %2d", x, y, rc);) + if (rc<0) { free_box(box3); continue; } + if (box3->num_frames && !box3->num_frame_vectors[0]) + fprintf(stderr,"\nERROR scan_boxes: no vector in frame (%d,%d)",x,y); + + JOB->res.numC++; + JOB->res.sumX += box3->x1 - box3->x0 + 1; + JOB->res.sumY += box3->y1 - box3->y0 + 1; + + box3->c=(((box3->y1-box3->y0+1) + *(box3->x1-box3->x0+1)>=MaxBox)? PICTURE : UNKNOWN); + list_app(&(JOB->res.boxlist), box3); // append to list + // ToDo: debug + // if (JOB->cfg.verbose && box3->y0==29) out_x(box3); + } + if(JOB->res.numC){ + if (JOB->cfg.verbose) + fprintf(stderr," nC= %3d avD= %2d %2d\n",JOB->res.numC, + (JOB->res.sumX+JOB->res.numC/2)/JOB->res.numC, + (JOB->res.sumY+JOB->res.numC/2)/JOB->res.numC); + } + return JOB->res.numC; +} + +/* compare ints for sorting. Return -1, 0, or 1 according to + whether *vr < *vs, vr == *vs, or *vr > *vs */ +int +intcompare (const void *vr, const void *vs) +{ + int *r=(int *)vr; + int *s=(int *)vs; + + if (*r < *s) return -1; + if (*r > *s) return 1; + return 0; +} + +/* + * measure_pitch - detect monospaced font and measure the pitch + * measure overall pitch for difficult lines, + * after that measure pitch per line + * dists arrays are limited to 1024 elements to reduce + * cpu usage for qsort on images with extreme high number of objects + * insert space if dist>=pitch in list_insert_spaces() + * ToDo: ??? + * - min/max distance-matrix a-a,a-b,a-c,a-d ... etc; td,rd > ie,el,es + * - OR measuring distance as min. pixel distance instead of box distance + * especially useful for italic font! + */ +void measure_pitch( job_t *job ){ + int numdists=0, spc=0, /* number of stored distances */ + pitch_p=2, pdist, pdists[1024], /* proportional distances */ + pitch_m=6, mdist, mdists[1024], /* monospaced distances */ + monospaced=0, l1; + struct box *box2, *prev=NULL; + + if(job->cfg.verbose){ fprintf(stderr,"# check for word pitch"); } + for (l1=0; l1res.lines.num; l1++) + { /* 0 means all lines */ + if(job->cfg.verbose){ fprintf(stderr,"\n# line %2d",l1); } + numdists = 0; /* clear distance lists */ + for_each_data(&(job->res.boxlist)) { + box2 = (struct box *)list_get_current(&(job->res.boxlist)); + if (l1>0 && box2->line!=l1) continue; /* ignore other lines */ + /* ignore dots and pictures (min. font is 4x6) */ + if (box2->y1 - box2->y0 + 1 < 4 || box2->c==PICTURE) { prev=NULL; } + if (!prev) { prev=box2; continue; } /* we need a predecessor */ + /* use center distance for monospaced fonts */ + mdist = ((box2->x0 + box2->x1) - (prev->x0 + prev->x1) + 1)/2; + /* use gap for proportional fonts */ + pdist = box2->x0 - prev->x1 + 1; + /* ToDo: better take 3 instead of 2 neighbours?, smallest font 4x6 */ + /* fonts are expected to be 6 to 60 pixels high, which is about + 4 to 50 pixels wide. We allow some extra margin. */ + if (3 < mdist && mdist < 150) { /* better mdist < 3*Xaverage ? */ + /* two options for overflow: 1) ignore, 2) store randomly */ + if (numdists<1024) { /* we do ignore here */ + mdists[numdists] = mdist; + pdists[numdists] = pdist; + numdists++; + } + } + prev = box2; + } end_for_each(&(job->res.boxlist)); + + if(job->cfg.verbose){ fprintf(stderr," num_gaps= %2d",numdists); } + if( numdists<8 ){ + if (job->cfg.verbose && l1==0) /* only for all lines */ + fprintf(stderr," (WARNING num_gaps<8)"); + } + if (numdists>0) { + int i,diff,ni_min,max,best_m,best_p,ni; double v; + /* aware: takes long time for big data sets */ + /* dilute? (german: ausduennen?) */ + qsort (mdists, numdists, sizeof (int), intcompare); + qsort (pdists, numdists, sizeof (int), intcompare); + /* the new method, div0? */ + v = (mdists[numdists*7/10]-mdists[numdists/5]) + /(double)mdists[numdists/5]; + /* measurements showed v=.09 for Courier and .44 for Times-Roman */ + if (l1==0) monospaced = (v < .22); + best_m= numdists/5; + best_p=4*numdists/5; + /* try to find better pitch for monospaced font (ok for prop) */ + for (i=numdists/5+1;i=3*mdists[best_m]) { best_m=i-1; break; } + } + /* try to find better pitch for proportional font */ + // the largest diff could be the best, if diff is always 1, + // take the diff with the lowest weight + for (ni=ni_min=1024,max=0,i=numdists/2+1;imax) { + max=diff; best_p=i-1; + if ((job->cfg.verbose&(32+16))==48) + fprintf(stderr," best_p=%d maxdiff=%d\n# ...", pdists[best_p], max); + if (max>3 && 3*pdists[i]>=4*pdists[i-1]) { break; } + } + if (diff) { + if (ni16) best_p=i-1; + if ((job->cfg.verbose&(32+16))==48) + fprintf(stderr," best_p=%d ni_min=%d\n# ...", pdists[best_p], ni_min); + } + ni=1; + } else ni++; + } + if (numdists<16 && max<=1 && ni_min>1) best_p=numdists-1; // one word +#if 1 /* debugging */ + if ((job->cfg.verbose&(32+16))==48) { + fprintf(stderr,"\n# ..."); + for (i=0;i0 && job->cfg.spc==0) { + job->res.lines.pitch[l1]=(monospaced?pitch_m:pitch_p); + job->res.lines.mono[l1]=monospaced; + } + if (job->cfg.verbose) { + fprintf(stderr,"\n# ..." + " mono: v=%f (v<0.22) line=%d numdists=%d\n# ...", + v, l1, numdists); + fprintf(stderr," mono: min=%3d max=%3d pitch=%3d @ %2d%%\n# ...", + mdists[0],mdists[numdists-1],pitch_m,best_m*100/numdists); + fprintf(stderr," prop: min=%3d max=%3d pitch=%3d @ %2d%%\n# ...", + pdists[0],pdists[numdists-1],pitch_p,best_p*100/numdists); + fprintf(stderr," result: distance >= %d considered space\n# ...", + job->res.lines.pitch[l1]); + } + } /* if (not) enough spaces */ + if (l1==0) { /* set default spaces to each line */ + int l2; + spc = job->cfg.spc; + if (spc==0) /* set only if not set by option */ + spc = ((monospaced)?pitch_m:pitch_p); + for (l2=0; l2res.lines.num; l2++ ) + job->res.lines.pitch[l2]=spc; + } + } /* each line */ + if (job->cfg.spc==0) + job->cfg.spc = spc; + if (job->cfg.verbose) + fprintf(stderr," overall space width is %d %s\n", + spc, ((monospaced)?"monospaced":"proportional")); + + +} + +/* ---- count subboxes (white holes within black area) -------- + * new: count boxes lying inside another box (usually holes, ex: "aeobdg") + * needed for glue_boxes, dont glue textboxes, tables and other complex + * objects + * ToDo: count only frames of invers spin? do we need sorted list here? -> no + */ +int count_subboxes( pix *pp ){ + int ii=0, num_mini=0, num_same=0, cnt=0; + struct box *box2,*box4; + progress_counter_t *pc = NULL; + if (JOB->cfg.verbose) { fprintf(stderr,"# count subboxes\n# ..."); } + + pc = open_progress(JOB->res.boxlist.n,"count_subboxes"); + for_each_data(&(JOB->res.boxlist)) { + box2 = (struct box *)list_get_current(&(JOB->res.boxlist)); + box2->num_subboxes=0; + progress(cnt++,pc); + if ( (box2->x1 - box2->x0)<2 + || (box2->y1 - box2->y0)<2) continue; /* speedup for dotted bg */ + // holes inside box2 char, aoebdqg, 0.41 + for_each_data(&(JOB->res.boxlist)) { + box4=(struct box *)list_get_current(&(JOB->res.boxlist)); + if (box4->y0 > box2->y1) break; // faster, but boxes need to be sorted + // ToDo: better use binary tree (above/below x) to find near boxes? + if (box4==box2) continue; + if( box4->x0==box2->x0 && box4->x1==box2->x1 + && box4->y0==box2->y0 && box4->y1==box2->y1) + num_same++; /* erroneous!? */ + if ( box4->x0 >= box2->x0 && box4->x1 <= box2->x1 + && box4->y0 >= box2->y0 && box4->y1 <= box2->y1 + && box4->num_subboxes==0 ) /* box4 inside box2? */ + { + box2->num_subboxes++; ii++; + if ((box4->x1 - box4->x0 + 1) + *(box4->y1 - box4->y0 + 1)<17) num_mini++; + } + } end_for_each(&(JOB->res.boxlist)); +#if 0 + if (cnt < 1000 && JOB->cfg.verbose) + fprintf(stderr," %4d box %4d %4d %+3d %+3d subboxes %4d\n# ...", + cnt, box2->x0, box2->y0, box2->x1-box2->x0, + box2->y1-box2->y0, box2->num_subboxes); +#endif + } end_for_each(&(JOB->res.boxlist)); + close_progress(pc); + if (JOB->cfg.verbose) + fprintf(stderr," %3d subboxes counted (mini=%d, same=%d) nC= %d\n", + ii, num_mini, num_same/2 /* counted twice */, cnt); + return 0; +} + +/* ---- glue holes tochars( before step1 ) v0.42 ----------------------- + glue boxes lying inside another box (usually holes, ex: "aeobdg46890") + Dont add dust to a char! + lines are not detected yet +*/ +int glue_holes_inside_chars( pix *pp ){ + int ii, cs, x0, y0, x1, y1, cnt=0, + glued_same=0, glued_holes=0; + struct box *box2, *box4; + progress_counter_t *pc = NULL; + cs=JOB->cfg.cs; + { + count_subboxes( pp ); /* move to pgm2asc() later */ + + pc = open_progress(JOB->res.boxlist.n,"glue_holes_inside_chars"); + if (JOB->cfg.verbose) + fprintf(stderr,"# glue holes to chars nC= %d\n# ...",JOB->res.numC); + ii=0; + for_each_data(&(JOB->res.boxlist)) { + // get the smaller box which may be extended by bigger boxes around it + box2 = (struct box *)list_get_current(&(JOB->res.boxlist)); + x0 = box2->x0; x1 = box2->x1; + y0 = box2->y0; y1 = box2->y1; + + progress(cnt++,pc); + + // would it better than moving vectors to build a sub-box-tree? + + // do not remove chars inside pictures (car plates on photos) + if( box2->c == PICTURE || box2->num_subboxes > 7) continue; + + // holes inside char, aoebdqg, 0.41 + // dont merge boxes which have subboxes by itself! + // search boxes inside box2 + // if (x1-x0+1>2 || y1-y0+1>2) /* skip tiny boxes, bad for 4x6 */ + for_each_data(&(JOB->res.boxlist)) { + box4=(struct box *)list_get_current(&(JOB->res.boxlist)); + if(box4!=box2 && box4->c != PICTURE ) + { + // ToDo: dont glue, if size differs by big factors (>16?) + if ( ( box4->x0==x0 && box4->x1==x1 + && box4->y0==y0 && box4->y1==y1 ) /* do not happen !? */ + || ( box4->x0>=x0 && box4->x1<=x1 + && box4->y0>=y0 && box4->y1<=y1 + && box4->num_subboxes==0 ) ) /* no or very small subboxes? */ + { // fkt melt(box2,box4) + // same box, if very small but hollow char (4x5 o) + if( box4->x0==x0 && box4->x1==x1 + && box4->y0==y0 && box4->y1==y1) glued_same++; else glued_holes++; + // fprintf(stderr,"\n# DEBUG merge:"); + // out_x(box2); // small + // out_x(box4); // big + if ((JOB->cfg.verbose & 7)==7) // LEV3 + fprintf(stderr," glue hole (%4d %4d %+3d %+3d %+4d)" + " (%4d %4d %+3d %+3d %+4d) %d\n# ...", + x0, y0, x1-x0+1, y1-y0+1, box2->frame_vol[0], + box4->x0, box4->y0, + box4->x1-box4->x0+1, box4->y1-box4->y0+1, + box4->frame_vol[0], glued_same); + if ((box4->x1-box4->x0+1)< 8*(x1-x0+1) + || (box4->y1-box4->y0+1)<12*(y1-y0+1)) // skip dust + merge_boxes( box2, box4 ); // add box4 to box2 + // out_x(box2); + x0 = box2->x0; x1 = box2->x1; + y0 = box2->y0; y1 = box2->y1; + JOB->res.numC--; // dont count fragments as chars + ii++; // count removed + list_del(&(JOB->res.boxlist), box4); // remove box4 + free_box(box4); + // now search another hole inside box2 + } + } + } end_for_each(&(JOB->res.boxlist)); + + } end_for_each(&(JOB->res.boxlist)); + + if (JOB->cfg.verbose) + fprintf(stderr," glued: %3d holes, %3d same, nC= %d\n", + glued_holes, glued_same, JOB->res.numC); + close_progress(pc); + } + return 0; +} + + +/* ---- glue broken chars ( before step1 ??? ) ----------------------- + use this carefully, do not destroy previous detection ~fi, broken K=k' g + glue if boxes are near or diagonally connected + other strategy: mark boxes for deleting and delete in extra loop at end + faster: check only next two following boxes because list is sorted! + ToDo: store m4 of upper line to m4_of_prev_line, and check that "-points are below + done: glue boxes lying inside another box (usually holes, ex: "aeobdg") + Dont add dust to a char! + lines should be detected already (Test it for m1-m4 unknown) + ToDo: divide in glue_idots, glue_thin_chars etc. and optimize it +*/ +int glue_broken_chars( pix *pp ){ + int ii, y, cs, x0, y0, x1, y1, cnt=0, + num_frags=0, glued_frags=0, glued_hor=0; + struct box *box2, *box4; + progress_counter_t *pc = NULL; + cs=JOB->cfg.cs; + { + count_subboxes( pp ); /* move to pgm2asc() later */ + + pc = open_progress(JOB->res.boxlist.n,"glue_broken_chars"); + if (JOB->cfg.verbose) + fprintf(stderr,"# glue broken chars nC= %d\n# ...",JOB->res.numC); + ii=0; + for_each_data(&(JOB->res.boxlist)) { + // get the box which may be extended by boxes around it + box2 = (struct box *)list_get_current(&(JOB->res.boxlist)); + x0 = box2->x0; x1 = box2->x1; + y0 = box2->y0; y1 = box2->y1; + + progress(cnt++,pc); + + // vertical broken (g965T umlauts etc.) + // not: f, + + // would it better than moving vectors to build a sub-box-tree? + + // do not remove chars inside pictures (car plates on photos) + if( box2->c == PICTURE || box2->num_subboxes > 7) continue; + + /* continue loop if box is below or above line */ + if( box2->m4>0 && y0>box2->m4 ) continue; /* dust outside ? */ + if( box2->m1>0 && y0m1-(box2->m3-box2->m2) ) continue; + /* ToDo: + * - check that y0 is greater as m3 of the char/line above + */ + + // check small boxes (box2) whether they belong + // to near same size or bigger boxes (box4) + if( 2*(y1-y0) < box2->m4 - box2->m1 // care for dots etc. + && ( 2*y1<=(box2->m3+box2->m2) // upper fragments + || 2*y0>=(box2->m3+box2->m2)) ) { // lower fragments + struct box *box5=NULL, *box6=NULL; // nearest and next nearest box + box4=NULL; + num_frags++; /* count for debugging */ + // get the [2nd] next x-nearest box in the same line + for_each_data(&(JOB->res.boxlist)) { + box4=(struct box *)list_get_current(&(JOB->res.boxlist)); + if (box4 == box2 || box4->c == PICTURE) continue; + /* 0.42 speed up for backround pixel pattern, box4 to small */ + if ( box4->x1 - box4->x0 + 1 < x1-x0+1 + && box4->y1 - box4->y0 + 1 < y1-y0+1 ) continue; + // have in mind that line number may be wrong for dust + if (box4->line>=0 && box2->line>=0 && box4->line==box2->line) + { + if (!box5) box5=box4; + if ( abs(box4->x0 + box4->x1 - 2*box2->x0) + x0 + box5->x1 - 2*box2->x0)) + { box6=box5; box5=box4; } + } + } end_for_each(&(JOB->res.boxlist)); + box4=box5; // next nearest box within the same line + if (box4) { +#if 0 /* set this to 1 for debugging of melting bugs */ + if (JOB->cfg.verbose & 7) { + fprintf(stderr,"\n# next two boxes are candidates for melting "); + out_x(box2); + out_x(box4); } +#endif + if( /* umlaut "a "o "u, ij; box2 is the small dot, box4 the body */ + ( y1 <= box2->m2 + && box4->y1 >= box2->m2 // dont melt dots together + && 2* y1 < box4->y1 + box4->y0 // box2 above box4 + && box4->x1+JOB->res.avX/2>=x0 + && box4->x0-JOB->res.avX/2<=x1 + && (y1 < box4->y0 || x0 < box4->x1) // dont melt "d'" + && 3* ( y1 - box4->y0) + <= 2* (box4->y1 - box4->y0) // too far away? dust! + && 8* ( x1 - x0 + 1) + >= (box4->x1 - box4->x0 + 1) // dot must have minimum size + && 10* ( y1 - y0 + 1) + >= (box4->y1 - box4->y0 + 1) // dot must have minimum size + ) || ( 0 && /* broken T */ + 3*(box2->x1 - box2->x0) > 2*JOB->res.avX + && 4*box4->x0>3*box2->x0+box2->x1 + && 4*box4->x1x0+3*box2->x1 + ) + || /* !?; box2 is the dot, box4 the body */ + ( 2*box4->x1>=x0+x1 /* test if box4 is around box2 */ + && 2*box4->x0<=2*x1 /* +x0+1 Jan00 */ + && ( x1-x0 <= box4->x1-box4->x0+2 ) + && 2*y0>=box2->m2+box2->m3 + && 4*y1>=box2->m2+3*box2->m3 + && 4*(y1-y0)m4-box2->m1 + && (8*box4->y1 < box4->m2+7*box4->m3 + || box4->m4-box4->m1<16) /* Jan00 */ + ) + || /* =;: box2 is the upper box, box4 the lower box */ + ( 2*box4->x1>=x0+x1 /* test if box4 is around box2 */ + && 2*box4->x0<=2*x1 /* +x0+1 */ + && ( x1-x0 <= box4->x1-box4->x0+4 ) + && ( 4*x0 <= 3*box4->x1+box4->x0 ) + && (( box2->m2 && box4->m2 + && y1< box2->m3 + && 2*box4->y1 > box4->m3+box4->m2 // can be bigger than m3 + && 4*box4->y0 >= 3*box4->m2+box4->m3 + && 2*box2->y0 < box2->m3+box2->m2 + ) + || ( (!box2->m2) || (!box4->m2) ) + ) + ) + ) + { // fkt melt(box2,box4) + if (JOB->cfg.verbose & 7) + fprintf(stderr," glue objects (%3d %3d %+3d %+3d)" + " (%3d %3d %+3d %+3d)\n# ...", + x0, y0, x1-x0+1, y1-y0+1, box4->x0, box4->y0, + box4->x1-box4->x0+1, box4->y1-box4->y0+1); + // fprintf(stderr,"\n# DEBUG merge:"); // d=7x34 @ (109,51) ??? + // out_x(box2); + // out_x(box4); + merge_boxes( box2, box4 ); // add box4 to box2 + x0 = box2->x0; x1 = box2->x1; + y0 = box2->y0; y1 = box2->y1; + // if (JOB->cfg.verbose & 4) out_x(box2); + // JOB->res.numC--; // dont count fragments as chars + ii++; glued_frags++; // remove + // output_list(JOB); + list_del(&(JOB->res.boxlist), box4); /* ret&1: error-message ??? */ + // output_list(JOB); + free_box(box4); + } + } + } +// continue; + + // horizontally broken w' K' + if( 2*y1 < (box2->m3+box2->m2) ) + if( 2*(y1-y0) < (box2->m3+box2->m2) ) // fragment + for_each_data(&(JOB->res.boxlist)) { + box4=(struct box *)list_get_current(&(JOB->res.boxlist)); + if(box4!=box2 && box4->c != PICTURE ) + { + if( box4->line>=0 && box4->line==box2->line + && box4->x1>=x0-1 && box4->x1x0+3*box4->x1<4*x0) + if( get_bw(x0 ,x0 ,y1,y1 ,pp,cs,1) == 1) + if( get_bw(x0-2,x0-1,y1,y1+2,pp,cs,1) == 1) + { // fkt melt(box2,box4) + put(pp,x0,y1+1,~(128+64),0); + merge_boxes( box2, box4 ); + x0 = box2->x0; x1 = box2->x1; + y0 = box2->y0; y1 = box2->y1; + JOB->res.numC--; ii++; // remove + glued_hor++; + list_del(&(JOB->res.boxlist), box4); + free_box(box4); + } + } + } end_for_each(&(JOB->res.boxlist)); + + // horizontally broken n h (h=l_) v0.2.5 Jun00 + if( abs(box2->m2-y0)<=(y1-y0)/8 ) + if( abs(box2->m3-y1)<=(y1-y0)/8 ) + if( num_cross(x0, x1,(y0+ y1)/2,(y0+ y1)/2,pp,cs) == 1) + if( num_cross(x0, x1,(y0+3*y1)/4,(y0+3*y1)/4,pp,cs) == 1) + if( get_bw((3*x0+x1)/4,(3*x0+x1)/4,(3*y0+y1)/4,y1,pp,cs,1) == 0) + if( get_bw(x0,(3*x0+x1)/4,(3*y0+y1)/4,(y0+3*y1)/4,pp,cs,1) == 0) + if( get_bw(x0, x0, y0,(3*y0+y1)/4,pp,cs,1) == 1) + for_each_data(&(JOB->res.boxlist)) { + box4=(struct box *)list_get_current(&(JOB->res.boxlist)); + if(box4!=box2 && box4->c != PICTURE ) + { + if( box4->line>=0 && box4->line==box2->line + && box4->x1>x0-3 && box4->x1-2y1-box2->m3)<2) + { // fkt melt(box2,box4) + y=loop(pp,x0,y0,y1-y0,cs,0,DO);if(2*y>y1-y0) continue; + put(pp,x0-1,y0+y ,~(128+64),0); + put(pp,x0-1,y0+y+1,~(128+64),0); + merge_boxes( box2, box4 ); // add box4 to box2 + x0 = box2->x0; x1 = box2->x1; + y0 = box2->y0; y1 = box2->y1; + JOB->res.numC--; ii++; // remove + glued_hor++; + list_del(&(JOB->res.boxlist), box4); + free_box(box4); + } + } + } end_for_each(&(JOB->res.boxlist)); + } end_for_each(&(JOB->res.boxlist)); + if (JOB->cfg.verbose) + fprintf(stderr," glued: %3d fragments (found %3d), %3d rest, nC= %d\n", + glued_frags, num_frags, glued_hor, JOB->res.numC); + close_progress(pc); + } + return 0; +} + +/* +** this is a simple way to improve results on noisy images: +** - find similar chars (build cluster of same chars) +** - analyze clusters (could be used for generating unknown font-base) +** - the quality of the result depends mainly on the distance function +*/ + // ---- analyse boxes, compare chars, compress picture ------------ + // ToDo: - error-correction only on large chars! +int find_same_chars( pix *pp){ + int i,k,d,cs,dist,n1,dx; struct box *box2,*box3,*box4,*box5; + pix p=(*pp); + cs=JOB->cfg.cs; + { + if(JOB->cfg.verbose)fprintf(stderr,"# packing"); + i = list_total(&(JOB->res.boxlist)); + for_each_data(&(JOB->res.boxlist)) { + box4 = box2 = (struct box *)list_get_current(&(JOB->res.boxlist)); + dist=1000; // 100% maximum + dx = box2->x1 - box2->x0 + 1; + + if(JOB->cfg.verbose)fprintf(stderr,"\r# packing %5d",i); + if( dx>3 ) + for(box3=(struct box *)list_next(&(JOB->res.boxlist),box2);box3; + box3=(struct box *)list_next(&(JOB->res.boxlist),box3)) { + if(box2->num!=box3->num){ + int d=distance(&p,box2,&p,box3,cs); + if ( dnum; // set all num==box2.num to box2.num + for_each_data(&(JOB->res.boxlist)) { + box5=(struct box *)(struct box *)list_get_current(&(JOB->res.boxlist)); + if(box5!=box2) + if( box5->num==n1 ) box5->num=box2->num; + } end_for_each(&(JOB->res.boxlist)); + // out_x2(box2,box5); + // fprintf(stderr," dist=%d\n",d); + } + } + } + // nearest dist to box2 has box4 + // out_b2(box2,box4); + // fprintf(stderr," dist=%d\n",dist); + } end_for_each(&(JOB->res.boxlist)); + k=0; + if(JOB->cfg.verbose)fprintf(stderr," %d different chars",i); + for_each_data(&(JOB->res.boxlist)) { + struct box *box3,*box4; + int j,dist; + box2=(struct box *)list_get_current(&(JOB->res.boxlist)); + for(box3=(struct box *)list_get_header(&(JOB->res.boxlist)); + box3!=box2 && box3!=NULL; + box3=(struct box *)list_next(&(JOB->res.boxlist), box3)) + if(box3->num==box2->num)break; + if(box3!=box2 && box3!=NULL)continue; + i++; + // count number of same chars + dist=0;box4=box2; + + for(box3=box2,j=0;box3; + box3=(struct box *)list_next(&(JOB->res.boxlist), box3)) { + if(box3->num==box2->num){ + j++; + d=distance(&p,box2,&p,box3,cs); + if ( d>dist ) { dist=d; box4=box3; } // worst fit + } + } + if(JOB->cfg.verbose&8){ + out_x2(box2,box4); + fprintf(stderr," no %d char %4d %5d times maxdist=%d\n",i,box2->num,j,dist); + } + // calculate mean-char (error-correction) + // ToDo: calculate maxdist in group + k+=j; + // if(j>1) + // out_b(box1,NULL,0,0,0,0,cs); + if(JOB->cfg.verbose&8) + fprintf(stderr," no %d char %4d %5d times sum=%d\n",i,box2->num,j,k); + } end_for_each(&(JOB->res.boxlist)); + if(JOB->cfg.verbose)fprintf(stderr," ok\n"); + } + return 0; +} + +/* +** call the first engine for all boxes and set box->c=result; +** +*/ +int char_recognition( pix *pp, int mo){ + int i,ii,ni,cs,x0,y0,x1,y1; + struct box *box2; + progress_counter_t *pc; + wchar_t cc; + cs=JOB->cfg.cs; + // ---- analyse boxes, find chars --------------------------------- + if (JOB->cfg.verbose) + fprintf(stderr,"# char recognition"); + i=ii=ni=0; + for_each_data(&(JOB->res.boxlist)) { /* count boxes */ + box2 = (struct box *)list_get_current(&(JOB->res.boxlist)); + /* wew: isn't this just JOB->res.numC? */ + /* js: The program is very complex. I am not sure anymore + wether numC is the number of boxes or the number of valid + characters. + Because its not time consuming I count the boxes here. */ + if (box2->c==UNKNOWN) i++; + if (box2->c==PICTURE) ii++; + ni++; + } end_for_each(&(JOB->res.boxlist)); + if(JOB->cfg.verbose) + fprintf(stderr," unknown= %d picts= %d boxes= %d\n# ",i,ii,ni); + if (!ni) return 0; + i=ii=0; + pc = open_progress(ni,"char_recognition"); + for_each_data(&(JOB->res.boxlist)) { + box2 = (struct box *)list_get_current(&(JOB->res.boxlist)); + x0=box2->x0;x1=box2->x1; + y0=box2->y0;y1=box2->y1; // box + cc=box2->c; + if (cc==PICTURE) continue; + + if ((mo&256)==0) { /* this case should be default (main engine) */ + if(cc==UNKNOWN || box2->num_ac==0 || box2->wac[0]cfg.certainty) + cc=whatletter(box2,cs ,0); + } + + if(mo&2) + if(cc==UNKNOWN || box2->num_ac==0 || box2->wac[0]cfg.certainty) + cc=ocr_db(box2); + + + // box2->c=cc; bad idea (May03 removed) + // set(box2,cc,95); ToDo: is that better? + + if(cc==UNKNOWN) + i++; + ii++; + + if(JOB->cfg.verbose&8) { + fprintf(stderr,"\n# code= %04lx %c",(long)cc,(char)((cc<255)?cc:'_')); + out_b(box2,pp,x0,y0,x1-x0+1,y1-y0+1,cs); + } + progress(ii,pc); /* ii = 0..ni */ + + } end_for_each(&(JOB->res.boxlist)); + close_progress(pc); + if(JOB->cfg.verbose)fprintf(stderr," %d of %d chars unidentified\n",i,ii); + return 0; +} + + +/* +** compare unknown with known chars, +** very similar to the find_similar_char_function but here only to +** improve the result +*/ +int compare_unknown_with_known_chars(pix * pp, int mo) { + int i, cs = JOB->cfg.cs, dist, d, ad, wac, ni, ii; + struct box *box2, *box3, *box4; + progress_counter_t *pc=NULL; + wchar_t bc; + i = ii = 0; // ---- ------------------------------- + if (JOB->cfg.verbose) + fprintf(stderr, "# try to compare unknown with known chars !(mode&8)"); + if (!(mo & 8)) + { + ii=ni=0; + for_each_data(&(JOB->res.boxlist)) { ni++; } end_for_each(&(JOB->res.boxlist)); + pc = open_progress(ni,"compare_chars"); + for_each_data(&(JOB->res.boxlist)) { + box2 = (struct box *)list_get_current(&(JOB->res.boxlist)); ii++; + if (box2->c == UNKNOWN || (box2->num_ac>0 && box2->wac[0]<97)) + if (box2->y1 - box2->y0 > 4 && box2->x1 - box2->x0 > 1) { // no dots! + box4 = (struct box *)list_get_header(&(JOB->res.boxlist));; + dist = 1000; /* 100% maximum */ + bc = UNKNOWN; /* best fit char */ + for_each_data(&(JOB->res.boxlist)) { + box3 = (struct box *)list_get_current(&(JOB->res.boxlist)); + wac=((box3->num_ac>0)?box3->wac[0]:100); + if (box3 == box2 || box3->c == UNKNOWN + || waccfg.certainty) continue; + if (box2->y1 - box2->y0 < 5 || box2->x1 - box2->x0 < 3) continue; + d = distance(pp, box2, pp, box3, cs); + if (d < dist) { + dist = d; bc = box3->c; box4 = box3; + } + } end_for_each(&(JOB->res.boxlist)); + if (dist < 10) { + /* sureness can be maximal of box3 */ + if (box4->num_ac>0) ad = box4->wac[0]; + else ad = 97; + ad-=dist; if(ad<1) ad=1; + /* ToDo: ad should depend on ad of bestfit */ + setac(box2,(wchar_t)bc,ad); + i++; + } // limit as option??? + // => better max distance('e','e') ??? + if (dist < 50 && (JOB->cfg.verbose & 7)) { // only for debugging + fprintf(stderr,"\n# L%02d best fit was %04x=%c dist=%3d%% i=%d", + box2->line, (int)bc, (char)((bc<128)?bc:'_'), dist, i); + if(box4->num_ac>0)fprintf(stderr," w= %3d%%",box4->wac[0]); + if ((JOB->cfg.verbose & 4) && dist < 10) + out_x2(box2, box4); + } + progress(ii,pc); + } + } end_for_each(&(JOB->res.boxlist)); + close_progress(pc); + } + if (JOB->cfg.verbose) + fprintf(stderr, " - found %d (nC=%d)\n", i, ii); + return 0; +} + +/* +// ---- divide overlapping chars which !strchr("_,.:;",c); +// block-splitting (two ore three glued chars) +// division if dots>0 does not work properly! ??? +// +// what about glued "be"? +// what about recursive division? +// ToDo: mark divided boxes to give the engine a chance to +// handle wrong divisions +*/ +int try_to_divide_boxes( pix *pp, int mo){ + struct box *box2, boxa, boxb; + int cs=JOB->cfg.cs, ad=100, + a2[8], ar, // certainty of each part, ar = product of all certainties + cbest; // best certainty, skip search of certaintycfg.verbose) + fprintf(stderr,"# try to divide unknown chars !(mode&16)"); + if(!(mo&16)) // put this to the caller + for_each_data(&(JOB->res.boxlist)) { + box2 = (struct box *)list_get_current(&(JOB->res.boxlist)); + // don't try to split simple structures (ex: 400x30 square) + if ((!box2->num_frames) + || box2->num_frame_vectors[ box2->num_frames-1 ]<9) continue; + if((box2->c==UNKNOWN || (box2->num_ac && box2->wac[0]cfg.certainty)) + && box2->x1-box2->x0>5 && box2->y1-box2->y0>4){ + x0=box2->x0; x1=box2->x1; + y0=box2->y0; y1=box2->y1; + ad=100; + cbest=0; + + /* get minimum vertical lines */ + n1 = num_cross(x0,x1,( y1+y0)/2,( y1+y0)/2,pp,cs); + ii = num_cross(x0,x1,(3*y1+y0)/4,(3*y1+y0)/4,pp,cs); if (iim2 && box2->m3 > box2->m2+2) + for (i=box2->m2+1;i<=box2->m3-1;i++) { + if (loop(pp,x0+1,i,x1-x0,cs,1,RI) > (x1-x0-2)) continue; // ll + ii = num_cross(x0,x1,i,i,pp,cs); if (iim3+box2->m4 /* baseline char ? */ + && num_cross(x0,x1,y1-1,y1-1,pp,cs)==1 // -1 for slopes + && num_cross((x0+2*x1)/3,(x0+3*x1)/4,y0,y1,pp,cs)<3 // not exclude tz + && num_cross((3*x0+x1)/4,(2*x0+x1)/3,y0,y1,pp,cs)<3 // not exclude zl + && loop(pp,x0,y1-(y1-y0)/32,x1-x0,cs,0,RI) + +loop(pp,x1,y1-(y1-y0)/32,x1-x0,cs,0,LE) > (x1-x0+1)/2 + ) continue; /* do not try on bvdo"o etc. */ + + // one vertical line can not be two glued chars, lc? + if ( num_cross(x0,x1,(y1+y0)/2,(y1+y0)/2,pp,cs)<=1 ) continue; + { // doublet = 2 letters + // char buf[4]="\0\0\0"; // 4th byte is string end == \0 + // buf[0]=c1; // c1 is wchar_t! (0xbf00 to 0) failes + // buf[1]=c2; + char buf[64]=""; // end == \0 + if (JOB->cfg.verbose&2){ + fprintf(stderr, "\n#\n# divide box: %4d %4d %3d %3d\n", + x0, y0, x1-x0+1, y1-y0+1); + if (JOB->cfg.verbose&4) out_x(box2); + } + // it would be better if testing is only if most right and left char + // is has no horizontal gap (below m2) ex: be + i=0; // num splittet chars + xi[0]=x0; xi[1]=x0+3; xi[2]=x1; + for ( ; ; xi[i+1]++) { // x[i] .. x[i+1], slower? but better v0.42 + /* break if x is to near to the right border */ + if (xi[i+1]>x1-3) { if (i==0) break; i--; xi[i+2]=x1; continue; } + // ToDo: skip if not a local dy-min for speedup + { int ymin=y1, ymax=y0, bow=0, // min max at cutting point + max0=y0, max1=y0, // max y on left and right side + min0=y1, min1=y1; // min y on left and right side + for (dy=0,ii=0;iinum_frame_vectors[ 0 ];ii++) { + int pre=ii-1, next=(ii+1)%box2->num_frame_vectors[ 0 ]; + if (pre<0) pre=box2->num_frame_vectors[ 0 ]-1; + // check if vector is inside box to cut + if ( box2->frame_vector[ii ][0]<=xi[i ]) continue; + if ( box2->frame_vector[ii ][0]> xi[i+2]) continue; + // 2nd derivation of y(x) + if (abs(box2->frame_vector[ii ][0]-xi[i+1])<2) { + dy= 2*box2->frame_vector[ii ][1] + -box2->frame_vector[next][1] + -box2->frame_vector[pre ][1]; + dx= box2->frame_vector[next][0] + -box2->frame_vector[pre ][0]; + // rotate 180 degree if dx<0 + if (((dx>0)?dy:-dy)<-abs(dx)/2) { bow=1; } + } + // its not the best if we think on glued fi fo etc. + if (( box2->frame_vector[pre ][0]<=xi[i+1] + && box2->frame_vector[next][0]>=xi[i+1]) + || ( box2->frame_vector[pre ][0]>=xi[i+1] + && box2->frame_vector[next][0]<=xi[i+1])) { + if ( box2->frame_vector[ii ][1]>ymax) + ymax= box2->frame_vector[ii ][1]; + if ( box2->frame_vector[ii ][1]frame_vector[ii ][1]; + } + // min and max of left and right side + if ( box2->frame_vector[ii ][1]>max0 + && box2->frame_vector[ii ][0]<=xi[i+1]) + max0=box2->frame_vector[ii ][1]; + if ( box2->frame_vector[ii ][1]>max1 + && box2->frame_vector[ii ][0]> xi[i+1]) + max1=box2->frame_vector[ii ][1]; + if ( box2->frame_vector[ii ][1]frame_vector[ii ][0]<=xi[i+1]) + min0=box2->frame_vector[ii ][1]; + if ( box2->frame_vector[ii ][1]frame_vector[ii ][0]> xi[i+1]) + min1=box2->frame_vector[ii ][1]; + } + if(JOB->cfg.verbose&2) + fprintf(stderr,"\n# test if to split at x%d= %2d %2d %2d" + " bow,(max-min)[i,0,1] %d %3d %3d %3d" + , i, xi[i]-x0, xi[i+1]-x0, xi[i+2]-x0, bow, ymax-ymin, max0-min0, max1-min1); + /* skip if no local minimum at xi[i+1] or if its not thin enough */ + if (bow==0 || 4*(ymax-ymin)>2*(y1-y0)) continue; + // cuttet parts should have about the same height (max-min) + // we dont want to cut an 'n' in three parts! + if (2*(max0-min0+1)<(y1-y0+1)) continue; // left height + if (2*(max1-min1+1)<(y1-y0+1)) continue; // right height + // ToDo: thickness on xi[i+1]? + } + // try to split successive right box if left box is recognised, + // else shift the splitting point further to the right border + // removing ->dots if dot only above one char !!! ??? not implemented + if(JOB->cfg.verbose&2) + fprintf(stderr,"\n# try to split, newbox[%d].x= %2d ... %2d " + "dy= %d ", i, xi[i]-x0, xi[i+1]-x0, dy); + boxa=*box2; // copy contents, ToDo: reset ac-list (in cut_box?) + boxa.x=xi[i]; boxa.y=y0; // obsolete? mark pixel, overlap? + boxa.x0=xi[i];boxa.x1=xi[i+1]; // new horizontal box range + cut_box(&boxa); boxa.num_ac=0; + // out_x(&boxa); + // get wchar + certainty + ci[i]=whatletter(&boxa,cs,0); a2[i]=testac(&boxa,ci[i]); + if(JOB->cfg.verbose&2) + fprintf(stderr,"\n# certainty %d limit= %d cbest= %d ", + a2[i], JOB->cfg.certainty, cbest); + if (a2[i]cfg.certainty || a2[i]cfg.certainty/100 || arcfg.verbose&2) + fprintf(stderr,"\n try end split [%d]=%d [%d]=%d ", + i, xi[i]-x0, i+1, xi[i+1]-x0); + boxb=*box2; // try rest if it has to be split again + boxb.x=xi[i]+1; boxb.y=y0; + boxb.x0=xi[i]+1;boxb.x1=xi[i+1]; + cut_box(&boxb); boxb.num_ac=0; + ci[i]=whatletter(&boxb,cs,0); a2[i]=testac(&boxb,ci[i]); + if (a2[i]cfg.certainty || a2[i]cfg.verbose&2) { + fprintf(stderr,"\n split at/to: "); + for (ii=0;ii<=i;ii++) + fprintf(stderr," %2d %s (%3d)", xi[ii+1]-x0, + decode(ci[ii],ASCII), a2[ii]); + fprintf(stderr,"\n"); + } + // boxa..c changed!!! dots should be modified!!! + // Question: cut it into boxes v0.40 or set a string v0.41? + // new way of building a string v0.41 (can call setas multiple) + // usefull if compare unknown with known strings (except barcode?) + // ToDo: also create alternate variants? ex: I <-> l + for (buf[0]=0,ar=ad,ii=0;ii<=i;ii++) { + ar=a2[ii]*ar/100; // multiply all probabilities + if (i>0 && ci[ii]=='n' && ci[ii-1]=='r') ar--; // m == rn + strncat(buf,decode(ci[ii],JOB->cfg.out_format),20); + } + + if (ar>cbest) cbest=ar; // best (highest) certainty found + // reduce, but not if we cross certainty border + if (99*ar/100 > JOB->cfg.certainty) ar=99*ar/100; + if (JOB->cfg.verbose&2) + fprintf(stderr,"\n split result= %s (%3d) ",buf, ar); + setas(box2,buf,ar); // char *, does it disturb further splitting? + buf[0]=0; + i--; xi[i+2]=x1; + } + } + } + } end_for_each(&(JOB->res.boxlist)); + if (JOB->cfg.verbose) fprintf(stderr,", numC %d\n",JOB->res.numC); + return 0; +} + +/* +// ---- divide vertical glued boxes (ex: g above T); +*/ +int divide_vert_glued_boxes( pix *pp, int mo){ + struct box *box2,*box3,*box4; + int y0,y1,y,dy,flag_found,dx; + if(JOB->cfg.verbose)fprintf(stderr,"# divide vertical glued boxes"); + for_each_data(&(JOB->res.boxlist)) { + box2 = (struct box *)list_get_current(&(JOB->res.boxlist)); + if (box2->c != UNKNOWN) continue; /* dont try on pictures */ + y0=box2->y0; y1=box2->y1; dy=y1-y0+1; + dx=4*(JOB->res.avX+box2->x1-box2->x0+1); // we want to be sure to look at 4ex distance + if ( dy>2*JOB->res.avY && dy<6*JOB->res.avY && box2->m1 + && y0<=box2->m2+2 && y0>=box2->m1-2 + && y1>=box2->m4+JOB->res.avY-2) + { // test if lower end fits one of the other lines? + box4=box2; flag_found=0; + for_each_data(&(JOB->res.boxlist)) { + box4 = (struct box *)list_get_current(&(JOB->res.boxlist)); + if (box4->c != UNKNOWN) continue; /* dont try on pictures */ + if (box4->x1x0-dx || box4->x0>box2->x1+dx) continue; // ignore far boxes + if (box4->line==box2->line ) flag_found|=1; // near char on same line + if (box4->line==box2->line+1) flag_found|=2; // near char on next line + if (flag_found==3) break; // we have two vertical glued chars + } end_for_each(&(JOB->res.boxlist)); + if (flag_found!=3) continue; // do not divide big chars or special symbols + y=box2->m4; // lower end of the next line + if(JOB->cfg.verbose&2){ + fprintf(stderr,"\n# divide box below y=%4d",y-y0); + if(JOB->cfg.verbose&6)out_x(box2); + } + // --- insert box3 before box2 + box3= (struct box *) malloc_box(box2); + box3->y1=y; + box2->y0=y+1; box2->line++; // m1..m4 should be corrected! + if (box4->line == box2->line){ + box2->m1=box4->m1; box2->m2=box4->m2; + box2->m3=box4->m3; box2->m4=box4->m4; + } + box3->num=JOB->res.numC; + if (list_ins(&(JOB->res.boxlist), box2, box3)) { + fprintf(stderr,"ERROR list_ins\n"); }; + JOB->res.numC++; + } + } end_for_each(&(JOB->res.boxlist)); + if(JOB->cfg.verbose)fprintf(stderr,", numC %d\n",JOB->res.numC); + return 0; +} + + +/* + on some systems isupper(>255) cause a segmentation fault SIGSEGV + therefore this function + ToDo: should be replaced (?) by wctype if available on every system + */ +int wisupper(wchar_t cc){ return ((cc<128)?isupper(cc):0); } +int wislower(wchar_t cc){ return ((cc<128)?islower(cc):0); } +int wisalpha(wchar_t cc){ return ((cc<128)?isalpha(cc):0); } +int wisdigit(wchar_t cc){ return ((cc<128)?isdigit(cc):0); } +int wisspace(wchar_t cc){ return ((cc<128)?isspace(cc):0); } + +/* set box2->c to cc if cc is in the ac-list of box2, return 1 on success */ +int setc(struct box *box2, wchar_t cc){ + int ret=0, w1, w2; + w1=((box2->num_ac) ? box2->wac[0] : 0); // weight of replaced char + w2=testac(box2,cc); + if (JOB->cfg.verbose) + fprintf(stderr, "\n# change %s (%d) to %s (%d to %d) at (%d,%d)", + decode(box2->c,ASCII), w1, decode(cc,ASCII), w2, (100+w2+1)/2, + box2->x0, box2->y0); + if (w2) { if (box2->c!=cc) { ret=1; setac(box2,cc,(100+w2+1)/2); } } + // if(JOB->cfg.verbose & 4) out_x(box2); + // ToDo: modify per setac (shift ac) + return ret; +} + + +/* ---- proof difficult chars Il1 by context view ---- + context: separator, number, vowel, nonvowel, upper case ???? + could be also used to find unknown chars if the environment (nonumbers) + can be found in other places! + ToDo: + - box->tac[] as set of possible chars, ac set by engine, example: + ac="l/" (not "Il|/\" because serifs detected and slant>0) + correction only to one of the ac-set (alternative chars)! + - should be language-settable; Unicode compatible + - box2->ad and wac should be changed? (not proper yet) + * ------------- */ +int context_correction( job_t *job ) { + // const static char + char *l_vowel="aeiouy"; + // *l_Vowel="AEIOU",chars if the environment (nonumbers) + char *l_nonvo = "bcdfghjklmnpqrstvwxz"; + struct box *box4, *box3, *box2, *prev, *next; + // pix *pp = &(job->src.p); + int nc=0, ns=0; // num corrections + + if (job->cfg.verbose) + fprintf(stderr, "# context correction Il1 0O"); + + for_each_data(&(job->res.boxlist)) { + box2 = (struct box *)list_get_current(&(job->res.boxlist)); + if (box2->c > 0xFF) continue; // temporary UNICODE fix + prev = (struct box *)list_get_cur_prev(&(job->res.boxlist)); + next = (struct box *)list_get_cur_next(&(job->res.boxlist)); + if( (prev) && (prev->c > 0xFF)) continue; // temporary UNICODE fix 2 + if( (next) && (next->c > 0xFF)) continue; // temporary UNICODE fix 3 + if (box2->num_ac<2) continue; // no alternatives + if (box2->wac[0]==100 && box2->wac[1]<100) continue; + if (box2->num_ac && box2->tas[0]) continue; // buggy space_remove 0.42 + + /* check for Il1| which are general difficult to distinguish */ + /* bbg: not very good. Should add some tests to check if is preceded by '.', + spelling, etc */ + /* ToDo: only correct if not 100% sure (wac[i]<100) + and new char is in wat[] */ + if (strchr("Il1|", box2->c) && next && prev) { +// if( strchr(" \n",prev->c) // SPC +// && strchr(" \n",next->c) ) box2->c='I'; else // bad idea! I have ... + if (wisalpha(next->c) && next->c!='i' && + ( prev->c == '\n' || + ( prev->c == ' ' && + ( box4=(struct box *)list_prev(&(job->res.boxlist), prev)) && + box4->c == '.' ) ) ) { nc+=setc(box2,(wchar_t)'I'); } + else if (box2->c!='1' && strchr(l_nonvo,next->c) && + strchr("\" \n",prev->c)) /* lnt => Int, but 1st */ + /* do not change he'll to he'Il! */ + { nc+=setc(box2,(wchar_t)'I'); } // set box2->c to 'I' if 'I' is in the ac-list + else if (strchr(l_vowel,next->c)) /* unusual? Ii Ie Ia Iy Iu */ + /* && strchr("KkBbFfgGpP",prev->c)) */ /* kle Kla Kli */ + { nc+=setc(box2,(wchar_t)'l'); } + else if (wisupper(next->c) + && !strchr("O0I123456789",next->c) + && !strchr("O0I123456789",prev->c)) /* avoid lO => IO (10) */ + { nc+=setc(box2,(wchar_t)'I'); } + else if (wislower(prev->c)) + { nc+=setc(box2,(wchar_t)'l'); } + else if (wisdigit(prev->c) || wisdigit(next->c) + || (next->c=='O' && !wisalpha(prev->c))) /* lO => 10 */ + { nc+=setc(box2,(wchar_t)'1'); } + } + + /* check for O0 */ + else if (strchr("O0", box2->c) && next && prev) { + if (wisspace(prev->c) && wisalpha(next->c)) /* initial letter */ + { nc+=setc(box2,(wchar_t)'O'); } + else if (wisalpha(prev->c) && wisalpha(next->c) + && wisupper(next->c)) /* word in upper case */ + { nc+=setc(box2,(wchar_t)'O'); } + else if (wisdigit(prev->c) || wisdigit(next->c)) + { nc+=setc(box2,(wchar_t)'0'); } + } + + /* check for 5S */ + else if (strchr("5S", box2->c) && next && prev) { + if (wisspace(prev->c) && wisalpha(next->c)) /* initial letter */ + { nc+=setc(box2,(wchar_t)'S'); } + else if (wisalpha(prev->c) && wisalpha(next->c) + && wisupper(next->c)) /* word in upper case */ + { nc+=setc(box2,(wchar_t)'S'); } + else if (wisdigit(prev->c) || wisdigit(next->c)) + { nc+=setc(box2,(wchar_t)'5'); } + } + + /* was a space not found? xXx => x Xx ??? */ + if (wisupper(box2->c) && next && prev) { + if (wislower(prev->c) && wislower(next->c) + && 2 * (box2->x0 - prev->x1) > 3 * (next->x0 - box2->x1)) { + struct box *box3 = malloc_box((struct box *) NULL); + box3->x0 = prev->x1 + 2; + box3->x1 = box2->x0 - 2; + box3->y0 = box2->y0; + box3->y1 = box2->y1; + box3->x = box2->x0 - 1; + box3->y = box2->y0; + box3->dots = 0; + box3->num_boxes = 0; + box3->num_subboxes = 0; + box3->c = ' '; + box3->modifier = 0; + setac(box3,' ',99); /* ToDo: weight depends from distance */ + box3->num = -1; + box3->line = prev->line; + box3->m1 = box3->m2 = box3->m3 = box3->m4 = 0; + box3->p = &(job->src.p); + list_ins(&(job->res.boxlist), box2, box3); + } + } + + /* a space before punctuation? but not " ./file" */ + if ( prev && next) + if (prev->c == ' ' && strchr(" \n" , next->c) + && strchr(".,;:!?)", box2->c)) + if (prev->x1 - prev->x0 < 2 * job->res.avX) { // carefully on tables + box3 = prev; + if ( !list_del(&(job->res.boxlist), box3) ) free_box(box3); + prev = (struct box *)list_get_cur_prev(&(job->res.boxlist)); + ns++; + } + + /* \'\' to \" */ + if ( prev ) + if ( (prev->c == '`' || prev->c == '\'') + && (box2->c == '`' || box2->c == '\'') ) + if (prev->x1 - box2->x0 < job->res.avX) { // carefully on tables + box2->c='\"'; + box3 = prev; + list_del(&(job->res.boxlist), box3); + free_box(box3); + } + } end_for_each(&(job->res.boxlist)); + if (job->cfg.verbose) + fprintf(stderr, " num_corrected= %d removed_spaces= %d\n", nc, ns); + return 0; +} + + +/* ---- insert spaces ---- + * depends strongly from the outcome of measure_pitch() + * ------------------------ */ +int list_insert_spaces( pix *pp, job_t *job ) { + int i=0, j1, j2, i1, maxline=-1, dy=0; char cc; + struct box *box2, *box3=NULL, *box4=NULL; + + // measure mean line height + for(i1=1;i1res.lines.num;i1++) { + dy+=job->res.lines.m4[i1]-job->res.lines.m1[i1]+1; + } if (job->res.lines.num>1) dy/=(job->res.lines.num-1); + i=0; j2=0; + for(i1=1;i1res.lines.num;i1++) { + j1=job->res.lines.m4[i1]-job->res.lines.m1[i1]+1; + if (j1>dy*120/100 || j10 && j2/i>7) dy=j2/i; + if( job->cfg.verbose&1 ) + fprintf(stderr,"# insert space between words (dy=%d) ...",dy); + if (!dy) dy=(job->res.avY)*110/100+1; + + i=0; + for_each_data(&(job->res.boxlist)) { + box2 =(struct box *)list_get_current(&(job->res.boxlist)); + cc=0; + if (box2->line>maxline) { // lines and chars must be sorted! + if (maxline>=0) cc='\n'; // NL + maxline=box2->line; + } + if((box3 = (struct box *)list_prev(&(job->res.boxlist), box2))){ + if (maxline && !box2->line && cc==0) cc=' '; + if (box2->line<=maxline && cc==0) { // lines and chars must be sorted! + int thispitch = job->res.lines.pitch[box2->line]; + int thismono = job->res.lines.mono[box2->line]; + int mdist = (box2->x1 + box2->x0 - (box3->x1 + box3->x0) + 1)/2; + int pdist = box2->x0 - box3->x1 + 1; + if (box2->x1 - box2->x0 < thispitch) pdist=pdist*4/3; + /* allow extra pixels around small characters .,'!: etc */ + // fprintf(stderr,"#\n ... mono= %2d pitch= %2d mdist= %2d pdist= %2d", + // thismono, thispitch, mdist, pdist); + if ((thismono!=0 && mdist >= thispitch) + || (thismono==0 && pdist >= thispitch)) + cc=' '; // insert SPACE + } + } + if(cc){ + box4=(struct box *)list_prev(&(job->res.boxlist), box2); + box3=(struct box *)malloc_box(NULL); + box3->x0=box2->x0-2; box3->x1=box2->x0-2; + box3->y0=box2->y0; box3->y1=box2->y1; + if(cc!='\n' && box4) + box3->x0=box4->x1+2; + if(cc=='\n' || !box4) + box3->x0=job->res.lines.x0[box2->line]; + if(cc=='\n' && box4){ + box3->y0=box4->y1; // better use lines.y1[box2->pre] ??? + box3->y1=box2->y0; + } + box3->x =box2->x0-1; box3->y=box2->y0; + box3->dots=0; box3->c=cc; + box3->num_boxes = 0; + box3->num_subboxes = 0; + box3->modifier='\0'; + box3->num=-1; box3->line=box2->line; + box3->m1=box2->m1; box3->m2=box2->m2; + box3->m3=box2->m3; box3->m4=box2->m4; + box3->p=pp; + setac(box3,cc,100); /* ToDo: weight depends from distance */ + list_ins(&(job->res.boxlist),box2,box3); + if( job->cfg.verbose&1 ) { + fprintf(stderr,"\n# insert space &%d; at x= %4d %4d box= %p", + (int)cc, box3->x0, box3->y0, (void*)box3); + /* out_x(box3); */ + } + i++; + } + } end_for_each(&(job->res.boxlist)); + if( job->cfg.verbose&1 ) fprintf(stderr," found %d\n",i); + return 0; +} + + +/* + add infos where the box is positioned to the box + this is useful for better recognition +*/ +int add_line_info(/* List *boxlist2 */){ + // pix *pp=&JOB->src.p; + struct tlines *lines = &JOB->res.lines; + struct box *box2; + int i,xx,m1,m2,m3,m4,num_line_members=0,num_rest=0; + if( JOB->cfg.verbose&1 ) fprintf(stderr,"# add line infos to boxes ..."); + for_each_data(&(JOB->res.boxlist)) { + box2 =(struct box *)list_get_current(&(JOB->res.boxlist)); + for(i=1;ires.lines.num;i++) /* line 0 is a place holder */ + { + if (lines->dx) xx=lines->dy*((box2->x1+box2->x0)/2)/lines->dx; else xx=0; + m1=lines->m1[i]+xx; + m2=lines->m2[i]+xx; + m3=lines->m3[i]+xx; + m4=lines->m4[i]+xx; + // fprintf(stderr," test line %d m1=%d %d %d %d\n",i,m1,m2,m3,m4); + if (m4-m1==0) continue; /* no text line (line==0) */ +#if 0 + if( box2->y1+2*JOB->res.avY >= m1 + && box2->y0-2*JOB->res.avY <= m4 ) /* not to far away */ +#endif + /* give also a comma behind the line a chance */ + if( box2->x0 >= lines->x0[i] && box2->x1 <= lines->x1[i]+JOB->res.avX ) + if( box2->m2==0 || abs(box2->y0-box2->m2) > abs(box2->y0-m2) ) + { /* found nearest line */ + box2->m1=m1; + box2->m2=m2; + box2->m3=m3; + box2->m4=m4; + box2->line=i; + } + } + if( box2->y1+2 < box2->m1 + || box2->y0 < box2->m1 - (box2->m3-box2->m1)/2 + || box2->y0-2 > box2->m4 + || box2->y1 > box2->m3 + (box2->m3-box2->m1) + ) /* to far away */ + { /* reset */ + box2->m1=0; + box2->m2=0; + box2->m3=0; + box2->m4=0; + box2->line=0; + num_rest++; + } else num_line_members++; + } end_for_each(&(JOB->res.boxlist)); + if( JOB->cfg.verbose&1 ) + fprintf(stderr," done, num_line_chars=%d rest=%d\n", + num_line_members, num_rest); + return 0; +} + + +/* + * bring the boxes in right order + * add_line_info must be executed first! + */ +int sort_box_func (const void *a, const void *b) { + struct box *boxa, *boxb; + + boxa = (struct box *)a; + boxb = (struct box *)b; + + if ( ( boxb->line < boxa->line ) || + ( boxb->line == boxa->line && boxb->x0 < boxa->x0 ) ) + return 1; + return -1; +} + +// ------------------------------------------------------------- +// ------ use this for entry from other programs +// include pnm.h pgm2asc.h +// ------------------------------------------------------------- +// entry point for gocr.c or if it is used as lib +// better name is call_ocr ??? +// jb: OLD COMMENT: not removed due to set_options_* () +// args after pix *pp should be removed and new functions +// set_option_mode(int mode), set_option_spacewidth() .... etc. +// should be used instead, before calling pgm2asc(pix *pp) +// ! change if you can ! - used by X11 frontend +int pgm2asc(job_t *job) +{ + pix *pp; + progress_counter_t *pc; + + assert(job); + /* FIXME jb: remove pp */ + pp = &(job->src.p); + + if( job->cfg.verbose ) + fprintf(stderr, "# db_path= %s\n", job->cfg.db_path); + + pc = open_progress(100,"pgm2asc_main"); + progress(0,pc); /* start progress output 0% 0% */ + + /* ----- count colors ------ create histogram ------- + - this should be used to create a upper and lower limit for cs + - cs is the optimum gray value between cs_min and cs_max + - also inverse scans could be detected here later */ + if (job->cfg.cs==0) + job->cfg.cs=otsu( pp->p,pp->y,pp->x,0,0,pp->x,pp->y, job->cfg.verbose & 1 ); + /* renormalize the image and set the normalized threshold value */ + job->cfg.cs=thresholding( pp->p,pp->y,pp->x,0,0,pp->x,pp->y, job->cfg.cs ); + if( job->cfg.verbose ) + fprintf(stderr, "# thresholding new_threshold= %d\n", job->cfg.cs); + + progress(5,pc); /* progress is only estimated */ + +#if 0 /* dont vast memory */ + /* FIXME jb: malloc */ + if ( job->cfg.verbose & 32 ) { + // generate 2nd imagebuffer for debugging output + job->tmp.ppo.p = (unsigned char *)malloc(job->src.p.y * job->src.p.x); + // buffer + assert(job->tmp.ppo.p); + copybox(&job->src.p, + 0, 0, job->src.p.x, job->src.p.y, + &job->tmp.ppo, + job->src.p.x * job->src.p.y); + } +#else + job->tmp.ppo=job->src.p; /* temporarely, removed later */ +#endif + + /* load character data base */ + if ( job->cfg.mode&2 ) + load_db(); + + /* this is first step for reorganize the PG + ---- look for letters, put rectangular frames around letters + letter = connected points near color F + should be used by dust removing (faster) and line detection! + ---- 0..cs = black letters, last change = Mai99 */ + + progress(8,pc); /* progress is only estimated */ + + scan_boxes( pp ); + if ( !job->res.numC ){ + fprintf( stderr,"# no boxes found - stopped\n" ); + if(job->cfg.verbose&32) debug_img("out01",job,8); + /***** should free stuff, etc) */ + return(1); + } + // if (job->cfg.verbose&32) debug_img("out00",job,4+8); + + progress(10,pc); /* progress is only estimated */ + // if(job->cfg.verbose&32) debug_img("out01",job,4+8); + // output_list(job); // for debugging + // ToDo: matrix printer preprocessing + + remove_dust( job ); /* from the &(job->res.boxlist)! */ +// if(job->cfg.verbose&32) debug_img("out02",job,4+8); +// output_list(job); // for debugging + smooth_borders( job ); /* only for big chars */ + progress(12,pc); /* progress is only estimated */ +// if(job->cfg.verbose&32) debug_img("out03",job,4+8); +// output_list(job); // for debugging + + detect_barcode( job ); /* mark barcode */ +// if(job->cfg.verbose&32) debug_img("out04",job,4+8); +// output_list(job); // for debugging + + detect_pictures( job ); /* mark pictures */ +// if(job->cfg.verbose&32) debug_img("out05",job,4+8); +// output_list(job); // for debugging + + remove_pictures( job ); /* do this as early as possible, before layout */ +// if(job->cfg.verbose&32) debug_img("out06",job,4+8); +// output_list(job); // for debugging + + glue_holes_inside_chars( pp ); /* including count subboxes (holes) */ + + detect_rotation_angle( job ); + +#if 1 /* Rotate the whole picture! move boxes */ + if( job->res.lines.dy!=0 ){ // move down lowest first, move up highest first + // in work! ??? (at end set dy=0) think on ppo! + } +#endif + detect_text_lines( pp, job->cfg.mode ); /* detect and mark JOB->tmp.ppo */ +// if(job->cfg.verbose&32) debug_img("out07",job,4+8); + progress(20,pc); /* progress is only estimated */ + + add_line_info(/* &(job->res.boxlist) */); + if (job->cfg.verbose&32) debug_img("out10",job,4+8); + + divide_vert_glued_boxes( pp, job->cfg.mode); /* after add_line_info, before list_sort! */ +// if(job->cfg.verbose&32) debug_img("out11",job,0); + + remove_melted_serifs( pp ); /* make some corrections on pixmap */ + /* list_ins seems to sort in the boxes on the wrong place ??? */ +// if(job->cfg.verbose&32) debug_img("out12",job,4+8); + + glue_broken_chars( pp ); /* 2nd glue */ +// if(job->cfg.verbose&32) debug_img("out14",job,4+8); + + remove_rest_of_dust( ); +// if(job->cfg.verbose&32) debug_img("out15",job,4+8); + + /* better sort after dust is removed (slow for lot of pixels) */ + list_sort(&(job->res.boxlist), sort_box_func); + + measure_pitch( job ); + + if(job->cfg.mode&64) find_same_chars( pp ); + progress(30,pc); /* progress is only estimated */ +// if(job->cfg.verbose&32) debug_img("out16",job,4+8); + + char_recognition( pp, job->cfg.mode); + progress(60,pc); /* progress is only estimated */ +// if(job->cfg.verbose&32) debug_img("out17",job,4+8); + + if ( adjust_text_lines( pp, job->cfg.mode ) ) { /* correct using chars */ + /* may be, characters/pictures have changed line number */ + list_sort(&(job->res.boxlist), sort_box_func); + // 2nd recognition call if lines are adjusted + char_recognition( pp, job->cfg.mode); + } + +#define BlownUpDrawing 1 /* german: Explosionszeichnung, temporarly */ +#if BlownUpDrawing == 1 /* german: Explosionszeichnung */ +{ /* just for debugging */ + int i,ii,ni; struct box *box2; + i=ii=ni=0; + for_each_data(&(JOB->res.boxlist)) { /* count boxes */ + box2 = (struct box *)list_get_current(&(JOB->res.boxlist)); + if (box2->c==UNKNOWN) i++; + if (box2->c==PICTURE) ii++; + ni++; + } end_for_each(&(JOB->res.boxlist)); + if (JOB->cfg.verbose) + fprintf(stderr,"# debug: unknown= %d picts= %d boxes= %d\n",i,ii,ni); +} +#endif + // ----------- write out20.pgm ----------- mark lines + boxes + if (job->cfg.verbose&32) debug_img("out20",job,1+4+8); + + compare_unknown_with_known_chars( pp, job->cfg.mode); + progress(70,pc); /* progress is only estimated */ + + try_to_divide_boxes( pp, job->cfg.mode); + progress(80,pc); /* progress is only estimated */ + + /* --- list output ---- for debugging --- */ + if (job->cfg.verbose&6) output_list(job); + + /* ---- insert spaces ---- */ + list_insert_spaces( pp , job ); + + // ---- proof difficult chars Il1 by context view ---- + if (JOB->cfg.verbose) + fprintf(stderr,"# context correction if !(mode&32)\n"); + if (!(job->cfg.mode&32)) context_correction( job ); + + store_boxtree_lines( job->cfg.mode ); + progress(90,pc); /* progress is only estimated */ + +/* 0050002.pgm.gz ca. 109 digits, only 50 recognized (only in lines?) + * ./gocr -v 39 -m 56 -e - -m 4 -C 0-9 -f XML tmp0406/0050002.pbm.gz + * awk 'BEGIN{num=0}/1<\/box>/{num++;}END{print num}' o + * 15*0 24*1 18*2 19*3 15*4 6*5 6*6 6*7 4*8 8*9 sum=125digits counted boxes + * 9*0 19*1 14*2 15*3 11*4 6*5 5*6 6*7 4*8 8*9 sum=97digits recognized + * 1*1 1*7 not recognized (Oct04) + * 33*SPC 76*NL = 109 spaces + 36*unknown sum=241 * 16 missed + */ +#if BlownUpDrawing == 1 /* german: Explosionszeichnung */ +{ /* just for debugging */ + int i,ii,ni; struct box *box2; const char *testc="0123456789ABCDEFGHIJK"; + i=ii=ni=0; + for_each_data(&(JOB->res.boxlist)) { /* count boxes */ + box2 = (struct box *)list_get_current(&(JOB->res.boxlist)); + if (box2->c==UNKNOWN) i++; + if (box2->c==PICTURE) ii++; + if (box2->c>' ' && box2->c<='z') ni++; + } end_for_each(&(JOB->res.boxlist)); + if(JOB->cfg.verbose) + fprintf(stderr,"# debug: (_)= %d picts= %d chars= %d",i,ii,ni); + for (i=0;i<20;i++) { + ni=0; + for_each_data(&(JOB->res.boxlist)) { /* count boxes */ + box2 = (struct box *)list_get_current(&(JOB->res.boxlist)); + if (box2->c==testc[i]) ni++; + } end_for_each(&(JOB->res.boxlist)); + if(JOB->cfg.verbose && ni>0) + fprintf(stderr," (%c)=%d",testc[i],ni); + } + if(JOB->cfg.verbose) + fprintf(stderr,"\n"); +} +#endif + + // ---- frame-size-histogram + // ---- (my own defined) distance between letters + // ---- write internal picture of textsite + // ----------- write out30.pgm ----------- + if( job->cfg.verbose&32 ) debug_img("out30",job,2+4); + + progress(100,pc); /* progress is only estimated */ + + close_progress(pc); + + return 0; /* what should I return? error-state? num-of-chars? */ +} diff --git a/3rdparty/gocr-0.48/src/pgm2asc.h b/3rdparty/gocr-0.48/src/pgm2asc.h new file mode 100644 index 0000000..3a31884 --- /dev/null +++ b/3rdparty/gocr-0.48/src/pgm2asc.h @@ -0,0 +1,105 @@ +/* +This is a Optical-Character-Recognition program +Copyright (C) 2000-2006 Joerg Schulenburg + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + see README for EMAIL-address + +*/ + +#ifndef PGM2ASC_H +#define PGM2ASC_H 1 + +#include "pnm.h" +#include "output.h" +#include "list.h" +#include "unicode.h" + +#define pixel_at(pic, xx, yy) (pic).p[(xx)+((yy)*((pic).x))] +#define pixel_atp(pic, xx, yy) (pic)->p[(xx)+((yy)*((pic)->x))] + +#ifndef HAVE_WCHAR_H +wchar_t *wcschr (const wchar_t *wcs, wchar_t wc); +wchar_t *wcscpy (wchar_t *dest, const wchar_t *src); +size_t wcslen (const wchar_t *s); +#endif +#ifndef HAVE_WCSDUP +wchar_t * wcsdup (const wchar_t *WS); /* its a gnu extension */ +#endif + +/* declared in pgm2asc.c */ +/* set alternate chars and its weight, called from the engine + if a char is recognized to (weight) percent */ +int setas(struct box *b, char *as, int weight); /* string + xml */ +int setac(struct box *b, wchar_t ac, int weight); /* wchar */ + +/* for qsort() call */ +int intcompare (const void *vr, const void *vs); + +/* declared in box.c */ +int box_gt(struct box *box1, struct box *box2); +int reset_box_ac(struct box *box); /* reset and free char table */ +struct box *malloc_box( struct box *inibox ); /* alloc memory for a box */ +int free_box( struct box *box ); /* free memory of a box */ +int copybox( pix *p, int x0, int y0, int dx, int dy, pix *b, int len); +int reduce_vectors ( struct box *box1, int mode ); +int merge_boxes( struct box *box1, struct box *box2 ); +int cut_box( struct box *box1); + + +/* declared in database.c */ +int load_db(void); +wchar_t ocr_db(struct box *box1); + +/* declared in detect.c */ +int detect_lines1(pix * p, int x0, int y0, int dx, int dy); +int detect_lines2(pix *p,int x0,int y0,int dx,int dy,int r); +int detect_rotation_angle(job_t *job); +int detect_text_lines(pix * pp, int mo); +int adjust_text_lines(pix * pp, int mo); +int detect_pictures(job_t *job); + +/* declared in lines.c */ +void store_boxtree_lines( int mo ); + /* free memory for internal stored textlines. + * Needs to be called _after_ having retrieved the text. + * After freeing, no call to getTextLine is possible any + * more + */ +void free_textlines( void ); + + /* get result of ocr for a given line number. + * If the line is out of range, the function returns 0, + * otherwise a pointer to a complete line. + */ +const char *getTextLine( int ); + +/* declared in remove.c */ +int remove_dust( job_t *job ); +int remove_pictures( job_t *job); +int remove_melted_serifs( pix *pp ); +int remove_rest_of_dust(); +int smooth_borders( job_t *job ); + +/* declared in pixel.c */ +int marked(pix * p, int x, int y); +int pixel(pix *p, int x, int y); +void put(pix * p, int x, int y, int ia, int io); + +/* start ocr on a image in job.src.p */ +int pgm2asc(job_t *job); + +#endif diff --git a/3rdparty/gocr-0.48/src/pixel.c b/3rdparty/gocr-0.48/src/pixel.c new file mode 100644 index 0000000..41647f3 --- /dev/null +++ b/3rdparty/gocr-0.48/src/pixel.c @@ -0,0 +1,537 @@ +/* +This is a Optical-Character-Recognition program +Copyright (C) 2000-2006 Joerg Schulenburg + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + Joerg.Schulenburg@physik.uni-magdeburg.de */ + +/* Filter by tree, filter by number methods added by + * William Webber, william@williamwebber.com. */ + +#include "pgm2asc.h" +#include +#include + +/* + * Defining this causes assert() calls to be turned off runtime. + * + * This is normally taken care of by make. + */ +/* #define NDEBUG */ + +// ------------------ (&~7)-pixmap-functions ------------------------ + +/* test if pixel marked? + * Returns: 0 if not marked, least 3 bits if marked. + */ +int marked (pix * p, int x, int y) { + if (x < 0 || y < 0 || x >= p->x || y >= p->y) + return 0; + return (pixel_atp(p, x, y) & 7); +} + +#define Nfilt3 6 /* number of 3x3 filter */ +/* + * Filters to correct possible scanning or image errors. + * + * Each of these filters represents a 3x3 pixel area. + * 0 represents a white or background pixel, 1 a black or + * foreground pixel, and 2 represents a pixel of either value. + * Note that this differs from the meaning of pixel values in + * the image, where a high value means "white" (background), + * and a low value means "black" (foreground). + * + * These filters are applied to the 3x3 environment of a pixel + * to be retrieved from the image, centered around that pixel + * (that is, the to-be-retrieved pixel corresponds with the + * the fifth position of the filter). + * If the filter matches that pixel environment, then + * the returned value of the pixel is inverted (black->white + * or white->black). + * + * So, for instance, the second filter below matches this + * pattern: + * + * 000 + * X0X + * 000 + * + * and "fills in" the middle (retrieved) pixel to rejoin a line + * that may have been broken by a scanning or image error. + */ +const char filt3[Nfilt3][9]={ + {0,0,0, 0,0,1, 1,0,0}, /* (-1,-1) (0,-1) (1,-1) (-1,0) (0,0) ... */ + {0,0,0, 1,0,1, 0,0,0}, + {1,0,0, 0,0,1, 0,0,0}, + {1,1,0, 0,1,0, 2,1,1}, + {0,0,1, 0,0,0, 2,1,0}, + {0,1,0, 0,0,0, 1,2,0} +}; +/* 2=ignore_pixel, 0=white_background, 1=black_pixel */ + + +/* + * Filter by matrix uses the above matrix of filters directly. Pixel + * environments to be filtered are compared pixel by pixel against + * these filters. + * + * Filter by number converts these filters into integer representations + * and stores them in a table. Pixel environments are similarly + * converted to integers, and looked up in the table. + * + * Filter by tree converts these filters into a binary tree. Pixel + * environments are matched by traversing the tree. + * + * A typical performance ratio for these three methods is 20:9:7 + * respectively (i.e., the tree method takes around 35% of the + * time of the matrix method). + */ +#define FILTER_BY_MATRIX 0 +#define FILTER_BY_NUMBER 1 +#define FILTER_BY_TREE 2 + +#define FILTER_METHOD FILTER_BY_TREE + +/* + * Defining FILTER_CHECKED causes filter results from either the tree + * or the number method to be checked against results of the other + * two methods to ensure correctness. This is for bug checking purposes + * only. + */ +/* #define FILTER_CHECKED */ + +/* + * Defining FILTER_STATISTICS causes statistics to be kept on how many + * times the filters are tried, how many times a filter matches, and + * of these matches how many flip a black pixel to white, and how many + * the reverse. These statistics are printed to stderr at the end of + * the program run. Currently, statistics are only kept if the tree + * filter method is being used. + */ +/* #define FILTER_STATISTICS */ + +#ifdef FILTER_STATISTICS +static int filter_tries = 0; +static int filter_matches = 0; +static int filter_blackened = 0; +static int filter_whitened = 0; +#endif + +#ifdef FILTER_STATISTICS +void print_filter_stats() { + fprintf(stderr, "\n# Error filter statistics: tries %d, matches %d, " + "blackened %d, whitened %d\n", + filter_tries, filter_matches, filter_blackened, filter_whitened); +} +#endif + +#if FILTER_METHOD == FILTER_BY_MATRIX || defined(FILTER_CHECKED) +/* + * Filter the pixel at (x,y) by directly applying the matrix. + */ +int pixel_filter_by_matrix(pix * p, int x, int y) { + int i; + static char c33[9]; + memset(c33, 0, sizeof(c33)); + /* copy environment of a point (only highest bit) +bbg: FASTER now. It has 4 ifs less at least, 8 at most. */ + if (x > 0) { c33[3] = pixel_atp(p,x-1, y )>>7; + if (y > 0) c33[0] = pixel_atp(p,x-1,y-1)>>7; + if (y+1 < p->y) c33[6] = pixel_atp(p,x-1,y+1)>>7; + } + if (x+1 < p->x) { c33[5] = pixel_atp(p,x+1, y )>>7; + if (y > 0) c33[2] = pixel_atp(p,x+1,y-1)>>7; + if (y+1 < p->y) c33[8] = pixel_atp(p,x+1,y+1)>>7; + } + if (y > 0) c33[1] = pixel_atp(p, x ,y-1)>>7; + c33[4] = pixel_atp(p, x , y )>>7; + if (y+1 < p->y) c33[7] = pixel_atp(p, x ,y+1)>>7; + + /* do filtering */ + for (i = 0; i < Nfilt3; i++) + if( ( (filt3[i][0]>>1) || c33[0]!=(1 & filt3[i][0]) ) + && ( (filt3[i][1]>>1) || c33[1]!=(1 & filt3[i][1]) ) + && ( (filt3[i][2]>>1) || c33[2]!=(1 & filt3[i][2]) ) + && ( (filt3[i][3]>>1) || c33[3]!=(1 & filt3[i][3]) ) + && ( (filt3[i][4]>>1) || c33[4]!=(1 & filt3[i][4]) ) + && ( (filt3[i][5]>>1) || c33[5]!=(1 & filt3[i][5]) ) + && ( (filt3[i][6]>>1) || c33[6]!=(1 & filt3[i][6]) ) + && ( (filt3[i][7]>>1) || c33[7]!=(1 & filt3[i][7]) ) + && ( (filt3[i][8]>>1) || c33[8]!=(1 & filt3[i][8]) ) ) { + return ((filt3[i][4])?JOB->cfg.cs:0); + } + return pixel_atp(p, x, y) & ~7; +} +#endif + +#if FILTER_METHOD == FILTER_BY_NUMBER || defined(FILTER_CHECKED) + +#define NUM_TABLE_SIZE 512 /* max value of 9-bit value */ +/* + * Recursively generates entries in the number table for a matrix filter. + * + * gen_num_filt is the number representation of the matrix filter. + * This generation is handled recursively because this is the easiest + * way to handle 2 (either value) entries in the filter, which lead + * to 2 distinct entries in the number table (one for each alternate + * value). + */ +void rec_generate_number_table(char * num_table, const char * filter, + int i, unsigned short gen_num_filt) { + if (i == 9) { + /* Invert the value of the number representation, to reflect the + * fact that the "white" is 0 in the filter, 1 (high) in the image. */ + gen_num_filt = ~gen_num_filt; + gen_num_filt &= 0x01ff; + assert(gen_num_filt < NUM_TABLE_SIZE); + num_table[gen_num_filt] = 1; + } else { + if (filter[i] == 0 || filter[i] == 2) + rec_generate_number_table(num_table, filter, i + 1, gen_num_filt); + if (filter[i] == 1 || filter[i] == 2) { + gen_num_filt |= (1 << (8 - i)); + rec_generate_number_table(num_table, filter, i + 1, gen_num_filt); + } + } +} + +/* + * Filter the pixel at (x, y) using a number table. + * + * Each filter can be converted into a 9-bit representation, where + * filters containing 2 (either value) pixels are converted into + * a separate numerical representation for each pixel, where position + * i in the filter corresponds to bit i in the number. Each resulting + * numerical representation N is represented as a 1 value in the Nth + * position of a lookup table. A pixel's environment is converted in + * the same way to a numeric representation P, and that environment + * matches a filter if num_table[P] == 1. + */ +int pixel_filter_by_number(pix * p, int x, int y) { + unsigned short val = 0; + static char num_table[NUM_TABLE_SIZE]; + static int num_table_generated = 0; + if (!num_table_generated) { + int f; + memset(num_table, 0, sizeof(num_table)); + for (f = 0; f < Nfilt3; f++) + rec_generate_number_table(num_table, filt3[f], 0, 0); + num_table_generated = 1; + } + + /* calculate a numeric value for the 3x3 square around the pixel. */ + if (x > 0) { val |= (pixel_atp(p,x-1, y )>>7) << (8 - 3); + if (y > 0) val |= (pixel_atp(p,x-1,y-1)>>7) << (8 - 0); + if (y+1 < p->y) val |= (pixel_atp(p,x-1,y+1)>>7) << (8 - 6); + } + if (x+1 < p->x) { val |= (pixel_atp(p,x+1, y )>>7) << (8 - 5); + if (y > 0) val |= (pixel_atp(p,x+1,y-1)>>7) << (8 - 2); + if (y+1 < p->y) val |= (pixel_atp(p,x+1,y+1)>>7) << (8 - 8); + } + if (y > 0) val |= (pixel_atp(p, x ,y-1)>>7) << (8 - 1); + val |= (pixel_atp(p, x , y )>>7) << (8 - 4); + if (y+1 < p->y) val |= (pixel_atp(p, x ,y+1)>>7) << (8 - 7); + assert(val < NUM_TABLE_SIZE); + + if (num_table[val]) + return (val & (1 << 4)) ? 0 : JOB->cfg.cs; + else + return pixel_atp(p, x, y) & ~7; +} +#endif + +#if FILTER_METHOD == FILTER_BY_TREE || defined(FILTER_CHECKED) + +#define TREE_ARRAY_SIZE 1024 +/* 1+ number of nodes in a complete binary tree of height 10 */ + +/* + * Recursively generate a tree representation of a filter. + */ +void rec_generate_tree(char * tree, const char * filter, int i, int n) { + assert(i >= 0 && i <= 9); + assert(n < TREE_ARRAY_SIZE); + if (i == 9) { + if (filter[4] == 0) + tree[n] = 2; + else + tree[n] = 1; + return; + } + /* first iteration has n == -1, does not set any values of the tree, + just to find whether to start to the left or the right */ + if (n != -1) + tree[n] = 1; + if (filter[i] == 0) + rec_generate_tree(tree, filter, i + 1, n * 2 + 2); + else if (filter[i] == 1) + rec_generate_tree(tree, filter, i + 1, n * 2 + 3); + else { + rec_generate_tree(tree, filter, i + 1, n * 2 + 2); + rec_generate_tree(tree, filter, i + 1, n * 2 + 3); + } +} + +/* + * Filter the pixel at (x, y) using the tree method. + * + * Each filter is represented by a single branch of a binary + * tree, except for filters contain "either value" entries, which + * bifurcate at that point in the branch. Each white pixel in the filter + * is a left branch in the tree, each black pixel a right branch. The + * final node of a branch indicates whether this filter turns a white + * pixel black, or a black one white. + * + * We match a pixel's environment against this tree by similarly + * using the pixels in that environment to traverse the tree. If + * we run out of nodes before getting to the end of a branch, then + * the environment doesn't match against any of the filters represented + * by the tree. Otherwise, we return the value specified by the + * final node. + * + * Since the total tree size, even including missing nodes, is small + * (2 ^ 10), we can use a standard array representation of a binary + * tree, where for the node tree[n], the left child is tree[2n + 2], + * and the right tree[2n + 3]. The only information we want + * from a non-leaf node is whether it exists (that is, is part of + * a filter-representing branch). We represent this with the value + * 1 at the node's slot in the array, the contrary by 0. For the + * leaf node, 0 again represents non-existence, 1 that the filter + * represented by this branch turns a black pixel white, and 2 a + * white pixel black. + */ +int pixel_filter_by_tree(pix * p, int x, int y) { + static char tree[TREE_ARRAY_SIZE]; + static int tree_generated = 0; + int n; + int pixel_val = pixel_atp(p, x, y) & ~7; +#ifdef FILTER_STATISTICS + static int registered_filter_stats = 0; + if (!registered_filter_stats) { + atexit(print_filter_stats); + registered_filter_stats = 1; + } + filter_tries++; +#endif /* FILTER_STATISTICS */ + if (!tree_generated) { + int f; + memset(tree, 0, sizeof(tree)); + for (f = 0; f < Nfilt3; f++) { + const char * filter = filt3[f]; + rec_generate_tree(tree, filter, 0, -1); + } + tree_generated = 1; + } + n = -1; + + /* Note that for the image, low is black, high is white, whereas + * for the filter, 0 is white, 1 is black. For the image, then, + * high (white) means go left, low (black) means go right. */ + +#define IS_BLACK(_dx,_dy) !(pixel_atp(p, x + (_dx), y + (_dy)) >> 7) +#define IS_WHITE(_dx,_dy) (pixel_atp(p, x + (_dx), y + (_dy)) >> 7) +#define GO_LEFT n = n * 2 + 2 +#define GO_RIGHT n = n * 2 + 3 +#define CHECK_NO_MATCH if (tree[n] == 0) return pixel_val + + /* Top row */ + if (y == 0) { + /* top 3 pixels off edge == black == right + n = 2 * (2 * (2 * -1 + 3) + 3) + 3 = 13 */ + n = 13; + } else { + if (x == 0 || IS_BLACK(-1, -1)) + GO_RIGHT; + else + GO_LEFT; + + if (IS_WHITE(0, -1)) + GO_LEFT; + else + GO_RIGHT; + CHECK_NO_MATCH; + + if (x + 1 == p->x || IS_BLACK(+1, -1)) + GO_RIGHT; + else + GO_LEFT; + CHECK_NO_MATCH; + } + + /* Second row */ + if (x == 0 || IS_BLACK(-1, 0)) + GO_RIGHT; + else + GO_LEFT; + CHECK_NO_MATCH; + + if (IS_WHITE(0, 0)) + GO_LEFT; + else + GO_RIGHT; + CHECK_NO_MATCH; + + if (x + 1 == p->x || IS_BLACK(+1, 0)) + GO_RIGHT; + else + GO_LEFT; + CHECK_NO_MATCH; + + /* bottom row */ + if (y + 1 == p->y) { + /* bottom 3 pixels off edge == black == right + n' = 2 * (2 * (2n + 3) + 3) + 3 + = 2 * (4n + 9) + 3 + = 8n + 21 */ + n = 8 * n + 21; + } else { + if (x == 0 || IS_BLACK(-1, +1)) + GO_RIGHT; + else + GO_LEFT; + CHECK_NO_MATCH; + + if (IS_WHITE(0, 1)) + GO_LEFT; + else + GO_RIGHT; + CHECK_NO_MATCH; + + if (x + 1 == p->x || IS_BLACK(+1, +1)) + GO_RIGHT; + else + GO_LEFT; + } + assert(n < TREE_ARRAY_SIZE); + assert(tree[n] == 0 || tree[n] == 1 || tree[n] == 2); + CHECK_NO_MATCH; +#ifdef FILTER_STATISTICS + filter_matches++; +#endif + if (tree[n] == 1) { +#ifdef FILTER_STATISTICS + if (pixel_atp(p, x, y) < JOB->cfg.cs) + filter_whitened++; +#endif + return JOB->cfg.cs; + } else { +#ifdef FILTER_STATISTICS + if (pixel_atp(p, x, y) >= JOB->cfg.cs) + filter_blackened++; +#endif + return 0; + } +} +#endif /* FILTER_METHOD == FILTER_BY_TREE */ + +/* + * This simple filter attempts to correct "fax"-like scan errors. + */ +int pixel_faxfilter(pix *p, int x, int y) { + int r; // filter + r = pixel_atp(p,x,y)&~7; + /* {2,2,2, 2,0,1, 2,1,0} */ + if ((r&128) && (~pixel_atp(p,x+1, y )&128) + && (~pixel_atp(p, x ,y+1)&128) + && ( pixel_atp(p,x+1,y+1)&128)) + r = 64; /* faxfilter */ + + else + /* {2,2,2, 1,0,2, 0,1,2} */ + if ((r&128) && (~pixel_atp(p,x-1, y )&128) + && (~pixel_atp(p, x ,y+1)&128) + && ( pixel_atp(p,x-1,y+1)&128)) + r = 64; /* faxfilter */ + return r & ~7; +} + +#ifdef FILTER_CHECKED +/* + * Print out the 3x3 environment of a pixel as a 9-bit binary. + * + * For debugging purposes only. + */ +void print_pixel_env(FILE * out, pix * p, int x, int y) { + int x0, y0; + for (y0 = y - 1; y0 < y + 2; y0++) { + for (x0 = x - 1; x0 < x + 2; x0++) { + if (x0 < 0 || x0 >= p->x || y0 < 0 || y0 >= p->y) + fputc('?', out); + else if (pixel_atp(p, x0, y0) >> 7) + fputc('0', out); + else + fputc('1', out); + } + } +} +#endif + +/* this function is heavily used + * test if pixel was set, remove low bits (marks) --- later with error-correction + * result depends on n_run, if n_run>0 filter are used + * Returns: pixel-color (without marks) + */ +int getpixel(pix *p, int x, int y){ + if ( x < 0 || y < 0 || x >= p->x || y >= p->y ) + return 255 & ~7; + + /* filter will be used only once later, when vectorization replaces pixel + * processing + */ + if (JOB->tmp.n_run > 0) { /* use the filters (correction of errors) */ +#if FILTER_METHOD == FILTER_BY_NUMBER + int pix = pixel_filter_by_number(p, x, y); +#ifdef FILTER_CHECKED + int pix2 = pixel_filter_by_matrix(p, x, y); + if (pix != pix2) { + fprintf(stderr, + "# BUG: pixel_filter: by number: %d; by matrix: %d, " + "by atp %d; env: ", pix, pix2, pixel_atp(p, x, y) & ~7); + print_pixel_env(stderr, p, x, y); + fputc('\n', stderr); + } +#endif /* FILTER_CHECKED */ + return pix; +#elif FILTER_METHOD == FILTER_BY_MATRIX + return pixel_filter_by_matrix(p, x, y); +#elif FILTER_METHOD == FILTER_BY_TREE + int pix = pixel_filter_by_tree(p, x, y); +#ifdef FILTER_CHECKED + int pix2 = pixel_filter_by_matrix(p, x, y); + int pix3 = pixel_filter_by_number(p, x, y); + if (pix != pix2 || pix != pix3) { + fprintf(stderr, + "# BUG: pixel_filter: tree: %d; matrix: %d, " + "number: %d, atp %d; env: ", pix, pix2, pix3, + pixel_atp(p, x, y) & ~7); + print_pixel_env(stderr, p, x, y); + fputc('\n', stderr); + } +#endif /* FILTER_CHECKED */ + return pix; +#else +#error FILTER_METHOD not defined +#endif /* FILTER_BY_NUMBER */ + } + + return (pixel_atp(p,x,y) & ~7); +} + +/* modify pixel, test if out of range */ +void put(pix * p, int x, int y, int ia, int io) { + if (x < p->x && x >= 0 && y >= 0 && y < p->y) + pixel_atp(p, x, y) = (pixel_atp(p, x, y) & ia) | io; +} diff --git a/3rdparty/gocr-0.48/src/pnm.c b/3rdparty/gocr-0.48/src/pnm.c new file mode 100644 index 0000000..2d07280 --- /dev/null +++ b/3rdparty/gocr-0.48/src/pnm.c @@ -0,0 +1,533 @@ +/* +This is a Optical-Character-Recognition program +Copyright (C) 2000-2009 Joerg Schulenburg + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + see README for EMAIL-address + + v0.1.0 initial version (stdin added) + v0.2.0 popen added + v0.2.7 review by Bruno Barberi Gnecco + v0.39 autoconf + v0.41 fix integer and heap overflow, change color output + v0.46 fix blank spaces problem in filenames + */ + +#include +#include +#include +#include +#ifdef HAVE_UNISTD_H +/* #include */ +#endif + +/* Windows needs extra code to work fine, ^Z in BMP's will stop input else. + * I do not have any idea when this text mode will be an advantage + * but the MS community seems to like to do simple things in a complex way. */ +#if defined(O_BINARY) && (defined(__WIN32) || defined(__WIN32__)\ + || defined(__WIN64) || defined(__WIN64__) || defined(__MSDOS__)) +# include +# define SET_BINARY(_f) do {if (!isatty(_f)) setmode (_f, O_BINARY);} while (0) +#else +# define SET_BINARY(f) (void)0 +#endif + +#include "pnm.h" +#ifdef HAVE_PAM_H +# include +# include +# include +# include +#else +# include +#endif + +#define EE() fprintf(stderr,"\nERROR "__FILE__" L%d: ",__LINE__) +#define E0(x0) {EE();fprintf(stderr,x0 "\n"); } +#define F0(x0) {EE();fprintf(stderr,x0 "\n"); exit(1);} +#define F1(x0,x1) {EE();fprintf(stderr,x0 "\n",x1); exit(1);} + +/* + * Weights to use for the different colours when converting a ppm + * to greyscale. These weights should sum to 1.0 + * + * The below values have been chosen to reflect the fact that paper + * goes a reddish-yellow as it ages. + * + * v0.41: for better performance, we use integer instead of double + * this integer value divided by 1024 (2^10) gives the factor + */ +#define PPM_RED_WEIGHT 511 /* .499 */ +#define PPM_GREEN_WEIGHT 396 /* .387 */ +#define PPM_BLUE_WEIGHT 117 /* .114 */ + +/* + feel free to expand this list of usable converting programs + Note 1: the last field must be NULL. + Note 2: "smaller" extensions must come later: ".pnm.gz" must come + before ".pnm". + calling external programs is a security risk + ToDo: for better security replace gzip by /usr/bin/gzip ! + */ +char *xlist[]={ + ".pnm.gz", "gzip -cd", /* compressed pnm-files, gzip package */ + ".pbm.gz", "gzip -cd", + ".pgm.gz", "gzip -cd", + ".ppm.gz", "gzip -cd", + ".pnm.bz2", "bzip2 -cd", + ".pbm.bz2", "bzip2 -cd", + ".pgm.bz2", "bzip2 -cd", + ".ppm.bz2", "bzip2 -cd", + ".jpg", "djpeg -gray -pnm", /* JPG/JPEG, jpeg package */ + ".jpeg", "djpeg -gray -pnm", + ".gif", "giftopnm -image=all", /* GIF, netpbm package */ + ".bmp", "bmptoppm", + ".tiff", "tifftopnm", + ".png", "pngtopnm", /* Portable Network Graphics (PNG) format */ + ".ps", "pstopnm -stdout -portrait -pgm", /* postscript */ + ".eps", "pstopnm -stdout -portrait -pgm", /* encapsulated postscript */ + /* gs -sDEVICE=pgmraw -sOutputFile=- -g609x235 -r141x141 -q -dNOPAUSE */ + ".fig", "fig2dev -L ppm -m 3", /* xfig files, transfig package */ + NULL +}; + +/* return a pointer to command converting file to pnm or NULL */ +char *testsuffix(char *name){ + int i; char *rr; + + for(i = 0; xlist[i] != NULL; i += 2 ) { + if((rr=strstr(name, xlist[i])) != NULL) + if(strlen(rr)==strlen(xlist[i])) /* handle *.eps.pbm correct */ + return xlist[i+1]; + } + return NULL; +} + + +char read_char(FILE *f1){ // filter #-comments + char c; + int m; + for(m=0;;){ + c=fgetc(f1); + if( feof(f1) ) E0("read feof"); + if( ferror(f1) ) F0("read ferror"); + if( c == '#' ) { m = 1; continue; } + if( m == 0 ) return c; + if( c == '\n' ) m = 0; + } +} + + +/* + for simplicity only PAM of netpbm is used, the older formats + PBM, PGM and PPM can be handled implicitly by PAM routines (js05) + v0.43: return 1 if multiple file (hold it open), 0 otherwise + */ +#ifdef HAVE_PAM_H +int readpgm(char *name, pix * p, int vvv) { + static FILE *fp=NULL; + static char *pip; + char magic1, magic2; + int i, j, sample, minv = 0, maxv = 0, eofP=0; + struct pam inpam; + tuple *tuplerow; + + assert(p); + + if (!fp) { // fp!=0 for multi-pnm and idx>0 + /* open file; test if conversion is needed. */ + if (name[0] == '-' && name[1] == '\0') { + fp = stdin; + SET_BINARY (fileno(fp)); // Windows needs it for correct work + } + else { + pip = testsuffix(name); + if (!pip) { + fp = fopen(name, "rb"); + if (!fp) + F1("opening file %s", name); + } + else { + char *buf = (char *)malloc((strlen(pip)+strlen(name)+4)); + sprintf(buf, "%s \"%s\"", pip, name); /* allow spaces in filename */ + if (vvv) { + fprintf(stderr, "# popen( %s )\n", buf); + } +#ifdef HAVE_POPEN + /* potential security vulnerability, if name contains tricks */ + /* example: gunzip -c dummy | rm -rf * */ + /* windows needs "rb" for correct work, linux not, cygwin? */ + /* ToDo: do you have better code to go arround this? */ +#if defined(__WIN32) || defined(__WIN32__) || defined(__WIN64) || defined(__WIN64__) + fp = popen(buf, "rb"); /* ToDo: may fail, please report */ + if (!fp) fp = popen(buf, "r"); /* 2nd try, the gnu way */ +#else + fp = popen(buf, "r"); +#endif +#else + F0("sorry, compile with HAVE_POPEN to use pipes"); +#endif + if (!fp) + F1("opening pipe %s", buf); + free(buf); + } + } + } + + /* netpbm 0.10.36 tries to write a comment to nonzero char** comment_p */ + /* patch by C.P.Schmidt 21Nov06 */ + memset (&inpam, 0, sizeof(inpam)); + + /* read pgm-header */ + /* struct pam may change between netpbm-versions, causing problems? */ +#ifdef PAM_STRUCT_SIZE /* ok for netpbm-10.35 */ + /* new-and-better? but PAM_STRUCT_SIZE is not defined in netpbm-10.18 */ + pnm_readpaminit(fp, &inpam, PAM_STRUCT_SIZE(tuple_type)); +#else /* ok for netpbm-10.18 old-and-bad for new netpbms */ + pnm_readpaminit(fp, &inpam, sizeof(inpam)); +#endif + + p->x = inpam.width; + p->y = inpam.height; + magic1=(inpam.format >> 8) & 255; /* 'P' for PNM,PAM */ + magic2=(inpam.format ) & 255; /* '7' for PAM */ + minv=inpam.maxval; + if (vvv) { + fprintf(stderr, "# readpam: format=0x%04x=%c%c h*w(d*b)=%d*%d(%d*%d)\n", + inpam.format, /* magic1*256+magic2 */ + ((magic1>31 && magic1<127)?magic1:'.'), + ((magic2>31 && magic2<127)?magic2:'.'), + inpam.height, + inpam.width, + inpam.depth, + inpam.bytes_per_sample); + } + if ( (1.*(p->x*p->y))!=((1.*p->x)*p->y) ) + F0("Error integer overflow"); + if ( !(p->p = (unsigned char *)malloc(p->x*p->y)) ) + F1("Error at malloc: p->p: %d bytes", p->x*p->y); + tuplerow = pnm_allocpamrow(&inpam); + for ( i=0; i < inpam.height; i++ ) { + pnm_readpamrow(&inpam, tuplerow); /* exit on error */ + for ( j = 0; j < inpam.width; j++ ) { + if (inpam.depth>=3) + /* tuplerow is unsigned long (see pam.h sample) */ + /* we expect 8bit or 16bit integers, + no overflow up to 32-10-2=20 bits */ + sample + = ((PPM_RED_WEIGHT * tuplerow[j][0] + 511)>>10) + + ((PPM_GREEN_WEIGHT * tuplerow[j][1] + 511)>>10) + + ((PPM_BLUE_WEIGHT * tuplerow[j][2] + 511)>>10); + else + sample = tuplerow[j][0]; + sample = 255 * sample / inpam.maxval; /* normalize to 8 bit */ + p->p[i*inpam.width+j] = sample; + if (maxvsample) minv=sample; + } + } + pnm_freepamrow(tuplerow); + pnm_nextimage(fp,&eofP); + if (vvv) + fprintf(stderr,"# readpam: min=%d max=%d eof=%d\n", minv, maxv, eofP); + p->bpp = 1; + if (eofP) { + if (!pip) fclose(fp); +#ifdef HAVE_POPEN + else pclose(fp); /* close pipe (v0.43) */ +#endif + fp=NULL; return 0; + } + return 1; /* multiple image = concatenated pnm */ +} + +#else +/* + if PAM not installed, here is the fallback routine, + which is not so powerful but needs no dependencies from other libs + */ +static int fread_num(char *buf, int bps, FILE *f1) { + int mode, j2, j3; char c1; + for (j2=0;j2>=8; + } + buf[0] += c1-'0'; + } + return 0; +} + +/* + * read image file, used to read the OCR-image and database images, + * image file can be PBM/PGM/PPM in RAW or TEXT + * name: filename of image (input) + * p: pointer where to store the loaded image (input) + * vvv: verbose mode (input) + * return: 0=ok, 1=further image follows (multiple image), -1 on error + * this is the fall back routine if libpnm cant be used + */ +int readpgm( char *name, pix *p, int vvv){ + static char c1, c2; /* magic bytes, file type */ + static char *pip; // static to survive multiple calls + int nx,ny,nc,mod,i,j; // buffer + static FILE *f1=NULL; // trigger read new file or multi image file + unsigned char *pic; + char buf[512]; + int lx, ly, dx; + int bps=1; /* bytes per sample (0..255..65535...) */ + + if (!f1) { /* first of multiple image, on MultipleImageFiles c1 was read */ + pip=NULL; + if (name[0]=='-' && name[1]==0) { + f1=stdin; /* is this correct ??? */ + SET_BINARY (fileno(f1)); // Windows needs it for correct work + } else { + pip=testsuffix(name); + if (!pip) { + f1=fopen(name,"rb"); if (!f1) F1("opening file %s",name); + } else { + sprintf(buf,"%s \"%s\"",pip,name); /* ToDo: how to prevent OVL ? */ + if (vvv) { fprintf(stderr,"# popen( %s )\n",buf); } +#ifdef HAVE_POPEN +#if defined(__WIN32) || defined(__WIN32__) || defined(__WIN64) || defined(__WIN64__) + f1 = popen(buf, "rb"); /* ToDo: may fail, please report */ + if (!f1) f1 = popen(buf, "r"); /* 2nd try, the gnu way */ +#else + f1=popen(buf,"r"); +#endif +#else + F0("only PNM files supported (compiled without HAVE_POPEN)"); +#endif + if (!f1) F1("opening pipe %s",buf); + } + } + c1=fgetc(f1); if (feof(f1)) { E0("unexpected EOF"); return -1; } + } + c2=fgetc(f1); if (feof(f1)) { E0("unexpected EOF"); return -1; } + // check the first two bytes of the PNM file + // PBM PGM PPM + // TXT P1 P2 P3 + // RAW P4 P5 P6 + if (c1!='P' || c2 <'1' || c2 >'6') { + fprintf(stderr,"\nread-PNM-error: file number is %2d," + " position %ld", fileno(f1), ftell(f1)); + fprintf(stderr,"\nread-PNM-error: bad magic bytes, expect 0x50 0x3[1-6]" + " but got 0x%02x 0x%02x", 255&c1, 255&c2); + if (f1) fclose(f1); f1=NULL; return(-1); + } + nx=ny=nc=0; if (c2=='4' || c2=='1') nc=1; + for(mod=0;((c2=='5' || c2=='2') && (mod&7)<6) + || ((c2=='6' || c2=='3') && (mod&7)<6) + || ((c2=='4' || c2=='1') && (mod&7)<4);) + { // mode: 0,2,4=[ |\t|\r|\n] + // 1=nx 3=ny 5=nc 8-13=#rem + c1=read_char(f1); // former: # mod|=8 + if( (mod & 1)==0 ) // whitespaces + if( !isspace(c1) ) mod++; + if( (mod & 1)==1 ) { + if( !isdigit(c1) ) { + if( !isspace(c1) )F0("unexpected character"); + mod++; } + else if(mod==1) nx=nx*10+c1-'0'; + else if(mod==3) ny=ny*10+c1-'0'; + else if(mod==5) nc=nc*10+c1-'0'; + } + } + if(vvv) + fprintf(stderr,"# PNM P%c h*w=%d*%d c=%d head=%ld",c2,ny,nx,nc,ftell(f1)); + if( c2=='4' && (nx&7)!=0 ){ + /* nx=(nx+7)&~7;*/ if(vvv)fprintf(stderr," PBM2PGM nx %d",(nx+7)&~7); + } + if (nc>> 8) bps=2; // bytes per color and pixel + if (nc>>16) bps=3; + if (nc>>24) bps=4; + fflush(stdout); + if ( (1.*(nx*ny))!=((1.*nx)*ny) ) + F0("Error integer overflow"); + pic=(unsigned char *)malloc( nx*ny ); + if(pic==NULL)F0("memory failed"); // no memory + for (i=0;i>10) + + ((PPM_GREEN_WEIGHT * (unsigned char)buf[2*bps-1] + 511)>>10) + + ((PPM_BLUE_WEIGHT * (unsigned char)buf[3*bps-1] + 511)>>10); + /* normalized to 0..255 */ + } + } + if( c2=='1' ) + for(mod=j=i=0,nc=255;i>3,ny,f1))F0("read"); // read all bytes + for(ly=ny-1;ly>=0;ly--) + for(lx=nx-1;lx>=0;lx--) + pic[lx+ly*nx]=( (128 & (pic[(lx+ly*dx)>>3]<<(lx & 7))) ? 0 : 255 ); + nc=255; + } + { + int minc=255, maxc=0; + for (i=0;imaxc) maxc=pic[i]; + if (pic[i]p=pic; p->x=nx; p->y=ny; p->bpp=1; + if (vvv) fprintf(stderr,"\n"); + c1=0; c1=fgetc(f1); /* needed to trigger feof() */ + if (feof(f1) || c1!='P') { /* EOF ^Z or not 'P' -> single image */ + if (vvv) fprintf(stderr,"# PNM EOF\n"); + if(name[0]!='-' || name[1]!=0){ /* do not close stdin */ + if(!pip) fclose(f1); +#ifdef HAVE_POPEN + else pclose(f1); /* close pipe (Jul00) */ +#endif + } + f1=NULL; /* set file is closed flag */ + return 0; + } + return 1; /* multiple image = concatenated pnm's */ +} +#endif /* HAVE_PAM_H */ + +int writepgm(char *nam,pix *p){// P5 raw-pgm + FILE *f1;int a,x,y; + f1=fopen(nam,"wb");if(!f1)F0("open"); // open-error + fprintf(f1,"P5\n%d %d\n255\n",p->x,p->y); + if(p->bpp==3) + for(y=0;yy;y++) + for(x=0;xx;x++){ // set bit + a=x+y*p->x; + p->p[a]=(p->p[3*a+0]+p->p[3*a+1]+p->p[3*a+2])/3; + } + if(p->y!=(int)fwrite(p->p,p->x,p->y,f1))F0("write"); // write all lines + fclose(f1); + return 0; +} + +/* adding colours, care about range */ +void addrgb(unsigned char rgb[3], int sr, int sg, int sb) { + int add[3], i; + /* add colour on dark pixels, subtract on white pixels */ + add[0]=2*sr; add[1]=2*sg; add[2]=2*sb; + if (((int)rgb[0])+((int)rgb[1])+((int)rgb[2])>=3*160) + { add[0]=(-sg-sb); add[1]=(-sr-sb); add[2]=(-sr-sg); } // rgb/2? + /* care about colour range */ + for (i=0;i<3;i++) + if (add[i]<0) rgb[i]-=(( rgb[i]<-add[i])? rgb[i]:-add[i]); + else rgb[i]+=((255-rgb[i]< add[i])?255-rgb[i]: add[i]); +} +/* + * pgmtoppm or pnmtopng, use last 3 bits for farbcoding + * replaces old writebmp variant + */ +int writeppm(char *nam, pix *p){ /* P6 raw-ppm */ + FILE *f1=NULL; int x,y,f1t=0; unsigned char rgb[3], gray, bits; + char buf[128]; + if (strchr(nam,'|')) return -1; /* no nasty code */ + if (strstr(nam,".ppm")) { f1=fopen(nam,"wb"); } +#ifdef HAVE_POPEN + /* be sure that nam contains hacker code like "dummy | rm -rf *" */ + if (!f1) { + strncpy(buf,"pnmtopng > ",12); /* no spaces within filenames allowed! */ + strncpy(buf+11,nam,111); buf[123]=0; + strncpy(buf+strlen(buf),".png",5); + /* we dont care about win "wb" here, never debug on win systems */ + f1 = popen(buf, "w"); if(f1) f1t=1; else E0("popen pnmtopng"); + } + if (!f1) { + strncpy(buf,"gzip -c > ",11); + strncpy(buf+10,nam,109); buf[120]=0; + strncpy(buf+strlen(buf),".ppm.gz",8); + /* we dont care about win "wb" here, never debug on win systems */ + f1 = popen(buf, "w"); if(f1) f1t=1; else E0("popen gzip -c"); + } +#endif + if (!f1) { + strncpy(buf,nam,113); buf[114]=0; + strncpy(buf+strlen(buf),".ppm",5); + f1=fopen(buf,"wb"); + } + if (!f1) F0("open"); /* open-error */ + fprintf(f1,"P6\n%d %d\n255\n",p->x,p->y); + if ( p->bpp==1 ) + for (y=0;yy;y++) + for (x=0;xx;x++){ + gray=p->p[x+y*p->x]; + bits=(gray&0x0F); /* save marker bits */ + /* replace used bits to get max. contrast, 160=0xA0 */ + gray = ((gray<160) ? (gray&~0x0F)>>1 : 0xC3|(gray>>1) ); + rgb[0] = rgb[1] = rgb[2] = gray; + if ((bits & 1)==1) { addrgb(rgb,0,0,8+8*((x+y)&1)); } /* dark blue */ + if ((bits & 8)==8) { addrgb(rgb,0,0, 16); } /* blue (low priority) */ + if ((bits & 6)==6) { addrgb(rgb,0,0, 32); } /* blue */ + if ((bits & 6)==4) { addrgb(rgb,0,48,0); } /* green */ + if ((bits & 6)==2) { addrgb(rgb,32,0,0); } /* red */ + if ( 1!=(int)fwrite(rgb,3,1,f1) ) { E0("write"); y=p->y; break; } + } + if ( p->bpp==3 ) + if ( p->y!=(int)fwrite(p->p,3*p->x,p->y,f1) ) E0("write"); +#ifdef HAVE_POPEN + if (f1t) { pclose (f1); f1=NULL; } +#endif + if (f1) fclose(f1); + return 0; +} + +// high bit = first, +int writepbm(char *nam,pix *p){// P4 raw-pbm + FILE *f1;int x,y,a,b,dx,i; + dx=(p->x+7)&~7; // enlarge to a factor of 8 + for(y=0;yy;y++) + for(x=0;xx;x++){ // set bit + a=(x+y*dx)>>3;b=7-(x&7); // adress an bitisnumber + i=x+y*p->x; + if(p->bpp==3) i=(p->p[3*i+0]+p->p[3*i+1]+p->p[3*i+2])/3; + else i= p->p[ i ]; + i=((i>127)?0:1); + p->p[a]=(p->p[a] & (~1<x,p->y); + if(p->y!=(int)fwrite(p->p,dx>>3,p->y,f1))F0("write"); // write all lines + fclose(f1); + return 0; +} +// ------------------------------------------------------------------------ diff --git a/3rdparty/gocr-0.48/src/pnm.h b/3rdparty/gocr-0.48/src/pnm.h new file mode 100644 index 0000000..b284a3f --- /dev/null +++ b/3rdparty/gocr-0.48/src/pnm.h @@ -0,0 +1,35 @@ +/* Handle PNM-files Dez98 JS + * 0,0 = left up + * PAM-formats + * PAM any P7 + * PNM-formats + * PGM gray ASCII=P2 RAW=P5 dx dy col gray + * PPM RGB ASCII=P3 RAW=P6 dx dy col RGB + * PBM B/W ASCII=P1 RAW=P4 dx dy bitmap + */ + +#ifndef GOCR_PNM_H +#define GOCR_PNM_H 1 + +#include "config.h" + +struct pixmap { + unsigned char *p; /* pointer of image buffer (pixmap) */ + int x; /* xsize */ + int y; /* ysize */ + int bpp; /* bytes per pixel: 1=gray 3=rgb */ + }; +typedef struct pixmap pix; + +/* return 1 on multiple images (holding file open), 0 else */ +int readpgm(char *name, pix *p, int vvv); + +/* write pgm-map to pnm-file */ +int writepgm(char *nam, pix *p); +int writepbm(char *nam, pix *p); +int writeppm(char *nam, pix *p); /* use lowest 3 bits for farbcoding */ + +/* ----- count colors ------ create histogram ------- */ +void makehisto(pix p, unsigned col[256], int vvv); + +#endif diff --git a/3rdparty/gocr-0.48/src/progress.c b/3rdparty/gocr-0.48/src/progress.c new file mode 100644 index 0000000..14804ed --- /dev/null +++ b/3rdparty/gocr-0.48/src/progress.c @@ -0,0 +1,87 @@ +/* ---------------------------- progress output ---------------------- */ +#include +#include +#include "progress.h" + +FILE *fp=NULL; /* output stream for progress info */ +time_t printinterval = 10; /* approx. seconds between printouts, 1.. */ + +/* initialization of progress output, fname="","","-" */ +int ini_progress(char *fname){ + int fd; + if (fp) { fclose(fp); fp=NULL; } + if (fname) if (fname[0]) { + fd=atoi(fname); + if(fd>255 || fname[((fd>99)?3:((fd>9)?2:1))]) fd=-1; /* be sure */ + if (fname[0]=='-' && fname[1]==0) { fp=stdout; } +#ifdef __USE_POSIX + else if (fd>0) { fp=fdopen(fd,"w"); } /* not sure that "w" is ok ???? */ +#endif + else { fp=fopen(fname,"w");if(!fp)fp=fopen(fname,"a"); } + if (!fp) { + fprintf(stderr,"could not open %s for progress output\n",fname); + return -1; /* no success */ + } + } + /* fprintf(stderr,"# progress: fd=%d\n",fileno(fp)); */ + return 0; /* no error */ +} + +progress_counter_t *open_progress(int maxcount, const char *name){ + progress_counter_t *pc; + pc = (progress_counter_t*) malloc( sizeof(progress_counter_t) ); + if (!pc) return 0; /* nonfatal */ + pc->starttime = time(NULL); + pc->maxcount = maxcount; + pc->numskip = 0; + pc->lastprintcount = -1; + pc->name = name; + pc->lastprinttime = pc->starttime; + return pc; +} +/* free counter */ +int close_progress(progress_counter_t *counter){ + if (counter) free(counter); + return 0; +} +/* progress meter output + * only 1output/10s, + estimated endtime (test on pixelfields) + * ToDo: to stderr by default? remove subprogress, ini_progress? rm_progress? + * test on tcl + */ +int progress(int counter, progress_counter_t *pc){ + /* we try to save computing time, so we skip early */ + if ((!fp) || counter - pc->lastprintcount <= pc->numskip) return 0; + { + char cr='\n'; + time_t now = time(NULL); +#if 0 /* debugging */ + if (counter) + fprintf(fp," progress %s %3d / %d time %d skip %d\n", + pc->name,counter,pc->maxcount,(int)(now - pc->starttime), + pc->numskip); fflush(fp); +#endif + if (5*(now - pc->lastprinttime) < 2*printinterval + && counter - pc->lastprintcount >= pc->numskip) { /* save for tests */ + if (pc->numskip < 1024) pc->numskip += pc->numskip+1; + } + if (3*(now - pc->lastprinttime) < 2*printinterval ) { + return 0; /* to early for printing */ + } + if (2*(now - pc->lastprinttime) > 3*printinterval ) { + pc->numskip >>= 1; /* to late for printing */ + } + if (fileno(fp)<3) cr='\r'; /* may be choosen in ini? */ + if (counter) + fprintf(fp," progress %s %5d / %d time[s] %5d / %5d (skip=%d)%c", + pc->name,counter,pc->maxcount, + (int)(now - pc->starttime), /* time gone since start */ + (int)(now - pc->starttime)*pc->maxcount/(counter), /* estimated */ + pc->numskip, cr); + fflush(fp); + pc->lastprintcount=counter; + pc->lastprinttime=now; + } + return 0; /* no error */ +} +/* --------------------- end of progress output ---------------------- */ diff --git a/3rdparty/gocr-0.48/src/progress.h b/3rdparty/gocr-0.48/src/progress.h new file mode 100644 index 0000000..d31e7a8 --- /dev/null +++ b/3rdparty/gocr-0.48/src/progress.h @@ -0,0 +1,42 @@ +/* + ---------------------- progress output ---------------------- + output progress for GUIs to a pipe + format: "counter_name" counter maxcounter time estimated_time \r|\n + */ +#ifndef GOCR_PROGRESS_H +#define GOCR_PROGRESS_H "Oct06" +#include + +/* initialization of progress output, fname="","","-" */ +int ini_progress(char *fname); + +/* ToDo: add by open_* and close_* */ +/* place to store values for progress calculation, called often, but + * dont call systime so often + */ +typedef struct progress_counter { + const char *name; /* name of counter */ + int lastprintcount; /* last counter printed for extrapolation */ + int maxcount; /* max counter */ + int numskip; /* num of counts to skip before timecall 0..maxcount */ + time_t starttime; /* start time of this counter */ + time_t lastprinttime; /* last time printed in seconds */ + +} progress_counter_t; + +/* progress output p1=main_progress_0..100% p2=sub_progress_0..100% */ +/* ToDo: improved_progress: counter, maxcount(ini), counter_name(ini), + * printinterval=10 # time before printing out progressmeter + * *numskip=1 # if (counter-lastprintcounter +#include +#include "pgm2asc.h" +#include "gocr.h" +#include "progress.h" + +/* measure mean thickness as an criteria for big chars */ +int mean_thickness( struct box *box2 ){ + int mt=0, i, y, dx=box2->x1-box2->x0+1, dy; + for (y=box2->y0+1; yy1; y++) { + i=loop(box2->p,box2->x0+0,y,dx,JOB->cfg.cs,0,RI); + i=loop(box2->p,box2->x0+i,y,dx,JOB->cfg.cs,1,RI); + mt+=i; + } + dy = box2->y1 - box2->y0 - 1; + if (dy) mt=(mt+dy/2)/dy; + return mt; +} + +/* ---- remove dust --------------------------------- + What is dust? I think, this is a very small pixel cluster without + neighbours. Of course not all dust clusters can be detected correct. + This feature should be possible to switch off via option. + -> may be, all clusters should be stored here? + speed is very slow, I know, but I am happy that it is working well +*/ +int remove_dust( job_t *job ){ + /* new dust removing */ + /* FIXME jb:remove pp */ + pix *pp = &job->src.p; + int i1,i,j,x,y,x0,x1,y0,y1,nC,sX,sY,sP, cs,vvv=job->cfg.verbose; + struct box *box2; +#define HISTSIZE 220 /* histogramm size */ + int histo[HISTSIZE]; + cs=job->cfg.cs; sP=sX=sY=nC=0; + /* + * count number of black pixels within a box and store it in .dots + * later .dots is re-used for number of objects belonging to the character + * should be done in the flood-fill algorithm + * volume of white pixels is estimated to big here (left/right rot) + * ToDo: mean thickness of char lines? + * or interval nesting (minP..maxP) to remove outriders + */ + j=0; + for (i1=0;i1res.boxlist)) { + box2 = (struct box *)list_get_current(&(job->res.boxlist)); + if (!box2->num_frames) continue; + if (box2->frame_vol[0]<0) continue; /* don't count inner holes */ + j = abs(box2->frame_vol[0]); + if ((box2->y1-box2->y0+1)>3) { + nC++; /* only count potential chars v0.42 */ + sX+=box2->x1 - box2->x0 + 1; + sY+=box2->y1 - box2->y0 + 1; + sP+=j; + } + if (jres.boxlist)); + + if (job->cfg.dust_size < 0 && nC > 0) { /* auto detection */ + /* this formula is empirically, high resolution scans have bigger dust */ + /* maximum allowed dustsize (min=4*7 ca. 32) + * does not work for background pattern! + */ + job->cfg.dust_size = ( ( sX/nC ) * ( sY/nC ) + 16) / 32; + if (vvv) fprintf(stderr, "# remove.c remove_dust(): "); + if (vvv) fprintf(stderr, "\n# dust size detection, vol num" + " #obj=%d maxDust=%d mpixel= %3d mxy= %2d %2d", + nC, job->cfg.dust_size, sP/nC, sX/nC, sY/nC); + /* we assume that for random dust applies histo[i+1]=nC) continue; /* v0.42 lot of pixels -> bg pattern < 3 */ + if (i>=job->cfg.dust_size) break; /* maximum = mean size / 32 */ + if (histo[i/*+1*/]==0) break; /* bad statistic */ + if ((histo[i+2]+histo[i+3]) + >=(histo[i] +histo[i+1])) break; /* no noise, but to late? */ + if ( histo[i-1] > 1024*histo[i] && + 2*histo[i+1] >=histo[i]) break; /* bg pattern */ + } + if (vvv) fprintf(stderr," break"); + if (vvv) for (i1=0,j=i+1;j20) break; /* dont do excessive output */ + } + } + job->cfg.dust_size=i-1; + /* what is the statistic of random dust? + * if we have p pixels on a x*y image we should have + * (p/(x*y))^1 * (x*y) = p singlets + * (p/(x*y))^2 * (x*y) = p^2/(x*y) doublets and + * (p/(x*y))^3 * (x*y) = p^3/(x*y)^2 triplets + */ + if (vvv) fprintf(stderr,"\n# auto dust size = %d nC= %3d .. %3d" + " avD= %2d %2d .. %2d %2d\n", + job->cfg.dust_size, nC, job->res.numC, + (job->res.sumX+job->res.numC/2)/job->res.numC, + (job->res.sumY+job->res.numC/2)/job->res.numC, sX/nC, sY/nC); + } + if (job->cfg.dust_size) + { i=0; + if(vvv){ + fprintf(stderr,"# remove dust of size %2d",job->cfg.dust_size); + /* Warning: better use (1/(x*y))^2 as 1/((x*y)^2), + * because (x*y)^2 may overflow */ + fprintf(stderr," histo=%d,%d(?=%d),%d(?=%d),...\n# ...", + histo[1],histo[2],histo[1]*histo[1]/(pp->x*pp->y), + histo[3], histo[1]*histo[1]/(pp->x*pp->y) + *histo[1]/(pp->x*pp->y)); + } + i = 0; + for_each_data(&(job->res.boxlist)) { + box2 = (struct box *)list_get_current(&(job->res.boxlist)); + x0=box2->x0;x1=box2->x1;y0=box2->y0;y1=box2->y1; /* box */ + j=abs(box2->frame_vol[0]); + if(j<=job->cfg.dust_size) /* remove this tiny object */ + { /* here we should distinguish dust and i-dots, + * may be we should sort out dots to a seperate dot list and + * after line detection decide, which is dust and which not + * dust should be removed to make recognition easier (ToDo) + */ +#if 0 + if(get_bw((3*x0+x1)/4,(x0+3*x1)/4,y1+y1-y0+1,y1+8*(y1-y0+1),pp,cs,1)) + continue; /* this idea was to simple, see kscan003.jpg sample */ +#endif + /* remove from average */ + job->res.numC--; + job->res.sumX-=x1-x0+1; + job->res.sumY-=y1-y0+1; + /* remove pixels (should only be done with dust) */ + for(x=x0;x<=x1;x++) + for(y=y0;y<=y1;y++){ put(pp,x,y,0,255&~7); } + /* remove from list */ + list_del(&(job->res.boxlist),box2); + /* free memory */ + free_box(box2); + i++; /* count as dust particle */ + continue; + } + } end_for_each(&(job->res.boxlist)); + if(vvv)fprintf(stderr," %3d cluster removed, nC= %3d\n",i,job->res.numC); + } + /* reset dots to 0 and remove white pixels (new) */ + i=0; + for_each_data(&(job->res.boxlist)) { + box2 = ((struct box *)list_get_current(&(job->res.boxlist))); + if (box2->frame_vol[0]<0) continue; /* for black areas only */ + x0=box2->x0;x1=box2->x1;y0=box2->y0;y1=box2->y1; /* box */ + if (x1-x0>16 && y1-y0>30) /* only on large enough chars */ + for(x=x0+1;x<=x1-1;x++) + for(y=y0+1;y<=y1-1;y++){ + if( pixel_atp(pp,x ,y )>=cs + && pixel_atp(pp,x-1,y ) res.boxlist)); + if (vvv) fprintf(stderr,"# ... %3d white pixels removed, cs=%d nC= %3d\n", + i,cs,job->res.numC); + return 0; +} + +/* ---- smooth big chars --------------------------------- + * Big chars often do not have smooth borders, which let fail + * the engine. Here we smooth the borders of big chars (>7x16). + * Smoothing is important for b/w scans, where we often have + * comb like pattern on a vertikal border. I also received + * samples with lot of white pixels (sample: 04/02/25). + * ToDo: obsolete if vector code is complete + */ +int smooth_borders( job_t *job ){ + pix *pp = &job->src.p; + int ii=0,x,y,x0,x1,y0,y1,dx,dy,cs,i0,i1,i2,i3,i4,n1,n2, + cn[8],cm,vvv=job->cfg.verbose; /* dust found */ + struct box *box2; + cs=job->cfg.cs; n1=n2=0; + if(vvv){ fprintf(stderr,"# smooth big chars 7x16 cs=%d",cs); } + /* filter for each big box */ + for_each_data(&(job->res.boxlist)) { n2++; /* count boxes */ + box2 = (struct box *)list_get_current(&(job->res.boxlist)); + /* do not touch small characters! but how we define small characters? */ + if (box2->x1-box2->x0+1<7 || box2->y1-box2->y0+1<16 ) continue; + if (box2->c==PICTURE) continue; + if (mean_thickness(box2)<3) continue; + n1++; /* count boxes matching big-char criteria */ + x0=box2->x0; y0=box2->y0; + x1=box2->x1; y1=box2->y1; + dx=x1-x0+1; dy=y1-y0-1; + /* out_x(box2); + * dont change to much! only change if absolutely sure! + * ....... 1 2 3 + * ex: .?##### 0 * 4 + * ....... 7 6 5 + * we should also avoid removing lines by sytematic remove + * from left end to the right, so we concern also about distance>1 + */ + for(x=box2->x0;x<=box2->x1;x++) + for(y=box2->y0;y<=box2->y1;y++){ /* filter out high frequencies */ + /* this is a very primitive solution, only for learning */ + cn[0]=getpixel(pp,x-1,y); + cn[4]=getpixel(pp,x+1,y); /* horizontal */ + cn[2]=getpixel(pp,x,y-1); + cn[6]=getpixel(pp,x,y+1); /* vertical */ + cn[1]=getpixel(pp,x-1,y-1); + cn[3]=getpixel(pp,x+1,y-1); /* diagonal */ + cn[7]=getpixel(pp,x-1,y+1); + cn[5]=getpixel(pp,x+1,y+1); + cm=getpixel(pp,x,y); + /* check for 5 other and 3 same surrounding pixels */ + for (i0=0;i0<8;i0++) + if ((cn[i0 ]=5 && i3>=3 && i4>=3) { /* change only on borders */ + ii++; /* white : black */ + put(pp,x,y,7,((cmx0,y-box2->y0,i0,i1,i2,i3,i3,cm,getpixel(pp,x,y),cs); +#endif + } + } +#if 0 /* debugging */ + out_x(box2); +#endif + } end_for_each(&(job->res.boxlist)); + if(vvv)fprintf(stderr," ... %3d changes in %d of %d\n",ii,n1,n2); + return 0; +} + +/* test if a corner of box1 is within box2 */ +int box_nested( struct box *box1, struct box *box2){ + /* box1 in box2, +1..-1 frame for pixel-patterns */ + if ( ( ( box1->x0>=box2->x0-1 && box1->x0<=box2->x1+1 ) + || ( box1->x1>=box2->x0-1 && box1->x1<=box2->x1+1 ) ) + && ( ( box1->y0>=box2->y0-1 && box1->y0<=box2->y1+1 ) + || ( box1->y1>=box2->y0-1 && box1->y1<=box2->y1+1 ) ) ) + return 1; + return 0; +} + +/* test if box1 is within box2 */ +int box_covered( struct box *box1, struct box *box2){ + /* box1 in box2, +1..-1 frame for pixel-patterns */ + if ( ( box1->x0>=box2->x0-1 && box1->x1<=box2->x1+1 ) + && ( box1->y0>=box2->y0-1 && box1->y1<=box2->y1+1 ) ) + return 1; + return 0; +} + +/* ---- remove pictures ------------------------------------------ + * may be, not deleting or moving to another list is much better! + * should be renamed to remove_pictures and border boxes + */ +int remove_pictures( job_t *job){ + struct box *box4,*box2; + int j=0, j2=0, num_del=0; + + if (job->cfg.verbose) + fprintf(stderr, "# "__FILE__" L%d: remove pictures\n# ...", + __LINE__); + + /* ToDo: output a list for picture handle scripts */ + j=0; j2=0; + if(job->cfg.verbose) + for_each_data(&(job->res.boxlist)) { + box4 = (struct box *)list_get_current(&(job->res.boxlist)); + if (box4->c==PICTURE) j++; else j2++; + } end_for_each(&(job->res.boxlist)); + if (job->cfg.verbose) + fprintf(stderr," status: pictures= %d other= %d nC= %d\n# ...", + j, j2, job->res.numC); + + /* remove table frames */ + if (job->res.numC > 8) + for_each_data(&(job->res.boxlist)) { + box2 = (struct box *)list_get_current(&(job->res.boxlist)); + if (box2->c==PICTURE + && box2->num_ac==0 /* dont remove barcodes */ + && box2->x1-box2->x0+1>box2->p->x/2 /* big table? */ + && box2->y1-box2->y0+1>box2->p->y/2 ){ j=0; + /* count boxes nested with the picture */ + for_each_data(&(job->res.boxlist)) { + box4 = (struct box *)list_get_current(&(job->res.boxlist)); + if( box4 != box2 ) /* not count itself */ + if (box_nested(box4,box2)) j++; /* box4 in box2 */ + } end_for_each(&(job->res.boxlist)); + if( j>8 ){ /* remove box if more than 8 chars are within box */ + list_del(&(job->res.boxlist), box2); /* does not work proper ?! */ + free_box(box2); num_del++; + } + } + } end_for_each(&(job->res.boxlist)); + if (job->cfg.verbose) + fprintf(stderr, " deleted= %d pictures (table frames)\n# ...", + num_del); + num_del=0; + + /* remove dark-border-boxes (typical for hard copy of book site, + * or spam random border) */ + if (job->res.numC > 1) /* dont remove the only char */ + for_each_data(&(job->res.boxlist)) { + box2 = (struct box *)list_get_current(&(job->res.boxlist)); + if (box2->c!=PICTURE) continue; // ToDo: PICTUREs set already? + if ( box2->x1-box2->x0+1 > box2->p->x/2 + && box2->y1-box2->y0+1 > box2->p->y/2 ) continue; + j=0; + if (box2->x0==0) j++; + if (box2->y0==0) j++; /* on border? */ + if (box2->x1==box2->p->x-1) j++; + if (box2->y1==box2->p->y-1) j++; + if (j>2){ /* ToDo: check corner pixel */ + int cs=job->cfg.cs; + j=0; + if (getpixel(box2->p,box2->x0,box2->y0)p,box2->x1,box2->y0)p,box2->x0,box2->y1)p,box2->x1,box2->y1)2) { + list_del(&(job->res.boxlist), box2); + free_box(box2); num_del++; + } + } + } end_for_each(&(job->res.boxlist)); + if (job->cfg.verbose) + fprintf(stderr, " deleted= %d pictures (on border)\n# ...", + num_del); + num_del=0; + + j=0; j2=0; + if(job->cfg.verbose) + for_each_data(&(job->res.boxlist)) { + box4 = (struct box *)list_get_current(&(job->res.boxlist)); + if( box4->c==PICTURE ) j++; else j2++; + } end_for_each(&(job->res.boxlist)); + if (job->cfg.verbose) + fprintf(stderr," status: pictures= %d other= %d nC= %d\n# ...", + j, j2, job->res.numC); + + for(j=1;j;){ j=0; /* this is only because list_del does not work */ + /* can be slow on gray images */ + for_each_data(&(job->res.boxlist)) { + box2 = (struct box *)list_get_current(&(job->res.boxlist)); + if( box2->c==PICTURE && box2->num_ac==0) + for(j=1;j;){ /* let it grow to max before leave */ + j=0; box4=NULL; + /* find boxes nested with the picture and remove */ + /* its for pictures build by compounds */ + for_each_data(&(job->res.boxlist)) { + box4 = (struct box *)list_get_current(&(job->res.boxlist)); + if( box4!=box2 /* not destroy self */ + && (box4->num_ac==0) /* dont remove barcodes etc. */ + && (/* box4->c==UNKNOWN || */ + box4->c==PICTURE) ) /* dont remove valid chars */ + if( + /* box4 in box2, +1..-1 frame for pixel-patterns */ + box_nested(box4,box2) + /* or box2 in box4 */ + || box_nested(box2,box4) /* same? */ + ) + if ( box4->x1-box4->x0+1>2*job->res.avX + || box4->x1-box4->x0+1res.avX/2 + || box4->y1-box4->y0+1>2*job->res.avY + || box4->y1-box4->y0+1res.avY/2 + || box_covered(box4,box2) ) /* box4 completely within box2 */ + /* dont remove chars! see rotate45.fig */ + { + /* do not remove boxes in inner loop (bug?) ToDo: check why! */ + /* instead we leave inner loop and mark box4 as valid */ + if( box4->x0x0 ) box2->x0=box4->x0; + if( box4->x1>box2->x1 ) box2->x1=box4->x1; + if( box4->y0y0 ) box2->y0=box4->y0; + if( box4->y1>box2->y1 ) box2->y1=box4->y1; + j=1; /* mark box4 as valid */ + break; /* and leave inner loop */ + } + } end_for_each(&(job->res.boxlist)); + if (j!=0 && box4!=NULL) { /* check for valid box4 */ + /* ToDo: melt */ + list_del(&(job->res.boxlist), box4); /* does not work proper ?! */ + free_box(box4); /* break; ToDo: necessary to leave after del??? */ + num_del++; + } + + } + } end_for_each(&(job->res.boxlist)); + } + + if (job->cfg.verbose) + fprintf(stderr, " deleted= %d nested pictures\n# ...", num_del); + + /* output a list for picture handle scripts */ + j=0; j2=0; + if(job->cfg.verbose) + for_each_data(&(job->res.boxlist)) { + box4 = (struct box *)list_get_current(&(job->res.boxlist)); + if( box4->c==PICTURE ) { + fprintf(stderr," found picture at %4d %4d size %4d %4d\n# ...", + box4->x0, box4->y0, box4->x1-box4->x0+1, box4->y1-box4->y0+1 ); + j++; + } else j2++; + } end_for_each(&(job->res.boxlist)); + if (job->cfg.verbose) + fprintf(stderr," status: pictures= %d other= %d nC= %d\n", + j, j2, job->res.numC); + return 0; +} + + + + /* ---- remove melted serifs --------------------------------- v0.2.5 + >>v<< + ##########.######## <-y0 + ################### like X VW etc. + ...###.......###... <-y + ...###......###.... + j1 j2 j3 + - can generate new boxes if two characters were glued + */ +int remove_melted_serifs( pix *pp ){ + int x,y,j1,j2,j3,j4,i2,i3,i,ii,ni,cs,x0,x1,xa,xb,y0,y1,vvv=JOB->cfg.verbose; + struct box *box2, *box3; + progress_counter_t *pc = NULL; + + cs=JOB->cfg.cs; i=0; ii=0; ni=0; + for_each_data(&(JOB->res.boxlist)) { + ni++; + } end_for_each(&(JOB->res.boxlist)); + pc = open_progress(ni,"remove_melted_serifs"); + ni = 0; + + if(vvv){ fprintf(stderr,"# searching melted serifs ..."); } + for_each_data(&(JOB->res.boxlist)) { + box2 = (struct box *)list_get_current(&(JOB->res.boxlist)); + if (box2->c != UNKNOWN) continue; /* dont try on pictures */ + x0=box2->x0; x1=box2->x1; + y0=box2->y0; y1=box2->y1; /* box */ + /* upper serifs */ + for(j1=x0;j1+4x1+1) break; + y =loop(pp,j1,y0+1,x1-x0,cs,1,RI); if(y>x) x=y; if(j1+x>x1+1) break; + /* measure mean thickness of serif pos: (j1,y0)-(j1+x,y0) */ + for(j2=j3=j4=0,i2=j1;i2y1-y0) break; + i3+=loop(pp,i2,y0+i3,y1-y0,cs,1,DO); if(8*i3>y1-y0) continue; + if(8*i3j3)j3=i3; + j3 = j3 + loop(pp,j3,y ,x1-j3,cs,1,RI); + i3 = loop(pp,j3,y ,x1-j3,cs,0,RI); + if(i3<2 || j3>=j1+x){j1+=x;continue;} + j3 += i3/2; + + if(x>5) + { + i++; /* snip! */ + for(y=0;y<(y1-y0+1+4)/8;y++)put(pp,j2,y0+y,255,128+64); /* clear highest bit */ + if(vvv&4){ + fprintf(stderr,"\n"); + out_x(box2); + fprintf(stderr,"# melted serifs corrected on %d %d j1=%d j3=%d", + j2-x0, y, j1-x0, j3-x0); + // ToDo: vector cut with line from xa,ya to xb,yb + // two frames of double melted MN become one frame if cut one + // of the melted serifs (new function cut_frames_at_line()) + } + for(xb=0,xa=0;xa<(x1-x0+4)/8;xa++){ /* detect vertical gap */ + i3=y1; + if(box2->m3>y0 && 2*y1>box2->m3+box2->m4) i3=box2->m3; /* some IJ */ + if( loop(pp,j2-xa,i3,i3-y0,cs,0,UP) > (y1-y0+1)/2 + && loop(pp,j2,(y0+y1)/2,xa+1,cs,0,LE) >=xa ){ xb=-xa; break; } + if( loop(pp,j2+xa,i3,i3-y0,cs,0,UP) > (y1-y0+1)/2 + && loop(pp,j2,(y0+y1)/2,xa+1,cs,0,RI) >=xa ){ xb= xa; break; } + } + if( get_bw(j2 ,j2 ,y0,(y0+y1)/2,pp,cs,1) == 0 + && get_bw(j2+xb,j2+xb,(y0+y1)/2,i3,pp,cs,1) == 0 ) + { /* divide */ + box3=malloc_box(box2); + box3->x1=j2-1; + box2->x0=j2+1; x1=box2->x1; + cut_box(box2); /* cut vectors outside the box, see box.c */ + cut_box(box3); + box3->num=JOB->res.numC; + list_ins(&(JOB->res.boxlist),box2,box3); JOB->res.numC++; ii++; /* insert box3 before box2 */ + if(vvv&4) fprintf(stderr," => splitted"); + j1=x0=box2->x0; x=0; /* hopefully ok, UVW */ + } + } + j1+=x; + } + /* same on lower serifs -- change this later to better function + // #### ### + // #### v ### # <-y + // #################### <-y1 + // j1 j2 j3 + */ + for(j1=x0;j1x1+1) break; + y =loop(pp,j1,y1-1,x1-x0,cs,1,RI); if(y>x) x=y; if(j1+x>x1+1) break; + /* measure mean thickness of serif */ + for(j2=j3=j4=0,i2=j1;i2y1-y0) break; + i3+=loop(pp,i2,y1-i3,y1-y0,cs,1,UP); if(8*i3>y1-y0) continue; + if(8*i3j3)j3=i3; + j3 = j3 + loop(pp,j3,y ,x1-j3,cs,1,RI); + i3 = loop(pp,j3,y,x1-j3,cs,0,RI); + if(i3<2 || j3>=j1+x){j1+=x;continue;} + j3 += i3/2; + + /* y =y1-(y1-y0+1+4)/8; */ + if(x>5) + { + i++; /* snip! */ + for(i3=0;i3<(y1-y0+1+4)/8;i3++) + put(pp,j2,y1-i3,255,128+64); /* clear highest bit */ + if(vvv&4){ + fprintf(stderr,"\n"); + out_x(box2); + fprintf(stderr,"# melted serifs corrected on %d %d j1=%d j3=%d",j2-x0,y-y0,j1-x0,j3-x0); + } + for(xb=0,xa=0;xa<(x1-x0+4)/8;xa++){ /* detect vertical gap */ + if( loop(pp,j2-xa,y0,y1-y0,cs,0,DO) > (y1-y0+1)/2 + && loop(pp,j2,(y0+y1)/2,xa+1,cs,0,LE) >=xa ){ xb=-xa; break; } + if( loop(pp,j2+xa,y0,y1-y0,cs,0,DO) > (y1-y0+1)/2 + && loop(pp,j2,(y0+y1)/2,xa+1,cs,0,RI) >=xa ){ xb= xa; break; } + } + if( get_bw(j2 ,j2 ,(y0+y1)/2,y1,pp,cs,1) == 0 + && get_bw(j2+xb,j2+xb,y0,(y0+y1)/2,pp,cs,1) == 0 ) + { /* divide */ + box3=malloc_box(box2); + box3->x1=j2-1; + box2->x0=j2; x1=box2->x1; + cut_box(box2); /* cut vectors outside the box */ + cut_box(box3); + box3->num=JOB->res.numC; + list_ins(&(JOB->res.boxlist),box2,box3); JOB->res.numC++; ii++; + /* box3,box2 in correct order??? */ + if(vvv&4) fprintf(stderr," => splitted"); + j1=x0=box2->x0; x=0; /* hopefully ok, NMK */ + } + } + j1+=x; + } + progress(ni++,pc); + } end_for_each(&(JOB->res.boxlist)); + close_progress(pc); + if(vvv)fprintf(stderr," %3d cluster corrected, %d new boxes\n",i,ii); + return 0; +} + +/* remove black borders often seen on bad scanned copies of books + - dust around the border + */ +int remove_rest_of_dust() { + int i1, i2, vvv = JOB->cfg.verbose, x0, x1, y0, y1, cnt=0; + struct box *box2, *box4; + progress_counter_t *pc = NULL; + + i1 = i2 = 0; /* counter for removed boxes */ + if (vvv) + fprintf(stderr, "# detect dust (avX,nC), ... "); + /* remove fragments from border */ + for_each_data(&(JOB->res.boxlist)) { + box2 = (struct box *)list_get_current(&(JOB->res.boxlist)); + if (box2->c == UNKNOWN) { + x0 = box2->x0; x1 = box2->x1; + y0 = box2->y0; y1 = box2->y1; /* box */ + /* box in char ??? */ + if ( 2 * JOB->res.numC * (y1 - y0 + 1) < 3 * JOB->res.sumY + && ( y1 < box2->p->y/4 || y0 > 3*box2->p->y/4 ) /* not single line */ + && JOB->res.numC > 1 /* do not remove everything */ + && ( box2->m4 == 0 ) ) /* remove this */ + { + JOB->res.numC--; /* ToDo: dont count tiny pixels */ + /* ToDo: res.sumX,Y must also be corrected */ + i1++; + list_del(&(JOB->res.boxlist), box2); + free_box(box2); + } + } + } end_for_each(&(JOB->res.boxlist)); + + pc = open_progress(JOB->res.boxlist.n,"remove_dust2"); + for_each_data(&(JOB->res.boxlist)) { + box2 = (struct box *)list_get_current(&(JOB->res.boxlist)); + progress(cnt++,pc); + if (box2->c == PICTURE) continue; + x0 = box2->x0; x1 = box2->x1; + y0 = box2->y0; y1 = box2->y1; /* box */ + /* remove tiny box2 if to far away from bigger boxes */ + /* ToDo: remove clouds of tiny pixels (count near small, compare with num bigger) */ + /* 0.42: remove far away pixel? ToDo: do it at earlier? */ + if (x1-x0+1<3 && y1-y0+1<3){ + int xn, yn, xs, ys; + int found=0; /* nearest bigger box */ + /* search near bigger box */ + for_each_data(&(JOB->res.boxlist)) { + box4 = (struct box *)list_get_current(&(JOB->res.boxlist)); + if (found || box4 == box2) continue; + if (box4->x1-box4->x0+1<3 && box4->y1-box4->y0+1<3) continue; + xs = box4->x1-box4->x0+1; + ys = box4->y1-box4->y0+1; + xn = abs((box4->x0+box4->x1)/2 - box2->x0); + yn = abs((box4->y0+box4->y1)/2 - box2->y0); + if (2*xn < 3*xs && 2*yn < 3*ys) { found=1; } + } end_for_each(&(JOB->res.boxlist)); + if (!found) { /* found nothing, box2 to far from big boxes */ + i2++; + list_del(&(JOB->res.boxlist), box2); + free_box(box2); + } + } + } end_for_each(&(JOB->res.boxlist)); + close_progress(pc); + if (vvv) + fprintf(stderr, " %3d + %3d boxes deleted, nC= %d ?\n", + i1, i2, JOB->res.numC); + + return 0; +} diff --git a/3rdparty/gocr-0.48/src/test.cc b/3rdparty/gocr-0.48/src/test.cc new file mode 100644 index 0000000..4dbf440 --- /dev/null +++ b/3rdparty/gocr-0.48/src/test.cc @@ -0,0 +1,241 @@ +/* +This is a Optical-Character-Recognition program +Copyright (C) 2000-2009 Joerg Schulenburg + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + see README for EMAIL-address + + sometimes I have written comments in german language, sorry for that + + This file was retrieved from pgm2asc.cc of Joerg, in order to have + a library of the ocr-engine from Klaas Freitag + + */ +#include "config.h" +#include +#include +#include +#include +#ifdef HAVE_GETTIMEOFDAY +#include +#endif +#ifdef HAVE_UNISTD_H +#include +#endif + +#include "pnm.h" +#include "pgm2asc.h" +#include "pcx.h" +#include "ocr0.h" /* only_numbers */ +#include "progress.h" +#include "version.h" + +static void out_version(int v) { + fprintf(stderr, " Optical Character Recognition --- gocr " + version_string " " release_string "\n" + " Copyright (C) 2001-2009 Joerg Schulenburg GPG=1024D/53BDFBE3\n" + " released under the GNU General Public License\n"); + /* as recommended, (c) and license should be part of the binary */ + /* no email because of SPAM, see README for contacting the author */ + if (v) + fprintf(stderr, " use option -h for help\n"); + if (v & 2) + exit(1); + return; +} + +static void help(void) { + out_version(0); + /* output is shortened to essentials, see manual page for details */ + fprintf(stderr, + " using: gocr [options] pnm_file_name # use - for stdin\n" + " options (see gocr manual pages for more details):\n" + " -h, --help\n" + " -i name - input image file (pnm,pgm,pbm,ppm,pcx,...)\n" + " -o name - output file (redirection of stdout)\n" + " -e name - logging file (redirection of stderr)\n" + " -x name - progress output to fifo (see manual)\n" + " -p name - database path including final slash (default is ./db/)\n"); + fprintf(stderr, /* string length less than 509 bytes for ISO C89 */ + " -f fmt - output format (ISO8859_1 TeX HTML XML UTF8 ASCII)\n" + " -l num - threshold grey level 0<160<=255 (0 = autodetect)\n" + " -d num - dust_size (remove small clusters, -1 = autodetect)\n" + " -s num - spacewidth/dots (0 = autodetect)\n" + " -v num - verbose (see manual page)\n" + " -c string - list of chars (debugging, see manual)\n" + " -C string - char filter (ex. hexdigits: ""0-9A-Fx"", only ASCII)\n" + " -m num - operation modes (bitpattern, see manual)\n"); + fprintf(stderr, /* string length less than 509 bytes for ISO C89 */ + " -a num - value of certainty (in percent, 0..100, default=95)\n" + " -u string - output this string for every unrecognized character\n"); + fprintf(stderr, /* string length less than 509 bytes for ISO C89 */ + " examples:\n" + "\tgocr -m 4 text1.pbm # do layout analyzis\n" + "\tgocr -m 130 -p ./database/ text1.pbm # extend database\n" + "\tdjpeg -pnm -gray text.jpg | gocr - # use jpeg-file via pipe\n" + "\n"); + fprintf(stderr, " webpage: http://jocr.sourceforge.net/\n"); + exit(0); +} + +#ifdef HAVE_GETTIMEOFDAY +/* from the glibc documentation */ +static int timeval_subtract (struct timeval *result, struct timeval *x, + struct timeval *y) { + + /* Perform the carry for the later subtraction by updating Y. */ + if (x->tv_usec < y->tv_usec) { + int nsec = (y->tv_usec - x->tv_usec) / 1000000 + 1; + y->tv_usec -= 1000000 * nsec; + y->tv_sec += nsec; + } + if (x->tv_usec - y->tv_usec > 1000000) { + int nsec = (x->tv_usec - y->tv_usec) / 1000000; + y->tv_usec += 1000000 * nsec; + y->tv_sec -= nsec; + } + + /* Compute the time remaining to wait. + `tv_usec' is certainly positive. */ + result->tv_sec = x->tv_sec - y->tv_sec; + result->tv_usec = x->tv_usec - y->tv_usec; + + /* Return 1 if result is negative. */ + return x->tv_sec < y->tv_sec; +} +#endif + +static void process_arguments(job_t *job) +{ + +#ifdef HAVE_PGM_H + pnm_init(&argn, &argv); +#endif + +job->cfg.out_format=XML; else +job->cfg.cfilter = "0-9"; + +job->src.fname = "patch00000.pgm"; // TODO +} + +static int read_picture(job_t *job) { + int rc=0; + assert(job); + + if (strstr(job->src.fname, ".pcx")) + readpcx(job->src.fname, &job->src.p, job->cfg.verbose); + else + rc=readpgm(job->src.fname, &job->src.p, job->cfg.verbose); + return rc; /* 1 for multiple images, 0 else */ +} + +/* subject of change, we need more output for XML (ToDo) */ +void print_output(job_t *job) { + int linecounter = 0; + const char *line; + + assert(job); + + linecounter = 0; + line = getTextLine(linecounter++); + while (line) { + /* notice: decode() is shiftet to getTextLine since 0.38 */ + fputs(line, stdout); + if (job->cfg.out_format==HTML) fputs("
",stdout); + if (job->cfg.out_format!=XML) fputc('\n', stdout); + line = getTextLine(linecounter++); + } + free_textlines(); +} + +/* FIXME jb: remove JOB; */ +job_t *JOB; + + +/* ------------------------------------------------------------- +// ------ MAIN - replace this by your own aplication! +// ------------------------------------------------------------- */ +int main(int argn, char *argv[]) { + int multipnm=1; + job_t job; + setvbuf(stdout, (char *) NULL, _IONBF, 0); /* not buffered */ + + while (multipnm==1) { + + job_init(&job); + +// process_arguments(&job, argn, argv); + + mark_start(&job); + + multipnm = read_picture(&job); + /* separation of main and rest for using as lib + this will be changed later => introduction of set_option() + for better communication to the engine */ + if (multipnm<0) break; /* read error */ + + /* call main loop */ + pgm2asc(&job); + + mark_end(&job); + + job_free(&job); + + } + + return 0; +} + + + +void test() { + int multipnm=1; + job_t job; + + while (multipnm==1) { + job_init(&job); + + job->cfg.out_format=XML; + job->cfg.cfilter = "0-9"; + job->src.fname = "patch00000.pgm"; // TODO + + multipnm = read_picture(&job); + /* separation of main and rest for using as lib + this will be changed later => introduction of set_option() + for better communication to the engine */ + if (multipnm<0) break; /* read error */ + + /* call main loop */ + pgm2asc(&job); + + int linecounter = 0; + const char *line; + + assert(job); + + linecounter = 0; + line = getTextLine(linecounter++); + while (line) { + //fputs(line, stdout); + //Interpret line here + + line = getTextLine(linecounter++); + } + free_textlines(); + job_free(&job); + } + return; +} diff --git a/3rdparty/gocr-0.48/src/test2.c b/3rdparty/gocr-0.48/src/test2.c new file mode 100644 index 0000000..b5cc58a --- /dev/null +++ b/3rdparty/gocr-0.48/src/test2.c @@ -0,0 +1,87 @@ +// ===================================================================================== +// +// Filename: test.cc +// +// Description: +// +// Version: 1.0 +// Created: 09/26/2010 12:15:50 AM +// Revision: none +// Compiler: g++ +// +// Author: Jan Elseberg (), jelseber@uos.de +// Company: Universitaet Osnabrueck +// +// ===================================================================================== + +#include +#include +#include +#include +#ifdef HAVE_GETTIMEOFDAY +#include +#endif +#ifdef HAVE_UNISTD_H +#include +#endif + +#include "pnm.h" +#include "pgm2asc.h" +#include "pcx.h" +#include "ocr0.h" +#include "progress.h" +#include "version.h" +#include "config.h" + +char filter[] = "0-9"; +void test() { + int multipnm=1; + job_t job; + + + while (multipnm==1) { + job_init(&job); + + job.cfg.out_format=XML; + job.cfg.cfilter = filter; + job.src.fname = "patch00000.pgm"; // TODO + + multipnm=readpgm(job.src.fname, &job.src.p, job.cfg.verbose); + + if (multipnm<0) break; + + pgm2asc(&job); + + int linecounter = 0; + const char *line; + line = getTextLine(linecounter++); + while (line) { + //fputs(line, stdout); + //Interpret line here + + line = getTextLine(linecounter++); + } + free_textlines(); + job_free(&job); + } + return; +} +int main() { + return 0; +} +/* +#include "gocr/pnm.h" +#include "gocr/pgm2asc.h" +#include "gocr/pcx.h" +#include "gocr/ocr0.h" +#include "gocr/progress.h" +#include "gocr/version.h" +#include "gocr/config.h" + +int main() { + job_t job; + + +return 0; +} +*/ diff --git a/3rdparty/gocr-0.48/src/tga.c b/3rdparty/gocr-0.48/src/tga.c new file mode 100644 index 0000000..818c422 --- /dev/null +++ b/3rdparty/gocr-0.48/src/tga.c @@ -0,0 +1,87 @@ +/* +This is a Optical-Character-Recognition program +Copyright (C) 1999 Joerg Schulenburg + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + see README for EMAIL-address +*/ + +#include +#include +#include + +#include "tga.h" + +typedef unsigned char byte; + +// --- needed for reading TGA-files +#if 0 +char read_b(FILE *f1){ // filter #-comments + char c; + c=fgetc(f1); assert(!feof(f1)); assert(!ferror(f1)); + return c; +} +#endif + +//byte tga[18]={ 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,24,32}; +/* header_hex= 00 00 02 00 00 00 00 00 00 00 00 00 xl xh yl yh + * 18 20 -- -- -- -- -- -- -- -- -- -- -- -- -- -- */ + +void readtga(char *name,pix *p,int mode){ // see pcx.format.txt + // mode: 0=gray,1=RGB + int nx,ny,i,x,y; + FILE *f1; + unsigned char *pic,h[18]; + + f1=fopen(name,"rb"); if(!f1) fprintf(stderr," error opening file\n"); + assert(f1); // open-error + assert(fread(h,1,18,f1)==18); /* 18 Byte lesen -> h[] */ + assert(h[ 0]== 0); // TGA0 + assert(h[ 1]== 0); // TGA1 + assert(h[ 2]== 2); // TGA2 no run length encoding + for(i=3;i<12;i++) + assert(h[ i]== 0); // ??? + assert(h[16]==0x18); // TGA16 + assert(h[17]==0x20); // TGA17 + nx = h[12] + (h[13]<<8); /* x-dimension low high */ + ny = h[14] + (h[15]<<8); /* y-dimension low high */ + fprintf(stderr,"# TGA version=%d x=%d y=%d", h[2],nx,ny ); + fflush(stdout); + pic=(unsigned char *)malloc( 3*nx*ny ); + assert(pic!=NULL); // no memory + assert(ny==(int)fread(pic,3*nx,ny,f1)); // read all lines BGR + if(mode==0) + { + for(y=0;y gray */ + for(x=0;x RGB */ + for(x=0;xp=pic; p->x=nx; p->y=ny; p->bpp=1+2*mode; + fprintf(stderr," mode=%d\n",mode); +} + +// ------------------------------------------------------------------------ + diff --git a/3rdparty/gocr-0.48/src/tga.h b/3rdparty/gocr-0.48/src/tga.h new file mode 100644 index 0000000..1bdd1a6 --- /dev/null +++ b/3rdparty/gocr-0.48/src/tga.h @@ -0,0 +1,6 @@ + +#include "pnm.h" + +void readtga(char *name,pix *p,int mode); // mode: 0=gray 1=RGB + +// ------------------------------------------------------------------------ diff --git a/3rdparty/gocr-0.48/src/unicode.c b/3rdparty/gocr-0.48/src/unicode.c new file mode 100644 index 0000000..d8ed703 --- /dev/null +++ b/3rdparty/gocr-0.48/src/unicode.c @@ -0,0 +1,1314 @@ +/* +This is a Optical-Character-Recognition program +Copyright (C) 2000-2007 Joerg Schulenburg + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + see README for EMAIL-address + */ + +#include "unicode.h" +#include + +/* FIXME jb global */ +int warn=0; /* if 1 a message is generated if composition is not defined */ + +/* Arguments: the character (main), and the modifier (accent, etc). See the + function if you want to know the modifiers. + Description: This function intends to be a small helper, to avoid having + to write switches in functions. It's therefore mainly to accents, and + specially for the most usual ones. It supports the basic greek + characters too, which is actually not very helpful. + Returns: the unicode character corresponding to the composed character. + + ToDo: + - It seems to me, that tables should be more effectiv. + So we should use tables in future? (js) + */ +wchar_t compose(wchar_t main, wchar_t modifier) { +/* supported by now: part of ISO8859-1, basic greek characters */ + if( main == UNKNOWN || main == PICTURE ) return main; +#ifdef DEBUG + if(modifier!=UNICODE_NULL && modifier!=SPACE) + printf(" compose(%c,%d)",(char)main,(int)modifier); +#endif + if(main>127 && modifier!=0 && modifier!=SPACE && warn) + fprintf(stderr,"# Warning compose %04x + %04x>127\n", + (int)modifier,(int)main); + switch (modifier) { + case UNICODE_NULL: + case SPACE: + return (wchar_t)main; + + case APOSTROPHE: /* do NOT USE this. It's here for compatibility only. + Use ACUTE_ACCENT instead. */ + fprintf( stderr, "COMPOSE: got APOSTROPHE instead of ACUTE_ACCENT"); + + case ACUTE_ACCENT: /* acute/cedilla */ + switch (main) { + case 'a': return LATIN_SMALL_LETTER_A_WITH_ACUTE; + case 'A': return LATIN_CAPITAL_LETTER_A_WITH_ACUTE; + case LATIN_SMALL_LETTER_AE: return LATIN_SMALL_LETTER_AE_WITH_ACUTE; + case LATIN_CAPITAL_LETTER_AE: return LATIN_CAPITAL_LETTER_AE_WITH_ACUTE; + case 'c': return LATIN_SMALL_LETTER_C_WITH_ACUTE; + case 'C': return LATIN_CAPITAL_LETTER_C_WITH_ACUTE; + case 'e': return LATIN_SMALL_LETTER_E_WITH_ACUTE; + case 'E': return LATIN_CAPITAL_LETTER_E_WITH_ACUTE; + case 'g': return LATIN_SMALL_LETTER_G_WITH_ACUTE; + case 'G': return LATIN_CAPITAL_LETTER_G_WITH_ACUTE; + case 'i': return LATIN_SMALL_LETTER_I_WITH_ACUTE; + case 'I': return LATIN_CAPITAL_LETTER_I_WITH_ACUTE; + case 'l': return LATIN_SMALL_LETTER_L_WITH_ACUTE; + case 'L': return LATIN_CAPITAL_LETTER_L_WITH_ACUTE; + case 'n': return LATIN_SMALL_LETTER_N_WITH_ACUTE; + case 'N': return LATIN_CAPITAL_LETTER_N_WITH_ACUTE; + case 'o': return LATIN_SMALL_LETTER_O_WITH_ACUTE; + case 'O': return LATIN_CAPITAL_LETTER_O_WITH_ACUTE; + case '0': return LATIN_CAPITAL_LETTER_O_WITH_ACUTE; + case 'r': return LATIN_SMALL_LETTER_R_WITH_ACUTE; + case 'R': return LATIN_CAPITAL_LETTER_R_WITH_ACUTE; + case 's': return LATIN_SMALL_LETTER_S_WITH_ACUTE; + case 'S': return LATIN_CAPITAL_LETTER_S_WITH_ACUTE; + case 'u': return LATIN_SMALL_LETTER_U_WITH_ACUTE; + case 'U': return LATIN_CAPITAL_LETTER_U_WITH_ACUTE; + case 'y': return LATIN_SMALL_LETTER_Y_WITH_ACUTE; + case 'Y': return LATIN_CAPITAL_LETTER_Y_WITH_ACUTE; + case 'z': return LATIN_SMALL_LETTER_Z_WITH_ACUTE; + case 'Z': return LATIN_CAPITAL_LETTER_Z_WITH_ACUTE; + default: + if(warn)fprintf( stderr, " COMPOSE: ACUTE_ACCENT+%04x not defined\n",(int)main); + } + break; + + case BREVE: /* caron (latin2) "u"-above-... (small bow) */ + switch (main) { + /* FIXME write separate heuristics for breve */ + case 'a': return LATIN_SMALL_LETTER_A_WITH_BREVE; + case 'A': return LATIN_CAPITAL_LETTER_A_WITH_BREVE; + case 'e': return LATIN_SMALL_LETTER_E_WITH_BREVE; + case 'E': return LATIN_CAPITAL_LETTER_E_WITH_BREVE; + case 'g': return LATIN_SMALL_LETTER_G_WITH_BREVE; + case 'G': return LATIN_CAPITAL_LETTER_G_WITH_BREVE; + case 'i': return LATIN_SMALL_LETTER_I_WITH_BREVE; + case 'I': return LATIN_CAPITAL_LETTER_I_WITH_BREVE; + case 'o': return LATIN_SMALL_LETTER_O_WITH_BREVE; + case 'O': return LATIN_CAPITAL_LETTER_O_WITH_BREVE; + case 'u': return LATIN_SMALL_LETTER_U_WITH_BREVE; + case 'U': return LATIN_CAPITAL_LETTER_U_WITH_BREVE; + default: + if(warn)fprintf( stderr, " COMPOSE: BREVE+%04x not defined\n",(int)main); + } + break; + + case CARON: /* caron (latin2) "v"-above-... */ + switch (main) { + case 'a': return LATIN_SMALL_LETTER_A_WITH_CARON; + case 'A': return LATIN_CAPITAL_LETTER_A_WITH_CARON; + case 'c': return LATIN_SMALL_LETTER_C_WITH_CARON; + case 'C': return LATIN_CAPITAL_LETTER_C_WITH_CARON; + case 'e': return LATIN_SMALL_LETTER_E_WITH_CARON; + case 'E': return LATIN_CAPITAL_LETTER_E_WITH_CARON; + case 'i': return LATIN_SMALL_LETTER_I_WITH_CARON; + case 'I': return LATIN_CAPITAL_LETTER_I_WITH_CARON; + case 'o': return LATIN_SMALL_LETTER_O_WITH_CARON; + case 'O': return LATIN_CAPITAL_LETTER_O_WITH_CARON; + case '0': return LATIN_CAPITAL_LETTER_O_WITH_CARON; + case 's': return LATIN_SMALL_LETTER_S_WITH_CARON; + case 'S': return LATIN_CAPITAL_LETTER_S_WITH_CARON; + case 'u': return LATIN_SMALL_LETTER_U_WITH_CARON; + case 'U': return LATIN_CAPITAL_LETTER_U_WITH_CARON; + case 'z': return LATIN_SMALL_LETTER_Z_WITH_CARON; + case 'Z': return LATIN_CAPITAL_LETTER_Z_WITH_CARON; + default: + if(warn)fprintf( stderr, " COMPOSE: CARON+%04x not defined\n",(int)main); + } + break; + + case CEDILLA: + switch (main) { + case 'c': return LATIN_SMALL_LETTER_C_WITH_CEDILLA; + case 'C': return LATIN_CAPITAL_LETTER_C_WITH_CEDILLA; + default: + if(warn)fprintf( stderr, " COMPOSE: CEDILLA+%04x not defined\n",(int)main); + } + break; + + case TILDE: + switch (main) { + case 'a': return LATIN_SMALL_LETTER_A_WITH_TILDE; + case 'A': return LATIN_CAPITAL_LETTER_A_WITH_TILDE; + case 'i': return LATIN_SMALL_LETTER_I_WITH_TILDE; + case 'I': return LATIN_CAPITAL_LETTER_I_WITH_TILDE; + case 'n': return LATIN_SMALL_LETTER_N_WITH_TILDE; + case 'N': return LATIN_CAPITAL_LETTER_N_WITH_TILDE; + case 'o': return LATIN_SMALL_LETTER_O_WITH_TILDE; + case 'O': return LATIN_CAPITAL_LETTER_O_WITH_TILDE; + case '0': return LATIN_CAPITAL_LETTER_O_WITH_TILDE; + case 'u': return LATIN_SMALL_LETTER_U_WITH_TILDE; + case 'U': return LATIN_CAPITAL_LETTER_U_WITH_TILDE; + default: + if(warn)fprintf( stderr, " COMPOSE: TILDE+%04x not defined\n",(int)main); + } + break; + + case GRAVE_ACCENT: + switch (main) { + case 'a': return LATIN_SMALL_LETTER_A_WITH_GRAVE; + case 'A': return LATIN_CAPITAL_LETTER_A_WITH_GRAVE; + case 'e': return LATIN_SMALL_LETTER_E_WITH_GRAVE; + case 'E': return LATIN_CAPITAL_LETTER_E_WITH_GRAVE; + case 'i': return LATIN_SMALL_LETTER_I_WITH_GRAVE; + case 'I': return LATIN_CAPITAL_LETTER_I_WITH_GRAVE; + case 'n': return LATIN_SMALL_LETTER_N_WITH_GRAVE; + case 'N': return LATIN_CAPITAL_LETTER_N_WITH_GRAVE; + case 'o': return LATIN_SMALL_LETTER_O_WITH_GRAVE; + case 'O': return LATIN_CAPITAL_LETTER_O_WITH_GRAVE; + case '0': return LATIN_CAPITAL_LETTER_O_WITH_GRAVE; + case 'u': return LATIN_SMALL_LETTER_U_WITH_GRAVE; + case 'U': return LATIN_CAPITAL_LETTER_U_WITH_GRAVE; + default: + if(warn)fprintf( stderr, " COMPOSE: GRAVE_ACCENT+%04x not defined\n",(int)main); + } + break; + + case QUOTATION_MARK: /* do NOT USE this. It's here for compatibility only. + Use DIAERESIS instead. */ + fprintf( stderr, "COMPOSE: got APOSTROPHE instead of ACUTE_ACCENT"); + + case DIAERESIS: + switch (main) { + case 'a': return LATIN_SMALL_LETTER_A_WITH_DIAERESIS; + case 'A': return LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS; + case 'e': return LATIN_SMALL_LETTER_E_WITH_DIAERESIS; + case 'E': return LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS; + case 'i': return LATIN_SMALL_LETTER_I_WITH_DIAERESIS; + case 'I': return LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS; + case 'o': return LATIN_SMALL_LETTER_O_WITH_DIAERESIS; + case 'O': return LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS; + case '0': return LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS; + case 'u': return LATIN_SMALL_LETTER_U_WITH_DIAERESIS; + case 'U': return LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS; + case 'y': return LATIN_SMALL_LETTER_Y_WITH_DIAERESIS; + case 'Y': return LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS; + default: + if(warn)fprintf( stderr, " COMPOSE: DIAERESIS+%04x (%c) not defined\n",(int)main,(char)main); + } + break; + + case CIRCUMFLEX_ACCENT: /* ^ */ + switch (main) { + case 'a': return LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX; + case 'A': return LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX; + case 'c': return LATIN_SMALL_LETTER_C_WITH_CIRCUMFLEX; + case 'C': return LATIN_CAPITAL_LETTER_C_WITH_CIRCUMFLEX; + case 'e': return LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX; + case 'E': return LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX; + case 'g': return LATIN_SMALL_LETTER_G_WITH_CIRCUMFLEX; + case 'G': return LATIN_CAPITAL_LETTER_G_WITH_CIRCUMFLEX; + case 'h': return LATIN_SMALL_LETTER_H_WITH_CIRCUMFLEX; + case 'H': return LATIN_CAPITAL_LETTER_H_WITH_CIRCUMFLEX; + case 'i': return LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX; + case 'I': return LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX; + case 'j': return LATIN_SMALL_LETTER_J_WITH_CIRCUMFLEX; + case 'J': return LATIN_CAPITAL_LETTER_J_WITH_CIRCUMFLEX; + case 'o': return LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX; + case 'O': return LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX; + case '0': return LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX; + case 's': return LATIN_SMALL_LETTER_S_WITH_CIRCUMFLEX; + case 'S': return LATIN_CAPITAL_LETTER_S_WITH_CIRCUMFLEX; + case 'u': return LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX; + case 'U': return LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX; + case 'w': return LATIN_SMALL_LETTER_W_WITH_CIRCUMFLEX; + case 'W': return LATIN_CAPITAL_LETTER_W_WITH_CIRCUMFLEX; + case 'y': return LATIN_SMALL_LETTER_Y_WITH_CIRCUMFLEX; + case 'Y': return LATIN_CAPITAL_LETTER_Y_WITH_CIRCUMFLEX; + default: + if(warn)fprintf( stderr, " COMPOSE: CIRCUMFLEX_ACCENT+%04x not defined\n",(int)main); + } + break; + + case MACRON: /* a minus sign above the char (latin2) */ + switch (main) { + case 'a': return LATIN_SMALL_LETTER_A_WITH_MACRON; + case 'A': return LATIN_CAPITAL_LETTER_A_WITH_MACRON; + case 'e': return LATIN_SMALL_LETTER_E_WITH_MACRON; + case 'E': return LATIN_CAPITAL_LETTER_E_WITH_MACRON; + case 'i': return LATIN_SMALL_LETTER_I_WITH_MACRON; + case 'I': return LATIN_CAPITAL_LETTER_I_WITH_MACRON; + case 'o': return LATIN_SMALL_LETTER_O_WITH_MACRON; + case 'O': return LATIN_CAPITAL_LETTER_O_WITH_MACRON; + case 'u': return LATIN_SMALL_LETTER_U_WITH_MACRON; + case 'U': return LATIN_CAPITAL_LETTER_U_WITH_MACRON; + case 'y': return LATIN_SMALL_LETTER_Y_WITH_MACRON; + case 'Y': return LATIN_CAPITAL_LETTER_Y_WITH_MACRON; + case LATIN_SMALL_LETTER_AE: return LATIN_SMALL_LETTER_AE_WITH_MACRON; + case LATIN_CAPITAL_LETTER_AE: return LATIN_CAPITAL_LETTER_AE_WITH_MACRON; + case '=': return IDENTICAL_TO; + case '-': return '='; + case ' ': return MODIFIER_LETTER_MACRON; + default: + if(warn)fprintf( stderr, " COMPOSE: MACRON+%04x not defined\n",(int)main); + } + break; + + case DOT_ABOVE: /* latin2 */ + switch (main) { + case 'a': return LATIN_SMALL_LETTER_A_WITH_DOT_ABOVE; + case 'A': return LATIN_CAPITAL_LETTER_A_WITH_DOT_ABOVE; + case 'c': return LATIN_SMALL_LETTER_C_WITH_DOT_ABOVE; + case 'C': return LATIN_CAPITAL_LETTER_C_WITH_DOT_ABOVE; + case 'e': return LATIN_SMALL_LETTER_E_WITH_DOT_ABOVE; + case 'E': return LATIN_CAPITAL_LETTER_E_WITH_DOT_ABOVE; + case 'g': return LATIN_SMALL_LETTER_G_WITH_DOT_ABOVE; + case 'G': return LATIN_CAPITAL_LETTER_G_WITH_DOT_ABOVE; + case 'l': return 'i'; /* correct wrong recognition */ + case 'i': return 'i'; + case LATIN_SMALL_LETTER_DOTLESS_I: return 'i'; + case 'I': return LATIN_CAPITAL_LETTER_I_WITH_DOT_ABOVE; + case 'j': return 'j'; + case 'o': return LATIN_SMALL_LETTER_O_WITH_DOT_ABOVE; + case 'O': return LATIN_CAPITAL_LETTER_O_WITH_DOT_ABOVE; + case 'z': return LATIN_SMALL_LETTER_Z_WITH_DOT_ABOVE; + case 'Z': return LATIN_CAPITAL_LETTER_Z_WITH_DOT_ABOVE; + case ',': return ';'; + case '.': return ':'; + default: + if(warn)fprintf( stderr, " COMPOSE: DOT_ABOVE+%04x not defined\n",(int)main); + } + break; + + case RING_ABOVE: + switch (main) { + case 'a': return LATIN_SMALL_LETTER_A_WITH_RING_ABOVE; + case 'A': return LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE; + case 'u': return LATIN_SMALL_LETTER_U_WITH_RING_ABOVE; + case 'U': return LATIN_CAPITAL_LETTER_U_WITH_RING_ABOVE; + default: + if(warn)fprintf( stderr, " COMPOSE: RING_ABOVE+%04x not defined\n",(int)main); + } + break; + + case 'e': /* e ligatures: ae, oe. */ + case 'E': + switch (main) { + case 'a': return LATIN_SMALL_LETTER_AE; + case 'A': return LATIN_CAPITAL_LETTER_AE; + case 'o': return LATIN_SMALL_LIGATURE_OE; + case 'O': return LATIN_CAPITAL_LIGATURE_OE; + case '0': return LATIN_CAPITAL_LIGATURE_OE; + default: + if(warn)fprintf( stderr, " COMPOSE: %04x+e/E not defined\n",(int)main); + } + break; + + case 'g': /* greek */ + switch (main) { + /* missing 0x37A-0x390 */ + /* weird cases: Q -> theta (it resembles a little, doesn't it?) + V -> psi (what can I do?) */ + case 'A': return GREEK_CAPITAL_LETTER_ALPHA; + case 'B': return GREEK_CAPITAL_LETTER_BETA; + case 'G': return GREEK_CAPITAL_LETTER_GAMMA; + case 'D': return GREEK_CAPITAL_LETTER_DELTA; + case 'E': return GREEK_CAPITAL_LETTER_EPSILON; + case 'Z': return GREEK_CAPITAL_LETTER_ZETA; + case 'H': return GREEK_CAPITAL_LETTER_ETA; + case 'Q': return GREEK_CAPITAL_LETTER_THETA; + case 'I': return GREEK_CAPITAL_LETTER_IOTA; + case 'K': return GREEK_CAPITAL_LETTER_KAPPA; + case 'L': return GREEK_CAPITAL_LETTER_LAMDA; + case 'M': return GREEK_CAPITAL_LETTER_MU; + case 'N': return GREEK_CAPITAL_LETTER_NU; + case 'X': return GREEK_CAPITAL_LETTER_XI; + case 'O': return GREEK_CAPITAL_LETTER_OMICRON; + case 'P': return GREEK_CAPITAL_LETTER_PI; + case 'R': return GREEK_CAPITAL_LETTER_RHO; + case 'S': return GREEK_CAPITAL_LETTER_SIGMA; + case 'T': return GREEK_CAPITAL_LETTER_TAU; + case 'Y': return GREEK_CAPITAL_LETTER_UPSILON; + case 'F': return GREEK_CAPITAL_LETTER_PHI; + case 'C': return GREEK_CAPITAL_LETTER_CHI; + case 'V': return GREEK_CAPITAL_LETTER_PSI; + case 'W': return GREEK_CAPITAL_LETTER_OMEGA; +/* + case '': return GREEK_CAPITAL_LETTER_IOTA_WITH_DIALYTIKA; + case '': return GREEK_CAPITAL_LETTER_UPSILON_WITH_DIALYTIKA; + case '': return GREEK_SMALL_LETTER_ALPHA_WITH_TONOS; + case '': return GREEK_SMALL_LETTER_EPSILON_WITH_TONOS; + case '': return GREEK_SMALL_LETTER_ETA_WITH_TONOS; + case '': return GREEK_SMALL_LETTER_IOTA_WITH_TONOS; + case '': return GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA_AND_TONOS; +*/ + case 'a': return GREEK_SMALL_LETTER_ALPHA; + case 'b': return GREEK_SMALL_LETTER_BETA; + case 'g': return GREEK_SMALL_LETTER_GAMMA; + case 'd': return GREEK_SMALL_LETTER_DELTA; + case 'e': return GREEK_SMALL_LETTER_EPSILON; + case 'z': return GREEK_SMALL_LETTER_ZETA; + case 'h': return GREEK_SMALL_LETTER_ETA; + case 'q': return GREEK_SMALL_LETTER_THETA; + case 'i': return GREEK_SMALL_LETTER_IOTA; + case 'k': return GREEK_SMALL_LETTER_KAPPA; + case 'l': return GREEK_SMALL_LETTER_LAMDA; + case 'm': return GREEK_SMALL_LETTER_MU; + case 'n': return GREEK_SMALL_LETTER_NU; + case 'x': return GREEK_SMALL_LETTER_XI; + case 'o': return GREEK_SMALL_LETTER_OMICRON; + case 'p': return GREEK_SMALL_LETTER_PI; + case 'r': return GREEK_SMALL_LETTER_RHO; + case '&': return GREEK_SMALL_LETTER_FINAL_SIGMA; + case 's': return GREEK_SMALL_LETTER_SIGMA; + case 't': return GREEK_SMALL_LETTER_TAU; + case 'y': return GREEK_SMALL_LETTER_UPSILON; + case 'f': return GREEK_SMALL_LETTER_PHI; + case 'c': return GREEK_SMALL_LETTER_CHI; + case 'v': return GREEK_SMALL_LETTER_PSI; + case 'w': return GREEK_SMALL_LETTER_OMEGA; +/* + case '': return GREEK_SMALL_LETTER_IOTA_WITH_DIALYTIKA; + case '': return GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA; + case '': return GREEK_SMALL_LETTER_OMICRON_WITH_TONOS; + case '': return GREEK_SMALL_LETTER_UPSILON_WITH_TONOS; + case '': return GREEK_SMALL_LETTER_OMEGA_WITH_TONOS; + case '': return GREEK_BETA_SYMBOL; + case '': return GREEK_THETA_SYMBOL; + case '': return GREEK_UPSILON_WITH_HOOK_SYMBOL; + case '': return GREEK_UPSILON_WITH_ACUTE_AND_HOOK_SYMBOL; + case '': return GREEK_UPSILON_WITH_DIAERESIS_AND_HOOK_SYMBOL; + case '': return GREEK_PHI_SYMBOL; + case '': return GREEK_PI_SYMBOL; +*/ + default: + if(warn)fprintf( stderr, " COMPOSE: GREEK %04x not defined\n",(int)main); + } + break; + + default: + fprintf( stderr, " COMPOSE: modifier %04x not defined\n",(int)modifier); + } + return (wchar_t)main; +} + +#define UNDEFINED "~" + +/* Arguments: character in Unicode format, type of format to convert to. + Returns: a string containing the Unicode character converted to the chosen + format. This string is statically allocated and should not be freed. + ToDo: better using tables? + */ +const char *decode(wchar_t c, FORMAT type) { + /* static char d; --- js: big bug (missing \0) if &d returned */ + /*FIXME jb static*/ static char bbuf[8*32]; /* space for 8 buffers, rotating */ + /*FIXME jb static*/ static char *buf=bbuf; /* used for UTF8 sequences and undefined codes */ + buf+=32; if(buf>=bbuf+8*32) buf=bbuf; + buf[0]=buf[1]=buf[2]=0; + switch (type) { + case ISO8859_1: + if ( c <= 0xFF ) { /* UNICODE == ISO8859-1 */ + buf[0] = (char)c; + return buf; + } + switch (c) { /* not found in list, but perhaps we can describe it */ + /* todo: add greek. GREEK_SMALL_LETTER_ALPHA = alpha */ + + /* general puctuation */ + case HYPHEN: + return (const char *)"-"; + case FIGURE_DASH: + case EN_DASH: + return (const char *)"--"; + case EM_DASH: + return (const char *)"---"; + case LEFT_SINGLE_QUOTATION_MARK: + return (const char *)"`"; + case RIGHT_SINGLE_QUOTATION_MARK: + return (const char *)"'"; + case SINGLE_LOW_9_QUOTATION_MARK: + return (const char *)","; + case SINGLE_HIGH_REVERSED_9_QUOTATION_MARK: + return (const char *)UNDEFINED; + case LEFT_DOUBLE_QUOTATION_MARK: + return (const char *)"``"; + case RIGHT_DOUBLE_QUOTATION_MARK: + return (const char *)"''"; + case DOUBLE_LOW_9_QUOTATION_MARK: + return (const char *)",,"; + case DOUBLE_HIGH_REVERSED_9_QUOTATION_MARK: + return (const char *)UNDEFINED; + case DAGGER: + return (const char *)"+"; + case DOUBLE_DAGGER: + return (const char *)"*"; + case BULLET: + return (const char *)"*"; + case TRIANGULAR_BULLET: + return (const char *)"*"; + case HYPHENATION_POINT: + return (const char *)"-"; + case HORIZONTAL_ELLIPSIS: + return (const char *)"..."; + case PER_MILLE_SIGN: + return (const char *)"%%"; /* awk! */ + case SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK: + return (const char *)"<"; + case SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK: + return (const char *)">"; + case EURO_CURRENCY_SIGN: + return (const char *)"EUR"; /* change it! */ + + /* ligatures */ + case LATIN_SMALL_LIGATURE_FF: + return (const char *)"ff"; + case LATIN_SMALL_LIGATURE_FI: + return (const char *)"fi"; + case LATIN_SMALL_LIGATURE_FL: + return (const char *)"fl"; + case LATIN_SMALL_LIGATURE_FFI: + return (const char *)"ffi"; + case LATIN_SMALL_LIGATURE_FFL: + return (const char *)"ffl"; + case LATIN_SMALL_LIGATURE_LONG_S_T: + case LATIN_SMALL_LIGATURE_ST: + return (const char *)"st"; + + /* extra */ + case UNKNOWN: + return (const char *)"_"; + case PICTURE: + return (const char *)"_"; /* Due to Mobile OCR */ + + default: + /* snprintf seems to be no standard, so I use insecure sprintf */ + sprintf(buf,"\\code(%04x)",(unsigned)c); + return buf; /* UNDEFINED; */ + } + break; + case TeX: + if ( c >= SPACE && c <= TILDE ) { /* ASCII */ + switch (c) { + case '$': + return (const char *)"\\$"; + case '&': + return (const char *)"\\&"; + case '%': + return (const char *)"\\%"; + case '#': + return (const char *)"\\#"; + case '_': + return (const char *)"\\_"; + case '{': + return (const char *)"\\{"; + case '}': + return (const char *)"\\}"; + case '\\': + return (const char *)"$\\backslash$"; + case '~': + return (const char *)"\\~{}"; + case '^': + return (const char *)"\\^{}"; + default: + buf[0] = (char)c; + return (const char *)buf; + } + } + switch (c) { + /* ISO8859_1 */ + case NO_BREAK_SPACE: + return (const char *)"~"; + case INVERTED_EXCLAMATION_MARK: + return (const char *)"!'"; + case CENT_SIGN: + return (const char *)"\\textcent"; /* \usepackage{textcomp} */ + case POUND_SIGN: + return (const char *)"\\pounds"; + case EURO_CURRENCY_SIGN: + return (const char *)"\\euro"; /* \usepackage{eurosans} */ + case CURRENCY_SIGN: + return (const char *)"\\textcurrency"; /* \usepackage{textcomp} */ + case YEN_SIGN: + return (const char *)"\\textyen"; /* \usepackage{textcomp} */ + case BROKEN_BAR: + return (const char *)"\\textbrokenbar"; /* \usepackage{textcomp} */ + case SECTION_SIGN: + return (const char *)"\\S"; + case DIAERESIS: + return (const char *)"\""; + case COPYRIGHT_SIGN: + return (const char *)"\\copyright"; + case FEMININE_ORDINAL_INDICATOR: + return (const char *)"$^{\\underbar{a}}$"; + case LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK: + return (const char *)"\\flqq{}"; + case NOT_SIGN: + return (const char *)"$\\lnot$"; + case SOFT_HYPHEN: + return (const char *)"\\-"; + case REGISTERED_SIGN: + return (const char *)"\\textregistered";/* \usepackage{textcomp} */ + case MACRON: + return (const char *)"\\textasciimacron";/* \usepackage{textcomp} */ + case DEGREE_SIGN: + return (const char *)"$^{o}$"; + case PLUS_MINUS_SIGN: + return (const char *)"$\\pm$"; + case SUPERSCRIPT_TWO: + return (const char *)"$^{2}$"; + case SUPERSCRIPT_THREE: + return (const char *)"$^{3}$"; + case ACUTE_ACCENT: + return (const char *)"\\( \\prime \\)"; + case MICRO_SIGN: + return (const char *)"$\\mu$"; + case PILCROW_SIGN: + return (const char *)"\\P"; + case MIDDLE_DOT: + return (const char *)"$\\cdot$"; + case CEDILLA: + return (const char *)"\\,"; + case SUPERSCRIPT_ONE: + return (const char *)"$^{1}$"; + case MASCULINE_ORDINAL_INDICATOR: + return (const char *)"$^{\\underbar{o}}$"; + case RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK: + return (const char *)"\\frqq{}"; + case VULGAR_FRACTION_ONE_QUARTER: /* these fractions are not good*/ + return (const char *)"\\( 1\\over 4 \\)"; + case VULGAR_FRACTION_ONE_HALF: + return (const char *)"\\( 1\\over 2 \\)"; + case VULGAR_FRACTION_THREE_QUARTERS: + return (const char *)"\\( 3\\over 4 \\)"; + case INVERTED_QUESTION_MARK: + return (const char *)"?'"; + case LATIN_CAPITAL_LETTER_A_WITH_GRAVE: + return (const char *)"\\`A"; + case LATIN_CAPITAL_LETTER_A_WITH_ACUTE: + return (const char *)"\\'A"; + case LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX: + return (const char *)"\\^A"; + case LATIN_CAPITAL_LETTER_A_WITH_TILDE: + return (const char *)"\\~A"; + case LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS: + return (const char *)"\\\"A"; + case LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE: + return (const char *)"\\AA"; + case LATIN_CAPITAL_LETTER_AE: + return (const char *)"\\AE"; + case LATIN_CAPITAL_LETTER_C_WITH_CARON: + return (const char *)"\\v{C}"; + case LATIN_CAPITAL_LETTER_C_WITH_CEDILLA: + return (const char *)"\\C"; + case LATIN_CAPITAL_LETTER_E_WITH_GRAVE: + return (const char *)"\\`E"; + case LATIN_CAPITAL_LETTER_E_WITH_ACUTE: + return (const char *)"\\'E"; + case LATIN_CAPITAL_LETTER_E_WITH_CARON: + return (const char *)"\\v{E}"; + case LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX: + return (const char *)"\\^E"; + case LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS: + return (const char *)"\\\"E"; + case LATIN_CAPITAL_LETTER_I_WITH_GRAVE: + return (const char *)"\\`I"; + case LATIN_CAPITAL_LETTER_I_WITH_ACUTE: + return (const char *)"\\'I"; + case LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX: + return (const char *)"\\^I"; + case LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS: + return (const char *)"\\\"I"; + case LATIN_CAPITAL_LETTER_ETH: + return (const char *)UNDEFINED; + case LATIN_CAPITAL_LETTER_N_WITH_TILDE: + return (const char *)"\\~N"; + case LATIN_CAPITAL_LETTER_O_WITH_GRAVE: + return (const char *)"\\`O"; + case LATIN_CAPITAL_LETTER_O_WITH_ACUTE: + return (const char *)"\\'O"; + case LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX: + return (const char *)"\\^O"; + case LATIN_CAPITAL_LETTER_O_WITH_TILDE: + return (const char *)"\\~O"; + case LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS: + return (const char *)"\\\"O"; + case MULTIPLICATION_SIGN: + return (const char *)"$\\times$"; + case LATIN_CAPITAL_LETTER_O_WITH_STROKE: + return (const char *)"\\O"; + case LATIN_CAPITAL_LETTER_S_WITH_CARON: + return (const char *)"\\v{S}"; + case LATIN_CAPITAL_LETTER_U_WITH_GRAVE: + return (const char *)"\\`U"; + case LATIN_CAPITAL_LETTER_U_WITH_ACUTE: + return (const char *)"\\'U"; + case LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX: + return (const char *)"\\^U"; + case LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS: + return (const char *)"\\\"U"; + case LATIN_CAPITAL_LETTER_Y_WITH_ACUTE: + return (const char *)"\\'Y"; + case LATIN_CAPITAL_LETTER_Z_WITH_CARON: + return (const char *)"\\v{Z}"; + case LATIN_CAPITAL_LETTER_THORN: + return (const char *)UNDEFINED; + case LATIN_SMALL_LETTER_SHARP_S: + return (const char *)"\\ss"; + case LATIN_SMALL_LETTER_A_WITH_GRAVE: + return (const char *)"\\`a"; + case LATIN_SMALL_LETTER_A_WITH_ACUTE: + return (const char *)"\\'a"; + case LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX: + return (const char *)"\\^a"; + case LATIN_SMALL_LETTER_A_WITH_TILDE: + return (const char *)"\\~a"; + case LATIN_SMALL_LETTER_A_WITH_DIAERESIS: + return (const char *)"\\\"a"; + case LATIN_SMALL_LETTER_A_WITH_RING_ABOVE: + return (const char *)"\\aa"; + case LATIN_SMALL_LETTER_AE: + return (const char *)"\\ae"; + case LATIN_SMALL_LETTER_C_WITH_CARON: + return (const char *)"\\v{c}"; + case LATIN_SMALL_LETTER_C_WITH_CEDILLA: + return (const char *)"\\c"; + case LATIN_SMALL_LETTER_E_WITH_GRAVE: + return (const char *)"\\`e"; + case LATIN_SMALL_LETTER_E_WITH_ACUTE: + return (const char *)"\\'e"; + case LATIN_SMALL_LETTER_E_WITH_CARON: + return (const char *)"\\v{e}"; + case LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX: + return (const char *)"\\^e"; + case LATIN_SMALL_LETTER_E_WITH_DIAERESIS: + return (const char *)"\\\"e"; + case LATIN_SMALL_LETTER_I_WITH_GRAVE: + return (const char *)"\\`i"; + case LATIN_SMALL_LETTER_I_WITH_ACUTE: + return (const char *)"\\'i"; + case LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX: + return (const char *)"\\^i"; + case LATIN_SMALL_LETTER_I_WITH_DIAERESIS: + return (const char *)"\\\"i"; + case LATIN_SMALL_LETTER_ETH: + return (const char *)UNDEFINED; + case LATIN_SMALL_LETTER_N_WITH_TILDE: + return (const char *)"\\~n"; + case LATIN_SMALL_LETTER_O_WITH_GRAVE: + return (const char *)"\\`o"; + case LATIN_SMALL_LETTER_O_WITH_ACUTE: + return (const char *)"\\'o"; + case LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX: + return (const char *)"\\^o"; + case LATIN_SMALL_LETTER_O_WITH_TILDE: + return (const char *)"\\~o"; + case LATIN_SMALL_LETTER_O_WITH_DIAERESIS: + return (const char *)"\\\"o"; + case DIVISION_SIGN: + return (const char *)"$\\div$"; + case LATIN_SMALL_LETTER_O_WITH_STROKE: + return (const char *)"\\o"; + case LATIN_SMALL_LETTER_S_WITH_CARON: + return (const char *)"\\v{s}"; + case LATIN_SMALL_LETTER_U_WITH_GRAVE: + return (const char *)"\\`u"; + case LATIN_SMALL_LETTER_U_WITH_ACUTE: + return (const char *)"\\'u"; + case LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX: + return (const char *)"\\^u"; + case LATIN_SMALL_LETTER_U_WITH_DIAERESIS: + return (const char *)"\\\"u"; + case LATIN_SMALL_LETTER_Y_WITH_ACUTE: + return (const char *)"\\'y"; + case LATIN_SMALL_LETTER_THORN: + return (const char *)UNDEFINED; + case LATIN_SMALL_LETTER_Y_WITH_DIAERESIS: + return (const char *)"\\\"y"; + case LATIN_SMALL_LETTER_Z_WITH_CARON: + return (const char *)"\\v{z}"; + + /* greek */ + /* some (punctuation, accents, accented capital) greek letters missing*/ + case GREEK_CAPITAL_LETTER_ALPHA: + return (const char *)"A"; + case GREEK_CAPITAL_LETTER_BETA: + return (const char *)"B"; + case GREEK_CAPITAL_LETTER_GAMMA: + return (const char *)"\\( \\Gamma \\)"; + case GREEK_CAPITAL_LETTER_DELTA: + return (const char *)"\\( \\Delta \\)"; + case GREEK_CAPITAL_LETTER_EPSILON: + return (const char *)"E"; + case GREEK_CAPITAL_LETTER_ZETA: + return (const char *)"Z"; + case GREEK_CAPITAL_LETTER_ETA: + return (const char *)"H"; + case GREEK_CAPITAL_LETTER_THETA: + return (const char *)"\\( \\Theta \\)"; + case GREEK_CAPITAL_LETTER_IOTA: + return (const char *)"I"; + case GREEK_CAPITAL_LETTER_KAPPA: + return (const char *)"K"; + case GREEK_CAPITAL_LETTER_LAMDA: + return (const char *)"\\( \\Lambda \\)"; + case GREEK_CAPITAL_LETTER_MU: + return (const char *)"M"; + case GREEK_CAPITAL_LETTER_NU: + return (const char *)"N"; + case GREEK_CAPITAL_LETTER_XI: + return (const char *)"\\( \\Xi \\)"; + case GREEK_CAPITAL_LETTER_OMICRON: + return (const char *)"O"; + case GREEK_CAPITAL_LETTER_PI: + return (const char *)"\\( \\Pi \\)"; + case GREEK_CAPITAL_LETTER_RHO: + return (const char *)"P"; + case GREEK_CAPITAL_LETTER_SIGMA: + return (const char *)"\\( \\Sigma \\)"; + case GREEK_CAPITAL_LETTER_TAU: + return (const char *)"T"; + case GREEK_CAPITAL_LETTER_UPSILON: + return (const char *)"\\( \\Upsilon \\)"; + case GREEK_CAPITAL_LETTER_PHI: + return (const char *)"\\( \\Phi \\)"; + case GREEK_CAPITAL_LETTER_CHI: + return (const char *)"\\( \\Chi \\)"; + case GREEK_CAPITAL_LETTER_PSI: + return (const char *)"\\( \\Psi \\)"; + case GREEK_CAPITAL_LETTER_OMEGA: + return (const char *)"\\( \\Omega \\)"; + case GREEK_CAPITAL_LETTER_IOTA_WITH_DIALYTIKA: + return (const char *)UNDEFINED; + case GREEK_CAPITAL_LETTER_UPSILON_WITH_DIALYTIKA: + return (const char *)UNDEFINED; + case GREEK_SMALL_LETTER_ALPHA_WITH_TONOS: + return (const char *)UNDEFINED; + case GREEK_SMALL_LETTER_EPSILON_WITH_TONOS: + return (const char *)UNDEFINED; + case GREEK_SMALL_LETTER_ETA_WITH_TONOS: + return (const char *)UNDEFINED; + case GREEK_SMALL_LETTER_IOTA_WITH_TONOS: + return (const char *)UNDEFINED; + case GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA_AND_TONOS: + return (const char *)UNDEFINED; + case GREEK_SMALL_LETTER_ALPHA: + return (const char *)"\\( \\alpha \\)"; + case GREEK_SMALL_LETTER_BETA: + return (const char *)"\\( \\beta \\)"; + case GREEK_SMALL_LETTER_GAMMA: + return (const char *)"\\( \\gamma \\)"; + case GREEK_SMALL_LETTER_DELTA: + return (const char *)"\\( \\delta \\)"; + case GREEK_SMALL_LETTER_EPSILON: + return (const char *)"\\( \\epsilon \\)"; + case GREEK_SMALL_LETTER_ZETA: + return (const char *)"\\( \\zeta \\)"; + case GREEK_SMALL_LETTER_ETA: + return (const char *)"\\( \\eta \\)"; + case GREEK_SMALL_LETTER_THETA: + return (const char *)"\\( \\theta \\)"; + case GREEK_SMALL_LETTER_IOTA: + return (const char *)"\\( \\iota \\)"; + case GREEK_SMALL_LETTER_KAPPA: + return (const char *)"\\( \\kappa \\)"; + case GREEK_SMALL_LETTER_LAMDA: + return (const char *)"\\( \\lambda \\)"; + case GREEK_SMALL_LETTER_MU: + return (const char *)"\\( \\mu \\)"; + case GREEK_SMALL_LETTER_NU: + return (const char *)"\\( \\nu \\)"; + case GREEK_SMALL_LETTER_XI: + return (const char *)"\\( \\xi \\)"; + case GREEK_SMALL_LETTER_OMICRON: + return (const char *)"\\( \\omicron \\)"; + case GREEK_SMALL_LETTER_PI: + return (const char *)"\\( \\pi \\)"; + case GREEK_SMALL_LETTER_RHO: + return (const char *)"\\( \\rho \\)"; + case GREEK_SMALL_LETTER_FINAL_SIGMA: + return (const char *)"\\( \\varsigma \\)"; + case GREEK_SMALL_LETTER_SIGMA: + return (const char *)"\\( \\sigma \\)"; + case GREEK_SMALL_LETTER_TAU: + return (const char *)"\\( \\tau \\)"; + case GREEK_SMALL_LETTER_UPSILON: + return (const char *)"\\( \\upsilon \\)"; + case GREEK_SMALL_LETTER_PHI: + return (const char *)"\\( \\varphi \\)"; + case GREEK_SMALL_LETTER_CHI: + return (const char *)"\\( \\chi \\)"; + case GREEK_SMALL_LETTER_PSI: + return (const char *)"\\( \\psi \\)"; + case GREEK_SMALL_LETTER_OMEGA: + return (const char *)"\\( \\omega \\)"; + case GREEK_SMALL_LETTER_IOTA_WITH_DIALYTIKA: + return (const char *)UNDEFINED; + case GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA: + return (const char *)UNDEFINED; + case GREEK_SMALL_LETTER_OMICRON_WITH_TONOS: + return (const char *)UNDEFINED; + case GREEK_SMALL_LETTER_UPSILON_WITH_TONOS: + return (const char *)UNDEFINED; + case GREEK_SMALL_LETTER_OMEGA_WITH_TONOS: + return (const char *)UNDEFINED; + case GREEK_BETA_SYMBOL: + return (const char *)UNDEFINED; + case GREEK_THETA_SYMBOL: + return (const char *)"\\( \\vartheta \\)"; + case GREEK_UPSILON_WITH_HOOK_SYMBOL: + return (const char *)UNDEFINED; + case GREEK_UPSILON_WITH_ACUTE_AND_HOOK_SYMBOL: + return (const char *)UNDEFINED; + case GREEK_UPSILON_WITH_DIAERESIS_AND_HOOK_SYMBOL: + return (const char *)UNDEFINED; + case GREEK_PHI_SYMBOL: + return (const char *)"\\( \\phi \\)"; + case GREEK_PI_SYMBOL: + return (const char *)"\\( \\varpi \\)"; + /* and some greek letters missing*/ + + /* punctuation (partial) */ + case HYPHEN: + return (const char *)"-"; + case NON_BREAKING_HYPHEN: + return (const char *)UNDEFINED; + case FIGURE_DASH: + case EN_DASH: + return (const char *)"--"; + case EM_DASH: + return (const char *)"---"; + case HORIZONTAL_BAR: + return (const char *)UNDEFINED; + case LEFT_SINGLE_QUOTATION_MARK: + return (const char *)"`"; + case RIGHT_SINGLE_QUOTATION_MARK: + return (const char *)"'"; + case SINGLE_LOW_9_QUOTATION_MARK: + return (const char *)"\\glq{}"; + case SINGLE_HIGH_REVERSED_9_QUOTATION_MARK: + return (const char *)UNDEFINED; + case LEFT_DOUBLE_QUOTATION_MARK: + return (const char *)"``"; + case RIGHT_DOUBLE_QUOTATION_MARK: + return (const char *)"''"; + case DOUBLE_LOW_9_QUOTATION_MARK: + return (const char *)"\\glqq{}"; + case DOUBLE_HIGH_REVERSED_9_QUOTATION_MARK: + return (const char *)UNDEFINED; + case DAGGER: + return (const char *)"\\dag"; + case DOUBLE_DAGGER: + return (const char *)"\\ddag"; + case BULLET: + return (const char *)"$\\bullet$"; + case TRIANGULAR_BULLET: + return (const char *)"$\\blacktriangleright"; + case HYPHENATION_POINT: + return (const char *)"\\-"; + case HORIZONTAL_ELLIPSIS: + return (const char *)"\\ldots"; + case PER_MILLE_SIGN: + return (const char *)UNDEFINED; + case SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK: + return (const char *)"\\flq{}"; + case SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK: + return (const char *)"\\frq{}"; + /* ligatures */ + case LATIN_SMALL_LIGATURE_FF: + return (const char *)"ff"; + case LATIN_SMALL_LIGATURE_FI: + return (const char *)"fi"; + case LATIN_SMALL_LIGATURE_FL: + return (const char *)"fl"; + case LATIN_SMALL_LIGATURE_FFI: + return (const char *)"ffi"; + case LATIN_SMALL_LIGATURE_FFL: + return (const char *)"ffl"; + case LATIN_SMALL_LIGATURE_LONG_S_T: + case LATIN_SMALL_LIGATURE_ST: + return (const char *)"st"; + /* reserved */ + case 0: + return (const char *)""; + case UNKNOWN: + return (const char *)"\\_"; + case PICTURE: + return (const char *)"(PICTURE)"; + default: + /* snprintf seems to be no standard, so I use insecure sprintf */ + sprintf(buf,"\\symbol{%u}",(unsigned)c); + return buf; /* UNDEFINED; */ + } + case HTML: + if ( c >= SPACE && c <= TILDE ) { /* ASCII */ + switch (c) { + case '&': + return (const char *)"&"; + /* semicolon must not be coded */ + case '\'': + return (const char *)"'"; + case '"': + return (const char *)"""; + case '<': + return (const char *)"<"; + case '>': + return (const char *)">"; + } + buf[0] = (char)c; + return buf; + } + switch (c) { + case PICTURE: + return (const char *)""; + case UNKNOWN: + return (const char *)"_"; /* better use colored symbol? */ + case LINE_FEED: + return (const char *)"
"; /* \n handled somwhere else? */ + case FORM_FEED: + case CARRIAGE_RETURN: + return (const char *)"
"; + case NO_BREAK_SPACE: + return (const char *)"
"; + case INVERTED_EXCLAMATION_MARK: + return (const char *)"¡"; + case CENT_SIGN: + return (const char *)"¢"; + case POUND_SIGN: + return (const char *)"£"; + case CURRENCY_SIGN: + return (const char *)"¤"; + case YEN_SIGN: + return (const char *)"¥"; + case BROKEN_BAR: + return (const char *)"¦"; + case SECTION_SIGN: + return (const char *)"§"; + case DIAERESIS: + return (const char *)"¨"; + case COPYRIGHT_SIGN: + return (const char *)"©"; + case FEMININE_ORDINAL_INDICATOR: + return (const char *)"ªem;"; + case LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK: + return (const char *)"«"; + case NOT_SIGN: + return (const char *)"¬"; + case SOFT_HYPHEN: + return (const char *)"­"; + case REGISTERED_SIGN: + return (const char *)"®"; + case MACRON: + return (const char *)"¯"; + case DEGREE_SIGN: + return (const char *)"°"; + case PLUS_MINUS_SIGN: + return (const char *)"±"; + case SUPERSCRIPT_TWO: + return (const char *)"²"; + case SUPERSCRIPT_THREE: + return (const char *)"³"; + case ACUTE_ACCENT: + return (const char *)"´"; + case MICRO_SIGN: + return (const char *)"µ"; + case PILCROW_SIGN: + return (const char *)"¶"; + case MIDDLE_DOT: + return (const char *)"·"; + case CEDILLA: + return (const char *)"¸"; + case SUPERSCRIPT_ONE: + return (const char *)"¹"; + case MASCULINE_ORDINAL_INDICATOR: + return (const char *)"º"; + case RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK: + return (const char *)"»"; + case VULGAR_FRACTION_ONE_QUARTER: + return (const char *)"¼"; + case VULGAR_FRACTION_ONE_HALF: + return (const char *)"½"; + case VULGAR_FRACTION_THREE_QUARTERS: + return (const char *)"¾"; + case INVERTED_QUESTION_MARK: + return (const char *)"¿"; + case LATIN_CAPITAL_LETTER_A_WITH_GRAVE: + return (const char *)"À"; + case LATIN_CAPITAL_LETTER_A_WITH_ACUTE: + return (const char *)"Á"; + case LATIN_CAPITAL_LETTER_A_WITH_BREVE: + return (const char *)"Ă"; + case LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX: + return (const char *)"Â"; + case LATIN_CAPITAL_LETTER_A_WITH_TILDE: + return (const char *)"Ã"; + case LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS: + return (const char *)"Ä"; + case LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE: + return (const char *)"Å"; + case LATIN_CAPITAL_LETTER_AE: + return (const char *)"Æ"; + case LATIN_CAPITAL_LETTER_C_WITH_CARON: + return (const char *)"Č"; + case LATIN_CAPITAL_LETTER_C_WITH_CEDILLA: + return (const char *)"Ç"; + case LATIN_CAPITAL_LETTER_E_WITH_GRAVE: + return (const char *)"È"; + case LATIN_CAPITAL_LETTER_E_WITH_ACUTE: + return (const char *)"É"; + case LATIN_CAPITAL_LETTER_E_WITH_CARON: + return (const char *)"Ě"; + case LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX: + return (const char *)"Ê"; + case LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS: + return (const char *)"Ë"; + case LATIN_CAPITAL_LETTER_I_WITH_GRAVE: + return (const char *)"Ì"; + case LATIN_CAPITAL_LETTER_I_WITH_ACUTE: + return (const char *)"Í"; + case LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX: + return (const char *)"Î"; + case LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS: + return (const char *)"Ï"; + case LATIN_CAPITAL_LETTER_ETH: + return (const char *)"Ð"; + case LATIN_CAPITAL_LETTER_N_WITH_TILDE: + return (const char *)"Ñ"; + case LATIN_CAPITAL_LETTER_O_WITH_GRAVE: + return (const char *)"Ò"; + case LATIN_CAPITAL_LETTER_O_WITH_ACUTE: + return (const char *)"Ó"; + case LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX: + return (const char *)"Ô"; + case LATIN_CAPITAL_LETTER_O_WITH_TILDE: + return (const char *)"Õ"; + case LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS: + return (const char *)"Ö"; + case MULTIPLICATION_SIGN: + return (const char *)"×"; + case LATIN_CAPITAL_LETTER_O_WITH_STROKE: + return (const char *)"Ø"; + case LATIN_CAPITAL_LETTER_S_WITH_CARON: + return (const char *)"Š"; + case LATIN_CAPITAL_LETTER_U_WITH_GRAVE: + return (const char *)"Ù"; + case LATIN_CAPITAL_LETTER_U_WITH_ACUTE: + return (const char *)"Ú"; + case LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX: + return (const char *)"Û"; + case LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS: + return (const char *)"Ü"; + case LATIN_CAPITAL_LETTER_Y_WITH_ACUTE: + return (const char *)"Ý"; + case LATIN_CAPITAL_LETTER_Z_WITH_CARON: + return (const char *)"Ž"; + case LATIN_CAPITAL_LETTER_THORN: + return (const char *)"Þ"; + case LATIN_SMALL_LETTER_SHARP_S: + return (const char *)"ß"; + case LATIN_SMALL_LETTER_A_WITH_GRAVE: + return (const char *)"à"; + case LATIN_SMALL_LETTER_A_WITH_ACUTE: + return (const char *)"á"; + case LATIN_SMALL_LETTER_A_WITH_BREVE: + return (const char *)"ă"; + case LATIN_SMALL_LETTER_A_WITH_CARON: + return (const char *)"&acaron;"; + case LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX: + return (const char *)"â"; + case LATIN_SMALL_LETTER_A_WITH_TILDE: + return (const char *)"ã"; + case LATIN_SMALL_LETTER_A_WITH_DIAERESIS: + return (const char *)"ä"; + case LATIN_SMALL_LETTER_A_WITH_RING_ABOVE: + return (const char *)"å"; + case LATIN_SMALL_LETTER_AE: + return (const char *)"æ"; + case LATIN_SMALL_LETTER_C_WITH_CARON: + return (const char *)"č"; + case LATIN_SMALL_LETTER_C_WITH_CEDILLA: + return (const char *)"ç"; + case LATIN_SMALL_LETTER_E_WITH_GRAVE: + return (const char *)"è"; + case LATIN_SMALL_LETTER_E_WITH_ACUTE: + return (const char *)"é"; + case LATIN_SMALL_LETTER_E_WITH_CARON: + return (const char *)"ě"; + case LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX: + return (const char *)"ê"; + case LATIN_SMALL_LETTER_E_WITH_DIAERESIS: + return (const char *)"ë"; + case LATIN_SMALL_LETTER_I_WITH_GRAVE: + return (const char *)"ì"; + case LATIN_SMALL_LETTER_I_WITH_ACUTE: + return (const char *)"í"; + case LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX: + return (const char *)"î"; + case LATIN_SMALL_LETTER_I_WITH_DIAERESIS: + return (const char *)"ï"; + case LATIN_SMALL_LETTER_ETH: + return (const char *)"ð"; + case LATIN_SMALL_LETTER_N_WITH_TILDE: + return (const char *)"ñ"; + case LATIN_SMALL_LETTER_O_WITH_GRAVE: + return (const char *)"ò"; + case LATIN_SMALL_LETTER_O_WITH_ACUTE: + return (const char *)"ó"; + case LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX: + return (const char *)"ô"; + case LATIN_SMALL_LETTER_O_WITH_TILDE: + return (const char *)"õ"; + case LATIN_SMALL_LETTER_O_WITH_DIAERESIS: + return (const char *)"ö"; + case DIVISION_SIGN: + return (const char *)"÷"; + case LATIN_SMALL_LETTER_O_WITH_STROKE: + return (const char *)"ø"; + case LATIN_SMALL_LETTER_S_WITH_CARON: + return (const char *)"š"; + case LATIN_SMALL_LETTER_U_WITH_GRAVE: + return (const char *)"ù"; + case LATIN_SMALL_LETTER_U_WITH_ACUTE: + return (const char *)"ú"; + case LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX: + return (const char *)"û"; + case LATIN_SMALL_LETTER_U_WITH_DIAERESIS: + return (const char *)"ü"; + case LATIN_SMALL_LETTER_Y_WITH_ACUTE: + return (const char *)"ý"; + case LATIN_SMALL_LETTER_THORN: + return (const char *)"þ"; + case LATIN_SMALL_LETTER_Y_WITH_DIAERESIS: + return (const char *)"ÿ"; + case LATIN_SMALL_LETTER_Z_WITH_CARON: + return (const char *)"ž"; + case EURO_CURRENCY_SIGN: + return (const char *)"€"; + case 0: + return (const char *)""; + default: + sprintf(buf,"&#%u;",(unsigned)c); + return buf; /* undefined */ + } + /* break; unreachable code */ + case XML: /* only 5 &xxx;-ENTITIES ar defined by default */ + if ( c >= SPACE && c <= TILDE ) { /* ASCII */ + switch (c) { + case '&': + return (const char *)"&"; + case '\'': + return (const char *)"'"; + case '"': + return (const char *)"""; + case '<': + return (const char *)"<"; + case '>': + return (const char *)">"; + } + buf[0] = (char)c; + return buf; + } + switch (c) { /* subject of change! */ + case PICTURE: + return (const char *)"(PICTURE)"; + case UNKNOWN: + return (const char *)"_"; /* better use colored symbol? */ + case LINE_FEED: /* \n handled somwhere else? */ + case FORM_FEED: + case CARRIAGE_RETURN: + return (const char *)"
"; + case NO_BREAK_SPACE: + return (const char *)"
"; + case 0: + return (const char *)""; + default: + sprintf(buf,"&#x%03x;",(unsigned)c); + return buf; /* undefined */ + } + /* break; unreachable code */ + case SGML: + switch (c) { + default: + sprintf(buf,"&#%u;",(unsigned)c); + return buf; /* UNDEFINED */ + } + /* break; unreachable code */ + case ASCII: /* mainly used for debugging */ + if ( c=='\n' || (c>= 0x20 && c <= 0x7F) ) { + buf[0] = (char)c; + return buf; + } + switch (c) { + /* extra */ + case UNKNOWN: + return (const char *)"(?)"; + case PICTURE: + return (const char *)"(?)"; + + default: + /* snprintf seems to be no standard, so I use insecure sprintf */ + if ((unsigned)c>255) sprintf(buf,"(0x%04x)",(unsigned)c); + else sprintf(buf,"(0x%02x)",(unsigned)c); + return buf; /* UNDEFINED; */ + } + /* break; unreachable code */ + default: /* use UTF8 as default, test with xterm -u8 */ + /* extra */ + if ( c == UNKNOWN ) return (const char *)"_"; + if ( c == PICTURE ) return (const char *)"_"; /* Due to Mobile OCR */ + if ( c <= (wchar_t)0x0000007F ) { /* UTF8 == 7bit ASCII */ + buf[0] = (char)c; + return buf; + } + if ( c <= (wchar_t)0x000007FF ) { /* UTF8 == 11bit */ + buf[0] = (char)(0xc0|((c>> 6) & 0x1f)); /* 110xxxxx */ + buf[1] = (char)(0x80|( c & 0x3f)); /* 10xxxxxx */ + buf[2] = (char)0; /* terminate string */ + return buf; + } + /* wchar_t is 16bit for Borland-C !? Jan07 */ + if ( c <= (wchar_t)0x0000FFFF ) { /* UTF8 == 16bit */ + buf[0] = (char)(0xe0|((c>>12) & 0x0f)); /* 1110xxxx */ + buf[1] = (char)(0x80|((c>> 6) & 0x3f)); /* 10xxxxxx */ + buf[2] = (char)(0x80|( c & 0x3f)); /* 10xxxxxx */ + buf[3] = (char)0; /* terminate string */ + return buf; + } + if ( c <= (wchar_t)0x001FFFFF ) { /* UTF8 == 21bit */ + buf[0] = (char)(0xf0|((c>>18) & 0x07)); /* 11110xxx */ + buf[1] = (char)(0x80|((c>>12) & 0x3f)); /* 10xxxxxx */ + buf[2] = (char)(0x80|((c>> 6) & 0x3f)); /* 10xxxxxx */ + buf[3] = (char)(0x80|( c & 0x3f)); /* 10xxxxxx */ + buf[4] = (char)0; /* terminate string */ + return buf; + } + if ( c <= (wchar_t)0x03FFFFFF ) { /* UTF8 == 26bit */ + buf[0] = (char)(0xf8|((c>>24) & 0x03)); /* 111110xx */ + buf[1] = (char)(0x80|((c>>18) & 0x3f)); /* 10xxxxxx */ + buf[2] = (char)(0x80|((c>>12) & 0x3f)); /* 10xxxxxx */ + buf[3] = (char)(0x80|((c>> 6) & 0x3f)); /* 10xxxxxx */ + buf[4] = (char)(0x80|( c & 0x3f)); /* 10xxxxxx */ + buf[5] = (char)0; /* terminate string */ + return buf; + } + if ( c <= (wchar_t)0x7FFFFFFF ) { /* UTF8 == 31bit */ + buf[0] = (char)(0xfc|((c>>30) & 0x01)); /* 1111110x */ + buf[1] = (char)(0x80|((c>>24) & 0x3f)); /* 10xxxxxx */ + buf[2] = (char)(0x80|((c>>18) & 0x3f)); /* 10xxxxxx */ + buf[3] = (char)(0x80|((c>>12) & 0x3f)); /* 10xxxxxx */ + buf[4] = (char)(0x80|((c>> 6) & 0x3f)); /* 10xxxxxx */ + buf[5] = (char)(0x80|( c & 0x3f)); /* 10xxxxxx */ + buf[6] = (char)0; /* terminate string */ + return buf; + } + return (const char *)UNDEFINED; + } +} diff --git a/3rdparty/gocr-0.48/src/unicode.h b/3rdparty/gocr-0.48/src/unicode.h new file mode 100644 index 0000000..563a30d --- /dev/null +++ b/3rdparty/gocr-0.48/src/unicode.h @@ -0,0 +1,1257 @@ +/* +This is a Optical-Character-Recognition program +Copyright (C) 2000-2007 Joerg Schulenburg + + The character codes in this file are Copyright (c) 1991-1999 Unicode, Inc. + All Rights reserved. + + This file is provided as-is by Unicode, Inc. (The Unicode Consortium). + No claims are made as to fitness for any particular purpose. No + warranties of any kind are expressed or implied. The recipient + agrees to determine applicability of information provided. If this + file has been provided on optical media by Unicode, Inc., the sole + remedy for any claim will be exchange of defective media within 90 + days of receipt. + + Unicode, Inc. hereby grants the right to freely use the information + supplied in this file in the creation of products supporting the + Unicode Standard, and to make copies of this file in any form for + internal or external distribution as long as this notice remains + attached. + +For the rest of the file, the following applies: + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + see README for EMAIL-address + */ + +/* + Only the codes judged necessary by the developers are present in this + file. It conforms with MES-1. You'll find also Greek characters, + mathematical symbols and some extra symbols. + + Use the following regular expression to help add new codes from the + Unicode data files: ([\w\s]*);([\w\s]*);[^\n]* +*/ + +#ifndef G_UNICODE_H +#define G_UNICODE_H + +#include + +enum format { + ISO8859_1, TeX, HTML, XML, SGML, UTF8, ASCII +}; +typedef enum format FORMAT; + +/* + * Prototypes + */ +wchar_t compose(wchar_t main, wchar_t modifier); +const char *decode(wchar_t c, FORMAT type); + +/* + * Unicode codes + */ + +/* E000-F8FF are for private use. We'll reserve E000-E0FF by now. */ +/* the next line isnt proper, but was the easiest way to fix a problem */ +#ifndef UNKNOWN +#define UNKNOWN 0xE000 +#endif +#define PICTURE 0xE001 +#define HEADER_FILE 0xE010 + +/* most codes 0x00-0x1F are not needed, but we provide them anyway. U0000 had + the name changed from NULL to UNICODE_NULL to avoid conflicts. */ +#define UNICODE_NULL 0x0000 +#define START_OF_HEADING 0x0001 +#define START_OF_TEXT 0x0002 +#define END_OF_TEXT 0x0003 +#define END_OF_TRANSMISSION 0x0004 +#define ENQUIRY 0x0005 +#define ACKNOWLEDGE 0x0006 +#define BELL 0x0007 +#define BACKSPACE 0x0008 +#define HORIZONTAL_TABULATION 0x0009 +#define LINE_FEED 0x000A +#define VERTICAL_TABULATION 0x000B +#define FORM_FEED 0x000C +#define CARRIAGE_RETURN 0x000D +#define SHIFT_OUT 0x000E +#define SHIFT_IN 0x000F +#define DATA_LINK_ESCAPE 0x0010 +#define DEVICE_CONTROL_ONE 0x0011 +#define DEVICE_CONTROL_TWO 0x0012 +#define DEVICE_CONTROL_THREE 0x0013 +#define DEVICE_CONTROL_FOUR 0x0014 +#define NEGATIVE_ACKNOWLEDGE 0x0015 +#define SYNCHRONOUS_IDLE 0x0016 +#define END_OF_TRANSMISSION_BLOCK 0x0017 +#define CANCEL 0x0018 +#define END_OF_MEDIUM 0x0019 +#define SUBSTITUTE 0x001A +#define ESCAPE 0x001B +#define FILE_SEPARATOR 0x001C +#define GROUP_SEPARATOR 0x001D +#define RECORD_SEPARATOR 0x001E +#define UNIT_SEPARATOR 0x001F + +/* ASCII */ +#define SPACE 0x0020 +#define EXCLAMATION_MARK 0x0021 +#define QUOTATION_MARK 0x0022 +#define NUMBER_SIGN 0x0023 +#define DOLLAR_SIGN 0x0024 +#define PERCENT_SIGN 0x0025 +#define AMPERSAND 0x0026 +#define APOSTROPHE 0x0027 +#define LEFT_PARENTHESIS 0x0028 +#define RIGHT_PARENTHESIS 0x0029 +#define ASTERISK 0x002A +#define PLUS_SIGN 0x002B +#define COMMA 0x002C +#define HYPHEN_MINUS 0x002D +#define FULL_STOP 0x002E +#define SOLIDUS 0x002F +#define DIGIT_ZERO 0x0030 +#define DIGIT_ONE 0x0031 +#define DIGIT_TWO 0x0032 +#define DIGIT_THREE 0x0033 +#define DIGIT_FOUR 0x0034 +#define DIGIT_FIVE 0x0035 +#define DIGIT_SIX 0x0036 +#define DIGIT_SEVEN 0x0037 +#define DIGIT_EIGHT 0x0038 +#define DIGIT_NINE 0x0039 +#define COLON 0x003A +#define SEMICOLON 0x003B +#define LESS_THAN_SIGN 0x003C +#define EQUALS_SIGN 0x003D +#define GREATER_THAN_SIGN 0x003E +#define QUESTION_MARK 0x003F +#define COMMERCIAL_AT 0x0040 +#define LATIN_CAPITAL_LETTER_A 0x0041 +#define LATIN_CAPITAL_LETTER_B 0x0042 +#define LATIN_CAPITAL_LETTER_C 0x0043 +#define LATIN_CAPITAL_LETTER_D 0x0044 +#define LATIN_CAPITAL_LETTER_E 0x0045 +#define LATIN_CAPITAL_LETTER_F 0x0046 +#define LATIN_CAPITAL_LETTER_G 0x0047 +#define LATIN_CAPITAL_LETTER_H 0x0048 +#define LATIN_CAPITAL_LETTER_I 0x0049 +#define LATIN_CAPITAL_LETTER_J 0x004A +#define LATIN_CAPITAL_LETTER_K 0x004B +#define LATIN_CAPITAL_LETTER_L 0x004C +#define LATIN_CAPITAL_LETTER_M 0x004D +#define LATIN_CAPITAL_LETTER_N 0x004E +#define LATIN_CAPITAL_LETTER_O 0x004F +#define LATIN_CAPITAL_LETTER_P 0x0050 +#define LATIN_CAPITAL_LETTER_Q 0x0051 +#define LATIN_CAPITAL_LETTER_R 0x0052 +#define LATIN_CAPITAL_LETTER_S 0x0053 +#define LATIN_CAPITAL_LETTER_T 0x0054 +#define LATIN_CAPITAL_LETTER_U 0x0055 +#define LATIN_CAPITAL_LETTER_V 0x0056 +#define LATIN_CAPITAL_LETTER_W 0x0057 +#define LATIN_CAPITAL_LETTER_X 0x0058 +#define LATIN_CAPITAL_LETTER_Y 0x0059 +#define LATIN_CAPITAL_LETTER_Z 0x005A +#define LEFT_SQUARE_BRACKET 0x005B +#define REVERSE_SOLIDUS 0x005C +#define RIGHT_SQUARE_BRACKET 0x005D +#define CIRCUMFLEX_ACCENT 0x005E +#define LOW_LINE 0x005F +#define GRAVE_ACCENT 0x0060 +#define LATIN_SMALL_LETTER_A 0x0061 +#define LATIN_SMALL_LETTER_B 0x0062 +#define LATIN_SMALL_LETTER_C 0x0063 +#define LATIN_SMALL_LETTER_D 0x0064 +#define LATIN_SMALL_LETTER_E 0x0065 +#define LATIN_SMALL_LETTER_F 0x0066 +#define LATIN_SMALL_LETTER_G 0x0067 +#define LATIN_SMALL_LETTER_H 0x0068 +#define LATIN_SMALL_LETTER_I 0x0069 +#define LATIN_SMALL_LETTER_J 0x006A +#define LATIN_SMALL_LETTER_K 0x006B +#define LATIN_SMALL_LETTER_L 0x006C +#define LATIN_SMALL_LETTER_M 0x006D +#define LATIN_SMALL_LETTER_N 0x006E +#define LATIN_SMALL_LETTER_O 0x006F +#define LATIN_SMALL_LETTER_P 0x0070 +#define LATIN_SMALL_LETTER_Q 0x0071 +#define LATIN_SMALL_LETTER_R 0x0072 +#define LATIN_SMALL_LETTER_S 0x0073 +#define LATIN_SMALL_LETTER_T 0x0074 +#define LATIN_SMALL_LETTER_U 0x0075 +#define LATIN_SMALL_LETTER_V 0x0076 +#define LATIN_SMALL_LETTER_W 0x0077 +#define LATIN_SMALL_LETTER_X 0x0078 +#define LATIN_SMALL_LETTER_Y 0x0079 +#define LATIN_SMALL_LETTER_Z 0x007A +#define LEFT_CURLY_BRACKET 0x007B +#define VERTICAL_LINE 0x007C +#define RIGHT_CURLY_BRACKET 0x007D +#define TILDE 0x007E + +/* codes 0x7F-0xBF are not needed */ +#define NO_BREAK_SPACE 0x00A0 +#define INVERTED_EXCLAMATION_MARK 0x00A1 +#define CENT_SIGN 0x00A2 +#define POUND_SIGN 0x00A3 +#define CURRENCY_SIGN 0x00A4 +#define YEN_SIGN 0x00A5 +#define BROKEN_BAR 0x00A6 +#define SECTION_SIGN 0x00A7 +#define DIAERESIS 0x00A8 +#define COPYRIGHT_SIGN 0x00A9 +#define FEMININE_ORDINAL_INDICATOR 0x00AA +#define LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00AB +#define NOT_SIGN 0x00AC +#define SOFT_HYPHEN 0x00AD +#define REGISTERED_SIGN 0x00AE +#define MACRON 0x00AF +#define DEGREE_SIGN 0x00B0 +#define PLUS_MINUS_SIGN 0x00B1 +#define SUPERSCRIPT_TWO 0x00B2 +#define SUPERSCRIPT_THREE 0x00B3 +#define ACUTE_ACCENT 0x00B4 +#define MICRO_SIGN 0x00B5 +#define PILCROW_SIGN 0x00B6 +#define MIDDLE_DOT 0x00B7 +#define CEDILLA 0x00B8 +#define SUPERSCRIPT_ONE 0x00B9 +#define MASCULINE_ORDINAL_INDICATOR 0x00BA +#define RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00BB +#define VULGAR_FRACTION_ONE_QUARTER 0x00BC +#define VULGAR_FRACTION_ONE_HALF 0x00BD +#define VULGAR_FRACTION_THREE_QUARTERS 0x00BE +#define INVERTED_QUESTION_MARK 0x00BF +#define LATIN_CAPITAL_LETTER_A_WITH_GRAVE 0x00C0 +#define LATIN_CAPITAL_LETTER_A_WITH_ACUTE 0x00C1 +#define LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX 0x00C2 +#define LATIN_CAPITAL_LETTER_A_WITH_TILDE 0x00C3 +#define LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS 0x00C4 +#define LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE 0x00C5 +#define LATIN_CAPITAL_LETTER_AE 0x00C6 +#define LATIN_CAPITAL_LETTER_C_WITH_CEDILLA 0x00C7 +#define LATIN_CAPITAL_LETTER_E_WITH_GRAVE 0x00C8 +#define LATIN_CAPITAL_LETTER_E_WITH_ACUTE 0x00C9 +#define LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX 0x00CA +#define LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS 0x00CB +#define LATIN_CAPITAL_LETTER_I_WITH_GRAVE 0x00CC +#define LATIN_CAPITAL_LETTER_I_WITH_ACUTE 0x00CD +#define LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX 0x00CE +#define LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS 0x00CF +#define LATIN_CAPITAL_LETTER_ETH 0x00D0 +#define LATIN_CAPITAL_LETTER_N_WITH_TILDE 0x00D1 +#define LATIN_CAPITAL_LETTER_O_WITH_GRAVE 0x00D2 +#define LATIN_CAPITAL_LETTER_O_WITH_ACUTE 0x00D3 +#define LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX 0x00D4 +#define LATIN_CAPITAL_LETTER_O_WITH_TILDE 0x00D5 +#define LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS 0x00D6 +#define MULTIPLICATION_SIGN 0x00D7 +#define LATIN_CAPITAL_LETTER_O_WITH_STROKE 0x00D8 +#define LATIN_CAPITAL_LETTER_U_WITH_GRAVE 0x00D9 +#define LATIN_CAPITAL_LETTER_U_WITH_ACUTE 0x00DA +#define LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX 0x00DB +#define LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS 0x00DC +#define LATIN_CAPITAL_LETTER_Y_WITH_ACUTE 0x00DD +#define LATIN_CAPITAL_LETTER_THORN 0x00DE +#define LATIN_SMALL_LETTER_SHARP_S 0x00DF +#define LATIN_SMALL_LETTER_A_WITH_GRAVE 0x00E0 +#define LATIN_SMALL_LETTER_A_WITH_ACUTE 0x00E1 +#define LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX 0x00E2 +#define LATIN_SMALL_LETTER_A_WITH_TILDE 0x00E3 +#define LATIN_SMALL_LETTER_A_WITH_DIAERESIS 0x00E4 +#define LATIN_SMALL_LETTER_A_WITH_RING_ABOVE 0x00E5 +#define LATIN_SMALL_LETTER_AE 0x00E6 +#define LATIN_SMALL_LETTER_C_WITH_CEDILLA 0x00E7 +#define LATIN_SMALL_LETTER_E_WITH_GRAVE 0x00E8 +#define LATIN_SMALL_LETTER_E_WITH_ACUTE 0x00E9 +#define LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX 0x00EA +#define LATIN_SMALL_LETTER_E_WITH_DIAERESIS 0x00EB +#define LATIN_SMALL_LETTER_I_WITH_GRAVE 0x00EC +#define LATIN_SMALL_LETTER_I_WITH_ACUTE 0x00ED +#define LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX 0x00EE +#define LATIN_SMALL_LETTER_I_WITH_DIAERESIS 0x00EF +#define LATIN_SMALL_LETTER_ETH 0x00F0 +#define LATIN_SMALL_LETTER_N_WITH_TILDE 0x00F1 +#define LATIN_SMALL_LETTER_O_WITH_GRAVE 0x00F2 +#define LATIN_SMALL_LETTER_O_WITH_ACUTE 0x00F3 +#define LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX 0x00F4 +#define LATIN_SMALL_LETTER_O_WITH_TILDE 0x00F5 +#define LATIN_SMALL_LETTER_O_WITH_DIAERESIS 0x00F6 +#define DIVISION_SIGN 0x00F7 +#define LATIN_SMALL_LETTER_O_WITH_STROKE 0x00F8 +#define LATIN_SMALL_LETTER_U_WITH_GRAVE 0x00F9 +#define LATIN_SMALL_LETTER_U_WITH_ACUTE 0x00FA +#define LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX 0x00FB +#define LATIN_SMALL_LETTER_U_WITH_DIAERESIS 0x00FC +#define LATIN_SMALL_LETTER_Y_WITH_ACUTE 0x00FD +#define LATIN_SMALL_LETTER_THORN 0x00FE +#define LATIN_SMALL_LETTER_Y_WITH_DIAERESIS 0x00FF + +/* latin extended-A */ +#define LATIN_CAPITAL_LETTER_A_WITH_MACRON 0x0100 +#define LATIN_SMALL_LETTER_A_WITH_MACRON 0x0101 +#define LATIN_CAPITAL_LETTER_A_WITH_BREVE 0x0102 +#define LATIN_SMALL_LETTER_A_WITH_BREVE 0x0103 +#define LATIN_CAPITAL_LETTER_A_WITH_OGONEK 0x0104 +#define LATIN_SMALL_LETTER_A_WITH_OGONEK 0x0105 +#define LATIN_CAPITAL_LETTER_C_WITH_ACUTE 0x0106 +#define LATIN_SMALL_LETTER_C_WITH_ACUTE 0x0107 +#define LATIN_CAPITAL_LETTER_C_WITH_CIRCUMFLEX 0x0108 +#define LATIN_SMALL_LETTER_C_WITH_CIRCUMFLEX 0x0109 +#define LATIN_CAPITAL_LETTER_C_WITH_DOT_ABOVE 0x010A +#define LATIN_SMALL_LETTER_C_WITH_DOT_ABOVE 0x010B +#define LATIN_CAPITAL_LETTER_C_WITH_CARON 0x010C +#define LATIN_SMALL_LETTER_C_WITH_CARON 0x010D +#define LATIN_CAPITAL_LETTER_D_WITH_CARON 0x010E +#define LATIN_SMALL_LETTER_D_WITH_CARON 0x010F +#define LATIN_CAPITAL_LETTER_D_WITH_STROKE 0x0110 +#define LATIN_SMALL_LETTER_D_WITH_STROKE 0x0111 +#define LATIN_CAPITAL_LETTER_E_WITH_MACRON 0x0112 +#define LATIN_SMALL_LETTER_E_WITH_MACRON 0x0113 +#define LATIN_CAPITAL_LETTER_E_WITH_BREVE 0x0114 +#define LATIN_SMALL_LETTER_E_WITH_BREVE 0x0115 +#define LATIN_CAPITAL_LETTER_E_WITH_DOT_ABOVE 0x0116 +#define LATIN_SMALL_LETTER_E_WITH_DOT_ABOVE 0x0117 +#define LATIN_CAPITAL_LETTER_E_WITH_OGONEK 0x0118 +#define LATIN_SMALL_LETTER_E_WITH_OGONEK 0x0119 +#define LATIN_CAPITAL_LETTER_E_WITH_CARON 0x011A +#define LATIN_SMALL_LETTER_E_WITH_CARON 0x011B +#define LATIN_CAPITAL_LETTER_G_WITH_CIRCUMFLEX 0x011C +#define LATIN_SMALL_LETTER_G_WITH_CIRCUMFLEX 0x011D +#define LATIN_CAPITAL_LETTER_G_WITH_BREVE 0x011E +#define LATIN_SMALL_LETTER_G_WITH_BREVE 0x011F +#define LATIN_CAPITAL_LETTER_G_WITH_DOT_ABOVE 0x0120 +#define LATIN_SMALL_LETTER_G_WITH_DOT_ABOVE 0x0121 +#define LATIN_CAPITAL_LETTER_G_WITH_CEDILLA 0x0122 +#define LATIN_SMALL_LETTER_G_WITH_CEDILLA 0x0123 +#define LATIN_CAPITAL_LETTER_H_WITH_CIRCUMFLEX 0x0124 +#define LATIN_SMALL_LETTER_H_WITH_CIRCUMFLEX 0x0125 +#define LATIN_CAPITAL_LETTER_H_WITH_STROKE 0x0126 +#define LATIN_SMALL_LETTER_H_WITH_STROKE 0x0127 +#define LATIN_CAPITAL_LETTER_I_WITH_TILDE 0x0128 +#define LATIN_SMALL_LETTER_I_WITH_TILDE 0x0129 +#define LATIN_CAPITAL_LETTER_I_WITH_MACRON 0x012A +#define LATIN_SMALL_LETTER_I_WITH_MACRON 0x012B +#define LATIN_CAPITAL_LETTER_I_WITH_BREVE 0x012C +#define LATIN_SMALL_LETTER_I_WITH_BREVE 0x012D +#define LATIN_CAPITAL_LETTER_I_WITH_OGONEK 0x012E +#define LATIN_SMALL_LETTER_I_WITH_OGONEK 0x012F +#define LATIN_CAPITAL_LETTER_I_WITH_DOT_ABOVE 0x0130 +#define LATIN_SMALL_LETTER_DOTLESS_I 0x0131 +#define LATIN_CAPITAL_LIGATURE_IJ 0x0132 +#define LATIN_SMALL_LIGATURE_IJ 0x0133 +#define LATIN_CAPITAL_LETTER_J_WITH_CIRCUMFLEX 0x0134 +#define LATIN_SMALL_LETTER_J_WITH_CIRCUMFLEX 0x0135 +#define LATIN_CAPITAL_LETTER_K_WITH_CEDILLA 0x0136 +#define LATIN_SMALL_LETTER_K_WITH_CEDILLA 0x0137 +#define LATIN_SMALL_LETTER_KRA 0x0138 +#define LATIN_CAPITAL_LETTER_L_WITH_ACUTE 0x0139 +#define LATIN_SMALL_LETTER_L_WITH_ACUTE 0x013A +#define LATIN_CAPITAL_LETTER_L_WITH_CEDILLA 0x013B +#define LATIN_SMALL_LETTER_L_WITH_CEDILLA 0x013C +#define LATIN_CAPITAL_LETTER_L_WITH_CARON 0x013D +#define LATIN_SMALL_LETTER_L_WITH_CARON 0x013E +#define LATIN_CAPITAL_LETTER_L_WITH_MIDDLE_DOT 0x013F +#define LATIN_SMALL_LETTER_L_WITH_MIDDLE_DOT 0x0140 +#define LATIN_CAPITAL_LETTER_L_WITH_STROKE 0x0141 +#define LATIN_SMALL_LETTER_L_WITH_STROKE 0x0142 +#define LATIN_CAPITAL_LETTER_N_WITH_ACUTE 0x0143 +#define LATIN_SMALL_LETTER_N_WITH_ACUTE 0x0144 +#define LATIN_CAPITAL_LETTER_N_WITH_CEDILLA 0x0145 +#define LATIN_SMALL_LETTER_N_WITH_CEDILLA 0x0146 +#define LATIN_CAPITAL_LETTER_N_WITH_CARON 0x0147 +#define LATIN_SMALL_LETTER_N_WITH_CARON 0x0148 +#define LATIN_SMALL_LETTER_N_PRECEDED_BY_APOSTROPHE 0x0149 +#define LATIN_CAPITAL_LETTER_ENG 0x014A +#define LATIN_SMALL_LETTER_ENG 0x014B +#define LATIN_CAPITAL_LETTER_O_WITH_MACRON 0x014C +#define LATIN_SMALL_LETTER_O_WITH_MACRON 0x014D +#define LATIN_CAPITAL_LETTER_O_WITH_BREVE 0x014E +#define LATIN_SMALL_LETTER_O_WITH_BREVE 0x014F +#define LATIN_CAPITAL_LETTER_O_WITH_DOUBLE_ACUTE 0x0150 +#define LATIN_SMALL_LETTER_O_WITH_DOUBLE_ACUTE 0x0151 +#define LATIN_CAPITAL_LIGATURE_OE 0x0152 +#define LATIN_SMALL_LIGATURE_OE 0x0153 +#define LATIN_CAPITAL_LETTER_R_WITH_ACUTE 0x0154 +#define LATIN_SMALL_LETTER_R_WITH_ACUTE 0x0155 +#define LATIN_CAPITAL_LETTER_R_WITH_CEDILLA 0x0156 +#define LATIN_SMALL_LETTER_R_WITH_CEDILLA 0x0157 +#define LATIN_CAPITAL_LETTER_R_WITH_CARON 0x0158 +#define LATIN_SMALL_LETTER_R_WITH_CARON 0x0159 +#define LATIN_CAPITAL_LETTER_S_WITH_ACUTE 0x015A +#define LATIN_SMALL_LETTER_S_WITH_ACUTE 0x015B +#define LATIN_CAPITAL_LETTER_S_WITH_CIRCUMFLEX 0x015C +#define LATIN_SMALL_LETTER_S_WITH_CIRCUMFLEX 0x015D +#define LATIN_CAPITAL_LETTER_S_WITH_CEDILLA 0x015E +#define LATIN_SMALL_LETTER_S_WITH_CEDILLA 0x015F +#define LATIN_CAPITAL_LETTER_S_WITH_CARON 0x0160 +#define LATIN_SMALL_LETTER_S_WITH_CARON 0x0161 +#define LATIN_CAPITAL_LETTER_T_WITH_CEDILLA 0x0162 +#define LATIN_SMALL_LETTER_T_WITH_CEDILLA 0x0163 +#define LATIN_CAPITAL_LETTER_T_WITH_CARON 0x0164 +#define LATIN_SMALL_LETTER_T_WITH_CARON 0x0165 +#define LATIN_CAPITAL_LETTER_T_WITH_STROKE 0x0166 +#define LATIN_SMALL_LETTER_T_WITH_STROKE 0x0167 +#define LATIN_CAPITAL_LETTER_U_WITH_TILDE 0x0168 +#define LATIN_SMALL_LETTER_U_WITH_TILDE 0x0169 +#define LATIN_CAPITAL_LETTER_U_WITH_MACRON 0x016A +#define LATIN_SMALL_LETTER_U_WITH_MACRON 0x016B +#define LATIN_CAPITAL_LETTER_U_WITH_BREVE 0x016C +#define LATIN_SMALL_LETTER_U_WITH_BREVE 0x016D +#define LATIN_CAPITAL_LETTER_U_WITH_RING_ABOVE 0x016E +#define LATIN_SMALL_LETTER_U_WITH_RING_ABOVE 0x016F +#define LATIN_CAPITAL_LETTER_U_WITH_DOUBLE_ACUTE 0x0170 +#define LATIN_SMALL_LETTER_U_WITH_DOUBLE_ACUTE 0x0171 +#define LATIN_CAPITAL_LETTER_U_WITH_OGONEK 0x0172 +#define LATIN_SMALL_LETTER_U_WITH_OGONEK 0x0173 +#define LATIN_CAPITAL_LETTER_W_WITH_CIRCUMFLEX 0x0174 +#define LATIN_SMALL_LETTER_W_WITH_CIRCUMFLEX 0x0175 +#define LATIN_CAPITAL_LETTER_Y_WITH_CIRCUMFLEX 0x0176 +#define LATIN_SMALL_LETTER_Y_WITH_CIRCUMFLEX 0x0177 +#define LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS 0x0178 +#define LATIN_CAPITAL_LETTER_Z_WITH_ACUTE 0x0179 +#define LATIN_SMALL_LETTER_Z_WITH_ACUTE 0x017A +#define LATIN_CAPITAL_LETTER_Z_WITH_DOT_ABOVE 0x017B +#define LATIN_SMALL_LETTER_Z_WITH_DOT_ABOVE 0x017C +#define LATIN_CAPITAL_LETTER_Z_WITH_CARON 0x017D +#define LATIN_SMALL_LETTER_Z_WITH_CARON 0x017E +#define LATIN_SMALL_LETTER_LONG_S 0x017F + +/* latin extended B */ +#define LATIN_SMALL_LETTER_B_WITH_STROKE 0x0180 +#define LATIN_CAPITAL_LETTER_B_WITH_HOOK 0x0181 +#define LATIN_CAPITAL_LETTER_B_WITH_TOPBAR 0x0182 +#define LATIN_SMALL_LETTER_B_WITH_TOPBAR 0x0183 +#define LATIN_CAPITAL_LETTER_TONE_SIX 0x0184 +#define LATIN_SMALL_LETTER_TONE_SIX 0x0185 +#define LATIN_CAPITAL_LETTER_OPEN_O 0x0186 +#define LATIN_CAPITAL_LETTER_C_WITH_HOOK 0x0187 +#define LATIN_SMALL_LETTER_C_WITH_HOOK 0x0188 +#define LATIN_CAPITAL_LETTER_AFRICAN_D 0x0189 +#define LATIN_CAPITAL_LETTER_D_WITH_HOOK 0x018A +#define LATIN_CAPITAL_LETTER_D_WITH_TOPBAR 0x018B +#define LATIN_SMALL_LETTER_D_WITH_TOPBAR 0x018C +#define LATIN_SMALL_LETTER_TURNED_DELTA 0x018D +#define LATIN_CAPITAL_LETTER_REVERSED_E 0x018E +#define LATIN_CAPITAL_LETTER_SCHWA 0x018F +#define LATIN_CAPITAL_LETTER_OPEN_E 0x0190 +#define LATIN_CAPITAL_LETTER_F_WITH_HOOK 0x0191 +#define LATIN_SMALL_LETTER_F_WITH_HOOK 0x0192 +#define LATIN_CAPITAL_LETTER_G_WITH_HOOK 0x0193 +#define LATIN_CAPITAL_LETTER_GAMMA 0x0194 +#define LATIN_SMALL_LETTER_HV 0x0195 +#define LATIN_CAPITAL_LETTER_IOTA 0x0196 +#define LATIN_CAPITAL_LETTER_I_WITH_STROKE 0x0197 +#define LATIN_CAPITAL_LETTER_K_WITH_HOOK 0x0198 +#define LATIN_SMALL_LETTER_K_WITH_HOOK 0x0199 +#define LATIN_SMALL_LETTER_L_WITH_BAR 0x019A +#define LATIN_SMALL_LETTER_LAMBDA_WITH_STROKE 0x019B +#define LATIN_CAPITAL_LETTER_TURNED_M 0x019C +#define LATIN_CAPITAL_LETTER_N_WITH_LEFT_HOOK 0x019D +#define LATIN_SMALL_LETTER_N_WITH_LONG_RIGHT_LEG 0x019E +#define LATIN_CAPITAL_LETTER_O_WITH_MIDDLE_TILDE 0x019F +#define LATIN_CAPITAL_LETTER_O_WITH_HORN 0x01A0 +#define LATIN_SMALL_LETTER_O_WITH_HORN 0x01A1 +#define LATIN_CAPITAL_LETTER_OI 0x01A2 +#define LATIN_SMALL_LETTER_OI 0x01A3 +#define LATIN_CAPITAL_LETTER_P_WITH_HOOK 0x01A4 +#define LATIN_SMALL_LETTER_P_WITH_HOOK 0x01A5 +#define LATIN_LETTER_YR 0x01A6 +#define LATIN_CAPITAL_LETTER_TONE_TWO 0x01A7 +#define LATIN_SMALL_LETTER_TONE_TWO 0x01A8 +#define LATIN_CAPITAL_LETTER_ESH 0x01A9 +#define LATIN_LETTER_REVERSED_ESH_LOOP 0x01AA +#define LATIN_SMALL_LETTER_T_WITH_PALATAL_HOOK 0x01AB +#define LATIN_CAPITAL_LETTER_T_WITH_HOOK 0x01AC +#define LATIN_SMALL_LETTER_T_WITH_HOOK 0x01AD +#define LATIN_CAPITAL_LETTER_T_WITH_RETROFLEX_HOOK 0x01AE +#define LATIN_CAPITAL_LETTER_U_WITH_HORN 0x01AF +#define LATIN_SMALL_LETTER_U_WITH_HORN 0x01B0 +#define LATIN_CAPITAL_LETTER_UPSILON 0x01B1 +#define LATIN_CAPITAL_LETTER_V_WITH_HOOK 0x01B2 +#define LATIN_CAPITAL_LETTER_Y_WITH_HOOK 0x01B3 +#define LATIN_SMALL_LETTER_Y_WITH_HOOK 0x01B4 +#define LATIN_CAPITAL_LETTER_Z_WITH_STROKE 0x01B5 +#define LATIN_SMALL_LETTER_Z_WITH_STROKE 0x01B6 +#define LATIN_CAPITAL_LETTER_EZH 0x01B7 +#define LATIN_CAPITAL_LETTER_EZH_REVERSED 0x01B8 +#define LATIN_SMALL_LETTER_EZH_REVERSED 0x01B9 +#define LATIN_SMALL_LETTER_EZH_WITH_TAIL 0x01BA +#define LATIN_LETTER_TWO_WITH_STROKE 0x01BB +#define LATIN_CAPITAL_LETTER_TONE_FIVE 0x01BC +#define LATIN_SMALL_LETTER_TONE_FIVE 0x01BD +#define LATIN_LETTER_INVERTED_GLOTTAL_STOP_WITH_STROKE 0x01BE +#define LATIN_LETTER_WYNN 0x01BF +#define LATIN_LETTER_DENTAL_CLICK 0x01C0 +#define LATIN_LETTER_LATERAL_CLICK 0x01C1 +#define LATIN_LETTER_ALVEOLAR_CLICK 0x01C2 +#define LATIN_LETTER_RETROFLEX_CLICK 0x01C3 +#define LATIN_CAPITAL_LETTER_DZ_WITH_CARON 0x01C4 +#define LATIN_CAPITAL_LETTER_D_WITH_SMALL_LETTER_Z_WITH_CARON 0x01C5 +#define LATIN_SMALL_LETTER_DZ_WITH_CARON 0x01C6 +#define LATIN_CAPITAL_LETTER_LJ 0x01C7 +#define LATIN_CAPITAL_LETTER_L_WITH_SMALL_LETTER_J 0x01C8 +#define LATIN_SMALL_LETTER_LJ 0x01C9 +#define LATIN_CAPITAL_LETTER_NJ 0x01CA +#define LATIN_CAPITAL_LETTER_N_WITH_SMALL_LETTER_J 0x01CB +#define LATIN_SMALL_LETTER_NJ 0x01CC +#define LATIN_CAPITAL_LETTER_A_WITH_CARON 0x01CD +#define LATIN_SMALL_LETTER_A_WITH_CARON 0x01CE +#define LATIN_CAPITAL_LETTER_I_WITH_CARON 0x01CF +#define LATIN_SMALL_LETTER_I_WITH_CARON 0x01D0 +#define LATIN_CAPITAL_LETTER_O_WITH_CARON 0x01D1 +#define LATIN_SMALL_LETTER_O_WITH_CARON 0x01D2 +#define LATIN_CAPITAL_LETTER_U_WITH_CARON 0x01D3 +#define LATIN_SMALL_LETTER_U_WITH_CARON 0x01D4 +#define LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS_AND_MACRON 0x01D5 +#define LATIN_SMALL_LETTER_U_WITH_DIAERESIS_AND_MACRON 0x01D6 +#define LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS_AND_ACUTE 0x01D7 +#define LATIN_SMALL_LETTER_U_WITH_DIAERESIS_AND_ACUTE 0x01D8 +#define LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS_AND_CARON 0x01D9 +#define LATIN_SMALL_LETTER_U_WITH_DIAERESIS_AND_CARON 0x01DA +#define LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS_AND_GRAVE 0x01DB +#define LATIN_SMALL_LETTER_U_WITH_DIAERESIS_AND_GRAVE 0x01DC +#define LATIN_SMALL_LETTER_TURNED_E 0x01DD +#define LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS_AND_MACRON 0x01DE +#define LATIN_SMALL_LETTER_A_WITH_DIAERESIS_AND_MACRON 0x01DF +#define LATIN_CAPITAL_LETTER_A_WITH_DOT_ABOVE_AND_MACRON 0x01E0 +#define LATIN_SMALL_LETTER_A_WITH_DOT_ABOVE_AND_MACRON 0x01E1 +#define LATIN_CAPITAL_LETTER_AE_WITH_MACRON 0x01E2 +#define LATIN_SMALL_LETTER_AE_WITH_MACRON 0x01E3 +#define LATIN_CAPITAL_LETTER_G_WITH_STROKE 0x01E4 +#define LATIN_SMALL_LETTER_G_WITH_STROKE 0x01E5 +#define LATIN_CAPITAL_LETTER_G_WITH_CARON 0x01E6 +#define LATIN_SMALL_LETTER_G_WITH_CARON 0x01E7 +#define LATIN_CAPITAL_LETTER_K_WITH_CARON 0x01E8 +#define LATIN_SMALL_LETTER_K_WITH_CARON 0x01E9 +#define LATIN_CAPITAL_LETTER_O_WITH_OGONEK 0x01EA +#define LATIN_SMALL_LETTER_O_WITH_OGONEK 0x01EB +#define LATIN_CAPITAL_LETTER_O_WITH_OGONEK_AND_MACRON 0x01EC +#define LATIN_SMALL_LETTER_O_WITH_OGONEK_AND_MACRON 0x01ED +#define LATIN_CAPITAL_LETTER_EZH_WITH_CARON 0x01EE +#define LATIN_SMALL_LETTER_EZH_WITH_CARON 0x01EF +#define LATIN_SMALL_LETTER_J_WITH_CARON 0x01F0 +#define LATIN_CAPITAL_LETTER_DZ 0x01F1 +#define LATIN_CAPITAL_LETTER_D_WITH_SMALL_LETTER_Z 0x01F2 +#define LATIN_SMALL_LETTER_DZ 0x01F3 +#define LATIN_CAPITAL_LETTER_G_WITH_ACUTE 0x01F4 +#define LATIN_SMALL_LETTER_G_WITH_ACUTE 0x01F5 +#define LATIN_CAPITAL_LETTER_HWAIR 0x01F6 +#define LATIN_CAPITAL_LETTER_WYNN 0x01F7 +#define LATIN_CAPITAL_LETTER_N_WITH_GRAVE 0x01F8 +#define LATIN_SMALL_LETTER_N_WITH_GRAVE 0x01F9 +#define LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE_AND_ACUTE 0x01FA +#define LATIN_SMALL_LETTER_A_WITH_RING_ABOVE_AND_ACUTE 0x01FB +#define LATIN_CAPITAL_LETTER_AE_WITH_ACUTE 0x01FC +#define LATIN_SMALL_LETTER_AE_WITH_ACUTE 0x01FD +#define LATIN_CAPITAL_LETTER_O_WITH_STROKE_AND_ACUTE 0x01FE +#define LATIN_SMALL_LETTER_O_WITH_STROKE_AND_ACUTE 0x01FF +#define LATIN_CAPITAL_LETTER_A_WITH_DOUBLE_GRAVE 0x0200 +#define LATIN_SMALL_LETTER_A_WITH_DOUBLE_GRAVE 0x0201 +#define LATIN_CAPITAL_LETTER_A_WITH_INVERTED_BREVE 0x0202 +#define LATIN_SMALL_LETTER_A_WITH_INVERTED_BREVE 0x0203 +#define LATIN_CAPITAL_LETTER_E_WITH_DOUBLE_GRAVE 0x0204 +#define LATIN_SMALL_LETTER_E_WITH_DOUBLE_GRAVE 0x0205 +#define LATIN_CAPITAL_LETTER_E_WITH_INVERTED_BREVE 0x0206 +#define LATIN_SMALL_LETTER_E_WITH_INVERTED_BREVE 0x0207 +#define LATIN_CAPITAL_LETTER_I_WITH_DOUBLE_GRAVE 0x0208 +#define LATIN_SMALL_LETTER_I_WITH_DOUBLE_GRAVE 0x0209 +#define LATIN_CAPITAL_LETTER_I_WITH_INVERTED_BREVE 0x020A +#define LATIN_SMALL_LETTER_I_WITH_INVERTED_BREVE 0x020B +#define LATIN_CAPITAL_LETTER_O_WITH_DOUBLE_GRAVE 0x020C +#define LATIN_SMALL_LETTER_O_WITH_DOUBLE_GRAVE 0x020D +#define LATIN_CAPITAL_LETTER_O_WITH_INVERTED_BREVE 0x020E +#define LATIN_SMALL_LETTER_O_WITH_INVERTED_BREVE 0x020F +#define LATIN_CAPITAL_LETTER_R_WITH_DOUBLE_GRAVE 0x0210 +#define LATIN_SMALL_LETTER_R_WITH_DOUBLE_GRAVE 0x0211 +#define LATIN_CAPITAL_LETTER_R_WITH_INVERTED_BREVE 0x0212 +#define LATIN_SMALL_LETTER_R_WITH_INVERTED_BREVE 0x0213 +#define LATIN_CAPITAL_LETTER_U_WITH_DOUBLE_GRAVE 0x0214 +#define LATIN_SMALL_LETTER_U_WITH_DOUBLE_GRAVE 0x0215 +#define LATIN_CAPITAL_LETTER_U_WITH_INVERTED_BREVE 0x0216 +#define LATIN_SMALL_LETTER_U_WITH_INVERTED_BREVE 0x0217 +#define LATIN_CAPITAL_LETTER_S_WITH_COMMA_BELOW 0x0218 +#define LATIN_SMALL_LETTER_S_WITH_COMMA_BELOW 0x0219 +#define LATIN_CAPITAL_LETTER_T_WITH_COMMA_BELOW 0x021A +#define LATIN_SMALL_LETTER_T_WITH_COMMA_BELOW 0x021B +#define LATIN_CAPITAL_LETTER_YOGH 0x021C +#define LATIN_SMALL_LETTER_YOGH 0x021D +#define LATIN_CAPITAL_LETTER_H_WITH_CARON 0x021E +#define LATIN_SMALL_LETTER_H_WITH_CARON 0x021F +#define LATIN_CAPITAL_LETTER_OU 0x0222 +#define LATIN_SMALL_LETTER_OU 0x0223 +#define LATIN_CAPITAL_LETTER_Z_WITH_HOOK 0x0224 +#define LATIN_SMALL_LETTER_Z_WITH_HOOK 0x0225 +#define LATIN_CAPITAL_LETTER_A_WITH_DOT_ABOVE 0x0226 +#define LATIN_SMALL_LETTER_A_WITH_DOT_ABOVE 0x0227 +#define LATIN_CAPITAL_LETTER_E_WITH_CEDILLA 0x0228 +#define LATIN_SMALL_LETTER_E_WITH_CEDILLA 0x0229 +#define LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS_AND_MACRON 0x022A +#define LATIN_SMALL_LETTER_O_WITH_DIAERESIS_AND_MACRON 0x022B +#define LATIN_CAPITAL_LETTER_O_WITH_TILDE_AND_MACRON 0x022C +#define LATIN_SMALL_LETTER_O_WITH_TILDE_AND_MACRON 0x022D +#define LATIN_CAPITAL_LETTER_O_WITH_DOT_ABOVE 0x022E +#define LATIN_SMALL_LETTER_O_WITH_DOT_ABOVE 0x022F +#define LATIN_CAPITAL_LETTER_O_WITH_DOT_ABOVE_AND_MACRON 0x0230 +#define LATIN_SMALL_LETTER_O_WITH_DOT_ABOVE_AND_MACRON 0x0231 +#define LATIN_CAPITAL_LETTER_Y_WITH_MACRON 0x0232 +#define LATIN_SMALL_LETTER_Y_WITH_MACRON 0x0233 + +/* IPA extensions */ +#define LATIN_SMALL_LETTER_TURNED_A 0x0250 +#define LATIN_SMALL_LETTER_ALPHA 0x0251 +#define LATIN_SMALL_LETTER_TURNED_ALPHA 0x0252 +#define LATIN_SMALL_LETTER_B_WITH_HOOK 0x0253 +#define LATIN_SMALL_LETTER_OPEN_O 0x0254 +#define LATIN_SMALL_LETTER_C_WITH_CURL 0x0255 +#define LATIN_SMALL_LETTER_D_WITH_TAIL 0x0256 +#define LATIN_SMALL_LETTER_D_WITH_HOOK 0x0257 +#define LATIN_SMALL_LETTER_REVERSED_E 0x0258 +#define LATIN_SMALL_LETTER_SCHWA 0x0259 +#define LATIN_SMALL_LETTER_SCHWA_WITH_HOOK 0x025A +#define LATIN_SMALL_LETTER_OPEN_E 0x025B +#define LATIN_SMALL_LETTER_REVERSED_OPEN_E 0x025C +#define LATIN_SMALL_LETTER_REVERSED_OPEN_E_WITH_HOOK 0x025D +#define LATIN_SMALL_LETTER_CLOSED_REVERSED_OPEN_E 0x025E +#define LATIN_SMALL_LETTER_DOTLESS_J_WITH_STROKE 0x025F +#define LATIN_SMALL_LETTER_G_WITH_HOOK 0x0260 +#define LATIN_SMALL_LETTER_SCRIPT_G 0x0261 +#define LATIN_LETTER_SMALL_CAPITAL_G 0x0262 +#define LATIN_SMALL_LETTER_GAMMA 0x0263 +#define LATIN_SMALL_LETTER_RAMS_HORN 0x0264 +#define LATIN_SMALL_LETTER_TURNED_H 0x0265 +#define LATIN_SMALL_LETTER_H_WITH_HOOK 0x0266 +#define LATIN_SMALL_LETTER_HENG_WITH_HOOK 0x0267 +#define LATIN_SMALL_LETTER_I_WITH_STROKE 0x0268 +#define LATIN_SMALL_LETTER_IOTA 0x0269 +#define LATIN_LETTER_SMALL_CAPITAL_I 0x026A +#define LATIN_SMALL_LETTER_L_WITH_MIDDLE_TILDE 0x026B +#define LATIN_SMALL_LETTER_L_WITH_BELT 0x026C +#define LATIN_SMALL_LETTER_L_WITH_RETROFLEX_HOOK 0x026D +#define LATIN_SMALL_LETTER_LEZH 0x026E +#define LATIN_SMALL_LETTER_TURNED_M 0x026F +#define LATIN_SMALL_LETTER_TURNED_M_WITH_LONG_LEG 0x0270 +#define LATIN_SMALL_LETTER_M_WITH_HOOK 0x0271 +#define LATIN_SMALL_LETTER_N_WITH_LEFT_HOOK 0x0272 +#define LATIN_SMALL_LETTER_N_WITH_RETROFLEX_HOOK 0x0273 +#define LATIN_LETTER_SMALL_CAPITAL_N 0x0274 +#define LATIN_SMALL_LETTER_BARRED_O 0x0275 +#define LATIN_LETTER_SMALL_CAPITAL_OE 0x0276 +#define LATIN_SMALL_LETTER_CLOSED_OMEGA 0x0277 +#define LATIN_SMALL_LETTER_PHI 0x0278 +#define LATIN_SMALL_LETTER_TURNED_R 0x0279 +#define LATIN_SMALL_LETTER_TURNED_R_WITH_LONG_LEG 0x027A +#define LATIN_SMALL_LETTER_TURNED_R_WITH_HOOK 0x027B +#define LATIN_SMALL_LETTER_R_WITH_LONG_LEG 0x027C +#define LATIN_SMALL_LETTER_R_WITH_TAIL 0x027D +#define LATIN_SMALL_LETTER_R_WITH_FISHHOOK 0x027E +#define LATIN_SMALL_LETTER_REVERSED_R_WITH_FISHHOOK 0x027F +#define LATIN_LETTER_SMALL_CAPITAL_R 0x0280 +#define LATIN_LETTER_SMALL_CAPITAL_INVERTED_R 0x0281 +#define LATIN_SMALL_LETTER_S_WITH_HOOK 0x0282 +#define LATIN_SMALL_LETTER_ESH 0x0283 +#define LATIN_SMALL_LETTER_DOTLESS_J_WITH_STROKE_AND_HOOK 0x0284 +#define LATIN_SMALL_LETTER_SQUAT_REVERSED_ESH 0x0285 +#define LATIN_SMALL_LETTER_ESH_WITH_CURL 0x0286 +#define LATIN_SMALL_LETTER_TURNED_T 0x0287 +#define LATIN_SMALL_LETTER_T_WITH_RETROFLEX_HOOK 0x0288 +#define LATIN_SMALL_LETTER_U_BAR 0x0289 +#define LATIN_SMALL_LETTER_UPSILON 0x028A +#define LATIN_SMALL_LETTER_V_WITH_HOOK 0x028B +#define LATIN_SMALL_LETTER_TURNED_V 0x028C +#define LATIN_SMALL_LETTER_TURNED_W 0x028D +#define LATIN_SMALL_LETTER_TURNED_Y 0x028E +#define LATIN_LETTER_SMALL_CAPITAL_Y 0x028F +#define LATIN_SMALL_LETTER_Z_WITH_RETROFLEX_HOOK 0x0290 +#define LATIN_SMALL_LETTER_Z_WITH_CURL 0x0291 +#define LATIN_SMALL_LETTER_EZH 0x0292 +#define LATIN_SMALL_LETTER_EZH_WITH_CURL 0x0293 +#define LATIN_LETTER_GLOTTAL_STOP 0x0294 +#define LATIN_LETTER_PHARYNGEAL_VOICED_FRICATIVE 0x0295 +#define LATIN_LETTER_INVERTED_GLOTTAL_STOP 0x0296 +#define LATIN_LETTER_STRETCHED_C 0x0297 +#define LATIN_LETTER_BILABIAL_CLICK 0x0298 +#define LATIN_LETTER_SMALL_CAPITAL_B 0x0299 +#define LATIN_SMALL_LETTER_CLOSED_OPEN_E 0x029A +#define LATIN_LETTER_SMALL_CAPITAL_G_WITH_HOOK 0x029B +#define LATIN_LETTER_SMALL_CAPITAL_H 0x029C +#define LATIN_SMALL_LETTER_J_WITH_CROSSED_TAIL 0x029D +#define LATIN_SMALL_LETTER_TURNED_K 0x029E +#define LATIN_LETTER_SMALL_CAPITAL_L 0x029F +#define LATIN_SMALL_LETTER_Q_WITH_HOOK 0x02A0 +#define LATIN_LETTER_GLOTTAL_STOP_WITH_STROKE 0x02A1 +#define LATIN_LETTER_REVERSED_GLOTTAL_STOP_WITH_STROKE 0x02A2 +#define LATIN_SMALL_LETTER_DZ_DIGRAPH 0x02A3 +#define LATIN_SMALL_LETTER_DEZH_DIGRAPH 0x02A4 +#define LATIN_SMALL_LETTER_DZ_DIGRAPH_WITH_CURL 0x02A5 +#define LATIN_SMALL_LETTER_TS_DIGRAPH 0x02A6 +#define LATIN_SMALL_LETTER_TESH_DIGRAPH 0x02A7 +#define LATIN_SMALL_LETTER_TC_DIGRAPH_WITH_CURL 0x02A8 +#define LATIN_SMALL_LETTER_FENG_DIGRAPH 0x02A9 +#define LATIN_SMALL_LETTER_LS_DIGRAPH 0x02AA +#define LATIN_SMALL_LETTER_LZ_DIGRAPH 0x02AB +#define LATIN_LETTER_BILABIAL_PERCUSSIVE 0x02AC +#define LATIN_LETTER_BIDENTAL_PERCUSSIVE 0x02AD + +/* spacing modifier letters */ +#define MODIFIER_LETTER_SMALL_H 0x02B0 +#define MODIFIER_LETTER_SMALL_H_WITH_HOOK 0x02B1 +#define MODIFIER_LETTER_SMALL_J 0x02B2 +#define MODIFIER_LETTER_SMALL_R 0x02B3 +#define MODIFIER_LETTER_SMALL_TURNED_R 0x02B4 +#define MODIFIER_LETTER_SMALL_TURNED_R_WITH_HOOK 0x02B5 +#define MODIFIER_LETTER_SMALL_CAPITAL_INVERTED_R 0x02B6 +#define MODIFIER_LETTER_SMALL_W 0x02B7 +#define MODIFIER_LETTER_SMALL_Y 0x02B8 +#define MODIFIER_LETTER_PRIME 0x02B9 +#define MODIFIER_LETTER_DOUBLE_PRIME 0x02BA +#define MODIFIER_LETTER_TURNED_COMMA 0x02BB +#define MODIFIER_LETTER_APOSTROPHE 0x02BC +#define MODIFIER_LETTER_REVERSED_COMMA 0x02BD +#define MODIFIER_LETTER_RIGHT_HALF_RING 0x02BE +#define MODIFIER_LETTER_LEFT_HALF_RING 0x02BF +#define MODIFIER_LETTER_GLOTTAL_STOP 0x02C0 +#define MODIFIER_LETTER_REVERSED_GLOTTAL_STOP 0x02C1 +#define MODIFIER_LETTER_LEFT_ARROWHEAD 0x02C2 +#define MODIFIER_LETTER_RIGHT_ARROWHEAD 0x02C3 +#define MODIFIER_LETTER_UP_ARROWHEAD 0x02C4 +#define MODIFIER_LETTER_DOWN_ARROWHEAD 0x02C5 +#define MODIFIER_LETTER_CIRCUMFLEX_ACCENT 0x02C6 +#define CARON 0x02C7 +#define MODIFIER_LETTER_VERTICAL_LINE 0x02C8 +#define MODIFIER_LETTER_MACRON 0x02C9 +#define MODIFIER_LETTER_ACUTE_ACCENT 0x02CA +#define MODIFIER_LETTER_GRAVE_ACCENT 0x02CB +#define MODIFIER_LETTER_LOW_VERTICAL_LINE 0x02CC +#define MODIFIER_LETTER_LOW_MACRON 0x02CD +#define MODIFIER_LETTER_LOW_GRAVE_ACCENT 0x02CE +#define MODIFIER_LETTER_LOW_ACUTE_ACCENT 0x02CF +#define MODIFIER_LETTER_TRIANGULAR_COLON 0x02D0 +#define MODIFIER_LETTER_HALF_TRIANGULAR_COLON 0x02D1 +#define MODIFIER_LETTER_CENTRED_RIGHT_HALF_RING 0x02D2 +#define MODIFIER_LETTER_CENTRED_LEFT_HALF_RING 0x02D3 +#define MODIFIER_LETTER_UP_TACK 0x02D4 +#define MODIFIER_LETTER_DOWN_TACK 0x02D5 +#define MODIFIER_LETTER_PLUS_SIGN 0x02D6 +#define MODIFIER_LETTER_MINUS_SIGN 0x02D7 +#define BREVE 0x02D8 +#define DOT_ABOVE 0x02D9 +#define RING_ABOVE 0x02DA +#define OGONEK 0x02DB +#define SMALL_TILDE 0x02DC +#define DOUBLE_ACUTE_ACCENT 0x02DD +#define MODIFIER_LETTER_RHOTIC_HOOK 0x02DE +#define MODIFIER_LETTER_CROSS_ACCENT 0x02DF +#define MODIFIER_LETTER_SMALL_GAMMA 0x02E0 +#define MODIFIER_LETTER_SMALL_L 0x02E1 +#define MODIFIER_LETTER_SMALL_S 0x02E2 +#define MODIFIER_LETTER_SMALL_X 0x02E3 +#define MODIFIER_LETTER_SMALL_REVERSED_GLOTTAL_STOP 0x02E4 +#define MODIFIER_LETTER_EXTRA_HIGH_TONE_BAR 0x02E5 +#define MODIFIER_LETTER_HIGH_TONE_BAR 0x02E6 +#define MODIFIER_LETTER_MID_TONE_BAR 0x02E7 +#define MODIFIER_LETTER_LOW_TONE_BAR 0x02E8 +#define MODIFIER_LETTER_EXTRA_LOW_TONE_BAR 0x02E9 +#define MODIFIER_LETTER_YIN_DEPARTING_TONE_MARK 0x02EA +#define MODIFIER_LETTER_YANG_DEPARTING_TONE_MARK 0x02EB +#define MODIFIER_LETTER_VOICING 0x02EC +#define MODIFIER_LETTER_UNASPIRATED 0x02ED +#define MODIFIER_LETTER_DOUBLE_APOSTROPHE 0x02EE + +/* combining diacritical marks */ +#define COMBINING_GRAVE_ACCENT 0x0300 +#define COMBINING_ACUTE_ACCENT 0x0301 +#define COMBINING_CIRCUMFLEX_ACCENT 0x0302 +#define COMBINING_TILDE 0x0303 +#define COMBINING_MACRON 0x0304 +#define COMBINING_OVERLINE 0x0305 +#define COMBINING_BREVE 0x0306 +#define COMBINING_DOT_ABOVE 0x0307 +#define COMBINING_DIAERESIS 0x0308 +#define COMBINING_HOOK_ABOVE 0x0309 +#define COMBINING_RING_ABOVE 0x030A +#define COMBINING_DOUBLE_ACUTE_ACCENT 0x030B +#define COMBINING_CARON 0x030C +#define COMBINING_VERTICAL_LINE_ABOVE 0x030D +#define COMBINING_DOUBLE_VERTICAL_LINE_ABOVE 0x030E +#define COMBINING_DOUBLE_GRAVE_ACCENT 0x030F +#define COMBINING_CANDRABINDU 0x0310 +#define COMBINING_INVERTED_BREVE 0x0311 +#define COMBINING_TURNED_COMMA_ABOVE 0x0312 +#define COMBINING_COMMA_ABOVE 0x0313 +#define COMBINING_REVERSED_COMMA_ABOVE 0x0314 +#define COMBINING_COMMA_ABOVE_RIGHT 0x0315 +#define COMBINING_GRAVE_ACCENT_BELOW 0x0316 +#define COMBINING_ACUTE_ACCENT_BELOW 0x0317 +#define COMBINING_LEFT_TACK_BELOW 0x0318 +#define COMBINING_RIGHT_TACK_BELOW 0x0319 +#define COMBINING_LEFT_ANGLE_ABOVE 0x031A +#define COMBINING_HORN 0x031B +#define COMBINING_LEFT_HALF_RING_BELOW 0x031C +#define COMBINING_UP_TACK_BELOW 0x031D +#define COMBINING_DOWN_TACK_BELOW 0x031E +#define COMBINING_PLUS_SIGN_BELOW 0x031F +#define COMBINING_MINUS_SIGN_BELOW 0x0320 +#define COMBINING_PALATALIZED_HOOK_BELOW 0x0321 +#define COMBINING_RETROFLEX_HOOK_BELOW 0x0322 +#define COMBINING_DOT_BELOW 0x0323 +#define COMBINING_DIAERESIS_BELOW 0x0324 +#define COMBINING_RING_BELOW 0x0325 +#define COMBINING_COMMA_BELOW 0x0326 +#define COMBINING_CEDILLA 0x0327 +#define COMBINING_OGONEK 0x0328 +#define COMBINING_VERTICAL_LINE_BELOW 0x0329 +#define COMBINING_BRIDGE_BELOW 0x032A +#define COMBINING_INVERTED_DOUBLE_ARCH_BELOW 0x032B +#define COMBINING_CARON_BELOW 0x032C +#define COMBINING_CIRCUMFLEX_ACCENT_BELOW 0x032D +#define COMBINING_BREVE_BELOW 0x032E +#define COMBINING_INVERTED_BREVE_BELOW 0x032F +#define COMBINING_TILDE_BELOW 0x0330 +#define COMBINING_MACRON_BELOW 0x0331 +#define COMBINING_LOW_LINE 0x0332 +#define COMBINING_DOUBLE_LOW_LINE 0x0333 +#define COMBINING_TILDE_OVERLAY 0x0334 +#define COMBINING_SHORT_STROKE_OVERLAY 0x0335 +#define COMBINING_LONG_STROKE_OVERLAY 0x0336 +#define COMBINING_SHORT_SOLIDUS_OVERLAY 0x0337 +#define COMBINING_LONG_SOLIDUS_OVERLAY 0x0338 +#define COMBINING_RIGHT_HALF_RING_BELOW 0x0339 +#define COMBINING_INVERTED_BRIDGE_BELOW 0x033A +#define COMBINING_SQUARE_BELOW 0x033B +#define COMBINING_SEAGULL_BELOW 0x033C +#define COMBINING_X_ABOVE 0x033D +#define COMBINING_VERTICAL_TILDE 0x033E +#define COMBINING_DOUBLE_OVERLINE 0x033F +#define COMBINING_GRAVE_TONE_MARK 0x0340 +#define COMBINING_ACUTE_TONE_MARK 0x0341 +#define COMBINING_GREEK_PERISPOMENI 0x0342 +#define COMBINING_GREEK_KORONIS 0x0343 +#define COMBINING_GREEK_DIALYTIKA_TONOS 0x0344 +#define COMBINING_GREEK_YPOGEGRAMMENI 0x0345 +#define COMBINING_BRIDGE_ABOVE 0x0346 +#define COMBINING_EQUALS_SIGN_BELOW 0x0347 +#define COMBINING_DOUBLE_VERTICAL_LINE_BELOW 0x0348 +#define COMBINING_LEFT_ANGLE_BELOW 0x0349 +#define COMBINING_NOT_TILDE_ABOVE 0x034A +#define COMBINING_HOMOTHETIC_ABOVE 0x034B +#define COMBINING_ALMOST_EQUAL_TO_ABOVE 0x034C +#define COMBINING_LEFT_RIGHT_ARROW_BELOW 0x034D +#define COMBINING_UPWARDS_ARROW_BELOW 0x034E +#define COMBINING_DOUBLE_TILDE 0x0360 +#define COMBINING_DOUBLE_INVERTED_BREVE 0x0361 +#define COMBINING_DOUBLE_RIGHTWARDS_ARROW_BELOW 0x0362 + +/* greek letters */ +#define GREEK_NUMERAL_SIGN 0x0374 +#define GREEK_LOWER_NUMERAL_SIGN 0x0375 +#define GREEK_YPOGEGRAMMENI 0x037A +#define GREEK_QUESTION_MARK 0x037E +#define GREEK_TONOS 0x0384 +#define GREEK_DIALYTIKA_TONOS 0x0385 +#define GREEK_CAPITAL_LETTER_ALPHA_WITH_TONOS 0x0386 +#define GREEK_ANO_TELEIA 0x0387 +#define GREEK_CAPITAL_LETTER_EPSILON_WITH_TONOS 0x0388 +#define GREEK_CAPITAL_LETTER_ETA_WITH_TONOS 0x0389 +#define GREEK_CAPITAL_LETTER_IOTA_WITH_TONOS 0x038A +#define GREEK_CAPITAL_LETTER_OMICRON_WITH_TONOS 0x038C +#define GREEK_CAPITAL_LETTER_UPSILON_WITH_TONOS 0x038E +#define GREEK_CAPITAL_LETTER_OMEGA_WITH_TONOS 0x038F +#define GREEK_SMALL_LETTER_IOTA_WITH_DIALYTIKA_AND_TONOS 0x0390 +#define GREEK_CAPITAL_LETTER_ALPHA 0x0391 +#define GREEK_CAPITAL_LETTER_BETA 0x0392 +#define GREEK_CAPITAL_LETTER_GAMMA 0x0393 +#define GREEK_CAPITAL_LETTER_DELTA 0x0394 +#define GREEK_CAPITAL_LETTER_EPSILON 0x0395 +#define GREEK_CAPITAL_LETTER_ZETA 0x0396 +#define GREEK_CAPITAL_LETTER_ETA 0x0397 +#define GREEK_CAPITAL_LETTER_THETA 0x0398 +#define GREEK_CAPITAL_LETTER_IOTA 0x0399 +#define GREEK_CAPITAL_LETTER_KAPPA 0x039A +#define GREEK_CAPITAL_LETTER_LAMDA 0x039B +#define GREEK_CAPITAL_LETTER_MU 0x039C +#define GREEK_CAPITAL_LETTER_NU 0x039D +#define GREEK_CAPITAL_LETTER_XI 0x039E +#define GREEK_CAPITAL_LETTER_OMICRON 0x039F +#define GREEK_CAPITAL_LETTER_PI 0x03A0 +#define GREEK_CAPITAL_LETTER_RHO 0x03A1 +#define GREEK_CAPITAL_LETTER_SIGMA 0x03A3 +#define GREEK_CAPITAL_LETTER_TAU 0x03A4 +#define GREEK_CAPITAL_LETTER_UPSILON 0x03A5 +#define GREEK_CAPITAL_LETTER_PHI 0x03A6 +#define GREEK_CAPITAL_LETTER_CHI 0x03A7 +#define GREEK_CAPITAL_LETTER_PSI 0x03A8 +#define GREEK_CAPITAL_LETTER_OMEGA 0x03A9 +#define GREEK_CAPITAL_LETTER_IOTA_WITH_DIALYTIKA 0x03AA +#define GREEK_CAPITAL_LETTER_UPSILON_WITH_DIALYTIKA 0x03AB +#define GREEK_SMALL_LETTER_ALPHA_WITH_TONOS 0x03AC +#define GREEK_SMALL_LETTER_EPSILON_WITH_TONOS 0x03AD +#define GREEK_SMALL_LETTER_ETA_WITH_TONOS 0x03AE +#define GREEK_SMALL_LETTER_IOTA_WITH_TONOS 0x03AF +#define GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA_AND_TONOS 0x03B0 +#define GREEK_SMALL_LETTER_ALPHA 0x03B1 +#define GREEK_SMALL_LETTER_BETA 0x03B2 +#define GREEK_SMALL_LETTER_GAMMA 0x03B3 +#define GREEK_SMALL_LETTER_DELTA 0x03B4 +#define GREEK_SMALL_LETTER_EPSILON 0x03B5 +#define GREEK_SMALL_LETTER_ZETA 0x03B6 +#define GREEK_SMALL_LETTER_ETA 0x03B7 +#define GREEK_SMALL_LETTER_THETA 0x03B8 +#define GREEK_SMALL_LETTER_IOTA 0x03B9 +#define GREEK_SMALL_LETTER_KAPPA 0x03BA +#define GREEK_SMALL_LETTER_LAMDA 0x03BB +#define GREEK_SMALL_LETTER_MU 0x03BC +#define GREEK_SMALL_LETTER_NU 0x03BD +#define GREEK_SMALL_LETTER_XI 0x03BE +#define GREEK_SMALL_LETTER_OMICRON 0x03BF +#define GREEK_SMALL_LETTER_PI 0x03C0 +#define GREEK_SMALL_LETTER_RHO 0x03C1 +#define GREEK_SMALL_LETTER_FINAL_SIGMA 0x03C2 +#define GREEK_SMALL_LETTER_SIGMA 0x03C3 +#define GREEK_SMALL_LETTER_TAU 0x03C4 +#define GREEK_SMALL_LETTER_UPSILON 0x03C5 +#define GREEK_SMALL_LETTER_PHI 0x03C6 +#define GREEK_SMALL_LETTER_CHI 0x03C7 +#define GREEK_SMALL_LETTER_PSI 0x03C8 +#define GREEK_SMALL_LETTER_OMEGA 0x03C9 +#define GREEK_SMALL_LETTER_IOTA_WITH_DIALYTIKA 0x03CA +#define GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA 0x03CB +#define GREEK_SMALL_LETTER_OMICRON_WITH_TONOS 0x03CC +#define GREEK_SMALL_LETTER_UPSILON_WITH_TONOS 0x03CD +#define GREEK_SMALL_LETTER_OMEGA_WITH_TONOS 0x03CE +#define GREEK_BETA_SYMBOL 0x03D0 +#define GREEK_THETA_SYMBOL 0x03D1 +#define GREEK_UPSILON_WITH_HOOK_SYMBOL 0x03D2 +#define GREEK_UPSILON_WITH_ACUTE_AND_HOOK_SYMBOL 0x03D3 +#define GREEK_UPSILON_WITH_DIAERESIS_AND_HOOK_SYMBOL 0x03D4 +#define GREEK_PHI_SYMBOL 0x03D5 +#define GREEK_PI_SYMBOL 0x03D6 +#define GREEK_KAI_SYMBOL 0x03D7 +#define GREEK_LETTER_STIGMA 0x03DA +#define GREEK_SMALL_LETTER_STIGMA 0x03DB +#define GREEK_LETTER_DIGAMMA 0x03DC +#define GREEK_SMALL_LETTER_DIGAMMA 0x03DD +#define GREEK_LETTER_KOPPA 0x03DE +#define GREEK_SMALL_LETTER_KOPPA 0x03DF +#define GREEK_LETTER_SAMPI 0x03E0 +#define GREEK_SMALL_LETTER_SAMPI 0x03E1 + +/* general punctuation (partial) */ +#define HYPHEN 0x2010 +#define NON_BREAKING_HYPHEN 0x2011 +#define FIGURE_DASH 0x2012 +#define EN_DASH 0x2013 +#define EM_DASH 0x2014 +#define HORIZONTAL_BAR 0x2015 +#define LEFT_SINGLE_QUOTATION_MARK 0x2018 +#define RIGHT_SINGLE_QUOTATION_MARK 0x2019 +#define SINGLE_LOW_9_QUOTATION_MARK 0x201A +#define SINGLE_HIGH_REVERSED_9_QUOTATION_MARK 0x201B +#define LEFT_DOUBLE_QUOTATION_MARK 0x201C +#define RIGHT_DOUBLE_QUOTATION_MARK 0x201D +#define DOUBLE_LOW_9_QUOTATION_MARK 0x201E +#define DOUBLE_HIGH_REVERSED_9_QUOTATION_MARK 0x201F +#define DAGGER 0x2020 +#define DOUBLE_DAGGER 0x2021 +#define BULLET 0x2022 +#define TRIANGULAR_BULLET 0x2023 +#define HYPHENATION_POINT 0x2027 +#define HORIZONTAL_ELLIPSIS 0x2026 +#define PER_MILLE_SIGN 0x2030 +#define SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK 0x2039 +#define SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK 0x203A +#define EURO_CURRENCY_SIGN 0x20AC + +/* mathematical operators */ +#define FOR_ALL 0x2200 +#define COMPLEMENT 0x2201 +#define PARTIAL_DIFFERENTIAL 0x2202 +#define THERE_EXISTS 0x2203 +#define THERE_DOES_NOT_EXIST 0x2204 +#define EMPTY_SET 0x2205 +#define INCREMENT 0x2206 +#define NABLA 0x2207 +#define ELEMENT_OF 0x2208 +#define NOT_AN_ELEMENT_OF 0x2209 +#define SMALL_ELEMENT_OF 0x220A +#define CONTAINS_AS_MEMBER 0x220B +#define DOES_NOT_CONTAIN_AS_MEMBER 0x220C +#define SMALL_CONTAINS_AS_MEMBER 0x220D +#define END_OF_PROOF 0x220E +#define N_ARY_PRODUCT 0x220F +#define N_ARY_COPRODUCT 0x2210 +#define N_ARY_SUMMATION 0x2211 +#define MINUS_SIGN 0x2212 +#define MINUS_OR_PLUS_SIGN 0x2213 +#define DOT_PLUS 0x2214 +#define DIVISION_SLASH 0x2215 +#define SET_MINUS 0x2216 +#define ASTERISK_OPERATOR 0x2217 +#define RING_OPERATOR 0x2218 +#define BULLET_OPERATOR 0x2219 +#define SQUARE_ROOT 0x221A +#define CUBE_ROOT 0x221B +#define FOURTH_ROOT 0x221C +#define PROPORTIONAL_TO 0x221D +/* INFINITY conflicts with math.h */ +#define INFINITY 0x221E +#define RIGHT_ANGLE 0x221F +#define ANGLE 0x2220 +#define MEASURED_ANGLE 0x2221 +#define SPHERICAL_ANGLE 0x2222 +#define DIVIDES 0x2223 +#define DOES_NOT_DIVIDE 0x2224 +#define PARALLEL_TO 0x2225 +#define NOT_PARALLEL_TO 0x2226 +#define LOGICAL_AND 0x2227 +#define LOGICAL_OR 0x2228 +#define INTERSECTION 0x2229 +#define UNION 0x222A +#define INTEGRAL 0x222B +#define DOUBLE_INTEGRAL 0x222C +#define TRIPLE_INTEGRAL 0x222D +#define CONTOUR_INTEGRAL 0x222E +#define SURFACE_INTEGRAL 0x222F +#define VOLUME_INTEGRAL 0x2230 +#define CLOCKWISE_INTEGRAL 0x2231 +#define CLOCKWISE_CONTOUR_INTEGRAL 0x2232 +#define ANTICLOCKWISE_CONTOUR_INTEGRAL 0x2233 +#define THEREFORE 0x2234 +#define BECAUSE 0x2235 +#define RATIO 0x2236 +#define PROPORTION 0x2237 +#define DOT_MINUS 0x2238 +#define EXCESS 0x2239 +#define GEOMETRIC_PROPORTION 0x223A +#define HOMOTHETIC 0x223B +#define TILDE_OPERATOR 0x223C +#define REVERSED_TILDE 0x223D +#define INVERTED_LAZY_S 0x223E +#define SINE_WAVE 0x223F +#define WREATH_PRODUCT 0x2240 +#define NOT_TILDE 0x2241 +#define MINUS_TILDE 0x2242 +#define ASYMPTOTICALLY_EQUAL_TO 0x2243 +#define NOT_ASYMPTOTICALLY_EQUAL_TO 0x2244 +#define APPROXIMATELY_EQUAL_TO 0x2245 +#define APPROXIMATELY_BUT_NOT_ACTUALLY_EQUAL_TO 0x2246 +#define NEITHER_APPROXIMATELY_NOR_ACTUALLY_EQUAL_TO 0x2247 +#define ALMOST_EQUAL_TO 0x2248 +#define NOT_ALMOST_EQUAL_TO 0x2249 +#define ALMOST_EQUAL_OR_EQUAL_TO 0x224A +#define TRIPLE_TILDE 0x224B +#define ALL_EQUAL_TO 0x224C +#define EQUIVALENT_TO 0x224D +#define GEOMETRICALLY_EQUIVALENT_TO 0x224E +#define DIFFERENCE_BETWEEN 0x224F +#define APPROACHES_THE_LIMIT 0x2250 +#define GEOMETRICALLY_EQUAL_TO 0x2251 +#define APPROXIMATELY_EQUAL_TO_OR_THE_IMAGE_OF 0x2252 +#define IMAGE_OF_OR_APPROXIMATELY_EQUAL_TO 0x2253 +#define COLON_EQUALS 0x2254 +#define EQUALS_COLON 0x2255 +#define RING_IN_EQUAL_TO 0x2256 +#define RING_EQUAL_TO 0x2257 +#define CORRESPONDS_TO 0x2258 +#define ESTIMATES 0x2259 +#define EQUIANGULAR_TO 0x225A +#define STAR_EQUALS 0x225B +#define DELTA_EQUAL_TO 0x225C +#define EQUAL_TO_BY_DEFINITION 0x225D +#define MEASURED_BY 0x225E +#define QUESTIONED_EQUAL_TO 0x225F +#define NOT_EQUAL_TO 0x2260 +#define IDENTICAL_TO 0x2261 +#define NOT_IDENTICAL_TO 0x2262 +#define STRICTLY_EQUIVALENT_TO 0x2263 +#define LESS_THAN_OR_EQUAL_TO 0x2264 +#define GREATER_THAN_OR_EQUAL_TO 0x2265 +#define LESS_THAN_OVER_EQUAL_TO 0x2266 +#define GREATER_THAN_OVER_EQUAL_TO 0x2267 +#define LESS_THAN_BUT_NOT_EQUAL_TO 0x2268 +#define GREATER_THAN_BUT_NOT_EQUAL_TO 0x2269 +#define MUCH_LESS_THAN 0x226A +#define MUCH_GREATER_THAN 0x226B +#define BETWEEN 0x226C +#define NOT_EQUIVALENT_TO 0x226D +#define NOT_LESS_THAN 0x226E +#define NOT_GREATER_THAN 0x226F +#define NEITHER_LESS_THAN_NOR_EQUAL_TO 0x2270 +#define NEITHER_GREATER_THAN_NOR_EQUAL_TO 0x2271 +#define LESS_THAN_OR_EQUIVALENT_TO 0x2272 +#define GREATER_THAN_OR_EQUIVALENT_TO 0x2273 +#define NEITHER_LESS_THAN_NOR_EQUIVALENT_TO 0x2274 +#define NEITHER_GREATER_THAN_NOR_EQUIVALENT_TO 0x2275 +#define LESS_THAN_OR_GREATER_THAN 0x2276 +#define GREATER_THAN_OR_LESS_THAN 0x2277 +#define NEITHER_LESS_THAN_NOR_GREATER_THAN 0x2278 +#define NEITHER_GREATER_THAN_NOR_LESS_THAN 0x2279 +#define PRECEDES 0x227A +#define SUCCEEDS 0x227B +#define PRECEDES_OR_EQUAL_TO 0x227C +#define SUCCEEDS_OR_EQUAL_TO 0x227D +#define PRECEDES_OR_EQUIVALENT_TO 0x227E +#define SUCCEEDS_OR_EQUIVALENT_TO 0x227F +#define DOES_NOT_PRECEDE 0x2280 +#define DOES_NOT_SUCCEED 0x2281 +#define SUBSET_OF 0x2282 +#define SUPERSET_OF 0x2283 +#define NOT_A_SUBSET_OF 0x2284 +#define NOT_A_SUPERSET_OF 0x2285 +#define SUBSET_OF_OR_EQUAL_TO 0x2286 +#define SUPERSET_OF_OR_EQUAL_TO 0x2287 +#define NEITHER_A_SUBSET_OF_NOR_EQUAL_TO 0x2288 +#define NEITHER_A_SUPERSET_OF_NOR_EQUAL_TO 0x2289 +#define SUBSET_OF_WITH_NOT_EQUAL_TO 0x228A +#define SUPERSET_OF_WITH_NOT_EQUAL_TO 0x228B +#define MULTISET 0x228C +#define MULTISET_MULTIPLICATION 0x228D +#define MULTISET_UNION 0x228E +#define SQUARE_IMAGE_OF 0x228F +#define SQUARE_ORIGINAL_OF 0x2290 +#define SQUARE_IMAGE_OF_OR_EQUAL_TO 0x2291 +#define SQUARE_ORIGINAL_OF_OR_EQUAL_TO 0x2292 +#define SQUARE_CAP 0x2293 +#define SQUARE_CUP 0x2294 +#define CIRCLED_PLUS 0x2295 +#define CIRCLED_MINUS 0x2296 +#define CIRCLED_TIMES 0x2297 +#define CIRCLED_DIVISION_SLASH 0x2298 +#define CIRCLED_DOT_OPERATOR 0x2299 +#define CIRCLED_RING_OPERATOR 0x229A +#define CIRCLED_ASTERISK_OPERATOR 0x229B +#define CIRCLED_EQUALS 0x229C +#define CIRCLED_DASH 0x229D +#define SQUARED_PLUS 0x229E +#define SQUARED_MINUS 0x229F +#define SQUARED_TIMES 0x22A0 +#define SQUARED_DOT_OPERATOR 0x22A1 +#define RIGHT_TACK 0x22A2 +#define LEFT_TACK 0x22A3 +#define DOWN_TACK 0x22A4 +#define UP_TACK 0x22A5 +#define ASSERTION 0x22A6 +#define MODELS 0x22A7 +#define TRUE 0x22A8 +#define FORCES 0x22A9 +#define TRIPLE_VERTICAL_BAR_RIGHT_TURNSTILE 0x22AA +#define DOUBLE_VERTICAL_BAR_DOUBLE_RIGHT_TURNSTILE 0x22AB +#define DOES_NOT_PROVE 0x22AC +#define NOT_TRUE 0x22AD +#define DOES_NOT_FORCE 0x22AE +#define NEGATED_DOUBLE_VERTICAL_BAR_DOUBLE_RIGHT_TURNSTILE 0x22AF +#define PRECEDES_UNDER_RELATION 0x22B0 +#define SUCCEEDS_UNDER_RELATION 0x22B1 +#define NORMAL_SUBGROUP_OF 0x22B2 +#define CONTAINS_AS_NORMAL_SUBGROUP 0x22B3 +#define NORMAL_SUBGROUP_OF_OR_EQUAL_TO 0x22B4 +#define CONTAINS_AS_NORMAL_SUBGROUP_OR_EQUAL_TO 0x22B5 +#define ORIGINAL_OF 0x22B6 +#define IMAGE_OF 0x22B7 +#define MULTIMAP 0x22B8 +#define HERMITIAN_CONJUGATE_MATRIX 0x22B9 +#define INTERCALATE 0x22BA +#define XOR 0x22BB +#define NAND 0x22BC +#define NOR 0x22BD +#define RIGHT_ANGLE_WITH_ARC 0x22BE +#define RIGHT_TRIANGLE 0x22BF +#define N_ARY_LOGICAL_AND 0x22C0 +#define N_ARY_LOGICAL_OR 0x22C1 +#define N_ARY_INTERSECTION 0x22C2 +#define N_ARY_UNION 0x22C3 +#define DIAMOND_OPERATOR 0x22C4 +#define DOT_OPERATOR 0x22C5 +#define STAR_OPERATOR 0x22C6 +#define DIVISION_TIMES 0x22C7 +#define BOWTIE 0x22C8 +#define LEFT_NORMAL_FACTOR_SEMIDIRECT_PRODUCT 0x22C9 +#define RIGHT_NORMAL_FACTOR_SEMIDIRECT_PRODUCT 0x22CA +#define LEFT_SEMIDIRECT_PRODUCT 0x22CB +#define RIGHT_SEMIDIRECT_PRODUCT 0x22CC +#define REVERSED_TILDE_EQUALS 0x22CD +#define CURLY_LOGICAL_OR 0x22CE +#define CURLY_LOGICAL_AND 0x22CF +#define DOUBLE_SUBSET 0x22D0 +#define DOUBLE_SUPERSET 0x22D1 +#define DOUBLE_INTERSECTION 0x22D2 +#define DOUBLE_UNION 0x22D3 +#define PITCHFORK 0x22D4 +#define EQUAL_AND_PARALLEL_TO 0x22D5 +#define LESS_THAN_WITH_DOT 0x22D6 +#define GREATER_THAN_WITH_DOT 0x22D7 +#define VERY_MUCH_LESS_THAN 0x22D8 +#define VERY_MUCH_GREATER_THAN 0x22D9 +#define LESS_THAN_EQUAL_TO_OR_GREATER_THAN 0x22DA +#define GREATER_THAN_EQUAL_TO_OR_LESS_THAN 0x22DB +#define EQUAL_TO_OR_LESS_THAN 0x22DC +#define EQUAL_TO_OR_GREATER_THAN 0x22DD +#define EQUAL_TO_OR_PRECEDES 0x22DE +#define EQUAL_TO_OR_SUCCEEDS 0x22DF +#define DOES_NOT_PRECEDE_OR_EQUAL 0x22E0 +#define DOES_NOT_SUCCEED_OR_EQUAL 0x22E1 +#define NOT_SQUARE_IMAGE_OF_OR_EQUAL_TO 0x22E2 +#define NOT_SQUARE_ORIGINAL_OF_OR_EQUAL_TO 0x22E3 +#define SQUARE_IMAGE_OF_OR_NOT_EQUAL_TO 0x22E4 +#define SQUARE_ORIGINAL_OF_OR_NOT_EQUAL_TO 0x22E5 +#define LESS_THAN_BUT_NOT_EQUIVALENT_TO 0x22E6 +#define GREATER_THAN_BUT_NOT_EQUIVALENT_TO 0x22E7 +#define PRECEDES_BUT_NOT_EQUIVALENT_TO 0x22E8 +#define SUCCEEDS_BUT_NOT_EQUIVALENT_TO 0x22E9 +#define NOT_NORMAL_SUBGROUP_OF 0x22EA +#define DOES_NOT_CONTAIN_AS_NORMAL_SUBGROUP 0x22EB +#define NOT_NORMAL_SUBGROUP_OF_OR_EQUAL_TO 0x22EC +#define DOES_NOT_CONTAIN_AS_NORMAL_SUBGROUP_OR_EQUAL 0x22ED +#define VERTICAL_ELLIPSIS 0x22EE +#define MIDLINE_HORIZONTAL_ELLIPSIS 0x22EF +#define UP_RIGHT_DIAGONAL_ELLIPSIS 0x22F0 +#define DOWN_RIGHT_DIAGONAL_ELLIPSIS 0x22F1 + +/* Optical Character Recognition in Unicode (see wikipedia/OCR) + * range: 0x2440-0x245F + */ +#define OCR_Hook 0x2440 +#define OCR_Chair 0x2441 +#define OCR_Fork 0x2442 +#define OCR_Inverted_Fork 0x2443 +#define OCR_Belt_Buckle 0x2444 +#define OCR_Bow_Tie 0x2445 + +/* the following 4 MICR chars (magnetic ink character recognition) + * They look like: |: ,|' ||' ||| (known also as MICR-A,B,C,D) + */ +#define OCR_Branch_Bank_Identification 0x2446 +#define OCR_Amount_Of_Check 0x2447 +#define OCR_Customer_Account_Number 0x2448 +#define OCR_Dash 0x2449 + +#define OCR_Double_Backslash 0x244A + +/* latin ligatures */ +#define LATIN_SMALL_LIGATURE_FF 0xFB00 +#define LATIN_SMALL_LIGATURE_FI 0xFB01 +#define LATIN_SMALL_LIGATURE_FL 0xFB02 +#define LATIN_SMALL_LIGATURE_FFI 0xFB03 +#define LATIN_SMALL_LIGATURE_FFL 0xFB04 +#define LATIN_SMALL_LIGATURE_LONG_S_T 0xFB05 +#define LATIN_SMALL_LIGATURE_ST 0xFB06 + +#endif diff --git a/3rdparty/newmat/add_time.png b/3rdparty/newmat/add_time.png new file mode 100644 index 0000000..58731d4 Binary files /dev/null and b/3rdparty/newmat/add_time.png differ diff --git a/3rdparty/newmat/bandmat.cpp b/3rdparty/newmat/bandmat.cpp new file mode 100644 index 0000000..59a14d1 --- /dev/null +++ b/3rdparty/newmat/bandmat.cpp @@ -0,0 +1,569 @@ +//$$ bandmat.cpp Band matrix definitions + +// Copyright (C) 1991,2,3,4,9: R B Davies + +#define WANT_MATH // include.h will get math fns + +//#define WANT_STREAM + +#include "include.h" + +#include "newmat.h" +#include "newmatrc.h" + +#ifdef use_namespace +namespace NEWMAT { +#endif + + + +#ifdef DO_REPORT +#define REPORT { static ExeCounter ExeCount(__LINE__,10); ++ExeCount; } +#else +#define REPORT {} +#endif + +static inline int my_min(int x, int y) { return x < y ? x : y; } +static inline int my_max(int x, int y) { return x > y ? x : y; } + + +BandMatrix::BandMatrix(const BaseMatrix& M) +{ + REPORT // CheckConversion(M); + // MatrixConversionCheck mcc; + GeneralMatrix* gmx=((BaseMatrix&)M).Evaluate(MatrixType::BM); + GetMatrix(gmx); CornerClear(); +} + +void BandMatrix::SetParameters(const GeneralMatrix* gmx) +{ + REPORT + MatrixBandWidth bw = gmx->BandWidth(); + lower = bw.lower; upper = bw.upper; +} + +void BandMatrix::ReSize(int n, int lb, int ub) +{ + REPORT + Tracer tr("BandMatrix::ReSize"); + if (lb<0 || ub<0) Throw(ProgramException("Undefined bandwidth")); + lower = (lb<=n) ? lb : n-1; upper = (ub<=n) ? ub : n-1; + GeneralMatrix::ReSize(n,n,n*(lower+1+upper)); CornerClear(); +} + +// SimpleAddOK shows when we can add etc two matrices by a simple vector add +// and when we can add one matrix into another +// *gm must be the same type as *this +// return 0 if simple add is OK +// return 1 if we can add into *gm only +// return 2 if we can add into *this only +// return 3 if we can't add either way +// For SP this will still be valid if we swap 1 and 2 + +short BandMatrix::SimpleAddOK(const GeneralMatrix* gm) +{ + const BandMatrix* bm = (const BandMatrix*)gm; + if (bm->lower == lower && bm->upper == upper) { REPORT return 0; } + else if (bm->lower >= lower && bm->upper >= upper) { REPORT return 1; } + else if (bm->lower <= lower && bm->upper <= upper) { REPORT return 2; } + else { REPORT return 3; } +} + +short SymmetricBandMatrix::SimpleAddOK(const GeneralMatrix* gm) +{ + const SymmetricBandMatrix* bm = (const SymmetricBandMatrix*)gm; + if (bm->lower == lower) { REPORT return 0; } + else if (bm->lower > lower) { REPORT return 1; } + else { REPORT return 2; } +} + +void UpperBandMatrix::ReSize(int n, int lb, int ub) +{ + REPORT + if (lb != 0) + { + Tracer tr("UpperBandMatrix::ReSize"); + Throw(ProgramException("UpperBandMatrix with non-zero lower band" )); + } + BandMatrix::ReSize(n, lb, ub); +} + +void LowerBandMatrix::ReSize(int n, int lb, int ub) +{ + REPORT + if (ub != 0) + { + Tracer tr("LowerBandMatrix::ReSize"); + Throw(ProgramException("LowerBandMatrix with non-zero upper band" )); + } + BandMatrix::ReSize(n, lb, ub); +} + +void BandMatrix::ReSize(const GeneralMatrix& A) +{ + REPORT + int n = A.Nrows(); + if (n != A.Ncols()) + { + Tracer tr("BandMatrix::ReSize(GM)"); + Throw(NotSquareException(*this)); + } + MatrixBandWidth mbw = A.BandWidth(); + ReSize(n, mbw.Lower(), mbw.Upper()); +} + +bool BandMatrix::SameStorageType(const GeneralMatrix& A) const +{ + if (Type() != A.Type()) { REPORT return false; } + REPORT + return BandWidth() == A.BandWidth(); +} + +void BandMatrix::ReSizeForAdd(const GeneralMatrix& A, const GeneralMatrix& B) +{ + REPORT + Tracer tr("BandMatrix::ReSizeForAdd"); + MatrixBandWidth A_BW = A.BandWidth(); MatrixBandWidth B_BW = B.BandWidth(); + if ((A_BW.Lower() < 0) | (A_BW.Upper() < 0) | (B_BW.Lower() < 0) + | (A_BW.Upper() < 0)) + Throw(ProgramException("Can't ReSize to BandMatrix" )); + // already know A and B are square + ReSize(A.Nrows(), my_max(A_BW.Lower(), B_BW.Lower()), + my_max(A_BW.Upper(), B_BW.Upper())); +} + +void BandMatrix::ReSizeForSP(const GeneralMatrix& A, const GeneralMatrix& B) +{ + REPORT + Tracer tr("BandMatrix::ReSizeForSP"); + MatrixBandWidth A_BW = A.BandWidth(); MatrixBandWidth B_BW = B.BandWidth(); + if ((A_BW.Lower() < 0) | (A_BW.Upper() < 0) | (B_BW.Lower() < 0) + | (A_BW.Upper() < 0)) + Throw(ProgramException("Can't ReSize to BandMatrix" )); + // already know A and B are square + ReSize(A.Nrows(), my_min(A_BW.Lower(), B_BW.Lower()), + my_min(A_BW.Upper(), B_BW.Upper())); +} + + +void BandMatrix::operator=(const BaseMatrix& X) +{ + REPORT // CheckConversion(X); + // MatrixConversionCheck mcc; + Eq(X,MatrixType::BM); CornerClear(); +} + +void BandMatrix::CornerClear() const +{ + // set unused parts of BandMatrix to zero + REPORT + int i = lower; Real* s = store; int bw = lower + 1 + upper; + while (i) + { int j = i--; Real* sj = s; s += bw; while (j--) *sj++ = 0.0; } + i = upper; s = store + storage; + while (i) + { int j = i--; Real* sj = s; s -= bw; while (j--) *(--sj) = 0.0; } +} + +MatrixBandWidth MatrixBandWidth::operator+(const MatrixBandWidth& bw) const +{ + REPORT + int l = bw.lower; int u = bw.upper; + l = (lower < 0 || l < 0) ? -1 : (lower > l) ? lower : l; + u = (upper < 0 || u < 0) ? -1 : (upper > u) ? upper : u; + return MatrixBandWidth(l,u); +} + +MatrixBandWidth MatrixBandWidth::operator*(const MatrixBandWidth& bw) const +{ + REPORT + int l = bw.lower; int u = bw.upper; + l = (lower < 0 || l < 0) ? -1 : lower+l; + u = (upper < 0 || u < 0) ? -1 : upper+u; + return MatrixBandWidth(l,u); +} + +MatrixBandWidth MatrixBandWidth::minimum(const MatrixBandWidth& bw) const +{ + REPORT + int l = bw.lower; int u = bw.upper; + if ((lower >= 0) && ( (l < 0) || (l > lower) )) l = lower; + if ((upper >= 0) && ( (u < 0) || (u > upper) )) u = upper; + return MatrixBandWidth(l,u); +} + +UpperBandMatrix::UpperBandMatrix(const BaseMatrix& M) +{ + REPORT // CheckConversion(M); + // MatrixConversionCheck mcc; + GeneralMatrix* gmx=((BaseMatrix&)M).Evaluate(MatrixType::UB); + GetMatrix(gmx); CornerClear(); +} + +void UpperBandMatrix::operator=(const BaseMatrix& X) +{ + REPORT // CheckConversion(X); + // MatrixConversionCheck mcc; + Eq(X,MatrixType::UB); CornerClear(); +} + +LowerBandMatrix::LowerBandMatrix(const BaseMatrix& M) +{ + REPORT // CheckConversion(M); + // MatrixConversionCheck mcc; + GeneralMatrix* gmx=((BaseMatrix&)M).Evaluate(MatrixType::LB); + GetMatrix(gmx); CornerClear(); +} + +void LowerBandMatrix::operator=(const BaseMatrix& X) +{ + REPORT // CheckConversion(X); + // MatrixConversionCheck mcc; + Eq(X,MatrixType::LB); CornerClear(); +} + +BandLUMatrix::BandLUMatrix(const BaseMatrix& m) +{ + REPORT + Tracer tr("BandLUMatrix"); + storage2 = 0; store2 = 0; // in event of exception during build + GeneralMatrix* gm = ((BaseMatrix&)m).Evaluate(MatrixType::BM); + m1 = ((BandMatrix*)gm)->lower; m2 = ((BandMatrix*)gm)->upper; + GetMatrix(gm); + if (nrows!=ncols) Throw(NotSquareException(*this)); + d = true; sing = false; + indx = new int [nrows]; MatrixErrorNoSpace(indx); + MONITOR_INT_NEW("Index (BndLUMat)",nrows,indx) + storage2 = nrows * m1; + store2 = new Real [storage2]; MatrixErrorNoSpace(store2); + MONITOR_REAL_NEW("Make (BandLUMat)",storage2,store2) + ludcmp(); +} + +BandLUMatrix::~BandLUMatrix() +{ + REPORT + MONITOR_INT_DELETE("Index (BndLUMat)",nrows,indx) + MONITOR_REAL_DELETE("Delete (BndLUMt)",storage2,store2) + delete [] indx; delete [] store2; +} + +MatrixType BandLUMatrix::Type() const { REPORT return MatrixType::BC; } + + +LogAndSign BandLUMatrix::LogDeterminant() const +{ + REPORT + if (sing) return 0.0; + Real* a = store; int w = m1+1+m2; LogAndSign sum; int i = nrows; + // while (i--) { sum *= *a; a += w; } + if (i) for (;;) { sum *= *a; if (!(--i)) break; a += w; } + if (!d) sum.ChangeSign(); return sum; +} + +GeneralMatrix* BandMatrix::MakeSolver() +{ + REPORT + GeneralMatrix* gm = new BandLUMatrix(*this); + MatrixErrorNoSpace(gm); gm->ReleaseAndDelete(); return gm; +} + + +void BandLUMatrix::ludcmp() +{ + REPORT + Real* a = store2; int i = storage2; + // clear store2 - so unused locations are always zero - + // required by operator== + while (i--) *a++ = 0.0; + a = store; + i = m1; int j = m2; int k; int n = nrows; int w = m1 + 1 + m2; + while (i) + { + Real* ai = a + i; + k = ++j; while (k--) *a++ = *ai++; + k = i--; while (k--) *a++ = 0.0; + } + + a = store; int l = m1; + for (k=0; k=mini; i--) + { + Real* b = B + i; Real* bk = b; Real x = *bk; + Real* a = store + w*i; Real y = *a; + int k = l+m1; while (k--) x -= *(++a) * *(++bk); + *b = x / y; + if (l < m2) l++; + } +} + +void BandLUMatrix::Solver(MatrixColX& mcout, const MatrixColX& mcin) +{ + REPORT + int i = mcin.skip; Real* el = mcin.data-i; Real* el1=el; + while (i--) *el++ = 0.0; + el += mcin.storage; i = nrows - mcin.skip - mcin.storage; + while (i--) *el++ = 0.0; + lubksb(el1, mcout.skip); +} + +// Do we need check for entirely zero output? + + +void UpperBandMatrix::Solver(MatrixColX& mcout, + const MatrixColX& mcin) +{ + REPORT + int i = mcin.skip-mcout.skip; Real* elx = mcin.data-i; + while (i-- > 0) *elx++ = 0.0; + int nr = mcin.skip+mcin.storage; + elx = mcin.data+mcin.storage; Real* el = elx; + int j = mcout.skip+mcout.storage-nr; i = nr-mcout.skip; + while (j-- > 0) *elx++ = 0.0; + + Real* Ael = store + (upper+1)*(i-1)+1; j = 0; + if (i > 0) for(;;) + { + elx = el; Real sum = 0.0; int jx = j; + while (jx--) sum += *(--Ael) * *(--elx); + elx--; *elx = (*elx - sum) / *(--Ael); + if (--i <= 0) break; + if (j 0) *elx++ = 0.0; + int nc = mcin.skip; i = nc+mcin.storage; elx = mcin.data+mcin.storage; + int nr = mcout.skip+mcout.storage; int j = nr-i; i = nr-nc; + while (j-- > 0) *elx++ = 0.0; + + Real* el = mcin.data; Real* Ael = store + (lower+1)*nc + lower; j = 0; + if (i > 0) for(;;) + { + elx = el; Real sum = 0.0; int jx = j; + while (jx--) sum += *Ael++ * *elx++; + *elx = (*elx - sum) / *Ael++; + if (--i <= 0) break; + if (jReleaseAndDelete(); return gm; +} + +SymmetricBandMatrix::SymmetricBandMatrix(const BaseMatrix& M) +{ + REPORT // CheckConversion(M); + // MatrixConversionCheck mcc; + GeneralMatrix* gmx=((BaseMatrix&)M).Evaluate(MatrixType::SB); + GetMatrix(gmx); +} + +GeneralMatrix* SymmetricBandMatrix::Transpose(TransposedMatrix*, MatrixType mt) +{ REPORT return Evaluate(mt); } + +LogAndSign SymmetricBandMatrix::LogDeterminant() const +{ + REPORT + BandLUMatrix C(*this); return C.LogDeterminant(); +} + +void SymmetricBandMatrix::SetParameters(const GeneralMatrix* gmx) +{ REPORT lower = gmx->BandWidth().lower; } + +void SymmetricBandMatrix::ReSize(int n, int lb) +{ + REPORT + Tracer tr("SymmetricBandMatrix::ReSize"); + if (lb<0) Throw(ProgramException("Undefined bandwidth")); + lower = (lb<=n) ? lb : n-1; + GeneralMatrix::ReSize(n,n,n*(lower+1)); +} + +void SymmetricBandMatrix::ReSize(const GeneralMatrix& A) +{ + REPORT + int n = A.Nrows(); + if (n != A.Ncols()) + { + Tracer tr("SymmetricBandMatrix::ReSize(GM)"); + Throw(NotSquareException(*this)); + } + MatrixBandWidth mbw = A.BandWidth(); int b = mbw.Lower(); + if (b != mbw.Upper()) + { + Tracer tr("SymmetricBandMatrix::ReSize(GM)"); + Throw(ProgramException("Upper and lower band-widths not equal")); + } + ReSize(n, b); +} + +bool SymmetricBandMatrix::SameStorageType(const GeneralMatrix& A) const +{ + if (Type() != A.Type()) { REPORT return false; } + REPORT + return BandWidth() == A.BandWidth(); +} + +void SymmetricBandMatrix::ReSizeForAdd(const GeneralMatrix& A, + const GeneralMatrix& B) +{ + REPORT + Tracer tr("SymmetricBandMatrix::ReSizeForAdd"); + MatrixBandWidth A_BW = A.BandWidth(); MatrixBandWidth B_BW = B.BandWidth(); + if ((A_BW.Lower() < 0) | (B_BW.Lower() < 0)) + Throw(ProgramException("Can't ReSize to SymmetricBandMatrix" )); + // already know A and B are square + ReSize(A.Nrows(), my_max(A_BW.Lower(), B_BW.Lower())); +} + +void SymmetricBandMatrix::ReSizeForSP(const GeneralMatrix& A, + const GeneralMatrix& B) +{ + REPORT + Tracer tr("SymmetricBandMatrix::ReSizeForSP"); + MatrixBandWidth A_BW = A.BandWidth(); MatrixBandWidth B_BW = B.BandWidth(); + if ((A_BW.Lower() < 0) | (B_BW.Lower() < 0)) + Throw(ProgramException("Can't ReSize to SymmetricBandMatrix" )); + // already know A and B are square + ReSize(A.Nrows(), my_min(A_BW.Lower(), B_BW.Lower())); +} + + +void SymmetricBandMatrix::operator=(const BaseMatrix& X) +{ + REPORT // CheckConversion(X); + // MatrixConversionCheck mcc; + Eq(X,MatrixType::SB); +} + +void SymmetricBandMatrix::CornerClear() const +{ + // set unused parts of BandMatrix to zero + REPORT + int i = lower; Real* s = store; int bw = lower + 1; + if (i) for(;;) + { + int j = i; + Real* sj = s; + while (j--) *sj++ = 0.0; + if (!(--i)) break; + s += bw; + } +} + +MatrixBandWidth SymmetricBandMatrix::BandWidth() const + { REPORT return MatrixBandWidth(lower,lower); } + +inline Real square(Real x) { return x*x; } + + +Real SymmetricBandMatrix::SumSquare() const +{ + REPORT + CornerClear(); + Real sum1=0.0; Real sum2=0.0; Real* s=store; int i=nrows; int l=lower; + while (i--) + { int j = l; while (j--) sum2 += square(*s++); sum1 += square(*s++); } + ((GeneralMatrix&)*this).tDelete(); return sum1 + 2.0 * sum2; +} + +Real SymmetricBandMatrix::SumAbsoluteValue() const +{ + REPORT + CornerClear(); + Real sum1=0.0; Real sum2=0.0; Real* s=store; int i=nrows; int l=lower; + while (i--) + { int j = l; while (j--) sum2 += fabs(*s++); sum1 += fabs(*s++); } + ((GeneralMatrix&)*this).tDelete(); return sum1 + 2.0 * sum2; +} + +Real SymmetricBandMatrix::Sum() const +{ + REPORT + CornerClear(); + Real sum1=0.0; Real sum2=0.0; Real* s=store; int i=nrows; int l=lower; + while (i--) + { int j = l; while (j--) sum2 += *s++; sum1 += *s++; } + ((GeneralMatrix&)*this).tDelete(); return sum1 + 2.0 * sum2; +} + + +#ifdef use_namespace +} +#endif + diff --git a/3rdparty/newmat/boolean.h b/3rdparty/newmat/boolean.h new file mode 100644 index 0000000..7070504 --- /dev/null +++ b/3rdparty/newmat/boolean.h @@ -0,0 +1,40 @@ +//$$ boolean.h bool class + +// This is for compilers that do not have bool automatically defined + +#ifndef bool_LIB +#define bool_LIB 0 + +#ifdef use_namespace +namespace RBD_COMMON { +#endif + + +class bool +{ + int value; +public: + bool(const int b) { value = b ? 1 : 0; } + bool(const void* b) { value = b ? 1 : 0; } + bool() {} + operator int() const { return value; } + int operator!() const { return !value; } +}; + + +const bool true = 1; +const bool false = 0; + + + +// version for some older versions of gnu g++ +//#define false 0 +//#define true 1 + +#ifdef use_namespace +} +#endif + + + +#endif diff --git a/3rdparty/newmat/cholesky.cpp b/3rdparty/newmat/cholesky.cpp new file mode 100644 index 0000000..157056b --- /dev/null +++ b/3rdparty/newmat/cholesky.cpp @@ -0,0 +1,88 @@ +//$$ cholesky.cpp cholesky decomposition + +// Copyright (C) 1991,2,3,4: R B Davies + +#define WANT_MATH +//#define WANT_STREAM + +#include "include.h" + +#include "newmat.h" + +#ifdef use_namespace +namespace NEWMAT { +#endif + +#ifdef DO_REPORT +#define REPORT { static ExeCounter ExeCount(__LINE__,14); ++ExeCount; } +#else +#define REPORT {} +#endif + +/********* Cholesky decomposition of a positive definite matrix *************/ + +// Suppose S is symmetrix and positive definite. Then there exists a unique +// lower triangular matrix L such that L L.t() = S; + +inline Real square(Real x) { return x*x; } + +ReturnMatrix Cholesky(const SymmetricMatrix& S) +{ + REPORT + Tracer trace("Cholesky"); + int nr = S.Nrows(); + LowerTriangularMatrix T(nr); + Real* s = S.Store(); Real* t = T.Store(); Real* ti = t; + for (int i=0; i=(ControlWord i) const { return (cw & i.cw) == i.cw; } + bool operator<=(ControlWord i) const { return (cw & i.cw) == cw; } + + // flip selected bits + ControlWord operator^(ControlWord i) const + { return ControlWord(cw ^ i.cw); } + ControlWord operator~() const { return ControlWord(~cw); } + + // convert to integer + int operator+() const { return cw; } + int operator!() const { return cw==0; } + FREE_CHECK(ControlWord) +}; + + +#endif diff --git a/3rdparty/newmat/evalue.cpp b/3rdparty/newmat/evalue.cpp new file mode 100644 index 0000000..2e04506 --- /dev/null +++ b/3rdparty/newmat/evalue.cpp @@ -0,0 +1,297 @@ +//$$evalue.cpp eigen-value decomposition + +// Copyright (C) 1991,2,3,4: R B Davies + +#define WANT_MATH + +#include "include.h" +#include "newmatap.h" +#include "newmatrm.h" +#include "precisio.h" + +#ifdef use_namespace +namespace NEWMAT { +#endif + +#ifdef DO_REPORT +#define REPORT { static ExeCounter ExeCount(__LINE__,17); ++ExeCount; } +#else +#define REPORT {} +#endif + + + +static void tred2(const SymmetricMatrix& A, DiagonalMatrix& D, + DiagonalMatrix& E, Matrix& Z) +{ + Tracer et("Evalue(tred2)"); + REPORT + Real tol = + FloatingPointPrecision::Minimum()/FloatingPointPrecision::Epsilon(); + int n = A.Nrows(); Z.ReSize(n,n); Z.Inject(A); + D.ReSize(n); E.ReSize(n); + Real* z = Z.Store(); int i; + + for (i=n-1; i > 0; i--) // i=0 is excluded + { + Real f = Z.element(i,i-1); Real g = 0.0; + int k = i-1; Real* zik = z + i*n; + while (k--) g += square(*zik++); + Real h = g + square(f); + if (g <= tol) { REPORT E.element(i) = f; h = 0.0; } + else + { + REPORT + g = sign(-sqrt(h), f); E.element(i) = g; h -= f*g; + Z.element(i,i-1) = f-g; f = 0.0; + Real* zji = z + i; Real* zij = z + i*n; Real* ej = E.Store(); + int j; + for (j=0; j=l; i--) + { + Real ei = E.element(i); Real di = D.element(i); + Real& ei1 = E.element(i+1); + g = c * ei; h = c * p; + if ( fabs(p) >= fabs(ei)) + { + REPORT + c = ei / p; r = sqrt(c*c + 1.0); + ei1 = s*p*r; s = c/r; c = 1.0/r; + } + else + { + REPORT + c = p / ei; r = sqrt(c*c + 1.0); + ei1 = s * ei * r; s = 1.0/r; c /= r; + } + p = c * di - s*g; D.element(i+1) = h + s * (c*g + s*di); + + Real* zki = z + i; Real* zki1 = zki + 1; int k = n; + if (k) for (;;) + { + REPORT + h = *zki1; *zki1 = s*(*zki) + c*h; *zki = c*(*zki) - s*h; + if (!(--k)) break; + zki += n; zki1 += n; + } + } + el = s*p; dl = c*p; + if (fabs(el) <= b) { REPORT; test = true; break; } + } + if (!test) Throw ( ConvergenceException(D) ); + dl += f; + } +/* + for (int i=0; i= 0; i--) + { + Real h = 0.0; Real f = - FloatingPointPrecision::Maximum(); + Real* d = D.Store(); Real* a = A.Store() + (i*(i+1))/2; int k = i; + while (k--) { f = *a++; *d++ = f; h += square(f); } + if (h <= tol) { REPORT *(--ei) = 0.0; h = 0.0; } + else + { + REPORT + Real g = sign(-sqrt(h), f); *(--ei) = g; h -= f*g; + f -= g; *(d-1) = f; *(a-1) = f; f = 0.0; + Real* dj = D.Store(); Real* ej = E.Store(); int j; + for (j = 0; j < i; j++) + { + Real* dk = D.Store(); Real* ak = A.Store()+(j*(j+1))/2; + Real g = 0.0; k = j; + while (k--) g += *ak++ * *dk++; + k = i-j; int l = j; + if (k) for (;;) { g += *ak * *dk++; if (!(--k)) break; ak += ++l; } + g /= h; *ej++ = g; f += g * *dj++; + } + Real hh = f / (2 * h); Real* ak = A.Store(); + dj = D.Store(); ej = E.Store(); + for (j = 0; j < i; j++) + { + f = *dj++; g = *ej - hh * f; *ej++ = g; + Real* dk = D.Store(); Real* ek = E.Store(); k = j+1; + while (k--) { *ak++ -= (f * *ek++ + g * *dk++); } + } + } + *d = *a; *a = h; + } +} + +static void tql1(DiagonalMatrix& D, DiagonalMatrix& E) +{ + Tracer et("Evalue(tql1)"); + REPORT + Real eps = FloatingPointPrecision::Epsilon(); + int n = D.Nrows(); int l; + for (l=1; l=l; i--) + { + Real ei = E.element(i); Real di = D.element(i); + Real& ei1 = E.element(i+1); + g = c * ei; h = c * p; + if ( fabs(p) >= fabs(ei)) + { + REPORT + c = ei / p; r = sqrt(c*c + 1.0); + ei1 = s*p*r; s = c/r; c = 1.0/r; + } + else + { + REPORT + c = p / ei; r = sqrt(c*c + 1.0); + ei1 = s * ei * r; s = 1.0/r; c /= r; + } + p = c * di - s*g; D.element(i+1) = h + s * (c*g + s*di); + } + el = s*p; dl = c*p; + if (fabs(el) <= b) { REPORT test = true; break; } + } + if (!test) Throw ( ConvergenceException(D) ); + Real p = dl + f; + test = false; + for (i=l; i>0; i--) + { + if (p < D.element(i-1)) { REPORT D.element(i) = D.element(i-1); } + else { REPORT test = true; break; } + } + if (!test) i=0; + D.element(i) = p; + } +} + +void EigenValues(const SymmetricMatrix& A, DiagonalMatrix& D, Matrix& Z) +{ REPORT DiagonalMatrix E; tred2(A, D, E, Z); tql2(D, E, Z); SortSV(D,Z,true); } + +void EigenValues(const SymmetricMatrix& X, DiagonalMatrix& D) +{ REPORT DiagonalMatrix E; SymmetricMatrix A; tred3(X,D,E,A); tql1(D,E); } + +void EigenValues(const SymmetricMatrix& X, DiagonalMatrix& D, + SymmetricMatrix& A) +{ REPORT DiagonalMatrix E; tred3(X,D,E,A); tql1(D,E); } + + +#ifdef use_namespace +} +#endif + diff --git a/3rdparty/newmat/example.cpp b/3rdparty/newmat/example.cpp new file mode 100644 index 0000000..36e9662 --- /dev/null +++ b/3rdparty/newmat/example.cpp @@ -0,0 +1,345 @@ +//$$ example.cpp Example of use of matrix package + +#define WANT_STREAM // include.h will get stream fns +#define WANT_MATH // include.h will get math fns + // newmatap.h will get include.h + +#include "newmatap.h" // need matrix applications + +#include "newmatio.h" // need matrix output routines + +#ifdef use_namespace +using namespace NEWMAT; // access NEWMAT namespace +#endif + + +// demonstration of matrix package on linear regression problem + + +void test1(Real* y, Real* x1, Real* x2, int nobs, int npred) +{ + cout << "\n\nTest 1 - traditional, bad\n"; + + // traditional sum of squares and products method of calculation + // but not adjusting means; maybe subject to round-off error + + // make matrix of predictor values with 1s into col 1 of matrix + int npred1 = npred+1; // number of cols including col of ones. + Matrix X(nobs,npred1); + X.Column(1) = 1.0; + + // load x1 and x2 into X + // [use << rather than = when loading arrays] + X.Column(2) << x1; X.Column(3) << x2; + + // vector of Y values + ColumnVector Y(nobs); Y << y; + + // form sum of squares and product matrix + // [use << rather than = for copying Matrix into SymmetricMatrix] + SymmetricMatrix SSQ; SSQ << X.t() * X; + + // calculate estimate + // [bracket last two terms to force this multiplication first] + // [ .i() means inverse, but inverse is not explicity calculated] + ColumnVector A = SSQ.i() * (X.t() * Y); + + // Get variances of estimates from diagonal elements of inverse of SSQ + // get inverse of SSQ - we need it for finding D + DiagonalMatrix D; D << SSQ.i(); + ColumnVector V = D.AsColumn(); + + // Calculate fitted values and residuals + ColumnVector Fitted = X * A; + ColumnVector Residual = Y - Fitted; + Real ResVar = Residual.SumSquare() / (nobs-npred1); + + // Get diagonals of Hat matrix (an expensive way of doing this) + DiagonalMatrix Hat; Hat << X * (X.t() * X).i() * X.t(); + + // print out answers + cout << "\nEstimates and their standard errors\n\n"; + + // make vector of standard errors + ColumnVector SE(npred1); + for (int i=1; i<=npred1; i++) SE(i) = sqrt(V(i)*ResVar); + // use concatenation function to form matrix and use matrix print + // to get two columns + cout << setw(11) << setprecision(5) << (A | SE) << endl; + + cout << "\nObservations, fitted value, residual value, hat value\n"; + + // use concatenation again; select only columns 2 to 3 of X + cout << setw(9) << setprecision(3) << + (X.Columns(2,3) | Y | Fitted | Residual | Hat.AsColumn()); + cout << "\n\n"; +} + +void test2(Real* y, Real* x1, Real* x2, int nobs, int npred) +{ + cout << "\n\nTest 2 - traditional, OK\n"; + + // traditional sum of squares and products method of calculation + // with subtraction of means - less subject to round-off error + // than test1 + + // make matrix of predictor values + Matrix X(nobs,npred); + + // load x1 and x2 into X + // [use << rather than = when loading arrays] + X.Column(1) << x1; X.Column(2) << x2; + + // vector of Y values + ColumnVector Y(nobs); Y << y; + + // make vector of 1s + ColumnVector Ones(nobs); Ones = 1.0; + + // calculate means (averages) of x1 and x2 [ .t() takes transpose] + RowVector M = Ones.t() * X / nobs; + + // and subtract means from x1 and x1 + Matrix XC(nobs,npred); + XC = X - Ones * M; + + // do the same to Y [use Sum to get sum of elements] + ColumnVector YC(nobs); + Real m = Sum(Y) / nobs; YC = Y - Ones * m; + + // form sum of squares and product matrix + // [use << rather than = for copying Matrix into SymmetricMatrix] + SymmetricMatrix SSQ; SSQ << XC.t() * XC; + + // calculate estimate + // [bracket last two terms to force this multiplication first] + // [ .i() means inverse, but inverse is not explicity calculated] + ColumnVector A = SSQ.i() * (XC.t() * YC); + + // calculate estimate of constant term + // [AsScalar converts 1x1 matrix to Real] + Real a = m - (M * A).AsScalar(); + + // Get variances of estimates from diagonal elements of inverse of SSQ + // [ we are taking inverse of SSQ - we need it for finding D ] + Matrix ISSQ = SSQ.i(); DiagonalMatrix D; D << ISSQ; + ColumnVector V = D.AsColumn(); + Real v = 1.0/nobs + (M * ISSQ * M.t()).AsScalar(); + // for calc variance of const + + // Calculate fitted values and residuals + int npred1 = npred+1; + ColumnVector Fitted = X * A + a; + ColumnVector Residual = Y - Fitted; + Real ResVar = Residual.SumSquare() / (nobs-npred1); + + // Get diagonals of Hat matrix (an expensive way of doing this) + Matrix X1(nobs,npred1); X1.Column(1)<0 && alpha1>0 && beta1>0 && (alpha1+beta1)<1.0; } + +Real GARCH11_LL::LogLikelihood() +{ +// cout << endl << " "; +// cout << setw(10) << setprecision(5) << beta; +// cout << setw(10) << setprecision(5) << alpha0; +// cout << setw(10) << setprecision(5) << alpha1; +// cout << setw(10) << setprecision(5) << beta1; +// cout << endl; + ColumnVector H(n); // residual variances + ColumnVector U = Y - X * beta; // the residuals + ColumnVector LH(n); // derivative of log-likelihood wrt H + // each row corresponds to one observation + LH(1)=0; + Matrix Hderiv(n,4); // rectangular matrix of derivatives + // of H wrt parameters + // each row corresponds to one observation + // each column to one of the parameters + + // Regard Y(1) as fixed and don't include in likelihood + // then put in an expected value of H(1) in place of actual value + // which we don't know. Use + // E{H(i)} = alpha0 + alpha1 * E{square(epsilon(i-1))} + beta1 * E{H(i-1)} + // and E{square(epsilon(i-1))} = E{H(i-1)} = E{H(i)} + Real denom = (1-alpha1-beta1); + H(1) = alpha0/denom; // the expected value of H + Hderiv(1,1) = 0; + Hderiv(1,2) = 1.0 / denom; + Hderiv(1,3) = alpha0 / square(denom); + Hderiv(1,4) = Hderiv(1,3); + Real LL = 0.0; // the log likelihood + Real sum1 = 0; // for forming derivative wrt beta + Real sum2 = 0; // for forming second derivative wrt beta + for (int i=2; i<=n; i++) + { + Real u1 = U(i-1); Real h1 = H(i-1); + Real h = alpha0 + alpha1*square(u1) + beta1*h1; // variance of this obsv. + H(i) = h; Real u = U(i); + LL += log(h) + square(u) / h; // -2 * log likelihood + // Hderiv are derivatives of h with respect to the parameters + // need to allow for h1 depending on parameters + Hderiv(i,1) = -2*u1*alpha1*X(i-1) + beta1*Hderiv(i-1,1); // beta + Hderiv(i,2) = 1 + beta1*Hderiv(i-1,2); // alpha0 + Hderiv(i,3) = square(u1) + beta1*Hderiv(i-1,3); // alpha1 + Hderiv(i,4) = h1 + beta1*Hderiv(i-1,4); // beta1 + LH(i) = -0.5 * (1/h - square(u/h)); + sum1 += u * X(i)/ h; + sum2 += square(X(i)) / h; + } + D = Hderiv.t()*LH; // derivatives of likelihood wrt parameters + D(1) += sum1; // add on deriv wrt beta from square(u) term +// cout << setw(10) << setprecision(5) << D << endl; + + // do minus expected value of second derivatives + if (wg) // do only if second derivatives wanted + { + Hderiv.Row(1) = 0.0; + Hderiv = H.AsDiagonal().i() * Hderiv; + D2 << Hderiv.t() * Hderiv; D2 = D2 / 2.0; + D2(1,1) += sum2; +// cout << setw(10) << setprecision(5) << D2 << endl; +// DiagonalMatrix DX; EigenValues(D2,DX); +// cout << setw(10) << setprecision(5) << DX << endl; + + } + return -0.5 * LL; +} + +ReturnMatrix GARCH11_LL::Derivatives() +{ return D; } + +ReturnMatrix GARCH11_LL::FI() +{ + if (!wg) cout << endl << "unexpected call of FI" << endl; + return D2; +} + + + +int main() +{ + // get data + ifstream fin("garch.dat"); + if (!fin) { cout << "cannot find garch.dat\n"; exit(1); } + int n; fin >> n; // series length + // Y contains the dependant variable, X the predictor variable + ColumnVector Y(n), X(n); + int i; + for (i=1; i<=n; i++) fin >> Y(i) >> X(i); + cout << "Read " << n << " data points - begin fit\n\n"; + // now do the fit + ColumnVector H(n); + GARCH11_LL garch11(Y,X); // loglikehood "object" + MLE_D_FI mle_d_fi(garch11,100,0.0001); // mle "object" + ColumnVector Para(4); // to hold the parameters + Para << 0.0 << 0.1 << 0.1 << 0.1; // starting values + // (Should change starting values to a more intelligent formula) + mle_d_fi.Fit(Para); // do the fit + ColumnVector SE; + mle_d_fi.GetStandardErrors(SE); + cout << "\n\n"; + cout << "estimates and standard errors\n"; + cout << setw(15) << setprecision(5) << (Para | SE) << endl << endl; + SymmetricMatrix Corr; + mle_d_fi.GetCorrelations(Corr); + cout << "correlation matrix\n"; + cout << setw(10) << setprecision(2) << Corr << endl << endl; + cout << "inverse of correlation matrix\n"; + cout << setw(10) << setprecision(2) << Corr.i() << endl << endl; + return 0; +} + + + diff --git a/3rdparty/newmat/garch.dat b/3rdparty/newmat/garch.dat new file mode 100644 index 0000000..661680d --- /dev/null +++ b/3rdparty/newmat/garch.dat @@ -0,0 +1,502 @@ +500 + 3.44443 -0.49800 + 1.43549 -0.49600 + 3.70477 -0.49400 + -3.82558 -0.49200 + 1.20130 -0.49000 + -2.62383 -0.48800 + -1.34321 -0.48600 + -0.35801 -0.48400 + -2.18813 -0.48200 + -1.98628 -0.48000 + -1.53262 -0.47800 + -1.45007 -0.47600 + -1.18593 -0.47400 + -0.55274 -0.47200 + -1.55943 -0.47000 + -3.10084 -0.46800 + 0.44254 -0.46600 + -0.63936 -0.46400 + 2.44989 -0.46200 + -2.14392 -0.46000 + 0.47310 -0.45800 + -1.64464 -0.45600 + 0.56628 -0.45400 + -0.80925 -0.45200 + -0.78961 -0.45000 + -1.12984 -0.44800 + -0.50715 -0.44600 + -1.75134 -0.44400 + -1.04231 -0.44200 + 0.94435 -0.44000 + 1.16306 -0.43800 + -2.87888 -0.43600 + -3.31084 -0.43400 + -3.06191 -0.43200 + 1.06977 -0.43000 + 3.50462 -0.42800 + 3.94848 -0.42600 + 1.56565 -0.42400 + -5.21742 -0.42200 + 1.94652 -0.42000 + -3.01182 -0.41800 + -3.88963 -0.41600 + -0.31319 -0.41400 + -5.71752 -0.41200 + -6.72218 -0.41000 + 3.23482 -0.40800 + 2.12675 -0.40600 + -0.10975 -0.40400 + -1.73790 -0.40200 + -0.86870 -0.40000 + -1.46022 -0.39800 + -0.22960 -0.39600 + 0.01596 -0.39400 + 0.00568 -0.39200 + -3.41221 -0.39000 + -0.47401 -0.38800 + -1.76305 -0.38600 + -0.49640 -0.38400 + -2.36184 -0.38200 + -0.09625 -0.38000 + -2.81448 -0.37800 + 3.14301 -0.37600 + 1.88025 -0.37400 + -2.61618 -0.37200 + -1.56239 -0.37000 + 0.95722 -0.36800 + 1.29773 -0.36600 + -1.45155 -0.36400 + -0.63342 -0.36200 + -0.78925 -0.36000 + 0.42473 -0.35800 + 1.39599 -0.35600 + 1.03934 -0.35400 + -0.11042 -0.35200 + 0.89123 -0.35000 + 0.93411 -0.34800 + 2.78027 -0.34600 + 3.37402 -0.34400 + -0.07986 -0.34200 + 0.79142 -0.34000 + -4.17148 -0.33800 + -1.26717 -0.33600 + -4.36262 -0.33400 + 1.17431 -0.33200 + -1.75656 -0.33000 + 0.40495 -0.32800 + 0.17572 -0.32600 + -0.27991 -0.32400 + -0.85524 -0.32200 + -1.23380 -0.32000 + -1.01889 -0.31800 + 1.08393 -0.31600 + -0.55989 -0.31400 + -1.91643 -0.31200 + -1.23897 -0.31000 + -0.85407 -0.30800 + 0.35218 -0.30600 + -1.57057 -0.30400 + 0.20665 -0.30200 + 0.19680 -0.30000 + 0.03116 -0.29800 + 0.09100 -0.29600 + 1.03416 -0.29400 + -0.16048 -0.29200 + -0.27530 -0.29000 + -0.11056 -0.28800 + -2.11332 -0.28600 + -0.51348 -0.28400 + -0.16360 -0.28200 + 1.30712 -0.28000 + -0.94392 -0.27800 + -0.06838 -0.27600 + -0.04095 -0.27400 + -2.00364 -0.27200 + 0.63950 -0.27000 + -1.02895 -0.26800 + -0.17454 -0.26600 + -0.86659 -0.26400 + 0.81698 -0.26200 + 0.51579 -0.26000 + -0.74525 -0.25800 + 2.43378 -0.25600 + 0.89364 -0.25400 + 1.81727 -0.25200 + -0.29667 -0.25000 + -0.99628 -0.24800 + 0.09452 -0.24600 + 1.73730 -0.24400 + 0.36819 -0.24200 + -1.56521 -0.24000 + 0.74916 -0.23800 + 0.56802 -0.23600 + -1.34157 -0.23400 + -0.65638 -0.23200 + -2.12183 -0.23000 + -2.35486 -0.22800 + -2.09369 -0.22600 + -3.30745 -0.22400 + -4.14763 -0.22200 + -3.56306 -0.22000 + 0.78907 -0.21800 + -3.74014 -0.21600 + -2.73770 -0.21400 + -4.43153 -0.21200 + -0.80243 -0.21000 + -0.17474 -0.20800 + -0.38250 -0.20600 + -0.98962 -0.20400 + -1.41965 -0.20200 + 0.90585 -0.20000 + 0.66850 -0.19800 + -0.81629 -0.19600 + -3.04422 -0.19400 + -0.94514 -0.19200 + 0.05209 -0.19000 + 0.21315 -0.18800 + -0.86960 -0.18600 + -1.72978 -0.18400 + -2.85623 -0.18200 + -3.15650 -0.18000 + -0.09176 -0.17800 + -1.27376 -0.17600 + -1.06533 -0.17400 + 1.21766 -0.17200 + 0.41706 -0.17000 + -0.30885 -0.16800 + 0.78344 -0.16600 + -1.76348 -0.16400 + 2.46496 -0.16200 + -0.32712 -0.16000 + 1.38586 -0.15800 + 0.33513 -0.15600 + 0.66116 -0.15400 + 0.92420 -0.15200 + -0.67200 -0.15000 + -0.90707 -0.14800 + -0.41053 -0.14600 + 0.62288 -0.14400 + 0.78497 -0.14200 + 0.99670 -0.14000 + -2.19972 -0.13800 + 0.21922 -0.13600 + -0.15003 -0.13400 + -0.72706 -0.13200 + 0.13596 -0.13000 + -0.00235 -0.12800 + 0.50025 -0.12600 + 0.80875 -0.12400 + -0.71010 -0.12200 + -3.85477 -0.12000 + 2.45549 -0.11800 + -2.87772 -0.11600 + 1.03987 -0.11400 + -1.41914 -0.11200 + -1.87414 -0.11000 + 1.32656 -0.10800 + 2.15281 -0.10600 + 3.25624 -0.10400 + -3.72420 -0.10200 + -4.01675 -0.10000 + 1.19241 -0.09800 + 0.35189 -0.09600 + -0.40223 -0.09400 + 0.84146 -0.09200 + 1.08746 -0.09000 + 2.20874 -0.08800 + -0.18822 -0.08600 + -1.29757 -0.08400 + -1.36022 -0.08200 + 0.54575 -0.08000 + -0.23008 -0.07800 + 0.00750 -0.07600 + 1.81600 -0.07400 + -0.07319 -0.07200 + 0.70587 -0.07000 + -2.67033 -0.06800 + 0.67446 -0.06600 + -0.21002 -0.06400 + 2.11396 -0.06200 + -0.94189 -0.06000 + 0.27803 -0.05800 + -0.92172 -0.05600 + 1.37776 -0.05400 + 2.72565 -0.05200 + 0.47208 -0.05000 + -3.33845 -0.04800 + -0.20695 -0.04600 + -2.18905 -0.04400 + -4.33413 -0.04200 + 0.17860 -0.04000 + -5.57817 -0.03800 + -0.32771 -0.03600 + 1.47321 -0.03400 + 2.33767 -0.03200 + 1.22282 -0.03000 + -1.48593 -0.02800 + 0.79435 -0.02600 + 0.54491 -0.02400 + 1.31706 -0.02200 + -1.26472 -0.02000 + -1.72634 -0.01800 + -3.85299 -0.01600 + 0.43717 -0.01400 + -3.39362 -0.01200 + -3.60823 -0.01000 + 0.18868 -0.00800 + 1.23035 -0.00600 + 1.70454 -0.00400 + -1.44766 -0.00200 + 0.99808 0.00000 + 0.24554 0.00200 + 1.44446 0.00400 + 0.96697 0.00600 + -3.30396 0.00800 + -5.97223 0.01000 + 1.22379 0.01200 + 6.00662 0.01400 + 4.43380 0.01600 + 2.01081 0.01800 + -2.74552 0.02000 + 1.19452 0.02200 + 3.81020 0.02400 + 2.04597 0.02600 + 0.66764 0.02800 + 2.68350 0.03000 + -2.85514 0.03200 + 0.21727 0.03400 + 1.88780 0.03600 + 2.23549 0.03800 + 1.57589 0.04000 + 1.92344 0.04200 + -1.78414 0.04400 + -0.67367 0.04600 + 0.19357 0.04800 + 1.00246 0.05000 + 2.13782 0.05200 + 1.90734 0.05400 + 0.43943 0.05600 + -0.55699 0.05800 + 1.76985 0.06000 + -0.77310 0.06200 + -0.33812 0.06400 + -0.85572 0.06600 + -2.49390 0.06800 + -3.17954 0.07000 + 2.86688 0.07200 + 2.03589 0.07400 + -1.34393 0.07600 + 1.01839 0.07800 + -0.15220 0.08000 + 1.17978 0.08200 + 1.96847 0.08400 + 1.90596 0.08600 + 3.72675 0.08800 + -0.65513 0.09000 + -1.45672 0.09200 + -0.08779 0.09400 + -0.39105 0.09600 + 1.88645 0.09800 + 2.34710 0.10000 + -2.65900 0.10200 + -0.47996 0.10400 + -2.51512 0.10600 + -3.59097 0.10800 + -1.62117 0.11000 + -2.43947 0.11200 + 3.50339 0.11400 + 3.05144 0.11600 + -2.73565 0.11800 + -1.31556 0.12000 + 1.85250 0.12200 + -1.03864 0.12400 + 0.79097 0.12600 + -0.12426 0.12800 + 0.48964 0.13000 + 1.42419 0.13200 + 0.55098 0.13400 + -0.78121 0.13600 + -0.01716 0.13800 + -1.27952 0.14000 + 1.91981 0.14200 + 0.25822 0.14400 + 0.68516 0.14600 + 1.25616 0.14800 + -1.40178 0.15000 + -0.99551 0.15200 + 1.45728 0.15400 + -1.66513 0.15600 + -1.20284 0.15800 + 1.84775 0.16000 + -1.91535 0.16200 + 0.34142 0.16400 + 1.90641 0.16600 + 1.55524 0.16800 + 1.77263 0.17000 + 1.25731 0.17200 + -0.66331 0.17400 + 0.93506 0.17600 + 0.87120 0.17800 + 0.73840 0.18000 + -1.48181 0.18200 + -1.76043 0.18400 + 0.96176 0.18600 + 1.29128 0.18800 + 1.20889 0.19000 + 0.78386 0.19200 + 1.54668 0.19400 + -0.25996 0.19600 + 0.93201 0.19800 + 1.30374 0.20000 + 2.23175 0.20200 + -0.42525 0.20400 + 1.12784 0.20600 + -0.42014 0.20800 + -0.00577 0.21000 + -1.14837 0.21200 + 2.48454 0.21400 + -0.51466 0.21600 + -0.06257 0.21800 + -1.25993 0.22000 + 1.26623 0.22200 + 3.05099 0.22400 + -1.84077 0.22600 + -0.36058 0.22800 + 2.65788 0.23000 + -0.17717 0.23200 + 1.68915 0.23400 + -1.53406 0.23600 + 1.78097 0.23800 + -1.24217 0.24000 + -4.17466 0.24200 + 0.80433 0.24400 + 0.70856 0.24600 + -0.96881 0.24800 + 0.87322 0.25000 + -2.45936 0.25200 + 2.95677 0.25400 + 1.81628 0.25600 + -0.85793 0.25800 + 1.02089 0.26000 + -1.05425 0.26200 + -0.29861 0.26400 + 1.69682 0.26600 + 1.07389 0.26800 + 0.22183 0.27000 + 1.72766 0.27200 + -0.99746 0.27400 + -2.14178 0.27600 + -1.67924 0.27800 + 1.56520 0.28000 + -0.86864 0.28200 + 2.65155 0.28400 + -2.27166 0.28600 + 0.68310 0.28800 + 0.84102 0.29000 + 0.64604 0.29200 + 0.68712 0.29400 + 1.56297 0.29600 + -0.68136 0.29800 + 1.25519 0.30000 + -1.38612 0.30200 + 2.36320 0.30400 + 5.40128 0.30600 + -1.14776 0.30800 + -1.36081 0.31000 + 0.07679 0.31200 + -0.17231 0.31400 + 1.19094 0.31600 + 0.09285 0.31800 + -0.85191 0.32000 + -0.43739 0.32200 + -0.22950 0.32400 + 2.21298 0.32600 + 0.75045 0.32800 + 0.97489 0.33000 + -0.62158 0.33200 + 1.10503 0.33400 + 0.36977 0.33600 + -0.32894 0.33800 + 2.13729 0.34000 + 4.42019 0.34200 + -2.80916 0.34400 + 2.28181 0.34600 + 2.59053 0.34800 + -1.52891 0.35000 + -1.35202 0.35200 + 1.27639 0.35400 + 0.28782 0.35600 + 0.83540 0.35800 + -0.32867 0.36000 + 1.16891 0.36200 + 0.02511 0.36400 + -0.71878 0.36600 + 0.69811 0.36800 + 1.29399 0.37000 + 0.86300 0.37200 + -0.12139 0.37400 + -0.28069 0.37600 + 3.07623 0.37800 + -2.91737 0.38000 + 0.16709 0.38200 + -1.60815 0.38400 + 0.02795 0.38600 + 1.19657 0.38800 + 0.04390 0.39000 + 0.95983 0.39200 + -1.83683 0.39400 + -1.69167 0.39600 + 3.15836 0.39800 + 2.24002 0.40000 + 0.45225 0.40200 + 1.35014 0.40400 + -1.67177 0.40600 + -0.97317 0.40800 + 4.20922 0.41000 + -0.03983 0.41200 + -0.35933 0.41400 + -1.49772 0.41600 + 2.72900 0.41800 + -2.61061 0.42000 + -0.26581 0.42200 + -4.30162 0.42400 + -3.55225 0.42600 + -5.60739 0.42800 + 2.26730 0.43000 + -0.05568 0.43200 + -0.14348 0.43400 + -1.73015 0.43600 + -1.01649 0.43800 + -2.39568 0.44000 + 3.41626 0.44200 + 2.23817 0.44400 + -1.02668 0.44600 + 3.18086 0.44800 + 0.71908 0.45000 + -0.37826 0.45200 + -0.39837 0.45400 + 0.50378 0.45600 + 0.38287 0.45800 + 2.95404 0.46000 + -1.16143 0.46200 + 0.89913 0.46400 + -0.82190 0.46600 + 1.30638 0.46800 + 0.89138 0.47000 + 0.85038 0.47200 + -1.38925 0.47400 + 3.74026 0.47600 + 4.60999 0.47800 + 1.31364 0.48000 + 5.17183 0.48200 + 1.82162 0.48400 + 1.09830 0.48600 + 1.36666 0.48800 + -0.09676 0.49000 + 0.74155 0.49200 + 1.21910 0.49400 + 1.20746 0.49600 + 0.82236 0.49800 + 1.54856 0.50000 + diff --git a/3rdparty/newmat/garch.txt b/3rdparty/newmat/garch.txt new file mode 100644 index 0000000..036cb09 --- /dev/null +++ b/3rdparty/newmat/garch.txt @@ -0,0 +1,45 @@ +Read 500 data points - begin fit + + + -2247.993783 25945.58733 + -537.4533239 + -554.5885614 + -537.2164816 26.36266449 + -520.7034774 + -519.7069034 6.153112127 + -516.7045383 + -516.690955 1.394658892 + -516.396412 + -516.215149 0.1555724069 + -516.1509657 + -516.1486772 0.02342168856 + -516.1420803 + -516.1404735 0.002342030975 + -516.1395282 + -516.1394913 0.0003287516503 + -516.1393961 + -516.1393755 3.25631984e-05 +Converged + + +estimates and standard errors + 1.56690 0.22311 + 0.80046 0.20274 + 0.45307 0.08428 + 0.34655 0.09081 + + +correlation matrix + 1.00 0.00 -0.02 0.01 + 0.00 1.00 0.21 -0.81 + -0.02 0.21 1.00 -0.63 + 0.01 -0.81 -0.63 1.00 + + +inverse of correlation matrix + 1.00 0.03 0.04 0.04 + 0.03 4.77 2.28 5.28 + 0.04 2.28 2.73 3.55 + 0.04 5.28 3.55 7.48 + + diff --git a/3rdparty/newmat/hholder.cpp b/3rdparty/newmat/hholder.cpp new file mode 100644 index 0000000..3377f76 --- /dev/null +++ b/3rdparty/newmat/hholder.cpp @@ -0,0 +1,199 @@ +//$$ hholder.cpp QR decomposition + +// Copyright (C) 1991,2,3,4: R B Davies + +#define WANT_MATH + +#include "include.h" + +#include "newmatap.h" + +#ifdef use_namespace +namespace NEWMAT { +#endif + +#ifdef DO_REPORT +#define REPORT { static ExeCounter ExeCount(__LINE__,16); ++ExeCount; } +#else +#define REPORT {} +#endif + + +/*************************** QR decompositions ***************************/ + +inline Real square(Real x) { return x*x; } + +void QRZT(Matrix& X, LowerTriangularMatrix& L) +{ + REPORT + Tracer et("QZT(1)"); + int n = X.Ncols(); int s = X.Nrows(); L.ReSize(s); + Real* xi = X.Store(); int k; + for (int i=0; i= 3 + #define _STANDARD_ // use standard library + #define ios_format_flags ios::fmtflags +#endif + +// for Intel C++ for Linux +#if defined __ICC + #define _STANDARD_ // use standard library + #define ios_format_flags ios::fmtflags +#endif + +// for Microsoft Visual C++ 7 and above (and Intel simulating these) +#if defined _MSC_VER && _MSC_VER >= 1300 + #define _STANDARD_ // use standard library +#endif + + +#ifdef _STANDARD_ // using standard library + #include + #if defined _MSC_VER && _MSC_VER == 1200 + #include // for VC++6 + #endif + #ifdef WANT_STREAM + #include + #include + #endif + #ifdef WANT_MATH + #include + #endif + #ifdef WANT_STRING + #include + #endif + #ifdef WANT_TIME + #include + #endif + #ifdef WANT_FSTREAM + #include + #endif + using namespace std; +#else + +#define DEFAULT_HEADER // use AT&T style header + // if no other compiler is recognised + +#ifdef _MSC_VER // Microsoft + #include + +// reactivate these statements to run under MSC version 7.0 +// typedef int jmp_buf[9]; +// extern "C" +// { +// int __cdecl setjmp(jmp_buf); +// void __cdecl longjmp(jmp_buf, int); +// } + + #ifdef WANT_STREAM + #include + #include + #endif + #ifdef WANT_MATH + #include + #include + #endif + #ifdef WANT_STRING + #include + #endif + #ifdef WANT_TIME + #include + #endif + #ifdef WANT_FSTREAM + #include + #endif + #undef DEFAULT_HEADER +#endif + +#ifdef __ZTC__ // Zortech + #include + #ifdef WANT_STREAM + #include + #include + #define flush "" // not defined in iomanip? + #endif + #ifdef WANT_MATH + #include + #include + #endif + #ifdef WANT_STRING + #include + #endif + #ifdef WANT_TIME + #include + #endif + #ifdef WANT_FSTREAM + #include + #endif + #undef DEFAULT_HEADER +#endif + +#if defined __BCPLUSPLUS__ || defined __TURBOC__ // Borland or Turbo + #include + #ifdef WANT_STREAM + #include + #include + #endif + #ifdef WANT_MATH + #include + #include // Borland has both float and values + // but values.h returns +INF for + // MAXDOUBLE in BC5 + #endif + #ifdef WANT_STRING + #include + #endif + #ifdef WANT_TIME + #include + #endif + #ifdef WANT_FSTREAM + #include + #endif + #undef DEFAULT_HEADER +#endif + +#ifdef __GNUG__ // Gnu C++ + #include + #ifdef WANT_STREAM + #include + #include + #endif + #ifdef WANT_MATH + #include + #include + #endif + #ifdef WANT_STRING + #include + #endif + #ifdef WANT_TIME + #include + #endif + #ifdef WANT_FSTREAM + #include + #endif + #undef DEFAULT_HEADER +#endif + +#ifdef __WATCOMC__ // Watcom C/C++ + #include + #ifdef WANT_STREAM + #include + #include + #endif + #ifdef WANT_MATH + #include + #include + #endif + #ifdef WANT_STRING + #include + #endif + #ifdef WANT_TIME + #include + #endif + #ifdef WANT_FSTREAM + #include + #endif + #undef DEFAULT_HEADER +#endif + + +#ifdef macintosh // MPW C++ on the Mac +#include +#ifdef WANT_STREAM +#include +#include +#endif +#ifdef WANT_MATH +#include +#include +#endif +#ifdef WANT_STRING +#include +#endif +#ifdef WANT_TIME +#include +#endif +#ifdef WANT_FSTREAM +#include +#endif +#undef DEFAULT_HEADER +#endif + +#ifdef use_float_h // use float.h for precision values +#include +#ifdef WANT_STREAM +#include +#include +#endif +#ifdef WANT_MATH +#include +#include +#endif +#ifdef WANT_STRING +#include +#endif +#ifdef WANT_TIME +#include +#endif +#ifdef WANT_FSTREAM +#include +#endif +#undef DEFAULT_HEADER +#endif + + +#ifdef DEFAULT_HEADER // for example AT&T +#define ATandT +#include +#ifdef WANT_STREAM +#include +#include +#endif +#ifdef WANT_MATH +#include +#define SystemV // use System V +#include +#endif +#ifdef WANT_STRING +#include +#endif +#ifdef WANT_TIME +#include +#endif +#ifdef WANT_FSTREAM +#include +#endif +#endif // DEFAULT_HEADER + +#endif // _STANDARD_ + +#ifdef use_namespace +namespace RBD_COMMON { +#endif + + +#ifdef USING_FLOAT // set precision type to float +typedef float Real; +typedef double long_Real; +#endif + +#ifdef USING_DOUBLE // set precision type to double +typedef double Real; +typedef long double long_Real; +#endif + + +// This is for (very old) compilers that do not have bool automatically defined + +#ifndef bool_LIB +#define bool_LIB 0 + +class bool +{ + int value; +public: + bool(const int b) { value = b ? 1 : 0; } + bool(const void* b) { value = b ? 1 : 0; } + bool() {} + operator int() const { return value; } + int operator!() const { return !value; } +}; + + +const bool true = 1; +const bool false = 0; + +#endif + + +#ifdef use_namespace +} +#endif + + +#ifdef use_namespace +namespace RBD_COMMON {} +namespace RBD_LIBRARIES // access all my libraries +{ + using namespace RBD_COMMON; +} +#endif + + +#endif + + +///@} + diff --git a/3rdparty/newmat/jacobi.cpp b/3rdparty/newmat/jacobi.cpp new file mode 100644 index 0000000..4fc43e8 --- /dev/null +++ b/3rdparty/newmat/jacobi.cpp @@ -0,0 +1,123 @@ +//$$jacobi.cpp jacobi eigenvalue analysis + +// Copyright (C) 1991,2,3,4: R B Davies + + +//#define WANT_STREAM + + +#define WANT_MATH + +#include "include.h" +#include "newmatap.h" +#include "precisio.h" +#include "newmatrm.h" + +#ifdef use_namespace +namespace NEWMAT { +#endif + +#ifdef DO_REPORT +#define REPORT { static ExeCounter ExeCount(__LINE__,18); ++ExeCount; } +#else +#define REPORT {} +#endif + + +void Jacobi(const SymmetricMatrix& X, DiagonalMatrix& D, SymmetricMatrix& A, + Matrix& V, bool eivec) +{ + Real epsilon = FloatingPointPrecision::Epsilon(); + Tracer et("Jacobi"); + REPORT + int n = X.Nrows(); DiagonalMatrix B(n), Z(n); D.ReSize(n); A = X; + if (eivec) { REPORT V.ReSize(n,n); D = 1.0; V = D; } + B << A; D = B; Z = 0.0; A.Inject(Z); + bool converged = false; + for (int i=1; i<=50; i++) + { + Real sm=0.0; Real* a = A.Store(); int p = A.Storage(); + while (p--) sm += fabs(*a++); // have previously zeroed diags + if (sm==0.0) { REPORT converged = true; break; } + Real tresh = (i<4) ? 0.2 * sm / square(n) : 0.0; a = A.Store(); + for (p = 0; p < n; p++) + { + Real* ap1 = a + (p*(p+1))/2; + Real& zp = Z.element(p); Real& dp = D.element(p); + for (int q = p+1; q < n; q++) + { + Real* ap = ap1; Real* aq = a + (q*(q+1))/2; + Real& zq = Z.element(q); Real& dq = D.element(q); + Real& apq = A.element(q,p); + Real g = 100 * fabs(apq); Real adp = fabs(dp); Real adq = fabs(dq); + + if (i>4 && g < epsilon*adp && g < epsilon*adq) { REPORT apq = 0.0; } + else if (fabs(apq) > tresh) + { + REPORT + Real t; Real h = dq - dp; Real ah = fabs(h); + if (g < epsilon*ah) { REPORT t = apq / h; } + else + { + REPORT + Real theta = 0.5 * h / apq; + t = 1.0 / ( fabs(theta) + sqrt(1.0 + square(theta)) ); + if (theta<0.0) { REPORT t = -t; } + } + Real c = 1.0 / sqrt(1.0 + square(t)); Real s = t * c; + Real tau = s / (1.0 + c); h = t * apq; + zp -= h; zq += h; dp -= h; dq += h; apq = 0.0; + int j = p; + while (j--) + { + g = *ap; h = *aq; + *ap++ = g-s*(h+g*tau); *aq++ = h+s*(g-h*tau); + } + int ip = p+1; j = q-ip; ap += ip++; aq++; + while (j--) + { + g = *ap; h = *aq; + *ap = g-s*(h+g*tau); *aq++ = h+s*(g-h*tau); + ap += ip++; + } + if (q < n-1) // last loop is non-empty + { + int iq = q+1; j = n-iq; ap += ip++; aq += iq++; + for (;;) + { + g = *ap; h = *aq; + *ap = g-s*(h+g*tau); *aq = h+s*(g-h*tau); + if (!(--j)) break; + ap += ip++; aq += iq++; + } + } + if (eivec) + { + REPORT + RectMatrixCol VP(V,p); RectMatrixCol VQ(V,q); + Rotate(VP, VQ, tau, s); + } + } + } + } + B = B + Z; D = B; Z = 0.0; + } + if (!converged) Throw(ConvergenceException(X)); + if (eivec) SortSV(D, V, true); + else SortAscending(D); +} + +void Jacobi(const SymmetricMatrix& X, DiagonalMatrix& D) +{ REPORT SymmetricMatrix A; Matrix V; Jacobi(X,D,A,V,false); } + +void Jacobi(const SymmetricMatrix& X, DiagonalMatrix& D, SymmetricMatrix& A) +{ REPORT Matrix V; Jacobi(X,D,A,V,false); } + +void Jacobi(const SymmetricMatrix& X, DiagonalMatrix& D, Matrix& V) +{ REPORT SymmetricMatrix A; Jacobi(X,D,A,V,true); } + + +#ifdef use_namespace +} +#endif + diff --git a/3rdparty/newmat/myexcept.cpp b/3rdparty/newmat/myexcept.cpp new file mode 100644 index 0000000..f9ba8b5 --- /dev/null +++ b/3rdparty/newmat/myexcept.cpp @@ -0,0 +1,496 @@ +/// \ingroup rbd_common +///@{ + +/// \file myexcept.cpp +/// Exception handler. +/// The low level classes for +/// - my exception class hierarchy +/// - the functions needed for my simulated exceptions +/// - the Tracer mechanism +/// - routines for checking whether new and delete calls are balanced +/// + +// Copyright (C) 1993,4,6: R B Davies + + +#define WANT_STREAM // include.h will get stream fns +#define WANT_STRING + +#include "include.h" // include standard files + + +#include "myexcept.h" // for exception handling + +#ifdef use_namespace +namespace RBD_COMMON { +#endif + + +//#define REG_DEREG // for print out uses of new/delete +//#define CLEAN_LIST // to print entries being added to + // or deleted from cleanup list + +#ifdef SimulateExceptions + +void Throw() +{ + for (Janitor* jan = JumpBase::jl->janitor; jan; jan = jan->NextJanitor) + jan->CleanUp(); + JumpItem* jx = JumpBase::jl->ji; // previous jumpbase; + if ( !jx ) { Terminate(); } // jl was initial JumpItem + JumpBase::jl = jx; // drop down a level; cannot be in front + // of previous line + Tracer::last = JumpBase::jl->trace; + longjmp(JumpBase::jl->env, 1); +} + +#endif // end of simulate exceptions + + +unsigned long BaseException::Select; +char* BaseException::what_error; +int BaseException::SoFar; +int BaseException::LastOne; + +BaseException::BaseException(const char* a_what) +{ + Select++; SoFar = 0; + if (!what_error) // make space for exception message + { + LastOne = 511; + what_error = new char[512]; + if (!what_error) // fail to make space + { + LastOne = 0; + what_error = (char *)"No heap space for exception message\n"; + } + } + AddMessage("\n\nAn exception has been thrown\n"); + AddMessage(a_what); + if (a_what) Tracer::AddTrace(); +} + +void BaseException::AddMessage(const char* a_what) +{ + if (a_what) + { + int l = strlen(a_what); int r = LastOne - SoFar; + if (l < r) { strcpy(what_error+SoFar, a_what); SoFar += l; } + else if (r > 0) + { + strncpy(what_error+SoFar, a_what, r); + what_error[LastOne] = 0; + SoFar = LastOne; + } + } +} + +void BaseException::AddInt(int value) +{ + bool negative; + if (value == 0) { AddMessage("0"); return; } + else if (value < 0) { value = -value; negative = true; } + else negative = false; + int n = 0; int v = value; // how many digits will we need? + while (v > 0) { v /= 10; n++; } + if (negative) n++; + if (LastOne-SoFar < n) { AddMessage("***"); return; } + + SoFar += n; n = SoFar; what_error[n] = 0; + while (value > 0) + { + int nv = value / 10; int rm = value - nv * 10; value = nv; + what_error[--n] = (char)(rm + '0'); + } + if (negative) what_error[--n] = '-'; + return; +} + +void Tracer::PrintTrace() +{ + cout << "\n"; + for (Tracer* et = last; et; et=et->previous) + cout << " * " << et->entry << "\n"; +} + +void Tracer::AddTrace() +{ + if (last) + { + BaseException::AddMessage("Trace: "); + BaseException::AddMessage(last->entry); + for (Tracer* et = last->previous; et; et=et->previous) + { + BaseException::AddMessage("; "); + BaseException::AddMessage(et->entry); + } + BaseException::AddMessage(".\n"); + } +} + +#ifdef SimulateExceptions + + +Janitor::Janitor() +{ + if (do_not_link) + { + do_not_link = false; NextJanitor = 0; OnStack = false; +#ifdef CLEAN_LIST + cout << "Not added to clean-list " << (unsigned long)this << "\n"; +#endif + } + else + { + OnStack = true; +#ifdef CLEAN_LIST + cout << "Add to clean-list " << (unsigned long)this << "\n"; +#endif + NextJanitor = JumpBase::jl->janitor; JumpBase::jl->janitor=this; + } +} + +Janitor::~Janitor() +{ + // expect the item to be deleted to be first on list + // but must be prepared to search list + if (OnStack) + { +#ifdef CLEAN_LIST + cout << "Delete from clean-list " << (unsigned long)this << "\n"; +#endif + Janitor* lastjan = JumpBase::jl->janitor; + if (this == lastjan) JumpBase::jl->janitor = NextJanitor; + else + { + for (Janitor* jan = lastjan->NextJanitor; jan; + jan = lastjan->NextJanitor) + { + if (jan==this) + { lastjan->NextJanitor = jan->NextJanitor; return; } + lastjan=jan; + } + + Throw(BaseException( +"Cannot resolve memory linked list\nSee notes in myexcept.cpp for details\n" + )); + + +// This message occurs when a call to ~Janitor() occurs, apparently +// without a corresponding call to Janitor(). This could happen if my +// way of deciding whether a constructor is being called by new +// fails. + +// It may happen if you are using my simulated exceptions and also have +// your compiler s exceptions turned on. + +// It can also happen if you have a class derived from Janitor +// which does not include a copy constructor [ eg X(const &X) ]. +// Possibly also if delete is applied an object on the stack (ie not +// called by new). Otherwise, it is a bug in myexcept or your compiler. +// If you do not #define TEMPS_DESTROYED_QUICKLY you will get this +// error with Microsoft C 7.0. There are probably situations where +// you will get this when you do define TEMPS_DESTROYED_QUICKLY. This +// is a bug in MSC. Beware of "operator" statements for defining +// conversions; particularly for converting from a Base class to a +// Derived class. + +// You may get away with simply deleting this error message and Throw +// statement if you can not find a better way of overcoming the +// problem. In any case please tell me if you get this error message, +// particularly for compilers apart from Microsoft C 7.0. + + + } + } +} + +JumpItem* JumpBase::jl; // will be set to zero +jmp_buf JumpBase::env; +bool Janitor::do_not_link; // will be set to false + + +int JanitorInitializer::ref_count; + +JanitorInitializer::JanitorInitializer() +{ + if (ref_count++ == 0) new JumpItem; + // need JumpItem at head of list +} + +#endif // end of SimulateExceptions + +Tracer* Tracer::last; // will be set to zero + + +void Terminate() +{ + cout << "\n\nThere has been an exception with no handler - exiting"; + const char* what = BaseException::what(); + if (what) cout << what << "\n"; + exit(1); +} + + + +#ifdef DO_FREE_CHECK +// Routines for tracing whether new and delete calls are balanced + +FreeCheckLink::FreeCheckLink() : next(FreeCheck::next) + { FreeCheck::next = this; } + +FCLClass::FCLClass(void* t, char* name) : ClassName(name) { ClassStore=t; } + +FCLRealArray::FCLRealArray(void* t, char* o, int s) + : Operation(o), size(s) { ClassStore=t; } + +FCLIntArray::FCLIntArray(void* t, char* o, int s) + : Operation(o), size(s) { ClassStore=t; } + +FreeCheckLink* FreeCheck::next; +int FreeCheck::BadDelete; + +void FCLClass::Report() +{ cout << " " << ClassName << " " << (unsigned long)ClassStore << "\n"; } + +void FCLRealArray::Report() +{ + cout << " " << Operation << " " << (unsigned long)ClassStore << + " " << size << "\n"; +} + +void FCLIntArray::Report() +{ + cout << " " << Operation << " " << (unsigned long)ClassStore << + " " << size << "\n"; +} + +void FreeCheck::Register(void* t, char* name) +{ + FCLClass* f = new FCLClass(t,name); + if (!f) { cout << "Out of memory in FreeCheck\n"; exit(1); } +#ifdef REG_DEREG + cout << "Registering " << name << " " << (unsigned long)t << "\n"; +#endif +} + +void FreeCheck::RegisterR(void* t, char* o, int s) +{ + FCLRealArray* f = new FCLRealArray(t,o,s); + if (!f) { cout << "Out of memory in FreeCheck\n"; exit(1); } +#ifdef REG_DEREG + cout << o << " " << s << " " << (unsigned long)t << "\n"; +#endif +} + +void FreeCheck::RegisterI(void* t, char* o, int s) +{ + FCLIntArray* f = new FCLIntArray(t,o,s); + if (!f) { cout << "Out of memory in FreeCheck\n"; exit(1); } +#ifdef REG_DEREG + cout << o << " " << s << " " << (unsigned long)t << "\n"; +#endif +} + +void FreeCheck::DeRegister(void* t, char* name) +{ + FreeCheckLink* last = 0; +#ifdef REG_DEREG + cout << "Deregistering " << name << " " << (unsigned long)t << "\n"; +#endif + for (FreeCheckLink* fcl = next; fcl; fcl = fcl->next) + { + if (fcl->ClassStore==t) + { + if (last) last->next = fcl->next; else next = fcl->next; + delete fcl; return; + } + last = fcl; + } + cout << "\nRequest to delete non-existent object of class and location:\n"; + cout << " " << name << " " << (unsigned long)t << "\n"; + BadDelete++; + Tracer::PrintTrace(); + cout << "\n"; +} + +void FreeCheck::DeRegisterR(void* t, char* o, int s) +{ + FreeCheckLink* last = 0; +#ifdef REG_DEREG + cout << o << " " << s << " " << (unsigned long)t << "\n"; +#endif + for (FreeCheckLink* fcl = next; fcl; fcl = fcl->next) + { + if (fcl->ClassStore==t) + { + if (last) last->next = fcl->next; else next = fcl->next; + if (s >= 0 && ((FCLRealArray*)fcl)->size != s) + { + cout << "\nArray sizes do not agree:\n"; + cout << " " << o << " " << (unsigned long)t + << " " << ((FCLRealArray*)fcl)->size << " " << s << "\n"; + Tracer::PrintTrace(); + cout << "\n"; + } + delete fcl; return; + } + last = fcl; + } + cout << "\nRequest to delete non-existent real array:\n"; + cout << " " << o << " " << (unsigned long)t << " " << s << "\n"; + BadDelete++; + Tracer::PrintTrace(); + cout << "\n"; +} + +void FreeCheck::DeRegisterI(void* t, char* o, int s) +{ + FreeCheckLink* last = 0; +#ifdef REG_DEREG + cout << o << " " << s << " " << (unsigned long)t << "\n"; +#endif + for (FreeCheckLink* fcl = next; fcl; fcl = fcl->next) + { + if (fcl->ClassStore==t) + { + if (last) last->next = fcl->next; else next = fcl->next; + if (s >= 0 && ((FCLIntArray*)fcl)->size != s) + { + cout << "\nArray sizes do not agree:\n"; + cout << " " << o << " " << (unsigned long)t + << " " << ((FCLIntArray*)fcl)->size << " " << s << "\n"; + Tracer::PrintTrace(); + cout << "\n"; + } + delete fcl; return; + } + last = fcl; + } + cout << "\nRequest to delete non-existent int array:\n"; + cout << " " << o << " " << (unsigned long)t << " " << s << "\n"; + BadDelete++; + Tracer::PrintTrace(); + cout << "\n"; +} + +void FreeCheck::Status() +{ + if (next) + { + cout << "\nObjects of the following classes remain undeleted:\n"; + for (FreeCheckLink* fcl = next; fcl; fcl = fcl->next) fcl->Report(); + cout << "\n"; + } + else cout << "\nNo objects remain undeleted\n\n"; + if (BadDelete) + { + cout << "\nThere were " << BadDelete << + " requests to delete non-existent items\n\n"; + } +} + +#endif // end of DO_FREE_CHECK + +// derived exception bodies + +Logic_error::Logic_error(const char* a_what) : BaseException() +{ + Select = BaseException::Select; + AddMessage("Logic error:- "); AddMessage(a_what); + if (a_what) Tracer::AddTrace(); +} + +Runtime_error::Runtime_error(const char* a_what) + : BaseException() +{ + Select = BaseException::Select; + AddMessage("Runtime error:- "); AddMessage(a_what); + if (a_what) Tracer::AddTrace(); +} + +Domain_error::Domain_error(const char* a_what) : Logic_error() +{ + Select = BaseException::Select; + AddMessage("domain error\n"); AddMessage(a_what); + if (a_what) Tracer::AddTrace(); +} + +Invalid_argument::Invalid_argument(const char* a_what) : Logic_error() +{ + Select = BaseException::Select; + AddMessage("invalid argument\n"); AddMessage(a_what); + if (a_what) Tracer::AddTrace(); +} + +Length_error::Length_error(const char* a_what) : Logic_error() +{ + Select = BaseException::Select; + AddMessage("length error\n"); AddMessage(a_what); + if (a_what) Tracer::AddTrace(); +} + +Out_of_range::Out_of_range(const char* a_what) : Logic_error() +{ + Select = BaseException::Select; + AddMessage("out of range\n"); AddMessage(a_what); + if (a_what) Tracer::AddTrace(); +} + +//Bad_cast::Bad_cast(const char* a_what) : Logic_error() +//{ +// Select = BaseException::Select; +// AddMessage("bad cast\n"); AddMessage(a_what); +// if (a_what) Tracer::AddTrace(); +//} + +//Bad_typeid::Bad_typeid(const char* a_what) : Logic_error() +//{ +// Select = BaseException::Select; +// AddMessage("bad type id.\n"); AddMessage(a_what); +// if (a_what) Tracer::AddTrace(); +//} + +Range_error::Range_error(const char* a_what) : Runtime_error() +{ + Select = BaseException::Select; + AddMessage("range error\n"); AddMessage(a_what); + if (a_what) Tracer::AddTrace(); +} + +Overflow_error::Overflow_error(const char* a_what) : Runtime_error() +{ + Select = BaseException::Select; + AddMessage("overflow error\n"); AddMessage(a_what); + if (a_what) Tracer::AddTrace(); +} + +Bad_alloc::Bad_alloc(const char* a_what) : BaseException() +{ + Select = BaseException::Select; + AddMessage("bad allocation\n"); AddMessage(a_what); + if (a_what) Tracer::AddTrace(); +} + + + + +unsigned long Logic_error::Select; +unsigned long Runtime_error::Select; +unsigned long Domain_error::Select; +unsigned long Invalid_argument::Select; +unsigned long Length_error::Select; +unsigned long Out_of_range::Select; +//unsigned long Bad_cast::Select; +//unsigned long Bad_typeid::Select; +unsigned long Range_error::Select; +unsigned long Overflow_error::Select; +unsigned long Bad_alloc::Select; + +#ifdef use_namespace +} +#endif + + +///@} + diff --git a/3rdparty/newmat/myexcept.h b/3rdparty/newmat/myexcept.h new file mode 100644 index 0000000..c7aff8e --- /dev/null +++ b/3rdparty/newmat/myexcept.h @@ -0,0 +1,446 @@ +/// \ingroup rbd_common +///@{ + +/// \file myexcept.h +/// Exception handler. +/// The low level classes for +/// - my exception class hierarchy +/// - the functions needed for my simulated exceptions +/// - the Tracer mechanism +/// - routines for checking whether new and delete calls are balanced +/// + + +// A set of classes to simulate exceptions in C++ +// +// Partially copied from Carlos Vidal s article in the C users journal +// September 1992, pp 19-28 +// +// Operations defined +// Try { } +// Throw ( exception object ) +// ReThrow +// Catch ( exception class ) { } +// CatchAll { } +// CatchAndThrow +// +// All catch lists must end with a CatchAll or CatchAndThrow statement +// but not both. +// +// When exceptions are finally implemented replace Try, Throw(E), Rethrow, +// Catch, CatchAll, CatchAndThrow by try, throw E, throw, catch, +// catch(...), and {}. +// +// All exception classes must be derived from BaseException, have no +// non-static variables and must include the statement +// +// static unsigned long Select; +// +// Any constructor in one of these exception classes must include +// +// Select = BaseException::Select; +// +// For each exceptions class, EX_1, some .cpp file must include +// +// unsigned long EX_1::Select; +// + + +#ifndef EXCEPTION_LIB +#define EXCEPTION_LIB + +#include "include.h" + +#ifdef use_namespace +namespace RBD_COMMON { +#endif + + +void Terminate(); + + +//********** classes for setting up exceptions and reporting ************// + +class BaseException; + +class Tracer // linked list showing how +{ // we got here + const char* entry; + Tracer* previous; +public: + Tracer(const char*); + ~Tracer(); + void ReName(const char*); + static void PrintTrace(); // for printing trace + static void AddTrace(); // insert trace in exception record + static Tracer* last; // points to Tracer list + friend class BaseException; +}; + + +class BaseException // The base exception class +{ +protected: + static char* what_error; // error message + static int SoFar; // no. characters already entered + static int LastOne; // last location in error buffer +public: + static void AddMessage(const char* a_what); + // messages about exception + static void AddInt(int value); // integer to error message + static unsigned long Select; // for identifying exception + BaseException(const char* a_what = 0); + static const char* what() { return what_error; } + // for getting error message +}; + +#ifdef TypeDefException +typedef BaseException Exception; // for compatibility with my older libraries +#endif + +inline Tracer::Tracer(const char* e) + : entry(e), previous(last) { last = this; } + +inline Tracer::~Tracer() { last = previous; } + +inline void Tracer::ReName(const char* e) { entry=e; } + +#ifdef SimulateExceptions // SimulateExceptions + +#include + + +//************* the definitions of Try, Throw and Catch *****************// + + +class JumpItem; +class Janitor; + +class JumpBase // pointer to a linked list of jmp_buf s +{ +public: + static JumpItem *jl; + static jmp_buf env; +}; + +class JumpItem // an item in a linked list of jmp_buf s +{ +public: + JumpItem *ji; + jmp_buf env; + Tracer* trace; // to keep check on Tracer items + Janitor* janitor; // list of items for cleanup + JumpItem() : ji(JumpBase::jl), trace(0), janitor(0) + { JumpBase::jl = this; } + ~JumpItem() { JumpBase::jl = ji; } +}; + +void Throw(); + +inline void Throw(const BaseException&) { Throw(); } + +#define Try \ + if (!setjmp( JumpBase::jl->env )) { \ + JumpBase::jl->trace = Tracer::last; \ + JumpItem JI387256156; + +#define ReThrow Throw() + +#define Catch(EXCEPTION) \ + } else if (BaseException::Select == EXCEPTION::Select) { + +#define CatchAll } else + +#define CatchAndThrow } else Throw(); + + +//****************** cleanup heap following Throw ***********************// + +class Janitor +{ +protected: + static bool do_not_link; // set when new is called + bool OnStack; // false if created by new +public: + Janitor* NextJanitor; + virtual void CleanUp() {} + Janitor(); + virtual ~Janitor(); +}; + + +// The tiresome old trick for initializing the Janitor class +// this is needed for classes derived from Janitor which have objects +// declared globally + +class JanitorInitializer +{ +public: + JanitorInitializer(); +private: + static int ref_count; +}; + +static JanitorInitializer JanInit; + +#endif // end of SimulateExceptions + +#ifdef UseExceptions + +#define Try try +#define Throw(E) throw E +#define ReThrow throw +#define Catch catch +#define CatchAll catch(...) +#define CatchAndThrow {} + +#endif // end of UseExceptions + + +#ifdef DisableExceptions // Disable exceptions + +#define Try { +#define ReThrow Throw() +#define Catch(EXCEPTION) } if (false) { +#define CatchAll } if (false) +#define CatchAndThrow } + +inline void Throw() { Terminate(); } +inline void Throw(const BaseException&) { Terminate(); } + + +#endif // end of DisableExceptions + +#ifndef SimulateExceptions // ! SimulateExceptions + +class Janitor // a dummy version +{ +public: + virtual void CleanUp() {} + Janitor() {} + virtual ~Janitor() {} +}; + +#endif // end of ! SimulateExceptions + + +//******************** FREE_CHECK and NEW_DELETE ***********************// + +#ifdef DO_FREE_CHECK // DO_FREE_CHECK +// Routines for tracing whether new and delete calls are balanced + +class FreeCheck; + +class FreeCheckLink +{ +protected: + FreeCheckLink* next; + void* ClassStore; + FreeCheckLink(); + virtual void Report()=0; // print details of link + friend class FreeCheck; +}; + +class FCLClass : public FreeCheckLink // for registering objects +{ + char* ClassName; + FCLClass(void* t, char* name); + void Report(); + friend class FreeCheck; +}; + +class FCLRealArray : public FreeCheckLink // for registering real arrays +{ + char* Operation; + int size; + FCLRealArray(void* t, char* o, int s); + void Report(); + friend class FreeCheck; +}; + +class FCLIntArray : public FreeCheckLink // for registering int arrays +{ + char* Operation; + int size; + FCLIntArray(void* t, char* o, int s); + void Report(); + friend class FreeCheck; +}; + + +class FreeCheck +{ + static FreeCheckLink* next; + static int BadDelete; +public: + static void Register(void*, char*); + static void DeRegister(void*, char*); + static void RegisterR(void*, char*, int); + static void DeRegisterR(void*, char*, int); + static void RegisterI(void*, char*, int); + static void DeRegisterI(void*, char*, int); + static void Status(); + friend class FreeCheckLink; + friend class FCLClass; + friend class FCLRealArray; + friend class FCLIntArray; +}; + +#define FREE_CHECK(Class) \ +public: \ + void* operator new(size_t size) \ + { \ + void* t = ::operator new(size); FreeCheck::Register(t,#Class); \ + return t; \ + } \ + void operator delete(void* t) \ + { FreeCheck::DeRegister(t,#Class); ::operator delete(t); } + + +#ifdef SimulateExceptions // SimulateExceptions + +#define NEW_DELETE(Class) \ +public: \ + void* operator new(size_t size) \ + { \ + do_not_link=true; \ + void* t = ::operator new(size); FreeCheck::Register(t,#Class); \ + return t; \ + } \ + void operator delete(void* t) \ + { FreeCheck::DeRegister(t,#Class); ::operator delete(t); } + + +#endif // end of SimulateExceptions + + +#define MONITOR_REAL_NEW(Operation, Size, Pointer) \ + FreeCheck::RegisterR(Pointer, Operation, Size); +#define MONITOR_INT_NEW(Operation, Size, Pointer) \ + FreeCheck::RegisterI(Pointer, Operation, Size); +#define MONITOR_REAL_DELETE(Operation, Size, Pointer) \ + FreeCheck::DeRegisterR(Pointer, Operation, Size); +#define MONITOR_INT_DELETE(Operation, Size, Pointer) \ + FreeCheck::DeRegisterI(Pointer, Operation, Size); + +#else // DO_FREE_CHECK not defined + +#define FREE_CHECK(Class) public: +#define MONITOR_REAL_NEW(Operation, Size, Pointer) {} +#define MONITOR_INT_NEW(Operation, Size, Pointer) {} +#define MONITOR_REAL_DELETE(Operation, Size, Pointer) {} +#define MONITOR_INT_DELETE(Operation, Size, Pointer) {} + + +#ifdef SimulateExceptions // SimulateExceptions + + +#define NEW_DELETE(Class) \ +public: \ + void* operator new(size_t size) \ + { do_not_link=true; void* t = ::operator new(size); return t; } \ + void operator delete(void* t) { ::operator delete(t); } + +#endif // end of SimulateExceptions + +#endif // end of ! DO_FREE_CHECK + +#ifndef SimulateExceptions // ! SimulateExceptions + +#define NEW_DELETE(Class) FREE_CHECK(Class) + +#endif // end of ! SimulateExceptions + + +//********************* derived exceptions ******************************// + +class Logic_error : public BaseException +{ +public: + static unsigned long Select; + Logic_error(const char* a_what = 0); +}; + +class Runtime_error : public BaseException +{ +public: + static unsigned long Select; + Runtime_error(const char* a_what = 0); +}; + +class Domain_error : public Logic_error +{ +public: + static unsigned long Select; + Domain_error(const char* a_what = 0); +}; + +class Invalid_argument : public Logic_error +{ +public: + static unsigned long Select; + Invalid_argument(const char* a_what = 0); +}; + +class Length_error : public Logic_error +{ +public: + static unsigned long Select; + Length_error(const char* a_what = 0); +}; + +class Out_of_range : public Logic_error +{ +public: + static unsigned long Select; + Out_of_range(const char* a_what = 0); +}; + +//class Bad_cast : public Logic_error +//{ +//public: +// static unsigned long Select; +// Bad_cast(const char* a_what = 0); +//}; + +//class Bad_typeid : public Logic_error +//{ +//public: +// static unsigned long Select; +// Bad_typeid(const char* a_what = 0); +//}; + +class Range_error : public Runtime_error +{ +public: + static unsigned long Select; + Range_error(const char* a_what = 0); +}; + +class Overflow_error : public Runtime_error +{ +public: + static unsigned long Select; + Overflow_error(const char* a_what = 0); +}; + +class Bad_alloc : public BaseException +{ +public: + static unsigned long Select; + Bad_alloc(const char* a_what = 0); +}; + +#ifdef use_namespace +} +#endif + + +#endif // end of EXCEPTION_LIB + + +// body file: myexcept.cpp + + +///@} + diff --git a/3rdparty/newmat/newfft.cpp b/3rdparty/newmat/newfft.cpp new file mode 100644 index 0000000..62dc559 --- /dev/null +++ b/3rdparty/newmat/newfft.cpp @@ -0,0 +1,1059 @@ +//$ newfft.cpp + +// This is originally by Sande and Gentleman in 1967! I have translated from +// Fortran into C and a little bit of C++. + +// It takes about twice as long as fftw +// (http://theory.lcs.mit.edu/~fftw/homepage.html) +// but is much shorter than fftw and so despite its age +// might represent a reasonable +// compromise between speed and complexity. +// If you really need the speed get fftw. + + +// THIS SUBROUTINE WAS WRITTEN BY G.SANDE OF PRINCETON UNIVERSITY AND +// W.M.GENTLMAN OF THE BELL TELEPHONE LAB. IT WAS BROUGHT TO LONDON +// BY DR. M.D. GODFREY AT THE IMPERIAL COLLEGE AND WAS ADAPTED FOR +// BURROUGHS 6700 BY D. R. BRILLINGER AND J. PEMBERTON +// IT REPRESENTS THE STATE OF THE ART OF COMPUTING COMPLETE FINITE +// DISCRETE FOURIER TRANSFORMS AS OF NOV.1967. +// OTHER PROGRAMS REQUIRED. +// ONLY THOSE SUBROUTINES INCLUDED HERE. +// USAGE. +// CALL AR1DFT(N,X,Y) +// WHERE N IS THE NUMBER OF POINTS IN THE SEQUENCE . +// X - IS A ONE-DIMENSIONAL ARRAY CONTAINING THE REAL +// PART OF THE SEQUENCE. +// Y - IS A ONE-DIMENSIONAL ARRAY CONTAINING THE +// IMAGINARY PART OF THE SEQUENCE. +// THE TRANSFORM IS RETURNED IN X AND Y. +// METHOD +// FOR A GENERAL DISCUSSION OF THESE TRANSFORMS AND OF +// THE FAST METHOD FOR COMPUTING THEM, SEE GENTLEMAN AND SANDE, +// @FAST FOURIER TRANSFORMS - FOR FUN AND PROFIT,@ 1966 FALL JOINT +// COMPUTER CONFERENCE. +// THIS PROGRAM COMPUTES THIS FOR A COMPLEX SEQUENCE Z(T) OF LENGTH +// N WHOSE ELEMENTS ARE STORED AT(X(I) , Y(I)) AND RETURNS THE +// TRANSFORM COEFFICIENTS AT (X(I), Y(I)). +// DESCRIPTION +// AR1DFT IS A HIGHLY MODULAR ROUTINE CAPABLE OF COMPUTING IN PLACE +// THE COMPLETE FINITE DISCRETE FOURIER TRANSFORM OF A ONE- +// DIMENSIONAL SEQUENCE OF RATHER GENERAL LENGTH N. +// THE MAIN ROUTINE , AR1DFT ITSELF, FACTORS N. IT THEN CALLS ON +// ON GR 1D FT TO COMPUTE THE ACTUAL TRANSFORMS, USING THESE FACTORS. +// THIS GR 1D FT DOES, CALLING AT EACH STAGE ON THE APPROPRIATE KERN +// EL R2FTK, R4FTK, R8FTK, R16FTK, R3FTK, R5FTK, OR RPFTK TO PERFORM +// THE COMPUTATIONS FOR THIS PASS OVER THE SEQUENCE, DEPENDING ON +// WHETHER THE CORRESPONDING FACTOR IS 2, 4, 8, 16, 3, 5, OR SOME +// MORE GENERAL PRIME P. WHEN GR1DFT IS FINISHED THE TRANSFORM IS +// COMPUTED, HOWEVER, THE RESULTS ARE STORED IN "DIGITS REVERSED" +// ORDER. AR1DFT THEREFORE, CALLS UPON GR 1S FS TO SORT THEM OUT. +// TO RETURN TO THE FACTORIZATION, SINGLETON HAS POINTED OUT THAT +// THE TRANSFORMS ARE MORE EFFICIENT IF THE SAMPLE SIZE N, IS OF THE +// FORM B*A**2 AND B CONSISTS OF A SINGLE FACTOR. IN SUCH A CASE +// IF WE PROCESS THE FACTORS IN THE ORDER ABA THEN +// THE REORDERING CAN BE DONE AS FAST IN PLACE, AS WITH SCRATCH +// STORAGE. BUT AS B BECOMES MORE COMPLICATED, THE COST OF THE DIGIT +// REVERSING DUE TO B PART BECOMES VERY EXPENSIVE IF WE TRY TO DO IT +// IN PLACE. IN SUCH A CASE IT MIGHT BE BETTER TO USE EXTRA STORAGE +// A ROUTINE TO DO THIS IS, HOWEVER, NOT INCLUDED HERE. +// ANOTHER FEATURE INFLUENCING THE FACTORIZATION IS THAT FOR ANY FIXED +// FACTOR N WE CAN PREPARE A SPECIAL KERNEL WHICH WILL COMPUTE +// THAT STAGE OF THE TRANSFORM MORE EFFICIENTLY THAN WOULD A KERNEL +// FOR GENERAL FACTORS, ESPECIALLY IF THE GENERAL KERNEL HAD TO BE +// APPLIED SEVERAL TIMES. FOR EXAMPLE, FACTORS OF 4 ARE MORE +// EFFICIENT THAN FACTORS OF 2, FACTORS OF 8 MORE EFFICIENT THAN 4,ETC +// ON THE OTHER HAND DIMINISHING RETURNS RAPIDLY SET IN, ESPECIALLY +// SINCE THE LENGTH OF THE KERNEL FOR A SPECIAL CASE IS ROUGHLY +// PROPORTIONAL TO THE FACTOR IT DEALS WITH. HENCE THESE PROBABLY ARE +// ALL THE KERNELS WE WISH TO HAVE. +// RESTRICTIONS. +// AN UNFORTUNATE FEATURE OF THE SORTING PROBLEM IS THAT THE MOST +// EFFICIENT WAY TO DO IT IS WITH NESTED DO LOOPS, ONE FOR EACH +// FACTOR. THIS PUTS A RESTRICTION ON N AS TO HOW MANY FACTORS IT +// CAN HAVE. CURRENTLY THE LIMIT IS 16, BUT THE LIMIT CAN BE READILY +// RAISED IF NECESSARY. +// A SECOND RESTRICTION OF THE PROGRAM IS THAT LOCAL STORAGE OF THE +// THE ORDER P**2 IS REQUIRED BY THE GENERAL KERNEL RPFTK, SO SOME +// LIMIT MUST BE SET ON P. CURRENTLY THIS IS 19, BUT IT CAN BE INCRE +// INCREASED BY TRIVIAL CHANGES. +// OTHER COMMENTS. +//(1) THE ROUTINE IS ADAPTED TO CHECK WHETHER A GIVEN N WILL MEET THE +// ABOVE FACTORING REQUIREMENTS AN, IF NOT, TO RETURN THE NEXT HIGHER +// NUMBER, NX, SAY, WHICH WILL MEET THESE REQUIREMENTS. +// THIS CAN BE ACCHIEVED BY A STATEMENT OF THE FORM +// CALL FACTR(N,X,Y). +// IF A DIFFERENT N, SAY NX, IS RETURNED THEN THE TRANSFORMS COULD BE +// OBTAINED BY EXTENDING THE SIZE OF THE X-ARRAY AND Y-ARRAY TO NX, +// AND SETTING X(I) = Y(I) = 0., FOR I = N+1, NX. +//(2) IF THE SEQUENCE Z IS ONLY A REAL SEQUENCE, THEN THE IMAGINARY PART +// Y(I)=0., THIS WILL RETURN THE COSINE TRANSFORM OF THE REAL SEQUENCE +// IN X, AND THE SINE TRANSFORM IN Y. + + +#define WANT_STREAM + +#define WANT_MATH + +#include "newmatap.h" + +#ifdef use_namespace +namespace NEWMAT { +#endif + +#ifdef DO_REPORT +#define REPORT { static ExeCounter ExeCount(__LINE__,20); ++ExeCount; } +#else +#define REPORT {} +#endif + +inline Real square(Real x) { return x*x; } +inline int square(int x) { return x*x; } + +static void GR_1D_FS (int PTS, int N_SYM, int N_UN_SYM, + const SimpleIntArray& SYM, int P_SYM, const SimpleIntArray& UN_SYM, + Real* X, Real* Y); +static void GR_1D_FT (int N, int N_FACTOR, const SimpleIntArray& FACTOR, + Real* X, Real* Y); +static void R_P_FTK (int N, int M, int P, Real* X, Real* Y); +static void R_2_FTK (int N, int M, Real* X0, Real* Y0, Real* X1, Real* Y1); +static void R_3_FTK (int N, int M, Real* X0, Real* Y0, Real* X1, Real* Y1, + Real* X2, Real* Y2); +static void R_4_FTK (int N, int M, + Real* X0, Real* Y0, Real* X1, Real* Y1, + Real* X2, Real* Y2, Real* X3, Real* Y3); +static void R_5_FTK (int N, int M, + Real* X0, Real* Y0, Real* X1, Real* Y1, Real* X2, Real* Y2, + Real* X3, Real* Y3, Real* X4, Real* Y4); +static void R_8_FTK (int N, int M, + Real* X0, Real* Y0, Real* X1, Real* Y1, + Real* X2, Real* Y2, Real* X3, Real* Y3, + Real* X4, Real* Y4, Real* X5, Real* Y5, + Real* X6, Real* Y6, Real* X7, Real* Y7); +static void R_16_FTK (int N, int M, + Real* X0, Real* Y0, Real* X1, Real* Y1, + Real* X2, Real* Y2, Real* X3, Real* Y3, + Real* X4, Real* Y4, Real* X5, Real* Y5, + Real* X6, Real* Y6, Real* X7, Real* Y7, + Real* X8, Real* Y8, Real* X9, Real* Y9, + Real* X10, Real* Y10, Real* X11, Real* Y11, + Real* X12, Real* Y12, Real* X13, Real* Y13, + Real* X14, Real* Y14, Real* X15, Real* Y15); +static int BitReverse(int x, int prod, int n, const SimpleIntArray& f); + + +bool FFT_Controller::ar_1d_ft (int PTS, Real* X, Real *Y) +{ +// ARBITRARY RADIX ONE DIMENSIONAL FOURIER TRANSFORM + + REPORT + + int F,J,N,NF,P,PMAX,P_SYM,P_TWO,Q,R,TWO_GRP; + + // NP is maximum number of squared factors allows PTS up to 2**32 at least + // NQ is number of not-squared factors - increase if we increase PMAX + const int NP = 16, NQ = 10; + SimpleIntArray PP(NP), QQ(NQ); + + TWO_GRP=16; PMAX=19; + + // PMAX is the maximum factor size + // TWO_GRP is the maximum power of 2 handled as a single factor + // Doesn't take advantage of combining powers of 2 when calculating + // number of factors + + if (PTS<=1) return true; + N=PTS; P_SYM=1; F=2; P=0; Q=0; + + // P counts the number of squared factors + // Q counts the number of the rest + // R = 0 for no non-squared factors; 1 otherwise + + // FACTOR holds all the factors - non-squared ones in the middle + // - length is 2*P+Q + // SYM also holds all the factors but with the non-squared ones + // multiplied together - length is 2*P+R + // PP holds the values of the squared factors - length is P + // QQ holds the values of the rest - length is Q + + // P_SYM holds the product of the squared factors + + // find the factors - load into PP and QQ + while (N > 1) + { + bool fail = true; + for (J=F; J<=PMAX; J++) + if (N % J == 0) { fail = false; F=J; break; } + if (fail || P >= NP || Q >= NQ) return false; // can't factor + N /= F; + if (N % F != 0) QQ[Q++] = F; + else { N /= F; PP[P++] = F; P_SYM *= F; } + } + + R = (Q == 0) ? 0 : 1; // R = 0 if no not-squared factors, 1 otherwise + + NF = 2*P + Q; + SimpleIntArray FACTOR(NF + 1), SYM(2*P + R); + FACTOR[NF] = 0; // we need this in the "combine powers of 2" + + // load into SYM and FACTOR + for (J=0; J0) + { + REPORT + for (J=0; J 0) + { + REPORT + SimpleIntArray U(N_SYM); + for(MultiRadixCounter MRC(N_SYM, SYM, U); !MRC.Finish(); ++MRC) + { + if (MRC.Swap()) + { + int P = MRC.Reverse(); int JJ = MRC.Counter(); Real T; + T=X[JJ]; X[JJ]=X[P]; X[P]=T; T=Y[JJ]; Y[JJ]=Y[P]; Y[P]=T; + } + } + } + + int J,JL,K,L,M,MS; + + // UN_SYM contains the non-squared factors + // I have replaced the Sande-Gentleman code as it runs into + // integer overflow problems + // My code (and theirs) would be improved by using a bit array + // as suggested by Van Loan + + if (N_UN_SYM==0) { REPORT return; } + P_UN_SYM=PTS/square(P_SYM); JL=(P_UN_SYM-3)*P_SYM; MS=P_UN_SYM*P_SYM; + + for (J = P_SYM; J<=JL; J+=P_SYM) + { + K=J; + do K = P_SYM * BitReverse(K / P_SYM, P_UN_SYM, N_UN_SYM, UN_SYM); + while (K 1) + { + bool fail = true; + for (int J = F; J <= PMAX; J++) + if (N % J == 0) { fail = false; F=J; break; } + if (fail || P >= NP || Q >= NQ) { REPORT return false; } + N /= F; + if (N % F != 0) Q++; else { N /= F; P++; } + } + + return true; // can factorise + +} + +bool FFT_Controller::OnlyOldFFT; // static variable + +// **************************** multi radix counter ********************** + +MultiRadixCounter::MultiRadixCounter(int nx, const SimpleIntArray& rx, + SimpleIntArray& vx) + : Radix(rx), Value(vx), n(nx), reverse(0), + product(1), counter(0), finish(false) +{ + REPORT for (int k = 0; k < n; k++) { Value[k] = 0; product *= Radix[k]; } +} + +void MultiRadixCounter::operator++() +{ + REPORT + counter++; int p = product; + for (int k = 0; k < n; k++) + { + Value[k]++; int p1 = p / Radix[k]; reverse += p1; + if (Value[k] == Radix[k]) { REPORT Value[k] = 0; reverse -= p; p = p1; } + else { REPORT return; } + } + finish = true; +} + + +static int BitReverse(int x, int prod, int n, const SimpleIntArray& f) +{ + // x = c[0]+f[0]*(c[1]+f[1]*(c[2]+... + // return c[n-1]+f[n-1]*(c[n-2]+f[n-2]*(c[n-3]+... + // prod is the product of the f[i] + // n is the number of f[i] (don't assume f has the correct length) + + REPORT + const int* d = f.Data() + n; int sum = 0; int q = 1; + while (n--) + { + prod /= *(--d); + int c = x / prod; x-= c * prod; + sum += q * c; q *= *d; + } + return sum; +} + + +#ifdef use_namespace +} +#endif + + diff --git a/3rdparty/newmat/newmat.h b/3rdparty/newmat/newmat.h new file mode 100644 index 0000000..22b9bac --- /dev/null +++ b/3rdparty/newmat/newmat.h @@ -0,0 +1,1814 @@ +//$$ newmat.h definition file for new version of matrix package + +// Copyright (C) 1991,2,3,4,7,2000,2002: R B Davies + +#ifndef NEWMAT_LIB +#define NEWMAT_LIB 0 + +#include "include.h" + +#include "boolean.h" +#include "myexcept.h" + + +#ifdef use_namespace +namespace NEWMAT { using namespace RBD_COMMON; } +namespace RBD_LIBRARIES { using namespace NEWMAT; } +namespace NEWMAT { +#endif + +//#define DO_REPORT // to activate REPORT + +#ifdef NO_LONG_NAMES +#define UpperTriangularMatrix UTMatrix +#define LowerTriangularMatrix LTMatrix +#define SymmetricMatrix SMatrix +#define DiagonalMatrix DMatrix +#define BandMatrix BMatrix +#define UpperBandMatrix UBMatrix +#define LowerBandMatrix LBMatrix +#define SymmetricBandMatrix SBMatrix +#define BandLUMatrix BLUMatrix +#endif + +#ifndef TEMPS_DESTROYED_QUICKLY_R +#define ReturnMatrix ReturnMatrixX +#else +#define ReturnMatrix ReturnMatrixX& +#endif + +// ************************** general utilities ****************************/ + +class GeneralMatrix; + +void MatrixErrorNoSpace(void*); // no space handler + +class LogAndSign +// Return from LogDeterminant function +// - value of the log plus the sign (+, - or 0) +{ + Real log_value; + int sign; +public: + LogAndSign() { log_value=0.0; sign=1; } + LogAndSign(Real); + void operator*=(Real); + void PowEq(int k); // raise to power of k + void ChangeSign() { sign = -sign; } + Real LogValue() const { return log_value; } + int Sign() const { return sign; } + Real Value() const; + FREE_CHECK(LogAndSign) +}; + +// the following class is for counting the number of times a piece of code +// is executed. It is used for locating any code not executed by test +// routines. Use turbo GREP locate all places this code is called and +// check which ones are not accessed. +// Somewhat implementation dependent as it relies on "cout" still being +// present when ExeCounter objects are destructed. + +#ifdef DO_REPORT + +class ExeCounter +{ + int line; // code line number + int fileid; // file identifier + long nexe; // number of executions + static int nreports; // number of reports +public: + ExeCounter(int,int); + void operator++() { nexe++; } + ~ExeCounter(); // prints out reports +}; + +#endif + + +// ************************** class MatrixType *****************************/ + +// Is used for finding the type of a matrix resulting from the binary operations +// +, -, * and identifying what conversions are permissible. +// This class must be updated when new matrix types are added. + +class GeneralMatrix; // defined later +class BaseMatrix; // defined later +class MatrixInput; // defined later + +class MatrixType +{ +public: + enum Attribute { Valid = 1, + Diagonal = 2, // order of these is important + Symmetric = 4, + Band = 8, + Lower = 16, + Upper = 32, + LUDeco = 64, + Ones = 128 }; + + enum { US = 0, + UT = Valid + Upper, + LT = Valid + Lower, + Rt = Valid, + Sm = Valid + Symmetric, + Dg = Valid + Diagonal + Band + Lower + Upper + Symmetric, + Id = Valid + Diagonal + Band + Lower + Upper + Symmetric + + Ones, + RV = Valid, // do not separate out + CV = Valid, // vectors + BM = Valid + Band, + UB = Valid + Band + Upper, + LB = Valid + Band + Lower, + SB = Valid + Band + Symmetric, + Ct = Valid + LUDeco, + BC = Valid + Band + LUDeco + }; + + + static int nTypes() { return 10; } // number of different types + // exclude Ct, US, BC +public: + int attribute; + bool DataLossOK; // true if data loss is OK when + // this represents a destination +public: + MatrixType () : DataLossOK(false) {} + MatrixType (int i) : attribute(i), DataLossOK(false) {} + MatrixType (int i, bool dlok) : attribute(i), DataLossOK(dlok) {} + MatrixType (const MatrixType& mt) + : attribute(mt.attribute), DataLossOK(mt.DataLossOK) {} + void operator=(const MatrixType& mt) + { attribute = mt.attribute; DataLossOK = mt.DataLossOK; } + void SetDataLossOK() { DataLossOK = true; } + int operator+() const { return attribute; } + MatrixType operator+(MatrixType mt) const + { return MatrixType(attribute & mt.attribute); } + MatrixType operator*(const MatrixType&) const; + MatrixType SP(const MatrixType&) const; + MatrixType KP(const MatrixType&) const; + MatrixType operator|(const MatrixType& mt) const + { return MatrixType(attribute & mt.attribute & Valid); } + MatrixType operator&(const MatrixType& mt) const + { return MatrixType(attribute & mt.attribute & Valid); } + bool operator>=(MatrixType mt) const + { return ( attribute & mt.attribute ) == attribute; } + bool operator<(MatrixType mt) const // for MS Visual C++ 4 + { return ( attribute & mt.attribute ) != attribute; } + bool operator==(MatrixType t) const + { return (attribute == t.attribute); } + bool operator!=(MatrixType t) const + { return (attribute != t.attribute); } + bool operator!() const { return (attribute & Valid) == 0; } + MatrixType i() const; // type of inverse + MatrixType t() const; // type of transpose + MatrixType AddEqualEl() const // Add constant to matrix + { return MatrixType(attribute & (Valid + Symmetric)); } + MatrixType MultRHS() const; // type for rhs of multiply + MatrixType sub() const // type of submatrix + { return MatrixType(attribute & Valid); } + MatrixType ssub() const // type of sym submatrix + { return MatrixType(attribute); } // not for selection matrix + GeneralMatrix* New() const; // new matrix of given type + GeneralMatrix* New(int,int,BaseMatrix*) const; + // new matrix of given type + const char* Value() const; // to print type + friend bool Rectangular(MatrixType a, MatrixType b, MatrixType c); + friend bool Compare(const MatrixType&, MatrixType&); + // compare and check conv. + bool IsBand() const { return (attribute & Band) != 0; } + bool IsDiagonal() const { return (attribute & Diagonal) != 0; } + bool IsSymmetric() const { return (attribute & Symmetric) != 0; } + bool CannotConvert() const { return (attribute & LUDeco) != 0; } + // used by operator== + FREE_CHECK(MatrixType) +}; + + +// *********************** class MatrixBandWidth ***********************/ + +class MatrixBandWidth +{ +public: + int lower; + int upper; + MatrixBandWidth(const int l, const int u) : lower(l), upper (u) {} + MatrixBandWidth(const int i) : lower(i), upper(i) {} + MatrixBandWidth operator+(const MatrixBandWidth&) const; + MatrixBandWidth operator*(const MatrixBandWidth&) const; + MatrixBandWidth minimum(const MatrixBandWidth&) const; + MatrixBandWidth t() const { return MatrixBandWidth(upper,lower); } + bool operator==(const MatrixBandWidth& bw) const + { return (lower == bw.lower) && (upper == bw.upper); } + bool operator!=(const MatrixBandWidth& bw) const { return !operator==(bw); } + int Upper() const { return upper; } + int Lower() const { return lower; } + FREE_CHECK(MatrixBandWidth) +}; + + +// ********************* Array length specifier ************************/ + +// This class is introduced to avoid constructors such as +// ColumnVector(int) +// being used for conversions + +class ArrayLengthSpecifier +{ + int value; +public: + int Value() const { return value; } + ArrayLengthSpecifier(int l) : value(l) {} +}; + +// ************************* Matrix routines ***************************/ + + +class MatrixRowCol; // defined later +class MatrixRow; +class MatrixCol; +class MatrixColX; + +class GeneralMatrix; // defined later +class AddedMatrix; +class MultipliedMatrix; +class SubtractedMatrix; +class SPMatrix; +class KPMatrix; +class ConcatenatedMatrix; +class StackedMatrix; +class SolvedMatrix; +class ShiftedMatrix; +class NegShiftedMatrix; +class ScaledMatrix; +class TransposedMatrix; +class ReversedMatrix; +class NegatedMatrix; +class InvertedMatrix; +class RowedMatrix; +class ColedMatrix; +class DiagedMatrix; +class MatedMatrix; +class GetSubMatrix; +class ReturnMatrixX; +class Matrix; +class nricMatrix; +class RowVector; +class ColumnVector; +class SymmetricMatrix; +class UpperTriangularMatrix; +class LowerTriangularMatrix; +class DiagonalMatrix; +class CroutMatrix; +class BandMatrix; +class LowerBandMatrix; +class UpperBandMatrix; +class SymmetricBandMatrix; +class LinearEquationSolver; +class GenericMatrix; + + +#define MatrixTypeUnSp 0 +//static MatrixType MatrixTypeUnSp(MatrixType::US); +// // AT&T needs this + +class BaseMatrix : public Janitor // base of all matrix classes +{ +protected: + virtual int search(const BaseMatrix*) const = 0; + // count number of times matrix + // is referred to + +public: + virtual GeneralMatrix* Evaluate(MatrixType mt=MatrixTypeUnSp) = 0; + // evaluate temporary + // for old version of G++ + // virtual GeneralMatrix* Evaluate(MatrixType mt) = 0; + // GeneralMatrix* Evaluate() { return Evaluate(MatrixTypeUnSp); } +#ifndef TEMPS_DESTROYED_QUICKLY + AddedMatrix operator+(const BaseMatrix&) const; // results of operations + MultipliedMatrix operator*(const BaseMatrix&) const; + SubtractedMatrix operator-(const BaseMatrix&) const; + ConcatenatedMatrix operator|(const BaseMatrix&) const; + StackedMatrix operator&(const BaseMatrix&) const; + ShiftedMatrix operator+(Real) const; + ScaledMatrix operator*(Real) const; + ScaledMatrix operator/(Real) const; + ShiftedMatrix operator-(Real) const; + TransposedMatrix t() const; +// TransposedMatrix t; + NegatedMatrix operator-() const; // change sign of elements + ReversedMatrix Reverse() const; + InvertedMatrix i() const; +// InvertedMatrix i; + RowedMatrix AsRow() const; + ColedMatrix AsColumn() const; + DiagedMatrix AsDiagonal() const; + MatedMatrix AsMatrix(int,int) const; + GetSubMatrix SubMatrix(int,int,int,int) const; + GetSubMatrix SymSubMatrix(int,int) const; + GetSubMatrix Row(int) const; + GetSubMatrix Rows(int,int) const; + GetSubMatrix Column(int) const; + GetSubMatrix Columns(int,int) const; +#else + AddedMatrix& operator+(const BaseMatrix&) const; // results of operations + MultipliedMatrix& operator*(const BaseMatrix&) const; + SubtractedMatrix& operator-(const BaseMatrix&) const; + ConcatenatedMatrix& operator|(const BaseMatrix&) const; + StackedMatrix& operator&(const BaseMatrix&) const; + ShiftedMatrix& operator+(Real) const; + ScaledMatrix& operator*(Real) const; + ScaledMatrix& operator/(Real) const; + ShiftedMatrix& operator-(Real) const; + TransposedMatrix& t() const; +// TransposedMatrix& t; + NegatedMatrix& operator-() const; // change sign of elements + ReversedMatrix& Reverse() const; + InvertedMatrix& i() const; +// InvertedMatrix& i; + RowedMatrix& AsRow() const; + ColedMatrix& AsColumn() const; + DiagedMatrix& AsDiagonal() const; + MatedMatrix& AsMatrix(int,int) const; + GetSubMatrix& SubMatrix(int,int,int,int) const; + GetSubMatrix& SymSubMatrix(int,int) const; + GetSubMatrix& Row(int) const; + GetSubMatrix& Rows(int,int) const; + GetSubMatrix& Column(int) const; + GetSubMatrix& Columns(int,int) const; +#endif + Real AsScalar() const; // conversion of 1 x 1 matrix + virtual LogAndSign LogDeterminant() const; + Real Determinant() const; + virtual Real SumSquare() const; + Real NormFrobenius() const; + virtual Real SumAbsoluteValue() const; + virtual Real Sum() const; + virtual Real MaximumAbsoluteValue() const; + virtual Real MaximumAbsoluteValue1(int& i) const; + virtual Real MaximumAbsoluteValue2(int& i, int& j) const; + virtual Real MinimumAbsoluteValue() const; + virtual Real MinimumAbsoluteValue1(int& i) const; + virtual Real MinimumAbsoluteValue2(int& i, int& j) const; + virtual Real Maximum() const; + virtual Real Maximum1(int& i) const; + virtual Real Maximum2(int& i, int& j) const; + virtual Real Minimum() const; + virtual Real Minimum1(int& i) const; + virtual Real Minimum2(int& i, int& j) const; + virtual Real Trace() const; + Real Norm1() const; + Real NormInfinity() const; + virtual MatrixBandWidth BandWidth() const; // bandwidths of band matrix + virtual void CleanUp() {} // to clear store + void IEQND() const; // called by ineq. ops +// virtual ReturnMatrix Reverse() const; // reverse order of elements + + +//protected: +// BaseMatrix() : t(this), i(this) {} + + friend class GeneralMatrix; + friend class Matrix; + friend class nricMatrix; + friend class RowVector; + friend class ColumnVector; + friend class SymmetricMatrix; + friend class UpperTriangularMatrix; + friend class LowerTriangularMatrix; + friend class DiagonalMatrix; + friend class CroutMatrix; + friend class BandMatrix; + friend class LowerBandMatrix; + friend class UpperBandMatrix; + friend class SymmetricBandMatrix; + friend class AddedMatrix; + friend class MultipliedMatrix; + friend class SubtractedMatrix; + friend class SPMatrix; + friend class KPMatrix; + friend class ConcatenatedMatrix; + friend class StackedMatrix; + friend class SolvedMatrix; + friend class ShiftedMatrix; + friend class NegShiftedMatrix; + friend class ScaledMatrix; + friend class TransposedMatrix; + friend class ReversedMatrix; + friend class NegatedMatrix; + friend class InvertedMatrix; + friend class RowedMatrix; + friend class ColedMatrix; + friend class DiagedMatrix; + friend class MatedMatrix; + friend class GetSubMatrix; + friend class ReturnMatrixX; + friend class LinearEquationSolver; + friend class GenericMatrix; + NEW_DELETE(BaseMatrix) +}; + + +// ***************************** working classes **************************/ + +class GeneralMatrix : public BaseMatrix // declarable matrix types +{ + virtual GeneralMatrix* Image() const; // copy of matrix +protected: + int tag; // shows whether can reuse + int nrows, ncols; // dimensions + int storage; // total store required + Real* store; // point to store (0=not set) + GeneralMatrix(); // initialise with no store + GeneralMatrix(ArrayLengthSpecifier); // constructor getting store + void Add(GeneralMatrix*, Real); // sum of GM and Real + void Add(Real); // add Real to this + void NegAdd(GeneralMatrix*, Real); // Real - GM + void NegAdd(Real); // this = this - Real + void Multiply(GeneralMatrix*, Real); // product of GM and Real + void Multiply(Real); // multiply this by Real + void Negate(GeneralMatrix*); // change sign + void Negate(); // change sign + void ReverseElements(); // internal reverse of elements + void ReverseElements(GeneralMatrix*); // reverse order of elements + void operator=(Real); // set matrix to constant + Real* GetStore(); // get store or copy + GeneralMatrix* BorrowStore(GeneralMatrix*, MatrixType); + // temporarily access store + void GetMatrix(const GeneralMatrix*); // used by = and initialise + void Eq(const BaseMatrix&, MatrixType); // used by = + void Eq(const BaseMatrix&, MatrixType, bool);// used by << + void Eq2(const BaseMatrix&, MatrixType); // cut down version of Eq + int search(const BaseMatrix*) const; + virtual GeneralMatrix* Transpose(TransposedMatrix*, MatrixType); + void CheckConversion(const BaseMatrix&); // check conversion OK + void ReSize(int, int, int); // change dimensions + virtual short SimpleAddOK(const GeneralMatrix* gm) { return 0; } + // see bandmat.cpp for explanation +public: + GeneralMatrix* Evaluate(MatrixType mt=MatrixTypeUnSp); + virtual MatrixType Type() const = 0; // type of a matrix + int Nrows() const { return nrows; } // get dimensions + int Ncols() const { return ncols; } + int Storage() const { return storage; } + Real* Store() const { return store; } + virtual ~GeneralMatrix(); // delete store if set + void tDelete(); // delete if tag permits + bool reuse(); // true if tag allows reuse + void Protect() { tag=-1; } // cannot delete or reuse + int Tag() const { return tag; } + bool IsZero() const; // test matrix has all zeros + void Release() { tag=1; } // del store after next use + void Release(int t) { tag=t; } // del store after t accesses + void ReleaseAndDelete() { tag=0; } // delete matrix after use + void operator<<(const Real*); // assignment from an array + void operator<<(const BaseMatrix& X) + { Eq(X,this->Type(),true); } // = without checking type + void Inject(const GeneralMatrix&); // copy stored els only + void operator+=(const BaseMatrix&); + void operator-=(const BaseMatrix&); + void operator*=(const BaseMatrix&); + void operator|=(const BaseMatrix&); + void operator&=(const BaseMatrix&); + void operator+=(Real); + void operator-=(Real r) { operator+=(-r); } + void operator*=(Real); + void operator/=(Real r) { operator*=(1.0/r); } + virtual GeneralMatrix* MakeSolver(); // for solving + virtual void Solver(MatrixColX&, const MatrixColX&) {} + virtual void GetRow(MatrixRowCol&) = 0; // Get matrix row + virtual void RestoreRow(MatrixRowCol&) {} // Restore matrix row + virtual void NextRow(MatrixRowCol&); // Go to next row + virtual void GetCol(MatrixRowCol&) = 0; // Get matrix col + virtual void GetCol(MatrixColX&) = 0; // Get matrix col + virtual void RestoreCol(MatrixRowCol&) {} // Restore matrix col + virtual void RestoreCol(MatrixColX&) {} // Restore matrix col + virtual void NextCol(MatrixRowCol&); // Go to next col + virtual void NextCol(MatrixColX&); // Go to next col + Real SumSquare() const; + Real SumAbsoluteValue() const; + Real Sum() const; + Real MaximumAbsoluteValue1(int& i) const; + Real MinimumAbsoluteValue1(int& i) const; + Real Maximum1(int& i) const; + Real Minimum1(int& i) const; + Real MaximumAbsoluteValue() const; + Real MaximumAbsoluteValue2(int& i, int& j) const; + Real MinimumAbsoluteValue() const; + Real MinimumAbsoluteValue2(int& i, int& j) const; + Real Maximum() const; + Real Maximum2(int& i, int& j) const; + Real Minimum() const; + Real Minimum2(int& i, int& j) const; + LogAndSign LogDeterminant() const; + virtual bool IsEqual(const GeneralMatrix&) const; + // same type, same values + void CheckStore() const; // check store is non-zero + virtual void SetParameters(const GeneralMatrix*) {} + // set parameters in GetMatrix + operator ReturnMatrix() const; // for building a ReturnMatrix + ReturnMatrix ForReturn() const; + virtual bool SameStorageType(const GeneralMatrix& A) const; + virtual void ReSizeForAdd(const GeneralMatrix& A, const GeneralMatrix& B); + virtual void ReSizeForSP(const GeneralMatrix& A, const GeneralMatrix& B); + virtual void ReSize(const GeneralMatrix& A); + MatrixInput operator<<(Real); // for loading a list + MatrixInput operator<<(int f); +// ReturnMatrix Reverse() const; // reverse order of elements + void CleanUp(); // to clear store + + friend class Matrix; + friend class nricMatrix; + friend class SymmetricMatrix; + friend class UpperTriangularMatrix; + friend class LowerTriangularMatrix; + friend class DiagonalMatrix; + friend class CroutMatrix; + friend class RowVector; + friend class ColumnVector; + friend class BandMatrix; + friend class LowerBandMatrix; + friend class UpperBandMatrix; + friend class SymmetricBandMatrix; + friend class BaseMatrix; + friend class AddedMatrix; + friend class MultipliedMatrix; + friend class SubtractedMatrix; + friend class SPMatrix; + friend class KPMatrix; + friend class ConcatenatedMatrix; + friend class StackedMatrix; + friend class SolvedMatrix; + friend class ShiftedMatrix; + friend class NegShiftedMatrix; + friend class ScaledMatrix; + friend class TransposedMatrix; + friend class ReversedMatrix; + friend class NegatedMatrix; + friend class InvertedMatrix; + friend class RowedMatrix; + friend class ColedMatrix; + friend class DiagedMatrix; + friend class MatedMatrix; + friend class GetSubMatrix; + friend class ReturnMatrixX; + friend class LinearEquationSolver; + friend class GenericMatrix; + NEW_DELETE(GeneralMatrix) +}; + + + +class Matrix : public GeneralMatrix // usual rectangular matrix +{ + GeneralMatrix* Image() const; // copy of matrix +public: + Matrix() {} + ~Matrix() {} + Matrix(int, int); // standard declaration + Matrix(const BaseMatrix&); // evaluate BaseMatrix + void operator=(const BaseMatrix&); + void operator=(Real f) { GeneralMatrix::operator=(f); } + void operator=(const Matrix& m) { operator=((const BaseMatrix&)m); } + MatrixType Type() const; + Real& operator()(int, int); // access element + Real& element(int, int); // access element + Real operator()(int, int) const; // access element + Real element(int, int) const; // access element +#ifdef SETUP_C_SUBSCRIPTS + Real* operator[](int m) { return store+m*ncols; } + const Real* operator[](int m) const { return store+m*ncols; } +#endif + Matrix(const Matrix& gm) { GetMatrix(&gm); } + GeneralMatrix* MakeSolver(); + Real Trace() const; + void GetRow(MatrixRowCol&); + void GetCol(MatrixRowCol&); + void GetCol(MatrixColX&); + void RestoreCol(MatrixRowCol&); + void RestoreCol(MatrixColX&); + void NextRow(MatrixRowCol&); + void NextCol(MatrixRowCol&); + void NextCol(MatrixColX&); + virtual void ReSize(int,int); // change dimensions + // virtual so we will catch it being used in a vector called as a matrix + void ReSize(const GeneralMatrix& A); + Real MaximumAbsoluteValue2(int& i, int& j) const; + Real MinimumAbsoluteValue2(int& i, int& j) const; + Real Maximum2(int& i, int& j) const; + Real Minimum2(int& i, int& j) const; + friend Real DotProduct(const Matrix& A, const Matrix& B); + NEW_DELETE(Matrix) +}; + +class nricMatrix : public Matrix // for use with Numerical + // Recipes in C +{ + GeneralMatrix* Image() const; // copy of matrix + Real** row_pointer; // points to rows + void MakeRowPointer(); // build rowpointer + void DeleteRowPointer(); +public: + nricMatrix() {} + nricMatrix(int m, int n) // standard declaration + : Matrix(m,n) { MakeRowPointer(); } + nricMatrix(const BaseMatrix& bm) // evaluate BaseMatrix + : Matrix(bm) { MakeRowPointer(); } + void operator=(const BaseMatrix& bm) + { DeleteRowPointer(); Matrix::operator=(bm); MakeRowPointer(); } + void operator=(Real f) { GeneralMatrix::operator=(f); } + void operator=(const nricMatrix& m) { operator=((const BaseMatrix&)m); } + void operator<<(const BaseMatrix& X) + { DeleteRowPointer(); Eq(X,this->Type(),true); MakeRowPointer(); } + nricMatrix(const nricMatrix& gm) { GetMatrix(&gm); MakeRowPointer(); } + void ReSize(int m, int n) // change dimensions + { DeleteRowPointer(); Matrix::ReSize(m,n); MakeRowPointer(); } + void ReSize(const GeneralMatrix& A); + ~nricMatrix() { DeleteRowPointer(); } + Real** nric() const { CheckStore(); return row_pointer-1; } + void CleanUp(); // to clear store + NEW_DELETE(nricMatrix) +}; + +class SymmetricMatrix : public GeneralMatrix +{ + GeneralMatrix* Image() const; // copy of matrix +public: + SymmetricMatrix() {} + ~SymmetricMatrix() {} + SymmetricMatrix(ArrayLengthSpecifier); + SymmetricMatrix(const BaseMatrix&); + void operator=(const BaseMatrix&); + void operator=(Real f) { GeneralMatrix::operator=(f); } + void operator=(const SymmetricMatrix& m) { operator=((const BaseMatrix&)m); } + Real& operator()(int, int); // access element + Real& element(int, int); // access element + Real operator()(int, int) const; // access element + Real element(int, int) const; // access element +#ifdef SETUP_C_SUBSCRIPTS + Real* operator[](int m) { return store+(m*(m+1))/2; } + const Real* operator[](int m) const { return store+(m*(m+1))/2; } +#endif + MatrixType Type() const; + SymmetricMatrix(const SymmetricMatrix& gm) { GetMatrix(&gm); } + Real SumSquare() const; + Real SumAbsoluteValue() const; + Real Sum() const; + Real Trace() const; + void GetRow(MatrixRowCol&); + void GetCol(MatrixRowCol&); + void GetCol(MatrixColX&); + void RestoreCol(MatrixRowCol&) {} + void RestoreCol(MatrixColX&); + GeneralMatrix* Transpose(TransposedMatrix*, MatrixType); + void ReSize(int); // change dimensions + void ReSize(const GeneralMatrix& A); + NEW_DELETE(SymmetricMatrix) +}; + +class UpperTriangularMatrix : public GeneralMatrix +{ + GeneralMatrix* Image() const; // copy of matrix +public: + UpperTriangularMatrix() {} + ~UpperTriangularMatrix() {} + UpperTriangularMatrix(ArrayLengthSpecifier); + void operator=(const BaseMatrix&); + void operator=(const UpperTriangularMatrix& m) + { operator=((const BaseMatrix&)m); } + UpperTriangularMatrix(const BaseMatrix&); + UpperTriangularMatrix(const UpperTriangularMatrix& gm) { GetMatrix(&gm); } + void operator=(Real f) { GeneralMatrix::operator=(f); } + Real& operator()(int, int); // access element + Real& element(int, int); // access element + Real operator()(int, int) const; // access element + Real element(int, int) const; // access element +#ifdef SETUP_C_SUBSCRIPTS + Real* operator[](int m) { return store+m*ncols-(m*(m+1))/2; } + const Real* operator[](int m) const { return store+m*ncols-(m*(m+1))/2; } +#endif + MatrixType Type() const; + GeneralMatrix* MakeSolver() { return this; } // for solving + void Solver(MatrixColX&, const MatrixColX&); + LogAndSign LogDeterminant() const; + Real Trace() const; + void GetRow(MatrixRowCol&); + void GetCol(MatrixRowCol&); + void GetCol(MatrixColX&); + void RestoreCol(MatrixRowCol&); + void RestoreCol(MatrixColX& c) { RestoreCol((MatrixRowCol&)c); } + void NextRow(MatrixRowCol&); + void ReSize(int); // change dimensions + void ReSize(const GeneralMatrix& A); + MatrixBandWidth BandWidth() const; + NEW_DELETE(UpperTriangularMatrix) +}; + +class LowerTriangularMatrix : public GeneralMatrix +{ + GeneralMatrix* Image() const; // copy of matrix +public: + LowerTriangularMatrix() {} + ~LowerTriangularMatrix() {} + LowerTriangularMatrix(ArrayLengthSpecifier); + LowerTriangularMatrix(const LowerTriangularMatrix& gm) { GetMatrix(&gm); } + LowerTriangularMatrix(const BaseMatrix& M); + void operator=(const BaseMatrix&); + void operator=(Real f) { GeneralMatrix::operator=(f); } + void operator=(const LowerTriangularMatrix& m) + { operator=((const BaseMatrix&)m); } + Real& operator()(int, int); // access element + Real& element(int, int); // access element + Real operator()(int, int) const; // access element + Real element(int, int) const; // access element +#ifdef SETUP_C_SUBSCRIPTS + Real* operator[](int m) { return store+(m*(m+1))/2; } + const Real* operator[](int m) const { return store+(m*(m+1))/2; } +#endif + MatrixType Type() const; + GeneralMatrix* MakeSolver() { return this; } // for solving + void Solver(MatrixColX&, const MatrixColX&); + LogAndSign LogDeterminant() const; + Real Trace() const; + void GetRow(MatrixRowCol&); + void GetCol(MatrixRowCol&); + void GetCol(MatrixColX&); + void RestoreCol(MatrixRowCol&); + void RestoreCol(MatrixColX& c) { RestoreCol((MatrixRowCol&)c); } + void NextRow(MatrixRowCol&); + void ReSize(int); // change dimensions + void ReSize(const GeneralMatrix& A); + MatrixBandWidth BandWidth() const; + NEW_DELETE(LowerTriangularMatrix) +}; + +class DiagonalMatrix : public GeneralMatrix +{ + GeneralMatrix* Image() const; // copy of matrix +public: + DiagonalMatrix() {} + ~DiagonalMatrix() {} + DiagonalMatrix(ArrayLengthSpecifier); + DiagonalMatrix(const BaseMatrix&); + DiagonalMatrix(const DiagonalMatrix& gm) { GetMatrix(&gm); } + void operator=(const BaseMatrix&); + void operator=(Real f) { GeneralMatrix::operator=(f); } + void operator=(const DiagonalMatrix& m) { operator=((const BaseMatrix&)m); } + Real& operator()(int, int); // access element + Real& operator()(int); // access element + Real operator()(int, int) const; // access element + Real operator()(int) const; + Real& element(int, int); // access element + Real& element(int); // access element + Real element(int, int) const; // access element + Real element(int) const; // access element +#ifdef SETUP_C_SUBSCRIPTS + Real& operator[](int m) { return store[m]; } + const Real& operator[](int m) const { return store[m]; } +#endif + MatrixType Type() const; + + LogAndSign LogDeterminant() const; + Real Trace() const; + void GetRow(MatrixRowCol&); + void GetCol(MatrixRowCol&); + void GetCol(MatrixColX&); + void NextRow(MatrixRowCol&); + void NextCol(MatrixRowCol&); + void NextCol(MatrixColX&); + GeneralMatrix* MakeSolver() { return this; } // for solving + void Solver(MatrixColX&, const MatrixColX&); + GeneralMatrix* Transpose(TransposedMatrix*, MatrixType); + void ReSize(int); // change dimensions + void ReSize(const GeneralMatrix& A); + Real* nric() const + { CheckStore(); return store-1; } // for use by NRIC + MatrixBandWidth BandWidth() const; +// ReturnMatrix Reverse() const; // reverse order of elements + NEW_DELETE(DiagonalMatrix) +}; + +class RowVector : public Matrix +{ + GeneralMatrix* Image() const; // copy of matrix +public: + RowVector() { nrows = 1; } + ~RowVector() {} + RowVector(ArrayLengthSpecifier n) : Matrix(1,n.Value()) {} + RowVector(const BaseMatrix&); + RowVector(const RowVector& gm) { GetMatrix(&gm); } + void operator=(const BaseMatrix&); + void operator=(Real f) { GeneralMatrix::operator=(f); } + void operator=(const RowVector& m) { operator=((const BaseMatrix&)m); } + Real& operator()(int); // access element + Real& element(int); // access element + Real operator()(int) const; // access element + Real element(int) const; // access element +#ifdef SETUP_C_SUBSCRIPTS + Real& operator[](int m) { return store[m]; } + const Real& operator[](int m) const { return store[m]; } +#endif + MatrixType Type() const; + void GetCol(MatrixRowCol&); + void GetCol(MatrixColX&); + void NextCol(MatrixRowCol&); + void NextCol(MatrixColX&); + void RestoreCol(MatrixRowCol&) {} + void RestoreCol(MatrixColX& c); + GeneralMatrix* Transpose(TransposedMatrix*, MatrixType); + void ReSize(int); // change dimensions + void ReSize(int,int); // in case access is matrix + void ReSize(const GeneralMatrix& A); + Real* nric() const + { CheckStore(); return store-1; } // for use by NRIC + void CleanUp(); // to clear store + // friend ReturnMatrix GetMatrixRow(Matrix& A, int row); + NEW_DELETE(RowVector) +}; + +class ColumnVector : public Matrix +{ + GeneralMatrix* Image() const; // copy of matrix +public: + ColumnVector() { ncols = 1; } + ~ColumnVector() {} + ColumnVector(ArrayLengthSpecifier n) : Matrix(n.Value(),1) {} + ColumnVector(const BaseMatrix&); + ColumnVector(const ColumnVector& gm) { GetMatrix(&gm); } + void operator=(const BaseMatrix&); + void operator=(Real f) { GeneralMatrix::operator=(f); } + void operator=(const ColumnVector& m) { operator=((const BaseMatrix&)m); } + Real& operator()(int); // access element + Real& element(int); // access element + Real operator()(int) const; // access element + Real element(int) const; // access element +#ifdef SETUP_C_SUBSCRIPTS + Real& operator[](int m) { return store[m]; } + const Real& operator[](int m) const { return store[m]; } +#endif + MatrixType Type() const; + GeneralMatrix* Transpose(TransposedMatrix*, MatrixType); + void ReSize(int); // change dimensions + void ReSize(int,int); // in case access is matrix + void ReSize(const GeneralMatrix& A); + Real* nric() const + { CheckStore(); return store-1; } // for use by NRIC + void CleanUp(); // to clear store +// ReturnMatrix Reverse() const; // reverse order of elements + NEW_DELETE(ColumnVector) +}; + +class CroutMatrix : public GeneralMatrix // for LU decomposition +{ + int* indx; + bool d; + bool sing; + void ludcmp(); +public: + CroutMatrix(const BaseMatrix&); + MatrixType Type() const; + void lubksb(Real*, int=0); + ~CroutMatrix(); + GeneralMatrix* MakeSolver() { return this; } // for solving + LogAndSign LogDeterminant() const; + void Solver(MatrixColX&, const MatrixColX&); + void GetRow(MatrixRowCol&); + void GetCol(MatrixRowCol&); + void GetCol(MatrixColX& c) { GetCol((MatrixRowCol&)c); } + void operator=(const BaseMatrix&); + void operator=(const CroutMatrix& m) { operator=((const BaseMatrix&)m); } + void CleanUp(); // to clear store + bool IsEqual(const GeneralMatrix&) const; + bool IsSingular() const { return sing; } + NEW_DELETE(CroutMatrix) +}; + +// ***************************** band matrices ***************************/ + +class BandMatrix : public GeneralMatrix // band matrix +{ + GeneralMatrix* Image() const; // copy of matrix +protected: + void CornerClear() const; // set unused elements to zero + short SimpleAddOK(const GeneralMatrix* gm); +public: + int lower, upper; // band widths + BandMatrix() { lower=0; upper=0; CornerClear(); } + ~BandMatrix() {} + BandMatrix(int n,int lb,int ub) { ReSize(n,lb,ub); CornerClear(); } + // standard declaration + BandMatrix(const BaseMatrix&); // evaluate BaseMatrix + void operator=(const BaseMatrix&); + void operator=(Real f) { GeneralMatrix::operator=(f); } + void operator=(const BandMatrix& m) { operator=((const BaseMatrix&)m); } + MatrixType Type() const; + Real& operator()(int, int); // access element + Real& element(int, int); // access element + Real operator()(int, int) const; // access element + Real element(int, int) const; // access element +#ifdef SETUP_C_SUBSCRIPTS + Real* operator[](int m) { return store+(upper+lower)*m+lower; } + const Real* operator[](int m) const { return store+(upper+lower)*m+lower; } +#endif + BandMatrix(const BandMatrix& gm) { GetMatrix(&gm); } + LogAndSign LogDeterminant() const; + GeneralMatrix* MakeSolver(); + Real Trace() const; + Real SumSquare() const { CornerClear(); return GeneralMatrix::SumSquare(); } + Real SumAbsoluteValue() const + { CornerClear(); return GeneralMatrix::SumAbsoluteValue(); } + Real Sum() const + { CornerClear(); return GeneralMatrix::Sum(); } + Real MaximumAbsoluteValue() const + { CornerClear(); return GeneralMatrix::MaximumAbsoluteValue(); } + Real MinimumAbsoluteValue() const + { int i, j; return GeneralMatrix::MinimumAbsoluteValue2(i, j); } + Real Maximum() const { int i, j; return GeneralMatrix::Maximum2(i, j); } + Real Minimum() const { int i, j; return GeneralMatrix::Minimum2(i, j); } + void GetRow(MatrixRowCol&); + void GetCol(MatrixRowCol&); + void GetCol(MatrixColX&); + void RestoreCol(MatrixRowCol&); + void RestoreCol(MatrixColX& c) { RestoreCol((MatrixRowCol&)c); } + void NextRow(MatrixRowCol&); + virtual void ReSize(int, int, int); // change dimensions + void ReSize(const GeneralMatrix& A); + bool SameStorageType(const GeneralMatrix& A) const; + void ReSizeForAdd(const GeneralMatrix& A, const GeneralMatrix& B); + void ReSizeForSP(const GeneralMatrix& A, const GeneralMatrix& B); + MatrixBandWidth BandWidth() const; + void SetParameters(const GeneralMatrix*); + MatrixInput operator<<(Real); // will give error + MatrixInput operator<<(int f); + void operator<<(const Real* r); // will give error + // the next is included because Zortech and Borland + // cannot find the copy in GeneralMatrix + void operator<<(const BaseMatrix& X) { GeneralMatrix::operator<<(X); } + NEW_DELETE(BandMatrix) +}; + +class UpperBandMatrix : public BandMatrix // upper band matrix +{ + GeneralMatrix* Image() const; // copy of matrix +public: + UpperBandMatrix() {} + ~UpperBandMatrix() {} + UpperBandMatrix(int n, int ubw) // standard declaration + : BandMatrix(n, 0, ubw) {} + UpperBandMatrix(const BaseMatrix&); // evaluate BaseMatrix + void operator=(const BaseMatrix&); + void operator=(Real f) { GeneralMatrix::operator=(f); } + void operator=(const UpperBandMatrix& m) + { operator=((const BaseMatrix&)m); } + MatrixType Type() const; + UpperBandMatrix(const UpperBandMatrix& gm) { GetMatrix(&gm); } + GeneralMatrix* MakeSolver() { return this; } + void Solver(MatrixColX&, const MatrixColX&); + LogAndSign LogDeterminant() const; + void ReSize(int, int, int); // change dimensions + void ReSize(int n,int ubw) // change dimensions + { BandMatrix::ReSize(n,0,ubw); } + void ReSize(const GeneralMatrix& A) { BandMatrix::ReSize(A); } + Real& operator()(int, int); + Real operator()(int, int) const; + Real& element(int, int); + Real element(int, int) const; +#ifdef SETUP_C_SUBSCRIPTS + Real* operator[](int m) { return store+upper*m; } + const Real* operator[](int m) const { return store+upper*m; } +#endif + NEW_DELETE(UpperBandMatrix) +}; + +class LowerBandMatrix : public BandMatrix // upper band matrix +{ + GeneralMatrix* Image() const; // copy of matrix +public: + LowerBandMatrix() {} + ~LowerBandMatrix() {} + LowerBandMatrix(int n, int lbw) // standard declaration + : BandMatrix(n, lbw, 0) {} + LowerBandMatrix(const BaseMatrix&); // evaluate BaseMatrix + void operator=(const BaseMatrix&); + void operator=(Real f) { GeneralMatrix::operator=(f); } + void operator=(const LowerBandMatrix& m) + { operator=((const BaseMatrix&)m); } + MatrixType Type() const; + LowerBandMatrix(const LowerBandMatrix& gm) { GetMatrix(&gm); } + GeneralMatrix* MakeSolver() { return this; } + void Solver(MatrixColX&, const MatrixColX&); + LogAndSign LogDeterminant() const; + void ReSize(int, int, int); // change dimensions + void ReSize(int n,int lbw) // change dimensions + { BandMatrix::ReSize(n,lbw,0); } + void ReSize(const GeneralMatrix& A) { BandMatrix::ReSize(A); } + Real& operator()(int, int); + Real operator()(int, int) const; + Real& element(int, int); + Real element(int, int) const; +#ifdef SETUP_C_SUBSCRIPTS + Real* operator[](int m) { return store+lower*(m+1); } + const Real* operator[](int m) const { return store+lower*(m+1); } +#endif + NEW_DELETE(LowerBandMatrix) +}; + +class SymmetricBandMatrix : public GeneralMatrix +{ + GeneralMatrix* Image() const; // copy of matrix + void CornerClear() const; // set unused elements to zero + short SimpleAddOK(const GeneralMatrix* gm); +public: + int lower; // lower band width + SymmetricBandMatrix() { lower=0; CornerClear(); } + ~SymmetricBandMatrix() {} + SymmetricBandMatrix(int n, int lb) { ReSize(n,lb); CornerClear(); } + SymmetricBandMatrix(const BaseMatrix&); + void operator=(const BaseMatrix&); + void operator=(Real f) { GeneralMatrix::operator=(f); } + void operator=(const SymmetricBandMatrix& m) + { operator=((const BaseMatrix&)m); } + Real& operator()(int, int); // access element + Real& element(int, int); // access element + Real operator()(int, int) const; // access element + Real element(int, int) const; // access element +#ifdef SETUP_C_SUBSCRIPTS + Real* operator[](int m) { return store+lower*(m+1); } + const Real* operator[](int m) const { return store+lower*(m+1); } +#endif + MatrixType Type() const; + SymmetricBandMatrix(const SymmetricBandMatrix& gm) { GetMatrix(&gm); } + GeneralMatrix* MakeSolver(); + Real SumSquare() const; + Real SumAbsoluteValue() const; + Real Sum() const; + Real MaximumAbsoluteValue() const + { CornerClear(); return GeneralMatrix::MaximumAbsoluteValue(); } + Real MinimumAbsoluteValue() const + { int i, j; return GeneralMatrix::MinimumAbsoluteValue2(i, j); } + Real Maximum() const { int i, j; return GeneralMatrix::Maximum2(i, j); } + Real Minimum() const { int i, j; return GeneralMatrix::Minimum2(i, j); } + Real Trace() const; + LogAndSign LogDeterminant() const; + void GetRow(MatrixRowCol&); + void GetCol(MatrixRowCol&); + void GetCol(MatrixColX&); + void RestoreCol(MatrixRowCol&) {} + void RestoreCol(MatrixColX&); + GeneralMatrix* Transpose(TransposedMatrix*, MatrixType); + void ReSize(int,int); // change dimensions + void ReSize(const GeneralMatrix& A); + bool SameStorageType(const GeneralMatrix& A) const; + void ReSizeForAdd(const GeneralMatrix& A, const GeneralMatrix& B); + void ReSizeForSP(const GeneralMatrix& A, const GeneralMatrix& B); + MatrixBandWidth BandWidth() const; + void SetParameters(const GeneralMatrix*); + NEW_DELETE(SymmetricBandMatrix) +}; + +class BandLUMatrix : public GeneralMatrix +// for LU decomposition of band matrix +{ + int* indx; + bool d; + bool sing; // true if singular + Real* store2; + int storage2; + void ludcmp(); + int m1,m2; // lower and upper +public: + BandLUMatrix(const BaseMatrix&); + MatrixType Type() const; + void lubksb(Real*, int=0); + ~BandLUMatrix(); + GeneralMatrix* MakeSolver() { return this; } // for solving + LogAndSign LogDeterminant() const; + void Solver(MatrixColX&, const MatrixColX&); + void GetRow(MatrixRowCol&); + void GetCol(MatrixRowCol&); + void GetCol(MatrixColX& c) { GetCol((MatrixRowCol&)c); } + void operator=(const BaseMatrix&); + void operator=(const BandLUMatrix& m) { operator=((const BaseMatrix&)m); } + void CleanUp(); // to clear store + bool IsEqual(const GeneralMatrix&) const; + bool IsSingular() const { return sing; } + NEW_DELETE(BandLUMatrix) +}; + +// ************************** special matrices **************************** + +class IdentityMatrix : public GeneralMatrix +{ + GeneralMatrix* Image() const; // copy of matrix +public: + IdentityMatrix() {} + ~IdentityMatrix() {} + IdentityMatrix(ArrayLengthSpecifier n) : GeneralMatrix(1) + { nrows = ncols = n.Value(); *store = 1; } + IdentityMatrix(const IdentityMatrix& gm) { GetMatrix(&gm); } + IdentityMatrix(const BaseMatrix&); + void operator=(const BaseMatrix&); + void operator=(Real f) { GeneralMatrix::operator=(f); } + MatrixType Type() const; + + LogAndSign LogDeterminant() const; + Real Trace() const; + Real SumSquare() const; + Real SumAbsoluteValue() const; + Real Sum() const { return Trace(); } + void GetRow(MatrixRowCol&); + void GetCol(MatrixRowCol&); + void GetCol(MatrixColX&); + void NextRow(MatrixRowCol&); + void NextCol(MatrixRowCol&); + void NextCol(MatrixColX&); + GeneralMatrix* MakeSolver() { return this; } // for solving + void Solver(MatrixColX&, const MatrixColX&); + GeneralMatrix* Transpose(TransposedMatrix*, MatrixType); + void ReSize(int n); + void ReSize(const GeneralMatrix& A); + MatrixBandWidth BandWidth() const; +// ReturnMatrix Reverse() const; // reverse order of elements + NEW_DELETE(IdentityMatrix) +}; + + + + +// ************************** GenericMatrix class ************************/ + +class GenericMatrix : public BaseMatrix +{ + GeneralMatrix* gm; + int search(const BaseMatrix* bm) const; + friend class BaseMatrix; +public: + GenericMatrix() : gm(0) {} + GenericMatrix(const BaseMatrix& bm) + { gm = ((BaseMatrix&)bm).Evaluate(); gm = gm->Image(); } + GenericMatrix(const GenericMatrix& bm) + { gm = bm.gm->Image(); } + void operator=(const GenericMatrix&); + void operator=(const BaseMatrix&); + void operator+=(const BaseMatrix&); + void operator-=(const BaseMatrix&); + void operator*=(const BaseMatrix&); + void operator|=(const BaseMatrix&); + void operator&=(const BaseMatrix&); + void operator+=(Real); + void operator-=(Real r) { operator+=(-r); } + void operator*=(Real); + void operator/=(Real r) { operator*=(1.0/r); } + ~GenericMatrix() { delete gm; } + void CleanUp() { delete gm; gm = 0; } + void Release() { gm->Release(); } + GeneralMatrix* Evaluate(MatrixType = MatrixTypeUnSp); + MatrixBandWidth BandWidth() const; + NEW_DELETE(GenericMatrix) +}; + +// *************************** temporary classes *************************/ + +class MultipliedMatrix : public BaseMatrix +{ +protected: + // if these union statements cause problems, simply remove them + // and declare the items individually + union { const BaseMatrix* bm1; GeneralMatrix* gm1; }; + // pointers to summands + union { const BaseMatrix* bm2; GeneralMatrix* gm2; }; + MultipliedMatrix(const BaseMatrix* bm1x, const BaseMatrix* bm2x) + : bm1(bm1x),bm2(bm2x) {} + int search(const BaseMatrix*) const; + friend class BaseMatrix; + friend class GeneralMatrix; + friend class GenericMatrix; +public: + ~MultipliedMatrix() {} + GeneralMatrix* Evaluate(MatrixType mt=MatrixTypeUnSp); + MatrixBandWidth BandWidth() const; + NEW_DELETE(MultipliedMatrix) +}; + +class AddedMatrix : public MultipliedMatrix +{ +protected: + AddedMatrix(const BaseMatrix* bm1x, const BaseMatrix* bm2x) + : MultipliedMatrix(bm1x,bm2x) {} + + friend class BaseMatrix; + friend class GeneralMatrix; + friend class GenericMatrix; +public: + ~AddedMatrix() {} + GeneralMatrix* Evaluate(MatrixType mt=MatrixTypeUnSp); + MatrixBandWidth BandWidth() const; + NEW_DELETE(AddedMatrix) +}; + +class SPMatrix : public AddedMatrix +{ +protected: + SPMatrix(const BaseMatrix* bm1x, const BaseMatrix* bm2x) + : AddedMatrix(bm1x,bm2x) {} + + friend class BaseMatrix; + friend class GeneralMatrix; + friend class GenericMatrix; +public: + ~SPMatrix() {} + GeneralMatrix* Evaluate(MatrixType mt=MatrixTypeUnSp); + MatrixBandWidth BandWidth() const; + +#ifndef TEMPS_DESTROYED_QUICKLY + friend SPMatrix SP(const BaseMatrix&, const BaseMatrix&); +#else + friend SPMatrix& SP(const BaseMatrix&, const BaseMatrix&); +#endif + + NEW_DELETE(SPMatrix) +}; + +class KPMatrix : public MultipliedMatrix +{ +protected: + KPMatrix(const BaseMatrix* bm1x, const BaseMatrix* bm2x) + : MultipliedMatrix(bm1x,bm2x) {} + + friend class BaseMatrix; + friend class GeneralMatrix; + friend class GenericMatrix; +public: + ~KPMatrix() {} + MatrixBandWidth BandWidth() const; + GeneralMatrix* Evaluate(MatrixType mt=MatrixTypeUnSp); +#ifndef TEMPS_DESTROYED_QUICKLY + friend KPMatrix KP(const BaseMatrix&, const BaseMatrix&); +#else + friend KPMatrix& KP(const BaseMatrix&, const BaseMatrix&); +#endif + NEW_DELETE(KPMatrix) +}; + +class ConcatenatedMatrix : public MultipliedMatrix +{ +protected: + ConcatenatedMatrix(const BaseMatrix* bm1x, const BaseMatrix* bm2x) + : MultipliedMatrix(bm1x,bm2x) {} + + friend class BaseMatrix; + friend class GeneralMatrix; + friend class GenericMatrix; +public: + ~ConcatenatedMatrix() {} + MatrixBandWidth BandWidth() const; + GeneralMatrix* Evaluate(MatrixType mt=MatrixTypeUnSp); + NEW_DELETE(ConcatenatedMatrix) +}; + +class StackedMatrix : public ConcatenatedMatrix +{ +protected: + StackedMatrix(const BaseMatrix* bm1x, const BaseMatrix* bm2x) + : ConcatenatedMatrix(bm1x,bm2x) {} + + friend class BaseMatrix; + friend class GeneralMatrix; + friend class GenericMatrix; +public: + ~StackedMatrix() {} + GeneralMatrix* Evaluate(MatrixType mt=MatrixTypeUnSp); + NEW_DELETE(StackedMatrix) +}; + +class SolvedMatrix : public MultipliedMatrix +{ + SolvedMatrix(const BaseMatrix* bm1x, const BaseMatrix* bm2x) + : MultipliedMatrix(bm1x,bm2x) {} + friend class BaseMatrix; + friend class InvertedMatrix; // for operator* +public: + ~SolvedMatrix() {} + GeneralMatrix* Evaluate(MatrixType mt=MatrixTypeUnSp); + MatrixBandWidth BandWidth() const; + NEW_DELETE(SolvedMatrix) +}; + +class SubtractedMatrix : public AddedMatrix +{ + SubtractedMatrix(const BaseMatrix* bm1x, const BaseMatrix* bm2x) + : AddedMatrix(bm1x,bm2x) {} + friend class BaseMatrix; + friend class GeneralMatrix; + friend class GenericMatrix; +public: + ~SubtractedMatrix() {} + GeneralMatrix* Evaluate(MatrixType mt=MatrixTypeUnSp); + NEW_DELETE(SubtractedMatrix) +}; + +class ShiftedMatrix : public BaseMatrix +{ +protected: + union { const BaseMatrix* bm; GeneralMatrix* gm; }; + Real f; + ShiftedMatrix(const BaseMatrix* bmx, Real fx) : bm(bmx),f(fx) {} + int search(const BaseMatrix*) const; + friend class BaseMatrix; + friend class GeneralMatrix; + friend class GenericMatrix; +public: + ~ShiftedMatrix() {} + GeneralMatrix* Evaluate(MatrixType mt=MatrixTypeUnSp); +#ifndef TEMPS_DESTROYED_QUICKLY + friend ShiftedMatrix operator+(Real f, const BaseMatrix& BM); +// { return ShiftedMatrix(&BM, f); } +#endif + NEW_DELETE(ShiftedMatrix) +}; + +class NegShiftedMatrix : public ShiftedMatrix +{ +protected: + NegShiftedMatrix(Real fx, const BaseMatrix* bmx) : ShiftedMatrix(bmx,fx) {} + friend class BaseMatrix; + friend class GeneralMatrix; + friend class GenericMatrix; +public: + ~NegShiftedMatrix() {} + GeneralMatrix* Evaluate(MatrixType mt=MatrixTypeUnSp); +#ifndef TEMPS_DESTROYED_QUICKLY + friend NegShiftedMatrix operator-(Real, const BaseMatrix&); +#else + friend NegShiftedMatrix& operator-(Real, const BaseMatrix&); +#endif + NEW_DELETE(NegShiftedMatrix) +}; + +class ScaledMatrix : public ShiftedMatrix +{ + ScaledMatrix(const BaseMatrix* bmx, Real fx) : ShiftedMatrix(bmx,fx) {} + friend class BaseMatrix; + friend class GeneralMatrix; + friend class GenericMatrix; +public: + ~ScaledMatrix() {} + GeneralMatrix* Evaluate(MatrixType mt=MatrixTypeUnSp); + MatrixBandWidth BandWidth() const; +#ifndef TEMPS_DESTROYED_QUICKLY + friend ScaledMatrix operator*(Real f, const BaseMatrix& BM); + //{ return ScaledMatrix(&BM, f); } +#endif + NEW_DELETE(ScaledMatrix) +}; + +class NegatedMatrix : public BaseMatrix +{ +protected: + union { const BaseMatrix* bm; GeneralMatrix* gm; }; + NegatedMatrix(const BaseMatrix* bmx) : bm(bmx) {} + int search(const BaseMatrix*) const; +private: + friend class BaseMatrix; +public: + ~NegatedMatrix() {} + GeneralMatrix* Evaluate(MatrixType mt=MatrixTypeUnSp); + MatrixBandWidth BandWidth() const; + NEW_DELETE(NegatedMatrix) +}; + +class TransposedMatrix : public NegatedMatrix +{ + TransposedMatrix(const BaseMatrix* bmx) : NegatedMatrix(bmx) {} + friend class BaseMatrix; +public: + ~TransposedMatrix() {} + GeneralMatrix* Evaluate(MatrixType mt=MatrixTypeUnSp); + MatrixBandWidth BandWidth() const; + NEW_DELETE(TransposedMatrix) +}; + +class ReversedMatrix : public NegatedMatrix +{ + ReversedMatrix(const BaseMatrix* bmx) : NegatedMatrix(bmx) {} + friend class BaseMatrix; +public: + ~ReversedMatrix() {} + GeneralMatrix* Evaluate(MatrixType mt=MatrixTypeUnSp); + NEW_DELETE(ReversedMatrix) +}; + +class InvertedMatrix : public NegatedMatrix +{ + InvertedMatrix(const BaseMatrix* bmx) : NegatedMatrix(bmx) {} +public: + ~InvertedMatrix() {} +#ifndef TEMPS_DESTROYED_QUICKLY + SolvedMatrix operator*(const BaseMatrix&) const; // inverse(A) * B + ScaledMatrix operator*(Real t) const { return BaseMatrix::operator*(t); } +#else + SolvedMatrix& operator*(const BaseMatrix&); // inverse(A) * B + ScaledMatrix& operator*(Real t) const { return BaseMatrix::operator*(t); } +#endif + friend class BaseMatrix; + GeneralMatrix* Evaluate(MatrixType mt=MatrixTypeUnSp); + MatrixBandWidth BandWidth() const; + NEW_DELETE(InvertedMatrix) +}; + +class RowedMatrix : public NegatedMatrix +{ + RowedMatrix(const BaseMatrix* bmx) : NegatedMatrix(bmx) {} + friend class BaseMatrix; +public: + ~RowedMatrix() {} + GeneralMatrix* Evaluate(MatrixType mt=MatrixTypeUnSp); + MatrixBandWidth BandWidth() const; + NEW_DELETE(RowedMatrix) +}; + +class ColedMatrix : public NegatedMatrix +{ + ColedMatrix(const BaseMatrix* bmx) : NegatedMatrix(bmx) {} + friend class BaseMatrix; +public: + ~ColedMatrix() {} + GeneralMatrix* Evaluate(MatrixType mt=MatrixTypeUnSp); + MatrixBandWidth BandWidth() const; + NEW_DELETE(ColedMatrix) +}; + +class DiagedMatrix : public NegatedMatrix +{ + DiagedMatrix(const BaseMatrix* bmx) : NegatedMatrix(bmx) {} + friend class BaseMatrix; +public: + ~DiagedMatrix() {} + GeneralMatrix* Evaluate(MatrixType mt=MatrixTypeUnSp); + MatrixBandWidth BandWidth() const; + NEW_DELETE(DiagedMatrix) +}; + +class MatedMatrix : public NegatedMatrix +{ + int nr, nc; + MatedMatrix(const BaseMatrix* bmx, int nrx, int ncx) + : NegatedMatrix(bmx), nr(nrx), nc(ncx) {} + friend class BaseMatrix; +public: + ~MatedMatrix() {} + GeneralMatrix* Evaluate(MatrixType mt=MatrixTypeUnSp); + MatrixBandWidth BandWidth() const; + NEW_DELETE(MatedMatrix) +}; + +class ReturnMatrixX : public BaseMatrix // for matrix return +{ + GeneralMatrix* gm; + int search(const BaseMatrix*) const; +public: + ~ReturnMatrixX() {} + GeneralMatrix* Evaluate(MatrixType mt=MatrixTypeUnSp); + friend class BaseMatrix; +#ifdef TEMPS_DESTROYED_QUICKLY_R + ReturnMatrixX(const ReturnMatrixX& tm); +#else + ReturnMatrixX(const ReturnMatrixX& tm) : gm(tm.gm) {} +#endif + ReturnMatrixX(const GeneralMatrix* gmx) : gm((GeneralMatrix*&)gmx) {} +// ReturnMatrixX(GeneralMatrix&); + MatrixBandWidth BandWidth() const; + NEW_DELETE(ReturnMatrixX) +}; + + +// ************************** submatrices ******************************/ + +class GetSubMatrix : public NegatedMatrix +{ + int row_skip; + int row_number; + int col_skip; + int col_number; + bool IsSym; + + GetSubMatrix + (const BaseMatrix* bmx, int rs, int rn, int cs, int cn, bool is) + : NegatedMatrix(bmx), + row_skip(rs), row_number(rn), col_skip(cs), col_number(cn), IsSym(is) {} + void SetUpLHS(); + friend class BaseMatrix; +public: + GetSubMatrix(const GetSubMatrix& g) + : NegatedMatrix(g.bm), row_skip(g.row_skip), row_number(g.row_number), + col_skip(g.col_skip), col_number(g.col_number), IsSym(g.IsSym) {} + ~GetSubMatrix() {} + GeneralMatrix* Evaluate(MatrixType mt=MatrixTypeUnSp); + void operator=(const BaseMatrix&); + void operator+=(const BaseMatrix&); + void operator-=(const BaseMatrix&); + void operator=(const GetSubMatrix& m) { operator=((const BaseMatrix&)m); } + void operator<<(const BaseMatrix&); + void operator<<(const Real*); // copy from array + MatrixInput operator<<(Real); // for loading a list + MatrixInput operator<<(int f); + void operator=(Real); // copy from constant + void operator+=(Real); // add constant + void operator-=(Real r) { operator+=(-r); } // subtract constant + void operator*=(Real); // multiply by constant + void operator/=(Real r) { operator*=(1.0/r); } // divide by constant + void Inject(const GeneralMatrix&); // copy stored els only + MatrixBandWidth BandWidth() const; + NEW_DELETE(GetSubMatrix) +}; + +// ******************** linear equation solving ****************************/ + +class LinearEquationSolver : public BaseMatrix +{ + GeneralMatrix* gm; + int search(const BaseMatrix*) const { return 0; } + friend class BaseMatrix; +public: + LinearEquationSolver(const BaseMatrix& bm); + ~LinearEquationSolver() { delete gm; } + void CleanUp() { delete gm; } + GeneralMatrix* Evaluate(MatrixType) { return gm; } + // probably should have an error message if MatrixType != UnSp + NEW_DELETE(LinearEquationSolver) +}; + +// ************************** matrix input *******************************/ + +class MatrixInput // for reading a list of values into a matrix + // the difficult part is detecting a mismatch + // in the number of elements +{ + int n; // number values still to be read + Real* r; // pointer to next location to be read to +public: + MatrixInput(const MatrixInput& mi) : n(mi.n), r(mi.r) {} + MatrixInput(int nx, Real* rx) : n(nx), r(rx) {} + ~MatrixInput(); + MatrixInput operator<<(Real); + MatrixInput operator<<(int f); + friend class GeneralMatrix; +}; + + + +// **************** a very simple integer array class ********************/ + +// A minimal array class to imitate a C style array but giving dynamic storage +// mostly intended for internal use by newmat + +class SimpleIntArray : public Janitor +{ +protected: + int* a; // pointer to the array + int n; // length of the array +public: + SimpleIntArray(int xn); // build an array length xn + ~SimpleIntArray(); // return the space to memory + int& operator[](int i); // access element of the array - start at 0 + int operator[](int i) const; + // access element of constant array + void operator=(int ai); // set the array equal to a constant + void operator=(const SimpleIntArray& b); + // copy the elements of an array + SimpleIntArray(const SimpleIntArray& b); + // make a new array equal to an existing one + int Size() const { return n; } + // return the size of the array + int* Data() { return a; } // pointer to the data + const int* Data() const { return a; } + // pointer to the data + void ReSize(int i, bool keep = false); + // change length, keep data if keep = true + void CleanUp() { ReSize(0); } + NEW_DELETE(SimpleIntArray) +}; + +// *************************** exceptions ********************************/ + +class NPDException : public Runtime_error // Not positive definite +{ +public: + static unsigned long Select; // for identifying exception + NPDException(const GeneralMatrix&); +}; + +class ConvergenceException : public Runtime_error +{ +public: + static unsigned long Select; // for identifying exception + ConvergenceException(const GeneralMatrix& A); + ConvergenceException(const char* c); +}; + +class SingularException : public Runtime_error +{ +public: + static unsigned long Select; // for identifying exception + SingularException(const GeneralMatrix& A); +}; + +class OverflowException : public Runtime_error +{ +public: + static unsigned long Select; // for identifying exception + OverflowException(const char* c); +}; + +class ProgramException : public Logic_error +{ +protected: + ProgramException(); +public: + static unsigned long Select; // for identifying exception + ProgramException(const char* c); + ProgramException(const char* c, const GeneralMatrix&); + ProgramException(const char* c, const GeneralMatrix&, const GeneralMatrix&); + ProgramException(const char* c, MatrixType, MatrixType); +}; + +class IndexException : public Logic_error +{ +public: + static unsigned long Select; // for identifying exception + IndexException(int i, const GeneralMatrix& A); + IndexException(int i, int j, const GeneralMatrix& A); + // next two are for access via element function + IndexException(int i, const GeneralMatrix& A, bool); + IndexException(int i, int j, const GeneralMatrix& A, bool); +}; + +class VectorException : public Logic_error // cannot convert to vector +{ +public: + static unsigned long Select; // for identifying exception + VectorException(); + VectorException(const GeneralMatrix& A); +}; + +class NotSquareException : public Logic_error +{ +public: + static unsigned long Select; // for identifying exception + NotSquareException(const GeneralMatrix& A); +}; + +class SubMatrixDimensionException : public Logic_error +{ +public: + static unsigned long Select; // for identifying exception + SubMatrixDimensionException(); +}; + +class IncompatibleDimensionsException : public Logic_error +{ +public: + static unsigned long Select; // for identifying exception + IncompatibleDimensionsException(); + IncompatibleDimensionsException(const GeneralMatrix&, const GeneralMatrix&); +}; + +class NotDefinedException : public Logic_error +{ +public: + static unsigned long Select; // for identifying exception + NotDefinedException(const char* op, const char* matrix); +}; + +class CannotBuildException : public Logic_error +{ +public: + static unsigned long Select; // for identifying exception + CannotBuildException(const char* matrix); +}; + + +class InternalException : public Logic_error +{ +public: + static unsigned long Select; // for identifying exception + InternalException(const char* c); +}; + +// ************************ functions ************************************ // + +bool operator==(const GeneralMatrix& A, const GeneralMatrix& B); +bool operator==(const BaseMatrix& A, const BaseMatrix& B); +inline bool operator!=(const GeneralMatrix& A, const GeneralMatrix& B) + { return ! (A==B); } +inline bool operator!=(const BaseMatrix& A, const BaseMatrix& B) + { return ! (A==B); } + + // inequality operators are dummies included for compatibility + // with STL. They throw an exception if actually called. +inline bool operator<=(const BaseMatrix& A, const BaseMatrix&) + { A.IEQND(); return true; } +inline bool operator>=(const BaseMatrix& A, const BaseMatrix&) + { A.IEQND(); return true; } +inline bool operator<(const BaseMatrix& A, const BaseMatrix&) + { A.IEQND(); return true; } +inline bool operator>(const BaseMatrix& A, const BaseMatrix&) + { A.IEQND(); return true; } + +bool IsZero(const BaseMatrix& A); + + +// *********************** friend functions ****************************** // + +bool Rectangular(MatrixType a, MatrixType b, MatrixType c); +bool Compare(const MatrixType&, MatrixType&); +Real DotProduct(const Matrix& A, const Matrix& B); +#ifndef TEMPS_DESTROYED_QUICKLY + SPMatrix SP(const BaseMatrix&, const BaseMatrix&); + KPMatrix KP(const BaseMatrix&, const BaseMatrix&); + ShiftedMatrix operator+(Real f, const BaseMatrix& BM); + NegShiftedMatrix operator-(Real, const BaseMatrix&); + ScaledMatrix operator*(Real f, const BaseMatrix& BM); +#else + SPMatrix& SP(const BaseMatrix&, const BaseMatrix&); + KPMatrix& KP(const BaseMatrix&, const BaseMatrix&); + NegShiftedMatrix& operator-(Real, const BaseMatrix&); +#endif + + +// ********************* inline functions ******************************** // + +inline LogAndSign LogDeterminant(const BaseMatrix& B) + { return B.LogDeterminant(); } +inline Real Determinant(const BaseMatrix& B) + { return B.Determinant(); } +inline Real SumSquare(const BaseMatrix& B) { return B.SumSquare(); } +inline Real NormFrobenius(const BaseMatrix& B) { return B.NormFrobenius(); } +inline Real Trace(const BaseMatrix& B) { return B.Trace(); } +inline Real SumAbsoluteValue(const BaseMatrix& B) + { return B.SumAbsoluteValue(); } +inline Real Sum(const BaseMatrix& B) + { return B.Sum(); } +inline Real MaximumAbsoluteValue(const BaseMatrix& B) + { return B.MaximumAbsoluteValue(); } +inline Real MinimumAbsoluteValue(const BaseMatrix& B) + { return B.MinimumAbsoluteValue(); } +inline Real Maximum(const BaseMatrix& B) { return B.Maximum(); } +inline Real Minimum(const BaseMatrix& B) { return B.Minimum(); } +inline Real Norm1(const BaseMatrix& B) { return B.Norm1(); } +inline Real Norm1(RowVector& RV) { return RV.MaximumAbsoluteValue(); } +inline Real NormInfinity(const BaseMatrix& B) { return B.NormInfinity(); } +inline Real NormInfinity(ColumnVector& CV) + { return CV.MaximumAbsoluteValue(); } +inline bool IsZero(const GeneralMatrix& A) { return A.IsZero(); } + +#ifdef TEMPS_DESTROYED_QUICKLY +inline ShiftedMatrix& operator+(Real f, const BaseMatrix& BM) + { return BM + f; } +inline ScaledMatrix& operator*(Real f, const BaseMatrix& BM) + { return BM * f; } +#endif + +// these are moved out of the class definitions because of a problem +// with the Intel 8.1 compiler +#ifndef TEMPS_DESTROYED_QUICKLY + inline ShiftedMatrix operator+(Real f, const BaseMatrix& BM) + { return ShiftedMatrix(&BM, f); } + inline ScaledMatrix operator*(Real f, const BaseMatrix& BM) + { return ScaledMatrix(&BM, f); } +#endif + + +inline MatrixInput MatrixInput::operator<<(int f) { return *this << (Real)f; } +inline MatrixInput GeneralMatrix::operator<<(int f) { return *this << (Real)f; } +inline MatrixInput BandMatrix::operator<<(int f) { return *this << (Real)f; } +inline MatrixInput GetSubMatrix::operator<<(int f) { return *this << (Real)f; } + + + +#ifdef use_namespace +} +#endif + + +#endif + +// body file: newmat1.cpp +// body file: newmat2.cpp +// body file: newmat3.cpp +// body file: newmat4.cpp +// body file: newmat5.cpp +// body file: newmat6.cpp +// body file: newmat7.cpp +// body file: newmat8.cpp +// body file: newmatex.cpp +// body file: bandmat.cpp +// body file: submat.cpp + + + + + + + diff --git a/3rdparty/newmat/newmat.lfl b/3rdparty/newmat/newmat.lfl new file mode 100644 index 0000000..b913624 --- /dev/null +++ b/3rdparty/newmat/newmat.lfl @@ -0,0 +1,4 @@ +newmat.h +newmatap.h +newmatio.h +myexcept.cpp diff --git a/3rdparty/newmat/newmat1.cpp b/3rdparty/newmat/newmat1.cpp new file mode 100644 index 0000000..9a6987d --- /dev/null +++ b/3rdparty/newmat/newmat1.cpp @@ -0,0 +1,177 @@ +//$$ newmat1.cpp Matrix type functions + +// Copyright (C) 1991,2,3,4: R B Davies + +//#define WANT_STREAM + +#include "newmat.h" + +#ifdef use_namespace +namespace NEWMAT { +#endif + +#ifdef DO_REPORT +#define REPORT { static ExeCounter ExeCount(__LINE__,1); ++ExeCount; } +#else +#define REPORT {} +#endif + + +/************************* MatrixType functions *****************************/ + + +// all operations to return MatrixTypes which correspond to valid types +// of matrices. +// Eg: if it has the Diagonal attribute, then it must also have +// Upper, Lower, Band and Symmetric. + + +MatrixType MatrixType::operator*(const MatrixType& mt) const +{ + REPORT + int a = attribute & mt.attribute & ~Symmetric; + a |= (a & Diagonal) * 31; // recognise diagonal + return MatrixType(a); +} + +MatrixType MatrixType::SP(const MatrixType& mt) const +// elementwise product +// Lower, Upper, Diag, Band if only one is +// Symmetric, Ones, Valid (and Real) if both are +// Need to include Lower & Upper => Diagonal +// Will need to include both Skew => Symmetric +{ + REPORT + int a = ((attribute | mt.attribute) & ~(Symmetric + Valid + Ones)) + | (attribute & mt.attribute); + if ((a & Lower) != 0 && (a & Upper) != 0) a |= Diagonal; + a |= (a & Diagonal) * 31; // recognise diagonal + return MatrixType(a); +} + +MatrixType MatrixType::KP(const MatrixType& mt) const +// Kronecker product +// Lower, Upper, Diag, Symmetric, Band, Valid if both are +// Do not treat Band separately +// Ones is complicated so leave this out +{ + REPORT + int a = (attribute & mt.attribute) & ~Ones; + return MatrixType(a); +} + +MatrixType MatrixType::i() const // type of inverse +{ + REPORT + int a = attribute & ~(Band+LUDeco); + a |= (a & Diagonal) * 31; // recognise diagonal + return MatrixType(a); +} + +MatrixType MatrixType::t() const +// swap lower and upper attributes +// assume Upper is in bit above Lower +{ + REPORT + int a = attribute; + a ^= (((a >> 1) ^ a) & Lower) * 3; + return MatrixType(a); +} + +MatrixType MatrixType::MultRHS() const +{ + REPORT + // remove symmetric attribute unless diagonal + return (attribute >= Dg) ? attribute : (attribute & ~Symmetric); +} + +bool Rectangular(MatrixType a, MatrixType b, MatrixType c) +{ + REPORT + return + ((a.attribute | b.attribute | c.attribute) & ~MatrixType::Valid) == 0; +} + +const char* MatrixType::Value() const +{ +// make a string with the name of matrix with the given attributes + switch (attribute) + { + case Valid: REPORT return "Rect "; + case Valid+Symmetric: REPORT return "Sym "; + case Valid+Band: REPORT return "Band "; + case Valid+Symmetric+Band: REPORT return "SmBnd"; + case Valid+Upper: REPORT return "UT "; + case Valid+Diagonal+Symmetric+Band+Upper+Lower: + REPORT return "Diag "; + case Valid+Diagonal+Symmetric+Band+Upper+Lower+Ones: + REPORT return "Ident"; + case Valid+Band+Upper: REPORT return "UpBnd"; + case Valid+Lower: REPORT return "LT "; + case Valid+Band+Lower: REPORT return "LwBnd"; + default: + REPORT + if (!(attribute & Valid)) return "UnSp "; + if (attribute & LUDeco) + return (attribute & Band) ? "BndLU" : "Crout"; + return "?????"; + } +} + + +GeneralMatrix* MatrixType::New(int nr, int nc, BaseMatrix* bm) const +{ +// make a new matrix with the given attributes + + Tracer tr("New"); GeneralMatrix* gm=0; // initialised to keep gnu happy + switch (attribute) + { + case Valid: + REPORT + if (nc==1) { gm = new ColumnVector(nr); break; } + if (nr==1) { gm = new RowVector(nc); break; } + gm = new Matrix(nr, nc); break; + + case Valid+Symmetric: + REPORT gm = new SymmetricMatrix(nr); break; + + case Valid+Band: + { + REPORT + MatrixBandWidth bw = bm->BandWidth(); + gm = new BandMatrix(nr,bw.lower,bw.upper); break; + } + + case Valid+Symmetric+Band: + REPORT gm = new SymmetricBandMatrix(nr,bm->BandWidth().lower); break; + + case Valid+Upper: + REPORT gm = new UpperTriangularMatrix(nr); break; + + case Valid+Diagonal+Symmetric+Band+Upper+Lower: + REPORT gm = new DiagonalMatrix(nr); break; + + case Valid+Band+Upper: + REPORT gm = new UpperBandMatrix(nr,bm->BandWidth().upper); break; + + case Valid+Lower: + REPORT gm = new LowerTriangularMatrix(nr); break; + + case Valid+Band+Lower: + REPORT gm = new LowerBandMatrix(nr,bm->BandWidth().lower); break; + + case Valid+Diagonal+Symmetric+Band+Upper+Lower+Ones: + REPORT gm = new IdentityMatrix(nr); break; + + default: + Throw(ProgramException("Invalid matrix type")); + } + + MatrixErrorNoSpace(gm); gm->Protect(); return gm; +} + + +#ifdef use_namespace +} +#endif + diff --git a/3rdparty/newmat/newmat2.cpp b/3rdparty/newmat/newmat2.cpp new file mode 100644 index 0000000..6fa4b7b --- /dev/null +++ b/3rdparty/newmat/newmat2.cpp @@ -0,0 +1,633 @@ +//$$ newmat2.cpp Matrix row and column operations + +// Copyright (C) 1991,2,3,4: R B Davies + +#define WANT_MATH + +#include "include.h" + +#include "newmat.h" +#include "newmatrc.h" + +#ifdef use_namespace +namespace NEWMAT { +#endif + + +#ifdef DO_REPORT +#define REPORT { static ExeCounter ExeCount(__LINE__,2); ++ExeCount; } +#else +#define REPORT {} +#endif + +//#define MONITOR(what,storage,store) { cout << what << " " << storage << " at " << (long)store << "\n"; } + +#define MONITOR(what,store,storage) {} + +/************************** Matrix Row/Col functions ************************/ + +void MatrixRowCol::Add(const MatrixRowCol& mrc) +{ + // THIS += mrc + REPORT + int f = mrc.skip; int l = f + mrc.storage; int lx = skip + storage; + if (f < skip) f = skip; if (l > lx) l = lx; l -= f; + if (l<=0) return; + Real* elx=data+(f-skip); Real* el=mrc.data+(f-mrc.skip); + while (l--) *elx++ += *el++; +} + +void MatrixRowCol::AddScaled(const MatrixRowCol& mrc, Real x) +{ + REPORT + // THIS += (mrc * x) + int f = mrc.skip; int l = f + mrc.storage; int lx = skip + storage; + if (f < skip) f = skip; if (l > lx) l = lx; l -= f; + if (l<=0) return; + Real* elx=data+(f-skip); Real* el=mrc.data+(f-mrc.skip); + while (l--) *elx++ += *el++ * x; +} + +void MatrixRowCol::Sub(const MatrixRowCol& mrc) +{ + REPORT + // THIS -= mrc + int f = mrc.skip; int l = f + mrc.storage; int lx = skip + storage; + if (f < skip) f = skip; if (l > lx) l = lx; l -= f; + if (l<=0) return; + Real* elx=data+(f-skip); Real* el=mrc.data+(f-mrc.skip); + while (l--) *elx++ -= *el++; +} + +void MatrixRowCol::Inject(const MatrixRowCol& mrc) +// copy stored elements only +{ + REPORT + int f = mrc.skip; int l = f + mrc.storage; int lx = skip + storage; + if (f < skip) f = skip; if (l > lx) l = lx; l -= f; + if (l<=0) return; + Real* elx=data+(f-skip); Real* ely=mrc.data+(f-mrc.skip); + while (l--) *elx++ = *ely++; +} + +Real DotProd(const MatrixRowCol& mrc1, const MatrixRowCol& mrc2) +{ + REPORT // not accessed + int f = mrc1.skip; int f2 = mrc2.skip; + int l = f + mrc1.storage; int l2 = f2 + mrc2.storage; + if (f < f2) f = f2; if (l > l2) l = l2; l -= f; + if (l<=0) return 0.0; + + Real* el1=mrc1.data+(f-mrc1.skip); Real* el2=mrc2.data+(f-mrc2.skip); + Real sum = 0.0; + while (l--) sum += *el1++ * *el2++; + return sum; +} + +void MatrixRowCol::Add(const MatrixRowCol& mrc1, const MatrixRowCol& mrc2) +{ + // THIS = mrc1 + mrc2 + int f = skip; int l = skip + storage; + int f1 = mrc1.skip; int l1 = f1 + mrc1.storage; + if (f1l) l1=l; + int f2 = mrc2.skip; int l2 = f2 + mrc2.storage; + if (f2l) l2=l; + Real* el = data + (f-skip); + Real* el1 = mrc1.data+(f1-mrc1.skip); Real* el2 = mrc2.data+(f2-mrc2.skip); + if (f1l) l1=l; + int f2 = mrc2.skip; int l2 = f2 + mrc2.storage; + if (f2l) l2=l; + Real* el = data + (f-skip); + Real* el1 = mrc1.data+(f1-mrc1.skip); Real* el2 = mrc2.data+(f2-mrc2.skip); + if (f1 lx) { l = lx; if (f > lx) f = lx; } + + Real* elx = data; Real* ely = mrc1.data+(f-mrc1.skip); + + int l1 = f-skip; while (l1--) *elx++ = x; + l1 = l-f; while (l1--) *elx++ = *ely++ + x; + lx -= l; while (lx--) *elx++ = x; +} + +void MatrixRowCol::NegAdd(const MatrixRowCol& mrc1, Real x) +{ + // THIS = x - mrc1 + REPORT + if (!storage) return; + int f = mrc1.skip; int l = f + mrc1.storage; int lx = skip + storage; + if (f < skip) { f = skip; if (l < f) l = f; } + if (l > lx) { l = lx; if (f > lx) f = lx; } + + Real* elx = data; Real* ely = mrc1.data+(f-mrc1.skip); + + int l1 = f-skip; while (l1--) *elx++ = x; + l1 = l-f; while (l1--) *elx++ = x - *ely++; + lx -= l; while (lx--) *elx++ = x; +} + +void MatrixRowCol::RevSub(const MatrixRowCol& mrc1) +{ + // THIS = mrc - THIS + REPORT + if (!storage) return; + int f = mrc1.skip; int l = f + mrc1.storage; int lx = skip + storage; + if (f < skip) { f = skip; if (l < f) l = f; } + if (l > lx) { l = lx; if (f > lx) f = lx; } + + Real* elx = data; Real* ely = mrc1.data+(f-mrc1.skip); + + int l1 = f-skip; while (l1--) { *elx = - *elx; elx++; } + l1 = l-f; while (l1--) { *elx = *ely++ - *elx; elx++; } + lx -= l; while (lx--) { *elx = - *elx; elx++; } +} + +void MatrixRowCol::ConCat(const MatrixRowCol& mrc1, const MatrixRowCol& mrc2) +{ + // THIS = mrc1 | mrc2 + REPORT + int f1 = mrc1.skip; int l1 = f1 + mrc1.storage; int lx = skip + storage; + if (f1 < skip) { f1 = skip; if (l1 < f1) l1 = f1; } + if (l1 > lx) { l1 = lx; if (f1 > lx) f1 = lx; } + + Real* elx = data; + + int i = f1-skip; while (i--) *elx++ =0.0; + i = l1-f1; + if (i) // in case f1 would take ely out of range + { Real* ely = mrc1.data+(f1-mrc1.skip); while (i--) *elx++ = *ely++; } + + int f2 = mrc2.skip; int l2 = f2 + mrc2.storage; i = mrc1.length; + int skipx = l1 - i; lx -= i; // addresses rel to second seg, maybe -ve + if (f2 < skipx) { f2 = skipx; if (l2 < f2) l2 = f2; } + if (l2 > lx) { l2 = lx; if (f2 > lx) f2 = lx; } + + i = f2-skipx; while (i--) *elx++ = 0.0; + i = l2-f2; + if (i) // in case f2 would take ely out of range + { Real* ely = mrc2.data+(f2-mrc2.skip); while (i--) *elx++ = *ely++; } + lx -= l2; while (lx--) *elx++ = 0.0; +} + +void MatrixRowCol::Multiply(const MatrixRowCol& mrc1) +// element by element multiply into +{ + REPORT + if (!storage) return; + int f = mrc1.skip; int l = f + mrc1.storage; int lx = skip + storage; + if (f < skip) { f = skip; if (l < f) l = f; } + if (l > lx) { l = lx; if (f > lx) f = lx; } + + Real* elx = data; Real* ely = mrc1.data+(f-mrc1.skip); + + int l1 = f-skip; while (l1--) *elx++ = 0; + l1 = l-f; while (l1--) *elx++ *= *ely++; + lx -= l; while (lx--) *elx++ = 0; +} + +void MatrixRowCol::Multiply(const MatrixRowCol& mrc1, const MatrixRowCol& mrc2) +// element by element multiply +{ + int f = skip; int l = skip + storage; + int f1 = mrc1.skip; int l1 = f1 + mrc1.storage; + if (f1l) l1=l; + int f2 = mrc2.skip; int l2 = f2 + mrc2.storage; + if (f2l) l2=l; + Real* el = data + (f-skip); int i; + if (f1l2) l1 = l2; + if (l1<=f1) { REPORT i = l-f; while (i--) *el++ = 0.0; } // disjoint + else + { + REPORT + Real* el1 = mrc1.data+(f1-mrc1.skip); + Real* el2 = mrc2.data+(f1-mrc2.skip); + i = f1-f ; while (i--) *el++ = 0.0; + i = l1-f1; while (i--) *el++ = *el1++ * *el2++; + i = l-l1; while (i--) *el++ = 0.0; + } +} + +void MatrixRowCol::KP(const MatrixRowCol& mrc1, const MatrixRowCol& mrc2) +// row for Kronecker product +{ + int f = skip; int s = storage; Real* el = data; int i; + + i = mrc1.skip * mrc2.length; + if (i > f) + { + i -= f; f = 0; if (i > s) { i = s; s = 0; } else s -= i; + while (i--) *el++ = 0.0; + if (s == 0) return; + } + else f -= i; + + i = mrc1.storage; Real* el1 = mrc1.data; + int mrc2_skip = mrc2.skip; int mrc2_storage = mrc2.storage; + int mrc2_length = mrc2.length; + int mrc2_remain = mrc2_length - mrc2_skip - mrc2_storage; + while (i--) + { + int j; Real* el2 = mrc2.data; Real vel1 = *el1; + if (f == 0 && mrc2_length <= s) + { + j = mrc2_skip; s -= j; while (j--) *el++ = 0.0; + j = mrc2_storage; s -= j; while (j--) *el++ = vel1 * *el2++; + j = mrc2_remain; s -= j; while (j--) *el++ = 0.0; + } + else if (f >= mrc2_length) f -= mrc2_length; + else + { + j = mrc2_skip; + if (j > f) + { + j -= f; f = 0; if (j > s) { j = s; s = 0; } else s -= j; + while (j--) *el++ = 0.0; + } + else f -= j; + + j = mrc2_storage; + if (j > f) + { + j -= f; el2 += f; f = 0; if (j > s) { j = s; s = 0; } else s -= j; + while (j--) *el++ = vel1 * *el2++; + } + else f -= j; + + j = mrc2_remain; + if (j > f) + { + j -= f; f = 0; if (j > s) { j = s; s = 0; } else s -= j; + while (j--) *el++ = 0.0; + } + else f -= j; + } + if (s == 0) return; + ++el1; + } + + i = (mrc1.length - mrc1.skip - mrc1.storage) * mrc2.length; + if (i > f) + { + i -= f; if (i > s) i = s; + while (i--) *el++ = 0.0; + } +} + + +void MatrixRowCol::Copy(const MatrixRowCol& mrc1) +{ + // THIS = mrc1 + REPORT + if (!storage) return; + int f = mrc1.skip; int l = f + mrc1.storage; int lx = skip + storage; + if (f < skip) { f = skip; if (l < f) l = f; } + if (l > lx) { l = lx; if (f > lx) f = lx; } + + Real* elx = data; Real* ely = 0; + + if (l-f) ely = mrc1.data+(f-mrc1.skip); + + int l1 = f-skip; while (l1--) *elx++ = 0.0; + l1 = l-f; while (l1--) *elx++ = *ely++; + lx -= l; while (lx--) *elx++ = 0.0; +} + +void MatrixRowCol::CopyCheck(const MatrixRowCol& mrc1) +// Throw an exception if this would lead to a loss of data +{ + REPORT + if (!storage) return; + int f = mrc1.skip; int l = f + mrc1.storage; int lx = skip + storage; + if (f < skip || l > lx) Throw(ProgramException("Illegal Conversion")); + + Real* elx = data; Real* ely = mrc1.data+(f-mrc1.skip); + + int l1 = f-skip; while (l1--) *elx++ = 0.0; + l1 = l-f; while (l1--) *elx++ = *ely++; + lx -= l; while (lx--) *elx++ = 0.0; +} + +void MatrixRowCol::Check(const MatrixRowCol& mrc1) +// Throw an exception if +=, -=, copy etc would lead to a loss of data +{ + REPORT + int f = mrc1.skip; int l = f + mrc1.storage; int lx = skip + storage; + if (f < skip || l > lx) Throw(ProgramException("Illegal Conversion")); +} + +void MatrixRowCol::Check() +// Throw an exception if +=, -= of constant would lead to a loss of data +// that is: check full row is present +// may not be appropriate for symmetric matrices +{ + REPORT + if (skip!=0 || storage!=length) + Throw(ProgramException("Illegal Conversion")); +} + +void MatrixRowCol::Negate(const MatrixRowCol& mrc1) +{ + // THIS = -mrc1 + REPORT + if (!storage) return; + int f = mrc1.skip; int l = f + mrc1.storage; int lx = skip + storage; + if (f < skip) { f = skip; if (l < f) l = f; } + if (l > lx) { l = lx; if (f > lx) f = lx; } + + Real* elx = data; Real* ely = mrc1.data+(f-mrc1.skip); + + int l1 = f-skip; while (l1--) *elx++ = 0.0; + l1 = l-f; while (l1--) *elx++ = - *ely++; + lx -= l; while (lx--) *elx++ = 0.0; +} + +void MatrixRowCol::Multiply(const MatrixRowCol& mrc1, Real s) +{ + // THIS = mrc1 * s + REPORT + if (!storage) return; + int f = mrc1.skip; int l = f + mrc1.storage; int lx = skip + storage; + if (f < skip) { f = skip; if (l < f) l = f; } + if (l > lx) { l = lx; if (f > lx) f = lx; } + + Real* elx = data; Real* ely = mrc1.data+(f-mrc1.skip); + + int l1 = f-skip; while (l1--) *elx++ = 0.0; + l1 = l-f; while (l1--) *elx++ = *ely++ * s; + lx -= l; while (lx--) *elx++ = 0.0; +} + +void DiagonalMatrix::Solver(MatrixColX& mrc, const MatrixColX& mrc1) +{ + // mrc = mrc / mrc1 (elementwise) + REPORT + int f = mrc1.skip; int f0 = mrc.skip; + int l = f + mrc1.storage; int lx = f0 + mrc.storage; + if (f < f0) { f = f0; if (l < f) l = f; } + if (l > lx) { l = lx; if (f > lx) f = lx; } + + Real* elx = mrc.data; Real* eld = store+f; + + int l1 = f-f0; while (l1--) *elx++ = 0.0; + l1 = l-f; while (l1--) *elx++ /= *eld++; + lx -= l; while (lx--) *elx++ = 0.0; + // Solver makes sure input and output point to same memory +} + +void IdentityMatrix::Solver(MatrixColX& mrc, const MatrixColX& mrc1) +{ + // mrc = mrc / mrc1 (elementwise) + REPORT + int f = mrc1.skip; int f0 = mrc.skip; + int l = f + mrc1.storage; int lx = f0 + mrc.storage; + if (f < f0) { f = f0; if (l < f) l = f; } + if (l > lx) { l = lx; if (f > lx) f = lx; } + + Real* elx = mrc.data; Real eldv = *store; + + int l1 = f-f0; while (l1--) *elx++ = 0.0; + l1 = l-f; while (l1--) *elx++ /= eldv; + lx -= l; while (lx--) *elx++ = 0.0; + // Solver makes sure input and output point to same memory +} + +void MatrixRowCol::Copy(const Real*& r) +{ + // THIS = *r + REPORT + Real* elx = data; const Real* ely = r+skip; r += length; + int l = storage; while (l--) *elx++ = *ely++; +} + +void MatrixRowCol::Copy(Real r) +{ + // THIS = r + REPORT Real* elx = data; int l = storage; while (l--) *elx++ = r; +} + +void MatrixRowCol::Zero() +{ + // THIS = 0 + REPORT Real* elx = data; int l = storage; while (l--) *elx++ = 0; +} + +void MatrixRowCol::Multiply(Real r) +{ + // THIS *= r + REPORT Real* elx = data; int l = storage; while (l--) *elx++ *= r; +} + +void MatrixRowCol::Add(Real r) +{ + // THIS += r + REPORT + Real* elx = data; int l = storage; while (l--) *elx++ += r; +} + +Real MatrixRowCol::SumAbsoluteValue() +{ + REPORT + Real sum = 0.0; Real* elx = data; int l = storage; + while (l--) sum += fabs(*elx++); + return sum; +} + +// max absolute value of r and elements of row/col +// we use <= or >= in all of these so we are sure of getting +// r reset at least once. +Real MatrixRowCol::MaximumAbsoluteValue1(Real r, int& i) +{ + REPORT + Real* elx = data; int l = storage; int li = -1; + while (l--) { Real f = fabs(*elx++); if (r <= f) { r = f; li = l; } } + i = (li >= 0) ? storage - li + skip : 0; + return r; +} + +// min absolute value of r and elements of row/col +Real MatrixRowCol::MinimumAbsoluteValue1(Real r, int& i) +{ + REPORT + Real* elx = data; int l = storage; int li = -1; + while (l--) { Real f = fabs(*elx++); if (r >= f) { r = f; li = l; } } + i = (li >= 0) ? storage - li + skip : 0; + return r; +} + +// max value of r and elements of row/col +Real MatrixRowCol::Maximum1(Real r, int& i) +{ + REPORT + Real* elx = data; int l = storage; int li = -1; + while (l--) { Real f = *elx++; if (r <= f) { r = f; li = l; } } + i = (li >= 0) ? storage - li + skip : 0; + return r; +} + +// min value of r and elements of row/col +Real MatrixRowCol::Minimum1(Real r, int& i) +{ + REPORT + Real* elx = data; int l = storage; int li = -1; + while (l--) { Real f = *elx++; if (r >= f) { r = f; li = l; } } + i = (li >= 0) ? storage - li + skip : 0; + return r; +} + +Real MatrixRowCol::Sum() +{ + REPORT + Real sum = 0.0; Real* elx = data; int l = storage; + while (l--) sum += *elx++; + return sum; +} + +void MatrixRowCol::SubRowCol(MatrixRowCol& mrc, int skip1, int l1) const +{ + mrc.length = l1; int d = skip - skip1; + if (d<0) { mrc.skip = 0; mrc.data = data - d; } + else { mrc.skip = d; mrc.data = data; } + d = skip + storage - skip1; + d = ((l1 < d) ? l1 : d) - mrc.skip; mrc.storage = (d < 0) ? 0 : d; + mrc.cw = 0; +} + +#ifdef use_namespace +} +#endif + diff --git a/3rdparty/newmat/newmat3.cpp b/3rdparty/newmat/newmat3.cpp new file mode 100644 index 0000000..84b0ba9 --- /dev/null +++ b/3rdparty/newmat/newmat3.cpp @@ -0,0 +1,842 @@ +//$$ newmat3.cpp Matrix get and restore rows and columns + +// Copyright (C) 1991,2,3,4: R B Davies + +//#define WANT_STREAM + +#include "include.h" + +#include "newmat.h" +#include "newmatrc.h" + +#ifdef use_namespace +namespace NEWMAT { +#endif + + +#ifdef DO_REPORT +#define REPORT { static ExeCounter ExeCount(__LINE__,3); ++ExeCount; } +#else +#define REPORT {} +#endif + +//#define MONITOR(what,storage,store) +// { cout << what << " " << storage << " at " << (long)store << "\n"; } + +#define MONITOR(what,store,storage) {} + + +// Control bits codes for GetRow, GetCol, RestoreRow, RestoreCol +// +// LoadOnEntry: +// Load data into MatrixRow or Col dummy array under GetRow or GetCol +// StoreOnExit: +// Restore data to original matrix under RestoreRow or RestoreCol +// DirectPart: +// Load or restore only part directly stored; must be set with StoreOnExit +// Still have decide how to handle this with symmetric +// StoreHere: +// used in columns only - store data at supplied storage address; +// used for GetCol, NextCol & RestoreCol. No need to fill out zeros +// HaveStore: +// dummy array has been assigned (internal use only). + +// For symmetric matrices, treat columns as rows unless StoreHere is set; +// then stick to columns as this will give better performance for doing +// inverses + +// How components are used: + +// Use rows wherever possible in preference to columns + +// Columns without StoreHere are used in in-exact transpose, sum column, +// multiply a column vector, and maybe in future access to column, +// additional multiply functions, add transpose + +// Columns with StoreHere are used in exact transpose (not symmetric matrices +// or vectors, load only) + +// Columns with MatrixColX (Store to full column) are used in inverse and solve + +// Functions required for each matrix class + +// GetRow(MatrixRowCol& mrc) +// GetCol(MatrixRowCol& mrc) +// GetCol(MatrixColX& mrc) +// RestoreRow(MatrixRowCol& mrc) +// RestoreCol(MatrixRowCol& mrc) +// RestoreCol(MatrixColX& mrc) +// NextRow(MatrixRowCol& mrc) +// NextCol(MatrixRowCol& mrc) +// NextCol(MatrixColX& mrc) + +// The Restore routines assume StoreOnExit has already been checked +// Defaults for the Next routines are given below +// Assume cannot have both !DirectPart && StoreHere for MatrixRowCol routines + + +// Default NextRow and NextCol: +// will work as a default but need to override NextRow for efficiency + +void GeneralMatrix::NextRow(MatrixRowCol& mrc) +{ + REPORT + if (+(mrc.cw*StoreOnExit)) { REPORT this->RestoreRow(mrc); } + mrc.rowcol++; + if (mrc.rowcolGetRow(mrc); } + else { REPORT mrc.cw -= StoreOnExit; } +} + +void GeneralMatrix::NextCol(MatrixRowCol& mrc) +{ + REPORT // 423 + if (+(mrc.cw*StoreOnExit)) { REPORT this->RestoreCol(mrc); } + mrc.rowcol++; + if (mrc.rowcolGetCol(mrc); } + else { REPORT mrc.cw -= StoreOnExit; } +} + +void GeneralMatrix::NextCol(MatrixColX& mrc) +{ + REPORT // 423 + if (+(mrc.cw*StoreOnExit)) { REPORT this->RestoreCol(mrc); } + mrc.rowcol++; + if (mrc.rowcolGetCol(mrc); } + else { REPORT mrc.cw -= StoreOnExit; } +} + + +// routines for matrix + +void Matrix::GetRow(MatrixRowCol& mrc) +{ + REPORT + mrc.skip=0; mrc.storage=mrc.length=ncols; mrc.data=store+mrc.rowcol*ncols; +} + + +void Matrix::GetCol(MatrixRowCol& mrc) +{ + REPORT + mrc.skip=0; mrc.storage=mrc.length=nrows; + if ( ncols==1 && !(mrc.cw*StoreHere) ) // ColumnVector + { REPORT mrc.data=store; } + else + { + Real* ColCopy; + if ( !(mrc.cw*(HaveStore+StoreHere)) ) + { + REPORT + ColCopy = new Real [nrows]; MatrixErrorNoSpace(ColCopy); + MONITOR_REAL_NEW("Make (MatGetCol)",nrows,ColCopy) + mrc.data = ColCopy; mrc.cw += HaveStore; + } + else { REPORT ColCopy = mrc.data; } + if (+(mrc.cw*LoadOnEntry)) + { + REPORT + Real* Mstore = store+mrc.rowcol; int i=nrows; + //while (i--) { *ColCopy++ = *Mstore; Mstore+=ncols; } + if (i) for (;;) + { *ColCopy++ = *Mstore; if (!(--i)) break; Mstore+=ncols; } + } + } +} + +void Matrix::GetCol(MatrixColX& mrc) +{ + REPORT + mrc.skip=0; mrc.storage=nrows; mrc.length=nrows; + if (+(mrc.cw*LoadOnEntry)) + { + REPORT Real* ColCopy = mrc.data; + Real* Mstore = store+mrc.rowcol; int i=nrows; + //while (i--) { *ColCopy++ = *Mstore; Mstore+=ncols; } + if (i) for (;;) + { *ColCopy++ = *Mstore; if (!(--i)) break; Mstore+=ncols; } + } +} + +void Matrix::RestoreCol(MatrixRowCol& mrc) +{ + // always check StoreOnExit before calling RestoreCol + REPORT // 429 + if (+(mrc.cw*HaveStore)) + { + REPORT // 426 + Real* Mstore = store+mrc.rowcol; int i=nrows; + Real* Cstore = mrc.data; + // while (i--) { *Mstore = *Cstore++; Mstore+=ncols; } + if (i) for (;;) + { *Mstore = *Cstore++; if (!(--i)) break; Mstore+=ncols; } + } +} + +void Matrix::RestoreCol(MatrixColX& mrc) +{ + REPORT + Real* Mstore = store+mrc.rowcol; int i=nrows; Real* Cstore = mrc.data; + // while (i--) { *Mstore = *Cstore++; Mstore+=ncols; } + if (i) for (;;) + { *Mstore = *Cstore++; if (!(--i)) break; Mstore+=ncols; } +} + +void Matrix::NextRow(MatrixRowCol& mrc) { REPORT mrc.IncrMat(); } // 1808 + +void Matrix::NextCol(MatrixRowCol& mrc) +{ + REPORT // 632 + if (+(mrc.cw*StoreOnExit)) { REPORT RestoreCol(mrc); } + mrc.rowcol++; + if (mrc.rowcol= LoadOnEntry) + { REPORT *(mrc.data) = *(store+mrc.rowcol); } + +} + +void RowVector::NextCol(MatrixRowCol& mrc) +{ REPORT mrc.rowcol++; mrc.data++; } + +void RowVector::NextCol(MatrixColX& mrc) +{ + if (+(mrc.cw*StoreOnExit)) { REPORT *(store+mrc.rowcol)=*(mrc.data); } + + mrc.rowcol++; + if (mrc.rowcol < ncols) + { + if (+(mrc.cw*LoadOnEntry)) { REPORT *(mrc.data)=*(store+mrc.rowcol); } + } + else { REPORT mrc.cw -= StoreOnExit; } +} + +void RowVector::RestoreCol(MatrixColX& mrc) + { REPORT *(store+mrc.rowcol)=*(mrc.data); } // not accessed + + +// routines for band matrices + +void BandMatrix::GetRow(MatrixRowCol& mrc) +{ + REPORT + int r = mrc.rowcol; int w = lower+1+upper; mrc.length=ncols; + int s = r-lower; + if (s<0) { mrc.data = store+(r*w-s); w += s; s = 0; } + else mrc.data = store+r*w; + mrc.skip = s; s += w-ncols; if (s>0) w -= s; mrc.storage = w; +} + +// should make special versions of this for upper and lower band matrices + +void BandMatrix::NextRow(MatrixRowCol& mrc) +{ + REPORT + int r = ++mrc.rowcol; + if (r<=lower) { mrc.storage++; mrc.data += lower+upper; } + else { mrc.skip++; mrc.data += lower+upper+1; } + if (r>=ncols-upper) mrc.storage--; +} + +void BandMatrix::GetCol(MatrixRowCol& mrc) +{ + REPORT + int c = mrc.rowcol; int n = lower+upper; int w = n+1; + mrc.length=nrows; Real* ColCopy; + int b; int s = c-upper; + if (s<=0) { w += s; s = 0; b = c+lower; } else b = s*w+n; + mrc.skip = s; s += w-nrows; if (s>0) w -= s; mrc.storage = w; + if ( +(mrc.cw*(StoreHere+HaveStore)) ) + { REPORT ColCopy = mrc.data; } + else + { + REPORT + ColCopy = new Real [n+1]; MatrixErrorNoSpace(ColCopy); + MONITOR_REAL_NEW("Make (BMGetCol)",n+1,ColCopy) + mrc.cw += HaveStore; mrc.data = ColCopy; + } + + if (+(mrc.cw*LoadOnEntry)) + { + REPORT + Real* Mstore = store+b; + // while (w--) { *ColCopy++ = *Mstore; Mstore+=n; } + if (w) for (;;) + { *ColCopy++ = *Mstore; if (!(--w)) break; Mstore+=n; } + } +} + +void BandMatrix::GetCol(MatrixColX& mrc) +{ + REPORT + int c = mrc.rowcol; int n = lower+upper; int w = n+1; + mrc.length=nrows; int b; int s = c-upper; + if (s<=0) { w += s; s = 0; b = c+lower; } else b = s*w+n; + mrc.skip = s; s += w-nrows; if (s>0) w -= s; mrc.storage = w; + mrc.data = mrc.store+mrc.skip; + + if (+(mrc.cw*LoadOnEntry)) + { + REPORT + Real* ColCopy = mrc.data; Real* Mstore = store+b; + // while (w--) { *ColCopy++ = *Mstore; Mstore+=n; } + if (w) for (;;) + { *ColCopy++ = *Mstore; if (!(--w)) break; Mstore+=n; } + } +} + +void BandMatrix::RestoreCol(MatrixRowCol& mrc) +{ + REPORT + int c = mrc.rowcol; int n = lower+upper; int s = c-upper; + Real* Mstore = store + ((s<=0) ? c+lower : s*n+s+n); + Real* Cstore = mrc.data; + int w = mrc.storage; + // while (w--) { *Mstore = *Cstore++; Mstore += n; } + if (w) for (;;) + { *Mstore = *Cstore++; if (!(--w)) break; Mstore += n; } +} + +// routines for symmetric band matrix + +void SymmetricBandMatrix::GetRow(MatrixRowCol& mrc) +{ + REPORT + int r=mrc.rowcol; int s = r-lower; int w1 = lower+1; int o = r*w1; + mrc.length = ncols; + if (s<0) { w1 += s; o -= s; s = 0; } + mrc.skip = s; + + if (+(mrc.cw*DirectPart)) + { REPORT mrc.data = store+o; mrc.storage = w1; } + else + { + // do not allow StoreOnExit and !DirectPart + if (+(mrc.cw*StoreOnExit)) + Throw(InternalException("SymmetricBandMatrix::GetRow(MatrixRowCol&)")); + int w = w1+lower; s += w-ncols; Real* RowCopy; + if (s>0) w -= s; mrc.storage = w; int w2 = w-w1; + if (!(mrc.cw*HaveStore)) + { + REPORT + RowCopy = new Real [2*lower+1]; MatrixErrorNoSpace(RowCopy); + MONITOR_REAL_NEW("Make (SmBGetRow)",2*lower+1,RowCopy) + mrc.cw += HaveStore; mrc.data = RowCopy; + } + else { REPORT RowCopy = mrc.data; } + + if (+(mrc.cw*LoadOnEntry)) + { + REPORT + Real* Mstore = store+o; + while (w1--) *RowCopy++ = *Mstore++; + Mstore--; + while (w2--) { Mstore += lower; *RowCopy++ = *Mstore; } + } + } +} + +void SymmetricBandMatrix::GetCol(MatrixRowCol& mrc) +{ + // do not allow StoreHere + if (+(mrc.cw*StoreHere)) + Throw(InternalException("SymmetricBandMatrix::GetCol(MatrixRowCol&)")); + + int c=mrc.rowcol; int w1 = lower+1; mrc.length=nrows; + REPORT + int s = c-lower; int o = c*w1; + if (s<0) { w1 += s; o -= s; s = 0; } + mrc.skip = s; + + if (+(mrc.cw*DirectPart)) + { REPORT mrc.data = store+o; mrc.storage = w1; } + else + { + // do not allow StoreOnExit and !DirectPart + if (+(mrc.cw*StoreOnExit)) + Throw(InternalException("SymmetricBandMatrix::GetCol(MatrixRowCol&)")); + int w = w1+lower; s += w-ncols; Real* ColCopy; + if (s>0) w -= s; mrc.storage = w; int w2 = w-w1; + + if ( +(mrc.cw*HaveStore) ) { REPORT ColCopy = mrc.data; } + else + { + REPORT ColCopy = new Real [2*lower+1]; MatrixErrorNoSpace(ColCopy); + MONITOR_REAL_NEW("Make (SmBGetCol)",2*lower+1,ColCopy) + mrc.cw += HaveStore; mrc.data = ColCopy; + } + + if (+(mrc.cw*LoadOnEntry)) + { + REPORT + Real* Mstore = store+o; + while (w1--) *ColCopy++ = *Mstore++; + Mstore--; + while (w2--) { Mstore += lower; *ColCopy++ = *Mstore; } + } + } +} + +void SymmetricBandMatrix::GetCol(MatrixColX& mrc) +{ + int c=mrc.rowcol; int w1 = lower+1; mrc.length=nrows; + if (+(mrc.cw*DirectPart)) + { + REPORT + int b = c*w1+lower; + mrc.skip = c; c += w1-nrows; w1 -= c; mrc.storage = w1; + Real* ColCopy = mrc.data = mrc.store+mrc.skip; + if (+(mrc.cw*LoadOnEntry)) + { + REPORT + Real* Mstore = store+b; + // while (w1--) { *ColCopy++ = *Mstore; Mstore += lower; } + if (w1) for (;;) + { *ColCopy++ = *Mstore; if (!(--w1)) break; Mstore += lower; } + } + } + else + { + REPORT + // do not allow StoreOnExit and !DirectPart + if (+(mrc.cw*StoreOnExit)) + Throw(InternalException("SymmetricBandMatrix::GetCol(MatrixColX&)")); + int s = c-lower; int o = c*w1; + if (s<0) { w1 += s; o -= s; s = 0; } + mrc.skip = s; + + int w = w1+lower; s += w-ncols; + if (s>0) w -= s; mrc.storage = w; int w2 = w-w1; + + Real* ColCopy = mrc.data = mrc.store+mrc.skip; + + if (+(mrc.cw*LoadOnEntry)) + { + REPORT + Real* Mstore = store+o; + while (w1--) *ColCopy++ = *Mstore++; + Mstore--; + while (w2--) { Mstore += lower; *ColCopy++ = *Mstore; } + } + + } +} + +void SymmetricBandMatrix::RestoreCol(MatrixColX& mrc) +{ + REPORT + int c = mrc.rowcol; + Real* Mstore = store + c*lower+c+lower; + Real* Cstore = mrc.data; int w = mrc.storage; + // while (w--) { *Mstore = *Cstore++; Mstore += lower; } + if (w) for (;;) + { *Mstore = *Cstore++; if (!(--w)) break; Mstore += lower; } +} + +// routines for identity matrix + +void IdentityMatrix::GetRow(MatrixRowCol& mrc) +{ + REPORT + mrc.skip=mrc.rowcol; mrc.storage=1; mrc.data=store; mrc.length=ncols; +} + +void IdentityMatrix::GetCol(MatrixRowCol& mrc) +{ + REPORT + mrc.skip=mrc.rowcol; mrc.storage=1; mrc.length=nrows; + if (+(mrc.cw*StoreHere)) // should not happen + Throw(InternalException("IdentityMatrix::GetCol(MatrixRowCol&)")); + else { REPORT mrc.data=store; } +} + +void IdentityMatrix::GetCol(MatrixColX& mrc) +{ + REPORT + mrc.skip=mrc.rowcol; mrc.storage=1; mrc.length=nrows; + mrc.data = mrc.store+mrc.skip; *(mrc.data)=*store; +} + +void IdentityMatrix::NextRow(MatrixRowCol& mrc) { REPORT mrc.IncrId(); } + +void IdentityMatrix::NextCol(MatrixRowCol& mrc) { REPORT mrc.IncrId(); } + +void IdentityMatrix::NextCol(MatrixColX& mrc) +{ + REPORT + if (+(mrc.cw*StoreOnExit)) { REPORT *store=*(mrc.data); } + mrc.IncrDiag(); // must increase mrc.data so need IncrDiag + int t1 = +(mrc.cw*LoadOnEntry); + if (t1 && mrc.rowcol < ncols) { REPORT *(mrc.data)=*store; } +} + + + + +// *************************** destructors ******************************* + +MatrixRowCol::~MatrixRowCol() +{ + if (+(cw*HaveStore)) + { + MONITOR_REAL_DELETE("Free (RowCol)",-1,data) // do not know length + delete [] data; + } +} + +MatrixRow::~MatrixRow() { if (+(cw*StoreOnExit)) gm->RestoreRow(*this); } + +MatrixCol::~MatrixCol() { if (+(cw*StoreOnExit)) gm->RestoreCol(*this); } + +MatrixColX::~MatrixColX() { if (+(cw*StoreOnExit)) gm->RestoreCol(*this); } + +#ifdef use_namespace +} +#endif + diff --git a/3rdparty/newmat/newmat4.cpp b/3rdparty/newmat/newmat4.cpp new file mode 100644 index 0000000..68024a3 --- /dev/null +++ b/3rdparty/newmat/newmat4.cpp @@ -0,0 +1,950 @@ +//$$ newmat4.cpp Constructors, ReSize, basic utilities + +// Copyright (C) 1991,2,3,4,8,9: R B Davies + +#include "include.h" + +#include "newmat.h" +#include "newmatrc.h" + +#ifdef use_namespace +namespace NEWMAT { +#endif + + + +#ifdef DO_REPORT +#define REPORT { static ExeCounter ExeCount(__LINE__,4); ++ExeCount; } +#else +#define REPORT {} +#endif + + +#define DO_SEARCH // search for LHS of = in RHS + +// ************************* general utilities *************************/ + +static int tristore(int n) // elements in triangular matrix +{ return (n*(n+1))/2; } + + +// **************************** constructors ***************************/ + +GeneralMatrix::GeneralMatrix() +{ store=0; storage=0; nrows=0; ncols=0; tag=-1; } + +GeneralMatrix::GeneralMatrix(ArrayLengthSpecifier s) +{ + REPORT + storage=s.Value(); tag=-1; + if (storage) + { + store = new Real [storage]; MatrixErrorNoSpace(store); + MONITOR_REAL_NEW("Make (GenMatrix)",storage,store) + } + else store = 0; +} + +Matrix::Matrix(int m, int n) : GeneralMatrix(m*n) +{ REPORT nrows=m; ncols=n; } + +SymmetricMatrix::SymmetricMatrix(ArrayLengthSpecifier n) + : GeneralMatrix(tristore(n.Value())) +{ REPORT nrows=n.Value(); ncols=n.Value(); } + +UpperTriangularMatrix::UpperTriangularMatrix(ArrayLengthSpecifier n) + : GeneralMatrix(tristore(n.Value())) +{ REPORT nrows=n.Value(); ncols=n.Value(); } + +LowerTriangularMatrix::LowerTriangularMatrix(ArrayLengthSpecifier n) + : GeneralMatrix(tristore(n.Value())) +{ REPORT nrows=n.Value(); ncols=n.Value(); } + +DiagonalMatrix::DiagonalMatrix(ArrayLengthSpecifier m) : GeneralMatrix(m) +{ REPORT nrows=m.Value(); ncols=m.Value(); } + +Matrix::Matrix(const BaseMatrix& M) +{ + REPORT // CheckConversion(M); + // MatrixConversionCheck mcc; + GeneralMatrix* gmx=((BaseMatrix&)M).Evaluate(MatrixType::Rt); + GetMatrix(gmx); +} + +RowVector::RowVector(const BaseMatrix& M) : Matrix(M) +{ + if (nrows!=1) + { + Tracer tr("RowVector"); + Throw(VectorException(*this)); + } +} + +ColumnVector::ColumnVector(const BaseMatrix& M) : Matrix(M) +{ + if (ncols!=1) + { + Tracer tr("ColumnVector"); + Throw(VectorException(*this)); + } +} + +SymmetricMatrix::SymmetricMatrix(const BaseMatrix& M) +{ + REPORT // CheckConversion(M); + // MatrixConversionCheck mcc; + GeneralMatrix* gmx=((BaseMatrix&)M).Evaluate(MatrixType::Sm); + GetMatrix(gmx); +} + +UpperTriangularMatrix::UpperTriangularMatrix(const BaseMatrix& M) +{ + REPORT // CheckConversion(M); + // MatrixConversionCheck mcc; + GeneralMatrix* gmx=((BaseMatrix&)M).Evaluate(MatrixType::UT); + GetMatrix(gmx); +} + +LowerTriangularMatrix::LowerTriangularMatrix(const BaseMatrix& M) +{ + REPORT // CheckConversion(M); + // MatrixConversionCheck mcc; + GeneralMatrix* gmx=((BaseMatrix&)M).Evaluate(MatrixType::LT); + GetMatrix(gmx); +} + +DiagonalMatrix::DiagonalMatrix(const BaseMatrix& M) +{ + REPORT //CheckConversion(M); + // MatrixConversionCheck mcc; + GeneralMatrix* gmx=((BaseMatrix&)M).Evaluate(MatrixType::Dg); + GetMatrix(gmx); +} + +IdentityMatrix::IdentityMatrix(const BaseMatrix& M) +{ + REPORT //CheckConversion(M); + // MatrixConversionCheck mcc; + GeneralMatrix* gmx=((BaseMatrix&)M).Evaluate(MatrixType::Id); + GetMatrix(gmx); +} + +GeneralMatrix::~GeneralMatrix() +{ + if (store) + { + MONITOR_REAL_DELETE("Free (GenMatrix)",storage,store) + delete [] store; + } +} + +CroutMatrix::CroutMatrix(const BaseMatrix& m) +{ + REPORT + Tracer tr("CroutMatrix"); + indx = 0; // in case of exception at next line + GeneralMatrix* gm = ((BaseMatrix&)m).Evaluate(MatrixType::Rt); + GetMatrix(gm); + if (nrows!=ncols) { CleanUp(); Throw(NotSquareException(*gm)); } + d=true; sing=false; + indx=new int [nrows]; MatrixErrorNoSpace(indx); + MONITOR_INT_NEW("Index (CroutMat)",nrows,indx) + ludcmp(); +} + +CroutMatrix::~CroutMatrix() +{ + MONITOR_INT_DELETE("Index (CroutMat)",nrows,indx) + delete [] indx; +} + +//ReturnMatrixX::ReturnMatrixX(GeneralMatrix& gmx) +//{ +// REPORT +// gm = gmx.Image(); gm->ReleaseAndDelete(); +//} + +#ifndef TEMPS_DESTROYED_QUICKLY_R + +GeneralMatrix::operator ReturnMatrixX() const +{ + REPORT + GeneralMatrix* gm = Image(); gm->ReleaseAndDelete(); + return ReturnMatrixX(gm); +} + +#else + +GeneralMatrix::operator ReturnMatrixX&() const +{ + REPORT + GeneralMatrix* gm = Image(); gm->ReleaseAndDelete(); + ReturnMatrixX* x = new ReturnMatrixX(gm); + MatrixErrorNoSpace(x); return *x; +} + +#endif + +#ifndef TEMPS_DESTROYED_QUICKLY_R + +ReturnMatrixX GeneralMatrix::ForReturn() const +{ + REPORT + GeneralMatrix* gm = Image(); gm->ReleaseAndDelete(); + return ReturnMatrixX(gm); +} + +#else + +ReturnMatrixX& GeneralMatrix::ForReturn() const +{ + REPORT + GeneralMatrix* gm = Image(); gm->ReleaseAndDelete(); + ReturnMatrixX* x = new ReturnMatrixX(gm); + MatrixErrorNoSpace(x); return *x; +} + +#endif + +// ************************** ReSize matrices ***************************/ + +void GeneralMatrix::ReSize(int nr, int nc, int s) +{ + REPORT + if (store) + { + MONITOR_REAL_DELETE("Free (ReDimensi)",storage,store) + delete [] store; + } + storage=s; nrows=nr; ncols=nc; tag=-1; + if (s) + { + store = new Real [storage]; MatrixErrorNoSpace(store); + MONITOR_REAL_NEW("Make (ReDimensi)",storage,store) + } + else store = 0; +} + +void Matrix::ReSize(int nr, int nc) +{ REPORT GeneralMatrix::ReSize(nr,nc,nr*nc); } + +void SymmetricMatrix::ReSize(int nr) +{ REPORT GeneralMatrix::ReSize(nr,nr,tristore(nr)); } + +void UpperTriangularMatrix::ReSize(int nr) +{ REPORT GeneralMatrix::ReSize(nr,nr,tristore(nr)); } + +void LowerTriangularMatrix::ReSize(int nr) +{ REPORT GeneralMatrix::ReSize(nr,nr,tristore(nr)); } + +void DiagonalMatrix::ReSize(int nr) +{ REPORT GeneralMatrix::ReSize(nr,nr,nr); } + +void RowVector::ReSize(int nc) +{ REPORT GeneralMatrix::ReSize(1,nc,nc); } + +void ColumnVector::ReSize(int nr) +{ REPORT GeneralMatrix::ReSize(nr,1,nr); } + +void RowVector::ReSize(int nr, int nc) +{ + Tracer tr("RowVector::ReSize"); + if (nr != 1) Throw(VectorException(*this)); + REPORT GeneralMatrix::ReSize(1,nc,nc); +} + +void ColumnVector::ReSize(int nr, int nc) +{ + Tracer tr("ColumnVector::ReSize"); + if (nc != 1) Throw(VectorException(*this)); + REPORT GeneralMatrix::ReSize(nr,1,nr); +} + +void IdentityMatrix::ReSize(int nr) +{ REPORT GeneralMatrix::ReSize(nr,nr,1); *store = 1; } + + +void Matrix::ReSize(const GeneralMatrix& A) +{ REPORT ReSize(A.Nrows(), A.Ncols()); } + +void nricMatrix::ReSize(const GeneralMatrix& A) +{ REPORT ReSize(A.Nrows(), A.Ncols()); } + +void ColumnVector::ReSize(const GeneralMatrix& A) +{ REPORT ReSize(A.Nrows(), A.Ncols()); } + +void RowVector::ReSize(const GeneralMatrix& A) +{ REPORT ReSize(A.Nrows(), A.Ncols()); } + +void SymmetricMatrix::ReSize(const GeneralMatrix& A) +{ + REPORT + int n = A.Nrows(); + if (n != A.Ncols()) + { + Tracer tr("SymmetricMatrix::ReSize(GM)"); + Throw(NotSquareException(*this)); + } + ReSize(n); +} + +void DiagonalMatrix::ReSize(const GeneralMatrix& A) +{ + REPORT + int n = A.Nrows(); + if (n != A.Ncols()) + { + Tracer tr("DiagonalMatrix::ReSize(GM)"); + Throw(NotSquareException(*this)); + } + ReSize(n); +} + +void UpperTriangularMatrix::ReSize(const GeneralMatrix& A) +{ + REPORT + int n = A.Nrows(); + if (n != A.Ncols()) + { + Tracer tr("UpperTriangularMatrix::ReSize(GM)"); + Throw(NotSquareException(*this)); + } + ReSize(n); +} + +void LowerTriangularMatrix::ReSize(const GeneralMatrix& A) +{ + REPORT + int n = A.Nrows(); + if (n != A.Ncols()) + { + Tracer tr("LowerTriangularMatrix::ReSize(GM)"); + Throw(NotSquareException(*this)); + } + ReSize(n); +} + +void IdentityMatrix::ReSize(const GeneralMatrix& A) +{ + REPORT + int n = A.Nrows(); + if (n != A.Ncols()) + { + Tracer tr("IdentityMatrix::ReSize(GM)"); + Throw(NotSquareException(*this)); + } + ReSize(n); +} + +void GeneralMatrix::ReSize(const GeneralMatrix&) +{ + REPORT + Tracer tr("GeneralMatrix::ReSize(GM)"); + Throw(NotDefinedException("ReSize", "this type of matrix")); +} + +void GeneralMatrix::ReSizeForAdd(const GeneralMatrix& A, const GeneralMatrix&) +{ REPORT ReSize(A); } + +void GeneralMatrix::ReSizeForSP(const GeneralMatrix& A, const GeneralMatrix&) +{ REPORT ReSize(A); } + + +// ************************* SameStorageType ******************************/ + +// SameStorageType checks A and B have same storage type including bandwidth +// It does not check same dimensions since we assume this is already done + +bool GeneralMatrix::SameStorageType(const GeneralMatrix& A) const +{ + REPORT + return Type() == A.Type(); +} + + +// ******************* manipulate types, storage **************************/ + +int GeneralMatrix::search(const BaseMatrix* s) const +{ REPORT return (s==this) ? 1 : 0; } + +int GenericMatrix::search(const BaseMatrix* s) const +{ REPORT return gm->search(s); } + +int MultipliedMatrix::search(const BaseMatrix* s) const +{ REPORT return bm1->search(s) + bm2->search(s); } + +int ShiftedMatrix::search(const BaseMatrix* s) const +{ REPORT return bm->search(s); } + +int NegatedMatrix::search(const BaseMatrix* s) const +{ REPORT return bm->search(s); } + +int ReturnMatrixX::search(const BaseMatrix* s) const +{ REPORT return (s==gm) ? 1 : 0; } + +MatrixType Matrix::Type() const { return MatrixType::Rt; } +MatrixType SymmetricMatrix::Type() const { return MatrixType::Sm; } +MatrixType UpperTriangularMatrix::Type() const { return MatrixType::UT; } +MatrixType LowerTriangularMatrix::Type() const { return MatrixType::LT; } +MatrixType DiagonalMatrix::Type() const { return MatrixType::Dg; } +MatrixType RowVector::Type() const { return MatrixType::RV; } +MatrixType ColumnVector::Type() const { return MatrixType::CV; } +MatrixType CroutMatrix::Type() const { return MatrixType::Ct; } +MatrixType BandMatrix::Type() const { return MatrixType::BM; } +MatrixType UpperBandMatrix::Type() const { return MatrixType::UB; } +MatrixType LowerBandMatrix::Type() const { return MatrixType::LB; } +MatrixType SymmetricBandMatrix::Type() const { return MatrixType::SB; } + +MatrixType IdentityMatrix::Type() const { return MatrixType::Id; } + + + +MatrixBandWidth BaseMatrix::BandWidth() const { REPORT return -1; } +MatrixBandWidth DiagonalMatrix::BandWidth() const { REPORT return 0; } +MatrixBandWidth IdentityMatrix::BandWidth() const { REPORT return 0; } + +MatrixBandWidth UpperTriangularMatrix::BandWidth() const + { REPORT return MatrixBandWidth(0,-1); } + +MatrixBandWidth LowerTriangularMatrix::BandWidth() const + { REPORT return MatrixBandWidth(-1,0); } + +MatrixBandWidth BandMatrix::BandWidth() const + { REPORT return MatrixBandWidth(lower,upper); } + +MatrixBandWidth GenericMatrix::BandWidth()const + { REPORT return gm->BandWidth(); } + +MatrixBandWidth AddedMatrix::BandWidth() const + { REPORT return gm1->BandWidth() + gm2->BandWidth(); } + +MatrixBandWidth SPMatrix::BandWidth() const + { REPORT return gm1->BandWidth().minimum(gm2->BandWidth()); } + +MatrixBandWidth KPMatrix::BandWidth() const +{ + int lower, upper; + MatrixBandWidth bw1 = gm1->BandWidth(), bw2 = gm2->BandWidth(); + if (bw1.Lower() < 0) + { + if (bw2.Lower() < 0) { REPORT lower = -1; } + else { REPORT lower = bw2.Lower() + (gm1->Nrows() - 1) * gm2->Nrows(); } + } + else + { + if (bw2.Lower() < 0) + { REPORT lower = (1 + bw1.Lower()) * gm2->Nrows() - 1; } + else { REPORT lower = bw2.Lower() + bw1.Lower() * gm2->Nrows(); } + } + if (bw1.Upper() < 0) + { + if (bw2.Upper() < 0) { REPORT upper = -1; } + else { REPORT upper = bw2.Upper() + (gm1->Nrows() - 1) * gm2->Nrows(); } + } + else + { + if (bw2.Upper() < 0) + { REPORT upper = (1 + bw1.Upper()) * gm2->Nrows() - 1; } + else { REPORT upper = bw2.Upper() + bw1.Upper() * gm2->Nrows(); } + } + return MatrixBandWidth(lower, upper); +} + +MatrixBandWidth MultipliedMatrix::BandWidth() const +{ REPORT return gm1->BandWidth() * gm2->BandWidth(); } + +MatrixBandWidth ConcatenatedMatrix::BandWidth() const { REPORT return -1; } + +MatrixBandWidth SolvedMatrix::BandWidth() const +{ + if (+gm1->Type() & MatrixType::Diagonal) + { REPORT return gm2->BandWidth(); } + else { REPORT return -1; } +} + +MatrixBandWidth ScaledMatrix::BandWidth() const + { REPORT return gm->BandWidth(); } + +MatrixBandWidth NegatedMatrix::BandWidth() const + { REPORT return gm->BandWidth(); } + +MatrixBandWidth TransposedMatrix::BandWidth() const + { REPORT return gm->BandWidth().t(); } + +MatrixBandWidth InvertedMatrix::BandWidth() const +{ + if (+gm->Type() & MatrixType::Diagonal) + { REPORT return MatrixBandWidth(0,0); } + else { REPORT return -1; } +} + +MatrixBandWidth RowedMatrix::BandWidth() const { REPORT return -1; } +MatrixBandWidth ColedMatrix::BandWidth() const { REPORT return -1; } +MatrixBandWidth DiagedMatrix::BandWidth() const { REPORT return 0; } +MatrixBandWidth MatedMatrix::BandWidth() const { REPORT return -1; } +MatrixBandWidth ReturnMatrixX::BandWidth() const + { REPORT return gm->BandWidth(); } + +MatrixBandWidth GetSubMatrix::BandWidth() const +{ + + if (row_skip==col_skip && row_number==col_number) + { REPORT return gm->BandWidth(); } + else { REPORT return MatrixBandWidth(-1); } +} + +// ********************** the memory managment tools **********************/ + +// Rules regarding tDelete, reuse, GetStore +// All matrices processed during expression evaluation must be subject +// to exactly one of reuse(), tDelete(), GetStore() or BorrowStore(). +// If reuse returns true the matrix must be reused. +// GetMatrix(gm) always calls gm->GetStore() +// gm->Evaluate obeys rules +// bm->Evaluate obeys rules for matrices in bm structure + +void GeneralMatrix::tDelete() +{ + if (tag<0) + { + if (tag<-1) { REPORT store=0; delete this; return; } // borrowed + else { REPORT return; } + } + if (tag==1) + { + if (store) + { + REPORT MONITOR_REAL_DELETE("Free (tDelete)",storage,store) + delete [] store; + } + store=0; CleanUp(); tag=-1; return; + } + if (tag==0) { REPORT delete this; return; } + REPORT tag--; return; +} + +static void BlockCopy(int n, Real* from, Real* to) +{ + REPORT + int i = (n >> 3); + while (i--) + { + *to++ = *from++; *to++ = *from++; *to++ = *from++; *to++ = *from++; + *to++ = *from++; *to++ = *from++; *to++ = *from++; *to++ = *from++; + } + i = n & 7; while (i--) *to++ = *from++; +} + +bool GeneralMatrix::reuse() +{ + if (tag<-1) + { + if (storage) + { + REPORT + Real* s = new Real [storage]; MatrixErrorNoSpace(s); + MONITOR_REAL_NEW("Make (reuse)",storage,s) + BlockCopy(storage, store, s); store=s; + } + else { REPORT store = 0; CleanUp(); } + tag=0; return true; + } + if (tag<0) { REPORT return false; } + if (tag<=1) { REPORT return true; } + REPORT tag--; return false; +} + +Real* GeneralMatrix::GetStore() +{ + if (tag<0 || tag>1) + { + Real* s; + if (storage) + { + s = new Real [storage]; MatrixErrorNoSpace(s); + MONITOR_REAL_NEW("Make (GetStore)",storage,s) + BlockCopy(storage, store, s); + } + else s = 0; + if (tag>1) { REPORT tag--; } + else if (tag < -1) { REPORT store=0; delete this; } // borrowed store + else { REPORT } + return s; + } + Real* s=store; store=0; + if (tag==0) { REPORT delete this; } + else { REPORT CleanUp(); tag=-1; } + return s; +} + +void GeneralMatrix::GetMatrix(const GeneralMatrix* gmx) +{ + REPORT tag=-1; nrows=gmx->Nrows(); ncols=gmx->Ncols(); + storage=gmx->storage; SetParameters(gmx); + store=((GeneralMatrix*)gmx)->GetStore(); +} + +GeneralMatrix* GeneralMatrix::BorrowStore(GeneralMatrix* gmx, MatrixType mt) +// Copy storage of *this to storage of *gmx. Then convert to type mt. +// If mt == 0 just let *gmx point to storage of *this if tag==-1. +{ + if (!mt) + { + if (tag == -1) { REPORT gmx->tag = -2; gmx->store = store; } + else { REPORT gmx->tag = 0; gmx->store = GetStore(); } + } + else if (Compare(gmx->Type(),mt)) + { REPORT gmx->tag = 0; gmx->store = GetStore(); } + else + { + REPORT gmx->tag = -2; gmx->store = store; + gmx = gmx->Evaluate(mt); gmx->tag = 0; tDelete(); + } + + return gmx; +} + +void GeneralMatrix::Eq(const BaseMatrix& X, MatrixType mt) +// Count number of references to this in X. +// If zero delete storage in this; +// otherwise tag this to show when storage can be deleted +// evaluate X and copy to this +{ +#ifdef DO_SEARCH + int counter=X.search(this); + if (counter==0) + { + REPORT + if (store) + { + MONITOR_REAL_DELETE("Free (operator=)",storage,store) + REPORT delete [] store; storage=0; store = 0; + } + } + else { REPORT Release(counter); } + GeneralMatrix* gmx = ((BaseMatrix&)X).Evaluate(mt); + if (gmx!=this) { REPORT GetMatrix(gmx); } + else { REPORT } + Protect(); +#else + GeneralMatrix* gmx = ((BaseMatrix&)X).Evaluate(mt); + if (gmx!=this) + { + REPORT + if (store) + { + MONITOR_REAL_DELETE("Free (operator=)",storage,store) + REPORT delete [] store; storage=0; store = 0; + } + GetMatrix(gmx); + } + else { REPORT } + Protect(); +#endif +} + +// version to work with operator<< +void GeneralMatrix::Eq(const BaseMatrix& X, MatrixType mt, bool ldok) +{ + REPORT + if (ldok) mt.SetDataLossOK(); + Eq(X, mt); +} + +void GeneralMatrix::Eq2(const BaseMatrix& X, MatrixType mt) +// a cut down version of Eq for use with += etc. +// we know BaseMatrix points to two GeneralMatrix objects, +// the first being this (may be the same). +// we know tag has been set correctly in each. +{ + GeneralMatrix* gmx = ((BaseMatrix&)X).Evaluate(mt); + if (gmx!=this) { REPORT GetMatrix(gmx); } // simplify GetMatrix ? + else { REPORT } + Protect(); +} + +void GeneralMatrix::Inject(const GeneralMatrix& X) +// copy stored values of X; otherwise leave els of *this unchanged +{ + REPORT + Tracer tr("Inject"); + if (nrows != X.nrows || ncols != X.ncols) + Throw(IncompatibleDimensionsException()); + MatrixRow mr((GeneralMatrix*)&X, LoadOnEntry); + MatrixRow mrx(this, LoadOnEntry+StoreOnExit+DirectPart); + int i=nrows; + while (i--) { mrx.Inject(mr); mrx.Next(); mr.Next(); } +} + +// ************* checking for data loss during conversion *******************/ + +bool Compare(const MatrixType& source, MatrixType& destination) +{ + if (!destination) { destination=source; return true; } + if (destination==source) return true; + if (!destination.DataLossOK && !(destination>=source)) + Throw(ProgramException("Illegal Conversion", source, destination)); + return false; +} + +// ************* Make a copy of a matrix on the heap *********************/ + +GeneralMatrix* Matrix::Image() const +{ + REPORT + GeneralMatrix* gm = new Matrix(*this); MatrixErrorNoSpace(gm); + return gm; +} + +GeneralMatrix* SymmetricMatrix::Image() const +{ + REPORT + GeneralMatrix* gm = new SymmetricMatrix(*this); MatrixErrorNoSpace(gm); + return gm; +} + +GeneralMatrix* UpperTriangularMatrix::Image() const +{ + REPORT + GeneralMatrix* gm = new UpperTriangularMatrix(*this); + MatrixErrorNoSpace(gm); return gm; +} + +GeneralMatrix* LowerTriangularMatrix::Image() const +{ + REPORT + GeneralMatrix* gm = new LowerTriangularMatrix(*this); + MatrixErrorNoSpace(gm); return gm; +} + +GeneralMatrix* DiagonalMatrix::Image() const +{ + REPORT + GeneralMatrix* gm = new DiagonalMatrix(*this); MatrixErrorNoSpace(gm); + return gm; +} + +GeneralMatrix* RowVector::Image() const +{ + REPORT + GeneralMatrix* gm = new RowVector(*this); MatrixErrorNoSpace(gm); + return gm; +} + +GeneralMatrix* ColumnVector::Image() const +{ + REPORT + GeneralMatrix* gm = new ColumnVector(*this); MatrixErrorNoSpace(gm); + return gm; +} + +GeneralMatrix* BandMatrix::Image() const +{ + REPORT + GeneralMatrix* gm = new BandMatrix(*this); MatrixErrorNoSpace(gm); + return gm; +} + +GeneralMatrix* UpperBandMatrix::Image() const +{ + REPORT + GeneralMatrix* gm = new UpperBandMatrix(*this); MatrixErrorNoSpace(gm); + return gm; +} + +GeneralMatrix* LowerBandMatrix::Image() const +{ + REPORT + GeneralMatrix* gm = new LowerBandMatrix(*this); MatrixErrorNoSpace(gm); + return gm; +} + +GeneralMatrix* SymmetricBandMatrix::Image() const +{ + REPORT + GeneralMatrix* gm = new SymmetricBandMatrix(*this); MatrixErrorNoSpace(gm); + return gm; +} + +GeneralMatrix* nricMatrix::Image() const +{ + REPORT + GeneralMatrix* gm = new nricMatrix(*this); MatrixErrorNoSpace(gm); + return gm; +} + +GeneralMatrix* IdentityMatrix::Image() const +{ + REPORT + GeneralMatrix* gm = new IdentityMatrix(*this); MatrixErrorNoSpace(gm); + return gm; +} + +GeneralMatrix* GeneralMatrix::Image() const +{ + bool dummy = true; + if (dummy) // get rid of warning message + Throw(InternalException("Cannot apply Image to this matrix type")); + return 0; +} + + +// *********************** nricMatrix routines *****************************/ + +void nricMatrix::MakeRowPointer() +{ + if (nrows > 0) + { + row_pointer = new Real* [nrows]; MatrixErrorNoSpace(row_pointer); + Real* s = Store() - 1; int i = nrows; Real** rp = row_pointer; + if (i) for (;;) { *rp++ = s; if (!(--i)) break; s+=ncols; } + } + else row_pointer = 0; +} + +void nricMatrix::DeleteRowPointer() +{ if (nrows) delete [] row_pointer; } + +void GeneralMatrix::CheckStore() const +{ + if (!store) + Throw(ProgramException("NRIC accessing matrix with unset dimensions")); +} + + +// *************************** CleanUp routines *****************************/ + +void GeneralMatrix::CleanUp() +{ + // set matrix dimensions to zero, delete storage + REPORT + if (store && storage) + { + MONITOR_REAL_DELETE("Free (CleanUp) ",storage,store) + REPORT delete [] store; + } + store=0; storage=0; nrows=0; ncols=0; +} + +void nricMatrix::CleanUp() +{ DeleteRowPointer(); GeneralMatrix::CleanUp(); } + +void RowVector::CleanUp() +{ GeneralMatrix::CleanUp(); nrows=1; } + +void ColumnVector::CleanUp() +{ GeneralMatrix::CleanUp(); ncols=1; } + +void CroutMatrix::CleanUp() +{ + if (nrows) delete [] indx; + GeneralMatrix::CleanUp(); +} + +void BandLUMatrix::CleanUp() +{ + if (nrows) delete [] indx; + if (storage2) delete [] store2; + GeneralMatrix::CleanUp(); +} + +// ************************ simple integer array class *********************** + +// construct a new array of length xn. Check that xn is non-negative and +// that space is available + +SimpleIntArray::SimpleIntArray(int xn) : n(xn) +{ + if (n < 0) Throw(Logic_error("invalid array length")); + else if (n == 0) { REPORT a = 0; } + else { REPORT a = new int [n]; if (!a) Throw(Bad_alloc()); } +} + +// destroy an array - return its space to memory + +SimpleIntArray::~SimpleIntArray() { REPORT if (a) delete [] a; } + +// access an element of an array; return a "reference" so elements +// can be modified. +// check index is within range +// in this array class the index runs from 0 to n-1 + +int& SimpleIntArray::operator[](int i) +{ + REPORT + if (i < 0 || i >= n) Throw(Logic_error("array index out of range")); + return a[i]; +} + +// same thing again but for arrays declared constant so we can't +// modify its elements + +int SimpleIntArray::operator[](int i) const +{ + REPORT + if (i < 0 || i >= n) Throw(Logic_error("array index out of range")); + return a[i]; +} + +// set all the elements equal to a given value + +void SimpleIntArray::operator=(int ai) + { REPORT for (int i = 0; i < n; i++) a[i] = ai; } + +// set the elements equal to those of another array. +// check the arrays are of the same length + +void SimpleIntArray::operator=(const SimpleIntArray& b) +{ + REPORT + if (b.n != n) Throw(Logic_error("array lengths differ in copy")); + for (int i = 0; i < n; i++) a[i] = b.a[i]; +} + +// construct a new array equal to an existing array +// check that space is available + +SimpleIntArray::SimpleIntArray(const SimpleIntArray& b) : n(b.n) +{ + if (n == 0) { REPORT a = 0; } + else + { + REPORT + a = new int [n]; if (!a) Throw(Bad_alloc()); + for (int i = 0; i < n; i++) a[i] = b.a[i]; + } +} + +// change the size of an array; optionally copy data from old array to +// new array + +void SimpleIntArray::ReSize(int n1, bool keep) +{ + if (n1 == n) { REPORT return; } + else if (n1 == 0) { REPORT n = 0; delete [] a; a = 0; } + else if (n == 0) + { REPORT a = new int [n1]; if (!a) Throw(Bad_alloc()); n = n1; } + else + { + int* a1 = a; + if (keep) + { + REPORT + a = new int [n1]; if (!a) Throw(Bad_alloc()); + if (n > n1) n = n1; + for (int i = 0; i < n; i++) a[i] = a1[i]; + n = n1; delete [] a1; + } + else + { + REPORT n = n1; delete [] a1; + a = new int [n]; if (!a) Throw(Bad_alloc()); + } + } +} + + +#ifdef use_namespace +} +#endif + diff --git a/3rdparty/newmat/newmat5.cpp b/3rdparty/newmat/newmat5.cpp new file mode 100644 index 0000000..234102c --- /dev/null +++ b/3rdparty/newmat/newmat5.cpp @@ -0,0 +1,563 @@ +//$$ newmat5.cpp Transpose, evaluate etc + +// Copyright (C) 1991,2,3,4: R B Davies + +//#define WANT_STREAM + +#include "include.h" + +#include "newmat.h" +#include "newmatrc.h" + +#ifdef use_namespace +namespace NEWMAT { +#endif + + +#ifdef DO_REPORT +#define REPORT { static ExeCounter ExeCount(__LINE__,5); ++ExeCount; } +#else +#define REPORT {} +#endif + + +/************************ carry out operations ******************************/ + + +GeneralMatrix* GeneralMatrix::Transpose(TransposedMatrix* tm, MatrixType mt) +{ + GeneralMatrix* gm1; + + if (Compare(Type().t(),mt)) + { + REPORT + gm1 = mt.New(ncols,nrows,tm); + for (int i=0; iReleaseAndDelete(); return gm1; +} + +GeneralMatrix* SymmetricMatrix::Transpose(TransposedMatrix*, MatrixType mt) +{ REPORT return Evaluate(mt); } + + +GeneralMatrix* DiagonalMatrix::Transpose(TransposedMatrix*, MatrixType mt) +{ REPORT return Evaluate(mt); } + +GeneralMatrix* ColumnVector::Transpose(TransposedMatrix*, MatrixType mt) +{ + REPORT + GeneralMatrix* gmx = new RowVector; MatrixErrorNoSpace(gmx); + gmx->nrows = 1; gmx->ncols = gmx->storage = storage; + return BorrowStore(gmx,mt); +} + +GeneralMatrix* RowVector::Transpose(TransposedMatrix*, MatrixType mt) +{ + REPORT + GeneralMatrix* gmx = new ColumnVector; MatrixErrorNoSpace(gmx); + gmx->ncols = 1; gmx->nrows = gmx->storage = storage; + return BorrowStore(gmx,mt); +} + +GeneralMatrix* IdentityMatrix::Transpose(TransposedMatrix*, MatrixType mt) +{ REPORT return Evaluate(mt); } + +GeneralMatrix* GeneralMatrix::Evaluate(MatrixType mt) +{ + if (Compare(this->Type(),mt)) { REPORT return this; } + REPORT + GeneralMatrix* gmx = mt.New(nrows,ncols,this); + MatrixRow mr(this, LoadOnEntry); + MatrixRow mrx(gmx, StoreOnExit+DirectPart); + int i=nrows; + while (i--) { mrx.Copy(mr); mrx.Next(); mr.Next(); } + tDelete(); gmx->ReleaseAndDelete(); return gmx; +} + +GeneralMatrix* GenericMatrix::Evaluate(MatrixType mt) + { REPORT return gm->Evaluate(mt); } + +GeneralMatrix* ShiftedMatrix::Evaluate(MatrixType mt) +{ + gm=((BaseMatrix*&)bm)->Evaluate(); + int nr=gm->Nrows(); int nc=gm->Ncols(); + Compare(gm->Type().AddEqualEl(),mt); + if (!(mt==gm->Type())) + { + REPORT + GeneralMatrix* gmx = mt.New(nr,nc,this); + MatrixRow mr(gm, LoadOnEntry); + MatrixRow mrx(gmx, StoreOnExit+DirectPart); + while (nr--) { mrx.Add(mr,f); mrx.Next(); mr.Next(); } + gmx->ReleaseAndDelete(); gm->tDelete(); +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + return gmx; + } + else if (gm->reuse()) + { + REPORT gm->Add(f); +#ifdef TEMPS_DESTROYED_QUICKLY + GeneralMatrix* gmx = gm; delete this; return gmx; +#else + return gm; +#endif + } + else + { + REPORT GeneralMatrix* gmy = gm->Type().New(nr,nc,this); + gmy->ReleaseAndDelete(); gmy->Add(gm,f); +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + return gmy; + } +} + +GeneralMatrix* NegShiftedMatrix::Evaluate(MatrixType mt) +{ + gm=((BaseMatrix*&)bm)->Evaluate(); + int nr=gm->Nrows(); int nc=gm->Ncols(); + Compare(gm->Type().AddEqualEl(),mt); + if (!(mt==gm->Type())) + { + REPORT + GeneralMatrix* gmx = mt.New(nr,nc,this); + MatrixRow mr(gm, LoadOnEntry); + MatrixRow mrx(gmx, StoreOnExit+DirectPart); + while (nr--) { mrx.NegAdd(mr,f); mrx.Next(); mr.Next(); } + gmx->ReleaseAndDelete(); gm->tDelete(); +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + return gmx; + } + else if (gm->reuse()) + { + REPORT gm->NegAdd(f); +#ifdef TEMPS_DESTROYED_QUICKLY + GeneralMatrix* gmx = gm; delete this; return gmx; +#else + return gm; +#endif + } + else + { + REPORT GeneralMatrix* gmy = gm->Type().New(nr,nc,this); + gmy->ReleaseAndDelete(); gmy->NegAdd(gm,f); +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + return gmy; + } +} + +GeneralMatrix* ScaledMatrix::Evaluate(MatrixType mt) +{ + gm=((BaseMatrix*&)bm)->Evaluate(); + int nr=gm->Nrows(); int nc=gm->Ncols(); + if (Compare(gm->Type(),mt)) + { + if (gm->reuse()) + { + REPORT gm->Multiply(f); +#ifdef TEMPS_DESTROYED_QUICKLY + GeneralMatrix* gmx = gm; delete this; return gmx; +#else + return gm; +#endif + } + else + { + REPORT GeneralMatrix* gmx = gm->Type().New(nr,nc,this); + gmx->ReleaseAndDelete(); gmx->Multiply(gm,f); +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + return gmx; + } + } + else + { + REPORT + GeneralMatrix* gmx = mt.New(nr,nc,this); + MatrixRow mr(gm, LoadOnEntry); + MatrixRow mrx(gmx, StoreOnExit+DirectPart); + while (nr--) { mrx.Multiply(mr,f); mrx.Next(); mr.Next(); } + gmx->ReleaseAndDelete(); gm->tDelete(); +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + return gmx; + } +} + +GeneralMatrix* NegatedMatrix::Evaluate(MatrixType mt) +{ + gm=((BaseMatrix*&)bm)->Evaluate(); + int nr=gm->Nrows(); int nc=gm->Ncols(); + if (Compare(gm->Type(),mt)) + { + if (gm->reuse()) + { + REPORT gm->Negate(); +#ifdef TEMPS_DESTROYED_QUICKLY + GeneralMatrix* gmx = gm; delete this; return gmx; +#else + return gm; +#endif + } + else + { + REPORT + GeneralMatrix* gmx = gm->Type().New(nr,nc,this); + gmx->ReleaseAndDelete(); gmx->Negate(gm); +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + return gmx; + } + } + else + { + REPORT + GeneralMatrix* gmx = mt.New(nr,nc,this); + MatrixRow mr(gm, LoadOnEntry); + MatrixRow mrx(gmx, StoreOnExit+DirectPart); + while (nr--) { mrx.Negate(mr); mrx.Next(); mr.Next(); } + gmx->ReleaseAndDelete(); gm->tDelete(); +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + return gmx; + } +} + +GeneralMatrix* ReversedMatrix::Evaluate(MatrixType mt) +{ + gm=((BaseMatrix*&)bm)->Evaluate(); GeneralMatrix* gmx; + + if ((gm->Type()).IsBand() && ! (gm->Type()).IsDiagonal()) + { + gm->tDelete(); +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + Throw(NotDefinedException("Reverse", "band matrices")); + } + + if (gm->reuse()) { REPORT gm->ReverseElements(); gmx = gm; } + else + { + REPORT + gmx = gm->Type().New(gm->Nrows(), gm->Ncols(), this); + gmx->ReverseElements(gm); gmx->ReleaseAndDelete(); + } +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + return gmx->Evaluate(mt); // target matrix is different type? + +} + +GeneralMatrix* TransposedMatrix::Evaluate(MatrixType mt) +{ + REPORT + gm=((BaseMatrix*&)bm)->Evaluate(); + Compare(gm->Type().t(),mt); + GeneralMatrix* gmx=gm->Transpose(this, mt); +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + return gmx; +} + +GeneralMatrix* RowedMatrix::Evaluate(MatrixType mt) +{ + gm = ((BaseMatrix*&)bm)->Evaluate(); + GeneralMatrix* gmx = new RowVector; MatrixErrorNoSpace(gmx); + gmx->nrows = 1; gmx->ncols = gmx->storage = gm->storage; +#ifdef TEMPS_DESTROYED_QUICKLY + GeneralMatrix* gmy = gm; delete this; return gmy->BorrowStore(gmx,mt); +#else + return gm->BorrowStore(gmx,mt); +#endif +} + +GeneralMatrix* ColedMatrix::Evaluate(MatrixType mt) +{ + gm = ((BaseMatrix*&)bm)->Evaluate(); + GeneralMatrix* gmx = new ColumnVector; MatrixErrorNoSpace(gmx); + gmx->ncols = 1; gmx->nrows = gmx->storage = gm->storage; +#ifdef TEMPS_DESTROYED_QUICKLY + GeneralMatrix* gmy = gm; delete this; return gmy->BorrowStore(gmx,mt); +#else + return gm->BorrowStore(gmx,mt); +#endif +} + +GeneralMatrix* DiagedMatrix::Evaluate(MatrixType mt) +{ + gm = ((BaseMatrix*&)bm)->Evaluate(); + GeneralMatrix* gmx = new DiagonalMatrix; MatrixErrorNoSpace(gmx); + gmx->nrows = gmx->ncols = gmx->storage = gm->storage; +#ifdef TEMPS_DESTROYED_QUICKLY + GeneralMatrix* gmy = gm; delete this; return gmy->BorrowStore(gmx,mt); +#else + return gm->BorrowStore(gmx,mt); +#endif +} + +GeneralMatrix* MatedMatrix::Evaluate(MatrixType mt) +{ + Tracer tr("MatedMatrix::Evaluate"); + gm = ((BaseMatrix*&)bm)->Evaluate(); + GeneralMatrix* gmx = new Matrix; MatrixErrorNoSpace(gmx); + gmx->nrows = nr; gmx->ncols = nc; gmx->storage = gm->storage; + if (nr*nc != gmx->storage) + Throw(IncompatibleDimensionsException()); +#ifdef TEMPS_DESTROYED_QUICKLY + GeneralMatrix* gmy = gm; delete this; return gmy->BorrowStore(gmx,mt); +#else + return gm->BorrowStore(gmx,mt); +#endif +} + +GeneralMatrix* GetSubMatrix::Evaluate(MatrixType mt) +{ + REPORT + Tracer tr("SubMatrix(evaluate)"); + gm = ((BaseMatrix*&)bm)->Evaluate(); + if (row_number < 0) row_number = gm->Nrows(); + if (col_number < 0) col_number = gm->Ncols(); + if (row_skip+row_number > gm->Nrows() || col_skip+col_number > gm->Ncols()) + { + gm->tDelete(); +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + Throw(SubMatrixDimensionException()); + } + if (IsSym) Compare(gm->Type().ssub(), mt); + else Compare(gm->Type().sub(), mt); + GeneralMatrix* gmx = mt.New(row_number, col_number, this); + int i = row_number; + MatrixRow mr(gm, LoadOnEntry, row_skip); + MatrixRow mrx(gmx, StoreOnExit+DirectPart); + MatrixRowCol sub; + while (i--) + { + mr.SubRowCol(sub, col_skip, col_number); // put values in sub + mrx.Copy(sub); mrx.Next(); mr.Next(); + } + gmx->ReleaseAndDelete(); gm->tDelete(); +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + return gmx; +} + + +GeneralMatrix* ReturnMatrixX::Evaluate(MatrixType mt) +{ +#ifdef TEMPS_DESTROYED_QUICKLY_R + GeneralMatrix* gmx = gm; delete this; return gmx->Evaluate(mt); +#else + return gm->Evaluate(mt); +#endif +} + + +void GeneralMatrix::Add(GeneralMatrix* gm1, Real f) +{ + REPORT + Real* s1=gm1->store; Real* s=store; int i=(storage >> 2); + while (i--) + { *s++ = *s1++ + f; *s++ = *s1++ + f; *s++ = *s1++ + f; *s++ = *s1++ + f; } + i = storage & 3; while (i--) *s++ = *s1++ + f; +} + +void GeneralMatrix::Add(Real f) +{ + REPORT + Real* s=store; int i=(storage >> 2); + while (i--) { *s++ += f; *s++ += f; *s++ += f; *s++ += f; } + i = storage & 3; while (i--) *s++ += f; +} + +void GeneralMatrix::NegAdd(GeneralMatrix* gm1, Real f) +{ + REPORT + Real* s1=gm1->store; Real* s=store; int i=(storage >> 2); + while (i--) + { *s++ = f - *s1++; *s++ = f - *s1++; *s++ = f - *s1++; *s++ = f - *s1++; } + i = storage & 3; while (i--) *s++ = f - *s1++; +} + +void GeneralMatrix::NegAdd(Real f) +{ + REPORT + Real* s=store; int i=(storage >> 2); + while (i--) + { + *s = f - *s; s++; *s = f - *s; s++; + *s = f - *s; s++; *s = f - *s; s++; + } + i = storage & 3; while (i--) { *s = f - *s; s++; } +} + +void GeneralMatrix::Negate(GeneralMatrix* gm1) +{ + // change sign of elements + REPORT + Real* s1=gm1->store; Real* s=store; int i=(storage >> 2); + while (i--) + { *s++ = -(*s1++); *s++ = -(*s1++); *s++ = -(*s1++); *s++ = -(*s1++); } + i = storage & 3; while(i--) *s++ = -(*s1++); +} + +void GeneralMatrix::Negate() +{ + REPORT + Real* s=store; int i=(storage >> 2); + while (i--) + { *s = -(*s); s++; *s = -(*s); s++; *s = -(*s); s++; *s = -(*s); s++; } + i = storage & 3; while(i--) { *s = -(*s); s++; } +} + +void GeneralMatrix::Multiply(GeneralMatrix* gm1, Real f) +{ + REPORT + Real* s1=gm1->store; Real* s=store; int i=(storage >> 2); + while (i--) + { *s++ = *s1++ * f; *s++ = *s1++ * f; *s++ = *s1++ * f; *s++ = *s1++ * f; } + i = storage & 3; while (i--) *s++ = *s1++ * f; +} + +void GeneralMatrix::Multiply(Real f) +{ + REPORT + Real* s=store; int i=(storage >> 2); + while (i--) { *s++ *= f; *s++ *= f; *s++ *= f; *s++ *= f; } + i = storage & 3; while (i--) *s++ *= f; +} + + +/************************ MatrixInput routines ****************************/ + +// int MatrixInput::n; // number values still to be read +// Real* MatrixInput::r; // pointer to next location to be read to + +MatrixInput MatrixInput::operator<<(Real f) +{ + REPORT + Tracer et("MatrixInput"); + if (n<=0) Throw(ProgramException("List of values too long")); + *r = f; int n1 = n-1; n=0; // n=0 so we won't trigger exception + return MatrixInput(n1, r+1); +} + + +MatrixInput GeneralMatrix::operator<<(Real f) +{ + REPORT + Tracer et("MatrixInput"); + int n = Storage(); + if (n<=0) Throw(ProgramException("Loading data to zero length matrix")); + Real* r; r = Store(); *r = f; n--; + return MatrixInput(n, r+1); +} + +MatrixInput GetSubMatrix::operator<<(Real f) +{ + REPORT + Tracer et("MatrixInput (GetSubMatrix)"); + SetUpLHS(); + if (row_number != 1 || col_skip != 0 || col_number != gm->Ncols()) + { +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + Throw(ProgramException("MatrixInput requires complete rows")); + } + MatrixRow mr(gm, DirectPart, row_skip); // to pick up location and length + int n = mr.Storage(); + if (n<=0) + { +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + Throw(ProgramException("Loading data to zero length row")); + } + Real* r; r = mr.Data(); *r = f; n--; + if (+(mr.cw*HaveStore)) + { +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + Throw(ProgramException("Fails with this matrix type")); + } +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + return MatrixInput(n, r+1); +} + +MatrixInput::~MatrixInput() +{ + REPORT + Tracer et("MatrixInput"); + if (n!=0) Throw(ProgramException("A list of values was too short")); +} + +MatrixInput BandMatrix::operator<<(Real) +{ + Tracer et("MatrixInput"); + bool dummy = true; + if (dummy) // get rid of warning message + Throw(ProgramException("Cannot use list read with a BandMatrix")); + return MatrixInput(0, 0); +} + +void BandMatrix::operator<<(const Real*) +{ Throw(ProgramException("Cannot use array read with a BandMatrix")); } + +// ************************* Reverse order of elements *********************** + +void GeneralMatrix::ReverseElements(GeneralMatrix* gm) +{ + // reversing into a new matrix + REPORT + int n = Storage(); Real* rx = Store() + n; Real* x = gm->Store(); + while (n--) *(--rx) = *(x++); +} + +void GeneralMatrix::ReverseElements() +{ + // reversing in place + REPORT + int n = Storage(); Real* x = Store(); Real* rx = x + n; + n /= 2; + while (n--) { Real t = *(--rx); *rx = *x; *(x++) = t; } +} + + +#ifdef use_namespace +} +#endif + diff --git a/3rdparty/newmat/newmat6.cpp b/3rdparty/newmat/newmat6.cpp new file mode 100644 index 0000000..2ccb069 --- /dev/null +++ b/3rdparty/newmat/newmat6.cpp @@ -0,0 +1,1124 @@ +//$$ newmat6.cpp Operators, element access, submatrices + +// Copyright (C) 1991,2,3,4: R B Davies + +#include "include.h" + +#include "newmat.h" +#include "newmatrc.h" + +#ifdef use_namespace +namespace NEWMAT { +#endif + + + +#ifdef DO_REPORT +#define REPORT { static ExeCounter ExeCount(__LINE__,6); ++ExeCount; } +#else +#define REPORT {} +#endif + +/*************************** general utilities *************************/ + +static int tristore(int n) // els in triangular matrix +{ return (n*(n+1))/2; } + + +/****************************** operators *******************************/ + +Real& Matrix::operator()(int m, int n) +{ + REPORT + if (m<=0 || m>nrows || n<=0 || n>ncols) + Throw(IndexException(m,n,*this)); + return store[(m-1)*ncols+n-1]; +} + +Real& SymmetricMatrix::operator()(int m, int n) +{ + REPORT + if (m<=0 || n<=0 || m>nrows || n>ncols) + Throw(IndexException(m,n,*this)); + if (m>=n) return store[tristore(m-1)+n-1]; + else return store[tristore(n-1)+m-1]; +} + +Real& UpperTriangularMatrix::operator()(int m, int n) +{ + REPORT + if (m<=0 || nncols) + Throw(IndexException(m,n,*this)); + return store[(m-1)*ncols+n-1-tristore(m-1)]; +} + +Real& LowerTriangularMatrix::operator()(int m, int n) +{ + REPORT + if (n<=0 || mnrows) + Throw(IndexException(m,n,*this)); + return store[tristore(m-1)+n-1]; +} + +Real& DiagonalMatrix::operator()(int m, int n) +{ + REPORT + if (n<=0 || m!=n || m>nrows || n>ncols) + Throw(IndexException(m,n,*this)); + return store[n-1]; +} + +Real& DiagonalMatrix::operator()(int m) +{ + REPORT + if (m<=0 || m>nrows) Throw(IndexException(m,*this)); + return store[m-1]; +} + +Real& ColumnVector::operator()(int m) +{ + REPORT + if (m<=0 || m> nrows) Throw(IndexException(m,*this)); + return store[m-1]; +} + +Real& RowVector::operator()(int n) +{ + REPORT + if (n<=0 || n> ncols) Throw(IndexException(n,*this)); + return store[n-1]; +} + +Real& BandMatrix::operator()(int m, int n) +{ + REPORT + int w = upper+lower+1; int i = lower+n-m; + if (m<=0 || m>nrows || n<=0 || n>ncols || i<0 || i>=w) + Throw(IndexException(m,n,*this)); + return store[w*(m-1)+i]; +} + +Real& UpperBandMatrix::operator()(int m, int n) +{ + REPORT + int w = upper+1; int i = n-m; + if (m<=0 || m>nrows || n<=0 || n>ncols || i<0 || i>=w) + Throw(IndexException(m,n,*this)); + return store[w*(m-1)+i]; +} + +Real& LowerBandMatrix::operator()(int m, int n) +{ + REPORT + int w = lower+1; int i = lower+n-m; + if (m<=0 || m>nrows || n<=0 || n>ncols || i<0 || i>=w) + Throw(IndexException(m,n,*this)); + return store[w*(m-1)+i]; +} + +Real& SymmetricBandMatrix::operator()(int m, int n) +{ + REPORT + int w = lower+1; + if (m>=n) + { + REPORT + int i = lower+n-m; + if ( m>nrows || n<=0 || i<0 ) + Throw(IndexException(m,n,*this)); + return store[w*(m-1)+i]; + } + else + { + REPORT + int i = lower+m-n; + if ( n>nrows || m<=0 || i<0 ) + Throw(IndexException(m,n,*this)); + return store[w*(n-1)+i]; + } +} + + +Real Matrix::operator()(int m, int n) const +{ + REPORT + if (m<=0 || m>nrows || n<=0 || n>ncols) + Throw(IndexException(m,n,*this)); + return store[(m-1)*ncols+n-1]; +} + +Real SymmetricMatrix::operator()(int m, int n) const +{ + REPORT + if (m<=0 || n<=0 || m>nrows || n>ncols) + Throw(IndexException(m,n,*this)); + if (m>=n) return store[tristore(m-1)+n-1]; + else return store[tristore(n-1)+m-1]; +} + +Real UpperTriangularMatrix::operator()(int m, int n) const +{ + REPORT + if (m<=0 || nncols) + Throw(IndexException(m,n,*this)); + return store[(m-1)*ncols+n-1-tristore(m-1)]; +} + +Real LowerTriangularMatrix::operator()(int m, int n) const +{ + REPORT + if (n<=0 || mnrows) + Throw(IndexException(m,n,*this)); + return store[tristore(m-1)+n-1]; +} + +Real DiagonalMatrix::operator()(int m, int n) const +{ + REPORT + if (n<=0 || m!=n || m>nrows || n>ncols) + Throw(IndexException(m,n,*this)); + return store[n-1]; +} + +Real DiagonalMatrix::operator()(int m) const +{ + REPORT + if (m<=0 || m>nrows) Throw(IndexException(m,*this)); + return store[m-1]; +} + +Real ColumnVector::operator()(int m) const +{ + REPORT + if (m<=0 || m> nrows) Throw(IndexException(m,*this)); + return store[m-1]; +} + +Real RowVector::operator()(int n) const +{ + REPORT + if (n<=0 || n> ncols) Throw(IndexException(n,*this)); + return store[n-1]; +} + +Real BandMatrix::operator()(int m, int n) const +{ + REPORT + int w = upper+lower+1; int i = lower+n-m; + if (m<=0 || m>nrows || n<=0 || n>ncols || i<0 || i>=w) + Throw(IndexException(m,n,*this)); + return store[w*(m-1)+i]; +} + +Real UpperBandMatrix::operator()(int m, int n) const +{ + REPORT + int w = upper+1; int i = n-m; + if (m<=0 || m>nrows || n<=0 || n>ncols || i<0 || i>=w) + Throw(IndexException(m,n,*this)); + return store[w*(m-1)+i]; +} + +Real LowerBandMatrix::operator()(int m, int n) const +{ + REPORT + int w = lower+1; int i = lower+n-m; + if (m<=0 || m>nrows || n<=0 || n>ncols || i<0 || i>=w) + Throw(IndexException(m,n,*this)); + return store[w*(m-1)+i]; +} + +Real SymmetricBandMatrix::operator()(int m, int n) const +{ + REPORT + int w = lower+1; + if (m>=n) + { + REPORT + int i = lower+n-m; + if ( m>nrows || n<=0 || i<0 ) + Throw(IndexException(m,n,*this)); + return store[w*(m-1)+i]; + } + else + { + REPORT + int i = lower+m-n; + if ( n>nrows || m<=0 || i<0 ) + Throw(IndexException(m,n,*this)); + return store[w*(n-1)+i]; + } +} + + +Real BaseMatrix::AsScalar() const +{ + REPORT + GeneralMatrix* gm = ((BaseMatrix&)*this).Evaluate(); + + if (gm->nrows!=1 || gm->ncols!=1) + { + Tracer tr("AsScalar"); + Try + { Throw(ProgramException("Cannot convert to scalar", *gm)); } + CatchAll { gm->tDelete(); ReThrow; } + } + + Real x = *(gm->store); gm->tDelete(); return x; +} + +#ifdef TEMPS_DESTROYED_QUICKLY + +AddedMatrix& BaseMatrix::operator+(const BaseMatrix& bm) const +{ + REPORT + AddedMatrix* x = new AddedMatrix(this, &bm); + MatrixErrorNoSpace(x); + return *x; +} + +SPMatrix& SP(const BaseMatrix& bm1,const BaseMatrix& bm2) +{ + REPORT + SPMatrix* x = new SPMatrix(&bm1, &bm2); + MatrixErrorNoSpace(x); + return *x; +} + +KPMatrix& KP(const BaseMatrix& bm1,const BaseMatrix& bm2) +{ + REPORT + KPMatrix* x = new KPMatrix(&bm1, &bm2); + MatrixErrorNoSpace(x); + return *x; +} + +MultipliedMatrix& BaseMatrix::operator*(const BaseMatrix& bm) const +{ + REPORT + MultipliedMatrix* x = new MultipliedMatrix(this, &bm); + MatrixErrorNoSpace(x); + return *x; +} + +ConcatenatedMatrix& BaseMatrix::operator|(const BaseMatrix& bm) const +{ + REPORT + ConcatenatedMatrix* x = new ConcatenatedMatrix(this, &bm); + MatrixErrorNoSpace(x); + return *x; +} + +StackedMatrix& BaseMatrix::operator&(const BaseMatrix& bm) const +{ + REPORT + StackedMatrix* x = new StackedMatrix(this, &bm); + MatrixErrorNoSpace(x); + return *x; +} + +//SolvedMatrix& InvertedMatrix::operator*(const BaseMatrix& bmx) const +SolvedMatrix& InvertedMatrix::operator*(const BaseMatrix& bmx) +{ + REPORT + SolvedMatrix* x; + Try { x = new SolvedMatrix(bm, &bmx); MatrixErrorNoSpace(x); } + CatchAll { delete this; ReThrow; } + delete this; // since we are using bm rather than this + return *x; +} + +SubtractedMatrix& BaseMatrix::operator-(const BaseMatrix& bm) const +{ + REPORT + SubtractedMatrix* x = new SubtractedMatrix(this, &bm); + MatrixErrorNoSpace(x); + return *x; +} + +ShiftedMatrix& BaseMatrix::operator+(Real f) const +{ + REPORT + ShiftedMatrix* x = new ShiftedMatrix(this, f); + MatrixErrorNoSpace(x); + return *x; +} + +NegShiftedMatrix& operator-(Real f,const BaseMatrix& bm1) +{ + REPORT + NegShiftedMatrix* x = new NegShiftedMatrix(f, &bm1); + MatrixErrorNoSpace(x); + return *x; +} + +ScaledMatrix& BaseMatrix::operator*(Real f) const +{ + REPORT + ScaledMatrix* x = new ScaledMatrix(this, f); + MatrixErrorNoSpace(x); + return *x; +} + +ScaledMatrix& BaseMatrix::operator/(Real f) const +{ + REPORT + ScaledMatrix* x = new ScaledMatrix(this, 1.0/f); + MatrixErrorNoSpace(x); + return *x; +} + +ShiftedMatrix& BaseMatrix::operator-(Real f) const +{ + REPORT + ShiftedMatrix* x = new ShiftedMatrix(this, -f); + MatrixErrorNoSpace(x); + return *x; +} + +TransposedMatrix& BaseMatrix::t() const +{ + REPORT + TransposedMatrix* x = new TransposedMatrix(this); + MatrixErrorNoSpace(x); + return *x; +} + +NegatedMatrix& BaseMatrix::operator-() const +{ + REPORT + NegatedMatrix* x = new NegatedMatrix(this); + MatrixErrorNoSpace(x); + return *x; +} + +ReversedMatrix& BaseMatrix::Reverse() const +{ + REPORT + ReversedMatrix* x = new ReversedMatrix(this); + MatrixErrorNoSpace(x); + return *x; +} + +InvertedMatrix& BaseMatrix::i() const +{ + REPORT + InvertedMatrix* x = new InvertedMatrix(this); + MatrixErrorNoSpace(x); + return *x; +} + +RowedMatrix& BaseMatrix::AsRow() const +{ + REPORT + RowedMatrix* x = new RowedMatrix(this); + MatrixErrorNoSpace(x); + return *x; +} + +ColedMatrix& BaseMatrix::AsColumn() const +{ + REPORT + ColedMatrix* x = new ColedMatrix(this); + MatrixErrorNoSpace(x); + return *x; +} + +DiagedMatrix& BaseMatrix::AsDiagonal() const +{ + REPORT + DiagedMatrix* x = new DiagedMatrix(this); + MatrixErrorNoSpace(x); + return *x; +} + +MatedMatrix& BaseMatrix::AsMatrix(int nrx, int ncx) const +{ + REPORT + MatedMatrix* x = new MatedMatrix(this,nrx,ncx); + MatrixErrorNoSpace(x); + return *x; +} + +#else + +AddedMatrix BaseMatrix::operator+(const BaseMatrix& bm) const +{ REPORT return AddedMatrix(this, &bm); } + +SPMatrix SP(const BaseMatrix& bm1,const BaseMatrix& bm2) +{ REPORT return SPMatrix(&bm1, &bm2); } + +KPMatrix KP(const BaseMatrix& bm1,const BaseMatrix& bm2) +{ REPORT return KPMatrix(&bm1, &bm2); } + +MultipliedMatrix BaseMatrix::operator*(const BaseMatrix& bm) const +{ REPORT return MultipliedMatrix(this, &bm); } + +ConcatenatedMatrix BaseMatrix::operator|(const BaseMatrix& bm) const +{ REPORT return ConcatenatedMatrix(this, &bm); } + +StackedMatrix BaseMatrix::operator&(const BaseMatrix& bm) const +{ REPORT return StackedMatrix(this, &bm); } + +SolvedMatrix InvertedMatrix::operator*(const BaseMatrix& bmx) const +{ REPORT return SolvedMatrix(bm, &bmx); } + +SubtractedMatrix BaseMatrix::operator-(const BaseMatrix& bm) const +{ REPORT return SubtractedMatrix(this, &bm); } + +ShiftedMatrix BaseMatrix::operator+(Real f) const +{ REPORT return ShiftedMatrix(this, f); } + +NegShiftedMatrix operator-(Real f, const BaseMatrix& bm) +{ REPORT return NegShiftedMatrix(f, &bm); } + +ScaledMatrix BaseMatrix::operator*(Real f) const +{ REPORT return ScaledMatrix(this, f); } + +ScaledMatrix BaseMatrix::operator/(Real f) const +{ REPORT return ScaledMatrix(this, 1.0/f); } + +ShiftedMatrix BaseMatrix::operator-(Real f) const +{ REPORT return ShiftedMatrix(this, -f); } + +TransposedMatrix BaseMatrix::t() const +{ REPORT return TransposedMatrix(this); } + +NegatedMatrix BaseMatrix::operator-() const +{ REPORT return NegatedMatrix(this); } + +ReversedMatrix BaseMatrix::Reverse() const +{ REPORT return ReversedMatrix(this); } + +InvertedMatrix BaseMatrix::i() const +{ REPORT return InvertedMatrix(this); } + + +RowedMatrix BaseMatrix::AsRow() const +{ REPORT return RowedMatrix(this); } + +ColedMatrix BaseMatrix::AsColumn() const +{ REPORT return ColedMatrix(this); } + +DiagedMatrix BaseMatrix::AsDiagonal() const +{ REPORT return DiagedMatrix(this); } + +MatedMatrix BaseMatrix::AsMatrix(int nrx, int ncx) const +{ REPORT return MatedMatrix(this,nrx,ncx); } + +#endif + +void GeneralMatrix::operator=(Real f) +{ REPORT int i=storage; Real* s=store; while (i--) { *s++ = f; } } + +void Matrix::operator=(const BaseMatrix& X) +{ + REPORT //CheckConversion(X); + // MatrixConversionCheck mcc; + Eq(X,MatrixType::Rt); +} + +void RowVector::operator=(const BaseMatrix& X) +{ + REPORT // CheckConversion(X); + // MatrixConversionCheck mcc; + Eq(X,MatrixType::RV); + if (nrows!=1) + { Tracer tr("RowVector(=)"); Throw(VectorException(*this)); } +} + +void ColumnVector::operator=(const BaseMatrix& X) +{ + REPORT //CheckConversion(X); + // MatrixConversionCheck mcc; + Eq(X,MatrixType::CV); + if (ncols!=1) + { Tracer tr("ColumnVector(=)"); Throw(VectorException(*this)); } +} + +void SymmetricMatrix::operator=(const BaseMatrix& X) +{ + REPORT // CheckConversion(X); + // MatrixConversionCheck mcc; + Eq(X,MatrixType::Sm); +} + +void UpperTriangularMatrix::operator=(const BaseMatrix& X) +{ + REPORT //CheckConversion(X); + // MatrixConversionCheck mcc; + Eq(X,MatrixType::UT); +} + +void LowerTriangularMatrix::operator=(const BaseMatrix& X) +{ + REPORT //CheckConversion(X); + // MatrixConversionCheck mcc; + Eq(X,MatrixType::LT); +} + +void DiagonalMatrix::operator=(const BaseMatrix& X) +{ + REPORT // CheckConversion(X); + // MatrixConversionCheck mcc; + Eq(X,MatrixType::Dg); +} + +void IdentityMatrix::operator=(const BaseMatrix& X) +{ + REPORT // CheckConversion(X); + // MatrixConversionCheck mcc; + Eq(X,MatrixType::Id); +} + +void GeneralMatrix::operator<<(const Real* r) +{ + REPORT + int i = storage; Real* s=store; + while(i--) *s++ = *r++; +} + + +void GenericMatrix::operator=(const GenericMatrix& bmx) +{ + if (&bmx != this) { REPORT if (gm) delete gm; gm = bmx.gm->Image();} + else { REPORT } + gm->Protect(); +} + +void GenericMatrix::operator=(const BaseMatrix& bmx) +{ + if (gm) + { + int counter=bmx.search(gm); + if (counter==0) { REPORT delete gm; gm=0; } + else { REPORT gm->Release(counter); } + } + else { REPORT } + GeneralMatrix* gmx = ((BaseMatrix&)bmx).Evaluate(); + if (gmx != gm) { REPORT if (gm) delete gm; gm = gmx->Image(); } + else { REPORT } + gm->Protect(); +} + + +/*************************** += etc ***************************************/ + +// will also need versions for SubMatrix + + + +// GeneralMatrix operators + +void GeneralMatrix::operator+=(const BaseMatrix& X) +{ + REPORT + Tracer tr("GeneralMatrix::operator+="); + // MatrixConversionCheck mcc; + Protect(); // so it cannot get deleted + // during Evaluate + GeneralMatrix* gm = ((BaseMatrix&)X).Evaluate(); +#ifdef TEMPS_DESTROYED_QUICKLY + AddedMatrix* am = new AddedMatrix(this,gm); + MatrixErrorNoSpace(am); + if (gm==this) Release(2); else Release(); + Eq2(*am,Type()); +#else + AddedMatrix am(this,gm); + if (gm==this) Release(2); else Release(); + Eq2(am,Type()); +#endif +} + +void GeneralMatrix::operator-=(const BaseMatrix& X) +{ + REPORT + Tracer tr("GeneralMatrix::operator-="); + // MatrixConversionCheck mcc; + Protect(); // so it cannot get deleted + // during Evaluate + GeneralMatrix* gm = ((BaseMatrix&)X).Evaluate(); +#ifdef TEMPS_DESTROYED_QUICKLY + SubtractedMatrix* am = new SubtractedMatrix(this,gm); + MatrixErrorNoSpace(am); + if (gm==this) Release(2); else Release(); + Eq2(*am,Type()); +#else + SubtractedMatrix am(this,gm); + if (gm==this) Release(2); else Release(); + Eq2(am,Type()); +#endif +} + +void GeneralMatrix::operator*=(const BaseMatrix& X) +{ + REPORT + Tracer tr("GeneralMatrix::operator*="); + // MatrixConversionCheck mcc; + Protect(); // so it cannot get deleted + // during Evaluate + GeneralMatrix* gm = ((BaseMatrix&)X).Evaluate(); +#ifdef TEMPS_DESTROYED_QUICKLY + MultipliedMatrix* am = new MultipliedMatrix(this,gm); + MatrixErrorNoSpace(am); + if (gm==this) Release(2); else Release(); + Eq2(*am,Type()); +#else + MultipliedMatrix am(this,gm); + if (gm==this) Release(2); else Release(); + Eq2(am,Type()); +#endif +} + +void GeneralMatrix::operator|=(const BaseMatrix& X) +{ + REPORT + Tracer tr("GeneralMatrix::operator|="); + // MatrixConversionCheck mcc; + Protect(); // so it cannot get deleted + // during Evaluate + GeneralMatrix* gm = ((BaseMatrix&)X).Evaluate(); +#ifdef TEMPS_DESTROYED_QUICKLY + ConcatenatedMatrix* am = new ConcatenatedMatrix(this,gm); + MatrixErrorNoSpace(am); + if (gm==this) Release(2); else Release(); + Eq2(*am,Type()); +#else + ConcatenatedMatrix am(this,gm); + if (gm==this) Release(2); else Release(); + Eq2(am,Type()); +#endif +} + +void GeneralMatrix::operator&=(const BaseMatrix& X) +{ + REPORT + Tracer tr("GeneralMatrix::operator&="); + // MatrixConversionCheck mcc; + Protect(); // so it cannot get deleted + // during Evaluate + GeneralMatrix* gm = ((BaseMatrix&)X).Evaluate(); +#ifdef TEMPS_DESTROYED_QUICKLY + StackedMatrix* am = new StackedMatrix(this,gm); + MatrixErrorNoSpace(am); + if (gm==this) Release(2); else Release(); + Eq2(*am,Type()); +#else + StackedMatrix am(this,gm); + if (gm==this) Release(2); else Release(); + Eq2(am,Type()); +#endif +} + +void GeneralMatrix::operator+=(Real r) +{ + REPORT + Tracer tr("GeneralMatrix::operator+=(Real)"); + // MatrixConversionCheck mcc; +#ifdef TEMPS_DESTROYED_QUICKLY + ShiftedMatrix* am = new ShiftedMatrix(this,r); + MatrixErrorNoSpace(am); + Release(); Eq2(*am,Type()); +#else + ShiftedMatrix am(this,r); + Release(); Eq2(am,Type()); +#endif +} + +void GeneralMatrix::operator*=(Real r) +{ + REPORT + Tracer tr("GeneralMatrix::operator*=(Real)"); + // MatrixConversionCheck mcc; +#ifdef TEMPS_DESTROYED_QUICKLY + ScaledMatrix* am = new ScaledMatrix(this,r); + MatrixErrorNoSpace(am); + Release(); Eq2(*am,Type()); +#else + ScaledMatrix am(this,r); + Release(); Eq2(am,Type()); +#endif +} + + +// Generic matrix operators + +void GenericMatrix::operator+=(const BaseMatrix& X) +{ + REPORT + Tracer tr("GenericMatrix::operator+="); + if (!gm) Throw(ProgramException("GenericMatrix is null")); + gm->Protect(); // so it cannot get deleted during Evaluate + GeneralMatrix* gmx = ((BaseMatrix&)X).Evaluate(); +#ifdef TEMPS_DESTROYED_QUICKLY + AddedMatrix* am = new AddedMatrix(gm,gmx); + MatrixErrorNoSpace(am); + if (gmx==gm) gm->Release(2); else gm->Release(); + GeneralMatrix* gmy = am->Evaluate(); +#else + AddedMatrix am(gm,gmx); + if (gmx==gm) gm->Release(2); else gm->Release(); + GeneralMatrix* gmy = am.Evaluate(); +#endif + if (gmy != gm) { REPORT delete gm; gm = gmy->Image(); } + else { REPORT } + gm->Protect(); +} + +void GenericMatrix::operator-=(const BaseMatrix& X) +{ + REPORT + Tracer tr("GenericMatrix::operator-="); + if (!gm) Throw(ProgramException("GenericMatrix is null")); + gm->Protect(); // so it cannot get deleted during Evaluate + GeneralMatrix* gmx = ((BaseMatrix&)X).Evaluate(); +#ifdef TEMPS_DESTROYED_QUICKLY + SubtractedMatrix* am = new SubtractedMatrix(gm,gmx); + MatrixErrorNoSpace(am); + if (gmx==gm) gm->Release(2); else gm->Release(); + GeneralMatrix* gmy = am->Evaluate(); +#else + SubtractedMatrix am(gm,gmx); + if (gmx==gm) gm->Release(2); else gm->Release(); + GeneralMatrix* gmy = am.Evaluate(); +#endif + if (gmy != gm) { REPORT delete gm; gm = gmy->Image(); } + else { REPORT } + gm->Protect(); +} + +void GenericMatrix::operator*=(const BaseMatrix& X) +{ + REPORT + Tracer tr("GenericMatrix::operator*="); + if (!gm) Throw(ProgramException("GenericMatrix is null")); + gm->Protect(); // so it cannot get deleted during Evaluate + GeneralMatrix* gmx = ((BaseMatrix&)X).Evaluate(); +#ifdef TEMPS_DESTROYED_QUICKLY + MultipliedMatrix* am = new MultipliedMatrix(gm,gmx); + MatrixErrorNoSpace(am); + if (gmx==gm) gm->Release(2); else gm->Release(); + GeneralMatrix* gmy = am->Evaluate(); +#else + MultipliedMatrix am(gm,gmx); + if (gmx==gm) gm->Release(2); else gm->Release(); + GeneralMatrix* gmy = am.Evaluate(); +#endif + if (gmy != gm) { REPORT delete gm; gm = gmy->Image(); } + else { REPORT } + gm->Protect(); +} + +void GenericMatrix::operator|=(const BaseMatrix& X) +{ + REPORT + Tracer tr("GenericMatrix::operator|="); + if (!gm) Throw(ProgramException("GenericMatrix is null")); + gm->Protect(); // so it cannot get deleted during Evaluate + GeneralMatrix* gmx = ((BaseMatrix&)X).Evaluate(); +#ifdef TEMPS_DESTROYED_QUICKLY + ConcatenatedMatrix* am = new ConcatenatedMatrix(gm,gmx); + MatrixErrorNoSpace(am); + if (gmx==gm) gm->Release(2); else gm->Release(); + GeneralMatrix* gmy = am->Evaluate(); +#else + ConcatenatedMatrix am(gm,gmx); + if (gmx==gm) gm->Release(2); else gm->Release(); + GeneralMatrix* gmy = am.Evaluate(); +#endif + if (gmy != gm) { REPORT delete gm; gm = gmy->Image(); } + else { REPORT } + gm->Protect(); +} + +void GenericMatrix::operator&=(const BaseMatrix& X) +{ + REPORT + Tracer tr("GenericMatrix::operator&="); + if (!gm) Throw(ProgramException("GenericMatrix is null")); + gm->Protect(); // so it cannot get deleted during Evaluate + GeneralMatrix* gmx = ((BaseMatrix&)X).Evaluate(); +#ifdef TEMPS_DESTROYED_QUICKLY + StackedMatrix* am = new StackedMatrix(gm,gmx); + MatrixErrorNoSpace(am); + if (gmx==gm) gm->Release(2); else gm->Release(); + GeneralMatrix* gmy = am->Evaluate(); +#else + StackedMatrix am(gm,gmx); + if (gmx==gm) gm->Release(2); else gm->Release(); + GeneralMatrix* gmy = am.Evaluate(); +#endif + if (gmy != gm) { REPORT delete gm; gm = gmy->Image(); } + else { REPORT } + gm->Protect(); +} + +void GenericMatrix::operator+=(Real r) +{ + REPORT + Tracer tr("GenericMatrix::operator+= (Real)"); + if (!gm) Throw(ProgramException("GenericMatrix is null")); +#ifdef TEMPS_DESTROYED_QUICKLY + ShiftedMatrix* am = new ShiftedMatrix(gm,r); + MatrixErrorNoSpace(am); + gm->Release(); + GeneralMatrix* gmy = am->Evaluate(); +#else + ShiftedMatrix am(gm,r); + gm->Release(); + GeneralMatrix* gmy = am.Evaluate(); +#endif + if (gmy != gm) { REPORT delete gm; gm = gmy->Image(); } + else { REPORT } + gm->Protect(); +} + +void GenericMatrix::operator*=(Real r) +{ + REPORT + Tracer tr("GenericMatrix::operator*= (Real)"); + if (!gm) Throw(ProgramException("GenericMatrix is null")); +#ifdef TEMPS_DESTROYED_QUICKLY + ScaledMatrix* am = new ScaledMatrix(gm,r); + MatrixErrorNoSpace(am); + gm->Release(); + GeneralMatrix* gmy = am->Evaluate(); +#else + ScaledMatrix am(gm,r); + gm->Release(); + GeneralMatrix* gmy = am.Evaluate(); +#endif + if (gmy != gm) { REPORT delete gm; gm = gmy->Image(); } + else { REPORT } + gm->Protect(); +} + + +/************************* element access *********************************/ + +Real& Matrix::element(int m, int n) +{ + REPORT + if (m<0 || m>= nrows || n<0 || n>= ncols) + Throw(IndexException(m,n,*this,true)); + return store[m*ncols+n]; +} + +Real Matrix::element(int m, int n) const +{ + REPORT + if (m<0 || m>= nrows || n<0 || n>= ncols) + Throw(IndexException(m,n,*this,true)); + return store[m*ncols+n]; +} + +Real& SymmetricMatrix::element(int m, int n) +{ + REPORT + if (m<0 || n<0 || m >= nrows || n>=ncols) + Throw(IndexException(m,n,*this,true)); + if (m>=n) return store[tristore(m)+n]; + else return store[tristore(n)+m]; +} + +Real SymmetricMatrix::element(int m, int n) const +{ + REPORT + if (m<0 || n<0 || m >= nrows || n>=ncols) + Throw(IndexException(m,n,*this,true)); + if (m>=n) return store[tristore(m)+n]; + else return store[tristore(n)+m]; +} + +Real& UpperTriangularMatrix::element(int m, int n) +{ + REPORT + if (m<0 || n=ncols) + Throw(IndexException(m,n,*this,true)); + return store[m*ncols+n-tristore(m)]; +} + +Real UpperTriangularMatrix::element(int m, int n) const +{ + REPORT + if (m<0 || n=ncols) + Throw(IndexException(m,n,*this,true)); + return store[m*ncols+n-tristore(m)]; +} + +Real& LowerTriangularMatrix::element(int m, int n) +{ + REPORT + if (n<0 || m=nrows) + Throw(IndexException(m,n,*this,true)); + return store[tristore(m)+n]; +} + +Real LowerTriangularMatrix::element(int m, int n) const +{ + REPORT + if (n<0 || m=nrows) + Throw(IndexException(m,n,*this,true)); + return store[tristore(m)+n]; +} + +Real& DiagonalMatrix::element(int m, int n) +{ + REPORT + if (n<0 || m!=n || m>=nrows || n>=ncols) + Throw(IndexException(m,n,*this,true)); + return store[n]; +} + +Real DiagonalMatrix::element(int m, int n) const +{ + REPORT + if (n<0 || m!=n || m>=nrows || n>=ncols) + Throw(IndexException(m,n,*this,true)); + return store[n]; +} + +Real& DiagonalMatrix::element(int m) +{ + REPORT + if (m<0 || m>=nrows) Throw(IndexException(m,*this,true)); + return store[m]; +} + +Real DiagonalMatrix::element(int m) const +{ + REPORT + if (m<0 || m>=nrows) Throw(IndexException(m,*this,true)); + return store[m]; +} + +Real& ColumnVector::element(int m) +{ + REPORT + if (m<0 || m>= nrows) Throw(IndexException(m,*this,true)); + return store[m]; +} + +Real ColumnVector::element(int m) const +{ + REPORT + if (m<0 || m>= nrows) Throw(IndexException(m,*this,true)); + return store[m]; +} + +Real& RowVector::element(int n) +{ + REPORT + if (n<0 || n>= ncols) Throw(IndexException(n,*this,true)); + return store[n]; +} + +Real RowVector::element(int n) const +{ + REPORT + if (n<0 || n>= ncols) Throw(IndexException(n,*this,true)); + return store[n]; +} + +Real& BandMatrix::element(int m, int n) +{ + REPORT + int w = upper+lower+1; int i = lower+n-m; + if (m<0 || m>= nrows || n<0 || n>= ncols || i<0 || i>=w) + Throw(IndexException(m,n,*this,true)); + return store[w*m+i]; +} + +Real BandMatrix::element(int m, int n) const +{ + REPORT + int w = upper+lower+1; int i = lower+n-m; + if (m<0 || m>= nrows || n<0 || n>= ncols || i<0 || i>=w) + Throw(IndexException(m,n,*this,true)); + return store[w*m+i]; +} + +Real& UpperBandMatrix::element(int m, int n) +{ + REPORT + int w = upper+1; int i = n-m; + if (m<0 || m>= nrows || n<0 || n>= ncols || i<0 || i>=w) + Throw(IndexException(m,n,*this,true)); + return store[w*m+i]; +} + +Real UpperBandMatrix::element(int m, int n) const +{ + REPORT + int w = upper+1; int i = n-m; + if (m<0 || m>= nrows || n<0 || n>= ncols || i<0 || i>=w) + Throw(IndexException(m,n,*this,true)); + return store[w*m+i]; +} + +Real& LowerBandMatrix::element(int m, int n) +{ + REPORT + int w = lower+1; int i = lower+n-m; + if (m<0 || m>= nrows || n<0 || n>= ncols || i<0 || i>=w) + Throw(IndexException(m,n,*this,true)); + return store[w*m+i]; +} + +Real LowerBandMatrix::element(int m, int n) const +{ + REPORT + int w = lower+1; int i = lower+n-m; + if (m<0 || m>= nrows || n<0 || n>= ncols || i<0 || i>=w) + Throw(IndexException(m,n,*this,true)); + return store[w*m+i]; +} + +Real& SymmetricBandMatrix::element(int m, int n) +{ + REPORT + int w = lower+1; + if (m>=n) + { + REPORT + int i = lower+n-m; + if ( m>=nrows || n<0 || i<0 ) + Throw(IndexException(m,n,*this,true)); + return store[w*m+i]; + } + else + { + REPORT + int i = lower+m-n; + if ( n>=nrows || m<0 || i<0 ) + Throw(IndexException(m,n,*this,true)); + return store[w*n+i]; + } +} + +Real SymmetricBandMatrix::element(int m, int n) const +{ + REPORT + int w = lower+1; + if (m>=n) + { + REPORT + int i = lower+n-m; + if ( m>=nrows || n<0 || i<0 ) + Throw(IndexException(m,n,*this,true)); + return store[w*m+i]; + } + else + { + REPORT + int i = lower+m-n; + if ( n>=nrows || m<0 || i<0 ) + Throw(IndexException(m,n,*this,true)); + return store[w*n+i]; + } +} + +#ifdef use_namespace +} +#endif + diff --git a/3rdparty/newmat/newmat7.cpp b/3rdparty/newmat/newmat7.cpp new file mode 100644 index 0000000..cde81a1 --- /dev/null +++ b/3rdparty/newmat/newmat7.cpp @@ -0,0 +1,1052 @@ +//$$ newmat7.cpp Invert, solve, binary operations + +// Copyright (C) 1991,2,3,4: R B Davies + +#include "include.h" + +#include "newmat.h" +#include "newmatrc.h" + +#ifdef use_namespace +namespace NEWMAT { +#endif + + +#ifdef DO_REPORT +#define REPORT { static ExeCounter ExeCount(__LINE__,7); ++ExeCount; } +#else +#define REPORT {} +#endif + + +//***************************** solve routines ******************************/ + +GeneralMatrix* GeneralMatrix::MakeSolver() +{ + REPORT + GeneralMatrix* gm = new CroutMatrix(*this); + MatrixErrorNoSpace(gm); gm->ReleaseAndDelete(); return gm; +} + +GeneralMatrix* Matrix::MakeSolver() +{ + REPORT + GeneralMatrix* gm = new CroutMatrix(*this); + MatrixErrorNoSpace(gm); gm->ReleaseAndDelete(); return gm; +} + +void CroutMatrix::Solver(MatrixColX& mcout, const MatrixColX& mcin) +{ + REPORT + int i = mcin.skip; Real* el = mcin.data-i; Real* el1 = el; + while (i--) *el++ = 0.0; + el += mcin.storage; i = nrows - mcin.skip - mcin.storage; + while (i--) *el++ = 0.0; + lubksb(el1, mcout.skip); +} + + +// Do we need check for entirely zero output? + +void UpperTriangularMatrix::Solver(MatrixColX& mcout, + const MatrixColX& mcin) +{ + REPORT + int i = mcin.skip-mcout.skip; Real* elx = mcin.data-i; + while (i-- > 0) *elx++ = 0.0; + int nr = mcin.skip+mcin.storage; + elx = mcin.data+mcin.storage; Real* el = elx; + int j = mcout.skip+mcout.storage-nr; int nc = ncols-nr; i = nr-mcout.skip; + while (j-- > 0) *elx++ = 0.0; + Real* Ael = store + (nr*(2*ncols-nr+1))/2; j = 0; + while (i-- > 0) + { + elx = el; Real sum = 0.0; int jx = j++; Ael -= nc; + while (jx--) sum += *(--Ael) * *(--elx); + elx--; *elx = (*elx - sum) / *(--Ael); + } +} + +void LowerTriangularMatrix::Solver(MatrixColX& mcout, + const MatrixColX& mcin) +{ + REPORT + int i = mcin.skip-mcout.skip; Real* elx = mcin.data-i; + while (i-- > 0) *elx++ = 0.0; + int nc = mcin.skip; i = nc+mcin.storage; elx = mcin.data+mcin.storage; + int nr = mcout.skip+mcout.storage; int j = nr-i; i = nr-nc; + while (j-- > 0) *elx++ = 0.0; + Real* el = mcin.data; Real* Ael = store + (nc*(nc+1))/2; j = 0; + while (i-- > 0) + { + elx = el; Real sum = 0.0; int jx = j++; Ael += nc; + while (jx--) sum += *Ael++ * *elx++; + *elx = (*elx - sum) / *Ael++; + } +} + +//******************* carry out binary operations *************************/ + +static GeneralMatrix* + GeneralMult(GeneralMatrix*,GeneralMatrix*,MultipliedMatrix*,MatrixType); +static GeneralMatrix* + GeneralSolv(GeneralMatrix*,GeneralMatrix*,BaseMatrix*,MatrixType); +static GeneralMatrix* + GeneralSolvI(GeneralMatrix*,BaseMatrix*,MatrixType); +static GeneralMatrix* + GeneralKP(GeneralMatrix*,GeneralMatrix*,KPMatrix*,MatrixType); + +GeneralMatrix* MultipliedMatrix::Evaluate(MatrixType mt) +{ + REPORT + gm2 = ((BaseMatrix*&)bm2)->Evaluate(); + gm2 = gm2->Evaluate(gm2->Type().MultRHS()); // no symmetric on RHS + gm1=((BaseMatrix*&)bm1)->Evaluate(); +#ifdef TEMPS_DESTROYED_QUICKLY + GeneralMatrix* gmx; + Try { gmx = GeneralMult(gm1, gm2, this, mt); } + CatchAll { delete this; ReThrow; } + delete this; return gmx; +#else + return GeneralMult(gm1, gm2, this, mt); +#endif +} + +GeneralMatrix* SolvedMatrix::Evaluate(MatrixType mt) +{ + REPORT + gm1=((BaseMatrix*&)bm1)->Evaluate(); + gm2=((BaseMatrix*&)bm2)->Evaluate(); +#ifdef TEMPS_DESTROYED_QUICKLY + GeneralMatrix* gmx; + Try { gmx = GeneralSolv(gm1,gm2,this,mt); } + CatchAll { delete this; ReThrow; } + delete this; return gmx; +#else + return GeneralSolv(gm1,gm2,this,mt); +#endif +} + +GeneralMatrix* KPMatrix::Evaluate(MatrixType mt) +{ + REPORT + gm1=((BaseMatrix*&)bm1)->Evaluate(); + gm2=((BaseMatrix*&)bm2)->Evaluate(); +#ifdef TEMPS_DESTROYED_QUICKLY + GeneralMatrix* gmx; + Try { gmx = GeneralKP(gm1,gm2,this,mt); } + CatchAll { delete this; ReThrow; } + delete this; return gmx; +#else + return GeneralKP(gm1,gm2,this,mt); +#endif +} + +// routines for adding or subtracting matrices of identical storage structure + +static void Add(GeneralMatrix* gm, GeneralMatrix* gm1, GeneralMatrix* gm2) +{ + REPORT + Real* s1=gm1->Store(); Real* s2=gm2->Store(); + Real* s=gm->Store(); int i=gm->Storage() >> 2; + while (i--) + { + *s++ = *s1++ + *s2++; *s++ = *s1++ + *s2++; + *s++ = *s1++ + *s2++; *s++ = *s1++ + *s2++; + } + i=gm->Storage() & 3; while (i--) *s++ = *s1++ + *s2++; +} + +static void Add(GeneralMatrix* gm, GeneralMatrix* gm2) +{ + REPORT + Real* s2=gm2->Store(); Real* s=gm->Store(); int i=gm->Storage() >> 2; + while (i--) + { *s++ += *s2++; *s++ += *s2++; *s++ += *s2++; *s++ += *s2++; } + i=gm->Storage() & 3; while (i--) *s++ += *s2++; +} + +static void Subtract(GeneralMatrix* gm, GeneralMatrix* gm1, GeneralMatrix* gm2) +{ + REPORT + Real* s1=gm1->Store(); Real* s2=gm2->Store(); + Real* s=gm->Store(); int i=gm->Storage() >> 2; + while (i--) + { + *s++ = *s1++ - *s2++; *s++ = *s1++ - *s2++; + *s++ = *s1++ - *s2++; *s++ = *s1++ - *s2++; + } + i=gm->Storage() & 3; while (i--) *s++ = *s1++ - *s2++; +} + +static void Subtract(GeneralMatrix* gm, GeneralMatrix* gm2) +{ + REPORT + Real* s2=gm2->Store(); Real* s=gm->Store(); int i=gm->Storage() >> 2; + while (i--) + { *s++ -= *s2++; *s++ -= *s2++; *s++ -= *s2++; *s++ -= *s2++; } + i=gm->Storage() & 3; while (i--) *s++ -= *s2++; +} + +static void ReverseSubtract(GeneralMatrix* gm, GeneralMatrix* gm2) +{ + REPORT + Real* s2=gm2->Store(); Real* s=gm->Store(); int i=gm->Storage() >> 2; + while (i--) + { + *s = *s2++ - *s; s++; *s = *s2++ - *s; s++; + *s = *s2++ - *s; s++; *s = *s2++ - *s; s++; + } + i=gm->Storage() & 3; while (i--) { *s = *s2++ - *s; s++; } +} + +static void SP(GeneralMatrix* gm, GeneralMatrix* gm1, GeneralMatrix* gm2) +{ + REPORT + Real* s1=gm1->Store(); Real* s2=gm2->Store(); + Real* s=gm->Store(); int i=gm->Storage() >> 2; + while (i--) + { + *s++ = *s1++ * *s2++; *s++ = *s1++ * *s2++; + *s++ = *s1++ * *s2++; *s++ = *s1++ * *s2++; + } + i=gm->Storage() & 3; while (i--) *s++ = *s1++ * *s2++; +} + +static void SP(GeneralMatrix* gm, GeneralMatrix* gm2) +{ + REPORT + Real* s2=gm2->Store(); Real* s=gm->Store(); int i=gm->Storage() >> 2; + while (i--) + { *s++ *= *s2++; *s++ *= *s2++; *s++ *= *s2++; *s++ *= *s2++; } + i=gm->Storage() & 3; while (i--) *s++ *= *s2++; +} + +// routines for adding or subtracting matrices of different storage structure + +static void AddDS(GeneralMatrix* gm, GeneralMatrix* gm1, GeneralMatrix* gm2) +{ + REPORT + int nr = gm->Nrows(); + MatrixRow mr1(gm1, LoadOnEntry); MatrixRow mr2(gm2, LoadOnEntry); + MatrixRow mr(gm, StoreOnExit+DirectPart); + while (nr--) { mr.Add(mr1,mr2); mr1.Next(); mr2.Next(); mr.Next(); } +} + +static void AddDS(GeneralMatrix* gm, GeneralMatrix* gm2) +// Add into first argument +{ + REPORT + int nr = gm->Nrows(); + MatrixRow mr(gm, StoreOnExit+LoadOnEntry+DirectPart); + MatrixRow mr2(gm2, LoadOnEntry); + while (nr--) { mr.Add(mr2); mr.Next(); mr2.Next(); } +} + +static void SubtractDS + (GeneralMatrix* gm, GeneralMatrix* gm1, GeneralMatrix* gm2) +{ + REPORT + int nr = gm->Nrows(); + MatrixRow mr1(gm1, LoadOnEntry); MatrixRow mr2(gm2, LoadOnEntry); + MatrixRow mr(gm, StoreOnExit+DirectPart); + while (nr--) { mr.Sub(mr1,mr2); mr1.Next(); mr2.Next(); mr.Next(); } +} + +static void SubtractDS(GeneralMatrix* gm, GeneralMatrix* gm2) +{ + REPORT + int nr = gm->Nrows(); + MatrixRow mr(gm, LoadOnEntry+StoreOnExit+DirectPart); + MatrixRow mr2(gm2, LoadOnEntry); + while (nr--) { mr.Sub(mr2); mr.Next(); mr2.Next(); } +} + +static void ReverseSubtractDS(GeneralMatrix* gm, GeneralMatrix* gm2) +{ + REPORT + int nr = gm->Nrows(); + MatrixRow mr(gm, LoadOnEntry+StoreOnExit+DirectPart); + MatrixRow mr2(gm2, LoadOnEntry); + while (nr--) { mr.RevSub(mr2); mr2.Next(); mr.Next(); } +} + +static void SPDS(GeneralMatrix* gm, GeneralMatrix* gm1, GeneralMatrix* gm2) +{ + REPORT + int nr = gm->Nrows(); + MatrixRow mr1(gm1, LoadOnEntry); MatrixRow mr2(gm2, LoadOnEntry); + MatrixRow mr(gm, StoreOnExit+DirectPart); + while (nr--) { mr.Multiply(mr1,mr2); mr1.Next(); mr2.Next(); mr.Next(); } +} + +static void SPDS(GeneralMatrix* gm, GeneralMatrix* gm2) +// SP into first argument +{ + REPORT + int nr = gm->Nrows(); + MatrixRow mr(gm, StoreOnExit+LoadOnEntry+DirectPart); + MatrixRow mr2(gm2, LoadOnEntry); + while (nr--) { mr.Multiply(mr2); mr.Next(); mr2.Next(); } +} + +static GeneralMatrix* GeneralMult1(GeneralMatrix* gm1, GeneralMatrix* gm2, + MultipliedMatrix* mm, MatrixType mtx) +{ + REPORT + Tracer tr("GeneralMult1"); + int nr=gm1->Nrows(); int nc=gm2->Ncols(); + if (gm1->Ncols() !=gm2->Nrows()) + Throw(IncompatibleDimensionsException(*gm1, *gm2)); + GeneralMatrix* gmx = mtx.New(nr,nc,mm); + + MatrixCol mcx(gmx, StoreOnExit+DirectPart); + MatrixCol mc2(gm2, LoadOnEntry); + while (nc--) + { + MatrixRow mr1(gm1, LoadOnEntry, mcx.Skip()); + Real* el = mcx.Data(); // pointer to an element + int n = mcx.Storage(); + while (n--) { *(el++) = DotProd(mr1,mc2); mr1.Next(); } + mc2.Next(); mcx.Next(); + } + gmx->ReleaseAndDelete(); gm1->tDelete(); gm2->tDelete(); return gmx; +} + +static GeneralMatrix* GeneralMult2(GeneralMatrix* gm1, GeneralMatrix* gm2, + MultipliedMatrix* mm, MatrixType mtx) +{ + // version that accesses by row only - not good for thin matrices + // or column vectors in right hand term. + REPORT + Tracer tr("GeneralMult2"); + int nr=gm1->Nrows(); int nc=gm2->Ncols(); + if (gm1->Ncols() !=gm2->Nrows()) + Throw(IncompatibleDimensionsException(*gm1, *gm2)); + GeneralMatrix* gmx = mtx.New(nr,nc,mm); + + MatrixRow mrx(gmx, LoadOnEntry+StoreOnExit+DirectPart); + MatrixRow mr1(gm1, LoadOnEntry); + while (nr--) + { + MatrixRow mr2(gm2, LoadOnEntry, mr1.Skip()); + Real* el = mr1.Data(); // pointer to an element + int n = mr1.Storage(); + mrx.Zero(); + while (n--) { mrx.AddScaled(mr2, *el++); mr2.Next(); } + mr1.Next(); mrx.Next(); + } + gmx->ReleaseAndDelete(); gm1->tDelete(); gm2->tDelete(); return gmx; +} + +static GeneralMatrix* mmMult(GeneralMatrix* gm1, GeneralMatrix* gm2) +{ + // matrix multiplication for type Matrix only + REPORT + Tracer tr("MatrixMult"); + + int nr=gm1->Nrows(); int ncr=gm1->Ncols(); int nc=gm2->Ncols(); + if (ncr != gm2->Nrows()) Throw(IncompatibleDimensionsException(*gm1,*gm2)); + + Matrix* gm = new Matrix(nr,nc); MatrixErrorNoSpace(gm); + + Real* s1=gm1->Store(); Real* s2=gm2->Store(); Real* s=gm->Store(); + + if (ncr) + { + while (nr--) + { + Real* s2x = s2; int j = ncr; + Real* sx = s; Real f = *s1++; int k = nc; + while (k--) *sx++ = f * *s2x++; + while (--j) + { sx = s; f = *s1++; k = nc; while (k--) *sx++ += f * *s2x++; } + s = sx; + } + } + else *gm = 0.0; + + gm->ReleaseAndDelete(); gm1->tDelete(); gm2->tDelete(); return gm; +} + +static GeneralMatrix* GeneralMult(GeneralMatrix* gm1, GeneralMatrix* gm2, + MultipliedMatrix* mm, MatrixType mtx) +{ + if ( Rectangular(gm1->Type(), gm2->Type(), mtx)) + { + REPORT + return mmMult(gm1, gm2); + } + else + { + REPORT + Compare(gm1->Type() * gm2->Type(),mtx); + int nr = gm2->Nrows(); int nc = gm2->Ncols(); + if (nc <= 5 && nr > nc) { REPORT return GeneralMult1(gm1, gm2, mm, mtx); } + else { REPORT return GeneralMult2(gm1, gm2, mm, mtx); } + } +} + +static GeneralMatrix* GeneralKP(GeneralMatrix* gm1, GeneralMatrix* gm2, + KPMatrix* kp, MatrixType mtx) +{ + REPORT + Tracer tr("GeneralKP"); + int nr1 = gm1->Nrows(); int nc1 = gm1->Ncols(); + int nr2 = gm2->Nrows(); int nc2 = gm2->Ncols(); + Compare((gm1->Type()).KP(gm2->Type()),mtx); + GeneralMatrix* gmx = mtx.New(nr1*nr2, nc1*nc2, kp); + MatrixRow mrx(gmx, LoadOnEntry+StoreOnExit+DirectPart); + MatrixRow mr1(gm1, LoadOnEntry); + for (int i = 1; i <= nr1; ++i) + { + MatrixRow mr2(gm2, LoadOnEntry); + for (int j = 1; j <= nr2; ++j) + { mrx.KP(mr1,mr2); mr2.Next(); mrx.Next(); } + mr1.Next(); + } + gmx->ReleaseAndDelete(); gm1->tDelete(); gm2->tDelete(); return gmx; +} + +static GeneralMatrix* GeneralSolv(GeneralMatrix* gm1, GeneralMatrix* gm2, + BaseMatrix* sm, MatrixType mtx) +{ + REPORT + Tracer tr("GeneralSolv"); + Compare(gm1->Type().i() * gm2->Type(),mtx); + int nr = gm1->Nrows(); + if (nr != gm1->Ncols()) Throw(NotSquareException(*gm1)); + int nc = gm2->Ncols(); + if (gm1->Ncols() != gm2->Nrows()) + Throw(IncompatibleDimensionsException(*gm1, *gm2)); + GeneralMatrix* gmx = mtx.New(nr,nc,sm); MatrixErrorNoSpace(gmx); + Real* r = new Real [nr]; MatrixErrorNoSpace(r); + MONITOR_REAL_NEW("Make (GenSolv)",nr,r) + GeneralMatrix* gms = gm1->MakeSolver(); + Try + { + + MatrixColX mcx(gmx, r, StoreOnExit+DirectPart); // copy to and from r + // this must be inside Try so mcx is destroyed before gmx + MatrixColX mc2(gm2, r, LoadOnEntry); + while (nc--) { gms->Solver(mcx, mc2); mcx.Next(); mc2.Next(); } + } + CatchAll + { + if (gms) gms->tDelete(); + delete gmx; // <-------------------- + gm2->tDelete(); + MONITOR_REAL_DELETE("Delete (GenSolv)",nr,r) + // ATandT version 2.1 gives an internal error + delete [] r; + ReThrow; + } + gms->tDelete(); gmx->ReleaseAndDelete(); gm2->tDelete(); + MONITOR_REAL_DELETE("Delete (GenSolv)",nr,r) + // ATandT version 2.1 gives an internal error + delete [] r; + return gmx; +} + +// version for inverses - gm2 is identity +static GeneralMatrix* GeneralSolvI(GeneralMatrix* gm1, BaseMatrix* sm, + MatrixType mtx) +{ + REPORT + Tracer tr("GeneralSolvI"); + Compare(gm1->Type().i(),mtx); + int nr = gm1->Nrows(); + if (nr != gm1->Ncols()) Throw(NotSquareException(*gm1)); + int nc = nr; + // DiagonalMatrix I(nr); I = 1; + IdentityMatrix I(nr); + GeneralMatrix* gmx = mtx.New(nr,nc,sm); MatrixErrorNoSpace(gmx); + Real* r = new Real [nr]; MatrixErrorNoSpace(r); + MONITOR_REAL_NEW("Make (GenSolvI)",nr,r) + GeneralMatrix* gms = gm1->MakeSolver(); + Try + { + + MatrixColX mcx(gmx, r, StoreOnExit+DirectPart); // copy to and from r + // this must be inside Try so mcx is destroyed before gmx + MatrixColX mc2(&I, r, LoadOnEntry); + while (nc--) { gms->Solver(mcx, mc2); mcx.Next(); mc2.Next(); } + } + CatchAll + { + if (gms) gms->tDelete(); + delete gmx; + MONITOR_REAL_DELETE("Delete (GenSolvI)",nr,r) + // ATandT version 2.1 gives an internal error + delete [] r; + ReThrow; + } + gms->tDelete(); gmx->ReleaseAndDelete(); + MONITOR_REAL_DELETE("Delete (GenSolvI)",nr,r) + // ATandT version 2.1 gives an internal error + delete [] r; + return gmx; +} + +GeneralMatrix* InvertedMatrix::Evaluate(MatrixType mtx) +{ + // Matrix Inversion - use solve routines + Tracer tr("InvertedMatrix::Evaluate"); + REPORT + gm=((BaseMatrix*&)bm)->Evaluate(); +#ifdef TEMPS_DESTROYED_QUICKLY + GeneralMatrix* gmx; + Try { gmx = GeneralSolvI(gm,this,mtx); } + CatchAll { delete this; ReThrow; } + delete this; return gmx; +#else + return GeneralSolvI(gm,this,mtx); +#endif +} + +//*************************** New versions ************************ + +GeneralMatrix* AddedMatrix::Evaluate(MatrixType mtd) +{ + REPORT + Tracer tr("AddedMatrix::Evaluate"); + gm1=((BaseMatrix*&)bm1)->Evaluate(); gm2=((BaseMatrix*&)bm2)->Evaluate(); + int nr=gm1->Nrows(); int nc=gm1->Ncols(); + if (nr!=gm2->Nrows() || nc!=gm2->Ncols()) + { + Try { Throw(IncompatibleDimensionsException(*gm1, *gm2)); } + CatchAll + { + gm1->tDelete(); gm2->tDelete(); +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + ReThrow; + } + } + MatrixType mt1 = gm1->Type(), mt2 = gm2->Type(); MatrixType mts = mt1 + mt2; + if (!mtd) { REPORT mtd = mts; } + else if (!(mtd.DataLossOK || mtd >= mts)) + { + REPORT + gm1->tDelete(); gm2->tDelete(); +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + Throw(ProgramException("Illegal Conversion", mts, mtd)); + } + GeneralMatrix* gmx; + bool c1 = (mtd == mt1), c2 = (mtd == mt2); + if ( c1 && c2 && (gm1->SimpleAddOK(gm2) == 0) ) + { + if (gm1->reuse()) { REPORT Add(gm1,gm2); gm2->tDelete(); gmx = gm1; } + else if (gm2->reuse()) { REPORT Add(gm2,gm1); gmx = gm2; } + else + { + REPORT + // what if new throws an exception + Try { gmx = mt1.New(nr,nc,this); } + CatchAll + { +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + ReThrow; + } + gmx->ReleaseAndDelete(); Add(gmx,gm1,gm2); + } + } + else + { + if (c1 && c2) + { + short SAO = gm1->SimpleAddOK(gm2); + if (SAO & 1) { REPORT c1 = false; } + if (SAO & 2) { REPORT c2 = false; } + } + if (c1 && gm1->reuse() ) // must have type test first + { REPORT AddDS(gm1,gm2); gm2->tDelete(); gmx = gm1; } + else if (c2 && gm2->reuse() ) + { REPORT AddDS(gm2,gm1); if (!c1) gm1->tDelete(); gmx = gm2; } + else + { + REPORT + Try { gmx = mtd.New(nr,nc,this); } + CatchAll + { + if (!c1) gm1->tDelete(); if (!c2) gm2->tDelete(); +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + ReThrow; + } + AddDS(gmx,gm1,gm2); + if (!c1) gm1->tDelete(); if (!c2) gm2->tDelete(); + gmx->ReleaseAndDelete(); + } + } +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + return gmx; +} + +GeneralMatrix* SubtractedMatrix::Evaluate(MatrixType mtd) +{ + REPORT + Tracer tr("SubtractedMatrix::Evaluate"); + gm1=((BaseMatrix*&)bm1)->Evaluate(); gm2=((BaseMatrix*&)bm2)->Evaluate(); + int nr=gm1->Nrows(); int nc=gm1->Ncols(); + if (nr!=gm2->Nrows() || nc!=gm2->Ncols()) + { + Try { Throw(IncompatibleDimensionsException(*gm1, *gm2)); } + CatchAll + { + gm1->tDelete(); gm2->tDelete(); +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + ReThrow; + } + } + MatrixType mt1 = gm1->Type(), mt2 = gm2->Type(); MatrixType mts = mt1 + mt2; + if (!mtd) { REPORT mtd = mts; } + else if (!(mtd.DataLossOK || mtd >= mts)) + { + gm1->tDelete(); gm2->tDelete(); +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + Throw(ProgramException("Illegal Conversion", mts, mtd)); + } + GeneralMatrix* gmx; + bool c1 = (mtd == mt1), c2 = (mtd == mt2); + if ( c1 && c2 && (gm1->SimpleAddOK(gm2) == 0) ) + { + if (gm1->reuse()) { REPORT Subtract(gm1,gm2); gm2->tDelete(); gmx = gm1; } + else if (gm2->reuse()) { REPORT ReverseSubtract(gm2,gm1); gmx = gm2; } + else + { + REPORT + Try { gmx = mt1.New(nr,nc,this); } + CatchAll + { +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + ReThrow; + } + gmx->ReleaseAndDelete(); Subtract(gmx,gm1,gm2); + } + } + else + { + if (c1 && c2) + { + short SAO = gm1->SimpleAddOK(gm2); + if (SAO & 1) { REPORT c1 = false; } + if (SAO & 2) { REPORT c2 = false; } + } + if (c1 && gm1->reuse() ) // must have type test first + { REPORT SubtractDS(gm1,gm2); gm2->tDelete(); gmx = gm1; } + else if (c2 && gm2->reuse() ) + { + REPORT ReverseSubtractDS(gm2,gm1); + if (!c1) gm1->tDelete(); gmx = gm2; + } + else + { + REPORT + // what if New throws and exception + Try { gmx = mtd.New(nr,nc,this); } + CatchAll + { + if (!c1) gm1->tDelete(); if (!c2) gm2->tDelete(); +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + ReThrow; + } + SubtractDS(gmx,gm1,gm2); + if (!c1) gm1->tDelete(); if (!c2) gm2->tDelete(); + gmx->ReleaseAndDelete(); + } + } +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + return gmx; +} + +GeneralMatrix* SPMatrix::Evaluate(MatrixType mtd) +{ + REPORT + Tracer tr("SPMatrix::Evaluate"); + gm1=((BaseMatrix*&)bm1)->Evaluate(); gm2=((BaseMatrix*&)bm2)->Evaluate(); + int nr=gm1->Nrows(); int nc=gm1->Ncols(); + if (nr!=gm2->Nrows() || nc!=gm2->Ncols()) + { + Try { Throw(IncompatibleDimensionsException(*gm1, *gm2)); } + CatchAll + { + gm1->tDelete(); gm2->tDelete(); +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + ReThrow; + } + } + MatrixType mt1 = gm1->Type(), mt2 = gm2->Type(); + MatrixType mts = mt1.SP(mt2); + if (!mtd) { REPORT mtd = mts; } + else if (!(mtd.DataLossOK || mtd >= mts)) + { + gm1->tDelete(); gm2->tDelete(); +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + Throw(ProgramException("Illegal Conversion", mts, mtd)); + } + GeneralMatrix* gmx; + bool c1 = (mtd == mt1), c2 = (mtd == mt2); + if ( c1 && c2 && (gm1->SimpleAddOK(gm2) == 0) ) + { + if (gm1->reuse()) { REPORT SP(gm1,gm2); gm2->tDelete(); gmx = gm1; } + else if (gm2->reuse()) { REPORT SP(gm2,gm1); gmx = gm2; } + else + { + REPORT + Try { gmx = mt1.New(nr,nc,this); } + CatchAll + { +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + ReThrow; + } + gmx->ReleaseAndDelete(); SP(gmx,gm1,gm2); + } + } + else + { + if (c1 && c2) + { + short SAO = gm1->SimpleAddOK(gm2); + if (SAO & 1) { REPORT c2 = false; } // c1 and c2 swapped + if (SAO & 2) { REPORT c1 = false; } + } + if (c1 && gm1->reuse() ) // must have type test first + { REPORT SPDS(gm1,gm2); gm2->tDelete(); gmx = gm1; } + else if (c2 && gm2->reuse() ) + { REPORT SPDS(gm2,gm1); if (!c1) gm1->tDelete(); gmx = gm2; } + else + { + REPORT + // what if New throws and exception + Try { gmx = mtd.New(nr,nc,this); } + CatchAll + { + if (!c1) gm1->tDelete(); if (!c2) gm2->tDelete(); +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + ReThrow; + } + SPDS(gmx,gm1,gm2); + if (!c1) gm1->tDelete(); if (!c2) gm2->tDelete(); + gmx->ReleaseAndDelete(); + } + } +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + return gmx; +} + + + +//*************************** norm functions ****************************/ + +Real BaseMatrix::Norm1() const +{ + // maximum of sum of absolute values of a column + REPORT + GeneralMatrix* gm = ((BaseMatrix&)*this).Evaluate(); + int nc = gm->Ncols(); Real value = 0.0; + MatrixCol mc(gm, LoadOnEntry); + while (nc--) + { Real v = mc.SumAbsoluteValue(); if (value < v) value = v; mc.Next(); } + gm->tDelete(); return value; +} + +Real BaseMatrix::NormInfinity() const +{ + // maximum of sum of absolute values of a row + REPORT + GeneralMatrix* gm = ((BaseMatrix&)*this).Evaluate(); + int nr = gm->Nrows(); Real value = 0.0; + MatrixRow mr(gm, LoadOnEntry); + while (nr--) + { Real v = mr.SumAbsoluteValue(); if (value < v) value = v; mr.Next(); } + gm->tDelete(); return value; +} + +//********************** Concatenation and stacking *************************/ + +GeneralMatrix* ConcatenatedMatrix::Evaluate(MatrixType mtx) +{ + REPORT + Tracer tr("Concatenate"); +#ifdef TEMPS_DESTROYED_QUICKLY + Try + { + gm2 = ((BaseMatrix*&)bm2)->Evaluate(); + gm1 = ((BaseMatrix*&)bm1)->Evaluate(); + Compare(gm1->Type() | gm2->Type(),mtx); + int nr=gm1->Nrows(); int nc = gm1->Ncols() + gm2->Ncols(); + if (nr != gm2->Nrows()) + Throw(IncompatibleDimensionsException(*gm1, *gm2)); + GeneralMatrix* gmx = mtx.New(nr,nc,this); + MatrixRow mr1(gm1, LoadOnEntry); MatrixRow mr2(gm2, LoadOnEntry); + MatrixRow mr(gmx, StoreOnExit+DirectPart); + while (nr--) { mr.ConCat(mr1,mr2); mr1.Next(); mr2.Next(); mr.Next(); } + gmx->ReleaseAndDelete(); gm1->tDelete(); gm2->tDelete(); delete this; + return gmx; + } + CatchAll { delete this; ReThrow; } +#ifndef UseExceptions + return 0; +#endif +#else + gm2 = ((BaseMatrix*&)bm2)->Evaluate(); + gm1 = ((BaseMatrix*&)bm1)->Evaluate(); + Compare(gm1->Type() | gm2->Type(),mtx); + int nr=gm1->Nrows(); int nc = gm1->Ncols() + gm2->Ncols(); + if (nr != gm2->Nrows()) + Throw(IncompatibleDimensionsException(*gm1, *gm2)); + GeneralMatrix* gmx = mtx.New(nr,nc,this); + MatrixRow mr1(gm1, LoadOnEntry); MatrixRow mr2(gm2, LoadOnEntry); + MatrixRow mr(gmx, StoreOnExit+DirectPart); + while (nr--) { mr.ConCat(mr1,mr2); mr1.Next(); mr2.Next(); mr.Next(); } + gmx->ReleaseAndDelete(); gm1->tDelete(); gm2->tDelete(); return gmx; +#endif +} + +GeneralMatrix* StackedMatrix::Evaluate(MatrixType mtx) +{ + REPORT + Tracer tr("Stack"); +#ifdef TEMPS_DESTROYED_QUICKLY + Try + { + gm2 = ((BaseMatrix*&)bm2)->Evaluate(); + gm1 = ((BaseMatrix*&)bm1)->Evaluate(); + Compare(gm1->Type() & gm2->Type(),mtx); + int nc=gm1->Ncols(); + int nr1 = gm1->Nrows(); int nr2 = gm2->Nrows(); + if (nc != gm2->Ncols()) + Throw(IncompatibleDimensionsException(*gm1, *gm2)); + GeneralMatrix* gmx = mtx.New(nr1+nr2,nc,this); + MatrixRow mr1(gm1, LoadOnEntry); MatrixRow mr2(gm2, LoadOnEntry); + MatrixRow mr(gmx, StoreOnExit+DirectPart); + while (nr1--) { mr.Copy(mr1); mr1.Next(); mr.Next(); } + while (nr2--) { mr.Copy(mr2); mr2.Next(); mr.Next(); } + gmx->ReleaseAndDelete(); gm1->tDelete(); gm2->tDelete(); delete this; + return gmx; + } + CatchAll { delete this; ReThrow; } +#ifndef UseExceptions + return 0; +#endif +#else + gm2 = ((BaseMatrix*&)bm2)->Evaluate(); + gm1 = ((BaseMatrix*&)bm1)->Evaluate(); + Compare(gm1->Type() & gm2->Type(),mtx); + int nc=gm1->Ncols(); + int nr1 = gm1->Nrows(); int nr2 = gm2->Nrows(); + if (nc != gm2->Ncols()) + Throw(IncompatibleDimensionsException(*gm1, *gm2)); + GeneralMatrix* gmx = mtx.New(nr1+nr2,nc,this); + MatrixRow mr1(gm1, LoadOnEntry); MatrixRow mr2(gm2, LoadOnEntry); + MatrixRow mr(gmx, StoreOnExit+DirectPart); + while (nr1--) { mr.Copy(mr1); mr1.Next(); mr.Next(); } + while (nr2--) { mr.Copy(mr2); mr2.Next(); mr.Next(); } + gmx->ReleaseAndDelete(); gm1->tDelete(); gm2->tDelete(); return gmx; +#endif +} + +// ************************* equality of matrices ******************** // + +static bool RealEqual(Real* s1, Real* s2, int n) +{ + int i = n >> 2; + while (i--) + { + if (*s1++ != *s2++) return false; if (*s1++ != *s2++) return false; + if (*s1++ != *s2++) return false; if (*s1++ != *s2++) return false; + } + i = n & 3; while (i--) if (*s1++ != *s2++) return false; + return true; +} + +static bool intEqual(int* s1, int* s2, int n) +{ + int i = n >> 2; + while (i--) + { + if (*s1++ != *s2++) return false; if (*s1++ != *s2++) return false; + if (*s1++ != *s2++) return false; if (*s1++ != *s2++) return false; + } + i = n & 3; while (i--) if (*s1++ != *s2++) return false; + return true; +} + + +bool operator==(const BaseMatrix& A, const BaseMatrix& B) +{ + Tracer tr("BaseMatrix =="); + REPORT + GeneralMatrix* gmA = ((BaseMatrix&)A).Evaluate(); + GeneralMatrix* gmB = ((BaseMatrix&)B).Evaluate(); + + if (gmA == gmB) // same matrix + { REPORT gmA->tDelete(); return true; } + + if ( gmA->Nrows() != gmB->Nrows() || gmA->Ncols() != gmB->Ncols() ) + // different dimensions + { REPORT gmA->tDelete(); gmB->tDelete(); return false; } + + // check for CroutMatrix or BandLUMatrix + MatrixType AType = gmA->Type(); MatrixType BType = gmB->Type(); + if (AType.CannotConvert() || BType.CannotConvert() ) + { + REPORT + bool bx = gmA->IsEqual(*gmB); + gmA->tDelete(); gmB->tDelete(); + return bx; + } + + // is matrix storage the same + // will need to modify if further matrix structures are introduced + if (AType == BType && gmA->BandWidth() == gmB->BandWidth()) + { // compare store + REPORT + bool bx = RealEqual(gmA->Store(),gmB->Store(),gmA->Storage()); + gmA->tDelete(); gmB->tDelete(); + return bx; + } + + // matrix storage different - just subtract + REPORT return IsZero(*gmA-*gmB); +} + +bool operator==(const GeneralMatrix& A, const GeneralMatrix& B) +{ + Tracer tr("GeneralMatrix =="); + // May or may not call tDeletes + REPORT + + if (&A == &B) // same matrix + { REPORT return true; } + + if ( A.Nrows() != B.Nrows() || A.Ncols() != B.Ncols() ) + { REPORT return false; } // different dimensions + + // check for CroutMatrix or BandLUMatrix + MatrixType AType = A.Type(); MatrixType BType = B.Type(); + if (AType.CannotConvert() || BType.CannotConvert() ) + { REPORT return A.IsEqual(B); } + + // is matrix storage the same + // will need to modify if further matrix structures are introduced + if (AType == BType && A.BandWidth() == B.BandWidth()) + { REPORT return RealEqual(A.Store(),B.Store(),A.Storage()); } + + // matrix storage different - just subtract + REPORT return IsZero(A-B); +} + +bool GeneralMatrix::IsZero() const +{ + REPORT + Real* s=store; int i = storage >> 2; + while (i--) + { + if (*s++) return false; if (*s++) return false; + if (*s++) return false; if (*s++) return false; + } + i = storage & 3; while (i--) if (*s++) return false; + return true; +} + +bool IsZero(const BaseMatrix& A) +{ + Tracer tr("BaseMatrix::IsZero"); + REPORT + GeneralMatrix* gm1 = 0; bool bx; + Try { gm1=((BaseMatrix&)A).Evaluate(); bx = gm1->IsZero(); } + CatchAll { if (gm1) gm1->tDelete(); ReThrow; } + gm1->tDelete(); + return bx; +} + +// IsEqual functions - insist matrices are of same type +// as well as equal values to be equal + +bool GeneralMatrix::IsEqual(const GeneralMatrix& A) const +{ + Tracer tr("GeneralMatrix IsEqual"); + if (A.Type() != Type()) // not same types + { REPORT return false; } + if (&A == this) // same matrix + { REPORT return true; } + if (A.nrows != nrows || A.ncols != ncols) + // different dimensions + { REPORT return false; } + // is matrix storage the same - compare store + REPORT + return RealEqual(A.store,store,storage); +} + +bool CroutMatrix::IsEqual(const GeneralMatrix& A) const +{ + Tracer tr("CroutMatrix IsEqual"); + if (A.Type() != Type()) // not same types + { REPORT return false; } + if (&A == this) // same matrix + { REPORT return true; } + if (A.nrows != nrows || A.ncols != ncols) + // different dimensions + { REPORT return false; } + // is matrix storage the same - compare store + REPORT + return RealEqual(A.store,store,storage) + && intEqual(((CroutMatrix&)A).indx, indx, nrows); +} + + +bool BandLUMatrix::IsEqual(const GeneralMatrix& A) const +{ + Tracer tr("BandLUMatrix IsEqual"); + if (A.Type() != Type()) // not same types + { REPORT return false; } + if (&A == this) // same matrix + { REPORT return true; } + if ( A.Nrows() != nrows || A.Ncols() != ncols + || ((BandLUMatrix&)A).m1 != m1 || ((BandLUMatrix&)A).m2 != m2 ) + // different dimensions + { REPORT return false; } + + // matrix storage the same - compare store + REPORT + return RealEqual(A.Store(),store,storage) + && RealEqual(((BandLUMatrix&)A).store2,store2,storage2) + && intEqual(((BandLUMatrix&)A).indx, indx, nrows); +} + + +#ifdef use_namespace +} +#endif + + diff --git a/3rdparty/newmat/newmat8.cpp b/3rdparty/newmat/newmat8.cpp new file mode 100644 index 0000000..66fd916 --- /dev/null +++ b/3rdparty/newmat/newmat8.cpp @@ -0,0 +1,734 @@ +//$$ newmat8.cpp Advanced LU transform, scalar functions + +// Copyright (C) 1991,2,3,4,8: R B Davies + +#define WANT_MATH + +#include "include.h" + +#include "newmat.h" +#include "newmatrc.h" +#include "precisio.h" + +#ifdef use_namespace +namespace NEWMAT { +#endif + + +#ifdef DO_REPORT +#define REPORT { static ExeCounter ExeCount(__LINE__,8); ++ExeCount; } +#else +#define REPORT {} +#endif + + +/************************** LU transformation ****************************/ + +void CroutMatrix::ludcmp() +// LU decomposition from Golub & Van Loan, algorithm 3.4.1, (the "outer +// product" version). +// This replaces the code derived from Numerical Recipes in C in previous +// versions of newmat and being row oriented runs much faster with large +// matrices. +{ + REPORT + Tracer trace( "Crout(ludcmp)" ); sing = false; + Real* akk = store; // runs down diagonal + + Real big = fabs(*akk); int mu = 0; Real* ai = akk; int k; + + for (k = 1; k < nrows; k++) + { + ai += nrows; const Real trybig = fabs(*ai); + if (big < trybig) { big = trybig; mu = k; } + } + + + if (nrows) for (k = 0;;) + { + /* + int mu1; + { + Real big = fabs(*akk); mu1 = k; Real* ai = akk; int i; + + for (i = k+1; i < nrows; i++) + { + ai += nrows; const Real trybig = fabs(*ai); + if (big < trybig) { big = trybig; mu1 = i; } + } + } + if (mu1 != mu) cout << k << " " << mu << " " << mu1 << endl; + */ + + indx[k] = mu; + + if (mu != k) //row swap + { + Real* a1 = store + nrows * k; Real* a2 = store + nrows * mu; d = !d; + int j = nrows; + while (j--) { const Real temp = *a1; *a1++ = *a2; *a2++ = temp; } + } + + Real diag = *akk; big = 0; mu = k + 1; + if (diag != 0) + { + ai = akk; int i = nrows - k - 1; + while (i--) + { + ai += nrows; Real* al = ai; Real mult = *al / diag; *al = mult; + int l = nrows - k - 1; Real* aj = akk; + // work out the next pivot as part of this loop + // this saves a column operation + if (l-- != 0) + { + *(++al) -= (mult * *(++aj)); + const Real trybig = fabs(*al); + if (big < trybig) { big = trybig; mu = nrows - i - 1; } + while (l--) *(++al) -= (mult * *(++aj)); + } + } + } + else sing = true; + if (++k == nrows) break; // so next line won't overflow + akk += nrows + 1; + } +} + +void CroutMatrix::lubksb(Real* B, int mini) +{ + REPORT + // this has been adapted from Numerical Recipes in C. The code has been + // substantially streamlined, so I do not think much of the original + // copyright remains. However there is not much opportunity for + // variation in the code, so it is still similar to the NR code. + // I follow the NR code in skipping over initial zeros in the B vector. + + Tracer trace("Crout(lubksb)"); + if (sing) Throw(SingularException(*this)); + int i, j, ii = nrows; // ii initialised : B might be all zeros + + + // scan for first non-zero in B + for (i = 0; i < nrows; i++) + { + int ip = indx[i]; Real temp = B[ip]; B[ip] = B[i]; B[i] = temp; + if (temp != 0.0) { ii = i; break; } + } + + Real* bi; Real* ai; + i = ii + 1; + + if (i < nrows) + { + bi = B + ii; ai = store + ii + i * nrows; + for (;;) + { + int ip = indx[i]; Real sum = B[ip]; B[ip] = B[i]; + Real* aij = ai; Real* bj = bi; j = i - ii; + while (j--) sum -= *aij++ * *bj++; + B[i] = sum; + if (++i == nrows) break; + ai += nrows; + } + } + + ai = store + nrows * nrows; + + for (i = nrows - 1; i >= mini; i--) + { + Real* bj = B+i; ai -= nrows; Real* ajx = ai+i; + Real sum = *bj; Real diag = *ajx; + j = nrows - i; while(--j) sum -= *(++ajx) * *(++bj); + B[i] = sum / diag; + } +} + +/****************************** scalar functions ****************************/ + +inline Real square(Real x) { return x*x; } + +Real GeneralMatrix::SumSquare() const +{ + REPORT + Real sum = 0.0; int i = storage; Real* s = store; + while (i--) sum += square(*s++); + ((GeneralMatrix&)*this).tDelete(); return sum; +} + +Real GeneralMatrix::SumAbsoluteValue() const +{ + REPORT + Real sum = 0.0; int i = storage; Real* s = store; + while (i--) sum += fabs(*s++); + ((GeneralMatrix&)*this).tDelete(); return sum; +} + +Real GeneralMatrix::Sum() const +{ + REPORT + Real sum = 0.0; int i = storage; Real* s = store; + while (i--) sum += *s++; + ((GeneralMatrix&)*this).tDelete(); return sum; +} + +// maxima and minima + +// There are three sets of routines +// MaximumAbsoluteValue, MinimumAbsoluteValue, Maximum, Minimum +// ... these find just the maxima and minima +// MaximumAbsoluteValue1, MinimumAbsoluteValue1, Maximum1, Minimum1 +// ... these find the maxima and minima and their locations in a +// one dimensional object +// MaximumAbsoluteValue2, MinimumAbsoluteValue2, Maximum2, Minimum2 +// ... these find the maxima and minima and their locations in a +// two dimensional object + +// If the matrix has no values throw an exception + +// If we do not want the location find the maximum or minimum on the +// array stored by GeneralMatrix +// This won't work for BandMatrices. We call ClearCorner for +// MaximumAbsoluteValue but for the others use the AbsoluteMinimumValue2 +// version and discard the location. + +// For one dimensional objects, when we want the location of the +// maximum or minimum, work with the array stored by GeneralMatrix + +// For two dimensional objects where we want the location of the maximum or +// minimum proceed as follows: + +// For rectangular matrices use the array stored by GeneralMatrix and +// deduce the location from the location in the GeneralMatrix + +// For other two dimensional matrices use the Matrix Row routine to find the +// maximum or minimum for each row. + +static void NullMatrixError(const GeneralMatrix* gm) +{ + ((GeneralMatrix&)*gm).tDelete(); + Throw(ProgramException("Maximum or minimum of null matrix")); +} + +Real GeneralMatrix::MaximumAbsoluteValue() const +{ + REPORT + if (storage == 0) NullMatrixError(this); + Real maxval = 0.0; int l = storage; Real* s = store; + while (l--) { Real a = fabs(*s++); if (maxval < a) maxval = a; } + ((GeneralMatrix&)*this).tDelete(); return maxval; +} + +Real GeneralMatrix::MaximumAbsoluteValue1(int& i) const +{ + REPORT + if (storage == 0) NullMatrixError(this); + Real maxval = 0.0; int l = storage; Real* s = store; int li = storage; + while (l--) + { Real a = fabs(*s++); if (maxval <= a) { maxval = a; li = l; } } + i = storage - li; + ((GeneralMatrix&)*this).tDelete(); return maxval; +} + +Real GeneralMatrix::MinimumAbsoluteValue() const +{ + REPORT + if (storage == 0) NullMatrixError(this); + int l = storage - 1; Real* s = store; Real minval = fabs(*s++); + while (l--) { Real a = fabs(*s++); if (minval > a) minval = a; } + ((GeneralMatrix&)*this).tDelete(); return minval; +} + +Real GeneralMatrix::MinimumAbsoluteValue1(int& i) const +{ + REPORT + if (storage == 0) NullMatrixError(this); + int l = storage - 1; Real* s = store; Real minval = fabs(*s++); int li = l; + while (l--) + { Real a = fabs(*s++); if (minval >= a) { minval = a; li = l; } } + i = storage - li; + ((GeneralMatrix&)*this).tDelete(); return minval; +} + +Real GeneralMatrix::Maximum() const +{ + REPORT + if (storage == 0) NullMatrixError(this); + int l = storage - 1; Real* s = store; Real maxval = *s++; + while (l--) { Real a = *s++; if (maxval < a) maxval = a; } + ((GeneralMatrix&)*this).tDelete(); return maxval; +} + +Real GeneralMatrix::Maximum1(int& i) const +{ + REPORT + if (storage == 0) NullMatrixError(this); + int l = storage - 1; Real* s = store; Real maxval = *s++; int li = l; + while (l--) { Real a = *s++; if (maxval <= a) { maxval = a; li = l; } } + i = storage - li; + ((GeneralMatrix&)*this).tDelete(); return maxval; +} + +Real GeneralMatrix::Minimum() const +{ + REPORT + if (storage == 0) NullMatrixError(this); + int l = storage - 1; Real* s = store; Real minval = *s++; + while (l--) { Real a = *s++; if (minval > a) minval = a; } + ((GeneralMatrix&)*this).tDelete(); return minval; +} + +Real GeneralMatrix::Minimum1(int& i) const +{ + REPORT + if (storage == 0) NullMatrixError(this); + int l = storage - 1; Real* s = store; Real minval = *s++; int li = l; + while (l--) { Real a = *s++; if (minval >= a) { minval = a; li = l; } } + i = storage - li; + ((GeneralMatrix&)*this).tDelete(); return minval; +} + +Real GeneralMatrix::MaximumAbsoluteValue2(int& i, int& j) const +{ + REPORT + if (storage == 0) NullMatrixError(this); + Real maxval = 0.0; int nr = Nrows(); + MatrixRow mr((GeneralMatrix*)this, LoadOnEntry+DirectPart); + for (int r = 1; r <= nr; r++) + { + int c; maxval = mr.MaximumAbsoluteValue1(maxval, c); + if (c > 0) { i = r; j = c; } + mr.Next(); + } + ((GeneralMatrix&)*this).tDelete(); return maxval; +} + +Real GeneralMatrix::MinimumAbsoluteValue2(int& i, int& j) const +{ + REPORT + if (storage == 0) NullMatrixError(this); + Real minval = FloatingPointPrecision::Maximum(); int nr = Nrows(); + MatrixRow mr((GeneralMatrix*)this, LoadOnEntry+DirectPart); + for (int r = 1; r <= nr; r++) + { + int c; minval = mr.MinimumAbsoluteValue1(minval, c); + if (c > 0) { i = r; j = c; } + mr.Next(); + } + ((GeneralMatrix&)*this).tDelete(); return minval; +} + +Real GeneralMatrix::Maximum2(int& i, int& j) const +{ + REPORT + if (storage == 0) NullMatrixError(this); + Real maxval = -FloatingPointPrecision::Maximum(); int nr = Nrows(); + MatrixRow mr((GeneralMatrix*)this, LoadOnEntry+DirectPart); + for (int r = 1; r <= nr; r++) + { + int c; maxval = mr.Maximum1(maxval, c); + if (c > 0) { i = r; j = c; } + mr.Next(); + } + ((GeneralMatrix&)*this).tDelete(); return maxval; +} + +Real GeneralMatrix::Minimum2(int& i, int& j) const +{ + REPORT + if (storage == 0) NullMatrixError(this); + Real minval = FloatingPointPrecision::Maximum(); int nr = Nrows(); + MatrixRow mr((GeneralMatrix*)this, LoadOnEntry+DirectPart); + for (int r = 1; r <= nr; r++) + { + int c; minval = mr.Minimum1(minval, c); + if (c > 0) { i = r; j = c; } + mr.Next(); + } + ((GeneralMatrix&)*this).tDelete(); return minval; +} + +Real Matrix::MaximumAbsoluteValue2(int& i, int& j) const +{ + REPORT + int k; Real m = GeneralMatrix::MaximumAbsoluteValue1(k); k--; + i = k / Ncols(); j = k - i * Ncols(); i++; j++; + return m; +} + +Real Matrix::MinimumAbsoluteValue2(int& i, int& j) const +{ + REPORT + int k; Real m = GeneralMatrix::MinimumAbsoluteValue1(k); k--; + i = k / Ncols(); j = k - i * Ncols(); i++; j++; + return m; +} + +Real Matrix::Maximum2(int& i, int& j) const +{ + REPORT + int k; Real m = GeneralMatrix::Maximum1(k); k--; + i = k / Ncols(); j = k - i * Ncols(); i++; j++; + return m; +} + +Real Matrix::Minimum2(int& i, int& j) const +{ + REPORT + int k; Real m = GeneralMatrix::Minimum1(k); k--; + i = k / Ncols(); j = k - i * Ncols(); i++; j++; + return m; +} + +Real SymmetricMatrix::SumSquare() const +{ + REPORT + Real sum1 = 0.0; Real sum2 = 0.0; Real* s = store; int nr = nrows; + for (int i = 0; iSumSquare(); return s; +} + +Real BaseMatrix::NormFrobenius() const + { REPORT return sqrt(SumSquare()); } + +Real BaseMatrix::SumAbsoluteValue() const +{ + REPORT GeneralMatrix* gm = ((BaseMatrix&)*this).Evaluate(); + Real s = gm->SumAbsoluteValue(); return s; +} + +Real BaseMatrix::Sum() const +{ + REPORT GeneralMatrix* gm = ((BaseMatrix&)*this).Evaluate(); + Real s = gm->Sum(); return s; +} + +Real BaseMatrix::MaximumAbsoluteValue() const +{ + REPORT GeneralMatrix* gm = ((BaseMatrix&)*this).Evaluate(); + Real s = gm->MaximumAbsoluteValue(); return s; +} + +Real BaseMatrix::MaximumAbsoluteValue1(int& i) const +{ + REPORT GeneralMatrix* gm = ((BaseMatrix&)*this).Evaluate(); + Real s = gm->MaximumAbsoluteValue1(i); return s; +} + +Real BaseMatrix::MaximumAbsoluteValue2(int& i, int& j) const +{ + REPORT GeneralMatrix* gm = ((BaseMatrix&)*this).Evaluate(); + Real s = gm->MaximumAbsoluteValue2(i, j); return s; +} + +Real BaseMatrix::MinimumAbsoluteValue() const +{ + REPORT GeneralMatrix* gm = ((BaseMatrix&)*this).Evaluate(); + Real s = gm->MinimumAbsoluteValue(); return s; +} + +Real BaseMatrix::MinimumAbsoluteValue1(int& i) const +{ + REPORT GeneralMatrix* gm = ((BaseMatrix&)*this).Evaluate(); + Real s = gm->MinimumAbsoluteValue1(i); return s; +} + +Real BaseMatrix::MinimumAbsoluteValue2(int& i, int& j) const +{ + REPORT GeneralMatrix* gm = ((BaseMatrix&)*this).Evaluate(); + Real s = gm->MinimumAbsoluteValue2(i, j); return s; +} + +Real BaseMatrix::Maximum() const +{ + REPORT GeneralMatrix* gm = ((BaseMatrix&)*this).Evaluate(); + Real s = gm->Maximum(); return s; +} + +Real BaseMatrix::Maximum1(int& i) const +{ + REPORT GeneralMatrix* gm = ((BaseMatrix&)*this).Evaluate(); + Real s = gm->Maximum1(i); return s; +} + +Real BaseMatrix::Maximum2(int& i, int& j) const +{ + REPORT GeneralMatrix* gm = ((BaseMatrix&)*this).Evaluate(); + Real s = gm->Maximum2(i, j); return s; +} + +Real BaseMatrix::Minimum() const +{ + REPORT GeneralMatrix* gm = ((BaseMatrix&)*this).Evaluate(); + Real s = gm->Minimum(); return s; +} + +Real BaseMatrix::Minimum1(int& i) const +{ + REPORT GeneralMatrix* gm = ((BaseMatrix&)*this).Evaluate(); + Real s = gm->Minimum1(i); return s; +} + +Real BaseMatrix::Minimum2(int& i, int& j) const +{ + REPORT GeneralMatrix* gm = ((BaseMatrix&)*this).Evaluate(); + Real s = gm->Minimum2(i, j); return s; +} + +Real DotProduct(const Matrix& A, const Matrix& B) +{ + REPORT + int n = A.storage; + if (n != B.storage) Throw(IncompatibleDimensionsException(A,B)); + Real sum = 0.0; Real* a = A.store; Real* b = B.store; + while (n--) sum += *a++ * *b++; + return sum; +} + +Real Matrix::Trace() const +{ + REPORT + Tracer trace("Trace"); + int i = nrows; int d = i+1; + if (i != ncols) Throw(NotSquareException(*this)); + Real sum = 0.0; Real* s = store; +// while (i--) { sum += *s; s += d; } + if (i) for (;;) { sum += *s; if (!(--i)) break; s += d; } + ((GeneralMatrix&)*this).tDelete(); return sum; +} + +Real DiagonalMatrix::Trace() const +{ + REPORT + int i = nrows; Real sum = 0.0; Real* s = store; + while (i--) sum += *s++; + ((GeneralMatrix&)*this).tDelete(); return sum; +} + +Real SymmetricMatrix::Trace() const +{ + REPORT + int i = nrows; Real sum = 0.0; Real* s = store; int j = 2; + // while (i--) { sum += *s; s += j++; } + if (i) for (;;) { sum += *s; if (!(--i)) break; s += j++; } + ((GeneralMatrix&)*this).tDelete(); return sum; +} + +Real LowerTriangularMatrix::Trace() const +{ + REPORT + int i = nrows; Real sum = 0.0; Real* s = store; int j = 2; + // while (i--) { sum += *s; s += j++; } + if (i) for (;;) { sum += *s; if (!(--i)) break; s += j++; } + ((GeneralMatrix&)*this).tDelete(); return sum; +} + +Real UpperTriangularMatrix::Trace() const +{ + REPORT + int i = nrows; Real sum = 0.0; Real* s = store; + while (i) { sum += *s; s += i--; } // won t cause a problem + ((GeneralMatrix&)*this).tDelete(); return sum; +} + +Real BandMatrix::Trace() const +{ + REPORT + int i = nrows; int w = lower+upper+1; + Real sum = 0.0; Real* s = store+lower; + // while (i--) { sum += *s; s += w; } + if (i) for (;;) { sum += *s; if (!(--i)) break; s += w; } + ((GeneralMatrix&)*this).tDelete(); return sum; +} + +Real SymmetricBandMatrix::Trace() const +{ + REPORT + int i = nrows; int w = lower+1; + Real sum = 0.0; Real* s = store+lower; + // while (i--) { sum += *s; s += w; } + if (i) for (;;) { sum += *s; if (!(--i)) break; s += w; } + ((GeneralMatrix&)*this).tDelete(); return sum; +} + +Real IdentityMatrix::Trace() const +{ + Real sum = *store * nrows; + ((GeneralMatrix&)*this).tDelete(); return sum; +} + + +Real BaseMatrix::Trace() const +{ + REPORT + MatrixType Diag = MatrixType::Dg; Diag.SetDataLossOK(); + GeneralMatrix* gm = ((BaseMatrix&)*this).Evaluate(Diag); + Real sum = gm->Trace(); return sum; +} + +void LogAndSign::operator*=(Real x) +{ + if (x > 0.0) { log_value += log(x); } + else if (x < 0.0) { log_value += log(-x); sign = -sign; } + else sign = 0; +} + +void LogAndSign::PowEq(int k) +{ + if (sign) + { + log_value *= k; + if ( (k & 1) == 0 ) sign = 1; + } +} + +Real LogAndSign::Value() const +{ + Tracer et("LogAndSign::Value"); + if (log_value >= FloatingPointPrecision::LnMaximum()) + Throw(OverflowException("Overflow in exponential")); + return sign * exp(log_value); +} + +LogAndSign::LogAndSign(Real f) +{ + if (f == 0.0) { log_value = 0.0; sign = 0; return; } + else if (f < 0.0) { sign = -1; f = -f; } + else sign = 1; + log_value = log(f); +} + +LogAndSign DiagonalMatrix::LogDeterminant() const +{ + REPORT + int i = nrows; LogAndSign sum; Real* s = store; + while (i--) sum *= *s++; + ((GeneralMatrix&)*this).tDelete(); return sum; +} + +LogAndSign LowerTriangularMatrix::LogDeterminant() const +{ + REPORT + int i = nrows; LogAndSign sum; Real* s = store; int j = 2; + // while (i--) { sum *= *s; s += j++; } + if (i) for(;;) { sum *= *s; if (!(--i)) break; s += j++; } + ((GeneralMatrix&)*this).tDelete(); return sum; +} + +LogAndSign UpperTriangularMatrix::LogDeterminant() const +{ + REPORT + int i = nrows; LogAndSign sum; Real* s = store; + while (i) { sum *= *s; s += i--; } + ((GeneralMatrix&)*this).tDelete(); return sum; +} + +LogAndSign IdentityMatrix::LogDeterminant() const +{ + REPORT + int i = nrows; LogAndSign sum; + if (i > 0) { sum = *store; sum.PowEq(i); } + ((GeneralMatrix&)*this).tDelete(); return sum; +} + +LogAndSign BaseMatrix::LogDeterminant() const +{ + REPORT GeneralMatrix* gm = ((BaseMatrix&)*this).Evaluate(); + LogAndSign sum = gm->LogDeterminant(); return sum; +} + +LogAndSign GeneralMatrix::LogDeterminant() const +{ + REPORT + Tracer tr("LogDeterminant"); + if (nrows != ncols) Throw(NotSquareException(*this)); + CroutMatrix C(*this); return C.LogDeterminant(); +} + +LogAndSign CroutMatrix::LogDeterminant() const +{ + REPORT + if (sing) return 0.0; + int i = nrows; int dd = i+1; LogAndSign sum; Real* s = store; + if (i) for(;;) + { + sum *= *s; + if (!(--i)) break; + s += dd; + } + if (!d) sum.ChangeSign(); return sum; + +} + +Real BaseMatrix::Determinant() const +{ + REPORT + Tracer tr("Determinant"); + REPORT GeneralMatrix* gm = ((BaseMatrix&)*this).Evaluate(); + LogAndSign ld = gm->LogDeterminant(); + return ld.Value(); +} + + + + + +LinearEquationSolver::LinearEquationSolver(const BaseMatrix& bm) +{ + gm = ( ((BaseMatrix&)bm).Evaluate() )->MakeSolver(); + if (gm==&bm) { REPORT gm = gm->Image(); } + // want a copy if *gm is actually bm + else { REPORT gm->Protect(); } +} + + +#ifdef use_namespace +} +#endif + diff --git a/3rdparty/newmat/newmat9.cpp b/3rdparty/newmat/newmat9.cpp new file mode 100644 index 0000000..2cf2d26 --- /dev/null +++ b/3rdparty/newmat/newmat9.cpp @@ -0,0 +1,76 @@ +//$$ newmat9.cpp Input and output + +// Copyright (C) 1991,2,3,4: R B Davies + + +#define WANT_FSTREAM + +#include "include.h" + +#include "newmat.h" +#include "newmatio.h" +#include "newmatrc.h" + +#ifdef use_namespace +namespace NEWMAT { +#endif + + + +#ifdef DO_REPORT +#define REPORT { static ExeCounter ExeCount(__LINE__,9); ++ExeCount; } +#else +#define REPORT {} +#endif + +// for G++ 3.01 +#ifndef ios_format_flags +#define ios_format_flags long +#endif + +ostream& operator<<(ostream& s, const BaseMatrix& X) +{ + GeneralMatrix* gm = ((BaseMatrix&)X).Evaluate(); operator<<(s, *gm); + gm->tDelete(); return s; +} + + +ostream& operator<<(ostream& s, const GeneralMatrix& X) +{ + MatrixRow mr((GeneralMatrix*)&X, LoadOnEntry); + int w = s.width(); int nr = X.Nrows(); ios_format_flags f = s.flags(); + s.setf(ios::fixed, ios::floatfield); + for (int i=1; i<=nr; i++) + { + int skip = mr.skip; int storage = mr.storage; + Real* store = mr.data; skip *= w+1; + while (skip--) s << " "; + while (storage--) { s.width(w); s << *store++ << " "; } +// while (storage--) s << setw(w) << *store++ << " "; + mr.Next(); s << "\n"; + } + s << flush; s.flags(f); return s; +} + +// include this stuff if you are using an old version of G++ +// with an incomplete io library + +/* + +ostream& operator<<(ostream& os, Omanip_precision i) + { os.precision(i.x); return os; } + +Omanip_precision setprecision(int i) { return Omanip_precision(i); } + +ostream& operator<<(ostream& os, Omanip_width i) + { os.width(i.x); return os; } + +Omanip_width setw(int i) { return Omanip_width(i); } + +*/ + +#ifdef use_namespace +} +#endif + + diff --git a/3rdparty/newmat/newmatap.h b/3rdparty/newmat/newmatap.h new file mode 100644 index 0000000..065df5d --- /dev/null +++ b/3rdparty/newmat/newmatap.h @@ -0,0 +1,171 @@ +//$$ newmatap.h definition file for matrix package applications + +// Copyright (C) 1991,2,3,4,8: R B Davies + +#ifndef NEWMATAP_LIB +#define NEWMATAP_LIB 0 + +#include "newmat.h" + +#ifdef use_namespace +namespace NEWMAT { +#endif + + +// ************************** applications *****************************/ + + +void QRZT(Matrix&, LowerTriangularMatrix&); + +void QRZT(const Matrix&, Matrix&, Matrix&); + +void QRZ(Matrix&, UpperTriangularMatrix&); + +void QRZ(const Matrix&, Matrix&, Matrix&); + +inline void HHDecompose(Matrix& X, LowerTriangularMatrix& L) +{ QRZT(X,L); } + +inline void HHDecompose(const Matrix& X, Matrix& Y, Matrix& M) +{ QRZT(X, Y, M); } + +ReturnMatrix Cholesky(const SymmetricMatrix&); + +ReturnMatrix Cholesky(const SymmetricBandMatrix&); + +void SVD(const Matrix&, DiagonalMatrix&, Matrix&, Matrix&, + bool=true, bool=true); + +void SVD(const Matrix&, DiagonalMatrix&); + +inline void SVD(const Matrix& A, DiagonalMatrix& D, Matrix& U, + bool withU = true) { SVD(A, D, U, U, withU, false); } + +void SortSV(DiagonalMatrix& D, Matrix& U, bool ascending = false); + +void SortSV(DiagonalMatrix& D, Matrix& U, Matrix& V, bool ascending = false); + +void Jacobi(const SymmetricMatrix&, DiagonalMatrix&); + +void Jacobi(const SymmetricMatrix&, DiagonalMatrix&, SymmetricMatrix&); + +void Jacobi(const SymmetricMatrix&, DiagonalMatrix&, Matrix&); + +void Jacobi(const SymmetricMatrix&, DiagonalMatrix&, SymmetricMatrix&, + Matrix&, bool=true); + +void EigenValues(const SymmetricMatrix&, DiagonalMatrix&); + +void EigenValues(const SymmetricMatrix&, DiagonalMatrix&, SymmetricMatrix&); + +void EigenValues(const SymmetricMatrix&, DiagonalMatrix&, Matrix&); + +class SymmetricEigenAnalysis +// not implemented yet +{ +public: + SymmetricEigenAnalysis(const SymmetricMatrix&); +private: + DiagonalMatrix diag; + DiagonalMatrix offdiag; + SymmetricMatrix backtransform; + FREE_CHECK(SymmetricEigenAnalysis) +}; + +void SortAscending(GeneralMatrix&); + +void SortDescending(GeneralMatrix&); + + +// class for deciding which fft to use and containing new fft function +class FFT_Controller +{ +public: + static bool OnlyOldFFT; + static bool ar_1d_ft (int PTS, Real* X, Real *Y); + static bool CanFactor(int PTS); +}; + +void FFT(const ColumnVector&, const ColumnVector&, + ColumnVector&, ColumnVector&); + +void FFTI(const ColumnVector&, const ColumnVector&, + ColumnVector&, ColumnVector&); + +void RealFFT(const ColumnVector&, ColumnVector&, ColumnVector&); + +void RealFFTI(const ColumnVector&, const ColumnVector&, ColumnVector&); + +void DCT_II(const ColumnVector&, ColumnVector&); + +void DCT_II_inverse(const ColumnVector&, ColumnVector&); + +void DST_II(const ColumnVector&, ColumnVector&); + +void DST_II_inverse(const ColumnVector&, ColumnVector&); + +void DCT(const ColumnVector&, ColumnVector&); + +void DCT_inverse(const ColumnVector&, ColumnVector&); + +void DST(const ColumnVector&, ColumnVector&); + +void DST_inverse(const ColumnVector&, ColumnVector&); + +// This class is used by the new FFT program + +// Suppose an integer is expressed as a sequence of digits with each +// digit having a different radix. +// This class supposes we are counting with this multi-radix number +// but also keeps track of the number with the digits (and radices) +// reversed. +// The integer starts at zero +// operator++() increases it by 1 +// Counter gives the number of increments +// Reverse() gives the value with the digits in reverse order +// Swap is true if reverse is less than counter +// Finish is true when we have done a complete cycle and are back at zero + +class MultiRadixCounter +{ + const SimpleIntArray& Radix; + // radix of each digit + // n-1 highest order, 0 lowest order + SimpleIntArray& Value; // value of each digit + const int n; // number of digits + int reverse; // value when order of digits is reversed + int product; // product of radices + int counter; // counter + bool finish; // true when we have gone over whole range +public: + MultiRadixCounter(int nx, const SimpleIntArray& rx, + SimpleIntArray& vx); + void operator++(); // increment the multi-radix counter + bool Swap() const { return reverse < counter; } + bool Finish() const { return finish; } + int Reverse() const { return reverse; } + int Counter() const { return counter; } +}; + + +#ifdef use_namespace +} +#endif + + + +#endif + +// body file: cholesky.cpp +// body file: evalue.cpp +// body file: fft.cpp +// body file: hholder.cpp +// body file: jacobi.cpp +// body file: newfft.cpp +// body file: sort.cpp +// body file: svd.cpp + + + + + diff --git a/3rdparty/newmat/newmatex.cpp b/3rdparty/newmat/newmatex.cpp new file mode 100644 index 0000000..cf8bb38 --- /dev/null +++ b/3rdparty/newmat/newmatex.cpp @@ -0,0 +1,307 @@ +//$$ newmatex.cpp Exception handler + +// Copyright (C) 1992,3,4,7: R B Davies + +#define WANT_STREAM // include.h will get stream fns + +#include "include.h" // include standard files +#include "newmat.h" + +#ifdef use_namespace +namespace NEWMAT { +#endif + +unsigned long OverflowException::Select; +unsigned long SingularException::Select; +unsigned long NPDException::Select; +unsigned long ConvergenceException::Select; +unsigned long ProgramException::Select; +unsigned long IndexException::Select; +unsigned long VectorException::Select; +unsigned long NotSquareException::Select; +unsigned long SubMatrixDimensionException::Select; +unsigned long IncompatibleDimensionsException::Select; +unsigned long NotDefinedException::Select; +unsigned long CannotBuildException::Select; +unsigned long InternalException::Select; + + + +static void MatrixDetails(const GeneralMatrix& A) +// write matrix details to Exception buffer +{ + MatrixBandWidth bw = A.BandWidth(); int ubw = bw.upper; int lbw = bw.lower; + BaseException::AddMessage("MatrixType = "); + BaseException::AddMessage(A.Type().Value()); + BaseException::AddMessage(" # Rows = "); BaseException::AddInt(A.Nrows()); + BaseException::AddMessage("; # Cols = "); BaseException::AddInt(A.Ncols()); + if (lbw >=0) + { BaseException::AddMessage("; lower BW = "); BaseException::AddInt(lbw); } + if (ubw >=0) + { BaseException::AddMessage("; upper BW = "); BaseException::AddInt(ubw); } + BaseException::AddMessage("\n"); +} + +NPDException::NPDException(const GeneralMatrix& A) + : Runtime_error() +{ + Select = BaseException::Select; + AddMessage("detected by Newmat: matrix not positive definite\n\n"); + MatrixDetails(A); + Tracer::AddTrace(); +} + +SingularException::SingularException(const GeneralMatrix& A) + : Runtime_error() +{ + Select = BaseException::Select; + AddMessage("detected by Newmat: matrix is singular\n\n"); + MatrixDetails(A); + Tracer::AddTrace(); +} + +ConvergenceException::ConvergenceException(const GeneralMatrix& A) + : Runtime_error() +{ + Select = BaseException::Select; + AddMessage("detected by Newmat: process fails to converge\n\n"); + MatrixDetails(A); + Tracer::AddTrace(); +} + +ConvergenceException::ConvergenceException(const char* c) : Runtime_error() +{ + Select = BaseException::Select; + AddMessage("detected by Newmat: "); + AddMessage(c); AddMessage("\n\n"); + if (c) Tracer::AddTrace(); +} + +OverflowException::OverflowException(const char* c) : Runtime_error() +{ + Select = BaseException::Select; + AddMessage("detected by Newmat: "); + AddMessage(c); AddMessage("\n\n"); + if (c) Tracer::AddTrace(); +} + +ProgramException::ProgramException(const char* c) : Logic_error() +{ + Select = BaseException::Select; + AddMessage("detected by Newmat: "); + AddMessage(c); AddMessage("\n\n"); + if (c) Tracer::AddTrace(); +} + +ProgramException::ProgramException(const char* c, const GeneralMatrix& A) + : Logic_error() +{ + Select = BaseException::Select; + AddMessage("detected by Newmat: "); + AddMessage(c); AddMessage("\n\n"); + MatrixDetails(A); + if (c) Tracer::AddTrace(); +} + +ProgramException::ProgramException(const char* c, const GeneralMatrix& A, + const GeneralMatrix& B) : Logic_error() +{ + Select = BaseException::Select; + AddMessage("detected by Newmat: "); + AddMessage(c); AddMessage("\n\n"); + MatrixDetails(A); MatrixDetails(B); + if (c) Tracer::AddTrace(); +} + +ProgramException::ProgramException(const char* c, MatrixType a, MatrixType b) + : Logic_error() +{ + Select = BaseException::Select; + AddMessage("detected by Newmat: "); + AddMessage(c); AddMessage("\nMatrixTypes = "); + AddMessage(a.Value()); AddMessage("; "); + AddMessage(b.Value()); AddMessage("\n\n"); + if (c) Tracer::AddTrace(); +} + +VectorException::VectorException() : Logic_error() +{ + Select = BaseException::Select; + AddMessage("detected by Newmat: cannot convert matrix to vector\n\n"); + Tracer::AddTrace(); +} + +VectorException::VectorException(const GeneralMatrix& A) + : Logic_error() +{ + Select = BaseException::Select; + AddMessage("detected by Newmat: cannot convert matrix to vector\n\n"); + MatrixDetails(A); + Tracer::AddTrace(); +} + +NotSquareException::NotSquareException(const GeneralMatrix& A) + : Logic_error() +{ + Select = BaseException::Select; + AddMessage("detected by Newmat: matrix is not square\n\n"); + MatrixDetails(A); + Tracer::AddTrace(); +} + +SubMatrixDimensionException::SubMatrixDimensionException() + : Logic_error() +{ + Select = BaseException::Select; + AddMessage("detected by Newmat: incompatible submatrix dimension\n\n"); + Tracer::AddTrace(); +} + +IncompatibleDimensionsException::IncompatibleDimensionsException() + : Logic_error() +{ + Select = BaseException::Select; + AddMessage("detected by Newmat: incompatible dimensions\n\n"); + Tracer::AddTrace(); +} + +IncompatibleDimensionsException::IncompatibleDimensionsException + (const GeneralMatrix& A, const GeneralMatrix& B) + : Logic_error() +{ + Select = BaseException::Select; + AddMessage("detected by Newmat: incompatible dimensions\n\n"); + MatrixDetails(A); MatrixDetails(B); + Tracer::AddTrace(); +} + +NotDefinedException::NotDefinedException(const char* op, const char* matrix) + : Logic_error() +{ + Select = BaseException::Select; + AddMessage("detected by Newmat: "); + AddMessage(op); + AddMessage(" not defined for "); + AddMessage(matrix); + AddMessage("\n\n"); + Tracer::AddTrace(); +} + +CannotBuildException::CannotBuildException(const char* matrix) + : Logic_error() +{ + Select = BaseException::Select; + AddMessage("detected by Newmat: cannot build matrix type "); + AddMessage(matrix); AddMessage("\n\n"); + Tracer::AddTrace(); +} + +IndexException::IndexException(int i, const GeneralMatrix& A) + : Logic_error() +{ + Select = BaseException::Select; + AddMessage("detected by Newmat: index error: requested index = "); + AddInt(i); AddMessage("\n\n"); + MatrixDetails(A); + Tracer::AddTrace(); +} + +IndexException::IndexException(int i, int j, const GeneralMatrix& A) + : Logic_error() +{ + Select = BaseException::Select; + AddMessage("detected by Newmat: index error: requested indices = "); + AddInt(i); AddMessage(", "); AddInt(j); + AddMessage("\n\n"); + MatrixDetails(A); + Tracer::AddTrace(); +} + + +IndexException::IndexException(int i, const GeneralMatrix& A, bool) + : Logic_error() +{ + Select = BaseException::Select; + AddMessage("detected by Newmat: element error: requested index (wrt 0) = "); + AddInt(i); + AddMessage("\n\n"); + MatrixDetails(A); + Tracer::AddTrace(); +} + +IndexException::IndexException(int i, int j, const GeneralMatrix& A, bool) + : Logic_error() +{ + Select = BaseException::Select; + AddMessage( + "detected by Newmat: element error: requested indices (wrt 0) = "); + AddInt(i); AddMessage(", "); AddInt(j); + AddMessage("\n\n"); + MatrixDetails(A); + Tracer::AddTrace(); +} + +InternalException::InternalException(const char* c) : Logic_error() +{ + Select = BaseException::Select; + AddMessage("internal error detected by Newmat: please inform author\n"); + AddMessage(c); AddMessage("\n\n"); + Tracer::AddTrace(); +} + + + + +/************************* ExeCounter functions *****************************/ + +#ifdef DO_REPORT + +int ExeCounter::nreports; // will be set to zero + +ExeCounter::ExeCounter(int xl, int xf) : line(xl), fileid(xf), nexe(0) {} + +ExeCounter::~ExeCounter() +{ + nreports++; + cout << "REPORT " << setw(6) << nreports << " " + << setw(6) << fileid << " " << setw(6) << line + << " " << setw(6) << nexe << "\n"; +} + +#endif + +/**************************** error handler *******************************/ + +void MatrixErrorNoSpace(void* v) { if (!v) Throw(Bad_alloc()); } +// throw exception if v is null + + + + +/************************* miscellanous errors ***************************/ + + +void CroutMatrix::GetRow(MatrixRowCol&) + { Throw(NotDefinedException("GetRow","Crout")); } +void CroutMatrix::GetCol(MatrixRowCol&) + { Throw(NotDefinedException("GetCol","Crout")); } +void CroutMatrix::operator=(const BaseMatrix&) + { Throw(NotDefinedException("=","Crout")); } +void BandLUMatrix::GetRow(MatrixRowCol&) + { Throw(NotDefinedException("GetRow","BandLUMatrix")); } +void BandLUMatrix::GetCol(MatrixRowCol&) + { Throw(NotDefinedException("GetCol","BandLUMatrix")); } +void BandLUMatrix::operator=(const BaseMatrix&) + { Throw(NotDefinedException("=","BandLUMatrix")); } +void BaseMatrix::IEQND() const + { Throw(NotDefinedException("inequalities", "matrices")); } +#ifdef TEMPS_DESTROYED_QUICKLY_R + ReturnMatrixX::ReturnMatrixX(const ReturnMatrixX& tm) + : gm(tm.gm) { Throw(ProgramException("ReturnMatrixX error")); } +#endif + + +#ifdef use_namespace +} +#endif + diff --git a/3rdparty/newmat/newmatio.h b/3rdparty/newmat/newmatio.h new file mode 100644 index 0000000..a310ccb --- /dev/null +++ b/3rdparty/newmat/newmatio.h @@ -0,0 +1,61 @@ +//$$ newmatio.h definition file for matrix package input/output + +// Copyright (C) 1991,2,3,4: R B Davies + +#ifndef NEWMATIO_LIB +#define NEWMATIO_LIB 0 + +#ifndef WANT_STREAM +#define WANT_STREAM +#endif + +#include "newmat.h" + +#ifdef use_namespace +namespace NEWMAT { +#endif + + + +/**************************** input/output *****************************/ + +ostream& operator<<(ostream&, const BaseMatrix&); + +ostream& operator<<(ostream&, const GeneralMatrix&); + + +/* Use in some old versions of G++ without complete iomanipulators + +class Omanip_precision +{ + int x; +public: + Omanip_precision(int i) : x(i) {} + friend ostream& operator<<(ostream& os, Omanip_precision i); +}; + + +Omanip_precision setprecision(int i); + +class Omanip_width +{ + int x; +public: + Omanip_width(int i) : x(i) {} + friend ostream& operator<<(ostream& os, Omanip_width i); +}; + +Omanip_width setw(int i); + +*/ + +#ifdef use_namespace +} +#endif + + + +#endif + +// body file: newmat9.cpp + diff --git a/3rdparty/newmat/newmatnl.cpp b/3rdparty/newmat/newmatnl.cpp new file mode 100644 index 0000000..c683e45 --- /dev/null +++ b/3rdparty/newmat/newmatnl.cpp @@ -0,0 +1,258 @@ +//$$ newmatnl.cpp Non-linear optimisation + +// Copyright (C) 1993,4,5,6: R B Davies + + +#define WANT_MATH +#define WANT_STREAM + +#include "newmatap.h" +#include "newmatnl.h" + +#ifdef use_namespace +namespace NEWMAT { +#endif + + + +void FindMaximum2::Fit(ColumnVector& Theta, int n_it) +{ + Tracer tr("FindMaximum2::Fit"); + enum State {Start, Restart, Continue, Interpolate, Extrapolate, + Fail, Convergence}; + State TheState = Start; + Real z,w,x,x2,g,l1,l2,l3,d1,d2=0,d3; + ColumnVector Theta1, Theta2, Theta3; + int np = Theta.Nrows(); + ColumnVector H1(np), H3, HP(np), K, K1(np); + bool oorg, conv; + int counter = 0; + Theta1 = Theta; HP = 0.0; g = 0.0; + + // This is really a set of gotos and labels, but they do not work + // correctly in AT&T C++ and Sun 4.01 C++. + + for(;;) + { + switch (TheState) + { + case Start: + tr.ReName("FindMaximum2::Fit/Start"); + Value(Theta1, true, l1, oorg); + if (oorg) Throw(ProgramException("invalid starting value\n")); + + case Restart: + tr.ReName("FindMaximum2::Fit/ReStart"); + conv = NextPoint(H1, d1); + if (conv) { TheState = Convergence; break; } + if (counter++ > n_it) { TheState = Fail; break; } + + z = 1.0 / sqrt(d1); + H3 = H1 * z; K = (H3 - HP) * g; HP = H3; + g = 0.0; // de-activate to use curved projection + if (g==0.0) K1 = 0.0; else K1 = K * 0.2 + K1 * 0.6; + // (K - K1) * alpha + K1 * (1 - alpha) + // = K * alpha + K1 * (1 - 2 * alpha) + K = K1 * d1; g = z; + + case Continue: + tr.ReName("FindMaximum2::Fit/Continue"); + Theta2 = Theta1 + H1 + K; + Value(Theta2, false, l2, oorg); + if (counter++ > n_it) { TheState = Fail; break; } + if (oorg) + { + H1 *= 0.5; K *= 0.25; d1 *= 0.5; g *= 2.0; + TheState = Continue; break; + } + d2 = LastDerivative(H1 + K * 2.0); + + case Interpolate: + tr.ReName("FindMaximum2::Fit/Interpolate"); + z = d1 + d2 - 3.0 * (l2 - l1); + w = z * z - d1 * d2; + if (w < 0.0) { TheState = Extrapolate; break; } + w = z + sqrt(w); + if (1.5 * w + d1 < 0.0) + { TheState = Extrapolate; break; } + if (d2 > 0.0 && l2 > l1 && w > 0.0) + { TheState = Extrapolate; break; } + x = d1 / (w + d1); x2 = x * x; g /= x; + Theta3 = Theta1 + H1 * x + K * x2; + Value(Theta3, true, l3, oorg); + if (counter++ > n_it) { TheState = Fail; break; } + if (oorg) + { + if (x <= 1.0) + { x *= 0.5; x2 = x*x; g *= 2.0; d1 *= x; H1 *= x; K *= x2; } + else + { + x = 0.5 * (x-1.0); x2 = x*x; Theta1 = Theta2; + H1 = (H1 + K * 2.0) * x; + K *= x2; g = 0.0; d1 = x * d2; l1 = l2; + } + TheState = Continue; break; + } + + if (l3 >= l1 && l3 >= l2) + { Theta1 = Theta3; l1 = l3; TheState = Restart; break; } + + d3 = LastDerivative(H1 + K * 2.0); + if (l1 > l2) + { H1 *= x; K *= x2; Theta2 = Theta3; d1 *= x; d2 = d3*x; } + else + { + Theta1 = Theta2; Theta2 = Theta3; + x -= 1.0; x2 = x*x; g = 0.0; H1 = (H1 + K * 2.0) * x; + K *= x2; l1 = l2; l2 = l3; d1 = x*d2; d2 = x*d3; + if (d1 <= 0.0) { TheState = Start; break; } + } + TheState = Interpolate; break; + + case Extrapolate: + tr.ReName("FindMaximum2::Fit/Extrapolate"); + Theta1 = Theta2; g = 0.0; K *= 4.0; H1 = (H1 * 2.0 + K); + d1 = 2.0 * d2; l1 = l2; + TheState = Continue; break; + + case Fail: + Throw(ConvergenceException(Theta)); + + case Convergence: + Theta = Theta1; return; + } + } +} + + + +void NonLinearLeastSquares::Value + (const ColumnVector& Parameters, bool, Real& v, bool& oorg) +{ + Tracer tr("NonLinearLeastSquares::Value"); + Y.ReSize(n_obs); X.ReSize(n_obs,n_param); + // put the fitted values in Y, the derivatives in X. + Pred.Set(Parameters); + if (!Pred.IsValid()) { oorg=true; return; } + for (int i=1; i<=n_obs; i++) + { + Y(i) = Pred(i); + X.Row(i) = Pred.Derivatives(); + } + if (!Pred.IsValid()) { oorg=true; return; } // check afterwards as well + Y = *DataPointer - Y; Real ssq = Y.SumSquare(); + errorvar = ssq / (n_obs - n_param); + cout << "\n" << setw(15) << setprecision(10) << " " << errorvar; + Derivs = Y.t() * X; // get the derivative and stash it + oorg = false; v = -0.5 * ssq; +} + +bool NonLinearLeastSquares::NextPoint(ColumnVector& Adj, Real& test) +{ + Tracer tr("NonLinearLeastSquares::NextPoint"); + QRZ(X, U); QRZ(X, Y, M); // do the QR decomposition + test = M.SumSquare(); + cout << " " << setw(15) << setprecision(10) + << test << " " << Y.SumSquare() / (n_obs - n_param); + Adj = U.i() * M; + if (test < errorvar * criterion) return true; + else return false; +} + +Real NonLinearLeastSquares::LastDerivative(const ColumnVector& H) +{ return (Derivs * H).AsScalar(); } + +void NonLinearLeastSquares::Fit(const ColumnVector& Data, + ColumnVector& Parameters) +{ + Tracer tr("NonLinearLeastSquares::Fit"); + n_param = Parameters.Nrows(); n_obs = Data.Nrows(); + DataPointer = &Data; + FindMaximum2::Fit(Parameters, Lim); + cout << "\nConverged\n"; +} + +void NonLinearLeastSquares::MakeCovariance() +{ + if (Covariance.Nrows()==0) + { + UpperTriangularMatrix UI = U.i(); + Covariance << UI * UI.t() * errorvar; + SE << Covariance; // get diagonals + for (int i = 1; i<=n_param; i++) SE(i) = sqrt(SE(i)); + } +} + +void NonLinearLeastSquares::GetStandardErrors(ColumnVector& SEX) + { MakeCovariance(); SEX = SE.AsColumn(); } + +void NonLinearLeastSquares::GetCorrelations(SymmetricMatrix& Corr) + { MakeCovariance(); Corr << SE.i() * Covariance * SE.i(); } + +void NonLinearLeastSquares::GetHatDiagonal(DiagonalMatrix& Hat) const +{ + Hat.ReSize(n_obs); + for (int i = 1; i<=n_obs; i++) Hat(i) = X.Row(i).SumSquare(); +} + + +// the MLE_D_FI routines + +void MLE_D_FI::Value + (const ColumnVector& Parameters, bool wg, Real& v, bool& oorg) +{ + Tracer tr("MLE_D_FI::Value"); + if (!LL.IsValid(Parameters,wg)) { oorg=true; return; } + v = LL.LogLikelihood(); + if (!LL.IsValid()) { oorg=true; return; } // check validity again + cout << "\n" << setw(20) << setprecision(10) << v; + oorg = false; + Derivs = LL.Derivatives(); // Get derivatives +} + +bool MLE_D_FI::NextPoint(ColumnVector& Adj, Real& test) +{ + Tracer tr("MLE_D_FI::NextPoint"); + SymmetricMatrix FI = LL.FI(); + LT = Cholesky(FI); + ColumnVector Adj1 = LT.i() * Derivs; + Adj = LT.t().i() * Adj1; + test = SumSquare(Adj1); + cout << " " << setw(20) << setprecision(10) << test; + return (test < Criterion); +} + +Real MLE_D_FI::LastDerivative(const ColumnVector& H) +{ return (Derivs.t() * H).AsScalar(); } + +void MLE_D_FI::Fit(ColumnVector& Parameters) +{ + Tracer tr("MLE_D_FI::Fit"); + FindMaximum2::Fit(Parameters,Lim); + cout << "\nConverged\n"; +} + +void MLE_D_FI::MakeCovariance() +{ + if (Covariance.Nrows()==0) + { + LowerTriangularMatrix LTI = LT.i(); + Covariance << LTI.t() * LTI; + SE << Covariance; // get diagonal + int n = Covariance.Nrows(); + for (int i=1; i <= n; i++) SE(i) = sqrt(SE(i)); + } +} + +void MLE_D_FI::GetStandardErrors(ColumnVector& SEX) +{ MakeCovariance(); SEX = SE.AsColumn(); } + +void MLE_D_FI::GetCorrelations(SymmetricMatrix& Corr) +{ MakeCovariance(); Corr << SE.i() * Covariance * SE.i(); } + + + +#ifdef use_namespace +} +#endif + diff --git a/3rdparty/newmat/newmatnl.h b/3rdparty/newmat/newmatnl.h new file mode 100644 index 0000000..388095c --- /dev/null +++ b/3rdparty/newmat/newmatnl.h @@ -0,0 +1,322 @@ +//$$ newmatnl.h definition file for non-linear optimisation + +// Copyright (C) 1993,4,5: R B Davies + +#ifndef NEWMATNL_LIB +#define NEWMATNL_LIB 0 + +#include "newmat.h" + +#ifdef use_namespace +namespace NEWMAT { +#endif + + + +/* + +This is a beginning of a series of classes for non-linear optimisation. + +At present there are two classes. FindMaximum2 is the basic optimisation +strategy when one is doing an optimisation where one has first +derivatives and estimates of the second derivatives. Class +NonLinearLeastSquares is derived from FindMaximum2. This provides the +functions that calculate function values and derivatives. + +A third class is now added. This is for doing maximum-likelihood when +you have first derviatives and something like the Fisher Information +matrix (eg the variance covariance matrix of the first derivatives or +minus the second derivatives - this matrix is assumed to be positive +definite). + + + + class FindMaximum2 + +Suppose T is the ColumnVector of parameters, F(T) the function we want +to maximise, D(T) the ColumnVector of derivatives of F with respect to +T, and S(T) the matrix of second derivatives. + +Then the basic iteration is given a value of T, update it to + + T - S.i() * D + +where .i() denotes inverse. + +If F was quadratic this would give exactly the right answer (except it +might get a minimum rather than a maximum). Since F is not usually +quadratic, the simple procedure would be to recalculate S and D with the +new value of T and keep iterating until the process converges. This is +known as the method of conjugate gradients. + +In practice, this method may not converge. FindMaximum2 considers an +iteration of the form + + T - x * S.i() * D + +where x is a number. It tries x = 1 and uses the values of F and its +slope with respect to x at x = 0 and x = 1 to fit a cubic in x. It then +choses x to maximise the resulting function. This gives our new value of +T. The program checks that the value of F is getting better and carries +out a variety of strategies if it is not. + +The program also has a second strategy. If the successive values of T +seem to be lying along a curve - eg we are following along a curved +ridge, the program will try to fit this ridge and project along it. This +does not work at present and is commented out. + +FindMaximum2 has three virtual functions which need to be over-ridden by +a derived class. + + void Value(const ColumnVector& T, bool wg, Real& f, bool& oorg); + +T is the column vector of parameters. The function returns the value of +the function to f, but may instead set oorg to true if the parameter +values are not valid. If wg is true it may also calculate and store the +second derivative information. + + bool NextPoint(ColumnVector& H, Real& d); + +Using the value of T provided in the previous call of Value, find the +conjugate gradients adjustment to T, that is - S.i() * D. Also return + + d = D.t() * S.i() * D. + +NextPoint should return true if it considers that the process has +converged (d very small) and false otherwise. The previous call of Value +will have set wg to true, so that S will be available. + + Real LastDerivative(const ColumnVector& H); + +Return the scalar product of H and the vector of derivatives at the last +value of T. + +The function Fit is the function that calls the iteration. + + void Fit(ColumnVector&, int); + +The arguments are the trial parameter values as a ColumnVector and the +maximum number of iterations. The program calls a DataException if the +initial parameters are not valid and a ConvergenceException if the +process fails to converge. + + + class NonLinearLeastSquares + +This class is derived from FindMaximum2 and carries out a non-linear +least squares fit. It uses a QR decomposition to carry out the +operations required by FindMaximum2. + +A prototype class R1_Col_I_D is provided. The user needs to derive a +class from this which includes functions the predicted value of each +observation its derivatives. An object from this class has to be +provided to class NonLinearLeastSquares. + +Suppose we observe n normal random variables with the same unknown +variance and such the i-th one has expected value given by f(i,P) +where P is a column vector of unknown parameters and f is a known +function. We wish to estimate P. + +First derive a class from R1_Col_I_D and override Real operator()(int i) +to give the value of the function f in terms of i and the ColumnVector +para defined in class R1_CoL_I_D. Also override ReturnMatrix +Derivatives() to give the derivates of f at para and the value of i +used in the preceeding call to operator(). Return the result as a +RowVector. Construct an object from this class. Suppose in what follows +it is called pred. + +Now constuct a NonLinearLeastSquaresObject accessing pred and optionally +an iteration limit and an accuracy critierion. + + NonLinearLeastSquares NLLS(pred, 1000, 0.0001); + +The accuracy critierion should be somewhat less than one and 0.0001 is +about the smallest sensible value. + +Define a ColumnVector P containing a guess at the value of the unknown +parameter, and a ColumnVector Y containing the unknown data. Call + + NLLS.Fit(Y,P); + +If the process converges, P will contain the estimates of the unknown +parameters. If it does not converge an exception will be generated. + +The following member functions can be called after you have done a fit. + +Real ResidualVariance() const; + +The estimate of the variance of the observations. + +void GetResiduals(ColumnVector& Z) const; + +The residuals of the individual observations. + +void GetStandardErrors(ColumnVector&); + +The standard errors of the observations. + +void GetCorrelations(SymmetricMatrix&); + +The correlations of the observations. + +void GetHatDiagonal(DiagonalMatrix&) const; + +Forms a diagonal matrix of values between 0 and 1. If the i-th value is +larger than, say 0.2, then the i-th data value could have an undue +influence on your estimates. + + +*/ + +class FindMaximum2 +{ + virtual void Value(const ColumnVector&, bool, Real&, bool&) = 0; + virtual bool NextPoint(ColumnVector&, Real&) = 0; + virtual Real LastDerivative(const ColumnVector&) = 0; +public: + void Fit(ColumnVector&, int); + virtual ~FindMaximum2() {} // to keep gnu happy +}; + +class R1_Col_I_D +{ + // The prototype for a Real function of a ColumnVector and an + // integer. + // You need to derive your function from this one and put in your + // function for operator() and Derivatives() at least. + // You may also want to set up a constructor to enter in additional + // parameter values (that will not vary during the solve). + +protected: + ColumnVector para; // Current x value + +public: + virtual bool IsValid() { return true; } + // is the current x value OK + virtual Real operator()(int i) = 0; // i-th function value at current para + virtual void Set(const ColumnVector& X) { para = X; } + // set current para + bool IsValid(const ColumnVector& X) + { Set(X); return IsValid(); } + // set para, check OK + Real operator()(int i, const ColumnVector& X) + { Set(X); return operator()(i); } + // set para, return value + virtual ReturnMatrix Derivatives() = 0; + // return derivatives as RowVector + virtual ~R1_Col_I_D() {} // to keep gnu happy +}; + + +class NonLinearLeastSquares : public FindMaximum2 +{ + // these replace the corresponding functions in FindMaximum2 + void Value(const ColumnVector&, bool, Real&, bool&); + bool NextPoint(ColumnVector&, Real&); + Real LastDerivative(const ColumnVector&); + + Matrix X; // the things we need to do the + ColumnVector Y; // QR triangularisation + UpperTriangularMatrix U; // see the write-up in newmata.txt + ColumnVector M; + Real errorvar, criterion; + int n_obs, n_param; + const ColumnVector* DataPointer; + RowVector Derivs; + SymmetricMatrix Covariance; + DiagonalMatrix SE; + R1_Col_I_D& Pred; // Reference to predictor object + int Lim; // maximum number of iterations + +public: + NonLinearLeastSquares(R1_Col_I_D& pred, int lim=1000, Real crit=0.0001) + : criterion(crit), Pred(pred), Lim(lim) {} + void Fit(const ColumnVector&, ColumnVector&); + Real ResidualVariance() const { return errorvar; } + void GetResiduals(ColumnVector& Z) const { Z = Y; } + void GetStandardErrors(ColumnVector&); + void GetCorrelations(SymmetricMatrix&); + void GetHatDiagonal(DiagonalMatrix&) const; + +private: + void MakeCovariance(); +}; + + +// The next class is the prototype class for calculating the +// log-likelihood. +// I assume first derivatives are available and something like the +// Fisher Information or variance/covariance matrix of the first +// derivatives or minus the matrix of second derivatives is +// available. This matrix must be positive definite. + +class LL_D_FI +{ +protected: + ColumnVector para; // current parameter values + bool wg; // true if FI matrix wanted + +public: + virtual void Set(const ColumnVector& X) { para = X; } + // set parameter values + virtual void WG(bool wgx) { wg = wgx; } + // set wg + + virtual bool IsValid() { return true; } + // return true is para is OK + bool IsValid(const ColumnVector& X, bool wgx=true) + { Set(X); WG(wgx); return IsValid(); } + + virtual Real LogLikelihood() = 0; // return the loglikelihhod + Real LogLikelihood(const ColumnVector& X, bool wgx=true) + { Set(X); WG(wgx); return LogLikelihood(); } + + virtual ReturnMatrix Derivatives() = 0; + // column vector of derivatives + virtual ReturnMatrix FI() = 0; // Fisher Information matrix + virtual ~LL_D_FI() {} // to keep gnu happy +}; + +// This is the class for doing the maximum likelihood estimation + +class MLE_D_FI : public FindMaximum2 +{ + // these replace the corresponding functions in FindMaximum2 + void Value(const ColumnVector&, bool, Real&, bool&); + bool NextPoint(ColumnVector&, Real&); + Real LastDerivative(const ColumnVector&); + + // the things we need for the analysis + LL_D_FI& LL; // reference to log-likelihood + int Lim; // maximum number of iterations + Real Criterion; // convergence criterion + ColumnVector Derivs; // for the derivatives + LowerTriangularMatrix LT; // Cholesky decomposition of FI + SymmetricMatrix Covariance; + DiagonalMatrix SE; + +public: + MLE_D_FI(LL_D_FI& ll, int lim=1000, Real criterion=0.0001) + : LL(ll), Lim(lim), Criterion(criterion) {} + void Fit(ColumnVector& Parameters); + void GetStandardErrors(ColumnVector&); + void GetCorrelations(SymmetricMatrix&); + +private: + void MakeCovariance(); +}; + + +#ifdef use_namespace +} +#endif + + + +#endif + +// body file: newmatnl.cpp + + + + diff --git a/3rdparty/newmat/newmatrc.h b/3rdparty/newmat/newmatrc.h new file mode 100644 index 0000000..2216373 --- /dev/null +++ b/3rdparty/newmat/newmatrc.h @@ -0,0 +1,170 @@ +//$$ newmatrc.h definition file for row/column classes + +// Copyright (C) 1991,2,3,4,7: R B Davies + +#ifndef NEWMATRC_LIB +#define NEWMATRC_LIB 0 + +#ifdef use_namespace +namespace NEWMAT { +#endif + +#include "controlw.h" + + +/************** classes MatrixRowCol, MatrixRow, MatrixCol *****************/ + +// Used for accessing the rows and columns of matrices +// All matrix classes must provide routines for calculating matrix rows and +// columns. Assume rows can be found very efficiently. + +enum LSF { LoadOnEntry=1,StoreOnExit=2,DirectPart=4,StoreHere=8,HaveStore=16 }; + + +class LoadAndStoreFlag : public ControlWord +{ +public: + LoadAndStoreFlag() {} + LoadAndStoreFlag(int i) : ControlWord(i) {} + LoadAndStoreFlag(LSF lsf) : ControlWord(lsf) {} + LoadAndStoreFlag(const ControlWord& cwx) : ControlWord(cwx) {} +}; + +class MatrixRowCol +// the row or column of a matrix +{ +public: // these are public to avoid + // numerous friend statements + int length; // row or column length + int skip; // initial number of zeros + int storage; // number of stored elements + int rowcol; // row or column number + GeneralMatrix* gm; // pointer to parent matrix + Real* data; // pointer to local storage + LoadAndStoreFlag cw; // Load? Store? Is a Copy? + void IncrMat() { rowcol++; data += storage; } // used by NextRow + void IncrDiag() { rowcol++; skip++; data++; } + void IncrId() { rowcol++; skip++; } + void IncrUT() { rowcol++; data += storage; storage--; skip++; } + void IncrLT() { rowcol++; data += storage; storage++; } + +public: + void Zero(); // set elements to zero + void Add(const MatrixRowCol&); // add a row/col + void AddScaled(const MatrixRowCol&, Real); // add a multiple of a row/col + void Add(const MatrixRowCol&, const MatrixRowCol&); + // add two rows/cols + void Add(const MatrixRowCol&, Real); // add a row/col + void NegAdd(const MatrixRowCol&, Real); // Real - a row/col + void Sub(const MatrixRowCol&); // subtract a row/col + void Sub(const MatrixRowCol&, const MatrixRowCol&); + // sub a row/col from another + void RevSub(const MatrixRowCol&); // subtract from a row/col + void ConCat(const MatrixRowCol&, const MatrixRowCol&); + // concatenate two row/cols + void Multiply(const MatrixRowCol&); // multiply a row/col + void Multiply(const MatrixRowCol&, const MatrixRowCol&); + // multiply two row/cols + void KP(const MatrixRowCol&, const MatrixRowCol&); + // Kronecker Product two row/cols + void Copy(const MatrixRowCol&); // copy a row/col + void CopyCheck(const MatrixRowCol&); // ... check for data loss + void Check(const MatrixRowCol&); // just check for data loss + void Check(); // check full row/col present + void Copy(const Real*&); // copy from an array + void Copy(Real); // copy from constant + void Add(Real); // add a constant + void Multiply(Real); // multiply by constant + Real SumAbsoluteValue(); // sum of absolute values + Real MaximumAbsoluteValue1(Real r, int& i); // maximum of absolute values + Real MinimumAbsoluteValue1(Real r, int& i); // minimum of absolute values + Real Maximum1(Real r, int& i); // maximum + Real Minimum1(Real r, int& i); // minimum + Real Sum(); // sum of values + void Inject(const MatrixRowCol&); // copy stored els of a row/col + void Negate(const MatrixRowCol&); // change sign of a row/col + void Multiply(const MatrixRowCol&, Real); // scale a row/col + friend Real DotProd(const MatrixRowCol&, const MatrixRowCol&); + // sum of pairwise product + Real* Data() { return data; } + int Skip() { return skip; } // number of elements skipped + int Storage() { return storage; } // number of elements stored + int Length() { return length; } // length of row or column + void Skip(int i) { skip=i; } + void Storage(int i) { storage=i; } + void Length(int i) { length=i; } + void SubRowCol(MatrixRowCol&, int, int) const; + // get part of a row or column + MatrixRowCol() {} // to stop warning messages + ~MatrixRowCol(); + FREE_CHECK(MatrixRowCol) +}; + +class MatrixRow : public MatrixRowCol +{ +public: + // bodies for these are inline at the end of this .h file + MatrixRow(GeneralMatrix*, LoadAndStoreFlag, int=0); + // extract a row + ~MatrixRow(); + void Next(); // get next row + FREE_CHECK(MatrixRow) +}; + +class MatrixCol : public MatrixRowCol +{ +public: + // bodies for these are inline at the end of this .h file + MatrixCol(GeneralMatrix*, LoadAndStoreFlag, int=0); + // extract a col + MatrixCol(GeneralMatrix*, Real*, LoadAndStoreFlag, int=0); + // store/retrieve a col + ~MatrixCol(); + void Next(); // get next row + FREE_CHECK(MatrixCol) +}; + +// MatrixColX is an alternative to MatrixCol where the complete +// column is stored externally + +class MatrixColX : public MatrixRowCol +{ +public: + // bodies for these are inline at the end of this .h file + MatrixColX(GeneralMatrix*, Real*, LoadAndStoreFlag, int=0); + // store/retrieve a col + ~MatrixColX(); + void Next(); // get next row + Real* store; // pointer to local storage + // less skip + FREE_CHECK(MatrixColX) +}; + +/**************************** inline bodies ****************************/ + +inline MatrixRow::MatrixRow(GeneralMatrix* gmx, LoadAndStoreFlag cwx, int row) +{ gm=gmx; cw=cwx; rowcol=row; gm->GetRow(*this); } + +inline void MatrixRow::Next() { gm->NextRow(*this); } + +inline MatrixCol::MatrixCol(GeneralMatrix* gmx, LoadAndStoreFlag cwx, int col) +{ gm=gmx; cw=cwx; rowcol=col; gm->GetCol(*this); } + +inline MatrixCol::MatrixCol(GeneralMatrix* gmx, Real* r, + LoadAndStoreFlag cwx, int col) +{ gm=gmx; data=r; cw=cwx+StoreHere; rowcol=col; gm->GetCol(*this); } + +inline MatrixColX::MatrixColX(GeneralMatrix* gmx, Real* r, + LoadAndStoreFlag cwx, int col) +{ gm=gmx; store=data=r; cw=cwx+StoreHere; rowcol=col; gm->GetCol(*this); } + + +inline void MatrixCol::Next() { gm->NextCol(*this); } + +inline void MatrixColX::Next() { gm->NextCol(*this); } + +#ifdef use_namespace +} +#endif + +#endif diff --git a/3rdparty/newmat/newmatrm.cpp b/3rdparty/newmat/newmatrm.cpp new file mode 100644 index 0000000..68ce618 --- /dev/null +++ b/3rdparty/newmat/newmatrm.cpp @@ -0,0 +1,189 @@ +//$$newmatrm.cpp rectangular matrix operations + +// Copyright (C) 1991,2,3,4: R B Davies + + + +#include "newmat.h" +#include "newmatrm.h" + +#ifdef use_namespace +namespace NEWMAT { +#endif + +#ifdef DO_REPORT +#define REPORT { static ExeCounter ExeCount(__LINE__,12); ++ExeCount; } +#else +#define REPORT {} +#endif + + +// operations on rectangular matrices + + +void RectMatrixRow::Reset (const Matrix& M, int row, int skip, int length) +{ + REPORT + RectMatrixRowCol::Reset + ( M.Store()+row*M.Ncols()+skip, length, 1, M.Ncols() ); +} + +void RectMatrixRow::Reset (const Matrix& M, int row) +{ + REPORT + RectMatrixRowCol::Reset( M.Store()+row*M.Ncols(), M.Ncols(), 1, M.Ncols() ); +} + +void RectMatrixCol::Reset (const Matrix& M, int skip, int col, int length) +{ + REPORT + RectMatrixRowCol::Reset + ( M.Store()+col+skip*M.Ncols(), length, M.Ncols(), 1 ); +} + +void RectMatrixCol::Reset (const Matrix& M, int col) +{ + REPORT + RectMatrixRowCol::Reset( M.Store()+col, M.Nrows(), M.Ncols(), 1 ); +} + + +Real RectMatrixRowCol::SumSquare() const +{ + REPORT + long_Real sum = 0.0; int i = n; Real* s = store; int d = spacing; + // while (i--) { sum += (long_Real)*s * *s; s += d; } + if (i) for(;;) + { sum += (long_Real)*s * *s; if (!(--i)) break; s += d; } + return (Real)sum; +} + +Real RectMatrixRowCol::operator*(const RectMatrixRowCol& rmrc) const +{ + REPORT + long_Real sum = 0.0; int i = n; + Real* s = store; int d = spacing; + Real* s1 = rmrc.store; int d1 = rmrc.spacing; + if (i!=rmrc.n) + { + Tracer tr("newmatrm"); + Throw(InternalException("Dimensions differ in *")); + } + // while (i--) { sum += (long_Real)*s * *s1; s += d; s1 += d1; } + if (i) for(;;) + { sum += (long_Real)*s * *s1; if (!(--i)) break; s += d; s1 += d1; } + return (Real)sum; +} + +void RectMatrixRowCol::AddScaled(const RectMatrixRowCol& rmrc, Real r) +{ + REPORT + int i = n; Real* s = store; int d = spacing; + Real* s1 = rmrc.store; int d1 = rmrc.spacing; + if (i!=rmrc.n) + { + Tracer tr("newmatrm"); + Throw(InternalException("Dimensions differ in AddScaled")); + } + // while (i--) { *s += *s1 * r; s += d; s1 += d1; } + if (i) for (;;) + { *s += *s1 * r; if (!(--i)) break; s += d; s1 += d1; } +} + +void RectMatrixRowCol::Divide(const RectMatrixRowCol& rmrc, Real r) +{ + REPORT + int i = n; Real* s = store; int d = spacing; + Real* s1 = rmrc.store; int d1 = rmrc.spacing; + if (i!=rmrc.n) + { + Tracer tr("newmatrm"); + Throw(InternalException("Dimensions differ in Divide")); + } + // while (i--) { *s = *s1 / r; s += d; s1 += d1; } + if (i) for (;;) { *s = *s1 / r; if (!(--i)) break; s += d; s1 += d1; } +} + +void RectMatrixRowCol::Divide(Real r) +{ + REPORT + int i = n; Real* s = store; int d = spacing; + // while (i--) { *s /= r; s += d; } + if (i) for (;;) { *s /= r; if (!(--i)) break; s += d; } +} + +void RectMatrixRowCol::Negate() +{ + REPORT + int i = n; Real* s = store; int d = spacing; + // while (i--) { *s = - *s; s += d; } + if (i) for (;;) { *s = - *s; if (!(--i)) break; s += d; } +} + +void RectMatrixRowCol::Zero() +{ + REPORT + int i = n; Real* s = store; int d = spacing; + // while (i--) { *s = 0.0; s += d; } + if (i) for (;;) { *s = 0.0; if (!(--i)) break; s += d; } +} + +void ComplexScale(RectMatrixCol& U, RectMatrixCol& V, Real x, Real y) +{ + REPORT + int n = U.n; + if (n != V.n) + { + Tracer tr("newmatrm"); + Throw(InternalException("Dimensions differ in ComplexScale")); + } + Real* u = U.store; Real* v = V.store; + int su = U.spacing; int sv = V.spacing; + //while (n--) + //{ + // Real z = *u * x - *v * y; *v = *u * y + *v * x; *u = z; + // u += su; v += sv; + //} + if (n) for (;;) + { + Real z = *u * x - *v * y; *v = *u * y + *v * x; *u = z; + if (!(--n)) break; + u += su; v += sv; + } +} + +void Rotate(RectMatrixCol& U, RectMatrixCol& V, Real tau, Real s) +{ + REPORT + // (U, V) = (U, V) * (c, s) where tau = s/(1+c), c^2 + s^2 = 1 + int n = U.n; + if (n != V.n) + { + Tracer tr("newmatrm"); + Throw(InternalException("Dimensions differ in Rotate")); + } + Real* u = U.store; Real* v = V.store; + int su = U.spacing; int sv = V.spacing; + //while (n--) + //{ + // Real zu = *u; Real zv = *v; + // *u -= s * (zv + zu * tau); *v += s * (zu - zv * tau); + // u += su; v += sv; + //} + if (n) for(;;) + { + Real zu = *u; Real zv = *v; + *u -= s * (zv + zu * tau); *v += s * (zu - zv * tau); + if (!(--n)) break; + u += su; v += sv; + } +} + + + + +#ifdef use_namespace +} +#endif + + diff --git a/3rdparty/newmat/newmatrm.h b/3rdparty/newmat/newmatrm.h new file mode 100644 index 0000000..917a390 --- /dev/null +++ b/3rdparty/newmat/newmatrm.h @@ -0,0 +1,122 @@ +//$$newmatrm.h rectangular matrix operations + +// Copyright (C) 1991,2,3,4: R B Davies + +#ifndef NEWMATRM_LIB +#define NEWMATRM_LIB 0 + +#ifdef use_namespace +namespace NEWMAT { +#endif + +// operations on rectangular matrices + +class RectMatrixCol; + +class RectMatrixRowCol +// a class for accessing rows and columns of rectangular matrices +{ +protected: +#ifdef use_namespace // to make namespace work +public: +#endif + Real* store; // pointer to storage + int n; // number of elements + int spacing; // space between elements + int shift; // space between cols or rows + RectMatrixRowCol(Real* st, int nx, int sp, int sh) + : store(st), n(nx), spacing(sp), shift(sh) {} + void Reset(Real* st, int nx, int sp, int sh) + { store=st; n=nx; spacing=sp; shift=sh; } +public: + Real operator*(const RectMatrixRowCol&) const; // dot product + void AddScaled(const RectMatrixRowCol&, Real); // add scaled + void Divide(const RectMatrixRowCol&, Real); // scaling + void Divide(Real); // scaling + void Negate(); // change sign + void Zero(); // zero row col + Real& operator[](int i) { return *(store+i*spacing); } // element + Real SumSquare() const; // sum of squares + Real& First() { return *store; } // get first element + void DownDiag() { store += (shift+spacing); n--; } + void UpDiag() { store -= (shift+spacing); n++; } + friend void ComplexScale(RectMatrixCol&, RectMatrixCol&, Real, Real); + friend void Rotate(RectMatrixCol&, RectMatrixCol&, Real, Real); + FREE_CHECK(RectMatrixRowCol) +}; + +class RectMatrixRow : public RectMatrixRowCol +{ +public: + RectMatrixRow(const Matrix&, int, int, int); + RectMatrixRow(const Matrix&, int); + void Reset(const Matrix&, int, int, int); + void Reset(const Matrix&, int); + Real& operator[](int i) { return *(store+i); } + void Down() { store += shift; } + void Right() { store++; n--; } + void Up() { store -= shift; } + void Left() { store--; n++; } + FREE_CHECK(RectMatrixRow) +}; + +class RectMatrixCol : public RectMatrixRowCol +{ +public: + RectMatrixCol(const Matrix&, int, int, int); + RectMatrixCol(const Matrix&, int); + void Reset(const Matrix&, int, int, int); + void Reset(const Matrix&, int); + void Down() { store += spacing; n--; } + void Right() { store++; } + void Up() { store -= spacing; n++; } + void Left() { store--; } + friend void ComplexScale(RectMatrixCol&, RectMatrixCol&, Real, Real); + friend void Rotate(RectMatrixCol&, RectMatrixCol&, Real, Real); + FREE_CHECK(RectMatrixCol) +}; + +class RectMatrixDiag : public RectMatrixRowCol +{ +public: + RectMatrixDiag(const DiagonalMatrix& D) + : RectMatrixRowCol(D.Store(), D.Nrows(), 1, 1) {} + Real& operator[](int i) { return *(store+i); } + void DownDiag() { store++; n--; } + void UpDiag() { store--; n++; } + FREE_CHECK(RectMatrixDiag) +}; + + +inline RectMatrixRow::RectMatrixRow + (const Matrix& M, int row, int skip, int length) + : RectMatrixRowCol( M.Store()+row*M.Ncols()+skip, length, 1, M.Ncols() ) {} + +inline RectMatrixRow::RectMatrixRow (const Matrix& M, int row) + : RectMatrixRowCol( M.Store()+row*M.Ncols(), M.Ncols(), 1, M.Ncols() ) {} + +inline RectMatrixCol::RectMatrixCol + (const Matrix& M, int skip, int col, int length) + : RectMatrixRowCol( M.Store()+col+skip*M.Ncols(), length, M.Ncols(), 1 ) {} + +inline RectMatrixCol::RectMatrixCol (const Matrix& M, int col) + : RectMatrixRowCol( M.Store()+col, M.Nrows(), M.Ncols(), 1 ) {} + +inline Real square(Real x) { return x*x; } +inline Real sign(Real x, Real y) + { return (y>=0) ? x : -x; } // assume x >=0 + + + + + + +#ifdef use_namespace +} +#endif + +#endif + +// body file: newmatrm.cpp + + diff --git a/3rdparty/newmat/nl_ex.cpp b/3rdparty/newmat/nl_ex.cpp new file mode 100644 index 0000000..ba142d1 --- /dev/null +++ b/3rdparty/newmat/nl_ex.cpp @@ -0,0 +1,93 @@ +// This is an example of a non-linear least squares fit. The example +// is from "Nonlinear estimation" by Gavin Ross (Springer,1990), p 63. +// There are better ways of doing the fit in this case so this +// example is just an example. + +// The model is E(y) = a + b exp(-kx) and there are 6 data points. + +#define WANT_STREAM +#define WANT_MATH +#include "newmatnl.h" +#include "newmatio.h" + +#ifdef use_namespace +using namespace RBD_LIBRARIES; +#endif + + +// first define the class describing the predictor function + +class Model_3pe : public R1_Col_I_D +{ + ColumnVector x_values; // the values of "x" + RowVector deriv; // values of derivatives +public: + Model_3pe(const ColumnVector& X_Values) + : x_values(X_Values) { deriv.ReSize(3); } + // load X data + Real operator()(int); + bool IsValid() { return para(3)>0; } + // require "k" > 0 + ReturnMatrix Derivatives() { return deriv; } +}; + +Real Model_3pe::operator()(int i) +{ + Real a = para(1); Real b = para(2); Real k = para(3); + Real xvi = x_values(i); + Real e = exp(-k * xvi); + deriv(1) = 1.0; // calculate derivatives + deriv(2) = e; + deriv(3) = - b * e * xvi; + return a + b * e; // function value +} + +int main() +{ + { + // Get the data + ColumnVector X(6); + ColumnVector Y(6); + X << 1 << 2 << 3 << 4 << 6 << 8; + Y << 3.2 << 7.9 << 11.1 << 14.5 << 16.7 << 18.3; + + + // Do the fit + Model_3pe model(X); // the model object + NonLinearLeastSquares NLLS(model); // the non-linear least squares + // object + ColumnVector Para(3); // for the parameters + Para << 9 << -6 << .5; // trial values of parameters + cout << "Fitting parameters\n"; + NLLS.Fit(Y,Para); // do the fit + + // Inspect the results + ColumnVector SE; // for the standard errors + NLLS.GetStandardErrors(SE); + cout << "\n\nEstimates and standard errors\n" << + setw(10) << setprecision(2) << (Para | SE) << endl; + Real ResidualSD = sqrt(NLLS.ResidualVariance()); + cout << "\nResidual s.d. = " << setw(10) << setprecision(2) << + ResidualSD << endl; + SymmetricMatrix Correlations; + NLLS.GetCorrelations(Correlations); + cout << "\nCorrelationMatrix\n" << + setw(10) << setprecision(2) << Correlations << endl; + ColumnVector Residuals; + NLLS.GetResiduals(Residuals); + DiagonalMatrix Hat; + NLLS.GetHatDiagonal(Hat); + cout << "\nX, Y, Residual, Hat\n" << setw(10) << setprecision(2) << + (X | Y | Residuals | Hat.AsColumn()) << endl; + // recover var/cov matrix + SymmetricMatrix D; + D << SE.AsDiagonal() * Correlations * SE.AsDiagonal(); + cout << "\nVar/cov\n" << setw(14) << setprecision(4) << D << endl; + } + +#ifdef DO_FREE_CHECK + FreeCheck::Status(); +#endif + + return 0; +} diff --git a/3rdparty/newmat/nl_ex.txt b/3rdparty/newmat/nl_ex.txt new file mode 100644 index 0000000..78bfef7 --- /dev/null +++ b/3rdparty/newmat/nl_ex.txt @@ -0,0 +1,42 @@ +Fitting parameters + + 70.02918529 209.6252324 0.1541078372 + 94.78295699 + 49.23360397 147.1803571 0.1734849298 + 1.848950128 + 0.7422941575 1.70673579 0.1733822274 + 0.2113527145 + 0.1955923541 0.06041118379 0.1754552928 + 0.1754553498 + 0.1754553471 2.341694142e-08 0.1754553393 +Converged + + +Estimates and standard errors + 19.77 0.73 + -23.63 0.82 + 0.35 0.04 + + +Residual s.d. = 0.42 + +CorrelationMatrix + 1.00 -0.05 -0.91 + -0.05 1.00 -0.31 + -0.91 -0.31 1.00 + + +X, Y, Residual, Hat + 1.00 3.20 0.10 0.89 + 2.00 7.90 -0.11 0.33 + 3.00 11.10 -0.38 0.39 + 4.00 14.50 0.58 0.35 + 6.00 16.70 -0.16 0.32 + 8.00 18.30 -0.02 0.73 + + +Var/cov + 0.5295 -0.0324 -0.0250 + -0.0324 0.6668 -0.0096 + -0.0250 -0.0096 0.0014 + diff --git a/3rdparty/newmat/nm10.htm b/3rdparty/newmat/nm10.htm new file mode 100644 index 0000000..1dfe84f --- /dev/null +++ b/3rdparty/newmat/nm10.htm @@ -0,0 +1,3560 @@ + + + + + + + + + +Newmat10 documentation + + + + + +

Documentation for newmat10D, a matrix library in C++

+

next - skip - +up - start
+return to online documentation page

+

Copyright (C) 2006: R B Davies

+

2 April, 2006

+ + + + + +
1. +Introduction
+2. Getting started
+3. Reference manual
4. +Error messages
+5. Design of the library
+

This is the how to use documentation for newmat plus some +background information on its design.

+

There is additional support material on my web site. +

+

Navigation:  This page is arranged in sections, +sub-sections and sub-sub-sections; four cross-references are given at the top +of these. Next takes you through the sections, sub-sections and +sub-sub-sections in order. Skip goes to the next section, sub-section or +sub-sub-section at the same level in the hierarchy as the section, sub-section +or sub-sub-section that you are currently reading. Up takes you up one +level in the hierarchy and start gets you back here.

+

Please read the sections on customising and +compilers before +attempting to compile newmat.

+

1. Introduction

+

next - skip - +up - start

+ + + + + +
1.1 +Conditions of use
+1.2 Description
+1.3 Is this the library for you?
+1.4 Other matrix libraries
1.5 +Where to find this library
+1.6 How to contact the author
+1.7 Change history
+1.8 References
+

1.1 Conditions of use

+

next - skip - +up - start

+
+

I place no restrictions on the use of newmat except that I take no liability for any problems that may arise from its use, +distribution or other dealings with it.

+

+You can use it in your commercial projects.

+

+You can make and distribute modified or merged versions. You can +include parts of it in your own software.

+

+If you distribute modified or merged versions, please make it clear +which parts are mine and which parts are modified.

+

+For a substantially modified version, simply note that it is, in +part, derived from my software. A comment in the code will be +sufficient.

+

+The software is provided "as is", without warranty of any kind.

+

+Please understand that there may still be bugs and errors. Use at +your own risk. I (Robert Davies) take no responsibility for any errors +or omissions in this package or for any misfortune that may befall you +or others as a result of your use, distribution or other dealings with it.


+

Please report bugs to me at robert (at) statsresearch.co.nz

+

When reporting a bug please tell me which C++ compiler you are using, and +what version. Also give me details of your computer. And tell me which version +of newmat (e.g. newmat03 or newmat04) you are using. Note any changes +you have made to my code. If at all possible give me a piece of code +illustrating the bug. See the problem report form.

+

Please do report bugs to me.

+

1.2 General description +

+

next - skip - +up - start

+

The package is intended for scientists and engineers who need to manipulate +a variety of types of matrices using standard matrix operations. Emphasis is on +the kind of operations needed in statistical calculations such as least +squares, linear equation solve and eigenvalues.

+

It supports matrix types

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Matrixrectangular matrix
nricMatrixfor use with Numerical Recipes in C programs
UpperTriangularMatrix 
LowerTriangularMatrix 
DiagonalMatrix 
SymmetricMatrix 
BandMatrix 
UpperBandMatrixupper triangular band matrix
LowerBandMatrixlower triangular band matrix
SymmetricBandMatrix 
RowVectorderived from Matrix
ColumnVectorderived from Matrix
IdentityMatrixdiagonal matrix, elements have same value
+
+

Only one element type (float or double) is supported.

+

The package includes the operations *, +, -, +Kronecker product, Schur product, concatenation, inverse, transpose, conversion between types, submatrix, +determinant, Cholesky decomposition, QR triangularisation, singular value +decomposition, eigenvalues of a symmetric matrix, sorting, fast Fourier +transform, printing and an interface with Numerical Recipes in C.

+

It is intended for matrices in the range 10 x 10 to the maximum size your +machine will accommodate in a single array. The number of elements in an array +cannot exceed the maximum size of an int. The package will work for very +small matrices but becomes rather inefficient. Some of the factorisation +functions are not (yet) optimised for paged memory and so become inefficient +when used with very large matrices.

+

A lazy evaluation approach to evaluating matrix expressions is used +to improve efficiency and reduce the use of temporary storage.

+

I have tested versions of the package on variety of compilers and platforms +including Borland, Gnu, Microsoft, Sun and Watcom. For more details +see the section on compilers.

+

1.3 Is this the library for +you?

+

next - skip - +up - start

+

Do you

+
    +
  • understand * to mean matrix multiply and not element by element +multiply
  • +
  • need matrix operators such as * and + defined as +operators so you can write things like X = A * (B + C);
  • +
  • need a variety of types of matrices (but not sparse)
  • +
  • need only one element type (float or double)
  • +
  • work with matrices in the range 10 x 10 up to what can be stored in memory +
  • +
  • tolerate a moderately large but not huge package
  • +
  • need high quality but not necessarily the latest numerical methods.
  • +
+

Then newmat may be the right matrix library for you.

+

1.4 Other matrix libraries +

+

next - skip - +up - start

+

For details of other C++ matrix libraries look at +http://www.robertnz.net/cpp_site.html. +Look at the section lists of libraries which gives the locations of +several very comprehensive lists of matrix and other C++ libraries and at the +section source code.

+

1.5 Where to find this +library

+

next - skip - +up - start

+ +

1.6 How to contact the +author

+

next - skip - +up - start

+
   Robert Davies
+   16 Gloucester Street
+   Wilton
+   Wellington
+   New Zealand
+
+   email: robert at statsresearch.co.nz
+
+ +

1.7 Change history

+

next - skip - +up - start

+

Newmat10D - April, 2006:

+

Compatibility fix for Gnu G++ 4.1.

+

Newmat10C - March, 2006:

+

Update conditions of use to be acceptable for Debian +distribution, a few minor fixes; additional make files; update include.h, myexpect.h, +myexcept.cpp, precisio.h.

+

Newmat10B - January, 2005:

+

Fix compatibility problems with Gnu G++ 3.4 and Intel 8.1 +compilers; update include.h, myexpect.h, +myexcept.cpp, precisio.h.

+

Newmat10A - October, 2002:

+

Fix error in Kronecker product; fixes for Intel and GCC3 +compilers.

+

Newmat10 - January, 2002:

+

Improve compatibility with GCC, fix errors in FFT and +GenericMatrix, update simulated exceptions, maxima, minima, determinant, dot +product and Frobenius norm functions, update make files for CC and GCC, faster +FFT, A.ReSize(B), fix pointer arithmetic, << for loading +data into rows, IdentityMatrix, Kronecker product, sort singular values.

+

Newmat09 - September, 1997:

+

Operator ==, !=, +=, -=, +*=, /=, |=, &=. Follow new rules for +for (int i; ... ) construct. Change Boolean, TRUE, FALSE to bool, true, +false. Change ReDimension to ReSize. SubMatrix allows zero rows and columns. +Scalar +, - or * matrix is OK. Simplify simulated +exceptions. Fix non-linear programs for AT&T compilers. Dummy inequality +operators. Improve internal row/column operations. Improve matrix LU +decomposition. Improve sort. Reverse function. IsSingular function. Fast trig +transforms. Namespace definitions.

+

Newmat08A - July, 1995:

+

Fix error in SVD.

+

Newmat08 - January, 1995:

+

Corrections to improve compatibility with Gnu, Watcom. +Concatenation of matrices. Elementwise products. Option to use compilers +supporting exceptions. Correction to exception module to allow global +declarations of matrices. Fix problem with inverse of symmetric matrices. Fix +divide-by-zero problem in SVD. Include new QR routines. Sum function. +Non-linear optimisation. GenericMatrices.

+

Newmat07 - January, 1993

+

Minor corrections to improve compatibility with Zortech, +Microsoft and Gnu. Correction to exception module. Additional FFT functions. +Some minor increases in efficiency. Submatrices can now be used on RHS of =. +Option for allowing C type subscripts. Method for loading short lists of +numbers.

+

Newmat06 - December 1992:

+

Added band matrices; 'real' changed to 'Real' (to avoid +potential conflict in complex class); Inject doesn't check for no loss of +information; fixes for AT&T C++ version 3.0; real(A) becomes A.AsScalar(); +CopyToMatrix becomes AsMatrix, etc; .c() is no longer required (to be deleted +in next version); option for version 2.1 or later. Suffix for include files +changed to .h; BOOL changed to Boolean (BOOL doesn't work in g++ v 2.0); +modifications to allow for compilers that destroy temporaries very quickly; +(Gnu users - see the section of compilers). Added CleanUp, +LinearEquationSolver, primitive version of exceptions.

+

Newmat05 - June 1992:

+

For private release only

+

Newmat04 - December 1991:

+

Fix problem with G++1.40, some extra documentation +

+

Newmat03 - November 1991:

+

Col and Cols become Column and Columns. Added Sort, SVD, +Jacobi, Eigenvalues, FFT, real conversion of 1x1 matrix, Numerical Recipes +in C interface, output operations, various scalar functions. Improved +return from functions. Reorganised setting options in "include.hxx". +

+

Newmat02 - July 1991:

+

Version with matrix row/column operations and numerous +additional functions.

+

Matrix - October 1990:

+

Early version of package.

+

1.8 References

+

next - skip - +up - start

+
    +
  • The matrix LU decomposition is from Golub, G.H. & Van Loan, C.F. +(1996), Matrix Computations, published by Johns Hopkins University +Press.
  • +
  • Part of the matrix inverse/solve routine is adapted from Press, Flannery, +Teukolsky, Vetterling (1988), Numerical Recipes in C, published by the +Cambridge University Press.
  • +
  • Many of the advanced matrix routines are adapted from routines in Wilkinson +and Reinsch (1971), Handbook for Automatic Computation, Vol II, Linear +Algebra published by Springer Verlag.
  • +
  • The fast Fourier transform is adapted from Carl de Boor (1980), Siam J +Sci Stat Comput, pp173-8 and the fast trigonometric transforms from Charles +Van Loan (1992) in Computational frameworks for the fast Fourier +transform published by SIAM.
  • +
  • The sort function is derived from Sedgewick, Robert (1992), Algorithms +in C++ published by Addison Wesley.
  • +
+

For references about Newmat see

+
    +
  • Davies, R.B. (1994) Writing a matrix package in C++. In OON-SKI'94: The +second annual object-oriented numerics conference, pp 207-213. Rogue Wave +Software, Corvallis.
  • +
  • Eddelbuttel, Dirk (1996) Object-oriented econometrics: matrix programming +in C++ using GCC and Newmat. Journal of Applied Econometrics, Vol 11, No 2, pp +199-209.
  • +
+

2. Getting started

+

next - skip - +up - start

+ + + + + +
2.1 Overview
+2.2 Make files
+2.3 Customising
+2.4 Compilers
+2.5 Updating from previous versions
+2.6 Catching exceptions
2.7 Example
+2.8 Testing
+2.9 Bugs
+2.10 Files in newmat10
+2.11 Problem report form
+

2.1 Overview

+

next - skip - +up - start

+

I use .h as the suffix of definition files and .cpp as the suffix of C++ +source files.

+

You will need to compile all the *.cpp files listed as program files in the +files section to get the complete package. Ideally you +should store the resulting object files as a library. The tmt*.cpp files are +used for testing, example.cpp is an example and sl_ex.cpp, nl_ex.cpp and garch.cpp are examples +of the non-linear solve and optimisation routines. A +demonstration and test of the exception mechanism is in test_exc.cpp.

+

I include a number of make files for compiling the example and the +test package. See the section on make files for details. +But with the PC compilers, its pretty quick just to load all the files in the +interactive environments by pointing and clicking.

+

Use the large or win32 console model when you are using a PC. Do not +outline inline functions. You may need to increase the stack size.

+

Your source files that access the newmat will need to #include one or more +of the following files.

+ + + + + + + + + + + + + + + + + + + + + +
include.hto access just the compiler options
newmat.hto access just the main matrix library (includes include.h)
newmatap.hto access the advanced matrix routines such as Cholesky decomposition, QR +triangularisation etc (includes newmat.h)
newmatio.hto access the output routines (includes newmat.h) You +can use this only with compilers that support the standard input/output +routines including manipulators
newmatnl.hto access the non-linear optimisation routines (includes newmat.h)
+

See the section on customising to see how to edit +include.h for your environment and the section on compilers for any special problems with the compiler you +are using.

+

2.2 Make files

+

next - skip - +up - start

+

I have included make files for CC, Microsoft, Intel, Borland 5.5 and Gnu compilers +for compiling the examples. You +can generate make files for a number of other compilers with my +genmake utility. Make files provide +a way of compiling your programs without using the IDE that comes with +PC compilers. See the files section for details. See the +example for how to use them. Leave out the target name +to compile and link all my examples and test files. For more information on how +to use these files see the documentation for my +genmake utility.

+

PC

+

I include make files for Microsoft, Intel, Borland 5.5. For Borland you will need to edit it to show where +you have stored your Borland compiler. For make files for other compilers use my +genmake utility.

+

Unix

+

The make file for the Unix CC compilers link a .cxx file to each .cpp +file since some of these compilers do not recognise .cpp as a legitimate +extension for a C++ file. I suggest you delete this part of the make +file and, if necessary, rename the .cpp files to something your compiler +recognises.

+

My make file for Gnu GCC on Unix systems is for use with +gmake rather than make. I assume your compiler recognises the +.cpp extension. Ordinary make works with it on the Sun but not the +Silicon Graphics or HP machines. On Linux use make.

+

My make file for the CC compilers works with the ordinary make.

+

To compile everything with the CC compiler use

+
   make -f nm_cc.mak
+
+ +

or for the gnu compiler use

+
   gmake -f nm_gnu.mak
+
+ +

There is a line in the make file for CC rm -f $*.cxx. Some systems +won't accept this line and you will need to delete it. In this case, if you +have a bad compile and you are using my scheme for linking .cxx files, you will +need to delete the .cxx file link generated by that compile before you can do +the next one.

+

There is also a make file for the Intel compiler for Linux.

+

2.3 Customising

+

next - skip - +up - start

+

The file include.h sets a variety of options including several +compiler dependent options. You may need to edit include.h to get the options +you require. If you are using a compiler different from one I have worked with +you may have to set up a new section in include.h appropriate for your +compiler.

+

Borland, Turbo, Gnu, Microsoft and Watcom are recognised automatically. If +none of these are recognised a default set of options is used. These are fine +for AT&T, HPUX and Sun C++. If you using a compiler I don't know about you +may have to write a new set of options.

+

There is an option in include.h for selecting whether you use compiler +supported exceptions, simulated exceptions, or disable exceptions. I now set + compiler supported exceptions as the default. Use the option for +compiler supported exceptions if and only if you have set the option on +your compiler to recognise exceptions. Disabling exceptions sometimes helps +with compilers that are incompatible with my exception simulation scheme.

+

If you are using an older compiler that does not recognises +bool as required by the standard then de-activate the statement +#define bool_LIB. This will turn on my Boolean class.

+

Activate the appropriate statement to make the element type float or double. +

+

I suggest you leave the options TEMPS_DESTROYED_QUICKLY, +TEMPS_DESTROYED_QUICKLY_R de-activated, unless you are using a very old +version of Gnu compiler (<2.6). This stores the trees describing +matrix expressions on the stack rather than the heap. See the discussion on +destruction of temporaries for more explanation.

+

The option DO_FREE_CHECK is used for tracking memory +leaks and normally should not be activated.

+

Activate SETUP_C_SUBSCRIPTS if you want to use traditional C style +element access. Note that this does not change +the starting point for indices when you are using round brackets for accessing +elements or selecting submatrices. It does enable you to use C style square +brackets.

+

Activate #define use_namespace if you want to use namespaces. Do this only if you are sure your compiler +supports namespaces. If you do turn this option on, be prepared to turn it off +again if the compiler reports inaccessible variables or the linker reports +missing links.

+

Activate #define _STANDARD_ to use the standard names for the +included files and to find the floating point precision data using the floating +point standard. This will work only with the most recent compilers. This is +automatically turned on for the Gnu compiler version 3 and the Intel compiler +for Linux.

+

If you haven't defined _STANDARD_ and are using a compiler that +include.h does not recognise and you want to pick up the floating point +precision data from float.h then activate #define use_float_h. +Otherwise the floating point precision data will be accessed from +values.h. You may need to do this with computers from Digital, in +particular.

+

2.4 Compilers

+

next - skip - +up - start

+ + + + + +
+2.4.1 AT&T
+2.4.2 Borland
+2.4.3 Gnu G++
+2.4.4 HPUX
+2.4.5 Intel
+2.4.6 Microsoft
+2.4.7 Sun
+2.4.8 Watcom
+

I have tested this library on a number of compilers. Here are the levels of +success and any special considerations. In most cases I have chosen code that +works under all the compilers I have access to, but I have had to include some +specific work-arounds for some compilers. For the PC versions, I use Pentium 3 +& 4 computers running windows 2000 or XP or various varieties of Linux +(Red Hat or Fedora). The Unix versions are on a Sun Sparc +station. Thanks to Victoria University for access to the Sparc.

+

I have set up a block of code for each of the compilers in include.h. Turbo, +Borland, Gnu, Microsoft and Watcom are recognised automatically. There is a +default option that works for AT&T, Sun C++ and HPUX. So you don't +have to make any changes for these compilers. Otherwise you may have to build +your own set of options in include.h.

+

2.4.1 AT&T

+

next - skip - +up - start

+

The AT&T compiler used to be available on a wide variety of Unix +workstations. I don't know if anyone still uses it. However the AT&T options are +the default if your compiler is not recognised.

+

AT&T C++ 2.1; 3.0.1 on a Sun: Previous versions worked on these +compilers, which I no longer have access to.

+

In AT&T 2.1 you may get an error when you use an expression for the +single argument when constructing a Vector or DiagonalMatrix or one of the +Triangular Matrices. You need to evaluate the expression separately.

+

2.4.2 Borland

+

next - skip - +up - start

+

Newer compilers

+

Borland Builder version 6: This is not compatible with +newmat10. Use newmat11 instead.

+

Borland Builder version 5: This works fine in console mode and no +special editing of the source codes is required. I haven't tested it in GUI +mode. You can set the newmat10 options to use namespace and the standard +library. You +should turn off the Borland option to use pre-compiled headers. There +are notes on compiling with the IDE on my website. +Alternatively you can use the nm_b55.mak make file.

+

Borland Builder version 4: I have successfully used this on older +versions of newmat using the +console wizard (menu item file/new - select new tab). Use compiler +exceptions. Suppose you are compiling my test program tmt. Rename my +main() function in tmt.cpp to my_main(). Rename +tmt.cpp to tmt_main.cpp. Borland will generate a new file +tmt.cpp containing their main() function. Put the line int +my_main(); above this function and put return my_main(); into the +body of main().

+

Borland compiler version 5.5: this is the free C++ compiler available +from Borland's web site. I suggest you use +the compiler supported exceptions and turn on standard in include.h. You +can use the make file nm_b55.mak after editing to correct the file locations for +your system.

+

Older compilers

+

Borland C++ 3.1, 5.02: Use the simulated exceptions with these. Then +version 5.02 works OK. You will need to use +the large or 32 bit flat model. If you are not debugging, turn off the options +that collect debugging information. It compiles with version 3.1 but you can't +run the tmt test program.

+

If you are using versions earlier than 5 remember to edit include.h to +activate my Boolean class.

+

When running my test program under ms-dos you may run out of memory. Either +compile the test routine to run under easywin or use simulated exceptions +rather than the built in exceptions.

+

If you can, upgrade to windows 9X or window NT and use the 32 bit console +model.

+

If you are using the 16 bit large model, don't forget to keep all matrices +less than 64K bytes in length (90x90 for a rectangular matrix if you are using +double as your element type). Otherwise your program will crash +without warning or explanation. You will need to break the tmt set of test files into several parts to get the program +to fit into your computer and run without stack overflow.

+

One version of Borland had DBL_MIN incorrectly defined. If you are using an +older version of Borland and are getting strange numerical errors in the test +programs reinstate the commented out statements in precision.h.

+

You can generate make files for versions 5 or 3.1 with my +genmake utility.

+

2.4.3 Gnu G++

+

next - skip - +up - start

+

Gnu G++ 3.3, 4.0, 4.1: These work OK. If you are using a much +earlier version see if you can upgrade. Standard is automatically turned on with 3.X.

+

If you are using 2.6 or earlier remember to edit include.h to activate my +Boolean class. In 2.6.?, fabs(*X++) causes a problem. You may need to write you +own non-inlined version. 

+

For versions earlier than 2.6.0 you must enable the options +TEMPS_DESTROYED_QUICKLY and TEMPS_DESTROYED_QUICKLY_R. You can't use +expressions like Matrix(X*Y) in the middle of an expression and +(Matrix)(X*Y) is unreliable. If you write a function returning a +matrix, you MUST use the ReturnMatrix method described in +this documentation. This is because g++ destroys temporaries occurring in an +expression too soon for the two stage way of evaluating expressions that newmat +uses. You will have problems with versions of Gnu earlier than 2.3.1.

+

2.4.4 HP-UX

+

next - skip - +up - start

+

HP 9000 series HP-UX. I no longer have access to this compiler. Newmat09 +worked without problems with the simulated exceptions; haven't tried the +built-in exceptions.

+

With recent versions of the compiler you may get warning messages like +Unsafe cast between pointers/references to incomplete classes. At +present, I think these can be ignored.

+

Here are comments I made in 1997.

+

I have tried the library on two versions of HP-UX. (I don't know the version +numbers, the older is a clone of AT&T 3, the newer is HP's version with +exceptions). Both worked after the modifications described in this section. +

+

With the older version of the compiler I needed to edit the math.h library +file to remove a duplicate definition of abs.

+

With the newer version you can set the +eh option to enable exceptions and +activate the UseExceptions option in include.h. If you are using my make file, +you will need to replace CC with CC +eh where ever CC occurs. I recommend that +you do not do this and either disable exceptions or use my simulated +exceptions. I get core dumps when I use the built-in exceptions and suspect +they are not sufficiently debugged as yet.

+

If you are using my simulated exceptions you may get a mass of error +messages from the linker about __EH_JMPBUF_TEMP. In this case get file setjmp.h +(in directory /usr/include/CC ?) and put extern in front of the line

+
   jmp_buf * __EH_JMPBUF_TEMP;
+
+ +

The file setjmp.h is accessed in my file myexcept.h. You may want to change +the #include statement to access your edited copy of setjmp.h.

+ +

2.4.5 Intel

+

next - skip - +up - start

+ +

Newmat works correctly with the Intel 9 C++ compilers for Windows and for +Linux. Standard is automatically switched on for the Linux version and for the +Windows version if you are emulating VC++ 7 or higher.

+ +

2.4.6 Microsoft

+

next - skip - +up - start

+

Newer versions

+

See my web site for instructions how to work +Microsoft's IDE.

+

Microsoft Visual C++ 8: I have tested the express version using +my make file run the compiler.

+

Microsoft Visual C++ 7, 7.1: This works OK. Note that all my tests have +been in console mode. The standard option is on by default but I am still a bit +wary about the namespace option.

+

Microsoft Visual C++ 6: Get the latest service pack. I have tried this +in console mode and it seems to work satisfactorily. Use the compiler supported exceptions. You +may be able to +use the namespace and standard options but I suggest not using namespace. If you want to work under MFC +you may need to #include "stdafx.h" at the beginning of each .cpp file.

+

Microsoft Visual C++ 5: I have tried this in console mode and it +seems to work satisfactorily. There may be a problem with namespace (fixed by Service Pack 3?). Turn optimisation +off. Use the compiler supported exceptions. If +you want to work under MFC  +you may need to #include "stdafx.h" at the +beginning of each .cpp file.

+

Older versions

+

Microsoft Visual C++ 2.0: This used to work OK. I haven't tried it with +recent versions of newmat.

+

You must #define TEMPS_DESTROYED_QUICKLY owing to a bug in version +7 (at least) of MSC. There are some notes in the file include.h on +changes to run under version 7. I haven't tried newmat10 on version 7.

+

Microsoft Visual C++ 1.51. Disable exceptions, comment out the line in +include.h #define TEMPS_DESTROYED_QUICKLY_R. In tmt.cpp, +comment out the Try and CatchAll lines at the beginning of +main() and the line trymati(). You can use the makefile +ms.mak. You will probably need to break the tmt +test files into two parts to get the program to link.

+

If you can, upgrade to windows 95, 98 or window NT and use the 32 bit +console model.

+

If you are using the 16 bit large model, don't forget to keep all matrices +less than 64K bytes in length (90x90 for a rectangular matrix if you are using +double as your element type). Otherwise your program will crash +without warning or explanation. You may need to break the tmt set of test files into two parts to get the program to +fit into your computer.

+

Microsoft Visual C++ 4: I haven't tried this - a correspondent reports: I +use Microsoft Visual C++ Version 4. there is only one minor problem. In all +files you must include #include "stdafx.h" (presumably if +you are using MFC). This file contains essential information for VC++. Leave it +out and you get Unexpected end of file.

+

2.4.7 Sun

+

next - skip - +up - start

+

Sun C++: The current version works fine with +compiler supported exceptions. Sun C++ (version +5): There seems to be a problem with exceptions. If you use my simulated +exceptions the non-linear optimisation programs hang. If you use the compiler +supported exceptions my tmt and test_exc programs crash. You should +disable exceptions.

+

2.4.8 Watcom

+

next - skip - +up - start

+

Open Watcom C++: this works fine.

+

2.5 Updating from previous +versions

+

next - skip - +up - start

+

Newmat10 includes new maxima, minima, +determinant, dot product and Frobenius norm functions, a +faster FFT, revised make files for GCC +and CC compilers, several corrections, new ReSize function, IdentityMatrix +and Kronecker Product. Singular values from +SVD are sorted. The program files include a new file, newfft.cpp, so you +will need to include this in the list of files in your IDE and make files. There +is also a new test file tmtm.cpp. +Pointer arithmetic now mostly meets requirements of +standard. You can use << to load data into rows +of a matrix. The default options in include.h have been +changed. If you are updating from a beta version of newmat09 look through the +next section as there were some late changes to newmat09.

+

If you are upgrading from newmat08 note the following: +

+
    +
  • Boolean, TRUE, FALSE are now bool, true, false. See +customising if your compiler supports the bool class. +
  • +
  • ReDimension is now ReSize. +
  • +
  • The simulated exception package has +been updated.
  • +
  • Operators ==, !=, +=, +-=, *=, |=, &= are now supported as +binary matrix operators.
  • +
  • A+=f, A-=f, A*=f, A/=f, +f+A, f-A, f*A are supported for A +matrix, f scalar.
  • +
  • Fast trigonometric transforms. +
  • +
  • Reverse function for reversing order of +elements in a vector or matrix.
  • +
  • IsSingular function.
  • +
  • An option is included for defining namespaces.
  • +
  • Dummy inequality operators are defined for compatibility +with the STL.
  • +
  • The row/column classes in newmat3.cpp have been modified to +improve efficiency and correct an invalid use of pointer arithmetic. Most users +won't be using these classes explicitly; if you are, please contact me for +details of the changes.
  • +
  • Matrix LU decomposition rewritten (faster for large arrays). +
  • +
  • The sort function rewritten (faster).
  • +
  • The documentation files newmata.txt and newmatb.txt have +been amalgamated and both are included in the hypertext version.
  • +
  • Some of the make files reorganised +again.
  • +
+

If you are upgrading from newmat07 note the following: +

+
    +
  • .cxx files are now .cpp files. Some versions of won't accept +.cpp. The make files for Gnu and AT&T link the .cpp files to .cxx +files before compilation and delete the links after compilation.
  • +
  • An option in include.h allows you to +use compiler supported exceptions, simulated exceptions or disable exceptions. +Edit the file include.h to select one of these three options. Don't simulate +exceptions if you have set your compiler's option to implement exceptions. +
  • +
  • New QR decomposition functions. +
  • +
  • A non-linear least squares class. +
  • +
  • No need to explicitly set the AT&T option in include.h. +
  • +
  • Concatenation and elementwise +multiplication.
  • +
  • A new GenericMatrix class. +
  • +
  • Sum function.
  • +
  • Some of the make files reorganised. +
  • +
+

If you are upgrading from newmat06 note the following: +

+
    +
  • If you are using << to load a Real into a submatrix +change this to =.
  • +
+

If you are upgrading from newmat03 or newmat04 +note the following

+
    +
  • .hxx files are now .h files
  • +
  • real changed to Real
  • +
  • BOOL changed to Boolean
  • +
  • CopyToMatrix changed to AsMatrix, etc
  • +
  • real(A) changed to A.AsScalar()
  • +
+

The current version is quite a bit longer that newmat04, so +if you are almost out of space with newmat04, don't throw newmat04 away until +you have checked your program will work under this version.

+

See the change history for other changes.

+

2.6 Catching exceptions

+

This section applies particularly to people using compiler supported +exceptions rather than my simulated exceptions.

+

If newmat detects an error it will throw an exception. It is important that +you catch this exception and print the error message. Otherwise you will get an +unhelpful message like abnormal termination. I suggest you set up your +main program like 

+
#define WANT_STREAM             // or #include <iostream>
+#include "include.h"            // or #include "newmat.h"
+#include "myexcept.h"
+
+main()
+{
+   try
+   {
+      ... your program here
+   }
+   // catch exceptions thrown by my programs
+   catch(Exception) { cout << Exception::what() << endl; }
+   // catch exceptions thrown by other people's programs
+   catch(...) { cout << "exception caught in main program" << endl; }
+   return 0;
+}
+

If you are using a GUI version rather a console version of the program you +will need to replace the cout statements by windows pop-up messages.

+

If you are using my simulated exceptions or have set the disable exceptions +option in include.h then uncaught exceptions automatically print the +error message generated by the exception so you can ignore this section. +Alternatively use Try, Catch and CatchAll in place of try, catch +and catch(...) in the preceding code. It is probably a good idea to do +this if you are using a GUI version of the program as opposed to a console +version as the cout statement used in newmat's Terminate function +may be ignored in a GUI version.

+

See the section on exceptions for more information on +the exception structure.

+

2.7 Example

+

next - skip - +up - start

+

An example is given in example.cpp. This gives a simple linear +regression example using five different algorithms. The correct output is given +in example.txt. The program carries out a rough check that no memory +is left allocated on the heap when it terminates. See the section on +testing for a comment on the reliability of this check +(generally it doesn't work with the newer compilers) and the use of the +DO_FREE_CHECK option.

+

I include a variety of make files. To compile the example use a command like +

+
   gmake -f nm_gnu.mak example              (Gnu G++)
+   gmake -f nm_cc.mak example               (AT&T, HPUX, Sun)
+   make -f nm_b55.mak example.exe           (Borland C++ 5.5)
+

You can generate make make files for a number of other compilers with my +genmake utility.

+ +

To compile all the example and test files use a command like

+
   gmake -f nm_gnu.mak                      (Gnu G++)
+
+ +

The example uses io manipulators. It will not work with a +compiler that does not support the standard io manipulators.

+

Other example files are nl_ex.cpp and garch.cpp for +demonstrating the non-linear fitting routines, sl_ex for demonstrating +the solve function and test_exc for demonstrating the exceptions.

+

2.8 Testing

+

next - skip - +up - start

+

The library package contains a comprehensive test program in the form of a +series of files with names of the form tmt?.cxx. The files consist of a large +number of matrix formulae all of which evaluate to zero (except the first one +which is used to check that we are detecting non-zero matrices). The printout +should state that it has found just one non-zero matrix.

+

The test program should be run with Real typedefed to double +rather than float in include.h.

+

Make sure the C subscripts are enabled if you want +to test these.

+

If you are carrying out some form of bounds checking, for example, with +Borland's CodeGuard, then disable the testing of the Numerical Recipes in C interface. Activate the statement +#define DONT_DO_NRIC in tmt.h.

+

Various versions of the make file (extension .mak) are included with the +package. See the section on make files.

+

The program also allocates and deletes a large block and small block of +memory before it starts the main testing and then at the end of the test. It +then checks that the blocks of memory were allocated in the same place. If not, +then one suspects that there has been a memory leak. i.e. a piece of memory has +been allocated and not deleted.

+

This is not completely foolproof. Programs may allocate extra print buffers +while the program is running. I have tried to overcome this by doing a print +before I allocate the first memory block. Programs may allocate memory for +different sized items in different places, or might not allocate items +consecutively. Or they might mix the items with memory blocks from other +programs. Nevertheless, I seem to get consistent answers from some of the +compilers I work with, so I think this is a worthwhile test. The compilers that +the test seems to work for include the Borland compilers, Microsoft VC++ 6 , +Watcom 10a, and Gnu 2.96 for Linux.

+

If the DO_FREE_CHECK option in include.h is activated, +the program checks that each new is balanced with exactly one +delete. This provides a more definitive test of no memory leaks. There +are additional statements in myexcept.cpp which can be activated to print out +details of the memory being allocated and released.

+

I have included a facility for checking that each piece of code in the +library is really exercised by the test routines. Each block of code in the +main part of the library contains a word REPORT. newmat.h has +a line defining REPORT that can be activated (deactivate the dummy +version). This gives a printout of the number of times each of the +REPORT statements in the .cpp files is accessed. Use a grep +with line numbers to locate the lines on which REPORT occurs and +compare these with the lines that the printout shows were actually accessed. +One can then see which lines of code were not accessed.

+

2.9 Bugs

+

next - skip - +up - start

+
    +
  • Small memory leaks may occur when an exception is thrown and caught.
  • +
  • My exception scheme may not be not properly linked in with the standard +library exceptions. In particular, my scheme may fail to catch out-of-memory +exceptions.
  • +
+

2.10 List of files

+

next - skip - +up - start

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DocumentationREADME(.txt)readme file
 COPYING.(.txt)permission to copy, modify etc
 AUTHORS(.txt)author details
 nm10.htmdocumentation file
 add_time.pgnimage used by nm10.htm - move to subdirectory "images"
 rbd.cssstyle sheet for nm10.htm
Definition filesboolean.hboolean class definition
 controlw.hcontrol word definition file
 include.hdetails of include files and options
 myexcept.hgeneral exception handler definitions
 newmat.hmain matrix class definition file
 newmatap.happlications definition file
 newmatio.hinput/output definition file
 newmatnl.hnon-linear optimisation definition file
 newmatrc.hrow/column functions definition files
 newmatrm.hrectangular matrix access definition files
 precisio.hnumerical precision constants
 solution.hone dimensional solve definition file
Program filesbandmat.cppband matrix routines
 cholesky.cppCholesky decomposition
 evalue.cppeigenvalues and eigenvector calculation
 fft.cppfast Fourier, trig. transforms
 hholder.cppQR routines
 jacobi.cppeigenvalues by the Jacobi method
 myexcept.cppgeneral error and exception handler
 newfft.cppnew fast Fourier transform
 newmat1.cpptype manipulation routines
 newmat2.cpprow and column manipulation functions
 newmat3.cpprow and column access functions
 newmat4.cppconstructors, resize, utilities
 newmat5.cpptranspose, evaluate, matrix functions
 newmat6.cppoperators, element access
 newmat7.cppinvert, solve, binary operations
 newmat8.cppLU decomposition, scalar functions
 newmat9.cppoutput routines
 newmatex.cppmatrix exception handler
 newmatnl.cppnon-linear optimisation
 newmatrm.cpprectangular matrix access functions
 sort.cppsorting functions
 solution.cppone dimensional solve
 submat.cppsubmatrix functions
 svd.cppsingular value decomposition
Example filesexample.cppexample of use of package
 example.txtoutput from example
 sl_ex.cppexample of OneDimSolve routine
 sl_ex.txtoutput from example
 nl_ex.cppexample of non-linear least squares
 nl_ex.txtoutput from example
 garch.cppexample of maximum-likelihood fit
 garch.datdata file for garch.cpp
 garch.txtoutput from example
 test_exc.cppdemonstration exceptions
 test_exc.txtoutput from test_exc.cpp
Test filestmt.hheader file for test files
 tmt*.cpptest files (see the section on testing)
 tmt.txtoutput from test files
Make filesnm_gnu.makmake file for Gnu G++
 nm_cc.makmake file for AT&T, Sun and HPUX
 nm_b55.makmake file for Borland C++ 5.5
 nm_m6.makmake file for Microsoft Visual C++ 6, 7, 7.1
 nm_m8.makmake file for Microsoft Visual C++ 8
 nm_i8.makmake file for Intel C++ 8,9 for Windows
 nm_il8.makmake file for Intel C++ 8,9 for Linux
 nm_ow.makmake file for Open Watcom
 newmat.lfllibrary file list for use with genmake
 nm_targ.txttarget file list for use with genmake
+

2.11 Problem report form +

+

next - skip - +up - start

+

Copy and paste this to your editor; fill it out and email to +robert  at  statsresearch.co.nz

+

But first look in my web page http://www.robertnz.net/bugs.htm to see if the bug has +already been reported.

+
 Version: ............... newmat10D (2 April 2006)
+ Your email address: ....
+ Today's date: ..........
+ Your machine: ..........
+ Operating system: ......
+ Compiler & version: ....
+ Compiler options
+   (eg GUI or console)...
+ Describe the problem - attach examples if possible:
+
+
+
+
+
+-----------------------------------------------------------
+
+ +

3. Reference manual

+

next - skip - +up - start

+ + + + + +
3.1 +Constructors
+3.2 Accessing elements
+3.3 Assignment and copying
+3.4 Entering values
+3.5 Unary operations
+3.6 Binary operations
+3.7 Matrix and scalar ops
+3.8 Scalar functions - size & shape
+3.9 Scalar functions - maximum & minimum
+3.10 Scalar functions - numerical
+3.11 Submatrices
+3.12 Change dimension
+3.13 Change type
+3.14 Multiple matrix solve
+3.15 Memory management
+3.16 Efficiency
3.17 Output
+3.18 Accessing unspecified type
+3.19 Cholesky decomposition
+3.20 QR decomposition
+3.21 Singular value decomposition
+3.22 Eigenvalue decomposition
+3.23 Sorting
+3.24 Fast Fourier transform
+3.25 Fast trigonometric transforms
+3.26 Numerical recipes in C
+3.27 Exceptions
+3.28 Cleanup following exception
+3.29 Non-linear applications
+3.30 Standard template library
+3.31 Namespace
+

3.1 Constructors

+

next - skip - +up - start

+

To construct an m x n matrix, A, (m and +n are integers) use

+
    Matrix A(m,n);
+
+ +

The UpperTriangularMatrix, LowerTriangularMatrix, SymmetricMatrix and +DiagonalMatrix types are square. To construct an n x n matrix +use, for example

+
    UpperTriangularMatrix UT(n);
+    LowerTriangularMatrix LT(n);
+    SymmetricMatrix S(n);
+    DiagonalMatrix D(n);
+
+ +

Band matrices need to include bandwidth information in their constructors. +

+
    BandMatrix BM(n, lower, upper);
+    UpperBandMatrix UB(n, upper);
+    LowerBandMatrix LB(n, lower);
+    SymmetricBandMatrix SB(n, lower);
+
+ +

The integers upper and lower are the number of non-zero +diagonals above and below the diagonal (excluding the diagonal) +respectively.

+

The RowVector and ColumnVector types take just one argument in their +constructors:

+
    RowVector RV(n);
+    ColumnVector CV(n);
+
+ +

These constructors do not initialise the elements of the matrices. + +To set all the elements to zero use, for example,

+
    Matrix A(m, n); A = 0.0;
+
+ +

The IdentityMatrix takes one argument in its constructor specifying its +dimension.

+
    IdentityMatrix I(n);
+

The value of the diagonal elements is set to 1 by default, but you can +change this value as with other matrix types.

+ +

You can also construct vectors and matrices without specifying the +dimension. For example

+
    Matrix A;
+
+ +

In this case the dimension must be set by an assignment +statement or a re-size statement.

+

You can also use a constructor to set a matrix equal to another matrix or +matrix expression.

+
    Matrix A = UT;
+    Matrix A = UT * LT;
+
+ +

Only conversions that don't lose information are supported - eg you cannot +convert an upper triangular matrix into a diagonal matrix using =.

+

3.2 Accessing elements +

+

next - skip - +up - start

+

Elements are accessed by expressions of the form A(i,j) where +i and j run from 1 to the appropriate dimension. Access elements +of vectors with just one argument. Diagonal matrices can accept one or two +subscripts.

+

This is different from the earliest version of the package in which the +subscripts ran from 0 to one less than the appropriate dimension. Use +A.element(i,j) if you want this earlier convention.

+

A(i,j) and A.element(i,j) can appear on either side of an += sign.

+

If you activate the #define SETUP_C_SUBSCRIPTS in +include.h you can also access elements using the traditional C style +notation. That is A[i][j] for matrices (except diagonal) and +V[i] for vectors and diagonal matrices. The subscripts start at zero +(i.e. like element) and there is no range checking. Because of the +possibility of confusing V(i) and V[i], I suggest you do +not activate this option unless you really want to use it.

+

Symmetric matrices are stored as lower triangular matrices. It is important +to remember this if you are using the A[i][j] method of accessing +elements. Make sure the first subscript is greater than or equal to the second +subscript. However, if you are using the A(i,j) method the program +will swap i and j if necessary; so it doesn't matter if you +think of the storage as being in the upper triangle (but it does matter +in some other situations such as when entering data).

+

The IdentityMatrix type does not support element access. +

+

3.3 Assignment and copying

+

next - skip - +up - start

+

The operator = is used for copying matrices, converting matrices, +or evaluating expressions. For example

+
    A = B;  A = L;  A = L * U;
+
+ +

Only conversions that don't lose information are supported. The dimensions +of the matrix on the left hand side are adjusted to those of the matrix or +expression on the right hand side. Elements on the right hand side which are +not present on the left hand side are set to zero.

+

The operator << can be used in place of = where it +is permissible for information to be lost.

+

For example

+
    SymmetricMatrix S; Matrix A;
+    ......
+    S << A.t() * A;
+
+ +

is acceptable whereas

+
    S = A.t() * A;                            // error
+
+ +

will cause a runtime error since the package does not (yet?) recognise +A.t()*A as symmetric.

+

Note that you can not use << with constructors. For +example

+
    SymmetricMatrix S << A.t() * A;           // error
+
+ +

does not work.

+

Also note that << cannot be used to load values from a full +matrix into a band matrix, since it will be unable to determine the bandwidth +of the band matrix.

+

A third copy routine is used in a similar role to =. Use

+
    A.Inject(D);
+
+ +

to copy the elements of D to the corresponding elements of +A but leave the elements of A unchanged if there is no +corresponding element of D (the = operator would set them to +0). This is useful, for example, for setting the diagonal elements of a matrix +without disturbing the rest of the matrix. Unlike = and +<<, Inject does not reset the dimensions of A, which +must match those of D. Inject does not test for no loss of +information.

+

You cannot replace D by a matrix expression. The effect of +Inject(D) depends on the type of D. If D is an +expression it might not be obvious to the user what type it would have. So I +thought it best to disallow expressions.

+

Inject can be used for loading values from a regular matrix into a band +matrix. (Don't forget to zero any elements of the left hand side that will not +be set by the loading operation).

+

Both << and Inject can be used with submatrix expressions on +the left hand side. See the section on submatrices.

+

To set the elements of a matrix to a scalar use operator =

+
    Real r; int m,n;
+    ......
+    Matrix A(m,n); A = r;
+ +

Notes:

+ +
    +
  • When you do a matrix assignment to another matrix or matrix expression with +either = or << the original data array associated with the matrix + being assigned to is destroyed +even if there is no change in length. See the section on storage. +This means, in particular, that pointers to matrix elements - e.g. +Real* a; a = &(A(1,1)); become invalid. If you want avoid this you + can use +Inject rather than =. But remember that you may need to zero + the matrix first.
    +
  • +
+ +

3.4 Entering values

+

next - skip - +up - start

+

You can load the elements of a matrix from an array:

+
    Matrix A(3,2);
+    Real a[] = { 11,12,21,22,31,33 };
+    A << a;
+
+ +

This construction does not check that the numbers of elements match +correctly. This version of << can be used with submatrices on +the left hand side. It is not defined for band matrices.

+

Alternatively you can enter short lists using a sequence of numbers +separated by << .

+
    Matrix A(3,2);
+    A << 11 << 12
+      << 21 << 22
+      << 31 << 32;
+
+ +

This does check for the correct total number of entries, although the +message for there being insufficient numbers in the list may be delayed until +the end of the block or the next use of this construction. This does not +work for band matrices or for long lists. It does work for submatrices if the +submatrix is a single complete row. For example

+
    Matrix A(3,2);
+    A.Row(1) << 11 << 12;
+    A.Row(2) << 21 << 22;
+    A.Row(3) << 31 << 32;
+
+ +

Load only values that are actually stored in the matrix. For example

+
    SymmetricMatrix S(2);
+    S.Row(1) << 11;
+    S.Row(2) << 21 << 22;
+
+ +

Try to restrict this way of loading data to numbers. You can include +expressions, but these must not call a function which includes the same +construction.

+ +

Remember that matrices are stored by rows and that symmetric matrices are +stored as lower triangular matrices when using these methods to enter +data.

+

3.5 Unary operators

+

next - skip - +up - start

+

The package supports unary operations

+
    X = -A;           // change sign of elements
+    X = A.t();        // transpose
+    X = A.i();        // inverse (of square matrix A)
+    X = A.Reverse();  // reverse order of elements of vector
+                      // or matrix (not band matrix)
+
+ +

3.6 Binary operators

+

next - skip - +up - start

+

The package supports binary operations

+
    X = A + B;       // matrix addition
+    X = A - B;       // matrix subtraction
+    X = A * B;       // matrix multiplication
+    X = A.i() * B;   // equation solve (square matrix A)
+    X = A | B;       // concatenate horizontally (concatenate the rows)
+    X = A & B;       // concatenate vertically (concatenate the columns)
+    X = SP(A, B);    // elementwise product of A and B (Schur product)
+    X = KP(A, B);    // Kronecker product of A and B
+    bool b = A == B; // test whether A and B are equal
+    bool b = A != B; // ! (A == B)
+    A += B;          // A = A + B;
+    A -= B;          // A = A - B;
+    A *= B;          // A = A * B;
+    A |= B;          // A = A | B;
+    A &= B;          // A = A & B;
+    <, >, <=, >=     // included for compatibility with STL - see notes
+
+ +

Notes:

+
    +
  • If you are doing repeated multiplication. For example A*B*C, use +brackets to force the order of evaluation to minimise the number of operations. +If C is a column vector and A is not a vector, then it will +usually reduce the number of operations to use A*(B*C).
  • +
  • In the equation solve example case the inverse is not explicitly +calculated. An LU decomposition of A is performed and this is applied +to B. This is more efficient than calculating the inverse and then +multiplying. See also multiple matrix solving.
  • +
  • The package does not (yet?) recognise B*A.i() as an equation solve +and the inverse of A would be calculated. It is probably better to use +(A.t().i()*B.t()).t().
  • +
  • Horizontal or vertical concatenation returns a result of type Matrix, +RowVector or ColumnVector.
  • +
  • If A is m x p, B is m x q, +then A | B is m x (p+q) with the k-th row +being the elements of the k-th row of A followed by the +elements of the k-th row of B.
  • +
  • If A is p x n, B is q x n, +then A & B is (p+q) x n with the k-th +column being the elements of the k-th column of A followed by +the elements of the k-th column of B.
  • +
  • For complicated concatenations of matrices, consider instead using +submatrices.
  • +
  • See the section on submatrices on using a submatrix +on the RHS of an expression.
  • +
  • Two matrices are equal if their difference is zero. They may be of +different types. For the CroutMatrix or BandLUMatrix they must be of the same +type and have all their elements equal. This is not a very useful operator and +is included for compatibility with some container templates.
  • +
  • The inequality operators are included for compatibility with the +standard template library. If actually called, they will +throw an exception. So don't try to sort a list of matrices.
  • +
  • A row vector multiplied by a column vector yields a 1x1 matrix, not +a Real. To get a Real result use either AsScalar or +DotProduct.
  • +
  • The result from Kronecker product, KP(A, B), possesses an attribute such as +upper triangular, lower triangular, band, symmetric, diagonal if both of the +matrices A and B have the attribute. (This differs slightly from the way the +January 2002 version of newmat10 worked).
  • +
+

Remember that the product of symmetric matrices is not +necessarily symmetric so the following code will not run:

+
   SymmetricMatrix A, B;
+   .... put values in A, B ....
+   SymmetricMatrix C = A * B;   // run time error
+ +

Use instead

+
   Matrix C = A * B;
+ +

or, if you know the product will be symmetric, +use

+
   SymmetricMatrix C; C << A * B;
+
+ +

3.7 Matrix and scalar

+

next - skip - +up - start

+

The following expressions multiply the elements of a matrix A by a +scalar f: A * f or f * A . Likewise one can divide +the elements of a matrix A by a scalar f: A / f . +

+

The expressions A + f and A - f add or subtract a +rectangular matrix of the same dimension as A with elements equal to +f to or from the matrix A .

+

The expression f + A is an alternative to A + f. The +expression f - A subtracts matrix A from a rectangular matrix +of the same dimension as A and with elements equal to f . +

+

The expression A += f replaces A by A + f. +Operators -=, *=, /= are similarly defined.

+

3.8 Scalar functions of a +matrix - size & shape

+

next - skip - +up - start

+

This page describes functions returning the values associated with the size +and shape of matrices. The following pages describe other scalar matrix +functions.

+
    int m = A.Nrows();                     // number of rows
+    int n = A.Ncols();                     // number of columns
+    MatrixType mt = A.Type();              // type of matrix
+    Real* s = A.Store();                   // pointer to array of elements
+    int l = A.Storage();                   // length of array of elements
+    MatrixBandWidth mbw = A.BandWidth();   // upper and lower bandwidths
+
+ +

MatrixType mt = A.Type() returns the type of a matrix. Use +mt.Value() to get a string (UT, LT, Rect, Sym, Diag, Band, UB, LB, +Crout, BndLU) showing the type (Vector types are returned as Rect).

+

MatrixBandWidth has member functions Upper() and +Lower() for finding the upper and lower bandwidths (number of +diagonals above and below the diagonal, both zero for a diagonal matrix). For +non-band matrices -1 is returned for both these values.

+

3.9 Scalar functions of a +matrix - maximum & minimum

+

next - skip - +up - start

+

This page describes functions for finding the maximum and minimum elements +of a matrix.

+
    int i, j;
+    Real mv = A.MaximumAbsoluteValue();    // maximum of absolute values
+    Real mv = A.MinimumAbsoluteValue();    // minimum of absolute values
+    Real mv = A.Maximum();                 // maximum value
+    Real mv = A.Minimum();                 // minimum value
+    Real mv = A.MaximumAbsoluteValue1(i);  // maximum of absolute values
+    Real mv = A.MinimumAbsoluteValue1(i);  // minimum of absolute values
+    Real mv = A.Maximum1(i);               // maximum value
+    Real mv = A.Minimum1(i);               // minimum value
+    Real mv = A.MaximumAbsoluteValue2(i,j);// maximum of absolute values
+    Real mv = A.MinimumAbsoluteValue2(i,j);// minimum of absolute values
+    Real mv = A.Maximum2(i,j);             // maximum value
+    Real mv = A.Minimum2(i,j);             // minimum value
+
+ +

All these functions throw an exception if A has no rows or no +columns.

+

The versions A.MaximumAbsoluteValue1(i), etc return the location of +the extreme element in a RowVector, ColumnVector or DiagonalMatrix. The +versions A.MaximumAbsoluteValue2(i,j), etc return the row and column +numbers of the extreme element. If the extreme value occurs more than once the +location of the last one is given.

+

The versions MaximumAbsoluteValue(A), MinimumAbsoluteValue(A), Maximum(A), +Minimum(A) can be used in place of A.MaximumAbsoluteValue(), +A.MinimumAbsoluteValue(), A.Maximum(), A.Minimum().

+

3.10 Scalar functions of a +matrix - numerical

+

next - skip - +up - start

+
    Real r = A.AsScalar();                 // value of 1x1 matrix
+    Real ssq = A.SumSquare();              // sum of squares of elements
+    Real sav = A.SumAbsoluteValue();       // sum of absolute values
+    Real s = A.Sum();                      // sum of values
+    Real norm = A.Norm1();                 // maximum of sum of absolute
+                                              values of elements of a column
+    Real norm = A.NormInfinity();          // maximum of sum of absolute
+                                              values of elements of a row
+    Real norm = A.NormFrobenius();         // square root of sum of squares
+                                           // of the elements
+    Real t = A.Trace();                    // trace
+    Real d = A.Determinant();              // determinant
+    LogAndSign ld = A.LogDeterminant();    // log of determinant
+    bool z = A.IsZero();                   // test all elements zero
+    bool s = A.IsSingular();               // A is a CroutMatrix or
+                                              BandLUMatrix
+    Real s = DotProduct(A, B);             // dot product of A and B
+                                           // interpreted as vectors
+
+ +

A.LogDeterminant() returns a value of type LogAndSign. If ld is of +type LogAndSign use

+
    ld.Value()    to get the value of the determinant
+    ld.Sign()     to get the sign of the determinant (values 1, 0, -1)
+    ld.LogValue() to get the log of the absolute value.
+
+ +

Note that the direct use of the function Determinant() will often +cause a floating point overflow exception.

+

A.IsZero() returns Boolean value true if the matrix +A has all elements equal to 0.0.

+

IsSingular is defined only for CroutMatrix and BandLUMatrix. It +returns true if one of the diagonal elements of the LU decomposition +is exactly zero.

+

DotProduct(const Matrix& A,const Matrix& B) converts both +of the arguments to rectangular matrices, checks that they have the same number +of elements and then calculates the first element of A * first element +of B + second element of A * second element of B + +... ignoring the row/column structure of A and B. It is +primarily intended for the situation where A and B are row or +column vectors.

+

The versions Sum(A), SumSquare(A), SumAbsoluteValue(A), Trace(A), +LogDeterminant(A), Determinant(A), Norm1(A), NormInfinity(A), NormFrobenius(A) +can be used in place of A.Sum(), A.SumSquare(), A.SumAbsoluteValue(), +A.Trace(), A.LogDeterminant(), A.Norm1(), A.NormInfinity(), A.NormFrobenius(). +

+

3.11 Submatrices

+

next - skip - +up - start

+
    A.SubMatrix(fr,lr,fc,lc)
+
+ +

This selects a submatrix from A. The arguments +fr,lr,fc,lc are the first row, last row, +first column, last column of the submatrix with the numbering beginning at 1. +

+

I allow lr = fr-1 or lc = fc-1 or to indicate that a +matrix of zero rows or columns is to be returned.

+

A submatrix command may be used in any matrix expression or on the left hand +side of =, << or Inject. Inject does not check +no information loss. You can also use the construction

+
    Real c; .... A.SubMatrix(fr,lr,fc,lc) = c;
+
+ +

to set a submatrix equal to a constant.

+

The following are variants of SubMatrix:

+
    A.SymSubMatrix(f,l)             //   This assumes fr=fc and lr=lc.
+    A.Rows(f,l)                     //   select rows
+    A.Row(f)                        //   select single row
+    A.Columns(f,l)                  //   select columns
+    A.Column(f)                     //   select single column
+
+ +

In each case f and l mean the first and last row or column +to be selected (starting at 1).

+

I allow l = f-1 to indicate that a matrix of zero rows or columns +is to be returned.

+

If SubMatrix or its variant occurs on the right hand side of an = +or << or within an expression think of its type as follows

+
    A.SubMatrix(fr,lr,fc,lc)           If A is RowVector or
+                                       ColumnVector then same type
+                                       otherwise type Matrix
+    A.SymSubMatrix(f,l)                Same type as A
+    A.Rows(f,l)                        Type Matrix
+    A.Row(f)                           Type RowVector
+    A.Columns(f,l)                     Type Matrix
+    A.Column(f)                        Type ColumnVector
+
+ +

If SubMatrix or its variant appears on the left hand side of = or +<< , think of its type being Matrix. Thus L.Row(1) +where L is LowerTriangularMatrix expects L.Ncols() elements +even though it will use only one of them. If you are using = the +program will check for no loss of data.

+ +

A SubMatrix can appear on the left-hand side of += or -= +with a matrix expression on the right-hand side. It can also appear on the +left-hand side of +=, -=, *= or /= with a +Real on the right-hand side. In each case there must be no loss of information. +

+

The Row version can appear on the left hand side of +<< for loading literal data into a row. +Load only the number of elements that are actually going to be stored in +memory.

+

Do not use the += and -= operations with a submatrix of a +SymmetricMatrix or BandSymmetricMatrix on the LHS and a Real on the RHS.

+

You can't pass a submatrix (or any of its variants) as a reference +non-constant matrix in a function argument. For example, the following will not +work:

+
   void YourFunction(Matrix& A);
+   ...
+   Matrix B(10,10);
+   YourFunction(B.SubMatrix(1,5,1,5))    // won't compile
+

If you are are using the submatrix facility to build a matrix from a small +number of components, consider instead using the concatenation operators.

+

3.12 Change dimensions

+

next - skip - +up - start

+

The following operations change the dimensions of a matrix. The values of +the elements are lost.

+
    A.ReSize(nrows,ncols);        // for type Matrix or nricMatrix
+    A.ReSize(n);                  // for all other types, except Band
+    A.ReSize(n,lower,upper);      // for BandMatrix
+    A.ReSize(n,lower);            // for LowerBandMatrix
+    A.ReSize(n,upper);            // for UpperBandMatrix
+    A.ReSize(n,lower);            // for SymmetricBandMatrix
+    A.ReSize(B);                  // set dims to those of B 
+
+ +

Use A.CleanUp() to set the dimensions of A to zero and +release all the heap memory.

+

A.ReSize(B) sets the dimensions of A to those of a matrix +B. This includes the band-width in the case of a band matrix. It is an +error for A to be a band matrix and B not a band matrix (or +diagonal matrix).

+

Remember that ReSize destroys values. If you want to +ReSize, but keep the values in the bit that is left use something like +

+
   ColumnVector V(100);
+   ...                            // load values
+   V = V.Rows(1,50);              // to get first 50 values.
+
+ +

If you want to extend a matrix or vector use something like

+
   ColumnVector V(50);
+   ...                            // load values
+   { V.Release(); ColumnVector X=V; V.ReSize(100); V.Rows(1,50)=X; }
+                                  // V now length 100
+
+ +

3.13 Change type

+

next - skip - +up - start

+

The following functions interpret the elements of a matrix (stored row by +row) to be a vector or matrix of a different type. Actual copying is usually +avoided where these occur as part of a more complicated expression.

+
    A.AsRow()
+    A.AsColumn()
+    A.AsDiagonal()
+    A.AsMatrix(nrows,ncols)
+    A.AsScalar()
+
+ +

The expression A.AsScalar() is used to convert a 1 x 1 matrix to a +scalar.

+

3.14 Multiple matrix solve

+

next - skip - +up - start

+

To solve the matrix equation Ay = b where A is a square +matrix of equation coefficients, y is a column vector of values to be +solved for, and b is a column vector, use the code

+
    int n = something
+    Matrix A(n,n); ColumnVector b(n);
+    ... put values in A and b
+    ColumnVector y = A.i() * b;       // solves matrix equation
+
+ +

The following notes are for the case where you want to solve more than one +matrix equation with different values of b but the same A. Or +where you want to solve a matrix equation and also find the determinant of +A. In these cases you probably want to avoid repeating the LU +decomposition of A for each solve or determinant calculation.

+

If A is a square or symmetric matrix use

+
    CroutMatrix X = A;                // carries out LU decomposition
+    Matrix AP = X.i()*P; Matrix AQ = X.i()*Q;
+    LogAndSign ld = X.LogDeterminant();
+
+ +

rather than

+
    Matrix AP = A.i()*P; Matrix AQ = A.i()*Q;
+    LogAndSign ld = A.LogDeterminant();
+
+ +

since each operation will repeat the LU decomposition.

+

If A is a BandMatrix or a SymmetricBandMatrix begin with

+
    BandLUMatrix X = A;               // carries out LU decomposition
+
+ +

A CroutMatrix or a BandLUMatrix can't be manipulated or copied. Use +references as an alternative to copying.

+

Alternatively use

+
    LinearEquationSolver X = A;
+
+ +

This will choose the most appropriate decomposition of A. That is, +the band form if A is banded; the Crout decomposition if A is +square or symmetric and no decomposition if A is triangular or +diagonal.

+

3.15 Memory management

+

next - skip - +up - start

+

The package does not support delayed copy. Several strategies are required +to prevent unnecessary matrix copies.

+

Where a matrix is called as a function argument use a constant reference. +For example

+
    YourFunction(const Matrix& A)
+
+ +

rather than

+
    YourFunction(Matrix A)
+
+ +

Skip the rest of this section on your first reading.

+

Gnu g++ (< 2.6) users please read on: if you are returning +matrix values from a function, then you must use the ReturnMatrix +construct.

+

A second place where it is desirable to avoid unnecessary copies is when a +function is returning a matrix. Matrices can be returned from a function with +the return command as you would expect. However these may incur one and +possibly two copyings of the matrix. To avoid this use the following +instructions.

+

Make your function of type ReturnMatrix . Then precede the return statement +with a Release statement (or a ReleaseAndDelete statement if the matrix was +created with new). For example

+
    ReturnMatrix MakeAMatrix()
+    {
+       Matrix A;                // or any other matrix type
+       ......
+       A.Release(); return A;
+    }
+
+ +

or

+
    ReturnMatrix MakeAMatrix()
+    {
+       Matrix* m = new Matrix;
+       ......
+       m->ReleaseAndDelete(); return *m;
+    }
+
+ +

If your compiler objects to this code, replace the return statements with +

+
    return A.ForReturn();
+
+ +

or

+
    return m->ForReturn();
+
+ +

If you are using AT&T C++ you may wish to replace return A; by +return (ReturnMatrix)A; to avoid a warning message; but this will give +a runtime error with Gnu. (You can't please everyone.)

+
+

Do not forget to make the function of type ReturnMatrix; otherwise you +may get incomprehensible run-time errors.

+
+

You can also use .Release() or ->ReleaseAndDelete() to +allow a matrix expression to recycle space. Suppose you call

+
    A.Release();
+
+ +

just before A is used just once in an expression. Then the memory +used by A is either returned to the system or reused in the +expression. In either case, A's memory is destroyed. This procedure +can be used to improve efficiency and reduce the use of memory.

+

Use ->ReleaseAndDelete for matrices created by new if you want +to completely delete the matrix after it is accessed.

+

3.16 Efficiency

+

next - skip - +up - start

+

The package tends to be not very efficient for dealing with matrices with +short rows. This is because some administration is required for accessing rows +for a variety of types of matrices. To reduce the administration a special +multiply routine is used for rectangular matrices in place of the generic one. +Where operations can be done without reference to the individual rows (such as +adding matrices of the same type) appropriate routines are used.

+

When you are using small matrices (say smaller than 10 x 10) you may find it +faster to use rectangular matrices rather than the triangular or symmetric +ones.

+

3.17 Output

+

next - skip - +up - start

+

To print a matrix use an expression like

+
   Matrix A;
+   ......
+   cout << setw(10) << setprecision(5) << A;
+
+ +

This will work only with systems that support the standard input/output +routines including manipulators. You need to #include the files iostream.h, +iomanip.h, newmatio.h in your C++ source files that use this facility. The +files iostream.h, iomanip.h will be included automatically if you include the +statement #define WANT_STREAM at the beginning of your source file. So +you can begin your file with either

+
   #define WANT_STREAM
+   #include "newmatio.h"
+
+ +

or

+
   #include <iostream.h>
+   #include <iomanip.h>
+   #include "newmatio.h"
+
+ +

The present version of this routine is useful only for matrices small enough +to fit within a page or screen width.

+

To print several vectors or matrices in columns use a concatenation operator:

+
   ColumnVector A, B;
+   .....
+   cout << setw(10) << setprecision(5) << (A | B);
+
+ +

3.18 Unspecified type

+

next - skip - +up - start

+

Skip this section on your first reading.

+

If you want to work with a matrix of unknown type, say in a function. You +can construct a matrix of type GenericMatrix. Eg

+
   Matrix A;
+   .....                                  // put some values in A
+   GenericMatrix GM = A;
+
+ +

A GenericMatrix matrix can be used anywhere where a matrix expression can be +used and also on the left hand side of an =. You can pass any type of +matrix (excluding the Crout and BandLUMatrix types) to a const +GenericMatrix& argument in a function. However most scalar functions +including Nrows(), Ncols(), Type() and element access do not work with it. Nor +does the ReturnMatrix construct. See also the paragraph on LinearEquationSolver.

+

An alternative and less flexible approach is to use BaseMatrix or +GeneralMatrix.

+

Suppose you wish to write a function which accesses a matrix of unknown type +including expressions (eg A*B). Then use a layout similar to the +following:

+
   void YourFunction(BaseMatrix& X)
+   {
+      GeneralMatrix* gm = X.Evaluate();   // evaluate an expression
+                                          // if necessary
+      ........                            // operations on *gm
+      gm->tDelete();                      // delete *gm if a temporary
+   }
+
+ +

See, as an example, the definitions of operator<< in +newmat9.cpp.

+

Under certain circumstances; particularly where X is to be used +just once in an expression you can leave out the Evaluate() statement +and the corresponding tDelete(). Just use X in the +expression.

+

If you know YourFunction will never have to handle a formula as its argument +you could also use

+
   void YourFunction(const GeneralMatrix& X)
+   {
+      ........                            // operations on X
+   }
+
+ +

Do not try to construct a GeneralMatrix or BaseMatrix.

+

3.19 Cholesky +decomposition

+

next - skip - +up - start

+

Suppose S is symmetric and positive definite. Then there exists a +unique lower triangular matrix L such that L * L.t() = S. To +calculate this use

+
    SymmetricMatrix S;
+    ......
+    LowerTriangularMatrix L = Cholesky(S);
+
+ +

If S is a symmetric band matrix then L is a band matrix +and an alternative procedure is provided for carrying out the decomposition: +

+
    SymmetricBandMatrix S;
+    ......
+    LowerBandMatrix L = Cholesky(S);
+
+ +

3.20 QR decomposition

+

next - skip - +up - start

+

This is a variant on the usual QR transformation.

+

Start with matrix (dimensions shown to left and below the matrix)

+
       / 0    0 \      s
+       \ X    Y /      n
+
+         s    t
+
+ +

Our version of the QR decomposition multiplies this matrix by an orthogonal +matrix Q to get

+
       / U    M \      s
+       \ 0    Z /      n
+
+         s    t
+
+ +

where U is upper triangular (the R of the QR transform). That is +

+
      Q  / 0   0 \  =  / U   M \
+         \ X   Y /     \ 0   Z / 
+ +

This is good for solving least squares problems: choose b (matrix or column +vector) to minimise the sum of the squares of the elements of

+
         Y - X*b
+
+ +

Then choose b = U.i()*M; The residuals Y - X*b are in +Z.

+

This is the usual QR transformation applied to the matrix X with +the square zero matrix concatenated on top of it. It gives the same triangular +matrix as the QR transform applied directly to X and generally seems +to work in the same way as the usual QR transform. However it fits into the +matrix package better and also gives us the residuals directly. It turns out to +be essentially a modified Gram-Schmidt decomposition.

+

Two routines are provided in newmat:

+
    QRZ(X, U);
+
+ +

replaces X by orthogonal columns and forms U.

+
    QRZ(X, Y, M);
+
+ +

uses X from the first routine, replaces Y by Z +and forms M.

+

The are also two routines QRZT(X, L) and QRZT(X, Y, M) +which do the same decomposition on the transposes of all these matrices. QRZT +replaces the routines HHDecompose in earlier versions of newmat. HHDecompose is +still defined but just calls QRZT.

+

For an example of the use of this decomposition see the file +example.cpp.

+

3.21 Singular value +decomposition

+

next - skip - +up - start

+

The singular value decomposition of an m x n Matrix +A (where m >= n) is a decomposition

+
    A  = U * D * V.t()
+
+ +

where U is m x n with U.t() * U equalling +the identity, D is an n x n DiagonalMatrix and +V is an n x n orthogonal matrix (type Matrix in +Newmat).

+

Singular value decompositions are useful for understanding the structure of +ill-conditioned matrices, solving least squares problems, and for finding the +eigenvalues of A.t() * A.

+

To calculate the singular value decomposition of A (with m +>= n) use one of

+
    SVD(A, D, U, V);                  // U = A is OK
+    SVD(A, D);
+    SVD(A, D, U);                     // U = A is OK
+    SVD(A, D, U, false);              // U (can = A) for workspace only
+    SVD(A, D, U, V, false);           // U (can = A) for workspace only
+
+ +

where A, U and V are of type Matrix and +D is a DiagonalMatrix. The values of A are not +changed unless A is also inserted as the third argument.

+ +

The elements of D are sorted in descending order.

+

Remember that the SVD decomposition is not completely unique. The signs of the elements in a column of U may be reversed +if the signs in the corresponding column in V are reversed. If a +number of the singular values are identical one can apply an orthogonal +transformation to the corresponding columns of U and the corresponding +columns of V.

+

3.22 Eigenvalue +decomposition

+

next - skip - +up - start

+

An eigenvalue decomposition of a SymmetricMatrix A is a +decomposition

+
    A  = V * D * V.t()
+
+ +

where V is an orthogonal matrix (type Matrix in +Newmat) and D is a DiagonalMatrix.

+

Eigenvalue analyses are used in a wide variety of engineering, statistical +and other mathematical analyses.

+

The package includes two algorithms: Jacobi and Householder. The first is +extremely reliable but much slower than the second.

+

The code is adapted from routines in Handbook for Automatic Computation, +Vol II, Linear Algebra by Wilkinson and Reinsch, published by Springer +Verlag.

+
    Jacobi(A,D,S,V);                  // A, S symmetric; S is workspace,
+                                      //    S = A is OK; V is a matrix
+    Jacobi(A,D);                      // A symmetric
+    Jacobi(A,D,S);                    // A, S symmetric; S is workspace,
+                                      //    S = A is OK
+    Jacobi(A,D,V);                    // A symmetric; V is a matrix
+
+    EigenValues(A,D);                 // A symmetric
+    EigenValues(A,D,S);               // A, S symmetric; S is for back
+                                      //    transforming, S = A is OK
+    EigenValues(A,D,V);               // A symmetric; V is a matrix
+
+ +

where A, S are of type SymmetricMatrix, +D is of type DiagonalMatrix and V is of type +Matrix. The values of A are not changed unless A is +also inserted as the third argument. If you need eigenvectors use one of the +forms with matrix V. The eigenvectors are returned as the columns of +V.

+ +

The elements of D are sorted in ascending order.

+

Remember that an eigenvalue decomposition is not completely +unique - see the comments about the SVD +decomposition.

+

3.23 Sorting

+

next - skip - +up - start

+

To sort the values in a matrix or vector, A, (in general this +operation makes sense only for vectors and diagonal matrices) use one of

+
    SortAscending(A);
+
+    SortDescending(A);
+
+ +

I use the quicksort algorithm. The algorithm is similar to that in +Sedgewick's algorithms in C++. If the sort seems to be failing (as quicksort +can do) an exception is thrown.

+

You will get incorrect results if you try to sort a band matrix - but why +would you want to sort a band matrix?

+

3.24 Fast Fourier transform +

+

next - skip - +up - start

+
   FFT(X, Y, F, G);                         // F=X and G=Y are OK
+
+ +

where X, Y, F, G are column vectors. +X and Y are the real and imaginary input vectors; F +and G are the real and imaginary output vectors. The lengths of +X and Y must be equal and should be the product of numbers +less than about 10 for fast execution.

+

The formula is

+
          n-1
+   h[k] = SUM  z[j] exp (-2 pi i jk/n)
+          j=0
+
+ +

where z[j] is stored complex and stored in X(j+1) and +Y(j+1). Likewise h[k] is complex and stored in +F(k+1) and G(k+1). The fast Fourier algorithm takes order +n log(n) operations (for good values of n) rather than +n**2 that straight evaluation (see the file tmtf.cpp) takes. +

+

I use one of two methods:

+
    +
  • A program originally written by Sande and Gentleman. This requires that +n can be expressed as a product of small numbers.
  • +
  • A method of Carl de Boor (1980), Siam J Sci Stat Comput, pp 173-8. +The sines and cosines are calculated explicitly. This gives better accuracy, at +an expense of being a little slower than is otherwise possible. This is slower +than the Sande-Gentleman program but will work for all n --- although it +will be very slow for bad values of n.
  • +
+

Related functions

+
   FFTI(F, G, X, Y);                        // X=F and Y=G are OK
+   RealFFT(X, F, G);
+   RealFFTI(F, G, X);
+
+ +

FFTI is the inverse transform for FFT. RealFFT is +for the case when the input vector is real, that is Y = 0. I assume +the length of X, denoted by n, is even. That is, +n must be divisible by 2. The program sets the lengths of F and +G to n/2 + 1. RealFFTI is the inverse of +RealFFT.

+

See also the section on fast trigonometric +transforms.

+

3.25 Fast trigonometric +transforms

+

next - skip - +up - start

+

These are the sin and cosine transforms as defined by Charles Van Loan +(1992) in Computational frameworks for the fast Fourier transform +published by SIAM. See page 229. Some other authors use slightly different +conventions. All the functions call the fast Fourier +transforms and require an even transform length, denoted by +m in these notes. That is, m must be divisible by 2. As with the +FFT m should be the product of numbers less than about 10 for fast +execution.

+

The functions I define are

+
   DCT(U,V);                // U, V are ColumnVectors, length m+1
+   DCT_inverse(V,U);        // inverse of DCT
+   DST(U,V);                // U, V are ColumnVectors, length m+1
+   DST_inverse(V,U);        // inverse of DST
+   DCT_II(U,V);             // U, V are ColumnVectors, length m
+   DCT_II_inverse(V,U);     // inverse of DCT_II
+   DST_II(U,V);             // U, V are ColumnVectors, length m
+   DST_II_inverse(V,U);     // inverse of DST_II
+
+ +

where the first argument is the input and the second argument is the output. +V = U is OK. The length of the output ColumnVector is set by the +functions.

+

Here are the formulae:

+

DCT

+
                   m-1                             k
+   v[k] = u[0]/2 + SUM { u[j] cos (pi jk/m) } + (-) u[m]/2
+                   j=1
+
+ +

for k = 0...m, where u[j] and v[k] are stored in +U(j+1) and V(k+1).

+

DST

+
          m-1
+   v[k] = SUM { u[j] sin (pi jk/m) }
+          j=1
+
+ +

for k = 1...(m-1), where u[j] and v[k] are stored +in U(j+1) and V(k+1)and where u[0] and u[m] +are ignored and v[0] and v[m] are set to zero. For the +inverse function v[0] and v[m] are ignored and u[0] +and u[m] are set to zero.

+

DCT_II

+
          m-1
+   v[k] = SUM { u[j] cos (pi (j+1/2)k/m) }
+          j=0
+
+ +

for k = 0...(m-1), where u[j] and v[k] are stored +in U(j+1) and V(k+1).

+

DST_II

+
           m
+   v[k] = SUM { u[j] sin (pi (j-1/2)k/m) }
+          j=1
+
+ +

for k = 1...m, where u[j] and v[k] are stored in +U(j) and V(k).

+

Note that the relationship between the subscripts in the formulae and those +used in newmat is different for DST_II (and DST_II_inverse).

+

3.26 Interface to Numerical +Recipes in C

+

next - skip - +up - start

+

This package can be used with the vectors and matrices defined in +Numerical Recipes in C. You need to edit the routines in Numerical +Recipes so that the elements are of the same type as used in this package. Eg +replace float by double, vector by dvector and matrix by dmatrix, etc. You may +need to edit the function definitions to use the version acceptable to your +compiler (if you are using the first edition of NRIC). You may need to enclose +the code from Numerical Recipes in extern "C" { ... }. You +will also need to include the matrix and vector utility routines.

+

Then any vector in Numerical Recipes with subscripts starting from 1 in a +function call can be accessed by a RowVector, ColumnVector or DiagonalMatrix in +the present package. Similarly any matrix with subscripts starting from 1 can +be accessed by an nricMatrix in the present package. The class nricMatrix is +derived from Matrix and can be used in place of Matrix. In each case, if you +wish to refer to a RowVector, ColumnVector, DiagonalMatrix or nricMatrix +X in an function from Numerical Recipes, use X.nric() in the +function call.

+

Numerical Recipes cannot change the dimensions of a matrix or vector. So +matrices or vectors must be correctly dimensioned before a Numerical Recipes +routine is called.

+

For example

+
   SymmetricMatrix B(44);
+   .....                             // load values into B
+   nricMatrix BX = B;                // copy values to an nricMatrix
+   DiagonalMatrix D(44);             // Matrices for output
+   nricMatrix V(44,44);              //    correctly dimensioned
+   int nrot;
+   jacobi(BX.nric(),44,D.nric(),V.nric(),&nrot);
+                                     // jacobi from NRIC
+   cout << D;                        // print eigenvalues
+
+ +

3.27 Exceptions

+

next - skip - +up - start

+

Here is the class structure for exceptions:

+
Exception
+  Logic_error
+    ProgramException                 miscellaneous matrix error
+    IndexException                   index out of bounds
+    VectorException                  unable to convert matrix to vector
+    NotSquareException               matrix is not square (invert, solve)
+    SubMatrixDimensionException      out of bounds index of submatrix
+    IncompatibleDimensionsException  (multiply, add etc)
+    NotDefinedException              operation not defined (eg <)
+    CannotBuildException             copying a matrix where copy is undefined
+    InternalException                probably an error in newmat
+  Runtime_error
+    NPDException                     matrix not positive definite (Cholesky)
+    ConvergenceException             no convergence (e-values, non-linear, sort)
+    SingularException                matrix is singular (invert, solve)
+    SolutionException                no convergence in solution routine
+    OverflowException                floating point overflow
+  Bad_alloc                          out of space (new fails)
+
+ +

I have attempted to mimic the exception class structure in the C++ standard +library, by defining the Logic_error and Runtime_error classes.

+

Suppose you have edited include.h to use my simulated +exceptions or to disable exceptions. If there is no catch statement or exceptions are disabled then my +Terminate() function in myexcept.h is called when you throw an +exception. This prints out +an error message, the dimensions and types of the matrices involved, the name +of the routine detecting the exception, and any other information set by the +Tracer class. Also see the section on error messages for additional notes on the messages generated +by the exceptions.

+

You can also print this information in a catch clause by printing Exception::what(). +

+

If you are using compiler supported exceptions then see the section +on catching exceptions.  +

+

See the file test_exc.cpp as an example of catching an exception +and printing the error message.

+

The 08 version of newmat defined a member function void +SetAction(int) to help customise the action when an exception is called. +This has been deleted in the 09 and 10 versions. Now include an instruction +such as cout << Exception::what() << endl; in the +Catch or CatchAll block to determine the action.

+

The library includes the alternatives of using the inbuilt exceptions +provided by a compiler, simulating exceptions, or disabling exceptions. See +customising for selecting the correct exception option. +

+

The rest of this section describes my partial simulation of exceptions for +compilers which do not support C++ exceptions. I use Carlos Vidal's article in +the September 1992 C Users Journal as a starting point.

+

Newmat does a partial clean up of memory following throwing an exception - +see the next section. However, the present version will leave a little heap +memory unrecovered under some circumstances. I would not expect this to be a +major problem, but it is something that needs to be sorted out.

+

The functions/macros I define are Try, Throw, Catch, CatchAll and +CatchAndThrow. Try, Throw, Catch and CatchAll correspond to try, throw, catch +and catch(...) in the C++ standard. A list of Catch clauses must be terminated +by either CatchAll or CatchAndThrow but not both. Throw takes an Exception as +an argument or takes no argument (for passing on an exception). I do not have a +version of Throw for specifying which exceptions a function might throw. Catch +takes an exception class name as an argument; CatchAll and CatchAndThrow don't +have any arguments. Try, Catch and CatchAll must be followed by blocks enclosed +in curly brackets.

+

I have added another macro ReThrow to mean a rethrow, Throw(). This was +necessary to enable the package to be compatible with both my exception package +and C++ exceptions.

+

If you want to throw an exception, use a statement like

+
   Throw(Exception("Error message\n"));
+
+ +

It is important to have the exception declaration in the Throw statement, +rather than as a separate statement.

+

All exception classes must be derived from the class, Exception, defined in +newmat and can contain only static variables. See the examples in newmat if you +want to define additional exceptions.

+

Note that the simulation exception mechanism does not work if you define +arrays of matrices.

+

3.28 Cleanup after an +exception

+

next - skip - +up - start

+

This section is about the simulated exceptions used in newmat. It is +irrelevant if you are using the exceptions built into a compiler or have set +the disable-exceptions option.

+

The simulated exception mechanisms in newmat are based on the C functions +setjmp and longjmp. These functions do not call destructors so can lead to +garbage being left on the heap. (I refer to memory allocated by new as +heap memory). For example, when you call

+
   Matrix A(20,30);
+
+ +

a small amount of space is used on the stack containing the row and column +dimensions of the matrix and 600 doubles are allocated on the heap for the +actual values of the matrix. At the end of the block in which A is declared, +the destructor for A is called and the 600 doubles are freed. The locations on +the stack are freed as part of the normal operations of the stack. If you leave +the block using a longjmp command those 600 doubles will not be freed and will +occupy space until the program terminates.

+

To overcome this problem newmat keeps a list of all the currently declared +matrices and its exception mechanism will return heap memory when you do a +Throw and Catch.

+

However it will not return heap memory from objects from other packages. +

+

If you want the mechanism to work with another class you will have to do +four things:

+
    +
  1. derive your class from class Janitor defined in except.h;
  2. +
  3. define a function void CleanUp() in that class to return all heap +memory;
  4. +
  5. include the following lines in the class definition
          public:
    +         void* operator new(size_t size)
    +         { do_not_link=true; void* t = ::operator new(size); return t; }
    +         void operator delete(void* t) { ::operator delete(t); }
    +
    + +
  6. +
  7. be sure to include a copy constructor in you class definition, that is, +something like
          X(const X&);
    +
    + +
  8. +
+

Note that the function CleanUp() does somewhat the same duties as +the destructor. However CleanUp() has to do the cleaning for +the class you are working with and also the classes it is derived from. So it +will often be wrong to use exactly the same code for both CleanUp() +and the destructor or to define your destructor as a call to +CleanUp().

+

3.29 Non-linear +applications

+

next - skip - +up - start

+

Files solution.h, solution.cpp contain a class for solving for x in +y = f(x) where x is a one-dimensional continuous +monotonic function. This is not a matrix thing at all but is included because +it is a useful thing and because it is a simpler version of the technique used +in the non-linear least squares.

+

Files newmatnl.h, newmatnl.cpp contain a series of classes for non-linear +least squares and maximum likelihood. These classes work on very well-behaved +functions but need upgrading for less well-behaved functions.

+

Documentation for both of these is in the definition files. Simple examples +are in sl_ex.cpp, nl_ex.cpp and garch.cpp.

+

3.30 Standard template +library

+

next - skip - +up - start

+

The standard template library (STL) is the set of container templates +(vector, deque, list etc) defined by the C++ standards committee. Newmat is +intended to be compatible with the STL in the sense that you can store matrices +in the standard containers. I have defined == and +inequality operators which seem to be required by some versions of the STL. Probably there will have +to be some other changes. My experiments with the Rogue Wave STL that comes +with Borland C++ 5.0 showed that some things worked and some things +unexpectedly didn't work.

+

If you want to use the container classes with Newmat please note

+
    +
  • Don't use simulated exceptions.
  • +
  • Make sure the option DO_FREE_CHECK is not +turned on.
  • +
  • You can store only one type of matrix in a container. If you want to use a +variety of types use the GenericMatrix type or store pointers to the matrices. +
  • +
  • The vector and deque container templates like to copy their elements. For +the vector container this happens when you insert an element anywhere except at +the end or when you append an element and the current vector storage overflows. +Since Newmat does not have copy-on-write this could get very +inefficient. (Later versions may have copy-on-write for the +GenericMatrix type).
  • +
  • You won't be able to sort the container or do anything that would call an +inequality operator.
  • +
+

I doubt whether the STL container will be used often for matrices. So I +don't think these limitations are very critical. If you think otherwise, please +tell me.

+

3.31 Namespace

+

next - skip - +up - start

+

Namespace is a new facility in C++. Its purpose is to avoid name +clashes between different libraries. I have included the namespace capability. +Activate the line #define use_namespace in include.h. Then +include either the statement

+
   using namespace NEWMAT;
+
+ +

at the beginning of any file that needs to access the newmat library or

+
   using namespace RBD_LIBRARIES;
+
+ +

at the beginning of any file that needs to access all my libraries.

+

This works correctly with Borland C++ version 5.

+

Microsoft Visual C++ version 5 works in my example +and test files, but fails with apparently insignificant changes (it may be more +reliable if you have applied service pack 3). If you #include +"newmatap.h", but no other newmat include file, then also #include +"newmatio.h". It seems to work with Microsoft +Visual C++ version 6 if you have applied at least service pack 2.

+

My use of namespace works with Gnu g++ version +3.3

+

I have defined the following namespaces:

+
    +
  • RBD_COMMON for functions and classes used by most of my libraries
  • +
  • NEWMAT for the newmat library
  • +
  • RBD_LIBRARIES for all my libraries
  • +
+

4. Error messages

+

next - skip - +up - start

+

Most error messages are self-explanatory. The message gives the size of the +matrices involved. Matrix types are referred to by the following codes:

+
   Matrix or vector                   Rect
+   Symmetric matrix                   Sym
+   Band matrix                        Band
+   Symmetric band matrix              SmBnd
+   Lower triangular matrix            LT
+   Lower triangular band matrix       LwBnd
+   Upper triangular matrix            UT
+   Upper triangular band matrix       UpBnd
+   Diagonal matrix                    Diag
+   Crout matrix (LU matrix)           Crout
+   Band LU matrix                     BndLU
+
+ +

Other codes should not occur.

+

See the section on exceptions for more details on the +structure of the exception classes.

+

I have defined a class Tracer that is intended to help locate the place +where an error has occurred. At the beginning of a function I suggest you +include a statement like

+
   Tracer tr("name");
+
+ +

where name is the name of the function. This name will be printed as part of +the error message, if an exception occurs in that function, or in a function +called from that function. You can change the name as you proceed through a +function with the ReName function

+
   tr.ReName("new name");
+
+ +

if, for example, you want to track progress through the function.

+

5. Notes on the design of the +library

+

next - skip - +up - start

+ + + + + +
5.1 +Safety, usability, efficiency
+5.2 Matrix vs array library
+5.3 Design questions
+5.4 Data storage
+5.5 Memory management - 1
+5.6 Memory management - 2
+5.7 Evaluation of expressions
5.8 Explosion in the number of operations
+5.9 Destruction of temporaries
+5.10 A calculus of matrix types
+5.11 Pointer arithmetic
+5.12 Error handling
+5.13 Sparse matrices
+5.14 Complex matrices
+

I describe some of the ideas behind this package, some of the decisions that +I needed to make and give some details about the way it works. You don't need +to read this part of the documentation in order to use the package.

+

It isn't obvious what is the best way of going about structuring a matrix +package. I don't think you can figure this out with thought experiments. +Different people have to try out different approaches. And someone else may +have to figure out which is best. Or, more likely, the ultimate packages will +lift some ideas from each of a variety of trial packages. So, I don't claim my +package is an ultimate package, but simply a trial of a number of ideas. +The following pages give some background on these ideas.

+

5.1 Safety, usability, +efficiency

+

next - skip - +up - start

+

Some general comments

+

A library like newmat needs to balance safety, +usability and efficiency.

+

By safety, I mean getting the right answer, and not causing crashes +or damage to the computer system.

+

By usability, I mean being easy to learn and use, including not being +too complicated, being intuitive, saving the users' time, being nice to use. +

+

Efficiency means minimising the use of computer memory and time.

+

In the early days of computers the emphasis was on efficiency. But computer +power gets cheaper and cheaper, halving in price every 18 months. On the other +hand the unaided human brain is probably not a lot better than it was 100,000 +years ago! So we should expect the balance to shift to put more emphasis on +safety and usability and a little less on efficiency. So I don't mind if my +programs are a little less efficient than programs written in pure C (or +Fortran) if I gain substantially in safety and usability. But I would mind if +they were a lot less efficient.

+

Type of use

+

Second reason for putting extra emphasis on safety and usability is the way +I and, I suspect, most other users actually use newmat. Most completed +programs are used only a few times. Some result is required for a client, paper +or thesis. The program is developed and tested, the result is obtained, and the +program archived. Of course bits of the program will be recycled for the next +project. But it may be less usual for the same program to be run over and over +again. So the cost, computer time + people time, is in the development time and +often, much less in the actual time to run the final program. So good use of +people time, especially during development is really important. This means you +need highly usable libraries.

+

So if you are dealing with matrices, you want the good interface that I have +tried to provide in newmat, and, of course, reliable methods underneath +it.

+

Of course, efficiency is still important. We often want to run the biggest +problem our computer will handle and often a little bigger. The C++ language +almost lets us have both worlds. We can define a reasonably good interface, and +get good efficiency in the use of the computer.

+

Levels of access

+

We can imagine the black box model of a newmat. Suppose the +inside is hidden but can be accessed by the methods described in the +reference section. Then the interface is reasonably +consistent and intuitive. Matrices can be accessed and manipulated in much the +same way as doubles or ints in regular C. All accesses are checked. It is most +unlikely that an incorrect index will crash the system. In general, users do +not need to use pointers, so one shouldn't get pointers pointing into space. +And, hopefully, you will get simpler code and so less errors.

+

There are some exceptions to this. In particular, the C-like subscripts are not checked for validity. They give +faster access but with a lower level of safety.

+

Then there is the Store() function which takes you to +the data array within a matrix. This takes you right inside the black +box. But this is what you have to use if you are writing, for example, a +new matrix factorisation, and require fast access to the data array. I have +tried to write code to simplify access to the interior of a rectangular matrix, +see file newmatrm.cpp, but I don't regard this as very successful, as yet, and +have not included it in the documentation. Ideally we should have improved +versions of this code for each of the major types of matrix. But, in reality, +most of my matrix factorisations are written in what is basically the C +language with very little C++.

+

So our box is not very black. You have a choice of how far you +penetrate. On the outside you have a good level of safety, but in some cases +efficiency is compromised a little. If you penetrate inside the box +safety is reduced but you can get better efficiency.

+

Some performance data

+

This section looks at the performance on newmat for simple sums, +comparing it with C code and with a simple array program. +

+

The following table lists the time (in seconds) for carrying out the +operations X=A+B;, X=A+B+C;, X=A+B+C+D;, X=A+B+C+D+E; where +X,A,B,C,D,E are of type ColumnVector, with a variety of programs. I am +using Microsoft VC++, version 6 in console mode under windows 2000 on a PC with +a 1 ghz Pentium III and 512 mbytes of memory.

+
    length    iters. newmat      C C-res.  subs.  array
+X = A + B
+         2   5000000   27.8    0.3    8.8    1.9    9.5 
+        20    500000    3.0    0.3    1.1    1.9    1.2 
+       200     50000    0.5    0.3    0.4    1.9    0.3 
+      2000      5000    0.4    0.3    0.4    2.0    1.0 
+     20000       500    4.5    4.5    4.5    6.7    4.4 
+    200000        50    5.2    4.7    5.5    5.8    5.2 
+
+X = A + B + C
+         2   5000000   36.6    0.4    8.9    2.5   12.2 
+        20    500000    4.0    0.4    1.2    2.5    1.6 
+       200     50000    0.8    0.3    0.5    2.5    0.5 
+      2000      5000    3.6    4.4    4.6    9.0    4.4 
+     20000       500    6.8    5.4    5.4    9.6    6.8 
+    200000        50    8.6    6.0    6.7    7.1    8.6 
+
+X = A + B + C + D
+         2   5000000   44.0    0.7    9.3    3.1   14.6 
+        20    500000    4.9    0.6    1.5    3.1    1.9 
+       200     50000    1.0    0.6    0.8    3.2    0.8 
+      2000      5000    5.6    6.6    6.8   11.5    5.9 
+     20000       500    9.0    6.7    6.8   11.0    8.5 
+    200000        50   11.9    7.1    7.9    9.5   12.0 
+
+X = A + B + C + D + E
+         2   5000000   50.6    1.0    9.5    3.8   17.1 
+        20    500000    5.7    0.8    1.7    3.9    2.4 
+       200     50000    1.3    0.9    1.0    3.9    1.0 
+      2000      5000    7.0    8.3    8.2   13.8    7.1 
+     20000       500   11.5    8.1    8.4   13.2   11.0 
+    200000        50   15.2    8.7    9.5   12.4   15.4 
+
+

I have graphed the results +and included rather more array lengths.

+ +

The first column gives the lengths of the arrays, the second the number of +iterations and the remaining columns the total time required in seconds. If the +only thing that consumed time was the double precision addition then the +numbers within each block of the table would be the same. The summation is +repeated 5 times within each loop, for example:

+
   for (i=1; i<=m; ++i)
+   {
+      X1 = A1+B1+C1; X2 = A2+B2+C2; X3 = A3+B3+C3;
+      X4 = A4+B4+C4; X5 = A5+B5+C5;
+   }
+

The column labelled newmat is using the standard newmat add. The column labelled C uses the usual C method: while +(j1--) *x1++ = *a1++ + *b1++; . The following column also includes an +X.ReSize() in the outer loop to correspond to the reassignment of +memory that newmat would do. In the next column the calculation is using +the usual C style for loop +and accessing the elements using newmat subscripts such as +A(i). The final column is the time taken by a +simple array package. This uses an alternative method for avoiding temporaries +and unnecessary copies that does not involve runtime tests. It does its sums in blocks of 4 and copies in blocks of +8 in the same way that newmat does.

+

Here are my conclusions.

+
    +
  • Newmat does very badly for length 2 and doesn't do well for +length 20. There is a lot of code in newmat for +determining which sum algorithm to use and it is not surprising that this +impacts on performance for small lengths. +However the array program is also having difficulty with length 2 so it +is unlikely that the problem could be completely eliminated.
  • +
  • For arrays of length 2000 or longer newmat is doing about as well as +C and slightly better than C with resize in the X=A+B table. For the +other two tables it tends to be slower, but not dramatically so.
  • +
  • It is really important for fast processing with the Pentium III to stay +within the Pentium cache.
  • +
  • Addition using the newmat subscripts, while considerably slower than +the others, is still surprisingly good for the longer arrays.
  • +
  • The array program and newmat are similar for +lengths 2000 or higher (the longer times for the array program for the longest +arrays shown on the graph are probably a quirk of the timing program).
  • +
+

In summary: for the situation considered here, newmat is doing very +well for large ColumnVectors, even for sums with several terms, but not so well +for shorter ColumnVectors.

+

5.2 Matrix vs array +library

+

next - skip - +up - start

+

The newmat library is for the manipulation of matrices, including the +standard operations such as multiplication as understood by numerical analysts, +engineers and mathematicians.

+

A matrix is a two dimensional array of numbers. However, very special +operations such as matrix multiplication are defined specifically for matrices. +This means that a matrix library, as I understand the term, is different +from a general array library. Here are some contrasting properties.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureMatrix +libraryArray +library
ExpressionsMatrix expressions; +* means matrix multiply; inverse functionArithmetic operations, if +supported, mean elementwise combination of arrays
Element accessAccess to the elements of a +matrixHigh speed access to elements +directly and perhaps with iterators
Elementary functionsFor example: determinant, +traceMatrix multiplication as a +function
Advanced functionsFor example: eigenvalue +analysis 
Element typesReal and possibly +complexWide range - real, integer, string +etc
TypesRectangular, symmetric, diagonal, +etcOne, two and three dimensional +arrays, at least
+

Both types of library need to support access to sub-matrices or sub-arrays, +have good efficiency and storage management, and graceful exit for errors. In +both cases, we probably need two versions, one optimised for large matrices or +arrays and one for small matrices or arrays.

+

It may be possible to amalgamate the two sets of requirements to some +extent. However newmat is definitely oriented towards the matrix library +set.

+

5.3 Design questions

+

next - skip - +up - start

+

Even within the bounds set by the requirements of a matrix library there is +a substantial opportunity for variation between what different matrix packages +might provide. It is not possible to build a matrix package that will meet +everyone's requirements. In many cases if you put in one facility, you impose +overheads on everyone using the package. This both in storage required for the +program and in efficiency. Likewise a package that is optimised towards +handling large matrices is likely to become less efficient for very small +matrices where the administration time for the matrix may become significant +compared with the time to carry out the operations. It is better to provide a +variety of packages (hopefully compatible) so that most users can find one that +meets their requirements. This package is intended to be one of these packages; +but not all of them.

+

Since my background is in statistical methods, this package is oriented +towards the kinds things you need for statistical analyses.

+

Now looking at some specific questions.

+

What size of matrices?

+

A matrix library may target small matrices (say 3 x 3), or medium sized +matrices, or very large matrices.

+

A library targeting very small matrices will seek to minimise +administration. A library for medium sized or very large matrices can spend +more time on administration in order to conserve space or optimise the +evaluation of expressions. A library for very large matrices will need to pay +special attention to storage and numerical properties. This library is designed +for medium sized matrices. This means it is worth introducing some +optimisations, but I don't have to worry about setting up some form of virtual +memory.

+

Which matrix types?

+

As well as the usual rectangular matrices, matrices occurring repeatedly in +numerical calculations are upper and lower triangular matrices, symmetric +matrices and diagonal matrices. This is particularly the case in calculations +involving least squares and eigenvalue calculations. So as a first stage these +were the types I decided to include.

+

It is also necessary to have types row vector and column vector. In a +matrix package, in contrast to an array package, it is necessary +to have both these types since they behave differently in matrix expressions. +The vector types can be derived for the rectangular matrix type, so having them +does not greatly increase the complexity of the package.

+

The problem with having several matrix types is the number of versions of +the binary operators one needs. If one has 5 distinct matrix types then a +simple library will need 25 versions of each of the binary operators. In fact, +we can evade this problem, but at the cost of some complexity.

+

What element types?

+

Ideally we would allow element types double, float, complex and int, at +least. It might be reasonably easy, using templates or equivalent, to provide a +library which could handle a variety of element types. However, as soon as one +starts implementing the binary operators between matrices with different +element types, again one gets an explosion in the number of operations one +needs to consider. At the present time the compilers I deal with are not up to +handling this problem with templates. (Of course, when I started writing +newmat there were no templates). But even when the compilers do meet the +specifications of the draft standard, writing a matrix package that allows for +a variety of element types using the template mechanism is going to be very +difficult. I am inclined to use templates in an array library but not in +a matrix library.

+

Hence I decided to implement only one element type. But the user can decide +whether this is float or double. The package assumes elements are of type Real. +The user typedefs Real to float or double.

+

It might also be worth including symmetric and triangular matrices with +extra precision elements (double or long double) to be used for storage only +and with a minimum of operations defined. These would be used for accumulating +the results of sums of squares and product matrices or multi-stage QR +triangularisations.

+

Allow matrix expressions

+

I want to be able to write matrix expressions the way I would on paper. So +if I want to multiply two matrices and then add the transpose of a third one I +can write something like X = A * B + C.t();. I want this expression to +be evaluated with close to the same efficiency as a hand-coded version. This is +not so much of a problem with expressions including a multiply since the +multiply will dominate the time. However, it is not so easy to achieve with +expressions with just + and -.

+

A second requirement is that temporary matrices generated during the +evaluation of an expression are destroyed as quickly as possible.

+

A desirable feature is that a certain amount of intelligence be +displayed in the evaluation of an expression. For example, in the expression +X = A.i() * B; where i() denotes inverse, it would be +desirable if the inverse wasn't explicitly calculated.

+

Naming convention

+

How are classes and public member functions to be named? As a general rule I +have spelt identifiers out in full with individual words being capitalised. For +example UpperTriangularMatrix. If you don't like this you can #define or +typedef shorter names. This convention means you can select an abbreviation +scheme that makes sense to you.

+

Exceptions to the general rule are the functions for transpose and inverse. +To make matrix expressions more like the corresponding mathematical formulae, I +have used the single letter abbreviations, t() and i().

+

Row and column index ranges

+

In mathematical work matrix subscripts usually start at one. In C, array +subscripts start at zero. In Fortran, they start at one. Possibilities for this +package were to make them start at 0 or 1 or be arbitrary.

+

Alternatively one could specify an index set for indexing the rows +and columns of a matrix. One would be able to add or multiply matrices only if +the appropriate row and column index sets were identical.

+

In fact, I adopted the simpler convention of making the rows and columns of +a matrix be indexed by an integer starting at one, following the traditional +convention. In an earlier version of the package I had them starting at zero, +but even I was getting mixed up when trying to use this earlier package. So I +reverted to the more usual notation and started at 1.

+

Element access - method and checking

+

We want to be able to use the notation A(i,j) to specify the +(i,j)-th element of a matrix. This is the way mathematicians expect to +address the elements of matrices. I consider the notation A[i][j] +totally alien. However I include this as an option to help people converting +from C.

+

There are two ways of working out the address of A(i,j). One is +using a dope vector which contains the first address of each row. +Alternatively you can calculate the address using the formula appropriate for +the structure of A. I use this second approach. It is probably slower, +but saves worrying about an extra bit of storage.

+

The other question is whether to check for i and j being +in range. I do carry out this check following years of experience with both +systems that do and systems that don't do this check. I would hope that the +routines I supply with this package will reduce your need to access elements of +matrices so speed of access is not a high priority.

+

Use iterators

+

Iterators are an alternative way of providing fast access to the elements of +an array or matrix when they are to be accessed sequentially. They need to be +customised for each type of matrix. I have not implemented iterators in this +package, although some iterator like functions are used internally for some row +and column functions.

+

5.4 Data storage

+

next - skip - +up - start

+

The stack and heap

+

To understand how newmat stores matrices you need to know a little bit +about the heap and stack.

+

The data values of variables or objects in a C++ program are stored in either +of two sections of memory called the stack and the heap. Sometimes +there is more than one heap to cater for different sized variables.

+

If you declare an automatic variable

+
   int x;
+

then the value of x is stored on the stack. As you declare more +variables the stack gets bigger. When you exit a block (i.e a section of code +delimited by curly brackets {...}) the memory used by the automatic +variables declared in the block is released and the stack shrinks.

+

When you declare a variable with new, for example,

+
   int* y = new int;
+

the pointer y is stored on the stack but the value it is +pointing to is stored on the heap. Memory on the heap is not +released until the program explicitly does this with a delete statement

+
   delete *y;
+

or the program exits.

+

On the stack, variables and objects are is always added to the end of +the stack and are removed in the reverse order to that in which they are +added - that is the last on will be the first off. This is not the case with the +heap, where the variables and objects can be removed in any order. So one +can get alternating pieces of used and unused memory. When a new variable or +object is declared on the heap the system needs to search for piece of +unused memory large enough to hold it. This means that storing on the heap +will usually be a slower process than storing on the stack. There is also +likely to be waste space on the heap because of gaps between the used +blocks of memory that are too small for the next object you want to store on the +heap. There is also the possibility of wasting space if you forget to +remove a variable or object on the heap even though you have finished +using it. However, the stack is usually limited to holding small objects +with size known at compile time. Large objects, objects whose size you don't +know at compile time, and objects that you want to persist after the end of the +block need to be stored on the heap.

+

In C++, the constructor/destructor system enables one to build +complicated objects such as matrices that behave as automatic variables stored +on the stack, so the programmer doesn't have to worry about deleting them +at the end of the block, but which really utilise the heap for storing +their data.

+

Structure of matrix objects

+

Each matrix object contains the basic information such as the number of rows +and columns, the amount of memory used, a status variable and a pointer to the data array which is on +the heap. So if you declare a matrix

+
   Matrix A(1000,1000);
+

there is an small amount of memory used on the stack for storing the numbers +of rows and columns, the amount of  memory used, the status variable and +the pointer together with 1,000,000 Real locations stored on the heap. +When you exit the block in which A is declared, the heap memory used by +A is automatically returned to the system, as well as the memory used on +the stack.

+

Of course, if you use new to declare a matrix

+
   Matrix* B = new Matrix(1000,1000);
+

both the information about the size and the actual data are stored on heap +and not deleted until the program exits or you do an explicit delete:

+
   delete *B;
+

If you carry out an assignment with = or << or do a +resize() the data array currently associated with a matrix is destroyed and +a new array generated. For example

+
   Matrix A(1000,1000);
+   Matrix B(50, 50);
+   ... put some values in B
+   A = B;
+

At the last step the heap memory associated with A is returned to the +system and a new block of heap memory is assigned to contain the new values. +This happens even if there is no change in the amount of memory required.

+

One block or several

+

The elements of the matrix are stored as a single array. Alternatives would +have been to store each row as a separate array or a set of adjacent rows as a +separate array. The present solution simplifies the program but limits the size +of matrices in 16 bit PCs that have a 64k byte limit on the size of arrays (I +don't use the huge keyword). The large arrays may also cause problems +for memory management in smaller machines. [The 16 bit PC problem has largely +gone away but it was a problem when much of newmat was written. Now, +occasionally I run into the 32 bit PC problem.]

+

By row or by column or other

+

In Fortran two dimensional arrays are stored by column. In most other +systems they are stored by row. I have followed this later convention. This +makes it easier to interface with other packages written in C but harder to +interface with those written in Fortran. This may have been a wrong decision. +Most work on the efficient manipulation of large matrices is being done in +Fortran. It would have been easier to use this work if I had adopted the +Fortran convention.

+

An alternative would be to store the elements by mid-sized rectangular +blocks. This might impose less strain on memory management when one needs to +access both rows and columns.

+

Storage of symmetric matrices

+

Symmetric matrices are stored as lower triangular matrices. The decision was +pretty arbitrary, but it does slightly simplify the Cholesky decomposition +program.

+

5.5 Memory management - +reference counting or status variable?

+

next - skip - +up - start

+

Consider the instruction

+
   X = A + B + C;
+
+ +

To evaluate this a simple program will add A to B putting +the total in a temporary T1. Then it will add T1 to +C creating another temporary T2 which will be copied into +X. T1 and T2 will sit around till the end of the +execution of the statement and perhaps of the block. It would be faster if the +program recognised that T1 was temporary and stored the sum of +T1 and C back into T1 instead of creating +T2 and then avoided the final copy by just assigning the contents of +T1 to X rather than copying. In this case there will be no +temporaries requiring deletion. (More precisely there will be a header to be +deleted but no contents).

+

For an instruction like

+
   X = (A * B) + (C * D);
+
+ +

we can't easily avoid one temporary being left over, so we would like this +temporary deleted as quickly as possible.

+

I provide the functionality for doing all this by attaching a status +variable to each matrix. This indicates if the matrix is temporary so that its +memory is available for recycling or deleting. Any matrix operation checks the +status variables of the matrices it is working with and recycles or deletes any +temporary memory.

+

An alternative or additional approach would be to use reference counting +and delayed copying - also known as copy on write. If a program +requests a matrix to be copied, the copy is delayed until an instruction is +executed which modifies the memory of either the original matrix or the copy. +If the original matrix is deleted before either matrix is modified, in effect, +the values of the original matrix are transferred to the copy without any +actual copying taking place. This solves the difficult problem of returning an +object from a function without copying and saves the unnecessary copying in the +previous examples.

+

There are downsides to the delayed copying approach. Typically, for delayed +copying one uses a structure like the following:

+
   Matrix
+     |
+     +------> Array Object
+     |          |
+     |          +------> Data array
+     |          |
+     |          +------- Counter
+     |
+     +------ Dimension information
+
+
+ +

where the arrows denote a pointer to a data structure. If one wants to +access the Data array one will need to track through two pointers. If +one is going to write, one will have to check whether one needs to copy first. +This is not important when one is going to access the whole array, say, for a +add operation. But if one wants to access just a single element, then it +imposes a significant additional overhead on that operation. Any subscript +operation would need to check whether an update was required - even read since +it is hard for the compiler to tell whether a subscript access is a read or +write.

+

Some matrix libraries don't bother to do this. So if you write A = +B; and then modify an element of one of A or B, then the +same element of the other is also modified. I don't think this is acceptable +behaviour.

+

Delayed copy does not provide the additional functionality of my approach +but I suppose it would be possible to have both delayed copy and tagging +temporaries.

+

My approach does not automatically avoid all copying. In particular, you +need use a special technique to return a matrix from a function without +copying.

+

5.6 Memory management - +accessing contiguous locations

+

next - skip - +up - start

+

Modern computers work faster if one accesses memory by running through +contiguous locations rather than by jumping around all over the place. Newmat +stores matrices by rows so that algorithms that access +memory by running along rows will tend to work faster than one that runs down +columns. A number of the algorithms used in Newmat were developed before this +was an issue and so are not as efficient as possible.

+

I have gradually upgrading the algorithms to access memory by rows. The +following table shows the current status of this process.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FunctionContiguous memory accessComment
Add, subtractYes 
MultiplyYes 
ConcatenateYes 
TransposeNo 
Invert and solveYesMostly
CholeskyYes 
QRZ, QRZTYes 
SVDNo 
JacobiNoNot an issue; used only for smaller matrices
EigenvaluesNo 
SortYesQuick-sort is naturally good
FFT?Could be improved?
+

5.7 Evaluation of expressions - +lazy evaluation

+

next - skip - +up - start

+

Consider the instruction

+
   X = B - X;
+
+ +

A simple program will subtract X from B, store the result +in a temporary T1 and copy T1 into X. It would be +faster if the program recognised that the result could be stored directly into +X. This would happen automatically if the program could look at the +instruction first and mark X as temporary.

+

C programmers would expect to avoid the same problem with

+
   X = X - B;
+
+ +

by using an operator -=

+
   X -= B;
+
+ +

However this is an unnatural notation for non C users and it may be nicer to +write X = X - B; and know that the program will carry out the +simplification.

+

Another example where this intelligent analysis of an instruction is helpful +is in

+
   X = A.i() * B;
+
+ +

where i() denotes inverse. Numerical analysts know it is +inefficient to evaluate this expression by carrying out the inverse operation +and then the multiply. Yet it is a convenient way of writing the instruction. +It would be helpful if the program recognised this expression and carried out +the more appropriate approach.

+

I regard this interpretation of A.i() * B as just providing a +convenient notation. The objective is not primarily to correct the errors of +people who are unaware of the inefficiency of A.i() * B if interpreted +literally.

+

There is a third reason for the two-stage evaluation of expressions and this +is probably the most important one. In C++ it is quite hard to return an +expression from a function such as (*, + etc) without a copy. +This is particularly the case when an assignment (=) is involved. The +mechanism described here provides one way for avoiding this in matrix +expressions.

+

The C++ standard (section 12.8/15) allows the compiler to optimise away the +copy when returning an object from a function (but there will still be one copy +is an assignment (=) is involved). This means special handling of returns from a +function is less important when a modern optimising compiler is being +used. 

+

To carry out this intelligent analysis of an instruction matrix +expressions are evaluated in two stages. In the the first stage a tree +representation of the expression is formed. For example (A+B)*C is +represented by a tree

+

+       *
+      / \
+     +   C
+    / \
+   A   B
+
+ +

Rather than adding A and B the + operator yields +an object of a class AddedMatrix which is just a pair of pointers to +A and B. Then the * operator yields a +MultipliedMatrix which is a pair of pointers to the AddedMatrix +and C. The tree is examined for any simplifications and then evaluated +recursively.

+

Further possibilities not yet included are to recognise A.t()*A and +A.t()+A as symmetric or to improve the efficiency of evaluation of +expressions like A+B+C, A*B*C, A*B.t() (t() +denotes transpose).

+

One of the disadvantages of the two-stage approach is that the types of +matrix expressions are determined at run-time. So the compiler will not detect +errors of the type

+
   Matrix M;
+   DiagonalMatrix D;
+   ....;
+   D = M;
+
+ +

We don't allow conversions using = when information would be lost. +Such errors will be detected when the statement is executed.

+

5.8 How to overcome an +explosion in number of operations

+

next - skip - +up - start

+

The package attempts to solve the problem of the large number of versions of +the binary operations required when one has a variety of types.

+

With n types of matrices the binary operations will each require +n-squared separate algorithms. Some reduction in the number may be +possible by carrying out conversions. However, the situation rapidly becomes +impossible with more than 4 or 5 types. Doug Lea told me that it was possible +to avoid this problem. I don't know what his solution is. Here's mine.

+

Each matrix type includes routines for extracting individual rows or +columns. I assume a row or column consists of a sequence of zeros, a sequence +of stored values and then another sequence of zeros. Only a single algorithm is +then required for each binary operation. The rows can be located very quickly +since most of the matrices are stored row by row. Columns must be copied and so +the access is somewhat slower. As far as possible my algorithms access the +matrices by row.

+

There is another approach. Each of the matrix types defined in this package +can be set up so both rows and columns have their elements at equal intervals +provided we are prepared to store the rows and columns in up to three chunks. +With such an approach one could write a single "generic" algorithm +for each of multiply and add. This would be a reasonable alternative to my +approach.

+

I provide several algorithms for operations like + . If one is adding two +matrices of the same type then there is no need to access the individual rows +or columns and a faster general algorithm is appropriate.

+

Generally the method works well. However symmetric matrices are not always +handled very efficiently (yet) since complete rows are not stored explicitly. +

+

The original version of the package did not use this access by row or column +method and provided the multitude of algorithms for the combination of +different matrix types. The code file length turned out to be just a little +longer than the present one when providing the same facilities with 5 distinct +types of matrices. It would have been very difficult to increase the number of +matrix types in the original version. Apparently 4 to 5 types is about the +break even point for switching to the approach adopted in the present package. +

+

However it must also be admitted that there is a substantial overhead in the +approach adopted in the present package for small matrices. The test program +developed for the original version of the package takes 30 to 50% longer to run +with the current version (though there may be some other reasons for this). +This is for matrices in the range 6x6 to 10x10.

+

To try to improve the situation a little I do provide an ordinary matrix +multiplication routine for the case when all the matrices involved are +rectangular.

+

5.9 Destruction of +temporaries

+

next - skip - +up - start

+

Versions before version 5 of newmat did not work correctly with Gnu C++ +(version 5 or earlier). This was because the tree structure used to represent a +matrix expression was set up on the stack. This was fine for AT&T, Borland +and Zortech C++.

+

However early version Gnu C++ destroys temporary structures as soon as the +function that accesses them finishes. The other compilers wait until the end of +the current expression or current block. To overcome this problem, there is now +an option to store the temporaries forming the tree structure on the heap +(created with new) and to delete them explicitly. Activate the definition of +TEMPS_DESTROYED_QUICKLY to set this option.

+

Now that the C++ standards committee has said that temporary structures +should not be destroyed before a statement finishes, I suggest using the stack, +because of the difficulty of managing exceptions with the heap version.

+

5.10 A calculus of matrix +types

+

next - skip - +up - start

+

The program needs to be able to work out the class of the result of a matrix +expression. This is to check that a conversion is legal or to determine the +class of an intermediate result. To assist with this, a class MatrixType is +defined. Operators +, -, *, >= are +defined to calculate the types of the results of expressions or to check that +conversions are legal.

+

Early versions of newmat stored the types of the results of +operations in a table. So, for example, if you multiplied an +UpperTriangularMatrix by a LowerTriangularMatrix, newmat would look up +the table and see that the result was of type Matrix. With this approach the +exploding number of operations problem recurred although +not as seriously as when code had to be written for each pair of types. But +there was always the suspicion that somewhere, there was an error in one of +those 9x9 tables, that would be very hard to find. And the problem would get +worse as additional matrix types or operators were included.

+

The present version of newmat solves the problem by assigning +attributes such as diagonal or band or upper +triangular to each matrix type. Which attributes a matrix type has, is +stored as bits in an integer. As an example, the DiagonalMatrix type has the +bits corresponding to diagonal, symmetric and band equal +to 1. By looking at the attributes of each of the operands of a binary +operator, the program can work out the attributes of the result of the +operation with simple bitwise operations. Hence it can deduce an appropriate +type. The symmetric attribute is a minor problem because +symmetric * symmetric does not yield symmetric unless both +operands are diagonal. But otherwise very simple code can be used to +deduce the attributes of the result of a binary operation.

+

Tables of the types resulting from the binary operators are output at the +beginning of the test program.

+

5.11 Pointer arithmetic

+

next - skip - +up - start

+

Suppose you do something like

+
   int* y = new int[100];
+   y += 200;          // y points to something outside the array
+   // y is never accessed
+
+ +

Then the standard says that the behaviour of the program is undefined +even if y is never accessed. (You are allowed to calculate a pointer +value one location beyond the end of the array). In practice, a program like +this does not cause any problems with any compiler I have come across and +no-one has reported any such problems to me.

+

However, this error is detected by Borland's Code Guard +bound's checker and this makes it very difficult to use this to use Code +Guard to detect other problems since the output is swamped by reports of +this error.

+

Now consider

+
   int* y = new int[100];
+   y += 200;          // y points to something outside the array
+   y -= 150;          // y points to something inside the array
+   // y is accessed
+
+ +

Again this is not strictly correct but does not seem to cause a problem. But +it is much more doubtful than the previous example.

+

I removed most instances of the second version of the problem from Newmat09. +Hopefully the remainder of these instances were removed from the current +version of Newmat10. In addition, most instances of the first version of the +problem have also been fixed.

+

There is one exception. The interface to the Numerical +Recipes in C does still contain the second version of the problem. This is +inevitable because of the way Numerical Recipes in C stores vectors and +matrices. If you are running the test program with a +bounds checking program, edit tmt.h to disable the testing of the NRIC +interface.

+

The rule does does cause a problem for authors of matrix and +multidimensional array packages. If we want to run down a column of a matrix we +would like to do something like

+
   // set values of column 1
+   Matrix A;
+   ... set dimensions and put values in A
+   Real* a = A.Store();               // points to first element
+   int nr = A.Nrows();                // number of rows
+   int nc = A.Ncols();                // number of columns
+   while (nr--)
+   {
+      *a = something to put in first element of row
+      a += nc;                        // jump to next element of column
+   }
+
+ +

If the matrix has more than one column the last execution of a += +nc; will run off the end of the space allocated to the matrix and we'll +get a bounds error report.

+

Instead we have to use a program like

+
   // set values of column 1
+   Matrix A;
+   ... set dimensions and put values in A
+   Real* a = A.Store();               // points to first element
+   int nr = A.Nrows();                // number of rows
+   int nc = A.Ncols();                // number of columns
+   if (nr != 0)
+   {
+      for(;;)
+      {
+         *a = something to put in first element of row
+         if (!(--nr)) break;
+         a += nc;                     // jump to next element of column
+      }
+   }
+
+ +

which is more complicated and consequently introduces more chance of error. +

+

5.12 Error handling +

+

next - skip - +up - start

+

The library now does have a moderately graceful exit from errors. One can +use either the simulated exceptions or the compiler supported exceptions. When +newmat08 was released (in 1995), compiler exception handling in the compilers I +had access to was unreliable. I recommended you used my simulated exceptions. +In 1997 compiler supported exceptions seemed to work on a variety of +compilers - but not all compilers. This is still true in 2001. Try using the +compiler supported exceptions if you have a recent compiler, but if you are +getting strange crashes or errors try going back to my simulated exceptions. +

+

The approach in the present library, attempting to simulate C++ exceptions, +is not completely satisfactory, but seems a good interim solution for those who +cannot use compiler supported exceptions. People who don't want exceptions in +any shape or form, can set the option to exit the program if an exception is +thrown.

+

The exception mechanism cannot clean-up objects explicitly created by new. +This must be explicitly carried out by the package writer or the package user. +I have not yet done this completely with the present package so occasionally a +little garbage may be left behind after an exception. I don't think this is a +big problem, but it is one that needs fixing.

+

5.13 Sparse matrices

+

next - skip - +up - start

+

The library does not support sparse matrices.

+

For sparse matrices there is going to be some kind of structure vector. It +is going to have to be calculated for the results of expressions in much the +same way that types are calculated. In addition, a whole new set of row and +column operations would have to be written.

+

Sparse matrices are important for people solving large sets of differential +equations as well as being important for statistical and operational research +applications.

+

But there are packages being developed specifically for sparse matrices and +these might present the best approach, at least where sparse matrices are the +main interest.

+

5.14 Complex matrices

+

next - skip - +up - start

+

The package does not yet support matrices with complex elements. There are +at least two approaches to including these. One is to have matrices with +complex elements.

+

This probably means making new versions of the basic row and column +operations for Real*Complex, Complex*Complex, Complex*Real and similarly for ++ and -. This would be OK, except that if I also want to do +this for sparse matrices, then when you put these together, the whole thing +will get out of hand.

+

The alternative is to represent a Complex matrix by a pair of Real matrices. +One probably needs another level of decoding expressions but I think it might +still be simpler than the first approach. But there is going to be a problem +with accessing elements and it does not seem possible to solve this in an +entirely satisfactory way.

+

Complex matrices are used extensively by electrical engineers and physicists +and really should be fully supported in a comprehensive package.

+

You can simulate most complex operations by representing Z = X + iY +by

+
    /  X   Y \
+    \ -Y   X / 
+
+ +

Most matrix operations will simulate the corresponding complex operation, +when applied to this matrix. But, of course, this matrix is essentially twice as big as you +would need with a genuine complex matrix library.

+

return to top
+return to online documentation page

+

 

+

 

+

 

+

 

+

 

+

 

+

 

+ + \ No newline at end of file diff --git a/3rdparty/newmat/nm_b55.mak b/3rdparty/newmat/nm_b55.mak new file mode 100644 index 0000000..90ff99c --- /dev/null +++ b/3rdparty/newmat/nm_b55.mak @@ -0,0 +1,193 @@ +BORLANDPATH = "C:\program files\Borland\cbuilder5" + +TASM = TASM32 +TLIB = tlib +TLINK = ilink32 +LIBPATH = $(BORLANDPATH)\LIB +INCLUDEPATH = $(BORLANDPATH)\INCLUDE + +DIFF = sdiff +PRE = + +CC = bcc32 -W- -v- -H- -3 -N -Og -Oi -Ov -f -I$(INCLUDEPATH) + +.cpp.obj: + $(CC) -c {$< } + +everything: tmt.exe example.exe test_exc.exe nl_ex.exe sl_ex.exe garch.exe + +newmat_lobj = newmat1.obj newmat2.obj newmat3.obj newmat4.obj newmat5.obj newmat6.obj newmat7.obj newmat8.obj newmatex.obj bandmat.obj submat.obj myexcept.obj cholesky.obj evalue.obj fft.obj hholder.obj jacobi.obj newfft.obj sort.obj svd.obj newmatrm.obj newmat9.obj + +newmat.lib: $(newmat_lobj) + $(TLIB) $@ /P32 /u $(newmat_lobj) + +tmt_obj = tmt.obj tmt1.obj tmt2.obj tmt3.obj tmt4.obj tmt5.obj tmt6.obj tmt7.obj tmt8.obj tmt9.obj tmta.obj tmtb.obj tmtc.obj tmtd.obj tmte.obj tmtf.obj tmtg.obj tmth.obj tmti.obj tmtj.obj tmtk.obj tmtl.obj tmtm.obj + +tmt.exe: $(tmt_obj) newmat.lib + $(TLINK) /x/L$(LIBPATH)/Gn -Tpe -ap -c @&&| +c0x32.obj $(tmt_obj),$@,, newmat.lib import32.lib cw32.lib +| + +example_obj = example.obj + +example.exe: $(example_obj) newmat.lib + $(TLINK) /x/L$(LIBPATH)/Gn -Tpe -ap -c @&&| +c0x32.obj $(example_obj),$@,, newmat.lib import32.lib cw32.lib +| + +test_exc_obj = test_exc.obj + +test_exc.exe: $(test_exc_obj) newmat.lib + $(TLINK) /x/L$(LIBPATH)/Gn -Tpe -ap -c @&&| +c0x32.obj $(test_exc_obj),$@,, newmat.lib import32.lib cw32.lib +| + +nl_ex_obj = nl_ex.obj newmatnl.obj + +nl_ex.exe: $(nl_ex_obj) newmat.lib + $(TLINK) /x/L$(LIBPATH)/Gn -Tpe -ap -c @&&| +c0x32.obj $(nl_ex_obj),$@,, newmat.lib import32.lib cw32.lib +| + +sl_ex_obj = sl_ex.obj solution.obj myexcept.obj + +sl_ex.exe: $(sl_ex_obj) + $(TLINK) /x/L$(LIBPATH)/Gn -Tpe -ap -c @&&| +c0x32.obj $(sl_ex_obj),$@,,import32.lib cw32.lib +| + +garch_obj = garch.obj newmatnl.obj + +garch.exe: $(garch_obj) newmat.lib + $(TLINK) /x/L$(LIBPATH)/Gn -Tpe -ap -c @&&| +c0x32.obj $(garch_obj),$@,, newmat.lib import32.lib cw32.lib +| + +newmat1.obj: newmat1.cpp newmat.h include.h boolean.h myexcept.h + +newmat2.obj: newmat2.cpp include.h newmat.h newmatrc.h boolean.h myexcept.h controlw.h + +newmat3.obj: newmat3.cpp include.h newmat.h newmatrc.h boolean.h myexcept.h controlw.h + +newmat4.obj: newmat4.cpp include.h newmat.h newmatrc.h boolean.h myexcept.h controlw.h + +newmat5.obj: newmat5.cpp include.h newmat.h newmatrc.h boolean.h myexcept.h controlw.h + +newmat6.obj: newmat6.cpp include.h newmat.h newmatrc.h boolean.h myexcept.h controlw.h + +newmat7.obj: newmat7.cpp include.h newmat.h newmatrc.h boolean.h myexcept.h controlw.h + +newmat8.obj: newmat8.cpp include.h newmat.h newmatrc.h precisio.h boolean.h myexcept.h controlw.h + +newmatex.obj: newmatex.cpp include.h newmat.h boolean.h myexcept.h + +bandmat.obj: bandmat.cpp include.h newmat.h newmatrc.h boolean.h myexcept.h controlw.h + +submat.obj: submat.cpp include.h newmat.h newmatrc.h boolean.h myexcept.h controlw.h + +myexcept.obj: myexcept.cpp include.h myexcept.h + +cholesky.obj: cholesky.cpp include.h newmat.h boolean.h myexcept.h + +evalue.obj: evalue.cpp include.h newmatap.h newmatrm.h precisio.h newmat.h boolean.h myexcept.h + +fft.obj: fft.cpp include.h newmatap.h newmat.h boolean.h myexcept.h + +hholder.obj: hholder.cpp include.h newmatap.h newmat.h boolean.h myexcept.h + +jacobi.obj: jacobi.cpp include.h newmatap.h precisio.h newmatrm.h newmat.h boolean.h myexcept.h + +newfft.obj: newfft.cpp newmatap.h newmat.h include.h boolean.h myexcept.h + +sort.obj: sort.cpp include.h newmatap.h newmat.h boolean.h myexcept.h + +svd.obj: svd.cpp include.h newmatap.h newmatrm.h precisio.h newmat.h boolean.h myexcept.h + +newmatrm.obj: newmatrm.cpp newmat.h newmatrm.h include.h boolean.h myexcept.h + +newmat9.obj: newmat9.cpp include.h newmat.h newmatio.h newmatrc.h boolean.h myexcept.h controlw.h + +tmt.obj: tmt.cpp include.h newmat.h tmt.h boolean.h myexcept.h + +tmt1.obj: tmt1.cpp include.h newmat.h tmt.h boolean.h myexcept.h + +tmt2.obj: tmt2.cpp include.h newmat.h tmt.h boolean.h myexcept.h + +tmt3.obj: tmt3.cpp include.h newmat.h tmt.h boolean.h myexcept.h + +tmt4.obj: tmt4.cpp include.h newmat.h tmt.h boolean.h myexcept.h + +tmt5.obj: tmt5.cpp include.h newmat.h tmt.h boolean.h myexcept.h + +tmt6.obj: tmt6.cpp include.h newmatap.h tmt.h newmat.h boolean.h myexcept.h + +tmt7.obj: tmt7.cpp include.h newmat.h tmt.h boolean.h myexcept.h + +tmt8.obj: tmt8.cpp include.h newmatap.h tmt.h newmat.h boolean.h myexcept.h + +tmt9.obj: tmt9.cpp include.h newmatap.h tmt.h newmat.h boolean.h myexcept.h + +tmta.obj: tmta.cpp include.h newmatap.h tmt.h newmat.h boolean.h myexcept.h + +tmtb.obj: tmtb.cpp include.h newmat.h tmt.h boolean.h myexcept.h + +tmtc.obj: tmtc.cpp include.h newmat.h tmt.h boolean.h myexcept.h + +tmtd.obj: tmtd.cpp include.h newmatap.h tmt.h newmat.h boolean.h myexcept.h + +tmte.obj: tmte.cpp include.h newmatap.h tmt.h newmat.h boolean.h myexcept.h + +tmtf.obj: tmtf.cpp include.h newmatap.h tmt.h newmat.h boolean.h myexcept.h + +tmtg.obj: tmtg.cpp include.h newmatap.h tmt.h newmat.h boolean.h myexcept.h + +tmth.obj: tmth.cpp include.h newmatap.h tmt.h newmat.h boolean.h myexcept.h + +tmti.obj: tmti.cpp include.h newmatap.h tmt.h newmat.h boolean.h myexcept.h + +tmtj.obj: tmtj.cpp include.h newmatap.h tmt.h newmat.h boolean.h myexcept.h + +tmtk.obj: tmtk.cpp include.h newmatap.h newmatio.h tmt.h newmat.h boolean.h myexcept.h + +tmtl.obj: tmtl.cpp newmat.h tmt.h include.h boolean.h myexcept.h + +tmtm.obj: tmtm.cpp newmat.h tmt.h include.h boolean.h myexcept.h + +example.obj: example.cpp newmatap.h newmatio.h newmat.h include.h boolean.h myexcept.h + +test_exc.obj: test_exc.cpp newmatap.h newmatio.h newmat.h include.h boolean.h myexcept.h + +nl_ex.obj: nl_ex.cpp newmatnl.h newmatio.h newmat.h include.h boolean.h myexcept.h + +newmatnl.obj: newmatnl.cpp newmatap.h newmatnl.h newmat.h include.h boolean.h myexcept.h + +sl_ex.obj: sl_ex.cpp include.h solution.h boolean.h myexcept.h + +solution.obj: solution.cpp include.h boolean.h myexcept.h solution.h + +garch.obj: garch.cpp newmatap.h newmatio.h newmatnl.h newmat.h include.h boolean.h myexcept.h + +tmt.txx: tmt.exe + $(PRE)tmt > tmt.txx + $(DIFF) tmt.txt tmt.txx + +example.txx: example.exe + $(PRE)example > example.txx + $(DIFF) example.txt example.txx + +test_exc.txx: test_exc.exe + $(PRE)test_exc > test_exc.txx + $(DIFF) test_exc.txt test_exc.txx + +nl_ex.txx: nl_ex.exe + $(PRE)nl_ex > nl_ex.txx + $(DIFF) nl_ex.txt nl_ex.txx + +sl_ex.txx: sl_ex.exe + $(PRE)sl_ex > sl_ex.txx + $(DIFF) sl_ex.txt sl_ex.txx + +garch.txx: garch.exe + $(PRE)garch > garch.txx + $(DIFF) garch.txt garch.txx + diff --git a/3rdparty/newmat/nm_cc.mak b/3rdparty/newmat/nm_cc.mak new file mode 100644 index 0000000..9ae3fa2 --- /dev/null +++ b/3rdparty/newmat/nm_cc.mak @@ -0,0 +1,182 @@ +CXX = CC +CXXFLAGS = -O2 + +DIFF = ./sdiff +PRE = ./ + + +.SUFFIXES: +.SUFFIXES: .a .o .c .cpp + +.cpp.o: + rm -f $*.cxx + ln $*.cpp $*.cxx + $(CXX) $(CXXFLAGS) -c $*.cxx + rm $*.cxx + +everything: tmt example test_exc nl_ex sl_ex garch + +newmat_lobj = newmat1.o newmat2.o newmat3.o newmat4.o newmat5.o newmat6.o newmat7.o newmat8.o newmatex.o bandmat.o submat.o myexcept.o cholesky.o evalue.o fft.o hholder.o jacobi.o newfft.o sort.o svd.o newmatrm.o newmat9.o + +libnewmat.a: $(newmat_lobj) + $(AR) -cr $@ $(newmat_lobj) + ranlib $@ + +tmt_obj = tmt.o tmt1.o tmt2.o tmt3.o tmt4.o tmt5.o tmt6.o tmt7.o tmt8.o tmt9.o tmta.o tmtb.o tmtc.o tmtd.o tmte.o tmtf.o tmtg.o tmth.o tmti.o tmtj.o tmtk.o tmtl.o tmtm.o + +tmt: $(tmt_obj) libnewmat.a + $(CXX) -o $@ $(tmt_obj) -L. -lnewmat -lm + +example_obj = example.o + +example: $(example_obj) libnewmat.a + $(CXX) -o $@ $(example_obj) -L. -lnewmat -lm + +test_exc_obj = test_exc.o + +test_exc: $(test_exc_obj) libnewmat.a + $(CXX) -o $@ $(test_exc_obj) -L. -lnewmat -lm + +nl_ex_obj = nl_ex.o newmatnl.o + +nl_ex: $(nl_ex_obj) libnewmat.a + $(CXX) -o $@ $(nl_ex_obj) -L. -lnewmat -lm + +sl_ex_obj = sl_ex.o solution.o myexcept.o + +sl_ex: $(sl_ex_obj) + $(CXX) -o $@ $(sl_ex_obj) -L. -lm + +garch_obj = garch.o newmatnl.o + +garch: $(garch_obj) libnewmat.a + $(CXX) -o $@ $(garch_obj) -L. -lnewmat -lm + +newmat1.o: newmat1.cpp newmat.h include.h boolean.h myexcept.h + +newmat2.o: newmat2.cpp include.h newmat.h newmatrc.h boolean.h myexcept.h controlw.h + +newmat3.o: newmat3.cpp include.h newmat.h newmatrc.h boolean.h myexcept.h controlw.h + +newmat4.o: newmat4.cpp include.h newmat.h newmatrc.h boolean.h myexcept.h controlw.h + +newmat5.o: newmat5.cpp include.h newmat.h newmatrc.h boolean.h myexcept.h controlw.h + +newmat6.o: newmat6.cpp include.h newmat.h newmatrc.h boolean.h myexcept.h controlw.h + +newmat7.o: newmat7.cpp include.h newmat.h newmatrc.h boolean.h myexcept.h controlw.h + +newmat8.o: newmat8.cpp include.h newmat.h newmatrc.h precisio.h boolean.h myexcept.h controlw.h + +newmatex.o: newmatex.cpp include.h newmat.h boolean.h myexcept.h + +bandmat.o: bandmat.cpp include.h newmat.h newmatrc.h boolean.h myexcept.h controlw.h + +submat.o: submat.cpp include.h newmat.h newmatrc.h boolean.h myexcept.h controlw.h + +myexcept.o: myexcept.cpp include.h myexcept.h + +cholesky.o: cholesky.cpp include.h newmat.h boolean.h myexcept.h + +evalue.o: evalue.cpp include.h newmatap.h newmatrm.h precisio.h newmat.h boolean.h myexcept.h + +fft.o: fft.cpp include.h newmatap.h newmat.h boolean.h myexcept.h + +hholder.o: hholder.cpp include.h newmatap.h newmat.h boolean.h myexcept.h + +jacobi.o: jacobi.cpp include.h newmatap.h precisio.h newmatrm.h newmat.h boolean.h myexcept.h + +newfft.o: newfft.cpp newmatap.h newmat.h include.h boolean.h myexcept.h + +sort.o: sort.cpp include.h newmatap.h newmat.h boolean.h myexcept.h + +svd.o: svd.cpp include.h newmatap.h newmatrm.h precisio.h newmat.h boolean.h myexcept.h + +newmatrm.o: newmatrm.cpp newmat.h newmatrm.h include.h boolean.h myexcept.h + +newmat9.o: newmat9.cpp include.h newmat.h newmatio.h newmatrc.h boolean.h myexcept.h controlw.h + +tmt.o: tmt.cpp include.h newmat.h tmt.h boolean.h myexcept.h + +tmt1.o: tmt1.cpp include.h newmat.h tmt.h boolean.h myexcept.h + +tmt2.o: tmt2.cpp include.h newmat.h tmt.h boolean.h myexcept.h + +tmt3.o: tmt3.cpp include.h newmat.h tmt.h boolean.h myexcept.h + +tmt4.o: tmt4.cpp include.h newmat.h tmt.h boolean.h myexcept.h + +tmt5.o: tmt5.cpp include.h newmat.h tmt.h boolean.h myexcept.h + +tmt6.o: tmt6.cpp include.h newmatap.h tmt.h newmat.h boolean.h myexcept.h + +tmt7.o: tmt7.cpp include.h newmat.h tmt.h boolean.h myexcept.h + +tmt8.o: tmt8.cpp include.h newmatap.h tmt.h newmat.h boolean.h myexcept.h + +tmt9.o: tmt9.cpp include.h newmatap.h tmt.h newmat.h boolean.h myexcept.h + +tmta.o: tmta.cpp include.h newmatap.h tmt.h newmat.h boolean.h myexcept.h + +tmtb.o: tmtb.cpp include.h newmat.h tmt.h boolean.h myexcept.h + +tmtc.o: tmtc.cpp include.h newmat.h tmt.h boolean.h myexcept.h + +tmtd.o: tmtd.cpp include.h newmatap.h tmt.h newmat.h boolean.h myexcept.h + +tmte.o: tmte.cpp include.h newmatap.h tmt.h newmat.h boolean.h myexcept.h + +tmtf.o: tmtf.cpp include.h newmatap.h tmt.h newmat.h boolean.h myexcept.h + +tmtg.o: tmtg.cpp include.h newmatap.h tmt.h newmat.h boolean.h myexcept.h + +tmth.o: tmth.cpp include.h newmatap.h tmt.h newmat.h boolean.h myexcept.h + +tmti.o: tmti.cpp include.h newmatap.h tmt.h newmat.h boolean.h myexcept.h + +tmtj.o: tmtj.cpp include.h newmatap.h tmt.h newmat.h boolean.h myexcept.h + +tmtk.o: tmtk.cpp include.h newmatap.h newmatio.h tmt.h newmat.h boolean.h myexcept.h + +tmtl.o: tmtl.cpp newmat.h tmt.h include.h boolean.h myexcept.h + +tmtm.o: tmtm.cpp newmat.h tmt.h include.h boolean.h myexcept.h + +example.o: example.cpp newmatap.h newmatio.h newmat.h include.h boolean.h myexcept.h + +test_exc.o: test_exc.cpp newmatap.h newmatio.h newmat.h include.h boolean.h myexcept.h + +nl_ex.o: nl_ex.cpp newmatnl.h newmatio.h newmat.h include.h boolean.h myexcept.h + +newmatnl.o: newmatnl.cpp newmatap.h newmatnl.h newmat.h include.h boolean.h myexcept.h + +sl_ex.o: sl_ex.cpp include.h solution.h boolean.h myexcept.h + +solution.o: solution.cpp include.h boolean.h myexcept.h solution.h + +garch.o: garch.cpp newmatap.h newmatio.h newmatnl.h newmat.h include.h boolean.h myexcept.h + +tmt.txx: tmt + $(PRE)tmt > tmt.txx + $(DIFF) tmt.txt tmt.txx + +example.txx: example + $(PRE)example > example.txx + $(DIFF) example.txt example.txx + +test_exc.txx: test_exc + $(PRE)test_exc > test_exc.txx + $(DIFF) test_exc.txt test_exc.txx + +nl_ex.txx: nl_ex + $(PRE)nl_ex > nl_ex.txx + $(DIFF) nl_ex.txt nl_ex.txx + +sl_ex.txx: sl_ex + $(PRE)sl_ex > sl_ex.txx + $(DIFF) sl_ex.txt sl_ex.txx + +garch.txx: garch + $(PRE)garch > garch.txx + $(DIFF) garch.txt garch.txx + diff --git a/3rdparty/newmat/nm_gnu.mak b/3rdparty/newmat/nm_gnu.mak new file mode 100644 index 0000000..d3d7b2f --- /dev/null +++ b/3rdparty/newmat/nm_gnu.mak @@ -0,0 +1,177 @@ +CXX = g++ +CXXFLAGS = -O2 -Wall + +DIFF = ./sdiff +PRE = ./ +MAJOR = 1 +MINOR = 0 + +%.o: %.cpp + $(CXX) $(CXXFLAGS) -c $*.cpp + +everything: tmt example test_exc nl_ex sl_ex garch + +newmat_lobj = newmat1.o newmat2.o newmat3.o newmat4.o newmat5.o newmat6.o newmat7.o newmat8.o newmatex.o bandmat.o submat.o myexcept.o cholesky.o evalue.o fft.o hholder.o jacobi.o newfft.o sort.o svd.o newmatrm.o newmat9.o + +libnewmat.a: $(newmat_lobj) + $(AR) -cr $@ $(newmat_lobj) + ranlib $@ + +tmt_obj = tmt.o tmt1.o tmt2.o tmt3.o tmt4.o tmt5.o tmt6.o tmt7.o tmt8.o tmt9.o tmta.o tmtb.o tmtc.o tmtd.o tmte.o tmtf.o tmtg.o tmth.o tmti.o tmtj.o tmtk.o tmtl.o tmtm.o + +tmt: $(tmt_obj) libnewmat.a + $(CXX) -o $@ $(tmt_obj) -L. -lnewmat -lm + +example_obj = example.o + +example: $(example_obj) libnewmat.a + $(CXX) -o $@ $(example_obj) -L. -lnewmat -lm + +test_exc_obj = test_exc.o + +test_exc: $(test_exc_obj) libnewmat.a + $(CXX) -o $@ $(test_exc_obj) -L. -lnewmat -lm + +nl_ex_obj = nl_ex.o newmatnl.o + +nl_ex: $(nl_ex_obj) libnewmat.a + $(CXX) -o $@ $(nl_ex_obj) -L. -lnewmat -lm + +sl_ex_obj = sl_ex.o solution.o myexcept.o + +sl_ex: $(sl_ex_obj) + $(CXX) -o $@ $(sl_ex_obj) -L. -lm + +garch_obj = garch.o newmatnl.o + +garch: $(garch_obj) libnewmat.a + $(CXX) -o $@ $(garch_obj) -L. -lnewmat -lm + +newmat1.o: newmat1.cpp newmat.h include.h boolean.h myexcept.h + +newmat2.o: newmat2.cpp include.h newmat.h newmatrc.h boolean.h myexcept.h controlw.h + +newmat3.o: newmat3.cpp include.h newmat.h newmatrc.h boolean.h myexcept.h controlw.h + +newmat4.o: newmat4.cpp include.h newmat.h newmatrc.h boolean.h myexcept.h controlw.h + +newmat5.o: newmat5.cpp include.h newmat.h newmatrc.h boolean.h myexcept.h controlw.h + +newmat6.o: newmat6.cpp include.h newmat.h newmatrc.h boolean.h myexcept.h controlw.h + +newmat7.o: newmat7.cpp include.h newmat.h newmatrc.h boolean.h myexcept.h controlw.h + +newmat8.o: newmat8.cpp include.h newmat.h newmatrc.h precisio.h boolean.h myexcept.h controlw.h + +newmatex.o: newmatex.cpp include.h newmat.h boolean.h myexcept.h + +bandmat.o: bandmat.cpp include.h newmat.h newmatrc.h boolean.h myexcept.h controlw.h + +submat.o: submat.cpp include.h newmat.h newmatrc.h boolean.h myexcept.h controlw.h + +myexcept.o: myexcept.cpp include.h myexcept.h + +cholesky.o: cholesky.cpp include.h newmat.h boolean.h myexcept.h + +evalue.o: evalue.cpp include.h newmatap.h newmatrm.h precisio.h newmat.h boolean.h myexcept.h + +fft.o: fft.cpp include.h newmatap.h newmat.h boolean.h myexcept.h + +hholder.o: hholder.cpp include.h newmatap.h newmat.h boolean.h myexcept.h + +jacobi.o: jacobi.cpp include.h newmatap.h precisio.h newmatrm.h newmat.h boolean.h myexcept.h + +newfft.o: newfft.cpp newmatap.h newmat.h include.h boolean.h myexcept.h + +sort.o: sort.cpp include.h newmatap.h newmat.h boolean.h myexcept.h + +svd.o: svd.cpp include.h newmatap.h newmatrm.h precisio.h newmat.h boolean.h myexcept.h + +newmatrm.o: newmatrm.cpp newmat.h newmatrm.h include.h boolean.h myexcept.h + +newmat9.o: newmat9.cpp include.h newmat.h newmatio.h newmatrc.h boolean.h myexcept.h controlw.h + +tmt.o: tmt.cpp include.h newmat.h tmt.h boolean.h myexcept.h + +tmt1.o: tmt1.cpp include.h newmat.h tmt.h boolean.h myexcept.h + +tmt2.o: tmt2.cpp include.h newmat.h tmt.h boolean.h myexcept.h + +tmt3.o: tmt3.cpp include.h newmat.h tmt.h boolean.h myexcept.h + +tmt4.o: tmt4.cpp include.h newmat.h tmt.h boolean.h myexcept.h + +tmt5.o: tmt5.cpp include.h newmat.h tmt.h boolean.h myexcept.h + +tmt6.o: tmt6.cpp include.h newmatap.h tmt.h newmat.h boolean.h myexcept.h + +tmt7.o: tmt7.cpp include.h newmat.h tmt.h boolean.h myexcept.h + +tmt8.o: tmt8.cpp include.h newmatap.h tmt.h newmat.h boolean.h myexcept.h + +tmt9.o: tmt9.cpp include.h newmatap.h tmt.h newmat.h boolean.h myexcept.h + +tmta.o: tmta.cpp include.h newmatap.h tmt.h newmat.h boolean.h myexcept.h + +tmtb.o: tmtb.cpp include.h newmat.h tmt.h boolean.h myexcept.h + +tmtc.o: tmtc.cpp include.h newmat.h tmt.h boolean.h myexcept.h + +tmtd.o: tmtd.cpp include.h newmatap.h tmt.h newmat.h boolean.h myexcept.h + +tmte.o: tmte.cpp include.h newmatap.h tmt.h newmat.h boolean.h myexcept.h + +tmtf.o: tmtf.cpp include.h newmatap.h tmt.h newmat.h boolean.h myexcept.h + +tmtg.o: tmtg.cpp include.h newmatap.h tmt.h newmat.h boolean.h myexcept.h + +tmth.o: tmth.cpp include.h newmatap.h tmt.h newmat.h boolean.h myexcept.h + +tmti.o: tmti.cpp include.h newmatap.h tmt.h newmat.h boolean.h myexcept.h + +tmtj.o: tmtj.cpp include.h newmatap.h tmt.h newmat.h boolean.h myexcept.h + +tmtk.o: tmtk.cpp include.h newmatap.h newmatio.h tmt.h newmat.h boolean.h myexcept.h + +tmtl.o: tmtl.cpp newmat.h tmt.h include.h boolean.h myexcept.h + +tmtm.o: tmtm.cpp newmat.h tmt.h include.h boolean.h myexcept.h + +example.o: example.cpp newmatap.h newmatio.h newmat.h include.h boolean.h myexcept.h + +test_exc.o: test_exc.cpp newmatap.h newmatio.h newmat.h include.h boolean.h myexcept.h + +nl_ex.o: nl_ex.cpp newmatnl.h newmatio.h newmat.h include.h boolean.h myexcept.h + +newmatnl.o: newmatnl.cpp newmatap.h newmatnl.h newmat.h include.h boolean.h myexcept.h + +sl_ex.o: sl_ex.cpp include.h solution.h boolean.h myexcept.h + +solution.o: solution.cpp include.h boolean.h myexcept.h solution.h + +garch.o: garch.cpp newmatap.h newmatio.h newmatnl.h newmat.h include.h boolean.h myexcept.h + +tmt.txx: tmt + $(PRE)tmt > tmt.txx + $(DIFF) tmt.txt tmt.txx + +example.txx: example + $(PRE)example > example.txx + $(DIFF) example.txt example.txx + +test_exc.txx: test_exc + $(PRE)test_exc > test_exc.txx + $(DIFF) test_exc.txt test_exc.txx + +nl_ex.txx: nl_ex + $(PRE)nl_ex > nl_ex.txx + $(DIFF) nl_ex.txt nl_ex.txx + +sl_ex.txx: sl_ex + $(PRE)sl_ex > sl_ex.txx + $(DIFF) sl_ex.txt sl_ex.txx + +garch.txx: garch + $(PRE)garch > garch.txx + $(DIFF) garch.txt garch.txx + diff --git a/3rdparty/newmat/nm_targ.txt b/3rdparty/newmat/nm_targ.txt new file mode 100644 index 0000000..14b00b3 --- /dev/null +++ b/3rdparty/newmat/nm_targ.txt @@ -0,0 +1,7 @@ +newmat.lfl +tmt +example +test_exc +nl_ex +sl_ex +garch diff --git a/3rdparty/newmat/precisio.h b/3rdparty/newmat/precisio.h new file mode 100644 index 0000000..db5cb02 --- /dev/null +++ b/3rdparty/newmat/precisio.h @@ -0,0 +1,266 @@ +/// \ingroup newmat +///@{ + +/// \file precisio.h +/// Floating point precision constants. + +#ifndef PRECISION_LIB +#define PRECISION_LIB 0 + +#define WANT_MATH +#include "include.h" // in case being used as stand alone + +#ifdef _STANDARD_ // standard library available +#include +#endif + +#ifdef use_namespace +namespace NEWMAT { +#endif + +#ifdef _STANDARD_ // standard library available + +#ifdef OPT_COMPATIBLE +#include // for FLT_MAX +#endif + +using namespace std; + +/// Floating point precision. +class FloatingPointPrecision +{ +public: + static int Dig() // number of decimal digits or precision + { return numeric_limits::digits10 ; } + + static Real Epsilon() // smallest number such that 1+Eps!=Eps + { return numeric_limits::epsilon(); } + + static int Mantissa() // bits in mantisa + { return numeric_limits::digits; } + + static Real Maximum() // maximum value + { return numeric_limits::max(); } + + static int MaximumDecimalExponent() // maximum decimal exponent + { return numeric_limits::max_exponent10; } + + static int MaximumExponent() // maximum binary exponent + { return numeric_limits::max_exponent; } + + static Real LnMaximum() // natural log of maximum + { return (Real)log(Maximum()); } + + static Real Minimum() // minimum positive value + { return numeric_limits::min(); } + + static int MinimumDecimalExponent() // minimum decimal exponent + { return numeric_limits::min_exponent10; } + + static int MinimumExponent() // minimum binary exponent + { return numeric_limits::min_exponent; } + + static Real LnMinimum() // natural log of minimum + { return (Real)log(Minimum()); } + + static int Radix() // exponent radix + { return numeric_limits::radix; } + + static int Rounds() // addition rounding (1 = does round) + { + return numeric_limits::round_style == + round_to_nearest ? 1 : 0; + } + +}; + + +#else // _STANDARD_ not defined + +#ifndef SystemV // if there is float.h + +#ifdef USING_FLOAT + +/// Floating point precision (type float). +class FloatingPointPrecision +{ +public: + static int Dig() + { return FLT_DIG; } // number of decimal digits or precision + + static Real Epsilon() + { return FLT_EPSILON; } // smallest number such that 1+Eps!=Eps + + static int Mantissa() + { return FLT_MANT_DIG; } // bits in mantisa + + static Real Maximum() + { return FLT_MAX; } // maximum value + + static int MaximumDecimalExponent() + { return FLT_MAX_10_EXP; } // maximum decimal exponent + + static int MaximumExponent() + { return FLT_MAX_EXP; } // maximum binary exponent + + static Real LnMaximum() + { return (Real)log(Maximum()); } // natural log of maximum + + static Real Minimum() + { return FLT_MIN; } // minimum positive value + + static int MinimumDecimalExponent() + { return FLT_MIN_10_EXP; } // minimum decimal exponent + + static int MinimumExponent() + { return FLT_MIN_EXP; } // minimum binary exponent + + static Real LnMinimum() + { return (Real)log(Minimum()); } // natural log of minimum + + static int Radix() + { return FLT_RADIX; } // exponent radix + + static int Rounds() + { return FLT_ROUNDS; } // addition rounding (1 = does round) + +}; + +#endif // USING_FLOAT + + +#ifdef USING_DOUBLE + +/// Floating point precision (type double). +class FloatingPointPrecision +{ +public: + + static int Dig() + { return DBL_DIG; } // number of decimal digits or precision + + static Real Epsilon() + { return DBL_EPSILON; } // smallest number such that 1+Eps!=Eps + + static int Mantissa() + { return DBL_MANT_DIG; } // bits in mantisa + + static Real Maximum() + { return DBL_MAX; } // maximum value + + static int MaximumDecimalExponent() + { return DBL_MAX_10_EXP; } // maximum decimal exponent + + static int MaximumExponent() + { return DBL_MAX_EXP; } // maximum binary exponent + + static Real LnMaximum() + { return (Real)log(Maximum()); } // natural log of maximum + + static Real Minimum() + { +//#ifdef __BCPLUSPLUS__ +// return 2.225074e-308; // minimum positive value +//#else + return DBL_MIN; +//#endif + } + + static int MinimumDecimalExponent() + { return DBL_MIN_10_EXP; } // minimum decimal exponent + + static int MinimumExponent() + { return DBL_MIN_EXP; } // minimum binary exponent + + static Real LnMinimum() + { return (Real)log(Minimum()); } // natural log of minimum + + + static int Radix() + { return FLT_RADIX; } // exponent radix + + static int Rounds() + { return FLT_ROUNDS; } // addition rounding (1 = does round) + +}; + +#endif // USING_DOUBLE + +#else // if there is no float.h + +#ifdef OPT_COMPATIBLE +#define FLT_MAX MAXFLOAT +#endif + + +#ifdef USING_FLOAT + +/// Floating point precision (type float). +class FloatingPointPrecision +{ +public: + + static Real Epsilon() + { return pow(2.0,(int)(1-FSIGNIF)); } + // smallest number such that 1+Eps!=Eps + + static Real Maximum() + { return MAXFLOAT; } // maximum value + + static Real LnMaximum() + { return (Real)log(Maximum()); } // natural log of maximum + + static Real Minimum() + { return MINFLOAT; } // minimum positive value + + static Real LnMinimum() + { return (Real)log(Minimum()); } // natural log of minimum + +}; + +#endif // USING_FLOAT + + +#ifdef USING_DOUBLE + +/// Floating point precision (type double). +class FloatingPointPrecision +{ +public: + + static Real Epsilon() + { return pow(2.0,(int)(1-DSIGNIF)); } + // smallest number such that 1+Eps!=Eps + + static Real Maximum() + { return MAXDOUBLE; } // maximum value + + static Real LnMaximum() + { return LN_MAXDOUBLE; } // natural log of maximum + + static Real Minimum() + { return MINDOUBLE; } + + static Real LnMinimum() + { return LN_MINDOUBLE; } // natural log of minimum +}; + +#endif // USING_DOUBLE + +#endif // SystemV + +#endif // _STANDARD_ + + + + +#ifdef use_namespace +} +#endif // use_namespace + + + +#endif // PRECISION_LIB + + +///@} diff --git a/3rdparty/newmat/rbd.css b/3rdparty/newmat/rbd.css new file mode 100644 index 0000000..b17ff67 --- /dev/null +++ b/3rdparty/newmat/rbd.css @@ -0,0 +1,20 @@ +/* Style sheet - if you are saving my html files, please also save this file as rbd.css */ +h1 { font-family: Arial, Helvetica, sans-serif; font-size: 20pt; color: maroon } +h2 { font-family: Arial, Helvetica, sans-serif; font-size: 16pt; color: maroon } +h3 { font-family: Arial, Helvetica, sans-serif; font-size: 14pt; color: maroon } +h4 { font-family: Arial, Helvetica, sans-serif; font-size: 12pt; color: maroon } +body { font-family: "Times New Roman", Times, serif; background-color: white } +body.gray { font-family: "Times New Roman", Times, serif; background-color: #CCCCCC } +p { font-family: "Times New Roman", Times, serif; margin-top: 8; margin-bottom: 8 } +p.small { font-family: "Times New Roman", Times, serif; font-size: 10pt; margin-top: 8; margin-bottom: 8 } +ul { line-height: 100%; margin-top: 2; margin-bottom: 2 } +li { margin-top: 2; margin-bottom: 2; font-size: 10pt } +tt { font-family: "Courier New", Courier, monospaced; font-size: 10pt } +pre { font-family: "Courier New", Courier, monospaced; font-size: 10pt } +pre.small { font-family: "Courier New", Courier, monospaced; font-size: 8pt } +hr { color: maroon } +a:link { color: blue } +a:visited { color: green } +a:active { color: red } +table { font-size: 10pt } +.question { color: navy; } \ No newline at end of file diff --git a/3rdparty/newmat/sl_ex.cpp b/3rdparty/newmat/sl_ex.cpp new file mode 100644 index 0000000..c287100 --- /dev/null +++ b/3rdparty/newmat/sl_ex.cpp @@ -0,0 +1,33 @@ +// This is an example of the use of solution to find the cube root of +// the integers -10 to 10 + +// you will need to compile and link solution.cpp and except.cpp + +#define WANT_STREAM +#define WANT_MATH + +#include "include.h" +#include "solution.h" + +#ifdef use_namespace +using namespace RBD_LIBRARIES; +#endif + + +// the cube class + +class Cube : public R1_R1 +{ Real operator()() { return x*x*x; } }; + +int main() +{ + // construct the Cube object + Cube cube; + // and then the solve object + OneDimSolve cube_root(cube); + // Now do the solves + for (int i=-10; i<=10; i++) + cout << i << " " << cube_root.Solve(i,0,1.5) << endl; + return 0; +} + diff --git a/3rdparty/newmat/sl_ex.txt b/3rdparty/newmat/sl_ex.txt new file mode 100644 index 0000000..b578f10 --- /dev/null +++ b/3rdparty/newmat/sl_ex.txt @@ -0,0 +1,21 @@ +-10 -2.15443 +-9 -2.08008 +-8 -2 +-7 -1.91293 +-6 -1.81712 +-5 -1.70998 +-4 -1.5874 +-3 -1.44225 +-2 -1.25992 +-1 -1.00001 +0 0 +1 1.00001 +2 1.25992 +3 1.44225 +4 1.58741 +5 1.70998 +6 1.81712 +7 1.91293 +8 2 +9 2.08008 +10 2.15443 diff --git a/3rdparty/newmat/solution.cpp b/3rdparty/newmat/solution.cpp new file mode 100644 index 0000000..9ed0fbe --- /dev/null +++ b/3rdparty/newmat/solution.cpp @@ -0,0 +1,200 @@ +//$$ solution.cpp // solve routines + +// Copyright (C) 1994: R B Davies + + +#define WANT_STREAM // include.h will get stream fns +#define WANT_MATH // include.h will get math fns + +#include "include.h" +#include "boolean.h" +#include "myexcept.h" + +#include "solution.h" + +#ifdef use_namespace +namespace RBD_COMMON { +#endif + + +void R1_R1::Set(Real X) +{ + if ((!minXinf && X <= minX) || (!maxXinf && X >= maxX)) + Throw(SolutionException("X value out of range")); + x = X; xSet = true; +} + +R1_R1::operator Real() +{ + if (!xSet) Throw(SolutionException("Value of X not set")); + Real y = operator()(); + return y; +} + +unsigned long SolutionException::Select; + +SolutionException::SolutionException(const char* a_what) : BaseException() +{ + Select = BaseException::Select; + AddMessage("Error detected by solution package\n"); + AddMessage(a_what); AddMessage("\n"); + if (a_what) Tracer::AddTrace(); +}; + +inline Real square(Real x) { return x*x; } + +void OneDimSolve::LookAt(int V) +{ + lim--; + if (!lim) Throw(SolutionException("Does not converge")); + Last = V; + Real yy = function(x[V]) - YY; + Finish = (fabs(yy) <= accY) || (Captured && fabs(x[L]-x[U]) <= accX ); + y[V] = vpol*yy; +} + +void OneDimSolve::HFlip() { hpol=-hpol; State(U,C,L); } + +void OneDimSolve::VFlip() + { vpol = -vpol; y[0] = -y[0]; y[1] = -y[1]; y[2] = -y[2]; } + +void OneDimSolve::Flip() +{ + hpol=-hpol; vpol=-vpol; State(U,C,L); + y[0] = -y[0]; y[1] = -y[1]; y[2] = -y[2]; +} + +void OneDimSolve::State(int I, int J, int K) { L=I; C=J; U=K; } + +void OneDimSolve::Linear(int I, int J, int K) +{ + x[J] = (x[I]*y[K] - x[K]*y[I])/(y[K] - y[I]); + // cout << "Linear\n"; +} + +void OneDimSolve::Quadratic(int I, int J, int K) +{ + // result to overwrite I + Real YJK, YIK, YIJ, XKI, XKJ; + YJK = y[J] - y[K]; YIK = y[I] - y[K]; YIJ = y[I] - y[J]; + XKI = (x[K] - x[I]); + XKJ = (x[K]*y[J] - x[J]*y[K])/YJK; + if ( square(YJK/YIK)>(x[K] - x[J])/XKI || + square(YIJ/YIK)>(x[J] - x[I])/XKI ) + { + x[I] = XKJ; + // cout << "Quadratic - exceptional\n"; + } + else + { + XKI = (x[K]*y[I] - x[I]*y[K])/YIK; + x[I] = (XKJ*y[I] - XKI*y[J])/YIJ; + // cout << "Quadratic - normal\n"; + } +} + +Real OneDimSolve::Solve(Real Y, Real X, Real Dev, int Lim) +{ + enum Loop { start, captured1, captured2, binary, finish }; + Tracer et("OneDimSolve::Solve"); + lim=Lim; Captured = false; + if (Dev==0.0) Throw(SolutionException("Dev is zero")); + L=0; C=1; U=2; vpol=1; hpol=1; y[C]=0.0; y[U]=0.0; + if (Dev<0.0) { hpol=-1; Dev = -Dev; } + YY=Y; // target value + x[L] = X; // initial trial value + if (!function.IsValid(X)) + Throw(SolutionException("Starting value is invalid")); + Loop TheLoop = start; + for (;;) + { + switch (TheLoop) + { + case start: + LookAt(L); if (Finish) { TheLoop = finish; break; } + if (y[L]>0.0) VFlip(); // so Y[L] < 0 + + x[U] = X + Dev * hpol; + if (!function.maxXinf && x[U] > function.maxX) + x[U] = (function.maxX + X) / 2.0; + if (!function.minXinf && x[U] < function.minX) + x[U] = (function.minX + X) / 2.0; + + LookAt(U); if (Finish) { TheLoop = finish; break; } + if (y[U] > 0.0) { TheLoop = captured1; Captured = true; break; } + if (y[U] == y[L]) + Throw(SolutionException("Function is flat")); + if (y[U] < y[L]) HFlip(); // Change direction + State(L,U,C); + for (i=0; i<20; i++) + { + // cout << "Searching for crossing point\n"; + // Have L C then crossing point, Y[L] function.maxX) + x[U] = (function.maxX + x[C]) / 2.0; + if (!function.minXinf && x[U] < function.minX) + x[U] = (function.minX + x[C]) / 2.0; + + LookAt(U); if (Finish) { TheLoop = finish; break; } + if (y[U] > 0) { TheLoop = captured2; Captured = true; break; } + if (y[U] < y[C]) + Throw(SolutionException("Function is not monotone")); + Dev *= 2.0; + State(C,U,L); + } + if (TheLoop != start ) break; + Throw(SolutionException("Cannot locate a crossing point")); + + case captured1: + // cout << "Captured - 1\n"; + // We have 2 points L and U with crossing between them + Linear(L,C,U); // linear interpolation + // - result to C + LookAt(C); if (Finish) { TheLoop = finish; break; } + if (y[C] > 0.0) Flip(); // Want y[C] < 0 + if (y[C] < 0.5*y[L]) { State(C,L,U); TheLoop = binary; break; } + + case captured2: + // cout << "Captured - 2\n"; + // We have L,C before crossing, U after crossing + Quadratic(L,C,U); // quad interpolation + // - result to L + State(C,L,U); + if ((x[C] - x[L])*hpol <= 0.0 || (x[C] - x[U])*hpol >= 0.0) + { TheLoop = captured1; break; } + LookAt(C); if (Finish) { TheLoop = finish; break; } + // cout << "Through first stage\n"; + if (y[C] > 0.0) Flip(); + if (y[C] > 0.5*y[L]) { TheLoop = captured2; break; } + else { State(C,L,U); TheLoop = captured1; break; } + + case binary: + // We have L, U around crossing - do binary search + // cout << "Binary\n"; + for (i=3; i; i--) + { + x[C] = 0.5*(x[L]+x[U]); + LookAt(C); if (Finish) { TheLoop = finish; break; } + if (y[C]>0.0) State(L,U,C); else State(C,L,U); + } + if (TheLoop != binary) break; + TheLoop = captured1; break; + + case finish: + return x[Last]; + + } + } +} + +bool R1_R1::IsValid(Real X) +{ + Set(X); + return (minXinf || x > minX) && (maxXinf || x < maxX); +} + +#ifdef use_namespace +} +#endif + diff --git a/3rdparty/newmat/solution.h b/3rdparty/newmat/solution.h new file mode 100644 index 0000000..1019c14 --- /dev/null +++ b/3rdparty/newmat/solution.h @@ -0,0 +1,95 @@ +//$$ solution.h // solve routines + +#include "boolean.h" +#include "myexcept.h" + +#ifdef use_namespace +namespace RBD_COMMON { +#endif + + +// Solve the equation f(x)=y for x where f is a monotone continuous +// function of x +// Essentially Brent s method + +// You need to derive a class from R1_R1 and override "operator()" +// with the function you want to solve. +// Use an object from this class in OneDimSolve + +class R1_R1 +{ + // the prototype for a Real function of a Real variable + // you need to derive your function from this one and put in your + // function for operator() at least. You probably also want to set up a + // constructor to put in additional parameter values (e.g. that will not + // vary during a solve) + +protected: + Real x; // Current x value + bool xSet; // true if a value assigned to x + +public: + Real minX, maxX; // range of value x + bool minXinf, maxXinf; // true if these are infinite + R1_R1() : xSet(false), minXinf(true), maxXinf(true) {} + virtual Real operator()() = 0; // function value at current x + // set current x + virtual void Set(Real X); // set x, check OK + Real operator()(Real X) { Set(X); return operator()(); } + // set x, return value + virtual bool IsValid(Real X); + operator Real(); // implicit conversion + virtual ~R1_R1() {} // to keep gnu happy +}; + +class SolutionException : public BaseException +{ +public: + static unsigned long Select; + SolutionException(const char* a_what = 0); +}; + +class OneDimSolve +{ + R1_R1& function; // reference to the function + Real accX; // accuracy in X direction + Real accY; // accuracy in Y direction + int lim; // maximum number of iterations + +public: + OneDimSolve(R1_R1& f, Real AccY = 0.0001, Real AccX = 0.0) + : function(f), accX(AccX), accY(AccY) {} + // f is an R1_R1 function + Real Solve(Real Y, Real X, Real Dev, int Lim=100); + // Solve for x in Y=f(x) + // X is the initial trial value of x + // X+Dev is the second trial value + // program returns a value of x such that + // |Y-f(x)| <= accY or |f.inv(Y)-x| <= accX + +private: + Real x[3], y[3]; // Trial values of X and Y + int L,C,U,Last; // Locations of trial values + int vpol, hpol; // polarities + Real YY; // target value + int i; + void LookAt(int); // get new value of function + bool Finish; // true if LookAt finds conv. + bool Captured; // true when target surrounded + void VFlip(); + void HFlip(); + void Flip(); + void State(int I, int J, int K); + void Linear(int, int, int); + void Quadratic(int, int, int); +}; + + +#ifdef use_namespace +} +#endif + +// body file: solution.cpp + + + diff --git a/3rdparty/newmat/sort.cpp b/3rdparty/newmat/sort.cpp new file mode 100644 index 0000000..9aacf31 --- /dev/null +++ b/3rdparty/newmat/sort.cpp @@ -0,0 +1,272 @@ +//$$ sort.cpp Sorting + +// Copyright (C) 1991,2,3,4: R B Davies + +#define WANT_MATH + +#include "include.h" + +#include "newmatap.h" + +#ifdef use_namespace +namespace NEWMAT { +#endif + +#ifdef DO_REPORT +#define REPORT { static ExeCounter ExeCount(__LINE__,13); ++ExeCount; } +#else +#define REPORT {} +#endif + +/******************************** Quick sort ********************************/ + +// Quicksort. +// Essentially the method described in Sedgewick s algorithms in C++ +// My version is still partially recursive, unlike Segewick s, but the +// smallest segment of each split is used in the recursion, so it should +// not overlead the stack. + +// If the process does not seems to be converging an exception is thrown. + + +#define DoSimpleSort 17 // when to switch to insert sort +#define MaxDepth 50 // maximum recursion depth + +static void MyQuickSortDescending(Real* first, Real* last, int depth); +static void InsertionSortDescending(Real* first, const int length, + int guard); +static Real SortThreeDescending(Real* a, Real* b, Real* c); + +static void MyQuickSortAscending(Real* first, Real* last, int depth); +static void InsertionSortAscending(Real* first, const int length, + int guard); + + +void SortDescending(GeneralMatrix& GM) +{ + REPORT + Tracer et("QuickSortDescending"); + + Real* data = GM.Store(); int max = GM.Storage(); + + if (max > DoSimpleSort) MyQuickSortDescending(data, data + max - 1, 0); + InsertionSortDescending(data, max, DoSimpleSort); + +} + +static Real SortThreeDescending(Real* a, Real* b, Real* c) +{ + // sort *a, *b, *c; return *b; optimise for already sorted + if (*a >= *b) + { + if (*b >= *c) { REPORT return *b; } + else if (*a >= *c) { REPORT Real x = *c; *c = *b; *b = x; return x; } + else { REPORT Real x = *a; *a = *c; *c = *b; *b = x; return x; } + } + else if (*c >= *b) { REPORT Real x = *c; *c = *a; *a = x; return *b; } + else if (*a >= *c) { REPORT Real x = *a; *a = *b; *b = x; return x; } + else { REPORT Real x = *c; *c = *a; *a = *b; *b = x; return x; } +} + +static void InsertionSortDescending(Real* first, const int length, + int guard) +// guard gives the length of the sequence to scan to find first +// element (eg = length) +{ + REPORT + if (length <= 1) return; + + // scan for first element + Real* f = first; Real v = *f; Real* h = f; + if (guard > length) { REPORT guard = length; } + int i = guard - 1; + while (i--) if (v < *(++f)) { v = *f; h = f; } + *h = *first; *first = v; + + // do the sort + i = length - 1; f = first; + while (i--) + { + Real* g = f++; h = f; v = *h; + while (*g < v) *h-- = *g--; + *h = v; + } +} + +static void MyQuickSortDescending(Real* first, Real* last, int depth) +{ + REPORT + for (;;) + { + const int length = last - first + 1; + if (length < DoSimpleSort) { REPORT return; } + if (depth++ > MaxDepth) + Throw(ConvergenceException("QuickSortDescending fails: ")); + Real* centre = first + length/2; + const Real test = SortThreeDescending(first, centre, last); + Real* f = first; Real* l = last; + for (;;) + { + while (*(++f) > test) {} + while (*(--l) < test) {} + if (l <= f) break; + const Real temp = *f; *f = *l; *l = temp; + } + if (f > centre) + { REPORT MyQuickSortDescending(l+1, last, depth); last = f-1; } + else { REPORT MyQuickSortDescending(first, f-1, depth); first = l+1; } + } +} + +void SortAscending(GeneralMatrix& GM) +{ + REPORT + Tracer et("QuickSortAscending"); + + Real* data = GM.Store(); int max = GM.Storage(); + + if (max > DoSimpleSort) MyQuickSortAscending(data, data + max - 1, 0); + InsertionSortAscending(data, max, DoSimpleSort); + +} + +static void InsertionSortAscending(Real* first, const int length, + int guard) +// guard gives the length of the sequence to scan to find first +// element (eg guard = length) +{ + REPORT + if (length <= 1) return; + + // scan for first element + Real* f = first; Real v = *f; Real* h = f; + if (guard > length) { REPORT guard = length; } + int i = guard - 1; + while (i--) if (v > *(++f)) { v = *f; h = f; } + *h = *first; *first = v; + + // do the sort + i = length - 1; f = first; + while (i--) + { + Real* g = f++; h = f; v = *h; + while (*g > v) *h-- = *g--; + *h = v; + } +} +static void MyQuickSortAscending(Real* first, Real* last, int depth) +{ + REPORT + for (;;) + { + const int length = last - first + 1; + if (length < DoSimpleSort) { REPORT return; } + if (depth++ > MaxDepth) + Throw(ConvergenceException("QuickSortAscending fails: ")); + Real* centre = first + length/2; + const Real test = SortThreeDescending(last, centre, first); + Real* f = first; Real* l = last; + for (;;) + { + while (*(++f) < test) {} + while (*(--l) > test) {} + if (l <= f) break; + const Real temp = *f; *f = *l; *l = temp; + } + if (f > centre) + { REPORT MyQuickSortAscending(l+1, last, depth); last = f-1; } + else { REPORT MyQuickSortAscending(first, f-1, depth); first = l+1; } + } +} + +//********* sort diagonal matrix & rearrange matrix columns **************** + +// used by SVD + +// these are for sorting singular values - should be updated with faster +// sorts that handle exchange of columns better +// however time is probably not significant compared with SVD time + +void SortSV(DiagonalMatrix& D, Matrix& U, bool ascending) +{ + REPORT + Tracer trace("SortSV_DU"); + int m = U.Nrows(); int n = U.Ncols(); + if (n != D.Nrows()) Throw(IncompatibleDimensionsException(D,U)); + Real* u = U.Store(); + for (int i=0; i p) { k = j; p = D.element(j); } } + } + if (k != i) + { + D.element(k) = D.element(i); D.element(i) = p; int j = m; + Real* uji = u + i; Real* ujk = u + k; + if (j) for(;;) + { + p = *uji; *uji = *ujk; *ujk = p; + if (!(--j)) break; + uji += n; ujk += n; + } + } + } +} + +void SortSV(DiagonalMatrix& D, Matrix& U, Matrix& V, bool ascending) +{ + REPORT + Tracer trace("SortSV_DUV"); + int mu = U.Nrows(); int mv = V.Nrows(); int n = D.Nrows(); + if (n != U.Ncols()) Throw(IncompatibleDimensionsException(D,U)); + if (n != V.Ncols()) Throw(IncompatibleDimensionsException(D,V)); + Real* u = U.Store(); Real* v = V.Store(); + for (int i=0; i p) { k = j; p = D.element(j); } } + } + if (k != i) + { + D.element(k) = D.element(i); D.element(i) = p; + Real* uji = u + i; Real* ujk = u + k; + Real* vji = v + i; Real* vjk = v + k; + int j = mu; + if (j) for(;;) + { + p = *uji; *uji = *ujk; *ujk = p; if (!(--j)) break; + uji += n; ujk += n; + } + j = mv; + if (j) for(;;) + { + p = *vji; *vji = *vjk; *vjk = p; if (!(--j)) break; + vji += n; vjk += n; + } + } + } +} + + + + +#ifdef use_namespace +} +#endif + diff --git a/3rdparty/newmat/submat.cpp b/3rdparty/newmat/submat.cpp new file mode 100644 index 0000000..ce0a47e --- /dev/null +++ b/3rdparty/newmat/submat.cpp @@ -0,0 +1,429 @@ +//$$ submat.cpp submatrices + +// Copyright (C) 1991,2,3,4: R B Davies + +#include "include.h" + +#include "newmat.h" +#include "newmatrc.h" + +#ifdef use_namespace +namespace NEWMAT { +#endif + +#ifdef DO_REPORT +#define REPORT { static ExeCounter ExeCount(__LINE__,11); ++ExeCount; } +#else +#define REPORT {} +#endif + + +/****************************** submatrices *********************************/ + +#ifdef TEMPS_DESTROYED_QUICKLY +GetSubMatrix& BaseMatrix::SubMatrix(int first_row, int last_row, int first_col, + int last_col) const +#else +GetSubMatrix BaseMatrix::SubMatrix(int first_row, int last_row, int first_col, + int last_col) const +#endif +{ + REPORT + Tracer tr("SubMatrix"); + int a = first_row - 1; int b = last_row - first_row + 1; + int c = first_col - 1; int d = last_col - first_col + 1; + if (a<0 || b<0 || c<0 || d<0) Throw(SubMatrixDimensionException()); + // allow zero rows or columns +#ifdef TEMPS_DESTROYED_QUICKLY + GetSubMatrix* x = new GetSubMatrix(this, a, b, c, d, false); + MatrixErrorNoSpace(x); + return *x; +#else + return GetSubMatrix(this, a, b, c, d, false); +#endif +} + +#ifdef TEMPS_DESTROYED_QUICKLY +GetSubMatrix& BaseMatrix::SymSubMatrix(int first_row, int last_row) const +#else +GetSubMatrix BaseMatrix::SymSubMatrix(int first_row, int last_row) const +#endif +{ + REPORT + Tracer tr("SubMatrix(symmetric)"); + int a = first_row - 1; int b = last_row - first_row + 1; + if (a<0 || b<0) Throw(SubMatrixDimensionException()); + // allow zero rows or columns +#ifdef TEMPS_DESTROYED_QUICKLY + GetSubMatrix* x = new GetSubMatrix(this, a, b, a, b, true); + MatrixErrorNoSpace(x); + return *x; +#else + return GetSubMatrix( this, a, b, a, b, true); +#endif +} + +#ifdef TEMPS_DESTROYED_QUICKLY +GetSubMatrix& BaseMatrix::Row(int first_row) const +#else +GetSubMatrix BaseMatrix::Row(int first_row) const +#endif +{ + REPORT + Tracer tr("SubMatrix(row)"); + int a = first_row - 1; + if (a<0) Throw(SubMatrixDimensionException()); +#ifdef TEMPS_DESTROYED_QUICKLY + GetSubMatrix* x = new GetSubMatrix(this, a, 1, 0, -1, false); + MatrixErrorNoSpace(x); + return *x; +#else + return GetSubMatrix(this, a, 1, 0, -1, false); +#endif +} + +#ifdef TEMPS_DESTROYED_QUICKLY +GetSubMatrix& BaseMatrix::Rows(int first_row, int last_row) const +#else +GetSubMatrix BaseMatrix::Rows(int first_row, int last_row) const +#endif +{ + REPORT + Tracer tr("SubMatrix(rows)"); + int a = first_row - 1; int b = last_row - first_row + 1; + if (a<0 || b<0) Throw(SubMatrixDimensionException()); + // allow zero rows or columns +#ifdef TEMPS_DESTROYED_QUICKLY + GetSubMatrix* x = new GetSubMatrix(this, a, b, 0, -1, false); + MatrixErrorNoSpace(x); + return *x; +#else + return GetSubMatrix(this, a, b, 0, -1, false); +#endif +} + +#ifdef TEMPS_DESTROYED_QUICKLY +GetSubMatrix& BaseMatrix::Column(int first_col) const +#else +GetSubMatrix BaseMatrix::Column(int first_col) const +#endif +{ + REPORT + Tracer tr("SubMatrix(column)"); + int c = first_col - 1; + if (c<0) Throw(SubMatrixDimensionException()); +#ifdef TEMPS_DESTROYED_QUICKLY + GetSubMatrix* x = new GetSubMatrix(this, 0, -1, c, 1, false); + MatrixErrorNoSpace(x); + return *x; +#else + return GetSubMatrix(this, 0, -1, c, 1, false); +#endif +} + +#ifdef TEMPS_DESTROYED_QUICKLY +GetSubMatrix& BaseMatrix::Columns(int first_col, int last_col) const +#else +GetSubMatrix BaseMatrix::Columns(int first_col, int last_col) const +#endif +{ + REPORT + Tracer tr("SubMatrix(columns)"); + int c = first_col - 1; int d = last_col - first_col + 1; + if (c<0 || d<0) Throw(SubMatrixDimensionException()); + // allow zero rows or columns +#ifdef TEMPS_DESTROYED_QUICKLY + GetSubMatrix* x = new GetSubMatrix(this, 0, -1, c, d, false); + MatrixErrorNoSpace(x); + return *x; +#else + return GetSubMatrix(this, 0, -1, c, d, false); +#endif +} + +void GetSubMatrix::SetUpLHS() +{ + REPORT + Tracer tr("SubMatrix(LHS)"); + const BaseMatrix* bm1 = bm; + GeneralMatrix* gm1 = ((BaseMatrix*&)bm)->Evaluate(); + if ((BaseMatrix*)gm1!=bm1) + Throw(ProgramException("Invalid LHS")); + if (row_number < 0) row_number = gm1->Nrows(); + if (col_number < 0) col_number = gm1->Ncols(); + if (row_skip+row_number > gm1->Nrows() + || col_skip+col_number > gm1->Ncols()) + Throw(SubMatrixDimensionException()); +} + +void GetSubMatrix::operator<<(const BaseMatrix& bmx) +{ + REPORT + Tracer tr("SubMatrix(<<)"); GeneralMatrix* gmx = 0; + Try + { + SetUpLHS(); gmx = ((BaseMatrix&)bmx).Evaluate(); + if (row_number != gmx->Nrows() || col_number != gmx->Ncols()) + Throw(IncompatibleDimensionsException()); + MatrixRow mrx(gmx, LoadOnEntry); + MatrixRow mr(gm, LoadOnEntry+StoreOnExit+DirectPart, row_skip); + // do need LoadOnEntry + MatrixRowCol sub; int i = row_number; + while (i--) + { + mr.SubRowCol(sub, col_skip, col_number); // put values in sub + sub.Copy(mrx); mr.Next(); mrx.Next(); + } + gmx->tDelete(); +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + } + + CatchAll + { + if (gmx) gmx->tDelete(); +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + ReThrow; + } +} + +void GetSubMatrix::operator=(const BaseMatrix& bmx) +{ + REPORT + Tracer tr("SubMatrix(=)"); GeneralMatrix* gmx = 0; + // MatrixConversionCheck mcc; // Check for loss of info + Try + { + SetUpLHS(); gmx = ((BaseMatrix&)bmx).Evaluate(); + if (row_number != gmx->Nrows() || col_number != gmx->Ncols()) + Throw(IncompatibleDimensionsException()); + LoadAndStoreFlag lasf = + ( row_skip == col_skip + && gm->Type().IsSymmetric() + && gmx->Type().IsSymmetric() ) + ? LoadOnEntry+DirectPart + : LoadOnEntry; + MatrixRow mrx(gmx, lasf); + MatrixRow mr(gm, LoadOnEntry+StoreOnExit+DirectPart, row_skip); + // do need LoadOnEntry + MatrixRowCol sub; int i = row_number; + while (i--) + { + mr.SubRowCol(sub, col_skip, col_number); // put values in sub + sub.CopyCheck(mrx); mr.Next(); mrx.Next(); + } + gmx->tDelete(); +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + } + + CatchAll + { + if (gmx) gmx->tDelete(); +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + ReThrow; + } +} + +void GetSubMatrix::operator<<(const Real* r) +{ + REPORT + Tracer tr("SubMatrix(< gm->Nrows() || col_skip+col_number > gm->Ncols()) + Throw(SubMatrixDimensionException()); + MatrixRow mr(gm, LoadOnEntry+StoreOnExit+DirectPart, row_skip); + // do need LoadOnEntry + MatrixRowCol sub; int i = row_number; + while (i--) + { + mr.SubRowCol(sub, col_skip, col_number); // put values in sub + sub.Copy(r); mr.Next(); + } +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif +} + +void GetSubMatrix::operator=(Real r) +{ + REPORT + Tracer tr("SubMatrix(=Real)"); + SetUpLHS(); + MatrixRow mr(gm, LoadOnEntry+StoreOnExit+DirectPart, row_skip); + // do need LoadOnEntry + MatrixRowCol sub; int i = row_number; + while (i--) + { + mr.SubRowCol(sub, col_skip, col_number); // put values in sub + sub.Copy(r); mr.Next(); + } +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif +} + +void GetSubMatrix::Inject(const GeneralMatrix& gmx) +{ + REPORT + Tracer tr("SubMatrix(inject)"); + SetUpLHS(); + if (row_number != gmx.Nrows() || col_number != gmx.Ncols()) + Throw(IncompatibleDimensionsException()); + MatrixRow mrx((GeneralMatrix*)(&gmx), LoadOnEntry); + MatrixRow mr(gm, LoadOnEntry+StoreOnExit+DirectPart, row_skip); + // do need LoadOnEntry + MatrixRowCol sub; int i = row_number; + while (i--) + { + mr.SubRowCol(sub, col_skip, col_number); // put values in sub + sub.Inject(mrx); mr.Next(); mrx.Next(); + } +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif +} + +void GetSubMatrix::operator+=(const BaseMatrix& bmx) +{ + REPORT + Tracer tr("SubMatrix(+=)"); GeneralMatrix* gmx = 0; + // MatrixConversionCheck mcc; // Check for loss of info + Try + { + SetUpLHS(); gmx = ((BaseMatrix&)bmx).Evaluate(); + if (row_number != gmx->Nrows() || col_number != gmx->Ncols()) + Throw(IncompatibleDimensionsException()); + MatrixRow mrx(gmx, LoadOnEntry); + MatrixRow mr(gm, LoadOnEntry+StoreOnExit+DirectPart, row_skip); + // do need LoadOnEntry + MatrixRowCol sub; int i = row_number; + while (i--) + { + mr.SubRowCol(sub, col_skip, col_number); // put values in sub + sub.Check(mrx); // check for loss of info + sub.Add(mrx); mr.Next(); mrx.Next(); + } + gmx->tDelete(); +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + } + + CatchAll + { + if (gmx) gmx->tDelete(); +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + ReThrow; + } +} + +void GetSubMatrix::operator-=(const BaseMatrix& bmx) +{ + REPORT + Tracer tr("SubMatrix(-=)"); GeneralMatrix* gmx = 0; + // MatrixConversionCheck mcc; // Check for loss of info + Try + { + SetUpLHS(); gmx = ((BaseMatrix&)bmx).Evaluate(); + if (row_number != gmx->Nrows() || col_number != gmx->Ncols()) + Throw(IncompatibleDimensionsException()); + MatrixRow mrx(gmx, LoadOnEntry); + MatrixRow mr(gm, LoadOnEntry+StoreOnExit+DirectPart, row_skip); + // do need LoadOnEntry + MatrixRowCol sub; int i = row_number; + while (i--) + { + mr.SubRowCol(sub, col_skip, col_number); // put values in sub + sub.Check(mrx); // check for loss of info + sub.Sub(mrx); mr.Next(); mrx.Next(); + } + gmx->tDelete(); +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + } + + CatchAll + { + if (gmx) gmx->tDelete(); +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + ReThrow; + } +} + +void GetSubMatrix::operator+=(Real r) +{ + REPORT + Tracer tr("SubMatrix(+= or -= Real)"); + // MatrixConversionCheck mcc; // Check for loss of info + Try + { + SetUpLHS(); + MatrixRow mr(gm, LoadOnEntry+StoreOnExit+DirectPart, row_skip); + // do need LoadOnEntry + MatrixRowCol sub; int i = row_number; + while (i--) + { + mr.SubRowCol(sub, col_skip, col_number); // put values in sub + sub.Check(); // check for loss of info + sub.Add(r); mr.Next(); + } +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + } + + CatchAll + { +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + ReThrow; + } +} + +void GetSubMatrix::operator*=(Real r) +{ + REPORT + Tracer tr("SubMatrix(*= or /= Real)"); + // MatrixConversionCheck mcc; // Check for loss of info + Try + { + SetUpLHS(); + MatrixRow mr(gm, LoadOnEntry+StoreOnExit+DirectPart, row_skip); + // do need LoadOnEntry + MatrixRowCol sub; int i = row_number; + while (i--) + { + mr.SubRowCol(sub, col_skip, col_number); // put values in sub + sub.Multiply(r); mr.Next(); + } +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + } + + CatchAll + { +#ifdef TEMPS_DESTROYED_QUICKLY + delete this; +#endif + ReThrow; + } +} + +#ifdef use_namespace +} +#endif + diff --git a/3rdparty/newmat/svd.cpp b/3rdparty/newmat/svd.cpp new file mode 100644 index 0000000..e3cf33c --- /dev/null +++ b/3rdparty/newmat/svd.cpp @@ -0,0 +1,227 @@ +//$$svd.cpp singular value decomposition + +// Copyright (C) 1991,2,3,4,5: R B Davies +// Updated 17 July, 1995 + +#define WANT_MATH + +#include "include.h" +#include "newmatap.h" +#include "newmatrm.h" +#include "precisio.h" + +#ifdef use_namespace +namespace NEWMAT { +#endif + +#ifdef DO_REPORT +#define REPORT { static ExeCounter ExeCount(__LINE__,15); ++ExeCount; } +#else +#define REPORT {} +#endif + + +static Real pythag(Real f, Real g, Real& c, Real& s) +// return z=sqrt(f*f+g*g), c=f/z, s=g/z +// set c=1,s=0 if z==0 +// avoid floating point overflow or divide by zero +{ + if (f==0 && g==0) { c=1.0; s=0.0; return 0.0; } + Real af = f>=0 ? f : -f; + Real ag = g>=0 ? g : -g; + if (ag= no. Cols", A)); + if (withV && &U == &V) + Throw(ProgramException("Need different matrices for U and V", U, V)); + U = A; Real g = 0.0; Real f,h; Real x = 0.0; int i; + RowVector E(n); RectMatrixRow EI(E,0); Q.ReSize(n); + RectMatrixCol UCI(U,0); RectMatrixRow URI(U,0,1,n-1); + + if (n) for (i=0;;) + { + EI.First() = g; Real ei = g; EI.Right(); Real s = UCI.SumSquare(); + if (s=0; i--) + { + VCI.Left(); + if (g!=0.0) + { + VCI.Divide(URI, URI.First()*g); int j = n-i; + RectMatrixCol VCJ = VCI; + while (--j) { VCJ.Right(); VCJ.AddScaled( VCI, (URI*VCJ) ); } + } + VCI.Zero(); VCI.Up(); VCI.First() = 1.0; g=E.element(i); + if (i==0) break; + URI.UpDiag(); + } + } + + if (withU) + { + REPORT + for (i=n-1; i>=0; i--) + { + g = Q.element(i); URI.Reset(U,i,i+1,n-i-1); URI.Zero(); + if (g!=0.0) + { + h=UCI.First()*g; int j=n-i; RectMatrixCol UCJ = UCI; + while (--j) + { + UCJ.Right(); UCI.Down(); UCJ.Down(); Real s = UCI*UCJ; + UCI.Up(); UCJ.Up(); UCJ.AddScaled(UCI,s/h); + } + UCI.Divide(g); + } + else UCI.Zero(); + UCI.First() += 1.0; + if (i==0) break; + UCI.UpDiag(); + } + } + + eps *= x; + for (int k=n-1; k>=0; k--) + { + Real z = -FloatingPointPrecision::Maximum(); // to keep Gnu happy + Real y; int limit = 50; int l = 0; + while (limit--) + { + Real c, s; int i; int l1=k; bool tfc=false; + for (l=k; l>=0; l--) + { +// if (fabs(E.element(l))<=eps) goto test_f_convergence; + if (fabs(E.element(l))<=eps) { REPORT tfc=true; break; } + if (fabs(Q.element(l-1))<=eps) { REPORT l1=l; break; } + REPORT + } + if (!tfc) + { + REPORT + l=l1; l1=l-1; s = -1.0; c = 0.0; + for (i=l; i<=k; i++) + { + f = - s * E.element(i); E.element(i) *= c; +// if (fabs(f)<=eps) goto test_f_convergence; + if (fabs(f)<=eps) { REPORT break; } + g = Q.element(i); h = pythag(g,f,c,s); Q.element(i) = h; + if (withU) + { + REPORT + RectMatrixCol UCI(U,i); RectMatrixCol UCJ(U,l1); + ComplexScale(UCJ, UCI, c, s); + } + } + } +// test_f_convergence: z = Q.element(k); if (l==k) goto convergence; + z = Q.element(k); if (l==k) { REPORT break; } + + x = Q.element(l); y = Q.element(k-1); + g = E.element(k-1); h = E.element(k); + f = ((y-z)*(y+z) + (g-h)*(g+h)) / (2*h*y); + if (f>1) { REPORT g = f * sqrt(1 + square(1/f)); } + else if (f<-1) { REPORT g = -f * sqrt(1 + square(1/f)); } + else { REPORT g = sqrt(f*f + 1); } + { REPORT f = ((x-z)*(x+z) + h*(y / ((f<0.0) ? f-g : f+g)-h)) / x; } + + c = 1.0; s = 1.0; + for (i=l+1; i<=k; i++) + { + g = E.element(i); y = Q.element(i); h = s*g; g *= c; + z = pythag(f,h,c,s); E.element(i-1) = z; + f = x*c + g*s; g = -x*s + g*c; h = y*s; y *= c; + if (withV) + { + REPORT + RectMatrixCol VCI(V,i); RectMatrixCol VCJ(V,i-1); + ComplexScale(VCI, VCJ, c, s); + } + z = pythag(f,h,c,s); Q.element(i-1) = z; + f = c*g + s*y; x = -s*g + c*y; + if (withU) + { + REPORT + RectMatrixCol UCI(U,i); RectMatrixCol UCJ(U,i-1); + ComplexScale(UCI, UCJ, c, s); + } + } + E.element(l) = 0.0; E.element(k) = f; Q.element(k) = x; + } + if (l!=k) { Throw(ConvergenceException(A)); } +// convergence: + if (z < 0.0) + { + REPORT + Q.element(k) = -z; + if (withV) { RectMatrixCol VCI(V,k); VCI.Negate(); } + } + } + if (withU & withV) SortSV(Q, U, V); + else if (withU) SortSV(Q, U); + else if (withV) SortSV(Q, V); + else SortDescending(Q); +} + +void SVD(const Matrix& A, DiagonalMatrix& D) +{ REPORT Matrix U; SVD(A, D, U, U, false, false); } + + + +#ifdef use_namespace +} +#endif + diff --git a/3rdparty/newmat/test_exc.cpp b/3rdparty/newmat/test_exc.cpp new file mode 100644 index 0000000..367b05b --- /dev/null +++ b/3rdparty/newmat/test_exc.cpp @@ -0,0 +1,186 @@ +#define WANT_STREAM + +#include "newmatap.h" +#include "newmatio.h" // to help namespace with VC++ 5 + +#ifdef use_namespace +using namespace RBD_LIBRARIES; +#endif + +//#include // if you want to use set_terminate + +/**************************** test exceptions ******************************/ + + +int main() +{ + // activate the next expression if you want to use compiler supported + // exceptions and you want Terminate to catch uncaught exceptions + // set_terminate(Terminate); + Real* s1; Real* s2; Real* s3; Real* s4; + // Forces cout to allocate memory at beginning + cout << "\nThis tests the exception system, so you will get\n" << + "a long list of error messages\n\n"; + cout << "\nPrint a real number (may help lost memory test): " << 3.14159265 << "\n"; + // Throw exception to set up exception buffer + Try { Throw(BaseException("Just a dummy\n")); } + CatchAll {}; + { Matrix A1(40,200); s1 = A1.Store(); } + { Matrix A1(1,1); s3 = A1.Store(); } + { + Tracer et("Test"); + + Try + { + Tracer et("Try block"); + + + + cout << "-----------------------------------------\n\n"; + Matrix A(2,3), B(4,5); A = 1; B = 2; + cout << "Incompatible dimensions\n"; + et.ReName("Block A"); + Try { Matrix C = A + B; } + CatchAll { cout << BaseException::what() << endl; } + cout << "-----------------------------------------\n\n"; + + cout << "Bad index\n"; + et.ReName("Block B"); + Try { Real f = A(3,3); cout << f << endl; } + CatchAll { cout << BaseException::what() << endl; } + cout << "-----------------------------------------\n\n"; + + cout << "Illegal conversion\n"; + et.ReName("Block C"); + Try { UpperTriangularMatrix U = A; } + CatchAll { cout << BaseException::what() << endl; } + cout << "-----------------------------------------\n\n"; + + cout << "Invert non-square matrix - 1\n"; + et.ReName("Block D"); + Try { CroutMatrix X = A; } + CatchAll { cout << BaseException::what() << endl; } + cout << "-----------------------------------------\n\n"; + + cout << "Invert non-square matrix - 2\n"; + et.ReName("Block E"); + Try { Matrix X = A.i(); } + CatchAll { cout << BaseException::what() << endl; } + cout << "-----------------------------------------\n\n"; + + cout << "Non 1x1 matrix to scalar\n"; + et.ReName("Block F"); + Try { Real f = A.AsScalar(); cout << f << endl; } + CatchAll { cout << BaseException::what() << endl; } + cout << "-----------------------------------------\n\n"; + + cout << "Matrix to vector\n"; + et.ReName("Block G"); + Try { ColumnVector CV = A;} + CatchAll { cout << BaseException::what() << endl; } + cout << "-----------------------------------------\n\n"; + + cout << "Invert singular matrix\n"; + et.ReName("Block H"); + Try { Matrix X(2,2); X<<1<<2<<2<<4; X = X.i(); } + CatchAll { cout << BaseException::what() << endl; } + cout << "-----------------------------------------\n\n"; + + cout << "SubMatrix error\n"; + et.ReName("Block I"); + Try { Matrix X = A.Row(3); } + CatchAll { cout << BaseException::what() << endl; } + cout << "-----------------------------------------\n\n"; + + cout << "SubMatrix error\n"; + et.ReName("Block J"); + Try { Matrix X = A.Row(0); } + CatchAll { cout << BaseException::what() << endl; } + cout << "-----------------------------------------\n\n"; + + cout << "Cholesky error\n"; + et.ReName("Block K"); + Try + { + SymmetricMatrix SM(50); SM = 10; + LowerTriangularMatrix L = Cholesky(SM); + } + CatchAll { cout << BaseException::what() << endl; } + cout << "-----------------------------------------\n\n"; + + cout << "Inequality error\n"; + et.ReName("Block L"); + Try + { + Matrix A(10,10), B(10,10); A = 10; B = 20; + if ( A < B) A = B; + } + CatchAll { cout << BaseException::what() << endl; } + cout << "-----------------------------------------\n\n"; + + cout << "Maximum of empty matrix\n"; + et.ReName("Block M"); + Try + { + Matrix A(10,20); A = 5; Matrix B=A.Rows(6,5); + MaximumAbsoluteValue(B); + } + CatchAll { cout << BaseException::what() << endl; } + cout << "-----------------------------------------\n\n"; + + cout << "Incorrectly ReSizing band matrix\n"; + et.ReName("Block N"); + Try + { + BandMatrix A(20,5,3); A = 5; UpperBandMatrix B; + B.ReSize(A); + } + CatchAll { cout << BaseException::what() << endl; } + cout << "-----------------------------------------\n\n"; + + cout << "Incorrectly ReSizing symmetric band matrix\n"; + et.ReName("Block M"); + Try + { + BandMatrix A(20,5,3); A = 5; SymmetricBandMatrix B; + B.ReSize(A); + } + CatchAll { cout << BaseException::what() << endl; } + cout << "-----------------------------------------\n\n"; + + cout << "ReSize CroutMatrix\n"; + et.ReName("Block O"); + Try + { + Matrix A(3,3); A = 0; A(1,1) = A(2,2) = A(3,3) = 1; + CroutMatrix B = A;; + B.ReSize(A); + } + CatchAll { cout << BaseException::what() << endl; } + cout << "-----------------------------------------\n\n"; + + } + CatchAll { cout << "\nException generated in test program\n\n"; } + } + + cout << "\nEnd test\n"; + { Matrix A1(40,200); s2 = A1.Store(); } + cout << "\n(The following memory checks are probably not valid with all\n"; + cout << "compilers - see documentation)\n"; + cout << "\nChecking for lost memory: " + << (unsigned long)s1 << " " << (unsigned long)s2 << " "; + if (s1 != s2) cout << " - error\n"; else cout << " - ok\n"; + { Matrix A1(1,1); s4 = A1.Store(); } + cout << "\nChecking for lost memory: " + << (unsigned long)s3 << " " << (unsigned long)s4 << " "; + if (s3 != s4) cout << " - error\n\n"; else cout << " - ok\n\n"; + + +#ifdef DO_FREE_CHECK + FreeCheck::Status(); +#endif + +// Throw(Runtime_error("Exception outside try block")); + + return 0; +} diff --git a/3rdparty/newmat/test_exc.txt b/3rdparty/newmat/test_exc.txt new file mode 100644 index 0000000..edbd62a --- /dev/null +++ b/3rdparty/newmat/test_exc.txt @@ -0,0 +1,188 @@ + +This tests the exception system, so you will get +a long list of error messages + + +Print a real number (may help lost memory test): 3.14159 +----------------------------------------- + +Incompatible dimensions + + +An exception has been thrown +Logic error:- detected by Newmat: incompatible dimensions + +MatrixType = Rect # Rows = 2; # Cols = 3 +MatrixType = Rect # Rows = 4; # Cols = 5 +Trace: AddedMatrix::Evaluate; Block A; Test. + +----------------------------------------- + +Bad index + + +An exception has been thrown +Logic error:- detected by Newmat: index error: requested indices = 3, 3 + +MatrixType = Rect # Rows = 2; # Cols = 3 +Trace: Block B; Test. + +----------------------------------------- + +Illegal conversion + + +An exception has been thrown +Logic error:- detected by Newmat: Illegal Conversion +MatrixTypes = Rect ; UT + +Trace: Block C; Test. + +----------------------------------------- + +Invert non-square matrix - 1 + + +An exception has been thrown +Logic error:- detected by Newmat: matrix is not square + +MatrixType = Rect # Rows = 2; # Cols = 3 +Trace: CroutMatrix; Block D; Test. + +----------------------------------------- + +Invert non-square matrix - 2 + + +An exception has been thrown +Logic error:- detected by Newmat: matrix is not square + +MatrixType = Rect # Rows = 2; # Cols = 3 +Trace: GeneralSolvI; InvertedMatrix::Evaluate; Block E; Test. + +----------------------------------------- + +Non 1x1 matrix to scalar + + +An exception has been thrown +Logic error:- detected by Newmat: Cannot convert to scalar + +MatrixType = Rect # Rows = 2; # Cols = 3 +Trace: AsScalar; Block F; Test. + +----------------------------------------- + +Matrix to vector + + +An exception has been thrown +Logic error:- detected by Newmat: cannot convert matrix to vector + +MatrixType = Rect # Rows = 2; # Cols = 3 +Trace: ColumnVector; Block G; Test. + +----------------------------------------- + +Invert singular matrix + + +An exception has been thrown +Runtime error:- detected by Newmat: matrix is singular + +MatrixType = Crout # Rows = 2; # Cols = 2 +Trace: Crout(lubksb); GeneralSolvI; InvertedMatrix::Evaluate; Block H; Test. + +----------------------------------------- + +SubMatrix error + + +An exception has been thrown +Logic error:- detected by Newmat: incompatible submatrix dimension + +Trace: SubMatrix(evaluate); Block I; Test. + +----------------------------------------- + +SubMatrix error + + +An exception has been thrown +Logic error:- detected by Newmat: incompatible submatrix dimension + +Trace: SubMatrix(row); Block J; Test. + +----------------------------------------- + +Cholesky error + + +An exception has been thrown +Runtime error:- detected by Newmat: matrix not positive definite + +MatrixType = Sym # Rows = 50; # Cols = 50 +Trace: Cholesky; Block K; Test. + +----------------------------------------- + +Inequality error + + +An exception has been thrown +Logic error:- detected by Newmat: inequalities not defined for matrices + +Trace: Block L; Test. + +----------------------------------------- + +Maximum of empty matrix + + +An exception has been thrown +Logic error:- detected by Newmat: Maximum or minimum of null matrix + +Trace: Block M; Test. + +----------------------------------------- + +Incorrectly ReSizing band matrix + + +An exception has been thrown +Logic error:- detected by Newmat: UpperBandMatrix with non-zero lower band + +Trace: UpperBandMatrix::ReSize; Block N; Test. + +----------------------------------------- + +Incorrectly ReSizing symmetric band matrix + + +An exception has been thrown +Logic error:- detected by Newmat: Upper and lower band-widths not equal + +Trace: SymmetricBandMatrix::ReSize(GM); Block M; Test. + +----------------------------------------- + +ReSize CroutMatrix + + +An exception has been thrown +Logic error:- detected by Newmat: ReSize not defined for this type of matrix + +Trace: GeneralMatrix::ReSize(GM); Block O; Test. + +----------------------------------------- + + +End test + +(The following memory checks are probably not valid with all +compilers - see documentation) + +Checking for lost memory: 8142064 8142064 - ok + +Checking for lost memory: 8142064 8142064 - ok + diff --git a/3rdparty/newmat/tmt.cpp b/3rdparty/newmat/tmt.cpp new file mode 100644 index 0000000..12617bb --- /dev/null +++ b/3rdparty/newmat/tmt.cpp @@ -0,0 +1,431 @@ +#define WANT_STREAM + +#include "include.h" + +#include "newmat.h" + +#include "tmt.h" + +#ifdef use_namespace +//using namespace NEWMAT; +namespace NEWMAT { +#endif + + +/**************************** test program ******************************/ + + +class PrintCounter +{ + int count; + const char* s; +public: + ~PrintCounter(); + PrintCounter(const char * sx) : count(0), s(sx) {} + void operator++() { count++; } +}; + +PrintCounter PCZ("Number of non-zero matrices (should be 1) = "); +PrintCounter PCN("Number of matrices tested = "); + +PrintCounter::~PrintCounter() +{ cout << s << count << "\n"; } + + +void Print(const Matrix& X) +{ + ++PCN; + cout << "\nMatrix type: " << X.Type().Value() << " ("; + cout << X.Nrows() << ", "; + cout << X.Ncols() << ")\n\n"; + if (X.IsZero()) { cout << "All elements are zero\n" << flush; return; } + int nr=X.Nrows(); int nc=X.Ncols(); + for (int i=1; i<=nr; i++) + { + for (int j=1; j<=nc; j++) cout << X(i,j) << "\t"; + cout << "\n"; + } + cout << flush; ++PCZ; +} + +void Print(const UpperTriangularMatrix& X) +{ + ++PCN; + cout << "\nMatrix type: " << X.Type().Value() << " ("; + cout << X.Nrows() << ", "; + cout << X.Ncols() << ")\n\n"; + if (X.IsZero()) { cout << "All elements are zero\n" << flush; return; } + int nr=X.Nrows(); int nc=X.Ncols(); + for (int i=1; i<=nr; i++) + { + int j; + for (j=1; j -c)) A(i,j) = 0.0; } + } +} + +void Clean(DiagonalMatrix& A, Real c) +{ + int nr = A.Nrows(); + for (int i=1; i<=nr; i++) + { Real a = A(i,i); if ((a < c) && (a > -c)) A(i,i) = 0.0; } +} + +void PentiumCheck(Real N, Real D) +{ + Real R = N / D; + R = R * D - N; + if ( R > 1 || R < -1) + cout << "Pentium error detected: % error = " << 100 * R / N << "\n"; +} + + +#ifdef use_namespace +} +using namespace NEWMAT; +#endif + +//*************************** main program ********************************** + +void TestTypeAdd(); // test + +void TestTypeMult(); // test * +void TestTypeConcat(); // test | +void TestTypeSP(); // test SP +void TestTypeKP(); // test KP +void TestTypeOrder(); // test >= + + +int main() +{ + Real* s1; Real* s2; Real* s3; Real* s4; + cout << "\nBegin test\n"; // Forces cout to allocate memory at beginning + cout << "Now print a real number: " << 3.14159265 << endl; + // Throw exception to set up exception buffer +#ifndef DisableExceptions + Try { Throw(BaseException("Just a dummy\n")); } + CatchAll {} +#else + cout << "Not doing exceptions\n"; +#endif + { Matrix A1(40,200); s1 = A1.Store(); } + { Matrix A1(1,1); s3 = A1.Store(); } + { + Tracer et("Matrix test program"); + + Matrix A(25,150); + { + int i; + RowVector A(8); + for (i=1;i<=7;i++) A(i)=0.0; A(8)=1.0; + Print(A); + } + cout << "\n"; + + TestTypeAdd(); TestTypeMult(); TestTypeConcat(); + TestTypeSP(); TestTypeKP(); TestTypeOrder(); + + + Try { + trymat1(); + trymat2(); + trymat3(); + trymat4(); + trymat5(); + trymat6(); + trymat7(); + trymat8(); + trymat9(); + trymata(); + trymatb(); + trymatc(); + trymatd(); + trymate(); + trymatf(); + trymatg(); + trymath(); + trymati(); + trymatj(); + trymatk(); + trymatl(); + trymatm(); + + cout << "\nEnd of tests\n"; + } + CatchAll + { + cout << "\nTest program fails - exception generated\n\n"; + cout << BaseException::what(); + } + + + } + + { Matrix A1(40,200); s2 = A1.Store(); } + cout << "\n(The following memory checks are probably not valid with all\n"; + cout << "compilers - see documentation)\n"; + cout << "\nChecking for lost memory: " + << (unsigned long)s1 << " " << (unsigned long)s2 << " "; + if (s1 != s2) cout << " - error\n"; else cout << " - ok\n"; + { Matrix A1(1,1); s4 = A1.Store(); } + cout << "\nChecking for lost memory: " + << (unsigned long)s3 << " " << (unsigned long)s4 << " "; + if (s3 != s4) cout << " - error\n\n"; else cout << " - ok\n\n"; + + // check for Pentium bug + PentiumCheck(4195835L,3145727L); + PentiumCheck(5244795L,3932159L); + +#ifdef DO_FREE_CHECK + FreeCheck::Status(); +#endif + return 0; +} + + + + +//************************ test type manipulation **************************/ + + +// These functions may cause problems for Glockenspiel 2.0c; they are used +// only for testing so you can delete them + + +void TestTypeAdd() +{ + MatrixType list[10]; + list[0] = MatrixType::UT; + list[1] = MatrixType::LT; + list[2] = MatrixType::Rt; + list[3] = MatrixType::Sm; + list[4] = MatrixType::Dg; + list[5] = MatrixType::BM; + list[6] = MatrixType::UB; + list[7] = MatrixType::LB; + list[8] = MatrixType::SB; + list[9] = MatrixType::Id; + + cout << "+ "; + int i; + for (i=0; i= "; + int i; + for (i = 0; i=list[i]) ? "Yes " : "No "); + cout << "\n"; + } + cout << "\n"; +} + + diff --git a/3rdparty/newmat/tmt.h b/3rdparty/newmat/tmt.h new file mode 100644 index 0000000..2d522d0 --- /dev/null +++ b/3rdparty/newmat/tmt.h @@ -0,0 +1,66 @@ +// definition file for test programs + +//#define DONT_DO_NRIC // activate if running a bounds checker + +#ifdef use_namespace +//using namespace NEWMAT; +namespace NEWMAT { +#endif + +// print time between construction and destruction +class time_lapse +{ + double start_time; +public: + time_lapse(); + ~time_lapse(); +}; + +void Print(const Matrix& X); +void Print(const UpperTriangularMatrix& X); +void Print(const DiagonalMatrix& X); +void Print(const SymmetricMatrix& X); +void Print(const LowerTriangularMatrix& X); + +void Clean(Matrix&, Real); +void Clean(DiagonalMatrix&, Real); + +#ifdef use_namespace +} +using namespace NEWMAT; +#endif + +void trymat1(); void trymat2(); void trymat3(); +void trymat4(); void trymat5(); void trymat6(); +void trymat7(); void trymat8(); void trymat9(); +void trymata(); void trymatb(); void trymatc(); +void trymatd(); void trymate(); void trymatf(); +void trymatg(); void trymath(); void trymati(); +void trymatj(); void trymatk(); void trymatl(); +void trymatm(); + + +// body file: tmt.cpp +// body file: tmt1.cpp +// body file: tmt2.cpp +// body file: tmt3.cpp +// body file: tmt4.cpp +// body file: tmt5.cpp +// body file: tmt6.cpp +// body file: tmt7.cpp +// body file: tmt8.cpp +// body file: tmt9.cpp +// body file: tmta.cpp +// body file: tmtb.cpp +// body file: tmtc.cpp +// body file: tmtd.cpp +// body file: tmte.cpp +// body file: tmtf.cpp +// body file: tmtg.cpp +// body file: tmth.cpp +// body file: tmti.cpp +// body file: tmtj.cpp +// body file: tmtk.cpp +// body file: tmtl.cpp +// body file: tmtm.cpp + diff --git a/3rdparty/newmat/tmt.txt b/3rdparty/newmat/tmt.txt new file mode 100644 index 0000000..c0a18f4 --- /dev/null +++ b/3rdparty/newmat/tmt.txt @@ -0,0 +1,5016 @@ + +Begin test +Now print a real number: 3.14159 + +Matrix type: Rect (1, 8) + +0 0 0 0 0 0 0 1 + ++ UT LT Rect Sym Diag Band UpBnd LwBnd SmBnd Ident +UT UT Rect Rect Rect UT Rect UT Rect Rect UT +LT Rect LT Rect Rect LT Rect Rect LT Rect LT +Rect Rect Rect Rect Rect Rect Rect Rect Rect Rect Rect +Sym Rect Rect Rect Sym Sym Rect Rect Rect Sym Sym +Diag UT LT Rect Sym Diag Band UpBnd LwBnd SmBnd Diag +Band Rect Rect Rect Rect Band Band Band Band Band Band +UpBnd UT Rect Rect Rect UpBnd Band UpBnd Band Band UpBnd +LwBnd Rect LT Rect Rect LwBnd Band Band LwBnd Band LwBnd +SmBnd Rect Rect Rect Sym SmBnd Band Band Band SmBnd SmBnd +Ident UT LT Rect Sym Diag Band UpBnd LwBnd SmBnd Ident + +* UT LT Rect Sym Diag Band UpBnd LwBnd SmBnd Ident +UT UT Rect Rect Rect UT Rect UT Rect Rect UT +LT Rect LT Rect Rect LT Rect Rect LT Rect LT +Rect Rect Rect Rect Rect Rect Rect Rect Rect Rect Rect +Sym Rect Rect Rect Rect Rect Rect Rect Rect Rect Rect +Diag UT LT Rect Rect Diag Band UpBnd LwBnd Band Diag +Band Rect Rect Rect Rect Band Band Band Band Band Band +UpBnd UT Rect Rect Rect UpBnd Band UpBnd Band Band UpBnd +LwBnd Rect LT Rect Rect LwBnd Band Band LwBnd Band LwBnd +SmBnd Rect Rect Rect Rect Band Band Band Band Band Band +Ident UT LT Rect Rect Diag Band UpBnd LwBnd Band Ident + +| UT LT Rect Sym Diag Band UpBnd LwBnd SmBnd Ident +UT Rect Rect Rect Rect Rect Rect Rect Rect Rect Rect +LT Rect Rect Rect Rect Rect Rect Rect Rect Rect Rect +Rect Rect Rect Rect Rect Rect Rect Rect Rect Rect Rect +Sym Rect Rect Rect Rect Rect Rect Rect Rect Rect Rect +Diag Rect Rect Rect Rect Rect Rect Rect Rect Rect Rect +Band Rect Rect Rect Rect Rect Rect Rect Rect Rect Rect +UpBnd Rect Rect Rect Rect Rect Rect Rect Rect Rect Rect +LwBnd Rect Rect Rect Rect Rect Rect Rect Rect Rect Rect +SmBnd Rect Rect Rect Rect Rect Rect Rect Rect Rect Rect +Ident Rect Rect Rect Rect Rect Rect Rect Rect Rect Rect + +SP UT LT Rect Sym Diag Band UpBnd LwBnd SmBnd Ident +UT UT Diag UT UT Diag UpBnd UpBnd Diag UpBnd Diag +LT Diag LT LT LT Diag LwBnd Diag LwBnd LwBnd Diag +Rect UT LT Rect Rect Diag Band UpBnd LwBnd Band Diag +Sym UT LT Rect Sym Diag Band UpBnd LwBnd SmBnd Diag +Diag Diag Diag Diag Diag Diag Diag Diag Diag Diag Diag +Band UpBnd LwBnd Band Band Diag Band UpBnd LwBnd Band Diag +UpBnd UpBnd Diag UpBnd UpBnd Diag UpBnd UpBnd Diag UpBnd Diag +LwBnd Diag LwBnd LwBnd LwBnd Diag LwBnd Diag LwBnd LwBnd Diag +SmBnd UpBnd LwBnd Band SmBnd Diag Band UpBnd LwBnd SmBnd Diag +Ident Diag Diag Diag Diag Diag Diag Diag Diag Diag Ident + +KP UT LT Rect Sym Diag Band UpBnd LwBnd SmBnd Ident +UT UT Rect Rect Rect UT Rect UT Rect Rect UT +LT Rect LT Rect Rect LT Rect Rect LT Rect LT +Rect Rect Rect Rect Rect Rect Rect Rect Rect Rect Rect +Sym Rect Rect Rect Sym Sym Rect Rect Rect Sym Sym +Diag UT LT Rect Sym Diag Band UpBnd LwBnd SmBnd Diag +Band Rect Rect Rect Rect Band Band Band Band Band Band +UpBnd UT Rect Rect Rect UpBnd Band UpBnd Band Band UpBnd +LwBnd Rect LT Rect Rect LwBnd Band Band LwBnd Band LwBnd +SmBnd Rect Rect Rect Sym SmBnd Band Band Band SmBnd SmBnd +Ident UT LT Rect Sym Diag Band UpBnd LwBnd SmBnd Diag + +>= UT LT Rect Sym Diag Band UpBnd LwBnd SmBnd Ident +UT Yes No Yes No No No No No No No +LT No Yes Yes No No No No No No No +Rect No No Yes No No No No No No No +Sym No No Yes Yes No No No No No No +Diag Yes Yes Yes Yes Yes Yes Yes Yes Yes No +Band No No Yes No No Yes No No No No +UpBnd Yes No Yes No No Yes Yes No No No +LwBnd No Yes Yes No No Yes No Yes No No +SmBnd No No Yes Yes No Yes No No Yes No +Ident Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes + + + * First test of Matrix package + * Matrix test program + +Matrix type: LT (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: UT (9, 9) + +All elements are zero + +Matrix type: Rect (9, 9) + +All elements are zero + +Matrix type: Rect (10, 3) + +All elements are zero + +Matrix type: Rect (10, 3) + +All elements are zero + +Matrix type: Rect (10, 3) + +All elements are zero + +Matrix type: Rect (10, 3) + +All elements are zero + +Matrix type: Rect (10, 3) + +All elements are zero + +Matrix type: Rect (10, 3) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (20, 8) + +All elements are zero + +Matrix type: Rect (20, 6) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 20) + +All elements are zero + +Matrix type: Rect (20, 10) + +All elements are zero + +Matrix type: Rect (20, 10) + +All elements are zero + +Matrix type: Rect (10, 20) + +All elements are zero + +Matrix type: Rect (3, 3) + +All elements are zero + + * Second test of Matrix package + * Matrix test program + +Matrix type: Rect (8, 10) + +All elements are zero + +Matrix type: Rect (8, 10) + +All elements are zero + +Matrix type: Rect (8, 10) + +All elements are zero + +Matrix type: Rect (8, 10) + +All elements are zero + +Matrix type: Rect (8, 10) + +All elements are zero + +Matrix type: Rect (100, 1) + +All elements are zero + +Matrix type: Rect (10, 1) + +All elements are zero + +Matrix type: Rect (20, 1) + +All elements are zero + +Matrix type: Rect (4, 7) + +All elements are zero + +Matrix type: Rect (4, 7) + +All elements are zero + +Matrix type: Rect (8, 8) + +All elements are zero + +Matrix type: Rect (8, 8) + +All elements are zero + +Matrix type: Rect (8, 8) + +All elements are zero + +Matrix type: Rect (8, 8) + +All elements are zero + +Matrix type: Rect (8, 8) + +All elements are zero + +Matrix type: Rect (10, 20) + +All elements are zero + +Matrix type: Rect (0, 0) + +All elements are zero + +Matrix type: Rect (16, 1) + +All elements are zero + +Matrix type: Rect (0, 1) + +All elements are zero + +Matrix type: Rect (16, 1) + +All elements are zero + +Matrix type: Rect (1, 0) + +All elements are zero + +Matrix type: Rect (16, 1) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Diag (10, 10) + +All elements are zero + +Matrix type: Rect (8, 1) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (14, 1) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 20) + +All elements are zero + +Matrix type: Rect (20, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (4, 6) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Diag (20, 20) + +All elements are zero + +Matrix type: Rect (3, 3) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + + * Third test of Matrix package + * Matrix test program + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Rect (6, 7) + +All elements are zero + +Matrix type: Rect (6, 7) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Diag (6, 6) + +All elements are zero + +Matrix type: Diag (6, 6) + +All elements are zero + +Matrix type: Rect (3, 3) + +All elements are zero + +Matrix type: Rect (5, 5) + +All elements are zero + +Matrix type: Rect (10, 1) + +All elements are zero + +Matrix type: Rect (1, 10) + +All elements are zero + +Matrix type: Diag (10, 10) + +All elements are zero + +Matrix type: Rect (19, 1) + +All elements are zero + +Matrix type: Rect (19, 1) + +All elements are zero + +Matrix type: Rect (3, 3) + +All elements are zero + +Matrix type: Rect (3, 3) + +All elements are zero + +Matrix type: Rect (3, 3) + +All elements are zero + +Matrix type: Rect (3, 3) + +All elements are zero + +Matrix type: Rect (4, 1) + +All elements are zero + +Matrix type: Rect (6, 1) + +All elements are zero + +Matrix type: Rect (6, 3) + +All elements are zero + +Matrix type: Rect (3, 3) + +All elements are zero + + * Fourth test of Matrix package + * Matrix test program + +Matrix type: Rect (3, 10) + +All elements are zero + +Matrix type: Rect (3, 10) + +All elements are zero + +Matrix type: Rect (3, 3) + +All elements are zero + +Matrix type: Rect (10, 3) + +All elements are zero + +Matrix type: Rect (10, 3) + +All elements are zero + +Matrix type: Rect (10, 1) + +All elements are zero + +Matrix type: Rect (10, 3) + +All elements are zero + +Matrix type: Rect (5, 8) + +All elements are zero + +Matrix type: Rect (4, 5) + +All elements are zero + +Matrix type: Rect (4, 5) + +All elements are zero + +Matrix type: Rect (4, 5) + +All elements are zero + +Matrix type: Rect (4, 5) + +All elements are zero + +Matrix type: Rect (5, 5) + +All elements are zero + +Matrix type: Rect (5, 5) + +All elements are zero + +Matrix type: Rect (5, 5) + +All elements are zero + +Matrix type: Rect (4, 4) + +All elements are zero + +Matrix type: Diag (1, 1) + +All elements are zero + +Matrix type: Rect (2, 2) + +All elements are zero + +Matrix type: Diag (4, 4) + +All elements are zero + +Matrix type: Diag (4, 4) + +All elements are zero + + * Fifth test of Matrix package + * Matrix test program + +Matrix type: Rect (6, 1) + +All elements are zero + +Matrix type: Rect (6, 1) + +All elements are zero + +Matrix type: Rect (6, 1) + +All elements are zero + +Matrix type: Rect (1, 6) + +All elements are zero + +Matrix type: Rect (1, 10) + +All elements are zero + +Matrix type: Rect (2, 3) + +All elements are zero + +Matrix type: Rect (3, 2) + +All elements are zero + +Matrix type: Rect (1, 10) + +All elements are zero + +Matrix type: Rect (10, 1) + +All elements are zero + +Matrix type: Rect (5, 6) + +All elements are zero + +Matrix type: Rect (31, 31) + +All elements are zero + +Matrix type: Rect (31, 31) + +All elements are zero + +Matrix type: Rect (31, 31) + +All elements are zero + +Matrix type: Rect (31, 31) + +All elements are zero + +Matrix type: Rect (31, 31) + +All elements are zero + +Matrix type: Rect (31, 31) + +All elements are zero + +Matrix type: Diag (31, 31) + +All elements are zero + + * Sixth test of Matrix package + * Matrix test program + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (5, 5) + +All elements are zero + +Matrix type: Rect (5, 5) + +All elements are zero + +Matrix type: LT (5, 5) + +All elements are zero + +Matrix type: LT (5, 5) + +All elements are zero + +Matrix type: Diag (5, 5) + +All elements are zero + +Matrix type: Rect (5, 5) + +All elements are zero + +Matrix type: Rect (5, 10) + +All elements are zero + +Matrix type: Rect (5, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (15, 15) + +All elements are zero + +Matrix type: Rect (15, 15) + +All elements are zero + +Matrix type: Rect (1, 1) + +All elements are zero + +Matrix type: Rect (1, 1) + +All elements are zero + +Matrix type: Rect (1, 1) + +All elements are zero + +Matrix type: Rect (1, 1) + +All elements are zero + +Matrix type: Rect (1, 1) + +All elements are zero + +Matrix type: Rect (1, 1) + +All elements are zero + +Matrix type: Rect (1, 1) + +All elements are zero + +Matrix type: Rect (1, 1) + +All elements are zero + +Matrix type: Rect (1, 2) + +All elements are zero + +Matrix type: Rect (1, 2) + +All elements are zero + +Matrix type: Rect (1, 2) + +All elements are zero + +Matrix type: Rect (1, 2) + +All elements are zero + +Matrix type: Rect (1, 2) + +All elements are zero + +Matrix type: Rect (1, 2) + +All elements are zero + +Matrix type: Rect (1, 2) + +All elements are zero + +Matrix type: Rect (1, 2) + +All elements are zero + +Matrix type: Rect (1, 3) + +All elements are zero + +Matrix type: Rect (1, 3) + +All elements are zero + +Matrix type: Rect (1, 3) + +All elements are zero + +Matrix type: Rect (1, 3) + +All elements are zero + +Matrix type: Rect (1, 3) + +All elements are zero + +Matrix type: Rect (1, 3) + +All elements are zero + +Matrix type: Rect (1, 3) + +All elements are zero + +Matrix type: Rect (1, 3) + +All elements are zero + +Matrix type: Rect (1, 4) + +All elements are zero + +Matrix type: Rect (1, 4) + +All elements are zero + +Matrix type: Rect (1, 4) + +All elements are zero + +Matrix type: Rect (1, 4) + +All elements are zero + +Matrix type: Rect (1, 4) + +All elements are zero + +Matrix type: Rect (1, 4) + +All elements are zero + +Matrix type: Rect (1, 4) + +All elements are zero + +Matrix type: Rect (1, 4) + +All elements are zero + +Matrix type: Rect (1, 15) + +All elements are zero + +Matrix type: Rect (1, 15) + +All elements are zero + +Matrix type: Rect (1, 15) + +All elements are zero + +Matrix type: Rect (1, 15) + +All elements are zero + +Matrix type: Rect (1, 15) + +All elements are zero + +Matrix type: Rect (1, 15) + +All elements are zero + +Matrix type: Rect (1, 15) + +All elements are zero + +Matrix type: Rect (1, 15) + +All elements are zero + +Matrix type: Rect (1, 16) + +All elements are zero + +Matrix type: Rect (1, 16) + +All elements are zero + +Matrix type: Rect (1, 16) + +All elements are zero + +Matrix type: Rect (1, 16) + +All elements are zero + +Matrix type: Rect (1, 16) + +All elements are zero + +Matrix type: Rect (1, 16) + +All elements are zero + +Matrix type: Rect (1, 16) + +All elements are zero + +Matrix type: Rect (1, 16) + +All elements are zero + +Matrix type: Rect (1, 17) + +All elements are zero + +Matrix type: Rect (1, 17) + +All elements are zero + +Matrix type: Rect (1, 17) + +All elements are zero + +Matrix type: Rect (1, 17) + +All elements are zero + +Matrix type: Rect (1, 17) + +All elements are zero + +Matrix type: Rect (1, 17) + +All elements are zero + +Matrix type: Rect (1, 17) + +All elements are zero + +Matrix type: Rect (1, 17) + +All elements are zero + +Matrix type: Rect (1, 18) + +All elements are zero + +Matrix type: Rect (1, 18) + +All elements are zero + +Matrix type: Rect (1, 18) + +All elements are zero + +Matrix type: Rect (1, 18) + +All elements are zero + +Matrix type: Rect (1, 18) + +All elements are zero + +Matrix type: Rect (1, 18) + +All elements are zero + +Matrix type: Rect (1, 18) + +All elements are zero + +Matrix type: Rect (1, 18) + +All elements are zero + +Matrix type: Rect (1, 99) + +All elements are zero + +Matrix type: Rect (1, 99) + +All elements are zero + +Matrix type: Rect (1, 99) + +All elements are zero + +Matrix type: Rect (1, 99) + +All elements are zero + +Matrix type: Rect (1, 99) + +All elements are zero + +Matrix type: Rect (1, 99) + +All elements are zero + +Matrix type: Rect (1, 99) + +All elements are zero + +Matrix type: Rect (1, 99) + +All elements are zero + +Matrix type: Rect (1, 100) + +All elements are zero + +Matrix type: Rect (1, 100) + +All elements are zero + +Matrix type: Rect (1, 100) + +All elements are zero + +Matrix type: Rect (1, 100) + +All elements are zero + +Matrix type: Rect (1, 100) + +All elements are zero + +Matrix type: Rect (1, 100) + +All elements are zero + +Matrix type: Rect (1, 100) + +All elements are zero + +Matrix type: Rect (1, 100) + +All elements are zero + +Matrix type: Rect (1, 101) + +All elements are zero + +Matrix type: Rect (1, 101) + +All elements are zero + +Matrix type: Rect (1, 101) + +All elements are zero + +Matrix type: Rect (1, 101) + +All elements are zero + +Matrix type: Rect (1, 101) + +All elements are zero + +Matrix type: Rect (1, 101) + +All elements are zero + +Matrix type: Rect (1, 101) + +All elements are zero + +Matrix type: Rect (1, 101) + +All elements are zero + + * Seventh test of Matrix package + * Matrix test program + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (11, 11) + +All elements are zero + +Matrix type: Rect (11, 11) + +All elements are zero + +Matrix type: Rect (1, 1) + +All elements are zero + +Matrix type: Rect (1, 121) + +All elements are zero + +Matrix type: Rect (11, 11) + +All elements are zero + +Matrix type: Rect (11, 11) + +All elements are zero + +Matrix type: Rect (11, 11) + +All elements are zero + +Matrix type: Rect (11, 11) + +All elements are zero + +Matrix type: Rect (11, 11) + +All elements are zero + +Matrix type: Rect (11, 11) + +All elements are zero + +Matrix type: Rect (11, 11) + +All elements are zero + +Matrix type: Rect (11, 11) + +All elements are zero + +Matrix type: Rect (11, 11) + +All elements are zero + +Matrix type: Rect (11, 11) + +All elements are zero + +Matrix type: Rect (10, 1) + +All elements are zero + + * Eighth test of Matrix package + * Matrix test program + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Diag (6, 6) + +All elements are zero + +Matrix type: Diag (6, 6) + +All elements are zero + +Matrix type: Diag (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: LT (4, 4) + +All elements are zero + +Matrix type: LT (4, 4) + +All elements are zero + +Matrix type: LT (4, 4) + +All elements are zero + +Matrix type: LT (4, 4) + +All elements are zero + +Matrix type: LT (4, 4) + +All elements are zero + +Matrix type: LT (4, 4) + +All elements are zero + +Matrix type: LT (4, 4) + +All elements are zero + +Matrix type: LT (4, 4) + +All elements are zero + +Matrix type: Rect (4, 4) + +All elements are zero + +Matrix type: LT (4, 4) + +All elements are zero + +Matrix type: LT (4, 4) + +All elements are zero + +Matrix type: LT (4, 4) + +All elements are zero + +Matrix type: LT (4, 4) + +All elements are zero + +Matrix type: UT (4, 4) + +All elements are zero + +Matrix type: Diag (12, 12) + +All elements are zero + +Matrix type: Rect (10, 6) + +All elements are zero + +Matrix type: Rect (5, 9) + +All elements are zero + +Matrix type: Diag (5, 5) + +All elements are zero + +Matrix type: Rect (5, 5) + +All elements are zero + +Matrix type: Rect (5, 5) + +All elements are zero + +Matrix type: Rect (5, 5) + +All elements are zero + +Matrix type: Rect (5, 5) + +All elements are zero + +Matrix type: Rect (5, 5) + +All elements are zero + +Matrix type: Rect (6, 0) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + + * Ninth test of Matrix package + * Matrix test program + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Rect (7, 3) + +All elements are zero + +Matrix type: Rect (7, 3) + +All elements are zero + +Matrix type: Rect (3, 7) + +All elements are zero + +Matrix type: Diag (7, 7) + +All elements are zero + +Matrix type: Diag (7, 7) + +All elements are zero + +Matrix type: Diag (7, 7) + +All elements are zero + +Matrix type: Rect (18, 1) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (22, 1) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (12, 1) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (4, 4) + +All elements are zero + +Matrix type: Rect (4, 4) + +All elements are zero + + * Tenth test of Matrix package + * Matrix test program + +Matrix type: Rect (8, 6) + +All elements are zero + +Matrix type: Rect (8, 6) + +All elements are zero + +Matrix type: Rect (8, 8) + +All elements are zero + +Matrix type: Rect (8, 8) + +All elements are zero + +Matrix type: Rect (8, 8) + +All elements are zero + +Matrix type: Rect (8, 8) + +All elements are zero + +Matrix type: Rect (8, 8) + +All elements are zero + +Matrix type: Rect (8, 8) + +All elements are zero + +Matrix type: Rect (4, 2) + +All elements are zero + +Matrix type: Rect (4, 2) + +All elements are zero + +Matrix type: Rect (4, 2) + +All elements are zero + +Matrix type: UT (4, 4) + +All elements are zero + +Matrix type: Rect (4, 2) + +All elements are zero + +Matrix type: Rect (4, 4) + +All elements are zero + +Matrix type: Rect (4, 4) + +All elements are zero + + * Eleventh test of Matrix package + * Matrix test program + +Matrix type: Rect (1, 10) + +All elements are zero + +Matrix type: Rect (1, 10) + +All elements are zero + +Matrix type: Rect (5, 5) + +All elements are zero + +Matrix type: Rect (5, 5) + +All elements are zero + +Matrix type: Rect (5, 5) + +All elements are zero + +Matrix type: Rect (5, 5) + +All elements are zero + +Matrix type: Rect (5, 5) + +All elements are zero + +Matrix type: Rect (5, 10) + +All elements are zero + +Matrix type: Rect (5, 5) + +All elements are zero + +Matrix type: Rect (5, 5) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (3, 4) + +All elements are zero + +Matrix type: Rect (6, 4) + +All elements are zero + +Matrix type: Rect (7, 6) + +All elements are zero + +Matrix type: Rect (3, 4) + +All elements are zero + +Matrix type: Rect (2, 3) + +All elements are zero + + * Twelfth test of Matrix package + * Matrix test program + +Matrix type: Rect (15, 1) + +All elements are zero + +Matrix type: Rect (1, 15) + +All elements are zero + +Matrix type: Rect (1, 15) + +All elements are zero + +Matrix type: Rect (1, 15) + +All elements are zero + +Matrix type: Rect (1, 15) + +All elements are zero + +Matrix type: Rect (1, 15) + +All elements are zero + +Matrix type: Rect (1, 15) + +All elements are zero + +Matrix type: Rect (15, 1) + +All elements are zero + +Matrix type: Rect (3, 5) + +All elements are zero + +Matrix type: Rect (15, 1) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Rect (7, 5) + +All elements are zero + +Matrix type: Rect (7, 5) + +All elements are zero + +Matrix type: Rect (7, 5) + +All elements are zero + +Matrix type: UT (20, 20) + +All elements are zero + +Matrix type: UT (5, 5) + +All elements are zero + +Matrix type: UT (20, 20) + +All elements are zero + +Matrix type: UT (5, 5) + +All elements are zero + +Matrix type: Rect (8, 5) + +All elements are zero + +Matrix type: UT (20, 20) + +All elements are zero + +Matrix type: LT (20, 20) + +All elements are zero + +Matrix type: LT (5, 5) + +All elements are zero + +Matrix type: LT (20, 20) + +All elements are zero + +Matrix type: LT (5, 5) + +All elements are zero + +Matrix type: Rect (5, 8) + +All elements are zero + +Matrix type: LT (20, 20) + +All elements are zero + +Matrix type: Rect (20, 30) + +All elements are zero + +Matrix type: Rect (0, 0) + +All elements are zero + +Matrix type: Rect (20, 30) + +All elements are zero + +Matrix type: Rect (0, 0) + +All elements are zero + +Matrix type: Rect (20, 30) + +All elements are zero + + * Thirteenth test of Matrix package + * Matrix test program + +Matrix type: Rect (5, 5) + +All elements are zero + +Matrix type: Rect (5, 5) + +All elements are zero + +Matrix type: Rect (5, 5) + +All elements are zero + +Matrix type: Rect (5, 5) + +All elements are zero + +Matrix type: Rect (20, 5) + +All elements are zero + +Matrix type: Rect (20, 3) + +All elements are zero + +Matrix type: Rect (5, 3) + +All elements are zero + +Matrix type: Rect (3, 5) + +All elements are zero + +Matrix type: Rect (5, 1) + +All elements are zero + +Matrix type: Rect (1, 7) + +All elements are zero + +Matrix type: Rect (5, 1) + +All elements are zero + +Matrix type: Rect (40, 1) + +All elements are zero + +Matrix type: Rect (40, 1) + +All elements are zero + +Matrix type: Rect (40, 1) + +All elements are zero + +Matrix type: Rect (40, 40) + +All elements are zero + +Matrix type: Rect (40, 1) + +All elements are zero + +Matrix type: Rect (40, 1) + +All elements are zero + +Matrix type: Rect (40, 1) + +All elements are zero + +Matrix type: Rect (40, 1) + +All elements are zero + +Matrix type: Rect (40, 40) + +All elements are zero + +Matrix type: Rect (40, 40) + +All elements are zero + +Matrix type: Rect (40, 40) + +All elements are zero + +Matrix type: Rect (40, 40) + +All elements are zero + +Matrix type: Rect (40, 40) + +All elements are zero + +Matrix type: Rect (40, 40) + +All elements are zero + +Matrix type: Rect (4, 4) + +All elements are zero + +Matrix type: Rect (4, 4) + +All elements are zero + +Matrix type: Rect (50, 50) + +All elements are zero + +Matrix type: Rect (4, 4) + +All elements are zero + + * Fourteenth test of Matrix package + * Matrix test program + +Matrix type: Diag (5, 5) + +All elements are zero + +Matrix type: Diag (5, 5) + +All elements are zero + +Matrix type: Diag (5, 5) + +All elements are zero + +Matrix type: Rect (8, 5) + +All elements are zero + +Matrix type: Diag (5, 5) + +All elements are zero + +Matrix type: Rect (5, 5) + +All elements are zero + +Matrix type: Diag (5, 5) + +All elements are zero + +Matrix type: Rect (5, 5) + +All elements are zero + +Matrix type: Rect (5, 5) + +All elements are zero + +Matrix type: Rect (8, 5) + +All elements are zero + +Matrix type: Diag (5, 5) + +All elements are zero + +Matrix type: Rect (8, 5) + +All elements are zero + +Matrix type: Diag (5, 5) + +All elements are zero + +Matrix type: Diag (5, 5) + +All elements are zero + +Matrix type: Rect (5, 5) + +All elements are zero + +Matrix type: Diag (5, 5) + +All elements are zero + +Matrix type: Diag (5, 5) + +All elements are zero + +Matrix type: Diag (5, 5) + +All elements are zero + +Matrix type: Diag (5, 5) + +All elements are zero + +Matrix type: Diag (5, 5) + +All elements are zero + +Matrix type: Diag (8, 8) + +All elements are zero + +Matrix type: Rect (8, 8) + +All elements are zero + +Matrix type: Diag (8, 8) + +All elements are zero + +Matrix type: Diag (5, 5) + +All elements are zero + +Matrix type: Rect (5, 5) + +All elements are zero + +Matrix type: Diag (5, 5) + +All elements are zero + +Matrix type: Diag (8, 8) + +All elements are zero + +Matrix type: Rect (8, 8) + +All elements are zero + +Matrix type: Diag (8, 8) + +All elements are zero + +Matrix type: Diag (5, 5) + +All elements are zero + +Matrix type: Diag (5, 5) + +All elements are zero + +Matrix type: Diag (8, 8) + +All elements are zero + +Matrix type: Diag (8, 8) + +All elements are zero + +Matrix type: Diag (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (21, 20) + +All elements are zero + +Matrix type: Diag (20, 20) + +All elements are zero + +Matrix type: Diag (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Diag (20, 20) + +All elements are zero + +Matrix type: Diag (21, 21) + +All elements are zero + +Matrix type: Rect (21, 21) + +All elements are zero + +Matrix type: Diag (21, 21) + +All elements are zero + +Matrix type: Diag (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Diag (20, 20) + +All elements are zero + +Matrix type: Diag (21, 21) + +All elements are zero + +Matrix type: Rect (21, 21) + +All elements are zero + +Matrix type: Diag (21, 21) + +All elements are zero + +Matrix type: Diag (20, 20) + +All elements are zero + +Matrix type: Diag (20, 20) + +All elements are zero + +Matrix type: Diag (21, 21) + +All elements are zero + +Matrix type: Diag (21, 21) + +All elements are zero + +Matrix type: Diag (30, 30) + +All elements are zero + +Matrix type: Rect (30, 30) + +All elements are zero + +Matrix type: Rect (30, 30) + +All elements are zero + +Matrix type: Rect (30, 30) + +All elements are zero + +Matrix type: Rect (3, 1) + +All elements are zero + +Matrix type: Diag (2, 2) + +All elements are zero + +Matrix type: Rect (2, 2) + +All elements are zero + +Matrix type: Rect (2, 2) + +All elements are zero + +Matrix type: Rect (2, 2) + +All elements are zero + +Matrix type: Diag (2, 2) + +All elements are zero + +Matrix type: Diag (2, 2) + +All elements are zero + +Matrix type: Rect (2, 2) + +All elements are zero + +Matrix type: Rect (2, 2) + +All elements are zero + +Matrix type: Rect (2, 2) + +All elements are zero + +Matrix type: Diag (2, 2) + +All elements are zero + +Matrix type: Diag (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (22, 20) + +All elements are zero + +Matrix type: Diag (10, 10) + +All elements are zero + +Matrix type: Diag (10, 10) + +All elements are zero + +Matrix type: Diag (10, 10) + +All elements are zero + +Matrix type: Diag (10, 10) + +All elements are zero + +Matrix type: Rect (6, 1) + +All elements are zero + +Matrix type: Sym (10, 10) + +All elements are zero + +Matrix type: Diag (9, 9) + +All elements are zero + +Matrix type: Diag (9, 9) + +All elements are zero + +Matrix type: Diag (9, 9) + +All elements are zero + +Matrix type: Rect (6, 1) + +All elements are zero + +Matrix type: Diag (8, 8) + +All elements are zero + +Matrix type: Rect (8, 8) + +All elements are zero + +Matrix type: Diag (8, 8) + +All elements are zero + +Matrix type: Rect (8, 8) + +All elements are zero + +Matrix type: Rect (8, 8) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (15, 15) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (15, 15) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (15, 15) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (15, 15) + +All elements are zero + +Matrix type: Diag (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + + * Fifteenth test of Matrix package + * Matrix test program + +Matrix type: Rect (12, 1) + +All elements are zero + +Matrix type: Rect (12, 1) + +All elements are zero + +Matrix type: Rect (2048, 1) + +All elements are zero + +Matrix type: Rect (2048, 1) + +All elements are zero + +Matrix type: Rect (2000, 1) + +All elements are zero + +Matrix type: Rect (2000, 1) + +All elements are zero + +Matrix type: Rect (2187, 1) + +All elements are zero + +Matrix type: Rect (2187, 1) + +All elements are zero + +Matrix type: Rect (2310, 1) + +All elements are zero + +Matrix type: Rect (2310, 1) + +All elements are zero + +Matrix type: Rect (2401, 1) + +All elements are zero + +Matrix type: Rect (2401, 1) + +All elements are zero + +Matrix type: Rect (2197, 1) + +All elements are zero + +Matrix type: Rect (2197, 1) + +All elements are zero + +Matrix type: Rect (2021, 1) + +All elements are zero + +Matrix type: Rect (2021, 1) + +All elements are zero + +Matrix type: Rect (768, 1) + +All elements are zero + +Matrix type: Rect (768, 1) + +All elements are zero + +Matrix type: Rect (1280, 1) + +All elements are zero + +Matrix type: Rect (1280, 1) + +All elements are zero + +Matrix type: Rect (1792, 1) + +All elements are zero + +Matrix type: Rect (1792, 1) + +All elements are zero + +Matrix type: Rect (320, 1) + +All elements are zero + +Matrix type: Rect (320, 1) + +All elements are zero + +Matrix type: Rect (2, 1) + +All elements are zero + +Matrix type: Rect (2, 1) + +All elements are zero + +Matrix type: Rect (2, 1) + +All elements are zero + +Matrix type: Rect (50, 1) + +All elements are zero + +Matrix type: Rect (50, 1) + +All elements are zero + +Matrix type: Rect (98, 1) + +All elements are zero + +Matrix type: Rect (12, 1) + +All elements are zero + +Matrix type: Rect (12, 1) + +All elements are zero + +Matrix type: Rect (22, 1) + +All elements are zero + +Matrix type: Rect (51, 1) + +All elements are zero + +Matrix type: Rect (51, 1) + +All elements are zero + +Matrix type: Rect (100, 1) + +All elements are zero + +Matrix type: Rect (1025, 1) + +All elements are zero + +Matrix type: Rect (1025, 1) + +All elements are zero + +Matrix type: Rect (2048, 1) + +All elements are zero + +Matrix type: Rect (1001, 1) + +All elements are zero + +Matrix type: Rect (1001, 1) + +All elements are zero + +Matrix type: Rect (2000, 1) + +All elements are zero + +Matrix type: Rect (1226, 1) + +All elements are zero + +Matrix type: Rect (1226, 1) + +All elements are zero + +Matrix type: Rect (2450, 1) + +All elements are zero + +Matrix type: Rect (1, 1) + +All elements are zero + +Matrix type: Rect (1, 1) + +All elements are zero + +Matrix type: Rect (13, 1) + +All elements are zero + +Matrix type: Rect (13, 1) + +All elements are zero + +Matrix type: Rect (12, 1) + +All elements are zero + +Matrix type: Rect (12, 1) + +All elements are zero + +Matrix type: Rect (9, 1) + +All elements are zero + +Matrix type: Rect (9, 1) + +All elements are zero + +Matrix type: Rect (16, 1) + +All elements are zero + +Matrix type: Rect (16, 1) + +All elements are zero + +Matrix type: Rect (30, 1) + +All elements are zero + +Matrix type: Rect (30, 1) + +All elements are zero + +Matrix type: Rect (42, 1) + +All elements are zero + +Matrix type: Rect (42, 1) + +All elements are zero + +Matrix type: Rect (24, 1) + +All elements are zero + +Matrix type: Rect (24, 1) + +All elements are zero + +Matrix type: Rect (8, 1) + +All elements are zero + +Matrix type: Rect (8, 1) + +All elements are zero + +Matrix type: Rect (40, 1) + +All elements are zero + +Matrix type: Rect (40, 1) + +All elements are zero + +Matrix type: Rect (48, 1) + +All elements are zero + +Matrix type: Rect (48, 1) + +All elements are zero + +Matrix type: Rect (4, 1) + +All elements are zero + +Matrix type: Rect (4, 1) + +All elements are zero + +Matrix type: Rect (3, 1) + +All elements are zero + +Matrix type: Rect (3, 1) + +All elements are zero + +Matrix type: Rect (5, 1) + +All elements are zero + +Matrix type: Rect (5, 1) + +All elements are zero + +Matrix type: Rect (32, 1) + +All elements are zero + +Matrix type: Rect (32, 1) + +All elements are zero + +Matrix type: Rect (2, 1) + +All elements are zero + +Matrix type: Rect (2, 1) + +All elements are zero + +Matrix type: Rect (2, 1) + +All elements are zero + +Matrix type: Rect (2, 1) + +All elements are zero + +Matrix type: Rect (26, 1) + +All elements are zero + +Matrix type: Rect (26, 1) + +All elements are zero + +Matrix type: Rect (32, 1) + +All elements are zero + +Matrix type: Rect (32, 1) + +All elements are zero + +Matrix type: Rect (18, 1) + +All elements are zero + +Matrix type: Rect (18, 1) + +All elements are zero + +Matrix type: Rect (2, 1) + +All elements are zero + +Matrix type: Rect (2, 1) + +All elements are zero + +Matrix type: Rect (2, 1) + +All elements are zero + +Matrix type: Rect (2, 1) + +All elements are zero + +Matrix type: Rect (202, 1) + +All elements are zero + +Matrix type: Rect (202, 1) + +All elements are zero + +Matrix type: Rect (202, 1) + +All elements are zero + +Matrix type: Rect (202, 1) + +All elements are zero + +Matrix type: Rect (1000, 1) + +All elements are zero + +Matrix type: Rect (1000, 1) + +All elements are zero + +Matrix type: Rect (1000, 1) + +All elements are zero + +Matrix type: Rect (1000, 1) + +All elements are zero + +Matrix type: Rect (3, 1) + +All elements are zero + +Matrix type: Rect (3, 1) + +All elements are zero + +Matrix type: Rect (3, 1) + +All elements are zero + +Matrix type: Rect (3, 1) + +All elements are zero + +Matrix type: Rect (275, 1) + +All elements are zero + +Matrix type: Rect (275, 1) + +All elements are zero + +Matrix type: Rect (275, 1) + +All elements are zero + +Matrix type: Rect (275, 1) + +All elements are zero + +Matrix type: Rect (1001, 1) + +All elements are zero + +Matrix type: Rect (1001, 1) + +All elements are zero + +Matrix type: Rect (1001, 1) + +All elements are zero + +Matrix type: Rect (1001, 1) + +All elements are zero + +Matrix type: Rect (3, 1) + +All elements are zero + +Matrix type: Rect (3, 1) + +All elements are zero + +Matrix type: Rect (27, 1) + +All elements are zero + +Matrix type: Rect (27, 1) + +All elements are zero + +Matrix type: Rect (33, 1) + +All elements are zero + +Matrix type: Rect (33, 1) + +All elements are zero + +Matrix type: Rect (19, 1) + +All elements are zero + +Matrix type: Rect (19, 1) + +All elements are zero + +Matrix type: Rect (12, 1) + +All elements are zero + +Matrix type: Rect (12, 1) + +All elements are zero + +Matrix type: Rect (2048, 1) + +All elements are zero + +Matrix type: Rect (2048, 1) + +All elements are zero + +Matrix type: Rect (2000, 1) + +All elements are zero + +Matrix type: Rect (2000, 1) + +All elements are zero + +Matrix type: Rect (2187, 1) + +All elements are zero + +Matrix type: Rect (2187, 1) + +All elements are zero + +Matrix type: Rect (2310, 1) + +All elements are zero + +Matrix type: Rect (2310, 1) + +All elements are zero + +Matrix type: Rect (2401, 1) + +All elements are zero + +Matrix type: Rect (2401, 1) + +All elements are zero + +Matrix type: Rect (2197, 1) + +All elements are zero + +Matrix type: Rect (2197, 1) + +All elements are zero + +Matrix type: Rect (2021, 1) + +All elements are zero + +Matrix type: Rect (2021, 1) + +All elements are zero + +Matrix type: Rect (768, 1) + +All elements are zero + +Matrix type: Rect (768, 1) + +All elements are zero + +Matrix type: Rect (1280, 1) + +All elements are zero + +Matrix type: Rect (1280, 1) + +All elements are zero + +Matrix type: Rect (1792, 1) + +All elements are zero + +Matrix type: Rect (1792, 1) + +All elements are zero + +Matrix type: Rect (320, 1) + +All elements are zero + +Matrix type: Rect (320, 1) + +All elements are zero + +Matrix type: Rect (2, 1) + +All elements are zero + +Matrix type: Rect (2, 1) + +All elements are zero + +Matrix type: Rect (2, 1) + +All elements are zero + +Matrix type: Rect (50, 1) + +All elements are zero + +Matrix type: Rect (50, 1) + +All elements are zero + +Matrix type: Rect (98, 1) + +All elements are zero + +Matrix type: Rect (12, 1) + +All elements are zero + +Matrix type: Rect (12, 1) + +All elements are zero + +Matrix type: Rect (22, 1) + +All elements are zero + +Matrix type: Rect (51, 1) + +All elements are zero + +Matrix type: Rect (51, 1) + +All elements are zero + +Matrix type: Rect (100, 1) + +All elements are zero + +Matrix type: Rect (1025, 1) + +All elements are zero + +Matrix type: Rect (1025, 1) + +All elements are zero + +Matrix type: Rect (2048, 1) + +All elements are zero + +Matrix type: Rect (1001, 1) + +All elements are zero + +Matrix type: Rect (1001, 1) + +All elements are zero + +Matrix type: Rect (2000, 1) + +All elements are zero + +Matrix type: Rect (1226, 1) + +All elements are zero + +Matrix type: Rect (1226, 1) + +All elements are zero + +Matrix type: Rect (2450, 1) + +All elements are zero + +Matrix type: Rect (1, 1) + +All elements are zero + +Matrix type: Rect (1, 1) + +All elements are zero + +Matrix type: Rect (13, 1) + +All elements are zero + +Matrix type: Rect (13, 1) + +All elements are zero + +Matrix type: Rect (12, 1) + +All elements are zero + +Matrix type: Rect (12, 1) + +All elements are zero + +Matrix type: Rect (9, 1) + +All elements are zero + +Matrix type: Rect (9, 1) + +All elements are zero + +Matrix type: Rect (16, 1) + +All elements are zero + +Matrix type: Rect (16, 1) + +All elements are zero + +Matrix type: Rect (30, 1) + +All elements are zero + +Matrix type: Rect (30, 1) + +All elements are zero + +Matrix type: Rect (42, 1) + +All elements are zero + +Matrix type: Rect (42, 1) + +All elements are zero + +Matrix type: Rect (24, 1) + +All elements are zero + +Matrix type: Rect (24, 1) + +All elements are zero + +Matrix type: Rect (8, 1) + +All elements are zero + +Matrix type: Rect (8, 1) + +All elements are zero + +Matrix type: Rect (40, 1) + +All elements are zero + +Matrix type: Rect (40, 1) + +All elements are zero + +Matrix type: Rect (48, 1) + +All elements are zero + +Matrix type: Rect (48, 1) + +All elements are zero + +Matrix type: Rect (4, 1) + +All elements are zero + +Matrix type: Rect (4, 1) + +All elements are zero + +Matrix type: Rect (3, 1) + +All elements are zero + +Matrix type: Rect (3, 1) + +All elements are zero + +Matrix type: Rect (5, 1) + +All elements are zero + +Matrix type: Rect (5, 1) + +All elements are zero + +Matrix type: Rect (32, 1) + +All elements are zero + +Matrix type: Rect (32, 1) + +All elements are zero + +Matrix type: Rect (2, 1) + +All elements are zero + +Matrix type: Rect (2, 1) + +All elements are zero + +Matrix type: Rect (2, 1) + +All elements are zero + +Matrix type: Rect (2, 1) + +All elements are zero + +Matrix type: Rect (26, 1) + +All elements are zero + +Matrix type: Rect (26, 1) + +All elements are zero + +Matrix type: Rect (32, 1) + +All elements are zero + +Matrix type: Rect (32, 1) + +All elements are zero + +Matrix type: Rect (18, 1) + +All elements are zero + +Matrix type: Rect (18, 1) + +All elements are zero + +Matrix type: Rect (2, 1) + +All elements are zero + +Matrix type: Rect (2, 1) + +All elements are zero + +Matrix type: Rect (2, 1) + +All elements are zero + +Matrix type: Rect (2, 1) + +All elements are zero + +Matrix type: Rect (202, 1) + +All elements are zero + +Matrix type: Rect (202, 1) + +All elements are zero + +Matrix type: Rect (202, 1) + +All elements are zero + +Matrix type: Rect (202, 1) + +All elements are zero + +Matrix type: Rect (1000, 1) + +All elements are zero + +Matrix type: Rect (1000, 1) + +All elements are zero + +Matrix type: Rect (1000, 1) + +All elements are zero + +Matrix type: Rect (1000, 1) + +All elements are zero + +Matrix type: Rect (3, 1) + +All elements are zero + +Matrix type: Rect (3, 1) + +All elements are zero + +Matrix type: Rect (3, 1) + +All elements are zero + +Matrix type: Rect (3, 1) + +All elements are zero + +Matrix type: Rect (275, 1) + +All elements are zero + +Matrix type: Rect (275, 1) + +All elements are zero + +Matrix type: Rect (275, 1) + +All elements are zero + +Matrix type: Rect (275, 1) + +All elements are zero + +Matrix type: Rect (1001, 1) + +All elements are zero + +Matrix type: Rect (1001, 1) + +All elements are zero + +Matrix type: Rect (1001, 1) + +All elements are zero + +Matrix type: Rect (1001, 1) + +All elements are zero + +Matrix type: Rect (3, 1) + +All elements are zero + +Matrix type: Rect (3, 1) + +All elements are zero + +Matrix type: Rect (27, 1) + +All elements are zero + +Matrix type: Rect (27, 1) + +All elements are zero + +Matrix type: Rect (33, 1) + +All elements are zero + +Matrix type: Rect (33, 1) + +All elements are zero + +Matrix type: Rect (19, 1) + +All elements are zero + +Matrix type: Rect (19, 1) + +All elements are zero + + * Sixteenth test of Matrix package + * Matrix test program + +Matrix type: Rect (1, 7) + +All elements are zero + +Matrix type: Rect (1, 6) + +All elements are zero + +Matrix type: Rect (1, 6) + +All elements are zero + +Matrix type: Rect (1, 8) + +All elements are zero + +Matrix type: Rect (1, 3) + +All elements are zero + +Matrix type: Rect (1, 4) + +All elements are zero + +Matrix type: Rect (1, 4) + +All elements are zero + +Matrix type: Rect (1, 4) + +All elements are zero + +Matrix type: Rect (1, 3) + +All elements are zero + +Matrix type: Rect (1, 5) + +All elements are zero + +Matrix type: Rect (6, 1) + +All elements are zero + + * Seventeenth test of Matrix package + * Matrix test program + +Matrix type: Rect (8, 8) + +All elements are zero + +Matrix type: Rect (8, 8) + +All elements are zero + +Matrix type: Rect (8, 8) + +All elements are zero + +Matrix type: Rect (8, 8) + +All elements are zero + +Matrix type: Rect (8, 8) + +All elements are zero + +Matrix type: Rect (8, 8) + +All elements are zero + +Matrix type: Rect (1, 1) + +All elements are zero + +Matrix type: Rect (8, 8) + +All elements are zero + +Matrix type: Rect (8, 8) + +All elements are zero + +Matrix type: Rect (6, 1) + +All elements are zero + +Matrix type: Rect (1, 7) + +All elements are zero + +Matrix type: Rect (80, 1) + +All elements are zero + +Matrix type: Rect (80, 1) + +All elements are zero + +Matrix type: Rect (1, 1) + +All elements are zero + +Matrix type: Rect (80, 1) + +All elements are zero + +Matrix type: Rect (80, 1) + +All elements are zero + +Matrix type: Rect (1, 4) + +All elements are zero + +Matrix type: Rect (8, 8) + +All elements are zero + +Matrix type: Rect (8, 8) + +All elements are zero + +Matrix type: Rect (8, 8) + +All elements are zero + +Matrix type: Rect (8, 1) + +All elements are zero + +Matrix type: Rect (7, 1) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (7, 2) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (7, 2) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (7, 2) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (7, 2) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (7, 2) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (7, 2) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (7, 2) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (7, 2) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (7, 2) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (7, 2) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (7, 2) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (7, 2) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (7, 2) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (7, 2) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Rect (7, 2) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Rect (7, 2) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Rect (7, 2) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Rect (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Rect (7, 2) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Sym (20, 20) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (10, 10) + +All elements are zero + +Matrix type: Rect (6, 6) + +All elements are zero + +Matrix type: Rect (9, 2) + +All elements are zero + +Matrix type: Rect (1, 1) + +All elements are zero + +Matrix type: Rect (20, 30) + +All elements are zero + +Matrix type: UT (25, 25) + +All elements are zero + +Matrix type: LT (25, 25) + +All elements are zero + +Matrix type: Diag (25, 25) + +All elements are zero + +Matrix type: Sym (25, 25) + +All elements are zero + +Matrix type: Diag (25, 25) + +All elements are zero + +Matrix type: Rect (10, 1) + +All elements are zero + +Matrix type: Rect (1, 10) + +All elements are zero + +Matrix type: Rect (5, 5) + +All elements are zero + +Matrix type: Diag (4, 4) + +All elements are zero + +Matrix type: Rect (4, 4) + +All elements are zero + +Matrix type: Rect (1, 2) + +All elements are zero + + * Eighteenth test of Matrix package + * Matrix test program + +Matrix type: Rect (23, 1) + +All elements are zero + +Matrix type: Rect (10, 20) + +All elements are zero + + * Nineteenth test of Matrix package + * Matrix test program + +Matrix type: Rect (13, 7) + +All elements are zero + +Matrix type: Rect (13, 7) + +All elements are zero + +Matrix type: Rect (13, 7) + +All elements are zero + +Matrix type: Rect (13, 7) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Diag (7, 7) + +All elements are zero + +Matrix type: Diag (7, 7) + +All elements are zero + +Matrix type: Diag (7, 7) + +All elements are zero + +Matrix type: Diag (7, 7) + +All elements are zero + +Matrix type: LT (7, 7) + +All elements are zero + +Matrix type: LT (7, 7) + +All elements are zero + +Matrix type: LT (7, 7) + +All elements are zero + +Matrix type: LT (7, 7) + +All elements are zero + +Matrix type: UT (25, 25) + +All elements are zero + +Matrix type: Rect (25, 25) + +All elements are zero + +Matrix type: Rect (25, 25) + +All elements are zero + +Matrix type: Rect (25, 25) + +All elements are zero + +Matrix type: Rect (25, 25) + +All elements are zero + +Matrix type: Rect (25, 25) + +All elements are zero + +Matrix type: Rect (25, 25) + +All elements are zero + +Matrix type: Rect (25, 25) + +All elements are zero + +Matrix type: Rect (25, 25) + +All elements are zero + +Matrix type: Rect (25, 25) + +All elements are zero + +Matrix type: Rect (25, 25) + +All elements are zero + +Matrix type: Rect (19, 19) + +All elements are zero + +Matrix type: Rect (19, 19) + +All elements are zero + +Matrix type: Rect (19, 19) + +All elements are zero + +Matrix type: Rect (19, 19) + +All elements are zero + +Matrix type: Rect (19, 19) + +All elements are zero + +Matrix type: Rect (19, 19) + +All elements are zero + +Matrix type: Rect (19, 19) + +All elements are zero + +Matrix type: Rect (19, 19) + +All elements are zero + +Matrix type: Rect (2, 1) + +All elements are zero + +Matrix type: Rect (19, 19) + +All elements are zero + +Matrix type: Rect (19, 19) + +All elements are zero + +Matrix type: Rect (19, 19) + +All elements are zero + +Matrix type: Rect (19, 19) + +All elements are zero + +Matrix type: Rect (19, 19) + +All elements are zero + +Matrix type: Rect (19, 19) + +All elements are zero + +Matrix type: Rect (19, 19) + +All elements are zero + +Matrix type: Rect (19, 19) + +All elements are zero + +Matrix type: Rect (2, 1) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + +Matrix type: Rect (7, 7) + +All elements are zero + + * Twentieth test of Matrix package + * Matrix test program +C subscripts not enabled, not tested + + + * Twenty first test of Matrix package + * Matrix test program + +Matrix type: Rect (1, 28) + +All elements are zero + + * Twenty second test of Matrix package + * Matrix test program + +Matrix type: Rect (8, 9) + +All elements are zero + +Matrix type: Diag (150, 150) + +All elements are zero + +Matrix type: UT (12, 12) + +All elements are zero + +Matrix type: Rect (12, 12) + +All elements are zero + +Matrix type: UT (12, 12) + +All elements are zero + +Matrix type: LT (12, 12) + +All elements are zero + +Matrix type: Rect (12, 12) + +All elements are zero + +Matrix type: UT (12, 12) + +All elements are zero + +Matrix type: LT (12, 12) + +All elements are zero + +Matrix type: Rect (24, 24) + +All elements are zero + +Matrix type: Rect (24, 24) + +All elements are zero + +Matrix type: Rect (24, 24) + +All elements are zero + +Matrix type: Rect (1, 4) + +All elements are zero + +Matrix type: UT (24, 24) + +All elements are zero + +Matrix type: LT (24, 24) + +All elements are zero + +Matrix type: Rect (12, 12) + +All elements are zero + +Matrix type: Rect (12, 12) + +All elements are zero + +Matrix type: Rect (12, 12) + +All elements are zero + +Matrix type: Rect (12, 12) + +All elements are zero + +Matrix type: Rect (12, 12) + +All elements are zero + +Matrix type: Rect (3, 3) + +All elements are zero + +Matrix type: Rect (1, 15) + +All elements are zero + +Matrix type: Rect (15, 1) + +All elements are zero + +Matrix type: Rect (15, 15) + +All elements are zero + +End of tests + +(The following memory checks are probably not valid with all +compilers - see documentation) + +Checking for lost memory: 8797116 8797116 - ok + +Checking for lost memory: 8797116 8797116 - ok + +Number of matrices tested = 1215 +Number of non-zero matrices (should be 1) = 1 diff --git a/3rdparty/newmat/tmt1.cpp b/3rdparty/newmat/tmt1.cpp new file mode 100644 index 0000000..4e69843 --- /dev/null +++ b/3rdparty/newmat/tmt1.cpp @@ -0,0 +1,207 @@ + +#define WANT_STREAM + + + +#include "include.h" + +#include "newmat.h" + +#include "tmt.h" + +#ifdef use_namespace +using namespace NEWMAT; +#endif + + +/**************************** test program ******************************/ + + +void trymat1() +{ +// cout << "\nFirst test of Matrix package\n\n"; + Tracer et("First test of Matrix package"); + Tracer::PrintTrace(); + { + Tracer et1("Stage 1"); + int i,j; + + LowerTriangularMatrix L(10); + for (i=1;i<=10;i++) for (j=1;j<=i;j++) L(i,j)=2.0+i*i+j; + SymmetricMatrix S(10); + for (i=1;i<=10;i++) for (j=1;j<=i;j++) S(i,j)=i*j+1.0; + SymmetricMatrix S1 = S / 2.0; + S = S1 * 2.0; + UpperTriangularMatrix U=L.t()*2.0; + Print(LowerTriangularMatrix(L-U.t()*0.5)); + DiagonalMatrix D(10); + for (i=1;i<=10;i++) D(i,i)=(i-4)*(i-5)*(i-6); + Matrix M=(S+U-D+L)*(L+U-D+S); + DiagonalMatrix DD=D*D; + LowerTriangularMatrix LD=L*D; + // expressions split for Turbo C + Matrix M1 = S*L + U*L - D*L + L*L + 10.0; + { M1 = M1 + S*U + U*U - D*U + L*U - S*D; } + { M1 = M1 - U*D + DD - LD + S*S; } + { M1 = M1 + U*S - D*S + L*S - 10.0; } + M=M1-M; + Print(M); + } + { + Tracer et1("Stage 2"); + int i,j; + + LowerTriangularMatrix L(9); + for (i=1;i<=9;i++) for (j=1;j<=i;j++) L(i,j)=1.0+j; + UpperTriangularMatrix U1(9); + for (j=1;j<=9;j++) for (i=1;i<=j;i++) U1(i,j)=1.0+i; + LowerTriangularMatrix LX(9); + for (i=1;i<=9;i++) for (j=1;j<=i;j++) LX(i,j)=1.0+i*i; + UpperTriangularMatrix UX(9); + for (j=1;j<=9;j++) for (i=1;i<=j;i++) UX(i,j)=1.0+j*j; + { + L=L+LX/0.5; L=L-LX*3.0; L=LX*2.0+L; + U1=U1+UX*2.0; U1=U1-UX*3.0; U1=UX*2.0+U1; + } + + + SymmetricMatrix S(9); + for (i=1;i<=9;i++) for (j=1;j<=i;j++) S(i,j)=i*i+j; + { + SymmetricMatrix S1 = S; + S=S1+5.0; + S=S-3.0; + } + + DiagonalMatrix D(9); + for (i=1;i<=9;i++) D(i,i)=S(i,i); + UpperTriangularMatrix U=L.t()*2.0; + { + U1=U1*2.0 - U; Print(U1); + L=L*2.0-D; U=U-D; + } + Matrix M=U+L; S=S*2.0; M=S-M; Print(M); + } + { + Tracer et1("Stage 3"); + int i,j; + Matrix M(10,3), N(10,3); + for (i = 1; i<=10; i++) for (j = 1; j<=3; j++) + { M(i,j) = 2*i-j; N(i,j) = i*j + 20; } + Matrix MN = M + N, M1; + + M1 = M; M1 += N; M1 -= MN; Print(M1); + M1 = M; M1 += M1; M1 = M1 - M * 2; Print(M1); + M1 = M; M1 += N * 2; M1 -= (MN + N); Print(M1); + M1 = M; M1 -= M1; Print(M1); + M1 = M; M1 -= MN + M1; M1 += N + M; Print(M1); + M1 = M; M1 -= 5; M1 -= M; M1 *= 0.2; M1 = M1 + 1; Print(M1); + Matrix NT = N.t(); + M1 = M; M1 *= NT; M1 -= M * N.t(); Print(M1); + M = M * M.t(); + DiagonalMatrix D(10); D = 2; + M1 = M; M1 += D; M1 -= M; M1 = M1 - D; Print(M1); + M1 = M; M1 -= D; M1 -= M; M1 = M1 + D; Print(M1); + M1 = M; M1 *= D; M1 /= 2; M1 -= M; Print(M1); + SymmetricMatrix SM; SM << M; + // UpperTriangularMatrix SM; SM << M; + SM += 10; M1 = SM - M; M1 /=10; M1 = M1 - 1; Print(M1); + } + { + Tracer et1("Stage 4"); + int i,j; + Matrix M(10,3), N(10,5); + for (i = 1; i<=10; i++) for (j = 1; j<=3; j++) M(i,j) = 2*i-j; + for (i = 1; i<=10; i++) for (j = 1; j<=5; j++) N(i,j) = i*j + 20; + Matrix M1; + M1 = M; M1 |= N; M1 &= N | M; + M1 -= (M | N) & (N | M); Print(M1); + M1 = M; M1 |= M1; M1 &= M1; + M1 -= (M | M) & (M | M); Print(M1); + + } + { + Tracer et1("Stage 5"); + int i,j; + BandMatrix BM1(10,2,3), BM2(10,4,1); Matrix M1(10,10), M2(10,10); + for (i=1;i<=10;i++) for (j=1;j<=10;j++) + { M1(i,j) = 0.5*i+j*j-50; M2(i,j) = (i*101 + j*103) % 13; } + BM1.Inject(M1); BM2.Inject(M2); + BandMatrix BM = BM1; BM += BM2; + Matrix M1X = BM1; Matrix M2X = BM2; Matrix MX = BM; + MX -= M1X + M2X; Print(MX); + MX = BM1; MX += BM2; MX -= M1X; MX -= M2X; Print(MX); + SymmetricBandMatrix SM1; SM1 << BM1 * BM1.t(); + SymmetricBandMatrix SM2; SM2 << BM2 * BM2.t(); + SM1 *= 5.5; + M1X *= M1X.t(); M1X *= 5.5; M2X *= M2X.t(); + SM1 -= SM2; M1 = SM1 - M1X + M2X; Print(M1); + M1 = BM1; BM1 *= SM1; M1 = M1 * SM1 - BM1; Print(M1); + M1 = BM1; BM1 -= SM1; M1 = M1 - SM1 - BM1; Print(M1); + M1 = BM1; BM1 += SM1; M1 = M1 + SM1 - BM1; Print(M1); + + } + { + Tracer et1("Stage 6"); + int i,j; + Matrix M(10,10), N(10,10); + for (i = 1; i<=10; i++) for (j = 1; j<=10; j++) + { M(i,j) = 2*i-j; N(i,j) = i*j + 20; } + GenericMatrix GM = M; + GM += N; Matrix M1 = GM - N - M; Print(M1); + DiagonalMatrix D(10); D = 3; + GM = D; GM += N; GM += M; GM += D; + M1 = D*2 - GM + M + N; Print(M1); + GM = D; GM *= 4; GM += 16; GM /= 8; GM -= 2; + GM -= D / 2; M1 = GM; Print(M1); + GM = D; GM *= M; GM *= N; GM /= 3; M1 = M*N - GM; Print(M1); + GM = D; GM |= M; GM &= N | D; M1 = GM - ((D | M) & (N | D)); + Print(M1); + GM = M; M1 = M; GM += 5; GM *= 3; M *= 3; M += 15; M1 = GM - M; + Print(M1); + D.ReSize(10); for (i = 1; i<=10; i++) D(i) = i; + M1 = D + 10; GM = D; GM += 10; M1 -= GM; Print(M1); + GM = M; GM -= D; M1 = GM; GM = D; GM -= M; M1 += GM; Print(M1); + GM = M; GM *= D; M1 = GM; GM = D; GM *= M.t(); + M1 -= GM.t(); Print(M1); + GM = M; GM += 2 * GM; GM -= 3 * M; M1 = GM; Print(M1); + GM = M; GM |= GM; GM -= (M | M); M1 = GM; Print(M1); + GM = M; GM &= GM; GM -= (M & M); M1 = GM; Print(M1); + M1 = M; M1 = (M1.t() & M.t()) - (M | M).t(); Print(M1); + M1 = M; M1 = (M1.t() | M.t()) - (M & M).t(); Print(M1); + + } + + { + Tracer et1("Stage 7"); + // test for bug in MS VC5 + int n = 3; + int k; int j; + Matrix A(n,n), B(n,n); + + //first version - MS VC++ 5 mis-compiles if optimisation is on + for (k=1; k<=n; k++) + { + for (j = 1; j <= n; j++) A(k,j) = ((k-1) * (2*j-1)); + } + + //second version + for (k=1; k<=n; k++) + { + const int k1 = k-1; // otherwise Visual C++ 5 fails + for (j = 1; j <= n; j++) B(k,j) = (k1 * (2*j-1)); + } + + if (A != B) + { + cout << "\nVisual C++ version 5 compiler error?"; + cout << "\nTurn off optimisation"; + } + + A -= B; Print(A); + + } + +// cout << "\nEnd of first test\n"; +} + diff --git a/3rdparty/newmat/tmt2.cpp b/3rdparty/newmat/tmt2.cpp new file mode 100644 index 0000000..eadb1ce --- /dev/null +++ b/3rdparty/newmat/tmt2.cpp @@ -0,0 +1,287 @@ + +//#define WANT_STREAM + + +#include "include.h" + +#include "newmat.h" + +#include "tmt.h" + +#ifdef use_namespace +using namespace NEWMAT; +#endif + + +/**************************** test program ******************************/ + + +void trymat2() +{ +// cout << "\nSecond test of Matrix package\n\n"; + Tracer et("Second test of Matrix package"); + Tracer::PrintTrace(); + + int i,j; + + Matrix M(3,5); + for (i=1; i<=3; i++) for (j=1; j<=5; j++) M(i,j) = 100*i + j; + Matrix X(8,10); + for (i=1; i<=8; i++) for (j=1; j<=10; j++) X(i,j) = 1000*i + 10*j; + Matrix Y = X; Matrix Z = X; + { X.SubMatrix(2,4,3,7) << M; } + for (i=1; i<=3; i++) for (j=1; j<=5; j++) Y(i+1,j+2) = 100*i + j; + Print(Matrix(X-Y)); + + + Real a[15]; Real* r = a; + for (i=1; i<=3; i++) for (j=1; j<=5; j++) *r++ = 100*i + j; + { Z.SubMatrix(2,4,3,7) << a; } + Print(Matrix(Z-Y)); + + { M=33; X.SubMatrix(2,4,3,7) << M; } + { Z.SubMatrix(2,4,3,7) = 33; } + Print(Matrix(Z-X)); + + for (i=1; i<=8; i++) for (j=1; j<=10; j++) X(i,j) = 1000*i + 10*j; + Y = X; + UpperTriangularMatrix U(5); + for (i=1; i<=5; i++) for (j=i; j<=5; j++) U(i,j) = 100*i + j; + { X.SubMatrix(3,7,5,9) << U; } + for (i=1; i<=5; i++) for (j=i; j<=5; j++) Y(i+2,j+4) = 100*i + j; + for (i=1; i<=5; i++) for (j=1; jReSize(10,20); + for (i = 1; i <= 10; i++) for (j = 1; j <= 20; j++) + (*MX)(i,j) = 100 * i + j; + ColumnVector* CV = new ColumnVector(10); + if (!CV) Throw(Bad_alloc("New fails ")); + *CV << 1 << 2 << 3 << 4 << 5 << 6 << 7 << 8 << 9 << 10; + RowVector* RV = new RowVector(CV->t() | (*CV + 10).t()); + if (!RV) Throw(Bad_alloc("New fails ")); + CV1 = ColumnVector(10); CV1 = 1; RV1 = RowVector(20); RV1 = 1; + *MX -= 100 * *CV * RV1 + CV1 * *RV; + Print(*MX); + delete MX; delete CV; delete RV; + } + + + // test copying of vectors and matrices with no elements + { + ColumnVector dims(16); + Matrix M1; Matrix M2 = M1; Print(M2); + dims(1) = M2.Nrows(); dims(2) = M2.Ncols(); + dims(3) = (Real)(unsigned long)M2.Store(); dims(4) = M2.Storage(); + M2 = M1; + dims(5) = M2.Nrows(); dims(6) = M2.Ncols(); + dims(7) = (Real)(unsigned long)M2.Store(); dims(8) = M2.Storage(); + M2.ReSize(10,20); M2.CleanUp(); + dims(9) = M2.Nrows(); dims(10) = M2.Ncols(); + dims(11) = (Real)(unsigned long)M2.Store(); dims(12) = M2.Storage(); + M2.ReSize(20,10); M2.ReSize(0,0); + dims(13) = M2.Nrows(); dims(14) = M2.Ncols(); + dims(15) = (Real)(unsigned long)M2.Store(); dims(16) = M2.Storage(); + Print(dims); + } + + { + ColumnVector dims(16); + ColumnVector M1; ColumnVector M2 = M1; Print(M2); + dims(1) = M2.Nrows(); dims(2) = M2.Ncols()-1; + dims(3) = (Real)(unsigned long)M2.Store(); dims(4) = M2.Storage(); + M2 = M1; + dims(5) = M2.Nrows(); dims(6) = M2.Ncols()-1; + dims(7) = (Real)(unsigned long)M2.Store(); dims(8) = M2.Storage(); + M2.ReSize(10); M2.CleanUp(); + dims(9) = M2.Nrows(); dims(10) = M2.Ncols()-1; + dims(11) = (Real)(unsigned long)M2.Store(); dims(12) = M2.Storage(); + M2.ReSize(10); M2.ReSize(0); + dims(13) = M2.Nrows(); dims(14) = M2.Ncols()-1; + dims(15) = (Real)(unsigned long)M2.Store(); dims(16) = M2.Storage(); + Print(dims); + } + + { + ColumnVector dims(16); + RowVector M1; RowVector M2 = M1; Print(M2); + dims(1) = M2.Nrows()-1; dims(2) = M2.Ncols(); + dims(3) = (Real)(unsigned long)M2.Store(); dims(4) = M2.Storage(); + M2 = M1; + dims(5) = M2.Nrows()-1; dims(6) = M2.Ncols(); + dims(7) = (Real)(unsigned long)M2.Store(); dims(8) = M2.Storage(); + M2.ReSize(10); M2.CleanUp(); + dims(9) = M2.Nrows()-1; dims(10) = M2.Ncols(); + dims(11) = (Real)(unsigned long)M2.Store(); dims(12) = M2.Storage(); + M2.ReSize(10); M2.ReSize(0); + dims(13) = M2.Nrows()-1; dims(14) = M2.Ncols(); + dims(15) = (Real)(unsigned long)M2.Store(); dims(16) = M2.Storage(); + Print(dims); + } + + // test identity matrix + { + Matrix M; + IdentityMatrix I(10); DiagonalMatrix D(10); D = 1; + M = I; M -= D; Print(M); + D -= I; Print(D); + ColumnVector X(8); + D = 1; + X(1) = Sum(D) - Sum(I); + X(2) = SumAbsoluteValue(D) - SumAbsoluteValue(I); + X(3) = SumSquare(D) - SumSquare(I); + X(4) = Trace(D) - Trace(I); + X(5) = Maximum(D) - Maximum(I); + X(6) = Minimum(D) - Minimum(I); + X(7) = LogDeterminant(D).LogValue() - LogDeterminant(I).LogValue(); + X(8) = LogDeterminant(D).Sign() - LogDeterminant(I).Sign(); + Clean(X,0.00000001); Print(X); + + for (i = 1; i <= 10; i++) for (j = 1; j <= 10; j++) + M(i,j) = 100 * i + j; + Matrix N; + N = M * I - M; Print(N); + N = I * M - M; Print(N); + N = M * I.i() - M; Print(N); + N = I.i() * M - M; Print(N); + N = I.i(); N -= I; Print(N); + N = I.t(); N -= I; Print(N); + N = I.t(); N += (-I); Print(N); // <---------------- + D = I; N = D; D = 1; N -= D; Print(N); + N = I; D = 1; N -= D; Print(N); + N = M + 2 * IdentityMatrix(10); N -= (M + 2 * D); Print(N); + + I *= 4; + + D = 4; + + X.ReSize(14); + X(1) = Sum(D) - Sum(I); + X(2) = SumAbsoluteValue(D) - SumAbsoluteValue(I); + X(3) = SumSquare(D) - SumSquare(I); + X(4) = Trace(D) - Trace(I); + X(5) = Maximum(D) - Maximum(I); + X(6) = Minimum(D) - Minimum(I); + X(7) = LogDeterminant(D).LogValue() - LogDeterminant(I).LogValue(); // <-- + X(8) = LogDeterminant(D).Sign() - LogDeterminant(I).Sign(); + int i,j; + X(9) = I.Maximum1(i) - 4; X(10) = i-1; + X(11) = I.Maximum2(i,j) - 4; X(12) = i-10; X(13) = j-10; + X(14) = I.Nrows() - 10; + Clean(X,0.00000001); Print(X); + + + N = D.i(); + N += I / (-16); + Print(N); + N = M * I - 4 * M; Print(N); + N = I * M - 4 * M; Print(N); + N = M * I.i() - 0.25 * M; Print(N); + N = I.i() * M - 0.25 * M; Print(N); + N = I.i(); N -= I * 0.0625; Print(N); + N = I.i(); N = N - 0.0625 * I; Print(N); + N = I.t(); N -= I; Print(N); + D = I * 2; N = D; D = 1; N -= 8 * D; Print(N); + N = I * 2; N -= 8 * D; Print(N); + N = 0.5 * I + M; N -= M; N -= 2.0 * D; Print(N); + + IdentityMatrix J(10); J = 8; + D = 4; + DiagonalMatrix E(10); E = 8; + N = (I + J) - (D + E); Print(N); + N = (5*I + 3*J) - (5*D + 3*E); Print(N); + N = (-I + J) - (-D + E); Print(N); + N = (I - J) - (D - E); Print(N); + N = (I | J) - (D | E); Print(N); + N = (I & J) - (D & E); Print(N); + N = SP(I,J) - SP(D,E); Print(N); + N = D.SubMatrix(2,5,3,8) - I.SubMatrix(2,5,3,8); Print(N); + + N = M; N.Inject(I); D << M; N -= (M + I); N += D; Print(N); + D = 4; + + IdentityMatrix K = I.i()*7 - J.t()/4; + N = D.i() * 7 - E / 4 - K; Print(N); + K = I * J; N = K - D * E; Print(N); + N = I * J; N -= D * E; Print(N); + K = 5*I - 3*J; + N = K - (5*D - 3*E); Print(N); + K = I.i(); N = K - 0.0625 * I; Print(N); + K = I.t(); N = K - I; Print(N); + + + K.ReSize(20); D.ReSize(20); D = 1; + D -= K; Print(D); + + I.ReSize(3); J.ReSize(3); K = I * J; N = K - I; Print(N); + K << D; N = K - D; Print(N); + + + } + + +// cout << "\nEnd of second test\n"; +} diff --git a/3rdparty/newmat/tmt3.cpp b/3rdparty/newmat/tmt3.cpp new file mode 100644 index 0000000..86b1475 --- /dev/null +++ b/3rdparty/newmat/tmt3.cpp @@ -0,0 +1,160 @@ + +//#define WANT_STREAM + +#include "include.h" + +#include "newmat.h" + +#include "tmt.h" + +#ifdef use_namespace +using namespace NEWMAT; +#endif + + +/**************************** test program ******************************/ + +void trymat3() +{ + Tracer et("Third test of Matrix package"); + Tracer::PrintTrace(); + + { + Tracer et1("Stage 1"); + int i,j; + SymmetricMatrix S(7); + for (i=1;i<=7;i++) for (j=1;j<=i;j++) S(i,j)=i*i+j; + S=-S+2.0; + + DiagonalMatrix D(7); + for (i=1;i<=7;i++) D(i,i)=S(i,i); + + Matrix M4(7,7); { M4=D+(D+4.0); M4=M4-D*2.0; M4=M4-4.0; Print(M4); } + SymmetricMatrix S2=D; Matrix M2=S2; { M2=-D+M2; Print(M2); } + UpperTriangularMatrix U2=D; { M2=U2; M2=D-M2; Print(M2); } + LowerTriangularMatrix L2=D; { M2=L2; M2=D-M2; Print(M2); } + M2=D; M2=M2-D; Print(M2); + for (i=1;i<=7;i++) for (j=1;j<=i;j++) L2(i,j)=2.0-i*i-j; + U2=L2.t(); D=D.t(); S=S.t(); + M4=(L2-1.0)+(U2+1.0)-D-S; Print(M4); + M4=(-L2+1.0)+(-U2-1.0)+D+S; Print(M4); + } + + { + Tracer et1("Stage 2"); + int i,j; + DiagonalMatrix D(6); + for (i=1;i<=6;i++) D(i,i)=i*3.0+i*i+2.0; + UpperTriangularMatrix U2(7); LowerTriangularMatrix L2(7); + for (i=1;i<=7;i++) for (j=1;j<=i;j++) L2(i,j)=2.0-i*i+j; + { U2=L2.t(); } + DiagonalMatrix D1(7); for (i=1;i<=7;i++) D1(i,i)=(i-2)*(i-4); + Matrix M2(6,7); + for (i=1;i<=6;i++) for (j=1;j<=7;j++) M2(i,j)=2.0+i*j+i*i+2.0*j*j; + Matrix MD=D; SymmetricMatrix MD1(1); MD1=D1; + Matrix MX=MD*M2*MD1 - D*(M2*D1); Print(MX); + MX=MD*M2*MD1 - (D*M2)*D1; Print(MX); + { + D.ReSize(7); for (i=1;i<=7;i++) D(i,i)=i*3.0+i*i+2.0; + LowerTriangularMatrix LD(1); LD=D; + UpperTriangularMatrix UD(1); UD=D; + M2=U2; M2=LD*M2*MD1 - D*(U2*D1); Print(M2); + M2=U2; M2=UD*M2*MD1 - (D*U2)*D1; Print(M2); + M2=L2; M2=LD*M2*MD1 - D*(L2*D1); Print(M2); + M2=L2; M2=UD*M2*MD1 - (D*L2)*D1; Print(M2); + } + } + + { + Tracer et1("Stage 3"); + // test inverse * scalar + DiagonalMatrix D(6); + for (int i=1;i<=6;i++) D(i)=i*i; + DiagonalMatrix E = D.i() * 4.0; + DiagonalMatrix I(6); I = 1.0; + E=D*E-I*4.0; Print(E); + E = D.i() / 0.25; E=D*E-I*4.0; Print(E); + } + { + Tracer et1("Stage 4"); + Matrix sigma(3,3); Matrix sigmaI(3,3); + sigma = 0; sigma(1,1) = 1.0; sigma(2,2) = 1.0; sigma(3,3) = 1.0; + sigmaI = sigma.i(); + sigmaI -= sigma; Clean(sigmaI, 0.000000001); Print(sigmaI); + } + { + Tracer et1("Stage 5"); + Matrix X(5,5); DiagonalMatrix DM(5); + for (int i=1; i<=5; i++) for (int j=1; j<=5; j++) + X(i,j) = (23*i+59*j) % 43; + DM << 1 << 8 << -7 << 2 << 3; + Matrix Y = X.i() * DM; Y = X * Y - DM; + Clean(Y, 0.000000001); Print(Y); + } + { + Tracer et1("Stage 6"); // test reverse function + ColumnVector CV(10), RCV(10); + CV << 2 << 7 << 1 << 6 << -3 << 1 << 8 << -4 << 0 << 17; + RCV << 17 << 0 << -4 << 8 << 1 << -3 << 6 << 1 << 7 << 2; + ColumnVector X = CV - RCV.Reverse(); Print(X); + RowVector Y = CV.t() - RCV.t().Reverse(); Print(Y); + DiagonalMatrix D = CV.AsDiagonal() - RCV.AsDiagonal().Reverse(); + Print(D); + X = CV & CV.Rows(1,9).Reverse(); + ColumnVector Z(19); + Z.Rows(1,10) = RCV.Reverse(); Z.Rows(11,19) = RCV.Rows(2,10); + X -= Z; Print(X); Z -= Z.Reverse(); Print(Z); + Matrix A(3,3); A << 1 << 2 << 3 << 4 << 5 << 6 << 7 << 8 << 9; + Matrix B(3,3); B << 9 << 8 << 7 << 6 << 5 << 4 << 3 << 2 << 1; + Matrix Diff = A - B.Reverse(); Print(Diff); + Diff = (-A).Reverse() + B; Print(Diff); + UpperTriangularMatrix U; + U << A.Reverse(); Diff = U; U << B; Diff -= U; Print(Diff); + U << (-A).Reverse(); Diff = U; U << B; Diff += U; Print(Diff); + } + { + Tracer et1("Stage 7"); // test IsSingular function + ColumnVector XX(4); + Matrix A(3,3); + A = 0; + CroutMatrix B1 = A; + XX(1) = B1.IsSingular() ? 0 : 1; + A << 1 << 3 << 6 + << 7 << 11 << 13 + << 2 << 4 << 1; + CroutMatrix B2(A); + XX(2) = B2.IsSingular() ? 1 : 0; + BandMatrix C(3,1,1); C.Inject(A); + BandLUMatrix B3(C); + XX(3) = B3.IsSingular() ? 1 : 0; + C = 0; + BandLUMatrix B4(C); + XX(4) = B4.IsSingular() ? 0 : 1; + Print(XX); + } + { + Tracer et1("Stage 8"); // inverse with vector of 0s + Matrix A(3,3); Matrix Z(3,3); ColumnVector X(6); + A << 1 << 3 << 6 + << 7 << 11 << 13 + << 2 << 4 << 1; + Z = 0; + Matrix B = (A | Z) & (Z | A); // 6 * 6 matrix + X = 0.0; + X = B.i() * X; + Print(X); + // also check inverse with non-zero Y + Matrix Y(3,3); + Y << 0.0 << 1.0 << 1.0 + << 5.0 << 0.0 << 5.0 + << 3.0 << 3.0 << 0.0; + Matrix YY = Y & Y; // stack Y matrices + YY = B.i() * YY; + Matrix Y1 = A.i() * Y; + YY -= Y1 & Y1; Clean(YY, 0.000000001); Print(YY); + Y1 = A * Y1 - Y; Clean(Y1, 0.000000001); Print(Y1); + } + + +} + diff --git a/3rdparty/newmat/tmt4.cpp b/3rdparty/newmat/tmt4.cpp new file mode 100644 index 0000000..27a18dc --- /dev/null +++ b/3rdparty/newmat/tmt4.cpp @@ -0,0 +1,155 @@ + +//#define WANT_STREAM + + +#include "include.h" + +#include "newmat.h" + +#include "tmt.h" + +#ifdef use_namespace +using namespace NEWMAT; +#endif + + +/**************************** test program ******************************/ + + +void trymat4() +{ +// cout << "\nFourth test of Matrix package\n"; + Tracer et("Fourth test of Matrix package"); + Tracer::PrintTrace(); + + int i,j; + + { + Tracer et1("Stage 1"); + Matrix M(10,10); + UpperTriangularMatrix U(10); + for (i=1;i<=10;i++) for (j=1;j<=10;j++) M(i,j) = 100*i+j; + U << -M; + Matrix X1 = M.Rows(2,4); + Matrix Y1 = U.t().Rows(2,4); + Matrix X = U; { Print(Matrix(X.Columns(2,4).t()-Y1)); } + RowVector RV = M.Row(5); + { + X.ReSize(3,10); + X.Row(1) << M.Row(2); X.Row(2) << M.Row(3); X.Row(3) << M.Row(4); + Print(Matrix(X-X1)); + } + { + UpperTriangularMatrix V = U.SymSubMatrix(3,5); + Matrix MV = U.SubMatrix(3,5,3,5); { Print(Matrix(MV-V)); } + Matrix X2 = M.t().Columns(2,4); { Print(Matrix(X2-X1.t())); } + Matrix Y2 = U.Columns(2,4); { Print(Matrix(Y2-Y1.t())); } + ColumnVector CV = M.t().Column(5); { Print(ColumnVector(CV-RV.t())); } + X.ReSize(10,3); M = M.t(); + X.Column(1) << M.Column(2); X.Column(2) << M.Column(3); + X.Column(3) << M.Column(4); + Print(Matrix(X-X2)); + } + } + + { + Tracer et1("Stage 2"); + Matrix M; Matrix X; M.ReSize(5,8); + for (i=1;i<=5;i++) for (j=1;j<=8;j++) M(i,j) = 100*i+j; + { + X = M.Columns(5,8); M.Columns(5,8) << M.Columns(1,4); + M.Columns(1,4) << X; + X = M.Columns(3,4); M.Columns(3,4) << M.Columns(1,2); + M.Columns(1,2) << X; + X = M.Columns(7,8); M.Columns(7,8) << M.Columns(5,6); + M.Columns(5,6) << X; + } + { + X = M.Column(2); M.Column(2) = M.Column(1); M.Column(1) = X; + X = M.Column(4); M.Column(4) = M.Column(3); M.Column(3) = X; + X = M.Column(6); M.Column(6) = M.Column(5); M.Column(5) = X; + X = M.Column(8); M.Column(8) = M.Column(7); M.Column(7) = X; + X.ReSize(5,8); + } + for (i=1;i<=5;i++) for (j=1;j<=8;j++) X(i,9-j) = 100*i+j; + Print(Matrix(X-M)); + } + { + Tracer et1("Stage 3"); + // try submatrices of zero dimension + Matrix A(4,5); Matrix B, C; + for (i=1; i<=4; i++) for (j=1; j<=5; j++) + A(i,j) = 100+i*10+j; + B = A + 100; + C = A | B.Columns(4,3); Print(Matrix(A - C)); + C = A | B.Columns(1,0); Print(Matrix(A - C)); + C = A | B.Columns(6,5); Print(Matrix(A - C)); + C = A & B.Rows(2,1); Print(Matrix(A - C)); + } + { + Tracer et1("Stage 4"); + BandMatrix BM(5,3,2); + BM(1,1) = 1; BM(1,2) = 2; BM(1,3) = 3; + BM(2,1) = 4; BM(2,2) = 5; BM(2,3) = 6; BM(2,4) = 7; + BM(3,1) = 8; BM(3,2) = 9; BM(3,3) =10; BM(3,4) =11; BM(3,5) =12; + BM(4,1) =13; BM(4,2) =14; BM(4,3) =15; BM(4,4) =16; BM(4,5) =17; + BM(5,2) =18; BM(5,3) =19; BM(5,4) =20; BM(5,5) =21; + SymmetricBandMatrix SM(5,3); + SM.Inject(BandMatrix(BM + BM.t())); + Matrix A = BM + 1; + Matrix M = A + A.t() - 2; + Matrix C = A.i() * BM; + C = A * C - BM; Clean(C, 0.000000001); Print(C); + C = A.i() * SM; + C = A * C - M; Clean(C, 0.000000001); Print(C); + + // check row-wise load + BandMatrix BM1(5,3,2); + BM1.Row(1) << 1 << 2 << 3; + BM1.Row(2) << 4 << 5 << 6 << 7; + BM1.Row(3) << 8 << 9 << 10 << 11 << 12; + BM1.Row(4) << 13 << 14 << 15 << 16 << 17; + BM1.Row(5) << 18 << 19 << 20 << 21; + Matrix M1 = BM1 - BM; Print(M1); + } + { + Tracer et1("Stage 5"); + Matrix X(4,4); + X << 1 << 2 << 3 << 4 + << 5 << 6 << 7 << 8 + << 9 <<10 <<11 <<12 + <<13 <<14 <<15 <<16; + Matrix Y(4,0); + Y = X | Y; + X -= Y; Print(X); + + DiagonalMatrix D(1); + D << 23; // matrix input with just one value + D(1) -= 23; Print(D); + + } + { + Tracer et1("Stage 6"); + Matrix h (2,2); + h << 1.0 << 2.0 << 0.0 << 1.0 ; + RowVector c(2); + c << 0.0 << 1.0; + h -= c & c; + h -= c.t().Reverse() | c.Reverse().t(); + Print(h); + } + { + Tracer et1("Stage 7"); + // Check row-wise input for diagonal matrix + DiagonalMatrix D(4); + D << 18 << 23 << 31 << 17; + DiagonalMatrix D1(4); + D1.Row(1) << 18; D1.Row(2) << 23; D1.Row(3) << 31; D1.Row(4) << 17; + D1 -= D; Print(D1); + D1(1) = 18; D1(2) = 23; D1(3) = 31; D1(4) = 17; + D1 -= D; Print(D1); + } + +// cout << "\nEnd of fourth test\n"; +} + diff --git a/3rdparty/newmat/tmt5.cpp b/3rdparty/newmat/tmt5.cpp new file mode 100644 index 0000000..6a293e0 --- /dev/null +++ b/3rdparty/newmat/tmt5.cpp @@ -0,0 +1,125 @@ + +//#define WANT_STREAM + +#include "include.h" + +#include "newmat.h" + +#include "tmt.h" + +#ifdef use_namespace +using namespace NEWMAT; +#endif + + +// **************************** test program ****************************** + + + +ReturnMatrix Returner0(const GenericMatrix& GM) +{ Matrix M = GM; M.Release(); return M; } + +ReturnMatrix Returner1(const GenericMatrix& GM) +{ Matrix M = GM+1; M.Release(); return M; } + +ReturnMatrix Returner2(const GenericMatrix& GM) +{ UpperBandMatrix M = GM*2; M.Release(); return M; } + +ReturnMatrix Returner3(const GenericMatrix& GM) +{ LowerBandMatrix M = GM*3; M.Release(); return M; } + +ReturnMatrix Returner4(const GenericMatrix& GM) +{ SymmetricMatrix M = GM+4; M.Release(); return M; } + +ReturnMatrix Returner5(const GenericMatrix& GM) +{ SymmetricBandMatrix M = GM*5; M.Release(); return M; } + +ReturnMatrix Returner6(const GenericMatrix& GM) +{ BandMatrix M = GM*6; M.Release(); return M; } + +ReturnMatrix Returner7(const GenericMatrix& GM) +{ DiagonalMatrix M = GM*7; M.Release(); return M; } + +void trymat5() +{ +// cout << "\nFifth test of Matrix package\n"; + Tracer et("Fifth test of Matrix package"); + Tracer::PrintTrace(); + + int i,j; + + Matrix A(5,6); + for (i=1;i<=5;i++) for (j=1;j<=6;j++) A(i,j)=1+i*j+i*i+j*j; + ColumnVector CV(6); + for (i=1;i<=6;i++) CV(i)=i*i+3; + ColumnVector CV2(5); for (i=1;i<=5;i++) CV2(i)=1.0; + ColumnVector CV1=CV; + + { + CV=A*CV; + RowVector RV=CV.t(); // RowVector RV; RV=CV.t(); + RV=RV-1.0; + CV=(RV*A).t()+A.t()*CV2; CV1=(A.t()*A)*CV1 - CV; + Print(CV1); + } + + CV1.ReSize(6); + CV2.ReSize(6); + CV.ReSize(6); + for (i=1;i<=6;i++) { CV1(i)=i*3+1; CV2(i)=10-i; CV(i)=11+i*2; } + ColumnVector CX=CV2-CV; { CX=CX+CV1; Print(CX); } + Print(ColumnVector(CV1+CV2-CV)); + RowVector RV=CV.t(); RowVector RV1=CV1.t(); + RowVector R=RV-RV1; Print(RowVector(R-CV2.t())); + +// test loading of list + + RV.ReSize(10); + for (i=1;i<=10;i++) RV(i) = i*i; + RV1.ReSize(10); + RV1 << 1 << 4 << 9 << 16 << 25 << 36 << 49 << 64 << 81 << 100; // << 121; + Print(RowVector(RV-RV1)); + + et.ReName("Fifth test of Matrix package - almost at end"); + + Matrix X(2,3); + X << 11 << 12 << 13 + << 21 << 22 << 23; + + Matrix Y = X.t(); // check simple transpose + + X(1,1) -= 11; X(1,2) -= 12; X(1,3) -= 13; + X(2,1) -= 21; X(2,2) -= 22; X(2,3) -= 23; + Print(X); + + Y(1,1) -= 11; Y(2,1) -= 12; Y(3,1) -= 13; + Y(1,2) -= 21; Y(2,2) -= 22; Y(3,2) -= 23; + Print(Y); + + et.ReName("Fifth test of Matrix package - at end"); + + RV = Returner1(RV)-1; Print(RowVector(RV-RV1)); + CV1 = Returner1(RV.t())-1; Print(ColumnVector(RV.t()-CV1)); +#ifndef DONT_DO_NRIC + nricMatrix AA = A; + X = Returner1(AA)-A-1; Print(X); +#endif + UpperTriangularMatrix UT(31); + for (i=1; i<=31; i++) for (j=i; j<=31; j++) UT(i,j) = i+j+(i-j)*(i-2*j); + UpperBandMatrix UB(31,5); UB.Inject(UT); + LowerTriangularMatrix LT = UT.t(); + LowerBandMatrix LB(31,5); LB.Inject(LT); + A = Returner0(UB)-LB.t(); Print(A); + A = Returner2(UB).t()-LB*2; Print(A); + A = Returner3(LB).t()-UB*3; Print(A); + SymmetricMatrix SM; SM << (UT+LT); + A = Returner4(SM)-UT-LT-4; Print(A); + SymmetricBandMatrix SB(31,5); SB.Inject(SM); + A = Returner5(SB)/5-UB-LB; Print(A); + BandMatrix B = UB+LB*LB; A = LB; + A = Returner6(B)/6 - UB - A*A; Print(A); + DiagonalMatrix D; D << UT; + D << (Returner7(D)/7 - UT); Print(D); + +// cout << "\nEnd of fifth test\n"; +} diff --git a/3rdparty/newmat/tmt6.cpp b/3rdparty/newmat/tmt6.cpp new file mode 100644 index 0000000..aa4c9f7 --- /dev/null +++ b/3rdparty/newmat/tmt6.cpp @@ -0,0 +1,155 @@ + +//#define WANT_STREAM +#define WANT_MATH + + +#include "include.h" + +#include "newmatap.h" + +#include "tmt.h" + +#ifdef use_namespace +using namespace NEWMAT; +#endif + + +/**************************** test program ******************************/ + + +// slow sort program + +static void SimpleSortDescending(Real* first, const int length) +{ + int i = length; + while (--i) + { + Real x = *first; Real* f = first; Real* g = f; + int j = i; + while (j--) if (x < *(++f)) { g = f; x = *g; } + *g = *first; *first++ = x; + } +} + +static void TestSort(int n) +{ + // make some data + RowVector X(n); + int i; + for (i = 1; i <= n; i++) + X(i) = sin((Real)i) + 0.3 * cos(i/5.0) - 0.6 * sin(i/7.0) + 0.2 * sin(2.0 * i); + RowVector X_Sorted = X; SimpleSortDescending(X_Sorted.Store(), n); + RowVector A = X + X.Reverse(); SimpleSortDescending(A.Store(), n); + + // test descending sort + + RowVector Y = X; SortDescending(Y); Y -= X_Sorted; Print(Y); + Y = X_Sorted; SortDescending(Y); Y -= X_Sorted; Print(Y); + Y = X_Sorted.Reverse(); SortDescending(Y); Y -= X_Sorted; Print(Y); + Y = X + X.Reverse(); SortDescending(Y); Y -= A; Print(Y); + + // test ascending sort + + Y = X; SortAscending(Y); Y -= X_Sorted.Reverse(); Print(Y); + Y = X_Sorted; SortAscending(Y); Y -= X_Sorted.Reverse(); Print(Y); + Y = X_Sorted.Reverse(); SortAscending(Y); Y -= X_Sorted.Reverse(); Print(Y); + Y = X + X.Reverse(); SortAscending(Y); Y -= A.Reverse(); Print(Y); +} + + +void trymat6() +{ + Tracer et("Sixth test of Matrix package"); + Tracer::PrintTrace(); + + int i,j; + + + DiagonalMatrix D(6); + UpperTriangularMatrix U(6); + for (i=1;i<=6;i++) { for (j=i;j<=6;j++) U(i,j)=i*i*i-50; D(i,i)=i*i+i-10; } + LowerTriangularMatrix L=(U*3.0).t(); + SymmetricMatrix S(6); + for (i=1;i<=6;i++) for (j=i;j<=6;j++) S(i,j)=i*i+2.0+j; + Matrix MD=D; Matrix ML=L; Matrix MU=U; Matrix MS=S; + Matrix M(6,6); + for (i=1;i<=6;i++) for (j=1;j<=6;j++) M(i,j)=i*j+i*i-10.0; + { + Tracer et1("Stage 1"); + Print(Matrix(MS+(-MS))); + Print(Matrix((S+M)-(MS+M))); + Print(Matrix((M+U)-(M+MU))); + Print(Matrix((M+L)-(M+ML))); + } + { + Tracer et1("Stage 2"); + Print(Matrix((M+D)-(M+MD))); + Print(Matrix((U+D)-(MU+MD))); + Print(Matrix((D+L)-(ML+MD))); + Print(Matrix((-U+D)+MU-MD)); + Print(Matrix((-L+D)+ML-MD)); + } + { + Tracer et1("Stage 3 - concatenate"); + RowVector A(5); + A << 1 << 2 << 3 << 4 << 5; + RowVector B(5); + B << 3 << 1 << 4 << 1 << 5; + Matrix C(3,5); + C << 2 << 3 << 5 << 7 << 11 + << 13 << 17 << 19 << 23 << 29 + << 31 << 37 << 41 << 43 << 47; + Matrix X1 = A & B & C; + Matrix X2 = (A.t() | B.t() | C.t()).t(); + Matrix X3(5,5); + X3.Row(1)=A; X3.Row(2)=B; X3.Rows(3,5)=C; + Print(Matrix(X1-X2)); + Print(Matrix(X1-X3)); + LowerTriangularMatrix LT1; LT1 << (A & B & C); + UpperTriangularMatrix UT1; UT1 << (A.t() | B.t() | C.t()); + Print(LowerTriangularMatrix(LT1-UT1.t())); + DiagonalMatrix D1; D1 << (A.t() | B.t() | C.t()); + ColumnVector At = A.t(); + ColumnVector Bt = B.t(); + Matrix Ct = C.t(); + LowerTriangularMatrix LT2; LT2 << (At | Bt | Ct); + UpperTriangularMatrix UT2; UT2 << (At.t() & Bt.t() & Ct.t()); + Matrix ABt = At | Bt; + DiagonalMatrix D2; D2 << (ABt | Ct); + Print(LowerTriangularMatrix(LT2-UT2.t())); + Print(DiagonalMatrix(D1-D2)); + Print(Matrix(LT1+UT2-D2-X1)); + Matrix M1 = LT1 | UT2; Matrix M2 = UT1 & LT2; + Print(Matrix(M1-M2.t())); + M1 = UT2 | LT1; M2 = LT2 & UT1; + Print(Matrix(M1-M2.t())); + M1 = (LT1 | UT2) & (UT2 | LT1); + M2 = (UT1 & LT2) | (LT2 & UT1); + Print(Matrix(M1-M2.t())); + SymmetricMatrix SM1; SM1 << (M1 + M1.t()); + SymmetricMatrix SM2; SM2 << ((SM1 | M1) & (M1.t() | SM1)); + Matrix M3(20,20); + M3.SubMatrix(1,10,1,10) = SM1; + M3.SubMatrix(1,10,11,20) = M1; + M3.SubMatrix(11,20,1,10) = M2; + M3.SubMatrix(11,20,11,20) = SM1; + Print(Matrix(M3-SM2)); + + SymmetricMatrix SM(15); SM = 0; SM.SymSubMatrix(1,10) = SM1; + M3.ReSize(15,15); M3 = 0; M3.SubMatrix(1,10,1,10) = SM1; + M3 -= SM; Print(M3); + SM = 0; SM.SymSubMatrix(6,15) = SM1; + M3.ReSize(15,15); M3 = 0; M3.SubMatrix(6,15,6,15) = SM1; + M3 = M3.t() - SM; Print(M3); + } + { + Tracer et1("Stage 4 - sort"); + TestSort(1); TestSort(2); TestSort(3); TestSort(4); + TestSort(15); TestSort(16); TestSort(17); TestSort(18); + TestSort(99); TestSort(100); TestSort(101); + } + + +// cout << "\nEnd of sixth test\n"; +} + diff --git a/3rdparty/newmat/tmt7.cpp b/3rdparty/newmat/tmt7.cpp new file mode 100644 index 0000000..39f4cfb --- /dev/null +++ b/3rdparty/newmat/tmt7.cpp @@ -0,0 +1,132 @@ + +//#define WANT_STREAM + +#include "include.h" + +#include "newmat.h" + +#include "tmt.h" + +#ifdef use_namespace +using namespace NEWMAT; +#endif + + +/**************************** test program ******************************/ + + +void trymat7() +{ +// cout << "\nSeventh test of Matrix package\n"; + Tracer et("Seventh test of Matrix package"); + Tracer::PrintTrace(); + + int i,j; + + + DiagonalMatrix D(6); + UpperTriangularMatrix U(6); + for (i=1;i<=6;i++) { for (j=i;j<=6;j++) U(i,j)=i*i*j-50; D(i,i)=i*i+i-10; } + LowerTriangularMatrix L=(U*3.0).t(); + SymmetricMatrix S(6); + for (i=1;i<=6;i++) for (j=i;j<=6;j++) S(i,j)=i*i+2.0+j; + Matrix MD=D; Matrix ML=L; Matrix MU=U; + Matrix MS=S; + Matrix M(6,6); + for (i=1;i<=6;i++) for (j=1;j<=6;j++) M(i,j)=i*j+i*i-10.0; + { + Tracer et1("Stage 1"); + Print(Matrix((S-M)-(MS-M))); + Print(Matrix((-M-S)+(MS+M))); + Print(Matrix((U-M)-(MU-M))); + } + { + Tracer et1("Stage 2"); + Print(Matrix((L-M)+(M-ML))); + Print(Matrix((D-M)+(M-MD))); + Print(Matrix((D-S)+(MS-MD))); + Print(Matrix((D-L)+(ML-MD))); + } + + { M=MU.t(); } + LowerTriangularMatrix LY=D.i()*U.t(); + { + Tracer et1("Stage 3"); + MS=D*LY-M; Clean(MS,0.00000001); Print(MS); + L=U.t(); + LY=D.i()*L; MS=D*LY-M; Clean(MS,0.00000001); Print(MS); + } + { + Tracer et1("Stage 4"); + UpperTriangularMatrix UT(11); + int i, j; + for (i=1;i<=11;i++) for (j=i;j<=11;j++) UT(i,j)=i*i+j*3; + GenericMatrix GM; Matrix X; + UpperBandMatrix UB(11,3); UB.Inject(UT); UT = UB; + UpperBandMatrix UB2 = UB / 8; + GM = UB2-UT/8; X = GM; Print(X); + SymmetricBandMatrix SB(11,4); SB << (UB + UB.t()); + X = SB - UT - UT.t(); Print(X); + BandMatrix B = UB + UB.t()*2; + DiagonalMatrix D; D << B; + X.ReSize(1,1); X(1,1) = Trace(B)-Sum(D); Print(X); + X = SB + 5; Matrix X1=X; X = SP(UB,X); Matrix X2 =UB; + X1 = (X1.AsDiagonal() * X2.AsDiagonal()).AsRow()-X.AsColumn().t(); + Print(X1); + X1=SB.t(); X2 = B.t(); X = SB.i() * B - X1.i() * X2.t(); + Clean(X,0.00000001); Print(X); + X = SB.i(); X = X * B - X1.i() * X2.t(); + Clean(X,0.00000001); Print(X); + D = 1; X = SB.i() * SB - D; Clean(X,0.00000001); Print(X); + ColumnVector CV(11); + CV << 2 << 6 <<3 << 8 << -4 << 17.5 << 2 << 1 << -2 << 5 << 3.75; + D << 2 << 6 <<3 << 8 << -4 << 17.5 << 2 << 1 << -2 << 5 << 3.75; + X = CV.AsDiagonal(); X = X-D; Print(X); + SymmetricBandMatrix SB1(11,7); SB1 = 5; + SymmetricBandMatrix SB2 = SB1 + D; + X.ReSize(11,11); X=0; + for (i=1;i<=11;i++) for (j=1;j<=11;j++) + { + if (abs(i-j)<=7) X(i,j)=5; + if (i==j) X(i,j)+=CV(i); + } + SymmetricMatrix SM; SM.ReSize(11); + SM=SB; SB = SB+SB2; X1 = SM+X-SB; Print(X1); + SB2=0; X2=SB2; X1=SB; Print(X2); + for (i=1;i<=11;i++) SB2.Column(i)<a3) ? i : a3; j<=a4; j++) + M3(i-a1+1,j-a3+1) = 100*i + j; + Print(Matrix(M2-M3)); + } + { + Tracer et1("Stage 8"); + a1=3; a2=9; a3=2; a4=7; + U.ReSize(10); + for (i=1; i<=10; i++) for (j=i; j<=10; j++) U(i,j) = 100*i + j; + M2 = U.SubMatrix(a1,a2,a3,a4); + M3.ReSize(a2-a1+1,a4-a3+1); M3=0.0; + for (i=a1; i<=a2; i++) for (j=(i>a3) ? i : a3; j<=a4; j++) + M3(i-a1+1,j-a3+1) = 100*i + j; + Print(Matrix(M2-M3)); + } + { + Tracer et1("Stage 9"); + a1=4; a2=6; a3=2; a4=5; + U.ReSize(10); + for (i=1; i<=10; i++) for (j=i; j<=10; j++) U(i,j) = 100*i + j; + M2 = U.SubMatrix(a1,a2,a3,a4); + M3.ReSize(a2-a1+1,a4-a3+1); M3=0.0; + for (i=a1; i<=a2; i++) for (j=(i>a3) ? i : a3; j<=a4; j++) + M3(i-a1+1,j-a3+1) = 100*i + j; + Print(Matrix(M2-M3)); + } + + { + Tracer et1("Stage 10"); + TestClass TC; + Matrix M = TC.Sum() - 9; + Print(M); + } + + +// cout << "\nEnd of eleventh test\n"; +} diff --git a/3rdparty/newmat/tmtc.cpp b/3rdparty/newmat/tmtc.cpp new file mode 100644 index 0000000..9d77af1 --- /dev/null +++ b/3rdparty/newmat/tmtc.cpp @@ -0,0 +1,200 @@ + +//#define WANT_STREAM + + +#include "include.h" +#include "newmat.h" + +#include "tmt.h" + +#ifdef use_namespace +using namespace NEWMAT; +#endif + + + + +void trymatc() +{ +// cout << "\nTwelfth test of Matrix package\n"; + Tracer et("Twelfth test of Matrix package"); + Tracer::PrintTrace(); + DiagonalMatrix D(15); D=1.5; + Matrix A(15,15); + int i,j; + for (i=1;i<=15;i++) for (j=1;j<=15;j++) A(i,j)=i*i+j-150; + { A = A + D; } + ColumnVector B(15); + for (i=1;i<=15;i++) B(i)=i+i*i-150.0; + { + Tracer et1("Stage 1"); + ColumnVector B1=B; + B=(A*2.0).i() * B1; + Matrix X = A*B-B1/2.0; + Clean(X, 0.000000001); Print(X); + A.ReSize(3,5); + for (i=1; i<=3; i++) for (j=1; j<=5; j++) A(i,j) = i+100*j; + + B = A.AsColumn()+10000; + RowVector R = (A+10000).AsColumn().t(); + Print( RowVector(R-B.t()) ); + } + + { + Tracer et1("Stage 2"); + B = A.AsColumn()+10000; + Matrix XR = (A+10000).AsMatrix(15,1).t(); + Print( RowVector(XR-B.t()) ); + } + + { + Tracer et1("Stage 3"); + B = (A.AsMatrix(15,1)+A.AsColumn())/2.0+10000; + Matrix MR = (A+10000).AsColumn().t(); + Print( RowVector(MR-B.t()) ); + + B = (A.AsMatrix(15,1)+A.AsColumn())/2.0; + MR = A.AsColumn().t(); + Print( RowVector(MR-B.t()) ); + } + + { + Tracer et1("Stage 4"); + B = (A.AsMatrix(15,1)+A.AsColumn())/2.0; + RowVector R = A.AsColumn().t(); + Print( RowVector(R-B.t()) ); + } + + { + Tracer et1("Stage 5"); + RowVector R = (A.AsColumn()-5000).t(); + B = ((R.t()+10000) - A.AsColumn())-5000; + Print( RowVector(B.t()) ); + } + + { + Tracer et1("Stage 6"); + B = A.AsColumn(); ColumnVector B1 = (A+10000).AsColumn() - 10000; + Print(ColumnVector(B1-B)); + } + + { + Tracer et1("Stage 7"); + Matrix X = B.AsMatrix(3,5); Print(Matrix(X-A)); + for (i=1; i<=3; i++) for (j=1; j<=5; j++) B(5*(i-1)+j) -= i+100*j; + Print(B); + } + + { + Tracer et1("Stage 8"); + A.ReSize(7,7); D.ReSize(7); + for (i=1; i<=7; i++) for (j=1; j<=7; j++) A(i,j) = i*j*j; + for (i=1; i<=7; i++) D(i,i) = i; + UpperTriangularMatrix U; U << A; + Matrix X = A; for (i=1; i<=7; i++) X(i,i) = i; + A.Inject(D); Print(Matrix(X-A)); + X = U; U.Inject(D); A = U; for (i=1; i<=7; i++) X(i,i) = i; + Print(Matrix(X-A)); + } + + { + Tracer et1("Stage 9"); + A.ReSize(7,5); + for (i=1; i<=7; i++) for (j=1; j<=5; j++) A(i,j) = i+100*j; + Matrix Y = A; Y = Y - ((const Matrix&)A); Print(Y); + Matrix X = A; // X.Release(); + Y = A; Y = ((const Matrix&)X) - A; Print(Y); Y = 0.0; + Y = ((const Matrix&)X) - ((const Matrix&)A); Print(Y); + } + + { + Tracer et1("Stage 10"); + // some tests on submatrices + UpperTriangularMatrix U(20); + for (i=1; i<=20; i++) for (j=i; j<=20; j++) U(i,j)=100 * i + j; + UpperTriangularMatrix V = U.SymSubMatrix(1,5); + UpperTriangularMatrix U1 = U; + U1.SubMatrix(4,8,5,9) /= 2; + U1.SubMatrix(4,8,5,9) += 388 * V; + U1.SubMatrix(4,8,5,9) *= 2; + U1.SubMatrix(4,8,5,9) += V; + U1 -= U; UpperTriangularMatrix U2 = U1; + U1 << U1.SubMatrix(4,8,5,9); + U2.SubMatrix(4,8,5,9) -= U1; Print(U2); + U1 -= (777*V); Print(U1); + + U1 = U; U1.SubMatrix(4,8,5,9) -= U.SymSubMatrix(1,5); + U1 -= U; U2 = U1; U1 << U1.SubMatrix(4,8,5,9); + U2.SubMatrix(4,8,5,9) -= U1; Print(U2); + U1 += V; Print(U1); + + U1 = U; + U1.SubMatrix(3,10,15,19) += 29; + U1 -= U; + Matrix X = U1.SubMatrix(3,10,15,19); X -= 29; Print(X); + U1.SubMatrix(3,10,15,19) *= 0; Print(U1); + + LowerTriangularMatrix L = U.t(); + LowerTriangularMatrix M = L.SymSubMatrix(1,5); + LowerTriangularMatrix L1 = L; + L1.SubMatrix(5,9,4,8) /= 2; + L1.SubMatrix(5,9,4,8) += 388 * M; + L1.SubMatrix(5,9,4,8) *= 2; + L1.SubMatrix(5,9,4,8) += M; + L1 -= L; LowerTriangularMatrix L2 = L1; + L1 << L1.SubMatrix(5,9,4,8); + L2.SubMatrix(5,9,4,8) -= L1; Print(L2); + L1 -= (777*M); Print(L1); + + L1 = L; L1.SubMatrix(5,9,4,8) -= L.SymSubMatrix(1,5); + L1 -= L; L2 =L1; L1 << L1.SubMatrix(5,9,4,8); + L2.SubMatrix(5,9,4,8) -= L1; Print(L2); + L1 += M; Print(L1); + + L1 = L; + L1.SubMatrix(15,19,3,10) -= 29; + L1 -= L; + X = L1.SubMatrix(15,19,3,10); X += 29; Print(X); + L1.SubMatrix(15,19,3,10) *= 0; Print(L1); + } + + { + Tracer et1("Stage 11"); + // more tests on submatrices + Matrix M(20,30); + for (i=1; i<=20; i++) for (j=1; j<=30; j++) M(i,j)=100 * i + j; + Matrix M1 = M; + + for (j=1; j<=30; j++) + { ColumnVector CV = 3 * M1.Column(j); M.Column(j) += CV; } + for (i=1; i<=20; i++) + { RowVector RV = 5 * M1.Row(i); M.Row(i) -= RV; } + + M += M1; Print(M); + + } + + { + Tracer et1("Stage 12"); + // more tests on Release + Matrix M(20,30); + for (i=1; i<=20; i++) for (j=1; j<=30; j++) M(i,j)=100 * i + j; + Matrix M1 = M; + M.Release(); + Matrix M2 = M; + Matrix X = M; Print(X); + X = M1 - M2; Print(X); + +#ifndef DONT_DO_NRIC + nricMatrix N = M1; + nricMatrix N1 = N; + N.Release(); + nricMatrix N2 = N; + nricMatrix Y = N; Print(Y); + Y = N1 - N2; Print(Y); +#endif + + } + +// cout << "\nEnd of twelfth test\n"; +} diff --git a/3rdparty/newmat/tmtd.cpp b/3rdparty/newmat/tmtd.cpp new file mode 100644 index 0000000..fc0ca15 --- /dev/null +++ b/3rdparty/newmat/tmtd.cpp @@ -0,0 +1,196 @@ + +//#define WANT_STREAM + +#include "include.h" +#include "newmatap.h" + +#include "tmt.h" + +#ifdef use_namespace +using namespace NEWMAT; +#endif + +ReturnMatrix Inverter(const CroutMatrix& X) +{ + Matrix Y = X.i(); + Y.Release(); + return Y.ForReturn(); +} + + +void trymatd() +{ + Tracer et("Thirteenth test of Matrix package"); + Tracer::PrintTrace(); + Matrix X(5,20); + int i,j; + for (j=1;j<=20;j++) X(1,j) = j+1; + for (i=2;i<=5;i++) for (j=1;j<=20; j++) X(i,j) = (long)X(i-1,j) * j % 1001; + SymmetricMatrix S; S << X * X.t(); + Matrix SM = X * X.t() - S; + Print(SM); + LowerTriangularMatrix L = Cholesky(S); + Matrix Diff = L*L.t()-S; Clean(Diff, 0.000000001); + Print(Diff); + { + Tracer et1("Stage 1"); + LowerTriangularMatrix L1(5); + Matrix Xt = X.t(); Matrix Xt2 = Xt; + QRZT(X,L1); + Diff = L - L1; Clean(Diff,0.000000001); Print(Diff); + UpperTriangularMatrix Ut(5); + QRZ(Xt,Ut); + Diff = L - Ut.t(); Clean(Diff,0.000000001); Print(Diff); + Matrix Y(3,20); + for (j=1;j<=20;j++) Y(1,j) = 22-j; + for (i=2;i<=3;i++) for (j=1;j<=20; j++) + Y(i,j) = (long)Y(i-1,j) * j % 101; + Matrix Yt = Y.t(); Matrix M,Mt; Matrix Y2=Y; + QRZT(X,Y,M); QRZ(Xt,Yt,Mt); + Diff = Xt - X.t(); Clean(Diff,0.000000001); Print(Diff); + Diff = Yt - Y.t(); Clean(Diff,0.000000001); Print(Diff); + Diff = Mt - M.t(); Clean(Diff,0.000000001); Print(Diff); + Diff = Y2 * Xt2 * S.i() - M * L.i(); + Clean(Diff,0.000000001); Print(Diff); + } + + ColumnVector C1(5); + { + Tracer et1("Stage 2"); + X.ReSize(5,5); + for (j=1;j<=5;j++) X(1,j) = j+1; + for (i=2;i<=5;i++) for (j=1;j<=5; j++) + X(i,j) = (long)X(i-1,j) * j % 1001; + for (i=1;i<=5;i++) C1(i) = i*i; + CroutMatrix A = X; + ColumnVector C2 = A.i() * C1; C1 = X.i() * C1; + X = C1 - C2; Clean(X,0.000000001); Print(X); + } + + { + Tracer et1("Stage 3"); + X.ReSize(7,7); + for (j=1;j<=7;j++) X(1,j) = j+1; + for (i=2;i<=7;i++) for (j=1;j<=7; j++) + X(i,j) = (long)X(i-1,j) * j % 1001; + C1.ReSize(7); + for (i=1;i<=7;i++) C1(i) = i*i; + RowVector R1 = C1.t(); + Diff = R1 * X.i() - ( X.t().i() * R1.t() ).t(); Clean(Diff,0.000000001); + Print(Diff); + } + + { + Tracer et1("Stage 4"); + X.ReSize(5,5); + for (j=1;j<=5;j++) X(1,j) = j+1; + for (i=2;i<=5;i++) for (j=1;j<=5; j++) + X(i,j) = (long)X(i-1,j) * j % 1001; + C1.ReSize(5); + for (i=1;i<=5;i++) C1(i) = i*i; + CroutMatrix A1 = X*X; + ColumnVector C2 = A1.i() * C1; C1 = X.i() * C1; C1 = X.i() * C1; + X = C1 - C2; Clean(X,0.000000001); Print(X); + } + + + { + Tracer et1("Stage 5"); + int n = 40; + SymmetricBandMatrix B(n,2); B = 0.0; + for (i=1; i<=n; i++) + { + B(i,i) = 6; + if (i<=n-1) B(i,i+1) = -4; + if (i<=n-2) B(i,i+2) = 1; + } + B(1,1) = 5; B(n,n) = 5; + SymmetricMatrix A = B; + ColumnVector X(n); + X(1) = 429; + for (i=2;i<=n;i++) X(i) = (long)X(i-1) * 31 % 1001; + X = X / 100000L; + // the matrix B is rather ill-conditioned so the difficulty is getting + // good agreement (we have chosen X very small) may not be surprising; + // maximum element size in B.i() is around 1400 + ColumnVector Y1 = A.i() * X; + LowerTriangularMatrix C1 = Cholesky(A); + ColumnVector Y2 = C1.t().i() * (C1.i() * X) - Y1; + Clean(Y2, 0.000000001); Print(Y2); + UpperTriangularMatrix CU = C1.t().i(); + LowerTriangularMatrix CL = C1.i(); + Y2 = CU * (CL * X) - Y1; + Clean(Y2, 0.000000001); Print(Y2); + Y2 = B.i() * X - Y1; Clean(Y2, 0.000000001); Print(Y2); + + LowerBandMatrix C2 = Cholesky(B); + Matrix M = C2 - C1; Clean(M, 0.000000001); Print(M); + ColumnVector Y3 = C2.t().i() * (C2.i() * X) - Y1; + Clean(Y3, 0.000000001); Print(Y3); + CU = C1.t().i(); + CL = C1.i(); + Y3 = CU * (CL * X) - Y1; + Clean(Y3, 0.000000001); Print(Y3); + + Y3 = B.i() * X - Y1; Clean(Y3, 0.000000001); Print(Y3); + + SymmetricMatrix AI = A.i(); + Y2 = AI*X - Y1; Clean(Y2, 0.000000001); Print(Y2); + SymmetricMatrix BI = B.i(); + BandMatrix C = B; Matrix CI = C.i(); + M = A.i() - CI; Clean(M, 0.000000001); Print(M); + M = B.i() - CI; Clean(M, 0.000000001); Print(M); + M = AI-BI; Clean(M, 0.000000001); Print(M); + M = AI-CI; Clean(M, 0.000000001); Print(M); + + M = A; AI << M; M = AI-A; Clean(M, 0.000000001); Print(M); + C = B; BI << C; M = BI-B; Clean(M, 0.000000001); Print(M); + + + } + + { + Tracer et1("Stage 5"); + SymmetricMatrix A(4), B(4); + A << 5 + << 1 << 4 + << 2 << 1 << 6 + << 1 << 0 << 1 << 7; + B << 8 + << 1 << 5 + << 1 << 0 << 9 + << 2 << 1 << 0 << 6; + LowerTriangularMatrix AB = Cholesky(A) * Cholesky(B); + Matrix M = Cholesky(A) * B * Cholesky(A).t() - AB*AB.t(); + Clean(M, 0.000000001); Print(M); + M = A * Cholesky(B); M = M * M.t() - A * B * A; + Clean(M, 0.000000001); Print(M); + } + { + Tracer et1("Stage 6"); + int N=49; + int i; + SymmetricBandMatrix S(N,1); + Matrix B(N,N+1); B=0; + for (i=1;i<=N;i++) { S(i,i)=1; B(i,i)=1; B(i,i+1)=-1; } + for (i=1;ij) A(i,j) = 0; else if (i==j) A(i,j) = 21-i; else A(i,j) = -1; } + A = A.t(); + SymmetricMatrix S1; S1 << A.t() * A; + SymmetricMatrix S2; S2 << A * A.t(); + DiagonalMatrix D; Matrix U; Matrix V; +#ifdef ATandT + int anc = A.Ncols(); DiagonalMatrix I(anc); // AT&T 2.1 bug +#else + DiagonalMatrix I(A.Ncols()); +#endif + I=1.0; + SVD(A,D,U,V); CheckIsSorted(D); + Matrix SU = U.t() * U - I; Clean(SU,0.000000001); Print(SU); + Matrix SV = V.t() * V - I; Clean(SV,0.000000001); Print(SV); + Matrix B = U * D * V.t() - A; Clean(B,0.000000001); Print(B); + for (i=1; i<=20; i++) D(i) -= sqrt((22.0-i)*(21.0-i)); + Clean(D,0.000000001); Print(D); + Jacobi(S1, D, V); CheckIsSorted(D, true); + V = S1 - V * D * V.t(); Clean(V,0.000000001); Print(V); + D = D.Reverse(); + for (i=1; i<=20; i++) D(i) -= (22-i)*(21-i); + Clean(D,0.000000001); Print(D); + Jacobi(S2, D, V); CheckIsSorted(D, true); + V = S2 - V * D * V.t(); Clean(V,0.000000001); Print(V); + D = D.Reverse(); + for (i=1; i<=20; i++) D(i) -= (22-i)*(21-i); + Clean(D,0.000000001); Print(D); + + EigenValues(S1, D, V); CheckIsSorted(D, true); + V = S1 - V * D * V.t(); Clean(V,0.000000001); Print(V); + for (i=1; i<=20; i++) D(i) -= (i+1)*i; + Clean(D,0.000000001); Print(D); + EigenValues(S2, D, V); CheckIsSorted(D, true); + V = S2 - V * D * V.t(); Clean(V,0.000000001); Print(V); + for (i=2; i<=21; i++) D(i) -= (i-1)*i; + Clean(D,0.000000001); Print(D); + + EigenValues(S1, D); CheckIsSorted(D, true); + for (i=1; i<=20; i++) D(i) -= (i+1)*i; + Clean(D,0.000000001); Print(D); + EigenValues(S2, D); CheckIsSorted(D, true); + for (i=2; i<=21; i++) D(i) -= (i-1)*i; + Clean(D,0.000000001); Print(D); + } + + { + Tracer et1("Stage 3"); + Matrix A(30,30); + int i,j; + for (i=1; i<=30; i++) for (j=1; j<=30; j++) + { if (i>j) A(i,j) = 0; else if (i==j) A(i,j) = 1; else A(i,j) = -1; } + Real d1 = A.LogDeterminant().Value(); + DiagonalMatrix D; Matrix U; Matrix V; +#ifdef ATandT + int anc = A.Ncols(); DiagonalMatrix I(anc); // AT&T 2.1 bug +#else + DiagonalMatrix I(A.Ncols()); +#endif + I=1.0; + SVD(A,D,U,V); CheckIsSorted(D); + Matrix SU = U.t() * U - I; Clean(SU,0.000000001); Print(SU); + Matrix SV = V.t() * V - I; Clean(SV,0.000000001); Print(SV); + Real d2 = D.LogDeterminant().Value(); + Matrix B = U * D * V.t() - A; Clean(B,0.000000001); Print(B); + Real d3 = D.LogDeterminant().Value(); + ColumnVector Test(3); + Test(1) = d1 - 1; Test(2) = d2 - 1; Test(3) = d3 - 1; + Clean(Test,0.00000001); Print(Test); // only 8 decimal figures + A.ReSize(2,2); + Real a = 1.5; Real b = 2; Real c = 2 * (a*a + b*b); + A << a << b << a << b; + I.ReSize(2); I=1; + SVD(A,D,U,V); CheckIsSorted(D); + SU = U.t() * U - I; Clean(SU,0.000000001); Print(SU); + SV = V.t() * V - I; Clean(SV,0.000000001); Print(SV); + B = U * D * V.t() - A; Clean(B,0.000000001); Print(B); + D = D*D; SortDescending(D); + DiagonalMatrix D50(2); D50 << c << 0; D = D - D50; + Clean(D,0.000000001); + Print(D); + A << a << a << b << b; + SVD(A,D,U,V); CheckIsSorted(D); + SU = U.t() * U - I; Clean(SU,0.000000001); Print(SU); + SV = V.t() * V - I; Clean(SV,0.000000001); Print(SV); + B = U * D * V.t() - A; Clean(B,0.000000001); Print(B); + D = D*D; SortDescending(D); + D = D - D50; + Clean(D,0.000000001); + Print(D); + } + + { + Tracer et1("Stage 4"); + + // test for bug found by Olof Runborg, + // Department of Numerical Analysis and Computer Science (NADA), + // KTH, Stockholm + + Matrix A(22,20); + + A = 0; + + int a=1; + + A(a+0,a+2) = 1; A(a+0,a+18) = -1; + A(a+1,a+9) = 1; A(a+1,a+12) = -1; + A(a+2,a+11) = 1; A(a+2,a+12) = -1; + A(a+3,a+10) = 1; A(a+3,a+19) = -1; + A(a+4,a+16) = 1; A(a+4,a+19) = -1; + A(a+5,a+17) = 1; A(a+5,a+18) = -1; + A(a+6,a+10) = 1; A(a+6,a+4) = -1; + A(a+7,a+3) = 1; A(a+7,a+2) = -1; + A(a+8,a+14) = 1; A(a+8,a+15) = -1; + A(a+9,a+13) = 1; A(a+9,a+16) = -1; + A(a+10,a+8) = 1; A(a+10,a+9) = -1; + A(a+11,a+1) = 1; A(a+11,a+15) = -1; + A(a+12,a+16) = 1; A(a+12,a+4) = -1; + A(a+13,a+6) = 1; A(a+13,a+9) = -1; + A(a+14,a+5) = 1; A(a+14,a+4) = -1; + A(a+15,a+0) = 1; A(a+15,a+1) = -1; + A(a+16,a+14) = 1; A(a+16,a+0) = -1; + A(a+17,a+7) = 1; A(a+17,a+6) = -1; + A(a+18,a+13) = 1; A(a+18,a+5) = -1; + A(a+19,a+7) = 1; A(a+19,a+8) = -1; + A(a+20,a+17) = 1; A(a+20,a+3) = -1; + A(a+21,a+6) = 1; A(a+21,a+11) = -1; + + + Matrix U, V; DiagonalMatrix S; + + SVD(A, S, U, V, true, true); CheckIsSorted(S); + + DiagonalMatrix D(20); D = 1; + + Matrix tmp = U.t() * U - D; + Clean(tmp,0.000000001); Print(tmp); + + tmp = V.t() * V - D; + Clean(tmp,0.000000001); Print(tmp); + + tmp = U * S * V.t() - A ; + Clean(tmp,0.000000001); Print(tmp); + + } + + { + Tracer et1("Stage 5"); + Matrix A(10,10); + + A.Row(1) << 1.00 << 0.07 << 0.05 << 0.00 << 0.06 + << 0.09 << 0.03 << 0.02 << 0.02 << -0.03; + A.Row(2) << 0.07 << 1.00 << 0.05 << 0.05 << -0.03 + << 0.07 << 0.00 << 0.07 << 0.00 << 0.02; + A.Row(3) << 0.05 << 0.05 << 1.00 << 0.05 << 0.02 + << 0.01 << -0.05 << 0.04 << 0.05 << -0.03; + A.Row(4) << 0.00 << 0.05 << 0.05 << 1.00 << -0.05 + << 0.04 << 0.01 << 0.02 << -0.05 << 0.00; + A.Row(5) << 0.06 << -0.03 << 0.02 << -0.05 << 1.00 + << -0.03 << 0.02 << -0.02 << 0.04 << 0.00; + A.Row(6) << 0.09 << 0.07 << 0.01 << 0.04 << -0.03 + << 1.00 << -0.06 << 0.08 << -0.02 << -0.10; + A.Row(7) << 0.03 << 0.00 << -0.05 << 0.01 << 0.02 + << -0.06 << 1.00 << 0.09 << 0.12 << -0.03; + A.Row(8) << 0.02 << 0.07 << 0.04 << 0.02 << -0.02 + << 0.08 << 0.09 << 1.00 << 0.00 << -0.02; + A.Row(9) << 0.02 << 0.00 << 0.05 << -0.05 << 0.04 + << -0.02 << 0.12 << 0.00 << 1.00 << 0.02; + A.Row(10) << -0.03 << 0.02 << -0.03 << 0.00 << 0.00 + << -0.10 << -0.03 << -0.02 << 0.02 << 1.00; + + SymmetricMatrix AS; AS << A; + Matrix V; DiagonalMatrix D, D1; + ColumnVector Check(6); + EigenValues(AS,D,V); CheckIsSorted(D, true); + Check(1) = MaximumAbsoluteValue(A - V * D * V.t()); + DiagonalMatrix I(10); I = 1; + Check(2) = MaximumAbsoluteValue(V * V.t() - I); + Check(3) = MaximumAbsoluteValue(V.t() * V - I); + + EigenValues(AS, D1); CheckIsSorted(D1, true); + D -= D1; + Clean(D,0.000000001); Print(D); + + Jacobi(AS,D,V); + Check(4) = MaximumAbsoluteValue(A - V * D * V.t()); + Check(5) = MaximumAbsoluteValue(V * V.t() - I); + Check(6) = MaximumAbsoluteValue(V.t() * V - I); + + SortAscending(D); + D -= D1; + Clean(D,0.000000001); Print(D); + + Clean(Check,0.000000001); Print(Check); + + // Check loading rows + + SymmetricMatrix B(10); + + B.Row(1) << 1.00; + B.Row(2) << 0.07 << 1.00; + B.Row(3) << 0.05 << 0.05 << 1.00; + B.Row(4) << 0.00 << 0.05 << 0.05 << 1.00; + B.Row(5) << 0.06 << -0.03 << 0.02 << -0.05 << 1.00; + B.Row(6) << 0.09 << 0.07 << 0.01 << 0.04 << -0.03 + << 1.00; + B.Row(7) << 0.03 << 0.00 << -0.05 << 0.01 << 0.02 + << -0.06 << 1.00; + B.Row(8) << 0.02 << 0.07 << 0.04 << 0.02 << -0.02 + << 0.08 << 0.09 << 1.00; + B.Row(9) << 0.02 << 0.00 << 0.05 << -0.05 << 0.04 + << -0.02 << 0.12 << 0.00 << 1.00; + B.Row(10) << -0.03 << 0.02 << -0.03 << 0.00 << 0.00 + << -0.10 << -0.03 << -0.02 << 0.02 << 1.00; + + B -= AS; Print(B); + + } + + { + Tracer et1("Stage 6"); + // badly scaled matrix + Matrix A(9,9); + + A.Row(1) << 1.13324e+012 << 3.68788e+011 << 3.35163e+009 + << 3.50193e+011 << 1.25335e+011 << 1.02212e+009 + << 3.16602e+009 << 1.02418e+009 << 9.42959e+006; + A.Row(2) << 3.68788e+011 << 1.67128e+011 << 1.27449e+009 + << 1.25335e+011 << 6.05413e+010 << 4.34573e+008 + << 1.02418e+009 << 4.69192e+008 << 3.61098e+006; + A.Row(3) << 3.35163e+009 << 1.27449e+009 << 1.25571e+007 + << 1.02212e+009 << 4.34573e+008 << 3.69769e+006 + << 9.42959e+006 << 3.61098e+006 << 3.59450e+004; + A.Row(4) << 3.50193e+011 << 1.25335e+011 << 1.02212e+009 + << 1.43514e+011 << 5.42310e+010 << 4.15822e+008 + << 1.23068e+009 << 4.31545e+008 << 3.58714e+006; + A.Row(5) << 1.25335e+011 << 6.05413e+010 << 4.34573e+008 + << 5.42310e+010 << 2.76601e+010 << 1.89102e+008 + << 4.31545e+008 << 2.09778e+008 << 1.51083e+006; + A.Row(6) << 1.02212e+009 << 4.34573e+008 << 3.69769e+006 + << 4.15822e+008 << 1.89102e+008 << 1.47143e+006 + << 3.58714e+006 << 1.51083e+006 << 1.30165e+004; + A.Row(7) << 3.16602e+009 << 1.02418e+009 << 9.42959e+006 + << 1.23068e+009 << 4.31545e+008 << 3.58714e+006 + << 1.12335e+007 << 3.54778e+006 << 3.34311e+004; + A.Row(8) << 1.02418e+009 << 4.69192e+008 << 3.61098e+006 + << 4.31545e+008 << 2.09778e+008 << 1.51083e+006 + << 3.54778e+006 << 1.62552e+006 << 1.25885e+004; + A.Row(9) << 9.42959e+006 << 3.61098e+006 << 3.59450e+004 + << 3.58714e+006 << 1.51083e+006 << 1.30165e+004 + << 3.34311e+004 << 1.25885e+004 << 1.28000e+002; + + + SymmetricMatrix AS; AS << A; + Matrix V; DiagonalMatrix D, D1; + ColumnVector Check(6); + EigenValues(AS,D,V); CheckIsSorted(D, true); + Check(1) = MaximumAbsoluteValue(A - V * D * V.t()) / 100000; + DiagonalMatrix I(9); I = 1; + Check(2) = MaximumAbsoluteValue(V * V.t() - I); + Check(3) = MaximumAbsoluteValue(V.t() * V - I); + + EigenValues(AS, D1); + D -= D1; + Clean(D,0.001); Print(D); + + Jacobi(AS,D,V); + Check(4) = MaximumAbsoluteValue(A - V * D * V.t()) / 100000; + Check(5) = MaximumAbsoluteValue(V * V.t() - I); + Check(6) = MaximumAbsoluteValue(V.t() * V - I); + + SortAscending(D); + D -= D1; + Clean(D,0.001); Print(D); + + Clean(Check,0.0000001); Print(Check); + } + + { + Tracer et1("Stage 7"); + // matrix with all singular values close to 1 + Matrix A(8,8); + A.Row(1)<<-0.4343<<-0.0445<<-0.4582<<-0.1612<<-0.3191<<-0.6784<<0.1068<<0; + A.Row(2)<<0.5791<<0.5517<<0.2575<<-0.1055<<-0.0437<<-0.5282<<0.0442<<0; + A.Row(3)<<0.5709<<-0.5179<<-0.3275<<0.2598<<-0.196<<-0.1451<<-0.4143<<0; + A.Row(4)<<0.2785<<-0.5258<<0.1251<<-0.4382<<0.0514<<-0.0446<<0.6586<<0; + A.Row(5)<<0.2654<<0.3736<<-0.7436<<-0.0122<<0.0376<<0.3465<<0.3397<<0; + A.Row(6)<<0.0173<<-0.0056<<-0.1903<<-0.7027<<0.4863<<-0.0199<<-0.4825<<0; + A.Row(7)<<0.0434<<0.0966<<0.1083<<-0.4576<<-0.7857<<0.3425<<-0.1818<<0; + A.Row(8)<<0.0<<0.0<<0.0<<0.0<<0.0<<0.0<<0.0<<-1.0; + Matrix U,V; DiagonalMatrix D; + SVD(A,D,U,V); CheckIsSorted(D); + Matrix B = U * D * V.t() - A; Clean(B,0.000000001); Print(B); + DiagonalMatrix I(8); I = 1; D -= I; Clean(D,0.0001); Print(D); + U *= U.t(); U -= I; Clean(U,0.000000001); Print(U); + V *= V.t(); V -= I; Clean(V,0.000000001); Print(V); + + } + + { + Tracer et1("Stage 8"); + // check SortSV functions + + Matrix A(15, 10); + int i, j; + for (i = 1; i <= 15; ++i) for (j = 1; j <= 10; ++j) + A(i, j) = i + j / 1000.0; + DiagonalMatrix D(10); + D << 0.2 << 0.5 << 0.1 << 0.7 << 0.8 << 0.3 << 0.4 << 0.7 << 0.9 << 0.6; + Matrix U = A; Matrix V = 10 - 2 * A; + Matrix Prod = U * D * V.t(); + + DiagonalMatrix D2 = D; SortDescending(D2); + DiagonalMatrix D1 = D; SortSV(D1, U, V); Matrix X = D1 - D2; Print(X); + X = Prod - U * D1 * V.t(); Clean(X,0.000000001); Print(X); + U = A; V = 10 - 2 * A; + D1 = D; SortSV(D1, U); X = D1 - D2; Print(X); + D1 = D; SortSV(D1, V); X = D1 - D2; Print(X); + X = Prod - U * D1 * V.t(); Clean(X,0.000000001); Print(X); + + D2 = D; SortAscending(D2); + U = A; V = 10 - 2 * A; + D1 = D; SortSV(D1, U, V, true); X = D1 - D2; Print(X); + X = Prod - U * D1 * V.t(); Clean(X,0.000000001); Print(X); + U = A; V = 10 - 2 * A; + D1 = D; SortSV(D1, U, true); X = D1 - D2; Print(X); + D1 = D; SortSV(D1, V, true); X = D1 - D2; Print(X); + X = Prod - U * D1 * V.t(); Clean(X,0.000000001); Print(X); + } + + { + Tracer et1("Stage 9"); + // Tom William's example + Matrix A(10,10); + Matrix U; + Matrix V; + DiagonalMatrix Sigma; + Real myVals[] = + { + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, + 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, + 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, + }; + + A << myVals; + SVD(A, Sigma, U, V); CheckIsSorted(Sigma); + A -= U * Sigma * V.t(); + Clean(A, 0.000000001); Print(A); + } + + + +} diff --git a/3rdparty/newmat/tmtf.cpp b/3rdparty/newmat/tmtf.cpp new file mode 100644 index 0000000..01a0e9b --- /dev/null +++ b/3rdparty/newmat/tmtf.cpp @@ -0,0 +1,404 @@ + +//#define WANT_STREAM +#define WANT_MATH + +#include "include.h" + +#include "newmatap.h" + +//#include "newmatio.h" + +#include "tmt.h" + +#ifdef use_namespace +using namespace NEWMAT; +#endif + + + +static void SlowFT(const ColumnVector& a, const ColumnVector&b, + ColumnVector& x, ColumnVector& y) +{ + int n = a.Nrows(); + x.ReSize(n); y.ReSize(n); + Real f = 6.2831853071795864769/n; + for (int j=1; j<=n; j++) + { + Real sumx = 0.0; Real sumy = 0.0; + for (int k=1; k<=n; k++) + { + Real theta = - (j-1) * (k-1) * f; + Real c = cos(theta); Real s = sin(theta); + sumx += c * a(k) - s * b(k); sumy += s * a(k) + c * b(k); + } + x(j) = sumx; y(j) = sumy; + } +} + +static void SlowDTT_II(const ColumnVector& a, ColumnVector& c, ColumnVector& s) +{ + int n = a.Nrows(); c.ReSize(n); s.ReSize(n); + Real f = 6.2831853071795864769 / (4*n); + int k; + + for (k=1; k<=n; k++) + { + Real sum = 0.0; + const int k1 = k-1; // otherwise Visual C++ 5 fails + for (int j=1; j<=n; j++) sum += cos(k1 * (2*j-1) * f) * a(j); + c(k) = sum; + } + + for (k=1; k<=n; k++) + { + Real sum = 0.0; + for (int j=1; j<=n; j++) sum += sin(k * (2*j-1) * f) * a(j); + s(k) = sum; + } +} + +static void SlowDTT(const ColumnVector& a, ColumnVector& c, ColumnVector& s) +{ + int n1 = a.Nrows(); int n = n1 - 1; + c.ReSize(n1); s.ReSize(n1); + Real f = 6.2831853071795864769 / (2*n); + int k; + + int sign = 1; + for (k=1; k<=n1; k++) + { + Real sum = 0.0; + for (int j=2; j<=n; j++) sum += cos((j-1) * (k-1) * f) * a(j); + c(k) = sum + (a(1) + sign * a(n1)) / 2.0; + sign = -sign; + } + + for (k=2; k<=n; k++) + { + Real sum = 0.0; + for (int j=2; j<=n; j++) sum += sin((j-1) * (k-1) * f) * a(j); + s(k) = sum; + } + s(1) = s(n1) = 0; +} + +static void test(int n) +{ + Tracer et("Test FFT"); + + ColumnVector A(n), B(n), X, Y; + for (int i=0; i q) ? p : q; } + +static int my_min(int p, int q) { return (p < q) ? p : q; } + + +void BandFunctions(int l1, int u1, int l2, int u2) +{ + int i, j; + BandMatrix BM1(20, l1, u1); BM1 = 999999.0; + for (i = 1; i <= 20; ++i) for (j = 1; j <= 20; ++j) + if (i - j <= l1 && i - j >= -u1) BM1(i, j) = 100 * i + j; + + BandMatrix BM2 = BM1; Matrix M = BM2 - BM1; Print(M); + + BM2.ReSize(20, l2, u2); BM2 = 777777.0; + for (i = 1; i <= 20; ++i) for (j = 1; j <= 20; ++j) + if (i - j <= l2 && i - j >= -u2) BM2(i, j) = (100 * i + j) * 11; + + BandMatrix BMA = BM1 + BM2, BMS = BM1 - BM2, BMSP = SP(BM1, BM2), + BMM = BM1 * BM2, BMN = -BM1; + + Matrix M1(20,20); M1 = 0; + for (i = 1; i <= 20; ++i) for (j = 1; j <= 20; ++j) + if (i - j <= l1 && i - j >= -u1) M1(i, j) = 100 * i + j; + + Matrix M2(20,20); M2 = 0; + for (i = 1; i <= 20; ++i) for (j = 1; j <= 20; ++j) + if (i - j <= l2 && i - j >= -u2) M2(i, j) = (100 * i + j) * 11; + + Matrix MA = M1 + M2, MS = M1 - M2, MSP = SP(M1, M2), MM = M1 * M2, MN = -M1; + MA -= BMA; MS -= BMS; MSP -= BMSP; MM -= BMM; MN -= BMN; + Print(MA); Print(MS); Print(MSP); Print(MM); Print(MN); + + Matrix Test(7, 2); + Test(1,1) = BM1.BandWidth().Lower() - l1; + Test(1,2) = BM1.BandWidth().Upper() - u1; + Test(2,1) = BM2.BandWidth().Lower() - l2; + Test(2,2) = BM2.BandWidth().Upper() - u2; + Test(3,1) = BMA.BandWidth().Lower() - my_max(l1,l2); + Test(3,2) = BMA.BandWidth().Upper() - my_max(u1,u2); + Test(4,1) = BMS.BandWidth().Lower() - my_max(l1,l2); + Test(4,2) = BMS.BandWidth().Upper() - my_max(u1,u2); + Test(5,1) = BMSP.BandWidth().Lower() - my_min(l1,l2); + Test(5,2) = BMSP.BandWidth().Upper() - my_min(u1,u2); + Test(6,1) = BMM.BandWidth().Lower() - (l1 + l2); + Test(6,2) = BMM.BandWidth().Upper() - (u1 + u2); + Test(7,1) = BMN.BandWidth().Lower() - l1; + Test(7,2) = BMN.BandWidth().Upper() - u1; + Print(Test); + + // test element function + BandMatrix BM1E(20, l1, u1); BM1E = 999999.0; + for (i = 1; i <= 20; ++i) for (j = 1; j <= 20; ++j) + if (i - j <= l1 && i - j >= -u1) BM1E.element(i-1, j-1) = 100 * i + j; + BandMatrix BM2E = BM1E; BM2E.ReSize(BM2); BM2E = 777777.0; + for (i = 1; i <= 20; ++i) for (j = 1; j <= 20; ++j) + if (i - j <= l2 && i - j >= -u2) + BM2E.element(i-1, j-1) = (100 * i + j) * 11; + M1 = BM1E - BM1; Print(M1); + M2 = BM2E - BM2; Print(M2); + + // test element function with constant + BM1E = 444444.04; BM2E = 555555.0; + const BandMatrix BM1C = BM1, BM2C = BM2; + for (i = 1; i <= 20; ++i) for (j = 1; j <= 20; ++j) + if (i - j <= l1 && i - j >= -u1) + BM1E.element(i-1, j-1) = BM1C.element(i-1, j-1); + for (i = 1; i <= 20; ++i) for (j = 1; j <= 20; ++j) + if (i - j <= l2 && i - j >= -u2) + BM2E.element(i-1, j-1) = BM2C.element(i-1, j-1); + M1 = BM1E - BM1; Print(M1); + M2 = BM2E - BM2; Print(M2); + + // test subscript function with constant + BM1E = 444444.04; BM2E = 555555.0; + for (i = 1; i <= 20; ++i) for (j = 1; j <= 20; ++j) + if (i - j <= l1 && i - j >= -u1) BM1E(i, j) = BM1C(i, j); + for (i = 1; i <= 20; ++i) for (j = 1; j <= 20; ++j) + if (i - j <= l2 && i - j >= -u2) BM2E(i, j) = BM2C(i, j); + M1 = BM1E - BM1; Print(M1); + M2 = BM2E - BM2; Print(M2); +} + +void LowerBandFunctions(int l1, int l2) +{ + int i, j; + LowerBandMatrix BM1(20, l1); BM1 = 999999.0; + for (i = 1; i <= 20; ++i) for (j = 1; j <= i; ++j) + if (i - j <= l1) BM1(i, j) = 100 * i + j; + + LowerBandMatrix BM2 = BM1; Matrix M = BM2 - BM1; Print(M); + + BM2.ReSize(20, l2); BM2 = 777777.0; + for (i = 1; i <= 20; ++i) for (j = 1; j <= i; ++j) + if (i - j <= l2) BM2(i, j) = (100 * i + j) * 11; + + LowerBandMatrix BMA = BM1 + BM2, BMS = BM1 - BM2, BMSP = SP(BM1, BM2), + BMM = BM1 * BM2, BMN = -BM1; + + Matrix M1(20,20); M1 = 0; + for (i = 1; i <= 20; ++i) for (j = 1; j <= i; ++j) + if (i - j <= l1) M1(i, j) = 100 * i + j; + + Matrix M2(20,20); M2 = 0; + for (i = 1; i <= 20; ++i) for (j = 1; j <= i; ++j) + if (i - j <= l2) M2(i, j) = (100 * i + j) * 11; + + Matrix MA = M1 + M2, MS = M1 - M2, MSP = SP(M1, M2), MM = M1 * M2, MN = -M1; + MA -= BMA; MS -= BMS; MSP -= BMSP; MM -= BMM; MN -= BMN; + Print(MA); Print(MS); Print(MSP); Print(MM); Print(MN); + + Matrix Test(7, 2); + Test(1,1) = BM1.BandWidth().Lower() - l1; + Test(1,2) = BM1.BandWidth().Upper(); + Test(2,1) = BM2.BandWidth().Lower() - l2; + Test(2,2) = BM2.BandWidth().Upper(); + Test(3,1) = BMA.BandWidth().Lower() - my_max(l1,l2); + Test(3,2) = BMA.BandWidth().Upper(); + Test(4,1) = BMS.BandWidth().Lower() - my_max(l1,l2); + Test(4,2) = BMS.BandWidth().Upper(); + Test(5,1) = BMSP.BandWidth().Lower() - my_min(l1,l2); + Test(5,2) = BMSP.BandWidth().Upper(); + Test(6,1) = BMM.BandWidth().Lower() - (l1 + l2); + Test(6,2) = BMM.BandWidth().Upper(); + Test(7,1) = BMN.BandWidth().Lower() - l1; + Test(7,2) = BMN.BandWidth().Upper(); + Print(Test); + + // test element function + LowerBandMatrix BM1E(20, l1); BM1E = 999999.0; + for (i = 1; i <= 20; ++i) for (j = 1; j <= i; ++j) + if (i - j <= l1) BM1E.element(i-1, j-1) = 100 * i + j; + LowerBandMatrix BM2E = BM1E; BM2E.ReSize(BM2); BM2E = 777777.0; + for (i = 1; i <= 20; ++i) for (j = 1; j <= i; ++j) + if (i - j <= l2) BM2E.element(i-1, j-1) = (100 * i + j) * 11; + M1 = BM1E - BM1; Print(M1); + M2 = BM2E - BM2; Print(M2); + + // test element function with constant + BM1E = 444444.04; BM2E = 555555.0; + const LowerBandMatrix BM1C = BM1, BM2C = BM2; + for (i = 1; i <= 20; ++i) for (j = 1; j <= i; ++j) + if (i - j <= l1) BM1E.element(i-1, j-1) = BM1C.element(i-1, j-1); + for (i = 1; i <= 20; ++i) for (j = 1; j <= i; ++j) + if (i - j <= l2) BM2E.element(i-1, j-1) = BM2C.element(i-1, j-1); + M1 = BM1E - BM1; Print(M1); + M2 = BM2E - BM2; Print(M2); + + // test subscript function with constant + BM1E = 444444.04; BM2E = 555555.0; + for (i = 1; i <= 20; ++i) for (j = 1; j <= i; ++j) + if (i - j <= l1) BM1E(i, j) = BM1C(i, j); + for (i = 1; i <= 20; ++i) for (j = 1; j <= i; ++j) + if (i - j <= l2) BM2E(i, j) = BM2C(i, j); + M1 = BM1E - BM1; Print(M1); + M2 = BM2E - BM2; Print(M2); +} + +void UpperBandFunctions(int u1, int u2) +{ + int i, j; + UpperBandMatrix BM1(20, u1); BM1 = 999999.0; + for (i = 1; i <= 20; ++i) for (j = i; j <= 20; ++j) + if (i - j >= -u1) BM1(i, j) = 100 * i + j; + + UpperBandMatrix BM2 = BM1; Matrix M = BM2 - BM1; Print(M); + + BM2.ReSize(20, u2); BM2 = 777777.0; + for (i = 1; i <= 20; ++i) for (j = i; j <= 20; ++j) + if (i - j >= -u2) BM2(i, j) = (100 * i + j) * 11; + + UpperBandMatrix BMA = BM1 + BM2, BMS = BM1 - BM2, BMSP = SP(BM1, BM2), + BMM = BM1 * BM2, BMN = -BM1; + + Matrix M1(20,20); M1 = 0; + for (i = 1; i <= 20; ++i) for (j = i; j <= 20; ++j) + if (i - j >= -u1) M1(i, j) = 100 * i + j; + + Matrix M2(20,20); M2 = 0; + for (i = 1; i <= 20; ++i) for (j = i; j <= 20; ++j) + if (i - j >= -u2) M2(i, j) = (100 * i + j) * 11; + + Matrix MA = M1 + M2, MS = M1 - M2, MSP = SP(M1, M2), MM = M1 * M2, MN = -M1; + MA -= BMA; MS -= BMS; MSP -= BMSP; MM -= BMM; MN -= BMN; + Print(MA); Print(MS); Print(MSP); Print(MM); Print(MN); + + Matrix Test(7, 2); + Test(1,1) = BM1.BandWidth().Lower(); + Test(1,2) = BM1.BandWidth().Upper() - u1; + Test(2,1) = BM2.BandWidth().Lower(); + Test(2,2) = BM2.BandWidth().Upper() - u2; + Test(3,1) = BMA.BandWidth().Lower(); + Test(3,2) = BMA.BandWidth().Upper() - my_max(u1,u2); + Test(4,1) = BMS.BandWidth().Lower(); + Test(4,2) = BMS.BandWidth().Upper() - my_max(u1,u2); + Test(5,1) = BMSP.BandWidth().Lower(); + Test(5,2) = BMSP.BandWidth().Upper() - my_min(u1,u2); + Test(6,1) = BMM.BandWidth().Lower(); + Test(6,2) = BMM.BandWidth().Upper() - (u1 + u2); + Test(7,1) = BMN.BandWidth().Lower(); + Test(7,2) = BMN.BandWidth().Upper() - u1; + Print(Test); + + // test element function + UpperBandMatrix BM1E(20, u1); BM1E = 999999.0; + for (i = 1; i <= 20; ++i) for (j = i; j <= 20; ++j) + if (i - j >= -u1) BM1E.element(i-1, j-1) = 100 * i + j; + UpperBandMatrix BM2E = BM1E; BM2E.ReSize(BM2); BM2E = 777777.0; + for (i = 1; i <= 20; ++i) for (j = i; j <= 20; ++j) + if (i - j >= -u2) BM2E.element(i-1, j-1) = (100 * i + j) * 11; + M1 = BM1E - BM1; Print(M1); + M2 = BM2E - BM2; Print(M2); + + // test element function with constant + BM1E = 444444.04; BM2E = 555555.0; + const UpperBandMatrix BM1C = BM1, BM2C = BM2; + for (i = 1; i <= 20; ++i) for (j = i; j <= 20; ++j) + if (i - j >= -u1) BM1E.element(i-1, j-1) = BM1C.element(i-1, j-1); + for (i = 1; i <= 20; ++i) for (j = i; j <= 20; ++j) + if (i - j >= -u2) BM2E.element(i-1, j-1) = BM2C.element(i-1, j-1); + M1 = BM1E - BM1; Print(M1); + M2 = BM2E - BM2; Print(M2); + + // test subscript function with constant + BM1E = 444444.04; BM2E = 555555.0; + for (i = 1; i <= 20; ++i) for (j = i; j <= 20; ++j) + if (i - j >= -u1) BM1E(i, j) = BM1C(i, j); + for (i = 1; i <= 20; ++i) for (j = i; j <= 20; ++j) + if (i - j >= -u2) BM2E(i, j) = BM2C(i, j); + M1 = BM1E - BM1; Print(M1); + M2 = BM2E - BM2; Print(M2); +} + +void SymmetricBandFunctions(int l1, int l2) +{ + int i, j; + SymmetricBandMatrix BM1(20, l1); BM1 = 999999.0; + for (i = 1; i <= 20; ++i) for (j = 1; j <= i; ++j) + if (i - j <= l1) BM1(i, j) = 100 * i + j; + + SymmetricBandMatrix BM2 = BM1; Matrix M = BM2 - BM1; Print(M); + + BM2.ReSize(20, l2); BM2 = 777777.0; + for (i = 1; i <= 20; ++i) for (j = 1; j <= i; ++j) + if (i - j <= l2) BM2(i, j) = (100 * i + j) * 11; + + SymmetricBandMatrix BMA = BM1 + BM2, BMS = BM1 - BM2, BMSP = SP(BM1, BM2), + BMN = -BM1; + BandMatrix BMM = BM1 * BM2; + + SymmetricMatrix M1(20); M1 = 0; + for (i = 1; i <= 20; ++i) for (j = 1; j <= i; ++j) + if (i - j <= l1) M1(i, j) = 100 * i + j; + + SymmetricMatrix M2(20); M2 = 0; + for (i = 1; i <= 20; ++i) for (j = 1; j <= i; ++j) + if (i - j <= l2) M2(i, j) = (100 * i + j) * 11; + + SymmetricMatrix MA = M1 + M2, MS = M1 - M2, MSP = SP(M1, M2), MN = -M1; + Matrix MM = M1 * M2; + MA -= BMA; MS -= BMS; MSP -= BMSP; MM -= BMM; MN -= BMN; + Print(MA); Print(MS); Print(MSP); Print(MM); Print(MN); + + Matrix Test(7, 2); + Test(1,1) = BM1.BandWidth().Lower() - l1; + Test(1,2) = BM1.BandWidth().Upper() - l1; + Test(2,1) = BM2.BandWidth().Lower() - l2; + Test(2,2) = BM2.BandWidth().Upper() - l2; + Test(3,1) = BMA.BandWidth().Lower() - my_max(l1,l2); + Test(3,2) = BMA.BandWidth().Upper() - my_max(l1,l2); + Test(4,1) = BMS.BandWidth().Lower() - my_max(l1,l2); + Test(4,2) = BMS.BandWidth().Upper() - my_max(l1,l2); + Test(5,1) = BMSP.BandWidth().Lower() - my_min(l1,l2); + Test(5,2) = BMSP.BandWidth().Upper() - my_min(l1,l2); + Test(6,1) = BMM.BandWidth().Lower() - (l1 + l2); + Test(6,2) = BMM.BandWidth().Upper() - (l1 + l2); + Test(7,1) = BMN.BandWidth().Lower() - l1; + Test(7,2) = BMN.BandWidth().Upper() - l1; + Print(Test); + + // test element function + SymmetricBandMatrix BM1E(20, l1); BM1E = 999999.0; + for (i = 1; i <= 20; ++i) for (j = 1; j <= i; ++j) + if (i - j <= l1) BM1E.element(i-1, j-1) = 100 * i + j; + SymmetricBandMatrix BM2E = BM1E; BM2E.ReSize(BM2); BM2E = 777777.0; + for (i = 1; i <= 20; ++i) for (j = 1; j <= i; ++j) + if (i - j <= l2) BM2E.element(i-1, j-1) = (100 * i + j) * 11; + M1 = BM1E - BM1; Print(M1); + M2 = BM2E - BM2; Print(M2); + + // reverse subscripts + BM1E = 999999.0; + for (i = 1; i <= 20; ++i) for (j = 1; j <= i; ++j) + if (i - j <= l1) BM1E.element(j-1, i-1) = 100 * i + j; + BM2E = 777777.0; + for (i = 1; i <= 20; ++i) for (j = 1; j <= i; ++j) + if (i - j <= l2) BM2E.element(j-1, i-1) = (100 * i + j) * 11; + M1 = BM1E - BM1; Print(M1); + M2 = BM2E - BM2; Print(M2); + + // test element function with constant + BM1E = 444444.04; BM2E = 555555.0; + const SymmetricBandMatrix BM1C = BM1, BM2C = BM2; + for (i = 1; i <= 20; ++i) for (j = 1; j <= i; ++j) + if (i - j <= l1) BM1E.element(i-1, j-1) = BM1C.element(i-1, j-1); + for (i = 1; i <= 20; ++i) for (j = 1; j <= i; ++j) + if (i - j <= l2) BM2E.element(i-1, j-1) = BM2C.element(i-1, j-1); + M1 = BM1E - BM1; Print(M1); + M2 = BM2E - BM2; Print(M2); + + // reverse subscripts + BM1E = 444444.0; BM2E = 555555.0; + for (i = 1; i <= 20; ++i) for (j = 1; j <= i; ++j) + if (i - j <= l1) BM1E.element(j-1, i-1) = BM1C.element(j-1, i-1); + for (i = 1; i <= 20; ++i) for (j = 1; j <= i; ++j) + if (i - j <= l2) BM2E.element(j-1, i-1) = BM2C.element(j-1, i-1); + M1 = BM1E - BM1; Print(M1); + M2 = BM2E - BM2; Print(M2); + + // test subscript function with constant + BM1E = 444444.0; BM2E = 555555.0; + for (i = 1; i <= 20; ++i) for (j = 1; j <= i; ++j) + if (i - j <= l1) BM1E(i, j) = BM1C(i, j); + for (i = 1; i <= 20; ++i) for (j = 1; j <= i; ++j) + if (i - j <= l2) BM2E(i, j) = BM2C(i, j); + M1 = BM1E - BM1; Print(M1); + M2 = BM2E - BM2; Print(M2); + + // reverse subscripts + BM1E = 444444.0; BM2E = 555555.0; + for (i = 1; i <= 20; ++i) for (j = 1; j <= i; ++j) + if (i - j <= l1) BM1E(j, i) = BM1C(j, i); + for (i = 1; i <= 20; ++i) for (j = 1; j <= i; ++j) + if (i - j <= l2) BM2E(j, i) = BM2C(j, i); + M1 = BM1E - BM1; Print(M1); + M2 = BM2E - BM2; Print(M2); + + // partly reverse subscripts + BM1E = 444444.0; BM2E = 555555.0; + for (i = 1; i <= 20; ++i) for (j = 1; j <= i; ++j) + if (i - j <= l1) BM1E(j, i) = BM1C(i, j); + for (i = 1; i <= 20; ++i) for (j = 1; j <= i; ++j) + if (i - j <= l2) BM2E(j, i) = BM2C(i, j); + M1 = BM1E - BM1; Print(M1); + M2 = BM2E - BM2; Print(M2); + +} + + + +void trymath() +{ +// cout << "\nSeventeenth test of Matrix package\n"; +// cout << "\n"; + Tracer et("Seventeenth test of Matrix package"); + Tracer::PrintTrace(); + + + { + Tracer et1("Stage 1"); + int i, j; + BandMatrix B(8,3,1); + for (i=1; i<=8; i++) for (j=-3; j<=1; j++) + { int k = i+j; if (k>0 && k<=8) B(i,k) = i + k/64.0; } + + IdentityMatrix I(8); BandMatrix B1; B1 = I; + UpperTriangularMatrix UT = I; Print(Matrix(B1-UT)); + Print(Matrix(B * B - B * 2 + I - (B - I) * (B - I))); + Matrix A = B; BandMatrix C; C = B; + Print(Matrix(B * A - C * 2 + I - (A - I) * (B - I))); + + C.ReSize(8,2,2); C = 0.0; C.Inject(B); + Matrix X = A.t(); + B1.ReSize(8,2,2); B1.Inject(X); Print(Matrix(C.t()-B1)); + + Matrix BI = B.i(); A = A.i()-BI; Clean(A,0.000000001); Print(A); + BandLUMatrix BLU = B.t(); + BI = BLU.i(); A = X.i()-BI; Clean(A,0.000000001); Print(A); + X.ReSize(1,1); + X(1,1) = BLU.LogDeterminant().Value()-B.LogDeterminant().Value(); + Clean(X,0.000000001); Print(X); + + UpperBandMatrix U; U << B; LowerBandMatrix L; L << B; + DiagonalMatrix D; D << B; + Print( Matrix(L + (U - D - B)) ); + + + + for (i=1; i<=8; i++) A.Column(i) << B.Column(i); + Print(Matrix(A-B)); + } + { + Tracer et1("Stage 2"); + BandMatrix A(7,2,2); + int i,j; + for (i=1; i<=7; i++) for (j=1; j<=7; j++) + { + int k=i-j; if (k<0) k = -k; + if (k==0) A(i,j)=6; + else if (k==1) A(i,j) = -4; + else if (k==2) A(i,j) = 1; + A(1,1) = A(7,7) = 5; + } + DiagonalMatrix D(7); D = 0.0; A = A - D; + BandLUMatrix B(A); Matrix M = A; + ColumnVector V(6); + V(1) = LogDeterminant(B).Value(); + V(2) = LogDeterminant(A).Value(); + V(3) = LogDeterminant(M).Value(); + V(4) = Determinant(B); + V(5) = Determinant(A); + V(6) = Determinant(M); + V = V / 64 - 1; Clean(V,0.000000001); Print(V); + ColumnVector X(7); + +#ifdef ATandT + Real a[7]; + // the previous statement causes a core dump in tmti.cpp + // on the HP9000 - seems very strange. Possibly the exception + // mechanism is failing to track the stack correctly. If you get + // this problem replace by the following statement. +// Real* a = new Real [7]; if (!a) exit(1); + a[0]=1; a[1]=2; a[2]=3; a[3]=4; a[4]=5; a[5]=6; a[6]=7; +#else + Real a[] = {1,2,3,4,5,6,7}; +#endif + X << a; +// include these if you are using the previous dynamic definition of a +//#ifdef ATandT +// delete [] a; +//#endif + M = (M.i()*X).t() - (B.i()*X).t() * 2.0 + (A.i()*X).t(); + Clean(M,0.000000001); Print(M); + + + BandMatrix P(80,2,5); ColumnVector CX(80); + for (i=1; i<=80; i++) for (j=1; j<=80; j++) + { int d = i-j; if (d<=2 && d>=-5) P(i,j) = i + j/100.0; } + for (i=1; i<=80; i++) CX(i) = i*100.0; + Matrix MP = P; + ColumnVector V1 = P.i() * CX; ColumnVector V2 = MP.i() * CX; + V = V1 - V2; Clean(V,0.000000001); Print(V); + + V1 = P * V1; V2 = MP * V2; V = V1 - V2; Clean(V,0.000000001); Print(V); + RowVector XX(1); + XX = LogDeterminant(P).Value() / LogDeterminant(MP).Value() - 1.0; + Clean(XX,0.000000001); Print(XX); + + LowerBandMatrix LP(80,5); + for (i=1; i<=80; i++) for (j=1; j<=80; j++) + { int d = i-j; if (d<=5 && d>=0) LP(i,j) = i + j/100.0; } + MP = LP; + XX.ReSize(4); + XX(1) = LogDeterminant(LP).Value(); + XX(2) = LogDeterminant(MP).Value(); + V1 = LP.i() * CX; V2 = MP.i() * CX; + V = V1 - V2; Clean(V,0.000000001); Print(V); + + UpperBandMatrix UP(80,4); + for (i=1; i<=80; i++) for (j=1; j<=80; j++) + { int d = i-j; if (d<=0 && d>=-4) UP(i,j) = i + j/100.0; } + MP = UP; + XX(3) = LogDeterminant(UP).Value(); + XX(4) = LogDeterminant(MP).Value(); + V1 = UP.i() * CX; V2 = MP.i() * CX; + V = V1 - V2; Clean(V,0.000000001); Print(V); + XX = XX / SumAbsoluteValue(XX) - .25; Clean(XX,0.000000001); Print(XX); + } + + { + Tracer et1("Stage 3"); + SymmetricBandMatrix SA(8,5); + int i,j; + for (i=1; i<=8; i++) for (j=1; j<=8; j++) + if (i-j<=5 && 0<=i-j) SA(i,j) =i + j/128.0; + DiagonalMatrix D(8); D = 10; SA = SA + D; + + Matrix MA1(8,8); Matrix MA2(8,8); + for (i=1; i<=8; i++) + { MA1.Column(i) << SA.Column(i); MA2.Row(i) << SA.Row(i); } + Print(Matrix(MA1-MA2)); + + D = 10; SA = SA.t() + D; MA1 = MA1 + D; + Print(Matrix(MA1-SA)); + + UpperBandMatrix UB(8,3); LowerBandMatrix LB(8,4); + D << SA; UB << SA; LB << SA; + SA = SA * 5.0; D = D * 5.0; LB = LB * 5.0; UB = UB * 5.0; + BandMatrix B = LB - D + UB - SA; Print(Matrix(B)); + + SymmetricBandMatrix A(7,2); A = 100.0; + for (i=1; i<=7; i++) for (j=1; j<=7; j++) + { + int k=i-j; + if (k==0) A(i,j)=6; + else if (k==1) A(i,j) = -4; + else if (k==2) A(i,j) = 1; + A(1,1) = A(7,7) = 5; + } + BandLUMatrix C(A); Matrix M = A; + ColumnVector X(8); + X(1) = LogDeterminant(C).Value() - 64; + X(2) = LogDeterminant(A).Value() - 64; + X(3) = LogDeterminant(M).Value() - 64; + X(4) = SumSquare(M) - SumSquare(A); + X(5) = SumAbsoluteValue(M) - SumAbsoluteValue(A); + X(6) = MaximumAbsoluteValue(M) - MaximumAbsoluteValue(A); + X(7) = Trace(M) - Trace(A); + X(8) = Sum(M) - Sum(A); + Clean(X,0.000000001); Print(X); + +#ifdef ATandT + Real a[7]; a[0]=1; a[1]=2; a[2]=3; a[3]=4; a[4]=5; a[5]=6; a[6]=7; +#else + Real a[] = {1,2,3,4,5,6,7}; +#endif + X.ReSize(7); + X << a; + X = M.i()*X - C.i()*X * 2 + A.i()*X; + Clean(X,0.000000001); Print(X); + + + LB << A; UB << A; D << A; + BandMatrix XA = LB + (UB - D); + Print(Matrix(XA - A)); + + for (i=1; i<=7; i++) for (j=1; j<=7; j++) + { + int k=i-j; + if (k==0) A(i,j)=6; + else if (k==1) A(i,j) = -4; + else if (k==2) A(i,j) = 1; + A(1,1) = A(7,7) = 5; + } + D = 1; + + M = LB.i() * LB - D; Clean(M,0.000000001); Print(M); + M = UB.i() * UB - D; Clean(M,0.000000001); Print(M); + M = XA.i() * XA - D; Clean(M,0.000000001); Print(M); + Matrix MUB = UB; Matrix MLB = LB; + M = LB.i() * UB - LB.i() * MUB; Clean(M,0.000000001); Print(M); + M = UB.i() * LB - UB.i() * MLB; Clean(M,0.000000001); Print(M); + M = LB.i() * UB - LB.i() * Matrix(UB); Clean(M,0.000000001); Print(M); + M = UB.i() * LB - UB.i() * Matrix(LB); Clean(M,0.000000001); Print(M); + } + + { + // some tests about adding and subtracting band matrices of different + // sizes - check bandwidth of results + Tracer et1("Stage 4"); + + BandFunctions(9, 3, 9, 3); // equal + BandFunctions(4, 7, 4, 7); // equal + BandFunctions(9, 3, 5, 8); // neither < or > + BandFunctions(5, 8, 9, 3); // neither < or > + BandFunctions(9, 8, 5, 3); // > + BandFunctions(3, 5, 8, 9); // < + + LowerBandFunctions(9, 9); // equal + LowerBandFunctions(4, 4); // equal + LowerBandFunctions(9, 5); // > + LowerBandFunctions(3, 8); // < + + UpperBandFunctions(3, 3); // equal + UpperBandFunctions(7, 7); // equal + UpperBandFunctions(8, 3); // > + UpperBandFunctions(5, 9); // < + + SymmetricBandFunctions(9, 9); // equal + SymmetricBandFunctions(4, 4); // equal + SymmetricBandFunctions(9, 5); // > + SymmetricBandFunctions(3, 8); // < + + DiagonalMatrix D(6); D << 2 << 3 << 4.5 << 1.25 << 9.5 << -5; + BandMatrix BD = D; + UpperBandMatrix UBD; UBD = D; + LowerBandMatrix LBD; LBD = D; + SymmetricBandMatrix SBD = D; + Matrix X = BD - D; Print(X); X = UBD - D; Print(X); + X = LBD - D; Print(X); X = SBD - D; Print(X); + Matrix Test(9,2); + Test(1,1) = BD.BandWidth().Lower(); Test(1,2) = BD.BandWidth().Upper(); + Test(2,1) = UBD.BandWidth().Lower(); Test(2,2) = UBD.BandWidth().Upper(); + Test(3,1) = LBD.BandWidth().Lower(); Test(3,2) = LBD.BandWidth().Upper(); + Test(4,1) = SBD.BandWidth().Lower(); Test(4,2) = SBD.BandWidth().Upper(); + + IdentityMatrix I(10); I *= 5; + BD = I; UBD = I; LBD = I; SBD = I; + X = BD - I; Print(X); X = UBD - I; Print(X); + X = LBD - I; Print(X); X = SBD - I; Print(X); + Test(5,1) = BD.BandWidth().Lower(); Test(5,2) = BD.BandWidth().Upper(); + Test(6,1) = UBD.BandWidth().Lower(); Test(6,2) = UBD.BandWidth().Upper(); + Test(7,1) = LBD.BandWidth().Lower(); Test(7,2) = LBD.BandWidth().Upper(); + Test(8,1) = SBD.BandWidth().Lower(); Test(8,2) = SBD.BandWidth().Upper(); + + RowVector RV = D.AsRow(); I.ReSize(6); BandMatrix BI = I; I = 1; + BD = RV.AsDiagonal() + BI; X = BD - D - I; Print(X); + Test(9,1) = BD.BandWidth().Lower(); Test(9,2) = BD.BandWidth().Upper(); + + Print(Test); + } + + { + // various element functions + Tracer et1("Stage 5"); + + int i, j; + Matrix Count(1, 1); Count = 0; // for counting errors + Matrix M(20,30); + for (i = 1; i <= 20; ++i) for (j = 1; j <= 30; ++j) + M(i, j) = 100 * i + j; + const Matrix CM = M; + for (i = 1; i <= 20; ++i) for (j = 1; j <= 30; ++j) + { + if (M(i, j) != CM(i, j)) ++Count(1,1); + if (M(i, j) != CM.element(i-1, j-1)) ++Count(1,1); + if (M(i, j) != M.element(i-1, j-1)) ++Count(1,1); + } + + UpperTriangularMatrix U(20); + for (i = 1; i <= 20; ++i) for (j = i; j <= 20; ++j) + U(i, j) = 100 * i + j; + const UpperTriangularMatrix CU = U; + for (i = 1; i <= 20; ++i) for (j = i; j <= 20; ++j) + { + if (U(i, j) != CU(i, j)) ++Count(1,1); + if (U(i, j) != CU.element(i-1, j-1)) ++Count(1,1); + if (U(i, j) != U.element(i-1, j-1)) ++Count(1,1); + } + + LowerTriangularMatrix L(20); + for (i = 1; i <= 20; ++i) for (j = 1; j <= i; ++j) + L(i, j) = 100 * i + j; + const LowerTriangularMatrix CL = L; + for (i = 1; i <= 20; ++i) for (j = 1; j <= i; ++j) + { + if (L(i, j) != CL(i, j)) ++Count(1,1); + if (L(i, j) != CL.element(i-1, j-1)) ++Count(1,1); + if (L(i, j) != L.element(i-1, j-1)) ++Count(1,1); + } + + SymmetricMatrix S(20); + for (i = 1; i <= 20; ++i) for (j = 1; j <= i; ++j) + S(i, j) = 100 * i + j; + const SymmetricMatrix CS = S; + for (i = 1; i <= 20; ++i) for (j = 1; j <= 20; ++j) + { + if (S(i, j) != CS(i, j)) ++Count(1,1); + if (S(i, j) != CS.element(i-1, j-1)) ++Count(1,1); + if (S(i, j) != S.element(i-1, j-1)) ++Count(1,1); + if (S(i, j) != S(j, i)) ++Count(1,1); + if (S(i, j) != CS(i, j)) ++Count(1,1); + if (S(i, j) != CS.element(i-1, j-1)) ++Count(1,1); + if (S(i, j) != S.element(i-1, j-1)) ++Count(1,1); + } + + DiagonalMatrix D(20); + for (i = 1; i <= 20; ++i) D(i) = 100 * i + i * i; + const DiagonalMatrix CD = D; + for (i = 1; i <= 20; ++i) + { + if (D(i, i) != CD(i, i)) ++Count(1,1); + if (D(i, i) != CD.element(i-1, i-1)) ++Count(1,1); + if (D(i, i) != D.element(i-1, i-1)) ++Count(1,1); + if (D(i, i) != D(i)) ++Count(1,1); + if (D(i) != CD(i)) ++Count(1,1); + if (D(i) != CD.element(i-1)) ++Count(1,1); + if (D(i) != D.element(i-1)) ++Count(1,1); + } + + RowVector R(20); + for (i = 1; i <= 20; ++i) R(i) = 100 * i + i * i; + const RowVector CR = R; + for (i = 1; i <= 20; ++i) + { + if (R(i) != CR(i)) ++Count(1,1); + if (R(i) != CR.element(i-1)) ++Count(1,1); + if (R(i) != R.element(i-1)) ++Count(1,1); + } + + ColumnVector C(20); + for (i = 1; i <= 20; ++i) C(i) = 100 * i + i * i; + const ColumnVector CC = C; + for (i = 1; i <= 20; ++i) + { + if (C(i) != CC(i)) ++Count(1,1); + if (C(i) != CC.element(i-1)) ++Count(1,1); + if (C(i) != C.element(i-1)) ++Count(1,1); + } + + Print(Count); + + } + + { + // resize to another matrix size + Tracer et1("Stage 6"); + + Matrix A(20, 30); A = 3; + Matrix B(3, 4); + B.ReSize(A); B = 6; B -= 2 * A; Print(B); + + A.ReSize(25,25); A = 12; + + UpperTriangularMatrix U(5); + U.ReSize(A); U = 12; U << (U - A); Print(U); + + LowerTriangularMatrix L(5); + L.ReSize(U); L = 12; L << (L - A); Print(L); + + DiagonalMatrix D(5); + D.ReSize(U); D = 12; D << (D - A); Print(D); + + SymmetricMatrix S(5); + S.ReSize(U); S = 12; S << (S - A); Print(S); + + IdentityMatrix I(5); + I.ReSize(U); I = 12; D << (I - A); Print(D); + + A.ReSize(10, 1); A = 17; + ColumnVector C(5); C.ReSize(A); C = 17; C -= A; Print(C); + + A.ReSize(1, 10); A = 15; + RowVector R(5); R.ReSize(A); R = 15; R -= A; Print(R); + + } + + { + // generic matrix and identity matrix + Tracer et1("Stage 7"); + IdentityMatrix I(5); + I *= 4; + GenericMatrix GM = I; + GM /= 2; + DiagonalMatrix D = GM; + Matrix A = GM + 10; + A -= 10; + A -= D; + Print(A); + } + + { + // SP and upper and lower triangular matrices + Tracer et1("Stage 8"); + UpperTriangularMatrix UT(4); + UT << 3 << 7 << 3 << 9 + << 5 << 2 << 6 + << 8 << 0 + << 4; + LowerTriangularMatrix LT; LT.ReSize(UT); + LT << 2 + << 7 << 9 + << 2 << 8 << 6 + << 1 << 0 << 3 << 5; + + DiagonalMatrix D = SP(UT, LT); + DiagonalMatrix D1(4); + D1 << 6 << 45 << 48 << 20; + D -= D1; Print(D); + BandMatrix BM = SP(UT, LT); + Matrix X = BM - D1; Print(X); + RowVector RV(2); + RV(1) = BM.BandWidth().Lower(); + RV(2) = BM.BandWidth().Upper(); + Print(RV); + } + +// cout << "\nEnd of Seventeenth test\n"; +} + diff --git a/3rdparty/newmat/tmti.cpp b/3rdparty/newmat/tmti.cpp new file mode 100644 index 0000000..01ded9d --- /dev/null +++ b/3rdparty/newmat/tmti.cpp @@ -0,0 +1,209 @@ + +//#define WANT_STREAM + +#include "include.h" + +#include "newmatap.h" +//#include "newmatio.h" + +#include "tmt.h" + +#ifdef use_namespace +using namespace NEWMAT; +#endif + + +void WillNotConverge() +{ + Matrix A(10,10); + Throw(ConvergenceException(A)); +} + +void ReSizeMatrix(Matrix& A) +// for seeing if we can redimension a vector as a matrix +{ A.ReSize(4,5); } + +void trymati() +{ +#ifndef DisableExceptions + Tracer et("Eighteenth test of Matrix package"); + Matrix RUStillThere(10,20); RUStillThere = 1553; + Tracer::PrintTrace(); + + ColumnVector checks(23); checks = 1.0; checks(1) = 0.0; + + Try { WillNotConverge(); } + Catch(ConvergenceException) { checks(2) = 0; } + CatchAll { checks(1) = 1; } + + + Try { Matrix M(10,10); SymmetricMatrix S = M; } + Catch(ConvergenceException) { checks(1) = 1; } + Catch(InternalException) { checks(1) = 1; } + Catch(ProgramException) { checks(3) = 0; } + CatchAll { checks(1) = 1; } + + + Try { Matrix M(10,10); M(10,11) = 2.0; } + Catch(ConvergenceException) { checks(1) = 1; } + Catch(InternalException) { checks(1) = 1; } + Catch(IndexException) { checks(4) = 0; } + CatchAll { checks(1) = 1; } + + Try { Matrix M(10,10); M = 0.0; M = M.i(); } + Catch(ConvergenceException) { checks(1) = 1; } + Catch(InternalException) { checks(1) = 1; } + Catch(ProgramException) { checks(1) = 1; } + Catch(SingularException) { checks(5) = 0; } + Catch(Bad_alloc) { checks(1) = 1; } + CatchAndThrow; + + Try { ColumnVector A(30), B(50); A = 5; B = 3; FFT(A,B,A,B); } + Catch(ConvergenceException) { checks(1) = 1; } + Catch(InternalException) { checks(1) = 1; } + Catch(ProgramException) { checks(6) = 0; } + CatchAll { checks(1) = 1; } + + Try + { + ColumnVector A(30); A = 5; Matrix At = A.t(); + DiagonalMatrix D; + SVD(At,D); + } + Catch(ConvergenceException) { checks(1) = 1; } + Catch(InternalException) { checks(1) = 1; } + Catch(Logic_error) { checks(6) = 0; } + Catch(Bad_alloc) { checks(1) = 1; } + CatchAndThrow; + + Try { BandMatrix X(10,3,4); X(1,10) = 4.0; } + Catch(ConvergenceException) { checks(1) = 1; } + Catch(InternalException) { checks(1) = 1; } + Catch(IndexException) { checks(7) = 0; } + CatchAll { checks(1) = 1; } + + Try + { + SymmetricMatrix S(10); S = 5; + LowerTriangularMatrix L = Cholesky(S); + } + Catch(ConvergenceException) { checks(1) = 1; } + Catch(InternalException) { checks(1) = 1; } + Catch(ProgramException) { checks(1) = 1; } + Catch(NPDException) { checks(8) = 0; } + Catch(Bad_alloc) { checks(1) = 1; } + CatchAndThrow; + + Try { BandMatrix M(10,3,5); M = 0.0; Matrix XM = M.i(); } + Catch(ConvergenceException) { checks(1) = 1; } + Catch(InternalException) { checks(1) = 1; } + Catch(ProgramException) { checks(1) = 1; } + Catch(SingularException) { checks(9) = 0; } + Catch(Bad_alloc) { checks(1) = 1; } + CatchAndThrow; + + Try { ColumnVector X(10); ColumnVector Y; X = 5; X = X - Y; } + Catch(ConvergenceException) { checks(1) = 1; } + Catch(InternalException) { checks(1) = 1; } + Catch(IncompatibleDimensionsException) { checks(10) = 0; } + Catch(Bad_alloc) { checks(1) = 1; } + CatchAndThrow; + + Try + { + UpperTriangularMatrix U(3); RowVector RV(3); RV = 10; + U.Row(2) = RV; + } + Catch(ConvergenceException) { checks(1) = 1; } + Catch(InternalException) { checks(1) = 1; } + Catch(ProgramException) { checks(11) = 0; } + Catch(Bad_alloc) { checks(1) = 1; } + CatchAndThrow; + + Try { DiagonalMatrix D(3); D << 12 << 13 << 14 << 15; } + Catch(ConvergenceException) { checks(1) = 1; } + Catch(InternalException) { checks(1) = 1; } + Catch(ProgramException) { checks(12) = 0; } + CatchAndThrow; + + Try { ColumnVector D(3); D << 12 << 13; D << 1 << 2 << 3; } + Catch(ConvergenceException) { checks(1) = 1; } + Catch(InternalException) { checks(1) = 1; } + Catch(ProgramException) { checks(13) = 0; } + CatchAndThrow; + + + Try { { ColumnVector D(3); D << 12 << 13; } } + Catch(ConvergenceException) { checks(1) = 1; } + Catch(InternalException) { checks(1) = 1; } + Catch(ProgramException) { checks(14) = 0; } + CatchAndThrow; + + Try { ColumnVector CV; ReSizeMatrix(CV); } + Catch(ConvergenceException) { checks(1) = 1; } + Catch(InternalException) { checks(1) = 1; } + Catch(VectorException) { checks(15) = 0; } + CatchAndThrow; + + Try { RowVector RV(20); ReSizeMatrix(RV); } + Catch(ConvergenceException) { checks(1) = 1; } + Catch(InternalException) { checks(1) = 1; } + Catch(VectorException) { checks(16) = 0; } + CatchAndThrow; + + Try + { + UpperTriangularMatrix U(10); U = 5; + DiagonalMatrix D(10); D = 2; + D += U; // illegal conversion + } + Catch(ConvergenceException) { checks(1) = 1; } + Catch(InternalException) { checks(1) = 1; } + Catch(ProgramException) { checks(17) = 0; } + CatchAndThrow; + + Try { Matrix A(2,3), B(2,3); if (A < B) A = B; } + Catch(ConvergenceException) { checks(1) = 1; } + Catch(InternalException) { checks(1) = 1; } + Catch(NotDefinedException) { checks(18) = 0; } + CatchAndThrow; + + Try { SymmetricBandMatrix A(3,1); A = 1; A = A.Reverse(); } + Catch(ConvergenceException) { checks(1) = 1; } + Catch(InternalException) { checks(1) = 1; } + Catch(NotDefinedException) { checks(19) = 0; } + CatchAndThrow; + + Try + { + Matrix A(5,5); A = 1.0; + UpperTriangularMatrix B(10); + B.SubMatrix(3,7,3,7) = A; + } + Catch(ProgramException) { checks(20) = 0; } + CatchAndThrow; + + Try { { RowVector D(1); D << 12 << 13; } } + Catch(InternalException) { checks(1) = 1; } + Catch(ProgramException) { checks(21) = 0; } + CatchAndThrow; + + Try { { RowVector D(0); D << 12; } } + Catch(InternalException) { checks(1) = 1; } + Catch(ProgramException) { checks(22) = 0; } + CatchAndThrow; + + Try { Matrix M(10,10); Matrix XM(3,3); M = 0.0; XM = M.i(); } + Catch(SingularException) { checks(23) = 0; } + CatchAll { checks(1) = 1; } + + Print(checks); + Matrix RUStillThere1(10,20); RUStillThere1 = 1553; + RUStillThere = RUStillThere - RUStillThere1; + Print(RUStillThere); +#endif + +} + + + diff --git a/3rdparty/newmat/tmtj.cpp b/3rdparty/newmat/tmtj.cpp new file mode 100644 index 0000000..2ddbd32 --- /dev/null +++ b/3rdparty/newmat/tmtj.cpp @@ -0,0 +1,152 @@ + +//#define WANT_STREAM + +#include "include.h" + +#include "newmatap.h" +//#include "newmatio.h" + +#include "tmt.h" + +#ifdef use_namespace +using namespace NEWMAT; +#endif + + +void trymatj() +{ + Tracer et("Nineteenth test of Matrix package"); + Tracer::PrintTrace(); + // testing elementwise (SP) products + + { + Tracer et1("Stage 1"); + Matrix A(13,7), B(13,7), C(13,7); + int i,j; + for (i=1;i<=13;i++) for (j=1; j<=7; j++) + { + Real a = (i+j*j)/2, b = (i*j-i/4); + A(i,j)=a; B(i,j)=b; C(i,j)=a*b; + } + // Where complete matrix routine can be used + Matrix X = SP(A,B)-C; Print(X); + X = SP(A,B+1.0)-A-C; Print(X); + X = SP(A-1,B)+B-C; Print(X); + X = SP(A-1,B+1)+B-A-C+1; Print(X); + // Where row-wise routine will be used + A = A.Rows(7,13); B = B.Rows(7,13); C = C.Rows(7,13); + LowerTriangularMatrix LTA; LTA << A; + UpperTriangularMatrix UTB; UTB << B; + DiagonalMatrix DC; DC << C; + X = SP(LTA,UTB) - DC; Print(X); + X = SP(LTA*2,UTB) - DC*2; Print(X); + X = SP(LTA, UTB /2) - DC/2; Print(X); + X = SP(LTA/2, UTB*2) - DC; Print(X); + DiagonalMatrix DX; + DX << SP(A,B); DX << (DX-C); Print(DX); + DX << SP(A*4,B); DX << (DX-C*4); Print(DX); + DX << SP(A,B*2); DX << (DX-C*2); Print(DX); + DX << SP(A/4,B/4); DX << (DX-C/16); Print(DX); + LowerTriangularMatrix LX; + LX = SP(LTA,B); LX << (LX-C); Print(LX); + LX = SP(LTA*3,B); LX << (LX-C*3); Print(LX); + LX = SP(LTA,B*5); LX << (LX-C*5); Print(LX); + LX = SP(-LTA,-B); LX << (LX-C); Print(LX); + } + { + // Symmetric Matrices + Tracer et1("Stage 2"); + SymmetricMatrix A(25), B(25), C(25); + int i,j; + for (i=1;i<=25;i++) for (j=i;j<=25;j++) + { + Real a = i*j +i - j + 3; + Real b = i * i + j; + A(i,j)=a; B(i,j)=b; C(i,j)=a*b; + } + UpperTriangularMatrix UT; + UT << SP(A,B); UT << (UT - C); Print(UT); + Matrix MA = A, X; + X = SP(MA,B)-C; Print(X); + X = SP(A,B)-C; Print(X); + SymmetricBandMatrix BA(25,5), BB(25,5), BC(25,5); + BA.Inject(A); BB.Inject(B); BC.Inject(C); + X = SP(BA,BB)-BC; Print(X); + X = SP(BA*7,BB)-BC*7; Print(X); + X = SP(BA,BB/8)-BC/8; Print(X); + X = SP(BA*16,BB/16)-BC; Print(X); + X = SP(BA,BB); X=X-BC; Print(X); + X = SP(BA*2, BB/2)-BC; Print(X); + X = SP(BA, BB/2)-BC/2; Print(X); + X = SP(BA*2, BB)-BC*2; Print(X); + } + { + // Band matrices + Tracer et1("Stage 3"); + Matrix A(19,19), B(19,19), C(19,19); + int i,j; + for (i=1;i<=19;i++) for (j=1;j<=19;j++) + { + Real a = i*j +i - 1.5*j + 3; + Real b = i * i + j; + A(i,j)=a; B(i,j)=b; C(i,j)=a*b; + } + BandMatrix BA(19,10,7), BB(19,8,15), BC(19,8,7); + BA.Inject(A); BB.Inject(B); BC.Inject(C); + Matrix X; BandMatrix BX; ColumnVector BW(2); + X = SP(BA,BB); X=X-BC; Print(X); + X = SP(BA/8,BB); X=X-BC/8; Print(X); + X = SP(BA,BB*17); X=X-BC*17; Print(X); + X = SP(BA/4,BB*7); X=X-BC*7/4; Print(X); + X = SP(BA,BB)-BC; Print(X); + X = SP(BA/8,BB)-BC/8; Print(X); + X = SP(BA,BB*17)-BC*17; Print(X); + X = SP(BA/4,BB*7)-BC*7/4; Print(X); + BX = SP(BA,BB); + BW(1)=BX.upper-7; BW(2)=BX.lower-8; Print(BW); + + BA.ReSize(19,7,10); BB.ReSize(19,15,8); + BC.ReSize(19,7,8); + BA.Inject(A); BB.Inject(B); BC.Inject(C); + + X = SP(BA,BB); X=X-BC; Print(X); + X = SP(BA/8,BB); X=X-BC/8; Print(X); + X = SP(BA,BB*17); X=X-BC*17; Print(X); + X = SP(BA/4,BB*7); X=X-BC*7/4; Print(X); + X = SP(BA,BB)-BC; Print(X); + X = SP(BA/8,BB)-BC/8; Print(X); + X = SP(BA,BB*17)-BC*17; Print(X); + X = SP(BA/4,BB*7)-BC*7/4; Print(X); + BX = SP(BA,BB); + BW(1)=BX.upper-8; BW(2)=BX.lower-7; Print(BW); + } + { + // SymmetricBandMatrices + Tracer et1("Stage 4"); + Matrix A(7,7), B(7,7); + int i,j; + for (i=1;i<=7;i++) for (j=1;j<=7;j++) + { + Real a = i*j +i - 1.5*j + 3; + Real b = i * i + j; + A(i,j)=a; B(i,j)=b; + } + BandMatrix BA(7,2,4), BB(7,3,1), BC(7,2,1); + BA.Inject(A); + SymmetricBandMatrix SB(7,3); + SymmetricMatrix S; S << (B+B.t()); + SB.Inject(S); A = BA; S = SB; + Matrix X; + X = SP(BA,SB); X=X-SP(A,S); Print(X); + X = SP(BA*2,SB); X=X-SP(A,S*2); Print(X); + X = SP(BA,SB/4); X=X-SP(A/4,S); Print(X); + X = SP(BA*4,SB/4); X=X-SP(A,S); Print(X); + X = SP(BA,SB)-SP(A,S); Print(X); + X = SP(BA*2,SB)-SP(A,S*2); Print(X); + X = SP(BA,SB/4)-SP(A/4,S); Print(X); + X = SP(BA*4,SB/4)-SP(A,S); Print(X); + } + +} + + diff --git a/3rdparty/newmat/tmtk.cpp b/3rdparty/newmat/tmtk.cpp new file mode 100644 index 0000000..500d105 --- /dev/null +++ b/3rdparty/newmat/tmtk.cpp @@ -0,0 +1,188 @@ + +#define WANT_STREAM + +#include "include.h" + +#include "newmatap.h" +#include "newmatio.h" + +#include "tmt.h" + +#ifdef use_namespace +using namespace NEWMAT; +#endif + + +static inline int my_min(int x, int y) { return x < y ? x : y; } +static inline int my_max(int x, int y) { return x > y ? x : y; } + + +#ifdef SETUP_C_SUBSCRIPTS + +void trymatk() +{ + Tracer et("Twentieth test of Matrix package"); + Tracer::PrintTrace(); + // test C subscript package + + + int i,j; Matrix X, Y; + + cout << "Matrix\n"; + Matrix A(15,35), B(15, 35); + for (i=0; i<15; i++) for (j=0; j<35; j++) + { A[i][j] = i+100*j; B(i+1,j+1) = i+100*j; } + X = A - B; Print(X); Y = X; + for (i=0; i<15; i++) for (j=0; j<35; j++) + { + X.element(i,j) = A.element(i,j) - B[i][j]; + Y.element(i,j) = ((const Matrix&)A)[i][j] - B[i][j]; + } + Print(X); Print(Y); + A.CleanUp(); B.CleanUp(); + + cout << "UpperTriangularMatrix\n"; + UpperTriangularMatrix A1(15), B1(15); + for (i=0; i<15; i++) for (j=i; j<15; j++) + { A1[i][j] = i+100*j; B1(i+1,j+1) = i+100*j; } + X = A1 - B1; Print(X); Y = X; + for (i=0; i<15; i++) for (j=i; j<15; j++) + { + X.element(i,j) = A1.element(i,j) - B1[i][j]; + Y.element(i,j) = ((const UpperTriangularMatrix&)A1)[i][j] - B1[i][j]; + } + Print(X); Print(Y); + A1.CleanUp(); B1.CleanUp(); + + cout << "LowerTriangularMatrix\n"; + LowerTriangularMatrix A2(35), B2(35); + for (i=0; i<35; i++) for (j=0; j<=i; j++) + { A2[i][j] = i+100*j; B2(i+1,j+1) = i+100*j; } + X = A2 - B2; Print(X); Y = X; + for (i=0; i<35; i++) for (j=0; j<=i; j++) + { + X.element(i,j) = A2.element(i,j) - B2[i][j]; + Y.element(i,j) = ((const LowerTriangularMatrix&)A2)[i][j] - B2[i][j]; + } + Print(X); Print(Y); + A2.CleanUp(); B2.CleanUp(); + + cout << "SymmetricMatrix\n"; + SymmetricMatrix A3(10), B3(10); + for (i=0; i<10; i++) for (j=0; j<=i; j++) + { A3[i][j] = i+100*j; B3(i+1,j+1) = i+100*j; } + X = A3 - B3; Print(X); Y = X; + for (i=0; i<10; i++) for (j=0; j<=i; j++) + { + X.element(i,j) = A3.element(i,j) - B3[i][j]; + Y.element(i,j) = ((const SymmetricMatrix&)A3)[i][j] - B3[i][j]; + } + Print(X); Print(Y); + A3.CleanUp(); B3.CleanUp(); + + cout << "DiagonalMatrix\n"; + DiagonalMatrix A4(10), B4(10); + for (i=0; i<10; i++) + { A4[i] = i+100; B4(i+1) = i+100; } + X = A4 - B4; Print(X); Y = X; + for (i=0; i<10; i++) + { + X.element(i,i) = A4.element(i) - B4[i]; + Y.element(i,i) = ((const DiagonalMatrix&)A4)[i] - B4[i]; + } + Print(X); Print(Y); + A4.CleanUp(); B4.CleanUp(); + + cout << "RowVector\n"; + RowVector A5(10), B5(10); + for (i=0; i<10; i++) + { A5[i] = i+100; B5(i+1) = i+100; } + X = A5 - B5; Print(X); Y = X; + for (i=0; i<10; i++) + { + X.element(0,i) = A5.element(i) - B5[i]; + Y.element(0,i) = ((const RowVector&)A5)[i] - B5[i]; + } + Print(X); Print(Y); + A5.CleanUp(); B5.CleanUp(); + + cout << "ColumnVector\n"; + ColumnVector A6(10), B6(10); + for (i=0; i<10; i++) + { A6[i] = i+100; B6(i+1) = i+100; } + X = A6 - B6; Print(X); Y = X; + for (i=0; i<10; i++) + { + X.element(i,0) = A6.element(i) - B6[i]; + Y.element(i,0) = ((const ColumnVector&)A6)[i] - B6[i]; + } + Print(X); Print(Y); + A6.CleanUp(); B6.CleanUp(); + + cout << "BandMatrix\n"; + BandMatrix A7(55,10, 5), B7(55, 10, 5); + for (i=0; i<55; i++) for (j=my_max(0,i-10); j<=my_min(54,i+5); j++) + { A7[i][j] = i+100*j; B7(i+1,j+1) = i+100*j; } + X = A7 - B7; Print(X); Y = X; + for (i=0; i<55; i++) for (j=my_max(0,i-10); j<=my_min(54,i+5); j++) + { + X.element(i,j) = A7.element(i,j) - B7[i][j]; + Y.element(i,j) = ((const BandMatrix&)A7)[i][j] - B7[i][j]; + } + Print(X); Print(Y); + A7.CleanUp(); B7.CleanUp(); + + cout << "UpperBandMatrix\n"; + UpperBandMatrix A8(80,15), B8(80,15); + for (i=0; i<80; i++) for (j=i; j<=my_min(79,i+15); j++) + { A8[i][j] = i+100*j; B8(i+1,j+1) = i+100*j; } + X = A8 - B8; Print(X); Y = X; + for (i=0; i<80; i++) for (j=i; j<=my_min(79,i+15); j++) + { + X.element(i,j) = A8.element(i,j) - B8[i][j]; + Y.element(i,j) = ((const UpperBandMatrix&)A8)[i][j] - B8[i][j]; + } + Print(X); Print(Y); + A8.CleanUp(); B8.CleanUp(); + + cout << "LowerBandMatrix\n"; + LowerBandMatrix A9(75,27), B9(75,27); + for (i=0; i<75; i++) for (j=my_max(0,i-27); j<=i; j++) + { A9[i][j] = i+100*j; B9(i+1,j+1) = i+100*j; } + X = A9 - B9; Print(X); Y = X; + for (i=0; i<75; i++) for (j=my_max(0,i-27); j<=i; j++) + { + X.element(i,j) = A9.element(i,j) - B9[i][j]; + Y.element(i,j) = ((const LowerBandMatrix&)A9)[i][j] - B9[i][j]; + } + Print(X); Print(Y); + A9.CleanUp(); B9.CleanUp(); + + cout << "SymmetricBandMatrix\n"; + SymmetricBandMatrix Aa(69,15), Ba(69,15); + for (i=0; i<69; i++) for (j=my_max(0,i-15); j<=i; j++) + { Aa[i][j] = i+100*j; Ba(i+1,j+1) = i+100*j; } + X = Aa - Ba; Print(X); Y = X; + for (i=0; i<69; i++) for (j=my_max(0,i-15); j<=i; j++) + { + X.element(i,j) = Aa.element(i,j) - Ba[i][j]; + Y.element(i,j) = ((const SymmetricBandMatrix&)Aa)[i][j] - Ba[i][j]; + } + Print(X); Print(Y); + Aa.CleanUp(); Ba.CleanUp(); + + +} + + +#else + +void trymatk() +{ + Tracer et("Twentieth test of Matrix package"); + Tracer::PrintTrace(); + // test C subscript package + cout << "C subscripts not enabled, not tested\n\n"; +} + +#endif diff --git a/3rdparty/newmat/tmtl.cpp b/3rdparty/newmat/tmtl.cpp new file mode 100644 index 0000000..37bd7c3 --- /dev/null +++ b/3rdparty/newmat/tmtl.cpp @@ -0,0 +1,198 @@ + +#define WANT_STREAM + +#define WANT_MATH + +#include "newmat.h" + +#include "tmt.h" + +#ifdef use_namespace +using namespace NEWMAT; +#endif + + + +// test maxima and minima + +Real TestMax(const GenericMatrix& GM) +{ + Matrix M = GM; + ColumnVector CV = GM.AsColumn(); + + int c, i, j, k; int n = CV.Nrows(), nr = M.Nrows(), nc = M.Ncols(); + Real x1, x2, x3; + + MatrixBandWidth mbw = GM.BandWidth(); + int u = mbw.Upper(); int l = mbw.Lower(); + bool IsBandMatrix = u > 0 && l > 0 && !(u == 0 && l == 0); + + x1 = GM.MaximumAbsoluteValue(); + x2 = GM.MaximumAbsoluteValue1(i); + if (fabs(CV(i)) != x2) return 1.1; + x3 = GM.MaximumAbsoluteValue2(i,j); + if (fabs(M(i,j)) != x3) return 1.2; + if (x3 != x1) return 1.3; + if (x2 != x1) return 1.4; + c = 0; + for (k = 1; k <= n; k++) + { + Real cvk = fabs(CV(k)); + if (x1 <= cvk) { if (x1 < cvk) return 1.5; else c++; } + } + if (c == 0) return 1.6; + + + x1 = GM.MinimumAbsoluteValue(); + x2 = GM.MinimumAbsoluteValue1(i); + if (fabs(CV(i)) != x2) return 2.1; + x3 = GM.MinimumAbsoluteValue2(i,j); + if (fabs(M(i,j)) != x3) return 2.2; + if (x3 != x1) return 2.3; + if (x2 != CV.MinimumAbsoluteValue()) return 2.4; + c = 0; + if (IsBandMatrix) + { + for (i = 1; i <= nr; i++) for (j = 1; j <= nc; j++) + if (i - j <= l && j - i <= u) + { + Real mij = fabs(M(i,j)); + if (x1 >= mij) { if (x1 > mij) return 2.51; else c++; } + } + } + else + { + for (k = 1; k <= n; k++) + { + Real cvk = fabs(CV(k)); + if (x1 >= cvk) { if (x1 > cvk) return 2.52; else c++; } + } + } + if (c == 0) return 2.6; + + x1 = GM.Maximum(); + x2 = GM.Maximum1(i); + if (CV(i) != x2) return 3.1; + x3 = GM.Maximum2(i,j); + if (M(i,j) != x3) return 3.2; + if (x3 != x1) return 3.3; + if (x2 != CV.Maximum()) return 3.4; + c = 0; + if (IsBandMatrix) + { + for (i = 1; i <= nr; i++) for (j = 1; j <= nc; j++) + if (i - j <= l && j - i <= u) + { + Real mij = M(i,j); + if (x1 <= mij) { if (x1 < mij) return 3.51; else c++; } + } + } + else + { + for (k = 1; k <= n; k++) + { + Real cvk = CV(k); + if (x1 <= cvk) { if (x1 < cvk) return 3.52; else c++; } + } + } + if (c == 0) return 3.6; + + x1 = GM.Minimum(); + x2 = GM.Minimum1(i); + if (CV(i) != x2) return 4.1; + x3 = GM.Minimum2(i,j); + if (M(i,j) != x3) return 4.2; + if (x3 != x1) return 4.3; + if (x2 != CV.Minimum()) return 4.4; + c = 0; + if (IsBandMatrix) + { + for (i = 1; i <= nr; i++) for (j = 1; j <= nc; j++) + if (i - j <= l && j - i <= u) + { + Real mij = M(i,j); + if (x1 >= mij) { if (x1 > mij) return 4.51; else c++; } + } + } + else + { + for (k = 1; k <= n; k++) + { + Real cvk = CV(k); + if (x1 >= cvk) { if (x1 > cvk) return 4.52; else c++; } + } + } + if (c == 0) return 4.6; + + return 0; + +} + + +void trymatl() +{ + Tracer et("Twenty first test of Matrix package"); + Tracer::PrintTrace(); + + Matrix M(4, 4); + M << 1.5 << 1.0 << -4.0 << 4.5 + << 3.5 << 7.0 << 2.0 << -1.0 + << -1.5 << 7.5 << -6.0 << 5.0 + << 0.5 << -8.0 << 5.5 << 4.0; + UpperTriangularMatrix UM; UM << M; + LowerTriangularMatrix LM; LM << -M; + SymmetricMatrix SM; SM << (UM + UM.t()); + BandMatrix BM(4, 1, 2); BM.Inject(M); + DiagonalMatrix DM; DM << M; + SymmetricBandMatrix SBM(4,1); SBM.Inject(M); + RowVector Test(28); int k = 0; + + // tests for different shapes + Test(++k) = TestMax(GenericMatrix(M)); + Test(++k) = TestMax(GenericMatrix(UM)); + Test(++k) = TestMax(GenericMatrix(LM)); + Test(++k) = TestMax(GenericMatrix(SM)); + Test(++k) = TestMax(GenericMatrix(DM)); + Test(++k) = TestMax(GenericMatrix(BM)); + Test(++k) = TestMax(GenericMatrix(SBM)); + + // tests for constant matrices - don't put non-zeros in corners of BM + Matrix MX(4,4); + MX = 1; Test(++k) = TestMax(GenericMatrix(MX)); + BM.Inject(MX); Test(++k) = TestMax(GenericMatrix(BM)); + MX = 0; Test(++k) = TestMax(GenericMatrix(MX)); + BM.Inject(MX); Test(++k) = TestMax(GenericMatrix(BM)); + MX = -1; Test(++k) = TestMax(GenericMatrix(MX)); + BM.Inject(MX); Test(++k) = TestMax(GenericMatrix(BM)); + + // test for non-square + MX = M | (2 * M).t(); Test(++k) = TestMax(GenericMatrix(MX)); + + // test on row and column vector + RowVector RV(6); + RV << 1 << 3 << -5 << 2 << -4 << 3; + Test(++k) = TestMax(GenericMatrix(RV)); + Test(++k) = TestMax(GenericMatrix(RV.t())); + + // test for function form + Test(++k) = (MaximumAbsoluteValue(RV) - 5); + Test(++k) = (MinimumAbsoluteValue(RV) - 1); + Test(++k) = (Maximum(RV) - 3); + Test(++k) = (Minimum(RV) + 5); + Test(++k) = (MaximumAbsoluteValue(-RV) - 5); + Test(++k) = (MinimumAbsoluteValue(-RV) - 1); + Test(++k) = (Maximum(-RV) - 5); + Test(++k) = (Minimum(-RV) + 3); + + // test formulae + RowVector RV2(6); + RV2 << 2 << 8 << 1 << 9 << 3 << -1; + Test(++k) = (MaximumAbsoluteValue(RV+RV2) - 11); + Test(++k) = (MinimumAbsoluteValue(RV+RV2) - 1); + Test(++k) = (Maximum(RV+RV2) - 11); + Test(++k) = (Minimum(RV+RV2) + 4); + + + Print(Test); +} + diff --git a/3rdparty/newmat/tmtm.cpp b/3rdparty/newmat/tmtm.cpp new file mode 100644 index 0000000..0e80e98 --- /dev/null +++ b/3rdparty/newmat/tmtm.cpp @@ -0,0 +1,222 @@ + +#define WANT_STREAM + +#define WANT_MATH + +#include "newmat.h" + +#include "tmt.h" + +#ifdef use_namespace +using namespace NEWMAT; +#endif + + + +// test Kronecker Product + + +void trymatm() +{ + Tracer et("Twenty second test of Matrix package"); + Tracer::PrintTrace(); + + { + Tracer et1("Stage 1"); + + + Matrix A(2,3); + A << 3 << 5 << 2 + << 4 << 1 << 6; + + Matrix B(4,3); + B << 7 << 2 << 9 + << 1 << 3 << 6 + << 4 << 10 << 5 + << 11 << 8 << 12; + + Matrix C(8, 9); + + C.Row(1) << 21 << 6 << 27 << 35 << 10 << 45 << 14 << 4 << 18; + C.Row(2) << 3 << 9 << 18 << 5 << 15 << 30 << 2 << 6 << 12; + C.Row(3) << 12 << 30 << 15 << 20 << 50 << 25 << 8 << 20 << 10; + C.Row(4) << 33 << 24 << 36 << 55 << 40 << 60 << 22 << 16 << 24; + + C.Row(5) << 28 << 8 << 36 << 7 << 2 << 9 << 42 << 12 << 54; + C.Row(6) << 4 << 12 << 24 << 1 << 3 << 6 << 6 << 18 << 36; + C.Row(7) << 16 << 40 << 20 << 4 << 10 << 5 << 24 << 60 << 30; + C.Row(8) << 44 << 32 << 48 << 11 << 8 << 12 << 66 << 48 << 72; + + Matrix AB = KP(A,B) - C; Print(AB); + + IdentityMatrix I1(10); IdentityMatrix I2(15); I2 *= 2; + DiagonalMatrix D = KP(I1, I2) - IdentityMatrix(150) * 2; + Print(D); + } + + { + Tracer et1("Stage 2"); + + UpperTriangularMatrix A(3); + A << 3 << 8 << 5 + << 7 << 2 + << 4; + UpperTriangularMatrix B(4); + B << 4 << 1 << 7 << 2 + << 3 << 9 << 8 + << 1 << 5 + << 6; + + UpperTriangularMatrix C(12); + + C.Row(1) <<12<< 3<<21<< 6 <<32<< 8<<56<<16 <<20<< 5<<35<<10; + C.Row(2) << 9<<27<<24 << 0<<24<<72<<64 << 0<<15<<45<<40; + C.Row(3) << 3<<15 << 0<< 0<< 8<<40 << 0<< 0<< 5<<25; + C.Row(4) <<18 << 0<< 0<< 0<<48 << 0<< 0<< 0<<30; + + C.Row(5) <<28<< 7<<49<<14 << 8<< 2<<14<< 4; + C.Row(6) <<21<<63<<56 << 0<< 6<<18<<16; + C.Row(7) << 7<<35 << 0<< 0<< 2<<10; + C.Row(8) <<42 << 0<< 0<< 0<<12; + + C.Row(9) <<16<< 4<<28<< 8; + C.Row(10) <<12<<36<<32; + C.Row(11) << 4<<20; + C.Row(12) <<24; + + + UpperTriangularMatrix AB = KP(A,B) - C; Print(AB); + + LowerTriangularMatrix BT = B.t(); Matrix N(12,12); + + N.Row(1) <<12 << 0<< 0<< 0 <<32<< 0<< 0<< 0 <<20<< 0<< 0<< 0; + N.Row(2) << 3 << 9<< 0<< 0 << 8<<24<< 0<< 0 << 5<<15<< 0<< 0; + N.Row(3) <<21 <<27<< 3<< 0 <<56<<72<< 8<< 0 <<35<<45<< 5<< 0; + N.Row(4) << 6 <<24<<15<<18 <<16<<64<<40<<48 <<10<<40<<25<<30; + + N.Row(5) << 0 << 0<< 0<< 0 <<28<< 0<< 0<< 0 << 8<< 0<< 0<< 0; + N.Row(6) << 0 << 0<< 0<< 0 << 7<<21<< 0<< 0 << 2<< 6<< 0<< 0; + N.Row(7) << 0 << 0<< 0<< 0 <<49<<63<< 7<< 0 <<14<<18<< 2<< 0; + N.Row(8) << 0 << 0<< 0<< 0 <<14<<56<<35<<42 << 4<<16<<10<<12; + + N.Row(9) << 0 << 0<< 0<< 0 << 0<< 0<< 0<< 0 <<16<< 0<< 0<< 0; + N.Row(10)<< 0 << 0<< 0<< 0 << 0<< 0<< 0<< 0 << 4<<12<< 0<< 0; + N.Row(11)<< 0 << 0<< 0<< 0 << 0<< 0<< 0<< 0 <<28<<36<< 4<< 0; + N.Row(12)<< 0 << 0<< 0<< 0 << 0<< 0<< 0<< 0 << 8<<32<<20<<24; + + Matrix N1 = KP(A, BT); N1 -= N; Print(N1); + AB << KP(A, BT); AB << (AB - N); Print(AB); + BT << KP(A, BT); BT << (BT - N); Print(BT); + + LowerTriangularMatrix AT = A.t(); + N1 = KP(AT, B); N1 -= N.t(); Print(N1); + AB << KP(AT, B); AB << (AB - N.t()); Print(AB); + BT << KP(AT, B); BT << (BT - N.t()); Print(BT); + } + + { + Tracer et1("Stage 3"); + + BandMatrix BMA(6,2,3); + BMA.Row(1) << 5.25 << 4.75 << 2.25 << 1.75; + BMA.Row(2) << 1.25 << 9.75 << 4.50 << 0.25 << 1.50; + BMA.Row(3) << 7.75 << 1.50 << 3.00 << 4.25 << 0.50 << 5.50; + BMA.Row(4) << 2.75 << 9.00 << 8.00 << 3.25 << 3.50; + BMA.Row(5) << 8.75 << 6.25 << 5.00 << 5.75; + BMA.Row(6) << 3.75 << 6.75 << 6.00; + + Matrix A = BMA; + + BandMatrix BMB(4,2,1); + BMB.Row(1) << 4.5 << 9.5; + BMB.Row(2) << 1.5 << 6.0 << 2.0; + BMB.Row(3) << 0.5 << 2.5 << 8.5 << 7.5; + BMB.Row(4) << 3.0 << 4.0 << 6.5; + + Matrix B = BMB; + + BandMatrix BMC = KP(BMA, BMB); + BandMatrix BMC1(24,11,15); + BMC1.Inject(Matrix(KP(BMA, B))); // not directly Band Matrix + Matrix C2 = KP(A, BMB); + Matrix C = KP(A, B); + + Matrix M = C - BMC; Print(M); + M = C - BMC1; Print(M); + M = C - C2; Print(M); + + RowVector X(4); + X(1) = BMC.BandWidth().Lower() - 10; + X(2) = BMC.BandWidth().Upper() - 13; + X(3) = BMC1.BandWidth().Lower() - 11; + X(4) = BMC1.BandWidth().Upper() - 15; + Print(X); + + UpperTriangularMatrix UT; UT << KP(BMA, BMB); + UpperTriangularMatrix UT1; UT1 << (C - UT); Print(UT1); + LowerTriangularMatrix LT; LT << KP(BMA, BMB); + LowerTriangularMatrix LT1; LT1 << (C - LT); Print(LT1); + } + + { + Tracer et1("Stage 4"); + + SymmetricMatrix SM1(4); + SM1.Row(1) << 2; + SM1.Row(2) << 4 << 5; + SM1.Row(3) << 9 << 2 << 1; + SM1.Row(4) << 3 << 6 << 8 << 2; + + SymmetricMatrix SM2(3); + SM2.Row(1) << 3; + SM2.Row(2) << -7 << -6; + SM2.Row(3) << 4 << -2 << -1; + + SymmetricMatrix SM = KP(SM1, SM2); + Matrix M1 = SM1; Matrix M2 = SM2; + Matrix M = KP(SM1, SM2); M -= SM; Print(M); + M = KP(SM1, SM2) - SM; Print(M); + M = KP(M1, SM2) - SM; Print(M); + M = KP(SM1, M2) - SM; Print(M); + M = KP(M1, M2); M -= SM; Print(M); + } + + { + Tracer et1("Stage 5"); + + Matrix A(2,3); + A << 3 << 5 << 2 + << 4 << 1 << 6; + + Matrix B(3,4); + B << 7 << 2 << 9 << 11 + << 1 << 3 << 6 << 8 + << 4 << 10 << 5 << 12; + + RowVector C(2); C << 3 << 7; + ColumnVector D(4); D << 0 << 5 << 13 << 11; + + Matrix M = KP(C * A, B * D) - KP(C, B) * KP(A, D); Print(M); + } + + { + Tracer et1("Stage 6"); + + RowVector A(3), B(5), C(15); + A << 5 << 2 << 4; + B << 3 << 2 << 0 << 1 << 6; + C << 15 << 10 << 0 << 5 << 30 + << 6 << 4 << 0 << 2 << 12 + << 12 << 8 << 0 << 4 << 24; + Matrix N = KP(A, B) - C; Print(N); + N = KP(A.t(), B.t()) - C.t(); Print(N); + N = KP(A.AsDiagonal(), B.AsDiagonal()) - C.AsDiagonal(); Print(N); + } + +} + + + + + + diff --git a/3rdparty/sparse/csparse.cc b/3rdparty/sparse/csparse.cc new file mode 100644 index 0000000..4d74204 --- /dev/null +++ b/3rdparty/sparse/csparse.cc @@ -0,0 +1,2118 @@ +#include +#include +#include +#include + +#include "csparse.h" + +cs *cs_add ( const cs *A, const cs *B, double alpha, double beta ) +/* + Purpose: + + CS_ADD computes C = alpha*A + beta*B for sparse A and B. + + Reference: + + Timothy Davis, + Direct Methods for Sparse Linear Systems, + SIAM, Philadelphia, 2006. +*/ +{ + int p, j, nz = 0, anz, *Cp, *Ci, *Bp, m, n, bnz, *w, values ; + double *x, *Bx, *Cx ; + cs *C ; + if (!A || !B) return (NULL) ; /* check inputs */ + m = A->m ; anz = A->p [A->n] ; + n = B->n ; Bp = B->p ; Bx = B->x ; bnz = Bp [n] ; + w = (int*)cs_calloc (m, sizeof (int)) ; + values = (A->x != NULL) && (Bx != NULL) ; + x = values ? (double*)cs_malloc (m, sizeof (double)) : NULL ; + C = cs_spalloc (m, n, anz + bnz, values, 0) ; + if (!C || !w || (values && !x)) return (cs_done (C, w, x, 0)) ; + Cp = C->p ; Ci = C->i ; Cx = C->x ; + for (j = 0 ; j < n ; j++) + { + Cp [j] = nz ; /* column j of C starts here */ + nz = cs_scatter (A, j, alpha, w, x, j+1, C, nz) ; /* alpha*A(:,j)*/ + nz = cs_scatter (B, j, beta, w, x, j+1, C, nz) ; /* beta*B(:,j) */ + if (values) for (p = Cp [j] ; p < nz ; p++) Cx [p] = x [Ci [p]] ; + } + Cp [n] = nz ; /* finalize the last column of C */ + cs_sprealloc (C, 0) ; /* remove extra space from C */ + return (cs_done (C, w, x, 1)) ; /* success; free workspace, return C */ +} +static int cs_wclear (int mark, int lemax, int *w, int n) +/* + Purpose: + + CS_WCLEAR clears W. + + Reference: + + Timothy Davis, + Direct Methods for Sparse Linear Systems, + SIAM, Philadelphia, 2006. +*/ +{ + int k ; + if (mark < 2 || (mark + lemax < 0)) + { + for (k = 0 ; k < n ; k++) if (w [k] != 0) w [k] = 1 ; + mark = 2 ; + } + return (mark) ; /* at this point, w [0..n-1] < mark holds */ +} + +/* keep off-diagonal entries; drop diagonal entries */ +static int cs_diag (int i, int j, double aij, void *other) +{ + return (i != j); +} + +/* p = amd(A+A') if symmetric is true, or amd(A'A) otherwise */ +int *cs_amd ( const cs *A, int order ) +/* + Purpose: + + CS_AMD carries out the approximate minimum degree algorithm. + + Reference: + + Timothy Davis, + Direct Methods for Sparse Linear Systems, + SIAM, Philadelphia, 2006. + + Parameters: + + Input, int ORDER: + -1:natural, + 0:Cholesky, + 1:LU, + 2:QR +*/ +{ + cs *C, *A2, *AT ; + int *Cp, *Ci, *last, *ww, *len, *nv, *next, *P, *head, *elen, *degree, *w, + *hhead, *ATp, *ATi, d, dk, dext, lemax = 0, e, elenk, eln, i, j, k, k1, + k2, k3, jlast, ln, dense, nzmax, mindeg = 0, nvi, nvj, nvk, mark, wnvi, + ok, cnz, nel = 0, p, p1, p2, p3, p4, pj, pk, pk1, pk2, pn, q, n, m ; + unsigned int h ; + /* --- Construct matrix C ----------------------------------------------- */ + if (!A || order < 0) return (NULL) ; /* check inputs; quick return */ + AT = cs_transpose (A, 0) ; /* compute A' */ + if (!AT) return (NULL) ; + m = A->m ; n = A->n ; + dense = (int)CS_MAX (16, 10 * sqrt ((double) n)) ; /* find dense threshold */ + dense = CS_MIN (n-2, dense) ; + if (order == 0 && n == m) + { + C = cs_add (A, AT, 0, 0) ; /* C = A+A' */ + } + else if (order == 1) + { + ATp = AT->p ; /* drop dense columns from AT */ + ATi = AT->i ; + for (p2 = 0, j = 0 ; j < m ; j++) + { + p = ATp [j] ; /* column j of AT starts here */ + ATp [j] = p2 ; /* new column j starts here */ + if (ATp [j+1] - p > dense) continue ; /* skip dense col j */ + for ( ; p < ATp [j+1] ; p++) ATi [p2++] = ATi [p] ; + } + ATp [m] = p2 ; /* finalize AT */ + A2 = cs_transpose (AT, 0) ; /* A2 = AT' */ + C = A2 ? cs_multiply (AT, A2) : NULL ; /* C=A'*A with no dense rows */ + cs_spfree (A2) ; + } + else + { + C = cs_multiply (AT, A) ; /* C=A'*A */ + } + cs_spfree (AT) ; + if (!C) return (NULL) ; + P = (int*)cs_malloc (n+1, sizeof (int)) ; /* allocate result */ + ww = (int*)cs_malloc (8*(n+1), sizeof (int)) ;/* get workspace */ + len = ww ; nv = ww + (n+1) ; next = ww + 2*(n+1) ; + head = ww + 3*(n+1) ; elen = ww + 4*(n+1) ; degree = ww + 5*(n+1) ; + w = ww + 6*(n+1) ; hhead = ww + 7*(n+1) ; + last = P ; /* use P as workspace for last */ + cs_fkeep (C, &cs_diag, NULL) ; /* drop diagonal entries */ + Cp = C->p ; + cnz = Cp [n] ; + if (!cs_sprealloc (C, cnz+cnz/5+2*n)) return (cs_idone (P, C, ww, 0)) ; + /* --- Initialize quotient graph ---------------------------------------- */ + for (k = 0 ; k < n ; k++) len [k] = Cp [k+1] - Cp [k] ; + len [n] = 0 ; + nzmax = C->nzmax ; + Ci = C->i ; + for (i = 0 ; i <= n ; i++) + { + head [i] = -1 ; /* degree list i is empty */ + last [i] = -1 ; + next [i] = -1 ; + hhead [i] = -1 ; /* hash list i is empty */ + nv [i] = 1 ; /* node i is just one node */ + w [i] = 1 ; /* node i is alive */ + elen [i] = 0 ; /* Ek of node i is empty */ + degree [i] = len [i] ; /* degree of node i */ + } + mark = cs_wclear (0, 0, w, n) ; /* clear w */ + elen [n] = -2 ; /* n is a dead element */ + Cp [n] = -1 ; /* n is a root of assembly tree */ + w [n] = 0 ; /* n is a dead element */ + /* --- Initialize degree lists ------------------------------------------ */ + for (i = 0 ; i < n ; i++) + { + d = degree [i] ; + if (d == 0) /* node i is empty */ + { + elen [i] = -2 ; /* element i is dead */ + nel++ ; + Cp [i] = -1 ; /* i is a root of assemby tree */ + w [i] = 0 ; + } + else if (d > dense) /* node i is dense */ + { + nv [i] = 0 ; /* absorb i into element n */ + elen [i] = -1 ; /* node i is dead */ + nel++ ; + Cp [i] = CS_FLIP (n) ; + nv [n]++ ; + } + else + { + if (head [d] != -1) last [head [d]] = i ; + next [i] = head [d] ; /* put node i in degree list d */ + head [d] = i ; + } + } + while (nel < n) /* while (selecting pivots) do */ + { + /* --- Select node of minimum approximate degree -------------------- */ + for (k = -1 ; mindeg < n && (k = head [mindeg]) == -1 ; mindeg++) ; + if (next [k] != -1) last [next [k]] = -1 ; + head [mindeg] = next [k] ; /* remove k from degree list */ + elenk = elen [k] ; /* elenk = |Ek| */ + nvk = nv [k] ; /* # of nodes k represents */ + nel += nvk ; /* nv[k] nodes of A eliminated */ + /* --- Garbage collection ------------------------------------------- */ + if (elenk > 0 && cnz + mindeg >= nzmax) + { + for (j = 0 ; j < n ; j++) + { + if ((p = Cp [j]) >= 0) /* j is a live node or element */ + { + Cp [j] = Ci [p] ; /* save first entry of object */ + Ci [p] = CS_FLIP (j) ; /* first entry is now CS_FLIP(j) */ + } + } + for (q = 0, p = 0 ; p < cnz ; ) /* scan all of memory */ + { + if ((j = CS_FLIP (Ci [p++])) >= 0) /* found object j */ + { + Ci [q] = Cp [j] ; /* restore first entry of object */ + Cp [j] = q++ ; /* new pointer to object j */ + for (k3 = 0 ; k3 < len [j]-1 ; k3++) Ci [q++] = Ci [p++] ; + } + } + cnz = q ; /* Ci [cnz...nzmax-1] now free */ + } + /* --- Construct new element ---------------------------------------- */ + dk = 0 ; + nv [k] = -nvk ; /* flag k as in Lk */ + p = Cp [k] ; + pk1 = (elenk == 0) ? p : cnz ; /* do in place if elen[k] == 0 */ + pk2 = pk1 ; + for (k1 = 1 ; k1 <= elenk + 1 ; k1++) + { + if (k1 > elenk) + { + e = k ; /* search the nodes in k */ + pj = p ; /* list of nodes starts at Ci[pj]*/ + ln = len [k] - elenk ; /* length of list of nodes in k */ + } + else + { + e = Ci [p++] ; /* search the nodes in e */ + pj = Cp [e] ; + ln = len [e] ; /* length of list of nodes in e */ + } + for (k2 = 1 ; k2 <= ln ; k2++) + { + i = Ci [pj++] ; + if ((nvi = nv [i]) <= 0) continue ; /* node i dead, or seen */ + dk += nvi ; /* degree[Lk] += size of node i */ + nv [i] = -nvi ; /* negate nv[i] to denote i in Lk*/ + Ci [pk2++] = i ; /* place i in Lk */ + if (next [i] != -1) last [next [i]] = last [i] ; + if (last [i] != -1) /* remove i from degree list */ + { + next [last [i]] = next [i] ; + } + else + { + head [degree [i]] = next [i] ; + } + } + if (e != k) + { + Cp [e] = CS_FLIP (k) ; /* absorb e into k */ + w [e] = 0 ; /* e is now a dead element */ + } + } + if (elenk != 0) cnz = pk2 ; /* Ci [cnz...nzmax] is free */ + degree [k] = dk ; /* external degree of k - |Lk\i| */ + Cp [k] = pk1 ; /* element k is in Ci[pk1..pk2-1] */ + len [k] = pk2 - pk1 ; + elen [k] = -2 ; /* k is now an element */ + /* --- Find set differences ----------------------------------------- */ + mark = cs_wclear (mark, lemax, w, n) ; /* clear w if necessary */ + for (pk = pk1 ; pk < pk2 ; pk++) /* scan 1: find |Le\Lk| */ + { + i = Ci [pk] ; + if ((eln = elen [i]) <= 0) continue ;/* skip if elen[i] empty */ + nvi = -nv [i] ; /* nv [i] was negated */ + wnvi = mark - nvi ; + for (p = Cp [i] ; p <= Cp [i] + eln - 1 ; p++) /* scan Ei */ + { + e = Ci [p] ; + if (w [e] >= mark) + { + w [e] -= nvi ; /* decrement |Le\Lk| */ + } + else if (w [e] != 0) /* ensure e is a live element */ + { + w [e] = degree [e] + wnvi ; /* 1st time e seen in scan 1 */ + } + } + } + /* --- Degree update ------------------------------------------------ */ + for (pk = pk1 ; pk < pk2 ; pk++) /* scan2: degree update */ + { + i = Ci [pk] ; /* consider node i in Lk */ + p1 = Cp [i] ; + p2 = p1 + elen [i] - 1 ; + pn = p1 ; + for (h = 0, d = 0, p = p1 ; p <= p2 ; p++) /* scan Ei */ + { + e = Ci [p] ; + if (w [e] != 0) /* e is an unabsorbed element */ + { + dext = w [e] - mark ; /* dext = |Le\Lk| */ + if (dext > 0) + { + d += dext ; /* sum up the set differences */ + Ci [pn++] = e ; /* keep e in Ei */ + h += e ; /* compute the hash of node i */ + } + else + { + Cp [e] = CS_FLIP (k) ; /* aggressive absorb. e->k */ + w [e] = 0 ; /* e is a dead element */ + } + } + } + elen [i] = pn - p1 + 1 ; /* elen[i] = |Ei| */ + p3 = pn ; + p4 = p1 + len [i] ; + for (p = p2 + 1 ; p < p4 ; p++) /* prune edges in Ai */ + { + j = Ci [p] ; + if ((nvj = nv [j]) <= 0) continue ; /* node j dead or in Lk */ + d += nvj ; /* degree(i) += |j| */ + Ci [pn++] = j ; /* place j in node list of i */ + h += j ; /* compute hash for node i */ + } + if (d == 0) /* check for mass elimination */ + { + Cp [i] = CS_FLIP (k) ; /* absorb i into k */ + nvi = -nv [i] ; + dk -= nvi ; /* |Lk| -= |i| */ + nvk += nvi ; /* |k| += nv[i] */ + nel += nvi ; + nv [i] = 0 ; + elen [i] = -1 ; /* node i is dead */ + } + else + { + degree [i] = CS_MIN (degree [i], d) ; /* update degree(i) */ + Ci [pn] = Ci [p3] ; /* move first node to end */ + Ci [p3] = Ci [p1] ; /* move 1st el. to end of Ei */ + Ci [p1] = k ; /* add k as 1st element in of Ei */ + len [i] = pn - p1 + 1 ; /* new len of adj. list of node i */ + h %= n ; /* finalize hash of i */ + next [i] = hhead [h] ; /* place i in hash bucket */ + hhead [h] = i ; + last [i] = h ; /* save hash of i in last[i] */ + } + } /* scan2 is done */ + degree [k] = dk ; /* finalize |Lk| */ + lemax = CS_MAX (lemax, dk) ; + mark = cs_wclear (mark+lemax, lemax, w, n) ; /* clear w */ + /* --- Supernode detection ------------------------------------------ */ + for (pk = pk1 ; pk < pk2 ; pk++) + { + i = Ci [pk] ; + if (nv [i] >= 0) continue ; /* skip if i is dead */ + h = last [i] ; /* scan hash bucket of node i */ + i = hhead [h] ; + hhead [h] = -1 ; /* hash bucket will be empty */ + for ( ; i != -1 && next [i] != -1 ; i = next [i], mark++) + { + ln = len [i] ; + eln = elen [i] ; + for (p = Cp[i]+1 ; p <= Cp[i]+ln-1 ; p++) w [Ci [p]] = mark ; + jlast = i ; + for (j = next [i] ; j != -1 ; ) /* compare i with all j */ + { + ok = (len [j] == ln) && (elen [j] == eln) ; + for (p = Cp [j] + 1 ; ok && p <= Cp [j] + ln - 1 ; p++) + { + if (w [Ci [p]] != mark) ok = 0 ; /* compare i and j*/ + } + if (ok) /* i and j are identical */ + { + Cp [j] = CS_FLIP (i) ; /* absorb j into i */ + nv [i] += nv [j] ; + nv [j] = 0 ; + elen [j] = -1 ; /* node j is dead */ + j = next [j] ; /* delete j from hash bucket */ + next [jlast] = j ; + } + else + { + jlast = j ; /* j and i are different */ + j = next [j] ; + } + } + } + } + /* --- Finalize new element------------------------------------------ */ + for (p = pk1, pk = pk1 ; pk < pk2 ; pk++) /* finalize Lk */ + { + i = Ci [pk] ; + if ((nvi = -nv [i]) <= 0) continue ;/* skip if i is dead */ + nv [i] = nvi ; /* restore nv[i] */ + d = degree [i] + dk - nvi ; /* compute external degree(i) */ + d = CS_MIN (d, n - nel - nvi) ; + if (head [d] != -1) last [head [d]] = i ; + next [i] = head [d] ; /* put i back in degree list */ + last [i] = -1 ; + head [d] = i ; + mindeg = CS_MIN (mindeg, d) ; /* find new minimum degree */ + degree [i] = d ; + Ci [p++] = i ; /* place i in Lk */ + } + nv [k] = nvk ; /* # nodes absorbed into k */ + if ((len [k] = p-pk1) == 0) /* length of adj list of element k*/ + { + Cp [k] = -1 ; /* k is a root of the tree */ + w [k] = 0 ; /* k is now a dead element */ + } + if (elenk != 0) cnz = p ; /* free unused space in Lk */ + } + /* --- Postordering ----------------------------------------------------- */ + for (i = 0 ; i < n ; i++) Cp [i] = CS_FLIP (Cp [i]) ;/* fix assembly tree */ + for (j = 0 ; j <= n ; j++) head [j] = -1 ; + for (j = n ; j >= 0 ; j--) /* place unordered nodes in lists */ + { + if (nv [j] > 0) continue ; /* skip if j is an element */ + next [j] = head [Cp [j]] ; /* place j in list of its parent */ + head [Cp [j]] = j ; + } + for (e = n ; e >= 0 ; e--) /* place elements in lists */ + { + if (nv [e] <= 0) continue ; /* skip unless e is an element */ + if (Cp [e] != -1) + { + next [e] = head [Cp [e]] ; /* place e in list of its parent */ + head [Cp [e]] = e ; + } + } + for (k = 0, i = 0 ; i <= n ; i++) /* postorder the assembly tree */ + { + if (Cp [i] == -1) k = cs_tdfs (i, k, head, next, P, w) ; + } + return (cs_idone (P, C, ww, 1)) ; +} + +/* compute nonzero pattern of L(k,:) */ +static +int cs_ereach (const cs *A, int k, const int *parent, int *s, int *w, + double *x, int top) +{ + int i, p, len, *Ap = A->p, *Ai = A->i ; + double *Ax = A->x ; + for (p = Ap [k] ; p < Ap [k+1] ; p++) /* get pattern of L(k,:) */ + { + i = Ai [p] ; /* A(i,k) is nonzero */ + if (i > k) continue ; /* only use upper triangular part of A */ + x [i] = Ax [p] ; /* x(i) = A(i,k) */ + for (len = 0 ; w [i] != k ; i = parent [i]) /* traverse up etree */ + { + s [len++] = i ; /* L(k,i) is nonzero */ + w [i] = k ; /* mark i as visited */ + } + while (len > 0) s [--top] = s [--len] ; /* push path onto stack */ + } + return (top) ; /* s [top..n-1] contains pattern of L(k,:)*/ +} + +/* L = chol (A, [Pinv parent cp]), Pinv is optional */ +csn *cs_chol (const cs *A, const css *S) +{ + double d, lki, *Lx, *x ; + int top, i, p, k, n, *Li, *Lp, *cp, *Pinv, *w, *s, *c, *parent ; + cs *L, *C, *E ; + csn *N ; + if (!A || !S || !S->cp || !S->parent) return (NULL) ; /* check inputs */ + n = A->n ; + N = (csn*)cs_calloc (1, sizeof (csn)) ; + w = (int*)cs_malloc (3*n, sizeof (int)) ; s = w + n, c = w + 2*n ; + x = (double*)cs_malloc (n, sizeof (double)) ; + cp = S->cp ; Pinv = S->Pinv ; parent = S->parent ; + C = Pinv ? cs_symperm (A, Pinv, 1) : ((cs *) A) ; + E = Pinv ? C : NULL ; + if (!N || !w || !x || !C) return (cs_ndone (N, E, w, x, 0)) ; + N->L = L = cs_spalloc (n, n, cp [n], 1, 0) ; + if (!L) return (cs_ndone (N, E, w, x, 0)) ; + Lp = L->p ; Li = L->i ; Lx = L->x ; + for (k = 0 ; k < n ; k++) + { + /* --- Nonzero pattern of L(k,:) ------------------------------------ */ + Lp [k] = c [k] = cp [k] ; /* column k of L starts here */ + x [k] = 0 ; /* x (0:k) is now zero */ + w [k] = k ; /* mark node k as visited */ + top = cs_ereach (C, k, parent, s, w, x, n) ; /* find row k of L*/ + d = x [k] ; /* d = C(k,k) */ + x [k] = 0 ; /* clear workspace for k+1st iteration */ + /* --- Triangular solve --------------------------------------------- */ + for ( ; top < n ; top++) /* solve L(0:k-1,0:k-1) * x = C(:,k) */ + { + i = s [top] ; /* s [top..n-1] is pattern of L(k,:) */ + lki = x [i] / Lx [Lp [i]] ; /* L(k,i) = x (i) / L(i,i) */ + x [i] = 0 ; /* clear workspace for k+1st iteration */ + for (p = Lp [i] + 1 ; p < c [i] ; p++) + { + x [Li [p]] -= Lx [p] * lki ; + } + d -= lki * lki ; /* d = d - L(k,i)*L(k,i) */ + p = c [i]++ ; + Li [p] = k ; /* store L(k,i) in column i */ + Lx [p] = lki ; + } + /* --- Compute L(k,k) ----------------------------------------------- */ + if (d <= 0) return (cs_ndone (N, E, w, x, 0)) ; /* not pos def */ + p = c [k]++ ; + Li [p] = k ; /* store L(k,k) = sqrt (d) in column k */ + Lx [p] = sqrt (d) ; + } + Lp [n] = cp [n] ; /* finalize L */ + return (cs_ndone (N, E, w, x, 1)) ; /* success: free E,w,x; return N */ +} + + +/* x=A\b where A is symmetric positive definite; b overwritten with solution */ +int cs_cholsol (const cs *A, double *b, int order) +{ + double *x ; + css *S ; + csn *N ; + int n, ok ; + if (!A || !b) return (0) ; /* check inputs */ + n = A->n ; + S = cs_schol (A, order) ; /* ordering and symbolic analysis */ + N = cs_chol (A, S) ; /* numeric Cholesky factorization */ + x = (double*)cs_malloc (n, sizeof (double)) ; + ok = (S && N && x) ; + if (ok) + { + cs_ipvec (n, S->Pinv, b, x) ; /* x = P*b */ + cs_lsolve (N->L, x) ; /* x = L\x */ + cs_ltsolve (N->L, x) ; /* x = L'\x */ + cs_pvec (n, S->Pinv, x, b) ; /* b = P'*x */ + } + cs_free (x) ; + cs_sfree (S) ; + cs_nfree (N) ; + return (ok) ; +} + +/* process edge (j,i) of the matrix */ +static void cs_cedge (int j, int i, const int *first, int *maxfirst, int *delta, + int *prevleaf, int *ancestor) +{ + int q, s, sparent, jprev ; + if (i <= j || first [j] <= maxfirst [i]) return ; + maxfirst [i] = first [j] ; /* update max first[j] seen so far */ + jprev = prevleaf [i] ; /* j is a leaf of the ith subtree */ + delta [j]++ ; /* A(i,j) is in the skeleton matrix */ + if (jprev != -1) + { + /* q = least common ancestor of jprev and j */ + for (q = jprev ; q != ancestor [q] ; q = ancestor [q]) ; + for (s = jprev ; s != q ; s = sparent) + { + sparent = ancestor [s] ; /* path compression */ + ancestor [s] = q ; + } + delta [q]-- ; /* decrement to account for overlap in q */ + } + prevleaf [i] = j ; /* j is now previous leaf of ith subtree */ +} + +/* colcount = column counts of LL'=A or LL'=A'A, given parent & post ordering */ +int *cs_counts (const cs *A, const int *parent, const int *post, int ata) +{ + int i, j, k, p, n, m, ii, s, *ATp, *ATi, *maxfirst, *prevleaf, *ancestor, + *head = NULL, *next = NULL, *colcount, *w, *first, *delta ; + cs *AT ; + if (!A || !parent || !post) return (NULL) ; /* check inputs */ + m = A->m ; n = A->n ; + s = 4*n + (ata ? (n+m+1) : 0) ; + w = (int*)cs_malloc (s, sizeof (int)) ; first = w+3*n ; /* get workspace */ + ancestor = w ; maxfirst = w+n ; prevleaf = w+2*n ; + delta = colcount = (int*)cs_malloc (n, sizeof (int)) ; /* allocate result */ + AT = cs_transpose (A, 0) ; + if (!AT || !colcount || !w) return (cs_idone (colcount, AT, w, 1)) ; + for (k = 0 ; k < s ; k++) w [k] = -1 ; /* clear workspace w [0..s-1] */ + for (k = 0 ; k < n ; k++) /* find first [j] */ + { + j = post [k] ; + delta [j] = (first [j] == -1) ? 1 : 0 ; /* delta[j]=1 if j is a leaf */ + for ( ; j != -1 && first [j] == -1 ; j = parent [j]) first [j] = k ; + } + ATp = AT->p ; ATi = AT->i ; + if (ata) + { + head = w+4*n ; next = w+5*n+1 ; + for (k = 0 ; k < n ; k++) w [post [k]] = k ; /* invert post */ + for (i = 0 ; i < m ; i++) + { + k = n ; /* k = least postordered column in row i */ + for (p = ATp [i] ; p < ATp [i+1] ; p++) k = CS_MIN (k, w [ATi [p]]); + next [i] = head [k] ; /* place row i in link list k */ + head [k] = i ; + } + } + for (i = 0 ; i < n ; i++) ancestor [i] = i ; /* each node in its own set */ + for (k = 0 ; k < n ; k++) + { + j = post [k] ; /* j is the kth node in postordered etree */ + if (parent [j] != -1) delta [parent [j]]-- ; /* j is not a root */ + if (ata) + { + for (ii = head [k] ; ii != -1 ; ii = next [ii]) + { + for (p = ATp [ii] ; p < ATp [ii+1] ; p++) + cs_cedge (j, ATi [p], first, maxfirst, delta, prevleaf, + ancestor) ; + } + } + else + { + for (p = ATp [j] ; p < ATp [j+1] ; p++) + cs_cedge (j, ATi [p], first, maxfirst, delta, prevleaf, + ancestor) ; + } + if (parent [j] != -1) ancestor [j] = parent [j] ; + } + for (j = 0 ; j < n ; j++) /* sum up delta's of each child */ + { + if (parent [j] != -1) colcount [parent [j]] += colcount [j] ; + } + return (cs_idone (colcount, AT, w, 1)) ; /* success: free workspace */ +} + +/* p [0..n] = cumulative sum of c [0..n-1], and then copy p [0..n-1] into c */ +int cs_cumsum (int *p, int *c, int n) +{ + int i, nz = 0 ; + if (!p || !c) return (-1) ; /* check inputs */ + for (i = 0 ; i < n ; i++) + { + p [i] = nz ; + nz += c [i] ; + c [i] = p [i] ; + } + p [n] = nz ; + return (nz) ; /* return sum (c [0..n-1]) */ +} + +/* depth-first-search of the graph of a matrix, starting at node j */ +int cs_dfs (int j, cs *L, int top, int *xi, int *pstack, const int *Pinv) +{ + int i, p, p2, done, jnew, head = 0, *Lp, *Li ; + if (!L || !xi || !pstack) return (-1) ; + Lp = L->p ; Li = L->i ; + xi [0] = j ; /* initialize the recursion stack */ + while (head >= 0) + { + j = xi [head] ; /* get j from the top of the recursion stack */ + jnew = Pinv ? (Pinv [j]) : j ; + if (!CS_MARKED(Lp,j)) + { + CS_MARK (Lp,j) ; /* mark node j as visited */ + pstack [head] = (jnew < 0) ? 0 : CS_UNFLIP (Lp [jnew]) ; + } + done = 1 ; /* node j done if no unvisited neighbors */ + p2 = (jnew < 0) ? 0 : CS_UNFLIP (Lp [jnew+1]) ; + for (p = pstack [head] ; p < p2 ; p++) /* examine all neighbors of j */ + { + i = Li [p] ; /* consider neighbor node i */ + if (CS_MARKED (Lp,i)) continue ; /* skip visited node i */ + pstack [head] = p ; /* pause depth-first search of node j */ + xi [++head] = i ; /* start dfs at node i */ + done = 0 ; /* node j is not done */ + break ; /* break, to start dfs (i) */ + } + if (done) /* depth-first search at node j is done */ + { + head-- ; /* remove j from the recursion stack */ + xi [--top] = j ; /* and place in the output stack */ + } + } + return (top) ; +} + +/* breadth-first search for coarse decomposition (C0,C1,R1 or R0,R3,C3) */ +static int cs_bfs (const cs *A, int n, int *wi, int *wj, int *queue, + const int *imatch, const int *jmatch, int mark) +{ + int *Ap, *Ai, head = 0, tail = 0, j, i, p, j2 ; + cs *C ; + for (j = 0 ; j < n ; j++) /* place all unmatched nodes in queue */ + { + if (imatch [j] >= 0) continue ; /* skip j if matched */ + wj [j] = 0 ; /* j in set C0 (R0 if transpose) */ + queue [tail++] = j ; /* place unmatched col j in queue */ + } + if (tail == 0) return (1) ; /* quick return if no unmatched nodes */ + C = (mark == 1) ? ((cs *) A) : cs_transpose (A, 0) ; + if (!C) return (0) ; /* bfs of C=A' to find R0,R3,C3 */ + Ap = C->p ; Ai = C->i ; + while (head < tail) /* while queue is not empty */ + { + j = queue [head++] ; /* get the head of the queue */ + for (p = Ap [j] ; p < Ap [j+1] ; p++) + { + i = Ai [p] ; + if (wi [i] >= 0) continue ; /* skip if i is marked */ + wi [i] = mark ; /* i in set R1 (C3 if transpose) */ + j2 = jmatch [i] ; /* traverse alternating path to j2 */ + if (wj [j2] >= 0) continue ;/* skip j2 if it is marked */ + wj [j2] = mark ; /* j2 in set C1 (R3 if transpose) */ + queue [tail++] = j2 ; /* add j2 to queue */ + } + } + if (mark != 1) cs_spfree (C) ; /* free A' if it was created */ + return (1) ; +} + +/* collect matched rows and columns into P and Q */ +static void cs_matched (int m, const int *wi, const int *jmatch, int *P, int *Q, + int *cc, int *rr, int set, int mark) +{ + int kc = cc [set], i ; + int kr = rr [set-1] ; + for (i = 0 ; i < m ; i++) + { + if (wi [i] != mark) continue ; /* skip if i is not in R set */ + P [kr++] = i ; + Q [kc++] = jmatch [i] ; + } + cc [set+1] = kc ; + rr [set] = kr ; +} + + +static void cs_unmatched (int m, const int *wi, int *P, int *rr, int set) +/* + Purpose: + + CS_UNMATCHED collects unmatched rows into the permutation vector P. +*/ +{ + int i, kr = rr [set] ; + for (i = 0 ; i < m ; i++) if (wi [i] == 0) P [kr++] = i ; + rr [set+1] = kr ; +} + +/* return 1 if row i is in R2 */ +static int cs_rprune (int i, int j, double aij, void *other) +{ + int *rr = (int *) other ; + return (i >= rr [1] && i < rr [2]) ; +} + +/* Given A, find coarse dmperm */ +csd *cs_dmperm (const cs *A) +{ + int m, n, i, j, k, p, cnz, nc, *jmatch, *imatch, *wi, *wj, *Pinv, *Cp, *Ci, + *Ps, *Rs, nb1, nb2, *P, *Q, *cc, *rr, *R, *S, ok ; + cs *C ; + csd *D, *scc ; + /* --- Maximum matching ------------------------------------------------- */ + if (!A) return (NULL) ; /* check inputs */ + m = A->m ; n = A->n ; + D = cs_dalloc (m, n) ; /* allocate result */ + if (!D) return (NULL) ; + P = D->P ; Q = D->Q ; R = D->R ; S = D->S ; cc = D->cc ; rr = D->rr ; + jmatch = cs_maxtrans (A) ; /* max transversal */ + imatch = jmatch + m ; /* imatch = inverse of jmatch */ + if (!jmatch) return (cs_ddone (D, NULL, jmatch, 0)) ; + /* --- Coarse decomposition --------------------------------------------- */ + wi = R ; wj = S ; /* use R and S as workspace */ + for (j = 0 ; j < n ; j++) wj [j] = -1 ; /* unmark all cols for bfs */ + for (i = 0 ; i < m ; i++) wi [i] = -1 ; /* unmark all rows for bfs */ + cs_bfs (A, n, wi, wj, Q, imatch, jmatch, 1) ; /* find C0, C1, R1 */ + ok = cs_bfs (A, m, wj, wi, P, jmatch, imatch, 3) ; /* find R0, R3, C3 */ + if (!ok) return (cs_ddone (D, NULL, jmatch, 0)) ; + cs_unmatched (n, wj, Q, cc, 0) ; /* unmatched set C0 */ + cs_matched (m, wi, jmatch, P, Q, cc, rr, 1, 1) ; /* set R1 and C1 */ + cs_matched (m, wi, jmatch, P, Q, cc, rr, 2, -1) ; /* set R2 and C2 */ + cs_matched (m, wi, jmatch, P, Q, cc, rr, 3, 3) ; /* set R3 and C3 */ + cs_unmatched (m, wi, P, rr, 3) ; /* unmatched set R0 */ + cs_free (jmatch) ; + /* --- Fine decomposition ----------------------------------------------- */ + Pinv = cs_pinv (P, m) ; /* Pinv=P' */ + if (!Pinv) return (cs_ddone (D, NULL, NULL, 0)) ; + C = cs_permute (A, Pinv, Q, 0) ;/* C=A(P,Q) (it will hold A(R2,C2)) */ + cs_free (Pinv) ; + if (!C) return (cs_ddone (D, NULL, NULL, 0)) ; + Cp = C->p ; Ci = C->i ; + nc = cc [3] - cc [2] ; /* delete cols C0, C1, and C3 from C */ + if (cc [2] > 0) for (j = cc [2] ; j <= cc [3] ; j++) Cp [j-cc[2]] = Cp [j] ; + C->n = nc ; + if (rr [2] - rr [1] < m) /* delete rows R0, R1, and R3 from C */ + { + cs_fkeep (C, cs_rprune, rr) ; + cnz = Cp [nc] ; + if (rr [1] > 0) for (p = 0 ; p < cnz ; p++) Ci [p] -= rr [1] ; + } + C->m = nc ; + scc = cs_scc (C) ; /* find strongly-connected components of C*/ + if (!scc) return (cs_ddone (D, C, NULL, 0)) ; + /* --- Combine coarse and fine decompositions --------------------------- */ + Ps = scc->P ; /* C(Ps,Ps) is the permuted matrix */ + Rs = scc->R ; /* kth block is Rs[k]..Rs[k+1]-1 */ + nb1 = scc->nb ; /* # of blocks of A(*/ + for (k = 0 ; k < nc ; k++) wj [k] = Q [Ps [k] + cc [2]] ; /* combine */ + for (k = 0 ; k < nc ; k++) Q [k + cc [2]] = wj [k] ; + for (k = 0 ; k < nc ; k++) wi [k] = P [Ps [k] + rr [1]] ; + for (k = 0 ; k < nc ; k++) P [k + rr [1]] = wi [k] ; + nb2 = 0 ; /* create the fine block partitions */ + R [0] = 0 ; + S [0] = 0 ; + if (cc [2] > 0) nb2++ ; /* leading coarse block A (R1, [C0 C1]) */ + for (k = 0 ; k < nb1 ; k++) /* coarse block A (R2,C2) */ + { + R [nb2] = Rs [k] + rr [1] ; /* A (R2,C2) splits into nb1 fine blocks */ + S [nb2] = Rs [k] + cc [2] ; + nb2++ ; + } + if (rr [2] < m) + { + R [nb2] = rr [2] ; /* trailing coarse block A ([R3 R0], C3) */ + S [nb2] = cc [3] ; + nb2++ ; + } + R [nb2] = m ; + S [nb2] = n ; + D->nb = nb2 ; + cs_dfree (scc) ; + return (cs_ddone (D, C, NULL, 1)) ; +} + +static int cs_tol (int i, int j, double aij, void *tol) +{ + return (fabs (aij) > *((double *) tol)) ; +} +int cs_droptol (cs *A, double tol) +{ + return (cs_fkeep (A, &cs_tol, &tol)) ; /* keep all large entries */ +} + +static int cs_nonzero (int i, int j, double aij, void *other) +{ + return (aij != 0) ; +} +int cs_dropzeros (cs *A) +{ + return (cs_fkeep (A, &cs_nonzero, NULL)) ; /* keep all nonzero entries */ +} +int cs_dupl (cs *A) +/* + Purpose: + + CS_DUPL removes duplicate entries from A. + + Reference: + + Timothy Davis, + Direct Methods for Sparse Linear Systems, + SIAM, Philadelphia, 2006. +*/ +{ + int i, j, p, q, nz = 0, n, m, *Ap, *Ai, *w ; + double *Ax ; + if (!A) return (0) ; /* check inputs */ + m = A->m ; n = A->n ; Ap = A->p ; Ai = A->i ; Ax = A->x ; + w = (int*)cs_malloc (m, sizeof (int)) ; /* get workspace */ + if (!w) return (0) ; /* out of memory */ + for (i = 0 ; i < m ; i++) w [i] = -1 ; /* row i not yet seen */ + for (j = 0 ; j < n ; j++) + { + q = nz ; /* column j will start at q */ + for (p = Ap [j] ; p < Ap [j+1] ; p++) + { + i = Ai [p] ; /* A(i,j) is nonzero */ + if (w [i] >= q) + { + Ax [w [i]] += Ax [p] ; /* A(i,j) is a duplicate */ + } + else + { + w [i] = nz ; /* record where row i occurs */ + Ai [nz] = i ; /* keep A(i,j) */ + Ax [nz++] = Ax [p] ; + } + } + Ap [j] = q ; /* record start of column j */ + } + Ap [n] = nz ; /* finalize A */ + cs_free (w) ; /* free workspace */ + return (cs_sprealloc (A, 0)) ; /* remove extra space from A */ +} + +/* add an entry to a triplet matrix; return 1 if ok, 0 otherwise */ +int cs_entry (cs *T, int i, int j, double x) +{ + if (!T || (T->nz >= T->nzmax && !cs_sprealloc (T, 2*(T->nzmax)))) return(0); + if (T->x) T->x [T->nz] = x ; + T->i [T->nz] = i ; + T->p [T->nz++] = j ; + T->m = CS_MAX (T->m, i+1) ; + T->n = CS_MAX (T->n, j+1) ; + return (1) ; +} + +/* compute the etree of A (using triu(A), or A'A without forming A'A */ +int *cs_etree (const cs *A, int ata) +{ + int i, k, p, m, n, inext, *Ap, *Ai, *w, *parent, *ancestor, *prev ; + if (!A) return (NULL) ; /* check inputs */ + m = A->m ; n = A->n ; Ap = A->p ; Ai = A->i ; + parent = (int*)cs_malloc (n, sizeof (int)) ; + w = (int*)cs_malloc (n + (ata ? m : 0), sizeof (int)) ; + ancestor = w ; prev = w + n ; + if (!w || !parent) return (cs_idone (parent, NULL, w, 0)) ; + if (ata) for (i = 0 ; i < m ; i++) prev [i] = -1 ; + for (k = 0 ; k < n ; k++) + { + parent [k] = -1 ; /* node k has no parent yet */ + ancestor [k] = -1 ; /* nor does k have an ancestor */ + for (p = Ap [k] ; p < Ap [k+1] ; p++) + { + i = ata ? (prev [Ai [p]]) : (Ai [p]) ; + for ( ; i != -1 && i < k ; i = inext) /* traverse from i to k */ + { + inext = ancestor [i] ; /* inext = ancestor of i */ + ancestor [i] = k ; /* path compression */ + if (inext == -1) parent [i] = k ; /* no anc., parent is k */ + } + if (ata) prev [Ai [p]] = k ; + } + } + return (cs_idone (parent, NULL, w, 1)) ; +} + +/* drop entries for which fkeep(A(i,j)) is false; return nz if OK, else -1 */ +int cs_fkeep (cs *A, int (*fkeep) (int, int, double, void *), void *other) +{ + int j, p, nz = 0, n, *Ap, *Ai ; + double *Ax ; + if (!A || !fkeep) return (-1) ; /* check inputs */ + n = A->n ; Ap = A->p ; Ai = A->i ; Ax = A->x ; + for (j = 0 ; j < n ; j++) + { + p = Ap [j] ; /* get current location of col j */ + Ap [j] = nz ; /* record new location of col j */ + for ( ; p < Ap [j+1] ; p++) + { + if (fkeep (Ai [p], j, Ax ? Ax [p] : 1, other)) + { + if (Ax) Ax [nz] = Ax [p] ; /* keep A(i,j) */ + Ai [nz++] = Ai [p] ; + } + } + } + return (Ap [n] = nz) ; /* finalize A and return nnz(A) */ +} + +/* y = A*x+y */ +int cs_gaxpy (const cs *A, const double *x, double *y) +{ + int p, j, n, *Ap, *Ai ; + double *Ax ; + if (!A || !x || !y) return (0) ; /* check inputs */ + n = A->n ; Ap = A->p ; Ai = A->i ; Ax = A->x ; + for (j = 0 ; j < n ; j++) + { + for (p = Ap [j] ; p < Ap [j+1] ; p++) + { + y [Ai [p]] += Ax [p] * x [j] ; + } + } + return (1) ; +} + +/* apply the ith Householder vector to x */ +int cs_happly (const cs *V, int i, double beta, double *x) +{ + int p, *Vp, *Vi ; + double *Vx, tau = 0 ; + if (!V || !x) return (0) ; /* check inputs */ + Vp = V->p ; Vi = V->i ; Vx = V->x ; + for (p = Vp [i] ; p < Vp [i+1] ; p++) /* tau = v'*x */ + { + tau += Vx [p] * x [Vi [p]] ; + } + tau *= beta ; /* tau = beta*(v'*x) */ + for (p = Vp [i] ; p < Vp [i+1] ; p++) /* x = x - v*tau */ + { + x [Vi [p]] -= Vx [p] * tau ; + } + return (1) ; +} + +/* create a Householder reflection [v,beta,s]=house(x), overwrite x with v, + * where (I-beta*v*v')*x = s*x. See Algo 5.1.1, Golub & Van Loan, 3rd ed. */ +double cs_house (double *x, double *beta, int n) +{ + double s, sigma = 0 ; + int i ; + if (!x || !beta) return (-1) ; /* check inputs */ + for (i = 1 ; i < n ; i++) sigma += x [i] * x [i] ; + if (sigma == 0) + { + s = fabs (x [0]) ; /* s = |x(0)| */ + (*beta) = (x [0] <= 0) ? 2 : 0 ; + x [0] = 1 ; + } + else + { + s = sqrt (x [0] * x [0] + sigma) ; /* s = norm (x) */ + x [0] = (x [0] <= 0) ? (x [0] - s) : (-sigma / (x [0] + s)) ; + (*beta) = -1. / (s * x [0]) ; + } + return (s) ; +} + +/* x(P) = b, for dense vectors x and b; P=NULL denotes identity */ +int cs_ipvec (int n, const int *P, const double *b, double *x) +{ + int k ; + if (!x || !b) return (0) ; /* check inputs */ + for (k = 0 ; k < n ; k++) x [P ? P [k] : k] = b [k] ; + return (1) ; +} +cs *cs_load ( FILE *f ) +/* + Purpose: + + CS_LOAD loads a triplet matrix from a file. + + Reference: + + Timothy Davis, + Direct Methods for Sparse Linear Systems, + SIAM, Philadelphia, 2006. +*/ +{ + int i, j ; + double x ; + cs *T ; + if (!f) return (NULL) ; + T = cs_spalloc (0, 0, 1, 1, 1) ; + while (fscanf (f, "%d %d %lg\n", &i, &j, &x) == 3) + { + if (!cs_entry (T, i, j, x)) return (cs_spfree (T)) ; + } + return (T) ; +} +int cs_lsolve ( const cs *L, double *x ) +/* + Purpose: + + CS_LSOLVE solves L*x=b. + + Discussion: + + On input, X contains the right hand side, and on output, the solution. + + Reference: + + Timothy Davis, + Direct Methods for Sparse Linear Systems, + SIAM, Philadelphia, 2006. +*/ +{ + int p, j, n, *Lp, *Li ; + double *Lx ; + if (!L || !x) return (0) ; /* check inputs */ + n = L->n ; Lp = L->p ; Li = L->i ; Lx = L->x ; + for (j = 0 ; j < n ; j++) + { + x [j] /= Lx [Lp [j]] ; + for (p = Lp [j]+1 ; p < Lp [j+1] ; p++) + { + x [Li [p]] -= Lx [p] * x [j] ; + } + } + return (1) ; +} +int cs_ltsolve ( const cs *L, double *x ) +/* + Purpose: + + CS_LTSOLVE solves L'*x=b. + + Discussion: + + On input, X contains the right hand side, and on output, the solution. + + Reference: + + Timothy Davis, + Direct Methods for Sparse Linear Systems, + SIAM, Philadelphia, 2006. +*/ +{ + int p, j, n, *Lp, *Li ; + double *Lx ; + if (!L || !x) return (0) ; /* check inputs */ + n = L->n ; Lp = L->p ; Li = L->i ; Lx = L->x ; + for (j = n-1 ; j >= 0 ; j--) + { + for (p = Lp [j]+1 ; p < Lp [j+1] ; p++) + { + x [j] -= Lx [p] * x [Li [p]] ; + } + x [j] /= Lx [Lp [j]] ; + } + return (1) ; +} + +/* [L,U,Pinv]=lu(A, [Q lnz unz]). lnz and unz can be guess */ +csn *cs_lu (const cs *A, const css *S, double tol) +{ + cs *L, *U ; + csn *N ; + double pivot, *Lx, *Ux, *x, a, t ; + int *Lp, *Li, *Up, *Ui, *Pinv, *xi, *Q, n, ipiv, k, top, p, i, col, lnz,unz; + if (!A || !S) return (NULL) ; /* check inputs */ + n = A->n ; + Q = S->Q ; lnz = S->lnz ; unz = S->unz ; + x = (double*)cs_malloc (n, sizeof (double)) ; + xi = (int*)cs_malloc (2*n, sizeof (int)) ; + N = (csn*)cs_calloc (1, sizeof (csn)) ; + if (!x || !xi || !N) return (cs_ndone (N, NULL, xi, x, 0)) ; + N->L = L = cs_spalloc (n, n, lnz, 1, 0) ; /* initial L and U */ + N->U = U = cs_spalloc (n, n, unz, 1, 0) ; + N->Pinv = Pinv = (int*)cs_malloc (n, sizeof (int)) ; + if (!L || !U || !Pinv) return (cs_ndone (N, NULL, xi, x, 0)) ; + Lp = L->p ; Up = U->p ; + for (i = 0 ; i < n ; i++) x [i] = 0 ; /* clear workspace */ + for (i = 0 ; i < n ; i++) Pinv [i] = -1 ; /* no rows pivotal yet */ + for (k = 0 ; k <= n ; k++) Lp [k] = 0 ; /* no cols of L yet */ + lnz = unz = 0 ; + for (k = 0 ; k < n ; k++) /* compute L(:,k) and U(:,k) */ + { + /* --- Triangular solve --------------------------------------------- */ + Lp [k] = lnz ; /* L(:,k) starts here */ + Up [k] = unz ; /* U(:,k) starts here */ + if ((lnz + n > L->nzmax && !cs_sprealloc (L, 2*L->nzmax + n)) || + (unz + n > U->nzmax && !cs_sprealloc (U, 2*U->nzmax + n))) + { + return (cs_ndone (N, NULL, xi, x, 0)) ; + } + Li = L->i ; Lx = L->x ; Ui = U->i ; Ux = U->x ; + col = Q ? (Q [k]) : k ; + top = cs_splsolve (L, A, col, xi, x, Pinv) ; /* x = L\A(:,col) */ + /* --- Find pivot --------------------------------------------------- */ + ipiv = -1 ; + a = -1 ; + for (p = top ; p < n ; p++) + { + i = xi [p] ; /* x(i) is nonzero */ + if (Pinv [i] < 0) /* row i is not pivotal */ + { + if ((t = fabs (x [i])) > a) + { + a = t ; /* largest pivot candidate so far */ + ipiv = i ; + } + } + else /* x(i) is the entry U(Pinv[i],k) */ + { + Ui [unz] = Pinv [i] ; + Ux [unz++] = x [i] ; + } + } + if (ipiv == -1 || a <= 0) return (cs_ndone (N, NULL, xi, x, 0)) ; + if (Pinv [col] < 0 && fabs (x [col]) >= a*tol) ipiv = col ; + /* --- Divide by pivot ---------------------------------------------- */ + pivot = x [ipiv] ; /* the chosen pivot */ + Ui [unz] = k ; /* last entry in U(:,k) is U(k,k) */ + Ux [unz++] = pivot ; + Pinv [ipiv] = k ; /* ipiv is the kth pivot row */ + Li [lnz] = ipiv ; /* first entry in L(:,k) is L(k,k) = 1 */ + Lx [lnz++] = 1 ; + for (p = top ; p < n ; p++) /* L(k+1:n,k) = x / pivot */ + { + i = xi [p] ; + if (Pinv [i] < 0) /* x(i) is an entry in L(:,k) */ + { + Li [lnz] = i ; /* save unpermuted row in L */ + Lx [lnz++] = x [i] / pivot ; /* scale pivot column */ + } + x [i] = 0 ; /* x [0..n-1] = 0 for next k */ + } + } + /* --- Finalize L and U ------------------------------------------------- */ + Lp [n] = lnz ; + Up [n] = unz ; + Li = L->i ; /* fix row indices of L for final Pinv */ + for (p = 0 ; p < lnz ; p++) Li [p] = Pinv [Li [p]] ; + cs_sprealloc (L, 0) ; /* remove extra space from L and U */ + cs_sprealloc (U, 0) ; + return (cs_ndone (N, NULL, xi, x, 1)) ; /* success */ +} + +/* x=A\b where A is unsymmetric; b overwritten with solution */ +int cs_lusol (const cs *A, double *b, int order, double tol) +{ + double *x ; + css *S ; + csn *N ; + int n, ok ; + if (!A || !b) return (0) ; /* check inputs */ + n = A->n ; + S = cs_sqr (A, order, 0) ; /* ordering and symbolic analysis */ + N = cs_lu (A, S, tol) ; /* numeric LU factorization */ + x = (double*)cs_malloc (n, sizeof (double)) ; + ok = (S && N && x) ; + if (ok) + { + cs_ipvec (n, N->Pinv, b, x) ; /* x = P*b */ + cs_lsolve (N->L, x) ; /* x = L\x */ + cs_usolve (N->U, x) ; /* x = U\x */ + cs_ipvec (n, S->Q, x, b) ; /* b = Q*x */ + } + cs_free (x) ; + cs_sfree (S) ; + cs_nfree (N) ; + return (ok) ; +} + +#ifdef MATLAB_MEX_FILE +#define malloc mxMalloc +#define free mxFree +#define realloc mxRealloc +#define calloc mxCalloc +#endif + +/* wrapper for malloc */ +void *cs_malloc (int n, size_t size) +{ + return (CS_OVERFLOW (n,size) ? NULL : malloc (CS_MAX (n,1) * size)) ; +} + +/* wrapper for calloc */ +void *cs_calloc (int n, size_t size) +{ + return (CS_OVERFLOW (n,size) ? NULL : calloc (CS_MAX (n,1), size)) ; +} + +/* wrapper for free */ +void *cs_free (void *p) +{ + if (p) free (p) ; /* free p if it is not already NULL */ + return (NULL) ; /* return NULL to simplify the use of cs_free */ +} + +/* wrapper for realloc */ +void *cs_realloc (void *p, int n, size_t size, int *ok) +{ + void *p2 ; + *ok = !CS_OVERFLOW (n,size) ; /* guard against int overflow */ + if (!(*ok)) return (p) ; /* p unchanged if n too large */ + p2 = realloc (p, CS_MAX (n,1) * size) ; /* realloc the block */ + *ok = (p2 != NULL) ; + return ((*ok) ? p2 : p) ; /* return original p if failure */ +} + +/* find an augmenting path starting at column k and extend the match if found */ +static void cs_augment (int k, const cs *A, int *jmatch, int *cheap, int *w, + int *js, int *is, int *ps) +{ + int found = 0, p, i = -1, *Ap = A->p, *Ai = A->i, head = 0, j ; + js [0] = k ; /* start with just node k in jstack */ + while (head >= 0) + { + /* --- Start (or continue) depth-first-search at node j ------------- */ + j = js [head] ; /* get j from top of jstack */ + if (w [j] != k) /* 1st time j visited for kth path */ + { + w [j] = k ; /* mark j as visited for kth path */ + for (p = cheap [j] ; p < Ap [j+1] && !found ; p++) + { + i = Ai [p] ; /* try a cheap assignment (i,j) */ + found = (jmatch [i] == -1) ; + } + cheap [j] = p ; /* start here next time j is traversed*/ + if (found) + { + is [head] = i ; /* column j matched with row i */ + break ; /* end of augmenting path */ + } + ps [head] = Ap [j] ; /* no cheap match: start dfs for j */ + } + /* --- Depth-first-search of neighbors of j ------------------------- */ + for (p = ps [head] ; p < Ap [j+1] ; p++) + { + i = Ai [p] ; /* consider row i */ + if (w [jmatch [i]] == k) continue ; /* skip jmatch [i] if marked */ + ps [head] = p + 1 ; /* pause dfs of node j */ + is [head] = i ; /* i will be matched with j if found */ + js [++head] = jmatch [i] ; /* start dfs at column jmatch [i] */ + break ; + } + if (p == Ap [j+1]) head-- ; /* node j is done; pop from stack */ + } /* augment the match if path found: */ + if (found) for (p = head ; p >= 0 ; p--) jmatch [is [p]] = js [p] ; +} + +/* find a maximum transveral */ +int *cs_maxtrans (const cs *A) /* returns jmatch [0..m-1]; imatch [0..n-1] */ +{ + int i, j, k, n, m, p, n2 = 0, m2 = 0, *Ap, *jimatch, *w, *cheap, *js, *is, + *ps, *Ai, *Cp, *jmatch, *imatch ; + cs *C ; + if (!A) return (NULL) ; /* check inputs */ + n = A->n ; m = A->m ; Ap = A->p ; Ai = A->i ; + w = jimatch = (int*)cs_calloc (m+n, sizeof (int)) ; /* allocate result */ + if (!jimatch) return (NULL) ; + for (j = 0 ; j < n ; j++) /* count non-empty rows and columns */ + { + n2 += (Ap [j] < Ap [j+1]) ; + for (p = Ap [j] ; p < Ap [j+1] ; p++) w [Ai [p]] = 1 ; + } + for (i = 0 ; i < m ; i++) m2 += w [i] ; + C = (m2 < n2) ? cs_transpose (A,0) : ((cs *) A) ; /* transpose if needed */ + if (!C) return (cs_idone (jimatch, (m2 < n2) ? C : NULL, NULL, 0)) ; + n = C->n ; m = C->m ; Cp = C->p ; + jmatch = (m2 < n2) ? jimatch + n : jimatch ; + imatch = (m2 < n2) ? jimatch : jimatch + m ; + w = (int*)cs_malloc (5*n, sizeof (int)) ; /* allocate workspace */ + if (!w) return (cs_idone (jimatch, (m2 < n2) ? C : NULL, w, 0)) ; + cheap = w + n ; js = w + 2*n ; is = w + 3*n ; ps = w + 4*n ; + for (j = 0 ; j < n ; j++) cheap [j] = Cp [j] ; /* for cheap assignment */ + for (j = 0 ; j < n ; j++) w [j] = -1 ; /* all columns unflagged */ + for (i = 0 ; i < m ; i++) jmatch [i] = -1 ; /* nothing matched yet */ + for (k = 0 ; k < n ; k++) cs_augment (k, C, jmatch, cheap, w, js, is, ps) ; + for (j = 0 ; j < n ; j++) imatch [j] = -1 ; /* find row match */ + for (i = 0 ; i < m ; i++) if (jmatch [i] >= 0) imatch [jmatch [i]] = i ; + return (cs_idone (jimatch, (m2 < n2) ? C : NULL, w, 1)) ; +} + +/* C = A*B */ +cs *cs_multiply (const cs *A, const cs *B) +{ + int p, j, nz = 0, anz, *Cp, *Ci, *Bp, m, n, bnz, *w, values, *Bi ; + double *x, *Bx, *Cx ; + cs *C ; + if (!A || !B) return (NULL) ; /* check inputs */ + m = A->m ; anz = A->p [A->n] ; + n = B->n ; Bp = B->p ; Bi = B->i ; Bx = B->x ; bnz = Bp [n] ; + w = (int*)cs_calloc (m, sizeof (int)) ; + values = (A->x != NULL) && (Bx != NULL) ; + x = values ? (double*)cs_malloc (m, sizeof (double)) : NULL ; + C = cs_spalloc (m, n, anz + bnz, values, 0) ; + if (!C || !w || (values && !x)) return (cs_done (C, w, x, 0)) ; + Cp = C->p ; + for (j = 0 ; j < n ; j++) + { + if (nz + m > C->nzmax && !cs_sprealloc (C, 2*(C->nzmax)+m)) + { + return (cs_done (C, w, x, 0)) ; /* out of memory */ + } + Ci = C->i ; Cx = C->x ; /* C may have been reallocated */ + Cp [j] = nz ; /* column j of C starts here */ + for (p = Bp [j] ; p < Bp [j+1] ; p++) + { + nz = cs_scatter (A, Bi [p], Bx ? Bx [p] : 1, w, x, j+1, C, nz) ; + } + if (values) for (p = Cp [j] ; p < nz ; p++) Cx [p] = x [Ci [p]] ; + } + Cp [n] = nz ; /* finalize the last column of C */ + cs_sprealloc (C, 0) ; /* remove extra space from C */ + return (cs_done (C, w, x, 1)) ; /* success; free workspace, return C */ +} + +/* 1-norm of a sparse matrix = max (sum (abs (A))), largest column sum */ +double cs_norm (const cs *A) +{ + int p, j, n, *Ap ; + double *Ax, norm = 0, s ; + if (!A || !A->x) return (-1) ; /* check inputs */ + n = A->n ; Ap = A->p ; Ax = A->x ; + for (j = 0 ; j < n ; j++) + { + for (s = 0, p = Ap [j] ; p < Ap [j+1] ; p++) s += fabs (Ax [p]) ; + norm = CS_MAX (norm, s) ; + } + return (norm) ; +} + +/* C = A(P,Q) where P and Q are permutations of 0..m-1 and 0..n-1. */ +cs *cs_permute (const cs *A, const int *Pinv, const int *Q, int values) +{ + int p, j, k, nz = 0, m, n, *Ap, *Ai, *Cp, *Ci ; + double *Cx, *Ax ; + cs *C ; + if (!A) return (NULL) ; /* check inputs */ + m = A->m ; n = A->n ; Ap = A->p ; Ai = A->i ; Ax = A->x ; + C = cs_spalloc (m, n, Ap [n], values && Ax != NULL, 0) ; + if (!C) return (cs_done (C, NULL, NULL, 0)) ; /* out of memory */ + Cp = C->p ; Ci = C->i ; Cx = C->x ; + for (k = 0 ; k < n ; k++) + { + Cp [k] = nz ; /* column k of C is column Q[k] of A */ + j = Q ? (Q [k]) : k ; + for (p = Ap [j] ; p < Ap [j+1] ; p++) + { + if (Cx) Cx [nz] = Ax [p] ; /* row i of A is row Pinv[i] of C */ + Ci [nz++] = Pinv ? (Pinv [Ai [p]]) : Ai [p] ; + } + } + Cp [n] = nz ; /* finalize the last column of C */ + return (cs_done (C, NULL, NULL, 1)) ; +} + +/* Pinv = P', or P = Pinv' */ +int *cs_pinv (int const *P, int n) +{ + int k, *Pinv ; + if (!P) return (NULL) ; /* P = NULL denotes identity */ + Pinv = (int*)cs_malloc (n, sizeof (int)) ; /* allocate resuult */ + if (!Pinv) return (NULL) ; /* out of memory */ + for (k = 0 ; k < n ; k++) Pinv [P [k]] = k ;/* invert the permutation */ + return (Pinv) ; /* return result */ +} + +/* post order a forest */ +int *cs_post (int n, const int *parent) +{ + int j, k = 0, *post, *w, *head, *next, *stack ; + if (!parent) return (NULL) ; /* check inputs */ + post = (int*)cs_malloc (n, sizeof (int)) ; /* allocate result */ + w = (int*)cs_malloc (3*n, sizeof (int)) ; /* 3*n workspace */ + head = w ; next = w + n ; stack = w + 2*n ; + if (!w || !post) return (cs_idone (post, NULL, w, 0)) ; + for (j = 0 ; j < n ; j++) head [j] = -1 ; /* empty link lists */ + for (j = n-1 ; j >= 0 ; j--) /* traverse nodes in reverse order*/ + { + if (parent [j] == -1) continue ; /* j is a root */ + next [j] = head [parent [j]] ; /* add j to list of its parent */ + head [parent [j]] = j ; + } + for (j = 0 ; j < n ; j++) + { + if (parent [j] != -1) continue ; /* skip j if it is not a root */ + k = cs_tdfs (j, k, head, next, post, stack) ; + } + return (cs_idone (post, NULL, w, 1)) ; /* success; free w, return post */ +} + +/* print a sparse matrix */ +int cs_print (const cs *A, int brief) +{ + int p, j, m, n, nzmax, nz, *Ap, *Ai ; + double *Ax ; + if (!A) { printf ("(null)\n") ; return (0) ; } + m = A->m ; n = A->n ; Ap = A->p ; Ai = A->i ; Ax = A->x ; + nzmax = A->nzmax ; nz = A->nz ; + printf ("CSparse Version %d.%d.%d, %s. %s\n", CS_VER, CS_SUBVER, + CS_SUBSUB, CS_DATE, CS_COPYRIGHT) ; + if (nz < 0) + { + printf ("%d-by-%d, nzmax: %d nnz: %d, 1-norm: %g\n", m, n, nzmax, + Ap [n], cs_norm (A)) ; + for (j = 0 ; j < n ; j++) + { + printf (" col %d : locations %d to %d\n", j, Ap [j], Ap [j+1]-1); + for (p = Ap [j] ; p < Ap [j+1] ; p++) + { + printf (" %d : %g\n", Ai [p], Ax ? Ax [p] : 1) ; + if (brief && p > 20) { printf (" ...\n") ; return (1) ; } + } + } + } + else + { + printf ("triplet: %d-by-%d, nzmax: %d nnz: %d\n", m, n, nzmax, nz) ; + for (p = 0 ; p < nz ; p++) + { + printf (" %d %d : %g\n", Ai [p], Ap [p], Ax ? Ax [p] : 1) ; + if (brief && p > 20) { printf (" ...\n") ; return (1) ; } + } + } + return (1) ; +} + +/* x = b(P), for dense vectors x and b; P=NULL denotes identity */ +int cs_pvec (int n, const int *P, const double *b, double *x) +{ + int k ; + if (!x || !b) return (0) ; /* check inputs */ + for (k = 0 ; k < n ; k++) x [k] = b [P ? P [k] : k] ; + return (1) ; +} + +/* sparse QR factorization [V,beta,p,R] = qr (A) */ +csn *cs_qr (const cs *A, const css *S) +{ + double *Rx, *Vx, *Ax, *Beta, *x ; + int i, k, p, m, n, vnz, p1, top, m2, len, col, rnz, *s, *leftmost, *Ap, + *Ai, *parent, *Rp, *Ri, *Vp, *Vi, *w, *Pinv, *Q ; + cs *R, *V ; + csn *N ; + if (!A || !S || !S->parent || !S->Pinv) return (NULL) ; /* check inputs */ + m = A->m ; n = A->n ; Ap = A->p ; Ai = A->i ; Ax = A->x ; + Q = S->Q ; parent = S->parent ; Pinv = S->Pinv ; m2 = S->m2 ; + vnz = S->lnz ; rnz = S->unz ; + leftmost = Pinv + m + n ; + w = (int*)cs_malloc (m2+n, sizeof (int)) ; + x = (double*)cs_malloc (m2, sizeof (double)) ; + N = (csn*)cs_calloc (1, sizeof (csn)) ; + if (!w || !x || !N) return (cs_ndone (N, NULL, w, x, 0)) ; + s = w + m2 ; /* size n */ + for (k = 0 ; k < m2 ; k++) x [k] = 0 ; /* clear workspace x */ + N->L = V = cs_spalloc (m2, n, vnz, 1, 0) ; /* allocate V */ + N->U = R = cs_spalloc (m2, n, rnz, 1, 0) ; /* allocate R, m2-by-n */ + N->B = Beta = (double*)cs_malloc (n, sizeof (double)) ; + if (!R || !V || !Beta) return (cs_ndone (N, NULL, w, x, 0)) ; + Rp = R->p ; Ri = R->i ; Rx = R->x ; + Vp = V->p ; Vi = V->i ; Vx = V->x ; + for (i = 0 ; i < m2 ; i++) w [i] = -1 ; /* clear w, to mark nodes */ + rnz = 0 ; vnz = 0 ; + for (k = 0 ; k < n ; k++) /* compute V and R */ + { + Rp [k] = rnz ; /* R(:,k) starts here */ + Vp [k] = p1 = vnz ; /* V(:,k) starts here */ + w [k] = k ; /* add V(k,k) to pattern of V */ + Vi [vnz++] = k ; + top = n ; + col = Q ? Q [k] : k ; + for (p = Ap [col] ; p < Ap [col+1] ; p++) /* find R(:,k) pattern */ + { + i = leftmost [Ai [p]] ; /* i = min(find(A(i,Q))) */ + for (len = 0 ; w [i] != k ; i = parent [i]) /* traverse up to k */ + { + s [len++] = i ; + w [i] = k ; + } + while (len > 0) s [--top] = s [--len] ; /* push path on stack */ + i = Pinv [Ai [p]] ; /* i = permuted row of A(:,col) */ + x [i] = Ax [p] ; /* x (i) = A(.,col) */ + if (i > k && w [i] < k) /* pattern of V(:,k) = x (k+1:m) */ + { + Vi [vnz++] = i ; /* add i to pattern of V(:,k) */ + w [i] = k ; + } + } + for (p = top ; p < n ; p++) /* for each i in pattern of R(:,k) */ + { + i = s [p] ; /* R(i,k) is nonzero */ + cs_happly (V, i, Beta [i], x) ; /* apply (V(i),Beta(i)) to x */ + Ri [rnz] = i ; /* R(i,k) = x(i) */ + Rx [rnz++] = x [i] ; + x [i] = 0 ; + if (parent [i] == k) vnz = cs_scatter (V, i, 0, w, NULL, k, V, vnz); + } + for (p = p1 ; p < vnz ; p++) /* gather V(:,k) = x */ + { + Vx [p] = x [Vi [p]] ; + x [Vi [p]] = 0 ; + } + Ri [rnz] = k ; /* R(k,k) = norm (x) */ + Rx [rnz++] = cs_house (Vx+p1, Beta+k, vnz-p1) ; /* [v,beta]=house(x) */ + } + Rp [n] = rnz ; /* finalize R */ + Vp [n] = vnz ; /* finalize V */ + return (cs_ndone (N, NULL, w, x, 1)) ; /* success */ +} + +/* x=A\b where A can be rectangular; b overwritten with solution */ +int cs_qrsol (const cs *A, double *b, int order) +{ + double *x ; + css *S ; + csn *N ; + cs *AT = NULL ; + int k, m, n, ok ; + if (!A || !b) return (0) ; /* check inputs */ + n = A->n ; + m = A->m ; + if (m >= n) + { + S = cs_sqr (A, order, 1) ; /* ordering and symbolic analysis */ + N = cs_qr (A, S) ; /* numeric QR factorization */ + x = (double*)cs_calloc (S ? S->m2 : 1, sizeof (double)) ; + ok = (S && N && x) ; + if (ok) + { + cs_ipvec (m, S->Pinv, b, x) ; /* x(0:m-1) = P*b(0:m-1) */ + for (k = 0 ; k < n ; k++) /* apply Householder refl. to x */ + { + cs_happly (N->L, k, N->B [k], x) ; + } + cs_usolve (N->U, x) ; /* x = R\x */ + cs_ipvec (n, S->Q, x, b) ; /* b(0:n-1) = Q*x (permutation) */ + } + } + else + { + AT = cs_transpose (A, 1) ; /* Ax=b is underdetermined */ + S = cs_sqr (AT, order, 1) ; /* ordering and symbolic analysis */ + N = cs_qr (AT, S) ; /* numeric QR factorization of A' */ + x = (double*)cs_calloc (S ? S->m2 : 1, sizeof (double)) ; + ok = (AT && S && N && x) ; + if (ok) + { + cs_pvec (m, S->Q, b, x) ; /* x(0:m-1) = Q'*b (permutation) */ + cs_utsolve (N->U, x) ; /* x = R'\x */ + for (k = m-1 ; k >= 0 ; k--) /* apply Householder refl. to x */ + { + cs_happly (N->L, k, N->B [k], x) ; + } + cs_pvec (n, S->Pinv, x, b) ; /* b (0:n-1) = P'*x */ + } + } + cs_free (x) ; + cs_sfree (S) ; + cs_nfree (N) ; + cs_spfree (AT) ; + return (ok) ; +} + +/* xi [top...n-1] = nodes reachable from graph of L*P' via nodes in B(:,k). + * xi [n...2n-1] used as workspace */ +int cs_reach (cs *L, const cs *B, int k, int *xi, const int *Pinv) +{ + int p, n, top, *Bp, *Bi, *Lp ; + if (!L || !B || !xi) return (-1) ; + n = L->n ; Bp = B->p ; Bi = B->i ; Lp = L->p ; + top = n ; + for (p = Bp [k] ; p < Bp [k+1] ; p++) + { + if (!CS_MARKED (Lp, Bi [p])) /* start a dfs at unmarked node i */ + { + top = cs_dfs (Bi [p], L, top, xi, xi+n, Pinv) ; + } + } + for (p = top ; p < n ; p++) CS_MARK (Lp, xi [p]) ; /* restore L */ + return (top) ; +} + +/* x = x + beta * A(:,j), where x is a dense vector and A(:,j) is sparse */ +int cs_scatter (const cs *A, int j, double beta, int *w, double *x, int mark, + cs *C, int nz) +{ + int i, p, *Ap, *Ai, *Ci ; + double *Ax ; + if (!A || !w || !C) return (-1) ; /* ensure inputs are valid */ + Ap = A->p ; Ai = A->i ; Ax = A->x ; Ci = C->i ; + for (p = Ap [j] ; p < Ap [j+1] ; p++) + { + i = Ai [p] ; /* A(i,j) is nonzero */ + if (w [i] < mark) + { + w [i] = mark ; /* i is new entry in column j */ + Ci [nz++] = i ; /* add i to pattern of C(:,j) */ + if (x) x [i] = beta * Ax [p] ; /* x(i) = beta*A(i,j) */ + } + else if (x) x [i] += beta * Ax [p] ; /* i exists in C(:,j) already */ + } + return (nz) ; +} + +/* find the strongly connected components of a square matrix */ +csd *cs_scc (cs *A) /* matrix A temporarily modified, then restored */ +{ + int n, i, k, b = 0, top, *xi, *pstack, *P, *R, *Ap, *ATp ; + cs *AT ; + csd *D ; + if (!A) return (NULL) ; + n = A->n ; Ap = A->p ; + D = cs_dalloc (n, 0) ; + AT = cs_transpose (A, 0) ; /* AT = A' */ + xi = (int*)cs_malloc (2*n, sizeof (int)) ; /* allocate workspace */ + pstack = xi + n ; + if (!D || !AT || !xi) return (cs_ddone (D, AT, xi, 0)) ; + P = D->P ; R = D->R ; ATp = AT->p ; + top = n ; + for (i = 0 ; i < n ; i++) /* first dfs(A) to find finish times (xi) */ + { + if (!CS_MARKED (Ap,i)) top = cs_dfs (i, A, top, xi, pstack, NULL) ; + } + for (i = 0 ; i < n ; i++) CS_MARK (Ap, i) ; /* restore A; unmark all nodes*/ + top = n ; + b = n ; + for (k = 0 ; k < n ; k++) /* dfs(A') to find strongly connnected comp. */ + { + i = xi [k] ; /* get i in reverse order of finish times */ + if (CS_MARKED (ATp,i)) continue ; /* skip node i if already ordered */ + R [b--] = top ; /* node i is the start of a component in P */ + top = cs_dfs (i, AT, top, P, pstack, NULL) ; + } + R [b] = 0 ; /* first block starts at zero; shift R up */ + for (k = b ; k <= n ; k++) R [k-b] = R [k] ; + D->nb = R [n+1] = b = n-b ; /* b = # of strongly connected components */ + return (cs_ddone (D, AT, xi, 1)) ; +} + +/* ordering and symbolic analysis for a Cholesky factorization */ +css *cs_schol (const cs *A, int order) +{ + int n, *c, *post, *P ; + cs *C ; + css *S ; + if (!A) return (NULL) ; /* check inputs */ + n = A->n ; + S = (css*)cs_calloc (1, sizeof (css)) ; /* allocate symbolic analysis */ + if (!S) return (NULL) ; /* out of memory */ + P = cs_amd (A, order) ; /* P = amd(A+A'), or natural */ + S->Pinv = cs_pinv (P, n) ; /* find inverse permutation */ + cs_free (P) ; + if (order >= 0 && !S->Pinv) return (cs_sfree (S)) ; + C = cs_symperm (A, S->Pinv, 0) ; /* C = spones(triu(A(P,P))) */ + S->parent = cs_etree (C, 0) ; /* find etree of C */ + post = cs_post (n, S->parent) ; /* postorder the etree */ + c = cs_counts (C, S->parent, post, 0) ; /* find column counts of chol(C) */ + cs_free (post) ; + cs_spfree (C) ; + S->cp = (int*)cs_malloc (n+1, sizeof (int)) ; /* find column pointers for L */ + S->unz = S->lnz = cs_cumsum (S->cp, c, n) ; + cs_free (c) ; + return ((S->lnz >= 0) ? S : cs_sfree (S)) ; +} + +/* solve Lx=b(:,k), leaving pattern in xi[top..n-1], values scattered in x. */ +int cs_splsolve (cs *L, const cs *B, int k, int *xi, double *x, const int *Pinv) +{ + int j, jnew, p, px, top, n, *Lp, *Li, *Bp, *Bi ; + double *Lx, *Bx ; + if (!L || !B || !xi || !x) return (-1) ; + Lp = L->p ; Li = L->i ; Lx = L->x ; n = L->n ; + Bp = B->p ; Bi = B->i ; Bx = B->x ; + top = cs_reach (L, B, k, xi, Pinv) ; /* xi[top..n-1]=Reach(B(:,k)) */ + for (p = top ; p < n ; p++) x [xi [p]] = 0 ;/* clear x */ + for (p = Bp [k] ; p < Bp [k+1] ; p++) x [Bi [p]] = Bx [p] ; /* scatter B */ + for (px = top ; px < n ; px++) + { + j = xi [px] ; /* x(j) is nonzero */ + jnew = Pinv ? (Pinv [j]) : j ; /* j is column jnew of L */ + if (jnew < 0) continue ; /* column jnew is empty */ + for (p = Lp [jnew]+1 ; p < Lp [jnew+1] ; p++) + { + x [Li [p]] -= Lx [p] * x [j] ; /* x(i) -= L(i,j) * x(j) */ + } + } + return (top) ; /* return top of stack */ +} + +/* compute vnz, Pinv, leftmost, m2 from A and parent */ +static int *cs_vcount (const cs *A, const int *parent, int *m2, int *vnz) +{ + int i, k, p, pa, n = A->n, m = A->m, *Ap = A->p, *Ai = A->i ; + int *Pinv = (int*)cs_malloc (2*m+n, sizeof (int)), *leftmost = Pinv + m + n ; + int *w = (int*)cs_malloc (m+3*n, sizeof (int)) ; + int *next = w, *head = w + m, *tail = w + m + n, *nque = w + m + 2*n ; + if (!Pinv || !w) return (cs_idone (Pinv, NULL, w, 0)) ; + for (k = 0 ; k < n ; k++) head [k] = -1 ; /* queue k is empty */ + for (k = 0 ; k < n ; k++) tail [k] = -1 ; + for (k = 0 ; k < n ; k++) nque [k] = 0 ; + for (i = 0 ; i < m ; i++) leftmost [i] = -1 ; + for (k = n-1 ; k >= 0 ; k--) + { + for (p = Ap [k] ; p < Ap [k+1] ; p++) + { + leftmost [Ai [p]] = k ; /* leftmost[i] = min(find(A(i,:)))*/ + } + } + for (i = m-1 ; i >= 0 ; i--) /* scan rows in reverse order */ + { + Pinv [i] = -1 ; /* row i is not yet ordered */ + k = leftmost [i] ; + if (k == -1) continue ; /* row i is empty */ + if (nque [k]++ == 0) tail [k] = i ; /* first row in queue k */ + next [i] = head [k] ; /* put i at head of queue k */ + head [k] = i ; + } + (*vnz) = 0 ; + (*m2) = m ; + for (k = 0 ; k < n ; k++) /* find row permutation and nnz(V)*/ + { + i = head [k] ; /* remove row i from queue k */ + (*vnz)++ ; /* count V(k,k) as nonzero */ + if (i < 0) i = (*m2)++ ; /* add a fictitious row */ + Pinv [i] = k ; /* associate row i with V(:,k) */ + if (--nque [k] <= 0) continue ; /* skip if V(k+1:m,k) is empty */ + (*vnz) += nque [k] ; /* nque [k] = nnz (V(k+1:m,k)) */ + if ((pa = parent [k]) != -1) /* move all rows to parent of k */ + { + if (nque [pa] == 0) tail [pa] = tail [k] ; + next [tail [k]] = head [pa] ; + head [pa] = next [i] ; + nque [pa] += nque [k] ; + } + } + for (i = 0 ; i < m ; i++) if (Pinv [i] < 0) Pinv [i] = k++ ; + return (cs_idone (Pinv, NULL, w, 1)) ; +} + +/* symbolic analysis for QR or LU */ +css *cs_sqr (const cs *A, int order, int qr) +{ + int n, k, ok = 1, *post ; + css *S ; + if (!A) return (NULL) ; /* check inputs */ + n = A->n ; + S = (css*)cs_calloc (1, sizeof (css)) ; /* allocate symbolic analysis */ + if (!S) return (NULL) ; /* out of memory */ + S->Q = cs_amd (A, order) ; /* fill-reducing ordering */ + if (order >= 0 && !S->Q) return (cs_sfree (S)) ; + if (qr) /* QR symbolic analysis */ + { + cs *C = (order >= 0) ? cs_permute (A, NULL, S->Q, 0) : ((cs *) A) ; + S->parent = cs_etree (C, 1) ; /* etree of C'*C, where C=A(:,Q) */ + post = cs_post (n, S->parent) ; + S->cp = cs_counts (C, S->parent, post, 1) ; /* col counts chol(C'*C) */ + cs_free (post) ; + ok = C && S->parent && S->cp ; + if (ok) S->Pinv = cs_vcount (C, S->parent, &(S->m2), &(S->lnz)) ; + ok = ok && S->Pinv ; + if (ok) for (S->unz = 0, k = 0 ; k < n ; k++) S->unz += S->cp [k] ; + if (order >= 0) cs_spfree (C) ; + } + else + { + S->unz = 4*(A->p [n]) + n ; /* for LU factorization only, */ + S->lnz = S->unz ; /* guess nnz(L) and nnz(U) */ + } + return (ok ? S : cs_sfree (S)) ; +} + +/* C = A(p,p) where A and C are symmetric the upper part stored, Pinv not P */ +cs *cs_symperm (const cs *A, const int *Pinv, int values) +{ + int i, j, p, q, i2, j2, n, *Ap, *Ai, *Cp, *Ci, *w ; + double *Cx, *Ax ; + cs *C ; + if (!A) return (NULL) ; + n = A->n ; Ap = A->p ; Ai = A->i ; Ax = A->x ; + C = cs_spalloc (n, n, Ap [n], values && (Ax != NULL), 0) ; + w = (int*)cs_calloc (n, sizeof (int)) ; + if (!C || !w) return (cs_done (C, w, NULL, 0)) ; /* out of memory */ + Cp = C->p ; Ci = C->i ; Cx = C->x ; + for (j = 0 ; j < n ; j++) /* count entries in each column of C */ + { + j2 = Pinv ? Pinv [j] : j ; /* column j of A is column j2 of C */ + for (p = Ap [j] ; p < Ap [j+1] ; p++) + { + i = Ai [p] ; + if (i > j) continue ; /* skip lower triangular part of A */ + i2 = Pinv ? Pinv [i] : i ; /* row i of A is row i2 of C */ + w [CS_MAX (i2, j2)]++ ; /* column count of C */ + } + } + cs_cumsum (Cp, w, n) ; /* compute column pointers of C */ + for (j = 0 ; j < n ; j++) + { + j2 = Pinv ? Pinv [j] : j ; /* column j of A is column j2 of C */ + for (p = Ap [j] ; p < Ap [j+1] ; p++) + { + i = Ai [p] ; + if (i > j) continue ; /* skip lower triangular part of A*/ + i2 = Pinv ? Pinv [i] : i ; /* row i of A is row i2 of C */ + Ci [q = w [CS_MAX (i2, j2)]++] = CS_MIN (i2, j2) ; + if (Cx) Cx [q] = Ax [p] ; + } + } + return (cs_done (C, w, NULL, 1)) ; /* success; free workspace, return C */ +} + +/* depth-first search and postorder of a tree rooted at node j */ +int cs_tdfs (int j, int k, int *head, const int *next, int *post, int *stack) +{ + int i, p, top = 0 ; + if (!head || !next || !post || !stack) return (-1) ; /* check inputs */ + stack [0] = j ; /* place j on the stack */ + while (top >= 0) /* while (stack is not empty) */ + { + p = stack [top] ; /* p = top of stack */ + i = head [p] ; /* i = youngest child of p */ + if (i == -1) + { + top-- ; /* p has no unordered children left */ + post [k++] = p ; /* node p is the kth postordered node */ + } + else + { + head [p] = next [i] ; /* remove i from children of p */ + stack [++top] = i ; /* start dfs on child node i */ + } + } + return (k) ; +} + +/* C = A' */ +cs *cs_transpose (const cs *A, int values) +{ + int p, q, j, *Cp, *Ci, n, m, *Ap, *Ai, *w ; + double *Cx, *Ax ; + cs *C ; + if (!A) return (NULL) ; + m = A->m ; n = A->n ; Ap = A->p ; Ai = A->i ; Ax = A->x ; + C = cs_spalloc (n, m, Ap [n], values && Ax, 0) ; /* allocate result */ + w = (int*)cs_calloc (m, sizeof (int)) ; + if (!C || !w) return (cs_done (C, w, NULL, 0)) ; /* out of memory */ + Cp = C->p ; Ci = C->i ; Cx = C->x ; + for (p = 0 ; p < Ap [n] ; p++) w [Ai [p]]++ ; /* row counts */ + cs_cumsum (Cp, w, m) ; /* row pointers */ + for (j = 0 ; j < n ; j++) + { + for (p = Ap [j] ; p < Ap [j+1] ; p++) + { + Ci [q = w [Ai [p]]++] = j ; /* place A(i,j) as entry C(j,i) */ + if (Cx) Cx [q] = Ax [p] ; + } + } + return (cs_done (C, w, NULL, 1)) ; /* success; free w and return C */ +} + +/* C = compressed-column form of a triplet matrix T */ +cs *cs_triplet (const cs *T) +{ + int m, n, nz, p, k, *Cp, *Ci, *w, *Ti, *Tj ; + double *Cx, *Tx ; + cs *C ; + if (!T) return (NULL) ; /* check inputs */ + m = T->m ; n = T->n ; Ti = T->i ; Tj = T->p ; Tx = T->x ; nz = T->nz ; + C = cs_spalloc (m, n, nz, Tx != NULL, 0) ; /* allocate result */ + w = (int*)cs_calloc (n, sizeof (int)) ; /* get workspace */ + if (!C || !w) return (cs_done (C, w, NULL, 0)) ; /* out of memory */ + Cp = C->p ; Ci = C->i ; Cx = C->x ; + for (k = 0 ; k < nz ; k++) w [Tj [k]]++ ; /* column counts */ + cs_cumsum (Cp, w, n) ; /* column pointers */ + for (k = 0 ; k < nz ; k++) + { + Ci [p = w [Tj [k]]++] = Ti [k] ; /* A(i,j) is the pth entry in C */ + if (Cx) Cx [p] = Tx [k] ; + } + return (cs_done (C, w, NULL, 1)) ; /* success; free w and return C */ +} + +/* sparse Cholesky update/downdate, L*L' + sigma*w*w' (sigma = +1 or -1) */ +int cs_updown (cs *L, int sigma, const cs *C, const int *parent) +{ + int p, f, j, *Lp, *Li, *Cp, *Ci ; + double *Lx, *Cx, alpha, beta = 1, delta, gamma, w1, w2, *w, n, beta2 = 1 ; + if (!L || !C || !parent) return (0) ; + Lp = L->p ; Li = L->i ; Lx = L->x ; n = L->n ; + Cp = C->p ; Ci = C->i ; Cx = C->x ; + if ((p = Cp [0]) >= Cp [1]) return (1) ; /* return if C empty */ + w = (double*)cs_malloc ((int)n, sizeof (double)) ; + if (!w) return (0) ; + f = Ci [p] ; + for ( ; p < Cp [1] ; p++) f = CS_MIN (f, Ci [p]) ; /* f = min (find (C)) */ + for (j = f ; j != -1 ; j = parent [j]) w [j] = 0 ; /* clear workspace w */ + for (p = Cp [0] ; p < Cp [1] ; p++) w [Ci [p]] = Cx [p] ; /* w = C */ + for (j = f ; j != -1 ; j = parent [j]) /* walk path f up to root */ + { + p = Lp [j] ; + alpha = w [j] / Lx [p] ; /* alpha = w(j) / L(j,j) */ + beta2 = beta*beta + sigma*alpha*alpha ; + if (beta2 <= 0) break ; /* not positive definite */ + beta2 = sqrt (beta2) ; + delta = (sigma > 0) ? (beta / beta2) : (beta2 / beta) ; + gamma = sigma * alpha / (beta2 * beta) ; + Lx [p] = delta * Lx [p] + ((sigma > 0) ? (gamma * w [j]) : 0) ; + beta = beta2 ; + for (p++ ; p < Lp [j+1] ; p++) + { + w1 = w [Li [p]] ; + w [Li [p]] = w2 = w1 - alpha * Lx [p] ; + Lx [p] = delta * Lx [p] + gamma * ((sigma > 0) ? w1 : w2) ; + } + } + cs_free (w) ; + return (beta2 > 0) ; +} + +/* solve Ux=b where x and b are dense. x=b on input, solution on output. */ +int cs_usolve (const cs *U, double *x) +{ + int p, j, n, *Up, *Ui ; + double *Ux ; + if (!U || !x) return (0) ; /* check inputs */ + n = U->n ; Up = U->p ; Ui = U->i ; Ux = U->x ; + for (j = n-1 ; j >= 0 ; j--) + { + x [j] /= Ux [Up [j+1]-1] ; + for (p = Up [j] ; p < Up [j+1]-1 ; p++) + { + x [Ui [p]] -= Ux [p] * x [j] ; + } + } + return (1) ; +} + +/* allocate a sparse matrix (triplet form or compressed-column form) */ +cs *cs_spalloc (int m, int n, int nzmax, int values, int triplet) +{ + cs *A = (cs*)cs_calloc (1, sizeof (cs)) ; /* allocate the cs struct */ + if (!A) return (NULL) ; /* out of memory */ + A->m = m ; /* define dimensions and nzmax */ + A->n = n ; + A->nzmax = nzmax = CS_MAX (nzmax, 1) ; + A->nz = triplet ? 0 : -1 ; /* allocate triplet or comp.col */ + A->p = (int*)cs_malloc (triplet ? nzmax : n+1, sizeof (int)) ; + A->i = (int*)cs_malloc (nzmax, sizeof (int)) ; + A->x = values ? (double*)cs_malloc (nzmax, sizeof (double)) : NULL ; + return ((!A->p || !A->i || (values && !A->x)) ? cs_spfree (A) : A) ; +} + +/* change the max # of entries sparse matrix */ +int cs_sprealloc (cs *A, int nzmax) +{ + int ok, oki, okj = 1, okx = 1 ; + if (!A) return (0) ; + nzmax = (nzmax <= 0) ? (A->p [A->n]) : nzmax ; + A->i = (int*)cs_realloc (A->i, nzmax, sizeof (int), &oki) ; + if (A->nz >= 0) A->p = (int*)cs_realloc (A->p, nzmax, sizeof (int), &okj) ; + if (A->x) A->x = (double*)cs_realloc (A->x, nzmax, sizeof (double), &okx) ; + ok = (oki && okj && okx) ; + if (ok) A->nzmax = nzmax ; + return (ok) ; +} + +/* free a sparse matrix */ +cs *cs_spfree (cs *A) +{ + if (!A) return (NULL) ; /* do nothing if A already NULL */ + cs_free (A->p) ; + cs_free (A->i) ; + cs_free (A->x) ; + return (cs*)(cs_free (A)) ; /* free the cs struct and return NULL */ +} + +/* free a numeric factorization */ +csn *cs_nfree (csn *N) +{ + if (!N) return (NULL) ; /* do nothing if N already NULL */ + cs_spfree (N->L) ; + cs_spfree (N->U) ; + cs_free (N->Pinv) ; + cs_free (N->B) ; + return (csn*)(cs_free (N)) ; /* free the csn struct and return NULL */ +} + +/* free a symbolic factorization */ +css *cs_sfree (css *S) +{ + if (!S) return (NULL) ; /* do nothing if S already NULL */ + cs_free (S->Pinv) ; + cs_free (S->Q) ; + cs_free (S->parent) ; + cs_free (S->cp) ; + return (css*)(cs_free (S)) ; /* free the css struct and return NULL */ +} + +/* allocate a cs_dmperm or cs_scc result */ +csd *cs_dalloc (int m, int n) +{ + csd *D ; + D = (csd*)cs_calloc (1, sizeof (csd)) ; + if (!D) return (NULL) ; + D->P = (int*)cs_malloc (m, sizeof (int)) ; + D->R = (int*)cs_malloc (m+6, sizeof (int)) ; + D->Q = (int*)cs_malloc (n, sizeof (int)) ; + D->S = (int*)cs_malloc (n+6, sizeof (int)) ; + return ((!D->P || !D->R || !D->Q || !D->S) ? cs_dfree (D) : D) ; +} + +/* free a cs_dmperm or cs_scc result */ +csd *cs_dfree (csd *D) +{ + if (!D) return (NULL) ; /* do nothing if D already NULL */ + cs_free (D->P) ; + cs_free (D->Q) ; + cs_free (D->R) ; + cs_free (D->S) ; + return (csd*)(cs_free (D)) ; +} + +/* free workspace and return a sparse matrix result */ +cs *cs_done (cs *C, void *w, void *x, int ok) +{ + cs_free (w) ; /* free workspace */ + cs_free (x) ; + return (ok ? C : cs_spfree (C)) ; /* return result if OK, else free it */ +} + +/* free workspace and return int array result */ +int *cs_idone (int *p, cs *C, void *w, int ok) +{ + cs_spfree (C) ; /* free temporary matrix */ + cs_free (w) ; /* free workspace */ + return (ok ? p : (int*)cs_free (p)) ; /* return result if OK, else free it */ +} + +/* free workspace and return a numeric factorization (Cholesky, LU, or QR) */ +csn *cs_ndone (csn *N, cs *C, void *w, void *x, int ok) +{ + cs_spfree (C) ; /* free temporary matrix */ + cs_free (w) ; /* free workspace */ + cs_free (x) ; + return (ok ? N : cs_nfree (N)) ; /* return result if OK, else free it */ +} + +/* free workspace and return a csd result */ +csd *cs_ddone (csd *D, cs *C, void *w, int ok) +{ + cs_spfree (C) ; /* free temporary matrix */ + cs_free (w) ; /* free workspace */ + return (ok ? D : cs_dfree (D)) ; /* return result if OK, else free it */ +} + +/* solve U'x=b where x and b are dense. x=b on input, solution on output. */ +int cs_utsolve (const cs *U, double *x) +{ + int p, j, n, *Up, *Ui ; + double *Ux ; + if (!U || !x) return (0) ; /* check inputs */ + n = U->n ; Up = U->p ; Ui = U->i ; Ux = U->x ; + for (j = 0 ; j < n ; j++) + { + for (p = Up [j] ; p < Up [j+1]-1 ; p++) + { + x [j] -= Ux [p] * x [Ui [p]] ; + } + x [j] /= Ux [p] ; + } + return (1) ; +} diff --git a/3rdparty/sparse/csparse.h b/3rdparty/sparse/csparse.h new file mode 100644 index 0000000..0b1bd58 --- /dev/null +++ b/3rdparty/sparse/csparse.h @@ -0,0 +1,134 @@ +#ifndef _CS_H +#define _CS_H + +#ifdef MATLAB_MEX_FILE +#include "mex.h" +#endif +#define CS_VER 1 /* CSparse Version 1.2.0 */ +#define CS_SUBVER 2 +#define CS_SUBSUB 0 +#define CS_DATE "Mar 6, 2006" /* CSparse release date */ +#define CS_COPYRIGHT "Copyright (c) Timothy A. Davis, 2006" + +/* --- primary CSparse routines and data structures ------------------------- */ +typedef struct cs_sparse /* matrix in compressed-column or triplet form */ +{ + int nzmax ; /* maximum number of entries */ + int m ; /* number of rows */ + int n ; /* number of columns */ + int *p ; /* column pointers (size n+1) or col indices (size nzmax) */ + int *i ; /* row indices, size nzmax */ + double *x ; /* numerical values, size nzmax */ + int nz ; /* # of entries in triplet matrix, -1 for compressed-col */ +} cs ; + +cs *cs_add (const cs *A, const cs *B, double alpha, double beta) ; +int cs_cholsol (const cs *A, double *b, int order) ; +int cs_dupl (cs *A) ; +int cs_entry (cs *T, int i, int j, double x) ; +int cs_lusol (const cs *A, double *b, int order, double tol) ; +int cs_gaxpy (const cs *A, const double *x, double *y) ; +cs *cs_multiply (const cs *A, const cs *B) ; +int cs_qrsol (const cs *A, double *b, int order) ; +cs *cs_transpose (const cs *A, int values) ; +cs *cs_triplet (const cs *T) ; +double cs_norm (const cs *A) ; +int cs_print (const cs *A, int brief) ; +cs *cs_load (FILE *f) ; +/* utilities */ +void *cs_calloc (int n, size_t size) ; +void *cs_free (void *p) ; +void *cs_realloc (void *p, int n, size_t size, int *ok) ; +cs *cs_spalloc (int m, int n, int nzmax, int values, int triplet) ; +cs *cs_spfree (cs *A) ; +int cs_sprealloc (cs *A, int nzmax) ; +void *cs_malloc (int n, size_t size) ; + +/* --- secondary CSparse routines and data structures ----------------------- */ +typedef struct cs_symbolic /* symbolic Cholesky, LU, or QR analysis */ +{ + int *Pinv ; /* inverse row perm. for QR, fill red. perm for Chol */ + int *Q ; /* fill-reducing column permutation for LU and QR */ + int *parent ; /* elimination tree for Cholesky and QR */ + int *cp ; /* column pointers for Cholesky, row counts for QR */ + int m2 ; /* # of rows for QR, after adding fictitious rows */ + int lnz ; /* # entries in L for LU or Cholesky; in V for QR */ + int unz ; /* # entries in U for LU; in R for QR */ +} css ; + +typedef struct cs_numeric /* numeric Cholesky, LU, or QR factorization */ +{ + cs *L ; /* L for LU and Cholesky, V for QR */ + cs *U ; /* U for LU, R for QR, not used for Cholesky */ + int *Pinv ; /* partial pivoting for LU */ + double *B ; /* beta [0..n-1] for QR */ +} csn ; + +typedef struct cs_dmperm_results /* cs_dmperm or cs_scc output */ +{ + int *P ; /* size m, row permutation */ + int *Q ; /* size n, column permutation */ + int *R ; /* size nb+1, block k is rows R[k] to R[k+1]-1 in A(P,Q) */ + int *S ; /* size nb+1, block k is cols S[k] to S[k+1]-1 in A(P,Q) */ + int nb ; /* # of blocks in fine dmperm decomposition */ + int rr [5] ; /* coarse row decomposition */ + int cc [5] ; /* coarse column decomposition */ +} csd ; + +int *cs_amd (const cs *A, int order) ; +csn *cs_chol (const cs *A, const css *S) ; +csd *cs_dmperm (const cs *A) ; +int cs_droptol (cs *A, double tol) ; +int cs_dropzeros (cs *A) ; +int cs_happly (const cs *V, int i, double beta, double *x) ; +int cs_ipvec (int n, const int *P, const double *b, double *x) ; +int cs_lsolve (const cs *L, double *x) ; +int cs_ltsolve (const cs *L, double *x) ; +csn *cs_lu (const cs *A, const css *S, double tol) ; +cs *cs_permute (const cs *A, const int *P, const int *Q, int values) ; +int *cs_pinv (const int *P, int n) ; +int cs_pvec (int n, const int *P, const double *b, double *x) ; +csn *cs_qr (const cs *A, const css *S) ; +css *cs_schol (const cs *A, int order) ; +css *cs_sqr (const cs *A, int order, int qr) ; +cs *cs_symperm (const cs *A, const int *Pinv, int values) ; +int cs_usolve (const cs *U, double *x) ; +int cs_utsolve (const cs *U, double *x) ; +int cs_updown (cs *L, int sigma, const cs *C, const int *parent) ; +/* utilities */ +css *cs_sfree (css *S) ; +csn *cs_nfree (csn *N) ; +csd *cs_dfree (csd *D) ; + +/* --- tertiary CSparse routines -------------------------------------------- */ +int *cs_counts (const cs *A, const int *parent, const int *post, int ata) ; +int cs_cumsum (int *p, int *c, int n) ; +int cs_dfs (int j, cs *L, int top, int *xi, int *pstack, const int *Pinv) ; +int *cs_etree (const cs *A, int ata) ; +int cs_fkeep (cs *A, int (*fkeep) (int, int, double, void *), void *other) ; +double cs_house (double *x, double *beta, int n) ; +int *cs_maxtrans (const cs *A) ; +int *cs_post (int n, const int *parent) ; +int cs_reach (cs *L, const cs *B, int k, int *xi, const int *Pinv) ; +csd *cs_scc (cs *A) ; +int cs_scatter (const cs *A, int j, double beta, int *w, double *x, int mark, + cs *C, int nz) ; +int cs_splsolve (cs *L, const cs *B, int k, int *xi, double *x, + const int *Pinv) ; +int cs_tdfs (int j, int k, int *head, const int *next, int *post, + int *stack) ; +/* utilities */ +csd *cs_dalloc (int m, int n) ; +cs *cs_done (cs *C, void *w, void *x, int ok) ; +int *cs_idone (int *p, cs *C, void *w, int ok) ; +csn *cs_ndone (csn *N, cs *C, void *w, void *x, int ok) ; +csd *cs_ddone (csd *D, cs *C, void *w, int ok) ; + +#define CS_MAX(a,b) (((a) > (b)) ? (a) : (b)) +#define CS_MIN(a,b) (((a) < (b)) ? (a) : (b)) +#define CS_FLIP(i) (-(i)-2) +#define CS_UNFLIP(i) (((i) < 0) ? CS_FLIP(i) : (i)) +#define CS_MARKED(Ap,j) (Ap [j] < 0) +#define CS_MARK(Ap,j) { Ap [j] = CS_FLIP (Ap [j]) ; } +#define CS_OVERFLOW(n,size) (n > INT_MAX / (int) size) +#endif diff --git a/3rdparty/windows/GL/freeglut.h b/3rdparty/windows/GL/freeglut.h new file mode 100644 index 0000000..241b7fc --- /dev/null +++ b/3rdparty/windows/GL/freeglut.h @@ -0,0 +1,22 @@ +#ifndef __FREEGLUT_H__ +#define __FREEGLUT_H__ + +/* + * freeglut.h + * + * The freeglut library include file + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#include "freeglut_std.h" +#include "freeglut_ext.h" + +/*** END OF FILE ***/ + +#endif /* __FREEGLUT_H__ */ diff --git a/3rdparty/windows/GL/freeglut_ext.h b/3rdparty/windows/GL/freeglut_ext.h new file mode 100644 index 0000000..af91879 --- /dev/null +++ b/3rdparty/windows/GL/freeglut_ext.h @@ -0,0 +1,236 @@ +#ifndef __FREEGLUT_EXT_H__ +#define __FREEGLUT_EXT_H__ + +/* + * freeglut_ext.h + * + * The non-GLUT-compatible extensions to the freeglut library include file + * + * Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved. + * Written by Pawel W. Olszta, + * Creation date: Thu Dec 2 1999 + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#ifdef __cplusplus + extern "C" { +#endif + +/* + * Additional GLUT Key definitions for the Special key function + */ +#define GLUT_KEY_NUM_LOCK 0x006D +#define GLUT_KEY_BEGIN 0x006E +#define GLUT_KEY_DELETE 0x006F +#define GLUT_KEY_SHIFT_L 0x0070 +#define GLUT_KEY_SHIFT_R 0x0071 +#define GLUT_KEY_CTRL_L 0x0072 +#define GLUT_KEY_CTRL_R 0x0073 +#define GLUT_KEY_ALT_L 0x0074 +#define GLUT_KEY_ALT_R 0x0075 + +/* + * GLUT API Extension macro definitions -- behaviour when the user clicks on an "x" to close a window + */ +#define GLUT_ACTION_EXIT 0 +#define GLUT_ACTION_GLUTMAINLOOP_RETURNS 1 +#define GLUT_ACTION_CONTINUE_EXECUTION 2 + +/* + * Create a new rendering context when the user opens a new window? + */ +#define GLUT_CREATE_NEW_CONTEXT 0 +#define GLUT_USE_CURRENT_CONTEXT 1 + +/* + * Direct/Indirect rendering context options (has meaning only in Unix/X11) + */ +#define GLUT_FORCE_INDIRECT_CONTEXT 0 +#define GLUT_ALLOW_DIRECT_CONTEXT 1 +#define GLUT_TRY_DIRECT_CONTEXT 2 +#define GLUT_FORCE_DIRECT_CONTEXT 3 + +/* + * GLUT API Extension macro definitions -- the glutGet parameters + */ +#define GLUT_INIT_STATE 0x007C + +#define GLUT_ACTION_ON_WINDOW_CLOSE 0x01F9 + +#define GLUT_WINDOW_BORDER_WIDTH 0x01FA +#define GLUT_WINDOW_HEADER_HEIGHT 0x01FB + +#define GLUT_VERSION 0x01FC + +#define GLUT_RENDERING_CONTEXT 0x01FD +#define GLUT_DIRECT_RENDERING 0x01FE + +#define GLUT_FULL_SCREEN 0x01FF + +/* + * New tokens for glutInitDisplayMode. + * Only one GLUT_AUXn bit may be used at a time. + * Value 0x0400 is defined in OpenGLUT. + */ +#define GLUT_AUX 0x1000 + +#define GLUT_AUX1 0x1000 +#define GLUT_AUX2 0x2000 +#define GLUT_AUX3 0x4000 +#define GLUT_AUX4 0x8000 + +/* + * Context-related flags, see freeglut_state.c + */ +#define GLUT_INIT_MAJOR_VERSION 0x0200 +#define GLUT_INIT_MINOR_VERSION 0x0201 +#define GLUT_INIT_FLAGS 0x0202 +#define GLUT_INIT_PROFILE 0x0203 + +/* + * Flags for glutInitContextFlags, see freeglut_init.c + */ +#define GLUT_DEBUG 0x0001 +#define GLUT_FORWARD_COMPATIBLE 0x0002 + + +/* + * Flags for glutInitContextProfile, see freeglut_init.c + */ +#define GLUT_CORE_PROFILE 0x0001 +#define GLUT_COMPATIBILITY_PROFILE 0x0002 + +/* + * Process loop function, see freeglut_main.c + */ +FGAPI void FGAPIENTRY glutMainLoopEvent( void ); +FGAPI void FGAPIENTRY glutLeaveMainLoop( void ); +FGAPI void FGAPIENTRY glutExit ( void ); + +/* + * Window management functions, see freeglut_window.c + */ +FGAPI void FGAPIENTRY glutFullScreenToggle( void ); +FGAPI void FGAPIENTRY glutLeaveFullScreen( void ); + +/* + * Window-specific callback functions, see freeglut_callbacks.c + */ +FGAPI void FGAPIENTRY glutMouseWheelFunc( void (* callback)( int, int, int, int ) ); +FGAPI void FGAPIENTRY glutCloseFunc( void (* callback)( void ) ); +FGAPI void FGAPIENTRY glutWMCloseFunc( void (* callback)( void ) ); +/* A. Donev: Also a destruction callback for menus */ +FGAPI void FGAPIENTRY glutMenuDestroyFunc( void (* callback)( void ) ); + +/* + * State setting and retrieval functions, see freeglut_state.c + */ +FGAPI void FGAPIENTRY glutSetOption ( GLenum option_flag, int value ); +FGAPI int * FGAPIENTRY glutGetModeValues(GLenum mode, int * size); +/* A.Donev: User-data manipulation */ +FGAPI void* FGAPIENTRY glutGetWindowData( void ); +FGAPI void FGAPIENTRY glutSetWindowData(void* data); +FGAPI void* FGAPIENTRY glutGetMenuData( void ); +FGAPI void FGAPIENTRY glutSetMenuData(void* data); + +/* + * Font stuff, see freeglut_font.c + */ +FGAPI int FGAPIENTRY glutBitmapHeight( void* font ); +FGAPI GLfloat FGAPIENTRY glutStrokeHeight( void* font ); +FGAPI void FGAPIENTRY glutBitmapString( void* font, const unsigned char *string ); +FGAPI void FGAPIENTRY glutStrokeString( void* font, const unsigned char *string ); + +/* + * Geometry functions, see freeglut_geometry.c + */ +FGAPI void FGAPIENTRY glutWireRhombicDodecahedron( void ); +FGAPI void FGAPIENTRY glutSolidRhombicDodecahedron( void ); +FGAPI void FGAPIENTRY glutWireSierpinskiSponge ( int num_levels, GLdouble offset[3], GLdouble scale ); +FGAPI void FGAPIENTRY glutSolidSierpinskiSponge ( int num_levels, GLdouble offset[3], GLdouble scale ); +FGAPI void FGAPIENTRY glutWireCylinder( GLdouble radius, GLdouble height, GLint slices, GLint stacks); +FGAPI void FGAPIENTRY glutSolidCylinder( GLdouble radius, GLdouble height, GLint slices, GLint stacks); + +/* + * Extension functions, see freeglut_ext.c + */ +typedef void (*GLUTproc)(); +FGAPI GLUTproc FGAPIENTRY glutGetProcAddress( const char *procName ); + +/* + * Multi-touch/multi-pointer extensions + */ + +#define GLUT_HAS_MULTI 1 + +FGAPI void FGAPIENTRY glutMultiEntryFunc( void (* callback)( int, int ) ); +FGAPI void FGAPIENTRY glutMultiButtonFunc( void (* callback)( int, int, int, int, int ) ); +FGAPI void FGAPIENTRY glutMultiMotionFunc( void (* callback)( int, int, int ) ); +FGAPI void FGAPIENTRY glutMultiPassiveFunc( void (* callback)( int, int, int ) ); + +/* + * Joystick functions, see freeglut_joystick.c + */ +/* USE OF THESE FUNCTIONS IS DEPRECATED !!!!! */ +/* If you have a serious need for these functions in your application, please either + * contact the "freeglut" developer community at freeglut-developer@lists.sourceforge.net, + * switch to the OpenGLUT library, or else port your joystick functionality over to PLIB's + * "js" library. + */ +int glutJoystickGetNumAxes( int ident ); +int glutJoystickGetNumButtons( int ident ); +int glutJoystickNotWorking( int ident ); +float glutJoystickGetDeadBand( int ident, int axis ); +void glutJoystickSetDeadBand( int ident, int axis, float db ); +float glutJoystickGetSaturation( int ident, int axis ); +void glutJoystickSetSaturation( int ident, int axis, float st ); +void glutJoystickSetMinRange( int ident, float *axes ); +void glutJoystickSetMaxRange( int ident, float *axes ); +void glutJoystickSetCenter( int ident, float *axes ); +void glutJoystickGetMinRange( int ident, float *axes ); +void glutJoystickGetMaxRange( int ident, float *axes ); +void glutJoystickGetCenter( int ident, float *axes ); + +/* + * Initialization functions, see freeglut_init.c + */ +FGAPI void FGAPIENTRY glutInitContextVersion( int majorVersion, int minorVersion ); +FGAPI void FGAPIENTRY glutInitContextFlags( int flags ); +FGAPI void FGAPIENTRY glutInitContextProfile( int profile ); + +/* to get the typedef for va_list */ +#include + +FGAPI void FGAPIENTRY glutInitErrorFunc( void (* vError)( const char *fmt, va_list ap ) ); +FGAPI void FGAPIENTRY glutInitWarningFunc( void (* vWarning)( const char *fmt, va_list ap ) ); + +/* + * GLUT API macro definitions -- the display mode definitions + */ +#define GLUT_CAPTIONLESS 0x0400 +#define GLUT_BORDERLESS 0x0800 +#define GLUT_SRGB 0x1000 + +#ifdef __cplusplus + } +#endif + +/*** END OF FILE ***/ + +#endif /* __FREEGLUT_EXT_H__ */ diff --git a/3rdparty/windows/GL/freeglut_std.h b/3rdparty/windows/GL/freeglut_std.h new file mode 100644 index 0000000..a1a7a1f --- /dev/null +++ b/3rdparty/windows/GL/freeglut_std.h @@ -0,0 +1,624 @@ +#ifndef __FREEGLUT_STD_H__ +#define __FREEGLUT_STD_H__ + +/* + * freeglut_std.h + * + * The GLUT-compatible part of the freeglut library include file + * + * Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved. + * Written by Pawel W. Olszta, + * Creation date: Thu Dec 2 1999 + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#ifdef __cplusplus + extern "C" { +#endif + +/* + * Under windows, we have to differentiate between static and dynamic libraries + */ +#ifdef _WIN32 +/* #pragma may not be supported by some compilers. + * Discussion by FreeGLUT developers suggests that + * Visual C++ specific code involving pragmas may + * need to move to a separate header. 24th Dec 2003 + */ + +/* Define FREEGLUT_LIB_PRAGMAS to 1 to include library + * pragmas or to 0 to exclude library pragmas. + * The default behavior depends on the compiler/platform. + */ +# ifndef FREEGLUT_LIB_PRAGMAS +# if ( defined(_MSC_VER) || defined(__WATCOMC__) ) && !defined(_WIN32_WCE) +# define FREEGLUT_LIB_PRAGMAS 1 +# else +# define FREEGLUT_LIB_PRAGMAS 0 +# endif +# endif + + /* +# ifndef WIN32_LEAN_AND_MEAN +# define WIN32_LEAN_AND_MEAN 1 +# endif + */ +# ifndef NOMINMAX +# define NOMINMAX +# endif +# include + +/* Windows static library */ +# ifdef FREEGLUT_STATIC + +#error Static linking is not supported with this build. Please remove the FREEGLUT_STATIC preprocessor directive, or download the source code from http://freeglut.sf.net/ and build against that. + +/* Windows shared library (DLL) */ +# else + +# define FGAPIENTRY __stdcall +# if defined(FREEGLUT_EXPORTS) +# define FGAPI __declspec(dllexport) +# else +# define FGAPI __declspec(dllimport) + + /* Link with Win32 shared freeglut lib */ +# if FREEGLUT_LIB_PRAGMAS +# pragma comment (lib, "freeglut.lib") +# endif + +# endif + +# endif + +/* Drag in other Windows libraries as required by FreeGLUT */ +# if FREEGLUT_LIB_PRAGMAS +# pragma comment (lib, "glu32.lib") /* link OpenGL Utility lib */ +# pragma comment (lib, "opengl32.lib") /* link Microsoft OpenGL lib */ +# pragma comment (lib, "gdi32.lib") /* link Windows GDI lib */ +# pragma comment (lib, "winmm.lib") /* link Windows MultiMedia lib */ +# pragma comment (lib, "user32.lib") /* link Windows user lib */ +# endif + +#else + +/* Non-Windows definition of FGAPI and FGAPIENTRY */ +# define FGAPI +# define FGAPIENTRY + +#endif + +/* + * The freeglut and GLUT API versions + */ +#define FREEGLUT 1 +#define GLUT_API_VERSION 4 +#define FREEGLUT_VERSION_2_0 1 +#define GLUT_XLIB_IMPLEMENTATION 13 + +/* + * Always include OpenGL and GLU headers + */ +#include +#include + +/* + * GLUT API macro definitions -- the special key codes: + */ +#define GLUT_KEY_F1 0x0001 +#define GLUT_KEY_F2 0x0002 +#define GLUT_KEY_F3 0x0003 +#define GLUT_KEY_F4 0x0004 +#define GLUT_KEY_F5 0x0005 +#define GLUT_KEY_F6 0x0006 +#define GLUT_KEY_F7 0x0007 +#define GLUT_KEY_F8 0x0008 +#define GLUT_KEY_F9 0x0009 +#define GLUT_KEY_F10 0x000A +#define GLUT_KEY_F11 0x000B +#define GLUT_KEY_F12 0x000C +#define GLUT_KEY_LEFT 0x0064 +#define GLUT_KEY_UP 0x0065 +#define GLUT_KEY_RIGHT 0x0066 +#define GLUT_KEY_DOWN 0x0067 +#define GLUT_KEY_PAGE_UP 0x0068 +#define GLUT_KEY_PAGE_DOWN 0x0069 +#define GLUT_KEY_HOME 0x006A +#define GLUT_KEY_END 0x006B +#define GLUT_KEY_INSERT 0x006C + +/* + * GLUT API macro definitions -- mouse state definitions + */ +#define GLUT_LEFT_BUTTON 0x0000 +#define GLUT_MIDDLE_BUTTON 0x0001 +#define GLUT_RIGHT_BUTTON 0x0002 +#define GLUT_DOWN 0x0000 +#define GLUT_UP 0x0001 +#define GLUT_LEFT 0x0000 +#define GLUT_ENTERED 0x0001 + +/* + * GLUT API macro definitions -- the display mode definitions + */ +#define GLUT_RGB 0x0000 +#define GLUT_RGBA 0x0000 +#define GLUT_INDEX 0x0001 +#define GLUT_SINGLE 0x0000 +#define GLUT_DOUBLE 0x0002 +#define GLUT_ACCUM 0x0004 +#define GLUT_ALPHA 0x0008 +#define GLUT_DEPTH 0x0010 +#define GLUT_STENCIL 0x0020 +#define GLUT_MULTISAMPLE 0x0080 +#define GLUT_STEREO 0x0100 +#define GLUT_LUMINANCE 0x0200 + +/* + * GLUT API macro definitions -- windows and menu related definitions + */ +#define GLUT_MENU_NOT_IN_USE 0x0000 +#define GLUT_MENU_IN_USE 0x0001 +#define GLUT_NOT_VISIBLE 0x0000 +#define GLUT_VISIBLE 0x0001 +#define GLUT_HIDDEN 0x0000 +#define GLUT_FULLY_RETAINED 0x0001 +#define GLUT_PARTIALLY_RETAINED 0x0002 +#define GLUT_FULLY_COVERED 0x0003 + +/* + * GLUT API macro definitions -- fonts definitions + * + * Steve Baker suggested to make it binary compatible with GLUT: + */ +#if defined(_MSC_VER) || defined(__CYGWIN__) || defined(__MINGW32__) || defined(__WATCOMC__) +# define GLUT_STROKE_ROMAN ((void *)0x0000) +# define GLUT_STROKE_MONO_ROMAN ((void *)0x0001) +# define GLUT_BITMAP_9_BY_15 ((void *)0x0002) +# define GLUT_BITMAP_8_BY_13 ((void *)0x0003) +# define GLUT_BITMAP_TIMES_ROMAN_10 ((void *)0x0004) +# define GLUT_BITMAP_TIMES_ROMAN_24 ((void *)0x0005) +# define GLUT_BITMAP_HELVETICA_10 ((void *)0x0006) +# define GLUT_BITMAP_HELVETICA_12 ((void *)0x0007) +# define GLUT_BITMAP_HELVETICA_18 ((void *)0x0008) +#else + /* + * I don't really know if it's a good idea... But here it goes: + */ + extern void* glutStrokeRoman; + extern void* glutStrokeMonoRoman; + extern void* glutBitmap9By15; + extern void* glutBitmap8By13; + extern void* glutBitmapTimesRoman10; + extern void* glutBitmapTimesRoman24; + extern void* glutBitmapHelvetica10; + extern void* glutBitmapHelvetica12; + extern void* glutBitmapHelvetica18; + + /* + * Those pointers will be used by following definitions: + */ +# define GLUT_STROKE_ROMAN ((void *) &glutStrokeRoman) +# define GLUT_STROKE_MONO_ROMAN ((void *) &glutStrokeMonoRoman) +# define GLUT_BITMAP_9_BY_15 ((void *) &glutBitmap9By15) +# define GLUT_BITMAP_8_BY_13 ((void *) &glutBitmap8By13) +# define GLUT_BITMAP_TIMES_ROMAN_10 ((void *) &glutBitmapTimesRoman10) +# define GLUT_BITMAP_TIMES_ROMAN_24 ((void *) &glutBitmapTimesRoman24) +# define GLUT_BITMAP_HELVETICA_10 ((void *) &glutBitmapHelvetica10) +# define GLUT_BITMAP_HELVETICA_12 ((void *) &glutBitmapHelvetica12) +# define GLUT_BITMAP_HELVETICA_18 ((void *) &glutBitmapHelvetica18) +#endif + +/* + * GLUT API macro definitions -- the glutGet parameters + */ +#define GLUT_WINDOW_X 0x0064 +#define GLUT_WINDOW_Y 0x0065 +#define GLUT_WINDOW_WIDTH 0x0066 +#define GLUT_WINDOW_HEIGHT 0x0067 +#define GLUT_WINDOW_BUFFER_SIZE 0x0068 +#define GLUT_WINDOW_STENCIL_SIZE 0x0069 +#define GLUT_WINDOW_DEPTH_SIZE 0x006A +#define GLUT_WINDOW_RED_SIZE 0x006B +#define GLUT_WINDOW_GREEN_SIZE 0x006C +#define GLUT_WINDOW_BLUE_SIZE 0x006D +#define GLUT_WINDOW_ALPHA_SIZE 0x006E +#define GLUT_WINDOW_ACCUM_RED_SIZE 0x006F +#define GLUT_WINDOW_ACCUM_GREEN_SIZE 0x0070 +#define GLUT_WINDOW_ACCUM_BLUE_SIZE 0x0071 +#define GLUT_WINDOW_ACCUM_ALPHA_SIZE 0x0072 +#define GLUT_WINDOW_DOUBLEBUFFER 0x0073 +#define GLUT_WINDOW_RGBA 0x0074 +#define GLUT_WINDOW_PARENT 0x0075 +#define GLUT_WINDOW_NUM_CHILDREN 0x0076 +#define GLUT_WINDOW_COLORMAP_SIZE 0x0077 +#define GLUT_WINDOW_NUM_SAMPLES 0x0078 +#define GLUT_WINDOW_STEREO 0x0079 +#define GLUT_WINDOW_CURSOR 0x007A + +#define GLUT_SCREEN_WIDTH 0x00C8 +#define GLUT_SCREEN_HEIGHT 0x00C9 +#define GLUT_SCREEN_WIDTH_MM 0x00CA +#define GLUT_SCREEN_HEIGHT_MM 0x00CB +#define GLUT_MENU_NUM_ITEMS 0x012C +#define GLUT_DISPLAY_MODE_POSSIBLE 0x0190 +#define GLUT_INIT_WINDOW_X 0x01F4 +#define GLUT_INIT_WINDOW_Y 0x01F5 +#define GLUT_INIT_WINDOW_WIDTH 0x01F6 +#define GLUT_INIT_WINDOW_HEIGHT 0x01F7 +#define GLUT_INIT_DISPLAY_MODE 0x01F8 +#define GLUT_ELAPSED_TIME 0x02BC +#define GLUT_WINDOW_FORMAT_ID 0x007B + +/* + * GLUT API macro definitions -- the glutDeviceGet parameters + */ +#define GLUT_HAS_KEYBOARD 0x0258 +#define GLUT_HAS_MOUSE 0x0259 +#define GLUT_HAS_SPACEBALL 0x025A +#define GLUT_HAS_DIAL_AND_BUTTON_BOX 0x025B +#define GLUT_HAS_TABLET 0x025C +#define GLUT_NUM_MOUSE_BUTTONS 0x025D +#define GLUT_NUM_SPACEBALL_BUTTONS 0x025E +#define GLUT_NUM_BUTTON_BOX_BUTTONS 0x025F +#define GLUT_NUM_DIALS 0x0260 +#define GLUT_NUM_TABLET_BUTTONS 0x0261 +#define GLUT_DEVICE_IGNORE_KEY_REPEAT 0x0262 +#define GLUT_DEVICE_KEY_REPEAT 0x0263 +#define GLUT_HAS_JOYSTICK 0x0264 +#define GLUT_OWNS_JOYSTICK 0x0265 +#define GLUT_JOYSTICK_BUTTONS 0x0266 +#define GLUT_JOYSTICK_AXES 0x0267 +#define GLUT_JOYSTICK_POLL_RATE 0x0268 + +/* + * GLUT API macro definitions -- the glutLayerGet parameters + */ +#define GLUT_OVERLAY_POSSIBLE 0x0320 +#define GLUT_LAYER_IN_USE 0x0321 +#define GLUT_HAS_OVERLAY 0x0322 +#define GLUT_TRANSPARENT_INDEX 0x0323 +#define GLUT_NORMAL_DAMAGED 0x0324 +#define GLUT_OVERLAY_DAMAGED 0x0325 + +/* + * GLUT API macro definitions -- the glutVideoResizeGet parameters + */ +#define GLUT_VIDEO_RESIZE_POSSIBLE 0x0384 +#define GLUT_VIDEO_RESIZE_IN_USE 0x0385 +#define GLUT_VIDEO_RESIZE_X_DELTA 0x0386 +#define GLUT_VIDEO_RESIZE_Y_DELTA 0x0387 +#define GLUT_VIDEO_RESIZE_WIDTH_DELTA 0x0388 +#define GLUT_VIDEO_RESIZE_HEIGHT_DELTA 0x0389 +#define GLUT_VIDEO_RESIZE_X 0x038A +#define GLUT_VIDEO_RESIZE_Y 0x038B +#define GLUT_VIDEO_RESIZE_WIDTH 0x038C +#define GLUT_VIDEO_RESIZE_HEIGHT 0x038D + +/* + * GLUT API macro definitions -- the glutUseLayer parameters + */ +#define GLUT_NORMAL 0x0000 +#define GLUT_OVERLAY 0x0001 + +/* + * GLUT API macro definitions -- the glutGetModifiers parameters + */ +#define GLUT_ACTIVE_SHIFT 0x0001 +#define GLUT_ACTIVE_CTRL 0x0002 +#define GLUT_ACTIVE_ALT 0x0004 + +/* + * GLUT API macro definitions -- the glutSetCursor parameters + */ +#define GLUT_CURSOR_RIGHT_ARROW 0x0000 +#define GLUT_CURSOR_LEFT_ARROW 0x0001 +#define GLUT_CURSOR_INFO 0x0002 +#define GLUT_CURSOR_DESTROY 0x0003 +#define GLUT_CURSOR_HELP 0x0004 +#define GLUT_CURSOR_CYCLE 0x0005 +#define GLUT_CURSOR_SPRAY 0x0006 +#define GLUT_CURSOR_WAIT 0x0007 +#define GLUT_CURSOR_TEXT 0x0008 +#define GLUT_CURSOR_CROSSHAIR 0x0009 +#define GLUT_CURSOR_UP_DOWN 0x000A +#define GLUT_CURSOR_LEFT_RIGHT 0x000B +#define GLUT_CURSOR_TOP_SIDE 0x000C +#define GLUT_CURSOR_BOTTOM_SIDE 0x000D +#define GLUT_CURSOR_LEFT_SIDE 0x000E +#define GLUT_CURSOR_RIGHT_SIDE 0x000F +#define GLUT_CURSOR_TOP_LEFT_CORNER 0x0010 +#define GLUT_CURSOR_TOP_RIGHT_CORNER 0x0011 +#define GLUT_CURSOR_BOTTOM_RIGHT_CORNER 0x0012 +#define GLUT_CURSOR_BOTTOM_LEFT_CORNER 0x0013 +#define GLUT_CURSOR_INHERIT 0x0064 +#define GLUT_CURSOR_NONE 0x0065 +#define GLUT_CURSOR_FULL_CROSSHAIR 0x0066 + +/* + * GLUT API macro definitions -- RGB color component specification definitions + */ +#define GLUT_RED 0x0000 +#define GLUT_GREEN 0x0001 +#define GLUT_BLUE 0x0002 + +/* + * GLUT API macro definitions -- additional keyboard and joystick definitions + */ +#define GLUT_KEY_REPEAT_OFF 0x0000 +#define GLUT_KEY_REPEAT_ON 0x0001 +#define GLUT_KEY_REPEAT_DEFAULT 0x0002 + +#define GLUT_JOYSTICK_BUTTON_A 0x0001 +#define GLUT_JOYSTICK_BUTTON_B 0x0002 +#define GLUT_JOYSTICK_BUTTON_C 0x0004 +#define GLUT_JOYSTICK_BUTTON_D 0x0008 + +/* + * GLUT API macro definitions -- game mode definitions + */ +#define GLUT_GAME_MODE_ACTIVE 0x0000 +#define GLUT_GAME_MODE_POSSIBLE 0x0001 +#define GLUT_GAME_MODE_WIDTH 0x0002 +#define GLUT_GAME_MODE_HEIGHT 0x0003 +#define GLUT_GAME_MODE_PIXEL_DEPTH 0x0004 +#define GLUT_GAME_MODE_REFRESH_RATE 0x0005 +#define GLUT_GAME_MODE_DISPLAY_CHANGED 0x0006 + +/* + * Initialization functions, see fglut_init.c + */ +FGAPI void FGAPIENTRY glutInit( int* pargc, char** argv ); +FGAPI void FGAPIENTRY glutInitWindowPosition( int x, int y ); +FGAPI void FGAPIENTRY glutInitWindowSize( int width, int height ); +FGAPI void FGAPIENTRY glutInitDisplayMode( unsigned int displayMode ); +FGAPI void FGAPIENTRY glutInitDisplayString( const char* displayMode ); + +/* + * Process loop function, see freeglut_main.c + */ +FGAPI void FGAPIENTRY glutMainLoop( void ); + +/* + * Window management functions, see freeglut_window.c + */ +FGAPI int FGAPIENTRY glutCreateWindow( const char* title ); +FGAPI int FGAPIENTRY glutCreateSubWindow( int window, int x, int y, int width, int height ); +FGAPI void FGAPIENTRY glutDestroyWindow( int window ); +FGAPI void FGAPIENTRY glutSetWindow( int window ); +FGAPI int FGAPIENTRY glutGetWindow( void ); +FGAPI void FGAPIENTRY glutSetWindowTitle( const char* title ); +FGAPI void FGAPIENTRY glutSetIconTitle( const char* title ); +FGAPI void FGAPIENTRY glutReshapeWindow( int width, int height ); +FGAPI void FGAPIENTRY glutPositionWindow( int x, int y ); +FGAPI void FGAPIENTRY glutShowWindow( void ); +FGAPI void FGAPIENTRY glutHideWindow( void ); +FGAPI void FGAPIENTRY glutIconifyWindow( void ); +FGAPI void FGAPIENTRY glutPushWindow( void ); +FGAPI void FGAPIENTRY glutPopWindow( void ); +FGAPI void FGAPIENTRY glutFullScreen( void ); + +/* + * Display-connected functions, see freeglut_display.c + */ +FGAPI void FGAPIENTRY glutPostWindowRedisplay( int window ); +FGAPI void FGAPIENTRY glutPostRedisplay( void ); +FGAPI void FGAPIENTRY glutSwapBuffers( void ); + +/* + * Mouse cursor functions, see freeglut_cursor.c + */ +FGAPI void FGAPIENTRY glutWarpPointer( int x, int y ); +FGAPI void FGAPIENTRY glutSetCursor( int cursor ); + +/* + * Overlay stuff, see freeglut_overlay.c + */ +FGAPI void FGAPIENTRY glutEstablishOverlay( void ); +FGAPI void FGAPIENTRY glutRemoveOverlay( void ); +FGAPI void FGAPIENTRY glutUseLayer( GLenum layer ); +FGAPI void FGAPIENTRY glutPostOverlayRedisplay( void ); +FGAPI void FGAPIENTRY glutPostWindowOverlayRedisplay( int window ); +FGAPI void FGAPIENTRY glutShowOverlay( void ); +FGAPI void FGAPIENTRY glutHideOverlay( void ); + +/* + * Menu stuff, see freeglut_menu.c + */ +FGAPI int FGAPIENTRY glutCreateMenu( void (* callback)( int menu ) ); +FGAPI void FGAPIENTRY glutDestroyMenu( int menu ); +FGAPI int FGAPIENTRY glutGetMenu( void ); +FGAPI void FGAPIENTRY glutSetMenu( int menu ); +FGAPI void FGAPIENTRY glutAddMenuEntry( const char* label, int value ); +FGAPI void FGAPIENTRY glutAddSubMenu( const char* label, int subMenu ); +FGAPI void FGAPIENTRY glutChangeToMenuEntry( int item, const char* label, int value ); +FGAPI void FGAPIENTRY glutChangeToSubMenu( int item, const char* label, int value ); +FGAPI void FGAPIENTRY glutRemoveMenuItem( int item ); +FGAPI void FGAPIENTRY glutAttachMenu( int button ); +FGAPI void FGAPIENTRY glutDetachMenu( int button ); + +/* + * Global callback functions, see freeglut_callbacks.c + */ +FGAPI void FGAPIENTRY glutTimerFunc( unsigned int time, void (* callback)( int ), int value ); +FGAPI void FGAPIENTRY glutIdleFunc( void (* callback)( void ) ); + +/* + * Window-specific callback functions, see freeglut_callbacks.c + */ +FGAPI void FGAPIENTRY glutKeyboardFunc( void (* callback)( unsigned char, int, int ) ); +FGAPI void FGAPIENTRY glutSpecialFunc( void (* callback)( int, int, int ) ); +FGAPI void FGAPIENTRY glutReshapeFunc( void (* callback)( int, int ) ); +FGAPI void FGAPIENTRY glutVisibilityFunc( void (* callback)( int ) ); +FGAPI void FGAPIENTRY glutDisplayFunc( void (* callback)( void ) ); +FGAPI void FGAPIENTRY glutMouseFunc( void (* callback)( int, int, int, int ) ); +FGAPI void FGAPIENTRY glutMotionFunc( void (* callback)( int, int ) ); +FGAPI void FGAPIENTRY glutPassiveMotionFunc( void (* callback)( int, int ) ); +FGAPI void FGAPIENTRY glutEntryFunc( void (* callback)( int ) ); + +FGAPI void FGAPIENTRY glutKeyboardUpFunc( void (* callback)( unsigned char, int, int ) ); +FGAPI void FGAPIENTRY glutSpecialUpFunc( void (* callback)( int, int, int ) ); +FGAPI void FGAPIENTRY glutJoystickFunc( void (* callback)( unsigned int, int, int, int ), int pollInterval ); +FGAPI void FGAPIENTRY glutMenuStateFunc( void (* callback)( int ) ); +FGAPI void FGAPIENTRY glutMenuStatusFunc( void (* callback)( int, int, int ) ); +FGAPI void FGAPIENTRY glutOverlayDisplayFunc( void (* callback)( void ) ); +FGAPI void FGAPIENTRY glutWindowStatusFunc( void (* callback)( int ) ); + +FGAPI void FGAPIENTRY glutSpaceballMotionFunc( void (* callback)( int, int, int ) ); +FGAPI void FGAPIENTRY glutSpaceballRotateFunc( void (* callback)( int, int, int ) ); +FGAPI void FGAPIENTRY glutSpaceballButtonFunc( void (* callback)( int, int ) ); +FGAPI void FGAPIENTRY glutButtonBoxFunc( void (* callback)( int, int ) ); +FGAPI void FGAPIENTRY glutDialsFunc( void (* callback)( int, int ) ); +FGAPI void FGAPIENTRY glutTabletMotionFunc( void (* callback)( int, int ) ); +FGAPI void FGAPIENTRY glutTabletButtonFunc( void (* callback)( int, int, int, int ) ); + +/* + * State setting and retrieval functions, see freeglut_state.c + */ +FGAPI int FGAPIENTRY glutGet( GLenum query ); +FGAPI int FGAPIENTRY glutDeviceGet( GLenum query ); +FGAPI int FGAPIENTRY glutGetModifiers( void ); +FGAPI int FGAPIENTRY glutLayerGet( GLenum query ); + +/* + * Font stuff, see freeglut_font.c + */ +FGAPI void FGAPIENTRY glutBitmapCharacter( void* font, int character ); +FGAPI int FGAPIENTRY glutBitmapWidth( void* font, int character ); +FGAPI void FGAPIENTRY glutStrokeCharacter( void* font, int character ); +FGAPI int FGAPIENTRY glutStrokeWidth( void* font, int character ); +FGAPI int FGAPIENTRY glutBitmapLength( void* font, const unsigned char* string ); +FGAPI int FGAPIENTRY glutStrokeLength( void* font, const unsigned char* string ); + +/* + * Geometry functions, see freeglut_geometry.c + */ +FGAPI void FGAPIENTRY glutWireCube( GLdouble size ); +FGAPI void FGAPIENTRY glutSolidCube( GLdouble size ); +FGAPI void FGAPIENTRY glutWireSphere( GLdouble radius, GLint slices, GLint stacks ); +FGAPI void FGAPIENTRY glutSolidSphere( GLdouble radius, GLint slices, GLint stacks ); +FGAPI void FGAPIENTRY glutWireCone( GLdouble base, GLdouble height, GLint slices, GLint stacks ); +FGAPI void FGAPIENTRY glutSolidCone( GLdouble base, GLdouble height, GLint slices, GLint stacks ); + +FGAPI void FGAPIENTRY glutWireTorus( GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings ); +FGAPI void FGAPIENTRY glutSolidTorus( GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings ); +FGAPI void FGAPIENTRY glutWireDodecahedron( void ); +FGAPI void FGAPIENTRY glutSolidDodecahedron( void ); +FGAPI void FGAPIENTRY glutWireOctahedron( void ); +FGAPI void FGAPIENTRY glutSolidOctahedron( void ); +FGAPI void FGAPIENTRY glutWireTetrahedron( void ); +FGAPI void FGAPIENTRY glutSolidTetrahedron( void ); +FGAPI void FGAPIENTRY glutWireIcosahedron( void ); +FGAPI void FGAPIENTRY glutSolidIcosahedron( void ); + +/* + * Teapot rendering functions, found in freeglut_teapot.c + */ +FGAPI void FGAPIENTRY glutWireTeapot( GLdouble size ); +FGAPI void FGAPIENTRY glutSolidTeapot( GLdouble size ); + +/* + * Game mode functions, see freeglut_gamemode.c + */ +FGAPI void FGAPIENTRY glutGameModeString( const char* string ); +FGAPI int FGAPIENTRY glutEnterGameMode( void ); +FGAPI void FGAPIENTRY glutLeaveGameMode( void ); +FGAPI int FGAPIENTRY glutGameModeGet( GLenum query ); + +/* + * Video resize functions, see freeglut_videoresize.c + */ +FGAPI int FGAPIENTRY glutVideoResizeGet( GLenum query ); +FGAPI void FGAPIENTRY glutSetupVideoResizing( void ); +FGAPI void FGAPIENTRY glutStopVideoResizing( void ); +FGAPI void FGAPIENTRY glutVideoResize( int x, int y, int width, int height ); +FGAPI void FGAPIENTRY glutVideoPan( int x, int y, int width, int height ); + +/* + * Colormap functions, see freeglut_misc.c + */ +FGAPI void FGAPIENTRY glutSetColor( int color, GLfloat red, GLfloat green, GLfloat blue ); +FGAPI GLfloat FGAPIENTRY glutGetColor( int color, int component ); +FGAPI void FGAPIENTRY glutCopyColormap( int window ); + +/* + * Misc keyboard and joystick functions, see freeglut_misc.c + */ +FGAPI void FGAPIENTRY glutIgnoreKeyRepeat( int ignore ); +FGAPI void FGAPIENTRY glutSetKeyRepeat( int repeatMode ); +FGAPI void FGAPIENTRY glutForceJoystickFunc( void ); + +/* + * Misc functions, see freeglut_misc.c + */ +FGAPI int FGAPIENTRY glutExtensionSupported( const char* extension ); +FGAPI void FGAPIENTRY glutReportErrors( void ); + +/* Comment from glut.h of classic GLUT: + + Win32 has an annoying issue where there are multiple C run-time + libraries (CRTs). If the executable is linked with a different CRT + from the GLUT DLL, the GLUT DLL will not share the same CRT static + data seen by the executable. In particular, atexit callbacks registered + in the executable will not be called if GLUT calls its (different) + exit routine). GLUT is typically built with the + "/MD" option (the CRT with multithreading DLL support), but the Visual + C++ linker default is "/ML" (the single threaded CRT). + + One workaround to this issue is requiring users to always link with + the same CRT as GLUT is compiled with. That requires users supply a + non-standard option. GLUT 3.7 has its own built-in workaround where + the executable's "exit" function pointer is covertly passed to GLUT. + GLUT then calls the executable's exit function pointer to ensure that + any "atexit" calls registered by the application are called if GLUT + needs to exit. + + Note that the __glut*WithExit routines should NEVER be called directly. + To avoid the atexit workaround, #define GLUT_DISABLE_ATEXIT_HACK. */ + +/* to get the prototype for exit() */ +#include + +#if defined(_WIN32) && !defined(GLUT_DISABLE_ATEXIT_HACK) && !defined(__WATCOMC__) +FGAPI void FGAPIENTRY __glutInitWithExit(int *argcp, char **argv, void (__cdecl *exitfunc)(int)); +FGAPI int FGAPIENTRY __glutCreateWindowWithExit(const char *title, void (__cdecl *exitfunc)(int)); +FGAPI int FGAPIENTRY __glutCreateMenuWithExit(void (* func)(int), void (__cdecl *exitfunc)(int)); +#ifndef FREEGLUT_BUILDING_LIB +#if defined(__GNUC__) +#define FGUNUSED __attribute__((unused)) +#else +#define FGUNUSED +#endif +static void FGAPIENTRY FGUNUSED glutInit_ATEXIT_HACK(int *argcp, char **argv) { __glutInitWithExit(argcp, argv, exit); } +#define glutInit glutInit_ATEXIT_HACK +static int FGAPIENTRY FGUNUSED glutCreateWindow_ATEXIT_HACK(const char *title) { return __glutCreateWindowWithExit(title, exit); } +#define glutCreateWindow glutCreateWindow_ATEXIT_HACK +static int FGAPIENTRY FGUNUSED glutCreateMenu_ATEXIT_HACK(void (* func)(int)) { return __glutCreateMenuWithExit(func, exit); } +#define glutCreateMenu glutCreateMenu_ATEXIT_HACK +#endif +#endif + +#ifdef __cplusplus + } +#endif + +/*** END OF FILE ***/ + +#endif /* __FREEGLUT_STD_H__ */ + diff --git a/3rdparty/windows/GL/glut.h b/3rdparty/windows/GL/glut.h new file mode 100644 index 0000000..ce61238 --- /dev/null +++ b/3rdparty/windows/GL/glut.h @@ -0,0 +1,21 @@ +#ifndef __GLUT_H__ +#define __GLUT_H__ + +/* + * glut.h + * + * The freeglut library include file + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#include "freeglut_std.h" + +/*** END OF FILE ***/ + +#endif /* __GLUT_H__ */ diff --git a/3rdparty/windows/XGetopt.cpp b/3rdparty/windows/XGetopt.cpp new file mode 100644 index 0000000..bb714fc --- /dev/null +++ b/3rdparty/windows/XGetopt.cpp @@ -0,0 +1,525 @@ +/* + getopt.c - implementation of getopt(3) and getopt_long(3) + Copyright Keristor Systems and Chris Croughton 1997 + Internet: swdev@keristor.org + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. +*/ + +#include +#include +#include + +#define XGETOPT_NAMES +#include "XGetopt.h" + +/* + * This is the published interface for the GNU getopt module + */ + +char *optarg = NULL; +int optind = 0; +int opterr = 1; +int optopt = 0; + +int getopt(int argc, char * const argv[], const char *optstring); +int getopt_long(int argc, char * const argv[], const char *optstring, + const struct option *longopts, int *longindex); +int getopt_long_only(int argc, char * const argv[], const char *optstring, + const struct option *longopts, int *longindex); + +/************************************************************************ + * + * Everything from here down is a rewrite without looking at the GNU + * implementation; it is therefore free of GPL and LGPL contraints, see + * above for licencing information. + * + ************************************************************************/ + +#define true 1 +#define false 0 +#define bool char + +enum action +{ + E_PERMUTE, + E_POSIX, + E_INPLACE, + E_NUM_OF_ACTIONS +}; + +static bool initialised = false; +static bool endargs = false; +static char *nextchar = NULL; + +/* Note that the lookup routines use and modify the global variables - not + * nice, but better than passing everything as reference parameters. + */ + +static int +lookup_shortopt(int argc, char **argv, const char *opts) +{ + int c = *optarg++; + /* remember the Alamo - a dodgy character if ever there was one */ + nextchar = optarg; + /* look at the options - like any you see? */ + while (*opts) + { + if (c == *opts++) + { + /* OK, it's a fair (c)op, guv */ + if (*opts == ':') + { + /* we can do arguments, but there will be nothing left of this arg */ + nextchar = NULL; + if (*++opts == ':') + { + /* but it's optional, so either a 5 minute argument or nothing */ + if (!*optarg) + optarg = NULL; + return c; + } + else + { + /* this argument's not optional, you get the full half hour */ + if (*optarg) + { + /* We've got an argument on our hands! */ + return c; + } + else + { + /* try the next door down */ + if (++optind < argc) + { + /* OK, we've got it ("Oh no you haven't!") */ + optarg = argv[optind]; + return c; + } + else + { + /* Th-Th-Th-That's All, Folks! */ + optopt = c; + if (opterr) + fprintf(stderr, "required parameter for -%c missing\n", c); + /* we've got an option, but it's dud */ + return '?'; + } + } + } + } + else + { + /* no arguments please, we're British */ + nextchar = optarg; + optarg = NULL; + return c; + } + } + } + /* return to sender, address unknown */ + optopt = c; + optarg = NULL; + return -1; +} + +static int +lookup_longopt(int argc, char **argv, + const struct option *longopts, + int *longindex) +{ + char *eqp; + bool ambig = false; + int match = -1; + int exact = -1; + int min; + int len; + int i; + + /* if we have no long options, any we get are wrong */ + if (!longopts) + { + if (opterr) + fprintf(stderr, "long options not supported\n"); + return '?'; + } + /* look for equality or fraternity */ + eqp = strchr(optarg, '='); + min = (eqp ? eqp - optarg : strlen(optarg)); + for (i = 0; longopts[i].name; i++) + { + len = strlen(longopts[i].name); + /* is it exact? */ + if (len == min && strncmp(longopts[i].name, optarg, len) == 0) + { + /* an exact match - go no further, we can't get better than this */ + exact = i; + break; + } + /* a match as far as the argument goes? */ + if (strncmp(longopts[i].name, optarg, min) == 0) + { + /* if we've already found one of those, it's ambiguous */ + if (match < 0) + match = i; + else + ambig = true; + } + } + /* we've looked at everything, now what? */ + if (exact < 0) + { + /* no exact match, if it's ambiguous then fail othersise use what + * (if anything) we have */ + if (ambig) + { + if (opterr) + fprintf(stderr, "option --%s is ambiguous\n", optarg); + return '?'; + } + else + exact = match; + } + /* if we don't have anything, return -1 (/not/ fail, this could be a test */ + if (exact < 0) + return -1; + switch (longopts[exact].has_arg) + { + case no_argument: + /* we have nothing to fight about... */ + if (eqp) + { + /* ... except equality */ + if (opterr) + fprintf(stderr, "option --%s does not take an argument\n", optarg); + return '?'; + } + optarg = NULL; + break; + case required_argument: + /* you have to fight, so there! */ + if (eqp) + optarg = eqp + 1; + else if (++optind < argc) + optarg = argv[optind]; + else + { + if (opterr) + fprintf(stderr, "missing argument for option --%s\n", optarg); + return '?'; + } + break; + case optional_argument: + /* you don't have to fight if you don't want to */ + optarg = (eqp ? eqp + 1 : NULL); + break; + } + /* tell the caller what he's got */ + if (longindex) + *longindex = exact; + if (longopts[exact].flag) + { + /* set a flag rather than returning the value */ + *longopts[exact].flag = longopts[exact].val; + return 0; + } + return longopts[exact].val; +} + +/* + * Note that this internal function drops the const on the arg list. That's + * because optarg etc. are defined without const. + */ +static int +getnextopt(int argc, char **argv, const char *optstring, + const struct option *longopts, int *longindex, + bool longonly, enum action act) +{ + static int thisind = 0; + static int oldind = 0; + int c = 0; + + /* if we haven't started, make sure we're not in Denmark */ + if (!initialised) + { + initialised = true; + nextchar = NULL; + endargs = false; + thisind = 0; + oldind = 0; + optind = 0; + } + + /* check for previous sequence of short options */ + if (nextchar && *nextchar) + { + optarg = nextchar; + c = lookup_shortopt(argc, argv, optstring); + /* now shuffle the arguments if necessary */ + if (act == E_PERMUTE && oldind != thisind && (!nextchar || !*nextchar)) + { + int optlen = optind - thisind; /* the length of the option */ + int optnum = thisind - oldind; /* number of args in between */ + memmove(argv+oldind+optlen+1, argv+oldind, sizeof(*argv) * optnum); + optind = oldind + optlen; + } + return c; + } + + /* check for end of argument list */ + if (++optind >= argc || !argv[optind]) + { + optarg = NULL; + return EOF; /* no arguments left */ + } + + /* get next argument from list */ + optarg = argv[optind]; + + /* if we've had "--" then treat as normal argument */ + if (endargs) + return (act == E_INPLACE ? '\1' : EOF); + + /* if we're permuting the arguments, look for the next option */ + if (act == E_PERMUTE) + { + int i; + /* save where we are, we'll need this later */ + oldind = optind; + for (i = optind; i < argc; i++) + { + char *p = argv[i]; + /* remember that "--" ends options? Ignore anything past it... */ + if (strcmp(p, "--") == 0) + { + int optnum = i - oldind; /* number of args in between */ + if (optnum > 0) + { + /* shuffle the arguments up over it */ + memmove(argv+oldind+1, argv+oldind, sizeof(*argv) * optnum); + optind = ++oldind; + optarg = argv[optind]; + } + break; + } + if (*p == '-' && strcmp(p, "-")) + { + /* we found a honest-to-goodness option! Set up shop here... */ + optind = i; + optarg = p; + break; + } + } + } + + /* test for "--" meaning "end of options" - everything after that is an + * argument not an option */ + if (strcmp(optarg, "--") == 0) + { + endargs = true; + if (++optind < argc) + { + optarg = argv[optind]; + return (act == E_INPLACE ? '\1' : EOF); + } + else + { + optarg = NULL; + return EOF; + } + } + + /* an argument of "-" or not starting with '-'is not an option */ + if (strcmp(optarg, "-") == 0 || *optarg != '-') + { + /* if we're being POSIXLY_CORRECT (ugh!) then the first non-option ends + * the options. I don't like it but that's what the spec. says... */ + if (act == E_POSIX) + endargs = true; + return (act == E_INPLACE ? '\1' : EOF); + } + + thisind = optind; /* remember this position, lookup changes it */ + + /* OK, it's some sort of option, junk the first '-' */ + optarg++; + + /* prime for "option not found" */ + c = -1; + /* test the next character - another '-' means it's a long option */ + if (longopts && *optarg == '-') + { + /* it's a long option, skip the next '-' */ + optarg++; + c = lookup_longopt(argc, argv, longopts, longindex); + if (c < 0) + { + fprintf(stderr, "unknown option --%s\n", optarg); + c = '?'; + } + } + else if (longopts && longonly) + { + int tmperr = opterr; + opterr = 0; + /* try a long option first, if that doesn't work try a short one */ + c = lookup_longopt(argc, argv, longopts, longindex); + opterr = tmperr; + if (c < 0) + c = lookup_shortopt(argc, argv, optstring); + } + else + { + /* just try short options */ + c = lookup_shortopt(argc, argv, optstring); + } + + /* if not found give (optional) error and return '?' */ + if (c < 0) + { + if (opterr) + fprintf(stderr, "unknown option -%c\n", optopt); + optarg = 0; + c = '?'; + } + + /* now shuffle the arguments if necessary - I told you we'd need to save + * that old index! (I wonder if there's a more elegant way to do this?) */ + if (act == E_PERMUTE && oldind != thisind && (!nextchar || !*nextchar)) + { + int optlen = optind - thisind; /* the length of the option */ + int optnum = thisind - oldind; /* number of args in between */ + memmove(argv+oldind+optlen+1, argv+oldind, sizeof(*argv) * optnum); + optind = oldind + optlen; + oldind = 0; + thisind = 0; + } + return c; +} + + +/*********************************************************************** + * At last, the real routines we wanted to call! + **********************************************************************/ + +/** + * Scan the command-line parameters for options in the form \b -x. + */ +int getopt(int argc, char * const argv[], const char *optstring) +{ + return getnextopt(argc, (char**)argv, optstring, NULL, NULL, + false, E_PERMUTE); +} + +/** + * Scan the command-line parameters for options, allowing both the short + * (single character) options and long (string) options. + */ +int getopt_long(int argc, char * const argv[], const char *optstring, + const struct option *longopts, int *longindex) +{ + return getnextopt(argc, (char**)argv, optstring, longopts, longindex, + false, E_PERMUTE); +} + +/** + * Scan the command-line parameters for long options only + */ +int getopt_long_only(int argc, char * const argv[], const char *optstring, + const struct option *longopts, int *longindex) +{ + return getnextopt(argc, (char**)argv, optstring, longopts, longindex, + true, E_PERMUTE); +} + + +/*********************************************************************** + * Just in case you wanted to test this stuff (or as an example of how + * not to use and abuse it), some code to do call it with arguments... + **********************************************************************/ + +#ifdef TEST_GETOPT + +const char *shortopts = "abcr:o::"; + +char *Args[] = +{ + "arg0", + "arg1", + "-abc", + "-rargr1", + "-r", "argr2", + "-oargo", + "-o", + "arg2", + "--", + "arg3", + "-arg4", + "arg5", + NULL +}; + +int heckle = 'x'; + +struct option longopts[] = +{ + { "help", no_argument, NULL, 'h' }, + { "heckle", no_argument, &heckle, 'k' }, + { "speck", no_argument, &heckle, 's' }, + { "arg", required_argument, NULL, 'g' }, + { "opt", optional_argument, NULL, 'z' }, + { 0, 0, 0, 0 } +}; + +int +main(int argc, char **argv) +{ + int i; + int c; + if (argc <= 1) + { + argv = Args; + argc = (sizeof(Args) / sizeof(Args[0])) - 1; + } + else + shortopts="hksg:z::"; + for (i = 0; i < argc; i++) + printf("%2d <%s>\n", i, argv[i]); + while ((c = getopt_long(argc, argv, shortopts, longopts, NULL)) != EOF) + { + printf("option %d '%c' (%s)\n", optind, c, optarg); +#if DEBUG + for (i = 0; i < argc; i++) + printf("%2d <%s>\n", i, argv[i]); +#endif + } + for (i = optind; i < argc; i++) + printf("param %2d <%s>\n", i, argv[i]); + printf("flag = '%c'\n", heckle); + return 0; +} + +#endif + diff --git a/3rdparty/windows/XGetopt.h b/3rdparty/windows/XGetopt.h new file mode 100644 index 0000000..93f167d --- /dev/null +++ b/3rdparty/windows/XGetopt.h @@ -0,0 +1,130 @@ +#ifndef _XGETOPT_H +#define _XGETOPT_H + +/* + getopt.h - comand line option parsing + Copyright Keristor Systems and Chris Croughton 1997 - 2005 + Internet: swdev@keristor.org + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. +*/ + +/**@file xgetopt.h + * + * This module is designed as a "drop-in" replacement for the GNU + * \c getopt.h module, providing the \c getopt(), \c getopt_long() and + * \c getopt_long_only() functions and the \c option structure. However, + * it is a compile-time replacement not an object one, the actual + * names of the external variables and functions are hidden so that + * namespace clashes don't occur (some linkers object if they find + * the same symbol in more than one library). + * + * It was written originally because of systems which don't have the GNU + * C library installed. + * + * It also provides a few functions to help create a string of short + * (single-character) options given an array of long option structures. + * + * This is a "clean-room" implementation, no GPL or proprietary code + * was looked at when creating it. The only things used were the + * descriptions of the interfaces in the \c man pages (and the POSIX + * specification), and some "black box" testing to determine error + * conditions and messages not specified in the interface description. + */ + +#if defined(_cplusplus) || defined(__cplusplus) +extern "C" { +#endif + +/* + * This bit of faffing about is because some systems don't like the same + * functions defined in more than one library, they get confused. So what + * we do is to redefine the variables to the names in the interface but + * fool the linker. This only makes a difference if you try to debug the + * getopt code. Note that we don't have to do it with the structure name + * or enums, since it's only linkage that's affected. + */ + +#define optarg _XLIB_optarg +#define optind _XLIB_optind +#define opterr _XLIB_opterr +#define optopt _XLIB_optopt + +#define getopt _XLIB_getopt +#define getopt_long _XLIB_getopt_long +#define getopt_long_only _XLIB_getopt_long_only + +/** holds a pointer to an option argument */ +extern char *optarg; +/** index to te first non-option argument */ +extern int optind; +/** allow error messages if non-zero (default) */ +extern int opterr; +/** holds the option character in error, if any */ +extern int optopt; + +enum +{ + /** this option has no argument */ + no_argument, + /** an argument is required with this option */ + required_argument, + /** an argument to this option is optional */ + optional_argument +}; + +/** + * Structure to describe a long option. + * The last item in the array of these descriptors must have all elements + * set to zero + */ +struct option +{ + /** long option name */ + const char *name; + /** argument type, if any */ + int has_arg; + /** pointer to a flag to be set if the option is present */ + int *flag; + /** value to be returned if the option is present */ + int val; +}; + +/** Scan the command-line parameters for options in the form {\em -x}. */ +int getopt(int argc, char * const argv[], const char *optstring); +/** Scan the command-line parameters for options, allowing both the short + * (single character) options and long (string) options. + */ +int getopt_long(int argc, char * const argv[], const char *optstring, + const struct option *longopts, int *longindex); +/** Scan the command-line parameters for long options only */ +int getopt_long_only(int argc, char * const argv[], const char *optstring, + const struct option *longopts, int *longindex); + +#if defined(_cplusplus) || defined(__cplusplus) +} +#endif + +#endif diff --git a/3rdparty/windows/dirent.h b/3rdparty/windows/dirent.h new file mode 100644 index 0000000..39ff0f3 --- /dev/null +++ b/3rdparty/windows/dirent.h @@ -0,0 +1,364 @@ +/***************************************************************************** + * dirent.h - dirent API for Microsoft Visual Studio + * + * Copyright (C) 2006 Toni Ronkko + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * ``Software''), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL TONI RONKKO BE LIABLE FOR ANY CLAIM, DAMAGES OR + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Aug 11, 2010, Toni Ronkko + * Added d_type and d_namlen fields to dirent structure. The former is + * especially useful for determining whether directory entry represents a + * file or a directory. For more information, see + * http://www.delorie.com/gnu/docs/glibc/libc_270.html + * + * Aug 11, 2010, Toni Ronkko + * Improved conformance to the standards. For example, errno is now set + * properly on failure and assert() is never used. Thanks to Peter Brockam + * for suggestions. + * + * Aug 11, 2010, Toni Ronkko + * Fixed a bug in rewinddir(): when using relative directory names, change + * of working directory no longer causes rewinddir() to fail. + * + * Dec 15, 2009, John Cunningham + * Added rewinddir member function + * + * Jan 18, 2008, Toni Ronkko + * Using FindFirstFileA and WIN32_FIND_DATAA to avoid converting string + * between multi-byte and unicode representations. This makes the + * code simpler and also allows the code to be compiled under MingW. Thanks + * to Azriel Fasten for the suggestion. + * + * Mar 4, 2007, Toni Ronkko + * Bug fix: due to the strncpy_s() function this file only compiled in + * Visual Studio 2005. Using the new string functions only when the + * compiler version allows. + * + * Nov 2, 2006, Toni Ronkko + * Major update: removed support for Watcom C, MS-DOS and Turbo C to + * simplify the file, updated the code to compile cleanly on Visual + * Studio 2005 with both unicode and multi-byte character strings, + * removed rewinddir() as it had a bug. + * + * Aug 20, 2006, Toni Ronkko + * Removed all remarks about MSVC 1.0, which is antiqued now. Simplified + * comments by removing SGML tags. + * + * May 14 2002, Toni Ronkko + * Embedded the function definitions directly to the header so that no + * source modules need to be included in the Visual Studio project. Removed + * all the dependencies to other projects so that this very header can be + * used independently. + * + * May 28 1998, Toni Ronkko + * First version. + *****************************************************************************/ +#ifndef DIRENT_H +#define DIRENT_H + +#define WIN32_LEAN_AND_MEAN +#include +#include +#include +#include +#include +#include + +/* File type and permission flags for stat() */ +#if defined(_MSC_VER) && !defined(S_IREAD) +# define S_IFMT _S_IFMT /* file type mask */ +# define S_IFDIR _S_IFDIR /* directory */ +# define S_IFCHR _S_IFCHR /* character device */ +# define S_IFFIFO _S_IFFIFO /* pipe */ +# define S_IFREG _S_IFREG /* regular file */ +# define S_IREAD _S_IREAD /* read permission */ +# define S_IWRITE _S_IWRITE /* write permission */ +# define S_IEXEC _S_IEXEC /* execute permission */ +#endif +#define S_IFBLK 0 /* block device */ +#define S_IFLNK 0 /* link */ +#define S_IFSOCK 0 /* socket */ + +#if defined(_MSC_VER) +# define S_IRUSR S_IREAD /* read, user */ +# define S_IWUSR S_IWRITE /* write, user */ +# define S_IXUSR 0 /* execute, user */ +# define S_IRGRP 0 /* read, group */ +# define S_IWGRP 0 /* write, group */ +# define S_IXGRP 0 /* execute, group */ +# define S_IROTH 0 /* read, others */ +# define S_IWOTH 0 /* write, others */ +# define S_IXOTH 0 /* execute, others */ +#endif + +/* Indicates that d_type field is available in dirent structure */ +#define _DIRENT_HAVE_D_TYPE + +/* File type flags for d_type */ +#define DT_UNKNOWN 0 +#define DT_REG S_IFREG +#define DT_DIR S_IFDIR +#define DT_FIFO S_IFFIFO +#define DT_SOCK S_IFSOCK +#define DT_CHR S_IFCHR +#define DT_BLK S_IFBLK + +/* Macros for converting between st_mode and d_type */ +#define IFTODT(mode) ((mode) & S_IFMT) +#define DTTOIF(type) (type) + +/* + * File type macros. Note that block devices, sockets and links cannot be + * distinguished on Windows and the macros S_ISBLK, S_ISSOCK and S_ISLNK are + * only defined for compatibility. These macros should always return false + * on Windows. + */ +#define S_ISFIFO(mode) (((mode) & S_IFMT) == S_IFFIFO) +#define S_ISDIR(mode) (((mode) & S_IFMT) == S_IFDIR) +#define S_ISREG(mode) (((mode) & S_IFMT) == S_IFREG) +#define S_ISLNK(mode) (((mode) & S_IFMT) == S_IFLNK) +#define S_ISSOCK(mode) (((mode) & S_IFMT) == S_IFSOCK) +#define S_ISCHR(mode) (((mode) & S_IFMT) == S_IFCHR) +#define S_ISBLK(mode) (((mode) & S_IFMT) == S_IFBLK) + +#ifdef __cplusplus +extern "C" { +#endif + + +typedef struct dirent +{ + char d_name[MAX_PATH + 1]; /* File name */ + size_t d_namlen; /* Length of name without \0 */ + int d_type; /* File type */ +} dirent; + + +typedef struct DIR +{ + dirent curentry; /* Current directory entry */ + WIN32_FIND_DATAA find_data; /* Private file data */ + int cached; /* True if data is valid */ + HANDLE search_handle; /* Win32 search handle */ + char patt[MAX_PATH + 3]; /* Initial directory name */ +} DIR; + + +/* Forward declarations */ +static DIR *opendir(const char *dirname); +static struct dirent *readdir(DIR *dirp); +static int closedir(DIR *dirp); +static void rewinddir(DIR* dirp); + + +/* Use the new safe string functions introduced in Visual Studio 2005 */ +#if defined(_MSC_VER) && _MSC_VER >= 1400 +# define DIRENT_STRNCPY(dest,src,size) strncpy_s((dest),(size),(src),_TRUNCATE) +#else +# define DIRENT_STRNCPY(dest,src,size) strncpy((dest),(src),(size)) +#endif + +/* Set errno variable */ +#if defined(_MSC_VER) +#define DIRENT_SET_ERRNO(x) _set_errno (x) +#else +#define DIRENT_SET_ERRNO(x) (errno = (x)) +#endif + + +/***************************************************************************** + * Open directory stream DIRNAME for read and return a pointer to the + * internal working area that is used to retrieve individual directory + * entries. + */ +static DIR *opendir(const char *dirname) +{ + DIR *dirp; + + /* ensure that the resulting search pattern will be a valid file name */ + if (dirname == NULL) { + DIRENT_SET_ERRNO (ENOENT); + return NULL; + } + if (strlen (dirname) + 3 >= MAX_PATH) { + DIRENT_SET_ERRNO (ENAMETOOLONG); + return NULL; + } + + /* construct new DIR structure */ + dirp = (DIR*) malloc (sizeof (struct DIR)); + if (dirp != NULL) { + int error; + + /* + * Convert relative directory name to an absolute directory one. This + * allows rewinddir() to function correctly when the current working + * directory is changed between opendir() and rewinddir(). + */ + if (GetFullPathNameA (dirname, MAX_PATH, dirp->patt, NULL)) { + char *p; + + /* append the search pattern "\\*\0" to the directory name */ + p = strchr (dirp->patt, '\0'); + if (dirp->patt < p && *(p-1) != '\\' && *(p-1) != ':') { + *p++ = '\\'; + } + *p++ = '*'; + *p = '\0'; + + /* open directory stream and retrieve the first entry */ + dirp->search_handle = FindFirstFileA (dirp->patt, &dirp->find_data); + if (dirp->search_handle != INVALID_HANDLE_VALUE) { + /* a directory entry is now waiting in memory */ + dirp->cached = 1; + error = 0; + } else { + /* search pattern is not a directory name? */ + DIRENT_SET_ERRNO (ENOENT); + error = 1; + } + } else { + /* buffer too small */ + DIRENT_SET_ERRNO (ENOMEM); + error = 1; + } + + if (error) { + free (dirp); + dirp = NULL; + } + } + + return dirp; +} + + +/***************************************************************************** + * Read a directory entry, and return a pointer to a dirent structure + * containing the name of the entry in d_name field. Individual directory + * entries returned by this very function include regular files, + * sub-directories, pseudo-directories "." and "..", but also volume labels, + * hidden files and system files may be returned. + */ +static struct dirent *readdir(DIR *dirp) +{ + DWORD attr; + if (dirp == NULL) { + /* directory stream did not open */ + DIRENT_SET_ERRNO (EBADF); + return NULL; + } + + /* get next directory entry */ + if (dirp->cached != 0) { + /* a valid directory entry already in memory */ + dirp->cached = 0; + } else { + /* get the next directory entry from stream */ + if (dirp->search_handle == INVALID_HANDLE_VALUE) { + return NULL; + } + if (FindNextFileA (dirp->search_handle, &dirp->find_data) == FALSE) { + /* the very last entry has been processed or an error occured */ + FindClose (dirp->search_handle); + dirp->search_handle = INVALID_HANDLE_VALUE; + return NULL; + } + } + + /* copy as a multibyte character string */ + DIRENT_STRNCPY ( dirp->curentry.d_name, + dirp->find_data.cFileName, + sizeof(dirp->curentry.d_name) ); + dirp->curentry.d_name[MAX_PATH] = '\0'; + + /* compute the length of name */ + dirp->curentry.d_namlen = strlen (dirp->curentry.d_name); + + /* determine file type */ + attr = dirp->find_data.dwFileAttributes; + if ((attr & FILE_ATTRIBUTE_DEVICE) != 0) { + dirp->curentry.d_type = DT_CHR; + } else if ((attr & FILE_ATTRIBUTE_DIRECTORY) != 0) { + dirp->curentry.d_type = DT_DIR; + } else { + dirp->curentry.d_type = DT_REG; + } + return &dirp->curentry; +} + + +/***************************************************************************** + * Close directory stream opened by opendir() function. Close of the + * directory stream invalidates the DIR structure as well as any previously + * read directory entry. + */ +static int closedir(DIR *dirp) +{ + if (dirp == NULL) { + /* invalid directory stream */ + DIRENT_SET_ERRNO (EBADF); + return -1; + } + + /* release search handle */ + if (dirp->search_handle != INVALID_HANDLE_VALUE) { + FindClose (dirp->search_handle); + dirp->search_handle = INVALID_HANDLE_VALUE; + } + + /* release directory structure */ + free (dirp); + return 0; +} + + +/***************************************************************************** + * Resets the position of the directory stream to which dirp refers to the + * beginning of the directory. It also causes the directory stream to refer + * to the current state of the corresponding directory, as a call to opendir() + * would have done. If dirp does not refer to a directory stream, the effect + * is undefined. + */ +static void rewinddir(DIR* dirp) +{ + if (dirp != NULL) { + /* release search handle */ + if (dirp->search_handle != INVALID_HANDLE_VALUE) { + FindClose (dirp->search_handle); + } + + /* open new search handle and retrieve the first entry */ + dirp->search_handle = FindFirstFileA (dirp->patt, &dirp->find_data); + if (dirp->search_handle != INVALID_HANDLE_VALUE) { + /* a directory entry is now waiting in memory */ + dirp->cached = 1; + } else { + /* failed to re-open directory: no directory entry in memory */ + dirp->cached = 0; + } + } +} + + +#ifdef __cplusplus +} +#endif +#endif /*DIRENT_H*/ diff --git a/3rdparty/windows/freeglut.dll b/3rdparty/windows/freeglut.dll new file mode 100644 index 0000000..e70e8af Binary files /dev/null and b/3rdparty/windows/freeglut.dll differ diff --git a/3rdparty/windows/freeglut.lib b/3rdparty/windows/freeglut.lib new file mode 100644 index 0000000..b20f023 Binary files /dev/null and b/3rdparty/windows/freeglut.lib differ diff --git a/3rdparty/windows/x64/freeglut.dll b/3rdparty/windows/x64/freeglut.dll new file mode 100644 index 0000000..1ad0f7a Binary files /dev/null and b/3rdparty/windows/x64/freeglut.dll differ diff --git a/3rdparty/windows/x64/freeglut.lib b/3rdparty/windows/x64/freeglut.lib new file mode 100644 index 0000000..4fa5838 Binary files /dev/null and b/3rdparty/windows/x64/freeglut.lib differ diff --git a/3rdparty/wxthings/docs/readme.txt b/3rdparty/wxthings/docs/readme.txt new file mode 100644 index 0000000..6359988 --- /dev/null +++ b/3rdparty/wxthings/docs/readme.txt @@ -0,0 +1,79 @@ +readme.txt for wxThings + +block.h/cpp - wxBlockInt is a wxGridSelection type class based on +wxRect2DInt to store selected 2-D rectangular areas. It knows how to +combine with other blocks. wxBlockIntSelection consists of an array +of wxBlockInts. It minimizes them if possible so they never overlap +and can sort them from each corner. + +range.h/cpp - wxRangeInt min/max class for storing a 1-D range of +values and knows how to combine with other wxRangeInts. +wxRangeIntSelection contains an array of wxRangeInts and minimizes them +if possible, they never overlap, and always stay in order from low to +high. wxRangeDbl and wxRangeDblSelection is the same, but for double +valued ranges. + +filebrws.h/cpp & filebrws_icons_wdr.h - wxFileBrowser is an Explorer +type wiget with a tree view of dirs and a list/icon view of files with +optional image preview. Not fully completed, but works. You need wxWidgets +CVS HEAD, >= 2.5. + +geometry.h/cpp - wxCircleInt, wxCircleDouble, wxRay2DDouble, wxRay2DInt +wxEllipseInt, wxEllipseDouble, etc... not fully finished. + +genergdi.h/cpp - wxGenericColour, wxGenericPen. A color and pen that store +the values themselves and have identical functions as wxColour and wxPen. +They do not require a GUI and are suited to instances where you may want to +store a considerable number of different ones. + +optvalue.h/cpp - wxOptionValue class contains a string type and two +arrays of options and values. It works on the same format as the +wxFileConfig class and can load and save to a string/stream. +[opt valuetype] +option1 = value1 +option2 = value2 + +spinctld.h/cpp - wxSpinCtrlDbl is a drop in replacement for a +wxSpinCtrl that uses doubles with extra features such as, ESC sets +'default' value, SPACE sets the control to the last valid value, using +SHIFT,CTRL,ALT work as multipliers for the increment when using the +arrow keys or PgUp/PgDn. It can display in decimal or exponential +format and can 'guess' the number of appropriate digits from the +increment or you can set it yourself. + +toggle.h/cpp - wxCustomButton a toggle type button that can act like a +wxButton, wxBitmapButton, wxToggleButton (w/ image or not). It is a +drop in replacement for each of these controls. It can display the icon +along with the text (on any side) and can create a "greyed" +out image to use when the button is disabled. It can also do weird +things like act like a button on a single click and a toggle on double +click. Note: to differentiate between single and double clicks a timer +is used, if you want it to be just a regular toggle button I suggest +you remove the timer code. + +dropdown.h/cpp - DropDownBase a base class for a combobox type widget. It +manages a wxPopupTransientWindow as a child. See wxBitmapComboBox. + +bmpcombo.h/cpp - wxBitmapComboBox is a wxComboBox widget for bitmaps. You +Append some bitmaps either individually or with an array. Since bitmaps are +refed this should be a fast process and you don't have to keep them around. +It acts just like a wxComboBox otherwise, sends a EVT_COMBOBOX when selections +are made with either the mouse on the pulldown list or by pressing the up/down +arrows. There is a problem in wxGTK when this is used in a modal dialog, the +mouse events do not go to the popup transient window's child and so you cannot +select items, the keys still work though. + +menubtn.h/cpp - wxMenuButton is a button with a label and/or bitmap +and a combobox type dropbown to the right of it. You can attach a menu +to it and the dropdown button shows the menu. If you click on the label +button the next wxITEM_RADIO in the attached menu is selected in a +round robin fashion. If there are no radio items then the label button +does nothing. + +medsort.h - Various Public Domain median finding or sorting +macros, a quick select routine, wirth's kth smallest, torben median, +pixel qsort, and a pixel qsort that sorts two arrays together (only one +is used for the comparison, the other just follows). They can be +DECLARED in headers, DEFINED in you cpp files, or just used inline. +Since they're macros you can set if they're for arrays of doubles, +ints, chars... diff --git a/3rdparty/wxthings/include/wx/things/block.h b/3rdparty/wxthings/include/wx/things/block.h new file mode 100644 index 0000000..f27b372 --- /dev/null +++ b/3rdparty/wxthings/include/wx/things/block.h @@ -0,0 +1,516 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: block.h +// Purpose: Rectangular selection storage classes for ints and doubles +// Author: John Labenski +// Created: 07/01/02 +// Copyright: (c) John Labenski, 2004 +// License: wxWidgets +///////////////////////////////////////////////////////////////////////////// + +#ifndef __wxBLOCK_H__ +#define __wxBLOCK_H__ + +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) + #pragma interface "block.h" +#endif + +#include "wx/geometry.h" +#include "wx/things/thingdef.h" + +//#define USE_wxRANGE + +#ifdef USE_wxRANGE + #include "wx/things/range.h" +#endif + +// Note: Why are these not just wxRect2DXXX with m_x and m_width? +// because the double blocks need to match up at the edges and x+width +// does not always exactly equal the edge of an adjoining block + +class WXDLLIMPEXP_THINGS wxBlockInt; +class WXDLLIMPEXP_THINGS wxBlockDouble; +class WXDLLIMPEXP_THINGS wxBlockIntSelection; +class WXDLLIMPEXP_THINGS wxBlockDoubleSelection; + +#include "wx/dynarray.h" +WX_DECLARE_OBJARRAY_WITH_DECL(wxBlockInt, wxArrayBlockInt, class WXDLLIMPEXP_THINGS); +WX_DECLARE_OBJARRAY_WITH_DECL(wxBlockDouble, wxArrayBlockDouble, class WXDLLIMPEXP_THINGS); +WX_DECLARE_OBJARRAY_WITH_DECL(wxBlockIntSelection, wxArrayBlockIntSelection, class WXDLLIMPEXP_THINGS); +WX_DECLARE_OBJARRAY_WITH_DECL(wxBlockDoubleSelection, wxArrayBlockDoubleSelection, class WXDLLIMPEXP_THINGS); + +//============================================================================= +// wxBlockXXX constants +//============================================================================= + +// wxEmptyBlockXXX = (0,0,-1,-1) +WXDLLIMPEXP_DATA_THINGS(extern const wxBlockInt) wxEmptyBlockInt; +WXDLLIMPEXP_DATA_THINGS(extern const wxBlockDouble) wxEmptyBlockDouble; + +//============================================================================= +// wxBlockXXX sorting functions +//============================================================================= + +enum wxBlockSort_Type +{ + wxBLOCKSORT_TOPLEFT_BOTTOMRIGHT, + wxBLOCKSORT_TOPRIGHT_BOTTOMLEFT, + wxBLOCKSORT_BOTTOMLEFT_TOPRIGHT, + wxBLOCKSORT_BOTTOMRIGHT_TOPLEFT, + wxBLOCKSORT_SMALLEST_TO_LARGEST, + wxBLOCKSORT_LARGEST_TO_SMALLEST +}; + +// functions to sort an array of blocks from any corner +extern void wxArrayBlockIntSort(wxArrayBlockInt &blocks, + wxBlockSort_Type type = wxBLOCKSORT_TOPLEFT_BOTTOMRIGHT); + +extern void wxArrayBlockDoubleSort(wxArrayBlockDouble &blocks, + wxBlockSort_Type type = wxBLOCKSORT_TOPLEFT_BOTTOMRIGHT); + +//============================================================================= +// wxBlockInt - a rectangle bounded by the corner points that can combine with +// other wxBlockInts +//============================================================================= + +class WXDLLIMPEXP_THINGS wxBlockInt +{ +public: + inline wxBlockInt(wxInt32 x1=0, wxInt32 y1=0, wxInt32 x2=0, wxInt32 y2=0) : m_x1(x1), m_y1(y1), m_x2(x2), m_y2(y2) {} + inline wxBlockInt(const wxRect2DInt &rect) : m_x1(rect.m_x), m_y1(rect.m_y), m_x2(rect.GetRight()), m_y2(rect.GetBottom()) {} + + inline wxInt32 GetLeft() const { return m_x1; } + inline wxInt32 GetRight() const { return m_x2; } + inline wxInt32 GetTop() const { return m_y1; } + inline wxInt32 GetBottom() const { return m_y2; } + + inline wxInt32 GetWidth() const { return m_x2 - m_x1 + 1; } + inline wxInt32 GetHeight() const { return m_y2 - m_y1 + 1; } + + inline wxPoint2DInt GetLeftTop() const { return wxPoint2DInt(m_x1, m_y1); } + inline wxPoint2DInt GetLeftBottom() const { return wxPoint2DInt(m_x1, m_y2); } + inline wxPoint2DInt GetRightTop() const { return wxPoint2DInt(m_x2, m_y1); } + inline wxPoint2DInt GetRightBottom() const { return wxPoint2DInt(m_x2, m_y2); } + + inline wxRect2DInt GetRect2DInt() const { return wxRect2DInt(m_x1, m_y1, m_x2-m_x1+1, m_y2-m_y1+1); } + inline void SetRect2DInt(const wxRect2DInt &r) { m_x1=r.m_x; m_y1=r.m_y, m_x2=r.GetRight(); m_y2=r.GetBottom(); } + + inline bool Contains( wxInt32 x, wxInt32 y ) const + { return ((x >= m_x1) && (x <= m_x2) && (y >= m_y1) && (y <= m_y2)); } + inline bool Contains( const wxPoint2DInt &pt ) const { return Contains(pt.m_x, pt.m_y); } + inline bool Contains( const wxBlockInt &b ) const + { return ((m_x1 <= b.m_x1) && (b.m_x2 <= m_x2) && (m_y1 <= b.m_y1) && (b.m_y2 <= m_y2)); } + + inline bool Intersects( const wxBlockInt &b ) const + { return (wxMax(m_x1, b.m_x1)<=wxMin(m_x2, b.m_x2)) && (wxMax(m_y1, b.m_y1)<=wxMin(m_y2, b.m_y2)); } + inline void Intersect( const wxBlockInt &otherBlock ) { Intersect( *this, otherBlock, this ); } + inline void Intersect( const wxBlockInt &src1 , const wxBlockInt &src2 , wxBlockInt *dest ) const + { + dest->m_x1 = wxMax(src1.m_x1, src2.m_x1); + dest->m_x2 = wxMin(src1.m_x2, src2.m_x2); + dest->m_y1 = wxMax(src1.m_y1, src2.m_y1); + dest->m_y2 = wxMin(src1.m_y2, src2.m_y2); + } + + inline void Union( const wxBlockInt &otherBlock ) { Union(*this, otherBlock, this); } + inline void Union( const wxBlockInt &src1, const wxBlockInt &src2, wxBlockInt *dest ) const + { + dest->m_x1 = wxMin(src1.m_x1, src2.m_x1); + dest->m_x2 = wxMax(src1.m_x2, src2.m_x2); + dest->m_y1 = wxMin(src1.m_y1, src2.m_y1); + dest->m_y2 = wxMax(src1.m_y2, src2.m_y2); + } + + // is this block larger than input block, return 1 = larger, 0 = equal, -1 = smaller + int IsLarger(const wxBlockInt &b) const + { + wxInt32 width = m_x2 - m_x1 + 1, + height = m_y2 - m_y1 + 1, + b_width = b.m_x2 - b.m_x1 + 1, + b_height = b.m_y2 - b.m_y1 + 1; + + if ((width <= 0) || (height <= 0)) + return (b_width > 0) && (b_height > 0) ? -1 : 0; + if ((b_width <= 0) || (b_height <= 0)) + return (width > 0) && (height > 0) ? 1 : 0; + + wxDouble w_bw = wxDouble(width)/b_width, + bh_h = wxDouble(b_height)/height; + return (w_bw == bh_h) ? 0 : ((w_bw > bh_h) ? 1 : -1); + } + + bool IsEmpty() const { return (m_x1 > m_x2) || (m_y1 > m_y2); } + + // Unlike Intersects this also includes just touching the other block + bool Touches(const wxBlockInt &block) const; + + // Try to combine these blocks, they must touch and fit to make a single larger block + // this block is expanded if possible + bool Combine(const wxBlockInt &block); + + // test combining the input block with this one, returning the + // remainder of block in top, bottom, left, right - each may be IsEmpty() + // returns false if blocks don't touch or this block already contains block + // |---------------------------| + // | top | + // |---------------------------| + // | left |block| right | + // |---------------------------| + // | bottom | + // |---------------------------| + bool Combine( const wxBlockInt &block, + wxBlockInt &top, wxBlockInt &bottom, + wxBlockInt &left, wxBlockInt &right) const; + + // test removal of a portion or all of this contained in block returning the + // remainder in top, bottom, left, right - each may be IsEmpty() + // returns false if nothing to delete, this cell is not changed + bool Delete(const wxBlockInt &block, wxBlockInt &top, wxBlockInt &bottom, + wxBlockInt &left, wxBlockInt &right) const; + + // operators + inline bool operator == (const wxBlockInt& b) + { return (m_x1==b.m_x1) && (m_y1==b.m_y1) && (m_x2==b.m_x2) && (m_y2==b.m_y2); } + inline bool operator != (const wxBlockInt& b) + { return !(*this == b); } + + wxInt32 m_x1, m_y1, m_x2, m_y2; +}; + +//============================================================================= +// wxBlockDouble +//============================================================================= + +class WXDLLIMPEXP_THINGS wxBlockDouble +{ +public: + inline wxBlockDouble(wxDouble x1=0, wxDouble y1=0, wxDouble x2=0, wxDouble y2=0) + : m_x1(x1), m_y1(y1), m_x2(x2), m_y2(y2) {} + inline wxBlockDouble(const wxRect2DDouble &rect) + { m_x1=rect.m_x; m_y1=rect.m_y; m_x2=rect.GetRight(); m_y2=rect.GetBottom(); } + + inline wxDouble GetLeft() const { return m_x1; } + inline wxDouble GetRight() const { return m_x2; } + inline wxDouble GetTop() const { return m_y1; } + inline wxDouble GetBottom() const { return m_y2; } + + inline wxDouble GetWidth() const { return m_x2 - m_x1; } + inline wxDouble GetHeight() const { return m_y2 - m_y1; } + + inline wxPoint2DDouble GetLeftTop() const { return wxPoint2DDouble(m_x1, m_y1); } + inline wxPoint2DDouble GetLeftBottom() const { return wxPoint2DDouble(m_x1, m_y2); } + inline wxPoint2DDouble GetRightTop() const { return wxPoint2DDouble(m_x2, m_y1); } + inline wxPoint2DDouble GetRightBottom() const { return wxPoint2DDouble(m_x2, m_y2); } + + inline wxRect2DDouble GetRect2DDouble() const { return wxRect2DDouble(m_x1, m_y1, m_x2-m_x1, m_y2-m_y1); } + inline void SetRect2DDouble(const wxRect2DDouble &r) { m_x1=r.m_x; m_y1=r.m_y, m_x2=r.GetRight(); m_y2=r.GetBottom(); } + + inline bool Contains( wxDouble x, wxDouble y ) const + { return ((x >= m_x1) && (x <= m_x2) && (y >= m_y1) && (y <= m_y2)); } + inline bool Contains( const wxPoint2DDouble &pt ) const { return Contains(pt.m_x, pt.m_y); } + inline bool Contains( const wxBlockDouble &b ) const + { return ((m_x1 <= b.m_x1) && (b.m_x2 <= m_x2) && (m_y1 <= b.m_y1) && (b.m_y2 <= m_y2)); } + + inline bool Intersects( const wxBlockDouble &b ) const + { return (wxMax(m_x1, b.m_x1)m_x1 = wxMax(src1.m_x1, src2.m_x1); + dest->m_x2 = wxMin(src1.m_x2, src2.m_x2); + dest->m_y1 = wxMax(src1.m_y1, src2.m_y1); + dest->m_y2 = wxMin(src1.m_y2, src2.m_y2); + } + + inline void Union( const wxBlockDouble &otherBlock ) { Union( *this, otherBlock, this ); } + inline void Union( const wxBlockDouble &src1, const wxBlockDouble &src2, wxBlockDouble *dest ) const + { + dest->m_x1 = wxMin(src1.m_x1, src2.m_x1); + dest->m_x2 = wxMax(src1.m_x2, src2.m_x2); + dest->m_y1 = wxMin(src1.m_y1, src2.m_y1); + dest->m_y2 = wxMax(src1.m_y2, src2.m_y2); + } + + // is this block larger than input block, return 1 - larger, 0 = equal, -1 smaller + int IsLarger(const wxBlockDouble &b) const + { + wxDouble width = m_x2 - m_x1, + height = m_y2 - m_y1, + b_width = b.m_x2 - b.m_x1, + b_height = b.m_y2 - b.m_y1; + + if ((width <= 0) || (height <= 0)) + return (b_width > 0) && (b_height > 0) ? -1 : 0; + if ((b_width <= 0) || (b_height <= 0)) + return (width > 0) && (height > 0) ? 1 : 0; + + wxDouble w_bw = width/b_width, + bh_h = b_height/height; + return (w_bw == bh_h) ? 0 : ((w_bw > bh_h) ? 1 : -1); + } + inline bool IsEmpty() const { return (m_x1 > m_x2) || (m_y1 > m_y2); } + + // Unlike Intersects this also includes just touching the other block + bool Touches(const wxBlockDouble &block) const; + + // Try to combine these blocks, they must touch and fit to make a single larger block + // this block is expanded if possible + bool Combine(const wxBlockDouble &block); + + // test combining the input block with this one, returning the + // remainder of block in top, bottom, left, right - each may be IsEmpty() + // returns false if blocks don't touch or this block already contains block + // |---------------------------| + // | top | + // |---------------------------| + // | left |block| right | + // |---------------------------| + // | bottom | + // |---------------------------| + bool Combine( const wxBlockDouble &block, + wxBlockDouble &top, wxBlockDouble &bottom, + wxBlockDouble &left, wxBlockDouble &right) const; + + // test removal of a portion or all of this contained in block returning the + // remainder in top, bottom, left, right - each may be IsEmpty() + // returns false if nothing to delete, this cell is not changed + bool Delete( const wxBlockDouble &block, + wxBlockDouble &top, wxBlockDouble &bottom, + wxBlockDouble &left, wxBlockDouble &right) const; + + // operators + inline bool operator == (const wxBlockDouble& b) + { return (m_x1==b.m_x1) && (m_y1==b.m_y1) && (m_x2==b.m_x2) && (m_y2==b.m_y2); } + inline bool operator != (const wxBlockDouble& b) + { return !(*this == b); } + + wxDouble m_x1, m_y1, m_x2, m_y2; +}; + +//============================================================================= +// wxBlockIntSelection - ordered 2D array of wxBlockInts, combines to minimize size +// blocks never overlap each other +//============================================================================= + +class WXDLLIMPEXP_THINGS wxBlockIntSelection +{ +public : + wxBlockIntSelection(wxBlockSort_Type sort_type = wxBLOCKSORT_TOPLEFT_BOTTOMRIGHT) + : m_sort(sort_type) {} + wxBlockIntSelection(const wxBlockIntSelection &blocks, + wxBlockSort_Type sort_type = wxBLOCKSORT_TOPLEFT_BOTTOMRIGHT) + : m_sort(sort_type) { Copy(blocks); } + + // Make a full copy of the source + void Copy(const wxBlockIntSelection &source) + { + m_blocks.Clear(); + WX_APPEND_ARRAY(m_blocks, source.GetBlockArray()); + m_sort = source.GetSortType(); + } + + inline int GetCount() const { return m_blocks.GetCount(); } + + inline void Clear() { m_blocks.Clear(); } + + wxArrayBlockInt GetBlockArray() const { return m_blocks; } + +#ifdef USE_wxRANGE + // Get an array of ranges cutting though these blocks + wxArrayRangeInt GetBlockCol(int col) const; + wxArrayRangeInt GetBlockRow(int row) const; +#endif + + wxBlockInt GetBlock( int index ) const; + inline wxBlockInt Item( int index ) const { return GetBlock(index); } + + // Get a block that bounds the selection + wxBlockInt GetBoundingBlock() const; + + // do any of the blocks contains elements + inline bool Contains( int x, int y ) const { return Index(x,y) != wxNOT_FOUND; } + inline bool Contains( const wxPoint2DInt &pt ) const { return Index(pt) != wxNOT_FOUND; } + inline bool Contains( const wxBlockInt &b ) const { return Index(b) != wxNOT_FOUND; } + + // what is the index of a block that contains element + int Index( int x, int y ) const; + inline int Index( const wxPoint2DInt &pt ) const { return Index(pt.m_x, pt.m_y); } + int Index( const wxBlockInt &b ) const; + + // Sorts the blocks according to the wxBlockIntSort_Type + void Sort(wxBlockSort_Type type = wxBLOCKSORT_TOPRIGHT_BOTTOMLEFT); + wxBlockSort_Type GetSortType() const { return m_sort; } + + // Add the block to the selection, returns false if nothing was done + // use combineNow=false to make quick additions, when done call Minimize() + // addedBlocks (if !NULL) will be filled with the actual changed selections + // by removing the previous selections from the input block + bool SelectBlock( const wxBlockInt &block, bool combineNow=true, wxArrayBlockInt *addedBlocks=NULL); + + // Remove the block to the selection, return false if nothing was done + // use combineNow=false to make quick additions, when done call Minimize() + bool DeselectBlock( const wxBlockInt &block, bool combineNow=true); + + // Try to combine the blocks if possible, returns if anything was done + // only need to call this if you've called (De)SelectBlock(..., false) + bool Minimize(); + + // Operators + inline wxBlockInt operator[](int index) const { return GetBlock(index); } + + //wxBlockIntSelection& operator = (const wxBlockIntSelection& other) { Copy(other); return *this; } + + // generic routine using if (b1.Combine(b2)) remove b2 to cleanup array + // sort top_left_bottom_right first (internal use) + static bool DoMinimize( wxArrayBlockInt &blocks ); + // DoMinimize calls this internally + static bool DoDoMinimize( wxArrayBlockInt &blocks ); + +protected : + wxArrayBlockInt m_blocks; + wxBlockSort_Type m_sort; +}; + +//============================================================================= +// wxBlockDoubleSelection - ordered 2D array of wxBlockDoubles, combines to minimze size +// blocks never overlap each other +//============================================================================= + +class WXDLLIMPEXP_THINGS wxBlockDoubleSelection +{ +public : + wxBlockDoubleSelection(wxBlockSort_Type sort_type = wxBLOCKSORT_TOPLEFT_BOTTOMRIGHT) + : m_sort(sort_type) {} + wxBlockDoubleSelection(const wxBlockDoubleSelection &blocks, + wxBlockSort_Type sort_type = wxBLOCKSORT_TOPLEFT_BOTTOMRIGHT) + : m_sort(sort_type) { Copy(blocks); } + + // Make a full copy of the source + void Copy(const wxBlockDoubleSelection &source) + { + m_blocks.Clear(); + WX_APPEND_ARRAY(m_blocks, source.GetBlockArray()); + m_sort = source.GetSortType(); + } + + inline int GetCount() const { return m_blocks.GetCount(); } + + inline void Clear() { m_blocks.Clear(); } + + wxArrayBlockDouble GetBlockArray() const { return m_blocks; } + +#ifdef USE_wxRANGE + // Get an array of ranges cutting though these blocks + wxArrayRangeDouble GetBlockCol(wxDouble col) const; + wxArrayRangeDouble GetBlockRow(wxDouble row) const; +#endif + + wxBlockDouble GetBlock( int index ) const; + inline wxBlockDouble Item( int index ) const { return GetBlock(index); } + + // Get a block that bounds the selection + wxBlockDouble GetBoundingBlock() const; + + // do any of the blocks contains elements + inline bool Contains( wxDouble x, wxDouble y ) const { return Index(wxPoint2DDouble(x,y)) != wxNOT_FOUND; } + inline bool Contains( const wxPoint2DInt &pt ) const { return Index(pt) != wxNOT_FOUND; } + inline bool Contains( const wxBlockDouble &b ) const { return Index(b) != wxNOT_FOUND; } + + // what is the index of a block that contains element + int Index( wxDouble x, wxDouble y ) const; + inline int Index( const wxPoint2DDouble &pt ) const { return Index(pt.m_x, pt.m_y); } + int Index( const wxBlockDouble &b ) const; + + // Sorts the blocks according to the wxBlockIntSort_Type + void Sort(wxBlockSort_Type type = wxBLOCKSORT_TOPRIGHT_BOTTOMLEFT); + wxBlockSort_Type GetSortType() const { return m_sort; } + + // Add the block to the selection, returns false if nothing was done + // use combineNow=false to make quick additions, when done call Minimize() + bool SelectBlock( const wxBlockDouble &block, bool combineNow=true); + + // Remove the block to the selection, return false if nothing was done + // use combineNow=false to make quick additions, when done call Minimize() + bool DeselectBlock( const wxBlockDouble &block, bool combineNow=true); + + // Try to combine the blocks if possible, returns if anything was done + // only need to call this if you've called (De)SelectBlock(..., false) + bool Minimize(); + + // Operators + inline wxBlockDouble operator[](int index) const { return GetBlock(index); } + + //wxBlockIntSelection& operator = (const wxBlockIntSelection& other) { Copy(other); return *this; } + + // generic routine using if (b1.Combine(b2)) remove b2 to cleanup array + // sort top_left_bottom_right first (internal use) + static bool DoMinimize( wxArrayBlockDouble &blocks ); + // DoMinimize calls this internally + static bool DoDoMinimize( wxArrayBlockDouble &blocks ); + +protected : + wxArrayBlockDouble m_blocks; + wxBlockSort_Type m_sort; +}; + +//============================================================================= +// wxBlockIntSelectionIterator - iterates through a wxBlockIntSelection +//============================================================================= +enum wxBISI_Type +{ + wxBISI_POINT, // wxBlockIntSelectionIterator::SetType go point by point + wxBISI_BLOCK // go block by block +}; + +class WXDLLIMPEXP_THINGS wxBlockIntSelectionIterator +{ +public : + wxBlockIntSelectionIterator( const wxBlockIntSelection &sel, wxBISI_Type type = wxBISI_POINT ); + wxBlockIntSelectionIterator( const wxArrayBlockInt &blocks, wxBISI_Type type = wxBISI_POINT ); + + // resets the iterating to start at the beginning + void Reset(); + // Set the method to get the blocks, either point by point or each whole block + // also resets the iteration to the beginning + void SetType( wxBISI_Type type ) { m_type = type; Reset(); } + wxBISI_Type GetType() const { return m_type; } + + // Get next selection, returns false if at end (only valid for wxBISI_point) + bool GetNext(wxPoint2DInt &pt); + // Get next selection, returns false if at end (only valid for wxBISI_block) + bool GetNext(wxBlockInt &block); + + // checks if this row and col are in this selection + bool IsInSelection(const wxPoint2DInt &pt) const; + inline bool IsInSelection( int x, int y ) const { return IsInSelection(wxPoint2DInt(x,y)); } + +protected : + wxBISI_Type m_type; + int m_block_index; + wxPoint2DInt m_pt; + wxArrayBlockInt m_blocks; +}; + +//============================================================================= +// wxBlockDoubleSelectionIterator - iterates through a wxBlockDoubleSelection +//============================================================================= + +class WXDLLIMPEXP_THINGS wxBlockDoubleSelectionIterator +{ +public : + wxBlockDoubleSelectionIterator( const wxBlockDoubleSelection &sel ); + wxBlockDoubleSelectionIterator( const wxArrayBlockDouble &blocks ); + + // resets the iterating to start at the beginning + void Reset(); + // Get next selection, returns false if at the end + bool GetNext(wxBlockDouble &block); + // checks if this row and col are in this selection + bool IsInSelection(const wxPoint2DDouble &pt) const; + inline bool IsInSelection( int x, int y ) const { return IsInSelection(wxPoint2DDouble(x,y)); } + +protected : + size_t m_block_index; + wxArrayBlockDouble m_blocks; +}; + +#endif // __wxBLOCK_H__ diff --git a/3rdparty/wxthings/include/wx/things/bmpcombo.h b/3rdparty/wxthings/include/wx/things/bmpcombo.h new file mode 100644 index 0000000..8bcb9f1 --- /dev/null +++ b/3rdparty/wxthings/include/wx/things/bmpcombo.h @@ -0,0 +1,223 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: wxBitmapComboBox +// Purpose: A wxComboBox type button for bitmaps and strings +// Author: John Labenski +// Modified by: +// Created: 11/05/2002 +// Copyright: (c) John Labenski +// Licence: wxWidgets licence +///////////////////////////////////////////////////////////////////////////// + +/* + +wxBitmapComboBox is a wxComboBox widget for bitmaps + +You Append some bitmaps either individually or with an array. Since bitmaps are +refed this should be a fast process and you don't have to keep them around. +The size of the items is calculated from the max bitmap and max label so that +they will all line up nicely. + +It acts just like a wxComboBox otherwise, sends a EVT_COMBOBOX when selections +are made with either the mouse on the pulldown list or by pressing the up/down +arrows. + +*/ + +#ifndef _WX_BMPCOMBO_H_ +#define _WX_BMPCOMBO_H_ + +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) + #pragma interface "bmpcombo.h" +#endif + +#include "wx/things/thingdef.h" +#include "wx/things/dropdown.h" + +class WXDLLEXPORT wxMenu; +class WXDLLEXPORT wxBitmap; +class WXDLLEXPORT wxKeyEvent; +class WXDLLEXPORT wxPaintEvent; +class WXDLLEXPORT wxDC; +class WXDLLIMPEXP_THINGS wxCustomButton; +class WXDLLIMPEXP_THINGS wxBitmapComboPopupChild; +class WXDLLIMPEXP_THINGS wxBitmapComboLabel; + +enum wxBitmapComboBox_Style +{ + // Position of the labels relative to the bitmaps, use only one + wxBMPCOMBO_LEFT = wxCB_DROPDOWN, + wxBMPCOMBO_RIGHT = wxCB_SIMPLE +}; + +class WXDLLIMPEXP_THINGS wxBitmapComboBox : public DropDownBase +{ +public: + wxBitmapComboBox() : DropDownBase() { Init(); } + + // Compatible with a wxComboBox, uses strings only + wxBitmapComboBox(wxWindow *parent, wxWindowID id, + const wxString& value = wxEmptyString, // used only if first choice is !null + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + int n = 0, const wxString choices[] = (const wxString *) NULL, + long style = wxBMPCOMBO_RIGHT, + const wxValidator& val = wxDefaultValidator, + const wxString& name = wxT("wxBitmapComboBox")) + :DropDownBase() + { + Init(); + if ((n > 0) || (!value.IsEmpty())) + { + if ((n > 0) && choices) + { + for (int i=0; iSetChild(win) in your DoShowPopup function. +Additionally, you'll want to put a window to the left of the dropdown button. + +You need to subclass this to make a new control. + +You need to override these function in DropDownBase +DoGetBestSize() let wxWidgets know how big this control wants to be +DoGetBestDropHeight(max) - max is the # pixels to bottom of screen, you probably want + it smaller so return that height, return -1 if you don't want the popup shown. +DoShowPopup() - this is called from ShowPopup after creating the m_popupWin. + Create your child window with the popup as the parent and call + GetPopupWindow()->SetChild(win). Make sure you call + DropDownBase::DoShowPopup() to have the popup window shown. +*/ + +#ifndef _WX_DROPDOWNBASE_H_ +#define _WX_DROPDOWNBASE_H_ + +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) + #pragma interface "dropdown.h" +#endif + +#include "wx/popupwin.h" +#include "wx/things/thingdef.h" + +class WXDLLEXPORT wxTimer; +class WXDLLEXPORT wxTimerEvent; +class WXDLLEXPORT wxCustomButton; +class WXDLLIMPEXP_THINGS DropDownPopup; + +#define DROPDOWN_DROP_WIDTH 14 // these are the default sizes +#define DROPDOWN_DROP_HEIGHT 22 + +//----------------------------------------------------------------------------- +// DropDownBase generic combobox type widget that drops down a DropDownPopup +//----------------------------------------------------------------------------- + +class WXDLLIMPEXP_THINGS DropDownBase : public wxControl +{ +public: + + DropDownBase() : wxControl() { Init(); } + + DropDownBase( wxWindow *parent, wxWindowID id = wxID_ANY, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = 0, + const wxValidator& val = wxDefaultValidator, + const wxString& name = wxT("DropDownBase")) + : wxControl() + { + Init(); + Create(parent, id, pos, size, style, val, name); + } + + virtual ~DropDownBase(); + + bool Create(wxWindow* parent, + wxWindowID id = wxID_ANY, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = 0, + const wxValidator& val = wxDefaultValidator, + const wxString& name = wxT("DropDownBase")); + + virtual bool ShowPopup(); + virtual void HidePopup(); + bool IsPopupShown(); + + // implementation + void OnDropButton( wxCommandEvent &event ); + wxCustomButton* GetDropDownButton() { return m_dropdownButton; } + // Get the popup window, NULL when not shown + DropDownPopup* GetPopupWindow() { return m_popupWin; } + +protected: + virtual void DoSetSize(int x, int y, int width, int height, + int sizeFlags = wxSIZE_AUTO); + + void OnSize( wxSizeEvent& event ); + virtual wxSize DoGetBestSize() const; + + virtual bool DoShowPopup(); + + // override to set the height of the dropdown box + // input max_height is height from bottom of ctrl to bottom of screen + // return < 1 to not have the popup displayed + virtual int DoGetBestDropHeight(int max_height) { return max_height; } + + wxCustomButton *m_dropdownButton; + DropDownPopup *m_popupWin; + +private: + void Init(); + DECLARE_DYNAMIC_CLASS(DropDownBase) + DECLARE_EVENT_TABLE() +}; + +//----------------------------------------------------------------------------- +// DropDownPopup generic popup window, call SetChild +//----------------------------------------------------------------------------- + +class WXDLLIMPEXP_THINGS DropDownPopup : public wxPopupTransientWindow +{ +public: + DropDownPopup() : wxPopupTransientWindow() { Init(); } + DropDownPopup(DropDownBase *parent, int style = wxBORDER_NONE) : wxPopupTransientWindow() + { + Init(); + Create(parent, style); + } + virtual ~DropDownPopup(); + + bool Create(DropDownBase *parent, int style = wxBORDER_NONE); + + virtual void Popup(wxWindow *focus = NULL); + virtual void Dismiss(); + virtual bool ProcessLeftDown(wxMouseEvent& event); + + virtual void SetChild(wxWindow *child); + virtual wxWindow *GetChild() const { return m_childWin; } + bool m_ignore_popup; + +protected: + + // start/stop timer shat pushes and pops handler when the mouse goes over + // the scrollbars (if any) of the child window + void StartTimer(); + void StopTimer(); + void PushPopupHandler(wxWindow* child); + void PopPopupHandler(wxWindow* child); + + void OnMouse( wxMouseEvent& event ); + void OnKeyDown( wxKeyEvent &event ); + void OnTimer( wxTimerEvent& event ); + void OnIdle( wxIdleEvent& event ); + + wxPoint m_mouse; // last/current mouse position + wxWindow *m_childWin; // store our own child pointer + DropDownBase *m_owner; + wxTimer *m_timer; // timer for tracking mouse position + bool m_popped_handler; // state of the event handler + +private: + void Init(); + DECLARE_DYNAMIC_CLASS(DropDownPopup) + DECLARE_EVENT_TABLE() +}; + +#endif // _WX_DROPDOWNBASE_H_ diff --git a/3rdparty/wxthings/include/wx/things/filebrws.h b/3rdparty/wxthings/include/wx/things/filebrws.h new file mode 100644 index 0000000..babc42f --- /dev/null +++ b/3rdparty/wxthings/include/wx/things/filebrws.h @@ -0,0 +1,358 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: filebrws.h +// Purpose: A file browser widget with tree and/or list control views +// Author: John Labenski +// Created: 07/01/02 +// Copyright: John Labenski, 2002 +// License: wxWidgets +///////////////////////////////////////////////////////////////////////////// + +#ifndef __WX_FILEBROWSER_H__ +#define __WX_FILEBROWSER_H__ + +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) + #pragma interface "filebrws.h" +#endif + +#include "wx/listctrl.h" +#include "wx/dirctrl.h" +#include "wx/filedlg.h" +#include "wx/textdlg.h" +#include "wx/generic/filedlgg.h" +#include "wx/things/thingdef.h" + +class WXDLLEXPORT wxCheckBox; +class WXDLLEXPORT wxComboBox; +class WXDLLEXPORT wxTreeEvent; +class WXDLLEXPORT wxSplitterWindow; +class WXDLLEXPORT wxGenericDirCtrl; +class WXDLLEXPORT wxListCtrl; +class WXDLLEXPORT wxListEvent; +class WXDLLEXPORT wxToolBar; +class WXDLLEXPORT wxBitmapButton; +class WXDLLEXPORT wxConfigBase; +class WXDLLEXPORT wxFileCtrl; +class WXDLLEXPORT wxFileName; + +class WXDLLIMPEXP_THINGS wxFileBrowser; + +#include "wx/dynarray.h" +WX_DECLARE_OBJARRAY_WITH_DECL(wxFileData, wxArrayFileData, class WXDLLIMPEXP_THINGS); + +//---------------------------------------------------------------------------- +// MultilineTextDialog : wxTextEntryDialog for multiple lines +//---------------------------------------------------------------------------- + +class WXDLLIMPEXP_THINGS MultilineTextDialog : public wxTextEntryDialog +{ +public: + MultilineTextDialog(wxWindow *parent, + const wxString& message, + const wxString& caption = wxGetTextFromUserPromptStr, + const wxString& value = wxEmptyString, + long style = 0, + const wxPoint& pos = wxDefaultPosition); +}; + +//---------------------------------------------------------------------------- +// wxFileBrowserEvent : events for the wxFileBrowser +//---------------------------------------------------------------------------- +// wxEVT_FILEBROWSER_FILE_SELECTED - a file has been selected (single click) +// wxEVT_FILEBROWSER_FILE_ACTIVATED - a file has been double clicked or enter pressed +// wxEVT_FILEBROWSER_DIR_SELECTED - a dir has been selected (single click) +// wxEVT_FILEBROWSER_DIR_ACTIVATED - a dir has been double clicked or enter pressed + +BEGIN_DECLARE_EVENT_TYPES() + DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_THINGS, wxEVT_FILEBROWSER_FILE_SELECTED, wxEVT_USER_FIRST + 1000) + DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_THINGS, wxEVT_FILEBROWSER_FILE_ACTIVATED, wxEVT_USER_FIRST + 1001) + DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_THINGS, wxEVT_FILEBROWSER_DIR_SELECTED, wxEVT_USER_FIRST + 1002) + DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_THINGS, wxEVT_FILEBROWSER_DIR_ACTIVATED, wxEVT_USER_FIRST + 1003) +END_DECLARE_EVENT_TYPES() + +class WXDLLIMPEXP_THINGS wxFileBrowserEvent : public wxCommandEvent +{ +public: + wxFileBrowserEvent( wxEventType commandType = wxEVT_NULL, + wxFileBrowser *fileBrowser = NULL, + wxWindowID id = wxID_ANY ); + + wxFileBrowserEvent( const wxFileBrowserEvent &event ) : wxCommandEvent(event) {} + + // Get the full path + filename + wxString GetFilePath() const { return GetString(); } + void SetFilePath(const wxString &filepath) { SetString(filepath); } + + virtual wxEvent *Clone() const { return new wxFileBrowserEvent(*this); } + +private: + DECLARE_ABSTRACT_CLASS(wxFileBrowserEvent) +}; + +typedef void (wxEvtHandler::*wxFileBrowserEventFunction)(wxFileBrowserEvent&); + +#define wxFileBrowserEventHandler(func) \ + (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxFileBrowserEventFunction, &func) + +#define wx__DECLARE_FILEBROWSEREVT(evt, id, fn) wx__DECLARE_EVT1( evt, id, wxFileBrowserEventHandler(fn)) + +#define EVT_FILEBROWSER_FILE_SELECTED(id, fn) wx__DECLARE_FILEBROWSEREVT( wxEVT_FILEBROWSER_FILE_SELECTED, id, fn ) +#define EVT_FILEBROWSER_FILE_ACTIVATED(id, fn) wx__DECLARE_FILEBROWSEREVT( wxEVT_FILEBROWSER_FILE_ACTIVATED, id, fn ) +#define EVT_FILEBROWSER_DIR_SELECTED(id, fn) wx__DECLARE_FILEBROWSEREVT( wxEVT_FILEBROWSER_DIR_SELECTED, id, fn ) +#define EVT_FILEBROWSER_DIR_ACTIVATED(id, fn) wx__DECLARE_FILEBROWSEREVT( wxEVT_FILEBROWSER_DIR_ACTIVATED, id, fn ) + +//---------------------------------------------------------------------------- +// wxFileBrowser +//---------------------------------------------------------------------------- + +enum wxFileBrowserStyles_Type +{ + // note: these are wxListCtrl styles to allow normal wxWindow styles to work + + wxFILEBROWSER_TREE = wxLC_SORT_DESCENDING, // treectrl view + wxFILEBROWSER_LIST = wxLC_LIST, // listctrl view + wxFILEBROWSER_DETAILS = wxLC_REPORT, // listctrl details view + wxFILEBROWSER_SMALL_ICON = wxLC_SMALL_ICON, // listctrl icon view + wxFILEBROWSER_LARGE_ICON = wxLC_ICON, // NOT IMPL listctrl large icon + wxFILEBROWSER_PREVIEW = wxLC_SORT_ASCENDING, // NOT implemented + + wxFILEBROWSER_SPLIT_VERTICAL = wxLC_NO_HEADER, // tree and listctrl are + // split vertically else horizontal + + wxFILEBROWSER_SHOW_FOLDERS = wxLC_NO_SORT_HEADER, // when showing listview also show + // the folders in the treectrl + + wxFILEBROWSER_VIEW_MASK = wxFILEBROWSER_TREE|wxFILEBROWSER_LIST|wxFILEBROWSER_DETAILS|wxFILEBROWSER_SMALL_ICON|wxFILEBROWSER_LARGE_ICON|wxFILEBROWSER_PREVIEW, + wxFILEBROWSER_STYLE_MASK = wxFILEBROWSER_VIEW_MASK|wxFILEBROWSER_SPLIT_VERTICAL|wxFILEBROWSER_SHOW_FOLDERS +}; + +class WXDLLIMPEXP_THINGS wxFileBrowser : public wxControl +{ +public : + wxFileBrowser() : wxControl() { Init(); } + + wxFileBrowser( wxWindow* parent, const wxWindowID id, + const wxString& dir = wxDirDialogDefaultFolderStr, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxFILEBROWSER_DETAILS, + const wxString& filter = wxFileSelectorDefaultWildcardStr, + int defaultFilter = 0, + const wxString& name = wxT("wxFileBrowser")) : wxControl() + { + Init(); + Create(parent, id, dir, pos, size, style, filter, defaultFilter, name); + } + + virtual ~wxFileBrowser(); + + bool Create( wxWindow* parent, const wxWindowID id, + const wxString& dir = wxDirDialogDefaultFolderStr, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxFILEBROWSER_DETAILS, + const wxString& filter = wxFileSelectorDefaultWildcardStr, + int defaultFilter = 0, + const wxString& name = wxT("wxFileBrowser") ); + + // Get the current dir (not file), optionally add a trailing platform dependent '/' or '\' + wxString GetPath(bool add_wxFILE_SEP_PATH = false) const; + // Go to a directory, returns sucess + bool SetPath(const wxString &dirName); + + // go to a dir or send an EVT_FILEBROWSER_FILE_ACTIVATED if a filename + bool OpenFilePath(const wxString &filePath); + + // Go to a higher directory, returns sucess + bool CanGoUpDir() const; + bool GoUpDir(); + + // Go to your "Home" folder "~/" in unix, "My Documents" in MSW + bool GoToHomeDir(); + + // Go forwards and backwards through the recent dir history + bool CanGoPathHistoryForward(); + bool CanGoPathHistoryBackward(); + bool GoPathHistoryForward(); + bool GoPathHistoryBackward(); + // Add a new path to the history paths at the current index + void AddPathHistory(const wxString& path); + + // Set the file filter to one of the filter combobox items + bool SetFilter(int comboItem); + // Set all the file filters, deleting previous and select one + bool SetFilters(const wxString &filters, int select = 0); + // Add or set the file filter, "All Files (*)|*", it must have a "|" in it + bool AddFilter(const wxString &filter); + // Get the current file filter + wxString GetFilter() const { return m_filter; } + // Get the wild card used for the filter + wxString GetWild() const { return m_filter.AfterLast(wxT('|')); } + + // Set how the files are displayed - see enum wxFileBrowserStyles_Type + void SetBrowserStyle(long style); + long GetBrowserStyle() const { return m_browser_style; } + bool HasBrowserStyle(int style_mask) const { return (m_browser_style & style_mask) != 0; } + + // Show or hide hidden files + void ShowHidden(bool show_hidden); + bool GetShowHidden() const { return m_show_hidden; } + + // When showing the files in a listctrl also show the folders in the treectrl + // also don't let them unsplit it + void ShowFolders(bool show_folders); + bool GetShowFolders() const { return HasBrowserStyle(wxFILEBROWSER_SHOW_FOLDERS); } + + // When splitting, split vertically or horizontally + void SplitVertical(bool split_vertically); + bool GetSplitVertical() const { return HasBrowserStyle(wxFILEBROWSER_SPLIT_VERTICAL); } + + // ----------------------------------------------------------------------- + // implementation + + // utility function, returns the dir part of the filepath w/ trailing wxFILE_SEP_PATH + bool GetPathFromFilePath(const wxString &filepath, wxString &path) const; + + // Delete all selected items in the wxFileCtrl + bool DeleteSelectedListItems(bool ask_ok = true); + // Store a list of selected items that you'll copy/cut when you paste them + bool CopyCutSelectedListItems(bool copy_them); + // Paste the stored CopyCutSelectedListItems - based on CopyCutSelectedListItems list + bool PasteCopyCutSelectedListItems(); + + // Get a list of all the selected items in the list control + wxArrayInt GetSelectedListItems() const; + // Get the wxFileData items that are selected in the list control + wxArrayFileData GetSelectedListFileData() const; + // Get the currently focused list item or NULL if none selected + wxFileData *GetFocusedListItem() const; + + // Create a wxFileData from a wxFileName + wxFileData CreateFileData(const wxFileName& fileName) const; + + // Get the last or currently focused path + filename + wxString GetLastFocusedFilePath(); + + // Show a simple dialog that contains the properties of the file/dir + void ShowPropertiesDialog(const wxFileData &fileData) const; + + // returns a string with the name of a program to run the file + wxString GetOpenWithFileCmd(wxFileData* fd) const; + + // Get a pointer to the path history combo, can change its contents + wxComboBox *GetPathCombo() const { return m_pathCombo; } + // Get a pointer to the filter combo + // don't delete selections less than the # of filters passed in + // ie. check for items with GetClientData() !NULL + wxComboBox *GetFilterCombo() const { return m_filterCombo; } + + // Can this file be read/opened? + bool CanRead(const wxString& filePath) const; + // Can this file be written to, deleted, moved, cut... + bool CanWrite(const wxString& filePath) const; + + // Update the menu/toolbar items + void UpdateMenu(wxMenu *menu); + void UpdateToolBar(wxToolBar *toolBar); + // Update the state of the toolbar and menu items + void UpdateItems(); + +#if wxUSE_CONFIG + // Load the recent paths/filters, max = 20 + void LoadConfig(wxConfigBase& config, + bool paths=true, bool filters=true, + const wxString &configPath = wxT("/wxFileBrowser")); + // Save the recent paths, filters, if n_xxx < 0 then don't save it + void SaveConfig(wxConfigBase& config, + int n_paths=10, int n_filters=10, + const wxString &configPath = wxT("/wxFileBrowser")); +#endif // wxUSE_CONFIG + +protected : + void OnSize( wxSizeEvent& event ); + void DoSize(); + + virtual wxSize DoGetBestSize() const; + + // toolbar tools events + void OnViewButtons(wxCommandEvent &event); + void OnPathCombo(wxCommandEvent &event); + void OnPathComboEnter(wxCommandEvent &event); + void OnFilterCombo(wxCommandEvent &event); + void OnFilterComboEnter(wxCommandEvent &event); + + // wxDirCtrl events - a wxTreeCtrl + void OnTreeItemSelection(wxTreeEvent &event); + void OnTreeItemActivation(wxTreeEvent &event); + void OnTreeRightClick(wxTreeEvent& event); + + // wxFileCtrl events - a wxListCtrl + void OnListColClick(wxListEvent &event); + void OnListItemActivated(wxListEvent &event); + void OnListItemSelected(wxListEvent &event); + void OnListRightClick(wxListEvent &event); + + void OnTreeMenu(wxCommandEvent &event); + void OnListMenu(wxCommandEvent &event); + + void OnIdle( wxIdleEvent &event ); + + //for delayed set path from combo + void OnSetPath( wxCommandEvent &event ); + void OnSetFilter( wxCommandEvent &event ); + + // (re)inserts the item at pos, deleting it if it existed after pos + // keeps recent items at top + bool InsertComboItem(wxComboBox *combo, const wxString &item, int pos = 0) const; + + // Send an event, returns false if event.Veto() called + bool DoSendEvent(wxFileBrowserEvent &event) const; + + int FBStyleToLCStyle(int fb_style) const; // wxFileBrowserStyles_Type to wxLC_XXX + int FBStyleToMenuID(int fb_style) const; // wxFileBrowserStyles_Type menu id + int MenuIDToFBStyle(int menuID) const; // menu id to wxFileBrowserStyles_Type + + // Windows + wxToolBar *m_viewToolBar; + wxToolBar *m_pathToolBar; + + wxBitmapButton *m_viewButton; + wxComboBox *m_filterCombo; + + wxComboBox *m_pathCombo; + + wxSplitterWindow *m_splitterWin; + wxGenericDirCtrl *m_dirCtrl; + wxFileCtrl *m_fileCtrl; + + wxMenu *m_listMenu; // popup menu in listctrl + wxMenu *m_treeMenu; // popup menu in treectrl + wxMenu *m_viewMenu; // popup menu in for changing view + + // data + wxString m_filter; // current filter + wxString m_path; // current path + wxString m_lastFocusedFilePath; // path + filename of last focused item + + wxArrayString m_pathHistory; // recently used paths + int m_path_history_index; // current index in recently used paths + + wxArrayFileData m_copycutFiles; // list of names when copying or cutting + bool m_last_copy; // last CopyCutSelectedListItems was a copy, else cut + + int m_init_filters; // # of filters initially passed in + + bool m_ignore_tree_event; // temporarily ignore m_dirCtrl events + long m_browser_style; + + int m_filterComboSelection; // last selection of the filter/path combo + int m_pathComboSelection; + + bool m_show_hidden; // show hidden files + +private : + void Init(); + DECLARE_EVENT_TABLE() + DECLARE_DYNAMIC_CLASS(wxFileBrowser) +}; + +#endif // __WX_FILEBROWSER_H__ diff --git a/3rdparty/wxthings/include/wx/things/genergdi.h b/3rdparty/wxthings/include/wx/things/genergdi.h new file mode 100644 index 0000000..4b9f74b --- /dev/null +++ b/3rdparty/wxthings/include/wx/things/genergdi.h @@ -0,0 +1,317 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: genergdi.h +// Purpose: Generic gdi pen and colour +// Author: John Labenski +// Modified by: +// Created: 12/1/2000 +// Copyright: (c) John Labenski +// Licence: wxWidgets licence +///////////////////////////////////////////////////////////////////////////// + +#ifndef _WX_GENERGDI_H_ +#define _WX_GENERGDI_H_ + +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) + #pragma interface "genergdi.h" +#endif + +#include "wx/colour.h" +#include "wx/pen.h" +#include "wx/brush.h" +#include "wx/things/thingdef.h" + +class WXDLLIMPEXP_THINGS wxGenericColour; +class WXDLLIMPEXP_THINGS wxGenericPen; +class WXDLLIMPEXP_THINGS wxGenericBrush; + +// Uncreated and invalid versions of the generic colour, pen, and brush +WXDLLIMPEXP_DATA_THINGS(extern const wxGenericColour) wxNullGenericColour; +WXDLLIMPEXP_DATA_THINGS(extern const wxGenericPen) wxNullGenericPen; +WXDLLIMPEXP_DATA_THINGS(extern const wxGenericBrush) wxNullGenericBrush; + +// Arrays of the generic colours, pens, and brushes +WX_DECLARE_OBJARRAY_WITH_DECL(wxGenericColour, wxArrayGenericColour, class WXDLLIMPEXP_THINGS); +WX_DECLARE_OBJARRAY_WITH_DECL(wxGenericPen, wxArrayGenericPen, class WXDLLIMPEXP_THINGS); +WX_DECLARE_OBJARRAY_WITH_DECL(wxGenericBrush, wxArrayGenericBrush, class WXDLLIMPEXP_THINGS); + +//---------------------------------------------------------------------------- +// wxGenericColour - a RGBA colour that's converts from and to a wxColour. +// You can have thousands of them without using up resources. (on MSW) +//---------------------------------------------------------------------------- + +class WXDLLIMPEXP_THINGS wxGenericColour : public wxObject +{ +public: + wxGenericColour() : wxObject() {} + wxGenericColour( const wxGenericColour& c ) { Create(c); } + wxGenericColour( const wxColour& c ) { Create(c); } + wxGenericColour( unsigned char red, unsigned char green, + unsigned char blue, unsigned char alpha=255 ) + : wxObject() { Create(red, green, blue, alpha); } + wxGenericColour( unsigned long colABGR ) : wxObject() { CreateABGR(colABGR); } + + // Implicit conversion from the colour name + wxGenericColour( const wxString &colourName ) : wxObject() { Create(colourName); } + wxGenericColour( const char *colourName ) : wxObject() { Create(wxString::FromAscii(colourName)); } +#if wxUSE_UNICODE + wxGenericColour( const wxChar *colourName ) : wxObject() { Create(wxString(colourName)); } +#endif + + virtual ~wxGenericColour() {} + // Destroy the refed data + void Destroy() { UnRef(); } + // Is this colour valid, has refed data + bool Ok() const { return m_refData != NULL; } + + // ----------------------------------------------------------------------- + // (re)Create this colour, unrefing this colour first. + // Use these to detach this colour from it's refed copies. + void Create( const wxGenericColour& c ); + void Create( const wxColour& c); + void Create( unsigned char red = 0, unsigned char green = 0, + unsigned char blue = 0, unsigned char alpha=255 ); + void CreateABGR( unsigned long colABGR ); + void CreateARGB( unsigned long colARGB ); + void Create( const wxString& colourName ); + + // ----------------------------------------------------------------------- + // Set the colour values of the refed data. + // Use these to adjust the values of all the refed copies. + void Set( const wxGenericColour &c ); + void Set( const wxColour& c ); + void Set( unsigned char red, unsigned char green, + unsigned char blue, unsigned char alpha=255 ); + void SetABGR( unsigned long colABGR ); + void SetARGB( unsigned long colARGB ); + void Set( const wxString& colourName ); + + void SetRed ( unsigned char r ); + void SetGreen( unsigned char g ); + void SetBlue ( unsigned char b ); + void SetAlpha( unsigned char a ); + + // ----------------------------------------------------------------------- + // Get the colour values + inline wxColour GetColour() const { return wxColour(GetRed(), GetGreen(), GetBlue()); } + + unsigned char GetRed() const; + unsigned char GetGreen() const; + unsigned char GetBlue() const; + unsigned char GetAlpha() const; + + // wxWidgets wxColour compatibility functions + unsigned char Red() const { return GetRed(); } + unsigned char Green() const { return GetGreen(); } + unsigned char Blue() const { return GetBlue(); } + unsigned char Alpha() const { return GetAlpha(); } + + // ----------------------------------------------------------------------- + // Equivalency tests + bool IsSameAs( const wxGenericColour& c ) const; + bool IsSameAs( const wxColour& c ) const; + + // Get a "hot to cold" colour where i ranges from 0 to 255 + wxGenericColour GetHotColdColour(double i) const; + + // Read colour to and from string + //wxString WriteString(const wxString& format = wxT("%d,%d,%d,%d")) const; + //bool ReadString(const wxString& str, const wxString& format = wxT("%d,%d,%d,%d")); + + // operators + bool operator == (const wxGenericColour& c) const + { return m_refData == c.m_refData; } + bool operator != (const wxGenericColour& c) const + { return m_refData != c.m_refData; } + + wxGenericColour& operator = (const wxGenericColour& c) + { + if ( (*this) != c ) + Ref(c); + return *this; + } + wxGenericColour& operator = ( const wxColour& c ) { Create(c); return *this; } + +private: + // ref counting code + virtual wxObjectRefData *CreateRefData() const; + virtual wxObjectRefData *CloneRefData(const wxObjectRefData *data) const; + + DECLARE_DYNAMIC_CLASS(wxGenericColour) +}; + +//---------------------------------------------------------------------------- +// wxGenericPen - a pen structure that converts to and from wxPen +// You can have thousands of them without using up resources. (on MSW) +//---------------------------------------------------------------------------- + +class WXDLLIMPEXP_THINGS wxGenericPen : public wxObject +{ +public: + wxGenericPen() : wxObject() {} + wxGenericPen( const wxGenericPen &pen ) : wxObject() { Create(pen); } + wxGenericPen( const wxPen &pen ) : wxObject() { Create(pen); } + wxGenericPen( const wxGenericColour &colour, int width = 1, int style = wxSOLID, + int cap = wxCAP_ROUND, int join = wxJOIN_ROUND ) : wxObject() + { Create(colour, width, style, cap, join); } + wxGenericPen( const wxColour &colour, int width = 1, int style = wxSOLID, + int cap = wxCAP_ROUND, int join = wxJOIN_ROUND ) : wxObject() + { Create(colour, width, style, cap, join); } + + virtual ~wxGenericPen() {} + // Destroy the refed data + void Destroy() { UnRef(); } + // Is this colour valid, has refed data + bool Ok() const { return m_refData != NULL; } + + // ----------------------------------------------------------------------- + // (re)Create this pen, unrefing this pen first. + // Use these to detach this pen from it's refed copies. + void Create( const wxGenericPen &pen ); + void Create( const wxPen &pen ); + void Create( const wxGenericColour &colour, int width = 1, int style = wxSOLID, + int cap = wxCAP_ROUND, int join = wxJOIN_ROUND ); + void Create( const wxColour &colour, int width = 1, int style = wxSOLID, + int cap = wxCAP_ROUND, int join = wxJOIN_ROUND ); + + // ----------------------------------------------------------------------- + // Set the values of the refed data. + // Use these to adjust the values of all the refed copies. + void Set( const wxGenericPen& pen ); + void Set( const wxPen& pen ); + void SetColour( const wxGenericColour &colour ); + void SetColour( const wxColour &colour ); + void SetColour( int red, int green, int blue, int alpha=255 ); + void SetCap( int capStyle ); + void SetJoin( int joinStyle ); + void SetStyle( int style ); + void SetWidth( int width ); + void SetDashes( int number_of_dashes, const wxDash *dash ); + + // ----------------------------------------------------------------------- + // Get the pen values + wxPen GetPen() const; + + wxGenericColour GetGenericColour() const; + wxColour GetColour() const; + int GetWidth() const; + int GetStyle() const; + int GetCap() const; + int GetJoin() const; + int GetDashes(wxDash **ptr) const; + int GetDashCount() const; + wxDash* GetDash() const; + + // ----------------------------------------------------------------------- + // Equivalency tests + bool IsSameAs(const wxGenericPen& pen) const; + bool IsSameAs(const wxPen& pen) const; + + // Read pen to and from string + //wxString WriteString() const; + //bool ReadString(const wxString& str); + + // operators + bool operator == (const wxGenericPen& pen) const + { return m_refData == pen.m_refData; } + bool operator != (const wxGenericPen& pen) const + { return m_refData != pen.m_refData; } + + wxGenericPen& operator = (const wxGenericPen& pen) + { + if ( (*this) != pen ) + Ref(pen); + return *this; + } + wxGenericPen& operator = ( const wxPen& pen ) { Create(pen); return *this; } + +private: + // ref counting code + virtual wxObjectRefData *CreateRefData() const; + virtual wxObjectRefData *CloneRefData(const wxObjectRefData *data) const; + + DECLARE_DYNAMIC_CLASS(wxGenericPen) +}; + +//---------------------------------------------------------------------------- +// wxGenericBrush - a brush structure that converts to and from wxBrush +// You can have thousands of them without using up resources. (on MSW) +//---------------------------------------------------------------------------- + +class WXDLLIMPEXP_THINGS wxGenericBrush : public wxObject +{ +public: + wxGenericBrush() : wxObject() {} + wxGenericBrush( const wxGenericBrush &brush ) : wxObject() { Create(brush); } + wxGenericBrush( const wxBrush &brush ) : wxObject() { Create(brush); } + wxGenericBrush( const wxGenericColour &colour, int style = wxSOLID) + : wxObject() { Create(colour, style); } + wxGenericBrush( const wxColour &colour, int style = wxSOLID) + : wxObject() { Create(colour, style); } + wxGenericBrush( const wxBitmap& stipple ) : wxObject() { Create(stipple); } + + virtual ~wxGenericBrush() {} + // Destroy the refed data + void Destroy() { UnRef(); } + // Is this colour valid, has refed data + bool Ok() const { return m_refData != NULL; } + + // ----------------------------------------------------------------------- + // (re)Create this brush, unrefing this pen first. + // Use these to detach this pen from it's refed copies. + void Create( const wxGenericBrush &brush ); + void Create( const wxBrush &brush ); + void Create( const wxGenericColour &colour, int style = wxSOLID ); + void Create( const wxColour &colour, int style = wxSOLID ); + void Create( const wxBitmap &stipple ); + + // ----------------------------------------------------------------------- + // Set the values of the refed data. + // Use these to adjust the values of all the refed copies. + void Set( const wxGenericBrush& brush ); + void Set( const wxBrush& brush ); + void SetColour( const wxGenericColour &colour ); + void SetColour( const wxColour &colour ); + void SetColour( int red, int green, int blue, int alpha=255 ); + void SetStyle( int style ); + void SetStipple( const wxBitmap& stipple ); + + // ----------------------------------------------------------------------- + // Get the brush values + wxBrush GetBrush() const; + + wxGenericColour GetGenericColour() const; + wxColour GetColour() const; + int GetStyle() const; + wxBitmap* GetStipple() const; + + bool IsHatch() const + { return (GetStyle()>=wxFIRST_HATCH) && (GetStyle()<=wxLAST_HATCH); } + + // ----------------------------------------------------------------------- + // Equivalency tests + bool IsSameAs(const wxGenericBrush& brush) const; + bool IsSameAs(const wxBrush& brush) const; + + // operators + bool operator == (const wxGenericBrush& brush) const + { return m_refData == brush.m_refData; } + bool operator != (const wxGenericBrush& brush) const + { return m_refData != brush.m_refData; } + + wxGenericBrush& operator = (const wxGenericBrush& brush) + { + if ( (*this) != brush ) + Ref(brush); + return *this; + } + wxGenericBrush& operator = ( const wxBrush& brush ) { Create(brush); return *this; } + +private: + // ref counting code + virtual wxObjectRefData *CreateRefData() const; + virtual wxObjectRefData *CloneRefData(const wxObjectRefData *data) const; + + DECLARE_DYNAMIC_CLASS(wxGenericBrush) +}; + +#endif // _WX_GENERGDI_H_ diff --git a/3rdparty/wxthings/include/wx/things/geometry.h b/3rdparty/wxthings/include/wx/things/geometry.h new file mode 100644 index 0000000..351fd10 --- /dev/null +++ b/3rdparty/wxthings/include/wx/things/geometry.h @@ -0,0 +1,463 @@ +/////////////////////////////////////////////////////////////////////////////// +// Name: geometry.h +// Purpose: Additional geometry functions for wxWidgets (see wx/geometry.h) +// Author: John Labenski +// Created: 07/01/02 +// Copyright: John Labenski, 2002 +// License: wxWidgets v2 +/////////////////////////////////////////////////////////////////////////////// + +#ifndef __WXIMAGER_GEOMETRY_H__ +#define __WXIMAGER_GEOMETRY_H__ + +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) + #pragma interface "geometry.h" +#endif + +#include "wx/geometry.h" +#include "wx/things/thingdef.h" + +#define wxGEOMETRY_INF 1E100 + +//----------------------------------------------------------------------------- +// wxRay2DDouble uses point slope line format +// +// y = mx+b, m=(x-x0)/(y-y0) +//----------------------------------------------------------------------------- + +class WXDLLIMPEXP_THINGS wxRay2DDouble : public wxPoint2DDouble +{ +public : + + inline wxRay2DDouble(wxDouble x=0, wxDouble y=0, wxDouble slope=0) + { m_x = x; m_y = y; m_slope = slope; } + inline wxRay2DDouble(const wxPoint2DDouble &pt, wxDouble slope) + { m_x = pt.m_x; m_y = pt.m_y; m_slope = slope; } + inline wxRay2DDouble(wxDouble x1, wxDouble y1, wxDouble x2, wxDouble y2) + { m_x = x1; m_y = y1; m_slope = GetSlope(x1, y1, x2, y2); } + inline wxRay2DDouble(const wxPoint2DDouble &pt1, const wxPoint2DDouble &pt2) + { m_x = pt1.m_x; m_y = pt1.m_y; m_slope = GetSlope(pt1, pt2); } + inline wxRay2DDouble(const wxRay2DDouble &line) + { m_x = line.m_x; m_y = line.m_y; m_slope = line.m_slope; } + + inline wxDouble GetX() const { return m_x; } + inline wxDouble GetY() const { return m_y; } + inline wxPoint2DDouble GetPoint() const { return (wxPoint2DDouble)(*this); } + inline wxDouble GetSlope() const { return m_slope; } + + inline void SetX(wxDouble x) { m_x = x; } + inline void SetY(wxDouble y) { m_y = y; } + inline void SetPoint(const wxPoint2DDouble &pt ) { m_x = pt.m_x; m_y = pt.m_y; } + inline void SetSlope(wxDouble slope) { m_slope = slope; } + + inline wxDouble GetYFromX(wxDouble x) const {return m_slope*(x-m_x) + m_y;} + inline wxDouble GetXFromY(wxDouble y) const {return (y-m_y)/m_slope + m_x;} + + // Get a point along the line at pos x or y + inline wxPoint2DDouble GetPointOnRayFromX(wxDouble x) const { return wxPoint2DDouble(x, GetYFromX(x)); } + inline wxPoint2DDouble GetPointOnRayFromY(wxDouble y) const + { if (m_slope == 0) return (*this); + return wxPoint2DDouble(GetXFromY(y), y); } + + // Translate the point m_pt along the line to pos x or y + inline void TranslatePointByX(wxDouble x) { m_y = GetYFromX(x); m_x = x; } + inline void TranslatePointByY(wxDouble y) { m_x = GetXFromY(y); m_y = y; } + inline wxRay2DDouble GetTranslatedLineByX(wxDouble x) const { return wxRay2DDouble(x, GetYFromX(x), m_slope); } + inline wxRay2DDouble GetTranslatedLineByY(wxDouble y) const { return wxRay2DDouble(GetXFromY(y), y, m_slope); } + + inline wxDouble GetDistanceToPoint(const wxPoint2DDouble &pt, wxPoint2DDouble *closestPt=NULL) const + { + wxPoint2DDouble l1(m_x, m_y); + wxPoint2DDouble l2(GetPointOnRayFromX(m_x+pt.m_x)); + wxPoint2DDouble v = l2 - l1; + wxPoint2DDouble w = pt - l1; + wxDouble c1 = w.GetDotProduct(v); + wxDouble c2 = v.GetDotProduct(v); + wxDouble b = c1 / c2; + wxPoint2DDouble pb = l1 + b*v; + if (closestPt) *closestPt = pb; + return pb.GetDistance( pt ); + +/* + wxPoint2DDouble ll2 = l2; + double l = ll2.GetDistanceSquare(l1); + double u = ((p.m_x-l1.m_x)*(l2.m_x-l1.m_x)+(p.m_y-l1.m_y)*(l2.m_y-l1.m_y))/l; + wxPoint2DDouble i = l1 + u*(l2-l1); + + //printf("distance %.9lf %.9lf %d\n\n", i.GetDistance(p), pb.GetDistance(p), int(pb==i)); +*/ + + // this x for y on this line + // y(on this line) = m_slope*(x-m_pt.m_x) + m_pt.m_y + // = (-1/m_slope)(x-pt.m_x) + pt.m_y + // so + // x(on this line) = (y-m_pt.m_y)/m_slope + m_pt.m_x + // = (y-pt.m_y)/(-1/m_slope) + m_pt.m_x + + //(y-m_pt.m_y)/m_slope + m_pt.m_x = (y-pt.m_y)(-1/m_slope) + m_pt.m_x + //(y-m_pt.m_y)/m_slope - m_slope*(y-pt.m_y) = + m_pt.m_x - m_pt.m_x + //y*(1/m_slope - m_slope) = + m_pt.m_x - m_pt.m_x +m_slope*pt.m_y + m_slope*m_pt.m_y + //y = (m_pt.m_x - m_pt.m_x +m_slope*pt.m_y + m_slope*m_pt.m_y)/(1/m_slope - m_slope) +/* + wxDouble x = (m_x + m_slope*m_slope*m_x - m_slope*(m_y - m_y))/(m_slope*m_slope+1.0); + wxPoint2DDouble pl(x, m_slope*(x-m_x) + m_y); + if (closestPt) *closestPt = pl; + return pl.GetDistance(pt); +*/ + } + + inline wxDouble GetDistanceToRay( const wxRay2DDouble &ray ) const + { + // FIXME - unchecked, just quickly translated from some other code + if (m_slope != ray.m_slope) return 0; + if (m_slope == 0) return fabs(m_y - ray.m_y); + wxPoint2DDouble p1 = GetPointOnRayFromX(0); + wxPoint2DDouble p2 = ray.GetPointOnRayFromX(0); + // y = (-1/s1)*x+p1.m_y = s2*x + p2.m_y + wxDouble dx = (p1.m_y - p2.m_y)/(m_slope + (1.0/m_slope)); + wxDouble dy = (m_slope*dx+p2.m_y) - p1.m_y; + return sqrt(dx*dx + dy*dy); + } + + inline static wxDouble GetSlope(wxDouble x1, wxDouble y1, wxDouble x2, wxDouble y2) + { return (y2 - y1)/(x2 - x1); } + inline static wxDouble GetSlope(const wxPoint2DDouble &pt1, const wxPoint2DDouble &pt2) + { return (pt2.m_y-pt1.m_y)/(pt2.m_x-pt1.m_x); } + + // find the point where the two rays meet, return false if parallel + bool Intersect(const wxRay2DDouble& other, wxPoint2DDouble& pt) const + { + // (y1-y0)/(x1-x0)=m for both lines, equate y1's first + if (m_slope == other.m_slope) return false; + pt.m_x = (m_slope*m_x - other.m_slope*other.m_x + other.m_y - m_y)/(m_slope - other.m_slope); + pt.m_y = GetYFromX(pt.m_x); + return true; + } + + // Operators + + inline wxRay2DDouble operator=(const wxRay2DDouble& r) { m_x = r.m_x; m_y = r.m_y; m_slope = r.m_slope; return *this; } + inline bool operator==(const wxRay2DDouble& r) const { return (m_x == r.m_x)&&(m_y == r.m_y)&&(m_slope == r.m_slope); } + inline bool operator!=(const wxRay2DDouble& r) const { return !(*this == r); } + + inline wxRay2DDouble operator+(const wxPoint2DDouble& rel_pos) const { return wxRay2DDouble(m_x+rel_pos.m_x, m_y+rel_pos.m_y, m_slope); } + inline wxRay2DDouble operator-(const wxPoint2DDouble& rel_pos) const { return wxRay2DDouble(m_x-rel_pos.m_x, m_y-rel_pos.m_y, m_slope); } + inline wxRay2DDouble operator*(const wxPoint2DDouble& rel_pos) const { return wxRay2DDouble(m_x*rel_pos.m_x, m_y*rel_pos.m_y, m_slope); } + inline wxRay2DDouble operator/(const wxPoint2DDouble& rel_pos) const { return wxRay2DDouble(m_x/rel_pos.m_x, m_y/rel_pos.m_y, m_slope); } + + inline wxRay2DDouble& operator+=(const wxPoint2DDouble& rel_pos) { m_x += rel_pos.m_x; m_y += rel_pos.m_y; return *this; } + inline wxRay2DDouble& operator-=(const wxPoint2DDouble& rel_pos) { m_x -= rel_pos.m_x; m_y -= rel_pos.m_y; return *this; } + inline wxRay2DDouble& operator*=(const wxPoint2DDouble& rel_pos) { m_x *= rel_pos.m_x; m_y *= rel_pos.m_y; return *this; } + inline wxRay2DDouble& operator/=(const wxPoint2DDouble& rel_pos) { m_x /= rel_pos.m_x; m_y /= rel_pos.m_y; return *this; } + + inline wxRay2DDouble operator+(const wxDouble& rel_slope) const { return wxRay2DDouble(m_x, m_y, m_slope+rel_slope); } + inline wxRay2DDouble operator-(const wxDouble& rel_slope) const { return wxRay2DDouble(m_x, m_y, m_slope-rel_slope); } + inline wxRay2DDouble operator*(const wxDouble& rel_slope) const { return wxRay2DDouble(m_x, m_y, m_slope*rel_slope); } + inline wxRay2DDouble operator/(const wxDouble& rel_slope) const { return wxRay2DDouble(m_x, m_y, m_slope/rel_slope); } + + inline wxRay2DDouble& operator+=(const wxDouble& rel_slope) { m_slope += rel_slope; return *this; } + inline wxRay2DDouble& operator-=(const wxDouble& rel_slope) { m_slope -= rel_slope; return *this; } + inline wxRay2DDouble& operator*=(const wxDouble& rel_slope) { m_slope *= rel_slope; return *this; } + inline wxRay2DDouble& operator/=(const wxDouble& rel_slope) { m_slope /= rel_slope; return *this; } + + wxDouble m_slope; +}; + +//----------------------------------------------------------------------------- +// wxLine2DInt uses point slope line format +// +// y = mx+b, m=(x-x0)/(y-y0) +//----------------------------------------------------------------------------- +/* +class WXDLLIMPEXP_THINGS wxLine2DInt : wxRect2DInt +{ +public : + + inline wxLine2DInt(wxInt32 x1=0, wxInt32 y1=0, wxInt32 x2=0, wxInt32 y2=0) + { m_x = x1; m_y = y1; m_width = x2 - x1; m_height = y2 - y1; } + inline wxLine2DInt(const wxPoint2DInt &pt1, const wxPoint2DInt &pt2) + { m_x = pt1.m_x; m_y = pt1.m_y; m_width = pt2.m_x - pt1.m_x; m_height = pt2.m_y - pt1.m_y; } + inline wxLine2DInt(const wxLine2DInt &line) + { m_x = line.m_x; m_y = line.m_y; m_width = line.m_width; m_height = line.m_height; } + + inline wxInt32 GetX1() const { return m_x; } + inline wxInt32 GetY1() const { return m_y; } + inline wxInt32 GetX2() const { return m_x + m_width; } + inline wxInt32 GetY2() const { return m_y + m_height; } + inline wxPoint2DInt Get1Point() const { return GetTopLeft(); } + inline wxPoint2DInt Get2Point() const { return GetBottomRight(); } + inline wxDouble GetSlope() const { return wxDouble(m_height)/wxDouble(m_width); } + + inline void SetX1(wxInt32 x) { m_x = x; } + inline void SetY1(wxInt32 y) { m_y = y; } + inline void SetX2(wxInt32 x) { m_width = m_x - x; } + inline void SetY2(wxInt32 y) { m_height = m_y - y; } + inline void SetPoint1(const wxPoint2DInt &pt ) { SetTopLeft(pt); } + inline void SetPoint2(const wxPoint2DInt &pt ) { SetBottomRight(pt); } + + inline wxDouble GetYFromX(wxDouble x) const {return (wxDouble(m_height)/m_width)*(x-m_x) + m_y;} + inline wxDouble GetXFromY(wxDouble y) const {return (y-m_y)*(wxDouble(m_height)/m_width) + m_x;} + + // Get a point along the line at pos x or y + inline wxPoint2DInt GetPointOnLineFromX(wxInt32 x) const + { return wxPoint2DInt(x, GetYFromX(x)); } + inline wxPoint2DInt GetPointOnLineFromY(wxInt32 y) const + { return wxPoint2DInt(GetXFromY(y), y); } + + // Translate the point m_pt along the line to pos x or y + inline void TranslatePointByX(wxDouble x) + { m_pt.m_y = GetYFromX(x); m_pt.m_x = x; } + inline void TranslatePointByY(wxDouble y) + { m_pt.m_x = GetXFromY(y); m_pt.m_y = y; } + inline wxLine2DInt GetTranslatedLineByX(wxDouble x) + { return wxLine2DInt(x, GetYFromX(x), m_slope); } + inline wxLine2DInt GetTranslatedLineByY(wxDouble y) + { return wxLine2DInt(GetXFromY(y), y, m_slope); } + + inline wxDouble GetDistanceToPoint(const wxPoint2DDouble &pt, wxPoint2DDouble *closestPt=NULL) const + { + wxPoint2DDouble l1(m_pt); + wxPoint2DDouble l2(GetPointOnLineFromX(m_pt.m_x+pt.m_x)); + wxPoint2DDouble v = l2 - l1; + wxPoint2DDouble w = pt - l1; + double c1 = w.GetDotProduct(v); + double c2 = v.GetDotProduct(v); + double b = c1 / c2; + wxPoint2DDouble pb = l1 + b*v; + if (closestPt) *closestPt = pb; + return pb.GetDistance( pt ); + + } + + + inline static wxDouble GetSlope(wxDouble x1, wxDouble y1, wxDouble x2, wxDouble y2) + { return (y2 - y1)/(x2 - x1); } + inline static wxDouble GetSlope(const wxPoint2DDouble &pt1, const wxPoint2DDouble &pt2) + { return (pt2.m_y-pt1.m_y)/(pt2.m_x-pt1.m_x); } + + + // Default copy operator is ok + + wxPoint2DDouble m_pt; + wxDouble m_slope; +}; +*/ + +//----------------------------------------------------------------------------- +// wxCircleDouble m_r*m_r = (x-m_origin.m_x)^2 + (y-m_origin.m_y)^2 +//----------------------------------------------------------------------------- + +class WXDLLIMPEXP_THINGS wxCircleDouble : public wxPoint2DDouble +{ +public : + + inline wxCircleDouble(const wxCircleDouble &circle) + { m_x = circle.m_x; m_y = circle.m_y; m_r = circle.m_r; } + + inline wxCircleDouble(wxDouble x=0, wxDouble y=0, wxDouble r=0) + { m_x = x; m_y = y; m_r = r; } + + inline wxCircleDouble(const wxPoint2DDouble &origin, wxDouble r) + { m_x = origin.m_x; m_y = origin.m_y; m_r = r; } + + inline wxCircleDouble(const wxPoint2DDouble &p1, + const wxPoint2DDouble &p2, + const wxPoint2DDouble &p3); + + inline bool IsEmpty() const { return m_r <= 0; } + + inline wxDouble GetX() const { return m_x; } + inline wxDouble GetY() const { return m_y; } + inline wxPoint2DDouble GetOrigin() const { return wxPoint2DDouble(m_x, m_y); } + inline wxDouble GetRadius() const { return m_r; } + + // Get a bounding rect + inline wxRect2DDouble GetRect() const + { return wxRect2DDouble(m_x-m_r, m_y-m_r, 2.0*m_r, 2.0*m_r); } + + inline void SetX(wxDouble x) { m_x = x; } + inline void SetY(wxDouble y) { m_y = y; } + inline void SetOrigin(const wxPoint2DDouble &origin) { m_x = origin.m_x; m_y = origin.m_y; } + inline void SetRadius(wxDouble r) { m_r = r; } + + inline bool GetPointInCircle(wxDouble x, wxDouble y) const + { if (IsEmpty()) return false; + return ((x-m_x)*(x-m_x) + (y-m_y)*(y-m_y) <= m_r*m_r); } + + inline bool GetPointInCircle(const wxPoint2DDouble &pt) const + { return GetPointInCircle(pt.m_x, pt.m_y); } + + inline bool Intersects(const wxCircleDouble &circle) const + { return GetDistance(circle) <= m_r + circle.m_r; } + + int IntersectLine( const wxRay2DDouble &line, + wxPoint2DDouble *pt1=NULL, + wxPoint2DDouble *pt2=NULL ) const; + + // Operators + + inline wxCircleDouble operator=(const wxCircleDouble& c) { m_x = c.m_x; m_y = c.m_y; m_r = c.m_r; return *this; } + inline bool operator==(const wxCircleDouble& c) const { return (m_x == c.m_x)&&(m_y == c.m_y)&&(m_r == c.m_r); } + inline bool operator!=(const wxCircleDouble& c) const { return !(*this == c); } + + inline wxCircleDouble operator+(const wxPoint2DDouble& rel_origin) const { return wxCircleDouble(m_x+rel_origin.m_x, m_y+rel_origin.m_y, m_r); } + inline wxCircleDouble operator-(const wxPoint2DDouble& rel_origin) const { return wxCircleDouble(m_x-rel_origin.m_x, m_y-rel_origin.m_y, m_r); } + inline wxCircleDouble operator*(const wxPoint2DDouble& rel_origin) const { return wxCircleDouble(m_x*rel_origin.m_x, m_y*rel_origin.m_y, m_r); } + inline wxCircleDouble operator/(const wxPoint2DDouble& rel_origin) const { return wxCircleDouble(m_x/rel_origin.m_x, m_y/rel_origin.m_y, m_r); } + + inline wxCircleDouble& operator+=(const wxPoint2DDouble& rel_origin) { m_x += rel_origin.m_x; m_y += rel_origin.m_y; return *this; } + inline wxCircleDouble& operator-=(const wxPoint2DDouble& rel_origin) { m_x -= rel_origin.m_x; m_y -= rel_origin.m_y; return *this; } + inline wxCircleDouble& operator*=(const wxPoint2DDouble& rel_origin) { m_x *= rel_origin.m_x; m_y *= rel_origin.m_y; return *this; } + inline wxCircleDouble& operator/=(const wxPoint2DDouble& rel_origin) { m_x /= rel_origin.m_x; m_y /= rel_origin.m_y; return *this; } + + inline wxCircleDouble operator+(const wxDouble& rel_radius) const { return wxCircleDouble(m_x, m_y, m_r+rel_radius); } + inline wxCircleDouble operator-(const wxDouble& rel_radius) const { return wxCircleDouble(m_x, m_y, m_r-rel_radius); } + inline wxCircleDouble operator*(const wxDouble& rel_radius) const { return wxCircleDouble(m_x, m_y, m_r*rel_radius); } + inline wxCircleDouble operator/(const wxDouble& rel_radius) const { return wxCircleDouble(m_x, m_y, m_r/rel_radius); } + + inline wxCircleDouble& operator+=(const wxDouble& rel_radius) { m_r += rel_radius; return *this; } + inline wxCircleDouble& operator-=(const wxDouble& rel_radius) { m_r -= rel_radius; return *this; } + inline wxCircleDouble& operator*=(const wxDouble& rel_radius) { m_r *= rel_radius; return *this; } + inline wxCircleDouble& operator/=(const wxDouble& rel_radius) { m_r /= rel_radius; return *this; } + + wxDouble m_r; +}; + +//----------------------------------------------------------------------------- +// wxCircleInt m_r*m_r = (x-m_origin.m_x)^2 + (y-m_origin.m_y)^2 +//----------------------------------------------------------------------------- + +class WXDLLIMPEXP_THINGS wxCircleInt : public wxPoint2DInt +{ +public : + + inline wxCircleInt(wxInt32 x=0, wxInt32 y=0, wxInt32 r=0) + { m_x = x; m_y = y; m_r = r; } + inline wxCircleInt(const wxPoint2DInt &origin, wxInt32 r) + { m_x = origin.m_x; m_y = origin.m_y; m_r = r; } + inline wxCircleInt(const wxCircleInt &circle) + { m_x = circle.m_x; m_y = circle.m_y; m_r = circle.m_r; } + + inline bool IsEmpty() const { return m_r <= 0; } + + inline wxInt32 GetX() const { return m_x; } + inline wxInt32 GetY() const { return m_y; } + inline wxPoint2DInt GetOrigin() const { return wxPoint2DInt(m_x, m_y); } + inline wxInt32 GetRadius() const { return m_r; } + + // Get a bounding rect + inline wxRect2DInt GetRect() const + { return wxRect2DInt(m_x-m_r, m_y-m_r, 2*m_r, 2*m_r); } + + inline void SetX(wxInt32 x) { m_x = x; } + inline void SetY(wxInt32 y) { m_y = y; } + inline void SetOrigin(const wxPoint2DInt &origin) { m_x = origin.m_x; m_y = origin.m_y; } + inline void SetRadius(wxInt32 r) { m_r = r; } + + inline bool GetPointInCircle(wxInt32 x, wxInt32 y) const + { if (IsEmpty()) return false; + return ((x-m_x)*(x-m_x) + (y-m_y)*(y-m_y) <= m_r*m_r); } + + inline bool GetPointInCircle(const wxPoint2DInt &pt) const + { return GetPointInCircle(pt.m_x, pt.m_y); } + + inline bool Intersects(const wxCircleInt &circle) const + { return GetDistance(circle) <= m_r + circle.m_r; } + +// int IntersectLine( const wxRay2DDouble &line, +// wxPoint2DInt *pt1=NULL, +// wxPoint2DInt *pt2=NULL ) const; + + // Operators + + inline wxCircleInt operator=(const wxCircleInt& c) { m_x = c.m_x; m_y = c.m_y; m_r = c.m_r; return *this; } + inline bool operator==(const wxCircleInt& c) const { return (m_x == c.m_x)&&(m_y == c.m_y)&&(m_r == c.m_r); } + inline bool operator!=(const wxCircleInt& c) const { return !(*this == c); } + + inline wxCircleInt operator+(const wxPoint2DInt& rel_origin) const { return wxCircleInt(m_x+rel_origin.m_x, m_y+rel_origin.m_y, m_r); } + inline wxCircleInt operator-(const wxPoint2DInt& rel_origin) const { return wxCircleInt(m_x-rel_origin.m_x, m_y-rel_origin.m_y, m_r); } + inline wxCircleInt operator*(const wxPoint2DInt& rel_origin) const { return wxCircleInt(m_x*rel_origin.m_x, m_y*rel_origin.m_y, m_r); } + inline wxCircleInt operator/(const wxPoint2DInt& rel_origin) const { return wxCircleInt(m_x/rel_origin.m_x, m_y/rel_origin.m_y, m_r); } + + inline wxCircleInt& operator+=(const wxPoint2DInt& rel_origin) { m_x += rel_origin.m_x; m_y += rel_origin.m_y; return *this; } + inline wxCircleInt& operator-=(const wxPoint2DInt& rel_origin) { m_x -= rel_origin.m_x; m_y -= rel_origin.m_y; return *this; } + inline wxCircleInt& operator*=(const wxPoint2DInt& rel_origin) { m_x *= rel_origin.m_x; m_y *= rel_origin.m_y; return *this; } + inline wxCircleInt& operator/=(const wxPoint2DInt& rel_origin) { m_x /= rel_origin.m_x; m_y /= rel_origin.m_y; return *this; } + + inline wxCircleInt operator+(const wxInt32& rel_radius) const { return wxCircleInt(m_x, m_y, m_r+rel_radius); } + inline wxCircleInt operator-(const wxInt32& rel_radius) const { return wxCircleInt(m_x, m_y, m_r-rel_radius); } + inline wxCircleInt operator*(const wxInt32& rel_radius) const { return wxCircleInt(m_x, m_y, m_r*rel_radius); } + inline wxCircleInt operator/(const wxInt32& rel_radius) const { return wxCircleInt(m_x, m_y, m_r/rel_radius); } + + inline wxCircleInt& operator+=(const wxInt32& rel_radius) { m_r += rel_radius; return *this; } + inline wxCircleInt& operator-=(const wxInt32& rel_radius) { m_r -= rel_radius; return *this; } + inline wxCircleInt& operator*=(const wxInt32& rel_radius) { m_r *= rel_radius; return *this; } + inline wxCircleInt& operator/=(const wxInt32& rel_radius) { m_r /= rel_radius; return *this; } + + wxInt32 m_r; +}; + +//----------------------------------------------------------------------------- +// wxEllipseInt m_r*m_r = (x-m_origin.m_x)^2 + (y-m_origin.m_y)^2 +//----------------------------------------------------------------------------- + +class WXDLLIMPEXP_THINGS wxEllipseInt +{ +public : + + inline wxEllipseInt(wxInt32 x=0, wxInt32 y=0, wxInt32 r_x=0, wxInt32 r_y=0) + { m_origin.m_x=x; m_origin.m_y=y; m_radius.m_x=r_x; m_radius.m_y=r_y; } + inline wxEllipseInt(const wxPoint2DInt &origin, const wxPoint2DInt radius) + { m_origin = origin; m_radius = radius; } + inline wxEllipseInt(const wxEllipseInt &ellipse) + { m_origin = ellipse.m_origin; m_radius = ellipse.m_radius; } + + inline bool IsEmpty() const { return m_radius.m_x<=0 || m_radius.m_y<=0; } + + inline wxInt32 GetX() const { return m_origin.m_x; } + inline wxInt32 GetY() const { return m_origin.m_y; } + inline wxPoint2DInt GetOrigin() const { return m_origin; } + inline wxInt32 GetXRadius() const { return m_radius.m_x; } + inline wxInt32 GetYRadius() const { return m_radius.m_y; } + inline wxPoint2DInt GetRadius() const { return m_radius; } + + // Get a bounding rect + inline wxRect2DInt GetRect() const + { return wxRect2DInt(m_origin.m_x-m_radius.m_x, + m_origin.m_y-m_radius.m_y, + 2*m_radius.m_x, 2*m_radius.m_y); } + + inline void SetX(wxInt32 x) { m_origin.m_x = x; } + inline void SetY(wxInt32 y) { m_origin.m_y = y; } + inline void SetOrigin(const wxPoint2DInt &origin) { m_origin = origin; } + inline void SetXRadius(wxInt32 r_x) { m_radius.m_x = r_x; } + inline void SetYRadius(wxInt32 r_y) { m_radius.m_y = r_y; } + inline void SetRadius(const wxPoint2DInt &radius) { m_radius = radius; } + + inline bool GetPointInEllipse(wxInt32 x, wxInt32 y) const + { if (IsEmpty()) return false; + return (((x-m_origin.m_x)*(x-m_origin.m_x))/m_radius.m_x + + ((y-m_origin.m_y)*(y-m_origin.m_y))/m_radius.m_y <= 1); } + + inline bool GetPointInEllipse(const wxPoint2DInt &pt) const + { return GetPointInEllipse(pt.m_x, pt.m_y); } + +// int IntersectLine( const wxRay2DDouble &line, +// wxPoint2DInt *pt1=NULL, +// wxPoint2DInt *pt2=NULL ) const; + + + inline bool operator==(const wxEllipseInt& c) const { return (m_origin == c.m_origin)&&(m_radius == c.m_radius); } + inline bool operator!=(const wxEllipseInt& c) const { return !(*this == c); } + + inline wxEllipseInt operator+(const wxPoint2DInt& rel_origin) const { return wxEllipseInt(m_origin+rel_origin, m_radius); } + inline wxEllipseInt& operator+=(const wxPoint2DInt& rel_origin) { m_origin += rel_origin; return *this; } + inline wxEllipseInt operator-(const wxPoint2DInt& rel_origin) const { return wxEllipseInt(m_origin-rel_origin, m_radius); } + inline wxEllipseInt& operator-=(const wxPoint2DInt& rel_origin) { m_origin -= rel_origin; return *this; } + + wxPoint2DInt m_radius; + wxPoint2DInt m_origin; +}; + + +#endif // __WXIMAGER_GEOMETRY_H__ diff --git a/3rdparty/wxthings/include/wx/things/medsort.h b/3rdparty/wxthings/include/wx/things/medsort.h new file mode 100644 index 0000000..b33b514 --- /dev/null +++ b/3rdparty/wxthings/include/wx/things/medsort.h @@ -0,0 +1,446 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: medsort.h +// Purpose: Macros of generic public domain median sorting algorithms +// Author: John Labenski & mostly others +// Created: 07/01/02 +// Copyright: see macro headers, rewritten by John Labenski, 2002 +// License: Public Domain +///////////////////////////////////////////////////////////////////////////// + +#ifndef __WX_MEDSORT_H__ +#define __WX_MEDSORT_H__ + +/* + Notes : + + code taken from http://ndevilla.free.fr/median/ + see the headers for each function taken from the files + see bottom for benchmark data + + Each of these functions are implemented as macros that can be used to either + DECLARE and DEFINE functions for the different element types required + or they can be used inline + + for example: + + in a header file declare the function with + DECLARE_WIRTHS_MEDIAN( wirths_median_int, int ) + and you'll get this code + int wirths_median_int( int *arr, int n, int &median ); + + in the c(pp) file define the function + DEFINE_WIRTHS_MEDIAN( wirths_median_int, int ) + and get + int withs_median_int( int *arr, int n, int &median ) + { the function itself } + + otherwise use the macro inline in some other function + IMPLEMENT_WIRTHS_MEDIAN(int, arr, n, &median) +*/ + + +/*--------------------------------------------------------------------------- + * This Quickselect routine is based on the algorithm described in + * "Numerical recipes in C", Second Edition, + * Cambridge University Press, 1992, Section 8.5, ISBN 0-521-43108-5 + * This code by Nicolas Devillard - 1998. Public domain. + ---------------------------------------------------------------------------- + + This does NOT fully sort the input array, but it does modify it + + QUICK_SELECT(elem_type, arr, n, median) + elem_type is a valid data type, int, long, unsigned char, float... + arr is an array delcared as elem_type *array and passed as array + n is the size of the array, ie. total element count + median contains the median value on exit + +---------------------------------------------------------------------------*/ + +#define DECLARE_QUICK_SELECT( name, elem_type ) \ + elem_type name( elem_type *arr, int n, elem_type &median ); + +#define DEFINE_QUICK_SELECT( name, elem_type ) \ + elem_type name( elem_type *arr, int n, elem_type &median ) \ + IMPLEMENT_QUICK_SELECT( elem_type, arr, n, median ) + +#define IMPLEMENT_QUICK_SELECT(elem_type, arr, n, median) \ +{ \ + int low=0, high=n-1, half=(low+high)/2, middle, ll, hh; \ + \ + for (;;) { \ + if (high <= low) /* One element only */ \ + break; /*return arr[half] ; */ \ + \ + if (high == low + 1) { /* Two elements only */ \ + if (arr[low] > arr[high]) \ + { register elem_type t=arr[low];arr[low]=arr[high];arr[high]=t; } \ + break; /* return arr[half] ; */ \ + } \ + \ + /* Find median of low, middle and high items; swap into low */ \ + middle = (low + high) / 2; \ + if (arr[middle] > arr[high]) { register elem_type t=arr[middle];arr[middle]=arr[high];arr[high]=t; } \ + if (arr[low] > arr[high]) { register elem_type t=arr[low]; arr[low] =arr[high];arr[high]=t; } \ + if (arr[middle] > arr[low] ) { register elem_type t=arr[middle];arr[middle]=arr[low]; arr[low] =t; } \ + \ + /* Swap low item (now in position middle) into position (low+1) */ \ + { register elem_type t=arr[middle];arr[middle]=arr[low+1];arr[low+1]=t; } \ + \ + /* Nibble from ends towards middle, swapping items when stuck */ \ + ll = low + 1; \ + hh = high; \ + for (;;) { \ + do ll++; while (arr[low] > arr[ll] ); \ + do hh--; while (arr[hh] > arr[low]); \ + \ + if (hh < ll) break; \ + \ + { register elem_type t=arr[ll];arr[ll]=arr[hh];arr[hh]=t;} \ + } \ + \ + /* Swap middle item (in position low) back into correct position */ \ + { register elem_type t=arr[low];arr[low]=arr[hh];arr[hh]=t; } \ + \ + /* Re-set active partition */ \ + if (hh <= half) low = ll; \ + if (hh >= half) high = hh - 1; \ + } \ + median = arr[half]; \ +} + + +/*--------------------------------------------------------------------------- + Function : kth_smallest() + In : array of elements, # of elements in the array, rank k + Out : one element + Job : find the kth smallest element in the array + Notice : use the median() macro defined below to get the median. + + Reference: + + Author: Wirth, Niklaus + Title: Algorithms + data structures = programs + Publisher: Englewood Cliffs: Prentice-Hall, 1976 + Physical description: 366 p. + Series: Prentice-Hall Series in Automatic Computation + --------------------------------------------------------------------------- + + This does NOT fully sort the input array, but it does modify it + + WIRTHS_KTH_SMALLEST(elem_type, arr, n, k, ksmallest) + elem_type is a valid data type, int, long, unsigned char, float... + arr is an array delcared as elem_type *array and passed as array + n is the size of the array, ie. total element count + k is the kth smallest value of the array that you want to find + ksmallest contains the kth smallest value of arr on exit + + WIRTHS_MEDIAN(elem_type, arr, n, median) finds median value + Calls WIRTHS_KTH_SMALLEST with (k = n/2) fills median + +---------------------------------------------------------------------------*/ + +#define DECLARE_WIRTHS_MEDIAN( name, elem_type ) \ + elem_type name( elem_type *arr, int n, elem_type &median ); + +#define DEFINE_WIRTHS_MEDIAN( name, elem_type ) \ + elem_type name( elem_type *arr, int n, elem_type &median ) \ + WIRTHS_MEDIAN( elem_type, arr, n, median ) + +#define IMPLEMENT_WIRTHS_MEDIAN(elem_type, arr, n, median) \ + IMPLEMENT_WIRTHS_KTH_SMALLEST(elem_type, arr, n, (((n)&1)?((n)/2):(((n)/2)-1)), median) + + +#define DECLARE_WIRTHS_KTH_SMALLEST( name, elem_type ) \ + elem_type name( elem_type *arr, int n, elem_type &median ); + +#define DEFINE_WIRTHS_KTH_SMALLEST( name, elem_type ) \ + elem_type name( elem_type *arr, int n, elem_type &median ) \ + IMPLEMENT_WIRTHS_MEDIAN( elem_type, arr, n, median ) + +#define IMPLEMENT_WIRTHS_KTH_SMALLEST(elem_type, arr, n, k, ksmallest) \ +{ \ + register int i, j, l=0, m=n-1; \ + register elem_type x; \ + \ + while (lmax) max=arr[i]; \ + } \ + \ + while (1) { \ + guess = (min+max)/2; \ + less = 0; greater = 0; equal = 0; \ + maxltguess = min; \ + mingtguess = max; \ + for (i=0; imaxltguess) maxltguess = arr[i]; \ + } else if (arr[i]>guess) { \ + greater++; \ + if (arr[i]greater) max = maxltguess; \ + else min = mingtguess; \ + } \ + if (less >= (n+1)/2) median = maxltguess; \ + else if (less+equal >= (n+1)/2) median = guess; \ + else median = mingtguess; \ +} + +/*---------------------------------------------------------------------------- + Function : pixel_qsort() + In : pixel array, size of the array + Out : void + Job : sort out the array of pixels + Notice : optimized implementation, unreadable. +--------------------------------------------------------------------------- + + This fully sorts the input array by modifying it + + DECLARE_PIXEL_QSORT(name, elem_type) + +----------------------------------------------------------------------------*/ + +#define PIXEL_QSORT_STACK_SIZE 50 +#define PIXEL_QSORT_THRESHOLD 7 + +#define DECLARE_PIXEL_QSORT( name, elem_type ) \ + void name( elem_type *arr, int n ); + +#define DEFINE_PIXEL_QSORT( name, elem_type ) \ + void name( elem_type *arr, int n ) \ + IMPLEMENT_PIXEL_QSORT( name, elem_type ) + +#define IMPLEMENT_PIXEL_QSORT( elem_type, arr, n ) \ +{ \ + int i, ir=n, j, k, l=1, j_stack=0; \ + int *i_stack ; \ + elem_type a ; \ + \ + i_stack = (int*)malloc(PIXEL_QSORT_STACK_SIZE * sizeof(elem_type)); \ + for (;;) { \ + if (ir-l < PIXEL_QSORT_THRESHOLD) { \ + for (j=l+1 ; j<=ir ; j++) { \ + a = arr[j-1]; \ + for (i=j-1 ; i>=1 ; i--) { \ + if (arr[i-1] <= a) break; \ + arr[i] = arr[i-1]; \ + } \ + arr[i] = a; \ + } \ + if (j_stack == 0) break; \ + ir = i_stack[j_stack-- -1]; \ + l = i_stack[j_stack-- -1]; \ + } else { \ + k = (l+ir) >> 1; \ + { elem_type t=arr[k-1];arr[k-1]=arr[l];arr[l]=t; } \ + if (arr[l] > arr[ir-1]) { \ + { elem_type t=arr[l];arr[l]=arr[ir-1];arr[ir-1]=t; } \ + } \ + if (arr[l-1] > arr[ir-1]) { \ + { elem_type t=arr[l-1];arr[l-1]=arr[ir-1];arr[ir-1]=t; } \ + } \ + if (arr[l] > arr[l-1]) { \ + { elem_type t=arr[l];arr[l]=arr[l-1];arr[l-1]=t; } \ + } \ + i = l+1; j = ir; a = arr[l-1]; \ + for (;;) { \ + do i++; while (arr[i-1] < a); \ + do j--; while (arr[j-1] > a); \ + if (j < i) break; \ + { elem_type t=arr[i-1];arr[i-1]=arr[j-1];arr[j-1]=t; } \ + } \ + arr[l-1] = arr[j-1]; \ + arr[j-1] = a; \ + j_stack += 2; \ + wxASSERT(!(j_stack>PIXEL_QSORT_STACK_SIZE)); \ + /* if (j_stack > PIXEL_QSORT_STACK_SIZE) { */ \ + /* printf("stack too small in pixel_qsort: aborting"); */ \ + /* exit(-2001); } */ \ + if (ir-i+1 >= j-l) { \ + i_stack[j_stack-1] = ir; \ + i_stack[j_stack-2] = i; \ + ir = j-1; \ + } else { \ + i_stack[j_stack-1] = j-1; \ + i_stack[j_stack-2] = l; \ + l = i; \ + } \ + } \ + } \ + free(i_stack); \ +} + + +/*------------------------------------------------------------------------- + Function : pixel_qsort2() + In : two pixel arrays, size of the arrays + Out : void + Job : sort out both arrays based on the first array + Notice : optimized implementation, unreadable. +--------------------------------------------------------------------------- + + This fully sorts the input arrays by modifying them + Uses the first array as the comparison array + + DECLARE_PIXEL_QSORT2(name, elem_type) + +----------------------------------------------------------------------------*/ + +#define PIXEL_QSORT2_STACK_SIZE 50 +#define PIXEL_QSORT2_THRESHOLD 7 + +#define DECLARE_PIXEL_QSORT2( name, elem_type ) \ + void name( elem_type *arr, elem_type *arr2, int n ); + +#define DEFINE_PIXEL_QSORT2( name, elem_type ) \ + void name( elem_type *arr, elem_type *arr2, int n ) \ + IMPLEMENT_PIXEL_QSORT2( name, elem_type ) + +#define IMPLEMENT_PIXEL_QSORT2( elem_type, arr, arr2, n ) \ +{ \ + int i, ir=n, j, k, l=1, j_stack=0; \ + int *i_stack ; \ + elem_type a, a2 ; \ + \ + i_stack = (int*)malloc(PIXEL_QSORT2_STACK_SIZE * sizeof(elem_type)); \ + for (;;) { \ + if (ir-l < PIXEL_QSORT2_THRESHOLD) { \ + for (j=l+1 ; j<=ir ; j++) { \ + a = arr[j-1]; a2 = arr2[j-1]; \ + for (i=j-1 ; i>=1 ; i--) { \ + if (arr[i-1] <= a) break; \ + arr[i] = arr[i-1]; \ + arr2[i] = arr2[i-1]; \ + } \ + arr[i] = a; arr2[i] = a2; \ + } \ + if (j_stack == 0) break; \ + ir = i_stack[j_stack-- -1]; \ + l = i_stack[j_stack-- -1]; \ + } else { \ + k = (l+ir) >> 1; \ + { elem_type t=arr[k-1];arr[k-1]=arr[l];arr[l]=t; t=arr2[k-1];arr2[k-1]=arr2[l];arr2[l]=t; } \ + if (arr[l] > arr[ir-1]) { \ + { elem_type t=arr[l];arr[l]=arr[ir-1];arr[ir-1]=t; t=arr2[l];arr2[l]=arr2[ir-1];arr2[ir-1]=t;} \ + } \ + if (arr[l-1] > arr[ir-1]) { \ + { elem_type t=arr[l-1];arr[l-1]=arr[ir-1];arr[ir-1]=t; t=arr2[l-1];arr2[l-1]=arr2[ir-1];arr2[ir-1]=t;} \ + } \ + if (arr[l] > arr[l-1]) { \ + { elem_type t=arr[l];arr[l]=arr[l-1];arr[l-1]=t; t=arr2[l];arr2[l]=arr2[l-1];arr2[l-1]=t; } \ + } \ + i = l+1; j = ir; a = arr[l-1]; a2 = arr2[l-1]; \ + for (;;) { \ + do i++; while (arr[i-1] < a); \ + do j--; while (arr[j-1] > a); \ + if (j < i) break; \ + { elem_type t=arr[i-1];arr[i-1]=arr[j-1];arr[j-1]=t; t=arr2[i-1];arr2[i-1]=arr2[j-1];arr2[j-1]=t;} \ + } \ + arr[l-1] = arr[j-1]; arr2[l-1] = arr2[j-1]; \ + arr[j-1] = a; arr2[j-1] = a2; \ + j_stack += 2; \ + wxASSERT(!(j_stack>PIXEL_QSORT_STACK_SIZE)); \ + /* if (j_stack > PIXEL_QSORT_STACK_SIZE) { */ \ + /* printf("stack too small in pixel_qsort: aborting"); */ \ + /* exit(-2001); } */ \ + if (ir-i+1 >= j-l) { \ + i_stack[j_stack-1] = ir; \ + i_stack[j_stack-2] = i; \ + ir = j-1; \ + } else { \ + i_stack[j_stack-1] = j-1; \ + i_stack[j_stack-2] = l; \ + l = i; \ + } \ + } \ + } \ + free(i_stack); \ +} + + + +/* +Abbreviated benchmark data from +http://ndevilla.free.fr/median/median/node13.html + +(QuickSelect, Wirth, Aho/Hopcroft/Ullman, Torben, pixel quicksort) +Pentium II 400 MHz running Linux 2.0 with glibc-2.0.7. + +The basic method using the libc qsort() function has not been represented here, +because it is so slow compared to the others that it would make the plot unreadable. +Furthermore, it depends on the local implementation of your C library. + +Ratios have been obtained for sets with increasing number of values, +from 1e4 to 1e6. The speed ratios have been computed to the fastest method +on average (QuickSelect), then averaged over all measure points. + +QuickSelect : 1.00 +WIRTH median : 1.33 +AHU median : 3.71 +Torben : 8.95 +fast pixel sort : 6.50 + + Elm Qselect Wirth AHU Torben pqsort +10000 0.000 0.000 0.010 0.010 0.010 +100000 0.010 0.020 0.050 0.140 0.100 +200000 0.040 0.040 0.180 0.310 0.220 +300000 0.070 0.060 0.190 0.470 0.340 +400000 0.080 0.140 0.150 0.630 0.450 +500000 0.110 0.080 0.510 0.800 0.580 +600000 0.090 0.140 0.320 0.940 0.730 +700000 0.120 0.100 0.450 1.100 0.810 +800000 0.120 0.160 0.590 1.270 0.940 +900000 0.180 0.250 0.760 1.430 1.070 +1000000 0.210 0.290 0.600 1.580 1.240 +*/ + +#endif //__WX_MEDSORT_H__ diff --git a/3rdparty/wxthings/include/wx/things/menubtn.h b/3rdparty/wxthings/include/wx/things/menubtn.h new file mode 100644 index 0000000..bb86873 --- /dev/null +++ b/3rdparty/wxthings/include/wx/things/menubtn.h @@ -0,0 +1,193 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: wxMenuButton +// Purpose: A button with a dropdown wxMenu +// Author: John Labenski +// Modified by: +// Created: 11/05/2002 +// Copyright: (c) John Labenski +// Licence: wxWidgets licence +///////////////////////////////////////////////////////////////////////////// + +/* + +wxMenuButton is a button that drops down an assigned wxMenu + +Create the button with either a text or bitmap label. + Create a new wxMenu and call AssignMenu and thats it. When you press the + dropdown button the menu appears. When you press the label button the next + wxITEM_RADIO (ie wxMenuItem::GetKind) in the menu is selected round robin. + If there are no radio items then it really just acts like a menubar, though + this is probably not too useful. The events sent in this case are EVT_MENUs + either generated by the menu when you click on it or created when you click + on the label to select the next radio item. +*/ + +#ifndef _WX_MENUBTN_H_ +#define _WX_MENUBTN_H_ + +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) + #pragma interface "menubtn.h" +#endif + +#include "wx/things/thingdef.h" +#include "wx/things/toggle.h" + +class WXDLLEXPORT wxMenu; +class WXDLLEXPORT wxBitmap; +class WXDLLIMPEXP_THINGS wxCustomButton; + +//----------------------------------------------------------------------------- +// wxMenuButton styles +//----------------------------------------------------------------------------- + +#define wxMENUBUTTON_DROP_WIDTH 10 +#define wxMENUBUTTON_DROP_HEIGHT 22 + +enum wxMenuButton_Styles +{ + wxMENUBUT_FLAT = wxCUSTBUT_FLAT +}; + +//----------------------------------------------------------------------------- +// wxMenuButton +//----------------------------------------------------------------------------- + +class WXDLLIMPEXP_THINGS wxMenuButton : public wxControl +{ +public: + + wxMenuButton() : wxControl() { Init(); } + + // Use this constructor if you need one compatible with a wxButton + // setup the button later with AssignMenu + wxMenuButton( wxWindow* parent, + wxWindowID id, + const wxString &label, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = 0, + const wxValidator& val = wxDefaultValidator, + const wxString& name = wxT("wxMenuButton")) + : wxControl() + { + Init(); + Create(parent,id,label,wxNullBitmap,pos,size,style,val,name); + } + + // Use this constructor if you need one compatible with a wxBitmapButton + // setup the button later with AssignMenu + wxMenuButton( wxWindow* parent, wxWindowID id, + const wxBitmap &bitmap, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = 0, + const wxValidator& val = wxDefaultValidator, + const wxString& name = wxT("wxMenuButton")) + : wxControl() + { + Init(); + Create(parent,id,wxEmptyString,bitmap,pos,size,style,val,name); + } + + // wxComboBox constructor, completely setup later + wxMenuButton( wxWindow *parent, wxWindowID id, + const wxString& value = wxEmptyString, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + int n = 0, const wxString choices[] = (const wxString *) NULL, + long style = 0, + const wxValidator& val = wxDefaultValidator, + const wxString& name = wxT("wxMenuButton")) + : wxControl() + { + n = n; choices = choices; // get rid of unused warning + Init(); + Create(parent, id, value, wxNullBitmap, pos, size, style, val, name); + } + + // Native constructor + wxMenuButton( wxWindow* parent, wxWindowID id, + const wxString &label, const wxBitmap &bitmap, + wxMenu *menu, bool static_menu = false, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = 0, + const wxValidator& val = wxDefaultValidator, + const wxString& name = wxT("wxMenuButton")) + : wxControl() + { + Init(); + AssignMenu(menu, static_menu); + Create(parent,id,label,bitmap,pos,size,style,val,name); + } + + virtual ~wxMenuButton(); + + bool Create( wxWindow* parent, + wxWindowID id, + const wxString &label, + const wxBitmap &bitmap, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxNO_BORDER, + const wxValidator& val = wxDefaultValidator, + const wxString& name = wxT("wxMenuButton")); + + // Gets the id of the first selected radio item or wxNOT_FOUND (-1) if none + int GetSelection() const; + + // This menu will be displayed when the dropdown button is pressed. + // if static_menu is false it will be deleted when the buttton is destroyed. + void AssignMenu(wxMenu *menu, bool static_menu = false); + + wxMenu *GetMenu() const { return m_menu; } + + // get a pointer to the label button, for turning it into a toggle perhaps + wxCustomButton *GetLabelButton() const { return m_labelButton; } + wxCustomButton *GetDropDownButton() const { return m_dropdownButton; } + + void SetToolTip(const wxString &tip); + void SetToolTip(wxToolTip *tip); + +protected: + void OnButton(wxCommandEvent &event); + + virtual void DoSetSize(int x, int y, int width, int height, + int sizeFlags = wxSIZE_AUTO); + + virtual wxSize DoGetBestSize(); + +// FIXME! - in MSW the radio items don't check themselves +#ifdef __WXMSW__ + void OnMenu( wxCommandEvent &event ); +#endif + + + wxCustomButton *m_labelButton; + wxCustomButton *m_dropdownButton; + + wxMenu *m_menu; + bool m_menu_static; + long m_style; + +private: + void Init(); + DECLARE_DYNAMIC_CLASS(wxMenuButton) + DECLARE_EVENT_TABLE() +}; + +//----------------------------------------------------------------------------- +// wxMenuButtonEvents +// +// EVT_MENUBUTTON_OPEN(id, fn) - menu is about to be opened, (dis)(en)able items +// or call Veto() to stop menu from popping up +// this is a wxNotifyEvent +//----------------------------------------------------------------------------- + +BEGIN_DECLARE_EVENT_TYPES() + DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_THINGS, wxEVT_MENUBUTTON_OPEN, 0) +END_DECLARE_EVENT_TYPES() + +#define EVT_MENUBUTTON_OPEN(id, fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_MENUBUTTON_OPEN, id, wxID_ANY, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxNotifyEventFunction) & fn, (wxObject *) NULL ), + +#endif // _WX_MENUBTN_H_ diff --git a/3rdparty/wxthings/include/wx/things/optvalue.h b/3rdparty/wxthings/include/wx/things/optvalue.h new file mode 100644 index 0000000..b8c6a4d --- /dev/null +++ b/3rdparty/wxthings/include/wx/things/optvalue.h @@ -0,0 +1,175 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: optvalue.h +// Purpose: An string option & value pair class +// Author: John Labenski +// Created: 07/01/02 +// Copyright: John Labenski, 2002 +// License: wxWidgets v2 +///////////////////////////////////////////////////////////////////////////// + +#ifndef __WXOPTIONVALUE_H__ +#define __WXOPTIONVALUE_H__ + +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) + #pragma interface "optvalue.h" +#endif + +#include "wx/things/thingdef.h" +class WXDLLIMPEXP_THINGS wxOptionValue; + +#include "wx/dynarray.h" +WX_DECLARE_OBJARRAY_WITH_DECL(wxOptionValue, wxArrayOptionValue, class WXDLLIMPEXP_THINGS); + +//---------------------------------------------------------------------------- +// Global wxString utilities +//---------------------------------------------------------------------------- + +//extern wxArrayString wxStringToWords( const wxString &string ); + +//---------------------------------------------------------------------------- +// wxOptionValue - a ref counted wxString key, wxString value container +//---------------------------------------------------------------------------- + +class WXDLLIMPEXP_THINGS wxOptionValue : public wxObject +{ +public: + wxOptionValue(bool create = true) : wxObject() { if (create) Create(); } + wxOptionValue( const wxOptionValue &optValue ) : wxObject() { Create(optValue); } + wxOptionValue( const wxString &str ) : wxObject() { Create(str); } + + // (Re)Create as an empty container + bool Create(); + // Ref the other wxOptionValue + bool Create( const wxOptionValue &optValue ); + // Create from a string with this structure + // [type] # optional + // key = value + bool Create( const wxString &string ); + + // Make a true copy of the source wxOptionValue (not refed) + bool Copy( const wxOptionValue &source ); + + // Is there any ref data + bool Ok() const; + // Unref the data + void Destroy(); + + //------------------------------------------------------------------------- + + // Get/Set the "type", which can mean whatever you want + wxString GetType() const; + void SetType( const wxString &type ); + + //------------------------------------------------------------------------- + + // does this have a wxOptionValueArray filled with children + size_t GetChildrenCount() const; + wxArrayOptionValue *GetChildren() const; + + bool AddChild( const wxOptionValue& child ); + void DeleteChildren(); + + //------------------------------------------------------------------------- + + // Get the number of different option name/value combinations + size_t GetOptionCount() const; + // Access the arrays themselves + wxArrayString GetOptionNames() const; + wxArrayString GetOptionValues() const; + // Get a specific option name or value + wxString GetOptionName( size_t n ) const; + wxString GetOptionValue( size_t n ) const; + + // returns the index of the option >= 0 or -1 (wxNOT_FOUND) if not found + int HasOption(const wxString &name) const; + // Search through the option names for this part returning the first match + int FindOption(const wxString &part_of_option_name) const; + // delete this option, returns sucess + bool DeleteOption(const wxString &name); + bool DeleteOption( size_t n ); + + // Option functions (arbitrary name/value mapping) + void SetOption(const wxString& name, const wxString& value, bool force=true ); + void SetOption(const wxString& name, int value, bool force=true ) { SetOption(name, wxString::Format(wxT("%d"), value), force); } + void SetOption(const wxString& name, double value, bool force=true ) { SetOption(name, wxString::Format(wxT("%lf"), value), force); } + + // printf style for numeric values SetOption("Name", true, "%d %f", 2, 2.5) + void SetOption(const wxString& name, bool update, const wxChar* format, ...); + + void SetOption(const wxString& name, int v1, int v2, int v3, bool force=true ) { SetOption(name, wxString::Format(wxT("%d %d %d"), v1, v2, v3), force); } + void SetOption(const wxString& name, double v1, double v2, double v3, bool force=true ) { SetOption(name, wxString::Format(wxT("%lf %lf %lf"), v1, v2, v3), force); } + void SetOption(const wxString& name, int *v, int count, bool force=true ) { if(v) { wxString s; for (int i=0; i m_max; } + + // Swap the min and max values + inline void SwapMinMax() { register int temp=m_min; m_min=m_max; m_max=temp; } + + // returns -1 for i < min, 0 for in range, +1 for i > m_max + inline int Position(int i) const { return i < m_min ? -1 : (i > m_max ? 1 : 0); } + + // Is this point or the range within this range + inline bool Contains( int i ) const { return (i >= m_min) && (i <= m_max); } + inline bool Contains( const wxRangeInt &r ) const + { return (r.m_min >= m_min) && (r.m_max <= m_max); } + + // returns if the range intersects the given range + inline bool Intersects(const wxRangeInt& r) const + { return Intersect(r).IsEmpty(); } + // returns the intersection of the range with the other + inline wxRangeInt Intersect(const wxRangeInt& r) const + { return wxRangeInt(wxMax(m_min, r.m_min), wxMin(m_max, r.m_max)); } + // returns the union of the range with the other + inline wxRangeInt Union(const wxRangeInt& r) const + { return wxRangeInt(wxMin(m_min, r.m_min), wxMax(m_max, r.m_max)); } + + // Is this point inside or touches +/- 1 of the range + inline bool Touches( int i ) const + { return !IsEmpty() && wxRangeInt(m_min-1, m_max+1).Contains(i); } + // Is the range adjoining this range + inline bool Touches( const wxRangeInt &r ) const + { if (IsEmpty() || r.IsEmpty()) return false; + wxRangeInt rExp(m_min-1, m_max+1); + return rExp.Contains(r.m_min) || rExp.Contains(r.m_max); } + // combine this single point with the range by expanding the m_min/m_max to contain it + // if only_if_touching then only combine if i is just outside the range by +/-1 + // returns true if the range has been changed at all, false if not + bool Combine(int i, bool only_if_touching = false); + bool Combine(const wxRangeInt &r, bool only_if_touching = false); + + // delete range r from this, return true is anything was done + // if r spans this then this and right become wxEmptyRangeInt + // else if r is inside of this then this is the left side and right is the right + // else if r.m_min > m_min then this is the left side + // else if r.m_min < m_min this is the right side + bool Delete( const wxRangeInt &r, wxRangeInt *right=NULL ); + + // operators + // no copy ctor or assignment operator - the defaults are ok + + // comparison + inline bool operator==(const wxRangeInt& r) const { return (m_min == r.m_min)&&(m_max == r.m_max); } + inline bool operator!=(const wxRangeInt& r) const { return !(*this == r); } + + // Adding ranges unions them to create the largest range + inline wxRangeInt operator+(const wxRangeInt& r) const { return Union(r); } + inline wxRangeInt& operator+=(const wxRangeInt& r) { if(r.m_minm_max) m_max=r.m_max; return *this; } + // Subtracting ranges intersects them to get the smallest range + inline wxRangeInt operator-(const wxRangeInt& r) const { return Intersect(r); } + inline wxRangeInt& operator-=(const wxRangeInt& r) { if(r.m_min>m_min) m_min=r.m_min; if(r.m_max m_max; } + + // Swap the min and max values + inline void SwapMinMax() { register wxDouble temp = m_min; m_min = m_max; m_max = temp; } + + // returns -1 for i < min, 0 for in range, +1 for i > m_max + inline int Position(wxDouble i) const { return i < m_min ? -1 : i > m_max ? 1 : 0; } + + // Is this point or the range within this range + inline bool Contains( wxDouble i ) const { return (i>=m_min)&&(i<=m_max); } + inline bool Contains( const wxRangeDouble &r ) const + { return (r.m_min>=m_min)&&(r.m_max<=m_max); } + + // returns if the range intersects the given range + inline bool Intersects(const wxRangeDouble& r) const + { return Intersect(r).IsEmpty(); } + // returns the intersection of the range with the other + inline wxRangeDouble Intersect(const wxRangeDouble& r) const + { return wxRangeDouble(wxMax(m_min, r.m_min), wxMin(m_max, r.m_max)); } + // returns the union of the range with the other + inline wxRangeDouble Union(const wxRangeDouble& r) const + { return wxRangeDouble(wxMin(m_min, r.m_min), wxMax(m_max, r.m_max)); } + + // no touches for double since what would be a good eps value? + + // combine this single point with the range by expanding the m_min/m_max to contain it + // if only_if_touching then only combine if there is overlap + // returns true if the range has been changed at all, false if not + bool Combine(wxDouble i); + bool Combine( const wxRangeDouble &r, bool only_if_touching = false ); + + // delete range r from this, return true is anything was done + // if r spans this then this and right become wxEmptyRangeInt + // else if r is inside of this then this is the left side and right is the right + // else if r.m_min > m_min then this is the left side + // else if r.m_min < m_min this is the right side + bool Delete( const wxRangeDouble &r, wxRangeDouble *right=NULL ); + + // operators + // no copy ctor or assignment operator - the defaults are ok + + // comparison + inline bool operator==(const wxRangeDouble& r) const { return (m_min == r.m_min)&&(m_max == r.m_max); } + inline bool operator!=(const wxRangeDouble& r) const { return !(*this == r); } + + // Adding ranges unions them to create the largest range + inline wxRangeDouble operator+(const wxRangeDouble& r) const { return Union(r); } + inline wxRangeDouble& operator+=(const wxRangeDouble& r) { if(r.m_minm_max) m_max=r.m_max; return *this; } + // Subtracting ranges intersects them to get the smallest range + inline wxRangeDouble operator-(const wxRangeDouble& r) const { return Intersect(r); } + inline wxRangeDouble& operator-=(const wxRangeDouble& r) { if(r.m_min>m_min) m_min=r.m_min; if(r.m_max to return to it + + Shift + Arrow = *2 increment value + Ctrl + Arrow = *10 increment value + Alt + Arrow = *100 increment value + combinations of Shift, Ctrl, Alt increment by the product of the factors + + PgUp & PgDn = *10 increment * the product of the Shift, Ctrl, Alt factors + + sets the control's value to the it's last valid state + + SetDigits controls the format of the text, # decimal places + exponential uses the %.Xle format otherwise %.Xlf, where places = X + for arbitray formats subclass control and override SyncSpinToText() + for proper behavior when a user types in a value +*/ + +#ifndef __wxSPINCTRLDBL_H__ +#define __wxSPINCTRLDBL_H__ + +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) + #pragma interface "spinctld.h" +#endif + +#include "wx/spinbutt.h" +#include "wx/spinctrl.h" // for EVT_SPINCTRL +#include "wx/things/thingdef.h" + +class WXDLLEXPORT wxTextCtrl; +class WXDLLIMPEXP_THINGS wxSpinCtrlDblTextCtrl; + +enum +{ + wxSPINCTRLDBL_AUTODIGITS = -1 // try to autocalc the # of digits +}; + +class WXDLLIMPEXP_THINGS wxSpinCtrlDbl: public wxControl +{ +public: + wxSpinCtrlDbl() : wxControl() { Init(); } + + // Native constructor - note &parent, this is to avoid ambiguity + wxSpinCtrlDbl( wxWindow &parent, wxWindowID id, + const wxString &value = wxEmptyString, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxSize(95,-1), + long style = 0, + double min = 0.0, double max = 100.0, + double initial = 0.0, + double increment = 1.0, int digits = wxSPINCTRLDBL_AUTODIGITS, + const wxString& name = _T("wxSpinCtrlDbl") ) + { + Init(); + Create(&parent, id, value, pos, size, style, + min, max, initial, increment, digits, name); + } + + // wxSpinCtrl compatibility, call SetIncrement(increment,digits) after + wxSpinCtrlDbl( wxWindow *parent, wxWindowID id = wxID_ANY, + const wxString &value = wxEmptyString, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxSize(95,-1), + long style = 0, + int min = 0, int max = 100, + int initial = 0, + const wxString& name = _T("wxSpinCtrlDbl") ) + { + Init(); + Create(parent, id, value, pos, size, style, + (double)min, (double)max, (double)initial, 1.0, -1, name); + } + + bool Create( wxWindow *parent, + wxWindowID id = wxID_ANY, + const wxString &value = wxEmptyString, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxSize(100,-1), + long style = 0, + double min = 0.0, double max = 100.0, + double initial = 0.0, + double increment = 1.0, int digits = wxSPINCTRLDBL_AUTODIGITS, + const wxString& name = _T("wxSpinCtrlDbl") ); + + virtual ~wxSpinCtrlDbl(); + + // ----------------------------------------------------------------------- + // Public (normal usage) functions + + enum formatType + { + lf_fmt, // %lf + le_fmt, // %le + lg_fmt // %lg + }; + + virtual void SetValue( double value ); + void SetValue( double value, double min, double max, double increment, + int digits = wxSPINCTRLDBL_AUTODIGITS, formatType fmt = lg_fmt ) + { SetRange(min, max); SetIncrement(increment); SetDigits(digits, fmt); SetValue(value); } + // Set the value as text, if force then set text as is + virtual void SetValue( const wxString& text, bool force ); + // Set the allowed range, if max_val < min_val then no range and all vals allowed. + void SetRange( double min_val, double max_val ); + // Set the increment to use when the spin button or arrow keys pressed. + void SetIncrement( double increment ); + void SetIncrement( double increment, int digits, formatType fmt = lg_fmt ) + { SetIncrement(increment); SetDigits(digits, fmt); } + // Set the number of digits to show, use wxSPINCTRLDBL_AUTODIGITS + // or specify exact number to show i.e. %.[digits]lf + // The format type is used to create an appropriate format string. + void SetDigits( int digits = wxSPINCTRLDBL_AUTODIGITS, formatType fmt = lg_fmt ); + // Set the format string to use, ie. format="%.2lf" for .01 + void SetFormat( const wxString& format ); + // Set the control the the default value. + virtual void SetDefaultValue() { SetValue( m_default_value ); } + // Set the value of the default value, default is the inital value. + void SetDefaultValue( double default_value ); + // Force the value to always be divisible by the increment, initially off. + // This uses the default_value as the basis, you'll get strange results + // for very large differences between the current value and default value + // when the increment is very small. + void SetSnapToTicks(bool forceTicks); + + double GetValue() const { return m_value; } + double GetMin() const { return m_min; } + double GetMax() const { return m_max; } + virtual bool HasRange() const { return m_max >= m_min; } + virtual bool InRange(double value) const { return !HasRange() || ((value >= m_min) && (value <= m_max)); } + double GetIncrement() const { return m_increment; } + int GetDigits() const { return m_digits; } + wxString GetFormat() const { return m_textFormat; } + double GetDefaultValue() const { return m_default_value; } + bool GetSnapToTicks() const { return m_snap_ticks; } + + bool IsDefaultValue() const { return (m_value == m_default_value); } + + virtual bool SetFont( const wxFont &font ); + wxFont GetFont() const; + + virtual bool SetBackgroundColour(const wxColour& colour); + wxColour GetBackgroundColour() const; + + virtual bool SetForegroundColour(const wxColour& colour); + wxColour GetForegroundColour() const; + + // for setting... stuff + wxTextCtrl *GetTextCtrl() { return (wxTextCtrl*)m_textCtrl; } + +protected: + void OnSpinUp( wxSpinEvent &event ); + void OnSpinDown( wxSpinEvent &event ); + void OnTextEnter( wxCommandEvent &event ); + void OnText( wxCommandEvent &event ); + // the textctrl is subclassed to get at pgup/dn and then sent here + void OnChar( wxKeyEvent &event ); + + virtual void SyncSpinToText(bool send_event = true, bool force_valid = true); + + void DoSendEvent(); // send an event based on current state + + virtual void DoSetSize(int x, int y, int width, int height, + int sizeFlags = wxSIZE_AUTO); + + virtual wxSize DoGetBestSize() const; + + void OnFocus( wxFocusEvent& event ); // pass focus to textctrl, for wxTAB_TRAVERSAL + void OnKillFocus( wxFocusEvent &event ); + + wxSpinButton *m_spinButton; + wxSpinCtrlDblTextCtrl *m_textCtrl; + + double m_min; // min allowed value + double m_max; // max allowed value + double m_value; // current value + double m_default_value; // initial value, or SetDefaultValue(value) + double m_increment; // how much to to add per spin + int m_digits; // number of digits displayed after decimal point + bool m_snap_ticks; // value is divisible by increment + wxString m_textFormat; // used as wxString.Printf(m_textFormat.c_str(), m_value); + +private: + friend class wxSpinCtrlDblTextCtrl; + + void Init(); + DECLARE_DYNAMIC_CLASS(wxSpinCtrlDbl) + DECLARE_EVENT_TABLE() +}; + +#endif // __wxSPINCTRLDBL_H__ diff --git a/3rdparty/wxthings/include/wx/things/thingdef.h b/3rdparty/wxthings/include/wx/things/thingdef.h new file mode 100644 index 0000000..7562a03 --- /dev/null +++ b/3rdparty/wxthings/include/wx/things/thingdef.h @@ -0,0 +1,42 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: thingdef.h +// Purpose: Definitions for wxThings +// Author: John Labenski +// Modified by: +// Created: 1/08/1999 +// RCS-ID: $Id: thingdef.h,v 1.2 2006/03/21 05:33:19 jrl1 Exp $ +// Copyright: (c) John Labenski +// Licence: wxWidgets licence +///////////////////////////////////////////////////////////////////////////// + +#ifndef __WX_THINGDEF_H__ +#define __WX_THINGDEF_H__ + +#include "wx/defs.h" + +// ---------------------------------------------------------------------------- +// DLLIMPEXP macros +// ---------------------------------------------------------------------------- + +// These are our DLL macros (see the contrib libs like wxPlot) +#ifdef WXMAKINGDLL_THINGS + #define WXDLLIMPEXP_THINGS WXEXPORT + #define WXDLLIMPEXP_DATA_THINGS(type) WXEXPORT type +#elif defined(WXUSINGDLL) + #define WXDLLIMPEXP_THINGS WXIMPORT + #define WXDLLIMPEXP_DATA_THINGS(type) WXIMPORT type +#else // not making nor using DLL + #define WXDLLIMPEXP_THINGS + #define WXDLLIMPEXP_DATA_THINGS(type) type +#endif + +// ---------------------------------------------------------------------------- +// wxWidgets backwards compatibility macros +// ---------------------------------------------------------------------------- + +#include "wx/dynarray.h" +#ifndef WX_DECLARE_OBJARRAY_WITH_DECL // for wx2.4 backwards compatibility + #define WX_DECLARE_OBJARRAY_WITH_DECL(T, name, expmode) WX_DECLARE_USER_EXPORTED_OBJARRAY(T, name, WXDLLIMPEXP_THINGS) +#endif + +#endif // __WX_THINGDEF_H__ diff --git a/3rdparty/wxthings/include/wx/things/toggle.h b/3rdparty/wxthings/include/wx/things/toggle.h new file mode 100644 index 0000000..3dcfc1e --- /dev/null +++ b/3rdparty/wxthings/include/wx/things/toggle.h @@ -0,0 +1,254 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: wxCustomButton.h based on wxCustomToggleCtrl.cpp +// Purpose: a toggle button +// Author: Bruce Phillips modified by John Labenski +// Modified by: +// Created: 11/05/2002 +// RCS-ID: +// Copyright: (c) Bruce Phillips, John Labenski +// Licence: wxWidgets licence +///////////////////////////////////////////////////////////////////////////// + +/* + +wxCustomButton is a bitmap and/or text button that can toggle or not. + +It can be used as a drop-in replacement for a wxButton, wxToggleButton, + wxBitmapButton, and the non-existant "wxBitmapToggleButton." + +The event's wxCommandEvent::GetExtraLong contains one of the following + wxEVT_LEFT_UP, wxEVT_RIGHT_UP, wxEVT_LEFT_DCLICK, wxEVT_RIGHT_DCLICK + these can be used to distinguish between the types of events sent + +There are four styles the button can take. + +wxCUSTBUT_BUTTON == wxButton + Left and Right clicks and double clicks all send + wxEVT_COMMAND_BUTTON_CLICKED => EVT_BUTTON(id,fn) + +wxCUSTBUT_TOGGLE == wxToggleButton + Left clicks sends + wxEVT_COMMAND_TOGGLEBUTTON_CLICKED => EVT_TOGGLEBUTTON(id, fn) + Left double clicks and Right clicks send + wxEVT_COMMAND_BUTTON_CLICKED => EVT_BUTTON(id,fn) + +wxCUSTBUT_BUT_DCLICK_TOG + Left and Right clicks and Right double clicks send + wxEVT_COMMAND_BUTTON_CLICKED => EVT_BUTTON(id,fn) + Left double clicks sends + wxEVT_COMMAND_TOGGLEBUTTON_CLICKED => EVT_TOGGLEBUTTON(id, fn) + +wxCUSTBUT_TOG_DCLICK_BUT + Left clicks sends + wxEVT_COMMAND_TOGGLEBUTTON_CLICKED => EVT_TOGGLEBUTTON(id, fn) + Left and Right double clicks and Right clicks send + wxEVT_COMMAND_BUTTON_CLICKED => EVT_BUTTON(id,fn) + +The event's wxCommandEvent::GetInt (IsChecked) is true (1) if the button is + depressed, this is only useful for the wxToggleButton styles + +For both types of button when double-clicked it sends this event + wxEVT_COMMAND_BUTTON_CLICKED => EVT_BUTTON(id, fn) + and the button state does not change. Only a single EVT_BUTTON event should + be sent on double-click and event.GetExtraLong == wxEVT_XXX_DCLICK, + if not then there's a bug. + +If no bitmaps are set the text is centered, if only a bitmap it set then + it's centered, if a bitmap and text are set then the text is one of the + positions wxCUSTBUT_LEFT/RIGHT/TOP/BOTTOM + +The disabled bitmap it automatically created by dithering with the background, + the others just copy the bitmap in the constructor. The control assumes they + are all the same size. + +You have to #include "wx/tglbtn.h" for EVT_TOGGLEBUTTON + +*/ + +#ifndef _WX_CUSTOMBUTTON_H_ +#define _WX_CUSTOMBUTTON_H_ + +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) + #pragma interface "toggle.h" +#endif + +#include "wx/things/thingdef.h" + +class WXDLLEXPORT wxTimer; +class WXDLLEXPORT wxTimerEvent; + +//----------------------------------------------------------------------------- +// wxCustomButton styles +//----------------------------------------------------------------------------- + +enum wxCustomButton_Style +{ + // Position of the label, use only one + wxCUSTBUT_LEFT = 0x0001, + wxCUSTBUT_RIGHT = 0x0002, + wxCUSTBUT_TOP = 0x0004, + wxCUSTBUT_BOTTOM = 0x0008, + // Button style, use only one + wxCUSTBUT_NOTOGGLE = 0x0100, + wxCUSTBUT_BUTTON = 0x0200, + wxCUSTBUT_TOGGLE = 0x0400, + wxCUSTBUT_BUT_DCLICK_TOG = 0x0800, + wxCUSTBUT_TOG_DCLICK_BUT = 0x1000, + // drawing styles + wxCUSTBUT_FLAT = 0x2000 // flat, mouseover raises if not depressed +}; + +//----------------------------------------------------------------------------- +// wxCustomButton +//----------------------------------------------------------------------------- + +class WXDLLIMPEXP_THINGS wxCustomButton : public wxControl +{ +public: + + wxCustomButton() : wxControl() { Init(); } + + // wxToggleButton or wxButton compatible constructor (also wxTextCtrl) + wxCustomButton(wxWindow* parent, wxWindowID id, + const wxString& label, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxCUSTBUT_TOGGLE, + const wxValidator& val = wxDefaultValidator, + const wxString& name = wxT("wxCustomButton")) + : wxControl() + { + Init(); + Create(parent,id,label,wxNullBitmap,pos,size,style,val,name); + } + + // wxBitmapButton compatible constructor + wxCustomButton(wxWindow *parent, wxWindowID id, + const wxBitmap& bitmap, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxCUSTBUT_TOGGLE, + const wxValidator& val = wxDefaultValidator, + const wxString& name = wxT("wxCustomButton")) + : wxControl() + { + Init(); + Create(parent,id,wxEmptyString,bitmap,pos,size,style,val,name); + } + + // Native constructor + wxCustomButton(wxWindow *parent, wxWindowID id, + const wxString& label, const wxBitmap& bitmap, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxCUSTBUT_TOGGLE|wxCUSTBUT_BOTTOM, + const wxValidator& val = wxDefaultValidator, + const wxString& name = wxT("wxCustomButton")) + : wxControl() + { + Init(); + Create(parent,id,label,bitmap,pos,size,style,val,name); + } + + virtual ~wxCustomButton(); + + bool Create(wxWindow* parent, + wxWindowID id, + const wxString& label, + const wxBitmap &bitmap, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = 0, + const wxValidator& val = wxDefaultValidator, + const wxString& name = wxT("wxCustomButton")); + + bool GetValue() const { return m_down%2 != 0; } + void SetValue( bool depressed ); + + // Use combinations of wxCustomButton_Style(s) + long GetButtonStyle() const { return m_button_style; } + bool SetButtonStyle( long style ); + + // Set the text label, wxEmptyString for none + void SetLabel( const wxString &label ); + + // set the bitmaps, ONLY this Label bitmap is used for calculating control size + // all bitmaps will be centered accordingly in any case + // call SetSet(GetBestSize()) if you change their size and want the control to resize appropriately + void SetBitmapLabel(const wxBitmap& bitmap); + void SetBitmapSelected(const wxBitmap& sel) { m_bmpSelected = sel; CalcLayout(true); }; + void SetBitmapFocus(const wxBitmap& focus) { m_bmpFocus = focus; CalcLayout(true); }; + void SetBitmapDisabled(const wxBitmap& disabled) { m_bmpDisabled = disabled; CalcLayout(true); }; + // wxBitmapButton compatibility + void SetLabel(const wxBitmap& bitmap) { SetBitmapLabel(bitmap); } + + // retrieve the bitmaps + const wxBitmap& GetBitmapLabel() const { return m_bmpLabel; } + const wxBitmap& GetBitmapSelected() const { return m_bmpSelected; } + const wxBitmap& GetBitmapFocus() const { return m_bmpFocus; } + const wxBitmap& GetBitmapDisabled() const { return m_bmpDisabled; } + + // Creates a "disabled" bitmap by dithering it with the background colour + wxBitmap CreateBitmapDisabled(const wxBitmap &bitmap) const; + + // set/get the margins (in pixels) around the label and bitmap + // if fit = true then resize the button to fit + void SetMargins(const wxSize &margin, bool fit = false); + + // set/get the margins around the text label + // the inter bitmap/label margin is the max of either margin, not the sum + void SetLabelMargin(const wxSize &margin, bool fit = false); + wxSize GetLabelMargin() const { return m_labelMargin; } + // set/get the margins around the bitmap + // the inter bitmap/label margin is the max of either margin, not the sum + void SetBitmapMargin(const wxSize &margin, bool fit = false); + wxSize GetBitmapMargin() const { return m_bitmapMargin; } + + // can be used to activate the focused behavior (see MenuButton) + void SetFocused(bool focused) { m_focused = focused; Refresh(false); } + bool GetFocused() const { return m_focused; } + +protected: + void OnPaint(wxPaintEvent &event); + void Redraw(); + virtual void Paint( wxDC &dc ); + + virtual wxSize DoGetBestSize() const; + + virtual void SendEvent(); + + void OnMouseEvents(wxMouseEvent &event); + + void OnTimer(wxTimerEvent &event); + void OnSize( wxSizeEvent &event ); + + virtual void CalcLayout(bool refresh); + + int m_down; // toggle state if m_down%2 then depressed + bool m_focused; // mouse in window + long m_button_style; + + // the bitmaps for various states + wxBitmap m_bmpLabel, + m_bmpSelected, + m_bmpFocus, + m_bmpDisabled; + + // the margins around the label/bitmap + wxSize m_labelMargin, + m_bitmapMargin; + + wxPoint m_bitmapPos, + m_labelPos; + + wxTimer *m_timer; + + wxEventType m_eventType; // store the mouse event type + +private: + void Init(); + DECLARE_DYNAMIC_CLASS(wxCustomButton) + DECLARE_EVENT_TABLE() +}; + +#endif // _WX_CUSTOMBUTTON_H_ diff --git a/3rdparty/wxthings/src/Makefile b/3rdparty/wxthings/src/Makefile new file mode 100644 index 0000000..333f3ca --- /dev/null +++ b/3rdparty/wxthings/src/Makefile @@ -0,0 +1,116 @@ +# Makefile for wxthings lib (UNIX). + +# ---------------------------------------------------------------------------- +# wxWidgets build settings + +WXCONFIG := wx-config + +WXDIR = $(shell $(WXCONFIG) --prefix) +WXEXECDIR = $(shell $(WXCONFIG) --exec-prefix) +WXLIBDIR = $(WXEXECDIR)/lib + +WXBASENAME = $(shell $(WXCONFIG) --basename) +WXVERSION = $(shell $(WXCONFIG) --version) +WXRELEASE = $(shell $(WXCONFIG) --release) + +WXCXX = $(shell $(WXCONFIG) --cxx) +WXCXXFLAGS = $(shell $(WXCONFIG) --cxxflags) +WXLIBS = $(shell $(WXCONFIG) --libs) + +WXSTC_LIB = $(WXBASENAME)_stc-$(WXRELEASE) + +# ---------------------------------------------------------------------------- + +# in filebrws.cpp we need to resize comboboxes in toolbar +ifndef GTK_CFLAGS +ifeq (gtk2, $(findstring gtk2, $(WXBASENAME))) +GTK_CFLAGS = $(shell pkg-config --cflags gtk+-2.0) +else +GTK_CFLAGS = $(shell gtk-config --cflags) +endif +endif + +# ---------------------------------------------------------------------------- + +# the wxstedit component is used for the wxFileBrowser class +WXSTEDIT_LIB = $(WXBASENAME)_stedit-$(WXRELEASE) +WXSTEDIT_DIR = ../../wxstedit + +# ---------------------------------------------------------------------------- + +WXTHINGS_LIBNAME = $(WXBASENAME)_wxthings-$(WXRELEASE) +WXTHINGS_LIBDIR = $(WXLIBDIR) + +LIBVERSION_CURRENT=1 +LIBVERSION_REVISION=0 +LIBVERSION_AGE=0 + +TARGET_LIBNAME = lib$(WXTHINGS_LIBNAME) + +TARGET_LIB_STATIC = $(WXTHINGS_LIBDIR)/$(TARGET_LIBNAME).a +TARGET_LIB_SHARED = $(WXTHINGS_LIBDIR)/$(TARGET_LIBNAME).so.$(LIBVERSION_CURRENT).$(LIBVERSION_REVISION).$(LIBVERSION_AGE) +TARGET_LIB_LINK1 = $(TARGET_LIBNAME).so.$(LIBVERSION_CURRENT) +TARGET_LIB_LINK2 = $(TARGET_LIBNAME).so + +# ---------------------------------------------------------------------------- + +CXXFLAGS = $(WXCXXFLAGS) $(GTK_CFLAGS) -MMD -g -Wall -Wunused -Wunused-parameter +LDLIBS = $(WXLIBS) +CXX = $(WXCXX) + +#-fdump-class-hierarchy this dumps out a file.cpp.class file +# -pg in libs and defs for profiling +PROFILE = #-pg +APPEXTRADEFS = -I$(WXDIR)/contrib/include -I$(WXSTEDIT_DIR)/include -I../include $(PROFILE) +APPEXTRALIBS = -l$(WXSTC_LIB) -l$(WXSTEDIT_LIB) $(PROFILE) + +# ---------------------------------------------------------------------------- + +RM = rm -f +AR = ar +AROPTIONS = rcu +RANLIB = ranlib +LN_S = ln -s + +# ---------------------------------------------------------------------------- + +OBJECTS = \ + block.o \ + bmpcombo.o \ + dropdown.o \ + filebrws.o \ + genergdi.o \ + geometry.o \ + menubtn.o \ + optvalue.o \ + range.o \ + spinctld.o \ + toggle.o + +DEPFILES=$(OBJECTS:.o=.d) + +.cpp.o: + $(CXX) -c $(CXXFLAGS) $(APPEXTRADEFS) -o $@ $< + +all: $(TARGET_LIB_STATIC) $(TARGET_LIB_SHARED) + +$(TARGET_LIB_STATIC) : $(OBJECTS) + @$(RM) $@ + $(AR) $(AROPTIONS) $@ $(OBJECTS) + $(RANLIB) $@ + +$(TARGET_LIB_SHARED): $(OBJECTS) + $(CXX) -shared -o $@ $(OBJECTS) + cd $(WXTHINGS_LIBDIR) \ + && $(RM) $(TARGET_LIB_LINK1) $(TARGET_LIB_LINK2) \ + && $(LN_S) $(TARGET_LIB_SHARED) $(TARGET_LIB_LINK1) \ + && $(LN_S) $(TARGET_LIB_SHARED) $(TARGET_LIB_LINK2) + +clean: + rm -f $(OBJECTS) $(DEPFILES) core \ + $(TARGET_LIB_STATIC) \ + $(TARGET_LIB_SHARED) \ + $(WXTHINGS_LIBDIR)/$(TARGET_LIB_LINK1) \ + $(WXTHINGS_LIBDIR)/$(TARGET_LIB_LINK2) + +-include $(DEPFILES) diff --git a/3rdparty/wxthings/src/block.cpp b/3rdparty/wxthings/src/block.cpp new file mode 100644 index 0000000..19f1638 --- /dev/null +++ b/3rdparty/wxthings/src/block.cpp @@ -0,0 +1,1064 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: block.cpp +// Purpose: Rectangular selection storage classes for ints and doubles +// Author: John Labenski +// Created: 07/01/02 +// Copyright: (c) John Labenski 2004 +// Licence: wxWidgets +///////////////////////////////////////////////////////////////////////////// + +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) + #pragma implementation "block.h" +#endif + +// For compilers that support precompilation, includes "wx.h". +#include "wx/wxprec.h" + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#ifndef WX_PRECOMP + //#include "wx/object.h" +#endif // WX_PRECOMP + +#include "wx/things/block.h" + +// use this to check to see if there is any overlap after minimizing +//#define CHECK_BLOCK_OVERLAP 1 + +#define PRINT_BLOCK(msg, b) { wxPrintf(wxT("Block '%s' %lg %lg %lg %lg\n"), msg, (double)(b).m_x1, (double)(b).m_y1, (double)(b).m_x2, (double)(b).m_y2); } + +wxBlockInt const wxEmptyBlockInt(0, 0, -1, -1); +wxBlockDouble const wxEmptyBlockDouble(0, 0, -1, -1); + +#include "wx/arrimpl.cpp" +WX_DEFINE_OBJARRAY(wxArrayBlockInt); +WX_DEFINE_OBJARRAY(wxArrayBlockDouble); +WX_DEFINE_OBJARRAY(wxArrayBlockIntSelection); +WX_DEFINE_OBJARRAY(wxArrayBlockDoubleSelection); + +// ---------------------------------------------------------------------------- +// Sorting functions for wxBlockInt +// ---------------------------------------------------------------------------- + +static int wxCMPFUNC_CONV wxblockint_sort_topleft_bottomright( wxBlockInt **a, wxBlockInt **b) +{ + register int y = ((*a)->m_y1 - (*b)->m_y1); + + if (y < 0) return -1; + if (y == 0) return ((*a)->m_x1 - (*b)->m_x1); + return 1; +} +static int wxCMPFUNC_CONV wxblockint_sort_topright_bottomleft( wxBlockInt **a, wxBlockInt **b) +{ + register int y = ((*a)->m_y1 - (*b)->m_y1); + + if (y < 0) return -1; + if (y == 0) return ((*a)->m_x2 - (*b)->m_x2); + return 1; +} + +static int wxCMPFUNC_CONV wxblockint_sort_bottomleft_topright( wxBlockInt **a, wxBlockInt **b) +{ + register int y = ((*a)->m_y2 - (*b)->m_y2); + + if (y > 0) return -1; + if (y == 0) return ((*a)->m_x1 - (*b)->m_x1); + return 1; +} +static int wxCMPFUNC_CONV wxblockint_sort_bottomright_topleft( wxBlockInt **a, wxBlockInt **b) +{ + register int y = ((*a)->m_y2 - (*b)->m_y2); + + if (y > 0) return -1; + if (y == 0) return ((*a)->m_x2 - (*b)->m_x2); + return 1; +} +static int wxCMPFUNC_CONV wxblockint_sort_largest_to_smallest( wxBlockInt **a, wxBlockInt **b) +{ + return (*a)->IsLarger(**b); +} +static int wxCMPFUNC_CONV wxblockint_sort_smallest_to_largest( wxBlockInt **a, wxBlockInt **b) +{ + return -(*a)->IsLarger(**b); +} + +void wxArrayBlockIntSort(wxArrayBlockInt &blocks, wxBlockSort_Type type) +{ + switch (type) + { + case wxBLOCKSORT_TOPLEFT_BOTTOMRIGHT : blocks.Sort(wxblockint_sort_topleft_bottomright); break; + case wxBLOCKSORT_TOPRIGHT_BOTTOMLEFT : blocks.Sort(wxblockint_sort_topright_bottomleft); break; + case wxBLOCKSORT_BOTTOMLEFT_TOPRIGHT : blocks.Sort(wxblockint_sort_bottomleft_topright); break; + case wxBLOCKSORT_BOTTOMRIGHT_TOPLEFT : blocks.Sort(wxblockint_sort_bottomright_topleft); break; + case wxBLOCKSORT_SMALLEST_TO_LARGEST : blocks.Sort(wxblockint_sort_smallest_to_largest); break; + case wxBLOCKSORT_LARGEST_TO_SMALLEST : blocks.Sort(wxblockint_sort_largest_to_smallest); break; + default : wxFAIL_MSG(wxT("unknown block sort type")); + } +} + +// ---------------------------------------------------------------------------- +// Sorting functions for wxBlockDouble +// ---------------------------------------------------------------------------- + +static int wxCMPFUNC_CONV wxblockdouble_sort_topleft_bottomright( wxBlockDouble **a, wxBlockDouble **b) +{ + register wxDouble y = ((*a)->m_y1 - (*b)->m_y1); + + if (y < 0) return -1; + if (y == 0) return int((*a)->m_x1 - (*b)->m_x1); + return 1; +} +static int wxCMPFUNC_CONV wxblockdouble_sort_topright_bottomleft( wxBlockDouble **a, wxBlockDouble **b) +{ + register wxDouble y = ((*a)->m_y1 - (*b)->m_y1); + + if (y < 0) return -1; + if (y == 0) return int((*a)->m_x2 - (*b)->m_x2); + return 1; +} + +static int wxCMPFUNC_CONV wxblockdouble_sort_bottomleft_topright( wxBlockDouble **a, wxBlockDouble **b) +{ + register wxDouble y = ((*a)->m_y2 - (*b)->m_y2); + + if (y > 0) return -1; + if (y == 0) return int((*a)->m_x1 - (*b)->m_x1); + return 1; +} +static int wxCMPFUNC_CONV wxblockdouble_sort_bottomright_topleft( wxBlockDouble **a, wxBlockDouble **b) +{ + register wxDouble y = ((*a)->m_y2 - (*b)->m_y2); + + if (y > 0) return -1; + if (y == 0) return int((*a)->m_x2 - (*b)->m_x2); + return 1; +} +static int wxCMPFUNC_CONV wxblockdouble_sort_largest_to_smallest( wxBlockDouble **a, wxBlockDouble **b) +{ + return (*a)->IsLarger(**b); +} +static int wxCMPFUNC_CONV wxblockdouble_sort_smallest_to_largest( wxBlockDouble **a, wxBlockDouble **b) +{ + return -(*a)->IsLarger(**b); +} + +void wxArrayBlockDoubleSort(wxArrayBlockDouble &blocks, wxBlockSort_Type type) +{ + switch (type) + { + case wxBLOCKSORT_TOPLEFT_BOTTOMRIGHT : blocks.Sort(wxblockdouble_sort_topleft_bottomright); break; + case wxBLOCKSORT_TOPRIGHT_BOTTOMLEFT : blocks.Sort(wxblockdouble_sort_topright_bottomleft); break; + case wxBLOCKSORT_BOTTOMLEFT_TOPRIGHT : blocks.Sort(wxblockdouble_sort_bottomleft_topright); break; + case wxBLOCKSORT_BOTTOMRIGHT_TOPLEFT : blocks.Sort(wxblockdouble_sort_bottomright_topleft); break; + case wxBLOCKSORT_SMALLEST_TO_LARGEST : blocks.Sort(wxblockdouble_sort_smallest_to_largest); break; + case wxBLOCKSORT_LARGEST_TO_SMALLEST : blocks.Sort(wxblockdouble_sort_largest_to_smallest); break; + default : wxFAIL_MSG(wxT("unknown block sort type")); + } +} + +//============================================================================= +// wxBlockInt +//============================================================================= + +#define TEST_BLOCKS + +#ifdef TEST_BLOCKS +void TestBlocks() +{ + printf("Start Testing blocks -----------------------------------------\n"); + wxBlockInt b1(1,1,4,4); + wxBlockInt b2(5,4,10,11); + PRINT_BLOCK("b1", b1) + PRINT_BLOCK("b2", b2) + + wxBlockInt iB; + iB.Intersect(b1, b2, &iB); + PRINT_BLOCK("Intersect b1 b2", iB) + + wxBlockInt uB; + uB.Union(b1, b2, &uB); + PRINT_BLOCK("Union b1 b2", uB) + + printf("Touches b1 b2 %d %d\n", b1.Touches(b2), b2.Touches(b1)); + + b1 = wxBlockInt(2,3,7,9); + b2 = wxBlockInt(8,3,8,3); + printf("Touches b1 b2 %d %d\n", b1.Touches(b2), b2.Touches(b1)); + + b1 = wxBlockInt(2,3,7,9); + b2 = wxBlockInt(1,3,1,3); + printf("Touches b1 b2 %d %d\n", b1.Touches(b2), b2.Touches(b1)); + iB.Intersect(b1, b2, &iB); + PRINT_BLOCK("Intersect b1 b2", iB) + + b1 = wxBlockInt(2,3,7,9); + b2 = wxBlockInt(2,2,2,2); + printf("Touches b1 b2 %d %d\n", b1.Touches(b2), b2.Touches(b1)); + + b1 = wxBlockInt(2,3,7,9); + b2 = wxBlockInt(7,10,7,10); + printf("Touches b1 b2 %d %d\n", b1.Touches(b2), b2.Touches(b1)); + + printf("End Testing blocks -----------------------------------------\n"); + fflush(stdout); +} +#endif //TEST_BLOCKS + +bool wxBlockInt::Touches(const wxBlockInt &b) const // see Intersects +{ + //if (((wxMax(m_x1, b.m_x1)) <= (wxMin(m_x2, b.m_x2))) && + // ((wxMax(m_y1, b.m_y1)) <= (wxMin(m_y2, b.m_y2)))) + // return true; + + return Intersects(wxBlockInt(b.m_x1-1, b.m_y1-1, b.m_x2+1, b.m_y2+1)); + +/* + wxInt32 left = wxMax( m_x1, b.m_x1 ); + wxInt32 right = wxMin( m_x2, b.m_x2 ); + + if (labs(left - right) <= 1) + { + wxInt32 top = wxMax( m_y1, b.m_y1 ); + wxInt32 bottom = wxMin( m_y2, b.m_y2 ); + if (labs(top - bottom) <= 1) + return true; + } + return false; +*/ +} + +bool wxBlockInt::Combine(const wxBlockInt &b) +{ + if (!Touches(b)) return false; + if (Contains(b)) return true; + if (b.Contains(*this)) + { + *this = b; + return true; + } + + wxBlockInt unionBlock; + Union( *this, b, &unionBlock ); + + if (unionBlock.IsEmpty()) return false; + + // at least one of the two blocks has to be at each corner of the union + if (((unionBlock.GetLeftTop() == GetLeftTop()) || (unionBlock.GetLeftTop() == b.GetLeftTop())) && + ((unionBlock.GetRightTop() == GetRightTop()) || (unionBlock.GetRightTop() == b.GetRightTop())) && + ((unionBlock.GetLeftBottom() == GetLeftBottom()) || (unionBlock.GetLeftBottom() == b.GetLeftBottom())) && + ((unionBlock.GetRightBottom() == GetRightBottom()) || (unionBlock.GetRightBottom() == b.GetRightBottom())) ) + { + *this = unionBlock; + return true; + } + + return false; +} + +bool wxBlockInt::Combine( const wxBlockInt &block, + wxBlockInt &top, wxBlockInt &bottom, + wxBlockInt &left, wxBlockInt &right) const +{ + top = bottom = left = right = wxEmptyBlockInt; + + wxBlockInt iBlock; + Intersect(*this, block, &iBlock); + + if (iBlock.IsEmpty()) return false; // nothing to combine + if (iBlock == *this) return true; // can combine all of this, no leftover + + bool combined = false; + + if ( block.m_y1 < m_y1 ) + { + top = wxBlockInt( block.m_x1, block.m_y1, block.m_x2, m_y1-1 ); + combined = true; + } + if ( block.m_y2 > m_y2 ) + { + bottom = wxBlockInt( block.m_x1, m_y2+1, block.m_x2, block.m_y2 ); + combined = true; + } + if ( block.m_x1 < m_x1 ) + { + left = wxBlockInt( block.m_x1, iBlock.m_y1, m_x1-1, iBlock.m_y2 ); + combined = true; + } + if ( block.m_x2 > m_x2 ) + { + right = wxBlockInt( m_x2+1, iBlock.m_y1, block.m_x2, iBlock.m_y2 ); + combined = true; + } + + return combined; +} + +bool wxBlockInt::Delete( const wxBlockInt &block, + wxBlockInt &top, wxBlockInt &bottom, + wxBlockInt &left, wxBlockInt &right) const +{ + top = bottom = left = right = wxEmptyBlockInt; + + wxBlockInt iBlock; + Intersect(*this, block, &iBlock); + + if (iBlock.IsEmpty()) return false; // nothing to delete + if (iBlock == *this) return true; // can delete all of this, no leftover + + bool deleted = false; + + if ( m_y1 < iBlock.m_y1 ) + { + top = wxBlockInt( m_x1, m_y1, m_x2, iBlock.m_y1-1 ); + deleted = true; + } + if ( GetBottom() > iBlock.GetBottom() ) + { + bottom = wxBlockInt( m_x1, iBlock.m_y2+1, m_x2, m_y2 ); + deleted = true; + } + if ( m_x1 < iBlock.m_x1 ) + { + left = wxBlockInt( m_x1, iBlock.m_y1, iBlock.m_x1-1, iBlock.m_y2 ); + deleted = true; + } + if ( GetRight() > iBlock.GetRight() ) + { + right = wxBlockInt( iBlock.m_x2+1, iBlock.m_y1, m_x2, iBlock.m_y2 ); + deleted = true; + } + + return deleted; +} + +//============================================================================= +// wxBlockDouble +//============================================================================= + +bool wxBlockDouble::Touches(const wxBlockDouble &b) const // see Intersects +{ + if (((wxMax(m_x1, b.m_x1)) <= (wxMin(m_x2, b.m_x2))) && + ((wxMax(m_y1, b.m_y1)) <= (wxMin(m_y2, b.m_y2)))) + return true; + + return false; +} + +bool wxBlockDouble::Combine(const wxBlockDouble &b) +{ + if (!Touches(b)) return false; + if (Contains(b)) return true; + if (b.Contains(*this)) + { + *this = b; + return true; + } + + wxBlockDouble unionBlock; + Union( *this, b, &unionBlock ); + + if (unionBlock.IsEmpty()) return false; + + // at least one of the two blocks has to be at each corner of the union + if (((unionBlock.GetLeftTop() == GetLeftTop()) || (unionBlock.GetLeftTop() == b.GetLeftTop())) && + ((unionBlock.GetRightTop() == GetRightTop()) || (unionBlock.GetRightTop() == b.GetRightTop())) && + ((unionBlock.GetLeftBottom() == GetLeftBottom()) || (unionBlock.GetLeftBottom() == b.GetLeftBottom())) && + ((unionBlock.GetRightBottom() == GetRightBottom()) || (unionBlock.GetRightBottom() == b.GetRightBottom())) ) + { + *this = unionBlock; + return true; + } + + return false; +} + +bool wxBlockDouble::Combine( const wxBlockDouble &block, + wxBlockDouble &top, wxBlockDouble &bottom, + wxBlockDouble &left, wxBlockDouble &right) const +{ + top = bottom = left = right = wxEmptyBlockDouble; + + wxBlockDouble iBlock; + Intersect(*this, block, &iBlock); + + if (iBlock.IsEmpty()) return false; // nothing to combine + if (iBlock == *this) return true; // can combine all of this, no leftover + + bool combined = false; + + if ( block.m_y1 < m_y1 ) + { + top = wxBlockDouble( block.m_x1, block.m_y1, block.m_x2, m_y1 ); + combined = true; + } + if ( block.m_y2 > m_y2 ) + { + bottom = wxBlockDouble( block.m_x1, m_y2, block.m_x2, block.m_y2 ); + combined = true; + } + if ( block.m_x1 < m_x1 ) + { + left = wxBlockDouble( block.m_x1, iBlock.m_y1, m_x1, iBlock.m_y2 ); + combined = true; + } + if ( block.m_x2 > m_x2 ) + { + right = wxBlockDouble( m_x2, iBlock.m_y1, block.m_x2, iBlock.m_y2 ); + combined = true; + } + + return combined; +} + +bool wxBlockDouble::Delete( const wxBlockDouble &block, + wxBlockDouble &top, wxBlockDouble &bottom, + wxBlockDouble &left, wxBlockDouble &right) const +{ + top = bottom = left = right = wxEmptyBlockDouble; + + wxBlockDouble iBlock; + Intersect(*this, block, &iBlock); + + if (iBlock.IsEmpty()) return false; // nothing to delete + if (iBlock == *this) return true; // can delete all of this, no leftover + + bool deleted = false; + + if ( m_y1 < iBlock.m_y1 ) + { + top = wxBlockDouble( m_x1, m_y1, m_x2, iBlock.m_y1 ); + deleted = true; + } + if ( m_y2 > iBlock.m_y2 ) + { + bottom = wxBlockDouble( m_x1, iBlock.m_y2, m_x2, m_y2 ); + deleted = true; + } + if ( m_x1 < iBlock.m_x1 ) + { + left = wxBlockDouble( m_x1, iBlock.m_y1, iBlock.m_x1, iBlock.m_y2 ); + deleted = true; + } + if ( m_x2 > iBlock.m_x2 ) + { + right = wxBlockDouble( iBlock.m_x2, iBlock.m_y1, m_x2, iBlock.m_y2 ); + deleted = true; + } + + return deleted; +} + +//============================================================================= +// wxBlockIntSelection +//============================================================================= +wxBlockInt wxBlockIntSelection::GetBlock( int index ) const +{ + wxCHECK_MSG((index>=0) && (index= m_blocks[n].m_x1) && (col <= m_blocks[n].m_x2)) + { + wxRangeInt range(m_blocks[n].m_y1, m_blocks[n].m_y2); + ranges.Add(range); + } + } + return ranges; +} + +wxArrayRangeInt wxBlockIntSelection::GetBlockRow(int row) const +{ + wxArrayRangeInt ranges; + register int n, count = m_blocks.GetCount(); + for (n=0; n= m_blocks[n].m_y1) && (row <= m_blocks[n].m_y2)) + ranges.Add(wxRangeInt(m_blocks[n].m_x1, m_blocks[n].m_x2)); + } + return ranges; +} +#endif // USE_wxRANGE + +wxBlockInt wxBlockIntSelection::GetBoundingBlock() const +{ + register int n, count = m_blocks.GetCount(); + if (count == 0) return wxEmptyBlockInt; + wxBlockInt bound = m_blocks[0]; + for (n=1; n 0) ? n - 1 : -1; + + if (!top.IsEmpty()) m_blocks.Add(top); + if (!bottom.IsEmpty()) m_blocks.Add(bottom); + if (!left.IsEmpty()) m_blocks.Add(left); + if (!right.IsEmpty()) m_blocks.Add(right); + } + } + + if (combineNow) + Minimize(); + + return done; +} + +bool wxBlockIntSelection::SelectBlock( const wxBlockInt &block, bool combineNow, + wxArrayBlockInt *addedBlocks ) +{ + wxCHECK_MSG(!block.IsEmpty(), false, wxT("Invalid block") ); + + //TestBlocks(); + + wxArrayBlockInt extraBlocks; + wxArrayBlockInt *extra = &extraBlocks; + + if (addedBlocks != NULL) + { + addedBlocks->Clear(); + extra = addedBlocks; + } + + extra->Add(block); + + int n, count = m_blocks.GetCount(); + wxBlockInt top, bottom, left, right; + + for (n=0; nGetCount()); k++) + { + if (m_blocks[n].Combine(extra->Item(k), top, bottom, left, right)) + { + extra->RemoveAt(k); + if (!top.IsEmpty()) extra->Add(top); + if (!bottom.IsEmpty()) extra->Add(bottom); + if (!left.IsEmpty()) extra->Add(left); + if (!right.IsEmpty()) extra->Add(right); + //DoMinimize( *extra ); + n = -1; + break; + } + } + } + + if (extra->GetCount() > 0u) + { + WX_APPEND_ARRAY(m_blocks, *extra); + if (combineNow) + Minimize(); + + return true; + } + + return false; +} + +bool wxBlockIntSelection::Minimize() +{ + bool ret = DoMinimize(m_blocks); + Sort(m_sort); + return ret; +} + +bool wxBlockIntSelection::DoMinimize(wxArrayBlockInt &blocks) +{ + int n; + for (n=0; n<1000; n++) // should probably just take a few + { + if (!DoDoMinimize(blocks)) break; + } + +#ifdef CHECK_BLOCK_OVERLAP + for (size_t a=0; a=0) && (index= m_blocks[n].m_x1) && (col <= m_blocks[n].m_x2)) + { + wxRangeDouble range(m_blocks[n].m_y1, m_blocks[n].m_y2); + ranges.Add(range); + } + } + return ranges; +} + +wxArrayRangeDouble wxBlockDoubleSelection::GetBlockRow(wxDouble row) const +{ + wxArrayRangeDouble ranges; + register int n, count = m_blocks.GetCount(); + for (n=0; n= m_blocks[n].m_y1) && (row <= m_blocks[n].m_y2)) + ranges.Add(wxRangeDouble(m_blocks[n].m_x1, m_blocks[n].m_x2)); + } + return ranges; +} +#endif // USE_wxRANGE + +wxBlockDouble wxBlockDoubleSelection::GetBoundingBlock() const +{ + register int n, count = m_blocks.GetCount(); + if (count == 0) return wxEmptyBlockDouble; + wxBlockDouble bound = m_blocks[0]; + for (n=1; n= m_blocks[n].m_x1) && (y >= m_blocks[n].m_y1) && + (x <= m_blocks[n].m_x2) && (y <= m_blocks[n].m_y2) ) + return true; + } + return wxNOT_FOUND; +} + +int wxBlockDoubleSelection::Index( const wxBlockDouble &b ) const +{ + register int n, count = m_blocks.GetCount(); + for (n=0; n 0) ? n - 1 : -1; + + if (!top.IsEmpty()) m_blocks.Add(top); + if (!bottom.IsEmpty()) m_blocks.Add(bottom); + if (!left.IsEmpty()) m_blocks.Add(left); + if (!right.IsEmpty()) m_blocks.Add(right); + } + } + + if (combineNow) + Minimize(); + + return done; +} + +bool wxBlockDoubleSelection::SelectBlock( const wxBlockDouble &block, bool combineNow) +{ + // It's valid to select a block with a width and height 0 since that means that point + //wxCHECK_MSG(!block.IsEmpty(), false, wxT("Invalid block") ); + + wxArrayBlockDouble extra; + extra.Add(block); + wxBlockDouble top, bottom, left, right; + + for (int n=0; n 0) + { + done = m_blocks[n].Combine(extra[k], top, bottom, left, right); + if (done) + { + extra.RemoveAt(k); + k--; + } + } + else + { + done = extra[k].Combine(m_blocks[n], top, bottom, left, right); + if (done) + { + m_blocks.RemoveAt(n); + n = -1; + } + } + } + + if (done) + { + if (!top.IsEmpty()) extra.Add(top); + if (!bottom.IsEmpty()) extra.Add(bottom); + if (!left.IsEmpty()) extra.Add(left); + if (!right.IsEmpty()) extra.Add(right); + //DoMinimize( extra ); + if (n == -1) + break; + } + } + } + + if (extra.GetCount() > 0u) + { + WX_APPEND_ARRAY(m_blocks, extra); + if (combineNow) + Minimize(); + + return true; + } + + return false; +} + +bool wxBlockDoubleSelection::Minimize() +{ + bool ret = DoMinimize(m_blocks); + Sort(m_sort); + return ret; +} + +bool wxBlockDoubleSelection::DoMinimize(wxArrayBlockDouble &blocks) +{ + int n; + for (n=0; n<1000; n++) // should probably just take < 10 at most + { + if (!DoDoMinimize(blocks)) break; + } + +#ifdef CHECK_BLOCK_OVERLAP + for (size_t a=0; a= int(m_blocks.GetCount()))) + return false; + + // first time here + if (m_block_index < 0) + { + m_block_index = 0; + pt = m_pt = m_blocks[m_block_index].GetLeftTop(); + return true; + } + + // at end of block swap to new one + if (m_pt == m_blocks[m_block_index].GetRightBottom()) + { + ++m_block_index; + if (int(m_blocks.GetCount()) > m_block_index) + { + pt = m_pt = m_blocks[m_block_index].GetLeftTop(); + return true; + } + else // past end nothing more to check + return false; + } + // at end of col, down to next row + if (m_pt.m_x == m_blocks[m_block_index].GetRight()) + { + m_pt.m_x = m_blocks[m_block_index].m_x1; + m_pt.m_y++; + + pt = m_pt; + return true; + } + + // increment the col + m_pt.m_x++; + pt = m_pt; + + return true; +} + +bool wxBlockIntSelectionIterator::IsInSelection(const wxPoint2DInt &pt) const +{ + register int n, count = m_blocks.GetCount(); + for (n=0; nGetBackgroundColour()); +} + +void wxBitmapComboPopupChild::OnPaint( wxPaintEvent &WXUNUSED(event) ) +{ + wxPaintDC dc(this); + PrepareDC(dc); + //dc.SetBackground(*wxTheBrushList->FindOrCreateBrush(GetBackgroundColour(), wxSOLID)); + //dc.Clear(); + + dc.SetFont(m_bmpCombo->GetFont()); + + int y = 0, dy = m_bmpCombo->GetItemSize().y; + wxPoint origin = dc.GetDeviceOrigin(); + wxSize clientSize = GetClientSize(); + + for (int n=0; nGetCount(); n++) + { + if (y + dy > -origin.y) + { + dc.SetDeviceOrigin(origin.x, origin.y + y + 1); + m_bmpCombo->DrawItem(dc, n); + } + + y += dy; + if (y > -origin.y + clientSize.y) + break; + } + + dc.SetDeviceOrigin(0, 0); + PrepareDC(dc); // reset back + + if (m_bmpCombo->GetSelection() >= 0) + { + if (m_last_selection < 0) + m_last_selection = m_bmpCombo->GetSelection(); + + DrawSelection(m_last_selection, dc); + } +} + +void wxBitmapComboPopupChild::OnMouse( wxMouseEvent &event ) +{ + wxPoint mouse = event.GetPosition(); + CalcUnscrolledPosition(mouse.x, mouse.y, &mouse.x, &mouse.y); + + //wxPrintf(wxT("bmpcombo mouse %d %d\n"), mouse.x, mouse.y); fflush(stdout); + + // Get selection from mouse pos, force valid + int sel = m_bmpCombo->GetItemSize().y != 0 ? mouse.y/m_bmpCombo->GetItemSize().y : -1; + if (sel < 0) + sel = 0; + else if (sel >= m_bmpCombo->GetCount()) + sel = m_bmpCombo->GetCount()-1; + + if (event.LeftDown()) + { + // quickly show user what they selected before hiding it + if (sel != m_last_selection) + { + wxClientDC dc(this); + PrepareDC(dc); + if (m_last_selection >= 0) + DrawSelection(m_last_selection, dc); + if (sel >= 0) + DrawSelection(sel, dc); + + m_last_selection = sel; + } + + m_bmpCombo->SetSelection(sel, true); + m_bmpCombo->HidePopup(); + return; + } +} + +void wxBitmapComboPopupChild::OnKeyDown( wxKeyEvent &event ) +{ + int sel = m_last_selection; + + switch (event.GetKeyCode()) + { + case WXK_ESCAPE : + { + m_bmpCombo->HidePopup(); + return; + } + case WXK_RETURN : + { + m_bmpCombo->SetSelection(sel, true); + m_bmpCombo->HidePopup(); + return; + } + case WXK_UP : sel--; break; + case WXK_DOWN : sel++; break; + default : event.Skip(true); return; + } + + if (sel < 0) + sel = 0; + if (sel >= m_bmpCombo->GetCount()) + sel = m_bmpCombo->GetCount()-1; + + if (sel != m_last_selection) + { + wxClientDC dc(this); + PrepareDC(dc); + if (m_last_selection>=0) + DrawSelection(m_last_selection, dc); + + if (sel>=0) + DrawSelection(sel, dc); + + m_last_selection = sel; + } +} + +void wxBitmapComboPopupChild::DrawSelection( int n, wxDC& dc ) +{ + dc.SetBrush(*wxTRANSPARENT_BRUSH); + dc.SetPen(*wxBLACK_PEN); + dc.SetLogicalFunction(wxINVERT); + int height = m_bmpCombo->GetItemSize().y; + dc.DrawRectangle(0, wxMax(0,height*n-1), GetClientSize().x, height+2); + dc.SetLogicalFunction(wxCOPY); +} + +// ========================================================================== +// wxBitmapComboLabel - the main "window" to the left of the dropdown button +// ========================================================================== +IMPLEMENT_DYNAMIC_CLASS( wxBitmapComboLabel, wxWindow ) + +BEGIN_EVENT_TABLE(wxBitmapComboLabel, wxWindow) + EVT_PAINT( wxBitmapComboLabel::OnPaint ) + EVT_CHAR( wxBitmapComboLabel::OnChar ) +END_EVENT_TABLE() + +void wxBitmapComboLabel::OnChar( wxKeyEvent &event ) +{ + switch (event.GetKeyCode()) + { + case WXK_UP : m_bmpCombo->SetNextSelection(false, true); break; + case WXK_DOWN : m_bmpCombo->SetNextSelection(true, true); break; + default : break; + } +} + +void wxBitmapComboLabel::OnPaint( wxPaintEvent &WXUNUSED(event) ) +{ + wxPaintDC dc(this); + dc.SetFont(m_bmpCombo->GetFont()); + //dc.SetBackground(*wxTheBrushList->FindOrCreateBrush(GetBackgroundColour(), wxSOLID)); + //dc.Clear(); + dc.SetBrush(*wxTheBrushList->FindOrCreateBrush(GetBackgroundColour(), wxSOLID)); + dc.SetPen(*wxTRANSPARENT_PEN); + dc.DrawRectangle(wxRect(wxPoint(0,0), GetClientSize())); + + const int sel = m_bmpCombo->GetSelection(); + if ((sel >= 0) && (sel < m_bmpCombo->GetCount())) + m_bmpCombo->DrawItem(dc, sel); +} + +// ============================================================================ +// wxBitmapComboBox +// ============================================================================ +IMPLEMENT_DYNAMIC_CLASS( wxBitmapComboBox, DropDownBase ) + +BEGIN_EVENT_TABLE(wxBitmapComboBox,DropDownBase) + EVT_SIZE( wxBitmapComboBox::OnSize ) +END_EVENT_TABLE() + +wxBitmapComboBox::~wxBitmapComboBox() +{ + while (m_bitmaps.GetCount() > 0u) + { + wxBitmap *bmp = (wxBitmap*)m_bitmaps.Item(0); + m_bitmaps.RemoveAt(0); + delete bmp; + } +} + +void wxBitmapComboBox::Init() +{ + m_labelWin = NULL; + m_frozen = true; + m_selection = 0; + m_win_border = 0; + m_label_style = wxBMPCOMBO_LEFT; +} + +bool wxBitmapComboBox::Create( wxWindow* parent, wxWindowID id, + const wxPoint& pos, const wxSize& size, + long style, const wxValidator& val, + const wxString& name) +{ + if (!DropDownBase::Create(parent,id,pos,size,wxNO_BORDER|wxCLIP_CHILDREN,val,name)) + return false; + + m_labelWin = new wxBitmapComboLabel(this); + m_win_border = m_labelWin->GetSize().x - m_labelWin->GetClientSize().x; + + SetBackgroundColour(*wxWHITE); + + m_frozen = false; + CalcLayout(); + + wxSize bestSize = DoGetBestSize(); + SetSize( wxSize(size.x < 0 ? bestSize.x : size.x, + size.y < 0 ? bestSize.y : size.y) ); + + return SetButtonStyle(style); +} + +#define BMPCOMBO_LABEL_MASK (wxBMPCOMBO_LEFT|wxBMPCOMBO_RIGHT) + +bool wxBitmapComboBox::SetButtonStyle(long style) +{ + style &= BMPCOMBO_LABEL_MASK; // strip off extras + + int n_styles = 0; + if (style & wxBMPCOMBO_LEFT) n_styles++; + if (style & wxBMPCOMBO_RIGHT) n_styles++; + wxCHECK_MSG(n_styles < 2, false, wxT("Only one wxBitmapComboBox label position allowed")); + if (n_styles < 1) style |= (m_label_style & BMPCOMBO_LABEL_MASK); + + m_label_style = style; + + m_labelWin->Refresh(true); + + return true; +} + +void wxBitmapComboBox::OnSize( wxSizeEvent& event ) +{ + event.Skip(); + + if (!m_labelWin || !m_dropdownButton) return; + + wxSize size = GetClientSize(); + //wxPrintf(wxT("ComboOnSize %d %d\n"), size.x, size.y); + int width = size.x - ((wxWindow*)m_dropdownButton)->GetSize().x; + m_labelWin->SetSize(0, 0, width, size.y); +} + +void wxBitmapComboBox::DoSetSize(int x, int y, int width, int height, int sizeFlags) +{ +/* + wxSize curSize( GetSize() ); + + if (width == -1) + width = curSize.GetWidth(); + if (height == -1) + height = curSize.GetHeight(); +*/ + DropDownBase::DoSetSize(x, y, width, height, sizeFlags); +/* + width = width - ((wxWindow*)m_dropdownButton)->GetSize().x; + m_labelWin->SetSize(0, 0, width, height); +*/ +} + +wxSize wxBitmapComboBox::DoGetBestSize() const +{ + if (GetCount() == 0) return DropDownBase::DoGetBestSize(); + + wxSize size(0,0); + size.x = m_labelSize.x + m_bitmapSize.x + (m_labelSize.x != 0 ? BORDER*2 : 0); + size.y = wxMax(m_labelSize.y, m_bitmapSize.y) + m_win_border; + + size.x += m_win_border + DROPDOWN_DROP_WIDTH; + if (size.y < DROPDOWN_DROP_HEIGHT) size.y = DROPDOWN_DROP_HEIGHT; + + return size; +} + +int wxBitmapComboBox::DoGetBestDropHeight(int max_height) +{ + int count = GetCount(); + if (count < 1) return -1; + + // add one for drawing selection rect + return wxMin(m_itemSize.y*count + m_win_border+1, max_height); +} + +bool wxBitmapComboBox::DoShowPopup() +{ + if (m_popupWin) + { + wxBitmapComboPopupChild *popChild = new wxBitmapComboPopupChild(m_popupWin, this); + m_popupWin->SetChild(popChild); + + if (popChild) + { + popChild->m_last_selection = GetSelection(); + int scr_pos = m_selection > 0 ? m_selection*m_itemSize.y-1 : 0; + int count = GetCount(); + popChild->SetScrollbars(1, 1, m_itemSize.x, m_itemSize.y*count+1, 0, scr_pos); + } + } + + return DropDownBase::DoShowPopup(); +} + +void wxBitmapComboBox::HidePopup() +{ + DropDownBase::HidePopup(); + + // FIXME - MSW destroys the sunken border of labelWin when in toolbar + // a refresh doesn't help +} + +void wxBitmapComboBox::Thaw() +{ + m_frozen = false; + CalcLayout(); + if (m_labelWin) + m_labelWin->Refresh(); +} + +void wxBitmapComboBox::CalcLayout() +{ + if (m_frozen) return; + + int height = 0, width = 0; + m_itemSize = m_labelSize = m_bitmapSize = wxSize(0,0); + int count = GetCount(); + wxBitmap bmp; + + for (int n=0; n m_bitmapSize.x) m_bitmapSize.x = width; + if (height > m_bitmapSize.y) m_bitmapSize.y = height; + } + if (!m_labels[n].IsEmpty()) + { + GetTextExtent(m_labels[n], &width, &height); + + if (width > m_labelSize.x) m_labelSize.x = width; + if (height > m_labelSize.y) m_labelSize.y = height; + } + } + + m_itemSize.x = m_labelSize.x + m_bitmapSize.x + m_win_border; + m_itemSize.y = wxMax(m_labelSize.y, m_bitmapSize.y) + m_win_border; +} + +void wxBitmapComboBox::CalcLabelBitmapPos(int n, const wxSize &area, wxPoint &labelPos, wxPoint &bitmapPos) const +{ + labelPos = bitmapPos = wxPoint(0,0); + + int bw = 0, bh = 0; + int lw = 0, lh = 0; + + if (GetBitmap(n).Ok()) + { + bw = GetBitmap(n).GetWidth(); + bh = GetBitmap(n).GetHeight(); + } + if (!m_labels[n].IsEmpty()) + { + GetTextExtent(m_labels[n], &lw, &lh); + } + + if (m_bitmapSize.x == 0) // There aren't any bitmaps, left align label + { + labelPos = wxPoint(BORDER, (area.y-lh)/2); + } + else if (m_labelSize.x == 0) // There aren't any labels, center bitmap + { + bitmapPos = wxPoint((area.x-bw)/2, (area.y-bh)/2); + } + else if ((m_label_style & wxBMPCOMBO_RIGHT) != 0) + { + labelPos = wxPoint(m_bitmapSize.x+BORDER, (area.y - lh)/2); + bitmapPos = wxPoint((m_bitmapSize.x-bw)/2, (area.y - bh)/2); + } + else // if ((m_label_style & wxBMPCOMBO_LEFT) != 0) + { + labelPos = wxPoint(BORDER, (area.y - lh)/2); + bitmapPos = wxPoint(BORDER*2 + m_labelSize.x + (area.x - BORDER*2 - m_labelSize.x - bw)/2, (area.y - bh)/2); + } +} + +void wxBitmapComboBox::DrawItem(wxDC &dc, int n) const +{ + wxSize itemSize(GetItemSize()); //((wxWindow*)GetLabelWindow())->GetClientSize().x, dy); + + wxPoint labelPos, bitmapPos; + CalcLabelBitmapPos(n, itemSize, labelPos, bitmapPos); + + if (GetBitmap(n).Ok()) + dc.DrawBitmap(GetBitmap(n), bitmapPos.x, bitmapPos.y, true); + if (!GetLabel(n).IsEmpty()) + dc.DrawText(GetLabel(n), labelPos.x, labelPos.y); +} + +void wxBitmapComboBox::Append(const wxString &label, const wxBitmap &bitmap, int count) +{ + for (int n=0; n=0) && (n 0u) + { + wxBitmap *bmp = (wxBitmap*)m_bitmaps.Item(0); + m_bitmaps.RemoveAt(0); + delete bmp; + } + CalcLayout(); +} + +void wxBitmapComboBox::Delete( int n, int count ) +{ + wxCHECK_RET((n>=0) && (count>0) && (n+count<=GetCount()), wxT("invalid index")); + + for (int i=0; i=0) && (n < GetCount()), wxEmptyString, wxT("invalid index")); + return m_labels[n]; +} + +wxBitmap wxBitmapComboBox::GetBitmap( int n ) const +{ + wxCHECK_MSG((n>=0) && (n < GetCount()), wxNullBitmap, wxT("invalid index")); + return *(wxBitmap *)m_bitmaps.Item(n); +} + +void wxBitmapComboBox::SetSelection( int n, bool send_event ) +{ + wxCHECK_RET((n>=0) && (n < GetCount()), wxT("invalid index")); + m_selection = n; + m_labelWin->Refresh(true); + + if (send_event) + { + wxCommandEvent event( wxEVT_COMMAND_COMBOBOX_SELECTED, GetId() ); + event.SetInt( m_selection ); + event.SetEventObject( this ); + GetEventHandler()->ProcessEvent( event ); + } +} + +void wxBitmapComboBox::SetNextSelection(bool foward, bool send_event) +{ + const int count = GetCount(); + if (count == 0) return; + + int sel = m_selection; + + if (foward) + { + if ((sel < 0) || (sel == count - 1)) + sel = 0; + else + sel++; + } + else + { + if (sel <= 0) + sel = count - 1; + else + sel--; + } + + SetSelection(sel, send_event); +} + +void wxBitmapComboBox::SetLabel(int n, const wxString &label) +{ + wxCHECK_RET( (n>=0) && (n < GetCount()), wxT("invalid index")); + m_labels[n] = label; + CalcLayout(); + + if (n == m_selection) m_labelWin->Refresh(false); +} + +void wxBitmapComboBox::SetBitmap(int n, const wxBitmap &bitmap) +{ + wxCHECK_RET((n>=0) && (n < GetCount()), wxT("invalid index")); + *((wxBitmap*)m_bitmaps.Item(n)) = bitmap; + CalcLayout(); + + if (n == m_selection) m_labelWin->Refresh(false); +} + +bool wxBitmapComboBox::SetBackgroundColour(const wxColour &colour) +{ + // not a failure for wx 2.5.x since InheritAttributes calls this + // from wxWindow::Create + if (m_labelWin) + { + m_labelWin->SetBackgroundColour(colour); + m_labelWin->Refresh(); + } + return DropDownBase::SetBackgroundColour(colour); +} diff --git a/3rdparty/wxthings/src/dropdown.cpp b/3rdparty/wxthings/src/dropdown.cpp new file mode 100644 index 0000000..6450cb8 --- /dev/null +++ b/3rdparty/wxthings/src/dropdown.cpp @@ -0,0 +1,405 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: DropDownBase +// Purpose: base class for a control like a combobox +// Author: John Labenski +// Modified by: +// Created: 11/05/2002 +// RCS-ID: +// Copyright: (c) John Labenki +// Licence: wxWidgets licence +///////////////////////////////////////////////////////////////////////////// + +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) + #pragma implementation "dropdown.h" +#endif + +// For compilers that support precompilation, includes "wx/wx.h". +#include "wx/wxprec.h" + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#ifndef WX_PRECOMP + #include "wx/control.h" + #include "wx/bitmap.h" +#endif // WX_PRECOMP + +#include "wx/timer.h" +#include "wx/things/dropdown.h" +#include "wx/things/toggle.h" +#include "wx/renderer.h" + +/* XPM */ +static const char *down_arrow_xpm_data[] = { +/* columns rows colors chars-per-pixel */ +"7 4 2 1", +" c None", +"a c Black", +/* pixels */ +"aaaaaaa", +" aaaaa ", +" aaa ", +" a "}; + +#define IDD_DROPDOWN_BUTTON 100 + +static wxBitmap s_dropdownBitmap; // all buttons share the same bitmap + +// ========================================================================== +// DropDownPopup +// ========================================================================== +#define USE_POPUP_TIMER 0 // FIXME after 2.5.4 we don't need either +#define USE_POPUP_IDLE 0 + +IMPLEMENT_DYNAMIC_CLASS( DropDownPopup, wxPopupTransientWindow ) + +BEGIN_EVENT_TABLE(DropDownPopup, wxPopupTransientWindow) + EVT_KEY_DOWN(DropDownPopup::OnKeyDown) + EVT_MOUSE_EVENTS(DropDownPopup::OnMouse) +#if USE_POPUP_TIMER + EVT_TIMER( wxID_ANY, DropDownPopup::OnTimer ) +#endif // USE_POPUP_TIMER +#if USE_POPUP_IDLE + EVT_IDLE( DropDownPopup::OnIdle ) // use Connect/Disconnect instead +#endif // USE_POPUP_IDLE +END_EVENT_TABLE() + +bool DropDownPopup::Create(DropDownBase *parent, int style) +{ + m_owner = parent; + return wxPopupTransientWindow::Create(parent, style); +} + +void DropDownPopup::Init() +{ + m_owner = NULL; + m_childWin = NULL; + m_timer = NULL; + m_popped_handler = false; +} + +DropDownPopup::~DropDownPopup() +{ + StopTimer(); +} + +void DropDownPopup::StartTimer() +{ +#if USE_POPUP_TIMER + if (!m_timer) + m_timer = new wxTimer(this, wxID_ANY); + + m_timer->Start(200, false); +#endif // USE_POPUP_TIMER +} + +void DropDownPopup::StopTimer() +{ + if (m_timer) + { + if (m_timer->IsRunning()) + m_timer->Stop(); + delete m_timer; + m_timer = NULL; + } +} + +void DropDownPopup::PushPopupHandler(wxWindow* child) +{ + if (child && m_handlerPopup && m_popped_handler) + { + m_popped_handler = false; + + if (child->GetEventHandler() != (wxEvtHandler*)m_handlerPopup) + child->PushEventHandler((wxEvtHandler*)m_handlerPopup); + if (!child->HasCapture()) + child->CaptureMouse(); + + child->SetFocus(); + } +} +void DropDownPopup::PopPopupHandler(wxWindow* child) +{ + if (child && m_handlerPopup && !m_popped_handler) + { + m_popped_handler = true; + + if (child->GetEventHandler() == (wxEvtHandler*)m_handlerPopup) + child->PopEventHandler(false); + if (child->HasCapture()) + child->ReleaseMouse(); + + child->SetFocus(); + } +} + +void DropDownPopup::OnTimer( wxTimerEvent &WXUNUSED(event) ) +{ + if (!IsShown()) return; + + m_mouse = ScreenToClient(wxGetMousePosition()); + + wxWindow *child = GetChild(); + if (!child) return; // nothing to do + + wxRect clientRect(GetClientRect()); + //wxPrintf(wxT("**DropDownPopup::OnTimer mouse %d %d -- %d %d %d\n"), m_mouse.x, m_mouse.y, m_popped_handler, m_child, m_handlerPopup); fflush(stdout); + // pop the event handler if inside the child window or + // restore the event handler if not in the child window + if (clientRect.Inside(m_mouse)) + PopPopupHandler(child); + else + PushPopupHandler(child); +} + +void DropDownPopup::OnIdle( wxIdleEvent& event ) +{ + if (IsShown()) + { + m_mouse = ScreenToClient(wxGetMousePosition()); + wxPrintf(wxT("OnIdle mouse %d %d\n"), m_mouse.x, m_mouse.y); + + wxWindow *child = GetChild(); + if (!child) return; // nothing to do + + wxRect clientRect(GetClientRect()); + //wxPrintf(wxT("**DropDownPopup::OnIdle mouse %d %d -- %d %d %d\n"), m_mouse.x, m_mouse.y, m_popped_handler, m_child, m_handlerPopup); fflush(stdout); + // pop the event handler if inside the child window or + // restore the event handler if not in the child window + if (clientRect.Inside(m_mouse)) + PopPopupHandler(child); + else + PushPopupHandler(child); + } + event.Skip(); +} + +void DropDownPopup::OnMouse( wxMouseEvent& event ) +{ + m_mouse = event.GetPosition(); + event.Skip(); +} + +void DropDownPopup::OnKeyDown( wxKeyEvent &event ) +{ + if (GetChild() && GetChild()->ProcessEvent(event)) + event.Skip(false); + else + event.Skip(true); +} + +void DropDownPopup::SetChild(wxWindow *win) +{ + m_childWin = win; +} + +void DropDownPopup::Popup(wxWindow *focus) +{ + wxPopupTransientWindow::Popup(focus); + +#if USE_POPUP_IDLE + Connect(wxID_ANY, wxEVT_IDLE, + (wxObjectEventFunction)(wxEventFunction)(wxIdleEventFunction) + &DropDownPopup::OnIdle, 0, this); +#endif //USE_POPUP_IDLE + +#if USE_POPUP_TIMER + // start the timer to track the mouse position + StartTimer(); +#endif //USE_POPUP_TIMER +} + +void DropDownPopup::Dismiss() +{ +#if USE_POPUP_IDLE + Disconnect(wxID_ANY, wxEVT_IDLE, + (wxObjectEventFunction)(wxEventFunction)(wxIdleEventFunction) + &DropDownPopup::OnIdle, 0, this); +#endif //USE_POPUP_IDLE + +#if USE_POPUP_TIMER + StopTimer(); +#endif //USE_POPUP_TIMER + + // restore the event handler if necessary for the base class Dismiss + wxWindow *child = GetChild(); + if (child) PushPopupHandler(child); + + m_popped_handler = false; + + wxPopupTransientWindow::Dismiss(); +} + +bool DropDownPopup::ProcessLeftDown( wxMouseEvent &event ) +{ + m_mouse = event.GetPosition(); + //wxPrintf(wxT("DropDownPopup::ProcessLeftDown %d %d\n"), m_mouse.x, m_mouse.y); fflush(stdout); + + if (m_popped_handler) return true; // shouldn't ever get here, but just in case + + StopTimer(); + + // don't let the click on the dropdown button actually press it + wxCustomButton *dropBut = m_owner->GetDropDownButton(); + if (dropBut) + { + wxPoint dropMousePt = dropBut->ScreenToClient(ClientToScreen(m_mouse)); + if (dropBut->HitTest(dropMousePt) == wxHT_WINDOW_INSIDE) + { + m_ignore_popup = true; + Dismiss(); + return true; + } + } + + if (GetClientRect().Inside(m_mouse)) + return false; + + Dismiss(); + return true; +} + +// ============================================================================ +// DropDownBase +// ============================================================================ + +IMPLEMENT_DYNAMIC_CLASS( DropDownBase, wxControl ) + +BEGIN_EVENT_TABLE(DropDownBase, wxControl) + EVT_BUTTON(IDD_DROPDOWN_BUTTON, DropDownBase::OnDropButton) + EVT_SIZE( DropDownBase::OnSize ) +END_EVENT_TABLE() + +DropDownBase::~DropDownBase() +{ +} + +void DropDownBase::Init() +{ + m_popupWin = NULL; + m_dropdownButton = NULL; +} + +bool DropDownBase::Create( wxWindow* parent, wxWindowID id, + const wxPoint& pos, const wxSize& size, + long style, const wxValidator& val, + const wxString& name) +{ + if (!wxControl::Create(parent,id,pos,size,wxNO_BORDER|wxCLIP_CHILDREN|style,val,name)) + return false; + + if (!s_dropdownBitmap.Ok()) + s_dropdownBitmap = wxBitmap(down_arrow_xpm_data); + + m_dropdownButton = new wxCustomButton(this, IDD_DROPDOWN_BUTTON, + s_dropdownBitmap, + wxDefaultPosition, + wxSize(DROPDOWN_DROP_WIDTH, wxDefaultCoord), + wxCUSTBUT_BUTTON); + + return true; +} + +void DropDownBase::OnSize( wxSizeEvent& event ) +{ + event.Skip(); +/* + if (!m_dropdownButton) return; + + wxSize size = GetClientSize(); + wxPrintf(wxT("DropDownBase %d %d\n"), size.x, size.y); + + wxSize dropSize = m_dropdownButton->GetSize(); + m_dropdownButton->SetSize(size.x-dropSize.x, 0, dropSize.x, size.y); +*/ +} + +void DropDownBase::DoSetSize(int x, int y, int width, int height, int sizeFlags) +{ + wxSize curSize( GetSize() ); + + if (width == -1) + width = curSize.GetWidth(); + if (height == -1) + height = curSize.GetHeight(); + + wxControl::DoSetSize(x, y, width, height, sizeFlags); + + wxSize dropSize = m_dropdownButton->GetSize(); + m_dropdownButton->SetSize(width-dropSize.x, 0, dropSize.x, height); +} + +wxSize DropDownBase::DoGetBestSize() const +{ + return wxSize(95, DROPDOWN_DROP_HEIGHT); +} + +bool DropDownBase::ShowPopup() +{ + int x = 0, y = GetSize().y; + ClientToScreen( &x, &y ); + + // control too low, can't show scrollbar, don't bother displaying + wxRect displayRect = wxGetClientDisplayRect(); + if (displayRect.GetBottom() - y < DROPDOWN_DROP_HEIGHT) return false; + + int width = GetSize().x; + int height = DoGetBestDropHeight(displayRect.GetBottom() - y); + if (height < 1) return false; + + m_popupWin = new DropDownPopup(this); + + m_popupWin->SetSize(x, y, width, height); + if (m_popupWin->GetChild()) + m_popupWin->GetChild()->SetSize(width, height); + + //wxPrintf(wxT("ShowPopup %d %d, %d %d -- %d\n"), width, height, m_popupWin->GetSize().x, m_popupWin->GetSize().y, m_popupWin->GetMinHeight()); + + return DoShowPopup(); +} + +bool DropDownBase::DoShowPopup() +{ + if (m_popupWin) + { + if (m_popupWin->GetChild()) + m_popupWin->GetChild()->SetSize(m_popupWin->GetClientSize()); + + m_popupWin->Popup(this); + return true; + } + + return false; +} + +void DropDownBase::HidePopup() +{ + if (m_popupWin) + { + m_popupWin->Dismiss(); + m_popupWin->Destroy(); + m_popupWin = NULL; + } + + m_dropdownButton->Refresh(true); // MSW help in toolbar +} + +bool DropDownBase::IsPopupShown() +{ + return m_popupWin && m_popupWin->IsShown(); +} + +void DropDownBase::OnDropButton( wxCommandEvent &WXUNUSED(event)) +{ + if (m_popupWin && m_popupWin->m_ignore_popup) + { + m_popupWin->m_ignore_popup = false; + return; + } + + if (IsPopupShown()) + HidePopup(); + else + ShowPopup(); +} diff --git a/3rdparty/wxthings/src/filebrws.cpp b/3rdparty/wxthings/src/filebrws.cpp new file mode 100644 index 0000000..f984875 --- /dev/null +++ b/3rdparty/wxthings/src/filebrws.cpp @@ -0,0 +1,2626 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: filebrws.cpp +// Author: John Labenski +// Created: 07/01/02 +// Copyright: John Labenski, 2002 +// License: wxWidgets +///////////////////////////////////////////////////////////////////////////// + +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) + #pragma implementation "filebrws.h" +#endif + +// For compilers that support precompilation, includes "wx/wx.h". +#include "wx/wxprec.h" + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#ifndef WX_PRECOMP + #include "wx/wx.h" +#endif // WX_PRECOMP + +#include "wx/mimetype.h" +#include "wx/tglbtn.h" // for EVT_TOGGLE_BUTTON +#include "wx/splitter.h" +#include "wx/imaglist.h" +#include "wx/confbase.h" +#include "wx/filename.h" +#include "wx/dir.h" +#include "wx/artprov.h" +#include "wx/image.h" // wxInitAllImageHandlers +#include "wx/renderer.h" +#include "wx/file.h" +#include "wx/txtstrm.h" +#include "wx/wfstream.h" + +#include "wx/filefn.h" // wxStat + +#include "wx/things/filebrws.h" + +#include "wx/arrimpl.cpp" +WX_DEFINE_OBJARRAY(wxArrayFileData); + +// #include "wx/stedit/stedit.h" + +// defined in src/generic/dirctrlg.cpp +extern size_t wxGetAvailableDrives(wxArrayString &paths, wxArrayString &names, wxArrayInt &icon_ids); + +#define BORDER 5 +#define MIN_SPLIT 8 + +//------------------------------------------------------------------------------ +// constants +//------------------------------------------------------------------------------ + +enum +{ + ID_wxFILEBROWSER_PATH_COMBO = 100, + ID_wxFILEBROWSER_PATH_BUTTON, + ID_wxFILEBROWSER_DIRCTRL, + ID_wxFILEBROWSER_LISTCTRL, + ID_wxFLEBROWSER_VIEW_TOOLBAR, + ID_wxFLEBROWSER_PATH_TOOLBAR, + + ID_wxFILEBROWSER_FILTER_COMBO, + + ID_wxFILEBROWSER_VIEW_BUTTON, + + ID_wxFILEBROWSER_VIEW_TREE, + ID_wxFILEBROWSER_VIEW_LIST, + ID_wxFILEBROWSER_VIEW_DETAILS, + ID_wxFILEBROWSER_VIEW_SMALL_ICON, + ID_wxFILEBROWSER_VIEW_LARGE_ICON, + ID_wxFILEBROWSER_VIEW_PREVIEW, + + ID_wxFILEBROWSER_GO_BACK, + ID_wxFILEBROWSER_GO_FORWARD, + ID_wxFILEBROWSER_GO_UP, + ID_wxFILEBROWSER_GO_HOME, + ID_wxFILEBROWSER_REFRESH, + + ID_wxFILEBROWSER_TREE_MENU_PROPERITES, + + ID_wxFILEBROWSER_LIST_MENU_VIEW_FILE, + ID_wxFILEBROWSER_LIST_MENU_OPEN_WITH, + ID_wxFILEBROWSER_LIST_MENU_NEW_FOLDER, + ID_wxFILEBROWSER_LIST_MENU_DELETE, + ID_wxFILEBROWSER_LIST_MENU_RENAME, + ID_wxFILEBROWSER_LIST_MENU_PROPERITES, + + ID_wxFILEBROWSER_LIST_MENU_OPTIONS, + ID_wxFILEBROWSER_SHOW_HIDDEN, + ID_wxFILEBROWSER_SHOW_FOLDERS, + ID_wxFILEBROWSER_SPLIT_VERTICAL, + + ID_wxFILEBROWSER_COMBOSETPATH, // for delayed setting path to get out of combo event for Gtk + ID_wxFILEBROWSER_COMBOSETFILTER +}; + +int wxFileBrowser::FBStyleToLCStyle(int s) const // wxFileBrowserStyles_Type to wxLC_XXX +{ + return + (s)&wxFILEBROWSER_TREE ? wxLC_REPORT : + (s)&wxFILEBROWSER_LIST ? wxLC_LIST : + (s)&wxFILEBROWSER_DETAILS ? wxLC_REPORT : + (s)&wxFILEBROWSER_SMALL_ICON ? wxLC_SMALL_ICON : + (s)&wxFILEBROWSER_LARGE_ICON ? wxLC_ICON : + (s)&wxFILEBROWSER_PREVIEW ? wxLC_ICON : wxLC_REPORT; +} +int wxFileBrowser::FBStyleToMenuID(int s) const // wxFileBrowserStyles_Type menu id +{ + return + (s)&wxFILEBROWSER_TREE ? ID_wxFILEBROWSER_VIEW_TREE : + (s)&wxFILEBROWSER_LIST ? ID_wxFILEBROWSER_VIEW_LIST : + (s)&wxFILEBROWSER_DETAILS ? ID_wxFILEBROWSER_VIEW_DETAILS : + (s)&wxFILEBROWSER_SMALL_ICON ? ID_wxFILEBROWSER_VIEW_SMALL_ICON : + (s)&wxFILEBROWSER_LARGE_ICON ? ID_wxFILEBROWSER_VIEW_LARGE_ICON : + (s)&wxFILEBROWSER_PREVIEW ? ID_wxFILEBROWSER_VIEW_PREVIEW : ID_wxFILEBROWSER_VIEW_DETAILS; +} +int wxFileBrowser::MenuIDToFBStyle(int id) const // menu id to wxFileBrowserStyles_Type +{ + return + (id)==ID_wxFILEBROWSER_VIEW_TREE ? wxFILEBROWSER_TREE : + (id)==ID_wxFILEBROWSER_VIEW_LIST ? wxFILEBROWSER_LIST : + (id)==ID_wxFILEBROWSER_VIEW_DETAILS ? wxFILEBROWSER_DETAILS : + (id)==ID_wxFILEBROWSER_VIEW_SMALL_ICON ? wxFILEBROWSER_SMALL_ICON : + (id)==ID_wxFILEBROWSER_VIEW_LARGE_ICON ? wxFILEBROWSER_LARGE_ICON : + (id)==ID_wxFILEBROWSER_VIEW_PREVIEW ? wxFILEBROWSER_PREVIEW : wxFILEBROWSER_DETAILS; +} + +//============================================================================ +// Button Icons +//============================================================================ +/* XPM */ +/* +static const char *view_xpm_data[] = { +// columns rows colors chars-per-pixel +"16 16 4 1", +"a c Black", +"b c #0000FF", +"c c #FFFFFF", +"d c #808080", +// pixels +"aaaaaaaaaaaaaaaa", +"abbbbbbbbbbbbbba", +"abbbbbbbbbbbbbba", +"aaaaaaaaaaaaaaaa", +"adddddddddddddda", +"acccccccccccccca", +"acbbccccbbccccca", +"acbbaaacbbaaacca", +"acccccccccccccca", +"acbbccccbbccccca", +"acbbaaacbbaaacca", +"acccccccccccccca", +"acbbccccbbccccca", +"acbbaaacbbaaacca", +"acccccccccccccca", +"aaaaaaaaaaaaaaaa"}; + +static const char *details_xpm_data[]={ +"16 15 4 1", +"# c None", +"a c #000000", +"b c #000080", +". c #c0c0c0", +"################", +"###aaaa#aaa#aaa#", +"################", +"bbbbbbbbbbbbbbbb", +"################", +"b##aaaa#aaa#aaa#", +"################", +"b##aaaa#aaa#aaa#", +"################", +"b##aaaa#aaa#aaa#", +"################", +"b##aaaa#aaa#aaa#", +"################", +"b##aaaa#aaa#aaa#", +"################"}; + +static const char *list_xpm_data[]={ +"16 15 4 1", +". c None", +"b c #000000", +"# c #000080", +"a c #ffffff", +"................", +"##......##......", +"#a#.bbb.#a#.bbb.", +"###.....###.....", +"................", +"................", +"##......##......", +"#a#.bbb.#a#.bbb.", +"###.....###.....", +"................", +"................", +"##......##......", +"#a#.bbb.#a#.bbb.", +"###.....###.....", +"................"}; + +static const char *large_icons_xpm_data[]={ +"16 15 4 1", +". c None", +"b c #000000", +"# c #000080", +"a c #ffffff", +"................", +"..###...........", +"..#a##..........", +"..#aa#..........", +"..#aa#..........", +"..####..........", +"................", +".bbbbbb...###...", +"..........#a##..", +"..........#aa#..", +"..........#aa#..", +"..........####..", +"................", +".........bbbbbb.", +"................"}; + +static const char *small_icons_xpm_data[]={ +"16 15 4 1", +". c None", +"b c #000000", +"# c #000080", +"a c #ffffff", +"................", +".##.............", +".#a#.bbb........", +".###............", +"................", +"................", +"........##......", +"........#a#.bbb.", +"........###.....", +"................", +"................", +"...##...........", +"...#a#.bbb......", +"...###..........", +"................"}; + +static const char *tree_xpm_data[]={ +"16 15 4 1", +". c None", +"# c #000000", +"a c #ffff00", +"b c #ffffff", +".#aa#...........", +".#a##...........", +"..#.............", +"..####aa#.......", +".....#a##.......", +"......#.........", +"......####b#b#..", +"......#..#b#b#..", +"......#.........", +"......####b#b#..", +"......#..#b#b#..", +"......#.........", +".......###b#b#..", +".........#b#b#..", +"................"}; + +static const char *preview_xpm_data[]={ +"16 15 14 1", +". c None", +"k c #000080", +"l c #0058c0", +"g c #0080ff", +"e c #585858", +"c c #808080", +"b c #89562f", +"f c #a0a0a0", +"h c #a86a3a", +"j c #bd7741", +"i c #d48549", +"# c #ff0000", +"a c #ffff00", +"d c #ffffff", +".......###......", +".a..a..bc.#.....", +"..aa...bdc......", +"..aa..cbddc.....", +".a..acdbdddc....", +"....cddbddddc...", +"....eddbddddf...", +"....eddbdddddf..", +".....edbddddff..", +"..g.hiijiiih.g..", +".gggghiiiihgggg.", +".kllllhhhhggllk.", +".llllllllllllll.", +".kklkllklklklkk.", +"................"}; + +static const char *hidden_xpm_data[] = { +"16 15 7 1", +" c None", +"a c Black", +"b c #EFBE1B", +"d c #F6F0B4", +"e c #FFEF7D", +"f c #FBD915", +"g c #8E8220", +" ", +" aaa ", +" addfa ", +" adffffa ", +" adfdadba ", +" affaaabga ", +" aedadbga ", +" adfbbbgga ", +" adfbaggga ", +" adfba aaa ", +" adfba ", +" adfbgga ", +" abbaga ", +" aa a ", +" "}; +*/ + +wxBitmap GetBitmapFromIconId(int imageId) +{ + return wxTheFileIconsTable->GetSmallImageList()->GetBitmap(imageId); +} + +// ---------------------------------------------------------------------------- +// CopyDir - copy a full directory recursively, returns # files copied +// code taken and modified from wxWidgets forum, by "Tyler" - public domain +// ---------------------------------------------------------------------------- + +int CopyDir(const wxString& fromDir, const wxString& toDir) +{ + wxString from(fromDir), to(toDir); + + if (!from.length() || !to.length()) return false; + + // append a slash if there is not one (for easier parsing) + // because who knows what people will pass to the function. + if (to[to.length()-1] != wxFILE_SEP_PATH) + to += wxFILE_SEP_PATH; + if (from[from.length()-1] != wxFILE_SEP_PATH) + from += wxFILE_SEP_PATH; + + // first make sure that the source dir exists + if(!wxDir::Exists(from)) + { + wxLogError(from + wxT(" does not exist. Can not copy directory.")); + return 0; + } + + if (!wxDir::Exists(to)) + wxMkdir(to); + + wxDir dir(from); + wxString filename; + int count = 0; + + if (dir.GetFirst(&filename)) + { + do { + if (wxDirExists(from + filename)) + { + wxMkdir(to + filename); + count += CopyDir(from + filename, to + filename); + } + else + { + wxCopyFile(from + filename, to + filename); + count++; + } + } + while (dir.GetNext(&filename)); + } + return count; +} + +//------------------------------------------------------------------------------ +// MultilineTextDialog - makes the wxTextEntryDialog multiline +//------------------------------------------------------------------------------ + +MultilineTextDialog::MultilineTextDialog(wxWindow *parent, + const wxString& message, + const wxString& caption, + const wxString& value, + long style, + const wxPoint& pos) + :wxTextEntryDialog(parent, message, caption, value, + style|wxTextEntryDialogStyle|wxTE_MULTILINE, pos) +{ + int height = m_textctrl->GetSize().y; + m_textctrl->SetSize(300, 100); + height = (100-height > 0) ? 100 - height : 0; + wxSize size(GetSize()); + SetSize(size.x, size.y+height); + Layout(); + //m_textctrl->SetEditable(false); +} + +//------------------------------------------------------------------------------ +// MultilineTextDialog +//------------------------------------------------------------------------------ +#define ID_OPENWITH_BROWSE 5 +#define ID_OPENWITH_TEXTCTRL 6 + +class OpenWithDialog : public wxDialog +{ +public: + OpenWithDialog(wxWindow* parent, wxWindowID winId, + const wxFileData& fileData, + const wxString& caption = wxT("Open With"), + const wxString& openCommand = wxEmptyString, + long style = wxDEFAULT_DIALOG_STYLE, + const wxPoint& pos = wxDefaultPosition) : wxDialog(), m_fileData(fileData) + { + m_textCtrl = NULL; + Create(parent, winId, fileData, caption, openCommand, style, pos); + } + bool Create(wxWindow* parent, wxWindowID winId, + const wxFileData& fileData, + const wxString& caption = wxT("Open With"), + const wxString& openCommand = wxEmptyString, + long style = wxDEFAULT_DIALOG_STYLE, + const wxPoint& pos = wxDefaultPosition); + + wxString GetOpenCommand() const { return m_command; } + +protected: + void OnButton(wxCommandEvent& event); + + wxString m_command; + wxFileData m_fileData; + wxTextCtrl *m_textCtrl; + DECLARE_EVENT_TABLE(); +}; + +BEGIN_EVENT_TABLE(OpenWithDialog, wxDialog) + EVT_BUTTON(-1, OpenWithDialog::OnButton) +END_EVENT_TABLE() + +bool OpenWithDialog::Create(wxWindow *parent, wxWindowID winId, + const wxFileData& fileData, + const wxString& caption, + const wxString& openCommand, + long style, const wxPoint& pos) +{ + if (!wxDialog::Create(parent, winId, caption, pos, wxDefaultSize, style)) + return false; + + m_fileData = fileData; + wxFileName fileName(fileData.GetFilePath()); + wxString openCmd = openCommand; + wxString description(wxT("Unknown file type")); + if (openCmd.IsEmpty()) + { + wxFileType *fileType = wxTheMimeTypesManager->GetFileTypeFromExtension(fileName.GetExt()); + if (fileType) + { + fileType->GetDescription(&description); + openCmd = fileType->GetOpenCommand(fileName.GetFullPath()); + } + } + + wxBoxSizer *rootSizer = new wxBoxSizer( wxVERTICAL ); + + wxStaticText *labelText = new wxStaticText( this, wxID_ANY, wxT("Choose the program to open the file"), wxDefaultPosition, wxDefaultSize, 0 ); + rootSizer->Add( labelText, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 ); + + wxFlexGridSizer *iconSizer = new wxFlexGridSizer( 2, 0, 0 ); + iconSizer->AddGrowableCol( 1 ); + + wxBitmap iconBitmap = GetBitmapFromIconId(m_fileData.GetImageId()); + wxStaticBitmap *staticBitmap = new wxStaticBitmap( this, wxID_ANY, iconBitmap, wxDefaultPosition, wxDefaultSize ); + iconSizer->Add( staticBitmap, 0, wxALIGN_CENTER|wxALL, 5 ); + + wxStaticText *nameText = new wxStaticText( this, wxID_ANY, fileName.GetFullPath(), wxDefaultPosition, wxDefaultSize, 0 ); + iconSizer->Add( nameText, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 ); + + iconSizer->AddSpacer(5); + + wxStaticText *descripText = new wxStaticText( this, wxID_ANY, description, wxDefaultPosition, wxDefaultSize, 0 ); + iconSizer->Add( descripText, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 ); + + rootSizer->Add( iconSizer, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 ); + + wxStaticBox *staticBox = new wxStaticBox( this, wxID_ANY, wxT("Program") ); + wxStaticBoxSizer *staticBoxSizer = new wxStaticBoxSizer( staticBox, wxVERTICAL ); + + m_textCtrl = new wxTextCtrl( this, ID_OPENWITH_TEXTCTRL, openCmd, wxDefaultPosition, wxSize(400,-1), 0 ); + staticBoxSizer->Add( m_textCtrl, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 ); + + wxFlexGridSizer *browseSizer = new wxFlexGridSizer( 2, 0, 0 ); + browseSizer->AddGrowableCol( 1 ); + + wxButton *browseButton = new wxButton( this, ID_OPENWITH_BROWSE, wxT("Browse..."), wxDefaultPosition, wxDefaultSize, 0 ); + browseSizer->Add( browseButton, 0, wxALIGN_CENTER|wxALL, 5 ); + + //wxCheckBox *item10 = new wxCheckBox( this, wxID_ANY, wxT("Always use selected program to open this kind of file"), wxDefaultPosition, wxDefaultSize, 0 ); + //browseSizer->Add( item10, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 ); + browseSizer->AddSpacer(5); + staticBoxSizer->Add( browseSizer, 0, wxGROW|wxALIGN_CENTER|wxALL, 0 ); + + rootSizer->Add( staticBoxSizer, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 ); + + wxBoxSizer *buttonSizer = new wxBoxSizer( wxHORIZONTAL ); + + wxButton *okButton = new wxButton( this, wxID_OK, wxT("OK"), wxDefaultPosition, wxDefaultSize, 0 ); + okButton->SetDefault(); + buttonSizer->Add( okButton, 0, wxALIGN_CENTER|wxALL, 5 ); + + wxButton *cancelButton = new wxButton( this, wxID_CANCEL, wxT("Cancel"), wxDefaultPosition, wxDefaultSize, 0 ); + buttonSizer->Add( cancelButton, 0, wxALIGN_CENTER|wxALL, 5 ); + + rootSizer->Add( buttonSizer, 0, wxALIGN_CENTER|wxALL, 5 ); + + SetMinSize(wxSize(400, 300)); + SetSizer( rootSizer ); + rootSizer->SetSizeHints( this ); + return true; +} + +void OpenWithDialog::OnButton(wxCommandEvent& event) +{ + switch (event.GetId()) + { + case wxID_CANCEL : m_command.Clear(); break; + case wxID_OK : m_command = m_textCtrl->GetValue(); break; + case ID_OPENWITH_BROWSE : + { + wxString filters(wxT("All files (*)|*")); +#ifdef __WXMSW__ + filters = wxT("Executable files (*.exe)|*.exe|Batch files (*.bat)|*.bat|All files (*)|*"); +#endif //__WXMSW__ + wxString startPath = m_fileData.GetFilePath(); + wxString fileName = wxFileSelector( wxT("Open With"), + wxPathOnly(startPath), + wxFileNameFromPath(startPath), + wxEmptyString, + filters, + wxOPEN|wxFILE_MUST_EXIST ); + if (!fileName.IsEmpty()) + { + fileName += wxT(" \"") + m_fileData.GetFilePath() + wxT("\""); + m_textCtrl->SetValue(fileName); + } + + break; + } + }; + + event.Skip(); // let wxDialog exit if OK or CANCEL +} + +//------------------------------------------------------------------------------ +// wxFilePropertiesDialog - a properties dialog for a file +//------------------------------------------------------------------------------ + +class wxFilePropertiesDialog : public wxDialog +{ +public: + wxFilePropertiesDialog(wxWindow* parent, wxWindowID winId, + const wxFileData& fileData, + const wxString& caption = wxT("Properties"), + long style = wxDEFAULT_DIALOG_STYLE, + const wxPoint& pos = wxDefaultPosition) : wxDialog(), m_fileData(fileData) + { + Create(parent, winId, fileData, caption, style, pos); + } + bool Create(wxWindow* parent, wxWindowID winId, + const wxFileData& fileData, + const wxString& caption = wxT("Properties"), + long style = wxDEFAULT_DIALOG_STYLE, + const wxPoint& pos = wxDefaultPosition); + +protected: + wxFileData m_fileData; + DECLARE_EVENT_TABLE(); +}; + +BEGIN_EVENT_TABLE(wxFilePropertiesDialog, wxDialog) +END_EVENT_TABLE() + +bool wxFilePropertiesDialog::Create(wxWindow *parent, wxWindowID winId, + const wxFileData& fileData, + const wxString& caption, + long style, const wxPoint& pos) +{ + m_fileData = fileData; + + if (!wxDialog::Create(parent, winId, caption, pos, wxDefaultSize, style)) + return false; + + wxString typeStr; + wxString locationStr = fileData.GetFilePath().BeforeLast(wxFILE_SEP_PATH); + wxString sizeStr; + wxString modifiedStr = fileData.GetModificationTime(); + wxString attrStr = fileData.GetEntry(wxFileData::FileList_Perm); + + if (fileData.IsDir()) + { + typeStr = sizeStr = _("Directory"); + } + else if (fileData.IsLink()) + { + typeStr = sizeStr = _("Link"); + } + else if (fileData.IsDrive()) + { + typeStr = sizeStr = _("Drive"); + } + else if (fileData.IsFile()) + { + wxString ext = wxFileName(fileData.GetFileName()).GetExt(); + wxString description; + wxFileType *ft = wxTheMimeTypesManager->GetFileTypeFromExtension(ext); + if (ft && ft->GetDescription(&description)) + typeStr = description; + + if (description.IsEmpty()) // gtk does this... + { + if (!ext.IsEmpty()) + typeStr = ext + wxT(" file"); + else + typeStr = wxT("Unknown file type"); + } + + sizeStr = fileData.GetEntry(wxFileData::FileList_Size) + wxT(" bytes"); + attrStr = fileData.GetEntry(wxFileData::FileList_Perm); + } + + wxPanel *panel = new wxPanel(this, wxID_ANY); + wxBoxSizer *rootSizer = new wxBoxSizer( wxVERTICAL ); + wxFlexGridSizer *fileNameSizer = new wxFlexGridSizer( 2, 0, 0 ); + + wxBitmap iconBitmap = GetBitmapFromIconId(fileData.GetImageId()); + wxStaticBitmap *iconStaticBitmap = new wxStaticBitmap( panel, wxID_ANY, iconBitmap, + wxDefaultPosition, wxDefaultSize ); + fileNameSizer->Add( iconStaticBitmap, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); + + wxStaticText *fileNameText = new wxStaticText( panel, wxID_ANY, fileData.GetFileName(), wxDefaultPosition, wxDefaultSize, 0 ); + fileNameSizer->Add( fileNameText, 0, wxALIGN_CENTRE|wxALL, 5 ); + rootSizer->Add( fileNameSizer, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 ); + + wxStaticBox *generalBox = new wxStaticBox( panel, wxID_ANY, wxT("General") ); + wxStaticBoxSizer *generalBoxSizer = new wxStaticBoxSizer( generalBox, wxVERTICAL ); + wxFlexGridSizer *generalSizer = new wxFlexGridSizer( 2, 0, 0 ); + + wxStaticText *typeNameText = new wxStaticText( panel, wxID_ANY, wxT("Type:"), wxDefaultPosition, wxDefaultSize, 0 ); + generalSizer->Add( typeNameText, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); + + wxStaticText *typeText = new wxStaticText( panel, wxID_ANY, typeStr, wxDefaultPosition, wxDefaultSize, 0 ); + generalSizer->Add( typeText, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); + + wxStaticText *locationNameText = new wxStaticText( panel, wxID_ANY, wxT("Location:"), wxDefaultPosition, wxDefaultSize, 0 ); + generalSizer->Add( locationNameText, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); + + wxStaticText *locationText = new wxStaticText( panel, wxID_ANY, locationStr, wxDefaultPosition, wxDefaultSize, 0 ); + generalSizer->Add( locationText, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); + + wxStaticText *sizeNameText = new wxStaticText( panel, wxID_ANY, wxT("Size:"), wxDefaultPosition, wxDefaultSize, 0 ); + generalSizer->Add( sizeNameText, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); + + wxStaticText *sizeText = new wxStaticText( panel, wxID_ANY, sizeStr, wxDefaultPosition, wxDefaultSize, 0 ); + generalSizer->Add( sizeText, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); + + wxStaticText *modifiedNameText = new wxStaticText( panel, wxID_ANY, wxT("Modified:"), wxDefaultPosition, wxDefaultSize, 0 ); + generalSizer->Add( modifiedNameText, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); + + wxStaticText *modifiedText = new wxStaticText( panel, wxID_ANY, modifiedStr, wxDefaultPosition, wxDefaultSize, 0 ); + generalSizer->Add( modifiedText, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); + + wxStaticText *attributesNameText = new wxStaticText( panel, wxID_ANY, wxT("Attributes:"), wxDefaultPosition, wxDefaultSize, 0 ); + generalSizer->Add( attributesNameText, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); + + wxStaticText *attributesText = new wxStaticText( panel, wxID_ANY, attrStr, wxDefaultPosition, wxDefaultSize, 0 ); + generalSizer->Add( attributesText, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); + + generalBoxSizer->Add( generalSizer, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5 ); + rootSizer->Add( generalBoxSizer, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 ); + + wxFlexGridSizer *buttonSizer = new wxFlexGridSizer( 2, 0, 0 ); + wxButton *okButton = new wxButton( panel, wxID_OK, wxT("OK"), wxDefaultPosition, wxDefaultSize, 0 ); + okButton->SetDefault(); + buttonSizer->Add( okButton, 0, wxALIGN_CENTRE|wxALL, 5 ); + rootSizer->Add( buttonSizer, 0, wxALIGN_CENTRE|wxALL, 5 ); + + panel->SetAutoLayout( true ); + panel->SetSizer( rootSizer ); + rootSizer->Fit( panel ); + rootSizer->SetSizeHints( this ); + + // have a min size so it really only varies for really long paths + wxSize size = GetSize(); + if (size.x < 400) + SetSize(wxSize(400, size.y)); + + return true; +} + +//------------------------------------------------------------------------------ +// wxFileBrowserEvent, events for the wxFileBrowser +//------------------------------------------------------------------------------ +DEFINE_EVENT_TYPE(wxEVT_FILEBROWSER_FILE_SELECTED) +DEFINE_EVENT_TYPE(wxEVT_FILEBROWSER_FILE_ACTIVATED) +DEFINE_EVENT_TYPE(wxEVT_FILEBROWSER_DIR_SELECTED) +DEFINE_EVENT_TYPE(wxEVT_FILEBROWSER_DIR_ACTIVATED) + +IMPLEMENT_ABSTRACT_CLASS(wxFileBrowserEvent, wxCommandEvent) + +wxFileBrowserEvent::wxFileBrowserEvent(wxEventType commandType, + wxFileBrowser *fileBrowser, wxWindowID win_id) + :wxCommandEvent(commandType, win_id) +{ + SetEventObject( fileBrowser ); +} + +//---------------------------------------------------------------------------- +// wxFileBrowser +//---------------------------------------------------------------------------- +IMPLEMENT_DYNAMIC_CLASS(wxFileBrowser, wxControl); + +BEGIN_EVENT_TABLE(wxFileBrowser, wxControl) + // View toolbar items + EVT_MENU(ID_wxFILEBROWSER_VIEW_TREE, wxFileBrowser::OnViewButtons) + EVT_MENU(ID_wxFILEBROWSER_VIEW_LIST, wxFileBrowser::OnViewButtons) + EVT_MENU(ID_wxFILEBROWSER_VIEW_DETAILS, wxFileBrowser::OnViewButtons) + EVT_MENU(ID_wxFILEBROWSER_VIEW_SMALL_ICON, wxFileBrowser::OnViewButtons) + EVT_MENU(ID_wxFILEBROWSER_VIEW_LARGE_ICON, wxFileBrowser::OnViewButtons) + EVT_MENU(ID_wxFILEBROWSER_VIEW_PREVIEW, wxFileBrowser::OnViewButtons) + + EVT_BUTTON(ID_wxFILEBROWSER_VIEW_BUTTON, wxFileBrowser::OnViewButtons) + //EVT_MENU(ID_wxFILEBROWSER_VIEW_BUTTON, wxFileBrowser::OnViewButtons) + + // menu items for the right click treectrl menu + EVT_MENU(ID_wxFILEBROWSER_TREE_MENU_PROPERITES, wxFileBrowser::OnTreeMenu) + + // menu items for the right click listctrl menu + EVT_MENU(ID_wxFILEBROWSER_GO_BACK, wxFileBrowser::OnListMenu) + EVT_MENU(ID_wxFILEBROWSER_GO_FORWARD, wxFileBrowser::OnListMenu) + EVT_MENU(ID_wxFILEBROWSER_GO_UP, wxFileBrowser::OnListMenu) + EVT_MENU(ID_wxFILEBROWSER_GO_HOME, wxFileBrowser::OnListMenu) + EVT_MENU(ID_wxFILEBROWSER_REFRESH, wxFileBrowser::OnListMenu) + + EVT_MENU(wxID_OPEN, wxFileBrowser::OnListMenu) + EVT_MENU(ID_wxFILEBROWSER_LIST_MENU_VIEW_FILE, wxFileBrowser::OnListMenu) + EVT_MENU(ID_wxFILEBROWSER_LIST_MENU_OPEN_WITH, wxFileBrowser::OnListMenu) + EVT_MENU(ID_wxFILEBROWSER_LIST_MENU_NEW_FOLDER, wxFileBrowser::OnListMenu) + EVT_MENU(wxID_CUT, wxFileBrowser::OnListMenu) + EVT_MENU(wxID_COPY, wxFileBrowser::OnListMenu) + EVT_MENU(wxID_PASTE, wxFileBrowser::OnListMenu) + EVT_MENU(ID_wxFILEBROWSER_LIST_MENU_DELETE, wxFileBrowser::OnListMenu) + EVT_MENU(ID_wxFILEBROWSER_LIST_MENU_RENAME, wxFileBrowser::OnListMenu) + EVT_MENU(ID_wxFILEBROWSER_LIST_MENU_PROPERITES, wxFileBrowser::OnListMenu) + EVT_MENU(ID_wxFILEBROWSER_SHOW_HIDDEN, wxFileBrowser::OnListMenu) + EVT_MENU(ID_wxFILEBROWSER_SHOW_FOLDERS, wxFileBrowser::OnListMenu) + EVT_MENU(ID_wxFILEBROWSER_SPLIT_VERTICAL, wxFileBrowser::OnListMenu) + + // combobox events + EVT_COMBOBOX (ID_wxFILEBROWSER_FILTER_COMBO, wxFileBrowser::OnFilterCombo) + EVT_TEXT_ENTER(ID_wxFILEBROWSER_FILTER_COMBO, wxFileBrowser::OnFilterComboEnter) + EVT_COMBOBOX (ID_wxFILEBROWSER_PATH_COMBO, wxFileBrowser::OnPathCombo) + EVT_TEXT_ENTER(ID_wxFILEBROWSER_PATH_COMBO, wxFileBrowser::OnPathComboEnter) + EVT_BUTTON (ID_wxFILEBROWSER_PATH_BUTTON, wxFileBrowser::OnPathComboEnter) + // fake internal events to get around GTK combo event loops + EVT_MENU (ID_wxFILEBROWSER_COMBOSETPATH, wxFileBrowser::OnSetPath) + EVT_MENU (ID_wxFILEBROWSER_COMBOSETFILTER, wxFileBrowser::OnSetFilter) + + // TreeCtrl + EVT_TREE_SEL_CHANGED (wxID_ANY, wxFileBrowser::OnTreeItemSelection) + EVT_TREE_ITEM_ACTIVATED (wxID_ANY, wxFileBrowser::OnTreeItemActivation) + EVT_TREE_ITEM_RIGHT_CLICK(wxID_ANY, wxFileBrowser::OnTreeRightClick) + + // ListCtrl + EVT_LIST_ITEM_ACTIVATED (wxID_ANY, wxFileBrowser::OnListItemActivated) + EVT_LIST_ITEM_SELECTED (wxID_ANY, wxFileBrowser::OnListItemSelected) + EVT_LIST_ITEM_RIGHT_CLICK (wxID_ANY, wxFileBrowser::OnListRightClick) + + EVT_SIZE (wxFileBrowser::OnSize) + //EVT_IDLE (wxFileBrowser::OnIdle) +END_EVENT_TABLE() + +void wxFileBrowser::Init() +{ + m_ignore_tree_event = true; // turned off after Create + m_init_filters = 0; + m_browser_style = wxFILEBROWSER_LIST; + + m_path_history_index = 0; + + m_viewToolBar = NULL; + m_pathToolBar = NULL; + + m_viewButton = NULL; + m_filterCombo = NULL; + m_pathCombo = NULL; + m_splitterWin = NULL; + m_dirCtrl = NULL; + m_fileCtrl = NULL; + m_listMenu = NULL; + m_treeMenu = NULL; + m_viewMenu = NULL; + + m_filterComboSelection = 0; + m_pathComboSelection = 0; + + m_show_hidden = false; +} + +bool wxFileBrowser::Create( wxWindow *parent, const wxWindowID id, + const wxString& dir, + const wxPoint& pos, const wxSize& size, long style, + const wxString& filter, int defaultFilter, + const wxString& name) +{ + m_ignore_tree_event = true; + + if (!wxControl::Create(parent, id, pos, size, style, wxDefaultValidator, name)) + return false; + + // disable the log in case image handlers have already been initialized + { + wxLogNull logNull; + wxInitAllImageHandlers(); // need this for the icons + } + + // Find what directory to start with + if (!GetPathFromFilePath(dir, m_path)) + m_path = wxGetCwd(); + + // ------------------------------------------------------------------------ + // Create the popup menu for the wxFileCtrl + m_listMenu = new wxMenu; + m_listMenu->Append(wxID_OPEN, wxT("&Open")); + m_listMenu->Append(ID_wxFILEBROWSER_LIST_MENU_VIEW_FILE, wxT("&View file...")); + m_listMenu->Append(ID_wxFILEBROWSER_LIST_MENU_OPEN_WITH, wxT("Open &with...")); + m_listMenu->AppendSeparator(); + m_listMenu->Append(ID_wxFILEBROWSER_LIST_MENU_NEW_FOLDER, wxT("&New folder")); + m_listMenu->AppendSeparator(); + m_listMenu->Append(wxID_CUT, wxT("Cu&t")); + m_listMenu->Append(wxID_COPY, wxT("&Copy")); + m_listMenu->Append(wxID_PASTE, wxT("&Paste")); + m_listMenu->AppendSeparator(); + m_listMenu->Append(ID_wxFILEBROWSER_LIST_MENU_DELETE, wxT("&Delete...")); + m_listMenu->Append(ID_wxFILEBROWSER_LIST_MENU_RENAME, wxT("Rena&me")); + m_listMenu->AppendSeparator(); + m_listMenu->Append(ID_wxFILEBROWSER_LIST_MENU_PROPERITES, wxT("P&roperties")); + m_listMenu->AppendSeparator(); + + m_treeMenu = new wxMenu; + m_treeMenu->Append(ID_wxFILEBROWSER_TREE_MENU_PROPERITES, wxT("P&roperties")); + + wxMenu *optionsMenu = new wxMenu(wxEmptyString); + optionsMenu->AppendCheckItem(ID_wxFILEBROWSER_SHOW_HIDDEN, wxT("Show Hidden Files")); + optionsMenu->AppendCheckItem(ID_wxFILEBROWSER_SHOW_FOLDERS, wxT("Show Folders")); + optionsMenu->AppendCheckItem(ID_wxFILEBROWSER_SPLIT_VERTICAL, wxT("Split Vertically")); + m_listMenu->Append(ID_wxFILEBROWSER_LIST_MENU_OPTIONS, wxT("Optio&ns"), optionsMenu); + + // ------------------------------------------------------------------------ + // Create the menu for the view button menu + m_viewMenu = new wxMenu; + m_viewMenu->AppendRadioItem(ID_wxFILEBROWSER_VIEW_TREE, wxT("Tree view")); + m_viewMenu->AppendRadioItem(ID_wxFILEBROWSER_VIEW_LIST, wxT("List view")); + m_viewMenu->AppendRadioItem(ID_wxFILEBROWSER_VIEW_DETAILS, wxT("Details view")); + m_viewMenu->AppendRadioItem(ID_wxFILEBROWSER_VIEW_SMALL_ICON, wxT("Small icon view")); + //m_viewMenu->AppendRadioItem(ID_wxFILEBROWSER_VIEW_LARGE_ICON, wxT("Large icon view")); + //m_viewMenu->AppendRadioItem(ID_wxFILEBROWSER_VIEW_PREVIEW, wxT("Image preview view")); + + // ------------------------------------------------------------------------ + // Create the first Toolbar + m_viewToolBar = new wxToolBar(this, ID_wxFLEBROWSER_VIEW_TOOLBAR); + + m_viewToolBar->AddTool(ID_wxFILEBROWSER_GO_BACK, wxT("Back"), + wxArtProvider::GetBitmap(wxART_GO_BACK), wxArtProvider::GetBitmap(wxART_GO_BACK, wxART_TOOLBAR), + wxITEM_NORMAL, wxT("Go back one directory"), wxT("Go back one directory")); + m_viewToolBar->AddTool(ID_wxFILEBROWSER_GO_FORWARD, wxT("Forward"), + wxArtProvider::GetBitmap(wxART_GO_FORWARD), wxArtProvider::GetBitmap(wxART_GO_FORWARD, wxART_TOOLBAR), + wxITEM_NORMAL, wxT("Go forward one directory"), wxT("Go forward one directory")); + m_viewToolBar->AddTool(ID_wxFILEBROWSER_GO_UP, wxT("Up"), + wxArtProvider::GetBitmap(wxART_GO_DIR_UP), wxArtProvider::GetBitmap(wxART_GO_DIR_UP, wxART_TOOLBAR), + wxITEM_NORMAL, wxT("Go up one directory"), wxT("Go up one directory")); + m_viewToolBar->AddTool(ID_wxFILEBROWSER_GO_HOME, wxT("Home"), + wxArtProvider::GetBitmap(wxART_GO_HOME), wxArtProvider::GetBitmap(wxART_GO_HOME, wxART_TOOLBAR), + wxITEM_NORMAL, wxT("Go to your home directory"), wxT("Go to your home directory")); + m_viewToolBar->AddSeparator(); + + m_viewToolBar->AddCheckTool(ID_wxFILEBROWSER_SHOW_FOLDERS, wxT("Folders"), + wxArtProvider::GetBitmap(wxART_HELP_SIDE_PANEL), wxArtProvider::GetBitmap(wxART_HELP_SIDE_PANEL, wxART_TOOLBAR), + wxT("Show folder view"), wxT("Show folder view")); + m_viewToolBar->AddSeparator(); + + // MenuButton METHOD ---------------- +// m_viewButton = new wxMenuButton(m_viewToolBar, wxID_ANY, +// //wxBitmap(view_xpm_data), +// wxArtProvider::GetBitmap(wxART_LIST_VIEW), +// wxDefaultPosition, wxSize(32,22)); +// m_viewButton->AssignMenu(viewMenu, false); +// m_viewButton->SetToolTip(wxT("Change view mode")); +// m_viewToolBar->AddControl(m_viewButton); + + // CREATE BITMAP METHOD ---------------- + wxBitmap viewBmp(wxArtProvider::GetBitmap(wxART_LIST_VIEW)); //, wxART_TOOLBAR)); + wxSize toolBmpSize = m_viewToolBar->GetToolSize(); + wxSize toolSize = m_viewToolBar->GetToolSize(); + { + wxImage viewImg(viewBmp.ConvertToImage()); + int w = viewImg.GetWidth(), h = viewImg.GetHeight(); + int s = 10; + unsigned char r = 103, g = 200, b = 101; + viewImg.GetOrFindMaskColour(&r, &g, &b); + viewImg.Resize(wxSize(w + s, h), wxPoint(0,0), r, g, b); + viewImg.SetMask(false); + viewBmp = wxBitmap(viewImg); + wxMemoryDC memDC; + memDC.SelectObject(viewBmp); + wxRendererNative& renderer = wxRendererNative::Get(); + renderer.DrawComboBoxDropButton(this, memDC, wxRect(w, 0, s, toolBmpSize.y), wxCONTROL_PRESSED); + //renderer.DrawDropArrow(this, memDC, wxRect(w, 0, s, toolBmpSize.y)); + + memDC.SelectObject(wxNullBitmap); + viewImg = viewBmp.ConvertToImage(); + viewImg.SetMaskColour(r, g, b); + viewBmp = wxBitmap(viewImg); + } + + m_viewButton = new wxBitmapButton(m_viewToolBar, ID_wxFILEBROWSER_VIEW_BUTTON, + //wxBitmap(view_xpm_data), + viewBmp, + wxDefaultPosition, + wxSize(toolSize.GetWidth()+10, toolSize.GetHeight())); + m_viewButton->SetToolTip(wxT("Change view mode")); + m_viewToolBar->AddControl(m_viewButton); + + //m_viewToolBar->AddTool(ID_wxFILEBROWSER_VIEW_BUTTON, wxT("Views"), + // viewBmp, viewBmp, + // wxITEM_NORMAL, wxT("Change view mode"), wxT("Change view mode")); + + m_filterCombo = new wxComboBox(m_viewToolBar, ID_wxFILEBROWSER_FILTER_COMBO, + wxT("Any file (*.*)"), // sets init size + wxDefaultPosition, wxSize(40, wxDefaultCoord), + 0, NULL, + wxCB_DROPDOWN|wxTE_PROCESS_ENTER); + m_filterCombo->SetToolTip(wxT("Filter files using wildcards (file1?2.a*)")); + SetFilters(filter, defaultFilter); + m_viewToolBar->AddSeparator(); + m_viewToolBar->AddControl(m_filterCombo); + + m_viewToolBar->Realize(); + + // ------------------------------------------------------------------------ + // Create second Toolbar + m_pathToolBar = new wxToolBar(this, ID_wxFLEBROWSER_PATH_TOOLBAR); + + m_pathCombo = new wxComboBox(m_pathToolBar, ID_wxFILEBROWSER_PATH_COMBO, + wxT("C: I'm a pretty long dir name so I'm sized big"), + wxDefaultPosition, wxSize(40, wxDefaultCoord), + 0, NULL, + wxCB_DROPDOWN|wxTE_PROCESS_ENTER); + m_pathCombo->SetToolTip(wxT("Enter path")); + m_pathCombo->Append(GetPath(true), (void*)NULL); + m_pathCombo->SetSelection(0); + m_pathComboSelection = 0; + m_pathToolBar->AddControl(m_pathCombo); + + m_pathToolBar->AddTool(ID_wxFILEBROWSER_PATH_BUTTON, wxT("Open"), + wxArtProvider::GetBitmap(wxART_FILE_OPEN), wxArtProvider::GetBitmap(wxART_FILE_OPEN, wxART_TOOLBAR), + wxITEM_NORMAL, wxT("Go to path or open file"), wxT("Go to path or open file")); + + m_pathToolBar->Realize(); + + // ------------------------------------------------------------------------ + // Create the splitter window and children + int dirCtrlStyle = style & wxFILEBROWSER_TREE ? wxDIRCTRL_DIR_ONLY : 0; + m_splitterWin = new wxSplitterWindow(this, wxID_ANY, + wxDefaultPosition, wxDefaultSize, + wxSP_BORDER|wxSP_3D|wxCLIP_CHILDREN); + m_splitterWin->SetMinimumPaneSize(MIN_SPLIT); // don't let it unsplit + m_splitterWin->SetSashGravity(0.3); // bottom grows more than top + + m_dirCtrl = new wxGenericDirCtrl(m_splitterWin, ID_wxFILEBROWSER_DIRCTRL, + m_path, wxDefaultPosition, wxSize(50,50), + dirCtrlStyle|wxNO_BORDER, wxEmptyString, 0); + + m_dirCtrl->Show(true); + + m_fileCtrl = new wxFileCtrl(m_splitterWin, wxID_ANY, GetWild(), false, + wxDefaultPosition, wxSize(50,50), + wxNO_BORDER|wxLC_SINGLE_SEL|FBStyleToLCStyle(style)); + m_fileCtrl->Show(true); + m_fileCtrl->GoToDir(m_path); + + // ------------------------------------------------------------------------ + + SetBrowserStyle( style ); + m_splitterWin->Show(true); + + AddPathHistory(GetPath(true)); + + UpdateItems(); + m_ignore_tree_event = false; + return true; +} + +wxFileBrowser::~wxFileBrowser() +{ + // delete all the attached data + int n, count = m_filterCombo->GetCount(); + for ( n = 0; n < count; n++ ) + { + wxString *data = (wxString*)m_filterCombo->GetClientData(n); + delete data; + } + + delete m_listMenu; + delete m_treeMenu; + delete m_viewMenu; +} + +void wxFileBrowser::OnSize( wxSizeEvent &event ) +{ + //wxPrintf(wxT("OnSize GetSize(%d %d) Event(%d %d)\n"), GetSize().x, GetSize().y, event.GetSize().x, event.GetSize().y); fflush(stdout); + event.Skip(); + DoSize(); +} + +// The code in src/gtk/window.cpp wxWindow::DoSetSize fails since +// m_parent->m_wxwindow == NULL so nothing is done +#ifdef __WXGTK__ + #include + void GtkToolbarResizeWindow(wxWindow* win, const wxSize& size) + { + // don't take the x,y values, they're wrong because toolbar sets them + GtkWidget *widget = GTK_WIDGET(win->m_widget); + //gtk_widget_set_usize(widget, size.x, size.y); this is deprecated use below + gtk_widget_set_size_request(widget, size.x, size.y); + if (GTK_WIDGET_VISIBLE(widget)) + gtk_widget_queue_resize(widget); + } +#endif //__WXGTK__ + +void wxFileBrowser::DoSize() +{ + if (!m_splitterWin) + return; + + wxSize clientSize(GetClientSize()); + int h = 0; + + if (m_viewToolBar && m_filterCombo) + { + wxSize tbSize(m_viewToolBar->GetSize()); + m_viewToolBar->SetSize(0, h, clientSize.x, tbSize.y); + wxSize toolSize(m_viewToolBar->GetToolSize()); + wxSize marginSize(m_viewToolBar->GetMargins()); + wxRect comboRect(m_filterCombo->GetRect()); + wxSize comboSize(clientSize.x - comboRect.x - marginSize.x, comboRect.height); + +#ifdef __WXGTK__ + int sep = m_viewToolBar->GetToolSeparation(); + comboSize.x = clientSize.x - 6*toolSize.x - 6*sep; + GtkToolbarResizeWindow(m_filterCombo, comboSize); +#else + m_filterCombo->SetSize(comboSize); + m_viewToolBar->Realize(); +#endif + + //wxPrintf(wxT("FilterCombo %d %d - %d\n"), comboSize.x, comboSize.y, m_filterCombo->GetSize().y); + h += tbSize.y; + } + + if (m_pathToolBar && m_pathCombo) + { + wxSize tbSize(m_pathToolBar->GetSize()); + m_pathToolBar->SetSize(0, h, clientSize.x, tbSize.y); + wxSize toolSize(m_pathToolBar->GetToolSize()); + wxSize marginSize(m_pathToolBar->GetMargins()); + wxRect comboRect(m_pathCombo->GetRect()); + wxSize comboSize(clientSize.x - comboRect.x - toolSize.x - marginSize.x, comboRect.height); + +#ifdef __WXGTK__ + //int sep = m_viewToolBar->GetToolSeparation(); + comboSize.x = clientSize.x - toolSize.x - 2; + GtkToolbarResizeWindow(m_pathCombo, comboSize); +#else + //wxPrintf(wxT("Do Size %d %d - %d %d %d\n"), clientSize.x, clientSize.y, clientSize.x, comboRect.width, clientSize.x - comboRect.x - toolSize.x - marginSize.x); + m_pathCombo->SetSize(comboSize); + m_pathToolBar->Realize(); +#endif + + //wxPrintf(wxT("PathCombo %d %d - %d\n"), clientSize.x - comboRect.x - toolSize.x - marginSize.x, comboRect.height, m_pathCombo->GetSize().y); + h += tbSize.y; + } + + m_splitterWin->SetSize(wxRect(0, h, clientSize.x, clientSize.y - h)); + + // Make sure the splitter window doesn't unsplit when the window size changes, + // even though we already told it not to. + // FIXME : This should be fixed in the splitter window + if (m_splitterWin && m_splitterWin->IsSplit()) + { + int splitter_pos = m_splitterWin->GetSashPosition(); + int splitter_size = (m_splitterWin->GetSplitMode() == wxSPLIT_VERTICAL) ? + m_splitterWin->GetSize().GetWidth() : m_splitterWin->GetSize().GetHeight(); + int min_size = m_splitterWin->GetMinimumPaneSize(); + + if (splitter_pos < min_size) + m_splitterWin->SetSashPosition(wxMin(splitter_size, min_size)); + else if (splitter_pos > splitter_size - min_size) + m_splitterWin->SetSashPosition(wxMax(0, splitter_size - min_size)); + } +} + +wxSize wxFileBrowser::DoGetBestSize() const +{ + return wxSize(200,400); + //return wxControl::DoGetBestSize(); +} + +void wxFileBrowser::OnIdle(wxIdleEvent &event) +{ + event.Skip(); + + // Ancient code to display a preview of images + +/* + if ((m_browser_style & wxFILEBROWSER_PREVIEW) && + (int(m_previewFiles.GetCount()) > 0)) + { + int i, count = m_previewFiles.GetCount(); + int flags = 0; + int prev_index = 0; + int min_index = m_fileCtrl->HitTest(wxPoint(20,150), flags); + if (min_index < 0) min_index = 0; + int max_index = min_index + (m_fileCtrl->GetClientSize().x*m_fileCtrl->GetClientSize().y)/3000; + + for (i=0; im_list_index >= min_index) || + (m_previewFiles[i]->m_list_index <= max_index)) + { + prev_index = i; + break; + } + } + + wxFileBrowserFile *browserFile = m_previewFiles[prev_index]; + + int icon_index = browserFile->m_icon_index; + + wxString path = GetPath(true); + + wxImage img(path + browserFile->m_name); + if (img.Ok()) + { + int w = img.GetWidth(), h = img.GetHeight(); + browserFile->m_image_size.Printf(wxT("(%dx%d)"), w, h); + + int icon_w, icon_h; + m_normalImageList->GetSize(0, icon_w, icon_h); + + if (w > icon_w || h > icon_h) + { + if (w > h) + { + h = (h*icon_w)/w; + if (h == 0) h = 1; + w = icon_w; + } + else + { + w = (w*icon_h)/h; + if (w == 0) w = 1; + h = icon_h; + } + + img.Rescale(w, h); + } + + wxImage img2(icon_w, icon_h); + unsigned char r=5, g=5, b=5; + if (img.HasMask()) + { + r = img.GetMaskRed(); + g = img.GetMaskGreen(); + b = img.GetMaskBlue(); + } + else + { + img.FindFirstUnusedColour(&r, &g, &b); + img.SetMask(true); + img.SetMaskColour(r, g, b); + } + unsigned char *data = img2.GetData(); + long icon_size = icon_w*icon_h; + for (i=0; iReplace(icon_index, icon); + + if (browserFile->m_list_index >= 0) // maybe still filling the listCtrl + { + m_fileCtrl->SetItemImage(browserFile->m_list_index, + icon_index, icon_index); + } + } + m_previewFiles.RemoveAt(prev_index); + + if (count > 1) event.RequestMore(); + } + */ +} + +#define FILEBRWS_LIST_VIEW_MASK (wxFILEBROWSER_DETAILS|wxFILEBROWSER_LIST|wxFILEBROWSER_SMALL_ICON|wxFILEBROWSER_LARGE_ICON|wxFILEBROWSER_PREVIEW) +#define FILEBRWS_VIEW_MASK (FILEBRWS_LIST_VIEW_MASK|wxFILEBROWSER_TREE) + +void wxFileBrowser::SetBrowserStyle( long style ) +{ + style &= wxFILEBROWSER_STYLE_MASK; + + int n_styles = 0; + if (style & wxFILEBROWSER_LIST ) n_styles++; + if (style & wxFILEBROWSER_DETAILS ) n_styles++; + if (style & wxFILEBROWSER_LARGE_ICON) n_styles++; + if (style & wxFILEBROWSER_SMALL_ICON) n_styles++; + if (style & wxFILEBROWSER_PREVIEW ) n_styles++; + if (style & wxFILEBROWSER_TREE ) n_styles++; + wxCHECK_RET(n_styles == 1, wxT("Only one wxFileBrowser list style allowed")); + + long last_style = m_browser_style; + m_browser_style = style; // swap to new style immediately + + // Only the tree view will be shown + if (!HasBrowserStyle(FILEBRWS_LIST_VIEW_MASK)) + { + m_fileCtrl->Show(false); + + if (m_splitterWin->IsSplit()) + m_splitterWin->Unsplit(m_fileCtrl); + else // if (m_splitterWin->GetWindow1() != m_dirCtrl) + m_splitterWin->Initialize(m_dirCtrl); + + // show and reload the files for the dirctrl using the filter + if ((m_dirCtrl->GetWindowStyleFlag() & wxDIRCTRL_DIR_ONLY) != 0) + { + m_ignore_tree_event = true; + wxString currentPath = GetPath(false); + m_dirCtrl->SetWindowStyleFlag(m_dirCtrl->GetWindowStyleFlag() & (~wxDIRCTRL_DIR_ONLY)); + m_dirCtrl->SetFilter(GetFilter()); + m_dirCtrl->ReCreateTree(); + m_dirCtrl->ExpandPath(currentPath); + m_ignore_tree_event = false; + } + + m_splitterWin->SizeWindows(); + UpdateItems(); + return; + } + + // Else - show a combination of tree and list views + + // Try to avoid flicker by changing mode only if necessary + switch (m_browser_style & FILEBRWS_VIEW_MASK) + { + case wxFILEBROWSER_DETAILS : + { + if ((last_style & wxFILEBROWSER_DETAILS) == 0) + m_fileCtrl->ChangeToReportMode(); + break; + } + case wxFILEBROWSER_LIST : + { + if ((last_style & wxFILEBROWSER_LIST) == 0) + m_fileCtrl->ChangeToListMode(); + break; + } + case wxFILEBROWSER_SMALL_ICON : + { + if ((last_style & wxFILEBROWSER_SMALL_ICON) == 0) + m_fileCtrl->ChangeToSmallIconMode(); + break; + } + default : break; + } + + // are both tree and list view shown + if (GetShowFolders()) + { + if (GetSplitVertical()) + { + if (m_splitterWin->GetSplitMode() != wxSPLIT_VERTICAL) + { + if (m_splitterWin->IsSplit()) // FIXME need to unsplit to resplit + m_splitterWin->Unsplit(m_splitterWin->GetWindow2()); + } + + int sash_pos = m_splitterWin->GetSashPosition(); + m_splitterWin->SplitVertically(m_dirCtrl, m_fileCtrl, sash_pos); + } + else + { + if (m_splitterWin->GetSplitMode() != wxSPLIT_HORIZONTAL) + { + if (m_splitterWin->IsSplit()) // FIXME need to unsplit to resplit + m_splitterWin->Unsplit(m_splitterWin->GetWindow2()); + } + + int sash_pos = m_splitterWin->GetSashPosition(); + m_splitterWin->SplitHorizontally(m_dirCtrl, m_fileCtrl, sash_pos); + } + + m_dirCtrl->Show(true); + } + else // just list view + { + if (m_splitterWin->IsSplit()) + m_splitterWin->Unsplit(m_dirCtrl); + else // if (m_splitterWin->GetWindow1() != m_fileCtrl) + m_splitterWin->Initialize(m_fileCtrl); + + m_dirCtrl->Show(false); + } + + m_fileCtrl->Show(true); + + // In dir mode always show all dirs + m_dirCtrl->SetFilter(wxEmptyString); + + // if it used to have wxFILEBROWSER_TREE style, make tree show only dirs + if ((m_dirCtrl->GetWindowStyleFlag() & wxDIRCTRL_DIR_ONLY) == 0) + { + m_ignore_tree_event = true; + m_dirCtrl->SetFilter(wxT("*|*")); + m_dirCtrl->SetWindowStyleFlag(m_dirCtrl->GetWindowStyleFlag() | wxDIRCTRL_DIR_ONLY); + wxString currentPath = GetPath(false); + m_dirCtrl->ReCreateTree(); + m_dirCtrl->ExpandPath(currentPath); + m_ignore_tree_event = false; + } + + m_splitterWin->SizeWindows(); + UpdateItems(); +} + +bool wxFileBrowser::CanRead(const wxString& filePath) const +{ + return wxFile::Access(filePath, wxFile::read); +} + +bool wxFileBrowser::CanWrite(const wxString& filePath) const +{ + return wxFile::Access(filePath, wxFile::write); +} + +void wxFileBrowser::UpdateItems() +{ + UpdateMenu(m_listMenu); + UpdateMenu(m_viewMenu); + + UpdateToolBar(m_viewToolBar); + UpdateToolBar(m_pathToolBar); +} + +void EnableMenuItem(wxMenu *menu, wxWindowID menu_id, bool value) +{ + if (menu) + { + wxMenuItem *menuItem = menu->FindItem(menu_id); + if (menuItem) + menuItem->Enable(value); + } +} +void CheckMenuItem(wxMenu *menu, wxWindowID menu_id, bool value) +{ + if (menu) + { + wxMenuItem *menuItem = menu->FindItem(menu_id); + if (menuItem) + menuItem->Check(value); + } +} + +void wxFileBrowser::UpdateMenu( wxMenu* menu ) +{ + if (!menu) return; + + CheckMenuItem(menu, FBStyleToMenuID(m_browser_style), true); + + // Update options menu --------------------------- + + CheckMenuItem(menu, ID_wxFILEBROWSER_SHOW_HIDDEN, GetShowHidden()); + EnableMenuItem(menu, ID_wxFILEBROWSER_SHOW_FOLDERS, !HasBrowserStyle(wxFILEBROWSER_TREE)); + CheckMenuItem(menu, ID_wxFILEBROWSER_SHOW_FOLDERS, GetShowFolders()); + CheckMenuItem(menu, ID_wxFILEBROWSER_SPLIT_VERTICAL, GetSplitVertical()); + + // Update go items --------------------------- + + CheckMenuItem(menu, ID_wxFILEBROWSER_GO_BACK, CanGoPathHistoryBackward()); + CheckMenuItem(menu, ID_wxFILEBROWSER_GO_FORWARD, CanGoPathHistoryForward()); + CheckMenuItem(menu, ID_wxFILEBROWSER_GO_UP, CanGoUpDir()); + + // Update cut, copy, paste --------------------------- + + // wxLIST_STATE_FOCUSED ? nah probably selected + long item = m_fileCtrl->GetNextItem(-1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED); + + wxFileData *fd = NULL; + if (item >= 0) + fd = (wxFileData*)m_fileCtrl->GetItemData(item); + + bool is_file = fd && !fd->IsDir() && !fd->IsDrive() && !fd->IsLink(); + bool is_dir = fd && fd->IsDir(); + + // There's nothing you can do with this + if (fd && (fd->GetFileName() == wxT(".."))) + { + is_file = is_dir = false; + } + + bool can_read = (is_file || is_dir) && fd && CanRead(fd->GetFilePath()); + bool can_write = (is_file || is_dir) && fd && CanWrite(fd->GetFilePath()); + bool can_write_dir = CanWrite(GetPath()); + + // can't do anything with drive listing in MSW + bool is_top = false; +#ifndef __UNIX__ + if (GetPath(false).IsEmpty()) is_top = true; +#endif //__UNIX__ + + EnableMenuItem(menu, wxID_OPEN, (is_file || is_dir) && can_read); + EnableMenuItem(menu, ID_wxFILEBROWSER_LIST_MENU_VIEW_FILE, is_file && can_read); + EnableMenuItem(menu, ID_wxFILEBROWSER_LIST_MENU_OPEN_WITH, is_file && can_read); + + EnableMenuItem(menu, ID_wxFILEBROWSER_LIST_MENU_NEW_FOLDER, !is_top && can_write_dir); + + EnableMenuItem(menu, wxID_CUT, is_file && can_write); + EnableMenuItem(menu, wxID_COPY, is_file && can_read); + EnableMenuItem(menu, wxID_PASTE, !is_top && (m_copycutFiles.GetCount() > 0u) && can_write_dir); + + EnableMenuItem(menu, ID_wxFILEBROWSER_LIST_MENU_DELETE, (is_file || is_dir) && can_write); + EnableMenuItem(menu, ID_wxFILEBROWSER_LIST_MENU_RENAME, (is_file || is_dir) && can_write); + + EnableMenuItem(menu, ID_wxFILEBROWSER_LIST_MENU_PROPERITES, is_file || is_dir); +} +void wxFileBrowser::UpdateToolBar( wxToolBar* toolBar ) +{ + if (!toolBar) return; + + toolBar->EnableTool(ID_wxFILEBROWSER_GO_BACK, CanGoPathHistoryBackward()); + toolBar->EnableTool(ID_wxFILEBROWSER_GO_FORWARD, CanGoPathHistoryForward()); + toolBar->EnableTool(ID_wxFILEBROWSER_GO_UP, CanGoUpDir()); + toolBar->EnableTool(ID_wxFILEBROWSER_SHOW_FOLDERS, !HasBrowserStyle(wxFILEBROWSER_TREE)); + toolBar->ToggleTool(ID_wxFILEBROWSER_SHOW_FOLDERS, GetShowFolders()); +} + +void wxFileBrowser::ShowHidden(bool show_hidden) +{ + m_show_hidden = show_hidden; + + m_ignore_tree_event = true; + m_dirCtrl->ShowHidden(m_show_hidden); + m_fileCtrl->ShowHidden(m_show_hidden); + m_ignore_tree_event = false; + + UpdateItems(); +} + +void wxFileBrowser::ShowFolders(bool show_folders) +{ + m_browser_style &= (~wxFILEBROWSER_SHOW_FOLDERS); + if (show_folders) + m_browser_style |= wxFILEBROWSER_SHOW_FOLDERS; + + SetBrowserStyle(m_browser_style); +} + +void wxFileBrowser::SplitVertical(bool split_vertically) +{ + m_browser_style &= (~wxFILEBROWSER_SPLIT_VERTICAL); + if (split_vertically) + m_browser_style |= wxFILEBROWSER_SPLIT_VERTICAL; + + SetBrowserStyle(m_browser_style); +} + +bool wxFileBrowser::GetPathFromFilePath(const wxString &filepath, wxString &path) const +{ + path = filepath; + + wxFileName filename(filepath); + if (filename.FileExists()) + path = filename.GetPath(); + + if (!wxDirExists(path)) return false; + + if (path.Last() != wxFILE_SEP_PATH) + path += wxFILE_SEP_PATH; + + return true; +} + +wxString AddDelete_wxFILE_SEP_PATH(const wxString &path_, bool add_sep) +{ + wxString path(path_); + +#if __UNIX__ + if (path.IsEmpty()) return wxFILE_SEP_PATH; +#endif + + if (add_sep) + { + if (path.IsEmpty() || (path.Last() != wxFILE_SEP_PATH)) + path += wxFILE_SEP_PATH; + } + else if (!path.IsEmpty() && (path.Last() == wxFILE_SEP_PATH)) + path = path.RemoveLast(); + + return path; +} + +wxString wxFileBrowser::GetPath(bool add_wxFILE_SEP_PATH) const +{ + return AddDelete_wxFILE_SEP_PATH(m_path, add_wxFILE_SEP_PATH); +} + +bool wxFileBrowser::SetPath(const wxString &dirname) +{ + wxString path = dirname; + + if (dirname.IsEmpty()) + { +#ifdef __UNIX__ + path = wxFILE_SEP_PATH; +#endif + } + else + { + if (!GetPathFromFilePath(dirname, path)) + return false; + } + + m_path = AddDelete_wxFILE_SEP_PATH(path, true); + + m_ignore_tree_event = true; + m_dirCtrl->SetPath(GetPath(false)); // doesn't like trailing wxFILE_SEP_PATH - segfault + m_ignore_tree_event = false; + + if (!HasBrowserStyle(wxFILEBROWSER_TREE)) // don't care otherwise + m_fileCtrl->GoToDir(m_path); + + InsertComboItem(m_pathCombo, GetPath(true), 0); + + AddPathHistory(GetPath(true)); + UpdateItems(); + return true; +} + +bool wxFileBrowser::CanGoUpDir() const +{ + wxString path = GetPath(false).BeforeLast(wxFILE_SEP_PATH); + return !path.IsEmpty() && wxDirExists(path); +} +bool wxFileBrowser::GoUpDir() +{ + wxString path = GetPath(false).BeforeLast(wxFILE_SEP_PATH); + if (!path.IsEmpty() && wxDirExists(path)) + return SetPath(path); + + return false; +} + +bool wxFileBrowser::GoToHomeDir() +{ + + return SetPath(wxFileName::GetHomeDir()); +} + +bool wxFileBrowser::CanGoPathHistoryForward() +{ + if (m_path_history_index < int(m_pathHistory.GetCount()) - 1) + { + // maybe they deleted it? + if (!wxDirExists(m_pathHistory[m_path_history_index+1])) + { + m_path_history_index++; + m_pathHistory.RemoveAt(m_path_history_index); + return CanGoPathHistoryForward(); + } + + return true; + } + if (m_pathHistory.GetCount() == 0u) + m_pathHistory.Add(GetPath(true)); + + return false; +} +bool wxFileBrowser::CanGoPathHistoryBackward() +{ + if (m_path_history_index != 0) + { + // maybe they deleted it? + if (!wxDirExists(m_pathHistory[m_path_history_index-1])) + { + m_path_history_index--; + m_pathHistory.RemoveAt(m_path_history_index); + return CanGoPathHistoryBackward(); + } + + return true; + } + if (m_pathHistory.GetCount() == 0u) + m_pathHistory.Add(GetPath(true)); + + return false; +} + +bool wxFileBrowser::GoPathHistoryForward() +{ + if (!CanGoPathHistoryForward()) + return false; + + m_path_history_index++; + return SetPath(m_pathHistory[m_path_history_index]); +} +bool wxFileBrowser::GoPathHistoryBackward() +{ + if (!CanGoPathHistoryBackward()) + return false; + + m_path_history_index--; + return SetPath(m_pathHistory[m_path_history_index]); +} + +void wxFileBrowser::AddPathHistory(const wxString& path) +{ + if (!wxDirExists(path) || (path == m_pathHistory[m_path_history_index])) + return; + + int count = m_pathHistory.GetCount(); + if (count == 0) + { + m_path_history_index = 0; + m_pathHistory.Add(path); + } + else if (m_path_history_index == count-1) + { + m_path_history_index++; + m_pathHistory.Add(path); + } + else + { + m_path_history_index++; + m_pathHistory[m_path_history_index] = path; + } +} + +void wxFileBrowser::OnTreeItemSelection(wxTreeEvent &event) +{ + if (m_ignore_tree_event) + { + event.Skip(); + return; + } + + wxFileBrowserEvent fbEvent(wxEVT_FILEBROWSER_FILE_SELECTED, this, GetId()); + + if (m_dirCtrl->GetFilePath().IsEmpty()) + fbEvent.SetEventType(wxEVT_FILEBROWSER_DIR_SELECTED); + + fbEvent.SetFilePath(m_dirCtrl->GetPath()); + DoSendEvent(fbEvent); +} + +void wxFileBrowser::OnTreeItemActivation(wxTreeEvent &event) +{ + if (m_ignore_tree_event) + { + event.Skip(); + return; + } + + wxString path; + if (!GetPathFromFilePath(m_dirCtrl->GetPath(), path)) + return; + + wxFileBrowserEvent fbEvent(wxEVT_FILEBROWSER_FILE_ACTIVATED, this, GetId()); + + m_path = path; + if (m_dirCtrl->GetFilePath().IsEmpty()) + { + fbEvent.SetEventType(wxEVT_FILEBROWSER_DIR_ACTIVATED); + + if (!HasBrowserStyle(wxFILEBROWSER_TREE)) + m_fileCtrl->GoToDir(m_path); + } + + fbEvent.SetFilePath(m_dirCtrl->GetPath()); + DoSendEvent(fbEvent); +} + +void wxFileBrowser::OnTreeRightClick(wxTreeEvent &event) +{ + UpdateMenu(m_treeMenu); + m_dirCtrl->PopupMenu(m_treeMenu, event.GetPoint()); +} + +void wxFileBrowser::OnListItemActivated(wxListEvent &event) +{ + wxString filename = event.GetLabel(); + if (filename.IsEmpty()) return; + + wxFileData *fd = (wxFileData*)event.GetData(); + wxCHECK_RET(fd, wxT("Invalid filedata")); + wxString filePath = fd->GetFilePath(); + + wxEventType evtType = fd->IsDir() ? wxEVT_FILEBROWSER_DIR_ACTIVATED : + wxEVT_FILEBROWSER_FILE_ACTIVATED; + wxFileBrowserEvent fbEvent(evtType, this, GetId()); + + if (fd->IsDir()) + { + if (filename == wxT("..")) + filePath = filePath.RemoveLast().BeforeLast(wxFILE_SEP_PATH); + + SetPath(filePath); + } + + fbEvent.SetFilePath(filePath); + DoSendEvent(fbEvent); +} + +void wxFileBrowser::OnListItemSelected(wxListEvent &event) +{ + wxFileData *fd = (wxFileData*)event.GetData(); + wxCHECK_RET(fd, wxT("Invalid filedata")); + + wxEventType evtType = fd->IsDir() ? wxEVT_FILEBROWSER_DIR_SELECTED : + wxEVT_FILEBROWSER_FILE_SELECTED; + wxFileBrowserEvent fbEvent(evtType, this, GetId()); + fbEvent.SetFilePath(fd->GetFilePath()); + DoSendEvent(fbEvent); +} + +void wxFileBrowser::OnListRightClick(wxListEvent &event) +{ + UpdateMenu(m_listMenu); + m_fileCtrl->PopupMenu(m_listMenu, event.GetPoint()); +} + +wxFileData* wxFileBrowser::GetFocusedListItem() const +{ + long item = m_fileCtrl->GetNextItem(-1, wxLIST_NEXT_ALL, wxLIST_STATE_FOCUSED); + + if (item >= 0) + return (wxFileData*)m_fileCtrl->GetItemData(item); + + return NULL; +} + +wxArrayInt wxFileBrowser::GetSelectedListItems() const +{ + wxArrayInt selItems; + long item = m_fileCtrl->GetNextItem(-1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED); + + while (item >= 0) + { + selItems.Add((int)item); + item = m_fileCtrl->GetNextItem(item, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED); + } + + return selItems; +} + +wxArrayFileData wxFileBrowser::GetSelectedListFileData() const +{ + wxArrayFileData fileDatas; + wxArrayInt selItems = GetSelectedListItems(); + if ((int)selItems.GetCount() < 1) + return fileDatas; + + for (size_t n=0; nGetItemData(selItems[n]); + wxCHECK_MSG(fd, fileDatas, wxT("Invalid filedata item")); + + wxFileData newFd(*fd); + fileDatas.Add(newFd); + } + + return fileDatas; +} + + +wxFileData wxFileBrowser::CreateFileData(const wxFileName& fileName) const +{ + if (fileName.DirExists()) + { + return wxFileData(fileName.GetPath(), fileName.GetName(), wxFileData::is_dir, wxFileIconsTable::folder); + } + else if (fileName.FileExists()) + { + return wxFileData(fileName.GetPath(), fileName.GetName(), wxFileData::is_file, wxFileIconsTable::file); + } +#if defined(__WINDOWS__) || defined(__DOS__) || defined(__WXMAC__) || defined(__OS2__) + else + { + // FIXME this is ugly, but should work + wxArrayString names, paths; + wxArrayInt icons; + size_t n, count = wxGetAvailableDrives(paths, names, icons); + for (n = 0; n < count; n++) + { + if (fileName.GetFullPath() == paths[n]) + return wxFileData(fileName.GetPath(), fileName.GetName(), wxFileData::is_drive, icons[n]); + } + } +#endif + return wxFileData(); +} + +bool wxFileBrowser::DeleteSelectedListItems(bool WXUNUSED(ask_ok)) +{ + wxArrayInt selItems = GetSelectedListItems(); + if ((int)selItems.GetCount() < 1) + return false; + + size_t n = 0; + wxArrayString filePaths; + wxArrayInt isDirs; + wxString fileNameString; + int line_length = 0; + for (n=0; nGetItemData(selItems[n]); + wxCHECK_MSG(fd, false, wxT("Invalid filedata item")); + + if (fd->IsDrive()) + { + wxString msg = wxT("Unable to delete drive: \"")+fd->GetFilePath()+wxT("\"\n"); + msg += wxT("Please deselect drive and try again."); + wxMessageBox(msg, + wxT("Error deleting"), wxOK|wxCENTRE|wxICON_INFORMATION, this); + return false; + } + if (fd->GetFileName() == wxT("..")) + { + wxString msg = wxT("Unable to delete parent directory: \"")+fd->GetFilePath()+wxT("\"\n"); + msg += wxT("Please deselect dir and try again."); + wxMessageBox(msg, + wxT("Error deleting"), wxOK|wxCENTRE|wxICON_INFORMATION, this); + return false; + } + + isDirs.Add(fd->IsDir() ? 1 : 0); + filePaths.Add(fd->GetFilePath()); + if (line_length > 100) + { + fileNameString += wxT("\n"); + line_length = 0; + } + fileNameString += fd->GetFileName(); + if (n < selItems.GetCount() - 1) + fileNameString += wxT(", "); + + line_length += fd->GetFileName().Length() + 2; + } + + MultilineTextDialog tDialog( this, + wxT("Delete files(s)/dir(s)?"), + wxT("Confirm deleting?"), + fileNameString, + wxTE_READONLY); + + if (tDialog.ShowModal() != wxID_OK) + return false; + + for (n=0; nDeleteItem(selItems[n]); + else + { + wxString msg = wxT("Sorry, unable to delete dir: \"")+filePaths[n]+wxT("\"\n"); + msg += wxT("Perhaps it is not empty?"); + int ret = wxMessageBox(msg, wxT("Error deleting dir"), + wxOK|wxCANCEL|wxCENTRE|wxICON_INFORMATION, this); + + if (ret == wxCANCEL) break; + } + } + else + { + if (CanWrite(filePaths[n]) && wxRemoveFile(filePaths[n])) + m_fileCtrl->DeleteItem(selItems[n]); + else + { + int ret = wxMessageBox(wxT("Sorry, unable to delete file : \"")+filePaths[n]+wxT("\""), + wxT("Error deleting file"), + wxOK|wxCANCEL|wxCENTRE|wxICON_INFORMATION, this); + if (ret == wxCANCEL) break; + } + } + } + + SetPath(GetPath()); // refresh views + return true; +} + +bool wxFileBrowser::CopyCutSelectedListItems(bool copy_them) +{ + m_last_copy = copy_them; + m_copycutFiles.Clear(); + + wxArrayInt selItems = GetSelectedListItems(); + if ((int)selItems.GetCount() < 1) + return false; + + for (size_t n=0; nGetItemData(selItems[n]); + wxCHECK_MSG(fd, false, wxT("Invalid filedata item")); + + if (fd->GetFileName() != wxT("..")) + { + if (!m_last_copy) + m_fileCtrl->SetItemState(selItems[n], wxLIST_MASK_STATE, wxLIST_STATE_CUT); + + m_copycutFiles.Add(wxFileData(*fd)); + } + } + + return m_copycutFiles.GetCount() > 0U; +} + +bool wxFileBrowser::PasteCopyCutSelectedListItems() +{ + wxString path = GetPath(true); + + for (size_t n=0; nFindItem(-1, srcFileName); + + if (!dst_file_exists || (item_id < 0)) + { + wxListItem item; + item.m_itemId = m_fileCtrl->GetItemCount(); + item.m_col = 0; + wxFileData *fd = new wxFileData(dstFilePath, srcFileName, wxFileData::is_file, wxFileIconsTable::file); + m_fileCtrl->Add(fd, item); + } + else + { + wxListItem item; + item.m_itemId = item_id; + m_fileCtrl->UpdateItem(item); + } + } + + SetPath(GetPath()); // refresh views + return true; +} + +void wxFileBrowser::OnTreeMenu(wxCommandEvent &event) +{ + switch(event.GetId()) + { + case ID_wxFILEBROWSER_TREE_MENU_PROPERITES : + { + wxFileName fileName(m_dirCtrl->GetPath()); + wxFileData fd(CreateFileData(fileName)); + //if (!fd) return; + + ShowPropertiesDialog(fd); + break; + } + default : break; + } +} + +void wxFileBrowser::OnListMenu(wxCommandEvent &event) +{ + switch(event.GetId()) + { + case ID_wxFILEBROWSER_GO_BACK : + { + if (CanGoPathHistoryBackward()) + GoPathHistoryBackward(); + + break; + } + case ID_wxFILEBROWSER_GO_FORWARD : + { + if (CanGoPathHistoryForward()) + GoPathHistoryForward(); + + break; + } + case ID_wxFILEBROWSER_GO_UP : + { + if (CanGoUpDir()) + GoUpDir(); + + break; + } + case ID_wxFILEBROWSER_GO_HOME : + { + GoToHomeDir(); + break; + } + case ID_wxFILEBROWSER_REFRESH : + { + SetPath(GetPath(true)); + break; + } + case wxID_OPEN : + { + wxFileData *fd = GetFocusedListItem(); + if (!fd) return; + + OpenFilePath(fd->GetFilePath()); + break; + } + case ID_wxFILEBROWSER_LIST_MENU_NEW_FOLDER : + { + m_fileCtrl->MakeDir(); + SetPath(GetPath(true)); + break; + } + case wxID_CUT : + case wxID_COPY : + { + m_last_copy = event.GetId() == wxID_COPY; + CopyCutSelectedListItems(m_last_copy); + break; + } + case wxID_PASTE : + { + PasteCopyCutSelectedListItems(); + break; + } + case ID_wxFILEBROWSER_LIST_MENU_DELETE : + { + DeleteSelectedListItems(true); + break; + } + case ID_wxFILEBROWSER_LIST_MENU_RENAME : + { + long item = m_fileCtrl->GetNextItem(-1, wxLIST_NEXT_ALL, wxLIST_STATE_FOCUSED); + if (item >= 0) + m_fileCtrl->EditLabel( item ); + break; + } + case ID_wxFILEBROWSER_LIST_MENU_OPEN_WITH : + { + wxFileData *fd = GetFocusedListItem(); + if (!fd) return; + + wxString cmd = GetOpenWithFileCmd(fd); + + if (!cmd.IsEmpty()) + { + long ret = wxExecute(cmd, wxEXEC_ASYNC, NULL); + if (ret == 0) + { + wxMessageBox(wxT("Error running program"), wxT("Error running program"), + wxOK, this); + } + } + break; + } + case ID_wxFILEBROWSER_LIST_MENU_VIEW_FILE : + { + wxFileData *fd = GetFocusedListItem(); + if (!fd) return; + + wxLogNull logNull; + wxImage image(fd->GetFilePath()); + if (image.Ok()) + { + wxDialog dialog(this, -1, wxT("Preview : ") + fd->GetFilePath(), + wxDefaultPosition, wxDefaultSize, + wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); + + wxScrolledWindow *scrWin = new wxScrolledWindow(&dialog, -1); + wxStaticBitmap *statBitmap = new wxStaticBitmap(scrWin, -1, wxBitmap(image)); + + // not necessary in MSW + int ext = 0; //dialog.GetSize().GetWidth() - dialog.GetClientSize().GetWidth(); + + wxRect clientRect = wxGetClientDisplayRect(); + wxRect imageRect(0, 0, image.GetWidth()+ext, image.GetHeight()+ext); + clientRect.Intersect(imageRect); + dialog.SetClientSize(clientRect.width, clientRect.height); + + scrWin->SetScrollbars(1, 1, image.GetWidth(), image.GetHeight()); + + dialog.ShowModal(); + break; + } + else // view as text + { + + wxFrame* frame = new wxFrame(this, wxID_ANY, wxT("Text Viewer")); + wxTextCtrl* textCtrl = new wxTextCtrl(frame, wxID_ANY, wxT(""), + wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxTE_RICH|wxTE_READONLY); + + wxString s; + wxFileInputStream inputStream(fd->GetFilePath()); + wxTextInputStream textStream(inputStream); + while (!inputStream.Eof()) + { + s += textStream.ReadLine() + wxT("\n"); + if (s.Length() > 1000000) + { + wxMessageBox(wxT("This file is too large for the text viewer."), + wxT("File truncated"), wxOK, this); + break; + } + } + + textCtrl->AppendText(s); + frame->Show(true); + +/* + wxSTEditorOptions steOptions(STE_DEFAULT_OPTIONS); + steOptions.GetMenuManager()->CreateForNotebook(); +#if wxUSE_CONFIG + wxConfigBase *config = wxConfigBase::Get(false); // don't create + if (config) + steOptions.LoadConfig(*config); +#endif //wxUSE_CONFIG + + wxSTEditorFrame *editor = new wxSTEditorFrame(this, wxID_ANY, wxT("Editor")); + editor->CreateOptions(steOptions); + editor->GetEditor()->LoadFile(fd->GetFilePath()); + editor->Centre(); + editor->Show(true); +*/ + } + break; + } + case ID_wxFILEBROWSER_LIST_MENU_PROPERITES : + { + wxFileData *fd = GetFocusedListItem(); + if (!fd) return; + + ShowPropertiesDialog(*fd); + break; + } + case ID_wxFILEBROWSER_SHOW_HIDDEN : ShowHidden(event.IsChecked()); break; + case ID_wxFILEBROWSER_SHOW_FOLDERS : ShowFolders(event.IsChecked()); break; + case ID_wxFILEBROWSER_SPLIT_VERTICAL : SplitVertical(event.IsChecked()); break; + + default : break; + } +} + +void wxFileBrowser::OnViewButtons(wxCommandEvent &event) +{ + switch (event.GetId()) + { + case ID_wxFILEBROWSER_VIEW_BUTTON : + { + wxWindow *win = (wxWindow*)event.GetEventObject(); + if (win) + win->PopupMenu(m_viewMenu, wxPoint(0, win->GetSize().y)); +/* + wxToolBar *win = (wxToolBar*)event.GetEventObject(); + { + wxSize toolSize(win->GetToolSize()); + wxSize marginSize(win->GetMargins()); + int pack = win->GetToolPacking(); + int sep = win->GetToolSeparation(); + wxPrintf(wxT(" %d %d, %d %d, %d %d\n"), toolSize.x, toolSize.y, marginSize.x, marginSize.y, pack, sep); + win->PopupMenu(m_viewMenu, + wxPoint(toolSize.x*5 + 2*marginSize.x, + win->GetSize().y-marginSize.y)); + } +*/ + break; + } + case ID_wxFILEBROWSER_VIEW_TREE : + case ID_wxFILEBROWSER_VIEW_LIST : + case ID_wxFILEBROWSER_VIEW_DETAILS : + case ID_wxFILEBROWSER_VIEW_SMALL_ICON : + case ID_wxFILEBROWSER_VIEW_LARGE_ICON : + case ID_wxFILEBROWSER_VIEW_PREVIEW : + { + long style = MenuIDToFBStyle(event.GetId()); + style |= (m_browser_style & (~wxFILEBROWSER_VIEW_MASK)); + SetBrowserStyle(style); + break; + } + default : event.Skip(); break; + } +} + +void wxFileBrowser::OnPathCombo(wxCommandEvent &event) +{ + // gtk sends events for just dropping the box + if (m_pathComboSelection == event.GetSelection()) + return; + + m_pathComboSelection = event.GetSelection(); + + // be overly cautious, GTK combo sends events and in some cases leads to a loop + // it also doesn't like to have selection changed inside this handler + wxCommandEvent setevent( wxEVT_COMMAND_MENU_SELECTED, ID_wxFILEBROWSER_COMBOSETPATH ); + setevent.SetString(event.GetString()); + GetEventHandler()->AddPendingEvent(setevent); +} +void wxFileBrowser::OnPathComboEnter(wxCommandEvent &WXUNUSED(event)) +{ + OpenFilePath(m_pathCombo->GetValue()); +} +void wxFileBrowser::OnSetPath( wxCommandEvent &event ) +{ + SetPath(event.GetString()); + m_pathComboSelection = m_pathCombo->GetSelection(); +} + +bool wxFileBrowser::OpenFilePath(const wxString &filePath) +{ + wxString path = filePath; + + if (path.IsEmpty() || (path.Find(wxT('|')) != wxNOT_FOUND)) + return false; + + bool want_dir = (path.Last() == wxFILE_SEP_PATH); + if (want_dir) + path = path.RemoveLast(); + + // Get home dir of user for ~ +#ifdef __UNIX__ + if (path == wxT("~")) + { + path = wxGetUserHome(); + } + else if (path.BeforeFirst(wxT('/')) == wxT("~")) + { + path = wxGetUserHome() + path.Remove(0, 1); + } +#endif // __UNIX__ + + // deal with ../ and what not + if (path.Contains(wxT(".."))) + { + // path is just ".." or "../" + if (path == wxT("..")) + path = GetPath(false).BeforeLast(wxFILE_SEP_PATH); + // path is "../some/dir" - note: no need to check for at least 3 chars + else if ((path.Mid(0, 3) == wxString(wxT("..")) + wxFILE_SEP_PATH)) + path = GetPath(false).BeforeLast(wxFILE_SEP_PATH) + wxFILE_SEP_PATH + path.AfterFirst(wxFILE_SEP_PATH); + // path is "/some/where/.." + else if (path.Mid(path.Len()-3) == wxFILE_SEP_PATH + wxString(wxT(".."))) + path = path.BeforeLast(wxFILE_SEP_PATH).BeforeLast(wxFILE_SEP_PATH); + else + return false; + } + + wxFileName filename(path); + + if (filename.DirExists()) + { + SetPath(path); + return true; + } + + // They really wanted a dir, but it doesn't exist + if (want_dir) + return false; + + // if it's a file then just "load" it + if (filename.FileExists()) + { + //SetPath(filename.GetPath()); + + long item = m_fileCtrl->FindItem(-1, filename.GetName(), false); + if (item >= 0) + { + m_fileCtrl->SetItemState(item, wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED); + m_fileCtrl->EnsureVisible( item ); + } + + wxFileBrowserEvent fbEvent(wxEVT_FILEBROWSER_FILE_ACTIVATED, this, GetId()); + fbEvent.SetFilePath(path); + DoSendEvent(fbEvent); + } + + return true; +} + +bool wxFileBrowser::InsertComboItem(wxComboBox *combo, const wxString &item, int pos) const +{ + int combo_index = combo->FindString(item); + + if (combo_index == wxNOT_FOUND) + combo->Insert(item, pos, (void*)NULL); + else if ((combo_index == pos) || (combo_index < pos)) + return true; + else if (combo_index > pos) + { + wxString *data = (wxString*) combo->GetClientData(combo_index); + combo->Delete(combo_index); + combo->Insert(item, pos, (void*)data); + } + + if (combo->GetSelection() != pos) + combo->SetSelection(pos); + + return true; +} + +bool wxFileBrowser::SetFilter( int n ) +{ + wxCHECK_MSG((n>=0) && (nGetCount())), false, wxT("Invalid filter item")); + + wxString filter = m_filterCombo->GetString(n); + wxString *data = (wxString*)m_filterCombo->GetClientData(n); + if (data && !data->IsEmpty()) + filter += wxT("|") + (*data); + else + filter += wxT("|") + filter; + + AddFilter(filter); + return true; +} + +bool wxFileBrowser::AddFilter(const wxString &filter_) +{ + wxString filter(filter_); + if (filter.IsEmpty()) + filter = wxFileSelectorDefaultWildcardStr; + if (filter.Find(wxT('|')) == wxNOT_FOUND) + filter += wxT("|") + filter; + + m_filter = filter; + InsertComboItem(m_filterCombo, filter.BeforeFirst(wxT('|')), m_init_filters); + m_filterComboSelection = m_filterCombo->GetSelection(); + + if ((m_dirCtrl->GetWindowStyleFlag() & wxDIRCTRL_DIR_ONLY) == 0) + { + m_ignore_tree_event = true; + wxString currentPath = GetPath(false); + m_dirCtrl->SetFilter(GetFilter()); + m_dirCtrl->ReCreateTree(); + m_dirCtrl->ExpandPath(currentPath); + m_ignore_tree_event = false; + } + + m_fileCtrl->SetWild(GetWild()); + + return true; +} + +bool wxFileBrowser::SetFilters(const wxString &filter, int select) +{ + wxArrayString filterNames; + wxArrayString filterArray; + if (filter.IsEmpty() || + (::wxParseCommonDialogsFilter(filter, filterNames, filterArray) == 0)) + { + filterNames.Add(wxT("All files (")+wxString(wxFileSelectorDefaultWildcardStr)+wxT(")")); + filterArray.Add(wxFileSelectorDefaultWildcardStr); + } + + wxCHECK_MSG(select < int(filterNames.GetCount()), false, wxT("Invalid filter selection")); + + m_filter = filterNames[select] + wxT("|") + filterArray[select]; + m_init_filters = filterArray.GetCount(); + + // delete old filters if any + int n, count = m_filterCombo->GetCount(); + for ( n = 0; n < count; n++ ) + { + wxString *data = (wxString*)m_filterCombo->GetClientData(n); + delete data; + } + + for ( n = 0; n < m_init_filters; n++ ) + m_filterCombo->Append(filterNames[n], (void*)new wxString(filterArray[n])); + + m_filterCombo->SetSelection(select); + m_filterComboSelection = select; + + if (!m_dirCtrl) return true; // This is during creation + + return SetFilter(select); +} + +void wxFileBrowser::OnFilterComboEnter(wxCommandEvent &event) +{ + if (event.GetString().Find(wxT('|')) == wxNOT_FOUND) + AddFilter(event.GetString() + wxT("|") + event.GetString()); +} +void wxFileBrowser::OnFilterCombo(wxCommandEvent &event) +{ + int sel = event.GetSelection(); + // gtk combo sends events when the combo is opened... ignore them + if ((sel < 0) || (sel == m_filterComboSelection)) + return; + + m_filterComboSelection = sel; + + wxString filter = event.GetString(); + wxString *data = (wxString*)m_filterCombo->GetClientData(sel); + if (data && !data->IsEmpty()) + filter += wxT("|") + (*data); + else + filter += wxT("|") + filter; + + // see OnPathCombo for why it's done this way + wxCommandEvent setevent( wxEVT_COMMAND_MENU_SELECTED, ID_wxFILEBROWSER_COMBOSETFILTER ); + setevent.SetString(filter); + setevent.SetInt(data && !data->IsEmpty() ? sel : -1); + GetEventHandler()->AddPendingEvent(setevent); +} +void wxFileBrowser::OnSetFilter( wxCommandEvent &event ) +{ + if ( event.GetInt() != -1) + SetFilter(event.GetInt()); + else + AddFilter(event.GetString()); +} + +bool wxFileBrowser::DoSendEvent(wxFileBrowserEvent &event) const +{ + return !GetEventHandler()->ProcessEvent(event); // || event.IsAllowed(); +} + +#if wxUSE_CONFIG +void wxFileBrowser::LoadConfig(wxConfigBase& config, bool paths, bool filters, + const wxString &configPath ) +{ + wxString value, key; + key = configPath + wxT("/style"); + if (config.Read(key, &value) && (!value.IsEmpty())) + { + long lvalue = 0; + if (value.ToLong(&lvalue)) + { + SetBrowserStyle(lvalue); + } + } + + if (paths) + { + int n = 0; + key = configPath + wxString::Format(wxT("/dir%d"), 1+n); + while ((n < 21) && config.Read(key, &value) && (!value.IsEmpty())) + { + value.Trim(false).Trim(true); + if (!value.IsEmpty()) + { + if (value.Last() != wxFILE_SEP_PATH) + value += wxFILE_SEP_PATH; + //if (wxDirExists(value)) + { + if (m_pathCombo->FindString(value) == wxNOT_FOUND) + m_pathCombo->Append(value, (void*)NULL); + } + } + n++; + key = configPath + wxString::Format(wxT("/dir%d"), 1+n); + value = wxEmptyString; + } + } + if (filters) + { + int n = 0; + key = configPath + wxString::Format(wxT("/filter%d"), 1+n); + while ((n < 21) && config.Read(key, &value) && (!value.IsEmpty())) + { + value.Trim(false).Trim(true); + if (!value.IsEmpty()) + { + if (m_filterCombo->FindString(value) == wxNOT_FOUND) + m_filterCombo->Append(value, (void*)NULL); + } + n++; + key = configPath + wxString::Format(wxT("/filter%d"), 1+n); + value = wxEmptyString; + } + } +} +void wxFileBrowser::SaveConfig(wxConfigBase& config, int n_paths, int n_filters, + const wxString &configPath) +{ + wxString value, key; + key = configPath + wxT("/style"); + config.Write(key, GetBrowserStyle()); + + if (n_paths > 0) + { + int n, item = 1, count = m_pathCombo->GetCount(); + for (n = 0; (n < count) && (item < n_paths); n++) + { + value = m_pathCombo->GetString(n); + if (!value.IsEmpty()) + { + config.Write(configPath + wxString::Format(wxT("/dir%d"), item), value); + item++; + } + } + } + if (n_filters > 0) + { + int n, item = 1, count = m_filterCombo->GetCount(); + for (n = 0; (n < count) && (item < n_filters); n++) + { + // don't save the initial filters since they are programmed in + wxString *data = (wxString*)m_filterCombo->GetClientData(n); + if (data) continue; + + value = m_filterCombo->GetString(n); + if (!value.IsEmpty()) + { + config.Write(configPath + wxString::Format(wxT("/filter%d"), item), value); + item++; + } + } + } +} +#endif // wxUSE_CONFIG + +void wxFileBrowser::ShowPropertiesDialog(const wxFileData &fileData) const +{ + wxFilePropertiesDialog propDialog((wxWindow*)this, wxID_ANY, + fileData, + fileData.GetFileName() + wxT(" Properties"), + wxDEFAULT_DIALOG_STYLE, wxDefaultPosition); + + propDialog.Centre(); + propDialog.ShowModal(); +} + +wxString wxFileBrowser::GetOpenWithFileCmd(wxFileData* fd) const +{ + wxCHECK_MSG(fd, wxEmptyString, wxT("Invalid wxFileData for GetOpenWithFileCmd")); + OpenWithDialog dialog((wxWindow*)this, wxID_ANY, *fd); + dialog.ShowModal(); + return dialog.GetOpenCommand(); +} diff --git a/3rdparty/wxthings/src/genergdi.cpp b/3rdparty/wxthings/src/genergdi.cpp new file mode 100644 index 0000000..3f74e05 --- /dev/null +++ b/3rdparty/wxthings/src/genergdi.cpp @@ -0,0 +1,712 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: genergdi.cpp +// Purpose: Generic gdi pen and colour +// Author: John Labenski +// Modified by: +// Created: 12/01/2000 +// Copyright: (c) John Labenski +// Licence: wxWidgets license +///////////////////////////////////////////////////////////////////////////// + +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) + #pragma implementation "genergdi.h" +#endif + +// For compilers that support precompilation, includes "wx.h". +#include "wx/wxprec.h" + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#include "wx/things/genergdi.h" +#include "wx/tokenzr.h" + +const wxGenericColour wxNullGenericColour; +const wxGenericPen wxNullGenericPen; +const wxGenericBrush wxNullGenericBrush; +#include "wx/arrimpl.cpp" +WX_DEFINE_OBJARRAY(wxArrayGenericColour) +WX_DEFINE_OBJARRAY(wxArrayGenericPen) +WX_DEFINE_OBJARRAY(wxArrayGenericBrush) + +//---------------------------------------------------------------------------- +// wxGenericColour +//---------------------------------------------------------------------------- +IMPLEMENT_DYNAMIC_CLASS(wxGenericColour, wxObject) + +class wxGenericColourRefData : public wxObjectRefData +{ +public: + wxGenericColourRefData(unsigned char r = 0, unsigned char g = 0, + unsigned char b = 0, unsigned char a = 255) + : wxObjectRefData(), m_r(r), m_g(g), m_b(b), m_a(a) {} + + wxGenericColourRefData( const wxGenericColourRefData& data ) + : wxObjectRefData(), m_r(data.m_r), m_g(data.m_g), m_b(data.m_b), m_a(data.m_a) {} + + unsigned char m_r, m_g, m_b, m_a; +}; + +#define M_GCOLOURDATA ((wxGenericColourRefData*)m_refData) + +//---------------------------------------------------------------------------- +wxObjectRefData *wxGenericColour::CreateRefData() const +{ + return new wxGenericColourRefData; +} +wxObjectRefData *wxGenericColour::CloneRefData(const wxObjectRefData *data) const +{ + return new wxGenericColourRefData(*(const wxGenericColourRefData *)data); +} + +void wxGenericColour::Create( const wxGenericColour& c ) +{ + Ref(c); +} +void wxGenericColour::Create( const wxColour& c) +{ + UnRef(); + m_refData = new wxGenericColourRefData; + Set(c); +} +void wxGenericColour::Create( unsigned char red, unsigned char green, + unsigned char blue, unsigned char alpha ) +{ + UnRef(); + m_refData = new wxGenericColourRefData(red, green, blue, alpha); +} +void wxGenericColour::CreateABGR( unsigned long colABGR ) +{ + UnRef(); + m_refData = new wxGenericColourRefData; + SetABGR(colABGR); +} +void wxGenericColour::CreateARGB( unsigned long colARGB ) +{ + UnRef(); + m_refData = new wxGenericColourRefData; + SetARGB(colARGB); +} +void wxGenericColour::Create( const wxString& colourName ) +{ + UnRef(); + m_refData = new wxGenericColourRefData; + Set(colourName); +} + +void wxGenericColour::Set( const wxGenericColour &c ) +{ + wxCHECK_RET(Ok() && c.Ok(), wxT("Invalid generic colour")); + M_GCOLOURDATA->m_r = c.GetRed(); + M_GCOLOURDATA->m_g = c.GetGreen(); + M_GCOLOURDATA->m_b = c.GetBlue(); + M_GCOLOURDATA->m_a = c.GetAlpha(); +} +void wxGenericColour::Set( const wxColour& c ) +{ + wxCHECK_RET(Ok() && c.Ok(), wxT("Invalid colour")); + M_GCOLOURDATA->m_r = c.Red(); + M_GCOLOURDATA->m_g = c.Green(); + M_GCOLOURDATA->m_b = c.Blue(); +} +void wxGenericColour::Set( unsigned char red, unsigned char green, + unsigned char blue, unsigned char alpha ) +{ + wxCHECK_RET(Ok(), wxT("Invalid generic colour")); + M_GCOLOURDATA->m_r = red; + M_GCOLOURDATA->m_g = green; + M_GCOLOURDATA->m_b = blue; + M_GCOLOURDATA->m_a = alpha; +} +void wxGenericColour::SetABGR( unsigned long colABGR ) +{ + wxCHECK_RET(Ok(), wxT("Invalid generic colour")); + M_GCOLOURDATA->m_r = (unsigned char)(0xFF& colABGR); + M_GCOLOURDATA->m_g = (unsigned char)(0xFF&(colABGR >> 8)); + M_GCOLOURDATA->m_b = (unsigned char)(0xFF&(colABGR >> 16)); + M_GCOLOURDATA->m_a = (unsigned char)(0xFF&(colABGR >> 24)); +} +void wxGenericColour::SetARGB( unsigned long colARGB ) +{ + wxCHECK_RET(Ok(), wxT("Invalid generic colour")); + M_GCOLOURDATA->m_b = (unsigned char)(0xFF& colARGB); + M_GCOLOURDATA->m_g = (unsigned char)(0xFF&(colARGB >> 8)); + M_GCOLOURDATA->m_r = (unsigned char)(0xFF&(colARGB >> 16)); + M_GCOLOURDATA->m_a = (unsigned char)(0xFF&(colARGB >> 24)); +} +void wxGenericColour::Set( const wxString& colourName ) +{ + wxCHECK_RET(Ok(), wxT("Invalid generic colour")); + Set(wxColour(colourName)); +} +void wxGenericColour::SetRed( unsigned char r ) +{ + wxCHECK_RET(Ok(), wxT("Invalid generic colour")); + M_GCOLOURDATA->m_r = r; +} +void wxGenericColour::SetGreen( unsigned char g ) +{ + wxCHECK_RET(Ok(), wxT("Invalid generic colour")); + M_GCOLOURDATA->m_g = g; +} +void wxGenericColour::SetBlue( unsigned char b ) +{ + wxCHECK_RET(Ok(), wxT("Invalid generic colour")); + M_GCOLOURDATA->m_b = b; +} +void wxGenericColour::SetAlpha( unsigned char a ) +{ + wxCHECK_RET(Ok(), wxT("Invalid generic colour")); + M_GCOLOURDATA->m_a = a; +} + +unsigned char wxGenericColour::GetRed() const +{ + wxCHECK_MSG(Ok(), 0, wxT("Invalid generic colour")); + return M_GCOLOURDATA->m_r; +} +unsigned char wxGenericColour::GetGreen() const +{ + wxCHECK_MSG(Ok(), 0, wxT("Invalid generic colour")); + return M_GCOLOURDATA->m_g; +} +unsigned char wxGenericColour::GetBlue() const +{ + wxCHECK_MSG(Ok(), 0, wxT("Invalid generic colour")); + return M_GCOLOURDATA->m_b; +} +unsigned char wxGenericColour::GetAlpha() const +{ + wxCHECK_MSG(Ok(), 0, wxT("Invalid generic colour")); + return M_GCOLOURDATA->m_a; +} + +bool wxGenericColour::IsSameAs( const wxGenericColour& c ) const +{ + wxCHECK_MSG(Ok() && c.Ok(), false, wxT("Invalid generic colour")); + wxGenericColourRefData *cData = (wxGenericColourRefData*)c.GetRefData(); + return (M_GCOLOURDATA->m_r == cData->m_r) && (M_GCOLOURDATA->m_g == cData->m_g) && + (M_GCOLOURDATA->m_b == cData->m_b) && (M_GCOLOURDATA->m_a == cData->m_a); +} + +bool wxGenericColour::IsSameAs( const wxColour& c ) const +{ + wxCHECK_MSG(Ok() && c.Ok(), false, wxT("Invalid colour")); + return (M_GCOLOURDATA->m_r == c.Red()) && + (M_GCOLOURDATA->m_g == c.Green()) && + (M_GCOLOURDATA->m_b == c.Blue()); +} + +// This code is assumed to be public domain, originally from Paul Bourke, July 1996 +// http://astronomy.swin.edu.au/~pbourke/colour/colourramp/source1.c + +wxGenericColour wxGenericColour::GetHotColdColour(double v) const +{ + wxGenericColour c(255, 255, 255); + const double vmin = 0.0, vmax = 255.0, dv = vmax - vmin; + + if (v < vmin) v = vmin; + if (v > vmax) v = vmax; + + if (v < (vmin + 0.25 * dv)) + { + c.SetRed(0); + c.SetGreen(int(vmax*(4.0 * (v - vmin) / dv) + 0.5)); + } + else if (v < (vmin + 0.5 * dv)) + { + c.SetRed(0); + c.SetBlue(int(vmax*(1.0 + 4.0 * (vmin + 0.25 * dv - v) / dv) + 0.5)); + } + else if (v < (vmin + 0.75 * dv)) + { + c.SetRed(int(vmax*(4.0 * (v - vmin - 0.5 * dv) / dv) + 0.5)); + c.SetBlue(0); + } + else + { + c.SetGreen(int(vmax*(1.0 + 4.0 * (vmin + 0.75 * dv - v) / dv) + 0.5)); + c.SetBlue(0); + } + + return c; +} +/* +wxString wxGenericColour::WriteString(const wxString& format) const +{ + return wxString::Format(format.c_str(), m_r, m_g, m_b, m_a); +} +bool wxGenericColour::ReadString(const wxString& str, const wxString& format) +{ + int r,g,b,a; + if (4 == wxSscanf(str, format.c_str(), &r, &g, &b, &a)) + { + m_r = r; + m_g = g; + m_b = b; + m_a = a; + return true; + } + + return false; +} +*/ + +//---------------------------------------------------------------------------- +// wxGenericPen +//---------------------------------------------------------------------------- +IMPLEMENT_DYNAMIC_CLASS(wxGenericPen, wxObject) + +class wxGenericPenRefData : public wxObjectRefData +{ +public: + wxGenericPenRefData(int width = 1, int style = wxSOLID, + int cap = wxCAP_ROUND, int join = wxJOIN_ROUND) + : wxObjectRefData(), m_width(width), m_style(style), + m_cap(cap), m_join(join), + m_dash_count(0), m_dash(NULL) {} + + wxGenericPenRefData(const wxGenericPenRefData& data) : wxObjectRefData(), + m_colour(data.m_colour), m_width(data.m_width), m_style(data.m_style), + m_cap(data.m_cap), m_join(data.m_join), + m_dash_count(data.m_dash_count), m_dash(NULL) + { + if (data.m_dash) + { + m_dash = (wxDash*)malloc(m_dash_count*sizeof(wxDash)); + memcpy(m_dash, data.m_dash, m_dash_count*sizeof(wxDash)); + } + } + + ~wxGenericPenRefData() { if (m_dash) free(m_dash); } + + wxGenericColour m_colour; + int m_width; + int m_style; + int m_cap; + int m_join; + + int m_dash_count; // don't arbitrarily adjust these! + wxDash *m_dash; +}; + +#define M_GPENDATA ((wxGenericPenRefData*)m_refData) + +//---------------------------------------------------------------------------- +wxObjectRefData *wxGenericPen::CreateRefData() const +{ + return new wxGenericPenRefData; +} +wxObjectRefData *wxGenericPen::CloneRefData(const wxObjectRefData *data) const +{ + return new wxGenericPenRefData(*(const wxGenericPenRefData *)data); +} + +void wxGenericPen::Create( const wxGenericPen &pen ) +{ + Ref(pen); +} +void wxGenericPen::Create( const wxPen &pen ) +{ + UnRef(); + m_refData = new wxGenericPenRefData; + Set(pen); +} +void wxGenericPen::Create(const wxGenericColour &colour, int width, int style, + int cap, int join ) +{ + UnRef(); + m_refData = new wxGenericPenRefData(width, style, cap, join); + M_GPENDATA->m_colour = colour; +} +void wxGenericPen::Create(const wxColour &colour, int width, int style, + int cap, int join ) +{ + Create(wxGenericColour(colour), width, style, cap, join); +} + +void wxGenericPen::Set( const wxGenericPen& pen ) +{ + wxCHECK_RET(Ok() && pen.Ok(), wxT("Invalid generic pen")); + SetColour(pen.GetColour()); + M_GPENDATA->m_width = pen.GetWidth(); + M_GPENDATA->m_style = pen.GetStyle(); + M_GPENDATA->m_cap = pen.GetCap(); + M_GPENDATA->m_join = pen.GetJoin(); + + wxDash* dash; + int n_dashes = pen.GetDashes(&dash); + SetDashes(n_dashes, dash); +} +void wxGenericPen::Set( const wxPen &pen ) +{ + wxCHECK_RET(Ok() && pen.Ok(), wxT("Invalid generic pen")); + SetColour(pen.GetColour()); + M_GPENDATA->m_width = pen.GetWidth(); + M_GPENDATA->m_style = pen.GetStyle(); + M_GPENDATA->m_cap = pen.GetCap(); + M_GPENDATA->m_join = pen.GetJoin(); + + wxDash* dash; + int n_dashes = pen.GetDashes(&dash); + SetDashes(n_dashes, dash); + + // or SetDashes(pen.GetDashCount(), pen.GetDash()); not in msw 2.4 +} +void wxGenericPen::SetColour( const wxGenericColour &colour ) +{ + wxCHECK_RET(Ok() && colour.Ok(), wxT("Invalid generic pen or colour")); + M_GPENDATA->m_colour = colour; +} +void wxGenericPen::SetColour( const wxColour &colour ) +{ + SetColour(wxGenericColour(colour)); +} +void wxGenericPen::SetColour( int red, int green, int blue, int alpha ) +{ + SetColour(wxGenericColour(red, green, blue, alpha)); +} +void wxGenericPen::SetCap( int capStyle ) +{ + wxCHECK_RET(Ok(), wxT("Invalid generic pen")); + M_GPENDATA->m_cap = capStyle; +} +void wxGenericPen::SetJoin( int joinStyle ) +{ + wxCHECK_RET(Ok(), wxT("Invalid generic pen")); + M_GPENDATA->m_join = joinStyle; +} +void wxGenericPen::SetStyle( int style ) +{ + wxCHECK_RET(Ok(), wxT("Invalid generic pen")); + M_GPENDATA->m_style = style; +} +void wxGenericPen::SetWidth( int width ) +{ + wxCHECK_RET(Ok(), wxT("Invalid generic pen")); + M_GPENDATA->m_width = width; +} +void wxGenericPen::SetDashes( int number_of_dashes, const wxDash *dash ) +{ + wxCHECK_RET(Ok(), wxT("Invalid generic pen")); + wxCHECK_RET(((number_of_dashes == 0) && !dash) || + ((number_of_dashes > 0) && dash), wxT("Invalid dashes for pen")); + + // internal double check to see if somebody's messed with this + //wxCHECK_RET(((M_GPENDATA->m_dash_count == 0) && !M_GPENDATA->m_dash) || + // ((M_GPENDATA->m_dash_count != 0) && M_GPENDATA->m_dash), wxT("Invalid internal dashes for pen")); + + if (M_GPENDATA->m_dash) + { + free(M_GPENDATA->m_dash); + M_GPENDATA->m_dash = NULL; + M_GPENDATA->m_dash_count = 0; + } + + if (!dash) + return; + + M_GPENDATA->m_dash_count = number_of_dashes; + M_GPENDATA->m_dash = (wxDash*)malloc(number_of_dashes*sizeof(wxDash)); + memcpy(M_GPENDATA->m_dash, dash, number_of_dashes*sizeof(wxDash)); +} + +wxPen wxGenericPen::GetPen() const +{ + wxCHECK_MSG(Ok(), wxNullPen, wxT("Invalid generic pen")); + wxPen pen(M_GPENDATA->m_colour.GetColour(), M_GPENDATA->m_width, M_GPENDATA->m_style); + pen.SetCap(M_GPENDATA->m_cap); + pen.SetJoin(M_GPENDATA->m_join); + if (M_GPENDATA->m_dash_count > 0) + pen.SetDashes(M_GPENDATA->m_dash_count, M_GPENDATA->m_dash); + + return pen; +} + +wxGenericColour wxGenericPen::GetGenericColour() const +{ + wxCHECK_MSG(Ok(), wxNullGenericColour, wxT("Invalid generic pen")); + return M_GPENDATA->m_colour; +} +wxColour wxGenericPen::GetColour() const +{ + wxCHECK_MSG(Ok(), wxNullColour, wxT("Invalid generic pen")); + return M_GPENDATA->m_colour.GetColour(); +} +int wxGenericPen::GetWidth() const +{ + wxCHECK_MSG(Ok(), 1, wxT("Invalid generic pen")); + return M_GPENDATA->m_width; +} +int wxGenericPen::GetStyle() const +{ + wxCHECK_MSG(Ok(), wxSOLID, wxT("Invalid generic pen")); + return M_GPENDATA->m_style; +} +int wxGenericPen::GetCap() const +{ + wxCHECK_MSG(Ok(), wxCAP_ROUND, wxT("Invalid generic pen")); + return M_GPENDATA->m_cap; +} +int wxGenericPen::GetJoin() const +{ + wxCHECK_MSG(Ok(), wxJOIN_ROUND, wxT("Invalid generic pen")); + return M_GPENDATA->m_join; +} +int wxGenericPen::GetDashes(wxDash **ptr) const +{ + wxCHECK_MSG(Ok(), 0, wxT("Invalid generic pen")); + *ptr = (wxDash*)M_GPENDATA->m_dash; + return M_GPENDATA->m_dash_count; +} +int wxGenericPen::GetDashCount() const +{ + wxCHECK_MSG(Ok(), 0, wxT("Invalid generic pen")); + return M_GPENDATA->m_dash_count; +} +wxDash* wxGenericPen::GetDash() const +{ + wxCHECK_MSG(Ok(), NULL, wxT("Invalid generic pen")); + return M_GPENDATA->m_dash; +} + +bool wxGenericPen::IsSameAs(const wxGenericPen &pen) const +{ + wxCHECK_MSG(Ok() && pen.Ok(), false, wxT("Invalid generic pen")); + wxGenericPenRefData *pData = (wxGenericPenRefData*)pen.GetRefData(); + + if ((M_GPENDATA->m_colour != pData->m_colour) || (M_GPENDATA->m_width != pData->m_width) || + (M_GPENDATA->m_style != pData->m_style) || (M_GPENDATA->m_cap != pData->m_cap) || + (M_GPENDATA->m_join != pData->m_join) || (M_GPENDATA->m_dash_count != pen.GetDashCount())) + return false; + + if (M_GPENDATA->m_dash_count > 0) + return memcmp(M_GPENDATA->m_dash, pen.GetDash(), M_GPENDATA->m_dash_count*sizeof(wxDash)) == 0; + + return true; +} +bool wxGenericPen::IsSameAs(const wxPen &pen) const +{ + wxCHECK_MSG(Ok() && pen.Ok(), false, wxT("Invalid generic pen")); + wxGenericPen gp(pen); + gp.GetGenericColour().SetAlpha(M_GPENDATA->m_colour.GetAlpha()); + return IsSameAs(gp); +} + + + + +/* +wxString wxGenericPen::WriteString() const +{ + wxString str; + str.Printf(wxT("%s,%d,%d,%d,%d,%d"), m_colour.WriteString().c_str(), + m_width, m_style, m_cap, m_join, + m_dash_count); + + for (int i = 0; i < m_dash_count; i++) + str += wxString::Format(wxT(",%d"), m_dash[i]); + + return str; +} + +bool wxGenericPen::ReadString(const wxString& str) +{ + wxArrayString tokens = wxStringTokenize(str, wxT(", "), wxTOKEN_DEFAULT); + size_t n, count = tokens.GetCount(); + + if (count < 9u) + return false; + + long val; + + for (n = 0; n < count; n++) + { + if (!tokens[n].ToLong(&val)) + return false; + + values.Add(int(val)); + } + + m_colour.Set(values[0], values[1], values[2], values[3]); + + size_t num_dashes = values[8]; + + if (num_dashes != count - 9) + return false; + + if (num_dashes > 0) + { + wxDash *dash = new wxDash[num_dashes]; + for (n = 0; n < num_dashes; n++) + dash[n] = (wxDash)values[n]; + + SetDashes(num_dashes, dash); + delete dash; + } + + + m_width = values[4]; + m_style = values[5]; + m_cap = values[6]; + m_join = values[7]; + //m_dash_count = values[8]; + + return true; +} +*/ + + +//---------------------------------------------------------------------------- +// wxGenericBrush +//---------------------------------------------------------------------------- +IMPLEMENT_DYNAMIC_CLASS(wxGenericBrush, wxObject) + +class wxGenericBrushRefData : public wxObjectRefData +{ +public: + wxGenericBrushRefData(const wxGenericColour& c = wxNullGenericColour, + int style = wxSOLID) : wxObjectRefData(), + m_colour(c), m_style(style) {} + + wxGenericBrushRefData(const wxGenericBrushRefData& data) : wxObjectRefData(), + m_colour(data.m_colour), m_style(data.m_style), m_stipple(data.m_stipple) {} + + ~wxGenericBrushRefData() { } + + wxGenericColour m_colour; + int m_style; + wxBitmap m_stipple; +}; + +#define M_GBRUSHDATA ((wxGenericBrushRefData*)m_refData) + +//---------------------------------------------------------------------------- +wxObjectRefData *wxGenericBrush::CreateRefData() const +{ + return new wxGenericBrushRefData; +} +wxObjectRefData *wxGenericBrush::CloneRefData(const wxObjectRefData *data) const +{ + return new wxGenericBrushRefData(*(const wxGenericBrushRefData *)data); +} + +void wxGenericBrush::Create( const wxGenericBrush &brush ) +{ + Ref(brush); +} +void wxGenericBrush::Create( const wxBrush &brush ) +{ + UnRef(); + m_refData = new wxGenericBrushRefData; + Set(brush); +} +void wxGenericBrush::Create(const wxGenericColour &colour, int style) +{ + UnRef(); + m_refData = new wxGenericBrushRefData(colour, style); +} +void wxGenericBrush::Create(const wxColour &colour, int style) +{ + Create(wxGenericColour(colour), style); +} +void wxGenericBrush::Create( const wxBitmap &stipple ) +{ + UnRef(); + wxCHECK_RET(stipple.Ok(), wxT("Invalid bitmap in wxGenericBrush::Create")); + + int style = stipple.GetMask() ? wxSTIPPLE_MASK_OPAQUE : wxSTIPPLE; + m_refData = new wxGenericBrushRefData(wxNullGenericColour, style); + M_GBRUSHDATA->m_stipple = stipple; +} + +void wxGenericBrush::Set( const wxGenericBrush& brush ) +{ + wxCHECK_RET(Ok() && brush.Ok(), wxT("Invalid generic brush")); + SetColour(brush.GetColour()); + M_GBRUSHDATA->m_style = brush.GetStyle(); + wxBitmap* stipple = brush.GetStipple(); + if (stipple && stipple->Ok()) + M_GBRUSHDATA->m_stipple = *stipple; +} +void wxGenericBrush::Set( const wxBrush &brush ) +{ + wxCHECK_RET(Ok() && brush.Ok(), wxT("Invalid generic brush")); + SetColour(brush.GetColour()); + M_GBRUSHDATA->m_style = brush.GetStyle(); + wxBitmap* stipple = brush.GetStipple(); + if (stipple && stipple->Ok()) + M_GBRUSHDATA->m_stipple = *stipple; +} +void wxGenericBrush::SetColour( const wxGenericColour &colour ) +{ + wxCHECK_RET(Ok() && colour.Ok(), wxT("Invalid generic brush or colour")); + M_GBRUSHDATA->m_colour = colour; +} +void wxGenericBrush::SetColour( const wxColour &colour ) +{ + SetColour(wxGenericColour(colour)); +} +void wxGenericBrush::SetColour( int red, int green, int blue, int alpha ) +{ + SetColour(wxGenericColour(red, green, blue, alpha)); +} +void wxGenericBrush::SetStyle( int style ) +{ + wxCHECK_RET(Ok(), wxT("Invalid generic brush")); + M_GBRUSHDATA->m_style = style; +} +void wxGenericBrush::SetStipple(const wxBitmap& stipple) +{ + wxCHECK_RET(Ok(), wxT("Invalid generic brush")); + M_GBRUSHDATA->m_stipple = stipple; + M_GBRUSHDATA->m_style = stipple.GetMask() ? wxSTIPPLE_MASK_OPAQUE : wxSTIPPLE; + +} + +wxBrush wxGenericBrush::GetBrush() const +{ + wxCHECK_MSG(Ok(), wxNullBrush, wxT("Invalid generic brush")); + if (M_GBRUSHDATA->m_stipple.Ok()) + return wxBrush(M_GBRUSHDATA->m_stipple); + + return wxBrush(M_GBRUSHDATA->m_colour.GetColour(), M_GBRUSHDATA->m_style); +} + +wxGenericColour wxGenericBrush::GetGenericColour() const +{ + wxCHECK_MSG(Ok(), wxNullGenericColour, wxT("Invalid generic brush")); + return M_GBRUSHDATA->m_colour; +} +wxColour wxGenericBrush::GetColour() const +{ + wxCHECK_MSG(Ok(), wxNullColour, wxT("Invalid generic brush")); + return M_GBRUSHDATA->m_colour.GetColour(); +} +int wxGenericBrush::GetStyle() const +{ + wxCHECK_MSG(Ok(), wxSOLID, wxT("Invalid generic brush")); + return M_GBRUSHDATA->m_style; +} +wxBitmap* wxGenericBrush::GetStipple() const +{ + wxCHECK_MSG(Ok(), NULL, wxT("Invalid generic brush")); + return &M_GBRUSHDATA->m_stipple; +} + +bool wxGenericBrush::IsSameAs(const wxGenericBrush& brush) const +{ + wxCHECK_MSG(Ok() && brush.Ok(), 1, wxT("Invalid generic brush")); + wxGenericBrushRefData *bData = (wxGenericBrushRefData*)brush.GetRefData(); + return (M_GBRUSHDATA->m_colour == bData->m_colour) && + (M_GBRUSHDATA->m_style == bData->m_style) && + (M_GBRUSHDATA->m_stipple == bData->m_stipple); +} +bool wxGenericBrush::IsSameAs(const wxBrush& brush) const +{ + wxCHECK_MSG(Ok() && brush.Ok(), 1, wxT("Invalid generic brush")); + wxGenericBrush gB(brush); + gB.GetGenericColour().SetAlpha(M_GBRUSHDATA->m_colour.GetAlpha()); + return IsSameAs(gB); +} diff --git a/3rdparty/wxthings/src/geometry.cpp b/3rdparty/wxthings/src/geometry.cpp new file mode 100644 index 0000000..7758d29 --- /dev/null +++ b/3rdparty/wxthings/src/geometry.cpp @@ -0,0 +1,210 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: geometry.cpp +// Author: John Labenski +// Created: 07/01/02 +// Copyright: John Labenski, 2002 +// License: wxWidgets v2 +///////////////////////////////////////////////////////////////////////////// + +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) + #pragma implementation "geometry.h" +#endif + +// For compilers that support precompilation, includes "wx/wx.h". +#include + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#include "wx/things/geometry.h" + +/* +2.4 : How do I generate a circle through three points? +Let the three given points be a, b, c. Use _0 and _1 to represent x and y coordinates. The coordinates of the center p=(p_0,p_1) of the circle determined by a, b, and c are: +A = b_0 - a_0; B = b_1 - a_1; C = c_0 - a_0; D = c_1 - a_1; +E = A*(a_0 + b_0) + B*(a_1 + b_1); F = C*(a_0 + c_0) + D*(a_1 + c_1); +G = 2.0*(A*(c_1 - b_1)-B*(c_0 - b_0)); +p_0 = (D*E - B*F) / G; p_1 = (A*F - C*E) / G; +If G is zero then the three points are collinear and no finite-radius circle through them exists. Otherwise, the radius of the circle is: +r^2 = (a_0 - p_0)^2 + (a_1 - p_1)^2 +[O' Rourke (C)] p. 201. Simplified by Jim Ward. +*/ + +wxCircleDouble::wxCircleDouble(const wxPoint2DDouble &p1, + const wxPoint2DDouble &p2, + const wxPoint2DDouble &p3) +{ + wxDouble A = p2.m_x - p1.m_x, + B = p2.m_y - p1.m_y, + C = p3.m_x - p1.m_x, + D = p3.m_y - p1.m_y; + + wxDouble E = A*(p1.m_x + p2.m_x) + B*(p1.m_y + p2.m_y), + F = C*(p1.m_x + p3.m_x) + D*(p1.m_y + p3.m_y), + G = 2.0*(A*(p3.m_y - p2.m_y)-B*(p3.m_x - p2.m_x)); + + if (G == 0) + { + m_x = m_y = m_r = 0; + return; + } + + m_x = (D*E - B*F) / G, + m_y = (A*F - C*E) / G; + m_r = sqrt( (p1.m_x - m_x)*(p1.m_x - m_x) + (p1.m_y - m_y)*(p1.m_y - m_y) ); +} + +int wxCircleDouble::IntersectLine( const wxRay2DDouble &line, + wxPoint2DDouble *pt1, + wxPoint2DDouble *pt2 ) const +{ + //if (line.GetDistanceToPoint(m_origin) > m_r) return 0; + + wxDouble l1_x = m_x-m_r, l1_y = line.GetYFromX(l1_x); + wxDouble l2_x = m_x+m_r, l2_y = line.GetYFromX(l2_x); + + // quick check to see it it intersects at all + //wxDouble top = m_origin.m_y-m_r, bot = m_origin.m_y+m_r; + //if (((l1_y < top)&&(l2_y < top))||((l1_y > bot)&&(l2_y > bot))) return 0; + + wxDouble l2_l1_x = l2_x - l1_x, l2_l1_y = l2_y - l1_y; + + wxDouble a = l2_l1_x*l2_l1_x + l2_l1_y*l2_l1_y; + wxDouble b = 2.0 * (l2_l1_x * (l1_x - m_x) + l2_l1_y * (l1_y - m_y) ); + + wxDouble c = m_x*m_x + m_y*m_y + l1_x*l1_x + l1_y*l1_y - 2.0*(m_x*l1_x + m_y*l1_y) - m_r*m_r; + wxDouble det = b*b - 4.0*a*c; + + if ( det < 0 ) + { + return 0; + } + else if ( det == 0 ) + { + if (pt1) + { + wxDouble u = -b/(2.0*a); + pt1->m_x = l2_x + u*l2_l1_x; + pt1->m_y = l2_y + u*l2_l1_y; + } + return 1; + } + // else det > 0 so 2 points intersect + wxDouble e = sqrt(det); + + if (pt1) + { + wxDouble u1 = (-b - e)/( 2.0*a ); + pt1->m_x = l1_x + u1*l2_l1_x; + pt1->m_y = l1_y + u1*l2_l1_y; + } + if (pt2) + { + wxDouble u2 = (-b + e)/( 2.0*a ); + pt2->m_x = l1_x + u2*l2_l1_x; + pt2->m_y = l1_y + u2*l2_l1_y; + } + + return 2; +} + + + + + + + + +/* +int wxEllipseInt::IntersectLine( const wxLine2DInt &line, + wxPoint2DInt &pt1, + wxPoint2DInt &pt2 ) const +{ + + //Intersection.intersectEllipseLine = function(c, rx, ry, a1, a2) { + //var result; + //line.m_pt // var origin = new Vector2D(a1.x, a1.y); + wxPoint2DInt dir = pt2 - p21; // var dir = Vector2D.fromPoints(a1, a2); + //m_origin //var center = new Vector2D(c.x, c.y); + wxPoint2DInt diff = line.m_pt - m_origin; //var diff = origin.subtract(center); + + //var mDir = new Vector2D( dir.x/(rx*rx), dir.y/(ry*ry) ); + wxPoint2DDouble mDir = wxPoint2DDouble(wxDouble(dir.m_x)/(m_radius.m_x*m_radius.m_x), + wxDouble(dir.m_y)/(m_radius.m_y*m_radius.m_y)); + //var mDiff = new Vector2D( diff.x/(rx*rx), diff.y/(ry*ry) ); + wxPoint2DDouble mDiff = wxPoint2DDouble(wxDouble(diff.m_x)/(m_radius.m_x*m_radius.m_x), + wxDouble(diff.m_y)/(m_radius.m_y*m_radius.m_y)); + + wxDouble a = dir.GetDotProduct(mDir); //var a = dir.dot(mDir); + wxDouble b = dir.GetDotProduct(mDiff); //var b = dir.dot(mDiff); + wxDouble c = diff.GetDotProduct(m_diff); //var c = diff.dot(mDiff) - 1.0; + wxDouble d = b*b - a*c; //var d = b*b - a*c; + + if ( d < 0 ) + { + return 0; //result = new Intersection("Outside"); + } + else if ( d > 0 ) + { + wxDouble root = sqrt(d); //var root = Math.sqrt(d); + wxDouble t_a = (-b - root)/a; //var t_a = (-b - root) / a; + wxDouble t_b = (-b + root)/a; //var t_b = (-b + root) / a; + + if ( (t_a < 0 || 1 < t_a) && (t_b < 0 || 1 < t_b) ) + { + if ( (t_a < 0 && t_b < 0) || (t_a > 1 && t_b > 1) ) + result = new Intersection("Outside"); + else + result = new Intersection("Inside"); + } + else + { + result = new Intersection("Intersection"); + if ( 0 <= t_a && t_a <= 1 ) + result.appendPoint( a1.lerp(a2, t_a) ); + if ( 0 <= t_b && t_b <= 1 ) + result.appendPoint( a1.lerp(a2, t_b) ); + } + } + else + { + var t = -b/a; + if ( 0 <= t && t <= 1 ) + { + result = new Intersection("Intersection"); + result.appendPoint( a1.lerp(a2, t) ); + } else + { + result = new Intersection("Outside"); + } + } + + return result; +} +*/ +/* +> I am looking for the algorithm to calculate the intersection of a line +with +> an ellipse, that is not necessarily parrallel to x,y axis. +> +> I cannot find anything that is easy to understand. + +The ellipse can be represented by a quadratic polynomial, +a00+a10*x+a01*y+a20*x^2+a11*x*y+a02*y^2 = 0. +The line is b0+b1*x+b2*y = 0 where one of b1 or b2 is +not zero. For the sake of argument, suppose b2 is not +zero. Solve for y = -(b0+b1*x)/b2. Replace this in the +quadratic equation and multiply through by b2^2 to get +Q(x) = c0 + c1*x + c2*x^2 = 0 where + c0 = a02*b0^2-a01*b0*b2+a00*b2^2 + c1 = 2*a02*b0*b1-a11*b0*b2-a01*b1*b2+a10*b2^2 + c2 = a02*b1^2-a11*b1*b2+a02*b2^2 +If Q(x) has no real roots, the line and ellipse do not intersect. +If Q(x) has a single, repeated real root x0, the line and ellipse +are tangent. The y-value is y0 = -(b0+b1*x0)/b2. If Q(x) +has two distinct real roots x0 and x1, the line and ellipse +intersect in two points (x0,y0) and (x1,y1) where +y0 = -(b0+b1*x0)/b2 and y1 = -(b0+b1*x1)/b2. + +*/ diff --git a/3rdparty/wxthings/src/menubtn.cpp b/3rdparty/wxthings/src/menubtn.cpp new file mode 100644 index 0000000..b83b5cb --- /dev/null +++ b/3rdparty/wxthings/src/menubtn.cpp @@ -0,0 +1,356 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: wxMenuButton +// Purpose: A button with a dropdown wxMenu +// Author: John Labenski +// Modified by: +// Created: 11/05/2002 +// RCS-ID: +// Copyright: (c) John Labenki +// Licence: wxWidgets licence +///////////////////////////////////////////////////////////////////////////// + +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) + #pragma implementation "menubtn.h" +#endif + +// For compilers that support precompilation, includes "wx/wx.h". +#include "wx/wxprec.h" + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#ifndef WX_PRECOMP + #include "wx/control.h" + #include "wx/menu.h" + #include "wx/settings.h" + #include "wx/bitmap.h" + #include "wx/pen.h" + #include "wx/dc.h" +#endif // WX_PRECOMP + +#include "wx/things/toggle.h" +#include "wx/things/menubtn.h" + +/* XPM */ +static const char *down_arrow_xpm_data[] = { +/* columns rows colors chars-per-pixel */ +"5 3 2 1", +" c None", +"a c Black", +/* pixels */ +"aaaaa", +" aaa ", +" a "}; + +static wxBitmap s_dropdownBitmap; // all buttons share the same bitmap + +enum +{ + IDD_DROPDOWN_BUTTON = 100 +}; + +//----------------------------------------------------------------------------- +// wxMenuButtonEvents +//----------------------------------------------------------------------------- + +DEFINE_LOCAL_EVENT_TYPE(wxEVT_MENUBUTTON_OPEN) + +// ========================================================================== +// MenuDropButton +// ========================================================================== + +class MenuDropButton : public wxCustomButton +{ +public: + MenuDropButton( wxWindow *parent, wxWindowID id, long style) : wxCustomButton() + { + if (!s_dropdownBitmap.Ok()) + s_dropdownBitmap = wxBitmap(down_arrow_xpm_data); + + Create( parent, id, wxEmptyString, s_dropdownBitmap, wxDefaultPosition, + wxSize(wxMENUBUTTON_DROP_WIDTH, wxMENUBUTTON_DROP_HEIGHT), style); + } + + virtual void Paint( wxDC &dc ) + { + wxCustomButton *labelBut = ((wxMenuButton*)GetParent())->GetLabelButton(); + + // pretend that both buttons have focus (for flat style) + if (labelBut) + { + wxPoint p = GetParent()->ScreenToClient(wxGetMousePosition()); + + if (GetRect().Inside(p) || labelBut->GetRect().Inside(p)) + { + m_focused = true; + + if (!labelBut->GetFocused()) + labelBut->SetFocused(true); + } + else + { + m_focused = false; + + if (labelBut->GetFocused()) + labelBut->SetFocused(false); + } + } + + wxCustomButton::Paint(dc); + } +}; + +// ========================================================================== +// MenuLabelButton +// ========================================================================== + +class MenuLabelButton : public wxCustomButton +{ +public: + MenuLabelButton( wxWindow* parent, wxWindowID id, + const wxString &label, + const wxBitmap &bitmap, + long style ) : wxCustomButton() + { + Create(parent, id, label, bitmap, wxDefaultPosition, wxDefaultSize, style); + } + + virtual void Paint( wxDC &dc ) + { + wxCustomButton *dropBut = ((wxMenuButton*)GetParent())->GetDropDownButton(); + + // pretend that both buttons have focus (for flat style) + if (dropBut) + { + wxPoint p = GetParent()->ScreenToClient(wxGetMousePosition()); + + if (GetRect().Inside(p) || dropBut->GetRect().Inside(p)) + { + m_focused = true; + + if (!dropBut->GetFocused()) + dropBut->SetFocused(true); + } + else + { + m_focused = false; + + if (dropBut->GetFocused()) + dropBut->SetFocused(false); + } + } + + wxCustomButton::Paint(dc); + } +}; + +// ========================================================================== +// wxMenuButton +// ========================================================================== + +IMPLEMENT_DYNAMIC_CLASS( wxMenuButton, wxControl ) + +BEGIN_EVENT_TABLE(wxMenuButton,wxControl) + EVT_BUTTON(wxID_ANY, wxMenuButton::OnButton) + +#ifdef __WXMSW__ + EVT_MENU(wxID_ANY, wxMenuButton::OnMenu) +#endif +END_EVENT_TABLE() + +wxMenuButton::~wxMenuButton() +{ + AssignMenu(NULL, true); +} + +void wxMenuButton::Init() +{ + m_labelButton = NULL; + m_dropdownButton = NULL; + m_menu = NULL; + m_menu_static = false; + m_style = 0; +} + +bool wxMenuButton::Create( wxWindow* parent, wxWindowID id, + const wxString &label, + const wxBitmap &bitmap, + const wxPoint& pos, + const wxSize& size, + long style, + const wxValidator& val, + const wxString& name) +{ + m_style = style; + + long flat = style & wxMENUBUT_FLAT; + + wxControl::Create(parent,id,pos,size,wxNO_BORDER|wxCLIP_CHILDREN,val,name); + wxControl::SetLabel(label); + SetBackgroundColour(parent->GetBackgroundColour()); + SetForegroundColour(parent->GetForegroundColour()); + SetFont(parent->GetFont()); + + m_labelButton = new MenuLabelButton(this, id, label, bitmap, wxCUSTBUT_BUTTON|flat); + m_dropdownButton = new MenuDropButton(this, IDD_DROPDOWN_BUTTON, wxCUSTBUT_BUTTON|flat); + + wxSize bestSize = DoGetBestSize(); + SetSize( wxSize(size.x < 0 ? bestSize.x : size.x, + size.y < 0 ? bestSize.y : size.y) ); + + //SetBestSize(GetSize()); + + return true; +} + +#ifdef __WXMSW__ +// FIXME - I think there was a patch to fix this +void wxMenuButton::OnMenu( wxCommandEvent &event ) +{ + event.Skip(); + wxMenuItem *mi = m_menu->FindItem(event.GetId()); + if (mi && (mi->GetKind() == wxITEM_RADIO)) + m_menu->Check(event.GetId(), true); +} +#endif // __WXMSW__ + +void wxMenuButton::OnButton( wxCommandEvent &event) +{ + int win_id = event.GetId(); + + if (win_id == IDD_DROPDOWN_BUTTON) + { + if (m_menu) + { + wxNotifyEvent mevent(wxEVT_MENUBUTTON_OPEN, GetId()); + mevent.SetEventObject(this); + if (GetEventHandler()->ProcessEvent(mevent) && !mevent.IsAllowed()) + return; + + if (!m_menu) + return; + + PopupMenu(m_menu, wxPoint(0, GetSize().y)); + + m_labelButton->Refresh(false); + m_dropdownButton->Refresh(false); + } + } + else if (win_id == m_labelButton->GetId()) + { + if (!m_menu) return; + + const wxMenuItemList &items = m_menu->GetMenuItems(); + int first_radio_id = -1; + int checked_id = -1; + bool check_next = false; + + // find the next available radio item to check + for (wxMenuItemList::Node *node = items.GetFirst(); node; node = node->GetNext()) + { + wxMenuItem *mi = (wxMenuItem*)node->GetData(); + if (mi && (mi->GetKind() == wxITEM_RADIO)) + { + if (first_radio_id == -1) + first_radio_id = mi->GetId(); + + if (check_next) + { + check_next = false; + checked_id = mi->GetId(); + break; + } + else if (mi->IsChecked()) + check_next = true; + } + } + // the last item was checked, go back to the first + if (check_next && (first_radio_id != -1)) + checked_id = first_radio_id; + + if (checked_id != -1) + { + m_menu->Check(checked_id, true); + + wxCommandEvent mevent( wxEVT_COMMAND_MENU_SELECTED, checked_id); + mevent.SetEventObject( m_menu ); + mevent.SetInt(1); + GetEventHandler()->ProcessEvent(mevent); + } + } +} + +int wxMenuButton::GetSelection() const +{ + wxCHECK_MSG(m_menu != NULL, wxNOT_FOUND, wxT("No attached menu in wxMenuButton::GetSelection")); + + const wxMenuItemList &items = m_menu->GetMenuItems(); + + for (wxMenuItemList::Node *node = items.GetFirst(); node; node = node->GetNext()) + { + wxMenuItem *mi = (wxMenuItem*)node->GetData(); + if (mi && (mi->GetKind() == wxITEM_RADIO)) + { + if (mi->IsChecked()) + return mi->GetId(); + } + } + + return wxNOT_FOUND; +} + +void wxMenuButton::AssignMenu(wxMenu *menu, bool static_menu) +{ + if (!m_menu_static && m_menu) + delete m_menu; + + m_menu = menu; + m_menu_static = static_menu; +} + +void wxMenuButton::SetToolTip(const wxString &tip) +{ + wxWindow::SetToolTip(tip); + ((wxWindow*)m_labelButton)->SetToolTip(tip); + ((wxWindow*)m_dropdownButton)->SetToolTip(tip); +} +void wxMenuButton::SetToolTip(wxToolTip *tip) +{ + wxWindow::SetToolTip(tip); + ((wxWindow*)m_labelButton)->SetToolTip(tip); + ((wxWindow*)m_dropdownButton)->SetToolTip(tip); +} + +void wxMenuButton::DoSetSize(int x, int y, int width, int height, int sizeFlags) +{ + wxSize curSize( GetSize() ); + wxSize bestSize( DoGetBestSize() ); + + if (width == -1) + width = curSize.GetWidth(); + if (width < 10) + width = bestSize.GetWidth(); + + if (height == -1) + height = curSize.GetHeight(); + if (height < 5) + height = bestSize.GetHeight(); + + wxWindow::DoSetSize(x, y, width, height, sizeFlags); + + if (m_labelButton) + m_labelButton->SetSize(0, 0, width - wxMENUBUTTON_DROP_WIDTH, height); + if (m_dropdownButton) + m_dropdownButton->SetSize(width-wxMENUBUTTON_DROP_WIDTH, 0, wxMENUBUTTON_DROP_WIDTH, height); +} + +wxSize wxMenuButton::DoGetBestSize() +{ + if (!m_labelButton || !m_dropdownButton) + return wxSize(wxMENUBUTTON_DROP_WIDTH+wxMENUBUTTON_DROP_HEIGHT, wxMENUBUTTON_DROP_HEIGHT); + + wxSize size = m_labelButton->GetBestSize(); + size.x += wxMENUBUTTON_DROP_WIDTH; + return size; +} diff --git a/3rdparty/wxthings/src/optvalue.cpp b/3rdparty/wxthings/src/optvalue.cpp new file mode 100644 index 0000000..02ea640 --- /dev/null +++ b/3rdparty/wxthings/src/optvalue.cpp @@ -0,0 +1,602 @@ +///////////////////////////////////////////////////////////////////////////// +// Name : optvalue.cpp +// Author : John Labenski +// Created : 07/01/02 +// Copyright: John Labenski, 2002 +// License : wxWidgets v2 +///////////////////////////////////////////////////////////////////////////// + +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) + #pragma implementation "optvalue.h" +#endif + +// For compilers that support precompilation, includes "wx/wx.h" +#include "wx/wxprec.h" + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#ifndef WX_PRECOMP + #include "wx/object.h" + #include "wx/string.h" + #include "wx/gdicmn.h" +#endif // WX_PRECOMP + +#include "wx/tokenzr.h" +#include "wx/things/optvalue.h" + +#include "wx/arrimpl.cpp" +WX_DEFINE_OBJARRAY(wxArrayOptionValue); + +//---------------------------------------------------------------------------- +// Global wxString utilities +//---------------------------------------------------------------------------- +/* +wxArrayString wxStringToWords( const wxString &string ) +{ + +// wxArrayString arr; +// wxString word, s = string.Strip(wxString::both); +// wxMemoryInputStream memstream( s.c_str(), string.Length() ); +// wxTextInputStream textstream(memstream); +// while (!memstream.Eof()) +// { +// word = textstream.ReadWord(); +// if (!word.IsEmpty()) arr.Add(word.Strip(wxString::both)); +// } +// return arr; + + wxArrayString arr; + wxString s = string.Strip(wxString::both); + while (!s.IsEmpty()) + { + arr.Add(s.BeforeFirst(wxT(' '))); + s = s.AfterFirst(wxT(' ')).Strip(wxString::both); + } + return arr; +} +*/ + +//---------------------------------------------------------------------------- +// wxOptionValueRefData +//---------------------------------------------------------------------------- + +class wxOptionValueRefData: public wxObjectRefData +{ +public: + wxOptionValueRefData() : wxObjectRefData() {} + + wxOptionValueRefData(const wxOptionValueRefData& data) : wxObjectRefData() + { + m_type = data.m_type; + m_optionNames = data.m_optionNames; + m_optionValues = data.m_optionValues; + m_children = data.m_children;; + } + + ~wxOptionValueRefData() {} + + wxString m_type; + wxArrayString m_optionNames; + wxArrayString m_optionValues; + wxArrayOptionValue m_children; +}; + +#define M_OPTVALUDATA ((wxOptionValueRefData *)m_refData) + +//---------------------------------------------------------------------------- +// wxOptionValue - a ref counted wxString key, wxString value container +//---------------------------------------------------------------------------- + +IMPLEMENT_DYNAMIC_CLASS(wxOptionValue, wxObject); + +wxObjectRefData *wxOptionValue::CreateRefData() const +{ + return new wxOptionValueRefData; +} +wxObjectRefData *wxOptionValue::CloneRefData(const wxObjectRefData *data) const +{ + return new wxOptionValueRefData(*(const wxOptionValueRefData *)data); +} + +bool wxOptionValue::Create() +{ + UnRef(); + m_refData = new wxOptionValueRefData(); + return Ok(); +} + +bool wxOptionValue::Create( const wxOptionValue &optValue ) +{ + wxCHECK_MSG( optValue.Ok(), false, wxT("Invalid wxOptionValue") ); + + UnRef(); + Ref( optValue ); + return Ok(); +} + +bool wxOptionValue::Create( const wxString &string ) +{ + UnRef(); + m_refData = new wxOptionValueRefData(); + + int i, start = 0, length = string.Length(); + + wxString buff; + + const wxChar *s = string.GetData(); + +// const wxChar comma = 44; // comma + const wxChar tab = 9; // tab +// const wxChar space = 32; // space + const wxChar cr = 13; // carrage return + const wxChar lf = 10; // line feed + const wxChar openbracket = wxT('['); + const wxChar closebracket = wxT(']'); + const wxChar equals = wxT('='); + const wxChar ccr = wxT('\n'); + + bool has_type = false; + + for (i=0; im_type = buff; + s++; + start = i+1; + break; + } + else if ((*s != tab) && (*s != cr) && (*s != lf) && (*s != ccr)) + { + buff.Append(*s); + } + else + return false; + } + } + + buff.Clear(); + for (i=start; i=0; j--) + { + const wxChar c = t[j]; + if ((c == cr) || (c == lf) || (c == ccr) || (c == tab)) + { + j++; + break; + } + } + if (j<0) j = 0; + M_OPTVALUDATA->m_optionNames.Add(buff.Mid(j)); + buff.Remove(j).Trim(true); + } + if (!buff.IsEmpty()) + M_OPTVALUDATA->m_optionValues.Add(buff); + + buff.Clear(); + } + s++; + } + + buff.Trim(false).Trim(true); + if (!buff.IsEmpty()) + M_OPTVALUDATA->m_optionValues.Add(buff); + + if ((M_OPTVALUDATA->m_optionValues.GetCount() != M_OPTVALUDATA->m_optionNames.GetCount())) + { + int i; + wxPrintf(wxT("wxOptionValue::wxOptionValue( const wxString &string BUSTED\n")); + + wxPrintf(wxT("[%s]\n"), M_OPTVALUDATA->m_type.c_str()); + for (i=0; i<(int)M_OPTVALUDATA->m_optionNames.GetCount(); i++) + wxPrintf(wxT("{%s}\n"), M_OPTVALUDATA->m_optionNames[i].c_str()); + for (i=0; i<(int)M_OPTVALUDATA->m_optionValues.GetCount(); i++) + wxPrintf(wxT("{%s}\n"), M_OPTVALUDATA->m_optionValues[i].c_str()); + fflush(stdout); + } + + return ((M_OPTVALUDATA->m_optionValues.GetCount() > 0) && + (M_OPTVALUDATA->m_optionValues.GetCount() != + M_OPTVALUDATA->m_optionNames.GetCount())); +} + +bool wxOptionValue::Copy( const wxOptionValue &optValue ) +{ + wxCHECK_MSG( optValue.Ok(), false, wxT("Invalid wxOptionValue") ); + + if (!Ok()) Create(); + + M_OPTVALUDATA->m_type = optValue.GetType(); + M_OPTVALUDATA->m_optionNames = optValue.GetOptionNames(); + M_OPTVALUDATA->m_optionValues = optValue.GetOptionValues(); + if (optValue.GetChildrenCount()) + M_OPTVALUDATA->m_children = *optValue.GetChildren(); + else + M_OPTVALUDATA->m_children.Clear(); + + return true; +} + +bool wxOptionValue::Ok() const +{ + return M_OPTVALUDATA != NULL; +} + +void wxOptionValue::Destroy() +{ + UnRef(); +} + +//----------------------------------------------------------------------------- + +wxString wxOptionValue::GetType() const +{ + wxCHECK_MSG( Ok(), wxEmptyString, wxT("Invalid wxOptionValue") ); + return M_OPTVALUDATA->m_type; +} + +void wxOptionValue::SetType( const wxString &type ) +{ + wxCHECK_RET( Ok(), wxT("Invalid wxOptionValue") ); + M_OPTVALUDATA->m_type = type; +} + +//----------------------------------------------------------------------------- + +size_t wxOptionValue::GetChildrenCount() const +{ + wxCHECK_MSG( Ok(), 0, wxT("Invalid wxOptionValue") ); + return M_OPTVALUDATA->m_children.GetCount(); +} +wxArrayOptionValue *wxOptionValue::GetChildren() const +{ + wxCHECK_MSG( Ok(), NULL, wxT("Invalid wxOptionValue") ); + return &M_OPTVALUDATA->m_children; +} +bool wxOptionValue::AddChild( const wxOptionValue& child ) +{ + wxCHECK_MSG( Ok() && child.Ok(), 0, wxT("Invalid wxOptionValue") ); + M_OPTVALUDATA->m_children.Add(child); + return true; +} +void wxOptionValue::DeleteChildren() +{ + wxCHECK_RET( Ok(), wxT("Invalid wxOptionValue") ); + M_OPTVALUDATA->m_children.Clear(); +} + +//----------------------------------------------------------------------------- + +size_t wxOptionValue::GetOptionCount() const +{ + wxCHECK_MSG( Ok(), 0, wxT("Invalid wxOptionValue") ); + return M_OPTVALUDATA->m_optionNames.GetCount(); +} + +wxArrayString wxOptionValue::GetOptionNames() const +{ + wxCHECK_MSG( Ok(), wxArrayString(), wxT("Invalid wxOptionValue") ); + return M_OPTVALUDATA->m_optionNames; +} +wxArrayString wxOptionValue::GetOptionValues() const +{ + wxCHECK_MSG( Ok(), wxArrayString(), wxT("Invalid wxOptionValue") ); + return M_OPTVALUDATA->m_optionValues; +} + +wxString wxOptionValue::GetOptionName( size_t n ) const +{ + wxCHECK_MSG( Ok() && (nm_optionNames.GetCount()), + wxEmptyString, wxT("Invalid wxOptionValue") ); + return M_OPTVALUDATA->m_optionNames[n]; +} + +wxString wxOptionValue::GetOptionValue( size_t n ) const +{ + wxCHECK_MSG( Ok() && (nm_optionValues.GetCount()), + wxEmptyString, wxT("Invalid wxOptionValue") ); + return M_OPTVALUDATA->m_optionValues[n]; +} + +int wxOptionValue::HasOption(const wxString& name) const +{ + wxCHECK_MSG( Ok(), wxNOT_FOUND, wxT("Invalid wxOptionValue") ); + int index = M_OPTVALUDATA->m_optionNames.Index(name, false); + return index; +} + +int wxOptionValue::FindOption(const wxString &part_of_option_name) const +{ + wxCHECK_MSG( Ok(), wxNOT_FOUND, wxT("Invalid wxOptionValue") ); + int i, count = M_OPTVALUDATA->m_optionNames.GetCount(); + + for (i=0; im_optionNames[i].Contains(part_of_option_name)) + return i; + } + return wxNOT_FOUND; +} + +bool wxOptionValue::DeleteOption(const wxString &name) +{ + wxCHECK_MSG( Ok(), false, wxT("Invalid wxOptionValue")); + int index = M_OPTVALUDATA->m_optionNames.Index(name, false); + if (index == wxNOT_FOUND) return false; + M_OPTVALUDATA->m_optionNames.RemoveAt(index); + M_OPTVALUDATA->m_optionValues.RemoveAt(index); + return true; +} + +bool wxOptionValue::DeleteOption( size_t n ) +{ + wxCHECK_MSG( Ok(), false, wxT("Invalid wxOptionValue") ); + wxCHECK_MSG( n < M_OPTVALUDATA->m_optionValues.GetCount(), false, wxT("invalid index")); + M_OPTVALUDATA->m_optionNames.RemoveAt(n); + M_OPTVALUDATA->m_optionValues.RemoveAt(n); + return true; +} + +//----------------------------------------------------------------------------- +// Set Options + +// Option functions (arbitrary name/value mapping) +void wxOptionValue::SetOption(const wxString& name, const wxString& value, bool force) +{ + wxCHECK_RET( Ok() && (name.Length() > 0), wxT("Invalid wxOptionValue or option") ); + + int idx = M_OPTVALUDATA->m_optionNames.Index(name, false); + if (idx == wxNOT_FOUND) + { + M_OPTVALUDATA->m_optionNames.Add(name); + M_OPTVALUDATA->m_optionValues.Add(value); + } + else if (force) + { + M_OPTVALUDATA->m_optionNames[idx] = name; + M_OPTVALUDATA->m_optionValues[idx] = value; + } +} + +void wxOptionValue::SetOption(const wxString &name, bool update, const wxChar *format, ...) +{ + va_list argptr; + va_start(argptr, format); + wxString s; + s.PrintfV(format, argptr); + va_end(argptr); + SetOption(name, s, update); +} + +//----------------------------------------------------------------------------- +// Get Options + +wxString wxOptionValue::GetOption(const wxString& name) const +{ + wxCHECK_MSG( Ok(), wxEmptyString, wxT("Invalid wxOptionValue") ); + + int idx = M_OPTVALUDATA->m_optionNames.Index(name, false); + if (idx != wxNOT_FOUND) + return M_OPTVALUDATA->m_optionValues[idx]; + + return wxEmptyString; +} + +int wxOptionValue::GetOptionInt(const wxString& name) const +{ + return wxAtoi(GetOption(name)); +} + +bool wxOptionValue::GetOption(const wxString& name, wxString &value ) const +{ + wxString s = GetOption(name); + if (!s.IsEmpty()) { value = s; return true; } + return false; +} +bool wxOptionValue::GetOption(const wxString& name, int *value ) const +{ + long n; + if (GetOption(name).ToLong(&n)) + { + *value = (int)n; + return true; + } + return false; +} +bool wxOptionValue::GetOption(const wxString& name, float *value ) const +{ + double n; + if (GetOption(name, &n)) + { + *value = (float)n; + return true; + } + return false; +} +bool wxOptionValue::GetOption(const wxString& name, double *value ) const +{ + double n; + if (GetOption(name).ToDouble(&n)) + { + *value = n; + return true; + } + return false; +} + +int wxOptionValue::GetOption(const wxString& name, const wxChar *format, ...) const +{ + wxString n = GetOption(name); + if (n.IsEmpty()) return 0; + va_list argptr; + va_start(argptr, format); +// int i = wxVsscanf(n.c_str(), format, argptr); // VisualStudio doesn't have this + int i = wxSscanf(n.c_str(), format, argptr); + va_end(argptr); + return i; +} + +int wxOptionValue::GetOption(const wxString& name, wxArrayInt &values, + int count, const wxString& delims) const +{ + wxString value = GetOption(name); + wxStringTokenizer tokens(value, delims, wxTOKEN_STRTOK); + int read_count = 0; + + while (((count < 0) || (read_count <= count)) && tokens.HasMoreTokens()) + { + long num; + if (!tokens.GetNextToken().ToLong(&num)) return read_count; + values.Add(num); + read_count++; + } + return read_count; +} + +bool wxOptionValue::GetOption(const wxString& name, unsigned char *value, int count, + const wxString& delims) const +{ + wxArrayInt intArr; intArr.Alloc(count); + if (GetOption(name, intArr, count, delims) != count) + return false; + + for (int i = 0; i < count; i++) value[i] = (unsigned char)intArr[i]; + return true; +} +bool wxOptionValue::GetOption(const wxString& name, int *value, int count, + const wxString& delims) const +{ + wxArrayInt intArr; intArr.Alloc(count); + if (GetOption(name, intArr, count, delims) != count) + return false; + + for (int i = 0; i < count; i++) value[i] = intArr[i]; + return true; +} +bool wxOptionValue::GetOption(const wxString& name, long *value, int count, + const wxString& delims) const +{ + wxArrayInt intArr; intArr.Alloc(count); + if (GetOption(name, intArr, count, delims) != count) + return false; + + for (int i = 0; i < count; i++) value[i] = intArr[i]; + return true; +} +bool wxOptionValue::GetOption(const wxString& name, float *value, int count, + const wxString& delims) const +{ + double *nums = (double*)malloc(sizeof(double)*count); + if (GetOption(name, nums, count, delims)) + { + for (int i=0; i < count; i++) value[i] = (float)nums[i]; + free(nums); + return true; + } + free(nums); + return false; +} +bool wxOptionValue::GetOption(const wxString& name, double *value, int count, + const wxString& delims) const +{ + wxString optValue = GetOption(name); + wxStringTokenizer tokens(optValue, delims, wxTOKEN_STRTOK); + int read_count = 0; + double *nums = (double*)malloc(sizeof(double)*count); + double num; + + while ((read_count <= count) && tokens.HasMoreTokens()) + { + if (!tokens.GetNextToken().ToDouble(&num)) + { + free(nums); + return false; + } + if (read_count >= count) break; + read_count++; + } + + if (read_count == count) + { + for (int i = 0; i < count; i++) value[i] = nums[i]; + free(nums); + return true; + } + + free(nums); + return false; +} + + +bool wxOptionValue::GetOption(const wxString& name, int *v1, int *v2, + const wxString& delims) const +{ + wxArrayInt intArr; + if (GetOption(name, intArr, 2, delims) != 2) + return false; + + if (v1) *v1 = intArr[0]; + if (v2) *v2 = intArr[1]; + return true; +} +bool wxOptionValue::GetOption(const wxString& name, int *v1, int *v2, int *v3, + const wxString& delims) const +{ + wxArrayInt intArr; + if (GetOption(name, intArr, 3, delims) != 3) + return false; + + if (v1) *v1 = intArr[0]; + if (v2) *v2 = intArr[1]; + if (v3) *v3 = intArr[2]; + return true; +} +bool wxOptionValue::GetOption(const wxString& name, float *v1, float *v2, float *v3, + const wxString& delims) const +{ + double nums[3]; + if (GetOption(name, nums, 3, delims)) + return false; + + if (v1) *v1 = (float)nums[0]; + if (v2) *v2 = (float)nums[1]; + if (v3) *v3 = (float)nums[2]; + return true; +} + +bool wxOptionValue::GetOption(const wxString& name, wxRect &value, + const wxString& delims) const +{ + wxArrayInt intArr; + if (GetOption(name, intArr, 4, delims) != 4) + return false; + + value = wxRect(intArr[0], intArr[1], intArr[2], intArr[3]); + return true; +} diff --git a/3rdparty/wxthings/src/range.cpp b/3rdparty/wxthings/src/range.cpp new file mode 100644 index 0000000..c191476 --- /dev/null +++ b/3rdparty/wxthings/src/range.cpp @@ -0,0 +1,642 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: range.cpp +// Purpose: Simple min-max range class and associated selection array class +// Author: John Labenski +// Created: 12/01/2000 +// Copyright: (c) John Labenski 2004 +// Licence: wxWidgets +///////////////////////////////////////////////////////////////////////////// + +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) + #pragma implementation "range.h" +#endif + +// For compilers that support precompilation, includes "wx.h". +#include "wx/wxprec.h" + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#ifndef WX_PRECOMP + #include "wx/utils.h" +#endif // WX_PRECOMP + +#include "wx/things/range.h" +#include + +const wxRangeInt wxEmptyRangeInt(0, -1); +const wxRangeDouble wxEmptyRangeDouble(0, -1); + +#include "wx/arrimpl.cpp" +WX_DEFINE_OBJARRAY(wxArrayRangeInt); +WX_DEFINE_OBJARRAY(wxArrayRangeDouble); +WX_DEFINE_OBJARRAY(wxArrayRangeIntSelection); +WX_DEFINE_OBJARRAY(wxArrayRangeDoubleSelection); + + +// set this if you want to double check that that ranges are really working +//#define CHECK_RANGES + +//============================================================================= +// wxRangeInt +//============================================================================= + +bool wxRangeInt::Combine(int i, bool only_if_touching) +{ + if (only_if_touching) + { + if (i == m_min-1) { m_min--; return true; } + else if (i == m_max+1) { m_max++; return true; } + } + else + { + if (i < m_min) { m_min = i; return true; } + else if (i > m_max) { m_max = i; return true; } + } + return false; +} + +bool wxRangeInt::Combine( const wxRangeInt &r, bool only_if_touching ) +{ + if (only_if_touching) + { + if (Touches(r)) + { + *this+=r; + return true; + } + } + else + { + bool added = false; + if (r.m_min < m_min) { m_min = r.m_min; added = true; } + if (r.m_max > m_max) { m_max = r.m_max; added = true; } + return added; + } + return false; +} + +bool wxRangeInt::Delete( const wxRangeInt &r, wxRangeInt *right ) +{ + if (!Contains(r)) + return false; + + if (right) *right = wxEmptyRangeInt; + + if (r.m_min <= m_min) + { + if (r.m_max >= m_max) + { + *this = wxEmptyRangeInt; + return true; + } + + m_min = r.m_max + 1; + return true; + } + + if (r.m_max >= m_max) + { + m_max = r.m_min - 1; + return true; + } + + if (right) + *right = wxRangeInt(r.m_max + 1, m_max); + + m_max = r.m_min - 1; + return true; +} + +//============================================================================= +// wxRangeIntSelection +//============================================================================= +const wxRangeInt& wxRangeIntSelection::GetRange( int index ) const +{ + wxCHECK_MSG((index>=0) && (index m_ranges[count-1].m_max) return wxNOT_FOUND; + + // Binary search + int res, tmp, lo = 0, hi = count; + + while ( lo < hi ) + { + tmp = (lo + hi)/2; + res = m_ranges[tmp].Position(i); + + if (res == 0) + return tmp; + else if ( res < 0 ) + hi = tmp; + else //if ( res > 0 ) + lo = tmp + 1; + } + + return wxNOT_FOUND; +} + +int wxRangeIntSelection::Index( const wxRangeInt &r ) const +{ + register int i, count = m_ranges.GetCount(); + for (i=0; i m_ranges[count-1].m_max) return count; + + // Binary search + int res, tmp, lo = 0, hi = count; + + while ( lo < hi ) + { + tmp = (lo + hi)/2; + res = m_ranges[tmp].Position(i); + + if ( res == 0 ) + return tmp; + else if ((i >= m_ranges[tmp].m_max) && (i < m_ranges[wxMin(tmp+1, count-1)].m_min)) + return tmp; + else if ( res < 0 ) + hi = tmp; + else //if ( res > 0 ) + lo = tmp + 1; + } + + // oops shouldn't get here + wxCHECK_MSG(0, -1, wxT("Error calculating NearestIndex in wxRangeIntSelection")); +} + +int wxRangeIntSelection::GetItemCount() const +{ + register int i, items = 0, count = m_ranges.GetCount(); + for (i=0; i 0 ? NearestIndex(range.m_min) : -1; + + if ((nearest < 0) || (nearest == count)) + return false; + + wxRangeInt r; + for (i=nearest; i 0) ? i-1 : -1; + } + else if (!r.IsEmpty()) + m_ranges.Insert(r, i+1); + + done = true; + } + } + + return done; +} + +bool wxRangeIntSelection::SelectRange(const wxRangeInt &range) +{ + wxCHECK_MSG(!range.IsEmpty(), false, wxT("Invalid Selection Range") ); + + // Try to find a range that includes this one and combine it, else insert it, else append it + bool done = false; + int i, count = m_ranges.GetCount(); + int nearest = count > 0 ? NearestIndex(range.m_min) : -1; + + if (nearest < 0) + { + if (!((count > 0) && m_ranges[0].Combine(range, true))) + m_ranges.Insert(range, 0); + return true; + } + else if (nearest == count) + { + if (!((count > 0) && m_ranges[count-1].Combine(range, true))) + m_ranges.Add(range); + return true; + } + else + { + if (m_ranges[nearest].Contains(range)) + return false; + + for (i=nearest; i= range.m_min) + break; + + if (m_ranges[i].m_max < range.m_min) // range is out of bounds + { + done = true; + m_ranges.RemoveAt(i); + count--; + i--; + } + else + { + done = true; + m_ranges[i].m_min = range.m_min; + break; + } + } + + for (i = m_ranges.GetCount() - 1; i >= 0; i--) + { + if (m_ranges[i].m_max <= range.m_max) + break; + + if (m_ranges[i].m_min > range.m_max) // range is out of bounds + { + done = true; + m_ranges.RemoveAt(i); + } + else + { + done = true; + m_ranges[i].m_max = range.m_max; + break; + } + } + + return done; +} + +//============================================================================= +// wxRangeDouble +//============================================================================= + +bool wxRangeDouble::Combine(double i) +{ + if (i < m_min) { m_min = i; return true; } + else if (i > m_max) { m_max = i; return true; } + return false; +} + +bool wxRangeDouble::Combine( const wxRangeDouble &r, bool only_if_touching ) +{ + if (only_if_touching) + { + if (Contains(r)) + { + *this+=r; + return true; + } + } + else + { + bool added = false; + if (r.m_min < m_min) { m_min = r.m_min; added = true; } + if (r.m_max > m_max) { m_max = r.m_max; added = true; } + return added; + } + return false; +} + +bool wxRangeDouble::Delete( const wxRangeDouble &r, wxRangeDouble *right ) +{ + if (!Contains(r)) + return false; + + if (right) *right = wxEmptyRangeDouble; + + if (r.m_min <= m_min) + { + if (r.m_max >= m_max) + { + *this = wxEmptyRangeDouble; + return true; + } + + m_min = r.m_max; + return true; + } + + if (r.m_max >= m_max) + { + m_max = r.m_min; + return true; + } + + if (right) + *right = wxRangeDouble(r.m_max, m_max); + + m_max = r.m_min; + return true; +} + +//============================================================================= +// wxRangeDoubleSelection +//============================================================================= +const wxRangeDouble& wxRangeDoubleSelection::GetRange( int index ) const +{ + wxCHECK_MSG((index>=0) && (index m_ranges[count-1].m_max) return wxNOT_FOUND; + + // Binary search + int res, tmp, lo = 0, hi = count; + + while ( lo < hi ) + { + tmp = (lo + hi)/2; + res = m_ranges[tmp].Position(i); + + if ( res == 0 ) + return tmp; + else if ( res < 0 ) + hi = tmp; + else //if ( res > 0 ) + lo = tmp + 1; + } + + return wxNOT_FOUND; + +/* + for (register int j=0; j m_ranges[count-1].m_max) return count; + + // Binary search + int res, tmp, lo = 0, hi = count; + + while ( lo < hi ) + { + tmp = (lo + hi)/2; + res = m_ranges[tmp].Position(i); + + if ( res == 0 ) + return tmp; + else if ((i >= m_ranges[tmp].m_max) && (i < m_ranges[wxMin(tmp+1, count-1)].m_min)) + return tmp; + else if ( res < 0 ) + hi = tmp; + else //if ( res > 0 ) + lo = tmp + 1; + } + + // oops shouldn't get here + wxCHECK_MSG(0, -1, wxT("Error calculating NearestIndex in wxRangeDoubleSelection")); +} + +bool wxRangeDoubleSelection::SelectRange(const wxRangeDouble &range) +{ + wxCHECK_MSG(!range.IsEmpty(), false, wxT("Invalid Selection Range") ); + + // Try to find a range that includes this one and combine it, else insert it, else append it + bool done = false; + int i, count = m_ranges.GetCount(); + int nearest = count > 0 ? NearestIndex(range.m_min) : -1; + + if (nearest < 0) + { + if (!((count > 0) && m_ranges[0].Combine(range, true))) + m_ranges.Insert(range, 0); + return true; + } + else if (nearest == count) + { + if (!((count > 0) && m_ranges[count-1].Combine(range, true))) + m_ranges.Add(range); + return true; + } + else + { + if (m_ranges[nearest].Contains(range)) + return false; + + for (i=nearest; i 0 ? NearestIndex(range.m_min) : -1; + + if ((nearest < 0) || (nearest == count)) + return false; + + wxRangeDouble r; + for (i=nearest; i 0) ? i-1 : -1; + } + else if (!r.IsEmpty()) + m_ranges.Insert(r, i+1); + + done = true; + } + } + + return done; +} + +bool wxRangeDoubleSelection::BoundRanges(const wxRangeDouble& range) +{ + wxCHECK_MSG(!range.IsEmpty(), false, wxT("Invalid Bounding Range") ); + int i, count = m_ranges.GetCount(); + bool done = false; + + for (i = 0; i < count; i++) + { + if (m_ranges[i].m_min >= range.m_min) + break; + + if (m_ranges[i].m_max < range.m_min) // range is out of bounds + { + done = true; + m_ranges.RemoveAt(i); + count--; + i--; + } + else + { + done = true; + m_ranges[i].m_min = range.m_min; + break; + } + } + + for (i = m_ranges.GetCount() - 1; i >= 0; i--) + { + if (m_ranges[i].m_max <= range.m_max) + break; + + if (m_ranges[i].m_min > range.m_max) // range is out of bounds + { + done = true; + m_ranges.RemoveAt(i); + } + else + { + done = true; + m_ranges[i].m_max = range.m_max; + break; + } + } + + return done; +} diff --git a/3rdparty/wxthings/src/spinctld.cpp b/3rdparty/wxthings/src/spinctld.cpp new file mode 100644 index 0000000..214d80c --- /dev/null +++ b/3rdparty/wxthings/src/spinctld.cpp @@ -0,0 +1,624 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: spinctld.h +// Author: John Labenski +// Created: 11/05/02 +// Copyright: John Labenski, 2002 +// License: wxWidgets +///////////////////////////////////////////////////////////////////////////// + +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) + #pragma implementation "spinctld.h" +#endif + +// For compilers that support precompilation, includes "wx/wx.h". +#include "wx/wxprec.h" + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#ifndef WX_PRECOMP + #include "wx/valtext.h" // for wxTextValidator + #include "wx/textctrl.h" +#endif // WX_PRECOMP + +#include "wx/things/spinctld.h" +#include + +#if wxCHECK_VERSION(2,5,0) + #include "wx/math.h" +#else + #if defined(__VISUALC__) || defined(__BORLANDC__) || defined(__WATCOMC__) + #include + #define wxFinite(x) _finite(x) + #elif defined(__GNUG__)||defined(__GNUWIN32__)||defined(__DJGPP__)|| \ + defined(__SGI_CC__)||defined(__SUNCC__)||defined(__XLC__)|| \ + defined(__HPUX__)||defined(__MWERKS__) + #define wxFinite(x) finite(x) + #else + #define wxFinite(x) ((x) == (x)) + #endif +#endif // wxCHECK_VERSION(2,5,0) + +// NOTES : if the textctrl is focused and the program is ending, a killfocus +// event is sent in MSW, this is why m_textCtrl is set to NULL in it's +// destructor and there's so many checks for it not being NULL + +//---------------------------------------------------------------------------- +// wxSpinCtrlDbl +//---------------------------------------------------------------------------- + +// the textctrl used for the wxSpinCtrlDbl, needed for keypresses +class wxSpinCtrlDblTextCtrl : public wxTextCtrl +{ +public: + wxSpinCtrlDblTextCtrl( wxWindow *parent, wxWindowID id, + const wxString &value = wxEmptyString, + const wxPoint &pos = wxDefaultPosition, + const wxSize &size = wxDefaultSize, + long style = 0, + const wxValidator& validator = wxDefaultValidator, + const wxString &name = wxTextCtrlNameStr); + + // MSW sends extra kill focus event + virtual ~wxSpinCtrlDblTextCtrl() + { + if (m_parent) m_parent->m_textCtrl = NULL; + m_parent = NULL; + } + + wxSpinCtrlDbl *m_parent; + + void OnChar( wxKeyEvent &event ); // pass chars to wxSpinCtrlDbl + void OnKillFocus( wxFocusEvent &event ); // sync the spin to textctrl + +private: + DECLARE_EVENT_TABLE() +}; + +BEGIN_EVENT_TABLE(wxSpinCtrlDblTextCtrl,wxTextCtrl) +// EVT_TEXT_ENTER( wxID_ANY, wxSpinCtrlDblTextCtrl::OnTextEnter ) // get them from spinctrldbl +// EVT_TEXT( wxID_ANY, wxSpinCtrlDblTextCtrl::OnTextUpdate ) // get them from spinctrldbl + EVT_CHAR( wxSpinCtrlDblTextCtrl::OnChar ) + EVT_KILL_FOCUS( wxSpinCtrlDblTextCtrl::OnKillFocus ) +END_EVENT_TABLE() + +wxSpinCtrlDblTextCtrl::wxSpinCtrlDblTextCtrl( wxWindow *parent, wxWindowID id, + const wxString &value, + const wxPoint &pos, const wxSize &size, + long style, + const wxValidator& validator, + const wxString &name) + :wxTextCtrl( parent, id, value, pos, size, style, + validator, name) +{ + m_parent = (wxSpinCtrlDbl*)parent; +} + +void wxSpinCtrlDblTextCtrl::OnChar( wxKeyEvent &event ) +{ + if (m_parent) m_parent->OnChar( event ); +} + +void wxSpinCtrlDblTextCtrl::OnKillFocus( wxFocusEvent &event ) +{ + if (m_parent) m_parent->SyncSpinToText(true); + event.Skip(); +} + +//---------------------------------------------------------------------------- +// wxSpinCtrlDbl +//---------------------------------------------------------------------------- + +IMPLEMENT_DYNAMIC_CLASS( wxSpinCtrlDbl, wxControl ) + +BEGIN_EVENT_TABLE(wxSpinCtrlDbl,wxControl) + EVT_SPIN_UP ( wxID_ANY, wxSpinCtrlDbl::OnSpinUp ) + EVT_SPIN_DOWN ( wxID_ANY, wxSpinCtrlDbl::OnSpinDown ) + EVT_TEXT_ENTER( wxID_ANY, wxSpinCtrlDbl::OnTextEnter ) + //EVT_TEXT ( wxID_ANY, wxSpinCtrlDbl::OnText ) + EVT_SET_FOCUS ( wxSpinCtrlDbl::OnFocus ) + EVT_KILL_FOCUS( wxSpinCtrlDbl::OnKillFocus ) +END_EVENT_TABLE() + +void wxSpinCtrlDbl::Init() +{ + m_min = 0; + m_max = 100; + m_value = 0; + m_default_value = 0; + m_increment = 1; + m_digits = wxSPINCTRLDBL_AUTODIGITS; + m_snap_ticks = false; + m_spinButton = NULL; + m_textCtrl = NULL; +} + +bool wxSpinCtrlDbl::Create( wxWindow *parent, wxWindowID id, + const wxString& value, + const wxPoint& pos, const wxSize& size, + long style, + double min, double max, + double initial, + double increment, int digits, + const wxString& name) +{ + if (!wxControl::Create(parent, id, pos, size, style|wxNO_BORDER, + wxDefaultValidator, name)) + return false; + + wxControl::SetLabel(name); + wxControl::SetBackgroundColour(parent->GetBackgroundColour()); + wxControl::SetForegroundColour(parent->GetForegroundColour()); + + int width = size.GetWidth(), height = size.GetHeight(); + + wxSize best_size( DoGetBestSize() ); + if (width == -1) width = best_size.GetWidth(); + if (height == -1) height = best_size.GetHeight(); + + // Create a validator for numbers, +-, and eE for exponential + wxTextValidator validator(wxFILTER_INCLUDE_CHAR_LIST); + +#if wxCHECK_VERSION(2, 5, 4) + wxArrayString list; + + wxString valid_chars(wxT(" 0123456789+-.eE")); + size_t len = valid_chars.Length(); + for (size_t i=0; iGetSize().GetWidth(), height), + wxTE_NOHIDESEL|wxTE_PROCESS_ENTER, validator); + + DoSetSize( pos.x, pos.y, width, height ); + SetBestSize(wxSize(width, height)); + + m_min = min; + m_max = max; + m_value = initial; + m_default_value = initial; + m_increment = increment; + SetDigits( digits ); + + // set the value here without generating an event + if (!value.IsEmpty()) + m_textCtrl->SetValue(value); + else + m_textCtrl->SetValue(wxString::Format(m_textFormat.c_str(), initial)); + + return true; +} + +wxSpinCtrlDbl::~wxSpinCtrlDbl() +{ + if (m_textCtrl) // null this since MSW sends KILL_FOCUS on deletion + { + m_textCtrl->m_parent = NULL; + + wxSpinCtrlDblTextCtrl *text = m_textCtrl; + m_textCtrl = NULL; + delete text; + } + + delete m_spinButton; + m_spinButton = NULL; +} + +#define wxSPINCTRLDBL_SPIN_WIDTH 15 +#define wxSPINCTRLDBL_SPIN_HEIGHT 22 + +void wxSpinCtrlDbl::DoSetSize(int x, int y, int width, int height, int sizeFlags) +{ + //wxPrintf(wxT("DoSetSize %d, %d %d %d %d %d\n"), GetId(), x, y, width, height, sizeFlags); + + wxSize bestSize( DoGetBestSize() ); + if (width < 0) width = bestSize.GetWidth(); + if (height < 0) height = bestSize.GetHeight(); + + wxWindow::DoSetSize(x, y, width, height, sizeFlags); + + int spinwidth = wxSPINCTRLDBL_SPIN_WIDTH; + int spinheight = wxSPINCTRLDBL_SPIN_HEIGHT; + if (m_spinButton) + m_spinButton->GetSize( &spinwidth, &spinheight ); + +#ifdef __WIN95__ // humm... these used to be different + if (m_textCtrl) m_textCtrl->SetSize( 0, 0, width - spinwidth, height ); + if (m_spinButton) m_spinButton->SetSize( width-spinwidth-2, 0, -1, height ); + //m_textCtrl->SetSize( -3, -3, width - spinwidth, height ); // old wxWin < 2.3.2 + //m_spinButton->SetSize( width-spinwidth-4, -3, -1, height-1 ); +#else + if (m_textCtrl) m_textCtrl->SetSize( 0, 0, width - spinwidth, height ); + if (m_spinButton) m_spinButton->SetSize( width-spinwidth, 0, -1, height ); +#endif +} + +static wxSize s_spinctrl_bestSize(-999,-999); + +wxSize wxSpinCtrlDbl::DoGetBestSize() const +{ + //wxPrintf(wxT("GetBestSize %d\n"), GetId()); + if (s_spinctrl_bestSize.x == -999) + { + wxSpinCtrl spin((wxWindow*)this, wxID_ANY); + s_spinctrl_bestSize = spin.GetBestSize(); + // oops something went wrong, set to reasonable value + if (s_spinctrl_bestSize.GetWidth() < 20) + s_spinctrl_bestSize.SetWidth(95); + if (s_spinctrl_bestSize.GetHeight() < 10) + s_spinctrl_bestSize.SetHeight(wxSPINCTRLDBL_SPIN_HEIGHT); + } + + return s_spinctrl_bestSize; +} + +void wxSpinCtrlDbl::DoSendEvent() +{ + wxCommandEvent event( wxEVT_COMMAND_SPINCTRL_UPDATED, GetId() ); + event.SetEventObject( this ); + event.SetInt( (int)(m_value+0.5) ); + if (m_textCtrl) event.SetString( m_textCtrl->GetValue() ); + GetEventHandler()->ProcessEvent( event ); +} + +void wxSpinCtrlDbl::OnSpinUp( wxSpinEvent &WXUNUSED(event) ) +{ + if (m_textCtrl && m_textCtrl->IsModified() ) + SyncSpinToText(false); + + if ( InRange(m_value + m_increment) ) + { + m_value += m_increment; + SetValue( m_value ); + DoSendEvent(); + } +} + +void wxSpinCtrlDbl::OnSpinDown( wxSpinEvent &WXUNUSED(event) ) +{ + if (m_textCtrl && m_textCtrl->IsModified() ) + SyncSpinToText(false); + + if ( InRange(m_value - m_increment) ) + { + m_value -= m_increment; + SetValue( m_value ); + DoSendEvent(); + } +} + +void wxSpinCtrlDbl::OnTextEnter( wxCommandEvent &event ) +{ + SyncSpinToText(true); + event.Skip(); +} + +void wxSpinCtrlDbl::OnText( wxCommandEvent &event ) +{ + //wxPrintf(wxT("Text '%s'\n"), event.GetString()); fflush(stdout); + event.Skip(); +} + +void wxSpinCtrlDbl::OnChar( wxKeyEvent &event ) +{ + double modifier = 1.0; + if ( event.m_shiftDown ) modifier = 2.0; + if ( event.m_controlDown ) modifier *= 10.0; + if ( event.m_altDown ) modifier *= 100.0; + + switch ( event.GetKeyCode() ) + { + case WXK_UP : + { + if (m_textCtrl && m_textCtrl->IsModified()) SyncSpinToText(false); + SetValue( m_value + m_increment * modifier ); + DoSendEvent(); + break; + } + case WXK_DOWN : + { + if (m_textCtrl && m_textCtrl->IsModified()) SyncSpinToText(false); + SetValue( m_value - m_increment * modifier ); + DoSendEvent(); + break; + } + case WXK_PRIOR : // pg-up + { + if (m_textCtrl && m_textCtrl->IsModified()) SyncSpinToText(false); + SetValue( m_value + m_increment * 10.0 * modifier ); + DoSendEvent(); + break; + } + case WXK_NEXT : // pg-down + { + if (m_textCtrl && m_textCtrl->IsModified()) SyncSpinToText(false); + SetValue( m_value - m_increment * 10.0 * modifier ); + DoSendEvent(); + break; + } + case WXK_SPACE : + { + SetValue(m_value); + event.Skip(false); + break; + } + case WXK_ESCAPE : + { + SetDefaultValue(); + DoSendEvent(); + break; + } + case WXK_TAB : + { + wxNavigationKeyEvent new_event; + new_event.SetEventObject( GetParent() ); + new_event.SetDirection( !event.ShiftDown() ); + // CTRL-TAB changes the (parent) window, i.e. switch notebook page + new_event.SetWindowChange( event.ControlDown() ); + new_event.SetCurrentFocus( this ); + GetParent()->GetEventHandler()->ProcessEvent( new_event ); + break; + } + default : event.Skip(); break; + } +} + +void wxSpinCtrlDbl::SetValue( double value ) +{ + if (!m_textCtrl || !InRange(value)) + return; + + if ( m_snap_ticks && (m_increment != 0) ) + { + double snap_value = (value - m_default_value) / m_increment; + + if (wxFinite(snap_value)) // FIXME what to do about a failure? + { + if (snap_value - floor(snap_value) < ceil(snap_value) - snap_value) + value = m_default_value + floor(snap_value) * m_increment; + else + value = m_default_value + ceil(snap_value) * m_increment; + } + } + + wxString str(wxString::Format(m_textFormat.c_str(), value)); + + if ((value != m_value) || (str != m_textCtrl->GetValue())) + { + m_textCtrl->SetValue( str ); + m_textCtrl->DiscardEdits(); + m_value = value; + str.ToDouble( &m_value ); // wysiwyg for textctrl + } +} + +void wxSpinCtrlDbl::SetValue( const wxString& text, bool force ) +{ + if (!m_textCtrl) return; + + double value; + if ( text.ToDouble(&value) ) + SetValue( value ); + else if (force) + { + m_textCtrl->SetValue( text ); + m_textCtrl->DiscardEdits(); + } +} + +void wxSpinCtrlDbl::SetRange( double min_val, double max_val ) +{ + //wxCHECK_RET(max_val > min_val, wxT("invalid spinctrl range")); + m_min = min_val; + m_max = max_val; + + if (HasRange()) + { + if (m_value > m_max) + SetValue(m_max); + else if (m_value < m_min) + SetValue(m_min); + } +} + +void wxSpinCtrlDbl::SetIncrement( double increment ) +{ + m_increment = increment; + SetValue(m_value); +} + +void wxSpinCtrlDbl::SetDigits( int digits, formatType fmt ) +{ + wxCHECK_RET(digits >= -1, wxT("invalid spinctrl format")); + + if ((digits == wxSPINCTRLDBL_AUTODIGITS) && (fmt != lg_fmt)) + { + wxString wxstr; + int lastplace = -1, extra_digits = 0; + if (fmt == le_fmt) + { + wxstr.Printf(wxT("%le"), m_increment ); + wxstr.LowerCase(); + lastplace = wxstr.Find(wxT('e')) - 2; + long places; + if (wxstr.AfterFirst(wxT('e')).ToLong(&places)) + extra_digits = int(labs(places)); + } + else if (fmt == lf_fmt) + { + wxstr.Printf(wxT("%lf"), m_increment ); + lastplace = wxstr.Len()-1; + } + + int decimalplace = wxstr.Find(wxT('.')); + + int i = 0; + + for ( i=lastplace; i>decimalplace; i-- ) + { + if ( wxstr.GetChar(i) != wxT('0') ) + { + m_digits = extra_digits + i-decimalplace; + switch (fmt) + { + case le_fmt : m_textFormat.Printf(wxT("%%.%dle"), m_digits ); break; + case lf_fmt : + default : m_textFormat.Printf(wxT("%%.%dlg"), m_digits ); break; + } + + SetValue(m_value); + return; + } + } + + m_digits = 0; // no digits, I guess + } + else + m_digits = digits; + + switch (fmt) + { + case le_fmt : m_textFormat.Printf(wxT("%%.%dle"), m_digits ); break; + case lg_fmt : + { + if (m_digits == -1) + m_textFormat.Printf(wxT("%%lg") ); + else + m_textFormat.Printf(wxT("%%.%dlg"), m_digits ); + break; + } + case lf_fmt : + default : m_textFormat.Printf(wxT("%%.%dlf"), m_digits ); break; + } + + SetValue(m_value); +} + +void wxSpinCtrlDbl::SetFormat( const wxString& format ) +{ + wxString wxstr; + if ( wxstr.Printf(format.c_str(), 123456.123456) > 0 ) + m_textFormat = format; + + SetValue(m_value); +} + +void wxSpinCtrlDbl::SetDefaultValue( double default_value ) +{ + if ( InRange(default_value) ) + { + m_default_value = default_value; + SetDefaultValue(); + } +} + +void wxSpinCtrlDbl::SetSnapToTicks(bool forceTicks) +{ + if (m_snap_ticks != forceTicks) + { + m_snap_ticks = forceTicks; + SetValue( m_value ); + } +} + +void wxSpinCtrlDbl::OnFocus( wxFocusEvent &event ) +{ + if (m_textCtrl) + m_textCtrl->SetFocus(); // this is to pass TAB navigation + + event.Skip(); +} + +void wxSpinCtrlDbl::OnKillFocus( wxFocusEvent &event ) +{ + SyncSpinToText(true); + event.Skip(); +} + +void wxSpinCtrlDbl::SyncSpinToText(bool send_event, bool force_valid) +{ + if (!m_textCtrl) + return; + + double txt_value; + if ( m_textCtrl->GetValue().ToDouble( &txt_value ) ) + { + if ( force_valid || !HasRange() || InRange(txt_value) ) + { + if (force_valid && HasRange()) + { + if (txt_value > GetMax()) + txt_value = GetMax(); + else if (txt_value < GetMin()) + txt_value = GetMin(); + } + + if (m_value != txt_value) + { + SetValue( txt_value ); + if (send_event) DoSendEvent(); + } + } + } + else if (force_valid) + { + // textctrl is out of sync, discard and reset + SetValue(GetValue()); + } +} + +bool wxSpinCtrlDbl::SetFont( const wxFont &font ) +{ + if (!m_textCtrl) return false; + return m_textCtrl->SetFont( font ); +} +wxFont wxSpinCtrlDbl::GetFont() const +{ + if (!m_textCtrl) return GetFont(); + return m_textCtrl->GetFont(); +} + +bool wxSpinCtrlDbl::SetBackgroundColour(const wxColour& colour) +{ + if (!m_textCtrl) return wxControl::SetBackgroundColour(colour); + bool ret = false; + ret = m_textCtrl->SetBackgroundColour(colour); + m_textCtrl->Refresh(); // FIXME is this necessary in GTK/OSX + return ret; +} +wxColour wxSpinCtrlDbl::GetBackgroundColour() const +{ + if (!m_textCtrl) return wxControl::GetBackgroundColour(); + return m_textCtrl->GetBackgroundColour(); +} + +bool wxSpinCtrlDbl::SetForegroundColour(const wxColour& colour) +{ + if (!m_textCtrl) return wxControl::SetForegroundColour(colour); + bool ret = false; + ret = m_textCtrl->SetForegroundColour(colour); + m_textCtrl->Refresh(); + return ret; +} +wxColour wxSpinCtrlDbl::GetForegroundColour() const +{ + if (!m_textCtrl) return wxControl::GetForegroundColour(); + return m_textCtrl->GetForegroundColour(); +} diff --git a/3rdparty/wxthings/src/toggle.cpp b/3rdparty/wxthings/src/toggle.cpp new file mode 100644 index 0000000..9765308 --- /dev/null +++ b/3rdparty/wxthings/src/toggle.cpp @@ -0,0 +1,573 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: wxCustomButton based on wxCustomToggleCtrl.cpp +// Purpose: a toggle button +// Author: Bruce Phillips +// Modified by: John Labenski +// Created: 11/05/2002 +// RCS-ID: +// Copyright: (c) Bruce Phillips, John Labenki +// Licence: wxWidgets licence +///////////////////////////////////////////////////////////////////////////// + +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) + #pragma implementation "toggle.h" +#endif + +// For compilers that support precompilation, includes "wx/wx.h". +#include "wx/wxprec.h" + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#ifndef WX_PRECOMP + #include "wx/control.h" + #include "wx/settings.h" + #include "wx/bitmap.h" + #include "wx/timer.h" + #include "wx/dc.h" + #include "wx/dcclient.h" +#endif // WX_PRECOMP + +#include "wx/tglbtn.h" +#include "wx/image.h" +#include "wx/things/toggle.h" + +// ========================================================================== +// wxCustomButton +// ========================================================================== +IMPLEMENT_DYNAMIC_CLASS( wxCustomButton, wxControl ) + +BEGIN_EVENT_TABLE(wxCustomButton,wxControl) + EVT_MOUSE_EVENTS ( wxCustomButton::OnMouseEvents ) + EVT_PAINT ( wxCustomButton::OnPaint ) + EVT_TIMER ( wxID_ANY, wxCustomButton::OnTimer) + EVT_SIZE ( wxCustomButton::OnSize ) +END_EVENT_TABLE() + +wxCustomButton::~wxCustomButton() +{ + if (HasCapture()) ReleaseMouse(); + if (m_timer) delete m_timer; +} + +void wxCustomButton::Init() +{ + m_focused = false; + m_labelMargin = wxSize(4,4); + m_bitmapMargin = wxSize(2,2); + m_down = 0; + m_timer = NULL; + m_eventType = 0; + m_button_style = wxCUSTBUT_TOGGLE|wxCUSTBUT_BOTTOM; +} + +bool wxCustomButton::Create(wxWindow* parent, wxWindowID id, + const wxString& label, const wxBitmap &bitmap, + const wxPoint& pos, const wxSize& size, + long style, const wxValidator& val, + const wxString& name) +{ + if (!wxControl::Create(parent,id,pos,size,wxNO_BORDER|wxCLIP_CHILDREN,val,name)) + return false; + + wxControl::SetLabel(label); + wxControl::SetBackgroundColour(parent->GetBackgroundColour()); + wxControl::SetForegroundColour(parent->GetForegroundColour()); + wxControl::SetFont(parent->GetFont()); + + if (bitmap.Ok()) m_bmpLabel = bitmap; + + if (!SetButtonStyle(style)) return false; + + wxSize bestSize = DoGetBestSize(); + SetSize(wxSize(size.x<0 ? bestSize.x:size.x, size.y<0 ? bestSize.y:size.y)); + SetBestSize(GetSize()); + + CalcLayout(true); + return true; +} + +void wxCustomButton::SetValue(bool depressed) +{ + wxCHECK_RET(!(m_button_style & wxCUSTBUT_NOTOGGLE), wxT("can't set button state")); + m_down = depressed ? 1 : 0; + Refresh(false); +} + +bool wxCustomButton::SetButtonStyle(long style) +{ + int n_styles = 0; + if ((style & wxCUSTBUT_LEFT) != 0) n_styles++; + if ((style & wxCUSTBUT_RIGHT) != 0) n_styles++; + if ((style & wxCUSTBUT_TOP) != 0) n_styles++; + if ((style & wxCUSTBUT_BOTTOM) != 0) n_styles++; + wxCHECK_MSG(n_styles < 2, false, wxT("Only one wxCustomButton label position allowed")); + + n_styles = 0; + if ((style & wxCUSTBUT_NOTOGGLE) != 0) n_styles++; + if ((style & wxCUSTBUT_BUTTON) != 0) n_styles++; + if ((style & wxCUSTBUT_TOGGLE) != 0) n_styles++; + if ((style & wxCUSTBUT_BUT_DCLICK_TOG) != 0) n_styles++; + if ((style & wxCUSTBUT_TOG_DCLICK_BUT) != 0) n_styles++; + wxCHECK_MSG(n_styles < 2, false, wxT("Only one wxCustomButton style allowed")); + + m_button_style = style; + + if ((m_button_style & wxCUSTBUT_BUTTON) != 0) + m_down = 0; + + CalcLayout(true); + return true; +} + +void wxCustomButton::SetLabel( const wxString &label ) +{ + wxControl::SetLabel(label); + CalcLayout(true); +} + +// sequence of events in GTK is up, dclick, up. + +void wxCustomButton::OnMouseEvents(wxMouseEvent& event) +{ + if (m_button_style & wxCUSTBUT_NOTOGGLE) return; + + if (event.LeftDown() || event.RightDown()) + { + if (!HasCapture()) + CaptureMouse(); // keep depressed until up + + m_down++; + Redraw(); + } + else if (event.LeftDClick() || event.RightDClick()) + { + m_down++; // GTK eats second down event + Redraw(); + } + else if (event.LeftUp()) + { + if (HasCapture()) + ReleaseMouse(); + + m_eventType = wxEVT_LEFT_UP; + + if (wxRect(wxPoint(0,0), GetSize()).Inside(event.GetPosition())) + { + if ((m_button_style & wxCUSTBUT_BUTTON) && (m_down > 0)) + { + m_down = 0; + Redraw(); + SendEvent(); + return; + } + else + { + if (!m_timer) + { + m_timer = new wxTimer(this, m_down+1); + m_timer->Start(200, true); + } + else + { + m_eventType = wxEVT_LEFT_DCLICK; + } + + if ((m_button_style & wxCUSTBUT_TOGGLE) && + (m_button_style & wxCUSTBUT_TOG_DCLICK_BUT)) m_down++; + } + } + + Redraw(); + } + else if (event.RightUp()) + { + if (HasCapture()) + ReleaseMouse(); + + m_eventType = wxEVT_RIGHT_UP; + + if (wxRect(wxPoint(0,0), GetSize()).Inside(event.GetPosition())) + { + if ((m_button_style & wxCUSTBUT_BUTTON) && (m_down > 0)) + { + m_down = 0; + Redraw(); + SendEvent(); + return; + } + else + { + m_down++; + + if (!m_timer) + { + m_timer = new wxTimer(this, m_down); + m_timer->Start(250, true); + } + else + { + m_eventType = wxEVT_RIGHT_DCLICK; + } + } + } + + Redraw(); + } + else if (event.Entering()) + { + m_focused = true; + if ((event.LeftIsDown() || event.RightIsDown()) && HasCapture()) + m_down++; + + Redraw(); + } + else if (event.Leaving()) + { + m_focused = false; + if ((event.LeftIsDown() || event.RightIsDown()) && HasCapture()) + m_down--; + + Redraw(); + } +} + +void wxCustomButton::OnTimer( wxTimerEvent &event ) +{ + m_timer->Stop(); + delete m_timer; + m_timer = NULL; + + // Clean up the button presses + // FIXME - GTK eats second left down for a DClick, who know about the others? + if (m_button_style & wxCUSTBUT_BUTTON) + { + m_down = 0; + } + else if (m_button_style & wxCUSTBUT_TOGGLE) + { + if (m_eventType == wxEVT_LEFT_UP) + m_down = event.GetId()%2 ? 0 : 1; + else + m_down = event.GetId()%2 ? 1 : 0; + } + else if (m_button_style & wxCUSTBUT_BUT_DCLICK_TOG) + { + if (m_eventType == wxEVT_LEFT_DCLICK) + m_down = event.GetId()%2 ? 0 : 1; + else + m_down = event.GetId()%2 ? 1 : 0; + } + else if (m_button_style & wxCUSTBUT_TOG_DCLICK_BUT) + { + if (m_eventType == wxEVT_LEFT_UP) + m_down = event.GetId()%2 ? 0 : 1; + else + m_down = event.GetId()%2 ? 1 : 0; + } + + Refresh(false); + SendEvent(); +} + +void wxCustomButton::SendEvent() +{ + if (((m_button_style & wxCUSTBUT_TOGGLE) && (m_eventType == wxEVT_LEFT_UP)) || + ((m_button_style & wxCUSTBUT_BUT_DCLICK_TOG) && (m_eventType == wxEVT_LEFT_DCLICK)) || + ((m_button_style & wxCUSTBUT_TOG_DCLICK_BUT) && (m_eventType == wxEVT_LEFT_UP))) + { + wxCommandEvent eventOut(wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, GetId()); + eventOut.SetInt(m_down%2 ? 1 : 0); + eventOut.SetExtraLong(m_eventType); + eventOut.SetEventObject(this); + GetEventHandler()->ProcessEvent(eventOut); + } + else + { + wxCommandEvent eventOut(wxEVT_COMMAND_BUTTON_CLICKED, GetId()); + eventOut.SetInt(0); + eventOut.SetExtraLong(m_eventType); + eventOut.SetEventObject(this); + GetEventHandler()->ProcessEvent(eventOut); + } +} + +wxBitmap wxCustomButton::CreateBitmapDisabled(const wxBitmap &bitmap) const +{ + wxCHECK_MSG(bitmap.Ok(), wxNullBitmap, wxT("invalid bitmap")); + + unsigned char br = GetBackgroundColour().Red(); + unsigned char bg = GetBackgroundColour().Green(); + unsigned char bb = GetBackgroundColour().Blue(); + + wxImage image = bitmap.ConvertToImage(); + int pos, width = image.GetWidth(), height = image.GetHeight(); + unsigned char *img_data = image.GetData(); + + for (int j=0; j lh ? bh : lh; + if (has_bitmap && has_label) lw -= wxMin(m_labelMargin.x, m_bitmapMargin.x); + return wxSize(lw+bw, h); + } + + int w = bw > lw ? bw : lw; + if (has_bitmap && has_label) lh -= wxMin(m_labelMargin.y, m_bitmapMargin.y); + return wxSize(w, lh+bh); +} + +void wxCustomButton::CalcLayout(bool refresh) +{ + int w, h; + GetSize(&w,&h); + + int bw = 0, bh = 0; + int lw = 0, lh = 0; + + if (m_bmpLabel.Ok()) // assume they're all the same size + { + bw = m_bmpLabel.GetWidth(); + bh = m_bmpLabel.GetHeight(); + } + wxString label = GetLabel(); + if (!label.IsEmpty()) + { + GetTextExtent(label, &lw, &lh); + } + + // Center the label or bitmap if only one or the other + if (!m_bmpLabel.Ok()) + { + m_bitmapPos = wxPoint(0,0); + m_labelPos = wxPoint((w-lw)/2, (h-lh)/2); + } + else if (label.IsEmpty()) + { + m_bitmapPos = wxPoint((w-bw)/2, (h-bh)/2); + m_labelPos = wxPoint(0,0); + } + else if (m_button_style & wxCUSTBUT_LEFT) + { + int mid_margin = wxMax(m_labelMargin.x, m_bitmapMargin.x); + m_labelPos = wxPoint((w - (bw+lw+m_labelMargin.x+m_bitmapMargin.x+mid_margin))/2 + m_labelMargin.x, (h - lh)/2); + m_bitmapPos = wxPoint(m_labelPos.x + lw + mid_margin, (h - bh)/2); + } + else if (m_button_style & wxCUSTBUT_RIGHT) + { + int mid_margin = wxMax(m_labelMargin.x, m_bitmapMargin.x); + m_bitmapPos = wxPoint((w - (bw+lw+m_labelMargin.x+m_bitmapMargin.x+mid_margin))/2 + m_bitmapMargin.x, (h - bh)/2); + m_labelPos = wxPoint(m_bitmapPos.x + bw + mid_margin, (h - lh)/2); + } + else if (m_button_style & wxCUSTBUT_TOP) + { + int mid_margin = wxMax(m_labelMargin.y, m_bitmapMargin.y); + m_labelPos = wxPoint((w - lw)/2, (h - (bh+lh+m_labelMargin.y+m_bitmapMargin.y+mid_margin))/2 + m_labelMargin.y); + m_bitmapPos = wxPoint((w - bw)/2, m_labelPos.y + lh + mid_margin); + } + else // if (m_button_style & wxCUSTBUT_BOTTOM) DEFAULT + { + int mid_margin = wxMax(m_labelMargin.y, m_bitmapMargin.y); + m_bitmapPos = wxPoint((w - bw)/2, (h - (bh+lh+m_labelMargin.y+m_bitmapMargin.y+mid_margin))/2 + m_bitmapMargin.y); + m_labelPos = wxPoint((w - lw)/2, m_bitmapPos.y + bh + mid_margin); + } + + if (refresh) Refresh(false); +} diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..6ccfadb --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,429 @@ +cmake_minimum_required (VERSION 2.6.1) +SET(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/3rdparty/CMakeModules" ${CMAKE_MODULE_PATH}) +project (Slam6D) + +#include_directories(OPENGL_INCLUDE_DIR) +IF(WIN32) + set(Boost_USE_STATIC_LIBS TRUE) +ELSE(WIN32) + set(Boost_USE_STATIC_LIBS FALSE) +ENDIF(WIN32) + +SET(Boost_ADDITIONAL_VERSIONS "1.42" "1.42.0" "1.44" "1.44.0" "1.45.0" "1.45" "1.46" "1.46.1" "1.47.0" "1.47" "1.48" "1.49") +IF(WIN32) + # for some unknown reason no one variant works on all windows platforms + find_package( Boost COMPONENTS serialization graph regex filesystem system thread date_time REQUIRED) +ELSE(WIN32) + find_package( Boost COMPONENTS serialization graph regex filesystem system thread date_time REQUIRED) +ENDIF(WIN32) + +if(Boost_FOUND) + link_directories(${BOOST_LIBRARY_DIRS}) + include_directories(${Boost_INCLUDE_DIRS}) + add_definitions(${Boost_LIB_DIAGNOSTIC_DEFINITIONS}) +endif() + +################################################# +# Declare Options and modify build accordingly ## +################################################# + +## FreeGLUT +OPTION(WITH_FREEGLUT "Whether freeglut is available. This enables iterative drawing in show. ON/OFF" ON) + +IF(WITH_FREEGLUT) + MESSAGE(STATUS "With freeglut") + SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DWITH_FREEGLUT") +ELSE(WITH_FREEGLUT) + MESSAGE(STATUS "Without freeglut") +ENDIF(WITH_FREEGLUT) + +## Show +OPTION(WITH_SHOW "Whether to build Show. This is the Visualization program of slam6d. ON/OFF" ON) + +IF(WITH_SHOW) + FIND_PACKAGE(OpenGL REQUIRED) + FIND_PACKAGE(GLUT REQUIRED) + MESSAGE(STATUS "With show") +ELSE(WITH_SHOW) + # SET (WITH_OCTREE_DISPLAY "ON" CACHE INTERNAL "" FORCE) + MESSAGE(STATUS "Without show") +ENDIF(WITH_SHOW) + +## WXShow +OPTION(WITH_WXSHOW "Whether to build WXShow. This is the wxwidgets variant of Show. ON/OFF" OFF) + +IF(WITH_WXSHOW) + FIND_PACKAGE(OpenGL REQUIRED) + FIND_PACKAGE(GLUT REQUIRED) + find_package(wxWidgets COMPONENTS core base gl REQUIRED) + # set wxWidgets_wxrc_EXECUTABLE to be ignored in the configuration + SET (wxWidgets_wxrc_EXECUTABLE " " CACHE INTERNAL "" FORCE) + # wxWidgets include (this will do all the magic to configure everything) + include( ${wxWidgets_USE_FILE}) + MESSAGE(STATUS "With wxshow") +ELSE(WITH_XWSHOW) + MESSAGE(STATUS "Without wxshow") +ENDIF(WITH_WXSHOW) + +## Shapes +OPTION(WITH_SHAPE_DETECTION "Whether to build shapes and planes executable for detecting planes. ON/OFF" OFF) +IF(WITH_SHAPE_DETECTION) + MESSAGE(STATUS "With shape detection") +ELSE(WITH_SHAPE_DETECTION) + MESSAGE(STATUS "Without shape detection") +ENDIF(WITH_SHAPE_DETECTION) + +## Interior reconstruction +option(WITH_MODEL "Whether to build model executable for modelling interior environments. ON/OFF" OFF) + +if(WITH_MODEL) + message(STATUS "With interior reconstruction") +else(WITH_MODEL) + message(STATUS "Without interior reconstruction") +endif(WITH_MODEL) + +## Thermo +OPTION(WITH_THERMO "Whether to build executables for mutual calibration of laser scanner and camera. ON/OFF" OFF) +IF(WITH_THERMO) + FIND_PACKAGE(OpenCV REQUIRED) + add_subdirectory(3rdparty/cvblob) + include_directories(${CMAKE_SOURCE_DIR}/3rdparty/cvblob) + link_directories(${CMAKE_SOURCE_DIR}/3rdparty/cvblob) + MESSAGE(STATUS "With thermo") +ELSE(WITH_THERMO) + MESSAGE(STATUS "Without thermo") +ENDIF(WITH_THERMO) + +## Octree +OPTION(WITH_OCTREE_DISPLAY "Whether to use octree display for efficiently culling scans ON/OFF" ON) + +IF(WITH_OCTREE_DISPLAY) + MESSAGE(STATUS "Using octree display") + SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DUSE_GL_POINTS") +ELSE(WITH_OCTREE_DISPLAY) + MESSAGE(STATUS "Using displaylists: Warning potentially much slower") +ENDIF(WITH_OCTREE_DISPLAY) +#SET (WITH_OCTREE_DISPLAY ${WITH_OCTREE_DISPLAY} CACHE BOOL +#"Whether to use octree display for efficiently culling scans ON/OFF" FORCE) + + +## Octree +OPTION(WITH_COMPACT_OCTREE "Whether to use the compact octree display ON/OFF" OFF) + +IF(WITH_COMPACT_OCTREE) + MESSAGE(STATUS "Using compact octrees") + SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DUSE_COMPACT_TREE") +ELSE(WITH_COMPACT_OCTREE) + MESSAGE(STATUS "Not using compact octreees: Warning uses more memory") +ENDIF(WITH_COMPACT_OCTREE) + +## Glee? +OPTION(WITH_GLEE "Whether to use OpenGL extensions, requires glee. ON/OFF" OFF) + +IF(WITH_GLEE) + MESSAGE(STATUS "Using opengl extensions") + SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DWITH_GLEE") +ELSE(WITH_GLEE) + MESSAGE(STATUS "Not using opengl extensions") +ENDIF(WITH_GLEE) + +## Gridder +OPTION(WITH_GRIDDER "Whether to build the 2DGridder binary ON/OFF" OFF) + +IF(WITH_GRIDDER) + MESSAGE(STATUS "With 2DGridder") +ELSE(WITH_GRIDDER) + MESSAGE(STATUS "Without 2DGridder") +ENDIF(WITH_GRIDDER) + +## Dynamic VELOSLAM +OPTION(WITH_VELOSLAM "Whether to build the Velodyne data processing (veloslam/veloshow) ON/OFF" OFF) + +IF(WITH_VELOSLAM) + MESSAGE(STATUS "With VELOSLAM") +ELSE(WITH_VELOSLAM) + MESSAGE(STATUS "Without VELOSLAM") +ENDIF(WITH_VELOSLAM) + +## Home-made Laserscanner +OPTION(WITH_DAVID_3D_SCANNER "Whether to build the David scanner app for homemade laser scanners binary ON/OFF" OFF) + +IF(WITH_DAVID_3D_SCANNER) + MESSAGE(STATUS "With David scanner") +ELSE(WITH_DAVID_3D_SCANNER) + MESSAGE(STATUS "Without David scanner") +ENDIF(WITH_DAVID_3D_SCANNER) + +## Tools + +OPTION(WITH_TOOLS "Whether to build additional tools like convergence frame_to_graph etc. ON/OFF" OFF) + +IF(WITH_TOOLS) + MESSAGE(STATUS "With Tools") +ELSE(WITH_TOOLS) + MESSAGE(STATUS "Without Tools") +ENDIF(WITH_TOOLS) + + + +## Scan reduction +OPTION(WITH_SCAN_REDUCTION "Whether to build the scan reduction binary scan_red ON/OFF" OFF) + +IF(WITH_SCAN_REDUCTION) + MESSAGE(STATUS "With scan_red") +ELSE(WITH_SCAN_REDUCTION) + MESSAGE(STATUS "Without scan_red") +ENDIF(WITH_SCAN_REDUCTION) + +## Scan difference +OPTION(WITH_SCAN_DIFF "Whether to build the scan_diff binary ON/OFF" OFF) + +IF(WITH_SCAN_DIFF) + MESSAGE(STATUS "With scan_diff") +ELSE(WITH_SCAN_DIFF) + MESSAGE(STATUS "Without scan_diff") +ENDIF(WITH_SCAN_DIFF) + + +## CAD matching +OPTION (WITH_CAD "Wether to build with CAD import lib ON/OFF" OFF) + +IF (WITH_CAD) + MESSAGE (STATUS "With CAD import") + find_package (Boost COMPONENTS program_options filesystem REQUIRED) +ELSE (WITH_CAD) + MESSAGE (STATUS "Without CAD import") +ENDIF (WITH_CAD) + +## RivLib +OPTION(WITH_RIVLIB "Whether the RIEGL rivlib is present ON/OFF" OFF) + +IF(WITH_RIVLIB) + MESSAGE(STATUS "Compiling a scan IO for RXP files") + include_directories(${CMAKE_SOURCE_DIR}/3rdparty) + link_directories(${CMAKE_SOURCE_DIR}/3rdparty) + SET(RIEGL_DIR ${CMAKE_SOURCE_DIR}/3rdparty/riegl/) + IF(WIN32) + SET(RIVLIB ${RIEGL_DIR}libscanlib-mt.lib ${RIEGL_DIR}libctrllib-mt.lib ${RIEGL_DIR}libboost_system-mt-1_43_0-vns.lib) + ELSE(WIN32) + SET(RIVLIB ${RIEGL_DIR}libscanlib-mt-s.a ${RIEGL_DIR}libctrllib-mt-s.a ${RIEGL_DIR}libboost_system-mt-s-1_43_0-vns.a pthread) + ENDIF(WIN32) + FIND_PACKAGE(LibXml2 ) + +ELSE(WITH_RIVLIB) + MESSAGE(STATUS "Do NOT compile a scan IO for RXP") +ENDIF(WITH_RIVLIB) + +## CUDA support, TODO depend on CUDA_FIND +OPTION(WITH_CUDA "Compile with CUDA support" OFF) +IF(WITH_CUDA) + MESSAGE(STATUS "Compiling WITH CUDA support") + FIND_PACKAGE(CUDA) + SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DWITH_CUDA") +ELSE(WITH_CUDA) + MESSAGE(STATUS "Compiling WITHOUT CUDA support") +ENDIF(WITH_CUDA) + +## PMD +OPTION(WITH_PMD "Whether to build the PMD tools like grabVideoAnd3D calibrate etc. ON/OFF" OFF) + +IF(WITH_PMD) + FIND_PACKAGE(OpenGL REQUIRED) + MESSAGE(STATUS "With Tools") +ELSE(WITH_PMD) + MESSAGE(STATUS "Without Tools") +ENDIF(WITH_PMD) + +## FBR +OPTION(WITH_FBR "Whether to compile feature based registration. ON/OFF" OFF) + +IF(WITH_FBR) + MESSAGE(STATUS "With FBR ") +ELSE(WITH_FBR) + MESSAGE(STATUS "Without FBR") +ENDIF(WITH_FBR) + +## Special treatment for system specifics +IF(APPLE) +add_definitions(-Dfopen64=fopen) +ENDIF(APPLE) + +## Multiple Cores +IF(APPLE) + SET(PROCESSOR_COUNT 2) +ELSE(APPLE) + INCLUDE(CountProcessors) + SET(NUMBER_OF_CPUS "${PROCESSOR_COUNT}" CACHE STRING "The number of processors to use (default: ${PROCESSOR_COUNT})" ) +ENDIF(APPLE) + +# OPEN +FIND_PACKAGE(OpenMP) +IF(OPENMP_FOUND) + OPTION(WITH_OPENMP "Whether to use parallel processing capabilities of OPENMP. ON/OFF" ON) +ENDIF(OPENMP_FOUND) + +IF(OPENMP_FOUND AND WITH_OPENMP) + MESSAGE(STATUS "With OpenMP ") + SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DMAX_OPENMP_NUM_THREADS=${PROCESSOR_COUNT} -DOPENMP_NUM_THREADS=${NUMBER_OF_CPUS} ${OpenMP_CXX_FLAGS} -DOPENMP") +ELSE(OPENMP_FOUND AND WITH_OPENMP) + MESSAGE(STATUS "Without OpenMP") + SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DMAX_OPENMP_NUM_THREADS=1 -DOPENMP_NUM_THREADS=1") +ENDIF(OPENMP_FOUND AND WITH_OPENMP) + +## TORO +OPTION(WITH_TORO "Whether to use TORO. ON/OFF" OFF) + +IF(WITH_TORO) + IF(WIN32) + SET(Subversion_SVN_EXECUTABLE "svn.exe") + ENDIF(WIN32) + cmake_minimum_required (VERSION 2.8) + include(ExternalProject) + ExternalProject_Add(toro3d + SVN_REPOSITORY https://www.openslam.org/data/svn/toro/trunk + SOURCE_DIR "${CMAKE_SOURCE_DIR}/3rdparty/toro" + CONFIGURE_COMMAND "" + BUILD_COMMAND make + BUILD_IN_SOURCE 1 + INSTALL_COMMAND cp ${CMAKE_SOURCE_DIR}/3rdparty/toro/toro3d ${CMAKE_SOURCE_DIR}/bin/ + ) + MESSAGE(STATUS "With TORO ") +ELSE(WITH_TORO) + MESSAGE(STATUS "Without TORO") +ENDIF(WITH_TORO) + + +## HOGMAN +OPTION(WITH_HOGMAN "Whether to use HOGMAN. ON/OFF" OFF) + +IF(WITH_HOGMAN) + # dependant on libqt4-devi + find_package( Qt4 REQUIRED) + # CMake of earlier versions do not have external project capabilities + cmake_minimum_required (VERSION 2.8) + include(ExternalProject) + ExternalProject_Add(hogman + SVN_REPOSITORY https://svn.openslam.org/data/svn/hog-man/trunk + SOURCE_DIR "${CMAKE_SOURCE_DIR}/3rdparty/hogman" + CONFIGURE_COMMAND /configure --prefix= + BUILD_COMMAND LD_LIBRARY_PATH=${CMAKE_SOURCE_DIR}/3rdparty/hogman/lib make + BUILD_IN_SOURCE 1 + INSTALL_COMMAND cp ${CMAKE_SOURCE_DIR}/3rdparty/hogman/bin/hogman3d ${CMAKE_SOURCE_DIR}/bin/ && + cp ${CMAKE_SOURCE_DIR}/3rdparty/hogman/lib/libhogman_csparse.so ${CMAKE_SOURCE_DIR}/lib/ && + cp ${CMAKE_SOURCE_DIR}/3rdparty/hogman/lib/libhogman_graph_optimizer_hogman.so ${CMAKE_SOURCE_DIR}/lib/ && + cp ${CMAKE_SOURCE_DIR}/3rdparty/hogman/lib/libhogman_graph_optimizer.so ${CMAKE_SOURCE_DIR}/lib/ && + cp ${CMAKE_SOURCE_DIR}/3rdparty/hogman/lib/libhogman_graph.so ${CMAKE_SOURCE_DIR}/lib/ && + cp ${CMAKE_SOURCE_DIR}/3rdparty/hogman/lib/libhogman_graph_viewer.so ${CMAKE_SOURCE_DIR}/lib/ && + cp ${CMAKE_SOURCE_DIR}/3rdparty/hogman/lib/libhogman_math.so ${CMAKE_SOURCE_DIR}/lib/ && + cp ${CMAKE_SOURCE_DIR}/3rdparty/hogman/lib/libhogman_qglviewer.so ${CMAKE_SOURCE_DIR}/lib/ && + cp ${CMAKE_SOURCE_DIR}/3rdparty/hogman/lib/libhogman_stuff.so ${CMAKE_SOURCE_DIR}/lib/ + ) + MESSAGE(STATUS "With HOGMAN: Currently hogman needs to be compiled manually, please make sure hogman3d is somewhere in your PATH") +ELSE(WITH_HOGMAN) + MESSAGE(STATUS "Without HOGMAN") +ENDIF(WITH_HOGMAN) + +OPTION(EXPORT_SHARED_LIBS "Whether to build additional shared libraries for use in other projects. ON/OFF" OFF) + +IF(EXPORT_SHARED_LIBS) + MESSAGE(STATUS "exporting additional libraries") +ELSE(EXPORT_SHARED_LIBS) + MESSAGE(STATUS "not exporting libraries") +ENDIF(EXPORT_SHARED_LIBS) + +OPTION(WITH_METRICS "Whether to use metrics in slam6d. ON/OFF" OFF) + +IF(WITH_METRICS) + MESSAGE(STATUS "With metrics in slam6d.") + SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DWITH_METRICS") +ELSE(WITH_METRICS) + MESSAGE(STATUS "Without metrics in slam6d.") +ENDIF(WITH_METRICS) + +IF(WIN32) + SET(ADDITIONAL_CFLAGS "-O2" CACHE STRING"Additional flags given to the compiler ()" ) + include_directories(${CMAKE_SOURCE_DIR}/3rdparty/windows/) + link_directories(${CMAKE_SOURCE_DIR}/3rdparty/windows) + link_directories(${CMAKE_SOURCE_DIR}/3rdparty/windows/x64) + add_library(XGetopt STATIC ${CMAKE_SOURCE_DIR}/3rdparty/windows/XGetopt.cpp) + SET(CMAKE_STATIC_LIBRARY_SUFFIX "32.lib") +ELSE(WIN32) + SET(ADDITIONAL_CFLAGS "-O3 -std=c++0x -msse3 -Wall -finline-functions -Wno-unused-but-set-variable -Wno-write-strings -Wno-char-subscripts -Wno-unused-result" CACHE STRING"Additional flags given to the compiler (-O3 -Wall -finline-functions -Wno-write-strings)" ) + # Add include path for OpenGL without GL/-prefix + # to avoid the include incompatibility between MACOS + # and linux + FIND_PATH(OPENGL_INC gl.h /usr/include/GL) + include_directories(${OPENGL_INC}) +ENDIF(WIN32) + +# Add OpenGL includes for MACOS if needed +# The OSX OpenGL frameworks natively supports freeglut extensions +IF(APPLE) + include_directories(/System/Library/Frameworks/GLUT.framework/Headers) + include_directories(/System/Library/Frameworks/OpenGL.framework/Headers) +ENDIF(APPLE) + +SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${ADDITIONAL_CFLAGS}") + +# Hide CMake variables +SET (CMAKE_INSTALL_PREFIX "/usr/local" CACHE INTERNAL "" FORCE) +SET (CMAKE_BUILD_TYPE "" CACHE INTERNAL "" FORCE) + + +# Set output directories for libraries and executables +SET( CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/lib ) +SET( CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/obj ) +SET( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin ) + +# Set include and link dirs ... +include_directories(${CMAKE_SOURCE_DIR}/include) +include_directories(${CMAKE_SOURCE_DIR}/3rdparty/) +include_directories(${CMAKE_SOURCE_DIR}/3rdparty/glui) +include_directories(${CMAKE_SOURCE_DIR}/3rdparty/wxthings/include/) +include_directories(${CMAKE_SOURCE_DIR}/3rdparty/ann_1.1.1_modified/include) +include_directories(${CMAKE_SOURCE_DIR}/3rdparty/ann_1.1.1_modified/src) +link_directories(${CMAKE_SOURCE_DIR}/obj) +link_directories(${CMAKE_SOURCE_DIR}/lib) + +add_subdirectory(3rdparty) +add_subdirectory(src/slam6d) +add_subdirectory(src/scanio) +add_subdirectory(src/scanserver) +add_subdirectory(src/veloslam) +add_subdirectory(src/show) +add_subdirectory(src/grid) +add_subdirectory(src/pmd) +add_subdirectory(src/shapes) +add_subdirectory(src/thermo) +IF(WITH_FBR) + add_subdirectory(src/slam6d/fbr) +ENDIF(WITH_FBR) +add_subdirectory(src/scanner) +add_subdirectory(src/model) + +IF(EXPORT_SHARED_LIBS) +## Compiling a shared library containing all of the project +add_library(slam SHARED src/slam6d/icp6D.cc) +target_link_libraries(slam scanlib_s ANN_s sparse_s newmat_s) +ENDIF(EXPORT_SHARED_LIBS) + +MESSAGE (STATUS "Build environment is set up!") + + +# hack to "circumvent" Debug and Release folders that are created under visual studio +# this is why the INSTALL target has to be used in visual studio +IF(MSVC) + INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/bin/Release/ CONFIGURATIONS Release DESTINATION ${CMAKE_SOURCE_DIR}/windows FILES_MATCHING PATTERN "*.dll" PATTERN "*.exe") + IF( CMAKE_SIZEOF_VOID_P EQUAL 8 ) + INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/3rdparty/windows/x64/ CONFIGURATIONS Release DESTINATION ${CMAKE_SOURCE_DIR}/windows FILES_MATCHING PATTERN "*.dll" PATTERN "*.exe") + ELSE( CMAKE_SIZEOF_VOID_P EQUAL 8 ) + INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/3rdparty/windows/ CONFIGURATIONS Release DESTINATION ${CMAKE_SOURCE_DIR}/windows FILES_MATCHING PATTERN "*.dll" PATTERN "*.exe") + ENDIF(CMAKE_SIZEOF_VOID_P EQUAL 8 ) + + INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/bin/Debug/ CONFIGURATIONS Debug DESTINATION ${CMAKE_SOURCE_DIR}/windows FILES_MATCHING PATTERN "*.dll" PATTERN "*.exe") + IF( CMAKE_SIZEOF_VOID_P EQUAL 8 ) + INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/3rdparty/windows/x64/ CONFIGURATIONS Debug DESTINATION ${CMAKE_SOURCE_DIR}/windows FILES_MATCHING PATTERN "*.dll" PATTERN "*.exe") + ELSE( CMAKE_SIZEOF_VOID_P EQUAL 8 ) + INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/3rdparty/windows/ CONFIGURATIONS Debug DESTINATION ${CMAKE_SOURCE_DIR}/windows FILES_MATCHING PATTERN "*.dll" PATTERN "*.exe") + ENDIF(CMAKE_SIZEOF_VOID_P EQUAL 8 ) +ENDIF(MSVC) diff --git a/CONTRIBUTORS b/CONTRIBUTORS new file mode 100644 index 0000000..81f53b4 --- /dev/null +++ b/CONTRIBUTORS @@ -0,0 +1,37 @@ +Project admins + +Andreas Nuechter andreas@nuechti.de +Kai Lingemann kai.lingemann@gmx.de +Dorit Borrmann d.borrmann@jacobs-university.de + +List of contributors + +Andreas Nuechter andreas@nuechti.de +Kai Lingemann kai.lingemann@gmx.de +Dorit Borrmann d.borrmann@jacobs-university.de +Jan Elseberg j.elseberg@jacobs-university.de +Jochen Sprickerhof jochen@sprickerhof.de +HamidReza Houshiar h.houshiar@jacobs-university.de +Sven Albrecht sven.albrecht@uni-osnabrueck.de +Stan Serebryakov cfr.ssv@gmail.com +Thomas Escher tescher@uni-osnabrueck.de +Thomas Wiemann twiemann@uni-osnabrueck.de +Alexandru Tandrau alexandru@tandrau.com +Alexandru Eugen Ichim eugen@alexichim.com +Flavia Grosan me@flaviagrosan.com +Deyuan Qiu deyuan.qiu@googlemail.com +Darko Makreshanski d.makreshanski@jacobs-university.de +Mohammad Faisal Abdullah m.faisal@jacobs-university.de +Li Ming liming751218@whu.edu.cn +Li Wei xpaulee@gmail.com +Shams Feyzabadi sh.feyzabadi@gmail.co +Vladislav Perelmann v.perelman@jacobs-university.de +Chen Long lchen.whu@gmail.com +Remuas Dumitru r.dumitru@jaocbs-university.de + +Further contributors + +Uwe Hebbelmann, Sebastian Stock, Andre Schemschat +Hartmut Surmann +Amuz Tamrakars, Ulugbek Makhmudov +Christof Soeger, Marcel Junker, Anton Fluegge, Hannes Schulz \ No newline at end of file diff --git a/LICENSING b/LICENSING new file mode 100644 index 0000000..a825429 --- /dev/null +++ b/LICENSING @@ -0,0 +1,640 @@ +3DTK is released under the GPLv3 license, which is included in this +document. + +In addition, the source code contains the 'newmat' library from Robert +Davies and the 'csparse' library from Tim Davis; the viewer +application uses the 'glui' extension by Paul Rademacher or +wxThings/wxWidgets, 'GOCR', 'ANN Library', 'autopano-sift-c', all with +their own licenses. These libraries are provided just to simplify the +installation and testing of 3DTK. Please pay attention to these +licenses when you are using 3DTK. + +Furthermore, all images, figures, videos and animations created with +a 3DTK are automatically subject to the creative commons license +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0). Please see for +further information http://creativecommons.org/licenses/by-sa/3.0/ +Thus, please do not remove the tag on the image etc. + +The authors of 3DTK request, that the software is not used in any +military context. + +---- + +GNU GENERAL PUBLIC LICENSE + +Version 3, 29 June 2007 + +Copyright 2007 Free Software Foundation, Inc. + +Everyone is permitted to copy and distribute verbatim copies of this +license document, but changing it is not allowed. Preamble + +The GNU General Public License is a free, copyleft license for +software and other kinds of works. + +The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom +to share and change all versions of a program--to make sure it remains +free software for all its users. We, the Free Software Foundation, use +the GNU General Public License for most of our software; it applies +also to any other work released this way by its authors. You can apply +it to your programs, too. + +When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + +To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you +have certain responsibilities if you distribute copies of the +software, or if you modify it: responsibilities to respect the freedom +of others. + +For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + +Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + +For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + +Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the +manufacturer can do so. This is fundamentally incompatible with the +aim of protecting users' freedom to change the software. The +systematic pattern of such abuse occurs in the area of products for +individuals to use, which is precisely where it is most +unacceptable. Therefore, we have designed this version of the GPL to +prohibit the practice for those products. If such problems arise +substantially in other domains, we stand ready to extend this +provision to those domains in future versions of the GPL, as needed to +protect the freedom of users. + +Finally, every program is threatened constantly by software +patents. States should not allow patents to restrict development and +use of software on general-purpose computers, but in those that do, we +wish to avoid the special danger that patents applied to a free +program could make it effectively proprietary. To prevent this, the +GPL assures that patents cannot be used to render the program +non-free. + +The precise terms and conditions for copying, distribution and +modification follow. TERMS AND CONDITIONS + +0. Definitions. + +This License refers to version 3 of the GNU General Public License. + +Copyright also means copyright-like laws that apply to other +kinds of works, such as semiconductor masks. + +The Program refers to any copyrightable work licensed under +this License. Each licensee is addressed as +you. Licensees and recipients may be +individuals or organizations. + +To modify a work means to copy from or adapt all or part of +the work in a fashion requiring copyright permission, other than the +making of an exact copy. The resulting work is called a modified +version of the earlier work or a work based on the earlier +work. + +A covered work means either the unmodified Program or a work +based on the Program. + +To propagate a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + +To convey a work means any kind of propagation that enables +other parties to make or receive copies. Mere interaction with a user +through a computer network, with no transfer of a copy, is not +conveying. + +An interactive user interface displays Appropriate Legal +Notices to the extent that it includes a convenient and +prominently visible feature that (1) displays an appropriate copyright +notice, and (2) tells the user that there is no warranty for the work +(except to the extent that warranties are provided), that licensees +may convey the work under this License, and how to view a copy of this +License. If the interface presents a list of user commands or options, +such as a menu, a prominent item in the list meets this criterion. +1. Source Code. + +The source code for a work means the preferred form of the +work for making modifications to it. Object code means any +non-source form of a work. + +A Standard Interface means an interface that either is an +official standard defined by a recognized standards body, or, in the +case of interfaces specified for a particular programming language, +one that is widely used among developers working in that language. + +The System Libraries of an executable work include anything, +other than the work as a whole, that (a) is included in the normal +form of packaging a Major Component, but which is not part of that +Major Component, and (b) serves only to enable use of the work with +that Major Component, or to implement a Standard Interface for which +an implementation is available to the public in source code form. A +Major Component, in this context, means a major essential +component (kernel, window system, and so on) of the specific operating +system (if any) on which the executable work runs, or a compiler used +to produce the work, or an object code interpreter used to run it. + +The Corresponding Source for a work in object code form means +all the source code needed to generate, install, and (for an +executable work) run the object code and to modify the work, including +scripts to control those activities. However, it does not include the +work's System Libraries, or general-purpose tools or generally +available free programs which are used unmodified in performing those +activities but which are not part of the work. For example, +Corresponding Source includes interface definition files associated +with source files for the work, and the source code for shared +libraries and dynamically linked subprograms that the work is +specifically designed to require, such as by intimate data +communication or control flow between those subprograms and other +parts of the work. + +The Corresponding Source need not include anything that users can +regenerate automatically from other parts of the Corresponding Source. + +The Corresponding Source for a work in source code form is that same +work. + +2. Basic Permissions. + +All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + +You may make, run and propagate covered works that you do not convey, +without conditions so long as your license otherwise remains in +force. You may convey covered works to others for the sole purpose of +having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + +Conveying under any other circumstances is permitted solely under the +conditions stated below. Sublicensing is not allowed; section 10 makes +it unnecessary. + +3. Protecting Users' Legal Rights From Anti-Circumvention Law. + +No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + +When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such +circumvention is effected by exercising rights under this License with +respect to the covered work, and you disclaim any intention to limit +operation or modification of the work as a means of enforcing, against +the work's users, your or third parties' legal rights to forbid +circumvention of technological measures. + +4. Conveying Verbatim Copies. + +You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + +You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + +5. Conveying Modified Source Versions. + +You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these +conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under + section 7. This requirement modifies the requirement in section + 4 to keep intact all notices. + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section + 7 additional terms, to the whole of the work, and all its + parts, regardless of how they are packaged. This License gives + no permission to license the work in any other way, but it does + not invalidate such permission if you have separately received it. + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has + interactive interfaces that do not display Appropriate Legal + Notices, your work need not make them do so. + +A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +aggregate if the compilation and its resulting copyright are +not used to limit the access or legal rights of the compilation's +users beyond what the individual works permit. Inclusion of a covered +work in an aggregate does not cause this License to apply to the other +parts of the aggregate. + +6. Conveying Non-Source Forms. + +You may convey a covered work in object code form under the terms of +sections 4 and 5, provided that you also convey the machine-readable +Corresponding Source under the terms of this License, in one of these +ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that + product model, to give anyone who possesses the object code + either (1) a copy of the Corresponding Source for all the + software in the product that is covered by this License, on a + durable physical medium customarily used for software + interchange, for a price no more than your reasonable cost of + physically performing this conveying of source, or (2) access + to copy the Corresponding Source from a network server at no + charge. + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, + and only if you received the object code with such an offer, in + accord with subsection 6b. + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to + the Corresponding Source in the same way through the same place + at no further charge. You need not require recipients to copy + the Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source may + be on a different server (operated by you or a third party) that + supports equivalent copying facilities, provided you maintain clear + directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + e) Convey the object code using peer-to-peer transmission, + provided you inform other peers where the object code and + Corresponding Source of the work are being offered to the + general public at no charge under subsection 6d. + +A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + +A User Product is either (1) a consumer product, which means any +tangible personal property which is normally used for personal, +family, or household purposes, or (2) anything designed or sold for +incorporation into a dwelling. In determining whether a product is a +consumer product, doubtful cases shall be resolved in favor of +coverage. For a particular product received by a particular user, +normally used refers to a typical or common use of that class of +product, regardless of the status of the particular user or of the way +in which the particular user actually uses, or expects or is expected +to use, the product. A product is a consumer product regardless of +whether the product has substantial commercial, industrial or +non-consumer uses, unless such uses represent the only significant +mode of use of the product. + +Installation Information for a User Product means any methods, +procedures, authorization keys, or other information required to +install and execute modified versions of a covered work in that User +Product from a modified version of its Corresponding Source. The +information must suffice to ensure that the continued functioning of +the modified object code is in no case prevented or interfered with +solely because modification has been made. + +If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + +The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or +updates for a work that has been modified or installed by the +recipient, or for the User Product in which it has been modified or +installed. Access to a network may be denied when the modification +itself materially and adversely affects the operation of the network +or violates the rules and protocols for communication across the +network. + +Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + +7. Additional Terms. + +Additional permissions are terms that supplement the terms of this +License by making exceptions from one or more of its +conditions. Additional permissions that are applicable to the entire +Program shall be treated as though they were included in this License, +to the extent that they are valid under applicable law. If additional +permissions apply only to part of the Program, that part may be used +separately under those permissions, but the entire Program remains +governed by this License without regard to the additional permissions. + +When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + +Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders +of that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + c) Prohibiting misrepresentation of the origin of that material, + or requiring that modified versions of such material be marked + in reasonable ways as different from the original version; or + d) Limiting the use for publicity purposes of names of licensors + or authors of the material; or + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified + versions of it) with contractual assumptions of liability to + the recipient, for any liability that these contractual + assumptions directly impose on those licensors and authors. + +All other non-permissive additional terms are considered further +restrictions within the meaning of section 10. If the Program as +you received it, or any part of it, contains a notice stating that it +is governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + +If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + +Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; the +above requirements apply either way. + +8. Termination. + +You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + +However, if you cease all violation of this License, then your license +from a particular copyright holder is reinstated (a) provisionally, +unless and until the copyright holder explicitly and finally +terminates your license, and (b) permanently, if the copyright holder +fails to notify you of the violation by some reasonable means prior to +60 days after the cessation. + +Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + +Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + +9. Acceptance Not Required for Having Copies. + +You are not required to accept this License in order to receive or run +a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + +10. Automatic Licensing of Downstream Recipients. + +Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + +An entity transaction is a transaction transferring control of +an organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + +You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + +11. Patents. + +A contributor is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's contributor +version. + +A contributor's essential patent claims are all patent claims owned or +controlled by the contributor, whether already acquired or hereafter +acquired, that would be infringed by some manner, permitted by this +License, of making, using, or selling its contributor version, but do +not include claims that would be infringed only as a consequence of +further modification of the contributor version. For purposes of this +definition, control includes the right to grant patent sublicenses in +a manner consistent with the requirements of this License. + +Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + +In the following three paragraphs, a patent license is any +express agreement or commitment, however denominated, not to enforce a +patent (such as an express permission to practice a patent or covenant +not to sue for patent infringement). To grant such a patent +license to a party means to make such an agreement or commitment not +to enforce a patent against the party. + +If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. Knowingly relying means you +have actual knowledge that, but for the patent license, your conveying +the covered work in a country, or your recipient's use of the covered +work in a country, would infringe one or more identifiable patents in +that country that you have reason to believe are valid. + +If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + +A patent license is discriminatory if it does not include +within the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, or +that patent license was granted, prior to 28 March 2007. + +Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + +12. No Surrender of Others' Freedom. + +If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under +this License and any other pertinent obligations, then as a +consequence you may not convey it at all. For example, if you agree to +terms that obligate you to collect a royalty for further conveying +from those to whom you convey the Program, the only way you could +satisfy both those terms and this License would be to refrain entirely +from conveying the Program. + +13. Use with the GNU Affero General Public License. + +Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + +14. Revised Versions of this License. + +The Free Software Foundation may publish revised and/or new versions +of the GNU General Public License from time to time. Such new versions +will be similar in spirit to the present version, but may differ in +detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies that a certain numbered version of the GNU General Public +License or any later version applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + +If the Program specifies that a proxy can decide which future versions +of the GNU General Public License can be used, that proxy's public +statement of acceptance of a version permanently authorizes you to +choose that version for the Program. + +Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + +15. Disclaimer of Warranty. + +THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM AS IS WITHOUT +WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE +DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR +CORRECTION. + +16. Limitation of Liability. + +IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR +CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT +NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR +LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM +TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER +PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +17. Interpretation of Sections 15 and 16. + +If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + +END OF TERMS AND CONDITIONS \ No newline at end of file diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..53c8ae7 --- /dev/null +++ b/Makefile @@ -0,0 +1,52 @@ +#MAKEFLAGS += -j + +ifeq ($(MAKE),) + MAKE=make +endif + +all: .configured + cd .build && $(MAKE) --no-print-directory + +config: .build + cd .build && ccmake .. + touch .configured + +.configured: .build + cd .build && cmake .. + touch .configured + +.build: + mkdir -p .build + +clean: .build + -cd .build && $(MAKE) clean --no-print-directory + -rm -rf .build + rm -f .configured + +DOC = doc/ +docu: docu_html docu_latex docu_hl + echo + echo + echo + Reference documentation generated: $(DOC)html/index.html + echo + Reference documentation generated: $(DOC)refman.pdf + echo + Highlevel documentation generated: $(DOC)documentation_HL.pdf + echo + +docu_html: + doxygen doc/doxygen.cfg + cd $(DOC) ; zip -q html.zip html/* + echo + echo + +docu_latex: + $(MAKE) -C $(DOC)latex + cd $(DOC)latex ; dvips refman + cd $(DOC)latex ; ps2pdf14 refman.ps refman.pdf + cp $(DOC)latex/refman.pdf $(DOC) + +docu_hl: $(DOC)high_level_doc/documentation.tex + cd $(DOC)high_level_doc ; latex documentation.tex + cd $(DOC)high_level_doc ; bibtex documentation + cd $(DOC)high_level_doc ; latex documentation.tex + cd $(DOC)high_level_doc ; dvips documentation + cd $(DOC)high_level_doc ; ps2pdf14 documentation.ps ../documentation_HL.pdf diff --git a/README b/README new file mode 100644 index 0000000..c12ec30 --- /dev/null +++ b/README @@ -0,0 +1,132 @@ +------------------------------------------------------------------- + +To compile the project simply call "make". This will configure slam6d +using the default settings. If you wish to configure the project using +custom settings do: "make config". This command requires ccmake be +installed on your system. Alternatively you may change into the build +directory ".build" and configure the project with your preferred cmake +configurator, i.e.: + +cd .build && cmake -i ../ + +For Microsoft Windows, use the cmake-gui application provided by cmake +to configure and generate project files for the appropriate version of +Microsoft Visual Studio C++ of your system. Use the INSTALL target to +built the entire project. Executables (and .dll's) will then reside +in the "windows" folder. For running the binaries you need to install +the proper redistributable package. + +Some Boost libraries (graph, regex, serialization, filesystem, +interprocess) are needed to compile the slam6D program. + +If you are using Debian just do: + + aptitude install libboost-graph-dev libboost-regex-dev libboost-serialization-dev freeglut3-dev libxmu-dev libxi-dev + +or, if you are still using Debian stable (lenny): + + aptitude install libboost-graph1.35-dev libboost-regex1.35-dev libboost-serialization1.35-dev freeglut3-dev libxmu-dev libxi-dev + +for Ubuntu this would be: + + sudo aptitude install libboost-graph-dev libboost-regex-dev libboost-serialization-dev libboost1.46-dev libboost-filesystem1.46-dev freeglut3-dev libxmu-dev libxi-dev + +SuSE users please use yast2 for installing the missing packages + + +Additionally for CAD matching support the following dependencies must +be satisfied (exemplarily for Ubuntu): + + sudo aptitude install libboost-program-options-dev + +------------------------------------------------------------------- + +For a detailed explanation of the programm, its usage, etc., please +refer to the high level documentation doc/documentation_HL.pdf +(esp. sections 4-6, for starters). + +IMPORTANT: +Take care to register scans first (bin/slam6D) before trying to +display them (bin/show), and think about using the point reduction +(see section 6) for a much faster scan matching result. Extremely +large scans might need to be reduced (using bin/scan_red) before +registration. This will write reduced scans in the uos format into a +directory "reduced" in the data directory. + +Three example scans are included in the dat directory, several +larger data sets can be downloaded from the data repository, +http://kos.informatik.uni-osnabrueck.de/3Dscans/ +(Alternatively, click on the "Data Repository" link on this project's +web site on Sourceforge, http://slam6d.sourceforge.net/) + +EXAMPLES: +(using the data set in the slam6d repository) +bin/slam6D -m 500 -R 5 -d 25.0 --metascan dat +bin/show dat + +(using the data set in the slam6d repository) +bin/slam6D --max=500 -r 10.2 -i 20 --metascan dat +bin/show dat + +(using hannover1.tgz from http://kos.informatik.uni-osnabrueck.de/3Dscans/) +bin/slam6D -s 1 -e 65 -r 10 -i 100 -d 75 -D 250 --epsICP=0.00001 + -I 50 --cldist=750 -L 0 -G 1 /home/nuechter/dat/dat_hannover1 +bin/show -s 1 -e 65 /home/nuechter/dat/dat_hannover1 + +(using hannover2.tgz from http://kos.informatik.uni-osnabrueck.de/3Dscans/) +bin/slam6D -q -r 10 -f rts -s 23 -d 75 -L 4 --cldist=1500 -G 1 -D -1 + --DlastSLAM 250 --graphDist 200 -I 50 hannover2 +bin/show -f rts -s 23 hannover2 + +(using kvarntorp_mine.tgz (dat_mine1) form http://kos.informatik.uni-osnabrueck.de/3Dscans/) +bin/slam6D -s 1 -e 76 -r 10 -m 3000 -d 50 -i 1000 --epsICP=0.000001 + -I 50 -D 75 --clpairs=5000 -f old /home/nuechter/dat/dat_mine1/ +bin/show -s 1 -e 76 -m 3000 -f old /home/nuechter/dat/dat_mine1/ + +(using bremen_city.zip from http://kos.informatik.uni-osnabrueck.de/3Dscans/) +bin/scan_red -s 0 -e 12 -r 10 /home/nuechter/dat/bremen_city +bin/slam6D -a 2 -q /home/nuechter/dat/bremen_city/reduced -f uos -d 150 + -s 0 -e 12 --anim=1 -n /home/nuechter/dat/bremen_city/bremen.net + -G 1 -D 100 -i 0 -I 50 -p --epsSLAM=0.0 +bin/show -s 0 -e 12 /home/nuechter/dat/bremen_city/reduced + +(using UniKoblenz_CampusTour3_OsnabrueckFormat.tar.gz from +http://kos.informatik.uni-osnabrueck.de/3Dscans/) +bin/slam6D -s 1 -e 320 -r 20 -i 300 --epsICP=0.000001 -d 45 -D 45 + -f uos --algo=2 -l 10 -L 4 -I 100 -G 1 + /home/nuechter/dat/UniKoblenz_CampusTour3_OsnabrueckFormat/ +bin/show -s 1 -e 320 -f uos /home/nuechter/dat/UniKoblenz_CampusTour3_OsnabrueckFormat/ +------------------------------------------------------------------- + +For detecting planes compile with the WITH_PLANE option. +Adapt the settings in bin/hough.cfg for your data set. + +EXAMPLE: (using the data set in the slam6d repository, no modification +of bin/hough.cfg necessary) + +bin/planes -s 0 dat +bin/show -s 0 -e 0 dat -l dat/planes/planes.list + +(using bremen_city.zip from http://kos.informatik.uni-osnabrueck.de/3Dscans/) +adapt these settings in bin/hough.cfg: +RhoNum 500 +RhoMax 5000 +MaxPointPlaneDist 50.0 +MinPlaneSize 50 +PointDist 100.0 +/bin/planes -f riegl_txt -s 0 /home/nuechter/dat/bremen_city/ -r 50 -O 1 -m 5000 +/bin/show -s 0 -e 0 /home/nuechter/dat/bremen_city/ -f riegl_txt -l dat/planes/planes.list -r 10 -O 1 -m 5000 + +------------------------------------------------------------------- +The IO relevant parameters -f(ormat), -s(tart), -e(nd) can be omitted +in slam6D and show if a 'format' file exists in the directory, which +contains key=value lines (spaces are trimmed automatically) for +format, start, end with the same values as in the commandline. These +format-file parameters will be overwritten by commandline parameters +so that the format-file will provide the right IO type and full index +range and the user can overwrite the index range as he sees fit. + +------------------------------------------------------------------- +A reference manual can be found in doc/refman.pdf resp. +doc/html/index.html (type in 'make docu' to compile the doxygen +documentation for the HTML files). diff --git a/README.planes b/README.planes new file mode 100644 index 0000000..7186f4a --- /dev/null +++ b/README.planes @@ -0,0 +1,61 @@ +This project is part of the 3D Toolkit (3DTK). +------------------------------------------------------------------- + +To compile the project simply call "make". This will configure 3DTK-planes using the +default settings. If you wish to configure the project using custom settings do: +you may change into the build directory ".build" and configure the +project with your preferred cmake configurator, i.e.: +cd .build && cmake -i ../ + +For Microsoft Windows, use the cmake-gui application provided by cmake to +configure and generate project files for the appropriate version of visual +studio of your system. Use the INSTALL target to built the entire project. +Executables (and .dll's) will then reside in the "windows" folder. + +------------------------------------------------------------------- + +For a detailed explanation of the functionality of the programm, please +refer to: +Dorit Borrmann, Jan Elseberg, Kai Lingemann, and Andreas N眉chter. The 3D +Hough Transform for Plane Detection in Point Clouds - A Review and A new +Accumulator Design, Journal 3D Research, Springer, Volume 2, Number 2, +March 2011. + +One example scans is included in the dat directory, several +larger data sets can be downloaded from the data repository, +http://kos.informatik.uni-osnabrueck.de/3Dscans/ +(Alternatively, click on the "Data Repository" link on this project's +web site on Sourceforge, http://slam6d.sourceforge.net/) + +IMPORTANT; +For detecting planes compile slam6D with the WITH_PLANE option. +Adapt the settings in bin/hough.cfg for your data set. + +Extremely large scans might need to be reduced before registration. +Use the -r option to use an octree based reduction of the scan. +It is highly recommended to use the -O option as well for reduction to chose +points randomly (instead of the center) from the octree voxels. + +For a list and description of all the parameters run without any parameters +bin/planes + +EXAMPLES: +(using the data set in the slam6d repository) +bin/planes dat + +(using octree based reduction of the scan with voxel size 10 and 3 points from each voxel) +bin/planes -s 0 -r 10 -O 3 dat + +(using octree based reduction of the scan with voxel size 10 using the center of each voxel) +bin/planes -s 0 -r 10 dat + +The generated output is written to the directory specified in the config file in +bin/hough.cfg (default: dat/planes). +The output contains a file planes.list that lists the files containing the +detected planes. Each file with the name planeXXX.3d (with XXX numbers in +increasing order) specifies the 3D points of the convex hull of the largest +cluster detected on the plane. + +To view the result with the viewer from slam6d +bin/show -s 0 -e 0 dat -l dat/planes/planes.list + diff --git a/README.scanserver b/README.scanserver new file mode 100644 index 0000000..0bebbfa --- /dev/null +++ b/README.scanserver @@ -0,0 +1,63 @@ +This file describes the scanserver functionality, the code changes and its behaviour. + +To run with the scanserver functionality, pass -S or --scanserver to the slam6D/show call. Start the scanserver with bin/scanserver & first. If you want to directly jump to usage examples, see the "USAGE" section below. + +The scanserver is a new method to load and manage scans for 'slam6D', 'show' and some few other tools (so far). It removes all the IO code from the clients and handles it in the server process. This separation offers persistence of scan data and avoids unneccessary reloads of full scans or even reduced versions thereof. By using a caching framework it also transparently handles the available memory given and enables (nearly) endless amounts of data. The client is only required to open the interface, load a directory and start working on those scans without having to alter its workflow (e.g., pre-reduce them) to accomodate huge data volumes. + +If you have questions or problems (or both), contact Thomas Escher . + + + +USAGE: + +1. General + +Start the scanserver once (in another terminal, or in the same one as a background process): + bin/scanserver & + +Do all the normal work as you would normally do, adding the parameter -S: + bin/slam6D dat -S + bin/show dat -S + +2. Changing the available memory size + +Changing the cache memory size used by scan data (about half the system memory usually works): + + bin/scanserver -c 3500 (for 8GB RAM) + +If you intend to not reload the full scans for different reduction parameters or don't have too much memory/disk space, disable binary scan caching. Binary scan caching saves the full scans as long as the range or height parameters aren't touched, which would cause a full reload: + + bin/scanserver -b 0 + +If your dataset contains many scans and loops (e.g., 'hannover' with 468 scans), the default data memory (150M) won't be enough to hold all the animation frames and you need to increase it: + + bin/scanserver -d 250 + +3. Altering the shared memory on your linux system (bus_error) + +If you receive a bus_error, the size of your shared memory is too small and the requested allocation was too big. This is resolved via remounting your shm device. Default is half of the available RAM. This limit can be increased to nearly 90% of the RAM if required. + + sudo mount -o remount,size=7000M /dev/shm (for 8GB RAM) + +4. Locking the memory to avoid swapping (Linux only) + +If a great portion of the RAM is used for the cache data, swapping will usually occur after 50% of usage. To avoid this, the scanserver tries to lock the whole memory in place. This will fail without superuser rights, as well as on a full shared memory (see 3.) even with rights. Add these two additional lines to '/etc/security/limits.conf': + + * soft memlock unlimited + * hard memlock unlimited + +5. Using the octtree serialization feature in show with scanserver + +The octtree serialization behaves slightly different than before. Since the scanserver caches octtrees between calls of 'show', the loading of octtrees only becomes relevant if no octtrees are in the cache and have to be created from the scan itself. If this has been done once before and the octtrees have been saved via --saveOct before this can be used to speed up the octtree loading with --loadOct. + + bin/show dat --loadOct --saveOct + +If octtrees are not cached, they are deserialized if available, created otherwise and then saved for future calls. + +IMPLEMENTATION STATUS: + +Currently only 'slam6D' and 'show' are working with the scanserver. + +Since the scanserver handles the disk IO now and the filtering has been optimized, not all ScanIOs are updated yet. Just copy and paste and change the minor parts about reading the input lines. + +Working: 'ls src/scanio' in a shell diff --git a/bin/Debug/freeglut.dll b/bin/Debug/freeglut.dll new file mode 100644 index 0000000..e70e8af Binary files /dev/null and b/bin/Debug/freeglut.dll differ diff --git a/bin/Debug/testresult.bat b/bin/Debug/testresult.bat new file mode 100644 index 0000000..367896c --- /dev/null +++ b/bin/Debug/testresult.bat @@ -0,0 +1 @@ +scanserver -b 0 \ No newline at end of file diff --git a/bin/Release/freeglut.dll b/bin/Release/freeglut.dll new file mode 100644 index 0000000..e70e8af Binary files /dev/null and b/bin/Release/freeglut.dll differ diff --git a/bin/Release/testresult.bat b/bin/Release/testresult.bat new file mode 100644 index 0000000..367896c --- /dev/null +++ b/bin/Release/testresult.bat @@ -0,0 +1 @@ +scanserver -b 0 \ No newline at end of file diff --git a/bin/asc_comma_remove.sh b/bin/asc_comma_remove.sh new file mode 100755 index 0000000..71397f2 --- /dev/null +++ b/bin/asc_comma_remove.sh @@ -0,0 +1 @@ +sed -i 's/,//g' *.asc \ No newline at end of file diff --git a/bin/bash_completion_3dtk.sh b/bin/bash_completion_3dtk.sh new file mode 100644 index 0000000..19a6e23 --- /dev/null +++ b/bin/bash_completion_3dtk.sh @@ -0,0 +1,106 @@ +#bash completion for show and slam6d + +#have show && +_show() +{ + local cur prev opts filetype + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + ## split the long options + _split_longopt + + # options list + opts="-e -s -f --format -F --fps -m --max -M --min -O --octree -r --reduce -R --reflectance --reflectivity -a --amplitude -d --deviation -h --height -T --type --saveOct --loadOct --advanced" + filetype="uos uos_map uos_rgb uos_frames uos_map_frames old rts rts_map ifp riegl_txt riegl_rgb riegl_bin zahn ply wrl xyz zuf iais front x3d rxp ais" + + case $prev in + -f|--format) + COMPREPLY=( $( compgen -W "${filetype}" -- ${cur} ) ) + return 0 + ;; + esac + + + # reflectivity/reflectance are synonymous + if [[ ${cur} == --ref* ]] ; then + COMPREPLY=( "--reflectance" ) + return 0 + fi + + + # relevant options to complete + if [[ ${cur} == -* ]] ; then + COMPREPLY=( $( compgen -W "${opts}" -- "$cur" ) ) + fi + + + # stolen from _cd function in bash_completion + _cd +} && +complete -o dirnames -F _show show + + +_slam6D() +{ + local cur prev opts filetype + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + ## split the long options + _split_longopt + +# -n FILE, --net=FILE +# specifies the file that includes the net structure for SLAM +# + + opts="-e -s -f --format -m --max -M --min -O --octree -r --reduce -R --random -q --quiet -Q --veryquiet -u --cuda -p --trustpose -n --net --metascan -L --loop6DAlgo -l --loopsize -I --iterSLAM -i --iter -G --epsICP --epsICP --exportAllPoints --DlastSLAM -D --distSLAM -d --dist --cache -C --clpairs -c --cldist -A --anim -a --algo " + filetype="uos uos_map uos_rgb uos_frames uos_map_frames old rts rts_map ifp riegl_txt riegl_rgb riegl_bin zahn ply wrl xyz zuf iais front x3d rxp ais" + + case $prev in + -f|--format) + COMPREPLY=( $( compgen -W "${filetype}" -- ${cur} ) ) + return 0 + ;; + -L|--loop6DAlgo) + COMPREPLY=( $( compgen -W "0 1 2 3 4 5 6" -- ${cur} ) ) + return 0 + ;; + -G|--graphSlam6DAlgo) + COMPREPLY=( $( compgen -W "0 1 2 3 4 5 6" -- ${cur} ) ) + return 0 + ;; + -a|--algo) + COMPREPLY=( $( compgen -W "0 1 2 3 4 5 6 7 8 9" -- ${cur} ) ) + return 0 + ;; + -n|--net) + _filedir + return 0 + ;; + esac + + + + # relevant options to complete + if [[ ${cur} == -* ]] ; then + COMPREPLY=( $( compgen -W "${opts}" -- "$cur" ) ) + fi + + + # stolen from _cd function in bash_completion + _cd +} && +complete -o dirnames -F _slam6D slam6D + +# Local variables: +# mode: shell-script +# sh-basic-offset: 4 +# sh-indent-comment: t +# indent-tabs-mode: nil +# End: +# ex: ts=4 sw=4 et filetype=sh diff --git a/bin/convert.py b/bin/convert.py new file mode 100755 index 0000000..bb40c81 --- /dev/null +++ b/bin/convert.py @@ -0,0 +1,26 @@ +#!/usr/bin/env python +# +# converts all .frames files in a directory into the new format + +import os, sys + +def main(): + if len(sys.argv) != 2: + print 'converts all .frames files in a directory into the new format' + print 'run with %s directory' % sys.argv[0] + return + directory = sys.argv[1] + for name in os.listdir(directory): + fullpath = os.path.join(directory, name) + if os.path.isfile(fullpath) and fullpath.endswith('.frames'): + frame = file(fullpath).read() + frame = frame.replace('\n\n', '\n') + frame = frame.replace('\n-1 0 0 1\n', '0\n') + frame = frame.replace('\n-1 1 0 1\n', '0\n') + frame = frame.replace('\n0 0 1 1\n', '1\n') + frame = frame.replace('\n1 1 0 1\n', '2\n') + frame = frame.replace('\n1 0 0 1\n', '3\n') + file(fullpath, 'w').write(frame) + +if __name__ == '__main__': + main() diff --git a/bin/hough.cfg b/bin/hough.cfg new file mode 100644 index 0000000..e7e258c --- /dev/null +++ b/bin/hough.cfg @@ -0,0 +1,22 @@ +;;;Configuration for hough transform + +MaxDist 500 ; maximum distance between point triple +MinDist 50 ; minimum distance between point triple +AccumulatorMax 50 ; plane detected if cell reaches AccumulatorMax +MinSizeAllPoints 20 ; plane detection stops if only this percentage of points are left +RhoNum 300 ; number of cells in direction of rho +ThetaNum 360 ; " " " " " " theta +PhiNum 176 ; " " " " " " phi +RhoMax 1500 ; maximum distance between planes and origin +MaxPointPlaneDist 10.0 ; maximal noise +MaxPlanes 5 ; maximum number of planes to be detected +MinPlaneSize 100 ; minimum number of points for a plane to be still considered +MinPlanarity 0.05 ; minimum for the smallest eigenvalue after plane fitting +PlaneRatio 0.5 ; consider planes with a counter higher than PlaneRatio*MaxCounter +PointDist 5.0 ; threshold for region growing +PeakWindow false ; true if sliding window for peak detection is desired +WindowSize 8 ; side length of sliding window +TrashMax 20 ; number of not considerd planes before abort +AccumulatorType 2 ; Array 0, Ball 1, Cube 2, BallI 3 +PlaneDir dat/planes/ + diff --git a/bin/rts_recordingtime_gps.m b/bin/rts_recordingtime_gps.m new file mode 100644 index 0000000..894d7e8 --- /dev/null +++ b/bin/rts_recordingtime_gps.m @@ -0,0 +1,29 @@ +function output = recordingtime_gps(input, ref) + +[input_m, input_n] = size(input); +[ref_m, ref_n] = size(ref); + +output = zeros(ref_m, input_n); + +for i = 1 : ref_m + upper_index = find(input(:,1) > ref(i,1)); + + upper = input(upper_index(1),:); + + if(upper_index(1) > 1) + lower = input((upper_index(1)-1),:); + else + lower = upper; + end + + diff = upper - lower; + + if(diff(1) == 0) + rel_time = 0; + else + rel_time = (ref(i,1) - lower(1,1)) / diff(1); + end + + output(i,:) = lower + rel_time .* diff; + +end diff --git a/bin/rts_recordingtime_sync.m b/bin/rts_recordingtime_sync.m new file mode 100644 index 0000000..8eff5c2 --- /dev/null +++ b/bin/rts_recordingtime_sync.m @@ -0,0 +1,75 @@ +% script for interpolating data of RTS Hannover + +function output = recordingtime_sync(input, ref) + +[input_m, input_n] = size(input); +[ref_m, ref_n] = size(ref); + +output = zeros(ref_m, input_n); + +for i = 1 : ref_m + upper_index = find(input(:,1) > ref(i,1)); + + upper = input(upper_index(1),:); + + if(upper_index(1) > 1) + lower = input((upper_index(1)-1),:); + else + lower = upper; + end + + diff = upper - lower; + + % normalise angel sym 0 + if(diff(5) > pi) + diff(5) = diff(5) - 2*pi; + end + if(diff(5) < -pi) + diff(5) = diff(5) + 2*pi; + end + + if(diff(6) > pi) + diff(6) = diff(6) - 2*pi; + end + if(diff(6) < -pi) + diff(6) = diff(6) + 2*pi; + end + + if(diff(7) > pi) + diff(7) = diff(7) - 2*pi; + end + if(diff(7) < -pi) + diff(7) = diff(7) + 2*pi; + end + + if(diff(1) == 0) + rel_time = 0; + else + rel_time = (ref(i,1) - lower(1,1)) / diff(1); + end + + output(i,:) = lower + rel_time .* diff; + + % normalise angel sym 0 + if(output(i,5) > pi) + output(i,5) = output(i,5) - 2*pi; + end + if(output(i,5) < -pi) + output(i,5) = output(i,5) + 2*pi; + end + + if(output(i,6) > pi) + output(i,6) = output(i,6) - 2*pi; + end + if(output(i,6) < -pi) + output(i,6) = output(i,6) + 2*pi; + end + + if(output(i,7) > (2*pi)) + output(i,7) = output(i,7) - 2*pi; + end + if(output(i,7) < 0.0) + output(i,7) = output(i,7) + 2*pi; + end + +end diff --git a/bin/wx.fbp b/bin/wx.fbp new file mode 100644 index 0000000..429114a --- /dev/null +++ b/bin/wx.fbp @@ -0,0 +1,5978 @@ + + + + + + C++ + 1 + UTF-8 + connect + impl_virtual + + 1000 + none + 0 + MyProject1 + + . + + 1 + 0 + 0 + + + + + 1 + + + + 0 + wxID_ANY + + + Selection + + 229,1328 + wxDEFAULT_FRAME_STYLE + + Selection + + + wxFILTER_NONE + wxDefaultValidator + + + + wxTAB_TRAVERSAL + 1 + + + + OnClose + + + + + + + + + + + + + + + + + + + + + + + + + + + + bSizer1 + wxVERTICAL + public + + 5 + wxRIGHT|wxLEFT + 0 + + + 1 + + 1 + + + 0 + wxID_ANY + Draw Points + + + m_checkBox1 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnDrawPoints + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxRIGHT|wxLEFT + 0 + + + 1 + + 1 + + + 0 + wxID_ANY + Draw Cameras + + + m_checkBox2 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnDrawCameras + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxRIGHT|wxLEFT + 0 + + + 1 + + 1 + + + 0 + wxID_ANY + Draw Paths + + + m_checkBox3 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnDrawPaths + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT|wxEXPAND + 0 + + + + 1 + + + 0 + wxID_ANY + + + m_panel2 + protected + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + wxTAB_TRAVERSAL + + + + + + + + + + + + + + + + + + + + + + + + + + bSizer3 + wxHORIZONTAL + none + + 5 + wxALL + 0 + + + + 1 + + + 0 + wxID_ANY + Point Size: + + + m_staticText2 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + 0 + 10 + + 0 + + m_spinCtrl1 + protected + + + wxSP_ARROW_KEYS + + + + wxFILTER_NONE + wxDefaultValidator + + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + OnPointSize + + + + + + + + + 5 + wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT|wxEXPAND + 0 + + + + 1 + + + 0 + wxID_ANY + + + m_panel21 + protected + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + wxTAB_TRAVERSAL + + + + + + + + + + + + + + + + + + + + + + + + + + bSizer31 + wxHORIZONTAL + none + + 5 + wxALL + 0 + + + + 1 + + + 0 + wxID_ANY + Fog: + + + m_staticText21 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxRIGHT|wxLEFT + 0 + + + "None" "Black Exp" "Black Exp2" "Black Linear" "White Exp" "White Exp2" "White Linear" + + 1 + + + 0 + wxID_ANY + + + m_choice1 + protected + + 1 + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnFogChoice + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT|wxEXPAND + 0 + + + + 1 + + + 0 + wxID_ANY + + + m_panel3 + protected + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + wxTAB_TRAVERSAL + + + + + + + + + + + + + + + + + + + + + + + + + + bSizer6 + wxHORIZONTAL + none + + 5 + wxALL + 0 + + + + 1 + + + 0 + wxID_ANY + Fog Density: + + + m_staticText4 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + 7 + 10 + + 0 + + m_spinCtrl2 + protected + + + wxSP_ARROW_KEYS + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnFogDensity + + + + + + + + + 5 + wxALIGN_CENTER_HORIZONTAL + 0 + + wxID_ANY + Color: + + sbSizer3 + wxVERTICAL + none + + + 5 + wxRIGHT|wxLEFT|wxALIGN_RIGHT|wxEXPAND + 0 + + + + 1 + + + 0 + wxID_ANY + + + m_panel211 + protected + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + wxTAB_TRAVERSAL + + + + + + + + + + + + + + + + + + + + + + + + + + bSizer311 + wxHORIZONTAL + none + + 5 + wxALL + 0 + + + + 1 + + + 0 + wxID_ANY + value: + + + m_staticText211 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxRIGHT|wxLEFT + 0 + + + "height" "reflectance" "amplitude" "deviation" "type" + + 1 + + + 0 + wxID_ANY + + + m_choice11 + protected + + 4 + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnColorValue + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxRIGHT|wxLEFT|wxALIGN_RIGHT|wxEXPAND + 0 + + + + 1 + + + 0 + wxID_ANY + + + m_panel212 + protected + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + wxTAB_TRAVERSAL + + + + + + + + + + + + + + + + + + + + + + + + + + bSizer312 + wxHORIZONTAL + none + + 5 + wxALL + 0 + + + + 1 + + + 0 + wxID_ANY + map: + + + m_staticText212 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxRIGHT|wxLEFT + 0 + + + "Solid" "Grey" "HSV" "Jet" "Hot" "Rand" "SHSV" + + 1 + + + 0 + wxID_ANY + + + m_choice12 + protected + + 0 + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnColorMap + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxRIGHT|wxLEFT|wxALIGN_RIGHT|wxEXPAND + 0 + + + + 1 + + + 0 + wxID_ANY + + + m_panel213 + protected + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + wxTAB_TRAVERSAL + + + + + + + + + + + + + + + + + + + + + + + + + + bSizer313 + wxHORIZONTAL + none + + 5 + wxALL + 0 + + + + 1 + + + 0 + wxID_ANY + type: + + + m_staticText213 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxRIGHT|wxLEFT + 0 + + + "None" "Id Scans by Color" "Color by Points" + + 1 + + + 0 + wxID_ANY + + + m_choice13 + protected + + 0 + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnColorType + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxRIGHT|wxLEFT|wxALIGN_RIGHT|wxEXPAND + 0 + + + + 1 + + + 0 + wxID_ANY + + + m_panel411 + protected + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + wxTAB_TRAVERSAL + + + + + + + + + + + + + + + + + + + + + + + + + + bSizer51 + wxHORIZONTAL + none + + 5 + wxALL + 0 + + + + 1 + + + 0 + wxID_ANY + Min Val: + + + m_staticText411 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + 0 + 100 + + -100 + + m_spinCtrl61 + protected + + + wxSP_ARROW_KEYS + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnColorMinVal + + + + + + + + + 5 + wxRIGHT|wxLEFT|wxALIGN_RIGHT|wxEXPAND + 0 + + + + 1 + + + 0 + wxID_ANY + + + m_panel41 + protected + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + wxTAB_TRAVERSAL + + + + + + + + + + + + + + + + + + + + + + + + + + bSizer5 + wxHORIZONTAL + none + + 5 + wxALL + 0 + + + + 1 + + + 0 + wxID_ANY + Max Val: + + + m_staticText41 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + 6 + 10 + + 0 + + m_spinCtrl6 + protected + + + wxSP_ARROW_KEYS + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnColorMaxVal + + + + + + + + + 5 + wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT + 0 + + + + 0 + 1 + + + 0 + wxID_ANY + Reset Min/Max + + + m_button4 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnColorResetMinMax + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND | wxALL + 0 + + + + 1 + + + 0 + wxID_ANY + + + m_staticline1 + protected + + + wxLI_HORIZONTAL + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT + 0 + + + + 0 + 1 + + + 0 + wxID_ANY + Invert + + + m_button3 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnInvert + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + + + m_panel4 + protected + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + wxTAB_TRAVERSAL + + + + + + + + + + + + + + + + + + + + + + + + + + bSizer7 + wxHORIZONTAL + none + + 5 + wxALL + 0 + + + + 1 + + + 0 + wxID_ANY + Anim delay: + + + m_staticText6 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + 0 + 10 + + 0 + + m_spinCtrl3 + protected + + + wxSP_ARROW_KEYS + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnAnimDelay + + + + + + + + + 5 + wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT + 0 + + + + 0 + 1 + + + 0 + wxID_ANY + Animate + + + m_button5 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnAnimate + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND | wxALL + 0 + + + + 1 + + + 0 + wxID_ANY + + + m_staticline2 + protected + + + wxLI_HORIZONTAL + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_HORIZONTAL + 0 + + wxID_ANY + Camera Path: + + sbSizer2 + wxVERTICAL + none + + + 5 + wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + + + m_panel412 + protected + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + wxTAB_TRAVERSAL + + + + + + + + + + + + + + + + + + + + + + + + + + bSizer52 + wxHORIZONTAL + none + + 5 + wxALL + 0 + + + + 1 + + + 0 + wxID_ANY + File: + + + m_staticText412 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + + 0 + + m_textCtrl1 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnCameraFile + + + + + + + + + + + 5 + wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT + 0 + + + + 0 + 1 + + + 0 + wxID_ANY + Save Path + + + m_button51 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnCameraSavePath + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT + 0 + + + + 0 + 1 + + + 0 + wxID_ANY + Load Path + + + m_button6 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnCameraLoadPath + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT + 0 + + + + 0 + 1 + + + 0 + wxID_ANY + Load Robot Path + + + m_button14 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnCameraLoadRobotPath + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxALL + 0 + + + + 1 + + + 0 + wxID_ANY + + + m_staticline4 + protected + + + wxLI_HORIZONTAL + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxRIGHT|wxLEFT + 0 + + + 0 + + 1 + + + 0 + wxID_ANY + Save Animation + + + m_checkBox4 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnSaveAnimation + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT + 0 + + + + 0 + 1 + + + 0 + wxID_ANY + Animate path + + + m_button7 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnAnimatePath + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_HORIZONTAL + 0 + + wxID_ANY + Position: + + sbSizer21 + wxVERTICAL + none + + + 5 + wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + + + m_panel4121 + protected + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + wxTAB_TRAVERSAL + + + + + + + + + + + + + + + + + + + + + + + + + + bSizer521 + wxHORIZONTAL + none + + 5 + wxALL + 0 + + + + 1 + + + 0 + wxID_ANY + File: + + + m_staticText4121 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + + 0 + + m_textCtrl11 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnPositionFile + + + + + + + + + + + 5 + wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT + 0 + + + + 0 + 1 + + + 0 + wxID_ANY + Save Pose + + + m_button511 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnPositionSave + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT + 0 + + + + 0 + 1 + + + 0 + wxID_ANY + Load Pose + + + m_button61 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnPositionLoad + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + + + m_panel4131 + protected + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + wxTAB_TRAVERSAL + + + + + + + + + + + + + + + + + + + + + + + + + + bSizer531 + wxHORIZONTAL + none + + 5 + wxALL + 0 + + + + 1 + + + 0 + wxID_ANY + Factor + + + m_staticText4131 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + 0 + 10 + + 0 + + m_spinCtrl621 + protected + + + wxSP_ARROW_KEYS + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnFactor + + + + + + + + + 5 + wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT + 0 + + + + 0 + 1 + + + 0 + wxID_ANY + Save image + + + m_button71 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnSaveImage + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxEXPAND + 0 + + + + 1 + + + 0 + wxID_ANY + + + m_staticline3 + protected + + + wxLI_HORIZONTAL + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_HORIZONTAL + 0 + + wxID_ANY + Selection: + + sbSizer211 + wxVERTICAL + none + + + 5 + wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + + + m_panel41211 + protected + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + wxTAB_TRAVERSAL + + + + + + + + + + + + + + + + + + + + + + + + + + bSizer5211 + wxHORIZONTAL + none + + 5 + wxALL + 0 + + + + 1 + + + 0 + wxID_ANY + File: + + + m_staticText41211 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + + 0 + + m_textCtrl111 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnSelectionFile + + + + + + + + + + + 5 + wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT + 0 + + + + 0 + 1 + + + 0 + wxID_ANY + Save selected points + + + m_button5111 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnSelectionSave + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT + 0 + + + + 0 + 1 + + + 0 + wxID_ANY + Clear selected points + + + m_button611 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnSelectionClear + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT|wxEXPAND + 0 + + + 1 + + 1 + + + 0 + wxID_ANY + Select/Unselect + + + m_checkBox5 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnSelectionSU + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT|wxEXPAND + 0 + + + 0 + + 1 + + + 0 + wxID_ANY + Select Voxels + + + m_checkBox6 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnSelectionSV + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + + + m_panel41311 + protected + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + wxTAB_TRAVERSAL + + + + + + + + + + + + + + + + + + + + + + + + + + bSizer5311 + wxHORIZONTAL + none + + 5 + wxALL + 0 + + + + 1 + + + 0 + wxID_ANY + Depth: + + + m_staticText41311 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + 0 + 10 + + 0 + + m_spinCtrl6211 + protected + + + wxSP_ARROW_KEYS + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnSelectionDepth + + + + + + + + + 5 + wxEXPAND|wxRIGHT|wxLEFT + 1 + + + + 1 + + + 0 + wxID_ANY + + + m_panel413111 + protected + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + wxTAB_TRAVERSAL + + + + + + + + + + + + + + + + + + + + + + + + + + bSizer53111 + wxHORIZONTAL + none + + 5 + wxALL + 0 + + + + 1 + + + 0 + wxID_ANY + Brushsize: + + + m_staticText413111 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + 0 + 10 + + 0 + + m_spinCtrl62111 + protected + + + wxSP_ARROW_KEYS + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnSelectionBrushsize + + + + + + + + + + + 5 + wxALIGN_CENTER_HORIZONTAL + 0 + + wxID_ANY + Advanced: + + sbSizer2111 + wxVERTICAL + none + + + 5 + wxEXPAND|wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + + + m_panel413112 + protected + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + wxTAB_TRAVERSAL + + + + + + + + + + + + + + + + + + + + + + + + + + bSizer53112 + wxHORIZONTAL + none + + 5 + wxALL + 0 + + + + 1 + + + 0 + wxID_ANY + Frame #: + + + m_staticText413112 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + 0 + 10 + + 0 + + m_spinCtrl62112 + protected + + + wxSP_ARROW_KEYS + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnFrameSpinner + + + + + + + + + 5 + wxEXPAND|wxRIGHT|wxLEFT + 1 + + + + 1 + + + 0 + wxID_ANY + + + m_panel4131111 + protected + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + wxTAB_TRAVERSAL + + + + + + + + + + + + + + + + + + + + + + + + + + bSizer531111 + wxHORIZONTAL + none + + 5 + wxALL + 0 + + + + 1 + + + 0 + wxID_ANY + FPS: + + + m_staticText4131111 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + 20 + 100 + + 1 + + m_spinCtrl621111 + protected + + + wxSP_ARROW_KEYS + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnFramerateSpinner + + + + + + + + + 5 + wxEXPAND | wxALL + 1 + + + + 1 + + + 0 + wxID_ANY + + + farplane_panel + protected + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + wxTAB_TRAVERSAL + + + + + + + + + + + + + + + + + + + + + + + + + + farplane_sizer + wxHORIZONTAL + none + + 5 + wxALL + 0 + + + + 1 + + + 0 + wxID_ANY + farplane: + + + farplane_text + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + 40000 + 100000 + + 1 + + farplane_spinner + protected + + + wxSP_ARROW_KEYS + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnFarplaneSpinner + + + + + + + + + 5 + wxEXPAND | wxALL + 1 + + + + 1 + + + 0 + wxID_ANY + + + nearplane_panel + protected + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + wxTAB_TRAVERSAL + + + + + + + + + + + + + + + + + + + + + + + + + + nearplane_sizer + wxHORIZONTAL + none + + 5 + wxALL + 0 + + + + 1 + + + 0 + wxID_ANY + nearplane: + + + nearplane_text + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + 10 + 100000 + + 1 + + nearplane_spinner + protected + + + wxSP_ARROW_KEYS + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnNearplaneSpinner + + + + + + + + + 5 + wxEXPAND | wxALL + 1 + + + + 1 + + + 0 + wxID_ANY + + + lod_panel + protected + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + wxTAB_TRAVERSAL + + + + + + + + + + + + + + + + + + + + + + + + + + lod_sizer + wxHORIZONTAL + none + + 5 + wxALL + 0 + + + + 1 + + + 0 + wxID_ANY + lod speed: + + + lod_text + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + 10 + 100000 + + 1 + + lod_spinner + protected + + + wxSP_ARROW_KEYS + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + OnLODAdaption + + + + + + + + + 5 + wxALL|wxALIGN_CENTER_HORIZONTAL + 0 + + + + 0 + 1 + + + 0 + wxID_ANY + Cycle LOD + + + cycleLOD + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnCycleLOD + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT + 0 + + + + 0 + 1 + + + 0 + wxID_ANY + Quit + + + m_button31 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + + + + 0 + wxID_ANY + + + Controls + + -1,-1 + wxDEFAULT_FRAME_STYLE + + Controls + + + wxFILTER_NONE + wxDefaultValidator + + + + wxTAB_TRAVERSAL + 1 + + + + OnClose + + + + + + + + + + + + + + + + + + + + + + + + + + + + bSizer17 + wxHORIZONTAL + none + + 5 + + 0 + + wxID_ANY + Settings: + + sbSizer5 + wxVERTICAL + none + + + 5 + wxEXPAND + 1 + + + bSizer26 + wxHORIZONTAL + none + + 5 + wxALL + 0 + + + + 1 + + + 0 + wxID_ANY + Apex Angle + + + m_staticText21 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxALIGN_RIGHT|wxLEFT|wxRIGHT + 0 + + + + 1 + + + 0 + wxID_ANY + 0 + 10 + + 0 + + m_spinCtrl11 + protected + + + wxSP_ARROW_KEYS + + + + wxFILTER_NONE + wxDefaultValidator + + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + OnApexAngle + + + + + + + + 5 + wxEXPAND + 1 + + + bSizer261 + wxHORIZONTAL + none + + 5 + wxALL + 0 + + + + 1 + + + 0 + wxID_ANY + Parallel Zoom + + + m_staticText211 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + 0 + 10 + + 0 + + m_spinCtrl111 + protected + + + wxSP_ARROW_KEYS + + + + wxFILTER_NONE + wxDefaultValidator + + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + OnParallelZoom + + + + + + + + + + 5 + + 0 + + wxID_ANY + Mode: + + sbSizer51 + wxVERTICAL + none + + + 5 + wxRIGHT|wxLEFT|wxEXPAND + 0 + + + + 0 + 1 + + + 0 + wxID_ANY + Top View + + + m_button15 + protected + + + wxBU_EXACTFIT + + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnTopView + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxRIGHT|wxLEFT|wxEXPAND + 0 + + + + 0 + 1 + + + 0 + wxID_ANY + Reset Position + + + m_button16 + protected + + + wxBU_EXACTFIT + + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnResetPosition + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + + 0 + + wxID_ANY + Camera: + + sbSizer52 + wxVERTICAL + none + + + 5 + wxEXPAND + 1 + + + bSizer262 + wxHORIZONTAL + none + + 5 + wxALL + 0 + + + + 1 + + + 0 + wxID_ANY + Choose Camera + + + m_staticText212 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxALIGN_RIGHT|wxLEFT|wxRIGHT + 0 + + + + 1 + + + 0 + wxID_ANY + 0 + 10 + + 0 + + m_spinCtrl112 + protected + + + wxSP_ARROW_KEYS + + + + wxFILTER_NONE + wxDefaultValidator + + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + OnChooseCamera + + + + + + + + 5 + wxRIGHT|wxLEFT|wxALIGN_CENTER_HORIZONTAL + 0 + + + + 0 + 1 + + + 0 + wxID_ANY + Add Camera + + + m_button19 + protected + + + wxBU_EXACTFIT + + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnAddCamera + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxRIGHT|wxLEFT|wxALIGN_CENTER_HORIZONTAL + 0 + + + + 0 + 1 + + + 0 + wxID_ANY + Delete Camera + + + m_button20 + protected + + + wxBU_EXACTFIT + + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnDeleteCamera + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + + 0 + + wxID_ANY + Settings: + + sbSizer521 + wxVERTICAL + none + + + 5 + wxRIGHT|wxLEFT + 0 + + + 1 + + 1 + + + 0 + wxID_ANY + MouseNav + + + m_checkBox7 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnMouseNav + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxRIGHT|wxLEFT + 0 + + + 0 + + 1 + + + 0 + wxID_ANY + Always all Points + + + m_checkBox8 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnAlwaysAllPoints + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxRIGHT|wxLEFT + 0 + + + 1 + + 1 + + + 0 + wxID_ANY + Always reduce Points + + + m_checkBox9 + protected + + + + + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnAlwaysReducePoints + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dat/README b/dat/README new file mode 100644 index 0000000..f3c37db --- /dev/null +++ b/dat/README @@ -0,0 +1,12 @@ +Please remember: The data here is just for "playing around" with the +program. + +Real, larger and more useful data sets can be downloaded from the data +repository, http://kos.informatik.uni-osnabrueck.de/3Dscans/ +(or click on the "Data Repository" link on this project's web site +on Sourceforge, http://slam6d.sourceforge.net/) + +Or use your own data, and if it's stored in a different format then +the onces that are already supported by our program, write your own +scan_io function. It's easy! + diff --git a/dat/scan000.3d b/dat/scan000.3d new file mode 100644 index 0000000..5730f19 --- /dev/null +++ b/dat/scan000.3d @@ -0,0 +1,81361 @@ +360 x 225 +10.1 0 0 +10.0996 -0.0662149 0.0581712 +10.0985 -0.132425 0.116338 +10.6963 -0.210424 0.184862 +10.9933 -0.288406 0.253371 +11.8887 -0.389959 0.342588 +11.8837 -0.467886 0.411048 +11.2789 -0.518258 0.455301 +12.9683 -0.681272 0.598512 +12.1624 -0.719111 0.631754 +12.5521 -0.825008 0.724787 +13.836 -1.00088 0.879294 +14.52 -1.14652 1.00724 +13.8106 -1.18213 1.03853 +18.8584 -1.73957 1.52825 +28.5536 -2.82411 2.48105 +31.3915 -3.31442 2.91179 +37.187 -4.17525 3.66805 +37.9272 -4.5129 3.96468 +42.1144 -5.29456 4.65138 +48.2556 -6.39233 5.6158 +61.5518 -8.57035 7.52923 +86.4814 -12.629 11.0948 +86.1354 -13.1655 11.5661 +91.4568 -14.6043 12.8302 +93.041 -15.4961 13.6137 +93.8318 -16.2745 14.2975 +94.6116 -17.0644 14.9914 +94.4098 -17.684 15.5358 +94.4912 -18.3587 16.1285 +95.0471 -19.133 16.8088 +95.4958 -19.896 17.479 +95.261 -20.5213 18.0284 +95.019 -21.145 18.5763 +94.7698 -21.7671 19.1229 +95.3717 -22.591 19.8466 +95.0105 -23.1921 20.3748 +95.6859 -24.0525 21.1306 +95.4028 -24.6789 21.6809 +95.8666 -25.5041 22.4059 +95.2848 -26.0544 22.8894 +96.0089 -26.9676 23.6916 +95.5053 -27.5421 24.1963 +96.1121 -28.4426 24.9874 +95.7781 -29.0716 25.54 +95.0672 -29.5834 25.9896 +93.9835 -29.9706 26.3298 +93.8152 -30.6456 26.9228 +94.552 -31.6261 27.7842 +94.454 -32.3383 28.4099 +94.6185 -33.1468 29.1201 +94.0494 -33.7012 29.6072 +94.3734 -34.5799 30.3792 +94.7735 -35.499 31.1866 +93.9121 -35.9484 31.5815 +94.9989 -37.1525 32.6393 +94.2988 -37.6681 33.0922 +93.5061 -38.1415 33.5081 +94.284 -39.2629 34.4933 +92.0836 -39.1397 34.385 +90.6729 -39.3287 34.5511 +88.2308 -39.0446 34.3015 +87.5168 -39.5055 34.7065 +85.3493 -39.2927 34.5195 +83.7023 -39.2934 34.5201 +82.821 -39.6388 34.8235 +80.9317 -39.4847 34.6882 +79.3025 -39.4333 34.643 +78.427 -39.7416 34.9138 +77.4679 -39.999 35.1399 +75.1162 -39.5142 34.7141 +74.6544 -40.0052 35.1454 +72.8115 -39.7424 34.9145 +70.9002 -39.4139 34.6259 +69.9605 -39.6059 34.7946 +68.2284 -39.3313 34.5534 +67.3749 -39.5459 34.7419 +66.5217 -39.7522 34.9231 +65.2803 -39.714 34.8896 +63.4275 -39.2803 34.5086 +62.9689 -39.6946 34.8726 +61.2127 -39.2765 34.5053 +60.0749 -39.2327 34.4668 +59.6169 -39.6251 34.8115 +58.4112 -39.5118 34.7119 +57.2864 -39.4364 34.6457 +55.9486 -39.1956 34.4342 +54.9108 -39.1472 34.3916 +53.8066 -39.036 34.294 +52.7092 -38.9134 34.1862 +52.2552 -39.2575 34.4885 +51.1664 -39.1163 34.3645 +50.0849 -38.9639 34.2306 +49.0797 -38.8548 34.1348 +48.4901 -39.0651 34.3196 +47.3589 -38.8277 34.1109 +47.0399 -39.2484 34.4805 +46.1846 -39.2176 34.4535 +45.1369 -39.0086 34.2699 +44.1625 -38.8461 34.1271 +43.3239 -38.7888 34.0768 +42.9353 -39.1294 34.376 +41.8498 -38.8255 34.109 +40.9615 -38.6868 33.9872 +40.0796 -38.5395 33.8578 +39.6912 -38.8603 34.1396 +39.118 -38.9991 34.2615 +38.3066 -38.8917 34.1672 +37.5595 -38.8375 34.1196 +36.5262 -38.4707 33.7973 +36.078 -38.7087 34.0064 +35.5137 -38.8198 34.1041 +34.5581 -38.4906 33.8149 +34.1097 -38.7157 34.0126 +33.6042 -38.8749 34.1524 +33.0977 -39.0304 34.289 +32.537 -39.1185 34.3664 +31.6112 -38.7537 34.046 +31.2113 -39.0239 34.2833 +30.8076 -39.2918 34.5187 +29.9 -38.9067 34.1804 +29.4469 -39.1013 34.3513 +28.5553 -38.7014 34.0001 +28.0569 -38.8211 34.1052 +27.6519 -39.0699 34.3238 +26.8276 -38.7166 34.0134 +26.4222 -38.958 34.2254 +25.5225 -38.4574 33.7856 +25.1187 -38.6908 33.9907 +24.6252 -38.7862 34.0745 +24.1738 -38.9461 34.215 +23.8034 -39.2399 34.4731 +22.9399 -38.7081 34.0059 +22.5293 -38.9259 34.1973 +22.0763 -39.0721 34.3257 +21.2772 -38.5907 33.9028 +20.8656 -38.7984 34.0852 +20.3775 -38.8638 34.1427 +19.9611 -39.066 34.3204 +19.2264 -38.6325 33.9395 +18.8111 -38.8277 34.1109 +18.3594 -38.9495 34.218 +17.8737 -38.9974 34.26 +17.3566 -38.9706 34.2365 +17.2122 -39.7973 34.9628 +16.4787 -39.2638 34.4941 +15.7881 -38.7957 34.0828 +15.3652 -38.9696 34.2357 +14.6915 -38.4912 33.8153 +14.4309 -39.0928 34.3438 +13.7951 -38.6779 33.9794 +13.3703 -38.8397 34.1215 +12.8944 -38.853 34.1332 +12.4426 -38.936 34.2061 +11.9674 -38.9429 34.2122 +11.4713 -38.8732 34.1509 +10.8946 -38.506 33.8283 +10.6064 -39.1649 34.4072 +10.0175 -38.7167 34.0134 +9.56737 -38.7809 34.0699 +9.13389 -38.9162 34.1887 +8.6815 -38.9745 34.24 +8.22845 -39.03 34.2887 +7.65653 -38.488 33.8125 +7.22308 -38.6111 33.9207 +6.7482 -38.5081 33.8302 +6.32502 -38.6999 33.9987 +5.96581 -39.3371 34.5585 +5.40412 -38.6276 33.9352 +4.96481 -38.7363 34.0307 +4.50595 -38.6926 33.9923 +4.05634 -38.7206 34.0169 +3.59943 -38.6708 33.9731 +3.15621 -38.7679 34.0585 +2.70577 -38.7871 34.0753 +2.25512 -38.8034 34.0896 +1.8043 -38.8167 34.1013 +1.35597 -38.9021 34.1763 +0.888327 -38.2335 33.5889 +0.451162 -38.8389 34.1208 +3.1105e-15 -38.1642 33.5281 +-0.451162 -38.8389 34.1208 +-0.900544 -38.7593 34.0509 +-1.35073 -38.7519 34.0444 +-1.80081 -38.7416 34.0354 +-2.25512 -38.8034 34.0896 +-2.70054 -38.7121 34.0094 +-3.1501 -38.693 33.9926 +-3.66221 -39.3453 34.5657 +-4.11126 -39.2449 34.4775 +-4.56696 -39.2164 34.4525 +-5.01273 -39.1102 34.3592 +-5.46684 -39.0759 34.329 +-5.93185 -39.1132 34.3618 +-6.38595 -39.0728 34.3263 +-6.82652 -38.955 34.2228 +-7.29267 -38.9831 34.2475 +-7.74521 -38.9338 34.2042 +-8.18152 -38.8074 34.0931 +-8.61549 -38.6782 33.9796 +-9.06443 -38.6202 33.9287 +-9.65848 -39.1503 34.3943 +-10.0175 -38.7167 34.0134 +-10.2874 -37.987 33.3724 +-10.9362 -38.653 33.9575 +-11.3847 -38.5798 33.8932 +-11.8099 -38.4305 33.762 +-12.2559 -38.3516 33.6927 +-12.7251 -38.3427 33.6849 +-13.3703 -38.8397 34.1215 +-13.7951 -38.6779 33.9794 +-14.2705 -38.6585 33.9623 +-14.9671 -39.2134 34.4498 +-15.422 -39.1137 34.3623 +-15.8758 -39.0111 34.2721 +-16.3584 -38.9772 34.2423 +-16.8414 -38.94 34.2096 +-17.2931 -38.828 34.1113 +-18.069 -39.4236 34.6344 +-18.5597 -39.3744 34.5913 +-19.0505 -39.3218 34.5451 +-19.5066 -39.1954 34.434 +-19.9253 -38.9959 34.2588 +-20.7073 -39.4929 34.6954 +-21.0904 -39.2164 34.4524 +-21.5451 -39.0766 34.3296 +-22.0372 -39.003 34.265 +-22.8483 -39.4771 34.6814 +-23.3874 -39.4631 34.6692 +-23.8863 -39.3766 34.5932 +-24.3428 -39.2185 34.4543 +-25.1849 -39.6676 34.8489 +-25.6447 -39.5011 34.7026 +-26.1026 -39.3315 34.5535 +-26.6038 -39.2258 34.4607 +-27.4279 -39.5829 34.7744 +-27.8397 -39.3353 34.5569 +-28.2955 -39.1513 34.3953 +-29.1371 -39.4899 34.6927 +-29.6931 -39.4281 34.6385 +-29.95 -38.9718 34.2375 +-30.9598 -39.486 34.6893 +-31.3658 -39.2171 34.4531 +-32.2904 -39.5865 34.7776 +-32.855 -39.5007 34.7022 +-33.2051 -39.1571 34.4003 +-33.9855 -39.3159 34.5399 +-34.8272 -39.5302 34.7281 +-35.6206 -39.674 34.8545 +-36.0234 -39.3771 34.5936 +-37.053 -39.7548 34.9254 +-37.5134 -39.5104 34.7107 +-38.4999 -39.8099 34.9739 +-38.9014 -39.4956 34.6977 +-39.9003 -39.7791 34.9468 +-40.4218 -39.5756 34.768 +-40.8799 -39.3091 34.5339 +-41.833 -39.51 34.7103 +-42.9826 -39.8764 35.0323 +-43.5078 -39.651 34.8343 +-44.4166 -39.7672 34.9363 +-44.9418 -39.5316 34.7294 +-45.9241 -39.6891 34.8677 +-46.9798 -39.8929 35.0467 +-47.4414 -39.5834 34.7748 +-48.5074 -39.7693 34.9382 +-49.6495 -39.9992 35.1401 +-50.6629 -40.1082 35.2359 +-51.1269 -39.7745 34.9427 +-52.2177 -39.9201 35.0706 +-53.3866 -40.1074 35.2352 +-54.5637 -40.2825 35.389 +-55.8208 -40.4973 35.5777 +-56.9419 -40.5952 35.6637 +-57.3381 -40.1691 35.2894 +-58.5398 -40.2992 35.4037 +-59.4516 -40.2155 35.3302 +-60.3658 -40.1229 35.2488 +-61.3579 -40.0706 35.2029 +-62.5814 -40.1548 35.2768 +-63.8115 -40.2258 35.3393 +-64.585 -39.9971 35.1383 +-65.7465 -39.9977 35.1388 +-67.3043 -40.2199 35.334 +-68.4781 -40.1934 35.3107 +-70.0531 -40.3832 35.4775 +-71.2383 -40.3293 35.4301 +-73.3117 -40.7544 35.8036 +-74.5914 -40.7139 35.768 +-75.5499 -40.485 35.567 +-77.246 -40.6346 35.6984 +-78.7041 -40.6372 35.7007 +-80.3337 -40.7078 35.7627 +-81.971 -40.7601 35.8087 +-83.4477 -40.7122 35.7665 +-85.0982 -40.7287 35.781 +-86.3313 -40.5275 35.6043 +-89.0156 -40.9806 36.0024 +-90.9455 -41.0532 36.0661 +-92.1082 -40.7605 35.809 +-95.1762 -41.282 36.2671 +-96.8706 -41.1743 36.1725 +-99.007 -41.2297 36.2212 +-101.328 -41.3318 36.3109 +-103.128 -41.195 36.1907 +-106.53 -41.6621 36.6011 +-108.703 -41.6101 36.5554 +-111.598 -41.801 36.7231 +-113.608 -41.6276 36.5708 +-116.343 -41.6898 36.6254 +-121.083 -42.4177 37.2649 +-125.302 -42.8997 37.6883 +-128.993 -43.146 37.9047 +-132.057 -43.1375 37.8972 +-135.13 -43.092 37.8572 +-136.549 -42.492 37.3301 +-14.6495 -4.44657 3.9064 +-52.8477 -15.6393 13.7395 +-48.6395 -14.0269 12.3229 +-42.1502 -11.8394 10.4012 +-39.4671 -10.7918 9.48079 +-15.7421 -4.18797 3.67923 +-15.412 -3.98678 3.50247 +-15.1732 -3.81407 3.35074 +-14.7414 -3.59837 3.16125 +-15.3548 -3.63714 3.19531 +-14.9184 -3.42652 3.01027 +-14.9576 -3.32858 2.92423 +-12.7848 -2.75412 2.41955 +-14.2617 -2.97135 2.61039 +-3164.66 -637.049 559.661 +-3171.94 -616.277 541.413 +-11.2554 -2.10827 1.85216 +-13.127 -2.36762 2.08 +-13.2514 -2.29836 2.01916 +-12.6918 -2.11384 1.85705 +-13.3028 -2.12427 1.86622 +-13.229 -2.022 1.77637 +-12.7612 -1.86353 1.63715 +-13.3723 -1.86193 1.63575 +-13.5903 -1.80028 1.58159 +-13.6107 -1.71112 1.50326 +-12.9387 -1.53956 1.35253 +-12.8572 -1.44357 1.26821 +-13.7647 -1.45333 1.27678 +-13.7811 -1.36303 1.19745 +-13.2009 -1.21769 1.06977 +-13.1151 -1.1226 0.986227 +-12.1332 -0.95805 0.841667 +-12.4425 -0.900067 0.790728 +-11.4562 -0.752985 0.661513 +-11.5642 -0.683745 0.600685 +-10.4744 -0.550258 0.483414 +-10.9795 -0.504499 0.443214 +-10.7852 -0.424636 0.373051 +-10.3901 -0.340805 0.299404 +-10.9933 -0.288406 0.253371 +-10.9962 -0.216324 0.190045 +-9.89849 -0.129803 0.114034 +-9.89962 -0.0649037 0.0570193 +9.9 0 0 +10.0996 -0.0656873 0.0587663 +10.9983 -0.143076 0.128001 +10.6963 -0.208747 0.186753 +10.9933 -0.286108 0.255963 +10.9895 -0.357594 0.319917 +12.1833 -0.475859 0.425722 +12.0774 -0.550527 0.492522 +12.1703 -0.634253 0.567427 +12.4615 -0.730923 0.653911 +13.4486 -0.876894 0.784502 +14.2342 -1.02147 0.913846 +14.8184 -1.16075 1.03845 +14.1087 -1.19803 1.0718 +16.8733 -1.54405 1.38137 +29.5451 -2.89889 2.59346 +33.8672 -3.54732 3.17356 +37.0881 -4.13097 3.69572 +39.5075 -4.66349 4.17213 +42.0158 -5.24007 4.68796 +45.2027 -5.9402 5.31433 +59.7819 -8.25761 7.38756 +85.4016 -12.3719 11.0684 +89.5651 -13.5806 12.1497 +91.359 -14.4726 12.9477 +92.26 -15.2435 13.6374 +93.9293 -16.1616 14.4588 +94.6116 -16.9284 15.1448 +95.283 -17.7054 15.8399 +95.2657 -18.3617 16.4271 +95.0471 -18.9806 16.9807 +95.4958 -19.7374 17.6578 +95.261 -20.3578 18.2128 +95.019 -20.9765 18.7664 +94.7698 -21.5937 19.3185 +95.2763 -22.3885 20.0296 +95.0105 -23.0073 20.5832 +95.591 -23.8372 21.3256 +95.3083 -24.458 21.8811 +95.8666 -25.3009 22.6351 +95.4728 -25.8978 23.1692 +96.0089 -26.7527 23.934 +95.5053 -27.3226 24.4439 +96.1121 -28.2159 25.243 +96.6126 -29.0912 26.0261 +96.1759 -29.6899 26.5617 +93.8915 -29.7028 26.5732 +94.4572 -30.6095 27.3844 +94.4606 -31.3439 28.0414 +93.271 -31.6789 28.3411 +94.6185 -32.8826 29.418 +93.5078 -33.2401 29.7378 +93.7442 -34.0757 30.4854 +93.8786 -34.8836 31.2082 +93.9121 -35.662 31.9046 +94.2006 -36.5467 32.6961 +93.6807 -37.123 33.2116 +93.3304 -37.7665 33.7873 +94.0216 -38.8417 34.7492 +92.0836 -38.8278 34.7368 +90.6729 -39.0153 34.9046 +88.4893 -38.847 34.754 +86.5739 -38.7685 34.6837 +85.3493 -38.9796 34.8726 +83.7023 -38.9803 34.8732 +82.062 -38.9626 34.8574 +80.5124 -38.9671 34.8614 +79.3025 -39.1191 34.9974 +77.6808 -39.0499 34.9355 +76.7261 -39.3003 35.1595 +75.8535 -39.5841 35.4134 +73.9217 -39.2969 35.1565 +72.0834 -39.0315 34.919 +70.9002 -39.0998 34.9802 +69.9605 -39.2903 35.1506 +68.1491 -38.9725 34.8663 +66.9021 -38.9555 34.851 +66.5217 -39.4354 35.2804 +64.5031 -38.9286 34.8269 +63.4275 -38.9673 34.8616 +62.2794 -38.9472 34.8436 +61.897 -39.3992 35.248 +60.0749 -38.9201 34.8194 +59.6169 -39.3094 35.1677 +57.7424 -38.7481 34.6655 +57.2864 -39.1222 35.0002 +56.0217 -38.9342 34.8319 +54.9108 -38.8353 34.7435 +53.7347 -38.6732 34.5985 +53.3511 -39.0734 34.9566 +51.6895 -38.5231 34.4642 +51.2365 -38.8578 34.7636 +50.1543 -38.707 34.6287 +49.0108 -38.4912 34.4356 +48.0127 -38.3724 34.3293 +47.4264 -38.5733 34.5091 +46.4377 -38.4372 34.3874 +46.0521 -38.7935 34.7061 +45.0056 -38.5854 34.5199 +44.1625 -38.5365 34.4762 +43.1953 -38.3656 34.3233 +42.8717 -38.7601 34.6762 +41.8498 -38.5161 34.458 +41.5217 -38.9035 34.8045 +40.7568 -38.8784 34.7821 +39.6912 -38.5507 34.4889 +38.456 -38.0336 34.0263 +38.3066 -38.5819 34.5168 +37.7358 -38.7089 34.6305 +37.1069 -38.7709 34.6859 +36.078 -38.4002 34.3543 +35.457 -38.4491 34.398 +35.0055 -38.6783 34.603 +34.0545 -38.3452 34.305 +33.5498 -38.5026 34.4459 +33.0439 -38.6565 34.5836 +32.59 -38.87 34.7745 +32.1337 -39.0805 34.9628 +31.2113 -38.713 34.6341 +30.3508 -38.4008 34.3547 +29.9 -38.5967 34.53 +29.4469 -38.7897 34.7027 +28.5068 -38.3279 34.2895 +28.5341 -39.1668 35.0401 +27.2763 -38.2322 34.204 +27.197 -38.937 34.8345 +26.0137 -38.05 34.0409 +25.5225 -38.1509 34.1313 +25.0748 -38.3155 34.2785 +24.6252 -38.4771 34.4231 +24.1738 -38.6358 34.565 +23.8034 -38.9272 34.8257 +22.8993 -38.3316 34.2929 +22.4894 -38.5474 34.486 +22.0372 -38.6922 34.6155 +21.6216 -38.9029 34.804 +20.8281 -38.4201 34.3721 +20.4141 -38.6235 34.554 +19.9611 -38.7548 34.6715 +19.2264 -38.3247 34.2867 +18.7769 -38.4482 34.3972 +18.326 -38.5689 34.5052 +17.8411 -38.6161 34.5474 +17.3883 -38.7307 34.6499 +16.9959 -38.9841 34.8766 +16.5087 -39.0221 34.9106 +15.7881 -38.4865 34.4315 +15.3652 -38.6591 34.5859 +14.6639 -38.1129 34.0972 +14.4309 -38.7813 34.6952 +13.7951 -38.3698 34.327 +13.3453 -38.4581 34.406 +12.9186 -38.6157 34.547 +12.2325 -37.9736 33.9726 +11.7649 -37.9791 33.9775 +11.4713 -38.5635 34.5003 +10.8946 -38.1992 34.1744 +10.6064 -38.8528 34.7592 +10.151 -38.9204 34.8196 +9.56737 -38.4719 34.4184 +8.97761 -37.9455 33.9475 +8.665 -38.5905 34.5245 +8.08766 -38.0565 34.0468 +7.67131 -38.2551 34.2244 +7.237 -38.3773 34.3337 +6.86568 -38.8663 34.7712 +6.31283 -38.3177 34.2804 +5.86393 -38.3572 34.3158 +5.40412 -38.3198 34.2823 +4.96481 -38.4277 34.3788 +4.50595 -38.3843 34.34 +4.05634 -38.4121 34.3649 +3.59943 -38.3627 34.3207 +3.15621 -38.459 34.4069 +2.70577 -38.478 34.4239 +2.2115 -37.7496 33.7722 +1.7694 -37.7626 33.7838 +1.35597 -38.5921 34.526 +0.886582 -37.8544 33.866 +0.450289 -38.4549 34.4032 +3.1105e-15 -37.8601 33.8711 +-0.458143 -39.1256 35.0032 +-0.884837 -37.7799 33.7993 +-1.35073 -38.4432 34.3927 +-1.8043 -38.5074 34.4502 +-2.25076 -38.4198 34.3718 +-2.70054 -38.4037 34.3573 +-3.1501 -38.3847 34.3403 +-3.59943 -38.3627 34.3207 +-4.11126 -38.9322 34.8302 +-4.56696 -38.904 34.8049 +-5.01273 -38.7986 34.7107 +-5.45639 -38.6904 34.6138 +-6.02241 -39.3939 35.2433 +-6.38595 -38.7615 34.6775 +-6.83957 -38.7185 34.639 +-7.29267 -38.6725 34.5978 +-7.73043 -38.5499 34.4882 +-8.18152 -38.4982 34.4419 +-8.61549 -38.37 34.3272 +-8.99498 -38.0189 34.0131 +-9.51269 -38.2521 34.2217 +-9.84574 -37.7498 33.7724 +-10.2874 -37.6843 33.7138 +-10.749 -37.6889 33.7179 +-11.3847 -38.2724 34.2399 +-11.8324 -38.1969 34.1724 +-12.2559 -38.046 34.0374 +-12.9186 -38.6157 34.547 +-13.3453 -38.4581 34.406 +-13.7951 -38.3698 34.327 +-14.2705 -38.3505 34.3097 +-14.9395 -38.8293 34.7381 +-15.422 -38.8021 34.7138 +-15.8758 -38.7003 34.6227 +-16.3283 -38.5956 34.529 +-16.8414 -38.6297 34.5596 +-17.3248 -38.5894 34.5235 +-17.776 -38.4752 34.4214 +-18.5597 -39.0607 34.9452 +-18.7085 -38.3082 34.2719 +-19.4715 -38.8133 34.7239 +-19.8536 -38.5461 34.4848 +-20.634 -39.0395 34.9262 +-21.0904 -38.9039 34.8049 +-21.5451 -38.7652 34.6808 +-22.3498 -39.2411 35.1065 +-22.8483 -39.1625 35.0362 +-23.3874 -39.1486 35.0238 +-23.8863 -39.0629 34.9471 +-24.3428 -38.906 34.8067 +-24.7974 -38.7462 34.6638 +-25.6447 -39.1864 35.0576 +-25.7456 -38.4845 34.4296 +-26.6038 -38.9132 34.8132 +-27.4279 -39.2675 35.1302 +-27.9336 -39.1535 35.0282 +-28.2478 -38.7738 34.6885 +-29.1371 -39.1752 35.0476 +-29.6439 -39.0491 34.9348 +-30 -38.7258 34.6455 +-30.8583 -39.043 34.9293 +-31.3658 -38.9046 34.8055 +-31.8202 -38.6992 34.6217 +-32.3781 -38.6171 34.5483 +-33.2051 -38.8451 34.7523 +-33.6042 -38.5652 34.5018 +-34.8272 -39.2152 35.0834 +-35.4528 -39.1726 35.0452 +-36.0234 -39.0633 34.9475 +-36.4795 -38.8276 34.7366 +-37.5134 -39.1956 35.0658 +-37.9121 -38.8898 34.7923 +-38.9014 -39.1809 35.0527 +-39.9003 -39.4621 35.3043 +-40.4218 -39.2603 35.1237 +-40.8184 -38.9371 34.8346 +-41.833 -39.1951 35.0654 +-42.2903 -38.9216 34.8207 +-43.4441 -39.2777 35.1393 +-44.4809 -39.5074 35.3448 +-45.5263 -39.7267 35.541 +-45.4649 -38.9791 34.8721 +-46.9798 -39.575 35.4053 +-47.4414 -39.268 35.1306 +-48.5074 -39.4524 35.2956 +-48.9675 -39.1355 35.012 +-50.1122 -39.3561 35.2095 +-51.1963 -39.5111 35.3481 +-52.2878 -39.6551 35.477 +-53.3866 -39.7879 35.5957 +-54.5637 -39.9615 35.7511 +-55.8927 -40.2264 35.988 +-56.2891 -39.81 35.6155 +-56.753 -39.4424 35.2867 +-58.5398 -39.9781 35.7659 +-59.4516 -39.895 35.6916 +-61.0399 -40.2476 36.007 +-61.3579 -39.7513 35.563 +-62.6575 -39.8832 35.681 +-63.1221 -39.4742 35.3151 +-64.585 -39.6784 35.4978 +-65.9797 -39.8197 35.6242 +-66.6 -39.4819 35.3219 +-67.7689 -39.4602 35.3025 +-69.6564 -39.8346 35.6375 +-71.5577 -40.1873 35.9531 +-73.3117 -40.4297 36.1699 +-73.4587 -39.7762 35.5852 +-75.7942 -40.2923 36.047 +-77.0003 -40.1826 35.9488 +-78.7041 -40.3134 36.0659 +-79.5876 -40.0084 35.793 +-82.2211 -40.5588 36.2854 +-83.1961 -40.266 36.0235 +-84.8452 -40.284 36.0396 +-86.5857 -40.3231 36.0746 +-89.0156 -40.6541 36.3707 +-90.174 -40.3807 36.126 +-92.8836 -40.7761 36.4798 +-94.137 -40.5059 36.2381 +-96.4354 -40.6628 36.3784 +-98.4822 -40.6844 36.3978 +-100.8 -40.7891 36.4915 +-102.863 -40.7618 36.467 +-105.377 -40.8828 36.5752 +-107.455 -40.8049 36.5056 +-110.793 -41.1686 36.831 +-113.338 -41.1979 36.8572 +-116.343 -41.3576 37.0001 +-121.355 -42.1742 37.7307 +-125.302 -42.5578 38.0738 +-127.44 -42.2869 37.8315 +-132.882 -43.0612 38.5242 +-134.21 -42.4575 37.984 +-135.995 -41.9823 37.5589 +-14.3713 -4.32738 3.87144 +-50.7078 -14.8864 13.3179 +-46.9591 -13.4343 12.0188 +-42.0566 -11.719 10.4842 +-38.5274 -10.4509 9.34975 +-15.7421 -4.15461 3.71686 +-15.1283 -3.88222 3.47318 +-15.7422 -3.92557 3.51196 +-15.0267 -3.6388 3.2554 +-15.5456 -3.65298 3.26809 +-15.1096 -3.44279 3.08005 +-14.2864 -3.15389 2.82159 +-14.5151 -3.10194 2.77511 +-13.3945 -2.76842 2.47673 +-3164.66 -631.973 565.386 +-12.005 -2.31387 2.07008 +-11.8376 -2.19965 1.96789 +-13.127 -2.34875 2.10128 +-12.0822 -2.07887 1.85984 +-12.399 -2.04861 1.83276 +-12.4225 -1.96789 1.76055 +-12.641 -1.91674 1.71479 +-13.1538 -1.90556 1.70478 +-13.3723 -1.8471 1.65248 +-13.7873 -1.81182 1.62092 +-12.6245 -1.57448 1.40859 +-13.4326 -1.58559 1.41853 +-13.4506 -1.49817 1.34031 +-14.0618 -1.47286 1.31768 +-13.1862 -1.2938 1.15748 +-13.6971 -1.25341 1.12135 +-13.1151 -1.11365 0.996317 +-12.4315 -0.973788 0.871187 +-11.7457 -0.842895 0.754085 +-11.9543 -0.779464 0.697338 +-11.1655 -0.654907 0.585904 +-11.5717 -0.60306 0.53952 +-10.9795 -0.50048 0.447748 +-11.5841 -0.452456 0.404784 +-11.589 -0.3771 0.337367 +-10.0938 -0.262699 0.235021 +-10.3964 -0.202895 0.181517 +-10.7984 -0.140475 0.125674 +-10.7996 -0.0702399 0.0628393 +10.4 0 0 +9.49964 -0.0612839 0.0558305 +10.3984 -0.134174 0.122235 +10.9962 -0.212859 0.193918 +10.0938 -0.260568 0.237381 +11.2892 -0.364367 0.331943 +11.2845 -0.437179 0.398276 +11.8778 -0.537035 0.489248 +11.5717 -0.598168 0.54494 +12.4615 -0.724993 0.66048 +13.0502 -0.84401 0.768906 +12.9402 -0.921075 0.839114 +14.2217 -1.10497 1.00665 +14.0094 -1.17994 1.07494 +16.1785 -1.46846 1.33779 +32.916 -3.20344 2.91838 +37.2341 -3.86833 3.52411 +37.8793 -4.18486 3.81248 +38.2235 -4.47532 4.07708 +40.9309 -5.06335 4.61279 +38.8999 -5.07046 4.61927 +52.8008 -7.23416 6.59043 +71.4625 -10.2686 9.35484 +78.002 -11.7314 10.6875 +78.2518 -12.2956 11.2014 +89.9169 -14.7359 13.4246 +92.2728 -15.7478 14.3465 +94.6116 -16.7911 15.2969 +95.283 -17.5617 15.999 +95.2657 -18.2127 16.5921 +95.0471 -18.8266 17.1513 +94.8212 -19.4391 17.7093 +95.261 -20.1926 18.3958 +95.019 -20.8063 18.9549 +94.7698 -21.4185 19.5126 +94.5133 -22.029 20.0688 +95.0105 -22.8207 20.79 +95.591 -23.6438 21.5399 +95.3083 -24.2596 22.1009 +95.8666 -25.0956 22.8625 +95.4728 -25.6877 23.4019 +95.8216 -26.4839 24.1272 +95.4119 -27.0745 24.6653 +96.2052 -28.0141 25.5212 +96.3344 -28.7721 26.2118 +95.4368 -29.2227 26.6223 +93.8915 -29.4618 26.8401 +93.8152 -30.1547 27.4714 +94.3692 -31.0595 28.2957 +94.09 -31.6977 28.8771 +94.6185 -32.6159 29.7135 +94.2299 -33.2251 30.2685 +94.3734 -34.0261 30.9983 +94.0576 -34.6666 31.5818 +94.2685 -35.5069 32.3473 +94.1118 -36.2161 32.9934 +93.5924 -36.7871 33.5136 +94.2092 -37.8127 34.448 +93.4094 -38.2757 34.8698 +92.0836 -38.5128 35.0857 +88.9408 -37.9595 34.5817 +87.7138 -38.1942 34.7955 +86.0596 -38.2255 34.824 +84.1556 -38.1226 34.7303 +82.5151 -38.1156 34.7239 +81.3873 -38.3287 34.918 +79.7576 -38.2886 34.8815 +78.552 -38.4345 35.0144 +77.1834 -38.4851 35.0605 +76.3141 -38.7721 35.322 +74.379 -38.4997 35.0738 +73.2704 -38.6347 35.1968 +71.3553 -38.3238 34.9135 +70.4982 -38.5628 35.1313 +68.6827 -38.2597 34.8552 +68.0697 -38.6113 35.1755 +66.9021 -38.6394 35.2011 +65.6608 -38.6093 35.1737 +63.8037 -38.194 34.7953 +63.4275 -38.6512 35.2118 +61.5134 -38.156 34.7607 +60.4523 -38.1673 34.771 +59.3956 -38.1679 34.7715 +58.8679 -38.5006 35.0746 +57.7424 -38.4337 35.0137 +56.4017 -38.2055 34.8058 +55.3635 -38.1645 34.7685 +54.9108 -38.5202 35.0925 +53.7347 -38.3595 34.9461 +52.7092 -38.2901 34.8829 +51.6188 -38.1582 34.7627 +50.4655 -37.9625 34.5844 +49.4597 -37.8612 34.4922 +49.0108 -38.1789 34.7815 +47.3989 -37.5745 34.2309 +46.886 -37.8243 34.4585 +46.5715 -38.2352 34.8329 +45.522 -38.0359 34.6513 +44.4808 -37.826 34.46 +44.0975 -38.1677 34.7714 +43.581 -38.3941 34.9776 +42.8717 -38.4456 35.0245 +41.4722 -37.8589 34.4901 +41.086 -38.1829 34.7852 +40.1411 -37.9805 34.6008 +39.2042 -37.7688 34.408 +38.7569 -38.0202 34.637 +37.5333 -37.4963 34.1597 +37.0892 -37.737 34.379 +36.4681 -37.7943 34.4312 +35.5617 -37.5437 34.2028 +35.5137 -38.1981 34.799 +34.5022 -37.8129 34.4481 +34.0545 -38.0341 34.6496 +33.0596 -37.6323 34.2836 +33.0439 -38.3429 34.931 +32.1131 -37.9904 34.6098 +31.6634 -38.1961 34.7972 +30.7478 -37.8286 34.4625 +30.3508 -38.0892 34.6998 +29.85 -38.2195 34.8186 +28.9053 -37.7673 34.4066 +28.5068 -38.0169 34.634 +27.6752 -37.6797 34.3268 +27.2294 -37.8568 34.4881 +26.8276 -38.0965 34.7065 +25.9683 -37.6754 34.3228 +25.6118 -37.9737 34.5947 +25.0748 -38.0046 34.6228 +24.6683 -38.2317 34.8296 +24.1738 -38.3224 34.9123 +23.4302 -38.006 34.624 +22.9399 -38.0882 34.6989 +22.5293 -38.3025 34.8941 +21.7247 -37.8339 34.4673 +21.3155 -38.0409 34.6559 +20.8281 -38.1084 34.7174 +20.1209 -37.7599 34.3998 +19.6744 -37.8883 34.5168 +19.2264 -38.0137 34.6311 +18.4691 -37.5111 34.1732 +18.326 -38.256 34.8518 +17.5807 -37.7437 34.3851 +17.2296 -38.066 34.6787 +16.6869 -37.9648 34.5865 +16.3283 -38.2824 34.8759 +15.5249 -37.538 34.1977 +15.3368 -38.2747 34.8688 +14.6639 -37.8036 34.4397 +14.2171 -37.8968 34.5245 +13.7692 -37.9871 34.6068 +13.1199 -37.5019 34.1648 +12.6767 -37.5851 34.2406 +12.2325 -37.6655 34.3138 +11.7874 -37.7429 34.3844 +11.2765 -37.601 34.2551 +10.749 -37.3831 34.0566 +10.4469 -37.9581 34.5804 +9.99839 -38.0241 34.6405 +9.54914 -38.0871 34.698 +8.97761 -37.6377 34.2885 +8.6815 -38.3503 34.9377 +8.08766 -37.7478 34.3888 +7.68609 -38.0178 34.6348 +7.20917 -37.9195 34.5453 +6.76126 -37.9646 34.5863 +6.31283 -38.0068 34.6248 +5.86393 -38.046 34.6605 +5.40412 -38.0089 34.6267 +4.95523 -38.0423 34.6572 +4.4188 -37.3364 34.0141 +4.05634 -38.1004 34.7101 +3.53665 -37.3877 34.0608 +3.15621 -38.147 34.7525 +2.65343 -37.4277 34.0972 +2.2115 -37.4433 34.1115 +1.7694 -37.4562 34.1232 +1.32979 -37.5401 34.1996 +0.886582 -37.5473 34.2061 +0.452035 -38.2907 34.8834 +3.10438e-15 -37.479 34.144 +-0.442435 -37.4776 34.1427 +-0.883092 -37.3994 34.0715 +-1.35073 -38.1313 34.7382 +-1.76591 -37.3824 34.0559 +-2.25948 -38.2558 34.8516 +-2.70054 -38.0921 34.7025 +-3.1501 -38.0732 34.6853 +-3.59943 -38.0514 34.6654 +-4.0328 -37.8794 34.5087 +-4.47981 -37.8519 34.4837 +-4.91689 -37.748 34.389 +-5.45639 -38.3765 34.9616 +-5.92053 -38.4133 34.9951 +-6.27627 -37.7866 34.4242 +-6.73515 -37.8181 34.4528 +-7.16741 -37.6999 34.3452 +-7.73043 -38.2371 34.8346 +-8.04073 -37.5287 34.1892 +-8.36791 -36.9651 33.6757 +-8.82133 -36.9824 33.6916 +-9.64026 -38.4505 35.029 +-9.86483 -37.5161 34.1777 +-10.4868 -38.103 34.7124 +-10.749 -37.3831 34.0566 +-11.3631 -37.8897 34.5181 +-11.6525 -37.3108 33.9907 +-12.2559 -37.7373 34.3793 +-12.6525 -37.5134 34.1753 +-13.145 -37.5735 34.23 +-13.5621 -37.4158 34.0864 +-14.2438 -37.968 34.5895 +-14.6915 -37.8747 34.5044 +-15.1664 -37.8494 34.4814 +-15.6126 -37.7501 34.3909 +-16.3584 -38.353 34.9401 +-16.8105 -38.246 34.8427 +-17.2931 -38.2062 34.8064 +-17.5156 -37.6039 34.2577 +-18.2592 -38.1166 34.7248 +-18.7085 -37.9974 34.6162 +-19.5066 -38.5676 35.1357 +-19.8894 -38.3023 34.894 +-20.3042 -38.1038 34.7131 +-20.7907 -38.0399 34.6549 +-21.5833 -38.519 35.0914 +-21.9982 -38.3102 34.9012 +-22.5293 -38.3025 34.8941 +-22.9806 -38.1557 34.7604 +-23.8449 -38.6787 35.2369 +-23.9625 -37.9874 34.6071 +-24.7974 -38.4318 35.012 +-25.294 -38.3368 34.9255 +-26.1026 -38.7015 35.2577 +-26.1499 -37.9388 34.5629 +-27.0123 -38.3588 34.9455 +-27.4641 -38.1831 34.7854 +-28.2955 -38.5242 35.0962 +-28.7007 -38.2756 34.8696 +-29.1022 -38.0246 34.641 +-30.05 -38.4756 35.0519 +-30.4523 -38.2166 34.8159 +-31.0053 -38.1455 34.7511 +-31.8202 -38.3852 34.9695 +-32.3251 -38.2411 34.8382 +-32.6678 -37.9065 34.5334 +-33.7676 -38.4383 35.0179 +-34.3305 -38.3422 34.9304 +-35.7324 -39.1612 35.6764 +-35.6836 -38.3808 34.9655 +-36.4795 -38.5126 35.0855 +-36.8166 -38.1554 34.7601 +-37.9709 -38.6341 35.1962 +-38.9609 -38.9225 35.459 +-39.4189 -38.6696 35.2286 +-40.4826 -39.0004 35.5299 +-40.8799 -38.6795 35.2376 +-41.833 -38.8772 35.4177 +-42.4162 -38.7207 35.2751 +-43.3805 -38.9019 35.4402 +-43.3882 -38.2242 34.8228 +-44.9418 -38.8984 35.4371 +-45.4649 -38.6628 35.2224 +-46.3834 -38.7556 35.307 +-46.8391 -38.4549 35.033 +-47.8318 -38.5873 35.1536 +-48.9675 -38.8179 35.3637 +-50.1122 -39.0368 35.5631 +-50.5017 -38.6589 35.2188 +-52.2177 -39.2807 35.7853 +-52.6795 -38.9424 35.4771 +-53.8504 -39.1191 35.6381 +-54.3102 -38.7703 35.3203 +-55.4186 -38.8764 35.417 +-56.753 -39.1224 35.6411 +-57.8763 -39.2043 35.7157 +-59.0057 -39.2746 35.7798 +-59.6918 -39.0394 35.5655 +-60.7541 -39.0409 35.5668 +-61.897 -39.0796 35.6021 +-62.9689 -39.0589 35.5832 +-64.0448 -39.0274 35.5545 +-65.0471 -38.9384 35.4734 +-66.6782 -39.2075 35.7186 +-67.3749 -38.9125 35.4499 +-69.6564 -39.5114 35.9955 +-69.8007 -38.8825 35.4226 +-72.5883 -39.706 36.1728 +-73.216 -39.3231 35.824 +-75.3057 -39.7078 36.1744 +-75.5258 -39.0933 35.6146 +-77.4679 -39.3583 35.856 +-78.9244 -39.3531 35.8513 +-80.8035 -39.5361 36.018 +-82.6929 -39.6978 36.1653 +-84.4235 -39.7586 36.2207 +-85.5681 -39.5259 36.0087 +-88.2483 -39.9766 36.4193 +-88.8025 -39.4438 35.9339 +-92.1082 -40.1077 36.5387 +-92.9245 -39.6598 36.1307 +-96.0873 -40.1873 36.6112 +-97.4326 -39.9243 36.3716 +-100.449 -40.3171 36.7295 +-101.274 -39.8064 36.2643 +-104.135 -40.0732 36.5073 +-107.01 -40.3061 36.7195 +-109.629 -40.4058 36.8103 +-111.54 -40.2156 36.637 +-115.531 -40.7357 37.1108 +-118.545 -40.8636 37.2274 +-124.21 -41.8446 38.1211 +-126.617 -41.6732 37.9649 +-130.406 -41.916 38.1861 +-133.105 -41.7664 38.0498 +-135.441 -41.4719 37.7816 +-14.4641 -4.31997 3.93556 +-47.3583 -13.7903 12.5632 +-43.3181 -12.2922 11.1984 +-41.1199 -11.365 10.3537 +-35.2385 -9.48124 8.63755 +-15.6478 -4.09622 3.73172 +-15.2228 -3.87479 3.53 +-14.7938 -3.65916 3.33355 +-14.4561 -3.47222 3.16324 +-15.5456 -3.62334 3.30092 +-14.2489 -3.22034 2.93378 +-14.3823 -3.1493 2.86906 +-13.3615 -2.83226 2.58023 +-12.2381 -2.5089 2.28565 +-3164.66 -626.845 571.066 +-12.5859 -2.40615 2.19204 +-11.8376 -2.18181 1.98766 +-13.127 -2.3297 2.12239 +-12.6668 -2.16178 1.96941 +-12.2037 -1.99999 1.82202 +-12.4225 -1.95193 1.77823 +-13.523 -2.03383 1.85285 +-12.5648 -1.80547 1.64481 +-13.9622 -1.91294 1.74272 +-13.5903 -1.77145 1.61382 +-13.4135 -1.65932 1.51166 +-13.6301 -1.59585 1.45385 +-13.7473 -1.51879 1.38364 +-13.0715 -1.35803 1.23718 +-12.7896 -1.24471 1.13395 +-12.5061 -1.13513 1.03412 +-13.0158 -1.09625 0.998701 +-11.7354 -0.911798 0.830662 +-11.4471 -0.814803 0.742298 +-11.1574 -0.721596 0.657385 +-10.9661 -0.637994 0.581222 +-10.9732 -0.567228 0.516753 +-10.9795 -0.496419 0.452245 +-11.5841 -0.448785 0.40885 +-10.9895 -0.354693 0.323131 +-10.9933 -0.283787 0.258534 +-10.3964 -0.201248 0.18334 +-10.3984 -0.134174 0.122235 +-9.89962 -0.0638642 0.0581813 +10.4 0 0 +10.3996 -0.0665355 0.0617226 +10.0985 -0.129227 0.11988 +10.0965 -0.193829 0.179808 +10.9933 -0.281442 0.261084 +10.9895 -0.351763 0.326318 +10.9849 -0.422057 0.391527 +11.5784 -0.519172 0.481618 +12.3698 -0.634138 0.588268 +12.1624 -0.701748 0.650987 +12.1536 -0.779532 0.723144 +13.1392 -0.92752 0.860428 +13.426 -1.03453 0.959701 +14.5061 -1.21169 1.12404 +13.9949 -1.25977 1.16865 +36.1877 -3.49276 3.24011 +39.7097 -4.09145 3.7955 +37.7804 -4.13946 3.84003 +38.8162 -4.50716 4.18113 +37.3802 -4.58592 4.25419 +34.4683 -4.45571 4.1334 +41.69 -5.6647 5.25494 +61.6462 -8.78489 8.14943 +70.2606 -10.4798 9.72174 +79.9147 -12.4532 11.5524 +79.9586 -12.9957 12.0556 +87.0112 -14.7271 13.6618 +93.6392 -16.4812 15.2891 +94.4098 -17.257 16.0087 +94.3944 -17.8971 16.6025 +94.8539 -18.6331 17.2853 +95.6885 -19.4548 18.0475 +94.3959 -19.8439 18.4085 +95.019 -20.6345 19.1419 +94.7698 -21.2416 19.705 +95.3717 -22.0455 20.4508 +95.1057 -22.6548 21.0161 +95.6859 -23.4717 21.7739 +95.3083 -24.0592 22.3189 +95.8666 -24.8883 23.088 +95.4728 -25.4755 23.6327 +95.1659 -26.0854 24.1985 +95.4119 -26.8508 24.9086 +96.1121 -27.7558 25.7481 +95.9635 -28.4246 26.3685 +94.6977 -28.7569 26.6768 +93.8915 -29.2184 27.1049 +93.7235 -29.8764 27.7153 +94.4606 -30.8327 28.6024 +94.272 -31.4967 29.2183 +93.8029 -32.0676 29.748 +93.9591 -32.8559 30.4792 +94.3734 -33.745 31.3041 +93.9681 -34.3475 31.863 +94.5358 -35.3134 32.759 +94.2893 -35.9846 33.3817 +93.769 -36.5521 33.9081 +94.385 -37.5704 34.8527 +91.3103 -37.1065 34.4224 +90.604 -37.5809 34.8625 +88.4212 -37.426 34.7188 +86.5076 -37.3578 34.6555 +84.5167 -37.2301 34.5371 +83.7293 -37.6162 34.8952 +81.4126 -37.2957 34.5979 +80.9656 -37.8152 35.0798 +78.5834 -37.4133 34.707 +78.1351 -37.9146 35.1721 +76.5202 -37.8391 35.102 +75.5724 -38.0781 35.3238 +73.4779 -37.7191 34.9907 +72.2935 -37.8046 35.07 +69.3328 -36.9298 34.2585 +69.6944 -37.8081 35.0732 +68.0437 -37.5907 34.8716 +67.8317 -38.1585 35.3983 +65.4049 -37.4626 34.7527 +65.0347 -37.9253 35.182 +63.8814 -37.9246 35.1813 +62.0386 -37.4925 34.7805 +60.9771 -37.511 34.7976 +60.5283 -37.8997 35.1582 +58.6409 -37.3716 34.6683 +58.1939 -37.7454 35.0151 +56.9249 -37.5766 34.8585 +55.8119 -37.4936 34.7815 +54.6321 -37.3493 34.6476 +53.5326 -37.2432 34.5492 +53.0873 -37.5842 34.8656 +52.0673 -37.5114 34.798 +50.9824 -37.3765 34.6728 +49.7646 -37.126 34.4405 +48.8345 -37.0738 34.3921 +48.3913 -37.3848 34.6806 +47.1261 -37.0496 34.3696 +46.8184 -37.4578 34.7483 +45.3671 -36.9386 34.2667 +44.9256 -37.2275 34.5346 +43.956 -37.0708 34.3893 +43.7079 -37.5179 34.804 +43.131 -37.6838 34.9579 +42.2992 -37.6188 34.8977 +41.0317 -37.1474 34.4603 +40.6502 -37.4658 34.7557 +39.6486 -37.2045 34.5134 +39.2042 -37.4568 34.7474 +38.0949 -37.0621 34.3812 +37.5333 -37.1866 34.4967 +36.5602 -36.8915 34.223 +36.0617 -37.0643 34.3832 +35.447 -37.1134 34.4288 +35.0605 -37.3992 34.6939 +34.0548 -37.0143 34.3369 +33.613 -37.2307 34.5376 +33.0596 -37.3214 34.6218 +32.6141 -37.5315 34.8167 +31.6362 -37.117 34.4321 +31.1932 -37.318 34.6186 +30.7478 -37.5161 34.8024 +29.7925 -37.0797 34.3975 +29.35 -37.2689 34.5731 +28.9053 -37.4553 34.7459 +28.0705 -37.1258 34.4403 +27.6752 -37.3684 34.6654 +26.9477 -37.1556 34.468 +26.412 -37.1966 34.5059 +25.6051 -36.8416 34.1766 +25.5225 -37.5288 34.8142 +24.6803 -37.0977 34.4142 +24.3239 -37.3865 34.6821 +23.7934 -37.4078 34.7019 +23.3887 -37.6253 34.9037 +22.6552 -37.3047 34.6063 +22.0907 -37.2465 34.5523 +21.7247 -37.5214 34.8073 +20.9711 -37.1171 34.4322 +20.5659 -37.3178 34.6184 +20.1209 -37.4479 34.7391 +19.3877 -37.0277 34.3493 +18.9112 -37.0817 34.3994 +18.4691 -37.2012 34.5103 +18.0256 -37.318 34.6186 +17.6132 -37.5012 34.7886 +17.1662 -37.6125 34.8918 +16.4397 -37.0933 34.4102 +15.9073 -36.9873 34.3118 +15.5542 -37.298 34.6001 +15.0812 -37.3258 34.6258 +14.4158 -36.8571 34.1911 +13.9498 -36.8773 34.2098 +13.3292 -36.4694 33.8314 +13.1199 -37.1921 34.5018 +12.6767 -37.2746 34.5784 +12.0224 -36.7128 34.0571 +11.585 -36.7883 34.1272 +11.2549 -37.2188 34.5266 +10.749 -37.0743 34.3925 +10.4469 -37.6446 34.9215 +9.82666 -37.0622 34.3813 +9.40335 -37.1958 34.5053 +8.94288 -37.1823 34.4927 +8.49995 -37.2381 34.5445 +7.94687 -36.7842 34.1235 +7.50872 -36.8337 34.1693 +7.06999 -36.8803 34.2125 +6.63073 -36.9241 34.2532 +6.19096 -36.9651 34.2912 +5.7394 -36.9305 34.2591 +5.31005 -37.0387 34.3595 +4.86896 -37.0713 34.3897 +4.4188 -37.028 34.3496 +3.97003 -36.9817 34.3067 +3.52968 -37.0057 34.3289 +3.09516 -37.1001 34.4164 +2.60633 -36.4596 33.8223 +2.2115 -37.134 34.4479 +1.73799 -36.4874 33.8481 +1.30623 -36.5704 33.9251 +0.870875 -36.5774 33.9315 +0.436327 -36.6548 34.0034 +3.04927e-15 -36.5096 33.8687 +-0.435454 -36.5815 33.9354 +-0.883092 -37.0905 34.4075 +-1.32455 -37.0834 34.401 +-1.76591 -37.0735 34.3918 +-2.2115 -37.134 34.4479 +-2.60633 -36.4596 33.8223 +-3.15621 -37.8319 35.0953 +-3.52968 -37.0057 34.3289 +-4.04064 -37.6395 34.9169 +-4.47981 -37.5392 34.8238 +-4.92647 -37.5092 34.7959 +-5.36231 -37.4033 34.6977 +-5.82997 -37.5133 34.7997 +-6.16659 -36.8196 34.1562 +-6.7221 -37.4329 34.7252 +-7.02824 -36.6625 34.0105 +-7.61218 -37.3412 34.6401 +-7.8843 -36.4946 33.8547 +-8.41743 -36.8766 34.2091 +-8.85606 -36.8213 34.1579 +-9.42158 -37.2679 34.5721 +-9.65494 -36.4145 33.7805 +-10.108 -36.4233 33.7886 +-10.5411 -36.3572 33.7273 +-11.1683 -36.9326 34.261 +-11.6075 -36.8597 34.1934 +-12.0224 -36.7128 34.0571 +-12.459 -36.6344 33.9844 +-13.0949 -37.1211 34.436 +-13.5362 -37.0359 34.3569 +-14.0033 -37.0185 34.3408 +-14.4434 -36.9276 34.2564 +-14.9108 -36.904 34.2346 +-15.5834 -37.3681 34.6651 +-16.0878 -37.4069 34.7011 +-16.5633 -37.3722 34.6689 +-17.0075 -37.2648 34.5693 +-17.5156 -37.2933 34.5956 +-18.2259 -37.7326 35.0032 +-18.4691 -37.2012 34.5103 +-19.1213 -37.4937 34.7816 +-19.6027 -37.4383 34.7302 +-20.0476 -37.3115 34.6126 +-20.7532 -37.6577 34.9337 +-21.5451 -38.133 35.3747 +-21.6465 -37.3864 34.6821 +-22.4496 -37.8516 35.1136 +-22.9806 -37.8405 35.1033 +-23.4716 -37.7587 35.0274 +-24.0047 -37.74 35.0101 +-24.7974 -38.1144 35.3573 +-24.8995 -37.4271 34.7198 +-25.701 -37.7913 35.0576 +-26.1953 -37.6908 34.9644 +-26.6429 -37.5217 34.8076 +-27.0416 -37.2851 34.5881 +-27.8184 -37.5616 34.8446 +-28.3614 -37.5105 34.7972 +-29.1515 -37.7743 35.0419 +-29.6 -37.5864 34.8675 +-30.4523 -37.9009 35.1593 +-30.9023 -37.7046 34.9772 +-31.4022 -37.568 34.8505 +-31.9011 -37.4279 34.7205 +-32.3454 -37.2224 34.5299 +-33.1685 -37.4443 34.7358 +-34.0545 -37.7199 34.9914 +-34.7818 -37.8044 35.0698 +-35.5137 -37.8825 35.1423 +-36.078 -37.774 35.0416 +-36.8746 -37.8998 35.1584 +-37.3244 -37.6625 34.9382 +-38.4256 -38.0706 35.3167 +-38.8773 -37.8233 35.0874 +-39.9347 -38.1547 35.3948 +-40.3874 -37.8978 35.1564 +-41.335 -38.097 35.3412 +-41.8498 -37.888 35.1474 +-42.8081 -38.0714 35.3175 +-43.2596 -37.7961 35.0621 +-44.2924 -38.0196 35.2695 +-44.8088 -37.7902 35.0566 +-45.9196 -38.0511 35.2987 +-46.9061 -38.1918 35.4292 +-47.3589 -37.8902 35.1494 +-48.2855 -37.9611 35.2151 +-48.8043 -37.7039 34.9766 +-49.807 -37.8122 35.077 +-51.0262 -38.0672 35.3136 +-52.1138 -38.2059 35.4423 +-53.1372 -38.2821 35.513 +-54.3821 -38.5009 35.716 +-54.7658 -38.1011 35.345 +-55.9486 -38.2492 35.4825 +-57.2864 -38.4842 35.7005 +-58.2626 -38.4596 35.6776 +-59.4671 -38.5712 35.7811 +-60.6032 -38.6221 35.8284 +-61.2127 -38.3282 35.5557 +-61.8198 -38.0294 35.2785 +-63.5819 -38.4251 35.6456 +-64.7363 -38.4322 35.6522 +-65.7391 -38.336 35.5629 +-66.9021 -38.3202 35.5483 +-68.2284 -38.3816 35.6053 +-69.4014 -38.3407 35.5674 +-70.5786 -38.2877 35.5182 +-71.8407 -38.2657 35.4977 +-73.9217 -38.6561 35.8599 +-75.5258 -38.7704 35.9659 +-77.2206 -38.9086 36.0942 +-78.427 -38.782 35.9767 +-79.6361 -38.643 35.8478 +-81.2672 -38.691 35.8923 +-82.9054 -38.7212 35.9203 +-84.8896 -38.8885 36.0755 +-86.7988 -38.9952 36.1745 +-88.0311 -38.7782 35.9732 +-90.9019 -39.2554 36.4158 +-92.5781 -39.1855 36.351 +-94.1725 -39.061 36.2356 +-96.9079 -39.3812 36.5326 +-98.6912 -39.2844 36.4428 +-100.921 -39.3399 36.4943 +-102.538 -39.1328 36.3021 +-105.406 -39.374 36.5259 +-108.287 -39.5813 36.7182 +-110.102 -39.3692 36.5214 +-114.448 -40.0204 37.1255 +-115.736 -39.5656 36.7036 +-122.117 -40.7997 37.8485 +-124.973 -40.7922 37.8415 +-128.755 -41.0436 38.0747 +-132 -41.0776 38.1062 +-13.9506 -4.23638 3.92994 +-15.1131 -4.47653 4.15272 +-44.2879 -12.7897 11.8646 +-40.8908 -11.5075 10.6751 +-38.2162 -10.4753 9.71753 +-16.2567 -4.33786 4.02408 +-15.4593 -4.01344 3.72313 +-14.6555 -3.69957 3.43197 +-14.5094 -3.55914 3.30169 +-14.4561 -3.44353 3.19444 +-15.8317 -3.65955 3.39484 +-14.5358 -3.25804 3.02237 +-14.4782 -3.1441 2.91667 +-13.2654 -2.78866 2.58694 +-13.1054 -2.6645 2.47176 +-11.9775 -2.35286 2.18267 +-13.4573 -2.55148 2.36692 +-13.4871 -2.46529 2.28696 +-12.5436 -2.20777 2.04807 +-12.8617 -2.1769 2.01944 +-13.2776 -2.15801 2.00191 +-13.4984 -2.10347 1.95131 +-12.739 -1.9001 1.76265 +-13.5465 -1.93043 1.7908 +-12.8806 -1.75018 1.62358 +-13.6888 -1.76955 1.64155 +-12.8217 -1.57301 1.45922 +-13.0375 -1.51385 1.40435 +-12.1649 -1.33286 1.23645 +-13.0715 -1.34681 1.24939 +-13.0871 -1.26314 1.17177 +-12.4068 -1.11682 1.03604 +-11.4261 -0.954411 0.885374 +-11.437 -0.881275 0.817528 +-11.3475 -0.801041 0.743098 +-11.5559 -0.741196 0.687582 +-10.7667 -0.621219 0.576283 +-10.9732 -0.562542 0.521851 +-11.5784 -0.519172 0.481618 +-10.9849 -0.422057 0.391527 +-11.2892 -0.361356 0.335218 +-10.7934 -0.276326 0.256338 +-10.3964 -0.199586 0.185149 +-10.0985 -0.129227 0.11988 +-10.7996 -0.0690945 0.0640966 +10.1 0 0 +10.0996 -0.0640727 0.0605227 +10.0985 -0.12814 0.121041 +10.3964 -0.197907 0.186942 +10.3937 -0.263853 0.249235 +10.0904 -0.320266 0.302522 +10.9849 -0.418507 0.39532 +11.2789 -0.501491 0.473706 +11.2725 -0.573023 0.541275 +11.5642 -0.661624 0.624967 +13.0502 -0.829997 0.784012 +13.1392 -0.919719 0.868762 +13.1277 -1.00304 0.94747 +13.91 -1.15211 1.08828 +13.3994 -1.19602 1.12976 +33.9074 -3.24514 3.06535 +39.6107 -4.04692 3.8227 +39.2639 -4.26581 4.02947 +37.9272 -4.3669 4.12495 +35.8022 -4.35537 4.11407 +33.385 -4.27936 4.04227 +38.5436 -5.19312 4.9054 +58.505 -8.26712 7.80908 +64.871 -9.59454 9.06296 +68.0791 -10.5196 9.93676 +75.6629 -12.1941 11.5185 +85.5497 -14.3579 13.5624 +92.6669 -16.1729 15.2768 +94.4098 -17.1119 16.1638 +95.0721 -17.8739 16.8836 +94.8539 -18.4764 17.4527 +94.8212 -19.1163 18.0572 +94.5882 -19.7171 18.6247 +94.9232 -20.4402 19.3078 +94.7698 -21.0629 19.8959 +95.2763 -21.8382 20.6283 +95.1057 -22.4642 21.2196 +95.591 -23.2513 21.963 +95.3083 -23.8568 22.535 +95.8666 -24.6789 23.3116 +95.4728 -25.2612 23.8616 +95.8216 -26.0442 24.6012 +95.4119 -26.625 25.1499 +95.833 -27.4424 25.922 +95.2218 -27.9676 26.4181 +94.4205 -28.4315 26.8563 +94.0756 -29.0294 27.4211 +93.8152 -29.6541 28.0111 +94.3692 -30.5438 28.8515 +94.181 -31.2016 29.4729 +94.5279 -32.0437 30.2683 +94.2299 -32.6734 30.8632 +94.643 -33.5568 31.6976 +93.9681 -34.0586 32.1716 +93.9121 -34.7854 32.8581 +93.8457 -35.5141 33.5465 +93.2393 -36.0398 34.0431 +93.6819 -36.9768 34.9281 +91.3103 -36.7943 34.7558 +88.8633 -36.5488 34.5239 +87.6418 -36.7841 34.7461 +85.7321 -36.7115 34.6775 +84.8596 -37.0667 35.0131 +83.644 -37.2618 35.1973 +81.4126 -36.982 34.933 +80.5439 -37.3018 35.2351 +78.835 -37.2174 35.1554 +77.2178 -37.1544 35.0959 +76.0227 -37.277 35.2117 +74.8307 -37.3872 35.3158 +72.2492 -36.7764 34.7388 +71.805 -37.2334 35.1705 +69.8991 -36.9183 34.8729 +68.9709 -37.1009 35.0453 +67.8042 -37.1433 35.0854 +66.721 -37.2179 35.1559 +65.5625 -37.237 35.1739 +64.4087 -37.2443 35.1808 +63.182 -37.1939 35.1332 +62.1158 -37.2234 35.1611 +60.9771 -37.1955 35.1347 +59.7679 -37.1087 35.0528 +58.7164 -37.105 35.0492 +57.37 -36.898 34.8537 +56.9249 -37.2605 35.1961 +55.8119 -37.1782 35.1184 +54.6321 -37.0351 34.9832 +53.6052 -36.9799 34.9311 +52.4399 -36.8136 34.774 +52.0673 -37.1958 35.135 +50.2753 -36.548 34.5231 +49.8346 -36.8656 34.8231 +48.8345 -36.762 34.7252 +47.8406 -36.6485 34.618 +47.1261 -36.7379 34.7025 +46.3455 -36.7675 34.7304 +45.3671 -36.6279 34.5986 +44.8594 -36.8599 34.8177 +44.0216 -36.8139 34.7742 +43.513 -37.0365 34.9845 +42.6811 -36.977 34.9283 +41.8539 -36.9098 34.8648 +40.5282 -36.383 34.3672 +40.0899 -36.6387 34.6088 +38.9098 -36.2042 34.1983 +38.4737 -36.4496 34.4301 +38.0347 -36.6923 34.6594 +36.879 -36.2309 34.2236 +36.5602 -36.5812 34.5544 +36.0036 -36.6934 34.6604 +35.0455 -36.3844 34.3686 +34.5508 -36.5454 34.5207 +34.0548 -36.703 34.6695 +33.5578 -36.857 34.815 +32.5694 -36.4588 34.4388 +32.1305 -36.664 34.6326 +32.0601 -37.298 35.2315 +31.1932 -37.0041 34.9539 +30.2842 -36.6397 34.6097 +29.8433 -36.8305 34.7899 +29.35 -36.9554 34.9079 +28.5606 -36.6973 34.6641 +28.022 -36.7499 34.7138 +27.2458 -36.4791 34.458 +26.4312 -36.137 34.1349 +26.4582 -36.9482 34.9011 +25.5597 -36.4669 34.4465 +25.1656 -36.6927 34.6598 +24.6365 -36.7203 34.6858 +24.2378 -36.9408 34.8941 +23.4976 -36.6319 34.6024 +22.974 -36.6473 34.6169 +22.5739 -36.8581 34.816 +21.8116 -36.4666 34.4461 +21.4121 -36.6705 34.6388 +20.9328 -36.7377 34.7023 +20.5284 -36.9365 34.8901 +20.0476 -36.9977 34.9478 +19.3519 -36.6484 34.6179 +18.9112 -36.7698 34.7326 +18.4349 -36.82 34.78 +17.6918 -36.3188 34.3066 +17.3202 -36.5672 34.5412 +17.071 -37.0893 35.0344 +16.6251 -37.1961 35.1353 +15.9073 -36.6762 34.6442 +15.5249 -36.9148 34.8696 +14.7972 -36.3148 34.3028 +14.4158 -36.5471 34.5222 +13.9766 -36.6372 34.6073 +13.5362 -36.7244 34.6897 +12.8946 -36.2459 34.2377 +12.459 -36.3263 34.3136 +12.0458 -36.4746 34.4538 +11.5625 -36.408 34.3908 +11.2549 -36.9058 34.861 +10.7698 -36.8335 34.7928 +10.2475 -36.6155 34.5868 +9.80758 -36.6791 34.6469 +9.36691 -36.74 34.7044 +8.94288 -36.8696 34.8268 +8.51646 -36.9966 34.9468 +7.93123 -36.403 34.3861 +7.37569 -35.8768 33.889 +6.95866 -35.9942 33.9999 +6.63073 -36.6135 34.585 +6.20315 -36.7264 34.6916 +5.7394 -36.6199 34.591 +5.21597 -36.0765 34.0777 +4.85938 -36.6871 34.6545 +4.34036 -36.0648 34.0666 +3.89942 -36.0185 34.0229 +3.5227 -36.622 34.593 +3.03411 -36.0624 34.0644 +2.65343 -36.8063 34.767 +2.17661 -36.2407 34.2328 +1.76591 -36.7617 34.7249 +1.28267 -35.6087 33.6359 +0.86913 -36.197 34.1915 +0.429346 -35.765 33.7834 +3.05539e-15 -36.2752 34.2654 +-0.435454 -36.2738 34.2641 +-0.86913 -36.197 34.1915 +-1.32455 -36.7715 34.7342 +-1.76591 -36.7617 34.7249 +-2.20714 -36.7491 34.713 +-2.6482 -36.7337 34.6985 +-3.08906 -36.7155 34.6813 +-3.52968 -36.6945 34.6614 +-3.96218 -36.5982 34.5705 +-4.47981 -37.2235 35.1611 +-4.91689 -37.1213 35.0646 +-5.36231 -37.0887 35.0338 +-5.81865 -37.1255 35.0686 +-6.1544 -36.4378 34.419 +-6.60463 -36.4694 34.4488 +-7.02824 -36.3541 34.3399 +-7.5974 -36.9552 34.9077 +-7.89994 -36.2594 34.2505 +-8.3184 -36.1362 34.1341 +-8.85606 -36.5116 34.4887 +-9.16645 -35.9537 33.9617 +-9.65494 -36.1082 34.1077 +-10.0681 -35.9744 33.9813 +-10.5411 -36.0514 34.054 +-10.9518 -35.9122 33.9225 +-11.405 -35.9122 33.9225 +-12.0458 -36.4746 34.4538 +-12.459 -36.3263 34.3136 +-12.8946 -36.2459 34.2377 +-13.5362 -36.7244 34.6897 +-14.0033 -36.7072 34.6734 +-14.4434 -36.617 34.5882 +-14.9108 -36.5936 34.5662 +-15.5834 -37.0538 35.0008 +-15.8171 -36.4682 34.4477 +-16.5633 -37.0579 35.0047 +-16.7854 -36.4688 34.4483 +-17.5156 -36.9796 34.9307 +-17.9588 -36.867 34.8244 +-18.4691 -36.8883 34.8446 +-18.9112 -36.7698 34.7326 +-19.5669 -37.0556 35.0026 +-19.9743 -36.8625 34.8201 +-20.7907 -37.4083 35.3357 +-21.2007 -37.2078 35.1464 +-21.6856 -37.1388 35.0812 +-22.4496 -37.5332 35.4537 +-22.6959 -37.0573 35.0041 +-23.4716 -37.4411 35.3667 +-24.0047 -37.4226 35.3492 +-24.41 -37.2033 35.142 +-24.9433 -37.1777 35.1179 +-25.701 -37.4734 35.3972 +-26.1045 -37.2442 35.1807 +-26.5967 -37.1416 35.0838 +-26.9946 -36.9073 34.8625 +-27.8184 -37.2457 35.1821 +-28.2644 -37.0678 35.0141 +-29.2007 -37.5198 35.4411 +-29.55 -37.2073 35.1458 +-29.9448 -36.9557 34.9082 +-30.4388 -36.8267 34.7863 +-31.4022 -37.252 35.1881 +-31.9541 -37.1747 35.115 +-32.3454 -36.9093 34.8643 +-33.2774 -37.2514 35.1875 +-33.613 -36.9176 34.8722 +-34.7818 -37.4864 35.4095 +-35.3437 -37.3842 35.3129 +-35.9059 -37.2776 35.2123 +-36.352 -37.0484 34.9958 +-37.3831 -37.4045 35.3322 +-37.7712 -37.1075 35.0516 +-38.8171 -37.4471 35.3723 +-39.8739 -37.7761 35.6831 +-40.3874 -37.579 35.497 +-41.335 -37.7765 35.6835 +-41.2834 -37.0609 35.0076 +-42.2992 -37.3024 35.2357 +-43.3239 -37.5339 35.4543 +-43.7728 -37.2576 35.1934 +-44.94 -37.582 35.4998 +-45.8533 -37.6766 35.5891 +-46.8391 -37.8164 35.7212 +-47.2913 -37.5179 35.4392 +-48.2855 -37.6418 35.5562 +-48.7355 -37.334 35.2656 +-49.807 -37.4941 35.4168 +-50.3253 -37.2286 35.1659 +-52.0431 -37.8332 35.737 +-52.5666 -37.5525 35.4719 +-53.5908 -37.6215 35.5371 +-54.8383 -37.8306 35.7346 +-55.8754 -37.8779 35.7793 +-57.2127 -38.1114 35.9998 +-57.668 -37.7469 35.6556 +-59.4671 -38.2467 36.1277 +-59.9239 -37.8681 35.77 +-61.2127 -38.0058 35.9001 +-61.7432 -37.6628 35.5761 +-63.1189 -37.8245 35.7289 +-64.0368 -37.6971 35.6086 +-65.7391 -38.0135 35.9074 +-66.6657 -37.8636 35.7658 +-67.5144 -37.6605 35.574 +-69.082 -37.8433 35.7466 +-70.9806 -38.182 36.0665 +-72.1643 -38.1147 36.003 +-73.6775 -38.2043 36.0876 +-74.7886 -38.069 35.9598 +-76.7261 -38.3343 36.2104 +-78.427 -38.4558 36.3252 +-79.6361 -38.318 36.195 +-81.0156 -38.2468 36.1278 +-83.1584 -38.5126 36.3788 +-83.3631 -37.8681 35.77 +-86.543 -38.5532 36.4172 +-87.7739 -38.3397 36.2155 +-90.1264 -38.5931 36.4549 +-91.8853 -38.5651 36.4285 +-94.6077 -38.9115 36.7556 +-96.9079 -39.0499 36.8864 +-98.6912 -38.954 36.7958 +-100.391 -38.8042 36.6543 +-102.805 -38.9044 36.7489 +-104.871 -38.8448 36.6926 +-107.482 -38.9565 36.7982 +-110.462 -39.1655 36.9955 +-113.274 -39.2769 37.1008 +-115.736 -39.2328 37.0591 +-121.025 -40.0948 37.8734 +-124.699 -40.3604 38.1243 +-128.48 -40.6113 38.3613 +-131.172 -40.4765 38.2339 +-14.4125 -4.33984 4.09939 +-15.3913 -4.52057 4.27011 +-43.1714 -12.3624 11.6775 +-39.6772 -11.072 10.4586 +-36.6239 -9.95431 9.4028 +-15.411 -4.0776 3.85169 +-15.1765 -3.90688 3.69043 +-15.5065 -3.88146 3.66641 +-14.5094 -3.52921 3.33367 +-14.4561 -3.41457 3.22538 +-13.5428 -3.10413 2.93214 +-14.5358 -3.23064 3.05165 +-14.0947 -3.03507 2.86692 +-13.8422 -2.88543 2.72556 +-12.7199 -2.56438 2.4223 +-3164.66 -616.438 582.285 +-12.6827 -2.38441 2.2523 +-11.9346 -2.16317 2.04332 +-13.2242 -2.30799 2.18012 +-13.4463 -2.25671 2.13168 +-12.1061 -1.95105 1.84295 +-12.6181 -1.94975 1.84172 +-13.327 -1.97107 1.86187 +-12.663 -1.78936 1.69023 +-12.8806 -1.73546 1.63931 +-13.6888 -1.75467 1.65745 +-13.6107 -1.65576 1.56403 +-14.2227 -1.63759 1.54686 +-12.9561 -1.40761 1.32962 +-13.9628 -1.42654 1.3475 +-12.9879 -1.24302 1.17415 +-12.8038 -1.14286 1.07954 +-12.7177 -1.05336 0.995002 +-12.0337 -0.91945 0.868508 +-10.7503 -0.752496 0.710805 +-10.9581 -0.696944 0.658331 +-11.2652 -0.644513 0.608804 +-10.9732 -0.55781 0.526905 +-11.5784 -0.514805 0.486283 +-10.3857 -0.395679 0.373757 +-10.9895 -0.348804 0.329479 +-10.7934 -0.274001 0.258821 +-9.49674 -0.180781 0.170765 +-9.89849 -0.125603 0.118644 +-9.89962 -0.0628039 0.0593243 +10.5 0 0 +10.7996 -0.0679266 0.065333 +10.1984 -0.128301 0.123402 +10.0965 -0.190552 0.183277 +10.1938 -0.256563 0.246767 +10.9895 -0.345817 0.332613 +11.3844 -0.430011 0.413592 +11.8778 -0.523596 0.503604 +11.3722 -0.573144 0.55126 +12.1624 -0.689886 0.663544 +12.2532 -0.77264 0.743138 +12.4425 -0.863488 0.830518 +14.2217 -1.07732 1.03619 +13.91 -1.14225 1.09863 +14.5904 -1.29118 1.24188 +34.998 -3.32083 3.19403 +39.8088 -4.03233 3.87836 +39.2639 -4.22928 4.0678 +38.9149 -4.44225 4.27263 +35.0131 -4.22291 4.06167 +34.4683 -4.38039 4.21313 +40.3135 -5.38507 5.17945 +59.6829 -8.36136 8.0421 +61.9312 -9.0813 8.73455 +73.2633 -11.2237 10.7951 +74.589 -11.918 11.463 +89.0574 -14.8186 14.2528 +93.6392 -16.2026 15.584 +93.8276 -16.8607 16.2169 +95.0721 -17.7209 17.0442 +94.9505 -18.3368 17.6367 +94.8212 -18.9526 18.2289 +95.3572 -19.7071 18.9547 +94.9232 -20.2652 19.4914 +94.8654 -20.9036 20.1055 +95.3717 -21.6729 20.8453 +95.2008 -22.2941 21.4429 +95.6859 -23.075 22.1939 +95.4028 -23.6759 22.7719 +95.8666 -24.4676 23.5333 +96.4125 -25.2914 24.3258 +95.8216 -25.8211 24.8352 +96.5322 -26.7069 25.6872 +96.1121 -27.2866 26.2448 +95.9635 -27.9441 26.8771 +94.6977 -28.2708 27.1914 +93.9835 -28.7526 27.6548 +93.8152 -29.4001 28.2776 +94.6433 -30.3702 29.2105 +94.272 -30.9643 29.782 +94.5279 -31.7692 30.5562 +93.9591 -32.3005 31.0672 +94.5531 -33.2377 31.9686 +93.9681 -33.7669 32.4776 +94.5358 -34.7165 33.391 +93.757 -35.1767 33.8335 +93.8573 -35.968 34.5947 +93.6819 -36.6601 35.2604 +92.1849 -36.8286 35.4224 +89.5596 -36.5198 35.1254 +87.4686 -36.397 35.0073 +86.4214 -36.6897 35.2888 +84.9453 -36.7864 35.3818 +83.3029 -36.792 35.3872 +81.8366 -36.8562 35.449 +80.7969 -37.0985 35.682 +78.9189 -36.9379 35.5275 +77.3846 -36.9158 35.5062 +76.3544 -37.119 35.7017 +73.9241 -36.618 35.2198 +73.3141 -36.9989 35.5862 +71.5608 -36.7889 35.3842 +69.8182 -36.5598 35.1639 +69.0513 -36.8261 35.4199 +68.1236 -36.9987 35.586 +66.6417 -36.8554 35.4481 +65.4837 -36.8738 35.4658 +64.4087 -36.9253 35.5154 +63.9591 -37.329 35.9037 +62.0386 -36.8588 35.4514 +61.7432 -37.3402 35.9145 +59.7679 -36.791 35.3862 +58.7164 -36.7872 35.3826 +58.2688 -37.1551 35.7364 +56.9992 -36.9897 35.5773 +55.7382 -36.8111 35.4056 +54.7053 -36.7671 35.3632 +53.6052 -36.6632 35.2633 +52.5118 -36.5484 35.1529 +52.1386 -36.9278 35.5178 +50.9824 -36.7447 35.3417 +49.8346 -36.5499 35.1543 +49.5986 -37.0175 35.6041 +48.3913 -36.7529 35.3496 +47.2625 -36.5287 35.134 +46.8184 -36.8246 35.4185 +46.0362 -36.8499 35.4429 +44.9919 -36.6522 35.2527 +44.6776 -37.0426 35.6282 +43.578 -36.7741 35.37 +43.2596 -37.1572 35.7385 +41.8539 -36.5937 35.1964 +41.0946 -36.5755 35.1789 +40.1522 -36.3813 34.9922 +39.7717 -36.6893 35.2884 +38.4737 -36.1375 34.7576 +38.2153 -36.5508 35.1552 +36.998 -36.0366 34.6606 +36.619 -36.3262 34.9392 +36.0036 -36.3791 34.9901 +35.5044 -36.5451 35.1497 +35.0039 -36.7076 35.306 +34.1108 -36.4484 35.0567 +33.5578 -36.5414 35.1461 +33.1141 -36.751 35.3478 +32.1305 -36.35 34.9621 +31.7422 -36.6118 35.2139 +31.1409 -36.6258 35.2273 +30.3357 -36.3878 34.9984 +29.7925 -36.4529 35.0611 +29.4 -36.7014 35.3 +28.5113 -36.3203 34.9335 +28.119 -36.5613 35.1652 +27.6752 -36.7368 35.334 +26.9946 -36.5912 35.1941 +26.5044 -36.6957 35.2945 +26.0591 -36.861 35.4536 +25.6118 -37.0235 35.6098 +25.0748 -37.0536 35.6388 +24.2808 -36.6895 35.2886 +23.8357 -36.8408 35.4341 +23.3472 -36.9237 35.5139 +22.6959 -36.7399 35.3371 +21.6919 -35.956 34.5831 +21.7637 -36.9535 35.5425 +20.9328 -36.4231 35.0324 +20.5659 -36.687 35.2862 +19.7911 -36.2114 34.8288 +19.4235 -36.4691 35.0767 +18.9112 -36.4549 35.0629 +18.5033 -36.6402 35.2412 +17.9922 -36.6193 35.2211 +17.6132 -36.8673 35.4597 +17.1345 -36.9084 35.4991 +16.4706 -36.5349 35.1399 +15.9073 -36.3621 34.9737 +15.5542 -36.6676 35.2675 +14.8256 -36.073 34.6956 +14.471 -36.3726 34.9838 +13.9498 -36.2539 34.8697 +13.588 -36.5491 35.1536 +13.1199 -36.5634 35.1673 +12.4832 -36.0851 34.7073 +12.0458 -36.1623 34.7815 +11.6075 -36.2366 34.853 +11.0168 -35.8157 34.4482 +10.7698 -36.5181 35.1237 +10.2475 -36.3019 34.9158 +9.84574 -36.5065 35.1126 +9.40335 -36.5671 35.1709 +8.97761 -36.6958 35.2947 +8.35141 -35.969 34.5956 +7.94687 -36.1625 34.7817 +7.50872 -36.211 34.8284 +7.09783 -36.3997 35.0098 +6.64378 -36.3714 34.9827 +6.20315 -36.4118 35.0215 +5.7394 -36.3063 34.92 +5.31005 -36.4126 35.0223 +4.85938 -36.3729 34.9841 +4.43623 -36.5457 35.1503 +3.97788 -36.4285 35.0376 +3.53665 -36.4521 35.0603 +3.08906 -36.401 35.0111 +2.65867 -36.5631 35.167 +2.17225 -35.8583 34.4892 +1.7694 -36.5189 35.1245 +1.30361 -35.8802 34.5102 +0.874366 -36.1032 34.7247 +0.428473 -35.3866 34.0354 +3.07376e-15 -36.1808 34.7993 +-0.435454 -35.9632 34.59 +-0.886582 -36.6077 35.2099 +-1.32717 -36.5286 35.1338 +-1.77289 -36.5909 35.1938 +-2.20714 -36.4343 35.0432 +-2.65867 -36.5631 35.167 +-3.09516 -36.473 35.0803 +-3.53665 -36.4521 35.0603 +-3.96218 -36.2848 34.8993 +-4.48852 -36.9765 35.5646 +-4.91689 -36.8033 35.3981 +-5.37276 -36.8427 35.4359 +-5.81865 -36.8075 35.4021 +-6.28846 -36.9126 35.5032 +-6.59157 -36.0856 34.7078 +-7.18133 -36.8279 35.4217 +-7.61218 -36.71 35.3083 +-8.07202 -36.7319 35.3294 +-8.41743 -36.2533 34.869 +-8.94288 -36.5538 35.1581 +-9.09355 -35.3623 34.0121 +-9.6931 -35.9406 34.5683 +-10.088 -35.737 34.3724 +-10.7698 -36.5181 35.1237 +-11.1683 -36.3083 34.9219 +-11.6525 -36.3771 34.9881 +-12.0224 -36.0922 34.7141 +-12.4832 -36.0851 34.7073 +-13.1199 -36.5634 35.1673 +-13.588 -36.5491 35.1536 +-14.0033 -36.3928 35.0032 +-14.719 -36.9962 35.5836 +-14.9108 -36.2802 34.895 +-15.3788 -36.254 34.8697 +-15.7871 -36.0872 34.7093 +-16.5942 -36.809 35.4036 +-17.071 -36.7716 35.3676 +-17.5807 -36.7992 35.3941 +-17.9588 -36.5513 35.1557 +-18.5033 -36.6402 35.2412 +-19.1563 -36.9275 35.5175 +-19.5669 -36.7383 35.3355 +-20.3042 -37.1502 35.7317 +-20.491 -36.5534 35.1577 +-21.2007 -36.8892 35.4807 +-22.0372 -37.4179 35.9892 +-22.4496 -37.2118 35.7909 +-23.0213 -37.2667 35.8438 +-23.4716 -37.1205 35.7031 +-24.047 -37.1674 35.7482 +-24.41 -36.8846 35.4763 +-25.294 -37.3775 35.9503 +-25.2994 -36.572 35.1756 +-26.1499 -36.9894 35.5771 +-26.6429 -36.8875 35.479 +-27.0885 -36.7185 35.3165 +-27.8661 -36.9901 35.5777 +-28.3129 -36.8134 35.4078 +-29.1515 -37.1358 35.7179 +-29.6 -36.951 35.5401 +-29.9448 -36.6392 35.2403 +-31.0053 -37.1909 35.7708 +-31.4022 -36.933 35.5228 +-32.3781 -37.3453 35.9193 +-32.7753 -37.0795 35.6637 +-33.3319 -36.9928 35.5803 +-34.0545 -37.0823 35.6664 +-34.8936 -37.2849 35.8612 +-35.3437 -37.064 35.6488 +-36.1353 -37.1946 35.7744 +-36.2939 -36.6725 35.2722 +-37.3244 -37.0259 35.6122 +-38.3661 -37.3691 35.9423 +-38.9374 -37.2415 35.8195 +-39.326 -36.938 35.5276 +-40.3874 -37.2572 35.8346 +-41.3972 -37.5094 36.0772 +-42.4162 -37.7517 36.3102 +-42.8081 -37.4279 35.9988 +-43.4524 -37.3229 35.8978 +-43.7079 -36.8837 35.4754 +-44.94 -37.2601 35.8375 +-45.787 -37.2999 35.8757 +-46.973 -37.5998 36.1641 +-47.3589 -37.2497 35.8274 +-48.4219 -37.4248 35.9959 +-49.4239 -37.5371 36.1039 +-49.8765 -37.2248 35.8035 +-51.0262 -37.4238 35.9948 +-52.1845 -37.6111 36.175 +-52.5666 -37.2309 35.8093 +-53.7347 -37.3995 35.9715 +-54.8383 -37.5066 36.0745 +-56.8262 -38.1926 36.7343 +-57.2127 -37.785 36.3423 +-58.3369 -37.8578 36.4123 +-59.4671 -37.9192 36.4713 +-60.2258 -37.7329 36.2921 +-61.2127 -37.6803 36.2416 +-62.0496 -37.5255 36.0927 +-62.8874 -37.3631 35.9364 +-64.814 -37.8279 36.3835 +-65.9739 -37.8226 36.3784 +-66.9809 -37.7168 36.2767 +-67.5144 -37.338 35.9123 +-69.4813 -37.736 36.2952 +-70.9806 -37.855 36.4096 +-72.6497 -38.0425 36.5899 +-73.5146 -37.7934 36.3504 +-75.6077 -38.1564 36.6995 +-76.4789 -37.8835 36.437 +-78.5099 -38.1668 36.7095 +-79.6361 -37.9898 36.5393 +-81.6026 -38.1941 36.7357 +-82.9054 -38.0666 36.6132 +-85.2288 -38.384 36.9184 +-85.9461 -37.9595 36.5101 +-88.8025 -38.4568 36.9884 +-90.1264 -38.2626 36.8016 +-92.6647 -38.5592 37.0869 +-94.1725 -38.4008 36.9345 +-97.0828 -38.7854 37.3045 +-98.9548 -38.7236 37.245 +-101.362 -38.8441 37.3609 +-103.337 -38.7709 37.2905 +-105.139 -38.6103 37.1361 +-108.287 -38.9123 37.4265 +-110.731 -38.9248 37.4386 +-113.274 -38.9405 37.4537 +-117.186 -39.3841 37.8803 +-122.117 -40.1101 38.5786 +-125.978 -40.4252 38.8816 +-128.755 -40.3498 38.8091 +-132.369 -40.4959 38.9496 +-14.7821 -4.413 4.2445 +-14.0932 -4.10387 3.94717 +-44.0088 -12.4943 12.0172 +-41.1709 -11.3905 10.9555 +-36.6239 -9.86906 9.49224 +-15.7868 -4.14129 3.98316 +-14.6109 -3.72908 3.58669 +-14.7501 -3.6605 3.52073 +-14.2249 -3.43038 3.2994 +-14.5512 -3.4076 3.27748 +-15.5456 -3.53267 3.39778 +-14.1533 -3.11868 2.9996 +-13.6152 -2.90673 2.79574 +-14.2267 -2.94018 2.82791 +-11.3708 -2.27277 2.18599 +-3164.66 -611.159 587.823 +-11.4241 -2.12939 2.04808 +-12.2257 -2.19695 2.11307 +-12.8353 -2.22092 2.13612 +-12.7642 -2.1239 2.0428 +-12.5942 -2.01234 1.9355 +-12.4225 -1.90308 1.83042 +-13.9149 -2.04041 1.9625 +-13.7428 -1.92531 1.8518 +-14.1589 -1.89134 1.81912 +-13.1964 -1.67707 1.61303 +-12.8217 -1.54642 1.48737 +-13.1363 -1.49954 1.44229 +-13.8462 -1.49143 1.43449 +-13.6657 -1.38423 1.33138 +-12.9879 -1.23237 1.18532 +-13.1016 -1.15943 1.11516 +-12.8171 -1.0525 1.01231 +-12.6304 -0.95678 0.920247 +-11.6461 -0.80823 0.777369 +-11.6555 -0.734945 0.706883 +-11.2652 -0.638993 0.614594 +-10.7737 -0.542978 0.522246 +-11.2789 -0.497196 0.478212 +-10.7852 -0.407378 0.391823 +-10.3901 -0.326955 0.314471 +-10.4936 -0.264109 0.254024 +-10.3964 -0.196212 0.18872 +-10.9983 -0.138363 0.13308 +-10.3996 -0.0654108 0.0629133 +9.9 0 0 +10.1996 -0.0635935 0.0622797 +10.1984 -0.127183 0.124555 +9.89661 -0.185151 0.181326 +10.1938 -0.254326 0.249072 +11.0894 -0.345918 0.338772 +11.3844 -0.426261 0.417455 +12.2771 -0.536477 0.525394 +11.871 -0.593065 0.580813 +11.7636 -0.661448 0.647783 +13.1498 -0.821944 0.804963 +13.4378 -0.924439 0.905341 +13.9233 -1.04552 1.02392 +13.4132 -1.09185 1.06929 +15.98 -1.40182 1.37286 +36.1877 -3.40378 3.33346 +39.1156 -3.92756 3.84642 +39.5606 -4.22409 4.13682 +38.3223 -4.33646 4.24687 +36.4926 -4.36296 4.27283 +37.9151 -4.77641 4.67773 +42.6733 -5.65059 5.53385 +70.4808 -9.78801 9.5858 +68.0068 -9.88518 9.68096 +77.4693 -11.7645 11.5215 +80.8373 -12.8038 12.5393 +90.6164 -14.9465 14.6378 +93.7365 -16.078 15.7459 +94.7009 -16.8693 16.5208 +95.3625 -17.62 17.256 +94.9505 -18.1769 17.8014 +94.7249 -18.7682 18.3805 +94.492 -19.3581 18.9582 +95.019 -20.1088 19.6934 +95.6305 -20.8885 20.4569 +95.4671 -21.5054 21.0611 +95.2008 -22.0997 21.6432 +95.7807 -22.8965 22.4235 +96.2538 -23.6788 23.1896 +95.9609 -24.278 23.7765 +95.5667 -24.8509 24.3375 +95.9152 -25.621 25.0917 +95.5986 -26.218 25.6764 +96.2052 -27.0749 26.5155 +96.798 -27.9413 27.364 +94.6977 -28.0243 27.4453 +94.0756 -28.5298 27.9404 +93.907 -29.1723 28.5696 +94.6433 -30.1053 29.4834 +94.363 -30.7239 30.0892 +93.8935 -31.2809 30.6347 +94.0494 -32.0496 31.3875 +94.5531 -32.9479 32.2672 +94.1471 -33.5362 32.8434 +94.5358 -34.4138 33.7029 +94.2893 -35.0679 34.3434 +93.5042 -35.5202 34.7864 +93.5061 -36.2723 35.523 +92.4473 -36.6115 35.8551 +90.3429 -36.518 35.7636 +89.4604 -36.9013 36.1389 +86.5937 -36.4423 35.6894 +85.1167 -36.5392 35.7844 +83.8998 -36.7326 35.9737 +81.5822 -36.4213 35.6688 +81.0499 -36.8902 36.1281 +79.8414 -37.0439 36.2786 +78.4687 -37.1065 36.3399 +76.686 -36.9551 36.1916 +75.4075 -37.0271 36.2622 +74.4609 -37.25 36.4804 +72.3749 -36.883 36.1211 +71.1935 -36.9549 36.1914 +69.7748 -36.8874 36.1253 +68.1236 -36.6761 35.9184 +67.435 -36.9689 36.2052 +66.9809 -37.3879 36.6155 +65.113 -37.0036 36.2391 +63.9591 -37.0035 36.239 +62.8102 -36.9918 36.2276 +61.6666 -36.9687 36.205 +60.6044 -36.9806 36.2166 +59.3956 -36.8882 36.1262 +58.2688 -36.8311 36.0702 +56.9249 -36.6193 35.8628 +55.8856 -36.5867 35.8308 +55.3635 -36.885 36.123 +54.258 -36.7862 36.0262 +53.1592 -36.6764 35.9187 +52.0673 -36.5557 35.8005 +50.9824 -36.4243 35.6718 +50.6757 -36.8427 36.0815 +49.5986 -36.6947 35.9366 +48.4602 -36.4843 35.7306 +48.0127 -36.785 36.0251 +46.886 -36.5562 35.801 +45.9693 -36.4754 35.7219 +45.5883 -36.8142 36.0537 +44.612 -36.6657 35.9082 +43.7728 -36.6165 35.86 +43.0025 -36.6143 35.8579 +42.3628 -36.7156 35.9571 +41.5351 -36.6452 35.8881 +40.2144 -36.12 35.3738 +39.6486 -36.2567 35.5077 +38.6564 -35.9924 35.2488 +38.1551 -36.175 35.4277 +37.1169 -35.8372 35.0969 +36.5602 -35.9517 35.2089 +36.0617 -36.1201 35.3739 +35.6191 -36.3435 35.5927 +35.0605 -36.4464 35.6935 +34.5581 -36.6044 35.8482 +34.1097 -36.8184 36.0578 +33.6042 -36.9698 36.2061 +32.1842 -36.0933 35.3476 +32.2191 -36.8379 36.0768 +31.1932 -36.3673 35.616 +30.7993 -36.6216 35.865 +29.894 -36.2582 35.5092 +29.45 -36.4432 35.6903 +29.0037 -36.6255 35.8688 +28.5553 -36.8049 36.0445 +27.7229 -36.4792 35.7256 +27.3232 -36.7137 35.9552 +26.5044 -36.3757 35.6242 +26.1045 -36.6033 35.8471 +25.5671 -36.6367 35.8798 +24.8118 -36.3452 35.5943 +24.3239 -36.4341 35.6814 +23.8779 -36.5843 35.8285 +23.4302 -36.7318 35.9729 +22.9806 -36.8765 36.1146 +22.1704 -36.4286 35.6761 +21.7637 -36.6313 35.8745 +20.9711 -36.1715 35.4242 +20.6034 -36.4334 35.6807 +20.1576 -36.5605 35.8051 +19.4235 -36.1512 35.4043 +18.9812 -36.2708 35.5215 +18.5375 -36.3878 35.636 +18.059 -36.4346 35.6819 +17.6458 -36.6134 35.857 +17.1979 -36.722 35.9633 +16.9341 -37.2355 36.4663 +16.208 -36.7264 35.9677 +15.5542 -36.3478 35.5969 +15.1096 -36.4434 35.6905 +14.471 -36.0555 35.3106 +14.0033 -36.0755 35.3302 +13.588 -36.2305 35.482 +13.145 -36.3138 35.5636 +12.7009 -36.3944 35.6425 +12.0458 -35.8469 35.1064 +11.7874 -36.4776 35.724 +11.0384 -35.5732 34.8382 +10.7698 -36.1997 35.4518 +10.4868 -36.8255 36.0647 +9.99839 -36.7493 35.9901 +9.38513 -36.1779 35.4305 +9.01234 -36.5165 35.7621 +8.51646 -36.3599 35.6087 +8.11895 -36.6233 35.8667 +7.67131 -36.6726 35.9149 +7.22308 -36.719 35.9604 +6.65684 -36.1251 35.3788 +6.31283 -36.7326 35.9737 +5.75072 -36.0607 35.3157 +5.31005 -36.0951 35.3494 +4.87855 -36.198 35.4502 +4.43623 -36.227 35.4786 +3.97788 -36.1109 35.3648 +3.54363 -36.2056 35.4576 +3.10127 -36.2262 35.4778 +2.61156 -35.6021 34.8666 +2.18097 -35.6884 34.9511 +1.77289 -36.2719 35.5225 +1.30885 -35.7102 34.9724 +0.87262 -35.717 34.9791 +0.436327 -35.7211 34.9831 +3.11662e-15 -36.3654 35.6141 +-0.444181 -36.3641 35.6128 +-0.884837 -36.217 35.4688 +-1.32979 -36.2815 35.532 +-1.8043 -36.9145 36.1518 +-2.21586 -36.2594 35.5103 +-2.70577 -36.8863 36.1243 +-3.09516 -36.1549 35.408 +-3.53665 -36.1343 35.3878 +-4.04064 -36.6806 35.9228 +-4.48852 -36.6541 35.8968 +-4.92647 -36.5536 35.7984 +-5.38322 -36.5925 35.8366 +-5.71676 -35.8477 35.1071 +-6.28846 -36.5908 35.8348 +-6.7482 -36.621 35.8644 +-7.18133 -36.5067 35.7525 +-7.61218 -36.3899 35.6381 +-8.05637 -36.3411 35.5903 +-8.45044 -36.0781 35.3327 +-8.94288 -36.2351 35.4865 +-9.49447 -36.5995 35.8434 +-9.86483 -36.2583 35.5093 +-10.1279 -35.5654 34.8306 +-10.7698 -36.1997 35.4518 +-10.9951 -35.4336 34.7016 +-11.6525 -36.0599 35.3149 +-12.0458 -35.8469 35.1064 +-12.6767 -36.325 35.5746 +-13.1199 -36.2446 35.4958 +-13.588 -36.2305 35.482 +-14.0567 -36.2132 35.4651 +-14.9671 -37.2917 36.5213 +-14.9392 -36.0324 35.288 +-15.905 -37.1677 36.3999 +-16.1178 -36.522 35.7675 +-16.5633 -36.4201 35.6677 +-17.1027 -36.5187 35.7643 +-17.8086 -36.9512 36.1878 +-18.2926 -36.9061 36.1437 +-18.7769 -36.8577 36.0963 +-19.1914 -36.6723 35.9147 +-19.9253 -37.0849 36.3188 +-20.0843 -36.4275 35.6749 +-20.7907 -36.7646 36.005 +-21.2389 -36.6335 35.8767 +-22.0372 -37.0917 36.3254 +-22.4894 -36.9528 36.1894 +-23.0213 -36.9418 36.1786 +-23.4716 -36.7968 36.0366 +-23.9625 -36.7139 35.9554 +-24.453 -36.6275 35.8708 +-25.3817 -37.18 36.4119 +-25.7902 -36.9564 36.1929 +-26.1953 -36.7306 35.9717 +-26.6891 -36.6292 35.8725 +-27.511 -36.9661 36.2024 +-27.9615 -36.7932 36.033 +-28.3129 -36.4924 35.7385 +-29.25 -36.9363 36.1733 +-30.15 -37.3094 36.5386 +-30.5031 -36.9969 36.2326 +-31.0568 -36.9278 36.1649 +-31.4022 -36.611 35.8546 +-31.9541 -36.535 35.7802 +-32.8827 -36.8767 36.1148 +-33.8221 -37.2095 36.4407 +-33.9993 -36.6993 35.9412 +-35.9002 -38.0259 37.2403 +-35.627 -37.0352 36.2701 +-35.9632 -36.6946 35.9366 +-36.9908 -37.0507 36.2853 +-38.0297 -37.3967 36.6241 +-38.4256 -37.1007 36.3343 +-39.4791 -37.4303 36.657 +-39.9347 -37.1827 36.4146 +-40.8799 -37.3827 36.6104 +-41.335 -37.1264 36.3594 +-42.4162 -37.4225 36.6494 +-42.9353 -37.2118 36.4431 +-43.3882 -36.9427 36.1795 +-44.4872 -37.214 36.4452 +-45.4649 -37.3666 36.5947 +-46.5159 -37.5633 36.7873 +-46.9061 -37.2188 36.4499 +-48.0345 -37.4517 36.6779 +-49.0357 -37.5688 36.7926 +-49.4927 -37.2616 36.4918 +-50.5711 -37.4142 36.6412 +-51.7271 -37.6071 36.8301 +-52.8209 -37.7378 36.9582 +-53.2798 -37.407 36.6342 +-54.3821 -37.5201 36.745 +-55.4911 -37.6222 36.845 +-56.753 -37.8108 37.0297 +-57.2864 -37.5038 36.729 +-58.4112 -37.5755 36.7992 +-59.7667 -37.778 36.9975 +-60.3013 -37.4507 36.677 +-61.897 -37.7694 36.9891 +-62.9689 -37.7494 36.9695 +-63.1961 -37.219 36.4501 +-65.358 -37.8127 37.0316 +-65.9739 -37.4928 36.7182 +-67.1385 -37.476 36.7017 +-68.3077 -37.4474 36.6737 +-70.2001 -37.794 37.0132 +-70.7394 -37.3974 36.6248 +-73.5396 -38.1728 37.3841 +-74.0031 -37.7128 36.9337 +-76.345 -38.1925 37.4034 +-77.303 -37.9578 37.1737 +-79.256 -38.1935 37.4045 +-80.1364 -37.8951 37.1122 +-81.8542 -37.9778 37.1932 +-83.7488 -38.1186 37.3311 +-85.6529 -38.2386 37.4486 +-87.3956 -38.2631 37.4726 +-89.0597 -38.2319 37.4421 +-90.7296 -38.1828 37.394 +-93.0977 -38.4016 37.6082 +-95.1299 -38.453 37.6586 +-97.2577 -38.5165 37.7208 +-98.779 -38.3177 37.5261 +-101.627 -38.6061 37.8085 +-103.425 -38.4658 37.6711 +-106.743 -38.8575 38.0547 +-109.271 -38.9237 38.1196 +-112.169 -39.0865 38.279 +-114.538 -39.0317 38.2253 +-119.179 -39.705 38.8847 +-122.663 -39.9381 39.113 +-127.622 -40.5957 39.7571 +-128.939 -40.0549 39.2274 +-133.197 -40.394 39.5595 +-14.5973 -4.31984 4.2306 +-13.7223 -3.96103 3.8792 +-44.474 -12.5163 12.2577 +-43.5048 -11.9312 11.6847 +-37.3732 -9.9832 9.77695 +-35.2385 -9.16337 8.97406 +-15.8364 -4.0066 3.92382 +-15.8847 -3.9077 3.82697 +-14.5094 -3.46847 3.39682 +-16.2631 -3.77528 3.69729 +-15.0687 -3.39445 3.32432 +-15.8747 -3.46748 3.39585 +-14.4782 -3.064 3.0007 +-14.8034 -3.0327 2.97005 +-12.3345 -2.44388 2.39339 +-3164.66 -605.83 593.314 +-12.6827 -2.34338 2.29496 +-12.2257 -2.1778 2.1328 +-11.7657 -2.01809 1.9764 +-13.3489 -2.20181 2.15632 +-12.4966 -1.97933 1.93844 +-13.0094 -1.97561 1.9348 +-11.9551 -1.73775 1.70184 +-14.0373 -1.94942 1.90915 +-12.684 -1.67955 1.64486 +-13.3934 -1.68726 1.6524 +-14.3011 -1.70981 1.67449 +-12.8399 -1.45294 1.42292 +-14.5385 -1.55235 1.52028 +-14.3589 -1.44176 1.41198 +-13.1862 -1.24028 1.21466 +-12.8038 -1.12319 1.09999 +-12.519 -1.01906 0.998007 +-12.2326 -0.918566 0.899589 +-12.3429 -0.849115 0.831573 +-12.2532 -0.765903 0.75008 +-11.0658 -0.62221 0.609356 +-11.073 -0.553195 0.541767 +-11.0793 -0.484138 0.474136 +-10.4856 -0.392609 0.384498 +-11.0894 -0.345918 0.338772 +-11.3931 -0.284246 0.278374 +-10.4964 -0.196372 0.192315 +-10.9983 -0.137157 0.134323 +-10.9996 -0.0685812 0.0671644 +10.5 0 0 +9.89962 -0.0611752 0.0610024 +10.1984 -0.126053 0.125698 +10.7963 -0.200189 0.199624 +11.0932 -0.274309 0.273534 +10.49 -0.324315 0.3234 +11.3844 -0.422477 0.421284 +11.6782 -0.505777 0.504349 +11.3722 -0.563103 0.561513 +12.0627 -0.672244 0.670346 +13.1498 -0.814647 0.812347 +13.1392 -0.895867 0.893338 +13.6249 -1.01404 1.01117 +15.2016 -1.22645 1.22298 +16.6748 -1.44978 1.44568 +35.692 -3.32735 3.31795 +34.8574 -3.46893 3.45914 +38.7694 -4.10286 4.09127 +39.31 -4.40873 4.39628 +39.0569 -4.6281 4.61503 +44.0209 -5.49637 5.48085 +50.0477 -6.56824 6.54969 +82.5548 -11.363 11.3309 +76.9241 -11.0821 11.0508 +88.3267 -13.2943 13.2567 +89.9169 -14.1155 14.0756 +93.9293 -15.3555 15.3121 +93.8337 -15.9519 15.9068 +94.5068 -16.6852 16.6381 +94.588 -17.3218 17.2728 +95.2403 -18.0706 18.0196 +94.7249 -18.6016 18.5491 +95.3572 -19.3619 19.3072 +95.1149 -19.9504 19.8941 +94.8654 -20.5374 20.4794 +95.3717 -21.2932 21.233 +95.2008 -21.9036 21.8417 +94.9272 -22.491 22.4275 +95.4028 -23.2611 23.1955 +95.8666 -24.0389 23.971 +95.5667 -24.6303 24.5608 +95.9152 -25.3935 25.3218 +95.5986 -25.9853 25.9119 +96.2052 -26.8345 26.7587 +96.6126 -27.6402 27.5622 +94.8824 -27.8297 27.7511 +94.4438 -28.3873 28.3071 +93.7235 -28.8569 28.7754 +94.552 -29.8093 29.7251 +94.181 -30.3925 30.3067 +94.1654 -31.0929 31.0051 +94.2299 -31.8261 31.7362 +93.7442 -32.3761 32.2847 +94.1471 -33.2385 33.1446 +94.0903 -33.9476 33.8517 +93.9344 -34.6258 34.528 +94.3871 -35.5373 35.437 +94.0334 -36.153 36.051 +94.0216 -36.9043 36.8001 +91.4744 -36.6471 36.5436 +89.98 -36.7861 36.6822 +87.8 -36.622 36.5186 +85.8882 -36.5431 36.4399 +84.6672 -36.7394 36.6357 +82.7695 -36.6233 36.5199 +81.556 -36.791 36.6871 +80.3446 -36.9464 36.8421 +78.969 -37.0116 36.9071 +78.0124 -37.2606 37.1554 +76.1493 -37.0594 36.9547 +75.1982 -37.2848 37.1795 +72.8633 -36.8023 36.6984 +72.407 -37.2512 37.146 +70.4982 -36.939 36.8347 +69.3216 -36.9897 36.8852 +67.673 -36.77 36.6662 +66.9809 -37.056 36.9514 +65.7391 -37.0277 36.9232 +64.5808 -37.0315 36.9269 +63.4275 -37.0237 36.9192 +62.356 -37.0501 36.9455 +61.2127 -37.0202 36.9157 +60.1504 -37.0254 36.9208 +58.9428 -36.9264 36.8222 +57.8167 -36.8629 36.7588 +56.4754 -36.6446 36.5411 +56.0948 -37.0405 36.9359 +54.258 -36.4596 36.3566 +53.8066 -36.7935 36.6896 +52.7092 -36.6779 36.5743 +51.6895 -36.6016 36.4983 +50.6056 -36.4651 36.3621 +50.1543 -36.7764 36.6726 +49.0797 -36.6227 36.5193 +48.0127 -36.4585 36.3555 +47.494 -36.7015 36.5979 +46.5046 -36.5727 36.4694 +45.5883 -36.4874 36.3844 +45.2025 -36.8211 36.7172 +43.6429 -36.1837 36.0815 +43.131 -36.3978 36.295 +42.4264 -36.4444 36.3415 +41.9127 -36.6501 36.5466 +40.7125 -36.2427 36.1404 +40.2643 -36.4929 36.3898 +39.2651 -36.2347 36.1324 +38.6967 -36.3629 36.2602 +38.3066 -36.6575 36.554 +37.148 -36.2054 36.1032 +36.6424 -36.3759 36.2732 +36.1927 -36.6009 36.4976 +35.0605 -36.1229 36.0209 +34.5581 -36.2794 36.177 +34.1097 -36.4916 36.3886 +33.6587 -36.701 36.5974 +32.6678 -36.3104 36.2079 +32.1661 -36.4508 36.3479 +31.7157 -36.6482 36.5447 +31.2628 -36.8428 36.7388 +30.3508 -36.4854 36.3824 +29.95 -36.7329 36.6292 +29.0037 -36.3003 36.1978 +28.5553 -36.4781 36.3751 +28.1524 -36.7154 36.6118 +27.2763 -36.3253 36.2228 +26.4582 -35.99 35.8884 +26.0137 -36.1521 36.0501 +25.5671 -36.3114 36.2089 +25.1187 -36.4681 36.3651 +24.7113 -36.6858 36.5822 +24.216 -36.7729 36.6691 +23.4302 -36.4057 36.3029 +22.9806 -36.5491 36.4459 +22.4894 -36.6248 36.5214 +21.8419 -36.4364 36.3336 +21.3155 -36.4392 36.3363 +20.903 -36.6352 36.5318 +20.1576 -36.2359 36.1336 +19.7102 -36.359 36.2564 +19.2264 -36.4131 36.3103 +18.8453 -36.6637 36.5601 +18.326 -36.6452 36.5417 +17.9062 -36.824 36.72 +17.2296 -36.4632 36.3602 +17.0268 -37.107 37.0022 +16.3584 -36.7381 36.6344 +15.8173 -36.6346 36.5312 +15.1096 -36.1199 36.0179 +14.471 -35.7354 35.6345 +14.2171 -36.3011 36.1986 +13.7951 -36.456 36.353 +13.145 -35.9915 35.8898 +12.7009 -36.0713 35.9694 +12.466 -36.7681 36.6643 +11.8099 -36.2227 36.1204 +11.3198 -36.1561 36.054 +10.9362 -36.4325 36.3296 +10.4668 -36.4292 36.3264 +10.0175 -36.4925 36.3895 +9.42158 -35.9961 35.8944 +9.15126 -36.7503 36.6465 +8.54947 -36.1768 36.0747 +8.11895 -36.2982 36.1957 +7.67131 -36.347 36.2444 +7.25092 -36.5333 36.4301 +6.77431 -36.4363 36.3334 +6.32502 -36.4767 36.3737 +5.86393 -36.4441 36.3412 +5.41457 -36.4789 36.3759 +4.97439 -36.5815 36.4782 +4.51467 -36.5403 36.4371 +3.97788 -35.7903 35.6892 +3.59943 -36.4492 36.3463 +3.10127 -35.9046 35.8033 +2.65867 -35.9225 35.8211 +2.21586 -35.9375 35.836 +1.80779 -36.6575 36.554 +1.33241 -36.0303 35.9285 +0.90578 -36.7451 36.6413 +0.444181 -36.0412 35.9395 +3.11662e-15 -36.0426 35.9408 +-0.444181 -36.0412 35.9395 +-0.902289 -36.6035 36.5001 +-1.35597 -36.6673 36.5637 +-1.80779 -36.6575 36.554 +-2.21586 -35.9375 35.836 +-2.70577 -36.5589 36.4556 +-3.15621 -36.5408 36.4376 +-3.61339 -36.5905 36.4872 +-4.04064 -36.355 36.2524 +-4.57568 -37.0341 36.9295 +-5.01273 -36.8634 36.7593 +-5.46684 -36.8311 36.7271 +-5.93185 -36.8663 36.7622 +-6.38595 -36.8282 36.7242 +-6.73515 -36.2257 36.1234 +-7.29267 -36.7436 36.6399 +-7.61218 -36.0669 35.965 +-8.05637 -36.0184 35.9167 +-8.54947 -36.1768 36.0747 +-9.02971 -36.2621 36.1597 +-9.4398 -36.0657 35.9638 +-10.0366 -36.562 36.4588 +-10.3073 -35.8741 35.7728 +-10.7698 -35.8783 35.777 +-11.2116 -35.8104 35.7093 +-11.6525 -35.7398 35.6389 +-12.0925 -35.6664 35.5657 +-12.7009 -36.0713 35.9694 +-13.1199 -35.9228 35.8214 +-13.7951 -36.456 36.353 +-14.2705 -36.4376 36.3348 +-14.9947 -37.0287 36.9241 +-15.1948 -36.3236 36.2211 +-15.6419 -36.2283 36.126 +-16.1178 -36.1978 36.0956 +-17.1504 -37.3764 37.2708 +-17.3248 -36.6647 36.5611 +-18.1016 -37.2257 37.1206 +-18.2592 -36.5117 36.4086 +-18.7427 -36.464 36.3611 +-19.5066 -36.9437 36.8394 +-19.9611 -36.8218 36.7178 +-20.6707 -37.1583 37.0534 +-21.0904 -36.9635 36.8591 +-21.5833 -36.8971 36.7929 +-22.0372 -36.7624 36.6586 +-22.5692 -36.7547 36.6509 +-23.3874 -37.196 37.091 +-23.9278 -37.179 37.074 +-24.3851 -37.0297 36.9251 +-24.7974 -36.8136 36.7097 +-25.294 -36.7226 36.619 +-25.7902 -36.6283 36.5249 +-26.6946 -37.0985 36.9938 +-27.0585 -36.8065 36.7026 +-27.9336 -37.2006 37.0956 +-27.9615 -36.4665 36.3636 +-28.7492 -36.7258 36.6221 +-29.6931 -37.1631 37.0582 +-30 -36.7942 36.6903 +-30.5031 -36.6685 36.5649 +-31.4173 -37.0249 36.9203 +-31.8724 -36.8294 36.7254 +-32.908 -37.2915 37.1862 +-33.2588 -36.9673 36.8629 +-34.2578 -37.3543 37.2488 +-34.8824 -37.3183 37.2129 +-35.5087 -37.2774 37.1722 +-35.9102 -36.9982 36.8938 +-37.1678 -37.587 37.4809 +-37.5715 -37.2983 37.193 +-38.5587 -37.5802 37.4741 +-38.9609 -37.2836 37.1783 +-39.9605 -37.5504 37.4444 +-40.4218 -37.3021 37.1968 +-40.9415 -37.1067 37.0019 +-41.9575 -37.351 37.2456 +-42.4162 -37.0903 36.9856 +-43.5078 -37.3732 37.2677 +-44.031 -37.1571 37.0522 +-45.0067 -37.3144 37.2091 +-46.0553 -37.5159 37.4099 +-45.9196 -36.7525 36.6488 +-47.5752 -37.4146 37.309 +-48.5749 -37.5368 37.4308 +-49.0357 -37.2352 37.1301 +-50.181 -37.4445 37.3388 +-51.1963 -37.5404 37.4344 +-51.7271 -37.2732 37.168 +-53.4573 -37.8534 37.7465 +-53.2085 -37.0253 36.9208 +-55.8927 -38.22 38.1121 +-55.4911 -37.2882 37.1829 +-57.4844 -37.9581 37.8509 +-57.8763 -37.5535 37.4475 +-59.08 -37.6683 37.562 +-59.9914 -37.5833 37.4772 +-61.4334 -37.8151 37.7083 +-61.9731 -37.48 37.3742 +-63.6583 -37.824 37.7172 +-64.122 -37.4291 37.3234 +-65.8243 -37.7444 37.6379 +-66.9913 -37.733 37.6265 +-68.3205 -37.7971 37.6904 +-69.4978 -37.7615 37.6549 +-70.6792 -37.7141 37.6077 +-71.8648 -37.6551 37.5488 +-73.9442 -38.042 37.9346 +-75.3871 -38.077 37.9695 +-76.8365 -38.0972 37.9896 +-78.0448 -37.9819 37.8746 +-80.4166 -38.4089 38.3004 +-80.8869 -37.9105 37.8035 +-83.5316 -38.4119 38.3034 +-84.5078 -38.1226 38.0149 +-87.0945 -38.537 38.4282 +-88.3335 -38.3304 38.2222 +-90.5169 -38.5125 38.4037 +-91.8497 -38.3111 38.2029 +-94.6566 -38.698 38.5887 +-95.5651 -38.2859 38.1778 +-98.3073 -38.5865 38.4776 +-100.097 -38.4844 38.3758 +-103.217 -38.8617 38.752 +-105.022 -38.7128 38.6035 +-108.792 -39.2519 39.141 +-109.719 -38.7361 38.6268 +-113.158 -39.081 38.9706 +-115.35 -38.9595 38.8495 +-121.173 -40.0109 39.8979 +-124.301 -40.1121 39.9989 +-128.444 -40.4946 40.3802 +-130.589 -40.2076 40.0941 +-134.118 -40.3121 40.1983 +-134.979 -39.5902 39.4784 +-14.3713 -4.11155 4.09994 +-16.0962 -4.48972 4.47705 +-47.1458 -12.815 12.7788 +-41.2136 -10.9113 10.8805 +-38.7153 -9.97806 9.94989 +-15.7421 -3.94739 3.93624 +-15.2228 -3.71164 3.70116 +-15.9318 -3.77471 3.76406 +-15.4071 -3.54483 3.53483 +-14.115 -3.15139 3.14249 +-15.2052 -3.29178 3.28248 +-14.7658 -3.09714 3.0884 +-13.746 -2.79108 2.7832 +-12.3345 -2.42218 2.41534 +-3164.66 -600.452 598.756 +-12.6827 -2.32257 2.31601 +-13.6812 -2.41542 2.4086 +-13.5159 -2.29773 2.29124 +-13.6412 -2.23004 2.22375 +-13.6681 -2.14567 2.13961 +-13.3028 -2.00224 1.99659 +-12.739 -1.83525 1.83007 +-14.2336 -1.95914 1.95361 +-13.3723 -1.75497 1.75001 +-13.9843 -1.74605 1.74112 +-13.2162 -1.56607 1.56165 +-13.5313 -1.51758 1.51329 +-12.9561 -1.37111 1.36723 +-13.4676 -1.34027 1.33648 +-14.0785 -1.31245 1.30875 +-13.0024 -1.13048 1.12729 +-13.7113 -1.1062 1.10308 +-12.531 -0.932618 0.929985 +-11.248 -0.766921 0.764756 +-11.1574 -0.691213 0.689262 +-11.4645 -0.63891 0.637106 +-11.472 -0.568042 0.566438 +-11.3787 -0.492808 0.491417 +-11.3844 -0.422477 0.421284 +-10.7897 -0.333581 0.332639 +-10.7934 -0.266896 0.266142 +-10.4964 -0.194629 0.194079 +-10.4984 -0.12976 0.129394 +-10.9996 -0.0679724 0.0677805 +9.7 0 0 +10.1996 -0.0624593 0.0634172 +9.89849 -0.12124 0.123099 +10.7963 -0.19838 0.201422 +11.3931 -0.279176 0.283458 +11.3891 -0.348931 0.354282 +11.9836 -0.440693 0.447451 +12.4767 -0.535476 0.543689 +12.0705 -0.592277 0.60136 +11.8633 -0.655156 0.665204 +14.0463 -0.862326 0.875551 +14.3337 -0.96848 0.983333 +14.3211 -1.05621 1.07241 +14.7049 -1.17564 1.19367 +17.171 -1.47943 1.50212 +29.5451 -2.72941 2.77127 +32.3818 -3.19343 3.24241 +37.187 -3.89982 3.95963 +40.1001 -4.4567 4.52505 +40.3391 -4.73683 4.80947 +53.5735 -6.62863 6.73029 +63.6166 -8.27353 8.40041 +91.7821 -12.5188 12.7108 +89.6631 -12.8007 12.997 +93.0218 -13.8744 14.0872 +92.26 -14.3523 14.5724 +94.8062 -15.3587 15.5943 +93.7365 -15.7913 16.0334 +94.5068 -16.5344 16.788 +94.4912 -17.1476 17.4106 +94.9505 -17.8527 18.1265 +94.9176 -18.471 18.7543 +95.3572 -19.1869 19.4811 +95.1149 -19.7701 20.0733 +95.6305 -20.5159 20.8305 +95.3717 -21.1007 21.4243 +95.2008 -21.7056 22.0385 +95.6859 -22.4658 22.8103 +95.4974 -23.0738 23.4276 +95.9609 -23.845 24.2107 +95.6607 -24.4318 24.8065 +95.9152 -25.164 25.5499 +96.6256 -26.027 26.4262 +96.2982 -26.6177 27.0259 +95.9635 -27.2064 27.6236 +95.8063 -27.8467 28.2738 +94.812 -28.2403 28.6735 +93.907 -28.652 29.0914 +94.6433 -29.5684 30.0219 +94.363 -30.1759 30.6387 +93.9841 -30.7526 31.2242 +94.3202 -31.5686 32.0528 +93.7442 -32.0835 32.5755 +93.9681 -32.8755 33.3797 +93.3775 -33.3859 33.8979 +94.2893 -34.4424 34.9707 +94.3871 -35.2161 35.7562 +93.594 -35.6589 36.2057 +93.4968 -36.3667 36.9244 +92.954 -36.9033 37.4692 +90.7595 -36.7694 37.3333 +89.0063 -36.7895 37.3537 +87.3453 -36.8272 37.392 +85.4345 -36.7374 37.3008 +84.4656 -37.036 37.604 +81.809 -36.5716 37.1324 +81.7704 -37.2622 37.8336 +80.1364 -37.2192 37.79 +78.9244 -37.3554 37.9283 +76.8086 -37.0424 37.6105 +76.5907 -37.632 38.2092 +74.4916 -37.2846 37.8564 +73.5396 -37.4919 38.0669 +70.9806 -36.8556 37.4208 +70.3598 -37.2044 37.7749 +67.911 -36.5659 37.1267 +68.3993 -37.4987 38.0738 +66.6 -37.1736 37.7437 +66.0574 -37.5358 38.1114 +64.1992 -37.1354 37.705 +63.0455 -37.1212 37.6905 +61.9731 -37.1413 37.7109 +60.8296 -37.1051 37.6741 +59.6918 -37.0576 37.626 +58.4855 -36.9522 37.5189 +57.3602 -36.8823 37.4479 +56.8993 -37.2321 37.8031 +55.5637 -36.9995 37.567 +54.526 -36.9484 37.515 +53.3511 -36.789 37.3532 +52.3259 -36.7174 37.2805 +51.3066 -36.636 37.1978 +50.849 -36.9488 37.5155 +49.6304 -36.6988 37.2617 +49.3085 -37.104 37.6731 +47.5616 -36.4215 36.9801 +47.1068 -36.7114 37.2744 +46.1184 -36.578 37.139 +45.2025 -36.4883 37.0479 +44.747 -36.7638 37.3276 +43.7096 -36.5525 37.1131 +43.0625 -36.6564 37.2186 +42.605 -36.9187 37.4849 +41.584 -36.6839 37.2465 +41.3109 -37.103 37.6721 +39.7521 -36.3526 36.9101 +39.78 -37.0429 37.611 +38.6635 -36.6646 37.2269 +37.7358 -36.4458 37.0048 +37.2811 -36.6755 37.2379 +36.5942 -36.6725 37.2349 +35.627 -36.3747 36.9325 +35.1732 -36.5915 37.1527 +34.0545 -36.1033 36.657 +34.0944 -36.8401 37.4051 +33.0977 -36.4556 37.0147 +32.696 -36.7165 37.2796 +31.7157 -36.317 36.8739 +31.2628 -36.5098 37.0697 +30.7568 -36.6393 37.2013 +30.35 -36.887 37.4528 +29.4469 -36.5219 37.082 +29.0401 -36.7621 37.3259 +28.1047 -36.3219 36.8789 +27.6988 -36.5546 37.1152 +27.2432 -36.7228 37.286 +26.8762 -37.0133 37.5809 +26.058 -36.6741 37.2365 +25.5132 -36.7061 37.269 +24.6252 -36.2276 36.7832 +24.216 -36.4406 36.9994 +23.8449 -36.7152 37.2783 +23.3874 -36.8598 37.4251 +22.5692 -36.4224 36.981 +22.467 -37.1406 37.7102 +21.3155 -36.1098 36.6636 +21.2777 -36.9546 37.5214 +20.4508 -36.4307 36.9894 +20.0328 -36.62 37.1816 +19.6116 -36.807 37.3715 +19.1189 -36.8597 37.425 +18.326 -36.314 36.8709 +17.9062 -36.4911 37.0508 +17.4518 -36.5994 37.1607 +17.0577 -36.8383 37.4033 +16.5087 -36.7407 37.3041 +16.022 -36.7732 37.3372 +15.3368 -36.3317 36.8889 +14.9671 -36.6266 37.1883 +14.2438 -36.0406 36.5934 +14.0539 -36.8043 37.3688 +13.3703 -36.2775 36.8339 +12.9428 -36.4261 36.9847 +12.2792 -35.8899 36.4403 +12.0124 -36.5107 37.0707 +11.4929 -36.3773 36.9352 +11.1233 -36.7209 37.284 +10.6263 -36.6501 37.2122 +10.2083 -36.8515 37.4167 +9.60381 -36.3606 36.9183 +9.13389 -36.349 36.9064 +8.54947 -35.8499 36.3997 +8.2441 -36.5246 37.0848 +7.67131 -36.0185 36.5709 +7.36226 -36.759 37.3227 +6.87873 -36.6635 37.2258 +6.4347 -36.7739 37.3378 +5.96581 -36.7421 37.3056 +5.50865 -36.7773 37.3413 +4.96481 -36.181 36.7359 +4.58439 -36.7692 37.3331 +4.05634 -36.1663 36.721 +3.61339 -36.2598 36.8159 +3.15621 -36.2105 36.7659 +2.71624 -36.3686 36.9264 +2.25512 -36.2437 36.7995 +1.80779 -36.3262 36.8833 +1.35858 -36.406 36.9644 +0.907525 -36.4831 37.0427 +0.445053 -35.7856 36.3345 +3.17785e-15 -36.4185 36.977 +-0.452035 -36.3469 36.9044 +-0.904035 -36.3428 36.9002 +-1.35335 -36.2658 36.8219 +-1.8392 -36.9574 37.5241 +-2.25512 -36.2437 36.7995 +-2.7581 -36.9292 37.4956 +-3.15621 -36.2105 36.7659 +-3.66919 -36.8198 37.3845 +-4.11126 -36.656 37.2182 +-4.57568 -36.6993 37.2622 +-5.02232 -36.6001 37.1614 +-5.57137 -37.196 37.7665 +-5.94317 -36.6027 37.1641 +-6.39814 -36.565 37.1257 +-6.83957 -36.4548 37.0139 +-7.29267 -36.4115 36.9699 +-7.74521 -36.3655 36.9232 +-8.19717 -36.3167 36.8737 +-8.63199 -36.1959 36.751 +-9.23808 -36.7636 37.3274 +-9.53092 -36.0846 36.6381 +-10.0175 -36.1627 36.7173 +-10.4868 -36.1687 36.7234 +-10.9362 -36.1032 36.6569 +-11.2332 -35.5553 36.1006 +-11.8549 -36.0321 36.5847 +-12.466 -36.4358 36.9946 +-12.9428 -36.4261 36.9847 +-13.3703 -36.2775 36.8339 +-14.0539 -36.8043 37.3688 +-14.2973 -36.1759 36.7307 +-15.2152 -37.2336 37.8046 +-15.4504 -36.6008 37.1621 +-16.1682 -37.1088 37.6779 +-16.3584 -36.406 36.9644 +-17.1504 -37.0385 37.6066 +-17.3883 -36.4663 37.0256 +-18.1341 -36.9556 37.5224 +-18.5597 -36.777 37.341 +-19.3583 -37.3213 37.8937 +-19.5066 -36.6098 37.1713 +-20.212 -36.9475 37.5142 +-20.744 -36.9529 37.5197 +-21.465 -37.2799 37.8517 +-21.9278 -37.1471 37.7168 +-22.3889 -37.0114 37.579 +-22.9281 -37.0016 37.5691 +-23.6721 -37.3085 37.8807 +-23.8863 -36.7791 37.3431 +-24.7232 -37.2037 37.7743 +-25.271 -37.1776 37.7478 +-25.9954 -37.3999 37.9734 +-26.1026 -36.7369 37.3003 +-27.0124 -37.2008 37.7714 +-27.4279 -36.9717 37.5388 +-28.403 -37.4839 38.0588 +-28.725 -37.1236 37.6929 +-29.5734 -37.4373 38.0114 +-29.6439 -36.7661 37.33 +-30.6 -37.191 37.7613 +-30.9091 -36.8207 37.3854 +-31.8809 -37.2316 37.8026 +-31.9247 -36.5563 37.1169 +-32.802 -36.8355 37.4004 +-33.7961 -37.225 37.7959 +-34.4757 -37.252 37.8233 +-35.4895 -37.6247 38.2017 +-35.9002 -37.3477 37.9205 +-36.1367 -36.8952 37.461 +-37.684 -37.7646 38.3438 +-37.5715 -36.9611 37.528 +-39.0289 -37.6947 38.2728 +-39.5557 -37.5107 38.086 +-40.5623 -37.7714 38.3507 +-41.0305 -37.5216 38.097 +-42.0497 -37.7666 38.3458 +-42.5177 -37.5076 38.0829 +-42.9826 -37.2459 37.8171 +-43.4441 -36.9813 37.5484 +-45.1237 -37.7351 38.3138 +-45.5913 -37.4574 38.0318 +-46.6458 -37.6534 38.2309 +-47.1123 -37.3664 37.9394 +-48.1774 -37.5457 38.1215 +-49.2505 -37.7149 38.2933 +-50.3315 -37.8738 38.4546 +-50.181 -37.106 37.6751 +-51.891 -37.7059 38.2842 +-52.3579 -37.3867 37.9601 +-54.0937 -37.9578 38.54 +-54.5637 -37.6252 38.2022 +-55.8927 -37.8746 38.4554 +-56.3616 -37.5309 38.1064 +-58.1426 -38.0457 38.6292 +-59.2771 -38.1149 38.6994 +-60.6406 -38.3139 38.9015 +-61.0399 -37.8946 38.4757 +-62.2635 -37.9797 38.5622 +-62.9616 -37.7337 38.3124 +-64.1945 -37.7978 38.3775 +-65.3566 -37.8049 38.3847 +-66.2128 -37.6241 38.2011 +-67.3826 -37.6104 38.1872 +-69.0297 -37.8443 38.4247 +-70.2118 -37.8047 38.3844 +-72.596 -38.3868 38.9755 +-73.0706 -37.9408 38.5227 +-75.4004 -38.4406 39.0301 +-76.364 -38.2218 38.808 +-78.3109 -38.4773 39.0673 +-79.1985 -38.195 38.7807 +-81.1628 -38.4149 39.004 +-82.3045 -38.2263 38.8125 +-84.7057 -38.5998 39.1917 +-85.4356 -38.1928 38.7785 +-88.1122 -38.6349 39.2274 +-88.5893 -38.0939 38.6781 +-92.4884 -38.9956 39.5936 +-93.4006 -38.6059 39.1979 +-95.5226 -38.6991 39.2926 +-97.828 -38.8383 39.4339 +-99.8816 -38.8501 39.446 +-101.503 -38.6723 39.2653 +-104.541 -39.0046 39.6028 +-106.086 -38.7518 39.3461 +-110.039 -39.3431 39.9465 +-111.688 -39.0748 39.6741 +-115.944 -39.6814 40.2899 +-117.517 -39.3323 39.9356 +-123.439 -40.3906 41.01 +-126.303 -40.3897 41.0092 +-130.454 -40.7565 41.3815 +-133.065 -40.5996 41.2223 +-136.235 -40.5784 41.2007 +-137.473 -39.9574 40.5702 +-11.0335 -3.12808 3.17605 +-54.2433 -14.9933 15.2233 +-48.7329 -13.1267 13.328 +-42.2439 -11.083 11.253 +-40.1249 -10.2479 10.4051 +-15.8364 -3.93514 3.99549 +-15.0337 -3.6324 3.68811 +-15.4577 -3.62927 3.68493 +-15.4071 -3.51279 3.56667 +-15.1641 -3.35501 3.40646 +-15.1096 -3.24151 3.29122 +-14.9576 -3.109 3.15669 +-14.5151 -2.92058 2.96537 +-13.1054 -2.55031 2.58942 +-13.9093 -2.61525 2.65536 +-12.8764 -2.33671 2.37255 +-12.4198 -2.1729 2.20623 +-12.2519 -2.064 2.09566 +-11.4976 -1.86262 1.89119 +-12.4966 -1.94403 1.97384 +-13.8897 -2.07168 2.10345 +-12.935 -1.84665 1.87497 +-13.0556 -1.78076 1.80807 +-14.0605 -1.82862 1.85667 +-13.4919 -1.66934 1.69494 +-13.6107 -1.59825 1.62276 +-12.7412 -1.41604 1.43776 +-13.2528 -1.38983 1.41115 +-13.2696 -1.30862 1.32869 +-12.6905 -1.17237 1.19035 +-13.3001 -1.14592 1.16349 +-12.6184 -1.00883 1.0243 +-12.6304 -0.931521 0.945807 +-11.6461 -0.786893 0.798961 +-12.8509 -0.788935 0.801034 +-11.7636 -0.649651 0.659614 +-11.073 -0.543328 0.551661 +-11.0793 -0.475503 0.482795 +-10.5855 -0.389279 0.395249 +-11.3891 -0.348931 0.354282 +-10.4936 -0.257136 0.26108 +-10.7963 -0.19838 0.201422 +-11.0983 -0.135936 0.138021 +-10.9996 -0.067358 0.0683911 +10.2 0 0 +10.7996 -0.065526 0.0677405 +10.7984 -0.131047 0.135476 +11.3961 -0.207478 0.214489 +11.6929 -0.283892 0.293486 +11.3891 -0.345726 0.35741 +12.4829 -0.454839 0.47021 +13.1754 -0.56027 0.579204 +13.4671 -0.654735 0.676863 +12.7605 -0.698236 0.721834 +14.5444 -0.884698 0.914597 +14.5328 -0.972913 1.00579 +15.8129 -1.15552 1.19458 +15.4997 -1.22781 1.2693 +18.0643 -1.5421 1.59422 +28.7519 -2.63174 2.72068 +31.8866 -3.11572 3.22102 +36.3958 -3.78179 3.9096 +42.1743 -4.64417 4.80112 +46.7499 -5.43921 5.62303 +53.4751 -6.55568 6.77724 +85.4449 -11.0104 11.3825 +93.8436 -12.6825 13.1111 +94.0728 -13.3068 13.7565 +94.6847 -13.9927 14.4656 +94.7007 -14.5967 15.09 +94.7088 -15.202 15.7158 +94.6116 -15.7923 16.326 +95.3801 -16.5339 17.0927 +95.3625 -17.1468 17.7263 +94.9505 -17.6888 18.2866 +94.9176 -18.3013 18.9199 +95.3572 -19.0107 19.6531 +95.1149 -19.5885 20.2505 +95.6305 -20.3275 21.0145 +95.4671 -20.9278 21.6351 +95.9616 -21.6781 22.4107 +94.8324 -22.061 22.8065 +95.4028 -22.8392 23.611 +95.9609 -23.626 24.4245 +95.6607 -24.2074 25.0255 +96.1026 -24.9816 25.8259 +95.5986 -25.5139 26.3762 +96.2982 -26.3733 27.2646 +95.9635 -26.9565 27.8675 +96.3606 -27.7506 28.6884 +95.9166 -28.307 29.2636 +94.0904 -28.4443 29.4056 +94.7347 -29.3251 30.3162 +94.181 -29.8411 30.8497 +94.6185 -30.6758 31.7125 +94.1396 -31.2188 32.2739 +93.8341 -31.8192 32.8946 +94.1471 -32.6355 33.7385 +94.4467 -33.458 34.5888 +93.757 -33.9335 35.0803 +94.0339 -34.7621 35.9369 +94.385 -35.63 36.8341 +93.9342 -36.2013 37.4247 +94.4336 -37.1464 38.4018 +93.6173 -37.5788 38.8488 +90.2987 -36.9809 38.2307 +89.8311 -37.5274 38.7957 +87.1398 -37.1265 38.3812 +86.4161 -37.5432 38.812 +84.0018 -37.2069 38.4643 +82.8607 -37.4122 38.6766 +80.8869 -37.2228 38.4808 +80.4166 -37.7121 38.9866 +79.0337 -37.7655 39.0418 +77.8194 -37.8846 39.165 +75.4685 -37.4267 38.6916 +75.2386 -38.0057 39.2902 +73.3117 -37.7164 38.991 +72.3564 -37.9087 39.1898 +69.6564 -37.1612 38.4171 +69.1873 -37.5824 38.8525 +67.4608 -37.3082 38.5691 +67.4563 -37.9786 39.2621 +64.8936 -37.1924 38.4494 +64.4243 -37.5847 38.8549 +62.5814 -37.1614 38.4173 +62.1126 -37.5397 38.8084 +60.2909 -37.0858 38.3392 +60.492 -37.8689 39.1487 +58.761 -37.436 38.7011 +58.2889 -37.7911 39.0683 +56.4341 -37.234 38.4923 +55.9646 -37.575 38.8448 +54.0644 -36.9384 38.1868 +53.6694 -37.3142 38.5753 +51.8673 -36.6962 37.9364 +52.0299 -37.4597 38.7257 +50.3187 -36.8661 38.112 +49.9223 -37.2209 38.4788 +48.3047 -36.6509 37.8895 +48.3781 -37.3559 38.6184 +46.6485 -36.6587 37.8976 +46.3178 -37.0452 38.2972 +45.2665 -36.849 38.0944 +44.738 -37.069 38.3218 +42.9989 -36.2661 37.4917 +42.8567 -36.7957 38.0392 +41.9575 -36.6735 37.9129 +41.5571 -36.9814 38.2312 +40.3 -36.5151 37.7491 +40.3818 -37.2579 38.5171 +39.3178 -36.9426 38.1911 +38.8526 -37.1798 38.4363 +37.6876 -36.7349 37.9763 +37.1678 -36.9052 38.1524 +36.6465 -37.072 38.3249 +36.1798 -37.2929 38.5532 +34.6064 -36.3514 37.58 +34.639 -37.0848 38.3381 +33.6887 -36.7658 38.0083 +33.1729 -36.9099 38.1573 +32.1337 -36.4577 37.6898 +32.2929 -37.3664 38.6292 +31.2644 -36.9019 38.1491 +30.8 -37.0902 38.3437 +29.9394 -36.7915 38.0349 +29.4764 -36.9718 38.2213 +28.5818 -36.5993 37.8362 +28.5439 -37.3238 38.5852 +27.6587 -36.9405 38.189 +27.2394 -37.1689 38.4251 +26.3257 -36.7105 37.9512 +25.8639 -36.8688 38.1149 +25.0557 -36.5224 37.7567 +24.9345 -37.1771 38.4335 +23.7619 -36.2515 37.4766 +23.7127 -37.0294 38.2808 +22.9281 -36.6618 37.9008 +22.467 -36.7995 38.0431 +22.0043 -36.9344 38.1826 +21.5399 -37.0665 38.3192 +20.744 -36.6135 37.8509 +20.6778 -37.452 38.7177 +19.9268 -37.055 38.3073 +19.4267 -37.1092 38.3633 +18.9268 -37.1602 38.416 +18.1993 -36.7477 37.9896 +17.7373 -36.8567 38.1023 +17.305 -37.029 38.2805 +16.7794 -37 38.2504 +16.3728 -37.2334 38.4917 +15.6208 -36.6646 37.9038 +15.1876 -36.8248 38.0694 +14.511 -36.3796 37.6091 +14.2609 -37.0035 38.2541 +13.6207 -36.6174 37.8549 +13.1606 -36.6987 37.939 +12.5127 -36.2363 37.4609 +12.2148 -36.7851 38.0282 +11.6877 -36.6541 37.8929 +11.3728 -37.1997 38.4569 +10.8057 -36.9266 38.1746 +10.3609 -37.0591 38.3115 +9.76782 -36.642 37.8803 +9.44646 -37.2476 38.5064 +8.84655 -36.7549 37.997 +8.40053 -36.8759 38.1221 +7.93737 -36.9254 38.1734 +7.58493 -37.5229 38.7911 +6.89178 -36.3957 37.6257 +6.54438 -37.0572 38.3096 +5.97713 -36.4738 37.7065 +5.61318 -37.131 38.3858 +5.07024 -36.61 37.8473 +4.67155 -37.1241 38.3788 +4.12695 -36.458 37.6901 +3.66919 -36.4817 37.7146 +3.21726 -36.5719 37.8079 +2.79997 -37.1455 38.4008 +2.25512 -35.9108 37.1244 +1.83571 -36.5485 37.7836 +1.35858 -36.0717 37.2907 +0.924978 -36.8432 38.0883 +0.454652 -36.2217 37.4458 +3.23908e-15 -36.7793 38.0223 +-0.460761 -36.7084 37.949 +-0.935449 -37.2603 38.5195 +-1.37691 -36.5582 37.7937 +-1.86712 -37.1738 38.4301 +-2.33364 -37.1611 38.4169 +-2.79474 -37.076 38.329 +-3.21726 -36.5719 37.8079 +-3.73197 -37.1059 38.3599 +-4.18972 -37.0125 38.2633 +-4.72384 -37.5398 38.8085 +-5.10858 -36.8868 38.1334 +-5.65499 -37.4075 38.6717 +-6.12429 -37.3718 38.6348 +-6.61751 -37.4713 38.7377 +-6.98315 -36.8782 38.1246 +-7.54318 -37.3164 38.5775 +-7.87824 -36.6503 37.8889 +-8.47875 -37.2192 38.477 +-8.92908 -37.0978 38.3515 +-9.51592 -37.5215 38.7896 +-9.76782 -36.642 37.8803 +-10.3609 -37.0591 38.3115 +-10.6662 -36.4497 37.6816 +-11.3104 -36.9957 38.246 +-11.5795 -36.3147 37.542 +-12.2373 -36.8528 38.0982 +-12.6761 -36.7096 37.9502 +-13.3541 -37.2384 38.4969 +-13.5956 -36.5501 37.7854 +-14.3127 -37.1378 38.3929 +-14.5378 -36.4466 37.6784 +-15.2427 -36.9585 38.2076 +-15.706 -36.8646 38.1105 +-16.4605 -37.4328 38.6979 +-16.6892 -36.8011 38.0448 +-17.4286 -37.2935 38.5539 +-17.6739 -36.7248 37.9659 +-18.6551 -37.668 38.941 +-18.9268 -37.1602 38.416 +-19.3241 -36.9132 38.1607 +-19.8217 -36.8597 38.1054 +-20.5703 -37.2573 38.5164 +-21.0738 -37.1958 38.4528 +-21.8021 -37.5177 38.7857 +-22.2722 -37.384 38.6475 +-22.7796 -37.3114 38.5724 +-23.2072 -37.1081 38.3622 +-24.1195 -37.6645 38.9374 +-24.5913 -37.5168 38.7847 +-25.4839 -37.9963 39.2804 +-25.6154 -37.3381 38.6 +-26.5215 -37.8062 39.0839 +-26.5488 -37.0217 38.2728 +-27.421 -37.4167 38.6812 +-27.8896 -37.2489 38.5078 +-28.7317 -37.5694 38.8391 +-29.059 -37.2104 38.4679 +-30.0097 -37.6407 38.9128 +-30.0378 -36.9126 38.1601 +-30.95 -37.2708 38.5304 +-31.4166 -37.0816 38.3348 +-32.3959 -37.4855 38.7524 +-32.8129 -37.2283 38.4865 +-33.7559 -37.5585 38.8278 +-34.1185 -37.235 38.4934 +-36.1096 -38.6592 39.9657 +-35.4344 -37.2211 38.479 +-36.2357 -37.3505 38.6128 +-37.2129 -37.645 38.9172 +-38.1428 -37.8734 39.1533 +-38.5587 -37.5839 38.8541 +-39.5579 -37.8547 39.1341 +-40.0911 -37.6692 38.9423 +-41.104 -37.9242 39.2059 +-41.5784 -37.6734 38.9466 +-42.6038 -37.9128 39.1941 +-43.078 -37.6529 38.9254 +-44.1783 -37.9304 39.2123 +-44.6527 -37.6609 38.9337 +-45.7022 -37.8679 39.1477 +-45.5913 -37.1134 38.3676 +-47.8923 -38.3046 39.5991 +-47.7086 -37.4918 38.7589 +-49.3818 -38.131 39.4196 +-49.8586 -37.8299 39.1084 +-50.8771 -37.9327 39.2147 +-51.3513 -37.6226 38.8941 +-53.0719 -38.2099 39.5012 +-53.6196 -37.936 39.2181 +-55.5786 -38.6416 39.9475 +-56.0615 -38.303 39.5974 +-57.9069 -38.879 40.1929 +-57.6673 -38.0476 39.3334 +-59.0202 -38.2653 39.5585 +-59.9406 -38.1875 39.4781 +-61.1608 -38.2876 39.5815 +-61.7888 -38.0073 39.2917 +-63.4711 -38.3607 39.6572 +-64.4064 -38.245 39.5376 +-65.9564 -38.4785 39.7789 +-66.4369 -38.0769 39.3637 +-68.078 -38.3287 39.624 +-68.5565 -37.9142 39.1955 +-71.315 -38.7381 40.0473 +-71.2431 -38.0077 39.2922 +-73.7141 -38.62 39.9252 +-74.196 -38.1713 39.4613 +-76.6139 -38.7005 40.0084 +-77.0967 -38.2342 39.5263 +-80.195 -39.041 40.3605 +-80.4347 -38.4348 39.7338 +-82.0747 -38.4897 39.7905 +-83.5554 -38.4508 39.7502 +-86.2153 -38.9269 40.2424 +-87.3754 -38.7011 40.0091 +-90.0627 -39.1275 40.4498 +-90.8914 -38.7248 40.0336 +-93.6884 -39.1388 40.4615 +-94.9515 -38.8864 40.2006 +-98.1207 -39.3865 40.7176 +-99.1335 -38.9951 40.313 +-102.243 -39.4033 40.735 +-103.525 -39.0801 40.4009 +-107.013 -39.5603 40.8973 +-107.949 -39.07 40.3904 +-112.712 -39.9287 41.2781 +-114.104 -39.5535 40.8903 +-119.629 -40.5665 41.9375 +-121.668 -40.348 41.7116 +-126.43 -40.9892 42.3745 +-129.396 -40.9991 42.3847 +-132.555 -41.0326 42.4193 +-133.982 -40.5039 41.8728 +-137.892 -40.6947 42.07 +-139.044 -40.0428 41.3961 +-137.316 -38.5725 39.8761 +-15.538 -4.25539 4.39921 +-51.4403 -13.7287 14.1927 +-43.8363 -11.3951 11.7802 +-40.5947 -10.2727 10.6199 +-38.554 -9.49219 9.81298 +-15.3174 -3.66694 3.79087 +-15.5525 -3.618 3.74027 +-15.5973 -3.5235 3.64258 +-15.4502 -3.38691 3.50138 +-15.3965 -3.27272 3.38332 +-15.2452 -3.13969 3.24579 +-14.5151 -2.89376 2.99156 +-12.9126 -2.48972 2.57386 +-13.7161 -2.55524 2.6416 +-13.1668 -2.36748 2.44749 +-13.002 -2.25386 2.33003 +-11.9602 -1.99636 2.06383 +-12.9591 -2.08012 2.15041 +-13.2776 -2.04656 2.11572 +-12.8137 -1.89364 1.95764 +-13.425 -1.89899 1.96317 +-13.0556 -1.7644 1.82403 +-13.2739 -1.71047 1.76827 +-13.3934 -1.64194 1.69743 +-13.4135 -1.56062 1.61336 +-13.4326 -1.47917 1.52916 +-14.3407 -1.49011 1.54047 +-12.7745 -1.24822 1.29041 +-13.2854 -1.21605 1.25714 +-13.3001 -1.1354 1.17377 +-13.6119 -1.07827 1.11471 +-13.3266 -0.973838 1.00675 +-12.8406 -0.859627 0.888679 +-12.8509 -0.781689 0.808106 +-11.8633 -0.649139 0.671077 +-12.0705 -0.586837 0.606669 +-11.8778 -0.505092 0.522162 +-10.6853 -0.389343 0.402501 +-10.5899 -0.321465 0.332329 +-11.3931 -0.276612 0.285961 +-10.7963 -0.196558 0.203201 +-10.7984 -0.131047 0.135476 +-10.4996 -0.0637058 0.0658588 +10.8 0 0 +10.4996 -0.0631089 0.0664309 +11.0983 -0.133425 0.140449 +10.4964 -0.189308 0.199273 +11.8928 -0.286039 0.301096 +12.4881 -0.375534 0.395301 +11.7838 -0.425345 0.447735 +12.8759 -0.542406 0.570958 +14.1654 -0.682233 0.718145 +14.0565 -0.76194 0.802048 +14.3452 -0.864405 0.909906 +15.4286 -1.02321 1.07707 +16.0118 -1.1591 1.22011 +16.1952 -1.27088 1.33778 +20.1487 -1.70393 1.79362 +24.1913 -2.19355 2.30901 +33.5701 -3.24949 3.42054 +37.2859 -3.83798 4.04001 +39.4088 -4.29898 4.52527 +48.6239 -5.60423 5.89923 +53.2781 -6.47034 6.81094 +65.8781 -8.40946 8.85213 +93.8436 -12.5636 13.225 +93.8768 -13.1547 13.8471 +94.6847 -13.8617 14.5913 +94.7007 -14.46 15.2211 +94.7088 -15.0596 15.8523 +94.6116 -15.6443 16.4678 +95.283 -16.3624 17.2237 +95.3625 -16.9862 17.8803 +94.9505 -17.523 18.4454 +95.5921 -18.2587 19.2198 +95.3572 -18.8325 19.8239 +95.1149 -19.405 20.4264 +95.7261 -20.1571 21.2182 +95.3717 -20.711 21.8012 +95.2008 -21.3047 22.4262 +95.6859 -22.0509 23.2117 +95.4028 -22.6252 23.8162 +95.9609 -23.4047 24.6367 +95.5667 -23.957 25.218 +95.2596 -24.5305 25.8217 +95.5986 -25.2749 26.6053 +96.2052 -26.1009 27.4748 +95.8708 -26.6781 28.0824 +96.2682 -27.4642 28.9099 +96.0087 -28.0687 29.5462 +95.6494 -28.6446 30.1525 +94.3692 -28.9383 30.4616 +94.454 -29.6472 31.2078 +93.8935 -30.1556 31.743 +94.1396 -30.9263 32.5543 +93.7442 -31.491 33.1486 +93.3417 -32.0532 33.7404 +94.3576 -33.1133 34.8563 +93.6683 -33.5838 35.3516 +93.769 -34.3395 36.1471 +94.5607 -35.3619 37.2233 +93.8467 -35.8287 37.7147 +93.1281 -36.2896 38.1998 +94.0504 -37.399 39.3676 +92.4528 -37.5084 39.4828 +91.8026 -37.9917 39.9915 +88.5893 -37.3904 39.3586 +88.1122 -37.9214 39.9176 +85.5199 -37.5244 39.4997 +84.7896 -37.9245 39.9208 +82.8049 -37.7484 39.7354 +81.5773 -37.898 39.8929 +79.5282 -37.6457 39.6273 +79.0482 -38.1222 40.1289 +77.5852 -38.1159 40.1223 +77.0993 -38.5808 40.6116 +74.5175 -37.9776 39.9767 +74.0335 -38.424 40.4466 +72.1158 -38.1128 40.119 +69.6602 -37.4847 39.4579 +68.4782 -37.516 39.4909 +68.1557 -38.0129 40.0139 +66.2826 -37.6325 39.6134 +66.4927 -38.4279 40.4508 +63.9501 -37.6184 39.5986 +63.3956 -37.9562 39.9541 +61.6391 -37.5598 39.537 +61.1608 -37.9289 39.9254 +60.0144 -37.8763 39.87 +58.874 -37.8128 39.8033 +57.8123 -37.786 39.775 +57.3314 -38.132 40.1392 +55.5622 -37.6061 39.5857 +55.0836 -37.9387 39.9357 +53.199 -37.2858 39.2485 +53.3498 -38.05 40.0529 +51.6954 -37.5199 39.4949 +51.2181 -37.8292 39.8205 +49.4532 -37.1708 39.1274 +49.1142 -37.5689 39.5465 +47.9737 -37.3469 39.3128 +47.4331 -37.5818 39.5601 +45.916 -37.0275 38.9766 +45.895 -37.6714 39.6544 +44.3983 -37.0955 39.0482 +43.9895 -37.4145 39.3839 +43.0158 -37.2462 39.2068 +42.85 -37.7747 39.7631 +41.7002 -37.4297 39.4 +40.8031 -37.2939 39.257 +39.7936 -37.0394 38.9891 +39.2053 -37.1657 39.1221 +38.791 -37.4561 39.4277 +38.2002 -37.5749 39.5528 +37.2695 -37.349 39.315 +36.6831 -37.4574 39.4292 +35.6551 -37.1021 39.0551 +35.1837 -37.315 39.2792 +34.6558 -37.4669 39.4392 +34.2328 -37.7322 39.7184 +33.1264 -37.2319 39.1917 +32.6534 -37.4295 39.3998 +31.7211 -37.0903 39.0427 +31.3 -37.3392 39.3047 +30.3333 -36.9264 38.8702 +29.8643 -37.1073 39.0606 +29.059 -36.8617 38.8021 +29.0133 -37.5823 39.5606 +28.0743 -37.1443 39.0996 +28.0566 -37.9253 39.9216 +26.7719 -36.983 38.9298 +26.653 -37.6377 39.619 +25.4432 -36.7397 38.6736 +25.3571 -37.453 39.4245 +24.4669 -36.9772 38.9237 +24.0381 -37.1858 39.1432 +23.5262 -37.2657 39.2273 +23.1704 -37.5959 39.5749 +22.0043 -36.5884 38.5143 +21.9145 -37.3578 39.3243 +21.4037 -37.424 39.394 +20.9287 -37.5512 39.5279 +20.207 -37.224 39.1835 +19.7346 -37.3441 39.3098 +18.9268 -36.812 38.7498 +18.7202 -37.4453 39.4164 +17.7691 -36.5767 38.502 +17.5831 -37.2716 39.2335 +17.0199 -37.1788 39.1359 +16.8406 -37.9384 39.9354 +16.0185 -37.2456 39.2062 +15.6011 -37.4729 39.4455 +14.9921 -37.2335 39.1934 +14.5197 -37.3221 39.2867 +13.821 -36.8078 38.7453 +13.5718 -37.491 39.4645 +12.8862 -36.9684 38.9143 +12.5523 -37.447 39.4182 +12.0124 -37.3193 39.2838 +11.4975 -37.2554 39.2165 +11.0051 -37.2556 39.2167 +10.5327 -37.3203 39.2848 +9.93184 -36.9082 38.851 +9.60274 -37.5091 39.4835 +8.99509 -37.0219 38.9707 +8.66647 -37.6868 39.6706 +8.07039 -37.1925 39.1503 +7.59885 -37.2396 39.1998 +7.10062 -37.1473 39.1027 +6.75156 -37.8722 39.8657 +6.1809 -37.3638 39.3306 +5.70725 -37.3996 39.3683 +5.22359 -37.3639 39.3307 +4.74999 -37.3939 39.3622 +4.19756 -36.7344 38.668 +3.79475 -37.3766 39.344 +3.31494 -37.3292 39.2942 +2.84708 -37.4165 39.386 +2.33364 -36.8129 38.7507 +1.89853 -37.445 39.4161 +1.40308 -36.9042 38.8468 +0.951156 -37.531 39.5066 +0.468615 -36.9843 38.9311 +3.28807e-15 -36.9857 38.9326 +-0.468615 -36.9843 38.9311 +-0.951156 -37.531 39.5066 +-1.40047 -36.8354 38.7743 +-1.90202 -37.5138 39.4885 +-2.37289 -37.4322 39.4025 +-2.85231 -37.4853 39.4584 +-3.32104 -37.3979 39.3665 +-3.84358 -37.8575 39.8503 +-4.25248 -37.215 39.174 +-4.80228 -37.8055 39.7956 +-5.18526 -37.0896 39.042 +-5.73861 -37.6051 39.5846 +-6.12429 -37.0217 38.9704 +-6.72719 -37.7354 39.7218 +-7.08757 -37.079 39.0308 +-7.66844 -37.5806 39.5589 +-8.1443 -37.5331 39.5088 +-8.61954 -37.4827 39.4558 +-8.99509 -37.0219 38.9707 +-9.62011 -37.5769 39.5549 +-9.89539 -36.7727 38.7084 +-10.5327 -37.3203 39.2848 +-10.8456 -36.7157 38.6483 +-11.4767 -37.188 39.1455 +-11.7743 -36.5797 38.5052 +-12.4173 -37.0444 38.9944 +-12.9095 -37.0354 38.9849 +-13.5718 -37.491 39.4645 +-13.821 -36.8078 38.7453 +-14.5456 -37.3886 39.3567 +-15.0188 -37.2998 39.2632 +-15.6838 -37.6716 39.6546 +-15.9617 -37.1136 39.0672 +-16.4605 -37.0821 39.0341 +-17.2004 -37.5729 39.5507 +-17.7067 -37.5336 39.5093 +-18.1816 -37.4257 39.3958 +-18.6876 -37.3802 39.3479 +-19.1271 -37.2016 39.1598 +-19.8714 -37.6029 39.5823 +-20.4521 -37.6756 39.6588 +-21.2154 -38.0657 40.0694 +-21.367 -37.3599 39.3265 +-22.1767 -37.8048 39.7948 +-22.6166 -37.6065 39.586 +-23.0922 -37.4691 39.4414 +-23.6059 -37.3921 39.3604 +-24.4449 -37.815 39.8056 +-24.9231 -37.6667 39.6494 +-25.4839 -37.6403 39.6216 +-26.0029 -37.5479 39.5243 +-26.916 -38.0092 40.01 +-27.3519 -37.7843 39.7732 +-28.1928 -38.1094 40.1154 +-28.3052 -37.4498 39.4211 +-29.0603 -37.6431 39.6246 +-29.5361 -37.467 39.4392 +-30.446 -37.8302 39.8215 +-30.9242 -37.6457 39.6274 +-31.8 -37.9356 39.9325 +-31.8734 -37.2683 39.2301 +-33.323 -38.197 40.2077 +-33.9102 -38.1127 40.1189 +-34.6567 -38.1995 40.2103 +-35.623 -38.5126 40.5399 +-36.3274 -38.528 40.5561 +-36.3726 -37.8488 39.8411 +-37.2422 -38.0284 40.0302 +-37.666 -37.7464 39.7333 +-39.1753 -38.5341 40.5625 +-39.0813 -37.7364 39.7229 +-40.6747 -38.5588 40.5885 +-40.6264 -37.8145 39.8051 +-42.1872 -38.559 40.5887 +-42.1263 -37.8123 39.8027 +-43.712 -38.5346 40.563 +-43.6383 -37.7852 39.7742 +-45.3111 -38.5385 40.5671 +-45.7976 -38.2647 40.2789 +-46.9235 -38.5156 40.543 +-46.8252 -37.7608 39.7484 +-48.4828 -38.4135 40.4355 +-48.9014 -38.069 40.073 +-49.9841 -38.2343 40.247 +-51.0746 -38.3895 40.4103 +-52.1729 -38.5344 40.5628 +-52.6591 -38.2193 40.2312 +-54.5307 -38.8923 40.9395 +-55.0214 -38.5631 40.593 +-56.0029 -38.5718 40.6022 +-57.1314 -38.6682 40.7036 +-58.2665 -38.7539 40.7939 +-58.7553 -38.4023 40.4237 +-60.1173 -38.6114 40.6438 +-60.6779 -38.2951 40.3109 +-62.6471 -38.8506 40.8957 +-62.9872 -38.3813 40.4017 +-64.6031 -38.6791 40.7152 +-65.0908 -38.2894 40.3049 +-67.3353 -38.9149 40.9633 +-67.8258 -38.5087 40.5358 +-69.4768 -38.7497 40.7895 +-70.826 -38.8023 40.8449 +-72.2606 -38.884 40.9308 +-72.7505 -38.4482 40.4721 +-75.1516 -39.0043 41.0574 +-76.1252 -38.7969 40.8391 +-78.4746 -39.269 41.3361 +-79.2134 -38.9159 40.9643 +-81.5875 -39.3469 41.4181 +-82.083 -38.855 40.9003 +-84.4789 -39.246 41.3119 +-85.4733 -38.9648 41.0159 +-88.1443 -39.425 41.5003 +-89.1465 -39.1157 41.1747 +-91.5892 -39.4179 41.4928 +-93.5346 -39.4777 41.5557 +-96.3456 -39.8718 41.9706 +-96.8471 -39.2912 41.3594 +-99.8527 -39.7063 41.7964 +-100.7 -39.2403 41.3058 +-104.779 -40.0026 42.1083 +-106.513 -39.8313 41.928 +-108.779 -39.8364 41.9333 +-110.699 -39.6899 41.7791 +-114.94 -40.3363 42.4596 +-116.52 -40.0128 42.119 +-122.775 -41.2432 43.4142 +-124.828 -41.0078 43.1664 +-128.877 -41.3911 43.5699 +-132.126 -41.4719 43.6549 +-135.479 -41.5445 43.7314 +-136.825 -40.9759 43.1328 +-138.076 -40.3673 42.4921 +-137.75 -39.2986 41.3672 +-136.945 -38.108 40.1139 +-14.6076 -3.9631 4.17171 +-49.4798 -13.0817 13.7703 +-44.4919 -11.4572 12.0603 +-42.3801 -10.624 11.1832 +-39.4967 -9.63316 10.1402 +-16.452 -3.90168 4.10706 +-15.5525 -3.5841 3.77276 +-15.8826 -3.55433 3.74143 +-15.1641 -3.29305 3.46639 +-15.6834 -3.30247 3.47631 +-15.3411 -3.12984 3.29459 +-14.4189 -2.84767 2.99756 +-14.8399 -2.83452 2.98372 +-14.0059 -2.58478 2.72084 +-13.07 -2.32805 2.4506 +-12.7109 -2.18276 2.29766 +-12.8353 -2.12236 2.23408 +-11.9848 -1.90569 2.00601 +-11.8132 -1.80377 1.89872 +-13.4006 -1.96182 2.06509 +-12.445 -1.74389 1.83568 +-11.8777 -1.59017 1.67388 +-13.4706 -1.71955 1.81006 +-13.6888 -1.66244 1.74994 +-13.3149 -1.53462 1.61541 +-13.5313 -1.47609 1.55379 +-13.1539 -1.35399 1.42526 +-13.4676 -1.30363 1.37225 +-13.7811 -1.2496 1.31538 +-14.2927 -1.2087 1.27232 +-13.8106 -1.08376 1.1408 +-13.8239 -1.00071 1.05339 +-13.3383 -0.884578 0.931142 +-13.0502 -0.78637 0.827764 +-13.1593 -0.713308 0.750855 +-11.5717 -0.557317 0.586653 +-11.3787 -0.479335 0.504567 +-10.8851 -0.392904 0.413586 +-10.6898 -0.321457 0.338378 +-11.7928 -0.283636 0.298566 +-10.5964 -0.191111 0.201171 +-10.1984 -0.122607 0.129061 +-10.4996 -0.0631089 0.0664309 +11.1 0 0 +10.4996 -0.0625069 0.0669976 +11.8982 -0.141677 0.151856 +11.3961 -0.203573 0.218199 +11.0932 -0.264264 0.28325 +12.0885 -0.36005 0.385917 +12.383 -0.44271 0.474516 +13.7743 -0.574714 0.616003 +14.3649 -0.68524 0.73447 +15.0535 -0.808196 0.866259 +16.5368 -0.986967 1.05787 +14.9309 -0.980759 1.05122 +16.1113 -1.15517 1.23816 +17.9837 -1.39777 1.49819 +21.2405 -1.77912 1.90694 +20.9195 -1.87878 2.01376 +32.1837 -3.08558 3.30725 +36.6925 -3.74087 4.00963 +43.7546 -4.72752 5.06716 +49.5115 -5.6521 6.05817 +56.2325 -6.764 7.24995 +65.7798 -8.31683 8.91434 +92.6656 -12.2876 13.1704 +94.5627 -13.1244 14.0673 +94.5869 -13.7152 14.7006 +94.6031 -14.3073 15.3352 +94.5139 -14.8853 15.9547 +94.6116 -15.4951 16.6083 +95.283 -16.2063 17.3706 +95.1689 -16.79 17.9963 +94.8539 -17.3382 18.5838 +94.9176 -17.9569 19.247 +95.5494 -18.6906 20.0334 +95.019 -19.2005 20.5799 +95.6305 -19.9449 21.3779 +95.3717 -20.5135 21.9872 +95.1057 -21.0804 22.5949 +95.6859 -21.8406 23.4097 +95.4028 -22.4094 24.0193 +95.1125 -22.9765 24.6272 +95.5667 -23.7284 25.4332 +96.1026 -24.5115 26.2725 +95.5986 -25.0338 26.8323 +96.2982 -25.877 27.736 +95.9635 -26.4492 28.3494 +96.3606 -27.2283 29.1845 +96.0087 -27.801 29.7983 +96.6581 -28.6707 30.7305 +95.1001 -28.8843 30.9594 +94.545 -29.3927 31.5044 +93.9841 -29.8967 32.0446 +94.3202 -30.6901 32.8949 +94.4633 -31.4298 33.6878 +93.5206 -31.8083 34.0936 +94.2685 -32.7665 35.1205 +93.757 -33.2949 35.6869 +93.8573 -34.0439 36.4897 +94.2092 -34.8943 37.4012 +93.9342 -35.52 38.0719 +93.4762 -36.0778 38.6698 +93.6173 -36.8717 39.5207 +94.1761 -37.843 40.5618 +92.2312 -37.805 40.521 +90.1241 -37.6753 40.3821 +89.3843 -38.102 40.8394 +86.7006 -37.6796 40.3867 +85.4605 -37.8599 40.5799 +83.8055 -37.8402 40.5587 +82.5721 -37.9943 40.7239 +81.094 -38.0207 40.7523 +80.8503 -38.6194 41.394 +78.0737 -37.99 40.7194 +77.8274 -38.5736 41.3449 +75.8841 -38.3051 41.0571 +74.6724 -38.3859 41.1437 +73.0678 -38.2476 40.9954 +71.8666 -38.3031 41.0549 +69.4173 -37.6678 40.374 +68.8551 -38.0367 40.7694 +67.903 -38.1848 40.9281 +66.9523 -38.3244 41.0778 +65.3189 -38.057 40.7912 +64.6031 -38.3102 41.0625 +63.6612 -38.4221 41.1824 +62.2012 -38.2061 40.951 +60.6779 -37.9298 40.6548 +60.1904 -38.2896 41.0404 +58.3926 -37.8011 40.5169 +57.9788 -38.1948 40.9388 +56.8461 -38.1081 40.8459 +55.6493 -37.9627 40.69 +54.6008 -37.9033 40.6264 +53.4192 -37.7361 40.4472 +52.2461 -37.5579 40.2562 +51.8319 -37.9174 40.6415 +50.1288 -37.3192 40.0003 +49.6495 -37.6161 40.3186 +48.6363 -37.5015 40.1958 +48.0891 -37.7382 40.4494 +47.085 -37.608 40.3099 +46.5378 -37.8346 40.5528 +45.4796 -37.6365 40.3405 +44.3671 -37.3757 40.0609 +43.2025 -37.0511 39.713 +43.2194 -37.7369 40.4481 +42.3089 -37.6139 40.3163 +41.6456 -37.7009 40.4095 +40.8643 -37.6732 40.3798 +39.8518 -37.4184 40.1066 +38.7329 -37.0432 39.7046 +38.7164 -37.7195 40.4294 +37.7227 -37.4425 40.1325 +37.1863 -37.6091 40.3111 +36.2623 -37.374 40.059 +36.2185 -38.0461 40.7795 +35.2469 -37.7425 40.454 +34.7097 -37.893 40.6154 +33.6489 -37.4583 40.1495 +33.22 -37.7157 40.4254 +32.2287 -37.3243 40.0058 +31.75 -37.5147 40.2099 +31.2197 -37.6429 40.3473 +30.7369 -37.8273 40.545 +29.9656 -37.6491 40.354 +29.4359 -37.7659 40.4791 +28.4899 -37.3346 40.0168 +28.4652 -38.1106 40.8486 +27.1734 -37.1797 39.8508 +27.0037 -37.7692 40.4827 +26.1751 -37.436 40.1255 +25.7797 -37.714 40.4235 +24.8816 -37.2453 39.9211 +24.4449 -37.4543 40.1452 +24.0047 -37.6609 40.3666 +23.522 -37.8024 40.5183 +22.6931 -37.3738 40.0589 +22.1767 -37.4442 40.1343 +21.4403 -37.1305 39.7981 +21.2154 -37.7026 40.4112 +20.4871 -37.3801 40.0656 +20.0082 -37.5006 40.1948 +19.2273 -37.0396 39.7006 +18.7853 -37.2171 39.8909 +18.3085 -37.3276 40.0093 +17.7994 -37.3703 40.0551 +17.3507 -37.5399 40.2369 +16.9576 -37.8374 40.5558 +16.2173 -37.3482 40.0315 +15.9318 -37.9024 40.6254 +15.2326 -37.4699 40.1618 +14.7527 -37.5592 40.2575 +14.0714 -37.1172 39.7838 +13.7895 -37.7291 40.4397 +13.213 -37.5444 40.2417 +12.7772 -37.7545 40.467 +12.099 -37.2297 39.9045 +11.6431 -37.3671 40.0517 +11.1646 -37.435 40.1245 +10.7235 -37.6339 40.3377 +10.1141 -37.2268 39.9013 +9.75903 -37.7559 40.4684 +9.27568 -37.8126 40.5292 +8.80726 -37.9338 40.659 +8.20342 -37.445 40.1351 +7.71019 -37.4248 40.1136 +7.2442 -37.5369 40.2337 +6.84906 -38.0526 40.7864 +6.28278 -37.6174 40.32 +5.79088 -37.5856 40.2858 +5.31944 -37.6865 40.3941 +4.82843 -37.6488 40.3536 +4.27602 -37.064 39.7269 +3.85753 -37.6325 40.3362 +3.32104 -37.0412 39.7024 +2.85231 -37.1277 39.7951 +2.40343 -37.5522 40.2501 +1.89853 -37.0879 39.7524 +1.44497 -37.6433 40.3477 +0.951156 -37.173 39.8436 +0.475596 -37.1772 39.8482 +3.34318e-15 -37.2469 39.9228 +-0.475596 -37.1772 39.8482 +-0.965118 -37.7187 40.4285 +-1.44759 -37.7115 40.4208 +-1.93343 -37.7696 40.4831 +-2.40343 -37.5522 40.2501 +-2.89941 -37.7408 40.4523 +-3.36988 -37.5859 40.2862 +-3.85753 -37.6325 40.3362 +-4.39371 -38.0842 40.8203 +-4.87201 -37.9886 40.7178 +-5.35778 -37.9581 40.6851 +-5.93722 -38.5354 41.3039 +-6.33938 -37.9563 40.6832 +-6.83687 -37.9848 40.7138 +-7.32252 -37.9428 40.6687 +-7.79369 -37.8301 40.548 +-8.27733 -37.7823 40.4967 +-8.66647 -37.3273 40.009 +-9.07762 -37.0052 39.6638 +-9.68957 -37.4872 40.1804 +-10.2052 -37.5622 40.2608 +-10.7044 -37.567 40.266 +-11.025 -36.967 39.6229 +-11.5391 -37.0335 39.6941 +-12.1639 -37.4296 40.1186 +-12.6647 -37.4222 40.1107 +-13.0963 -37.2128 39.8863 +-13.5718 -37.1334 39.8011 +-14.0213 -36.9851 39.6423 +-14.7786 -37.6251 40.3282 +-15.2326 -37.4699 40.1618 +-15.7389 -37.4433 40.1334 +-16.2173 -37.3482 40.0315 +-16.9576 -37.8374 40.5558 +-17.4409 -37.735 40.446 +-17.9848 -37.7595 40.4723 +-18.4989 -37.7157 40.4254 +-18.9481 -37.5397 40.2366 +-19.4609 -37.4897 40.1831 +-20.2818 -38.0135 40.7445 +-20.7673 -37.8913 40.6136 +-21.2512 -37.7662 40.4795 +-21.6602 -37.5113 40.2063 +-22.5139 -38.0134 40.7444 +-23.0758 -38.004 40.7344 +-23.522 -37.8024 40.5183 +-23.9648 -37.5984 40.2996 +-24.8516 -38.0775 40.8131 +-25.3378 -37.9281 40.653 +-25.8642 -37.8376 40.556 +-26.3042 -37.6207 40.3235 +-27.2228 -38.0758 40.8113 +-27.7535 -37.9733 40.7015 +-28.1928 -37.7459 40.4577 +-29.0902 -38.1212 40.86 +-29.5767 -37.9466 40.6728 +-30.0133 -37.7091 40.4183 +-30.8824 -38.0063 40.7368 +-31.3181 -37.7616 40.4746 +-32.4 -38.2827 41.033 +-32.8885 -38.0884 40.8248 +-33.838 -38.4174 41.1775 +-34.2759 -38.1563 40.8976 +-35.6106 -38.8765 41.6695 +-36.1603 -38.7205 41.5023 +-36.7631 -38.6182 41.3927 +-37.2557 -38.3979 41.1565 +-38.2488 -38.6837 41.4628 +-38.1758 -37.8923 40.6146 +-39.6341 -38.6135 41.3877 +-39.662 -37.9318 40.657 +-41.145 -38.6325 41.408 +-41.6971 -38.4409 41.2027 +-42.789 -38.7361 41.519 +-43.2221 -38.4257 41.1864 +-44.3276 -38.7045 41.4852 +-44.7588 -38.3858 41.1435 +-45.9404 -38.7011 41.4815 +-46.4973 -38.4787 41.2432 +-47.502 -38.6185 41.393 +-47.9942 -38.3343 41.0883 +-49.0732 -38.5105 41.2772 +-49.4977 -38.1658 40.9077 +-51.1885 -38.7822 41.5684 +-51.6827 -38.4759 41.2402 +-53.5369 -39.1647 41.9784 +-53.4163 -38.3991 41.1579 +-55.2253 -39.012 41.8148 +-55.7924 -38.7304 41.5129 +-57.0635 -38.9274 41.7241 +-57.9873 -38.8731 41.6659 +-58.6981 -38.6686 41.4467 +-59.4082 -38.4585 41.2215 +-61.2143 -38.9409 41.7386 +-61.9313 -38.7133 41.4946 +-62.9444 -38.6627 41.4403 +-64.3353 -38.8289 41.6185 +-65.6597 -38.9367 41.734 +-66.6116 -38.8101 41.5984 +-68.1014 -38.9822 41.7828 +-68.9832 -38.7923 41.5792 +-71.2643 -39.3676 42.1959 +-71.7652 -38.9418 41.7395 +-73.4426 -39.143 41.9552 +-74.6545 -39.0782 41.8857 +-76.3496 -39.248 42.0677 +-77.4918 -39.1166 41.9269 +-79.4455 -39.3756 42.2045 +-80.3532 -39.0993 41.9083 +-82.079 -39.2064 42.0231 +-83.484 -39.1413 41.9533 +-86.137 -39.6346 42.482 +-87.1411 -39.3462 42.173 +-89.0668 -39.4576 42.2924 +-90.6646 -39.4023 42.2331 +-93.1157 -39.6925 42.5442 +-95.0694 -39.7427 42.5979 +-97.1171 -39.8076 42.6675 +-98.915 -39.7473 42.6029 +-100.979 -39.7709 42.6282 +-103.05 -39.7729 42.6303 +-106.179 -40.1501 43.0347 +-107.743 -39.9072 42.7742 +-111.075 -40.289 43.1835 +-112.828 -40.0673 42.9458 +-116.811 -40.6019 43.5189 +-120.279 -40.9095 43.8486 +-124.573 -41.4478 44.4256 +-126.723 -41.2334 44.1957 +-130.508 -41.5152 44.4978 +-133.582 -41.5289 44.5125 +-136.301 -41.398 44.3722 +-137.284 -40.721 43.6465 +-137.8 -39.9022 42.7689 +-137.843 -38.9499 41.7481 +-136.667 -37.6678 40.374 +-15.8171 -4.25032 4.55568 +-14.7506 -3.86263 4.14013 +-45.2413 -11.539 12.368 +-42.2862 -10.4993 11.2536 +-40.2508 -9.72348 10.422 +-15.9793 -3.75341 4.02306 +-15.5525 -3.54991 3.80495 +-15.5973 -3.45719 3.70557 +-16.4993 -3.54883 3.80379 +-15.6834 -3.27097 3.50597 +-16.0123 -3.23561 3.46806 +-15.3802 -3.00854 3.22468 +-13.9726 -2.64341 2.83332 +-15.165 -2.772 2.97115 +-13.1668 -2.32293 2.48982 +-14.5544 -2.4755 2.65335 +-13.2242 -2.16582 2.32142 +-11.4976 -1.81078 1.94088 +-11.4227 -1.7275 1.85161 +-13.3028 -1.92892 2.0675 +-13.7189 -1.90406 2.04085 +-13.0556 -1.7312 1.85558 +-13.1756 -1.66585 1.78553 +-13.9843 -1.68211 1.80296 +-14.4984 -1.6551 1.77401 +-13.8276 -1.49402 1.60136 +-13.4506 -1.37132 1.46984 +-13.4676 -1.29119 1.38395 +-13.2854 -1.19316 1.27888 +-13.5979 -1.13897 1.2208 +-13.5126 -1.05025 1.12571 +-13.5255 -0.969776 1.03945 +-13.5374 -0.889218 0.953102 +-13.8471 -0.82643 0.885804 +-12.3618 -0.663685 0.711367 +-12.27 -0.585311 0.627362 +-12.1772 -0.50808 0.544582 +-11.7838 -0.421288 0.451555 +-11.6889 -0.348147 0.373159 +-10.2937 -0.245219 0.262836 +-11.0962 -0.198216 0.212457 +-10.5984 -0.1262 0.135267 +-10.4996 -0.0625069 0.0669976 +10.5 0 0 +11.0996 -0.065437 0.0714194 +11.0983 -0.130869 0.142834 +10.7963 -0.190986 0.208446 +11.493 -0.271129 0.295916 +11.9886 -0.353606 0.385934 +12.6826 -0.449017 0.490067 +14.5728 -0.602125 0.657173 +20.3503 -0.96133 1.04922 +14.6547 -0.779147 0.85038 +21.2189 -1.25411 1.36876 +16.7227 -1.08778 1.18723 +18.1003 -1.28518 1.40268 +19.474 -1.4989 1.63593 +22.3323 -1.8524 2.02176 +20.6221 -1.83408 2.00176 +34.2633 -3.25304 3.55045 +38.4727 -3.88428 4.23939 +43.9521 -4.70274 5.13268 +50.8923 -5.75331 6.27929 +56.7249 -6.75693 7.37468 +68.4345 -8.56843 9.35178 +92.6656 -12.1683 13.2808 +94.6607 -13.0104 14.1998 +94.4891 -13.568 14.8084 +94.5055 -14.1538 15.4477 +94.7088 -14.7711 16.1215 +94.6116 -15.3446 16.7475 +95.283 -16.0489 17.5161 +95.1689 -16.6269 18.147 +95.7232 -17.3272 18.9113 +95.5921 -17.9089 19.5462 +95.3572 -18.4717 20.1605 +95.1149 -19.0332 20.7733 +95.6305 -19.7512 21.557 +95.3717 -20.3142 22.1714 +95.9616 -21.0636 22.9893 +95.6859 -21.6285 23.6058 +95.4028 -22.1917 24.2206 +95.1125 -22.7533 24.8335 +95.5667 -23.498 25.6462 +95.9152 -24.2261 26.4409 +95.5986 -24.7907 27.0571 +96.2982 -25.6256 27.9684 +95.8708 -26.167 28.5593 +96.453 -26.9898 29.4573 +96.1007 -27.5573 30.0767 +95.7411 -28.1228 30.6939 +96.5618 -29.0434 31.6986 +93.726 -28.8551 31.4931 +94.1654 -29.6635 32.3754 +94.1396 -30.3338 33.107 +94.1037 -31.0061 33.8408 +93.4311 -31.4693 34.3463 +94.2685 -32.4482 35.4148 +93.757 -32.9715 35.9859 +93.8573 -33.7133 36.7954 +94.2092 -34.5554 37.7146 +93.5843 -35.044 38.2478 +94.2595 -36.0268 39.3205 +94.137 -36.7162 40.0729 +94.3484 -37.5441 40.9765 +94.3741 -38.3076 41.8098 +91.3178 -37.8036 41.2597 +90.0627 -38.0183 41.494 +88.1344 -37.9307 41.3985 +86.2153 -37.8234 41.2813 +85.2231 -38.1065 41.5903 +84.0644 -38.3053 41.8073 +81.4237 -37.8045 41.2607 +80.6046 -38.1281 41.6139 +79.2949 -38.2095 41.7028 +78.3128 -38.4373 41.9513 +77.0899 -38.5358 42.0589 +76.11 -38.7449 42.2871 +73.9405 -38.3285 41.8326 +72.8122 -38.4302 41.9436 +70.2 -37.7225 41.1712 +69.6323 -38.0924 41.5749 +67.903 -37.8139 41.271 +67.1821 -38.0825 41.5642 +65.547 -37.819 41.2765 +65.2824 -38.3369 41.8418 +63.8859 -38.1832 41.674 +63.1673 -38.4227 41.9355 +61.3415 -37.9721 41.4437 +60.7755 -38.2863 41.7865 +59.0455 -37.8526 41.3132 +58.5543 -38.1992 41.6915 +57.488 -38.1641 41.6532 +56.4271 -38.1194 41.6044 +55.2317 -37.9688 41.44 +54.1834 -37.9042 41.3695 +52.8656 -37.6342 41.0748 +52.4457 -37.9938 41.4673 +50.7368 -37.405 40.8246 +50.2517 -37.7027 41.1496 +49.1664 -37.5421 40.9743 +48.6796 -37.8306 41.2891 +47.6045 -37.6538 41.0962 +46.5378 -37.4672 40.8925 +45.9885 -37.688 41.1336 +44.9964 -37.5376 40.9694 +44.572 -37.8543 41.3151 +43.3426 -37.4769 40.9032 +42.4915 -37.4094 40.8295 +42.3076 -37.9282 41.3958 +40.8048 -37.253 40.6588 +40.3808 -37.5468 40.9795 +39.7782 -37.6734 41.1176 +39.3473 -37.9618 41.4324 +38.1758 -37.5243 40.9548 +37.6337 -37.6919 41.1378 +36.7038 -37.4616 40.8865 +36.6542 -38.1298 41.6158 +35.6767 -37.8317 41.2904 +35.1866 -38.0406 41.5184 +34.1714 -37.6706 41.1145 +33.6835 -37.8705 41.3328 +32.7362 -37.5438 40.9762 +32.25 -37.7354 41.1853 +31.8106 -37.9829 41.4554 +30.7369 -37.4599 40.8847 +29.9179 -37.2241 40.6273 +29.4828 -37.4587 40.8833 +28.5361 -37.0319 40.4175 +28.4652 -37.7404 41.1908 +27.5304 -37.3023 40.7126 +27.0475 -37.4631 40.8881 +26.5625 -37.6211 41.0606 +26.0755 -37.7763 41.2299 +25.2548 -37.4368 40.8594 +24.8109 -37.646 41.0877 +24.0446 -37.3571 40.7724 +23.4829 -37.3731 40.7898 +23.0758 -37.6349 41.0756 +22.5513 -37.7069 41.1542 +21.8068 -37.3984 40.8175 +21.2512 -37.3994 40.8186 +20.4521 -36.9538 40.3323 +20.2818 -37.6443 41.0859 +19.4609 -37.1256 40.5198 +19.3062 -37.8777 41.3406 +18.5623 -37.4775 40.9038 +18.0775 -37.5855 41.0217 +17.4109 -37.3041 40.7146 +16.9868 -37.5345 40.9661 +16.6149 -37.8924 41.3566 +16.0421 -37.794 41.2493 +15.4197 -37.5617 40.9957 +14.9597 -37.7164 41.1645 +14.2717 -37.2799 40.6882 +13.8137 -37.4282 40.85 +13.3064 -37.4425 40.8656 +12.7997 -37.4537 40.8779 +12.402 -37.7916 41.2466 +11.9757 -38.0615 41.5412 +11.344 -37.6672 41.1109 +10.8761 -37.7989 41.2546 +10.2416 -37.3302 40.7431 +9.89795 -37.9214 41.3883 +9.40771 -37.9784 41.4505 +8.8229 -37.632 41.0724 +8.20342 -37.0813 40.4714 +7.83545 -37.6634 41.1067 +7.33557 -37.6412 41.0825 +6.83687 -37.6159 41.0549 +6.37334 -37.7891 41.2439 +5.89541 -37.8924 41.3566 +5.31944 -37.3205 40.7325 +4.83714 -37.3504 40.7651 +4.34663 -37.3102 40.7212 +3.92031 -37.8735 41.336 +3.38209 -37.3558 40.771 +2.88894 -37.2394 40.6439 +2.40779 -37.255 40.661 +1.93343 -37.4028 40.8223 +1.4502 -37.4127 40.8331 +0.966863 -37.4199 40.8409 +0.48345 -37.4241 40.8456 +3.39216e-15 -37.4256 40.8471 +-0.484323 -37.4917 40.9193 +-0.980825 -37.9602 41.4306 +-1.44759 -37.3452 40.7595 +-1.93343 -37.4028 40.8223 +-2.42088 -37.4574 40.8819 +-2.94651 -37.9814 41.4538 +-3.42482 -37.8278 41.2861 +-3.91334 -37.8061 41.2625 +-4.40156 -37.7816 41.2358 +-4.95045 -38.2253 41.72 +-5.35778 -37.5894 41.026 +-5.93722 -38.1611 41.6499 +-6.32806 -37.5206 40.9509 +-6.83687 -37.6159 41.0549 +-7.32252 -37.5742 41.0094 +-7.80761 -37.5296 40.9607 +-8.27733 -37.4154 40.836 +-8.69776 -37.0983 40.4899 +-9.07762 -36.6458 39.996 +-9.86322 -37.7884 41.2431 +-10.2416 -37.3302 40.7431 +-10.7425 -37.3348 40.748 +-11.2244 -37.27 40.6774 +-11.7054 -37.2024 40.6036 +-12.3371 -37.5937 41.0306 +-12.6422 -36.9929 40.3749 +-13.1196 -36.917 40.2921 +-13.8137 -37.4282 40.85 +-14.2717 -37.2799 40.6882 +-14.9597 -37.7164 41.1645 +-15.4464 -37.6267 41.0667 +-15.987 -37.6642 41.1075 +-16.4729 -37.5684 41.0031 +-16.9868 -37.5345 40.9661 +-17.471 -37.433 40.8552 +-18.2629 -37.971 41.4424 +-18.5306 -37.4135 40.8339 +-19.2411 -37.7499 41.2011 +-19.8281 -37.8261 41.2843 +-20.2818 -37.6443 41.0859 +-20.6973 -37.3967 40.8156 +-21.5379 -37.904 41.3693 +-22.0267 -37.7756 41.2291 +-22.851 -38.208 41.7011 +-23.3054 -38.0094 41.4844 +-23.7955 -37.8705 41.3328 +-24.6826 -38.3484 41.8543 +-25.2583 -38.3249 41.8286 +-25.628 -37.9901 41.4632 +-26.1601 -37.8988 41.3636 +-26.7347 -37.865 41.3267 +-27.2228 -37.706 41.1532 +-27.7535 -37.6045 41.0424 +-28.6922 -38.0414 41.5193 +-29.0902 -37.751 41.2023 +-30.1401 -38.2938 41.7947 +-30.395 -37.8179 41.2753 +-31.4157 -38.2872 41.7875 +-31.909 -38.1004 41.5837 +-32.9 -38.496 42.0154 +-32.8885 -37.7185 41.1668 +-34.3015 -38.5654 42.0912 +-34.6939 -38.2466 41.7432 +-35.7696 -38.6707 42.2061 +-36.3752 -38.5724 42.0988 +-36.7087 -38.1865 41.6776 +-37.7525 -38.532 42.0547 +-38.6961 -38.756 42.2992 +-39.1387 -38.4707 41.9878 +-39.6341 -38.2385 41.7344 +-40.1846 -38.0584 41.5378 +-41.145 -38.2573 41.7549 +-41.6971 -38.0676 41.5479 +-43.2705 -38.7915 42.3379 +-43.2829 -38.1061 41.5899 +-44.3892 -38.3819 41.8909 +-45.3813 -38.5416 42.0652 +-46.4438 -38.7452 42.2874 +-46.4337 -38.0529 41.5318 +-48.0805 -38.7092 42.2481 +-48.5787 -38.4243 41.9372 +-49.6637 -38.5953 42.1238 +-50.7567 -38.7564 42.2996 +-51.9914 -39.008 42.5742 +-52.4934 -38.6999 42.238 +-53.3323 -38.6361 42.1683 +-54.5177 -38.8102 42.3584 +-55.6421 -38.9247 42.4833 +-56.3531 -38.7397 42.2814 +-57.6999 -38.9793 42.5429 +-58.4152 -38.7797 42.3251 +-59.1297 -38.5746 42.1012 +-60.2786 -38.6431 42.176 +-61.7263 -38.8852 42.4402 +-62.0788 -38.4286 41.9418 +-64.282 -39.1008 42.6755 +-65.1591 -38.9441 42.5045 +-66.339 -38.9574 42.5191 +-67.524 -38.9597 42.5216 +-69.327 -39.2984 42.8912 +-70.1407 -39.0601 42.6311 +-71.2643 -38.9852 42.5494 +-72.2347 -38.8159 42.3646 +-74.1518 -39.1372 42.7153 +-74.8926 -38.822 42.3712 +-76.9885 -39.1921 42.7752 +-78.6976 -39.3395 42.9361 +-79.85 -39.1917 42.7748 +-81.8186 -39.4256 43.03 +-83.4716 -39.4842 43.094 +-84.7202 -39.3351 42.9312 +-86.137 -39.2496 42.8379 +-88.3085 -39.4861 43.096 +-90.1571 -39.5527 43.1687 +-92.6044 -39.8545 43.4981 +-94.3029 -39.8082 43.4476 +-95.581 -39.5685 43.186 +-98.66 -40.0473 43.7086 +-100.724 -40.0813 43.7456 +-102.191 -39.8575 43.5014 +-104.269 -39.8523 43.4958 +-106.791 -39.9895 43.6454 +-109.325 -40.0997 43.7658 +-112.134 -40.2783 43.9607 +-114.424 -40.2396 43.9185 +-118.147 -40.6676 44.3856 +-121.89 -41.0547 44.808 +-126.191 -41.5784 45.3796 +-128.348 -41.3564 45.1373 +-132.14 -41.6259 45.4315 +-134.674 -41.4617 45.2523 +-137.58 -41.3806 45.1637 +-138.568 -40.7027 44.4238 +-137.984 -39.5675 43.1848 +-137.935 -38.5974 42.1261 +-136.76 -37.3273 40.7398 +-14.2354 -3.78814 4.13446 +-47.6126 -12.3469 13.4757 +-45.6159 -11.5216 12.5749 +-42.85 -10.536 11.4992 +-40.2508 -9.62904 10.5094 +-15.2228 -3.54101 3.86474 +-15.6473 -3.53687 3.86022 +-16.0729 -3.52799 3.85053 +-16.1178 -3.43311 3.74697 +-15.6834 -3.2392 3.53534 +-15.7246 -3.14662 3.43429 +-15.7647 -3.0538 3.33299 +-14.1654 -2.65384 2.89646 +-14.2957 -2.58771 2.82429 +-14.0381 -2.4526 2.67682 +-12.4198 -2.09191 2.28316 +-3185.78 -516.687 563.924 +-12.7642 -1.99076 2.17276 +-13.3753 -2.00316 2.18629 +-13.0094 -1.86806 2.03884 +-13.7189 -1.88557 2.05795 +-13.7428 -1.80462 1.96961 +-12.8806 -1.61274 1.76018 +-12.8025 -1.52501 1.66443 +-13.6107 -1.53868 1.67935 +-14.1239 -1.51122 1.64938 +-13.5495 -1.36799 1.49305 +-14.3589 -1.36327 1.4879 +-13.4837 -1.19921 1.30885 +-14.6897 -1.21847 1.32987 +-13.5126 -1.04005 1.13514 +-13.5255 -0.960357 1.04816 +-14.0351 -0.912961 0.996426 +-14.4448 -0.853735 0.931786 +-13.9568 -0.742046 0.809886 +-12.3698 -0.584339 0.637761 +-12.2771 -0.50727 0.553646 +-11.2845 -0.399519 0.436044 +-10.2902 -0.303512 0.33126 +-10.4936 -0.247553 0.270185 +-10.4964 -0.185681 0.202656 +-10.2984 -0.121437 0.132539 +-10.1996 -0.0601313 0.0656287 +10.2 0 0 +10.5996 -0.0618715 0.0687635 +11.8982 -0.138914 0.154388 +11.0962 -0.19435 0.215999 +11.493 -0.268447 0.29835 +12.8877 -0.376367 0.418292 +13.5814 -0.476082 0.529114 +17.3675 -0.710502 0.789646 +18.6544 -0.872509 0.9697 +23.0288 -1.21227 1.34731 +23.5102 -1.37579 1.52904 +19.8084 -1.27576 1.41787 +19.9899 -1.40531 1.56185 +20.5669 -1.56737 1.74197 +20.9427 -1.71996 1.91155 +21.9109 -1.92945 2.14437 +33.5701 -3.15571 3.50724 +39.0661 -3.90518 4.34019 +45.0386 -4.77133 5.30282 +51.2869 -5.74057 6.38003 +56.4295 -6.65529 7.39664 +71.9743 -8.92247 9.91637 +93.6472 -12.1756 13.5319 +94.6607 -12.8817 14.3166 +94.5869 -13.4477 14.9457 +94.6031 -14.0282 15.5909 +94.8062 -14.6401 16.2708 +94.7088 -15.2085 16.9026 +95.3801 -15.9064 17.6782 +95.3625 -16.496 18.3335 +94.8539 -17 18.8937 +94.7249 -17.5709 19.5282 +95.3572 -18.2891 20.3263 +95.1149 -18.845 20.9442 +94.7698 -19.3799 21.5386 +95.3717 -20.1134 22.3538 +95.1057 -20.6693 22.9717 +95.7807 -21.4358 23.8236 +95.4028 -21.9723 24.4198 +95.8666 -22.707 25.2364 +95.3788 -23.2199 25.8064 +95.2596 -23.8226 26.4762 +95.5986 -24.5455 27.2797 +96.2982 -25.3722 28.1985 +95.9635 -25.9333 28.8221 +95.6215 -26.4924 29.4435 +96.1007 -27.2848 30.3241 +95.7411 -27.8447 30.9464 +96.0136 -28.5929 31.7779 +94.909 -28.9303 32.153 +94.256 -29.3984 32.6732 +94.2299 -30.0627 33.4114 +94.1037 -30.6995 34.1192 +93.6996 -31.2476 34.7283 +94.1794 -32.097 35.6723 +93.6683 -32.6146 36.2476 +93.9456 -33.4113 37.1331 +94.1213 -34.1818 37.9894 +93.5843 -34.6974 38.5625 +93.9984 -35.5717 39.5341 +93.4441 -36.0856 40.1053 +93.1421 -36.6975 40.7854 +94.117 -37.8255 42.0389 +91.8293 -37.6395 41.8322 +90.3171 -37.7487 41.9536 +88.8935 -37.8791 42.0986 +86.8863 -37.7408 41.9448 +85.2231 -37.7297 41.9325 +84.0644 -37.9265 42.1512 +82.495 -37.9232 42.1475 +81.3418 -38.0963 42.3399 +79.6205 -37.987 42.2185 +78.3128 -38.0572 42.2964 +77.0899 -38.1548 42.4049 +75.8704 -38.241 42.5007 +74.8926 -38.4381 42.7198 +73.285 -38.2972 42.5632 +72.0782 -38.3488 42.6206 +69.6323 -37.7157 41.9169 +68.5203 -37.7803 41.9888 +67.1821 -37.7059 41.9061 +66.2314 -37.836 42.0506 +65.2824 -37.9578 42.1861 +64.1106 -37.9386 42.1646 +62.9444 -37.9085 42.1313 +61.9313 -37.9582 42.1864 +60.8486 -37.9533 42.181 +59.6983 -37.8926 42.1136 +58.5543 -37.8215 42.0345 +58.1299 -38.2087 42.4648 +56.4271 -37.7425 41.9467 +55.8625 -38.0227 42.2582 +54.1139 -37.4813 41.6564 +53.6917 -37.8442 42.0598 +52.3775 -37.5692 41.7541 +50.6693 -36.9858 41.1057 +50.3186 -37.3795 41.5433 +49.1664 -37.1708 41.3114 +48.614 -37.406 41.5727 +47.6695 -37.3322 41.4908 +47.1806 -37.6091 41.7985 +45.9885 -37.3153 41.472 +44.9964 -37.1664 41.3065 +44.5098 -37.4277 41.5969 +43.2194 -37.0009 41.1225 +42.6742 -37.1987 41.3423 +41.766 -37.0724 41.202 +41.2212 -37.261 41.4116 +40.3808 -37.1755 41.3166 +39.7782 -37.3009 41.4559 +39.29 -37.5316 41.7124 +38.1758 -37.1532 41.2918 +37.6896 -37.3746 41.5378 +37.1454 -37.5374 41.7188 +36.164 -37.2479 41.397 +35.6767 -37.4576 41.6301 +35.1866 -37.6644 41.8599 +34.2237 -37.355 41.5161 +33.735 -37.5534 41.7366 +33.193 -37.6912 41.8897 +32.25 -37.3622 41.5241 +31.7613 -37.549 41.7317 +30.7854 -37.148 41.286 +30.2996 -37.3263 41.4842 +29.4828 -37.0883 41.2197 +28.9516 -37.1997 41.3434 +28.4652 -37.3672 41.5296 +27.9766 -37.532 41.7127 +27.442 -37.6337 41.8258 +26.6056 -37.3095 41.4655 +26.0333 -37.3421 41.5018 +25.2548 -37.0666 41.1955 +24.7703 -37.2126 41.3578 +24.3237 -37.4171 41.5851 +23.4829 -37.0035 41.1254 +23.3437 -37.6954 41.8944 +22.5888 -37.3961 41.5617 +22.1 -37.5265 41.7066 +21.2871 -37.092 41.2238 +20.7673 -37.1522 41.2907 +20.2818 -37.272 41.4239 +19.8281 -37.452 41.6239 +19.0457 -36.9971 41.1183 +18.5306 -37.0435 41.1699 +18.0466 -37.1502 41.2885 +17.6214 -37.3817 41.5458 +16.9868 -37.1634 41.3031 +16.6149 -37.5177 41.6968 +16.0145 -37.356 41.5172 +15.4464 -37.2547 41.4045 +14.9597 -37.3434 41.5032 +14.472 -37.4293 41.5986 +13.7895 -36.9932 41.114 +13.283 -37.0072 41.1295 +12.7772 -37.0181 41.1417 +12.3587 -37.2872 41.4407 +11.9757 -37.6851 41.8829 +11.5035 -37.8191 42.0319 +10.8761 -37.4251 41.594 +10.4056 -37.553 41.7362 +9.91531 -37.6123 41.802 +9.27568 -37.0751 41.2049 +8.8229 -37.2599 41.4103 +8.33645 -37.31 41.466 +7.83545 -37.291 41.4449 +7.34862 -37.3353 41.4941 +6.84906 -37.3104 41.4665 +6.36202 -37.3489 41.5093 +5.88495 -37.4512 41.6229 +5.39612 -37.4841 41.6595 +4.91558 -37.5808 41.767 +4.4094 -37.4747 41.6491 +3.91334 -37.4322 41.6019 +3.43093 -37.5205 41.7 +2.88894 -36.8711 40.9783 +2.40779 -36.8866 40.9955 +1.92645 -36.8992 41.0095 +1.45282 -37.1096 41.2434 +0.952901 -36.5148 40.5823 +0.48345 -37.0541 41.1816 +3.38604e-15 -36.9886 41.1088 +-0.492177 -37.7229 41.925 +-0.965118 -36.983 41.1026 +-1.46853 -37.5108 41.6893 +-1.96484 -37.6345 41.8267 +-2.44705 -37.488 41.6638 +-2.94651 -37.6058 41.7948 +-3.41872 -37.3869 41.5515 +-3.92031 -37.499 41.6761 +-4.46432 -37.9414 42.1678 +-4.95045 -37.8473 42.0632 +-5.44404 -37.817 42.0295 +-5.93722 -37.7837 41.9926 +-6.44126 -37.8141 42.0263 +-6.84906 -37.3104 41.4665 +-7.32252 -37.2027 41.3468 +-7.80761 -37.1585 41.2976 +-8.29211 -37.1115 41.2455 +-8.83855 -37.326 41.4838 +-9.22616 -36.8771 40.985 +-9.7243 -36.8877 40.9967 +-10.2234 -36.8953 41.0052 +-10.7425 -36.9656 41.0833 +-11.3839 -37.4258 41.5948 +-11.7054 -36.8345 40.9376 +-12.1856 -36.7648 40.8602 +-12.6872 -36.7575 40.852 +-13.3297 -37.1373 41.2741 +-13.8137 -37.0581 41.1861 +-14.2967 -36.976 41.0948 +-14.9597 -37.3434 41.5032 +-15.4731 -37.3191 41.4762 +-15.987 -37.2917 41.4457 +-16.4729 -37.1969 41.3404 +-16.9576 -37.0994 41.232 +-17.7416 -37.6369 41.8294 +-18.2629 -37.5955 41.7834 +-18.8162 -37.6144 41.8043 +-19.2411 -37.3766 41.5401 +-19.728 -37.2629 41.4137 +-20.316 -37.3348 41.4937 +-21.1175 -37.7787 41.987 +-21.5738 -37.5916 41.779 +-22.0267 -37.402 41.5683 +-22.5513 -37.334 41.4928 +-23.6498 -38.1897 42.4438 +-23.8346 -37.5577 41.7413 +-24.6826 -37.9691 42.1986 +-24.8923 -37.3959 41.5615 +-25.6695 -37.6752 41.872 +-26.2446 -37.6452 41.8386 +-26.6917 -37.4302 41.5997 +-27.2667 -37.3932 41.5586 +-28.1551 -37.7714 41.9789 +-28.6468 -37.6056 41.7946 +-29.1363 -37.437 41.6072 +-30.1401 -37.9151 42.1386 +-30.9676 -38.1492 42.3987 +-31.4157 -37.9085 42.1313 +-32.4015 -38.3058 42.5728 +-32.4 -37.536 41.7172 +-33.3453 -37.8641 42.0819 +-34.3015 -38.184 42.4375 +-35.1119 -38.3246 42.5936 +-35.7696 -38.2883 42.5534 +-35.9453 -37.7397 41.9436 +-36.7087 -37.8089 42.0205 +-37.6973 -38.0952 42.3387 +-38.6961 -38.3727 42.6472 +-39.1953 -38.1454 42.3945 +-39.6915 -37.9152 42.1386 +-40.7073 -38.1721 42.4242 +-41.145 -37.879 42.0984 +-41.7566 -37.7449 41.9494 +-43.3307 -38.4613 42.7456 +-43.8308 -38.2069 42.4628 +-44.3276 -37.9496 42.1769 +-45.4436 -38.2129 42.4695 +-46.4438 -38.362 42.6353 +-46.9426 -38.0895 42.3323 +-48.1448 -38.3776 42.6526 +-49.2282 -38.5529 42.8474 +-49.6637 -38.2136 42.4703 +-50.6904 -38.323 42.5919 +-51.9914 -38.6222 42.9245 +-53.0338 -38.7118 43.024 +-53.5369 -38.4008 42.6783 +-54.3112 -38.2808 42.545 +-55.6421 -38.5398 42.8328 +-56.5634 -38.4998 42.7883 +-57.912 -38.7357 43.0505 +-58.8432 -38.6775 42.9859 +-59.7771 -38.6113 42.9123 +-60.7864 -38.5832 42.8811 +-61.7263 -38.5007 42.7894 +-62.8898 -38.5456 42.8393 +-64.282 -38.7141 43.0266 +-65.4587 -38.7363 43.0513 +-66.339 -38.5722 42.8688 +-67.524 -38.5745 42.8714 +-69.327 -38.9098 43.244 +-70.1407 -38.6738 42.9818 +-71.2643 -38.5997 42.8994 +-73.1739 -38.9317 43.2684 +-74.861 -39.1208 43.4786 +-75.3686 -38.6824 42.9913 +-76.9885 -38.8046 43.1271 +-78.6976 -38.9505 43.2893 +-80.5781 -39.158 43.5199 +-81.5744 -38.9192 43.2545 +-84.2088 -39.4391 43.8323 +-85.3795 -39.2492 43.6212 +-87.1318 -39.3104 43.6892 +-88.3085 -39.0956 43.4505 +-90.9119 -39.4894 43.8882 +-92.6044 -39.4604 43.856 +-94.3029 -39.4146 43.8051 +-95.8368 -39.282 43.6577 +-98.4028 -39.5479 43.9533 +-100.466 -39.5831 43.9924 +-101.758 -39.2962 43.6735 +-104.269 -39.4582 43.8536 +-106.791 -39.594 44.0045 +-109.325 -39.7032 44.1258 +-112.134 -39.88 44.3224 +-115.223 -40.1196 44.5887 +-118.593 -40.4173 44.9195 +-122.964 -41.0069 45.5747 +-126.191 -41.1672 45.7529 +-129.431 -41.293 45.8927 +-133.046 -41.497 46.1195 +-134.947 -41.1349 45.717 +-137.489 -40.9442 45.5051 +-137.467 -39.9801 44.4336 +-137.984 -39.1762 43.5401 +-137.75 -38.1645 42.4158 +-136.852 -36.9832 41.1028 +-13.6771 -3.60359 4.005 +-15.7775 -4.05096 4.50221 +-44.6793 -11.1734 12.4181 +-41.2525 -10.0429 11.1616 +-15.2708 -3.61703 4.01994 +-15.2228 -3.50599 3.89653 +-16.406 -3.67168 4.08068 +-16.3582 -3.55511 3.95112 +-16.1178 -3.39916 3.7778 +-15.9703 -3.26584 3.62963 +-15.1494 -3.00152 3.33587 +-15.1879 -2.91298 3.23746 +-15.3217 -2.84209 3.15868 +-14.4889 -2.59675 2.88601 +-14.4254 -2.49533 2.77329 +-12.4198 -2.07123 2.30195 +-11.8629 -1.90497 2.11716 +-3192.33 -492.963 547.875 +-11.6179 -1.72276 1.91467 +-13.205 -1.87739 2.08652 +-13.033 -1.77357 1.97113 +-12.8593 -1.67191 1.85815 +-13.7656 -1.70649 1.89658 +-13.4919 -1.59123 1.76848 +-13.6107 -1.52346 1.69316 +-14.1239 -1.49627 1.66294 +-13.4506 -1.34457 1.49435 +-13.1706 -1.23808 1.37599 +-14.376 -1.26593 1.40694 +-14.2927 -1.17382 1.30457 +-12.8171 -0.976766 1.08557 +-13.8239 -0.971836 1.08009 +-14.4332 -0.92957 1.03312 +-13.8471 -0.810311 0.900573 +-12.4615 -0.655988 0.72906 +-12.3698 -0.57856 0.643007 +-11.3787 -0.465503 0.517356 +-10.9849 -0.385066 0.42796 +-10.5899 -0.309263 0.343713 +-10.2937 -0.240436 0.267219 +-10.0965 -0.176841 0.19654 +-11.0983 -0.129575 0.144009 +-10.1996 -0.0595367 0.0661686 +11.4 0 0 +10.5996 -0.0612485 0.0693189 +10.5984 -0.122493 0.138633 +10.7963 -0.187193 0.211859 +11.8928 -0.274988 0.311222 +12.588 -0.363913 0.411864 +13.5814 -0.471288 0.533388 +20.0625 -0.812494 0.919553 +24.1411 -1.11776 1.26504 +20.6362 -1.07538 1.21707 +26.7976 -1.55237 1.75692 +18.1162 -1.15502 1.30722 +20.885 -1.45346 1.64497 +19.3747 -1.46164 1.65423 +21.6375 -1.75913 1.99092 +23.6955 -2.06559 2.33776 +33.5701 -3.12394 3.53557 +40.3518 -3.99309 4.51925 +45.73 -4.7958 5.42772 +51.78 -5.73741 6.49341 +57.3158 -6.69175 7.57349 +76.7922 -9.42392 10.6657 +93.8436 -12.0782 13.6697 +94.6607 -12.752 14.4323 +94.5869 -13.3123 15.0664 +94.6031 -13.887 15.7168 +94.7088 -14.4777 16.3854 +94.6116 -15.0399 17.0216 +95.3801 -15.7462 17.821 +95.1689 -16.2968 18.4441 +94.9505 -16.846 19.0657 +95.5921 -17.5532 19.8662 +95.5494 -18.1415 20.5319 +95.1149 -18.6552 21.1134 +95.6305 -19.359 21.9099 +95.3717 -19.9108 22.5344 +95.9616 -20.6453 23.3656 +95.7807 -21.22 24.0161 +95.4028 -21.751 24.6171 +95.8666 -22.4783 25.4402 +95.5667 -23.0314 26.0661 +96.1026 -23.7914 26.9263 +95.5986 -24.2983 27.5 +96.2052 -25.0924 28.3988 +95.9635 -25.6722 29.0549 +96.453 -26.4538 29.9395 +96.1007 -27.0101 30.5691 +95.9245 -27.6172 31.2562 +96.7445 -28.5205 32.2785 +94.727 -28.5842 32.3506 +94.256 -29.1024 32.9371 +94.1396 -29.7314 33.649 +94.1037 -30.3904 34.3948 +93.6996 -30.933 35.0089 +93.4666 -31.5333 35.6883 +93.6683 -32.2862 36.5405 +93.2393 -32.8262 37.1516 +94.1213 -33.8376 38.2963 +93.6718 -34.3802 38.9103 +93.9984 -35.2135 39.8535 +94.3102 -36.0533 40.8039 +93.8314 -36.5969 41.4191 +93.6884 -37.2741 42.1856 +91.5736 -37.1566 42.0526 +90.826 -37.5791 42.5308 +88.3874 -37.2842 42.197 +87.1379 -37.469 42.4061 +84.973 -37.2401 42.1471 +83.3183 -37.2113 42.1145 +82.083 -37.3538 42.2758 +81.3418 -37.7127 42.682 +79.9461 -37.7583 42.7336 +78.3128 -37.674 42.6381 +77.331 -37.8888 42.8812 +75.1516 -37.4973 42.4382 +74.4165 -37.8092 42.7911 +73.0486 -37.7893 42.7687 +71.3739 -37.5917 42.545 +69.6323 -37.3359 42.2556 +68.5974 -37.4421 42.3757 +67.1821 -37.3263 42.2446 +66.2314 -37.455 42.3903 +65.2824 -37.5756 42.5268 +64.3353 -37.6882 42.6542 +63.1673 -37.6597 42.622 +61.9313 -37.576 42.5272 +60.8486 -37.5711 42.5217 +59.6983 -37.5111 42.4538 +58.5543 -37.4406 42.374 +57.488 -37.4063 42.3351 +56.3564 -37.3156 42.2326 +55.2317 -37.2148 42.1184 +54.1834 -37.1515 42.0468 +53.6917 -37.4631 42.3995 +52.3775 -37.1909 42.0914 +51.4124 -37.1503 42.0455 +50.2517 -36.954 41.8232 +49.829 -37.2925 42.2064 +48.614 -37.0293 41.9085 +47.6695 -36.9563 41.8259 +46.5378 -36.7231 41.562 +46.0521 -36.9906 41.8648 +45.0593 -36.8437 41.6985 +44.572 -37.1026 41.9915 +43.281 -36.6805 41.5137 +42.6133 -36.7715 41.6168 +42.3076 -37.175 42.0735 +41.2212 -36.8858 41.7461 +40.2633 -36.6941 41.5291 +39.7782 -36.9253 41.7908 +39.2326 -37.0995 41.988 +38.1758 -36.7791 41.6253 +37.6896 -36.9983 41.8734 +37.2006 -37.2146 42.1183 +36.6542 -37.3726 42.2971 +35.623 -37.0246 41.9032 +35.1866 -37.2852 42.1981 +34.2759 -37.0354 41.9154 +33.6835 -37.1185 42.0095 +33.193 -37.3117 42.2281 +32.25 -36.986 41.8595 +31.2689 -36.5947 41.4166 +30.7854 -36.774 41.6196 +30.2996 -36.9504 41.8193 +29.4828 -36.7149 41.5526 +28.9516 -36.8251 41.6774 +28.5106 -37.05 41.9319 +27.575 -36.6207 41.4461 +27.3982 -37.1952 42.0963 +26.5625 -36.874 41.7328 +26.0333 -36.9661 41.837 +25.2548 -36.6933 41.5283 +24.7703 -36.8379 41.6919 +24.0047 -36.5546 41.3712 +23.8346 -37.1795 42.0785 +22.9993 -36.7652 41.6097 +22.5513 -36.9581 41.828 +22.1367 -37.2102 42.1133 +21.2512 -36.6567 41.4868 +20.8023 -36.8401 41.6944 +20.2818 -36.8967 41.7585 +19.7947 -37.0125 41.8895 +19.3062 -37.1255 42.0174 +18.4989 -36.6077 41.4314 +18.0775 -36.8391 41.6933 +17.6214 -37.0053 41.8814 +17.2499 -37.3591 42.2817 +16.5865 -37.0764 41.9618 +15.794 -36.4707 41.2763 +15.4464 -36.8795 41.739 +14.9597 -36.9674 41.8385 +14.2967 -36.6037 41.4268 +13.7895 -36.6207 41.4461 +13.3064 -36.699 41.5347 +12.9797 -37.2261 42.1312 +12.3803 -36.9764 41.8486 +11.8094 -36.7875 41.6348 +11.3042 -36.7894 41.637 +10.857 -36.9834 41.8565 +10.3874 -37.1098 41.9996 +9.75903 -36.6467 41.4755 +9.27568 -36.7018 41.5378 +8.8229 -36.8847 41.7449 +8.33645 -36.9343 41.801 +7.83545 -36.9155 41.7797 +7.36168 -37.025 41.9036 +6.84906 -36.9347 41.8014 +6.36202 -36.9728 41.8446 +5.79088 -36.4814 41.2884 +5.39612 -37.1066 41.996 +4.91558 -37.2024 42.1044 +4.4094 -37.0974 41.9856 +3.92031 -37.1214 42.0128 +3.42482 -37.0766 41.962 +2.89418 -36.5659 41.3841 +2.44705 -37.1105 42.0004 +1.95786 -37.1232 42.0148 +1.4502 -36.6698 41.5016 +0.966863 -36.6768 41.5095 +0.484323 -36.7472 41.5892 +3.39216e-15 -36.6823 41.5158 +-0.484323 -36.7472 41.5892 +-0.966863 -36.6768 41.5095 +-1.44759 -36.6036 41.4267 +-1.96833 -37.3217 42.2394 +-2.41215 -36.5813 41.4015 +-2.94651 -37.2272 42.1324 +-3.42482 -37.0766 41.962 +-3.92031 -37.1214 42.0128 +-4.40156 -37.0314 41.9108 +-4.95045 -37.4663 42.403 +-5.45362 -37.5021 42.4436 +-5.92676 -37.3375 42.2573 +-6.32806 -36.7755 41.6213 +-6.84906 -36.9347 41.8014 +-7.33557 -36.8937 41.755 +-7.80761 -36.7843 41.6312 +-8.41036 -37.2617 42.1716 +-8.88548 -37.1463 42.0409 +-9.22616 -36.5058 41.3161 +-9.86322 -37.038 41.9183 +-10.2416 -36.5889 41.4101 +-10.7425 -36.5934 41.4151 +-11.3839 -37.049 41.9308 +-11.7262 -36.5284 41.3416 +-12.1856 -36.3947 41.1902 +-12.6422 -36.2583 41.0359 +-13.3064 -36.699 41.5347 +-13.8137 -36.6849 41.5188 +-14.2967 -36.6037 41.4268 +-14.9339 -36.9034 41.7661 +-15.4731 -36.9434 41.8113 +-15.987 -36.9162 41.7805 +-16.4445 -36.759 41.6025 +-17.2207 -37.2958 42.2101 +-17.5011 -36.7527 41.5955 +-18.0157 -36.7132 41.5508 +-18.4671 -36.5449 41.3603 +-19.2411 -37.0002 41.8756 +-19.7947 -37.0125 41.8895 +-20.3502 -37.0212 41.8993 +-20.6973 -36.6541 41.4838 +-21.5738 -37.2131 42.1165 +-22.0267 -37.0254 41.9041 +-22.5139 -36.8967 41.7584 +-23.3054 -37.2546 42.1635 +-23.8346 -37.1795 42.0785 +-24.6427 -37.5261 42.4708 +-24.8923 -37.0194 41.8973 +-25.711 -37.3561 42.2784 +-26.1601 -37.1462 42.0408 +-27.1653 -37.7107 42.6797 +-27.2228 -36.9572 41.8269 +-28.2443 -37.5096 42.452 +-28.6468 -37.227 42.1322 +-29.5057 -37.5299 42.4751 +-29.9523 -37.2995 42.2143 +-30.8722 -37.6487 42.6096 +-31.4157 -37.5268 42.4716 +-31.9583 -37.4015 42.3297 +-32.9 -37.7315 42.7032 +-33.396 -37.5399 42.4864 +-34.3015 -37.7996 42.7803 +-35.1119 -37.9387 42.9377 +-35.2926 -37.3975 42.3252 +-35.9453 -37.3596 42.2824 +-37.2533 -37.9835 42.9885 +-37.6973 -37.7116 42.6807 +-38.1929 -37.4923 42.4326 +-39.1387 -37.7067 42.6752 +-39.6341 -37.4792 42.4177 +-40.6492 -37.7339 42.7059 +-41.2037 -37.5511 42.4991 +-42.2919 -37.8439 42.8304 +-42.7289 -37.5452 42.4924 +-43.8308 -37.8222 42.8058 +-44.3276 -37.5675 42.5176 +-45.3813 -37.7763 42.7539 +-46.4438 -37.9758 42.9797 +-47.0062 -37.7571 42.7322 +-48.0805 -37.9405 42.9397 +-48.5787 -37.6613 42.6237 +-49.6637 -37.8288 42.8134 +-50.6904 -37.9372 42.936 +-51.9914 -38.2333 43.2712 +-52.4934 -37.9314 42.9295 +-54.0143 -38.3531 43.4067 +-54.7242 -38.1836 43.2149 +-55.8505 -38.2946 43.3405 +-56.7737 -38.2538 43.2944 +-57.6999 -38.2052 43.2394 +-58.4152 -38.0096 43.018 +-59.7771 -38.2225 43.259 +-60.2786 -37.8757 42.8665 +-61.9457 -38.2485 43.2884 +-62.8898 -38.1575 43.1853 +-63.9848 -38.1471 43.1736 +-64.7847 -37.9514 42.9521 +-66.339 -38.1838 43.2151 +-67.9803 -38.4441 43.5097 +-69.327 -38.518 43.5934 +-70.5265 -38.4949 43.5673 +-71.9637 -38.5861 43.6704 +-72.4695 -38.1688 43.1981 +-74.1518 -38.36 43.4146 +-75.3686 -38.2929 43.3386 +-76.9885 -38.4138 43.4755 +-78.6976 -38.5583 43.639 +-80.0927 -38.5302 43.6071 +-81.8186 -38.6427 43.7345 +-83.4716 -38.7001 43.7995 +-85.6267 -38.9665 44.1009 +-86.8831 -38.8034 43.9164 +-88.5587 -38.8116 43.9256 +-90.1571 -38.7672 43.8754 +-91.8453 -38.7429 43.8478 +-94.3029 -39.0177 44.1589 +-95.581 -38.7827 43.893 +-98.66 -39.252 44.4241 +-100.121 -39.0501 44.1956 +-102.191 -39.066 44.2136 +-105.139 -39.387 44.5769 +-106.791 -39.1954 44.36 +-109.325 -39.3034 44.4823 +-111.869 -39.3852 44.5748 +-114.957 -39.624 44.8451 +-118.949 -40.1306 45.4184 +-122.248 -40.3576 45.6754 +-126.73 -40.9268 46.3196 +-129.16 -40.7916 46.1666 +-132.14 -40.7993 46.1753 +-134.947 -40.7207 46.0863 +-137.489 -40.5319 45.8727 +-137.284 -39.5247 44.7327 +-138.168 -38.8334 43.9504 +-137.843 -37.8056 42.7871 +-137.038 -36.6604 41.491 +-14.5145 -3.78571 4.28454 +-15.3107 -3.89153 4.4043 +-44.1173 -10.9218 12.3609 +-41.9103 -10.1003 11.4312 +-15.3651 -3.60272 4.07743 +-14.2773 -3.25511 3.68403 +-15.9318 -3.52966 3.99475 +-15.2169 -3.27378 3.70515 +-16.1178 -3.36493 3.80831 +-15.6834 -3.17488 3.59322 +-15.7246 -3.08413 3.49052 +-14.8996 -2.8289 3.20165 +-15.3217 -2.81348 3.1842 +-15.165 -2.69056 3.04509 +-13.5541 -2.321 2.62683 +-13.6812 -2.25861 2.55622 +-3185.78 -506.426 573.156 +-12.7642 -1.95122 2.20833 +-12.0084 -1.76275 1.99502 +-13.3028 -1.87226 2.11896 +-12.2491 -1.65011 1.86754 +-13.0556 -1.68034 1.90176 +-12.8806 -1.58071 1.789 +-13.0979 -1.52922 1.73072 +-12.5258 -1.3879 1.57078 +-13.8276 -1.45013 1.64121 +-13.4506 -1.33103 1.50642 +-13.6657 -1.27169 1.43926 +-13.4837 -1.1754 1.33028 +-13.1016 -1.06517 1.20552 +-13.5126 -1.0194 1.15372 +-13.5255 -0.941286 1.06532 +-14.0351 -0.894831 1.01274 +-13.5482 -0.784843 0.888259 +-12.7605 -0.66497 0.752591 +-12.3698 -0.572735 0.648202 +-12.2771 -0.497196 0.56271 +-11.2845 -0.391585 0.443182 +-11.1893 -0.323478 0.366102 +-10.7934 -0.249569 0.282454 +-11.4961 -0.199326 0.225591 +-11.3983 -0.131737 0.149095 +-11.3996 -0.065871 0.0745505 +11.4 0 0 +10.5996 -0.0606205 0.0698688 +11.0983 -0.126955 0.146324 +11.796 -0.202429 0.233312 +11.493 -0.26302 0.303146 +12.2883 -0.351606 0.405247 +12.9822 -0.445877 0.5139 +22.9571 -0.920186 1.06057 +25.7372 -1.17944 1.35938 +25.4214 -1.31116 1.51119 +29.4874 -1.69067 1.9486 +17.6185 -1.11178 1.28139 +21.8795 -1.50706 1.73697 +19.3747 -1.44665 1.66736 +20.9427 -1.68519 1.94228 +22.2084 -1.9161 2.20842 +34.3623 -3.16488 3.64771 +39.3628 -3.85528 4.44345 +45.73 -4.74663 5.47078 +52.6677 -5.77593 6.65711 +59.3839 -6.86214 7.90904 +74.8257 -9.08842 10.475 +92.6656 -11.8044 13.6053 +94.6607 -12.6213 14.5468 +95.3694 -13.2848 15.3115 +94.6031 -13.7446 15.8415 +94.7088 -14.3293 16.5154 +94.6116 -14.8857 17.1567 +94.5068 -15.4421 17.7979 +95.1689 -16.1297 18.5904 +94.9505 -16.6733 19.217 +95.5921 -17.3733 20.0237 +95.3572 -17.9193 20.6531 +95.1149 -18.464 21.2808 +94.8654 -19.0072 21.907 +95.3717 -19.7067 22.7132 +95.9616 -20.4336 23.551 +95.7807 -21.0024 24.2066 +96.2538 -21.72 25.0337 +95.8666 -22.2479 25.642 +95.5667 -22.7952 26.2729 +95.9152 -23.5015 27.087 +95.5986 -24.0492 27.7182 +96.2982 -24.8592 28.6518 +95.9635 -25.409 29.2854 +95.6215 -25.9568 29.9168 +96.1007 -26.7331 30.8115 +95.7411 -27.2817 31.4438 +96.2877 -28.0947 32.3809 +94.181 -28.128 32.4193 +94.256 -28.804 33.1984 +94.3202 -29.483 33.981 +93.7442 -29.9639 34.5352 +93.7891 -30.645 35.3203 +94.1794 -31.448 36.2458 +93.757 -31.9854 36.8651 +93.9456 -32.7358 37.73 +94.0334 -33.4594 38.564 +93.6718 -34.0277 39.2189 +93.8243 -34.788 40.0953 +94.4834 -35.7492 41.2031 +93.2283 -35.9889 41.4793 +93.7741 -36.9257 42.5591 +91.8293 -36.8784 42.5046 +90.0627 -36.8812 42.5079 +88.3874 -36.902 42.5317 +87.6411 -37.299 42.9893 +85.7235 -37.1838 42.8566 +83.8157 -37.0497 42.702 +83.2367 -37.4905 43.21 +81.3418 -37.326 43.0205 +79.6205 -37.2189 42.8971 +78.7983 -37.5188 43.2427 +77.331 -37.5003 43.2214 +76.5891 -37.8228 43.5931 +74.8926 -37.6609 43.4065 +73.679 -37.7246 43.4799 +71.8434 -37.451 43.1646 +69.7877 -37.0356 42.6858 +68.5203 -37.0164 42.6637 +67.3353 -37.0278 42.6768 +66.2314 -37.071 42.7265 +65.056 -37.0614 42.7155 +64.1106 -37.1715 42.8424 +62.9444 -37.1421 42.8085 +61.9313 -37.1907 42.8645 +60.7755 -37.1412 42.8075 +59.6983 -37.1265 42.7905 +58.5543 -37.0568 42.7101 +57.488 -37.0227 42.6709 +56.3564 -36.933 42.5675 +55.2317 -36.8332 42.4525 +54.7391 -37.1477 42.815 +53.6917 -37.079 42.7358 +52.3775 -36.8096 42.4252 +51.4124 -36.7694 42.379 +50.3186 -36.6238 42.2111 +49.829 -36.9102 42.5412 +48.6796 -36.6991 42.298 +48.1241 -36.9263 42.5598 +47.1163 -36.7985 42.4125 +46.1157 -36.662 42.2551 +45.4999 -36.8225 42.4401 +44.572 -36.7222 42.3246 +43.5888 -36.5626 42.1406 +42.6742 -36.4466 42.0069 +42.1271 -36.6369 42.2262 +41.2212 -36.5076 42.0773 +40.7923 -36.795 42.4085 +39.7782 -36.5467 42.1223 +39.2326 -36.7191 42.321 +38.7422 -36.9421 42.578 +38.1929 -37.1079 42.7691 +37.2557 -36.8877 42.5153 +36.5997 -36.9345 42.5693 +35.623 -36.645 42.2356 +35.1866 -36.9029 42.5328 +34.6417 -37.0468 42.6987 +33.735 -36.7942 42.4075 +33.2438 -36.9856 42.6282 +32.7 -37.1176 42.7803 +31.7613 -36.7898 42.4025 +31.2702 -36.9701 42.6103 +30.2519 -36.514 42.0846 +29.4828 -36.3384 41.8822 +28.9516 -36.4475 42.008 +28.8738 -37.1372 42.8029 +27.932 -36.7145 42.3156 +27.0037 -36.2838 41.8192 +26.5625 -36.496 42.0638 +26.0755 -36.6465 42.2373 +25.2133 -36.2575 41.789 +24.7703 -36.4602 42.0226 +23.9648 -36.1197 41.6301 +23.8346 -36.7983 42.4122 +22.9993 -36.3883 41.9397 +22.5888 -36.64 42.2298 +22.1 -36.7677 42.377 +21.2512 -36.2809 41.8159 +20.8023 -36.4624 42.0251 +20.316 -36.58 42.1606 +19.8281 -36.6948 42.293 +19.3062 -36.7449 42.3507 +18.5623 -36.3566 41.9032 +18.0775 -36.4614 42.024 +17.6214 -36.6259 42.2136 +17.3084 -37.1013 42.7615 +16.6433 -36.8219 42.4394 +15.987 -36.5377 42.1119 +15.4197 -36.4383 41.9973 +14.9597 -36.5884 42.1703 +14.2717 -36.165 41.6823 +13.7895 -36.2452 41.7748 +13.5165 -36.8962 42.5251 +12.9572 -36.7805 42.3918 +12.402 -36.6613 42.2544 +11.9965 -36.9872 42.63 +11.3241 -36.4764 42.0413 +10.8952 -36.7328 42.3368 +10.4056 -36.7938 42.407 +9.91531 -36.8518 42.474 +9.42422 -36.9071 42.5377 +8.96369 -37.0891 42.7474 +8.35123 -36.6204 42.2073 +7.9607 -37.121 42.7842 +7.34862 -36.5804 42.1611 +6.86124 -36.621 42.2079 +6.37334 -36.6589 42.2516 +5.89541 -36.7591 42.3671 +5.39612 -36.7262 42.3292 +4.89815 -36.6903 42.2878 +4.4094 -36.717 42.3186 +3.92031 -36.7408 42.346 +3.43093 -36.7618 42.3703 +2.94651 -36.8455 42.4666 +2.44269 -36.6645 42.2581 +1.92994 -36.2186 41.7442 +1.4502 -36.2938 41.8308 +0.968609 -36.3662 41.9143 +0.484323 -36.3704 41.9191 +3.45339e-15 -36.9616 42.6005 +-0.484323 -36.3704 41.9191 +-0.980825 -36.8249 42.4429 +-1.46853 -36.7524 42.3594 +-1.99276 -37.3975 43.1029 +-2.45577 -36.8609 42.4845 +-2.94651 -36.8455 42.4666 +-3.41872 -36.631 42.2194 +-3.92031 -36.7408 42.346 +-4.39371 -36.5863 42.168 +-4.95916 -37.1474 42.8146 +-5.44404 -37.0524 42.7051 +-5.93722 -37.0198 42.6675 +-6.33938 -36.4635 42.0264 +-6.94655 -37.0763 42.7327 +-7.32252 -36.4505 42.0114 +-7.93287 -36.9913 42.6347 +-8.27733 -36.2964 41.8337 +-8.83855 -36.5713 42.1506 +-9.22616 -36.1315 41.6438 +-9.88058 -36.7228 42.3252 +-10.2416 -36.2138 41.7386 +-10.7425 -36.2182 41.7436 +-11.2244 -36.1554 41.6713 +-11.8925 -36.6667 42.2606 +-12.1856 -36.0215 41.517 +-12.6422 -35.8866 41.3614 +-13.3531 -36.4502 42.011 +-13.7895 -36.2452 41.7748 +-14.497 -36.736 42.3404 +-14.9597 -36.5884 42.1703 +-15.4731 -36.5646 42.1429 +-16.1799 -36.9787 42.6202 +-16.4445 -36.3821 41.9325 +-17.2499 -36.976 42.6171 +-17.7416 -36.8759 42.5018 +-18.2629 -36.8354 42.455 +-18.8162 -36.8539 42.4763 +-19.2736 -36.6829 42.2792 +-19.7947 -36.633 42.2218 +-20.6238 -37.1343 42.7995 +-21.1175 -37.0149 42.6619 +-21.5738 -36.8315 42.4505 +-22.0267 -36.6458 42.2365 +-22.5513 -36.5792 42.1597 +-23.2672 -36.8121 42.4282 +-23.7955 -36.7379 42.3427 +-24.3237 -36.6606 42.2536 +-25.2177 -37.1187 42.7816 +-25.6695 -36.9135 42.545 +-26.1601 -36.7653 42.3743 +-26.6917 -36.6734 42.2684 +-27.6612 -37.1673 42.8376 +-27.7089 -36.4212 41.9776 +-28.9646 -37.254 42.9375 +-29.5057 -37.1451 42.812 +-29.9523 -36.9171 42.5492 +-30.395 -36.6868 42.2838 +-31.4641 -37.1994 42.8745 +-32.4015 -37.5314 43.2572 +-32.85 -37.2879 42.9766 +-33.3453 -37.0986 42.7583 +-34.1985 -37.2997 42.9901 +-35.1119 -37.5497 43.2783 +-35.8225 -37.5698 43.3015 +-36.3215 -37.3635 43.0637 +-37.2533 -37.5941 43.3294 +-37.6973 -37.3249 43.0192 +-38.6402 -37.5426 43.2701 +-39.1387 -37.3201 43.0137 +-40.2077 -37.6318 43.3729 +-40.6492 -37.347 43.0447 +-41.7328 -37.6433 43.3862 +-42.2919 -37.4559 43.1701 +-43.2705 -37.6313 43.3723 +-43.7699 -37.3824 43.0855 +-44.8817 -37.6471 43.3905 +-45.4436 -37.4403 43.1522 +-46.5068 -37.6373 43.3793 +-47.0062 -37.3699 43.0711 +-48.0805 -37.5515 43.2803 +-49.1632 -37.7236 43.4787 +-50.2541 -37.8862 43.6661 +-50.6904 -37.5482 43.2766 +-51.9914 -37.8413 43.6144 +-52.4258 -37.4942 43.2143 +-54.0143 -37.9598 43.751 +-54.5177 -37.6495 43.3933 +-55.6421 -37.7605 43.5213 +-56.7737 -37.8616 43.6378 +-57.912 -37.9525 43.7425 +-58.6292 -37.7576 43.518 +-59.5613 -37.6941 43.4447 +-60.7864 -37.8031 43.5704 +-62.1651 -37.9904 43.7863 +-62.8898 -37.7662 43.5279 +-64.282 -37.9314 43.7182 +-65.4587 -37.9531 43.7433 +-67.0182 -38.1792 44.0039 +-67.9803 -38.0499 43.8548 +-69.327 -38.1231 43.9391 +-70.1407 -37.8919 43.6727 +-71.886 -38.1492 43.9692 +-72.9391 -38.0222 43.8229 +-74.861 -38.3298 44.1774 +-76.0826 -38.2593 44.0962 +-77.7072 -38.3749 44.2294 +-78.6976 -38.163 43.9851 +-80.5781 -38.3663 44.2194 +-81.8186 -38.2465 44.0814 +-83.7173 -38.4161 44.2769 +-85.3795 -38.4556 44.3224 +-87.6293 -38.7354 44.6449 +-88.5587 -38.4136 44.2741 +-90.9119 -38.691 44.5937 +-92.9417 -38.8034 44.7232 +-94.3029 -38.6177 44.5092 +-96.3483 -38.6932 44.5963 +-99.1743 -39.0521 45.0099 +-100.466 -38.7828 44.6995 +-102.97 -38.9604 44.9042 +-104.269 -38.6605 44.5585 +-108.016 -39.2383 45.2245 +-110.204 -39.2132 45.1956 +-113.635 -39.5967 45.6376 +-115.223 -39.3085 45.3054 +-120.108 -40.1059 46.2245 +-122.606 -40.0608 46.1725 +-127 -40.5934 46.7863 +-129.702 -40.5427 46.7279 +-132.774 -40.5749 46.765 +-134.401 -40.1402 46.264 +-137.763 -40.1963 46.3287 +-137.467 -39.1718 45.1478 +-138.168 -38.4353 44.299 +-137.843 -37.418 43.1265 +-136.667 -36.1863 41.7069 +-14.0493 -3.6268 4.18011 +-15.7775 -3.96906 4.57458 +-44.5856 -10.9246 12.5912 +-41.7224 -9.95191 11.4702 +-15.2708 -3.5439 4.08456 +-15.9793 -3.60579 4.15589 +-15.5525 -3.4103 3.93057 +-16.0729 -3.42248 3.94462 +-16.1178 -3.33043 3.83852 +-15.6834 -3.14233 3.62172 +-15.1494 -2.94083 3.38949 +-14.8996 -2.79989 3.22705 +-14.7435 -2.67955 3.08835 +-14.8753 -2.61209 3.01059 +-14.4254 -2.44488 2.81787 +-12.6138 -2.06105 2.37549 +-3185.78 -501.234 577.702 +-12.7642 -1.93122 2.22584 +-13.3753 -1.94325 2.23971 +-11.8356 -1.64868 1.9002 +-12.837 -1.71158 1.9727 +-12.5648 -1.60059 1.84478 +-13.1756 -1.60033 1.84448 +-13.8858 -1.60458 1.84937 +-12.8217 -1.40613 1.62065 +-13.8276 -1.43526 1.65423 +-13.4506 -1.31739 1.51837 +-14.0618 -1.29514 1.49272 +-12.4922 -1.0778 1.24223 +-13.7964 -1.11015 1.27951 +-13.5126 -1.00895 1.16287 +-13.2271 -0.911084 1.05008 +-13.836 -0.873093 1.00629 +-12.5521 -0.719676 0.829471 +-12.4615 -0.642725 0.740779 +-11.7713 -0.539434 0.62173 +-11.9776 -0.480096 0.553339 +-11.684 -0.40129 0.46251 +-11.1893 -0.320161 0.369005 +-11.6929 -0.267594 0.308418 +-11.0962 -0.19042 0.219471 +-10.7984 -0.123524 0.142369 +-10.5996 -0.0606205 0.0698688 +11.1 0 0 +10.2996 -0.0582898 0.0684201 +10.4984 -0.118839 0.139492 +11.0962 -0.188432 0.22118 +11.6929 -0.2648 0.31082 +11.7888 -0.333792 0.391802 +23.8672 -0.81117 0.952145 +30.4431 -1.2075 1.41736 +31.8223 -1.44307 1.69387 +29.4091 -1.50099 1.76185 +33.1733 -1.88215 2.20925 +23.8895 -1.49176 1.75101 +23.5702 -1.60656 1.88576 +19.0766 -1.40953 1.65449 +18.8584 -1.50163 1.7626 +24.1913 -2.06539 2.42433 +33.5701 -3.05963 3.59137 +40.154 -3.89172 4.56807 +46.0263 -4.72751 5.54911 +52.569 -5.70493 6.6964 +60.0733 -6.86929 8.06312 +73.0558 -8.78083 10.3069 +93.6472 -11.8049 13.8565 +94.6607 -12.4895 14.6601 +94.5869 -13.0383 15.3042 +94.6031 -13.6011 15.9649 +94.7088 -14.1797 16.644 +95.4867 -14.8665 17.4502 +95.3801 -15.422 18.1023 +95.0721 -15.945 18.7161 +94.9505 -16.4992 19.3666 +95.5921 -17.1919 20.1797 +95.3572 -17.7322 20.8139 +95.1149 -18.2712 21.4466 +95.7261 -18.9794 22.2779 +95.4671 -19.5205 22.913 +95.9616 -20.2203 23.7344 +95.7807 -20.7832 24.3951 +95.3083 -21.2822 24.9809 +95.9609 -22.0372 25.8671 +96.4125 -22.7569 26.7119 +95.2596 -23.0972 27.1113 +95.5986 -23.7981 27.9341 +96.2982 -24.5997 28.8749 +95.9635 -25.1437 29.5135 +96.453 -25.9092 30.412 +96.1007 -26.454 31.0515 +95.7411 -26.9969 31.6887 +96.105 -27.7487 32.5712 +94.909 -28.0495 32.9242 +94.4373 -28.5581 33.5213 +94.4104 -29.2032 34.2784 +93.7442 -29.651 34.8041 +93.6996 -30.2962 35.5614 +93.6448 -30.943 36.3207 +93.8457 -31.6814 37.1874 +93.8573 -32.3635 37.988 +93.3304 -32.8626 38.5738 +93.5843 -33.641 39.4875 +93.5632 -34.329 40.295 +93.7906 -35.1166 41.2195 +93.9176 -35.8764 42.1114 +93.6884 -36.5068 42.8513 +92.5115 -36.7645 43.1538 +91.5044 -37.0804 43.5247 +89.5682 -37.0045 43.4356 +88.3959 -37.2274 43.6973 +86.6407 -37.1894 43.6526 +85.2251 -37.2793 43.7582 +83.2367 -37.099 43.5465 +81.5875 -37.0479 43.4866 +80.3532 -37.1693 43.6291 +79.4455 -37.432 43.9374 +77.8133 -37.3402 43.8296 +77.5475 -37.8962 44.4822 +74.6545 -37.1493 43.6055 +74.3882 -37.6901 44.2403 +72.0782 -37.1811 43.6429 +69.71 -36.6081 42.9703 +68.8289 -36.795 43.1897 +68.3312 -37.1832 43.6453 +66.9157 -37.063 43.5042 +65.7352 -37.0573 43.4976 +64.7847 -37.1701 43.63 +63.8361 -37.275 43.7531 +62.6686 -37.2405 43.7126 +61.4337 -37.1515 43.6081 +60.2786 -37.096 43.543 +59.2017 -37.0753 43.5187 +57.4167 -36.5907 42.9499 +56.9928 -36.9601 43.3835 +55.9326 -36.9112 43.3261 +56.0589 -37.6462 44.1888 +53.6917 -36.6919 43.0687 +53.1277 -36.947 43.368 +51.3449 -36.3378 42.653 +50.8539 -36.6269 42.9924 +49.7628 -36.4762 42.8155 +49.27 -36.7564 43.1444 +48.1241 -36.5407 42.8912 +47.6948 -36.8614 43.2676 +46.6245 -36.6795 43.0541 +45.4999 -36.438 42.7706 +44.5098 -36.2881 42.5947 +44.0814 -36.5897 42.9487 +42.7351 -36.1175 42.3944 +42.6687 -36.7205 43.1022 +41.6971 -36.5435 42.8945 +41.2625 -36.8306 43.2314 +40.3008 -36.6403 43.0081 +39.7488 -36.8138 43.2118 +38.7422 -36.5564 42.9096 +38.1929 -36.7205 43.1022 +37.2557 -36.5026 42.8465 +37.1988 -37.1472 43.603 +36.1065 -36.7546 43.1423 +35.6106 -36.9575 43.3805 +34.6939 -36.7153 43.0961 +34.1985 -36.9103 43.325 +33.2438 -36.5995 42.9602 +32.75 -36.7863 43.1794 +31.7613 -36.4057 42.7327 +31.3187 -36.6408 43.0087 +30.8245 -36.8167 43.2151 +29.8114 -36.3599 42.6789 +29.321 -36.5272 42.8753 +28.8738 -36.7495 43.1363 +27.9766 -36.3892 42.7133 +27.4859 -36.5461 42.8975 +26.95 -36.6417 43.0097 +26.4982 -36.8516 43.2561 +25.628 -36.4691 42.8071 +25.1363 -36.6127 42.9757 +24.3237 -36.2778 42.5826 +23.8346 -36.4141 42.7426 +23.4202 -36.6674 43.0399 +22.851 -36.6783 43.0527 +22.0267 -36.2632 42.5654 +21.5738 -36.447 42.7812 +21.1525 -36.6892 43.0655 +20.2818 -36.1372 42.4175 +19.7947 -36.2505 42.5506 +19.2736 -36.2999 42.6085 +18.5623 -35.9771 42.2296 +18.3865 -36.6976 43.0753 +17.8619 -36.7383 43.1232 +17.133 -36.3419 42.6578 +16.6717 -36.4996 42.843 +16.2075 -36.6549 43.0253 +15.6602 -36.6203 42.9845 +14.9597 -36.2064 42.4987 +14.497 -36.3524 42.6702 +14.0073 -36.4331 42.7649 +13.5165 -36.511 42.8563 +13.0022 -36.5229 42.8703 +12.5535 -36.7217 43.1037 +12.1628 -37.1085 43.5577 +11.5035 -36.6676 43.0401 +10.8952 -36.3493 42.6665 +10.4056 -36.4096 42.7373 +9.91531 -36.4671 42.8048 +9.42422 -36.5218 42.869 +8.96369 -36.7018 43.0803 +8.33645 -36.1739 42.4607 +7.97462 -36.7977 43.1929 +7.47915 -36.8415 43.2442 +6.97093 -36.818 43.2166 +6.37334 -36.2762 42.5806 +5.88495 -36.3108 42.6214 +5.39612 -36.3428 42.6588 +4.91558 -36.4365 42.7689 +4.41725 -36.3983 42.724 +3.97612 -36.8748 43.2833 +3.43093 -36.378 42.7002 +2.94128 -36.3961 42.7214 +2.45141 -36.4113 42.7393 +1.96135 -36.4238 42.754 +1.47114 -36.4335 42.7653 +0.980825 -36.4404 42.7735 +0.492177 -36.5743 42.9307 +3.44727e-15 -36.5108 42.8561 +-0.492177 -36.5743 42.9307 +-0.98257 -36.5053 42.8496 +-1.49209 -36.9522 43.3741 +-1.96135 -36.4238 42.754 +-2.45577 -36.4761 42.8153 +-2.94651 -36.4608 42.7974 +-3.47366 -36.8311 43.2321 +-3.97612 -36.8748 43.2833 +-4.46432 -36.7862 43.1793 +-4.95045 -36.695 43.0722 +-5.45362 -36.73 43.1134 +-6.03129 -37.2138 43.6812 +-6.44126 -36.6627 43.0344 +-7.03186 -37.1398 43.5944 +-7.45305 -36.7129 43.0932 +-7.93287 -36.6051 42.9667 +-8.39557 -36.4305 42.7618 +-8.91676 -36.5097 42.8548 +-9.44072 -36.5857 42.9441 +-9.91531 -36.4671 42.8048 +-10.4056 -36.4096 42.7373 +-10.8952 -36.3493 42.6665 +-11.4038 -36.3498 42.6671 +-11.8925 -36.2839 42.5897 +-12.402 -36.2786 42.5835 +-13.0472 -36.6493 43.0187 +-13.3531 -36.0696 42.3382 +-14.0315 -36.4961 42.8388 +-14.472 -36.2896 42.5965 +-14.9856 -36.269 42.5723 +-15.4731 -36.1828 42.4711 +-15.9594 -36.0939 42.3667 +-16.7001 -36.5618 42.916 +-17.2792 -36.652 43.0218 +-17.7416 -36.4909 42.8328 +-18.541 -37.0059 43.4372 +-18.7527 -36.3461 42.6627 +-19.5666 -36.8518 43.2563 +-20.0952 -36.8007 43.1964 +-20.5896 -36.6856 43.0613 +-21.0475 -36.507 42.8516 +-21.8604 -36.9313 43.3497 +-22.3199 -36.7459 43.132 +-22.851 -36.6783 43.0527 +-23.3054 -36.4877 42.829 +-24.1081 -36.8319 43.233 +-24.6427 -36.7536 43.1411 +-25.1363 -36.6127 42.9757 +-25.6695 -36.5281 42.8764 +-26.5827 -36.9692 43.3942 +-26.6917 -36.2905 42.5975 +-28.1434 -37.4204 43.9238 +-28.1551 -36.6214 42.9858 +-29.1462 -37.0962 43.5432 +-29.4596 -36.6998 43.0779 +-30.4218 -37.1042 43.5526 +-30.9199 -36.9306 43.3489 +-31.8035 -37.2081 43.6745 +-32.4015 -37.1395 43.594 +-33.3 -37.404 43.9045 +-33.7513 -37.1583 43.616 +-34.6106 -37.3549 43.8469 +-35.1642 -37.213 43.6803 +-35.8225 -37.1776 43.6387 +-36.2677 -36.9187 43.3349 +-37.689 -37.6367 44.1776 +-38.194 -37.4219 43.9256 +-39.1435 -37.6344 44.175 +-39.7051 -37.4649 43.976 +-40.2077 -37.2389 43.7107 +-41.2299 -37.485 43.9996 +-42.3205 -37.7749 44.3399 +-42.7678 -37.4819 43.9959 +-43.3307 -37.2902 43.771 +-44.3787 -37.5066 44.025 +-44.9433 -37.3051 43.7885 +-46.0038 -37.5061 44.0244 +-47.0102 -37.6475 44.1904 +-47.515 -37.3801 43.8765 +-48.7233 -37.6562 44.2006 +-49.1632 -37.3297 43.8173 +-50.1885 -37.4416 43.9487 +-51.4193 -37.6905 44.2408 +-52.5937 -37.88 44.4632 +-53.0338 -37.5331 44.056 +-54.8327 -38.1326 44.7598 +-54.9307 -37.5387 44.0626 +-56.0589 -37.6462 44.1888 +-56.9839 -37.6051 44.1405 +-58.1242 -37.6939 44.2447 +-58.6292 -37.3634 43.8569 +-59.9929 -37.5708 44.1003 +-61.4392 -37.8102 44.3813 +-62.9696 -38.0803 44.6983 +-63.1109 -37.5034 44.0212 +-64.6536 -37.7523 44.3134 +-65.1591 -37.385 43.8822 +-67.6974 -38.1636 44.7961 +-67.9803 -37.6527 44.1964 +-70.2463 -38.2252 44.8685 +-70.758 -37.8263 44.4002 +-72.6631 -38.159 44.7907 +-73.6434 -37.9885 44.5906 +-74.861 -37.9296 44.5215 +-76.2413 -37.9389 44.5323 +-78.426 -38.3255 44.9862 +-79.3407 -38.0731 44.6899 +-81.7107 -38.4994 45.1902 +-82.2257 -38.0355 44.6457 +-85.1099 -38.6474 45.364 +-85.6267 -38.1643 44.7969 +-87.7951 -38.4035 45.0777 +-88.8088 -38.12 44.7449 +-92.086 -38.7815 45.5214 +-93.2791 -38.5376 45.2351 +-95.8294 -38.8331 45.5819 +-97.1157 -38.5942 45.3016 +-99.9457 -38.9449 45.7133 +-101.241 -38.6741 45.3954 +-103.75 -38.8455 45.5965 +-105.922 -38.8636 45.6177 +-109.153 -39.2373 46.0564 +-110.995 -39.0823 45.8745 +-114.165 -39.366 46.2075 +-115.223 -38.8981 45.6582 +-121.979 -40.3054 47.3102 +-124.038 -40.1055 47.0755 +-127.539 -40.3402 47.351 +-131.055 -40.5382 47.5834 +-133.318 -40.3157 47.3222 +-136.221 -40.2589 47.2556 +-138.311 -39.9349 46.8752 +-137.284 -38.711 45.4387 +-138.996 -38.2621 44.9117 +-137.104 -36.8287 43.2293 +-137.316 -35.9786 42.2313 +-13.398 -3.42256 4.01738 +-14.3771 -3.57902 4.20102 +-44.3046 -10.7424 12.6093 +-41.7224 -9.84801 11.5595 +-15.2708 -3.5069 4.11637 +-15.0337 -3.35701 3.94043 +-15.5525 -3.37469 3.96119 +-16.3582 -3.44686 4.0459 +-15.5456 -3.17865 3.73107 +-15.6834 -3.10952 3.64993 +-16.0123 -3.0759 3.61047 +-16.0531 -2.98516 3.50396 +-15.6108 -2.80755 3.29548 +-14.4889 -2.51769 2.95524 +-13.5541 -2.27322 2.66829 +-14.0693 -2.27487 2.67023 +-11.8629 -1.84696 2.16795 +-13.2514 -1.98399 2.32879 +-13.3753 -1.92296 2.25716 +-11.4443 -1.57753 1.8517 +-13.7189 -1.81008 2.12465 +-12.1722 -1.53438 1.80105 +-13.7656 -1.65453 1.94208 +-14.2797 -1.63287 1.91665 +-13.3149 -1.44496 1.69608 +-13.8276 -1.42028 1.66711 +-13.4506 -1.30363 1.53019 +-13.6657 -1.24551 1.46197 +-12.7896 -1.09195 1.28172 +-13.2009 -1.05114 1.23382 +-13.8106 -1.02044 1.19778 +-14.0228 -0.9558 1.12191 +-12.1438 -0.75831 0.890098 +-13.2494 -0.751728 0.882372 +-12.5612 -0.641103 0.752521 +-12.1703 -0.551897 0.647812 +-10.8797 -0.431534 0.506531 +-11.1847 -0.38013 0.446193 +-10.3901 -0.294189 0.345317 +-10.8934 -0.246695 0.289568 +-11.0962 -0.188432 0.22118 +-11.4982 -0.130157 0.152777 +-10.4996 -0.0594216 0.0697486 +10.3 0 0 +10.7996 -0.0604696 0.07229 +11.0983 -0.124294 0.148591 +11.0962 -0.186429 0.222872 +12.3924 -0.277659 0.331936 +15.0856 -0.422599 0.505207 +34.7523 -1.16856 1.39699 +33.3377 -1.30826 1.56399 +34.815 -1.562 1.86734 +33.4964 -1.69143 2.02207 +34.4683 -1.93483 2.31305 +32.3504 -1.99861 2.38929 +28.3439 -1.9114 2.28503 +18.6792 -1.36549 1.63241 +19.7517 -1.55603 1.8602 +28.157 -2.37841 2.84334 +34.5604 -3.11639 3.72558 +40.4507 -3.87879 4.63701 +46.4214 -4.71739 5.63953 +53.9498 -5.79252 6.92483 +64.3079 -7.27535 8.69752 +89.8695 -10.6869 12.7759 +93.8436 -11.7038 13.9916 +94.7587 -12.3695 14.7875 +94.6847 -12.913 15.4372 +94.6031 -13.4565 16.0869 +94.7088 -14.0289 16.7713 +94.6116 -14.5737 17.4225 +94.5068 -15.1184 18.0737 +95.1689 -15.7916 18.8785 +94.9505 -16.3238 19.5147 +95.5921 -17.0091 20.334 +95.3572 -17.5437 20.9731 +95.1149 -18.0769 21.6106 +95.6305 -18.7589 22.4258 +95.3717 -19.2936 23.0651 +95.9616 -20.0053 23.9159 +95.6859 -20.5418 24.5573 +95.4974 -21.0977 25.2218 +95.6781 -21.7387 25.9881 +96.0366 -22.4272 26.8112 +95.0722 -22.8067 27.2649 +95.5986 -23.5451 28.1477 +96.2982 -24.3381 29.0957 +95.9635 -24.8764 29.7392 +95.6215 -25.4127 30.3803 +96.2848 -26.2229 31.3489 +95.9245 -26.7611 31.9922 +96.2877 -27.5058 32.8826 +95.5459 -27.9375 33.3987 +95.3436 -28.5256 34.1017 +94.1396 -28.8098 34.4414 +93.924 -29.392 35.1375 +93.7891 -30.0027 35.8675 +94.1794 -30.7888 36.8074 +93.9344 -31.3742 37.5072 +94.0339 -32.0797 38.3505 +93.2425 -32.4825 38.8321 +93.7592 -33.3455 39.8638 +93.9984 -34.1219 40.792 +93.7906 -34.7432 41.5347 +93.5729 -35.3647 42.2777 +93.2598 -35.9533 42.9814 +93.8757 -36.91 44.1251 +92.4372 -37.0602 44.3046 +90.3272 -36.9213 44.1386 +88.8152 -37.0063 44.2403 +87.1411 -37.0064 44.2403 +86.137 -37.2776 44.5646 +84.2257 -37.1407 44.4009 +83.062 -37.3165 44.611 +80.8417 -36.9977 44.2299 +80.3354 -37.4489 44.7694 +79.1799 -37.5919 44.9403 +78.0267 -37.725 45.0993 +75.8446 -37.3402 44.6394 +74.861 -37.5264 44.8619 +73.1739 -37.345 44.6451 +72.6631 -37.7533 45.1332 +69.9863 -37.016 44.2518 +69.1738 -37.2414 44.5213 +67.8282 -37.169 44.4347 +67.0937 -37.421 44.736 +65.234 -37.03 44.2686 +64.9509 -37.5227 44.8575 +63.1109 -37.1046 44.3578 +62.6039 -37.4566 44.7786 +60.4962 -36.8341 44.0343 +60.4245 -37.4388 44.7572 +58.7718 -37.0561 44.2998 +58.2656 -37.3838 44.6915 +56.4933 -36.8849 44.0951 +55.9895 -37.1998 44.4715 +54.9307 -37.1395 44.3995 +53.7415 -36.9764 44.2045 +52.6285 -36.8502 44.0536 +52.2591 -37.2388 44.5182 +50.3591 -36.5208 43.6599 +49.9261 -36.8499 44.0532 +48.7086 -36.5913 43.7441 +48.2091 -36.8626 44.0685 +46.5609 -36.24 43.3241 +46.6326 -36.9481 44.1706 +45.0078 -36.304 43.4006 +45.128 -37.0602 44.3046 +43.1003 -36.0389 43.0837 +43.3909 -36.9449 44.1669 +41.9945 -36.4129 43.5308 +41.8503 -36.958 44.1825 +40.2427 -36.1985 43.2745 +40.2651 -36.8955 44.1077 +39.1953 -36.5907 43.7434 +39.1435 -37.2343 44.5128 +37.6973 -36.5425 43.6858 +37.1444 -36.6984 43.8721 +36.1603 -36.4179 43.5368 +36.1405 -37.1087 44.3627 +35.0597 -36.7079 43.8835 +34.6106 -36.9578 44.1822 +33.6498 -36.6526 43.8174 +33.6 -37.3397 44.6388 +32.6969 -37.0797 44.3279 +31.8035 -36.8125 44.0085 +30.8245 -36.4252 43.5456 +30.7504 -37.1063 44.3598 +29.8751 -36.8218 44.0196 +29.3278 -36.9304 44.1495 +28.3336 -36.4616 43.5891 +27.8804 -36.6766 43.846 +27.3375 -36.7734 43.9618 +26.794 -36.8669 44.0735 +26.0013 -36.6068 43.7626 +25.5024 -36.751 43.935 +24.6826 -36.4216 43.5413 +24.2644 -36.6766 43.8461 +23.3054 -36.0998 43.1565 +23.2256 -36.8832 44.0931 +22.3566 -36.4149 43.5332 +21.8604 -36.5387 43.6812 +21.0825 -36.1789 43.2511 +20.8974 -36.8382 44.0392 +20.1286 -36.47 43.599 +19.6318 -36.5813 43.7321 +18.8162 -36.0813 43.1344 +18.6337 -36.7955 43.9882 +17.8319 -36.2865 43.3797 +17.3961 -36.5077 43.6441 +16.9841 -36.7883 43.9796 +16.6485 -37.252 44.534 +15.6334 -36.1691 43.2394 +15.2186 -36.4412 43.5646 +14.7474 -36.5871 43.7391 +14.225 -36.606 43.7617 +13.7032 -36.6219 43.7807 +13.1821 -36.6347 43.796 +12.7483 -36.895 44.1072 +12.1628 -36.714 43.8907 +11.5035 -36.2777 43.3692 +11.0478 -36.4667 43.5951 +10.4239 -36.0856 43.1395 +10.0716 -36.648 43.8119 +9.42422 -36.1335 43.1968 +9.08884 -36.8186 44.0158 +8.4547 -36.297 43.3922 +8.08596 -36.9148 44.1308 +7.4661 -36.3861 43.4988 +6.97093 -36.4265 43.5471 +6.47522 -36.4642 43.5921 +5.98948 -36.5629 43.7101 +5.47279 -36.4673 43.5958 +4.97659 -36.4965 43.6308 +4.48786 -36.587 43.7389 +3.97612 -36.4827 43.6143 +3.49198 -36.6316 43.7923 +2.98315 -36.5217 43.6609 +2.45141 -36.0242 43.0661 +1.98927 -36.5495 43.6941 +1.47114 -36.0461 43.0923 +0.996532 -36.6304 43.7908 +0.491304 -36.1213 43.1822 +3.49625e-15 -36.6359 43.7975 +-0.498285 -36.6345 43.7958 +-0.996532 -36.6304 43.7908 +-1.49209 -36.5593 43.7058 +-1.99276 -36.6136 43.7708 +-2.49067 -36.6011 43.7558 +-2.99362 -36.6498 43.814 +-3.47977 -36.5036 43.6392 +-3.98309 -36.5467 43.6908 +-4.46432 -36.3951 43.5095 +-5.0376 -36.944 44.1657 +-5.5303 -36.8505 44.054 +-6.03129 -36.8181 44.0152 +-6.44126 -36.2729 43.3635 +-7.04405 -36.8087 44.0039 +-7.45305 -36.3225 43.4228 +-7.94678 -36.2794 43.3712 +-8.41036 -36.1066 43.1647 +-9.04191 -36.6285 43.7886 +-9.53975 -36.5765 43.7264 +-9.91531 -36.0793 43.1321 +-10.4056 -36.0225 43.0641 +-11.0669 -36.5297 43.6704 +-11.3839 -35.9005 42.9182 +-12.0797 -36.463 43.5907 +-12.3803 -35.8301 42.8341 +-13.0472 -36.2596 43.3476 +-13.5398 -36.1852 43.2586 +-14.225 -36.606 43.7617 +-14.7223 -36.525 43.6648 +-15.2444 -36.5031 43.6387 +-15.7136 -36.3546 43.4611 +-16.5107 -36.9437 44.1653 +-16.7285 -36.2346 43.3177 +-17.5423 -36.8145 44.0109 +-18.0423 -36.7149 43.8918 +-18.5101 -36.5514 43.6964 +-19.07 -36.5681 43.7164 +-19.8271 -36.9453 44.1672 +-20.0952 -36.4095 43.5267 +-20.8632 -36.7779 43.9671 +-21.4327 -36.7799 43.9695 +-22.183 -37.0778 44.3256 +-22.6864 -36.9521 44.1755 +-23.1507 -36.7643 43.9509 +-23.6498 -36.6333 43.7942 +-24.4988 -37.031 44.2697 +-25.0414 -36.9512 44.1744 +-25.9498 -37.3957 44.7058 +-26.1257 -36.782 43.972 +-26.9208 -37.0413 44.2821 +-27.5097 -37.005 44.2387 +-28.4065 -37.3686 44.6733 +-29.0029 -37.3229 44.6187 +-29.464 -37.1019 44.3546 +-30.3369 -37.3909 44.6999 +-30.8912 -37.2763 44.563 +-31.397 -37.1019 44.3545 +-32.2883 -37.3736 44.6793 +-32.4015 -36.7446 43.9274 +-33.75 -37.5064 44.8381 +-34.2081 -37.2607 44.5444 +-35.5376 -37.9477 45.3657 +-35.6867 -37.3644 44.6683 +-36.7764 -37.7617 45.1432 +-36.7513 -37.0132 44.2485 +-38.1792 -37.7208 45.0944 +-38.194 -37.0241 44.2614 +-39.7586 -37.8195 45.2123 +-40.2715 -37.5954 44.9445 +-41.2401 -37.7889 45.1758 +-41.288 -37.1387 44.3985 +-42.8495 -37.8404 45.2374 +-43.4221 -37.6507 45.0106 +-43.9325 -37.4061 44.7182 +-44.9266 -37.566 44.9093 +-46.0515 -37.8186 45.2113 +-46.5018 -37.509 44.8412 +-47.6396 -37.7459 45.1243 +-48.1511 -37.4777 44.8038 +-49.2375 -37.649 45.0086 +-49.8127 -37.4207 44.7356 +-51.5662 -38.0604 45.5004 +-52.0819 -37.7702 45.1535 +-53.7981 -38.3354 45.8292 +-53.7094 -37.607 44.9584 +-55.0373 -37.868 45.2703 +-55.5502 -37.5584 44.9002 +-57.3093 -38.0767 45.5198 +-57.6147 -37.6171 44.9704 +-59.4677 -38.1551 45.6136 +-59.7704 -37.6857 45.0525 +-61.7913 -38.2857 45.7696 +-62.5273 -38.0707 45.5127 +-63.9203 -38.2443 45.7202 +-64.438 -37.8849 45.2906 +-66.4371 -38.3813 45.884 +-66.5073 -37.7528 45.1326 +-69.2069 -38.5997 46.145 +-69.5011 -38.0857 45.5306 +-71.6252 -38.5612 46.099 +-71.9154 -38.0363 45.4715 +-74.062 -38.4801 46.0021 +-74.3478 -37.9441 45.3614 +-76.6734 -38.435 45.9481 +-77.1933 -38.0042 45.4332 +-79.5441 -38.4586 45.9764 +-80.5465 -38.2407 45.716 +-82.4388 -38.4294 45.9415 +-82.9584 -37.9664 45.388 +-86.2567 -38.7517 46.3268 +-86.8629 -38.3036 45.7911 +-89.0386 -38.5334 46.0658 +-91.1437 -38.7062 46.2724 +-92.5054 -38.5439 46.0784 +-94.5442 -38.645 46.1993 +-97.3559 -39.0322 46.6621 +-98.6505 -38.7873 46.3694 +-101.746 -39.2248 46.8924 +-102.448 -38.7188 46.2875 +-105.395 -39.042 46.6738 +-107.228 -38.9243 46.5332 +-111.252 -39.5667 47.3011 +-112.137 -39.0648 46.7011 +-115.754 -39.4896 47.209 +-119.214 -39.8177 47.6012 +-123.672 -40.4304 48.3336 +-125.649 -40.1944 48.0516 +-130.505 -40.8395 48.8227 +-132.138 -40.4386 48.3435 +-135.402 -40.5108 48.4297 +-137.768 -40.2832 48.1577 +-137.397 -39.2494 46.9217 +-138.659 -38.6833 46.245 +-138.72 -37.7801 45.1652 +-138.12 -36.7073 43.8828 +-137.223 -35.572 42.5256 +-137.237 -34.6847 41.4648 +-13.3502 -3.28803 3.93077 +-46.9273 -11.2573 13.4579 +-43.1319 -10.0724 12.0414 +-15.2708 -3.46962 4.14785 +-16.452 -3.63465 4.34515 +-15.9318 -3.42024 4.08883 +-15.312 -3.19212 3.81611 +-15.3548 -3.10627 3.71347 +-15.5878 -3.0577 3.65541 +-15.7246 -2.98852 3.57271 +-15.7647 -2.90037 3.46732 +-15.2254 -2.70912 3.23869 +-15.0684 -2.59055 3.09695 +-14.135 -2.34544 2.80392 +-14.0693 -2.25069 2.69064 +-13.3215 -2.052 2.45312 +-12.2771 -1.81857 2.17406 +-12.8871 -1.83308 2.19141 +-13.3028 -1.81422 2.16886 +-13.7189 -1.79083 2.1409 +-13.7428 -1.71395 2.04899 +-13.0773 -1.55509 1.85908 +-13.0979 -1.48181 1.77147 +-13.7094 -1.47196 1.75969 +-13.5313 -1.37507 1.64386 +-13.8462 -1.3277 1.58724 +-14.5569 -1.31263 1.56922 +-13.9794 -1.18083 1.41166 +-13.9949 -1.10252 1.31804 +-13.5126 -0.987798 1.18089 +-13.5255 -0.912107 1.0904 +-12.8406 -0.793293 0.948365 +-14.146 -0.794063 0.949285 +-12.3618 -0.624218 0.746239 +-12.6691 -0.568407 0.679518 +-11.9776 -0.470032 0.561913 +-10.6853 -0.359299 0.429533 +-10.3901 -0.291061 0.347957 +-11.2931 -0.253028 0.302489 +-11.0962 -0.186429 0.222872 +-11.0983 -0.124294 0.148591 +-11.0996 -0.0621493 0.0742981 +11.4 0 0 +11.4996 -0.063693 0.0775521 +11.6982 -0.129597 0.157796 +11.3961 -0.189398 0.23061 +29.582 -0.65564 0.798303 +31.5699 -0.874819 1.06517 +38.4472 -1.27883 1.55709 +36.3321 -1.41036 1.71724 +37.3089 -1.6558 2.01609 +35.9887 -1.79764 2.18879 +27.9931 -1.55437 1.89259 +31.355 -1.91618 2.33312 +26.6532 -1.77796 2.16483 +20.5669 -1.48724 1.81086 +21.042 -1.63977 1.99657 +30.1399 -2.5184 3.06638 +36.4419 -3.25054 3.95784 +41.4398 -3.93069 4.78598 +48.3967 -4.86498 5.92357 +56.9087 -6.04418 7.35936 +65.4897 -7.32899 8.92373 +90.1645 -10.6061 12.9139 +94.0399 -11.6016 14.126 +94.9547 -12.2612 14.9291 +95.1738 -12.8394 15.6331 +94.896 -13.3523 16.2576 +95.196 -13.9487 16.9839 +94.9033 -14.4607 17.6072 +94.7979 -15.0011 18.2652 +95.3625 -15.6526 19.0586 +95.3369 -16.2131 19.7409 +95.5921 -16.8253 20.4863 +95.3572 -17.3541 21.1302 +95.1149 -17.8816 21.7725 +95.7261 -18.5747 22.6164 +95.4671 -19.1042 23.2612 +95.2008 -19.6322 23.904 +95.7807 -20.34 24.7658 +95.4974 -20.8697 25.4108 +95.8666 -21.5461 26.2344 +95.5667 -22.0762 26.8798 +96.1026 -22.8048 27.7669 +95.7854 -23.3362 28.414 +96.4843 -24.1216 29.3704 +96.149 -24.6551 30.0199 +96.6378 -25.4053 30.9333 +96.3769 -25.9643 31.614 +96.0162 -26.4971 32.2627 +96.379 -27.2344 33.1604 +95.9099 -27.7409 33.7771 +96.6124 -28.5929 34.8145 +94.2299 -28.5258 34.7328 +93.924 -29.0744 35.4008 +94.1471 -29.7917 36.2742 +94.1794 -30.4561 37.0831 +93.757 -30.9765 37.7168 +94.0339 -31.733 38.6379 +94.2092 -32.4646 39.5287 +93.6718 -32.9544 40.125 +93.9984 -33.7532 41.0976 +94.2236 -34.5264 42.0391 +93.8314 -35.0791 42.7121 +94.2027 -35.9244 43.7413 +93.4494 -36.3453 44.2537 +93.7941 -37.1978 45.2918 +91.0019 -36.7951 44.8015 +90.4926 -37.2978 45.4135 +88.5587 -37.202 45.2969 +88.0438 -37.6911 45.8924 +85.6267 -37.3505 45.4777 +84.2088 -37.4229 45.5658 +82.2257 -37.2244 45.3242 +81.7107 -37.6784 45.877 +79.823 -37.4877 45.6448 +78.8253 -37.6992 45.9023 +76.7966 -37.4003 45.5383 +76.5158 -37.9414 46.1972 +74.5826 -37.6526 45.8455 +74.062 -38.0642 46.3467 +71.7611 -37.5445 45.7139 +69.7866 -37.1654 45.2523 +68.2845 -37.0146 45.0687 +68.3767 -37.7245 45.9331 +66.1328 -37.1345 45.2148 +66.2885 -37.8816 46.1244 +64.438 -37.4755 45.6299 +63.2621 -37.4414 45.5884 +62.3097 -37.5282 45.6941 +61.7913 -37.8719 46.1126 +59.3424 -37.0116 45.0651 +58.8313 -37.3388 45.4635 +57.7549 -37.3011 45.4175 +56.6147 -37.2087 45.305 +55.4814 -37.1065 45.1806 +55.0373 -37.4587 45.6095 +53.2365 -36.8731 44.8965 +52.7944 -37.2137 45.3111 +51.2205 -36.7442 44.7394 +51.2382 -37.4096 45.5497 +49.3581 -36.6785 44.6595 +49.4304 -37.388 45.5234 +47.7059 -36.7299 44.722 +47.199 -36.9927 45.0421 +45.6303 -36.4083 44.3306 +45.6205 -37.0598 45.1237 +44.0135 -36.4047 44.3261 +44.1732 -37.2046 45.3001 +42.7083 -36.6316 44.6023 +42.4969 -37.1234 45.2012 +41.7525 -37.1507 45.2345 +40.7813 -36.9646 45.0079 +39.6484 -36.6137 44.5806 +39.7586 -37.4108 45.5511 +38.1388 -36.571 44.5286 +38.1247 -37.2599 45.3674 +37.1274 -36.9879 45.0362 +36.5644 -37.1383 45.2193 +35.6344 -36.9065 44.9371 +35.5891 -37.5921 45.7719 +34.1066 -36.7487 44.745 +34.05 -37.4309 45.5756 +33.0909 -37.1209 45.1982 +32.6277 -37.3583 45.4872 +31.6833 -37.0356 45.0943 +31.1729 -37.2096 45.3062 +29.7828 -36.3112 44.2123 +29.7364 -37.0403 45.1 +28.8244 -36.6924 44.6765 +28.7133 -37.364 45.4942 +27.811 -37.0061 45.0584 +27.3434 -37.2162 45.3142 +26.3745 -36.731 44.7234 +25.8685 -36.8757 44.8996 +25.0414 -36.5519 44.5054 +24.9286 -37.2734 45.3839 +24.0708 -36.8823 44.9077 +23.7875 -37.3673 45.4982 +22.6498 -36.4938 44.4346 +22.2188 -36.7363 44.7299 +21.4327 -36.3824 44.299 +20.9658 -36.5594 44.5145 +20.429 -36.6143 44.5813 +19.9248 -36.726 44.7173 +19.1335 -36.2933 44.1905 +18.8809 -36.8808 44.9058 +18.1927 -36.6208 44.5892 +17.6593 -36.6594 44.6363 +17.1545 -36.7558 44.7537 +16.7588 -37.0935 45.1648 +16.0878 -36.818 44.8293 +15.6586 -37.0895 45.16 +14.8976 -36.5604 44.5157 +14.4427 -36.7647 44.7645 +13.7266 -36.2879 44.1839 +13.3621 -36.7336 44.7265 +12.7266 -36.4344 44.3622 +12.5371 -37.4347 45.5802 +11.8624 -37.0051 45.0572 +11.4104 -37.2563 45.3631 +10.7519 -36.8189 44.8304 +10.2279 -36.8145 44.8251 +9.7213 -36.8698 44.8924 +9.24528 -37.0476 45.1089 +8.57295 -36.4069 44.3288 +8.1973 -37.0187 45.0737 +7.7141 -37.1885 45.2805 +7.19029 -37.1668 45.254 +6.57711 -36.6377 44.6098 +6.0731 -36.6727 44.6524 +5.50155 -36.2627 44.1532 +5.13347 -37.2402 45.3434 +4.54278 -36.6345 44.6059 +4.04588 -36.7216 44.7119 +3.53471 -36.6792 44.6604 +3.03025 -36.6974 44.6826 +2.52556 -36.7128 44.7013 +2.02068 -36.7254 44.7166 +1.51565 -36.7352 44.7285 +1.01398 -36.8691 44.8916 +0.499158 -36.3021 44.2012 +3.55748e-15 -36.8747 44.8984 +-0.506139 -36.8098 44.8194 +-1.01224 -36.8057 44.8143 +-1.51565 -36.7352 44.7285 +-2.05209 -37.2963 45.4117 +-2.52992 -36.7762 44.7785 +-3.04072 -36.8242 44.8369 +-3.53471 -36.6792 44.6604 +-4.05285 -36.7849 44.789 +-4.55063 -36.6978 44.6829 +-5.11604 -37.1137 45.1894 +-5.61656 -37.0208 45.0763 +-6.12537 -36.9883 45.0367 +-6.64503 -37.0161 45.0705 +-7.15373 -36.9778 45.024 +-7.66189 -36.9368 44.974 +-8.16946 -36.8929 44.9206 +-8.66163 -36.7835 44.7873 +-9.15142 -36.6715 44.651 +-9.82033 -37.2454 45.3497 +-10.2105 -36.752 44.749 +-10.5697 -36.1948 44.0706 +-11.2577 -36.7579 44.7562 +-11.7428 -36.632 44.6029 +-12.2668 -36.6276 44.5976 +-12.7483 -36.4963 44.4377 +-13.4971 -37.1046 45.1783 +-13.7499 -36.3496 44.259 +-14.6605 -37.3189 45.4393 +-14.9727 -36.7447 44.7401 +-15.5291 -36.783 44.7867 +-15.9809 -36.5733 44.5314 +-16.7588 -37.0935 45.1648 +-17.0125 -36.4516 44.3832 +-17.8054 -36.9629 45.0058 +-18.3431 -36.9234 44.9577 +-18.85 -36.8204 44.8322 +-19.3556 -36.7146 44.7034 +-20.1852 -37.2061 45.3019 +-20.696 -37.0929 45.1641 +-21.171 -36.9172 44.9502 +-21.6778 -36.7985 44.8057 +-22.5413 -37.2696 45.3792 +-23.0163 -37.0843 45.1536 +-23.8624 -37.485 45.6415 +-24.0325 -36.8237 44.8363 +-25.2803 -37.7992 46.0241 +-25.3604 -37.0175 45.0723 +-26.3565 -37.5714 45.7467 +-26.4989 -36.9042 44.9343 +-27.8505 -37.9065 46.1547 +-27.9402 -37.178 45.2676 +-28.8448 -37.5352 45.7025 +-29.3598 -37.374 45.5063 +-30.2812 -37.7189 45.9263 +-30.4754 -37.1557 45.2405 +-31.6893 -37.8261 46.0568 +-31.7788 -37.1471 45.2301 +-32.6762 -37.4138 45.5548 +-33.1893 -37.2314 45.3327 +-34.15 -37.5408 45.7094 +-34.6649 -37.3503 45.4774 +-35.7436 -37.7553 45.9705 +-36.4181 -37.7182 45.9254 +-37.1473 -37.7304 45.9403 +-37.7184 -37.5767 45.7532 +-38.1792 -37.3131 45.4322 +-39.2427 -37.6295 45.8175 +-40.2619 -37.8843 46.1277 +-40.7812 -37.6599 45.8544 +-41.8137 -37.9005 46.1474 +-42.3913 -37.7191 45.9265 +-43.3786 -37.8937 46.1391 +-43.4221 -37.2438 45.3478 +-45.5574 -38.3705 46.7196 +-45.4745 -37.6132 45.7975 +-46.6056 -37.86 46.0981 +-47.1866 -37.6501 45.8425 +-48.8982 -38.3244 46.6636 +-48.7236 -37.5134 45.6761 +-50.5874 -38.2632 46.589 +-51.0466 -37.9333 46.1873 +-52.8128 -38.5592 46.9494 +-52.6783 -37.7899 46.0127 +-53.9988 -38.0627 46.3449 +-54.5201 -37.7622 45.979 +-56.2649 -38.2943 46.6269 +-56.1697 -37.5668 45.7411 +-58.4208 -38.3957 46.7504 +-58.7362 -37.9349 46.1892 +-60.7405 -38.5506 46.9389 +-61.3395 -38.2572 46.5817 +-62.4387 -38.2686 46.5956 +-63.1801 -38.0525 46.3324 +-64.7248 -38.3071 46.6425 +-65.4702 -38.0758 46.3608 +-67.4776 -38.5611 46.9517 +-68.0052 -38.1859 46.4949 +-70.2635 -38.7655 47.2006 +-70.7938 -38.3748 46.7249 +-73.004 -38.8788 47.3386 +-73.5358 -38.473 46.8445 +-75.15 -38.6234 47.0276 +-76.1478 -38.4428 46.8077 +-78.0131 -38.6839 47.1012 +-79.256 -38.598 46.9967 +-80.6622 -38.5777 46.972 +-81.913 -38.4693 46.8399 +-84.785 -39.096 47.603 +-85.7264 -38.8092 47.2538 +-87.4854 -38.879 47.3388 +-89.1705 -38.8963 47.3598 +-91.6916 -39.2527 47.7938 +-92.2278 -38.7433 47.1736 +-95.1891 -39.2335 47.7704 +-96.8213 -39.1481 47.6665 +-98.5432 -39.0812 47.585 +-100.185 -38.9651 47.4436 +-103.546 -39.4874 48.0796 +-103.826 -38.8158 47.2619 +-107.734 -39.4769 48.0668 +-109.926 -39.4725 48.0615 +-113.088 -39.7853 48.4423 +-114.422 -39.43 48.0097 +-119.375 -40.2846 49.0502 +-121.875 -40.2666 49.0284 +-126.968 -41.0595 49.9938 +-128.871 -40.7796 49.6529 +-133.291 -41.2606 50.2386 +-133.131 -40.3022 49.0717 +-138.212 -40.9045 49.805 +-137.677 -39.8216 48.4865 +-138.402 -39.1092 47.619 +-139.393 -38.4677 46.838 +-138.26 -37.2478 45.3526 +-138.305 -36.3592 44.2707 +-138.336 -35.4729 43.1916 +-12.9328 -3.23328 3.93682 +-12.3233 -3.00231 3.65559 +-14.1438 -3.35625 4.08655 +-48.6761 -11.2443 13.691 +-40.3451 -9.06756 11.0406 +-37.6316 -8.22389 10.0133 +-15.6473 -3.32287 4.0459 +-14.7414 -3.03995 3.70142 +-16.1178 -3.22538 3.9272 +-16.1616 -3.13599 3.81836 +-15.437 -2.90215 3.53364 +-15.2841 -2.78155 3.3868 +-15.3217 -2.6968 3.2836 +-14.7787 -2.51327 3.06015 +-15.3935 -2.52667 3.07646 +-14.3604 -2.27242 2.76688 +-13.6132 -2.07428 2.52562 +-13.8361 -2.02735 2.46848 +-12.4966 -1.75833 2.14093 +-13.9875 -1.88698 2.29758 +-12.739 -1.64494 2.00287 +-13.3501 -1.64699 2.00536 +-13.4706 -1.58455 1.92934 +-13.5903 -1.5209 1.85184 +-12.3286 -1.3094 1.59432 +-13.7289 -1.38007 1.68036 +-14.044 -1.33212 1.62198 +-13.6657 -1.21895 1.48419 +-12.8888 -1.07694 1.31128 +-13.1016 -1.02099 1.24315 +-12.8171 -0.926831 1.1285 +-13.7244 -0.915515 1.11472 +-13.1392 -0.802967 0.977688 +-12.7513 -0.708039 0.862103 +-13.6578 -0.682207 0.830651 +-12.6691 -0.562264 0.684609 +-12.7761 -0.49595 0.603865 +-12.0834 -0.401918 0.489373 +-11.7888 -0.326674 0.397756 +-11.6929 -0.259154 0.315544 +-11.3961 -0.189398 0.23061 +-11.4982 -0.127381 0.155099 +-10.7996 -0.0598161 0.0728317 +11.4 0 0 +12.0995 -0.0662771 0.0821998 +13.198 -0.144599 0.179338 +20.493 -0.336829 0.41775 +32.9799 -0.722884 0.896552 +36.5652 -1.00207 1.24281 +42.1422 -1.38628 1.71932 +38.4282 -1.47528 1.8297 +38.7055 -1.69884 2.10698 +37.3844 -1.84677 2.29044 +19.3262 -1.06129 1.31626 +23.4914 -1.41978 1.76088 +21.5811 -1.42374 1.76579 +20.3682 -1.45663 1.80658 +19.8509 -1.5299 1.89744 +33.1143 -2.73641 3.39381 +39.1156 -3.45056 4.27953 +43.5167 -4.08217 5.06289 +49.0881 -4.88006 6.05247 +54.1471 -5.68746 7.05383 +63.2247 -6.99748 8.67858 +92.131 -10.7179 13.2928 +94.2362 -11.4976 14.2598 +95.0527 -12.1385 15.0547 +94.2934 -12.5804 15.6027 +94.4078 -13.1371 16.2932 +94.9036 -13.7525 17.0565 +94.9033 -14.3012 17.737 +94.7009 -14.8205 18.381 +95.3625 -15.48 19.199 +95.1437 -16.0018 19.8462 +95.5921 -16.6397 20.6373 +95.3572 -17.1627 21.2859 +95.882 -17.827 22.1098 +95.6305 -18.3515 22.7604 +95.3717 -18.8746 23.4092 +95.9616 -19.5709 24.2726 +95.6859 -20.0957 24.9236 +95.4028 -20.6191 25.5727 +95.1125 -21.1409 26.2198 +95.3788 -21.7898 27.0247 +95.9152 -22.5093 27.917 +95.5053 -23.0113 28.5396 +95.2748 -23.5566 29.2159 +95.9635 -24.3362 30.1828 +96.453 -25.0771 31.1017 +95.4564 -25.4328 31.5428 +96.0162 -26.2049 32.5005 +95.5569 -26.7044 33.1199 +95.9099 -27.435 34.0261 +96.1593 -28.1449 34.9066 +94.5007 -28.2923 35.0893 +93.7442 -28.6987 35.5934 +94.2366 -29.4912 36.5763 +94.2685 -30.1487 37.3918 +93.8457 -30.6639 38.0308 +94.0339 -31.3831 38.9226 +93.4183 -31.8371 39.4857 +93.5843 -32.5605 40.383 +94.1725 -33.4428 41.4772 +94.137 -34.1143 42.31 +93.6591 -34.6286 42.9479 +93.6027 -35.302 43.783 +93.9609 -36.1412 44.8239 +93.2005 -36.5548 45.3368 +93.7851 -37.5023 46.512 +91.7506 -37.3992 46.3842 +89.7261 -37.2768 46.2323 +88.7899 -37.5914 46.6225 +86.8629 -37.4719 46.4742 +85.6014 -37.6222 46.6607 +84.0981 -37.6523 46.698 +82.6815 -37.7057 46.7642 +80.7876 -37.5224 46.5369 +79.9434 -37.8124 46.8966 +78.304 -37.7139 46.7744 +77.3827 -37.9481 47.0649 +75.7565 -37.8235 46.9103 +75.2277 -38.237 47.4232 +72.8414 -37.6894 46.744 +72.5444 -38.208 47.3872 +70.0334 -37.544 46.5638 +69.2823 -37.8026 46.8845 +67.6307 -37.5568 46.5796 +66.5115 -37.5899 46.6206 +65.1016 -37.4439 46.4395 +64.3591 -37.6706 46.7208 +62.5273 -37.244 46.1916 +62.2229 -37.7158 46.7768 +61.0542 -37.6593 46.7067 +59.8919 -37.5928 46.6242 +58.3157 -37.2479 46.1965 +57.7956 -37.566 46.5909 +56.7204 -37.5168 46.53 +56.1967 -37.8261 46.9135 +54.4526 -37.2995 46.2605 +53.9319 -37.5963 46.6286 +52.2145 -37.0441 45.9437 +51.6975 -37.3287 46.2967 +50.2023 -36.8945 45.7582 +49.3661 -36.9277 45.7993 +48.8508 -37.1967 46.1329 +47.7654 -37.0238 45.9186 +46.6886 -36.8419 45.693 +46.113 -37.0468 45.947 +45.718 -37.3975 46.3821 +44.0529 -36.6941 45.5096 +43.4221 -36.8331 45.6821 +43.3786 -37.4758 46.4791 +42.3913 -37.3031 46.265 +41.8137 -37.4825 46.4875 +40.7812 -37.2446 46.1923 +40.1501 -37.3625 46.3385 +39.1875 -37.1622 46.0902 +38.6694 -37.3755 46.3547 +37.611 -37.0565 45.959 +37.0414 -37.2079 46.1468 +36.0524 -36.9277 45.7993 +36.0012 -37.6079 46.643 +35.0201 -37.317 46.2821 +34.55 -37.5617 46.5857 +33.0909 -36.7116 45.5313 +33.0155 -37.3855 46.3671 +32.0651 -37.0685 45.9739 +31.5485 -37.2427 46.19 +30.6601 -36.9687 45.8501 +30.145 -37.1352 46.0567 +29.6275 -37.2989 46.2597 +29.1078 -37.4597 46.4592 +27.811 -36.598 45.3904 +27.6815 -37.261 46.2127 +26.7892 -36.8971 45.7614 +26.7226 -37.6732 46.7239 +25.3604 -36.6093 45.4045 +25.3585 -37.498 46.5066 +24.4152 -36.9975 45.8859 +24.1996 -37.5955 46.6275 +23.0529 -36.7338 45.5588 +22.5413 -36.8586 45.7137 +22.0981 -37.0983 46.0109 +21.5131 -37.1 46.013 +20.696 -36.6839 45.4969 +20.1527 -36.7365 45.5622 +19.7046 -36.9645 45.845 +19.19 -37.071 45.9771 +18.4032 -36.636 45.4375 +17.8639 -36.6753 45.4863 +17.2397 -36.5311 45.3075 +16.8139 -36.8051 45.6473 +16.4084 -37.1377 46.0598 +15.8397 -37.105 46.0192 +15.148 -36.7649 45.5974 +14.6847 -36.9683 45.8497 +14.1234 -36.9253 45.7963 +13.6095 -37.0012 45.8905 +12.9214 -36.5841 45.3732 +12.6618 -37.3903 46.373 +11.9621 -36.9046 45.7707 +11.563 -37.3384 46.3087 +10.9341 -37.03 45.9263 +10.4015 -37.0267 45.9221 +9.90286 -37.1442 46.0678 +9.37042 -37.135 46.0564 +8.88335 -37.3091 46.2724 +8.22513 -36.7347 45.56 +7.7141 -36.7784 45.6142 +7.31216 -37.38 46.3603 +6.67899 -36.7949 45.6346 +6.16718 -36.8301 45.6783 +5.66448 -36.925 45.7959 +5.13347 -36.8296 45.6776 +4.54278 -36.2305 44.9346 +4.10168 -36.8176 45.6627 +3.58965 -36.8386 45.6888 +3.07212 -36.7942 45.6338 +2.56482 -36.8723 45.7306 +2.05209 -36.885 45.7464 +1.54182 -36.9575 45.8363 +1.02795 -36.9646 45.8451 +0.507012 -36.4667 45.2276 +3.61259e-15 -37.033 45.9299 +-0.51312 -36.9061 45.7725 +-1.02795 -36.9646 45.8451 +-1.5392 -36.8948 45.7586 +-2.05558 -36.9477 45.8241 +-2.56482 -36.8723 45.7306 +-3.08259 -36.9196 45.7893 +-3.59576 -36.9012 45.7665 +-4.17841 -37.5063 46.517 +-4.62124 -36.8562 45.7107 +-5.27292 -37.83 46.9184 +-5.72199 -37.2999 46.2609 +-6.32397 -37.7665 46.8396 +-6.74691 -37.1691 46.0988 +-7.28779 -37.2554 46.2057 +-7.81852 -37.2762 46.2316 +-8.30863 -37.1077 46.0226 +-8.82422 -37.0607 45.9643 +-9.33914 -37.011 45.9027 +-9.85334 -36.9585 45.8375 +-10.3668 -36.9031 45.7688 +-10.7154 -36.2894 45.0077 +-11.4104 -36.8455 45.6974 +-11.7627 -36.2896 45.0079 +-12.4331 -36.7149 45.5354 +-12.9214 -36.5841 45.3732 +-13.677 -37.1847 46.1181 +-13.96 -36.498 45.2664 +-14.6605 -36.9074 45.7741 +-15.173 -36.8257 45.6728 +-15.7103 -36.8018 45.6432 +-16.2214 -36.7144 45.5348 +-17.0068 -37.2274 46.1711 +-17.5237 -37.1329 46.0539 +-18.0393 -37.0355 45.933 +-18.6137 -37.055 45.9572 +-19.4372 -37.5486 46.5694 +-19.6094 -36.7859 45.6235 +-20.4131 -37.2113 46.151 +-20.9965 -37.2163 46.1573 +-21.7867 -37.5718 46.5982 +-22.028 -36.9807 45.8651 +-22.828 -37.3274 46.2951 +-23.3095 -37.1426 46.0658 +-23.8624 -37.0717 45.9779 +-24.7979 -37.5774 46.6052 +-25.671 -37.9602 47.0799 +-26.1978 -37.8181 46.9036 +-26.7226 -37.6732 46.7239 +-27.2868 -37.5825 46.6115 +-27.8083 -37.4316 46.4243 +-28.3707 -37.3345 46.3039 +-29.2394 -37.629 46.6692 +-29.7614 -37.4674 46.4687 +-30.6898 -37.8063 46.889 +-31.1219 -37.5254 46.5406 +-32.1588 -37.9631 47.0835 +-32.2082 -37.234 46.1792 +-33.161 -37.5502 46.5714 +-34.125 -37.8588 46.9541 +-35.05 -38.1053 47.2599 +-35.5784 -37.9119 47.0199 +-36.2072 -37.8232 46.9099 +-36.6794 -37.5698 46.5957 +-37.6773 -37.8466 46.939 +-38.202 -37.6388 46.6812 +-39.214 -37.9019 47.0076 +-39.6843 -37.6333 46.6745 +-40.8211 -37.9869 47.113 +-41.291 -37.7101 46.7697 +-42.3299 -37.9453 47.0614 +-42.8559 -37.7119 46.772 +-43.9076 -37.9328 47.0459 +-45.0281 -38.1954 47.3717 +-46.0388 -38.3484 47.5613 +-46.6311 -38.1445 47.3085 +-47.1597 -37.8876 46.9899 +-48.4316 -38.2174 47.3988 +-49.4646 -38.3409 47.552 +-49.9957 -38.0685 47.2142 +-51.1659 -38.274 47.469 +-51.6961 -37.9923 47.1197 +-53.1408 -38.3709 47.5892 +-53.6722 -38.0783 47.2264 +-55.2033 -38.4825 47.7277 +-55.7362 -38.1788 47.3509 +-57.1515 -38.4687 47.7106 +-57.8906 -38.2909 47.49 +-58.8376 -38.2432 47.4309 +-59.7175 -38.1433 47.307 +-61.589 -38.658 47.9454 +-62.3381 -38.4512 47.6889 +-63.0142 -38.1955 47.3717 +-63.7604 -37.9785 47.1026 +-65.6756 -38.4412 47.6764 +-67.3871 -38.7584 48.0699 +-69.1868 -39.1019 48.4958 +-69.7278 -38.7214 48.0239 +-71.8484 -39.2027 48.6209 +-71.7823 -38.4816 47.7266 +-74.0765 -39.0149 48.388 +-74.6161 -38.6077 47.883 +-76.5489 -38.9086 48.2561 +-77.2434 -38.5659 47.8311 +-79.1951 -38.8369 48.1673 +-80.3667 -38.7073 48.0065 +-82.0997 -38.8323 48.1615 +-83.5207 -38.7918 48.1113 +-85.9176 -39.1814 48.5945 +-87.436 -39.1467 48.5514 +-89.1237 -39.1703 48.5807 +-90.077 -38.8584 48.1939 +-92.9351 -39.3463 48.799 +-94.2291 -39.1476 48.5525 +-96.6987 -39.4162 48.8857 +-98.0021 -39.1886 48.6034 +-100.07 -39.249 48.6783 +-102.146 -39.2897 48.7288 +-105.089 -39.6339 49.1557 +-106.411 -39.3435 48.7955 +-109.379 -39.6379 49.1606 +-111.493 -39.5936 49.1057 +-115.012 -40.016 49.6296 +-116.355 -39.654 49.1807 +-122.553 -40.9012 50.7274 +-124.536 -40.692 50.468 +-129.107 -41.2907 51.2105 +-130.75 -40.918 50.7483 +-134.37 -41.1358 51.0184 +-136.29 -40.8036 50.6064 +-138.212 -40.4534 50.1721 +-138.496 -39.6167 49.1344 +-139.042 -38.8566 48.1916 +-138.201 -37.7181 46.7796 +-137.892 -36.7389 45.5652 +-138.767 -36.0784 44.7459 +-139.634 -35.4109 43.9182 +-139.47 -34.4837 42.7682 +-139.29 -33.561 41.6238 +-14.1438 -3.31924 4.11667 +-14.3773 -3.28458 4.07368 +-42.5131 -9.4495 11.7197 +-17.3975 -3.76007 4.66341 +-15.6473 -3.28623 4.07572 +-15.6924 -3.20039 3.96926 +-15.3548 -3.03881 3.76887 +-15.3009 -2.93625 3.64166 +-15.7246 -2.92363 3.62601 +-15.7647 -2.83739 3.51905 +-16.6708 -2.90189 3.59905 +-14.9719 -2.51806 3.123 +-15.3935 -2.49881 3.09913 +-14.9426 -2.33848 2.90028 +-14.1966 -2.13931 2.65327 +-13.7386 -1.99087 2.46917 +-13.0824 -1.82045 2.2578 +-14.1831 -1.89227 2.34688 +-12.543 -1.60178 1.98659 +-13.5465 -1.65278 2.04984 +-13.2739 -1.5442 1.91518 +-12.901 -1.42784 1.77086 +-13.5121 -1.41927 1.76024 +-13.8276 -1.37466 1.70492 +-13.1539 -1.23393 1.53038 +-13.1706 -1.16183 1.44095 +-13.6819 -1.13061 1.40223 +-13.7964 -1.06327 1.31872 +-14.0094 -1.00188 1.24258 +-12.8293 -0.846373 1.04971 +-13.2388 -0.800132 0.992359 +-13.0502 -0.716645 0.888814 +-13.4584 -0.664836 0.824559 +-12.9683 -0.5692 0.705946 +-12.5765 -0.482817 0.598811 +-11.2845 -0.371206 0.460386 +-11.6889 -0.320333 0.397291 +-12.0926 -0.265058 0.328737 +-11.1962 -0.184024 0.228234 +-10.8983 -0.119404 0.14809 +-10.4996 -0.0575132 0.0713304 +11.9 0 0 +11.4996 -0.0622831 0.0786889 +26.6959 -0.2892 0.365377 +29.8898 -0.48576 0.613712 +35.3784 -0.766748 0.968715 +38.0637 -1.03142 1.3031 +40.7441 -1.32523 1.67431 +39.626 -1.50417 1.90038 +38.8052 -1.68409 2.12769 +29.3094 -1.4316 1.8087 +19.625 -1.0656 1.34629 +17.8176 -1.06477 1.34524 +18.1003 -1.18069 1.4917 +18.8779 -1.33488 1.6865 +20.5457 -1.56566 1.97806 +36.0886 -2.9487 3.7254 +39.9078 -3.4809 4.3978 +44.4068 -4.11888 5.20382 +51.261 -5.03885 6.36611 +58.684 -6.09477 7.70017 +70.2168 -7.68406 9.70809 +92.426 -10.6314 13.4318 +94.6289 -11.4158 14.4228 +94.4647 -11.9279 15.0698 +94.3912 -12.452 15.7319 +95.2865 -13.1105 16.5638 +95.0985 -13.626 17.2152 +94.9033 -14.1406 17.8653 +95.3801 -14.7591 18.6467 +95.1689 -15.2751 19.2987 +95.1437 -15.8221 19.9897 +94.9176 -16.3368 20.64 +95.3572 -16.97 21.4399 +95.1149 -17.4858 22.0916 +95.6305 -18.1454 22.925 +95.4671 -18.6813 23.6021 +95.1057 -19.1785 24.2302 +95.6859 -19.87 25.1039 +95.4028 -20.3875 25.7577 +95.9609 -21.0899 26.6451 +95.5667 -21.5875 27.2738 +95.9152 -22.2565 28.119 +95.5053 -22.7528 28.7461 +96.2982 -23.5422 29.7434 +95.9635 -24.0629 30.4012 +96.453 -24.7954 31.3267 +96.1007 -25.3168 31.9855 +95.9245 -25.8859 32.7044 +95.6482 -26.4296 33.3914 +95.9099 -27.1268 34.2722 +96.3405 -27.8813 35.2254 +96.1253 -28.4554 35.9508 +95.0025 -28.7573 36.3321 +94.0576 -29.1046 36.7709 +94.2685 -29.8101 37.6623 +93.8457 -30.3195 38.3059 +94.0339 -31.0306 39.2042 +94.1213 -31.7164 40.0707 +93.7592 -32.255 40.7512 +94.6077 -33.22 41.9703 +94.2236 -33.7622 42.6553 +93.4868 -34.1767 43.179 +93.0027 -34.6817 43.8171 +93.5346 -35.5732 44.9434 +93.7941 -36.3744 45.9557 +93.9538 -37.1478 46.9328 +93.5118 -37.6891 47.6166 +90.7268 -37.2691 47.0861 +90.1993 -37.7591 47.7051 +88.2639 -37.6486 47.5655 +86.9939 -37.8048 47.7628 +85.0751 -37.6619 47.5823 +84.2996 -38.0117 48.0243 +82.5561 -37.9131 47.8997 +81.381 -38.06 48.0853 +79.6527 -37.9325 47.9242 +79.1163 -38.3625 48.4674 +76.8521 -37.9395 47.9331 +75.9272 -38.1591 48.2104 +73.9988 -37.8582 47.8303 +73.2338 -38.1379 48.1837 +71.098 -37.6866 47.6135 +69.8106 -37.6631 47.5838 +68.5294 -37.6285 47.5401 +68.1464 -38.0813 48.1121 +66.2075 -37.6523 47.5701 +65.4562 -37.8824 47.8609 +63.8329 -37.5947 47.4973 +62.8703 -37.6802 47.6055 +61.9101 -37.7583 47.7041 +61.1647 -37.9605 47.9596 +59.5773 -37.6264 47.5374 +58.4208 -37.5458 47.4356 +57.2711 -37.4556 47.3216 +56.1967 -37.4012 47.2529 +55.0606 -37.2923 47.1154 +54.6011 -37.6352 47.5486 +53.4734 -37.5112 47.3919 +52.944 -37.7994 47.756 +51.3064 -37.2824 47.1028 +50.7159 -37.5113 47.392 +49.6141 -37.3535 47.1927 +49.0241 -37.5726 47.4695 +47.7469 -37.2538 47.0667 +47.2828 -37.5599 47.4534 +45.6571 -36.9283 46.6554 +45.6176 -37.5707 47.4671 +44.1359 -37.0181 46.7689 +43.6724 -37.3059 47.1326 +42.7397 -37.1873 46.9827 +42.0432 -37.2649 47.0807 +41.2344 -37.2354 47.0435 +40.7652 -37.5088 47.3888 +40.181 -37.6764 47.6006 +39.6497 -37.8926 47.8737 +38.1483 -37.1637 46.9528 +37.5713 -37.3162 47.1456 +36.4704 -36.9362 46.6655 +36.4647 -37.6643 47.5853 +35.4769 -37.3791 47.225 +34.95 -37.5698 47.466 +34.0265 -37.3256 47.1573 +33.5003 -37.5084 47.3883 +32.5422 -37.1975 46.9956 +31.971 -37.3175 47.1472 +31.4451 -37.4893 47.3642 +30.5536 -37.2158 47.0186 +29.6275 -36.8799 46.5944 +29.4585 -37.4853 47.3592 +28.629 -37.2513 47.0635 +28.4422 -37.8549 47.8261 +27.1624 -36.991 46.7346 +26.6819 -37.1934 46.9903 +25.7991 -36.8242 46.5239 +25.3194 -37.0196 46.7709 +24.7979 -37.1554 46.9423 +24.237 -37.2307 47.0375 +23.3828 -36.8408 46.545 +22.8639 -36.9661 46.7032 +22.0981 -36.6816 46.3438 +21.7867 -37.1498 46.9353 +20.9965 -36.7983 46.4912 +20.5759 -37.0867 46.8556 +19.9902 -37.079 46.8459 +19.1591 -36.5956 46.2352 +18.6137 -36.6388 46.2897 +18.0978 -36.7383 46.4153 +17.609 -36.8943 46.6125 +17.1998 -37.2269 47.0328 +16.4619 -36.8402 46.5442 +16.228 -37.5874 47.4882 +15.1981 -36.4722 46.0792 +14.8298 -36.9144 46.6379 +14.1468 -36.5709 46.2039 +13.7895 -37.0694 46.8337 +13.1595 -36.8397 46.5435 +12.6826 -37.031 46.7852 +12.0219 -36.6726 46.3324 +11.7157 -37.4064 47.2595 +10.9341 -36.6141 46.2585 +10.5578 -37.1609 46.9493 +9.90286 -36.727 46.4011 +9.52686 -37.3309 47.1641 +8.88335 -36.8901 46.6071 +8.48956 -37.4899 47.365 +7.84462 -36.9806 46.7215 +7.40966 -37.4529 47.3182 +6.79219 -36.9983 46.7439 +6.27171 -37.0337 46.7886 +5.6549 -36.4485 46.0492 +5.22934 -37.096 46.8673 +4.6997 -37.061 46.8231 +4.17841 -37.0851 46.8535 +3.6446 -36.9823 46.7237 +3.12969 -37.0627 46.8252 +2.56918 -36.5202 46.1398 +2.0835 -37.0289 46.7825 +1.56538 -37.1008 46.8734 +1.0454 -37.17 46.9608 +0.513993 -36.5536 46.1821 +3.67382e-15 -37.2377 47.0463 +-0.522719 -37.1742 46.9661 +-1.04365 -37.1079 46.8824 +-1.54182 -36.5424 46.168 +-2.09048 -37.153 46.9393 +-2.60844 -37.0782 46.8449 +-3.13492 -37.1247 46.9035 +-3.65681 -37.1063 46.8803 +-4.23422 -37.5803 47.4792 +-4.69185 -36.9992 46.745 +-5.27292 -37.4051 47.2579 +-5.78908 -37.3133 47.1419 +-6.41805 -37.8978 47.8803 +-6.86011 -37.3683 47.2114 +-7.3731 -37.2681 47.0847 +-7.92294 -37.3498 47.188 +-8.44781 -37.3055 47.132 +-8.80944 -36.5831 46.2193 +-9.57379 -37.5148 47.3964 +-9.88635 -36.6658 46.3238 +-10.5578 -37.1609 46.9493 +-10.8977 -36.492 46.1043 +-11.5821 -36.98 46.7208 +-11.9222 -36.3685 45.9482 +-12.641 -36.9096 46.6318 +-13.1162 -36.7185 46.3904 +-13.6545 -36.7066 46.3754 +-14.1935 -36.6916 46.3564 +-14.9024 -37.0951 46.8661 +-15.4234 -37.0129 46.7624 +-15.9433 -36.928 46.655 +-16.4352 -36.7805 46.4687 +-17.2273 -37.2866 47.1082 +-17.751 -37.1919 46.9884 +-18.3025 -37.1537 46.9402 +-18.8543 -37.1124 46.888 +-19.6226 -37.481 47.3538 +-19.895 -36.9025 46.6228 +-20.7061 -37.3215 47.1522 +-20.9965 -36.7983 46.4912 +-22.1629 -37.7913 47.7458 +-22.3082 -37.0304 46.7844 +-23.1864 -37.4876 47.3621 +-23.676 -37.3028 47.1286 +-24.6117 -37.8062 47.7646 +-24.7596 -37.098 46.8699 +-25.632 -37.4767 47.3483 +-26.2377 -37.4503 47.3149 +-27.0887 -37.7603 47.7066 +-27.6186 -37.6122 47.5194 +-28.569 -38.0236 48.0393 +-29.1026 -37.8675 47.842 +-29.5901 -37.6526 47.5706 +-30.163 -37.5465 47.4365 +-31.0983 -37.8793 47.857 +-31.5836 -37.6544 47.5728 +-32.91 -38.4135 48.5319 +-33.0194 -37.7429 47.6847 +-33.9367 -37.9969 48.0056 +-34.4696 -37.8117 47.7715 +-35.5 -38.161 48.2129 +-36.086 -38.0208 48.0357 +-37.0312 -38.2495 48.3246 +-37.6199 -38.1004 48.1363 +-38.1542 -37.8952 47.8771 +-38.6318 -37.6348 47.548 +-40.1399 -38.361 48.4655 +-40.2914 -37.7799 47.7314 +-41.7717 -38.4349 48.5589 +-41.8008 -37.7469 47.6897 +-42.9035 -38.0275 48.0442 +-43.9592 -38.2484 48.3232 +-44.9656 -38.4105 48.5281 +-45.5039 -38.1655 48.2186 +-46.761 -38.5124 48.6569 +-47.3616 -38.307 48.3972 +-48.3294 -38.3913 48.5038 +-48.9297 -38.1767 48.2327 +-50.5974 -38.7784 48.9929 +-50.6318 -38.1198 48.1608 +-52.2586 -38.6523 48.8336 +-52.8001 -38.3678 48.4742 +-53.9281 -38.502 48.6436 +-54.0698 -37.9295 47.9204 +-55.6048 -38.3271 48.4227 +-56.1415 -38.0244 48.0403 +-57.7653 -38.4452 48.5719 +-58.0283 -37.9508 47.9473 +-59.8101 -38.4387 48.5637 +-60.3483 -38.1133 48.1526 +-62.2254 -38.6188 48.7913 +-62.98 -38.4108 48.5285 +-63.9493 -38.3269 48.4225 +-65.6464 -38.6627 48.8467 +-66.8457 -38.6867 48.877 +-67.977 -38.6585 48.8414 +-69.484 -38.8288 49.0565 +-70.7014 -38.8211 49.0468 +-72.3012 -39.0068 49.2814 +-73.5313 -38.9764 49.2431 +-74.7659 -38.9358 49.1917 +-76.005 -38.8846 49.1271 +-77.6369 -39.0183 49.296 +-78.8869 -38.9441 49.2022 +-80.2983 -38.9356 49.1915 +-81.5567 -38.8393 49.0699 +-84.0963 -39.3299 49.6896 +-84.6461 -38.8729 49.1123 +-87.2929 -39.3615 49.7295 +-88.0873 -38.9954 49.267 +-90.5982 -39.3711 49.7418 +-91.6428 -39.0899 49.3864 +-94.0958 -39.3903 49.7659 +-95.3965 -39.1874 49.5097 +-97.9567 -39.4805 49.8799 +-99.5202 -39.3487 49.7134 +-102.444 -39.729 50.1939 +-103.766 -39.4645 49.8598 +-106.632 -39.7641 50.2382 +-108.824 -39.7835 50.2628 +-111.198 -39.8443 50.3396 +-113.32 -39.7906 50.2717 +-116.324 -40.0179 50.5589 +-120.398 -40.5709 51.2576 +-124.142 -40.9662 51.757 +-126.31 -40.8081 51.5573 +-130.8 -41.3622 52.2573 +-132.987 -41.1507 51.9901 +-136.167 -41.2179 52.0749 +-136.832 -40.5056 51.175 +-137.849 -39.8941 50.4024 +-138.496 -39.1717 49.4898 +-138.585 -38.2939 48.3808 +-137.834 -37.1955 46.993 +-138.536 -36.496 46.1093 +-138.859 -35.6968 45.0996 +-140.097 -35.1295 44.3828 +-140.028 -34.2328 43.25 +-139.197 -33.1618 41.8969 +-138.346 -32.1023 40.5583 +-138.417 -31.267 39.5029 +-14.5167 -3.19042 4.03079 +-13.1427 -2.80859 3.54839 +-15.3628 -3.19024 4.03057 +-15.4071 -3.10691 3.92529 +-15.641 -3.06068 3.86688 +-15.3009 -2.90327 3.66801 +-14.8617 -2.73215 3.45182 +-15.4763 -2.7542 3.47967 +-15.0326 -2.58735 3.26887 +-15.9378 -2.6504 3.34853 +-14.5222 -2.33089 2.94486 +-14.8455 -2.2972 2.9023 +-14.0994 -2.1008 2.65416 +-14.2258 -2.03832 2.57523 +-13.7658 -1.89403 2.39293 +-13.6941 -1.8065 2.28234 +-13.7189 -1.73227 2.18856 +-13.4483 -1.62237 2.04971 +-13.4706 -1.54948 1.95762 +-13.6888 -1.49802 1.8926 +-13.4135 -1.39309 1.76004 +-13.7289 -1.34952 1.70499 +-13.7473 -1.27511 1.61098 +-12.7745 -1.11423 1.40773 +-13.1862 -1.07741 1.36121 +-12.8038 -0.975695 1.2327 +-13.7113 -0.969545 1.22493 +-13.0282 -0.849838 1.07369 +-13.3383 -0.797091 1.00705 +-13.5482 -0.735643 0.929416 +-13.6578 -0.667107 0.842827 +-13.5669 -0.588782 0.743871 +-13.2752 -0.503916 0.636651 +-12.0834 -0.393022 0.496546 +-11.7888 -0.319443 0.403586 +-10.9933 -0.238255 0.301013 +-11.596 -0.188456 0.238096 +-11.1983 -0.121312 0.153267 +-11.0996 -0.0601168 0.075952 +19.2 0 0 +18.3993 -0.0985129 0.126796 +29.9954 -0.321226 0.413451 +32.4889 -0.521959 0.671815 +35.5783 -0.762259 0.981106 +40.0618 -1.07315 1.38125 +40.1449 -1.29081 1.6614 +39.1269 -1.46823 1.88977 +40.7006 -1.74614 2.24746 +27.814 -1.34302 1.7286 +20.7208 -1.11223 1.43155 +15.3291 -0.905579 1.16557 +17.3047 -1.11588 1.43626 +17.9837 -1.25711 1.61802 +25.0122 -1.88421 2.42517 +34.6014 -2.79484 3.59725 +38.2243 -3.29592 4.24219 +42.6266 -3.90853 5.03069 +52.3475 -5.08677 6.54721 +60.5579 -6.21743 8.00247 +81.2466 -8.78939 11.3129 +94.3925 -10.7334 13.815 +94.9233 -11.3203 14.5704 +94.5627 -11.8037 15.1925 +94.3912 -12.3095 15.8436 +95.0912 -12.9339 16.6473 +94.9036 -13.4425 17.3019 +94.7088 -13.9501 17.9553 +94.7009 -14.4864 18.6455 +95.3625 -15.1311 19.4752 +94.9505 -15.6093 20.0908 +94.9176 -16.1499 20.7866 +95.3572 -16.7758 21.5922 +95.882 -17.4251 22.4279 +95.7261 -17.9557 23.1109 +95.3717 -18.4491 23.746 +95.9616 -19.1297 24.6219 +95.6859 -19.6427 25.2822 +95.4028 -20.1543 25.9406 +95.9609 -20.8486 26.8343 +95.5667 -21.3406 27.4675 +95.8216 -21.9804 28.291 +95.692 -22.5365 29.0068 +96.2982 -23.2729 29.9546 +96.0562 -23.8105 30.6466 +95.8063 -24.3474 31.3376 +96.2848 -25.0752 32.2743 +96.0162 -25.6142 32.9681 +95.6482 -26.1273 33.6285 +96.0009 -26.8419 34.5483 +95.6155 -27.3549 35.2085 +95.674 -27.9978 36.0361 +96.0811 -28.7511 37.0056 +93.5206 -28.6074 36.8207 +93.6448 -29.2741 37.6788 +94.4667 -30.1709 38.8331 +94.0339 -30.6756 39.4826 +93.594 -31.1779 40.1291 +93.6718 -31.8562 41.0023 +93.9984 -32.6284 41.9962 +93.5307 -33.1305 42.6424 +93.4868 -33.7857 43.4857 +93.7741 -34.5693 44.4943 +93.6199 -35.1983 45.3038 +93.7093 -35.9258 46.2402 +92.8574 -36.2943 46.7145 +93.9311 -37.4249 48.1698 +92.6447 -37.6216 48.4229 +91.6916 -37.9446 48.8387 +89.4177 -37.7044 48.5295 +88.1408 -37.865 48.7361 +86.4591 -37.8367 48.6997 +85.2704 -38.0096 48.9223 +82.6365 -37.5159 48.2868 +83.3775 -38.5476 49.6148 +79.732 -37.5359 48.3126 +79.5891 -38.1502 49.1033 +77.5565 -37.8492 48.7159 +77.7146 -38.6105 49.6957 +75.3877 -38.1275 49.0741 +74.6127 -38.4114 49.4395 +72.9229 -38.2118 49.1825 +71.6974 -38.2385 49.2169 +69.8027 -37.8891 48.7672 +69.3354 -38.3025 49.2992 +67.4609 -37.9261 48.8148 +66.9189 -38.2858 49.2778 +64.921 -37.798 48.65 +64.0212 -37.9311 48.8212 +62.1241 -37.4554 48.2089 +61.9426 -38.0035 48.9144 +60.2081 -37.5897 48.3819 +59.6017 -37.8665 48.7382 +58.5101 -37.8281 48.6887 +57.3561 -37.7361 48.5703 +56.2091 -37.6347 48.4397 +55.6717 -37.9342 48.8252 +54.0698 -37.4956 48.2607 +53.4688 -37.7373 48.5719 +52.3455 -37.6023 48.3981 +51.8087 -37.8811 48.757 +50.123 -37.3049 48.0153 +49.5904 -37.5719 48.3589 +48.4939 -37.4038 48.1426 +47.96 -37.662 48.4749 +46.7529 -37.3819 48.1144 +46.1592 -37.5818 48.3717 +44.4927 -36.8905 47.4819 +44.5541 -37.6237 48.4255 +42.7978 -36.8118 47.3806 +42.6741 -37.3914 48.1266 +42.2539 -37.7195 48.549 +41.604 -37.8426 48.7074 +40.6226 -37.6546 48.4654 +40.1399 -37.9221 48.8097 +39.1154 -37.6699 48.4851 +38.4721 -37.7738 48.6188 +37.3064 -37.3506 48.0741 +36.9282 -37.7067 48.5325 +35.9845 -37.4801 48.2408 +35.4 -37.6182 48.4185 +34.4204 -37.3257 48.0421 +34.373 -38.0451 48.968 +32.9717 -37.2573 47.9539 +32.863 -37.9199 48.8068 +31.8607 -37.5502 48.3309 +31.0076 -37.3366 48.0561 +30.0291 -36.9522 47.5613 +29.8969 -37.6079 48.4052 +28.9734 -37.2681 47.9679 +28.4422 -37.4218 48.1657 +27.5356 -37.0702 47.7132 +27.3734 -37.7207 48.5504 +26.1978 -36.9655 47.5785 +26.0618 -37.6692 48.4841 +25.1423 -37.2404 47.9323 +24.6491 -37.4305 48.1769 +23.7493 -36.9902 47.6103 +23.6164 -37.7461 48.5831 +22.6934 -37.2389 47.9303 +22.1971 -37.4166 48.1591 +21.2969 -36.8978 47.4914 +20.7387 -36.9525 47.5616 +19.9585 -36.5967 47.1037 +19.4681 -36.7605 47.3145 +18.9144 -36.8048 47.3716 +18.6826 -37.4914 48.2553 +17.8646 -37.0017 47.625 +17.4754 -37.3908 48.1259 +16.649 -36.8326 47.4074 +16.3832 -37.513 48.2831 +15.5987 -37.0053 47.6296 +15.0717 -37.0874 47.7353 +14.3802 -36.7491 47.2999 +14.1944 -37.7214 48.5513 +13.3543 -36.9574 47.568 +13.0153 -37.5675 48.3533 +12.3409 -37.2149 47.8995 +11.8874 -37.5205 48.2928 +11.2439 -37.2207 47.907 +10.7141 -37.2795 47.9826 +10.0349 -36.7909 47.3537 +9.65201 -37.3886 48.123 +9.01637 -37.0141 47.641 +8.6009 -37.547 48.3269 +7.94905 -37.0442 47.6797 +7.53153 -37.6334 48.4381 +6.89408 -37.1236 47.782 +6.36578 -37.1592 47.8277 +5.83701 -37.1918 47.8697 +5.37751 -37.7106 48.5374 +4.77031 -37.1875 47.8642 +4.22724 -37.0892 47.7377 +3.6507 -36.6205 47.1344 +3.17679 -37.1901 47.8675 +2.60408 -36.5927 47.0986 +2.11491 -37.1571 47.8251 +1.58894 -37.2284 47.9167 +1.06285 -37.3581 48.0838 +0.523592 -36.8102 47.3786 +3.7228e-15 -37.3025 48.0121 +-0.522719 -36.7489 47.2996 +-1.05762 -37.1741 47.8469 +-1.58894 -37.2284 47.9167 +-2.1184 -37.2184 47.904 +-2.6477 -37.2057 47.8875 +-3.18203 -37.2514 47.9464 +-3.70565 -37.1717 47.8438 +-4.28305 -37.5788 48.3678 +-4.75462 -37.0652 47.7067 +-5.35136 -37.5273 48.3015 +-5.87534 -37.4361 48.1841 +-6.40759 -37.4032 48.1418 +-6.95068 -37.4284 48.1743 +-7.49496 -37.4507 48.2029 +-7.90989 -36.8617 47.4448 +-8.54523 -37.304 48.0141 +-8.95725 -36.7714 47.3286 +-9.71458 -37.631 48.4349 +-10.0349 -36.7909 47.3537 +-10.6967 -37.2192 47.9049 +-11.0617 -36.6175 47.1306 +-11.7348 -37.0387 47.6727 +-12.301 -37.0947 47.7448 +-12.8074 -36.9674 47.5809 +-13.3327 -36.8974 47.4908 +-14.0594 -37.3627 48.0896 +-14.3569 -36.6894 47.2231 +-15.1443 -37.266 47.9652 +-15.4484 -36.6489 47.1709 +-16.4091 -37.5722 48.3594 +-16.7291 -37.01 47.6357 +-17.4754 -37.3908 48.1259 +-17.7794 -36.8252 47.3979 +-18.5656 -37.2567 47.9532 +-19.0948 -37.1558 47.8234 +-19.9625 -37.6941 48.5162 +-20.1806 -37.0039 47.6279 +-21.3898 -38.1127 49.055 +-21.5973 -37.4184 48.1613 +-22.4365 -37.8202 48.6785 +-23.0436 -37.8135 48.6699 +-23.5448 -37.6314 48.4356 +-24.3723 -37.9607 48.8593 +-24.8739 -37.7718 48.6162 +-25.4867 -37.7506 48.5889 +-26.2962 -38.008 48.9203 +-26.8757 -37.922 48.8096 +-27.4547 -37.8327 48.6947 +-28.0333 -37.7402 48.5755 +-28.9494 -38.0891 49.0246 +-29.49 -37.9326 48.8232 +-30.0723 -37.8284 48.6891 +-30.8769 -37.9954 48.9041 +-31.5069 -37.938 48.8302 +-32.0454 -37.7679 48.6112 +-32.91 -37.974 48.8765 +-33.4965 -37.8504 48.7173 +-34.4215 -38.0988 49.0371 +-35.0113 -37.9665 48.8668 +-36.1 -38.362 49.3759 +-36.5935 -38.1145 49.0573 +-37.5463 -38.3378 49.3447 +-37.6199 -37.6645 48.4781 +-39.108 -38.3982 49.4224 +-39.7064 -38.2391 49.2177 +-40.6301 -38.3852 49.4058 +-41.1745 -38.1663 49.1239 +-42.3309 -38.5038 49.5584 +-42.877 -38.2758 49.2649 +-43.936 -38.497 49.5496 +-44.4238 -38.2104 49.1807 +-45.6709 -38.5667 49.6393 +-46.1582 -38.2714 49.2593 +-47.2425 -38.4638 49.5069 +-47.8486 -38.2581 49.2421 +-49.4992 -38.8707 50.0306 +-49.5522 -38.2201 49.1932 +-51.1008 -38.7162 49.8318 +-51.7132 -38.4885 49.5387 +-52.7729 -38.5861 49.6643 +-52.995 -38.0688 48.9985 +-54.7809 -38.6634 49.7638 +-55.0637 -38.1848 49.1478 +-57.0099 -38.846 49.9989 +-57.2225 -38.3132 49.313 +-58.7201 -38.6336 49.7254 +-59.2673 -38.3177 49.3188 +-61.1994 -38.8816 50.0446 +-61.2595 -38.2461 49.2267 +-63.2153 -38.7843 49.9194 +-63.7646 -38.4444 49.482 +-65.5319 -38.8261 49.9732 +-66.2992 -38.6004 49.6828 +-68.3084 -39.0808 50.3011 +-68.9354 -38.7551 49.8819 +-70.7474 -39.0824 50.3031 +-71.3755 -38.7428 49.8661 +-74.037 -39.4863 50.8229 +-74.4437 -39.0087 50.2082 +-76.9109 -39.5945 50.9623 +-77.3168 -39.1032 50.3298 +-79.4243 -39.4599 50.789 +-79.7478 -38.9186 50.0923 +-82.5835 -39.5856 50.9508 +-82.4294 -38.8058 49.9471 +-85.1345 -39.3599 50.6603 +-86.4146 -39.231 50.4944 +-88.9919 -39.6685 51.0574 +-89.3085 -39.0836 50.3046 +-92.4004 -39.6949 51.0914 +-93.1263 -39.2682 50.5422 +-95.7538 -39.6258 51.0025 +-96.8975 -39.3486 50.6458 +-99.4663 -39.6303 51.0083 +-101.038 -39.4918 50.8301 +-104.48 -40.0548 51.5547 +-105.301 -39.5901 50.9565 +-109.546 -40.3835 51.9778 +-110.375 -39.8889 51.3412 +-113.882 -40.3394 51.921 +-114.626 -39.7886 51.2121 +-119.561 -40.6606 52.3344 +-122.771 -40.8972 52.6389 +-125.732 -41.016 52.7919 +-128.705 -41.1062 52.9079 +-132.136 -41.3068 53.1662 +-134.061 -41.0084 52.7821 +-137.695 -41.2036 53.0333 +-138.366 -40.4912 52.1164 +-138.574 -39.6451 51.0274 +-139.315 -38.9526 50.136 +-139.133 -38.0056 48.9171 +-138.384 -36.9167 47.5156 +-138.536 -36.0785 46.4367 +-139.136 -35.3589 45.5105 +-139.912 -34.6815 44.6387 +-138.911 -33.5714 43.2098 +-138.45 -32.6065 41.968 +-138.253 -31.7136 40.8187 +-141.236 -31.5387 40.5936 +-14.4224 -3.13343 4.03305 +-13.4264 -2.83638 3.65072 +-14.7938 -3.03693 3.90884 +-15.0267 -2.99553 3.85556 +-14.7826 -2.85961 3.68062 +-15.1096 -2.83417 3.64787 +-14.8617 -2.7009 3.47633 +-15.0918 -2.65505 3.41732 +-16.0926 -2.7381 3.52422 +-15.5514 -2.55656 3.29056 +-14.8127 -2.35031 3.02509 +-14.3604 -2.1967 2.82738 +-14.0994 -2.07677 2.67301 +-13.4463 -1.90459 2.4514 +-14.1563 -1.92548 2.47829 +-14.3788 -1.87512 2.41348 +-13.327 -1.66352 2.14112 +-13.6446 -1.62723 2.09441 +-13.6672 -1.55411 2.0003 +-13.9843 -1.51284 1.94718 +-13.9066 -1.42778 1.8377 +-13.4326 -1.30529 1.68004 +-13.4506 -1.23332 1.58741 +-13.1706 -1.13564 1.46169 +-13.6819 -1.10512 1.42241 +-14.3919 -1.08417 1.39544 +-13.5126 -0.944562 1.21575 +-13.426 -0.865767 1.11433 +-12.9402 -0.764449 0.983925 +-13.5482 -0.727226 0.936016 +-13.5581 -0.654658 0.842613 +-12.3698 -0.530689 0.683052 +-13.2752 -0.498151 0.641172 +-12.6826 -0.407791 0.52487 +-12.7878 -0.34255 0.440897 +-12.1926 -0.261224 0.336222 +-11.3961 -0.183087 0.235652 +-11.8982 -0.12742 0.164003 +-10.8996 -0.0583582 0.0751131 +26.7 0 0 +27.6989 -0.146576 0.192214 +31.0953 -0.329123 0.431598 +33.8884 -0.538098 0.705639 +36.5777 -0.774538 1.0157 +39.4624 -1.04477 1.37007 +37.6483 -1.19642 1.56894 +37.6297 -1.39559 1.83012 +36.6106 -1.55236 2.0357 +31.2035 -1.48912 1.95277 +22.3148 -1.18382 1.55242 +17.3199 -1.01127 1.32613 +16.0118 -1.02048 1.33821 +20.6663 -1.42779 1.87235 +31.7615 -2.36476 3.10105 +36.386 -2.90473 3.80915 +43.5718 -3.71322 4.86936 +45.6925 -4.14082 5.4301 +62.9157 -6.04247 7.92385 +69.1386 -7.01566 9.20004 +92.178 -9.85575 12.9244 +94.7858 -10.6525 13.9693 +94.9233 -11.1884 14.672 +94.7587 -11.6903 15.3301 +94.3912 -12.166 15.954 +95.2865 -12.8094 16.7977 +94.9036 -13.2858 17.4225 +94.9033 -13.8159 18.1176 +95.3801 -14.4202 18.91 +95.1689 -14.9244 19.5712 +95.8198 -15.5686 20.416 +94.9176 -15.9617 20.9315 +95.3572 -16.5803 21.7427 +95.1149 -17.0842 22.4036 +95.7261 -17.7465 23.272 +95.3717 -18.2341 23.9115 +95.1057 -18.7381 24.5723 +95.7807 -19.4331 25.4837 +95.4028 -19.9194 26.1214 +95.2068 -20.4437 26.809 +96.3185 -21.2578 27.8766 +96.0089 -21.7667 28.5439 +95.692 -22.2739 29.209 +95.3678 -22.7794 29.8719 +96.0562 -23.533 30.8602 +95.8063 -24.0636 31.5561 +96.2848 -24.7829 32.4993 +96.0162 -25.3156 33.1979 +95.6482 -25.8227 33.8629 +96.0009 -26.5291 34.7891 +95.7061 -27.0617 35.4876 +95.8546 -27.7237 36.3557 +95.5418 -28.2565 37.0544 +95.042 -28.7339 37.6804 +94.5358 -29.2082 38.3024 +93.8457 -29.6233 38.8468 +94.0339 -30.3181 39.7578 +93.4183 -30.7567 40.333 +93.7592 -31.5144 41.3266 +93.3021 -32.0093 41.9757 +93.5307 -32.7444 42.9396 +93.4868 -33.3919 43.7887 +93.7741 -34.1664 44.8044 +93.9609 -34.9148 45.7857 +93.4549 -35.4107 46.436 +93.6165 -36.1645 47.4246 +93.5956 -36.8566 48.3322 +93.4786 -37.5178 49.1993 +93.1838 -38.1128 49.9795 +90.1594 -37.574 49.273 +89.6152 -38.0497 49.8968 +87.8431 -37.9943 49.8241 +87.2929 -38.4576 50.4317 +84.405 -37.8721 49.6639 +83.8567 -38.3173 50.2477 +82.1121 -38.2059 50.1016 +80.6923 -38.2283 50.1309 +79.0434 -38.1254 49.996 +78.7249 -38.6567 50.6927 +76.468 -38.2232 50.1243 +75.915 -38.6264 50.653 +73.6073 -38.1209 49.9901 +73.5087 -38.7476 50.8119 +70.0274 -37.5681 49.2652 +69.9299 -38.1807 50.0685 +68.1244 -37.8528 49.6385 +67.6502 -38.2532 50.1636 +65.7189 -37.8166 49.5911 +65.1722 -38.1629 50.0453 +63.4793 -37.8263 49.6039 +62.9325 -38.1608 50.0425 +61.7501 -38.1032 49.9669 +60.5742 -38.0358 49.8786 +59.0608 -37.7391 49.4895 +58.5837 -38.0946 49.9557 +56.8171 -37.5984 49.305 +56.8761 -38.3032 50.2292 +55.13 -37.7852 49.55 +54.5841 -38.0755 49.9306 +53.4496 -37.9479 49.7633 +52.3872 -37.8577 49.645 +51.3315 -37.7592 49.5158 +50.7862 -38.0294 49.8701 +49.0542 -37.395 49.0382 +49.0682 -38.0832 49.9407 +47.3616 -37.4274 49.0806 +47.423 -38.1608 50.0425 +46.3367 -37.9716 49.7943 +45.7297 -38.1663 50.0496 +44.0173 -37.4195 49.0704 +43.1329 -37.3529 48.9831 +42.3672 -37.3799 49.0184 +42.275 -38.0048 49.8379 +41.1193 -37.6709 49.4 +40.5756 -37.887 49.6835 +39.5453 -37.64 49.3595 +39.0021 -37.8478 49.632 +38.1946 -37.7943 49.5618 +37.3918 -37.735 49.4841 +36.8473 -37.9315 49.7418 +35.9 -37.7049 49.4446 +34.9128 -37.4184 49.069 +34.8093 -38.0791 49.9353 +33.8306 -37.7822 49.546 +33.2855 -37.9598 49.7789 +32.2762 -37.5967 49.3027 +31.7793 -37.82 49.5956 +30.8323 -37.4984 49.1738 +30.2914 -37.6601 49.3858 +29.3609 -37.3263 48.9482 +28.8226 -37.4803 49.1501 +27.9503 -37.19 48.7693 +27.8208 -37.8904 49.6878 +26.5567 -37.0352 48.5664 +26.3353 -37.6208 49.3344 +25.4867 -37.3106 48.9276 +25.2859 -37.95 49.7661 +24.4456 -37.6311 49.3478 +23.8673 -37.7024 49.4413 +23.0787 -37.4297 49.0837 +22.8127 -38.0062 49.8397 +21.6307 -37.0395 48.572 +21.4224 -37.7258 49.472 +20.5931 -37.3202 48.9401 +20.0552 -37.4278 49.0812 +19.155 -36.8385 48.3084 +18.9749 -37.6343 49.352 +18.1486 -37.1519 48.7194 +17.944 -37.9459 49.7607 +16.9429 -37.0461 48.5807 +16.6421 -37.6615 49.3877 +15.6988 -36.8088 48.2696 +15.5556 -37.8319 49.6111 +14.7537 -37.2642 48.8667 +14.3294 -37.6362 49.3546 +13.5491 -37.0594 48.5981 +13.2856 -37.9007 49.7014 +12.5203 -37.316 48.9347 +12.2881 -38.3332 50.2686 +11.4079 -37.3236 48.9446 +10.8877 -37.4422 49.1001 +10.2164 -37.02 48.5464 +9.82408 -37.6116 49.3223 +9.11984 -37.0025 48.5235 +8.71224 -37.5898 49.2937 +8.05347 -37.0934 48.6427 +7.51934 -37.1346 48.6967 +6.98464 -37.173 48.7471 +6.55393 -37.8116 49.5845 +5.91368 -37.2412 48.8365 +5.37751 -37.2711 48.8757 +4.83308 -37.2377 48.8319 +4.29002 -37.2014 48.7843 +3.75449 -37.2226 48.8122 +3.21866 -37.2411 48.8364 +2.67823 -37.1961 48.7774 +2.14632 -37.2694 48.8736 +1.6125 -37.34 48.9661 +1.07507 -37.3471 48.9754 +0.537555 -37.3514 48.9811 +3.76566e-15 -37.2922 48.9034 +-0.529701 -36.8057 48.2654 +-1.09078 -37.8928 49.691 +-1.60726 -37.2188 48.8072 +-2.18471 -37.9361 49.7478 +-2.68695 -37.3173 48.9363 +-3.28146 -37.9678 49.7893 +-3.81553 -37.8279 49.6059 +-4.3528 -37.7458 49.4982 +-4.89585 -37.7213 49.4661 +-5.43852 -37.6939 49.4302 +-5.98077 -37.6637 49.3906 +-6.6062 -38.1131 49.9799 +-7.06388 -37.5947 49.3001 +-7.60465 -37.5559 49.2492 +-8.14483 -37.5142 49.1946 +-8.78182 -37.89 49.6874 +-9.25287 -37.5423 49.2313 +-9.88666 -37.8512 49.6365 +-10.1669 -36.8406 48.3112 +-10.853 -37.3228 48.9436 +-11.3715 -37.2043 48.7882 +-11.9256 -37.2023 48.7855 +-12.4605 -37.1377 48.7009 +-12.9945 -37.0704 48.6125 +-13.5275 -37.0002 48.5205 +-14.2394 -37.3999 49.0446 +-14.5903 -36.8514 48.3254 +-15.3137 -37.2435 48.8395 +-15.8491 -37.161 48.7314 +-16.6938 -37.7786 49.5413 +-16.9696 -37.1045 48.6573 +-17.751 -37.538 49.2257 +-18.319 -37.5007 49.1769 +-18.8872 -37.4603 49.1239 +-19.7263 -37.9373 49.7493 +-20.3024 -37.8891 49.6862 +-20.8469 -37.7803 49.5434 +-21.6828 -38.1845 50.0735 +-21.8977 -37.4967 49.1716 +-22.7443 -37.8923 49.6903 +-23.2888 -37.7704 49.5306 +-24.1182 -38.0987 49.961 +-24.6655 -37.9696 49.7917 +-25.5856 -38.3999 50.356 +-25.7929 -37.7588 49.5153 +-26.9995 -38.5698 50.5788 +-27.2744 -38.0362 49.879 +-28.1462 -38.3335 50.269 +-28.7382 -38.2383 50.1441 +-29.7101 -38.6343 50.6634 +-29.8775 -37.9831 49.8094 +-30.8175 -38.3141 50.2434 +-30.8769 -37.5526 49.2449 +-32.2787 -38.4144 50.375 +-32.7842 -38.1883 50.0785 +-33.3325 -38.0134 49.8491 +-34.3554 -38.3684 50.3147 +-35.3426 -38.6625 50.7003 +-35.4545 -37.999 49.8303 +-36.5 -38.3351 50.271 +-37.0503 -38.1404 50.0158 +-37.9583 -38.3068 50.2339 +-38.9784 -38.5698 50.5788 +-39.585 -38.4135 50.3738 +-40.0826 -38.1514 50.0302 +-41.6649 -38.9041 51.0172 +-41.7264 -38.2271 50.1294 +-42.7783 -38.4573 50.4313 +-43.3301 -38.2295 50.1325 +-44.5669 -38.5947 50.6115 +-45.5852 -38.7524 50.8183 +-46.7289 -39.0003 51.1433 +-47.2289 -38.7027 50.7531 +-48.3859 -38.9357 51.0586 +-48.8835 -38.63 50.6578 +-50.2995 -39.0389 51.1939 +-50.8594 -38.7712 50.8429 +-51.9819 -38.9247 51.0443 +-52.5401 -38.6482 50.6816 +-53.4157 -38.6009 50.6196 +-53.9691 -38.3168 50.247 +-55.5682 -38.762 50.8308 +-55.8589 -38.2848 50.2051 +-57.6121 -38.7989 50.8793 +-58.1683 -38.4926 50.4775 +-59.9477 -38.9816 51.1188 +-60.5064 -38.6628 50.7008 +-62.1719 -39.0391 51.1942 +-62.6613 -38.6654 50.7042 +-64.2053 -38.9326 51.0546 +-64.9771 -38.7189 50.7743 +-66.1793 -38.7527 50.8187 +-67.3873 -38.7767 50.8501 +-69.2592 -39.163 51.3567 +-70.1888 -38.9999 51.1428 +-72.0107 -39.3168 51.5583 +-72.8734 -39.0949 51.2674 +-75.32 -39.7024 52.064 +-76.5729 -39.6567 52.0041 +-78.443 -39.9126 52.3398 +-79.4773 -39.7275 52.0969 +-80.9786 -39.7633 52.1439 +-81.5478 -39.3333 51.58 +-83.6867 -39.6469 51.9912 +-84.2541 -39.2026 51.4086 +-87.1311 -39.8135 52.2097 +-87.4596 -39.2427 51.4612 +-89.8009 -39.5626 51.8807 +-91.0995 -39.4028 51.6712 +-93.9567 -39.8931 52.3141 +-95.1866 -39.6691 52.0204 +-97.5777 -39.9099 52.3362 +-98.8989 -39.6933 52.0521 +-101.563 -39.9941 52.4466 +-103.147 -39.8461 52.2524 +-105.836 -40.1021 52.5882 +-107.433 -39.9207 52.3503 +-110.489 -40.2564 52.7905 +-112.701 -40.2549 52.7886 +-115.614 -40.4757 53.0781 +-117.15 -40.1908 52.7045 +-122.447 -41.1568 53.9713 +-124.353 -40.9414 53.6888 +-128.469 -41.4205 54.317 +-130.213 -41.1031 53.9009 +-133.473 -41.2384 54.0783 +-135.941 -41.0987 53.895 +-137.695 -40.7234 53.4029 +-138.005 -39.9148 52.3426 +-139.753 -39.5162 51.8199 +-138.314 -38.222 50.1227 +-138.95 -37.5133 49.1933 +-138.293 -36.4623 47.8151 +-139.825 -35.9898 47.1954 +-140.06 -35.1788 46.132 +-139.727 -34.2319 44.8903 +-139.749 -33.3801 43.7733 +-139.01 -32.3569 42.4315 +-139.002 -31.5139 41.326 +-143.209 -31.6067 41.4477 +-14.2339 -3.05643 4.00808 +-14.8446 -3.09945 4.06448 +-14.5094 -2.94382 3.86039 +-15.4071 -3.03557 3.98072 +-15.8317 -3.02686 3.9693 +-15.4921 -2.87206 3.76629 +-15.0535 -2.70386 3.54573 +-15.2841 -2.65753 3.48497 +-14.2617 -2.3983 3.14503 +-15.2616 -2.47968 3.25175 +-15.3935 -2.41401 3.16563 +-14.5544 -2.20044 2.88556 +-13.8077 -2.01009 2.63595 +-14.1284 -1.97787 2.5937 +-14.1563 -1.90304 2.49556 +-13.4984 -1.7398 2.28151 +-14.4049 -1.77712 2.33043 +-13.0556 -1.53884 2.01797 +-14.4538 -1.6244 2.13017 +-13.5903 -1.45309 1.90552 +-13.019 -1.32107 1.7324 +-13.4326 -1.29007 1.69175 +-13.9451 -1.26376 1.65724 +-13.7647 -1.17304 1.53828 +-14.376 -1.14765 1.50498 +-13.6971 -1.0198 1.33733 +-13.2145 -0.912961 1.19722 +-13.2271 -0.843004 1.10548 +-13.2388 -0.772979 1.01365 +-12.054 -0.639473 0.838578 +-13.8572 -0.661303 0.867204 +-11.9708 -0.507585 0.665625 +-13.9739 -0.518258 0.679622 +-12.383 -0.393518 0.516043 +-13.0875 -0.346492 0.454375 +-12.0926 -0.256063 0.335791 +-11.4961 -0.182541 0.239376 +-11.2983 -0.119585 0.156818 +-11.4996 -0.060853 0.0798 +28.4 0 0 +29.6989 -0.155294 0.207502 +32.1951 -0.336718 0.44992 +34.888 -0.547393 0.731423 +36.9775 -0.773706 1.03382 +36.8649 -0.964412 1.28864 +35.8508 -1.12577 1.50425 +36.6315 -1.34244 1.79376 +33.2189 -1.39182 1.85974 +31.2035 -1.47144 1.96613 +23.1117 -1.21154 1.61885 +15.4286 -0.890144 1.1894 +17.1058 -1.07725 1.43942 +26.7271 -1.8246 2.43801 +34.7391 -2.55575 3.41497 +40.0544 -3.15962 4.22186 +48.4241 -4.07774 5.44864 +54.6926 -4.89759 6.54413 +65.9776 -6.26128 8.36628 +84.8206 -8.50478 11.364 +94.9355 -10.03 13.4021 +94.7858 -10.526 14.0648 +95.0215 -11.067 14.7876 +94.7587 -11.5515 15.435 +94.3912 -12.0216 16.0632 +95.2865 -12.6573 16.9126 +94.9036 -13.1281 17.5417 +94.9033 -13.6518 18.2415 +95.5741 -14.278 19.0781 +95.1689 -14.7472 19.7051 +95.8198 -15.3838 20.5557 +95.5921 -15.8842 21.2243 +95.3572 -16.3834 21.8914 +95.1149 -16.8814 22.5568 +95.6305 -17.5183 23.4078 +95.3717 -18.0176 24.075 +95.9616 -18.6822 24.9631 +95.6859 -19.1833 25.6325 +95.4028 -19.6829 26.3001 +95.1125 -20.181 26.9656 +95.3788 -20.8004 27.7934 +95.7279 -21.4453 28.655 +95.692 -22.0094 29.4088 +95.3678 -22.5089 30.0763 +96.0562 -23.2536 31.0713 +96.453 -23.9385 31.9864 +96.1928 -24.4652 32.6903 +95.9245 -24.9912 33.3931 +95.6482 -25.5161 34.0945 +95.3639 -26.0402 34.7947 +95.6155 -26.715 35.6964 +95.9448 -27.4203 36.6388 +95.4519 -27.8947 37.2727 +96.2949 -28.767 38.4383 +94.5358 -28.8614 38.5644 +93.8457 -29.2716 39.1125 +93.9456 -29.93 39.9922 +93.6819 -30.4772 40.7234 +93.7592 -31.1402 41.6093 +93.3021 -31.6293 42.2628 +93.5307 -32.3556 43.2333 +93.7453 -33.0867 44.2102 +93.6884 -33.7299 45.0697 +93.8757 -34.4689 46.0571 +93.3701 -34.9585 46.7112 +93.6165 -35.7351 47.749 +93.8472 -36.5169 48.7936 +94.2291 -37.37 49.9336 +94.2616 -38.0958 50.9033 +91.5604 -37.7049 50.3809 +90.3525 -37.9073 50.6514 +89.0642 -38.0651 50.8623 +87.7783 -38.2124 51.0591 +86.0931 -38.1709 51.0037 +84.1762 -38.0066 50.7841 +82.8261 -38.0805 50.8829 +82.0319 -38.4015 51.3118 +79.9043 -38.0829 50.8861 +78.958 -38.3108 51.1906 +77.2396 -38.1505 50.9764 +76.6044 -38.5144 51.4627 +74.6719 -38.213 51.0599 +74.1125 -38.602 51.5797 +72.2742 -38.3131 51.1937 +70.0042 -37.7674 50.4645 +69.3778 -38.0915 50.8976 +67.6502 -37.799 50.5067 +66.807 -37.9863 50.7571 +65.6038 -37.9596 50.7213 +64.6205 -38.0492 50.8411 +63.9932 -38.3433 51.234 +61.7501 -37.6507 50.3086 +61.4773 -38.1446 50.9685 +60.2999 -38.0734 50.8734 +59.4703 -38.2119 51.0585 +58.5737 -38.3006 51.1769 +56.8761 -37.8484 50.5728 +55.7263 -37.7405 50.4286 +55.109 -37.9852 50.7556 +54.099 -37.953 50.7125 +52.9657 -37.8213 50.5366 +51.8404 -37.6807 50.3487 +51.2896 -37.9503 50.709 +49.6767 -37.4199 50.0002 +49.6223 -38.056 50.8501 +47.9095 -37.4108 49.988 +47.3628 -37.6599 50.3208 +46.2772 -37.4726 50.0706 +45.7297 -37.7131 50.392 +44.5399 -37.4143 49.9926 +43.936 -37.5966 50.2363 +42.9902 -37.4793 50.0795 +42.8342 -38.0503 50.8426 +41.6712 -37.7232 50.4055 +41.1202 -37.9397 50.6947 +40.0288 -37.6479 50.3049 +39.7439 -38.1098 50.9221 +38.6649 -37.8053 50.5152 +37.9068 -37.8006 50.5089 +36.6443 -37.2746 49.806 +36.75 -38.1394 50.9616 +35.75 -37.8607 50.5892 +34.8093 -37.627 50.2769 +34.2123 -37.7549 50.4478 +33.6611 -37.9323 50.6849 +32.7842 -37.7349 50.4211 +32.2333 -37.9049 50.6482 +30.8323 -37.0531 49.5101 +30.686 -37.6976 50.3713 +30.1358 -37.8566 50.5837 +29.1607 -37.4697 50.0667 +28.365 -37.2936 49.8315 +27.7801 -37.3858 49.9546 +27.2346 -37.5296 50.1468 +26.7651 -37.7809 50.4825 +25.7929 -37.3105 49.854 +25.2859 -37.4995 50.1065 +24.7388 -37.6303 50.2813 +23.8673 -37.2547 49.7795 +23.3238 -37.3781 49.9444 +22.8127 -37.5549 50.1806 +21.9645 -37.1645 49.6589 +21.748 -37.8444 50.5674 +20.5931 -36.8771 49.2749 +20.3642 -37.5532 50.1783 +19.4857 -37.0297 49.4788 +18.9749 -37.1875 49.6896 +18.4042 -37.2278 49.7435 +17.8889 -37.3802 49.9472 +17.2636 -37.2991 49.8388 +16.8232 -37.6195 50.2669 +16.1996 -37.532 50.15 +15.5556 -37.3827 49.9505 +14.9872 -37.4043 49.9794 +14.3519 -37.2477 49.7702 +13.7656 -37.2044 49.7122 +13.3687 -37.6852 50.3547 +12.939 -38.1059 50.9169 +12.2499 -37.7605 50.4552 +11.572 -37.4107 49.9878 +11.044 -37.5288 50.1456 +10.497 -37.5851 50.2209 +9.80844 -37.1059 49.5806 +9.26765 -37.1558 49.6473 +8.85141 -37.7368 50.4236 +8.19704 -37.3064 49.8485 +7.65339 -37.3479 49.9039 +7.09784 -37.327 49.876 +6.56439 -37.4222 50.0033 +5.92327 -36.8587 49.2503 +5.45595 -37.3658 49.9279 +4.90369 -37.3331 49.8842 +4.35978 -37.3574 49.9167 +3.75449 -36.7807 49.1461 +3.26576 -37.3374 49.89 +2.68259 -36.8144 49.1911 +2.17773 -37.3659 49.928 +1.63606 -37.4358 50.0214 +1.09078 -37.4429 50.0309 +0.537555 -36.9079 49.3161 +3.82689e-15 -37.4486 50.0385 +-0.546281 -37.5071 50.1167 +-1.09078 -37.4429 50.0309 +-1.63606 -37.4358 50.0214 +-2.18471 -37.4857 50.0881 +-2.72621 -37.4129 49.9909 +-3.271 -37.3972 49.9699 +-3.82164 -37.4385 50.0251 +-4.3528 -37.2976 49.8368 +-4.90369 -37.3331 49.8842 +-5.50824 -37.7239 50.4064 +-6.05745 -37.6936 50.366 +-6.6062 -37.6606 50.3218 +-7.15444 -37.6246 50.2737 +-7.8362 -38.2399 51.0959 +-8.15789 -37.1282 49.6104 +-8.89316 -37.9148 50.6615 +-9.32677 -37.3928 49.964 +-9.88666 -37.4018 49.976 +-10.3155 -36.935 49.3523 +-10.8704 -36.9387 49.3572 +-11.3897 -36.8215 49.2006 +-11.9446 -36.8194 49.1978 +-12.4804 -36.7555 49.1124 +-13.2024 -37.2163 49.7282 +-13.7223 -37.0874 49.5559 +-14.4868 -37.598 50.2382 +-15.0339 -37.5208 50.1351 +-15.5798 -37.4408 50.0281 +-16.1245 -37.3579 49.9174 +-16.9268 -37.8509 50.5761 +-17.2369 -37.2414 49.7617 +-18.0542 -37.7258 50.4089 +-18.603 -37.63 50.2809 +-19.1796 -37.5886 50.2255 +-19.7263 -37.4868 50.0896 +-20.5496 -37.8951 50.6352 +-21.1008 -37.7862 50.4897 +-21.6503 -37.6745 50.3404 +-22.1648 -37.5033 50.1117 +-23.018 -37.8928 50.632 +-23.604 -37.8271 50.5443 +-24.5124 -38.2616 51.1249 +-25.032 -38.0762 50.8772 +-25.5856 -37.9439 50.7004 +-26.1755 -37.8641 50.5937 +-27.0386 -38.1669 50.9984 +-27.5934 -38.0242 50.8076 +-28.5529 -38.4258 51.3442 +-29.07 -38.2205 51.07 +-29.6678 -38.1213 50.9375 +-30.6954 -38.5596 51.5231 +-30.7737 -37.8053 50.5151 +-31.7247 -38.1255 50.9431 +-32.6419 -38.3853 51.2902 +-33.1997 -38.2132 51.0602 +-33.755 -38.0381 50.8262 +-34.7372 -38.3341 51.2218 +-35.7305 -38.6227 51.6073 +-35.9469 -38.0693 50.868 +-36.9 -38.295 51.1696 +-37.8624 -38.5136 51.4616 +-38.9369 -38.8278 51.8814 +-39.5009 -38.6227 51.6074 +-40.4858 -38.8212 51.8727 +-40.6736 -38.2543 51.1151 +-41.6649 -38.4422 51.3662 +-42.2232 -38.2229 51.0732 +-43.4493 -38.5967 51.5727 +-44.5195 -38.8125 51.861 +-45.0831 -38.5783 51.548 +-46.1078 -38.7313 51.7525 +-47.1992 -38.925 52.0113 +-47.8238 -38.7249 51.7439 +-48.8674 -38.8562 51.9193 +-49.7358 -38.8369 51.8935 +-50.0533 -38.3865 51.2917 +-51.4197 -38.7329 51.7546 +-52.2965 -38.6954 51.7044 +-53.1125 -38.6054 51.5843 +-54.4441 -38.877 51.9472 +-55.0082 -38.5909 51.5648 +-55.8962 -38.5279 51.4807 +-56.4552 -38.2341 51.0881 +-58.2144 -38.739 51.7627 +-58.5737 -38.3006 51.1769 +-60.3569 -38.7816 51.8197 +-61.1259 -38.5949 51.5703 +-62.8666 -39.0066 52.1204 +-63.4323 -38.6764 51.6791 +-64.4174 -38.5974 51.5736 +-65.9757 -38.8471 51.9072 +-67.4741 -39.0418 52.1674 +-68.4028 -38.8937 51.9694 +-69.698 -38.9432 52.0356 +-71.0735 -39.0226 52.1417 +-72.9768 -39.3711 52.6074 +-74.5211 -39.5042 52.7852 +-75.9993 -39.5847 52.8928 +-77.2572 -39.5361 52.8278 +-79.5154 -39.978 53.4182 +-80.3261 -39.6749 53.0134 +-81.678 -39.6305 52.954 +-82.6434 -39.3884 52.6305 +-84.3172 -39.4713 52.7412 +-85.6028 -39.3572 52.5888 +-88.0895 -39.7735 53.1451 +-89.1477 -39.5252 52.8133 +-91.0144 -39.6211 52.9414 +-92.5649 -39.5612 52.8614 +-94.6121 -39.6944 53.0393 +-96.2579 -39.6393 52.9657 +-98.3239 -39.7376 53.0971 +-100.483 -39.8503 53.2477 +-102.318 -39.8129 53.1978 +-103.906 -39.6627 52.997 +-106.6 -39.9117 53.3298 +-108.712 -39.9164 53.3359 +-112.117 -40.3648 53.9351 +-113.304 -39.9899 53.4342 +-116.74 -40.3846 53.9615 +-119.5 -40.5103 54.1295 +-122.972 -40.8424 54.5734 +-125.934 -40.9699 54.7437 +-129.352 -41.21 55.0645 +-131.544 -41.03 54.824 +-134.809 -41.1568 54.9934 +-137.193 -40.985 54.7638 +-137.426 -40.161 53.6628 +-138.366 -39.5441 52.8386 +-138.937 -38.8191 51.8699 +-138.951 -37.9421 50.698 +-138.585 -36.9704 49.3995 +-138.568 -36.101 48.2379 +-140.469 -35.7263 47.7372 +-139.875 -34.7153 46.3863 +-139.819 -33.8479 45.2274 +-138.632 -32.7203 43.7206 +-138.823 -31.9297 42.6643 +-139.658 -31.2866 41.8049 +-149.975 -32.7069 43.7028 +-13.197 -2.80014 3.74152 +-15.1283 -3.12117 4.17048 +-16.1215 -3.23207 4.31867 +-15.312 -2.98101 3.9832 +-15.3548 -2.90083 3.87607 +-15.2052 -2.7854 3.72183 +-15.6288 -2.77386 3.70641 +-14.6112 -2.51037 3.35433 +-14.8399 -2.4659 3.29491 +-15.2616 -2.45024 3.27399 +-14.5222 -2.25033 3.00687 +-14.6515 -2.18881 2.92467 +-14.78 -2.1261 2.84088 +-14.0309 -1.94092 2.59344 +-13.4729 -1.78966 2.39134 +-14.3788 -1.83127 2.44692 +-13.8169 -1.68434 2.2506 +-13.9391 -1.62346 2.16926 +-12.684 -1.40857 1.88212 +-12.2116 -1.29017 1.72392 +-13.9066 -1.39439 1.86317 +-13.1363 -1.24664 1.66575 +-12.5605 -1.12476 1.5029 +-13.5667 -1.14243 1.52651 +-13.8802 -1.09492 1.46302 +-13.2009 -0.971183 1.29769 +-13.2145 -0.902121 1.20541 +-13.3266 -0.839256 1.12141 +-12.542 -0.723602 0.966872 +-12.9505 -0.67888 0.907114 +-12.9599 -0.611143 0.816605 +-11.472 -0.480659 0.642254 +-12.9758 -0.475526 0.635394 +-11.5841 -0.363759 0.486052 +-13.5871 -0.355446 0.474945 +-12.3924 -0.259296 0.34647 +-12.3958 -0.194489 0.259875 +-11.3983 -0.119211 0.159288 +-11.7996 -0.0616991 0.0824419 +28.4 0 0 +30.3988 -0.157031 0.213819 +32.2951 -0.333678 0.454347 +35.8877 -0.556266 0.757431 +38.1767 -0.789136 1.07451 +36.8649 -0.952745 1.29729 +35.7509 -1.10906 1.51013 +35.7332 -1.29368 1.76152 +32.4208 -1.34196 1.82725 +32.998 -1.53724 2.09316 +24.0083 -1.24332 1.69294 +15.8268 -0.90207 1.22829 +18.0008 -1.11991 1.52491 +29.211 -1.97004 2.68247 +35.6324 -2.58975 3.5263 +41.5415 -3.23729 4.408 +49.8105 -4.14374 5.64226 +59.2421 -5.24081 7.13606 +69.3357 -6.50038 8.85114 +88.0753 -8.72432 11.8793 +93.0643 -9.71343 13.2261 +94.8841 -10.4095 14.1739 +94.727 -10.8992 14.8408 +94.5627 -11.3881 15.5064 +94.5869 -11.9008 16.2045 +95.2865 -12.5042 17.0261 +94.9036 -12.9693 17.6594 +94.9033 -13.4867 18.3639 +94.5068 -13.9477 18.9917 +95.3625 -14.5984 19.8777 +94.9505 -15.0598 20.5059 +95.5921 -15.692 21.3668 +95.3572 -16.1852 22.0384 +95.1149 -16.6772 22.7082 +94.7698 -17.1505 23.3528 +95.3717 -17.7997 24.2366 +95.2008 -18.3099 24.9314 +95.6859 -18.9512 25.8046 +95.4028 -19.4447 26.4766 +95.9609 -20.1146 27.3888 +96.3185 -20.7513 28.2557 +96.0089 -21.2481 28.9321 +95.692 -21.7431 29.6062 +95.3678 -22.2366 30.2782 +96.0562 -22.9723 31.2798 +95.7139 -23.4676 31.9543 +96.2848 -24.1924 32.9412 +95.9245 -24.6889 33.6172 +95.6482 -25.2075 34.3233 +96.0009 -25.8969 35.2622 +95.6155 -26.3919 35.936 +95.9448 -27.0886 36.8848 +96.3507 -27.8167 37.8762 +96.2949 -28.419 38.6963 +94.8031 -28.5929 38.933 +93.6683 -28.8629 39.3007 +93.769 -29.5123 40.185 +93.6819 -30.1085 40.9968 +93.8467 -30.7922 41.9277 +93.1281 -31.1883 42.4671 +94.2236 -32.2009 43.8459 +93.7453 -32.6864 44.5069 +93.6027 -33.2914 45.3307 +93.8757 -34.0519 46.3663 +94.1333 -34.8178 47.4092 +93.2791 -35.1755 47.8962 +94.015 -36.1396 49.2089 +93.145 -36.4932 49.6904 +93.5154 -37.3371 50.8394 +92.3021 -37.5505 51.13 +91.0897 -37.7542 51.4074 +89.0642 -37.6046 51.2037 +87.7783 -37.7501 51.4018 +86.495 -37.8852 51.5857 +84.8151 -37.8318 51.5131 +83.5401 -37.9442 51.6661 +82.0319 -37.937 51.6562 +80.6086 -37.9539 51.6793 +79.8129 -38.2571 52.0921 +78.1656 -38.1408 51.9337 +76.9109 -38.2007 52.0153 +75.5844 -38.212 52.0308 +74.1125 -38.135 51.9259 +72.4989 -37.9673 51.6975 +71.0446 -37.865 51.5583 +70.0413 -37.9906 51.7293 +68.3084 -37.705 51.3405 +67.0971 -37.6898 51.3197 +66.467 -37.9938 51.7336 +65.1911 -37.9208 51.6342 +64.0639 -37.9213 51.6349 +62.3809 -37.5752 51.1637 +61.8246 -37.896 51.6005 +60.644 -37.8275 51.5072 +59.8113 -37.9661 51.696 +58.6412 -37.8809 51.5799 +57.4783 -37.7864 51.4513 +56.3227 -37.6829 51.3103 +55.765 -37.9724 51.7045 +54.6186 -37.8539 51.5432 +52.9657 -37.3638 50.8758 +52.3492 -37.5903 51.1842 +51.2896 -37.4912 51.0493 +50.1747 -37.3378 50.8404 +49.6223 -37.5956 51.1914 +48.5183 -37.4278 50.963 +48.0248 -37.7243 51.3666 +46.8126 -37.4475 50.9898 +46.2587 -37.6879 51.3171 +45.1787 -37.4917 51.05 +43.936 -37.1418 50.5735 +43.2168 -37.221 50.6813 +42.8901 -37.6391 51.2507 +42.1128 -37.6618 51.2815 +41.556 -37.8779 51.5758 +40.5124 -37.6418 51.2543 +39.9559 -37.8496 51.5373 +38.6649 -37.348 50.8543 +38.3188 -37.7492 51.4006 +36.8473 -37.0277 50.4182 +36.75 -37.678 51.3036 +35.7992 -37.4542 50.999 +35.1972 -37.5859 51.1783 +34.6894 -37.8183 51.4947 +33.7081 -37.5257 51.0962 +32.738 -37.2259 50.688 +32.2333 -37.4463 50.9882 +31.6354 -37.5584 51.1407 +30.686 -37.2416 50.7094 +30.1358 -37.3987 50.9233 +29.2029 -37.0701 50.4759 +28.9871 -37.6504 51.2661 +28.1868 -37.4742 51.0262 +27.2744 -37.1299 50.5573 +26.726 -37.2693 50.7472 +25.7929 -36.8591 50.1886 +25.2859 -37.0458 50.4428 +24.7022 -37.1199 50.5437 +24.1898 -37.3014 50.7908 +23.3238 -36.9259 50.2796 +22.7785 -37.045 50.4417 +22.2649 -37.217 50.676 +21.3898 -36.771 50.0686 +21.1642 -37.4414 50.9815 +20.3333 -37.0426 50.4385 +19.7564 -37.0898 50.5027 +18.9749 -36.7376 50.0231 +18.7166 -37.4017 50.9275 +17.8889 -36.928 50.2824 +17.2369 -36.7909 50.0957 +16.6421 -36.7641 50.0593 +16.1495 -36.9633 50.3305 +15.7491 -37.3899 50.9114 +15.0105 -37.0094 50.3933 +14.3519 -36.7971 50.1042 +13.982 -37.3322 50.8328 +13.5558 -37.7504 51.4022 +12.939 -37.645 51.2586 +12.4407 -37.8847 51.5851 +11.572 -36.9581 50.3234 +11.044 -37.0747 50.4822 +10.464 -37.0136 50.399 +9.82408 -36.7154 49.993 +9.28243 -36.7648 50.0602 +8.83749 -37.2217 50.6823 +8.17094 -36.7377 50.0233 +7.7387 -37.3073 50.7989 +7.09784 -36.8754 50.2108 +6.54348 -36.8518 50.1786 +6.01911 -37.002 50.3832 +5.45595 -36.9137 50.263 +4.91154 -36.9405 50.2994 +4.35978 -36.9055 50.2517 +3.81553 -36.9265 50.2804 +3.271 -36.9448 50.3053 +2.72621 -36.9603 50.3264 +2.18122 -36.973 50.3437 +1.63606 -36.9829 50.3571 +1.09078 -36.9899 50.3667 +0.545408 -36.9941 50.3725 +3.83302e-15 -37.0547 50.455 +-0.545408 -36.9941 50.3725 +-1.09078 -36.9899 50.3667 +-1.657 -37.4562 51.0017 +-2.18122 -36.973 50.3437 +-2.72621 -36.9603 50.3264 +-3.28146 -37.0631 50.4664 +-3.81553 -36.9265 50.2804 +-4.41558 -37.3778 50.8949 +-4.97431 -37.4126 50.9423 +-5.50824 -37.2675 50.7447 +-6.16288 -37.8858 51.5866 +-6.6062 -37.205 50.6596 +-7.15444 -37.1694 50.6111 +-7.84839 -37.8361 51.5189 +-8.26231 -37.1486 50.5827 +-8.89316 -37.4561 51.0015 +-9.3859 -37.1746 50.6182 +-9.91795 -37.0662 50.4706 +-10.4805 -37.072 50.4784 +-11.0093 -36.9581 50.3235 +-11.5537 -36.8999 50.2441 +-12.0782 -36.7807 50.0818 +-12.6599 -36.8329 50.1529 +-13.1608 -36.6503 49.9043 +-13.9604 -37.2744 50.7541 +-14.5093 -37.2009 50.654 +-15.0572 -37.1245 50.55 +-15.604 -37.0453 50.4422 +-16.3749 -37.4791 51.0328 +-16.6938 -36.8785 50.215 +-17.5041 -37.3612 50.8723 +-18.2748 -37.7246 51.3671 +-18.603 -37.1747 50.6184 +-19.4135 -37.5866 51.1793 +-19.9669 -37.485 51.0408 +-20.5496 -37.4367 50.9751 +-21.069 -37.273 50.7522 +-21.9433 -37.7224 51.3641 +-22.532 -37.6634 51.2838 +-23.018 -37.4343 50.9719 +-23.9192 -37.8685 51.563 +-24.5124 -37.7987 51.468 +-25.032 -37.6156 51.2187 +-25.5482 -37.43 50.9659 +-26.4817 -37.8435 51.529 +-27.0386 -37.7052 51.3407 +-27.5934 -37.5642 51.1486 +-28.1462 -37.4201 50.9525 +-29.0285 -37.7043 51.3394 +-29.6255 -37.6065 51.2063 +-30.6524 -38.0398 51.7962 +-31.212 -37.8799 51.5786 +-31.7247 -37.6643 51.285 +-32.6873 -37.9737 51.7063 +-33.1997 -37.7509 51.4029 +-34.2714 -38.1529 51.9503 +-35.1666 -38.3385 52.203 +-35.7305 -38.1554 51.9537 +-36.3901 -38.0724 51.8407 +-37.3 -38.2419 52.0714 +-37.8624 -38.0477 51.807 +-38.4218 -37.8507 51.5388 +-39.5009 -38.1555 51.9538 +-40.4858 -38.3516 52.2208 +-41.1034 -38.1909 52.002 +-42.3185 -38.5729 52.5221 +-42.8855 -38.3528 52.2224 +-43.4493 -38.1298 51.9188 +-44.5195 -38.343 52.2091 +-45.542 -38.4995 52.4222 +-46.1078 -38.2627 52.0999 +-47.2579 -38.502 52.4256 +-48.0617 -38.4467 52.3504 +-49.1683 -38.6225 52.5897 +-49.7358 -38.367 52.2419 +-50.4227 -38.202 52.0171 +-51.4197 -38.2643 52.102 +-52.2965 -38.2272 52.0515 +-53.4942 -38.4124 52.3036 +-54.0584 -38.1346 51.9254 +-54.7485 -37.9439 51.6658 +-55.8962 -38.0618 51.8262 +-57.0516 -38.1706 51.9744 +-58.2144 -38.2703 52.1102 +-58.979 -38.0991 51.877 +-60.3569 -38.3125 52.1676 +-61.7454 -38.5145 52.4426 +-62.2414 -38.1515 51.9483 +-63.6426 -38.3351 52.1984 +-65.4074 -38.7165 52.7177 +-66.261 -38.5431 52.4817 +-67.4741 -38.5695 52.5175 +-69.0556 -38.7899 52.8177 +-69.698 -38.4721 52.3849 +-71.0735 -38.5505 52.4916 +-72.7539 -38.776 52.7987 +-75.1952 -39.3793 53.6202 +-75.7728 -38.9893 53.0892 +-77.6374 -39.25 53.4441 +-78.9026 -39.1899 53.3623 +-80.3261 -39.195 53.3692 +-81.9112 -39.2629 53.4617 +-83.3478 -39.2436 53.4354 +-84.3172 -38.9938 53.0953 +-85.9995 -39.0612 53.1871 +-87.3707 -38.9718 53.0653 +-90.032 -39.4344 53.6952 +-91.4998 -39.3505 53.581 +-93.2976 -39.392 53.6375 +-94.9397 -39.3499 53.5802 +-96.9997 -39.4615 53.7321 +-98.0751 -39.1576 53.3183 +-100.984 -39.5643 53.8721 +-102.318 -39.3313 53.5548 +-104.665 -39.4692 53.7425 +-106.854 -39.523 53.8158 +-109.905 -39.8665 54.2835 +-112.375 -39.9679 54.4217 +-114.597 -39.9567 54.4064 +-116.74 -39.896 54.3237 +-119.761 -40.1076 54.6119 +-123.321 -40.4632 55.096 +-125.934 -40.4743 55.1111 +-128.469 -40.4335 55.0557 +-131.189 -40.4244 55.0432 +-134.275 -40.4976 55.143 +-136.925 -40.41 55.0236 +-138.145 -39.8827 54.3057 +-139.269 -39.3206 53.5402 +-138.846 -38.3245 52.1839 +-138.86 -37.4586 51.0048 +-138.493 -36.4991 49.6984 +-139.668 -35.9475 48.9474 +-139.917 -35.1553 47.8686 +-139.783 -34.2727 46.6668 +-138.985 -33.2389 45.2592 +-139.19 -32.4546 44.1913 +-138.73 -31.5223 42.9218 +-140.969 -31.1983 42.4807 +-151.103 -32.5542 44.3269 +-15.9306 -3.33927 4.54687 +-14.8446 -3.0256 4.11975 +-15.0783 -2.98636 4.06633 +-15.312 -2.94495 4.00994 +-15.8317 -2.95474 4.02328 +-15.2052 -2.75171 3.74682 +-15.1494 -2.65624 3.61683 +-14.8996 -2.52894 3.4435 +-15.129 -2.48352 3.38165 +-15.5514 -2.46656 3.35855 +-14.5222 -2.22311 3.02706 +-14.5544 -2.14801 2.9248 +-13.8077 -1.9622 2.67179 +-13.6412 -1.86417 2.53831 +-14.3516 -1.88332 2.56439 +-13.8897 -1.74758 2.37957 +-13.9149 -1.67576 2.28177 +-13.0556 -1.50217 2.04541 +-13.8639 -1.52097 2.07101 +-13.9843 -1.45958 1.98741 +-13.6107 -1.34821 1.83577 +-14.0252 -1.31489 1.7904 +-12.6594 -1.11991 1.5249 +-13.4676 -1.12037 1.52554 +-13.6819 -1.06622 1.4518 +-13.1016 -0.952224 1.29658 +-12.9164 -0.871106 1.18613 +-13.0282 -0.81054 1.10366 +-13.4378 -0.765908 1.04289 +-12.6517 -0.655194 0.892135 +-12.3618 -0.575883 0.784142 +-12.3698 -0.512007 0.697165 +-12.9758 -0.469773 0.639659 +-12.9822 -0.402729 0.548369 +-12.6879 -0.327908 0.446491 +-12.6923 -0.262357 0.357234 +-12.4957 -0.193686 0.26373 +-12.2981 -0.127066 0.173018 +-11.7996 -0.0609527 0.0829952 +28.5 0 0 +31.2988 -0.159687 0.221599 +33.3949 -0.340788 0.472914 +34.1883 -0.523393 0.726317 +37.2773 -0.761045 1.05611 +36.8649 -0.941 1.30583 +35.0519 -1.07396 1.49035 +35.7332 -1.27774 1.77313 +32.5206 -1.32949 1.84494 +32.001 -1.47242 2.04329 +26.8973 -1.37576 1.90916 +15.3291 -0.862929 1.19749 +17.2052 -1.05721 1.4671 +30.2046 -2.01194 2.79199 +34.9376 -2.50795 3.48031 +40.6492 -3.1287 4.34172 +49.9095 -4.1008 5.69071 +57.9563 -5.06387 7.02717 +69.237 -6.41113 8.89678 +90.8369 -8.88693 12.3325 +94.1476 -9.70536 13.4682 +94.8841 -10.2812 14.2673 +94.8252 -10.776 14.9539 +94.5627 -11.2477 15.6086 +94.6847 -11.7662 16.3281 +94.4078 -12.2362 16.9802 +95.0011 -12.8226 17.794 +94.9033 -13.3204 18.4849 +95.6712 -13.9455 19.3523 +95.3625 -14.4184 20.0086 +95.0471 -14.8893 20.662 +95.5921 -15.4986 21.5075 +95.4533 -16.0018 22.2059 +95.019 -16.455 22.8347 +95.8217 -17.1271 23.7675 +95.3717 -17.5802 24.3962 +96.1518 -18.2648 25.3463 +95.6859 -18.7176 25.9745 +95.4974 -19.2241 26.6774 +95.8666 -19.8472 27.5421 +95.4728 -20.3155 28.192 +96.0089 -20.9861 29.1226 +95.7854 -21.4961 29.8303 +95.3678 -21.9625 30.4776 +95.1291 -22.4701 31.1819 +95.7139 -23.1783 32.1647 +96.3769 -23.917 33.1898 +95.9245 -24.3845 33.8386 +95.7396 -24.9205 34.5824 +96.0009 -25.5777 35.4944 +95.7967 -26.116 36.2414 +95.2227 -26.5533 36.8483 +95.6317 -27.2688 37.8412 +96.2949 -28.0687 38.9512 +94.8922 -28.267 39.2263 +93.6683 -28.5071 39.5595 +94.1222 -29.2583 40.602 +93.594 -29.7095 41.2281 +93.8467 -30.4126 42.2038 +93.2151 -30.8327 42.7868 +93.6173 -31.5994 43.8507 +93.7453 -32.2835 44.8001 +93.9455 -33.0014 45.7963 +93.8757 -33.6322 46.6717 +94.2181 -34.4196 47.7644 +93.9538 -34.9933 48.5604 +94.1827 -35.7579 49.6215 +93.145 -36.0434 50.0177 +93.4325 -36.8441 51.1288 +92.7966 -37.2863 51.7424 +90.4344 -37.0205 51.3737 +89.0642 -37.141 51.5409 +87.8592 -37.3191 51.788 +86.495 -37.4181 51.9255 +84.895 -37.4006 51.9011 +83.3021 -37.3697 51.8582 +82.1107 -37.5053 52.0463 +80.9999 -37.668 52.2722 +79.7352 -37.7487 52.3842 +77.9341 -37.559 52.121 +76.9875 -37.7673 52.41 +75.0521 -37.4752 52.0046 +74.188 -37.7033 52.3211 +72.2742 -37.383 51.8767 +70.9703 -37.3592 51.8436 +69.3778 -37.1668 51.5767 +68.4547 -37.32 51.7892 +67.0971 -37.2252 51.6577 +66.5389 -37.5661 52.1307 +65.2624 -37.4943 52.0312 +63.3568 -37.0404 51.4013 +62.3809 -37.112 51.5007 +61.8941 -37.4709 51.9987 +60.0245 -36.9795 51.3167 +59.5385 -37.3271 51.7991 +58.0332 -37.026 51.3812 +57.6121 -37.4076 51.9108 +56.9191 -37.6125 52.1951 +55.2402 -37.1513 51.5552 +54.0341 -36.9872 51.3275 +53.03 -36.948 51.273 +52.4128 -37.172 51.5839 +51.3525 -37.0745 51.4486 +50.2369 -36.9233 51.2388 +49.6839 -37.1782 51.5925 +48.5183 -36.9665 51.2987 +47.9647 -37.2126 51.6402 +46.8126 -36.9859 51.3256 +46.3175 -37.2706 51.7207 +45.1787 -37.0295 51.3862 +44.6816 -37.3065 51.7705 +43.1602 -36.714 50.9483 +42.4427 -36.7874 51.0502 +42.168 -37.2463 51.6869 +41.3926 -37.2639 51.7114 +40.5124 -37.1777 51.5919 +39.479 -36.9368 51.2575 +38.8739 -37.087 51.4659 +38.1643 -37.1335 51.5305 +37.3041 -37.0246 51.3793 +36.6 -37.0616 51.4307 +35.7992 -36.9925 51.3348 +35.2457 -37.1738 51.5863 +34.26 -36.8898 51.1922 +33.755 -37.1147 51.5044 +32.738 -36.767 51.0218 +32.2787 -37.0368 51.3963 +31.6354 -37.0954 51.4775 +30.7737 -36.8875 51.1891 +30.1788 -36.9904 51.3318 +29.2452 -36.6661 50.8818 +28.6968 -36.8139 51.0869 +27.8615 -36.585 50.7694 +27.2744 -36.6722 50.8902 +26.726 -36.8099 51.0814 +25.7929 -36.4047 50.5192 +25.3234 -36.6433 50.8502 +24.7388 -36.7168 50.9521 +24.2615 -36.9507 51.2768 +23.3238 -36.4708 50.6108 +22.8811 -36.7531 51.0026 +22.2315 -36.7031 50.9332 +21.748 -36.9257 51.2421 +21.1325 -36.9244 51.2403 +20.6423 -37.142 51.5423 +19.7564 -36.6326 50.8353 +19.2965 -36.8997 51.206 +18.4326 -36.3801 50.485 +18.1921 -37.091 51.4715 +17.5041 -36.9007 51.2074 +16.6679 -36.3674 50.4673 +16.3749 -37.0171 51.3689 +15.5314 -36.4185 50.5382 +15.0105 -36.5532 50.7251 +14.3744 -36.4005 50.5132 +13.7439 -36.2441 50.2963 +13.4727 -37.0563 51.4233 +12.6399 -36.3216 50.4037 +12.269 -36.9012 51.208 +11.572 -36.5025 50.6548 +11.044 -36.6177 50.8147 +10.4805 -36.615 50.8109 +9.82408 -36.2629 50.3223 +9.26765 -36.2538 50.3097 +8.75399 -36.4155 50.5341 +8.18399 -36.3428 50.4332 +7.64121 -36.3832 50.4892 +7.10916 -36.4789 50.622 +6.55393 -36.4556 50.5897 +6.00953 -36.4876 50.6342 +5.46467 -36.5169 50.6748 +4.90369 -36.4268 50.5498 +4.37373 -36.5672 50.7445 +3.82164 -36.5297 50.6925 +3.27623 -36.5478 50.7177 +2.72621 -36.5047 50.6579 +2.18122 -36.5172 50.6752 +1.63868 -36.5854 50.7698 +1.09252 -36.5924 50.7796 +0.545408 -36.5381 50.7042 +3.83914e-15 -36.6564 50.8684 +-0.545408 -36.5381 50.7042 +-1.09252 -36.5924 50.7796 +-1.63606 -36.527 50.6888 +-2.1882 -36.6341 50.8374 +-2.72621 -36.5047 50.6579 +-3.28146 -36.6062 50.7987 +-3.81553 -36.4713 50.6116 +-4.42954 -37.0337 51.392 +-4.97431 -36.9514 51.2778 +-5.61283 -37.507 52.0488 +-6.1533 -37.3606 51.8455 +-6.73163 -37.444 51.9614 +-7.27897 -37.3502 51.8312 +-7.86057 -37.4277 51.9387 +-8.27536 -36.7486 50.9963 +-8.94883 -37.226 51.6588 +-9.44502 -36.9476 51.2725 +-9.91795 -36.6093 50.803 +-10.464 -36.5573 50.7309 +-10.8877 -36.0995 50.0956 +-11.5537 -36.445 50.5751 +-12.1164 -36.442 50.5709 +-12.4605 -35.806 49.6882 +-13.4311 -36.9419 51.2646 +-13.7223 -36.1871 50.2171 +-14.7343 -37.3119 51.778 +-15.0572 -36.6669 50.8829 +-15.604 -36.5887 50.7744 +-16.1245 -36.451 50.5834 +-16.7197 -36.4803 50.6241 +-17.5041 -36.9007 51.2074 +-18.0542 -36.81 51.0815 +-18.887 -37.277 51.7296 +-19.4427 -37.1793 51.594 +-19.9669 -37.0229 51.3769 +-20.5805 -37.0308 51.388 +-21.3546 -37.3125 51.7789 +-21.9759 -37.3127 51.7791 +-22.4986 -37.144 51.545 +-23.0864 -37.0828 51.4601 +-23.604 -36.9088 51.2187 +-24.5124 -37.3328 51.807 +-25.032 -37.1519 51.556 +-25.6231 -37.077 51.4521 +-26.4434 -37.323 51.7934 +-27.0777 -37.2943 51.7535 +-27.5934 -37.1011 51.4855 +-28.5936 -37.5464 52.1034 +-29.07 -37.2927 51.7514 +-29.7101 -37.2489 51.6906 +-30.6524 -37.5709 52.1374 +-31.212 -37.413 51.9183 +-31.7247 -37.2 51.6228 +-32.3695 -37.141 51.5408 +-33.2459 -37.3374 51.8134 +-33.802 -37.1663 51.576 +-35.1666 -37.8659 52.5468 +-35.7789 -37.7362 52.3668 +-36.3901 -37.6031 52.1822 +-37.35 -37.8211 52.4846 +-37.8624 -37.5787 52.1482 +-38.9884 -37.9354 52.6432 +-39.5009 -37.6851 52.296 +-40.5388 -37.9284 52.6336 +-41.1034 -37.7201 52.3445 +-42.3729 -38.1464 52.9361 +-42.8855 -37.88 52.5664 +-43.5052 -37.7082 52.328 +-44.0098 -37.4367 51.9512 +-45.6567 -38.1206 52.9003 +-46.6885 -38.267 53.1035 +-47.2579 -38.0274 52.7709 +-48.0617 -37.9728 52.6951 +-48.6868 -37.7728 52.4177 +-49.7358 -37.8941 52.5859 +-50.7305 -37.9614 52.6793 +-51.4197 -37.7926 52.4451 +-52.6741 -38.0286 52.7726 +-53.4942 -37.9389 52.6481 +-54.2513 -37.7989 52.4539 +-55.5928 -38.0542 52.8081 +-56.5523 -38.0338 52.7798 +-57.0516 -37.7001 52.3167 +-58.0805 -37.7117 52.3328 +-59.1817 -37.7588 52.3981 +-60.6297 -38.0112 52.7484 +-61.5389 -37.9125 52.6115 +-63.0055 -38.1438 52.9324 +-64.2033 -38.1962 53.0051 +-65.4781 -38.2806 53.1223 +-66.6176 -38.2729 53.1116 +-67.546 -38.1346 52.9197 +-68.693 -38.1105 52.8863 +-69.9905 -38.1573 52.9512 +-71.0735 -38.0753 52.8374 +-73.0511 -38.4545 53.3636 +-74.1466 -38.3515 53.2207 +-75.8483 -38.5471 53.4921 +-77.2572 -38.5763 53.5326 +-79.4388 -38.9699 54.0788 +-80.5576 -38.8234 53.8756 +-81.7558 -38.7053 53.7116 +-82.6434 -38.4322 53.3327 +-84.7112 -38.6931 53.6947 +-86.3168 -38.7221 53.7349 +-88.1694 -38.8432 53.903 +-88.9066 -38.4614 53.3732 +-90.8526 -38.5906 53.5524 +-92.8906 -38.7367 53.7552 +-95.4312 -39.0661 54.2123 +-96.2579 -38.677 53.6724 +-98.4068 -38.8057 53.8509 +-100.483 -38.8829 53.9582 +-102.402 -38.8783 53.9517 +-105.255 -39.2025 54.4016 +-106.939 -39.0668 54.2132 +-109.479 -39.2223 54.429 +-112.203 -39.415 54.6965 +-114.597 -39.4642 54.7648 +-117.087 -39.5211 54.8438 +-119.761 -39.6132 54.9716 +-123.584 -40.0494 55.5769 +-125.934 -39.9753 55.4741 +-129.44 -40.237 55.8372 +-131.189 -39.926 55.4057 +-134.364 -40.025 55.543 +-137.193 -39.9901 55.4945 +-138.235 -39.4168 54.699 +-139.179 -38.8107 53.8579 +-138.937 -37.8768 52.5619 +-138.769 -36.9725 51.3071 +-138.493 -36.0492 50.0257 +-138.751 -35.2713 48.9462 +-140.009 -34.7448 48.2156 +-139.783 -33.8502 46.9742 +-140.097 -33.092 45.922 +-138.353 -31.8617 44.2147 +-138.917 -31.1756 43.2627 +-140.875 -30.7933 42.7321 +-151.948 -32.3329 44.8686 +-9.89774 -2.04912 2.84358 +-14.6555 -2.95023 4.09406 +-15.0783 -2.94955 4.09311 +-16.2631 -3.08931 4.28706 +-15.3548 -2.83041 3.92779 +-15.3965 -2.75197 3.81893 +-15.437 -2.67332 3.70978 +-15.1879 -2.54611 3.53326 +-15.6108 -2.53102 3.51232 +-14.7787 -2.3151 3.21269 +-15.3935 -2.32744 3.22981 +-14.8455 -2.16396 3.00295 +-14.0994 -1.97896 2.74621 +-13.7386 -1.85434 2.57328 +-13.4729 -1.74622 2.42324 +-13.6941 -1.70172 2.3615 +-13.327 -1.58517 2.19975 +-13.1538 -1.49481 2.07436 +-13.5689 -1.47026 2.04029 +-13.1964 -1.36037 1.8878 +-14.3011 -1.39914 1.94159 +-14.0252 -1.29868 1.80219 +-13.4506 -1.17523 1.63088 +-13.3686 -1.09843 1.5243 +-12.9879 -0.999656 1.38723 +-13.3001 -0.954733 1.32489 +-12.0222 -0.800806 1.11128 +-13.1277 -0.806664 1.11941 +-13.7365 -0.773275 1.07308 +-12.9505 -0.6624 0.919218 +-12.5612 -0.577958 0.802038 +-12.4696 -0.509773 0.707417 +-12.6763 -0.453275 0.629013 +-13.6812 -0.419183 0.581704 +-12.0885 -0.308566 0.428199 +-12.8921 -0.263204 0.36525 +-12.4957 -0.191299 0.265467 +-11.1983 -0.114276 0.158582 +-11.7996 -0.0602013 0.0835418 +28.5 0 0 +31.8988 -0.160703 0.227305 +33.3949 -0.336507 0.47597 +35.6878 -0.539485 0.763071 +37.2773 -0.751484 1.06293 +36.2655 -0.914066 1.29289 +35.0519 -1.06047 1.49998 +34.1362 -1.2053 1.70482 +32.5206 -1.31279 1.85686 +32.2004 -1.46298 2.0693 +26.8973 -1.35848 1.92149 +16.1254 -0.896355 1.26784 +17.2052 -1.04393 1.47658 +31.7943 -2.09122 2.95792 +34.9376 -2.47645 3.5028 +41.5415 -3.15722 4.4657 +49.9095 -4.04928 5.72748 +64.4838 -5.56342 7.86914 +69.237 -6.33059 8.95427 +93.4999 -9.03253 12.776 +94.1476 -9.58344 13.5552 +94.9824 -10.1626 14.3744 +94.8252 -10.6406 15.0506 +94.6607 -11.1179 15.7257 +94.6847 -11.6184 16.4336 +95.1889 -12.1824 17.2314 +95.0011 -12.6615 17.9089 +95.0005 -13.1665 18.6233 +95.6712 -13.7703 19.4774 +95.4594 -14.2518 20.1584 +95.0471 -14.7022 20.7955 +95.014 -15.2114 21.5156 +95.4533 -15.8008 22.3494 +95.1149 -16.2647 23.0055 +95.8217 -16.912 23.9211 +95.5624 -17.3941 24.6029 +96.1518 -18.0354 25.51 +95.7807 -18.5008 26.1683 +95.4974 -18.9826 26.8498 +96.0552 -19.6364 27.7746 +95.4728 -20.0603 28.3741 +96.1026 -20.7427 29.3394 +95.7854 -21.2261 30.0231 +96.4843 -21.9405 31.0336 +95.1291 -22.1878 31.3834 +95.8063 -22.9093 32.4039 +96.3769 -23.6166 33.4043 +96.0162 -24.1012 34.0898 +95.7396 -24.6075 34.8059 +96.2739 -25.3282 35.8253 +95.7967 -25.7879 36.4755 +96.2156 -26.4932 37.4731 +95.6317 -26.9263 38.0857 +96.0265 -27.6388 39.0935 +94.8922 -27.9119 39.4797 +94.0231 -28.2556 39.9659 +94.1222 -28.8908 40.8644 +93.6819 -29.3638 41.5334 +93.8467 -30.0306 42.4765 +93.4762 -30.5306 43.1838 +93.6173 -31.2024 44.134 +93.8314 -31.9072 45.1309 +93.9455 -32.5869 46.0923 +93.9609 -33.2398 47.0158 +94.2181 -33.9872 48.073 +93.8695 -34.5226 48.8303 +94.1827 -35.3086 49.9421 +93.8122 -35.8455 50.7014 +93.4325 -36.3812 51.4592 +94.0328 -37.3084 52.7706 +90.4344 -36.5555 51.7057 +89.8784 -37.0097 52.3481 +87.8592 -36.8503 52.1227 +87.0577 -37.1885 52.601 +84.895 -36.9308 52.2365 +84.3335 -37.357 52.8394 +82.1107 -37.0341 52.3826 +80.9217 -37.1589 52.5591 +79.7352 -37.2745 52.7227 +78.7057 -37.4544 52.9772 +76.9875 -37.2929 52.7487 +76.1166 -37.5293 53.0831 +74.188 -37.2296 52.6592 +73.6223 -37.602 53.1859 +70.9703 -36.8898 52.1786 +70.41 -37.246 52.6823 +68.4547 -36.8512 52.1239 +67.8225 -37.1549 52.5535 +66.5389 -37.0941 52.4676 +65.619 -37.2256 52.6536 +63.3568 -36.5751 51.7334 +62.8015 -36.8928 52.1828 +61.8941 -37.0002 52.3347 +60.7129 -36.9337 52.2406 +59.5385 -36.8582 52.1338 +59.2493 -37.327 52.7969 +57.6121 -36.9376 52.2462 +56.9191 -37.14 52.5324 +55.2402 -36.6846 51.8883 +55.333 -37.4005 52.9009 +53.03 -36.4838 51.6043 +53.0489 -37.1505 52.5473 +51.3525 -36.6088 51.781 +50.7972 -36.8661 52.145 +49.6839 -36.7112 51.9259 +49.127 -36.96 52.2779 +47.9647 -36.7451 51.9739 +47.4669 -37.0317 52.3793 +46.3175 -36.8024 52.0549 +45.7013 -36.9873 52.3165 +44.6816 -36.8378 52.105 +43.5 -36.5382 51.6812 +42.4427 -36.3253 51.38 +42.8855 -37.4041 52.906 +41.3926 -36.7957 52.0455 +41.0497 -37.1976 52.6139 +39.479 -36.4728 51.5887 +39.2396 -36.9656 52.2858 +38.1643 -36.6671 51.8635 +37.6086 -36.8579 52.1334 +36.6 -36.5961 51.7631 +36.3409 -37.0805 52.4483 +35.2457 -36.7068 51.9197 +34.7372 -36.9337 52.2406 +33.755 -36.6485 51.8372 +32.8303 -36.4075 51.4964 +32.2787 -36.5715 51.7284 +31.68 -36.681 51.8832 +30.7737 -36.4241 51.5199 +30.6093 -37.0467 52.4005 +29.2452 -36.2055 51.2106 +28.7382 -36.4039 51.4913 +27.8615 -36.1255 51.0974 +27.6333 -36.688 51.893 +26.726 -36.3475 51.4115 +26.2138 -36.5341 51.6754 +25.3234 -36.183 51.1788 +25.1053 -36.7926 52.0411 +24.2615 -36.4865 51.6082 +23.709 -36.6074 51.7791 +22.8811 -36.2914 51.3322 +22.5653 -36.7863 52.0321 +21.748 -36.4618 51.5732 +21.2277 -36.6248 51.8037 +20.6423 -36.6754 51.8753 +19.8165 -36.2825 51.3195 +19.2965 -36.4361 51.5369 +18.745 -36.532 51.6724 +18.1921 -36.625 51.804 +17.4774 -36.3815 51.4595 +16.6679 -35.9105 50.7934 +16.5 -36.8315 52.096 +15.5314 -35.961 50.8648 +15.2206 -36.5992 51.7675 +14.3744 -35.9432 50.8396 +14.0253 -36.5215 51.6576 +13.4727 -36.5908 51.7556 +12.9988 -36.8835 52.1697 +12.269 -36.4376 51.5389 +11.7906 -36.7251 51.9456 +11.044 -36.1577 51.1431 +10.6621 -36.7813 52.0251 +9.82408 -35.8073 50.6474 +9.41546 -36.3693 51.4423 +8.75399 -35.958 50.8606 +8.31452 -36.4586 51.5686 +7.64121 -35.9261 50.8155 +7.19972 -36.4795 51.5982 +6.55393 -35.9976 50.9166 +6.01911 -36.0868 51.0427 +5.46467 -36.0582 51.0023 +4.98215 -36.5448 51.6905 +4.37373 -36.1078 51.0724 +3.87048 -36.5317 51.6721 +3.27623 -36.0887 51.0454 +2.76983 -36.6229 51.801 +2.18122 -36.0585 51.0027 +1.63868 -36.1258 51.0979 +1.09252 -36.1327 51.1077 +0.554135 -36.6564 51.8484 +3.83914e-15 -36.1959 51.1971 +-0.554135 -36.6564 51.8484 +-1.09252 -36.1327 51.1077 +-1.66224 -36.6452 51.8325 +-2.1882 -36.1739 51.1659 +-2.76983 -36.6229 51.801 +-3.28146 -36.1463 51.127 +-3.87658 -36.5894 51.7537 +-4.42954 -36.5685 51.724 +-5.06061 -37.1203 52.5046 +-5.61283 -37.0358 52.3851 +-6.16288 -36.9487 52.2619 +-6.73163 -36.9737 52.2972 +-7.29029 -36.9383 52.2472 +-7.86057 -36.9575 52.2743 +-8.41894 -36.9165 52.2163 +-8.94883 -36.7583 51.9926 +-9.48936 -36.6548 51.8461 +-9.91795 -36.1494 51.1313 +-10.6456 -36.7244 51.9446 +-10.8877 -35.646 50.4193 +-11.572 -36.0439 50.9821 +-12.1164 -35.9842 50.8977 +-12.8792 -36.5441 51.6896 +-13.4311 -36.4778 51.5958 +-13.982 -36.4088 51.4982 +-14.7343 -36.8432 52.1126 +-15.0572 -36.2063 51.2117 +-15.604 -36.129 51.1025 +-16.4249 -36.6638 51.8589 +-16.7197 -36.0221 50.9512 +-17.7446 -36.9378 52.2464 +-18.0542 -36.3475 51.4115 +-18.8586 -36.7534 51.9856 +-19.4427 -36.7122 51.9273 +-20.2375 -37.0533 52.4098 +-20.5805 -36.5656 51.72 +-21.3863 -36.8985 52.1908 +-21.9759 -36.8439 52.1137 +-22.4986 -36.6774 51.8781 +-23.0864 -36.617 51.7926 +-23.9192 -36.9318 52.238 +-24.5124 -36.8638 52.1418 +-25.3985 -37.2223 52.6488 +-25.6231 -36.6112 51.7845 +-26.52 -36.9608 52.2789 +-27.0777 -36.8258 52.088 +-27.9922 -37.1644 52.5669 +-28.5936 -37.0747 52.44 +-29.4847 -37.3495 52.8287 +-29.7101 -36.781 52.0246 +-30.6954 -37.1509 52.5479 +-31.212 -36.943 52.2538 +-32.1709 -37.2494 52.6871 +-32.3695 -36.6744 51.8739 +-33.7538 -37.4316 52.9449 +-33.802 -36.6994 51.9093 +-35.2143 -37.441 52.9581 +-35.7789 -37.2621 52.7052 +-36.784 -37.5327 53.0879 +-37.35 -37.346 52.8237 +-38.4207 -37.6538 53.2591 +-38.9884 -37.4588 52.9834 +-40.0234 -37.7039 53.3301 +-40.5388 -37.4519 52.9737 +-41.8019 -37.8793 53.5781 +-42.3729 -37.6672 53.2781 +-43.4374 -37.8855 53.587 +-43.5052 -37.2345 52.6661 +-44.5762 -37.4421 52.9598 +-45.6567 -37.6418 53.2421 +-46.4562 -37.5983 53.1807 +-47.2579 -37.5497 53.1119 +-48.6565 -37.9598 53.6921 +-48.6868 -37.2983 52.7564 +-50.4054 -37.9219 53.6383 +-50.7305 -37.4845 53.0197 +-51.8555 -37.6341 53.2314 +-52.6741 -37.5509 53.1136 +-53.367 -37.3732 52.8623 +-54.2513 -37.3241 52.7928 +-55.3979 -37.4444 52.963 +-56.5523 -37.556 53.1209 +-57.7142 -37.6588 53.2662 +-58.0805 -37.2379 52.671 +-59.8573 -37.71 53.3387 +-60.6297 -37.5337 53.0893 +-62.4338 -37.9806 53.7214 +-63.0055 -37.6646 53.2745 +-64.9042 -38.1281 53.9301 +-65.4781 -37.7997 53.4655 +-66.9742 -37.9944 53.741 +-67.546 -37.6556 53.2617 +-69.781 -38.2278 54.0711 +-69.9905 -37.678 53.2933 +-72.2532 -38.2209 54.0614 +-73.0511 -37.9714 53.7084 +-75.27 -38.4435 54.3761 +-75.8483 -38.0628 53.8377 +-78.8541 -38.8791 54.9922 +-79.4388 -38.4803 54.4282 +-81.7922 -38.9232 55.0547 +-81.7558 -38.219 54.0587 +-84.1304 -38.6323 54.6432 +-84.7112 -38.207 54.0416 +-87.5862 -38.7979 54.8775 +-88.1694 -38.3552 54.2513 +-91.077 -38.9054 55.0295 +-90.8526 -38.1058 53.8985 +-93.7047 -38.5853 54.5767 +-95.4312 -38.5753 54.5626 +-98.2358 -38.9759 55.1292 +-98.4068 -38.3182 54.1989 +-101.567 -38.8087 54.8927 +-102.402 -38.3899 54.3003 +-105.34 -38.741 54.797 +-106.939 -38.576 54.5635 +-110.417 -39.0614 55.2501 +-112.203 -38.9199 55.05 +-115.458 -39.2614 55.533 +-117.087 -39.0246 55.1982 +-121.676 -39.7409 56.2113 +-123.584 -39.5463 55.936 +-126.462 -39.6384 56.0662 +-129.44 -39.7315 56.198 +-131.899 -39.6377 56.0653 +-134.364 -39.5222 55.9019 +-137.999 -39.7195 56.181 +-138.235 -38.9216 55.0524 +-140.081 -38.5717 54.5574 +-138.937 -37.401 52.9016 +-139.497 -36.6996 51.9095 +-138.493 -35.5963 50.349 +-139.943 -35.1274 49.6858 +-140.009 -34.3083 48.5272 +-140.245 -33.5354 47.4339 +-140.097 -32.6763 46.2187 +-138.632 -31.5249 44.5902 +-138.917 -30.784 43.5422 +-141.531 -30.5479 43.2083 +-151.948 -31.9267 45.1585 +-183.909 -37.5963 53.1778 +-14.6555 -2.91317 4.12052 +-15.4577 -2.98577 4.22321 +-16.2631 -3.0505 4.31476 +-15.3548 -2.79486 3.95317 +-15.3965 -2.7174 3.8436 +-15.3411 -2.62334 3.71057 +-15.1879 -2.51413 3.55609 +-15.5145 -2.4838 3.5132 +-14.7787 -2.28602 3.23344 +-15.4904 -2.31266 3.27113 +-14.8455 -2.13678 3.02235 +-14.8773 -2.0619 2.91645 +-13.7386 -1.83105 2.58991 +-13.0824 -1.6743 2.36821 +-13.6941 -1.68035 2.37675 +-13.523 -1.58828 2.24653 +-13.1538 -1.47603 2.08776 +-13.1756 -1.40971 1.99396 +-13.1964 -1.34328 1.9 +-13.5121 -1.30533 1.84632 +-14.0252 -1.28237 1.81384 +-13.6484 -1.17753 1.66556 +-13.3686 -1.08463 1.53415 +-13.1862 -1.00217 1.41751 +-13.3001 -0.94274 1.33345 +-13.8106 -0.908374 1.28484 +-13.1277 -0.79653 1.12665 +-13.1392 -0.730361 1.03305 +-12.9505 -0.654078 0.925157 +-13.1593 -0.597874 0.845659 +-12.4696 -0.503369 0.711988 +-11.8778 -0.419387 0.593199 +-13.6812 -0.413917 0.585462 +-13.687 -0.344979 0.487953 +-12.8921 -0.259897 0.36761 +-12.1958 -0.184362 0.26077 +-11.1983 -0.112841 0.159607 +-12.0995 -0.0609564 0.0862194 +55.3 0 0 +58.7978 -0.292433 0.421634 +54.9916 -0.547047 0.788741 +47.4837 -0.708633 1.02172 +43.1737 -0.859232 1.23885 +40.5614 -1.00928 1.4552 +37.9479 -1.13342 1.63419 +35.6334 -1.24208 1.79085 +26.7347 -1.06543 1.53616 +26.518 -1.18941 1.71491 +29.6866 -1.48019 2.13417 +36.0333 -1.97737 2.85101 +37.4935 -2.24586 3.23812 +38.2525 -2.48385 3.58126 +43.3743 -3.03517 4.37615 +46.7962 -3.51113 5.0624 +67.9324 -5.44109 7.84506 +93.6598 -7.97738 11.5019 +95.4107 -8.61226 12.4173 +95.4724 -9.10524 13.1281 +94.4431 -9.49067 13.6838 +95.1791 -10.0535 14.4952 +94.2362 -10.4395 15.0518 +94.9547 -11.01 15.8744 +94.7825 -11.4818 16.5546 +95.4817 -12.0638 17.3937 +95.196 -12.5253 18.0592 +95.0978 -13.0116 18.7604 +95.6712 -13.5944 19.6006 +95.5562 -14.0839 20.3064 +95.3369 -14.5586 20.9908 +95.9776 -15.1693 21.8713 +95.6455 -15.6303 22.536 +95.2108 -16.073 23.1743 +96.013 -16.7292 24.1205 +95.7532 -17.2061 24.8081 +95.2959 -17.6464 25.4429 +95.8755 -18.2825 26.3599 +95.5919 -18.7586 27.0464 +96.0552 -19.3855 27.9503 +95.7547 -19.8625 28.638 +96.1962 -20.4976 29.5537 +95.9721 -20.9956 30.2718 +96.5773 -21.681 31.26 +96.149 -22.1392 31.9206 +95.9911 -22.6601 32.6717 +96.4689 -23.337 33.6477 +96.0162 -23.7932 34.3054 +95.8309 -24.3162 35.0595 +95.6369 -24.8392 35.8135 +96.7937 -25.7233 37.0882 +96.4864 -26.2282 37.8163 +95.9912 -26.6821 38.4707 +96.2054 -27.3365 39.4142 +95.6941 -27.788 40.0653 +96.0633 -28.4998 41.0914 +96.4179 -29.2172 42.1259 +95.7911 -29.6412 42.7372 +96.0332 -30.3375 43.7412 +94.6947 -30.5334 44.0235 +93.8772 -30.8892 44.5365 +94.0037 -31.5573 45.4999 +94.0313 -32.1998 46.4262 +93.4494 -32.6364 47.0557 +92.8613 -33.0698 47.6805 +93.7008 -34.0202 49.051 +93.0924 -34.4539 49.6762 +93.8955 -35.4189 51.0675 +93.2667 -35.8526 51.6929 +93.3735 -36.5733 52.732 +93.4652 -37.2979 53.7767 +93.7861 -38.1253 54.9697 +93.4415 -38.6908 55.785 +93.3278 -39.3574 56.7462 +93.2008 -40.0259 57.7099 +93.1397 -40.7307 58.7262 +90.7 -40.3854 58.2283 +89.3739 -40.5156 58.4161 +87.8175 -40.5282 58.4342 +86.7306 -40.7459 58.7481 +85.4906 -40.8826 58.9452 +83.8728 -40.825 58.8622 +81.735 -40.4928 58.3832 +80.9621 -40.8222 58.8582 +79.6651 -40.8802 58.9417 +78.3726 -40.9283 59.011 +77.0847 -40.9667 59.0664 +75.2213 -40.6816 58.6554 +74.3797 -40.9354 59.0213 +72.6089 -40.6646 58.6309 +71.3471 -40.6615 58.6264 +70.3012 -40.7708 58.7841 +68.9101 -40.668 58.6358 +67.6653 -40.6371 58.5912 +66.7676 -40.8053 58.8338 +65.4647 -40.7157 58.7045 +64.8388 -41.0397 59.1717 +63.8766 -41.1472 59.3266 +62.3256 -40.8611 58.9142 +61.7625 -41.2129 59.4214 +60.0364 -40.7763 58.792 +59.4733 -41.1173 59.2836 +57.8975 -40.7471 58.7499 +57.5204 -41.212 59.4201 +55.8405 -40.733 58.7295 +55.2147 -41.0091 59.1276 +54.5244 -41.2367 59.4557 +53.2961 -41.0482 59.1839 +52.0778 -40.8506 58.899 +50.9276 -40.6904 58.6681 +50.0732 -40.7555 58.7619 +49.4473 -41.0029 59.1187 +47.9228 -40.4913 58.381 +47.4666 -40.8707 58.928 +46.1854 -40.5317 58.4392 +45.563 -40.7598 58.7681 +44.4602 -40.5498 58.4654 +43.4719 -40.4293 58.2916 +42.5421 -40.3508 58.1785 +41.7704 -40.4136 58.2689 +41.4 -40.8665 58.922 +40.4772 -40.7732 58.7875 +39.6574 -40.7736 58.7881 +38.793 -40.7189 58.7091 +38.215 -40.9606 59.0576 +37.2169 -40.7447 58.7464 +36.183 -40.4712 58.352 +35.6066 -40.7006 58.6828 +34.5436 -40.3639 58.1974 +33.8812 -40.4828 58.3687 +33.2601 -40.6497 58.6094 +32.3046 -40.3987 58.2475 +31.7255 -40.6098 58.5519 +30.6638 -40.1912 57.9483 +30.0082 -40.2897 58.0904 +29.5814 -40.7007 58.6829 +28.7698 -40.582 58.5118 +28.1473 -40.7236 58.716 +27.1643 -40.33 58.1484 +26.5457 -40.4635 58.341 +25.8909 -40.5404 58.4519 +25.3359 -40.7751 58.7902 +24.3525 -40.3068 58.115 +23.7661 -40.4804 58.3653 +22.8364 -40.0551 57.7521 +22.2522 -40.2215 57.992 +21.6063 -40.2761 58.0707 +21.2443 -40.8738 58.9326 +20.3696 -40.4849 58.3717 +19.7489 -40.5847 58.5156 +18.9197 -40.2409 58.02 +18.3529 -40.4438 58.3126 +17.4668 -39.9253 57.565 +17.1115 -40.6202 58.5669 +16.4664 -40.6483 58.6073 +15.6053 -40.1165 57.8407 +14.9904 -40.1926 57.9504 +14.4143 -40.3774 58.2168 +13.7573 -40.3356 58.1565 +13.0663 -40.1784 57.9298 +12.5374 -40.5224 58.4259 +11.8669 -40.4146 58.2704 +11.1694 -40.1906 57.9475 +10.4649 -39.9065 57.5378 +9.83954 -39.9006 57.5293 +9.33262 -40.4 58.2494 +8.61616 -39.9923 57.6616 +8.02611 -40.1469 57.8845 +7.3379 -39.7885 57.3678 +6.77629 -40.1072 57.8272 +6.09219 -39.6852 57.2187 +5.53137 -40.0549 57.7518 +4.91783 -40.0809 57.7892 +4.31003 -40.1606 57.9043 +3.69492 -40.1805 57.9329 +3.06644 -40.0266 57.711 +2.46041 -40.1543 57.8951 +1.84024 -40.051 57.7462 +1.21643 -39.7167 57.2642 +0.613475 -40.0632 57.7638 +4.26163e-15 -39.6658 57.1908 +-0.613475 -40.0632 57.7638 +-1.23039 -40.1726 57.9215 +-1.86118 -40.5067 58.4033 +-2.4639 -40.2112 57.9772 +-3.1057 -40.539 58.4498 +-3.68445 -40.0667 57.7689 +-4.34055 -40.4451 58.3144 +-4.91783 -40.0809 57.7892 +-5.5706 -40.3389 58.1613 +-6.19677 -40.3664 58.201 +-6.88173 -40.7312 58.7269 +-7.3379 -39.7885 57.3678 +-8.15063 -40.7698 58.7826 +-8.66491 -40.2186 57.9878 +-9.41094 -40.739 58.7382 +-9.89521 -40.1263 57.8548 +-10.6275 -40.5265 58.4317 +-11.1225 -40.0218 57.704 +-11.8504 -40.3584 58.1894 +-12.4853 -40.3541 58.1832 +-13.2485 -40.7387 58.7377 +-13.681 -40.1119 57.8339 +-14.2149 -39.8189 57.4115 +-15.032 -40.3041 58.1112 +-15.7352 -40.4504 58.322 +-16.264 -40.1485 57.8868 +-16.9715 -40.2877 58.0875 +-17.7087 -40.4783 58.3622 +-18.3278 -40.3887 58.233 +-18.9456 -40.296 58.0994 +-19.8024 -40.6945 58.674 +-20.3145 -40.3753 58.2138 +-21.1591 -40.7099 58.6962 +-21.8109 -40.6576 58.6208 +-22.7334 -41.0911 59.2459 +-23.2072 -40.7055 58.6898 +-24.02 -40.9128 58.9888 +-24.613 -40.7379 58.7366 +-25.5362 -41.0975 59.255 +-26.1987 -41.0225 59.1469 +-27.2111 -41.4778 59.8033 +-27.8452 -41.3409 59.6059 +-28.5138 -41.2538 59.4805 +-29.1444 -41.1105 59.2737 +-30.1172 -41.4378 59.7457 +-30.6724 -41.1815 59.3762 +-31.3417 -41.0797 59.2294 +-32.3762 -41.4429 59.753 +-33.0511 -41.3321 59.5934 +-33.6827 -41.1662 59.3541 +-34.7422 -41.5115 59.852 +-35.4642 -41.4396 59.7483 +-36.0974 -41.2616 59.4917 +-37.0002 -41.3852 59.6699 +-37.771 -41.3513 59.621 +-38.215 -40.9606 59.0576 +-39.3179 -41.2698 59.5035 +-39.8029 -40.9232 59.0037 +-41.659 -41.9637 60.504 +-41.85 -41.3107 59.5625 +-42.9377 -41.543 59.8973 +-43.4692 -41.2301 59.4463 +-44.3079 -41.2068 59.4126 +-45.4141 -41.4198 59.7197 +-46.3152 -41.4327 59.7383 +-46.9479 -41.2008 59.404 +-47.9081 -41.2509 59.4762 +-48.7057 -41.1528 59.3348 +-49.8437 -41.3317 59.5927 +-50.9909 -41.5024 59.8388 +-52.1471 -41.6648 60.073 +-52.4304 -41.1272 59.2979 +-54.2478 -41.7811 60.2407 +-54.8855 -41.5098 59.8495 +-56.0669 -41.6421 60.0403 +-57.195 -41.721 60.154 +-58.2051 -41.7026 60.1275 +-59.4078 -41.8101 60.2825 +-60.3002 -41.689 60.1078 +-61.5148 -41.7804 60.2397 +-62.7367 -41.8629 60.3586 +-63.3097 -41.5063 59.8445 +-64.738 -41.7021 60.1267 +-65.5748 -41.5056 59.8434 +-67.1537 -41.7661 60.2191 +-68.1998 -41.6806 60.0958 +-69.455 -41.7119 60.141 +-70.9246 -41.8569 60.3499 +-72.4039 -41.9903 60.5424 +-73.4684 -41.8704 60.3695 +-74.6773 -41.823 60.3011 +-75.9623 -41.8063 60.277 +-78.2679 -42.3293 61.031 +-78.9131 -41.9384 60.4674 +-80.8793 -42.2373 60.8985 +-82.5634 -42.3674 61.086 +-85.0065 -42.8615 61.7984 +-85.886 -42.5492 61.3482 +-88.2071 -42.9348 61.9041 +-89.9336 -43.0073 62.0087 +-92.6721 -43.5372 62.7726 +-94.3455 -43.5409 62.778 +-96.9652 -43.957 63.3779 +-97.8709 -43.5783 62.832 +-99.0105 -43.2981 62.4278 +-99.9892 -42.9412 61.9133 +-101.608 -42.8491 61.7805 +-103.311 -42.7776 61.6775 +-105.428 -42.8579 61.7932 +-107.555 -42.9203 61.8832 +-110.927 -43.449 62.6455 +-112.998 -43.4375 62.6288 +-114.909 -43.3456 62.4965 +-116.659 -43.176 62.2519 +-121.786 -44.2171 63.753 +-125.087 -44.546 64.2271 +-129.004 -45.0537 64.9592 +-131.061 -44.8801 64.7088 +-132.519 -44.4869 64.1419 +-135.013 -44.4245 64.052 +-137.69 -44.3968 64.0121 +-138.19 -43.6551 62.9426 +-138.589 -42.8846 61.8317 +-140.654 -42.6218 61.4528 +-139.704 -41.447 59.7589 +-139.443 -40.4919 58.3818 +-138.804 -39.4408 56.8665 +-140.212 -38.9739 56.1931 +-140.894 -38.2996 55.221 +-141.112 -37.5011 54.0697 +-140.589 -36.5142 52.6468 +-139.772 -35.4659 51.1354 +-139.852 -34.6558 49.9673 +-139.364 -33.714 48.6095 +-143.201 -33.8048 48.7403 +-159.754 -36.7847 53.0368 +-193.713 -43.4874 62.7008 +-224.9 -49.2008 70.9386 +-231.545 -49.3379 71.1362 +-236.709 -49.1006 70.7941 +-243.579 -49.158 70.8769 +-10.8735 -2.13376 3.07649 +-14.2249 -2.71253 3.91097 +-18.6407 -3.4518 4.97686 +-14.9734 -2.69059 3.87934 +-14.9184 -2.59936 3.7478 +-15.6288 -2.63837 3.80405 +-15.6686 -2.56055 3.69184 +-16.189 -2.55867 3.68913 +-15.648 -2.38956 3.44531 +-15.4904 -2.28311 3.29182 +-16.301 -2.31628 3.33965 +-16.1413 -2.20851 3.18427 +-16.3694 -2.1538 3.10538 +-16.1089 -2.03529 2.93452 +-15.3569 -1.86031 2.68222 +-15.3848 -1.78387 2.57201 +-14.3318 -1.58766 2.28912 +-12.684 -1.33977 1.9317 +-3226.53 -324.236 467.489 +-3231.37 -308.176 444.334 +-3235.96 -292.094 421.146 +-3240.31 -275.99 397.926 +-3244.42 -259.864 374.676 +-14.5742 -1.09351 1.57664 +-3251.88 -227.555 328.092 +-14.6055 -0.948383 1.36739 +-13.5255 -0.810179 1.16813 +-11.4471 -0.628173 0.90571 +-13.0502 -0.65069 0.938175 +-14.555 -0.652833 0.941265 +-13.6666 -0.544643 0.785275 +-14.5728 -0.507967 0.732395 +-14.1805 -0.423541 0.610669 +-13.7869 -0.343057 0.494625 +-14.2913 -0.284421 0.410083 +-13.6953 -0.204384 0.294684 +-13.098 -0.130297 0.187864 +-13.2995 -0.0661455 0.0953697 +56.3 0 0 +60.4977 -0.29696 0.436521 +56.6914 -0.556596 0.818176 +49.7829 -0.733246 1.07785 +42.2742 -0.830351 1.22059 +41.6603 -1.0231 1.50392 +39.1463 -1.15395 1.69627 +37.2304 -1.28081 1.88275 +26.0364 -1.02406 1.50533 +27.7143 -1.22684 1.80342 +30.0851 -1.48049 2.17626 +36.7301 -1.9893 2.92421 +39.6814 -2.3459 3.44839 +39.7429 -2.54695 3.74393 +43.4735 -3.00241 4.41344 +48.7791 -3.61214 5.30972 +70.4081 -5.56579 8.18151 +93.6598 -7.87327 11.5734 +95.6082 -8.51747 12.5204 +95.4724 -8.98641 13.2097 +95.3294 -9.45467 13.898 +95.2774 -9.93249 14.6004 +95.1197 -10.3998 15.2873 +94.9547 -10.8663 15.9731 +95.565 -11.4255 16.7951 +95.5794 -11.9185 17.5197 +95.2934 -12.3745 18.1901 +95.9729 -12.96 19.0507 +95.6712 -13.417 19.7224 +95.4594 -13.8861 20.412 +95.3369 -14.3686 21.1213 +95.9776 -14.9713 22.0073 +95.6455 -15.4263 22.6762 +95.4026 -15.8952 23.3654 +95.8217 -16.478 24.2221 +95.5624 -16.9477 24.9125 +95.4861 -17.4509 25.6522 +95.8755 -18.0439 26.5238 +95.5919 -18.5137 27.2146 +96.0552 -19.1325 28.124 +96.6004 -19.7764 29.0706 +96.2899 -20.2498 29.7664 +95.9721 -20.7216 30.4601 +96.5773 -21.3981 31.4544 +96.2417 -21.8713 32.1501 +95.9911 -22.3644 32.8748 +95.6405 -22.8347 33.5662 +96.0162 -23.4827 34.5187 +96.0136 -24.0446 35.3447 +95.7279 -24.5383 36.0704 +96.0686 -25.1974 37.0393 +95.7643 -25.6922 37.7666 +95.9912 -26.3339 38.7099 +95.579 -26.804 39.401 +95.7832 -27.4509 40.3519 +96.0633 -28.1278 41.3469 +96.3296 -28.8095 42.3489 +95.8789 -29.2812 43.0424 +95.3335 -29.7234 43.6924 +95.7391 -30.4673 44.7858 +94.8298 -30.7954 45.2682 +93.5729 -31.0028 45.573 +94.0313 -31.7796 46.7148 +93.6199 -32.2692 47.4347 +93.5397 -32.8766 48.3275 +93.7008 -33.5763 49.3559 +93.8472 -34.28 50.3904 +93.8955 -34.9566 51.385 +93.3496 -35.4162 52.0605 +93.4559 -36.1279 53.1068 +93.5472 -36.8433 54.1584 +93.7861 -37.6278 55.3115 +93.4415 -38.1858 56.1318 +93.7297 -39.0111 57.3449 +93.6001 -39.6727 58.3175 +93.457 -40.3361 59.2927 +91.5668 -40.2393 59.1503 +89.9999 -40.267 59.1911 +88.4392 -40.2825 59.2138 +86.9621 -40.3214 59.2711 +85.1841 -40.2045 59.0991 +84.5571 -40.621 59.7115 +82.5652 -40.3703 59.343 +81.9358 -40.774 59.9364 +79.3679 -40.1961 59.0868 +78.5938 -40.5081 59.5455 +77.3041 -40.5471 59.6028 +76.0192 -40.5766 59.6461 +74.3797 -40.4011 59.3883 +73.8927 -40.8435 60.0386 +72.1956 -40.6081 59.6924 +70.6517 -40.4393 59.4444 +69.1185 -40.2586 59.1787 +68.629 -40.6779 59.7951 +67.245 -40.5608 59.6229 +66.0727 -40.5575 59.6181 +64.8388 -40.5041 59.5396 +64.4729 -40.9893 60.2529 +62.6536 -40.5401 59.5926 +62.2821 -41.0172 60.2938 +61.0648 -40.9335 60.1708 +59.9822 -40.9279 60.1626 +58.7785 -40.8273 60.0147 +57.5826 -40.7182 59.8543 +55.9636 -40.2901 59.225 +55.2147 -40.4739 59.4953 +53.9828 -40.2942 59.2311 +52.8797 -40.196 59.0866 +52.1953 -40.4085 59.399 +51.1019 -40.2968 59.2349 +50.36 -40.4539 59.4658 +49.6738 -40.6532 59.7588 +48.5379 -40.4758 59.4981 +47.9081 -40.7125 59.846 +46.3488 -40.1442 59.0106 +45.2406 -39.9432 58.7152 +44.5662 -40.116 58.9691 +43.9944 -40.3812 59.359 +43.0057 -40.2582 59.1781 +42.2779 -40.3708 59.3436 +41.15 -40.0897 58.9304 +40.5757 -40.3391 59.297 +39.4635 -40.0447 58.8643 +38.9362 -40.3358 59.2922 +37.8864 -40.0784 58.9138 +37.3093 -40.3127 59.2583 +36.2284 -39.9931 58.7885 +35.2942 -39.8171 58.5297 +34.982 -40.3427 59.3024 +34.0534 -40.1575 59.0301 +33.3023 -40.1702 59.0488 +32.429 -40.025 58.8354 +31.7661 -40.1313 58.9916 +30.8632 -39.9246 58.6877 +30.2035 -40.0228 58.8321 +29.237 -39.7018 58.3603 +28.545 -39.7395 58.4157 +28.3305 -40.4538 59.4657 +27.2718 -39.9612 58.7415 +26.6508 -40.0935 58.9361 +25.9935 -40.1699 59.0484 +25.1357 -39.9248 58.6881 +24.4176 -39.8872 58.6327 +23.7661 -39.9521 58.7282 +23.2072 -40.1742 59.0547 +22.583 -40.2866 59.2199 +21.8986 -40.2884 59.2225 +21.0455 -39.9629 58.744 +20.2042 -39.6321 58.2578 +19.5886 -39.7298 58.4014 +18.9714 -39.8244 58.5405 +18.1526 -39.4804 58.0348 +17.6603 -39.8409 58.5647 +17.1115 -40.0901 58.931 +16.4664 -40.1178 58.9717 +15.8434 -40.1971 59.0883 +15.032 -39.7782 58.4725 +14.7134 -40.6772 59.794 +13.6238 -39.4227 57.95 +13.3214 -40.4283 59.4281 +12.5374 -39.9936 58.7892 +11.8834 -39.9427 58.7143 +11.1538 -39.6106 58.2262 +10.6275 -39.9976 58.795 +9.95088 -39.8255 58.542 +9.39789 -40.1516 59.0214 +8.68928 -39.8054 58.5125 +8.13931 -40.1818 59.0659 +7.45288 -39.8846 58.629 +6.89131 -40.2556 59.1744 +6.12705 -39.3914 57.904 +5.64121 -40.3172 59.2648 +4.95969 -39.8944 58.6434 +4.38329 -40.3103 59.2546 +3.76296 -40.3864 59.3666 +3.09261 -39.8414 58.5654 +2.47786 -39.9112 58.6681 +1.85856 -39.9219 58.6838 +1.22516 -39.4796 58.0336 +0.619584 -39.9341 58.7017 +4.35348e-15 -39.9918 58.7866 +-0.620457 -39.9903 58.7844 +-1.23912 -39.9295 58.695 +-1.88212 -40.428 59.4277 +-2.47786 -39.9112 58.6681 +-3.13623 -40.4033 59.3915 +-3.72109 -39.9371 58.7061 +-4.38329 -40.3103 59.2546 +-5.01549 -40.3433 59.3033 +-5.59413 -39.9807 58.7702 +-6.25778 -40.2319 59.1395 +-6.92965 -40.4796 59.5035 +-7.55741 -40.444 59.4513 +-8.18459 -40.4054 59.3945 +-8.75022 -40.0845 58.9228 +-9.37178 -40.04 58.8574 +-10.0205 -40.1039 58.9514 +-10.6275 -39.9976 58.795 +-11.232 -39.8883 58.6345 +-11.999 -40.331 59.2852 +-12.4506 -39.7166 58.382 +-13.2667 -40.2624 59.1843 +-13.8718 -40.1405 59.0051 +-14.4143 -39.8504 58.5787 +-15.032 -39.7782 58.4725 +-15.6919 -39.8127 58.5232 +-16.4664 -40.1178 58.9717 +-17.0882 -40.0354 58.8507 +-17.6119 -39.7317 58.4042 +-18.5532 -40.3517 59.3155 +-19.0491 -39.9874 58.7801 +-19.8024 -40.1634 59.0388 +-20.5625 -40.335 59.291 +-21.3296 -40.5022 59.5368 +-21.7817 -40.0732 58.9062 +-22.7033 -40.5012 59.5354 +-23.3308 -40.3883 59.3693 +-24.2421 -40.7522 59.9044 +-24.8734 -40.6317 59.7272 +-25.5696 -40.6141 59.7013 +-26.1645 -40.4342 59.4369 +-27.1761 -40.8838 60.0978 +-27.8094 -40.7488 59.8993 +-28.7703 -41.0818 60.3888 +-29.4441 -40.9912 60.2556 +-30.2703 -41.1049 60.4228 +-30.7505 -40.7476 59.8976 +-31.7006 -41.0078 60.2801 +-32.3762 -40.902 60.1245 +-33.3828 -41.2022 60.5658 +-34.0208 -41.0368 60.3226 +-35.0436 -41.3251 60.7465 +-35.6396 -41.101 60.4171 +-36.7667 -41.4782 60.9715 +-37.3634 -41.246 60.6302 +-38.0481 -41.111 60.4317 +-38.8722 -41.1213 60.4469 +-39.6042 -41.0278 60.3094 +-40.2392 -40.8318 60.0214 +-41.4621 -41.2202 60.5923 +-41.95 -40.869 60.076 +-43.0393 -41.0978 60.4123 +-43.6752 -40.8849 60.0994 +-44.9349 -41.2445 60.628 +-45.2021 -40.6885 59.8106 +-46.5301 -41.0817 60.3887 +-47.1657 -40.8518 60.0507 +-48.0737 -40.8533 60.0529 +-49.0412 -40.8955 60.115 +-50.3535 -41.2095 60.5765 +-50.9909 -40.9608 60.2109 +-51.9729 -40.9836 60.2445 +-53.077 -41.091 60.4024 +-54.2478 -41.2359 60.6153 +-55.0661 -41.1028 60.4196 +-56.3713 -41.3218 60.7416 +-57.195 -41.1765 60.528 +-58.7654 -41.5545 61.0836 +-59.0932 -41.0459 60.336 +-60.9999 -41.6223 61.1834 +-61.9647 -41.5368 61.0576 +-63.1913 -41.616 61.174 +-63.6377 -41.1769 60.5285 +-64.9368 -41.2842 60.6864 +-66.1101 -41.2983 60.707 +-67.9644 -41.7187 61.325 +-68.1998 -41.1367 60.4695 +-70.6252 -41.8612 61.5344 +-71.2719 -41.5129 61.0225 +-73.0347 -41.8034 61.4495 +-74.0341 -41.6422 61.2125 +-76.1751 -42.1051 61.893 +-76.6097 -41.6124 61.1687 +-78.2679 -41.7768 61.4105 +-80.0101 -41.9665 61.6892 +-81.248 -41.8761 61.5564 +-82.7863 -41.9274 61.6317 +-84.7818 -42.1903 62.0183 +-86.3388 -42.2154 62.0552 +-88.5873 -42.5571 62.5574 +-90.1634 -42.5545 62.5536 +-94.061 -43.613 64.1095 +-95.5112 -43.5036 63.9488 +-97.5912 -43.6634 64.1837 +-98.1073 -43.1135 63.3753 +-99.9625 -43.1439 63.42 +-100.468 -42.5839 62.5968 +-102.331 -42.591 62.6072 +-104.282 -42.6161 62.6441 +-107.138 -42.9845 63.1857 +-108.538 -42.7473 62.8371 +-111.669 -43.1687 63.4564 +-113.744 -43.1537 63.4344 +-115.91 -43.1525 63.4326 +-118.672 -43.3478 63.7197 +-122.882 -44.033 64.7269 +-125.85 -44.2329 65.0208 +-130.369 -44.936 66.0543 +-131.318 -44.3813 65.2389 +-133.811 -44.3345 65.1702 +-135.013 -43.8448 64.4503 +-137.951 -43.9005 64.5322 +-137.84 -42.9763 63.1737 +-138.941 -42.4323 62.374 +-140.654 -42.0656 61.8349 +-139.704 -40.9061 60.1305 +-139.353 -39.9379 58.7073 +-139.341 -39.0767 57.4414 +-140.302 -38.4899 56.5787 +-140.984 -37.824 55.5999 +-140.296 -36.7977 54.0914 +-140.68 -36.061 53.0085 +-139.133 -34.843 51.2179 +-139.21 -34.0466 50.0472 +-140.009 -33.4279 49.1378 +-148.745 -34.6551 50.9418 +-161.701 -36.7472 54.017 +-216.508 -47.9704 70.5148 +-226.393 -48.8813 71.8537 +-233.231 -49.0486 72.0996 +-237.084 -48.5368 71.3473 +-244.144 -48.6292 71.4832 +-10.4953 -2.03267 2.98795 +-13.8455 -2.60574 3.83035 +-267.818 -48.946 71.9488 +-14.0196 -2.48634 3.65484 +-16.7353 -2.87789 4.2304 +-15.2452 -2.54004 3.73377 +-16.1492 -2.60465 3.82874 +-15.3217 -2.39 3.51321 +-16.5173 -2.4894 3.65933 +-15.8776 -2.30964 3.3951 +-16.495 -2.31327 3.40042 +-15.2662 -2.06151 3.03035 +-16.6617 -2.16364 3.18048 +-16.1089 -2.00873 2.95277 +-15.3569 -1.83603 2.6989 +-15.1888 -1.73815 2.55503 +-14.0373 -1.53475 2.25602 +-15.3388 -1.59904 2.35053 +-3226.53 -320.004 470.395 +-3231.37 -304.155 447.096 +-3235.96 -288.282 423.764 +-3240.31 -272.388 400.4 +-3244.42 -256.473 377.006 +-3248.27 -240.538 353.582 +-3251.88 -224.585 330.132 +-12.7177 -0.815024 1.19806 +-14.3211 -0.84664 1.24453 +-12.9402 -0.700836 1.0302 +-13.9467 -0.686318 1.00886 +-13.3587 -0.591356 0.869273 +-14.3649 -0.564999 0.830528 +-14.1735 -0.487602 0.716757 +-13.881 -0.409182 0.601484 +-13.7869 -0.33858 0.4977 +-13.9915 -0.27482 0.403976 +-14.1951 -0.209079 0.307338 +-13.398 -0.131541 0.193361 +-14.1995 -0.0697 0.102457 +59.2 0 0 +69.0974 -0.334661 0.501613 +59.5909 -0.577278 0.865265 +52.1821 -0.75836 1.13668 +43.5734 -0.844483 1.26577 +42.0599 -1.01917 1.52761 +40.5444 -1.17926 1.76756 +38.528 -1.30782 1.96025 +26.1362 -1.01431 1.52032 +27.4152 -1.19746 1.79484 +30.882 -1.49949 2.24754 +37.5264 -2.00539 3.00582 +39.2836 -2.29148 3.43463 +42.5249 -2.68898 4.03043 +43.7713 -2.98276 4.47077 +51.456 -3.75967 5.63526 +68.9227 -5.37588 8.05774 +94.451 -7.83412 11.7423 +95.4107 -8.38678 12.5707 +95.2752 -8.84853 13.2628 +95.3294 -9.32888 13.9828 +94.9824 -9.77004 14.644 +95.0215 -10.2508 15.3647 +94.6607 -10.6885 16.0207 +95.6628 -11.285 16.9148 +95.3841 -11.7359 17.5906 +95.3908 -12.2224 18.3197 +95.0005 -12.658 18.9727 +95.7682 -13.2519 19.8628 +95.2657 -13.6735 20.4948 +95.3369 -14.1774 21.2501 +95.6885 -14.7276 22.0748 +95.7417 -15.2364 22.8374 +95.2108 -15.6522 23.4606 +96.013 -16.2912 24.4184 +95.5624 -16.7222 25.0644 +95.4861 -17.2187 25.8086 +95.7807 -17.7862 26.6592 +95.5919 -18.2674 27.3805 +96.0552 -18.8779 28.2955 +95.7547 -19.3424 28.9918 +96.1026 -19.9415 29.8897 +95.8787 -20.4261 30.616 +96.4843 -21.093 31.6157 +96.2417 -21.5803 32.3461 +95.8063 -22.0244 33.0117 +96.4689 -22.726 34.0634 +96.1079 -23.1924 34.7624 +96.0136 -23.7247 35.5602 +96.1829 -24.3269 36.4629 +95.3436 -24.6745 36.9839 +95.674 -25.3265 37.9611 +95.9912 -25.9835 38.9459 +96.116 -26.596 39.8639 +95.9614 -27.1361 40.6735 +95.9746 -27.7279 41.5606 +95.6232 -28.2178 42.2948 +95.7911 -28.8652 43.2651 +96.1207 -29.5702 44.3219 +95.9132 -30.1166 45.1408 +94.7432 -30.3579 45.5026 +93.6591 -30.6184 45.8931 +93.4312 -31.1567 46.6998 +93.2788 -31.7239 47.55 +93.7093 -32.498 48.7103 +93.7008 -33.1295 49.6569 +93.9311 -33.8541 50.743 +93.9789 -34.5222 51.7443 +94.0958 -35.2243 52.7967 +93.4559 -35.6473 53.4306 +93.5472 -36.3532 54.4886 +93.6233 -37.0627 55.5521 +94.2505 -38.004 56.9631 +93.3278 -38.327 57.4471 +93.9994 -39.3119 58.9234 +93.6157 -39.867 59.7555 +91.4092 -39.6355 59.4085 +90.7043 -40.0422 60.018 +89.1386 -40.0608 60.046 +87.8109 -40.1733 60.2146 +86.7162 -40.383 60.5289 +84.5571 -40.0806 60.0756 +83.2445 -40.1609 60.1959 +81.9358 -40.2315 60.3018 +80.2596 -40.1069 60.1151 +79.626 -40.4941 60.6954 +77.9623 -40.3483 60.4769 +76.8897 -40.4951 60.697 +74.8833 -40.1335 60.1548 +74.0354 -40.3779 60.5213 +72.4784 -40.2248 60.2917 +71.5628 -40.416 60.5783 +70.0216 -40.242 60.3176 +68.9043 -40.2978 60.4012 +67.3814 -40.1023 60.1081 +66.5456 -40.3043 60.411 +65.441 -40.3364 60.4591 +64.6055 -40.5271 60.7449 +63.5721 -40.5872 60.8349 +62.9315 -40.8935 61.294 +61.3862 -40.6015 60.8563 +60.491 -40.726 61.0429 +59.5337 -40.8017 61.1565 +58.1429 -40.5673 60.8051 +56.9487 -40.4537 60.6349 +56.0061 -40.5079 60.716 +54.5846 -40.2013 60.2566 +54.4263 -40.8211 61.1855 +52.6656 -40.23 60.2996 +51.7406 -40.2577 60.341 +50.8189 -40.2794 60.3736 +49.7305 -40.1581 60.1918 +49.0412 -40.3514 60.4815 +48.4601 -40.6337 60.9046 +47.0568 -40.2152 60.2773 +46.0466 -40.1139 60.1255 +45.0961 -40.053 60.0342 +44.0989 -39.9386 59.8628 +43.4692 -40.1507 60.1806 +42.3795 -39.9293 59.8488 +41.6 -39.9888 59.9381 +40.428 -39.6574 59.4414 +39.9483 -39.9974 59.9509 +39.3179 -40.1893 60.2385 +38.2619 -39.9372 59.8606 +37.771 -40.2687 60.3575 +36.5916 -39.8566 59.7399 +35.9189 -39.9827 59.9288 +35.3327 -40.205 60.2621 +34.6131 -40.2744 60.3661 +33.8095 -40.2393 60.3135 +32.8022 -39.947 59.8753 +32.0102 -39.9015 59.8072 +31.7803 -40.564 60.8002 +30.7505 -40.2055 60.2628 +30.0789 -40.3016 60.4069 +29.1819 -40.0856 60.0831 +28.5138 -40.1738 60.2152 +27.451 -39.6886 59.488 +26.8259 -39.82 59.685 +25.9251 -39.5312 59.2521 +25.5696 -40.0737 60.0653 +24.6781 -39.7763 59.6195 +24.02 -39.8416 59.7175 +23.4235 -40.0093 59.9687 +22.7634 -40.0683 60.0571 +21.8694 -39.6993 59.5041 +21.5 -40.2826 60.3784 +20.6177 -39.9051 59.8125 +19.9894 -40.0034 59.9599 +19.1267 -39.6162 59.3796 +18.7535 -40.2447 60.3215 +17.7329 -39.4724 59.1639 +17.275 -39.9345 59.8566 +16.6689 -40.0707 60.0608 +16.2113 -40.5834 60.8292 +15.136 -39.5203 59.2358 +14.5937 -39.8097 59.6695 +14.0817 -40.2057 60.2632 +13.285 -39.7813 59.6269 +12.659 -39.8441 59.7211 +12.0155 -39.8491 59.7287 +11.4041 -39.9606 59.8958 +10.7753 -40.0144 59.9763 +10.0065 -39.5154 59.2285 +9.51536 -40.1126 60.1236 +8.76241 -39.6063 59.3647 +8.25251 -40.1987 60.2526 +7.52605 -39.7404 59.5656 +6.97757 -40.2172 60.2804 +6.2665 -39.7519 59.5829 +5.70398 -40.2234 60.2896 +5.00851 -39.7512 59.5819 +4.38329 -39.7739 59.616 +3.71585 -39.3503 58.9809 +3.12751 -39.7549 59.5874 +2.50229 -39.7685 59.6078 +1.8795 -39.8346 59.7069 +1.23912 -39.3983 59.0529 +0.626565 -39.8468 59.7251 +4.34123e-15 -39.3488 58.9787 +-0.626565 -39.8468 59.7251 +-1.25134 -39.7867 59.6351 +-1.90306 -40.3339 60.4553 +-2.50578 -39.824 59.691 +-3.17549 -40.3648 60.5016 +-3.76296 -39.8491 59.7286 +-4.38329 -39.7739 59.616 +-5.01549 -39.8066 59.6649 +-5.64121 -39.7808 59.6262 +-6.33622 -40.1942 60.2459 +-6.92965 -39.941 59.8664 +-7.55741 -39.9059 59.8138 +-8.24119 -40.1435 60.1699 +-8.8599 -40.047 60.0252 +-9.58062 -40.3878 60.536 +-10.0622 -39.7353 59.558 +-10.7457 -39.9046 59.8118 +-11.3728 -39.851 59.7314 +-11.9329 -39.5754 59.3184 +-12.6242 -39.7348 59.5572 +-13.2485 -39.6721 59.4633 +-13.9672 -39.8788 59.7732 +-14.514 -39.5921 59.3435 +-15.2191 -39.7375 59.5613 +-15.9516 -39.9332 59.8546 +-16.5114 -39.6922 59.4934 +-17.2049 -39.7726 59.614 +-17.9264 -39.9031 59.8096 +-18.7034 -40.1372 60.1604 +-19.1785 -39.7234 59.5403 +-20.0696 -40.1638 60.2003 +-20.535 -39.745 59.5726 +-21.2159 -39.7505 59.5808 +-22.0741 -40.0708 60.0609 +-22.9739 -40.4388 60.6124 +-23.4853 -40.1148 60.1269 +-24.6228 -40.8416 61.2163 +-24.906 -40.1436 60.1701 +-25.9034 -40.5969 60.8495 +-26.575 -40.5221 60.7373 +-27.5263 -40.8597 61.2433 +-28.1677 -40.7248 61.0412 +-28.7703 -40.5352 60.757 +-29.4441 -40.4458 60.623 +-30.4233 -40.7631 61.0986 +-31.0631 -40.6142 60.8754 +-32.1392 -41.0221 61.4867 +-32.7423 -40.8142 61.1751 +-33.3828 -40.654 60.9351 +-34.0208 -40.4908 60.6905 +-35.0436 -40.7753 61.1169 +-36.0341 -41.0031 61.4584 +-36.7667 -40.9264 61.3433 +-37.1364 -40.45 60.6293 +-38.3251 -40.8594 61.2429 +-39.2948 -41.0152 61.4765 +-40.0336 -40.9209 61.3352 +-40.821 -40.8711 61.2605 +-41.3143 -40.5269 60.7445 +-42.4 -40.7579 61.0908 +-43.496 -40.9813 61.4257 +-43.9327 -40.5788 60.8224 +-45.2484 -40.9797 61.4232 +-45.679 -40.5707 60.8102 +-46.7988 -40.7692 61.1077 +-47.4381 -40.541 60.7657 +-49.0672 -41.1427 61.6676 +-49.7122 -40.9035 61.309 +-50.6934 -40.9356 61.3572 +-51.794 -41.0522 61.532 +-52.9601 -41.2065 61.7632 +-53.606 -40.9484 61.3763 +-54.6047 -40.955 61.3862 +-55.7281 -41.0435 61.5188 +-56.9192 -41.1683 61.7059 +-57.749 -41.0223 61.4871 +-59.3256 -41.3926 62.0421 +-59.6596 -40.888 61.2858 +-61.4452 -41.3683 62.0057 +-61.8362 -40.8991 61.3025 +-63.581 -41.3155 61.9265 +-64.2938 -41.0479 61.5254 +-65.6656 -41.1922 61.7417 +-66.5116 -40.9963 61.4481 +-68.3697 -41.4092 62.067 +-69.0182 -41.0764 61.5683 +-71.3824 -41.747 62.5734 +-72.0361 -41.3997 62.0528 +-73.8758 -41.7222 62.5362 +-74.6705 -41.4414 62.1152 +-76.1038 -41.506 62.2121 +-77.0413 -41.2901 61.8884 +-79.356 -41.794 62.6438 +-80.5952 -41.7109 62.5192 +-81.9115 -41.6565 62.4376 +-83.9011 -41.9266 62.8425 +-85.2312 -41.8497 62.7272 +-87.2444 -42.0906 63.0884 +-89.3477 -42.3513 63.4791 +-91.0827 -42.4164 63.5767 +-94.8327 -43.3858 65.0296 +-96.2107 -43.2392 64.8099 +-98.2956 -43.3934 65.0411 +-99.3682 -43.0866 64.5812 +-101.391 -43.178 64.7182 +-101.107 -42.2845 63.379 +-103.617 -42.5526 63.7807 +-104.525 -42.147 63.1728 +-107.87 -42.7026 64.0057 +-109.521 -42.5606 63.7928 +-112.658 -42.9716 64.4088 +-114.49 -42.8588 64.2398 +-117.161 -43.0378 64.5081 +-120.349 -43.3756 65.0144 +-124.653 -44.0733 66.0602 +-127.377 -44.1738 66.2108 +-130.88 -44.5121 66.7179 +-132.518 -44.191 66.2366 +-135.103 -44.1672 66.2009 +-136.659 -43.7887 65.6335 +-138.3 -43.4258 65.0896 +-137.403 -42.27 63.3572 +-140.083 -42.212 63.2703 +-139.594 -41.1933 61.7434 +-139.704 -40.3618 60.4972 +-138.997 -39.3058 58.9142 +-139.341 -38.5568 57.7916 +-140.212 -37.9535 56.8873 +-140.713 -37.2491 55.8315 +-140.387 -36.3316 54.4564 +-140.498 -35.5352 53.2627 +-139.955 -34.5826 51.8348 +-139.301 -33.6157 50.3856 +-140.653 -33.1349 49.665 +-157.337 -36.1692 54.213 +-166.893 -37.4225 56.0915 +-221.625 -48.4509 72.6216 +-227.514 -48.4696 72.6497 +-234.917 -48.7458 73.0637 +-239.622 -48.4035 72.5505 +-245.935 -48.3342 72.4466 +-254.25 -48.5867 72.8252 +-13.9404 -2.58868 3.8801 +-14.2658 -2.57252 3.85587 +-13.4474 -2.35313 3.52703 +-15.3965 -2.61244 3.9157 +-16.0123 -2.63235 3.94555 +-15.9569 -2.5394 3.80623 +-15.3217 -2.3582 3.53464 +-15.3582 -2.2839 3.42328 +-16.2649 -2.3345 3.49911 +-14.6515 -2.02739 3.03879 +-16.6275 -2.21547 3.32071 +-16.0771 -2.05995 3.0876 +-16.6947 -2.05408 3.0788 +-15.9438 -1.88084 2.81913 +-14.3069 -1.61545 2.42135 +-14.5281 -1.56727 2.34914 +-15.7321 -1.61822 2.4255 +-3226.53 -315.747 473.264 +-3231.37 -300.108 449.823 +-3235.96 -284.447 426.348 +-3240.31 -268.764 402.842 +-3244.42 -253.06 379.304 +-3248.27 -237.337 355.738 +-3251.88 -221.597 332.145 +-14.3074 -0.904705 1.35604 +-12.531 -0.730955 1.09561 +-12.3429 -0.6596 0.988654 +-13.1498 -0.638493 0.957019 +-12.9599 -0.566073 0.848469 +-13.3674 -0.518769 0.777568 +-13.9739 -0.474339 0.710972 +-14.1805 -0.412452 0.618212 +-14.5861 -0.353441 0.529762 +-14.2913 -0.276975 0.415149 +-14.1951 -0.206297 0.309212 +-13.8979 -0.134634 0.201799 +-14.1995 -0.0687726 0.103081 +63.7 0 0 +76.6971 -0.366429 0.560112 +66.5899 -0.63633 0.972674 +53.9815 -0.773869 1.18291 +44.7727 -0.855955 1.30839 +43.9581 -1.05071 1.60609 +41.6429 -1.19478 1.82631 +38.2286 -1.28005 1.95665 +27.3333 -1.04638 1.59946 +30.5057 -1.31437 2.00911 +33.4721 -1.6032 2.4506 +41.508 -2.18808 3.34462 +42.2672 -2.43207 3.71759 +43.5184 -2.71448 4.14926 +46.8482 -3.14912 4.81365 +54.232 -3.90875 5.97479 +80.4098 -6.1868 9.45695 +94.5499 -7.73595 11.8249 +95.3119 -8.26442 12.6327 +95.1766 -8.71947 13.3283 +95.1324 -9.18333 14.0373 +94.9824 -9.6375 14.7316 +94.8252 -10.0909 15.4246 +94.8567 -10.5653 16.1498 +95.3694 -11.0978 16.9637 +95.1889 -11.553 17.6596 +95.196 -12.0319 18.3916 +95.0005 -12.4863 19.0861 +95.6712 -13.0589 19.9614 +95.4594 -13.5154 20.6593 +95.0471 -13.9426 21.3122 +95.8812 -14.5571 22.2515 +95.4533 -14.9844 22.9047 +95.1149 -15.4243 23.5771 +94.9611 -15.8942 24.2953 +95.5624 -16.4954 25.2143 +95.2008 -16.9344 25.8854 +95.7807 -17.5449 26.8186 +95.4974 -18.0018 27.517 +95.9609 -18.6035 28.4368 +95.5667 -19.0426 29.1078 +96.1026 -19.671 30.0684 +95.7854 -20.1294 30.7691 +96.4843 -20.8069 31.8048 +96.2417 -21.2876 32.5395 +95.8063 -21.7256 33.2091 +95.5484 -22.2039 33.9401 +96.1079 -22.8778 34.9703 +95.7396 -23.3361 35.6708 +96.2739 -24.0196 36.7156 +95.8874 -24.4786 37.4172 +96.2156 -25.1244 38.4043 +95.7216 -25.559 39.0687 +96.116 -26.2352 40.1023 +95.6941 -26.6934 40.8027 +96.0633 -27.3771 41.8478 +95.6232 -27.835 42.5477 +95.7911 -28.4736 43.5238 +96.0332 -29.1425 44.5463 +96.0002 -29.735 45.4519 +94.8298 -29.9735 45.8165 +94.1761 -30.3698 46.4223 +93.3455 -30.7058 46.9359 +93.2788 -31.2936 47.8344 +93.6245 -32.0282 48.9572 +93.7008 -32.6801 49.9538 +93.8472 -33.3651 51.0008 +93.3118 -33.8121 51.6841 +93.3496 -34.4709 52.6912 +93.4559 -35.1637 53.7501 +93.3833 -35.7972 54.7185 +93.5419 -36.5281 55.8357 +93.1988 -37.0702 56.6643 +93.6493 -37.9374 57.9898 +93.6001 -38.6139 59.024 +93.8537 -39.4262 60.2657 +92.3549 -39.5023 60.382 +91.1739 -39.7035 60.6895 +89.1386 -39.5174 60.405 +88.5825 -39.9766 61.1069 +86.4864 -39.7296 60.7294 +85.9259 -40.1768 61.413 +83.9237 -39.9394 61.05 +82.9094 -40.1574 61.3832 +81.523 -40.1856 61.4264 +80.2895 -40.2777 61.5672 +78.9862 -40.3237 61.6375 +78.3404 -40.6995 62.212 +76.25 -40.3116 61.6191 +75.8898 -40.8278 62.4081 +74.0341 -40.5308 61.954 +73.3852 -40.8829 62.4923 +70.2994 -39.8536 60.919 +69.455 -40.0688 61.2479 +68.5408 -40.2389 61.5079 +67.4915 -40.3227 61.636 +66.1101 -40.1961 61.4424 +65.4669 -40.5104 61.9228 +64.6874 -40.739 62.2723 +63.3212 -40.5885 62.0423 +61.9647 -40.4282 61.7972 +61.8904 -41.1029 62.8285 +59.6596 -40.3333 61.6522 +59.4501 -40.9167 62.544 +57.749 -40.4658 61.8547 +57.1018 -40.7401 62.274 +55.367 -40.2244 61.4858 +54.7237 -40.4874 61.8877 +53.5472 -40.3486 61.6756 +52.902 -40.6029 62.0643 +51.3924 -40.1814 61.4201 +50.4668 -40.1998 61.4482 +49.6004 -40.2579 61.5369 +48.5705 -40.1738 61.4083 +47.4381 -39.991 61.129 +46.6376 -40.0776 61.2614 +45.2021 -39.6025 60.5351 +44.7259 -39.957 61.077 +43.9327 -40.0284 61.1861 +43.1408 -40.0952 61.2883 +41.75 -39.5886 60.5139 +41.1174 -39.7866 60.8165 +40.0453 -39.5506 60.4557 +39.6042 -39.9328 61.04 +38.6845 -39.8305 60.8836 +37.5863 -39.5282 60.4215 +36.9548 -39.7062 60.6936 +36.3205 -39.8813 60.9612 +35.6396 -40.0041 61.1489 +35.0006 -40.1728 61.4068 +33.8095 -39.6934 60.6741 +33.1755 -39.8535 60.9187 +32.7016 -40.2105 61.4645 +31.7404 -39.9636 61.087 +31.0631 -40.0633 61.2394 +30.4233 -40.2101 61.4639 +29.1444 -39.491 60.3647 +28.807 -40.0363 61.1981 +27.881 -39.7635 60.7812 +27.2461 -39.8952 60.9825 +26.6092 -40.0238 61.1791 +25.9368 -40.0978 61.2922 +24.9711 -39.7026 60.6881 +24.3055 -39.7684 60.7888 +23.6707 -39.883 60.9639 +23.0341 -39.9946 61.1345 +22.3664 -40.0508 61.2203 +21.7556 -40.2086 61.4616 +20.8657 -39.8374 60.8941 +20.2299 -39.9355 61.0442 +19.3597 -39.5548 60.4621 +18.7284 -39.6457 60.6011 +17.9022 -39.3087 60.0861 +17.4851 -39.8719 60.9468 +16.8038 -39.8472 60.9091 +16.1464 -39.8725 60.9478 +15.4063 -39.6804 60.6541 +14.7732 -39.7525 60.7643 +14.2153 -40.0365 61.1985 +13.449 -39.7261 60.724 +12.7979 -39.7349 60.7375 +12.164 -39.7945 60.8286 +11.5449 -39.9052 60.9978 +10.9083 -39.9588 61.0798 +10.1457 -39.5215 60.4113 +9.61978 -40.0027 61.1468 +8.88428 -39.6124 60.5503 +8.34308 -40.0885 61.278 +7.60967 -39.6368 60.5876 +7.07342 -40.2166 61.4738 +6.34494 -39.7035 60.6895 +5.71182 -39.7323 60.7335 +5.0713 -39.7035 60.6894 +4.43823 -39.7262 60.7242 +3.80482 -39.7459 60.7543 +3.19294 -40.036 61.1977 +2.53719 -39.7762 60.8006 +1.90306 -39.7868 60.8168 +1.25483 -39.3564 60.159 +0.635292 -39.8536 60.919 +4.46369e-15 -39.9099 61.005 +-0.635292 -39.8536 60.919 +-1.26879 -39.7943 60.8283 +-1.90306 -39.7868 60.8168 +-2.53719 -39.7762 60.8006 +-3.2322 -40.5283 61.9502 +-3.81006 -39.8005 60.8378 +-4.49317 -40.218 61.4759 +-5.0713 -39.7035 60.6894 +-5.71182 -39.7323 60.7335 +-6.3798 -39.9217 61.023 +-7.03508 -39.9987 61.1406 +-7.48424 -38.9835 59.5889 +-8.30912 -39.9253 61.0286 +-8.81115 -39.2864 60.0519 +-9.61978 -40.0027 61.1468 +-10.2431 -39.901 60.9914 +-10.8788 -39.8506 60.9143 +-11.3102 -39.0941 59.758 +-12.23 -40.0105 61.1588 +-12.5548 -38.9801 59.5837 +-13.4125 -39.6184 60.5595 +-13.8909 -39.1229 59.802 +-14.7732 -39.7525 60.7643 +-15.3231 -39.4662 60.3267 +-15.9516 -39.3915 60.2125 +-16.5789 -39.3138 60.0938 +-17.3683 -39.6057 60.54 +-17.999 -39.5212 60.4108 +-18.9287 -40.0698 61.2493 +-19.4373 -39.7134 60.7046 +-20.2032 -39.8828 60.9636 +-20.9484 -39.9953 61.1355 +-21.5852 -39.8936 60.9801 +-22.3372 -39.9984 61.1403 +-23.004 -39.9424 61.0546 +-23.7634 -40.0392 61.2027 +-24.6228 -40.2876 61.5823 +-25.2641 -40.1684 61.4001 +-26.2038 -40.5107 61.9233 +-26.7118 -40.1782 61.415 +-27.8415 -40.7669 62.315 +-28.1319 -40.1213 61.3281 +-28.9902 -40.2909 61.5874 +-29.7812 -40.354 61.6837 +-30.6147 -40.4631 61.8505 +-31.4148 -40.5168 61.9327 +-32.4183 -40.817 62.3916 +-33.0677 -40.6606 62.1525 +-33.7146 -40.5011 61.9087 +-34.3589 -40.3385 61.6601 +-35.0436 -40.2222 61.4823 +-36.2971 -40.7421 62.2771 +-37.1237 -40.7631 62.3092 +-37.999 -40.8281 62.4085 +-38.7407 -40.7422 62.2771 +-39.2009 -40.3622 61.6963 +-40.0336 -40.3658 61.7019 +-40.821 -40.3167 61.6268 +-42.3484 -40.9778 62.6373 +-42.65 -40.442 61.8184 +-43.7498 -40.6612 62.1535 +-44.3963 -40.4507 61.8316 +-45.5096 -40.6572 62.1473 +-45.997 -40.2989 61.5996 +-47.2824 -40.6317 62.1083 +-48.4184 -40.8175 62.3923 +-49.5639 -40.9955 62.6643 +-49.88 -40.4849 61.8838 +-51.3164 -40.8766 62.4827 +-51.794 -40.4954 61.8999 +-53.3085 -40.9149 62.5412 +-53.9587 -40.6587 62.1496 +-55.3185 -40.9275 62.5604 +-55.9688 -40.6616 62.154 +-57.1627 -40.7836 62.3405 +-58.1184 -40.7246 62.2504 +-59.5747 -41.0024 62.675 +-60.226 -40.7163 62.2376 +-61.7632 -41.0184 62.6993 +-62.6718 -40.8895 62.5023 +-63.9706 -41.0048 62.6787 +-64.6218 -40.6976 62.2091 +-66.4608 -41.1254 62.863 +-67.1138 -40.8063 62.3752 +-68.9778 -41.2107 62.9933 +-70.4504 -41.36 63.2216 +-71.7265 -41.3793 63.251 +-72.3834 -41.035 62.7248 +-74.016 -41.2343 63.0295 +-75.3069 -41.2276 63.0192 +-76.9597 -41.4034 63.288 +-78.6958 -41.6046 63.5955 +-80.2264 -41.6793 63.7096 +-81.2534 -41.4811 63.4067 +-83.5335 -41.9051 64.0547 +-84.5699 -41.6876 63.7223 +-85.9052 -41.6084 63.6013 +-87.9991 -41.8789 64.0147 +-90.2602 -42.2035 64.5109 +-92.9978 -42.7208 65.3016 +-96.4531 -43.5285 66.5363 +-97.8427 -43.3761 66.3033 +-99.7825 -43.4523 66.4198 +-100.55 -43.0077 65.7401 +-101.391 -42.5923 65.1052 +-102.465 -42.2711 64.6142 +-105.064 -42.5614 65.058 +-106.224 -42.251 64.5835 +-109.336 -42.6956 65.2631 +-110.995 -42.5485 65.0382 +-113.812 -42.8228 65.4575 +-114.988 -42.4611 64.9047 +-119.246 -43.2095 66.0486 +-122.614 -43.5922 66.6337 +-125.412 -43.7402 66.8599 +-128.14 -43.8356 67.0057 +-131.648 -44.1658 67.5104 +-133.89 -44.0426 67.3221 +-136.137 -43.9015 67.1064 +-137.611 -43.4958 66.4862 +-139.083 -43.0793 65.8497 +-139.065 -42.2009 64.5069 +-140.523 -41.77 63.8483 +-140.035 -40.763 62.3089 +-138.551 -39.4857 60.3565 +-139.175 -38.8223 59.3425 +-139.878 -38.1803 58.3612 +-140.482 -37.5106 57.3375 +-140.352 -36.6495 56.0212 +-140.025 -35.7462 54.6405 +-139.588 -34.8261 53.2341 +-139.59 -34.0244 52.0086 +-139.943 -33.3125 50.9204 +-142.586 -33.1347 50.6486 +-162.326 -36.8099 56.2664 +-178.297 -39.4373 60.2826 +-224.975 -48.516 74.16 +-229.848 -48.3026 73.8338 +-236.603 -48.4297 74.0281 +-241.689 -48.1588 73.614 +-248.292 -48.1353 73.5781 +-256.708 -48.3911 73.969 +-266.289 -48.7783 74.5609 +-12.6491 -2.25003 3.43932 +-15.1641 -2.61753 4.00107 +-14.4402 -2.41694 3.69445 +-15.2452 -2.47225 3.779 +-15.5724 -2.44459 3.73673 +-15.6108 -2.3701 3.62286 +-15.7446 -2.3096 3.53038 +-15.7808 -2.23429 3.41527 +-16.2039 -2.2118 3.38088 +-16.9192 -2.22376 3.39917 +-16.6617 -2.1059 3.21901 +-15.5231 -1.88403 2.87986 +-15.6504 -1.82118 2.78379 +-15.3848 -1.7136 2.61935 +-15.0189 -1.59825 2.44303 +-14.6505 -1.48653 2.27226 +-3226.53 -311.464 476.093 +-3231.37 -296.037 452.512 +-3235.96 -280.588 428.898 +-3240.31 -265.118 405.251 +-3244.42 -249.627 381.572 +-3248.27 -234.118 357.865 +-3251.88 -218.591 334.131 +-13.6119 -0.849046 1.29782 +-13.2271 -0.761097 1.16339 +-12.3429 -0.650652 0.994566 +-14.6441 -0.701402 1.07214 +-14.0565 -0.60564 0.925761 +-13.3674 -0.511732 0.782217 +-13.9739 -0.467904 0.715223 +-13.2818 -0.38107 0.582491 +-14.8858 -0.355811 0.543881 +-15.1907 -0.290413 0.443916 +-14.595 -0.20923 0.319823 +-13.298 -0.127075 0.194243 +-14.5994 -0.0697504 0.106618 +69.6 0 0 +86.5967 -0.408003 0.636116 +70.8892 -0.668046 1.04155 +54.4813 -0.770225 1.20086 +46.9714 -0.885567 1.38068 +44.3577 -1.0456 1.63019 +44.2393 -1.25172 1.95155 +39.9254 -1.31837 2.05547 +29.2286 -1.10346 1.72039 +30.9044 -1.31313 2.0473 +32.4759 -1.53397 2.39161 +42.2048 -2.19403 3.4207 +44.8529 -2.54516 3.96814 +45.903 -2.82361 4.40228 +49.131 -3.25689 5.0778 +56.6115 -4.02381 6.27351 +81.301 -6.16881 9.61777 +94.6488 -7.63693 11.9067 +95.5095 -8.16699 12.7331 +95.3738 -8.61666 13.4342 +95.2309 -9.06569 14.1343 +95.0807 -9.51401 14.8333 +95.1197 -9.9822 15.5632 +95.6407 -10.5053 16.3788 +94.7825 -10.8769 16.9581 +95.2865 -11.4049 17.7813 +95.2934 -11.8776 18.5184 +95.195 -12.3388 19.2373 +94.8949 -12.7737 19.9155 +95.5562 -13.342 20.8014 +95.3369 -13.7916 21.5025 +95.7849 -14.3413 22.3595 +95.5494 -14.7921 23.0622 +95.3067 -15.2416 23.7632 +95.9174 -15.8322 24.6839 +95.6578 -16.2834 25.3875 +96.1518 -16.867 26.2972 +95.8755 -17.3193 27.0025 +95.5919 -17.7704 27.7057 +96.0552 -18.3642 28.6316 +95.7547 -18.8161 29.3361 +96.1962 -19.4178 30.2742 +95.8787 -19.8702 30.9796 +96.5773 -20.5388 32.022 +96.2417 -20.9931 32.7303 +95.8987 -21.4457 33.4359 +96.4689 -22.1076 34.468 +96.1996 -22.5829 35.2088 +95.9223 -23.0571 35.9483 +95.7279 -23.553 36.7214 +96.1593 -24.2085 37.7433 +96.2156 -24.7768 38.6294 +95.8114 -25.2292 39.3347 +96.2054 -25.8964 40.375 +95.7832 -26.3487 41.0801 +95.265 -26.774 41.7433 +95.7115 -27.4753 42.8366 +95.8789 -28.1055 43.8191 +95.8583 -28.687 44.7258 +95.478 -29.1641 45.4697 +96.0422 -29.9368 46.6743 +95.1239 -30.2511 47.1644 +94.2884 -30.5869 47.6879 +93.6199 -30.9735 48.2907 +93.5397 -31.5565 49.1996 +93.7008 -32.2281 50.2466 +93.0924 -32.6389 50.8871 +93.4786 -33.404 52.08 +93.4325 -34.0243 53.0471 +93.6207 -34.7384 54.1605 +93.5472 -35.3639 55.1358 +93.6233 -36.0541 56.2119 +93.7651 -36.7795 57.3427 +94.1316 -37.6052 58.6301 +93.9994 -38.2422 59.6233 +93.5364 -38.7494 60.414 +94.0885 -39.6871 61.8761 +92.6608 -39.7928 62.0408 +90.5375 -39.5823 61.7126 +89.8943 -40.0074 62.3753 +88.2483 -39.9782 62.3299 +86.9144 -40.0769 62.4837 +85.5086 -40.1307 62.5676 +84.5571 -40.3889 62.9702 +82.2661 -39.991 62.3498 +81.8378 -40.4865 63.1223 +79.8638 -40.2077 62.6877 +79.4285 -40.6939 63.4458 +77.329 -40.3166 62.8574 +77.1737 -40.9442 63.836 +75.024 -40.5045 63.1505 +74.2964 -40.8179 63.6391 +72.175 -40.3509 62.9109 +71.107 -40.4544 63.0724 +68.95 -39.9192 62.238 +68.0319 -40.0833 62.4938 +67.1807 -40.2819 62.8034 +67.2559 -41.0417 63.988 +65.2123 -40.5014 63.1455 +64.5551 -40.8071 63.6222 +62.7361 -40.3652 62.9332 +62.3357 -40.8259 63.6515 +61.107 -40.7404 63.5182 +60.6329 -41.1535 64.1622 +58.8572 -40.6718 63.4112 +58.015 -40.8191 63.6409 +56.3299 -40.3579 62.9218 +55.8539 -40.7519 63.5362 +54.135 -40.2273 62.7182 +53.715 -40.6566 63.3876 +52.6543 -40.5986 63.2971 +51.8828 -40.7561 63.5427 +50.2155 -40.1933 62.6653 +49.5639 -40.4284 63.0317 +47.4925 -39.4831 61.558 +47.1749 -39.9786 62.3305 +45.5731 -39.3751 61.3896 +44.7781 -39.4503 61.5068 +43.8297 -39.3821 61.4004 +43.3438 -39.7266 61.9376 +42.55 -39.7891 62.035 +41.7575 -39.8471 62.1254 +40.5301 -39.4756 61.5463 +40.0813 -39.8548 62.1375 +39.2009 -39.8038 62.058 +38.3713 -39.7955 62.0449 +37.4996 -39.7342 61.9494 +36.6775 -39.7161 61.9212 +35.8149 -39.6448 61.81 +35.3019 -39.9582 62.2986 +34.3589 -39.7804 62.0215 +34.0048 -40.2847 62.8077 +32.5796 -39.5063 61.5941 +32.2987 -40.1039 62.5258 +31.1803 -39.6582 61.8309 +30.806 -40.1527 62.6019 +29.8187 -39.8458 62.1234 +29.2101 -40.035 62.4184 +28.2394 -39.7174 61.9233 +27.8765 -40.2535 62.7592 +26.6434 -39.5209 61.6169 +26.304 -40.1029 62.5243 +25.3943 -39.8169 62.0784 +24.718 -39.8839 62.1828 +24.1342 -40.1015 62.5221 +23.425 -40.1107 62.5365 +22.4249 -39.6 61.7402 +21.7556 -39.6524 61.8219 +21.0863 -39.7015 61.8984 +20.4705 -39.8513 62.1321 +19.8514 -39.9984 62.3613 +19.2041 -40.0904 62.5048 +18.1199 -39.2364 61.1733 +17.4851 -39.3203 61.3041 +17.2088 -40.2429 62.7425 +16.3195 -39.7426 61.9625 +15.4894 -39.3427 61.3391 +14.9925 -39.7845 62.0279 +14.2344 -39.5357 61.6399 +13.7952 -40.1851 62.6525 +12.8847 -39.4511 61.508 +12.4776 -40.2558 62.7626 +11.6857 -39.8331 62.1036 +11.0414 -39.8866 62.1871 +10.271 -39.456 61.5157 +9.68504 -39.717 61.9226 +9.09145 -39.9754 62.3255 +8.44496 -40.0168 62.39 +7.79782 -40.055 62.4496 +7.083 -39.714 61.918 +6.42338 -39.6383 61.7999 +5.78244 -39.6671 61.8448 +5.11315 -39.4773 61.549 +4.49928 -39.7155 61.9203 +3.85716 -39.7352 61.951 +3.22347 -39.8598 62.1452 +2.51625 -38.9022 60.6523 +1.91877 -39.5602 61.6782 +1.27228 -39.3518 61.3533 +0.639655 -39.5723 61.697 +4.45757e-15 -39.3038 61.2785 +-0.643146 -39.7882 62.0337 +-1.27926 -39.5677 61.6899 +-1.93448 -39.884 62.1831 +-2.55813 -39.5496 61.6617 +-3.25401 -40.2373 62.7338 +-3.85716 -39.7352 61.951 +-4.5298 -39.985 62.3404 +-5.14105 -39.6928 61.8849 +-5.82166 -39.9362 62.2644 +-6.44081 -39.7459 61.9677 +-7.00632 -39.2841 61.2477 +-7.75601 -39.8402 62.1147 +-8.36572 -39.6413 61.8045 +-8.9574 -39.3859 61.4065 +-9.75031 -39.9846 62.3398 +-10.3266 -39.6698 61.8491 +-10.9675 -39.6197 61.7709 +-11.5605 -39.4065 61.4386 +-12.2465 -39.5103 61.6003 +-12.8847 -39.4511 61.508 +-13.7041 -39.9197 62.2387 +-14.158 -39.3236 61.3093 +-14.8529 -39.4142 61.4505 +-15.4894 -39.3427 61.3391 +-16.1248 -39.2683 61.223 +-16.7589 -39.1908 61.1022 +-17.5084 -39.3728 61.3859 +-18.1199 -39.2364 61.1733 +-18.8787 -39.4109 61.4454 +-19.515 -39.3205 61.3044 +-20.5239 -39.9554 62.2943 +-21.1689 -39.8572 62.1412 +-22.1532 -40.3771 62.9517 +-22.7465 -40.1679 62.6257 +-23.5453 -40.3167 62.8576 +-24.1033 -40.0502 62.4421 +-24.845 -40.0887 62.5021 +-25.492 -39.9701 62.3172 +-26.4375 -40.3065 62.8417 +-27.2248 -40.3833 62.9615 +-28.0516 -40.5064 63.1533 +-28.7053 -40.3727 62.9449 +-29.5033 -40.4368 63.0449 +-30.1558 -40.2963 62.8258 +-30.8826 -40.2525 62.7575 +-31.8055 -40.4533 63.0706 +-32.8569 -40.7971 63.6065 +-33.5151 -40.6406 63.3627 +-34.0048 -40.2847 62.8077 +-34.9083 -40.4165 63.0133 +-36.0768 -40.8353 63.6661 +-36.5602 -40.4697 63.0961 +-37.6591 -40.7791 63.5785 +-38.0444 -40.3114 62.8494 +-39.0178 -40.4659 63.0902 +-39.6703 -40.2805 62.8012 +-40.9402 -40.7089 63.4691 +-41.5967 -40.5145 63.166 +-42.4962 -40.5519 63.2243 +-43.15 -40.3501 62.9097 +-44.2573 -40.564 63.2432 +-44.9113 -40.3539 62.9156 +-46.3456 -40.8313 63.6599 +-47.0038 -40.6114 63.3171 +-47.6585 -40.3884 62.9693 +-48.7997 -40.5698 63.2522 +-49.6191 -40.4734 63.1019 +-50.551 -40.4619 63.084 +-51.7129 -40.6226 63.3346 +-52.7117 -40.6428 63.366 +-53.8312 -40.7445 63.5246 +-54.4877 -40.4894 63.1268 +-56.3892 -41.1425 64.1451 +-56.8715 -40.7459 63.5268 +-58.4411 -41.1189 64.1083 +-59.1035 -40.842 63.6766 +-60.1349 -40.8155 63.6352 +-61.3587 -40.9082 63.7798 +-62.7809 -41.1175 64.1061 +-63.3146 -40.7374 63.5136 +-64.75 -40.9302 63.8142 +-65.6715 -40.7866 63.5902 +-67.1897 -41.0013 63.925 +-68.1844 -40.8838 63.7418 +-69.856 -41.1581 64.1694 +-70.5186 -40.8274 63.6538 +-72.9656 -41.5118 64.7209 +-73.4254 -41.0499 64.0008 +-75.0674 -41.2415 64.2995 +-76.3675 -41.2299 64.2814 +-78.1009 -41.4362 64.603 +-79.9906 -41.7042 65.0208 +-81.0969 -41.5487 64.7784 +-81.7653 -41.165 64.1803 +-84.6394 -41.8725 65.2833 +-85.7589 -41.6889 64.997 +-87.6278 -41.8556 65.2569 +-88.6784 -41.6183 64.8869 +-92.4654 -42.6365 66.4744 +-94.6831 -42.8933 66.8747 +-97.2247 -43.2698 67.4618 +-99.397 -43.4556 67.7515 +-100.8 -43.2881 67.4904 +-101.181 -42.6786 66.5401 +-102.977 -42.6604 66.5117 +-103.982 -42.3036 65.9554 +-106.591 -42.5828 66.3907 +-107.276 -42.079 65.6052 +-110.394 -42.5125 66.2812 +-112.551 -42.5482 66.3368 +-114.966 -42.6585 66.5088 +-116.065 -42.2662 65.8971 +-121.247 -43.3269 67.5507 +-124.459 -43.6361 68.0329 +-127.183 -43.7443 68.2016 +-129.243 -43.6012 67.9784 +-132.5 -43.8369 68.3459 +-135.004 -43.7949 68.2804 +-136.913 -43.5408 67.8842 +-138.131 -43.056 67.1285 +-138.3 -42.2441 65.8626 +-139.327 -41.6956 65.0075 +-139.644 -40.9346 63.8209 +-139.859 -40.1484 62.5952 +-138.817 -39.0143 60.827 +-139.443 -38.3588 59.805 +-140.505 -37.8208 58.9663 +-140.841 -37.0864 57.8213 +-140.442 -36.1657 56.3859 +-140.206 -35.2973 55.0319 +-140.498 -34.5683 53.8952 +-139.498 -33.5317 52.2792 +-140.86 -33.067 51.5546 +-148.477 -34.0264 53.0504 +-175.26 -39.1932 61.1059 +-210.1 -45.8289 71.4516 +-227.394 -48.3593 75.3968 +-231.621 -48.002 74.8398 +-238.664 -48.1757 75.1106 +-242.911 -47.7327 74.4198 +-251.78 -48.1363 75.0491 +-260.396 -48.4071 75.4714 +-268.376 -48.4804 75.5856 +-12.0784 -2.1188 3.30341 +-14.3058 -2.43521 3.79673 +-14.9184 -2.46243 3.83916 +-15.6288 -2.49938 3.89678 +-16.5337 -2.55959 3.99064 +-16.189 -2.42388 3.77906 +-16.0344 -2.31957 3.61644 +-15.4904 -2.16283 3.37207 +-15.7188 -2.11589 3.29888 +-15.8496 -2.05436 3.20294 +-16.272 -2.02819 3.16214 +-15.9136 -1.90471 2.96962 +-16.5307 -1.89701 2.95762 +-16.0708 -1.76523 2.75217 +-16.295 -1.71006 2.66614 +-13.9622 -1.39709 2.1782 +-14.0828 -1.34063 2.09018 +-3231.37 -291.942 455.165 +-3235.96 -276.707 431.412 +-3240.31 -261.45 407.626 +-3244.42 -246.174 383.809 +-3248.27 -230.879 359.963 +-3251.88 -215.567 336.09 +-14.1087 -0.867864 1.35308 +-13.3266 -0.75621 1.179 +-13.7365 -0.714093 1.11334 +-14.6441 -0.691699 1.07843 +-13.4584 -0.571849 0.891568 +-15.0632 -0.568675 0.886618 +-14.5728 -0.481207 0.750248 +-14.2804 -0.404054 0.629959 +-13.1874 -0.310854 0.484652 +-15.1907 -0.286395 0.446518 +-13.8952 -0.196444 0.306274 +-13.9979 -0.131913 0.205665 +-14.7994 -0.0697281 0.108713 +75.8 0 0 +89.2966 -0.414788 0.659718 +75.4885 -0.701352 1.1155 +57.8802 -0.806736 1.28311 +48.1706 -0.895364 1.42407 +45.9562 -1.068 1.69864 +48.0341 -1.33992 2.13113 +42.9198 -1.39726 2.22233 +30.1264 -1.12131 1.78344 +33.4964 -1.40319 2.23176 +30.2843 -1.41027 2.24302 +43.0011 -2.20389 3.50527 +48.3338 -2.70398 4.30066 +47.294 -2.86812 4.56174 +52.7042 -3.44446 5.4784 +58.3961 -4.09209 6.50845 +90.5105 -6.7707 10.7688 +95.5389 -7.59997 12.0877 +94.6205 -7.97682 12.6871 +95.3738 -8.49509 13.5114 +95.2309 -8.93778 14.2155 +95.0807 -9.37978 14.9185 +94.9233 -9.82103 15.6203 +95.6407 -10.3571 16.4729 +95.4672 -10.8009 17.1789 +95.2865 -11.244 17.8835 +95.0985 -11.6861 18.5867 +95.0978 -12.1523 19.3281 +95.7682 -12.7094 20.2142 +95.5562 -13.1537 20.921 +95.3369 -13.5971 21.6261 +95.7849 -14.139 22.488 +95.4533 -14.5687 23.1714 +95.2108 -15.0115 23.8757 +95.0567 -15.4687 24.6029 +95.5624 -16.0377 25.5079 +95.2959 -16.481 26.2129 +95.8755 -17.075 27.1577 +96.3483 -17.6583 28.0854 +95.3011 -17.963 28.5701 +95.7547 -18.5506 29.5047 +96.1962 -19.1438 30.4481 +95.8787 -19.5899 31.1577 +96.5773 -20.2491 32.2061 +96.2417 -20.6969 32.9184 +95.8987 -21.1431 33.628 +95.6405 -21.6086 34.3684 +96.0162 -22.2218 35.3436 +95.9223 -22.7318 36.1549 +96.3649 -23.3752 37.1782 +95.978 -23.8219 37.8887 +96.2156 -24.4272 38.8514 +95.8114 -24.8732 39.5608 +96.2054 -25.5311 40.607 +95.7832 -25.9769 41.3162 +95.9746 -26.5929 42.2959 +95.6232 -27.0627 43.0431 +95.8789 -27.7089 44.071 +95.3335 -28.1274 44.7365 +95.478 -28.7527 45.731 +95.6958 -29.408 46.7732 +95.8132 -30.0404 47.7792 +93.9455 -30.0457 47.7876 +94.0462 -30.6756 48.7894 +93.6245 -31.1395 49.5272 +93.7851 -31.8019 50.5809 +93.0924 -32.1784 51.1796 +93.3118 -32.8739 52.2859 +94.1787 -33.8121 53.778 +93.6207 -34.2483 54.4717 +93.711 -34.9261 55.5497 +93.6233 -35.5455 56.5349 +93.7651 -36.2606 57.6723 +93.0062 -36.6314 58.2621 +93.6799 -37.5745 59.7621 +93.0603 -38.0082 60.4519 +93.8521 -39.0289 62.0753 +93.913 -39.7616 63.2406 +92.2472 -39.7608 63.2394 +90.9745 -39.9169 63.4877 +88.9378 -39.7221 63.1778 +88.2831 -40.1337 63.8325 +85.886 -39.7391 63.2048 +85.2312 -40.1365 63.8369 +83.5295 -40.0322 63.6711 +82.2802 -40.131 63.8282 +80.9609 -40.1849 63.914 +79.4285 -40.1198 63.8104 +77.9764 -40.0805 63.7479 +77.5303 -40.5531 64.4995 +75.9433 -40.4224 64.2916 +74.9272 -40.5838 64.5483 +73.3559 -40.4325 64.3077 +72.1396 -40.4628 64.3559 +69.8366 -39.8621 63.4005 +68.9102 -40.028 63.6643 +67.7829 -40.0697 63.7306 +67.5872 -40.662 64.6728 +65.7371 -40.2513 64.0196 +65.5293 -40.8385 64.9534 +64.343 -40.815 64.9162 +63.099 -40.7428 64.8012 +61.2958 -40.2897 64.0806 +61.1932 -40.9478 65.1273 +59.4113 -40.4755 64.376 +58.989 -40.9188 65.0812 +57.7742 -40.8087 64.906 +56.6271 -40.7332 64.786 +55.4281 -40.6071 64.5854 +54.2957 -40.5163 64.4411 +53.572 -40.7234 64.7704 +52.9023 -40.9707 65.1637 +51.5017 -40.6412 64.6397 +49.9503 -40.1687 63.8882 +48.7997 -39.9974 63.6157 +47.6585 -39.8185 63.3312 +46.5269 -39.6321 63.0347 +45.7186 -39.7106 63.1595 +44.6023 -39.5108 62.8418 +43.6483 -39.4413 62.7312 +43 -39.6426 63.0513 +42.053 -39.5628 62.9245 +40.9664 -39.3377 62.5664 +40.1768 -39.3861 62.6434 +39.2478 -39.2892 62.4894 +38.8792 -39.7533 63.2275 +37.7266 -39.4107 62.6826 +37.2575 -39.775 63.262 +36.0341 -39.3246 62.5457 +35.6894 -39.8268 63.3443 +34.2321 -39.0745 62.1478 +33.9219 -39.6195 63.0146 +33.0677 -39.5324 62.8761 +32.5778 -39.8797 63.4286 +31.8446 -39.9315 63.5109 +30.9974 -39.832 63.3527 +30.1933 -39.7771 63.2653 +29.5033 -39.8663 63.4072 +28.5619 -39.6043 62.9905 +27.9115 -39.7355 63.1991 +27.2248 -39.8136 63.3233 +26.571 -39.9386 63.5221 +25.9152 -40.0604 63.716 +25.2575 -40.1793 63.905 +24.3505 -39.8901 63.4451 +23.6956 -40.0017 63.6225 +22.805 -39.703 63.1475 +22.1532 -39.8074 63.3135 +21.4722 -39.8576 63.3934 +20.8179 -39.9559 63.5496 +19.8773 -39.4855 62.8015 +19.1791 -39.4732 62.782 +18.5796 -39.6641 63.0856 +17.9286 -39.7489 63.2205 +17.2537 -39.7788 63.2681 +16.536 -39.7015 63.1451 +15.8013 -39.5686 62.9337 +15.1719 -39.6926 63.131 +14.4252 -39.5003 62.8251 +13.941 -40.0369 63.6785 +13.1278 -39.6283 63.0287 +12.6592 -40.2653 64.0417 +11.8421 -39.7968 63.2967 +11.204 -39.9029 63.4655 +10.3823 -39.321 62.5398 +9.86778 -39.8954 63.4535 +9.10364 -39.4642 62.7677 +8.45628 -39.505 62.8326 +7.80828 -39.5428 62.8927 +7.24594 -40.0544 63.7064 +6.50182 -39.5563 62.9141 +5.82166 -39.3727 62.6222 +5.17593 -39.3983 62.6628 +4.5298 -39.4208 62.6986 +3.83623 -38.9619 61.9688 +3.23656 -39.4569 62.756 +2.57907 -39.3108 62.5237 +1.93448 -39.3213 62.5404 +1.27926 -39.0095 62.0444 +0.647509 -39.493 62.8134 +4.54329e-15 -39.4945 62.8158 +-0.644891 -39.3333 62.5595 +-1.30195 -39.7013 63.1448 +-1.94233 -39.481 62.7943 +-2.58954 -39.4704 62.7775 +-3.28018 -39.9886 63.6018 +-3.90426 -39.653 63.0679 +-4.59085 -39.9521 63.5436 +-5.20383 -39.6107 63.0006 +-5.90012 -39.9034 63.4661 +-6.45824 -39.2912 62.4924 +-7.22677 -39.9485 63.5379 +-7.74556 -39.2252 62.3875 +-8.47892 -39.6108 63.0008 +-9.1402 -39.6228 63.0198 +-9.84167 -39.7898 63.2856 +-10.4658 -39.6372 63.0429 +-11.0709 -39.4292 62.7119 +-11.7639 -39.534 62.8786 +-12.3621 -39.3203 62.5388 +-13.0062 -39.2614 62.4451 +-13.7041 -39.3565 62.5964 +-14.2916 -39.1346 62.2434 +-15.1121 -39.5362 62.8821 +-15.7597 -39.4645 62.7681 +-16.233 -38.974 61.988 +-16.9613 -39.1046 62.1957 +-17.7418 -39.3349 62.5619 +-18.2409 -38.9411 61.9356 +-19.129 -39.3702 62.6181 +-19.7738 -39.2798 62.4744 +-20.6843 -39.6994 63.1417 +-21.4997 -39.9088 63.4748 +-22.0396 -39.6033 62.9889 +-22.805 -39.703 63.1475 +-23.7257 -40.0525 63.7033 +-24.2578 -39.7382 63.2035 +-25.1305 -39.9774 63.5838 +-25.9152 -40.0604 63.716 +-26.6378 -40.0389 63.6817 +-27.3958 -40.0637 63.7211 +-28.0516 -39.9349 63.5163 +-28.8486 -40.0018 63.6228 +-29.6866 -40.1139 63.8011 +-30.2308 -39.8265 63.3438 +-31.2652 -40.1763 63.9003 +-31.8055 -39.8826 63.433 +-33.0563 -40.4655 64.3602 +-33.5964 -40.1646 63.8816 +-34.5439 -40.346 64.1702 +-34.9083 -39.8463 63.3754 +-36.1629 -40.3553 64.1849 +-36.9109 -40.2814 64.0675 +-37.8822 -40.4419 64.3226 +-38.7254 -40.4541 64.3421 +-39.2025 -40.0838 63.7531 +-40.0929 -40.1352 63.8348 +-41.1788 -40.3684 64.2058 +-42.033 -40.3618 64.1953 +-42.9393 -40.3967 64.2508 +-43.6 -40.1957 63.9311 +-45.0187 -40.6796 64.7007 +-45.2203 -40.0583 63.7126 +-46.8159 -40.6637 64.6754 +-47.6397 -40.58 64.5424 +-48.7331 -40.7164 64.7592 +-49.3988 -40.4884 64.3967 +-50.723 -40.7901 64.8765 +-51.2221 -40.4205 64.2887 +-52.5059 -40.6636 64.6753 +-53.1705 -40.4182 64.285 +-54.528 -40.6896 64.7167 +-55.3694 -40.564 64.5169 +-56.5676 -40.6904 64.7179 +-57.4132 -40.5536 64.5003 +-58.989 -40.9188 65.0812 +-59.6576 -40.6432 64.6429 +-61.0687 -40.8645 64.9948 +-61.7363 -40.5792 64.5411 +-63.2262 -40.8249 64.9318 +-63.7645 -40.4481 64.3325 +-65.5293 -40.8385 64.9534 +-66.1964 -40.5325 64.4668 +-68.0511 -40.9411 65.1166 +-69.1212 -40.8608 64.9889 +-70.4641 -40.9305 65.0999 +-71.678 -40.9131 65.0722 +-73.3786 -41.1578 65.4613 +-74.6063 -41.1217 65.4039 +-76.329 -41.3431 65.756 +-77.4282 -41.2128 65.5487 +-79.3134 -41.4858 65.9829 +-79.9906 -41.1158 65.3945 +-81.9673 -41.4022 65.85 +-83.0818 -41.2377 65.5883 +-85.0818 -41.4975 66.0016 +-86.4277 -41.4212 65.8803 +-88.4517 -41.6531 66.249 +-89.9614 -41.6247 66.204 +-92.8456 -42.2078 67.1313 +-95.6023 -42.6987 67.9121 +-98.9223 -43.4041 69.0341 +-100.563 -43.345 68.94 +-101.974 -43.1744 68.6688 +-102.599 -42.6663 67.8606 +-104.405 -42.6418 67.8216 +-104.701 -41.995 66.7929 +-107.315 -42.267 67.2254 +-108.732 -42.0485 66.8779 +-111.859 -42.4691 67.547 +-113.698 -42.3753 67.3978 +-115.707 -42.328 67.3225 +-117.806 -42.2949 67.2699 +-123.415 -43.4794 69.1539 +-126.052 -43.5712 69.2999 +-129.039 -43.7563 69.5942 +-130.939 -43.5501 69.2663 +-134.035 -43.719 69.5349 +-135.861 -43.4511 69.1088 +-137.947 -43.2507 68.79 +-138.391 -42.5284 67.6413 +-139.605 -42.0412 66.8664 +-140.027 -41.3138 65.7094 +-139.117 -40.2046 63.9453 +-138.976 -39.332 62.5574 +-139.083 -38.5376 61.2938 +-139.977 -37.9626 60.3793 +-141.579 -37.5722 59.7584 +-140.751 -36.5398 58.1164 +-140.171 -35.5868 56.6006 +-139.753 -34.6869 55.1693 +-139.77 -33.904 53.9242 +-140.229 -33.2318 52.8551 +-143.978 -33.3221 52.9986 +-157.682 -35.626 56.6631 +-187.917 -41.4308 65.8955 +-221.968 -47.7345 75.9215 +-229.441 -48.1062 76.5127 +-234.235 -47.8588 76.1193 +-241.006 -47.9621 76.2835 +-244.602 -47.3869 75.3686 +-257.058 -48.4521 77.0629 +-262.381 -48.0881 76.4839 +-271.41 -48.3369 76.8796 +-277.994 -48.0777 76.4674 +-292.124 -49.0254 77.9747 +-13.7708 -2.24094 3.5642 +-15.7246 -2.47924 3.94322 +-15.9569 -2.43545 3.87357 +-16.189 -2.38968 3.80078 +-15.648 -2.23174 3.54958 +-16.8458 -2.3189 3.68819 +-15.5247 -2.06029 3.27688 +-16.3358 -2.0875 3.32016 +-16.4669 -2.02352 3.2184 +-16.2065 -1.9124 3.04166 +-16.8241 -1.90344 3.02742 +-15.9728 -1.72972 2.75111 +-14.7244 -1.52343 2.42301 +-14.2572 -1.40648 2.237 +-13.4919 -1.26626 2.01398 +-15.1888 -1.35289 2.15176 +-3235.96 -272.803 433.891 +-3240.31 -257.762 409.969 +-3244.42 -242.701 386.015 +-3248.27 -227.622 362.032 +-3251.88 -212.526 338.021 +-13.0158 -0.789336 1.25544 +-12.0337 -0.673211 1.07074 +-14.0351 -0.719326 1.14409 +-13.7475 -0.640188 1.01822 +-14.2559 -0.597192 0.949831 +-14.8637 -0.553226 0.879904 +-14.473 -0.471168 0.749391 +-14.1805 -0.395568 0.629149 +-14.5861 -0.338973 0.539135 +-13.6917 -0.254491 0.404767 +-14.8949 -0.207605 0.330195 +-14.2978 -0.132838 0.211279 +-13.8995 -0.0645639 0.102689 +83.4 0 0 +91.2965 -0.417974 0.678293 +78.2881 -0.71689 1.16338 +56.9805 -0.782766 1.27028 +50.2694 -0.920922 1.49448 +51.451 -1.17848 1.91246 +50.9301 -1.40025 2.27234 +49.8069 -1.59813 2.59346 +35.613 -1.30644 2.12011 +37.2847 -1.5394 2.49815 +31.2805 -1.4357 2.32986 +46.9827 -2.37329 3.85141 +51.4168 -2.83506 4.60076 +50.076 -2.99313 4.85728 +55.3841 -3.56751 5.78939 +64.5431 -4.45775 7.23408 +94.6696 -6.97989 11.327 +95.6378 -7.49836 12.1684 +94.8181 -7.87844 12.7852 +95.5711 -8.39014 13.6156 +95.2309 -8.80915 14.2956 +95.0807 -9.24478 15.0025 +94.9233 -9.67969 15.7083 +94.6607 -10.1034 16.3959 +95.4672 -10.6455 17.2756 +95.1889 -11.0708 17.9658 +95.0985 -11.5179 18.6914 +94.9033 -11.9529 19.3972 +95.7682 -12.5265 20.3281 +95.5562 -12.9644 21.0388 +95.1437 -13.3743 21.7039 +95.7849 -13.9355 22.6146 +95.5494 -14.3735 23.3254 +95.3067 -14.8103 24.0343 +95.8217 -15.3688 24.9406 +95.5624 -15.8069 25.6515 +96.1518 -16.3897 26.5973 +95.8755 -16.8292 27.3106 +95.5919 -17.2675 28.0219 +96.1494 -17.8621 28.9868 +95.7547 -18.2837 29.6709 +96.1962 -18.8683 30.6196 +95.7854 -19.2892 31.3027 +96.4843 -19.9384 32.3563 +96.2417 -20.399 33.1038 +95.8063 -20.8188 33.7849 +96.4689 -21.482 34.8613 +96.1996 -21.9438 35.6106 +95.8309 -22.3834 36.324 +95.5459 -22.843 37.0698 +95.978 -23.4791 38.1021 +95.5838 -23.9176 38.8136 +95.8114 -24.5152 39.7836 +95.4895 -24.9763 40.5318 +95.6941 -25.5793 41.5103 +96.152 -26.2586 42.6127 +95.7115 -26.6978 43.3254 +95.1759 -27.1099 43.9942 +95.421 -27.748 45.0298 +95.6521 -28.3905 46.0724 +95.7824 -29.0109 47.0792 +95.9855 -29.6614 48.1347 +94.0313 -29.6403 48.1006 +93.8757 -30.1793 48.9753 +93.7941 -30.7469 49.8964 +93.7851 -31.3442 50.8658 +93.9311 -32.001 51.9316 +93.4786 -32.4587 52.6744 +93.4325 -33.0615 53.6525 +93.5383 -33.7257 54.7303 +92.9738 -34.1526 55.4232 +93.7047 -35.0644 56.9028 +93.7651 -35.7387 57.9971 +94.0513 -36.5099 59.2486 +93.6001 -37.0022 60.0475 +93.7744 -37.7486 61.2589 +93.6157 -38.3703 62.2677 +93.4434 -38.9933 63.2788 +92.7135 -39.3866 63.917 +92.0548 -39.8096 64.6034 +90.3166 -39.7574 64.5187 +88.9675 -39.8627 64.6896 +87.2444 -39.7866 64.5662 +85.9052 -39.8717 64.7042 +84.5699 -39.9475 64.8273 +84.1971 -40.4749 65.6831 +81.8385 -40.0359 64.9707 +81.1694 -40.4091 65.5763 +78.9835 -40.0138 64.9349 +78.5289 -40.4842 65.6982 +77.1453 -40.4712 65.6771 +76.8197 -41.0099 66.5513 +74.259 -40.3412 65.466 +74.2046 -41.0221 66.5711 +70.5186 -39.6721 64.3802 +70.0587 -40.1094 65.09 +67.9837 -39.6099 64.2793 +68.5812 -40.6661 65.9934 +67.4429 -40.7014 66.0506 +67.1529 -41.248 66.9377 +65.1144 -40.7099 66.0644 +65.0708 -41.4113 67.2026 +62.7432 -40.6476 65.9633 +62.5627 -41.2617 66.9599 +60.2117 -40.4304 65.6108 +60.2065 -41.1623 66.7986 +58.3761 -40.6403 65.9515 +57.7573 -40.9482 66.4511 +55.9572 -40.4046 65.569 +55.8056 -41.0437 66.6061 +54.1456 -40.5671 65.8326 +53.9219 -41.1592 66.7936 +51.7813 -40.2737 65.3566 +50.9438 -40.378 65.5259 +48.963 -39.5538 64.1883 +48.7331 -40.1304 65.124 +47.0038 -39.4622 64.0396 +46.5024 -39.81 64.6041 +45.0658 -39.3469 63.8525 +45.0187 -40.0941 65.0651 +43.15 -39.2083 63.6276 +42.9393 -39.8153 64.6126 +41.8391 -39.5974 64.2591 +41.0357 -39.6491 64.343 +39.6703 -39.1407 63.5179 +39.2025 -39.5069 64.1122 +38.3622 -39.4979 64.0977 +37.8822 -39.8598 64.6849 +36.6478 -39.4188 63.9692 +36.1629 -39.7745 64.5464 +35.2886 -39.7008 64.4268 +34.461 -39.6699 64.3767 +33.2711 -39.2031 63.6191 +32.7772 -39.5463 64.1762 +32.04 -39.5983 64.2605 +31.38 -39.7435 64.4961 +30.493 -39.5938 64.2532 +30.1997 -40.22 65.2694 +29.0278 -39.671 64.3785 +28.5069 -39.999 64.9107 +27.3958 -39.4871 64.08 +27.0384 -40.0561 65.0034 +26.078 -39.7319 64.4773 +25.4161 -39.8498 64.6686 +24.6287 -39.765 64.5311 +24.2068 -40.2765 65.3611 +23.0389 -39.5329 64.1545 +22.6076 -40.0393 64.9763 +21.7202 -39.7379 64.487 +21.0584 -39.8358 64.6459 +20.1879 -39.5253 64.142 +19.755 -40.0733 65.0313 +18.8457 -39.6532 64.3496 +18.2321 -39.84 64.6527 +17.2762 -39.2574 63.7073 +16.6442 -39.3863 63.9164 +15.926 -39.307 63.7878 +15.5108 -39.9953 64.9047 +14.4633 -39.0348 63.3461 +14.1961 -40.1828 65.2091 +13.3015 -39.5746 64.2221 +12.6426 -39.634 64.3185 +11.9829 -39.6904 64.4099 +11.3222 -39.7437 64.4965 +10.6607 -39.794 64.5782 +9.99831 -39.8414 64.655 +9.323 -39.8335 64.6423 +8.61476 -39.6662 64.3707 +7.9128 -39.4954 64.0936 +7.34178 -40.0001 64.9126 +6.58897 -39.5096 64.1166 +5.97074 -39.7998 64.5874 +5.24569 -39.3546 63.865 +4.64579 -39.8484 64.6664 +3.91996 -39.2395 63.6782 +3.31944 -39.8848 64.7255 +2.57907 -38.7451 62.8759 +1.96065 -39.2798 63.7437 +1.31242 -39.4446 64.0112 +0.656235 -39.4492 64.0185 +4.60452e-15 -39.4507 64.021 +-0.659726 -39.659 64.359 +-1.28973 -38.7628 62.9046 +-1.98421 -39.7518 64.5096 +-2.62444 -39.4267 63.982 +-3.30635 -39.7276 64.4704 +-3.93566 -39.3966 63.9332 +-4.64579 -39.8484 64.6664 +-5.30847 -39.8256 64.6293 +-6.02566 -40.1659 65.1816 +-6.53668 -39.196 63.6077 +-7.22677 -39.3735 63.8957 +-7.92326 -39.5476 64.1783 +-8.53552 -39.3013 63.7786 +-9.15239 -39.1045 63.4592 +-9.91999 -39.5293 64.1485 +-10.5493 -39.3784 63.9037 +-11.2926 -39.64 64.3281 +-11.8577 -39.2759 63.7373 +-12.6096 -39.5305 64.1505 +-13.2146 -39.3163 63.8029 +-13.9957 -39.6154 64.2883 +-14.4633 -39.0348 63.3461 +-15.471 -39.8925 64.738 +-15.8845 -39.2044 63.6213 +-16.7957 -39.7448 64.4982 +-17.1863 -39.053 63.3756 +-17.9519 -39.2278 63.6593 +-18.4828 -38.8897 63.1105 +-19.6548 -39.8702 64.7017 +-19.9032 -38.9679 63.2375 +-20.8713 -39.4819 64.0716 +-21.6375 -39.5866 64.2415 +-22.6644 -40.1399 65.1395 +-22.8342 -39.1818 63.5846 +-24.267 -40.3766 65.5236 +-24.6596 -39.8149 64.6121 +-25.4796 -39.9493 64.8301 +-25.9803 -39.5831 64.2358 +-27.0384 -40.0561 65.0034 +-27.601 -39.7829 64.56 +-28.6119 -40.1464 65.1499 +-29.2787 -40.0138 64.9349 +-30.273 -40.3176 65.4278 +-30.9425 -40.1775 65.2004 +-32.1454 -40.7128 66.0692 +-32.2744 -39.888 64.7307 +-33.4949 -40.4123 65.5815 +-34.0845 -40.1616 65.1746 +-35.2075 -40.5291 65.7711 +-35.669 -40.1287 65.1212 +-36.8517 -40.5321 65.7758 +-37.3931 -40.2203 65.27 +-38.2838 -40.2824 65.3707 +-39.134 -40.2926 65.3872 +-40.126 -40.4376 65.6225 +-40.5154 -39.9745 64.8709 +-42.0377 -40.6173 65.9142 +-42.5663 -40.2857 65.376 +-43.5302 -40.3632 65.5018 +-44.5 -40.435 65.6183 +-45.4754 -40.501 65.7254 +-46.1474 -40.2912 65.385 +-47.3906 -40.5705 65.8382 +-48.2227 -40.4854 65.7002 +-49.7002 -40.9268 66.4164 +-49.8889 -40.3017 65.402 +-51.3301 -40.6842 66.0228 +-51.8372 -40.3172 65.4272 +-53.5254 -40.8566 66.3025 +-54.203 -40.61 65.9023 +-55.5733 -40.8728 66.3289 +-55.8984 -40.3622 65.5002 +-57.9952 -41.1168 66.7248 +-58.3159 -40.5984 65.8835 +-59.8412 -40.9126 66.3933 +-60.027 -40.3063 65.4095 +-61.7535 -40.7279 66.0937 +-62.6174 -40.566 65.8309 +-63.9259 -40.6826 66.0202 +-64.9215 -40.5893 65.8688 +-66.6983 -40.9687 66.4845 +-67.3773 -40.6618 65.9865 +-69.1113 -40.9805 66.5036 +-69.7903 -40.6625 65.9876 +-72.0179 -41.2311 66.9103 +-72.4964 -40.7847 66.1858 +-74.3423 -41.0982 66.6945 +-75.6483 -41.0959 66.6909 +-77.7308 -41.4964 67.3408 +-78.4181 -41.1389 66.7607 +-80.3833 -41.4403 67.2497 +-81.0696 -41.0707 66.6499 +-83.3455 -41.4924 67.3343 +-83.74 -40.9662 66.4803 +-86.8513 -41.7508 67.7537 +-87.914 -41.5272 67.3907 +-89.4253 -41.5055 67.3555 +-91.2444 -41.6108 67.5264 +-94.5185 -42.3499 68.7258 +-97.5175 -42.9272 69.6627 +-100.543 -43.4802 70.5601 +-101.728 -43.2163 70.1319 +-104.635 -43.6634 70.8574 +-104.175 -42.6982 69.2911 +-106.785 -42.9862 69.7584 +-107.257 -42.401 68.8087 +-109.726 -42.5948 69.1233 +-110.916 -42.2759 68.6058 +-113.976 -42.65 69.2128 +-115.746 -42.5178 68.9983 +-119.581 -43.1153 69.968 +-121.288 -42.9183 69.6483 +-126.5 -43.925 71.2819 +-127.813 -43.5442 70.664 +-131.569 -43.9721 71.3584 +-132.55 -43.4516 70.5136 +-136.252 -43.8025 71.0831 +-136.204 -42.9339 69.6735 +-138.895 -42.9211 69.6528 +-137.958 -41.7852 67.8094 +-140.214 -41.617 67.5365 +-139.852 -40.6684 65.997 +-139.117 -39.626 64.3055 +-139.329 -38.8645 63.0697 +-140.414 -38.3463 62.2287 +-140.423 -37.5353 60.9126 +-141.042 -36.891 59.8671 +-141.111 -36.1059 58.5931 +-139.901 -35.0068 56.8094 +-140.206 -34.2985 55.6599 +-140.225 -33.5248 54.4044 +-140.686 -32.8602 53.3259 +-154.525 -35.2481 57.201 +-167.44 -37.2861 60.5083 +-220.345 -47.8812 77.702 +-223.915 -47.4602 77.0188 +-233.535 -48.2598 78.3165 +-237.316 -47.7905 77.5548 +-247.094 -48.4659 78.651 +-249.77 -47.6918 77.3947 +-262.62 -48.788 79.1737 +-266.731 -48.1817 78.1897 +-277.669 -48.7398 79.0955 +-282.654 -48.1801 78.1872 +-296.797 -49.0928 79.6683 +-10.2325 -1.64118 2.66332 +-15.9164 -2.47335 4.01378 +-15.0918 -2.27026 3.68419 +-16.0926 -2.34127 3.79944 +-16.5173 -2.32182 3.76788 +-16.6521 -2.25925 3.66634 +-16.2039 -2.11948 3.43951 +-16.2386 -2.04521 3.31899 +-16.3694 -1.9826 3.21738 +-16.597 -1.93029 3.13249 +-16.2373 -1.8106 2.93826 +-16.0708 -1.71528 2.78358 +-16.5895 -1.69169 2.7453 +-14.4538 -1.40536 2.28063 +-15.363 -1.42112 2.30621 +-15.3861 -1.35073 2.19199 +-3235.96 -268.876 436.335 +-3240.31 -254.052 412.278 +-3244.42 -239.208 388.189 +-3248.27 -224.346 364.071 +-3251.88 -209.467 339.925 +-13.8106 -0.825485 1.3396 +-13.3266 -0.734811 1.19246 +-13.7365 -0.693886 1.12605 +-14.3452 -0.658407 1.06847 +-12.8602 -0.530968 0.861661 +-14.0657 -0.515989 0.837352 +-14.7724 -0.473995 0.769203 +-13.6812 -0.376147 0.610415 +-14.5861 -0.334094 0.542172 +-13.3918 -0.245335 0.398133 +-13.2954 -0.182645 0.296397 +-13.298 -0.121771 0.197611 +-14.7994 -0.067755 0.109953 +89.3 0 0 +91.5965 -0.41319 0.684278 +71.6891 -0.646826 1.0712 +60.1794 -0.814568 1.34899 +54.7666 -0.988579 1.63717 +57.8449 -1.30548 2.16198 +58.5197 -1.5853 2.62539 +53.5998 -1.69458 2.80637 +41.9974 -1.51803 2.51398 +41.073 -1.67091 2.76716 +36.8592 -1.6669 2.76053 +48.3763 -2.4078 3.98753 +47.6376 -2.58811 4.28612 +50.2747 -2.96088 4.90347 +60.1483 -3.8175 6.32211 +90.0232 -6.12628 10.1456 +95.6599 -6.94935 11.5087 +94.7477 -7.31945 12.1216 +94.8181 -7.76275 12.8558 +95.3738 -8.24989 13.6625 +95.2309 -8.6798 14.3745 +95.0807 -9.10904 15.0853 +95.8068 -9.62636 15.9421 +94.7587 -9.9654 16.5035 +94.4891 -10.3817 17.193 +95.2865 -10.9194 18.0835 +95.0985 -11.3488 18.7946 +95.0978 -11.8015 19.5443 +95.7682 -12.3425 20.4403 +95.3625 -12.7482 21.112 +95.3369 -13.2046 21.8679 +94.9176 -13.6065 22.5336 +95.5494 -14.1624 23.4542 +95.3067 -14.5929 24.167 +95.0567 -15.0222 24.878 +95.5624 -15.5748 25.7931 +96.2469 -16.165 26.7706 +95.9704 -16.5985 27.4885 +96.4429 -17.1654 28.4274 +96.1494 -17.5998 29.1468 +95.7547 -18.0152 29.8347 +96.1962 -18.5912 30.7886 +95.8787 -19.0244 31.5061 +95.5539 -19.4562 32.2211 +96.2417 -20.0995 33.2865 +95.9911 -20.5526 34.0369 +96.4689 -21.1666 35.0537 +96.1079 -21.601 35.773 +95.8309 -22.0547 36.5245 +96.2739 -22.679 37.5584 +95.8874 -23.1125 38.2762 +95.5838 -23.5664 39.0279 +95.8114 -24.1553 40.0032 +95.4 -24.5865 40.7174 +95.6941 -25.2037 41.7394 +96.0633 -25.8492 42.8084 +95.6232 -26.2815 43.5244 +95.9668 -26.9338 44.6046 +95.421 -27.3406 45.2784 +95.7391 -27.9991 46.3689 +95.9556 -28.6366 47.4247 +95.2962 -29.0159 48.0528 +95.7456 -29.7376 49.2479 +94.9841 -30.0872 49.827 +94.3029 -30.4598 50.444 +93.6165 -30.8285 51.0546 +93.9311 -31.5311 52.2182 +94.0623 -32.1818 53.2959 +94.0958 -32.8073 54.3316 +93.6207 -33.2597 55.0809 +93.5472 -33.8586 56.0728 +93.7047 -34.5495 57.2169 +93.037 -34.9405 57.8644 +94.0513 -35.9738 59.5756 +93.9994 -36.6144 60.6365 +94.0124 -37.2887 61.7533 +93.4581 -37.7432 62.506 +93.3652 -38.3886 63.5748 +93.8015 -39.2637 65.0241 +93.2894 -39.7511 65.8312 +91.6189 -39.7385 65.8103 +90.6404 -40.0159 66.2698 +88.301 -39.6772 65.7088 +87.9274 -40.211 66.5928 +85.9075 -39.9835 66.2161 +85.5242 -40.5092 67.0867 +83.0818 -40.0474 66.3218 +83.0554 -40.7408 67.4703 +80.4941 -40.1804 66.5421 +80.2407 -40.7593 67.5009 +78.701 -40.6811 67.3713 +78.0112 -41.0346 67.9567 +76.0651 -40.7156 67.4284 +76.2009 -41.5071 68.7392 +73.2466 -40.6017 67.2398 +72.8286 -41.083 68.0369 +69.7903 -40.0655 66.3518 +69.9064 -40.8433 67.64 +68.427 -40.6889 67.3843 +68.3219 -41.3498 68.4788 +66.6571 -41.0625 68.0029 +65.3252 -40.9627 67.8377 +64.0648 -40.8943 67.7244 +63.621 -41.3436 68.4684 +61.3814 -40.6106 67.2547 +61.2414 -41.255 68.3218 +59.4593 -40.7866 67.5461 +58.828 -41.0948 68.0565 +57.603 -40.9823 67.8701 +56.8508 -41.1985 68.2281 +55.6369 -41.0722 68.0191 +54.9414 -41.3216 68.4321 +53.1792 -40.7537 67.4916 +52.5996 -41.0782 68.029 +50.3791 -40.1001 66.4091 +49.8077 -40.413 66.9274 +48.3816 -40.0224 66.2806 +47.5474 -40.107 66.4205 +46.3019 -39.8325 65.966 +45.4754 -39.9062 66.0881 +44.2 -39.5726 65.5356 +43.5302 -39.7705 65.8633 +42.5663 -39.6941 65.7368 +41.8945 -39.8846 66.0523 +40.5154 -39.3875 65.229 +40.2645 -39.9814 66.2125 +38.7708 -39.3325 65.1379 +38.5069 -39.9222 66.1145 +37.4369 -39.6762 65.7072 +36.7656 -39.8436 65.9844 +35.8803 -39.7737 65.8686 +34.6684 -39.3226 65.1215 +34.1659 -39.6663 65.6908 +33.3354 -39.6293 65.6295 +32.1962 -39.2072 64.9304 +31.801 -39.6852 65.7221 +30.9425 -39.5875 65.5603 +30.273 -39.7256 65.7889 +29.7087 -40.0054 66.2523 +28.4719 -39.3632 65.1888 +28.0457 -39.8302 65.9621 +27.1385 -39.6141 65.6043 +26.5012 -39.7838 65.8854 +25.7017 -39.7058 65.7562 +24.9068 -39.6236 65.62 +24.3572 -39.9316 66.1302 +23.6821 -40.04 66.3096 +23.0052 -40.1453 66.484 +21.9407 -39.5519 65.5012 +21.5127 -40.0977 66.4051 +20.3949 -39.3444 65.1576 +19.9302 -39.8352 65.9705 +19.2812 -39.9738 66.1999 +18.5823 -40.0089 66.2581 +17.7036 -39.6379 65.6438 +17.2286 -40.1705 66.5257 +16.3627 -39.7916 65.8983 +15.7501 -40.0159 66.2697 +14.9403 -39.7302 65.7966 +14.3784 -40.101 66.4107 +13.5098 -39.6044 65.5882 +12.9232 -39.9188 66.1088 +12.108 -39.516 65.4419 +11.5735 -40.0292 66.2918 +10.772 -39.6192 65.6128 +10.2724 -40.3325 66.7941 +9.43269 -39.7104 65.7638 +8.86381 -40.2137 66.5972 +8.13231 -39.9951 66.2352 +7.41846 -39.8244 65.9526 +6.74585 -39.8564 66.0055 +6.02566 -39.5761 65.5414 +5.3573 -39.6017 65.5838 +4.73737 -40.0372 66.305 +4.0194 -39.644 65.6539 +3.34997 -39.6607 65.6814 +2.64538 -39.1577 64.8484 +2.0261 -39.9949 66.2349 +1.32289 -39.1756 64.8781 +0.670198 -39.697 65.7415 +4.64126e-15 -39.1815 64.888 +-0.675434 -40.0071 66.2551 +-1.34034 -39.6924 65.734 +-2.01039 -39.6849 65.7215 +-2.68028 -39.6743 65.7039 +-3.34997 -39.6607 65.6814 +-4.07174 -40.1603 66.5088 +-4.68853 -39.6244 65.6214 +-5.3573 -39.6017 65.5838 +-6.08843 -39.9883 66.2241 +-6.62384 -39.1354 64.8116 +-7.43763 -39.9273 66.123 +-8.03824 -39.5324 65.469 +-8.78457 -39.8541 66.0018 +-9.35957 -39.4025 65.2539 +-10.1941 -40.025 66.2848 +-10.6885 -39.3121 65.1042 +-11.47 -39.6714 65.6991 +-12.1393 -39.6181 65.611 +-12.8077 -39.5619 65.5178 +-13.3362 -39.0953 64.7452 +-14.3055 -39.8977 66.074 +-14.6732 -39.0198 64.6201 +-15.5706 -39.56 65.5147 +-16.2379 -39.4882 65.3958 +-17.0987 -39.8677 66.0243 +-17.5012 -39.1846 64.8931 +-18.4422 -39.7073 65.7587 +-19.1118 -39.6227 65.6185 +-19.78 -39.535 65.4732 +-20.5502 -39.6439 65.6537 +-21.3523 -39.7988 65.9102 +-22.0234 -39.7009 65.7481 +-22.6928 -39.6001 65.5811 +-23.4774 -39.694 65.7365 +-24.3271 -39.8823 66.0485 +-24.9377 -39.6728 65.7015 +-25.9555 -40.098 66.4056 +-26.4687 -39.735 65.8045 +-27.6058 -40.2963 66.734 +-28.1141 -39.9273 66.123 +-29.2423 -40.4284 66.9528 +-29.7804 -40.1019 66.4121 +-30.6395 -40.2065 66.5854 +-31.1298 -39.8272 65.9572 +-32.3368 -40.3538 66.8293 +-32.8214 -39.9685 66.1912 +-33.8538 -40.2455 66.65 +-34.3692 -39.9024 66.0818 +-35.788 -40.5925 67.2247 +-36.5565 -40.5232 67.1099 +-37.4975 -40.6367 67.2979 +-37.8314 -40.0943 66.3996 +-39.1762 -40.6161 67.2636 +-39.7696 -40.3457 66.8159 +-41.0956 -40.8067 67.5793 +-41.3604 -40.209 66.5895 +-42.7534 -40.7023 67.4064 +-43.4389 -40.5079 67.0845 +-44.6628 -40.8053 67.577 +-44.95 -40.2441 66.6477 +-46.795 -41.0642 68.0058 +-47.023 -40.4528 66.9933 +-48.7491 -41.1206 68.0992 +-49.2825 -40.7677 67.5147 +-50.2912 -40.8054 67.5771 +-50.9782 -40.577 67.1989 +-52.4892 -40.992 67.8862 +-53.347 -40.8823 67.7045 +-54.375 -40.8957 67.7267 +-54.8913 -40.5218 67.1076 +-56.7927 -41.1564 68.1585 +-56.7801 -40.3968 66.9005 +-58.4711 -40.8455 67.6436 +-59.339 -40.7041 67.4094 +-61.3023 -41.2961 68.3898 +-61.6893 -40.8143 67.5919 +-63.0607 -40.9794 67.8654 +-63.4984 -40.5327 67.1256 +-65.4524 -41.0425 67.9699 +-66.4642 -40.9437 67.8062 +-68.0622 -41.1926 68.2184 +-68.427 -40.6889 67.3843 +-70.6353 -41.2692 68.3453 +-71.5301 -41.0642 68.0058 +-73.5718 -41.5022 68.7312 +-73.8604 -40.9419 67.8033 +-76.545 -41.6945 69.0497 +-77.246 -41.3477 68.4753 +-79.2027 -41.6613 68.9946 +-79.9031 -41.3025 68.4004 +-81.9525 -41.6288 68.9409 +-83.0118 -41.4371 68.6234 +-84.6512 -41.5236 68.7667 +-85.7147 -41.3165 68.4236 +-88.9156 -42.1156 69.747 +-89.4003 -41.6091 68.9083 +-91.5973 -41.8893 69.3722 +-92.5274 -41.5763 68.8538 +-96.4195 -42.5673 70.495 +-99.356 -43.0943 71.3678 +-102.703 -43.7624 72.4742 +-102.972 -43.1023 71.381 +-106.043 -43.6015 72.2077 +-106.697 -43.0897 71.3601 +-108.927 -43.2046 71.5504 +-109.653 -42.7116 70.734 +-112.54 -43.0455 71.287 +-113.02 -42.4451 70.2927 +-115.442 -42.564 70.4896 +-116.893 -42.3085 70.0665 +-123.207 -43.7705 72.4876 +-124.356 -43.3576 71.8038 +-128.585 -43.9933 72.8566 +-129.826 -43.5805 72.173 +-133.172 -43.8542 72.6262 +-134.161 -43.334 71.7647 +-137.19 -43.4564 71.9674 +-137.575 -42.7294 70.7635 +-138.55 -42.1859 69.8634 +-139.17 -41.5335 68.7829 +-139.779 -40.8787 67.6985 +-139.239 -39.8958 66.0707 +-139.293 -39.0935 64.7422 +-139.153 -38.2453 63.3374 +-140.414 -37.7832 62.5722 +-141.225 -37.1953 61.5986 +-140.863 -36.3031 60.1211 +-140.751 -35.4851 58.7663 +-139.81 -34.4706 57.0862 +-139.934 -33.7294 55.8587 +-140.771 -33.1611 54.9176 +-145.254 -33.4289 55.3612 +-167.822 -37.7193 62.4663 +-183.365 -40.2327 66.6288 +-225.149 -48.2067 79.8344 +-229.2 -47.867 79.2718 +-237.256 -48.309 80.0038 +-240.397 -47.7 78.9953 +-251.871 -48.6775 80.6141 +-256.818 -48.3174 80.0177 +-266.862 -48.8481 80.8965 +-270.891 -48.2146 79.8475 +-282.126 -48.795 80.8087 +-287.219 -48.2394 79.8885 +-301.756 -49.1802 81.4466 +-309.173 -48.86 80.9163 +-13.9029 -2.12874 3.52537 +-15.8608 -2.3509 3.89329 +-14.4545 -2.07206 3.43151 +-16.3241 -2.26097 3.74436 +-16.8458 -2.25196 3.72944 +-17.1742 -2.21341 3.66559 +-15.7524 -1.95484 3.23739 +-15.7848 -1.88372 3.1196 +-16.1089 -1.846 3.05714 +-17.0198 -1.86999 3.09687 +-16.7567 -1.76223 2.91841 +-15.2152 -1.52877 2.53178 +-15.8304 -1.5166 2.51162 +-15.9539 -1.45411 2.40813 +-14.4984 -1.25412 2.07693 +-13.6301 -1.1159 1.84802 +-14.6374 -1.13078 1.87266 +-13.6657 -0.992766 1.6441 +-12.5913 -0.856866 1.41904 +-15.583 -0.989024 1.63791 +-14.2081 -0.836774 1.38577 +-14.0228 -0.761843 1.26168 +-14.6323 -0.728286 1.2061 +-14.2456 -0.644237 1.06691 +-13.7575 -0.559676 0.926871 +-13.9659 -0.504807 0.836003 +-14.473 -0.457568 0.757771 +-13.7811 -0.373329 0.618264 +-13.9867 -0.31566 0.52276 +-13.8915 -0.250753 0.415268 +-13.6953 -0.185375 0.306997 +-13.298 -0.119983 0.198702 +-13.8995 -0.0627003 0.103837 +91.3 0 0 +91.1965 -0.405221 0.684974 +70.6892 -0.628249 1.06197 +66.977 -0.892998 1.5095 +59.064 -1.05018 1.77519 +66.7364 -1.48358 2.50781 +66.7085 -1.78005 3.00894 +62.5831 -1.94894 3.29442 +48.7809 -1.7368 2.93583 +46.3567 -1.8576 3.14003 +41.6409 -1.85493 3.13552 +52.8555 -2.59133 4.38031 +49.4277 -2.64513 4.47124 +61.8002 -3.58513 6.06019 +66.2028 -4.13882 6.99613 +94.8813 -6.36014 10.751 +95.7589 -6.8523 11.5829 +95.8356 -7.29257 12.3271 +95.707 -7.71813 13.0465 +95.3738 -8.12627 13.7364 +95.4279 -8.56741 14.4821 +95.0807 -8.97255 15.1669 +94.9233 -9.39464 15.8804 +94.6607 -9.80589 16.5756 +95.4672 -10.332 17.4649 +95.2865 -10.7558 18.1812 +95.0985 -11.1787 18.8962 +95.0978 -11.6247 19.65 +95.7682 -12.1576 20.5508 +95.3625 -12.5571 21.2262 +96.013 -13.099 22.1421 +95.7849 -13.5251 22.8624 +95.5494 -13.9502 23.581 +95.3067 -14.3742 24.2977 +95.9174 -14.9311 25.2391 +95.5624 -15.3414 25.9326 +96.1518 -15.907 26.8887 +95.8755 -16.3336 27.6099 +95.5919 -16.759 28.3289 +95.3011 -17.1831 29.0458 +95.6607 -17.7278 29.9666 +96.1962 -18.3127 30.9551 +95.7854 -18.7212 31.6457 +96.5773 -19.3699 32.7423 +96.2417 -19.7983 33.4665 +95.8987 -20.2252 34.188 +95.5484 -20.6505 34.907 +96.1996 -21.2976 36.0008 +95.8309 -21.7242 36.722 +96.3649 -22.3603 37.7972 +95.978 -22.7877 38.5196 +95.5838 -23.2132 39.2389 +95.8114 -23.7933 40.2195 +95.3105 -24.1954 40.8992 +95.6941 -24.826 41.9651 +96.152 -25.4853 43.0796 +96.4179 -26.1028 44.1234 +95.9668 -26.5302 44.8459 +95.421 -26.9309 45.5232 +95.8262 -27.6046 46.662 +95.2628 -28.0039 47.3369 +96.0717 -28.8137 48.7058 +95.4027 -29.187 49.3368 +95.4957 -29.796 50.3663 +94.727 -30.1383 50.9448 +93.8695 -30.4486 51.4693 +93.344 -30.8645 52.1724 +93.3118 -31.4467 53.1565 +93.4325 -32.0879 54.2403 +93.5383 -32.7325 55.33 +93.6291 -33.3805 56.4254 +93.7047 -34.0318 57.5263 +93.7651 -34.6863 58.6326 +93.8905 -35.3742 59.7954 +93.2806 -35.79 60.4983 +93.7744 -36.637 61.9301 +93.6157 -37.2404 62.95 +93.2869 -37.7817 63.865 +93.7238 -38.6433 65.3215 +93.3666 -39.1879 66.242 +93.0744 -39.7649 67.2173 +92.1612 -40.0777 67.7461 +89.6595 -39.684 67.0805 +88.9759 -40.0808 67.7514 +87.2452 -39.9976 67.6108 +86.5564 -40.3838 68.2635 +84.837 -40.2807 68.0892 +83.7082 -40.4458 68.3683 +81.717 -40.1796 67.9183 +81.2392 -40.6482 68.7105 +79.7616 -40.6115 68.6485 +79.2728 -41.0734 69.4291 +76.9681 -40.5816 68.5979 +76.8892 -41.2545 69.7353 +74.406 -40.6264 68.6735 +73.9771 -41.1056 69.4836 +71.4631 -40.4111 68.3096 +70.4365 -40.5364 68.5215 +69.0174 -40.4251 68.3333 +68.7116 -40.9626 69.2418 +67.8141 -41.1493 69.5574 +67.1063 -41.449 70.0641 +65.5123 -41.1916 69.6291 +64.866 -41.521 70.1858 +63.0437 -41.0854 69.4495 +62.3372 -41.364 69.9204 +60.5426 -40.9074 69.1486 +59.8987 -41.2158 69.6699 +58.661 -41.1097 69.4905 +57.9542 -41.3687 69.9284 +56.1531 -40.8322 69.0215 +55.9609 -41.4578 70.079 +54.1858 -40.9028 69.1409 +53.5931 -41.227 69.6888 +51.4684 -40.3533 68.212 +50.4524 -40.3228 68.1604 +49.2825 -40.1568 67.8798 +48.4356 -40.244 68.0272 +47.332 -40.1085 67.7982 +46.4905 -40.1857 67.9286 +44.95 -39.6411 67.0081 +44.2689 -39.8393 67.3432 +43.1481 -39.6337 66.9957 +42.7534 -40.0924 67.771 +41.0788 -39.3368 66.4936 +40.5415 -39.6533 67.0287 +39.4518 -39.4236 66.6405 +38.6407 -39.4607 66.7031 +37.8314 -39.4936 66.7587 +37.1531 -39.6602 67.0403 +36.0916 -39.4084 66.6148 +35.788 -39.9843 67.5882 +34.5319 -39.4906 66.7536 +34.0532 -39.876 67.4051 +33.0168 -39.604 66.9453 +32.5664 -40.0314 67.6678 +31.3171 -39.4664 66.7128 +30.9694 -40.0304 67.6662 +29.7804 -39.501 66.7713 +29.4174 -40.0611 67.718 +28.4219 -39.7597 67.2085 +27.8729 -40.0764 67.7439 +26.8919 -39.7654 67.2182 +26.2094 -39.8834 67.4176 +25.463 -39.9015 67.4483 +24.8383 -40.1102 67.8011 +23.7991 -39.6348 66.9974 +23.2893 -40.0319 67.6687 +22.4369 -39.8402 67.3447 +21.7532 -39.9384 67.5106 +20.8349 -39.5909 66.9232 +20.2808 -39.9285 67.4938 +19.4747 -39.77 67.226 +18.9091 -40.1026 67.7882 +18.0186 -39.7385 67.1728 +17.3368 -39.8171 67.3056 +16.5498 -39.6436 67.0123 +16.0691 -40.2145 67.9774 +15.1121 -39.5847 66.9128 +14.5971 -40.1009 67.7853 +13.8224 -39.9135 67.4686 +13.0718 -39.7725 67.2303 +12.3896 -39.8291 67.3259 +11.6622 -39.7316 67.1611 +11.0225 -39.9331 67.5017 +10.3377 -39.9806 67.5819 +9.54237 -39.5702 66.8882 +8.96569 -40.0664 67.727 +8.27865 -40.1047 67.7917 +7.56223 -39.9879 67.5943 +6.79815 -39.5635 66.8769 +6.15904 -39.846 67.3544 +5.441 -39.6179 66.9688 +4.81673 -40.0979 67.7802 +3.99847 -38.8466 65.6651 +3.40231 -39.6768 67.0685 +2.7082 -39.4869 66.7474 +2.0418 -39.701 67.1094 +1.35431 -39.5049 66.7779 +0.685033 -39.9677 67.5601 +4.77596e-15 -39.7146 67.1323 +-0.68067 -39.7131 67.1298 +-1.35431 -39.5049 66.7779 +-2.05489 -39.9555 67.5395 +-2.72216 -39.6904 67.0915 +-3.44157 -40.1346 67.8423 +-4.09791 -39.8127 67.2982 +-4.81673 -40.0979 67.7802 +-5.47588 -39.8718 67.3981 +-6.15904 -39.846 67.3544 +-6.80686 -39.6142 66.9626 +-7.57181 -40.0386 67.68 +-8.20548 -39.7502 67.1926 +-8.88645 -39.7123 67.1284 +-9.62768 -39.9239 67.4862 +-10.3638 -40.0816 67.7526 +-10.9251 -39.5802 66.9051 +-11.6769 -39.782 67.2462 +-12.2175 -39.276 66.3909 +-12.9562 -39.421 66.6361 +-13.6314 -39.362 66.5362 +-14.3966 -39.5502 66.8544 +-15.0739 -39.4847 66.7437 +-15.6903 -39.2666 66.375 +-16.2379 -38.8965 65.7495 +-17.2286 -39.5686 66.8855 +-17.7711 -39.1928 66.2503 +-18.8157 -39.9045 67.4534 +-19.3296 -39.4736 66.7249 +-20.2557 -39.8791 67.4104 +-20.9385 -39.7876 67.2558 +-21.8601 -40.1347 67.8424 +-22.2991 -39.5955 66.931 +-23.2325 -39.9343 67.5037 +-23.916 -39.8295 67.3266 +-24.8684 -40.1588 67.8832 +-25.4012 -39.8046 67.2845 +-26.2411 -39.9317 67.4993 +-27.0547 -40.0061 67.6252 +-27.8061 -39.9804 67.5816 +-28.5929 -39.9989 67.6128 +-29.5925 -40.2995 68.1211 +-29.9596 -39.7387 67.173 +-31.1893 -40.3147 68.1466 +-31.6543 -39.8913 67.431 +-32.6812 -40.1725 67.9063 +-33.3684 -40.0258 67.6583 +-34.412 -40.2962 68.1155 +-34.9794 -40.0022 67.6185 +-36.493 -40.7719 68.9196 +-36.9368 -40.3314 68.1749 +-37.928 -40.4874 68.4387 +-38.6205 -40.3173 68.1512 +-39.7116 -40.5543 68.5518 +-40.269 -40.2402 68.0208 +-41.5112 -40.6017 68.6319 +-42.2055 -40.4157 68.3175 +-43.2783 -40.5846 68.603 +-44.1177 -40.5244 68.5011 +-45.4015 -40.8586 69.0661 +-46.1 -40.6553 68.7224 +-47.2011 -40.7999 68.9669 +-47.8985 -40.5886 68.6098 +-49.0626 -40.765 68.9078 +-49.6004 -40.4159 68.3177 +-51.2584 -40.9669 69.2492 +-51.9586 -40.7376 68.8616 +-52.986 -40.7599 68.8993 +-53.6825 -40.5229 68.4987 +-55.3945 -41.0382 69.3696 +-56.0958 -40.7905 68.951 +-57.3735 -40.9542 69.2277 +-57.7793 -40.4918 68.4461 +-59.7797 -41.1339 69.5315 +-60.001 -40.5415 68.5301 +-61.9719 -41.1216 69.5107 +-62.3665 -40.6441 68.7035 +-64.617 -41.3616 69.9163 +-65.0717 -40.9146 69.1608 +-66.8518 -41.2918 69.7984 +-67.2999 -40.8373 69.03 +-69.2312 -41.2723 69.7654 +-70.1327 -41.0784 69.4376 +-71.9605 -41.4135 70.004 +-73.0691 -41.3192 69.8447 +-74.5176 -41.4059 69.9912 +-75.2244 -41.0732 69.4289 +-77.7841 -41.7346 70.5469 +-78.288 -41.2775 69.7742 +-80.2541 -41.5818 70.2886 +-81.2466 -41.3676 69.9266 +-83.0224 -41.5404 70.2185 +-84.3066 -41.4529 70.0707 +-86.3921 -41.7426 70.5604 +-87.6162 -41.6002 70.3197 +-89.8004 -41.8973 70.8219 +-90.5894 -41.5308 70.2023 +-93.3199 -42.0377 71.0591 +-95.2443 -42.1558 71.2589 +-97.408 -42.3593 71.6029 +-99.6624 -42.5795 71.9751 +-103.861 -43.5924 73.6873 +-105.536 -43.5138 73.5544 +-108.156 -43.8039 74.0448 +-108.667 -43.2277 73.0707 +-110.673 -43.2391 73.0901 +-111.809 -42.899 72.5151 +-113.987 -42.9457 72.5941 +-115.366 -42.677 72.1399 +-118.128 -42.902 72.5201 +-121.235 -43.2224 73.0618 +-126.091 -44.124 74.5859 +-126.511 -43.4482 73.4435 +-130.837 -44.0928 74.5332 +-132.426 -43.7871 74.0164 +-135.027 -43.7989 74.0364 +-135.773 -43.1973 73.0194 +-137.872 -43.018 72.7164 +-137.404 -42.0367 71.0575 +-139.756 -41.9156 70.8528 +-139.95 -41.1403 69.5422 +-139.344 -40.1408 67.8527 +-139.152 -39.2733 66.3863 +-139.38 -38.532 65.1333 +-139.859 -37.8634 64.0032 +-141.212 -37.4287 63.2683 +-141.581 -36.7305 62.088 +-140.057 -35.5548 60.1007 +-139.942 -34.7525 58.7446 +-140.081 -34.0198 57.506 +-139.934 -33.224 56.1608 +-144.047 -33.4244 56.4995 +-155.851 -35.3304 59.7214 +-184.329 -40.8086 68.9816 +-221.197 -47.8066 80.8107 +-229.769 -48.4586 81.913 +-233.279 -47.989 81.1191 +-239.21 -47.977 81.0989 +-245.905 -48.0619 81.2423 +-256.274 -48.7862 82.4666 +-261.235 -48.4119 81.834 +-271.669 -48.9829 82.7992 +-276.848 -48.5365 82.0447 +-285.54 -48.6455 82.2288 +-293.972 -48.6337 82.2089 +-307.764 -49.4079 83.5176 +-315.102 -49.0508 82.914 +-15.3411 -2.31376 3.9111 +-14.1305 -2.06306 3.48733 +-16.189 -2.28593 3.86407 +-15.5514 -2.12167 3.58641 +-16.5553 -2.17998 3.68496 +-16.495 -2.09401 3.53966 +-16.6275 -2.03253 3.43573 +-16.3694 -1.92421 3.25263 +-16.4994 -1.86243 3.14819 +-15.2591 -1.65142 2.79152 +-16.4627 -1.70538 2.88271 +-15.9024 -1.57387 2.66043 +-17.6986 -1.67017 2.82321 +-16.0524 -1.44117 2.4361 +-13.9066 -1.18491 2.00293 +-14.2227 -1.14697 1.9388 +-14.4396 -1.09878 1.85735 +-12.9725 -0.928288 1.56915 +-15.1691 -1.01682 1.7188 +-14.1934 -0.887331 1.49992 +-14.3074 -0.83 1.40301 +-13.7244 -0.734461 1.24151 +-14.6323 -0.717373 1.21263 +-14.0463 -0.625709 1.05768 +-13.6578 -0.547293 0.925127 +-15.163 -0.539864 0.912569 +-13.6744 -0.425845 0.719835 +-13.6812 -0.36507 0.617104 +-14.2864 -0.317593 0.53685 +-14.5911 -0.259435 0.43854 +-14.0952 -0.187929 0.317669 +-13.6979 -0.12174 0.205785 +-13.9995 -0.0622048 0.105149 +92.5 0 0 +90.9965 -0.398161 0.687085 +77.2882 -0.67641 1.16724 +75.6741 -0.993549 1.71451 +66.4595 -1.16364 2.00802 +73.6299 -1.61184 2.78147 +72.6004 -1.9077 3.29201 +77.1558 -2.36608 4.08302 +56.8612 -1.99359 3.44022 +53.7338 -2.12035 3.65898 +48.5147 -2.12814 3.67242 +57.733 -2.78725 4.80981 +55.4943 -2.92445 5.04657 +83.46 -4.76775 8.22745 +91.7113 -5.646 9.743 +95.8727 -6.32849 10.9207 +95.7589 -6.74771 11.6442 +95.0444 -7.12199 12.29 +95.8058 -7.60814 13.129 +95.5711 -8.01878 13.8376 +95.2309 -8.41924 14.5286 +95.2774 -8.85384 15.2786 +94.9233 -9.25125 15.9644 +94.9547 -9.68625 16.715 +95.4672 -10.1743 17.5572 +95.4817 -10.6133 18.3148 +95.0985 -11.0081 18.9961 +94.9033 -11.4238 19.7135 +95.7682 -11.972 20.6595 +95.5562 -12.3906 21.3818 +95.1437 -12.7823 22.0577 +95.7849 -13.3187 22.9833 +95.5494 -13.7373 23.7057 +95.3067 -14.1548 24.4262 +95.0567 -14.5712 25.1448 +95.5624 -15.1072 26.0697 +96.1518 -15.6642 27.0309 +95.8755 -16.0843 27.7559 +95.5919 -16.5032 28.4787 +96.0552 -17.0547 29.4304 +95.7547 -17.4744 30.1546 +96.1962 -18.0331 31.1188 +95.8787 -18.4534 31.844 +95.5539 -18.8722 32.5667 +96.2417 -19.4961 33.6434 +95.8987 -19.9165 34.3688 +96.4689 -20.5312 35.4296 +96.1996 -20.9725 36.1912 +95.8309 -21.3927 36.9161 +96.2739 -21.9982 37.9612 +95.978 -22.4399 38.7232 +96.3058 -23.0316 39.7444 +95.9013 -23.4521 40.47 +96.116 -24.0274 41.4628 +95.7832 -24.4698 42.2263 +96.0633 -25.0732 43.2675 +95.5349 -25.469 43.9505 +96.0547 -26.1492 45.1243 +95.421 -26.5199 45.7639 +95.7391 -27.1586 46.8661 +96.0422 -27.8021 47.9765 +95.4685 -28.1958 48.656 +95.4884 -28.7673 49.6423 +95.7515 -29.4199 50.7683 +95.6598 -29.9705 51.7185 +95.0502 -30.361 52.3924 +93.5118 -30.4481 52.5426 +93.3952 -30.9944 53.4853 +93.4325 -31.5981 54.5271 +93.6207 -32.2613 55.6715 +93.711 -32.8998 56.7733 +93.7047 -33.5124 57.8304 +93.037 -33.8916 58.4849 +93.8101 -34.8044 60.06 +93.9994 -35.5153 61.2867 +93.7744 -36.0778 62.2575 +93.7733 -36.7337 63.3893 +93.4434 -37.2674 64.3104 +93.5684 -37.9904 65.558 +93.2122 -38.5259 66.4821 +93.534 -39.3513 67.9064 +94.1383 -40.3126 69.5653 +91.6972 -39.9664 68.9678 +90.6985 -40.2332 69.4282 +88.5829 -39.9911 69.0104 +87.8835 -40.3771 69.6766 +86.1535 -40.2814 69.5114 +85.4491 -40.6568 70.1592 +83.0118 -40.1932 69.3593 +82.3091 -40.5549 69.9834 +80.5395 -40.3817 69.6845 +80.6747 -41.1617 71.0304 +77.9407 -40.4671 69.8319 +78.4036 -41.4249 71.4847 +76.0428 -40.8863 70.5553 +75.9363 -41.5502 71.7009 +73.2698 -40.8003 70.4069 +72.2918 -40.9691 70.6982 +69.8703 -40.3 69.5436 +69.7507 -40.9473 70.6606 +69.0354 -41.251 71.1845 +68.7601 -41.8222 72.1704 +67.1485 -41.576 71.7455 +66.4846 -41.9075 72.3175 +64.2135 -41.209 71.1121 +63.92 -41.7668 72.0748 +61.5055 -40.9237 70.6198 +61.5047 -41.6749 71.9162 +59.6602 -41.1717 71.0478 +58.9414 -41.4312 71.4956 +57.1282 -40.9072 70.5913 +56.6973 -41.3622 71.3764 +54.9687 -40.8605 70.5107 +54.3658 -41.1831 71.0674 +52.2853 -40.3681 69.6611 +51.4196 -40.4685 69.8343 +50.0774 -40.1816 69.3393 +49.3761 -40.3992 69.7148 +47.5895 -39.7112 68.5275 +47.3533 -40.3067 69.5552 +45.95 -39.9045 68.861 +45.6477 -40.4531 69.8078 +44.1177 -39.9058 68.8633 +43.4214 -40.0974 69.1938 +42.0647 -39.666 68.4495 +41.3727 -39.8486 68.7645 +40.269 -39.626 68.3804 +39.7116 -39.9353 68.9142 +38.489 -39.5667 68.2782 +37.928 -39.8694 68.8005 +36.7255 -39.4885 68.1432 +36.5345 -40.1952 69.3627 +34.9794 -39.3916 67.976 +34.7709 -40.0949 69.1897 +33.5247 -39.5994 68.3346 +33.2552 -40.2541 69.4644 +31.9914 -39.7008 68.5095 +31.2992 -39.8393 68.7485 +29.9596 -39.1321 67.5282 +29.9077 -40.1071 69.2106 +28.9007 -39.8124 68.702 +28.2067 -39.9373 68.9177 +27.2175 -39.6326 68.3918 +26.6536 -39.9403 68.9228 +25.6793 -39.6262 68.3809 +25.139 -39.9762 68.9847 +24.1499 -39.6052 68.3445 +23.6017 -39.9497 68.939 +22.6023 -39.5213 68.1998 +22.1541 -40.0535 69.1182 +21.3267 -39.9068 68.865 +20.7565 -40.2413 69.4422 +19.765 -39.7468 68.5889 +19.1892 -40.0755 69.1561 +18.1985 -39.5228 68.2024 +17.7048 -40.0415 69.0974 +16.8201 -39.676 68.4668 +16.388 -40.3869 69.6934 +15.4364 -39.8172 68.7103 +14.8157 -40.0804 69.1646 +14.0134 -39.8475 68.7626 +13.4844 -40.4017 69.7191 +12.4835 -39.5183 68.1946 +11.9282 -40.0177 69.0564 +11.1478 -39.7705 68.6298 +10.5335 -40.116 69.226 +9.72517 -39.7127 68.53 +9.16946 -40.3515 69.6324 +8.29956 -39.5923 68.3222 +7.73475 -40.2759 69.5019 +6.95503 -39.8586 68.7819 +6.22965 -39.6876 68.4868 +5.53866 -39.7134 68.5312 +4.87778 -39.9863 69.0023 +4.15547 -39.7558 68.6044 +3.46338 -39.7725 68.6332 +2.75706 -39.5857 68.3109 +2.07845 -39.7967 68.675 +1.37699 -39.5536 68.2556 +0.700741 -40.2601 69.4746 +4.86169e-15 -39.8104 68.6986 +-0.692887 -39.8089 68.696 +-1.38572 -39.8043 68.6881 +-2.10201 -40.2478 69.4535 +-2.75706 -39.5857 68.3109 +-3.48519 -40.0229 69.0654 +-4.15547 -39.7558 68.6044 +-4.9022 -40.1865 69.3477 +-5.56657 -39.9134 68.8765 +-6.26888 -39.9376 68.9181 +-6.8853 -39.4591 68.0924 +-7.65808 -39.8766 68.813 +-8.35182 -39.8416 68.7525 +-9.12418 -40.1523 69.2886 +-9.82267 -40.1108 69.217 +-10.5596 -40.2154 69.3976 +-11.1199 -39.6712 68.4584 +-11.9578 -40.1169 69.2276 +-12.4991 -39.5678 68.2801 +-13.1873 -39.5116 68.1831 +-13.8745 -39.4524 68.0809 +-14.7429 -39.8832 68.8243 +-15.1884 -39.1774 67.6062 +-16.2485 -40.043 69.1 +-16.7577 -39.5289 68.2129 +-17.5749 -39.7478 68.5906 +-18.1311 -39.3763 67.9495 +-19.0258 -39.7342 68.5672 +-19.7166 -39.6495 68.4209 +-20.6313 -39.9986 69.0234 +-21.1714 -39.6162 68.3635 +-22.261 -40.2468 69.4517 +-22.7125 -39.7141 68.5325 +-23.7437 -40.1901 69.3538 +-24.3546 -39.9408 68.9237 +-25.4096 -40.4066 69.7274 +-25.8338 -39.8647 68.7923 +-26.8122 -40.178 69.333 +-27.6407 -40.2488 69.4552 +-28.5071 -40.3627 69.6517 +-29.2085 -40.2364 69.4338 +-30.1178 -40.3889 69.6969 +-30.8196 -40.2555 69.4668 +-31.9589 -40.679 70.1975 +-32.3285 -40.1192 69.2316 +-33.7144 -40.81 70.4237 +-33.7201 -39.8302 68.7328 +-35.369 -40.7847 70.3799 +-35.8335 -40.3536 69.636 +-36.9906 -40.6971 70.2287 +-37.2327 -40.0338 69.0842 +-38.5738 -40.5482 69.9718 +-39.015 -40.1075 69.2114 +-40.604 -40.8327 70.4628 +-40.8137 -40.1621 69.3055 +-42.7117 -41.1383 70.9901 +-43.0036 -40.5514 69.9774 +-44.6621 -41.243 71.1708 +-44.8449 -40.5636 69.9984 +-46.534 -41.2386 71.1633 +-46.95 -40.7729 70.3596 +-48.4192 -41.214 71.1207 +-48.6711 -40.6137 70.0849 +-50.1599 -41.0405 70.8214 +-50.5543 -40.5643 69.9997 +-52.7091 -41.4833 71.5856 +-52.7755 -40.7466 70.3141 +-54.421 -41.2248 71.1395 +-54.5213 -40.5279 69.9369 +-56.1875 -40.9903 70.7347 +-56.6694 -40.5786 70.0243 +-58.5929 -41.1863 71.073 +-59.0724 -40.7661 70.3479 +-60.8504 -41.2316 71.1511 +-61.6259 -41.0038 70.7581 +-63.0068 -41.1702 71.0451 +-63.0437 -40.4583 69.8167 +-65.4263 -41.2404 71.1663 +-65.9528 -40.8357 70.4679 +-68.3148 -41.5514 71.7031 +-68.714 -41.0589 70.8532 +-70.7249 -41.5192 71.6474 +-71.0512 -40.9811 70.7189 +-73.6833 -41.7577 72.059 +-74.0058 -41.2101 71.1141 +-76.3417 -41.7719 72.0836 +-77.0658 -41.4364 71.5045 +-78.4724 -41.4613 71.5475 +-80.1636 -41.6213 71.8236 +-81.7961 -41.7338 72.0178 +-82.5194 -41.3744 71.3976 +-85.6614 -42.2066 72.8336 +-85.7453 -41.5167 71.6432 +-88.5682 -42.1409 72.7202 +-88.8595 -41.5466 71.6947 +-92.1597 -42.3418 73.0669 +-92.5958 -41.8027 72.1367 +-95.1923 -42.2266 72.8681 +-96.2255 -41.94 72.3736 +-99.4611 -42.592 73.4987 +-101.501 -42.7031 73.6904 +-106.407 -43.9795 75.8931 +-107.635 -43.7016 75.4135 +-110.974 -44.259 76.3753 +-110.558 -43.3087 74.7355 +-113.45 -43.6474 75.32 +-113.486 -42.8778 73.9919 +-116.8 -43.334 74.7792 +-116.418 -42.4087 73.1824 +-122.117 -43.6738 75.3655 +-124.265 -43.6267 75.2842 +-127.575 -43.9617 75.8624 +-129.579 -43.8224 75.622 +-133.255 -44.2223 76.3121 +-134.02 -43.6376 75.3031 +-137.895 -44.0464 76.0084 +-137.469 -43.0693 74.3224 +-138.554 -42.571 73.4625 +-139.461 -42.0148 72.5027 +-139.498 -41.1995 71.0957 +-139.343 -40.3368 69.6071 +-138.822 -39.38 67.9559 +-139.065 -38.6495 66.6953 +-140.171 -38.1592 65.8492 +-141.272 -37.6622 64.9915 +-140.591 -36.6953 63.3231 +-140.512 -35.8967 61.9449 +-140.057 -35.0121 60.4184 +-140.032 -34.244 59.0931 +-139.81 -33.4358 57.6983 +-141.475 -33.077 57.0793 +-157.241 -35.9291 62.0009 +-162.611 -36.3002 62.6413 +-222.112 -48.4227 83.5605 +-224.695 -47.8213 82.5227 +-233.28 -48.4481 83.6043 +-236.432 -47.8951 82.65 +-246.095 -48.6045 83.8742 +-251.32 -48.3704 83.4702 +-261.051 -48.9371 84.448 +-265.933 -48.5304 83.7463 +-277.702 -49.3064 85.0854 +-281.765 -48.6445 83.9432 +-294.739 -49.4462 85.3267 +-300.629 -48.9759 84.5151 +-315.49 -49.875 86.0666 +-321.988 -49.3576 85.1738 +-333.957 -49.5987 85.5899 +-15.8608 -2.28033 3.93504 +-13.9726 -1.94287 3.3527 +-15.7446 -2.11524 3.65015 +-15.684 -2.03372 3.50948 +-16.495 -2.06205 3.55837 +-16.4331 -1.9781 3.4135 +-16.1745 -1.87229 3.2309 +-16.6947 -1.8557 3.20229 +-16.1394 -1.72004 2.96818 +-15.6788 -1.59938 2.75996 +-15.3134 -1.49245 2.57544 +-15.6338 -1.4528 2.50701 +-16.4463 -1.45399 2.50907 +-15.7806 -1.32405 2.28484 +-15.3092 -1.21574 2.09793 +-14.7363 -1.10424 1.90553 +-13.3686 -0.942031 1.62561 +-14.0785 -0.929311 1.60366 +-15.4837 -0.953222 1.64492 +-14.1087 -0.805979 1.39083 +-15.1167 -0.796623 1.37469 +-14.0351 -0.677593 1.16929 +-13.7475 -0.603047 1.04065 +-15.0535 -0.594012 1.02505 +-14.5644 -0.510636 0.881176 +-14.0737 -0.431588 0.744769 +-14.8796 -0.390987 0.674705 +-13.3872 -0.293062 0.505722 +-14.0914 -0.246725 0.425761 +-13.6953 -0.17981 0.310289 +-14.5978 -0.127757 0.220463 +-13.7995 -0.0603804 0.104195 +93.7 0 0 +92.5965 -0.398836 0.702793 +84.5871 -0.72873 1.2841 +83.6713 -1.0814 1.90554 +73.5552 -1.26776 2.23394 +86.2179 -1.85794 3.27389 +73.599 -1.90375 3.35461 +85.9394 -2.5943 4.57144 +74.2188 -2.56153 4.51369 +80.85 -3.14055 5.53399 +61.9633 -2.67565 4.71478 +89.8843 -4.27172 7.52723 +75.0864 -3.89515 6.86367 +95.8797 -5.39173 9.5008 +95.0859 -5.76239 10.154 +95.2779 -6.19105 10.9093 +95.0657 -6.59429 11.6199 +94.9455 -7.0035 12.3409 +94.9168 -7.41992 13.0747 +95.5711 -7.89359 13.9094 +95.4279 -8.30493 14.6342 +95.0807 -8.69766 15.3262 +94.9233 -9.10682 16.0472 +94.7587 -9.51534 16.7671 +94.5869 -9.92312 17.4856 +95.2865 -10.4263 18.3722 +95.0985 -10.8363 19.0947 +95.7784 -11.3492 19.9985 +95.5741 -11.7612 20.7246 +95.5562 -12.1972 21.4927 +95.1437 -12.5827 22.1721 +94.9176 -12.992 22.8934 +95.5494 -13.5228 23.8287 +95.3067 -13.9338 24.5529 +94.9611 -14.3294 25.2499 +95.5624 -14.8714 26.205 +96.1518 -15.4197 27.1711 +95.8755 -15.8332 27.8999 +94.741 -16.1009 28.3716 +96.1494 -16.805 29.6122 +94.909 -17.0496 30.0433 +96.1962 -17.7516 31.2803 +95.8787 -18.1653 32.0092 +96.5773 -18.7765 33.0862 +96.2417 -19.1918 33.818 +95.8987 -19.6055 34.5471 +96.4689 -20.2107 35.6134 +96.1996 -20.6451 36.3789 +95.8309 -21.0587 37.1077 +96.2739 -21.6548 38.1581 +95.978 -22.0895 38.9241 +96.2156 -22.6508 39.9132 +95.8114 -23.0644 40.6419 +96.2949 -23.6964 41.7556 +95.605 -24.043 42.3664 +96.0633 -24.6818 43.492 +95.5349 -25.0714 44.1785 +95.8789 -25.6939 45.2754 +95.421 -26.1059 46.0013 +95.7391 -26.7346 47.1093 +95.2628 -27.1459 47.8341 +95.4685 -27.7556 48.9084 +95.4884 -28.3182 49.8998 +95.7515 -28.9606 51.0316 +95.0662 -29.3195 51.6642 +95.0502 -29.887 52.6642 +94.4343 -30.2684 53.3362 +94.1457 -30.7557 54.1949 +93.4325 -31.1048 54.81 +93.6207 -31.7576 55.9604 +94.4482 -32.641 57.5169 +93.8675 -33.0465 58.2315 +93.6033 -33.5656 59.1462 +93.4082 -34.1142 60.113 +93.9195 -34.9311 61.5524 +93.2984 -35.3343 62.2628 +93.0641 -35.8867 63.2363 +93.8347 -36.8393 64.9147 +93.4907 -37.3662 65.8433 +93.8295 -38.1756 67.2696 +93.2276 -38.6101 68.0351 +93.606 -39.4589 69.5308 +93.433 -40.0872 70.638 +91.8969 -40.1284 70.7105 +90.3664 -40.1593 70.7651 +89.9478 -40.6804 71.6833 +87.1774 -40.1238 70.7024 +87.5527 -41.0073 72.2594 +85.0979 -40.56 71.4711 +84.0209 -40.752 71.8095 +82.4487 -40.6936 71.7065 +80.8849 -40.6247 71.5851 +79.5384 -40.652 71.6332 +79.4361 -41.3152 72.8019 +77.9524 -41.2587 72.7023 +77.4902 -41.7385 73.5477 +75.3441 -41.3004 72.7757 +74.611 -41.6233 73.3448 +71.8385 -40.7883 71.8735 +70.7249 -40.871 72.0191 +69.0354 -40.607 71.5539 +68.3784 -40.9408 72.1421 +67.3373 -41.042 72.3204 +67.2938 -41.7553 73.5774 +65.6911 -41.4991 73.1259 +65.2592 -41.9763 73.9667 +63.3109 -41.4674 73.07 +62.9917 -42.0162 74.0371 +60.777 -41.2877 72.7534 +60.5092 -41.8693 73.7782 +58.6195 -41.3197 72.8098 +57.8867 -41.5706 73.252 +55.9752 -40.9591 72.1744 +55.3041 -41.2398 72.669 +53.2657 -40.483 71.3354 +52.5479 -40.7109 71.7369 +50.8722 -40.1822 70.8054 +50.4734 -40.6523 71.6337 +48.5166 -39.8528 70.2249 +48.4192 -40.5705 71.4897 +47.25 -40.3929 71.1766 +46.8295 -40.8526 71.9866 +44.9419 -40.0167 70.5137 +44.6621 -40.5991 71.54 +43.0036 -39.9183 70.3404 +42.8041 -40.5836 71.5127 +41.3131 -40.0188 70.5175 +40.604 -40.1952 70.8283 +39.1465 -39.6145 69.805 +38.9182 -40.2716 70.9629 +37.4862 -39.6772 69.9156 +37.1565 -40.2414 70.9097 +35.7115 -39.5883 69.7589 +35.7279 -40.5553 71.4629 +34.0718 -39.6173 69.8099 +33.944 -40.4465 71.2711 +32.6657 -39.9047 70.3164 +32.1788 -40.3195 71.0472 +30.9272 -39.7653 70.0708 +30.433 -40.1744 70.7916 +29.2085 -39.6082 69.794 +28.8075 -40.1513 70.7509 +27.9337 -40.0405 70.5557 +27.3834 -40.3933 71.1774 +26.2355 -39.8526 70.2245 +25.6803 -40.1994 70.8356 +24.4423 -39.4589 69.5308 +24.2549 -40.4145 71.2147 +23.1535 -39.8532 70.2256 +22.6885 -40.3794 71.1529 +21.6114 -39.8082 70.1463 +21.1321 -40.3298 71.0655 +19.9827 -39.5573 69.7042 +19.6094 -40.3137 71.0372 +18.6035 -39.7715 70.0816 +17.9645 -39.9946 70.4749 +17.0072 -39.4912 69.5877 +16.6073 -40.2884 70.9925 +15.7227 -39.9223 70.3475 +14.9798 -39.8915 70.2931 +14.2044 -39.7601 70.0615 +13.5009 -39.8197 70.1667 +12.7181 -39.6326 69.837 +12.1499 -40.1252 70.7049 +11.3148 -39.7361 70.0193 +10.677 -40.028 70.5337 +9.90798 -39.8275 70.1804 +9.26002 -40.1139 70.685 +8.49816 -39.9068 70.3201 +7.8306 -40.1384 70.7282 +7.08576 -39.9739 70.4384 +6.41795 -40.2489 70.923 +5.6433 -39.8319 70.1881 +4.97546 -40.1503 70.7492 +4.23398 -39.8745 70.2631 +3.52881 -39.8912 70.2926 +2.82337 -39.9049 70.3167 +2.12819 -40.1129 70.6832 +1.41888 -40.1205 70.6967 +0.705977 -39.9277 70.3569 +4.91679e-15 -39.6331 69.8377 +-0.705977 -39.9277 70.3569 +-1.40143 -39.627 69.8271 +-2.14127 -40.3596 71.118 +-2.82337 -39.9049 70.3167 +-3.54626 -40.0884 70.6401 +-4.23398 -39.8745 70.2631 +-4.99377 -40.2981 71.0096 +-5.6433 -39.8319 70.1881 +-6.41795 -40.2489 70.923 +-7.02475 -39.6298 69.8319 +-7.89769 -40.4823 71.3342 +-8.51907 -40.005 70.4931 +-9.32794 -40.4081 71.2034 +-9.96891 -40.0725 70.612 +-10.7554 -40.3216 71.0511 +-11.3844 -39.9805 70.4499 +-12.1795 -40.2228 70.877 +-12.7494 -39.7301 70.0087 +-13.6494 -40.2578 70.9386 +-14.2044 -39.7601 70.0615 +-14.9615 -39.8429 70.2075 +-15.5509 -39.4863 69.5791 +-16.6073 -40.2884 70.9925 +-17.1319 -39.7808 70.0981 +-17.9645 -39.9946 70.4749 +-18.536 -39.6272 69.8274 +-19.5861 -40.2657 70.9525 +-20.0795 -39.7488 70.0417 +-20.9318 -39.9475 70.3918 +-21.482 -39.5698 69.7262 +-22.6618 -40.3319 71.0692 +-23.2087 -39.9481 70.3928 +-24.1697 -40.2725 70.9645 +-24.7931 -40.0252 70.5288 +-25.8607 -40.4818 71.3334 +-26.3901 -40.0872 70.638 +-27.2882 -40.2529 70.9299 +-27.9989 -40.1338 70.7202 +-29.0078 -40.4304 71.2428 +-29.7216 -40.304 71.0199 +-30.9583 -40.8679 72.0136 +-31.3572 -40.3183 71.0452 +-32.3987 -40.595 71.5327 +-33.0028 -40.3166 71.0422 +-34.2884 -40.8569 71.9943 +-34.8923 -40.5714 71.4911 +-36.2862 -41.189 72.5795 +-36.7283 -40.7155 71.7452 +-37.9859 -41.1397 72.4925 +-38.4583 -40.7061 71.7285 +-39.8223 -41.2071 72.6113 +-40.1548 -40.6347 71.6028 +-41.6303 -41.2112 72.6186 +-41.9941 -40.6785 71.6799 +-43.6352 -41.3716 72.9013 +-43.9425 -40.7899 71.8763 +-45.0915 -40.9895 72.2279 +-45.8145 -40.7937 71.883 +-47.1249 -41.1103 72.4408 +-47.7 -40.7775 71.8544 +-49.1805 -41.2085 72.6138 +-50.0617 -41.122 72.4614 +-51.1004 -41.1573 72.5236 +-51.6671 -40.8101 71.9117 +-53.4613 -41.4185 72.9838 +-54.0282 -41.0625 72.3565 +-55.0281 -41.034 72.3063 +-55.9752 -40.9591 72.1744 +-57.7168 -41.4486 73.037 +-57.9312 -40.8346 71.955 +-60.0447 -41.5478 73.2118 +-60.1304 -40.8484 71.9793 +-62.3969 -41.6195 73.338 +-62.7693 -41.1126 72.4449 +-64.894 -41.7413 73.5527 +-65.2601 -41.2268 72.6461 +-67.6051 -41.9485 73.9177 +-67.589 -41.1954 72.5908 +-70.1594 -42.0072 74.0212 +-70.5781 -41.5144 73.1528 +-72.2186 -41.7342 73.5402 +-73.1506 -41.5333 73.1862 +-75.2736 -41.993 73.9962 +-76.214 -41.7772 73.6159 +-78.2333 -42.1387 74.253 +-78.7026 -41.6558 73.402 +-81.0193 -42.1387 74.2529 +-81.0666 -41.4331 73.0096 +-83.5484 -41.9624 73.9423 +-84.2871 -41.6009 73.3054 +-86.8739 -42.1358 74.2478 +-87.8314 -41.8629 73.7669 +-89.8013 -42.0606 74.1152 +-91.4192 -42.0761 74.1426 +-93.4868 -42.2809 74.5036 +-94.4537 -41.9758 73.9658 +-97.8885 -42.7447 75.3207 +-98.6405 -42.3214 74.575 +-101.742 -42.8887 75.5744 +-103.569 -42.893 75.5821 +-108.953 -44.3289 78.1123 +-109.5 -43.7648 77.1183 +-112.852 -44.3054 78.0709 +-112.764 -43.4834 76.6225 +-115.116 -43.597 76.8226 +-115.323 -42.8916 75.5797 +-120.498 -44.008 77.5468 +-121.353 -43.5163 76.6804 +-125.699 -44.2531 77.9787 +-126.477 -43.71 77.0217 +-130.377 -44.2259 77.9308 +-131.734 -43.8559 77.2788 +-135.006 -44.104 77.7161 +-136.536 -43.7628 77.1148 +-138.148 -43.4383 76.5429 +-138.147 -42.6062 75.0767 +-139.066 -42.0611 74.1163 +-139.975 -41.5114 73.1476 +-139.756 -40.6314 71.5969 +-139.343 -39.7071 69.9682 +-139.344 -38.911 68.5654 +-140.289 -38.3811 67.6317 +-141.841 -38.0109 66.9794 +-141.272 -37.0742 65.3287 +-140.769 -36.168 63.7319 +-139.977 -35.2018 62.0294 +-140.057 -34.4655 60.7319 +-139.493 -33.5796 59.1709 +-142.879 -33.6362 59.2707 +-151.625 -34.8968 61.492 +-169.981 -38.2337 67.3719 +-212.308 -46.6543 82.2099 +-228.44 -49.0248 86.3869 +-231.875 -48.579 85.6014 +-237.345 -48.5228 85.5024 +-241.068 -48.0718 84.7078 +-252.608 -49.112 86.5406 +-257.388 -48.765 85.9291 +-267.233 -49.3139 86.8964 +-272.981 -49.0388 86.4117 +-282.604 -49.3933 87.0363 +-287.249 -48.8171 86.021 +-300.903 -49.6924 87.5633 +-306.906 -49.2179 86.7273 +-320.64 -49.8977 87.9251 +-327.343 -49.3952 87.0397 +-342.97 -50.142 88.3556 +-351.63 -49.7649 87.6912 +-15.7072 -2.14995 3.78845 +-14.9719 -1.98002 3.48902 +-16.2649 -2.07611 3.65833 +-16.8831 -2.07762 3.66099 +-15.6552 -1.85504 3.26878 +-16.272 -1.85416 3.26722 +-15.3278 -1.67717 2.95536 +-15.846 -1.6624 2.92933 +-15.7768 -1.58425 2.79161 +-15.4115 -1.47857 2.60539 +-16.0271 -1.4661 2.58342 +-14.8706 -1.29417 2.28046 +-14.6957 -1.21377 2.1388 +-14.7166 -1.15043 2.02718 +-14.9341 -1.10159 1.94112 +-14.854 -1.03036 1.81561 +-12.9879 -0.843937 1.48711 +-13.9949 -0.848118 1.49448 +-15.0029 -0.843681 1.48666 +-14.52 -0.753236 1.32728 +-14.5328 -0.690667 1.21703 +-15.441 -0.666758 1.1749 +-14.7544 -0.57312 1.0099 +-13.7664 -0.475122 0.837217 +-14.2733 -0.430877 0.759252 +-13.3816 -0.346136 0.60993 +-13.687 -0.294946 0.519727 +-14.4912 -0.249764 0.440111 +-14.595 -0.188631 0.332389 +-13.8979 -0.119732 0.210981 +-14.2995 -0.0615912 0.10853 +92.8 0 0 +92.6965 -0.392903 0.707126 +87.5867 -0.742545 1.33639 +88.8695 -1.13027 2.03421 +89.1457 -1.51199 2.7212 +89.8144 -1.90459 3.42779 +86.0819 -2.19114 3.94351 +89.6325 -2.66266 4.79211 +88.7832 -3.01535 5.42688 +94.8068 -3.62399 6.52227 +91.6499 -3.89446 7.00905 +94.9608 -4.44104 7.99275 +94.9768 -4.84843 8.72596 +94.9855 -5.25629 9.45999 +95.0859 -5.67053 10.2055 +95.2779 -6.09236 10.9647 +95.1648 -6.49592 11.691 +95.1433 -6.90624 12.4295 +95.707 -7.3624 13.2505 +94.6834 -7.69564 13.8502 +95.4279 -8.17254 14.7085 +95.0807 -8.55901 15.4041 +94.9233 -8.96165 16.1287 +94.7587 -9.36366 16.8522 +95.4672 -9.85582 17.738 +95.4817 -10.2811 18.5034 +95.0985 -10.6635 19.1917 +95.7784 -11.1683 20.1001 +95.5741 -11.5738 20.8299 +95.5562 -12.0027 21.6019 +95.1437 -12.3822 22.2848 +95.9776 -12.9277 23.2666 +95.5494 -13.3073 23.9497 +95.3067 -13.7117 24.6776 +95.8217 -14.2287 25.6081 +95.6578 -14.6489 26.3644 +95.2959 -15.0388 27.0661 +95.8755 -15.5808 28.0416 +95.5919 -15.9866 28.7719 +96.0552 -16.5209 29.7334 +95.7547 -16.9274 30.465 +96.1962 -17.4686 31.4392 +95.8787 -17.8757 32.1718 +95.6469 -18.2992 32.9339 +96.2417 -18.8859 33.9898 +95.9911 -19.3116 34.756 +95.5484 -19.6988 35.4528 +96.2913 -20.3354 36.5986 +95.8309 -20.723 37.2962 +95.5459 -21.1485 38.062 +95.8874 -21.7169 39.0849 +95.5838 -22.1434 39.8525 +95.9013 -22.718 40.8867 +96.2054 -23.297 41.9287 +95.7832 -23.7038 42.661 +96.152 -24.3107 43.7532 +95.7115 -24.7173 44.485 +96.0547 -25.3307 45.5889 +95.421 -25.6897 46.235 +95.6521 -26.2845 47.3055 +95.3494 -26.7375 48.1208 +95.5547 -27.3378 49.2012 +95.5742 -27.8918 50.1983 +95.2399 -28.3467 51.0168 +95.151 -28.8779 51.973 +95.3032 -29.4889 53.0726 +95.6084 -30.1562 54.2736 +94.3125 -30.3191 54.5667 +94.0129 -30.7991 55.4307 +93.7031 -31.2789 56.2942 +93.7929 -31.8978 57.408 +93.1348 -32.2659 58.0705 +93.1988 -32.8878 59.1898 +93.6493 -33.6571 60.5744 +93.9994 -34.4035 61.9177 +93.219 -34.7415 62.526 +93.2217 -35.3745 63.6652 +93.1304 -35.9799 64.7547 +93.2575 -36.6789 66.0128 +93.2894 -37.3508 67.2221 +93.534 -38.1195 68.6054 +93.3018 -38.7037 69.6569 +93.2066 -39.3526 70.8248 +93.6195 -40.2289 72.4019 +91.6298 -40.0717 72.1189 +90.6114 -40.3272 72.5789 +88.9326 -40.2792 72.4923 +88.2055 -40.6545 73.168 +85.7453 -40.2171 72.3807 +85.0195 -40.579 73.032 +83.5093 -40.56 72.9979 +82.7774 -40.9124 73.6321 +80.7888 -40.6328 73.1289 +79.8491 -40.868 73.5521 +78.7026 -40.9918 73.7749 +78.436 -41.5745 74.8236 +76.4816 -41.2556 74.2498 +75.7375 -41.5782 74.8303 +73.8722 -41.2745 74.2837 +72.8031 -41.4013 74.512 +69.9996 -40.5177 72.9217 +69.6506 -41.0378 73.8577 +68.7847 -41.2559 74.2503 +67.9163 -41.4698 74.6353 +67.0455 -41.6796 75.0128 +66.1115 -41.8466 75.3133 +64.7553 -41.7373 75.1167 +63.5271 -41.6978 75.0456 +62.2465 -41.6118 74.8909 +61.5545 -41.9136 75.434 +59.9961 -41.6159 74.8982 +59.2461 -41.8686 75.353 +57.2614 -41.2323 74.2077 +55.9112 -41.0279 73.8399 +53.8648 -40.2857 72.5042 +53.6225 -40.8812 73.5758 +51.9851 -40.4066 72.7218 +51.1004 -40.5012 72.892 +49.7527 -40.2167 72.3799 +49.0282 -40.426 72.7567 +47.85 -40.2537 72.4465 +46.928 -40.2859 72.5045 +46.1054 -40.3983 72.7068 +45.5209 -40.7203 73.2862 +43.9425 -40.1397 72.2414 +43.6352 -40.7121 73.2716 +41.9941 -40.03 72.044 +41.4964 -40.4238 72.7528 +40.0233 -39.8561 71.7309 +39.564 -40.2872 72.5069 +38.2047 -39.7931 71.6175 +37.8615 -40.3513 72.6222 +36.769 -40.1109 72.1895 +36.1665 -40.3988 72.7076 +35.0095 -40.0587 72.0957 +34.2884 -40.2056 72.36 +33.1152 -39.809 71.6463 +32.5087 -40.0834 72.1401 +31.4647 -39.8116 71.6509 +30.7482 -39.9434 71.8882 +29.9268 -39.9353 71.8736 +29.3082 -40.198 72.3463 +28.0965 -39.6319 71.3274 +27.8593 -40.4403 72.7824 +26.6682 -39.864 71.7451 +26.2215 -40.3924 72.6961 +25.144 -39.9446 71.8902 +24.5105 -40.1893 72.3307 +23.5394 -39.8715 71.7587 +23.0627 -40.391 72.6937 +21.9737 -39.8304 71.6847 +21.3574 -40.1101 72.1882 +20.4424 -39.8221 71.6698 +19.7261 -39.9073 71.823 +19.0084 -39.9893 71.9708 +18.3541 -40.2106 72.369 +17.3814 -39.7168 71.4802 +16.8466 -40.2173 72.381 +15.9516 -39.8581 71.7345 +15.3078 -40.1152 72.1972 +14.517 -39.9872 71.9669 +13.864 -40.2388 72.4198 +12.9371 -39.6724 71.4004 +12.3569 -40.1581 72.2744 +11.5096 -39.7761 71.5869 +10.912 -40.2567 72.452 +10.0786 -39.8676 71.7516 +9.40719 -40.1018 72.1731 +8.59224 -39.7054 71.4597 +7.92644 -39.9821 71.9576 +7.20778 -40.0141 72.0153 +6.46503 -39.8979 71.8062 +5.70608 -39.633 71.3295 +5.04871 -40.092 72.1555 +4.28108 -39.6754 71.4057 +3.60732 -40.1287 72.2216 +2.84431 -39.56 71.1981 +2.1753 -40.3474 72.6152 +1.42761 -39.7238 71.4928 +0.719067 -40.0197 72.0255 +5.00864e-15 -39.7298 71.5037 +-0.721684 -40.1655 72.2877 +-1.44331 -40.1608 72.2794 +-2.16483 -40.1532 72.2657 +-2.85478 -39.7056 71.4602 +-3.60732 -40.1287 72.2216 +-4.28108 -39.6754 71.4057 +-5.08534 -40.3829 72.6791 +-5.76886 -40.0691 72.1143 +-6.53564 -40.3336 72.5904 +-7.18163 -39.8689 71.7541 +-7.9552 -40.1271 72.2187 +-8.70722 -40.2368 72.416 +-9.50907 -40.5361 72.9548 +-10.1517 -40.1568 72.2722 +-10.8728 -40.1123 72.192 +-11.5931 -40.0646 72.1062 +-12.2682 -39.8699 71.7557 +-13.031 -39.9602 71.9184 +-13.699 -39.7598 71.5576 +-14.4128 -39.7002 71.4504 +-15.1255 -39.6376 71.3378 +-15.8944 -39.715 71.477 +-16.727 -39.9317 71.8671 +-17.4438 -39.8593 71.7368 +-18.3541 -40.2106 72.369 +-19.0758 -40.1313 72.2263 +-19.9362 -40.3323 72.588 +-20.4424 -39.8221 71.6698 +-21.2322 -39.875 71.765 +-22.1808 -40.2057 72.3602 +-23.0627 -40.391 72.6937 +-23.6221 -40.0116 72.0108 +-24.5957 -40.3291 72.5822 +-25.0563 -39.8053 71.6395 +-26.3118 -40.5313 72.9462 +-26.8536 -40.1411 72.2439 +-28.0497 -40.7167 73.2798 +-28.4872 -40.1829 72.3192 +-29.6087 -40.6101 73.0879 +-30.2346 -40.3461 72.6128 +-31.2735 -40.6258 73.1163 +-31.8947 -40.3557 72.6302 +-33.2417 -40.9872 73.7667 +-34.0892 -40.9799 73.7535 +-35.0538 -41.1031 73.9752 +-35.5565 -40.6847 73.2222 +-36.6052 -40.8887 73.5895 +-37.3791 -40.7764 73.3873 +-38.5665 -41.1026 73.9743 +-38.9654 -40.5854 73.0436 +-40.425 -41.164 74.0848 +-41.1631 -40.9911 73.7736 +-42.2996 -41.2062 74.1609 +-43.0383 -41.0254 73.8354 +-44.0508 -41.0999 73.9695 +-44.9284 -41.0403 73.8622 +-45.9504 -41.1044 73.9776 +-46.6872 -40.9081 73.6243 +-47.7158 -40.9623 73.7218 +-48.6 -40.8847 73.5821 +-50.0433 -41.263 74.263 +-50.7828 -41.0493 73.8785 +-51.8319 -41.081 73.9354 +-52.568 -40.8598 73.5373 +-54.2135 -41.3317 74.3868 +-54.9541 -41.1004 73.9704 +-56.4632 -41.4329 74.5688 +-56.7022 -40.8296 73.4831 +-58.5098 -41.3483 74.4165 +-58.9063 -40.86 73.5377 +-60.8577 -41.4391 74.58 +-61.6587 -41.2189 74.1837 +-63.4081 -41.6197 74.905 +-64.0331 -41.2718 74.2789 +-65.9289 -41.731 75.1053 +-66.8608 -41.5648 74.8062 +-68.1654 -41.6219 74.909 +-69.0994 -41.4446 74.5899 +-70.7319 -41.6749 75.0043 +-71.6708 -41.4851 74.6628 +-73.3876 -41.7338 75.1103 +-74.5283 -41.641 74.9434 +-76.0688 -41.7601 75.1577 +-77.2177 -41.6526 74.9643 +-79.1792 -41.9683 75.5325 +-80.2712 -41.8087 75.2452 +-82.0519 -41.9954 75.5812 +-82.8033 -41.646 74.9524 +-84.81 -41.9171 75.4402 +-86.1963 -41.8651 75.3466 +-88.3004 -42.145 75.8504 +-89.2701 -41.8703 75.3561 +-92.1951 -42.4934 76.4774 +-92.7356 -42.0016 75.5924 +-94.8139 -42.1976 75.9451 +-96.7575 -42.3141 76.1548 +-99.2366 -42.6426 76.746 +-99.999 -42.2204 75.9861 +-102.655 -42.5835 76.6397 +-105.178 -42.8648 77.1459 +-109.725 -43.9312 79.0652 +-111.831 -43.9841 79.1604 +-113.713 -43.9318 79.0661 +-114.577 -43.478 78.2495 +-116.544 -43.4343 78.1708 +-117.799 -43.114 77.5944 +-122.347 -43.9709 79.1366 +-124.184 -43.8218 78.8682 +-127.49 -44.1682 79.4916 +-128.771 -43.7932 78.8168 +-132.19 -44.1261 79.416 +-133.226 -43.6456 78.5512 +-136.09 -43.7495 78.7381 +-137.458 -43.3562 78.0302 +-138.063 -42.7197 76.8848 +-139.249 -42.2616 76.0603 +-140.174 -41.7206 75.0866 +-139.975 -40.8497 73.5192 +-139.153 -39.8111 71.65 +-139.603 -39.147 70.4548 +-140.475 -38.6017 69.4733 +-141.251 -38.0283 68.4415 +-141.226 -37.2428 67.0276 +-141.007 -36.4148 65.5374 +-140.059 -35.4121 63.7328 +-139.888 -34.6186 62.3048 +-139.789 -33.851 60.9233 +-140.392 -33.2573 59.8547 +-152.086 -35.2328 63.4102 +-161.867 -36.66 65.9789 +-217.026 -48.0373 86.4551 +-220.987 -47.7873 86.0052 +-232.108 -49.0178 88.2197 +-235.005 -48.4498 87.1976 +-240.209 -48.3255 86.9738 +-246.26 -48.3244 86.9719 +-256.795 -49.13 88.4216 +-261.496 -48.7536 87.7441 +-270.324 -49.0892 88.3482 +-277.303 -49.0212 88.2258 +-285.432 -49.0926 88.3543 +-292.165 -48.8614 87.9382 +-305.171 -49.5938 89.2564 +-314.609 -49.6492 89.356 +-324.741 -49.7303 89.502 +-332.89 -49.4316 88.9644 +-348.723 -50.1703 90.294 +-357.013 -49.7215 89.4863 +-373.792 -50.3481 90.6139 +-15.2616 -1.98617 3.57461 +-14.135 -1.77548 3.19542 +-16.8831 -2.0445 3.67959 +-16.9192 -1.97287 3.55067 +-16.1745 -1.81368 3.26416 +-14.9373 -1.60839 2.8947 +-15.3569 -1.58541 2.85334 +-16.5607 -1.63646 2.94522 +-15.6079 -1.47353 2.65198 +-14.7488 -1.32766 2.38946 +-15.2645 -1.30727 2.35276 +-16.471 -1.33872 2.40936 +-13.9264 -1.07131 1.92809 +-13.9451 -1.01224 1.82178 +-14.3589 -0.980137 1.764 +-14.9708 -0.95728 1.72286 +-14.4912 -0.864192 1.55533 +-14.4068 -0.797244 1.43484 +-14.0228 -0.715841 1.28833 +-14.5328 -0.679657 1.22321 +-15.0425 -0.639199 1.1504 +-14.7544 -0.563984 1.01503 +-13.3674 -0.453997 0.81708 +-14.972 -0.444764 0.800464 +-13.6812 -0.348245 0.626753 +-14.0866 -0.298718 0.537618 +-14.4912 -0.245782 0.442347 +-14.7949 -0.188167 0.338654 +-12.898 -0.109347 0.196798 +-13.1995 -0.0559472 0.100691 +93.3 0 0 +92.9965 -0.387757 0.712943 +87.9866 -0.733791 1.34917 +92.4683 -1.1569 2.12711 +91.844 -1.53239 2.8175 +91.8125 -1.91527 3.52147 +89.6769 -2.24549 4.12863 +92.3275 -2.69806 4.96074 +93.0727 -3.10957 5.71736 +94.8068 -3.56499 6.55471 +94.0408 -3.931 7.22766 +94.0649 -4.32752 7.95672 +94.9768 -4.7695 8.76935 +94.9855 -5.17071 9.50704 +95.2844 -5.58987 10.2777 +95.2779 -5.99318 11.0192 +95.1648 -6.39017 11.7492 +95.0444 -6.78673 12.4783 +95.8058 -7.25 13.3301 +95.5711 -7.6413 14.0495 +95.4279 -8.03949 14.7817 +95.0807 -8.41967 15.4807 +94.9233 -8.81575 16.2089 +95.6407 -9.29693 17.0936 +94.5869 -9.60597 17.6618 +95.2865 -10.093 18.5574 +95.0985 -10.4899 19.2871 +95.7784 -10.9864 20.2 +95.5741 -11.3853 20.9335 +95.5562 -11.8073 21.7093 +95.1437 -12.1806 22.3956 +94.9176 -12.5768 23.1241 +95.5494 -13.0906 24.0688 +95.3067 -13.4885 24.8003 +95.0567 -13.8853 25.53 +95.5624 -14.3961 26.4691 +95.2959 -14.794 27.2007 +95.8755 -15.3272 28.1811 +95.6865 -15.7419 28.9436 +96.0552 -16.2519 29.8813 +95.7547 -16.6518 30.6165 +95.3532 -17.0337 31.3186 +95.8787 -17.5847 32.3318 +95.6469 -18.0013 33.0977 +96.2417 -18.5784 34.1588 +96.6378 -19.1252 35.1642 +95.6405 -19.3967 35.6635 +96.1996 -19.9853 36.7456 +95.8309 -20.3856 37.4816 +96.2739 -20.9627 38.5427 +95.978 -21.3835 39.3164 +96.2156 -21.9269 40.3154 +95.9013 -22.3481 41.09 +95.4 -22.7258 41.7844 +95.7832 -23.3179 42.8731 +96.0633 -23.8929 43.9303 +95.7115 -24.3149 44.7062 +95.9668 -24.8955 45.7736 +95.421 -25.2715 46.4649 +95.7391 -25.8801 47.584 +95.3494 -26.3022 48.3601 +95.5547 -26.8927 49.4459 +95.6599 -27.4624 50.4932 +95.2399 -27.8852 51.2705 +95.151 -28.4078 52.2314 +95.3032 -29.0088 53.3365 +95.4407 -29.6132 54.4478 +95.5633 -30.221 55.5653 +93.7641 -30.2175 55.5589 +93.7031 -30.7697 56.5742 +93.0557 -31.1318 57.24 +93.2162 -31.7683 58.4103 +93.7651 -32.5489 59.8455 +93.6493 -33.1092 60.8756 +93.9195 -33.8146 62.1727 +93.1397 -34.1468 62.7834 +93.3005 -34.828 64.0359 +93.2086 -35.4239 65.1315 +93.2575 -36.0817 66.3411 +93.2894 -36.7428 67.5564 +93.6106 -37.5295 69.003 +93.2258 -38.0425 69.9462 +93.0557 -38.6492 71.0617 +93.3199 -39.4473 72.5291 +93.116 -40.0587 73.6532 +92.0122 -40.284 74.0675 +89.664 -39.9492 73.452 +89.221 -40.4531 74.3784 +87.112 -40.193 73.9001 +86.3746 -40.5547 74.5651 +84.57 -40.4065 74.2927 +83.1979 -40.4508 74.3742 +81.414 -40.2806 74.0613 +81.5012 -41.0344 75.4472 +79.7256 -40.8485 75.1054 +78.5711 -40.9681 75.3252 +77.5522 -41.1521 75.6635 +76.9964 -41.5812 76.4526 +75.0532 -41.2516 75.8465 +74.2969 -41.5629 76.4189 +71.8637 -40.9195 75.236 +70.223 -40.7015 74.835 +68.9106 -40.6585 74.7561 +68.5389 -41.1687 75.694 +67.4149 -41.2269 75.8012 +67.2073 -41.8476 76.9423 +65.5377 -41.5538 76.4022 +65.0141 -41.9792 77.1843 +63.2457 -41.5915 76.4715 +62.4836 -41.8536 76.9534 +60.7417 -41.4472 76.2062 +60.0391 -41.7383 76.7413 +57.5409 -40.7591 74.941 +56.8495 -41.0373 75.4524 +54.8452 -40.3511 74.1909 +54.3747 -40.7797 74.9789 +52.727 -40.3161 74.1265 +51.9886 -40.5344 74.5278 +50.6282 -40.2581 74.0199 +49.688 -40.303 74.1025 +48.75 -40.3432 74.1763 +48.0113 -40.5449 74.5472 +46.3963 -39.9913 73.5294 +45.8072 -40.3092 74.1138 +44.5059 -39.9924 73.5314 +43.9123 -40.3036 74.1035 +43.0383 -40.3575 74.2025 +42.0318 -40.2788 74.0579 +40.637 -39.8084 73.193 +40.2958 -40.3644 74.2154 +38.9654 -39.9247 73.4068 +38.5665 -40.4334 74.3422 +37.1351 -39.8507 73.2707 +36.645 -40.2669 74.036 +35.4393 -39.8904 73.3437 +34.939 -40.3015 74.0996 +33.9768 -40.1798 73.8759 +32.9485 -39.9643 73.4796 +32.1098 -39.9664 73.4834 +31.2735 -39.9644 73.4799 +30.3372 -39.8239 73.2215 +29.9091 -40.3543 74.1967 +28.7802 -39.9353 73.4263 +28.1449 -40.1897 73.8941 +27.1317 -39.8966 73.3552 +26.402 -40.0082 73.5603 +25.5533 -39.934 73.4239 +24.9365 -40.2223 73.9539 +23.8426 -39.7276 73.0444 +23.3566 -40.2399 73.9863 +22.2326 -39.6435 72.8897 +21.6579 -40.0122 73.5677 +20.7085 -39.6837 72.9638 +19.9829 -39.7686 73.1198 +19.0758 -39.478 72.5854 +18.6787 -40.2557 74.0153 +17.6933 -39.7712 73.1246 +17.0659 -40.0776 73.6879 +16.2378 -39.9127 73.3848 +15.6176 -40.2607 74.0246 +14.708 -39.8538 73.2764 +13.9795 -39.9136 73.3864 +13.25 -39.9704 73.4908 +12.5195 -40.0241 73.5895 +11.6627 -39.649 72.8998 +11.1078 -40.3119 74.1187 +10.2614 -39.9298 73.4163 +9.49775 -39.8287 73.2303 +8.75949 -39.8192 73.2129 +8.07021 -40.0445 73.6271 +7.30365 -39.8862 73.3361 +6.53564 -39.677 72.9514 +5.84559 -39.9411 73.4369 +5.14029 -40.1547 73.8297 +4.35959 -39.7451 73.0767 +3.63349 -39.7618 73.1073 +2.90713 -39.7755 73.1325 +2.19363 -40.0249 73.591 +1.45379 -39.7936 73.1658 +0.731284 -40.0371 73.6134 +5.1311e-15 -40.0386 73.6162 +-0.731284 -40.0371 73.6134 +-1.46251 -40.0325 73.605 +-2.18054 -39.7861 73.152 +-2.92458 -40.0142 73.5714 +-3.67275 -40.1914 73.8973 +-4.40669 -40.1746 73.8663 +-5.14029 -40.1547 73.8297 +-5.81071 -39.7028 72.9988 +-6.58272 -39.9628 73.4769 +-7.33851 -40.0766 73.6862 +-8.12772 -40.3299 74.1518 +-8.76994 -39.8668 73.3003 +-9.62227 -40.3509 74.1904 +-10.2614 -39.9298 73.4163 +-11.0686 -40.1697 73.8574 +-11.7184 -39.8382 73.2478 +-12.6229 -40.3549 74.1978 +-13.1249 -39.5929 72.7967 +-13.996 -39.9607 73.4731 +-14.7254 -39.9008 73.363 +-15.3989 -39.697 72.9881 +-16.1806 -39.772 73.1261 +-17.026 -39.9839 73.5157 +-17.5685 -39.4908 72.6091 +-18.6138 -40.1158 73.7581 +-19.1433 -39.6176 72.8422 +-19.9362 -39.6757 72.949 +-20.6601 -39.591 72.7934 +-21.6078 -39.9197 73.3976 +-22.1808 -39.5512 72.72 +-23.223 -40.0097 73.5631 +-23.8702 -39.7736 73.129 +-25.0218 -40.3597 74.2066 +-25.5825 -39.9797 73.5079 +-26.5824 -40.2816 74.063 +-27.3171 -40.1692 73.8564 +-28.2401 -40.3256 74.144 +-29.2686 -40.6129 74.6723 +-30.3764 -40.9848 75.356 +-30.9186 -40.5872 74.6249 +-31.8689 -40.7253 74.8788 +-32.6115 -40.5908 74.6316 +-33.6815 -40.8534 75.1144 +-34.5387 -40.8443 75.0977 +-35.5896 -41.0519 75.4793 +-36.1036 -40.638 74.7184 +-37.0837 -40.7489 74.9222 +-37.8265 -40.5927 74.635 +-38.9397 -40.8247 75.0617 +-39.5571 -40.5309 74.5214 +-40.8125 -40.8819 75.1668 +-41.4261 -40.5814 74.6142 +-42.5673 -40.7919 75.0013 +-43.1745 -40.4852 74.4374 +-44.7434 -41.0665 75.5061 +-45.2101 -40.6253 74.6949 +-46.6661 -41.065 75.5035 +-47.5598 -40.9943 75.3734 +-48.553 -41.0023 75.3882 +-49.3 -40.7983 75.0131 +-50.5001 -40.9617 75.3135 +-51.5553 -40.9953 75.3753 +-52.5111 -40.9418 75.2768 +-53.2569 -40.7213 74.8714 +-54.9657 -41.223 75.7939 +-55.4443 -40.7919 75.0013 +-57.5118 -41.5154 76.3315 +-57.7646 -40.9175 75.2323 +-59.3594 -41.2657 75.8725 +-59.824 -40.821 75.0548 +-61.9029 -41.4646 76.2382 +-62.2465 -40.9344 75.2633 +-64.0624 -41.3646 76.0544 +-65.1766 -41.3249 75.9813 +-66.842 -41.6202 76.5242 +-67.4149 -41.2269 75.8012 +-69.2236 -41.5799 76.4502 +-69.9804 -41.2897 75.9166 +-71.686 -41.5494 76.3941 +-72.635 -41.3587 76.0435 +-74.3618 -41.5993 76.4858 +-75.1188 -41.2876 75.9128 +-77.4603 -41.8317 76.9131 +-78.4221 -41.6137 76.5122 +-79.9223 -41.6726 76.6205 +-81.0214 -41.5125 76.3262 +-83.6351 -42.1088 77.4227 +-84.0537 -41.5867 76.4626 +-86.7726 -42.1888 77.5697 +-87.6812 -41.893 77.0258 +-89.299 -41.9277 77.0896 +-90.2771 -41.6533 76.5851 +-93.5008 -42.3936 77.9462 +-93.9058 -41.8392 76.9269 +-96.3621 -42.1884 77.569 +-97.7979 -42.0728 77.3564 +-100.36 -42.4233 78.0008 +-102.037 -42.3794 77.9201 +-104.48 -42.635 78.3901 +-106.787 -42.812 78.7154 +-110.805 -43.6415 80.2406 +-112.686 -43.5988 80.1622 +-113.791 -43.2463 79.514 +-114.813 -42.8584 78.8009 +-117.02 -42.9016 78.8803 +-120.913 -43.5335 80.0421 +-123.553 -43.6814 80.314 +-125.398 -43.5296 80.035 +-128.793 -43.893 80.7031 +-129.59 -43.3543 79.7127 +-132.932 -43.6513 80.2587 +-134.221 -43.2557 79.5313 +-138.091 -43.6702 80.2934 +-138.213 -42.8845 78.8489 +-139.328 -42.4093 77.9751 +-139.843 -41.7508 76.7644 +-140.174 -41.0414 75.46 +-139.804 -40.1354 73.7943 +-138.808 -39.066 71.828 +-138.997 -38.3424 70.4977 +-141.346 -38.2085 70.2513 +-141.339 -37.4324 68.8243 +-141.138 -36.6137 67.3191 +-140.212 -35.6201 65.4922 +-140.059 -34.8355 64.0497 +-139.71 -34.0116 62.5349 +-140.147 -33.3852 61.3831 +-142.818 -33.2813 61.1921 +-158.855 -36.202 66.5621 +-176.005 -39.2132 72.0987 +-220.666 -48.0477 88.3421 +-225.554 -47.9809 88.2191 +-233.85 -48.5819 89.3243 +-238.227 -48.3144 88.8323 +-243.904 -48.2699 88.7506 +-251.174 -48.4864 89.1486 +-260.517 -49.0306 90.1491 +-264.297 -48.4735 89.1248 +-274.07 -48.9594 90.0183 +-279.934 -48.6808 89.5061 +-289.485 -48.979 90.0543 +-296.798 -48.828 89.7767 +-309.912 -49.5442 91.0935 +-319.555 -49.6087 91.2121 +-329.509 -49.6393 91.2683 +-336.715 -49.1854 90.4338 +-354.188 -50.1271 92.1653 +-362.684 -49.6889 91.3597 +-378.514 -50.1538 92.2144 +-15.165 -1.94147 3.56965 +-16.749 -2.06957 3.80518 +-15.2336 -1.81472 3.3366 +-15.5579 -1.7846 3.28122 +-17.5387 -1.93462 3.55705 +-15.816 -1.67528 3.08022 +-15.0635 -1.5298 2.81274 +-16.2668 -1.58124 2.90732 +-15.2152 -1.41308 2.59813 +-15.0438 -1.33217 2.44937 +-16.2493 -1.36895 2.517 +-15.4847 -1.23807 2.27635 +-16.4944 -1.2482 2.29498 +-15.4286 -1.1017 2.02562 +-14.0618 -0.944232 1.7361 +-14.0785 -0.885565 1.62823 +-14.4912 -0.850123 1.56306 +-14.2081 -0.773447 1.42208 +-15.5145 -0.779099 1.43248 +-13.0397 -0.5999 1.103 +-14.8433 -0.620464 1.14081 +-14.1562 -0.532313 0.978727 +-14.1654 -0.473269 0.870167 +-14.1735 -0.414189 0.761541 +-14.0807 -0.352577 0.64826 +-14.1865 -0.295939 0.544123 +-14.0914 -0.235111 0.432283 +-14.8949 -0.186355 0.342638 +-12.6981 -0.1059 0.194711 +-11.7996 -0.0491992 0.0904593 +93.5 0 0 +94.0964 -0.385818 0.724886 +92.2859 -0.756849 1.42199 +92.6682 -1.14012 2.14208 +92.7435 -1.52166 2.85894 +93.6108 -1.92031 3.60793 +92.4731 -2.277 4.27808 +93.3256 -2.68187 5.03878 +94.17 -3.09391 5.81292 +94.109 -3.4799 6.53813 +94.9374 -3.90247 7.33208 +94.9608 -4.29608 8.07159 +94.9768 -4.69018 8.81203 +95.0848 -5.09003 9.56328 +95.2844 -5.49691 10.3277 +95.377 -5.89961 11.0843 +95.2638 -6.29047 11.8187 +95.0444 -6.67386 12.539 +95.8058 -7.12942 13.3949 +95.5711 -7.51422 14.1179 +95.2309 -7.88948 14.823 +95.0807 -8.27964 15.556 +94.8252 -8.66016 16.271 +94.6607 -9.04863 17.0008 +94.5869 -9.44621 17.7478 +95.2865 -9.92516 18.6477 +95.0985 -10.3155 19.381 +94.9033 -10.705 20.1129 +95.5741 -11.196 21.0353 +95.3625 -11.5874 21.7708 +95.3369 -12.0023 22.5502 +94.9176 -12.3676 23.2367 +95.5494 -12.8729 24.186 +95.3067 -13.2641 24.921 +95.9174 -13.7781 25.8866 +95.5624 -14.1566 26.5979 +95.2959 -14.5479 27.3331 +95.8755 -15.0723 28.3182 +95.4974 -15.4495 29.027 +96.0552 -15.9816 30.0267 +95.6607 -16.3588 30.7354 +96.1962 -16.8985 31.7493 +95.7854 -17.2754 32.4575 +96.5773 -17.8741 33.5823 +96.2417 -18.2694 34.3251 +95.8987 -18.6633 35.0651 +96.3769 -19.221 36.1129 +96.1996 -19.6529 36.9244 +95.8309 -20.0466 37.6641 +95.5459 -20.4582 38.4374 +95.978 -21.0279 39.5078 +95.5838 -21.4206 40.2456 +95.8114 -21.9559 41.2513 +96.2054 -22.5366 42.3423 +95.6941 -22.9088 43.0417 +96.152 -23.5172 44.1848 +95.6232 -23.8885 44.8824 +95.8789 -24.459 45.9542 +95.421 -24.8512 46.6911 +95.7391 -25.4497 47.8156 +95.3494 -25.8648 48.5954 +95.5547 -26.4455 49.6865 +95.6599 -27.0056 50.7389 +95.1546 -27.3968 51.4739 +95.3206 -27.9851 52.5792 +95.3876 -28.5516 53.6435 +95.5246 -29.1463 54.7609 +94.8962 -29.5109 55.4459 +94.2616 -29.8726 56.1255 +94.1976 -30.4176 57.1495 +92.8918 -30.5602 57.4173 +93.2976 -31.2673 58.7458 +93.5224 -31.9248 59.9812 +93.3278 -32.4467 60.9618 +93.2806 -33.0261 62.0503 +93.219 -33.6075 63.1427 +93.1429 -34.1909 64.2388 +93.1304 -34.8055 65.3935 +93.2575 -35.4817 66.6639 +93.2122 -36.1018 67.829 +93.3042 -36.7846 69.1119 +93.3779 -37.4709 70.4013 +93.433 -38.1606 71.6971 +93.6944 -38.9469 73.1746 +93.4876 -39.5496 74.307 +93.1919 -40.1219 75.3822 +90.8341 -39.7975 74.7727 +90.4542 -40.3301 75.7734 +88.1911 -40.0141 75.1796 +88.3004 -40.7694 76.5986 +85.9135 -40.3657 75.8402 +85.3007 -40.7835 76.6251 +83.2895 -40.5233 76.1362 +82.5337 -40.8632 76.775 +80.7486 -40.6846 76.4394 +79.9899 -41.0141 77.0585 +78.4221 -40.9216 76.8846 +77.6591 -41.2415 77.4858 +76.0372 -41.0974 77.2149 +75.271 -41.4076 77.7978 +73.3421 -41.0668 77.1575 +72.7673 -41.4747 77.9239 +69.7916 -40.4935 76.0803 +69.4104 -40.9987 77.0295 +68.831 -41.3928 77.77 +68.4248 -41.8971 78.7175 +66.9218 -41.7258 78.3956 +66.3227 -42.1119 79.121 +64.3037 -41.584 78.1292 +64.0515 -42.1903 79.2683 +62.233 -41.7586 78.4571 +61.0586 -41.7411 78.4243 +59.1067 -41.1719 77.3548 +58.2294 -41.3343 77.66 +55.771 -40.3499 75.8106 +55.3419 -40.8148 76.6839 +53.4689 -40.2034 75.5353 +52.9814 -40.6214 76.3206 +51.3493 -40.1525 75.4395 +50.4493 -40.24 75.604 +48.95 -39.835 74.8431 +48.9961 -40.6885 76.4466 +47.075 -39.9016 74.9681 +46.7138 -40.4234 75.9485 +45.351 -40.074 75.2922 +44.7434 -40.3835 75.8736 +43.1745 -39.8119 74.7996 +42.7011 -40.2397 75.6034 +41.4261 -39.9064 74.9773 +40.9416 -40.3293 75.7717 +39.5571 -39.8568 74.8841 +39.0641 -40.2741 75.668 +37.7045 -39.7888 74.7564 +37.3229 -40.3297 75.7725 +36.338 -40.2217 75.5697 +35.7044 -40.4994 76.0914 +34.2016 -39.773 74.7265 +33.9014 -40.4362 75.9727 +32.719 -40.0474 75.2421 +31.9739 -40.18 75.4913 +30.9186 -39.9122 74.9881 +30.4766 -40.4361 75.9724 +29.0732 -39.671 74.5349 +28.6843 -40.2788 75.6769 +27.6879 -40.0374 75.2233 +26.853 -40.0149 75.1812 +25.9334 -39.8539 74.8786 +25.1922 -39.9587 75.0756 +24.201 -39.654 74.5031 +23.704 -40.1592 75.4522 +22.7243 -39.8464 74.8646 +22.1086 -40.1655 75.4641 +21.144 -39.8443 74.8606 +20.4965 -40.1123 75.3641 +19.4808 -39.6454 74.4869 +19.0034 -40.2742 75.6683 +18.0052 -39.7991 74.7757 +17.3251 -40.0096 75.1711 +16.505 -39.8946 74.9551 +15.8909 -40.2841 75.6869 +14.9337 -39.7925 74.7633 +14.1941 -39.8522 74.8755 +13.3908 -39.7233 74.6331 +12.7116 -39.9625 75.0827 +11.9689 -40.0131 75.1778 +11.2905 -40.2936 75.7047 +10.432 -39.9187 75.0003 +9.73548 -40.1466 75.4286 +8.89537 -39.7645 74.7106 +8.24273 -40.2203 75.5671 +7.41695 -39.8314 74.8363 +6.72394 -40.1413 75.4185 +5.93628 -39.8861 74.9391 +5.23186 -40.1903 75.5107 +4.43286 -39.741 74.6665 +3.73818 -40.2271 75.5797 +2.93854 -39.5365 74.2823 +2.22766 -39.9698 75.0963 +1.46949 -39.5546 74.3163 +0.74001 -39.841 74.8544 +5.15559e-15 -39.5606 74.3276 +-0.747864 -40.2639 75.6488 +-1.46949 -39.5546 74.3163 +-2.24336 -40.2516 75.6258 +-2.93854 -39.5365 74.2823 +-3.73818 -40.2271 75.5797 +-4.45379 -39.9287 75.0192 +-5.25017 -40.331 75.775 +-5.91535 -39.7455 74.6749 +-6.70041 -40.0007 75.1545 +-7.4431 -39.9718 75.1 +-8.21398 -40.0801 75.3035 +-8.86401 -39.6243 74.4472 +-9.82604 -40.5201 76.1302 +-10.4076 -39.8254 74.825 +-11.2253 -40.0607 75.2671 +-11.8854 -39.734 74.6533 +-12.7116 -39.9625 75.0827 +-13.3595 -39.6305 74.4588 +-14.2436 -39.9912 75.1366 +-14.8296 -39.5149 74.2416 +-15.7269 -39.8683 74.9057 +-16.2951 -39.3873 74.0019 +-17.2653 -39.8714 74.9116 +-17.9428 -39.6612 74.5166 +-18.8735 -39.999 75.1512 +-19.5482 -39.7828 74.745 +-20.4965 -40.1123 75.3641 +-21.0956 -39.7532 74.6894 +-22.2838 -40.4839 76.0623 +-22.802 -39.9826 75.1204 +-23.7842 -40.2951 75.7075 +-24.449 -40.0605 75.2668 +-25.4478 -40.3642 75.8373 +-26.0211 -39.9887 75.1319 +-27.3642 -40.7767 76.6124 +-27.7806 -40.1714 75.4752 +-28.8747 -40.5461 76.1792 +-29.7244 -40.5594 76.2042 +-30.8438 -40.9232 76.8877 +-31.4317 -40.5745 76.2324 +-32.4642 -40.7961 76.6488 +-32.934 -40.3105 75.7365 +-34.1946 -40.786 76.6298 +-34.726 -40.3828 75.8723 +-36.2401 -41.1071 77.2331 +-36.7678 -40.6974 76.4634 +-37.6818 -40.7175 76.5011 +-38.4366 -40.5614 76.2079 +-39.6861 -40.9153 76.8729 +-40.3178 -40.6233 76.3242 +-41.8457 -41.2198 77.4449 +-42.2151 -40.6666 76.4055 +-43.6381 -41.1227 77.2624 +-43.9917 -40.5654 76.2154 +-45.6669 -41.217 77.4397 +-46.2899 -40.9037 76.8511 +-47.4773 -41.084 77.1898 +-47.8022 -40.5179 76.1262 +-49.4886 -41.0974 77.2148 +-50.05 -40.7301 76.5249 +-51.9212 -41.414 77.8098 +-52.2249 -40.8371 76.7259 +-53.9741 -41.3825 77.7507 +-54.2107 -40.7612 76.5833 +-55.8254 -41.1714 77.354 +-56.7514 -41.0592 77.1432 +-58.2845 -41.3734 77.7335 +-58.6034 -40.8213 76.6961 +-60.5488 -41.3926 77.7696 +-61.0859 -40.9888 77.0109 +-62.774 -41.3488 77.6873 +-63.3633 -40.9758 76.9865 +-65.3115 -41.4698 77.9147 +-66.0793 -41.2005 77.4086 +-68.2422 -41.7853 78.5074 +-68.4616 -41.1707 77.3526 +-70.9044 -41.8812 78.6876 +-71.4908 -41.4794 77.9326 +-73.5943 -41.946 78.8093 +-73.792 -41.3187 77.6308 +-76.1153 -41.8721 78.6704 +-76.6933 -41.452 77.8811 +-79.3156 -42.1213 79.1386 +-79.6935 -41.585 78.131 +-81.7464 -41.9148 78.7507 +-82.3172 -41.475 77.9243 +-85.2183 -42.1924 79.2722 +-85.3735 -41.5372 78.0413 +-87.7538 -41.9564 78.8288 +-89.1662 -41.894 78.7115 +-91.5814 -42.2842 79.4447 +-92.5071 -41.9724 78.8589 +-95.4593 -42.5618 79.9662 +-95.5879 -41.8803 78.6859 +-98.6477 -42.4708 79.7954 +-99.6557 -42.1591 79.2096 +-102.457 -42.5894 80.0182 +-103.697 -42.3527 79.5734 +-106.761 -42.8413 80.4914 +-108.472 -42.7644 80.3468 +-111.963 -43.364 81.4734 +-114.085 -43.4059 81.5522 +-115.591 -43.1998 81.1649 +-116.232 -42.6663 80.1627 +-120.431 -43.418 81.575 +-121.712 -43.0923 80.9629 +-125.402 -43.5977 81.9126 +-126.126 -43.0542 80.8915 +-130.258 -43.6541 82.0186 +-131.064 -43.1184 81.012 +-135.486 -43.7503 82.1993 +-136.708 -43.3245 81.3993 +-138.008 -42.9179 80.6354 +-138.213 -42.1713 79.2326 +-140.003 -41.906 78.7341 +-140.013 -41.1063 77.2316 +-139.833 -40.2606 75.6427 +-139.375 -39.347 73.9261 +-140.359 -38.8455 72.9841 +-140.643 -38.1511 71.6794 +-141.259 -37.5499 70.5497 +-141.513 -36.8554 69.2449 +-139.556 -35.6012 66.8885 +-140.3 -35.0497 65.8523 +-140.059 -34.2562 64.3615 +-139.621 -33.4247 62.7992 +-145.695 -34.1297 64.1239 +-151.627 -34.7463 65.2823 +-179.885 -40.3128 75.7408 +-215.339 -47.1787 88.6405 +-226.034 -48.3984 90.9322 +-230.67 -48.2532 90.6594 +-236.326 -48.28 90.7097 +-241.633 -48.1902 90.5411 +-252.496 -49.1393 92.3243 +-256.737 -48.7362 91.5669 +-263.029 -48.6803 91.4618 +-267.471 -48.2396 90.6338 +-279.035 -49.0171 92.0947 +-283.411 -48.4655 91.0584 +-295.707 -49.1994 92.4373 +-301.62 -48.7958 91.679 +-317.404 -49.8981 93.7499 +-323.169 -49.3352 92.6924 +-336.853 -49.9014 93.7561 +-340.923 -48.972 92.01 +-362.146 -50.4013 94.6953 +-370.47 -49.9117 93.7755 +-382.947 -49.8976 93.749 +-14.7787 -1.86054 3.49563 +-15.1031 -1.83517 3.44796 +-16.495 -1.9323 3.63046 +-15.0717 -1.70007 3.19415 +-16.272 -1.76504 3.31621 +-16.4018 -1.70843 3.20985 +-16.2373 -1.62158 3.04666 +-15.5808 -1.48937 2.79828 +-14.6262 -1.33578 2.5097 +-14.4538 -1.25864 2.36477 +-15.6584 -1.29724 2.43728 +-15.4847 -1.21748 2.28743 +-15.3092 -1.13924 2.14043 +-15.033 -1.05559 1.98328 +-15.1511 -1.00046 1.87969 +-14.6734 -0.907635 1.70529 +-14.0942 -0.813079 1.52764 +-14.0094 -0.749947 1.40902 +-14.7189 -0.726854 1.36563 +-14.5328 -0.657473 1.23528 +-14.146 -0.58148 1.0925 +-15.3525 -0.567695 1.0666 +-14.0657 -0.46212 0.868244 +-14.0737 -0.404432 0.759858 +-14.0807 -0.346713 0.651415 +-13.687 -0.280771 0.52752 +-13.8915 -0.227921 0.428225 +-14.1951 -0.174646 0.32813 +-12.7981 -0.104958 0.197199 +-11.8995 -0.0487911 0.0916701 +93.9 0 0 +93.2964 -0.376037 0.722146 +94.4856 -0.761718 1.46281 +93.7679 -1.13404 2.17783 +93.8428 -1.51353 2.9066 +93.6108 -1.88767 3.62511 +94.2706 -2.28181 4.38201 +94.9226 -2.68141 5.14941 +94.8683 -3.06389 5.88391 +94.8068 -3.44613 6.61797 +94.7381 -3.82811 7.35153 +95.0603 -4.2275 8.11853 +94.9768 -4.61047 8.854 +95.0848 -5.00353 9.60882 +95.2844 -5.4035 10.3769 +95.2779 -5.79335 11.1256 +95.1648 -6.17711 11.8626 +95.0444 -6.56045 12.5987 +95.707 -7.00106 13.4449 +95.3738 -7.37128 14.1559 +95.2309 -7.75541 14.8936 +94.9824 -8.13053 15.6139 +94.9233 -8.52182 16.3654 +94.6607 -8.89486 17.0818 +95.4672 -9.37209 17.9983 +95.2865 -9.7565 18.7365 +95.0985 -10.1402 19.4733 +94.9033 -10.5231 20.2086 +95.7682 -11.0281 21.1784 +95.3625 -11.3905 21.8744 +95.3369 -11.7983 22.6576 +95.9776 -12.2932 23.608 +95.5494 -12.6541 24.3011 +95.4984 -13.065 25.0901 +95.9174 -13.5439 26.0098 +95.5624 -13.9161 26.7246 +95.2959 -14.3007 27.4632 +95.9704 -14.8308 28.4812 +95.5919 -15.202 29.194 +96.1494 -15.7254 30.1993 +95.8486 -16.1124 30.9424 +96.1962 -16.6113 31.9005 +95.8787 -16.9984 32.6438 +95.5539 -17.3842 33.3847 +96.2417 -17.9589 34.4885 +95.8987 -18.3461 35.232 +96.3769 -18.8943 36.2849 +96.1996 -19.3189 37.1002 +95.8309 -19.7059 37.8434 +95.5459 -20.1105 38.6205 +95.978 -20.6705 39.6959 +95.5838 -21.0566 40.4372 +95.8114 -21.5828 41.4477 +96.2054 -22.1536 42.5439 +95.6941 -22.5195 43.2467 +96.152 -23.1176 44.3952 +95.6232 -23.4826 45.0961 +95.9668 -24.0654 46.2154 +95.421 -24.4289 46.9134 +95.7391 -25.0172 48.0433 +95.2628 -25.4021 48.7825 +95.5547 -25.9961 49.9231 +95.6599 -26.5467 50.9805 +95.2399 -26.9554 51.7654 +95.151 -27.4606 52.7356 +95.3876 -28.0664 53.899 +95.4407 -28.6258 54.9733 +95.5633 -29.2134 56.1016 +95.5051 -29.7524 57.1367 +95.5162 -30.3193 58.2255 +94.0387 -30.4117 58.4029 +93.2162 -30.7091 58.974 +94.2505 -31.6266 60.736 +92.4435 -31.5931 60.6718 +93.2008 -32.437 62.2924 +93.1397 -33.0083 63.3894 +93.2217 -33.6383 64.5994 +93.2086 -34.2428 65.7601 +93.2575 -34.8787 66.9814 +93.2894 -35.5177 68.2085 +93.2276 -36.1298 69.384 +93.2258 -36.7741 70.6214 +93.5085 -37.5424 72.0967 +93.0203 -38.0096 72.994 +93.7106 -38.9703 74.8389 +93.413 -39.5337 75.9209 +92.2968 -39.7512 76.3386 +91.9049 -40.2806 77.3553 +89.1262 -39.7512 76.3386 +89.6556 -40.6916 78.1445 +86.6913 -40.039 76.8912 +86.2118 -40.5186 77.8123 +84.1231 -40.2333 77.2644 +83.9793 -40.8724 78.4917 +81.567 -40.3986 77.5818 +81.2059 -40.9301 78.6025 +79.6265 -40.844 78.4371 +79.4481 -41.4747 79.6483 +77.2181 -41.0264 78.7875 +76.6998 -41.4766 79.652 +75.0776 -41.3242 79.3594 +74.5484 -41.7678 80.2112 +71.8055 -40.954 78.6484 +70.7177 -41.0611 78.8541 +68.831 -40.6894 78.1403 +68.79 -41.405 79.5145 +68.1856 -41.7913 80.2564 +67.9288 -42.3987 81.4229 +66.0671 -41.9983 80.6539 +65.5614 -42.4509 81.5232 +63.4949 -41.8812 80.4291 +62.1914 -41.793 80.2597 +60.3928 -41.3529 79.4144 +59.6644 -41.6332 79.9528 +57.1326 -40.6326 78.0311 +56.4702 -40.9392 78.62 +54.7407 -40.4602 77.7002 +53.9741 -40.6793 78.1209 +52.2249 -40.1431 77.0912 +51.7689 -40.5909 77.9511 +50.25 -40.198 77.1966 +49.9317 -40.7608 78.2774 +47.8992 -39.9102 76.6439 +47.5727 -40.467 77.7133 +46.1491 -40.0863 76.9821 +45.6208 -40.4756 77.7298 +44.2641 -40.1229 77.0525 +43.8612 -40.6305 78.0272 +42.2151 -39.9755 76.7694 +41.7165 -40.3942 77.5735 +40.191 -39.8074 76.4465 +39.935 -40.4722 77.7232 +38.6807 -40.1253 77.057 +38.2799 -40.6609 78.0855 +36.9241 -40.1759 77.1541 +36.3932 -40.5792 77.9286 +35.0632 -40.082 76.9738 +34.6344 -40.6085 77.985 +33.2207 -39.9704 76.7596 +32.6743 -40.3624 77.5123 +31.7053 -40.2321 77.2622 +30.8438 -40.2278 77.2538 +30.0174 -40.2632 77.3218 +29.4141 -40.6017 77.9718 +28.2133 -40.1037 77.0156 +27.6349 -40.4802 77.7385 +26.2842 -39.7067 76.2531 +26.1862 -40.8296 78.4096 +24.6971 -39.7793 76.3925 +24.1583 -40.2334 77.2646 +23.1902 -39.9723 76.7632 +22.7095 -40.5561 77.8844 +21.5794 -39.9739 76.7663 +21.1035 -40.5982 77.9652 +19.8857 -39.7817 76.3972 +19.4579 -40.5367 77.8471 +18.3794 -39.9359 76.6934 +17.7437 -40.2801 77.3542 +16.753 -39.806 76.4439 +16.219 -40.417 77.6171 +15.1942 -39.7985 76.4295 +14.5902 -40.2682 77.3314 +13.688 -39.9149 76.653 +13.0664 -40.3797 77.5455 +12.1776 -40.0192 76.8533 +11.5777 -40.6163 77.9998 +10.5539 -39.6987 76.2377 +9.9732 -40.4281 77.6384 +9.08352 -39.9155 76.6541 +8.3865 -40.2264 77.2512 +7.57383 -39.9826 76.783 +6.86517 -40.2879 77.3693 +6.04091 -39.8994 76.6231 +5.34175 -40.3371 77.4638 +4.50089 -39.6652 76.1735 +3.80361 -40.2356 77.2688 +2.99089 -39.557 75.9657 +2.29048 -40.3986 77.5819 +1.51138 -39.9907 76.7985 +0.763572 -40.411 77.6056 +5.30255e-15 -39.9968 76.8103 +-0.758336 -40.1338 77.0734 +-1.50614 -39.8522 76.5325 +-2.28263 -40.2601 77.3159 +-3.01183 -39.834 76.4975 +-3.8167 -40.374 77.5346 +-4.5637 -40.2187 77.2364 +-5.32343 -40.1988 77.1982 +-6.01998 -39.7612 76.3577 +-6.86517 -40.2879 77.3693 +-7.59998 -40.1207 77.0481 +-8.41526 -40.3644 77.5161 +-9.05216 -39.7777 76.3895 +-10.109 -40.9787 78.6959 +-10.6636 -40.1113 77.03 +-11.5777 -40.6163 77.9998 +-12.1359 -39.882 76.5898 +-12.9777 -40.1056 77.0192 +-13.6411 -39.7781 76.3902 +-14.5902 -40.2682 77.3314 +-15.2984 -40.0715 76.9536 +-16.1096 -40.1445 77.0938 +-16.753 -39.806 76.4439 +-17.8634 -40.5516 77.8758 +-18.2546 -39.6649 76.1729 +-19.5661 -40.7622 78.2801 +-19.9532 -39.9167 76.6565 +-21.1035 -40.5982 77.9652 +-21.6762 -40.1532 77.1105 +-22.6344 -40.422 77.6267 +-23.1902 -39.9723 76.7632 +-24.3989 -40.6339 78.0338 +-25.083 -40.4008 77.5862 +-26.0158 -40.5639 77.8993 +-26.5181 -40.06 76.9316 +-27.695 -40.5683 77.9077 +-28.3987 -40.3673 77.5217 +-29.5093 -40.7331 78.2241 +-30.3755 -40.7436 78.2444 +-31.4446 -41.0114 78.7587 +-31.9105 -40.4925 77.7622 +-33.3047 -41.1411 79.0077 +-33.8658 -40.7466 78.2501 +-35.1841 -41.2531 79.2229 +-35.6251 -40.7243 78.2074 +-36.8141 -41.0486 78.83 +-37.393 -40.686 78.1339 +-38.6388 -41.042 78.8175 +-39.5348 -41.0113 78.7585 +-40.6814 -41.2287 79.1759 +-41.4589 -41.0631 78.8581 +-42.4484 -41.1029 78.9344 +-42.8727 -40.5982 77.9652 +-44.3967 -41.1265 78.9797 +-44.7635 -40.5756 77.9218 +-46.5904 -41.3359 79.3819 +-46.9941 -40.8204 78.3918 +-48.3839 -41.157 79.0384 +-49.3536 -41.122 78.9711 +-50.8674 -41.5245 79.744 +-51.15 -40.9179 78.5792 +-52.7332 -41.347 79.4031 +-53.2034 -40.8953 78.5357 +-54.7578 -41.27 79.2553 +-55.9595 -41.3611 79.4302 +-57.4373 -41.6403 79.9665 +-57.7317 -41.0587 78.8494 +-59.4436 -41.4791 79.6569 +-60.2251 -41.238 79.1938 +-61.8516 -41.5646 79.8211 +-62.7493 -41.3894 79.4846 +-64.4 -41.6989 80.079 +-65.5381 -41.662 80.0081 +-66.5012 -41.5076 79.7117 +-67.644 -41.4593 79.6189 +-69.5206 -41.8447 80.359 +-70.1238 -41.4537 79.6081 +-72.0249 -41.8201 80.3118 +-72.6236 -41.4205 79.5444 +-74.9936 -42.0172 80.6902 +-75.9775 -41.8195 80.3106 +-77.7389 -42.0385 80.7311 +-78.7927 -41.863 80.3941 +-80.7071 -42.1319 80.9105 +-80.9648 -41.5304 79.7554 +-83.9759 -42.3262 81.2837 +-84.1586 -41.6821 80.0467 +-87.008 -42.3464 81.3225 +-87.8048 -41.9942 80.646 +-90.0668 -42.3304 81.2918 +-90.5804 -41.8352 80.3407 +-93.8638 -42.6015 81.8124 +-94.0896 -41.9649 80.5898 +-96.8375 -42.4425 81.5069 +-98.4402 -42.3971 81.4198 +-101.449 -42.9348 82.4523 +-101.588 -42.2462 81.1299 +-104.404 -42.6614 81.9273 +-105.433 -42.3298 81.2906 +-108.738 -42.8932 82.3724 +-110.004 -42.6314 81.8697 +-113.583 -43.244 83.0462 +-114.629 -42.8718 82.3314 +-119.269 -43.8169 84.1464 +-120.25 -43.3914 83.3293 +-123.922 -43.9173 84.3392 +-124.348 -43.2772 83.1099 +-129.662 -44.3128 85.0988 +-129.281 -43.3813 83.3099 +-134.655 -44.3606 85.1905 +-134.669 -43.5513 83.6363 +-137.794 -43.7393 83.9973 +-138.532 -43.1564 82.878 +-139.259 -42.571 81.7537 +-139.723 -41.9075 80.4795 +-140.256 -41.2683 79.2519 +-139.843 -40.3588 77.5054 +-139.066 -39.3592 75.5858 +-139.118 -38.6069 74.1411 +-140.532 -38.2323 73.4216 +-141.855 -37.8261 72.6416 +-140.911 -36.8208 70.711 +-140.551 -35.9828 69.1016 +-140.259 -35.1725 67.5456 +-139.771 -34.324 65.9161 +-140.236 -33.7167 64.7499 +-141.848 -33.3809 64.1049 +-158.851 -36.5791 70.2469 +-163.041 -36.7271 70.5311 +-218.606 -48.1578 92.4827 +-220.777 -47.5482 91.312 +-231.039 -48.6294 93.3883 +-233.685 -48.053 92.2814 +-243.479 -48.8959 93.9001 +-247.8 -48.5804 93.2943 +-258.686 -49.4884 95.0381 +-260.539 -48.6169 93.3644 +-267.402 -48.6483 93.4247 +-273.352 -48.4627 93.0681 +-285.217 -49.2515 94.583 +-290.459 -48.8266 93.767 +-302.305 -49.4427 94.9502 +-308.712 -49.0945 94.2815 +-323.568 -50.0025 96.0252 +-330.017 -49.5245 95.1072 +-342.861 -49.9286 95.8833 +-349.242 -49.3143 94.7037 +-368.474 -50.4103 96.8084 +-377.872 -50.0436 96.1042 +-386.994 -49.5679 95.1906 +-399.217 -49.4048 94.8775 +-15.5872 -1.8618 3.57542 +-15.1366 -1.74304 3.34735 +-16.3358 -1.81135 3.47853 +-15.8822 -1.69349 3.2522 +-15.816 -1.61942 3.10995 +-15.3569 -1.5076 2.89521 +-16.3647 -1.53773 2.95306 +-16.4913 -1.48052 2.84321 +-14.2572 -1.22042 2.34371 +-15.4615 -1.25915 2.41809 +-14.8929 -1.15105 2.21049 +-16.0993 -1.17768 2.26163 +-15.033 -1.03765 1.99272 +-14.4579 -0.938461 1.80223 +-14.376 -0.874124 1.67868 +-13.9949 -0.793637 1.52411 +-13.6119 -0.716285 1.37556 +-14.4206 -0.700018 1.34432 +-14.7319 -0.655153 1.25816 +-14.4448 -0.583676 1.1209 +-15.2528 -0.554422 1.06472 +-13.4671 -0.434936 0.835256 +-15.3713 -0.434214 0.833868 +-13.6812 -0.331153 0.635949 +-15.0856 -0.304203 0.584195 +-13.7916 -0.222436 0.427169 +-13.3954 -0.162006 0.311118 +-11.5982 -0.093502 0.179562 +-11.8995 -0.047962 0.0921067 +94.2 0 0 +93.5964 -0.370694 0.727842 +93.6857 -0.742152 1.45718 +93.8678 -1.11554 2.19031 +93.7429 -1.48566 2.91703 +94.51 -1.8727 3.67697 +94.2706 -2.24218 4.40242 +94.9226 -2.63484 5.17339 +95.0679 -3.017 5.92375 +95.0062 -3.39339 6.66278 +94.9374 -3.76953 7.4013 +94.9608 -4.14972 8.1478 +95.8719 -4.57307 8.97903 +95.0848 -4.91662 9.65358 +94.4904 -5.26539 10.3384 +95.377 -5.69862 11.189 +95.2638 -6.07617 11.9303 +95.0444 -6.4465 12.6574 +95.707 -6.87946 13.5075 +95.3738 -7.24325 14.2218 +95.2309 -7.62071 14.9629 +95.0807 -7.99757 15.7029 +94.9233 -8.3738 16.4416 +94.7587 -8.74944 17.1792 +94.5869 -9.1244 17.9154 +95.2865 -9.58704 18.8237 +95.0985 -9.96404 19.564 +95.0978 -10.3615 20.3444 +95.5741 -10.8146 21.2339 +95.3625 -11.1927 21.9763 +95.1437 -11.5699 22.7171 +95.1103 -11.9705 23.5036 +95.5494 -12.4344 24.4143 +95.3067 -12.8123 25.1563 +95.8217 -13.2954 26.1049 +95.5624 -13.6744 26.849 +95.391 -14.0663 27.6187 +95.9704 -14.5732 28.6138 +95.5919 -14.9379 29.33 +96.0552 -15.4372 30.3102 +95.7547 -15.817 31.056 +95.5406 -16.2115 31.8307 +95.8787 -16.7031 32.7959 +95.5539 -17.0822 33.5402 +96.2417 -17.647 34.6492 +95.9911 -18.0448 35.4303 +95.6405 -18.4243 36.1754 +96.1079 -18.9653 37.2375 +95.8309 -19.3636 38.0197 +95.5459 -19.7612 38.8004 +95.8874 -20.2923 39.8431 +96.3058 -20.8471 40.9325 +95.8114 -21.2079 41.6408 +96.2054 -21.7688 42.7421 +95.7832 -22.149 43.4885 +96.152 -22.716 44.602 +95.7115 -23.096 45.348 +95.8789 -23.6257 46.3881 +95.5085 -24.0266 47.1751 +95.7391 -24.5827 48.2671 +95.2628 -24.9609 49.0097 +95.4685 -25.5215 50.1105 +95.6599 -26.0856 51.218 +95.922 -26.6769 52.379 +95.151 -26.9836 52.9812 +95.5563 -27.6277 54.2457 +95.5246 -28.1534 55.278 +94.9796 -28.5306 56.0186 +95.0077 -29.0833 57.1039 +95.1866 -29.6898 58.2947 +94.5301 -30.0397 58.9816 +93.7861 -30.3602 59.611 +93.846 -30.9439 60.757 +93.167 -31.2874 61.4315 +93.2806 -31.901 62.6362 +93.7744 -32.656 64.1186 +93.2217 -33.0541 64.9003 +93.2086 -33.648 66.0664 +93.2575 -34.2729 67.2934 +93.2894 -34.9008 68.5262 +93.3042 -35.5314 69.7644 +93.2258 -36.1354 70.9503 +93.2821 -36.801 72.2572 +93.245 -37.4397 73.5112 +93.339 -38.1416 74.8893 +92.602 -38.5098 75.6123 +93.0282 -39.3703 77.3019 +92.993 -40.0496 78.6357 +91.572 -40.1326 78.7987 +90.9394 -40.5574 79.6327 +88.6712 -40.2421 79.0136 +87.9641 -40.6241 79.7637 +85.443 -40.1548 78.8422 +86.3197 -41.2817 81.0549 +83.613 -40.6927 79.8983 +83.03 -41.1226 80.7425 +80.6972 -40.6742 79.862 +80.2433 -41.1622 80.8201 +78.8583 -41.1701 80.8358 +78.2585 -41.5844 81.6492 +76.2989 -41.267 81.026 +75.6933 -41.6726 81.8224 +73.7563 -41.336 81.1614 +72.8965 -41.591 81.6621 +70.247 -40.8052 80.1193 +69.7032 -41.2259 80.9453 +68.7273 -41.3917 81.2708 +68.94 -42.2824 83.0198 +66.9487 -41.8195 82.1109 +66.7808 -42.4895 83.4264 +64.6994 -41.9345 82.3367 +63.834 -42.1517 82.7632 +61.3994 -41.3118 81.114 +60.4371 -41.4399 81.3655 +58.5487 -40.9164 80.3377 +57.8672 -41.2233 80.9403 +55.6945 -40.4503 79.4224 +55.3326 -40.9788 80.4602 +53.667 -40.5351 79.5889 +53.19 -40.9807 80.4639 +51.15 -40.2072 78.9452 +50.9166 -40.8428 80.1931 +49.4506 -40.4872 79.4948 +48.4316 -40.482 79.4848 +46.6655 -39.8308 78.2061 +46.6828 -40.6985 79.9097 +45.1267 -40.1943 78.9199 +44.8429 -40.8183 80.1451 +43.1357 -40.1378 78.8088 +42.7067 -40.6348 79.7847 +41.0362 -39.9386 78.4178 +40.8888 -40.7191 79.9502 +39.2908 -40.0503 78.637 +38.878 -40.5789 79.675 +37.393 -39.9794 78.4978 +37.082 -40.6291 79.7735 +35.7375 -40.1432 78.8195 +35.404 -40.7899 80.0893 +34.0808 -40.2931 79.1137 +33.5148 -40.6815 79.8765 +32.2183 -40.173 78.878 +31.4446 -40.2991 79.1256 +30.4732 -40.1646 78.8615 +29.8901 -40.542 79.6026 +28.924 -40.3999 79.3235 +28.1461 -40.5129 79.5454 +27.0151 -40.102 78.7387 +26.3282 -40.338 79.202 +25.3311 -40.0917 78.7184 +24.773 -40.5404 79.5994 +23.6302 -40.0233 78.584 +23.0099 -40.379 79.2824 +21.8697 -39.808 78.1613 +21.4536 -40.5551 79.6281 +20.4705 -40.2405 79.0105 +19.8259 -40.5859 79.6886 +18.8576 -40.2633 79.0553 +18.1425 -40.4699 79.4609 +17.0965 -39.9165 78.3744 +16.6381 -40.7413 79.9938 +15.611 -40.1799 78.8916 +14.8378 -40.2402 79.01 +14.0165 -40.163 78.8583 +13.362 -40.576 79.6693 +12.3864 -39.9982 78.5349 +11.7343 -40.4507 79.4233 +10.7732 -39.82 78.1848 +10.109 -40.267 79.0625 +9.27167 -40.0346 78.6063 +8.55903 -40.3409 79.2076 +7.73071 -40.102 78.7386 +6.98286 -40.2668 79.0621 +6.12462 -39.7496 78.0467 +5.45163 -40.4519 79.4255 +4.6108 -39.9281 78.3971 +3.84287 -39.9448 78.4299 +3.07465 -39.9585 78.4568 +2.3376 -40.5136 79.5467 +1.53756 -39.9768 78.4927 +0.776662 -40.3898 79.3036 +5.39439e-15 -39.9829 78.5047 +-0.776662 -40.3898 79.3036 +-1.53756 -39.9768 78.4927 +-2.32975 -40.3775 79.2795 +-3.08512 -40.0946 78.724 +-3.89521 -40.4889 79.4982 +-4.6108 -39.9281 78.3971 +-5.43332 -40.316 79.1587 +-6.20833 -40.2929 79.1134 +-6.98286 -40.2668 79.0621 +-7.67842 -39.8307 78.206 +-8.58778 -40.4764 79.4737 +-9.27167 -40.0346 78.6063 +-10.2675 -40.8982 80.302 +-10.8464 -40.0902 78.7155 +-11.7996 -40.6757 79.865 +-12.3447 -39.8634 78.2701 +-13.4063 -40.7107 79.9337 +-13.8288 -39.6251 77.8021 +-15.0688 -40.8669 80.2404 +-15.5068 -39.9117 78.365 +-16.6381 -40.7413 79.9938 +-17.0965 -39.9165 78.3744 +-18.282 -40.7812 80.0722 +-18.7952 -40.1301 78.7938 +-19.8475 -40.6302 79.7756 +-20.3356 -39.9752 78.4896 +-21.4069 -40.4668 79.4548 +-22.16 -40.3364 79.1989 +-23.2853 -40.8623 80.2313 +-23.8372 -40.374 79.2726 +-25.0937 -41.0652 80.6298 +-25.4689 -40.3099 79.1468 +-26.5554 -40.6861 79.8855 +-27.2783 -40.4926 79.5055 +-28.5069 -41.0323 80.5652 +-29.0167 -40.5294 79.5777 +-30.3661 -41.1876 80.8701 +-30.8639 -40.6796 79.8726 +-31.8118 -40.7697 80.0495 +-32.5945 -40.6421 79.7991 +-33.83 -41.0641 80.6277 +-34.2958 -40.5473 79.6128 +-35.7339 -41.17 80.8355 +-36.2619 -40.7323 79.9762 +-37.4264 -41.0064 80.5144 +-37.7446 -40.3554 79.2361 +-39.197 -40.9119 80.3287 +-39.9822 -40.7551 80.0208 +-41.262 -41.0907 80.6799 +-41.9237 -40.8024 80.1137 +-43.4386 -41.3312 81.152 +-43.881 -40.8312 80.1704 +-45.646 -41.5494 81.5805 +-45.8076 -40.8009 80.1109 +-47.2369 -41.1815 80.8582 +-48.0269 -40.9929 80.4878 +-49.5768 -41.4393 81.3642 +-50.0808 -41.0032 80.508 +-51.7537 -41.5143 81.5115 +-52.4 -41.1898 80.8745 +-54.0528 -41.6455 81.7691 +-54.388 -41.0797 80.6583 +-56.6911 -41.985 82.4357 +-56.9133 -41.3355 81.1604 +-58.3507 -41.5678 81.6166 +-58.9844 -41.2209 80.9355 +-61.2098 -41.9697 82.4057 +-61.2316 -41.199 80.8924 +-63.041 -41.6281 81.735 +-63.8391 -41.3769 81.2417 +-65.9098 -41.9353 82.3382 +-66.9487 -41.8195 82.1109 +-68.2857 -41.8812 82.2319 +-68.9078 -41.5004 81.4843 +-70.9816 -41.982 82.4299 +-71.7861 -41.6993 81.8748 +-73.7057 -42.0527 82.5687 +-74.3227 -41.6534 81.7847 +-76.3294 -42.0228 82.5101 +-77.1345 -41.7189 81.9133 +-79.4924 -42.2401 82.9366 +-79.7112 -41.6154 81.7101 +-81.7011 -41.9099 82.2884 +-83.1729 -41.9221 82.3122 +-84.9892 -42.093 82.6478 +-86 -41.8543 82.1792 +-88.2471 -42.2035 82.8647 +-89.3331 -41.983 82.4318 +-91.6088 -42.3073 83.0686 +-92.2067 -41.8466 82.1641 +-95.6469 -42.6568 83.7548 +-95.7441 -41.9611 82.3889 +-99.6664 -42.9237 84.2788 +-99.3178 -42.0321 82.5283 +-102.998 -42.8329 84.1007 +-103.594 -42.3323 83.1176 +-106.951 -42.9428 84.3164 +-108.603 -42.8452 84.1246 +-112.54 -43.6218 85.6496 +-113.068 -43.0578 84.5422 +-116.901 -43.7342 85.8703 +-117.971 -43.3552 85.1261 +-123.339 -44.525 87.4229 +-124.19 -44.0348 86.4604 +-128.444 -44.7293 87.8241 +-128.82 -44.055 86.5002 +-132.717 -44.569 87.5093 +-133.569 -44.0416 86.4739 +-136.69 -44.2489 86.8809 +-137.699 -43.758 85.9169 +-137.876 -43.0053 84.4391 +-138.615 -42.4323 83.3139 +-139.676 -41.9568 82.3803 +-139.89 -41.229 80.9514 +-139.834 -40.4296 79.3818 +-139.589 -39.5856 77.7247 +-139.833 -38.889 76.357 +-140.061 -38.1935 74.9913 +-141.48 -37.8216 74.2611 +-140.989 -36.9422 72.5344 +-140.649 -36.1142 70.9087 +-140.551 -35.3578 69.4235 +-139.82 -34.4533 67.6477 +-139.329 -33.6213 66.0139 +-143.252 -33.8436 66.4504 +-153.164 -35.4177 69.5412 +-183.104 -41.4315 81.3491 +-211.936 -46.912 92.1098 +-224.383 -48.5717 95.3685 +-228.027 -48.2567 94.75 +-234.497 -48.4995 95.2268 +-240.902 -48.6765 95.5743 +-248.707 -49.0782 96.3629 +-254.059 -48.9425 96.0965 +-260.996 -49.0632 96.3335 +-263.227 -48.2658 94.7679 +-274.008 -48.9847 96.1793 +-279.887 -48.7596 95.7374 +-292.148 -49.5724 97.3333 +-296.285 -48.9411 96.0938 +-308.244 -49.5384 97.2665 +-317.316 -49.5865 97.3609 +-327.361 -49.7104 97.6042 +-335.247 -49.4353 97.0642 +-344.864 -49.3477 96.8922 +-357.849 -49.6518 97.4892 +-376.145 -50.5658 99.2839 +-382.294 -49.7498 97.6817 +-394.414 -49.6409 97.4679 +-410.036 -49.8624 97.9027 +-428.212 -50.259 98.6815 +-14.9426 -1.69081 3.31983 +-15.5579 -1.69513 3.32832 +-16.6617 -1.74575 3.4277 +-15.1326 -1.52253 2.98942 +-16.7263 -1.61351 3.16807 +-16.6587 -1.53816 3.02011 +-16.295 -1.43749 2.82245 +-16.4204 -1.38117 2.71187 +-15.6584 -1.25304 2.4603 +-15.0902 -1.14604 2.2502 +-15.2104 -1.09333 2.14671 +-15.033 -1.01963 2.002 +-14.4579 -0.922161 1.81062 +-14.376 -0.858942 1.6865 +-14.4912 -0.807504 1.5855 +-14.1087 -0.729535 1.43241 +-14.0228 -0.668885 1.31333 +-14.0351 -0.613326 1.20424 +-15.2418 -0.60518 1.18825 +-15.5519 -0.555476 1.09065 +-14.7639 -0.468539 0.919957 +-14.8722 -0.412819 0.810552 +-13.9808 -0.332526 0.652901 +-13.8868 -0.275164 0.540273 +-14.1913 -0.224908 0.441598 +-13.2954 -0.158004 0.310234 +-12.7981 -0.101383 0.199061 +-3276.18 -12.9755 25.4768 +94.5 0 0 +93.7964 -0.36489 0.73272 +93.8857 -0.730529 1.46694 +94.7675 -1.10622 2.22136 +94.7423 -1.47484 2.96156 +95.4091 -1.85695 3.72886 +94.3705 -2.2047 4.42716 +95.0224 -2.59077 5.20242 +94.9681 -2.96032 5.94449 +95.1059 -3.33663 6.70016 +95.9335 -3.74144 7.51304 +95.0603 -4.08031 8.1935 +95.1757 -4.45928 8.95449 +95.2835 -4.83943 9.71787 +95.4829 -5.22619 10.4945 +95.377 -5.59743 11.24 +95.3628 -5.97447 11.9971 +95.1433 -6.33862 12.7283 +95.9045 -6.77125 13.5971 +95.6697 -7.1367 14.3309 +95.5264 -7.50861 15.0777 +95.1791 -7.86367 15.7907 +95.0215 -8.23362 16.5336 +94.8567 -8.60294 17.2752 +94.6847 -8.97164 18.0156 +95.3841 -9.42647 18.9289 +95.196 -9.79713 19.6732 +95.195 -10.1879 20.4579 +95.6712 -10.6333 21.3523 +95.4594 -11.0051 22.0989 +95.2403 -11.376 22.8437 +95.8812 -11.8533 23.8021 +95.6455 -12.2258 24.5501 +95.3067 -12.5847 25.2709 +95.0567 -12.955 26.0144 +95.6578 -13.445 26.9983 +95.391 -13.8166 27.7445 +95.9704 -14.3144 28.7442 +95.6865 -14.6872 29.4928 +96.0552 -15.163 30.4483 +95.8486 -15.5514 31.2281 +95.5406 -15.9237 31.9756 +95.9721 -16.4225 32.9773 +95.6469 -16.7952 33.7257 +96.3344 -17.3503 34.8405 +95.9911 -17.7244 35.5917 +95.7325 -18.1146 36.3751 +96.2913 -18.6641 37.4785 +95.9223 -19.0379 38.2292 +95.5459 -19.4103 38.9771 +96.0686 -19.9697 40.1002 +96.3058 -20.4769 41.1189 +95.9013 -20.8508 41.8697 +96.3844 -21.422 43.0166 +95.9614 -21.7961 43.7679 +96.2407 -22.3332 44.8465 +95.7115 -22.6859 45.5545 +96.0547 -23.2488 46.6849 +95.5085 -23.5999 47.39 +95.8262 -24.1681 48.531 +95.3494 -24.54 49.2777 +94.9515 -24.9326 50.0661 +95.7456 -25.6454 51.4975 +95.2399 -26.0169 52.2434 +95.4054 -26.5753 53.3648 +95.6406 -27.161 54.541 +94.9375 -27.4835 55.1884 +95.1464 -28.0732 56.3726 +95.1735 -28.6167 57.4641 +94.5273 -28.9606 58.1547 +95.1036 -29.6852 59.6096 +95.1701 -30.2611 60.7662 +94.2505 -30.5254 61.2968 +93.9709 -30.9969 62.2437 +93.2806 -31.3345 62.9215 +93.457 -31.9675 64.1927 +93.4581 -32.5495 65.3612 +93.3652 -33.106 66.4788 +93.3352 -33.6924 67.6563 +93.3666 -34.3094 68.8952 +93.3808 -34.9291 70.1398 +93.3779 -35.5516 71.3897 +93.2066 -36.1182 72.5276 +93.3199 -36.8044 73.9054 +93.4876 -37.5239 75.3502 +93.4868 -38.1873 76.6824 +93.6133 -38.9144 78.1424 +93.5008 -39.5532 79.4252 +93.5861 -40.2871 80.8988 +93.1505 -40.8058 81.9404 +90.6511 -40.4101 81.1458 +89.2958 -40.5068 81.3401 +87.8048 -40.532 81.3907 +87.2834 -41.0014 82.3332 +84.636 -40.4591 81.2442 +84.7866 -41.2469 82.8262 +82.3031 -40.747 81.8223 +81.8998 -41.2659 82.8643 +80.1048 -41.0783 82.4876 +79.2976 -41.3883 83.1102 +77.9701 -41.422 83.1779 +77.7288 -42.0333 84.4054 +75.3297 -41.468 83.2703 +74.7018 -41.8642 84.0657 +72.5865 -41.4155 83.1647 +71.773 -41.6963 83.7286 +69.5096 -41.1195 82.5703 +68.8805 -41.4958 83.326 +68.1831 -41.8343 84.0057 +68.2326 -42.6423 85.6283 +65.9039 -41.9567 84.2515 +65.7031 -42.6156 85.5746 +62.7974 -41.5021 83.3388 +62.1481 -41.8564 84.05 +59.8558 -41.0871 82.5054 +59.1567 -41.3936 83.1208 +57.3903 -40.9417 82.2133 +56.3253 -40.9733 82.2769 +55.1091 -40.8852 82.0999 +54.3066 -41.098 82.5272 +52.45 -40.497 81.3204 +52.2461 -41.1651 82.6619 +50.4687 -40.587 81.501 +50.054 -41.0952 82.5215 +48.0739 -40.3043 80.9334 +47.791 -40.9247 82.1793 +45.9438 -40.1956 80.7151 +45.6907 -40.8515 82.0322 +44.1001 -40.3065 80.9378 +43.8691 -40.9995 82.3295 +42.3463 -40.4818 81.2899 +41.6767 -40.7667 81.862 +40.1449 -40.1942 80.7124 +39.9547 -40.9621 82.2543 +38.5652 -40.5004 81.3273 +38.1153 -41.0196 82.3698 +36.5616 -40.3397 81.0044 +36.0637 -40.8122 81.9533 +34.7617 -40.3683 81.0619 +34.1802 -40.7525 81.8334 +33.0733 -40.5069 81.3403 +32.2791 -40.634 81.5955 +31.2871 -40.5051 81.3367 +30.493 -40.6253 81.578 +29.4184 -40.3608 81.0469 +28.8978 -40.8564 82.042 +27.5707 -40.1999 80.7237 +27.1235 -40.8185 81.966 +25.7721 -40.0655 80.4538 +25.2808 -40.6367 81.6008 +24.3549 -40.5182 81.3629 +23.6859 -40.8272 81.9834 +22.4504 -40.1392 80.6019 +22.0139 -40.8752 82.0798 +21.0329 -40.6118 81.5509 +20.3453 -40.9097 82.149 +19.1695 -40.2024 80.7288 +18.6409 -40.8433 82.0158 +17.5544 -40.2579 80.8402 +16.875 -40.5876 81.5024 +15.9409 -40.3006 80.9259 +15.2669 -40.6688 81.6653 +14.2512 -40.1102 80.5437 +13.5985 -40.5609 81.4488 +12.7622 -40.4799 81.2859 +12.0737 -40.8815 82.0925 +11.1023 -40.3075 80.9399 +10.4147 -40.7478 81.8239 +9.45983 -40.1217 80.5668 +8.81781 -40.8226 81.9742 +7.88759 -40.1892 80.7023 +7.1947 -40.7516 81.8317 +6.35481 -40.5113 81.349 +5.61647 -40.9349 82.1997 +4.7521 -40.421 81.1678 +3.98681 -40.7051 81.7383 +3.13048 -39.9618 80.2456 +2.37687 -40.4626 81.2513 +1.57072 -40.1137 80.5507 +0.800223 -40.8761 82.0816 +5.51073e-15 -40.1198 80.563 +-0.804587 -41.099 82.5292 +-1.57072 -40.1137 80.5507 +-2.41351 -41.0865 82.504 +-3.14095 -40.0954 80.514 +-4.03479 -41.1951 82.7221 +-4.7521 -40.421 81.1678 +-5.59815 -40.8014 81.9317 +-6.39667 -40.7781 81.8848 +-7.25747 -41.1072 82.5457 +-7.99218 -40.7221 81.7724 +-8.83698 -40.9113 82.1523 +-9.51209 -40.3434 81.0119 +-10.4373 -40.8363 82.0018 +-11.1389 -40.4402 81.2063 +-12.1128 -41.0141 82.3588 +-12.6648 -40.1708 80.6654 +-13.7758 -41.09 82.5111 +-14.2981 -40.2423 80.8089 +-15.2174 -40.5369 81.4004 +-16.0104 -40.4762 81.2785 +-17.039 -40.9821 82.2945 +-17.5926 -40.3454 81.016 +-18.7007 -40.9744 82.2789 +-19.0863 -40.028 80.3785 +-20.1722 -40.5615 81.4499 +-20.8755 -40.3077 80.9403 +-22.0139 -40.8752 82.0798 +-22.6439 -40.4852 81.2968 +-23.9113 -41.2156 82.7634 +-24.3808 -40.5613 81.4494 +-25.6014 -41.1522 82.636 +-26.0477 -40.4939 81.3142 +-27.4643 -41.3314 82.9959 +-28.1554 -41.0525 82.4357 +-29.0783 -41.1114 82.5542 +-29.8819 -40.9968 82.3239 +-31.0641 -41.3862 83.106 +-31.7755 -41.1374 82.6063 +-32.8466 -41.3484 83.0299 +-33.2444 -40.7163 81.7608 +-34.6355 -41.2953 82.9234 +-35.1917 -40.8677 82.0647 +-36.6135 -41.4343 83.2025 +-36.8613 -40.6703 81.6684 +-38.3449 -41.2667 82.8659 +-38.7996 -40.7466 81.8217 +-40.5129 -41.5344 83.4036 +-40.755 -40.8051 81.9391 +-42.5061 -41.578 83.491 +-42.6844 -40.805 81.9389 +-44.6871 -41.764 83.8647 +-44.8015 -40.9476 82.2251 +-46.7169 -41.769 83.8747 +-47.2604 -41.3474 83.0281 +-48.8992 -41.8737 84.0849 +-49.1537 -41.2096 82.7513 +-50.9128 -41.8003 83.9375 +-51.3413 -41.2888 82.9103 +-52.837 -41.6307 83.5968 +-54.1 -41.771 83.8785 +-55.3217 -41.8662 84.0698 +-55.7786 -41.3819 83.0973 +-57.8928 -42.1136 84.5665 +-57.8672 -41.2819 82.8966 +-60.285 -42.1831 84.7062 +-60.4549 -41.4984 83.3312 +-62.6448 -42.1909 84.7218 +-62.7414 -41.4652 83.2646 +-64.8535 -42.0645 84.468 +-65.3877 -41.628 83.5916 +-67.0712 -41.9165 84.1707 +-68.0655 -41.7622 83.8609 +-69.7727 -42.0333 84.4053 +-70.7734 -41.8671 84.0715 +-72.6252 -42.1914 84.7228 +-72.4018 -41.3101 82.9531 +-75.3865 -42.2479 84.8362 +-75.7702 -41.7105 83.7572 +-78.2376 -42.3085 84.958 +-78.5486 -41.7294 83.795 +-81.4408 -42.5069 85.3564 +-81.0233 -41.5493 83.4334 +-83.5564 -42.1006 84.5404 +-84.2435 -41.7077 83.7514 +-87.7592 -42.693 85.7301 +-88.1824 -42.1544 84.6484 +-90.7251 -42.6181 85.5797 +-90.8613 -41.9429 84.2238 +-93.9919 -42.6371 85.6178 +-94.1866 -41.9861 84.3106 +-98.2146 -43.0242 86.3951 +-98.4057 -42.3618 85.065 +-102.06 -43.1741 86.6961 +-102.463 -42.593 85.5293 +-106.02 -43.3071 86.9632 +-106.864 -42.893 86.1317 +-110.471 -43.5686 87.4883 +-110.867 -42.9617 86.2696 +-114.593 -43.6289 87.6094 +-115.443 -43.1815 86.7109 +-121.145 -44.5171 89.393 +-122.245 -44.1283 88.6122 +-126.078 -44.7055 89.7714 +-126.949 -44.2134 88.7832 +-131.3 -44.9119 90.1858 +-131.935 -44.319 88.9951 +-134.646 -44.4139 89.1858 +-135.996 -44.0457 88.4463 +-139.132 -44.2397 88.836 +-138.355 -43.1855 86.719 +-139.772 -42.8224 85.9898 +-139.527 -41.953 84.244 +-140.009 -41.3102 82.9532 +-140.058 -40.5454 81.4176 +-140.003 -39.7595 79.8395 +-139.589 -38.8827 78.0787 +-141.709 -38.7109 77.7337 +-141.947 -38.0204 76.3471 +-141.049 -37.0369 74.3722 +-140.902 -36.2639 72.82 +-139.953 -35.2973 70.8791 +-140.202 -34.6435 69.5662 +-140.523 -34.0117 68.2975 +-142.066 -33.673 67.6174 +-159.928 -37.1123 74.5237 +-163.945 -37.2376 74.7753 +-221.496 -49.2288 98.8544 +-223.53 -48.5998 97.5913 +-230.701 -49.0527 98.5008 +-233.193 -48.4737 97.338 +-243.142 -49.3947 99.1874 +-245.744 -48.7732 97.9396 +-254.576 -49.3443 99.0862 +-258.754 -48.9618 98.3182 +-265.893 -49.096 98.5876 +-268.512 -48.3605 97.1106 +-279.59 -49.0951 98.5858 +-286.796 -49.0759 98.5474 +-296.925 -49.4883 99.3754 +-301.641 -48.9409 98.2761 +-316.728 -49.9978 100.399 +-322.8 -49.5476 99.4944 +-333.525 -49.7468 99.8945 +-342.571 -49.6184 99.6367 +-355.641 -49.9862 100.375 +-366.169 -49.9042 100.211 +-382.281 -50.4783 101.363 +-387.677 -49.5547 99.5087 +-407.905 -50.4271 101.261 +-417.763 -49.8997 100.202 +-436.344 -50.304 101.013 +-445.075 -49.4678 99.3342 +-19.4474 -2.08129 4.17935 +-15.395 -1.58439 3.18155 +-16.4994 -1.63057 3.27429 +-17.3132 -1.64047 3.29417 +-17.0507 -1.5464 3.10526 +-16.0987 -1.39495 2.80115 +-15.7321 -1.29978 2.61004 +-16.4463 -1.29271 2.59585 +-16.1751 -1.20662 2.42296 +-14.1239 -0.997205 2.00245 +-15.9232 -1.06083 2.1302 +-13.6657 -0.856153 1.71921 +-15.5657 -0.913511 1.83438 +-13.6971 -0.749706 1.50545 +-14.9036 -0.75695 1.52 +-14.8184 -0.694283 1.39416 +-14.3337 -0.615251 1.23546 +-13.7475 -0.536157 1.07664 +-14.9538 -0.524629 1.05349 +-14.2652 -0.44467 0.892923 +-14.8722 -0.405488 0.814244 +-14.3803 -0.335954 0.674615 +-14.2864 -0.278056 0.558353 +-13.6917 -0.213136 0.427989 +-14.595 -0.170368 0.342109 +-3275.8 -25.4892 51.1837 +-3276.58 -12.7466 25.5959 +94.3 0 0 +94.6964 -0.361701 0.743044 +94.7856 -0.724138 1.4876 +94.6675 -1.08499 2.22891 +94.6423 -1.44653 2.97161 +95.3092 -1.82132 3.74154 +95.2693 -2.18527 4.48922 +95.0224 -2.54372 5.22558 +95.8659 -2.93404 6.02741 +94.9065 -3.26917 6.71588 +95.1366 -3.64298 7.4838 +95.1599 -4.0104 8.2386 +95.1757 -4.3783 8.99436 +95.2835 -4.75155 9.76114 +95.4829 -5.13128 10.5412 +95.4761 -5.50152 11.3018 +95.3628 -5.86597 12.0505 +95.9345 -6.27525 12.8913 +95.0156 -6.58666 13.531 +95.6697 -7.00709 14.3947 +95.5264 -7.37225 15.1449 +95.1791 -7.72086 15.861 +94.9233 -8.07574 16.59 +94.7587 -8.438 17.3342 +95.7607 -8.90882 18.3014 +95.5794 -9.27419 19.052 +95.196 -9.61922 19.7608 +95.195 -10.0029 20.549 +95.6712 -10.4402 21.4474 +95.4594 -10.8052 22.1973 +96.013 -11.26 23.1316 +95.8812 -11.638 23.9081 +95.6455 -12.0038 24.6595 +95.3067 -12.3562 25.3834 +95.9174 -12.8349 26.3669 +95.6578 -13.2008 27.1185 +95.4861 -13.5792 27.8958 +95.9704 -14.0545 28.8722 +95.6865 -14.4205 29.6241 +96.1494 -14.9023 30.6139 +95.7547 -15.254 31.3364 +96.2899 -15.7571 32.3699 +95.9721 -16.1242 33.1241 +96.6704 -16.6667 34.2384 +96.3344 -17.0352 34.9956 +95.9911 -17.4025 35.7501 +95.7325 -17.7856 36.5371 +96.2913 -18.3251 37.6454 +95.9223 -18.6922 38.3994 +95.6369 -19.076 39.188 +95.978 -19.5885 40.2409 +95.674 -19.9732 41.0311 +95.9013 -20.4722 42.0561 +95.4895 -20.8377 42.807 +95.9614 -21.4003 43.9628 +96.2407 -21.9277 45.0462 +95.7115 -22.2739 45.7574 +96.0547 -22.8266 46.8928 +95.5959 -23.1926 47.6447 +95.8262 -23.7292 48.7471 +95.3494 -24.0943 49.4971 +95.6408 -24.6575 50.6541 +95.8313 -25.2022 51.7731 +95.3252 -25.5673 52.523 +95.4054 -26.0927 53.6025 +94.8815 -26.4561 54.349 +94.9375 -26.9844 55.4342 +95.7301 -27.7325 56.9711 +95.1735 -28.097 57.7199 +95.269 -28.6578 58.872 +95.3493 -29.2215 60.0298 +95.4143 -29.7879 61.1934 +95.464 -30.357 62.3625 +94.4532 -30.5903 62.8418 +93.4404 -30.8182 63.3099 +93.7744 -31.4936 64.6975 +93.3005 -31.9044 65.5415 +93.2869 -32.4775 66.7188 +93.1798 -33.0254 67.8443 +93.4437 -33.7142 69.2592 +93.3808 -34.2948 70.4521 +93.3779 -34.906 71.7076 +93.3576 -35.5198 72.9685 +93.3199 -36.136 74.2345 +93.2647 -36.7546 75.5053 +93.3393 -37.4347 76.9024 +93.467 -38.148 78.3677 +93.5008 -38.8349 79.7789 +93.3703 -39.4642 81.0716 +93.1505 -40.0647 82.3052 +92.3481 -40.419 83.033 +92.0995 -41.0199 84.2675 +89.4025 -40.52 83.2406 +89.0042 -41.0505 84.3303 +86.8866 -40.7807 83.776 +86.9485 -41.5305 85.3163 +84.0428 -40.8527 83.9239 +83.4239 -41.2705 84.7822 +81.4169 -40.993 84.2121 +81.181 -41.6019 85.463 +79.6414 -41.5416 85.3391 +78.8101 -41.8442 85.9607 +77.4693 -41.8715 86.0168 +76.0713 -41.8575 85.9881 +74.495 -41.7326 85.7315 +72.6861 -41.4599 85.1714 +70.954 -41.2116 84.6613 +69.7727 -41.27 84.7812 +68.5945 -41.3224 84.889 +68.1165 -41.7967 85.8632 +67.2805 -42.0552 86.3943 +65.7598 -41.8778 86.0298 +63.9157 -41.4742 85.2007 +62.9208 -41.6072 85.474 +61.3808 -41.3688 84.9842 +60.4999 -41.5647 85.3867 +58.874 -41.2375 84.7144 +58.0496 -41.4608 85.1731 +56.2937 -41.0056 84.2381 +55.9307 -41.5584 85.3738 +54.05 -40.9745 84.1742 +53.428 -41.3318 84.9081 +51.8746 -40.96 84.1445 +50.9128 -41.0412 84.3113 +49.6701 -40.8863 83.9931 +49.0377 -41.2298 84.6986 +47.3966 -40.7135 83.6381 +46.9846 -41.2455 84.731 +45.5906 -40.912 84.0459 +44.9454 -41.2426 84.725 +43.4452 -40.778 83.7705 +42.8378 -41.1416 84.5174 +41.2838 -40.5839 83.3718 +40.9515 -41.2217 84.682 +39.5811 -40.8125 83.8413 +38.9954 -41.2047 84.6471 +37.1984 -40.297 82.7824 +36.8334 -40.9262 84.075 +35.5859 -40.575 83.3534 +35.0908 -41.0784 84.3875 +33.518 -40.306 82.8008 +33.3473 -41.2164 84.671 +32.1336 -40.8456 83.9093 +31.5084 -41.2157 84.6698 +30.1601 -40.6269 83.4601 +29.7699 -41.3249 84.8941 +28.5355 -40.8511 83.9206 +27.8903 -41.2103 84.6586 +26.5439 -40.5159 83.2321 +25.9221 -40.911 84.0437 +24.8725 -40.6279 83.4622 +24.2869 -41.1027 84.4376 +23.031 -40.4295 83.0547 +22.5742 -41.1543 84.5436 +21.4603 -40.6846 83.5786 +20.9297 -41.3205 84.8849 +19.9179 -41.0135 84.2544 +19.1593 -41.2167 84.6718 +18.0505 -40.6439 83.495 +17.2942 -40.8404 83.8987 +16.375 -40.6463 83.4999 +15.762 -41.2253 84.6894 +14.611 -40.3761 82.9449 +13.9828 -40.9498 84.1235 +13.0962 -40.7849 83.7847 +12.3478 -41.0504 84.3301 +11.3826 -40.5747 83.3528 +10.6751 -41.008 84.2429 +9.76296 -40.6554 83.5187 +9.09576 -41.3447 84.9346 +8.14035 -40.7238 83.6592 +7.42223 -41.277 84.7956 +6.4176 -40.1685 82.5185 +5.75688 -41.1963 84.6298 +4.85678 -40.5611 83.3249 +4.11331 -41.234 84.7073 +3.23867 -40.592 83.3885 +2.44754 -40.9091 84.0399 +1.61958 -40.6106 83.4266 +0.82553 -41.403 85.0545 +5.7434e-15 -41.0545 84.3384 +-0.818549 -41.0529 84.3352 +-1.61958 -40.6106 83.4266 +-2.47634 -41.3904 85.0286 +-3.23867 -40.592 83.3885 +-4.11331 -41.234 84.7073 +-4.84108 -40.43 83.0556 +-5.77519 -41.3274 84.8991 +-6.52223 -40.8234 83.8639 +-7.39869 -41.1461 84.5266 +-8.14906 -40.7674 83.7488 +-9.12452 -41.4754 85.2031 +-9.82568 -40.9166 84.0553 +-10.7769 -41.3993 85.0469 +-11.4923 -40.9657 84.156 +-12.4653 -41.4409 85.1324 +-13.2075 -41.1317 84.497 +-14.0271 -41.0797 84.3902 +-14.7518 -40.7652 83.7441 +-15.663 -40.9663 84.1573 +-16.4792 -40.9049 84.0312 +-17.2942 -40.8404 83.8987 +-17.936 -40.3861 82.9655 +-18.9798 -40.8307 83.8788 +-19.6477 -40.457 83.111 +-20.9297 -41.3205 84.8849 +-21.3479 -40.4713 83.1405 +-22.6442 -41.282 84.8059 +-23.2971 -40.8967 84.0143 +-24.4621 -41.3993 85.0469 +-24.9243 -40.7125 83.6359 +-26.1894 -41.3327 84.9101 +-26.792 -40.8945 84.0099 +-28.0891 -41.5041 85.2621 +-28.6232 -40.9766 84.1786 +-30.0104 -41.6589 85.5801 +-30.4073 -40.9599 84.1442 +-31.9208 -41.7554 85.7783 +-32.3289 -41.0938 84.4194 +-33.8814 -41.8765 86.0271 +-34.1336 -41.0463 84.3216 +-35.6861 -41.7753 85.8192 +-35.801 -40.8202 83.8571 +-37.2365 -41.3741 84.9952 +-37.9851 -41.1492 84.533 +-39.7225 -41.973 86.2254 +-39.6201 -40.8528 83.9241 +-41.5895 -41.8639 86.0013 +-41.8125 -41.1037 84.4396 +-43.8331 -42.0974 86.481 +-43.91 -41.2144 84.667 +-45.8925 -42.1117 86.5104 +-46.029 -41.3054 84.854 +-47.9663 -42.1073 86.5012 +-48.4408 -41.6105 85.4807 +-50.1921 -42.2003 86.6924 +-50.609 -41.6592 85.5809 +-52.726 -42.5029 87.3139 +-52.9412 -41.8022 85.8746 +-54.7083 -42.3222 86.9428 +-55.1 -41.7705 85.8094 +-57.2503 -42.539 87.3881 +-57.6328 -41.981 86.2419 +-59.7216 -42.655 87.6264 +-59.7749 -41.8685 86.0106 +-61.682 -42.3768 87.055 +-62.2522 -41.9561 86.1906 +-64.3559 -42.5562 87.4234 +-64.7545 -42.0185 86.3189 +-66.5527 -42.3827 87.0671 +-66.7643 -41.7326 85.7315 +-69.2779 -42.5093 87.3271 +-69.5938 -41.9244 86.1255 +-72.033 -42.607 87.5277 +-72.6391 -42.1904 86.6719 +-74.695 -42.6058 87.5254 +-75.4801 -42.2844 86.8651 +-77.5031 -42.6453 87.6065 +-78.2875 -42.3137 86.9252 +-80.4003 -42.6885 87.6952 +-80.6056 -42.0445 86.3723 +-83.6489 -42.8666 88.0611 +-83.9099 -42.2482 86.7907 +-86.6707 -42.8767 88.0819 +-86.7862 -42.1863 86.6635 +-89.9886 -42.9826 88.2994 +-90.2284 -42.3492 86.9982 +-92.9279 -42.8601 88.0478 +-93.7789 -42.5036 87.3154 +-97.146 -43.2676 88.8849 +-97.7929 -42.8021 87.9286 +-100.996 -43.4393 89.2376 +-101.211 -42.7782 87.8796 +-105.107 -43.6554 89.6816 +-105.827 -43.1926 88.7309 +-109.633 -43.9694 90.3266 +-110.506 -43.5491 89.4632 +-114.066 -44.1694 90.7375 +-114.414 -43.5311 89.4262 +-118.547 -44.3147 91.0361 +-119.58 -43.9165 90.2178 +-124.54 -44.9336 92.3074 +-125.431 -44.4561 91.3265 +-129.522 -45.0925 92.6338 +-130.967 -44.7848 92.0017 +-134.315 -45.1087 92.6671 +-134.49 -44.3572 91.1233 +-137.701 -44.5966 91.6151 +-138.585 -44.0692 90.5316 +-138.807 -43.3347 89.0228 +-139.174 -42.6523 87.6208 +-140.101 -42.1439 86.5765 +-139.942 -41.3135 84.8705 +-139.509 -40.415 83.0249 +-140.142 -39.833 81.8291 +-140.34 -39.1316 80.3883 +-141.2 -38.6173 79.3317 +-141.368 -37.9164 77.8919 +-141.433 -37.1947 76.4093 +-140.446 -36.2088 74.384 +-140.383 -35.474 72.8745 +-139.605 -34.5701 71.0175 +-139.414 -33.8234 69.4836 +-147.114 -34.9604 71.8193 +-154.692 -35.9999 73.9547 +-199.223 -45.3914 93.2479 +-219.009 -48.8412 100.335 +-227.671 -49.6825 102.063 +-228.653 -48.811 100.273 +-235.304 -49.1227 100.913 +-240.806 -49.1472 100.963 +-249.056 -49.6776 102.053 +-250.86 -48.8846 100.424 +-260.628 -49.5997 101.893 +-263.633 -48.9787 100.617 +-272.083 -49.3266 101.332 +-277.877 -49.1384 100.945 +-290.383 -50.0641 102.847 +-293.891 -49.3765 101.435 +-303.107 -49.6011 101.896 +-311.602 -49.6391 101.974 +-321.912 -49.8934 102.496 +-328.379 -49.4886 101.665 +-342.44 -50.149 103.021 +-348.277 -49.5288 101.747 +-364.701 -50.3289 103.391 +-374.393 -50.0987 102.918 +-388.418 -50.3574 103.449 +-397.193 -49.8488 102.405 +-419.372 -50.9032 104.571 +-425.684 -49.9227 102.557 +-438.668 -49.6536 102.004 +-455.166 -49.6706 102.039 +-503.493 -52.906 108.685 +-16.272 -1.64423 3.37775 +-12.9847 -1.25993 2.58828 +-15.9438 -1.48328 3.04712 +-16.2668 -1.44851 2.97568 +-16.1968 -1.37797 2.83078 +-16.617 -1.34796 2.76912 +-15.6584 -1.20844 2.48251 +-17.3586 -1.27139 2.61183 +-14.519 -1.00649 2.06763 +-16.2199 -1.06097 2.17956 +-14.4579 -0.889337 1.82697 +-12.8888 -0.742674 1.52568 +-14.2927 -0.768095 1.5779 +-14.3074 -0.713477 1.4657 +-14.2217 -0.654228 1.34398 +-15.2296 -0.641833 1.31852 +-13.5482 -0.518792 1.06576 +-15.0535 -0.518534 1.06523 +-13.6666 -0.418276 0.859267 +-11.2789 -0.301933 0.620263 +-13.5814 -0.311528 0.639973 +-12.0885 -0.231006 0.474557 +-10.5935 -0.161913 0.33262 +-3275.18 -37.537 77.1126 +-3275.8 -25.0263 51.4116 +-3276.58 -12.5151 25.7099 +94.3 0 0 +94.5964 -0.354619 0.745483 +94.6856 -0.70996 1.49248 +94.5676 -1.06375 2.23622 +95.4418 -1.4317 3.00973 +95.1094 -1.7838 3.74992 +95.9683 -2.1605 4.54181 +94.9226 -2.49394 5.24277 +94.9681 -2.85267 5.9969 +96.0031 -3.24563 6.82298 +95.1366 -3.57543 7.5163 +95.1599 -3.93605 8.27438 +95.2752 -4.30158 9.04282 +95.4823 -4.67316 9.82394 +96.3762 -5.08327 10.6861 +95.4761 -5.39951 11.3509 +95.3628 -5.75721 12.1028 +96.0334 -6.16526 12.9606 +95.9045 -6.52502 13.7169 +95.6697 -6.87717 14.4572 +95.5264 -7.23556 15.2106 +95.0807 -7.56989 15.9135 +95.8068 -7.9998 16.8172 +94.8567 -8.2901 17.4275 +95.565 -8.72577 18.3434 +94.7007 -9.01856 18.9589 +95.3908 -9.4602 19.8873 +94.9033 -9.78735 20.575 +95.6712 -10.2466 21.5406 +95.653 -10.6264 22.3388 +95.4335 -10.9846 23.0918 +95.8812 -11.4222 24.0119 +95.6455 -11.7812 24.7666 +95.3067 -12.1271 25.4937 +95.9174 -12.597 26.4814 +95.6578 -12.956 27.2363 +96.342 -13.4469 28.2681 +96.0652 -13.8075 29.0263 +95.6865 -14.1531 29.7528 +96.1494 -14.626 30.7468 +95.8486 -14.9859 31.5034 +95.5406 -15.3446 32.2575 +95.9721 -15.8253 33.268 +95.6469 -16.1844 34.023 +96.3344 -16.7194 35.1476 +95.9911 -17.0799 35.9054 +96.4689 -17.5901 36.978 +96.2913 -17.9854 37.8089 +96.7445 -18.5029 38.8968 +95.6369 -18.7223 39.3582 +95.978 -19.2253 40.4156 +95.5838 -19.5844 41.1704 +95.9013 -20.0926 42.2388 +95.4895 -20.4513 42.9929 +95.8723 -20.984 44.1127 +96.152 -21.5013 45.2001 +95.7115 -21.8609 45.9561 +96.0547 -22.4034 47.0965 +95.5959 -22.7626 47.8516 +95.8262 -23.2892 48.9588 +95.3494 -23.6476 49.7121 +95.5547 -24.1785 50.8283 +95.8313 -24.735 51.998 +95.2399 -25.0708 52.704 +95.4054 -25.6089 53.8353 +95.4719 -26.1272 54.9247 +94.9375 -26.4841 55.6749 +95.1464 -27.0523 56.8696 +95.2564 -27.6002 58.0212 +95.4338 -28.1751 59.2299 +95.4312 -28.7043 60.3424 +95.4143 -29.2356 61.4592 +95.3831 -29.7689 62.5803 +94.7747 -30.1253 63.3295 +94.3987 -30.5569 64.237 +93.5364 -30.8312 64.8136 +93.8521 -31.498 66.2154 +93.4434 -31.9288 67.121 +93.3352 -32.4672 68.2527 +93.4437 -33.0891 69.56 +93.3808 -33.659 70.7581 +93.4539 -34.2867 72.0778 +93.3576 -34.8612 73.2854 +93.4697 -35.5229 74.6765 +93.339 -36.1019 75.8936 +93.3393 -36.7406 77.2364 +93.1745 -37.3235 78.4617 +93.1381 -37.967 79.8145 +93.658 -38.8519 81.6746 +93.0079 -39.2617 82.5362 +93.3381 -40.0948 84.2876 +93.0107 -40.6577 85.4708 +91.2781 -40.6031 85.356 +89.8303 -40.6633 85.4826 +88.1142 -40.59 85.3286 +87.6916 -41.1088 86.4192 +85.2472 -40.6699 85.4964 +84.0202 -40.7948 85.7591 +82.7946 -40.9137 86.009 +81.5707 -41.0265 86.2462 +80.2842 -41.1004 86.4015 +79.4462 -41.3998 87.0309 +77.6581 -41.1953 86.6009 +76.8183 -41.4848 87.2096 +74.7413 -41.0942 86.3885 +74.5124 -41.7136 87.6905 +72.2178 -41.168 86.5436 +71.6761 -41.6098 87.4724 +69.7701 -41.2513 86.7188 +68.6391 -41.3365 86.8978 +67.2805 -41.2755 86.7695 +66.4395 -41.5261 87.2965 +65.0901 -41.4531 87.1429 +63.7487 -41.3731 86.9748 +62.579 -41.3943 87.0194 +61.4133 -41.41 87.0523 +60.0928 -41.3108 86.8438 +58.9901 -41.3513 86.929 +57.5298 -41.129 86.4617 +56.5398 -41.2321 86.6783 +55.1 -40.996 86.1821 +54.2651 -41.201 86.613 +52.6018 -40.7642 85.6946 +51.9149 -41.0731 86.344 +50.3743 -40.6972 85.5539 +49.6842 -40.9988 86.1879 +48.4408 -40.839 85.852 +47.5201 -40.9421 86.0688 +46.555 -41.0029 86.1965 +45.3328 -40.8269 85.8265 +44.3749 -40.8785 85.9349 +43.4184 -40.926 86.0348 +42.3413 -40.8517 85.8788 +41.6294 -41.1271 86.4576 +40.5579 -41.0443 86.2836 +39.3016 -40.7582 85.6822 +38.2848 -40.7049 85.57 +37.3465 -40.727 85.6164 +36.4102 -40.7451 85.6546 +35.6861 -41.0007 86.192 +34.4756 -40.6889 85.5364 +33.5476 -40.6951 85.5495 +32.5243 -40.5756 85.2983 +31.7939 -40.8182 85.8083 +30.7781 -40.6907 85.5402 +29.9503 -40.8045 85.7795 +28.9448 -40.6688 85.4942 +28.2027 -40.8993 85.9787 +27.2054 -40.7557 85.6769 +26.4566 -40.9803 86.1491 +25.6231 -41.0779 86.3543 +24.8627 -41.2972 86.8152 +23.6842 -40.8053 85.7812 +22.971 -41.1014 86.4035 +21.9552 -40.8511 85.8773 +21.2111 -41.0996 86.3997 +20.1674 -40.7573 85.6803 +19.4583 -41.084 86.367 +18.4512 -40.7758 85.7191 +17.6768 -40.9701 86.1277 +16.6876 -40.6541 85.4633 +16.0096 -41.0964 86.3931 +14.9708 -40.6033 85.3566 +14.1601 -40.7004 85.5605 +13.3189 -40.7094 85.5795 +12.5827 -41.0559 86.3079 +11.602 -40.5898 85.3282 +10.9128 -41.1439 86.493 +10.0034 -40.8842 85.947 +9.18202 -40.963 86.1126 +8.3408 -40.953 86.0916 +7.53992 -41.154 86.5142 +6.59896 -40.5379 85.2191 +5.84845 -41.0756 86.3494 +4.98238 -40.8386 85.8511 +4.17874 -41.1132 86.4285 +3.31196 -40.741 85.6459 +2.50775 -41.1383 86.4812 +1.64227 -40.416 84.9627 +0.829894 -40.8502 85.8754 +5.79239e-15 -40.6369 85.4272 +-0.836002 -41.1508 86.5076 +-1.66147 -40.8884 85.9559 +-2.5156 -41.2671 86.752 +-3.30149 -40.6122 85.3752 +-4.17874 -41.1132 86.4285 +-4.98238 -40.8386 85.8511 +-5.87897 -41.29 86.8001 +-6.61989 -40.6665 85.4893 +-7.55561 -41.2396 86.6942 +-8.29723 -40.739 85.6418 +-9.26828 -41.3478 86.9215 +-10.0452 -41.0551 86.3064 +-10.9468 -41.272 86.7622 +-11.6263 -40.6751 85.5074 +-12.6871 -41.3966 87.0241 +-13.4024 -40.9646 86.116 +-14.3671 -41.2951 86.8109 +-15.0177 -40.7306 85.6241 +-16.0426 -41.1812 86.5713 +-16.8786 -41.1194 86.4415 +-17.7133 -41.0546 86.3053 +-18.3177 -40.4806 85.0986 +-19.4782 -41.126 86.4554 +-20.1466 -40.7153 85.592 +-21.3409 -41.3512 86.9287 +-22.0452 -41.0185 86.2293 +-23.1111 -41.352 86.9304 +-23.6358 -40.7219 85.6059 +-24.6875 -41.0061 86.2032 +-25.5196 -40.912 86.0054 +-26.4566 -40.9803 86.1491 +-27.4259 -41.086 86.3713 +-28.7424 -41.6819 87.6239 +-29.1787 -40.9974 86.185 +-30.5216 -41.5829 87.4159 +-31.2725 -41.3444 86.9144 +-32.2382 -41.3885 87.0072 +-33.2405 -41.4692 87.1767 +-34.549 -41.9099 88.1032 +-35.0229 -41.3347 86.8942 +-36.1764 -41.564 87.3761 +-37.0194 -41.4268 87.0878 +-38.1161 -41.5662 87.3808 +-38.7718 -41.2226 86.6585 +-40.4496 -41.9489 88.1851 +-40.7923 -41.2816 86.7824 +-42.2674 -41.7574 87.7826 +-42.9921 -41.4796 87.1987 +-44.3722 -41.825 87.9249 +-45.2202 -41.6571 87.5718 +-46.4091 -41.7962 87.8642 +-47.2564 -41.6206 87.4951 +-49.171 -42.3645 89.059 +-49.6212 -41.8341 87.9439 +-51.3003 -42.3324 88.9914 +-52.0174 -42.0247 88.3445 +-53.6804 -42.4698 89.2803 +-54.3956 -42.1543 88.617 +-55.9886 -42.5096 89.3639 +-56.55 -42.0749 88.4501 +-58.0116 -42.3054 88.9347 +-59.0234 -42.1968 88.7065 +-60.6621 -42.5234 89.3929 +-61.5236 -42.2943 88.9114 +-62.6491 -42.2432 88.804 +-63.2326 -41.8267 87.9283 +-65.3493 -42.4119 89.1586 +-65.9848 -42.0229 88.3407 +-68.082 -42.5528 89.4547 +-68.7718 -42.1904 88.6928 +-70.3231 -42.3506 89.0297 +-71.1808 -42.0854 88.4722 +-72.9848 -42.3694 89.0693 +-74.0232 -42.1972 88.7072 +-75.7908 -42.4293 89.1951 +-76.8346 -42.2451 88.8079 +-78.6859 -42.4934 89.3298 +-79.5461 -42.1968 88.7063 +-81.3544 -42.3942 89.1213 +-82.791 -42.3837 89.0994 +-84.8179 -42.6597 89.6796 +-85.6813 -42.3402 89.0078 +-87.9297 -42.693 89.7495 +-88.7936 -42.3617 89.0531 +-91.8127 -43.0408 90.4806 +-92.8882 -42.7892 89.9517 +-95.4059 -43.1872 90.7885 +-96.488 -42.9206 90.228 +-99.2488 -43.3844 91.203 +-100.551 -43.1933 90.8011 +-102.922 -43.4467 91.3339 +-104.017 -43.149 90.7081 +-107.646 -43.881 92.2469 +-108.533 -43.4759 91.3953 +-112.435 -44.2573 93.038 +-112.809 -43.6327 91.7249 +-116.313 -44.2045 92.9269 +-117.433 -43.8514 92.1846 +-122.577 -44.9717 94.5397 +-123.869 -44.6486 93.8606 +-126.778 -44.8931 94.3744 +-128.851 -44.8213 94.2236 +-131.322 -44.8716 94.3293 +-132.465 -44.457 93.4579 +-136.298 -44.9261 94.444 +-137.605 -44.543 93.6385 +-138.505 -44.0253 92.5503 +-138.423 -43.2014 90.8183 +-139.132 -42.631 89.6192 +-140.239 -42.1818 88.6748 +-139.689 -41.2408 86.6967 +-139.693 -40.4754 85.0876 +-139.426 -39.642 83.3356 +-140.561 -39.2114 82.4304 +-141.268 -38.6599 81.2711 +-141.709 -38.0378 79.9634 +-141.368 -37.2134 78.2302 +-140.147 -36.1732 76.0435 +-140.187 -35.472 74.5695 +-139.69 -34.6445 72.8298 +-140.562 -34.1618 71.8152 +-142.65 -33.9668 71.4052 +-158.626 -36.9973 77.7759 +-166.524 -38.0347 79.9569 +-219.624 -49.1118 103.243 +-225.068 -49.2617 103.558 +-230.714 -49.4129 103.876 +-234.855 -49.205 103.439 +-242.525 -49.6913 104.461 +-246.153 -49.3068 103.653 +-253.424 -49.6114 104.293 +-256.798 -49.114 103.248 +-264.939 -49.4855 104.029 +-268.235 -48.9099 102.819 +-279.012 -49.6449 104.364 +-283.718 -49.2411 103.515 +-293.268 -49.6239 104.32 +-297.906 -49.123 103.267 +-310.413 -49.855 104.805 +-319.12 -49.8941 104.888 +-325.306 -49.4847 104.027 +-333.863 -49.382 103.811 +-348.699 -50.1187 105.36 +-354.364 -49.4602 103.976 +-369.47 -50.0414 105.197 +-381.948 -50.1617 105.45 +-395.705 -50.3507 105.848 +-409.978 -50.4993 106.16 +-423.226 -50.4186 105.99 +-430.9 -49.5972 104.264 +-442.443 -49.1526 103.329 +-479.714 -51.3786 108.008 +-514.286 -53.038 111.497 +-537.852 -53.3405 112.133 +-573.379 -54.6042 114.789 +-15.6504 -1.42899 3.00403 +-15.4828 -1.35314 2.84457 +-16.884 -1.4098 2.96368 +-15.8304 -1.26034 2.6495 +-17.9235 -1.3576 2.85395 +-3231.37 -232.285 488.312 +-16.0993 -1.09534 2.30263 +-17.3078 -1.11114 2.33585 +-3244.42 -195.87 411.76 +-12.7896 -0.723298 1.52052 +-13.6971 -0.722444 1.51873 +-14.7049 -0.719699 1.51295 +-14.8184 -0.669036 1.40645 +-14.7319 -0.609348 1.28097 +-13.8471 -0.520402 1.09399 +-11.6639 -0.394329 0.828961 +-14.4647 -0.434493 0.913393 +-14.473 -0.380253 0.799371 +-11.4842 -0.25854 0.543504 +-3273.18 -61.3892 129.053 +-3274.3 -49.117 103.254 +-3275.58 -36.8456 77.457 +-3276.2 -24.5653 51.6413 +-3276.58 -12.2831 25.8216 +94.5 0 0 +94.4964 -0.347511 0.747862 +94.6856 -0.696464 1.49883 +95.3673 -1.05235 2.26472 +95.142 -1.40007 3.01303 +95.1094 -1.74989 3.76586 +94.9697 -2.09737 4.51365 +94.9226 -2.44653 5.26506 +94.9681 -2.79844 6.02239 +96.0031 -3.18393 6.85199 +95.1366 -3.50747 7.54826 +95.1599 -3.86122 8.30956 +95.2752 -4.21981 9.08126 +95.2835 -4.5748 9.84522 +95.5822 -4.94555 10.6431 +95.4761 -5.29687 11.3991 +95.3628 -5.64777 12.1543 +95.1433 -5.99201 12.8951 +95.9045 -6.40098 13.7752 +95.6697 -6.74644 14.5187 +95.5264 -7.09802 15.2753 +95.1791 -7.43366 15.9976 +94.9233 -7.77533 16.7329 +95.0527 -8.14933 17.5378 +95.565 -8.5599 18.4214 +95.5794 -8.92921 19.2161 +95.3908 -9.28036 19.9718 +95.0005 -9.61112 20.6836 +94.992 -9.98052 21.4786 +95.653 -10.4244 22.4338 +95.4335 -10.7757 23.19 +95.8812 -11.2051 24.114 +95.6455 -11.5573 24.8719 +95.3067 -11.8966 25.6021 +96.013 -12.3698 26.6205 +95.6578 -12.7098 27.3521 +95.391 -13.061 28.108 +95.9704 -13.5317 29.1208 +95.781 -13.8978 29.9088 +96.2437 -14.362 30.9078 +95.8486 -14.701 31.6373 +95.4469 -15.0381 32.3628 +95.9721 -15.5245 33.4095 +95.6469 -15.8768 34.1677 +96.3344 -16.4016 35.297 +95.9911 -16.7552 36.0581 +96.4689 -17.2557 37.1353 +96.1996 -17.6267 37.9335 +95.9223 -17.9969 38.7302 +95.6369 -18.3664 39.5255 +96.0686 -18.8777 40.6257 +95.674 -19.2302 41.3845 +95.9912 -19.7291 42.4581 +95.4895 -20.0626 43.1757 +95.9614 -20.6043 44.3415 +96.2407 -21.112 45.4342 +95.7998 -21.4651 46.1941 +96.0547 -21.9775 47.2967 +95.5959 -22.3299 48.055 +95.0428 -22.6598 48.7651 +96.1288 -23.3877 50.3316 +95.6408 -23.7403 51.0904 +95.917 -24.2865 52.2657 +95.3252 -24.6162 52.9754 +95.4054 -25.1221 54.0642 +95.6406 -25.6758 55.2557 +95.6923 -26.1872 56.3562 +95.1464 -26.5381 57.1114 +95.1735 -27.0519 58.2171 +95.4338 -27.6395 59.4817 +94.694 -27.9411 60.1307 +95.4958 -28.7043 61.7731 +95.3831 -29.203 62.8463 +94.9355 -29.6028 63.7067 +95.2772 -30.255 65.1104 +94.2504 -30.476 65.586 +93.6945 -30.8474 66.3851 +93.2086 -31.2432 67.2371 +93.4129 -31.8765 68.5999 +93.3666 -32.4333 69.7981 +93.3808 -33.0191 71.0589 +93.3779 -33.6076 72.3253 +93.433 -34.2261 73.6565 +92.7207 -34.5684 74.3931 +93.2647 -35.3874 76.1556 +93.2656 -36.0138 77.5035 +93.1745 -36.614 78.7953 +93.0655 -37.2163 80.0915 +93.1545 -37.9084 81.5809 +93.3645 -38.663 83.2049 +93.3381 -39.3327 84.646 +92.7303 -39.7646 85.5754 +92.3896 -40.3163 86.7627 +91.207 -40.5016 87.1617 +88.5234 -40.0034 86.0894 +88.1645 -40.5449 87.2547 +86.0502 -40.2725 86.6686 +85.8093 -40.8715 87.9576 +83.7787 -40.613 87.4013 +83.1294 -41.0157 88.268 +81.1198 -40.7388 87.672 +80.2731 -41.0355 88.3106 +78.4133 -40.8052 87.8149 +78.1878 -41.4218 89.1418 +75.9111 -40.9439 88.1135 +76.0343 -41.7564 89.8621 +73.6622 -41.1931 88.6497 +73.4011 -41.8011 89.9583 +70.8281 -41.0808 88.4081 +70.0328 -41.374 89.0391 +67.7967 -40.8015 87.8071 +67.9687 -41.6744 89.6855 +65.7611 -41.0843 88.4156 +65.3493 -41.6057 89.5377 +63.2326 -41.0316 88.3021 +62.6491 -41.4402 89.1815 +60.5698 -40.8471 87.9051 +60.2963 -41.4635 89.2317 +58.4053 -40.9612 88.1508 +57.2503 -40.9566 88.1408 +56.1 -40.9466 88.1193 +54.9545 -40.9313 88.0863 +53.3775 -40.579 87.3281 +53.0123 -41.1441 88.5442 +51.2663 -40.6305 87.439 +50.8847 -41.1912 88.6458 +48.9402 -40.4757 87.1058 +48.5017 -40.9935 88.2202 +47.1249 -40.7158 87.6226 +46.6244 -41.1918 88.647 +45.0511 -40.7125 87.6154 +44.5795 -41.2217 88.7112 +42.9514 -40.6526 87.4866 +42.2275 -40.925 88.0727 +40.9095 -40.6132 87.4018 +40.2583 -40.9567 88.1411 +38.6969 -40.3609 86.8588 +38.1161 -40.7761 87.7523 +37.0552 -40.6787 87.5426 +36.0363 -40.616 87.4079 +34.8519 -40.351 86.8375 +34.5156 -41.0735 88.3923 +33.0452 -40.4418 87.0329 +32.492 -40.9214 88.0651 +31.0871 -40.318 86.7664 +30.5216 -40.7925 87.7876 +29.5295 -40.7017 87.5921 +28.8276 -41.0107 88.2572 +27.6189 -40.5886 87.3487 +26.8842 -40.851 87.9135 +25.7007 -40.4192 86.9842 +25.1882 -41.0425 88.3257 +23.9261 -40.4385 87.0257 +23.2978 -40.8937 88.0054 +22.2477 -40.6083 87.3912 +21.5357 -40.9354 88.0952 +20.5001 -40.6421 87.4639 +19.8371 -41.0875 88.4226 +18.7756 -40.7039 87.597 +17.932 -40.7714 87.7422 +16.9481 -40.5038 87.1663 +16.1582 -40.6893 87.5655 +15.1741 -40.3726 86.8839 +14.4705 -40.8019 87.8079 +13.5415 -40.6032 87.3802 +12.6871 -40.6096 87.3941 +11.7848 -40.4456 87.0411 +11.0486 -40.8642 87.942 +10.1393 -40.6519 87.485 +9.31621 -40.7715 87.7424 +8.42796 -40.5943 87.3611 +7.60269 -40.7078 87.6053 +6.74545 -40.6501 87.4811 +5.93392 -40.8837 87.9838 +5.07135 -40.7777 87.7557 +4.21799 -40.7106 87.6114 +3.35035 -40.4297 87.0069 +2.53131 -40.7354 87.6648 +1.68765 -40.7432 87.6815 +0.848219 -40.9585 88.1449 +5.86586e-15 -40.3701 86.8786 +-0.848219 -40.9585 88.1449 +-1.68067 -40.5746 87.3187 +-2.5444 -40.946 88.118 +-3.38525 -40.8509 87.9133 +-4.2747 -41.2579 88.7891 +-5.06089 -40.6935 87.5746 +-5.93392 -40.8837 87.9838 +-6.80823 -41.0285 88.2954 +-7.68899 -41.1699 88.5998 +-8.47154 -40.8042 87.8128 +-9.39288 -41.1071 88.4646 +-10.1602 -40.7357 87.6653 +-11.0939 -41.0317 88.3024 +-11.8091 -40.5293 87.2211 +-12.7524 -40.8186 87.8437 +-13.4859 -40.4363 87.021 +-14.441 -40.7185 87.6284 +-15.2836 -40.6639 87.5109 +-16.2737 -40.9802 88.1916 +-17.1217 -40.9188 88.0594 +-18.1324 -41.2272 88.7231 +-18.7184 -40.5798 87.3299 +-19.6776 -40.7572 87.7117 +-20.3961 -40.436 87.0204 +-21.5357 -40.9354 88.0952 +-22.3826 -40.8546 87.9213 +-23.2978 -40.8937 88.0054 +-23.9503 -40.4794 87.1138 +-25.1131 -40.9201 88.0623 +-25.9596 -40.8262 87.8602 +-27.1514 -41.2571 88.7875 +-27.7567 -40.7911 87.7847 +-28.8276 -41.0107 88.2572 +-29.705 -40.9435 88.1125 +-30.7021 -41.0336 88.3065 +-31.5506 -40.9192 88.0602 +-32.841 -41.361 89.0111 +-33.6963 -41.2387 88.7479 +-35.0163 -41.6693 89.6746 +-35.6727 -41.3014 88.8827 +-36.7718 -41.4449 89.1917 +-37.3061 -40.954 88.1353 +-38.7758 -41.4818 89.2711 +-39.521 -41.2205 88.7086 +-40.7941 -41.5018 89.3141 +-41.6519 -41.3502 88.9878 +-42.9851 -41.6592 89.6528 +-43.5208 -41.1916 88.6465 +-44.9527 -41.5668 89.454 +-45.9386 -41.5145 89.3414 +-47.184 -41.6863 89.7111 +-48.177 -41.6248 89.5788 +-49.5726 -41.8986 90.168 +-50.4383 -41.7147 89.7723 +-51.8082 -41.9388 90.2546 +-52.5339 -41.6351 89.6009 +-54.253 -42.1069 90.6163 +-54.9774 -41.7952 89.9456 +-56.7272 -42.2517 90.9278 +-57.3 -41.8225 90.0042 +-59.4835 -42.5542 91.579 +-60.1049 -42.1531 90.7156 +-61.4458 -42.2538 90.9323 +-62.0006 -41.812 89.9816 +-63.8312 -42.2222 90.8643 +-64.5942 -41.9151 90.2035 +-66.3428 -42.2382 90.8988 +-67.215 -41.9926 90.3704 +-68.5918 -42.0564 90.5077 +-69.4601 -41.8026 89.9614 +-71.2523 -42.0945 90.5895 +-72.2976 -41.9331 90.2423 +-74.5908 -42.4788 91.4166 +-74.926 -41.8998 90.1707 +-77.3127 -42.4586 91.3731 +-78.189 -42.1724 90.7573 +-79.6196 -42.1804 90.7746 +-81.0565 -42.1804 90.7746 +-83.199 -42.531 91.5291 +-83.7552 -42.0623 90.5203 +-86.1168 -42.4898 91.4402 +-87.059 -42.2032 90.8235 +-89.1224 -42.4497 91.354 +-90.5334 -42.3705 91.1836 +-93.0288 -42.7818 92.0687 +-94.525 -42.7156 91.9263 +-96.4385 -42.8248 92.1612 +-98.572 -43.014 92.5684 +-101.141 -43.3713 93.3374 +-102.036 -42.998 92.5339 +-104.919 -43.448 93.5024 +-106.103 -43.1775 92.9202 +-109.459 -43.7721 94.1998 +-111.019 -43.6263 93.886 +-114.499 -44.2129 95.1484 +-114.37 -43.3953 93.3891 +-117.811 -43.9225 94.5236 +-120.225 -44.0405 94.7775 +-124.631 -44.8559 96.5323 +-125.555 -44.3957 95.542 +-129.016 -44.8167 96.448 +-129.939 -44.3405 95.4232 +-132.496 -44.4122 95.5774 +-134.907 -44.416 95.5855 +-137.726 -44.534 95.8394 +-138.244 -43.8989 94.4728 +-138.585 -43.2133 92.9973 +-139.313 -42.6528 91.7912 +-139.946 -42.0653 90.5268 +-139.665 -41.2107 88.6877 +-139.607 -40.433 87.0139 +-139.278 -39.5882 85.1958 +-139.843 -39.0047 83.9402 +-140.813 -38.5349 82.9291 +-141.605 -38.0156 81.8115 +-141.878 -37.3594 80.3994 +-140.515 -36.2858 78.089 +-140.661 -35.6157 76.647 +-139.584 -34.648 74.5643 +-139.95 -34.0491 73.2755 +-142.825 -34.0519 73.2816 +-150.522 -35.1598 75.6657 +-167.678 -38.365 82.5636 +-215.174 -48.2124 103.756 +-223.704 -49.0733 105.608 +-226.939 -48.7269 104.863 +-233.667 -49.0939 105.653 +-239.798 -49.2857 106.065 +-247.579 -49.7627 107.092 +-249.688 -49.064 105.588 +-256.882 -49.3324 106.166 +-259.264 -48.643 104.682 +-267.415 -48.9983 105.447 +-272.93 -48.82 105.063 +-284.37 -49.6367 106.821 +-290.209 -49.41 106.333 +-296.989 -49.2983 106.093 +-302.853 -48.9898 105.429 +-315.752 -49.7484 107.061 +-322.127 -49.407 106.327 +-329.83 -49.2191 105.922 +-336.416 -48.8137 105.05 +-353.63 -49.8613 107.304 +-360.736 -49.3923 106.295 +-375.097 -49.8381 107.254 +-384.817 -49.5777 106.694 +-402.321 -50.2195 108.075 +-415.938 -50.2595 108.161 +-429.105 -50.147 107.919 +-434.763 -49.0906 105.645 +-468.874 -51.0985 109.967 +-493.686 -51.8701 111.627 +-384.378 -38.8872 83.6873 +-548.668 -53.3787 114.874 +-380.755 -35.571 76.5506 +-625.623 -56.0378 120.596 +-14.5029 -1.2434 2.67587 +-17.8656 -1.4634 3.14932 +-3221.44 -251.6 541.457 +-3226.53 -239.745 515.943 +-3231.37 -227.87 490.388 +-17.2845 -1.15362 2.48266 +-17.2089 -1.08379 2.33237 +-3244.81 -192.17 413.56 +-3248.67 -180.231 387.866 +-3251.88 -168.257 362.098 +-3255.64 -156.311 336.39 +-12.531 -0.555009 1.19441 +-3261.22 -132.328 284.776 +-14.7437 -0.543564 1.16978 +-11.0658 -0.366995 0.789794 +-13.8661 -0.408596 0.87932 +-3270.19 -84.2855 181.387 +-14.0807 -0.310967 0.669217 +-3273.18 -60.2223 129.601 +-3274.3 -48.1833 103.693 +-3275.58 -36.1452 77.7863 +-3276.2 -24.0983 51.8608 +-3276.58 -12.0496 25.9314 +94.5 0 0 +94.4964 -0.340749 0.750967 +94.4856 -0.68147 1.50187 +94.4676 -1.02214 2.25267 +95.142 -1.37283 3.02554 +95.1094 -1.71584 3.7815 +95.0695 -2.05872 4.53716 +95.8209 -2.42162 5.33695 +95.8659 -2.76993 6.10457 +95.2056 -3.09604 6.82328 +95.2362 -3.44282 7.58754 +95.2594 -3.79005 8.35279 +95.2752 -4.1377 9.11897 +95.4823 -4.49512 9.90667 +95.4829 -4.84427 10.6762 +95.6744 -5.20458 11.4702 +95.3628 -5.53787 12.2048 +95.1433 -5.87541 12.9487 +95.0156 -6.21824 13.7042 +94.782 -6.5538 14.4438 +95.5264 -6.9599 15.3387 +94.2941 -7.22124 15.9147 +95.8068 -7.69502 16.9589 +95.0527 -7.99075 17.6106 +94.6847 -8.31602 18.3275 +94.7007 -8.67496 19.1185 +95.196 -9.08118 20.0138 +95.0005 -9.4241 20.7695 +95.6712 -9.85626 21.722 +95.4594 -10.2009 22.4814 +95.4335 -10.5661 23.2863 +95.8812 -10.9871 24.2141 +95.8378 -11.3551 25.0253 +95.4026 -11.6768 25.7342 +95.1523 -12.0204 26.4914 +95.6578 -12.4624 27.4656 +95.4861 -12.8196 28.2529 +96.0652 -13.2815 29.2707 +95.6865 -13.6139 30.0033 +95.3011 -13.9446 30.7322 +95.8486 -14.4149 31.7687 +96.2899 -14.8757 32.7842 +95.9721 -15.2224 33.5482 +95.6469 -15.5678 34.3096 +96.3344 -16.0824 35.4436 +95.9911 -16.4292 36.2078 +96.561 -16.9361 37.3251 +96.2913 -17.3001 38.1273 +96.0136 -17.6635 38.9281 +95.6369 -18.009 39.6896 +95.978 -18.4929 40.756 +96.3961 -18.9983 41.87 +95.9912 -19.3452 42.6344 +96.3844 -19.8565 43.7613 +95.9614 -20.2033 44.5256 +96.152 -20.6821 45.5807 +95.7115 -21.028 46.3431 +96.1426 -21.5695 47.5365 +95.5085 -21.8753 48.2104 +95.8262 -22.402 49.3711 +96.0422 -22.9119 50.495 +95.6408 -23.2784 51.3026 +95.917 -23.8139 52.4828 +95.2399 -24.1156 53.1478 +95.4054 -24.6333 54.2886 +95.4719 -25.1318 55.3872 +95.6923 -25.6776 56.5902 +95.1464 -26.0217 57.3485 +95.1735 -26.5255 58.4588 +95.3514 -27.0783 59.6772 +95.5131 -27.6344 60.9027 +95.4958 -28.1457 62.0296 +95.5449 -28.6833 63.2143 +95.4982 -29.1987 64.3503 +95.5168 -29.7409 65.5453 +95.5197 -30.2854 66.7453 +93.6157 -30.2217 66.6048 +93.8347 -30.841 67.9697 +93.3352 -31.2302 68.8275 +93.3666 -31.8021 70.0879 +92.768 -32.1641 70.8857 +93.3779 -32.9536 72.6256 +93.3576 -33.533 73.9026 +93.3948 -34.1422 75.245 +93.339 -34.7265 76.5328 +93.2656 -35.313 77.8253 +93.1745 -35.9015 79.1224 +93.1381 -36.5205 80.4867 +92.9387 -37.0846 81.7299 +92.9365 -37.7369 83.1674 +93.3381 -38.5673 84.9974 +93.1508 -39.1676 86.3205 +92.7369 -39.6804 87.4505 +92.6525 -40.3429 88.9107 +90.433 -40.0711 88.3116 +90.1237 -40.6394 89.564 +87.4554 -40.1337 88.4496 +87.0683 -40.6641 89.6187 +85.2221 -40.5088 89.2763 +84.9478 -41.0973 90.5733 +83.1124 -40.9272 90.1985 +82.0541 -41.1297 90.6448 +80.1754 -40.9103 90.161 +79.4951 -41.2948 91.0086 +78.2506 -41.3844 91.2061 +77.9215 -41.96 92.4746 +75.588 -41.4477 91.3454 +75.602 -42.2166 93.0401 +73.4144 -41.7522 92.0166 +72.5298 -42.0154 92.5966 +69.7469 -41.1584 90.7079 +68.6484 -41.2721 90.9585 +67.2709 -41.2097 90.8211 +66.4532 -41.4853 91.4283 +65.1933 -41.4807 91.4183 +64.3148 -41.7142 91.9328 +62.1065 -41.0684 90.5096 +61.7071 -41.608 91.6988 +59.8989 -41.1913 90.7805 +58.6207 -41.1209 90.6253 +56.85 -40.6866 89.6681 +56.284 -41.1058 90.5921 +54.6865 -40.7651 89.8411 +53.9667 -41.0697 90.5124 +52.5339 -40.8249 89.9729 +51.8082 -41.1227 90.6293 +50.4383 -40.903 90.145 +49.7957 -41.2682 90.9499 +48.0455 -40.7034 89.7052 +47.5715 -41.2108 90.8234 +45.7696 -40.5568 89.3822 +45.2845 -41.0588 90.4883 +43.8462 -40.692 89.68 +43.2643 -41.1138 90.6096 +41.7692 -40.6597 89.6088 +40.9471 -40.8469 90.0214 +39.5959 -40.4949 89.2458 +39.069 -40.9822 90.3196 +37.4136 -40.2728 88.7563 +37.157 -41.0642 90.5003 +35.5701 -40.3812 88.9951 +35.1165 -40.9753 90.3045 +33.8591 -40.6315 89.5468 +32.841 -40.5562 89.3807 +31.7978 -40.4373 89.1186 +31.2734 -40.9839 90.3233 +29.8512 -40.3443 88.9137 +29.3672 -40.9655 90.2827 +27.9772 -40.3151 88.8495 +27.6324 -41.171 90.7357 +26.2701 -40.5107 89.2806 +25.6389 -40.9639 90.2793 +24.5551 -40.694 89.6844 +23.718 -40.8212 89.9647 +22.765 -40.7441 89.7949 +21.9253 -40.865 90.0612 +20.7496 -40.3362 88.8959 +20.176 -40.9764 90.3068 +18.9855 -40.358 88.944 +18.3329 -40.8718 90.0764 +17.3301 -40.6108 89.5012 +16.6698 -41.1608 90.7133 +15.5339 -40.5256 89.3133 +14.7514 -40.7844 89.8837 +13.6946 -40.2632 88.735 +13.0265 -40.8845 90.1044 +11.9919 -40.3558 88.9391 +11.2977 -40.9723 90.2977 +10.2856 -40.4361 89.1162 +9.47914 -40.6773 89.6477 +8.57613 -40.5042 89.2661 +7.83022 -41.1102 90.6017 +6.81521 -40.2713 88.7528 +6.07433 -41.0367 90.4397 +5.11322 -40.3143 88.8476 +4.34013 -41.0742 90.5225 +3.42015 -40.4689 89.1884 +2.60461 -41.0993 90.5777 +1.71034 -40.4874 89.2292 +0.863054 -40.8639 90.0589 +5.9822e-15 -40.3696 88.9696 +-0.870908 -41.2358 90.8785 +-1.71732 -40.6527 89.5934 +-2.60461 -41.0993 90.5777 +-3.44109 -40.7167 89.7344 +-4.35321 -41.1981 90.7954 +-5.16033 -40.6857 89.6661 +-6.09264 -41.1604 90.7124 +-6.84311 -40.4361 89.1162 +-7.83022 -41.1102 90.6017 +-8.59356 -40.5865 89.4475 +-9.53665 -40.9241 90.1916 +-10.3379 -40.6416 89.569 +-11.3656 -41.2186 90.8406 +-12.0651 -40.6019 89.4814 +-13.144 -41.2532 90.917 +-13.7364 -40.3859 89.0055 +-14.8844 -41.1522 90.6942 +-15.487 -40.4031 89.0434 +-16.6203 -41.0386 90.4439 +-17.278 -40.4888 89.2322 +-18.3511 -40.9125 90.166 +-18.9855 -40.358 88.944 +-20.2558 -41.1383 90.6636 +-20.6872 -40.215 88.6287 +-21.9253 -40.865 90.0612 +-22.5176 -40.3012 88.8188 +-23.8348 -41.0221 90.4075 +-24.5793 -40.7341 89.7728 +-25.714 -41.084 90.5439 +-26.5031 -40.8699 90.0722 +-27.8195 -41.4497 91.35 +-28.3631 -40.8712 90.0749 +-29.3956 -41.005 90.3699 +-30.1143 -40.6999 89.6975 +-31.6343 -41.4567 91.3655 +-32.2614 -41.0267 90.4178 +-33.5708 -41.4576 91.3673 +-34.2498 -41.1004 90.5801 +-35.684 -41.6373 91.7634 +-36.3909 -41.3131 91.0488 +-37.5773 -41.5286 91.5239 +-38.202 -41.1215 90.6267 +-39.7287 -41.6741 91.8445 +-40.2702 -41.1846 90.7656 +-41.9421 -41.8394 92.2087 +-42.3162 -41.1922 90.7824 +-44.301 -42.0989 92.7806 +-44.5783 -41.3716 91.1779 +-46.0724 -41.7733 92.063 +-46.8261 -41.4931 91.4456 +-48.4325 -41.9567 92.4673 +-49.1852 -41.6691 91.8335 +-50.8666 -42.1559 92.9063 +-51.0739 -41.4183 91.2808 +-53.0549 -42.1125 92.8106 +-53.8014 -41.81 92.1441 +-55.255 -42.0501 92.6731 +-55.8501 -41.6324 91.7525 +-57.909 -42.2927 93.2077 +-58.2 -41.6526 91.7971 +-60.3463 -42.3315 93.2933 +-60.5685 -41.6518 91.7953 +-62.6998 -42.2774 93.174 +-63.4313 -41.9443 92.44 +-65.4968 -42.4807 93.622 +-65.7379 -41.8274 92.1823 +-67.8882 -42.3811 93.4026 +-68.2775 -41.8261 92.1796 +-70.5176 -42.396 93.4353 +-71.4103 -42.1398 92.8708 +-72.8202 -42.1836 92.9673 +-73.7083 -41.9195 92.3854 +-76.0778 -42.4823 93.6257 +-76.4305 -41.9096 92.3635 +-78.9564 -42.5174 93.7031 +-79.2972 -41.9381 92.4264 +-81.8607 -42.5236 93.7167 +-82.0004 -41.8414 92.2133 +-84.7892 -42.5009 93.6666 +-85.4908 -42.0984 92.7797 +-87.7404 -42.4484 93.551 +-88.6336 -42.1303 92.8498 +-91.8391 -42.8922 94.529 +-92.1393 -42.2831 93.1867 +-95.2582 -42.9546 94.6665 +-96.1618 -42.6096 93.9061 +-99.1231 -43.1604 95.12 +-99.614 -42.6228 93.9353 +-103.735 -43.6178 96.1281 +-104.015 -42.979 94.7203 +-108.057 -43.8769 96.6991 +-108.333 -43.2273 95.2676 +-111.925 -43.8872 96.7218 +-112.994 -43.5384 95.9533 +-116.564 -44.1343 97.2664 +-116.822 -43.4632 95.7875 +-122.529 -44.7929 98.718 +-122.791 -44.1054 97.2027 +-127.064 -44.8417 98.8254 +-127.546 -44.2223 97.4604 +-131.639 -44.8384 98.8181 +-131.571 -44.024 97.0233 +-135.626 -44.5768 98.2417 +-136.799 -44.1624 97.3283 +-138.837 -44.0194 97.0133 +-138.164 -43.0199 94.8104 +-139.63 -42.6922 94.0883 +-139.636 -41.9199 92.3863 +-139.377 -41.0788 90.5325 +-139.502 -40.3614 88.9514 +-140.101 -39.7866 87.6847 +-140.273 -39.0951 86.1606 +-140.843 -38.5194 84.8919 +-141.651 -38.01 83.7694 +-141.437 -37.2314 82.0533 +-141.37 -36.501 80.4437 +-140.259 -35.5149 78.2705 +-139.975 -34.7525 76.59 +-139.756 -34.0157 74.9664 +-141.335 -33.7171 74.3083 +-158.318 -37.011 81.5677 +-160.493 -36.7593 81.0129 +-222.077 -49.8228 109.803 +-224.18 -49.253 108.547 +-229.204 -49.3013 108.654 +-229.701 -48.3605 106.58 +-240.379 -49.5216 109.139 +-245.371 -49.4497 108.981 +-251.912 -49.6484 109.419 +-254.582 -49.0522 108.105 +-258.793 -48.7324 107.4 +-263.192 -48.4192 106.71 +-273.742 -49.1819 108.391 +-277.992 -48.758 107.456 +-290.098 -49.6513 109.425 +-294.474 -49.1604 108.343 +-302.758 -49.2778 108.602 +-309.669 -49.1175 108.249 +-321.185 -49.6195 109.355 +-324.194 -48.7563 107.453 +-336.9 -49.296 108.642 +-343.318 -48.846 107.65 +-361.027 -49.9137 110.004 +-365.871 -49.1208 108.256 +-383.108 -49.9121 110 +-391.702 -49.4827 109.054 +-411.525 -50.3686 111.006 +-423.051 -50.1244 110.468 +-435.368 -49.8889 109.949 +-440.269 -48.7452 107.428 +-380.966 -40.7103 89.7204 +-503.292 -51.8504 114.272 +-536.456 -53.2168 117.283 +-563.381 -53.7437 118.444 +-380.755 -34.8788 76.8684 +-638.241 -56.0555 123.539 +-672.228 -56.5117 124.545 +-3216.11 -258.311 569.285 +-3221.44 -246.704 543.705 +-3226.53 -235.079 518.085 +-3231.37 -223.436 492.424 +-16.7907 -1.09886 2.42175 +-17.3078 -1.06881 2.35552 +-3244.81 -188.431 415.278 +-3248.67 -176.723 389.476 +-3252.28 -165.003 363.645 +-3255.64 -153.269 337.787 +-3258.75 -141.524 311.902 +-3261.61 -129.769 285.994 +-3263.83 -117.988 260.032 +-3266.2 -106.215 234.086 +-3268.32 -94.4339 208.12 +-3270.59 -82.6557 182.163 +-3271.81 -70.8505 156.146 +-3273.58 -59.0578 130.156 +-3274.7 -47.2515 104.136 +-3275.58 -35.4418 78.1093 +-3276.2 -23.6294 52.0762 +-3276.58 -11.8151 26.039 +94.6 0 0 +94.4964 -0.333958 0.754011 +95.1855 -0.672839 1.51913 +95.3673 -1.01131 2.28334 +95.142 -1.34547 3.0378 +95.1094 -1.68165 3.79683 +95.0695 -2.01769 4.55555 +95.0224 -2.35359 5.31393 +95.2674 -2.69778 6.09104 +95.405 -3.0407 6.8653 +95.2362 -3.37421 7.61829 +95.359 -3.71841 8.39541 +95.3746 -4.0595 9.16554 +95.681 -4.41474 9.96759 +95.7807 -4.76256 10.7529 +95.6744 -5.10087 11.5167 +95.5609 -5.43878 12.2797 +96.0334 -5.81219 13.1228 +95.9045 -6.15135 13.8885 +95.6697 -6.48334 14.6381 +95.3294 -6.80711 15.3691 +95.1791 -7.14376 16.1292 +94.9233 -7.47211 16.8705 +95.9346 -7.90417 17.846 +95.565 -8.22608 18.5728 +95.3841 -8.56349 19.3346 +95.0985 -8.89111 20.0743 +95.0005 -9.2363 20.8537 +94.7979 -9.5717 21.611 +95.653 -10.0178 22.6183 +95.4335 -10.3555 23.3807 +96.074 -10.7898 24.3612 +95.8378 -11.1289 25.1268 +95.4026 -11.4441 25.8386 +96.013 -11.8874 26.8394 +95.6578 -12.2141 27.577 +95.4861 -12.5642 28.3674 +95.9704 -13.0039 29.3603 +95.6865 -13.3426 30.1249 +96.2437 -13.8019 31.162 +95.8486 -14.1277 31.8975 +96.2899 -14.5793 32.9171 +95.8787 -14.9045 33.6514 +96.5773 -15.406 34.7837 +96.3344 -15.7619 35.5873 +95.9911 -16.1018 36.3546 +95.6405 -16.4404 37.1191 +96.1996 -16.9392 38.2454 +95.9223 -17.295 39.0486 +95.6369 -17.6502 39.8505 +96.0686 -18.1415 40.9598 +95.674 -18.4803 41.7248 +95.9912 -18.9597 42.8072 +95.4895 -19.2802 43.5307 +95.9614 -19.8007 44.7061 +96.152 -20.27 45.7655 +95.7115 -20.609 46.531 +96.0547 -21.1204 47.6856 +95.5085 -21.4394 48.4058 +95.7391 -21.9356 49.5262 +96.0422 -22.4554 50.6997 +95.6408 -22.8145 51.5105 +95.917 -23.3393 52.6955 +95.2399 -23.6351 53.3632 +95.4902 -24.1639 54.5572 +95.4719 -24.631 55.6118 +94.8536 -24.9454 56.3216 +95.063 -25.4808 57.5305 +95.2564 -26.0196 58.747 +95.3514 -26.5387 59.9191 +94.7759 -26.8747 60.6776 +94.9259 -27.4203 61.9094 +95.6258 -28.1355 63.5243 +95.0159 -28.4724 64.2849 +94.8779 -28.9533 65.3707 +94.8057 -29.4601 66.5149 +95.4281 -30.1929 68.1695 +95.0086 -30.6046 69.0991 +93.8015 -30.7608 69.4517 +93.6752 -31.2714 70.6046 +93.4574 -31.7575 71.702 +93.3779 -32.2969 72.92 +93.3576 -32.8648 74.2021 +93.3199 -33.435 75.4895 +93.2647 -34.0074 76.7818 +93.2656 -34.6093 78.1408 +93.1745 -35.1861 79.4432 +93.0655 -35.7649 80.75 +92.8668 -36.3175 81.9976 +92.7939 -36.9282 83.3764 +93.7624 -37.9706 85.7299 +93.2209 -38.416 86.7356 +92.8064 -38.9188 87.8708 +93.0655 -39.7153 89.6691 +92.6154 -40.2203 90.8094 +92.3532 -40.8149 92.1518 +89.262 -40.1465 90.6427 +89.2549 -40.8546 92.2414 +86.9934 -40.5266 91.5008 +86.7013 -41.1097 92.8175 +85.0408 -41.0425 92.6657 +83.7715 -41.1539 92.9171 +81.7487 -40.8817 92.3027 +81.0514 -41.2644 93.1667 +79.5435 -41.23 93.089 +79.3825 -41.895 94.5904 +77.7545 -41.786 94.3444 +77.6244 -42.4822 95.9161 +75.2365 -41.9359 94.6827 +75.0268 -42.5959 96.1731 +72.3853 -41.8642 94.5209 +70.5742 -41.5843 93.8891 +67.9979 -40.825 92.1747 +67.9434 -41.5702 93.8571 +66.5004 -41.4693 93.6294 +65.9267 -41.9075 94.6187 +64.2262 -41.6236 93.9778 +63.1701 -41.7455 94.253 +61.032 -41.134 92.8723 +60.1433 -41.3482 93.356 +58.65 -41.1385 92.8824 +57.7613 -41.3442 93.3469 +55.9955 -40.9093 92.3649 +55.5413 -41.4256 93.5306 +53.8014 -40.9769 92.5176 +53.0549 -41.2733 93.1869 +51.3463 -40.8096 92.14 +50.7327 -41.2069 93.0369 +49.1852 -40.8388 92.2058 +48.6478 -41.3033 93.2545 +47.291 -41.07 92.7279 +46.5286 -41.3462 93.3514 +45.1478 -41.0652 92.7169 +44.2611 -41.2231 93.0735 +42.5115 -40.5578 91.5712 +42.1717 -41.2304 93.0899 +40.5699 -40.6643 91.8117 +40.1685 -41.296 93.2381 +38.5246 -40.6424 91.7623 +37.9625 -41.1182 92.8367 +36.4935 -40.6039 91.6755 +35.9844 -41.1514 92.9116 +34.5428 -40.6262 91.7258 +33.8564 -40.9769 92.5176 +32.5086 -40.5173 91.4798 +32.1755 -41.326 93.3057 +30.7575 -40.7408 91.9845 +30.134 -41.1976 93.0159 +28.7765 -40.6408 91.7587 +28.1135 -41.053 92.6895 +26.9948 -40.7987 92.1153 +26.2649 -41.1279 92.8586 +24.7728 -40.2367 90.8464 +24.4884 -41.3073 93.2637 +23.1025 -40.5241 91.4953 +22.7045 -41.4738 93.6395 +21.2278 -40.4435 91.3133 +20.5349 -40.874 92.2853 +19.4816 -40.5873 91.638 +18.7703 -41.0129 92.5989 +17.7816 -40.8384 92.2049 +16.9834 -41.0996 92.7946 +15.972 -40.838 92.204 +15.1357 -41.0129 92.5989 +14.0843 -40.5837 91.6298 +13.2615 -40.7926 92.1015 +12.3697 -40.7975 92.1125 +11.558 -41.0814 92.7535 +10.5156 -40.5164 91.478 +9.73793 -40.955 92.4682 +8.74172 -40.4635 91.3585 +8.01067 -41.2195 93.0653 +7.02448 -40.6809 91.8492 +6.18422 -40.9465 92.449 +5.22313 -40.3602 91.1252 +4.40556 -40.8627 92.2597 +3.51438 -40.7554 92.0174 +2.65958 -41.1304 92.8641 +1.74175 -40.4095 91.2364 +0.886616 -41.1429 92.8924 +6.16589e-15 -40.7801 92.0732 +-0.886616 -41.1429 92.8924 +-1.75222 -40.6525 91.7852 +-2.65958 -41.1304 92.8641 +-3.51089 -40.7149 91.926 +-4.45354 -41.3078 93.2646 +-5.2493 -40.5626 91.5822 +-6.21474 -41.1486 92.9052 +-7.00355 -40.5594 91.5749 +-8.03421 -41.3406 93.3386 +-8.82016 -40.8267 92.1784 +-9.81461 -41.2778 93.1969 +-10.6515 -41.0401 92.6602 +-11.558 -41.0814 92.7535 +-12.3454 -40.7173 91.9315 +-13.5486 -41.6759 94.0957 +-14.2096 -40.9445 92.4444 +-15.1357 -41.0129 92.5989 +-15.8937 -40.6379 91.7523 +-16.9999 -41.1393 92.8842 +-17.7816 -40.8384 92.2049 +-18.7703 -41.0129 92.5989 +-19.4816 -40.5873 91.638 +-20.8539 -41.509 93.719 +-21.3525 -40.6813 91.8501 +-22.6396 -41.3555 93.3725 +-23.17 -40.6424 91.7623 +-24.6285 -41.5434 93.7967 +-25.1115 -40.787 92.0887 +-26.4902 -41.4807 93.655 +-27.2278 -41.1506 92.9098 +-28.4342 -41.5212 93.7464 +-28.997 -40.9522 92.4618 +-30.4464 -41.6244 93.9796 +-31.1961 -41.3219 93.2966 +-32.5063 -41.7508 94.2649 +-33.312 -41.5187 93.7409 +-34.3006 -41.5147 93.7318 +-35.0962 -41.277 93.1951 +-36.5852 -41.8387 94.4633 +-37.0066 -41.1749 92.9647 +-38.3827 -41.5734 93.8644 +-39.2771 -41.4361 93.5544 +-40.7916 -41.9363 94.6836 +-41.394 -41.4904 93.6769 +-43.0519 -42.0906 95.032 +-43.7228 -41.7131 94.1798 +-45.2181 -42.1144 95.0859 +-45.7579 -41.62 93.9695 +-47.5238 -42.2307 95.3483 +-47.9249 -41.6204 93.9704 +-49.4657 -41.9978 94.8226 +-50.5004 -41.9306 94.6708 +-52.0713 -42.2942 95.4919 +-52.2997 -41.5673 93.8507 +-54.3016 -42.2428 95.3758 +-54.9282 -41.835 94.455 +-56.591 -42.2088 95.299 +-57.0136 -41.6528 94.0436 +-59.4355 -42.5425 96.0524 +-59.9 -42.0152 94.8619 +-62.4272 -42.9183 96.9009 +-62.3196 -42.0019 94.8317 +-64.0061 -42.2979 95.5001 +-64.7561 -41.967 94.7531 +-67.3236 -42.7956 96.6238 +-67.4808 -42.0804 95.0091 +-69.3785 -42.4481 95.8393 +-69.955 -42.0002 94.8281 +-71.9336 -42.3854 95.6976 +-72.8442 -42.1294 95.1198 +-75.143 -42.662 96.3221 +-75.5304 -42.0999 95.053 +-77.8028 -42.5798 96.1365 +-78.4165 -42.1416 95.1472 +-80.9653 -42.7304 96.4766 +-81.5136 -42.2513 95.395 +-83.915 -42.7223 96.4583 +-84.266 -42.1408 95.1454 +-87.0791 -42.7786 96.5854 +-87.7405 -42.3453 95.6071 +-90.598 -42.9576 96.9896 +-91.5202 -42.6356 96.2627 +-94.6221 -43.3115 97.7887 +-94.7489 -42.6142 96.2142 +-98.5686 -43.5618 98.3537 +-98.8216 -42.9155 96.8945 +-101.67 -43.3873 97.9597 +-102.809 -43.1135 97.3416 +-106.398 -43.8461 98.9956 +-106.915 -43.2969 97.7558 +-110.197 -43.8538 99.013 +-110.994 -43.4067 98.0036 +-114.899 -44.1555 99.6942 +-115.188 -43.4994 98.2129 +-119.218 -44.2397 99.8843 +-121.207 -44.196 99.7856 +-125.375 -44.92 101.42 +-126.338 -44.475 100.416 +-130.41 -45.1051 101.838 +-130.687 -44.4086 100.266 +-133.954 -44.7176 100.963 +-134.913 -44.2425 99.8907 +-137.739 -44.3693 100.177 +-138.611 -43.8558 99.0176 +-139.154 -43.2411 97.6296 +-139.522 -42.5769 96.1301 +-139.067 -41.6726 94.0884 +-140.041 -41.2037 93.0296 +-139.702 -40.3543 91.1119 +-139.665 -39.6036 89.4169 +-140.761 -39.1773 88.4545 +-141.019 -38.5198 86.97 +-142.178 -38.1095 86.0435 +-140.813 -37.0321 83.611 +-140.846 -36.3372 82.0421 +-140.776 -35.6235 80.4307 +-140.089 -34.7649 78.4922 +-140.147 -34.1017 76.9947 +-145.012 -34.5917 78.101 +-152.507 -35.6573 80.5069 +-185.995 -42.615 96.216 +-217.518 -48.8276 110.243 +-228.405 -50.2215 113.39 +-229.301 -49.3743 111.477 +-236.122 -49.7772 112.387 +-238.522 -49.2167 111.121 +-244.944 -49.4561 111.662 +-250.494 -49.4763 111.708 +-256.605 -49.5654 111.909 +-257.935 -48.7081 109.973 +-265.618 -49.0207 110.679 +-268.765 -48.459 109.411 +-281.996 -49.6549 112.111 +-282.687 -48.5935 109.714 +-296.011 -49.6537 112.108 +-298.182 -48.7875 110.152 +-310.48 -49.5278 111.824 +-316.297 -49.169 111.014 +-327.273 -49.5525 111.879 +-331.242 -48.8235 110.234 +-346.044 -49.6245 112.042 +-356.65 -49.7315 112.284 +-367.57 -49.8056 112.451 +-372.814 -49.0556 110.758 +-392.645 -50.1352 113.195 +-400.596 -49.5982 111.983 +-420.538 -50.4462 113.897 +-429.492 -49.8736 112.605 +-440.283 -49.4468 111.641 +-436.985 -47.4175 107.059 +-379.32 -39.7267 89.6949 +-519.399 -52.4435 118.407 +-383.6 -37.295 84.2046 +-378.933 -35.4278 79.9889 +-378.9 -34.0172 76.804 +-382.651 -32.938 74.3673 +-381.583 -31.4391 70.9831 +-726.6 -57.1962 129.137 +-3221.44 -241.788 545.909 +-3226.53 -230.395 520.185 +-3231.76 -219.01 494.481 +-3235.96 -207.556 468.619 +-3240.71 -196.136 442.836 +-3244.81 -184.676 416.961 +-3248.67 -173.202 391.055 +-3252.28 -161.715 365.119 +-3255.64 -150.215 339.156 +-3258.75 -138.704 313.166 +-3261.61 -127.183 287.153 +-3264.23 -115.651 261.118 +-3266.6 -104.112 235.063 +-3268.72 -92.5635 208.99 +-3270.59 -81.0086 182.901 +-3272.21 -69.4472 156.798 +-3273.58 -57.881 130.684 +-3274.7 -46.3099 104.558 +-3275.58 -34.7356 78.4259 +-3276.2 -23.1585 52.2872 +-3276.58 -11.5797 26.1446 +94.6 0 0 +94.5964 -0.327487 0.757794 +95.3855 -0.660489 1.52835 +94.4676 -0.981323 2.27075 +95.142 -1.31801 3.04982 +95.3092 -1.65078 3.81985 +95.3691 -1.98274 4.58798 +95.4217 -2.31523 5.35737 +95.3671 -2.64548 6.12154 +95.5047 -2.98174 6.89965 +95.4355 -3.31225 7.66443 +95.6576 -3.65391 8.45502 +95.5736 -3.98492 9.22098 +95.681 -4.32462 10.007 +95.5822 -4.65566 10.773 +95.4761 -4.98639 11.5383 +95.3628 -5.31672 12.3027 +95.1433 -5.64079 13.0526 +95.0156 -5.96993 13.8142 +95.6697 -6.351 14.696 +95.3294 -6.66816 15.4299 +95.3757 -7.01237 16.2264 +95.0215 -7.32716 16.9548 +95.6407 -7.71909 17.8617 +95.4672 -8.0499 18.6272 +95.3841 -8.38868 19.4111 +95.196 -8.71854 20.1744 +95.0005 -9.04776 20.9362 +95.6712 -9.46267 21.8963 +95.4594 -9.79351 22.6619 +95.2403 -10.1236 23.4257 +95.8812 -10.5483 24.4084 +95.6455 -10.8798 25.1756 +95.4026 -11.2105 25.9408 +95.1523 -11.5404 26.704 +95.6578 -11.9648 27.6861 +95.4861 -12.3077 28.4796 +95.9704 -12.7385 29.4764 +95.6865 -13.0703 30.2441 +95.3953 -13.401 31.0095 +95.8486 -13.8393 32.0236 +95.4469 -14.1567 32.758 +95.9721 -14.6145 33.8174 +96.5773 -15.0916 34.9213 +96.3344 -15.4402 35.728 +95.9911 -15.7731 36.4984 +96.4689 -16.2443 37.5887 +96.2913 -16.6093 38.4333 +95.9223 -16.942 39.2031 +95.6369 -17.2899 40.0081 +95.978 -17.7544 41.0831 +95.674 -18.1031 41.8899 +95.9013 -18.5553 42.9363 +95.4895 -18.8866 43.7029 +95.9614 -19.3965 44.8829 +96.2407 -19.8745 45.9889 +95.7115 -20.1883 46.715 +96.0547 -20.6893 47.8742 +95.5959 -21.021 48.6418 +95.8262 -21.5074 49.7673 +96.1288 -22.0168 50.9461 +95.5547 -22.3286 51.6677 +95.0599 -22.6586 52.4311 +95.3252 -23.1733 53.6222 +95.4902 -23.6706 54.773 +95.4719 -24.1282 55.8317 +95.6923 -24.6522 57.0444 +95.1464 -24.9825 57.8087 +95.2564 -25.4884 58.9794 +95.3514 -25.997 60.1561 +95.4312 -26.5081 61.3389 +95.4958 -27.0218 62.5274 +94.8977 -27.3513 63.29 +95.0159 -27.8912 64.5392 +95.0376 -28.41 65.7398 +95.0437 -28.9311 66.9456 +95.1129 -29.4788 68.213 +94.9304 -29.9552 69.3152 +94.5009 -30.3576 70.2464 +93.9067 -30.7088 71.059 +93.917 -31.2622 72.3397 +93.2258 -31.5861 73.0892 +92.7538 -31.9857 74.0139 +93.3948 -32.7788 75.8489 +92.6702 -33.1008 76.5942 +92.6758 -33.6884 77.9538 +93.2476 -34.4949 79.82 +93.0655 -35.0349 81.0695 +92.9387 -35.6037 82.3858 +92.7939 -36.1743 83.7062 +93.4795 -37.0833 85.8094 +92.9406 -37.5186 86.8168 +93.0842 -38.2384 88.4824 +93.1344 -38.9333 90.0904 +93.161 -39.6314 91.7057 +92.6234 -40.0988 92.7872 +91.7378 -40.4177 93.5252 +91.2428 -40.912 94.669 +89.5521 -40.8672 94.5652 +88.4548 -41.085 95.0692 +86.1978 -40.7517 94.2981 +85.6797 -41.2321 95.4097 +83.6367 -40.9723 94.8085 +83.1057 -41.4464 95.9054 +81.0211 -41.1385 95.1931 +80.3565 -41.5435 96.1303 +79.0785 -41.63 96.3304 +78.4571 -42.0616 97.3292 +77.235 -42.1711 97.5825 +76.4786 -42.5337 98.4215 +74.6797 -42.3096 97.9029 +72.7832 -42.0105 97.2108 +70.0669 -41.2083 95.3547 +69.4337 -41.615 96.2956 +67.2629 -41.0885 95.0774 +67.0013 -41.7213 96.5416 +65.498 -41.5816 96.2185 +64.8421 -41.9759 97.1309 +62.3196 -41.1445 95.2069 +61.4121 -41.3587 95.7026 +60.2 -41.3634 95.7136 +58.9923 -41.3634 95.7136 +57.3045 -41.0108 94.8975 +56.591 -41.3472 95.6759 +54.9282 -40.981 94.8287 +54.3016 -41.3805 95.7531 +52.5721 -40.931 94.713 +52.2944 -41.6082 96.28 +50.588 -41.1461 95.2105 +50.0684 -41.6419 96.358 +48.0094 -40.843 94.5092 +47.98 -41.7657 96.6444 +46.2053 -41.1691 95.2638 +45.4574 -41.4729 95.9669 +43.84 -40.9715 94.8066 +43.3198 -41.488 96.0018 +41.9185 -41.1583 95.239 +40.8282 -41.1175 95.1445 +39.4921 -40.8128 94.4395 +38.803 -41.1706 95.2675 +37.2802 -40.6323 94.0218 +36.9858 -41.4333 95.8751 +35.2916 -40.6593 94.0842 +35.0622 -41.5701 96.1918 +33.5901 -41.0108 94.8975 +32.7769 -41.2389 95.4253 +31.5177 -40.8957 94.6313 +30.7873 -41.2313 95.4079 +29.4932 -40.8025 94.4156 +28.9686 -41.4384 95.8871 +27.6936 -41.0005 94.8737 +26.991 -41.4019 95.8026 +25.5953 -40.724 94.2338 +25.0253 -41.3511 95.6851 +23.7998 -40.8949 94.6295 +23.1374 -41.4019 95.8026 +21.9347 -40.9374 94.7277 +21.2127 -41.3615 95.709 +20.0159 -40.8493 94.5239 +19.2805 -41.2678 95.4924 +17.9726 -40.4348 93.5647 +17.363 -41.1603 95.2436 +16.3161 -40.8664 94.5634 +15.6235 -41.4706 95.9614 +14.4044 -40.6589 94.0833 +13.6922 -41.2579 95.4694 +12.5525 -40.5554 93.8437 +11.875 -41.3464 95.6741 +10.871 -41.0306 94.9434 +10.0542 -41.4222 95.8494 +9.02062 -40.9021 94.646 +8.2539 -41.6042 96.2708 +7.16399 -40.6418 94.0438 +6.33684 -41.1004 95.105 +5.3749 -40.6851 94.1439 +4.52769 -41.1381 95.1922 +3.59465 -40.835 94.4909 +2.71717 -41.1631 95.25 +1.78713 -40.6157 93.9832 +0.908432 -41.2948 95.5548 +6.28835e-15 -40.741 94.2733 +-0.912796 -41.4932 96.0138 +-1.7976 -40.8537 94.534 +-2.73811 -41.4805 95.9844 +-3.59465 -40.835 94.4909 +-4.54078 -41.2571 95.4676 +-5.3906 -40.8041 94.4193 +-6.38568 -41.4174 95.8384 +-7.18492 -40.7605 94.3183 +-8.23036 -41.4856 95.9963 +-8.97704 -40.7045 94.1889 +-10.083 -41.5408 96.1239 +-10.9023 -41.1492 95.2179 +-11.875 -41.3464 95.6741 +-12.6866 -40.9886 94.8461 +-13.7314 -41.3757 95.742 +-14.5158 -40.9731 94.8103 +-15.5496 -41.2742 95.507 +-16.2848 -40.7878 94.3816 +-17.4125 -41.2778 95.5153 +-18.1115 -40.747 94.2871 +-19.3899 -41.5019 96.0339 +-19.9014 -40.6157 93.9832 +-21.2526 -41.4392 95.8889 +-21.9347 -40.9374 94.7277 +-23.1374 -41.4019 95.8026 +-23.9348 -41.127 95.1665 +-25.1654 -41.5824 96.2203 +-25.7405 -40.9548 94.7681 +-26.991 -41.4019 95.8026 +-27.7454 -41.077 95.0508 +-29.129 -41.6677 96.4176 +-29.7964 -41.2218 95.3859 +-31.1281 -41.6879 96.4645 +-31.9562 -41.4646 95.9477 +-33.3783 -41.9958 97.1768 +-34.0537 -41.5765 96.2065 +-35.6016 -42.2096 97.6716 +-36.1381 -41.6348 96.3415 +-37.2862 -41.7697 96.6536 +-37.9984 -41.4154 95.8338 +-39.5034 -41.9141 96.9877 +-39.9939 -41.3313 95.6392 +-41.7811 -42.0771 97.365 +-42.4804 -41.7102 96.5159 +-43.9703 -42.1112 97.4439 +-44.6606 -41.7383 96.581 +-46.4144 -42.3461 97.9873 +-47.1001 -41.9664 97.1089 +-48.3947 -42.1263 97.4788 +-48.9392 -41.6336 96.3387 +-50.9295 -42.358 98.0149 +-51.5524 -41.9303 97.0253 +-53.1868 -42.3183 97.9231 +-53.7071 -41.8145 96.7573 +-55.456 -42.2604 97.7891 +-56.5244 -42.1719 97.5844 +-58.1657 -42.4976 98.338 +-58.8074 -42.0862 97.3861 +-60.8143 -42.6408 98.6694 +-61.25 -42.085 97.3833 +-63.3915 -42.6916 98.7869 +-63.8132 -42.1307 97.4889 +-66.2528 -42.8891 99.244 +-66.7168 -42.3552 98.0085 +-68.8281 -42.8586 99.1733 +-69.2781 -42.3195 97.9258 +-71.0895 -42.6071 98.5914 +-71.6326 -42.1295 97.4861 +-74.3125 -42.8931 99.2532 +-74.3929 -42.1469 97.5265 +-76.7109 -42.663 98.7208 +-77.2938 -42.2033 97.6569 +-79.6468 -42.6991 98.8043 +-80.583 -42.4218 98.1627 +-82.9133 -42.8653 99.1889 +-83.299 -42.2953 97.8698 +-85.907 -42.8435 99.1384 +-87.0979 -42.6678 98.7318 +-89.1782 -42.9157 99.3055 +-89.926 -42.5143 98.3766 +-93.7154 -43.5286 100.724 +-94.0789 -42.9328 99.345 +-97.0738 -43.5266 100.719 +-97.4254 -42.9237 99.3239 +-100.393 -43.462 100.57 +-101.345 -43.1129 99.7617 +-104.768 -43.7964 101.343 +-105.449 -43.318 100.236 +-108.571 -43.8281 101.417 +-109.743 -43.535 100.738 +-112.836 -43.9876 101.786 +-113.943 -43.6504 101.006 +-117.656 -44.2919 102.49 +-117.382 -43.4231 100.48 +-124.084 -45.1055 104.373 +-124.402 -44.4351 102.821 +-128.671 -45.1595 104.497 +-128.98 -44.4779 102.92 +-132.539 -44.906 103.911 +-133.522 -44.4454 102.845 +-136.963 -44.7889 103.64 +-137.943 -44.3129 102.539 +-138.443 -43.6857 101.087 +-138.611 -42.9606 99.4092 +-140.027 -42.6238 98.6299 +-140.161 -41.899 96.9528 +-139.871 -41.058 95.0068 +-139.879 -40.3158 93.2893 +-139.946 -39.5996 91.6322 +-140.485 -39.0227 90.2971 +-141.75 -38.6472 89.4283 +-141.683 -37.911 87.7248 +-140.593 -36.9155 85.4212 +-140.393 -36.1681 83.6918 +-140.003 -35.3823 81.8734 +-140.098 -34.7281 80.3597 +-141.538 -34.4076 79.6181 +-142.033 -33.855 78.3394 +-161.038 -37.6305 87.0756 +-166.71 -38.1823 88.3526 +-223.594 -50.1841 116.124 +-224.777 -49.4272 114.373 +-231.041 -49.7639 115.152 +-233.893 -49.3347 114.159 +-239.582 -49.4755 114.485 +-242.265 -48.9686 113.312 +-252.103 -49.8627 115.381 +-255.617 -49.4577 114.443 +-260.306 -49.2538 113.972 +-263.554 -48.7532 112.813 +-273.989 -49.5335 114.619 +-276.987 -48.9222 113.204 +-287.957 -49.6695 114.934 +-290.88 -48.9809 113.34 +-303.125 -49.8088 115.256 +-305.785 -49.0102 113.408 +-318.389 -49.7528 115.126 +-321.525 -48.9614 113.295 +-332.238 -49.2776 114.027 +-339.605 -49.0344 113.464 +-358.11 -50.3066 116.408 +-363.93 -49.7108 115.029 +-375.631 -49.8588 115.371 +-381.469 -49.1697 113.777 +-404.281 -50.5669 117.01 +-411.402 -49.896 115.458 +-427.825 -50.2729 116.33 +-432.664 -49.2161 113.884 +-430.839 -47.3984 109.678 +-382.7 -40.6791 94.1301 +-380.095 -38.9952 90.2336 +-379.774 -37.5627 86.9189 +-384.767 -36.6448 84.7949 +-381.271 -34.9188 80.8009 +-380.267 -33.443 77.386 +-380.01 -32.0429 74.1461 +-383.445 -30.9476 71.6116 +-744.564 -57.4139 132.854 +-3221.44 -236.853 548.069 +-3226.53 -225.692 522.243 +-3231.76 -214.539 496.437 +-3236.36 -203.344 470.53 +-3240.71 -192.132 444.587 +-3244.81 -180.906 418.61 +-3248.67 -169.666 392.602 +-3252.28 -158.414 366.563 +-3255.64 -147.149 340.497 +-3258.75 -135.873 314.405 +-3261.61 -124.587 288.289 +-3264.23 -113.291 262.151 +-3266.6 -101.986 235.993 +-3268.72 -90.674 209.816 +-3270.59 -79.3549 183.625 +-3272.21 -68.0296 157.418 +-3273.58 -56.6994 131.201 +-3274.7 -45.3646 104.972 +-3275.58 -34.0265 78.7361 +-3276.2 -22.6858 52.4941 +-3276.58 -11.3433 26.248 +94.8 0 0 +94.7964 -0.321314 0.762327 +94.5856 -0.641249 1.52138 +95.5672 -0.97198 2.30605 +95.4418 -1.2945 3.07124 +95.509 -1.61963 3.84263 +95.469 -1.94329 4.61051 +95.6213 -2.27154 5.38929 +95.5666 -2.59555 6.15802 +95.0062 -2.90413 6.89012 +95.7343 -3.25311 7.7181 +95.6576 -3.57747 8.48765 +95.673 -3.9056 9.26614 +95.681 -4.23415 10.0456 +95.5822 -4.55827 10.8146 +95.4761 -4.88208 11.5829 +95.3628 -5.2055 12.3502 +95.2422 -5.52849 13.1165 +95.0156 -5.84504 13.8675 +95.6697 -6.21813 14.7527 +95.5264 -6.54218 15.5215 +95.1791 -6.85154 16.2555 +95.0215 -7.17387 17.0202 +94.8567 -7.49566 17.7837 +95.4672 -7.8815 18.6991 +95.3841 -8.21319 19.486 +95.196 -8.53615 20.2522 +95.8757 -8.94008 21.2106 +95.6712 -9.26471 21.9808 +95.4594 -9.58863 22.7493 +95.4335 -9.9319 23.5637 +95.2067 -10.255 24.3303 +95.6455 -10.6522 25.2727 +95.4026 -10.976 26.0409 +95.0567 -11.2876 26.7801 +95.6578 -11.7145 27.7929 +95.391 -12.0382 28.5611 +96.0652 -12.4844 29.6195 +95.6865 -12.7968 30.3608 +96.1494 -13.2244 31.3752 +95.8486 -13.5498 32.1472 +95.5406 -13.8741 32.9168 +95.9721 -14.3087 33.9479 +95.5539 -14.6193 34.6846 +96.3344 -15.1172 35.8659 +96.0835 -15.458 36.6745 +95.7325 -15.783 37.4457 +96.1996 -16.2463 38.5449 +96.0136 -16.6033 39.3919 +95.5459 -16.912 40.1243 +96.0686 -17.3994 41.2805 +96.3961 -17.8581 42.3689 +95.9013 -18.1671 43.102 +95.4895 -18.4915 43.8715 +95.8723 -18.9731 45.0143 +96.2407 -19.4587 46.1664 +95.7115 -19.766 46.8953 +95.2638 -20.0896 47.6632 +95.5959 -20.5812 48.8295 +95.8262 -21.0574 49.9594 +95.436 -21.4009 50.7741 +95.6408 -21.8812 51.9138 +95.917 -22.3846 53.1081 +95.922 -22.8306 54.1662 +95.4054 -23.1548 54.9355 +95.4719 -23.6234 56.0472 +95.6923 -24.1365 57.2645 +95.1464 -24.4599 58.0318 +95.1735 -24.9335 59.1554 +95.3514 -25.4531 60.3882 +95.5131 -25.9758 61.6284 +95.6586 -26.5016 62.8757 +94.8977 -26.7791 63.5342 +95.0963 -27.3308 64.843 +95.0376 -27.8157 65.9935 +95.1231 -28.3495 67.2601 +95.1129 -28.8621 68.4763 +95.0086 -29.3527 69.6401 +94.8895 -29.8447 70.8073 +94.9098 -30.3875 72.0952 +93.917 -30.6082 72.6188 +93.8341 -31.1271 73.85 +93.433 -31.5459 74.8436 +93.3199 -32.0673 76.0806 +92.6702 -32.4084 76.8897 +93.3393 -33.2198 78.8148 +93.2476 -33.7733 80.128 +93.0655 -34.3019 81.3823 +93.0826 -34.9128 82.8317 +92.7939 -35.4176 84.0292 +93.5502 -36.3349 86.2056 +93.0107 -36.7614 87.2175 +92.8064 -37.3267 88.5588 +92.5149 -37.8653 89.8364 +92.9564 -38.7171 91.8574 +92.691 -39.2882 93.2125 +92.6746 -39.9765 94.8454 +92.8331 -40.7545 96.6911 +90.6674 -40.5105 96.1124 +90.7279 -41.2594 97.889 +88.319 -40.8811 96.9915 +88.1604 -41.5382 98.5507 +84.9583 -40.749 96.6782 +85.16 -41.5825 98.6557 +82.9296 -41.2268 97.8116 +82.3654 -41.6913 98.9137 +80.2821 -41.3794 98.1738 +80.1226 -42.056 99.779 +78.293 -41.8544 99.3008 +78.5691 -42.7823 101.502 +75.3679 -41.8062 99.1865 +75.2187 -42.5081 100.852 +71.9681 -41.4411 98.3203 +71.6966 -42.0723 99.8177 +68.8424 -41.1735 97.6854 +68.452 -41.7328 99.0123 +66.7168 -41.4691 98.3866 +66.5663 -42.1904 100.098 +64.3798 -41.6155 98.734 +63.8991 -42.1333 99.9624 +60.95 -41.0026 97.2799 +61.2575 -42.0529 99.7716 +58.9528 -41.3079 98.0042 +58.4519 -41.8132 99.2031 +56.2427 -41.0838 97.4725 +55.8716 -41.6862 98.9018 +53.7979 -41.0089 97.2947 +53.7222 -41.8501 99.2906 +51.5524 -41.0531 97.3997 +51.6613 -42.0676 99.8067 +49.3196 -41.0795 97.4624 +49.0997 -41.8459 99.2805 +47.3035 -41.2656 97.9038 +46.8929 -41.8874 99.3791 +45.0904 -41.2582 97.8863 +44.5061 -41.7324 99.0114 +42.8175 -41.1615 97.6568 +42.4042 -41.8109 99.1976 +40.6389 -41.1192 97.5564 +40.2388 -41.8012 99.1745 +38.3747 -40.9506 97.1565 +37.9538 -41.628 98.7635 +36.5287 -41.2042 97.7582 +36.1727 -41.9896 99.6214 +34.3936 -41.1133 97.5426 +33.7392 -41.5616 98.606 +32.3948 -41.1545 97.6402 +31.8665 -41.7841 99.134 +30.2925 -41.0318 97.349 +29.9841 -41.9935 99.6307 +28.3666 -41.118 97.5536 +27.7922 -41.7391 99.0271 +26.3695 -41.078 97.4587 +25.8424 -41.8078 99.1902 +24.5197 -41.2504 97.8678 +23.8516 -41.7872 99.1413 +22.4753 -41.0687 97.4366 +21.8507 -41.7142 98.9681 +20.512 -40.9859 97.2403 +19.973 -41.856 99.3044 +18.6672 -41.1188 97.5555 +17.9902 -41.755 99.0649 +16.8167 -41.2388 97.8402 +16.0521 -41.7169 98.9746 +14.7663 -40.8081 96.8183 +14.149 -41.7425 99.0354 +13.0035 -41.1335 97.5905 +12.3052 -41.9476 99.5219 +11.1218 -41.0994 97.5094 +10.3609 -41.7927 99.1542 +9.27337 -41.1685 97.6734 +8.5285 -42.089 99.8573 +7.40116 -41.1091 97.5324 +6.58103 -41.7915 99.1515 +5.50574 -40.8038 96.8081 +4.70217 -41.8295 99.2418 +3.70284 -41.184 97.7103 +2.82973 -41.9717 99.5791 +1.84123 -40.97 97.2025 +0.938103 -41.7515 99.0566 +6.47817e-15 -41.0928 97.4937 +-0.940721 -41.868 99.333 +-1.84646 -41.0865 97.479 +-2.82973 -41.9717 99.5791 +-3.72378 -41.4171 98.2632 +-4.70217 -41.8295 99.2418 +-5.56855 -41.2691 97.9121 +-6.56272 -41.675 98.875 +-7.42209 -41.2252 97.8079 +-8.55204 -42.2051 100.133 +-9.29952 -41.2846 97.9489 +-10.3801 -41.8699 99.3376 +-11.1845 -41.3312 98.0595 +-12.2712 -41.8319 99.2473 +-12.9913 -41.0947 97.4983 +-14.2274 -41.9733 99.5827 +-14.9611 -41.3468 98.0964 +-16.1556 -41.9857 99.6122 +-16.7228 -41.0089 97.2947 +-18.0892 -41.9849 99.6104 +-18.7193 -41.2334 97.8273 +-20.137 -42.1997 100.12 +-20.7409 -41.4435 98.3258 +-21.9703 -41.9426 99.5099 +-22.5376 -41.1825 97.7066 +-23.9599 -41.9768 99.591 +-24.3847 -41.0236 97.3297 +-25.9825 -42.0346 99.7283 +-26.5146 -41.304 97.995 +-28.0926 -42.1904 100.098 +-28.7289 -41.6435 98.8004 +-29.904 -41.8812 99.3643 +-30.7611 -41.6664 98.8548 +-32.3777 -42.4541 100.724 +-32.6287 -41.4516 98.3452 +-34.3707 -42.3395 100.452 +-34.8571 -41.6672 98.8566 +-36.4266 -42.2844 100.321 +-36.7566 -41.4613 98.3682 +-38.5547 -42.2871 100.327 +-38.8877 -41.4979 98.4548 +-40.6941 -42.2739 100.296 +-41.3915 -41.8808 99.3634 +-42.9906 -42.3892 100.57 +-43.2671 -41.5938 98.6824 +-45.6159 -42.773 101.48 +-45.4811 -41.6159 98.735 +-47.7701 -42.6712 101.239 +-48.239 -42.0816 99.8398 +-50.1779 -42.7648 101.461 +-50.3761 -41.9597 99.5505 +-52.4793 -42.7337 101.387 +-53.0429 -42.2401 100.216 +-54.9716 -42.8235 101.6 +-55.2052 -42.0816 99.8398 +-57.2107 -42.6856 101.273 +-58.1206 -42.4557 100.727 +-59.9311 -42.8712 101.713 +-60.6012 -42.4626 100.744 +-62.8332 -43.1346 102.338 +-62.75 -42.2137 100.153 +-65.6247 -43.2713 102.662 +-66.4399 -42.9474 101.894 +-69.1266 -43.8131 103.948 +-68.5186 -42.5893 101.044 +-71.5683 -43.6329 103.52 +-71.2932 -42.6394 101.163 +-73.9044 -43.3676 102.891 +-74.149 -42.6968 101.299 +-75.9551 -42.9241 101.839 +-76.8019 -42.6013 101.073 +-78.9175 -42.9718 101.952 +-78.8808 -42.1686 100.046 +-82.6209 -43.3672 102.89 +-82.2079 -42.3721 100.529 +-85.6527 -43.3552 102.861 +-85.5154 -42.5124 100.862 +-89.0818 -43.4973 103.199 +-89.4894 -42.9221 101.834 +-92.8038 -43.7261 103.741 +-92.3686 -42.7555 101.439 +-96.3131 -43.7991 103.915 +-96.8999 -43.2954 102.719 +-100.188 -43.9832 104.351 +-100.303 -43.2666 102.651 +-104.041 -44.0994 104.627 +-103.937 -43.2903 102.708 +-108.072 -44.2326 104.943 +-107.95 -43.4173 103.009 +-111.935 -44.2411 104.963 +-112.571 -43.7226 103.733 +-116.331 -44.4011 105.343 +-116.677 -43.7626 103.828 +-121.863 -44.9162 106.565 +-123.233 -44.6338 105.895 +-127.328 -45.3162 107.514 +-128.341 -44.8832 106.487 +-131.592 -45.2183 107.282 +-132.904 -44.8727 106.462 +-136.569 -45.3034 107.484 +-136.203 -44.3895 105.315 +-138.198 -44.2473 104.978 +-138.021 -43.4103 102.992 +-140.009 -43.2554 102.625 +-139.478 -42.3248 100.417 +-139.472 -41.5666 98.6179 +-139.841 -40.9288 97.1049 +-139.871 -40.199 95.3734 +-139.798 -39.4494 93.5949 +-141.656 -39.2447 93.1093 +-141.468 -38.4737 91.2798 +-141.173 -37.6847 89.408 +-141.351 -37.031 87.8571 +-140.009 -35.9931 85.3947 +-140.142 -35.348 83.8641 +-139.834 -34.6004 82.0904 +-140.352 -34.0633 80.8162 +-156.63 -37.2798 88.4474 +-157.376 -36.7275 87.1371 +-190.334 -43.5455 103.313 +-221.183 -49.5987 117.674 +-230.905 -50.7406 120.384 +-229.675 -49.4476 117.316 +-238.335 -50.2609 119.246 +-239.014 -49.3602 117.109 +-246.678 -49.8753 118.33 +-250.016 -49.4783 117.389 +-258.368 -50.0326 118.704 +-259.751 -49.206 116.743 +-268.068 -49.6616 117.824 +-270.805 -49.0464 116.364 +-283.908 -50.2528 119.226 +-285.666 -49.3995 117.202 +-294.651 -49.7611 118.06 +-296.587 -48.8973 116.01 +-312.733 -50.3126 119.368 +-318.209 -49.9347 118.471 +-327.693 -50.1355 118.948 +-328.154 -48.9252 116.077 +-347.131 -50.4093 119.598 +-354.546 -50.1207 118.913 +-366.499 -50.4081 119.595 +-368.941 -49.3412 117.063 +-389.192 -50.5783 119.998 +-391.55 -49.4131 117.234 +-416.965 -51.0626 121.147 +-420.678 -49.9537 118.517 +-430.318 -49.5078 117.459 +-431.799 -48.0902 114.095 +-377.069 -40.615 96.3603 +-380.671 -39.6172 93.993 +-380.676 -38.2378 90.7202 +-379.677 -36.7675 87.232 +-379.419 -35.3795 83.939 +-380.492 -34.1184 80.9469 +-379.779 -32.7014 77.5849 +-380.988 -31.4533 74.6238 +-385.208 -30.4395 72.2186 +-3216.11 -242.808 576.068 +-3221.44 -231.898 550.183 +-3226.53 -220.97 524.258 +-3231.37 -210.026 498.292 +-3235.96 -199.065 472.288 +-3240.71 -188.113 446.303 +-3244.81 -177.121 420.226 +-3248.67 -166.117 394.117 +-3252.28 -155.1 367.978 +-3255.64 -144.07 341.811 +-3258.75 -133.03 315.618 +-3261.61 -121.98 289.402 +-3264.23 -110.921 263.162 +-3266.6 -99.8527 236.903 +-3268.72 -88.7771 210.626 +-3270.59 -77.6948 184.333 +-3272.21 -66.6064 158.026 +-3273.58 -55.5133 131.707 +-3274.7 -44.4155 105.377 +-3275.58 -33.3146 79.0399 +-3276.2 -22.2112 52.6966 +-3276.58 -11.106 26.3493 +94.1 0 0 +94.8964 -0.314754 0.766002 +94.6856 -0.628156 1.52871 +94.6675 -0.942178 2.29293 +95.5418 -1.26806 3.08602 +94.8097 -1.57329 3.82884 +94.8698 -1.88968 4.59882 +95.1222 -2.21122 5.38134 +95.0679 -2.52662 6.14893 +95.9034 -2.86868 6.98137 +94.9374 -3.15684 7.68264 +95.8567 -3.50802 8.53731 +95.7725 -3.82582 9.31072 +95.681 -4.14333 10.0834 +95.5822 -4.4605 10.8553 +95.4761 -4.77736 11.6264 +95.3628 -5.09385 12.3967 +95.1433 -5.40432 13.1523 +95.0156 -5.71967 13.9197 +95.7683 -6.09103 14.8235 +95.3294 -6.38863 15.5477 +95.1791 -6.70458 16.3166 +95.0215 -7.02 17.0842 +95.6407 -7.39551 17.9981 +95.565 -7.72036 18.7887 +95.3841 -8.03703 19.5593 +95.196 -8.35306 20.3284 +95.0005 -8.66848 21.0961 +95.6712 -9.06599 22.0635 +95.4594 -9.38297 22.8349 +95.2403 -9.69923 23.6046 +95.014 -10.0147 24.3724 +95.6455 -10.4238 25.3678 +95.4026 -10.7406 26.1388 +95.1523 -11.0566 26.9079 +95.6578 -11.4632 27.8975 +95.391 -11.78 28.6685 +95.9704 -12.2045 29.7015 +95.6865 -12.5223 30.475 +96.0552 -12.928 31.4623 +95.8486 -13.2591 32.2682 +96.2899 -13.683 33.2997 +96.0654 -14.0155 34.1088 +95.6469 -14.3196 34.849 +96.3344 -14.7929 36.0008 +96.0835 -15.1264 36.8125 +95.7325 -15.4445 37.5866 +96.2913 -15.913 38.7268 +95.9223 -16.2318 39.5025 +95.5459 -16.5493 40.2753 +96.0686 -17.0262 41.4358 +96.3961 -17.4751 42.5283 +95.9013 -17.7775 43.2642 +96.3844 -18.2644 44.4493 +95.9614 -18.5834 45.2256 +95.5311 -18.901 45.9984 +95.7998 -19.3599 47.1152 +96.0547 -19.822 48.2398 +95.5085 -20.1213 48.9684 +95.8262 -20.6058 50.1473 +95.3494 -20.9228 50.9189 +95.5547 -21.3926 52.0622 +95.917 -21.9045 53.3079 +95.2399 -22.182 53.9834 +95.4054 -22.6582 55.1422 +95.6406 -23.1576 56.3575 +95.6923 -23.6188 57.4799 +95.1464 -23.9353 58.2501 +95.1735 -24.3987 59.3779 +95.3514 -24.9072 60.6154 +94.7759 -25.2225 61.3828 +94.8445 -25.7124 62.5752 +94.8977 -26.2047 63.7733 +95.0963 -26.7446 65.087 +95.0376 -27.2191 66.2418 +95.7577 -27.9266 67.9636 +95.1129 -28.2431 68.7339 +95.1652 -28.7704 70.0173 +94.9672 -29.2285 71.132 +95.1413 -29.8083 72.543 +94.9129 -30.2693 73.6649 +94.8987 -30.8051 74.9689 +94.3387 -31.1685 75.8534 +94.0688 -31.6313 76.9797 +93.2647 -31.9167 77.6742 +92.6758 -32.2762 78.549 +93.3207 -33.0748 80.4926 +93.0655 -33.5662 81.6885 +92.9387 -34.1112 83.0149 +92.5799 -34.578 84.1508 +93.0553 -35.3675 86.0722 +93.0107 -35.9729 87.5457 +92.7369 -36.4988 88.8255 +92.5149 -37.0531 90.1744 +92.9564 -37.8867 92.203 +92.4883 -38.3616 93.3588 +92.6746 -39.1191 95.2022 +92.8331 -39.8803 97.0549 +93.0292 -40.6743 98.9871 +92.4814 -41.1547 100.156 +91.1473 -41.2851 100.474 +90.2595 -41.6154 101.277 +88.1678 -41.3812 100.708 +87.7746 -41.9399 102.067 +85.3307 -41.5105 101.022 +85.2875 -42.2444 102.808 +82.6894 -41.7062 101.498 +82.264 -42.2535 102.83 +80.2327 -41.9715 102.144 +80.6016 -42.9475 104.519 +77.2034 -41.9057 101.984 +77.3145 -42.7552 104.051 +74.82 -42.1592 102.601 +74.7875 -42.9448 104.513 +71.5656 -41.8841 101.931 +71.0847 -42.4086 103.208 +68.9425 -41.9335 102.052 +68.0293 -42.1931 102.683 +66.4399 -42.0262 102.277 +65.6247 -42.3432 103.049 +63.4 -41.7362 101.571 +62.9317 -42.2755 102.884 +60.8921 -41.7514 101.608 +60.5037 -42.3527 103.072 +58.1206 -41.545 101.106 +57.8571 -42.2417 102.802 +55.75 -41.5857 101.205 +55.6409 -42.415 103.223 +53.4374 -41.6416 101.341 +53.4264 -42.572 103.605 +51.2636 -41.783 101.685 +50.6755 -42.2626 102.853 +48.9711 -41.8042 101.737 +48.5676 -42.453 103.316 +46.6924 -41.8077 101.745 +46.3047 -42.4876 103.4 +43.9414 -41.336 100.597 +43.7969 -42.258 102.841 +42.3591 -41.9403 102.068 +41.7447 -42.4352 103.272 +40.0164 -41.7864 101.694 +39.4894 -42.3831 103.146 +37.6031 -41.5063 101.012 +37.1246 -42.1703 102.628 +35.5061 -41.5325 101.076 +35.0022 -42.1927 102.682 +33.3304 -41.4348 100.838 +32.8038 -42.0904 102.434 +31.34 -41.5397 101.093 +30.866 -42.3014 102.947 +29.4277 -41.7415 101.584 +28.8438 -42.3896 103.161 +27.4339 -41.8198 101.775 +26.7762 -42.3896 103.161 +25.442 -41.8841 101.931 +24.6308 -42.2265 102.765 +23.2029 -41.4888 100.969 +22.6083 -42.2345 102.784 +21.237 -41.5245 101.056 +20.6108 -42.266 102.861 +19.327 -41.6591 101.384 +18.5183 -42.0589 102.357 +17.3799 -41.7058 101.497 +16.5842 -42.1756 102.641 +15.4621 -41.8149 101.763 +14.645 -42.279 102.892 +13.5031 -41.7978 101.721 +12.6674 -42.2565 102.838 +11.5504 -41.7678 101.648 +10.8114 -42.6746 103.855 +9.60456 -41.7244 101.543 +8.77957 -42.3987 103.184 +7.70809 -41.8955 101.959 +6.83133 -42.4504 103.309 +5.76742 -41.8263 101.791 +4.86792 -42.3755 103.127 +3.86337 -42.0482 102.331 +2.92135 -42.4013 103.19 +1.92326 -41.8772 101.915 +0.973881 -42.4143 103.222 +6.72921e-15 -41.7697 101.653 +-0.973881 -42.4143 103.222 +-1.91278 -41.6492 101.36 +-2.9292 -42.5154 103.468 +-3.84592 -41.8582 101.868 +-4.8941 -42.6032 103.681 +-5.75172 -41.7123 101.513 +-6.88628 -42.792 104.141 +-7.74297 -42.0851 102.421 +-8.77957 -42.3987 103.184 +-9.63071 -41.8381 101.819 +-10.7826 -42.561 103.579 +-11.6027 -41.9567 102.108 +-12.6788 -42.2942 102.929 +-13.4909 -41.7602 101.63 +-14.8017 -42.7312 103.993 +-15.4482 -41.7773 101.671 +-16.7616 -42.6263 103.738 +-17.3642 -41.6682 101.406 +-18.6339 -42.3215 102.996 +-19.4312 -41.8837 101.93 +-20.7384 -42.5275 103.497 +-21.2943 -41.6366 101.329 +-22.6881 -42.3835 103.147 +-23.2653 -41.6005 101.241 +-24.8256 -42.5606 103.578 +-25.442 -41.8841 101.931 +-26.8929 -42.5743 103.611 +-27.5307 -41.9673 102.134 +-28.8438 -42.3896 103.161 +-29.7383 -42.182 102.656 +-30.8928 -42.3382 103.037 +-31.588 -41.8689 101.894 +-33.2298 -42.637 103.764 +-33.8566 -42.0889 102.43 +-35.6036 -42.9175 104.446 +-35.9696 -42.0749 102.396 +-37.6006 -42.7107 103.943 +-38.0915 -42.0456 102.324 +-40.0234 -42.9566 104.542 +-40.1874 -41.965 102.128 +-42.4101 -43.1117 104.919 +-42.6099 -42.1889 102.673 +-44.7498 -43.1774 105.079 +-44.9153 -42.252 102.827 +-47.0701 -43.19 105.109 +-46.9659 -42.0528 102.342 +-49.405 -43.185 105.097 +-50.0286 -42.7069 103.934 +-51.7537 -43.1619 105.041 +-52.1934 -42.5408 103.53 +-54.3305 -43.2922 105.358 +-54.7087 -42.632 103.752 +-56.9348 -43.4017 105.625 +-57.2936 -42.7369 104.007 +-59.6117 -43.5229 105.92 +-59.9046 -42.8202 104.209 +-62.1261 -43.4883 105.836 +-62.6859 -42.9813 104.602 +-64.5567 -43.3675 105.541 +-65.55 -43.1516 105.016 +-68.3654 -44.1113 107.352 +-68.9121 -43.5898 106.082 +-71.6346 -44.429 108.125 +-71.5391 -43.5127 105.895 +-73.6638 -43.9471 106.952 +-73.7441 -43.1592 105.035 +-76.4985 -43.9273 106.904 +-76.3858 -43.0418 104.749 +-79.3535 -43.8828 106.796 +-79.1535 -42.9642 104.56 +-82.7502 -44.0923 107.305 +-82.7014 -43.263 105.287 +-86.1898 -44.2701 107.738 +-85.9994 -43.3755 105.561 +-89.0009 -44.0835 107.284 +-89.9481 -43.7567 106.489 +-92.1322 -44.022 107.134 +-92.3842 -43.3603 105.524 +-96.5567 -44.5187 108.343 +-96.3539 -43.6434 106.213 +-100.015 -44.5073 108.315 +-100.246 -43.8296 106.666 +-103.369 -44.4062 108.069 +-103.916 -43.8638 106.749 +-107.013 -44.3864 108.021 +-108.029 -44.0296 107.153 +-111.651 -44.7175 108.827 +-111.771 -43.99 107.056 +-115.79 -44.7832 108.987 +-115.966 -44.0752 107.264 +-120.753 -45.1006 109.759 +-121.568 -44.619 108.587 +-126.433 -45.6008 110.976 +-126.085 -44.6875 108.754 +-131.162 -45.6794 111.168 +-131.091 -44.8615 109.177 +-136.385 -45.8603 111.608 +-135.319 -44.708 108.804 +-138.47 -44.9486 109.389 +-138.194 -44.0725 107.257 +-140.05 -43.8783 106.785 +-139.575 -42.9578 104.544 +-139.774 -42.2565 102.838 +-139.872 -41.534 101.079 +-139.63 -40.7214 99.1018 +-140.001 -40.0966 97.5812 +-141.64 -39.8343 96.943 +-141.335 -39.0278 94.9802 +-141.086 -38.2487 93.0841 +-141.058 -37.5394 91.358 +-140.101 -36.5966 89.0634 +-140.19 -35.9392 87.4636 +-139.592 -35.1163 85.4608 +-139.974 -34.5484 84.0789 +-152.907 -37.0235 90.1024 +-156.126 -37.0789 90.2371 +-214.524 -49.9643 121.596 +-195.348 -44.6114 108.569 +-226.264 -50.6557 123.278 +-228.891 -50.2262 122.233 +-237.694 -51.1122 124.389 +-238.421 -50.2296 122.242 +-246.596 -50.8879 123.844 +-248.197 -50.157 122.065 +-256.346 -50.7184 123.431 +-255.095 -49.4003 120.223 +-266.601 -50.5196 122.947 +-267.481 -49.5835 120.669 +-279.35 -50.6416 123.244 +-283.402 -50.2273 122.236 +-294.372 -50.9875 124.086 +-296.446 -50.1639 122.081 +-306.115 -50.588 123.114 +-309.566 -49.9423 121.542 +-324.189 -51.0373 124.207 +-325.998 -50.0597 121.828 +-337.835 -50.5785 123.091 +-341.877 -49.8781 121.386 +-358.745 -50.9784 124.064 +-361.5 -50.0077 121.701 +-377.057 -50.748 123.503 +-383.975 -50.2502 122.291 +-405.598 -51.5796 125.527 +-409.049 -50.5143 122.934 +-426.502 -51.1103 124.385 +-430.337 -50.0046 121.694 +-429.647 -48.3703 117.717 +-427.569 -46.5977 113.403 +-378.514 -39.8963 97.0938 +-380.188 -38.7181 94.2264 +-375.157 -36.8752 89.7415 +-376.378 -35.6663 86.7994 +-378.933 -34.5763 84.1468 +-381.758 -33.4977 81.5219 +-376.46 -31.7203 77.1962 +-380.988 -30.7787 74.9046 +-3210.53 -248.257 604.172 +-3216.11 -237.6 578.236 +-3221.44 -226.924 552.253 +-3226.92 -216.257 526.295 +-3231.76 -205.546 500.227 +-3236.36 -194.82 474.123 +-3240.71 -184.078 447.982 +-3244.81 -173.322 421.807 +-3248.27 -162.534 395.552 +-3252.28 -151.773 369.362 +-3255.64 -140.98 343.097 +-3258.75 -130.177 316.805 +-3261.61 -119.364 290.49 +-3264.23 -108.541 264.152 +-3266.6 -97.711 237.795 +-3268.72 -86.8729 211.419 +-3270.59 -76.0284 185.027 +-3272.21 -65.1778 158.62 +-3273.58 -54.3226 132.202 +-3274.7 -43.4629 105.774 +-3275.58 -32.6001 79.3373 +-3276.2 -21.7348 52.8949 +-3276.58 -10.8678 26.4484 +95 0 0 +94.8964 -0.307829 0.768811 +94.7856 -0.614987 1.53595 +94.7675 -0.92242 2.30376 +95.6417 -1.24146 3.10058 +94.8097 -1.53868 3.84288 +95.0695 -1.85199 4.62539 +95.1222 -2.16257 5.40107 +95.1676 -2.47363 6.17795 +96.0031 -2.80848 7.01425 +95.8339 -3.11654 7.78364 +94.9608 -3.39878 8.48853 +95.7725 -3.74165 9.34486 +95.681 -4.05218 10.1204 +95.5822 -4.36237 10.8951 +95.4761 -4.67226 11.6691 +95.3628 -4.98178 12.4421 +95.2422 -5.29089 13.2141 +95.9045 -5.64617 14.1014 +95.6697 -5.9509 14.8625 +95.3294 -6.24808 15.6047 +95.1791 -6.55708 16.3765 +95.0215 -6.86556 17.1469 +94.8567 -7.17352 17.916 +94.6847 -7.48096 18.6839 +95.5794 -7.87627 19.6712 +95.196 -8.16929 20.403 +95.195 -8.49513 21.2168 +95.6712 -8.86654 22.1444 +95.653 -9.19513 22.965 +95.2403 -9.48584 23.6911 +95.014 -9.7944 24.4617 +95.6455 -10.1944 25.4608 +95.4026 -10.5043 26.2347 +95.0567 -10.8025 26.9794 +95.7532 -11.2222 28.0277 +95.391 -11.5209 28.7736 +95.9704 -11.936 29.8104 +95.6865 -12.2469 30.5868 +95.3011 -12.5444 31.3299 +95.8486 -12.9674 32.3865 +95.4469 -13.2648 33.1292 +95.9721 -13.6938 34.2006 +95.6469 -14.0046 34.9768 +96.3344 -14.4675 36.1329 +95.9911 -14.7794 36.9119 +96.4689 -15.2209 38.0146 +96.2913 -15.5629 38.8688 +95.9223 -15.8746 39.6473 +96.4559 -16.3394 40.8079 +95.978 -16.6359 41.5486 +96.3961 -17.0906 42.6842 +95.9013 -17.3863 43.4228 +96.2949 -17.846 44.5709 +95.9614 -18.1746 45.3915 +95.5311 -18.4852 46.1671 +95.7115 -18.9165 47.2444 +96.0547 -19.3859 48.4167 +95.5959 -19.6967 49.193 +95.8262 -20.1525 50.3312 +95.3494 -20.4625 51.1056 +95.6408 -20.9408 52.3002 +95.8313 -21.4034 53.4556 +95.2399 -21.694 54.1814 +95.4054 -22.1597 55.3444 +95.6406 -22.6481 56.5642 +94.9375 -22.917 57.2356 +95.1464 -23.4087 58.4637 +95.1735 -23.8619 59.5957 +94.6921 -24.1908 60.4171 +95.4312 -24.8382 62.0339 +94.9259 -25.1684 62.8586 +94.9786 -25.6501 64.0617 +95.0963 -26.1562 65.3256 +95.1175 -26.6426 66.5406 +94.4884 -26.9501 67.3086 +95.1129 -27.6217 68.9859 +95.7912 -28.3226 70.7363 +95.1227 -28.6322 71.5097 +95.1413 -29.1525 72.809 +94.9895 -29.6273 73.9948 +94.9747 -30.1515 75.3041 +94.867 -30.6535 76.5578 +94.668 -31.1325 77.7541 +93.2647 -31.2145 77.959 +92.9707 -31.6665 79.0879 +92.5894 -32.0936 80.1546 +93.0655 -32.8277 81.988 +92.9387 -33.3608 83.3193 +93.1505 -34.0257 84.9799 +92.5603 -34.4054 85.9283 +93.0107 -35.1815 87.8667 +92.8064 -35.7226 89.2179 +92.5837 -36.2649 90.5725 +92.9564 -37.0532 92.5411 +93.0963 -37.7644 94.3175 +92.8084 -38.3134 95.6887 +93.0981 -39.1141 97.6884 +92.9636 -39.7512 99.2796 +93.0659 -40.5035 101.159 +92.4971 -40.9749 102.336 +92.4858 -41.7034 104.155 +90.1816 -41.3953 103.386 +89.6421 -41.89 104.621 +87.9165 -41.8276 104.465 +86.9311 -42.1112 105.174 +84.8559 -41.8573 104.54 +84.2269 -42.31 105.67 +82.1724 -42.0406 104.997 +82.1695 -42.8197 106.943 +80.1286 -42.5368 106.237 +79.3535 -42.9174 107.187 +77.1127 -42.4952 106.133 +76.3329 -42.8676 107.063 +74.3432 -42.5528 106.277 +73.1802 -42.6981 106.64 +70.9032 -42.1773 105.339 +69.7013 -42.2788 105.592 +67.779 -41.9298 104.721 +67.1473 -42.3725 105.826 +65.1 -41.9127 104.678 +64.5567 -42.4134 105.928 +62.6859 -42.0357 104.985 +61.8398 -42.3357 105.734 +60.421 -42.2391 105.493 +59.5656 -42.5323 106.225 +57.8384 -42.1941 105.381 +56.8456 -42.3803 105.846 +55.5855 -42.3625 105.801 +54.5888 -42.5412 106.248 +52.8273 -42.1101 105.171 +52.1684 -42.5505 106.271 +50.476 -42.1409 105.248 +49.8436 -42.61 106.42 +48.2944 -42.2907 105.622 +47.3762 -42.5145 106.181 +45.6645 -42.0119 104.926 +44.7864 -42.2621 105.551 +43.4342 -42.0588 105.043 +42.5852 -42.3372 105.738 +41.1792 -42.0547 105.033 +40.2905 -42.2918 105.625 +38.8403 -41.9287 104.718 +38.14 -42.3706 105.822 +36.7421 -42.0331 104.979 +36.1148 -42.5758 106.334 +34.6168 -42.087 105.113 +34.025 -42.697 106.637 +32.5252 -42.1625 105.302 +31.7746 -42.5888 106.367 +30.2818 -42.0078 104.916 +29.7702 -42.7884 106.865 +28.1839 -42.0175 104.94 +27.5699 -42.6858 106.609 +26.2068 -42.1941 105.381 +25.3234 -42.4591 106.043 +23.9514 -41.8852 104.609 +23.326 -42.6167 106.436 +22.0384 -42.1435 105.254 +21.2122 -42.5424 106.251 +19.9001 -41.9506 104.773 +19.063 -42.3435 105.754 +17.8805 -41.9632 104.804 +17.1163 -42.571 106.322 +15.9492 -42.1833 105.354 +15.1149 -42.6754 106.583 +13.9297 -42.1695 105.319 +13.041 -42.5453 106.258 +11.8535 -41.9209 104.698 +10.9839 -42.4015 105.899 +9.83988 -41.806 104.411 +8.99926 -42.5033 106.153 +7.93829 -42.1974 105.389 +6.97785 -42.4071 105.913 +5.9349 -42.0941 105.131 +4.99006 -42.4829 106.102 +3.96109 -42.1632 105.304 +3.0182 -42.8431 107.002 +1.9791 -42.1454 105.259 +1.00093 -42.6334 106.478 +6.96801e-15 -42.3004 105.646 +-1.00093 -42.6334 106.478 +-1.9791 -42.1454 105.259 +-3.01558 -42.8063 106.91 +-3.97156 -42.2747 105.582 +-5.00314 -42.5944 106.381 +-5.982 -42.4279 105.965 +-7.00227 -42.5554 106.283 +-7.97316 -42.3829 105.852 +-9.03849 -42.6888 106.616 +-9.9619 -42.3245 105.707 +-11.0414 -42.6238 106.454 +-11.8953 -42.0688 105.068 +-13.0523 -42.5825 106.351 +-13.9053 -42.0959 105.136 +-15.0888 -42.6018 106.399 +-15.9214 -42.1097 105.17 +-17.2198 -42.8282 106.964 +-17.9274 -42.0733 105.079 +-19.0795 -42.3803 105.846 +-19.9174 -41.987 104.864 +-21.1211 -42.3595 105.794 +-22.0003 -42.0707 105.072 +-23.3061 -42.5803 106.345 +-24.0346 -42.0305 104.972 +-25.4966 -42.7494 106.768 +-26.1393 -42.0855 105.11 +-27.5699 -42.6858 106.609 +-28.3049 -42.1982 105.391 +-29.5699 -42.5004 106.146 +-30.4112 -42.1874 105.364 +-32.0419 -42.9468 107.261 +-32.7733 -42.484 106.105 +-34.2807 -43.0178 107.438 +-34.8799 -42.4071 105.913 +-36.4756 -43.0014 107.397 +-37.1129 -42.4572 106.038 +-38.4256 -42.6877 106.614 +-39.4263 -42.5613 106.298 +-41.0249 -43.0628 107.55 +-41.7607 -42.6483 106.515 +-43.2506 -42.9988 107.391 +-43.9717 -42.5792 106.342 +-45.8127 -43.2304 107.969 +-46.5261 -42.8044 106.905 +-48.4095 -43.4419 108.497 +-48.9977 -42.9066 107.16 +-51.0798 -43.6664 109.058 +-51.3302 -42.8539 107.029 +-53.2466 -43.43 108.467 +-54.2642 -43.2557 108.032 +-55.7942 -43.4806 108.594 +-56.4184 -42.9973 107.387 +-58.4965 -43.611 108.92 +-58.9734 -43.0222 107.449 +-60.5352 -43.2248 107.955 +-61.5477 -43.0267 107.46 +-63.7007 -43.6095 108.916 +-64.5766 -43.3036 108.152 +-66.4772 -43.675 109.079 +-67.5 -43.4575 108.536 +-69.888 -44.1017 110.145 +-71.0238 -43.937 109.734 +-72.7318 -44.1173 110.184 +-73.7648 -43.8794 109.59 +-75.5981 -44.1087 110.163 +-76.3039 -43.675 109.079 +-78.3199 -43.9835 109.85 +-79.014 -43.543 108.75 +-81.2227 -43.9285 109.712 +-82.0788 -43.572 108.822 +-84.3761 -43.9697 109.815 +-84.8762 -43.4237 108.452 +-87.7958 -44.1028 110.148 +-88.4668 -43.6382 108.987 +-91.2533 -44.205 110.403 +-92.103 -43.8192 109.439 +-95.2447 -44.508 111.16 +-95.5308 -43.8508 109.518 +-98.4649 -44.3994 110.889 +-99.1821 -43.9363 109.732 +-102.548 -44.6302 111.465 +-102.542 -43.8471 109.509 +-106.483 -44.7377 111.733 +-107.195 -44.2526 110.522 +-111.743 -45.3283 113.209 +-111.78 -44.5563 111.28 +-115.575 -45.2703 113.064 +-115.452 -44.4392 110.988 +-119.785 -45.3094 113.161 +-121.057 -44.9979 112.383 +-125.96 -46.0104 114.912 +-126.388 -45.3673 113.306 +-131.075 -46.2353 115.474 +-131.497 -45.58 113.837 +-134.995 -45.9807 114.838 +-134.955 -45.1677 112.807 +-138.482 -45.5409 113.74 +-137.659 -44.4805 111.091 +-139.23 -44.2013 110.394 +-140.263 -43.7478 109.261 +-140.204 -42.9602 107.294 +-140.197 -42.1996 105.395 +-139.852 -41.3499 103.272 +-139.636 -40.5515 101.278 +-140.82 -40.1649 100.313 +-141.119 -39.5278 98.7216 +-141.077 -38.803 96.9113 +-141.497 -38.2131 95.4381 +-140.354 -37.2128 92.9399 +-140.403 -36.543 91.267 +-139.772 -35.7072 89.1796 +-139.859 -35.0654 87.5766 +-144.679 -35.5952 88.8998 +-149.787 -36.157 90.3029 +-172.474 -40.8425 102.005 +-191.065 -44.3786 110.837 +-221.601 -50.4768 126.067 +-223.464 -49.9092 124.65 +-231.003 -50.5787 126.321 +-235.646 -50.5709 126.302 +-242.133 -50.921 127.176 +-245.156 -50.5122 126.155 +-251.957 -50.85 126.999 +-253.671 -50.1356 125.215 +-262.644 -50.8214 126.928 +-262.401 -49.6974 124.12 +-272.776 -50.5527 126.256 +-276.918 -50.2036 125.385 +-288.105 -51.0798 127.573 +-289.837 -50.2375 125.469 +-300.742 -50.9448 127.236 +-304.941 -50.4664 126.041 +-315.56 -51.0021 127.379 +-320.152 -50.5136 126.159 +-328.809 -50.6255 126.438 +-337.031 -50.6151 126.412 +-345.743 -50.6237 126.434 +-351.493 -50.1531 125.259 +-365.021 -50.7292 126.697 +-370.333 -50.1025 125.132 +-386.86 -50.9218 127.178 +-396.55 -50.7541 126.76 +-415.745 -51.7068 129.139 +-422.174 -50.9883 127.345 +-429.459 -50.3323 125.706 +-425.556 -48.3611 120.783 +-380.268 -41.8692 104.569 +-378.545 -40.3474 100.769 +-380.056 -39.1777 97.8471 +-377.387 -37.5875 93.8756 +-379.514 -36.4828 91.1166 +-379.483 -35.1694 87.8365 +-377.766 -33.7115 84.1953 +-378.543 -32.4849 81.1317 +-378.315 -31.1753 77.8611 +-381.771 -30.1633 75.3336 +-3210.53 -242.796 606.388 +-3216.11 -232.373 580.356 +-3221.44 -221.931 554.279 +-3226.53 -211.474 528.16 +-3231.37 -200.999 502 +-3236.36 -190.533 475.862 +-3240.31 -180.006 449.57 +-3244.42 -169.489 423.302 +-3248.67 -158.978 397.051 +-3252.28 -148.434 370.717 +-3255.24 -137.862 344.314 +-3258.75 -127.313 317.967 +-3261.61 -116.738 291.556 +-3264.23 -106.154 265.121 +-3266.6 -95.5613 238.667 +-3268.72 -84.9617 212.194 +-3270.59 -74.3557 185.705 +-3272.21 -63.7439 159.202 +-3273.58 -53.1275 132.687 +-3274.7 -42.5067 106.161 +-3275.58 -31.8829 79.6283 +-3276.2 -21.2566 53.0889 +-3276.58 -10.6287 26.5454 +95 0 0 +94.8964 -0.30088 0.771557 +94.7856 -0.601103 1.54143 +94.8675 -0.902547 2.31444 +94.8422 -1.20329 3.08564 +94.9096 -1.50552 3.86067 +95.1694 -1.81208 4.6468 +95.2221 -2.11596 5.42605 +95.0679 -2.41525 6.19352 +95.1059 -2.71942 6.97352 +95.8339 -3.04618 7.81144 +94.9608 -3.32205 8.51885 +95.7725 -3.65718 9.37824 +95.681 -3.96069 10.1566 +95.5822 -4.26388 10.934 +95.6744 -4.57626 11.7351 +95.3628 -4.86931 12.4866 +95.2422 -5.17144 13.2613 +95.9045 -5.5187 14.1518 +95.6697 -5.81655 14.9156 +95.3294 -6.10702 15.6605 +95.1791 -6.40904 16.435 +95.0215 -6.71056 17.2081 +95.7386 -7.07675 18.1472 +94.6847 -7.31207 18.7506 +94.5055 -7.61198 19.5197 +95.196 -7.98486 20.4759 +95.0005 -8.28637 21.2491 +94.7979 -8.58727 22.0207 +95.4594 -8.96937 23.0005 +95.2403 -9.27169 23.7757 +95.8812 -9.66065 24.7732 +95.6455 -9.96428 25.5518 +95.3067 -10.2568 26.302 +95.1523 -10.5692 27.1031 +95.6578 -10.9579 28.0998 +96.342 -11.373 29.1643 +95.9704 -11.6665 29.9169 +95.6865 -11.9704 30.6961 +96.2437 -12.3824 31.7528 +95.8486 -12.6747 32.5022 +96.3836 -13.0926 33.5738 +95.9721 -13.3846 34.3228 +95.6469 -13.6884 35.1017 +96.3344 -14.1409 36.2619 +95.9911 -14.4457 37.0438 +96.561 -14.8915 38.1868 +96.1996 -15.1971 38.9705 +96.0136 -15.531 39.8269 +95.5459 -15.8198 40.5673 +96.0686 -16.2757 41.7363 +95.5838 -16.564 42.4757 +95.9013 -16.9938 43.5779 +96.3844 -17.4593 44.7717 +95.9614 -17.7643 45.5536 +96.152 -18.1853 46.6331 +95.7115 -18.4894 47.4131 +95.3517 -18.8095 48.2339 +95.6834 -19.2696 49.4139 +95.1299 -19.5544 50.144 +95.3494 -20.0006 51.2882 +95.5547 -20.4496 52.4397 +95.8313 -20.9202 53.6465 +95.2399 -21.2043 54.3749 +95.4054 -21.6594 55.5421 +94.8815 -21.9611 56.3157 +95.1052 -22.4392 57.5416 +95.1464 -22.8802 58.6726 +95.2564 -23.3435 59.8607 +95.3514 -23.8093 61.055 +95.5131 -24.2982 62.3089 +95.5772 -24.7689 63.5159 +94.8977 -25.0496 64.2358 +95.0963 -25.5657 65.559 +95.1175 -26.0411 66.7783 +95.1231 -26.5186 68.0028 +95.1129 -26.9981 69.2324 +95.1652 -27.5022 70.5251 +95.1227 -27.9858 71.7651 +94.987 -28.4481 72.9506 +95.2193 -29.0284 74.4387 +95.1268 -29.518 75.6941 +94.9425 -29.9853 76.8924 +94.8178 -30.4778 78.1553 +94.751 -30.996 79.4843 +94.0029 -31.2953 80.2516 +93.5401 -31.6912 81.267 +93.2831 -32.1616 82.4733 +93.0826 -32.6581 83.7463 +93.6498 -33.4358 85.7407 +93.3381 -33.9113 86.9599 +93.0107 -34.3873 88.1806 +92.8064 -34.9161 89.5366 +92.5149 -35.4198 90.8284 +92.9564 -36.2166 92.8717 +92.4883 -36.6706 94.0358 +92.7415 -37.4216 95.9616 +92.4355 -37.9589 97.3395 +92.7667 -38.7717 99.4237 +93.0659 -39.5891 101.52 +93.0114 -40.2725 103.272 +92.9946 -40.9864 105.103 +92.3213 -41.4206 106.216 +91.8832 -41.9678 107.62 +89.5787 -41.6564 106.821 +88.5748 -41.9387 107.545 +86.8419 -41.8697 107.368 +85.8329 -42.1436 108.07 +83.9357 -41.9732 107.633 +83.9696 -42.77 109.677 +80.7022 -41.874 107.379 +80.0332 -42.3078 108.492 +78.3429 -42.1985 108.211 +77.6575 -42.6272 109.31 +75.1602 -42.0491 107.828 +74.4697 -42.4695 108.906 +72.016 -41.8722 107.374 +71.1643 -42.1919 108.194 +68.9121 -41.6684 106.852 +68.3654 -42.1669 108.13 +66.9 -42.0989 107.956 +65.7385 -42.2144 108.252 +64.4312 -42.2308 108.294 +63.1281 -42.2421 108.323 +61.1252 -41.7668 107.104 +60.5352 -42.249 108.341 +59.1096 -42.148 108.082 +58.2288 -42.4313 108.808 +56.4184 -42.0266 107.77 +55.7942 -42.4989 108.982 +53.588 -41.7523 107.067 +52.9149 -42.185 108.177 +51.5742 -42.0858 107.922 +50.8006 -42.4473 108.849 +48.8414 -41.8043 107.2 +48.4095 -42.4611 108.885 +46.3763 -41.7033 106.941 +45.8127 -42.2544 108.355 +44.2584 -41.8893 107.418 +43.4607 -42.2322 108.298 +41.9659 -41.8904 107.421 +41.2251 -42.2958 108.461 +39.7519 -41.9441 107.559 +39.0285 -42.3787 108.673 +37.6383 -42.0862 107.923 +36.7162 -42.3078 108.492 +35.1431 -41.7625 107.093 +34.3943 -42.1857 108.179 +33.2694 -42.1534 108.096 +32.3626 -42.3976 108.722 +31.11 -42.1825 108.17 +30.2209 -42.4553 108.87 +28.7887 -41.9503 107.575 +28.0601 -42.464 108.892 +26.4992 -41.7018 106.938 +26.016 -42.6355 109.332 +24.6167 -42.0767 107.899 +23.7048 -42.3311 108.551 +22.3247 -41.7269 107.002 +21.6678 -42.4749 108.92 +20.3689 -41.9696 107.624 +19.5746 -42.4982 108.98 +18.3028 -41.9848 107.663 +17.4859 -42.5084 109.006 +16.1997 -41.8784 107.39 +15.389 -42.4684 108.903 +14.2587 -42.1912 108.192 +13.3127 -42.4513 108.86 +12.1358 -41.95 107.574 +11.329 -42.7463 109.616 +10.1536 -42.1654 108.126 +9.22679 -42.5941 109.226 +8.12663 -42.2232 108.274 +7.14268 -42.4288 108.802 +6.09714 -42.2682 108.39 +5.10347 -42.4677 108.901 +4.05532 -42.1916 108.193 +3.0627 -42.4935 108.968 +2.02797 -42.2108 108.243 +1.02537 -42.6882 109.467 +7.09659e-15 -42.1084 107.98 +-1.02275 -42.5792 109.188 +-2.02797 -42.2108 108.243 +-3.0627 -42.4935 108.968 +-4.06579 -42.3006 108.473 +-5.14709 -42.8306 109.832 +-6.08144 -42.1596 108.111 +-7.22815 -42.9364 110.103 +-8.16151 -42.4045 108.739 +-9.25817 -42.7391 109.597 +-10.1275 -42.0568 107.848 +-11.2715 -42.5294 109.06 +-12.1462 -41.9859 107.666 +-13.4033 -42.7402 109.6 +-14.2831 -42.2631 108.377 +-15.5718 -42.9727 110.197 +-16.2137 -41.9143 107.483 +-17.6337 -42.8677 109.927 +-18.3967 -42.1999 108.215 +-19.5416 -42.4266 108.796 +-20.3689 -41.9696 107.624 +-21.5767 -42.2962 108.462 +-22.4391 -41.9409 107.551 +-23.7846 -42.4735 108.916 +-24.7831 -42.3609 108.628 +-26.016 -42.6355 109.332 +-26.7467 -42.0913 107.936 +-27.9901 -42.358 108.62 +-29.0548 -42.3383 108.57 +-30.4462 -42.7721 109.682 +-31.2395 -42.358 108.62 +-32.7634 -42.9225 110.068 +-33.4348 -42.363 108.633 +-34.8203 -42.7082 109.518 +-35.7278 -42.4571 108.874 +-37.0169 -42.6544 109.38 +-37.9164 -42.3972 108.721 +-39.4727 -42.8608 109.91 +-40.5007 -42.7344 109.585 +-41.826 -42.9124 110.042 +-42.7525 -42.6759 109.435 +-44.0911 -42.8448 109.869 +-45.226 -42.8052 109.767 +-46.5823 -42.9643 110.175 +-47.7623 -42.9498 110.138 +-49.1366 -43.0988 110.52 +-49.8182 -42.6403 109.344 +-51.5583 -43.0806 110.473 +-52.591 -42.9153 110.049 +-53.9931 -43.0446 110.381 +-54.8981 -42.7729 109.684 +-56.7844 -43.2532 110.916 +-57.3389 -42.7122 109.529 +-58.8535 -42.8866 109.976 +-60.1991 -42.9247 110.074 +-61.6434 -43.0225 110.324 +-62.6275 -42.7932 109.736 +-64.989 -43.4871 111.516 +-65.7402 -43.0886 110.494 +-68.3976 -43.922 112.631 +-68.95 -43.389 111.264 +-71.7152 -44.233 113.428 +-72.3113 -43.7237 112.122 +-75.8145 -44.9488 115.264 +-75.1955 -43.7208 112.115 +-78.1771 -44.5836 114.328 +-78.7548 -44.0601 112.985 +-81.0795 -44.5055 114.127 +-81.1948 -43.7346 112.15 +-82.9785 -43.8646 112.484 +-83.8569 -43.5108 111.576 +-86.699 -44.16 113.241 +-87.2273 -43.619 111.854 +-89.7588 -44.071 113.013 +-90.3324 -43.5525 111.683 +-93.3231 -44.1869 113.31 +-94.1962 -43.8036 112.327 +-96.9255 -44.2708 113.525 +-97.9852 -43.962 112.733 +-100.691 -44.3784 113.801 +-101.946 -44.1411 113.193 +-105.405 -44.8383 114.981 +-105.888 -44.2556 113.486 +-110.061 -45.1973 115.901 +-109.871 -44.3333 113.686 +-114.445 -45.3764 116.36 +-114.712 -44.693 114.608 +-117.158 -44.8547 115.023 +-118.509 -44.5858 114.333 +-123.57 -45.6856 117.153 +-124.875 -45.3691 116.342 +-128.242 -45.7862 117.411 +-129.769 -45.5293 116.753 +-133.686 -46.0918 118.195 +-134.569 -45.5918 116.913 +-137.281 -45.7034 117.199 +-137.928 -45.1206 115.705 +-138.557 -44.5371 114.208 +-139.395 -44.0245 112.894 +-140.067 -43.4628 111.453 +-139.956 -42.6668 109.412 +-139.973 -41.9212 107.5 +-139.886 -41.1557 105.537 +-140.322 -40.5523 103.99 +-139.951 -39.7254 101.869 +-141.217 -39.369 100.955 +-141.758 -38.8102 99.5224 +-140.836 -37.8623 97.0917 +-140.607 -37.1153 95.1762 +-140.109 -36.3095 93.1098 +-140.239 -35.6763 91.4861 +-140.843 -35.1686 90.1841 +-141.848 -34.7613 89.1398 +-156.02 -37.5186 96.2103 +-161.528 -38.1108 97.729 +-219.956 -50.9108 130.552 +-221.849 -50.3654 129.154 +-225.523 -50.2107 128.757 +-227.492 -49.6621 127.35 +-236.259 -50.5616 129.657 +-240.842 -50.5191 129.548 +-245.179 -50.3978 129.237 +-247.43 -49.8299 127.781 +-255.296 -50.3611 129.143 +-258.174 -49.8735 127.893 +-267.611 -50.6136 129.79 +-271.757 -50.3073 129.005 +-279.846 -50.6921 129.992 +-281.952 -49.9622 128.12 +-292.889 -50.7556 130.155 +-296.544 -50.2397 128.832 +-307.931 -50.9849 130.743 +-312.889 -50.6125 129.788 +-321.796 -50.8356 130.36 +-325.859 -50.2535 128.867 +-334.167 -50.2892 128.958 +-342.038 -50.2074 128.749 +-352.628 -50.4661 129.412 +-358.775 -50.0363 128.31 +-371.672 -50.4872 129.466 +-378.508 -50.0526 128.352 +-396.004 -50.9486 130.649 +-405.155 -50.6848 129.973 +-424.659 -51.6232 132.379 +-428.831 -50.623 129.815 +-430.985 -49.3707 126.603 +-426.034 -47.3227 121.351 +-378.35 -40.7176 104.414 +-379.41 -39.5266 101.36 +-379.767 -38.2641 98.1221 +-380.961 -37.0866 95.1026 +-381.257 -35.8228 91.8619 +-378.124 -34.2524 87.8347 +-378.933 -33.0522 84.7571 +-376.691 -31.5962 81.0233 +-378.315 -30.4715 78.1392 +-381.869 -29.4899 75.6221 +-3210.53 -237.314 608.554 +-3216.11 -227.126 582.429 +-3221.44 -216.921 556.259 +-3226.53 -206.699 530.047 +-3231.37 -196.461 503.794 +-3236.36 -186.232 477.562 +-3240.31 -175.942 451.176 +-3244.42 -165.662 424.814 +-3248.27 -155.37 398.42 +-3251.88 -145.065 371.996 +-3255.64 -134.766 345.586 +-3258.75 -124.439 319.103 +-3261.61 -114.102 292.597 +-3264.23 -103.757 266.068 +-3266.6 -93.4039 239.519 +-3268.72 -83.0436 212.952 +-3270.59 -72.6771 186.369 +-3272.21 -62.3047 159.77 +-3273.58 -51.9281 133.161 +-3274.7 -41.547 106.541 +-3275.58 -31.1631 79.9127 +-3276.2 -20.7767 53.2785 +-3276.58 -10.3887 26.6402 +95.2 0 0 +94.8964 -0.293919 0.774236 +94.8855 -0.587815 1.54841 +94.8675 -0.881667 2.32247 +94.8422 -1.17545 3.09635 +95.1094 -1.47379 3.88224 +95.1694 -1.77016 4.66293 +95.2221 -2.06701 5.44489 +95.1676 -2.36185 6.22154 +95.1059 -2.65651 6.99773 +95.9335 -2.9788 7.84671 +96.0557 -3.28262 8.647 +95.7725 -3.57257 9.4108 +95.681 -3.86906 10.1918 +95.5822 -4.16524 10.972 +95.6744 -4.47039 11.7758 +95.3628 -4.75666 12.5299 +95.1433 -5.04659 13.2936 +95.9045 -5.39103 14.2009 +95.4724 -5.67027 14.9365 +95.3294 -5.96574 15.7148 +95.1791 -6.26077 16.492 +95.0215 -6.55532 17.2679 +94.8567 -6.84936 18.0424 +95.565 -7.20931 18.9906 +95.3841 -7.50502 19.7696 +95.196 -7.80013 20.547 +95.8757 -8.16924 21.5192 +95.6712 -8.46587 22.3006 +95.653 -8.77961 23.1271 +95.2403 -9.05719 23.8583 +95.8812 -9.43716 24.8592 +95.6455 -9.73376 25.6405 +95.4026 -10.0296 26.4198 +95.9174 -10.4077 27.4158 +95.6578 -10.7044 28.1973 +95.391 -11.0003 28.9767 +95.9704 -11.3966 30.0208 +94.8355 -11.5894 30.5287 +96.1494 -12.0841 31.8318 +95.8486 -12.3815 32.615 +95.4469 -12.6654 33.3629 +95.9721 -13.075 34.4419 +95.6469 -13.3717 35.2236 +96.3344 -13.8137 36.3878 +95.9911 -14.1116 37.1724 +95.7325 -14.4222 37.9906 +96.1996 -14.8455 39.1057 +95.9223 -15.1573 39.9271 +96.3649 -15.5863 41.0571 +95.978 -15.8842 41.8417 +96.3058 -16.303 42.9451 +95.9013 -16.6007 43.7292 +96.3844 -17.0554 44.9271 +95.9614 -17.3533 45.7117 +96.2407 -17.7809 46.8382 +95.7115 -18.0617 47.5777 +95.9668 -18.4929 48.7136 +95.5959 -18.8066 49.5401 +95.8262 -19.2418 50.6864 +95.3494 -19.5379 51.4662 +95.6408 -19.9946 52.6693 +95.8313 -20.4362 53.8328 +95.3252 -20.7322 54.6125 +95.4054 -21.1583 55.7349 +95.4719 -21.5865 56.8628 +95.1052 -21.9201 57.7414 +95.1464 -22.3509 58.8763 +95.1735 -22.7836 60.0162 +95.3514 -23.2585 61.267 +94.8578 -23.5733 62.0962 +95.5772 -24.1959 63.7363 +94.9786 -24.491 64.5137 +95.0963 -24.9742 65.7866 +95.1175 -25.4387 67.0101 +95.2024 -25.9268 68.2958 +95.1129 -26.3736 69.4727 +94.5391 -26.6892 70.3043 +95.1227 -27.3384 72.0142 +95.1413 -27.8351 73.3227 +95.1427 -28.334 74.637 +94.9747 -28.789 75.8354 +95.0934 -29.3382 77.282 +94.8178 -29.7727 78.4266 +94.751 -30.279 79.7602 +95.1088 -30.9309 81.4776 +93.979 -31.1033 81.9316 +92.993 -31.3199 82.5022 +92.8668 -31.8286 83.8422 +93.5785 -32.6374 85.9728 +92.8431 -32.9511 86.799 +93.0107 -33.5917 88.4867 +92.8064 -34.1083 89.8474 +92.5837 -34.6262 91.2116 +92.9564 -35.3788 93.1941 +93.0963 -36.0579 94.983 +92.7415 -36.5559 96.2947 +93.0319 -37.32 98.3075 +92.6355 -37.8211 99.6276 +92.936 -38.6193 101.73 +92.8185 -39.2592 103.416 +92.8674 -39.9832 105.323 +92.7618 -40.6554 107.094 +93.3149 -41.6357 109.676 +90.6869 -41.196 108.518 +89.4879 -41.3908 109.031 +87.9252 -41.4114 109.085 +86.9036 -41.6818 109.797 +85.5228 -41.7773 110.049 +85.0149 -42.3008 111.428 +82.7671 -41.9519 110.509 +81.2227 -41.9434 110.486 +79.5172 -41.8401 110.214 +78.3199 -41.9959 110.625 +76.6307 -41.8799 110.319 +75.4369 -42.0257 110.703 +73.6058 -41.8064 110.126 +72.1048 -41.7603 110.004 +70.3027 -41.5257 109.386 +69.076 -41.6197 109.634 +67.8 -41.6783 109.788 +66.6249 -41.794 110.093 +65.3039 -41.8124 110.142 +63.8438 -41.7326 109.931 +62.8153 -41.9285 110.447 +61.3202 -41.8068 110.127 +59.6544 -41.5523 109.456 +59.032 -42.0215 110.692 +57.3389 -41.7241 109.909 +56.7844 -42.2525 111.301 +54.8981 -41.7833 110.065 +54.3248 -42.3072 111.445 +52.347 -41.728 109.919 +51.5184 -42.0513 110.771 +49.7791 -41.6211 109.638 +49.2514 -42.2 111.162 +47.7249 -41.9232 110.433 +46.6923 -42.0694 110.818 +45.011 -41.6162 109.625 +44.1962 -41.9533 110.513 +42.6157 -41.5551 109.464 +41.826 -41.9196 110.424 +40.696 -41.947 110.496 +39.5679 -41.9704 110.558 +38.2563 -41.7876 110.076 +37.498 -42.2092 111.187 +36.1956 -42.0183 110.684 +35.0759 -42.0265 110.705 +33.8483 -41.8948 110.358 +32.8169 -41.9981 110.63 +31.783 -42.0981 110.894 +30.5964 -41.9888 110.606 +29.5629 -42.0818 110.851 +28.6204 -42.31 111.452 +27.354 -42.0509 110.77 +26.1459 -41.8572 110.259 +25.0949 -41.9015 110.376 +24.303 -42.3952 111.677 +23.0306 -42.0506 110.769 +22.0505 -42.2252 111.229 +20.751 -41.7677 110.024 +19.8222 -42.0403 110.742 +18.647 -41.7844 110.068 +17.7519 -42.1567 111.048 +16.5894 -41.8937 110.356 +15.637 -42.1546 111.043 +14.405 -41.6378 109.682 +13.5617 -42.2451 111.281 +12.4284 -41.9679 110.551 +11.4823 -42.3224 111.485 +10.3367 -41.9324 110.458 +9.37586 -42.2813 111.377 +8.25219 -41.8838 110.329 +7.27699 -42.2266 111.233 +6.17564 -41.822 110.167 +5.18635 -42.1588 111.054 +4.14955 -42.1734 111.092 +3.11244 -42.1844 111.121 +2.06636 -42.0151 110.675 +1.04108 -42.3391 111.529 +7.30478e-15 -42.3409 111.534 +-1.04893 -42.6585 112.37 +-2.06636 -42.0151 110.675 +-3.14647 -42.6458 112.337 +-4.1321 -41.9959 110.625 +-5.22996 -42.5134 111.988 +-6.24368 -42.2831 111.381 +-7.36856 -42.7579 112.632 +-8.32195 -42.2376 111.262 +-9.40725 -42.4225 111.749 +-10.3715 -42.0737 110.83 +-11.5111 -42.4286 111.764 +-12.3762 -41.7911 110.085 +-13.6636 -42.5624 112.117 +-14.6487 -42.3423 111.537 +-15.6892 -42.2955 111.414 +-16.6869 -42.1397 111.003 +-17.7519 -42.1567 111.048 +-18.7408 -41.9949 110.622 +-19.8222 -42.0403 110.742 +-20.8204 -41.9072 110.391 +-21.9412 -42.0158 110.677 +-22.878 -41.772 110.035 +-24.0039 -41.8735 110.302 +-24.991 -41.728 109.919 +-26.1892 -41.9264 110.442 +-27.354 -42.0509 110.77 +-28.457 -42.0683 110.816 +-29.4177 -41.8753 110.307 +-30.9219 -42.4353 111.782 +-31.55 -41.7894 110.081 +-33.1108 -42.3743 111.621 +-33.9585 -42.0311 110.717 +-35.1895 -42.1627 111.064 +-36.3418 -42.1879 111.131 +-37.498 -42.2092 111.187 +-38.2563 -41.7876 110.076 +-39.8852 -42.3068 111.444 +-40.989 -42.249 111.291 +-42.3935 -42.4882 111.922 +-43.1629 -42.0886 110.869 +-44.7915 -42.5184 112.001 +-45.9069 -42.4445 111.807 +-47.0954 -42.4328 111.776 +-48.3617 -42.4825 111.907 +-49.7488 -42.6263 112.285 +-50.795 -42.4708 111.876 +-52.4355 -42.7998 112.742 +-53.4452 -42.6035 112.225 +-55.2371 -43.0177 113.316 +-55.9124 -42.5556 112.099 +-57.9037 -43.0855 113.495 +-58.391 -42.4896 111.925 +-60.3706 -42.9744 113.202 +-61.0617 -42.5326 112.038 +-63.0287 -42.9716 113.195 +-64.2237 -42.8687 112.924 +-66.1819 -43.2608 113.957 +-67.3885 -43.1473 113.658 +-69.4317 -43.5547 114.731 +-71.55 -43.9834 115.86 +-74.2529 -44.7387 117.85 +-75.3501 -44.5073 117.24 +-77.7478 -45.0286 118.614 +-78.693 -44.6957 117.737 +-79.6278 -44.3607 116.854 +-80.77 -44.1421 116.278 +-82.5146 -44.2454 116.55 +-82.2573 -43.2818 114.012 +-84.3945 -43.5813 114.801 +-85.4629 -43.3183 114.108 +-88.1507 -43.861 115.538 +-88.6968 -43.3279 114.134 +-90.8889 -43.5934 114.833 +-92.2582 -43.4521 114.461 +-94.6015 -43.7559 115.261 +-96.2279 -43.713 115.148 +-98.7308 -44.0523 116.042 +-99.999 -43.8273 115.449 +-102.472 -44.1187 116.216 +-103.746 -43.8812 115.591 +-106.574 -44.2869 116.66 +-108.053 -44.1158 116.209 +-111.32 -44.6567 117.634 +-113.217 -44.6265 117.554 +-115.661 -44.7976 118.005 +-116.758 -44.4377 117.057 +-119.774 -44.7951 117.998 +-121.843 -44.7799 117.958 +-126.023 -45.5145 119.893 +-127.562 -45.2732 119.258 +-131.024 -45.6973 120.375 +-132.143 -45.2899 119.302 +-134.702 -45.3672 119.505 +-136.617 -45.2146 119.103 +-138.24 -44.9577 118.427 +-139.191 -44.4803 117.169 +-139.68 -43.8596 115.534 +-140.074 -43.2158 113.838 +-139.534 -42.2962 111.416 +-139.65 -41.5885 109.552 +-139.587 -40.8386 107.576 +-140.042 -40.2483 106.021 +-140.635 -39.7025 104.584 +-141.448 -39.2216 103.317 +-141.058 -38.4149 101.192 +-142.716 -38.1686 100.543 +-140.755 -36.9651 97.3726 +-140.203 -36.1523 95.2317 +-139.865 -35.4076 93.2701 +-140.075 -34.8103 91.6965 +-143.316 -34.958 92.0858 +-149.227 -35.7236 94.1024 +-166.277 -39.0601 102.891 +-192.726 -44.42 117.01 +-223.33 -50.4957 133.015 +-225.326 -49.9715 131.634 +-229.104 -49.8278 131.255 +-232.292 -49.5367 130.489 +-239.447 -50.0584 131.863 +-243.959 -49.9892 131.681 +-248.661 -49.9307 131.526 +-251.278 -49.4342 130.218 +-259.075 -49.9239 131.509 +-262.765 -49.5864 130.62 +-272.135 -50.2781 132.442 +-276.479 -49.9974 131.702 +-284.231 -50.2952 132.487 +-289.052 -50.0354 131.802 +-297.221 -50.3147 132.538 +-304.248 -50.3523 132.637 +-312.845 -50.6004 133.291 +-317.731 -50.2068 132.254 +-325.831 -50.2824 132.453 +-331.014 -49.8675 131.36 +-342.02 -50.2799 132.446 +-347.138 -49.7774 131.123 +-358.118 -50.0659 131.883 +-365.403 -49.7816 131.134 +-376.449 -49.953 131.585 +-386.496 -49.9264 131.515 +-401.66 -50.4808 132.976 +-413.853 -50.5752 133.224 +-428.927 -50.9358 134.174 +-434.252 -50.0769 131.912 +-428.887 -47.9936 126.424 +-424.791 -46.093 121.417 +-378.83 -39.826 104.909 +-378.833 -38.5536 101.557 +-377.647 -37.1702 97.913 +-378.933 -36.0359 94.9251 +-378.836 -34.772 91.5956 +-378.609 -33.5029 88.2526 +-379.322 -32.3207 85.1385 +-377.179 -30.9052 81.4098 +-378.315 -29.7665 78.4104 +-3204.7 -241.759 636.836 +-3210.53 -231.824 610.666 +-3216.11 -221.872 584.451 +-3221.44 -211.903 558.19 +-3226.53 -201.917 531.887 +-3231.37 -191.916 505.543 +-3236.36 -181.924 479.219 +-3240.31 -171.872 452.742 +-3244.42 -161.83 426.289 +-3248.27 -151.775 399.803 +-3251.88 -141.709 373.288 +-3255.64 -131.648 346.785 +-3258.75 -121.56 320.211 +-3261.61 -111.463 293.613 +-3264.23 -101.357 266.992 +-3266.6 -91.243 240.351 +-3268.72 -81.1224 213.691 +-3270.59 -70.9957 187.016 +-3272.21 -60.8634 160.325 +-3273.58 -50.7267 133.623 +-3274.7 -40.5859 106.91 +-3275.58 -30.4422 80.1901 +-3276.2 -20.2961 53.4635 +-3276.58 -10.1484 26.7327 +94.4 0 0 +95.1964 -0.287828 0.779312 +94.9855 -0.574425 1.55529 +95.8671 -0.869745 2.35489 +95.142 -1.15109 3.11665 +95.3092 -1.44172 3.90356 +95.469 -1.73345 4.69344 +95.5215 -2.02415 5.4805 +95.3671 -2.31045 6.25569 +95.405 -2.60142 7.04349 +96.1328 -2.91392 7.88962 +95.2594 -3.17789 8.60434 +95.9714 -3.49475 9.46226 +95.979 -3.78869 10.2581 +95.88 -4.07875 11.0435 +95.8727 -4.37299 11.8402 +96.4521 -4.69645 12.7159 +95.44 -4.94178 13.3802 +96.0033 -5.26808 14.2636 +95.7683 -5.55242 15.0335 +95.6248 -5.84175 15.8169 +95.4741 -6.13066 16.5991 +95.316 -6.41909 17.3801 +95.0527 -6.7001 18.1409 +95.7607 -7.05207 19.0939 +95.677 -7.34882 19.8974 +95.3908 -7.63 20.6587 +95.2923 -7.92619 21.4607 +95.8652 -8.28107 22.4215 +95.7498 -8.57927 23.2289 +95.5301 -8.86843 24.0118 +95.2067 -9.14768 24.7679 +95.8378 -9.52109 25.7789 +95.4026 -9.79081 26.5092 +95.1523 -10.0789 27.2892 +95.7532 -10.46 28.321 +95.6763 -10.7705 29.1617 +96.0652 -11.1363 30.1522 +96.5374 -11.5165 31.1817 +95.3953 -11.7039 31.689 +95.8486 -12.0867 32.7254 +96.4772 -12.4973 33.8373 +96.0654 -12.7761 34.5922 +96.7634 -13.2057 35.7554 +96.4271 -13.4978 36.5461 +96.1759 -13.8021 37.37 +95.7325 -14.0788 38.1192 +96.2913 -14.5059 39.2755 +96.0136 -14.8105 40.1004 +95.6369 -15.1003 40.8849 +96.2499 -15.5499 42.1023 +96.3961 -15.9298 43.1309 +95.9912 -16.2206 43.9183 +95.579 -16.5102 44.7024 +96.0505 -16.9559 45.9091 +96.2407 -17.3576 46.9967 +95.7998 -17.6479 47.7828 +96.0547 -18.0691 48.9233 +95.6834 -18.3757 49.7532 +95.9132 -18.8007 50.9042 +95.436 -19.09 51.6873 +95.727 -19.5361 52.8951 +95.8313 -19.9497 54.015 +95.4104 -20.2567 54.8464 +95.4902 -20.6729 55.9733 +95.7249 -21.1284 57.2065 +95.1052 -21.3982 57.9368 +95.3131 -21.857 59.1791 +95.2564 -22.2606 60.2719 +95.4338 -22.7243 61.5275 +95.595 -23.1908 62.7907 +95.0073 -23.479 63.5707 +95.0595 -23.9283 64.7872 +95.0963 -24.3796 66.0092 +95.1974 -24.8539 67.2934 +95.2024 -25.3095 68.5269 +95.1917 -25.767 69.7656 +95.2434 -26.2479 71.0678 +95.2004 -26.7093 72.317 +95.2185 -27.1944 73.6306 +95.2193 -27.6817 74.9499 +95.2028 -28.171 76.2749 +95.0934 -28.6396 77.5436 +94.9676 -29.1097 78.8164 +94.751 -29.558 80.0302 +94.6664 -30.054 81.3731 +94.4909 -30.5281 82.6568 +93.7909 -30.8365 83.4917 +93.5142 -31.2874 84.7125 +93.4358 -31.8117 86.1322 +92.7017 -32.1175 86.9602 +93.0808 -32.8167 88.8532 +92.8758 -33.3211 90.219 +93.272 -34.053 92.2007 +92.9564 -34.5364 93.5095 +92.4883 -34.9693 94.6817 +92.7415 -35.6855 96.6206 +93.0319 -36.4314 98.6403 +92.6355 -36.9206 99.9648 +92.8711 -37.6735 102.003 +92.5614 -38.2181 103.478 +92.9946 -39.0849 105.825 +93.2023 -39.8759 107.967 +92.8169 -40.4275 109.46 +91.6104 -40.6246 109.994 +90.7055 -40.9551 110.889 +88.8279 -40.8405 110.578 +87.6174 -41.0237 111.074 +86.7571 -41.3712 112.015 +85.4795 -41.5192 112.416 +83.2833 -41.2084 111.574 +82.4121 -41.5441 112.483 +80.5238 -41.3608 111.987 +78.9822 -41.3428 111.938 +77.0664 -41.1152 111.322 +76.1891 -41.4343 112.186 +74.2417 -41.1637 111.453 +73.3588 -41.4752 112.297 +71.6418 -41.3092 111.847 +70.4971 -41.4644 112.268 +68.4 -41.0459 111.134 +67.8067 -41.5226 112.425 +66.0311 -41.2715 111.745 +64.9413 -41.4391 112.199 +63.097 -41.1138 111.318 +62.5669 -41.6411 112.746 +60.4715 -41.1187 111.331 +59.9244 -41.6411 112.746 +57.9965 -41.1977 111.545 +57.7315 -41.9346 113.541 +55.9124 -41.5424 112.479 +55.2371 -41.9935 113.7 +53.4452 -41.5892 112.605 +52.595 -41.9079 113.468 +50.8341 -41.4915 112.341 +49.7871 -41.6436 112.753 +48.2119 -41.3428 111.938 +47.2787 -41.5836 112.59 +45.9069 -41.434 112.185 +44.7565 -41.4738 112.293 +43.0603 -40.9887 110.98 +42.4269 -41.5095 112.389 +41.1518 -41.4069 112.112 +39.8535 -41.2666 111.732 +38.6271 -41.188 111.519 +37.6784 -41.4024 112.1 +36.2833 -41.1169 111.327 +35.4167 -41.4246 112.16 +34.2893 -41.4301 112.175 +33.2445 -41.5323 112.451 +32.1194 -41.5306 112.447 +31.0722 -41.6262 112.706 +29.6596 -41.2143 111.59 +28.6904 -41.4035 112.102 +27.4665 -41.2188 111.602 +26.6004 -41.5708 112.556 +25.49 -41.5479 112.494 +24.4226 -41.5895 112.606 +23.2596 -41.4575 112.249 +22.2692 -41.6287 112.712 +20.9072 -41.0802 111.227 +20.2183 -41.8594 113.337 +18.7878 -41.0975 111.274 +17.9293 -41.5642 112.538 +16.7564 -41.3078 111.844 +15.872 -41.7693 113.093 +14.6365 -41.2999 111.822 +13.6863 -41.6179 112.683 +12.6166 -41.5888 112.604 +11.5398 -41.522 112.423 +10.4413 -41.348 111.952 +9.42294 -41.4818 112.314 +8.31497 -41.1977 111.545 +7.33193 -41.5323 112.451 +6.23845 -41.2417 111.664 +5.25177 -41.674 112.835 +4.18096 -41.4807 112.312 +3.15956 -41.8036 113.186 +2.09603 -41.6037 112.645 +1.05417 -41.8507 113.313 +7.33539e-15 -41.506 112.38 +-1.05417 -41.8507 113.313 +-2.09778 -41.6384 112.738 +-3.17003 -41.9422 113.561 +-4.21586 -41.8268 113.249 +-5.28231 -41.9166 113.492 +-6.32218 -41.795 113.162 +-7.39298 -41.8781 113.388 +-8.3638 -41.4395 112.2 +-9.5014 -41.8272 113.25 +-10.5197 -41.6588 112.794 +-11.6069 -41.7631 113.076 +-12.6479 -41.6921 112.884 +-13.7882 -41.9277 113.522 +-14.7096 -41.506 112.38 +-15.8589 -41.735 113 +-16.8539 -41.5479 112.494 +-18.0032 -41.7354 113.001 +-18.9442 -41.4398 112.201 +-20.2513 -41.9277 113.522 +-20.9767 -41.2167 111.597 +-22.1963 -41.4922 112.343 +-23.2787 -41.4918 112.342 +-24.4026 -41.5556 112.514 +-25.4484 -41.48 112.31 +-26.6004 -41.5708 112.556 +-27.6465 -41.4887 112.333 +-28.9005 -41.7066 112.923 +-29.9015 -41.5507 112.501 +-31.0972 -41.6598 112.797 +-32.223 -41.6647 112.81 +-33.5117 -41.866 113.355 +-34.5649 -41.7631 113.076 +-35.8427 -41.9228 113.509 +-37.0435 -41.9786 113.66 +-38.2498 -42.0302 113.799 +-38.967 -41.5504 112.5 +-40.4881 -41.9238 113.511 +-41.4448 -41.7018 112.91 +-42.7607 -41.8358 113.273 +-43.9496 -41.8355 113.272 +-45.4219 -42.0901 113.962 +-46.4803 -41.9512 113.586 +-48.085 -42.2928 114.51 +-49.1484 -42.1459 114.113 +-50.6673 -42.3798 114.746 +-51.4984 -42.0337 113.809 +-53.1134 -42.3209 114.586 +-54.218 -42.1906 114.234 +-55.7762 -42.4033 114.81 +-56.4618 -41.9505 113.584 +-58.2912 -42.341 114.641 +-59.3555 -42.1633 114.16 +-61.2183 -42.5402 115.18 +-61.9697 -42.1373 114.089 +-63.8598 -42.5017 115.076 +-65.2096 -42.4903 115.045 +-67.184 -42.87 116.073 +-68.5036 -42.817 115.93 +-70.7613 -43.3319 117.324 +-72.45 -43.4763 117.715 +-74.9127 -44.0615 119.299 +-76.7922 -44.2791 119.888 +-78.6883 -44.4884 120.455 +-79.3289 -43.9843 119.09 +-81.2934 -44.2101 119.702 +-82.0771 -43.7885 118.56 +-83.3425 -43.6253 118.118 +-83.3197 -42.7973 115.876 +-85.4707 -43.0862 116.659 +-86.7248 -42.9113 116.185 +-89.4283 -43.4372 117.609 +-90.1075 -42.9688 116.341 +-92.257 -43.1961 116.956 +-93.3415 -42.9154 116.196 +-96.1234 -43.4012 117.511 +-97.6439 -43.3003 117.238 +-99.8513 -43.4912 117.755 +-100.943 -43.1877 116.933 +-103.999 -43.7099 118.347 +-105.096 -43.3935 117.491 +-108.198 -43.8911 118.838 +-109.759 -43.7452 118.443 +-113.043 -44.268 119.858 +-114.354 -44.0016 119.137 +-117.35 -44.3695 120.133 +-117.781 -43.7597 118.482 +-121.632 -44.4073 120.235 +-124.205 -44.5611 120.652 +-127.916 -45.0981 122.106 +-129.259 -44.7832 121.253 +-132.237 -45.0222 121.901 +-133.366 -44.6207 120.813 +-136.588 -44.9072 121.589 +-137.494 -44.4218 120.275 +-138.756 -44.0511 119.271 +-138.968 -43.3516 117.377 +-140.279 -42.9989 116.422 +-140.301 -42.2547 114.407 +-139.534 -41.2891 111.793 +-139.65 -40.5983 109.922 +-139.741 -39.9102 108.059 +-140.353 -39.377 106.616 +-141.339 -38.9512 105.463 +-141.369 -38.2666 103.609 +-141.693 -37.669 101.991 +-142.876 -37.3017 100.997 +-140.836 -36.1057 97.7585 +-140.122 -35.2711 95.4987 +-140.028 -34.6048 93.6947 +-140.648 -34.1205 92.3835 +-149.002 -35.4797 96.0634 +-154.533 -36.113 97.7782 +-188.875 -43.3125 117.271 +-220.906 -49.7026 134.573 +-225.354 -49.74 134.674 +-228.04 -49.3689 133.669 +-230.554 -48.9494 132.533 +-234.864 -48.8926 132.38 +-242.462 -49.4819 133.975 +-244.999 -49.0069 132.689 +-251.272 -49.2539 133.358 +-254.864 -48.9459 132.524 +-262.591 -49.3967 133.745 +-265.149 -48.8448 132.25 +-274.885 -49.5772 134.233 +-277.549 -48.9958 132.659 +-287.811 -49.7161 134.609 +-292.198 -49.3755 133.687 +-301.644 -49.8478 134.966 +-307.873 -49.739 134.671 +-316.212 -49.9271 135.181 +-322.025 -49.6738 134.495 +-328.949 -49.5546 134.172 +-334.511 -49.1947 133.198 +-344.792 -49.4805 133.972 +-350.29 -49.0332 132.761 +-361.746 -49.3693 133.67 +-369.885 -49.1923 133.191 +-381.881 -49.4677 133.937 +-390.16 -49.1999 133.212 +-408.352 -50.1 135.649 +-420.188 -50.1267 135.721 +-434.996 -50.4267 136.533 +-435.394 -49.0131 132.706 +-429.173 -46.8824 126.937 +-379.079 -40.1534 108.718 +-377.583 -38.7499 104.918 +-377.68 -37.521 101.591 +-377.165 -36.2388 98.1187 +-378.546 -35.1419 95.1488 +-379.417 -33.9961 92.0465 +-379.677 -32.7974 88.8009 +-379.419 -31.5593 85.4487 +-378.25 -30.255 81.9174 +-377.729 -29.0128 78.554 +-3204.7 -236.003 638.992 +-3210.53 -226.304 612.733 +-3216.11 -216.589 586.429 +-3221.44 -206.857 560.079 +-3226.53 -197.11 533.687 +-3231.37 -187.347 507.254 +-3235.96 -177.57 480.782 +-3240.31 -167.78 454.275 +-3244.42 -157.977 427.732 +-3248.27 -148.162 401.157 +-3251.88 -138.335 374.551 +-3255.24 -128.498 347.917 +-3258.35 -118.651 321.256 +-3261.22 -108.795 294.57 +-3264.23 -98.9433 267.895 +-3266.6 -89.0706 241.164 +-3268.72 -79.1909 214.414 +-3270.59 -69.3053 187.649 +-3272.21 -59.4142 160.868 +-3273.58 -49.519 134.076 +-3274.7 -39.6195 107.272 +-3275.58 -29.7173 80.4615 +-3276.2 -19.8128 53.6444 +-3276.58 -9.90677 26.8232 +95.2 0 0 +95.1964 -0.280784 0.781877 +94.9855 -0.560368 1.56041 +95.8671 -0.848461 2.36264 +94.9421 -1.12056 3.12034 +95.3092 -1.40644 3.91641 +95.1694 -1.68573 4.69411 +95.5215 -1.97461 5.49854 +95.3671 -2.25391 6.27628 +95.405 -2.53775 7.06668 +95.037 -2.81021 7.82536 +95.2594 -3.10012 8.63266 +95.7725 -3.40216 9.47373 +95.979 -3.69597 10.2919 +95.7807 -3.97481 11.0683 +95.8727 -4.26598 11.8791 +96.2541 -4.57209 12.7315 +95.44 -4.82085 13.4242 +95.0156 -5.0863 14.1634 +95.7683 -5.41654 15.083 +95.3294 -5.68118 15.8199 +95.4741 -5.98063 16.6538 +95.0215 -6.24264 17.3834 +95.0527 -6.53614 18.2007 +95.565 -6.86544 19.1176 +95.677 -7.16898 19.9629 +95.0985 -7.42047 20.6632 +95.2923 -7.73223 21.5313 +94.7979 -7.98848 22.2449 +95.7498 -8.36932 23.3054 +95.4335 -8.64265 24.0665 +95.2067 -8.92382 24.8494 +95.6455 -9.26947 25.812 +95.4026 -9.55121 26.5965 +96.013 -9.92117 27.6267 +95.7532 -10.204 28.4142 +95.4861 -10.486 29.1995 +96.0652 -10.8638 30.2515 +95.6865 -11.1357 31.0086 +95.3953 -11.4175 31.7934 +95.8486 -11.7909 32.8331 +96.4772 -12.1915 33.9487 +95.9721 -12.4513 34.6722 +96.7634 -12.8826 35.8731 +95.3145 -13.0156 36.2434 +96.1759 -13.4643 37.493 +96.561 -13.8531 38.5757 +96.2913 -14.1509 39.4048 +96.0136 -14.4481 40.2324 +95.6369 -14.7307 41.0195 +95.978 -15.1265 42.1216 +96.3961 -15.54 43.2729 +95.9912 -15.8237 44.0629 +95.579 -16.1062 44.8496 +95.9614 -16.5256 46.0175 +96.2407 -16.9328 47.1515 +95.7998 -17.216 47.9401 +96.0547 -17.627 49.0844 +95.5959 -17.9096 49.8714 +95.9132 -18.3406 51.0717 +95.3494 -18.6059 51.8104 +95.727 -19.058 53.0692 +95.917 -19.4789 54.2412 +95.4104 -19.761 55.0269 +95.4902 -20.167 56.1575 +95.7249 -20.6114 57.3948 +95.1052 -20.8745 58.1276 +95.3131 -21.3221 59.3739 +95.1735 -21.6969 60.4176 +95.4338 -22.1682 61.73 +94.7759 -22.4295 62.4575 +95.0073 -22.9044 63.78 +94.9786 -23.3228 64.9452 +95.0963 -23.783 66.2265 +95.1175 -24.2253 67.4582 +95.2024 -24.6901 68.7525 +94.4825 -24.9491 69.4738 +95.2434 -25.6055 71.3017 +95.1227 -26.0344 72.4958 +95.2185 -26.5289 73.873 +95.1427 -26.9826 75.1362 +95.2028 -27.4817 76.526 +95.0934 -27.9388 77.7989 +94.9676 -28.3974 79.0758 +94.8996 -28.8799 80.4196 +94.6664 -29.3186 81.641 +95.2223 -30.0116 83.5708 +93.7909 -30.0819 83.7665 +94.5932 -30.8739 85.972 +93.4358 -31.0332 86.4158 +92.631 -31.3076 87.1799 +93.0808 -32.0136 89.1457 +92.8064 -32.4814 90.4483 +93.272 -33.2197 92.5042 +92.9564 -33.6913 93.8174 +92.4883 -34.1136 94.9933 +92.8084 -34.8372 97.0083 +93.0319 -35.5399 98.965 +92.7011 -36.0424 100.364 +92.8711 -36.7515 102.339 +93.0756 -37.49 104.395 +92.9946 -38.1285 106.173 +92.8877 -38.7689 107.957 +92.8169 -39.4382 109.82 +92.9033 -40.1898 111.913 +90.7055 -39.9529 111.254 +92.0777 -41.2984 115 +87.6174 -40.0198 111.44 +89.0495 -41.4252 115.353 +85.4795 -40.5031 112.786 +86.5527 -41.778 116.336 +82.4121 -40.5275 112.854 +84.9414 -42.5625 118.52 +78.9822 -40.3311 112.307 +82.4039 -42.8869 119.424 +76.1891 -40.4203 112.555 +79.011 -42.7358 119.003 +73.3588 -40.4602 112.666 +76.0196 -42.7609 119.073 +70.4971 -40.4497 112.637 +72.75 -42.5882 118.592 +67.8067 -40.5065 112.795 +68.7945 -41.9467 116.805 +64.9413 -40.4251 112.568 +68.402 -43.4797 121.075 +62.5669 -40.6221 113.117 +65.647 -43.5457 121.258 +59.9244 -40.6221 113.117 +63.0378 -43.6832 121.641 +57.7315 -40.9084 113.914 +60.4344 -43.8032 121.975 +55.2371 -40.9658 114.074 +57.7973 -43.8752 122.176 +52.595 -40.8824 113.842 +54.4679 -43.3692 120.767 +49.7871 -40.6245 113.124 +51.2462 -42.8694 119.375 +47.2787 -40.566 112.961 +47.5554 -41.8713 116.596 +44.7565 -40.4589 112.663 +44.873 -41.6692 116.033 +42.4269 -40.4937 112.759 +42.2913 -41.512 115.595 +39.8535 -40.2567 112.1 +39.8941 -41.4978 115.556 +37.6784 -40.3892 112.469 +37.6575 -41.63 115.924 +35.4167 -40.4109 112.529 +35.3367 -41.6509 115.982 +33.2445 -40.516 112.822 +33.103 -41.755 116.272 +31.0722 -40.6076 113.077 +30.9418 -41.944 116.798 +28.6904 -40.3903 112.471 +28.4788 -41.6918 116.096 +26.6004 -40.5535 112.926 +26.3216 -41.8534 116.546 +24.4226 -40.5717 112.977 +23.9847 -41.704 116.13 +22.2692 -40.6099 113.083 +21.8276 -41.8388 116.505 +20.2183 -40.835 113.71 +19.6638 -41.9612 116.846 +17.9293 -40.5471 112.908 +17.4523 -41.9707 116.872 +15.872 -40.7472 113.465 +15.2702 -42.0335 117.047 +13.6863 -40.5995 113.054 +12.9511 -41.6465 115.97 +11.5398 -40.5058 112.793 +10.8247 -41.8176 116.446 +9.42294 -40.4666 112.684 +8.66375 -41.875 116.606 +7.33193 -40.516 112.822 +6.50013 -41.92 116.731 +5.25177 -40.6542 113.207 +4.33452 -41.9517 116.82 +3.15956 -40.7806 113.559 +2.17282 -42.0724 117.156 +1.05417 -40.8266 113.687 +7.61705e-15 -42.045 117.079 +-1.05417 -40.8266 113.687 +-2.17632 -42.14 117.344 +-3.17003 -40.9158 113.935 +-4.34499 -42.0531 117.102 +-5.28231 -40.8908 113.865 +-6.51583 -42.021 117.013 +-7.39298 -40.8533 113.761 +-8.68468 -41.9764 116.888 +-9.5014 -40.8036 113.623 +-10.9468 -42.289 117.759 +-11.6069 -40.7411 113.448 +-13.1079 -42.1508 117.374 +-13.7882 -40.9016 113.895 +-15.3921 -42.3691 117.982 +-15.8589 -40.7137 113.372 +-17.4941 -42.071 117.152 +-18.0032 -40.714 113.373 +-19.8046 -42.2617 117.683 +-20.2513 -40.9016 113.895 +-21.897 -41.972 116.876 +-22.1963 -40.4768 112.712 +-24.1564 -42.0024 116.961 +-24.4026 -40.5386 112.885 +-26.3216 -41.8534 116.546 +-26.6004 -40.5535 112.926 +-28.7487 -42.0869 117.196 +-28.9005 -40.686 113.295 +-30.9902 -42.0095 116.981 +-31.0972 -40.6404 113.168 +-33.3877 -42.114 117.271 +-33.5117 -40.8415 113.728 +-35.7502 -42.1383 117.339 +-35.8427 -40.8969 113.882 +-37.7452 -41.727 116.194 +-38.2498 -41.0017 114.174 +-40.6975 -42.3336 117.883 +-40.4881 -40.8979 113.885 +-43.0727 -42.2789 117.731 +-42.7607 -40.8121 113.646 +-45.7965 -42.5266 118.421 +-45.4219 -41.0601 114.337 +-48.1647 -42.4077 118.089 +-48.085 -41.2579 114.887 +-50.8341 -42.5246 118.415 +-50.6673 -41.3427 115.124 +-53.8427 -42.8717 119.381 +-53.1134 -41.2852 114.964 +-56.7398 -43.0725 119.94 +-55.7762 -41.3657 115.188 +-59.9695 -43.4662 121.037 +-58.2912 -41.3048 115.018 +-62.2049 -43.1059 120.034 +-61.2183 -41.4992 115.559 +-65.2384 -43.2746 120.503 +-63.8598 -41.4617 115.455 +-68.8715 -43.7782 121.906 +-67.184 -41.8209 116.455 +-72.3336 -44.1043 122.814 +-70.7613 -42.2715 117.71 +-76.35 -44.6955 124.46 +-74.9127 -42.9833 119.692 +-80.655 -45.3681 126.333 +-78.6883 -43.3996 120.852 +-84.1512 -45.5161 126.745 +-81.2934 -43.1282 120.096 +-86.4342 -44.9844 125.265 +-83.3425 -42.5577 118.507 +-87.1223 -43.6552 121.563 +-85.4707 -42.0318 117.043 +-89.9941 -43.4392 120.962 +-89.4283 -42.3742 117.996 +-93.9281 -43.6947 121.673 +-92.257 -42.139 117.341 +-97.6746 -43.8089 121.991 +-96.1234 -42.3391 117.898 +-101.646 -43.9719 122.445 +-99.8513 -42.4269 118.143 +-105.285 -43.9435 122.366 +-103.999 -42.6402 118.737 +-109.338 -44.0405 122.636 +-108.198 -42.817 119.229 +-114.548 -44.5366 124.018 +-113.043 -43.1847 120.253 +-118.235 -44.3818 123.586 +-117.35 -43.2837 120.529 +-124.465 -45.1112 125.617 +-121.632 -43.3206 120.631 +-129.623 -45.367 126.33 +-127.916 -43.9945 122.508 +-133.855 -45.2406 125.978 +-132.237 -43.9205 122.302 +-138.329 -45.1487 125.722 +-136.588 -43.8083 121.989 +-139.103 -43.8417 122.083 +-138.756 -42.9731 119.664 +-140.008 -42.6074 118.645 +-140.279 -41.9467 116.805 +-139.546 -40.999 114.166 +-139.534 -40.2787 112.161 +-140.11 -39.7352 110.648 +-139.741 -38.9335 108.415 +-141.751 -38.7963 108.033 +-141.339 -37.998 105.81 +-141.29 -37.3092 103.892 +-141.693 -36.7471 102.327 +-143.036 -36.4294 101.442 +-140.836 -35.2222 98.0803 +-140.203 -34.4279 95.8686 +-140.028 -33.758 94.0032 +-144.417 -34.1775 95.1712 +-149.002 -34.6114 96.3797 +-166.554 -37.9696 105.731 +-188.875 -42.2525 117.657 +-228.622 -50.1799 139.732 +-225.354 -48.5228 135.117 +-235.927 -49.8267 138.748 +-230.554 -47.7515 132.97 +-245.236 -49.8024 138.681 +-242.462 -48.271 134.416 +-254.611 -49.6834 138.349 +-251.272 -48.0486 133.797 +-264.922 -49.6324 138.207 +-262.591 -48.1878 134.185 +-275.568 -49.5219 137.9 +-274.885 -48.3639 134.675 +-288.864 -49.7456 138.523 +-287.811 -48.4995 135.053 +-302.534 -49.8713 138.873 +-301.644 -48.6279 135.41 +-320.017 -50.4361 140.445 +-316.212 -48.7053 135.626 +-333.718 -50.2178 139.837 +-328.949 -48.342 134.614 +-348.779 -50.0376 139.336 +-344.792 -48.2696 134.413 +-363.178 -49.5932 138.098 +-361.746 -48.1611 134.11 +-384.355 -49.8659 138.858 +-381.881 -48.2571 134.378 +-412.525 -50.747 141.311 +-408.352 -48.8739 136.095 +-435.979 -50.7376 141.285 +-434.996 -49.1927 136.983 +-441.29 -48.4613 134.946 +-429.173 -45.7351 127.355 +-378.697 -39.1313 108.966 +-377.583 -37.8016 105.263 +-378.545 -36.6866 102.158 +-377.165 -35.3519 98.4417 +-379.222 -34.3431 95.6324 +-379.417 -33.1642 92.3495 +-378.318 -31.8803 88.7745 +-379.419 -30.787 85.73 +-380.102 -29.6591 82.5893 +-377.729 -28.3028 78.8126 +-3204.7 -230.227 641.095 +-3210.53 -220.766 614.75 +-3216.11 -211.289 588.36 +-3221.44 -201.795 561.923 +-3226.53 -192.286 535.444 +-3231.37 -182.762 508.923 +-3235.96 -173.225 482.365 +-3240.31 -163.674 455.77 +-3244.42 -154.111 429.14 +-3248.27 -144.536 402.477 +-3251.88 -134.95 375.784 +-3255.24 -125.354 349.062 +-3258.35 -115.748 322.314 +-3261.22 -106.133 295.54 +-3263.83 -96.5102 268.744 +-3266.6 -86.8909 241.958 +-3268.72 -77.253 215.12 +-3270.59 -67.6093 188.266 +-3272.21 -57.9603 161.397 +-3273.58 -48.3072 134.517 +-3274.7 -38.65 107.625 +-3275.58 -28.9901 80.7264 +-3276.2 -19.328 53.821 +-3276.58 -9.66434 26.9115 +95.2 0 0 +95.2964 -0.274005 0.785203 +94.9855 -0.546265 1.5654 +95.2673 -0.821932 2.35537 +94.9421 -1.09236 3.13033 +95.4091 -1.37248 3.93306 +95.1694 -1.6433 4.70913 +95.3219 -1.92089 5.50461 +95.3671 -2.19719 6.29636 +95.2056 -2.46871 7.07447 +95.037 -2.73948 7.8504 +95.7571 -3.03789 8.70553 +95.7725 -3.31654 9.50405 +95.7803 -3.59551 10.3035 +95.7807 -3.87477 11.1037 +95.5753 -4.1457 11.8801 +96.2541 -4.45703 12.7723 +95.1433 -4.68492 13.4253 +95.0156 -4.95829 14.2087 +94.8807 -5.23129 14.9911 +95.3294 -5.5382 15.8705 +95.2774 -5.81809 16.6726 +95.0215 -6.08553 17.439 +94.9547 -6.36509 18.2401 +95.565 -6.69265 19.1788 +95.2865 -6.96002 19.945 +95.0985 -7.23372 20.7293 +95.0978 -7.52228 21.5562 +94.7979 -7.78744 22.3161 +95.653 -8.15042 23.3563 +95.4335 -8.42514 24.1435 +95.1103 -8.6904 24.9036 +95.6455 -9.03619 25.8945 +95.2108 -9.29212 26.628 +96.013 -9.67148 27.7151 +95.6578 -9.93727 28.4767 +95.4861 -10.2221 29.293 +95.1169 -10.4858 30.0487 +95.6865 -10.8554 31.1078 +95.3953 -11.1301 31.8951 +95.8486 -11.4941 32.9382 +95.4469 -11.7577 33.6935 +95.9721 -12.138 34.7832 +95.6469 -12.4135 35.5726 +95.3145 -12.688 36.3594 +95.9911 -13.1002 37.5407 +96.561 -13.5045 38.6991 +96.2913 -13.7947 39.5309 +96.0136 -14.0845 40.3611 +95.5459 -14.3463 41.1115 +95.978 -14.7458 42.2563 +95.7643 -15.0496 43.1268 +95.9912 -15.4254 44.2039 +95.4895 -15.6861 44.951 +95.9614 -16.1097 46.1647 +96.2407 -16.5067 47.3023 +95.7998 -16.7828 48.0935 +95.2638 -17.0418 48.8359 +95.5959 -17.4589 50.031 +95.9132 -17.8791 51.2351 +95.3494 -18.1377 51.9762 +94.8654 -18.4111 52.7599 +95.917 -18.9886 54.4148 +95.2399 -19.2293 55.1043 +95.4902 -19.6595 56.3372 +95.6406 -20.0749 57.5277 +95.1052 -20.3492 58.3135 +95.3131 -20.7855 59.5639 +95.1735 -21.1508 60.6109 +94.6097 -21.4237 61.3927 +94.7759 -21.865 62.6574 +94.9259 -22.3088 63.9293 +94.9786 -22.7358 65.153 +95.0159 -23.1649 66.3824 +95.1175 -23.6156 67.6741 +95.0437 -24.0286 68.8575 +94.4825 -24.3212 69.6961 +95.2434 -24.9611 71.5298 +95.1227 -25.3792 72.7278 +94.4468 -25.6517 73.5088 +95.1427 -26.3035 75.3766 +94.5185 -26.5974 76.2189 +95.0934 -27.2356 78.0478 +94.4433 -27.5299 78.8909 +94.8996 -28.1531 80.6769 +94.8139 -28.6252 82.0298 +95.2223 -29.2563 83.8382 +94.5888 -29.5743 84.7495 +94.5932 -30.0969 86.2471 +94.1491 -30.4832 87.354 +92.631 -30.5197 87.4588 +94.4826 -31.6779 90.7778 +92.8064 -31.6639 90.7377 +94.5111 -32.8138 94.033 +92.9564 -32.8434 94.1176 +94.5826 -34.0082 97.4556 +92.8084 -33.9605 97.3187 +94.2246 -35.0899 100.555 +92.7011 -35.1354 100.686 +92.8061 -35.8016 102.595 +93.0756 -36.5465 104.729 +92.613 -37.0163 106.076 +92.8877 -37.7933 108.302 +93.0659 -38.5487 110.467 +92.9033 -39.1784 112.271 +92.3491 -39.6531 113.632 +92.0777 -40.2591 115.368 +92.9113 -41.3697 118.551 +89.0495 -40.3826 115.722 +92.5641 -42.7562 122.524 +86.5527 -40.7266 116.708 +103.199 -49.4729 141.772 +84.9414 -41.4913 118.899 +98.6863 -49.1246 140.774 +82.4039 -41.8076 119.806 +93.4364 -48.323 138.477 +79.011 -41.6603 119.384 +90.0788 -48.4314 138.787 +76.0196 -41.6847 119.454 +86.586 -48.4311 138.786 +72.75 -41.5163 118.971 +83.8597 -48.8357 139.946 +68.7945 -40.891 117.179 +81.0216 -49.1655 140.891 +68.402 -42.3855 121.462 +77.7123 -49.1856 140.949 +65.647 -42.4497 121.646 +74.6489 -49.3302 141.363 +63.0378 -42.5838 122.03 +71.0343 -49.0679 140.611 +60.4344 -42.7008 122.366 +67.1388 -48.5395 139.097 +57.7973 -42.771 122.567 +65.3948 -49.5526 142 +54.4679 -42.2778 121.153 +62.5305 -49.7384 142.533 +51.2462 -41.7905 119.757 +59.8863 -50.0903 143.541 +47.5554 -40.8175 116.969 +57.469 -50.6432 145.126 +44.873 -40.6205 116.404 +53.576 -49.8478 142.846 +42.2913 -40.4673 115.965 +49.3091 -48.5546 139.14 +39.8941 -40.4534 115.925 +46.459 -48.548 139.122 +37.6575 -40.5823 116.295 +43.7384 -48.6498 139.413 +35.3367 -40.6027 116.353 +40.8607 -48.5447 139.112 +33.103 -40.7042 116.644 +38.1579 -48.6129 139.308 +30.9418 -40.8884 117.172 +35.367 -48.5365 139.089 +28.4788 -40.6426 116.467 +32.7906 -48.7325 139.65 +26.3216 -40.8001 116.919 +30.0846 -48.72 139.614 +23.9847 -40.6544 116.501 +27.3718 -48.6587 139.439 +21.8276 -40.7859 116.878 +24.5921 -48.4189 138.751 +19.6638 -40.9052 117.22 +22.0679 -48.6505 139.415 +17.4523 -40.9144 117.246 +19.4876 -48.7701 139.758 +15.2702 -40.9757 117.422 +16.7541 -48.4492 138.838 +12.9511 -40.5984 116.341 +14.3002 -48.9315 140.221 +10.8247 -40.7651 116.819 +11.6669 -48.8422 139.965 +8.66375 -40.8211 116.979 +9.07792 -48.9019 140.136 +6.50013 -40.865 117.105 +6.4862 -48.9464 140.263 +4.33452 -40.8959 117.193 +3.87157 -48.7128 139.594 +2.17282 -41.0136 117.53 +1.29327 -48.8264 139.919 +7.61705e-15 -40.9869 117.454 +-1.29764 -48.9912 140.391 +-2.17632 -41.0794 117.719 +-3.89251 -48.9763 140.349 +-4.34499 -40.9948 117.477 +-6.49929 -49.0452 140.546 +-6.51583 -40.9635 117.387 +-9.13286 -49.1977 140.983 +-8.68468 -40.92 117.262 +-11.7061 -49.0063 140.435 +-10.9468 -41.2247 118.136 +-14.2618 -48.8004 139.845 +-13.1079 -41.09 117.75 +-16.9578 -49.0383 140.527 +-15.3921 -41.3028 118.359 +-19.5528 -48.9332 140.225 +-17.4941 -41.0122 117.527 +-22.2601 -49.0742 140.629 +-19.8046 -41.1981 118.059 +-24.8562 -48.9388 140.241 +-21.897 -40.9157 117.25 +-27.5176 -48.9177 140.181 +-24.1564 -40.9454 117.335 +-30.1444 -48.8169 139.892 +-26.3216 -40.8001 116.919 +-33.0503 -49.1183 140.756 +-28.7487 -41.0277 117.571 +-35.7171 -49.0172 140.466 +-30.9902 -40.9523 117.355 +-38.4584 -48.9955 140.404 +-33.3877 -41.0541 117.647 +-41.3685 -49.148 140.841 +-35.7502 -41.0778 117.715 +-44.136 -49.0923 140.681 +-37.7452 -40.6768 116.566 +-47.3612 -49.4907 141.823 +-40.6975 -41.2682 118.26 +-49.8168 -49.0548 140.574 +-43.0727 -41.2149 118.107 +-53.0419 -49.351 141.423 +-45.7965 -41.4564 118.799 +-56.1733 -49.5012 141.853 +-48.1647 -41.3404 118.467 +-59.5198 -49.7839 142.663 +-50.8341 -41.4544 118.794 +-63.028 -50.1341 143.667 +-53.8427 -41.7928 119.763 +-67.269 -50.9726 146.07 +-56.7398 -41.9885 120.324 +-72.4884 -52.4068 150.18 +-59.9695 -42.3723 121.424 +-76.0713 -52.5472 150.582 +-62.2049 -42.0211 120.418 +-79.6909 -52.6619 150.91 +-65.2384 -42.1855 120.889 +-83.5303 -52.8678 151.501 +-68.8715 -42.6764 122.296 +-87.2723 -52.9587 151.761 +-72.3336 -42.9944 123.207 +-88.1931 -51.3591 147.177 +-76.35 -43.5706 124.858 +-91.7122 -51.2982 147.003 +-80.655 -44.2263 126.737 +-98.7 -53.0668 152.071 +-84.1512 -44.3706 127.151 +-102.141 -52.8246 151.377 +-86.4342 -43.8523 125.665 +-104.537 -52.0368 149.119 +-87.1223 -42.5565 121.952 +-106.768 -51.1835 146.674 +-89.9941 -42.346 121.349 +-112.308 -51.8761 148.659 +-93.9281 -42.595 122.062 +-115.693 -51.5136 147.62 +-97.6746 -42.7064 122.382 +-120.23 -51.6247 147.938 +-101.646 -42.8652 122.837 +-126.37 -52.3436 149.998 +-105.285 -42.8375 122.757 +-131.032 -52.3719 150.08 +-109.338 -42.9321 123.028 +-134.371 -51.8359 148.543 +-114.548 -43.4158 124.414 +-139.879 -52.0919 149.277 +-118.235 -43.2649 123.982 +-140.388 -50.4778 144.652 +-124.465 -43.9759 126.019 +-140.08 -48.6353 139.372 +-129.623 -44.2253 126.734 +-140.042 -46.9527 134.55 +-133.855 -44.1021 126.381 +-140.938 -45.6325 130.767 +-138.329 -44.0124 126.124 +-141.738 -44.3159 126.994 +-139.103 -42.7384 122.473 +-141.189 -42.6263 122.152 +-140.008 -41.5351 119.025 +-140.654 -41 117.492 +-139.546 -39.9671 114.532 +-142.348 -40.0568 114.789 +-140.11 -38.7352 111.002 +-159.572 -43.3397 124.196 +-141.751 -37.8199 108.379 +-220.852 -57.8804 165.865 +-141.29 -36.3702 104.224 +-141.852 -35.8625 102.769 +-143.036 -35.5126 101.767 +-143.006 -34.8649 99.9105 +-140.203 -33.5615 96.1754 +-141.086 -33.1572 95.0169 +-144.417 -33.3173 95.4757 +-147.024 -33.2926 95.4049 +-166.554 -37.014 106.069 +-262.34 -57.21 163.944 +-228.622 -48.917 140.179 +-273.428 -57.3925 164.467 +-235.927 -48.5727 139.192 +-287.425 -58.032 166.299 +-245.236 -48.549 139.124 +-296.659 -57.5744 164.988 +-254.611 -48.433 138.792 +-305.93 -57.0281 163.422 +-264.922 -48.3833 138.65 +-323.405 -57.8541 165.789 +-275.568 -48.2755 138.341 +-337.774 -57.9332 166.016 +-288.864 -48.4937 138.966 +-350.725 -57.6139 165.101 +-302.534 -48.6162 139.317 +-368.074 -57.8435 165.759 +-320.017 -49.1668 140.895 +-384.914 -57.7951 165.62 +-333.718 -48.9539 140.285 +-402.864 -57.7144 165.389 +-348.779 -48.7783 139.782 +-426.001 -58.1378 166.602 +-363.178 -48.3451 138.54 +-447.717 -58.1065 166.513 +-384.355 -48.611 139.302 +-453.724 -55.8924 160.168 +-412.525 -49.4699 141.763 +-402.696 -46.984 134.64 +-435.979 -49.4607 141.737 +-403.796 -44.5149 127.564 +-441.29 -47.2416 135.378 +-384.348 -39.9273 114.418 +-378.697 -38.1465 109.314 +-376.241 -36.7195 105.225 +-378.545 -35.7633 102.485 +-378.225 -34.5591 99.0343 +-379.222 -33.4788 95.9384 +-377.578 -32.1728 92.1959 +-378.318 -31.078 89.0585 +-3185.78 -251.996 722.131 +-380.102 -28.9127 82.8536 +-3198.64 -233.639 669.526 +-3204.7 -224.433 643.146 +-378.545 -25.3749 72.7155 +-3216.11 -205.972 590.242 +-377.472 -23.0502 66.0539 +-3226.53 -187.447 537.157 +-377.353 -20.8055 59.6213 +-3235.96 -168.865 483.908 +-383.441 -18.8809 54.106 +-3244.42 -150.232 430.513 +-379.228 -16.4495 47.1386 +-3251.88 -131.554 376.987 +-3255.24 -122.199 350.179 +-3258.35 -112.835 323.345 +-3261.22 -103.462 296.485 +-3263.83 -94.0813 269.604 +-3266.2 -84.6939 242.703 +-3268.72 -75.3088 215.808 +-3270.19 -65.8996 188.845 +-3272.21 -56.5016 161.914 +-3273.18 -47.0855 134.93 +-3274.7 -37.6773 107.97 +-3275.18 -28.2571 80.9748 +-3276.2 -18.8415 53.9932 +-3276.18 -9.41996 26.9943 +95.3 0 0 +95.2964 -0.266909 0.787644 +95.2855 -0.533797 1.57522 +95.2673 -0.800645 2.36269 +95.2419 -1.06743 3.14997 +95.4091 -1.33694 3.94528 +95.3691 -1.6041 4.73367 +95.1222 -1.86723 5.51015 +95.3671 -2.14028 6.31593 +96.1028 -2.42744 7.16334 +95.1366 -2.67133 7.88305 +95.7571 -2.95922 8.73259 +95.8719 -3.23399 9.54344 +95.8797 -3.50602 10.3462 +95.6814 -3.77051 11.1267 +95.5753 -4.03834 11.9171 +95.4618 -4.30588 12.7066 +95.1433 -4.56359 13.4671 +95.9045 -4.87507 14.3862 +95.6697 -5.13818 15.1627 +95.4279 -5.40036 15.9363 +95.2774 -5.66741 16.7244 +95.1197 -5.93405 17.5113 +94.7587 -6.18744 18.259 +95.6628 -6.526 19.2581 +95.4817 -6.79367 20.048 +96.1703 -7.12581 21.0281 +95.195 -7.33494 21.6453 +94.8949 -7.59353 22.4083 +95.653 -7.93934 23.4288 +95.3369 -8.19863 24.194 +95.1103 -8.46534 24.981 +95.7417 -8.81103 26.0012 +95.3067 -9.06059 26.7376 +95.248 -9.34594 27.5797 +95.6578 -9.67992 28.5652 +95.391 -9.94745 29.3547 +95.1169 -10.2143 30.1421 +95.6865 -10.5743 31.2045 +95.3953 -10.8419 31.9942 +95.8486 -11.1965 33.0406 +95.4469 -11.4532 33.7982 +95.9721 -11.8236 34.8913 +95.6469 -12.092 35.6832 +96.2417 -12.4796 36.8272 +95.9911 -12.761 37.6574 +96.561 -13.1547 38.8194 +96.2913 -13.4375 39.6538 +95.9223 -13.7066 40.448 +95.7279 -14.0014 41.3178 +96.1593 -14.391 42.4677 +95.5838 -14.6322 43.1793 +96.0811 -15.04 44.3828 +95.4895 -15.2799 45.0907 +95.9614 -15.6925 46.3082 +96.152 -16.0644 47.4056 +95.7115 -16.333 48.1985 +95.2638 -16.6005 48.9877 +95.5959 -17.0067 50.1865 +95.0428 -17.258 50.928 +95.3494 -17.6679 52.1378 +95.5547 -18.0646 53.3084 +95.8313 -18.4803 54.5352 +95.3252 -18.748 55.325 +95.4054 -19.1333 56.4621 +95.5563 -19.5378 57.6556 +95.1052 -19.8222 58.4948 +95.2298 -20.2295 59.6967 +95.3393 -20.639 60.9052 +94.7745 -20.9052 61.6909 +94.9397 -21.3355 62.9607 +94.9259 -21.7311 64.128 +94.9786 -22.147 65.3555 +95.0159 -22.5649 66.5887 +95.1175 -23.004 67.8844 +95.2024 -23.4454 69.1869 +95.1129 -23.8494 70.3792 +95.2434 -24.3147 71.7522 +95.1227 -24.7219 72.9538 +95.2185 -25.1915 74.3397 +95.2193 -25.6429 75.6717 +95.2028 -26.0962 77.0094 +94.4896 -26.3619 77.7933 +94.9676 -26.9657 79.5754 +94.9739 -27.4455 80.991 +94.224 -27.7104 81.7728 +94.8566 -28.3891 83.7758 +94.6614 -28.8305 85.0781 +94.4493 -29.2728 86.3835 +94.2917 -29.7387 87.7583 +94.6816 -30.3875 89.6728 +94.4125 -30.8346 90.9923 +94.1262 -31.2825 92.3141 +94.5111 -31.964 94.3252 +94.2522 -32.4387 95.7261 +94.5151 -33.1037 97.6885 +94.1467 -33.5579 99.0286 +93.6945 -33.9886 100.3 +93.8164 -34.6372 102.214 +93.3906 -35.0939 103.561 +92.3043 -35.3051 104.185 +92.3586 -35.9585 106.113 +92.2584 -36.5651 107.903 +92.9414 -37.5 110.662 +92.9649 -38.1891 112.695 +92.9579 -38.8807 114.736 +92.9202 -39.5752 116.786 +92.376 -40.0663 118.235 +92.9876 -41.0763 121.215 +92.5641 -41.6489 122.905 +103.932 -47.6377 140.578 +104.502 -48.7998 144.007 +101.326 -48.2128 142.275 +100.508 -48.7356 143.818 +97.1636 -48.0193 141.704 +95.0483 -47.8835 141.303 +91.835 -47.1681 139.192 +91.2282 -47.7792 140.995 +88.4835 -47.2625 139.471 +87.9564 -47.9233 141.421 +85.6 -47.5844 140.421 +85.337 -48.4089 142.854 +83.5327 -48.3652 142.725 +83.2642 -49.218 145.241 +80.4205 -48.5424 143.248 +80.6675 -49.7337 146.763 +77.5416 -48.8425 144.133 +77.1476 -49.6609 146.548 +74.0847 -48.75 143.86 +73.2299 -49.2745 145.408 +69.4784 -47.8196 141.115 +69.3782 -48.8595 144.183 +68.047 -49.0517 144.751 +67.4683 -49.7999 146.958 +65.5647 -49.5733 146.29 +64.2143 -49.7549 146.826 +62.5593 -49.6949 146.649 +61.9021 -50.4356 148.835 +59.955 -50.1275 147.925 +58.4846 -50.2033 148.149 +56.8437 -50.124 147.915 +55.679 -50.4629 148.915 +51.57 -48.0677 141.847 +50.3245 -48.2712 142.447 +48.2994 -47.7083 140.786 +47.0003 -47.8418 141.18 +45.1714 -47.4191 139.933 +44.136 -47.8209 141.119 +42.3379 -47.3873 139.839 +41.4219 -47.9371 141.461 +39.5993 -47.4313 139.969 +38.6336 -47.9442 141.482 +36.9173 -47.5212 140.234 +35.9739 -48.0908 141.915 +34.1026 -47.4082 139.901 +33.0936 -47.9092 141.379 +31.3947 -47.4034 139.886 +30.4435 -48.0244 141.719 +29.022 -47.9185 141.407 +27.8274 -48.1874 142.2 +26.3077 -47.8841 141.305 +25.0542 -48.051 141.798 +23.6529 -47.9291 141.438 +22.3931 -48.0889 141.909 +20.695 -47.2599 139.463 +19.6964 -48.0161 141.694 +18.1951 -47.5597 140.348 +17.0824 -48.1191 141.998 +15.6479 -47.7821 141.004 +14.511 -48.3672 142.731 +13.0385 -47.8305 141.147 +11.8473 -48.3132 142.571 +10.4495 -47.9602 141.53 +9.20001 -48.276 142.462 +7.82946 -47.9474 141.492 +6.54727 -48.1277 142.024 +5.20351 -47.8235 141.126 +3.92131 -48.061 141.827 +2.61088 -48.0058 141.664 +1.31771 -48.4606 143.006 +9.22129e-15 -48.3341 142.633 +-1.31422 -48.3322 142.627 +-2.61961 -48.1663 142.138 +-3.9501 -48.4137 142.868 +-5.20351 -47.8235 141.126 +-6.63451 -48.769 143.916 +-7.86086 -48.1396 142.059 +-9.24885 -48.5321 143.217 +-10.5193 -48.2805 142.475 +-11.8552 -48.345 142.665 +-13.0821 -47.9904 141.619 +-14.4727 -48.2394 142.354 +-15.6897 -47.9098 141.381 +-17.1616 -48.3421 142.657 +-18.3657 -48.0058 141.664 +-19.7878 -48.2388 142.352 +-20.9734 -47.8954 141.338 +-22.4522 -48.216 142.284 +-23.7155 -48.0562 141.813 +-25.0707 -48.0828 141.891 +-26.3772 -48.0106 141.678 +-27.9549 -48.4082 142.852 +-29.1365 -48.1075 141.964 +-30.5033 -48.1184 141.997 +-31.8105 -48.0315 141.74 +-33.3317 -48.2539 142.396 +-34.4175 -47.846 141.192 +-36.0673 -48.2157 142.284 +-37.3044 -48.0196 141.705 +-38.8339 -48.1929 142.216 +-40.1428 -48.0822 141.89 +-41.9564 -48.5556 143.287 +-43.0821 -48.2202 142.297 +-44.7324 -48.467 143.025 +-45.9901 -48.2786 142.469 +-47.6318 -48.4846 143.077 +-49.0101 -48.4105 142.858 +-50.6101 -48.5453 143.256 +-52.0258 -48.4927 143.101 +-53.7763 -48.7385 143.826 +-55.0994 -48.5857 143.376 +-56.9437 -48.8807 144.246 +-58.3781 -48.8091 144.035 +-60.3261 -49.1515 145.045 +-61.9225 -49.1888 145.155 +-63.9081 -49.5177 146.126 +-65.1349 -49.2482 145.33 +-68.9437 -50.8888 150.172 +-70.9349 -51.1334 150.894 +-73.6081 -51.8382 152.973 +-74.6344 -51.3683 151.587 +-77.5781 -52.2002 154.042 +-78.6438 -51.7502 152.714 +-81.2526 -52.3035 154.347 +-82.1723 -51.7592 152.74 +-85.285 -52.5805 155.164 +-85.8194 -51.8013 152.865 +-88.0835 -52.0667 153.648 +-89.205 -51.6495 152.417 +-88.9317 -50.4478 148.871 +-90.3 -50.1969 148.13 +-93.3871 -50.8824 150.153 +-95.9516 -51.2515 151.242 +-100.006 -52.3764 154.562 +-100.738 -51.7406 152.686 +-102.893 -51.8353 152.965 +-103.863 -51.3298 151.473 +-105.972 -51.385 151.636 +-106.414 -50.634 149.42 +-108.297 -50.572 149.237 +-110.413 -50.6086 149.345 +-113.469 -51.0551 150.663 +-114.324 -50.5018 149.03 +-117.478 -50.9536 150.363 +-118.196 -50.3406 148.554 +-123.213 -51.5355 152.08 +-124.979 -51.3401 151.504 +-128.798 -51.9678 153.356 +-129.64 -51.3805 151.623 +-132.559 -51.61 152.3 +-134.471 -51.4331 151.778 +-137.618 -51.7136 152.606 +-138.625 -51.1809 151.034 +-139.482 -50.5984 149.315 +-139.581 -49.7527 146.819 +-140.05 -49.0524 144.753 +-140.287 -48.2824 142.481 +-140.011 -47.3523 139.736 +-140.599 -46.7275 137.892 +-140.182 -45.7826 135.104 +-141.068 -45.2749 133.605 +-141.509 -44.6304 131.703 +-141.854 -43.9651 129.74 +-141.448 -43.0799 127.128 +-141.517 -42.354 124.986 +-140.82 -41.4139 122.212 +-140.9 -40.7172 120.156 +-140.729 -39.9594 117.919 +-140.451 -39.185 115.634 +-148.431 -40.6867 120.066 +-152.826 -41.1565 121.452 +-172.921 -45.7489 135.004 +-219.621 -57.0785 168.438 +-222.965 -56.9206 167.972 +-153.11 -38.3922 113.295 +-141.852 -34.9337 103.089 +-141.199 -34.1487 100.772 +-143.087 -33.9809 100.277 +-140.769 -32.8245 96.8645 +-141.005 -32.2799 95.2573 +-142.451 -32.0125 94.4682 +-146.282 -32.2667 95.2184 +-145.745 -31.5507 93.1055 +-266.176 -56.5432 166.858 +-271.897 -56.6697 167.231 +-276.464 -56.5268 166.81 +-280.958 -56.3455 166.274 +-289.557 -56.9486 168.054 +-293.323 -56.565 166.922 +-300.709 -56.8491 167.76 +-301.204 -55.8121 164.7 +-311.239 -56.5153 166.775 +-318.362 -56.6372 167.135 +-329.996 -57.5044 169.694 +-332.783 -56.789 167.583 +-342.031 -57.144 168.631 +-347.403 -56.8105 167.647 +-354.752 -56.7663 167.516 +-359.338 -56.2489 165.989 +-372.858 -57.0779 168.436 +-377.749 -56.5333 166.829 +-389.372 -56.9505 168.06 +-392.916 -56.1449 165.683 +-410.018 -57.2181 168.85 +-416.713 -56.7698 167.527 +-432.191 -57.455 169.549 +-437.538 -56.7354 167.425 +-452.09 -57.1546 168.662 +-453.16 -55.8288 164.75 +-452.6 -54.3101 160.268 +-403.316 -47.1129 139.029 +-401.565 -45.6388 134.679 +-404.398 -44.6898 131.879 +-403.417 -43.3213 127.84 +-403.723 -42.1007 124.238 +-383.203 -38.7777 114.432 +-379.079 -37.1961 109.765 +-376.72 -35.8141 105.687 +-377.872 -34.7752 102.621 +-376.78 -33.5354 98.9623 +-376.325 -32.3627 95.5016 +-3171.94 -263.276 776.924 +-379.774 -30.3896 89.679 +-3185.78 -245.47 724.376 +-3192.33 -236.538 698.018 +-3198.64 -227.588 671.607 +-379.423 -25.8837 76.3824 +-378.545 -24.7177 72.9415 +-379.693 -23.6872 69.9005 +-378.258 -22.5001 66.3973 +-378.068 -21.3952 63.1369 +-378.635 -20.3356 60.0099 +-380.458 -19.3396 57.0708 +-378.299 -18.1452 53.5462 +-376.995 -17.0046 50.1803 +-379.228 -16.0235 47.2851 +-380.145 -14.9804 44.2068 +-3255.24 -119.034 351.267 +-3258.35 -109.913 324.35 +-3261.22 -100.782 297.407 +-3263.83 -91.6448 270.442 +-3266.2 -82.5005 243.457 +-3268.32 -73.3494 216.453 +-3270.19 -64.1929 189.432 +-3271.81 -55.0316 162.397 +-3273.18 -45.866 135.35 +-3274.3 -36.697 108.292 +-3275.18 -27.5252 81.2265 +-3275.8 -18.3513 54.1544 +-3276.18 -9.176 27.0782 +95.3 0 0 +95.2964 -0.259791 0.79002 +95.2855 -0.519561 1.57998 +95.2673 -0.779293 2.36982 +95.4418 -1.04115 3.16611 +95.4091 -1.30129 3.95718 +95.3691 -1.56132 4.74795 +95.3219 -1.82125 5.53837 +95.2674 -2.08103 6.32836 +95.2056 -2.34065 7.11787 +96.0332 -2.6246 7.98135 +95.9562 -2.88629 8.77714 +95.8719 -3.14774 9.57223 +95.8797 -3.41252 10.3774 +95.6814 -3.66996 11.1603 +95.5753 -3.93064 11.953 +96.3531 -4.23016 12.8638 +96.0334 -4.48344 13.634 +96.1021 -4.75484 14.4594 +95.6697 -5.00115 15.2084 +95.4279 -5.25634 15.9844 +95.0807 -5.5049 16.7403 +95.1197 -5.7758 17.5641 +94.7587 -6.02243 18.3141 +94.7825 -6.29349 19.1384 +94.6031 -6.55164 19.9234 +95.2934 -6.87252 20.8992 +95.0978 -7.13205 21.6884 +94.992 -7.39858 22.4989 +95.5562 -7.71981 23.4758 +95.3369 -7.97999 24.267 +95.1103 -8.23958 25.0564 +95.7417 -8.57605 26.0796 +95.3067 -8.81896 26.8183 +96.1086 -9.17892 27.9129 +95.8486 -9.44055 28.7085 +95.391 -9.68217 29.4433 +95.1169 -9.94186 30.233 +95.6865 -10.2923 31.2987 +95.3953 -10.5528 32.0907 +95.8486 -10.8979 33.1402 +96.2899 -11.2463 34.1996 +95.9721 -11.5083 34.9966 +95.6469 -11.7695 35.7908 +96.3344 -12.1585 36.9738 +95.9911 -12.4207 37.771 +95.7325 -12.6941 38.6024 +95.466 -12.967 39.4325 +96.105 -13.3665 40.6474 +95.7279 -13.628 41.4425 +96.1593 -14.0073 42.5958 +95.5838 -14.242 43.3095 +95.9013 -14.6115 44.4334 +95.4895 -14.8724 45.2267 +95.9614 -15.274 46.4479 +96.152 -15.6359 47.5486 +95.6232 -15.8828 48.2994 +96.0547 -16.292 49.5435 +95.5085 -16.538 50.2918 +95.8262 -16.9362 51.5026 +95.3494 -17.1968 52.2951 +95.5547 -17.5829 53.4692 +95.7456 -17.9714 54.6508 +95.3252 -18.248 55.4919 +95.4054 -18.6231 56.6325 +95.6406 -19.0335 57.8806 +95.0214 -19.2765 58.6195 +95.2298 -19.69 59.8768 +95.3393 -20.0886 61.089 +95.3514 -20.4716 62.2536 +94.7759 -20.7307 63.0417 +95.0887 -21.1878 64.4318 +94.9786 -21.5564 65.5526 +95.0159 -21.9632 66.7896 +95.1175 -22.3905 68.0892 +95.1231 -22.8011 69.3377 +95.1129 -23.2134 70.5915 +95.2434 -23.6663 71.9686 +95.1227 -24.0626 73.1739 +95.1413 -24.4998 74.5035 +95.1427 -24.939 75.839 +95.1268 -25.38 77.1801 +95.0934 -25.8228 78.5266 +95.0425 -26.2673 79.8785 +94.8996 -26.6926 81.1718 +94.8876 -27.1614 82.5972 +94.1252 -27.419 83.3807 +94.6614 -28.0616 85.3348 +94.4493 -28.4922 86.6441 +94.2917 -28.9456 88.0231 +94.823 -29.6212 90.0776 +94.6228 -30.0791 91.4701 +94.1957 -30.4708 92.6611 +93.9604 -30.9303 94.0585 +94.3204 -31.5965 96.0842 +94.5151 -32.2209 97.9832 +94.1467 -32.6629 99.3274 +94.3571 -33.3161 101.314 +93.8164 -33.7135 102.522 +93.7803 -34.3008 104.308 +92.5614 -34.4592 104.79 +92.5494 -35.0717 106.652 +92.7618 -35.784 108.818 +92.8792 -36.4756 110.922 +92.3492 -36.9245 112.287 +92.897 -37.8192 115.007 +92.9202 -38.5198 117.138 +92.9113 -39.2236 119.278 +92.8701 -39.9306 121.428 +92.0995 -40.3348 122.657 +107.374 -47.9026 145.671 +107.221 -48.7342 148.2 +104.961 -48.6102 147.823 +103.433 -48.8163 148.45 +100.486 -48.3368 146.991 +99.6153 -48.846 148.54 +94.5906 -47.2879 143.801 +93.5795 -47.7036 145.066 +91.3163 -47.475 144.37 +91.0524 -48.2872 146.84 +88.35 -47.8033 145.369 +87.8484 -48.5043 147.501 +86.1992 -48.578 147.725 +85.1251 -48.976 148.935 +82.9087 -48.7098 148.126 +82.376 -49.4327 150.324 +79.7207 -48.876 148.631 +78.7985 -49.3708 150.136 +76.1889 -48.7976 148.393 +75.2103 -49.2574 149.791 +72.0142 -48.2431 146.706 +70.9125 -48.608 147.816 +68.4538 -48.0291 146.056 +67.588 -48.5577 147.663 +66.5806 -48.9988 149.004 +65.5919 -49.467 150.428 +63.6082 -49.1806 149.557 +62.8916 -49.8753 151.67 +60.8509 -49.5198 150.589 +59.7104 -49.8888 151.711 +57.8014 -49.6092 150.861 +56.9475 -50.2361 152.767 +53.0025 -48.0854 146.227 +51.6572 -48.2281 146.661 +49.1028 -47.2085 143.56 +48.2332 -47.7874 145.32 +46.1947 -47.2001 143.535 +45.2152 -47.6836 145.005 +43.1648 -47.0245 143.001 +41.9297 -47.2307 143.628 +40.5311 -47.2526 143.694 +39.3597 -47.5428 144.577 +37.5463 -47.042 143.054 +36.6976 -47.7502 145.207 +34.7324 -46.9961 142.914 +33.6564 -47.4244 144.217 +31.9768 -46.9948 142.91 +31.2011 -47.9067 145.683 +29.3273 -47.1313 143.326 +28.2647 -47.6396 144.871 +26.6376 -47.1919 143.51 +25.5989 -47.7864 145.318 +24.044 -47.4225 144.211 +22.8513 -47.7642 145.25 +21.2517 -47.2369 143.647 +20.1663 -47.8505 145.512 +18.5729 -47.2526 143.694 +17.4899 -47.9532 145.825 +15.8361 -47.067 143.13 +14.8273 -48.1035 146.282 +13.3261 -47.5818 144.695 +12.0435 -47.8033 145.369 +10.596 -47.3356 143.947 +9.38927 -47.9551 145.831 +7.9289 -47.2613 143.721 +6.69558 -47.9054 145.68 +5.30123 -47.4222 144.21 +4.02601 -48.0282 146.053 +2.65975 -47.6002 144.751 +1.34214 -48.0429 146.097 +9.3315e-15 -47.6074 144.773 +-1.34214 -48.0429 146.097 +-2.65975 -47.6002 144.751 +-4.04434 -48.2469 146.718 +-5.32915 -47.6721 144.97 +-6.7392 -48.2175 146.629 +-7.9446 -47.355 144.006 +-9.432 -48.1735 146.495 +-10.7076 -47.8342 145.463 +-12.1219 -48.1147 146.316 +-13.2825 -47.4262 144.222 +-14.8178 -48.0722 146.187 +-15.9824 -47.5018 144.452 +-17.5691 -48.1703 146.485 +-18.7069 -47.5937 144.731 +-20.2968 -48.1603 146.455 +-21.4048 -47.5771 144.681 +-23.0878 -48.2584 146.753 +-24.1378 -47.6074 144.773 +-25.7474 -48.0638 146.161 +-26.7071 -47.3147 143.883 +-28.4287 -47.9161 145.712 +-29.48 -47.3766 144.071 +-31.3406 -48.121 146.335 +-32.3719 -47.5756 144.676 +-34.046 -47.9732 145.886 +-34.9574 -47.3003 143.839 +-37.1178 -48.2969 146.87 +-37.7398 -47.2844 143.791 +-40.0107 -48.329 146.968 +-40.9193 -47.7052 145.071 +-43.0521 -48.4949 147.472 +-43.9642 -47.8951 145.648 +-46.0957 -48.612 147.828 +-46.721 -47.738 145.17 +-48.985 -48.5321 147.585 +-49.7517 -47.8323 145.457 +-52.0697 -48.6133 147.832 +-52.8397 -47.9379 145.778 +-55.1115 -48.6164 147.842 +-55.9203 -47.9948 145.951 +-58.3445 -48.7476 148.241 +-59.1665 -48.1491 146.42 +-61.8654 -49.0613 149.194 +-62.5968 -48.3984 147.179 +-65.5154 -49.4093 150.253 +-66.6587 -49.0563 149.179 +-71.2166 -51.1645 155.59 +-72.4805 -50.8543 154.647 +-75.4327 -51.7065 157.239 +-76.4939 -51.2442 155.833 +-79.1279 -51.8231 157.593 +-79.7835 -51.1002 155.395 +-83.2605 -52.1667 158.638 +-83.852 -51.4088 156.333 +-87.3167 -52.3975 159.34 +-87.5095 -51.4126 156.345 +-90.517 -52.0783 158.369 +-90.9018 -51.2283 155.784 +-91.2461 -50.3805 153.206 +-91.65 -49.5886 150.798 +-96.28 -51.0596 155.271 +-97.3422 -50.6079 153.898 +-101.939 -51.9652 158.025 +-102.645 -51.3145 156.046 +-104.988 -51.4807 156.552 +-105.279 -50.6422 154.002 +-108.345 -51.1349 155.5 +-108.428 -50.2158 152.705 +-110.732 -50.3305 153.054 +-112.134 -50.0265 152.13 +-115.502 -50.5838 153.824 +-116.44 -50.0646 152.246 +-120.154 -50.7247 154.253 +-121.567 -50.3951 153.251 +-126.318 -51.4251 156.383 +-127.38 -50.9309 154.88 +-130.79 -51.3642 156.197 +-131.717 -50.8115 154.517 +-135.548 -51.3663 156.204 +-136.785 -50.9231 154.856 +-140.346 -51.3323 156.101 +-140.462 -50.476 153.497 +-140.74 -49.6935 151.117 +-140.584 -48.7742 148.321 +-140.455 -47.8823 145.609 +-140.56 -47.0864 143.189 +-139.736 -45.999 139.882 +-139.835 -45.2342 137.556 +-140.602 -44.6954 135.918 +-140.926 -44.0231 133.873 +-141.723 -43.5061 132.301 +-141.782 -42.7708 130.065 +-141.593 -41.9742 127.643 +-140.859 -41.0327 124.78 +-140.82 -40.3095 122.58 +-140.975 -39.6522 120.582 +-142.376 -39.3492 119.66 +-143.244 -38.8981 118.288 +-162.423 -43.3346 131.78 +-163.167 -42.7698 130.062 +-221.225 -56.9677 173.238 +-222.808 -56.3623 171.397 +-228.678 -56.8225 172.796 +-157.996 -38.5608 117.263 +-141.852 -34.0021 103.4 +-141.358 -33.2755 101.19 +-143.087 -33.0747 100.579 +-141.578 -32.1325 97.7143 +-141.005 -31.419 95.5446 +-142.205 -31.105 94.5898 +-145.541 -31.2469 95.0212 +-148.149 -31.2159 94.927 +-272.764 -56.3976 171.504 +-275.671 -55.924 170.064 +-283.633 -56.446 171.651 +-285.623 -55.7535 169.545 +-296.037 -56.6703 172.333 +-296.58 -55.6679 169.285 +-306.568 -56.411 171.545 +-306.746 -55.3233 168.237 +-322.815 -57.0539 173.5 +-325.621 -56.3839 171.462 +-338.784 -57.4616 174.74 +-340.994 -56.6385 172.236 +-351.168 -57.1058 173.658 +-351.591 -55.9621 170.18 +-362.448 -56.451 171.666 +-365.18 -55.6388 169.197 +-380.44 -56.6853 172.379 +-383.459 -55.8575 169.862 +-399.746 -56.9087 173.058 +-402.508 -55.9818 170.24 +-419.28 -56.9502 173.185 +-424.905 -56.342 171.335 +-440.783 -57.0346 173.441 +-443.287 -55.9478 170.136 +-451.159 -55.5157 168.822 +-453.627 -54.3959 165.417 +-403.425 -47.1182 143.286 +-402.001 -45.7069 138.994 +-402.602 -44.5364 135.434 +-401.845 -43.2234 131.442 +-402.279 -42.0473 127.865 +-404.484 -41.0552 124.848 +-383.013 -37.7245 114.72 +-379.844 -36.2772 110.318 +-377.487 -34.9299 106.221 +-379.602 -34.0028 103.402 +-378.899 -32.8248 99.8194 +-377.967 -31.6371 96.2077 +-3171.94 -256.255 779.268 +-3178.98 -247.599 752.943 +-379.808 -28.4844 86.6206 +-3192.33 -230.23 700.124 +-3198.64 -221.519 673.634 +-378.641 -25.1415 76.4549 +-379.721 -24.1333 73.3889 +-378.81 -23.0019 69.9483 +-378.848 -21.9342 66.7014 +-379.545 -20.906 63.5748 +-378.536 -19.7881 60.1752 +-379.075 -18.7554 57.0349 +-377.903 -17.6429 53.6516 +-376.104 -16.512 50.2127 +-377.443 -15.5228 47.2045 +-379.748 -14.5656 44.2938 +-3255.24 -115.86 352.327 +-3258.35 -106.981 325.328 +-3261.22 -98.0947 298.304 +-3263.83 -89.2008 271.258 +-3266.2 -80.3003 244.192 +-3268.32 -71.3933 217.106 +-3270.19 -62.481 190.003 +-3271.81 -53.564 162.887 +-3273.18 -44.6429 135.758 +-3274.3 -35.7184 108.619 +-3275.18 -26.7912 81.4715 +-3275.8 -17.8619 54.3178 +-3276.18 -8.9313 27.1599 +95.3 0 0 +95.2964 -0.252652 0.792332 +95.2855 -0.505284 1.5846 +95.2673 -0.757878 2.37675 +95.4418 -1.01254 3.17537 +95.4091 -1.26553 3.96876 +95.3691 -1.51842 4.76185 +95.3219 -1.7712 5.55458 +95.2674 -2.02384 6.34688 +96.1028 -2.29778 7.20598 +95.2362 -2.53129 7.93828 +95.9562 -2.80697 8.80283 +95.8719 -3.06124 9.60024 +95.8797 -3.31874 10.4078 +95.7807 -3.57281 11.2046 +95.5753 -3.82263 11.988 +94.5706 -4.03781 12.6628 +95.3411 -4.32879 13.5753 +95.2132 -4.5814 14.3675 +95.6697 -4.86372 15.2529 +95.4279 -5.1119 16.0312 +95.2774 -5.36469 16.824 +95.1197 -5.61709 17.6155 +94.9547 -5.86906 18.4057 +94.5869 -6.10794 19.1548 +95.4817 -6.43078 20.1673 +95.2934 -6.68367 20.9604 +95.0978 -6.93606 21.7519 +94.992 -7.19527 22.5648 +95.5562 -7.50766 23.5445 +95.3369 -7.7607 24.338 +95.1103 -8.01316 25.1297 +95.5494 -8.32364 26.1034 +95.4984 -8.59387 26.9509 +95.9174 -8.90891 27.9389 +95.6578 -9.16286 28.7353 +95.391 -9.41611 29.5295 +95.9704 -9.75539 30.5935 +95.8756 -10.0292 31.4523 +96.1494 -10.3439 32.439 +95.7547 -10.588 33.2047 +96.2899 -10.9372 34.2997 +95.9721 -11.1921 35.099 +95.6469 -11.4461 35.8956 +96.3344 -11.8244 37.082 +95.9911 -12.0793 37.8815 +95.7325 -12.3452 38.7154 +95.466 -12.6107 39.5479 +95.9223 -12.9745 40.6888 +95.5459 -13.2283 41.4848 +95.3436 -13.5068 42.3581 +95.5838 -13.8506 43.4363 +95.9013 -14.21 44.5635 +96.3844 -14.5993 45.7842 +95.9614 -14.8543 46.5838 +96.152 -15.2063 47.6878 +95.7998 -15.4749 48.5302 +95.3517 -15.7283 49.3247 +95.5085 -16.0836 50.439 +95.9132 -16.4858 51.7003 +95.436 -16.7394 52.4957 +95.5547 -17.0997 53.6257 +95.8313 -17.4932 54.8598 +95.4104 -17.7625 55.7042 +95.4054 -18.1113 56.7982 +94.8815 -18.3636 57.5893 +95.0214 -18.7468 58.791 +95.063 -19.1154 59.9469 +95.3393 -19.5365 61.2678 +94.7745 -19.7885 62.0581 +94.7759 -20.161 63.2262 +94.9259 -20.5703 64.5097 +94.9786 -20.964 65.7445 +94.9355 -21.3415 66.9284 +95.1175 -21.7753 68.2885 +95.0437 -22.156 69.4826 +95.1917 -22.5942 70.8568 +95.2434 -23.0159 72.1793 +95.2004 -23.4205 73.448 +94.524 -23.672 74.2368 +94.4533 -24.0779 75.5097 +94.5185 -24.5247 76.9109 +95.1689 -25.1331 78.8189 +95.0425 -25.5455 80.1122 +94.9739 -25.9795 81.4731 +94.9613 -26.4355 82.9033 +94.7103 -26.8313 84.1445 +94.4437 -27.2277 85.3878 +94.5212 -27.7303 86.9639 +94.1491 -28.1076 88.1471 +93.9745 -28.5495 89.5329 +94.6228 -29.2526 91.7378 +94.1957 -29.6334 92.9322 +94.6488 -30.3007 95.0249 +94.3204 -30.7282 96.3654 +93.9746 -31.1562 97.7078 +94.2136 -31.7881 99.6895 +93.827 -32.2186 101.04 +94.0789 -32.8788 103.11 +93.9102 -33.4044 104.758 +93.397 -33.8148 106.045 +93.4399 -34.4364 107.995 +92.6989 -34.7772 109.063 +92.5679 -35.3545 110.874 +92.9649 -36.1492 113.366 +92.9579 -36.8039 115.419 +92.9202 -37.4613 117.481 +92.6139 -38.0239 119.245 +92.5762 -38.7102 121.398 +92.5641 -39.4242 123.637 +109.897 -47.6815 149.532 +110.506 -48.8471 153.188 +107.085 -48.2316 151.257 +106.689 -48.9696 153.571 +103.536 -48.4352 151.896 +103.215 -49.2202 154.357 +99.3069 -48.2812 151.413 +98.3865 -48.7757 152.964 +93.0674 -47.0556 147.569 +92.9303 -47.9287 150.307 +90.5 -47.621 149.342 +90.1628 -48.4142 151.83 +88.0414 -48.2529 151.324 +88.1312 -49.3123 154.646 +85.0213 -48.5783 152.344 +84.8694 -49.5295 155.327 +81.7637 -48.7508 152.886 +81.1634 -49.4553 155.095 +78.2492 -48.7402 152.852 +77.535 -49.3846 154.873 +74.5921 -48.5968 152.402 +74.0227 -49.3457 154.751 +69.674 -47.5417 149.094 +69.183 -48.3377 151.59 +67.5574 -48.3513 151.633 +68.0028 -49.8758 156.413 +65.3314 -49.1248 154.058 +64.5409 -49.7768 156.103 +62.1768 -49.2084 154.32 +61.7065 -50.1398 157.241 +59.3063 -49.5021 155.242 +58.6499 -50.316 157.794 +56.3233 -49.6941 155.844 +53.561 -48.6314 152.511 +50.617 -47.3269 148.42 +49.6465 -47.8361 150.017 +47.3642 -47.065 147.599 +46.7205 -47.9172 150.271 +44.3225 -46.9587 147.265 +43.5599 -47.7185 149.648 +41.411 -46.9517 147.243 +40.9872 -48.1481 150.995 +38.7801 -47.2525 148.187 +37.8415 -47.8853 150.171 +35.8347 -47.155 147.881 +34.8251 -47.7228 149.661 +32.9332 -47.0705 147.616 +32.1381 -47.9895 150.498 +30.0524 -46.9693 147.299 +29.3764 -48.1526 151.01 +27.3496 -47.1216 147.776 +26.4571 -48.0314 150.629 +24.5602 -47.1094 147.738 +23.546 -47.8637 150.104 +21.8502 -47.2324 148.124 +20.7928 -47.9813 150.472 +19.1335 -47.3412 148.465 +18.1465 -48.3863 151.742 +16.3378 -47.2239 148.097 +15.2395 -48.0819 150.788 +13.7357 -47.6966 149.58 +12.475 -48.1554 151.018 +10.9169 -47.429 148.74 +9.75556 -48.4568 151.963 +8.19058 -47.4797 148.899 +6.9791 -48.5619 152.293 +5.46177 -47.5159 149.013 +4.16737 -48.3483 151.623 +2.72083 -47.3552 148.509 +1.38752 -48.3024 151.479 +9.58254e-15 -47.5447 149.103 +-1.39014 -48.3936 151.765 +-2.72781 -47.4767 148.89 +-4.15952 -48.2575 151.338 +-5.45479 -47.4551 148.822 +-6.94421 -48.3188 151.531 +-8.23245 -47.7222 149.66 +-9.79219 -48.6387 152.534 +-11.0285 -47.9139 150.261 +-12.5142 -48.3067 151.493 +-13.6835 -47.5153 149.011 +-15.3449 -48.4145 151.831 +-16.4946 -47.6772 149.519 +-18.2031 -48.537 152.215 +-19.2675 -47.6729 149.505 +-21.0408 -48.5537 152.267 +-22.045 -47.6535 149.444 +-23.9008 -48.585 152.365 +-24.8574 -47.6796 149.526 +-26.6882 -48.4507 151.944 +-27.6448 -47.6301 149.371 +-29.5222 -48.3914 151.758 +-30.434 -47.566 149.17 +-32.3574 -48.317 151.525 +-33.1619 -47.3974 148.641 +-35.3879 -48.4938 152.079 +-36.2171 -47.6584 149.459 +-38.215 -48.358 151.654 +-39.0462 -47.5769 149.204 +-41.4129 -48.6481 152.563 +-42.084 -47.7149 149.637 +-44.4417 -48.6846 152.678 +-45.1494 -47.8349 150.013 +-47.4022 -48.6162 152.463 +-47.9782 -47.6754 149.513 +-50.3081 -48.4735 152.016 +-51.1114 -47.7893 149.87 +-53.6562 -48.718 152.783 +-54.2397 -47.8555 150.078 +-57.1811 -49.0558 153.842 +-57.6646 -48.1317 150.944 +-60.3407 -49.03 153.761 +-61.1376 -48.386 151.741 +-63.9545 -49.3244 154.684 +-64.5822 -48.5613 152.291 +-69.8015 -51.1952 160.551 +-70.6051 -50.5326 158.473 +-73.968 -51.681 162.075 +-74.6362 -50.9279 159.713 +-77.9623 -51.972 162.987 +-78.776 -51.3228 160.951 +-81.5819 -51.962 162.956 +-82.5014 -51.3887 161.158 +-85.4023 -52.038 163.194 +-86.6668 -51.6743 162.054 +-88.6557 -51.739 162.257 +-89.9038 -51.3678 161.092 +-91.8531 -51.3945 161.176 +-92.8895 -50.9099 159.657 +-93.9544 -50.4503 158.215 +-95.15 -50.0678 157.016 +-98.3609 -50.7298 159.092 +-100.226 -50.6754 158.921 +-103.925 -51.5215 161.574 +-104.288 -50.7031 159.008 +-107.352 -51.1934 160.545 +-107.512 -50.2954 157.729 +-111.16 -51.0217 160.007 +-110.552 -49.7932 156.154 +-114.414 -50.5745 158.605 +-114.715 -49.7716 156.087 +-119.451 -50.8756 159.549 +-119.791 -50.09 157.085 +-124.14 -50.9671 159.836 +-125.418 -50.5633 158.57 +-129.788 -51.3857 161.149 +-130.459 -50.7283 159.087 +-134.339 -51.3079 160.905 +-134.863 -50.5955 158.671 +-139.174 -51.2909 160.851 +-139.485 -50.5013 158.375 +-140.411 -49.9448 156.63 +-140.2 -48.9972 153.658 +-140.542 -48.2599 151.346 +-140.317 -47.3433 148.471 +-140.455 -46.5665 146.035 +-140.492 -45.7702 143.538 +-141.182 -45.1976 141.742 +-140.668 -44.2534 138.781 +-141.654 -43.7922 137.335 +-141.704 -43.0497 135.006 +-141.438 -42.2252 132.421 +-141.35 -41.4687 130.048 +-141.521 -40.7998 127.951 +-140.493 -39.8015 124.82 +-142.589 -39.6942 124.483 +-142.461 -38.9691 122.209 +-159.602 -42.8978 134.53 +-161.81 -42.7322 134.011 +-223.483 -57.9873 181.852 +-221.31 -56.416 176.924 +-230.021 -57.6051 180.653 +-231.745 -57.0121 178.793 +-239.713 -57.9274 181.664 +-238.216 -56.5415 177.317 +-141.376 -32.9566 103.354 +-141.358 -32.3611 101.486 +-143.167 -32.184 100.931 +-141.497 -31.2319 97.945 +-140.191 -30.3791 95.2707 +-141.468 -30.0935 94.3749 +-144.964 -30.2679 94.9219 +-147.403 -30.2052 94.7253 +-284.522 -57.212 179.42 +-283.555 -55.9424 175.439 +-293.585 -56.821 178.194 +-294.951 -55.9922 175.595 +-308.059 -57.3511 179.856 +-308.237 -56.2662 176.454 +-320.44 -57.3435 179.833 +-321.988 -56.4765 177.114 +-334.391 -57.4757 180.247 +-334.28 -56.2924 176.536 +-347.309 -57.2885 179.66 +-350.265 -56.5795 177.437 +-361.9 -57.2338 179.489 +-362.729 -56.1484 176.085 +-377.841 -57.2314 179.481 +-376.774 -55.8279 175.079 +-391 -56.6578 177.682 +-394.516 -55.8889 175.271 +-413.213 -57.2092 179.412 +-417.582 -56.4822 177.132 +-431.935 -57.057 178.934 +-438.344 -56.5269 177.272 +-450.761 -56.7229 177.886 +-451.817 -55.4575 173.918 +-455.067 -54.458 170.784 +-452.133 -52.727 165.355 +-402.394 -45.7064 143.338 +-403.88 -44.6586 140.052 +-405.242 -43.5966 136.721 +-401.278 -41.9764 131.64 +-402.563 -40.9207 128.33 +-402.963 -39.7769 124.743 +-383.49 -36.7337 115.199 +-380.036 -35.2983 110.697 +-377.679 -33.9874 106.586 +-379.025 -33.0182 103.547 +-379.285 -31.9552 100.214 +-3164.66 -257.613 807.89 +-3171.94 -249.213 781.548 +-3178.98 -240.795 755.147 +-379.516 -27.6804 86.8073 +-3192.33 -223.903 702.173 +-378.705 -25.5061 79.9887 +-378.152 -24.4191 76.5797 +-378.055 -23.3671 73.2807 +-380.577 -22.4741 70.4802 +-380.323 -21.4145 67.1571 +-379.939 -20.3526 63.8271 +-380.114 -19.3245 60.6029 +-379.964 -18.2828 57.3359 +-377.705 -17.149 53.7804 +-377.886 -16.1344 50.5984 +-378.236 -15.1279 47.4421 +-375.976 -14.0247 43.9822 +-3255.24 -112.676 353.358 +-3258.35 -104.042 326.281 +-3261.22 -95.3991 299.177 +-3263.83 -86.7496 272.052 +-3266.2 -78.0937 244.906 +-3268.32 -69.4314 217.741 +-3270.19 -60.764 190.56 +-3271.81 -52.092 163.364 +-3273.18 -43.4161 136.155 +-3274.3 -34.7368 108.937 +-3275.18 -26.055 81.71 +-3275.8 -17.3711 54.4768 +-3276.18 -8.68586 27.2394 +95.6 0 0 +95.3964 -0.24575 0.795413 +95.3855 -0.491481 1.59077 +95.3673 -0.737175 2.386 +95.5418 -0.984873 3.18771 +95.509 -1.23095 3.98419 +95.2693 -1.47385 4.77036 +96.32 -1.73902 5.62866 +96.2649 -1.98708 6.43153 +95.3053 -2.21414 7.16645 +96.1328 -2.48271 8.03574 +95.1599 -2.70479 8.75454 +96.0708 -2.98066 9.64744 +95.0848 -3.19795 10.3507 +95.88 -3.47517 11.248 +95.6744 -3.71817 12.0345 +96.4521 -4.00146 12.9514 +95.2422 -4.20175 13.5997 +95.1144 -4.44694 14.3933 +95.7683 -4.73076 15.3119 +95.6248 -4.97728 16.1098 +95.3757 -5.21804 16.8891 +95.2178 -5.46355 17.6837 +96.0326 -5.76747 18.6674 +94.8803 -5.95324 19.2687 +95.5794 -6.25492 20.2452 +95.4883 -6.50755 21.0628 +95.2923 -6.75327 21.8581 +95.8652 -7.05563 22.8368 +95.653 -7.30229 23.6352 +95.5301 -7.55607 24.4565 +95.2067 -7.79399 25.2266 +95.8378 -8.11215 26.2564 +95.5943 -8.35872 27.0545 +95.1523 -8.58741 27.7947 +95.9439 -8.92983 28.903 +95.4861 -9.15839 29.6428 +95.4014 -9.42274 30.4984 +95.781 -9.73543 31.5104 +95.4896 -9.98177 32.3078 +95.9426 -10.3082 33.3642 +96.3836 -10.6376 34.4305 +95.9721 -10.8749 35.1985 +95.74 -11.1325 36.0324 +96.4271 -11.5004 37.223 +96.0835 -11.7483 38.0256 +95.8246 -12.0069 38.8625 +96.383 -12.371 40.041 +96.1963 -12.6429 40.9208 +95.6369 -12.8657 41.6421 +96.2499 -13.2488 42.8821 +95.674 -13.4708 43.6007 +96.2608 -13.8591 44.8573 +95.579 -14.067 45.5304 +96.0505 -14.4467 46.7593 +96.4181 -14.8163 47.9555 +95.8881 -15.0502 48.7126 +96.2305 -15.4234 49.9206 +95.5959 -15.6421 50.6284 +95.9132 -16.0186 51.847 +96.2154 -16.3979 53.0746 +95.727 -16.6451 53.8748 +96.0027 -17.0279 55.1138 +95.4104 -17.2591 55.8622 +95.4902 -17.6137 57.0099 +94.9659 -17.859 57.8039 +95.1891 -18.2477 59.0618 +95.3131 -18.6225 60.2752 +95.5051 -19.0159 61.5484 +94.9393 -19.2612 62.3423 +94.8578 -19.6067 63.4604 +95.0073 -20.0045 64.7481 +95.0595 -20.3873 65.9871 +95.1767 -20.7894 67.2886 +95.1974 -21.176 68.5397 +95.3611 -21.6001 69.9124 +95.3493 -21.9903 71.1754 +95.3217 -22.3821 72.4435 +95.2004 -22.7568 73.6564 +95.2185 -23.1702 74.9944 +95.2959 -23.6043 76.3995 +94.5945 -23.8489 77.1911 +95.1689 -24.4209 79.0424 +95.1174 -24.8411 80.4027 +94.9739 -25.2432 81.7042 +94.9613 -25.6864 83.1384 +94.7834 -26.0911 84.4483 +94.7339 -26.5374 85.893 +94.5212 -26.9445 87.2106 +94.363 -27.3732 88.5981 +94.328 -27.8448 90.1246 +94.6928 -28.4446 92.0661 +94.3346 -28.8361 93.3332 +94.0981 -29.2708 94.74 +94.4568 -29.9005 96.7782 +94.2448 -30.3604 98.2668 +94.3474 -30.931 100.114 +94.092 -31.3942 101.613 +94.2757 -32.0141 103.619 +94.17 -32.5475 105.346 +93.4613 -32.8793 106.42 +93.7579 -33.5742 108.669 +93.8317 -34.2044 110.709 +93.5639 -34.7222 112.384 +92.4724 -34.9385 113.085 +92.5317 -35.5971 115.216 +92.5592 -36.2583 117.356 +92.7924 -37.0176 119.814 +92.9288 -37.7567 122.206 +92.4479 -38.2588 123.831 +112.995 -47.6359 154.182 +113.225 -48.6307 157.402 +110.161 -48.2106 156.042 +110.167 -49.1328 159.027 +106.477 -48.3995 156.654 +106.278 -49.2447 159.389 +102.857 -48.5902 157.271 +102.619 -49.4324 159.997 +96.8787 -47.5946 154.048 +96.5338 -48.3765 156.579 +92.35 -47.2173 152.827 +91.9355 -47.9671 155.254 +90.514 -48.2021 156.014 +90.6602 -49.2895 159.534 +87.5564 -48.6091 157.332 +87.3167 -49.5136 160.259 +83.8974 -48.6056 157.321 +83.9744 -49.7182 160.922 +80.5726 -48.765 157.836 +79.9029 -49.4504 160.055 +76.9165 -48.6912 157.598 +76.5938 -49.6128 160.581 +73.2533 -48.5678 157.198 +72.2932 -49.0794 158.854 +68.8078 -47.8508 154.877 +68.7682 -49.0079 158.623 +67.2419 -49.1287 159.014 +66.7765 -50.0414 161.968 +64.112 -49.3022 159.575 +63.5977 -50.212 162.52 +61.3584 -49.7636 161.069 +60.7195 -50.6152 163.825 +57.8535 -49.5977 160.532 +57.1783 -50.4446 163.273 +52.5638 -47.7546 154.566 +51.571 -48.2821 156.273 +49.06 -47.3687 153.317 +48.1122 -47.9461 155.186 +45.7282 -47.075 152.367 +45.1633 -48.0731 155.597 +42.9381 -47.3035 153.106 +42.0889 -48.0412 155.494 +40.2558 -47.6607 154.262 +39.2422 -48.2505 156.171 +37.0494 -47.372 153.328 +36.1454 -48.1283 155.776 +34.1807 -47.4688 153.641 +33.3543 -48.3939 156.635 +31.3118 -47.5509 153.907 +30.3604 -48.3553 156.51 +28.3394 -47.4434 153.559 +27.3319 -48.2133 156.051 +25.5301 -47.5822 154.008 +24.5807 -48.551 157.144 +22.6435 -47.5603 153.937 +21.6151 -48.4654 156.867 +19.7672 -47.5231 153.817 +18.6785 -48.3933 156.634 +16.9545 -47.6176 154.123 +15.8625 -48.6292 157.397 +14.1454 -47.7271 154.477 +12.9458 -48.5563 157.161 +11.2517 -47.4983 153.737 +10.1218 -48.8515 158.116 +8.47319 -47.7259 154.473 +7.20592 -48.7192 157.688 +5.6607 -47.8508 154.877 +4.33228 -48.8373 158.071 +2.83078 -47.8726 154.948 +1.44162 -48.7638 157.833 +9.91319e-15 -47.7914 154.685 +-1.44424 -48.8524 158.119 +-2.8238 -47.7546 154.566 +-4.32705 -48.7783 157.879 +-5.68862 -48.0869 155.642 +-7.21465 -48.7783 157.879 +-8.53076 -48.0503 155.523 +-10.1768 -49.1166 158.974 +-11.3982 -48.1167 155.738 +-13.1262 -49.2332 159.352 +-14.1802 -47.8449 154.858 +-16.0158 -49.0994 158.919 +-17.059 -47.9113 155.073 +-18.9389 -49.0682 158.818 +-19.9622 -47.9919 155.334 +-21.8892 -49.08 158.856 +-22.6435 -47.5603 153.937 +-24.7285 -48.8429 158.089 +-25.7022 -47.9027 155.046 +-27.6125 -48.7083 157.653 +-28.5825 -47.8502 154.876 +-30.4516 -48.5005 156.98 +-31.4644 -47.7826 154.657 +-33.3742 -48.4229 156.729 +-34.5965 -48.0465 155.511 +-36.6216 -48.7623 157.828 +-37.4768 -47.9184 155.096 +-39.8024 -48.9394 158.401 +-40.4493 -47.8897 155.004 +-42.8651 -48.927 158.361 +-43.6628 -48.102 155.691 +-46.2857 -49.2677 159.464 +-46.9135 -48.2953 156.316 +-49.1915 -49.0218 158.668 +-50.0248 -48.3004 156.333 +-52.7137 -49.3521 159.737 +-53.1509 -48.288 156.292 +-56.0043 -49.4088 159.92 +-56.5837 -48.5091 157.008 +-59.184 -49.3353 159.682 +-59.8535 -48.543 157.118 +-62.9323 -49.6866 160.819 +-63.5386 -48.8612 158.148 +-66.7765 -50.0414 161.968 +-67.8038 -49.539 160.342 +-70.7582 -50.426 163.213 +-72.7151 -50.568 163.672 +-74.4066 -50.514 163.497 +-76.9546 -51.0217 165.141 +-79.1649 -51.2782 165.971 +-80.4665 -50.9385 164.871 +-82.6151 -51.1289 165.488 +-84.6495 -51.2325 165.823 +-86.8747 -51.4353 166.479 +-88.0742 -51.0253 165.152 +-90.1795 -51.1369 165.513 +-90.9836 -50.5116 163.49 +-95.0977 -51.7021 167.343 +-94.6833 -50.4225 163.201 +-97.6968 -50.9733 164.984 +-96.9 -49.5437 160.357 +-102.167 -51.1997 165.717 +-101.463 -49.8466 161.337 +-107.478 -51.773 167.572 +-106.408 -50.2675 162.7 +-111.328 -51.585 166.964 +-110.725 -50.3307 162.904 +-115.079 -51.3234 166.117 +-114.97 -50.3153 162.854 +-119.285 -51.2337 165.827 +-119.247 -50.2716 162.713 +-124.212 -51.4043 166.379 +-124.846 -50.7242 164.178 +-129.909 -51.8244 167.739 +-129.872 -50.875 164.666 +-135.389 -52.0841 168.579 +-135.076 -51.0356 165.186 +-140.128 -52.0024 168.315 +-139.269 -50.7676 164.318 +-140.51 -50.3159 162.856 +-139.999 -49.2509 159.409 +-140.865 -48.6865 157.582 +-140.462 -47.6979 154.383 +-140.608 -46.9141 151.846 +-140.852 -46.1773 149.461 +-141.063 -45.4429 147.084 +-141.242 -44.7105 144.714 +-141.732 -44.0883 142.699 +-141.78 -43.3391 140.275 +-141.303 -42.4458 137.383 +-141.563 -41.7881 135.255 +-141.152 -40.946 132.529 +-141.134 -40.2322 130.219 +-142.101 -39.8062 128.84 +-141.883 -39.0562 126.412 +-159.915 -43.2561 140.006 +-159.628 -42.4275 137.324 +-225.211 -58.8168 190.371 +-223.998 -57.479 186.041 +-229.795 -57.9351 187.517 +-229.354 -56.8098 183.875 +-237.66 -57.8315 187.182 +-238.351 -56.9757 184.412 +-247.461 -58.1051 188.068 +-246.017 -56.7387 183.645 +-141.534 -32.0586 103.763 +-141.518 -31.4798 101.89 +-142.524 -31.1315 100.762 +-141.74 -30.3988 98.391 +-140.435 -29.5696 95.7072 +-140.894 -29.1221 94.2589 +-145.376 -29.4938 95.4617 +-148.066 -29.4813 95.4214 +-293.361 -57.3176 185.518 +-294.206 -56.3989 182.545 +-303.79 -57.1298 184.911 +-305.721 -56.3921 182.523 +-321.701 -58.1937 188.354 +-320.238 -56.8001 183.844 +-332.158 -57.7559 186.937 +-333.247 -56.7948 183.826 +-347.707 -58.0709 187.957 +-345.65 -56.5577 183.059 +-358.382 -57.4398 185.914 +-359.801 -56.473 182.785 +-375.915 -57.7657 186.969 +-374.846 -56.3797 182.483 +-390.46 -57.4666 186.001 +-391.694 -56.3939 182.529 +-405.441 -57.0858 184.768 +-410.104 -56.4509 182.713 +-430.867 -57.9629 187.607 +-431.011 -56.6466 183.347 +-447.434 -57.4294 185.881 +-449.943 -56.3783 182.478 +-453.163 -55.4092 179.341 +-455.155 -54.2839 175.699 +-403.801 -46.9537 151.974 +-403.213 -45.6894 147.882 +-402.394 -44.4112 143.745 +-404.068 -43.4135 140.515 +-403.922 -42.223 136.662 +-404.493 -41.1136 133.072 +-403.132 -39.8172 128.875 +-402.772 -38.6314 125.037 +-384.157 -35.7547 115.726 +-379.366 -34.2375 110.816 +-379.501 -33.1833 107.404 +-378.641 -32.0501 103.736 +-378.996 -31.0261 100.421 +-378.643 -29.9492 96.9359 +-379.223 -28.9505 93.7035 +-377.736 -27.8012 89.9834 +-3185.78 -225.773 730.754 +-380.004 -25.8974 83.8215 +-380.072 -24.8728 80.5051 +-379.13 -23.7885 76.9955 +-378.545 -22.7344 73.5838 +-377.436 -21.657 70.0968 +-379.438 -20.7592 67.1909 +-379.151 -19.7349 63.8753 +-380.312 -18.7867 60.8064 +-378.383 -17.6908 57.2594 +-379.683 -16.7503 54.2154 +-380.362 -15.7799 51.0743 +-376.154 -14.6183 47.3148 +-378.954 -13.7352 44.4563 +-3255.24 -109.483 354.361 +-3258.35 -101.093 327.206 +-3261.22 -92.6956 300.026 +-3263.83 -84.2912 272.823 +-3266.2 -75.8807 245.601 +-3268.32 -67.4639 218.359 +-3270.19 -59.0421 191.1 +-3271.81 -50.6158 163.827 +-3273.18 -42.1858 136.542 +-3274.3 -33.7525 109.246 +-3275.18 -25.3166 81.9417 +-3275.8 -16.8788 54.6313 +-3276.18 -8.43972 27.3166 +95.6 0 0 +95.5964 -0.239063 0.799271 +95.5854 -0.478108 1.59848 +95.3673 -0.715616 2.39255 +95.5418 -0.956069 3.19647 +95.509 -1.19495 3.99513 +95.2693 -1.43074 4.78346 +96.32 -1.68816 5.64412 +96.2649 -1.92897 6.4492 +96.2025 -2.16962 7.25378 +96.1328 -2.4101 8.05782 +96.0557 -2.65041 8.86124 +95.9714 -2.89051 9.66398 +95.979 -3.13363 10.4768 +95.88 -3.37353 11.2789 +96.6659 -3.64682 12.1926 +95.5609 -3.84853 12.867 +95.44 -4.08735 13.6654 +96.0033 -4.35723 14.5677 +94.8807 -4.54985 15.2117 +95.5264 -4.82675 16.1375 +95.4741 -5.07067 16.953 +95.316 -5.30923 17.7506 +95.1507 -5.54736 18.5468 +94.8803 -5.77913 19.3216 +95.5794 -6.07199 20.3008 +95.3908 -6.31078 21.0991 +95.195 -6.54908 21.8959 +94.992 -6.7869 22.691 +95.7498 -7.09592 23.7241 +95.4335 -7.32766 24.4989 +96.074 -7.63497 25.5263 +95.8378 -7.8749 26.3285 +95.5943 -8.11426 27.1288 +95.3436 -8.35302 27.9271 +95.9439 -8.66867 28.9824 +95.6763 -8.90826 29.7834 +96.0652 -9.21083 30.795 +95.781 -9.45071 31.597 +95.4896 -9.68984 32.3965 +95.9426 -10.0067 33.4558 +95.5406 -10.2362 34.2232 +96.0654 -10.5671 35.3296 +95.74 -10.807 36.1314 +96.4271 -11.164 37.3253 +96.0835 -11.4048 38.13 +96.653 -11.7566 39.3063 +95.5577 -11.9064 39.8072 +96.1963 -12.2731 41.0333 +95.8189 -12.5132 41.8359 +96.2499 -12.8613 42.9999 +96.4864 -13.1879 44.0916 +96.2608 -13.4538 44.9806 +95.6685 -13.6684 45.6982 +95.9614 -14.0112 46.8443 +95.6198 -14.2639 47.689 +95.7998 -14.5966 48.8015 +95.5274 -14.863 49.692 +95.6834 -15.1985 50.8139 +96.0002 -15.5642 52.0365 +95.5226 -15.8037 52.8372 +95.727 -16.1583 54.0228 +96.0027 -16.5299 55.2652 +95.4957 -16.7693 56.0656 +95.4902 -17.0986 57.1666 +95.8093 -17.4907 58.4775 +95.1891 -17.714 59.2241 +95.3965 -18.0937 60.4936 +95.588 -18.4758 61.771 +95.6811 -18.844 63.002 +94.8578 -19.0332 63.6347 +95.0073 -19.4195 64.926 +95.0595 -19.7911 66.1684 +95.1767 -20.1814 67.4735 +95.1175 -20.5394 68.6703 +95.2817 -20.9509 70.0461 +95.3493 -21.3471 71.3709 +95.3999 -21.7453 72.7021 +94.5787 -21.947 73.3764 +95.2956 -22.5108 75.2613 +94.6065 -22.7482 76.0552 +95.2789 -23.3189 77.9631 +95.2443 -23.7255 79.3224 +95.1174 -24.1146 80.6236 +95.0482 -24.5241 81.9927 +94.9613 -24.9351 83.3668 +94.7834 -25.328 84.6803 +94.6614 -25.7416 86.0631 +94.5212 -26.1565 87.4502 +94.363 -26.5726 88.8415 +94.2573 -27.0102 90.3044 +94.5527 -27.5719 92.1824 +94.2651 -27.9722 93.5207 +94.0292 -28.3939 94.9307 +94.4568 -29.026 97.0441 +94.2448 -29.4725 98.5368 +93.8121 -29.8562 99.8196 +94.092 -30.476 101.892 +94.3413 -31.0993 103.976 +93.7154 -31.4431 105.125 +93.847 -32.0492 107.152 +93.9488 -32.6587 109.189 +93.8317 -33.204 111.013 +93.6262 -33.729 112.768 +93.6421 -34.3457 114.83 +93.4449 -34.897 116.673 +92.5592 -35.1979 117.679 +93.0303 -36.0269 120.451 +92.6937 -36.5596 122.232 +93.0867 -37.3967 125.03 +115.289 -47.1818 157.745 +115.83 -48.2948 161.466 +113.237 -48.1074 160.84 +112.761 -48.8189 163.218 +109.69 -48.4019 161.824 +108.373 -48.747 162.978 +105.507 -48.3842 161.765 +105.179 -49.1837 164.438 +102.647 -48.9536 163.669 +101.457 -49.3568 165.017 +96 -47.648 159.304 +95.4317 -48.3352 161.601 +92.6471 -47.8953 160.131 +92.9028 -49.0318 163.93 +90.4672 -48.7561 163.009 +89.7639 -49.4126 165.204 +87.5748 -49.2522 164.667 +86.4285 -49.6745 166.079 +83.7727 -49.2192 164.557 +82.572 -49.6078 165.856 +79.9594 -49.137 164.282 +78.7917 -49.5439 165.642 +76.1818 -49.0321 163.931 +75.0047 -49.431 165.265 +72.0117 -48.6143 162.534 +71.447 -49.4278 165.254 +68.2533 -48.4091 161.848 +67.986 -49.4576 165.354 +65.868 -49.1711 164.396 +65.7339 -50.3806 168.44 +62.6923 -49.3585 165.023 +62.0547 -50.2156 167.888 +58.9929 -49.0954 164.143 +58.7648 -50.3282 168.265 +55.005 -48.5108 162.189 +53.8865 -48.9745 163.739 +51.165 -47.9563 160.335 +50.1003 -48.4673 162.043 +47.9058 -47.8744 160.061 +46.6064 -48.1581 161.009 +44.5945 -47.6916 159.449 +43.3658 -48.0509 160.651 +41.5864 -47.7962 159.799 +40.4327 -48.2604 161.351 +38.5566 -47.8572 160.003 +37.5523 -48.5392 162.283 +35.5737 -47.9586 160.342 +34.5305 -48.6355 162.605 +32.6474 -48.1291 160.912 +31.2898 -48.3782 161.745 +29.4507 -47.8618 160.019 +28.3387 -48.5272 162.243 +26.4687 -47.8887 160.109 +25.2902 -48.4916 162.124 +23.4924 -47.9002 160.147 +22.333 -48.6106 162.522 +20.5228 -47.8967 160.135 +19.2559 -48.4303 161.919 +17.6026 -47.9919 160.453 +16.2746 -48.4335 161.93 +14.6683 -48.0443 160.629 +13.3773 -48.7074 162.846 +11.7051 -47.9672 160.371 +10.4088 -48.767 163.045 +8.74534 -47.8182 159.873 +7.42402 -48.7257 162.907 +5.85614 -48.0552 160.665 +4.46317 -48.8415 163.294 +2.91455 -47.848 159.973 +1.48787 -48.8564 163.344 +1.03296e-14 -48.3423 161.625 +-1.48526 -48.7705 163.057 +-2.9163 -47.8767 160.068 +-4.4527 -48.7269 162.911 +-5.87708 -48.2269 161.239 +-7.41966 -48.6971 162.811 +-8.76104 -47.9042 160.16 +-10.4088 -48.767 163.045 +-11.74 -48.1102 160.849 +-13.4557 -48.9931 163.801 +-14.677 -48.0727 160.724 +-16.4951 -49.0897 164.124 +-17.6653 -48.1629 161.025 +-19.5162 -49.0851 164.109 +-20.6325 -48.1526 160.991 +-22.581 -49.1504 164.327 +-23.5481 -48.0137 160.526 +-25.6154 -49.1149 164.208 +-26.5469 -48.0303 160.582 +-28.6358 -49.0361 163.945 +-29.607 -48.116 160.868 +-31.7819 -49.139 164.289 +-32.8191 -48.3825 161.759 +-34.8296 -49.0567 164.014 +-35.5737 -47.9586 160.342 +-38.0934 -49.2387 164.622 +-38.7816 -48.1363 160.936 +-41.4366 -49.4588 165.358 +-41.9734 -48.2409 161.286 +-44.6428 -49.4659 165.382 +-45.371 -48.522 162.226 +-48.1296 -49.7321 166.272 +-48.65 -48.6183 162.548 +-51.4352 -49.7585 166.36 +-52.1299 -48.8607 163.358 +-54.8487 -49.8491 166.663 +-55.3758 -48.8378 163.282 +-58.1937 -49.839 166.629 +-58.9604 -49.0682 164.052 +-61.7876 -49.9995 167.166 +-62.5213 -49.2238 164.572 +-64.9284 -49.7634 166.376 +-65.9397 -49.2246 164.575 +-69.3787 -50.4709 168.742 +-70.2387 -49.8172 166.556 +-73.59 -50.9105 170.211 +-74.5906 -50.3551 168.355 +-77.5168 -51.0864 170.8 +-78.5815 -50.5766 169.095 +-82.3995 -51.8123 173.226 +-82.9177 -50.9552 170.361 +-86.6188 -52.0389 173.984 +-87.1482 -51.2022 171.187 +-90.6228 -52.0851 174.138 +-90.2079 -50.7331 169.618 +-93.7811 -51.624 172.597 +-94.6455 -51.0079 170.537 +-99.583 -52.5573 175.717 +-99.7738 -51.5796 172.448 +-101.488 -51.4028 171.857 +-102.25 -50.75 169.675 +-106.431 -51.7764 173.107 +-106.716 -50.8941 170.157 +-110.613 -51.7249 172.934 +-110.965 -50.8873 170.134 +-114.23 -51.3813 171.785 +-115.137 -50.8053 169.86 +-118.059 -51.1128 170.888 +-119.052 -50.5781 169.1 +-122.627 -51.1285 170.94 +-124.237 -50.8434 169.987 +-129.206 -51.9074 173.544 +-129.489 -51.0721 170.752 +-134.489 -52.0825 174.13 +-134.807 -51.2635 171.392 +-139.589 -52.1295 174.287 +-139.694 -51.2366 171.302 +-140.502 -50.6162 169.227 +-140.527 -49.7284 166.259 +-140.701 -48.9106 163.525 +-141.092 -48.1839 161.095 +-140.67 -47.1972 157.797 +-140.265 -46.2381 154.59 +-141.271 -45.7567 152.981 +-141.053 -44.8907 150.085 +-141.806 -44.3463 148.265 +-142.128 -43.6755 146.022 +-141.732 -42.7989 143.091 +-141.294 -41.9274 140.178 +-140.883 -41.0818 137.351 +-141.068 -40.4242 135.152 +-142.507 -40.1302 134.169 +-141.854 -39.2547 131.242 +-160.308 -43.5929 145.746 +-160.166 -42.7997 143.094 +-225.902 -59.3178 198.32 +-225.693 -58.2329 194.693 +-229.855 -58.2739 194.83 +-229.356 -57.1328 191.015 +-236.866 -57.9715 193.819 +-237.78 -57.1743 191.154 +-247.229 -58.4002 195.252 +-246.822 -57.2749 191.49 +-253.643 -57.8151 193.296 +-253.976 -56.8611 190.107 +-141.772 -31.1735 104.224 +-141.918 -30.6454 102.458 +-143.087 -30.3402 101.438 +-141.74 -29.5097 98.6613 +-141.086 -28.8381 96.4156 +-140.976 -28.2869 94.5728 +-144.387 -28.4364 95.0728 +-148.066 -28.6191 95.6836 +-303.951 -57.65 192.744 +-303.515 -56.482 188.839 +-318.465 -58.138 194.376 +-319.46 -57.203 191.249 +-333.809 -58.6177 195.979 +-332.067 -57.1758 191.158 +-345.858 -58.3793 195.182 +-347.623 -57.5122 192.283 +-357.977 -58.0377 194.04 +-357.632 -56.807 189.925 +-369.718 -57.5239 192.323 +-372.516 -56.7585 189.764 +-386.737 -57.6904 192.879 +-386.697 -56.4611 188.769 +-403.078 -57.5887 192.539 +-404.817 -56.5786 189.162 +-422.049 -57.6861 192.865 +-426.962 -57.0523 190.746 +-445.153 -58.1334 194.36 +-444.531 -56.715 189.618 +-455.412 -56.7439 189.715 +-452.98 -55.0991 184.215 +-402.257 -47.7463 159.632 +-400.543 -46.3737 155.043 +-402.592 -45.4438 151.934 +-404.614 -44.5073 148.803 +-403.706 -43.2528 144.609 +-403.786 -42.1143 140.803 +-403.639 -40.9595 136.942 +-402.507 -39.7152 132.782 +-403.512 -38.6891 129.351 +-403.153 -37.5368 125.499 +-383.49 -34.6489 115.843 +-378.027 -33.1189 110.728 +-378.83 -32.1558 107.508 +-378.833 -31.1285 104.073 +-378.899 -30.1109 100.671 +-379.609 -29.1475 97.4503 +-376.029 -27.8671 93.1693 +-381.714 -27.2723 91.1809 +-376.793 -25.9221 86.6665 +-379.712 -25.1206 83.9871 +-378.315 -24.0337 80.3531 +-378.934 -23.0808 77.1672 +-379.427 -22.1209 73.958 +-379.104 -21.1166 70.6 +-378.455 -20.0999 67.2009 +-379.742 -19.1876 64.1506 +-379.819 -18.2136 60.8943 +-378.68 -17.1869 57.4617 +-380.079 -16.2774 54.421 +-379.174 -15.2705 51.0546 +-378.732 -14.2881 47.77 +-379.649 -13.3579 44.6601 +-3255.24 -106.281 355.334 +-3258.35 -98.1367 328.105 +-3261.22 -89.9847 300.85 +-3263.83 -81.8261 273.573 +-3266.2 -73.6615 246.276 +-3268.32 -65.4908 218.959 +-3270.19 -57.3153 191.625 +-3271.81 -49.1355 164.277 +-3273.18 -40.952 136.917 +-3274.3 -32.7653 109.546 +-3275.18 -24.5762 82.1668 +-3275.8 -16.3852 54.7814 +-3276.18 -8.19289 27.3917 +95.6 0 0 +95.6964 -0.232098 0.802229 +95.5854 -0.463693 1.60272 +95.6672 -0.696221 2.40644 +95.6417 -0.928214 3.2083 +95.6089 -1.16014 4.00993 +95.5688 -1.39197 4.81124 +95.5215 -1.6237 5.61219 +95.4669 -1.8553 6.4127 +96.4019 -2.10856 7.2881 +96.332 -2.34228 8.09594 +96.1553 -2.57316 8.89395 +96.0708 -2.80625 9.69961 +96.0784 -3.04232 10.5155 +95.9792 -3.27521 11.3205 +95.7736 -3.50422 12.1121 +95.6599 -3.73636 12.9145 +95.5389 -3.96823 13.7159 +96.2008 -4.23456 14.6364 +95.867 -4.45853 15.4106 +95.6248 -4.68604 16.1969 +95.5724 -4.92285 17.0155 +95.2178 -5.14385 17.7794 +95.2487 -5.38567 18.6152 +94.9781 -5.61067 19.3929 +95.677 -5.89495 20.3755 +95.4883 -6.12676 21.1767 +95.3895 -6.36461 21.9988 +95.089 -6.58897 22.7743 +95.8466 -6.88893 23.8111 +95.5301 -7.11393 24.5888 +95.3994 -7.35277 25.4143 +95.8378 -7.63747 26.3984 +95.6902 -7.87751 27.2281 +95.3436 -8.10118 28.0011 +95.9439 -8.40731 29.0593 +95.7714 -8.64826 29.8921 +95.4014 -8.87137 30.6633 +95.9701 -9.18386 31.7434 +95.6781 -9.41626 32.5466 +96.0366 -9.71449 33.5775 +95.7279 -9.94703 34.3812 +96.1588 -10.2585 35.4577 +96.1121 -10.5219 36.3681 +96.5198 -10.8378 37.4602 +96.2682 -11.0822 38.3047 +95.9166 -11.3152 39.1103 +96.5664 -11.6693 40.3342 +96.1963 -11.9031 41.1421 +96.7289 -12.2512 42.3453 +96.3405 -12.4853 43.1545 +95.9448 -12.7185 43.9604 +96.0811 -13.0238 45.0158 +95.8475 -13.2811 45.9052 +96.0505 -13.6014 47.0122 +96.6842 -13.9878 48.3478 +95.9764 -14.1826 49.0212 +95.5274 -14.4148 49.8239 +95.6834 -14.7403 50.9487 +96.0873 -15.1086 52.2219 +95.5226 -15.3272 52.9774 +95.727 -15.6711 54.1661 +95.2313 -15.9027 54.9665 +95.4104 -16.2492 56.1643 +95.575 -16.5978 57.3691 +95.8093 -16.9634 58.6326 +95.1891 -17.1799 59.3812 +95.3965 -17.5482 60.6541 +95.588 -17.9188 61.9349 +95.0217 -18.1499 62.7338 +95.0216 -18.4913 63.9137 +95.1701 -18.8663 65.2099 +95.2213 -19.227 66.4568 +95.3374 -19.606 67.7668 +95.1974 -19.9369 68.9103 +95.2817 -20.3192 70.2319 +95.3493 -20.7035 71.5602 +94.7738 -20.9513 72.4166 +95.2781 -21.4427 74.1152 +95.2956 -21.8321 75.461 +95.2959 -22.2231 76.8126 +95.2789 -22.6158 78.17 +95.3198 -23.0284 79.596 +95.1923 -23.406 80.9012 +95.0482 -23.7847 82.2103 +95.1825 -24.2397 83.7827 +94.7834 -24.5644 84.905 +94.7339 -24.9846 86.3575 +95.1687 -25.5416 88.2827 +94.363 -25.7714 89.0772 +94.8937 -26.3727 91.1553 +94.6928 -26.7802 92.564 +94.4735 -27.1888 93.9762 +94.2357 -27.5983 95.3917 +93.7748 -27.9477 96.5994 +94.1773 -28.5633 98.7271 +93.879 -28.9766 100.156 +94.2246 -29.5989 102.306 +93.8164 -29.9938 103.671 +93.7154 -30.4951 105.404 +93.9755 -31.1257 107.584 +94.076 -31.7169 109.627 +93.5799 -32.1168 111.009 +93.6262 -32.7121 113.067 +93.6421 -33.3102 115.134 +93.5666 -33.8888 117.134 +93.7628 -34.5805 119.525 +93.3277 -35.0524 121.156 +92.5174 -35.3898 122.322 +94.5965 -36.8572 127.394 +115.461 -45.8273 158.399 +115.434 -46.6783 161.34 +115.753 -47.6938 164.85 +115.686 -48.5751 167.896 +112.087 -47.9681 165.798 +112.833 -49.2227 170.135 +108.739 -48.3631 167.163 +109.411 -49.6204 171.509 +105.171 -48.6451 168.138 +105.517 -49.7843 172.076 +101.1 -48.6663 168.211 +101.784 -49.9983 172.816 +96.4771 -48.3714 167.192 +97.3881 -49.8494 172.301 +92.2042 -48.1941 166.579 +92.9038 -49.5992 171.436 +89.5269 -48.8319 168.784 +90.3104 -50.3407 173.999 +85.7016 -48.8341 168.792 +86.4036 -50.3446 174.013 +82.2415 -49.0156 169.419 +82.8557 -50.5283 174.648 +78.4188 -48.9503 169.193 +78.4339 -50.1326 173.28 +73.77 -48.2997 166.944 +75.0442 -50.3513 174.036 +70.8006 -48.7018 168.334 +71.6143 -50.5267 174.642 +66.4773 -48.1296 166.357 +67.0647 -49.851 172.307 +64.2314 -49.0453 169.522 +64.5249 -50.6403 175.035 +61.0115 -49.2443 170.21 +61.5888 -51.1564 176.819 +57.7244 -49.3741 170.658 +57.7656 -50.9171 175.991 +52.7731 -47.9723 165.813 +52.0884 -48.8714 168.92 +49.3115 -47.7936 165.195 +48.6908 -48.7949 168.656 +46.1474 -47.8645 165.44 +45.494 -48.8892 168.982 +42.9895 -47.9192 165.629 +42.1836 -48.8322 168.785 +39.9738 -48.1204 166.325 +39.1106 -49.0295 169.467 +36.8212 -48.1438 166.406 +35.8065 -48.9119 169.061 +33.5633 -47.9876 165.866 +32.7295 -49.0784 169.636 +30.4926 -48.061 166.119 +29.527 -49.0376 169.495 +27.4699 -48.2016 166.605 +26.4874 -49.256 170.25 +24.4388 -48.3275 167.041 +23.2337 -49.0462 169.525 +21.2906 -48.1905 166.567 +20.1841 -49.2343 170.175 +18.2298 -48.2035 166.612 +17.0318 -49.1587 169.914 +15.1041 -47.9801 165.84 +13.9657 -49.3169 170.46 +12.1655 -48.3508 167.121 +10.8483 -49.2941 170.381 +9.09599 -48.2361 166.724 +7.74244 -49.2835 170.345 +6.08996 -48.4673 167.524 +4.64641 -49.3135 170.449 +3.02799 -48.2116 166.64 +1.55681 -49.5787 171.365 +1.06969e-14 -48.5523 167.818 +-1.54547 -49.2174 170.116 +-3.0437 -48.4614 167.504 +-4.6752 -49.6192 171.505 +-6.09694 -48.5229 167.716 +-7.79042 -49.589 171.401 +-9.12739 -48.4025 167.3 +-10.9033 -49.5437 171.244 +-12.1516 -48.2955 166.93 +-14.0599 -49.6495 171.61 +-15.3656 -48.8105 168.71 +-17.2139 -49.6843 171.73 +-18.4284 -48.7285 168.427 +-20.4219 -49.8141 172.179 +-21.4856 -48.6318 168.092 +-23.4817 -49.5698 171.334 +-24.6893 -48.823 168.753 +-26.7535 -49.7507 171.96 +-27.7045 -48.6135 168.029 +-29.9231 -49.6957 171.77 +-30.9094 -48.718 168.39 +-33.094 -49.6248 171.525 +-34.1357 -48.8061 168.695 +-36.4644 -49.8107 172.167 +-37.237 -48.6874 168.284 +-39.695 -49.7621 171.999 +-40.6712 -48.9597 169.226 +-43.3041 -50.1295 173.269 +-43.933 -48.9709 169.264 +-46.5957 -50.0731 173.074 +-47.4674 -49.2335 170.172 +-50.1606 -50.2679 173.747 +-50.5519 -48.9956 169.35 +-53.5653 -50.2568 173.709 +-54.2642 -49.3277 170.498 +-57.104 -50.3341 173.976 +-57.8789 -49.5064 171.115 +-60.51 -50.2601 173.721 +-61.1091 -49.3233 170.482 +-64.1577 -50.3521 174.039 +-64.9496 -49.594 171.418 +-68.4305 -50.8663 175.816 +-68.8783 -49.868 172.365 +-72.6405 -51.2506 177.144 +-72.7861 -50.0675 173.055 +-76.3453 -51.2242 177.053 +-76.8568 -50.3207 173.93 +-80.3878 -51.3813 177.596 +-81.3067 -50.7529 175.424 +-85.4683 -52.1216 180.155 +-86.0451 -51.2826 177.255 +-89.5894 -52.2008 180.428 +-90.0853 -51.3321 177.426 +-93.1215 -51.9076 179.415 +-93.4312 -50.9616 176.145 +-98.7219 -52.7053 182.172 +-99.1054 -51.8012 179.047 +-102.685 -52.5602 181.671 +-102.198 -51.2398 177.107 +-105.822 -51.9816 179.671 +-106.35 -51.1937 176.947 +-108.258 -51.0772 176.545 +-110.012 -50.8843 175.878 +-111.815 -50.7104 175.277 +-112.502 -50.0367 172.948 +-114.445 -49.9258 172.565 +-116.063 -49.6698 171.68 +-118.115 -49.5951 171.422 +-120.506 -49.6523 171.62 +-123.193 -49.816 172.186 +-127.506 -50.6081 174.923 +-133.968 -52.1975 180.417 +-133.956 -51.2412 177.111 +-139.605 -52.4335 181.232 +-139.802 -51.5602 178.214 +-140.685 -50.9546 176.121 +-140.863 -50.1078 173.194 +-141.124 -49.3074 170.428 +-140.779 -48.3155 166.999 +-141.019 -47.5432 164.33 +-140.963 -46.6886 161.376 +-141.385 -46.0066 159.019 +-141.578 -45.2634 156.45 +-141.602 -44.4814 153.747 +-141.856 -43.7852 151.34 +-141.942 -43.0501 148.8 +-141.583 -42.1961 145.848 +-140.837 -41.2464 142.565 +-141.224 -40.6433 140.481 +-143.126 -40.4777 139.908 +-142.977 -39.7359 137.344 +-161.908 -44.2185 152.838 +-160.629 -43.1098 149.006 +-222.255 -58.6163 202.603 +-224.306 -58.1319 200.929 +-228.998 -58.3178 201.571 +-230.152 -57.593 199.066 +-237.194 -58.3217 201.585 +-236.224 -57.0694 197.256 +-248.729 -59.0393 204.065 +-248.198 -57.8801 200.058 +-255.099 -58.4426 202.003 +-254.438 -57.262 197.922 +-265.617 -58.7188 202.958 +-263.668 -57.2512 197.885 +-142.566 -30.4026 105.084 +-142.237 -29.7881 102.96 +-142.765 -29.3596 101.479 +-141.74 -28.62 98.9231 +-140.923 -27.9363 96.56 +-141.14 -27.4659 94.9339 +-144.881 -27.6735 95.6514 +-147.32 -27.6163 95.4539 +-319.462 -58.765 203.117 +-315.843 -57.0041 197.031 +-330.525 -58.5207 202.273 +-332.35 -57.7167 199.494 +-343.785 -58.5493 202.372 +-345.181 -57.6419 199.235 +-358.869 -58.7491 203.062 +-358.361 -57.5013 198.749 +-371.555 -58.4229 201.934 +-371.451 -57.2231 197.788 +-386.064 -58.2561 201.358 +-385.76 -57.0044 197.032 +-404.211 -58.4793 202.129 +-402.913 -57.0552 197.207 +-418.471 -57.9854 200.422 +-418.568 -56.7367 196.106 +-438.386 -58.1124 200.861 +-444.816 -57.6461 199.25 +-454.89 -57.6138 199.138 +-452.844 -56.0336 193.676 +-453.853 -54.8447 189.567 +-456.386 -53.8394 186.092 +-404.013 -46.5088 160.754 +-402.212 -45.1628 156.102 +-404.359 -44.2671 153.006 +-403.307 -43.0259 148.716 +-402.113 -41.7833 144.421 +-403.41 -40.8065 141.045 +-403.639 -39.7245 137.305 +-403.642 -38.6265 133.51 +-403.607 -37.5315 129.725 +-404.389 -36.5168 126.218 +-384.443 -33.6879 116.44 +-378.984 -32.2016 111.302 +-379.213 -31.218 107.903 +-379.314 -30.2283 104.482 +-378.899 -29.2031 100.938 +-380.478 -28.3335 97.9327 +-379.514 -27.2774 94.2824 +-378.9 -26.2551 90.7488 +-379.613 -25.3287 87.5467 +-376.204 -24.1382 83.432 +-378.998 -23.3512 80.7118 +-379.423 -22.4138 77.4717 +-379.231 -21.4429 74.1158 +-378.221 -20.4322 70.6224 +-378.553 -19.4989 67.3967 +-378.659 -18.556 64.1374 +-378.438 -17.6002 60.8339 +-378.186 -16.647 57.5391 +-379.584 -15.7661 54.4944 +-380.263 -14.8526 51.3371 +-379.228 -13.8754 47.9594 +-378.756 -12.9247 44.6732 +-3255.24 -103.077 356.277 +-3258.35 -95.1778 328.975 +-3261.22 -87.2716 301.648 +-3263.83 -79.359 274.299 +-3266.2 -71.4406 246.929 +-3268.32 -63.5163 219.539 +-3270.19 -55.5873 192.133 +-3271.81 -47.6541 164.713 +-3273.18 -39.7173 137.28 +-3274.3 -31.7775 109.837 +-3275.18 -23.8352 82.3848 +-3275.8 -15.8912 54.9267 +-3276.18 -7.94588 27.4644 +95.7 0 0 +95.6964 -0.224849 0.80429 +95.6854 -0.449683 1.60853 +95.6672 -0.674479 2.41262 +95.6417 -0.899227 3.21655 +95.6089 -1.12391 4.02023 +96.4676 -1.36118 4.86896 +96.4198 -1.58778 5.67952 +96.4644 -1.81614 6.49636 +96.4019 -2.04272 7.30683 +96.2324 -2.26679 8.10835 +96.1553 -2.49281 8.91681 +96.1703 -2.72144 9.73465 +96.0784 -2.94731 10.5426 +95.9792 -3.17293 11.3496 +95.8727 -3.39831 12.1558 +95.6599 -3.61968 12.9477 +96.429 -3.88011 13.8792 +96.2996 -4.10654 14.6892 +95.867 -4.3193 15.4502 +95.7233 -4.54438 16.2553 +95.5724 -4.76911 17.0592 +96.1013 -5.02944 17.9904 +95.1507 -5.21209 18.6438 +95.8585 -5.48583 19.6229 +95.7746 -5.71668 20.4486 +95.5857 -5.94149 21.2528 +95.3895 -6.16585 22.0553 +96.0593 -6.44836 23.0659 +95.8466 -6.67379 23.8723 +95.6267 -6.89874 24.6769 +95.3994 -7.12315 25.4796 +95.9339 -7.40639 26.4928 +95.6902 -7.6315 27.298 +95.4392 -7.85605 28.1012 +96.0393 -8.15286 29.1629 +95.7714 -8.37819 29.9689 +96.2549 -8.67123 31.0171 +95.9701 -8.89706 31.825 +96.5265 -9.20308 32.9196 +96.0366 -9.41112 33.6637 +95.6342 -9.62697 34.4358 +95.3186 -9.8513 35.2383 +95.833 -10.1637 36.3556 +96.5198 -10.4994 37.5565 +96.1759 -10.7258 38.3662 +96.7451 -11.0565 39.5494 +96.5664 -11.3049 40.4378 +96.2877 -11.5423 41.287 +96.7289 -11.8686 42.4541 +96.2499 -12.084 43.2248 +95.9448 -12.3213 44.0734 +96.2608 -12.6406 45.2158 +95.8475 -12.8663 46.0232 +96.2287 -13.2011 47.2204 +96.5955 -13.5385 48.4276 +95.8881 -13.7271 49.1019 +96.2305 -14.0675 50.3195 +95.6834 -14.28 51.0797 +96.0873 -14.6368 52.3561 +95.5226 -14.8485 53.1135 +95.8132 -15.1954 54.3542 +95.2313 -15.4061 55.1077 +96.0925 -15.8543 56.7112 +95.6598 -16.0937 57.5676 +95.8093 -16.4336 58.7833 +95.273 -16.6581 59.5863 +95.3965 -17.0002 60.81 +95.588 -17.3592 62.0941 +95.5986 -17.6899 63.2769 +95.7589 -18.0528 64.5751 +95.1701 -18.2771 65.3775 +95.2213 -18.6266 66.6276 +95.3374 -18.9937 67.941 +95.2772 -19.3304 69.1453 +95.3611 -19.7011 70.4711 +95.5857 -20.1067 71.922 +95.3999 -20.4311 73.0823 +95.2781 -20.7731 74.3056 +95.2956 -21.1503 75.6549 +95.3725 -21.5464 77.072 +95.2789 -21.9096 78.3709 +95.2443 -22.2916 79.7373 +95.1174 -22.6572 81.0452 +94.4537 -22.8979 81.906 +94.9613 -23.4281 83.8028 +94.8566 -23.8156 85.1888 +94.7339 -24.2044 86.5794 +94.6651 -24.613 88.0413 +94.4344 -24.9855 89.3736 +94.8937 -25.5491 91.3896 +94.6928 -25.9439 92.8018 +95.1682 -26.5334 94.9105 +94.3046 -26.756 95.7067 +94.6614 -27.331 97.7635 +94.38 -27.7311 99.1946 +94.682 -28.3118 101.272 +94.1583 -28.6543 102.497 +94.2757 -29.1995 104.447 +93.7154 -29.5428 105.675 +93.9755 -30.1537 107.86 +93.5671 -30.5603 109.315 +94.0834 -31.281 111.893 +93.6262 -31.6905 113.358 +93.1496 -32.1003 114.823 +93.4449 -32.788 117.283 +93.3415 -33.3501 119.294 +93.6846 -34.0876 121.932 +92.9288 -34.4373 123.183 +95.9321 -36.2105 129.526 +115.805 -44.5287 159.28 +115.887 -45.398 162.39 +115.809 -46.2268 165.354 +115.686 -47.0582 168.328 +115.954 -48.0735 171.96 +115.627 -48.8664 174.796 +112.714 -48.5654 173.719 +112.442 -49.4022 176.712 +108.776 -48.7415 174.349 +109.07 -49.8534 178.327 +105.55 -49.2218 176.067 +105.28 -50.1006 179.211 +102.052 -49.5688 177.309 +101.921 -50.5402 180.783 +96.6172 -48.9237 175.001 +95.582 -49.4353 176.831 +92.9773 -49.1302 175.74 +93.0322 -50.2384 179.704 +89.8661 -49.6081 177.449 +89.4172 -50.4735 180.544 +86.5945 -49.9983 178.845 +85.3853 -50.4449 180.442 +82.2828 -49.7581 177.986 +80.7467 -49.9991 178.848 +77.6383 -49.2449 176.15 +77.0342 -50.0723 179.109 +74.7715 -49.827 178.232 +74.473 -50.9026 182.08 +70.3118 -49.316 176.404 +69.0259 -49.7064 177.801 +67.1044 -49.6391 177.56 +66.4943 -50.5561 180.84 +64.1695 -50.176 179.48 +63.1754 -50.8353 181.839 +60.7527 -50.3418 180.074 +59.8405 -51.0989 182.782 +55.7553 -49.1003 175.633 +54.1617 -49.2296 176.095 +51.2685 -48.1386 172.193 +50.1874 -48.7242 174.287 +47.9333 -48.1639 172.283 +46.7459 -48.6658 174.078 +44.5136 -48.0684 171.941 +43.3741 -48.6424 173.995 +41.0536 -47.8769 171.257 +40.1928 -48.8125 174.603 +38.027 -48.1677 172.297 +36.903 -48.8357 174.686 +34.899 -48.3392 172.91 +33.6407 -48.8693 174.806 +31.7603 -48.4956 173.47 +30.4843 -49.0465 175.44 +28.4085 -48.2918 172.741 +27.1082 -48.8362 174.688 +25.1486 -48.1779 172.333 +23.9907 -49.0629 175.499 +22.0584 -48.3691 173.017 +20.7275 -48.9808 175.205 +18.8569 -48.3047 172.787 +17.5781 -49.1512 175.815 +15.6967 -48.3056 172.79 +14.3659 -49.1458 175.796 +12.5841 -48.4526 173.316 +11.1475 -49.0713 175.529 +9.48851 -48.7463 174.366 +7.99107 -49.2778 176.267 +6.30983 -48.6488 174.018 +4.793 -49.2807 176.278 +3.13969 -48.4289 173.231 +1.59347 -49.1612 175.85 +1.10704e-14 -48.6784 174.124 +-1.60132 -49.4035 176.717 +-3.1554 -48.6709 174.097 +-4.80085 -49.3615 176.567 +-6.30634 -48.6219 173.921 +-8.03905 -49.5737 177.326 +-9.50421 -48.8268 174.654 +-11.2696 -49.6089 177.452 +-12.6887 -48.8553 174.756 +-14.5542 -49.7899 178.099 +-15.8798 -48.8688 174.805 +-17.7506 -49.6334 177.54 +-19.1392 -49.0277 175.373 +-21.0558 -49.7565 177.98 +-22.2412 -48.77 174.451 +-24.2779 -49.6501 177.599 +-25.6914 -49.2177 176.053 +-27.5369 -49.6084 177.45 +-28.8309 -49.0099 175.309 +-30.8474 -49.6307 177.53 +-32.0034 -48.8669 174.798 +-34.2238 -49.7164 177.836 +-35.3378 -48.9469 175.084 +-37.4612 -49.5745 177.329 +-38.7339 -49.0632 175.5 +-40.9504 -49.7325 177.894 +-42.3133 -49.3459 176.511 +-44.6581 -50.0823 179.145 +-45.5781 -49.218 176.054 +-48.098 -50.0734 179.113 +-49.1497 -49.3863 176.656 +-51.6839 -50.177 179.484 +-52.7019 -49.4843 177.006 +-55.1842 -50.159 179.42 +-56.0184 -49.3322 176.462 +-58.788 -50.2002 179.567 +-59.8566 -49.5992 177.417 +-62.3821 -50.197 179.555 +-63.5835 -49.7177 177.841 +-66.3274 -50.4293 180.387 +-67.4464 -49.8919 178.464 +-70.6718 -50.8916 182.04 +-71.9603 -50.4724 180.541 +-75.0961 -51.3286 183.603 +-75.8578 -50.551 180.822 +-79.4068 -51.6145 184.626 +-80.178 -50.8561 181.913 +-83.1392 -51.4804 184.146 +-84.5605 -51.1355 182.913 +-87.3344 -51.5965 184.561 +-88.8766 -51.3162 183.559 +-91.1392 -51.4454 184.021 +-92.0141 -50.7939 181.691 +-97.1819 -52.4793 187.719 +-97.7896 -51.6732 184.836 +-101.123 -52.3011 187.082 +-101.828 -51.5623 184.439 +-104.164 -51.6525 184.762 +-104.719 -50.8641 181.942 +-106.413 -50.6396 181.139 +-107.15 -49.9678 178.736 +-108.664 -49.6679 177.663 +-109.703 -49.1569 175.835 +-110.979 -48.7595 174.414 +-112.661 -48.5425 173.637 +-114.66 -48.4577 173.334 +-116.498 -48.2994 172.768 +-119.494 -48.6074 173.869 +-121.065 -48.3249 172.859 +-124.609 -48.8152 174.613 +-126.932 -48.8071 174.584 +-137.278 -51.817 185.35 +-139.54 -51.7104 184.969 +-140.795 -51.229 183.247 +-141.005 -50.38 180.21 +-141.354 -49.5984 177.414 +-141.048 -48.6066 173.867 +-140.937 -47.7043 170.639 +-140.653 -46.7647 167.278 +-141.464 -46.2039 165.272 +-141.799 -45.4985 162.749 +-142.164 -44.8157 160.306 +-141.906 -43.9517 157.216 +-141.602 -43.0923 154.142 +-141.856 -42.4178 151.729 +-141.131 -41.4674 148.33 +-141.037 -40.7208 145.659 +-142.489 -40.4268 144.607 +-143.169 -39.9163 142.781 +-159.737 -43.7648 156.548 +-161.786 -43.5591 155.812 +-222.249 -58.8027 210.338 +-221.916 -57.6985 206.389 +-226.679 -57.9163 207.168 +-228.329 -57.3264 205.058 +-235.634 -58.1339 207.946 +-238.401 -57.7941 206.73 +-246.107 -58.6233 209.697 +-246.186 -57.6188 206.103 +-254.432 -58.507 209.281 +-255.093 -57.6301 206.144 +-263.278 -58.433 209.016 +-264.23 -57.6088 206.068 +-274.148 -58.7122 210.015 +-274.701 -57.7841 206.695 +-144.787 -29.9122 106.996 +-142.477 -28.9066 103.399 +-142.765 -28.4427 101.74 +-141.821 -27.7421 99.2341 +-140.679 -27.0168 96.6396 +-140.976 -26.5773 95.0674 +-144.964 -26.8245 95.9519 +-147.486 -26.784 95.8069 +-330.052 -58.8172 210.39 +-330.604 -57.8049 206.769 +-341.489 -58.5738 209.519 +-342.272 -57.5835 205.977 +-355.125 -58.5921 209.585 +-357.01 -57.7553 206.592 +-369.725 -58.6363 209.743 +-370.659 -57.6172 206.098 +-384.958 -58.64 209.756 +-383.696 -57.2634 204.832 +-394.765 -57.7087 206.425 +-399.445 -57.1834 204.546 +-417.161 -58.468 209.141 +-419.575 -57.559 205.89 +-435.475 -58.4572 209.102 +-436.814 -57.3609 205.181 +-451.022 -57.9204 207.182 +-453.698 -56.9611 203.751 +-456.528 -56.0158 200.369 +-404.518 -48.4908 173.452 +-404.79 -47.3883 169.509 +-404.93 -46.2776 165.536 +-401.795 -44.8092 160.283 +-403.232 -43.8634 156.9 +-405.197 -42.9735 153.717 +-401.066 -41.4507 148.27 +-405.954 -40.8651 146.175 +-404.068 -39.5967 141.638 +-403.545 -38.4751 137.626 +-403.642 -37.4202 133.853 +-403.607 -36.3594 130.058 +-403.819 -35.3266 126.364 +-384.062 -32.6033 116.622 +-379.079 -31.2037 111.616 +-378.83 -30.2124 108.07 +-377.295 -29.1285 104.193 +-377.358 -28.1762 100.787 +-380.092 -27.4207 98.0842 +-380.385 -26.4862 94.7417 +-379.483 -25.4743 91.1219 +-379.808 -24.5503 87.8167 +-376.691 -23.4147 83.7547 +-377.924 -22.5579 80.6899 +-379.228 -21.7027 77.6308 +-379.721 -20.8001 74.4023 +-378.221 -19.7941 70.8039 +-378.848 -18.9047 67.6225 +-377.969 -17.9438 64.1852 +-378.931 -17.0728 61.0697 +-379.47 -16.1818 57.8827 +-379.485 -15.2698 54.6202 +-380.56 -14.4 51.5092 +-380.12 -13.4737 48.1958 +-381.038 -12.5965 45.058 +-3255.24 -99.8576 357.192 +-3258.35 -92.2055 329.821 +-3261.22 -84.5462 302.423 +-3263.83 -76.8807 275.004 +-3266.2 -69.2096 247.564 +-3268.32 -61.5327 220.104 +-3270.19 -53.8513 192.627 +-3271.81 -46.1659 165.136 +-3273.18 -38.477 137.633 +-3274.3 -30.7851 110.119 +-3275.18 -23.0909 82.5965 +-3275.8 -15.3949 55.0679 +-3276.18 -7.69774 27.5349 +95.7 0 0 +95.3964 -0.216901 0.803759 +95.7854 -0.435604 1.6142 +95.3673 -0.650637 2.41103 +95.7416 -0.871076 3.2279 +95.509 -1.08645 4.02599 +96.4676 -1.31719 4.88105 +95.4217 -1.52056 5.63468 +96.4644 -1.75745 6.51249 +96.2025 -1.97261 7.30981 +96.332 -2.19581 8.13689 +95.8567 -2.40475 8.91118 +96.1703 -2.63349 9.75881 +95.8797 -2.84615 10.5468 +95.9792 -3.07039 11.3778 +95.6744 -3.28169 12.1608 +95.7589 -3.50632 12.9932 +95.44 -3.71621 13.771 +95.4107 -3.93715 14.5897 +95.7683 -4.17541 15.4726 +95.7233 -4.39752 16.2957 +95.3757 -4.60548 17.0663 +95.4142 -4.8321 17.9061 +95.0527 -5.03847 18.6708 +95.7607 -5.30315 19.6516 +94.7983 -5.47555 20.2905 +95.5857 -5.74948 21.3056 +95.2923 -5.96049 22.0875 +96.0593 -6.23997 23.1231 +95.653 -6.44506 23.8832 +95.6267 -6.6758 24.7382 +96.1703 -6.94866 25.7493 +96.03 -7.17423 26.5852 +95.4026 -7.36268 27.2835 +96.2999 -7.67071 28.425 +95.9439 -7.88154 29.2062 +95.8665 -8.11548 30.0731 +96.2549 -8.391 31.0941 +95.9701 -8.60954 31.9039 +96.338 -8.88829 32.9369 +96.0366 -9.10698 33.7473 +95.5406 -9.30674 34.4875 +96.1588 -9.61696 35.6371 +95.74 -9.82568 36.4105 +96.6126 -10.1698 37.6859 +95.9911 -10.3592 38.3876 +95.9166 -10.6076 39.3081 +96.383 -10.9188 40.4611 +96.1963 -11.1587 41.3502 +95.8189 -11.377 42.1591 +96.3405 -11.7045 43.3728 +96.4864 -11.9904 44.4322 +96.2608 -12.2321 45.328 +95.6685 -12.4273 46.0512 +96.3178 -12.7863 47.3815 +96.3294 -13.0649 48.414 +96.153 -13.3201 49.3598 +95.5274 -13.5134 50.0759 +95.7709 -13.8311 51.2533 +95.2169 -14.0355 52.0106 +95.5226 -14.3687 53.2453 +95.6408 -14.6779 54.3911 +96.0027 -15.029 55.6921 +95.4104 -15.233 56.4483 +95.6598 -15.5736 57.7105 +94.9659 -15.7625 58.4104 +95.3568 -16.134 59.7868 +95.3965 -16.4508 60.9609 +95.588 -16.7982 62.2482 +95.5986 -17.1182 63.4339 +95.0216 -17.3349 64.237 +95.0887 -17.6713 65.4836 +95.2213 -18.0246 66.793 +95.0963 -18.3334 67.9373 +95.4369 -18.7371 69.4331 +95.4404 -19.0803 70.7048 +95.5069 -19.4409 72.0412 +95.2434 -19.7384 73.1435 +95.2781 -20.1017 74.49 +95.2956 -20.4668 75.8427 +94.7597 -20.7161 76.7667 +95.2789 -21.2015 78.5654 +94.7161 -21.4515 79.4918 +95.1174 -21.925 81.2464 +95.0482 -22.2973 82.6261 +94.8876 -22.6534 83.9456 +94.8566 -23.046 85.4003 +94.7339 -23.4222 86.7943 +94.5932 -23.7995 88.1928 +94.4344 -24.1781 89.5954 +94.8937 -24.7234 91.6164 +94.7629 -25.1241 93.1011 +94.543 -25.5072 94.5209 +94.1669 -25.8535 95.8041 +94.7296 -26.4668 98.0766 +94.3124 -26.8156 99.3694 +94.0798 -27.2226 100.877 +94.2908 -27.7671 102.895 +94.4069 -28.2952 104.852 +93.8452 -28.6277 106.084 +93.9113 -29.1592 108.054 +94.0124 -29.7133 110.107 +94.2722 -30.3308 112.395 +93.6262 -30.6664 113.639 +93.7037 -31.2477 115.793 +93.5058 -31.7489 117.65 +93.3415 -32.2723 119.59 +93.8036 -33.0279 122.39 +92.2823 -33.0925 122.629 +96.8613 -35.3795 131.104 +115.805 -43.0896 159.675 +115.717 -43.8666 162.554 +115.194 -44.4952 164.884 +115.41 -45.429 168.344 +115.681 -46.4107 171.982 +116.057 -47.463 175.881 +115.098 -47.9901 177.835 +114.741 -48.7832 180.773 +111.763 -48.4614 179.581 +110.643 -48.9382 181.348 +107.75 -48.6237 180.183 +107.004 -49.2751 182.596 +104.864 -49.2886 182.646 +104.211 -50.0061 185.305 +100.373 -49.1828 182.254 +99.4607 -49.779 184.463 +95.3834 -48.7728 180.735 +95.1294 -49.7107 184.21 +92.9347 -49.644 183.963 +92.4307 -50.4884 187.092 +88.8766 -49.6578 184.014 +88.2882 -50.4743 187.04 +84.8453 -49.6497 183.985 +83.4582 -50.008 185.312 +79.5919 -48.8527 181.031 +78.9859 -49.6818 184.103 +76.7194 -49.4728 183.329 +76.4155 -50.5423 187.292 +73.4296 -49.8386 184.684 +72.7731 -50.7112 187.918 +68.6092 -49.112 181.992 +67.8296 -49.9048 184.93 +65.5369 -49.589 183.76 +64.6984 -50.3785 186.685 +62.3905 -50.028 185.386 +61.2237 -50.5905 187.471 +58.7082 -50.0301 185.394 +56.7179 -49.8868 184.863 +52.9499 -48.1105 178.281 +51.6839 -48.5555 179.93 +49.2791 -47.9161 177.56 +48.2733 -48.6318 180.212 +45.7716 -47.8296 177.24 +44.7048 -48.5146 179.778 +42.1783 -47.5988 176.384 +41.1019 -48.3035 178.996 +39.1706 -48.0128 177.919 +37.9397 -48.5852 180.04 +35.6622 -47.7999 177.13 +34.6612 -48.7246 180.556 +32.5243 -48.0573 178.084 +31.2435 -48.6435 180.256 +29.2376 -48.0951 178.224 +27.936 -48.7008 180.468 +25.9001 -48.0143 177.924 +24.6956 -48.872 181.103 +22.6799 -48.1248 178.334 +21.3954 -48.9252 181.3 +19.3587 -47.9872 177.824 +18.0765 -48.9114 181.248 +16.1935 -48.2238 178.701 +14.7425 -48.8043 180.852 +12.9817 -48.3681 179.235 +11.5138 -49.0458 181.747 +9.75019 -48.4718 179.62 +8.26587 -49.3251 182.782 +6.47037 -48.2743 178.888 +4.971 -49.4593 183.279 +3.25138 -48.531 179.839 +1.66241 -49.6307 183.914 +1.14072e-14 -48.5383 179.866 +-1.66153 -49.6047 183.817 +-3.25138 -48.531 179.839 +-4.98409 -49.5895 183.762 +-6.48084 -48.3525 179.177 +-8.31822 -49.6372 183.938 +-9.76589 -48.5497 179.908 +-11.642 -49.5919 183.77 +-13.0375 -48.576 180.006 +-15.0641 -49.8691 184.797 +-16.3417 -48.6652 180.336 +-18.3065 -49.5338 183.555 +-19.6304 -48.661 180.321 +-21.7237 -49.6758 184.081 +-22.9236 -48.642 180.25 +-25.3221 -50.1119 185.697 +-26.2898 -48.7368 180.602 +-28.3942 -49.4997 183.428 +-29.5505 -48.6097 180.13 +-31.7221 -49.3887 183.017 +-32.8542 -48.545 179.891 +-35.2444 -49.5442 183.594 +-36.3873 -48.7717 180.731 +-38.6774 -49.5296 183.539 +-39.8983 -48.9048 181.224 +-42.1191 -49.4989 183.426 +-43.5055 -49.0966 181.935 +-45.8954 -49.8066 184.566 +-47.0054 -49.1187 182.017 +-49.5001 -49.8678 184.793 +-50.8062 -49.4009 183.063 +-52.9934 -49.7857 184.488 +-54.3281 -49.3629 182.922 +-56.4907 -49.687 184.123 +-58.1527 -49.5567 183.64 +-60.4118 -49.9196 184.985 +-61.4635 -49.2847 182.632 +-64.3177 -50.082 185.586 +-64.8857 -49.0963 181.934 +-69.1648 -50.887 188.57 +-69.9773 -50.0913 185.621 +-74.244 -51.7364 191.717 +-74.6839 -50.6898 187.839 +-78.248 -51.7544 191.784 +-78.5175 -50.6325 187.626 +-82.0473 -51.6074 191.239 +-83.0694 -50.9871 188.94 +-86.0102 -51.5371 190.978 +-86.5129 -50.6254 187.6 +-89.6981 -51.2804 190.027 +-90.3558 -50.4842 187.077 +-94.0236 -51.3586 190.317 +-95.0827 -50.7914 188.215 +-99.5021 -51.9956 192.678 +-100.014 -51.1408 189.51 +-105.048 -52.5753 194.826 +-103.847 -50.8852 188.563 +-107.313 -51.4943 190.82 +-106.125 -49.8811 184.842 +-106.807 -49.1844 182.26 +-107.5 -48.5109 179.764 +-109.222 -48.3098 179.019 +-109.858 -47.6352 176.52 +-111.971 -47.6058 176.41 +-113.509 -47.3273 175.378 +-115.842 -47.375 175.555 +-117.097 -46.9787 174.087 +-119.715 -47.1235 174.623 +-122.687 -47.3896 175.609 +-126.082 -47.7957 177.114 +-129.055 -48.0195 177.944 +-139.427 -50.9271 188.718 +-140.246 -50.292 186.364 +-141.27 -49.7409 184.322 +-140.704 -48.648 180.272 +-140.867 -47.8301 177.242 +-140.925 -46.9948 174.146 +-141.435 -46.326 171.668 +-141.786 -45.6179 169.044 +-142.8 -45.133 167.247 +-142.57 -44.2678 164.041 +-142.164 -43.3674 160.704 +-141.84 -42.5115 157.533 +-141.271 -41.602 154.162 +-141.053 -40.8146 151.245 +-141.604 -40.2618 149.196 +-141.583 -39.5573 146.585 +-156.67 -43.0136 159.393 +-158.313 -42.7121 158.276 +-220.716 -58.5177 216.846 +-221.183 -57.6266 213.544 +-226.671 -58.0346 215.056 +-225.657 -56.7749 210.388 +-233.135 -57.6407 213.596 +-234.253 -56.913 210.9 +-242.785 -57.9625 214.789 +-244.718 -57.4083 212.735 +-251.724 -58.0237 215.015 +-252.601 -57.2098 211.999 +-261.047 -58.0886 215.256 +-262.064 -57.2918 212.304 +-270.686 -58.1355 215.43 +-271.146 -57.2064 211.987 +-281.895 -58.4205 216.486 +-282.975 -57.6008 213.449 +-146.612 -29.3103 108.614 +-142.716 -28.0193 103.83 +-142.283 -27.4305 101.648 +-142.144 -26.9068 99.7073 +-140.842 -26.1742 96.9924 +-141.304 -25.7781 95.5248 +-144.881 -25.9429 96.1353 +-147.237 -25.8748 95.8828 +-338.808 -58.4262 216.507 +-338.404 -57.2564 212.172 +-352.622 -58.5286 216.887 +-352.025 -57.3103 212.372 +-364.759 -58.2368 215.805 +-366.61 -57.3919 212.674 +-377.049 -57.8653 214.428 +-380.012 -57.1621 211.823 +-396.099 -58.3871 216.362 +-394.891 -57.0297 211.332 +-406.804 -57.5469 213.249 +-409.688 -56.7543 210.312 +-429.225 -58.2147 215.723 +-430.623 -57.1657 211.836 +-453.016 -58.8465 218.064 +-448.139 -56.9464 211.023 +-457.791 -56.8898 210.814 +-456.145 -55.4175 205.358 +-405.479 -48.1441 178.405 +-404.153 -46.8812 173.726 +-402.681 -45.6179 169.044 +-403.457 -44.619 165.342 +-402.719 -43.4609 161.051 +-401.378 -42.2507 156.566 +-402.592 -41.3175 153.108 +-403.307 -40.3352 149.468 +-403.518 -39.3071 145.659 +-404.444 -38.3525 142.121 +-405.336 -37.3969 138.58 +-402.224 -36.0838 133.714 +-402.848 -35.1182 130.136 +-403.153 -34.1284 126.468 +-386.351 -31.7377 117.609 +-380.896 -30.3402 112.43 +-379.501 -29.2879 108.531 +-380.083 -28.3953 105.223 +-378.707 -27.363 101.398 +-377.484 -26.3524 97.6528 +-379.223 -25.552 94.6867 +-379.968 -24.6825 91.4647 +-379.03 -23.7082 87.8543 +-376.691 -22.658 83.9626 +-379.193 -21.9022 81.1618 +-379.032 -20.9905 77.7833 +-377.663 -20.0188 74.1827 +-380.184 -19.2539 71.348 +-379.34 -18.3175 67.8784 +-379.939 -17.4544 64.6798 +-379.621 -16.5512 61.3328 +-379.47 -15.6589 58.0264 +-379.09 -14.7609 54.6986 +-378.679 -13.8658 51.3818 +-379.723 -13.0247 48.265 +-380.939 -12.1863 45.1581 +-3255.24 -96.6305 358.079 +-3258.35 -89.2257 330.639 +-3261.22 -81.8139 303.174 +-3263.83 -74.3962 275.686 +-3266.2 -66.9729 248.178 +-3268.32 -59.5442 220.65 +-3270.19 -52.111 193.105 +-3271.81 -44.674 165.546 +-3273.18 -37.2335 137.974 +-3274.3 -29.7902 110.392 +-3275.18 -22.3447 82.8015 +-3275.8 -14.8974 55.2045 +-3276.18 -7.44897 27.6033 +95.6 0 0 +95.5964 -0.210079 0.807373 +95.3855 -0.419264 1.61131 +95.3673 -0.628855 2.41681 +95.5418 -0.840156 3.22888 +95.3092 -1.04788 4.02719 +95.469 -1.25992 4.84209 +95.4217 -1.46966 5.64817 +96.2649 -1.6951 6.51458 +96.2025 -1.90657 7.32732 +96.1328 -2.11791 8.1395 +96.0557 -2.32908 8.95107 +96.0708 -2.54269 9.77201 +95.8797 -2.75086 10.5721 +95.7807 -2.96146 11.3814 +95.6744 -3.17182 12.1899 +95.5609 -3.38194 12.9974 +96.3301 -3.62529 13.9327 +95.9045 -3.82503 14.7003 +95.7683 -4.03563 15.5097 +95.5264 -4.24156 16.3011 +95.3757 -4.4513 17.1072 +95.2178 -4.66074 17.9121 +95.9346 -4.91497 18.8891 +95.7607 -5.12561 19.6987 +94.7983 -5.29224 20.3391 +95.3908 -5.54567 21.313 +95.2923 -5.76095 22.1404 +95.9622 -6.02497 23.1551 +94.7817 -6.17256 23.7223 +95.5301 -6.44578 24.7723 +96.074 -6.70931 25.7851 +95.8378 -6.92016 26.5954 +95.5943 -7.1305 27.4038 +95.3436 -7.34031 28.2102 +95.9439 -7.61769 29.2762 +95.6763 -7.82823 30.0853 +95.2117 -8.0222 30.8308 +95.781 -8.30492 31.9173 +95.6781 -8.53188 32.7896 +95.9426 -8.79349 33.795 +96.3836 -9.07452 34.875 +96.0654 -9.28599 35.6878 +96.7634 -9.59824 36.8878 +96.4271 -9.81052 37.7036 +96.0835 -10.0221 38.5166 +95.8246 -10.2426 39.3644 +96.383 -10.5532 40.558 +96.0136 -10.7646 41.3705 +95.6369 -10.9752 42.1798 +96.2499 -11.302 43.4358 +96.6669 -11.6107 44.6219 +96.2608 -11.8226 45.4366 +95.6685 -12.0112 46.1614 +96.0505 -12.3239 47.3631 +96.3294 -12.6275 48.53 +96.153 -12.8742 49.478 +96.1426 -13.1451 50.519 +95.5959 -13.3437 51.2821 +96.0002 -13.6772 52.564 +95.436 -13.8751 53.3244 +96.5025 -14.3143 55.0125 +95.1456 -14.3961 55.3269 +96.0073 -14.8152 56.9374 +95.4902 -15.0256 57.7461 +95.7249 -15.3566 59.0183 +95.1891 -15.5664 59.8245 +95.3131 -15.8862 61.0534 +95.5051 -16.2217 62.3431 +94.8569 -16.4167 63.0926 +94.9397 -16.7401 64.3353 +95.74 -17.1967 66.09 +95.1404 -17.4064 66.896 +94.5336 -17.6148 67.697 +95.3571 -18.0947 69.5411 +95.2817 -18.4108 70.7562 +95.2705 -18.7435 72.0349 +95.3217 -19.0933 73.3789 +95.2004 -19.4129 74.6074 +95.2956 -19.7816 76.0243 +95.2959 -20.1359 77.386 +95.2789 -20.4917 78.7535 +95.2443 -20.849 80.1266 +95.1174 -21.191 81.4409 +94.9739 -21.534 82.7592 +94.9613 -21.912 84.2119 +94.8566 -22.2744 85.6047 +94.6614 -22.6207 86.9355 +94.5932 -23.0028 88.4039 +94.4344 -23.3686 89.8099 +94.8937 -23.8958 91.8358 +94.7629 -24.283 93.324 +94.4735 -24.6352 94.6776 +94.8553 -25.1707 96.7355 +94.5932 -25.544 98.1701 +94.3124 -25.9179 99.6073 +94.0129 -26.2926 101.047 +94.1583 -26.8 102.997 +93.9477 -27.2148 104.591 +93.8452 -27.6693 106.338 +93.397 -28.0286 107.719 +93.5035 -28.5632 109.774 +93.7058 -29.1394 111.988 +93.7507 -29.6793 114.063 +93.6421 -30.1817 115.994 +93.2014 -30.5861 117.548 +93.3415 -31.1919 119.876 +93.7441 -31.9021 122.605 +92.2235 -31.9643 122.845 +97.8484 -34.5436 132.757 +115.289 -41.4615 159.344 +115.66 -42.3774 162.864 +115.641 -43.1726 165.92 +115.3 -43.8661 168.585 +115.3 -44.7092 171.826 +115.412 -45.619 175.322 +116.158 -46.8106 179.902 +115.629 -47.5149 182.609 +114.493 -47.983 184.408 +114.298 -48.8621 187.786 +111.1 -48.4572 186.23 +110.5 -49.1817 189.014 +107.676 -48.916 187.993 +106.979 -49.6156 190.682 +103.143 -48.8483 187.733 +102.554 -49.609 190.657 +98.4705 -48.6657 187.031 +98.0297 -49.5113 190.281 +94.4251 -48.7516 187.361 +94.4111 -49.8437 191.559 +91.0742 -49.1819 189.015 +89.8226 -49.6324 190.747 +86.9603 -49.1837 189.022 +85.9304 -49.7654 191.258 +82.2489 -48.7934 187.522 +81.7412 -49.6936 190.982 +78.6674 -49.0308 188.435 +77.9548 -49.8344 191.523 +75.6156 -49.604 190.637 +75.2946 -50.712 194.895 +72.2689 -49.9998 192.159 +71.3679 -50.7502 195.042 +67.2624 -49.1907 189.049 +66.1263 -49.7666 191.262 +63.8429 -49.4788 190.156 +63.3888 -50.6261 194.565 +60.7841 -50.0651 192.409 +59.9556 -50.9693 195.884 +54.907 -48.2185 185.312 +53.7149 -48.7742 187.448 +50.8062 -47.7471 183.501 +49.8757 -48.564 186.64 +47.2715 -47.7433 183.486 +46.1521 -48.4086 186.043 +43.8205 -47.7964 183.69 +42.7901 -48.604 186.794 +40.2101 -47.637 183.078 +39.6543 -49.0807 188.626 +37.0169 -47.9548 184.299 +35.9186 -48.8019 187.555 +33.6009 -47.9861 184.419 +32.5309 -48.9523 188.133 +30.1762 -47.9772 184.385 +29.015 -48.8886 187.888 +26.9161 -48.2273 185.346 +25.6092 -48.9835 188.253 +23.4111 -48.0133 184.524 +22.1878 -49.0386 188.465 +20.1426 -48.259 185.468 +18.7474 -49.0283 188.425 +16.7165 -48.1145 184.913 +15.2838 -48.9024 187.941 +13.47 -48.5073 186.423 +11.9655 -49.2638 189.33 +10.0747 -48.4081 186.041 +8.48833 -48.9568 188.15 +6.70419 -48.3444 185.796 +5.08618 -48.911 187.974 +3.36308 -48.5176 186.462 +1.7008 -49.0772 188.613 +1.17991e-14 -48.5249 186.49 +-1.70342 -49.1527 188.903 +-3.35959 -48.4673 186.269 +-5.14639 -49.4902 190.2 +-6.72513 -48.4955 186.377 +-8.5843 -49.5103 190.277 +-10.0851 -48.4585 186.235 +-12.0449 -49.5906 190.586 +-13.4351 -48.3817 185.94 +-15.4878 -49.5551 190.449 +-16.8385 -48.4658 186.263 +-18.8624 -49.3292 189.581 +-20.2785 -48.5846 186.72 +-22.3463 -49.3889 189.811 +-23.7401 -48.6881 187.117 +-25.9225 -49.5828 190.556 +-27.1527 -48.6511 186.975 +-29.4141 -49.5609 190.472 +-30.5204 -48.5244 186.488 +-32.927 -49.5483 190.423 +-33.8788 -48.3829 185.944 +-36.6293 -49.7674 191.265 +-37.6085 -48.7211 187.244 +-39.9533 -49.4509 190.049 +-40.8131 -48.3512 185.823 +-43.7424 -49.6856 190.951 +-44.4953 -48.5325 186.519 +-47.3194 -49.6327 190.748 +-48.1425 -48.6229 186.867 +-51.1276 -49.783 191.325 +-51.7379 -48.6229 186.867 +-55.1313 -50.0603 192.391 +-55.348 -48.6058 186.801 +-58.706 -49.9069 191.801 +-59.2053 -48.7647 187.412 +-63.0279 -50.3378 193.457 +-63.0704 -48.8803 187.856 +-67.6176 -50.889 195.576 +-68.7274 -50.2622 193.167 +-73.3374 -52.1506 200.424 +-74.6972 -51.6799 198.616 +-78.2013 -52.6696 202.419 +-78.6976 -51.6258 198.407 +-82.0596 -52.4583 201.607 +-82.6382 -51.5057 197.946 +-86.0655 -52.3226 201.085 +-86.6642 -51.4128 197.589 +-89.3995 -51.7746 198.979 +-89.6041 -50.679 194.769 +-92.9328 -51.3508 197.351 +-93.779 -50.6427 194.629 +-98.5009 -52.003 199.857 +-98.8527 -51.0376 196.147 +-103.206 -52.1254 200.328 +-103.873 -51.3357 197.293 +-109.204 -52.8255 203.018 +-109.856 -52.0277 199.952 +-110.749 -51.3637 197.4 +-106.464 -48.3653 185.877 +-108.629 -48.3487 185.813 +-108.8 -47.454 182.374 +-110.542 -47.2565 181.616 +-111.248 -46.6232 179.182 +-112.651 -46.2911 177.905 +-114.357 -46.0846 177.112 +-115.627 -45.7041 175.649 +-117.261 -45.4694 174.747 +-120.101 -45.693 175.607 +-122.631 -45.7822 175.949 +-125.686 -46.0506 176.981 +-137.372 -49.403 189.865 +-141.053 -49.7964 191.377 +-141.186 -48.9344 188.064 +-141.151 -48.0352 184.608 +-141.366 -47.2404 181.554 +-142.207 -46.6683 179.355 +-141.541 -45.62 175.326 +-142.743 -45.1889 173.669 +-142.478 -44.306 170.276 +-141.591 -43.2529 166.229 +-142.506 -42.7664 164.359 +-141.515 -41.7239 160.353 +-141.053 -40.8604 157.034 +-142.331 -40.5112 155.692 +-141.99 -39.7101 152.613 +-156.534 -43.017 165.322 +-154.882 -41.8241 160.738 +-218.14 -57.8852 222.463 +-219.859 -57.3312 220.334 +-226.534 -58.0494 223.094 +-226.203 -56.9615 218.914 +-232.948 -57.645 221.54 +-233.714 -56.8336 218.422 +-242.855 -58.0338 223.034 +-241.786 -56.7767 218.203 +-249.126 -57.4851 220.926 +-251.109 -56.9353 218.813 +-260.711 -58.0834 223.225 +-261.431 -57.2275 219.936 +-269.564 -57.9753 222.81 +-269.724 -56.9925 219.033 +-280.331 -58.1914 223.64 +-281.405 -57.3831 220.534 +-291.287 -58.3458 224.233 +-292.825 -57.6105 221.408 +-140.265 -27.1027 104.161 +-142.157 -26.9753 103.671 +-141.961 -26.4523 101.661 +-142.549 -26.0801 100.231 +-140.923 -25.3125 97.2808 +-141.549 -24.9585 95.9201 +-144.222 -24.9603 95.9269 +-147.071 -24.9803 96.0041 +-350.899 -58.4855 224.771 +-351.571 -57.4929 220.956 +-365.273 -58.5986 225.205 +-364.237 -57.3133 220.266 +-376.014 -58.0239 222.997 +-378.868 -57.3252 220.311 +-393.506 -58.3692 224.324 +-392.829 -57.1119 219.491 +-409.502 -58.342 224.219 +-407.748 -56.9149 218.735 +-420.778 -57.5309 221.102 +-424.521 -56.8404 218.448 +-450.513 -59.0564 226.965 +-448.978 -57.6069 221.394 +-471.183 -59.1574 227.353 +-454.43 -55.8125 214.498 +-406.344 -48.806 187.57 +-404.938 -47.5494 182.741 +-403.75 -46.3339 178.07 +-402.508 -45.1274 173.433 +-402.223 -44.0404 169.255 +-403.365 -43.1154 165.701 +-404.752 -42.218 162.251 +-402.212 -40.9211 157.267 +-401.847 -39.8605 153.191 +-401.626 -38.8225 149.202 +-400.896 -37.7444 145.059 +-401.061 -36.7586 141.27 +-404.582 -36.0777 138.653 +-404.871 -35.1052 134.916 +-402.563 -33.9186 130.355 +-403.914 -33.0483 127.011 +-386.351 -30.6752 117.89 +-379.653 -29.2288 112.332 +-379.98 -28.3432 108.928 +-376.911 -27.2155 104.594 +-378.899 -26.4603 101.692 +-378.74 -25.555 98.2127 +-380.482 -24.7785 95.2284 +-379.095 -23.8014 91.473 +-379.71 -22.9556 88.2228 +-378.933 -22.0297 84.6644 +-378.315 -21.1199 81.1677 +-377.272 -20.1935 77.6073 +-377.663 -19.3486 74.3604 +-379.89 -18.5949 71.4635 +-380.52 -17.7593 68.2524 +-379.545 -16.8525 64.7674 +-379.227 -15.9804 61.4158 +-378.778 -15.1071 58.0593 +-379.485 -14.2816 54.8869 +-379.669 -13.4367 51.6395 +-379.525 -12.5821 48.3553 +-379.153 -11.7231 45.0539 +-3255.24 -93.3955 358.936 +-3258.35 -86.2387 331.431 +-3261.22 -79.075 303.9 +-3263.83 -71.9056 276.346 +-3266.2 -64.7308 248.772 +-3268.32 -57.5508 221.178 +-3270.19 -50.3665 193.568 +-3271.81 -43.1784 165.942 +-3273.18 -35.987 138.305 +-3274.3 -28.7929 110.656 +-3275.18 -21.5966 82.9998 +-3275.8 -14.3987 55.3367 +-142.295 -0.312703 1.20177 +95.4 0 0 +95.3964 -0.202361 0.807542 +95.5854 -0.405556 1.61841 +95.3673 -0.607022 2.42238 +95.3419 -0.809291 3.22955 +95.3092 -1.0115 4.03648 +95.469 -1.21617 4.85326 +96.1204 -1.42902 5.70265 +96.0654 -1.63286 6.51608 +96.3022 -1.84229 7.35184 +96.2324 -2.04649 8.16673 +95.8567 -2.24355 8.95312 +95.9714 -2.45188 9.78447 +95.8797 -2.65536 10.5965 +95.7807 -2.85864 11.4077 +95.6744 -3.0617 12.218 +95.5609 -3.26452 13.0274 +95.2422 -3.45991 13.8071 +95.1144 -3.6618 14.6128 +95.7683 -3.89552 15.5454 +95.6248 -4.09851 16.3555 +95.1791 -4.28791 17.1113 +95.0215 -4.48964 17.9163 +94.8567 -4.69102 18.72 +95.7607 -4.94766 19.7441 +95.677 -5.15585 20.5749 +95.4883 -5.3586 21.384 +95.2923 -5.56093 22.1915 +95.089 -5.76285 22.9972 +95.653 -6.01303 23.9956 +95.4335 -6.2157 24.8044 +95.2067 -6.41791 25.6113 +95.6455 -6.6665 26.6033 +95.5943 -6.88294 27.467 +95.3436 -7.08546 28.2752 +95.9439 -7.35321 29.3437 +95.6763 -7.55644 30.1547 +96.2549 -7.82852 31.2405 +95.781 -8.01658 31.991 +95.3953 -8.21133 32.7681 +95.9426 -8.48819 33.873 +96.3836 -8.75946 34.9555 +96.0654 -8.9636 35.7701 +95.74 -9.16702 36.5819 +96.4271 -9.46992 37.7906 +96.0835 -9.6741 38.6054 +96.653 -9.97252 39.7963 +96.383 -10.1868 40.6516 +96.0136 -10.3909 41.4659 +95.8189 -10.6143 42.3575 +96.2499 -10.9096 43.536 +96.4864 -11.1866 44.6413 +96.2608 -11.4122 45.5414 +96.4739 -11.6918 46.6575 +96.0505 -11.8961 47.4724 +96.3294 -12.1891 48.6419 +95.8881 -12.393 49.4555 +96.1426 -12.6887 50.6356 +95.5959 -12.8804 51.4004 +95.2169 -13.0946 52.2554 +95.436 -13.3933 53.4474 +95.6408 -13.694 54.6471 +96.0027 -14.0215 55.9542 +95.2399 -14.1865 56.6127 +95.4902 -14.5039 57.8793 +94.9659 -14.7059 58.6854 +95.1891 -15.0259 59.9625 +95.3131 -15.3346 61.1943 +95.5051 -15.6585 62.4869 +95.5986 -15.9707 63.7325 +95.677 -16.2844 64.9844 +95.74 -16.5996 66.2425 +95.1404 -16.8021 67.0503 +95.3374 -17.1478 68.4302 +95.3571 -17.4664 69.7016 +95.2024 -17.7568 70.8604 +95.3493 -18.1077 72.2607 +95.3217 -18.4304 73.5482 +94.6564 -18.6319 74.3523 +94.524 -18.9402 75.5826 +95.2193 -19.4212 77.5022 +94.5945 -19.6382 78.3682 +95.2443 -20.1252 80.3114 +95.1174 -20.4553 81.6288 +95.0482 -20.8026 83.015 +94.8876 -21.1349 84.3407 +94.8566 -21.5011 85.8022 +94.7339 -21.8521 87.2028 +94.5212 -22.1873 88.5405 +94.4344 -22.5573 90.0171 +94.9644 -23.0833 92.1162 +94.6928 -23.4226 93.4701 +95.0987 -23.9373 95.5241 +94.2357 -24.1381 96.3255 +94.5932 -24.6571 98.3966 +94.3124 -25.0181 99.8371 +94.5482 -25.5242 101.857 +94.1583 -25.8696 103.235 +94.4069 -26.3985 105.346 +93.8452 -26.7087 106.584 +93.397 -27.0555 107.968 +93.6307 -27.609 110.176 +93.6429 -28.1088 112.171 +93.7507 -28.6489 114.326 +93.8268 -29.1914 116.491 +93.2014 -29.5242 117.819 +93.4017 -30.1284 120.231 +93.3872 -30.6773 122.421 +92.2823 -30.8742 123.207 +100.055 -34.0964 136.065 +115.805 -40.2012 160.427 +115.66 -40.9061 163.24 +115.697 -41.6939 166.384 +115.796 -42.5254 169.702 +115.246 -43.1365 172.141 +115.788 -44.1788 176.3 +115.045 -44.7525 178.589 +115.159 -45.6788 182.286 +115.935 -46.9005 187.161 +115.973 -47.8568 190.977 +113.5 -47.7853 190.692 +114.242 -49.0821 195.867 +110.052 -48.2595 192.584 +111.035 -49.7087 198.368 +106.429 -48.6545 194.161 +106.572 -49.7625 198.582 +101.966 -48.6438 194.118 +101.822 -49.6414 198.099 +97.7568 -48.7194 194.42 +97.5538 -49.7148 198.392 +92.6379 -48.2897 192.705 +92.1034 -49.1256 196.041 +88.2212 -48.1645 192.205 +88.2033 -49.3084 196.77 +84.0853 -48.1511 192.152 +84.3817 -49.5177 197.605 +80.2782 -48.2977 192.737 +80.3004 -49.5515 197.74 +76.8699 -48.6762 194.247 +77.606 -50.454 201.342 +73.7737 -49.269 196.613 +74.5391 -51.165 204.179 +69.7041 -49.2068 196.365 +68.4426 -49.7214 198.418 +65.6043 -49.0787 195.853 +66.3958 -51.1866 204.265 +62.5675 -49.7447 198.511 +62.6538 -51.4139 205.172 +57.1121 -48.4136 193.199 +56.2804 -49.3295 196.854 +52.6956 -47.8033 190.764 +52.1542 -49.0194 195.617 +49.0376 -47.8074 190.78 +48.3932 -48.9968 195.526 +45.2602 -47.6528 190.163 +44.5649 -48.8624 194.99 +41.6655 -47.6475 190.142 +40.9502 -48.9251 195.24 +38.7915 -48.5089 193.58 +37.5041 -49.1869 196.285 +35.0943 -48.3789 193.061 +33.8678 -49.1946 196.316 +31.3495 -48.1122 191.997 +30.1827 -49.0904 195.9 +27.932 -48.3101 192.786 +26.6665 -49.235 196.477 +24.447 -48.3971 193.133 +23.1501 -49.3888 197.091 +20.9475 -48.445 193.325 +19.495 -49.2136 196.392 +17.4399 -48.454 193.36 +15.9978 -49.4098 197.174 +13.9164 -48.375 193.045 +12.4478 -49.4703 197.416 +10.4724 -48.5724 193.833 +8.87218 -49.394 197.111 +7.00433 -48.7552 194.562 +5.3558 -49.7158 198.396 +3.47652 -48.4129 193.196 +1.78545 -49.7309 198.456 +1.22889e-14 -48.7848 194.681 +-1.78021 -49.585 197.874 +-3.48525 -48.5344 193.681 +-5.34795 -49.6429 198.105 +-7.00433 -48.7552 194.562 +-8.89836 -49.5398 197.693 +-10.5143 -48.7666 194.608 +-12.4844 -49.6159 197.997 +-13.9722 -48.569 193.819 +-16.0527 -49.5794 197.852 +-17.5445 -48.7445 194.52 +-19.7059 -49.7457 198.515 +-21.0416 -48.6625 194.193 +-23.3425 -49.7996 198.73 +-24.6664 -48.8312 194.866 +-27.045 -49.9338 199.266 +-28.1826 -48.7432 194.515 +-30.5818 -49.7394 198.49 +-31.6623 -48.5923 193.912 +-34.2474 -49.7459 198.516 +-35.2679 -48.6181 194.015 +-37.9961 -49.8322 198.86 +-38.8487 -48.5804 193.865 +-41.648 -49.7586 198.566 +-42.6427 -48.7649 194.601 +-45.5389 -49.9304 199.252 +-46.4299 -48.8845 195.078 +-49.327 -49.9423 199.3 +-50.223 -48.963 195.392 +-53.1306 -49.9372 199.279 +-54.1449 -49.1183 196.011 +-57.2692 -50.1961 200.312 +-57.8838 -49.068 195.811 +-61.0633 -50.1086 199.963 +-61.8659 -49.1869 196.285 +-65.614 -50.5838 201.86 +-66.315 -49.6105 197.976 +-70.8859 -51.4965 205.502 +-72.3087 -51.0454 203.702 +-75.7742 -52.0128 207.562 +-77.2281 -51.576 205.819 +-80.5477 -52.3665 208.974 +-80.9195 -51.2403 204.48 +-84.7351 -52.2882 208.661 +-85.4852 -51.4302 205.237 +-88.2851 -51.8084 206.747 +-88.9695 -50.9479 203.313 +-91.5927 -51.2031 204.331 +-92.0852 -50.2741 200.624 +-97.1212 -51.8021 206.721 +-97.8361 -50.9992 203.517 +-101.988 -51.9744 207.409 +-102.535 -51.1008 203.923 +-106.552 -51.9472 207.3 +-107.369 -51.2211 204.403 +-112.436 -52.5007 209.509 +-112.767 -51.552 205.723 +-115.472 -51.6954 206.295 +-108.161 -47.4304 189.276 +-110.401 -47.4319 189.282 +-110.1 -46.3538 184.98 +-110.542 -45.6159 182.035 +-111.145 -44.963 179.429 +-112.285 -44.5388 177.736 +-114.039 -44.3609 177.026 +-115.788 -44.1788 176.3 +-117.206 -43.8704 175.069 +-119.55 -43.9039 175.203 +-122.799 -44.2532 176.597 +-125.516 -44.3915 177.149 +-141.329 -49.0617 195.785 +-141.285 -48.1465 192.133 +-141.539 -47.3534 188.968 +-141.925 -46.6215 186.048 +-142.028 -45.814 182.825 +-142.876 -45.2602 180.615 +-142.71 -44.4 177.183 +-142.618 -43.5821 173.919 +-142.478 -42.7678 170.669 +-141.909 -41.8448 166.986 +-141.735 -41.0582 163.847 +-142.099 -40.4418 161.387 +-142.365 -39.8086 158.86 +-157.704 -43.3281 172.905 +-157.915 -42.6307 170.122 +-206.325 -54.7314 218.411 +-212.17 -55.305 220.7 +-221.65 -56.7749 226.566 +-225.278 -56.7046 226.285 +-232.982 -57.6288 229.973 +-233.133 -56.6684 226.141 +-241.079 -57.5858 229.802 +-241.914 -56.7853 226.607 +-248.513 -57.324 228.757 +-248.807 -56.3969 225.057 +-259.595 -57.8211 230.741 +-261.215 -57.1706 228.145 +-270.298 -58.1285 231.968 +-270.714 -57.202 228.27 +-280.666 -58.2673 232.522 +-281.138 -57.3417 228.828 +-290.902 -58.2892 232.609 +-290.963 -57.2724 228.551 +-299.348 -57.8787 230.971 +-300.784 -57.1217 227.95 +-140.662 -26.2356 104.696 +-142.237 -26.0533 103.968 +-141.72 -25.4904 101.722 +-142.468 -25.1603 100.405 +-141.086 -24.4619 97.6177 +-141.058 -24.0083 95.8076 +-143.728 -24.0111 95.8185 +-147.237 -24.1403 96.3341 +-362.49 -58.3198 232.731 +-364.486 -57.5354 229.601 +-378.008 -58.5364 233.595 +-375.092 -56.9722 227.353 +-394.09 -58.702 234.256 +-392.668 -57.3505 228.863 +-407.378 -58.3288 232.767 +-409.284 -57.4382 229.213 +-423.776 -58.2795 232.57 +-420.342 -56.6361 226.012 +-424.644 -56.0437 223.648 +-437.765 -56.5787 225.783 +-471.446 -59.6548 238.058 +-470.095 -58.2221 232.341 +-492.035 -59.6307 237.962 +-453.891 -53.8108 214.737 +-405.08 -46.9649 187.418 +-405.029 -45.9088 183.203 +-404.478 -44.8059 178.803 +-405.249 -43.8572 175.017 +-404.057 -42.7053 170.42 +-402.537 -41.5332 165.742 +-400.687 -40.3429 160.992 +-403.047 -39.5823 157.957 +-402.313 -38.521 153.722 +-402.933 -37.5966 150.033 +-403.518 -36.6722 146.344 +-402.376 -35.5988 142.061 +-402.791 -34.671 138.358 +-404.587 -33.8628 135.133 +-404.081 -32.8645 131.149 +-403.533 -31.8708 127.184 +-388.163 -29.749 118.716 +-379.27 -28.1856 112.477 +-379.309 -27.3107 108.986 +-379.122 -26.4247 105.451 +-379.189 -25.5611 102.004 +-379.802 -24.7371 98.7158 +-379.32 -23.8452 95.1567 +-379.968 -23.0279 91.8953 +-379.419 -22.1416 88.3584 +-380.199 -21.336 85.1433 +-378.022 -20.3709 81.2919 +-379.032 -19.5834 78.1495 +-380.211 -18.8029 75.0348 +-378.025 -17.8611 71.2767 +-378.946 -17.0719 68.1271 +-378.56 -16.2252 64.7484 +-381.397 -15.5139 61.9097 +-379.075 -14.594 58.2388 +-377.211 -13.7031 54.6837 +-379.57 -12.9667 51.7451 +-379.129 -12.1326 48.4162 +-380.145 -11.3457 45.2761 +-3255.24 -90.153 359.764 +-3258.35 -83.2446 332.196 +-3261.22 -76.3296 304.601 +-3263.83 -69.4091 276.984 +-3266.2 -62.4834 249.346 +-3268.32 -55.5527 221.689 +-3270.19 -48.6178 194.014 +-3271.81 -41.6793 166.325 +-3273.18 -34.7376 138.624 +-3274.3 -27.7932 110.912 +-3275.18 -20.8468 83.1913 +-3275.8 -13.8988 55.4644 +-143.495 -0.304391 1.2147 +95.4 0 0 +95.3964 -0.195066 0.809335 +95.5854 -0.390936 1.622 +95.3673 -0.58514 2.42776 +95.3419 -0.780117 3.23673 +96.2083 -0.984234 4.08361 +95.469 -1.17233 4.86404 +96.1204 -1.37751 5.71531 +95.3671 -1.56255 6.48307 +95.405 -1.75933 7.29952 +96.1328 -1.97068 8.1764 +96.0557 -2.16717 8.99164 +96.8664 -2.38554 9.89768 +95.8797 -2.55963 10.62 +95.7807 -2.75559 11.433 +95.6744 -2.95133 12.2452 +95.5609 -3.14684 13.0563 +95.2422 -3.33518 13.8378 +96.0033 -3.56279 14.7821 +94.8807 -3.72029 15.4356 +95.5264 -3.94671 16.375 +95.1791 -4.13334 17.1493 +95.2178 -4.33674 17.9933 +95.1507 -4.53593 18.8197 +94.8803 -4.72544 19.606 +95.5794 -4.96491 20.5995 +95.4883 -5.16543 21.4315 +95.195 -5.35501 22.2181 +95.089 -5.55511 23.0483 +95.4594 -5.78455 24.0002 +95.4335 -5.99163 24.8594 +96.074 -6.24291 25.902 +95.8378 -6.43909 26.716 +95.5943 -6.63481 27.528 +96.2043 -6.89169 28.5938 +95.9439 -7.08814 29.4089 +95.4861 -7.26956 30.1616 +96.0652 -7.53145 31.2482 +95.781 -7.72759 32.062 +95.3953 -7.91532 32.8409 +95.9426 -8.1822 33.9482 +95.5406 -8.36986 34.7268 +96.1588 -8.64886 35.8843 +95.74 -8.83656 36.6631 +96.3344 -9.11975 37.8381 +96.0835 -9.32536 38.6912 +96.653 -9.61302 39.8847 +96.383 -9.81961 40.7418 +96.0136 -10.0163 41.558 +95.8189 -10.2317 42.4516 +95.4342 -10.4272 43.2629 +95.8546 -10.7128 44.4475 +96.0811 -10.9802 45.5573 +95.6685 -11.1763 46.3707 +96.0505 -11.4672 47.5778 +96.3294 -11.7497 48.7499 +95.8881 -11.9462 49.5653 +96.1426 -12.2313 50.748 +95.5959 -12.4161 51.5146 +95.2169 -12.6226 52.3714 +95.436 -12.9105 53.5661 +95.6408 -13.2003 54.7685 +95.1456 -13.3954 55.5777 +95.3252 -13.6873 56.7891 +95.575 -13.9935 58.0593 +95.7249 -14.2891 59.2858 +95.1052 -14.4715 60.0428 +95.3131 -14.7818 61.3302 +95.5051 -15.0941 62.6257 +95.5986 -15.3949 63.874 +95.0216 -15.5898 64.6827 +95.8214 -16.0148 66.446 +94.9786 -16.1689 67.085 +95.257 -16.5157 68.5243 +95.3571 -16.8368 69.8563 +95.2817 -17.131 71.0769 +95.5069 -17.4838 72.541 +95.2434 -17.7514 73.651 +94.5787 -17.9455 74.4562 +94.6012 -18.2723 75.8123 +94.6065 -18.6006 77.1744 +95.2789 -19.0672 79.1104 +95.1689 -19.3843 80.426 +95.0425 -19.7024 81.7457 +95.0482 -20.0527 83.1994 +94.8876 -20.373 84.528 +94.8566 -20.726 85.9928 +94.7339 -21.0643 87.3965 +94.5212 -21.3874 88.7371 +95.1476 -21.9084 90.8984 +94.2573 -22.0855 91.6333 +94.6928 -22.5782 93.6776 +94.4735 -22.9227 95.1068 +94.2357 -23.268 96.5394 +94.6614 -23.7854 98.6861 +94.3124 -24.1162 100.059 +94.0129 -24.4649 101.505 +94.2908 -24.9719 103.609 +93.9477 -25.3229 105.065 +93.8452 -25.7458 106.82 +93.9755 -26.2419 108.878 +93.4399 -26.5596 110.196 +93.7687 -27.132 112.571 +93.813 -27.6344 114.656 +93.7037 -28.1021 116.596 +93.2014 -28.4599 118.081 +93.3415 -29.0236 120.42 +93.4467 -29.5902 122.77 +92.2823 -29.7612 123.48 +101.739 -33.4205 138.662 +115.748 -38.7327 160.703 +115.66 -39.4315 163.602 +115.361 -40.0742 166.269 +115.686 -40.9533 169.916 +115.518 -41.6797 172.93 +115.627 -42.5269 176.445 +115.522 -43.318 179.727 +115.159 -44.0322 182.691 +115.369 -44.9888 186.66 +115.465 -45.9298 190.564 +115.5 -46.8743 194.483 +115.67 -47.9041 198.756 +113.688 -48.0567 199.388 +111.464 -48.1021 199.577 +108.824 -47.9557 198.969 +107.033 -48.1764 199.885 +104.191 -47.9133 198.793 +102.402 -48.1244 199.669 +99.8609 -47.974 199.045 +97.8982 -48.0918 199.534 +95.5117 -47.9929 199.124 +93.8036 -48.2289 200.103 +90.7836 -47.7767 198.227 +90.5958 -48.8201 202.556 +87.7582 -48.4426 200.99 +87.3666 -49.4213 205.05 +83.837 -48.6204 201.727 +83.4523 -49.6401 205.958 +80.3819 -49.0651 203.573 +79.7072 -49.952 207.252 +77.1939 -49.6947 206.185 +76.8757 -50.8665 211.047 +73.8063 -50.2243 208.382 +73.2656 -51.3066 212.872 +67.6747 -48.8025 202.483 +67.328 -50.034 207.593 +65.7252 -50.3714 208.992 +64.9543 -51.3801 213.178 +61.8806 -50.565 209.795 +60.7433 -51.3218 212.936 +55.3355 -48.3887 200.766 +54.2073 -49.1125 203.769 +51.36 -48.2666 200.259 +50.2841 -49.0759 203.617 +47.4197 -48.1267 199.679 +46.3397 -48.9768 203.206 +43.7446 -48.2216 200.073 +42.6847 -49.1589 203.961 +40.0126 -48.2322 200.117 +39.1077 -49.4412 205.133 +36.3446 -48.2961 200.382 +35.1551 -49.2238 204.231 +32.7417 -48.4374 200.968 +31.4391 -49.2906 204.508 +29.0315 -48.4016 200.819 +27.7238 -49.3419 204.721 +25.4707 -48.6059 201.667 +24.0444 -49.4478 205.16 +21.8151 -48.6328 201.779 +20.2714 -49.3285 204.665 +18.111 -48.5044 201.246 +16.5706 -49.3339 204.688 +14.4605 -48.4543 201.038 +13.0094 -49.8386 206.782 +10.844 -48.4827 201.156 +9.23859 -49.5797 205.707 +7.24863 -48.6366 201.795 +5.54166 -49.5865 205.736 +3.6301 -48.7291 202.179 +1.85352 -49.7657 206.479 +1.27788e-14 -48.9007 202.89 +-1.84566 -49.5549 205.604 +-3.64581 -48.94 203.053 +-5.55213 -49.6802 206.125 +-7.2905 -48.9178 202.961 +-9.30402 -49.9309 207.165 +-10.9487 -48.9506 203.097 +-13.0033 -49.8152 206.685 +-14.6 -48.9217 202.978 +-16.8059 -50.0347 207.595 +-18.2853 -48.9714 203.184 +-20.5589 -50.0282 207.568 +-21.8778 -48.7725 202.358 +-24.4066 -50.1927 208.251 +-25.5804 -48.8151 202.535 +-28.1414 -50.0853 207.805 +-29.3377 -48.9121 202.938 +-31.8677 -49.9626 207.296 +-33.039 -48.8772 202.793 +-35.6338 -49.8939 207.011 +-36.796 -48.8962 202.872 +-39.7091 -50.2013 208.287 +-40.6805 -49.0373 203.457 +-43.7015 -50.3297 208.819 +-44.4099 -48.955 203.116 +-47.5734 -50.2808 208.616 +-48.3645 -49.0858 203.658 +-51.5447 -50.3063 208.722 +-52.3761 -49.2214 204.221 +-55.5092 -50.292 208.663 +-56.3708 -49.2941 204.522 +-59.7278 -50.4637 209.375 +-60.1992 -49.1912 204.096 +-64.3011 -50.8635 211.034 +-65.0819 -49.8784 206.947 +-68.8015 -51.129 212.135 +-69.8069 -50.3403 208.863 +-73.6147 -51.551 213.886 +-74.6528 -50.8002 210.771 +-78.3779 -51.8605 215.171 +-79.3829 -51.1039 212.031 +-82.4388 -51.6639 214.355 +-83.0697 -50.7058 210.38 +-87.0074 -51.7548 214.732 +-87.583 -50.793 210.741 +-91.1935 -51.5859 214.031 +-91.6264 -50.5779 209.849 +-95.8194 -51.6351 214.235 +-96.4779 -50.7735 210.661 +-100.397 -51.6191 214.169 +-101.259 -50.8808 211.106 +-104.873 -51.5179 213.749 +-106.13 -50.9856 211.54 +-110.032 -51.7103 214.547 +-111.046 -51.0657 211.873 +-115.622 -52.0423 215.925 +-116.523 -51.3487 213.047 +-121.294 -52.3439 217.176 +-115.288 -48.7331 202.195 +-115.079 -47.6593 197.74 +-110.3 -44.7639 185.727 +-110.542 -43.9715 182.439 +-111.557 -43.5026 180.493 +-112.128 -42.8735 177.883 +-114.251 -42.8412 177.749 +-115.681 -42.5466 176.527 +-117.206 -42.2889 175.458 +-119.163 -42.1844 175.024 +-122.631 -42.5996 176.747 +-125.686 -42.8494 177.783 +-141.673 -47.4083 196.698 +-142.563 -46.8305 194.301 +-141.833 -45.7412 189.782 +-143.114 -45.3176 188.024 +-142.63 -44.3496 184.008 +-142.45 -43.4986 180.477 +-142.279 -42.6701 177.039 +-141.747 -41.7542 173.239 +-141.408 -40.9165 169.764 +-142.8 -40.5897 168.408 +-142.892 -39.9013 165.551 +-160.349 -43.9904 182.518 +-158.373 -42.6884 177.115 +-191.762 -50.7864 210.714 +-199.468 -51.9071 215.364 +-206.595 -52.8275 219.183 +-217.489 -54.6481 226.736 +-228.74 -56.4787 234.332 +-232.363 -56.3796 233.921 +-243.706 -58.1084 241.093 +-241.76 -56.647 235.03 +-251.635 -57.9406 240.397 +-248.172 -56.1542 232.985 +-258.669 -57.5156 238.634 +-259.119 -56.617 234.905 +-269.033 -57.763 239.66 +-268.424 -56.6306 234.962 +-280.858 -58.2222 241.566 +-281.658 -57.3689 238.025 +-292.832 -58.6016 243.14 +-290.407 -57.0971 236.897 +-301.474 -58.23 241.598 +-300.134 -56.9478 236.278 +-312.652 -58.2719 241.772 +-311.973 -57.1109 236.955 +-140.9 -25.3327 105.106 +-142.237 -25.1141 104.199 +-141.64 -24.5576 101.89 +-142.549 -24.2671 100.685 +-140.923 -23.5529 97.7217 +-141.058 -23.1429 96.0203 +-142.903 -23.0128 95.4807 +-147.237 -23.27 96.548 +-149.432 -23.175 96.1537 +-377.737 -57.4776 238.476 +-397.49 -59.3343 246.18 +-393.494 -57.613 239.038 +-411.91 -59.1445 245.392 +-407.326 -57.3466 237.933 +-425.731 -58.7593 243.794 +-424.179 -57.3827 238.082 +-425.43 -56.3979 233.996 +-428.564 -55.6622 230.944 +-427.984 -54.4482 225.907 +-462.753 -57.6522 239.2 +-491.581 -59.9604 248.777 +-490.321 -58.5381 242.876 +-517.004 -60.3978 250.592 +-402.66 -46.0163 190.923 +-406.344 -45.4132 188.421 +-405.391 -44.2934 183.775 +-405.479 -43.2976 179.643 +-405.614 -42.3144 175.564 +-403.14 -41.0723 170.41 +-402.537 -40.036 166.11 +-404.382 -39.2473 162.838 +-402.491 -38.1029 158.09 +-401.94 -37.0982 153.921 +-401.16 -36.0818 149.704 +-403.425 -35.342 146.635 +-404.068 -34.4599 142.975 +-403.639 -33.4914 138.957 +-402.885 -32.5048 134.863 +-403.701 -31.65 131.317 +-401.916 -30.5989 126.956 +-387.686 -28.6414 118.834 +-379.462 -27.1831 112.783 +-380.172 -26.3862 109.477 +-379.506 -25.4982 105.793 +-379.189 -24.6397 102.231 +-378.063 -23.7362 98.4819 +-376.029 -22.7862 94.5404 +-379.192 -22.1525 91.9112 +-379.03 -21.3216 88.4638 +-379.42 -20.5247 85.1574 +-380.17 -19.7481 81.9353 +-376 -18.7264 77.6964 +-379.329 -18.083 75.0269 +-379.89 -17.3022 71.7874 +-379.93 -16.4992 68.4555 +-379.249 -15.6688 65.0103 +-379.523 -14.8811 61.7423 +-380.655 -14.1266 58.6114 +-380.178 -13.313 55.2362 +-378.579 -12.4667 51.7247 +-379.525 -11.7074 48.5745 +-379.55 -10.9195 45.3055 +-377.955 -10.09 41.8637 +-380.902 -9.38049 38.9199 +-3261.22 -73.578 305.277 +-3263.83 -66.907 277.599 +-3266.2 -60.231 249.9 +-3268.32 -53.5501 222.181 +-3270.19 -46.8652 194.445 +-3271.81 -40.1768 166.695 +-3273.18 -33.4854 138.932 +-3274.3 -26.7913 111.158 +-3275.18 -20.0953 83.376 +-3275.8 -13.3977 55.5875 +-143.695 -0.293826 1.21909 +95.4 0 0 +95.3964 -0.187756 0.811063 +95.5854 -0.376284 1.62546 +95.3673 -0.56321 2.43294 +95.3419 -0.750879 3.24363 +95.509 -0.940459 4.06258 +95.469 -1.12839 4.87442 +96.1204 -1.32588 5.72751 +95.3671 -1.50399 6.49691 +95.405 -1.6934 7.31509 +96.1328 -1.89682 8.19384 +96.0557 -2.08595 9.01083 +95.9714 -2.27491 9.82712 +95.8797 -2.4637 10.6427 +95.88 -2.65507 11.4693 +95.6744 -2.84072 12.2713 +95.5609 -3.0289 13.0842 +96.1323 -3.2402 13.997 +96.0033 -3.42926 14.8137 +95.7683 -3.61435 15.6132 +95.5264 -3.79879 16.4099 +95.3757 -3.98663 17.2214 +95.2178 -4.17421 18.0317 +95.0527 -4.36144 18.8405 +94.8803 -4.54834 19.6478 +94.7007 -4.7349 20.4537 +95.3908 -4.96676 21.4553 +95.195 -5.15431 22.2655 +95.9622 -5.39603 23.3097 +95.7498 -5.58469 24.1246 +95.4335 -5.76708 24.9125 +96.074 -6.00893 25.9573 +95.8378 -6.19777 26.773 +95.4026 -6.37334 27.5314 +95.3436 -6.57406 28.3985 +95.7532 -6.80893 29.4131 +95.4861 -6.99711 30.226 +95.2117 -7.18477 31.0366 +95.781 -7.43798 32.1304 +95.4896 -7.62618 32.9434 +96.6944 -7.93725 34.2872 +95.5406 -8.05617 34.8009 +96.0654 -8.31664 35.926 +95.6469 -8.49711 36.7056 +96.2417 -8.76952 37.8824 +96.0835 -8.97586 38.7737 +96.653 -9.25274 39.9698 +96.2913 -9.44262 40.79 +96.1963 -9.65928 41.726 +95.6369 -9.82953 42.4614 +96.2499 -10.1222 43.7258 +95.674 -10.2918 44.4585 +95.9912 -10.5588 45.6118 +95.6685 -10.7574 46.4696 +96.0505 -11.0374 47.6793 +96.3294 -11.3094 48.854 +95.8881 -11.4985 49.6711 +96.2305 -11.7837 50.9028 +95.5959 -11.9507 51.6245 +95.9132 -12.2384 52.867 +95.5226 -12.4379 53.7291 +95.727 -12.717 54.9348 +95.2313 -12.9049 55.7465 +95.4104 -13.1862 56.9613 +95.575 -13.469 58.1832 +94.9659 -13.6445 58.9412 +95.1891 -13.9414 60.2239 +95.3131 -14.2278 61.4611 +95.5051 -14.5284 62.7593 +95.5162 -14.8052 63.9552 +94.9397 -14.9926 64.7648 +95.0887 -15.2968 66.0787 +95.1404 -15.5894 67.3426 +95.0963 -15.8699 68.5546 +95.1974 -16.1787 69.8882 +95.2817 -16.4889 71.2286 +95.5069 -16.8286 72.6958 +95.2434 -17.0861 73.8081 +95.2781 -17.4006 75.1669 +95.2956 -17.7166 76.5318 +94.6065 -17.9035 77.3391 +95.2028 -18.338 79.216 +95.2443 -18.6726 80.6615 +95.1174 -18.9789 81.9846 +95.0482 -19.3012 83.3769 +94.8876 -19.6094 84.7084 +94.7834 -19.9339 86.1098 +94.7339 -20.2749 87.583 +94.7371 -20.6329 89.1295 +94.363 -20.9134 90.3412 +94.8937 -21.4013 92.4489 +94.062 -21.5873 93.2522 +94.4041 -22.0474 95.2397 +94.7864 -22.5268 97.3107 +94.5932 -22.8775 98.8256 +94.3124 -23.2124 100.272 +93.9459 -23.5313 101.65 +94.2908 -24.036 103.83 +94.4069 -24.4932 105.805 +93.7803 -24.7638 106.974 +93.9755 -25.2584 109.111 +94.076 -25.7381 111.183 +93.7687 -26.1152 112.812 +93.6262 -26.5457 114.672 +93.2111 -26.9068 116.231 +93.2014 -27.3932 118.333 +93.3415 -27.9359 120.677 +92.9113 -28.3179 122.327 +92.2823 -28.6458 123.744 +108.766 -34.3896 148.555 +115.748 -37.2811 161.046 +115.66 -37.9536 163.951 +115.417 -38.591 166.705 +115.576 -39.381 170.117 +115.028 -39.9473 172.564 +115.681 -40.952 176.904 +115.522 -41.6945 180.111 +115.629 -42.5549 183.828 +115.369 -43.3027 187.058 +115.363 -44.1694 190.802 +115.4 -45.0786 194.729 +115.079 -45.8731 198.162 +114.27 -46.4924 200.837 +112.323 -46.6561 201.544 +110.467 -46.8555 202.405 +107.726 -46.671 201.608 +105.326 -46.62 201.388 +102.938 -46.563 201.142 +100.738 -46.5815 201.222 +98.587 -46.6151 201.367 +96.357 -46.6029 201.314 +93.8451 -46.4419 200.619 +91.6378 -46.4189 200.519 +90.8749 -47.1352 203.613 +90.3761 -48.0181 207.428 +90.4664 -49.2567 212.778 +87.0586 -48.5966 209.927 +87.3739 -50.0251 216.097 +83.4281 -49.0161 211.739 +83.4894 -50.3614 217.55 +79.6907 -49.3792 213.307 +79.4794 -50.6185 218.661 +76.6387 -50.1972 216.841 +76.407 -51.501 222.473 +72.001 -49.9764 215.887 +71.1771 -50.9121 219.929 +67.2163 -49.5835 214.19 +67.2832 -51.2276 221.292 +64.5267 -50.7511 219.233 +63.7364 -51.8325 223.905 +58.7002 -49.4071 213.428 +59.5904 -51.9662 224.483 +53.5615 -48.4489 209.288 +53.0154 -49.8025 215.136 +49.7367 -48.5864 209.883 +48.9586 -49.8054 215.148 +45.9069 -48.7087 210.411 +44.9176 -49.7917 215.089 +41.7681 -48.4613 209.342 +40.6567 -49.473 213.712 +38.1852 -48.8404 210.98 +36.9377 -49.7813 215.044 +34.353 -48.9164 211.308 +32.9467 -49.7184 214.772 +30.5485 -49.0219 211.764 +29.0551 -49.7734 215.01 +26.6406 -48.9333 211.381 +25.0972 -49.6784 214.6 +22.7872 -48.8961 211.22 +21.2682 -49.8144 215.187 +18.9128 -48.7536 210.605 +17.4179 -49.9132 215.614 +15.1651 -48.9105 211.283 +13.5711 -50.0416 216.168 +11.3778 -48.9628 211.509 +9.65733 -49.8846 215.49 +7.5697 -48.8875 211.183 +5.81128 -50.0503 216.206 +3.7959 -49.0452 211.864 +1.93293 -49.9529 215.786 +1.3336e-14 -49.1203 212.189 +-1.94514 -50.2687 217.15 +-3.78892 -48.955 211.475 +-5.8584 -50.4561 217.959 +-7.61158 -49.1579 212.351 +-9.72276 -50.2227 216.951 +-11.3935 -49.0305 211.801 +-13.6382 -50.2892 217.238 +-15.2488 -49.1807 212.45 +-17.6062 -50.4527 217.944 +-19.061 -49.1356 212.255 +-21.6228 -50.6451 218.776 +-22.9858 -49.3221 213.061 +-25.6745 -50.8212 219.536 +-26.7259 -49.0898 212.057 +-29.6817 -50.8467 219.646 +-30.6459 -49.1782 212.439 +-33.671 -50.8113 219.494 +-34.5877 -49.2506 212.752 +-37.8784 -51.0492 220.521 +-38.4457 -49.1735 212.419 +-41.6226 -50.6482 218.789 +-42.3596 -49.1476 212.307 +-45.8746 -50.8526 219.672 +-46.3435 -49.1719 212.412 +-50.214 -51.0826 220.666 +-50.4115 -49.2457 212.73 +-54.4395 -51.1403 220.915 +-54.6502 -49.4338 213.543 +-58.8393 -51.3113 221.653 +-58.8555 -49.5379 213.993 +-63.7364 -51.8325 223.905 +-63.3966 -49.8623 215.394 +-67.5388 -51.4222 222.133 +-67.801 -50.0149 216.053 +-73.6729 -52.6974 227.641 +-73.4224 -50.9631 220.149 +-79.9608 -53.8965 232.821 +-79.4061 -52.0097 224.671 +-84.1193 -53.5736 231.426 +-83.4187 -51.6893 223.286 +-87.6919 -52.8963 228.5 +-87.7285 -51.5424 222.652 +-91.7719 -52.5431 226.975 +-91.7037 -51.1895 221.127 +-96.1301 -52.3406 226.1 +-95.9636 -50.9867 220.251 +-101.242 -52.5127 226.843 +-101.155 -51.24 221.346 +-106.535 -52.7217 227.746 +-105.612 -51.0792 220.651 +-111.287 -52.62 227.307 +-110.908 -51.2842 221.536 +-117.038 -52.941 228.693 +-116.085 -51.3823 221.96 +-123.102 -53.3325 230.385 +-121.828 -51.6744 223.222 +-129.787 -53.9101 232.88 +-125.663 -51.1277 220.86 +-118.428 -47.208 203.928 +-110.15 -43.0276 185.87 +-109.984 -42.1097 181.905 +-111.094 -41.6983 180.128 +-112.912 -41.5551 179.509 +-114.092 -41.1783 177.881 +-116.325 -41.1803 177.89 +-117.37 -40.7608 176.078 +-119.55 -40.7351 175.967 +-121.457 -40.6104 175.428 +-124.666 -40.9087 176.717 +-142.075 -45.7608 197.676 +-142.911 -45.1857 195.192 +-142.891 -44.3553 191.605 +-142.341 -43.3835 187.407 +-142.57 -42.6695 184.323 +-141.781 -41.6715 180.012 +-142.095 -41.0177 177.187 +-149.03 -42.2543 182.529 +-144.366 -40.2067 173.684 +-163.854 -44.8284 193.649 +-160.633 -43.1742 186.503 +-176 -46.4748 200.761 +-210.464 -54.6031 235.873 +-163.601 -41.7042 180.153 +-197.862 -49.5596 214.087 +-233.214 -57.399 247.951 +-219.331 -53.0452 229.143 +-244.228 -58.0429 250.732 +-240.908 -56.2621 243.04 +-253.869 -58.263 251.683 +-254.558 -57.4103 248 +-268.04 -59.4048 256.616 +-265.005 -57.7156 249.319 +-275.642 -58.9928 254.836 +-270.016 -56.7869 245.307 +-284.737 -58.8435 254.191 +-280.389 -56.9378 245.959 +-295.688 -58.9989 254.862 +-293.884 -57.6157 248.887 +-304.543 -58.6611 253.403 +-302.664 -57.2765 247.422 +-318.064 -59.1317 255.436 +-315.988 -57.7089 249.29 +-333.078 -59.7522 258.116 +-329.861 -58.1225 251.076 +-140.503 -24.3148 105.034 +-142.237 -24.1729 104.422 +-141.559 -23.6237 102.049 +-142.63 -23.3709 100.957 +-140.923 -22.6702 97.9302 +-140.648 -22.2108 95.9458 +-142.656 -22.112 95.5189 +-145.994 -22.2087 95.9369 +-147.765 -22.0575 95.2834 +-396.691 -58.0995 250.977 +-415.961 -59.7643 258.169 +-411.897 -58.0472 250.751 +-430.413 -59.4849 256.962 +-427.212 -57.8922 250.082 +-429.091 -57.0034 246.242 +-426.344 -55.514 239.808 +-378.953 -48.3537 208.877 +-428.476 -53.565 231.389 +-378.946 -46.4029 200.45 +-379.491 -45.5071 196.58 +-379.197 -44.519 192.312 +-516.606 -59.3647 256.442 +-550.206 -61.8676 267.254 +-544.489 -59.8927 258.723 +-406.615 -43.7403 188.948 +-405.391 -42.6334 184.167 +-404.114 -41.5346 179.42 +-403.33 -40.4992 174.948 +-403.415 -39.5601 170.891 +-403.733 -38.6501 166.96 +-403.089 -37.6555 162.663 +-404.252 -36.8352 159.12 +-401.661 -35.683 154.143 +-403.96 -34.9719 151.071 +-403.612 -34.0333 147.016 +-403.316 -33.1066 143.013 +-404.487 -32.3041 139.547 +-404.115 -31.3819 135.563 +-402.848 -30.3993 131.318 +-404.675 -29.6542 128.099 +-389.784 -27.7171 119.732 +-381.087 -26.2764 113.508 +-376.912 -25.1794 108.77 +-376.911 -24.3745 105.293 +-379.092 -23.7103 102.423 +-380.285 -22.9808 99.2718 +-379.804 -22.1524 95.6935 +-379.095 -21.3168 92.0838 +-379.127 -20.5277 88.6753 +-379.322 -19.7504 85.3172 +-380.17 -19.008 82.1102 +-376.685 -18.0574 78.004 +-376.193 -17.2614 74.5655 +-377.337 -16.5419 71.4573 +-380.323 -15.8973 68.6727 +-381.416 -15.1677 65.5212 +-379.03 -14.3048 61.7937 +-378.68 -13.5266 58.4318 +-379.881 -12.8041 55.3109 +-378.48 -11.9964 51.8216 +-379.029 -11.254 48.6146 +-378.16 -10.4718 45.2359 +-380.439 -9.77568 42.2288 +-377.918 -8.9582 38.6974 +-3261.22 -70.8205 305.929 +-3263.83 -64.3994 278.191 +-3266.2 -57.9736 250.433 +-3268.32 -51.5431 222.655 +-3270.19 -45.1088 194.86 +-3271.81 -38.671 167.05 +-3273.18 -32.2304 139.228 +-3274.3 -25.7872 111.395 +-3275.18 -19.3422 83.5539 +-3275.8 -12.8956 55.7062 +-143.695 -0.282814 1.22169 +95.4 0 0 +95.3964 -0.18043 0.812724 +95.3855 -0.360846 1.62539 +95.3673 -0.541234 2.43792 +95.5418 -0.723093 3.25709 +95.509 -0.903763 4.0709 +95.469 -1.08437 4.8844 +95.2221 -1.26224 5.6856 +96.2649 -1.45891 6.5715 +95.3053 -1.62562 7.32241 +96.1328 -1.82281 8.21063 +95.8567 -2.0004 9.01057 +95.9714 -2.18615 9.84725 +95.8797 -2.36757 10.6645 +95.88 -2.55147 11.4928 +95.6744 -2.72988 12.2964 +94.7687 -2.8866 13.0023 +95.2422 -3.08492 13.8957 +96.0033 -3.29546 14.844 +95.6697 -3.46975 15.6291 +95.6248 -3.65432 16.4604 +95.4741 -3.83505 17.2745 +95.2178 -4.01133 18.0686 +95.0527 -4.19126 18.8791 +95.565 -4.40242 19.8302 +95.5794 -4.59236 20.6858 +95.4883 -4.77784 21.5212 +95.195 -4.9532 22.3111 +95.9622 -5.18549 23.3574 +95.653 -5.36134 24.1495 +95.5301 -5.54766 24.9888 +95.014 -5.71075 25.7234 +95.8378 -5.95594 26.8278 +95.5943 -6.13697 27.6433 +95.1523 -6.30487 28.3996 +95.7532 -6.54325 29.4733 +95.6763 -6.73748 30.3482 +95.4014 -6.91817 31.1621 +95.781 -7.14775 32.1962 +95.3953 -7.3214 32.9784 +95.9426 -7.56825 34.0903 +96.3836 -7.81012 35.1798 +96.0654 -7.99213 35.9996 +95.74 -8.17351 36.8166 +96.3344 -8.43545 37.9965 +96.0835 -8.62563 38.8531 +95.8246 -8.81549 39.7083 +96.2913 -9.07417 40.8736 +96.0136 -9.26474 41.732 +95.6369 -9.44599 42.5484 +95.4342 -9.64482 43.444 +95.674 -9.89027 44.5496 +96.0811 -10.1563 45.7481 +95.6685 -10.3377 46.5648 +95.4268 -10.5379 47.4667 +95.6198 -10.788 48.5934 +95.9764 -11.06 49.8187 +95.4395 -11.2308 50.5877 +95.5959 -11.4844 51.7302 +95.9132 -11.7608 52.9753 +95.436 -11.9418 53.7904 +95.727 -12.2208 55.0473 +96.0027 -12.5019 56.3132 +95.4104 -12.6716 57.0779 +95.4054 -12.9205 58.1989 +95.6406 -13.2053 59.4816 +95.1891 -13.3974 60.3472 +95.3131 -13.6727 61.5869 +95.4222 -13.9494 62.8333 +95.5162 -14.2275 64.0862 +95.677 -14.5195 65.4014 +95.1701 -14.7125 66.2707 +95.1404 -14.9811 67.4806 +95.0963 -15.2507 68.695 +95.3571 -15.5735 70.1488 +95.2817 -15.8456 71.3745 +95.3493 -16.1452 72.7244 +95.2434 -16.4194 73.9593 +95.2781 -16.7217 75.3209 +95.2956 -17.0253 76.6886 +94.6065 -17.2049 77.4975 +94.5185 -17.4958 78.8077 +95.1689 -17.9298 80.7627 +95.1174 -18.2384 82.1525 +94.9739 -18.5336 83.4824 +94.9613 -18.8589 84.9478 +94.7834 -19.1561 86.2862 +94.7339 -19.4838 87.7624 +94.5212 -19.7826 89.1086 +94.4344 -20.1126 90.5947 +94.328 -20.4436 92.086 +94.6228 -20.8686 94.0002 +94.4735 -21.2027 95.5049 +94.8553 -21.6635 97.5808 +94.5932 -21.9848 99.028 +94.3124 -22.3066 100.478 +93.9459 -22.6131 101.858 +94.2908 -23.0981 104.043 +93.8164 -23.3901 105.358 +93.8452 -23.814 107.267 +93.397 -24.1233 108.66 +93.5671 -24.6001 110.808 +93.7687 -25.0962 113.043 +93.6885 -25.527 114.984 +93.2727 -25.874 116.546 +93.4449 -26.3933 118.886 +93.2813 -26.8287 120.847 +93.4467 -27.3699 123.284 +92.2823 -27.5281 123.997 +114.631 -34.8297 156.886 +115.69 -35.8087 161.296 +115.83 -36.5263 164.528 +115.809 -37.2111 167.613 +115.465 -37.8082 170.303 +115.627 -38.5886 173.818 +115.788 -39.3908 177.431 +115.469 -40.0494 180.398 +115.211 -40.7466 183.538 +115.369 -41.6131 187.441 +115.566 -42.5208 191.53 +115.35 -43.3008 195.043 +115.67 -44.3097 199.588 +114.609 -44.8109 201.846 +112.323 -44.8357 201.957 +110.044 -44.8549 202.044 +107.449 -44.7344 201.501 +105.099 -44.7043 201.365 +102.982 -44.7656 201.642 +100.782 -44.7834 201.722 +98.2426 -44.6397 201.074 +96.0189 -44.6274 201.019 +93.928 -44.6692 201.207 +91.8818 -44.7264 201.465 +90.9547 -45.3356 204.209 +90.6105 -46.2641 208.391 +90.5046 -47.3549 213.305 +90.6173 -48.6093 218.955 +90.5258 -49.8072 224.351 +87.9077 -49.6325 223.564 +87.6569 -50.812 228.877 +84.1712 -50.1204 225.761 +83.7855 -51.2788 230.979 +80.7735 -50.841 229.007 +79.929 -51.7729 233.205 +77.347 -51.5922 232.391 +76.6499 -52.6873 237.324 +73.0637 -51.7942 233.301 +72.1967 -52.8239 237.939 +67.8895 -51.3126 231.132 +67.3441 -52.6295 237.063 +64.4459 -52.1269 234.799 +64.0973 -53.7155 241.955 +57.0694 -49.6078 223.453 +56.1436 -50.6832 228.297 +52.3236 -49.1191 221.251 +51.8156 -50.6551 228.17 +48.2979 -49.2461 221.823 +47.5493 -50.6522 228.157 +44.1341 -49.2084 221.653 +43.2809 -50.6113 227.973 +39.9044 -49.0478 220.93 +39.1658 -50.7246 228.483 +36.152 -49.4695 222.83 +34.9569 -50.6934 228.343 +31.9959 -49.3412 222.252 +30.8694 -50.818 228.904 +28.0421 -49.4977 222.957 +26.7726 -50.927 229.395 +23.9997 -49.4884 222.915 +22.6196 -50.9127 229.331 +19.9325 -49.3774 222.415 +18.4536 -50.8176 228.902 +15.9742 -49.5101 223.012 +14.383 -50.9663 229.572 +12.0425 -49.8011 224.323 +10.2811 -51.0345 229.879 +8.02339 -49.7957 224.299 +6.16991 -51.0655 230.019 +4.00009 -49.6668 223.718 +2.05684 -51.0811 230.089 +1.40524e-14 -49.7394 224.045 +-2.05597 -51.0595 229.991 +-4.00533 -49.7318 224.011 +-6.1987 -51.3039 231.093 +-8.02339 -49.7957 224.299 +-10.3073 -51.1644 230.464 +-12.0896 -49.9958 225.2 +-14.4685 -51.269 230.935 +-16.1277 -49.9858 225.155 +-18.6654 -51.401 231.53 +-20.2288 -50.1115 225.721 +-22.8976 -51.5382 232.148 +-24.2402 -49.9843 225.148 +-27.2027 -51.7452 233.08 +-28.4443 -50.2075 226.154 +-31.4568 -51.7849 233.259 +-32.65 -50.3499 226.795 +-35.696 -51.7651 233.17 +-36.8403 -50.4114 227.072 +-40.0075 -51.8148 233.394 +-40.9115 -50.2857 226.506 +-44.3744 -51.89 233.732 +-45.2599 -50.4637 227.308 +-48.9448 -52.139 234.854 +-49.5661 -50.5391 227.647 +-53.3307 -52.1362 234.841 +-54.0557 -50.7452 228.576 +-58.0812 -52.4324 236.176 +-58.3516 -50.7222 228.472 +-62.6952 -52.5404 236.662 +-63.2554 -51.1637 230.461 +-66.9165 -52.2953 235.558 +-67.7517 -51.2084 230.662 +-72.1399 -52.7822 237.751 +-73.3561 -52.0014 234.234 +-78.2737 -53.8037 242.352 +-79.3865 -52.9526 238.519 +-83.5463 -54.116 243.759 +-83.7687 -52.7263 237.5 +-87.5575 -53.5874 241.378 +-87.8992 -52.3403 235.761 +-91.6843 -53.1466 239.393 +-91.5988 -51.7166 232.951 +-97.0495 -53.3967 240.519 +-96.5361 -51.7842 233.256 +-102.406 -53.582 241.354 +-101.238 -51.6906 232.834 +-107.343 -53.5046 241.005 +-106.606 -51.8937 233.749 +-111.718 -53.1299 239.317 +-108.571 -50.4611 227.296 +-113.827 -51.7211 232.972 +-117.001 -51.9908 234.186 +-124.534 -54.1338 243.839 +-123.894 -52.699 237.377 +-131.737 -54.8464 247.049 +-130.654 -53.2556 239.884 +-137.183 -54.7588 246.655 +-136.038 -53.1893 239.585 +-120.25 -46.0639 207.489 +-110.15 -41.3487 186.25 +-110.085 -40.5039 182.445 +-111.197 -40.1084 180.663 +-112.703 -39.8595 179.543 +-114.675 -39.7737 179.156 +-116.11 -39.5004 177.925 +-117.424 -39.1883 176.519 +-119.218 -39.0371 175.838 +-121.457 -39.0258 175.787 +-124.27 -39.1875 176.515 +-142.878 -44.2238 199.201 +-142.156 -43.1931 194.558 +-142.068 -42.379 190.891 +-143.471 -42.0216 189.282 +-142.389 -40.9525 184.466 +-159.435 -45.0318 202.84 +-155.147 -43.0379 193.859 +-195.034 -53.1401 239.363 +-213.088 -57.0306 256.888 +-226.317 -59.5017 268.019 +-222.469 -57.461 258.826 +-234.386 -59.4772 267.908 +-230.146 -57.3795 258.459 +-164.794 -40.3691 181.838 +-162.197 -39.0412 175.856 +-249.833 -59.0902 266.165 +-247.429 -57.5059 259.028 +-260.68 -59.5353 268.17 +-256.676 -57.6058 259.478 +-270.13 -59.5761 268.353 +-267.145 -57.8981 260.795 +-279.594 -59.5477 268.226 +-280.543 -58.7156 264.478 +-293.051 -60.2713 271.485 +-289.397 -58.4881 263.453 +-303.906 -60.3543 271.859 +-300.082 -58.5592 263.773 +-314.861 -60.3732 271.944 +-309.431 -58.2967 262.591 +-325.758 -60.2993 271.611 +-323.271 -58.7891 264.809 +-338.126 -60.4087 272.104 +-334.561 -58.7167 264.483 +-348.261 -60.0381 270.435 +-344.834 -58.3897 263.01 +-140.82 -23.4187 105.487 +-142.077 -23.2037 104.518 +-141.72 -22.7277 102.374 +-142.791 -22.4844 101.278 +-141.005 -21.7982 98.1874 +-140.73 -21.3566 96.1983 +-141.667 -21.1019 95.051 +-146.574 -21.427 96.5154 +-147.014 -21.0892 94.9937 +-418.58 -58.9133 265.368 +-433.925 -59.9129 269.87 +-433.183 -58.6649 264.249 +-384.797 -51.1056 230.199 +-430.984 -56.1244 252.806 +-380.323 -48.5532 218.702 +-380.965 -47.6696 214.722 +-380.607 -46.6698 210.219 +-379.497 -45.591 205.359 +-379.297 -44.6337 201.047 +-381.257 -43.9349 197.9 +-379.729 -42.842 192.977 +-555.008 -61.2891 276.07 +-589.404 -63.6894 286.881 +-588.171 -62.1731 280.052 +-403.456 -41.7069 187.864 +-402.944 -40.7226 183.43 +-403.295 -39.8331 179.424 +-403.97 -38.9807 175.584 +-403.14 -37.9905 171.124 +-402.445 -37.0234 166.768 +-401.888 -36.0783 162.51 +-404.159 -35.3899 159.41 +-404.825 -34.5607 155.675 +-403.307 -33.5529 151.135 +-403.144 -32.6674 147.146 +-403.692 -31.8445 143.44 +-403.262 -30.9496 139.409 +-404.209 -30.1644 135.872 +-402.848 -29.2132 131.587 +-402.772 -28.3631 127.758 +-391.215 -26.7336 120.418 +-382.139 -25.3209 114.055 +-377.775 -24.2524 109.242 +-376.911 -23.4235 105.508 +-379.381 -22.8025 102.711 +-379.126 -22.0167 99.1715 +-378.739 -21.2284 95.6206 +-379.095 -20.485 92.2724 +-379.516 -19.747 88.9481 +-378.738 -18.9505 85.3602 +-379.779 -18.2475 82.1938 +-379.815 -17.497 78.8132 +-376.193 -16.5879 74.7182 +-379.006 -15.9667 71.9204 +-380.52 -15.2849 68.8488 +-378.659 -14.4705 65.1807 +-379.621 -13.7681 62.0169 +-379.569 -13.0293 58.6889 +-378.793 -12.2693 55.2655 +-378.084 -11.5162 51.8733 +-378.633 -10.8035 48.6632 +-378.359 -10.0685 45.3524 +-377.061 -9.31082 41.9395 +-380.007 -8.65623 38.991 +-3261.22 -68.0571 306.555 +-3263.83 -61.8866 278.761 +-3266.2 -55.7116 250.946 +-3268.32 -49.532 223.111 +-3270.19 -43.3487 195.259 +-3271.81 -37.1621 167.393 +-3273.18 -30.9728 139.513 +-3274.3 -24.781 111.623 +-3275.18 -18.5875 83.7251 +-3275.8 -12.3924 55.8202 +-143.095 -0.270645 1.21909 +95.4 0 0 +95.3964 -0.173089 0.814319 +95.3855 -0.346165 1.62858 +95.3673 -0.519214 2.44271 +96.4412 -0.700205 3.29421 +95.509 -0.866994 4.07889 +95.469 -1.04025 4.89399 +96.1204 -1.22231 5.7505 +96.2649 -1.39956 6.5844 +96.2025 -1.57416 7.40585 +96.1328 -1.74865 8.22674 +95.8567 -1.91901 9.02825 +96.0708 -2.09937 9.87675 +95.8797 -2.27125 10.6854 +95.7807 -2.44512 11.5034 +96.5667 -2.64324 12.4355 +95.5609 -2.7923 13.1367 +95.44 -2.96557 13.9519 +95.1144 -3.13211 14.7354 +95.6697 -3.32858 15.6598 +95.5264 -3.50204 16.4758 +95.3757 -3.67521 17.2905 +95.2178 -3.84813 18.104 +95.0527 -4.02074 18.9161 +95.565 -4.22331 19.8691 +95.5794 -4.40552 20.7264 +95.3908 -4.57878 21.5415 +95.195 -4.75168 22.3549 +95.089 -4.92923 23.1902 +95.7498 -5.14843 24.2215 +95.5301 -5.32196 25.0378 +95.2067 -5.48953 25.8262 +95.8378 -5.71362 26.8805 +95.5943 -5.88729 27.6975 +96.013 -6.10306 28.7126 +95.7532 -6.27704 29.5312 +95.4861 -6.45052 30.3473 +96.2549 -6.69609 31.5026 +95.781 -6.85695 32.2594 +95.4896 -7.03045 33.0757 +95.9426 -7.26034 34.1572 +95.5406 -7.42686 34.9406 +96.0654 -7.66697 36.0703 +96.6704 -7.91717 37.2474 +96.3344 -8.09226 38.0711 +96.0835 -8.2747 38.9294 +96.561 -8.52182 40.092 +95.5577 -8.63867 40.6417 +96.0136 -8.88781 41.8139 +95.6369 -9.06169 42.6319 +96.2499 -9.33151 43.9013 +95.674 -9.48788 44.637 +96.0811 -9.74314 45.8379 +95.6685 -9.91708 46.6562 +95.9614 -10.1658 47.8263 +96.3294 -10.4259 49.0501 +95.8881 -10.6003 49.8705 +96.1426 -10.8532 51.0605 +95.6834 -11.0273 51.8792 +95.1299 -11.1902 52.6458 +95.436 -11.4559 53.8959 +95.727 -11.7236 55.1553 +95.2313 -11.8969 55.9703 +95.3252 -12.1452 57.1388 +95.575 -12.4169 58.4168 +95.6406 -12.668 59.5983 +95.1052 -12.8411 60.4124 +95.2298 -13.1049 61.6538 +95.5051 -13.3935 63.0113 +94.8569 -13.5545 63.7688 +94.9397 -13.8214 65.0248 +95.0887 -14.1018 66.3439 +94.9786 -14.3472 67.4981 +95.0963 -14.6302 68.8298 +95.1974 -14.9148 70.1688 +95.4404 -15.2262 71.6337 +95.3493 -15.4884 72.8671 +95.2434 -15.7514 74.1045 +95.2781 -16.0414 75.4687 +95.2956 -16.3326 76.8391 +94.6065 -16.5049 77.6496 +95.2028 -16.9055 79.5341 +95.1689 -17.2003 80.9212 +95.0425 -17.4826 82.249 +94.9739 -17.7795 83.6462 +94.9613 -18.0916 85.1145 +94.8566 -18.3909 86.5222 +94.7339 -18.6911 87.9346 +94.5212 -18.9778 89.2835 +94.363 -19.2797 90.7039 +94.2573 -19.5972 92.1976 +94.6928 -20.0344 94.2544 +94.4735 -20.34 95.6924 +94.1669 -20.6313 97.0628 +94.5932 -21.0904 99.2223 +94.2448 -21.3837 100.602 +93.9459 -21.6931 102.058 +94.1583 -22.1274 104.101 +94.3413 -22.564 106.155 +93.8452 -22.8451 107.478 +94.0398 -23.3011 109.623 +93.5035 -23.5832 110.95 +93.7687 -24.0751 113.265 +93.813 -24.5209 115.362 +93.2727 -24.8213 116.775 +93.384 -25.3029 119.041 +93.2813 -25.7372 121.084 +92.7329 -26.0557 122.582 +92.3998 -26.4416 124.398 +115.153 -33.5651 157.911 +115.748 -34.3688 161.693 +115.83 -35.0402 164.851 +115.306 -35.5421 167.212 +115.576 -36.3047 170.8 +115.681 -37.0361 174.241 +115.466 -37.683 177.284 +115.575 -38.4551 180.917 +115.733 -39.2662 184.733 +115.369 -39.9201 187.809 +115.11 -40.6295 191.147 +115.45 -41.5751 195.595 +115.769 -42.5431 200.15 +114.657 -43.0061 202.328 +111.941 -42.8652 201.665 +109.669 -42.8832 201.75 +107.449 -42.9144 201.897 +105.19 -42.9225 201.935 +102.625 -42.7955 201.337 +100.431 -42.8119 201.414 +98.2857 -42.8423 201.557 +96.0611 -42.8306 201.502 +93.5548 -42.6816 200.801 +91.5564 -42.7548 201.145 +90.7952 -43.4151 204.252 +90.6887 -44.4201 208.98 +90.5429 -45.4474 213.813 +90.8421 -46.7473 219.929 +90.4892 -47.7615 224.7 +90.3446 -48.9333 230.213 +90.1434 -50.1273 235.83 +87.6256 -50.0545 235.488 +87.157 -51.1721 240.746 +83.3454 -50.3256 236.764 +82.7531 -51.4213 241.918 +79.2938 -50.739 238.708 +78.5444 -51.7931 243.667 +75.5488 -51.3769 241.709 +75.0369 -52.6682 247.784 +70.7837 -51.3234 241.458 +69.9363 -52.4316 246.671 +66.6718 -51.733 243.385 +65.3492 -52.5366 247.165 +63.0207 -52.5522 247.239 +61.116 -52.9272 249.003 +55.5854 -50.0583 235.506 +54.3696 -50.9895 239.887 +51.1879 -50.0693 235.558 +49.9417 -51.0363 240.107 +46.7864 -50.0433 235.435 +45.65 -51.2097 240.923 +42.4743 -50.0826 235.62 +41.2289 -51.224 240.99 +38.2639 -50.2292 236.31 +36.7454 -51.119 240.496 +33.8887 -50.1337 235.861 +32.4097 -51.1829 240.796 +29.6752 -50.2491 236.404 +28.0404 -51.1687 240.73 +25.4213 -50.2872 236.583 +23.7985 -51.3868 241.756 +21.1788 -50.3302 236.785 +19.3872 -51.2166 240.955 +16.9718 -50.4616 237.403 +15.1217 -51.4037 241.835 +12.6601 -50.2248 236.289 +10.7653 -51.2637 241.177 +8.43172 -50.2009 236.177 +6.47094 -51.3781 241.715 +4.20952 -50.1406 235.893 +2.15894 -51.4355 241.985 +1.48484e-14 -50.4186 237.201 +-2.15633 -51.3731 241.691 +-4.22697 -50.3485 236.871 +-6.46309 -51.3157 241.422 +-8.49105 -50.5541 237.839 +-10.7609 -51.243 241.079 +-12.7333 -50.5157 237.658 +-15.14 -51.4658 242.128 +-16.909 -50.2751 236.526 +-19.5834 -51.7349 243.393 +-21.1876 -50.351 236.883 +-24.0285 -51.8835 244.093 +-25.5363 -50.5146 237.653 +-28.4819 -51.9744 244.52 +-29.9189 -50.6618 238.345 +-32.9709 -52.0692 244.966 +-34.167 -50.5456 237.798 +-37.3071 -51.9006 244.173 +-38.7645 -50.8862 239.401 +-41.9551 -52.1264 245.235 +-43.412 -51.1883 240.822 +-46.4518 -52.1093 245.155 +-47.7022 -51.023 240.044 +-51.2774 -52.4014 246.529 +-52.1235 -50.9845 239.863 +-55.8631 -52.39 246.476 +-56.8901 -51.2332 241.033 +-60.7658 -52.6241 247.577 +-61.3756 -51.1804 240.785 +-65.3492 -52.5366 247.165 +-66.3353 -51.4721 242.157 +-70.9785 -53.2129 250.347 +-71.7484 -52.0228 244.748 +-77.1386 -54.1433 254.724 +-78.2094 -53.1863 250.222 +-83.7766 -55.2434 259.9 +-84.1144 -53.8238 253.221 +-88.9722 -55.2858 260.099 +-88.9452 -53.7069 252.671 +-92.5313 -54.3273 255.59 +-92.0718 -52.5944 247.437 +-97.953 -54.4702 256.262 +-97.3686 -52.7376 248.111 +-102.4 -54.0485 254.278 +-103.242 -53.1281 249.948 +-108.797 -54.6099 256.919 +-108.115 -52.9559 249.138 +-102.16 -48.8491 229.817 +-111.405 -52.0237 244.752 +-108.525 -49.5115 232.933 +-108.993 -48.5967 228.629 +-111.89 -48.7723 229.456 +-122.744 -52.3235 246.163 +-117.93 -49.1776 231.362 +-131.612 -53.7042 252.658 +-137.74 -55.0124 258.813 +-137.743 -53.861 253.396 +-141.239 -54.0841 254.446 +-131.917 -49.4797 232.783 +-120.693 -44.3526 208.662 +-110.4 -39.7565 187.039 +-110.542 -39.0173 183.562 +-111.3 -38.5123 181.186 +-112.651 -38.2202 179.812 +-114.516 -38.1025 179.258 +-116.272 -37.946 178.522 +-117.424 -37.594 176.866 +-119.494 -37.5355 176.591 +-121.401 -37.4208 176.051 +-124.326 -37.6104 176.943 +-141.96 -42.152 198.31 +-146.163 -42.6038 200.435 +-144.478 -41.3445 194.511 +-171.785 -48.2675 227.081 +-163.754 -45.1811 212.56 +-218.85 -59.2987 278.978 +-218.868 -58.244 274.016 +-192.544 -50.3273 236.771 +-225.989 -58.0225 272.975 +-237.702 -59.9526 282.055 +-236.032 -58.4839 275.145 +-247.115 -60.1559 283.011 +-244.513 -58.4814 275.133 +-165.522 -38.898 183.001 +-164.338 -37.9472 178.528 +-166.871 -37.8624 178.129 +-262.706 -58.5723 275.561 +-276.03 -60.4763 284.519 +-272.514 -58.6721 276.03 +-284.85 -60.2663 283.531 +-281.994 -58.6298 275.832 +-296.498 -60.5788 285.001 +-291.045 -58.4355 274.917 +-310.678 -61.2969 288.379 +-305.998 -59.3272 279.112 +-320.421 -61.0454 287.196 +-316.728 -59.2929 278.951 +-329.84 -60.6724 285.441 +-327.242 -59.144 278.251 +-340.434 -60.452 284.404 +-340.66 -59.4311 279.602 +-358.96 -61.5219 289.438 +-352.047 -59.2719 278.852 +-368.687 -60.9736 286.858 +-364.77 -59.2528 278.762 +-136.774 -21.8203 102.657 +-142.077 -22.2596 104.723 +-141.8 -21.8155 102.634 +-142.63 -21.5453 101.363 +-141.086 -20.9234 98.4369 +-141.222 -20.5593 96.7237 +-141.255 -20.1845 94.9605 +-144.999 -20.3343 95.6656 +-147.848 -20.3459 95.72 +-436.78 -58.9737 277.45 +-383.406 -50.7837 238.918 +-381.028 -49.5023 232.89 +-381.386 -48.5919 228.607 +-377.582 -47.1698 221.916 +-382.219 -46.8101 220.224 +-379.839 -45.595 214.508 +-379.823 -44.679 210.198 +-379.935 -43.7864 205.999 +-379.473 -42.8375 201.535 +-381.963 -42.2254 198.655 +-379.729 -41.0989 193.355 +-596.351 -63.1752 297.216 +-674.423 -69.9113 328.907 +-657.108 -66.6342 313.489 +-718.548 -71.2576 335.241 +-406.388 -39.3997 185.361 +-403.295 -38.2125 179.776 +-402.325 -37.2426 175.213 +-404.057 -36.5278 171.85 +-402.997 -35.5658 167.324 +-403.181 -34.7219 163.354 +-403.418 -33.8877 159.429 +-404.918 -33.1621 156.016 +-403.493 -32.2028 151.502 +-403.987 -31.4038 147.743 +-403.128 -30.5063 143.521 +-404.016 -29.7459 139.944 +-404.493 -28.9575 136.234 +-403.132 -28.0444 131.938 +-403.438 -27.2541 128.22 +-393.599 -25.802 121.389 +-380.896 -24.2117 113.907 +-379.501 -23.372 109.957 +-378.449 -22.5622 106.147 +-377.55 -21.7692 102.416 +-379.222 -21.1263 99.3915 +-379.223 -20.3907 95.9307 +-378.706 -19.6315 92.3588 +-379.03 -18.9193 89.0085 +-379.42 -18.2122 85.6817 +-378.315 -17.4376 82.0376 +-379.913 -16.7895 78.9883 +-380.015 -16.0747 75.6254 +-379.89 -15.3528 72.2295 +-378.75 -14.5948 68.6631 +-381.121 -13.972 65.7333 +-376.564 -13.1016 61.6382 +-378.383 -12.4601 58.6204 +-378.991 -11.7762 55.4029 +-378.48 -11.0592 52.0296 +-377.939 -10.345 48.6693 +-379.053 -9.67661 45.5248 +-378.054 -8.95555 42.1325 +-379.211 -8.28667 38.9857 +-3261.22 -65.2882 307.157 +-3263.83 -59.3688 279.308 +-3266.2 -53.4449 251.439 +-3268.32 -47.5168 223.549 +-3270.19 -41.585 195.642 +-3271.81 -35.6502 167.721 +-3273.18 -29.7127 139.787 +-3274.3 -23.7728 111.842 +-3275.18 -17.8312 83.8894 +-3275.8 -11.8882 55.9298 +-144.594 -0.262355 1.23429 +95.3 0 0 +96.2963 -0.167312 0.823541 +96.1853 -0.334263 1.64531 +96.267 -0.501885 2.47037 +96.2413 -0.66912 3.29354 +96.2083 -0.836305 4.11646 +95.2693 -0.994048 4.89289 +95.2221 -1.15953 5.70743 +95.3671 -1.3277 6.53521 +96.2025 -1.5074 7.41973 +95.9335 -1.67102 8.22507 +95.8567 -1.83763 9.04517 +96.0708 -2.01033 9.89525 +95.979 -2.17718 10.7165 +95.88 -2.34386 11.5369 +95.6744 -2.50775 12.3436 +95.6599 -2.67664 13.175 +95.44 -2.8398 13.978 +96.0033 -3.02731 14.901 +95.7683 -3.1907 15.7053 +95.6248 -3.35697 16.5236 +95.1791 -3.5121 17.2872 +95.2178 -3.68494 18.138 +94.8567 -3.84228 18.9124 +94.8803 -4.01521 19.7637 +95.5794 -4.21869 20.7652 +95.4883 -4.38907 21.6039 +95.195 -4.55016 22.3968 +95.089 -4.72019 23.2337 +95.7498 -4.93009 24.2669 +95.4335 -5.0911 25.0594 +95.2067 -5.25673 25.8746 +95.6455 -5.46034 26.8768 +95.5943 -5.63761 27.7494 +95.1523 -5.79185 28.5086 +95.7532 -6.01084 29.5865 +95.6763 -6.18926 30.4647 +95.4014 -6.35525 31.2818 +95.781 -6.56615 32.3198 +95.4896 -6.73229 33.1376 +95.9426 -6.95243 34.2212 +95.5406 -7.11189 35.0061 +95.9721 -7.33467 36.1027 +95.74 -7.50844 36.958 +95.4072 -7.67449 37.7753 +96.0835 -7.92377 39.0023 +95.8246 -8.09818 39.8608 +96.383 -8.34374 41.0695 +96.0136 -8.51088 41.8922 +95.6369 -8.67738 42.7118 +96.0686 -8.91893 43.9007 +95.674 -9.08551 44.7206 +96.0811 -9.32994 45.9237 +95.6685 -9.4965 46.7436 +95.9614 -9.73468 47.9159 +96.3294 -9.98376 49.142 +95.8881 -10.1507 49.9639 +96.0547 -10.3835 51.1094 +95.6834 -10.5596 51.9764 +95.9132 -10.8039 53.1787 +95.436 -10.9701 53.9969 +95.727 -11.2264 55.2586 +95.1456 -11.3821 56.0247 +95.4104 -11.6406 57.2971 +95.4902 -11.8797 58.4743 +95.6406 -12.1308 59.71 +95.1052 -12.2965 60.5256 +95.2298 -12.5492 61.7693 +95.4222 -12.8143 63.0746 +95.5162 -13.0698 64.3323 +95.677 -13.3381 65.6525 +94.9259 -13.4807 66.3545 +95.1404 -13.7621 67.7397 +95.257 -14.0335 69.0754 +95.1974 -14.2823 70.3003 +95.4404 -14.5805 71.7679 +95.2705 -14.8193 72.9434 +95.3217 -15.0958 74.3044 +95.2004 -15.3485 75.5484 +94.7555 -15.5513 76.5467 +95.2959 -15.9201 78.362 +95.2028 -16.1885 79.6831 +95.1689 -16.4709 81.0728 +95.1174 -16.7543 82.468 +94.9739 -17.0255 83.8029 +94.9613 -17.3244 85.274 +94.8566 -17.6109 86.6844 +94.6614 -17.8847 88.0319 +94.5932 -18.1868 89.5189 +95.0763 -18.6016 91.5607 +94.8937 -18.8928 92.994 +94.6228 -19.1705 94.3611 +94.4041 -19.4631 95.8012 +94.2357 -19.7708 97.3158 +94.5932 -20.1959 99.4082 +94.8529 -20.609 101.442 +94.4143 -20.8766 102.759 +94.1583 -21.189 104.296 +93.8164 -21.4869 105.762 +93.8452 -21.8763 107.679 +94.0398 -22.3129 109.828 +94.076 -22.7212 111.838 +93.5799 -23.0077 113.248 +93.7507 -23.4655 115.501 +93.2727 -23.7687 116.994 +93.871 -24.3562 119.886 +93.1008 -24.5979 121.076 +92.9708 -25.0148 123.128 +92.3998 -25.3202 124.631 +115.56 -32.2551 158.766 +115.69 -32.895 161.915 +115.83 -33.5542 165.16 +115.361 -34.0511 167.606 +115.52 -34.7483 171.038 +115.463 -35.3986 174.239 +115.896 -36.2192 178.278 +115.575 -36.8243 181.256 +115.681 -37.584 184.996 +115.42 -38.2442 188.245 +115.11 -38.9064 191.505 +115.2 -39.7257 195.537 +115.523 -40.6521 200.097 +114.221 -41.0254 201.935 +111.894 -41.0299 201.957 +109.669 -41.0646 202.128 +107.033 -40.9356 201.493 +104.781 -40.9425 201.527 +102.625 -40.9806 201.714 +100.431 -40.9963 201.792 +97.8982 -40.8637 201.139 +95.6808 -40.8518 201.08 +93.223 -40.7265 200.464 +91.8411 -41.069 202.149 +90.5958 -41.4825 204.185 +90.3761 -42.3898 208.651 +90.5429 -43.52 214.214 +90.5424 -44.617 219.614 +90.5625 -45.773 225.303 +90.4162 -46.8951 230.827 +90.3185 -48.0948 236.732 +89.9171 -49.1852 242.099 +89.794 -50.4845 248.495 +87.415 -50.5445 248.79 +87.8934 -52.2993 257.427 +83.1874 -50.9729 250.898 +83.506 -52.7295 259.545 +79.0865 -51.5017 253.501 +79.8083 -53.6416 264.034 +75.3317 -52.3047 257.454 +75.2276 -54.0067 265.831 +70.3729 -52.2891 257.377 +70.2066 -54.0479 266.034 +65.1012 -51.9849 255.88 +65.1313 -54.0125 265.86 +58.7122 -50.6319 249.22 +58.0924 -52.1703 256.792 +53.7036 -50.3024 247.598 +53.2512 -52.1105 256.498 +49.4195 -50.6179 249.151 +48.4746 -52.0723 256.31 +44.6102 -50.3703 247.932 +44.0512 -52.4096 257.97 +40.1411 -50.4587 248.367 +39.1399 -52.141 256.648 +35.6701 -50.5313 248.725 +34.7591 -52.5653 258.736 +31.1986 -50.5883 249.005 +30.2026 -52.7769 259.778 +26.7593 -50.689 249.501 +25.4566 -52.6359 259.084 +22.2857 -50.7147 249.627 +20.8152 -52.6569 259.187 +17.8367 -50.7844 249.97 +16.2511 -52.8999 260.384 +13.3404 -50.6796 249.455 +11.5461 -52.6501 259.154 +8.91333 -50.8176 250.134 +6.9238 -52.6423 259.116 +4.45211 -50.7812 249.955 +2.31253 -52.758 259.685 +1.56015e-14 -50.7292 249.699 +-2.32824 -53.1164 261.449 +-4.46258 -50.9006 250.543 +-6.95783 -52.9011 260.39 +-8.94474 -50.9968 251.016 +-11.5984 -52.8888 260.329 +-13.4085 -50.9381 250.727 +-16.2145 -52.7809 259.798 +-17.9204 -51.0227 251.143 +-20.9329 -52.9547 260.653 +-22.4688 -51.1312 251.678 +-25.6579 -53.0523 261.133 +-26.9997 -51.1443 251.742 +-30.3385 -53.0142 260.946 +-31.5642 -51.181 251.923 +-35.0463 -52.9995 260.874 +-36.2128 -51.3002 252.51 +-39.8199 -53.0469 261.107 +-40.9233 -51.4418 253.206 +-44.5629 -53.0182 260.966 +-45.6347 -51.527 253.626 +-49.4769 -53.149 261.61 +-50.3354 -51.5561 253.769 +-54.4274 -53.2615 262.163 +-55.0966 -51.607 254.02 +-59.4343 -53.3754 262.724 +-60.1294 -51.8539 255.235 +-64.8745 -53.7997 264.812 +-65.3673 -52.1973 256.925 +-69.8059 -53.7395 264.516 +-70.5541 -52.4237 258.04 +-76.8578 -55.177 271.592 +-77.2612 -53.6444 264.048 +-82.9041 -55.7223 274.276 +-83.2675 -54.2245 266.904 +-88.9788 -56.1854 276.555 +-88.6261 -54.3056 267.302 +-93.1924 -55.4523 272.947 +-92.6241 -53.5564 263.615 +-99.0739 -55.7018 274.175 +-98.5702 -53.9185 265.397 +-104.117 -55.4424 272.898 +-103.353 -53.6051 263.855 +-109.73 -55.4611 272.99 +-109.123 -53.7732 264.682 +-115.953 -55.7335 274.331 +-102.567 -48.1077 236.796 +-102.04 -46.7227 229.978 +-104.369 -46.6709 229.723 +-100.563 -43.9333 216.248 +-107.091 -45.7236 225.06 +-105.518 -44.0444 216.795 +-109.067 -44.5215 219.143 +-110.166 -43.9917 216.535 +-113.18 -44.2244 217.681 +-115.391 -44.132 217.226 +-120.279 -45.0373 221.682 +-116.761 -42.8146 210.742 +-123.045 -44.1946 217.534 +-120.545 -42.4196 208.798 +-110.4 -38.0704 187.39 +-110.187 -37.2426 183.315 +-111.042 -36.7936 181.105 +-112.337 -36.4976 179.648 +-114.198 -36.3853 179.095 +-116.218 -36.32 178.774 +-117.152 -35.9162 176.786 +-119.108 -35.8276 176.35 +-120.842 -35.6687 175.568 +-124.326 -36.0154 177.275 +-149.99 -42.6476 209.92 +-222.583 -62.1274 305.803 +-218.539 -59.8862 294.771 +-229.245 -61.6806 303.604 +-224.116 -59.213 291.458 +-164.853 -42.7734 210.539 +-168.383 -42.909 211.206 +-166.709 -41.7266 205.386 +-169.602 -41.6985 205.248 +-255.831 -61.7883 304.134 +-252.101 -59.8165 294.428 +-265.819 -61.9649 305.003 +-261.111 -59.8027 294.361 +-277.108 -62.3589 306.943 +-163.803 -36.2196 178.28 +-167.479 -36.3887 179.112 +-282.347 -60.2818 296.718 +-299.572 -62.8507 309.363 +-291.479 -60.0936 295.792 +-307.419 -62.2831 306.569 +-302.217 -60.1697 296.167 +-318.609 -62.3356 306.828 +-312.05 -59.9957 295.31 +-331.133 -62.5622 307.943 +-325.306 -60.3958 297.28 +-347.258 -63.3524 311.833 +-335.53 -60.1488 296.064 +-355.679 -62.6506 308.378 +-349.883 -60.5543 298.06 +-369.253 -62.7888 309.058 +-363.795 -60.7755 299.149 +-381.337 -62.5853 308.057 +-375.828 -60.5922 298.246 +-391.382 -61.982 305.087 +-386.756 -60.1597 296.118 +-405.483 -61.9458 304.909 +-141.918 -21.2917 104.802 +-141.881 -20.9021 102.884 +-142.791 -20.6548 101.667 +-141.086 -20.0361 98.6213 +-140.485 -19.5846 96.3991 +-140.843 -19.2721 94.8609 +-144.916 -19.4608 95.79 +-148.432 -19.56 96.278 +-383.943 -49.6414 244.344 +-380.791 -48.2985 237.734 +-378.569 -47.0969 231.82 +-378.316 -46.1566 227.192 +-379.897 -45.4463 223.695 +-381.357 -44.7237 220.139 +-380.965 -43.7908 215.547 +-380.258 -42.8331 210.833 +-379.148 -41.8427 205.958 +-378.243 -40.8878 201.258 +-380.021 -40.2292 198.016 +-380.882 -39.4754 194.306 +-678.145 -68.7934 338.615 +-723.912 -71.8589 353.703 +-730.001 -70.8865 348.917 +-752.395 -71.4498 351.689 +-402.129 -37.3334 183.762 +-404.933 -36.7405 180.844 +-406.619 -36.0436 177.414 +-403.506 -34.9311 171.938 +-403.365 -34.0885 167.79 +-404.844 -33.3865 164.335 +-404.716 -32.5551 160.242 +-403.243 -31.6245 155.662 +-402 -30.7228 151.224 +-404.08 -30.079 148.054 +-401.061 -29.0626 143.052 +-402.885 -28.4046 139.813 +-404.587 -27.736 136.522 +-403.227 -26.8614 132.217 +-404.009 -26.1351 128.642 +-394.553 -24.7677 121.912 +-381.566 -23.2255 114.321 +-377.487 -22.2621 109.578 +-379.122 -21.6437 106.535 +-379.574 -20.9577 103.158 +-380.285 -20.2871 99.8571 +-379.223 -19.5259 96.1104 +-376.96 -18.7122 92.1051 +-379.71 -18.1495 89.3354 +-378.738 -17.4085 85.688 +-379.486 -16.7498 82.4458 +-378.641 -16.0236 78.8714 +-379.525 -15.3731 75.6694 +-378.81 -14.6599 72.1591 +-378.848 -13.9795 68.8096 +-378.068 -13.2723 65.3289 +-379.621 -12.6478 62.255 +-380.161 -11.9878 59.0062 +-379.288 -11.2856 55.5501 +-378.877 -10.6013 52.1816 +-379.426 -9.94524 48.9524 +-378.557 -9.2541 45.5505 +-378.948 -8.59604 42.3113 +-378.018 -7.91027 38.9359 +-3261.22 -62.5194 307.732 +-3263.83 -56.851 279.831 +-3266.2 -51.1784 251.91 +-3268.32 -45.5016 223.968 +-3270.19 -39.8214 196.009 +-3271.81 -34.1383 168.035 +-3273.18 -28.4526 140.049 +-3274.3 -22.7646 112.052 +-3275.18 -17.075 84.0465 +-143.678 -0.499311 2.4577 +-144.295 -0.250707 1.23403 +95.5 0 0 +95.4964 -0.158546 0.818164 +95.4855 -0.317079 1.63626 +95.4673 -0.47559 2.45424 +95.6417 -0.635391 3.27888 +96.3082 -0.799957 4.12812 +96.2679 -0.959815 4.95305 +96.2202 -1.1196 5.7776 +95.4669 -1.27001 6.55377 +96.1028 -1.4389 7.42533 +96.0332 -1.59839 8.24837 +95.9562 -1.75776 9.07079 +96.1703 -1.92296 9.9233 +95.979 -2.08039 10.7357 +95.88 -2.23966 11.5576 +96.4676 -2.41613 12.4683 +95.6599 -2.55765 13.1986 +95.5389 -2.71637 14.0176 +95.2132 -2.86893 14.8049 +95.867 -3.052 15.7496 +94.837 -3.18131 16.4169 +95.4741 -3.36638 17.3719 +95.316 -3.52476 18.1892 +96.0326 -3.717 19.1813 +95.6628 -3.86838 19.9624 +94.7983 -3.99822 20.6325 +95.5857 -4.19824 21.6647 +95.2923 -4.35232 22.4598 +95.283 -4.51956 23.3228 +95.8466 -4.71568 24.3349 +95.6267 -4.87463 25.1551 +96.1703 -5.07387 26.1833 +95.7417 -5.22285 26.9521 +95.6902 -5.3924 27.827 +95.248 -5.53993 28.5884 +95.8486 -5.74933 29.669 +95.5812 -5.90824 30.489 +96.16 -6.12103 31.5871 +95.8756 -6.28044 32.4097 +95.5838 -6.43936 33.2298 +96.0366 -6.64987 34.3161 +95.6342 -6.80239 35.1032 +96.1588 -7.02225 36.2378 +96.7634 -7.25134 37.42 +96.5198 -7.41883 38.2843 +96.1759 -7.57879 39.1097 +95.9166 -7.74562 39.9706 +96.4747 -7.98041 41.1823 +96.105 -8.14028 42.0072 +95.9099 -8.3153 42.9104 +95.5248 -8.47421 43.7305 +95.7643 -8.68979 44.843 +96.171 -8.92351 46.0491 +95.758 -9.08284 46.8713 +96.1396 -9.3192 48.091 +96.4181 -9.54873 49.2754 +95.9764 -9.70843 50.0996 +95.5274 -9.8674 50.9199 +95.7709 -10.0994 52.1172 +95.2169 -10.2486 52.8872 +96.302 -10.5775 54.5846 +95.8132 -10.737 55.4076 +96.0027 -10.9741 56.6308 +95.4957 -11.133 57.451 +95.575 -11.3617 58.6312 +95.7249 -11.6017 59.8698 +95.273 -11.7706 60.741 +95.3965 -12.0123 61.9884 +95.5051 -12.2553 63.2425 +95.5986 -12.4996 64.5032 +95.7589 -12.756 65.8265 +95.1701 -12.9145 66.6444 +95.3022 -13.1727 67.9765 +95.4178 -13.4322 69.316 +95.4369 -13.6817 70.6035 +95.3611 -13.9207 71.8367 +95.4281 -14.1839 73.195 +94.7738 -14.3418 74.0097 +95.4335 -14.7021 75.8691 +94.6783 -14.8479 76.6214 +94.6831 -15.1146 77.9975 +95.2789 -15.4812 79.8896 +95.2443 -15.7511 81.2825 +95.2672 -16.0347 82.746 +95.1225 -16.2941 84.0845 +95.035 -16.5671 85.4932 +94.8566 -16.828 86.8397 +94.8064 -17.1158 88.3248 +94.6651 -17.3915 89.7474 +94.5057 -17.668 91.1744 +95.0352 -18.0798 93.2996 +94.7629 -18.3455 94.6704 +94.543 -18.6252 96.1141 +94.2357 -18.8919 97.4902 +94.6614 -19.312 99.6581 +94.38 -19.5947 101.117 +94.0129 -19.8637 102.505 +94.3571 -20.2897 104.703 +93.882 -20.5461 106.027 +94.4297 -21.0339 108.544 +93.5899 -21.219 109.499 +93.7579 -21.6377 111.66 +93.7687 -22.0293 113.68 +93.8752 -22.452 115.862 +93.3958 -22.7419 117.358 +93.384 -23.1526 119.477 +93.1008 -23.5044 121.293 +92.8518 -23.8721 123.19 +92.4586 -24.21 124.934 +115.676 -30.8522 159.21 +115.748 -31.4482 162.286 +115.887 -32.0781 165.537 +115.473 -32.5689 168.069 +115.52 -33.2036 171.345 +115.572 -33.8569 174.716 +115.358 -34.4485 177.769 +115.628 -35.2034 181.665 +115.263 -35.7833 184.657 +115.42 -36.5441 188.583 +115.059 -37.1605 191.764 +115.25 -37.9762 195.973 +115.621 -38.8782 200.628 +114.367 -39.2516 202.555 +111.989 -39.2393 202.491 +109.716 -39.2558 202.577 +107.126 -39.1497 202.029 +104.872 -39.1565 202.064 +102.313 -39.0395 201.46 +100.124 -39.0542 201.536 +97.9413 -39.0642 201.588 +95.7653 -39.0701 201.618 +93.2645 -38.9334 200.912 +91.3124 -39.0172 201.345 +91.154 -39.8827 205.811 +90.7278 -40.6629 209.837 +90.5812 -41.6028 214.688 +90.6173 -42.669 220.19 +90.6358 -43.7735 225.89 +90.5954 -44.8992 231.699 +90.4235 -46.0102 237.432 +90.1223 -47.106 243.087 +90.0611 -48.3837 249.68 +89.9219 -49.6825 256.383 +89.7655 -51.0387 263.381 +87.6063 -51.2944 264.701 +87.0243 -52.5084 270.965 +83.0336 -51.6684 266.631 +82.194 -52.7892 272.414 +79.163 -52.5213 271.032 +77.5526 -53.2009 274.539 +74.514 -52.9048 273.011 +73.161 -53.8186 277.727 +69.6977 -53.1811 274.437 +67.7458 -53.6833 277.028 +64.8759 -53.46 275.876 +64.8237 -55.6274 287.061 +57.446 -51.4156 265.326 +56.1819 -52.5344 271.1 +52.606 -51.4866 265.692 +51.5362 -52.8999 272.986 +47.5275 -51.2786 264.619 +46.4609 -52.819 272.568 +42.7692 -51.3722 265.102 +41.5788 -52.9277 273.129 +38.2169 -51.7326 266.962 +36.6256 -52.9256 273.118 +33.3556 -51.6816 266.699 +31.6743 -52.8879 272.924 +28.3899 -51.3871 265.179 +26.7889 -52.9282 273.132 +23.6715 -51.4734 265.625 +21.9293 -53.0091 273.549 +18.9668 -51.6013 266.284 +16.9959 -52.8651 272.806 +14.1778 -51.4664 265.588 +12.1262 -52.8373 272.663 +9.4438 -51.4485 265.496 +7.2641 -52.7745 272.339 +4.72611 -51.5102 265.814 +2.42161 -52.7905 272.421 +1.66118e-14 -51.6131 266.345 +-2.419 -52.7334 272.127 +-4.7296 -51.5482 266.01 +-7.27719 -52.8696 272.83 +-9.46125 -51.5436 265.987 +-12.1524 -52.9514 273.252 +-14.2301 -51.6563 266.568 +-17.0264 -52.96 273.296 +-19.0644 -51.8669 267.655 +-22.047 -53.2937 275.018 +-23.7761 -51.701 266.799 +-26.8176 -52.9851 273.426 +-28.599 -51.7655 267.132 +-31.912 -53.2849 274.973 +-33.4288 -51.7948 267.283 +-36.8998 -53.3217 275.162 +-38.37 -51.9397 268.031 +-41.9187 -53.3605 275.362 +-43.3167 -52.0299 268.496 +-47.0221 -53.4571 275.861 +-48.3957 -52.2154 269.453 +-52.3198 -53.7042 277.136 +-53.4838 -52.3455 270.125 +-57.4578 -53.7275 277.256 +-58.5271 -52.3834 270.32 +-62.8108 -53.9 278.147 +-64.1785 -52.8854 272.911 +-68.2361 -54.0718 279.033 +-69.5284 -53.0519 273.77 +-74.4881 -54.7947 282.764 +-76.041 -53.989 278.606 +-81.481 -55.8957 288.445 +-83.1322 -55.1549 284.622 +-86.9371 -55.8355 288.135 +-88.1793 -54.8704 283.155 +-92.2565 -55.6653 287.256 +-92.9523 -54.4245 280.853 +-98.1106 -55.7836 287.867 +-98.6797 -54.5213 281.353 +-103.814 -55.7722 287.808 +-104.111 -54.4177 280.818 +-109.3 -55.6149 286.996 +-110.162 -54.5967 281.742 +-115.411 -55.7391 287.637 +-116.39 -54.8046 282.815 +-121.349 -55.7341 287.612 +-121.752 -54.5674 281.591 +-100.604 -44.0174 227.148 +-100.301 -42.8581 221.166 +-100.397 -41.911 216.279 +-102.569 -41.8462 215.944 +-104.916 -41.846 215.943 +-107.226 -41.8241 215.83 +-109.542 -41.7977 215.693 +-111.772 -41.733 215.36 +-114.329 -41.7821 215.613 +-112.955 -40.4148 208.557 +-115.95 -40.6271 209.653 +-117.469 -40.3164 208.05 +-121.382 -40.8154 210.625 +-110.9 -36.5427 188.576 +-110.237 -35.6033 183.728 +-111.042 -35.158 181.43 +-112.703 -34.9885 180.555 +-114.198 -34.7678 179.416 +-115.949 -34.6251 178.68 +-117.206 -34.3355 177.186 +-118.722 -34.1238 176.093 +-120.953 -34.1147 176.046 +-123.477 -34.1792 176.379 +-131.865 -35.8272 184.884 +-166.081 -44.2957 228.585 +-166.755 -43.6643 225.326 +-166.253 -42.7435 220.575 +-166.582 -42.0556 217.025 +-166.983 -41.4002 213.643 +-168.876 -41.1213 212.203 +-169.884 -40.6311 209.673 +-259.595 -60.987 314.718 +-272.941 -62.9904 325.057 +-270.356 -61.2961 316.314 +-283.484 -63.1451 325.855 +-280.793 -61.4517 317.117 +-294.535 -63.3342 326.831 +-162.063 -34.2419 176.703 +-163.155 -33.8733 174.8 +-303.694 -61.957 319.724 +-316.781 -63.5065 327.72 +-315.167 -62.0887 320.404 +-330.198 -63.9241 329.875 +-324.562 -61.7458 318.634 +-340.934 -63.7383 328.916 +-336.651 -61.8482 319.163 +-354.563 -64.0109 330.323 +-351.269 -62.317 321.582 +-362.888 -63.2609 326.453 +-363.918 -62.3377 321.689 +-377.623 -63.5591 327.991 +-378.336 -62.5677 322.876 +-393.89 -64.0006 330.27 +-389.151 -62.1214 320.572 +-402.325 -63.0945 325.594 +-397.199 -61.1911 315.772 +-411.965 -62.3413 321.707 +-407.402 -60.554 312.484 +-424.365 -61.9483 319.679 +-141.678 -20.3108 104.812 +-142.122 -20.007 103.244 +-142.872 -19.7479 101.907 +-141.249 -19.1674 98.912 +-140.812 -18.7576 96.7971 +-141.338 -18.48 95.3646 +-144.501 -18.5425 95.6872 +-147.765 -18.6064 96.017 +-512.344 -63.2978 326.644 +-380.96 -46.1717 238.266 +-380.858 -45.2755 233.641 +-379.169 -44.204 228.111 +-381.182 -43.5728 224.854 +-381.443 -42.7453 220.584 +-381.051 -41.8536 215.982 +-380.345 -40.9383 211.259 +-379.235 -39.9917 206.374 +-379.825 -39.2336 202.462 +-380.904 -38.53 198.831 +-381.947 -37.8259 195.198 +-730.714 -70.8311 365.518 +-735.994 -69.8105 360.251 +-744.651 -69.0946 356.557 +-406.073 -36.8477 190.15 +-405.482 -35.9711 185.626 +-402.567 -34.9021 180.109 +-404.518 -34.2634 176.814 +-404.148 -33.4313 172.52 +-403.549 -32.5882 168.169 +-404.197 -31.8513 164.366 +-403.974 -31.0508 160.235 +-403.615 -30.2464 156.084 +-403.213 -29.4457 151.952 +-403.144 -28.6752 147.976 +-405.008 -28.044 144.719 +-404.205 -27.2307 140.522 +-404.587 -26.503 136.767 +-402.943 -25.6492 132.361 +-405.435 -25.0615 129.328 +-392.55 -23.5466 121.511 +-382.618 -22.2543 114.842 +-377.967 -21.2995 109.914 +-379.314 -20.6922 106.781 +-378.418 -19.9651 103.028 +-379.416 -19.3409 99.8073 +-379.708 -18.6817 96.4056 +-378.512 -17.954 92.6501 +-379.03 -17.3116 89.3351 +-379.517 -16.6688 86.0182 +-380.267 -16.0381 82.7636 +-377.076 -15.248 78.6862 +-378.643 -14.6556 75.6289 +-380.086 -14.0554 72.5319 +-379.045 -13.365 68.9688 +-379.053 -12.7153 65.6165 +-380.016 -12.0981 62.4314 +-378.778 -11.4132 58.897 +-377.211 -10.7249 55.3449 +-376.797 -10.0744 51.9883 +-378.137 -9.47084 48.8735 +-378.756 -8.84734 45.656 +-378.452 -8.20313 42.3316 +-378.515 -7.56856 39.0569 +-3261.22 -59.7401 308.284 +-3263.83 -54.3237 280.333 +-3266.2 -48.9033 252.361 +-3268.32 -43.4788 224.369 +-3270.19 -38.0512 196.36 +-3271.81 -32.6207 168.336 +-3273.18 -27.1877 140.3 +-3274.3 -21.7526 112.253 +-3275.18 -16.316 84.1972 +-3275.8 -10.878 56.135 +-142.895 -0.237238 1.22425 +95.4 0 0 +94.7964 -0.150049 0.813554 +95.4855 -0.302302 1.63906 +95.4673 -0.453425 2.45844 +95.4418 -0.604513 3.27762 +96.5081 -0.764257 4.14374 +95.3691 -0.906539 4.91518 +96.4198 -1.06964 5.79947 +95.4669 -1.21082 6.56496 +96.1028 -1.37184 7.43801 +96.0332 -1.5239 8.26245 +96.1553 -1.67932 9.10513 +96.1703 -1.83334 9.94025 +95.979 -1.98343 10.754 +95.88 -2.13528 11.5773 +95.7736 -2.28695 12.3997 +96.3531 -2.45612 13.3169 +96.429 -2.6139 14.1724 +96.1021 -2.76076 14.9686 +95.867 -2.90977 15.7765 +95.6248 -3.05824 16.5815 +95.4741 -3.20949 17.4016 +95.1197 -3.35356 18.1827 +95.1507 -3.51121 19.0375 +94.9781 -3.66168 19.8533 +95.7746 -3.85113 20.8805 +95.5857 -4.00258 21.7017 +95.3895 -4.15372 22.5212 +95.186 -4.30454 23.3389 +95.7498 -4.49138 24.3519 +95.5301 -4.64275 25.1726 +95.3031 -4.79379 25.9915 +95.7417 -4.97944 26.9981 +95.6902 -5.14109 27.8746 +96.1086 -5.32948 28.896 +94.9902 -5.43231 29.4535 +95.5812 -5.63289 30.5411 +96.16 -5.83576 31.641 +95.8756 -5.98774 32.465 +95.5838 -6.13926 33.2866 +96.0366 -6.33996 34.3747 +95.6342 -6.48537 35.1631 +96.1588 -6.69498 36.2997 +95.833 -6.84692 37.1235 +96.5198 -7.07308 38.3497 +96.1759 -7.22559 39.1765 +96.7451 -7.44841 40.3847 +95.6494 -7.5434 40.8997 +96.2877 -7.77565 42.1589 +95.9099 -7.92777 42.9837 +96.3405 -8.14825 44.1792 +95.7643 -8.28481 44.9196 +96.171 -8.50763 46.1277 +95.758 -8.65954 46.9513 +96.1396 -8.88488 48.1731 +95.6198 -9.02833 48.9509 +95.9764 -9.25598 50.1852 +95.5274 -9.40754 51.0069 +95.7709 -9.62873 52.2062 +96.0002 -9.85139 53.4134 +95.5226 -10.003 54.2353 +95.8132 -10.2366 55.5022 +95.2313 -10.3785 56.2716 +95.4104 -10.6047 57.4978 +95.575 -10.8322 58.7313 +95.0502 -10.9831 59.5493 +95.1891 -11.2121 60.7912 +95.3965 -11.4525 62.0943 +95.588 -11.6943 63.4055 +95.6811 -11.9273 64.6691 +95.1036 -12.0783 65.4877 +95.1701 -12.3127 66.7582 +95.3022 -12.5588 68.0926 +95.4178 -12.8062 69.4344 +95.2772 -13.0223 70.6057 +95.3611 -13.2719 71.9594 +95.4281 -13.5229 73.32 +94.7738 -13.6734 74.1361 +94.7341 -13.9142 75.4418 +95.3728 -14.2598 77.3153 +94.6831 -14.4102 78.1307 +95.2789 -14.7597 80.0261 +95.2443 -15.0171 81.4213 +95.1923 -15.2754 82.8221 +95.1969 -15.5469 84.2939 +95.035 -15.795 85.6392 +94.8566 -16.0438 86.988 +94.8064 -16.3181 88.4757 +94.6651 -16.581 89.9007 +94.5057 -16.8446 91.3301 +94.328 -17.109 92.7634 +94.833 -17.5034 94.9022 +94.4735 -17.7442 96.2075 +94.3046 -18.0246 97.728 +93.9794 -18.2794 99.1094 +94.3124 -18.6681 101.217 +94.0798 -18.9514 102.753 +94.3571 -19.3441 104.882 +93.882 -19.5886 106.208 +93.8452 -19.9296 108.056 +93.5256 -20.2161 109.61 +93.6943 -20.6154 111.775 +93.8317 -21.0166 113.95 +93.8752 -21.4056 116.06 +93.3958 -21.682 117.558 +93.384 -22.0736 119.681 +93.1008 -22.409 121.5 +92.8518 -22.7596 123.401 +92.5762 -23.1111 125.307 +115.153 -29.2814 158.761 +115.862 -30.0123 162.724 +115.887 -30.5831 165.819 +115.529 -31.0661 168.438 +115.41 -31.6261 171.474 +115.572 -32.279 175.014 +115.304 -32.8279 177.99 +115.628 -33.5628 181.975 +115.211 -34.1002 184.889 +115.317 -34.81 188.737 +115.516 -35.5694 192.854 +115.15 -36.175 196.138 +115.67 -37.0821 201.056 +114.367 -37.4223 202.901 +111.56 -37.2671 202.059 +109.34 -37.2981 202.227 +107.08 -37.309 202.286 +104.917 -37.3478 202.497 +102.313 -37.2201 201.804 +100.124 -37.2341 201.88 +97.9413 -37.2437 201.932 +95.7653 -37.2493 201.963 +93.2645 -37.1189 201.256 +91.231 -37.1657 201.509 +91.3933 -38.1237 206.704 +91.2357 -38.9849 211.373 +91.0787 -39.8818 216.236 +90.7297 -40.7308 220.839 +90.6358 -41.7335 226.276 +90.2729 -42.6543 231.268 +90.1434 -43.7299 237.1 +90.1907 -44.9448 243.687 +90.0945 -46.1459 250.199 +89.5964 -47.1957 255.891 +89.9241 -48.7461 264.297 +89.4913 -49.9561 270.858 +89.3698 -51.4105 278.744 +86.8052 -51.4979 279.218 +86.2839 -52.8332 286.458 +82.3329 -52.0787 282.367 +82.1491 -53.7276 291.307 +78.7328 -53.295 288.961 +76.6914 -53.7864 291.625 +73.6652 -53.5889 290.554 +72.4381 -54.7263 296.721 +67.0354 -52.6651 285.546 +66.1656 -54.1328 293.504 +60.5231 -51.6452 280.016 +59.0927 -52.6811 285.632 +54.8003 -51.1345 277.247 +53.9417 -52.7886 286.216 +49.9586 -51.3895 278.63 +48.7221 -52.8084 286.323 +44.9123 -51.4323 278.862 +43.4264 -52.7034 285.753 +39.7478 -51.2973 278.13 +38.2311 -52.6709 285.577 +34.7328 -51.3073 278.184 +33.2931 -53.0001 287.362 +29.7906 -51.4094 278.738 +28.0732 -52.8809 286.716 +24.7697 -51.3514 278.423 +22.863 -52.6905 285.684 +19.8806 -51.5667 279.59 +17.8323 -52.8815 286.719 +14.8268 -51.3138 278.219 +12.6583 -52.5857 285.115 +9.91495 -51.4979 279.218 +7.62796 -52.8352 286.468 +4.9495 -51.4308 278.854 +2.54029 -52.797 286.261 +1.73343e-14 -51.3479 278.404 +-2.54553 -52.9058 286.851 +-4.9495 -51.4308 278.854 +-7.62011 -52.7808 286.173 +-9.92542 -51.5524 279.513 +-12.7499 -52.9662 287.178 +-14.9157 -51.6216 279.888 +-17.8628 -52.972 287.21 +-19.8876 -51.5848 279.689 +-23.0434 -53.1064 287.939 +-25.0311 -51.8933 281.362 +-28.2074 -53.1336 288.086 +-30.1878 -52.0949 282.454 +-33.4063 -53.1804 288.34 +-35.3299 -52.1894 282.966 +-38.8315 -53.4982 290.063 +-40.2767 -51.9799 281.831 +-43.7516 -53.0981 287.893 +-45.5381 -52.1489 282.747 +-49.0521 -53.1661 288.262 +-50.9136 -52.372 283.957 +-54.5431 -53.3772 289.407 +-56.2696 -52.5055 284.681 +-59.8503 -53.3563 289.294 +-61.6042 -52.5677 285.018 +-65.5379 -53.6192 290.719 +-66.9229 -52.5768 285.067 +-70.944 -53.5976 290.602 +-72.7217 -52.9025 286.833 +-77.4425 -54.3131 294.481 +-79.2504 -53.6453 290.86 +-84.3939 -55.1957 299.267 +-85.7232 -54.2231 293.993 +-90.0045 -55.1115 298.81 +-90.4306 -53.6487 290.879 +-95.3839 -54.8701 297.501 +-96.0734 -53.6302 290.779 +-101.664 -55.1103 298.803 +-101.903 -53.6781 291.038 +-107.586 -55.1048 298.774 +-107.531 -53.586 290.539 +-110.455 -53.5836 290.526 +-113.244 -53.5083 290.118 +-119.993 -55.251 299.566 +-119.949 -53.848 291.96 +-100.187 -43.8701 237.86 +-100.066 -42.7581 231.831 +-99.8069 -41.6334 225.733 +-99.4878 -40.5293 219.747 +-100.314 -39.9248 216.469 +-102.569 -39.896 216.313 +-104.916 -39.8958 216.312 +-107.226 -39.8749 216.199 +-109.452 -39.8172 215.886 +-111.772 -39.788 215.727 +-114.19 -39.7866 215.72 +-114.175 -38.9477 211.171 +-119.003 -39.7538 215.542 +-120.136 -39.3101 213.136 +-124.14 -39.7973 215.778 +-110.8 -34.8083 188.728 +-110.237 -33.9441 184.042 +-111.145 -33.5506 181.909 +-112.337 -33.2497 180.277 +-113.986 -33.086 179.389 +-115.734 -32.9503 178.654 +-117.315 -32.7658 177.654 +-118.666 -32.5182 176.311 +-121.009 -32.5398 176.428 +-123.59 -32.616 176.841 +-133.529 -34.5885 187.536 +-164.223 -41.7589 226.413 +-165.638 -41.3506 224.2 +-166.788 -40.8826 221.662 +-165.258 -39.777 215.668 +-166.374 -39.3268 213.227 +-169.799 -39.4193 213.728 +-171.503 -39.1066 212.033 +-173.126 -38.7772 210.247 +-178.992 -39.3834 213.534 +-284.562 -61.5102 333.503 +-297.967 -63.2779 343.087 +-294.767 -61.5034 333.467 +-307.654 -63.0722 341.972 +-163.268 -32.8886 178.319 +-163.02 -32.2679 174.954 +-317.197 -61.6961 334.511 +-332.2 -63.4941 344.26 +-330.935 -62.1568 337.009 +-345.688 -63.804 345.94 +-343.583 -62.3182 337.884 +-361.903 -64.5052 349.742 +-356.936 -62.5188 338.972 +-371.609 -63.9617 346.795 +-368.163 -62.2701 337.624 +-383.827 -63.7926 345.878 +-379.152 -61.9204 335.728 +-398.594 -63.962 346.797 +-394.864 -62.2578 337.557 +-413.053 -63.9863 346.929 +-409.91 -62.3858 338.251 +-423.082 -63.2575 342.977 +-415.695 -61.0558 331.04 +-435.521 -62.8344 340.683 +-424.58 -60.1661 326.216 +-453.322 -63.0914 342.076 +-142.077 -19.4188 105.287 +-142.363 -19.1068 103.596 +-142.872 -18.8275 102.081 +-141.982 -18.369 99.5952 +-140.894 -17.8938 97.0188 +-141.667 -17.6598 95.7503 +-144.087 -17.6277 95.5757 +-148.432 -17.8194 96.6153 +-548.323 -64.5858 350.179 +-381.297 -44.0589 238.884 +-380.604 -43.1366 233.883 +-379.681 -42.2009 228.81 +-381.097 -41.5329 225.188 +-381.443 -40.7531 220.96 +-379.233 -39.7126 215.318 +-379.562 -38.9501 211.184 +-380.46 -38.251 207.394 +-378.77 -37.3012 202.244 +-379.844 -36.6322 198.617 +-381.947 -36.0631 195.531 +-733.744 -67.8099 367.66 +-739.842 -66.905 362.754 +-746.269 -66.0177 357.943 +-751.763 -65.037 352.626 +-403.851 -34.1568 185.195 +-405.206 -33.4937 181.6 +-403.787 -32.6077 176.796 +-404.148 -31.8733 172.814 +-405.114 -31.1898 169.109 +-400.871 -30.117 163.292 +-404.345 -29.6309 160.656 +-401.94 -28.7173 155.703 +-404.427 -28.1579 152.67 +-402.488 -27.2944 147.988 +-403.316 -26.6253 144.36 +-403.828 -25.9375 140.631 +-403.358 -25.191 136.583 +-402.184 -24.4078 132.337 +-403.248 -23.7646 128.85 +-395.22 -22.6018 122.545 +-383.096 -21.2436 115.181 +-379.884 -20.4099 110.661 +-380.179 -19.7729 107.207 +-378.899 -19.0588 103.335 +-377.967 -18.3692 99.5962 +-380.676 -17.8565 96.8165 +-379.483 -17.1611 93.0464 +-379.613 -16.5302 89.6255 +-380.004 -15.9124 86.2758 +-375.483 -15.0983 81.862 +-379.326 -14.6241 79.2909 +-379.427 -14.0015 75.9149 +-378.81 -13.3554 72.4119 +-378.553 -12.7256 68.997 +-379.446 -12.1353 65.7969 +-379.227 -11.5104 62.4082 +-376.704 -10.8217 58.6745 +-379.98 -10.3001 55.8465 +-379.669 -9.67812 52.474 +-379.228 -9.0555 49.0982 +-378.656 -8.43282 45.722 +-378.153 -7.81466 42.3705 +-380.206 -7.24806 39.2984 +-3261.22 -56.956 308.811 +-3263.83 -51.792 280.812 +-3266.2 -46.6241 252.792 +-3268.32 -41.4525 224.752 +-3270.19 -36.2778 196.695 +-3271.81 -31.1004 168.624 +-3273.18 -25.9206 140.54 +-3274.3 -20.7389 112.444 +-3275.18 -15.5556 84.341 +-3275.8 -10.371 56.2309 +-144.395 -0.228555 1.23921 +95.5 0 0 +95.6964 -0.144061 0.82261 +95.4855 -0.287508 1.64171 +95.4673 -0.431237 2.46242 +96.3413 -0.580349 3.31388 +95.4091 -0.718581 4.1032 +95.3691 -0.862177 4.92315 +96.2202 -1.01519 5.79686 +96.3647 -1.1624 6.63747 +96.3022 -1.30742 7.46553 +96.0332 -1.44933 8.27586 +95.2594 -1.58226 9.03494 +96.0708 -1.74182 9.94603 +96.0784 -1.88834 10.7827 +95.9792 -2.0329 11.6081 +95.7736 -2.17504 12.4198 +95.4618 -2.31433 13.2152 +96.2312 -2.4809 14.1663 +95.2132 -2.60138 14.8542 +95.867 -2.76737 15.8021 +95.7233 -2.91159 16.6256 +95.4741 -3.05243 17.4298 +95.316 -3.19604 18.2499 +95.1507 -3.33939 19.0684 +94.9781 -3.4825 19.8856 +95.677 -3.65895 20.8931 +95.4883 -3.80283 21.7147 +95.2923 -3.94642 22.5346 +95.9622 -4.12729 23.5674 +94.9753 -4.23704 24.1941 +95.5301 -4.41556 25.2135 +95.3031 -4.5592 26.0337 +95.9339 -4.74528 27.0962 +95.4984 -4.87971 27.8638 +95.248 -5.02328 28.6837 +95.8486 -5.21315 29.7679 +95.5812 -5.35724 30.5906 +96.16 -5.55019 31.6924 +95.8756 -5.69473 32.5177 +95.4896 -5.83307 33.3077 +96.0366 -6.02971 34.4305 +95.6342 -6.168 35.2202 +95.3186 -6.31173 36.0409 +95.833 -6.51187 37.1837 +96.5198 -6.72696 38.4119 +96.1759 -6.872 39.2401 +95.9166 -7.02327 40.1039 +96.4747 -7.23617 41.3196 +96.105 -7.38112 42.1473 +96.5469 -7.5899 43.3394 +96.1593 -7.73494 44.1676 +95.9448 -7.89424 45.0773 +96.171 -8.09131 46.2025 +95.758 -8.23578 47.0275 +96.0505 -8.44226 48.2065 +96.4181 -8.65822 49.4397 +96.0647 -8.81112 50.3128 +95.4395 -8.93893 51.0426 +95.7709 -9.15754 52.2909 +96.0002 -9.3693 53.5001 +95.436 -9.50484 54.274 +95.8132 -9.7357 55.5922 +95.2313 -9.87066 56.3629 +95.4104 -10.0858 57.5911 +95.4902 -10.293 58.7744 +95.8093 -10.529 60.1222 +95.1891 -10.6634 60.8898 +95.3131 -10.8825 62.1407 +95.588 -11.122 63.5084 +95.6811 -11.3437 64.774 +95.7589 -11.5664 66.046 +95.2515 -11.7201 66.9237 +95.3022 -11.9442 68.2031 +95.4178 -12.1796 69.5471 +95.2772 -12.385 70.7202 +95.3611 -12.6225 72.0762 +95.4281 -12.8611 73.4389 +95.3999 -13.0902 74.7469 +94.6564 -13.2225 75.5021 +95.45 -13.5729 77.5034 +94.6831 -13.705 78.2575 +95.2789 -14.0375 80.1559 +94.5651 -14.1804 80.9719 +95.1174 -14.5165 82.8912 +95.1225 -14.7745 84.3648 +95.035 -15.0221 85.7782 +94.8566 -15.2587 87.1292 +94.1536 -15.4127 88.009 +94.7371 -15.7816 90.115 +94.5057 -16.0203 91.4783 +95.0352 -16.3937 93.6105 +94.6928 -16.6223 94.9156 +94.543 -16.8883 96.4345 +94.3046 -17.1426 97.8866 +94.1158 -17.4101 99.414 +94.3124 -17.7546 101.381 +94.682 -18.1394 103.579 +94.2246 -18.3718 104.905 +94.4725 -18.7471 107.049 +93.9102 -18.9674 108.307 +94.1041 -19.3459 110.468 +93.6943 -19.6065 111.956 +93.7687 -19.9748 114.059 +93.813 -20.3447 116.171 +93.3958 -20.621 117.749 +93.2623 -20.9662 119.72 +93.5221 -21.4088 122.248 +92.6734 -21.6043 123.364 +92.6937 -22.0081 125.669 +115.211 -27.8626 159.1 +115.69 -28.5012 162.746 +115.32 -28.9444 165.277 +115.473 -29.5316 168.63 +115.41 -30.0784 171.752 +115.409 -30.656 175.05 +115.788 -31.3523 179.026 +115.522 -31.8911 182.103 +115.315 -32.461 185.357 +115.317 -33.1065 189.043 +115.516 -33.8288 193.167 +115.15 -34.4048 196.456 +115.621 -35.2524 201.296 +113.882 -35.4401 202.368 +111.56 -35.4434 202.387 +109.34 -35.4729 202.555 +107.08 -35.4832 202.614 +104.917 -35.5202 202.825 +102.269 -35.3834 202.044 +100.124 -35.412 202.208 +97.9843 -35.4367 202.348 +95.8076 -35.4422 202.38 +93.2645 -35.3025 201.582 +91.109 -35.2997 201.566 +91.3933 -36.2581 207.039 +91.4311 -37.1565 212.169 +91.1169 -37.9462 216.678 +90.8796 -38.8017 221.563 +90.7824 -39.7554 227.009 +90.8104 -40.8085 233.023 +90.3185 -41.6709 237.947 +89.8829 -42.5994 243.249 +90.1279 -43.9039 250.698 +89.6289 -44.9023 256.399 +89.6703 -46.2297 263.979 +89.5222 -47.5278 271.391 +89.3698 -48.8947 279.196 +89.2318 -50.347 287.489 +88.9252 -51.786 295.706 +85.5027 -51.437 293.713 +84.3137 -52.4448 299.467 +81.2433 -52.3032 298.659 +77.9934 -52.0227 297.057 +76.8344 -53.1591 303.546 +75.2161 -54.0444 308.601 +71.0395 -53.0798 303.093 +69.4338 -54.0268 308.501 +64.7645 -52.56 300.125 +61.9037 -52.4865 299.706 +57.6052 -51.1214 291.91 +55.7823 -51.9185 296.462 +52.216 -51.0832 291.693 +50.4881 -52.0446 297.182 +47.0711 -51.2666 292.74 +45.1558 -52.1203 297.615 +41.571 -51.0248 291.359 +39.7713 -52.1115 297.564 +36.4633 -51.2278 292.518 +34.3911 -52.0691 297.322 +31.1599 -51.141 292.023 +29.2234 -52.3535 298.946 +25.9637 -51.1926 292.317 +23.9457 -52.4852 299.698 +20.7874 -51.2802 292.818 +18.6564 -52.6182 300.457 +15.6013 -51.3522 293.228 +13.269 -52.425 299.354 +10.3686 -51.219 292.468 +7.98397 -52.5949 300.324 +5.17464 -51.139 292.011 +2.66072 -52.5937 300.317 +1.82283e-14 -51.3537 293.237 +-2.66857 -52.7489 301.204 +-5.20605 -51.4495 293.784 +-7.97873 -52.5606 300.128 +-10.421 -51.4776 293.944 +-13.4042 -52.9594 302.406 +-15.6013 -51.3522 293.228 +-18.8152 -53.0658 303.013 +-20.8781 -51.504 294.095 +-24.2046 -53.0527 302.939 +-26.1467 -51.5535 294.378 +-29.6547 -53.1264 303.359 +-31.4213 -51.5699 294.471 +-35.093 -53.1317 303.39 +-36.9873 -51.964 296.722 +-40.5806 -53.1719 303.619 +-42.2669 -51.8788 296.236 +-46.1609 -53.2806 304.24 +-47.6499 -51.8971 296.34 +-51.9405 -53.5417 305.731 +-53.1711 -52.0175 297.028 +-57.6229 -53.6316 306.244 +-58.6356 -52.0358 297.132 +-63.3193 -53.6866 306.559 +-64.8269 -52.6106 300.414 +-69.2607 -53.8921 307.732 +-70.1172 -52.3906 299.158 +-75.8231 -54.4805 311.092 +-76.7134 -53.0755 303.069 +-84.8538 -56.5986 323.186 +-85.7467 -55.2024 315.214 +-91.1283 -56.6837 323.672 +-90.9879 -54.7368 312.555 +-94.4635 -55.0113 314.122 +-94.6115 -53.3823 304.821 +-101.578 -55.5742 317.336 +-101.821 -54.0573 308.675 +-107.281 -55.3088 315.822 +-107.47 -53.8405 307.437 +-113.461 -55.2702 315.601 +-114.064 -54.0598 308.689 +-111.191 -51.3008 292.935 +-117.76 -52.9192 302.176 +-100.971 -44.2173 252.487 +-100.469 -42.8961 244.943 +-99.7273 -41.532 237.154 +-99.7146 -40.5229 231.391 +-99.7271 -39.5645 225.919 +-99.5691 -38.5776 220.284 +-100.273 -37.9554 216.731 +-102.569 -37.9436 216.664 +-104.916 -37.9435 216.663 +-107.226 -37.9236 216.549 +-109.542 -37.8996 216.412 +-111.772 -37.841 216.078 +-114.19 -37.8396 216.07 +-116.664 -37.8489 216.123 +-119.194 -37.8691 216.238 +-121.105 -37.6882 215.205 +-124.288 -37.8948 216.385 +-110.7 -33.0751 188.864 +-110.593 -32.387 184.934 +-110.785 -31.8053 181.613 +-112.651 -31.7108 181.073 +-114.198 -31.5254 180.014 +-116.11 -31.4396 179.525 +-117.043 -31.09 177.528 +-118.832 -30.9702 176.845 +-120.674 -30.8616 176.224 +-123.59 -31.0199 177.128 +-131.751 -32.4577 185.338 +-164.92 -39.8839 227.743 +-164.404 -39.034 222.89 +-164.409 -38.3274 218.855 +-166.342 -38.0785 217.434 +-166.618 -37.4572 213.886 +-168.507 -37.205 212.446 +-171.69 -37.2333 212.607 +-168.595 -35.9143 205.076 +-177.466 -37.1367 212.056 +-299.282 -61.5261 351.323 +-311.54 -62.9229 359.299 +-310.25 -61.5662 351.552 +-324.419 -63.2544 361.192 +-163.469 -31.3177 178.828 +-161.939 -30.4853 174.076 +-334.52 -61.8813 353.351 +-353.47 -64.2534 366.896 +-349.76 -62.478 356.759 +-368.748 -64.7297 369.616 +-365.079 -62.9767 359.606 +-382.588 -64.8551 370.332 +-379.883 -63.282 361.35 +-397.36 -65.0471 371.428 +-390.323 -62.7877 358.527 +-407.936 -64.4818 368.2 +-401.967 -62.434 356.507 +-424.658 -64.8099 370.074 +-422.335 -63.3307 361.627 +-436.929 -64.3729 367.579 +-430.9 -62.3711 356.148 +-448.082 -63.7171 363.834 +-442.274 -61.7808 352.777 +-465.182 -63.8296 364.476 +-455.628 -61.4063 350.639 +-475.377 -62.9234 359.302 +-141.518 -18.3959 105.043 +-142.524 -18.1924 103.881 +-142.711 -17.8858 102.131 +-141.249 -17.3799 99.2417 +-140.894 -17.0182 97.1762 +-141.502 -16.7761 95.7941 +-144.667 -16.8326 96.1164 +-147.765 -16.8712 96.3371 +-584.973 -65.5309 374.191 +-379.948 -41.7545 238.424 +-379.926 -40.9526 233.845 +-381.471 -40.325 230.262 +-380.411 -39.4294 225.148 +-381.099 -38.7239 221.119 +-382.264 -38.0711 217.392 +-379.997 -37.0865 211.769 +-379.235 -36.2621 207.062 +-381.143 -35.6982 203.842 +-381.257 -34.9692 199.679 +-380.705 -34.1869 195.212 +-734.011 -64.5151 368.39 +-739.395 -63.5925 363.123 +-746.089 -62.772 358.437 +-403.817 -33.2257 189.724 +-403.035 -32.4196 185.121 +-402.658 -31.6544 180.751 +-404.609 -31.0751 177.444 +-402.314 -30.1759 172.309 +-404.746 -29.6365 169.229 +-402.442 -28.7555 164.198 +-405.179 -28.239 161.249 +-403.708 -27.4321 156.641 +-405.547 -26.8542 153.341 +-402.394 -25.9527 148.194 +-400.685 -25.1571 143.651 +-403.451 -24.6451 140.727 +-404.209 -24.0088 137.094 +-405.029 -23.3776 133.489 +-403.438 -22.6124 129.12 +-398.654 -21.6826 123.811 +-382.809 -20.1889 115.282 +-380.651 -19.4502 111.064 +-380.179 -18.8053 107.381 +-380.249 -18.1906 103.871 +-378.45 -17.4925 99.8849 +-380.676 -16.9827 96.9736 +-378.803 -16.2921 93.0305 +-380.099 -15.7414 89.8858 +-379.322 -15.1066 86.2606 +-379.779 -14.5238 82.9329 +-380.108 -13.9372 79.5833 +-379.427 -13.3163 76.0381 +-378.81 -12.7018 72.5294 +-378.75 -12.1091 69.1448 +-378.659 -11.5175 65.7668 +-378.635 -10.93 62.412 +-378.976 -10.3542 59.1241 +-379.485 -9.78334 55.8643 +-379.372 -9.1973 52.5179 +-378.831 -8.60336 49.1264 +-379.947 -8.04748 45.9523 +-379.942 -7.46741 42.64 +-380.802 -6.90419 39.4239 +-3261.22 -54.1688 309.312 +-3263.83 -49.2575 281.267 +-3266.2 -44.3426 253.203 +-3268.32 -39.424 225.117 +-3270.19 -34.5026 197.015 +-3271.81 -29.5785 168.898 +-3273.18 -24.6522 140.768 +-3274.3 -19.724 112.627 +-3275.18 -14.7943 84.4778 +-3275.8 -9.86352 56.3221 +-142.495 -0.214511 1.22489 +95.5 0 0 +95.6964 -0.136634 0.823876 +95.3855 -0.272401 1.64253 +95.4673 -0.409005 2.46621 +95.4418 -0.54529 3.28799 +95.4091 -0.681535 4.10952 +96.2679 -0.825435 4.97721 +96.2202 -0.962848 5.80578 +96.3647 -1.10247 6.64768 +96.1028 -1.23745 7.46155 +96.0332 -1.37461 8.2886 +95.9562 -1.51166 9.11503 +96.0708 -1.65202 9.96134 +95.979 -1.78912 10.788 +95.88 -1.9261 11.614 +95.7736 -2.0629 12.4389 +95.6599 -2.19957 13.2629 +95.3411 -2.33122 14.0568 +95.2132 -2.46726 14.8771 +95.867 -2.6247 15.8264 +95.6248 -2.75863 16.634 +95.5724 -2.89804 17.4746 +95.1197 -3.02502 18.2403 +95.1507 -3.16723 19.0978 +95.8585 -3.33357 20.1008 +95.7746 -3.47385 20.9466 +95.5857 -3.61046 21.7703 +95.2923 -3.74297 22.5693 +95.186 -3.88284 23.4127 +95.8466 -4.05546 24.4536 +95.5301 -4.18792 25.2523 +95.3031 -4.32415 26.0738 +95.9339 -4.50064 27.1379 +95.4984 -4.62814 27.9067 +95.248 -4.76431 28.7278 +94.9902 -4.90012 29.5467 +95.5812 -5.08105 30.6377 +96.16 -5.26405 31.7412 +95.781 -5.39582 32.5357 +95.5838 -5.53782 33.3919 +96.0366 -5.71885 34.4835 +95.7279 -5.85574 35.3089 +96.1588 -6.03909 36.4145 +95.74 -6.17016 37.2048 +96.4271 -6.37403 38.4341 +96.1759 -6.51771 39.3005 +95.9166 -6.66118 40.1656 +96.383 -6.85658 41.3438 +96.105 -7.00059 42.2121 +95.7279 -7.13753 43.0379 +96.3405 -7.34999 44.319 +95.9448 -7.48726 45.1467 +96.171 -7.67416 46.2737 +95.937 -7.82578 47.1879 +96.1396 -8.01445 48.3255 +95.7085 -8.15141 49.1514 +95.8881 -8.34151 50.2976 +96.2305 -8.54836 51.5449 +95.6834 -8.67749 52.3235 +96.0002 -8.88627 53.5824 +95.436 -9.01482 54.3575 +95.8132 -9.23378 55.6778 +95.317 -9.37021 56.5005 +95.581 -9.58288 57.7829 +95.4902 -9.76233 58.8649 +95.0502 -9.90709 59.7378 +95.1891 -10.1137 60.9835 +94.5627 -10.2402 61.7463 +94.8419 -10.4663 63.1097 +95.5986 -10.7496 64.8178 +95.0216 -10.8857 65.6384 +95.1701 -11.1064 66.9695 +95.3022 -11.3284 68.3081 +95.4178 -11.5516 69.6541 +95.2772 -11.7465 70.8291 +95.3611 -11.9717 72.1871 +95.3493 -12.188 73.4912 +95.3999 -12.4153 74.862 +95.3558 -12.6334 76.1771 +95.3728 -12.8628 77.5599 +94.7597 -13.009 78.4414 +95.2789 -13.3138 80.2793 +95.2443 -13.5459 81.679 +95.1923 -13.7789 83.0842 +95.1225 -14.0128 84.4946 +94.3715 -14.1481 85.3103 +94.9297 -14.4832 87.3306 +94.7339 -14.7082 88.6877 +94.7371 -14.968 90.2538 +94.5057 -15.1944 91.6191 +94.328 -15.4328 93.057 +94.7629 -15.777 95.1321 +94.543 -16.0176 96.5829 +94.9929 -16.3775 98.7532 +94.6614 -16.6082 100.144 +94.3124 -16.8392 101.537 +94.682 -17.2042 103.738 +94.2246 -17.4246 105.067 +94.4725 -17.7806 107.214 +93.9102 -17.9896 108.473 +93.5256 -18.2356 109.957 +93.7579 -18.6083 112.204 +93.7687 -18.945 114.235 +93.8752 -19.3086 116.427 +93.2727 -19.5322 117.775 +93.871 -20.015 120.687 +93.5221 -20.3051 122.436 +92.4949 -20.451 123.316 +93.3991 -21.0323 126.821 +115.211 -26.4262 159.345 +115.69 -27.0319 162.997 +115.434 -27.4792 165.694 +115.473 -28.0091 168.889 +115.52 -28.5549 172.18 +115.355 -29.0618 175.237 +115.358 -29.6255 178.636 +115.469 -30.2332 182.3 +115.315 -30.7875 185.642 +115.523 -31.4558 189.672 +115.059 -31.9578 192.699 +115.15 -32.631 196.759 +115.67 -33.4492 201.692 +113.833 -33.5988 202.594 +111.56 -33.6161 202.698 +109.34 -33.6441 202.867 +107.126 -33.6685 203.014 +104.463 -33.5431 202.258 +102.313 -33.5737 202.443 +99.7294 -33.454 201.721 +97.5969 -33.4769 201.859 +95.4272 -33.4815 201.886 +93.2645 -33.4824 201.892 +91.4344 -33.5994 202.598 +91.3933 -34.3888 207.358 +91.5092 -35.271 212.677 +91.27 -36.0503 217.376 +90.9545 -36.8315 222.087 +90.8923 -37.7516 227.635 +90.5954 -38.613 232.829 +90.4586 -39.5837 238.682 +90.2591 -40.5724 244.643 +89.9609 -41.5634 250.619 +89.694 -42.6183 256.98 +89.6386 -43.8308 264.291 +89.5222 -45.0775 271.808 +89.3998 -46.3895 279.719 +89.495 -47.8923 288.781 +89.0104 -49.1633 296.445 +88.3142 -50.3894 303.838 +87.5206 -51.633 311.337 +83.8833 -51.2187 308.839 +82.6755 -52.3026 315.374 +80.052 -52.5299 316.745 +78.1575 -53.2625 321.162 +74.5263 -52.8142 318.459 +72.7237 -53.6693 323.615 +67.405 -51.8827 312.842 +65.0936 -52.3457 315.634 +60.0476 -50.5416 304.755 +58.5887 -51.7192 311.856 +54.2303 -50.3186 303.411 +52.7822 -51.6044 311.164 +48.8076 -50.4174 304.007 +47.1808 -51.6502 311.44 +43.3803 -50.5005 304.508 +41.5073 -51.5823 311.031 +37.9623 -50.5841 305.012 +36.0326 -51.7418 311.993 +32.5293 -50.636 305.325 +30.5652 -51.9345 313.155 +27.1752 -50.819 306.429 +24.9735 -51.916 313.043 +21.7082 -50.7909 306.259 +19.3463 -51.7508 312.047 +16.3236 -50.9596 307.276 +13.8579 -51.929 313.121 +10.9061 -51.0965 308.102 +8.33736 -52.0914 314.101 +5.45562 -51.1361 308.34 +2.7794 -52.1073 314.196 +1.91773e-14 -51.2421 308.98 +-2.77678 -52.0582 313.901 +-5.45562 -51.1361 308.34 +-8.3138 -51.9442 313.213 +-10.9201 -51.1618 308.495 +-13.8928 -52.0597 313.909 +-16.512 -51.5478 310.823 +-19.5416 -52.2734 315.198 +-22.05 -51.5906 311.081 +-25.1148 -52.2095 314.813 +-27.5586 -51.5361 310.753 +-30.7952 -52.3254 315.512 +-33.1982 -51.6773 311.604 +-36.508 -52.4245 316.109 +-38.8885 -51.8182 312.453 +-42.2774 -52.5394 316.802 +-44.3405 -51.6183 311.248 +-47.9198 -52.4592 316.319 +-49.9339 -51.5808 311.022 +-53.6735 -52.4757 316.418 +-55.8279 -51.801 312.35 +-59.5728 -52.588 317.095 +-61.6885 -51.9227 313.084 +-65.8313 -52.9389 319.211 +-67.1555 -51.6907 311.685 +-71.6848 -52.9026 318.992 +-73.9639 -52.4157 316.056 +-79.815 -54.3921 327.973 +-83.1486 -54.5619 328.997 +-88.5344 -56.0092 337.724 +-90.0431 -54.9799 331.518 +-93.48 -55.1488 332.536 +-94.4058 -53.8651 324.796 +-99.519 -54.9675 331.443 +-100.868 -53.9785 325.479 +-106.029 -55.0184 331.75 +-107.136 -53.9467 325.288 +-112.421 -54.9709 331.464 +-113.233 -53.8028 324.42 +-118.335 -54.6723 329.663 +-119.502 -53.7174 323.905 +-102.401 -44.8095 270.193 +-101.203 -43.1342 260.091 +-100.091 -41.5724 250.673 +-99.9825 -40.4873 244.131 +-99.689 -39.3758 237.428 +-99.7927 -38.4638 231.929 +-99.6474 -37.4946 226.085 +-99.5691 -36.5887 220.623 +-100.19 -35.9688 216.885 +-102.231 -35.8688 216.282 +-104.916 -35.9873 216.996 +-107.226 -35.9685 216.883 +-109.542 -35.9457 216.746 +-111.455 -35.788 215.795 +-114.098 -35.8597 216.227 +-116.945 -35.9843 216.978 +-118.765 -35.7874 215.791 +-121.542 -35.8739 216.312 +-123.845 -35.8129 215.944 +-110.65 -31.3557 189.069 +-110.085 -30.5763 184.369 +-110.939 -30.2077 182.146 +-112.337 -29.9924 180.848 +-113.774 -29.7892 179.623 +-115.842 -29.7497 179.385 +-116.934 -29.4598 177.637 +-118.887 -29.3872 177.199 +-120.786 -29.2977 176.659 +-123.08 -29.2995 176.67 +-129.456 -30.2484 182.392 +-165.791 -38.0275 229.298 +-165.638 -37.2996 224.909 +-167.086 -36.9433 222.76 +-168.267 -36.5334 220.289 +-166.009 -35.3962 213.432 +-169.122 -35.4158 213.55 +-171.876 -35.3522 213.166 +-174.699 -35.2962 212.829 +-176.575 -35.0454 211.317 +-313.23 -61.0739 368.263 +-326.932 -62.6273 377.63 +-325.93 -61.3433 369.888 +-340.785 -63.02 379.998 +-162.599 -29.545 178.151 +-163.696 -29.2273 176.235 +-354.707 -62.2329 375.252 +-368.958 -63.6111 383.562 +-371.017 -62.8582 379.022 +-384.519 -64.0181 386.017 +-385.232 -63.0272 380.041 +-399.42 -64.2177 387.22 +-400.241 -63.2359 381.3 +-418.468 -64.9708 391.761 +-414.458 -63.2327 381.28 +-432.487 -64.8382 390.961 +-430.207 -63.3753 382.14 +-452.07 -65.4363 394.568 +-446.788 -63.5434 383.154 +-462.327 -64.603 389.543 +-454.801 -62.4367 376.481 +-469.379 -63.3043 381.712 +-467.842 -61.9832 373.746 +-486.782 -63.3498 381.987 +-477.85 -61.081 368.306 +-385.728 -48.4248 291.992 +-140.959 -17.3785 104.789 +-142.604 -17.2643 104.1 +-142.711 -16.9637 102.288 +-141.982 -16.5694 99.9104 +-140.894 -16.1408 97.3258 +-141.667 -15.9298 96.0532 +-143.921 -15.8824 95.7678 +-147.514 -15.9743 96.3221 +-643.68 -68.3899 412.377 +-380.201 -39.6284 238.951 +-378.399 -38.6852 233.264 +-381.045 -38.2034 230.359 +-382.725 -37.6242 226.866 +-381.099 -36.7275 221.459 +-380.272 -35.9202 216.592 +-380.781 -35.247 212.532 +-379.585 -34.4243 207.572 +-380.352 -33.7874 203.731 +-380.904 -33.1356 199.801 +-380.262 -32.3866 195.285 +-733.12 -61.1148 368.51 +-739.126 -60.2921 363.549 +-745.01 -59.4497 358.47 +-406.795 -31.7451 191.417 +-407.295 -31.0733 187.366 +-402.658 -30.0225 181.029 +-404.153 -29.4397 177.515 +-404.423 -28.7702 173.479 +-404.01 -28.0575 169.181 +-404.936 -27.442 165.47 +-405.179 -26.7832 161.497 +-405.011 -26.1017 157.388 +-404.614 -25.4112 153.224 +-404.08 -24.7178 149.043 +-400.309 -23.8379 143.738 +-403.074 -23.3528 140.813 +-404.587 -22.7924 137.434 +-402.848 -22.0529 132.975 +-404.104 -21.4819 129.532 +-396.365 -20.4466 123.289 +-382.713 -19.1433 115.43 +-378.926 -18.3639 110.731 +-379.506 -17.8042 107.356 +-380.634 -17.2703 104.137 +-380.188 -16.6669 100.498 +-379.03 -16.0375 96.703 +-378.415 -15.4364 93.0782 +-379.03 -14.8879 89.7708 +-380.199 -14.3609 86.5932 +-380.463 -13.7998 83.21 +-379.717 -13.205 79.6237 +-379.231 -12.6233 76.1158 +-380.184 -12.0907 72.9045 +-377.963 -11.461 69.1074 +-377.477 -10.8897 65.6624 +-380.213 -10.4097 62.7686 +-378.877 -9.81786 59.1997 +-379.386 -9.27654 55.9357 +-375.906 -8.64345 52.1182 +-376.947 -8.11924 48.9574 +-379.252 -7.61864 45.9388 +-380.041 -7.08427 42.7167 +-379.311 -6.52261 39.33 +-3261.22 -51.3761 309.788 +-3263.83 -46.718 281.7 +-3266.2 -42.0565 253.592 +-3268.32 -37.3915 225.463 +-3270.19 -32.7238 197.318 +-3271.81 -28.0536 169.158 +-3273.18 -23.3813 140.984 +-3274.3 -18.7071 112.8 +-3275.18 -14.0316 84.6079 +-143.078 -0.408602 2.46379 +-142.595 -0.203594 1.22763 +95.6 0 0 +95.5964 -0.129061 0.824214 +95.3855 -0.257572 1.64492 +96.4669 -0.390789 2.49567 +95.5418 -0.516145 3.29622 +96.4082 -0.651181 4.1586 +95.469 -0.774022 4.94309 +96.32 -0.911376 5.82026 +96.3647 -1.04245 6.65736 +96.2025 -1.17129 7.48015 +96.1328 -1.30112 8.30928 +96.1553 -1.43234 9.14724 +96.0708 -1.56209 9.97584 +95.979 -1.69173 10.8038 +95.88 -1.82124 11.6309 +95.8727 -1.95263 12.4699 +95.6599 -2.07983 13.2822 +95.5389 -2.20889 14.1065 +95.3119 -2.33536 14.9142 +94.9793 -2.45885 15.7028 +95.7233 -2.61115 16.6754 +95.5724 -2.74028 17.5001 +95.316 -2.86625 18.3046 +95.1507 -2.99481 19.1255 +95.8585 -3.15209 20.13 +95.677 -3.28139 20.9557 +95.5857 -3.41391 21.802 +95.2923 -3.53921 22.6022 +95.089 -3.66772 23.4229 +95.8466 -3.83469 24.4892 +95.5301 -3.95993 25.289 +95.3031 -4.08875 26.1117 +95.9339 -4.25563 27.1774 +95.5943 -4.38058 27.9754 +95.3436 -4.50948 28.7986 +95.9439 -4.67988 29.8868 +95.6763 -4.80923 30.7128 +95.4014 -4.9382 31.5365 +95.9701 -5.11215 32.6474 +96.5265 -5.28798 33.7703 +96.1306 -5.41281 34.5675 +95.6342 -5.53155 35.3257 +96.1588 -5.71034 36.4675 +95.74 -5.83427 37.259 +96.4271 -6.02704 38.4901 +96.1759 -6.1629 39.3577 +96.0087 -6.30461 40.2627 +95.6494 -6.43397 41.0888 +96.1963 -6.62578 42.3138 +95.8189 -6.75539 43.1415 +96.2499 -6.94334 44.3418 +95.8546 -7.07301 45.1699 +96.2608 -7.26317 46.3843 +95.8475 -7.39286 47.2125 +95.4268 -7.52197 48.037 +95.7085 -7.70766 49.2229 +96.0647 -7.90193 50.4636 +95.4395 -8.01655 51.1956 +95.8583 -8.22009 52.4954 +96.0002 -8.40252 53.6604 +95.436 -8.52407 54.4367 +95.8132 -8.7311 55.7589 +95.2313 -8.85214 56.5318 +95.4957 -9.05312 57.8153 +95.4902 -9.23088 58.9506 +95.7249 -9.43425 60.2493 +95.1891 -9.56312 61.0723 +95.3965 -9.76812 62.3815 +94.8419 -9.89653 63.2016 +94.9393 -10.0943 64.4645 +95.0216 -10.2931 65.7339 +95.1701 -10.5018 67.067 +95.3022 -10.7117 68.4075 +95.3374 -10.9136 69.6967 +95.3571 -11.1164 70.9916 +95.5197 -11.3389 72.4125 +95.5069 -11.5436 73.7199 +95.3217 -11.7298 74.9095 +94.6564 -11.8581 75.7284 +95.3728 -12.1625 77.6728 +95.2193 -12.3604 78.9366 +95.2789 -12.589 80.3961 +95.2443 -12.8085 81.7979 +95.1923 -13.0288 83.2051 +95.1225 -13.25 84.6176 +95.1088 -13.4824 86.1019 +95.076 -13.7158 87.5924 +94.2261 -13.833 88.3408 +94.809 -14.1639 90.4538 +94.5057 -14.3672 91.7525 +94.328 -14.5927 93.1924 +94.7629 -14.9181 95.2706 +94.543 -15.1456 96.7235 +94.3046 -15.3737 98.1799 +94.6614 -15.7041 100.29 +94.3124 -15.9225 101.685 +94.0798 -16.1642 103.228 +94.3571 -16.4991 105.367 +94.6037 -16.836 107.519 +93.9751 -17.022 108.706 +94.1041 -17.3496 110.799 +93.8215 -17.6074 112.445 +93.7058 -17.9016 114.324 +93.813 -18.2454 116.519 +93.2727 -18.4689 117.947 +93.3231 -18.815 120.157 +93.4017 -19.175 122.456 +92.4355 -19.3252 123.415 +93.4579 -19.8999 127.085 +115.328 -25.0126 159.737 +115.346 -25.4842 162.748 +115.32 -25.9577 165.772 +115.473 -26.4843 169.135 +115.52 -27.0004 172.431 +115.409 -27.4927 175.575 +115.251 -27.9866 178.729 +115.151 -28.5086 182.062 +115.368 -29.1246 185.997 +115.06 -29.624 189.186 +115.059 -30.2181 192.979 +115.15 -30.8546 197.045 +115.72 -31.6418 202.072 +113.882 -31.7832 202.975 +111.56 -31.7861 202.993 +109.34 -31.8126 203.162 +106.71 -31.712 202.52 +104.463 -31.7171 202.553 +102.313 -31.746 202.738 +99.7294 -31.6328 202.014 +97.5969 -31.6545 202.153 +95.3849 -31.6449 202.091 +93.3474 -31.6879 202.366 +90.987 -31.6149 201.9 +91.6724 -32.6161 208.294 +91.2357 -33.2513 212.35 +91.3465 -34.1164 217.875 +91.0294 -34.8552 222.594 +91.0389 -35.7541 228.334 +91.0255 -36.6843 234.274 +90.6337 -37.5014 239.493 +90.0197 -38.2619 244.349 +90.0945 -39.3591 251.356 +89.7591 -40.3275 257.541 +89.4482 -41.3567 264.114 +89.5531 -42.6383 272.298 +89.1893 -43.7608 279.467 +89.2318 -45.1519 288.35 +89.266 -46.6205 297.729 +89.2238 -48.137 307.414 +89.1774 -49.7464 317.692 +85.902 -49.596 316.731 +84.5283 -50.5638 322.912 +80.9713 -50.2406 320.848 +79.1847 -51.025 325.857 +76.1684 -51.0395 325.95 +74.2171 -51.7898 330.742 +70.69 -51.4492 328.566 +68.3035 -51.9368 331.68 +62.6426 -49.8554 318.388 +60.3564 -50.3792 321.734 +56.4183 -49.499 316.112 +54.4657 -50.3514 321.556 +50.7317 -49.5521 316.451 +48.6145 -50.3225 321.371 +45.0086 -49.5437 316.398 +42.8779 -50.3848 321.769 +39.0957 -49.2584 314.576 +37.3344 -50.6927 323.735 +33.7313 -49.6487 317.068 +31.5141 -50.6317 323.346 +28.1339 -49.7478 317.701 +25.8287 -50.7708 324.234 +22.4825 -49.7389 317.644 +20.0728 -50.7711 324.236 +16.8522 -49.7457 317.688 +14.3421 -50.8175 324.532 +11.269 -49.9227 318.818 +8.57819 -50.6784 323.644 +5.60222 -49.6517 317.087 +2.86056 -50.7094 323.842 +1.97223e-14 -49.8294 318.222 +-2.86754 -50.833 324.631 +-5.60571 -49.6826 317.285 +-8.60175 -50.8175 324.532 +-11.2307 -49.7527 317.732 +-14.4293 -51.1266 326.506 +-16.9673 -50.0856 319.858 +-20.3353 -51.4351 328.476 +-22.629 -50.063 319.714 +-26.2603 -51.619 329.651 +-28.2908 -50.0251 319.472 +-32.2617 -51.8328 331.016 +-34.139 -50.2488 320.901 +-38.3646 -52.0915 332.668 +-40.0463 -50.4561 322.225 +-44.3136 -52.072 332.544 +-45.8575 -50.4781 322.365 +-50.6099 -52.3881 334.562 +-52.0457 -50.8356 324.648 +-56.8259 -52.5333 335.49 +-57.8248 -50.7331 323.993 +-63.1628 -52.7217 336.693 +-64.4934 -51.3285 327.796 +-69.1209 -52.5584 335.65 +-70.3365 -51.1919 326.923 +-75.5591 -52.7262 336.722 +-77.4731 -51.9137 331.533 +-85.0441 -54.8006 349.969 +-86.6806 -53.7832 343.472 +-91.6641 -54.8323 350.172 +-92.6831 -53.511 341.734 +-96.4463 -53.8013 343.587 +-98.4025 -53.089 339.039 +-103.382 -53.9925 344.808 +-104.289 -52.7709 337.007 +-110.269 -54.1035 345.518 +-111.184 -52.9374 338.07 +-117.212 -54.1937 346.094 +-106.461 -47.8315 305.463 +-105.55 -46.1109 294.475 +-105.821 -44.9781 287.241 +-100.474 -41.5732 265.496 +-100.164 -40.3673 257.795 +-100.055 -39.2949 250.946 +-100.02 -38.2977 244.578 +-99.7656 -37.2607 237.955 +-99.7927 -36.3699 232.267 +-99.3284 -35.3401 225.69 +-99.6098 -34.611 221.034 +-100.522 -34.1233 217.92 +-102.189 -33.9021 216.507 +-104.485 -33.8885 216.42 +-106.831 -33.8853 216.399 +-109.14 -33.8644 216.266 +-111.863 -33.9638 216.901 +-114.144 -33.9213 216.629 +-116.476 -33.8888 216.422 +-118.717 -33.8255 216.018 +-121.59 -33.9346 216.714 +-123.943 -33.8904 216.432 +-110.65 -29.6487 189.344 +-110.136 -28.9252 184.723 +-110.991 -28.5765 182.496 +-112.442 -28.3859 181.279 +-113.827 -28.1806 179.968 +-115.842 -28.1302 179.646 +-117.152 -27.9079 178.226 +-118.832 -27.7745 177.375 +-120.842 -27.7156 176.998 +-123.08 -27.7045 176.927 +-129.972 -28.7157 183.385 +-165.849 -35.9699 229.712 +-165.403 -35.2189 224.916 +-168.811 -35.2929 225.389 +-165.74 -34.0257 217.296 +-166.07 -33.4816 213.821 +-168.691 -33.4024 213.316 +-171.503 -33.3551 213.013 +-174.951 -33.4229 213.446 +-177.529 -33.3166 212.767 +-326.986 -60.2853 384.996 +-344.078 -62.3236 398.013 +-341.413 -60.7593 388.023 +-357.616 -62.5322 399.345 +-162.666 -27.9483 178.484 +-163.29 -27.5679 176.055 +-368.484 -61.1304 390.393 +-385.823 -62.8974 401.677 +-382.896 -61.3392 391.727 +-401.411 -63.1924 403.561 +-399.727 -61.8385 394.915 +-419.605 -63.7905 407.381 +-417.145 -62.3188 397.982 +-442.333 -64.9375 414.706 +-436.326 -62.9451 401.982 +-461.388 -65.4054 417.694 +-455.176 -63.4033 404.908 +-478.732 -65.5235 418.448 +-467.241 -62.8346 401.276 +-490.69 -64.8338 414.044 +-474.948 -61.653 393.73 +-499.241 -63.6664 406.589 +-497.607 -62.3377 398.103 +-385.669 -47.4586 303.082 +-384.943 -46.5267 297.13 +-384.856 -45.685 291.755 +-141.518 -16.4977 105.358 +-142.685 -16.3336 104.31 +-142.549 -16.0222 102.321 +-142.063 -15.6764 100.113 +-140.812 -15.2533 97.4108 +-141.338 -15.0275 95.9693 +-144.584 -15.087 96.3491 +-147.264 -15.0791 96.2987 +-668.085 -67.1188 428.636 +-380.201 -37.4711 239.299 +-378.314 -36.571 233.551 +-381.556 -36.1721 231.003 +-380.754 -35.3927 226.026 +-381.616 -34.7753 222.083 +-380.791 -34.0112 217.203 +-380.345 -33.2901 212.598 +-380.022 -32.5879 208.114 +-380.44 -31.9555 204.075 +-381.433 -31.3754 200.37 +-381.947 -30.7592 196.435 +-732.496 -57.7387 368.733 +-739.305 -57.0237 364.166 +-745.729 -56.2677 359.338 +-403.636 -29.784 190.207 +-403.579 -29.1136 185.926 +-405.115 -28.5612 182.398 +-403.422 -27.7868 177.453 +-404.974 -27.2411 173.968 +-401.524 -26.3669 168.385 +-404.105 -25.8949 165.371 +-404.252 -25.2671 161.362 +-405.848 -24.7319 157.943 +-404.894 -24.0444 153.553 +-404.174 -23.3776 149.295 +-404.256 -22.7624 145.366 +-405.053 -22.19 141.71 +-402.696 -21.4508 136.99 +-403.417 -20.8818 133.356 +-404.199 -20.3173 129.751 +-399.417 -19.4825 124.42 +-380.227 -17.9836 114.848 +-377.104 -17.2807 110.358 +-380.179 -16.8648 107.703 +-377.647 -16.2021 103.47 +-379.416 -15.7276 100.44 +-379.611 -15.1877 96.9921 +-380.162 -14.6634 93.6439 +-380.975 -14.1496 90.3628 +-379.712 -13.5617 86.608 +-379.389 -13.0117 83.0958 +-379.423 -12.4765 79.678 +-379.427 -11.9422 76.266 +-379.203 -11.403 72.8221 +-378.356 -10.8483 69.28 +-378.757 -10.3318 65.9811 +-379.72 -9.83026 62.7783 +-378.383 -9.27128 59.2085 +-378.694 -8.75553 55.9149 +-378.679 -8.2332 52.5791 +-378.831 -7.71561 49.2737 +-378.061 -7.18126 45.8612 +-377.657 -6.65658 42.5105 +-379.41 -6.16914 39.3975 +-3261.22 -48.5793 310.239 +-3263.83 -44.1748 282.11 +-3266.2 -39.767 253.961 +-3268.32 -35.356 225.792 +-3270.19 -30.9424 197.605 +-3271.81 -26.5264 169.404 +-3273.18 -22.1084 141.19 +-3274.3 -17.6888 112.964 +-3275.18 -13.2678 84.731 +-3275.8 -8.84574 56.4909 +-142.895 -0.192916 1.23201 +95.6 0 0 +95.6964 -0.121747 0.826207 +95.5854 -0.243231 1.65063 +95.3673 -0.36406 2.4706 +96.4412 -0.490967 3.33182 +95.509 -0.607915 4.12546 +95.469 -0.729397 4.94987 +96.32 -0.858831 5.82824 +96.3647 -0.982353 6.66649 +96.3022 -1.10491 7.49818 +96.2324 -1.22738 8.32929 +96.0557 -1.34836 9.15031 +96.0708 -1.47203 9.98953 +96.0784 -1.59585 10.8299 +95.88 -1.71624 11.6468 +95.8727 -1.84005 12.4871 +95.6599 -1.95992 13.3005 +96.3301 -2.09877 14.2428 +95.3119 -2.20072 14.9346 +95.867 -2.33873 15.8712 +95.7233 -2.46061 16.6983 +95.4741 -2.57964 17.5061 +96.1995 -2.72603 18.4995 +95.1507 -2.82215 19.1518 +94.9781 -2.94309 19.9725 +95.7746 -3.09536 21.0059 +95.4883 -3.21381 21.8097 +95.3895 -3.33857 22.6563 +95.089 -3.45626 23.455 +95.7498 -3.60996 24.4981 +95.5301 -3.73163 25.3237 +96.1703 -3.88808 26.3855 +95.9339 -4.01027 27.2147 +95.5943 -4.12802 28.0138 +95.3436 -4.24949 28.8381 +95.9439 -4.41007 29.9278 +95.6763 -4.53196 30.755 +96.2549 -4.69513 31.8623 +96.0647 -4.82215 32.7243 +95.6781 -4.93932 33.5194 +96.1306 -5.10074 34.6149 +95.6342 -5.21263 35.3742 +96.1588 -5.38111 36.5176 +96.8565 -5.56201 37.7452 +96.5198 -5.68501 38.5799 +96.1759 -5.80758 39.4117 +96.0087 -5.94112 40.3179 +95.7411 -6.06884 41.1847 +96.1963 -6.24378 42.3718 +95.9099 -6.37197 43.2417 +96.2499 -6.54303 44.4026 +95.8546 -6.66522 45.2319 +96.2608 -6.84442 46.4479 +95.8475 -6.96663 47.2773 +96.2287 -7.14787 48.5072 +96.5068 -7.32385 49.7015 +96.0647 -7.44636 50.5328 +95.4395 -7.55437 51.2658 +95.8583 -7.74617 52.5674 +95.391 -7.86783 53.393 +95.6958 -8.05449 54.6597 +95.8132 -8.22772 55.8353 +95.2313 -8.34178 56.6094 +95.4957 -8.53117 57.8946 +95.575 -8.70641 59.0839 +94.9659 -8.81983 59.8536 +95.1891 -9.01177 61.1561 +95.3965 -9.20495 62.467 +95.588 -9.39932 63.7861 +95.0217 -9.52057 64.6089 +95.1036 -9.70798 65.8808 +95.9028 -9.97252 67.676 +95.3022 -10.0941 68.5014 +95.4178 -10.2931 69.8512 +95.3571 -10.4755 71.089 +95.4404 -10.6762 72.4516 +95.3493 -10.8601 73.6991 +95.3217 -11.0536 75.0123 +95.5112 -11.2753 76.5172 +95.3728 -11.4613 77.7794 +94.6831 -11.5822 78.5997 +94.5945 -11.778 79.9282 +94.5651 -11.9839 81.326 +95.1923 -12.2777 83.3193 +95.2712 -12.5056 84.8661 +95.1088 -12.7051 86.22 +94.8566 -12.8952 87.5102 +94.879 -13.1258 89.0749 +94.809 -13.3473 90.5779 +94.4344 -13.5287 91.809 +94.328 -13.7514 93.3203 +94.1321 -13.9644 94.7661 +94.543 -14.2724 96.8562 +94.3046 -14.4873 98.3146 +94.1158 -14.7134 99.8488 +94.3124 -15.0045 101.824 +94.0129 -15.2215 103.297 +94.3571 -15.5479 105.512 +93.8164 -15.7333 106.77 +93.9751 -16.0406 108.856 +93.7184 -16.2823 110.496 +93.8215 -16.5922 112.599 +93.7687 -16.8809 114.558 +93.813 -17.1935 116.679 +93.8884 -17.519 118.888 +93.3231 -17.7302 120.322 +93.4017 -18.0695 122.624 +92.9113 -18.3048 124.221 +93.6342 -18.7879 127.499 +115.328 -23.5706 159.956 +115.346 -24.0149 162.971 +115.434 -24.4852 166.163 +115.417 -24.9453 169.285 +115.52 -25.4437 172.667 +115.355 -25.8954 175.732 +115.304 -26.3855 179.058 +115.151 -26.865 182.312 +115.368 -27.4455 186.252 +115.472 -28.0161 190.124 +115.008 -28.4633 193.159 +115.25 -29.101 197.486 +115.572 -29.7793 202.09 +113.833 -29.9381 203.167 +111.56 -29.9535 203.272 +109.293 -29.9656 203.354 +106.664 -29.8709 202.711 +104.463 -29.8885 202.831 +102.313 -29.9158 203.016 +99.7294 -29.809 202.292 +97.5969 -29.8295 202.43 +95.4272 -29.8335 202.458 +92.9328 -29.7283 201.743 +91.0277 -29.8054 202.267 +91.3135 -30.6154 207.763 +91.2357 -31.3342 212.642 +91.3465 -32.1494 218.174 +90.9919 -32.8321 222.807 +91.0389 -33.6927 228.647 +90.8821 -34.5149 234.227 +90.7738 -35.3938 240.191 +90.5327 -36.2615 246.08 +90.1612 -37.1173 251.887 +89.8243 -38.0302 258.082 +89.6386 -39.0553 265.039 +89.6458 -40.2216 272.953 +89.3096 -41.2935 280.228 +89.2318 -42.5487 288.746 +89.0104 -43.8068 297.284 +89.2514 -45.3759 307.932 +88.9904 -46.78 317.461 +88.2832 -48.032 325.957 +87.9585 -49.5821 336.476 +83.4872 -48.8152 331.272 +82.8731 -50.3228 341.503 +78.8228 -49.7729 337.772 +78.1347 -51.3801 348.678 +74.2037 -50.8928 345.371 +72.2709 -51.7853 351.428 +66.7641 -50.0721 339.802 +64.3474 -50.6138 343.478 +59.3703 -49.0859 333.109 +57.7502 -50.3097 341.414 +53.704 -49.4309 335.451 +51.615 -50.3481 341.674 +47.7781 -49.5601 336.327 +45.632 -50.5296 342.906 +41.8743 -49.7175 337.396 +39.44 -50.4641 342.462 +35.8533 -49.7295 337.477 +33.3735 -50.5278 342.894 +29.7985 -49.6534 336.96 +27.3116 -50.5905 343.32 +23.78 -49.5763 336.437 +21.1961 -50.5212 342.85 +17.7314 -49.3235 334.721 +15.1228 -50.4947 342.67 +11.7856 -49.2007 333.888 +9.10434 -50.6858 343.967 +5.90938 -49.3544 334.931 +3.03247 -50.6576 343.775 +2.07326e-14 -49.362 334.983 +-3.03509 -50.7013 344.071 +-5.91811 -49.4273 335.426 +-9.0834 -50.5692 343.175 +-11.8484 -49.463 335.668 +-15.3104 -51.121 346.92 +-17.9408 -49.9058 338.673 +-21.4647 -51.1615 347.195 +-23.9753 -49.9835 339.2 +-27.7274 -51.3608 348.547 +-30.1472 -50.2343 340.903 +-33.9006 -51.326 348.311 +-36.2191 -50.237 340.92 +-40.3569 -51.6374 350.424 +-42.2277 -50.1371 340.243 +-46.3629 -51.3389 348.399 +-48.5297 -50.3396 341.617 +-52.8419 -51.5448 349.796 +-54.7051 -50.3526 341.705 +-59.3016 -51.6613 350.586 +-61.0721 -50.4928 342.657 +-66.0786 -51.9756 352.719 +-67.4128 -50.5587 343.104 +-72.9687 -52.2852 354.82 +-74.2245 -50.9071 345.468 +-80.6021 -53.0026 359.689 +-82.0172 -51.79 351.46 +-89.503 -54.3488 368.824 +-89.9224 -52.5778 356.806 +-94.9691 -53.534 363.295 +-96.1254 -52.2988 354.912 +-102.566 -53.9164 365.89 +-103.336 -52.5367 356.527 +-108.778 -53.5354 363.305 +-109.522 -52.224 354.405 +-112.765 -52.1383 353.823 +-116.469 -52.2562 354.624 +-123.812 -53.9448 366.083 +-102.847 -43.5437 295.498 +-100.81 -41.5011 281.637 +-100.93 -40.4259 274.34 +-100.089 -39.0261 264.841 +-99.9847 -37.9718 257.686 +-100.055 -37.0294 251.29 +-99.945 -36.0627 244.73 +-100.11 -35.2338 239.105 +-99.7927 -34.273 232.585 +-99.7271 -33.4363 226.907 +-99.5285 -32.589 221.157 +-100.356 -32.1029 217.858 +-102.189 -31.9475 216.804 +-104.485 -31.9347 216.717 +-107.226 -32.0496 217.496 +-109.14 -31.912 216.562 +-111.409 -31.8758 216.317 +-114.144 -31.9656 216.926 +-116.476 -31.935 216.719 +-118.717 -31.8754 216.314 +-121.59 -31.9781 217.012 +-123.943 -31.9364 216.729 +-111.3 -28.1035 190.717 +-110.136 -27.2576 184.976 +-111.042 -26.9414 182.831 +-112.442 -26.7494 181.528 +-113.88 -26.5683 180.299 +-115.519 -26.4346 179.392 +-116.771 -26.2133 177.89 +-118.942 -26.1974 177.782 +-120.45 -26.0331 176.667 +-123.193 -26.1311 177.332 +-129.112 -26.881 182.421 +-166.313 -33.9911 230.672 +-167.225 -33.554 227.706 +-167.918 -33.0823 224.505 +-167.425 -32.39 219.806 +-166.618 -31.6554 214.821 +-169.368 -31.603 214.466 +-171.565 -31.4434 213.383 +-175.266 -31.5525 214.123 +-178.229 -31.5195 213.899 +-342.991 -59.5902 404.394 +-363.951 -62.1226 421.579 +-361.095 -60.5569 410.954 +-378.886 -62.4318 423.678 +-162.331 -26.2827 178.361 +-163.425 -25.9999 176.442 +-390.512 -61.0498 414.299 +-410.397 -63.0463 427.848 +-406.236 -61.3264 416.176 +-426.784 -63.3131 429.658 +-424.264 -61.8503 419.731 +-448.706 -64.2817 436.231 +-445.703 -62.7463 425.812 +-472.074 -65.3078 443.195 +-468.14 -63.641 431.883 +-492.206 -65.7514 446.206 +-488.543 -64.1277 435.187 +-510.713 -65.8706 447.014 +-509.127 -64.52 437.849 +-537.987 -66.9848 454.575 +-519.838 -63.5898 431.536 +-385.812 -46.3645 314.641 +-385.698 -45.5326 308.995 +-384.887 -44.6318 302.882 +-385.022 -43.8532 297.598 +-384.697 -43.0333 292.034 +-140.879 -15.4763 105.026 +-142.685 -15.3919 104.453 +-142.549 -15.0984 102.462 +-142.145 -14.781 100.308 +-141.549 -14.4491 98.0551 +-141.502 -14.1776 96.213 +-144.584 -14.2172 96.4813 +-147.931 -14.2741 96.8676 +-671.524 -63.5746 431.433 +-381.466 -35.4282 240.425 +-379.671 -34.5862 234.71 +-380.022 -33.9496 230.39 +-381.097 -33.3822 226.54 +-379.978 -32.6296 221.433 +-381.138 -32.0795 217.699 +-380.345 -31.3708 212.89 +-380.722 -30.7657 208.783 +-381.055 -30.1618 204.686 +-379.138 -29.3885 199.437 +-382.39 -29.0195 196.933 +-732.853 -54.4362 369.418 +-738.052 -53.6449 364.048 +-745.46 -53.0044 359.701 +-405.622 -28.2048 191.405 +-404.666 -27.509 186.683 +-404.296 -26.8602 182.28 +-402.965 -26.1551 177.495 +-403.69 -25.5891 173.654 +-403.549 -24.9721 169.467 +-404.936 -24.4521 165.938 +-404.438 -23.8213 161.657 +-405.011 -23.2579 157.834 +-404.894 -22.6581 153.764 +-403.799 -22.0094 149.361 +-403.88 -21.43 145.43 +-403.074 -20.8084 141.211 +-404.682 -20.3138 137.854 +-404.176 -19.7149 133.79 +-404.199 -19.1459 129.929 +-396.365 -18.2189 123.638 +-382.809 -17.0618 115.786 +-378.063 -16.3258 110.791 +-378.064 -15.804 107.25 +-379.767 -15.3537 104.194 +-379.319 -14.8171 100.552 +-378.836 -14.2829 96.927 +-379.289 -13.7863 93.557 +-379.613 -13.2862 90.1635 +-379.907 -12.7864 86.7714 +-379.389 -12.2615 83.2098 +-379.717 -11.7663 79.849 +-378.643 -11.2305 76.2128 +-378.81 -10.7344 72.8466 +-378.553 -10.2282 69.4111 +-380.53 -9.78168 66.3809 +-379.72 -9.26351 62.8644 +-379.47 -8.76184 59.46 +-379.584 -8.27014 56.1232 +-380.065 -7.78692 52.844 +-375.658 -7.20988 48.928 +-378.259 -6.77078 45.9482 +-378.153 -6.28106 42.6248 +-379.112 -5.8089 39.4206 +-3261.22 -45.7785 310.664 +-3263.83 -41.6279 282.497 +-3266.2 -37.4743 254.31 +-3268.32 -33.3176 226.101 +-3270.19 -29.1584 197.876 +-3271.81 -24.997 169.636 +-3273.18 -20.8338 141.383 +-3274.3 -16.6689 113.119 +-3275.18 -12.5028 84.8473 +-143.378 -0.364847 2.47594 +-144.694 -0.184084 1.24924 +95.7 0 0 +95.6964 -0.114289 0.827272 +96.4853 -0.23048 1.66831 +95.3673 -0.341757 2.47378 +95.6417 -0.457068 3.30846 +95.509 -0.570672 4.13078 +95.6687 -0.686144 4.96661 +96.32 -0.806217 5.83575 +96.3647 -0.922171 6.67508 +96.3022 -1.03722 7.50784 +96.2324 -1.15219 8.34003 +96.0557 -1.26576 9.1621 +96.1703 -1.38328 10.0128 +96.0784 -1.49809 10.8438 +95.9792 -1.61277 11.6739 +95.8727 -1.72733 12.5031 +95.7589 -1.84175 13.3314 +96.3301 -1.9702 14.2612 +95.4107 -2.06805 14.9694 +95.867 -2.19545 15.8917 +95.7233 -2.30986 16.7198 +95.4741 -2.4216 17.5286 +95.4142 -2.53813 18.3721 +95.1507 -2.64925 19.1765 +95.0759 -2.76563 20.0189 +95.7746 -2.90573 21.0329 +95.5857 -3.02 21.8601 +95.3895 -3.13404 22.6855 +95.186 -3.24783 23.5092 +95.7498 -3.3888 24.5296 +95.7232 -3.51011 25.4077 +96.1703 -3.64989 26.4195 +95.9339 -3.76459 27.2498 +95.5943 -3.87513 28.0499 +95.4392 -3.99315 28.9042 +95.9439 -4.1399 29.9664 +95.8665 -4.26278 30.8558 +96.2549 -4.4075 31.9034 +96.1592 -4.5312 32.7988 +95.6781 -4.63672 33.5626 +96.2245 -4.79294 34.6934 +95.6342 -4.89329 35.4198 +96.4389 -5.06616 36.6711 +96.8565 -5.22127 37.7938 +95.7781 -5.29573 38.3328 +96.1759 -5.4518 39.4625 +95.9166 -5.5718 40.3311 +95.7411 -5.69705 41.2377 +96.2877 -5.86683 42.4667 +95.9099 -5.9816 43.2975 +96.4311 -6.15375 44.5435 +95.8546 -6.25689 45.2901 +96.3507 -6.43112 46.5513 +95.8475 -6.53983 47.3382 +96.2287 -6.70997 48.5697 +96.5068 -6.87518 49.7655 +96.153 -6.9966 50.6445 +95.4395 -7.09157 51.3319 +95.7709 -7.265 52.5872 +95.391 -7.38582 53.4618 +95.6092 -7.55421 54.6807 +95.8132 -7.72367 55.9073 +95.317 -7.83779 56.7334 +95.4957 -8.00853 57.9692 +95.7446 -8.18754 59.265 +94.9659 -8.27951 59.9307 +95.273 -8.46714 61.2889 +95.3965 -8.64103 62.5475 +95.588 -8.82349 63.8683 +95.0217 -8.93731 64.6922 +95.1855 -9.1211 66.0225 +95.9028 -9.36158 67.7632 +95.464 -9.49185 68.7061 +95.4178 -9.66247 69.9412 +95.4369 -9.84194 71.2403 +95.4404 -10.0222 72.545 +95.5069 -10.2116 73.9162 +95.3217 -10.3764 75.1089 +95.5112 -10.5846 76.6158 +95.3728 -10.7592 77.8796 +94.9129 -10.899 78.8921 +94.5945 -11.0564 80.0312 +95.3953 -11.3485 82.1457 +95.1923 -11.5255 83.4266 +95.2712 -11.7395 84.9754 +95.1088 -11.9268 86.3311 +95.076 -12.1332 87.8257 +94.879 -12.3217 89.1897 +94.809 -12.5296 90.6946 +94.4344 -12.6999 91.9273 +94.4695 -12.9283 93.5807 +94.1321 -13.1089 94.8883 +94.6819 -13.4177 97.1235 +94.3046 -13.5998 98.4413 +94.7296 -13.9021 100.629 +94.3124 -14.0853 101.956 +94.8158 -14.411 104.313 +94.3571 -14.5954 105.648 +94.6693 -14.9038 107.88 +93.9751 -15.0579 108.996 +93.7184 -15.2848 110.638 +93.8215 -15.5758 112.744 +93.7687 -15.8467 114.706 +93.813 -16.1401 116.829 +93.6421 -16.4025 118.728 +93.3231 -16.644 120.477 +93.8831 -17.0499 123.415 +92.9113 -17.1834 124.381 +96.6319 -18.2015 131.751 +115.328 -22.1266 160.162 +115.633 -22.5998 163.587 +115.434 -22.9852 166.377 +115.697 -23.4739 169.914 +115.52 -23.885 172.89 +115.191 -24.2746 175.71 +115.304 -24.769 179.289 +115.204 -25.2308 182.631 +115.368 -25.7641 186.492 +115.111 -26.2176 189.775 +115.008 -26.7196 193.408 +115.45 -27.3655 198.084 +115.572 -27.9549 202.35 +113.445 -28.0082 202.735 +111.56 -28.1185 203.534 +108.589 -27.9486 202.305 +106.664 -28.0409 202.972 +104.145 -27.972 202.474 +102.313 -28.083 203.277 +99.4226 -27.8966 201.928 +97.5969 -28.002 202.691 +95.0891 -27.9066 202 +92.9328 -27.907 202.003 +91.231 -28.042 202.98 +91.3135 -28.7398 208.031 +91.2748 -29.4272 213.007 +91.3465 -30.1799 218.455 +91.1792 -30.8842 223.554 +91.0389 -31.6286 228.942 +90.9896 -32.4387 234.806 +90.7738 -33.2255 240.501 +90.6353 -34.0786 246.676 +90.1612 -34.8434 252.212 +90.1824 -35.8427 259.445 +89.6386 -36.6627 265.38 +89.584 -37.7315 273.117 +89.3096 -38.7637 280.589 +89.2318 -39.942 289.118 +89.0104 -41.1231 297.667 +88.7277 -42.346 306.519 +88.9904 -43.9142 317.87 +88.3349 -45.1159 326.568 +87.9585 -46.5446 336.91 +87.7935 -48.1882 348.807 +82.8731 -47.2399 341.943 +87.236 -51.7109 374.306 +78.1347 -48.2324 349.127 +86.5328 -55.713 403.275 +72.2709 -48.6128 351.881 +85.9213 -60.4921 437.868 +64.3474 -47.5131 343.921 +85.1744 -66.1059 478.503 +57.7502 -47.2276 341.854 +86.5083 -74.7472 541.053 +51.615 -47.2636 342.115 +85.0765 -82.8432 599.656 +45.632 -47.434 343.348 +81.7621 -91.1293 659.634 +39.44 -47.3725 342.903 +74.5811 -97.1086 702.915 +33.3735 -47.4323 343.336 +58.9086 -92.146 666.993 +27.3116 -47.4912 343.762 +228.543 -447.275 3237.57 +21.1961 -47.4262 343.291 +171.468 -447.752 3241.03 +15.1228 -47.4013 343.111 +23.8538 -93.4811 676.657 +9.10434 -47.5807 344.41 +11.8589 -92.9765 673.005 +3.03247 -47.5541 344.218 +4.22244e-14 -94.3728 683.112 +-3.03509 -47.5952 344.515 +-12.0265 -94.29 682.513 +-9.0834 -47.4712 343.617 +-24.29 -95.1907 689.032 +-15.3104 -47.9892 347.367 +-36.6352 -95.6648 692.464 +-21.4647 -48.0272 347.642 +-48.3203 -94.5662 684.512 +-27.7274 -48.2143 348.996 +-61.4535 -96.1269 695.808 +-33.9006 -48.1816 348.76 +-73.6717 -95.9246 694.344 +-40.3569 -48.4739 350.875 +-86.771 -96.712 700.044 +-46.3629 -48.1938 348.848 +-99.4113 -96.8017 700.693 +-52.8419 -48.387 350.246 +-114.557 -98.9825 716.479 +-59.3016 -48.4964 351.038 +-127.371 -98.8555 715.56 +-66.0786 -48.7914 353.174 +-144.099 -101.451 734.35 +-72.9687 -49.0821 355.278 +-104.787 -67.4659 488.348 +-80.6021 -49.7555 360.152 +-103.927 -61.605 445.924 +-89.503 -51.0192 369.299 +-103.397 -56.7529 410.802 +-94.9691 -50.2544 363.763 +-102.906 -52.5581 380.439 +-102.566 -50.6133 366.361 +-102.344 -48.8445 353.558 +-108.778 -50.2557 363.773 +-101.804 -45.5695 329.852 +-112.765 -48.9441 354.279 +-101.296 -42.6643 308.823 +-123.812 -50.64 366.555 +-100.991 -40.1386 290.541 +-100.81 -38.9586 282 +-100.657 -37.8466 273.95 +-100.089 -36.6353 265.182 +-100.415 -35.7989 259.128 +-100.055 -34.7608 251.614 +-100.02 -33.8787 245.229 +-100.11 -33.0752 239.413 +-99.8318 -32.186 232.976 +-99.7271 -31.3879 227.199 +-100.017 -30.7425 222.527 +-100.356 -30.1362 218.139 +-101.893 -29.9036 216.455 +-104.485 -29.9783 216.996 +-106.48 -29.877 216.263 +-109.14 -29.9569 216.841 +-111.091 -29.8376 215.978 +-114.144 -30.0073 217.206 +-115.584 -29.7491 215.337 +-118.717 -29.9226 216.593 +-120.766 -29.8156 215.818 +-123.943 -29.9799 217.008 +-115.4 -27.3538 197.998 +-110.136 -25.5877 185.215 +-110.939 -25.2674 182.897 +-112.442 -25.1106 181.762 +-113.827 -24.929 180.447 +-115.519 -24.8152 179.623 +-116.553 -24.5616 177.787 +-118.942 -24.5925 178.011 +-120.282 -24.4042 176.648 +-123.193 -24.5302 177.561 +-126.932 -24.8082 179.572 +-166.313 -31.9087 230.969 +-166.578 -31.3766 227.118 +-167.918 -31.0556 224.794 +-166.703 -30.2746 219.141 +-166.618 -29.7161 215.098 +-168.999 -29.6022 214.274 +-171.565 -29.5171 213.658 +-174.322 -29.4599 213.244 +-178.229 -29.5885 214.175 +-530.171 -86.4673 625.888 +-363.951 -58.3168 422.123 +-534.36 -84.1242 608.928 +-378.886 -58.6071 424.224 +-162.733 -24.7336 179.033 +-163.425 -24.4071 176.669 +-170.568 -25.0318 181.191 +-410.397 -59.1839 428.399 +-547.669 -77.6122 561.791 +-426.784 -59.4344 430.212 +-554.513 -75.886 549.296 +-448.706 -60.3436 436.793 +-561.876 -74.2554 537.493 +-472.074 -61.3069 443.766 +-573.674 -73.2101 529.927 +-492.206 -61.7233 446.781 +-385.544 -47.5073 343.879 +-510.713 -61.8351 447.59 +-383.996 -45.6815 330.662 +-537.987 -62.8811 455.161 +-385.474 -44.2648 320.408 +-385.812 -43.5241 315.047 +-384.998 -42.6655 308.832 +-384.887 -41.8975 303.273 +-384.786 -41.1413 297.799 +-384.697 -40.3969 292.411 +-141.039 -14.5447 105.281 +-142.685 -14.4489 104.588 +-142.306 -14.1492 102.418 +-142.145 -13.8755 100.437 +-141.304 -13.5404 98.011 +-141.502 -13.3091 96.337 +-144.501 -13.3386 96.5503 +-147.931 -13.3996 96.9924 +-653.492 -58.0775 420.39 +-381.466 -33.2578 240.735 +-378.569 -32.3731 234.33 +-380.022 -31.8697 230.687 +-380.925 -31.323 226.73 +-379.978 -30.6307 221.718 +-381.398 -30.1347 218.128 +-380.345 -29.4489 213.164 +-380.197 -28.8411 208.764 +-381.055 -28.314 204.949 +-380.374 -27.678 200.345 +-382.39 -27.2417 197.187 +-714.944 -49.8526 360.855 +-738.052 -50.3585 364.517 +-735.843 -49.1152 355.517 +-405.622 -26.4769 191.652 +-405.663 -25.8874 187.384 +-404.296 -25.2146 182.515 +-403.422 -24.5806 177.925 +-403.69 -24.0214 173.878 +-405.39 -23.5491 170.459 +-404.936 -22.9541 166.152 +-405.087 -22.3979 162.126 +-405.011 -21.833 158.037 +-405.081 -21.2799 154.033 +-403.799 -20.661 149.554 +-404.914 -20.1686 145.989 +-403.074 -19.5336 141.393 +-404.871 -19.0782 138.096 +-404.176 -18.5071 133.963 +-405.245 -18.0195 130.433 +-396.365 -17.1027 123.797 +-383 -16.0246 115.993 +-378.063 -15.3256 110.933 +-378.737 -14.8622 107.579 +-379.767 -14.4131 104.328 +-379.899 -13.9307 100.836 +-378.836 -13.4079 97.0519 +-380.356 -12.9781 93.9412 +-379.613 -12.4723 90.2796 +-378.835 -11.9692 86.6381 +-379.389 -11.5104 83.3171 +-378.934 -11.0227 79.7872 +-378.643 -10.5425 76.311 +-379.399 -10.0925 73.0538 +-378.553 -9.6016 69.5006 +-380.234 -9.17529 66.4148 +-379.72 -8.696 62.9455 +-378.778 -8.21008 59.4282 +-379.584 -7.76349 56.1956 +-377.985 -7.26988 52.6226 +-375.658 -6.76819 48.9911 +-379.153 -6.371 46.1161 +-378.153 -5.89626 42.6797 +-379.112 -5.45303 39.4714 +-3261.22 -42.974 311.065 +-378.255 -4.52883 32.7816 +-3266.2 -35.1785 254.638 +-3268.32 -31.2765 226.393 +-3270.19 -27.3721 198.131 +-3271.81 -23.4657 169.855 +-3273.18 -19.5575 141.565 +-3274.3 -15.6477 113.265 +-3275.18 -11.7369 84.9566 +-3275.8 -7.82508 56.6413 +-144.694 -0.172807 1.25085 +95.7 0 0 +95.6964 -0.106821 0.828269 +95.6854 -0.213634 1.65648 +95.7672 -0.320765 2.48715 +96.5412 -0.43122 3.3436 +96.608 -0.53952 4.18334 +96.4676 -0.646665 5.01412 +95.6213 -0.748072 5.80041 +96.3647 -0.861915 6.68313 +96.3022 -0.969444 7.51689 +96.332 -1.07802 8.35873 +96.2548 -1.1855 9.19215 +96.1703 -1.2929 10.0249 +95.979 -1.39874 10.8456 +95.9792 -1.50739 11.688 +95.8727 -1.61446 12.5182 +95.7589 -1.7214 13.3475 +96.429 -1.84335 14.293 +95.3119 -1.93091 14.9719 +96.0642 -2.05622 15.9436 +95.9203 -2.16337 16.7744 +95.5724 -2.2657 17.5678 +95.316 -2.36985 18.3754 +95.2487 -2.4787 19.2194 +95.0759 -2.58492 20.043 +95.7746 -2.71586 21.0583 +95.5857 -2.82267 21.8864 +95.584 -2.93523 22.7592 +95.186 -3.03561 23.5376 +94.9753 -3.14175 24.3605 +95.7232 -3.28075 25.4383 +95.3994 -3.38405 26.2393 +95.9339 -3.51861 27.2826 +95.6902 -3.62555 28.1119 +96.3955 -3.76963 29.229 +96.1347 -3.87707 30.0621 +95.8665 -3.98424 30.893 +95.591 -4.09109 31.7216 +96.1592 -4.23512 32.8383 +95.7724 -4.33802 33.6362 +96.0366 -4.47101 34.6674 +95.7279 -4.57803 35.4972 +96.4389 -4.73513 36.7153 +96.9495 -4.88478 37.8757 +95.7781 -4.9497 38.379 +96.2682 -5.10046 39.5481 +96.1007 -5.21772 40.4572 +95.8328 -5.32989 41.327 +96.2877 -5.48348 42.5179 +95.9099 -5.59075 43.3497 +96.4311 -5.75165 44.5972 +96.0351 -5.85907 45.4301 +96.3507 -6.0109 46.6074 +95.937 -6.11821 47.4395 +96.3178 -6.27733 48.6733 +95.8859 -6.3846 49.505 +96.153 -6.53943 50.7055 +95.7032 -6.6465 51.5358 +95.6834 -6.78408 52.6025 +95.3039 -6.89693 53.4775 +95.6958 -7.06699 54.7962 +95.8132 -7.21899 55.9747 +96.0885 -7.38495 57.2615 +95.4957 -7.48523 58.0391 +95.7446 -7.65255 59.3365 +95.8093 -7.80723 60.5358 +95.273 -7.91388 61.3628 +95.4799 -8.08346 62.6777 +95.588 -8.24694 63.9453 +95.7635 -8.41854 65.2758 +95.1855 -8.52511 66.1021 +95.3329 -8.69788 67.4417 +95.3831 -8.86411 68.7307 +95.4982 -9.0387 70.0844 +95.4369 -9.19885 71.3262 +95.4404 -9.36732 72.6324 +95.5857 -9.55223 74.0663 +94.9304 -9.65857 74.8907 +94.8118 -9.82051 76.1464 +95.5271 -10.0724 78.0997 +94.9129 -10.1869 78.9872 +95.4309 -10.4253 80.8362 +94.7161 -10.5315 81.6591 +95.417 -10.7978 83.7244 +95.3455 -10.981 85.1443 +94.5927 -11.087 85.9662 +95.1491 -11.3491 87.9992 +94.9515 -11.5254 89.3655 +94.809 -11.7109 90.8039 +94.6483 -11.8969 92.2467 +94.4695 -12.0835 93.6935 +94.9031 -12.3527 95.7808 +94.6819 -12.541 97.2406 +94.5111 -12.739 98.7758 +94.7296 -12.9937 100.751 +94.38 -13.1744 102.152 +94.1467 -13.3742 103.701 +94.4234 -13.6513 105.849 +94.1445 -13.8527 107.411 +94.105 -14.0934 109.278 +94.2969 -14.3743 111.456 +93.8215 -14.558 112.88 +93.9575 -14.8411 115.075 +94.062 -15.1255 117.281 +93.4574 -15.3005 118.637 +93.5666 -15.597 120.936 +93.7628 -15.9154 123.405 +92.6734 -16.0195 124.212 +96.5731 -17.0018 131.829 +115.56 -20.7225 160.678 +115.059 -21.0183 162.972 +115.15 -21.4306 166.169 +115.306 -21.8659 169.544 +115.244 -22.2709 172.685 +115.246 -22.6992 176.005 +115.412 -23.1721 179.672 +115.681 -23.6797 183.608 +115.368 -24.0806 186.717 +115.163 -24.5155 190.089 +115.11 -24.9957 193.812 +115.05 -25.4888 197.635 +115.424 -26.0949 202.335 +113.009 -26.0774 202.199 +111.226 -26.2025 203.169 +108.542 -26.111 202.46 +106.248 -26.1064 202.424 +104.1 -26.1329 202.63 +102.001 -26.168 202.902 +99.4226 -26.0738 202.172 +97.2525 -26.08 202.219 +94.7933 -26.0021 201.615 +92.6839 -26.0137 201.705 +90.9056 -26.1162 202.5 +91.3534 -26.8735 208.372 +91.2357 -27.4926 213.172 +91.4613 -28.2433 218.993 +91.1792 -28.8662 223.823 +91.1489 -29.5976 229.494 +90.9896 -30.3191 235.089 +90.8088 -31.0665 240.884 +90.6353 -31.8519 246.974 +90.2614 -32.6028 252.796 +90.0847 -33.4643 259.476 +89.7972 -34.3278 266.172 +89.6149 -35.2782 273.54 +89.0691 -36.1332 280.171 +89.1734 -37.3077 289.277 +88.9252 -38.3992 297.74 +88.645 -39.5422 306.603 +88.5628 -40.8475 316.724 +88.3608 -42.1803 327.058 +88.309 -43.6767 338.661 +87.7693 -45.027 349.131 +87.472 -46.6034 361.354 +87.2585 -48.3444 374.853 +86.9654 -50.1758 389.054 +86.5328 -52.0725 403.761 +86.3861 -54.3105 421.113 +85.845 -56.4891 438.006 +85.6871 -59.1358 458.528 +85.2092 -61.8116 479.276 +84.6034 -64.6671 501.417 +86.0702 -69.5093 538.962 +90.4889 -77.4461 600.503 +85.0765 -77.4301 600.379 +82.5709 -80.2232 622.036 +81.7621 -85.1747 660.429 +80.2498 -90.0921 698.557 +79.0131 -96.157 745.584 +72.2485 -95.9742 744.167 +67.4237 -98.5741 764.326 +56.8201 -92.3465 716.038 +53.859 -98.5182 763.892 +44.7608 -93.6082 725.821 +171.468 -418.495 3244.93 +31.2795 -91.6365 710.532 +27.4485 -100.539 779.565 +85.7635 -418.926 3248.28 +57.1793 -419.006 3248.89 +6.27089 -91.9122 712.671 +4.75576e-14 -99.3472 770.32 +-28.5907 -419.054 3249.27 +-57.1793 -419.006 3248.89 +-18.9652 -92.6386 718.303 +-27.5636 -100.961 782.835 +-32.0123 -93.7833 727.178 +-41.2355 -100.642 780.357 +-45.3835 -94.9104 735.918 +-55.1564 -100.892 782.295 +-58.3343 -94.8075 735.12 +-70.0296 -102.384 793.867 +-72.8428 -96.7636 750.287 +-85.4938 -104.044 806.737 +-85.5477 -96.0397 744.674 +-99.9572 -104.129 807.399 +-99.3043 -96.4809 748.095 +-116.432 -105.968 821.653 +-117.701 -100.735 781.084 +-130.889 -105.704 819.611 +-127.747 -97.6441 757.114 +-146.125 -106.001 821.909 +-143.784 -99.2306 769.416 +-151.521 -99.7066 773.107 +-153.513 -96.513 748.344 +-104.787 -63.0575 488.937 +-104.735 -60.4282 468.549 +-104.13 -57.6917 447.331 +-103.79 -55.2973 428.765 +-103.543 -53.1191 411.876 +-103.132 -51.0077 395.504 +-102.881 -49.1116 380.802 +-102.406 -47.2322 366.23 +-102.317 -45.6406 353.889 +-102.246 -44.1511 342.34 +-102.067 -42.702 331.104 +-101.759 -41.2812 320.087 +-101.574 -39.986 310.044 +-101.284 -38.7188 300.219 +-101.056 -37.54 291.078 +-100.743 -36.3888 282.152 +-100.691 -35.3856 274.374 +-100.755 -34.4691 267.267 +-100.379 -33.4478 259.348 +-100.128 -32.5133 252.102 +-100.469 -31.8074 246.628 +-100.187 -30.9377 239.885 +-100.183 -30.1888 234.078 +-99.8069 -29.3603 227.655 +-100.017 -28.7337 222.796 +-99.7752 -28.0041 217.139 +-101.893 -27.9496 216.716 +-104.184 -27.9387 216.632 +-106.48 -27.9248 216.524 +-108.738 -27.8965 216.305 +-111.137 -27.8993 216.326 +-113.452 -27.8764 216.149 +-115.819 -27.8616 216.034 +-118.192 -27.8437 215.895 +-120.766 -27.8674 216.078 +-123.106 -27.8317 215.802 +-117.3 -25.9873 201.501 +-110.491 -23.9929 186.036 +-110.991 -23.6274 183.203 +-112.442 -23.4698 181.981 +-113.668 -23.2675 180.412 +-115.358 -23.1613 179.589 +-116.553 -22.9567 178.002 +-118.335 -22.8683 177.316 +-120.226 -22.799 176.779 +-122.514 -22.8009 176.794 +-126.76 -23.1558 179.546 +-169.681 -30.4277 235.931 +-167.342 -29.461 228.435 +-168.275 -29.088 225.543 +-171.758 -29.1545 226.059 +-166.435 -27.7439 215.121 +-174.294 -28.5348 221.254 +-171.814 -27.6284 214.226 +-510.882 -80.6964 625.705 +-177.911 -27.6058 214.05 +-519.18 -79.1419 613.652 +-525.079 -78.6372 609.738 +-525.438 -77.3144 599.482 +-529.831 -76.6005 593.946 +-162.799 -23.1269 179.322 +-164.371 -22.9444 177.907 +-168.726 -23.1435 179.451 +-543.869 -73.3072 568.41 +-547.877 -72.5685 562.683 +-550.915 -71.7079 556.01 +-555.715 -71.0812 551.15 +-558.047 -70.1444 543.886 +-562.74 -69.5099 538.967 +-566.227 -68.7295 532.916 +-388.714 -46.3648 359.505 +-388.545 -45.5403 353.111 +-383.314 -44.1464 342.303 +-384.813 -43.5473 337.657 +-384.449 -42.7468 331.451 +-384.385 -41.9921 325.599 +-383.865 -41.1997 319.455 +-384.501 -40.5419 314.354 +-384.376 -39.8133 308.705 +-384.495 -39.1199 303.329 +-384.786 -38.453 298.158 +-384.697 -37.7573 292.763 +-141.758 -13.6635 105.945 +-142.765 -13.5125 104.773 +-142.306 -13.2247 102.542 +-142.796 -13.0282 101.018 +-141.304 -12.6556 98.1292 +-141.667 -12.4539 96.5654 +-145.33 -12.5385 97.2213 +-147.181 -12.4605 96.6167 +-149.787 -12.4421 96.4735 +-381.213 -31.0639 240.864 +-382.046 -30.5357 236.768 +-381.556 -29.9075 231.897 +-381.354 -29.3092 227.258 +-379.72 -28.6097 221.835 +-380.965 -28.1337 218.143 +-379.127 -27.4366 212.738 +-381.247 -27.031 209.593 +-381.758 -26.5128 205.575 +-381.433 -25.9416 201.146 +-381.769 -25.4203 197.105 +-714.587 -46.5718 361.109 +-740.469 -47.2221 366.151 +-734.045 -45.7939 355.077 +-400.748 -24.4495 189.577 +-403.669 -24.0769 186.688 +-405.297 -23.6254 183.187 +-404.883 -23.0577 178.785 +-404.607 -22.5028 174.483 +-405.022 -21.9904 170.51 +-404.844 -21.4494 166.315 +-404.623 -20.9104 162.135 +-406.034 -20.458 158.627 +-405.921 -19.9306 154.538 +-403.425 -19.2931 149.595 +-404.538 -18.8334 146.031 +-405.996 -18.3897 142.59 +-402.791 -17.74 137.553 +-405.598 -17.3587 134.596 +-404.294 -16.8026 130.284 +-405.044 -16.3353 126.661 +-383.478 -14.9962 116.278 +-378.254 -14.3315 111.124 +-379.41 -13.9158 107.9 +-378.803 -13.437 104.188 +-379.512 -13.0071 100.855 +-379.998 -12.5702 97.467 +-380.356 -12.1301 94.0544 +-379.808 -11.6633 90.4348 +-380.199 -11.2274 87.0549 +-380.072 -10.7776 83.5678 +-378.934 -10.3025 79.8834 +-379.231 -9.8689 76.5216 +-379.89 -9.44523 73.2365 +-378.258 -8.96722 69.5301 +-378.068 -8.52689 66.1159 +-379.03 -8.11301 62.9068 +-379.47 -7.68762 59.6084 +-378.397 -7.23352 56.0874 +-377.193 -6.7806 52.5756 +-378.831 -6.37937 49.4644 +-378.061 -5.93755 46.0387 +-378.75 -5.51969 42.7986 +-377.819 -5.07933 39.3842 +-378.35 -4.65987 36.1318 +-378.454 -4.23514 32.8385 +-378.23 -3.80753 29.5229 +-3268.32 -29.2328 226.666 +-3270.19 -25.5835 198.37 +-3271.81 -21.9324 170.06 +-3273.18 -18.2795 141.736 +-3274.3 -14.6253 113.402 +-3275.18 -10.97 85.059 +-3275.8 -7.31377 56.7096 +-143.595 -0.160287 1.24284 +95.7 0 0 +95.6964 -0.0993457 0.829199 +95.6854 -0.198685 1.65834 +96.5669 -0.300809 2.51073 +96.5412 -0.401044 3.34735 +96.5081 -0.501247 4.18371 +95.5688 -0.59581 4.97299 +96.5196 -0.702259 5.86147 +96.4644 -0.802429 6.69755 +96.3022 -0.901604 7.52533 +96.2324 -1.00154 8.35946 +96.2548 -1.10254 9.20247 +96.0708 -1.20117 10.0257 +96.0784 -1.30222 10.8691 +95.9792 -1.4019 11.7011 +95.9719 -1.50303 12.5452 +95.7589 -1.60094 13.3624 +96.429 -1.71436 14.3091 +96.2008 -1.81254 15.1285 +96.0642 -1.91233 15.9615 +95.7233 -2.00785 16.7587 +95.5724 -2.10715 17.5875 +95.316 -2.20402 18.396 +95.2487 -2.30525 19.241 +95.0759 -2.40403 20.0655 +94.896 -2.50264 20.8885 +95.7806 -2.63049 21.9557 +95.584 -2.72982 22.7848 +95.3801 -2.82894 23.612 +96.1371 -2.95763 24.6862 +95.7232 -3.05117 25.4669 +95.4958 -3.15041 26.2952 +96.03 -3.27567 27.3407 +95.7861 -3.37522 28.1716 +95.4392 -3.47106 28.9715 +96.1347 -3.60576 30.0959 +95.8665 -3.70543 30.9277 +95.591 -3.80481 31.7572 +96.1592 -3.93875 32.8752 +95.5838 -4.02651 33.6077 +96.2245 -4.16627 34.7742 +95.7279 -4.25767 35.5371 +96.4389 -4.40377 36.7565 +96.1121 -4.50372 37.5908 +96.6126 -4.64343 38.7568 +96.2682 -4.74354 39.5925 +95.9166 -4.8433 40.4251 +96.6581 -4.99961 41.7298 +96.2877 -5.09975 42.5656 +95.9099 -5.19952 43.3983 +95.6155 -5.30391 44.2696 +96.0351 -5.44906 45.4811 +96.3507 -5.59027 46.6597 +95.937 -5.69007 47.4928 +96.2287 -5.83266 48.6828 +95.8859 -5.93781 49.5606 +96.2413 -6.08739 50.809 +95.7032 -6.18139 51.5936 +95.7709 -6.31512 52.7097 +95.478 -6.42601 53.6353 +95.6958 -6.57246 54.8577 +95.8993 -6.71985 56.0879 +96.1742 -6.87429 57.377 +95.4957 -6.96143 58.1043 +95.8294 -7.12334 59.4557 +95.8936 -7.2673 60.6572 +95.273 -7.36008 61.4317 +95.4799 -7.5178 62.7481 +95.6709 -7.6765 64.0727 +95.0217 -7.76878 64.8429 +95.1036 -7.92171 66.1193 +95.2515 -8.0823 67.4598 +95.464 -8.25081 68.8662 +95.4982 -8.40619 70.1631 +94.8779 -8.50501 70.9879 +95.5991 -8.7263 72.8349 +94.8765 -8.81787 73.5993 +95.4782 -9.03452 75.4075 +94.8118 -9.13329 76.2319 +95.5271 -9.36757 78.1873 +95.4491 -9.52754 79.5226 +94.7466 -9.62627 80.3466 +95.3953 -9.86474 82.3371 +95.417 -10.0422 83.8184 +95.3455 -10.2125 85.2399 +94.6664 -10.3192 86.1298 +95.1491 -10.555 88.098 +94.9515 -10.7188 89.4658 +94.809 -10.8914 90.9059 +94.6483 -11.0644 92.3503 +94.4695 -11.238 93.7987 +94.7629 -11.4713 95.7468 +94.6819 -11.6634 97.3498 +94.5111 -11.8475 98.8867 +94.7296 -12.0844 100.864 +94.38 -12.2525 102.267 +94.1467 -12.4383 103.818 +94.4234 -12.696 105.968 +94.0133 -12.8654 107.382 +94.105 -13.1072 109.401 +94.2969 -13.3684 111.581 +93.6307 -13.5117 112.776 +94.0205 -13.8118 115.282 +93.8752 -14.0391 117.179 +93.4574 -14.2298 118.771 +93.4449 -14.4868 120.915 +93.823 -14.8112 123.623 +92.7329 -14.908 124.431 +97.1609 -15.9084 132.781 +115.618 -19.282 160.939 +115.633 -19.6449 163.968 +115.207 -19.9407 166.437 +115.753 -20.4146 170.392 +115.244 -20.7125 172.879 +115.3 -21.1207 176.286 +115.412 -21.5505 179.874 +115.204 -21.9319 183.057 +115.472 -22.4157 187.095 +114.699 -22.7081 189.536 +115.262 -23.2773 194.287 +114.95 -23.6845 197.685 +115.473 -24.2792 202.649 +113.058 -24.2629 202.513 +110.749 -24.2643 202.525 +108.964 -24.3784 203.477 +106.295 -24.2901 202.74 +104.145 -24.3148 202.946 +101.555 -24.2303 202.241 +99.4226 -24.2492 202.399 +97.2525 -24.2549 202.446 +95.1736 -24.2796 202.652 +92.6839 -24.1933 201.932 +91.231 -24.3756 203.453 +91.3534 -24.9929 208.606 +91.3139 -25.5906 213.594 +91.0787 -26.157 218.322 +91.1792 -26.8462 224.075 +91.1489 -27.5264 229.752 +90.9896 -28.1975 235.353 +90.8438 -28.9037 241.248 +90.2933 -29.5111 246.317 +90.4283 -30.3775 253.549 +90.0847 -31.1225 259.767 +89.7655 -31.9143 266.376 +89.6458 -32.8208 273.942 +89.0691 -33.6047 280.485 +89.0564 -34.6514 289.222 +88.8684 -35.6893 297.885 +88.645 -36.7751 306.947 +88.5628 -37.989 317.079 +88.2832 -39.1941 327.137 +88.1588 -40.5512 338.464 +87.7451 -41.8646 349.427 +87.4486 -43.3306 361.664 +87.146 -44.9034 374.791 +87.0304 -46.6994 389.781 +86.5121 -48.417 404.117 +86.2266 -50.4166 420.808 +85.845 -52.5361 438.498 +85.3591 -54.7872 457.287 +85.0529 -57.3807 478.934 +84.6529 -60.1771 502.274 +86.3518 -64.8567 541.333 +90.4889 -72.0265 601.177 +85.0765 -72.0117 601.053 +82.4926 -74.5386 622.144 +81.689 -79.1436 660.58 +80.9969 -84.5677 705.853 +79.6298 -90.1262 752.247 +78.1526 -96.5522 805.883 +76.7406 -104.344 870.921 +64.7915 -97.9331 817.408 +228.571 -388.842 3245.51 +200.013 -389.017 3246.97 +171.489 -389.257 3248.97 +142.91 -389.373 3249.94 +114.341 -389.506 3251.05 +85.7635 -389.611 3251.92 +57.1793 -389.684 3252.54 +28.5907 -389.73 3252.92 +5.51991e-14 -107.241 895.099 +-28.5907 -389.73 3252.92 +-57.1793 -389.684 3252.54 +-22.2452 -101.056 843.477 +-114.341 -389.506 3251.05 +-142.91 -389.373 3249.94 +-171.468 -389.21 3248.58 +-51.4822 -100.131 835.75 +-228.543 -388.795 3245.11 +-257.056 -388.542 3243.01 +-285.548 -388.26 3240.65 +-314.019 -387.95 3238.06 +-342.467 -387.609 3235.21 +-370.888 -387.239 3232.13 +-399.329 -386.886 3229.19 +-427.643 -386.409 3225.2 +-122.5 -103.688 865.445 +-127.589 -101.557 847.656 +-135.582 -101.832 849.951 +-145.456 -103.4 863.042 +-153.87 -103.808 866.442 +-152.859 -98.1115 818.898 +-152.819 -93.5234 780.602 +-155.328 -90.82 758.038 +-104.787 -58.6449 489.485 +-104.735 -56.1996 469.075 +-104.242 -53.7125 448.317 +-103.93 -51.497 429.825 +-103.615 -49.4365 412.627 +-103.006 -47.3807 395.468 +-102.906 -45.6863 381.325 +-102.406 -43.927 366.641 +-102.51 -42.5268 354.955 +-102.189 -41.0387 342.533 +-102.038 -39.7024 331.38 +-101.729 -38.381 320.351 +-101.574 -37.1879 310.392 +-101.315 -36.0206 300.65 +-101.024 -34.9017 291.311 +-100.776 -33.8536 282.562 +-100.725 -32.9205 274.774 +-100.474 -31.9678 266.823 +-100.379 -31.1072 259.639 +-100.128 -30.2381 252.385 +-100.357 -29.5485 246.629 +-100.148 -28.7617 240.062 +-100.183 -28.0762 234.341 +-100.166 -27.4039 228.729 +-100.586 -26.8751 224.316 +-99.9825 -26.0985 217.834 +-102.612 -26.1771 218.489 +-104.011 -25.9407 216.517 +-107.489 -26.2166 218.819 +-109.006 -26.0081 217.08 +-111.682 -26.0743 217.632 +-113.498 -25.9362 216.479 +-119.34 -26.6996 222.851 +-120.387 -26.3762 220.152 +-123.917 -26.5935 221.966 +-123.451 -25.9565 216.649 +-115.95 -23.8906 199.405 +-110.39 -22.2933 186.073 +-110.939 -21.9638 183.323 +-111.919 -21.7261 181.339 +-113.297 -21.5687 180.026 +-115.358 -21.5405 179.79 +-116.88 -21.41 178.701 +-118.28 -21.2581 177.433 +-120.226 -21.2035 176.977 +-122.061 -21.1269 176.338 +-126.244 -21.4476 179.015 +-487.384 -81.2828 678.435 +-491.095 -80.4081 671.134 +-494 -79.4171 662.863 +-498.002 -78.6162 656.178 +-501.254 -77.7093 648.608 +-505.212 -76.9236 642.05 +-508.034 -75.9773 634.152 +-511.952 -75.2065 627.719 +-517.004 -74.6079 622.723 +-531.842 -75.3989 629.324 +-521.961 -72.7001 606.798 +-526.75 -72.0836 601.653 +-530.03 -71.2669 594.836 +-162.13 -21.4201 178.785 +-164.776 -21.3914 178.545 +-166.612 -21.2543 177.401 +-544.695 -68.2809 569.913 +-548.641 -67.5845 564.101 +-552.106 -66.8341 557.838 +-555.574 -66.0903 551.629 +-559.117 -65.3609 545.542 +-562.955 -64.6706 539.78 +-566.662 -63.9691 533.925 +-580.183 -64.36 537.187 +-386.776 -42.1607 351.898 +-387.03 -41.455 346.009 +-387.734 -40.8073 340.602 +-384.675 -39.7789 332.019 +-385.146 -39.1308 326.609 +-383.712 -38.3013 319.686 +-385.581 -37.8107 315.591 +-385.076 -37.0946 309.614 +-383.948 -36.3306 303.237 +-384.786 -35.7621 298.492 +-383.586 -35.0138 292.246 +-140.879 -12.6286 105.406 +-142.042 -12.5031 104.359 +-141.982 -12.2713 102.424 +-143.691 -12.1925 101.766 +-141.304 -11.77 98.2393 +-142.162 -11.6229 97.0113 +-145.496 -11.6744 97.4415 +-146.681 -11.5492 96.3963 +-147.69 -11.4094 95.2299 +-379.273 -28.7432 239.908 +-378.229 -28.1151 234.666 +-382.324 -27.8706 232.624 +-380.754 -27.2153 227.155 +-383.339 -26.8613 224.201 +-382.09 -26.2423 219.034 +-380.868 -25.6338 213.955 +-379.497 -25.024 208.865 +-380.967 -24.6063 205.379 +-382.228 -24.1764 201.791 +-382.036 -23.6579 197.463 +-714.587 -43.3128 361.515 +-739.753 -43.8751 366.208 +-733.865 -42.5788 355.388 +-404.178 -22.9332 191.414 +-404.123 -22.4171 187.107 +-404.387 -21.9229 182.981 +-403.056 -21.3473 178.178 +-403.415 -20.8665 174.164 +-404.47 -20.4236 170.468 +-405.491 -19.9803 166.767 +-406.57 -19.5407 163.099 +-404.825 -18.9697 158.333 +-405.081 -18.4976 154.392 +-404.83 -18.0056 150.285 +-405.289 -17.5479 146.466 +-405.619 -17.0868 142.617 +-402.696 -16.4947 137.674 +-403.986 -16.0799 134.212 +-404.009 -15.6157 130.338 +-403.422 -15.1314 126.296 +-385.295 -14.013 116.961 +-377.391 -13.2981 110.994 +-380.371 -12.9748 108.296 +-380.538 -12.5539 104.783 +-380.382 -12.1246 101.199 +-379.514 -11.6757 97.4521 +-380.356 -11.2812 94.16 +-379.419 -10.836 90.4436 +-379.809 -10.431 87.0633 +-380.56 -10.0363 83.7691 +-379.423 -9.59387 80.0762 +-380.505 -9.20913 76.8649 +-379.399 -8.77292 73.224 +-379.635 -8.37005 69.8615 +-379.348 -7.95705 66.4143 +-379.917 -7.56294 63.1249 +-379.174 -7.14408 59.6288 +-379.288 -6.74315 56.2824 +-380.164 -6.35579 53.0492 +-380.219 -5.95468 49.7014 +-378.855 -5.53365 46.1872 +-379.246 -5.14016 42.9029 +-378.316 -4.7301 39.4803 +-378.649 -4.33719 36.2008 +-378.654 -3.94085 32.8927 +-379.327 -3.55135 29.6417 +-3268.32 -27.1871 226.92 +-3270.19 -23.7933 198.593 +-3271.81 -20.3976 170.25 +-3273.18 -17.0004 141.895 +-3274.3 -13.6018 113.529 +-3275.18 -10.2023 85.1545 +-3275.8 -6.80197 56.7733 +-143.595 -0.14907 1.24423 +95.7 0 0 +95.6964 -0.0918611 0.830061 +96.5853 -0.185443 1.67567 +95.6672 -0.275555 2.48993 +96.5412 -0.370829 3.35083 +95.6089 -0.459166 4.14905 +96.4676 -0.556103 5.02497 +95.6213 -0.643308 5.81296 +96.4644 -0.741974 6.70452 +96.4019 -0.834541 7.54095 +96.332 -0.927044 8.37682 +96.2548 -1.01948 9.21204 +96.0708 -1.11068 10.0361 +96.0784 -1.20411 10.8804 +95.9792 -1.29628 11.7133 +95.8727 -1.38836 12.5453 +95.7589 -1.48033 13.3763 +95.5389 -1.57057 14.1918 +95.3119 -1.66049 15.0043 +96.1628 -1.77007 15.9945 +95.7233 -1.85658 16.7762 +95.5724 -1.9484 17.6058 +95.4142 -2.04006 18.4341 +95.2487 -2.13157 19.261 +95.0759 -2.22291 20.0864 +95.9699 -2.34028 21.1469 +95.5857 -2.42736 21.9338 +95.584 -2.52416 22.8085 +95.186 -2.61049 23.5885 +94.9753 -2.70176 24.4133 +95.7232 -2.82129 25.4934 +95.4958 -2.91306 26.3226 +96.03 -3.02888 27.3691 +95.7861 -3.12093 28.2009 +96.3955 -3.24171 29.2923 +96.0393 -3.33081 30.0974 +95.8665 -3.42626 30.9599 +95.591 -3.51815 31.7902 +96.1592 -3.64201 32.9094 +95.8666 -3.73418 33.7422 +96.2245 -3.85239 34.8104 +95.7279 -3.9369 35.574 +96.4389 -4.072 36.7948 +96.1121 -4.16441 37.6299 +96.6126 -4.29359 38.7971 +96.2682 -4.38617 39.6336 +95.9166 -4.47841 40.4671 +95.7411 -4.57908 41.3768 +96.2877 -4.71554 42.6099 +95.9099 -4.80779 43.4435 +95.6155 -4.90432 44.3157 +95.9448 -5.03379 45.4856 +96.3507 -5.1691 46.7082 +95.937 -5.26139 47.5422 +96.3178 -5.39822 48.7786 +96.5955 -5.5311 49.9793 +95.9764 -5.61329 50.7219 +95.5274 -5.7052 51.5525 +95.9458 -5.85 52.8609 +95.3039 -5.93104 53.5932 +95.6958 -6.07729 54.9147 +95.8132 -6.208 56.0958 +96.0885 -6.35072 57.3855 +95.581 -6.44271 58.2167 +95.7446 -6.58085 59.4649 +95.1346 -6.66659 60.2396 +95.273 -6.80558 61.4956 +95.4799 -6.95141 62.8133 +95.588 -7.092 64.0837 +95.1042 -7.18972 64.9667 +95.1855 -7.33121 66.2452 +95.3329 -7.47978 67.5877 +95.3831 -7.62273 68.8794 +95.4178 -7.76634 70.1771 +94.8779 -7.86425 71.0618 +95.5197 -8.06217 72.8501 +95.5857 -8.21449 74.2265 +94.8521 -8.29909 74.991 +94.8118 -8.44519 76.3112 +94.8327 -8.59885 77.6996 +94.8363 -8.75318 79.0942 +95.4309 -8.96532 81.0111 +95.3953 -9.12154 82.4227 +94.668 -9.21276 83.247 +94.6767 -9.37687 84.7299 +95.2562 -9.60117 86.7566 +95.076 -9.75225 88.1218 +94.9515 -9.91128 89.5588 +94.809 -10.0708 91.0004 +94.6483 -10.2308 92.4463 +94.4695 -10.3913 93.8963 +94.7629 -10.6071 95.8464 +94.6819 -10.7847 97.4511 +94.3734 -10.939 98.8453 +94.7296 -11.174 100.969 +94.4475 -11.3374 102.446 +94.1467 -11.5012 103.926 +94.4234 -11.7395 106.078 +94.0133 -11.8961 107.494 +93.9751 -12.103 109.363 +94.2969 -12.3613 111.697 +94.1396 -12.5616 113.507 +94.0205 -12.7712 115.401 +93.9375 -12.9901 117.379 +93.6421 -13.1837 119.129 +93.6275 -13.4215 121.278 +93.7628 -13.6865 123.672 +92.6734 -13.776 124.481 +97.7487 -14.7989 133.724 +115.618 -17.8293 161.106 +115.576 -18.1559 164.057 +115.15 -18.4293 166.528 +115.25 -18.7945 169.828 +115.686 -19.2254 173.721 +115.736 -19.6032 177.136 +115.466 -19.9363 180.145 +115.31 -20.2982 183.415 +115.472 -20.7269 187.29 +115.111 -21.0728 190.415 +115.262 -21.5236 194.489 +115 -21.9097 197.977 +115.572 -22.4692 203.032 +113.009 -22.4254 202.637 +110.796 -22.4459 202.823 +108.589 -22.4641 202.987 +106.295 -22.4601 202.951 +103.737 -22.3947 202.36 +101.599 -22.4147 202.54 +99.4226 -22.4223 202.609 +97.3386 -22.4475 202.837 +94.7933 -22.3606 202.051 +92.6839 -22.3706 202.142 +90.9463 -22.4688 203.029 +91.3534 -23.11 208.823 +91.3139 -23.6626 213.817 +91.0787 -24.1863 218.549 +91.1792 -24.8236 224.308 +91.1489 -25.4526 229.991 +90.9896 -26.0731 235.598 +90.8438 -26.7261 241.499 +90.5669 -27.3705 247.321 +90.1612 -28.0058 253.062 +90.0847 -28.7778 260.037 +89.8607 -29.5411 266.935 +89.7385 -30.3795 274.511 +89.0991 -31.0834 280.871 +88.9395 -31.9988 289.143 +88.9252 -33.0215 298.384 +88.645 -34.0045 307.266 +88.5094 -35.1057 317.217 +88.3091 -36.2519 327.574 +88.1838 -37.5067 338.913 +87.7451 -38.7105 349.791 +87.4253 -40.0555 361.943 +87.2135 -41.5525 375.471 +87.052 -43.1918 390.283 +86.5744 -44.8016 404.829 +86.1868 -46.5967 421.05 +85.8068 -48.5565 438.759 +85.4867 -50.7352 458.446 +85.0876 -53.0794 479.628 +84.7189 -55.6867 503.188 +86.5552 -60.1116 543.172 +90.3855 -66.5239 601.113 +84.9652 -66.4992 600.891 +82.2446 -68.7157 620.918 +81.6403 -73.1373 660.872 +80.7139 -77.9232 704.118 +79.6507 -83.358 753.228 +78.6606 -89.8584 811.965 +77.5773 -97.5351 881.332 +77.596 -108.451 979.968 +228.543 -359.503 3248.49 +200.038 -359.753 3250.74 +171.489 -359.931 3252.35 +142.928 -360.082 3253.72 +114.355 -360.205 3254.83 +85.7635 -360.258 3255.31 +57.1863 -360.37 3256.32 +28.5942 -360.412 3256.7 +2.00633e-13 -360.425 3256.82 +-28.5942 -360.412 3256.7 +-57.1863 -360.37 3256.32 +-85.7635 -360.258 3255.31 +-114.355 -360.205 3254.83 +-142.928 -360.082 3253.72 +-171.489 -359.931 3252.35 +-200.038 -359.753 3250.74 +-228.571 -359.547 3248.89 +-257.056 -359.27 3246.38 +-285.583 -359.053 3244.42 +-314.019 -358.722 3241.43 +-342.508 -358.45 3238.98 +-370.933 -358.108 3235.88 +-399.329 -357.739 3232.55 +-427.643 -357.298 3228.56 +-121.192 -94.8525 857.092 +-128.121 -94.2975 852.077 +-135.582 -94.16 850.835 +-153.692 -101.024 912.856 +-154.807 -96.5719 872.629 +-153.661 -91.1958 824.05 +-152.533 -86.3155 779.951 +-155.507 -84.0747 759.703 +-104.85 -54.259 490.287 +-104.54 -51.8688 468.69 +-104.332 -49.7087 449.171 +-103.72 -47.521 429.402 +-103.76 -45.776 413.635 +-103.382 -43.9708 397.322 +-103.139 -42.3399 382.585 +-102.62 -40.7024 367.789 +-102.537 -39.3335 355.419 +-102.189 -37.9468 342.89 +-101.833 -36.6377 331.06 +-101.759 -35.5 320.78 +-101.605 -34.3966 310.809 +-101.315 -33.3069 300.963 +-101.056 -32.2827 291.708 +-100.743 -31.2927 282.763 +-100.725 -30.4403 275.06 +-100.755 -29.6419 267.846 +-100.379 -28.7636 259.909 +-100.458 -28.052 253.479 +-100.956 -27.4854 248.36 +-100.11 -26.5847 240.22 +-101.59 -26.3255 237.879 +-101.003 -25.5511 230.881 +-103.392 -25.5437 230.814 +-102.305 -24.6927 223.125 +-108.233 -25.5307 230.697 +-105.346 -24.2941 219.523 +-114.02 -25.7145 232.357 +-109.943 -24.2555 219.174 +-121.397 -26.2072 236.809 +-116.176 -24.5481 221.818 +-138.823 -28.7187 259.504 +-129.93 -26.3223 237.85 +-147.673 -29.304 264.792 +-137.189 -26.672 241.01 +-113.2 -21.5667 194.878 +-110.39 -20.6137 186.267 +-110.888 -20.2996 183.428 +-111.762 -20.0611 181.273 +-113.297 -19.9438 180.213 +-114.982 -19.8528 179.391 +-117.152 -19.8431 179.303 +-118.335 -19.6657 177.7 +-120.338 -19.6243 177.326 +-122.57 -19.6168 177.259 +-126.244 -19.8318 179.201 +-488.023 -75.2576 680.031 +-491.565 -74.4214 672.476 +-494.833 -73.5577 664.671 +-498.182 -72.7196 657.098 +-501.193 -71.846 649.205 +-505.212 -71.1282 642.718 +-507.847 -70.2273 634.578 +-511.763 -69.5149 628.14 +-517.704 -69.0804 624.214 +-532.999 -69.8701 631.35 +-522.676 -67.315 608.262 +-526.356 -66.6031 601.829 +-529.964 -65.8894 595.38 +-161.327 -19.7083 178.085 +-163.087 -19.577 176.899 +-165.726 -19.5484 176.641 +-544.901 -63.1605 570.722 +-548.641 -62.4927 564.688 +-552.317 -61.8224 558.631 +-555.291 -61.0799 551.921 +-559.474 -60.4752 546.457 +-563.243 -59.8289 540.618 +-566.662 -59.1497 534.48 +-581.792 -59.6763 539.238 +-573.159 -57.7705 522.017 +-387.104 -38.3392 346.435 +-385.712 -37.5361 339.178 +-386.034 -36.9119 333.538 +-384.157 -36.0899 326.11 +-384.861 -35.5218 320.976 +-386.198 -35.0181 316.425 +-385.775 -34.3623 310.499 +-384.026 -33.6003 303.614 +-384.076 -33.0069 298.252 +-384.3 -32.4361 293.095 +-141.598 -11.7368 106.055 +-142.122 -11.5678 104.527 +-141.982 -11.3468 102.53 +-143.04 -11.2229 101.411 +-141.304 -10.8832 98.3415 +-141.75 -10.716 96.8307 +-144.833 -10.7456 97.0982 +-145.18 -10.5698 95.5091 +-147.941 -10.5678 95.4913 +-382.984 -26.8378 242.507 +-378.399 -26.0086 235.015 +-379.851 -25.6042 231.361 +-381.439 -25.2103 227.801 +-379.806 -24.6087 222.365 +-380.099 -24.1387 218.118 +-381.39 -23.735 214.471 +-380.809 -23.2187 209.805 +-380.967 -22.7525 205.593 +-380.815 -22.2724 201.254 +-382.213 -21.8856 197.76 +-714.944 -40.0697 362.072 +-739.932 -40.5794 366.677 +-734.944 -39.4288 356.281 +-403.365 -21.1627 191.228 +-405.845 -20.8166 188.1 +-403.204 -20.2119 182.636 +-406.071 -19.8867 179.697 +-401.856 -19.2199 173.672 +-403.273 -18.8291 170.14 +-404.29 -18.4202 166.446 +-404.901 -17.9944 162.598 +-404.825 -17.5406 158.497 +-404.614 -17.0843 154.375 +-404.268 -16.6259 150.233 +-404.444 -16.192 146.312 +-405.619 -15.7995 142.765 +-405.249 -15.3488 138.692 +-404.839 -14.8998 134.635 +-404.294 -14.4494 130.566 +-403.422 -13.9914 126.427 +-384.626 -12.9347 116.878 +-379.884 -12.3775 111.844 +-380.371 -11.9973 108.408 +-379.478 -11.5758 104.599 +-379.126 -11.1741 100.97 +-379.998 -10.8098 97.6779 +-379.774 -10.4153 94.1136 +-379.905 -10.0324 90.6537 +-380.394 -9.65997 87.288 +-380.56 -9.28019 83.8563 +-379.423 -8.87108 80.1595 +-379.623 -8.49557 76.7664 +-378.515 -8.09307 73.1294 +-379.635 -7.73946 69.9341 +-379.446 -7.35948 66.5006 +-378.635 -6.96956 62.9773 +-378.778 -6.59896 59.6286 +-379.288 -6.23513 56.3409 +-378.381 -5.84938 52.8553 +-378.038 -5.47447 49.4676 +-378.359 -5.11005 46.1747 +-378.849 -4.74792 42.9025 +-378.813 -4.37949 39.5733 +-378.649 -4.01043 36.2385 +-378.454 -3.64203 32.9096 +-378.928 -3.28034 29.6413 +-3268.32 -25.1389 227.156 +-3270.19 -22.0007 198.799 +-3271.81 -18.8608 170.428 +-3273.18 -15.7196 142.043 +-3274.3 -12.5771 113.647 +-3275.18 -9.43366 85.2431 +-3275.8 -6.28951 56.8323 +-144.994 -0.139184 1.25767 +95.8 0 0 +95.6964 -0.0843689 0.830856 +96.5853 -0.170318 1.67727 +96.5669 -0.255461 2.51575 +96.4412 -0.340232 3.35057 +95.6089 -0.421717 4.15302 +96.4676 -0.510747 5.02978 +96.5196 -0.59639 5.87319 +96.3647 -0.680755 6.70401 +96.4019 -0.766476 7.54817 +95.4355 -0.843511 8.3068 +96.2548 -0.936328 9.22086 +96.1703 -1.02115 10.0562 +95.979 -1.10475 10.8795 +95.88 -1.18933 11.7124 +95.8727 -1.27513 12.5573 +96.6502 -1.37225 13.5138 +95.5389 -1.44248 14.2054 +96.2996 -1.54087 15.1744 +96.0642 -1.62404 15.9934 +95.7233 -1.70516 16.7922 +95.5724 -1.78949 17.6227 +95.4142 -1.87367 18.4517 +95.2487 -1.95772 19.2795 +95.0759 -2.04162 20.1056 +95.0912 -2.12973 20.9733 +94.7088 -2.20893 21.7533 +95.3895 -2.31357 22.7838 +95.3801 -2.40247 23.6592 +94.9753 -2.48141 24.4366 +95.7232 -2.59119 25.5178 +95.4958 -2.67548 26.3478 +96.03 -2.78185 27.3953 +95.6902 -2.86352 28.1997 +95.4392 -2.94778 29.0294 +96.1347 -3.06218 30.156 +95.8665 -3.14682 30.9895 +95.591 -3.23122 31.8207 +96.0647 -3.34168 32.9085 +95.8666 -3.42962 33.7745 +96.0366 -3.53128 34.7757 +95.7279 -3.61581 35.6081 +96.4389 -3.73989 36.83 +96.1121 -3.82477 37.6659 +96.6126 -3.94341 38.8343 +96.2682 -4.02843 39.6716 +95.9166 -4.11315 40.5059 +96.6581 -4.2459 41.8132 +96.2877 -4.33094 42.6507 +96.7289 -4.45338 43.8564 +96.3405 -4.53848 44.6945 +96.0351 -4.62759 45.572 +96.3507 -4.74751 46.753 +95.937 -4.83227 47.5877 +96.2287 -4.95336 48.7802 +95.8859 -5.04267 49.6596 +96.153 -5.16496 50.8639 +95.7032 -5.24952 51.6968 +95.9458 -5.37288 52.9115 +95.3039 -5.44731 53.6445 +95.6958 -5.58163 54.9673 +95.8993 -5.7068 56.2 +95.2313 -5.78072 56.928 +95.581 -5.91725 58.2724 +95.7446 -6.04412 59.5218 +95.2189 -6.12829 60.3508 +95.273 -6.25052 61.5545 +95.4799 -6.38446 62.8735 +94.9248 -6.46839 63.7 +95.1042 -6.60333 65.0289 +95.1036 -6.72748 66.2515 +95.2515 -6.86386 67.5946 +95.3831 -7.00103 68.9454 +95.4982 -7.13892 70.3034 +94.8779 -7.22285 71.1298 +95.5197 -7.40462 72.9199 +95.5069 -7.53831 74.2364 +95.5565 -7.67881 75.6201 +94.8118 -7.75641 76.3843 +95.5271 -7.95537 78.3436 +94.9129 -8.04578 79.2339 +95.4309 -8.23412 81.0887 +95.3953 -8.37759 82.5016 +95.417 -8.52831 83.9859 +95.3455 -8.67295 85.4103 +95.1825 -8.81127 86.7725 +95.076 -8.95686 88.2062 +94.9515 -9.10292 89.6446 +94.8809 -9.25646 91.1566 +94.6483 -9.39641 92.5348 +94.328 -9.52949 93.8454 +94.9031 -9.7564 96.08 +94.6819 -9.9051 97.5444 +94.3734 -10.0468 98.94 +94.866 -10.2774 101.211 +94.38 -10.4054 102.471 +93.9459 -10.5408 103.804 +94.4234 -10.782 106.18 +94.0133 -10.9259 107.597 +94.0401 -11.1236 109.544 +93.7184 -11.2834 111.118 +93.8215 -11.4982 113.233 +94.0205 -11.7296 115.512 +93.9375 -11.9307 117.492 +93.6421 -12.1085 119.243 +93.4449 -12.3028 121.157 +93.7628 -12.5702 123.79 +92.6734 -12.6525 124.6 +97.7487 -13.5919 133.852 +115.676 -16.3834 161.342 +115.518 -16.6668 164.133 +115.604 -16.9928 167.343 +115.306 -17.27 170.073 +115.244 -17.59 173.224 +115.79 -18.0129 177.389 +115.466 -18.3103 180.318 +115.151 -18.617 183.338 +115.472 -19.0365 187.469 +115.214 -19.3714 190.767 +115.363 -19.7856 194.846 +115.55 -20.219 199.114 +115.129 -20.5575 202.448 +113.009 -20.5964 202.831 +110.796 -20.6153 203.017 +108.589 -20.6319 203.181 +106.295 -20.6283 203.145 +103.737 -20.5682 202.553 +101.599 -20.5866 202.734 +99.4226 -20.5936 202.803 +97.2525 -20.5984 202.851 +94.7933 -20.5369 202.245 +92.6839 -20.5461 202.336 +90.9463 -20.6363 203.224 +91.3933 -21.2345 209.115 +91.3139 -21.7327 214.021 +91.4231 -22.2977 219.586 +91.1792 -22.799 224.522 +91.1489 -23.3767 230.211 +91.0255 -23.956 235.916 +90.8088 -24.5369 241.636 +90.2933 -25.0622 246.81 +90.1612 -25.7217 253.304 +90.0522 -26.4211 260.192 +89.7972 -27.1127 267.003 +89.6458 -27.8729 274.489 +89.3998 -28.6446 282.089 +89.1441 -29.4566 290.085 +88.8968 -30.3187 298.576 +88.7277 -31.2602 307.847 +88.5628 -32.262 317.713 +88.2832 -33.2854 327.791 +88.284 -34.4868 339.623 +87.7451 -35.5533 350.126 +87.5654 -36.8475 362.87 +87.2135 -38.1635 375.83 +87.0087 -39.6494 390.463 +86.5328 -41.1278 405.022 +86.1868 -42.7963 421.454 +86.0358 -44.7153 440.352 +85.432 -46.5675 458.592 +85.0008 -48.7004 479.597 +84.6034 -51.0752 502.983 +86.4144 -55.1192 542.808 +90.3855 -61.0982 601.689 +84.9513 -61.0656 601.368 +82.3751 -63.2115 622.5 +81.4331 -67.0017 659.826 +80.7818 -71.6281 705.386 +79.5357 -76.4489 752.86 +78.5935 -82.4592 812.049 +77.2026 -89.1474 877.914 +79.0789 -101.509 999.649 +73.4815 -106.16 1045.45 +200.038 -330.411 3253.86 +171.489 -330.575 3255.47 +142.928 -330.714 3256.83 +114.355 -330.827 3257.95 +85.774 -330.916 3258.82 +57.1863 -330.978 3259.44 +28.5942 -331.017 3259.82 +2.00633e-13 -331.029 3259.94 +-28.5942 -331.017 3259.82 +-57.1863 -330.978 3259.44 +-85.7635 -330.875 3258.42 +-114.355 -330.827 3257.95 +-142.928 -330.714 3256.83 +-171.489 -330.575 3255.47 +-200.038 -330.411 3253.86 +-228.571 -330.223 3252 +-257.087 -330.008 3249.89 +-285.583 -329.769 3247.53 +-314.058 -329.504 3244.92 +-342.467 -329.175 3241.68 +-135.21 -119.888 1180.65 +-145.878 -120.026 1182 +-156.279 -119.923 1180.99 +-159.311 -114.518 1127.76 +-128.077 -86.5766 852.598 +-135.504 -86.4306 851.159 +-155.442 -93.8405 924.132 +-157.864 -90.4466 890.709 +-154.208 -84.0559 827.773 +-152.094 -79.0476 778.452 +-155.587 -77.2572 760.821 +-104.725 -49.7743 490.172 +-104.735 -47.7273 470.013 +-104.332 -45.6545 449.601 +-103.86 -43.7041 430.394 +-103.76 -42.0426 414.031 +-103.182 -40.3064 396.933 +-103.165 -38.8965 383.048 +-102.62 -37.3827 368.141 +-102.565 -36.1351 355.855 +-102.246 -34.8713 343.409 +-102.067 -33.7268 332.138 +-101.759 -32.6046 321.087 +-101.296 -31.4952 310.161 +-100.998 -30.4945 300.307 +-101.056 -29.6497 291.987 +-100.776 -28.75 283.127 +-101.204 -28.0905 276.632 +-100.72 -27.2148 268.009 +-102.314 -26.9269 265.173 +-101.228 -25.9615 255.666 +-103.579 -25.8994 255.054 +-102.368 -24.9671 245.874 +-109.483 -26.0569 256.605 +-104.193 -24.2084 238.402 +-115.473 -26.2015 258.029 +-111.677 -24.7565 243.799 +-123.362 -26.7263 263.198 +-116.625 -24.7016 243.259 +-125.593 -26.0144 256.187 +-126.185 -25.5681 251.792 +-168.521 -33.4132 329.05 +-144.343 -28.0122 275.861 +-145.02 -27.5539 271.348 +-145.486 -27.0698 266.58 +-147.915 -26.9581 265.481 +-153.685 -27.4422 270.248 +-112.6 -19.7028 194.031 +-110.491 -18.95 186.617 +-110.888 -18.644 183.604 +-112.18 -18.4938 182.125 +-113.403 -18.3342 180.554 +-115.09 -18.2506 179.73 +-117.043 -18.2077 179.308 +-118.335 -18.0618 177.87 +-120.45 -18.0405 177.661 +-122.174 -17.9586 176.855 +-126.416 -18.2392 179.617 +-488.72 -69.2183 681.655 +-492.211 -68.4415 674.005 +-495.19 -67.6071 665.787 +-498.905 -66.8856 658.682 +-502.289 -66.1306 651.247 +-505.397 -65.3509 643.568 +-508.408 -64.5708 635.886 +-511.575 -63.8218 628.51 +-517.577 -63.4307 624.659 +-533.578 -64.2411 632.64 +-522.481 -61.8018 608.617 +-526.356 -61.171 602.405 +-530.361 -60.5609 596.397 +-162.398 -18.221 179.438 +-164.371 -18.1219 178.462 +-168.999 -18.3087 180.302 +-544.901 -58.0092 571.268 +-548.294 -57.3595 564.87 +-552.106 -56.7586 558.953 +-555.927 -56.1625 553.083 +-559.117 -55.5075 546.632 +-562.596 -54.8861 540.512 +-566.662 -54.3255 534.992 +-580.037 -54.6437 538.126 +-572.864 -53.0315 522.248 +-386.287 -35.1379 346.035 +-385.712 -34.4747 339.503 +-383.845 -33.7092 331.965 +-386.21 -33.3236 328.167 +-384.937 -32.6312 321.348 +-384.809 -32.0464 315.589 +-385.387 -31.5279 310.483 +-384.417 -30.8913 304.215 +-384.313 -30.3336 298.722 +-385.49 -29.8829 294.284 +-141.279 -10.7552 105.916 +-142.765 -10.6724 105.101 +-141.982 -10.4213 102.628 +-142.959 -10.3016 101.449 +-141.304 -9.99561 98.4357 +-141.915 -9.8535 97.0362 +-144.916 -9.87488 97.2468 +-146.18 -9.77464 96.2596 +-146.6 -9.61788 94.7158 +-383.321 -24.6706 242.954 +-380.858 -24.0426 236.769 +-381.215 -23.6004 232.414 +-381.011 -23.1281 227.763 +-381.012 -22.6734 223.285 +-380.099 -22.1699 218.327 +-380.52 -21.7495 214.187 +-380.984 -21.3348 210.103 +-379.825 -20.8342 205.173 +-380.021 -20.4132 201.027 +-382.213 -20.1006 197.949 +-714.587 -36.7832 362.237 +-739.932 -37.2698 367.029 +-731.888 -36.0625 355.14 +-404.268 -19.4803 191.839 +-405.754 -19.1145 188.238 +-404.023 -18.6011 183.182 +-404.792 -18.2072 179.303 +-402.956 -17.7006 174.314 +-403.273 -17.2934 170.303 +-403.92 -16.9024 166.453 +-403.789 -16.4813 162.306 +-404.453 -16.0951 158.503 +-404.987 -15.7054 154.665 +-403.987 -15.2592 150.271 +-404.914 -14.8887 146.622 +-404.016 -14.4537 142.338 +-404.871 -14.0837 138.695 +-403.132 -13.6269 134.196 +-404.009 -13.2616 130.598 +-403.899 -12.8654 126.697 +-383.287 -11.8384 116.583 +-379.884 -11.368 111.951 +-381.236 -11.0439 108.759 +-381.309 -10.683 105.205 +-380.382 -10.2968 101.402 +-379.998 -9.92816 97.7714 +-380.938 -9.59521 94.4926 +-380.002 -9.21656 90.7637 +-380.686 -8.87893 87.4388 +-380.072 -8.51236 83.8288 +-378.934 -8.13706 80.1329 +-379.231 -7.79463 76.7607 +-379.988 -7.46193 73.4843 +-379.143 -7.09903 69.9105 +-380.234 -6.77328 66.7026 +-379.917 -6.4228 63.251 +-377.89 -6.04653 59.5456 +-380.079 -5.73855 56.5126 +-379.273 -5.38497 53.0306 +-378.831 -5.03853 49.6189 +-378.458 -4.69451 46.2311 +-379.644 -4.36983 43.0336 +-377.421 -4.00752 39.4657 +-378.649 -3.68334 36.2732 +-377.657 -3.33794 32.8717 +-379.526 -3.01756 29.7166 +-3268.32 -23.0886 227.374 +-378.493 -2.33869 23.0312 +-3271.81 -17.3226 170.591 +-3273.18 -14.4375 142.179 +-3274.3 -11.5513 113.756 +-3275.18 -8.66426 85.3247 +-3275.8 -5.77654 56.8868 +-144.794 -0.127655 1.25714 +95.7 0 0 +95.6964 -0.07687 0.831584 +95.6854 -0.153735 1.66311 +95.6672 -0.230586 2.4945 +96.4412 -0.309991 3.3535 +96.5081 -0.387846 4.19574 +95.5688 -0.461015 4.98729 +96.4198 -0.54282 5.87225 +96.4644 -0.620889 6.71681 +96.3022 -0.697627 7.54697 +96.4316 -0.776559 8.40086 +96.2548 -0.853104 9.22893 +96.1703 -0.930388 10.065 +95.979 -1.00656 10.889 +95.9792 -1.08474 11.7348 +95.8727 -1.16179 12.5683 +95.7589 -1.23875 13.4009 +96.429 -1.32651 14.3502 +95.3119 -1.38951 15.0318 +96.0642 -1.47969 16.0074 +95.6248 -1.552 16.7896 +95.4741 -1.62876 17.62 +95.4142 -1.70713 18.4679 +95.2487 -1.78371 19.2963 +95.0759 -1.86015 20.1232 +94.896 -1.93645 20.9486 +95.5857 -2.03123 21.974 +95.584 -2.11223 22.8503 +96.1563 -2.20675 23.8727 +95.9434 -2.2839 24.7074 +95.7232 -2.36088 25.5401 +95.4958 -2.43767 26.3709 +95.9339 -2.53205 27.3918 +95.6902 -2.609 28.2244 +95.5348 -2.68846 29.0839 +96.1347 -2.79 30.1824 +95.8665 -2.86712 31.0167 +96.4445 -2.9703 32.1329 +96.1592 -3.04766 32.9697 +95.8666 -3.12478 33.8041 +96.2245 -3.2237 34.8742 +95.9152 -3.30087 35.709 +96.4389 -3.40747 36.8622 +96.1121 -3.48481 37.6989 +96.6126 -3.59291 38.8683 +96.2682 -3.67037 39.7063 +96.1007 -3.75475 40.6191 +95.7411 -3.8318 41.4527 +96.2877 -3.94599 42.688 +95.9099 -4.02319 43.5231 +96.4311 -4.13898 44.7757 +95.9448 -4.21231 45.569 +96.3507 -4.32554 46.7939 +96.0265 -4.40687 47.6738 +95.5159 -4.47966 48.4612 +95.8859 -4.59446 49.7031 +96.153 -4.70588 50.9085 +95.7032 -4.78293 51.742 +95.7709 -4.8864 52.8613 +95.3039 -4.96314 53.6915 +95.6958 -5.08552 55.0155 +95.8132 -5.1949 56.1987 +95.317 -5.27165 57.0291 +95.581 -5.3913 58.3234 +95.6598 -5.50202 59.5211 +95.2189 -5.58359 60.4036 +95.273 -5.69495 61.6083 +95.4799 -5.81699 62.9285 +94.8419 -5.88831 63.7001 +95.7635 -6.05811 65.537 +95.1036 -6.12952 66.3095 +95.9028 -6.29655 68.1164 +95.464 -6.38416 69.0643 +95.4178 -6.49893 70.3058 +94.8779 -6.58086 71.1921 +95.4404 -6.74087 72.9231 +95.5069 -6.86828 74.3014 +95.4782 -6.99057 75.6244 +95.589 -7.12492 77.0778 +95.5271 -7.24827 78.4122 +94.9129 -7.33064 79.3033 +94.7466 -7.44844 80.5777 +94.7161 -7.57861 81.9859 +94.668 -7.7093 83.3996 +94.6767 -7.84663 84.8853 +95.2562 -8.03432 86.9158 +95.1491 -8.16702 88.3513 +94.9515 -8.29382 89.7231 +94.809 -8.42733 91.1673 +94.6483 -8.56123 92.6159 +94.4695 -8.6955 94.0685 +94.9031 -8.88922 96.1641 +94.6819 -9.0247 97.6298 +95.1306 -9.2273 99.8214 +94.1158 -9.28989 100.499 +94.4475 -9.48723 102.633 +94.0798 -9.61748 104.042 +94.4896 -9.83056 106.348 +94.0133 -9.95473 107.691 +94.105 -10.1419 109.715 +93.6542 -10.2735 111.139 +94.2668 -10.5259 113.87 +93.9575 -10.6799 115.535 +93.9375 -10.8702 117.595 +93.5805 -11.025 119.27 +93.4449 -11.2093 121.263 +93.7628 -11.453 123.899 +92.7924 -11.5427 124.87 +97.8075 -12.3912 134.049 +115.618 -14.9197 161.402 +115.576 -15.193 164.358 +115.66 -15.4901 167.573 +115.25 -15.7274 170.14 +115.686 -16.0879 174.04 +115.246 -16.3347 176.71 +115.466 -16.6828 180.476 +115.204 -16.9701 183.583 +114.95 -17.266 186.785 +115.214 -17.6496 190.934 +115.262 -18.0111 194.845 +115.05 -18.3421 198.426 +115.621 -18.8104 203.492 +113.445 -18.8381 203.792 +110.796 -18.7829 203.195 +108.589 -18.7981 203.359 +106.295 -18.7948 203.323 +104.1 -18.8057 203.441 +101.599 -18.7568 202.912 +99.4226 -18.7631 202.981 +97.2525 -18.7675 203.028 +94.7088 -18.6948 202.242 +92.6839 -18.7199 202.513 +91.3124 -18.8777 204.22 +91.3933 -19.3471 209.298 +91.3139 -19.801 214.209 +91.0404 -20.2308 218.858 +91.1792 -20.7726 224.719 +91.1489 -21.2989 230.413 +90.9896 -21.8181 236.03 +90.7738 -22.3473 241.754 +90.6353 -22.9211 247.962 +90.1612 -23.4355 253.526 +90.0522 -24.0727 260.42 +89.7655 -24.6941 267.142 +89.6149 -25.3867 274.635 +89.0991 -26.0108 281.386 +88.9687 -26.7856 289.769 +89.0104 -27.6592 299.218 +88.645 -28.4552 307.83 +88.5094 -29.3767 317.799 +88.3349 -30.3447 328.27 +88.0837 -31.3502 339.148 +87.8176 -32.42 350.722 +87.3553 -33.4918 362.316 +87.146 -34.7445 375.869 +86.9654 -36.1073 390.611 +86.5121 -37.4632 405.279 +86.1469 -38.9744 421.627 +85.6732 -40.5692 438.88 +85.268 -42.347 458.112 +85.0008 -44.3718 480.017 +84.6034 -46.5355 503.424 +86.2893 -50.1473 542.496 +90.4002 -55.6767 602.314 +84.9791 -55.6561 602.091 +82.2968 -57.5383 622.452 +81.4575 -61.0647 660.602 +80.6686 -65.17 705.013 +79.4521 -69.5806 752.727 +78.5648 -75.1024 812.462 +77.2026 -81.2237 878.683 +79.0632 -92.4681 1000.33 +73.4466 -96.6792 1045.88 +71.262 -107.244 1160.17 +70.3971 -123.641 1337.56 +142.928 -301.319 3259.68 +114.355 -301.422 3260.8 +85.774 -301.503 3261.67 +57.1863 -301.56 3262.29 +28.5942 -301.595 3262.67 +2.00633e-13 -301.606 3262.79 +-28.5942 -301.595 3262.67 +-57.1863 -301.56 3262.29 +-85.774 -301.503 3261.67 +-114.355 -301.422 3260.8 +-142.928 -301.319 3259.68 +-171.489 -301.193 3258.32 +-200.038 -301.043 3256.71 +-228.571 -300.871 3254.84 +-257.087 -300.676 3252.73 +-285.548 -300.421 3249.97 +-314.058 -300.217 3247.76 +-342.508 -299.954 3244.92 +-135.81 -109.717 1186.93 +-146.645 -109.933 1189.26 +-160.143 -111.964 1211.24 +-161.149 -105.542 1141.76 +-128.239 -78.9816 854.427 +-135.504 -78.7483 851.904 +-157.455 -86.6072 936.922 +-568.924 -296.988 3212.83 +-597.131 -296.555 3208.15 +-151.998 -71.9763 778.644 +-155.447 -70.3272 760.803 +-104.975 -45.4583 491.77 +-104.735 -43.4851 470.424 +-104.332 -41.5966 449.995 +-103.86 -39.8196 430.77 +-103.833 -38.3325 414.683 +-103.257 -36.7505 397.569 +-103.165 -35.4392 383.384 +-102.807 -34.1221 369.135 +-102.813 -33.003 357.029 +-102.217 -31.763 343.614 +-102.535 -30.8699 333.952 +-102.029 -29.7856 322.222 +-102.841 -29.1335 315.168 +-101.855 -28.0198 303.12 +-104.182 -27.8499 301.282 +-102.212 -26.5678 287.412 +-109.994 -27.8166 300.922 +-103.276 -25.4253 275.052 +-116.828 -28.0138 303.055 +-108.521 -25.3583 274.327 +-123.583 -28.1547 304.579 +-115.57 -25.6818 277.828 +-1280.15 -277.596 3003.05 +-123.453 -26.1338 282.717 +-171.236 -35.401 382.97 +-127.103 -25.6718 277.719 +-173.273 -34.2029 370.009 +-169.88 -32.783 354.648 +-179.469 -33.8697 366.404 +-171.117 -31.5907 341.75 +-435.558 -78.6835 851.203 +-145.22 -25.6775 277.781 +-145.583 -25.2023 272.64 +-145.486 -24.6637 266.813 +-148.352 -24.6345 266.498 +-153.538 -24.9791 270.225 +-112.15 -17.8798 193.424 +-110.339 -17.2418 186.523 +-111.197 -17.0341 184.276 +-112.285 -16.8657 182.454 +-113.827 -16.7671 181.388 +-115.466 -16.6828 180.476 +-116.88 -16.5663 179.215 +-118.335 -16.4564 178.026 +-119.891 -16.3607 176.991 +-122.174 -16.3624 177.009 +-125.9 -16.5502 179.041 +-488.72 -63.066 682.251 +-491.565 -62.2763 673.709 +-495.012 -61.5757 666.13 +-498.724 -60.9184 659.019 +-501.924 -60.2089 651.343 +-504.842 -59.477 643.426 +-508.781 -58.8748 636.911 +-511.889 -58.1849 629.447 +-519.103 -57.9632 627.05 +-532.999 -58.4677 632.507 +-522.676 -56.3296 609.377 +-525.963 -55.6923 602.482 +-530.56 -55.1987 597.143 +-161.729 -16.533 178.855 +-164.641 -16.5382 178.911 +-166.339 -16.4188 177.62 +-544.901 -52.8531 571.768 +-548.919 -52.3207 566.009 +-552.597 -51.7597 559.94 +-555.574 -51.1381 553.215 +-559.331 -50.5931 547.32 +-562.811 -50.0269 541.194 +-566.3 -49.4651 535.117 +-577.769 -49.5922 536.492 +-572.496 -48.2868 522.369 +-386.51 -32.0333 346.538 +-385.712 -31.4105 339.8 +-385.355 -30.8338 333.562 +-384.385 -30.2182 326.902 +-382.716 -29.5592 319.774 +-385.889 -29.28 316.753 +-383.522 -28.5866 309.252 +-384.417 -28.1456 304.481 +-385.495 -27.7225 299.903 +-384.459 -27.154 293.754 +-141.678 -9.82697 106.309 +-142.765 -9.72379 105.193 +-142.063 -9.50049 102.777 +-143.04 -9.39141 101.597 +-141.222 -9.10189 98.4648 +-141.75 -8.96726 97.0083 +-145.496 -9.03321 97.7218 +-146.931 -8.95155 96.8384 +-148.025 -8.84823 95.7207 +-381.213 -22.3541 241.828 +-380.01 -21.8569 236.449 +-381.301 -21.5075 232.669 +-382.039 -21.1293 228.578 +-382.563 -20.7422 224.39 +-381.311 -20.2638 219.215 +-380.258 -19.8027 214.227 +-380.809 -19.4295 210.19 +-380.264 -19.0044 205.591 +-382.316 -18.7111 202.418 +-382.834 -18.3439 198.445 +-714.944 -33.5306 362.736 +-738.679 -33.8997 366.729 +-728.293 -32.6957 353.704 +-402.011 -17.6497 190.936 +-406.117 -17.4311 188.571 +-401.93 -16.86 182.392 +-403.422 -16.5328 178.852 +-405.982 -16.2484 175.777 +-405.298 -15.8354 171.309 +-401.61 -15.312 165.646 +-404.623 -15.0474 162.784 +-404.825 -14.6781 158.788 +-404.147 -14.2797 154.478 +-403.893 -13.8997 150.368 +-404.068 -13.5371 146.445 +-403.168 -13.1413 142.163 +-403.642 -12.793 138.395 +-404.46 -12.4565 134.755 +-404.009 -12.0828 130.713 +-402.659 -11.6859 126.419 +-382.809 -10.7726 116.539 +-380.46 -10.3733 112.219 +-381.236 -10.0622 108.854 +-380.827 -9.72121 105.165 +-379.512 -9.36012 101.258 +-379.514 -9.03418 97.7323 +-380.55 -8.73345 94.479 +-379.613 -8.38877 90.7502 +-379.322 -8.06075 87.2016 +-379.096 -7.73583 83.6867 +-378.543 -7.40615 80.1202 +-379.623 -7.10915 76.9072 +-379.006 -6.78113 73.3586 +-380.618 -6.49321 70.2439 +-378.856 -6.14888 66.5189 +-378.931 -5.83673 63.1421 +-379.569 -5.53358 59.8626 +-379.683 -5.22304 56.5031 +-378.679 -4.89865 52.9939 +-379.327 -4.59669 49.7273 +-379.748 -4.29183 46.4293 +-379.942 -3.98455 43.1051 +-378.813 -3.66479 39.6459 +-378.35 -3.35331 36.2763 +-379.451 -3.05569 33.0567 +-3266.2 -23.6609 255.965 +-378.875 -2.43861 26.381 +-3270.19 -18.4103 199.164 +-379.679 -1.83153 19.8136 +-3273.18 -13.1542 142.303 +-3274.3 -10.5246 113.856 +-3275.18 -7.89415 85.3994 +-3275.8 -5.2631 56.9366 +-144.095 -0.115746 1.25215 +95.8 0 0 +95.6964 -0.0693647 0.832243 +95.6854 -0.138725 1.66443 +95.6672 -0.208073 2.49647 +96.4412 -0.279725 3.35616 +95.6089 -0.346718 4.15996 +96.5675 -0.420351 5.0434 +96.4198 -0.489821 5.87691 +96.4644 -0.560268 6.72214 +96.4019 -0.630165 7.56077 +96.332 -0.700015 8.39884 +96.2548 -0.769811 9.23625 +96.1703 -0.839549 10.073 +96.0784 -0.909227 10.909 +95.9792 -0.97883 11.7441 +95.7736 -1.04727 12.5652 +95.6599 -1.11665 13.3976 +96.429 -1.19699 14.3616 +96.2008 -1.26554 15.1841 +96.0642 -1.33522 16.0201 +95.7233 -1.40191 16.8203 +95.5724 -1.47124 17.6521 +95.4142 -1.54046 18.4825 +95.4447 -1.61287 19.3513 +95.2716 -1.68199 20.1806 +95.7746 -1.76356 21.1593 +94.9036 -1.81983 21.8345 +95.584 -1.90601 22.8684 +95.186 -1.97119 23.6505 +95.8466 -2.05883 24.702 +95.7232 -2.13037 25.5604 +95.4958 -2.19967 26.3918 +96.2223 -2.2917 27.496 +95.7861 -2.35663 28.2751 +95.5348 -2.42597 29.107 +95.2763 -2.49512 29.9367 +95.9616 -2.58975 31.0721 +95.6859 -2.65921 31.9054 +96.1592 -2.7501 32.9959 +95.7724 -2.81692 33.7976 +96.2245 -2.90896 34.9019 +95.7279 -2.97277 35.6675 +96.1588 -3.06585 36.7844 +96.1121 -3.14457 37.7288 +96.6126 -3.24211 38.8991 +96.2682 -3.31201 39.7378 +96.1007 -3.38815 40.6513 +96.6581 -3.49081 41.883 +96.2877 -3.56073 42.7219 +95.9099 -3.63039 43.5577 +96.4311 -3.73487 44.8112 +95.9448 -3.80104 45.6052 +96.3507 -3.90321 46.831 +95.937 -3.9729 47.6671 +96.2287 -4.07245 48.8616 +95.8859 -4.14587 49.7425 +95.9764 -4.23862 50.8553 +96.4062 -4.34765 52.1634 +95.7709 -4.40931 52.9033 +96.1743 -4.51945 54.2248 +95.6958 -4.58899 55.0591 +95.8993 -4.6919 56.2938 +95.317 -4.75695 57.0743 +95.581 -4.86492 58.3697 +95.8294 -4.97363 59.674 +95.8936 -5.07414 60.8799 +95.273 -5.13892 61.6572 +95.5633 -5.25363 63.0334 +94.9248 -5.31805 63.8064 +95.6811 -5.46192 65.5326 +95.1036 -5.53106 66.3621 +95.2515 -5.64319 67.7074 +95.3831 -5.75596 69.0604 +95.4178 -5.8644 70.3615 +95.4369 -5.97332 71.6684 +94.8851 -6.04733 72.5563 +95.5857 -6.2028 74.4217 +95.4782 -6.30804 75.6844 +95.5112 -6.42405 77.0763 +94.9098 -6.49831 77.9673 +94.9129 -6.61491 79.3662 +95.4309 -6.76975 81.2241 +95.3953 -6.88771 82.6394 +95.3421 -7.00612 84.06 +95.3455 -7.13055 85.5529 +95.2562 -7.24988 86.9847 +95.1491 -7.36963 88.4214 +94.9515 -7.48405 89.7943 +94.809 -7.60452 91.2396 +94.7197 -7.73117 92.7592 +94.4695 -7.84651 94.1431 +94.9031 -8.02132 96.2404 +94.6819 -8.14357 97.7072 +94.5111 -8.27214 99.2498 +94.1158 -8.38286 100.578 +94.4475 -8.56094 102.715 +94.0798 -8.67847 104.125 +94.3571 -8.85829 106.282 +94.0789 -8.98902 107.851 +94.0401 -9.14534 109.727 +94.2969 -9.33405 111.991 +93.6943 -9.44045 113.267 +93.8317 -9.62417 115.472 +93.8752 -9.80233 117.609 +93.5805 -9.9486 119.364 +93.9928 -10.1742 122.071 +93.8831 -10.348 124.157 +92.6734 -10.4024 124.808 +98.1601 -11.2217 134.639 +115.618 -13.463 161.53 +115.518 -13.7028 164.407 +115.604 -13.9708 167.623 +115.194 -14.1849 170.192 +115.244 -14.4618 173.513 +115.137 -14.7259 176.682 +115.412 -15.0469 180.534 +115.257 -15.3202 183.813 +114.897 -15.5732 186.848 +115.266 -15.9335 191.171 +115.313 -16.2597 195.086 +115.45 -16.6088 199.274 +115.129 -16.9015 202.786 +113.445 -16.9989 203.954 +110.796 -16.949 203.356 +108.542 -16.9553 203.432 +106.295 -16.9597 203.484 +103.691 -16.9029 202.803 +101.599 -16.9254 203.073 +99.028 -16.8641 202.336 +96.9511 -16.8827 202.56 +94.7933 -16.8846 202.583 +92.6839 -16.8921 202.673 +91.3124 -17.0346 204.382 +91.3933 -17.4581 209.464 +91.3139 -17.8677 214.379 +91.0787 -18.2632 219.123 +91.2167 -18.7521 224.989 +91.1489 -19.2194 230.595 +91.0255 -19.6956 236.31 +90.6687 -20.1421 241.666 +90.6011 -20.6754 248.065 +90.495 -21.2256 254.667 +90.0847 -21.7302 260.721 +89.8289 -22.2988 267.542 +89.6458 -22.916 274.948 +89.1292 -23.4792 281.705 +89.1734 -24.226 290.665 +88.8968 -24.9268 299.074 +88.5898 -25.661 307.882 +88.5361 -26.5166 318.148 +88.5679 -27.4542 329.398 +88.309 -28.3617 340.286 +87.8418 -29.2627 351.097 +87.3319 -30.2138 362.507 +87.101 -31.336 375.972 +87.0087 -32.5981 391.115 +86.4705 -33.7893 405.406 +86.2864 -35.2261 422.646 +85.864 -36.6897 440.206 +85.596 -38.3594 460.239 +85.0355 -40.0559 480.594 +84.5374 -41.9592 503.429 +86.4144 -45.3167 543.714 +90.5185 -50.3064 603.58 +84.993 -50.2303 602.667 +82.4012 -51.9863 623.736 +81.36 -55.0367 660.334 +80.5894 -58.7494 704.88 +79.358 -62.7127 752.432 +78.4881 -67.7036 812.313 +77.22 -73.31 879.579 +79.0475 -83.4233 1000.92 +73.4745 -87.2722 1047.1 +72.4951 -98.4486 1181.19 +69.0992 -109.512 1313.93 +142.928 -271.899 3262.27 +62.8924 -149.589 1794.78 +85.774 -272.065 3264.26 +57.1863 -272.117 3264.88 +28.5942 -272.148 3265.26 +2.00633e-13 -272.158 3265.38 +-28.5942 -272.148 3265.26 +-57.1863 -272.117 3264.88 +-85.774 -272.065 3264.26 +-114.355 -271.992 3263.38 +-142.928 -271.899 3262.27 +-171.489 -271.785 3260.9 +-200.038 -271.651 3259.29 +-228.543 -271.462 3257.03 +-257.056 -271.286 3254.91 +-285.548 -271.089 3252.55 +-147.325 -127.081 1524.73 +-170.246 -134.537 1614.18 +-136.002 -99.1455 1189.56 +-147.035 -99.4636 1193.37 +-167.556 -105.71 1268.32 +-456.028 -269.51 3233.6 +-128.121 -71.2045 854.317 +-135.253 -70.9284 851.004 +-157.604 -78.225 938.55 +-568.924 -267.991 3215.38 +-597.131 -267.601 3210.7 +-151.998 -64.9489 779.262 +-155.288 -63.3956 760.626 +-104.684 -40.9061 490.795 +-104.67 -39.2151 470.506 +-104.647 -37.6486 451.711 +-103.86 -35.9318 431.112 +-105.623 -35.1862 422.167 +-103.482 -33.2347 398.752 +-106.168 -32.9098 394.854 +-103.528 -31.0066 372.02 +-110.09 -31.8885 382.601 +-104.177 -29.2113 350.48 +-118.761 -32.2642 387.109 +-105.608 -27.8201 333.788 +-124.688 -31.8738 382.425 +-114.801 -28.4977 341.917 +-150.022 -36.1882 434.19 +-121.439 -28.4836 341.748 +-174.088 -39.7273 476.651 +-126.04 -27.9997 335.943 +-428.644 -92.7483 1112.8 +-1200.77 -253.19 3037.8 +-421.582 -86.6676 1039.84 +-172.782 -34.6464 415.691 +-421.833 -82.5418 990.343 +-421.358 -80.4886 965.709 +-420.728 -78.488 941.706 +-424.895 -77.4394 929.124 +-426.084 -75.894 910.583 +-429.349 -74.7651 897.038 +-393.613 -67.0306 804.238 +-433.347 -72.1913 866.157 +-391.658 -63.8448 766.015 +-144.158 -23.001 275.968 +-145.114 -22.6683 271.976 +-145.486 -22.2557 267.025 +-148.012 -22.1784 266.098 +-151.42 -22.2293 266.709 +-112.2 -16.1413 193.665 +-110.339 -15.5584 186.671 +-110.836 -15.3212 183.825 +-112.233 -15.2119 182.514 +-113.668 -15.1089 181.277 +-115.09 -15.0049 180.03 +-116.444 -14.8931 178.688 +-118.501 -14.8704 178.416 +-120.282 -14.8115 177.71 +-122.174 -14.7648 177.15 +-126.474 -15.0023 179.999 +-487.674 -56.7867 681.332 +-491.388 -56.1757 674.001 +-495.725 -55.6438 667.619 +-499.085 -55.0104 660.02 +-501.924 -54.3303 651.86 +-505.581 -53.7484 644.878 +-508.408 -53.0874 636.947 +-512.267 -52.5427 630.411 +-518.149 -52.2078 626.393 +-532.999 -52.7592 633.009 +-523.13 -50.874 610.391 +-526.159 -50.2735 603.186 +-159.426 -14.9671 179.576 +-162.398 -14.9805 179.738 +-164.844 -14.9419 179.274 +-166.817 -14.8583 178.271 +-544.901 -47.6928 572.222 +-548.919 -47.2124 566.458 +-551.966 -46.6528 559.744 +-556.21 -46.1981 554.288 +-559.331 -45.6534 547.754 +-563.243 -45.1771 542.039 +-566.082 -44.6185 535.336 +-390.031 -30.2093 362.453 +-390.167 -29.6953 356.287 +-388.145 -29.0279 348.279 +-385.038 -28.2942 339.476 +-386.638 -27.9159 334.938 +-384.994 -27.311 327.68 +-385.167 -26.8441 322.077 +-384.809 -26.3472 316.116 +-385.775 -25.9471 311.316 +-384.417 -25.3976 304.722 +-384.943 -24.98 299.712 +-384.3 -24.4927 293.865 +-141.518 -8.85754 106.274 +-142.765 -8.7744 105.276 +-142.063 -8.5729 102.858 +-143.04 -8.47448 101.677 +-141.386 -8.22275 98.6572 +-141.915 -8.10114 97.1982 +-145.164 -8.13266 97.5764 +-147.181 -8.09132 97.0803 +-147.354 -7.94814 95.3624 +-382.647 -20.2475 242.931 +-379.247 -19.6832 236.161 +-379.51 -19.3165 231.76 +-382.039 -19.0663 228.759 +-382.908 -18.7339 224.771 +-381.311 -18.2854 219.389 +-381.042 -17.906 214.838 +-382.471 -17.609 211.274 +-380.176 -17.1449 205.706 +-378.961 -16.7361 200.801 +-381.149 -16.4799 197.727 +-714.587 -30.2417 362.842 +-733.667 -30.3823 364.529 +-722.271 -29.2595 351.058 +-403.365 -15.9801 191.73 +-404.213 -15.6556 187.837 +-405.661 -15.3551 184.231 +-402.417 -14.8814 178.548 +-403.782 -14.5825 174.962 +-404.01 -14.2439 170.899 +-405.491 -13.9505 167.38 +-402.676 -13.513 162.13 +-406.406 -13.2967 159.535 +-404.707 -12.9034 154.816 +-404.736 -12.5689 150.802 +-404.914 -12.2409 146.867 +-406.184 -11.9469 143.34 +-404.871 -11.579 138.926 +-404.365 -11.2378 134.831 +-403.533 -10.8903 130.663 +-403.422 -10.565 126.759 +-384.626 -9.76704 117.186 +-378.254 -9.30623 111.657 +-380.852 -9.07067 108.831 +-380.345 -8.76095 105.115 +-379.899 -8.45487 101.442 +-380.385 -8.17084 98.0344 +-379.968 -7.8687 94.4093 +-379.905 -7.57554 90.8919 +-381.368 -7.31297 87.7416 +-379.584 -6.98953 83.8609 +-379.815 -6.7055 80.4531 +-379.623 -6.41504 76.9682 +-378.515 -6.11112 73.3217 +-378.75 -5.83048 69.9545 +-380.234 -5.56872 66.8139 +-379.917 -5.28056 63.3566 +-378.778 -4.98291 59.7853 +-379.288 -4.70817 56.489 +-377.985 -4.41228 52.9388 +-379.723 -4.15223 49.8188 +-379.252 -3.86773 46.4054 +-378.849 -3.58518 43.0153 +-380.007 -3.31739 39.8023 +-379.146 -3.03227 36.3815 +-378.056 -2.74722 32.9613 +-379.128 -2.4783 29.7349 +-378.775 -2.19993 26.395 +-3270.19 -16.6128 199.322 +-3271.81 -14.2419 170.876 +-3273.18 -11.8699 142.416 +-3274.3 -9.49701 113.946 +-3275.18 -7.1234 85.4672 +-3275.8 -4.74924 56.9817 +-143.095 -0.103721 1.24446 +95.9 0 0 +95.6964 -0.0618538 0.832835 +95.7854 -0.123832 1.66735 +95.6672 -0.185542 2.49825 +96.6411 -0.249953 3.36551 +95.7088 -0.309498 4.16726 +95.7686 -0.371734 5.00523 +96.5196 -0.437234 5.88718 +95.6664 -0.495469 6.67128 +96.4019 -0.56193 7.56615 +96.4316 -0.624863 8.41351 +96.2548 -0.686455 9.24282 +96.4686 -0.750967 10.1115 +96.1778 -0.811611 10.928 +96.277 -0.875544 11.7888 +95.8727 -0.934841 12.5872 +96.7492 -1.00708 13.5599 +96.429 -1.06738 14.3718 +95.4107 -1.11924 15.0701 +96.0642 -1.19064 16.0314 +95.9203 -1.25268 16.8668 +95.5724 -1.31194 17.6646 +95.6105 -1.37648 18.5338 +95.2487 -1.43528 19.3254 +96.1519 -1.51372 20.3816 +95.677 -1.571 21.1528 +95.7806 -1.63778 22.052 +95.584 -1.69962 22.8847 +96.3504 -1.77925 23.9568 +95.9434 -1.83775 24.7445 +95.9164 -1.90352 25.6301 +95.4958 -1.96148 26.4106 +96.03 -2.03947 27.4606 +95.7861 -2.10145 28.2952 +95.5348 -2.16328 29.1277 +96.1347 -2.24499 30.2278 +96.1518 -2.31391 31.1558 +95.6859 -2.37126 31.9281 +96.2538 -2.45472 33.0518 +95.7724 -2.5119 33.8217 +96.2245 -2.59397 34.9267 +95.7279 -2.65087 35.6929 +97.2791 -2.76573 37.2393 +96.1121 -2.80407 37.7556 +96.6126 -2.89105 38.9268 +96.2682 -2.95339 39.7661 +96.1928 -3.02418 40.7193 +96.6581 -3.11282 41.9128 +95.4655 -3.14806 42.3873 +96.0009 -3.24035 43.6299 +95.7967 -3.30854 44.5481 +96.0351 -3.39265 45.6806 +96.4406 -3.48381 46.908 +96.0265 -3.54601 47.7455 +96.3178 -3.63484 48.9416 +96.5955 -3.72431 50.1463 +96.153 -3.78661 50.9851 +95.7032 -3.84861 51.8199 +96.0332 -3.94263 53.0859 +95.478 -4.00091 53.8705 +95.869 -4.0995 55.198 +95.8993 -4.18386 56.3338 +96.0885 -4.2762 57.5772 +95.4957 -4.33427 58.3591 +95.8294 -4.43508 59.7164 +95.2189 -4.49286 60.4945 +95.4407 -4.59054 61.8097 +95.4799 -4.68067 63.0232 +95.6709 -4.77948 64.3537 +95.1042 -4.84113 65.1838 +95.1855 -4.9364 66.4665 +95.2515 -5.03214 67.7556 +95.464 -5.13705 69.1682 +95.5786 -5.2382 70.5301 +95.4369 -5.32652 71.7194 +95.5991 -5.4331 73.1543 +95.5857 -5.53115 74.4746 +94.9304 -5.59272 75.3036 +95.589 -5.7331 77.1938 +94.9098 -5.79467 78.0227 +95.4491 -5.93196 79.8713 +94.8226 -5.99824 80.7638 +95.3953 -6.1419 82.6981 +95.3421 -6.24749 84.1198 +95.2712 -6.35348 85.5469 +95.1825 -6.45985 86.9791 +95.1491 -6.57164 88.4843 +94.9515 -6.67367 89.8581 +94.809 -6.78109 91.3045 +94.6483 -6.88884 92.7552 +94.5402 -7.00212 94.2805 +94.9031 -7.15276 96.3089 +94.7514 -7.2671 97.8484 +94.5111 -7.37642 99.3204 +94.866 -7.5347 101.452 +94.4475 -7.63395 102.788 +94.1467 -7.74423 104.273 +94.4896 -7.91021 106.508 +94.0789 -8.01568 107.928 +94.105 -8.1607 109.88 +94.2969 -8.32335 112.07 +93.6943 -8.41823 113.348 +93.9575 -8.59361 115.709 +93.9375 -8.74678 117.772 +93.5805 -8.87135 119.449 +93.9928 -9.07252 122.158 +93.823 -9.22161 124.165 +92.6734 -9.27597 124.897 +98.2189 -10.0126 134.816 +115.095 -11.951 160.915 +115.576 -12.2251 164.606 +115.66 -12.4642 167.825 +115.753 -12.7104 171.14 +115.244 -12.8958 173.637 +115.627 -13.1873 177.561 +114.982 -13.3677 179.99 +115.257 -13.6613 183.943 +115.42 -13.95 187.831 +115.214 -14.2018 191.221 +115.262 -14.4927 195.139 +115.45 -14.8104 199.416 +115.129 -15.0714 202.93 +113.009 -15.0999 203.314 +110.749 -15.1073 203.413 +108.589 -15.126 203.665 +106.341 -15.1299 203.718 +103.782 -15.0859 203.125 +101.599 -15.0927 203.217 +99.5103 -15.1112 203.466 +96.9511 -15.0546 202.704 +94.7933 -15.0563 202.727 +92.6839 -15.063 202.817 +91.3531 -15.1968 204.618 +91.3933 -15.5677 209.613 +91.3529 -15.9398 214.623 +91.0787 -16.2856 219.279 +91.1792 -16.7148 225.057 +91.1489 -17.1383 230.759 +91.0255 -17.563 236.478 +90.7738 -17.9819 242.118 +90.5669 -18.4297 248.148 +90.1279 -18.8505 253.814 +90.0522 -19.3702 260.812 +89.5751 -19.8281 266.977 +89.7076 -20.4487 275.334 +89.3096 -20.9792 282.476 +89.0857 -21.5815 290.586 +88.8968 -22.2277 299.287 +88.6725 -22.9037 308.389 +88.4559 -23.6239 318.086 +88.4126 -24.4385 329.054 +88.0336 -25.2118 339.466 +87.7693 -26.0726 351.056 +87.3086 -26.9349 362.667 +87.146 -27.9574 376.434 +86.9654 -29.0539 391.199 +86.4705 -30.1305 405.695 +86.3463 -31.4335 423.239 +85.7877 -32.6878 440.128 +85.4867 -34.1621 459.978 +85.0181 -35.7113 480.838 +84.6529 -37.467 504.477 +86.2736 -40.3439 543.214 +90.415 -44.8079 603.319 +84.9791 -44.784 602.997 +82.1793 -46.2324 622.5 +81.1894 -48.9743 659.418 +80.3743 -52.2481 703.498 +79.4312 -55.9736 753.661 +78.4881 -60.3726 812.891 +77.1415 -65.3055 879.31 +78.9769 -74.3242 1000.74 +73.342 -77.6823 1045.96 +71.8663 -87.0263 1171.77 +68.9265 -97.4103 1311.59 +65.4465 -111.021 1494.85 +60.938 -129.246 1740.25 +51.5215 -145.725 1962.13 +36.1684 -153.469 2066.39 +28.5942 -242.68 3267.58 +2.00584e-13 -242.629 3266.9 +-28.5942 -242.68 3267.58 +-57.1723 -242.592 3266.4 +-85.774 -242.606 3266.58 +-114.327 -242.481 3264.91 +-142.928 -242.458 3264.59 +-171.468 -242.327 3262.82 +-159.331 -192.941 2597.88 +-154.357 -163.492 2201.35 +-147.26 -138.584 1865.97 +-134.307 -113.7 1530.92 +-147.487 -113.447 1527.51 +-171.542 -120.882 1627.63 +-136.07 -88.4536 1190.99 +-146.816 -88.561 1192.44 +-169.097 -95.1305 1280.89 +-421.374 -222.064 2990 +-128.092 -63.4797 854.727 +-135.519 -63.3725 853.284 +-157.241 -69.594 937.053 +-166.546 -69.9565 941.935 +-597.131 -238.625 3212.98 +-152.132 -57.967 780.501 +-155.447 -56.5891 761.948 +-166.184 -57.9064 779.686 +-107.765 -36.0028 484.763 +-118.414 -37.9885 511.499 +-112.497 -34.7057 467.298 +-128.581 -38.1962 514.296 +-121.559 -34.8132 468.745 +-848.072 -234.419 3156.36 +-126.564 -33.8014 455.122 +-903.071 -233.259 3140.73 +-930.519 -232.666 3132.75 +-957.897 -232.056 3124.53 +-985.202 -231.428 3116.08 +-167.92 -38.2771 515.385 +-146.468 -32.4216 436.544 +-150.608 -32.3958 436.196 +-157.056 -32.8488 442.295 +-466.686 -94.9669 1278.69 +-436.534 -86.4753 1164.35 +-394.133 -76.0462 1023.93 +-395.748 -74.4101 1001.9 +-414.427 -75.9714 1022.92 +-419.651 -75.0374 1010.35 +-422.341 -73.6927 992.241 +-412.426 -70.2517 945.91 +-415.278 -69.0826 930.168 +-414.527 -67.3693 907.099 +-416.955 -66.2262 891.707 +-428.746 -66.5759 896.416 +-391.904 -59.5128 801.315 +-392.966 -58.3757 786.004 +-392.066 -56.991 767.36 +-144.019 -20.4907 275.899 +-145.348 -20.2465 272.61 +-145.533 -19.8523 267.303 +-148.74 -19.8741 267.596 +-151.568 -19.8416 267.159 +-112.3 -14.4063 193.975 +-110.288 -13.8673 186.718 +-111.094 -13.6939 184.383 +-112.337 -13.5774 182.815 +-113.403 -13.4415 180.984 +-115.251 -13.3989 180.41 +-116.771 -13.3177 179.317 +-118.832 -13.2973 179.043 +-119.723 -13.1463 177.009 +-122.174 -13.1661 177.276 +-125.957 -13.3233 179.392 +-488.371 -50.7101 682.79 +-491.917 -50.1469 675.206 +-495.012 -49.5472 667.133 +-499.085 -49.0538 660.489 +-502.106 -48.465 652.561 +-505.889 -47.9577 645.73 +-508.408 -47.3391 637.401 +-512.959 -46.9166 631.712 +-518.913 -46.6232 627.762 +-532.678 -47.018 633.077 +-522.936 -45.3484 610.597 +-527.012 -44.9025 604.593 +-530.361 -44.3993 597.818 +-162.197 -13.3419 179.643 +-164.506 -13.2967 179.034 +-167.09 -13.2711 178.69 +-545.177 -42.5501 572.919 +-548.919 -42.1002 566.861 +-551.966 -41.6012 560.142 +-556.21 -41.1957 554.682 +-559.117 -40.6945 547.934 +-562.811 -40.2544 542.008 +-566.88 -39.8432 536.471 +-570.748 -39.4198 530.77 +-572.348 -38.8442 523.021 +-387.476 -25.8402 347.927 +-384.739 -25.2108 339.453 +-386.638 -24.8932 335.176 +-383.625 -24.2672 326.747 +-384.095 -23.8707 321.409 +-384.501 -23.4755 316.087 +-385.387 -23.1142 311.223 +-384.104 -22.6291 304.691 +-384.076 -22.2249 299.249 +-384.776 -21.8676 294.438 +-141.438 -7.89392 106.288 +-142.765 -7.8243 105.351 +-142.144 -7.64899 102.99 +-143.04 -7.55685 101.75 +-141.468 -7.33663 98.7846 +-141.75 -7.21555 97.1543 +-144.418 -7.21477 97.1439 +-146.264 -7.17021 96.5438 +-147.438 -7.09154 95.4845 +-378.345 -17.8521 240.371 +-381.198 -17.6422 237.545 +-380.533 -17.2713 232.551 +-381.782 -16.9904 228.768 +-381.702 -16.6527 224.221 +-382.523 -16.3572 220.243 +-381.216 -15.9745 215.09 +-380.722 -15.6305 210.458 +-381.67 -15.3485 206.661 +-380.374 -14.9795 201.693 +-381.681 -14.716 198.144 +-714.944 -26.9805 363.281 +-729.55 -26.9404 362.741 +-723.17 -26.1237 351.744 +-406.705 -14.3677 193.455 +-409.56 -14.145 190.456 +-403.568 -13.6217 183.411 +-404.061 -13.3243 179.406 +-406.808 -13.101 176.399 +-404.562 -12.7189 171.254 +-405.121 -12.4286 167.346 +-403.696 -12.0803 162.656 +-404.825 -11.8108 159.027 +-404.054 -11.4876 154.676 +-403.987 -11.1871 150.629 +-404.35 -10.9002 146.767 +-404.77 -10.6163 142.943 +-406.1 -10.3567 139.448 +-404.365 -10.0209 134.927 +-402.582 -9.68822 130.448 +-403.422 -9.42099 126.85 +-385.008 -8.71811 117.386 +-380.172 -8.34061 112.303 +-379.891 -8.06805 108.633 +-380.345 -7.8123 105.189 +-379.995 -7.54122 101.539 +-379.804 -7.27497 97.9543 +-379.095 -7.00054 94.2593 +-380.294 -6.76217 91.0497 +-378.835 -6.4778 87.2208 +-380.072 -6.24071 84.0285 +-380.988 -5.9979 80.7592 +-379.623 -5.72042 77.023 +-379.399 -5.46212 73.5451 +-380.028 -5.21669 70.2405 +-379.348 -4.95415 66.7056 +-377.747 -4.68188 63.0396 +-379.964 -4.45725 60.015 +-378.397 -4.18852 56.3966 +-378.877 -3.94378 53.1014 +-378.335 -3.68909 49.672 +-377.763 -3.43539 46.2561 +-378.849 -3.19697 43.0458 +-378.217 -2.94425 39.643 +-379.943 -2.70962 36.4838 +-378.952 -2.45555 33.0629 +-379.726 -2.21344 29.803 +-378.576 -1.96069 26.3999 +-3270.19 -14.814 199.464 +-3271.81 -12.6998 170.997 +-3273.18 -10.5846 142.517 +-3274.3 -8.46866 114.027 +-3275.18 -6.35207 85.5279 +-3275.8 -4.23498 57.0223 +-143.595 -0.092813 1.24969 +95.9 0 0 +95.7964 -0.0543947 0.834231 +96.6853 -0.109807 1.68407 +96.6669 -0.1647 2.52595 +95.7416 -0.217537 3.33629 +96.7079 -0.274729 4.21341 +95.7686 -0.326564 5.00838 +96.6194 -0.384503 5.89698 +95.6664 -0.435264 6.67547 +96.5016 -0.49416 7.57875 +96.4316 -0.548935 8.4188 +96.5534 -0.604914 9.27734 +96.2697 -0.658356 10.097 +96.3765 -0.714462 10.9574 +96.1777 -0.768362 11.7841 +95.9719 -0.822093 12.6081 +95.7589 -0.875648 13.4295 +96.5279 -0.938644 14.3956 +96.4972 -0.994431 15.2512 +96.2615 -1.04811 16.0745 +95.1324 -1.09143 16.7389 +95.769 -1.15489 17.7121 +95.6105 -1.20922 18.5454 +95.5427 -1.26476 19.3972 +96.1519 -1.32978 20.3944 +95.9699 -1.38433 21.2309 +95.7806 -1.43877 22.0658 +95.6812 -1.49461 22.9223 +95.5741 -1.55046 23.7788 +96.1371 -1.6177 24.81 +96.013 -1.67391 25.6721 +96.4594 -1.74053 26.6939 +96.2223 -1.79524 27.5328 +95.9779 -1.8498 28.3697 +95.7261 -1.90423 29.2044 +96.4208 -1.97807 30.337 +96.0567 -2.03073 31.1446 +95.8755 -2.08726 32.0115 +96.2538 -2.15644 33.0726 +95.8666 -2.20885 33.8763 +96.4125 -2.28322 35.0169 +95.9152 -2.33332 35.7852 +96.5322 -2.41101 36.9767 +96.2982 -2.46811 37.8525 +96.798 -2.54463 39.026 +96.453 -2.5995 39.8675 +96.2848 -2.65925 40.7839 +95.8328 -2.71122 41.581 +96.4704 -2.79464 42.8604 +96.0009 -2.84661 43.6574 +95.7061 -2.90376 44.5339 +96.0351 -2.98041 45.7093 +96.4406 -3.06049 46.9375 +96.0265 -3.11513 47.7755 +96.4069 -3.19612 49.0177 +95.9746 -3.25074 49.8553 +96.2413 -3.32955 51.064 +96.2305 -3.39959 52.1382 +96.1207 -3.46672 53.1677 +95.478 -3.51475 53.9044 +95.7824 -3.59811 55.1828 +95.8993 -3.67547 56.3693 +95.4027 -3.72978 57.2022 +95.581 -3.81101 58.448 +95.8294 -3.89617 59.754 +95.3876 -3.95392 60.6398 +95.3568 -4.0292 61.7943 +95.4799 -4.11192 63.0629 +95.7538 -4.20236 64.4499 +95.7635 -4.28236 65.6769 +95.9227 -4.37016 67.0235 +95.3329 -4.42446 67.8562 +95.464 -4.51284 69.2117 +95.4982 -4.59783 70.5152 +95.5967 -4.68713 71.8847 +95.5991 -4.77291 73.2004 +95.0341 -4.83102 74.0915 +94.9304 -4.91314 75.351 +95.589 -5.03647 77.2424 +95.6043 -5.1278 78.6431 +94.9129 -5.18189 79.4726 +95.507 -5.30742 81.3979 +95.4708 -5.39986 82.8156 +94.7429 -5.45386 83.6438 +94.751 -5.55099 85.1334 +95.2562 -5.67931 87.1013 +95.1491 -5.77311 88.54 +95.024 -5.86722 89.9833 +94.8809 -5.96163 91.4312 +94.7197 -6.05633 92.8836 +94.5402 -6.15128 94.3399 +94.9732 -6.28826 96.4406 +94.8903 -6.39343 98.0536 +94.5111 -6.4801 99.3829 +94.7978 -6.6144 101.443 +94.4475 -6.70634 102.853 +94.2805 -6.81292 104.487 +93.827 -6.9003 105.827 +94.0789 -7.04169 107.996 +94.105 -7.16909 109.95 +94.4255 -7.32192 112.294 +93.8215 -7.4054 113.574 +94.0205 -7.55447 115.86 +94.062 -7.6941 118.001 +93.6421 -7.79846 119.602 +93.6275 -7.93913 121.759 +93.9433 -8.11149 124.403 +92.257 -8.11221 124.414 +98.3953 -8.81172 135.142 +115.618 -10.5464 161.747 +115.748 -10.7556 164.955 +115.207 -10.9067 167.272 +115.306 -11.1228 170.586 +115.244 -11.3288 173.746 +115.3 -11.5521 177.171 +115.412 -11.7872 180.776 +115.363 -12.0123 184.229 +115.002 -12.2105 187.268 +115.214 -12.4761 191.342 +115.262 -12.7317 195.261 +115.1 -12.9713 198.937 +115.227 -13.2514 203.231 +113.058 -13.2708 203.529 +110.749 -13.2716 203.541 +108.636 -13.2937 203.881 +106.295 -13.2857 203.757 +103.828 -13.2585 203.341 +101.287 -13.218 202.72 +99.4664 -13.2691 203.504 +97.3386 -13.2782 203.643 +94.751 -13.2209 202.763 +93.0572 -13.286 203.762 +91.4344 -13.3621 204.93 +91.3933 -13.6761 209.745 +91.4311 -14.0149 214.942 +91.1169 -14.3128 219.51 +90.9545 -14.6475 224.643 +90.8557 -15.0074 230.162 +91.0613 -15.435 236.72 +90.8438 -15.8091 242.458 +90.5669 -16.1903 248.304 +90.5618 -16.6397 255.197 +90.0522 -17.0165 260.976 +89.6703 -17.4372 267.428 +89.8621 -17.9949 275.981 +89.2495 -18.4176 282.463 +89.2026 -18.984 291.151 +89.0672 -19.5642 300.049 +88.645 -20.1144 308.487 +88.5628 -20.7784 318.67 +88.2314 -21.4249 328.586 +88.0336 -22.1483 339.68 +87.8176 -22.9171 351.471 +87.3553 -23.6747 363.09 +87.3935 -24.63 377.741 +86.9438 -25.5172 391.347 +86.4497 -26.463 405.852 +86.0472 -27.5184 422.04 +85.864 -28.7414 440.796 +85.3591 -29.9663 459.581 +85.0355 -31.3784 481.238 +84.5044 -32.8565 503.908 +86.1485 -35.3903 542.767 +90.415 -39.3632 603.699 +85.0069 -39.3551 603.574 +82.2184 -40.634 623.188 +81.2137 -43.0363 660.031 +80.3856 -45.9058 704.04 +79.358 -49.1269 753.441 +78.306 -52.9136 811.516 +77.159 -57.3831 880.062 +78.9848 -65.2995 1001.47 +73.2862 -68.191 1045.82 +71.6038 -76.1725 1168.23 +68.9055 -85.5478 1312.01 +65.3069 -97.3227 1492.6 +60.8926 -113.457 1740.05 +51.4796 -127.914 1961.76 +36.1736 -134.84 2067.99 +28.5873 -213.139 3268.84 +2.00584e-13 -213.147 3268.96 +-28.5873 -213.139 3268.84 +-57.1723 -213.115 3268.46 +-85.7531 -213.074 3267.84 +-114.327 -213.017 3266.96 +-142.893 -212.944 3265.85 +-169.061 -209.892 3219.03 +-156.98 -166.996 2561.16 +-154.301 -143.574 2201.93 +-147.197 -121.693 1866.36 +-134.612 -100.111 1535.36 +-147.44 -99.6292 1527.98 +-171.385 -106.097 1627.16 +-136.172 -77.764 1192.64 +-146.877 -77.8324 1193.69 +-169.123 -83.5841 1281.9 +-421.848 -195.3 2995.24 +-128.047 -55.7469 854.968 +-135.55 -55.6849 854.019 +-156.68 -60.9194 934.297 +-166.511 -61.4432 942.331 +-597.131 -209.629 3215 +-151.979 -50.8723 780.209 +-155.328 -49.6747 761.841 +-163.938 -50.1828 769.635 +-116.185 -34.0991 522.965 +-119.674 -33.7276 517.267 +-124.193 -33.6583 516.205 +-128.63 -33.5676 514.813 +-134.529 -33.846 519.084 +-848.072 -205.935 3158.34 +-875.553 -205.42 3150.45 +-903.071 -204.915 3142.71 +-413.583 -90.8461 1393.27 +-957.897 -203.859 3126.5 +-985.202 -203.307 3118.04 +-168.476 -33.7374 517.417 +-146.69 -28.5253 437.481 +-150.803 -28.4962 437.036 +-154.92 -28.4647 436.553 +-467.2 -83.5191 1280.9 +-393.668 -68.5079 1050.68 +-394.133 -66.8058 1024.57 +-409.675 -67.6692 1037.82 +-414.802 -66.8005 1024.49 +-419.574 -65.9072 1010.79 +-422.615 -64.7801 993.508 +-413.463 -61.8706 948.885 +-415.319 -60.6942 930.844 +-414.237 -59.1417 907.034 +-416.194 -58.0728 890.641 +-428.703 -58.4803 896.889 +-392.956 -52.4217 803.972 +-393.814 -51.393 788.195 +-394.654 -50.3964 772.911 +-144.25 -18.0297 276.515 +-145.442 -17.7978 272.957 +-145.533 -17.44 267.471 +-148.788 -17.4649 267.852 +-151.913 -17.4703 267.936 +-119.45 -13.4615 206.455 +-110.288 -12.1823 186.835 +-111.042 -12.0244 184.413 +-112.494 -11.9442 183.184 +-113.35 -11.8026 181.013 +-115.466 -11.7928 180.861 +-116.988 -11.7212 179.764 +-118.446 -11.6436 178.573 +-120.171 -11.592 177.782 +-122.23 -11.5716 177.469 +-126.187 -11.7256 179.831 +-488.72 -44.5801 683.708 +-492.682 -44.1219 676.681 +-495.666 -43.5842 668.435 +-499.567 -43.1348 661.542 +-502.106 -42.576 652.971 +-505.704 -42.1149 645.9 +-508.719 -41.6123 638.192 +-512.078 -41.1449 631.024 +-513.888 -40.5614 622.075 +-528.114 -40.9509 628.048 +-523.13 -39.8529 611.209 +-526.553 -39.412 604.446 +-530.427 -39.0092 598.269 +-163.736 -11.832 181.463 +-164.439 -11.6762 179.073 +-166.953 -11.649 178.656 +-545.383 -37.3939 573.496 +-548.85 -36.9798 567.146 +-552.807 -36.6019 561.349 +-556.352 -36.1992 555.173 +-560.187 -35.818 549.328 +-563.603 -35.4127 543.112 +-566.88 -35.0018 536.809 +-570.675 -34.6253 531.035 +-2415.69 -144.027 2208.88 +-587.753 -34.4335 528.094 +-387.21 -22.2897 341.849 +-384.826 -21.7659 333.815 +-385.298 -21.4113 328.378 +-383.865 -20.9576 321.418 +-385.504 -20.6768 317.112 +-385.309 -20.3015 311.356 +-384.026 -19.8754 304.821 +-384.628 -19.5524 299.867 +-384.38 -19.1907 294.32 +-142.077 -6.96608 106.836 +-142.685 -6.86966 105.357 +-142.225 -6.72339 103.114 +-143.122 -6.64238 101.872 +-141.386 -6.44142 98.7895 +-141.915 -6.34615 97.3285 +-143.755 -6.30899 96.7585 +-145.93 -6.28459 96.3843 +-147.941 -6.2511 95.8707 +-383.406 -15.8926 243.738 +-379.332 -15.4226 236.531 +-380.619 -15.176 232.749 +-381.868 -14.9292 228.963 +-381.357 -14.616 224.16 +-380.705 -14.3013 219.334 +-380.955 -14.0238 215.077 +-381.509 -13.7596 211.026 +-382.373 -13.5083 207.172 +-380.992 -13.1807 202.148 +-381.06 -12.9068 197.947 +-715.122 -23.708 363.601 +-735.815 -23.8701 366.087 +-722.451 -22.9266 351.616 +-404.178 -12.5435 192.374 +-404.666 -12.2777 188.299 +-406.116 -12.0421 184.686 +-405.431 -11.7449 180.128 +-404.79 -11.452 175.635 +-404.286 -11.1658 171.245 +-404.382 -10.8985 167.146 +-403.881 -10.6173 162.833 +-404.546 -10.3685 159.017 +-405.547 -10.129 155.345 +-405.111 -9.85511 151.144 +-405.008 -9.59133 147.099 +-404.393 -9.31754 142.9 +-404.304 -9.05793 138.918 +-405.314 -8.82389 135.329 +-404.484 -8.5512 131.147 +-403.422 -8.27624 126.929 +-383.861 -7.63593 117.109 +-380.46 -7.33266 112.458 +-380.948 -7.1074 109.004 +-379.092 -6.84044 104.909 +-380.188 -6.62826 101.655 +-380.095 -6.39586 98.0909 +-380.065 -6.16564 94.56 +-379.905 -5.93441 91.0138 +-380.784 -5.71995 87.7246 +-380.56 -5.48944 84.1894 +-380.01 -5.25556 80.6025 +-380.995 -5.04349 77.35 +-379.595 -4.80089 73.6294 +-379.143 -4.57214 70.1211 +-379.053 -4.34878 66.6956 +-378.931 -4.12587 63.2769 +-378.976 -3.90547 59.8967 +-378.397 -3.67956 56.4321 +-379.966 -3.47453 53.2875 +-378.038 -3.23827 49.6641 +-379.053 -3.02826 46.4433 +-379.246 -2.81145 43.1181 +-379.112 -2.59261 39.7619 +-379.146 -2.37538 36.4302 +-378.654 -2.15548 33.0577 +-380.523 -1.94856 29.8843 +-3268.32 -14.8702 228.059 +-378.992 -1.50822 23.131 +-379.08 -1.29263 19.8246 +-3273.18 -9.29848 142.607 +-3274.3 -7.43963 114.099 +-3275.18 -5.58022 85.5818 +-3275.8 -3.72039 57.0581 +-144.195 -0.0818762 1.2557 +95.8 0 0 +95.7964 -0.0468665 0.834687 +95.7854 -0.0937294 1.66931 +95.7672 -0.140585 2.50381 +96.5412 -0.188995 3.36599 +95.7088 -0.234261 4.17217 +96.5675 -0.283715 5.05293 +95.7211 -0.328207 5.84534 +95.5666 -0.374632 6.67216 +96.5016 -0.425769 7.5829 +96.4316 -0.472962 8.42341 +96.3544 -0.52012 9.26328 +96.2697 -0.56724 10.1025 +96.1778 -0.614314 10.9409 +96.0785 -0.661343 11.7784 +95.9719 -0.708316 12.615 +95.8579 -0.755244 13.4508 +95.6378 -0.80128 14.2707 +96.3984 -0.855928 15.244 +96.2615 -0.903052 16.0833 +96.1172 -0.950115 16.9214 +95.6707 -0.994032 17.7036 +95.6105 -1.04187 18.5556 +95.4447 -1.0886 19.3879 +95.2716 -1.13525 20.2188 +95.8723 -1.19153 21.221 +95.9755 -1.24217 22.1229 +95.7784 -1.28907 22.9582 +95.3801 -1.33316 23.7435 +96.0402 -1.39241 24.7986 +96.013 -1.44224 25.6861 +95.4958 -1.48466 26.4417 +96.2223 -1.54677 27.5479 +95.9779 -1.59379 28.3852 +95.7261 -1.64068 29.2204 +96.23 -1.70094 30.2935 +95.9616 -1.74795 31.1308 +95.6859 -1.79482 31.9657 +96.2538 -1.85799 33.0907 +95.8666 -1.90314 33.8948 +96.2245 -1.96339 34.9678 +95.9152 -2.01039 35.8048 +96.6256 -2.07934 37.0328 +96.2982 -2.12653 37.8732 +96.798 -2.19245 39.0474 +96.453 -2.23973 39.8894 +96.9292 -2.30654 41.0793 +96.7498 -2.35834 42.0018 +96.4704 -2.40787 42.8839 +96.0919 -2.45497 43.7227 +96.4311 -2.52084 44.8959 +96.0351 -2.56792 45.7344 +96.4406 -2.63692 46.9632 +96.0265 -2.684 47.8017 +95.605 -2.73087 48.6366 +95.8859 -2.79825 49.8365 +96.3296 -2.87137 51.1388 +95.7911 -2.91571 51.9285 +96.1207 -2.98692 53.1968 +95.478 -3.02831 53.9339 +95.003 -3.0749 54.7637 +95.8993 -3.16679 56.4002 +95.4027 -3.21358 57.2336 +95.4957 -3.28063 58.4278 +95.7446 -3.35397 59.7338 +95.2189 -3.40068 60.5657 +95.4407 -3.47461 61.8824 +95.5633 -3.54592 63.1525 +95.0077 -3.59254 63.9827 +95.1866 -3.66746 65.317 +95.1855 -3.73639 66.5448 +95.2515 -3.80886 67.8354 +95.464 -3.88827 69.2496 +95.4982 -3.96149 70.5538 +95.6765 -4.0418 71.984 +95.5197 -4.10893 73.1796 +95.6645 -4.19002 74.6238 +95.5565 -4.26108 75.8895 +95.4335 -4.33236 77.159 +95.6043 -4.41811 78.6862 +94.9129 -4.46472 79.5162 +95.583 -4.57651 81.5072 +95.4708 -4.65252 82.861 +95.417 -4.73248 84.285 +95.4198 -4.81649 85.7813 +95.2562 -4.89329 87.149 +95.1491 -4.97411 88.5885 +95.0966 -5.05906 90.1014 +94.8809 -5.13654 91.4813 +94.7197 -5.21813 92.9344 +94.5402 -5.29995 94.3915 +94.9732 -5.41796 96.4934 +94.8209 -5.50455 98.0355 +94.5799 -5.58732 99.5097 +94.184 -5.66208 100.841 +93.907 -5.74517 102.321 +94.2136 -5.86586 104.47 +94.4896 -5.98729 106.633 +94.1445 -6.07138 108.131 +94.17 -6.18115 110.086 +93.7827 -6.26563 111.59 +93.8851 -6.38481 113.713 +94.0205 -6.50893 115.923 +93.9997 -6.62486 117.988 +93.7037 -6.72359 119.746 +93.5058 -6.83144 121.667 +94.0035 -6.99335 124.551 +92.9113 -7.03904 125.365 +98.3365 -7.5877 135.136 +115.676 -9.0914 161.917 +115.633 -9.25784 164.881 +115.207 -9.39721 167.363 +115.25 -9.57873 170.596 +115.244 -9.76093 173.841 +115.3 -9.95333 177.268 +115.519 -10.1653 181.044 +115.31 -10.3451 184.245 +115.106 -10.5302 187.542 +115.214 -10.7494 191.446 +115.313 -10.9745 195.454 +115.2 -11.1858 199.218 +115.67 -11.4613 204.125 +113.058 -11.4341 203.64 +111.226 -11.4841 204.53 +108.589 -11.449 203.905 +105.971 -11.4121 203.249 +103.828 -11.4236 203.453 +101.599 -11.4238 203.457 +99.4664 -11.4327 203.615 +96.908 -11.3899 202.852 +94.751 -11.3911 202.874 +92.6839 -11.4013 203.056 +91.0277 -11.4616 204.129 +91.473 -11.7936 210.043 +91.392 -12.0701 214.967 +91.1935 -12.3422 219.814 +90.9545 -12.6203 224.766 +90.929 -12.9408 230.474 +91.0613 -13.2988 236.85 +90.5636 -13.5791 241.842 +90.4985 -13.939 248.252 +90.1946 -14.2787 254.301 +89.987 -14.6508 260.93 +89.9559 -15.0718 268.427 +89.6458 -15.4671 275.467 +89.2796 -15.874 282.714 +89.0857 -16.3352 290.928 +89.0388 -16.8511 300.117 +88.6174 -17.3252 308.56 +88.5628 -17.9027 318.845 +88.2314 -18.4597 328.766 +88.1087 -19.0992 340.155 +87.866 -19.7562 351.857 +87.4486 -20.4199 363.677 +87.101 -21.1502 376.683 +86.9221 -21.9801 391.463 +86.4913 -22.8114 406.269 +86.2266 -23.7593 423.151 +85.7877 -24.7416 440.646 +85.3773 -25.8244 459.931 +84.9313 -27.0025 480.912 +84.4714 -28.2981 503.987 +86.1172 -30.4812 542.867 +90.4446 -33.9265 604.227 +85.0348 -33.9195 604.102 +82.1923 -34.9991 623.331 +81.0797 -37.0189 659.303 +80.5101 -39.6137 705.517 +79.2744 -42.2832 753.059 +78.2293 -45.5457 811.164 +77.0021 -49.3407 878.754 +78.9926 -56.2677 1002.12 +73.2303 -58.7085 1045.59 +71.4573 -65.4963 1166.48 +68.8532 -73.6519 1311.73 +65.2415 -83.7697 1491.93 +60.9241 -97.8049 1741.9 +51.4979 -110.25 1963.54 +36.1736 -116.178 2069.12 +28.5873 -183.641 3270.63 +2.00584e-13 -183.648 3270.75 +-28.5873 -183.641 3270.63 +-57.1723 -183.62 3270.25 +-85.7531 -183.585 3269.63 +-114.327 -183.536 3268.75 +-142.893 -183.473 3267.63 +-169.061 -180.843 3220.8 +-155.747 -142.754 2542.44 +-154.329 -123.726 2203.54 +-147.15 -104.817 1866.78 +-134.664 -86.289 1536.8 +-147.507 -85.8792 1529.5 +-171.521 -91.4853 1629.34 +-136.059 -66.9455 1192.29 +-146.95 -67.0935 1194.93 +-169.123 -72.0161 1282.6 +-455.973 -181.883 3239.32 +-128.151 -48.0704 856.129 +-135.55 -47.9781 854.486 +-155.623 -52.1343 928.507 +-166.65 -52.9837 943.634 +-597.131 -180.617 3216.76 +-152.056 -43.8536 781.029 +-155.487 -42.8436 763.041 +-164.521 -43.3911 772.791 +-116.141 -29.3688 523.056 +-119.674 -29.0597 517.55 +-123.866 -28.9237 515.128 +-128.63 -28.9218 515.095 +-134.379 -29.1292 518.788 +-848.072 -177.433 3160.07 +-875.66 -177.012 3152.56 +-903.071 -176.555 3144.43 +-413.328 -78.2248 1393.18 +-957.897 -175.645 3128.21 +-985.202 -175.169 3119.75 +-168.322 -29.0414 517.225 +-146.722 -24.5827 437.815 +-150.087 -24.4358 435.199 +-154.619 -24.4777 435.945 +-394.418 -60.7497 1081.95 +-394.018 -59.0791 1052.19 +-394.097 -57.5548 1025.05 +-410.042 -58.3559 1039.31 +-414.465 -57.5088 1024.23 +-419.536 -56.7806 1011.26 +-422.732 -55.8301 994.328 +-413.303 -53.2871 949.038 +-414.627 -52.2071 929.803 +-415.274 -51.0841 909.802 +-416.321 -50.0508 891.4 +-394.348 -46.3488 825.468 +-416.014 -47.8169 851.615 +-391.985 -44.0746 784.964 +-390.659 -42.982 765.505 +-143.835 -15.4897 275.869 +-145.348 -15.3247 272.931 +-145.533 -15.0263 267.617 +-148.691 -15.0379 267.824 +-151.174 -14.9792 266.779 +-113.35 -11.0062 196.019 +-110.745 -10.5397 187.711 +-110.991 -10.3554 184.43 +-112.076 -10.2529 182.603 +-113.88 -10.2168 181.959 +-115.466 -10.1606 180.96 +-117.261 -10.1226 180.282 +-118.39 -10.0274 178.588 +-120.338 -10.0017 178.128 +-122.4 -9.98399 177.814 +-126.244 -10.1074 180.011 +-489.01 -38.4331 684.489 +-492.505 -38.0018 676.809 +-496.023 -37.5792 669.282 +-499.025 -37.1247 661.188 +-502.776 -36.7324 654.201 +-506.012 -36.3083 646.647 +-509.092 -35.8795 639.011 +-512.078 -35.4505 631.37 +-514.015 -34.9564 622.569 +-532.614 -35.5839 633.746 +-523.065 -34.333 611.468 +-527.143 -33.9954 605.455 +-530.891 -33.6397 599.119 +-162.532 -10.1194 180.226 +-164.641 -10.0726 179.391 +-165.998 -9.97934 177.731 +-545.521 -32.2267 573.955 +-549.266 -31.8861 567.888 +-552.947 -31.5441 561.798 +-556.352 -31.1892 555.477 +-559.474 -30.8215 548.928 +-563.603 -30.5116 543.409 +-566.445 -30.1344 536.691 +-570.236 -29.8103 530.918 +-572.201 -29.3938 523.501 +-587.753 -29.6679 528.383 +-387.659 -19.2271 342.433 +-388.675 -18.9411 337.339 +-386.286 -18.4954 329.401 +-386.086 -18.1616 323.456 +-386.815 -17.8757 318.365 +-385.076 -17.4812 311.338 +-385.356 -17.1839 306.044 +-384.943 -16.8602 300.278 +-384.3 -16.5313 294.42 +-140.959 -5.95472 106.053 +-142.845 -5.92557 105.534 +-142.306 -5.79612 103.228 +-143.203 -5.72633 101.985 +-141.468 -5.55314 98.9009 +-141.75 -5.4615 97.2687 +-143.424 -5.42329 96.5883 +-146.097 -5.42099 96.5473 +-147.271 -5.36152 95.4882 +-380.96 -13.6057 242.316 +-382.554 -13.401 238.671 +-382.921 -13.1548 234.285 +-383.411 -12.915 230.015 +-381.788 -12.6074 224.536 +-381.398 -12.3445 219.854 +-381.129 -12.0884 215.293 +-381.509 -11.8553 211.141 +-380.264 -11.5746 206.142 +-382.051 -11.3881 202.821 +-381.503 -11.1335 198.286 +-715.389 -20.4345 363.936 +-736.978 -20.599 366.866 +-723.349 -19.7781 352.246 +-405.983 -10.8557 193.339 +-403.76 -10.5548 187.98 +-403.841 -10.3174 183.752 +-403.422 -10.0693 179.333 +-404.332 -9.85584 175.532 +-405.114 -9.64018 171.691 +-406.507 -9.43948 168.116 +-404.716 -9.16675 163.259 +-406.499 -8.97659 159.872 +-406.014 -8.73721 155.609 +-404.83 -8.48528 151.122 +-405.665 -8.27729 147.418 +-404.676 -8.0336 143.078 +-405.911 -7.83532 139.546 +-404.555 -7.58843 135.149 +-403.628 -7.35213 130.941 +-404.853 -7.15609 127.449 +-385.2 -6.60205 117.582 +-380.364 -6.31625 112.492 +-379.794 -6.10518 108.733 +-379.285 -5.8967 105.02 +-377.87 -5.6761 101.091 +-380.482 -5.51629 98.2446 +-380.938 -5.32452 94.8291 +-379.516 -5.10786 90.9704 +-379.42 -4.91065 87.4581 +-378.9 -4.70907 83.8681 +-379.619 -4.52353 80.5636 +-379.819 -4.33206 77.1535 +-377.828 -4.1172 73.3269 +-379.831 -3.94651 70.2869 +-379.545 -3.75178 66.8188 +-379.621 -3.56133 63.4269 +-379.371 -3.36846 59.992 +-379.881 -3.18274 56.6843 +-378.183 -2.97961 53.0666 +-379.029 -2.79742 49.8217 +-379.947 -2.6153 46.5782 +-379.445 -2.42361 43.1643 +-378.416 -2.22969 39.7106 +-378.748 -2.04448 36.4119 +-379.052 -1.85911 33.1106 +-379.327 -1.67361 29.8068 +-378.276 -1.48289 26.4101 +-379.291 -1.30051 23.1619 +-3271.81 -9.61254 171.198 +-378.439 -0.926283 16.497 +-3274.3 -6.40998 114.161 +-3275.18 -4.80792 85.6286 +-3275.8 -3.20549 57.0894 +-144.395 -0.0706421 1.25813 +95.8 0 0 +95.7964 -0.0393344 0.835076 +95.7854 -0.0786659 1.67009 +96.5669 -0.118977 2.52589 +95.7416 -0.157308 3.33967 +96.608 -0.198459 4.21332 +96.5675 -0.238118 5.05529 +95.7211 -0.27546 5.84807 +96.5642 -0.317706 6.74495 +96.5016 -0.357342 7.58643 +96.4316 -0.396951 8.42734 +96.3544 -0.43653 9.26759 +96.2697 -0.476077 10.1072 +95.2835 -0.510791 10.8442 +96.0785 -0.555057 11.7839 +95.9719 -0.59448 12.6209 +95.8579 -0.633867 13.4571 +96.6268 -0.679459 14.425 +95.4107 -0.711011 15.0949 +96.2615 -0.75792 16.0908 +96.1172 -0.797419 16.9293 +95.769 -0.835135 17.73 +95.6105 -0.874427 18.5642 +95.4447 -0.913649 19.3969 +96.1519 -0.961607 20.4151 +95.9699 -1.00105 21.2524 +95.7806 -1.04042 22.0882 +95.584 -1.0797 22.9223 +95.3801 -1.11891 23.7546 +96.0402 -1.16863 24.8102 +95.8198 -1.20802 25.6464 +95.5921 -1.24731 26.4806 +96.1262 -1.29689 27.5332 +95.882 -1.33631 28.37 +95.7261 -1.377 29.234 +95.3717 -1.41484 30.0373 +95.9616 -1.46703 31.1453 +95.591 -1.50488 31.9489 +95.4028 -1.5456 32.8134 +95.8666 -1.59729 33.9106 +96.2245 -1.64785 34.9841 +95.9152 -1.68729 35.8215 +96.6256 -1.74516 37.05 +96.2052 -1.78304 37.8542 +95.9635 -1.82424 38.7289 +96.453 -1.87978 39.908 +96.2848 -1.92298 40.8252 +96.8415 -1.9812 42.0613 +96.4704 -2.02089 42.9038 +96.0919 -2.06042 43.7431 +95.7061 -2.0998 44.5791 +96.0351 -2.15522 45.7557 +96.4406 -2.21313 46.9851 +96.0265 -2.25264 47.824 +96.4069 -2.31121 49.0674 +95.8859 -2.34853 49.8597 +96.0647 -2.40328 51.0219 +95.6153 -2.44263 51.8574 +95.9458 -2.50232 53.1247 +95.478 -2.54163 53.9591 +95.7824 -2.6019 55.2388 +95.9855 -2.66024 56.4772 +96.1742 -2.71893 57.7233 +95.581 -2.75586 58.5072 +95.8294 -2.81744 59.8146 +95.2189 -2.85414 60.5939 +95.4407 -2.9162 61.9113 +95.5633 -2.97605 63.1819 +95.6709 -3.03622 64.4594 +95.1042 -3.07539 65.2909 +95.1855 -3.13591 66.5758 +95.3329 -3.19946 67.925 +95.464 -3.26337 69.2819 +94.8551 -3.30244 70.1114 +94.9578 -3.36675 71.4766 +95.5991 -3.45144 73.2746 +95.6645 -3.51663 74.6585 +95.5565 -3.57627 75.9248 +95.589 -3.64202 77.3207 +95.45 -3.70208 78.5958 +94.9129 -3.74718 79.5532 +95.583 -3.84101 81.5452 +94.867 -3.88011 82.3753 +95.417 -3.97191 84.3243 +94.751 -4.01409 85.2197 +95.33 -4.11005 87.2571 +94.564 -4.14904 88.0847 +95.024 -4.24277 90.0745 +94.8809 -4.31104 91.5239 +94.7197 -4.37951 92.9777 +95.1766 -4.47812 95.0712 +94.833 -4.54052 96.3959 +94.8209 -4.6199 98.0812 +94.5799 -4.68937 99.556 +94.184 -4.75212 100.888 +94.4475 -4.84956 102.957 +94.8158 -4.95462 105.187 +94.4234 -5.02153 106.608 +94.0789 -5.09206 108.105 +94.2999 -5.19491 110.289 +93.7184 -5.25504 111.565 +93.8851 -5.35869 113.766 +93.8946 -5.45552 115.822 +93.9997 -5.56016 118.043 +93.6421 -5.6393 119.723 +93.5058 -5.73355 121.724 +93.5822 -5.84313 124.05 +92.9113 -5.90778 125.423 +98.3953 -6.37202 135.279 +115.734 -7.63411 162.073 +115.576 -7.76614 164.876 +115.207 -7.88696 167.441 +115.306 -8.04322 170.759 +115.796 -8.23147 174.755 +115.3 -8.3537 177.35 +115.519 -8.53165 181.128 +115.257 -8.67849 184.246 +115.159 -8.84185 187.714 +115.266 -9.02592 191.622 +115.414 -9.21882 195.717 +115.15 -9.38407 199.225 +115.67 -9.61937 204.221 +113.058 -9.5965 203.735 +110.749 -9.59706 203.747 +108.589 -9.60897 204 +106.387 -9.6156 204.141 +103.828 -9.58765 203.547 +101.242 -9.55415 202.836 +99.4664 -9.59532 203.71 +96.908 -9.55938 202.947 +94.751 -9.56041 202.969 +92.7254 -9.57326 203.242 +90.987 -9.61527 204.134 +91.473 -9.89824 210.141 +91.392 -10.1303 215.068 +90.9256 -10.3283 219.271 +91.2167 -10.6226 225.519 +90.929 -10.861 230.581 +91.0613 -11.1615 236.96 +90.4936 -11.388 241.768 +90.1907 -11.659 247.523 +90.0945 -11.9706 254.137 +90.1173 -12.3141 261.43 +89.5751 -12.596 267.416 +89.5222 -12.9634 275.216 +89.3698 -13.3363 283.131 +88.9979 -13.6964 290.777 +88.9252 -14.1249 299.874 +88.6725 -14.5499 308.896 +88.5094 -15.0164 318.801 +88.1796 -15.4839 328.727 +88.1087 -16.0297 340.314 +87.6967 -16.5492 351.342 +87.472 -17.1428 363.943 +87.101 -17.7511 376.858 +86.9005 -18.4431 391.549 +86.4497 -19.1362 406.264 +86.2665 -19.9501 423.543 +85.5778 -20.7145 439.772 +85.3956 -21.6787 460.243 +84.7924 -22.6258 480.349 +84.4879 -23.7549 504.321 +86.1172 -25.5825 543.12 +90.4446 -28.4741 604.509 +85.0208 -28.4635 604.285 +82.0749 -29.3324 622.731 +81.1772 -31.1068 660.403 +80.4988 -33.2427 705.747 +79.2744 -35.4877 753.41 +78.2197 -38.2213 811.443 +77.0021 -41.4111 879.163 +78.9926 -47.2247 1002.59 +73.1606 -49.2268 1045.09 +71.4024 -54.9279 1166.13 +68.9055 -61.8622 1313.34 +65.1194 -70.1751 1489.83 +60.8577 -81.9971 1740.81 +51.5293 -92.5877 1965.65 +36.1806 -97.5257 2070.48 +28.5873 -154.128 3272.15 +2.00584e-13 -154.133 3272.27 +-28.5873 -154.128 3272.15 +-57.1723 -154.11 3271.77 +-85.7531 -154.081 3271.15 +-114.327 -154.039 3270.27 +-142.893 -153.986 3269.16 +-169.108 -151.822 3223.2 +-155.802 -119.854 2544.52 +-154.35 -103.855 2204.87 +-147.213 -88.0092 1868.45 +-134.725 -72.4543 1538.21 +-147.535 -72.0915 1530.51 +-171.594 -76.8154 1630.8 +-136.161 -56.2288 1193.75 +-146.816 -56.2594 1194.4 +-169.084 -60.4281 1282.9 +-427.707 -143.189 3039.92 +-128.106 -40.3309 856.231 +-135.55 -40.2675 854.884 +-153.362 -43.1199 915.442 +-166.268 -44.3666 941.909 +-597.131 -151.589 3218.26 +-152.208 -36.8427 782.177 +-155.627 -35.9904 764.082 +-165.56 -36.6477 778.036 +-116.271 -24.6765 523.885 +-119.674 -24.3894 517.791 +-124.216 -24.3439 516.825 +-128.581 -24.2646 515.141 +-134.129 -24.4022 518.063 +-848.072 -148.918 3161.54 +-875.553 -148.546 3153.64 +-903.071 -148.18 3145.89 +-413.64 -65.703 1394.88 +-957.897 -147.416 3129.67 +-985.323 -147.035 3121.58 +-168.322 -24.3741 517.466 +-146.658 -20.623 437.83 +-149.957 -20.4908 435.024 +-154.519 -20.5305 435.866 +-467.165 -60.3909 1282.11 +-395.104 -49.7208 1055.58 +-430.507 -52.7678 1120.27 +-409.712 -48.9379 1038.96 +-414.165 -48.2312 1023.95 +-419.995 -47.7075 1012.84 +-422.732 -46.8575 994.791 +-412.546 -44.6412 947.739 +-415.075 -43.8641 931.241 +-415.274 -42.8742 910.226 +-414.884 -41.862 888.737 +-394.477 -38.9127 826.123 +-415.707 -40.1025 851.382 +-433.124 -40.8735 867.751 +-394.291 -36.4096 772.982 +-143.327 -12.9544 275.023 +-145.348 -12.8618 273.058 +-145.533 -12.6114 267.742 +-148.4 -12.5965 267.425 +-151.716 -12.617 267.86 +-112.6 -9.17624 194.813 +-110.339 -8.81344 187.111 +-111.042 -8.6952 184.6 +-111.971 -8.59714 182.519 +-113.456 -8.54285 181.366 +-115.573 -8.5356 181.212 +-116.553 -8.44446 179.277 +-118.501 -8.42372 178.837 +-119.947 -8.36697 177.632 +-122.4 -8.37944 177.897 +-126.187 -8.47914 180.013 +-489.01 -32.2564 684.808 +-492.505 -31.8945 677.124 +-495.785 -31.5246 669.273 +-499.206 -31.1696 661.734 +-502.228 -30.7955 653.792 +-506.012 -30.4731 646.949 +-509.092 -30.1132 639.308 +-512.267 -29.7641 631.896 +-514.396 -29.3602 623.322 +-532.614 -29.8651 634.041 +-523.26 -28.826 611.98 +-527.143 -28.5319 605.737 +-530.56 -28.2158 599.025 +-162.599 -8.4966 180.384 +-164.912 -8.46766 179.77 +-166.953 -8.42372 178.837 +-546.003 -27.0714 574.73 +-549.266 -26.7616 568.152 +-552.947 -26.4746 562.06 +-556.139 -26.1667 555.523 +-559.474 -25.8681 549.184 +-563.171 -25.5884 543.246 +-566.662 -25.3012 537.147 +-570.529 -25.0322 531.438 +-571.906 -24.6571 523.475 +-587.53 -24.8905 528.429 +-388.708 -16.1807 343.519 +-386.487 -15.8075 335.596 +-384.841 -15.4649 328.322 +-382.869 -15.1157 320.909 +-386.121 -14.9759 317.941 +-385.62 -14.6925 311.923 +-385.748 -14.4369 306.497 +-385.337 -14.165 300.725 +-385.014 -13.9003 295.105 +-140.959 -4.99772 106.102 +-142.765 -4.97048 105.524 +-142.468 -4.87017 103.394 +-143.203 -4.80604 102.033 +-141.468 -4.66068 98.947 +-141.667 -4.5811 97.2574 +-143.506 -4.55433 96.6891 +-146.097 -4.54977 96.5923 +-146.935 -4.48961 95.3151 +-381.635 -11.4393 242.859 +-383.742 -11.2822 239.522 +-380.704 -10.9767 233.038 +-380.325 -10.7521 228.269 +-382.994 -10.6147 225.351 +-381.398 -10.3606 219.956 +-381.825 -10.1642 215.787 +-381.509 -9.94999 211.24 +-380.704 -9.72561 206.476 +-380.55 -9.52033 202.118 +-381.149 -9.33546 198.193 +-715.122 -17.144 363.969 +-737.784 -17.3074 367.438 +-722.63 -16.583 352.06 +-402.192 -9.02601 191.624 +-407.204 -8.93407 189.672 +-403.659 -8.65535 183.754 +-404.518 -8.47397 179.904 +-405.341 -8.29254 176.052 +-405.851 -8.10556 172.082 +-405.214 -7.89722 167.659 +-403.789 -7.67589 162.96 +-406.499 -7.53394 159.947 +-403.493 -7.28754 154.715 +-405.673 -7.13641 151.507 +-405.008 -6.93579 147.248 +-404.959 -6.74721 143.244 +-404.587 -6.55467 139.157 +-406.167 -6.39428 135.751 +-404.484 -6.18363 131.279 +-403.995 -5.99327 127.238 +-383.956 -5.52314 117.257 +-379.788 -5.29311 112.373 +-380.467 -5.13309 108.976 +-380.538 -4.96535 105.415 +-380.188 -4.7931 101.758 +-379.611 -4.61915 98.0653 +-380.453 -4.46311 94.7525 +-379.71 -4.28916 91.0594 +-379.03 -4.11722 87.4091 +-380.658 -3.9706 84.2963 +-380.499 -3.80534 80.788 +-380.701 -3.64428 77.3686 +-379.595 -3.47167 73.7041 +-379.831 -3.31225 70.3196 +-380.825 -3.15944 67.0754 +-379.227 -2.98587 63.3905 +-379.569 -2.82858 60.0512 +-378.991 -2.66498 56.5779 +-379.075 -2.50665 53.2165 +-378.633 -2.34538 49.7928 +-378.557 -2.18696 46.4295 +-378.948 -2.03145 43.1279 +-378.018 -1.86938 39.6873 +-378.35 -1.7141 36.3907 +-379.55 -1.56238 33.1695 +-378.43 -1.40131 29.7501 +-379.174 -1.24752 26.485 +-377.994 -1.08777 23.0935 +-378.381 -0.933019 19.8081 +-379.738 -0.780086 16.5613 +-3274.3 -5.37982 114.214 +-3275.18 -4.03523 85.6685 +-3275.8 -2.69032 57.116 +-145.094 -0.0595765 1.26482 +95.8 0 0 +95.7964 -0.0318007 0.835397 +95.7854 -0.0635989 1.67073 +96.5669 -0.0961888 2.52686 +96.5412 -0.12824 3.36885 +96.608 -0.160448 4.21494 +95.7686 -0.190918 5.01539 +96.5196 -0.224559 5.89912 +96.4644 -0.25659 6.74057 +96.5016 -0.2889 7.58934 +96.4316 -0.320923 8.43057 +96.3544 -0.352921 9.27116 +96.2697 -0.384894 10.1111 +96.1778 -0.416835 10.9502 +95.9792 -0.448282 11.7763 +95.9719 -0.480619 12.6258 +95.8579 -0.512461 13.4622 +96.6268 -0.549321 14.4305 +95.4107 -0.57483 15.1007 +96.0642 -0.6115 16.064 +96.1172 -0.644689 16.9358 +95.6707 -0.674489 17.7187 +95.5123 -0.706221 18.5523 +96.3266 -0.745485 19.5837 +95.2716 -0.770313 20.2359 +95.0912 -0.801908 21.0659 +95.7806 -0.841145 22.0967 +96.4591 -0.8809 23.141 +95.3801 -0.904602 23.7637 +96.0402 -0.944801 24.8197 +96.013 -0.978614 25.708 +95.5921 -1.00841 26.4908 +96.2223 -1.04955 27.5713 +95.882 -1.08036 28.3809 +95.6305 -1.11215 29.216 +95.4671 -1.145 30.0789 +95.9616 -1.18605 31.1572 +95.6859 -1.21786 31.9928 +96.2538 -1.26072 33.1188 +95.8666 -1.29136 33.9236 +96.4125 -1.33484 35.0659 +96.1026 -1.36679 35.9053 +96.6256 -1.41091 37.0643 +96.2982 -1.44293 37.9054 +95.9635 -1.47484 38.7437 +96.453 -1.51974 39.9233 +96.2848 -1.55467 40.8409 +95.9245 -1.58658 41.679 +96.4704 -1.63383 42.9203 +96.1829 -1.66737 43.8014 +96.4311 -1.71048 44.9341 +96.1253 -1.74407 45.8162 +96.4406 -1.78925 47.0032 +96.0265 -1.82119 47.8423 +96.4069 -1.86854 49.0862 +95.8859 -1.89872 49.8789 +96.2413 -1.94655 51.1354 +95.7911 -1.97842 51.9727 +96.1207 -2.02674 53.242 +95.478 -2.05482 53.9798 +95.7824 -2.10356 55.26 +95.8993 -2.14879 56.4481 +95.4027 -2.18054 57.2822 +95.581 -2.22802 58.5297 +95.7446 -2.27579 59.7846 +95.3032 -2.30953 60.671 +95.3568 -2.35558 61.8807 +95.4799 -2.40394 63.1511 +95.7538 -2.45682 64.5401 +95.7635 -2.50359 65.7688 +95.1855 -2.53528 66.6014 +94.6816 -2.56899 67.4869 +95.464 -2.63834 69.3085 +94.8551 -2.66992 70.1383 +95.6765 -2.74251 72.0452 +94.9644 -2.77185 72.816 +95.5857 -2.84074 74.6257 +94.9304 -2.87236 75.4563 +95.589 -2.94446 77.3504 +94.9098 -2.97608 78.181 +94.9129 -3.02948 79.5838 +94.8987 -3.0831 80.9924 +94.9425 -3.13944 82.4725 +95.417 -3.21117 84.3567 +94.6767 -3.24272 85.1855 +94.5927 -3.29715 86.6155 +95.2223 -3.37772 88.7319 +95.024 -3.43014 90.1091 +94.8809 -3.48534 91.5591 +94.7197 -3.5407 93.0134 +94.5402 -3.59621 94.4718 +94.9732 -3.67629 96.5755 +94.8209 -3.73505 98.1188 +94.5799 -3.79121 99.5943 +94.7978 -3.86697 101.584 +94.4475 -3.92072 102.996 +94.2805 -3.98303 104.633 +94.4896 -4.0626 106.724 +94.7349 -4.14549 108.901 +94.105 -4.19125 110.103 +93.7827 -4.25147 111.685 +93.9488 -4.33527 113.887 +94.0205 -4.41656 116.022 +93.8752 -4.48925 117.932 +93.7037 -4.56221 119.848 +93.5666 -4.6384 121.85 +94.0035 -4.74525 124.657 +92.257 -4.74263 124.588 +98.3365 -5.14854 135.251 +115.676 -6.16886 162.055 +115.633 -6.2818 165.021 +115.264 -6.37952 167.589 +115.25 -6.49953 170.741 +115.355 -6.62951 174.156 +115.3 -6.75371 177.419 +115.519 -6.89757 181.198 +115.363 -7.02276 184.486 +115.159 -7.14836 187.786 +115.266 -7.29717 191.695 +114.957 -7.42365 195.018 +115.15 -7.58673 199.302 +115.178 -7.74383 203.429 +113.058 -7.75847 203.813 +111.226 -7.79237 204.704 +108.589 -7.76855 204.078 +105.971 -7.74356 203.422 +103.828 -7.75132 203.626 +101.644 -7.75486 203.718 +99.0719 -7.72675 202.98 +96.908 -7.72846 203.025 +94.751 -7.7293 203.047 +92.7254 -7.73968 203.32 +91.0277 -7.77711 204.303 +91.5528 -8.00938 210.405 +91.392 -8.19002 215.15 +91.1552 -8.37117 219.909 +91.2167 -8.58803 225.606 +91.2222 -8.80911 231.413 +91.0613 -9.02373 237.051 +90.8088 -9.23887 242.703 +90.1907 -9.42595 247.618 +90.0945 -9.67784 254.235 +90.1173 -9.95557 261.531 +89.7972 -10.2088 268.182 +89.6149 -10.4914 275.606 +89.46 -10.7928 283.526 +89.0272 -11.0768 290.984 +88.84 -11.4086 299.702 +88.645 -11.7595 308.918 +88.5094 -12.1403 318.923 +88.4643 -12.5587 329.914 +88.0586 -12.9522 340.252 +87.6967 -13.3795 351.477 +87.4019 -13.8483 363.792 +87.1235 -14.3549 377.101 +86.9005 -14.9106 391.699 +86.4497 -15.471 406.42 +86.0871 -16.0955 422.825 +85.616 -16.7545 440.137 +85.2498 -17.4967 459.634 +84.9313 -18.3222 481.32 +84.4879 -19.2051 504.515 +85.8199 -20.6113 541.454 +90.548 -23.0467 605.433 +85.0348 -23.0156 604.616 +82.0879 -23.7181 623.069 +81.2869 -25.1829 661.549 +80.5894 -26.9059 706.812 +79.2639 -28.687 753.6 +78.143 -30.8704 810.96 +76.9237 -33.4454 878.605 +79.0789 -38.2212 1004.06 +73.1536 -39.7945 1045.39 +71.3535 -44.3771 1165.78 +68.8165 -49.949 1312.15 +65.1586 -56.7686 1491.3 +60.8263 -66.2579 1740.58 +51.5084 -74.8239 1965.61 +36.1806 -78.8465 2071.28 +28.5873 -124.607 3273.41 +2.00584e-13 -124.612 3273.53 +-28.5873 -124.607 3273.41 +-57.1723 -124.593 3273.03 +-85.7531 -124.569 3272.41 +-114.327 -124.536 3271.53 +-142.893 -124.493 3270.41 +-169.05 -122.701 3223.34 +-155.778 -96.883 2545.1 +-154.371 -83.9753 2206.01 +-147.228 -71.1603 1869.37 +-134.481 -58.4709 1536.02 +-147.583 -58.3028 1531.6 +-171.688 -62.1367 1632.32 +-136.07 -45.4288 1193.41 +-146.816 -45.484 1194.85 +-169.018 -48.8352 1282.89 +-429.391 -116.219 3053.06 +-128.151 -32.6176 856.856 +-135.597 -32.5663 855.508 +-153.379 -34.8648 915.892 +-568.924 -122.734 3224.19 +-597.131 -122.555 3219.5 +-152.075 -29.7601 781.791 +-155.467 -29.0673 763.592 +-166.433 -29.7848 782.44 +-116.38 -19.9687 524.574 +-119.674 -19.7181 517.99 +-124.193 -19.6776 516.927 +-128.606 -19.6209 515.436 +-134.204 -19.7395 518.551 +-848.072 -120.395 3162.76 +-875.553 -120.094 3154.86 +-903.071 -119.799 3147.1 +-413.782 -53.1367 1395.89 +-957.897 -119.182 3130.87 +-985.202 -118.859 3122.4 +-168.322 -19.7057 517.665 +-146.658 -16.6731 437.998 +-150.022 -16.5734 435.38 +-154.553 -16.6019 436.127 +-466.789 -48.7846 1281.56 +-1147.45 -116.742 3066.79 +-394.742 -39.117 1027.6 +-410.445 -39.6355 1041.22 +-414.128 -38.99 1024.26 +-419.88 -38.5594 1012.95 +-422.81 -37.8898 995.357 +-413.184 -36.1469 949.57 +-414.139 -35.3828 929.499 +-415.025 -34.6417 910.03 +-415.603 -33.9028 890.618 +-414.711 -33.0734 868.831 +-415.664 -32.4182 851.62 +-392.922 -29.9777 787.509 +-393.247 -29.3581 771.231 +-143.373 -10.4766 275.218 +-145.348 -10.3984 273.163 +-145.533 -10.1959 267.845 +-148.4 -10.1838 267.527 +-151.913 -10.2137 268.311 +-112.25 -7.39566 194.282 +-110.796 -7.15491 187.958 +-111.403 -7.05262 185.271 +-111.971 -6.95052 182.589 +-113.456 -6.90663 181.436 +-115.358 -6.88795 180.945 +-116.825 -6.84303 179.765 +-118.39 -6.804 178.74 +-120.338 -6.7865 178.28 +-122.457 -6.77764 178.047 +-126.129 -6.85204 180.002 +-488.836 -26.069 684.826 +-492.505 -25.7857 677.384 +-495.487 -25.4714 669.128 +-499.206 -25.1996 661.989 +-502.776 -24.9243 654.757 +-505.704 -24.6216 646.804 +-509.404 -24.3605 639.945 +-512.078 -24.0545 631.906 +-514.206 -23.728 623.33 +-533.192 -24.1713 634.974 +-523.26 -23.3049 612.216 +-527.143 -23.0672 605.97 +-531.355 -22.8458 600.153 +-162.866 -6.88053 180.75 +-165.52 -6.8711 180.502 +-168.454 -6.87152 180.513 +-545.521 -21.8671 574.443 +-549.475 -21.6441 568.586 +-552.947 -21.4039 562.276 +-556.564 -21.1711 556.161 +-559.474 -20.9136 549.395 +-562.955 -20.6795 543.247 +-566.808 -20.4604 537.491 +-570.748 -20.2456 531.847 +-571.316 -19.914 523.136 +-388.59 -13.3094 349.635 +-384.289 -12.9329 339.744 +-387.845 -12.8248 336.905 +-385.526 -12.5251 329.032 +-385.32 -12.2988 323.088 +-385.735 -12.0955 317.746 +-385.62 -11.8784 312.043 +-385.591 -11.6671 306.491 +-384.707 -11.4332 300.348 +-384.697 -11.2287 294.974 +-141.199 -4.04739 106.324 +-142.845 -4.02072 105.624 +-142.225 -3.93068 103.258 +-143.203 -3.88553 102.072 +-141.549 -3.7702 99.0423 +-141.667 -3.70367 97.2947 +-143.009 -3.66927 96.391 +-146.597 -3.69094 96.9603 +-147.019 -3.63178 95.4061 +-380.623 -9.22381 242.308 +-380.095 -9.03464 237.338 +-380.704 -8.87435 233.127 +-382.211 -8.73585 229.489 +-381.012 -8.53721 224.271 +-381.484 -8.37809 220.091 +-380.345 -8.18557 215.033 +-380.722 -8.02767 210.885 +-380.704 -7.86285 206.555 +-380.55 -7.69689 202.196 +-382.302 -7.57029 198.87 +-714.765 -13.8535 363.927 +-737.784 -13.9925 367.579 +-723.08 -13.4152 352.415 +-403.817 -7.32673 192.472 +-403.76 -7.16183 188.14 +-407.117 -7.05753 185.4 +-405.706 -6.87106 180.501 +-403.965 -6.68151 175.522 +-402.629 -6.50109 170.782 +-406.599 -6.40649 168.297 +-406.014 -6.23992 163.921 +-404.546 -6.0617 159.24 +-403.96 -5.89856 154.954 +-404.83 -5.75758 151.25 +-405.759 -5.61775 147.577 +-403.922 -5.44095 142.932 +-405.155 -5.30667 139.405 +-404.081 -5.14302 135.106 +-404.104 -4.99456 131.206 +-404.757 -4.85454 127.528 +-384.721 -4.47419 117.536 +-379.98 -4.28148 112.474 +-380.467 -4.14994 109.018 +-379.574 -4.00418 105.189 +-380.575 -3.87903 101.901 +-380.288 -3.74111 98.2781 +-380.065 -3.60461 94.6922 +-379.516 -3.46587 91.0478 +-380.297 -3.33976 87.7349 +-381.048 -3.2134 84.4153 +-378.543 -3.06069 80.4036 +-379.427 -2.93643 77.1394 +-380.086 -2.81037 73.8277 +-381.11 -2.68687 70.5834 +-379.939 -2.54837 66.945 +-379.621 -2.4165 63.4808 +-379.371 -2.28563 60.043 +-379.485 -2.15736 56.6735 +-377.985 -2.02072 53.084 +-377.245 -1.88921 49.6293 +-379.053 -1.77041 46.5082 +-379.843 -1.64624 43.2463 +-378.913 -1.51491 39.7965 +-378.748 -1.38726 36.4429 +-379.55 -1.26313 33.1823 +-378.928 -1.13441 29.8007 +-377.778 -1.00487 26.3977 +-3270.19 -7.60829 199.868 +-379.08 -0.755709 19.8523 +-378.739 -0.629017 16.5241 +-3274.3 -4.34942 114.258 +-146.25 -0.145678 3.82692 +-145.078 -0.0963277 2.53051 +-144.095 -0.0478337 1.25658 +95.8 0 0 +95.6964 -0.0242375 0.834777 +95.7854 -0.0485239 1.67124 +96.6669 -0.0734649 2.53024 +96.6411 -0.0979445 3.37336 +95.7088 -0.121277 4.17698 +96.5675 -0.14688 5.05876 +95.6213 -0.169737 5.84599 +96.4644 -0.19577 6.74261 +96.4019 -0.220193 7.58379 +96.4316 -0.244854 8.43313 +96.3544 -0.269267 9.27396 +96.2697 -0.293661 10.1141 +96.1778 -0.318031 10.9535 +96.0785 -0.342378 11.792 +96.8642 -0.370106 12.747 +95.8579 -0.390991 13.4663 +95.6378 -0.414824 14.2872 +96.4972 -0.443568 15.2772 +96.0642 -0.466554 16.0688 +96.0188 -0.491371 16.9236 +95.6707 -0.514612 17.724 +95.5123 -0.538823 18.5579 +95.3467 -0.562993 19.3903 +95.3694 -0.588327 20.2629 +95.9699 -0.617483 21.267 +95.9755 -0.643072 22.1484 +94.7088 -0.659902 22.728 +95.5741 -0.691586 23.8193 +96.0402 -0.720852 24.8272 +96.013 -0.74665 25.7158 +95.7849 -0.770939 26.5523 +96.3184 -0.801569 27.6073 +95.9779 -0.825107 28.4179 +95.8217 -0.850231 29.2833 +96.23 -0.880577 30.3284 +95.9616 -0.904916 31.1667 +95.7807 -0.930107 32.0343 +96.1592 -0.960944 33.0964 +95.8666 -0.985261 33.9339 +96.4125 -1.01844 35.0765 +95.9152 -1.04078 35.8461 +96.7189 -1.07752 37.1113 +96.2052 -1.09984 37.8802 +96.8907 -1.13613 39.1299 +96.453 -1.15951 39.9354 +96.2848 -1.18616 40.8533 +96.7498 -1.22092 42.0503 +96.4704 -1.24656 42.9333 +96.0919 -1.27094 43.7732 +95.8874 -1.29768 44.6942 +96.0351 -1.32942 45.7871 +96.4406 -1.36514 47.0174 +96.0265 -1.38951 47.8568 +96.4069 -1.42564 49.1011 +95.9746 -1.45 49.9402 +96.2413 -1.48515 51.1508 +95.7911 -1.50947 51.9884 +96.0332 -1.54493 53.2097 +96.2613 -1.58062 54.4391 +95.869 -1.6064 55.3267 +95.9855 -1.64093 56.516 +95.4027 -1.66368 57.2996 +95.581 -1.69991 58.5474 +94.9814 -1.72251 59.326 +95.2189 -1.76054 60.6355 +95.3568 -1.79723 61.8994 +95.5633 -1.83573 63.2254 +95.6709 -1.87285 64.5037 +95.1042 -1.89701 65.3358 +95.1855 -1.93434 66.6215 +95.3329 -1.97354 67.9717 +95.464 -2.01296 69.3295 +95.5786 -2.0526 70.6946 +95.6765 -2.09245 72.067 +95.5991 -2.12897 73.3249 +94.8765 -2.15131 74.0944 +95.5565 -2.20597 75.977 +95.589 -2.24653 77.3738 +94.9098 -2.27065 78.2046 +94.9129 -2.31139 79.6079 +95.6591 -2.37116 81.6662 +95.4708 -2.40862 82.9565 +95.417 -2.45002 84.3822 +94.751 -2.47603 85.2783 +94.5927 -2.51562 86.6417 +95.1491 -2.57511 88.6906 +95.024 -2.61709 90.1364 +94.8809 -2.6592 91.5868 +94.791 -2.70347 93.1116 +94.5402 -2.74379 94.5004 +94.9732 -2.80489 96.6047 +94.8209 -2.84972 98.1485 +94.4422 -2.88836 99.4795 +94.7978 -2.95037 101.615 +94.4475 -2.99138 103.028 +94.2805 -3.03892 104.665 +94.4896 -3.09963 106.756 +94.1445 -3.14317 108.255 +94.17 -3.19999 110.213 +93.7827 -3.24373 111.719 +93.8851 -3.30543 113.844 +93.9575 -3.36742 115.979 +93.9375 -3.42744 118.046 +93.3958 -3.46938 119.491 +93.4449 -3.53436 121.729 +93.4619 -3.5996 123.976 +92.9113 -3.64412 125.509 +98.5128 -3.93519 135.534 +115.676 -4.70664 162.104 +115.69 -4.79518 165.153 +115.717 -4.88649 168.298 +115.361 -4.96372 170.958 +115.355 -5.0581 174.209 +115.681 -5.16989 178.059 +115.519 -5.26262 181.253 +115.31 -5.35567 184.457 +115.159 -5.45397 187.843 +115.317 -5.57 191.839 +115.363 -5.684 195.766 +115.2 -5.79092 199.448 +115.129 -5.90576 203.403 +113.058 -5.91946 203.875 +110.796 -5.92236 203.975 +108.589 -5.92715 204.14 +105.971 -5.90808 203.483 +103.828 -5.914 203.687 +101.644 -5.9167 203.78 +99.5103 -5.92134 203.94 +96.9942 -5.90178 203.266 +94.7933 -5.89984 203.199 +92.6839 -5.90248 203.29 +91.0277 -5.93368 204.365 +91.5129 -6.10822 210.376 +91.392 -6.24872 215.215 +91.1552 -6.38692 219.975 +91.2167 -6.55238 225.674 +91.2222 -6.72106 231.483 +91.0613 -6.8848 237.123 +90.8438 -7.05168 242.871 +90.6011 -7.22442 248.82 +90.1612 -7.38933 254.5 +89.694 -7.56007 260.38 +89.7972 -7.78894 268.263 +89.5222 -7.99631 275.405 +89.1593 -8.20689 282.658 +89.0564 -8.45396 291.167 +88.84 -8.7044 299.793 +88.6725 -8.97486 309.108 +88.4025 -9.25147 318.635 +88.3091 -9.56506 329.435 +88.1588 -9.89333 340.741 +87.6725 -10.2053 351.487 +87.472 -10.5743 364.194 +87.1235 -10.9523 377.215 +86.9438 -11.382 392.013 +86.4497 -11.8039 406.543 +86.2266 -12.3002 423.638 +85.6351 -12.786 440.368 +85.2133 -13.3437 459.576 +84.8966 -13.9735 481.27 +84.3888 -14.6357 504.076 +85.5071 -15.6684 539.643 +90.415 -17.5581 604.726 +84.993 -17.5516 604.502 +82.2184 -18.1249 624.248 +81.1772 -19.1878 660.857 +80.3856 -20.4764 705.238 +79.0967 -21.841 752.238 +78.0568 -23.5271 810.31 +76.8539 -25.4946 878.074 +79.0711 -29.1586 1004.27 +73.0978 -30.3387 1044.91 +71.4085 -33.8843 1167.03 +68.7694 -38.0833 1311.65 +65.1892 -43.3329 1492.45 +60.7321 -50.4742 1738.41 +51.5084 -57.0881 1966.2 +36.1928 -60.1776 2072.61 +28.5873 -95.0713 3274.4 +2.00584e-13 -95.0748 3274.52 +-28.5873 -95.0713 3274.4 +-57.1723 -95.0603 3274.02 +-85.7531 -95.0423 3273.4 +-114.327 -95.0167 3272.52 +-142.893 -94.9842 3271.4 +-169.176 -93.6866 3226.71 +-155.802 -73.9302 2546.27 +-154.385 -64.0762 2206.88 +-147.189 -54.2785 1869.43 +-134.507 -44.6201 1536.78 +-147.478 -44.4514 1530.97 +-171.688 -47.4082 1632.81 +-136.172 -34.6868 1194.67 +-146.877 -34.7173 1195.72 +-169.175 -37.2942 1284.47 +-431.938 -89.1977 3072.11 +-128.151 -24.8861 857.116 +-135.55 -24.8384 855.471 +-152.223 -26.4003 909.268 +-568.924 -93.642 3225.17 +-597.131 -93.5055 3220.47 +-152.246 -22.7316 782.91 +-155.467 -22.1774 763.823 +-166.787 -22.7731 784.339 +-116.38 -15.2355 524.733 +-119.674 -15.0442 518.147 +-123.866 -14.9738 515.722 +-128.581 -14.9672 515.495 +-134.204 -15.0606 518.708 +-848.072 -91.8576 3163.72 +-875.553 -91.6281 3155.81 +-903.071 -91.4029 3148.05 +-413.725 -40.536 1396.12 +-957.897 -90.9315 3131.82 +-985.202 -90.6854 3123.34 +-168.322 -15.0348 517.822 +-146.944 -12.7458 438.984 +-150.282 -12.6669 436.267 +-154.686 -12.6776 436.636 +-467.2 -37.2539 1283.08 +-437.269 -33.9427 1169.04 +-395.997 -29.9399 1031.18 +-410.152 -30.2191 1040.79 +-414.577 -29.7803 1025.68 +-420.11 -29.4355 1013.8 +-423.162 -28.9327 996.487 +-412.386 -27.5256 948.024 +-414.343 -27.0092 930.237 +-414.361 -26.3882 908.85 +-415.983 -25.8904 891.703 +-392.583 -23.8875 822.721 +-392.868 -23.3776 805.16 +-393.68 -22.9162 789.268 +-393.337 -22.4044 771.643 +-144.204 -8.03961 276.896 +-145.301 -7.93104 273.157 +-145.486 -7.77661 267.838 +-148.206 -7.75977 267.258 +-151.617 -7.77754 267.87 +-111.9 -5.62502 193.734 +-110.694 -5.45394 187.842 +-111.403 -5.38092 185.327 +-112.546 -5.33024 183.582 +-113.562 -5.27446 181.66 +-115.412 -5.25772 181.084 +-117.097 -5.23316 180.238 +-118.28 -5.18638 178.627 +-120.338 -5.17787 178.334 +-122.457 -5.17111 178.101 +-125.671 -5.20884 179.4 +-488.836 -19.8898 685.033 +-492.329 -19.6666 677.348 +-495.844 -19.4478 669.813 +-499.326 -19.2311 662.349 +-502.228 -18.9957 654.241 +-505.827 -18.79 647.157 +-509.404 -18.5862 640.138 +-512.267 -18.3595 632.331 +-514.206 -18.1037 623.518 +-533.257 -18.4441 635.242 +-523.26 -17.7809 612.401 +-527.143 -17.5995 606.154 +-530.692 -17.4088 599.586 +-164.405 -5.29925 182.514 +-164.168 -5.19961 179.083 +-164.703 -5.12601 176.548 +-545.521 -16.6838 574.617 +-549.058 -16.5012 568.326 +-552.737 -16.3243 562.232 +-556.634 -16.1549 556.4 +-559.474 -15.9564 549.561 +-563.675 -15.7979 544.105 +-567.025 -15.6166 537.86 +-570.895 -15.4506 532.144 +-572.127 -15.2153 524.037 +-587.53 -15.3533 528.792 +-389.232 -9.9943 344.219 +-386.562 -9.75252 335.891 +-386.21 -9.57322 329.716 +-385.014 -9.37615 322.929 +-384.038 -9.18783 316.443 +-386.319 -9.07925 312.703 +-384.574 -8.8781 305.775 +-385.022 -8.73031 300.685 +-383.983 -8.55122 294.517 +-141.199 -3.08802 106.356 +-142.845 -3.06768 105.655 +-142.225 -2.99898 103.289 +-143.203 -2.96453 102.103 +-141.549 -2.87654 99.0722 +-141.585 -2.82414 97.2676 +-143.341 -2.80603 96.6438 +-146.514 -2.81447 96.9344 +-147.69 -2.78357 95.8705 +-382.141 -7.06553 243.347 +-381.961 -6.92697 238.575 +-380.022 -6.7587 232.78 +-381.011 -6.64424 228.838 +-382.994 -6.5475 225.506 +-382.264 -6.40526 220.607 +-383.74 -6.30107 217.019 +-380.022 -6.11359 210.561 +-380.704 -5.99909 206.618 +-380.992 -5.87929 202.492 +-381.858 -5.76918 198.699 +-715.122 -10.575 364.22 +-737.963 -10.6784 367.78 +-722.361 -10.2252 352.171 +-403.817 -5.59005 192.53 +-404.032 -5.46793 188.324 +-405.752 -5.36661 184.834 +-404.061 -5.22115 179.824 +-404.699 -5.10703 175.894 +-404.654 -4.98505 171.693 +-404.567 -4.8635 167.506 +-406.292 -4.76413 164.084 +-405.29 -4.63338 159.581 +-406.388 -4.52745 155.932 +-406.141 -4.40707 151.786 +-405.853 -4.28714 147.656 +-404.205 -4.15416 143.076 +-406.384 -4.06109 139.87 +-405.788 -3.94053 135.718 +-404.865 -3.81788 131.494 +-404.376 -3.70034 127.445 +-383 -3.39839 117.046 +-380.364 -3.26994 112.622 +-380.083 -3.16307 108.941 +-381.019 -3.06669 105.621 +-380.188 -2.95655 101.828 +-379.611 -2.84925 98.1326 +-379.774 -2.74809 94.6483 +-380.975 -2.65451 91.4254 +-379.03 -2.53964 87.4691 +-379.779 -2.44355 84.1595 +-378.739 -2.33641 80.4695 +-380.309 -2.24561 77.3421 +-378.123 -2.13314 73.4686 +-379.34 -2.04047 70.2769 +-378.265 -1.93575 66.6702 +-380.509 -1.84802 63.6486 +-378.976 -1.74204 59.9986 +-378.101 -1.63999 56.4837 +-379.471 -1.5478 53.3086 +-379.922 -1.45164 49.9965 +-379.649 -1.35288 46.5954 +-379.445 -1.25471 43.2141 +-379.311 -1.15705 39.8504 +-378.35 -1.05732 36.4157 +-377.857 -0.959431 33.0443 +-379.327 -0.866429 29.8411 +-378.875 -0.768907 26.4823 +-146.526 -0.260098 8.95815 +-379.579 -0.577342 19.8845 +-379.738 -0.481184 16.5727 +-3274.3 -3.31846 114.293 +-3275.18 -2.48907 85.7274 +-146.378 -0.0741533 2.55395 +-144.395 -0.0365715 1.25958 +95.8 0 0 +95.7964 -0.0167231 0.835835 +95.6854 -0.0334101 1.66987 +96.5669 -0.050583 2.52818 +96.6411 -0.0675078 3.3741 +96.608 -0.0843751 4.21715 +96.5675 -0.101236 5.05988 +96.5196 -0.118089 5.90221 +95.5666 -0.133678 6.68133 +95.6044 -0.150512 7.52272 +96.4316 -0.168764 8.43499 +96.3544 -0.185591 9.27601 +96.2697 -0.202405 10.1164 +96.2771 -0.219428 10.9672 +96.0785 -0.235983 11.7946 +96.9633 -0.255356 12.7629 +95.8579 -0.269489 13.4693 +96.6268 -0.288872 14.4381 +96.3984 -0.305415 15.2649 +96.2615 -0.32223 16.1054 +96.0188 -0.338675 16.9273 +95.6707 -0.354694 17.728 +95.7087 -0.372146 18.6002 +95.5427 -0.388839 19.4345 +95.3694 -0.405502 20.2673 +96.0675 -0.426031 21.2934 +95.9755 -0.443234 22.1533 +95.6812 -0.459503 22.9664 +95.5741 -0.476672 23.8245 +96.1371 -0.497344 24.8577 +95.9164 -0.514107 25.6956 +95.6885 -0.530832 26.5315 +96.3184 -0.552478 27.6134 +96.0737 -0.569269 28.4526 +95.6305 -0.58485 29.2313 +96.23 -0.606934 30.3351 +95.9616 -0.623709 31.1736 +95.6859 -0.640436 32.0096 +96.2538 -0.662976 33.1362 +95.8666 -0.679087 33.9414 +96.3185 -0.701269 35.0501 +97.0392 -0.725762 36.2742 +96.7189 -0.742673 37.1195 +96.3913 -0.759528 37.9619 +96.0562 -0.776325 38.8014 +95.7139 -0.793064 39.6381 +96.2848 -0.817558 40.8623 +96.0162 -0.835131 41.7406 +96.4704 -0.859184 42.9428 +96.0919 -0.875991 43.7828 +95.8874 -0.894422 44.7041 +96.0351 -0.916294 45.7972 +95.6317 -0.933023 46.6334 +96.0265 -0.957714 47.8674 +95.5159 -0.973533 48.6581 +95.8859 -0.998481 49.905 +96.3296 -1.02457 51.2091 +96.4941 -1.04803 52.3815 +96.1207 -1.06581 53.2699 +95.391 -1.07959 53.9588 +95.869 -1.1072 55.3389 +96.0717 -1.13202 56.5792 +95.4027 -1.14668 57.3122 +95.581 -1.17165 58.5604 +95.7446 -1.19678 59.8159 +95.2189 -1.21344 60.649 +95.3568 -1.23873 61.9131 +95.5633 -1.26527 63.2393 +95.7538 -1.29197 64.5739 +95.1866 -1.30864 65.4068 +95.2674 -1.33438 66.6936 +95.3329 -1.36025 67.9867 +95.464 -1.38743 69.3448 +95.5786 -1.41474 70.7102 +95.5967 -1.44101 72.0229 +94.9644 -1.45764 72.8541 +94.8765 -1.48278 74.1108 +95.0086 -1.51174 75.5582 +94.8895 -1.53708 76.8246 +94.9098 -1.56504 78.2219 +95.6023 -1.60469 80.2038 +95.4309 -1.63041 81.4894 +95.3198 -1.65751 82.8437 +94.7429 -1.67673 83.8046 +95.3455 -1.7173 85.8323 +94.5927 -1.73388 86.6609 +95.2223 -1.77625 88.7784 +95.0966 -1.80519 90.2252 +94.8809 -1.83284 91.6071 +94.7197 -1.86195 93.0622 +95.1766 -1.90388 95.1576 +94.9732 -1.93326 96.6261 +94.8209 -1.96415 98.1703 +94.4422 -1.99079 99.5015 +94.3204 -2.02329 101.126 +94.5151 -2.06327 103.124 +94.2136 -2.09308 104.614 +94.4896 -2.13641 106.78 +94.2101 -2.16791 108.354 +94.2349 -2.2071 110.313 +93.7184 -2.23419 111.667 +93.9488 -2.27979 113.946 +93.8317 -2.31786 115.849 +94.062 -2.36547 118.228 +93.6421 -2.39755 119.832 +93.6275 -2.4408 121.994 +94.0637 -2.49699 124.802 +92.9708 -2.51332 125.618 +98.5128 -2.71231 135.564 +115.734 -3.24565 162.221 +115.69 -3.30506 165.19 +115.32 -3.35645 167.758 +115.306 -3.41958 170.914 +115.355 -3.48627 174.247 +115.355 -3.55324 177.594 +115.627 -3.63062 181.462 +115.31 -3.69137 184.498 +115.159 -3.75912 187.884 +115.317 -3.8391 191.882 +115.465 -3.92113 195.982 +115.2 -3.99136 199.492 +115.129 -4.07052 203.448 +113.058 -4.07996 203.92 +111.178 -4.09602 204.723 +108.589 -4.08526 204.185 +106.387 -4.08808 204.326 +103.828 -4.0762 203.732 +101.688 -4.07986 203.915 +99.1596 -4.06688 203.266 +97.3816 -4.08404 204.124 +94.7933 -4.06644 203.244 +92.6839 -4.06826 203.335 +90.987 -4.08794 204.319 +91.5129 -4.21006 210.423 +91.3529 -4.30506 215.171 +91.4613 -4.41694 220.763 +91.1792 -4.51436 225.632 +91.1489 -4.62874 231.349 +90.9896 -4.74158 236.989 +90.5286 -4.84348 242.082 +90.2933 -4.96248 248.029 +90.0945 -5.0893 254.368 +89.9219 -5.22399 261.1 +89.5751 -5.35521 267.658 +89.4604 -5.50762 275.276 +89.3096 -5.66611 283.197 +89.1149 -5.8307 291.424 +88.6412 -5.98605 299.188 +88.7001 -6.1878 309.272 +88.2421 -6.36497 318.127 +88.4126 -6.6004 329.894 +88.2089 -6.8228 341.01 +87.6241 -7.0301 351.371 +87.4253 -7.28438 364.08 +87.101 -7.54689 377.201 +86.9005 -7.84108 391.905 +86.4289 -8.1338 406.535 +86.0273 -8.45829 422.753 +85.6542 -8.81464 440.564 +85.3409 -9.21083 460.366 +84.8619 -9.62727 481.18 +84.5539 -10.1073 505.173 +85.4914 -10.7974 539.664 +90.5333 -12.1176 605.651 +85.0069 -12.0993 604.735 +81.9704 -12.4548 622.502 +81.0797 -13.2092 660.209 +80.08 -14.0596 702.712 +79.1699 -15.0678 753.1 +78.0568 -16.216 810.489 +76.8539 -17.5721 878.268 +78.9848 -20.0756 1003.4 +73.0978 -20.9108 1045.14 +71.1948 -23.2846 1163.79 +68.7223 -26.2308 1311.04 +65.1543 -29.851 1491.98 +60.2959 -34.5393 1726.3 +51.5162 -39.3537 1966.94 +36.1998 -41.4851 2073.47 +28.5873 -65.5275 3275.12 +2.00584e-13 -65.5299 3275.24 +-28.5873 -65.5275 3275.12 +-57.1723 -65.5199 3274.74 +-85.7531 -65.5075 3274.12 +-114.327 -65.4899 3273.24 +-142.893 -65.4675 3272.13 +-169.145 -64.5611 3226.82 +-155.802 -50.956 2546.83 +-154.406 -44.1702 2207.67 +-147.33 -37.447 1871.64 +-164.175 -37.5374 1876.15 +-147.526 -30.6478 1531.8 +-171.782 -32.6939 1634.07 +-136.138 -23.9017 1194.63 +-146.877 -23.9287 1195.98 +-169.058 -25.6871 1283.86 +-433.858 -61.7524 3086.44 +-128.18 -17.1566 857.503 +-135.55 -17.1197 855.661 +-152.273 -18.2022 909.765 +-568.924 -64.5423 3225.88 +-597.131 -64.4483 3221.19 +-151.998 -15.6421 781.808 +-155.447 -15.2837 763.894 +-166.912 -15.708 785.1 +-116.315 -10.4951 524.556 +-119.876 -10.3867 519.138 +-123.959 -10.3284 516.225 +-128.581 -10.3161 515.609 +-134.179 -10.3785 518.726 +-848.072 -63.3125 3164.42 +-875.553 -63.1543 3156.51 +-903.071 -62.999 3148.75 +-413.952 -27.9547 1397.2 +-958.014 -62.6818 3132.89 +-985.323 -62.5121 3124.41 +-167.796 -10.3304 516.321 +-146.626 -8.76599 438.132 +-150.022 -8.71548 435.608 +-154.419 -8.7229 435.979 +-467.268 -25.6809 1283.55 +-437.444 -23.4042 1169.77 +-431.726 -22.4977 1124.45 +-410.152 -20.8284 1041.02 +-414.465 -20.5205 1025.63 +-420.454 -20.3051 1014.87 +-423.162 -19.9418 996.708 +-412.187 -18.9627 947.775 +-413.733 -18.5885 929.072 +-414.984 -18.2153 910.416 +-416.575 -17.8702 893.169 +-415.831 -17.4393 871.633 +-416.759 -17.0928 854.312 +-392.966 -15.7662 788.011 +-392.52 -15.4101 770.21 +-144.158 -5.5395 276.87 +-145.255 -5.46467 273.129 +-145.438 -5.35823 267.809 +-147.721 -5.33091 266.444 +-151.666 -5.36237 268.016 +-112.4 -3.89437 194.644 +-110.339 -3.74704 187.281 +-111.351 -3.70707 185.283 +-112.442 -3.67043 183.451 +-113.032 -3.61844 180.853 +-115.412 -3.62386 181.124 +-116.444 -3.58681 179.272 +-118.225 -3.57301 178.582 +-120.282 -3.56717 178.29 +-122.4 -3.56253 178.058 +-126.187 -3.60491 180.177 +-488.952 -13.7122 685.348 +-493.034 -13.5745 678.467 +-496.142 -13.4124 670.363 +-499.567 -13.2613 662.814 +-502.593 -13.1022 654.862 +-506.382 -12.9651 648.009 +-509.404 -12.8105 640.28 +-512.707 -12.6651 633.014 +-513.951 -12.4717 623.348 +-532.678 -12.6987 634.694 +-523.65 -12.2645 612.992 +-526.881 -12.1243 605.986 +-531.156 -12.0094 600.243 +-164.405 -3.65248 182.554 +-164.439 -3.58971 179.417 +-165.453 -3.54916 177.39 +-545.59 -11.5007 574.817 +-549.961 -11.3921 569.387 +-553.368 -11.2643 562.998 +-556.352 -11.1291 556.241 +-559.545 -10.9993 549.753 +-563.675 -10.8887 544.225 +-566.808 -10.7596 537.772 +-571.553 -10.6616 532.875 +-389.282 -7.13553 356.641 +-587.456 -10.5809 528.842 +-582.163 -10.303 514.952 +-388.902 -6.76257 337.999 +-386.59 -6.60478 330.113 +-385.014 -6.46247 323 +-384.655 -6.34285 317.022 +-387.174 -6.27168 313.464 +-385.043 -6.12665 306.216 +-385.495 -6.02473 301.122 +-384.459 -5.90119 294.947 +-141.438 -2.13201 106.56 +-142.845 -2.11438 105.679 +-142.225 -2.06703 103.312 +-143.122 -2.04213 102.068 +-141.549 -1.98264 99.0942 +-141.502 -1.94539 97.2325 +-142.512 -1.92285 96.1061 +-146.931 -1.94538 97.2318 +-148.78 -1.93273 96.5997 +-382.562 -4.87526 243.67 +-381.198 -4.76484 238.151 +-381.812 -4.68035 233.928 +-381.868 -4.58981 229.403 +-381.788 -4.49862 224.845 +-381.831 -4.4098 220.406 +-382.347 -4.32722 216.279 +-381.072 -4.22541 211.19 +-380.352 -4.13103 206.473 +-382.581 -4.06918 203.381 +-381.592 -3.9736 198.604 +-715.122 -7.28878 364.3 +-738.052 -7.36092 367.905 +-722.9 -7.05292 352.511 +-405.351 -3.86756 193.304 +-404.213 -3.77044 188.45 +-405.934 -3.70057 184.958 +-405.34 -3.61003 180.433 +-402.773 -3.50326 175.096 +-403.918 -3.42968 171.419 +-404.382 -3.35063 167.467 +-402.398 -3.25217 162.546 +-405.383 -3.19428 159.653 +-404.427 -3.10546 155.214 +-405.673 -3.03405 151.645 +-403.88 -2.94053 146.971 +-403.356 -2.85724 142.807 +-405.533 -2.79323 139.608 +-404.555 -2.70773 135.335 +-404.199 -2.62712 131.306 +-403.995 -2.54804 127.354 +-386.156 -2.36163 118.036 +-378.542 -2.24299 112.107 +-380.66 -2.18344 109.13 +-379.863 -2.10728 105.324 +-380.575 -2.03987 101.955 +-379.804 -1.96484 98.2044 +-380.938 -1.89991 94.9595 +-380.197 -1.82587 91.2588 +-379.907 -1.75449 87.6909 +-379.779 -1.68421 84.1782 +-378.25 -1.60828 80.3834 +-380.701 -1.54937 77.4389 +-380.675 -1.48018 73.9809 +-380.716 -1.41149 70.5475 +-379.249 -1.33768 66.8585 +-379.227 -1.26945 63.4481 +-378.482 -1.19913 59.9337 +-379.485 -1.1345 56.7032 +-378.579 -1.06431 53.1953 +-377.443 -0.994006 49.6814 +-378.557 -0.929789 46.4717 +-380.141 -0.866387 43.3028 +-378.913 -0.796651 39.8173 +-377.852 -0.727792 36.3757 +-378.454 -0.66233 33.1039 +-378.928 -0.596554 29.8163 +-379.274 -0.530524 26.5161 +-142.334 -0.174142 8.70378 +-380.178 -0.398558 19.9203 +-378.839 -0.33087 16.5372 +-378.269 -0.264238 13.2069 +-3275.18 -1.71558 85.7463 +-142.978 -0.0499229 2.49519 +-143.095 -0.0249799 1.24852 +95.8 0 0 +95.7964 -0.00918192 0.835952 +96.5853 -0.0185165 1.6858 +96.6669 -0.0278017 2.53116 +96.6411 -0.0370657 3.37458 +95.7088 -0.0458957 4.17849 +95.6687 -0.055067 5.01348 +96.5196 -0.0648377 5.90303 +96.4644 -0.0740862 6.74504 +95.5047 -0.0825534 7.51593 +96.332 -0.0925654 8.42745 +95.359 -0.100847 9.18147 +96.2697 -0.111132 10.1178 +96.1778 -0.120354 10.9574 +96.0785 -0.129568 11.7963 +95.9719 -0.138771 12.6341 +95.7589 -0.147811 13.4572 +95.6378 -0.156984 14.2923 +95.5095 -0.166144 15.1263 +96.2615 -0.176923 16.1076 +96.0188 -0.185952 16.9297 +95.8674 -0.195148 17.7669 +95.7087 -0.204329 18.6028 +95.6407 -0.213713 19.4571 +95.3694 -0.222644 20.2702 +96.0675 -0.233916 21.2964 +95.878 -0.243114 22.1339 +95.6812 -0.252294 22.9696 +95.5741 -0.26172 23.8279 +96.1371 -0.27307 24.8612 +96.013 -0.282559 25.725 +96.6521 -0.294392 26.8024 +96.1262 -0.302736 27.562 +96.0737 -0.312561 28.4566 +96.3955 -0.323685 29.4693 +95.5624 -0.33093 30.1289 +95.9616 -0.342452 31.1779 +96.5393 -0.354773 32.2997 +96.2538 -0.364012 33.1408 +95.8666 -0.372858 33.9462 +96.3185 -0.385037 35.055 +96.0089 -0.394254 35.8941 +96.7189 -0.40777 37.1247 +96.3913 -0.417024 37.9672 +96.8907 -0.42995 39.144 +96.5454 -0.43922 39.988 +96.1928 -0.448457 40.8289 +96.7498 -0.462039 42.0655 +95.6482 -0.46772 42.5827 +96.8199 -0.484613 44.1207 +96.4311 -0.493874 44.9639 +96.0351 -0.503098 45.8036 +96.3507 -0.516135 46.9906 +96.0265 -0.52584 47.8741 +96.4069 -0.539511 49.1188 +95.8859 -0.548223 49.912 +96.2413 -0.562033 51.1693 +96.4941 -0.575428 52.3888 +96.0332 -0.584655 53.2289 +95.5651 -0.593837 54.0648 +95.869 -0.607917 55.3467 +96.0717 -0.621541 56.5871 +96.1742 -0.634686 57.7838 +95.581 -0.643305 58.5686 +95.8294 -0.65768 59.8773 +95.3032 -0.66684 60.7112 +95.3568 -0.680136 61.9218 +95.6467 -0.695312 63.3034 +95.6709 -0.708752 64.527 +95.1866 -0.718516 65.416 +95.1855 -0.732022 66.6456 +95.3329 -0.746857 67.9962 +94.8168 -0.756611 68.8842 +95.5786 -0.776776 70.7201 +94.8779 -0.785246 71.4913 +95.5991 -0.805677 73.3514 +94.9553 -0.814808 74.1827 +95.0086 -0.830032 75.5687 +94.9672 -0.844636 76.8984 +94.9098 -0.859294 78.2329 +94.9129 -0.874712 79.6366 +95.583 -0.896615 81.6307 +94.867 -0.905742 82.4616 +95.2672 -0.925717 84.2802 +95.3455 -0.942897 85.8443 +94.5927 -0.951998 86.673 +95.1491 -0.974512 88.7226 +95.024 -0.990398 90.169 +94.8809 -1.00633 91.6199 +94.791 -1.02309 93.1452 +94.5402 -1.03835 94.5345 +94.833 -1.0599 96.497 +94.8209 -1.07843 98.184 +94.5799 -1.09465 99.6604 +94.184 -1.1093 100.994 +94.5151 -1.13286 103.139 +94.1467 -1.1484 104.554 +94.5559 -1.17383 106.87 +94.1445 -1.18948 108.294 +94.2349 -1.21182 110.328 +93.7827 -1.22754 111.759 +93.8851 -1.25089 113.885 +93.8317 -1.27264 115.865 +93.5017 -1.29105 117.541 +93.7037 -1.31726 119.928 +93.6275 -1.34014 122.011 +93.9433 -1.36923 124.659 +92.9113 -1.37906 125.554 +98.5128 -1.48921 135.583 +115.676 -1.78116 162.162 +115.633 -1.81377 165.131 +115.264 -1.84198 167.7 +115.361 -1.87845 171.02 +115.244 -1.91233 174.104 +115.246 -1.9491 177.452 +115.573 -1.99248 181.402 +115.363 -2.02771 184.609 +115.159 -2.06397 187.911 +115.317 -2.10788 191.908 +115.414 -2.15197 195.922 +115.15 -2.19054 199.434 +115.178 -2.2359 203.564 +113.058 -2.24013 203.949 +110.749 -2.24026 203.961 +108.589 -2.24304 204.214 +106.387 -2.24459 204.355 +103.828 -2.23807 203.761 +101.599 -2.23811 203.765 +99.1157 -2.23196 203.205 +96.9511 -2.23245 203.25 +94.7933 -2.23271 203.273 +92.7254 -2.23471 203.455 +91.0277 -2.24551 204.439 +91.4332 -2.30956 210.269 +91.3529 -2.36372 215.201 +91.4231 -2.42414 220.702 +91.1792 -2.47864 225.663 +90.8923 -2.53429 230.73 +91.0255 -2.60442 237.115 +90.8088 -2.66757 242.864 +90.2591 -2.72365 247.97 +90.1279 -2.79535 254.498 +89.987 -2.87034 261.325 +89.6068 -2.94136 267.791 +89.4295 -3.02295 275.219 +89.3096 -3.11102 283.237 +88.9687 -3.19614 290.986 +88.8684 -3.29511 299.997 +88.7552 -3.39957 309.507 +88.2956 -3.49685 318.365 +88.4643 -3.62612 330.133 +88.2089 -3.74611 341.057 +87.6725 -3.86206 351.614 +87.4486 -4.00061 364.228 +87.0561 -4.14153 377.058 +86.8789 -4.30413 391.861 +86.4081 -4.46484 406.493 +86.107 -4.64838 423.203 +85.5969 -4.83651 440.331 +85.3591 -5.05836 460.529 +84.7403 -5.27834 480.557 +84.4053 -5.53974 504.356 +85.3506 -5.91863 538.85 +90.415 -6.64459 604.945 +85.0069 -6.64322 604.82 +82.0749 -6.84712 623.383 +81.165 -7.26025 660.996 +80.3064 -7.74135 704.797 +79.1699 -8.27306 753.206 +78.0568 -8.90349 810.602 +76.7755 -9.63823 877.495 +79.0632 -11.0335 1004.53 +73.1466 -11.4889 1045.99 +71.0971 -12.7671 1162.36 +68.602 -14.3769 1308.92 +64.9972 -16.3504 1488.59 +60.8857 -19.1495 1743.43 +51.5267 -21.6118 1967.61 +36.1701 -22.759 2072.06 +28.5873 -35.9783 3275.58 +2.00584e-13 -35.9797 3275.7 +-28.5873 -35.9783 3275.58 +-57.1723 -35.9742 3275.2 +-85.7531 -35.9674 3274.58 +-114.327 -35.9577 3273.7 +-142.893 -35.9454 3272.58 +-169.234 -35.4664 3228.98 +-155.894 -27.9943 2548.69 +-154.448 -24.2586 2208.58 +-147.291 -20.555 1871.4 +-163.992 -20.5872 1874.33 +-147.526 -16.8274 1532.02 +-172.022 -17.9759 1636.58 +-136.24 -13.1332 1195.69 +-146.877 -13.1382 1196.15 +-169.201 -14.1156 1285.13 +-435.111 -34.0035 3095.78 +-128.18 -9.41996 857.623 +-135.55 -9.39972 855.78 +-151.811 -9.96374 907.13 +-568.924 -35.4374 3226.34 +-597.131 -35.3858 3221.64 +-152.056 -8.59166 782.212 +-155.487 -8.39378 764.197 +-167.078 -8.63317 785.992 +-116.228 -5.75814 524.239 +-119.696 -5.69434 518.431 +-123.959 -5.6709 516.297 +-128.557 -5.66307 515.584 +-134.254 -5.70158 519.09 +-848.072 -34.7622 3164.86 +-875.553 -34.6753 3156.95 +-903.071 -34.5901 3149.19 +-413.697 -15.3393 1396.54 +-958.014 -34.4159 3133.33 +-985.323 -34.3227 3124.85 +-167.92 -5.67613 516.773 +-146.595 -4.812 438.1 +-150.217 -4.79152 436.236 +-154.987 -4.80697 437.642 +-466.892 -14.0888 1282.69 +-1147.45 -33.7074 3068.82 +-431.583 -12.3484 1124.24 +-410.885 -11.4564 1043.03 +-414.24 -11.2608 1025.22 +-420.454 -11.1487 1015.01 +-423.162 -10.9492 996.847 +-413.423 -10.4429 950.751 +-415.075 -10.2393 932.217 +-415.191 -10.0062 910.998 +-417.124 -9.8247 894.472 +-416.649 -9.59401 873.469 +-415.664 -9.36023 852.186 +-393.77 -8.67426 789.732 +-393.701 -8.48646 772.634 +-143.881 -3.03566 276.376 +-145.208 -2.99945 273.08 +-145.438 -2.94198 267.847 +-147.915 -2.93081 266.83 +-152.159 -2.9538 268.924 +-112.55 -2.14107 194.93 +-110.339 -2.05734 187.307 +-111.145 -2.03163 184.966 +-112.233 -2.01153 183.136 +-113.88 -2.00163 182.235 +-115.358 -1.98878 181.065 +-116.553 -1.97121 179.465 +-118.17 -1.96087 178.524 +-120.115 -1.95584 178.066 +-122.514 -1.95783 178.247 +-126.129 -1.97841 180.121 +-488.952 -7.52878 685.444 +-492.858 -7.45053 678.32 +-495.844 -7.35974 670.055 +-499.567 -7.28124 662.907 +-502.593 -7.19388 654.953 +-505.827 -7.11081 647.391 +-509.404 -7.03369 640.369 +-512.519 -6.95131 632.87 +-513.951 -6.84769 623.435 +-532.935 -6.97569 635.089 +-523.325 -6.72975 612.698 +-527.471 -6.66442 606.75 +-531.156 -6.59387 600.327 +-162.532 -1.98257 180.499 +-163.966 -1.96529 178.926 +-167.362 -1.97119 179.463 +-546.003 -6.31933 575.332 +-549.961 -6.25491 569.467 +-552.457 -6.17454 562.15 +-556.352 -6.11049 556.318 +-559.83 -6.04231 550.111 +-563.675 -5.97849 544.301 +-567.098 -5.91064 538.124 +-571.407 -5.85231 532.813 +-572.422 -5.76096 524.496 +-586.861 -5.80362 528.38 +-388.259 -3.77273 343.481 +-388.223 -3.70656 337.457 +-384.841 -3.61 328.666 +-385.627 -3.55391 323.559 +-384.732 -3.48329 317.13 +-386.397 -3.4366 312.879 +-385.435 -3.3673 306.57 +-385.495 -3.30792 301.164 +-385.014 -3.24477 295.414 +-142.077 -1.17589 107.057 +-142.765 -1.16027 105.635 +-142.225 -1.13492 103.327 +-143.122 -1.12125 102.082 +-141.549 -1.08858 99.108 +-141.502 -1.06813 97.2461 +-143.258 -1.06128 96.6227 +-146.847 -1.06752 97.1902 +-146.348 -1.04383 95.0338 +-382.478 -2.67621 243.65 +-381.028 -2.61501 238.079 +-381.471 -2.56748 233.752 +-382.554 -2.52459 229.847 +-382.65 -2.47558 225.384 +-381.398 -2.41849 220.187 +-381.564 -2.37102 215.865 +-382.121 -2.32637 211.8 +-380.967 -2.27184 206.836 +-381.345 -2.227 202.753 +-382.036 -2.18427 198.863 +-715.122 -4.00196 364.351 +-738.589 -4.04451 368.225 +-722.361 -3.86957 352.298 +-401.38 -2.1027 191.436 +-403.398 -2.066 188.096 +-403.841 -2.02135 184.03 +-406.619 -1.98836 181.027 +-405.982 -1.93881 176.515 +-403.918 -1.88309 171.443 +-405.86 -1.84641 168.103 +-406.477 -1.80374 164.218 +-404.639 -1.75061 159.381 +-405.267 -1.70862 155.559 +-406.235 -1.66817 151.876 +-404.256 -1.61603 147.128 +-404.676 -1.57392 143.294 +-405.817 -1.53472 139.726 +-405.124 -1.4888 135.545 +-403.819 -1.44109 131.201 +-403.518 -1.39737 127.221 +-385.104 -1.29313 117.731 +-380.651 -1.23839 112.747 +-379.891 -1.19641 108.925 +-380.538 -1.15907 105.526 +-380.575 -1.12001 101.969 +-381.063 -1.08238 98.5437 +-380.938 -1.04316 94.9728 +-379.516 -1.00071 91.1082 +-380.492 -0.964796 87.8381 +-378.9 -0.922586 83.9951 +-379.619 -0.886235 80.6856 +-379.427 -0.847846 77.1906 +-379.792 -0.810819 73.8195 +-379.831 -0.773186 70.3934 +-381.022 -0.737897 67.1804 +-379.819 -0.698086 63.556 +-377.198 -0.656158 59.7387 +-378.595 -0.621441 56.578 +-379.075 -0.585132 53.2723 +-379.525 -0.548777 49.9624 +-379.45 -0.511711 46.5878 +-378.551 -0.473707 43.1278 +-379.311 -0.437867 39.8648 +-379.246 -0.401073 36.515 +-378.654 -0.363848 33.1259 +-378.43 -0.327112 29.7813 +-377.778 -0.290139 26.4152 +-142.633 -0.0958151 8.72331 +-378.68 -0.217969 19.8446 +-379.439 -0.181953 16.5656 +-379.569 -0.145579 13.254 +-148.649 -0.042752 3.89228 +-143.778 -0.0275639 2.50951 +-144.395 -0.01384 1.26003 +96.7 0 0 +95.6964 -0.00163831 0.835127 +95.7854 -0.00327993 1.67194 +96.6669 -0.00496579 2.53131 +96.6411 -0.00662047 3.37477 +96.608 -0.00827464 4.21798 +96.5675 -0.0099282 5.06088 +96.5196 -0.011581 5.90338 +96.4644 -0.0132329 6.74544 +96.4019 -0.0148838 7.58698 +96.332 -0.0165335 8.42794 +96.3544 -0.0182009 9.27785 +96.3692 -0.0198702 10.1288 +96.0784 -0.0214749 10.9468 +96.0785 -0.0231428 11.797 +95.9719 -0.0247865 12.6349 +95.7589 -0.0264012 13.458 +96.6268 -0.0283296 14.441 +95.5095 -0.0296758 15.1272 +96.2615 -0.031601 16.1086 +96.0188 -0.0332138 16.9307 +95.6707 -0.0347848 17.7315 +95.7087 -0.0364962 18.6039 +95.5427 -0.0381333 19.4384 +95.3694 -0.0397674 20.2714 +95.1889 -0.0413986 21.1029 +95.878 -0.0434237 22.1352 +95.7784 -0.0451092 22.9944 +95.4771 -0.0466996 23.8051 +95.3625 -0.0483814 24.6624 +95.9164 -0.0504183 25.7007 +94.8212 -0.0515867 26.2962 +96.1262 -0.0540731 27.5636 +96.0737 -0.055828 28.4582 +95.6305 -0.057356 29.2371 +96.4208 -0.0596399 30.4013 +95.9616 -0.0611669 31.1797 +95.6859 -0.0628074 32.0159 +96.2538 -0.0650179 33.1427 +96.8093 -0.0672527 34.2819 +96.4125 -0.0688403 35.0912 +96.0089 -0.0704195 35.8962 +96.7189 -0.0728337 37.1268 +96.2052 -0.0743428 37.8961 +96.0562 -0.0761339 38.8091 +96.5454 -0.0784511 39.9903 +96.2848 -0.0801777 40.8704 +95.9245 -0.081823 41.7091 +96.4704 -0.0842599 42.9513 +96.0919 -0.0859081 43.7915 +96.4311 -0.0882132 44.9665 +96.0351 -0.0898607 45.8063 +96.4406 -0.0922752 47.0371 +96.2054 -0.0940978 47.9662 +96.3178 -0.0962756 49.0763 +96.6842 -0.098736 50.3305 +96.2413 -0.100387 51.1723 +95.7911 -0.102031 52.0102 +96.1207 -0.104523 53.2805 +95.5651 -0.106068 54.068 +95.869 -0.108583 55.3499 +95.8993 -0.110817 56.4889 +95.4027 -0.112455 57.3236 +95.6662 -0.115006 58.6242 +95.7446 -0.117367 59.8278 +95.9779 -0.119951 61.1446 +95.3568 -0.121482 61.9254 +95.5633 -0.124085 63.2519 +95.0077 -0.125716 64.0834 +95.1866 -0.128337 65.4198 +95.9227 -0.131762 67.1657 +95.3329 -0.1334 68.0002 +95.3831 -0.135949 69.2998 +95.4982 -0.138627 70.6648 +94.8779 -0.140256 71.4955 +94.9644 -0.14295 72.8686 +94.9553 -0.145537 74.1871 +94.9304 -0.148134 75.5109 +95.6667 -0.151975 77.4692 +95.6043 -0.154606 78.8099 +94.9129 -0.156236 79.6412 +95.583 -0.160149 81.6354 +94.867 -0.161779 82.4664 +95.417 -0.165607 84.4176 +95.4198 -0.168546 85.9162 +94.6664 -0.170173 86.7456 +95.2223 -0.174196 88.796 +95.024 -0.1769 90.1742 +94.8809 -0.179746 91.6252 +94.791 -0.182738 93.1506 +94.5402 -0.185464 94.54 +94.9732 -0.189594 96.6452 +94.8209 -0.192624 98.1897 +94.5799 -0.19552 99.6662 +94.3204 -0.198423 101.146 +94.5151 -0.202345 103.145 +94.2805 -0.205413 104.709 +94.4234 -0.20937 106.726 +94.1445 -0.212459 108.301 +94.17 -0.2163 110.259 +93.847 -0.219406 111.842 +93.8851 -0.223428 113.892 +93.9575 -0.227618 116.028 +94.1242 -0.232134 118.33 +93.6421 -0.235127 119.856 +93.7493 -0.239679 122.176 +93.9433 -0.244565 124.667 +92.9708 -0.24648 125.643 +97.925 -0.264408 134.782 +115.734 -0.3183 162.253 +115.748 -0.324287 165.305 +115.32 -0.329166 167.792 +115.697 -0.336495 171.528 +115.189 -0.341407 174.032 +115.191 -0.347973 177.379 +115.573 -0.355887 181.413 +115.31 -0.362011 184.535 +115.159 -0.368656 187.922 +115.266 -0.37633 191.834 +115.363 -0.384205 195.848 +115.1 -0.391092 199.359 +115.178 -0.399365 203.576 +113.494 -0.401664 204.748 +110.796 -0.400316 204.061 +108.636 -0.400813 204.314 +106.433 -0.401091 204.456 +103.828 -0.399751 203.773 +101.688 -0.40011 203.956 +99.1157 -0.398661 203.217 +96.9511 -0.398749 203.262 +94.7933 -0.398794 203.285 +92.6839 -0.398973 203.376 +91.0683 -0.401262 204.543 +91.473 -0.412701 210.374 +91.3139 -0.422015 215.122 +91.1169 -0.431538 219.976 +90.8796 -0.441266 224.935 +91.2222 -0.454304 231.581 +90.9896 -0.465005 237.036 +90.8438 -0.476652 242.973 +90.1907 -0.486115 247.797 +90.1279 -0.499291 254.513 +89.8894 -0.51213 261.057 +89.6703 -0.525741 267.995 +89.4295 -0.539944 275.235 +89.2194 -0.555112 282.967 +89.2318 -0.572564 291.863 +88.8968 -0.588742 300.11 +88.5623 -0.605892 308.852 +88.349 -0.624966 318.575 +88.4126 -0.647299 329.959 +88.1838 -0.668921 340.981 +87.6483 -0.689629 351.537 +87.2152 -0.712658 363.276 +87.0336 -0.739548 376.983 +86.749 -0.76763 391.298 +86.2418 -0.795952 405.735 +85.9475 -0.828733 422.445 +85.5969 -0.863872 440.357 +85.2316 -0.902146 459.867 +84.7056 -0.942403 480.388 +84.4053 -0.989479 504.385 +85.1473 -1.05463 537.598 +90.5333 -1.18837 605.771 +85.0069 -1.18658 604.855 +82.0749 -1.223 623.42 +81.0797 -1.29542 660.34 +80.1932 -1.38077 703.845 +78.9922 -1.47437 751.559 +77.9609 -1.58834 809.653 +76.6796 -1.71938 876.45 +79.0632 -1.97075 1004.59 +73.035 -2.04895 1044.45 +71.091 -2.2802 1162.33 +68.5549 -2.56616 1308.1 +64.8359 -2.91318 1484.99 +61.0567 -3.42998 1748.43 +51.5503 -3.86196 1968.63 +36.2172 -4.07039 2074.88 +28.5873 -6.42626 3275.77 +2.00584e-13 -6.42649 3275.89 +-28.5873 -6.42626 3275.77 +-57.1723 -6.42551 3275.39 +-85.7531 -6.4243 3274.77 +-114.327 -6.42257 3273.89 +-142.893 -6.42037 3272.77 +-169.197 -6.33345 3228.46 +-155.79 -4.99685 2547.14 +-154.483 -4.33392 2209.21 +-147.354 -3.673 1872.31 +-164.236 -3.68265 1877.23 +-147.583 -3.00679 1532.71 +-171.97 -3.20979 1636.19 +-136.24 -2.34578 1195.76 +-146.95 -2.34784 1196.81 +-169.097 -2.51971 1284.42 +-435.556 -6.07973 3099.13 +-128.269 -1.68371 858.266 +-135.707 -1.68087 856.818 +-151.646 -1.77773 906.197 +-568.924 -6.32964 3226.52 +-597.131 -6.32042 3221.82 +-152.132 -1.53536 782.649 +-155.666 -1.50098 765.124 +-167.078 -1.54201 786.037 +-116.315 -1.02925 524.66 +-119.674 -1.0169 518.364 +-123.866 -1.01214 515.938 +-128.557 -1.01151 515.614 +-134.329 -1.01895 519.41 +-848.072 -6.20903 3165.04 +-875.553 -6.19352 3157.13 +-903.071 -6.17829 3149.37 +-413.754 -2.74019 1396.81 +-958.014 -6.14718 3133.51 +-985.323 -6.13054 3125.03 +-167.889 -1.01365 516.708 +-146.595 -0.859493 438.125 +-150.25 -0.856023 436.356 +-154.987 -0.858595 437.667 +-466.892 -2.51647 1282.77 +-395.034 -2.07273 1056.57 +-395.137 -2.01937 1029.37 +-410.665 -2.04518 1042.53 +-414.465 -2.01244 1025.84 +-420.76 -1.99276 1015.81 +-423.279 -1.95622 997.181 +-412.665 -1.86183 949.063 +-414.505 -1.82638 930.992 +-414.818 -1.78565 910.232 +-417.124 -1.75484 894.524 +-416.261 -1.71204 872.708 +-391.816 -1.57596 803.34 +-434.552 -1.70982 871.575 +-393.746 -1.51598 772.769 +-143.742 -0.54169 276.125 +-145.536 -0.536958 273.713 +-145.343 -0.525137 267.687 +-147.915 -0.523485 266.845 +-151.716 -0.526057 268.156 +-112.35 -0.381748 194.596 +-110.339 -0.367471 187.318 +-111.403 -0.363718 185.405 +-112.285 -0.359455 183.232 +-113.456 -0.356189 181.567 +-115.681 -0.356218 181.582 +-116.498 -0.351922 179.392 +-118.115 -0.350078 178.452 +-119.947 -0.348856 177.829 +-122.4 -0.349376 178.094 +-126.187 -0.353533 180.213 +-489.3 -1.34571 685.973 +-493.034 -1.33125 678.602 +-495.844 -1.31456 670.094 +-499.868 -1.30132 663.346 +-502.593 -1.28493 654.992 +-506.382 -1.27149 648.138 +-509.404 -1.25632 640.407 +-512.707 -1.24206 633.14 +-513.951 -1.2231 623.472 +-532.935 -1.24596 635.126 +-523.65 -1.20278 613.114 +-527.471 -1.19036 606.786 +-164.33 -0.364377 185.741 +-164.74 -0.358925 182.962 +-164.979 -0.353199 180.043 +-164.907 -0.346918 176.841 +-545.59 -1.12787 574.931 +-549.683 -1.11665 569.213 +-552.737 -1.10342 562.468 +-556.634 -1.09198 556.633 +-560.187 -1.07993 550.493 +-563.387 -1.0673 544.055 +-567.751 -1.05694 538.774 +-572.357 -1.04705 533.731 +-572.422 -1.02899 524.527 +-586.861 -1.03661 528.411 +-386.611 -0.671004 342.043 +-387.468 -0.660758 336.82 +-386.134 -0.646965 329.789 +-386.623 -0.636421 324.414 +-384.115 -0.621168 316.639 +-387.33 -0.615308 313.652 +-384.965 -0.600717 306.214 +-385.495 -0.590843 301.181 +-384.697 -0.579085 295.187 +-141.358 -0.208967 106.521 +-142.845 -0.207357 105.7 +-142.225 -0.202713 103.333 +-143.203 -0.200385 102.146 +-141.468 -0.194324 99.0565 +-141.42 -0.190673 97.1951 +-143.092 -0.189342 96.5165 +-146.764 -0.190566 97.1407 +-147.69 -0.188153 95.9107 +-382.478 -0.47801 243.665 +-382.215 -0.468534 238.835 +-381.812 -0.459 233.975 +-383.497 -0.452042 230.428 +-382.305 -0.441776 225.195 +-382.264 -0.432958 220.7 +-382.521 -0.424562 216.42 +-379.935 -0.413146 210.601 +-380.704 -0.405503 206.705 +-380.639 -0.397036 202.389 +-382.39 -0.390506 199.06 +-715.122 -0.714808 364.372 +-737.873 -0.721708 367.889 +-722.9 -0.691677 352.581 +-401.741 -0.37591 191.62 +-405.935 -0.371341 189.291 +-403.932 -0.361123 184.082 +-404.609 -0.353397 180.144 +-405.707 -0.346066 176.407 +-403.549 -0.336042 171.297 +-405.768 -0.329721 168.075 +-406.385 -0.3221 164.19 +-404.639 -0.312685 159.391 +-406.014 -0.305746 155.854 +-406.609 -0.298235 152.025 +-405.383 -0.28945 147.547 +-404.205 -0.280797 143.136 +-406.289 -0.274443 139.897 +-406.262 -0.266666 135.933 +-404.865 -0.258066 131.549 +-404.09 -0.249944 127.409 +-384.435 -0.23057 117.533 +-377.008 -0.219078 111.675 +-380.66 -0.214129 109.152 +-381.019 -0.20729 105.666 +-379.609 -0.199541 101.716 +-380.482 -0.193035 98.3991 +-380.938 -0.186324 94.9783 +-379.419 -0.178696 91.0902 +-376.789 -0.17065 86.9884 +-380.365 -0.165424 84.3247 +-380.206 -0.158539 80.8151 +-380.309 -0.15179 77.3746 +-379.792 -0.144824 73.8239 +-380.716 -0.138424 70.5615 +-378.659 -0.130981 66.7676 +-380.114 -0.124785 63.6092 +-379.766 -0.117997 60.149 +-378.397 -0.110941 56.5518 +-379.075 -0.104513 53.2754 +-377.74 -0.0975588 49.7304 +-379.053 -0.0913035 46.5418 +-377.657 -0.0844111 43.0284 +-378.515 -0.0780452 39.7834 +-378.35 -0.0714685 36.4309 +-378.454 -0.0649545 33.1104 +-378.928 -0.0585039 29.8222 +-377.378 -0.0517684 26.3888 +-145.328 -0.0174373 8.88865 +-379.579 -0.0390249 19.8929 +-378.539 -0.0324226 16.5274 +-379.669 -0.0260095 13.2583 +-3275.18 -0.168246 85.7633 +-144.278 -0.00494043 2.51838 +-144.994 -0.0024823 1.26535 +96.7 0 0 +96.6963 0.00595657 0.843835 +95.7854 0.0118018 1.6719 +96.5669 0.0178494 2.52863 +96.6411 0.0238217 3.3747 +95.7088 0.0294967 4.17864 +95.6687 0.035391 5.01366 +96.5196 0.0416706 5.90324 +96.5642 0.0476637 6.75226 +96.5016 0.0536101 7.59465 +96.4316 0.0595524 8.43647 +96.2548 0.0654225 9.26805 +95.3746 0.070759 10.0241 +96.1778 0.0773505 10.9578 +96.1777 0.0833575 11.8088 +96.071 0.0892791 12.6477 +95.7589 0.0949967 13.4577 +95.6378 0.100892 14.2928 +95.5095 0.106779 15.1268 +96.2615 0.113707 16.1082 +96.1172 0.119632 16.9477 +95.8674 0.12542 17.7676 +95.5123 0.131051 18.5652 +95.5427 0.137211 19.4379 +95.3694 0.143091 20.2709 +96.0675 0.150335 21.2972 +95.9755 0.156406 22.1571 +95.6812 0.162147 22.9704 +95.4771 0.168034 23.8045 +96.1371 0.1755 24.8621 +95.9164 0.181415 25.7001 +95.7849 0.187505 26.5628 +96.3184 0.194955 27.6182 +96.0737 0.20088 28.4576 +95.6305 0.206378 29.2365 +95.3717 0.212261 30.0699 +95.9616 0.22009 31.179 +96.4445 0.227785 32.2691 +95.4028 0.231879 32.849 +95.8666 0.239632 33.9474 +96.3185 0.247459 35.0562 +96.1026 0.25363 35.9304 +95.692 0.259287 36.7318 +96.3913 0.268017 37.9686 +96.8907 0.276325 39.1454 +96.5454 0.282282 39.9894 +96.2848 0.288495 40.8695 +96.7498 0.296948 42.067 +96.4704 0.303183 42.9503 +96.2739 0.309699 43.8734 +96.4311 0.317408 44.9655 +96.3058 0.324247 45.9344 +96.4406 0.332024 47.036 +95.937 0.337637 47.8312 +96.4069 0.346739 49.1206 +95.8859 0.352338 49.9138 +96.2413 0.361213 51.1711 +96.4941 0.369822 52.3907 +96.1207 0.376094 53.2793 +95.5651 0.381653 54.0668 +95.869 0.390702 55.3486 +95.8993 0.398742 56.4876 +95.4027 0.404634 57.3223 +95.581 0.413446 58.5706 +95.9142 0.423058 59.9324 +95.8936 0.431226 61.0895 +95.3568 0.437117 61.924 +95.5633 0.44648 63.2504 +94.9248 0.451955 64.026 +95.8459 0.464981 65.8714 +95.2674 0.470867 66.7052 +95.3329 0.479997 67.9986 +95.464 0.489586 69.357 +95.5786 0.499226 70.7226 +94.8779 0.50467 71.4938 +94.8851 0.513933 72.8061 +94.9553 0.523669 74.1854 +94.9304 0.533013 75.5091 +95.589 0.546392 77.4045 +94.7555 0.551362 78.1085 +95.4491 0.565345 80.0893 +94.9747 0.572578 81.1141 +95.4708 0.585816 82.9894 +94.7429 0.591674 83.8193 +95.4198 0.606462 85.9143 +94.6664 0.612317 86.7436 +95.2223 0.62679 88.794 +95.024 0.636519 90.1722 +94.8809 0.646761 91.6231 +94.791 0.657528 93.1485 +94.3988 0.666338 94.3964 +94.9732 0.682196 96.643 +94.6819 0.692082 98.0436 +94.5799 0.70352 99.6639 +94.3204 0.713964 101.143 +94.4475 0.727552 103.068 +94.2136 0.738592 104.632 +93.9595 0.749653 106.199 +94.0789 0.763933 108.222 +94.2349 0.778827 110.332 +94.3612 0.793792 112.452 +93.8215 0.803392 113.812 +93.7687 0.817368 115.792 +94.1865 0.83582 118.406 +93.5805 0.845483 119.775 +93.6884 0.861852 122.094 +93.4619 0.875483 124.025 +92.376 0.881207 124.836 +98.1014 0.953108 135.022 +115.734 1.1453 162.249 +115.748 1.16685 165.301 +115.264 1.18382 167.706 +115.306 1.20668 170.944 +115.686 1.23374 174.778 +115.681 1.2574 178.13 +115.573 1.28055 181.408 +115.363 1.30319 184.615 +115.159 1.32649 187.917 +115.317 1.35472 191.915 +115.414 1.38305 195.929 +115.2 1.40845 199.527 +115.03 1.43515 203.31 +113.009 1.4391 203.869 +110.796 1.44042 204.056 +108.542 1.44095 204.132 +106.387 1.44258 204.362 +103.782 1.43775 203.679 +101.599 1.43841 203.772 +99.1157 1.43446 203.212 +96.9511 1.43478 203.257 +94.7933 1.43494 203.28 +92.6839 1.43558 203.371 +90.987 1.44253 204.355 +91.4332 1.48433 210.277 +91.3529 1.51914 215.209 +91.1169 1.55276 219.971 +91.2167 1.59365 225.763 +90.819 1.62744 230.551 +90.7029 1.66791 236.283 +90.8438 1.71509 242.967 +90.5327 1.75577 248.731 +90.0945 1.79588 254.413 +90.0196 1.84541 261.429 +89.5434 1.88904 267.61 +89.3368 1.9408 274.943 +89.039 1.99336 282.389 +88.881 2.0521 290.71 +88.7548 2.11502 299.624 +88.5623 2.18012 308.845 +88.4559 2.25147 318.954 +88.3349 2.32706 329.662 +88.1338 2.40554 340.78 +87.7209 2.48347 351.82 +87.3553 2.5684 363.852 +87.0561 2.66172 377.072 +86.7923 2.76347 391.485 +86.2626 2.86467 405.823 +85.9675 2.98263 422.533 +85.616 3.10907 440.445 +85.1951 3.24471 459.661 +84.8619 3.39721 481.264 +84.3558 3.55825 504.078 +85.3037 3.80174 538.573 +90.5333 4.27599 605.757 +85.1183 4.27512 605.633 +81.9443 4.39357 622.413 +80.9822 4.65558 659.531 +80.1818 4.96757 703.729 +78.9922 5.30507 751.541 +77.9705 5.71586 809.735 +76.8365 6.19931 878.223 +79.0711 7.09186 1004.66 +73.0908 7.37816 1045.22 +70.9933 8.1933 1160.7 +68.424 9.21598 1305.58 +64.1685 10.3742 1469.66 +61.273 12.3855 1754.59 +51.5581 13.8982 1968.88 +36.2295 14.651 2075.53 +28.5873 23.1229 3275.7 +2.00584e-13 23.1238 3275.82 +-28.5873 23.1229 3275.7 +-57.1723 23.1202 3275.32 +-85.7531 23.1159 3274.7 +-114.327 23.1096 3273.82 +-142.893 23.1017 3272.7 +-169.349 22.8094 3231.29 +-155.955 17.9987 2549.78 +-154.511 15.597 2209.54 +-147.417 13.2218 1873.06 +-134.804 10.8762 1540.77 +-147.583 10.819 1532.67 +-171.981 11.5502 1636.25 +-136.285 8.4434 1196.13 +-146.974 8.4494 1196.98 +-169.279 9.07614 1285.77 +-455.973 22.9016 3244.34 +-128.151 6.05272 857.456 +-135.707 6.04808 856.799 +-151.514 6.39106 905.387 +-568.924 22.7753 3226.45 +-597.058 22.7393 3221.36 +-152.189 5.52662 782.926 +-155.846 5.40705 765.988 +-167.452 5.56088 787.78 +-116.531 3.71035 525.625 +-119.876 3.6652 519.229 +-123.819 3.64052 515.732 +-128.775 3.64576 516.475 +-134.179 3.66229 518.817 +-848.072 22.3413 3164.97 +-875.553 22.2855 3157.06 +-903.071 22.2307 3149.3 +-414.208 9.87053 1398.31 +-958.014 22.1187 3133.44 +-985.323 22.0589 3124.96 +-168.136 3.65269 517.457 +-146.849 3.09797 438.873 +-150.022 3.07546 435.684 +-154.452 3.07874 436.149 +-467.405 9.06471 1284.15 +-437.899 8.26728 1171.18 +-394.456 7.2535 1027.56 +-411.288 7.37011 1044.08 +-414.689 7.24503 1026.36 +-420.799 7.17098 1015.87 +-423.396 7.04081 997.434 +-413.383 6.71087 950.692 +-414.302 6.56843 930.514 +-414.569 6.42126 909.665 +-425.999 6.44858 913.535 +-417.036 6.17171 874.312 +-393.175 5.69026 806.108 +-393.502 5.57107 789.223 +-436.376 6.04536 856.414 +-144.112 1.95412 276.829 +-145.536 1.93208 273.707 +-145.867 1.89636 268.647 +-148.061 1.88546 267.102 +-152.307 1.90022 269.194 +-112.9 1.38033 195.544 +-110.339 1.32223 187.313 +-110.939 1.30329 184.629 +-112.389 1.2946 183.398 +-113.456 1.28164 181.562 +-115.466 1.27936 181.24 +-116.825 1.26983 179.891 +-118.501 1.26376 179.031 +-119.947 1.25525 177.825 +-122.4 1.25712 178.09 +-126.129 1.27151 180.128 +-489.591 4.84499 686.364 +-493.034 4.79009 678.586 +-496.618 4.73741 671.123 +-499.567 4.67958 662.93 +-503.141 4.62847 655.691 +-505.827 4.57005 647.414 +-509.964 4.52546 641.097 +-513.274 4.47412 633.824 +-513.824 4.39985 623.302 +-533.128 4.48483 635.341 +-524.17 4.33212 613.709 +-526.881 4.27836 606.092 +-162.872 1.29947 184.088 +-163.803 1.28414 181.917 +-163.56 1.25995 178.491 +-167.362 1.26686 179.47 +-546.003 4.06137 575.353 +-549.683 4.01794 569.2 +-553.368 3.97486 563.097 +-556.634 3.92914 556.62 +-560.187 3.8858 550.48 +-563.962 3.84428 544.598 +-566.808 3.79676 537.867 +-573.82 3.77711 535.083 +-572.127 3.70061 524.245 +-586.564 3.72804 528.132 +-386.162 2.4116 341.638 +-386.789 2.37336 336.222 +-388.796 2.34395 332.055 +-384.631 2.27817 322.736 +-386.121 2.24676 318.286 +-385.931 2.20601 312.513 +-385.121 2.16237 306.331 +-385.022 2.12336 300.805 +-384.697 2.08366 295.181 +-141.358 0.751905 106.518 +-142.765 0.745693 105.638 +-142.468 0.730644 103.506 +-143.122 0.720614 102.085 +-142.287 0.703265 99.6277 +-141.42 0.686077 97.1929 +-143.009 0.680893 96.4584 +-147.014 0.686862 97.3041 +-147.606 0.676627 95.8541 +-382.478 1.71997 243.659 +-381.028 1.68064 238.087 +-382.58 1.65489 234.439 +-381.097 1.61636 228.98 +-381.788 1.58744 224.884 +-383.043 1.56104 221.144 +-381.042 1.52175 215.578 +-380.722 1.48966 211.033 +-380.616 1.45874 206.652 +-380.55 1.42828 202.337 +-382.745 1.40642 199.24 +-715.567 2.57362 364.591 +-737.515 2.59559 367.703 +-722.541 2.48755 352.398 +-404.9 1.36324 193.122 +-403.398 1.3278 188.102 +-403.932 1.29939 184.077 +-405.249 1.2736 180.424 +-403.782 1.2393 175.565 +-404.286 1.21135 171.605 +-405.768 1.1864 168.071 +-405.457 1.15633 163.811 +-405.011 1.12614 159.534 +-404.894 1.0971 155.42 +-405.766 1.07088 151.706 +-407.075 1.04585 148.159 +-405.807 1.01437 143.7 +-404.209 0.982437 139.177 +-405.124 0.956835 135.55 +-405.055 0.929002 131.607 +-404.853 0.90105 127.647 +-385.2 0.831288 117.764 +-379.501 0.793495 112.41 +-379.794 0.768726 108.901 +-380.345 0.74455 105.476 +-381.058 0.720727 102.101 +-380.772 0.695107 98.472 +-380.938 0.67043 94.9761 +-380.391 0.644632 91.3215 +-380.784 0.620541 87.9087 +-379.291 0.593548 84.0847 +-379.619 0.569574 80.6885 +-380.309 0.546169 77.3728 +-379.203 0.520297 73.7077 +-379.34 0.496276 70.3047 +-379.545 0.4724 66.9223 +-379.227 0.447954 63.4592 +-379.569 0.424357 60.1163 +-380.672 0.401585 56.8904 +-379.966 0.376942 53.3994 +-378.137 0.351404 49.7815 +-378.557 0.328098 46.4798 +-378.948 0.304767 43.1746 +-379.311 0.281413 39.8662 +-378.748 0.257428 36.4684 +-379.052 0.234088 33.162 +-378.43 0.210231 29.7824 +-378.476 0.186814 26.4649 +-143.931 0.0621396 8.80298 +-377.782 0.139754 19.7982 +-379.439 0.11694 16.5662 +-379.569 0.0935623 13.2545 +-148.449 0.0274393 3.88718 +-144.678 0.0178259 2.5253 +-143.495 0.00883939 1.25223 +95.8 0 0 +95.7964 0.0134425 0.835894 +95.7854 0.026884 1.67172 +96.5669 0.0406602 2.52836 +95.7416 0.0537599 3.34294 +96.608 0.0678234 4.21744 +95.6687 0.0806193 5.01313 +96.5196 0.0949238 5.90263 +95.6664 0.107567 6.68879 +96.5016 0.122122 7.59386 +96.332 0.135518 8.42687 +96.2548 0.14903 9.26708 +96.2697 0.162699 10.1171 +96.1778 0.176201 10.9567 +96.0785 0.18969 11.7955 +95.9719 0.203163 12.6333 +95.7589 0.216399 13.4563 +96.5279 0.231967 14.4243 +96.2996 0.245252 15.2504 +96.2615 0.259019 16.1065 +96.0188 0.272238 16.9285 +95.6707 0.285115 17.7292 +95.7087 0.299142 18.6015 +95.3467 0.311919 19.396 +96.3475 0.329298 20.4767 +96.0675 0.342457 21.2949 +95.9755 0.356286 22.1548 +95.7784 0.36974 22.9914 +96.4474 0.386665 24.0439 +96.1371 0.399781 24.8595 +96.7858 0.417002 25.9303 +95.6885 0.4267 26.5334 +96.9913 0.447201 27.8082 +96.0737 0.457597 28.4546 +96.4911 0.474352 29.4965 +96.4208 0.488841 30.3975 +96.8176 0.505829 31.4538 +95.591 0.514293 31.9802 +96.9157 0.536586 33.3664 +95.9609 0.546407 33.9771 +96.3185 0.563702 35.0526 +96.0089 0.577196 35.8917 +96.7189 0.596984 37.1221 +96.3913 0.610532 37.9646 +96.8907 0.629456 39.1413 +96.5454 0.643028 39.9852 +97.2053 0.663461 41.2559 +96.7498 0.676434 42.0626 +97.3839 0.697179 43.3525 +96.0919 0.704149 43.7859 +97.1562 0.728479 45.2988 +96.0351 0.736546 45.8005 +97.1596 0.761976 47.3818 +96.0265 0.769841 47.8708 +97.1197 0.795696 49.4786 +95.8859 0.802611 49.9085 +96.9476 0.828869 51.5413 +95.7911 0.836302 52.0036 +96.8204 0.862964 53.6615 +96.3484 0.876517 54.5043 +97.0814 0.901259 56.0428 +95.3823 0.903421 56.1772 +96.8599 0.935818 58.1918 +95.6662 0.942652 58.6167 +96.3383 0.96797 60.191 +95.2189 0.975403 60.6533 +96.7826 1.01062 62.8432 +95.5633 1.01706 63.2438 +96.3342 1.04482 64.9698 +95.1866 1.05192 65.4114 +96.7419 1.08922 67.7306 +95.9842 1.10088 68.456 +96.8393 1.13132 70.3488 +95.4982 1.13626 70.6558 +96.2356 1.16607 72.5093 +94.9644 1.1717 72.8593 +96.9253 1.21765 75.7166 +95.5565 1.22219 75.9992 +96.2884 1.25377 77.9627 +95.6814 1.26825 78.8635 +96.9046 1.30747 81.3021 +94.9747 1.30431 81.1056 +96.8292 1.35345 84.1615 +95.417 1.3574 84.4069 +96.6831 1.39979 87.0426 +95.2562 1.40352 87.275 +96.5387 1.44754 90.0122 +95.024 1.44996 90.1627 +96.2477 1.49452 92.9333 +94.7197 1.4967 93.0688 +96.5201 1.552 96.5076 +94.4125 1.54484 96.0624 +95.9323 1.59736 99.328 +95.1994 1.61308 100.306 +96.0936 1.65697 103.035 +94.4475 1.65734 103.058 +96.0202 1.71474 106.627 +94.4896 1.71731 106.787 +95.719 1.77055 110.098 +94.17 1.77291 110.245 +95.9682 1.83902 114.355 +93.9488 1.83257 113.954 +95.7826 1.90192 118.267 +94.062 1.90144 118.237 +96.1663 1.97918 123.071 +93.6884 1.96326 122.081 +100.503 2.14456 133.355 +92.8518 2.01769 125.466 +118.556 2.62384 163.158 +115.676 2.60765 162.151 +118.157 2.71334 168.723 +115.773 2.70862 168.429 +118.437 2.82341 175.567 +115.796 2.8131 174.926 +118.568 2.93579 182.555 +115.681 2.91976 181.559 +118.596 3.05179 189.768 +115.211 3.02307 187.983 +118.613 3.1742 197.38 +115.465 3.15193 195.996 +117.05 3.25992 202.711 +115.03 3.26921 203.289 +112.136 3.25289 202.274 +110.796 3.28121 204.035 +107.368 3.24694 201.904 +106.387 3.28613 204.341 +103.056 3.25222 202.232 +101.688 3.27952 203.93 +98.3266 3.24164 201.574 +96.9942 3.26981 203.326 +94.5397 3.25998 202.715 +92.6839 3.27019 203.35 +95.095 3.43438 213.559 +91.4332 3.38124 210.255 +94.7914 3.59079 223.285 +91.1169 3.53711 219.948 +95.1126 3.78532 235.382 +90.8923 3.71026 230.714 +94.8242 3.97205 246.993 +90.5286 3.89334 242.099 +94.466 4.17333 259.509 +90.0945 4.09094 254.386 +94.1543 4.39686 273.409 +89.7338 4.31231 268.151 +94.1266 4.65812 289.655 +89.1292 4.5454 282.645 +93.939 4.94062 307.221 +88.8116 4.82102 299.784 +94.1577 5.27999 328.325 +88.3757 5.12412 318.632 +93.5631 5.61469 349.137 +88.1588 5.48128 340.841 +93.5028 6.03014 374.971 +87.4019 5.85384 364.008 +93.3097 6.49886 404.117 +86.5758 6.27935 390.468 +93.1444 7.04622 438.153 +85.9076 6.78959 422.195 +93.1911 7.70897 479.365 +85.3227 7.40238 460.3 +94.4472 8.6128 535.568 +84.5044 8.11982 504.913 +95.6753 9.71317 603.992 +90.5185 9.73895 605.595 +92.5919 10.5936 658.74 +81.9313 10.0068 622.25 +91.9748 12.0448 748.978 +79.9781 11.2872 701.868 +92.0687 14.0853 875.862 +78.0568 13.0349 810.546 +91.1736 16.7568 1041.99 +79.0711 16.155 1004.56 +91.1926 20.9697 1303.95 +70.9079 18.6415 1159.18 +92.2474 28.3029 1759.95 +64.4782 23.7461 1476.6 +72.4479 33.3593 2074.37 +51.6 31.6851 1970.27 +57.1723 52.667 3274.98 +28.5873 52.6731 3275.36 +2.00584e-13 52.675 3275.48 +-28.5873 52.6731 3275.36 +-57.1723 52.667 3274.98 +-85.7531 52.657 3274.36 +-113.012 52.0371 3235.81 +-142.893 52.6248 3272.36 +-115.95 35.5754 2212.17 +-156.046 41.0242 2551 +-131.393 30.2136 1878.77 +-147.44 30.1236 1873.17 +-142.883 26.2605 1632.95 +-147.67 24.6598 1533.41 +-126.093 19.2905 1199.53 +-136.285 19.2337 1196.01 +-137.566 18.0154 1120.25 +-169.214 20.6672 1285.14 +-120.733 13.8133 858.947 +-128.18 13.791 857.564 +-512.526 52.0328 3235.54 +-151.662 14.5729 906.181 +-138.641 12.6429 786.169 +-597.058 51.7993 3221.02 +-153.83 12.7252 791.286 +-155.826 12.3155 765.81 +-110.817 8.38312 521.286 +-116.488 8.44889 525.375 +-119.741 8.33977 518.59 +-123.889 8.29764 515.97 +-792.705 51.1228 3178.96 +-134.504 8.3628 520.022 +-847.969 50.8863 3164.25 +-875.553 50.7654 3156.73 +-903.181 50.6469 3149.36 +-414.35 22.4924 1398.64 +-159.255 8.37582 520.832 +-985.323 50.2492 3124.64 +-142.457 7.04987 438.38 +-146.595 7.04487 438.069 +-445.052 20.7831 1292.35 +-154.82 7.02993 437.14 +-412.442 18.221 1133.03 +-438.109 18.8417 1171.63 +-396.928 16.6267 1033.9 +-410.885 16.7724 1042.96 +-406.373 16.173 1005.68 +-420.914 16.3397 1016.05 +-398.976 15.1136 939.806 +-412.984 15.2723 949.676 +-411.902 14.8759 925.027 +-415.647 14.6654 911.936 +-417.462 14.3952 895.135 +-429.736 14.487 900.845 +-378.621 12.4824 776.188 +-434.82 14.0232 872.001 +-140.374 4.4299 275.463 +-144.112 4.4514 276.8 +-143.705 4.34582 270.235 +-145.867 4.31984 268.619 +-108.84 3.15725 196.327 +-151.913 4.31744 268.47 +-107.7 2.99951 186.518 +-110.39 3.01337 187.38 +-110.579 2.95918 184.01 +-112.285 2.94629 183.208 +-113.403 2.91815 181.459 +-115.519 2.91569 181.306 +-117.206 2.90207 180.459 +-118.225 2.8721 178.595 +-123.022 2.93272 182.364 +-122.4 2.86367 178.071 +-480.6 11.0365 686.278 +-489.126 11.0262 685.641 +-487.685 10.7933 671.154 +-496.32 10.7852 670.651 +-495.173 10.5661 657.032 +-503.141 10.5435 655.622 +-501.949 10.3305 642.382 +-508.906 10.2874 639.699 +-522.336 10.3718 644.948 +-514.015 10.0264 623.469 +-517.058 9.90831 616.126 +-523.585 9.85739 612.96 +-160.406 2.96709 184.502 +-164.595 2.99146 186.017 +-164.205 2.9324 182.344 +-164.506 2.88671 179.504 +-539.938 9.31027 578.938 +-546.003 9.25164 575.293 +-546.835 9.10527 566.191 +-553.368 9.05457 563.038 +-553.806 8.90495 553.734 +-560.187 8.8517 550.423 +-562.308 8.73142 542.944 +-567.388 8.65773 538.361 +-384.838 5.77044 358.822 +-573.159 8.44504 525.136 +-578.613 8.3772 520.918 +-389.232 5.53722 344.319 +-378.94 5.29672 329.364 +-385.45 5.29347 329.162 +-376.664 5.08209 316.018 +-383.575 5.08426 316.153 +-380.102 4.9493 307.761 +-386.53 4.94382 307.42 +-139.951 1.75815 109.327 +-383.904 4.73671 294.542 +-140.4 1.7012 105.785 +-142.685 1.69769 105.567 +-139.717 1.63225 101.498 +-143.203 1.64246 102.133 +-141.058 1.58818 98.7571 +-141.338 1.56195 97.1261 +-146.905 1.59331 99.0762 +-146.514 1.55932 96.9628 +-378.66 3.95404 245.873 +-380.96 3.90247 242.667 +-378.993 3.80797 236.79 +-381.045 3.75465 233.475 +-378.268 3.65466 227.257 +-382.219 3.62021 225.115 +-376.981 3.49971 217.622 +-381.129 3.46727 215.604 +-378.186 3.37079 209.605 +-381.055 3.32679 206.869 +-709.448 6.06553 377.171 +-381.149 3.19039 198.387 +-717.171 5.87574 365.37 +-737.694 5.91407 367.753 +-403.289 3.1628 196.672 +-403.456 3.09432 192.413 +-402.944 3.02128 187.872 +-401.475 2.94196 182.939 +-400.042 2.86393 178.087 +-403.598 2.82178 175.466 +-403.457 2.75374 171.235 +-405.86 2.70318 168.091 +-400.914 2.60457 161.959 +-405.662 2.56943 159.774 +-403.213 2.48878 154.759 +-405.673 2.43887 151.655 +-403.316 2.3604 146.776 +-405.147 2.30693 143.451 +-403.075 2.23168 138.772 +-405.883 2.1837 135.788 +-381.374 1.99251 123.9 +-403.995 2.0482 127.363 +-379.27 1.8645 115.94 +-380.747 1.81348 112.767 +-377.391 1.74005 108.201 +-380.441 1.69649 105.492 +-378.933 1.63264 101.522 +-381.45 1.58624 98.6369 +-378.318 1.51671 94.3131 +-379.516 1.46507 91.1019 +-377.666 1.40199 87.1797 +-379.974 1.35451 84.2274 +-378.25 1.29279 80.3891 +-380.015 1.24319 77.3049 +-377.828 1.18092 73.4329 +-381.601 1.13724 70.7165 +-376.787 1.06829 66.4292 +-379.227 1.02042 63.4526 +-378.976 0.965157 60.0161 +-379.288 0.911468 56.6776 +-377.688 0.853512 53.0737 +-377.74 0.799644 49.7241 +-378.557 0.747393 46.475 +-378.551 0.693517 43.1248 +-378.714 0.640037 39.7993 +-378.748 0.58641 36.4646 +-378.654 0.532682 33.1236 +-378.43 0.478899 29.7792 +-377.778 0.42477 26.4134 +-143.831 0.141453 8.79595 +-378.381 0.318859 19.8275 +-378.34 0.265613 16.5166 +-145.511 0.0817061 5.08071 +-148.749 0.0626319 3.89463 +-144.878 0.0406628 2.52852 +-144.095 0.0202199 1.25733 +95.8 0 0 +96.0963 0.0210486 0.838356 +95.7854 0.0419641 1.67141 +96.0671 0.0631391 2.51481 +95.7416 0.0839154 3.34232 +96.9077 0.106196 4.22975 +95.6687 0.125841 5.0122 +97.0187 0.148936 5.93205 +95.6664 0.167904 6.68754 +96.9004 0.191411 7.62382 +96.332 0.211534 8.4253 +95.8567 0.231663 9.22704 +96.2697 0.253962 10.1152 +96.5752 0.276175 10.9999 +96.0785 0.296093 11.7933 +96.3684 0.318434 12.6831 +95.7589 0.337783 13.4538 +95.9345 0.359857 14.333 +96.2996 0.382821 15.2476 +96.4587 0.405141 16.1366 +96.0188 0.424944 16.9254 +96.1623 0.44733 17.817 +95.7087 0.46694 18.598 +95.8366 0.489386 19.4921 +96.3475 0.514011 20.4728 +96.3604 0.536181 21.3559 +95.9755 0.556137 22.1507 +96.848 0.583583 23.2439 +96.4474 0.603557 24.0394 +96.4275 0.625915 24.9299 +96.7858 0.650911 25.9255 +95.8812 0.667388 26.5818 +96.9913 0.698049 27.803 +96.2655 0.715702 28.5061 +96.4911 0.740429 29.491 +96.3254 0.76229 30.3617 +96.8176 0.789563 31.448 +95.9704 0.80596 32.1011 +96.9157 0.837572 33.3602 +96.2437 0.855418 34.071 +96.3185 0.8799 35.0461 +96.2899 0.903598 35.99 +96.7189 0.93185 37.1152 +96.5773 0.954838 38.0308 +96.8907 0.982537 39.1341 +96.8226 1.0066 40.0926 +97.2053 1.03562 41.2482 +97.1167 1.05987 42.2142 +97.3839 1.08825 43.3444 +96.4559 1.10329 43.9437 +97.1562 1.1371 45.2904 +96.4864 1.1551 46.0071 +97.1596 1.18939 47.373 +96.2949 1.20503 47.9958 +97.1197 1.24203 49.4694 +96.2407 1.25745 50.0839 +96.9476 1.29381 51.5318 +95.9668 1.3078 52.0893 +96.8204 1.34703 53.6515 +96.5224 1.37065 54.5926 +97.0814 1.4068 56.0323 +96.1578 1.42164 56.6235 +96.8599 1.46075 58.181 +95.8368 1.47404 58.7103 +96.3383 1.51093 60.1798 +96.231 1.53872 61.2866 +96.7826 1.57751 62.8315 +95.6467 1.58895 63.2873 +96.3342 1.63089 64.9577 +95.3514 1.64482 65.5126 +96.7419 1.70019 67.7181 +95.5772 1.71111 68.153 +96.8393 1.76592 70.3357 +95.7394 1.7781 70.8211 +96.2356 1.82015 72.4959 +95.7577 1.84421 73.4544 +96.9253 1.90066 75.7025 +95.2434 1.9015 75.7361 +96.2884 1.95704 77.9482 +95.0641 1.96688 78.3401 +96.9046 2.04087 81.287 +95.6591 2.05061 81.6749 +96.8292 2.11265 84.1459 +95.5667 2.12213 84.5237 +96.6831 2.18497 87.0265 +95.4037 2.19419 87.3939 +96.5387 2.25951 89.9954 +95.1691 2.26675 90.2836 +96.2477 2.33284 92.916 +94.791 2.338 93.1215 +96.5201 2.42256 96.4897 +94.5527 2.41497 96.1872 +95.9323 2.49336 99.3095 +94.6488 2.50335 99.7076 +96.0936 2.58641 103.016 +94.6502 2.59256 103.26 +96.0202 2.67659 106.607 +94.5559 2.68248 106.842 +95.719 2.76371 110.077 +94.2999 2.77121 110.376 +95.9682 2.87058 114.334 +94.0124 2.86244 114.01 +95.7826 2.96876 118.245 +93.7507 2.9582 117.824 +96.1663 3.08937 123.048 +93.871 3.07049 122.296 +100.503 3.34751 133.33 +93.0303 3.15553 125.683 +118.556 4.09564 163.128 +115.792 4.07445 162.284 +118.157 4.23534 168.692 +115.377 4.2135 167.822 +118.437 4.40714 175.535 +115.631 4.38478 174.644 +118.568 4.58256 182.521 +115.519 4.55118 181.272 +118.596 4.76362 189.733 +115.263 4.72093 188.033 +118.613 4.9547 197.344 +115.11 4.90478 195.355 +117.05 5.0885 202.673 +115.67 5.13142 204.383 +112.136 5.07754 202.236 +111.273 5.1438 204.875 +107.368 5.06825 201.866 +106.525 5.13609 204.569 +103.056 5.07648 202.194 +102.135 5.14154 204.785 +98.3266 5.05997 201.536 +97.3816 5.12435 204.101 +94.5397 5.0886 202.677 +93.0986 5.12738 204.222 +95.095 5.36083 213.52 +91.2737 5.26866 209.849 +94.7914 5.60497 223.244 +91.1935 5.5258 220.091 +95.1126 5.90861 235.338 +91.1855 5.81013 231.415 +94.8242 6.20009 246.947 +90.6337 6.08428 242.335 +94.466 6.51428 259.461 +90.3949 6.40696 255.187 +94.1543 6.86318 273.358 +89.5751 6.71931 267.628 +94.1266 7.27099 289.601 +88.9187 7.07828 281.925 +93.939 7.71196 307.164 +88.7832 7.52286 299.633 +94.1577 8.2417 328.264 +88.3223 7.99354 318.38 +93.5631 8.76413 349.072 +87.9585 8.53643 340.003 +93.5028 9.41262 374.901 +87.2385 9.12036 363.261 +93.3097 10.1443 404.042 +86.7057 9.81633 390.981 +93.1444 10.9986 438.072 +85.808 10.5858 421.627 +93.1911 12.0332 479.276 +85.0493 11.5176 458.74 +94.4472 13.444 535.468 +84.2898 12.6423 503.537 +95.6753 15.1616 603.88 +90.888 15.2639 607.954 +92.5919 16.5359 658.617 +81.6833 15.5726 620.251 +91.9748 18.8011 748.839 +77.5442 17.0823 680.383 +92.0687 21.9861 875.699 +75.3827 19.6495 782.632 +91.1736 26.1562 1041.79 +77.7059 24.7815 987.036 +91.1926 32.7322 1303.71 +70.7064 29.0155 1155.68 +92.2474 44.1788 1759.63 +64.4738 37.0635 1476.22 +72.4479 52.0715 2073.99 +51.7518 49.6037 1975.7 +57.1723 82.2094 3274.37 +17.2375 49.5761 1974.6 +2.00584e-13 82.2219 3274.87 +-17.2384 49.5786 1974.7 +-57.1723 82.2094 3274.37 +-51.7309 49.5837 1974.9 +-113.012 81.2263 3235.21 +-86.2137 49.5611 1974 +-115.95 55.5306 2211.76 +-120.778 49.5633 1974.09 +-131.393 47.1613 1878.42 +-148.139 47.2434 1881.69 +-142.883 40.9907 1632.65 +-148.12 38.6096 1537.81 +-126.093 30.1111 1199.31 +-136.851 30.1472 1200.75 +-137.566 28.1207 1120.04 +-170.076 32.4242 1291.44 +-120.733 21.5615 858.787 +-128.712 21.6162 860.964 +-512.526 81.2195 3234.94 +-152.983 22.9452 913.9 +-138.641 19.7346 786.023 +-597.058 80.855 3220.43 +-153.83 19.8631 791.139 +-156.384 19.2925 768.411 +-110.817 13.0855 521.189 +-116.834 13.2273 526.839 +-119.741 13.0178 518.494 +-124.31 12.996 517.624 +-792.705 79.7991 3178.37 +-135.105 13.112 522.247 +-847.969 79.4299 3163.66 +-875.553 79.2412 3156.15 +-903.181 79.0562 3148.78 +-415.685 35.2222 1402.89 +-159.255 13.0741 520.735 +-985.323 78.4355 3124.06 +-142.457 11.0043 438.299 +-146.69 11.0037 438.272 +-445.052 32.441 1292.11 +-1093.65 77.5154 3087.41 +-412.442 28.4417 1132.82 +-439.755 29.521 1175.81 +-396.928 25.9532 1033.7 +-411.508 26.2202 1044.34 +-406.373 25.2449 1005.49 +-421.87 25.5629 1018.16 +-398.976 23.5913 939.632 +-413.303 23.8575 950.234 +-411.902 23.2203 924.856 +-416.062 22.9145 912.676 +-417.462 22.4699 894.969 +-432.534 22.7605 906.541 +-378.621 19.4841 776.043 +-436.872 21.9925 875.954 +-140.374 6.91476 275.412 +-144.296 6.95723 277.104 +-143.705 6.78352 270.185 +-146.201 6.75842 269.185 +-108.84 4.92825 196.29 +-152.06 6.74577 268.681 +-107.7 4.68202 186.483 +-110.542 4.71016 187.604 +-110.579 4.61908 183.976 +-112.337 4.60111 183.26 +-113.403 4.55502 181.425 +-115.251 4.54059 180.85 +-117.206 4.52992 180.425 +-118.722 4.50199 179.312 +-123.022 4.57776 182.331 +-122.854 4.48653 178.697 +-480.6 17.2272 686.151 +-491.1 17.2806 688.28 +-487.685 16.8475 671.03 +-497.093 16.8611 671.571 +-495.173 16.493 656.91 +-504.663 16.5074 657.483 +-501.949 16.1253 642.263 +-511.396 16.1365 642.71 +-522.336 16.1897 644.828 +-515.16 15.6854 624.742 +-517.058 15.4662 616.012 +-525.079 15.4306 614.594 +-160.406 4.63143 184.468 +-161.149 4.57169 182.089 +-164.205 4.57726 182.311 +-165.79 4.54112 180.871 +-539.938 14.5327 578.831 +-547.104 14.4703 576.346 +-546.835 14.2127 566.086 +-554.84 14.1711 564.431 +-553.806 13.9 553.632 +-561.685 13.8538 551.792 +-562.308 13.6291 542.843 +-568.839 13.5487 539.638 +-384.838 9.00724 358.755 +-577.657 13.2855 529.158 +-578.613 13.0762 520.821 +-584.635 12.9823 517.078 +-378.94 8.2678 329.303 +-388.567 8.32957 331.763 +-376.664 7.93278 315.959 +-383.42 7.93298 315.967 +-380.102 7.72551 307.704 +-384.026 7.66695 305.372 +-139.951 2.74435 109.307 +-385.728 7.42881 295.887 +-140.4 2.65545 105.766 +-143.569 2.6664 106.202 +-139.717 2.54783 101.479 +-143.203 2.56377 102.114 +-141.058 2.47903 98.7388 +-141.585 2.44235 97.2779 +-146.905 2.48704 99.0578 +-148.432 2.46585 98.2138 +-378.66 6.17198 245.828 +-381.129 6.0942 242.73 +-378.993 5.94398 236.746 +-381.727 5.87124 233.849 +-378.268 5.70466 227.214 +-382.477 5.65471 225.225 +-376.981 5.46281 217.581 +-382.434 5.4307 216.303 +-378.186 5.26156 209.566 +-382.725 5.21566 207.738 +-709.448 9.46786 377.101 +-383.543 5.01127 199.597 +-717.171 9.17162 365.302 +-730.893 9.14634 364.295 +-403.289 4.93691 196.635 +-403.726 4.83327 192.507 +-402.944 4.71601 187.837 +-406.753 4.65256 185.31 +-400.042 4.47039 178.054 +-404.24 4.41163 175.714 +-403.457 4.29839 171.203 +-405.214 4.21275 167.792 +-400.914 4.06554 161.929 +-405.197 4.00608 159.561 +-403.213 3.8848 154.73 +-405.86 3.80865 151.697 +-403.316 3.68441 146.749 +-405.996 3.60851 143.726 +-403.075 3.4835 138.746 +-407.684 3.42373 136.366 +-381.374 3.11017 123.877 +-400.37 3.1684 126.196 +-379.27 2.91036 115.918 +-379.213 2.81932 112.293 +-377.391 2.71609 108.181 +-382.079 2.65949 105.927 +-378.933 2.54843 101.503 +-381.741 2.4779 98.6937 +-378.318 2.36747 94.2956 +-380.586 2.29331 91.3417 +-377.666 2.18841 87.1635 +-378.998 2.10887 83.9954 +-378.25 2.01795 80.3742 +-379.917 1.94003 77.2705 +-377.828 1.84333 73.4193 +-380.323 1.7692 70.4665 +-376.787 1.66752 66.4169 +-379.917 1.5957 63.5563 +-378.976 1.50654 60.005 +-378.694 1.42051 56.5784 +-377.688 1.33227 53.0639 +-379.922 1.25539 50.0018 +-378.557 1.16663 46.4664 +-379.147 1.08424 43.1847 +-378.714 0.999052 39.7919 +-378.45 0.914624 36.4291 +-378.654 0.831478 33.1175 +-379.925 0.750481 29.8914 +-377.778 0.663036 26.4085 +-378.493 0.581033 23.1423 +-378.381 0.497716 19.8239 +-377.94 0.414164 16.496 +-145.511 0.127538 5.07977 +-144.75 0.0951359 3.78923 +-144.878 0.0634717 2.52805 +-144.794 0.0317151 1.2632 +95.9 0 0 +95.8963 0.0285512 0.836388 +95.9854 0.0571598 1.67445 +96.7668 0.0864488 2.53245 +96.841 0.115374 3.37979 +95.8087 0.142713 4.18066 +95.8684 0.17141 5.02133 +96.7193 0.201819 5.91216 +96.664 0.230607 6.75547 +96.6013 0.259377 7.59826 +96.6309 0.288425 8.44919 +96.4539 0.316855 9.28204 +96.4686 0.345917 10.1334 +96.2771 0.374237 10.963 +96.277 0.403301 11.8144 +96.1702 0.431949 12.6536 +95.957 0.460091 13.478 +95.8356 0.48864 14.3144 +96.5959 0.521958 15.2904 +96.3601 0.550135 16.1158 +96.1172 0.57821 16.9382 +95.9657 0.606803 17.7758 +95.8068 0.635351 18.6122 +95.6407 0.663849 19.447 +96.3475 0.698682 20.4674 +95.3841 0.721434 21.1339 +96.0729 0.75671 22.1673 +95.8757 0.785283 23.0043 +95.5741 0.812972 23.8154 +95.4594 0.842251 24.6731 +96.1096 0.878585 25.7375 +95.8812 0.907164 26.5747 +96.5107 0.94414 27.6579 +95.9779 0.969928 28.4133 +95.9174 1.00046 29.3078 +96.3254 1.03616 30.3536 +96.0567 1.0648 31.1925 +95.9704 1.09552 32.0925 +96.3483 1.13183 33.1561 +96.0552 1.16047 33.9951 +96.5064 1.19836 35.1051 +96.1962 1.22704 35.9454 +95.7854 1.25442 36.7472 +97.3217 1.30789 38.3137 +96.9834 1.33681 39.161 +96.6378 1.36564 40.0054 +96.3769 1.39569 40.8857 +96.1079 1.42569 41.7646 +96.5618 1.46674 42.9671 +96.3649 1.49826 43.8904 +95.7967 1.52401 44.6448 +96.3961 1.56863 45.9518 +96.5305 1.60624 47.0537 +96.2949 1.63796 47.983 +96.496 1.67741 49.1386 +96.0633 1.70608 49.9783 +96.3296 1.74742 51.1895 +95.9668 1.77766 52.0754 +96.2082 1.8194 53.2981 +95.7391 1.84797 54.1351 +95.9556 1.89005 55.3677 +96.1578 1.9324 56.6083 +96.3456 1.97501 57.8566 +95.6662 2.00006 58.5902 +95.3206 2.03208 59.5282 +95.5563 2.07688 60.8406 +95.4407 2.11454 61.9438 +95.6467 2.15982 63.2703 +95.8367 2.20538 64.6051 +96.0107 2.25122 65.9479 +95.3493 2.27776 66.7254 +95.5772 2.32587 68.1348 +95.6258 2.37028 69.4358 +95.5786 2.41287 70.6832 +95.7564 2.46176 72.1156 +95.6784 2.50472 73.3739 +95.6645 2.54991 74.6978 +95.713 2.59741 76.0892 +95.7444 2.64513 77.4872 +95.6814 2.69089 78.8278 +95.679 2.73901 80.2375 +94.9747 2.7674 81.0689 +94.9425 2.81571 82.4842 +95.4919 2.8823 84.4349 +95.4198 2.93117 85.8664 +95.33 2.9802 87.3029 +95.2954 3.03174 88.8127 +94.9515 3.07409 90.0531 +94.9529 3.12831 91.6415 +94.791 3.17798 93.0966 +94.6816 3.2302 94.6265 +95.1134 3.30207 96.7318 +94.8903 3.35235 98.2046 +94.6488 3.40274 99.6809 +94.866 3.4707 101.672 +94.5826 3.52147 103.159 +94.9496 3.59765 105.391 +94.5559 3.64623 106.814 +94.1445 3.69485 108.238 +94.105 3.75906 110.119 +93.847 3.81566 111.777 +94.0124 3.89085 113.98 +94.1463 3.96642 116.193 +93.6885 4.01834 117.714 +93.8884 4.09985 120.102 +93.871 4.17364 122.264 +94.1841 4.26408 124.913 +92.6734 4.27278 125.168 +95.4563 4.48236 131.308 +115.85 5.54106 162.321 +115.69 5.63683 165.127 +115.377 5.7273 167.777 +115.641 5.8491 171.345 +115.631 5.96012 174.597 +115.518 6.06871 177.778 +115.466 6.18344 181.139 +115.257 6.29279 184.343 +115.211 6.41414 187.898 +114.905 6.52423 191.123 +115.059 6.66401 195.217 +115.25 6.8103 199.503 +115.621 6.97204 204.241 +113.639 6.99425 204.892 +111.703 7.01882 205.611 +109.058 6.9976 204.99 +106.802 6.99954 205.047 +104.327 6.98545 204.634 +102.135 6.98876 204.731 +99.9925 6.99439 204.896 +97.726 6.99002 204.768 +95.2159 6.96628 204.072 +93.0572 6.96642 204.076 +90.987 6.97204 204.241 +91.5528 7.18346 210.434 +91.392 7.34548 215.181 +91.1935 7.51109 220.032 +91.2167 7.70244 225.638 +90.929 7.87535 230.703 +91.0613 8.09321 237.085 +90.5986 8.267 242.176 +90.2933 8.46358 247.935 +90.2614 8.69595 254.742 +89.9219 8.90959 261 +89.7972 9.15605 268.22 +89.4604 9.39333 275.171 +89.1893 9.6506 282.707 +89.0272 9.93455 291.025 +89.0104 10.2518 300.319 +88.5072 10.5304 308.481 +88.2688 10.8588 318.102 +88.1796 11.2274 328.899 +88.1838 11.6331 340.784 +87.2854 11.9436 349.879 +87.0751 12.3738 362.483 +86.8536 12.8348 375.985 +86.6624 13.3364 390.681 +86.2418 13.8423 405.5 +85.9675 14.4157 422.298 +85.4443 14.9967 439.317 +85.0858 15.6623 458.815 +84.584 16.3657 479.421 +84.1413 17.154 502.515 +84.3651 18.1725 532.35 +90.8584 20.741 607.594 +85.4384 20.7403 607.572 +81.5919 21.1438 619.391 +80.6531 22.41 656.485 +77.7593 23.284 682.088 +76.6403 24.8772 728.759 +75.3539 26.6989 782.124 +75.3984 29.4019 861.306 +76.121 32.9978 966.646 +72.8467 35.5412 1041.15 +70.9506 39.5761 1159.35 +67.7855 44.1269 1292.67 +64.2993 50.2433 1471.84 +59.9922 58.6104 1716.95 +85.7635 111.738 3273.27 +34.5139 67.4585 1976.15 +28.5907 111.772 3274.27 +9.6303e-14 53.6584 1571.88 +-28.5907 111.772 3274.27 +-34.5121 67.4551 1976.05 +-85.7635 111.738 3273.27 +-69.0103 67.421 1975.05 +-142.91 111.669 3271.27 +-103.5 67.3763 1973.74 +-200.013 111.567 3268.29 +-138.104 67.3794 1973.83 +-147.738 64.0435 1876.11 +-168.158 65.5739 1920.94 +-148.273 52.5353 1538.98 +-171.698 55.7327 1632.65 +-137.044 41.036 1202.12 +-147.852 41.0817 1203.46 +-170.219 44.1106 1292.19 +-277.01 67.2446 1969.88 +-128.89 29.4228 861.92 +-136.114 29.3193 858.888 +-153.115 31.2158 914.444 +-568.924 110.078 3224.65 +-597.131 109.918 3219.95 +-152.933 26.842 786.316 +-156.225 26.197 767.422 +-169.323 27.1773 796.139 +-116.964 17.9995 527.283 +-120.349 17.7845 520.985 +-124.52 17.6949 518.36 +-129.283 17.6903 518.224 +-134.98 17.8063 521.624 +-848.072 107.98 3163.21 +-875.553 107.711 3155.3 +-903.181 107.459 3147.94 +-930.633 107.186 3139.93 +-958.014 106.905 3131.7 +-985.202 106.602 3122.84 +-168.476 17.6899 518.214 +-147.071 14.9958 439.292 +-150.966 14.9579 438.182 +-1093.65 105.365 3086.58 +-469.799 44.0362 1290.01 +-439.44 40.0985 1174.66 +-433.339 38.5138 1128.23 +-412.387 35.7169 1046.3 +-416.488 35.1686 1030.24 +-422.75 34.8196 1020.02 +-424.998 34.1584 1000.65 +-414.38 32.5133 952.454 +-416.132 31.8869 934.104 +-417.928 31.2868 916.525 +-430.225 31.4766 922.084 +-432.793 30.9562 906.841 +-434.207 30.3724 889.738 +-437.185 29.9153 876.347 +-392.429 26.276 769.738 +-144.527 9.4719 277.472 +-145.818 9.35624 274.084 +-146.583 9.21053 269.816 +-149.418 9.19637 269.401 +-152.208 9.17826 268.87 +-112.8 6.66551 195.261 +-110.643 6.40827 187.726 +-111.403 6.32537 185.297 +-112.337 6.25417 183.211 +-113.88 6.21759 182.14 +-115.412 6.18054 181.055 +-117.424 6.16884 180.712 +-118.777 6.12227 179.348 +-120.171 6.07819 178.056 +-122.797 6.09563 178.567 +-127.105 6.19296 181.418 +-491.1 23.4891 688.096 +-494.798 23.2344 680.635 +-497.986 22.96 672.597 +-501.011 22.6828 664.477 +-504.846 22.4462 657.545 +-507.613 22.166 649.337 +-511.209 21.9259 642.304 +-514.218 21.6642 634.636 +-515.605 21.3391 625.115 +-531.264 21.6004 632.767 +-525.663 20.9978 615.115 +-528.849 20.7555 608.017 +-162.143 6.25249 183.162 +-163.87 6.20906 181.89 +-164.912 6.13991 179.864 +-543.894 19.8986 582.915 +-547.724 19.6914 576.844 +-551.489 19.4834 570.752 +-555.05 19.2698 564.494 +-558.473 19.0531 558.148 +-562.041 18.8431 551.995 +-565.113 18.6182 545.406 +-569.056 18.4234 539.7 +-2396.13 76.2309 2233.13 +-579.647 18.1209 530.84 +-581.659 17.8678 523.424 +-584.335 17.6374 516.675 +-387.468 11.4911 336.625 +-389.404 11.3465 332.388 +-386.393 11.0613 324.033 +-387.124 10.8873 318.934 +-384.92 10.6342 311.521 +-383.635 10.4109 304.979 +-385.652 10.2795 301.13 +-386.125 10.1082 296.112 +-141.518 3.63825 106.58 +-142.926 3.60813 105.697 +-142.549 3.53338 103.508 +-143.122 3.48288 102.029 +-141.877 3.38925 99.2856 +-142.409 3.33915 97.818 +-143.506 3.30235 96.74 +-147.514 3.33106 97.5809 +-656.008 14.5342 425.769 +-380.37 8.26717 242.181 +-381.706 8.13736 238.378 +-383.518 8.01806 234.883 +-383.582 7.86317 230.346 +-381.271 7.66208 224.455 +-382.87 7.54145 220.921 +-382.782 7.38854 216.442 +-380.897 7.20318 211.012 +-381.231 7.06181 206.871 +-381.08 6.91282 202.506 +-382.834 6.79911 199.175 +-717.617 12.4745 365.431 +-725.523 12.3411 361.522 +-2945.08 49.0053 1435.57 +-734.614 11.9542 350.189 +-406.026 6.45938 189.223 +-406.207 6.31561 185.011 +-408.446 6.20415 181.746 +-407.175 6.04015 176.942 +-404.562 5.85869 171.626 +-406.415 5.74324 168.244 +-404.994 5.58241 163.533 +-406.406 5.46164 159.995 +-405.827 5.31477 155.692 +-406.703 5.18775 151.971 +-404.726 5.02563 147.222 +-406.938 4.91632 144.02 +-406.478 4.77501 139.881 +-405.977 4.63431 135.759 +-404.199 4.48059 131.256 +-397.795 4.27903 125.351 +-385.104 4.01681 117.669 +-380.651 3.84677 112.688 +-380.179 3.71921 108.952 +-380.249 3.59765 105.391 +-381.154 3.48432 102.071 +-380.869 3.36046 98.4422 +-380.259 3.23456 94.754 +-381.461 3.12441 91.5273 +-380.979 3.00075 87.9047 +-380.267 2.87613 84.2541 +-379.717 2.75359 80.6643 +-381.975 2.65131 77.6684 +-379.301 2.51536 73.6857 +-380.323 2.40483 70.4477 +-379.643 2.28381 66.9024 +-378.241 2.15943 63.259 +-378.581 2.04567 59.9264 +-379.98 1.93742 56.7553 +-379.174 1.81805 53.2584 +-380.913 1.71088 50.119 +-379.153 1.58826 46.527 +-379.942 1.47687 43.2637 +-379.808 1.36191 39.8962 +-379.644 1.24715 36.5343 +-379.451 1.13259 33.1783 +-379.626 1.01931 29.8598 +-378.276 0.902439 26.4363 +-379.491 0.791867 23.1972 +-377.482 0.674926 19.7715 +-379.439 0.565194 16.557 +-377.17 0.449352 13.1634 +-144.85 0.129405 3.79083 +-145.278 0.0865136 2.53435 +-145.394 0.0432884 1.2681 +95.9 0 0 +95.8963 0.0360954 0.836096 +96.7853 0.0728653 1.68782 +96.7668 0.109291 2.53157 +95.9415 0.144504 3.34723 +96.7079 0.182115 4.21843 +96.6673 0.218508 5.06141 +96.7193 0.255147 5.9101 +96.5642 0.29124 6.74615 +96.5016 0.327574 7.58777 +96.5313 0.364259 8.43753 +96.4539 0.400578 9.27881 +96.3692 0.436867 10.1194 +96.3765 0.47361 10.9705 +96.277 0.509866 11.8103 +96.071 0.545523 12.6362 +95.957 0.581662 13.4734 +95.8356 0.617755 14.3094 +96.5959 0.659876 15.2851 +95.3738 0.688378 15.9452 +96.1172 0.730991 16.9323 +95.9657 0.767139 17.7696 +95.8068 0.803231 18.6057 +95.6407 0.839259 19.4402 +95.4672 0.875226 20.2733 +95.2865 0.911124 21.1048 +96.0729 0.956658 22.1596 +95.8757 0.99278 22.9963 +95.5741 1.02779 23.8071 +96.3307 1.07452 24.8896 +96.1096 1.11074 25.7285 +96.6521 1.15609 26.7791 +96.4145 1.19242 27.6207 +96.1696 1.22866 28.4602 +95.9174 1.26482 29.2976 +95.6578 1.30087 30.1327 +96.0567 1.34615 31.1817 +95.9704 1.38499 32.0813 +96.3483 1.43089 33.1445 +96.0552 1.4671 33.9832 +96.5064 1.515 35.0928 +96.1962 1.55127 35.9328 +96.8123 1.60287 37.1282 +96.4843 1.63925 37.9708 +96.2417 1.67712 38.848 +96.7302 1.72814 40.0297 +96.3769 1.76447 40.8714 +96.1079 1.8024 41.75 +96.4704 1.85254 42.9114 +96.1829 1.89057 43.7923 +95.978 1.93035 44.7137 +96.3961 1.98311 45.9358 +96.5305 2.03066 47.0373 +96.116 2.06691 47.877 +96.496 2.12064 49.1214 +96.0633 2.15688 49.9609 +96.4179 2.21117 51.2186 +95.7911 2.24326 51.9619 +96.2082 2.30015 53.2795 +95.7391 2.33627 54.1162 +95.9556 2.38947 55.3484 +96.1578 2.443 56.5886 +95.6599 2.4791 57.4247 +95.8368 2.53304 58.6741 +95.9142 2.58502 59.8781 +95.3876 2.62102 60.712 +95.4407 2.67326 61.9222 +95.6467 2.73051 63.2483 +95.0906 2.76641 64.0797 +96.0107 2.84607 65.9249 +95.3493 2.87962 66.7022 +95.5772 2.94044 68.1111 +95.5449 2.99405 69.3528 +95.659 3.05299 70.718 +95.0376 3.08888 71.5494 +95.6784 3.16654 73.3483 +95.6645 3.22368 74.6717 +95.0086 3.25956 75.503 +95.6667 3.34134 77.3972 +95.5271 3.39643 78.6732 +94.9895 3.4378 79.6315 +95.0507 3.50143 81.1055 +94.9425 3.55971 82.4554 +95.4919 3.6439 84.4055 +95.4941 3.70856 85.9033 +95.33 3.76767 87.2725 +95.2954 3.83282 88.7817 +95.0966 3.8923 90.1593 +94.9529 3.95491 91.6096 +94.6483 4.01166 92.9241 +94.6109 4.08068 94.5229 +95.1134 4.17458 96.698 +94.7514 4.23194 98.0266 +94.6488 4.30186 99.6462 +94.2522 4.3594 100.979 +94.6502 4.45515 103.197 +94.2805 4.51622 104.612 +94.5559 4.60969 106.777 +94.1445 4.67115 108.2 +93.9102 4.74249 109.853 +93.7184 4.81728 111.585 +94.0124 4.91894 113.94 +94.1463 5.01447 116.153 +94.1865 5.10712 118.299 +93.8884 5.18316 120.06 +93.871 5.27645 122.221 +93.4619 5.34947 123.913 +92.6734 5.40179 125.124 +94.6334 5.61792 130.131 +115.328 6.97357 161.533 +115.69 7.12626 165.069 +115.377 7.24064 167.719 +115.25 7.3696 170.706 +115.244 7.50978 173.953 +115.518 7.67226 177.716 +115.412 7.81364 180.991 +115.257 7.95554 184.278 +115.106 8.10163 187.662 +114.905 8.24814 191.056 +115.566 8.46203 196.01 +115.2 8.60605 199.346 +115.572 8.81049 204.082 +114.076 8.87631 205.606 +111.703 8.87342 205.54 +109.058 8.84659 204.918 +106.802 8.84905 204.975 +104.645 8.85815 205.186 +102.135 8.83542 204.659 +99.9486 8.83865 204.734 +97.726 8.83701 204.696 +95.5963 8.84219 204.816 +93.3889 8.83857 204.732 +91.0277 8.81821 204.261 +91.2737 9.05388 209.72 +91.4311 9.29036 215.198 +91.1935 9.49575 219.955 +90.9545 9.70969 224.911 +90.929 9.95627 230.622 +91.0255 10.2276 236.908 +90.5636 10.4474 241.998 +90.3275 10.704 247.942 +90.2614 10.9937 254.653 +89.987 11.2719 261.098 +89.7338 11.5672 267.936 +89.3986 11.8671 274.885 +89.0089 12.1759 282.037 +89.0272 12.5596 290.924 +88.9536 12.9524 300.023 +88.4796 13.3088 308.278 +88.3757 13.7447 318.376 +88.102 14.1816 328.495 +87.9084 14.661 339.601 +87.3096 15.1037 349.854 +87.3086 15.6853 363.328 +86.9211 16.2387 376.147 +86.7706 16.8814 391.033 +86.3249 17.5167 405.749 +85.9076 18.2121 421.857 +85.4443 18.9593 439.164 +85.0675 19.7965 458.556 +84.6014 20.6942 479.352 +84.2568 21.7165 503.03 +84.2243 22.9359 531.276 +91.0802 26.2855 608.865 +85.5636 26.259 608.25 +81.618 26.7392 619.373 +80.8603 28.4042 657.941 +77.5782 29.3678 680.261 +76.5044 31.3948 727.214 +75.421 33.7836 782.548 +75.5466 37.2438 862.698 +76.0426 41.6738 965.313 +72.7839 44.8935 1039.89 +70.7492 49.8915 1155.66 +69.2038 56.9543 1319.26 +64.1249 63.3467 1467.33 +114.341 141.224 3271.25 +85.774 141.28 3272.53 +57.1863 141.306 3273.15 +28.5907 141.305 3273.13 +2.00633e-13 141.328 3273.65 +-28.5942 141.323 3273.53 +-57.1863 141.306 3273.15 +-85.774 141.28 3272.53 +-114.355 141.242 3271.65 +-142.928 141.193 3270.53 +-171.489 141.134 3269.16 +-200.038 141.064 3267.55 +-228.571 140.984 3265.68 +-257.087 140.892 3263.56 +-285.583 140.79 3261.19 +-148.235 66.3995 1538.05 +-171.761 70.4849 1632.68 +-137.112 51.9045 1202.29 +-148.486 52.1594 1208.19 +-170.415 55.8303 1293.23 +-456.028 139.952 3241.79 +-128.978 37.2228 862.212 +-136.114 37.0664 858.588 +-155.343 40.0383 927.428 +-568.993 139.181 3223.92 +-597.131 138.961 3218.83 +-152.8 33.9048 785.355 +-156.564 33.1909 768.819 +-169.698 34.4344 797.621 +-117.224 22.8061 528.27 +-120.371 22.4879 520.9 +-124.73 22.4082 519.054 +-129.477 22.3981 518.819 +-135.28 22.5615 522.603 +-848.072 136.512 3162.1 +-875.553 136.171 3154.2 +-903.071 135.836 3146.45 +-930.519 135.491 3138.46 +-958.014 135.152 3130.6 +-985.323 134.787 3122.13 +-169.156 22.4544 520.124 +-146.88 18.9337 438.57 +-151.259 18.947 438.879 +-1093.65 133.205 3085.51 +-508.481 60.2559 1395.74 +-1147.38 132.362 3065.96 +-434.521 48.8232 1130.92 +-412.754 45.1945 1046.86 +-417.05 44.5213 1031.27 +-422.444 43.9882 1018.92 +-424.647 43.1484 999.469 +-414.699 41.136 952.854 +-416.62 40.3598 934.874 +-417.016 39.4675 914.205 +-430.437 39.8132 922.215 +-433.051 39.1592 907.066 +-435.04 38.4714 891.133 +-437.452 37.843 876.578 +-438.509 37.1197 859.822 +-144.25 11.9517 276.844 +-145.536 11.8056 273.459 +-146.583 11.6442 269.722 +-149.418 11.6263 269.307 +-150.977 11.5096 266.603 +-112.95 8.43796 195.453 +-110.694 8.10525 187.746 +-111.3 7.98936 185.062 +-112.389 7.91038 183.232 +-113.986 7.86777 182.245 +-115.681 7.83184 181.413 +-117.261 7.78802 180.398 +-118.998 7.75438 179.619 +-120.618 7.71284 178.657 +-122.967 7.71694 178.752 +-127.391 7.84702 181.765 +-491.855 29.7413 688.914 +-495.033 29.3876 680.72 +-497.867 29.0198 672.202 +-501.553 28.7074 664.964 +-504.846 28.3772 657.316 +-508.352 28.0637 650.055 +-511.769 27.7498 642.783 +-514.344 27.3952 634.57 +-516.241 27.0109 625.668 +-529.4 27.212 630.327 +-525.339 26.5296 614.52 +-529.177 26.256 608.183 +-165.059 8.04676 186.391 +-165.141 7.9106 183.237 +-164.979 7.76546 179.875 +-543.894 25.1565 582.712 +-548.619 24.9351 577.585 +-551.211 24.6191 570.265 +-555.05 24.3615 564.297 +-558.332 24.0815 557.812 +-561.613 23.8039 551.382 +-565.761 23.5647 545.841 +-569.056 23.2914 539.511 +-2396.13 96.3735 2232.35 +-580.532 22.944 531.465 +-580.991 22.563 522.639 +-584.635 22.3092 516.76 +-388.675 14.5727 337.556 +-390.164 14.3727 332.922 +-386.469 13.9868 323.984 +-384.501 13.6708 316.663 +-384.532 13.4305 311.098 +-385.278 13.2181 306.179 +-386.046 13.0089 301.332 +-387.87 12.8368 297.346 +-141.358 4.59437 106.422 +-142.845 4.55896 105.602 +-142.711 4.47205 103.589 +-143.61 4.41818 102.341 +-142.041 4.28975 99.3656 +-142.244 4.21657 97.6707 +-143.838 4.18458 96.9297 +-148.015 4.22551 97.8776 +-656.427 18.3863 425.892 +-384.165 10.5559 244.512 +-381.706 10.2875 238.295 +-379.34 10.0263 232.244 +-381.011 9.87419 228.721 +-382.563 9.71948 225.137 +-382.87 9.53414 220.844 +-383.566 9.35993 216.809 +-381.597 9.12319 211.325 +-380.528 8.91133 206.418 +-381.433 8.74752 202.623 +-383.721 8.61553 199.566 +-717.617 15.7706 365.304 +-726.06 15.6135 361.663 +-970.518 20.4163 472.913 +-405.261 8.33721 193.119 +-406.026 8.16615 189.157 +-406.753 7.99514 185.196 +-405.249 7.78207 180.26 +-405.065 7.59656 175.963 +-404.378 7.40338 171.488 +-405.214 7.23935 167.689 +-406.57 7.08494 164.112 +-405.104 6.88265 159.427 +-406.294 6.72682 155.817 +-406.703 6.55852 151.918 +-407.263 6.39342 148.094 +-405.619 6.19523 143.503 +-407.235 6.04794 140.092 +-405.598 5.85337 135.585 +-405.245 5.67917 131.549 +-397.414 5.40451 125.187 +-383.861 5.06179 117.249 +-381.323 4.87179 112.848 +-380.179 4.70194 108.914 +-380.827 4.55521 105.515 +-380.188 4.39381 101.776 +-379.998 4.23868 98.1827 +-380.55 4.09236 94.7935 +-381.947 3.95501 91.612 +-380.979 3.79364 87.874 +-382.122 3.65383 84.6357 +-380.108 3.48476 80.7193 +-380.407 3.33812 77.3226 +-379.693 3.18329 73.7362 +-380.323 3.04026 70.4231 +-379.643 2.88726 66.8791 +-379.917 2.74212 63.5171 +-378.581 2.5862 59.9055 +-379.584 2.4468 56.6765 +-377.886 2.29063 53.0591 +-379.624 2.15563 49.932 +-378.756 2.00583 46.462 +-378.75 1.86124 43.1129 +-378.813 1.71726 39.7778 +-379.943 1.57792 36.5503 +-380.148 1.43448 33.2277 +-379.626 1.28864 29.8494 +-378.576 1.14179 26.448 +-377.495 0.995838 23.0671 +-378.481 0.855519 19.8168 +-378.539 0.712846 16.512 +-378.269 0.569741 13.1972 +-143.351 0.161904 3.75028 +-144.378 0.108696 2.51778 +-143.795 0.0541244 1.25371 +95.9 0 0 +95.8963 0.0436366 0.835737 +95.8854 0.0872701 1.67141 +95.8671 0.130897 2.50696 +96.741 0.176151 3.37367 +96.7079 0.220164 4.21662 +96.6673 0.264159 5.05923 +96.7193 0.308453 5.90755 +96.5642 0.352087 6.74324 +96.5016 0.396013 7.58451 +96.5313 0.440362 8.4339 +96.3544 0.48377 9.26525 +96.3692 0.528139 10.115 +96.3765 0.572559 10.9658 +96.1777 0.615754 11.793 +96.071 0.659496 12.6308 +95.957 0.703186 13.4676 +95.7367 0.746052 14.2885 +95.6082 0.789586 15.1223 +96.3601 0.840805 16.1033 +96.1172 0.883713 16.925 +96.064 0.928363 17.7802 +95.8068 0.971046 18.5977 +95.4447 1.01252 19.392 +95.4672 1.05808 20.2646 +95.3841 1.10261 21.1174 +96.0729 1.15653 22.15 +95.8757 1.2002 22.9864 +95.6712 1.24378 23.8211 +96.2339 1.29771 24.8539 +96.1096 1.34279 25.7175 +95.7849 1.38508 26.5274 +96.4145 1.44155 27.6088 +96.1696 1.48536 28.4479 +95.9174 1.52907 29.285 +96.5162 1.58676 30.39 +95.9616 1.62579 31.1374 +96.5393 1.68428 32.2577 +96.3483 1.72984 33.1303 +96.8093 1.78754 34.2354 +96.5064 1.83152 35.0777 +96.1026 1.87354 35.8824 +96.7189 1.93588 37.0764 +96.4843 1.98173 37.9545 +96.9834 2.04313 39.1305 +96.6378 2.08719 39.9742 +96.2848 2.13108 40.8149 +96.1079 2.17897 41.7321 +96.5618 2.24171 42.9336 +96.3649 2.28988 43.8563 +95.978 2.33364 44.6944 +96.2156 2.39294 45.8301 +96.7102 2.45949 47.1045 +96.116 2.49874 47.8564 +96.496 2.56369 49.1003 +96.8616 2.62917 50.3543 +96.4179 2.67314 51.1966 +95.7911 2.71194 51.9395 +96.2082 2.7807 53.2566 +95.6521 2.8218 54.0437 +95.9556 2.88868 55.3246 +96.1578 2.95341 56.5642 +95.5742 2.99436 57.3486 +95.6662 3.05681 58.5446 +95.9142 3.12509 59.8524 +96.0623 3.19103 61.1151 +95.4407 3.23178 61.8956 +95.6467 3.30098 63.2211 +95.7538 3.36771 64.4989 +95.1866 3.41114 65.3309 +95.4312 3.48424 66.7308 +95.4958 3.55175 68.0238 +95.5449 3.61958 69.323 +95.5786 3.68773 70.6282 +94.9578 3.73108 71.4585 +95.1231 3.80589 72.8912 +95.7433 3.9004 74.7011 +95.7912 3.97303 76.0921 +95.1227 4.01646 76.924 +94.987 4.08281 78.1947 +95.679 4.1862 80.175 +95.6591 4.26006 81.5895 +95.5462 4.33079 82.9441 +95.4919 4.4052 84.3692 +95.4198 4.47988 85.7995 +94.7401 4.52665 86.6952 +95.2223 4.63004 88.6754 +95.0966 4.70549 90.1205 +94.9529 4.78118 91.5702 +94.791 4.8571 93.0241 +94.6109 4.93323 94.4822 +95.1134 5.04676 96.6564 +94.1262 5.08234 97.3379 +94.6488 5.20062 99.6033 +94.2522 5.27018 100.936 +94.6502 5.38594 103.152 +94.3474 5.46363 104.64 +94.4896 5.56885 106.656 +94.8005 5.68643 108.908 +94.17 5.74916 110.109 +94.3612 5.86366 112.302 +93.9488 5.94261 113.814 +94.1463 6.06212 116.103 +93.6885 6.14148 117.623 +93.8268 6.26193 119.93 +93.871 6.37883 122.169 +93.9433 6.50043 124.497 +92.9113 6.54709 125.391 +94.3395 6.77052 129.67 +115.328 8.43053 161.463 +115.232 8.58096 164.344 +115.377 8.75339 167.647 +115.697 8.94387 171.295 +115.189 9.07443 173.795 +115.463 9.2708 177.556 +115.412 9.4461 180.914 +115.31 9.62208 184.284 +115.159 9.79869 187.666 +115.369 10.0116 191.744 +115.465 10.221 195.754 +115.25 10.4086 199.347 +115.67 10.6603 204.169 +114.076 10.7308 205.518 +111.703 10.7273 205.451 +109.058 10.6949 204.83 +106.849 10.7024 204.975 +104.236 10.667 204.297 +102.447 10.714 205.197 +99.9925 10.69 204.736 +97.726 10.6833 204.608 +95.5963 10.6895 204.728 +93.3889 10.6852 204.644 +91.3937 10.7035 204.995 +91.3135 10.9503 209.721 +91.4702 11.2361 215.197 +91.1935 11.4797 219.861 +90.917 11.7335 224.722 +90.929 12.0364 230.523 +90.7388 12.3256 236.061 +90.5986 12.635 241.987 +90.2933 12.9354 247.742 +90.0277 13.2561 253.884 +89.694 13.5826 260.136 +89.6703 13.9739 267.631 +89.3677 14.3415 274.672 +88.8886 14.6999 281.535 +88.9979 15.1786 290.703 +88.698 15.6134 299.032 +88.7001 16.1294 308.913 +88.349 16.6113 318.143 +88.0761 17.1394 328.258 +87.9335 17.7291 339.55 +87.5999 18.3199 350.866 +87.2385 18.9472 362.881 +86.9436 19.6365 376.082 +86.5975 20.3676 390.085 +86.2002 21.1458 404.988 +85.8478 22.0018 421.382 +85.2535 22.8691 437.994 +85.104 23.9427 458.555 +84.584 25.0127 479.047 +84.0918 26.2022 501.829 +84.2087 27.7227 530.95 +91.0802 31.7772 608.603 +85.5358 31.7348 607.791 +81.7094 32.3618 619.8 +80.5556 34.2092 655.181 +77.6461 35.5345 680.564 +76.264 37.8346 724.616 +75.3635 40.8107 781.615 +75.3636 44.9159 860.238 +75.6581 50.1258 960.019 +72.7839 54.2728 1039.44 +70.4989 60.1018 1151.08 +68.3612 68.015 1302.64 +64.1859 76.6544 1468.1 +55.2075 82.4339 1578.79 +41.4381 82.5131 1580.31 +27.5661 82.3463 1577.11 +28.5942 170.848 3272.12 +2.00633e-13 170.855 3272.24 +-28.5942 170.848 3272.12 +-57.1863 170.829 3271.74 +-85.774 170.796 3271.12 +-114.355 170.75 3270.25 +-142.928 170.692 3269.13 +-171.489 170.621 3267.76 +-200.038 170.536 3266.14 +-228.571 170.439 3264.27 +-257.087 170.328 3262.16 +-285.583 170.205 3259.79 +-148.398 80.3602 1539.07 +-171.824 85.2423 1632.58 +-137.202 62.7903 1202.57 +-148.339 62.9947 1206.49 +-170.532 67.541 1293.56 +-456.028 169.192 3240.4 +-129.052 45.0254 862.335 +-136.223 44.8465 858.909 +-152.141 47.4056 907.921 +-568.993 168.259 3222.53 +-597.131 167.994 3217.45 +-152.952 41.0293 785.802 +-156.564 40.1253 768.488 +-170.051 41.7153 798.939 +-117.267 27.581 528.237 +-120.551 27.2269 521.455 +-124.683 27.0797 518.637 +-129.477 27.0776 518.596 +-135.28 27.2751 522.378 +-848.072 165.033 3160.74 +-875.66 164.641 3153.23 +-903.071 164.216 3145.1 +-930.633 163.819 3137.49 +-958.014 163.389 3129.26 +-985.202 162.927 3120.41 +-168.631 27.0614 518.286 +-147.229 22.9438 439.423 +-151.78 22.9844 440.201 +-1093.65 161.035 3084.18 +-508.994 72.9184 1396.55 +-1147.38 160.015 3064.65 +-434.306 58.9943 1129.87 +-412.497 54.6024 1045.76 +-417.424 53.8714 1031.75 +-423.21 53.2748 1020.33 +-424.568 52.1538 998.859 +-414.38 49.6921 951.713 +-416.132 48.7347 933.377 +-419.213 47.9647 918.629 +-431.197 48.2163 923.448 +-433.309 47.3688 907.216 +-435.04 46.509 890.75 +-437.095 45.712 875.485 +-394.472 40.3684 773.143 +-144.435 14.4672 277.08 +-145.63 14.2813 273.517 +-146.488 14.0678 269.43 +-149.855 14.0964 269.977 +-153.39 14.1366 270.747 +-112.75 10.1828 195.023 +-110.643 9.79415 187.579 +-111.557 9.68085 185.409 +-112.598 9.58084 183.494 +-114.198 9.52922 182.505 +-115.842 9.4813 181.588 +-117.152 9.40637 180.153 +-118.942 9.37008 179.458 +-120.562 9.31997 178.498 +-122.967 9.3292 178.675 +-127.105 9.46508 181.277 +-491.913 35.9593 688.699 +-495.033 35.5274 680.427 +-498.343 35.1163 672.555 +-502.275 34.755 665.634 +-505.028 34.3183 657.271 +-508.352 33.9269 649.775 +-511.583 33.5352 642.272 +-515.162 33.1715 635.307 +-516.05 32.6421 625.167 +-528.629 32.8494 629.138 +-525.663 32.0922 614.636 +-529.44 31.7573 608.222 +-163.27 9.6225 184.292 +-163.602 9.47421 181.452 +-164.979 9.38786 179.798 +-544.371 30.439 582.973 +-548.343 30.1295 577.047 +-552.392 29.8264 571.241 +-555.471 29.4735 564.482 +-558.685 29.1311 557.925 +-562.541 28.8246 552.055 +-565.545 28.477 545.397 +-569.709 28.1899 539.899 +-2396.13 116.508 2231.39 +-583.629 27.8856 534.069 +-580.991 27.277 522.414 +-389.382 17.9628 344.027 +-589.126 26.7031 511.423 +-391.381 17.4297 333.816 +-387.082 16.9359 324.359 +-385.272 16.5601 317.162 +-385.853 16.2923 312.033 +-386.139 16.0155 306.731 +-387.15 15.7717 302.063 +-385.252 15.4141 295.213 +-141.518 5.56056 106.497 +-142.845 5.51144 105.556 +-142.953 5.4156 103.721 +-143.61 5.34125 102.297 +-141.959 5.18299 99.2656 +-142.327 5.10048 97.6853 +-143.424 5.04427 96.6088 +-148.182 5.11408 97.9458 +-657.434 22.2618 426.362 +-381.129 12.6605 242.476 +-381.198 12.4202 237.875 +-383.176 12.2436 234.492 +-382.897 11.9963 229.755 +-383.683 11.7845 225.7 +-382.783 11.5235 220.699 +-381.651 11.259 215.634 +-382.034 11.0419 211.477 +-380.879 10.7831 206.52 +-381.875 10.5873 202.77 +-382.923 10.3939 199.066 +-718.508 19.0892 365.6 +-722.659 18.7871 359.815 +-2944.72 74.8889 1434.29 +-404.539 10.0611 192.693 +-405.754 9.86564 188.949 +-406.48 9.659 184.991 +-403.513 9.36768 179.412 +-404.699 9.17538 175.729 +-403.273 8.92567 170.946 +-404.752 8.74187 167.426 +-406.663 8.56709 164.078 +-405.476 8.32822 159.504 +-406.574 8.1378 155.857 +-405.204 7.89956 151.294 +-406.887 7.72202 147.894 +-405.242 7.48263 143.309 +-405.722 7.28433 139.511 +-405.598 7.07629 135.526 +-405.055 6.86245 131.431 +-397.318 6.53208 125.104 +-384.53 6.13001 117.403 +-380.556 5.87779 112.573 +-380.852 5.69436 109.059 +-380.249 5.49851 105.309 +-379.802 5.30642 101.63 +-380.869 5.13599 98.3655 +-380.647 4.94862 94.7769 +-380.78 4.7667 91.2928 +-380.979 4.58622 87.8363 +-381.732 4.41269 84.5128 +-378.837 4.19872 80.4147 +-379.035 4.02098 77.0106 +-379.301 3.84438 73.6283 +-380.815 3.68019 70.4838 +-380.234 3.49591 66.9544 +-379.325 3.30985 63.3909 +-379.47 3.13386 60.0203 +-379.584 2.958 56.6521 +-379.768 2.78299 53.3003 +-379.129 2.60259 49.8453 +-379.748 2.43125 46.5638 +-379.147 2.25246 43.1395 +-379.51 2.07986 39.8338 +-380.142 1.90859 36.5537 +-378.952 1.72873 33.1089 +-378.629 1.55378 29.7583 +-378.875 1.38143 26.4575 +-378.193 1.20612 23.0998 +-380.078 1.03863 19.892 +-378.14 0.860864 16.4874 +-377.77 0.687861 13.1741 +-144.051 0.196686 3.76697 +-145.278 0.132224 2.53238 +-144.794 0.065887 1.26188 +95.9 0 0 +95.8963 0.0511743 0.835309 +95.8854 0.102345 1.67056 +96.7668 0.154948 2.52919 +95.9415 0.204871 3.34408 +96.7079 0.258194 4.21446 +96.6673 0.309789 5.05664 +95.8209 0.358375 5.84969 +96.5642 0.412906 6.73979 +96.5016 0.464419 7.58063 +96.4316 0.515896 8.42089 +96.3544 0.567335 9.26051 +96.3692 0.619368 10.1098 +96.2771 0.67077 10.9489 +96.277 0.722863 11.7992 +96.1702 0.77421 12.6373 +95.957 0.824652 13.4607 +95.8356 0.875822 14.2959 +96.5959 0.93554 15.2707 +95.3738 0.975948 15.9302 +96.1172 1.03636 16.9164 +95.9657 1.08761 17.7529 +95.8068 1.13878 18.5881 +95.6407 1.18986 19.4219 +95.4672 1.24085 20.2542 +96.1652 1.30366 21.2794 +96.0729 1.3563 22.1387 +95.8757 1.40751 22.9746 +95.7682 1.4601 23.833 +96.2339 1.52187 24.8412 +96.013 1.57316 25.6785 +95.7849 1.62434 26.5138 +96.4145 1.69056 27.5947 +96.1696 1.74194 28.4334 +95.7261 1.78962 29.2116 +96.6115 1.8627 30.4045 +96.0567 1.90851 31.1523 +96.6342 1.97716 32.2728 +96.2538 2.02666 33.0808 +95.9609 2.07794 33.9179 +96.4125 2.14581 35.0256 +96.1026 2.19717 35.8641 +96.8123 2.27248 37.0933 +96.4843 2.32405 37.9351 +96.149 2.37545 38.774 +96.6378 2.44772 39.9538 +96.3769 2.50158 40.8329 +96.0162 2.55292 41.6709 +96.5618 2.62893 42.9116 +97.1839 2.70825 44.2063 +95.7967 2.73159 44.5872 +96.3961 2.81156 45.8926 +95.9912 2.86288 46.7304 +96.2949 2.93583 47.9211 +95.6941 2.98155 48.6674 +96.0633 3.05791 49.9138 +96.2413 3.12915 51.0766 +96.6699 3.20957 52.3893 +96.1207 3.25807 53.1809 +96.3484 3.33332 54.4093 +95.9556 3.38767 55.2963 +96.1578 3.46357 56.5353 +95.5742 3.5116 57.3192 +95.8368 3.59122 58.6189 +95.9142 3.66491 59.8217 +95.3876 3.71595 60.6549 +95.3568 3.7867 61.8096 +95.6467 3.87119 63.1887 +95.7538 3.94943 64.4659 +95.1866 4.00038 65.2975 +95.3493 4.08259 66.6394 +95.4958 4.16527 67.989 +95.5449 4.24482 69.2875 +95.659 4.32838 70.6514 +95.6765 4.4087 71.9625 +95.6784 4.48937 73.2792 +95.0341 4.54026 74.1099 +95.713 4.6555 75.991 +95.1227 4.71025 76.8847 +94.987 4.78806 78.1547 +95.0661 4.87787 79.6206 +95.7351 4.9999 81.6125 +95.5462 5.07888 82.9017 +95.4919 5.16614 84.326 +95.4198 5.25372 85.7556 +94.6664 5.30444 86.5835 +95.2223 5.42982 88.63 +95.0966 5.51831 90.0744 +94.809 5.59858 91.3847 +94.791 5.6961 92.9765 +94.6109 5.78538 94.4338 +94.4826 5.87927 95.9663 +94.8903 6.00863 98.0779 +94.6488 6.09896 99.5524 +94.3886 6.18946 101.03 +94.5826 6.31176 103.026 +94.2805 6.40287 104.513 +94.4896 6.5308 106.601 +94.0789 6.61788 108.022 +94.17 6.74225 110.053 +93.847 6.83905 111.633 +94.0124 6.97383 113.833 +93.6429 7.07124 115.423 +93.6885 7.20234 117.563 +93.7652 7.33876 119.789 +93.8101 7.47586 122.027 +93.7026 7.60378 124.115 +92.9113 7.67802 125.327 +93.5754 7.87578 128.555 +115.386 9.89181 161.462 +115.633 10.0982 164.832 +115.377 10.2654 167.561 +115.25 10.4483 170.545 +115.189 10.6419 173.706 +115.028 10.8312 176.796 +115.519 11.0881 180.99 +115.204 11.2738 184.021 +115.159 11.4913 187.57 +115.42 11.7462 191.732 +115.465 11.9865 195.654 +115.1 12.1906 198.986 +115.424 12.4751 203.629 +113.979 12.5737 205.238 +111.703 12.5803 205.346 +109.481 12.5908 205.518 +106.802 12.5457 204.782 +104.736 12.5695 205.17 +102.447 12.5648 205.092 +99.9486 12.531 204.542 +97.726 12.5287 204.504 +95.554 12.5305 204.533 +93.3889 12.5309 204.54 +91.3937 12.5523 204.89 +91.6325 12.8866 210.346 +91.0794 13.1208 214.168 +91.1169 13.4514 219.564 +90.917 13.7603 224.607 +90.929 14.1155 230.405 +90.7388 14.4546 235.941 +90.5986 14.8175 241.864 +90.3275 15.1756 247.709 +89.9943 15.5402 253.66 +89.8243 15.9519 260.381 +89.6068 16.3762 267.306 +89.3059 16.8072 274.341 +89.0691 17.2741 281.962 +88.9979 17.8005 290.554 +88.7832 18.3281 299.166 +88.4796 18.8685 307.988 +88.2421 19.4571 317.596 +88.102 20.1059 328.186 +87.8333 20.7679 338.99 +87.3338 21.4192 349.622 +87.2619 22.226 362.792 +86.8986 23.0165 375.695 +86.8139 23.9455 390.859 +86.1586 24.7865 404.585 +85.6684 25.7484 420.286 +85.1771 26.7955 437.378 +84.7942 27.9763 456.653 +84.5493 29.3212 478.606 +84.1248 30.7403 501.769 +84.0053 32.4329 529.396 +91.0802 37.2663 608.292 +85.6471 37.265 608.271 +81.6833 37.9398 619.285 +80.6653 40.173 655.737 +77.7027 41.703 680.712 +76.2117 44.3397 723.749 +75.4881 47.9394 782.507 +74.8145 52.2908 853.534 +75.4541 58.6259 956.941 +72.7281 63.5989 1038.11 +70.4378 70.4225 1149.49 +67.6966 78.9883 1289.31 +142.91 200.152 3267.05 +55.3925 96.9967 1583.26 +85.774 200.299 3269.45 +57.1863 200.337 3270.07 +28.5942 200.36 3270.45 +2.00633e-13 200.368 3270.57 +-28.5942 200.36 3270.45 +-57.1863 200.337 3270.07 +-85.774 200.299 3269.45 +-114.355 200.245 3268.57 +-142.928 200.177 3267.45 +-171.489 200.093 3266.09 +-200.038 199.994 3264.47 +-228.571 199.88 3262.6 +-257.087 199.75 3260.49 +-285.583 199.605 3258.12 +-147.66 93.773 1530.64 +-171.782 99.9423 1631.34 +-137.27 73.6732 1202.56 +-148.339 73.8762 1205.87 +-170.715 79.2928 1294.28 +-456.028 198.418 3238.74 +-129.112 52.8271 862.288 +-136.411 52.6656 859.652 +-158.363 57.868 944.57 +-568.993 197.324 3220.88 +-597.131 197.012 3215.8 +-153.01 48.1347 785.694 +-156.683 47.0924 768.682 +-170.259 48.9808 799.506 +-117.245 32.3394 527.87 +-120.551 31.93 521.188 +-124.893 31.8109 519.244 +-129.694 31.8084 519.203 +-135.431 32.0221 522.691 +-848.072 193.54 3159.13 +-875.66 193.081 3151.62 +-903.181 192.606 3143.88 +-930.633 192.116 3135.88 +-958.014 191.612 3127.66 +-985.323 191.094 3119.19 +-168.909 31.7882 518.874 +-146.88 26.8432 438.158 +-151.747 26.9488 439.881 +-1093.65 188.852 3082.6 +-508.994 85.5141 1395.83 +-1147.38 187.656 3063.08 +-434.199 69.1677 1129.01 +-413.047 64.1199 1046.62 +-417.387 63.1714 1031.14 +-423.21 62.4774 1019.81 +-424.178 61.1064 997.43 +-424.867 59.7506 975.299 +-417.637 57.3597 936.273 +-417.016 55.955 913.345 +-430.563 56.4619 921.618 +-433.309 55.5511 906.752 +-435.434 54.5923 891.101 +-437.854 53.7012 876.556 +-439.19 52.7082 860.347 +-144.25 16.9446 276.583 +-145.395 16.7212 272.937 +-146.822 16.5355 269.906 +-149.903 16.5367 269.926 +-453.424 49.0065 799.924 +-112.75 11.9418 194.924 +-110.643 11.486 187.483 +-111.763 11.3741 185.657 +-112.651 11.241 183.485 +-114.198 11.1753 182.412 +-115.734 11.1088 181.327 +-117.479 11.062 180.562 +-118.998 10.9938 179.45 +-121.233 10.9907 179.399 +-123.477 10.9861 179.324 +-127.449 11.1301 181.675 +-492.088 42.1857 688.59 +-496.032 41.7484 681.451 +-498.64 41.2068 672.612 +-501.914 40.7292 664.816 +-505.515 40.2852 657.568 +-508.906 39.8308 650.151 +-511.583 39.3279 641.943 +-515.413 38.9204 635.292 +-516.623 38.323 625.54 +-527.6 38.4487 627.592 +-526.443 37.6915 615.232 +-529.44 37.243 607.911 +-161.149 11.1381 181.805 +-164.004 11.138 181.804 +-163.628 10.9194 178.235 +-544.576 35.7103 582.893 +-547.999 35.3119 576.39 +-552.392 34.9785 570.949 +-555.681 34.5777 564.407 +-559.109 34.1891 558.063 +-562.541 33.8037 551.772 +-566.696 33.464 546.228 +-569.709 33.0594 539.622 +-2396.43 136.65 2230.52 +-583.629 32.7024 533.796 +-580.545 31.9642 521.747 +-585.309 31.6654 516.869 +-589.126 31.3157 511.162 +-389.48 20.3411 332.024 +-386.852 19.8495 324.001 +-387.278 19.5218 318.651 +-385.853 19.1066 311.873 +-384.574 18.7058 305.332 +-385.731 18.4283 300.802 +-384.697 18.0505 294.636 +-140.879 6.4916 105.961 +-142.845 6.46347 105.502 +-142.953 6.35108 103.668 +-143.447 6.25679 102.129 +-141.959 6.07828 99.2148 +-141.502 5.94688 97.07 +-144.335 5.95321 97.1733 +-147.931 5.98734 97.7304 +-657.434 26.1072 426.144 +-382.225 14.8901 243.048 +-383.063 14.637 238.917 +-381.727 14.3042 233.485 +-381.697 14.0243 228.917 +-382.908 13.7922 225.128 +-382.437 13.5018 220.387 +-380.868 13.1767 215.082 +-382.034 12.9493 211.369 +-381.231 12.6573 206.604 +-381.875 12.4161 202.666 +-382.834 12.1865 198.918 +-718.151 22.3755 365.231 +-721.944 22.0105 359.274 +-2944.72 87.825 1433.55 +-406.615 11.8596 193.582 +-406.479 11.5905 189.189 +-406.116 11.3174 184.732 +-405.888 11.0505 180.375 +-405.982 10.7944 176.196 +-405.298 10.5201 171.717 +-407.154 10.3128 168.333 +-406.57 10.0447 163.958 +-403.615 9.72199 158.69 +-404.894 9.50406 155.133 +-403.331 9.22124 150.517 +-404.82 9.00985 147.066 +-405.713 8.78531 143.401 +-404.02 8.50678 138.855 +-405.124 8.28896 135.299 +-405.15 8.04975 131.395 +-393.122 7.57951 123.719 +-384.148 7.18173 117.226 +-380.46 6.89133 112.486 +-380.564 6.67291 108.921 +-381.116 6.46305 105.495 +-380.478 6.2341 101.758 +-380.288 6.01398 98.1653 +-380.259 5.79751 94.6318 +-379.322 5.56868 90.8966 +-380.102 5.36605 87.5892 +-381.244 5.16831 84.3615 +-377.761 4.91001 80.1452 +-379.525 4.72165 77.0707 +-381.657 4.53645 74.0477 +-378.848 4.29361 70.0839 +-380.53 4.10297 66.9721 +-378.931 3.87755 63.2926 +-380.26 3.68285 60.1146 +-379.09 3.46443 56.5493 +-379.867 3.26456 53.2869 +-379.624 3.05615 49.885 +-379.55 2.84973 46.5156 +-379.445 2.64362 43.1514 +-378.813 2.43465 39.7404 +-378.848 2.23066 36.4106 +-379.152 2.02841 33.1094 +-378.23 1.82025 29.7117 +-377.578 1.61451 26.3534 +-377.295 1.4111 23.0331 +-379.18 1.21516 19.8348 +-379.538 1.0133 16.54 +-377.37 0.805825 13.1533 +-145.65 0.233222 3.80684 +-143.378 0.153037 2.498 +-144.794 0.0772682 1.26124 +95.9 0 0 +95.8963 0.0587078 0.834813 +95.8854 0.117411 1.66957 +95.8671 0.176105 2.50419 +96.741 0.23699 3.36995 +96.7079 0.296203 4.21196 +96.7672 0.355761 5.05886 +96.7193 0.414986 5.90103 +96.5642 0.473691 6.73579 +96.5016 0.532787 7.57613 +96.4316 0.591843 8.4159 +96.4539 0.651525 9.26457 +96.4686 0.711284 10.1143 +96.3765 0.770309 10.9536 +96.277 0.829278 11.7922 +96.071 0.887272 12.6168 +95.957 0.946052 13.4527 +95.7367 1.00372 14.2728 +95.6082 1.06229 15.1056 +95.3738 1.11962 15.9208 +96.1172 1.18893 16.9063 +96.064 1.249 17.7605 +95.8068 1.30643 18.5771 +95.6407 1.36502 19.4104 +95.4672 1.42352 20.2422 +95.2865 1.48191 21.0725 +96.0729 1.55597 22.1256 +95.8757 1.61472 22.961 +95.6712 1.67335 23.7947 +95.3625 1.7301 24.6016 +96.1096 1.80657 25.6891 +95.8812 1.86533 26.5247 +95.5494 1.92203 27.3309 +96.1696 1.99838 28.4165 +95.7261 2.05307 29.1943 +95.4671 2.1116 30.0265 +96.0567 2.18947 31.1338 +95.9704 2.25264 32.0321 +96.3483 2.32729 33.0937 +96.0552 2.38618 33.9311 +96.6004 2.46649 35.0731 +96.1962 2.52308 35.8777 +96.8123 2.60701 37.0712 +96.4843 2.66618 37.9126 +96.149 2.72514 38.751 +96.6378 2.80806 39.9301 +96.3769 2.86985 40.8087 +96.1079 2.93154 41.6859 +96.5618 3.01595 42.8862 +96.3649 3.08076 43.8078 +95.978 3.13964 44.645 +96.3961 3.22545 45.8653 +96.5305 3.30279 46.9651 +96.116 3.36176 47.8035 +96.496 3.44914 49.0461 +95.9746 3.50484 49.8381 +96.3296 3.59309 51.0931 +95.8789 3.65193 51.9297 +96.1207 3.7377 53.1493 +95.6521 3.79639 53.984 +95.9556 3.88637 55.2635 +96.1578 3.97345 56.5018 +95.5742 4.02855 57.2852 +95.8368 4.11989 58.5841 +95.9142 4.20443 59.7862 +96.0623 4.29314 61.0476 +95.5246 4.35179 61.8816 +95.6467 4.44107 63.1512 +95.0906 4.49945 63.9814 +96.0107 4.62902 65.8237 +95.3493 4.68359 66.5998 +95.5772 4.78252 68.0065 +95.5449 4.86971 69.2464 +95.659 4.96557 70.6095 +95.6765 5.05772 71.9198 +95.6784 5.15026 73.2357 +95.0341 5.20864 74.0659 +95.0869 5.30592 75.4492 +95.045 5.39925 76.7763 +95.6814 5.53308 78.6794 +94.9895 5.59145 79.5093 +94.9747 5.69039 80.9163 +94.9425 5.78973 82.3289 +95.4919 5.92666 84.276 +95.4198 6.02714 85.7047 +94.7401 6.09005 86.5994 +95.2223 6.22916 88.5774 +95.0966 6.33067 90.021 +94.9529 6.4325 91.469 +94.6483 6.52481 92.7816 +94.6109 6.63707 94.3778 +95.1134 6.7898 96.5497 +94.8903 6.89318 98.0197 +94.5111 6.98663 99.3485 +94.2522 7.09039 100.824 +94.6502 7.24612 103.039 +94.2136 7.34027 104.377 +94.4896 7.49221 106.538 +94.1445 7.59744 108.034 +94.17 7.7348 109.987 +93.7827 7.84052 111.491 +94.0124 8.00046 113.765 +94.0834 8.15037 115.897 +93.6885 8.26261 117.493 +93.7652 8.41912 119.718 +93.8101 8.5764 121.955 +93.7026 8.72316 124.042 +93.0898 8.8253 125.494 +93.4579 9.02383 128.317 +115.85 11.3937 162.016 +115.633 11.5848 164.734 +115.264 11.7651 167.297 +115.25 11.9864 170.444 +115.079 12.1968 173.437 +115.082 12.4316 176.774 +115.412 12.7086 180.714 +115.257 12.9394 183.996 +115.106 13.177 187.374 +115.369 13.4694 191.532 +114.957 13.6906 194.678 +115.1 13.9853 198.868 +115.473 14.3177 203.595 +114.415 14.4799 205.901 +111.703 14.4323 205.224 +109.434 14.4382 205.308 +107.264 14.4549 205.545 +104.736 14.4199 205.049 +102.447 14.4145 204.971 +100.343 14.4325 205.227 +97.726 14.3731 204.382 +95.5963 14.3815 204.502 +93.3889 14.3756 204.418 +91.3124 14.3874 204.586 +91.5528 14.7708 210.038 +91.0404 15.0459 213.95 +91.0404 15.4186 219.25 +90.8796 15.7795 224.381 +90.929 16.1935 230.268 +90.7746 16.5891 235.893 +90.5636 16.9922 241.626 +90.3275 17.4096 247.562 +89.9943 17.8279 253.51 +89.8894 18.3135 260.415 +89.5434 18.7736 266.958 +89.3368 19.2881 274.273 +89.1292 19.8305 281.986 +88.9687 20.4143 290.287 +88.7832 21.0262 298.989 +88.4796 21.6462 307.805 +88.1887 22.3079 317.215 +88.0761 23.059 327.895 +87.9335 23.8523 339.175 +87.3822 24.5859 349.608 +86.9584 25.4093 361.316 +86.7411 26.357 374.791 +86.6191 27.409 389.751 +86.117 28.4217 404.151 +85.7282 29.5595 420.33 +85.3298 30.7952 437.903 +84.8124 32.1017 456.48 +84.4277 33.5894 477.634 +84.1413 35.2726 501.569 +83.9897 37.2005 528.984 +91.3167 42.8633 609.509 +85.7585 42.8065 608.7 +81.6963 43.532 619.016 +80.5434 46.0173 654.358 +77.7366 47.8632 680.605 +76.1281 50.8112 722.526 +75.584 55.0665 783.035 +74.614 59.8279 850.741 +75.3992 67.2075 955.678 +72.5398 72.7727 1034.81 +70.1692 80.4816 1144.43 +67.6076 90.4971 1286.85 +64.8359 104.174 1481.33 +114.341 229.696 3266.23 +85.774 229.786 3267.51 +57.1863 229.829 3268.13 +10.8977 87.6013 1245.67 +2.00633e-13 229.864 3268.63 +-28.5907 229.828 3268.11 +-57.1863 229.829 3268.13 +-85.774 229.786 3267.51 +-114.355 229.724 3266.63 +-142.928 229.645 3265.52 +-171.489 229.549 3264.15 +-200.038 229.436 3262.53 +-228.571 229.305 3260.67 +-257.087 229.156 3258.55 +-285.548 228.961 3255.79 +-145.983 106.355 1512.35 +-342.467 228.577 3250.32 +-137.497 84.6577 1203.82 +-148.656 84.9327 1207.73 +-170.833 91.0282 1294.4 +-456.028 227.627 3236.82 +-129.2 60.6456 862.369 +-136.505 60.4603 859.734 +-158.792 66.5668 946.567 +-568.993 226.372 3218.97 +-597.131 226.015 3213.89 +-153.201 55.2895 786.206 +-156.823 54.0732 768.91 +-170.799 56.3698 801.568 +-117.245 37.1001 527.557 +-120.776 36.6988 521.85 +-124.893 36.4939 518.936 +-129.67 36.4841 518.798 +-135.656 36.7972 523.25 +-848.072 222.032 3157.25 +-875.553 221.477 3149.36 +-903.071 220.933 3141.62 +-930.519 220.371 3133.64 +-958.014 219.82 3125.8 +-985.202 219.199 3116.96 +-145.702 31.4574 447.318 +-146.912 30.8016 437.992 +-151.747 30.916 439.62 +-1093.78 216.679 3081.14 +-509.302 98.1625 1395.85 +-1147.38 215.281 3061.26 +-434.199 79.3501 1128.34 +-413.193 73.5851 1046.37 +-418.136 72.6008 1032.37 +-423.784 71.7717 1020.58 +-424.139 70.0956 996.746 +-423.91 68.3923 972.525 +-416.051 65.5539 932.164 +-417.223 64.2242 913.257 +-431.324 64.8883 922.699 +-433.697 63.7859 907.024 +-435.083 62.5786 889.855 +-438.345 61.6758 877.018 +-439.327 60.4862 860.103 +-144.389 19.4577 276.685 +-145.395 19.1828 272.775 +-146.965 18.9882 270.009 +-150.049 18.9896 270.028 +-454.211 56.3185 800.838 +-113.4 13.7787 195.931 +-110.593 13.1708 187.286 +-111.557 13.0244 185.205 +-112.546 12.8839 183.207 +-113.986 12.7966 181.966 +-115.573 12.7263 180.966 +-117.479 12.6904 180.455 +-119.108 12.6239 179.51 +-121.177 12.6028 179.209 +-123.42 12.5975 179.135 +-127.563 12.7801 181.73 +-491.855 48.3732 687.857 +-495.856 47.8773 680.806 +-498.878 47.2956 672.534 +-502.275 46.7586 664.899 +-505.515 46.2157 657.178 +-508.721 45.6777 649.529 +-512.703 45.2164 642.968 +-515.791 44.6827 635.38 +-517.004 43.9971 625.631 +-526.572 44.0229 625.998 +-525.923 43.1975 614.26 +-530.096 42.7785 608.303 +-163.27 12.9459 184.088 +-163.87 12.7672 181.548 +-165.993 12.7078 180.703 +-544.371 40.9519 582.329 +-548.343 40.5357 576.409 +-552.114 40.1076 570.322 +-555.681 39.668 564.072 +-559.604 39.2569 558.225 +-563.325 38.8341 552.214 +-566.696 38.3904 545.904 +-569.709 37.9261 539.302 +-2396.43 156.767 2229.19 +-588.052 37.801 537.523 +-580.545 36.6698 521.437 +-585.309 36.3269 516.562 +-589.126 35.9258 510.858 +-593.801 35.5774 505.905 +-387.159 22.7897 324.065 +-391.677 22.6499 322.078 +-389.272 22.1135 314.45 +-384.339 21.4464 304.964 +-385.889 21.1498 300.746 +-385.887 20.7719 295.373 +-140.48 7.42613 105.598 +-143.408 7.44416 105.855 +-143.196 7.29839 103.782 +-142.959 7.15338 101.72 +-141.959 6.97308 99.1559 +-142.162 6.85413 97.4644 +-144.667 6.84529 97.3388 +-149.015 6.91909 98.3881 +-657.434 29.9505 425.891 +-381.129 17.0331 242.208 +-381.113 16.7062 237.559 +-383.603 16.4906 234.493 +-382.039 16.1033 228.986 +-382.477 15.8048 224.741 +-382.523 15.4929 220.306 +-381.999 15.1614 215.593 +-381.334 14.8283 210.856 +-381.231 14.5207 206.481 +-383.023 14.2868 203.155 +-384.076 14.0258 199.444 +-719.577 25.7204 365.74 +-722.57 25.2727 359.372 +-731.259 25.02 355.78 +-404.448 13.533 192.437 +-406.026 13.2819 188.867 +-407.39 13.0241 185.201 +-406.893 12.7087 180.715 +-404.607 12.3416 175.495 +-405.759 12.0824 171.81 +-404.197 11.745 167.012 +-404.53 11.4656 163.038 +-405.011 11.1918 159.145 +-406.574 10.9484 155.685 +-406.703 10.6672 151.685 +-406.887 10.389 147.73 +-407.692 10.1278 144.015 +-404.777 9.77739 139.033 +-404.65 9.49805 135.06 +-406.291 9.2608 131.687 +-393.98 8.71432 123.916 +-383.191 8.21842 116.864 +-378.542 7.86598 111.853 +-380.564 7.65525 108.856 +-379.381 7.38074 104.953 +-381.154 7.16454 101.878 +-380.192 6.89756 98.082 +-380.259 6.65098 94.5756 +-380.586 6.40975 91.1454 +-379.127 6.14023 87.3129 +-380.853 5.92308 84.2251 +-381.575 5.68971 80.9066 +-380.407 5.42932 77.2039 +-379.89 5.18018 73.6612 +-380.716 4.94998 70.3878 +-380.037 4.70089 66.8457 +-379.72 4.45764 63.3868 +-380.062 4.22282 60.0477 +-380.376 3.98792 56.7074 +-380.065 3.7471 53.283 +-379.624 3.50605 49.8554 +-379.947 3.27266 46.5367 +-379.544 3.03359 43.1371 +-379.311 2.79673 39.769 +-378.051 2.55366 36.3125 +-377.757 2.31846 32.9681 +-379.028 2.09262 29.7566 +-378.875 1.85855 26.4282 +-378.692 1.62483 23.1047 +-377.981 1.38964 19.7604 +-377.041 1.15483 16.4214 +-378.669 0.927637 13.1908 +-145.25 0.266821 3.79414 +-146.178 0.178994 2.54525 +-144.794 0.088643 1.26049 +95.9 0 0 +95.8963 0.0662365 0.83425 +96.7853 0.133711 1.68409 +96.6669 0.200347 2.52337 +96.741 0.267381 3.36767 +95.7088 0.330736 4.16563 +95.8684 0.397656 5.00849 +95.7211 0.463372 5.83618 +96.5642 0.534437 6.73125 +96.6013 0.601733 7.57884 +96.5313 0.668431 8.4189 +96.4539 0.735078 9.25831 +96.3692 0.801668 10.097 +96.3765 0.869094 10.9463 +96.1777 0.93466 11.7721 +96.071 1.00106 12.6083 +95.957 1.06737 13.4436 +95.7367 1.13244 14.2631 +96.5959 1.2109 15.2513 +96.2615 1.27495 16.0581 +96.2157 1.34277 16.9122 +95.9657 1.40773 17.7304 +95.8068 1.47396 18.5646 +95.6407 1.54007 19.3973 +95.4672 1.60607 20.2285 +96.1652 1.68737 21.2524 +96.0729 1.75551 22.1106 +95.8757 1.82179 22.9455 +95.6712 1.88794 23.7787 +95.3625 1.95196 24.585 +96.013 2.03619 25.6459 +95.8812 2.10455 26.5068 +95.5494 2.16851 27.3124 +96.1696 2.25465 28.3973 +95.7261 2.31636 29.1746 +96.5162 2.40857 30.3359 +96.2469 2.47514 31.1744 +96.6342 2.5591 32.2319 +96.3483 2.62575 33.0713 +95.9609 2.68955 33.8749 +96.5064 2.78009 35.0153 +96.1962 2.84664 35.8535 +96.8123 2.94134 37.0462 +97.2286 3.0313 38.1793 +96.9834 3.1013 39.0609 +96.6378 3.16817 39.9031 +96.3769 3.23788 40.7812 +96.1079 3.30748 41.6578 +96.5618 3.40271 42.8572 +96.1829 3.46928 43.6956 +96.6124 3.56568 44.9098 +96.2156 3.63227 45.7485 +96.5305 3.72635 46.9334 +96.116 3.79287 47.7713 +95.6941 3.85912 48.6056 +96.0633 3.95796 49.8505 +95.5349 4.02043 50.6374 +96.582 4.15047 52.2752 +96.1207 4.21702 53.1135 +95.6521 4.28324 53.9475 +95.9556 4.38477 55.2262 +96.0717 4.47899 56.413 +95.5742 4.54517 57.2465 +95.8368 4.64823 58.5446 +96.0838 4.752 59.8516 +95.3876 4.80968 60.578 +95.4407 4.90555 61.7855 +95.5633 5.00623 63.0536 +95.0077 5.07204 63.8825 +95.9283 5.21816 65.7229 +95.2674 5.27968 66.4976 +95.4958 5.39124 67.9028 +95.464 5.48956 69.1411 +95.5786 5.59765 70.5025 +95.6765 5.70632 71.8712 +95.0437 5.77219 72.7008 +95.0341 5.8766 74.0159 +95.0086 5.98143 75.3362 +95.6667 6.13149 77.2263 +94.987 6.19734 78.0556 +94.9895 6.3085 79.4557 +94.9747 6.42013 80.8616 +95.5462 6.57375 82.7965 +94.8178 6.63949 83.6245 +95.4198 6.80006 85.6469 +95.33 6.91383 87.0798 +95.2223 7.02799 88.5176 +94.9515 7.13162 89.8229 +95.0248 7.26291 91.4765 +94.6483 7.36155 92.7189 +94.6109 7.48821 94.3141 +94.4826 7.60972 95.8446 +94.7514 7.76578 97.8101 +94.6488 7.89408 99.4261 +94.184 7.99389 100.683 +94.5826 8.16952 102.895 +94.2805 8.28744 104.381 +94.4896 8.45302 106.466 +94.0789 8.56573 107.885 +94.2349 8.73273 109.989 +93.7827 8.84599 111.415 +93.8851 9.01426 113.535 +94.0205 9.18949 115.742 +94.1242 9.36551 117.959 +93.6421 9.48629 119.48 +93.8101 9.67624 121.872 +93.7026 9.84182 123.958 +93.0898 9.95706 125.409 +93.164 10.149 127.827 +115.153 12.7775 160.933 +115.576 13.064 164.541 +115.264 13.2738 167.184 +115.306 13.5301 170.412 +115.576 13.8204 174.068 +115.463 14.0722 177.24 +115.304 14.325 180.424 +115.257 14.5987 183.871 +115.106 14.8668 187.248 +115.369 15.1967 191.403 +115.008 15.4531 194.633 +115.1 15.7787 198.734 +115.326 16.1332 203.198 +114.367 16.3299 205.676 +112.132 16.3457 205.874 +109.856 16.3526 205.962 +107.264 16.3086 205.407 +105.008 16.3115 205.443 +102.447 16.263 204.832 +100.255 16.2691 204.909 +98.1565 16.2877 205.143 +95.5963 16.2258 204.364 +93.7621 16.2839 205.097 +91.5564 16.2758 204.994 +91.5129 16.6578 209.805 +91.3529 17.0336 214.539 +91.0021 17.3886 219.01 +90.8796 17.803 224.229 +90.8557 18.2554 229.927 +90.7388 18.7091 235.641 +90.5636 19.1713 241.463 +90.3275 19.6422 247.394 +89.9943 20.1142 253.339 +89.694 20.6171 259.673 +89.5116 21.1737 266.683 +89.4604 21.7917 274.467 +88.9187 22.3207 281.129 +89.0272 23.0473 290.281 +88.7548 23.715 298.691 +88.5347 24.4373 307.788 +88.2421 25.184 317.193 +88.0502 26.0085 327.577 +87.8583 26.8882 338.657 +87.5515 27.7926 350.048 +87.0051 28.6832 361.265 +86.8536 29.7756 375.024 +86.4027 30.8467 388.514 +86.0962 32.0587 403.78 +85.5288 33.2726 419.069 +85.2344 34.7056 437.117 +84.8489 36.2339 456.367 +84.393 37.8813 477.116 +84.0753 39.7648 500.838 +83.9271 41.9398 528.233 +91.4201 48.4149 609.787 +85.8837 48.3665 609.177 +81.6441 49.0832 618.204 +80.5556 51.9265 654.015 +77.9517 54.1506 682.028 +75.8668 57.1305 719.56 +75.6798 62.2071 783.499 +74.3177 67.2322 846.79 +75.0697 75.4948 950.859 +72.5956 82.1677 1034.9 +70.1692 90.8026 1143.66 +67.0947 101.328 1276.22 +61.5993 111.666 1406.43 +114.355 259.184 3264.43 +85.774 259.254 3265.3 +57.1793 259.271 3265.52 +28.5907 259.301 3265.9 +2.00609e-13 259.311 3266.02 +-28.5907 259.301 3265.9 +-57.1793 259.271 3265.52 +-85.7635 259.222 3264.91 +-114.341 259.152 3264.03 +-142.91 259.064 3262.91 +-171.468 258.955 3261.55 +-200.013 258.827 3259.93 +-228.543 258.679 3258.07 +-257.056 258.511 3255.95 +-285.548 258.324 3253.59 +-314.058 258.148 3251.38 +-342.467 257.89 3248.13 +-137.406 95.4518 1202.22 +-148.888 95.9733 1208.79 +-171.198 102.922 1296.3 +-456.028 256.818 3234.63 +-129.466 68.5637 863.561 +-136.614 68.2684 859.842 +-159.436 75.4078 949.763 +-568.993 255.402 3216.8 +-597.131 254.999 3211.72 +-153.43 62.4731 786.85 +-157.022 61.0851 769.368 +-171.361 63.8078 803.66 +-117.375 41.9042 527.784 +-120.776 41.4051 521.498 +-125.057 41.2278 519.265 +-129.888 41.232 519.318 +-138.135 42.2748 532.451 +-848.072 250.505 3155.12 +-875.66 249.91 3147.62 +-903.181 249.296 3139.89 +-930.633 248.662 3131.9 +-958.014 248.01 3123.69 +-985.202 247.309 3114.86 +-169.434 41.2725 519.828 +-147.198 34.8191 438.547 +-149.599 34.3869 433.103 +-1093.65 244.437 3078.69 +-509.986 110.9 1396.78 +-1147.38 242.889 3059.19 +-434.88 89.6661 1129.35 +-423.309 85.0542 1071.26 +-418.81 82.0434 1033.34 +-424.358 81.0857 1021.28 +-424.725 79.1941 997.451 +-414.54 75.4572 950.385 +-415.481 73.8593 930.26 +-395.908 68.7585 866.015 +-431.789 73.2885 923.07 +-434.257 72.0588 907.582 +-435.697 70.7032 890.509 +-438.568 69.6205 876.872 +-439.372 68.2501 859.611 +-144.851 22.0232 277.382 +-145.63 21.6777 273.031 +-146.631 21.3745 269.213 +-150.339 21.4664 270.369 +-454.655 63.6028 801.078 +-112.15 15.3743 193.64 +-110.846 14.894 187.59 +-111.866 14.7354 185.593 +-112.912 14.5834 183.678 +-114.145 14.4579 182.097 +-115.896 14.3985 181.349 +-117.424 14.3112 180.25 +-118.887 14.2164 179.056 +-121.009 14.1994 178.841 +-123.816 14.2587 179.589 +-127.85 14.4514 182.016 +-492.61 54.6603 688.447 +-495.856 54.0171 680.346 +-498.878 53.3608 672.08 +-501.914 52.7171 663.973 +-505.698 52.1612 656.972 +-509.275 51.5916 649.797 +-512.33 50.9778 642.066 +-515.854 50.419 635.029 +-518.849 49.8165 627.439 +-525.029 49.5229 623.742 +-526.572 48.7973 614.603 +-530.424 48.2944 608.269 +-163.402 14.6179 184.113 +-164.539 14.4633 182.166 +-167.344 14.4542 182.051 +-544.985 46.2557 582.592 +-549.445 45.8259 577.178 +-553.018 45.325 570.87 +-555.821 44.7664 563.834 +-559.958 44.3192 558.201 +-562.683 43.7643 551.212 +-566.192 43.2751 545.051 +-570.362 42.8388 539.555 +-2396.13 176.849 2227.42 +-588.863 42.7075 537.901 +-581.214 41.42 521.685 +-585.983 41.0327 516.808 +-388.826 26.752 336.942 +-388.491 26.2613 330.762 +-385.474 25.6003 322.436 +-388.281 25.3331 319.071 +-386.941 24.8 312.356 +-386.374 24.3248 306.371 +-386.913 23.9255 301.342 +-384.459 23.349 294.081 +-141.039 8.41186 105.948 +-143.247 8.38939 105.664 +-143.601 8.25761 104.005 +-142.877 8.06615 101.593 +-141.713 7.85369 98.9174 +-141.832 7.71517 97.1727 +-144.667 7.72314 97.2731 +-148.515 7.78019 97.9916 +-658.189 33.8302 426.092 +-379.526 19.1367 241.027 +-382.809 18.9325 238.456 +-381.13 18.4854 232.824 +-382.039 18.1684 228.832 +-382.046 17.8116 224.337 +-383.649 17.5311 220.805 +-380.52 17.0395 214.613 +-380.897 16.7108 210.473 +-382.725 16.4471 207.151 +-383.817 16.1523 203.439 +-383.366 15.7953 198.942 +-720.913 29.0727 366.172 +-721.407 28.4677 358.552 +-730.09 28.1835 354.972 +-404.99 15.2889 192.564 +-406.026 14.9852 188.739 +-406.025 14.6451 184.456 +-405.523 14.2901 179.984 +-404.515 13.9211 175.336 +-404.102 13.5762 170.993 +-405.676 13.2996 167.509 +-405.828 12.9774 163.451 +-406.313 12.6676 159.549 +-406.201 12.3411 155.437 +-406.328 12.0241 151.443 +-404.726 11.659 146.846 +-405.713 11.3711 143.219 +-405.627 11.0544 139.231 +-405.598 10.7412 135.285 +-404.294 10.397 130.951 +-393.98 9.83185 123.832 +-383.765 9.28629 116.961 +-380.939 8.93091 112.485 +-380.179 8.62825 108.673 +-381.405 8.37166 105.441 +-381.154 8.08332 101.81 +-381.16 7.80192 98.2654 +-381.132 7.52113 94.7288 +-379.322 7.20772 90.7813 +-381.368 6.9686 87.7696 +-380.56 6.67752 84.1035 +-379.228 6.37987 80.3545 +-379.917 6.11769 77.0524 +-379.301 5.83543 73.4973 +-379.733 5.57035 70.1586 +-380.037 5.30373 66.8006 +-379.72 5.02929 63.344 +-377.692 4.73464 59.6328 +-380.376 4.49933 56.6692 +-379.57 4.22212 53.1777 +-379.327 3.95257 49.7826 +-379.153 3.68464 46.4081 +-379.445 3.42172 43.0967 +-379.51 3.15704 39.763 +-378.848 2.88721 36.3645 +-378.654 2.62199 33.024 +-378.928 2.36036 29.7287 +-377.977 2.09192 26.3478 +-378.493 1.83223 23.077 +-378.381 1.5695 19.7679 +-377.94 1.30603 16.4494 +-378.769 1.04687 13.1854 +-148.549 0.307875 3.87769 +-145.178 0.200567 2.52614 +-145.394 0.100425 1.26486 +95.9 0 0 +95.8963 0.0737598 0.833618 +95.8854 0.147514 1.66718 +95.8671 0.221257 2.5006 +96.741 0.297751 3.36512 +95.8087 0.368687 4.16682 +96.6673 0.446514 5.0464 +96.6194 0.520847 5.8865 +96.5642 0.59514 6.72615 +96.5016 0.669388 7.56528 +96.4316 0.743585 8.40385 +96.4539 0.81857 9.25131 +96.3692 0.892724 10.0894 +96.2771 0.966812 10.9267 +96.1777 1.04082 11.7631 +96.071 1.11476 12.5988 +95.957 1.18861 13.4334 +95.7367 1.26107 14.2523 +95.6082 1.33465 15.084 +95.3738 1.40668 15.898 +96.2157 1.49528 16.8994 +96.064 1.56923 17.7351 +95.6105 1.63801 18.5125 +95.6407 1.715 19.3826 +95.4672 1.7885 20.2132 +96.1652 1.87902 21.2363 +96.0729 1.9549 22.0939 +95.8757 2.02872 22.9281 +95.6712 2.10238 23.7607 +95.4594 2.17589 24.5914 +96.1096 2.26975 25.6523 +95.7849 2.34123 26.4601 +95.6455 2.41724 27.3192 +96.1696 2.51074 28.3758 +95.9174 2.58461 29.2108 +96.3254 2.67684 30.2531 +96.2469 2.75627 31.1508 +95.7807 2.8246 31.9231 +96.3483 2.92399 33.0463 +95.9609 2.99503 33.8493 +96.4125 3.09285 34.9547 +96.1962 3.16997 35.8263 +96.8123 3.27542 37.0182 +96.4843 3.34976 37.8583 +96.9834 3.45355 39.0313 +96.6378 3.52802 39.8729 +96.2848 3.60221 40.7114 +96.9332 3.71479 41.9838 +96.7445 3.79637 42.9058 +96.3649 3.87063 43.7451 +95.978 3.94461 44.5811 +96.2156 4.04484 45.7139 +96.5305 4.1496 46.8979 +96.2949 4.23155 47.8241 +96.4069 4.32946 48.9306 +96.7729 4.44007 50.1808 +96.3296 4.51433 51.02 +95.8789 4.58825 51.8554 +96.2082 4.70028 53.1216 +95.6521 4.76975 53.9067 +95.869 4.87839 55.1346 +95.4685 4.95642 56.0165 +95.5742 5.06143 57.2032 +95.8368 5.17619 58.5002 +95.9142 5.28241 59.7007 +95.3032 5.35124 60.4786 +95.4407 5.46273 61.7387 +95.5633 5.57485 63.0058 +95.7538 5.6925 64.3355 +95.269 5.77092 65.2218 +95.4312 5.88948 66.5617 +95.5772 6.00871 67.9092 +95.6258 6.12344 69.2058 +95.7394 6.24394 70.5677 +95.7564 6.35977 71.8768 +95.6784 6.47073 73.1309 +95.0341 6.54408 73.9598 +95.7912 6.71568 75.8993 +95.6667 6.82793 77.1678 +95.6814 6.95171 78.5668 +94.9895 7.02504 79.3955 +94.9747 7.14934 80.8004 +95.0179 7.27994 82.2764 +95.4919 7.44619 84.1553 +95.4941 7.57833 85.6487 +95.33 7.69912 87.0138 +94.564 7.77215 87.8392 +95.0966 7.95379 89.8921 +95.0248 8.08786 91.4073 +94.791 8.21005 92.7883 +94.6109 8.33874 94.2427 +94.4826 8.47406 95.772 +94.8903 8.66052 97.8794 +94.5111 8.77793 99.2063 +94.2522 8.90829 100.68 +94.6502 9.10395 102.891 +94.3474 9.23528 104.375 +94.4896 9.41314 106.385 +94.0789 9.53865 107.804 +94.2349 9.72462 109.906 +93.7184 9.84395 111.254 +93.9488 10.0449 113.525 +94.0205 10.2333 115.654 +94.1242 10.4293 117.87 +93.6421 10.5638 119.39 +93.8101 10.7753 121.78 +93.7026 10.9597 123.864 +93.3872 11.1234 125.715 +92.3998 11.209 126.682 +115.56 14.279 161.379 +115.633 14.5551 164.498 +115.207 14.7742 166.975 +115.25 15.0596 170.2 +115.631 15.3975 174.019 +115.355 15.6558 176.939 +115.251 15.9446 180.203 +115.098 16.2345 183.479 +115.002 16.5404 186.936 +114.905 16.8548 190.49 +115.414 17.2691 195.171 +115.1 17.5709 198.583 +115.03 17.9196 202.524 +114.754 18.2463 206.216 +112.085 18.1945 205.631 +109.903 18.2178 205.894 +107.218 18.1531 205.162 +105.008 18.1642 205.288 +102.849 18.1811 205.479 +100.65 18.1883 205.56 +98.1565 18.1377 204.988 +95.9343 18.1326 204.931 +93.7621 18.1335 204.941 +91.6378 18.1406 205.021 +91.473 18.5418 209.555 +91.3529 18.9684 214.376 +91.0404 19.3718 218.936 +90.8046 19.8087 223.874 +90.929 20.3453 229.939 +90.7746 20.8423 235.556 +90.5986 21.3571 241.374 +90.3275 21.8733 247.207 +89.9943 22.3988 253.147 +89.8243 22.9923 259.854 +89.5116 23.5786 266.481 +89.3368 24.2333 273.88 +88.9187 24.8559 280.916 +88.8518 25.6145 289.49 +88.698 26.3917 298.274 +88.5623 27.2214 307.651 +88.1619 28.019 316.665 +87.9985 28.9456 327.137 +87.7081 29.891 337.822 +87.358 30.881 349.01 +87.0051 31.9411 360.992 +86.7636 33.1233 374.352 +86.5975 34.4278 389.096 +85.9715 35.6483 402.89 +85.6684 37.1123 419.435 +85.2153 38.6389 436.689 +84.8489 40.3495 456.021 +84.393 42.184 476.754 +83.9762 44.2292 499.869 +83.8176 46.6425 527.144 +91.5236 53.9751 610.016 +85.9951 53.93 609.506 +81.6311 54.6495 617.637 +80.6653 57.9031 654.409 +78.0876 60.4062 682.699 +75.7622 63.5318 718.024 +75.8523 69.4307 784.691 +73.5507 74.096 837.417 +75.0697 84.0697 950.139 +72.3723 91.2193 1030.94 +69.5831 100.271 1133.24 +66.0061 111.006 1254.57 +55.6191 112.277 1268.93 +44.1863 111.523 1260.41 +85.7635 288.665 3262.43 +57.1793 288.72 3263.05 +28.5907 288.753 3263.43 +2.00609e-13 288.764 3263.55 +-28.5907 288.753 3263.43 +-57.1793 288.72 3263.05 +-85.7635 288.665 3262.43 +-114.341 288.588 3261.56 +-142.91 288.489 3260.44 +-171.468 288.368 3259.08 +-200.013 288.225 3257.46 +-228.543 288.061 3255.6 +-257.056 287.874 3253.49 +-285.548 287.665 3251.13 +-126.076 115.402 1304.24 +-342.467 287.182 3245.67 +-137.825 106.617 1204.96 +-149.911 107.609 1216.18 +-165.82 111.011 1254.63 +-456.028 285.988 3232.18 +-129.614 76.4386 863.893 +-136.755 76.1009 860.077 +-159.997 84.2684 952.384 +-568.993 284.412 3214.36 +-597.131 283.963 3209.29 +-153.468 69.5863 786.45 +-157.222 68.1097 769.762 +-171.548 71.1329 803.929 +-117.505 46.7154 527.968 +-121.001 46.1939 522.074 +-125.267 45.9877 519.743 +-130.13 46.0007 519.891 +-138.736 47.2813 534.363 +-848.072 278.959 3152.73 +-875.66 278.296 3145.24 +-903.181 277.612 3137.51 +-930.633 276.906 3129.53 +-958.014 276.18 3121.33 +-985.202 275.399 3112.5 +-169.094 45.8682 518.393 +-147.61 38.8826 439.443 +-152.333 38.9926 440.686 +-1093.78 272.234 3076.73 +-1120.56 271.349 3066.73 +-140.013 33.0058 373.025 +-395.782 90.8738 1027.04 +-413.817 92.5908 1046.44 +-424.017 92.4982 1045.4 +-425.353 90.5072 1022.89 +-423.904 88.0187 994.77 +-424.03 85.9516 971.407 +-413.936 81.9425 926.097 +-395.286 76.448 863.999 +-432.043 81.6607 922.912 +-433.869 80.1718 906.085 +-436.355 78.8528 891.178 +-438.345 77.4888 875.763 +-439.599 76.0414 859.404 +-145.081 24.5637 277.614 +-145.442 24.1088 272.472 +-146.583 23.7947 268.922 +-150.63 23.9508 270.686 +-454.901 70.8654 800.906 +-112 17.0977 193.235 +-111.151 16.6312 187.963 +-111.712 16.3865 185.196 +-112.651 16.2022 183.114 +-114.251 16.1149 182.127 +-115.949 16.0413 181.296 +-117.533 15.9515 180.281 +-119.218 15.8752 179.418 +-121.345 15.856 179.201 +-123.76 15.871 179.371 +-128.711 16.2012 183.103 +-493.075 60.9262 688.575 +-496.326 60.2095 680.475 +-499.651 59.5138 672.612 +-502.937 58.8245 664.823 +-506.246 58.1488 657.185 +-509.46 57.4724 649.541 +-512.33 56.768 641.58 +-2061.84 224.411 2536.25 +-522.984 55.9169 631.961 +-524.322 55.0736 622.43 +-527.482 54.4337 615.199 +-531.211 53.8596 608.71 +-163.8 16.3179 184.421 +-164.004 16.0537 181.436 +-169.506 16.3039 184.263 +-545.599 51.5676 582.806 +-549.445 51.0309 576.741 +-553.156 50.4859 570.581 +-556.872 49.9453 564.472 +-559.958 49.3531 557.779 +-563.539 48.8093 551.633 +-567.056 48.2638 545.468 +-571.015 47.7592 539.764 +-571.48 46.9695 530.84 +-590.928 47.7251 539.379 +-582.105 46.1953 522.09 +-586.208 45.7109 516.615 +-590.711 45.2582 511.499 +-594.942 44.785 506.151 +-390.836 28.9046 326.674 +-387.896 28.1825 318.513 +-385.464 27.5114 310.928 +-384.652 26.967 304.775 +-385.101 26.5182 299.703 +-385.49 26.0707 294.646 +-141.119 9.3726 105.927 +-143.167 9.33708 105.526 +-143.034 9.15922 103.516 +-141.9 8.92098 100.823 +-141.877 8.75585 98.9568 +-141.832 8.59148 97.0991 +-146.242 8.69399 98.2577 +-148.682 8.67362 98.0274 +-657.685 37.6439 425.444 +-383.068 21.5091 243.091 +-381.113 20.9895 237.219 +-382.153 20.6403 233.273 +-383.668 20.3184 229.634 +-383.253 19.8972 224.874 +-384.082 19.5444 220.887 +-381.999 19.0486 215.284 +-379.76 18.5532 209.685 +-382.022 18.2815 206.614 +-384.7 18.0284 203.753 +-385.761 17.6992 200.033 +-723.052 32.4709 366.979 +-721.944 31.7248 358.547 +-407.333 17.5102 197.897 +-405.532 17.0483 192.676 +-405.391 16.6612 188.301 +-405.661 16.2939 184.151 +-405.249 15.9024 179.726 +-406.258 15.5691 175.959 +-402.905 15.0735 170.357 +-406.784 14.8508 167.84 +-404.808 14.4151 162.917 +-406.686 14.1194 159.575 +-405.267 13.7113 154.963 +-402.956 13.2787 150.073 +-405.195 12.9984 146.905 +-406.467 12.6863 143.378 +-406.384 12.3329 139.384 +-405.977 11.9724 135.309 +-405.245 11.6052 131.16 +-387.591 10.771 121.731 +-385.869 10.3977 117.513 +-382.186 9.97792 112.768 +-380.564 9.61797 108.7 +-381.116 9.31548 105.282 +-381.154 9.00145 101.733 +-380.288 8.66823 97.9666 +-381.132 8.3754 94.6571 +-380.78 8.05725 91.0614 +-380.102 7.73434 87.4119 +-380.853 7.4417 84.1045 +-380.988 7.13749 80.6664 +-379.231 6.80026 76.8551 +-379.693 6.50496 73.5177 +-379.438 6.19822 70.051 +-380.924 5.91992 66.9057 +-379.72 5.60053 63.296 +-379.075 5.29171 59.8058 +-380.079 5.00647 56.5821 +-379.174 4.69678 53.082 +-378.732 4.39461 49.667 +-378.855 4.09992 46.3365 +-378.75 3.80339 42.9852 +-379.51 3.51562 39.7329 +-378.151 3.20923 36.2701 +-377.956 2.91442 32.9382 +-378.629 2.62638 29.6828 +-378.276 2.33138 26.3488 +-378.692 2.04142 23.0717 +-378.381 1.74777 19.7529 +-378.539 1.45668 16.4631 +-378.269 1.16425 13.1581 +-148.249 0.342152 3.86693 +-144.278 0.221963 2.50858 +-144.694 0.111293 1.25782 +95.9 0 0 +95.7964 0.0811922 0.83205 +95.8854 0.162548 1.66578 +95.8671 0.243806 2.4985 +95.8416 0.325046 3.33104 +96.7079 0.410074 4.2024 +96.6673 0.49202 5.04217 +96.6194 0.573928 5.88156 +96.664 0.65647 6.72745 +96.5016 0.737608 7.55894 +96.4316 0.819367 8.3968 +96.4539 0.901994 9.24355 +96.3692 0.983705 10.0809 +96.2771 1.06534 10.9175 +96.1777 1.1469 11.7533 +96.071 1.22837 12.5882 +95.8579 1.3084 13.4083 +95.8356 1.39102 14.255 +96.4972 1.48434 15.2114 +96.2615 1.56446 16.0325 +96.1172 1.64599 16.868 +95.9657 1.72739 17.7021 +95.6105 1.80495 18.4969 +95.6407 1.88978 19.3663 +95.2716 1.96673 20.1549 +95.3841 2.05371 21.0462 +96.0729 2.15413 22.0753 +95.7784 2.23321 22.8857 +95.5741 2.31429 23.7167 +95.3625 2.3952 24.5458 +96.013 2.49856 25.605 +95.7849 2.57984 26.4379 +96.4145 2.68501 27.5157 +96.1696 2.76662 28.352 +95.9174 2.84802 29.1863 +95.6578 2.92921 30.0182 +96.0567 3.03117 31.0632 +95.7807 3.11247 31.8963 +96.3483 3.22198 33.0186 +95.9609 3.30027 33.8209 +96.5064 3.41138 34.9595 +96.1026 3.48963 35.7614 +96.8123 3.60924 36.9871 +96.3913 3.68758 37.79 +96.149 3.77278 38.6631 +96.6378 3.88757 39.8395 +96.3769 3.97312 40.7161 +96.0162 4.05465 41.5516 +96.7445 4.18327 42.8698 +96.3649 4.26511 43.7084 +96.6124 4.37535 44.8381 +96.2156 4.45706 45.6756 +96.5305 4.5725 46.8585 +96.116 4.65413 47.6951 +95.6941 4.73542 48.5281 +95.9746 4.85221 49.725 +96.4179 4.97896 51.0239 +95.8789 5.05585 51.8119 +96.2082 5.1793 53.077 +95.6521 5.25585 53.8615 +95.9556 5.38043 55.1381 +96.0717 5.49605 56.323 +95.5742 5.57726 57.1552 +95.8368 5.70372 58.4512 +95.9142 5.82076 59.6506 +95.3032 5.89661 60.4279 +95.5246 6.02476 61.7411 +94.8962 6.10012 62.5135 +95.8367 6.27808 64.3371 +95.269 6.35906 65.1671 +95.3493 6.48412 66.4487 +95.4958 6.61545 67.7945 +95.464 6.73609 69.0308 +95.659 6.87451 70.4493 +95.6765 7.00207 71.7566 +95.6784 7.13019 73.0695 +95.0341 7.21102 73.8978 +95.0086 7.33965 75.216 +95.6667 7.52379 77.1031 +94.987 7.60458 77.931 +94.9895 7.74099 79.3289 +95.6591 7.93473 81.3144 +94.9425 8.0155 82.142 +95.4919 8.20506 84.0847 +95.4198 8.34417 85.5102 +94.6664 8.42472 86.3357 +95.076 8.61061 88.2407 +95.0966 8.7644 89.8167 +94.9529 8.90537 91.2614 +94.791 9.04677 92.7104 +94.6109 9.18858 94.1636 +94.9732 9.38617 96.1885 +94.7514 9.52917 97.6541 +94.5111 9.67252 99.1231 +94.7978 9.87299 101.177 +94.5826 10.0246 102.731 +94.2805 10.1693 104.214 +94.4896 10.3725 106.296 +94.0133 10.5035 107.639 +94.17 10.7083 109.738 +93.847 10.8621 111.313 +93.8215 11.0537 113.277 +94.1463 11.2912 115.711 +93.5639 11.4238 117.07 +93.5805 11.6328 119.212 +93.3231 11.8118 121.046 +93.3415 12.03 123.282 +92.9113 12.1945 124.968 +92.2235 12.3279 126.335 +114.979 15.6552 160.433 +115.576 16.0305 164.279 +115.66 16.344 167.491 +115.641 16.6507 170.635 +115.576 16.9586 173.791 +115.463 17.2677 176.957 +115.842 17.6597 180.975 +115.151 17.8973 183.41 +114.95 18.2178 186.694 +114.75 18.5476 190.074 +115.008 18.9621 194.322 +115.1 19.3617 198.417 +115.03 19.7459 202.354 +114.706 20.0975 205.957 +112.085 20.0488 205.458 +109.856 20.0659 205.633 +107.634 20.0806 205.785 +105.008 20.0154 205.116 +102.849 20.034 205.307 +100.738 20.0594 205.567 +98.544 20.0651 205.625 +95.9343 19.9806 204.759 +93.7621 19.9816 204.769 +91.8005 20.0248 205.212 +91.6724 20.4759 209.835 +91.3529 20.9015 214.197 +91.0021 21.3371 218.66 +90.8046 21.8275 223.687 +90.8557 22.4007 229.561 +90.7388 22.9574 235.266 +90.7037 23.561 241.451 +90.3275 24.1025 247 +90.1946 24.7366 253.498 +89.8243 25.3355 259.636 +89.6386 26.0184 266.635 +89.2132 26.6661 273.272 +89.0691 27.4354 281.156 +88.9395 28.2529 289.533 +88.698 29.0814 298.023 +88.5623 29.9957 307.393 +88.2154 30.8932 316.59 +88.1796 31.9612 327.535 +87.7081 32.9373 337.539 +87.3822 34.0376 348.814 +87.0051 35.1963 360.689 +86.7636 36.499 374.038 +86.4027 37.8511 387.895 +85.9299 39.2624 402.357 +85.5687 40.847 418.596 +85.1008 42.5196 435.736 +84.8124 44.4426 455.444 +84.2888 46.4257 475.766 +83.9597 48.7272 499.351 +83.5986 51.2618 525.326 +91.6566 59.5624 610.39 +86.1064 59.5032 609.783 +81.7616 60.3153 618.105 +80.6409 63.7851 653.663 +78.1668 66.63 682.818 +75.6368 69.8908 716.234 +75.9961 76.6517 785.519 +72.9494 80.9798 829.873 +74.999 92.5504 948.448 +72.3026 100.42 1029.09 +68.6491 109.007 1117.09 +66.8068 123.803 1268.72 +142.91 317.89 3257.71 +114.341 317.999 3258.82 +85.7635 318.084 3259.7 +22.3234 124.207 1272.86 +28.5907 318.181 3260.69 +7.83748e-14 124.313 1273.95 +-28.5907 318.181 3260.69 +-22.2989 124.071 1271.47 +-32.6112 120.95 1239.48 +-44.5422 123.878 1269.49 +-54.2582 120.693 1236.85 +-66.7807 123.755 1268.23 +-200.013 317.6 3254.73 +-89.0511 123.681 1267.47 +-97.6973 120.56 1235.49 +-111.359 123.618 1266.82 +-119.625 120.657 1236.48 +-133.681 123.525 1265.88 +-137.768 117.435 1203.46 +-148.924 117.795 1207.16 +-163.784 120.824 1238.19 +-456.028 315.135 3229.47 +-129.732 84.3056 863.955 +-137.084 84.0581 861.419 +-160.047 92.8853 951.88 +-568.993 313.397 3211.67 +-597.131 312.903 3206.6 +-153.639 76.7639 786.67 +-157.341 75.1081 769.701 +-172.463 78.8002 807.537 +-117.678 51.5523 528.303 +-121.024 50.9112 521.733 +-125.477 50.7595 520.178 +-130.348 50.7737 520.324 +-139.462 52.3725 536.709 +-848.072 307.388 3150.09 +-875.66 306.658 3142.6 +-903.181 305.904 3134.88 +-930.633 305.127 3126.91 +-958.014 304.326 3118.71 +-165.899 51.101 523.679 +-158.031 47.2361 484.071 +-147.801 42.9006 439.641 +-152.691 43.0675 441.352 +-1093.78 299.978 3074.15 +-1120.7 299.04 3064.53 +-441.366 114.649 1174.91 +-139.047 35.1795 360.517 +-140.003 34.5183 353.74 +-421.957 101.43 1039.44 +-426.807 100.072 1025.53 +-425.506 97.3556 997.691 +-425.665 95.0764 974.334 +-425.04 92.7157 950.142 +-428.337 91.2826 935.456 +-431.916 89.9568 921.868 +-434.644 88.5003 906.942 +-436.881 86.9937 891.504 +-438.568 85.4294 875.473 +-440.053 83.8777 859.57 +-145.035 27.0585 277.293 +-145.301 26.5401 271.98 +-146.917 26.2794 269.309 +-150.776 26.4172 270.721 +-454.901 78.0876 800.234 +-111.8 18.8065 192.728 +-110.542 18.2258 186.776 +-111.815 18.0731 185.211 +-112.651 17.8534 182.96 +-114.357 17.7738 182.144 +-116.057 17.6926 181.312 +-117.86 17.626 180.63 +-119.55 17.5417 179.766 +-121.401 17.48 179.133 +-124.213 17.5525 179.877 +-128.825 17.8683 183.112 +-493.656 67.2146 688.808 +-496.796 66.4086 680.549 +-500.186 65.6493 672.768 +-503.478 64.8893 664.98 +-506.794 64.1443 657.345 +-510.199 63.4215 649.938 +-513.077 62.6447 641.977 +-2062.09 247.312 2534.43 +-527.881 62.1926 637.344 +-523.358 60.5748 620.765 +-527.612 59.996 614.834 +-531.014 59.3267 607.974 +-161.812 17.7627 182.03 +-164.807 17.7765 182.172 +-169.776 17.9941 184.402 +-545.599 56.823 582.317 +-550.064 56.2951 576.907 +-553.156 55.6311 570.102 +-556.872 55.0355 563.998 +-559.958 54.3829 557.311 +-563.967 53.8246 551.589 +-567.703 53.2433 545.632 +-570.942 52.6198 539.243 +-571.553 51.763 530.462 +-591.739 52.6611 539.666 +-582.551 50.9423 522.051 +-586.357 50.3823 516.313 +-591.164 49.9089 511.462 +-594.942 49.3492 505.726 +-389.227 31.7193 325.056 +-387.124 30.9928 317.611 +-389.195 30.6086 313.674 +-385.278 29.7637 305.015 +-386.204 29.3045 300.31 +-386.601 28.8104 295.247 +-141.438 10.3511 106.077 +-143.006 10.2771 105.319 +-143.762 10.144 103.955 +-142.714 9.88649 101.316 +-141.713 9.63705 98.7596 +-141.997 9.47808 97.1305 +-145.828 9.55288 97.897 +-148.682 9.55758 97.9452 +-659.195 41.5756 426.062 +-381.888 23.6281 242.139 +-380.858 23.1132 236.862 +-382.494 22.7642 233.285 +-382.382 22.314 228.672 +-382.046 21.8561 223.979 +-382.87 21.4683 220.005 +-381.651 20.9708 214.907 +-382.121 20.5712 210.812 +-380.967 20.089 205.87 +-380.904 19.6696 201.573 +-714.221 36.1091 370.042 +-727.24 35.9874 368.795 +-722.481 34.9839 358.512 +-405.716 19.2181 196.946 +-407.427 18.8735 193.414 +-405.845 18.3797 188.353 +-403.568 17.8619 183.047 +-405.706 17.5429 179.778 +-406.349 17.1597 175.851 +-404.93 16.6932 171.07 +-404.752 16.2825 166.861 +-405.365 15.9061 163.004 +-404.825 15.4872 158.711 +-406.481 15.1539 155.295 +-405.954 14.7408 151.062 +-404.256 14.2899 146.441 +-405.713 13.9532 142.991 +-404.871 13.5393 138.749 +-405.977 13.1925 135.196 +-405.53 12.797 131.142 +-390.07 11.9446 122.408 +-382.809 11.3665 116.483 +-380.364 10.9424 112.136 +-381.333 10.6195 108.828 +-380.634 10.2519 105.06 +-381.154 9.91883 101.647 +-380.869 9.56624 98.0339 +-380.259 9.20783 94.361 +-381.072 8.8852 91.0547 +-380.979 8.54224 87.5401 +-379.682 8.17489 83.7755 +-380.988 7.8649 80.5988 +-380.113 7.51073 76.9692 +-378.81 7.15123 73.2851 +-379.733 6.83522 70.0467 +-380.924 6.52324 66.8496 +-379.03 6.16008 63.128 +-379.47 5.83709 59.818 +-379.386 5.50665 56.4317 +-378.282 5.16328 52.9128 +-379.327 4.85009 49.7032 +-378.359 4.51185 46.237 +-378.153 4.18441 42.8814 +-380.504 3.88407 39.8035 +-378.848 3.54282 36.3065 +-379.749 3.22668 33.0667 +-378.629 2.89405 29.6579 +-378.476 2.57033 26.3405 +-378.193 2.2465 23.022 +-378.68 1.92742 19.752 +-379.439 1.60894 16.4883 +-378.07 1.28222 13.1401 +-144.85 0.368379 3.77511 +-144.378 0.244754 2.50822 +-145.094 0.122975 1.26023 +95.8 0 0 +95.7964 0.0886951 0.831284 +95.8854 0.177569 1.66424 +96.7668 0.268836 2.51963 +95.8416 0.355083 3.32797 +95.8087 0.443803 4.15949 +95.8684 0.533045 4.99589 +95.8209 0.621783 5.82758 +96.5642 0.716395 6.71432 +96.5016 0.80577 7.55198 +96.4316 0.895084 8.38906 +96.4539 0.985346 9.23503 +96.3692 1.07461 10.0716 +96.2771 1.16379 10.9075 +96.1777 1.25288 11.7425 +96.071 1.34188 12.5766 +96.8482 1.44406 13.5343 +95.7367 1.518 14.2272 +96.5959 1.62317 15.213 +96.2615 1.70903 16.0177 +95.2309 1.78151 16.697 +95.9657 1.88702 17.6858 +95.8068 1.97579 18.5179 +95.6407 2.06442 19.3485 +95.4672 2.15289 20.1777 +95.2865 2.24119 21.0053 +95.9755 2.35081 22.0326 +95.7784 2.43958 22.8646 +95.6712 2.53072 23.7189 +96.2339 2.64045 24.7473 +96.013 2.72945 25.5814 +95.7849 2.81824 26.4136 +95.6455 2.90973 27.2711 +96.1696 3.02228 28.3259 +95.7261 3.105 29.1012 +95.4671 3.19351 29.9308 +96.0567 3.31128 31.0345 +95.7807 3.40009 31.8669 +96.2538 3.51626 32.9557 +96.0552 3.60879 33.8229 +95.6607 3.69396 34.6212 +96.1026 3.81211 35.7285 +95.7854 3.90094 36.5611 +96.4843 4.03224 37.7917 +96.8907 4.15321 38.9255 +96.6378 4.24682 39.8028 +96.2848 4.33613 40.6398 +96.1079 4.43357 41.553 +95.7396 4.52238 42.3854 +96.3649 4.65924 43.6681 +95.7967 4.73932 44.4187 +96.3961 4.87807 45.7191 +96.5305 4.99504 46.8154 +96.0265 5.07948 47.6068 +96.4069 5.21155 48.8446 +95.9746 5.3006 49.6792 +96.3296 5.43408 50.9302 +95.8789 5.52306 51.7642 +96.1207 5.65277 52.9799 +95.6521 5.74154 53.8119 +95.9556 5.87763 55.0873 +96.1578 6.00932 56.3216 +95.4027 6.08172 57.0002 +95.6662 6.21971 58.2934 +96.0838 6.36989 59.701 +95.3032 6.44151 60.3722 +95.4407 6.57572 61.6301 +95.6467 6.71654 62.9499 +95.0906 6.80483 63.7774 +95.1866 6.94068 65.0507 +95.4312 7.0894 66.4446 +95.4958 7.22678 67.7321 +95.6258 7.37103 69.0841 +95.659 7.50977 70.3844 +95.6765 7.64913 71.6905 +95.1231 7.74388 72.5785 +95.1129 7.8839 73.8909 +95.713 8.07733 75.7038 +95.045 8.16565 76.5315 +95.6814 8.36805 78.4285 +95.5257 8.50406 79.7032 +95.6591 8.66797 81.2395 +94.9425 8.7562 82.0664 +95.4919 8.96329 84.0073 +95.4198 9.11524 85.4315 +94.6664 9.20324 86.2562 +95.2223 9.42077 88.295 +94.9515 9.55969 89.5971 +94.809 9.71357 91.0393 +94.6483 9.86791 92.4858 +95.1766 10.0977 94.6394 +95.1134 10.2687 96.2418 +94.7514 10.4098 97.5641 +94.6488 10.5817 99.1761 +94.2522 10.7233 100.503 +94.5826 10.951 102.636 +94.8158 11.1722 104.71 +94.5559 11.3389 106.273 +94.1445 11.4901 107.69 +94.105 11.6898 109.561 +94.3612 11.9308 111.82 +93.8851 12.0833 113.249 +94.0834 12.3264 115.527 +93.5639 12.4795 116.962 +93.6421 12.716 119.18 +93.7493 12.9622 121.486 +93.3415 13.1417 123.169 +93.5061 13.4067 125.653 +92.2823 13.4757 126.299 +111.495 16.5836 155.428 +115.633 17.5205 164.209 +115.264 17.7931 166.763 +115.529 18.1717 170.312 +115.079 18.4461 172.884 +115.355 18.8455 176.627 +115.358 19.2111 180.054 +115.098 19.5422 183.156 +114.95 19.9013 186.522 +114.905 20.2888 190.155 +114.957 20.7053 194.058 +114.95 21.1233 197.975 +114.981 21.5613 202.081 +114.997 22.0103 206.289 +112.562 21.9947 206.143 +109.856 21.9202 205.444 +107.634 21.9363 205.595 +105.507 21.969 205.901 +103.25 21.9709 205.919 +100.65 21.8939 205.198 +98.4579 21.9001 205.256 +96.357 21.9231 205.472 +94.1354 21.915 205.395 +91.8411 21.885 205.115 +91.6724 22.3681 209.642 +91.392 22.8427 214.091 +91.1169 23.3382 218.734 +90.8796 23.8643 223.665 +90.8557 24.4708 229.349 +90.7746 25.0888 235.141 +90.5986 25.7085 240.949 +90.2933 26.3198 246.679 +90.0945 26.9924 252.983 +89.9219 27.7067 259.678 +89.5751 28.4027 266.201 +89.3677 29.1808 273.494 +89.1893 30.0111 281.275 +89.1149 30.9246 289.837 +88.8968 31.8401 298.417 +88.5623 32.7676 307.11 +88.2421 33.7583 316.395 +88.1796 34.9147 327.234 +87.633 35.9503 336.94 +87.4064 37.1933 348.589 +86.9351 38.4179 360.067 +86.7186 39.8512 373.5 +86.5542 41.4215 388.217 +86.0754 42.9632 402.667 +85.6285 44.6528 418.503 +85.2916 46.5528 436.311 +84.5391 48.393 453.558 +84.4104 50.789 476.013 +83.9762 53.2405 498.99 +83.5829 55.9883 524.744 +91.7896 65.1609 610.713 +86.2177 65.0858 610.009 +81.5267 65.6996 615.761 +80.6166 69.6583 652.863 +78.3027 72.9138 683.375 +75.5427 76.2544 714.684 +76.2453 84.0095 787.369 +72.6356 88.0826 825.543 +74.5832 100.542 942.321 +72.5188 110.027 1031.22 +67.8799 117.747 1103.57 +64.5564 130.688 1224.86 +142.91 347.266 3254.71 +114.341 347.385 3255.82 +85.7635 347.478 3256.7 +57.1793 347.544 3257.31 +28.5907 347.584 3257.69 +7.45908e-14 129.244 1211.32 +-28.5907 347.584 3257.69 +-57.1793 347.544 3257.31 +-31.093 125.975 1180.69 +-42.4762 129.049 1209.49 +-51.8329 125.952 1180.47 +-63.6824 128.918 1208.27 +-200.013 346.949 3251.73 +-84.7471 128.58 1205.1 +-93.3349 125.82 1179.24 +-106.286 128.89 1208 +-114.2 125.829 1179.32 +-127.493 128.695 1206.17 +-136.138 126.769 1188.13 +-146.828 126.87 1189.07 +-157.845 127.202 1192.18 +-124.212 93.7677 878.826 +-129.954 92.2536 864.635 +-137.396 92.0355 862.591 +-160.36 101.668 952.867 +-568.993 342.358 3208.71 +-597.131 341.818 3203.65 +-153.907 84.0034 787.311 +-157.7 82.2358 770.745 +-161.88 80.8 757.288 +-117.743 56.3472 528.107 +-121.226 55.7089 522.124 +-125.454 55.4398 519.603 +-130.348 55.4656 519.844 +-140.038 57.4485 538.429 +-848.072 335.794 3147.19 +-875.66 334.996 3139.71 +-903.181 334.173 3131.99 +-930.633 333.323 3124.03 +-958.014 332.449 3115.83 +-166.29 55.9547 524.428 +-154.354 50.4004 472.372 +-147.896 46.8952 439.519 +-153.245 47.2179 442.544 +-1093.65 327.66 3070.95 +-1120.7 326.674 3061.71 +-1147.38 325.584 3051.5 +-434.27 120.026 1124.92 +-395.895 106.629 999.368 +-139.841 36.7212 344.165 +-1253.79 321.138 3009.83 +-413.901 103.452 969.588 +-394.243 96.1954 901.58 +-426.545 101.642 952.628 +-429.788 100.056 937.761 +-432.169 98.3272 921.559 +-434.859 96.7263 906.555 +-436.881 95.0327 890.683 +-438.746 93.3619 875.022 +-440.462 91.7138 859.576 +-145.543 29.6625 278.008 +-145.114 28.9552 271.379 +-146.726 28.6705 268.711 +-151.212 28.9419 271.254 +-455.492 85.4143 800.535 +-111.5 20.4894 192.034 +-110.948 19.9831 187.289 +-112.227 19.816 185.723 +-112.807 19.5304 183.046 +-114.622 19.4612 182.398 +-116.164 19.3453 181.312 +-117.805 19.2459 180.38 +-119.77 19.1981 179.932 +-121.569 19.1217 179.216 +-124.156 19.1657 179.628 +-128.711 19.502 182.781 +-493.365 73.3826 687.769 +-496.796 72.5453 679.922 +-500.186 71.7159 672.148 +-503.478 70.8857 664.367 +-507.159 70.1223 657.213 +-510.199 69.2823 649.339 +-513.263 68.4584 641.618 +-2061.84 270.133 2531.79 +-530.362 68.2591 639.75 +-523.743 66.2212 620.65 +-527.806 65.5644 614.494 +-531.605 64.881 608.09 +-163.601 19.6186 183.873 +-165.342 19.4822 182.595 +-169.235 19.5944 183.646 +-545.94 62.1128 582.145 +-550.271 61.5203 576.591 +-553.365 60.7948 569.792 +-557.153 60.1516 563.763 +-560.594 59.4759 557.43 +-564.181 58.8207 551.29 +-567.775 58.1709 545.199 +-571.232 57.5115 539.02 +-571.626 56.5536 530.042 +-592.402 57.5919 539.773 +-582.551 55.6498 521.571 +-586.657 55.0661 516.101 +-591.164 54.5209 510.991 +-595.626 53.9716 505.842 +-389.534 34.6777 325.012 +-388.127 33.9446 318.141 +-388.495 33.377 312.821 +-385.669 32.5471 305.044 +-384.786 31.8948 298.93 +-387.791 31.5698 295.884 +-141.678 11.3268 106.159 +-142.685 11.2015 104.985 +-143.115 11.0316 103.392 +-141.9 10.7386 100.646 +-141.877 10.5398 98.7827 +-142.244 10.372 97.2099 +-146.574 10.489 98.3073 +-149.266 10.4818 98.2391 +-383.44 26.4184 247.604 +-380.538 25.7205 241.062 +-382.215 25.339 237.487 +-382.494 24.8678 233.07 +-383.925 24.4745 229.384 +-382.046 23.8758 223.773 +-380.099 23.2824 218.211 +-381.303 22.8878 214.513 +-381.597 22.4413 210.328 +-382.022 22.0062 206.25 +-382.934 21.6019 202.461 +-715.463 39.5144 370.344 +-730.18 39.4719 369.945 +-722.481 38.2168 358.182 +-404.907 20.9521 196.371 +-403.636 20.4258 191.438 +-407.295 20.15 188.853 +-402.749 19.4729 182.507 +-402.599 19.0173 178.237 +-404.699 18.6692 174.975 +-406.587 18.3104 171.612 +-406.415 17.8601 167.392 +-404.53 17.3402 162.519 +-403.894 16.8794 158.2 +-406.574 16.558 155.188 +-405.579 16.0881 150.784 +-406.887 15.712 147.259 +-406.844 15.2851 143.258 +-406.1 14.8354 139.043 +-406.072 14.415 135.103 +-404.675 13.95 130.745 +-387.877 12.975 121.607 +-382.809 12.4169 116.375 +-380.939 11.9716 112.202 +-380.179 11.5659 108.4 +-380.249 11.1879 104.857 +-380.188 10.8079 101.296 +-380.676 10.4449 97.8938 +-380.259 10.0587 94.2741 +-381.072 9.70627 90.9709 +-381.856 9.3531 87.6607 +-378.803 8.90965 83.5046 +-380.988 8.59169 80.5245 +-380.407 8.21113 76.9578 +-381.068 7.85863 73.654 +-380.815 7.48812 70.1815 +-379.348 7.09658 66.5118 +-379.72 6.74158 63.1847 +-379.865 6.38313 59.8251 +-379.98 6.02493 56.4679 +-381.055 5.68176 53.2515 +-379.129 5.29551 49.6315 +-378.756 4.93395 46.2428 +-379.147 4.5831 42.9545 +-378.515 4.2208 39.559 +-378.051 3.86207 36.1967 +-378.355 3.51191 32.915 +-378.629 3.16148 29.6306 +-379.174 2.81303 26.3648 +-379.092 2.45992 23.0553 +-378.88 2.10664 19.7442 +-377.94 1.75068 16.4081 +-376.471 1.39478 13.0724 +-142.551 0.396032 3.71176 +-144.778 0.268112 2.51285 +-145.094 0.134339 1.25907 +96 0 0 +95.9963 0.0963915 0.832183 +95.9854 0.192776 1.6643 +95.9671 0.289146 2.4963 +95.9415 0.385493 3.3281 +96.9077 0.48683 4.20298 +96.8671 0.584115 5.04287 +96.8191 0.681354 5.88238 +95.7661 0.770516 6.65214 +95.8038 0.867546 7.48984 +96.7305 0.973736 8.40661 +96.653 1.07082 9.24481 +96.5681 1.16783 10.0823 +96.4758 1.26474 10.919 +96.3762 1.36157 11.7549 +96.2693 1.45829 12.5899 +96.155 1.55489 13.4239 +96.0334 1.65138 14.257 +95.8058 1.74594 15.0733 +96.3601 1.85537 16.0181 +95.3294 1.93406 16.6975 +96.1623 2.05068 17.7042 +95.7087 2.14057 18.4803 +95.7386 2.24117 19.3488 +95.3694 2.33244 20.1368 +95.3841 2.43309 21.0058 +96.0729 2.55206 22.0329 +95.9729 2.65112 22.8881 +95.6712 2.74459 23.6951 +96.3307 2.86648 24.7473 +96.1096 2.96309 25.5815 +95.8812 3.05948 26.4136 +96.5107 3.18418 27.4902 +96.2655 3.28096 28.3257 +95.8217 3.37076 29.101 +96.4208 3.498 30.1995 +96.1518 3.59467 31.0341 +95.7807 3.68743 31.835 +96.4429 3.82093 32.9874 +96.0552 3.91377 33.789 +96.5064 4.04155 34.8922 +96.2899 4.14232 35.7622 +96.9056 4.28009 36.9515 +96.5773 4.37722 37.7901 +96.2417 4.47403 38.626 +96.7302 4.61013 39.8009 +96.3769 4.70706 40.6378 +96.9332 4.84954 41.8679 +96.6531 4.95136 42.7469 +96.2739 5.04822 43.5831 +96.0686 5.15442 44.5 +96.3058 5.28536 45.6304 +96.8001 5.4323 46.899 +96.2054 5.51902 47.6477 +96.5851 5.66242 48.8858 +96.0633 5.75387 49.6753 +96.4179 5.89872 50.9258 +95.8789 5.98982 51.7123 +96.2082 6.13607 52.9749 +95.7391 6.23243 53.8069 +95.2628 6.32832 54.6347 +96.244 6.52301 56.3155 +95.7456 6.6194 57.1477 +96.0073 6.76938 58.4426 +95.4054 6.85943 59.22 +96.3153 7.06006 60.9521 +95.6084 7.14396 61.6764 +95.8135 7.29686 62.9964 +95.9196 7.44425 64.2689 +95.3514 7.54028 65.098 +95.5131 7.69513 66.4348 +95.5772 7.84419 67.7217 +95.6258 7.99396 69.0148 +95.659 8.14443 70.3138 +95.0376 8.24017 71.1404 +95.1231 8.39832 72.5057 +95.7433 8.60685 74.3061 +95.7912 8.76712 75.6897 +95.7444 8.9209 77.0174 +95.0641 9.01669 77.8443 +95.0661 9.17836 79.2401 +95.1268 9.3482 80.7064 +95.0179 9.50374 82.0492 +95.5667 9.72839 83.9888 +94.8996 9.83168 84.8805 +94.7401 9.98877 86.2367 +95.2954 10.2248 88.2742 +95.024 10.3755 89.5755 +95.0248 10.5585 91.1549 +94.8623 10.726 92.6018 +94.6816 10.8941 94.0528 +94.5527 11.0708 95.5785 +94.9598 11.3143 97.6807 +94.5799 11.4677 99.0045 +94.2522 11.6295 100.402 +94.6502 11.8849 102.607 +94.3474 12.0564 104.087 +94.6221 12.3058 106.241 +94.2101 12.4698 107.656 +94.2349 12.6952 109.602 +93.847 12.8686 111.099 +93.9488 13.1133 113.212 +94.0834 13.3681 115.411 +93.6262 13.5431 116.922 +93.7037 13.7998 119.138 +93.871 14.0759 121.523 +93.5822 14.2891 123.363 +93.6251 14.5582 125.687 +92.3411 14.6238 126.253 +103.249 16.655 143.789 +115.69 19.0106 164.126 +115.66 19.3632 167.169 +115.697 19.7361 170.389 +115.244 20.0337 172.959 +115.572 20.4768 176.784 +115.466 20.8541 180.041 +115.204 21.2132 183.142 +115.002 21.5929 186.42 +114.905 22.0035 189.964 +114.907 22.4452 193.777 +115 22.9184 197.863 +115.326 23.4536 202.483 +114.948 23.8603 205.995 +112.609 23.8636 206.024 +110.326 23.8742 206.115 +108.049 23.8821 206.182 +105.507 23.8256 205.695 +103.384 23.8585 205.979 +101.132 23.858 205.975 +98.587 23.7821 205.319 +96.3992 23.7863 205.356 +94.1768 23.7775 205.28 +91.9225 23.7555 205.09 +91.5129 24.2162 209.067 +91.3139 24.752 213.693 +91.0787 25.2998 218.423 +90.8796 25.8811 223.441 +90.9656 26.5709 229.396 +90.8104 27.2197 234.998 +90.6687 27.9026 240.893 +90.4643 28.5982 246.898 +90.0277 29.2518 252.542 +89.7266 29.983 258.854 +89.6703 30.8357 266.216 +89.2441 31.6031 272.841 +88.9488 32.4596 280.235 +89.1149 33.538 289.546 +88.6412 34.4316 297.261 +88.6174 35.559 306.993 +88.2956 36.6334 316.269 +87.8949 37.743 325.849 +87.8333 39.0775 337.37 +87.3822 40.3253 348.143 +86.9584 41.6758 359.802 +86.7411 43.2302 373.222 +86.4027 44.8433 387.149 +86.1586 46.6391 402.652 +85.6684 48.449 418.277 +85.1962 50.4306 435.386 +84.7942 52.6412 454.47 +84.2715 54.9905 474.753 +83.9762 57.7399 498.489 +83.5204 60.6745 523.825 +91.9375 70.7815 611.082 +86.3291 70.6774 610.183 +81.5789 71.2975 615.538 +80.6531 75.5794 652.504 +78.5177 79.2929 684.564 +75.3023 82.4355 711.696 +76.5137 91.4299 789.347 +74.0301 97.3604 840.548 +74.5675 109.016 941.177 +71.7236 118.017 1018.89 +69.2351 130.246 1124.46 +61.1179 134.183 1158.45 +49.351 130.055 1122.81 +114.341 376.742 3252.55 +29.5276 129.743 1120.12 +57.1793 376.915 3254.04 +9.83742 129.703 1119.77 +7.09721e-14 133.367 1151.4 +-9.82521 129.542 1118.38 +-20.1942 133.116 1149.24 +-29.4124 129.237 1115.75 +-40.3333 132.895 1147.33 +-49.0326 129.216 1115.57 +-60.5318 132.896 1147.34 +-68.6857 129.213 1115.54 +-80.764 132.892 1147.31 +-88.2586 129.032 1113.98 +-101.014 132.848 1146.92 +-107.874 128.904 1112.88 +-121.358 132.853 1146.97 +-127.659 128.919 1113.01 +-143.148 134.142 1158.1 +-147.573 128.975 1113.49 +-122.973 100.678 869.19 +-130.25 100.278 865.733 +-137.662 100.007 863.393 +-160.773 110.543 954.36 +-568.993 371.291 3205.49 +-597.131 370.705 3200.43 +-153.964 91.1365 786.814 +-157.879 89.2871 770.848 +-164.209 88.8889 767.41 +-117.96 61.2215 528.547 +-121.474 60.5402 522.666 +-125.71 60.2481 520.143 +-130.807 60.3652 521.155 +-141.139 62.7936 542.12 +-848.072 364.172 3144.03 +-875.66 363.307 3136.56 +-903.181 362.414 3128.85 +-930.633 361.492 3120.89 +-958.014 360.544 3112.71 +-166.591 60.7932 524.85 +-151.635 53.6967 463.584 +-148.34 51.011 440.397 +-153.408 51.2626 442.569 +-1093.78 355.393 3068.24 +-1120.7 354.281 3058.64 +-1147.38 353.1 3048.44 +-434.378 130.201 1124.07 +-424.775 124.075 1071.19 +-394.386 112.315 969.656 +-414.37 115.104 993.736 +-1280.15 347.005 2995.82 +-139.363 36.8782 318.383 +-1332.59 344.382 2973.17 +-395.41 99.8319 861.886 +-432.338 106.679 920.995 +-434.902 104.911 905.736 +-436.881 103.064 889.789 +-439.549 101.437 875.745 +-440.734 99.526 859.244 +-145.543 32.1693 277.729 +-144.926 31.3616 270.756 +-146.774 31.1036 268.529 +-151.018 31.3475 270.635 +-456.181 92.773 800.943 +-111.35 22.191 191.583 +-111.252 21.7313 187.615 +-111.866 21.4216 184.941 +-113.539 21.3183 184.048 +-114.781 21.1351 182.467 +-116.594 21.0579 181.8 +-117.86 20.8821 180.283 +-120.101 20.8782 180.249 +-122.072 20.8235 179.777 +-125.176 20.9562 180.922 +-128.481 21.1124 182.271 +-493.83 79.6591 687.726 +-497.266 78.7506 679.882 +-500.841 77.8783 672.352 +-503.96 76.9498 664.335 +-507.464 76.0939 656.947 +-510.506 75.1827 649.079 +-514.073 74.361 641.986 +-513.4 72.9478 629.785 +-532.27 74.2939 641.407 +-524.643 71.941 621.092 +-528.651 71.2189 614.859 +-532.195 70.4423 608.154 +-161.746 21.0353 181.606 +-165.744 21.18 182.854 +-170.316 21.3861 184.634 +-546.417 67.4209 582.069 +-550.684 66.7694 576.445 +-553.921 65.9989 569.792 +-557.643 65.2924 563.693 +-560.736 64.5185 557.012 +-564.966 63.8804 551.503 +-568.782 63.1988 545.618 +-572.465 62.5065 539.641 +-572.284 61.4036 530.12 +-591.37 62.3502 538.292 +-583.146 60.4144 521.58 +-587.481 59.8037 516.307 +-591.692 59.1813 510.934 +-595.474 58.5178 505.205 +-599.66 57.8954 499.832 +-389.285 36.923 318.77 +-385.231 35.8936 309.882 +-385.826 35.312 304.862 +-387.465 34.8312 300.71 +-388.981 34.3428 296.494 +-141.838 12.2979 106.172 +-142.685 12.1482 104.88 +-143.115 11.9639 103.288 +-142.796 11.7195 101.179 +-141.795 11.4239 98.6267 +-142.409 11.2615 97.225 +-146.823 11.3948 98.3754 +-147.931 11.266 97.2633 +-660.369 49.3435 426.001 +-382.562 28.0424 242.1 +-381.791 27.45 236.986 +-381.812 26.9213 232.421 +-384.268 26.5665 229.359 +-382.563 25.9285 223.85 +-382.177 25.3881 219.185 +-381.129 24.8107 214.2 +-382.909 24.4216 210.84 +-381.495 23.833 205.759 +-383.376 23.4545 202.491 +-716.173 42.8964 370.34 +-733.12 42.98 371.062 +-722.928 41.4723 358.045 +-404.637 22.7077 196.044 +-404.629 22.2064 191.716 +-405.935 21.7799 188.034 +-405.115 21.2426 183.395 +-406.619 20.8303 179.836 +-403.598 20.1918 174.323 +-404.746 19.7678 170.663 +-404.474 19.2771 166.426 +-404.623 18.8098 162.392 +-404.173 18.3185 158.151 +-406.294 17.9451 154.926 +-405.579 17.4478 150.633 +-403.504 16.8981 145.888 +-407.504 16.6038 143.347 +-405.344 16.0591 138.644 +-404.934 15.5894 134.589 +-404.104 15.1075 130.429 +-386.351 14.0162 121.007 +-380.227 13.3754 115.475 +-380.556 12.9703 111.977 +-380.756 12.5623 108.455 +-381.019 12.158 104.964 +-380.382 11.7273 101.246 +-380.772 11.3305 97.8205 +-381.229 10.9366 94.4198 +-380.002 10.497 90.6245 +-380.589 10.1099 87.2823 +-380.951 9.71739 83.8938 +-379.326 9.27711 80.0927 +-380.113 8.89817 76.8212 +-380.086 8.5008 73.3905 +-378.356 8.06852 69.6585 +-380.234 7.71429 66.6003 +-381.002 7.33601 63.3345 +-379.569 6.91718 59.7185 +-379.288 6.52219 56.3084 +-379.966 6.14431 53.046 +-378.038 5.72651 49.4391 +-378.458 5.34672 46.1602 +-379.147 4.97041 42.9114 +-378.913 4.58232 39.5608 +-378.35 4.19177 36.189 +-378.056 3.80569 32.8559 +-380.125 3.44221 29.7178 +-377.977 3.04113 26.2552 +-379.491 2.67063 23.0565 +-378.181 2.28045 19.688 +-378.739 1.90265 16.4263 +-379.769 1.52591 13.1737 +-143.651 0.432815 3.73665 +-143.278 0.287758 2.48432 +-144.794 0.14539 1.25521 +96 0 0 +95.9963 0.103895 0.83128 +95.9854 0.207782 1.6625 +95.9671 0.311654 2.49359 +95.9415 0.415501 3.32449 +95.9086 0.519317 4.15513 +95.8684 0.623093 4.98546 +95.8209 0.726822 5.81542 +96.7637 0.839147 6.71414 +96.701 0.943836 7.55178 +96.7305 1.04953 8.39749 +96.5534 1.15299 9.22527 +96.5681 1.25874 10.0713 +96.4758 1.3632 10.9071 +96.5747 1.47058 11.7664 +96.4676 1.57504 12.6022 +96.155 1.67593 13.4094 +95.9345 1.7781 14.2268 +95.707 1.87991 15.0415 +96.1628 1.9957 15.9679 +96.2157 2.104 16.8344 +96.064 2.20805 17.667 +95.7087 2.3072 18.4603 +95.5427 2.41069 19.2883 +95.565 2.51916 20.1562 +96.2628 2.64664 21.1761 +96.0729 2.75072 22.009 +95.9729 2.85749 22.8632 +95.6712 2.95824 23.6694 +96.4275 3.09271 24.7453 +96.2062 3.19696 25.5794 +95.8812 3.29764 26.3849 +95.6455 3.40128 27.2142 +96.0737 3.52932 28.2386 +95.8217 3.63316 29.0694 +95.7532 3.74419 29.9578 +96.1518 3.87449 31.0004 +95.8755 3.97841 31.8318 +96.632 4.12643 33.0162 +96.1494 4.22257 33.7854 +96.6004 4.36041 34.8883 +96.1026 4.4561 35.6539 +95.8787 4.56438 36.5203 +96.4843 4.71342 37.7128 +97.0761 4.86411 38.9185 +96.7302 4.96899 39.7577 +96.4689 5.07833 40.6325 +97.025 5.232 41.862 +95.8309 5.2914 42.3373 +96.2739 5.44119 43.5358 +96.0686 5.55566 44.4517 +96.3058 5.69679 45.5809 +95.9013 5.8008 46.4131 +96.2054 5.94864 47.596 +96.496 6.09758 48.7876 +96.0633 6.20177 49.6213 +96.3296 6.35207 50.8239 +95.8789 6.45608 51.6561 +96.2956 6.61972 52.9654 +96.4354 6.76644 54.1393 +95.9556 6.87055 54.9723 +95.5547 6.98043 55.8515 +95.6599 7.12828 57.0345 +96.0073 7.29634 58.3791 +95.9142 7.43283 59.4712 +95.3876 7.53635 60.2995 +95.7762 7.71359 61.7176 +95.8135 7.86487 62.928 +95.8367 8.0168 64.1437 +95.3514 8.12724 65.0273 +96.1684 8.35105 66.8181 +95.5772 8.45481 67.6482 +95.6258 8.61624 68.9398 +95.7394 8.7858 70.2965 +95.7564 8.94878 71.6005 +95.0437 9.04452 72.3666 +95.8221 9.28447 74.2865 +95.0869 9.3801 75.0516 +95.1227 9.55289 76.4341 +95.0641 9.71858 77.7598 +95.7556 9.96459 79.7282 +95.0507 10.0678 80.5543 +95.6972 10.3168 82.5461 +95.0425 10.4282 83.4374 +95.4941 10.6634 85.3195 +95.4037 10.8418 86.7465 +95.2954 11.0207 88.1784 +95.1691 11.2002 89.6149 +95.0248 11.3804 91.056 +94.8623 11.561 92.5012 +94.6816 11.7421 93.9507 +95.1835 12.0122 96.1117 +94.9598 12.1951 97.5747 +94.7176 12.3783 99.041 +94.9342 12.6254 101.018 +94.6502 12.8101 102.496 +94.3474 12.9949 103.974 +93.9595 13.1709 105.382 +94.2101 13.4405 107.539 +94.17 13.674 109.408 +93.847 13.8703 110.979 +94.0124 14.1437 113.166 +94.1463 14.4184 115.363 +93.6885 14.6071 116.874 +93.7037 14.874 119.009 +93.7493 15.1519 121.233 +93.5822 15.4014 123.229 +93.6846 15.7014 125.63 +92.8701 15.8525 126.838 +99.7067 17.3356 138.705 +115.633 20.4803 163.866 +115.207 20.7886 166.333 +115.194 21.1799 169.464 +115.686 21.676 173.433 +115.572 22.0708 176.592 +115.412 22.4669 179.761 +115.204 22.8645 182.943 +114.95 23.2633 186.133 +114.905 23.7163 189.758 +115.008 24.2137 193.738 +115 24.7025 197.648 +115.129 25.2361 201.918 +114.948 25.7177 205.771 +113.039 25.8194 206.585 +110.373 25.7436 205.978 +108.095 25.752 206.046 +105.507 25.6802 205.471 +103.384 25.7157 205.755 +101.045 25.6929 205.573 +98.9315 25.7229 205.813 +96.357 25.6267 205.043 +94.1768 25.6284 205.057 +92.0038 25.6274 205.049 +91.3534 26.0558 208.476 +91.2748 26.6674 213.37 +91.0787 27.2693 218.186 +90.9545 27.9187 223.382 +90.6358 28.5354 228.316 +90.7388 29.3155 234.558 +90.6337 30.0631 240.54 +90.4301 30.8127 246.537 +89.9609 31.5056 252.081 +89.694 32.3052 258.479 +89.6068 33.2127 265.74 +89.3368 34.0985 272.827 +89.039 35.0219 280.216 +88.9979 36.1013 288.852 +88.4708 37.0404 296.366 +88.6174 38.327 306.66 +88.2688 39.473 315.83 +88.1538 40.8009 326.454 +87.658 42.0354 336.331 +87.3822 43.4644 347.765 +87.0284 44.9562 359.702 +86.7861 46.6195 373.01 +86.5542 48.4189 387.407 +86.0754 50.2211 401.827 +85.6883 52.2325 417.921 +85.2535 54.3928 435.205 +84.776 56.7267 453.879 +84.2715 59.2711 474.237 +83.9597 62.2222 497.85 +83.5829 65.4466 523.648 +92.0261 76.3649 611.007 +86.5796 76.4003 611.29 +81.618 76.8844 615.164 +80.5434 81.352 650.91 +78.6876 85.6502 685.3 +76.4103 90.16 721.384 +77.2708 99.5223 796.293 +76.1741 107.978 863.952 +74.1046 116.773 934.319 +71.333 126.511 1012.23 +66.0606 133.948 1071.74 +57.7684 136.703 1093.78 +46.8996 133.217 1065.89 +38.3929 136.348 1090.94 +28.0774 132.975 1063.95 +19.1767 136.249 1090.15 +9.33827 132.706 1061.8 +6.70962e-14 135.898 1087.34 +-9.32256 132.483 1060.01 +-19.0894 135.629 1085.19 +-27.9334 132.293 1058.49 +-38.2184 135.728 1085.98 +-46.5942 132.349 1058.94 +-57.2241 135.414 1083.47 +-65.0411 131.881 1055.2 +-76.2578 135.246 1082.12 +-83.6217 131.769 1054.31 +-95.3571 135.171 1081.53 +-102.219 131.655 1053.39 +-114.636 135.264 1082.27 +-120.958 131.66 1053.43 +-133.435 134.774 1078.35 +-139.676 131.576 1052.76 +-123.085 108.613 869.032 +-130.471 108.267 866.264 +-137.85 107.938 863.632 +-160.327 118.818 950.682 +-568.993 400.193 3202.01 +-597.058 399.514 3196.57 +-154.174 98.3648 787.032 +-158.418 96.5657 772.637 +-165.581 96.609 772.983 +-118.198 66.1204 529.039 +-121.496 65.2649 522.194 +-126.177 65.1792 521.509 +-131.267 65.2928 522.418 +-137.208 65.7967 526.449 +-848.072 392.52 3140.62 +-875.66 391.588 3133.15 +-903.181 390.625 3125.45 +-930.633 389.632 3117.51 +-958.014 388.61 3109.33 +-166.802 65.6084 524.943 +-150.337 57.3814 459.117 +-148.499 55.0407 440.389 +-153.961 55.4525 443.684 +-1093.78 383.058 3064.91 +-1120.56 381.813 3054.94 +-1147.38 380.586 3045.13 +-434.629 140.418 1123.51 +-396.811 124.93 999.583 +-427.688 131.281 1050.4 +-427.572 128.017 1024.28 +-394.99 115.403 923.354 +-414.779 118.303 946.562 +-139.551 38.8716 311.017 +-139.171 37.8727 303.025 +-397.684 105.766 846.252 +-434.902 113.078 904.753 +-437.363 111.21 889.804 +-439.505 109.322 874.705 +-442.096 107.605 860.964 +-145.358 34.6294 277.075 +-145.301 33.8904 271.162 +-147.442 33.6773 269.458 +-151.261 33.8419 270.774 +-456.427 100.049 800.505 +-111.1 23.8647 190.945 +-111.405 23.4551 187.668 +-112.227 23.1635 185.335 +-113.434 22.9566 183.679 +-115.31 22.8855 183.11 +-116.54 22.6867 181.52 +-118.187 22.5701 180.587 +-120.046 22.493 179.97 +-121.96 22.4239 179.417 +-125.572 22.659 181.299 +-130.948 23.1927 185.568 +-494.875 86.0417 688.433 +-498.501 85.0915 680.83 +-501.198 84.0005 672.101 +-504.802 83.0785 664.723 +-507.829 82.0764 656.706 +-511.061 81.1231 649.078 +-513.948 80.1301 641.133 +-514.658 78.8191 630.644 +-533.542 80.2687 642.242 +-525.35 77.6456 621.255 +-528.651 76.7629 614.192 +-532.195 75.9258 607.494 +-162.872 22.8307 182.672 +-166.614 22.9485 183.614 +-543.783 73.5961 588.854 +-546.826 72.7235 581.872 +-550.821 71.9851 575.964 +-554.615 71.2256 569.887 +-557.643 70.375 563.081 +-561.16 69.5935 556.828 +-565.394 68.9053 551.322 +-568.494 68.084 544.751 +-572.828 67.415 539.397 +-572.504 66.2088 529.747 +-589.306 66.9691 535.83 +-584.112 65.2252 521.877 +-588.529 64.5741 516.667 +-591.994 63.8208 510.64 +-596.843 63.218 505.817 +-600.196 62.458 499.736 +-391.214 39.9945 320.002 +-386.708 38.836 310.733 +-385.826 38.0609 304.531 +-383.84 37.1914 297.574 +-621.592 59.1518 473.283 +-142.716 13.3373 106.714 +-142.363 13.0643 104.53 +-143.762 12.9535 103.643 +-142.714 12.6246 101.011 +-141.959 12.3274 98.6334 +-141.997 12.1031 96.8384 +-145.911 12.2055 97.6582 +-148.265 12.1703 97.3768 +-385.118 31.0164 248.167 +-382.394 30.2121 241.731 +-380.689 29.5013 236.045 +-383.006 29.1076 232.894 +-381.439 28.4237 227.423 +-382.65 27.9532 223.658 +-381.138 27.29 218.351 +-382.608 26.8459 214.798 +-380.634 26.1663 209.36 +-382.285 25.7415 205.962 +-381.875 25.1812 201.479 +-715.64 46.2012 369.663 +-736.951 46.5679 372.597 +-723.017 44.7061 357.7 +-402.57 24.3503 194.83 +-407.156 24.0846 192.705 +-405.482 23.449 187.619 +-402.931 22.7728 182.208 +-403.604 22.2854 178.309 +-405.157 21.8477 174.807 +-405.666 21.3551 170.866 +-403.181 20.7112 165.714 +-405.921 20.3392 162.737 +-406.592 19.8627 158.925 +-404.614 19.262 154.118 +-406.141 18.832 150.678 +-403.504 18.2135 145.729 +-406.561 17.8549 142.86 +-405.344 17.3092 138.494 +-406.641 16.8738 135.01 +-404.484 16.299 130.41 +-387.209 15.1409 121.144 +-381.852 14.4783 115.843 +-379.98 13.9587 111.686 +-381.333 13.5607 108.501 +-381.019 13.1044 104.85 +-381.348 12.6723 101.393 +-380.385 12.2001 97.6149 +-381.229 11.788 94.3173 +-380.877 11.3402 90.7346 +-380.589 10.8969 87.1876 +-380.072 10.4497 83.6094 +-382.064 10.0715 80.5834 +-380.211 9.59332 76.7576 +-379.497 9.14835 73.1973 +-381.011 8.75763 70.0711 +-380.234 8.3148 66.528 +-379.917 7.88455 63.0855 +-378.383 7.43235 59.4673 +-379.288 7.0299 56.2473 +-380.263 6.62779 53.0299 +-379.327 6.19333 49.5538 +-379.351 5.77653 46.2189 +-379.246 5.35874 42.8761 +-379.708 4.9494 39.6009 +-378.649 4.52163 36.1782 +-379.351 4.11599 32.9327 +-379.925 3.70821 29.67 +-379.473 3.29084 26.3305 +-378.792 2.87322 22.989 +-377.582 2.45408 19.6354 +-378.639 2.05021 16.4041 +-378.769 1.64036 13.1248 +-145.85 0.473649 3.78974 +-145.078 0.314054 2.51279 +-144.195 0.156059 1.24866 +96 0 0 +95.9963 0.11139 0.830309 +95.9854 0.222771 1.66055 +96.9668 0.337616 2.51661 +95.9415 0.445475 3.3206 +96.9077 0.56258 4.19351 +95.8684 0.668043 4.97964 +96.8191 0.787373 5.86913 +96.7637 0.899683 6.7063 +96.8007 1.01297 7.55074 +96.7305 1.12525 8.38768 +96.653 1.23744 9.22399 +96.4686 1.34816 10.0493 +96.6745 1.46456 10.9169 +96.3762 1.57343 11.7284 +96.2693 1.6852 12.5616 +96.155 1.79683 13.3937 +96.0334 1.90834 14.2249 +96.5959 2.03425 15.1635 +95.5711 2.1265 15.8511 +95.3294 2.235 16.6599 +96.064 2.36734 17.6463 +95.905 2.47871 18.4765 +96.6206 2.61376 19.4832 +95.565 2.70089 20.1326 +96.2628 2.83757 21.1514 +96.0729 2.94916 21.9833 +95.9729 3.06363 22.8365 +95.7682 3.17487 23.6657 +95.5562 3.28587 24.4931 +96.1096 3.42415 25.5238 +95.8812 3.53553 26.3541 +95.6455 3.64665 27.1824 +96.2655 3.79147 28.2619 +95.8217 3.89525 29.0355 +95.5624 4.00629 29.8632 +96.1518 4.154 30.9642 +95.8755 4.26541 31.7947 +96.3483 4.41113 32.8808 +96.1494 4.52719 33.746 +95.7547 4.63404 34.5424 +96.1962 4.78221 35.647 +95.8787 4.89365 36.4776 +96.5773 5.05831 37.705 +97.0761 5.21501 38.8731 +96.7302 5.32746 39.7112 +96.3769 5.43948 40.5463 +96.1079 5.55641 41.4179 +96.6531 5.72179 42.6506 +96.2739 5.83372 43.4849 +96.0686 5.95644 44.3997 +96.4864 6.1192 45.613 +95.9013 6.21927 46.3589 +96.2054 6.37778 47.5404 +96.5851 6.54349 48.7756 +96.0633 6.64917 49.5634 +96.4179 6.81656 50.8111 +95.9668 6.92817 51.643 +96.2956 7.09727 52.9036 +95.7391 7.20219 53.6856 +96.0422 7.37284 54.9577 +95.5547 7.484 55.7862 +95.7456 7.64938 57.019 +95.922 7.81576 58.2592 +96.0838 7.98313 59.5068 +95.5563 8.0943 60.3355 +95.6084 8.25556 61.5375 +95.8135 8.43224 62.8545 +95.2564 8.54309 63.6808 +95.3514 8.71354 64.9513 +95.4312 8.88486 66.2284 +95.5772 9.06474 67.5692 +95.6258 9.23782 68.8593 +95.659 9.41169 70.1554 +95.1175 9.53034 71.0398 +95.6784 9.76175 72.7647 +95.0341 9.8724 73.5895 +95.0869 10.0568 74.9639 +95.1227 10.242 76.3449 +95.6043 10.4789 78.1103 +95.0661 10.6065 79.0616 +95.583 10.8546 80.9107 +95.0179 10.9825 81.8644 +95.5667 11.2421 83.7996 +95.4941 11.4327 85.2198 +95.2562 11.6059 86.5113 +95.2954 11.8157 88.0754 +95.024 11.9899 89.3737 +95.0248 12.2013 90.9496 +94.6483 12.3671 92.1848 +95.2473 12.6644 94.4016 +95.1835 12.8788 95.9994 +94.8209 13.0557 97.3181 +94.5799 13.252 98.7815 +94.2522 13.439 100.176 +94.6502 13.7342 102.376 +94.2805 13.9225 103.779 +93.9595 14.121 105.259 +94.2101 14.4101 107.414 +94.2349 14.6706 109.355 +93.847 14.8709 110.849 +94.0124 15.164 113.033 +94.1463 15.4585 115.229 +93.6885 15.6609 116.737 +93.6421 15.9365 118.792 +93.5058 16.2028 120.777 +93.4619 16.4912 122.927 +93.9225 16.877 125.802 +92.2823 16.8885 125.888 +97.6742 18.2073 135.718 +115.69 21.9687 163.756 +115.264 22.2994 166.221 +115.138 22.6968 169.183 +115.576 23.2176 173.066 +115.518 23.6519 176.303 +115.466 24.099 179.636 +115.204 24.514 182.729 +114.95 24.9415 185.915 +114.905 25.4272 189.536 +115.363 26.0407 194.109 +114.95 26.473 197.331 +115.129 27.0567 201.682 +114.997 27.5847 205.618 +113.039 27.682 206.343 +110.795 27.7065 206.526 +108.557 27.7277 206.684 +105.916 27.6394 206.026 +103.786 27.678 206.314 +101.132 27.5703 205.511 +99.3189 27.6865 206.377 +96.7796 27.5958 205.701 +94.5915 27.5982 205.719 +92.3699 27.5855 205.624 +90.8749 27.7892 207.142 +91.3139 28.6034 213.212 +90.9639 29.1996 217.656 +90.8796 29.9082 222.938 +90.819 30.6557 228.51 +90.8104 31.4551 234.468 +90.5986 32.2194 240.165 +90.4301 33.0355 246.249 +89.9609 33.7784 251.786 +89.694 34.6357 258.177 +89.6703 35.6338 265.616 +89.3986 36.5838 272.698 +89.039 37.5484 279.889 +88.881 38.6548 288.136 +88.4992 39.7253 296.115 +88.7001 41.1302 306.587 +88.0283 42.2054 314.602 +88.0244 43.6801 325.594 +87.9585 45.2223 337.09 +87.2612 46.5355 346.878 +86.9817 48.1734 359.088 +86.7411 49.9567 372.381 +86.4027 51.8209 386.276 +85.8883 53.7271 400.485 +85.6485 55.9745 417.238 +85.0627 58.1861 433.723 +84.8853 60.8974 453.933 +84.2888 63.5601 473.782 +83.8442 66.6192 496.584 +83.5829 70.1679 523.036 +92.307 82.1237 612.156 +86.6909 82.0171 611.361 +81.6441 82.4573 614.643 +80.5313 87.2075 650.05 +79.6045 92.8991 692.476 +78.3859 99.1633 739.17 +77.2708 106.702 795.363 +76.3397 116.02 864.819 +72.9199 123.196 918.308 +71.9887 136.885 1020.35 +62.5259 135.928 1013.21 +55.2458 140.164 1044.79 +44.4918 135.494 1009.98 +36.7945 140.099 1044.3 +26.6429 135.284 1008.42 +18.3512 139.79 1042.01 +8.86529 135.073 1006.84 +6.43898e-14 139.825 1042.26 +-8.84783 134.807 1004.86 +-18.3198 139.551 1040.22 +-26.5042 134.579 1003.16 +-36.5817 139.288 1038.26 +-44.278 134.843 1005.13 +-54.8952 139.274 1038.16 +-61.9398 134.654 1003.72 +-73.0629 138.927 1035.57 +-79.6203 134.515 1002.69 +-91.2172 138.631 1033.36 +-97.3122 134.377 1001.66 +-109.295 138.265 1030.64 +-115.173 134.408 1001.88 +-127.634 138.214 1030.26 +-132.915 134.239 1000.63 +-123.335 116.686 869.784 +-130.723 116.302 866.92 +-138.319 116.119 865.56 +-150.391 119.495 890.723 +-568.993 429.063 3198.27 +-597.131 428.387 3193.22 +-154.288 105.539 786.696 +-157.959 103.232 769.5 +-165.186 103.331 770.238 +-118.328 70.9682 529.002 +-121.699 70.0897 522.454 +-126.387 69.9976 521.767 +-131.194 69.9643 521.519 +-137.308 70.5947 526.218 +-848.072 420.837 3136.95 +-875.66 419.837 3129.49 +-903.181 418.805 3121.8 +-930.633 417.74 3113.86 +-958.014 416.645 3105.7 +-167.162 70.4935 525.464 +-149.255 61.0782 455.281 +-148.975 59.2005 441.285 +-154.515 59.6666 444.759 +-1093.78 410.692 3061.32 +-1120.7 409.407 3051.75 +-1147.52 408.091 3041.94 +-434.736 150.585 1122.47 +-425.728 143.703 1071.17 +-394.611 129.865 968.023 +-413.375 132.695 989.114 +-427.772 133.997 998.822 +-425.465 130.105 969.815 +-1332.59 397.967 2966.47 +-429.539 125.323 934.169 +-138.661 39.5381 294.72 +-138.711 38.6676 288.231 +-437.144 119.172 888.319 +-440.04 117.352 874.747 +-441.506 115.214 858.81 +-145.636 37.1983 277.279 +-145.583 36.4057 271.371 +-148.396 36.3406 270.885 +-151.842 36.4229 271.499 +-111.042 26.0961 194.522 +-111.4 25.6554 191.237 +-111.405 25.1472 187.449 +-112.278 24.8459 185.203 +-113.487 24.624 183.549 +-115.363 24.5478 182.981 +-116.863 24.3906 181.809 +-118.296 24.2205 180.542 +-120.433 24.1933 180.338 +-122.463 24.1408 179.947 +-125.799 24.3374 181.413 +-491.612 93.3532 695.861 +-495.398 92.3463 688.355 +-498.324 91.1978 679.795 +-502.209 90.242 672.67 +-504.622 89.04 663.71 +-508.498 88.1135 656.804 +-511.245 87.0067 648.554 +-514.695 86.0355 641.315 +-514.847 84.5361 630.138 +-532.843 85.9464 640.651 +-525.35 83.247 620.529 +-529.82 82.4826 614.831 +-164.999 25.2377 188.124 +-162.607 24.4379 182.162 +-165.476 24.4361 182.148 +-544.255 78.974 588.677 +-547.645 78.0866 582.063 +-551.51 77.2745 576.01 +-554.824 76.3926 569.436 +-558.905 75.6226 563.696 +-561.726 74.6892 556.738 +-566.036 73.96 551.303 +-569.142 73.0787 544.734 +-573.191 72.324 539.108 +-573.381 71.094 529.939 +-584.292 71.1895 530.651 +-584.26 69.9482 521.399 +-589.503 69.347 516.917 +-592.145 68.4423 510.174 +-596.462 67.7353 504.904 +-600.196 66.9637 499.152 +-605.494 66.3663 494.699 +-390.516 42.0475 313.425 +-388.956 41.1377 306.643 +-386.362 40.1363 299.179 +-140.344 14.3189 106.734 +-142.876 14.3155 106.709 +-142.443 14.0148 104.467 +-143.762 13.8879 103.522 +-142.796 13.543 100.951 +-141.795 13.2015 98.4045 +-142.574 13.0289 97.1183 +-147.071 13.1901 98.32 +-148.015 13.0263 97.0989 +-661.124 57.0865 425.527 +-381.382 32.3058 240.81 +-380.18 31.5873 235.454 +-382.921 31.2005 232.57 +-383.84 30.666 228.586 +-384.2 30.0912 224.302 +-382.264 29.3451 218.74 +-380.781 28.645 213.522 +-382.121 28.1635 209.932 +-382.813 27.6365 206.004 +-382.669 27.054 201.662 +-716.705 49.6078 369.78 +-738.288 50.0179 372.837 +-723.107 47.9372 357.327 +-403.469 26.1653 195.038 +-404.268 25.6389 191.114 +-405.845 25.1631 187.568 +-406.662 24.6416 183.68 +-405.797 24.0228 179.068 +-404.423 23.3814 174.287 +-405.482 22.8853 170.589 +-406.045 22.363 166.696 +-403.789 21.6918 161.692 +-405.011 21.2128 158.121 +-404.707 20.6563 153.974 +-405.204 20.144 150.155 +-405.289 19.6139 146.203 +-407.033 19.1651 142.858 +-406.195 18.5968 138.622 +-406.546 18.0869 134.821 +-406.957 17.5815 131.054 +-384.062 16.1011 120.019 +-381.757 15.5189 115.679 +-378.926 14.9243 111.246 +-379.891 14.484 107.965 +-381.309 14.0604 104.807 +-381.734 13.6002 101.377 +-380.772 13.0935 97.6001 +-380.356 12.6094 93.9914 +-380.002 12.1303 90.4204 +-381.076 11.6979 87.1972 +-380.951 11.2294 83.7048 +-380.793 10.7621 80.2213 +-380.603 10.296 76.747 +-379.497 9.80831 73.1118 +-380.323 9.37244 69.8628 +-379.84 8.90539 66.3814 +-381.002 8.47749 63.1918 +-380.062 8.00389 59.6615 +-378.892 7.52918 56.123 +-379.768 7.09666 52.899 +-380.219 6.65574 49.6123 +-377.962 6.17056 45.9957 +-379.246 5.74532 42.826 +-379.708 5.30645 39.5546 +-379.545 4.85929 36.2215 +-380.347 4.42452 32.9806 +-380.224 3.97885 29.6586 +-379.074 3.52454 26.2721 +-377.894 3.07319 22.9078 +-379.379 2.64364 19.7059 +-376.841 2.18768 16.3071 +-379.769 1.76334 13.144 +-144.55 0.503293 3.75158 +-142.378 0.330444 2.46315 +-145.194 0.168477 1.25584 +96 0 0 +95.8963 0.118752 0.828407 +95.9854 0.237743 1.65848 +95.9671 0.356592 2.48756 +95.9415 0.475413 3.31645 +95.9086 0.594199 4.14509 +96.8671 0.720366 5.02522 +96.8191 0.840288 5.86179 +96.8635 0.961135 6.70481 +96.701 1.07993 7.53352 +96.7305 1.20087 8.37719 +96.5534 1.31925 9.20296 +96.5681 1.44024 10.047 +96.4758 1.55976 10.8808 +96.5747 1.68263 11.7379 +96.2693 1.79845 12.5459 +96.155 1.91759 13.377 +95.9345 2.03448 14.1924 +96.5959 2.17096 15.1445 +96.4587 2.2905 15.9784 +96.2157 2.40738 16.7937 +96.064 2.52644 17.6242 +95.905 2.64529 18.4534 +95.7386 2.76395 19.2811 +95.3694 2.8765 20.0663 +96.2628 3.02826 21.125 +95.878 3.14097 21.9112 +95.8757 3.2662 22.7848 +95.7682 3.38823 23.6361 +95.5562 3.50669 24.4624 +96.3028 3.66162 25.5432 +95.8812 3.77314 26.3211 +95.7417 3.89564 27.1757 +96.0737 4.03822 28.1703 +95.8217 4.15703 28.9992 +95.7532 4.28407 29.8854 +96.1518 4.43317 30.9255 +95.8755 4.55207 31.7549 +96.4429 4.7122 32.872 +96.0552 4.8267 33.6707 +95.7547 4.94547 34.4992 +96.1962 5.1036 35.6024 +96.8123 5.27338 36.7868 +96.5773 5.39826 37.6578 +97.0761 5.56548 38.8244 +96.7302 5.68549 39.6616 +96.3769 5.80504 40.4955 +96.1079 5.92983 41.366 +95.8309 6.05439 42.235 +96.4559 6.23755 43.5127 +95.8874 6.34475 44.2606 +96.3058 6.51823 45.4707 +96.8001 6.69945 46.7349 +96.2054 6.8064 47.4809 +95.6941 6.91882 48.2652 +96.152 7.10257 49.547 +96.5062 7.28132 50.794 +95.9668 7.39378 51.5784 +96.2082 7.56738 52.7895 +95.7391 7.68622 53.6185 +96.0422 7.86833 54.8889 +95.4685 7.97976 55.6663 +95.6599 8.15613 56.8966 +96.0073 8.34842 58.238 +95.9142 8.50459 59.3274 +95.3876 8.62304 60.1537 +95.6084 8.81037 61.4605 +95.063 8.92843 62.2841 +95.2564 9.11723 63.6011 +95.269 9.2911 64.814 +95.4312 9.48197 66.1455 +95.5772 9.67393 67.4846 +95.6258 9.85864 68.7732 +95.659 10.0442 70.0676 +95.8363 10.2477 71.487 +95.2024 10.366 72.3122 +95.8221 10.6232 74.1069 +95.8695 10.821 75.4864 +95.1227 10.9304 76.2494 +95.6043 11.1831 78.0126 +95.0661 11.3193 78.9627 +95.7351 11.6025 80.9381 +95.5462 11.7858 82.2167 +95.5667 11.9976 83.6947 +94.8253 12.1155 84.5171 +94.5927 12.2996 85.8011 +95.2954 12.6098 87.9652 +95.1691 12.8152 89.3982 +95.0248 13.0213 90.8358 +94.8623 13.228 92.2776 +94.6816 13.4353 93.7235 +94.5527 13.6532 95.2439 +94.9598 13.9535 97.3388 +94.5799 14.1426 98.6579 +95.0024 14.4564 100.847 +94.6502 14.6572 102.248 +94.2805 14.8582 103.649 +94.4896 15.155 105.72 +94.7349 15.4642 107.877 +94.17 15.6457 109.143 +93.9113 15.8813 110.786 +93.9488 16.1721 112.816 +94.0205 16.4754 114.931 +94.1865 16.8022 117.211 +93.6421 17.0075 118.643 +93.5058 17.2917 120.626 +93.5822 17.6222 122.931 +93.8036 17.9883 125.485 +92.2823 18.0235 125.731 +95.9321 19.0844 133.131 +115.69 23.4451 163.551 +115.717 23.8915 166.665 +115.25 24.2457 169.136 +115.576 24.7779 172.849 +115.518 25.2414 176.082 +115.358 25.6946 179.244 +115.257 26.1734 182.584 +114.897 26.6056 185.599 +114.75 27.0995 189.045 +114.957 27.693 193.184 +115 28.2644 197.17 +114.981 28.838 201.172 +115.142 29.4757 205.62 +113.468 29.6546 206.868 +111.218 29.6811 207.053 +108.557 29.5912 206.426 +106.325 29.6107 206.562 +103.696 29.5127 205.878 +101.571 29.5507 206.144 +99.3189 29.5472 206.119 +96.7796 29.4504 205.444 +94.5915 29.453 205.462 +92.6546 29.5301 206 +90.6755 29.5916 206.429 +91.3139 30.5257 212.945 +91.0787 31.2013 217.658 +90.8796 31.9182 222.659 +90.8557 32.7293 228.317 +90.7746 33.5558 234.083 +90.6337 34.398 239.958 +90.3275 35.2156 245.662 +89.9276 36.0351 251.378 +89.7266 36.9769 257.948 +89.5434 37.9747 264.909 +89.3368 39.0153 272.168 +88.9788 40.0448 279.349 +88.9102 41.2661 287.869 +88.6412 42.4632 296.22 +88.5623 43.8261 305.728 +88.1887 45.1238 314.78 +88.102 46.6567 325.474 +87.7332 48.1379 335.806 +87.2854 49.6766 346.541 +87.2152 51.5488 359.601 +86.7186 53.3003 371.819 +86.4027 55.3035 385.793 +85.9715 57.3933 400.371 +85.4092 59.5694 415.552 +85.139 62.1523 433.57 +84.7577 64.8924 452.684 +84.3062 67.8456 473.286 +83.9267 71.1663 496.451 +83.5516 74.8554 522.186 +92.44 87.7693 612.272 +86.8162 87.6555 611.478 +81.8138 88.1818 615.15 +80.5556 93.0965 649.434 +79.6045 99.1424 691.61 +78.3754 105.813 738.147 +77.1846 113.746 793.482 +75.9475 123.181 859.3 +74.3635 134.078 935.317 +70.0774 142.205 992.009 +59.6139 138.307 964.816 +51.9539 140.671 981.309 +42.398 137.795 961.249 +34.6203 140.679 981.364 +25.4152 137.723 960.746 +17.2866 140.53 980.328 +8.45863 137.538 959.455 +6.06609e-14 140.58 980.675 +-8.44729 137.354 958.168 +-17.2447 140.19 977.953 +-25.321 137.212 957.184 +-34.4842 140.126 977.506 +-42.2105 137.186 956.996 +-51.6556 139.863 975.673 +-59.0523 137.003 955.726 +-68.9333 139.884 975.818 +-75.9955 137.02 955.843 +-86.1622 139.748 974.872 +-92.8266 136.797 954.286 +-103.337 139.513 973.235 +-109.796 136.744 953.914 +-120.638 139.419 972.579 +-126.741 136.606 952.952 +-124.059 125.258 873.793 +-130.915 124.3 867.107 +-138.554 124.133 865.944 +-147.074 124.713 869.986 +-568.924 457.843 3193.88 +-597.131 457.176 3189.23 +-154.975 113.133 789.21 +-156.005 108.807 759.032 +-159.427 106.431 742.454 +-118.414 75.7931 528.727 +-121.946 74.9522 522.861 +-126.621 74.8397 522.076 +-131.654 74.9279 522.692 +-137.434 75.4077 526.039 +-848.072 449.119 3133.02 +-875.66 448.052 3125.58 +-903.181 446.951 3117.9 +-930.633 445.814 3109.97 +-958.014 444.645 3101.81 +-167.313 75.2987 525.278 +-148.421 64.8186 452.17 +-149.165 63.2598 441.296 +-154.775 63.7838 444.952 +-1093.78 438.292 3057.5 +-1120.7 436.921 3047.93 +-1147.38 435.464 3037.77 +-1174.12 434.027 3027.74 +-1200.77 432.557 3017.48 +-428.25 150.408 1049.23 +-428.146 146.673 1023.18 +-414.058 138.417 965.588 +-415.337 135.544 945.544 +-428.66 136.619 953.044 +-431.654 134.404 937.595 +-432.846 131.717 918.847 +-435.677 129.613 904.173 +-138.744 40.3659 281.589 +-137.964 39.2656 273.914 +-442.278 123.172 859.236 +-144.481 39.3837 274.738 +-145.959 38.9526 271.73 +-149.064 38.9574 271.764 +-151.891 38.883 271.245 +-114.193 28.6403 199.793 +-111 27.2813 190.313 +-111.405 26.8372 187.214 +-112.278 26.5156 184.971 +-113.957 26.3878 184.079 +-115.363 26.1975 182.752 +-117.078 26.0776 181.915 +-118.513 25.896 180.648 +-120.433 25.8192 180.113 +-122.855 25.8456 180.297 +-126.479 26.1133 182.165 +-491.899 99.6851 695.396 +-495.92 98.6564 688.22 +-499.03 97.4644 679.905 +-502.387 96.341 672.068 +-505.645 95.2166 664.224 +-508.681 94.0689 656.218 +-512.107 93.0105 648.834 +-515.629 91.9841 641.675 +-515.665 90.3606 630.349 +-532.079 91.591 638.933 +-525.8 88.9177 620.283 +-529.82 88.0258 614.062 +-163.884 26.7518 186.618 +-163.601 26.2396 183.046 +-163.669 25.7935 179.934 +-167.276 25.9038 180.703 +-547.849 83.3654 581.551 +-552.336 82.5912 576.15 +-555.24 81.5877 569.15 +-559.115 80.7352 563.203 +-562.574 79.829 556.881 +-566.82 79.0399 551.377 +-569.429 78.0294 544.328 +-2376.54 320.02 2232.44 +-576.16 76.2395 531.841 +-582.67 75.7629 528.516 +-584.929 74.7347 521.344 +-589.878 74.0545 516.599 +-592.824 73.1257 510.119 +-597.299 72.3888 504.979 +-601.268 71.5917 499.419 +-605.417 70.8174 494.017 +-609.593 70.0471 488.644 +-386.53 43.6284 304.349 +-386.362 42.8337 298.805 +-141.534 15.4107 107.504 +-143.036 15.2946 106.694 +-142.283 14.9398 104.219 +-143.843 14.8296 103.45 +-142.47 14.4203 100.595 +-142.205 14.1293 98.5653 +-142.327 13.8804 96.8286 +-146.657 14.0369 97.9202 +-657.686 61.7707 430.908 +-383.272 35.3188 246.381 +-381.635 34.4998 240.668 +-382.554 33.9207 236.628 +-384.2 33.4085 233.056 +-382.725 32.6319 227.638 +-382.219 31.9478 222.866 +-382.61 31.3456 218.665 +-381.825 30.654 213.84 +-382.471 30.0837 209.862 +-382.198 29.4464 205.416 +-380.374 28.6989 200.201 +-717.592 53.0073 369.775 +-738.288 53.3793 372.37 +-723.733 51.203 357.189 +-406.704 28.1476 196.356 +-412.301 27.9055 194.667 +-403.851 26.7224 186.413 +-405.115 26.1976 182.753 +-406.254 25.6662 179.046 +-404.882 24.9811 174.267 +-405.943 24.451 170.568 +-406.969 23.9203 166.866 +-403.14 23.1125 161.231 +-405.662 22.6748 158.178 +-403.4 21.9733 153.284 +-406.422 21.5623 150.417 +-403.598 20.8448 145.412 +-405.901 20.3962 142.283 +-405.06 19.7912 138.062 +-404.555 19.2078 133.992 +-405.816 18.7106 130.524 +-385.397 17.2429 120.285 +-381.852 16.5659 115.563 +-379.788 15.9634 111.36 +-380.371 15.477 107.966 +-381.309 15.0053 104.676 +-381.541 14.507 101.2 +-380.676 13.9699 97.4532 +-380.938 13.4774 94.0174 +-380.683 12.9688 90.4691 +-381.076 12.4841 87.0882 +-380.267 11.9626 83.4501 +-381.673 11.5119 80.3062 +-380.603 10.9879 76.6509 +-381.46 10.5216 73.3981 +-380.52 10.0075 69.8115 +-380.727 9.52606 66.4531 +-379.523 9.01208 62.8676 +-378.383 8.50404 59.3236 +-381.167 8.08341 56.3893 +-379.372 7.56569 52.7777 +-380.715 7.1123 49.6149 +-378.458 6.5939 45.9986 +-378.849 6.12501 42.7276 +-379.211 5.65565 39.4534 +-378.151 5.16682 36.0434 +-380.746 4.7268 32.9738 +-380.224 4.24624 29.6215 +-379.473 3.76536 26.2669 +-378.293 3.28319 22.9033 +-379.279 2.82057 19.6761 +-377.74 2.34028 16.3256 +-377.87 1.87244 13.062 +-145.85 0.541946 3.78057 +-144.978 0.359091 2.50499 +-145.394 0.180048 1.256 +96 0 0 +95.8963 0.126221 0.827302 +95.8854 0.252432 1.65454 +96.8668 0.382572 2.50753 +95.9415 0.505313 3.31202 +96.9077 0.638148 4.18268 +95.8684 0.757776 4.96678 +96.8191 0.893135 5.85397 +96.7637 1.02053 6.68898 +95.8038 1.1372 7.45367 +96.7305 1.27639 8.36601 +96.5534 1.40221 9.19069 +96.5681 1.53082 10.0336 +96.4758 1.65786 10.8663 +96.5747 1.78845 11.7223 +96.2693 1.91156 12.5291 +96.155 2.03819 13.3591 +95.9345 2.16244 14.1735 +95.8058 2.28862 15.0005 +96.5574 2.43704 15.9734 +96.2157 2.55879 16.7713 +96.064 2.68533 17.6007 +95.7087 2.80591 18.3911 +95.7386 2.93778 19.2554 +95.565 3.06368 20.0806 +95.4817 3.19261 20.9257 +96.1703 3.3487 21.9487 +95.8757 3.47162 22.7544 +95.6712 3.59768 23.5806 +95.4594 3.72346 24.4051 +96.2062 3.888 25.4835 +95.8812 4.01044 26.286 +95.7417 4.14064 27.1395 +96.0737 4.29219 28.1328 +96.013 4.4273 29.0183 +95.5624 4.54443 29.786 +96.0567 4.70732 30.8537 +95.8755 4.83835 31.7125 +96.4429 5.00856 32.8281 +96.1494 5.13529 33.6588 +95.8486 5.26165 34.487 +96.1962 5.42457 35.5549 +95.8787 5.55098 36.3834 +96.4843 5.73224 37.5714 +96.2417 5.86466 38.4394 +96.7302 6.04306 39.6087 +96.4689 6.17602 40.4802 +96.9332 6.35689 41.6657 +96.6531 6.49036 42.5404 +96.2739 6.61732 43.3726 +96.8843 6.8139 44.6611 +96.2156 6.92168 45.3675 +96.0811 7.06789 46.3258 +96.2054 7.23446 47.4176 +96.496 7.41558 48.6048 +96.152 7.54926 49.4809 +96.3296 7.72509 50.6334 +95.9668 7.85878 51.5096 +96.2956 8.0506 52.7669 +95.7391 8.16961 53.547 +96.0422 8.36318 54.8157 +95.5547 8.48927 55.6421 +95.7456 8.67686 56.8717 +96.0073 8.87346 58.1603 +95.4054 8.9915 58.9339 +96.1466 9.23829 60.5515 +94.8536 9.29055 60.8941 +95.7301 9.55656 62.6376 +95.9196 9.75809 63.9585 +95.269 9.87543 64.7276 +95.4312 10.0783 66.0573 +95.5772 10.2823 67.3946 +95.6258 10.4787 68.6814 +95.7394 10.6849 70.033 +95.7564 10.8831 71.3322 +95.0437 10.9995 72.0953 +95.7433 11.2821 73.9472 +95.0869 11.4076 74.7703 +95.7444 11.6937 76.6454 +95.0641 11.8193 77.4684 +95.0661 12.0312 78.8574 +95.7351 12.3322 80.8302 +95.0179 12.4577 81.6529 +95.5667 12.7522 83.5831 +95.4941 12.9683 84.9997 +95.4037 13.1852 86.4214 +95.2954 13.4029 87.8478 +95.1691 13.6212 89.279 +94.8809 13.8193 90.5773 +94.7197 14.0388 92.016 +94.6816 14.2802 93.5985 +95.1835 14.6087 95.7514 +94.9598 14.8311 97.2089 +94.5799 15.0321 98.5263 +94.2522 15.2442 99.9168 +94.6502 15.579 102.111 +94.2136 15.7814 103.438 +94.5559 16.1194 105.653 +94.1445 16.3344 107.062 +94.17 16.6297 108.998 +93.7827 16.857 110.487 +93.8851 17.1776 112.589 +93.517 17.4177 114.163 +93.6262 17.7526 116.358 +93.6421 18.0771 118.485 +93.6884 18.4151 120.7 +94.0035 18.8148 123.32 +93.982 19.156 125.556 +92.9288 19.2913 126.443 +95.1772 20.125 131.908 +115.69 24.9196 163.333 +115.207 25.2821 165.709 +115.306 25.783 168.992 +115.631 26.3488 172.701 +115.463 26.8162 175.764 +115.304 27.2979 178.922 +115.151 27.794 182.173 +114.897 28.2789 185.351 +114.699 28.7909 188.707 +115.516 29.5776 193.864 +115 30.042 196.907 +114.981 30.6516 200.903 +115.094 31.3163 205.26 +113.468 31.5196 206.592 +111.218 31.5478 206.777 +108.973 31.5727 206.94 +106.279 31.4596 206.199 +104.098 31.4902 206.4 +101.571 31.4092 205.869 +99.3189 31.4054 205.844 +97.1177 31.4121 205.888 +94.9233 31.4151 205.907 +92.736 31.4148 205.905 +90.5958 31.425 205.973 +91.0794 32.3623 212.115 +91.1935 33.2054 217.642 +90.8796 33.9256 222.362 +90.8923 34.8017 228.104 +90.7746 35.6662 233.771 +90.6337 36.5613 239.638 +90.0197 37.3028 244.498 +89.9609 38.3156 251.136 +89.7266 39.3024 257.604 +89.6386 40.4058 264.836 +89.4295 41.5121 272.087 +89.0991 42.6207 279.353 +88.8518 43.8326 287.296 +88.4992 45.0613 295.35 +88.3693 46.4809 304.655 +88.2154 47.9761 314.455 +88.0761 49.5765 324.945 +87.7081 51.1507 335.262 +87.479 52.9179 346.845 +87.0051 54.6588 358.256 +86.6736 56.623 371.13 +86.5109 58.8554 385.762 +85.9715 61.0028 399.837 +85.6086 63.4636 415.967 +85.0436 65.9871 432.506 +84.7577 68.9735 452.081 +84.1499 71.9789 471.779 +83.9432 75.657 495.887 +83.5516 79.5632 521.489 +92.5878 93.4384 612.433 +87.0667 93.4372 612.425 +81.7094 93.6079 613.544 +80.3485 98.697 646.9 +79.6045 105.378 690.688 +78.3963 112.498 737.358 +77.1846 120.899 792.423 +75.076 129.425 848.306 +73.9477 141.713 928.847 +67.322 145.205 951.736 +57.7885 142.503 934.026 +50.1221 144.246 945.448 +41.1898 142.287 932.609 +33.3255 143.934 943.401 +24.6822 142.163 931.795 +16.6548 143.909 943.24 +8.22214 142.101 931.386 +5.84688e-14 144.022 943.977 +-8.21952 142.056 931.09 +-16.6287 143.683 941.757 +-24.6142 141.771 929.225 +-33.2522 143.617 941.327 +-41.0022 141.639 928.362 +-49.8343 143.418 940.017 +-57.3917 141.525 927.613 +-66.5128 143.46 940.296 +-73.8222 141.473 927.27 +-83.0681 143.203 938.612 +-90.21 141.302 926.15 +-99.6574 143.008 937.33 +-106.694 141.238 925.729 +-116.446 143.038 937.529 +-123.269 141.219 925.61 +-128.192 137.572 901.702 +-131.181 132.386 867.711 +-138.836 132.208 866.546 +-147.107 132.586 869.02 +-160.659 137.422 900.721 +-597.058 485.87 3184.59 +-151.731 117.732 771.661 +-153.473 113.773 745.717 +-156.162 110.808 726.283 +-118.414 80.5598 528.022 +-122.351 79.9306 523.898 +-126.784 79.6491 522.053 +-131.896 79.7865 522.954 +-820.32 478.404 3135.66 +-848.072 477.365 3128.84 +-875.66 476.231 3121.41 +-903.181 475.06 3113.74 +-930.633 473.852 3105.82 +-958.014 472.609 3097.67 +-167.674 80.207 525.71 +-147.834 68.6226 449.78 +-149.006 67.1668 440.239 +-155.329 68.0377 445.947 +-1093.78 465.857 3053.42 +-1120.7 464.4 3043.87 +-1147.38 462.851 3033.71 +-459.571 180.569 1183.52 +-1200.91 459.817 3013.82 +-1227.32 458.162 3002.98 +-425.927 155.089 1016.52 +-426.835 151.662 994.057 +-415.098 143.985 943.739 +-394.86 133.761 876.725 +-395.451 130.876 857.813 +-433.987 140.37 920.041 +-436.452 138.01 904.574 +-438.503 135.6 888.779 +-138.054 41.7621 273.726 +-141.509 41.8878 274.55 +-145.682 42.2083 276.651 +-146.146 41.4557 271.718 +-148.874 41.3545 271.054 +-152.182 41.4076 271.402 +-113.257 30.1922 197.892 +-111.45 29.1146 190.829 +-111.303 28.4989 186.793 +-112.587 28.2609 185.234 +-113.905 28.0345 183.75 +-115.204 27.8068 182.257 +-116.755 27.6413 181.173 +-118.568 27.5373 180.49 +-120.488 27.4555 179.955 +-123.022 27.5085 180.302 +-126.705 27.8054 182.248 +-492.702 106.127 695.603 +-495.63 104.8 686.899 +-499.03 103.594 678.998 +-502.863 102.497 671.807 +-506.006 101.277 663.812 +-508.864 100.021 655.578 +-512.292 98.8958 648.203 +-516.065 97.8518 641.36 +-515.917 96.0904 629.816 +-530.235 97.0138 635.868 +-526.379 94.6139 620.138 +-530.079 93.6077 613.543 +-164.999 28.6277 187.638 +-164.992 28.1271 184.357 +-164.807 27.6063 180.943 +-170.249 28.0222 183.669 +-548.327 88.6856 581.282 +-552.749 87.8512 575.813 +-556.074 86.8492 569.245 +-558.905 85.7804 562.24 +-563.211 84.9456 556.768 +-567.034 84.0425 550.849 +-570.293 83.0624 544.425 +-2376.83 340.188 2229.73 +-580.402 81.631 535.043 +-580.975 80.2933 526.275 +-585.598 79.5256 521.243 +-589.878 78.7119 515.91 +-594.032 77.883 510.477 +-598.211 77.059 505.076 +-601.268 76.0942 498.753 +-606.343 75.3863 494.112 +-388.962 47.5057 311.372 +-387.939 46.5414 305.051 +-386.046 45.4904 298.163 +-141.217 16.3433 107.12 +-143.115 16.2656 106.611 +-142.363 15.8882 104.138 +-144.005 15.7801 103.429 +-141.656 15.2395 99.8861 +-142.041 15.0007 98.3205 +-142.821 14.8046 97.0353 +-147.817 15.0378 98.5636 +-657.686 65.6556 430.333 +-383.692 37.5811 246.322 +-380.454 36.5561 239.603 +-382.809 36.078 236.47 +-383.006 35.3993 232.021 +-382.211 34.6374 227.028 +-382.994 34.026 223.02 +-381.831 33.2491 217.928 +-381.825 32.5819 213.555 +-381.072 31.8588 208.816 +-380.704 31.176 204.34 +-383.552 30.7587 201.605 +-717.592 56.341 369.282 +-738.912 56.7843 372.187 +-724.897 54.5107 357.286 +-408.322 30.0369 196.874 +-407.698 29.3295 192.237 +-406.298 28.5751 187.293 +-406.753 27.9579 183.248 +-406.162 27.2742 178.766 +-406.9 26.6845 174.901 +-406.219 26.0065 170.458 +-404.013 25.2399 165.433 +-404.252 24.6338 161.46 +-408.639 24.2777 159.126 +-405.547 23.4795 153.894 +-407.359 22.9712 150.563 +-406.135 22.2949 146.13 +-406.278 21.6992 142.225 +-406.951 21.1342 138.522 +-404.934 20.435 133.939 +-407.052 19.9478 130.746 +-385.874 18.3501 120.274 +-381.279 17.5814 115.236 +-378.926 16.9289 110.959 +-380.083 16.4378 107.74 +-380.441 15.9128 104.299 +-379.802 15.349 100.604 +-381.353 14.875 97.4965 +-380.938 14.325 93.892 +-380.294 13.7703 90.2561 +-380.784 13.2591 86.9053 +-380.853 12.7345 83.4672 +-379.913 12.1795 79.8291 +-379.721 11.6519 76.3714 +-380.381 11.1517 73.0927 +-381.601 10.6671 69.9165 +-378.954 10.078 66.0554 +-381.002 9.61621 63.0286 +-379.272 9.06011 59.3836 +-378.892 8.54052 55.978 +-381.055 8.07719 52.9412 +-378.435 7.51431 49.2519 +-378.855 7.01595 45.9854 +-378.849 6.51022 42.6706 +-379.609 6.01764 39.4421 +-377.753 5.48599 35.9574 +-379.849 5.01225 32.8523 +-377.732 4.48372 29.3881 +-378.576 3.9927 26.1698 +-377.894 3.48599 22.8486 +-378.481 2.99164 19.6084 +-378.639 2.49337 16.3426 +-377.87 1.9902 13.0446 +-143.151 0.565369 3.70566 +-145.078 0.381937 2.50337 +-145.494 0.191502 1.25519 +96 0 0 +95.9963 0.133818 0.82699 +95.9854 0.267626 1.65392 +95.9671 0.401414 2.48072 +95.9415 0.535171 3.30733 +95.9086 0.668887 4.13369 +96.8671 0.810913 5.01141 +96.8191 0.945909 5.84567 +96.7637 1.08083 6.6795 +96.701 1.21567 7.51281 +96.7305 1.35182 8.35416 +96.653 1.4866 9.18712 +96.4686 1.61961 10.0091 +96.4758 1.75582 10.8509 +96.3762 1.89023 11.6816 +96.2693 2.02451 12.5114 +96.155 2.15862 13.3402 +95.9345 2.29021 14.1534 +95.8058 2.42385 14.9793 +95.5711 2.55467 15.7877 +96.2157 2.70998 16.7476 +95.8674 2.83819 17.5399 +95.905 2.97779 18.4026 +95.7386 3.11137 19.2281 +95.6628 3.24804 20.0727 +95.3841 3.3778 20.8747 +96.0729 3.54297 21.8954 +95.8757 3.67675 22.7221 +95.7682 3.81412 23.5711 +96.3307 3.97947 24.5929 +96.2062 4.11773 25.4474 +95.8812 4.24741 26.2488 +95.7417 4.38531 27.101 +96.0737 4.54581 28.0929 +96.013 4.6889 28.9772 +95.5624 4.81295 29.7438 +96.1518 4.9904 30.8405 +95.8755 5.12424 31.6676 +96.4429 5.30451 32.7816 +96.0552 5.4334 33.5781 +96.6004 5.61626 34.7082 +96.1962 5.7451 35.5045 +96.9056 5.94195 36.721 +96.5773 6.0768 37.5543 +96.2417 6.2112 38.3849 +95.8987 6.3451 39.2125 +96.3769 6.53471 40.3842 +96.1996 6.68156 41.2917 +96.6531 6.87386 42.4802 +96.4559 7.02159 43.3931 +96.703 7.20303 44.5144 +96.3058 7.33754 45.3457 +96.6204 7.52753 46.5198 +96.2054 7.66193 47.3504 +96.496 7.85376 48.5359 +96.0633 7.98797 49.3653 +96.3296 8.18155 50.5616 +95.9668 8.32314 51.4367 +96.2956 8.5263 52.6921 +95.7391 8.65234 53.4711 +96.0422 8.85735 54.738 +96.244 9.05574 55.9641 +95.7456 9.18957 56.7911 +96.0073 9.39778 58.0779 +95.9142 9.57359 59.1643 +95.3876 9.70692 59.9883 +95.7762 9.93521 61.3992 +95.7301 10.1212 62.5488 +95.2564 10.2632 63.4263 +95.269 10.459 64.6359 +95.4312 10.6738 65.9637 +95.5772 10.8899 67.2991 +95.5449 11.0884 68.5261 +95.7394 11.3162 69.9338 +95.0376 11.4396 70.6964 +95.1231 11.6592 72.0533 +95.1129 11.87 73.3561 +95.7912 12.1712 75.2174 +94.5009 12.2238 75.5428 +95.0641 12.5177 77.3586 +95.7556 12.8345 79.3168 +95.7351 13.0609 80.7156 +95.6972 13.2881 82.1201 +95.417 13.4845 83.3339 +95.4941 13.7346 84.8793 +94.7401 13.8672 85.6986 +95.2954 14.1948 87.7234 +95.1691 14.4261 89.1525 +95.0248 14.6581 90.5861 +94.7197 14.8683 91.8856 +94.5402 15.1015 93.3263 +94.4125 15.3466 94.8412 +94.9598 15.7074 97.0712 +94.5799 15.9203 98.3867 +94.3204 16.1566 99.8473 +94.6502 16.4996 101.967 +94.3474 16.7376 103.438 +94.5559 17.0719 105.504 +94.2101 17.3115 106.984 +94.17 17.6123 108.843 +94.3612 17.9631 111.011 +93.9488 18.2049 112.506 +94.1463 18.571 114.768 +93.6262 18.8015 116.193 +93.3958 19.095 118.006 +93.7493 19.5159 120.607 +93.4619 19.8117 122.435 +93.6251 20.2109 124.902 +92.3998 20.3147 125.544 +94.4223 21.145 130.675 +115.346 26.3134 162.616 +115.094 26.7497 165.312 +115.697 27.3992 169.326 +115.631 27.9057 172.456 +115.355 28.3739 175.349 +115.251 28.8973 178.584 +115.575 29.5446 182.584 +115.263 30.045 185.677 +115.266 30.6428 189.371 +115.516 31.3253 193.589 +115 31.8171 196.628 +114.882 32.435 200.447 +115.045 33.1527 204.882 +113.755 33.4662 206.82 +111.171 33.3979 206.397 +108.926 33.4241 206.559 +106.279 33.3185 205.907 +104.098 33.3509 206.107 +101.965 33.3942 206.375 +99.7494 33.4054 206.444 +97.1177 33.2682 205.596 +94.9233 33.2714 205.616 +92.6546 33.242 205.434 +90.6357 33.2966 205.771 +91.1185 34.2892 211.906 +91.1552 35.1527 217.242 +90.8796 35.9302 222.047 +90.5625 36.7242 226.954 +90.8104 37.7885 233.531 +90.6337 38.7217 239.298 +90.3959 39.6721 245.172 +90.0277 40.6096 250.966 +89.6289 41.5794 256.959 +89.4482 42.7025 263.899 +89.3677 43.9347 271.514 +89.0691 45.1239 278.864 +88.764 46.3767 286.606 +88.6696 47.8159 295.5 +88.452 49.2735 304.508 +88.1352 50.7648 313.724 +88.102 52.5213 324.579 +87.7332 54.1886 334.883 +87.4548 56.0292 346.258 +86.9817 57.8731 357.653 +86.7861 60.0466 371.085 +86.3161 62.1926 384.348 +85.9715 64.6074 399.271 +85.6086 67.2136 415.377 +85.1008 69.9333 432.184 +83.5185 71.9811 444.84 +83.4206 75.5713 467.027 +83.8442 80.0329 494.6 +83.5516 84.2645 520.75 +92.5878 98.9595 611.565 +87.2059 99.1164 612.535 +81.8399 99.2975 613.654 +80.385 104.576 646.277 +79.6951 111.731 690.494 +78.3859 119.13 736.216 +77.2517 128.154 791.987 +74.1695 135.418 836.877 +73.0376 148.24 916.114 +65.6548 149.977 926.851 +56.6897 148.054 914.967 +48.9603 149.228 922.222 +40.4352 147.934 914.226 +32.5822 149.038 921.051 +24.1692 147.434 911.133 +16.2761 148.947 920.485 +8.04936 147.335 910.522 +5.69626e-14 148.602 918.355 +-8.03888 147.143 909.337 +-16.2464 148.675 918.807 +-24.1221 147.146 909.356 +-32.4565 148.464 917.499 +-40.1429 146.865 907.618 +-48.641 148.255 916.209 +-56.2623 146.938 908.07 +-64.8596 148.161 915.625 +-72.3471 146.838 907.454 +-81.0548 147.989 914.565 +-88.3698 146.598 905.971 +-97.3369 147.931 914.208 +-104.521 146.536 905.586 +-113.643 147.843 913.665 +-120.541 146.254 903.843 +-126.634 143.929 889.475 +-131.299 140.335 867.262 +-138.929 140.115 865.903 +-148.196 141.46 874.215 +-158.159 143.277 885.446 +-167.73 144.559 893.368 +-148.201 121.787 752.64 +-154.351 121.185 748.917 +-156.121 117.324 725.06 +-118.609 85.4602 528.14 +-122.373 84.6691 523.251 +-127.018 84.5108 522.273 +-132.089 84.625 522.979 +-820.32 506.672 3131.21 +-848.072 505.572 3124.41 +-875.66 504.37 3116.99 +-903.181 503.131 3109.33 +-930.633 501.851 3101.42 +-958.014 500.535 3093.28 +-167.523 84.8702 524.494 +-147.587 72.556 448.393 +-149.228 71.2417 440.27 +-155.263 72.0277 445.128 +-1093.78 493.384 3049.09 +-1120.7 491.841 3039.55 +-1147.38 490.2 3029.42 +-457.887 190.539 1177.52 +-451.823 183.22 1132.29 +-1227.32 485.234 2998.72 +-421.296 162.467 1004.04 +-427.929 161.036 995.195 +-423.153 155.452 960.688 +-395.226 141.796 876.294 +-395.991 138.798 857.765 +-433.818 148.606 918.379 +-436.84 146.294 904.093 +-438.722 143.684 887.963 +-440.71 141.195 872.577 +-139.874 43.8505 270.994 +-143.973 44.1781 273.019 +-146.193 43.9194 271.42 +-149.303 43.9245 271.451 +-152.23 43.8684 271.105 +-113.454 32.0318 197.955 +-111 30.7105 189.789 +-111.303 30.1829 186.529 +-112.587 29.9308 184.971 +-113.852 29.6773 183.404 +-115.045 29.4091 181.747 +-117.078 29.3554 181.415 +-118.459 29.1376 180.069 +-120.653 29.1178 179.946 +-123.078 29.1471 180.128 +-127.158 29.5537 182.64 +-493.104 112.49 695.183 +-496.501 111.187 687.131 +-499.853 109.896 679.154 +-503.22 108.63 671.331 +-506.187 107.3 663.107 +-509.899 106.146 655.981 +-512.661 104.815 647.752 +-515.94 103.609 640.298 +-515.98 101.781 629 +-529.09 102.524 633.596 +-526.764 100.278 619.712 +-530.729 99.2604 613.425 +-165.392 30.3916 187.819 +-161.746 29.2029 180.473 +-164.807 29.2376 180.687 +-169.573 29.5602 182.681 +-548.94 94.0312 581.108 +-552.955 93.0769 575.211 +-556.56 92.0613 568.935 +-559.606 90.963 562.147 +-563.423 89.9988 556.189 +-566.82 88.9749 549.861 +-570.293 87.9705 543.654 +-2376.83 360.289 2226.57 +-582.231 86.7268 535.968 +-581.343 85.0917 525.863 +-585.97 84.278 520.834 +-589.653 83.3311 514.983 +-594.183 82.5059 509.883 +-598.668 81.6745 504.745 +-601.958 80.683 498.617 +-605.88 79.7799 493.036 +-610.448 78.9623 487.984 +-389.739 49.52 306.031 +-385.652 48.1292 297.436 +-141.534 17.3478 107.209 +-143.355 17.2556 106.639 +-142.122 16.7986 103.815 +-143.196 16.6186 102.702 +-141.656 16.14 99.7446 +-142.123 15.8962 98.2377 +-143.398 15.7427 97.2892 +-147.569 15.8995 98.2582 +-657.936 69.5614 429.886 +-384.782 39.9148 246.671 +-381.382 38.8105 239.847 +-380.604 37.9896 234.774 +-382.324 37.4242 231.28 +-383.84 36.8405 227.673 +-382.908 36.0284 222.654 +-381.138 35.1499 217.225 +-382.521 34.57 213.641 +-381.334 33.7645 208.663 +-381.407 33.0792 204.428 +-380.374 32.3062 199.651 +-717.592 59.6701 368.758 +-737.575 60.0308 370.987 +-725.255 57.7603 356.956 +-406.165 31.6437 195.556 +-406.885 31.0006 191.582 +-405.12 30.1757 186.484 +-404.296 29.431 181.882 +-404.518 28.7689 177.79 +-404.882 28.1212 173.788 +-404.286 27.4121 169.406 +-406.877 26.9209 166.37 +-403.789 26.0595 161.046 +-406.499 25.5775 158.068 +-405.454 24.8611 153.641 +-407.64 24.3453 150.453 +-405.383 23.5685 145.652 +-403.828 22.8427 141.167 +-405.817 22.3205 137.94 +-405.314 21.6627 133.875 +-404.865 21.0131 129.86 +-386.255 19.4536 120.222 +-381.566 18.6341 115.158 +-381.994 18.0744 111.699 +-380.756 17.44 107.778 +-379.959 16.8317 104.019 +-380.478 16.2849 100.64 +-380.095 15.7019 97.037 +-380.356 15.1483 93.6157 +-381.169 14.6175 90.3356 +-379.322 13.9886 86.4489 +-380.951 13.4904 83.3703 +-380.695 12.9257 79.8802 +-380.113 12.3531 76.3418 +-379.497 11.7832 72.8196 +-379.241 11.2275 69.3857 +-381.613 10.7484 66.4247 +-379.03 10.1317 62.6134 +-380.062 9.61545 59.4231 +-379.782 9.06641 56.03 +-378.877 8.50555 52.5639 +-379.327 7.97709 49.2981 +-380.244 7.45776 46.0886 +-379.246 6.90213 42.6549 +-379.609 6.37322 39.3862 +-379.246 5.8331 36.0483 +-379.949 5.30981 32.8144 +-380.523 4.78373 29.5633 +-378.975 4.23308 26.1602 +-379.491 3.70758 22.9127 +-378.98 3.17259 19.6065 +-378.639 2.6407 16.3194 +-378.369 2.11057 13.0432 +-145.45 0.608394 3.75984 +-144.578 0.403112 2.49122 +-143.695 0.200309 1.2379 +96 0 0 +95.9963 0.141273 0.825749 +95.9854 0.282536 1.65144 +95.8671 0.423336 2.47442 +95.9415 0.564985 3.30237 +96.9077 0.713507 4.17049 +96.7672 0.855206 4.99872 +96.8191 0.998606 5.8369 +96.7637 1.14105 6.66948 +95.8038 1.27149 7.43194 +96.6309 1.42566 8.33304 +96.653 1.56942 9.17334 +96.5681 1.71159 10.0043 +96.6745 1.85746 10.857 +96.3762 1.99554 11.664 +96.2693 2.13729 12.4926 +96.155 2.27888 13.3202 +96.0334 2.4203 14.1468 +96.6947 2.58262 15.0956 +96.4587 2.72205 15.9105 +96.2157 2.86096 16.7224 +95.8674 2.9963 17.5135 +95.905 3.14369 18.375 +95.8366 3.28807 19.219 +95.565 3.42548 20.0221 +96.2628 3.59882 21.0353 +96.0729 3.74035 21.8625 +95.9729 3.88553 22.7111 +95.6712 4.02253 23.5119 +96.4275 4.20538 24.5807 +96.2062 4.34713 25.4092 +95.8812 4.48403 26.2094 +95.6455 4.62496 27.0331 +96.0737 4.79906 28.0507 +96.013 4.95012 28.9337 +96.4208 5.12673 29.966 +96.0567 5.26321 30.7637 +95.8755 5.40972 31.6201 +96.4429 5.60002 32.7324 +96.1494 5.74173 33.5607 +95.7547 5.87724 34.3528 +97.2266 6.13013 35.8309 +96.8123 6.26694 36.6306 +96.5773 6.41534 37.498 +97.0761 6.61407 38.6596 +96.8226 6.76313 39.5308 +96.4689 6.90536 40.3622 +97.025 7.11431 41.5835 +95.8309 7.19509 42.0557 +97.0929 7.46172 43.6141 +95.8874 7.54017 44.0726 +96.4864 7.76084 45.3625 +95.9013 7.88776 46.1043 +95.4895 8.02858 46.9275 +95.6941 8.22239 48.0603 +96.152 8.44076 49.3367 +96.4179 8.64528 50.5321 +95.9668 8.78683 51.3595 +96.2082 8.99314 52.5654 +95.7391 9.13437 53.3909 +96.0422 9.3508 54.6559 +96.244 9.56024 55.8801 +95.8313 9.71021 56.7567 +95.922 9.91254 57.9393 +96.0838 10.1248 59.18 +96.1466 10.3292 60.375 +95.7762 10.4887 61.307 +95.8135 10.6944 62.5094 +95.2564 10.835 63.3311 +95.269 11.0416 64.5389 +95.3493 11.2588 65.8081 +95.5772 11.4966 67.1981 +95.6258 11.7161 68.4812 +95.7394 11.9467 69.8288 +95.6765 12.1581 71.0649 +95.6784 12.3806 72.3652 +95.7433 12.6144 73.7316 +95.1652 12.7653 74.6137 +95.1227 12.9897 75.9256 +95.0641 13.215 77.2425 +95.0661 13.452 78.6275 +95.0507 13.6899 80.0184 +95.0179 13.9289 81.4149 +95.5667 14.2581 83.3394 +95.3455 14.4772 84.62 +95.2562 14.7195 86.0362 +94.7103 14.8936 87.054 +95.2417 15.2414 89.0866 +94.4493 15.3809 89.9024 +94.8623 15.7203 91.8858 +94.6816 15.9666 93.3256 +95.1835 16.3339 95.4722 +94.3346 16.4733 96.2873 +94.7176 16.8317 98.3821 +94.2522 17.0444 99.6255 +94.5826 17.4063 101.741 +94.2805 17.6576 103.209 +94.5559 18.023 105.345 +94.2101 18.276 106.824 +94.17 18.5935 108.68 +94.4255 18.9768 110.92 +94.0124 19.2321 112.413 +94.0834 19.5925 114.519 +93.5639 19.8358 115.941 +93.6421 20.2119 118.139 +93.6884 20.5898 120.348 +93.7026 20.9694 122.567 +93.9225 21.4046 125.111 +92.5762 21.4874 125.595 +94.1319 22.2544 130.078 +115.69 27.8623 162.857 +115.094 28.2399 165.064 +115.697 28.9256 169.071 +115.576 29.4463 172.115 +115.028 29.8698 174.59 +115.143 30.4789 178.151 +115.045 31.0475 181.474 +114.793 31.5895 184.642 +114.802 32.2199 188.327 +114.907 32.8961 192.279 +114.95 33.575 196.248 +114.981 34.2713 200.317 +115.579 35.1619 205.523 +113.802 35.3455 206.596 +111.171 35.2585 206.088 +108.926 35.2861 206.249 +106.733 35.3249 206.476 +104.098 35.2089 205.798 +101.877 35.2244 205.889 +99.7494 35.2664 206.134 +97.498 35.259 206.091 +94.9648 35.1403 205.397 +92.6546 35.0939 205.126 +90.7553 35.198 205.734 +91.1185 36.1995 211.588 +91.1935 37.1266 217.007 +91.1792 38.057 222.445 +90.8923 38.9115 227.439 +90.8104 39.8938 233.181 +90.5986 40.8631 238.847 +90.4301 41.8981 244.897 +90.0611 42.888 250.683 +89.6289 43.8958 256.573 +89.5434 45.1295 263.784 +89.3677 46.3823 271.107 +89.0691 47.6378 278.445 +88.7933 48.9766 286.271 +88.6412 50.4636 294.962 +88.5898 52.0997 304.525 +88.1085 53.5768 313.159 +87.7914 55.2518 322.95 +87.658 57.1584 334.094 +87.2854 59.0362 345.069 +87.0518 61.1465 357.404 +86.6062 63.2603 369.76 +86.3161 65.6574 383.771 +85.9923 68.2232 398.768 +85.4491 70.8259 413.981 +85.1771 73.8954 431.922 +81.6415 74.2833 434.189 +83.0907 79.4659 464.482 +83.8607 84.5083 493.955 +83.4109 88.809 519.093 +92.7208 104.623 611.525 +87.1919 104.622 611.518 +81.853 104.846 612.831 +80.3728 110.386 645.209 +79.5932 117.805 688.575 +78.3859 125.766 735.111 +76.8875 134.656 787.071 +74.7796 144.138 842.494 +71.8999 154.06 900.491 +64.4062 155.321 907.86 +55.6396 153.407 896.672 +48.0653 154.662 904.006 +39.602 152.958 894.046 +31.9784 154.426 902.627 +23.7477 152.933 893.901 +15.9969 154.547 903.335 +7.90101 152.676 892.4 +5.60012e-14 154.233 901.502 +-7.88704 152.406 890.823 +-15.9567 154.159 901.069 +-23.664 152.394 890.748 +-31.8563 153.836 899.179 +-39.397 152.166 889.417 +-47.7252 153.567 897.608 +-55.1574 152.077 888.9 +-63.7156 153.656 898.126 +-70.9584 152.043 888.7 +-79.6342 153.495 897.187 +-86.7308 151.895 887.834 +-95.6226 153.422 896.76 +-102.528 151.751 886.99 +-111.669 153.368 896.445 +-118.518 151.81 887.339 +-125.743 150.879 881.894 +-131.476 148.353 867.131 +-139.008 148.004 865.091 +-149.104 150.255 878.249 +-157.95 151.06 882.952 +-160.203 145.764 852 +-148.316 128.672 752.092 +-154.47 128.035 748.373 +-156.1 123.844 723.875 +-118.782 90.353 528.118 +-122.576 89.5339 523.33 +-127.018 89.2189 521.489 +-132.114 89.3558 522.289 +-820.42 534.965 3126.9 +-848.072 533.737 3119.72 +-875.66 532.469 3112.31 +-903.181 531.161 3104.66 +-930.633 529.81 3096.77 +-958.014 528.42 3088.64 +-167.794 89.743 524.553 +-147.648 76.6302 447.907 +-149.228 75.2106 439.61 +-155.426 76.1202 444.926 +-1093.78 520.871 3044.51 +-1120.7 519.242 3034.99 +-1147.38 517.51 3024.87 +-458.03 201.217 1176.12 +-451.823 193.427 1130.59 +-1227.47 512.329 2994.59 +-1253.79 510.442 2983.56 +-424.373 168.594 985.442 +-423.472 164.236 959.97 +-433.378 164.146 959.443 +-431.198 159.558 932.627 +-396.078 143.237 837.228 +-436.28 154.247 901.581 +-439.248 151.871 887.694 +-441.245 149.242 872.327 +-144.187 47.7209 278.931 +-145.266 47.0582 275.058 +-145.489 46.1427 269.706 +-149.303 46.3715 271.044 +-152.667 46.445 271.474 +-113.208 33.743 197.229 +-111 32.4214 189.505 +-111.506 31.9226 186.589 +-112.536 31.5838 184.609 +-113.957 31.3595 183.298 +-115.363 31.1333 181.976 +-117.131 31.005 181.226 +-118.513 30.775 179.881 +-120.985 30.8244 180.17 +-123.022 30.757 179.776 +-127.158 31.2001 182.366 +-492.702 118.66 693.575 +-496.559 117.395 686.18 +-499.853 116.019 678.135 +-503.458 114.736 670.64 +-506.187 113.277 662.112 +-509.412 111.953 654.37 +-512.661 110.654 646.78 +-516.189 109.434 639.645 +-516.924 107.648 629.206 +-528.708 108.158 632.189 +-527.022 105.916 619.085 +-530.729 104.79 612.505 +-165.261 32.0593 187.388 +-163.468 31.1581 182.121 +-166.614 31.2047 182.393 +-169.708 31.2318 182.552 +-549.622 99.393 580.957 +-552.749 98.2257 574.134 +-556.352 97.1537 567.868 +-560.027 96.1028 561.725 +-563.211 94.9769 555.145 +-567.462 94.038 549.657 +-570.293 92.8714 542.838 +-2376.54 380.315 2222.96 +-583.986 91.8344 536.777 +-582.523 90.0145 526.139 +-585.97 88.9732 520.053 +-590.552 88.1076 514.993 +-594.183 87.1024 509.118 +-598.211 86.159 503.604 +-602.647 85.2754 498.439 +-606.343 84.2887 492.672 +-610.448 83.3614 487.251 +-388.33 52.0899 304.468 +-389.12 51.2673 299.66 +-141.376 18.2937 106.927 +-143.355 18.2169 106.479 +-142.122 17.7345 103.659 +-143.115 17.5345 102.49 +-141.819 17.0588 99.7093 +-142.041 16.7721 98.0338 +-143.233 16.6006 97.0316 +-147.817 16.8136 98.2762 +-658.603 73.5113 429.677 +-381.092 41.7344 243.94 +-382.225 41.0632 240.017 +-380.18 40.0614 234.161 +-382.665 39.5443 231.139 +-382.554 38.7626 226.569 +-382.908 38.0356 222.32 +-383.389 37.3273 218.18 +-382.608 36.5042 213.369 +-381.859 35.6946 208.637 +-382.549 35.0266 204.732 +-384.612 34.4861 201.573 +-718.39 63.0643 368.614 +-735.348 63.1837 369.312 +-954.358 80.2406 469.011 +-410.299 33.7465 197.25 +-405.983 32.6551 190.871 +-405.482 31.8853 186.371 +-405.479 31.1615 182.141 +-405.797 30.4676 178.085 +-405.616 29.7416 173.841 +-405.943 29.0578 169.844 +-405.398 28.3173 165.516 +-403.51 27.4924 160.694 +-404.546 26.8728 157.073 +-405.921 26.2763 153.586 +-404.923 25.5305 149.227 +-405.383 24.8816 145.434 +-404.959 24.1827 141.349 +-405.911 23.5694 137.764 +-405.788 22.8964 133.831 +-406.101 22.2514 130.06 +-386.16 20.5323 120.012 +-380.896 19.6379 114.784 +-380.364 18.9999 111.055 +-380.371 18.393 107.508 +-380.056 17.7739 103.89 +-381.058 17.2183 100.642 +-381.741 16.6484 97.3109 +-381.229 16.0289 93.6898 +-380.002 15.3846 89.9239 +-380.589 14.8172 86.6075 +-381.536 14.2639 83.3732 +-380.793 13.6493 79.7808 +-380.995 13.0716 76.4042 +-380.773 12.4815 72.9548 +-380.028 11.8776 69.4253 +-380.431 11.3121 66.1196 +-379.917 10.7212 62.6658 +-380.951 10.1749 59.4727 +-378.397 9.53662 55.742 +-380.263 9.01226 52.6771 +-379.327 8.4215 49.2241 +-379.748 7.86297 45.9594 +-380.637 7.31339 42.7471 +-378.913 6.71593 39.2549 +-378.649 6.14837 35.9375 +-379.351 5.5968 32.7136 +-379.626 5.03833 29.4493 +-378.576 4.4642 26.0935 +-378.792 3.90691 22.8361 +-380.278 3.36081 19.6441 +-378.939 2.79003 16.3079 +-378.169 2.22699 13.0169 +-143.751 0.634783 3.71034 +-145.978 0.42969 2.51156 +-143.695 0.211468 1.23604 +96 0 0 +95.9963 0.148716 0.824441 +95.8854 0.297112 1.64711 +96.8668 0.450287 2.49626 +96.841 0.600328 3.32805 +95.9086 0.743355 4.12095 +96.8671 0.901193 4.99596 +96.8191 1.05122 5.82766 +95.8659 1.19002 6.59713 +95.8038 1.33848 7.42017 +95.7343 1.48684 8.24264 +96.653 1.6521 9.15881 +96.5681 1.80177 9.9885 +96.4758 1.95129 10.8174 +96.3762 2.10067 11.6456 +96.2693 2.2499 12.4728 +96.155 2.39894 13.2991 +95.9345 2.54518 14.1098 +95.8058 2.6937 14.9331 +96.4587 2.86546 15.8853 +96.2157 3.01169 16.6959 +95.8674 3.15416 17.4858 +95.905 3.30931 18.3459 +95.5427 3.45069 19.1297 +95.565 3.60595 19.9904 +95.3841 3.75386 20.8103 +96.0729 3.93741 21.8279 +95.8757 4.08609 22.6521 +95.7682 4.23875 23.4985 +96.4275 4.42694 24.5417 +96.1096 4.57157 25.3435 +96.7485 4.76297 26.4046 +96.5107 4.91267 27.2345 +96.0737 5.0519 28.0063 +96.013 5.21092 28.8879 +95.5624 5.34878 29.6521 +96.1518 5.54599 30.7454 +96.729 5.74543 31.8511 +96.4429 5.89506 32.6806 +96.1494 6.04423 33.5075 +96.6004 6.24153 34.6013 +96.1962 6.38471 35.3951 +96.9056 6.60347 36.6078 +96.5773 6.75333 37.4386 +96.2417 6.9027 38.2666 +95.8987 7.05151 39.0916 +96.3769 7.26223 40.2597 +96.1079 7.41834 41.1252 +96.6531 7.63914 42.3492 +96.4559 7.80331 43.2593 +95.8874 7.93742 44.0028 +96.3058 8.15444 45.2059 +96.8001 8.38115 46.4627 +96.116 8.50701 47.1605 +96.496 8.72813 48.3863 +96.0633 8.87728 49.2131 +96.3296 9.09241 50.4058 +95.9668 9.24977 51.2781 +96.2956 9.47554 52.5297 +95.6521 9.60687 53.2578 +95.9556 9.83457 54.5201 +96.244 10.0639 55.7916 +95.7456 10.2127 56.6161 +96.0073 10.444 57.8989 +96.0838 10.6582 59.0863 +95.5563 10.8067 59.9091 +95.6084 11.022 61.1027 +95.8135 11.2578 62.4104 +95.2564 11.4058 63.2308 +95.269 11.6234 64.4367 +95.5131 11.8723 65.8168 +95.5772 12.1023 67.0917 +95.6258 12.3334 68.3727 +95.659 12.5655 69.6597 +95.7564 12.8094 71.0115 +95.2024 12.968 71.8911 +95.8221 13.2899 73.6754 +95.7912 13.5262 74.9856 +95.1227 13.6741 75.8054 +95.0641 13.9113 77.1202 +95.0661 14.1607 78.5029 +95.583 14.4919 80.339 +95.6972 14.7675 81.867 +95.417 14.9858 83.077 +95.4941 15.2637 84.6177 +95.4037 15.519 86.0329 +95.2954 15.7751 87.453 +95.1691 16.0321 88.8777 +94.8809 16.2653 90.1701 +94.8623 16.5485 91.7403 +94.6816 16.8078 93.1778 +95.1835 17.1944 95.321 +94.7514 17.4178 96.5595 +94.5799 17.6927 98.0834 +94.9342 18.0722 100.187 +94.6502 18.3365 101.652 +94.2805 18.5879 103.046 +94.4896 18.9592 105.105 +94.1445 19.2255 106.581 +94.2349 19.5866 108.583 +93.7184 19.827 109.915 +94.0124 20.2454 112.235 +93.3911 20.4729 113.496 +93.6262 20.8947 115.835 +93.6421 21.2768 117.952 +93.6884 21.6746 120.158 +93.6424 22.06 122.294 +93.8036 22.5038 124.755 +92.2823 22.5478 124.999 +93.2028 23.1957 128.591 +115.346 29.2429 162.115 +115.66 29.8742 165.614 +115.25 30.3318 168.151 +115.576 30.9977 171.843 +115.463 31.5626 174.974 +115.197 32.0996 177.951 +115.045 32.6833 181.187 +115.315 33.4052 185.189 +115.163 34.0239 188.619 +114.856 34.614 191.89 +114.9 35.3287 195.852 +115.178 36.1387 200.343 +115.191 36.8903 204.509 +113.802 37.2077 206.269 +111.64 37.2728 206.63 +109.342 37.2869 206.708 +106.733 37.186 206.149 +104.5 37.207 206.265 +101.877 37.0802 205.562 +99.6633 37.0923 205.629 +97.5403 37.1328 205.854 +95.2965 37.1209 205.788 +93.0207 37.0888 205.61 +90.8749 37.1012 205.679 +91.1576 38.123 211.343 +91.1935 39.0827 216.663 +90.8796 39.9303 221.362 +90.8923 40.9615 227.079 +90.5596 41.8796 232.169 +90.6337 43.0326 238.561 +90.1223 43.9554 243.676 +89.9943 45.114 250.1 +89.7266 46.2589 256.446 +89.5434 47.5072 263.367 +89.0896 48.674 269.835 +89.2194 50.2323 278.474 +88.7933 51.5569 285.817 +88.6128 53.1053 294.401 +88.3693 54.7079 303.285 +88.1887 56.4508 312.947 +87.9208 58.2485 322.913 +87.658 60.1698 333.565 +87.3338 62.1809 344.714 +86.9817 64.3161 356.551 +86.6287 66.6106 369.27 +86.4027 69.1858 383.547 +85.8675 71.7134 397.559 +85.6086 74.6966 414.097 +84.3376 77.0219 426.988 +81.0219 77.6035 430.212 +82.8996 83.4602 462.68 +83.8442 88.943 493.075 +83.5204 93.6107 518.952 +92.8539 110.293 611.432 +87.3033 110.274 611.329 +81.9966 110.564 612.934 +80.3606 116.184 644.09 +79.5932 124.011 687.485 +78.3754 132.375 733.849 +76.1686 140.425 778.477 +76.2264 154.668 857.434 +69.9934 157.877 875.225 +62.725 159.237 882.763 +54.1012 157.024 870.498 +46.9192 158.928 881.052 +38.5857 156.884 869.722 +31.2455 158.836 880.544 +23.0828 156.483 867.497 +15.6007 158.66 879.569 +7.68895 156.406 867.072 +5.46909e-14 158.56 879.014 +-7.68633 156.353 866.777 +-15.5745 158.394 878.092 +-23.0279 156.11 865.432 +-31.1269 158.233 877.2 +-38.3807 156.051 865.101 +-46.6418 157.988 875.844 +-53.6678 155.766 863.524 +-62.2158 157.944 875.596 +-69.044 155.735 863.353 +-77.7168 157.692 874.198 +-84.4209 155.639 862.82 +-93.2917 157.568 873.513 +-99.766 155.442 861.728 +-108.854 157.378 872.461 +-115.033 155.109 859.882 +-124.616 157.404 872.603 +-130.915 155.502 862.058 +-135.597 151.979 842.53 +-145.605 154.46 856.281 +-157.586 158.651 879.518 +-156.668 150.058 831.878 +-151.789 138.622 768.481 +-154.012 134.381 744.969 +-154.749 129.24 716.472 +-118.977 95.2693 528.146 +-122.756 94.3895 523.269 +-127.251 94.0922 521.621 +-132.307 94.2015 522.227 +-820.42 563.15 3121.94 +-848.072 561.857 3114.78 +-875.66 560.523 3107.38 +-903.181 559.145 3099.74 +-930.633 557.723 3091.86 +-958.014 556.26 3083.75 +-167.764 94.4543 523.628 +-147.772 80.7349 447.572 +-149.609 79.3751 440.033 +-155.231 80.0298 443.663 +-1093.78 548.313 3039.69 +-1120.7 546.598 3030.19 +-1147.38 544.775 3020.08 +-458.03 211.818 1174.26 +-451.31 203.387 1127.52 +-447.28 196.525 1089.48 +-324.286 138.979 770.462 +-420.427 175.826 974.732 +-422.714 172.58 956.734 +-429.921 171.416 950.281 +-431.903 168.239 932.673 +-433.944 165.199 915.817 +-436.409 162.421 900.419 +-438.853 159.729 885.492 +-441.379 157.152 871.209 +-144.46 50.3299 279.015 +-145.913 49.7578 275.843 +-145.067 48.4328 268.498 +-145.343 47.5198 263.436 +-152.279 48.7677 270.355 +-113.208 35.5207 196.917 +-111.05 34.1448 189.289 +-111.658 33.6502 186.547 +-112.587 33.263 184.401 +-113.957 33.0117 183.007 +-115.257 32.7434 181.52 +-117.131 32.6385 180.939 +-119.167 32.575 180.587 +-121.15 32.4928 180.131 +-123.414 32.4805 180.063 +-127.441 32.9171 182.483 +-493.62 125.144 693.765 +-497.198 123.739 685.975 +-500.088 122.189 677.38 +-503.755 120.853 669.973 +-506.728 119.373 661.771 +-509.716 117.922 653.725 +-512.477 116.442 645.522 +-516.625 115.296 639.171 +-517.301 113.402 628.668 +-526.418 113.363 628.454 +-527.022 111.496 618.104 +-531.313 110.433 612.208 +-164.999 33.6948 186.794 +-164.065 32.9194 182.496 +-164.807 32.4926 180.13 +-169.641 32.8641 182.19 +-549.622 104.63 580.037 +-553.231 103.491 573.724 +-556.56 102.311 567.181 +-560.237 101.204 561.046 +-563.847 100.094 554.892 +-567.462 98.9924 548.786 +-570.724 97.8383 542.388 +-571.813 96.3273 534.012 +-586.399 97.0722 538.141 +-582.818 94.8049 525.572 +-586.639 93.7678 519.823 +-590.851 92.7966 514.438 +-594.409 91.7264 508.505 +-598.896 90.802 503.381 +-602.417 89.7339 497.459 +-606.806 88.7973 492.267 +-388.651 55.8694 309.724 +-389.348 54.9779 304.782 +-388.016 53.8153 298.337 +-141.534 19.2791 106.878 +-143.435 19.1874 106.369 +-142.604 18.7322 103.846 +-143.762 18.5417 102.79 +-141.575 17.9266 99.3801 +-142.205 17.6761 97.9914 +-144.222 17.5959 97.5468 +-148.066 17.7292 98.2857 +-658.853 77.4135 429.159 +-382.937 44.1459 244.732 +-382.478 43.2552 239.795 +-381.452 42.3131 234.572 +-383.262 41.6927 231.133 +-382.211 40.7682 226.007 +-382.994 40.0485 222.018 +-383.389 39.2939 217.834 +-381.129 38.2788 212.207 +-383.258 37.7129 209.07 +-383.955 37.0076 205.16 +-382.758 36.128 200.284 +-719.188 66.4607 368.44 +-728.754 65.9163 365.421 +-2932.07 259.512 1438.66 +-409.85 35.4856 196.722 +-407.698 34.5208 191.373 +-405.391 33.5577 186.035 +-403.75 32.6634 181.077 +-406.162 32.1017 177.963 +-404.423 31.2164 173.055 +-404.654 30.4916 169.037 +-404.013 29.7073 164.689 +-404.623 29.0205 160.882 +-404.546 28.2886 156.824 +-404.614 27.5718 152.85 +-405.766 26.9315 149.3 +-405.759 26.2168 145.338 +-406.561 25.5576 141.684 +-405.06 24.7592 137.258 +-405.788 24.1027 133.619 +-406.101 23.4237 129.854 +-385.874 21.5981 119.734 +-380.705 20.662 114.544 +-381.514 20.0615 111.215 +-381.044 19.3963 107.528 +-381.983 18.8052 104.25 +-381.927 18.1668 100.712 +-381.934 17.5345 97.2061 +-381.229 16.8734 93.5414 +-379.419 16.1703 89.6436 +-380.784 15.6059 86.5146 +-380.56 14.977 83.0282 +-379.619 14.3241 79.4089 +-380.603 13.7461 76.2046 +-380.97 13.1458 72.8768 +-379.635 12.4905 69.2436 +-380.727 11.9173 66.0662 +-379.523 11.2743 62.5016 +-380.655 10.7026 59.3322 +-378.595 10.0443 55.6827 +-380.56 9.49448 52.6347 +-378.93 8.85592 49.0948 +-378.16 8.24261 45.6947 +-378.849 7.66251 42.4788 +-378.714 7.06605 39.1722 +-378.649 6.4723 35.8806 +-378.056 5.87156 32.5503 +-379.227 5.29821 29.3718 +-378.177 4.69444 26.0247 +-377.894 4.103 22.7459 +-379.379 3.52951 19.5666 +-378.24 2.93161 16.252 +-377.47 2.33997 12.9721 +-144.65 0.672408 3.72764 +-145.878 0.452019 2.50587 +-146.094 0.226328 1.2547 +96 0 0 +95.9963 0.156148 0.823066 +95.8854 0.31196 1.64436 +96.8668 0.472788 2.4921 +96.9409 0.630978 3.32593 +95.9086 0.780502 4.11408 +96.8671 0.946227 4.98763 +95.8209 1.09237 5.75796 +95.8659 1.24949 6.58612 +96.701 1.41853 7.47716 +95.7343 1.56114 8.22889 +95.6576 1.7168 9.04937 +96.4686 1.88987 9.96162 +96.6745 2.05303 10.8217 +96.5747 2.2102 11.6501 +96.4676 2.36719 12.4776 +96.155 2.51882 13.2769 +95.9345 2.67237 14.0862 +95.8058 2.8283 14.9082 +96.4587 3.00866 15.8588 +96.2157 3.16219 16.6681 +96.064 3.31857 17.4924 +95.905 3.47469 18.3153 +95.7386 3.63055 19.1369 +95.3694 3.77839 19.9162 +96.2628 3.97774 20.9669 +96.0729 4.13417 21.7915 +95.8757 4.29028 22.6143 +95.7682 4.45057 23.4593 +95.4594 4.60151 24.2549 +96.2062 4.80484 25.3267 +95.8812 4.95615 26.1242 +96.5107 5.15816 27.189 +96.2655 5.31494 28.0154 +95.8217 5.46042 28.7822 +95.5624 5.61607 29.6027 +96.1518 5.82313 30.6941 +95.8755 5.97931 31.5173 +96.4429 6.18965 32.6261 +96.1494 6.34627 33.4516 +96.6004 6.55343 34.5436 +96.1962 6.70377 35.336 +96.9056 6.93346 36.5467 +96.4843 7.08399 37.3402 +96.9834 7.30348 38.4971 +96.7302 7.4681 39.3649 +96.4689 7.63242 40.231 +96.9332 7.85594 41.4092 +96.8358 8.03605 42.3586 +96.2739 8.17778 43.1056 +96.703 8.40497 44.3032 +96.4864 8.57798 45.2151 +95.9013 8.71826 45.9545 +96.2054 8.94045 47.1257 +96.496 9.16429 48.3056 +96.0633 9.32089 49.1311 +96.4179 9.55554 50.3679 +95.8789 9.70311 51.1457 +96.2082 9.94003 52.3945 +95.7391 10.0961 53.2174 +95.9556 10.326 54.4292 +96.244 10.5668 55.6985 +95.7456 10.723 56.5216 +95.922 10.9562 57.751 +96.0838 11.1909 58.9877 +95.5563 11.3467 59.8092 +95.6084 11.5727 61.0007 +95.8135 11.8204 62.3063 +95.8367 12.0488 63.5099 +95.1866 12.1936 64.2735 +95.5131 12.4656 65.707 +95.5772 12.7071 66.9798 +95.6258 12.9497 68.2587 +95.7394 13.2045 69.6019 +95.0376 13.3485 70.361 +95.1231 13.6047 71.7114 +95.8221 13.954 73.5525 +95.0869 14.0977 74.31 +95.2004 14.3691 75.7407 +95.6043 14.6894 77.429 +95.0661 14.8683 78.372 +95.0507 15.1313 79.7584 +95.6972 15.5055 81.7305 +94.9676 15.6605 82.5478 +95.4941 16.0265 84.4765 +95.2562 16.2693 85.7567 +95.2954 16.5635 87.3071 +95.1691 16.8333 88.7295 +94.8809 17.0781 90.0197 +94.8623 17.3755 91.5873 +94.6816 17.6477 93.0224 +95.1835 18.0537 95.162 +94.8209 18.3016 96.4692 +94.5799 18.5768 97.9198 +94.3204 18.8526 99.3735 +94.6502 19.2528 101.483 +94.2805 19.5167 102.874 +94.5559 19.9206 105.003 +94.2101 20.2002 106.477 +94.2349 20.5654 108.401 +93.7827 20.8321 109.807 +94.0124 21.2571 112.047 +94.0834 21.6554 114.147 +93.5639 21.9243 115.565 +94.1346 22.4576 118.376 +93.6275 22.743 119.88 +93.7628 23.192 122.247 +93.8036 23.6283 124.546 +92.9288 23.8404 125.665 +92.8544 24.2637 127.896 +115.117 30.6433 161.523 +115.15 31.2288 164.609 +115.25 31.8476 167.871 +115.576 32.5467 171.556 +115.463 33.1398 174.682 +115.197 33.7037 177.654 +115.045 34.3165 180.885 +115.263 35.0585 184.796 +115.163 35.7241 188.304 +114.907 36.3597 191.654 +114.9 37.0941 195.525 +114.981 37.8797 199.667 +115.142 38.7174 204.082 +114.232 39.2145 206.702 +111.64 39.1354 206.286 +109.388 39.1667 206.451 +106.688 39.0277 205.718 +104.5 39.0663 205.921 +102.272 39.084 206.014 +100.137 39.131 206.262 +97.498 38.9714 205.421 +95.2965 38.9759 205.445 +93.3867 39.0954 206.074 +91.0743 39.0408 205.786 +91.1576 40.0281 210.991 +91.1935 41.0357 216.302 +90.6173 41.8047 220.356 +90.8923 43.0084 226.7 +90.4879 43.9376 231.598 +90.6337 45.1831 238.163 +90.3959 46.2921 244.009 +89.9943 47.3685 249.682 +89.694 48.5528 255.925 +89.2895 49.7397 262.182 +89.1514 51.1418 269.572 +88.7984 52.4937 276.698 +88.881 54.1868 285.622 +88.6128 55.759 293.91 +88.3142 57.406 302.591 +88.0818 59.2 312.047 +87.9985 61.2134 322.66 +87.7332 63.2309 333.294 +87.3338 65.2882 344.139 +87.0051 67.5482 356.051 +86.5837 69.9029 368.463 +86.3378 72.5886 382.619 +85.8883 75.3153 396.992 +84.8311 77.7169 409.651 +82.3722 78.9862 416.342 +80.7668 81.225 428.142 +82.535 87.2454 459.876 +83.8442 93.3877 492.253 +83.0198 97.6995 514.98 +93.0017 115.989 611.384 +87.4285 115.951 611.184 +81.9966 116.089 611.911 +80.4581 122.138 643.796 +79.5932 130.209 686.338 +78.3754 138.99 732.625 +75.3443 145.847 768.769 +69.9686 149.065 785.73 +68.7302 162.775 857.996 +61.2183 163.178 860.12 +53.0023 161.522 851.395 +45.7992 162.887 858.587 +37.7264 161.056 848.935 +30.4777 162.675 857.473 +22.5829 160.744 847.291 +13.941 148.866 784.682 +6.91229 147.634 778.19 +5.33683e-14 162.458 856.326 +-7.51704 160.55 846.272 +-15.201 162.321 855.606 +-22.5462 160.483 845.917 +-30.3451 161.968 853.742 +-37.5476 160.292 844.911 +-45.5009 161.826 852.994 +-52.5262 160.071 843.745 +-60.6463 161.653 852.084 +-67.5925 160.08 843.793 +-75.7558 161.394 850.718 +-82.5999 159.892 842.799 +-90.9502 161.29 850.17 +-97.6151 159.691 841.743 +-106.209 161.228 849.845 +-112.944 159.904 842.863 +-121.512 161.154 849.452 +-128.831 160.673 846.92 +-135.519 159.482 840.64 +-143.624 159.972 843.226 +-154.616 163.441 861.506 +-156.668 157.556 830.491 +-153.735 147.416 777.037 +-152.935 140.11 738.527 +-154.083 135.115 712.202 +-119.042 100.085 527.553 +-122.756 99.1063 522.396 +-127.438 98.9391 521.515 +-132.525 99.0717 522.213 +-820.42 591.291 3116.74 +-848.072 589.935 3109.58 +-875.66 588.533 3102.2 +-903.181 587.087 3094.57 +-930.633 585.594 3086.7 +-958.014 584.058 3078.61 +-168.125 99.3876 523.879 +-147.679 84.7162 446.545 +-149.736 83.4123 439.672 +-154.84 83.8177 441.809 +-1093.78 575.713 3034.62 +-1120.7 573.912 3025.13 +-1147.38 571.998 3015.04 +-457.708 222.246 1171.47 +-451.053 213.428 1124.99 +-447.243 206.327 1087.56 +-323.903 145.752 768.269 +-1280.15 562.125 2963 +-422.754 181.221 955.229 +-425.528 178.143 939.002 +-429.871 175.816 926.736 +-433.86 173.421 914.111 +-437.141 170.824 900.424 +-439.116 167.811 884.545 +-1461.97 546.543 2880.86 +-145.141 53.0942 279.863 +-145.913 52.2443 275.383 +-146.663 51.4126 270.999 +-149.923 51.4668 271.285 +-138.171 46.4609 244.899 +-113.159 37.2795 196.503 +-111.1 35.8673 189.059 +-111.658 35.3318 186.236 +-112.845 35.005 184.514 +-114.114 34.709 182.954 +-115.575 34.4746 181.718 +-117.346 34.3325 180.969 +-119.058 34.1715 180.12 +-120.929 34.0543 179.502 +-123.47 34.1189 179.843 +-127.725 34.6388 182.583 +-493.62 131.398 692.608 +-497.256 129.938 684.91 +-500.911 128.506 677.362 +-504.291 127.027 669.567 +-506.909 125.383 660.903 +-510.446 123.992 653.569 +-513.585 122.525 645.839 +-517.31 121.218 638.95 +-518.56 119.358 629.146 +-525.655 118.856 626.496 +-527.407 117.154 617.524 +-531.638 116.022 611.56 +-164.999 35.3786 186.483 +-165.522 34.8716 183.81 +-165.075 34.1717 180.121 +-170.519 34.6852 182.828 +-549.622 109.858 579.069 +-553.231 108.662 572.767 +-556.977 107.504 566.66 +-560.868 106.381 560.741 +-563.847 105.096 553.966 +-567.462 103.939 547.871 +-571.444 102.857 542.166 +-571.668 101.115 532.985 +-589.252 102.419 539.857 +-582.818 99.5425 524.695 +-587.307 98.5658 519.547 +-591.525 97.5449 514.166 +-595.617 96.5058 508.689 +-598.668 95.3032 502.35 +-603.337 94.3619 497.388 +-607.346 93.3176 491.883 +-389.583 58.802 309.949 +-387.548 57.4583 302.867 +-390.538 56.8718 299.775 +-140.979 20.1631 106.281 +-143.435 20.1462 106.192 +-142.765 19.6905 103.79 +-143.196 19.3917 102.215 +-142.389 18.9307 99.7852 +-142.123 18.5487 97.7716 +-144.881 18.5597 97.8292 +-148.066 18.6152 98.1217 +-658.853 81.282 428.443 +-382.518 46.3012 244.057 +-383.237 45.507 239.87 +-380.18 44.2794 233.4 +-382.239 43.6593 230.131 +-382.639 42.8535 225.884 +-382.994 42.0498 221.648 +-382.61 41.1736 217.029 +-382.957 40.3844 212.869 +-382.121 39.4799 208.101 +-382.022 38.6613 203.786 +-383.023 37.9597 200.088 +-719.543 69.8162 368.006 +-722.784 68.6433 361.823 +-731.34 67.964 358.243 +-736.921 66.9926 353.122 +-406.434 36.1334 190.462 +-405.935 35.282 185.974 +-404.66 34.373 181.182 +-406.985 33.7741 178.026 +-406.533 32.9473 173.667 +-404.746 32.0226 168.793 +-406.507 31.3846 165.43 +-405.087 30.5058 160.798 +-405.197 29.7499 156.814 +-407.601 29.1632 153.721 +-405.673 28.2707 149.017 +-406.511 27.5779 145.365 +-403.451 26.6294 140.365 +-406.195 26.0693 137.413 +-404.839 25.2479 133.083 +-406.577 24.6231 129.79 +-386.446 22.7109 119.711 +-380.705 21.6945 114.353 +-380.651 21.0163 110.778 +-381.333 20.3808 107.429 +-379.959 19.6403 103.525 +-380.188 18.9878 100.086 +-380.095 18.322 96.5766 +-380.356 17.676 93.1715 +-382.044 17.0958 90.1134 +-381.076 16.3983 86.4366 +-380.951 15.7415 82.9747 +-380.793 15.0864 79.5216 +-380.995 14.4479 76.1559 +-379.497 13.7494 72.4741 +-380.52 13.1452 69.2892 +-379.84 12.4837 65.8024 +-379.523 11.8377 62.3973 +-379.272 11.1966 59.0181 +-380.573 10.6013 55.8804 +-378.877 9.92484 52.3145 +-380.219 9.3301 49.1796 +-378.855 8.67041 45.7023 +-378.849 8.04542 42.408 +-379.609 7.43669 39.1993 +-378.151 6.78681 35.7737 +-378.454 6.17148 32.5303 +-379.227 5.56297 29.3228 +-378.875 4.93813 26.0292 +-378.792 4.31827 22.7619 +-378.081 3.69321 19.4672 +-377.64 3.07322 16.1992 +-378.469 2.46341 12.9848 +-145.05 0.707962 3.73172 +-144.578 0.470378 2.4794 +-144.794 0.235523 1.24146 +96 0 0 +95.9963 0.163567 0.821624 +96.8852 0.330188 1.65859 +95.9671 0.490651 2.46463 +96.841 0.660275 3.31668 +95.9086 0.817585 4.10687 +95.9683 0.981988 4.93269 +96.8191 1.15619 5.80774 +96.7637 1.32111 6.63616 +96.8007 1.48746 7.47176 +96.6309 1.65063 8.2914 +96.5534 1.81521 9.11811 +96.5681 1.98169 9.95436 +96.4758 2.14615 10.7805 +96.3762 2.31044 11.6058 +96.2693 2.47457 12.4302 +96.155 2.6385 13.2536 +96.0334 2.80223 14.0761 +95.8058 2.96268 14.8821 +95.5711 3.12259 15.6853 +96.3142 3.31583 16.656 +95.8674 3.46913 17.426 +95.905 3.63978 18.2832 +95.7386 3.80304 19.1033 +96.4454 4.00256 20.1056 +96.3604 4.17096 20.9515 +96.0729 4.3306 21.7533 +95.8757 4.49412 22.5747 +95.7682 4.66203 23.4182 +95.4594 4.82014 24.2124 +96.2062 5.03313 25.2823 +95.8812 5.19163 26.0785 +96.5107 5.40324 27.1414 +96.2655 5.56746 27.9663 +95.8217 5.71985 28.7318 +96.6115 5.94749 29.8752 +96.1518 6.0998 30.6403 +95.8755 6.2634 31.4621 +96.4429 6.48373 32.5689 +96.0552 6.64128 33.3603 +95.8486 6.81137 34.2147 +96.1962 7.02228 35.2741 +96.8123 7.25589 36.4476 +96.4843 7.42056 37.2747 +97.0761 7.65781 38.4665 +96.7302 7.82293 39.2959 +96.4689 7.99505 40.1605 +96.1996 8.16691 41.0238 +96.6531 8.40197 42.2045 +96.2739 8.56632 43.0301 +96.0686 8.74654 43.9353 +96.3058 8.96873 45.0514 +96.6204 9.20095 46.2179 +96.2054 9.36523 47.0432 +96.496 9.5997 48.2209 +95.9746 9.75473 48.9997 +96.4179 10.0095 50.2796 +95.9668 10.1734 51.1029 +96.2082 10.4123 52.3027 +95.7391 10.5758 53.1241 +95.9556 10.8166 54.3338 +96.3301 11.0788 55.6507 +95.8313 11.2425 56.4731 +95.922 11.4768 57.6498 +95.9142 11.7019 58.7804 +95.5563 11.8858 59.7044 +95.6084 12.1226 60.8939 +95.7301 12.3713 62.1429 +95.2564 12.5448 63.0147 +95.269 12.7841 64.2165 +95.4312 13.0467 65.5357 +95.4958 13.2995 66.8055 +95.6258 13.565 68.1391 +95.0159 13.7274 68.955 +94.9578 13.971 70.1787 +95.1231 14.2511 71.5857 +95.7433 14.605 73.3633 +95.7912 14.8769 74.7294 +95.7444 15.1379 76.0401 +94.9098 15.2756 76.7319 +95.0661 15.5748 78.2347 +95.7351 15.9644 80.1919 +95.0179 16.1269 81.0081 +94.9676 16.4046 82.4032 +94.8253 16.6703 83.7379 +95.4037 17.0687 85.7389 +95.2954 17.3504 87.1541 +95.2417 17.6465 88.6416 +95.0248 17.9166 89.9983 +94.7197 18.1737 91.2894 +94.6816 18.4862 92.8594 +95.1835 18.9114 94.9953 +94.9598 19.1993 96.4413 +94.5799 19.4595 97.7482 +94.3204 19.7484 99.1994 +94.6502 20.1676 101.305 +94.3474 20.4585 102.766 +94.5559 20.8671 104.819 +94.2757 21.1748 106.365 +94.2349 21.5425 108.212 +93.847 21.8367 109.69 +93.9488 22.252 111.776 +94.0834 22.6843 113.947 +94.1242 23.1035 116.053 +93.7037 23.4168 117.627 +93.6884 23.839 119.747 +93.6424 24.2628 121.876 +93.6846 24.7195 124.17 +93.0464 25.0046 125.602 +92.3318 25.2734 126.953 +115.117 32.0992 161.24 +115.66 32.8574 165.048 +115.585 33.4578 168.064 +115.576 34.0931 171.255 +115.028 34.5834 173.718 +115.681 35.4532 178.087 +115.045 35.947 180.568 +115.263 36.7242 184.472 +115.111 37.4047 187.89 +114.856 38.0704 191.234 +114.8 38.8225 195.012 +114.932 39.6625 199.231 +115.045 40.5227 203.553 +114.232 41.0776 206.34 +111.593 40.9777 205.838 +109.342 41.0103 206.002 +107.142 41.056 206.231 +104.5 40.9224 205.56 +102.36 40.9759 205.829 +99.7494 40.8316 205.104 +97.9207 41.0001 205.951 +95.2965 40.8277 205.085 +93.0207 40.7924 204.907 +90.7553 40.7524 204.706 +91.1185 41.9119 210.531 +91.1935 42.9854 215.923 +90.9545 43.9538 220.787 +90.8557 45.0337 226.212 +90.8104 46.1892 232.016 +90.6337 47.3298 237.746 +89.9855 48.2713 242.475 +90.0277 49.6374 249.337 +89.694 50.8597 255.477 +89.4482 52.1955 262.187 +89.2441 53.6273 269.379 +89.1292 55.1926 277.242 +88.7348 56.6678 284.652 +88.6412 58.427 293.489 +88.5347 60.2836 302.815 +88.1352 62.0502 311.689 +88.0761 64.1784 322.379 +87.7332 66.2351 332.71 +87.2854 68.3523 343.345 +87.0051 70.7576 355.427 +86.6287 73.2622 368.008 +86.3594 76.0566 382.045 +86.0962 79.0846 397.256 +83.7345 80.357 403.647 +81.5136 81.8766 411.28 +80.7121 85.0265 427.103 +82.3266 91.1598 457.911 +83.9432 97.9403 491.971 +82.7225 101.975 512.238 +92.9721 121.461 610.118 +87.5677 121.653 611.085 +81.9966 121.604 610.839 +80.5434 128.076 643.349 +79.6045 136.415 685.233 +78.2814 145.419 730.463 +75.5744 153.243 769.765 +69.9163 156.03 783.767 +67.9299 168.523 846.519 +60.2068 168.106 844.427 +52.3491 167.111 839.429 +45.077 167.935 843.566 +37.3077 166.835 838.041 +29.9961 167.712 842.444 +22.3551 166.683 837.277 +13.7822 154.162 774.384 +6.87826 153.887 773.001 +5.25111e-14 167.443 841.095 +-7.43501 166.343 835.571 +-14.9462 167.183 839.79 +-22.3028 166.293 835.316 +-29.8949 167.146 839.602 +-37.155 166.152 834.611 +-44.8467 167.077 839.257 +-52.0134 166.039 834.044 +-59.8092 166.996 838.85 +-66.8471 165.837 833.027 +-74.7012 166.709 837.405 +-81.7948 165.856 833.122 +-89.6854 166.603 836.878 +-96.6303 165.591 831.79 +-104.649 166.408 835.896 +-111.561 165.449 831.079 +-119.912 166.587 836.794 +-127.53 166.608 836.9 +-135.457 166.982 838.779 +-142.387 166.129 834.493 +-152.185 168.514 846.475 +-156.832 165.215 829.903 +-153.563 154.247 774.81 +-152.696 146.537 736.08 +-154.374 141.802 712.297 +-119.042 104.84 526.629 +-122.958 103.986 522.341 +-127.414 103.621 520.506 +-132.718 103.93 522.059 +-820.42 619.385 3111.28 +-848.072 617.964 3104.14 +-875.66 616.495 3096.76 +-903.181 614.98 3089.15 +-930.633 613.416 3081.29 +-958.014 611.808 3073.21 +-167.944 103.998 522.4 +-147.71 88.7598 445.856 +-149.926 87.4865 439.459 +-154.743 87.7446 440.756 +-1093.78 603.066 3029.3 +-1120.7 601.18 3019.83 +-1147.38 599.175 3009.76 +-457.564 232.733 1169.06 +-450.797 223.442 1122.39 +-447.018 216.022 1085.12 +-323.597 152.533 766.198 +-444.339 204.384 1026.65 +-426.502 191.514 962.009 +-424.145 186 934.311 +-428.295 183.494 921.721 +-433.902 181.678 912.598 +-436.71 178.764 897.962 +-438.985 175.732 882.73 +-394.171 154.359 775.37 +-145.005 55.5645 279.11 +-145.497 54.5707 274.118 +-146.71 53.8725 270.611 +-150.066 53.9637 271.069 +-138.898 48.9246 245.756 +-112.962 38.9828 195.817 +-111.1 37.5714 188.728 +-111.811 37.061 186.164 +-112.845 36.6682 184.191 +-114.114 36.3581 182.633 +-115.628 36.1291 181.483 +-117.83 36.1119 181.396 +-119.004 35.7788 179.723 +-121.481 35.8351 180.006 +-123.917 35.8696 180.179 +-127.668 36.2685 182.183 +-493.62 137.641 691.395 +-497.082 136.064 683.471 +-500.617 134.532 675.779 +-504.291 133.062 668.394 +-507.27 131.434 660.214 +-510.446 129.883 652.424 +-513.585 128.347 644.708 +-517.123 126.932 637.601 +-519.441 125.242 629.111 +-525.21 124.397 624.868 +-527.921 122.839 617.044 +-531.119 121.416 609.892 +-162.375 36.4702 183.196 +-165.059 36.4261 182.974 +-167.216 36.2595 182.138 +-169.033 36.0165 180.917 +-549.691 115.092 578.126 +-553.231 113.825 571.763 +-556.977 112.612 565.667 +-560.868 111.435 559.759 +-564.554 110.227 553.689 +-567.89 108.96 547.324 +-571.659 107.785 541.42 +-571.015 105.799 531.444 +-590.202 107.458 539.781 +-582.523 104.219 523.511 +-586.936 103.183 518.308 +-591.525 102.18 513.265 +-595.089 101.001 507.347 +-599.58 99.9836 502.234 +-603.337 98.8453 496.517 +-607.037 97.7017 490.772 +-612.08 96.7743 486.114 +-389.348 60.4679 303.741 +-389.12 59.3575 298.163 +-141.138 21.145 106.215 +-143.435 21.1034 106.006 +-143.167 20.684 103.899 +-143.034 20.29 101.92 +-141.656 19.7281 99.0974 +-142.123 19.43 97.6003 +-145.046 19.4636 97.7689 +-148.398 19.5434 98.1696 +-659.604 85.2409 428.18 +-383.272 48.5968 244.11 +-382.394 47.5643 238.924 +-382.3 46.6419 234.29 +-379.936 45.4582 228.344 +-383.411 44.9802 225.943 +-383.425 44.0973 221.508 +-382.956 43.1689 216.845 +-383.392 42.3514 212.738 +-382.121 41.3557 207.737 +-382.901 40.5913 203.897 +-381.168 39.5707 198.77 +-720.43 73.2235 367.814 +-722.339 71.8603 360.967 +-730.893 71.1496 357.397 +-736.652 70.1498 352.374 +-406.073 37.8166 189.959 +-405.845 36.9499 185.606 +-405.934 36.1196 181.435 +-405.888 35.2835 177.235 +-405.249 34.4037 172.816 +-405.022 33.5671 168.613 +-404.844 32.7412 164.465 +-405.365 31.977 160.626 +-406.499 31.2636 157.042 +-405.547 30.3949 152.679 +-406.89 29.7028 149.202 +-405.383 28.808 144.707 +-405.713 28.051 140.905 +-405.817 27.2825 137.045 +-406.546 26.5591 133.411 +-406.577 25.793 129.563 +-384.348 23.6607 118.852 +-380.992 22.7425 114.239 +-380.747 22.0202 110.611 +-380.083 21.2793 106.889 +-381.694 20.6674 103.816 +-379.899 19.8749 99.8349 +-381.934 19.2854 96.8739 +-380.356 18.5159 93.0083 +-382.725 17.94 90.1157 +-379.03 17.0852 85.8219 +-380.951 16.4895 82.8293 +-380.499 15.791 79.3211 +-380.113 15.0993 75.8464 +-379.497 14.4027 72.3471 +-379.831 13.7449 69.0427 +-380.431 13.0972 65.7893 +-379.523 12.4001 62.288 +-379.766 11.7439 58.9915 +-379.485 11.0733 55.623 +-380.263 10.4344 52.414 +-380.715 9.78614 49.1575 +-377.565 9.05143 45.4669 +-377.955 8.40778 42.2337 +-378.714 7.77165 39.0383 +-378.151 7.10926 35.711 +-378.056 6.45788 32.439 +-379.826 5.83647 29.3176 +-378.576 5.16867 25.9631 +-378.792 4.52344 22.722 +-379.279 3.88095 19.4946 +-377.74 3.2201 16.1751 +-379.369 2.58658 12.9928 +-144.95 0.741088 3.72261 +-146.378 0.49886 2.50586 +-145.094 0.247225 1.24185 +96 0 0 +95.9963 0.170972 0.820115 +95.9854 0.341932 1.64017 +95.9671 0.512866 2.4601 +96.841 0.69017 3.31058 +95.9086 0.854602 4.09933 +95.8684 1.02538 4.9185 +96.8191 1.20854 5.79708 +96.8635 1.38235 6.63079 +96.701 1.5532 7.45035 +96.7305 1.72714 8.2847 +96.5534 1.8974 9.10136 +96.5681 2.07141 9.93608 +96.4758 2.24331 10.7607 +96.3762 2.41505 11.5844 +96.2693 2.58661 12.4073 +96.155 2.75796 13.2293 +95.9345 2.92608 14.0357 +95.8058 3.09682 14.8547 +96.4587 3.2943 15.802 +96.3142 3.46595 16.6254 +96.064 3.63363 17.4297 +95.905 3.80457 18.2496 +95.7386 3.97523 19.0682 +95.565 4.1456 19.8855 +96.2628 4.35538 20.8917 +95.196 4.48534 21.5151 +95.9729 4.70237 22.5562 +95.7682 4.8731 23.3751 +96.3307 5.08435 24.3885 +96.1096 5.25572 25.2105 +95.8812 5.42669 26.0306 +96.5107 5.64788 27.0915 +96.0737 5.80794 27.8593 +95.8217 5.97882 28.679 +95.5624 6.14925 29.4965 +96.1518 6.37597 30.5841 +95.8755 6.54698 31.4043 +96.3483 6.77063 32.4772 +96.0552 6.94197 33.299 +96.6004 7.1756 34.4197 +96.1962 7.34022 35.2093 +96.8123 7.58441 36.3806 +96.5773 7.764 37.2421 +96.9834 7.99687 38.3591 +96.8226 8.18491 39.2611 +96.4689 8.35704 40.0868 +96.9332 8.60178 41.2607 +96.6531 8.78237 42.127 +96.2739 8.95417 42.9511 +95.8874 9.1253 43.7719 +96.3058 9.37479 44.9687 +95.9013 9.54596 45.7897 +96.116 9.78013 46.913 +96.5851 10.0436 48.1768 +96.0633 10.2058 48.9549 +96.5062 10.4723 50.2332 +95.8789 10.6243 50.9623 +96.2082 10.8837 52.2067 +95.7391 11.0546 53.0266 +96.0422 11.3166 54.2829 +96.244 11.57 55.4988 +95.7456 11.741 56.319 +95.922 11.9964 57.5439 +96.0838 12.2533 58.7762 +95.5563 12.4239 59.5947 +95.7762 12.6937 60.8887 +95.063 12.8413 61.5965 +95.9196 13.2041 63.3369 +95.269 13.3629 64.0985 +95.4312 13.6374 65.4153 +95.5772 13.9135 66.7396 +95.6258 14.1791 68.0139 +95.7394 14.4581 69.3524 +95.1175 14.6281 70.1676 +95.2024 14.9088 71.5139 +95.1129 15.1657 72.7463 +95.0869 15.4361 74.0436 +95.1227 15.7205 75.4076 +95.0641 15.9932 76.7155 +95.7556 16.398 78.6574 +95.0507 16.5679 79.4724 +95.0179 16.8571 80.8594 +95.5667 17.2555 82.7708 +94.8253 17.4251 83.5841 +94.7401 17.7174 84.9861 +94.6372 18.0107 86.3932 +95.1691 18.4314 88.4113 +94.8809 18.6995 89.697 +94.7197 18.9965 91.1217 +94.6816 19.3232 92.6888 +94.5527 19.6366 94.1924 +94.8209 20.0392 96.1233 +94.5799 20.3405 97.5687 +94.866 20.7619 99.5899 +94.6502 21.0807 101.119 +94.2805 21.3696 102.505 +94.0258 21.6896 104.04 +94.2757 22.1335 106.169 +94.17 22.5023 107.938 +93.847 22.8254 109.488 +93.8851 23.2438 111.495 +94.0205 23.6956 113.662 +93.5639 24.0058 115.15 +93.7037 24.4771 117.411 +94.1754 25.0479 120.149 +93.7026 25.3777 121.731 +93.5656 25.8061 123.786 +93.1052 26.1532 125.451 +92.0995 26.3514 126.401 +115.059 33.5358 160.864 +115.094 34.1767 163.937 +115.138 34.8373 167.106 +114.968 35.4493 170.042 +114.973 36.132 173.317 +115.251 36.9206 177.099 +115.098 37.5918 180.319 +115.263 38.3869 184.133 +115.111 39.0982 187.545 +115.313 39.9523 191.642 +114.8 40.5803 194.654 +114.981 41.476 198.951 +115.045 42.3574 203.179 +114.136 42.9015 205.789 +111.922 42.9591 206.065 +109.342 42.867 205.623 +107.096 42.8964 205.764 +104.901 42.9395 205.971 +102.272 42.7946 205.276 +100.051 42.8093 205.346 +97.9207 42.8564 205.572 +95.6697 42.8434 205.51 +93.3867 42.807 205.335 +91.0743 42.7472 205.049 +91.1185 43.8095 210.144 +91.0021 44.8375 215.075 +90.9545 45.9438 220.382 +90.8923 47.0916 225.888 +90.8104 48.2804 231.59 +90.5986 49.4535 237.217 +90.3959 50.687 243.134 +90.0277 51.8848 248.879 +89.7266 53.1818 255.1 +89.4482 54.5587 261.705 +89.1514 55.9971 268.605 +89.039 57.6331 276.452 +88.9102 59.3507 284.691 +88.5844 61.0331 292.762 +88.6174 63.072 302.541 +88.1619 64.8793 311.211 +87.9985 67.0249 321.503 +87.7832 69.2735 332.289 +87.2612 71.4272 342.62 +86.795 73.7826 353.918 +86.6511 76.599 367.427 +86.2512 79.4005 380.866 +85.9299 82.5054 395.759 +82.4386 82.6954 396.671 +81.3419 85.4035 409.66 +80.8761 89.0568 427.185 +82.3092 95.2671 456.974 +83.8277 102.234 490.391 +82.4722 106.269 509.75 +92.9721 126.96 608.998 +87.693 127.343 610.835 +82.1271 127.312 610.687 +80.5434 133.875 642.168 +79.5139 142.429 683.197 +78.1455 151.739 727.856 +75.8332 160.729 770.981 +69.9425 163.156 782.62 +66.2979 171.921 824.665 +59.4116 173.397 831.743 +51.2258 170.929 819.907 +44.4385 173.052 830.089 +36.5879 171.024 820.365 +29.6157 173.082 830.233 +21.1719 165.008 791.506 +13.742 160.673 770.71 +7.00479 163.814 785.775 +5.17457e-14 172.473 827.313 +-7.2884 170.446 817.59 +-14.749 172.447 827.187 +-21.842 170.231 816.558 +-29.4796 172.286 826.417 +-36.4222 170.25 816.647 +-44.2501 172.318 826.57 +-50.9694 170.074 815.804 +-58.9582 172.073 825.395 +-65.5526 169.988 815.393 +-73.664 171.837 824.263 +-80.0216 169.607 813.565 +-88.3997 171.65 823.365 +-94.57 169.398 812.56 +-103.26 171.633 823.284 +-109.407 169.601 813.538 +-118.116 171.522 822.752 +-124.736 170.336 817.064 +-134.44 173.232 830.954 +-139.317 169.906 815.002 +-149.667 173.229 830.941 +-155.52 171.251 821.449 +-153.792 161.471 774.54 +-152.816 153.291 735.303 +-153.834 147.703 708.499 +-119.107 109.646 525.948 +-123.003 108.734 521.572 +-127.648 108.511 520.501 +-132.718 108.636 521.101 +-820.42 647.428 3105.56 +-848.072 645.942 3098.44 +-875.66 644.408 3091.07 +-903.181 642.824 3083.48 +-930.633 641.189 3075.64 +-958.014 639.508 3067.57 +-168.395 108.998 522.84 +-147.494 92.6426 444.385 +-150.307 91.6797 439.766 +-155.068 91.9101 440.871 +-1093.78 630.371 3023.74 +-1120.7 628.399 3014.28 +-468.122 255.526 1225.7 +-457.278 243.117 1166.18 +-451.273 233.805 1121.51 +-447.243 225.915 1083.66 +-445.214 219.36 1052.22 +-444.379 213.656 1024.86 +-445.124 208.925 1002.16 +-1332.59 610.84 2930.06 +-427.093 191.263 917.444 +-432.127 189.127 907.196 +-434.816 186.047 892.424 +-439.73 184 882.604 +-441.468 180.708 866.812 +-144.868 58.0257 278.336 +-145.866 57.1863 274.309 +-147.038 56.4377 270.719 +-150.353 56.5145 271.087 +-147.818 54.424 261.059 +-112.617 40.6233 194.861 +-111.1 39.2725 188.381 +-112.166 38.8621 186.412 +-112.793 38.311 183.769 +-114.375 38.0912 182.715 +-115.84 37.8341 181.481 +-117.776 37.7296 180.98 +-119.058 37.4157 179.474 +-121.702 37.5257 180.002 +-123.861 37.4767 179.767 +-128.064 38.0284 182.413 +-494.136 144.023 690.846 +-497.779 142.423 683.172 +-500.911 140.706 674.933 +-504.291 139.087 667.166 +-507.27 137.385 659.002 +-510.629 135.812 651.459 +-513.77 134.206 643.755 +-517.061 132.663 636.353 +-521.266 131.372 630.162 +-524.955 129.966 623.419 +-527.921 128.401 615.91 +-531.898 127.099 609.664 +-161.915 38.0135 182.342 +-165.257 38.1212 182.859 +-164.807 37.3553 179.185 +-170.316 37.9331 181.956 +-550.645 120.512 578.067 +-553.85 119.112 571.352 +-557.602 117.842 565.261 +-561.358 116.582 559.219 +-564.554 115.218 552.672 +-568.318 113.979 546.731 +-571.659 112.665 540.426 +-571.74 110.729 531.142 +-590.934 112.463 539.457 +-582.818 108.993 522.814 +-587.307 107.924 517.684 +-591.9 106.874 512.647 +-595.768 105.695 506.993 +-599.58 104.51 501.312 +-603.796 103.399 495.982 +-607.732 102.242 490.431 +-389.894 64.4361 309.085 +-388.174 63.015 302.268 +-388.095 61.8815 296.831 +-140.9 22.065 105.84 +-143.275 22.0343 105.694 +-143.408 21.6568 103.883 +-142.872 21.1847 101.618 +-142.633 20.7635 99.5977 +-142.041 20.298 97.3649 +-145.458 20.4026 97.8666 +-148.149 20.3939 97.8246 +-659.854 89.1342 427.556 +-382.518 50.697 243.182 +-381.382 49.5862 237.853 +-381.791 48.6888 233.549 +-379.084 47.4098 227.414 +-383.068 46.9747 225.327 +-386.182 46.4253 222.691 +-381.484 44.9499 215.614 +-381.477 44.0477 211.286 +-382.471 43.2677 207.545 +-383.164 42.4583 203.662 +-382.581 41.5156 199.141 +-723.091 76.8214 368.495 +-722.784 75.1602 360.526 +-408.896 41.6066 199.577 +-736.652 73.3259 351.727 +-406.524 39.5727 189.821 +-408.11 38.8386 186.3 +-406.298 37.7888 181.264 +-409.086 37.1716 178.304 +-405.616 35.994 172.655 +-405.114 35.0948 168.342 +-404.844 34.2236 164.163 +-403.047 33.2336 159.414 +-406.127 32.6493 156.611 +-407.041 31.888 152.959 +-406.422 31.0119 148.757 +-406.135 30.1682 144.71 +-405.053 29.2735 140.418 +-406.573 28.5708 137.048 +-406.167 27.7357 133.042 +-404.009 26.7904 128.507 +-386.351 24.8609 119.252 +-378.792 23.6348 113.371 +-380.556 23.0058 110.353 +-380.371 22.2597 106.774 +-381.309 21.5813 103.52 +-380.188 20.7904 99.7269 +-379.417 20.0257 96.0587 +-380.55 19.364 92.8848 +-380.877 18.6617 89.5159 +-380.589 17.9322 86.0166 +-381.146 17.2449 82.7196 +-380.108 16.489 79.094 +-382.367 15.8765 76.1561 +-380.97 15.1132 72.4944 +-379.831 14.3672 68.9159 +-381.613 13.7327 65.8725 +-380.114 12.9818 62.2705 +-377.494 12.2022 58.5309 +-379.288 11.5686 55.4919 +-379.372 10.8813 52.195 +-379.823 10.2052 48.9522 +-378.458 9.48363 45.4908 +-379.743 8.83005 42.3557 +-380.106 8.1534 39.11 +-379.943 7.46634 35.8143 +-378.454 6.75739 32.4136 +-378.629 6.08152 29.1716 +-378.975 5.40838 25.9427 +-379.69 4.73947 22.7341 +-379.379 4.05772 19.4639 +-379.239 3.37924 16.2094 +-377.47 2.69016 12.9041 +-146.65 0.783723 3.75934 +-145.478 0.518242 2.48588 +-143.895 0.256281 1.22932 +96 0 0 +95.9963 0.178364 0.818539 +95.9854 0.356715 1.63702 +95.9671 0.535039 2.45537 +96.9409 0.720751 3.30763 +95.9086 0.891549 4.09145 +96.9669 1.08197 4.9653 +95.8209 1.24779 5.72629 +96.7637 1.44063 6.61124 +96.701 1.62035 7.43604 +96.6309 1.79996 8.26027 +96.653 1.98147 9.09324 +96.5681 2.16097 9.91699 +96.4758 2.3403 10.74 +96.5747 2.52466 11.586 +96.2693 2.69843 12.3835 +96.155 2.87719 13.2039 +96.0334 3.05574 14.0232 +96.5959 3.25736 14.9485 +95.5711 3.40508 15.6264 +96.3142 3.6158 16.5934 +96.064 3.79072 17.3962 +95.905 3.96906 18.2146 +95.7386 4.14709 19.0316 +95.565 4.32483 19.8473 +95.3841 4.50222 20.6614 +96.0729 4.72237 21.6717 +95.8757 4.90068 22.4899 +95.6712 5.07863 23.3066 +96.3307 5.30417 24.3416 +96.1096 5.48295 25.162 +95.8812 5.6613 25.9805 +96.5107 5.89205 27.0395 +96.2655 6.07113 27.8613 +96.013 6.24976 28.6811 +96.4208 6.47274 29.7044 +96.1518 6.65163 30.5253 +95.8755 6.83002 31.344 +96.4429 7.07029 32.4466 +96.0552 7.24209 33.235 +95.7547 7.42029 34.0528 +96.1962 7.65756 35.1417 +95.8787 7.836 35.9605 +96.4843 8.09187 37.1348 +96.9834 8.3426 38.2854 +96.7302 8.53064 39.1483 +96.4689 8.71834 40.0097 +97.025 8.98215 41.2204 +96.6531 9.16206 42.046 +96.4559 9.35896 42.9496 +95.8874 9.51981 43.6878 +96.3058 9.7801 44.8823 +95.9013 9.95866 45.7018 +96.2054 10.2125 46.8665 +95.7832 10.3908 47.685 +96.152 10.6569 48.9059 +96.4179 10.9151 50.0909 +95.9668 11.0938 50.911 +96.2082 11.3543 52.1064 +95.7391 11.5326 52.9247 +95.9556 11.7952 54.1298 +95.5547 11.9838 54.9955 +95.8313 12.2596 56.2611 +95.2399 12.426 57.0249 +95.4054 12.6928 58.249 +95.3876 12.9382 59.3753 +95.6084 13.2193 60.6652 +95.8135 13.5022 61.9636 +95.2564 13.6797 62.7781 +95.269 13.9406 63.9754 +95.4312 14.227 65.2896 +95.5772 14.515 66.6114 +95.6258 14.7921 67.8832 +95.659 15.0706 69.161 +95.0376 15.2477 69.974 +95.1231 15.5404 71.317 +95.7433 15.9262 73.0878 +95.0869 16.1035 73.9013 +95.7444 16.5073 75.7546 +95.0641 16.6846 76.568 +95.6023 17.0796 78.3806 +94.8987 17.2565 79.1928 +95.0179 17.5858 80.704 +95.5667 18.0015 82.6117 +95.4941 18.3066 84.0119 +95.4037 18.6128 85.417 +95.1491 18.891 86.6936 +95.1691 19.2283 88.2414 +95.0248 19.5375 89.6604 +94.8623 19.8476 91.0835 +94.6816 20.1586 92.5107 +95.1835 20.6223 94.6386 +94.9598 20.9362 96.0792 +94.5111 21.2045 97.3104 +94.3204 21.5349 98.8269 +94.6502 21.992 100.925 +94.3474 22.3093 102.381 +94.5559 22.7549 104.426 +94.2101 23.0743 105.891 +94.17 23.4752 107.731 +93.7827 23.796 109.203 +93.9488 24.2651 111.356 +94.1463 24.753 113.595 +93.6262 25.0603 115.005 +93.5805 25.5019 117.032 +93.6275 25.9788 119.22 +93.7026 26.4748 121.497 +93.4467 26.8875 123.391 +93.2227 27.3184 125.368 +92.0995 27.4906 126.159 +114.945 34.9508 160.394 +115.604 35.8122 164.347 +115.641 36.5022 167.514 +115.079 37.0175 169.879 +115.463 37.8548 173.721 +115.143 38.481 176.595 +115.151 39.2351 180.056 +115.315 40.0648 183.863 +115.008 40.7519 187.016 +115.363 41.6979 191.358 +114.9 42.3717 194.45 +114.882 43.2321 198.398 +115.288 44.2819 203.216 +114.804 45.0182 206.595 +111.875 44.7974 205.582 +109.758 44.8902 206.008 +107.096 44.751 205.369 +104.901 44.7959 205.575 +102.272 44.6447 204.881 +100.438 44.833 205.745 +97.9207 44.7093 205.177 +95.6697 44.6956 205.115 +93.3867 44.6577 204.941 +91.5528 44.8295 205.729 +91.1576 45.7231 209.83 +91.1552 46.8545 215.022 +90.9545 47.9301 219.958 +90.8557 49.1077 225.363 +90.7746 50.3479 231.054 +90.5986 51.5915 236.761 +90.0881 52.6982 241.84 +90.0945 54.1682 248.586 +89.7591 55.501 254.702 +89.3213 56.8368 260.832 +89.275 58.499 268.46 +89.039 60.1247 275.921 +88.7056 61.7741 283.491 +88.6412 63.7127 292.387 +88.2866 65.5531 300.833 +87.9749 67.5406 309.954 +88.0244 69.9431 320.979 +87.7332 72.2271 331.461 +87.1887 74.4533 341.677 +86.8417 77.014 353.428 +86.6736 79.9315 366.817 +86.1646 82.75 379.752 +84.5993 84.7396 388.882 +81.2424 85.0187 390.163 +81.3228 89.0749 408.778 +80.293 92.237 423.289 +81.8578 98.8406 453.594 +83.7452 106.549 488.967 +82.4566 110.843 508.674 +90.3411 128.701 590.626 +87.693 132.849 609.662 +82.2837 133.07 610.677 +80.446 139.494 640.158 +79.5139 148.586 681.884 +77.466 156.923 720.141 +77.1079 170.497 782.435 +70.0906 170.57 782.771 +63.7009 172.328 790.839 +56.1191 170.868 784.139 +49.5043 172.326 790.83 +41.9577 170.455 782.245 +35.2445 171.867 788.723 +27.944 170.373 781.865 +21.0934 171.504 787.055 +13.9235 169.833 779.389 +7.03708 171.683 787.881 +5.03007e-14 174.905 802.665 +-7.02835 171.471 786.903 +-14.3284 174.772 802.054 +-21.0594 171.227 785.785 +-28.6769 174.841 802.371 +-35.1354 171.335 786.282 +-42.9731 174.58 801.175 +-49.138 171.051 784.979 +-57.2561 174.33 800.028 +-63.2145 171.012 784.8 +-71.5984 174.239 799.61 +-77.3092 170.942 784.478 +-85.8388 173.883 797.976 +-91.2418 170.502 782.458 +-100.372 174.045 798.718 +-105.491 170.601 782.914 +-114.748 173.835 797.756 +-119.918 170.836 783.992 +-130.279 175.128 803.688 +-134.151 170.679 783.273 +-143.902 173.757 797.398 +-150.126 172.458 791.433 +-154.708 169.455 777.655 +-152.935 160.044 734.465 +-152.524 152.777 701.117 +-119.366 114.636 526.082 +-123.206 113.622 521.426 +-127.835 113.368 520.262 +-133.154 113.704 521.806 +-820.42 675.419 3099.59 +-848.072 673.869 3092.48 +-875.66 672.268 3085.13 +-903.181 670.615 3077.55 +-930.633 668.91 3069.73 +-958.014 667.156 3061.67 +-168.846 114.015 523.234 +-147.772 96.8301 444.367 +-150.974 96.0672 440.867 +-155.003 95.8435 439.84 +-1093.78 657.624 3017.93 +-1120.7 655.567 3008.49 +-467.527 266.235 1221.79 +-457.278 253.628 1163.94 +-450.723 243.617 1118 +-447.58 235.861 1082.4 +-445.214 228.843 1050.2 +-444.847 223.127 1023.96 +-445.642 218.213 1001.41 +-446.149 213.35 979.095 +-447.578 209.103 959.603 +-429.93 196.3 900.848 +-433.309 193.418 887.623 +-437.1 190.807 875.64 +-438.657 187.32 859.638 +-145.005 60.5912 278.062 +-145.543 59.5265 273.176 +-147.414 59.0283 270.889 +-150.353 58.9578 270.566 +-456.4 175.303 804.489 +-112.617 42.3796 194.486 +-111.2 41.0072 188.188 +-111.709 40.3772 185.297 +-113.102 40.0768 183.918 +-114.584 39.8106 182.697 +-115.575 39.3795 180.718 +-117.454 39.253 180.138 +-119.548 39.194 179.867 +-121.592 39.1125 179.493 +-123.805 39.0793 179.341 +-128.631 39.8479 182.868 +-494.652 150.407 690.24 +-498.592 148.824 682.973 +-501.146 146.858 673.953 +-504.529 145.168 666.198 +-507.631 143.426 658.204 +-511.481 141.92 651.292 +-514.262 140.142 643.133 +-514.82 137.799 632.378 +-525.923 138.276 634.57 +-524.892 135.569 622.146 +-528.179 134.018 615.027 +-532.482 132.74 609.162 +-162.44 39.7855 182.582 +-164.727 39.6416 181.921 +-166.413 39.3499 180.582 +-169.911 39.4787 181.174 +-550.645 125.722 576.956 +-554.745 124.462 571.176 +-557.602 122.937 564.175 +-561.569 121.668 558.354 +-564.625 120.214 551.679 +-568.746 118.996 546.09 +-572.307 117.669 539.998 +-572.393 115.648 530.727 +-592.031 117.543 539.42 +-583.85 113.906 522.734 +-587.307 112.589 516.689 +-592.199 111.55 511.921 +-596.447 110.39 506.595 +-600.264 109.153 500.919 +-604.332 107.965 495.468 +-608.889 106.865 490.421 +-612.08 105.529 484.289 +-387.939 65.6998 301.506 +-389.435 64.7798 297.284 +-141.772 23.1616 106.292 +-143.036 22.9484 105.314 +-143.73 22.6438 103.916 +-142.468 22.038 101.136 +-142.47 21.6365 99.293 +-142.614 21.2611 97.5701 +-146.447 21.4293 98.3423 +-148.149 21.2756 97.6367 +-660.104 93.0228 426.895 +-381.092 52.6916 241.81 +-382.141 51.8328 237.868 +-383.318 50.9969 234.032 +-382.921 49.96 229.274 +-684.191 87.5277 401.677 +-690.854 86.6422 397.614 +-381.484 46.8933 215.2 +-384.175 46.2771 212.372 +-381.422 45.0144 206.577 +-384.658 44.4665 204.063 +-383.817 43.4503 199.4 +-727.083 80.5851 369.817 +-722.963 78.429 359.922 +-407.732 43.2819 198.627 +-738 76.6361 351.694 +-407.337 41.3662 189.835 +-408.564 40.5626 186.148 +-404.66 39.2635 180.186 +-406.254 38.5102 176.729 +-411.118 38.0595 174.66 +-404.194 36.5289 167.636 +-404.013 35.6297 163.51 +-404.53 34.7981 159.694 +-404.918 33.9592 155.844 +-405.174 33.1142 151.966 +-404.361 32.1887 147.719 +-406.511 31.5016 144.566 +-405.713 30.5887 140.376 +-405.344 29.716 136.371 +-405.314 28.8739 132.507 +-401.631 27.7842 127.506 +-385.683 25.8908 118.817 +-380.036 24.7377 113.525 +-381.706 24.073 110.475 +-380.371 23.222 106.569 +-381.309 22.5143 103.321 +-379.512 21.6507 99.3584 +-381.353 20.9981 96.3634 +-380.938 20.2218 92.8008 +-380.877 19.4685 89.3439 +-380.784 18.717 85.8953 +-379.779 17.9259 82.2646 +-380.793 17.2329 79.0842 +-378.839 16.4101 75.3084 +-380.381 15.7422 72.2432 +-381.208 15.0426 69.0328 +-380.431 14.282 65.5423 +-380.114 13.543 62.1509 +-380.062 12.8163 58.8158 +-380.079 12.0939 55.5008 +-379.372 11.3517 52.0947 +-379.525 10.6381 48.8198 +-379.947 9.93256 45.582 +-378.551 9.18286 42.1415 +-379.211 8.48586 38.9429 +-378.649 7.76261 35.6238 +-379.65 7.0718 32.4535 +-378.33 6.33942 29.0925 +-378.576 5.63626 25.8656 +-378.293 4.92617 22.6069 +-379.679 4.23649 19.4419 +-378.939 3.52254 16.1655 +-378.869 2.81688 12.9271 +-146.65 0.817606 3.75211 +-146.378 0.54399 2.49645 +-144.894 0.269217 1.23548 +95.1 0 0 +95.8963 0.185548 0.816046 +95.8854 0.371083 1.63203 +96.9668 0.562971 2.47596 +96.841 0.749788 3.29759 +95.9086 0.928424 4.08324 +96.8671 1.12556 4.95024 +96.8191 1.31293 5.77433 +95.8659 1.48629 6.53676 +96.701 1.68737 7.42111 +96.6309 1.87441 8.2437 +96.653 2.06342 9.07499 +96.5681 2.25034 9.89709 +96.4758 2.43709 10.7184 +96.5747 2.62908 11.5628 +96.2693 2.81004 12.3587 +96.056 2.99311 13.1638 +95.9345 3.17884 13.9807 +95.707 3.36087 14.7812 +95.5711 3.54591 15.5951 +96.2157 3.76149 16.5432 +96.064 3.94751 17.3613 +95.905 4.13322 18.178 +95.7386 4.31861 18.9934 +95.3694 4.49448 19.7669 +95.3841 4.68844 20.6199 +96.1703 4.92268 21.6501 +95.8757 5.10338 22.4448 +96.5444 5.33695 23.4721 +96.3307 5.52355 24.2928 +96.2062 5.71547 25.1368 +95.9776 5.90137 25.9544 +96.5107 6.13575 26.9852 +96.3614 6.32853 27.8331 +96.013 6.50825 28.6235 +95.5624 6.68044 29.3808 +96.1518 6.92674 30.464 +95.8755 7.11252 31.2811 +96.3483 7.35549 32.3497 +96.1494 7.54903 33.2009 +95.7547 7.7272 33.9845 +96.1962 7.97428 35.0712 +96.8123 8.23956 36.2379 +96.5773 8.43467 37.096 +96.2417 8.62122 37.9164 +96.7302 8.88347 39.0698 +96.4689 9.07893 39.9294 +96.9332 9.34481 41.0988 +95.8309 9.45986 41.6048 +96.2739 9.72765 42.7825 +95.8874 9.91356 43.6002 +96.4864 10.2037 44.8762 +96.6204 10.4483 45.952 +96.2054 10.6349 46.7725 +95.7832 10.8206 47.5893 +96.152 11.0976 48.8077 +96.5062 11.3769 50.0361 +95.9668 11.5526 50.8089 +96.2956 11.8346 52.049 +95.7391 12.0096 52.8185 +96.1288 12.3052 54.1187 +96.244 12.5695 55.281 +95.6599 12.7438 56.0477 +95.922 13.0327 57.3181 +95.9142 13.2883 58.4422 +95.3876 13.4733 59.2562 +95.6084 13.766 60.5435 +95.8135 14.0607 61.8392 +95.9196 14.3447 63.0883 +95.269 14.5172 63.847 +95.4312 14.8154 65.1586 +95.6586 15.1282 66.5344 +95.5449 15.3909 67.6897 +95.659 15.6939 69.0222 +95.0376 15.8784 69.8336 +95.0437 16.1696 71.1145 +95.0341 16.4621 72.4009 +95.0869 16.7695 73.753 +95.7444 17.1901 75.6026 +95.0641 17.3747 76.4144 +95.0661 17.6862 77.7845 +95.0507 17.9991 79.1605 +95.0179 18.3132 80.5421 +95.5667 18.7461 82.446 +95.4941 19.0638 83.8433 +95.4037 19.3827 85.2456 +95.2954 19.7026 86.6527 +95.024 19.993 87.9301 +94.8809 20.3148 89.345 +94.8623 20.6685 90.9008 +94.6816 20.9924 92.3251 +95.1835 21.4752 94.4487 +94.8209 21.7702 95.7461 +94.7176 22.1297 97.3273 +94.3204 22.4256 98.6286 +94.6502 22.9016 100.722 +94.3474 23.232 102.175 +93.9595 23.5466 103.559 +94.2757 24.0455 105.753 +94.2999 24.4798 107.663 +93.847 24.7971 109.058 +94.5212 25.4225 111.809 +94.0834 25.7595 113.291 +94.1865 26.2531 115.462 +93.6421 26.5739 116.873 +93.6884 27.0708 119.058 +93.7026 27.5699 121.253 +93.6251 28.053 123.378 +93.5166 28.5381 125.511 +92.6221 28.79 126.619 +104.276 33.0183 145.216 +115.604 37.2934 164.018 +115.138 37.8466 166.451 +114.582 38.3822 168.806 +114.919 39.2345 172.555 +115.197 40.0912 176.323 +115.098 40.8391 179.612 +115.263 41.7029 183.411 +115.008 42.4374 186.641 +115.363 43.4225 190.974 +114.95 44.1433 194.144 +114.882 45.0202 198 +114.948 45.9775 202.211 +114.709 46.8413 206.01 +112.298 46.8265 205.945 +110.035 46.8651 206.114 +107.505 46.7797 205.739 +105.303 46.8274 205.948 +103.061 46.8498 206.047 +100.395 46.6673 205.244 +98.2165 46.699 205.384 +96.0015 46.7057 205.413 +93.7121 46.6669 205.242 +91.792 46.8056 205.853 +91.4311 47.757 210.037 +91.0404 48.731 214.321 +90.8421 49.8509 219.246 +90.8557 51.1389 224.91 +90.6671 52.3683 230.317 +90.6337 53.7462 236.378 +90.4301 55.0863 242.271 +89.8608 56.2622 247.443 +89.8568 57.8595 254.468 +89.4799 59.2927 260.771 +89.0896 60.7921 267.366 +89.0691 62.6326 275.46 +88.881 64.4564 283.481 +88.6696 66.3691 291.894 +88.3969 68.3497 300.604 +88.2154 70.5263 310.177 +87.9467 72.7718 320.053 +87.7332 75.2145 330.796 +87.1887 77.5327 340.992 +87.0284 80.3718 353.478 +86.5387 83.1078 365.511 +82.9829 82.9907 364.996 +82.1251 85.6637 376.752 +81.2823 88.5786 389.572 +80.9793 92.3673 406.234 +80.3476 96.1173 422.727 +81.7536 102.798 452.107 +83.8607 111.109 488.66 +83.3952 116.741 513.432 +86.6902 128.608 565.621 +88.0827 138.958 611.142 +82.4664 138.881 610.805 +80.4338 145.241 638.776 +78.28 152.331 669.955 +76.4835 161.34 709.581 +74.5872 171.744 755.338 +69.4544 176.013 774.11 +60.798 171.277 753.284 +55.2471 175.171 770.407 +47.1722 171 752.063 +41.3768 175.048 769.867 +33.6654 170.957 751.874 +27.5427 174.871 769.089 +20.1824 170.884 751.553 +13.749 174.641 768.076 +6.70111 170.249 748.76 +4.81638e-14 174.401 767.023 +-6.69849 170.182 748.467 +-13.7228 174.308 766.613 +-20.0515 169.776 746.68 +-27.4205 174.096 765.678 +-33.4517 169.872 747.101 +-41.1465 174.074 765.582 +-46.7754 169.561 745.737 +-54.8077 173.777 764.279 +-60.1938 169.576 745.799 +-68.5829 173.804 764.396 +-73.5808 169.427 745.147 +-82.3266 173.666 763.79 +-87.0533 169.403 745.041 +-96.0818 173.497 763.047 +-100.388 169.062 743.542 +-109.849 173.297 762.166 +-113.695 168.67 741.817 +-123.724 173.196 761.721 +-127.466 168.882 742.75 +-137.616 173.04 761.035 +-140.923 168.581 741.427 +-150.129 171.24 753.121 +-152.516 166.207 730.984 +-152.462 159.031 699.424 +-119.648 119.659 526.264 +-123.588 118.688 521.996 +-128.418 118.596 521.588 +-133.517 118.73 522.178 +-820.42 703.354 3093.38 +-848.072 701.74 3086.28 +-875.66 700.073 3078.94 +-903.181 698.352 3071.38 +-930.633 696.576 3063.57 +-958.014 694.749 3055.53 +-169.087 118.9 522.928 +-147.556 100.687 442.826 +-151.45 100.356 441.37 +-1066.66 686.83 3020.7 +-1093.78 684.823 3011.88 +-1120.7 682.681 3002.46 +-483.601 286.778 1261.26 +-455.844 263.289 1157.95 +-450.65 253.651 1115.57 +-447.243 245.43 1079.41 +-445.214 238.308 1048.09 +-445.433 232.664 1023.26 +-445.642 227.238 999.401 +-446.353 222.274 977.569 +-447.578 217.751 957.677 +-449.159 213.561 939.251 +-450.659 209.482 921.311 +-1436.24 652.889 2871.43 +-450.526 200.345 881.125 +-144.823 63.0184 277.157 +-145.22 61.8508 272.022 +-147.038 61.3129 269.656 +-151.068 61.6885 271.308 +-457.127 182.844 804.154 +-112.273 43.9974 193.502 +-111.25 42.7225 187.895 +-112.471 42.3337 186.185 +-113.102 41.7344 183.549 +-114.688 41.4951 182.497 +-116.211 41.2339 181.348 +-118.26 41.157 181.01 +-119.93 40.9453 180.079 +-121.757 40.7856 179.377 +-124.812 41.0264 180.436 +-129.424 41.7519 183.626 +-495.226 156.809 689.653 +-498.824 155.051 681.92 +-502.262 153.273 674.099 +-505.837 151.565 666.586 +-508.594 149.642 658.129 +-511.847 147.895 650.449 +-515.001 146.148 642.765 +-514.571 143.429 630.803 +-532.468 145.787 641.178 +-526.037 141.484 622.252 +-529.078 139.798 614.838 +-165.739 43.0252 189.226 +-163.687 41.749 183.613 +-165.257 41.4142 182.141 +-166.279 40.9444 180.075 +-548.241 132.652 583.41 +-551.327 131.084 576.511 +-555.364 129.755 570.666 +-558.505 128.229 563.955 +-562.62 126.938 558.277 +-565.827 125.452 551.744 +-569.245 124.027 545.473 +-573.026 122.689 539.593 +-573.481 120.66 530.668 +-591.738 122.344 538.071 +-585.693 118.992 523.332 +-588.645 117.513 516.827 +-593.248 116.37 511.798 +-596.221 114.912 505.388 +-601.633 113.927 501.054 +-605.405 112.63 495.352 +-609.583 111.412 489.995 +-613.246 110.103 484.237 +-389.582 68.7069 302.175 +-390.144 67.5819 297.228 +-142.645 24.2678 106.731 +-142.556 23.8175 104.75 +-143.569 23.5539 103.591 +-142.306 22.9234 100.818 +-141.9 22.4414 98.6979 +-141.959 22.0387 96.9269 +-146.694 22.3533 98.3107 +-148.729 22.2423 97.8222 +-661.105 97.0173 426.685 +-382.937 55.1366 242.493 +-380.96 53.8099 236.658 +-384.335 53.2469 234.182 +-383.603 52.1191 229.221 +-684.962 91.2507 401.324 +-691.63 90.327 397.261 +-382.177 48.9215 215.158 +-382.608 47.9945 211.081 +-382.996 47.0697 207.014 +-385.449 46.401 204.073 +-715.806 84.3851 371.128 +-734.622 84.7884 372.902 +-721.804 81.542 358.625 +-404.242 44.6863 196.532 +-738.809 79.8931 351.373 +-405.171 42.8478 188.446 +-751.51 77.6968 341.713 +-405.934 41.0162 180.391 +-404.518 39.9316 175.62 +-405.157 39.0589 171.782 +-406.403 38.2477 168.215 +-405.398 37.2307 163.742 +-407.59 36.5114 160.578 +-408.639 35.6888 156.961 +-406.388 34.5871 152.115 +-406.797 33.7218 148.31 +-406.699 32.8196 144.342 +-407.504 31.9946 140.713 +-406.951 31.0679 136.637 +-405.788 30.1034 132.396 +-396.876 28.5909 125.744 +-385.016 26.9151 118.374 +-380.131 25.7673 113.326 +-381.131 25.0308 110.086 +-381.333 24.2435 106.624 +-381.019 23.4278 103.036 +-381.348 22.6553 99.6388 +-381.741 21.8888 96.2677 +-381.229 21.0743 92.6854 +-380.294 20.2427 89.0282 +-380.199 19.4613 85.5913 +-379.584 18.6577 82.0573 +-382.26 18.0148 79.2297 +-379.427 17.1154 75.274 +-380.086 16.3806 72.0424 +-381.503 15.6769 68.9476 +-379.446 14.8342 65.2414 +-380.41 14.1142 62.0745 +-379.766 13.336 58.6521 +-378.595 12.545 55.1732 +-379.966 11.8398 52.0716 +-380.219 11.0984 48.811 +-378.855 10.3136 45.3597 +-378.849 9.57021 42.0901 +-378.316 8.81598 38.773 +-379.047 8.09219 35.5897 +-379.849 7.36815 32.4054 +-379.626 6.62423 29.1336 +-378.077 5.86164 25.7797 +-378.293 5.12992 22.5615 +-379.979 4.41519 19.4182 +-378.24 3.66147 16.1033 +-379.369 2.93724 12.9181 +-148.349 0.861289 3.78798 +-145.378 0.56262 2.47442 +-145.494 0.281514 1.23811 +96 0 0 +96.8963 0.194914 0.82283 +95.8854 0.385791 1.62862 +95.9671 0.579252 2.44532 +95.9415 0.772266 3.26013 +96.0085 0.966228 4.07894 +95.8684 1.15811 4.88895 +96.8191 1.36497 5.76225 +96.7637 1.55967 6.58417 +96.8007 1.75606 7.41323 +96.6309 1.9487 8.22645 +96.653 2.14521 9.05601 +96.5681 2.33954 9.87638 +96.6745 2.53892 10.7181 +96.5747 2.73328 11.5386 +96.2693 2.92142 12.3328 +96.155 3.11495 13.1498 +95.9345 3.30484 13.9514 +96.5959 3.52654 14.8873 +95.5711 3.68646 15.5624 +96.2157 3.91058 16.5085 +95.8674 4.09558 17.2895 +95.905 4.29704 18.14 +95.5427 4.48061 18.915 +95.565 4.68221 19.766 +95.3841 4.87427 20.5768 +96.0729 5.11261 21.5829 +95.6812 5.29489 22.3524 +95.6712 5.49831 23.2112 +95.4594 5.69055 24.0227 +96.1096 5.93603 25.059 +95.8812 6.12913 25.8742 +96.3184 6.36625 26.8752 +96.2655 6.57282 27.7472 +96.013 6.76621 28.5636 +95.7532 6.9591 29.3779 +96.1518 7.20129 30.4003 +95.8755 7.39443 31.2156 +96.4429 7.65455 32.3138 +96.1494 7.84824 33.1314 +95.7547 8.03348 33.9134 +96.2899 8.29842 35.0318 +95.8787 8.48353 35.8133 +96.5773 8.76899 37.0184 +96.2417 8.96293 37.8371 +96.7302 9.23557 38.9881 +96.4689 9.43878 39.8459 +96.1996 9.64167 40.7024 +96.6531 9.91918 41.8739 +96.2739 10.1132 42.693 +95.8874 10.3065 43.5089 +96.2156 10.5784 44.6567 +95.9013 10.7816 45.5146 +96.2054 11.0564 46.6746 +95.7832 11.2495 47.4898 +96.152 11.5375 48.7056 +96.4179 11.817 49.8858 +95.9668 12.0105 50.7026 +96.2956 12.3037 51.9401 +95.7391 12.4856 52.708 +96.0422 12.7814 53.9568 +95.4685 12.9624 54.721 +95.6599 13.2489 55.9304 +95.7515 13.5251 57.0965 +95.4054 13.7417 58.0105 +95.3876 14.0074 59.1322 +95.6084 14.3117 60.4168 +95.7301 14.6052 61.6561 +95.2564 14.8101 62.5211 +95.269 15.0926 63.7134 +95.5131 15.4158 65.0781 +95.4958 15.7011 66.2822 +95.5449 16.0009 67.5481 +95.659 16.3159 68.8778 +95.0376 16.5077 69.6875 +95.0437 16.8105 70.9657 +95.8221 17.2565 72.8484 +95.0869 17.4342 73.5988 +94.9672 17.7264 74.8321 +95.6043 18.166 76.6879 +95.0661 18.3872 77.6218 +95.7351 18.8472 79.5637 +95.6972 19.1752 80.9482 +95.5667 19.4891 82.2735 +95.4941 19.8194 83.6679 +95.2562 20.1198 84.9358 +95.2954 20.4835 86.4714 +95.1691 20.8172 87.8801 +95.0248 21.152 89.2933 +94.8623 21.4877 90.7106 +94.5402 21.7918 91.9944 +95.0433 22.2935 94.1124 +94.8209 22.6331 95.5458 +94.7176 23.0069 97.1237 +94.3204 23.3145 98.4223 +94.7177 23.8262 100.583 +94.3474 24.1528 101.961 +94.4896 24.618 103.925 +94.3413 25.0158 105.605 +94.2349 25.4326 107.364 +93.847 25.7799 108.83 +94.0124 26.288 110.975 +94.1463 26.7985 113.13 +93.6262 27.1312 114.534 +93.7037 27.6454 116.705 +93.6275 28.1255 118.732 +93.6424 28.6442 120.922 +93.1492 29.0167 122.494 +93.6342 29.7063 125.406 +92.0414 29.7434 125.562 +97.2786 32.0234 135.187 +115.094 38.6005 162.953 +115.138 39.3467 166.102 +115.465 40.2111 169.751 +115.355 40.9443 172.847 +115.09 41.6413 175.789 +115.045 42.4382 179.153 +114.793 43.179 182.281 +114.956 44.0999 186.168 +114.754 44.9053 189.568 +114.8 45.833 193.485 +115.129 46.9049 198.009 +114.948 47.7999 201.788 +114.661 48.6777 205.493 +112.767 48.886 206.373 +110.496 48.9271 206.546 +107.914 48.8187 206.089 +105.66 48.8482 206.213 +103.456 48.8932 206.403 +101.213 48.9123 206.484 +98.5546 48.7171 205.66 +96.3747 48.7457 205.78 +94.1189 48.727 205.701 +92.2705 48.9146 206.494 +91.4702 49.6711 209.687 +91.1935 50.7476 214.231 +90.9919 51.9123 219.148 +90.6724 53.0584 223.986 +89.9862 54.035 228.109 +89.8632 55.4014 233.878 +90.0881 57.053 240.85 +90.0611 58.6227 247.476 +89.8894 60.1747 254.028 +89.353 61.5554 259.857 +88.9969 63.1358 266.528 +89.039 65.0932 274.792 +88.7933 66.9451 282.609 +88.4992 68.867 290.723 +88.3418 71.0144 299.788 +88.1619 73.2774 309.341 +87.9726 75.6784 319.477 +87.5078 77.9949 329.256 +87.2128 80.6282 340.373 +85.3476 81.9434 345.925 +83.9517 83.819 353.843 +81.9007 85.1548 359.482 +81.834 88.7435 374.632 +81.382 92.2024 389.233 +81.1701 96.2545 406.339 +80.4752 100.086 422.513 +81.2326 106.191 448.287 +83.8442 115.49 487.541 +83.4265 121.414 512.55 +83.9853 129.533 546.826 +86.6074 142.046 599.65 +81.7094 143.06 603.931 +80.3241 150.792 636.571 +77.4876 156.765 661.786 +78.3754 171.885 725.613 +71.5009 171.164 722.57 +66.6393 175.572 741.179 +58.1068 170.184 718.435 +52.6034 173.399 732.006 +45.121 170.047 717.855 +39.4299 173.423 732.107 +32.1649 169.811 716.86 +26.2409 173.21 731.207 +19.2689 169.615 716.033 +13.2394 174.833 738.059 +6.44891 170.335 719.073 +4.59105e-14 172.831 729.609 +-6.41575 169.46 715.375 +-13.0596 172.459 728.039 +-19.206 169.062 713.698 +-26.1258 172.45 727.998 +-32.0297 169.097 713.846 +-39.1787 172.318 727.443 +-44.8096 168.874 712.902 +-52.1778 171.996 726.085 +-57.6125 168.737 712.323 +-65.3232 172.105 726.542 +-70.4179 168.571 711.625 +-78.3336 171.793 725.225 +-83.227 168.377 710.803 +-91.402 171.589 724.364 +-96.0803 168.222 710.151 +-104.63 171.606 724.436 +-109.009 168.129 709.757 +-117.78 171.409 723.606 +-122.086 168.165 709.909 +-130.931 171.159 722.549 +-135.055 167.965 709.068 +-145.912 173.027 730.436 +-150.064 170.017 717.727 +-152.524 165.402 698.246 +-120.102 124.874 527.159 +-123.791 123.595 521.757 +-128.838 123.7 522.2 +-134.001 123.883 522.974 +-820.42 731.232 3086.9 +-848.072 729.554 3079.82 +-875.66 727.821 3072.5 +-903.181 726.032 3064.95 +-930.633 724.186 3057.16 +-958.014 722.286 3049.14 +-169.508 123.921 523.133 +-147.339 104.525 441.253 +-151.989 104.705 442.015 +-1066.66 714.053 3014.38 +-1093.78 711.967 3005.57 +-1120.7 709.74 2996.17 +-476.247 293.61 1239.48 +-455.056 273.252 1153.54 +-450.137 263.405 1111.97 +-446.943 254.987 1076.43 +-445.214 247.754 1045.9 +-445.59 241.968 1021.47 +-445.642 236.245 997.311 +-446.8 231.317 976.507 +-448.159 226.676 956.914 +-449.539 222.214 938.08 +-451.348 218.118 920.788 +-453.626 214.385 905.027 +-456.237 210.927 890.429 +-145.504 65.8243 277.878 +-145.312 64.3431 271.625 +-146.945 63.7026 268.921 +-151.212 64.1945 270.998 +-453.976 188.781 796.94 +-111.288 45.34 191.403 +-111.5 44.5157 187.923 +-112.42 43.9918 185.712 +-113.669 43.6059 184.083 +-114.845 43.1986 182.363 +-116.635 43.0246 181.629 +-118.367 42.8273 180.796 +-120.311 42.7035 180.273 +-122.751 42.7482 180.462 +-125.595 42.9202 181.188 +-492.66 165.23 697.522 +-496.086 163.308 689.407 +-499.927 161.553 681.999 +-502.792 159.516 673.398 +-506.373 157.739 665.895 +-509.136 155.739 657.452 +-512.394 153.922 649.784 +-515.555 152.104 642.11 +-516.127 149.564 631.387 +-533.538 151.87 641.122 +-526.673 147.27 621.7 +-529.914 145.569 614.521 +-163.661 44.1695 186.462 +-162.768 43.1601 182.201 +-166.185 43.2973 182.78 +-166.279 42.5673 179.698 +-549.322 138.182 583.337 +-552.555 136.583 576.587 +-556.672 135.215 570.814 +-559.617 133.577 563.895 +-562.97 132.051 557.456 +-566.534 130.588 551.278 +-569.673 129.039 544.741 +-573.889 127.744 539.274 +-579.211 126.696 534.85 +-586.692 126.108 532.366 +-586.135 123.802 522.631 +-589.314 122.31 516.332 +-593.697 121.074 511.115 +-597.805 119.784 505.67 +-602.089 118.532 500.386 +-605.865 117.183 494.691 +-610.278 115.96 489.527 +-613.945 114.598 483.775 +-619.2 113.531 479.271 +-622.844 112.167 473.515 +-142.566 25.2157 106.448 +-143.036 24.8448 104.883 +-143.569 24.4875 103.374 +-142.63 23.8864 100.836 +-142.307 23.3977 98.7736 +-141.959 22.9122 96.7241 +-147.024 23.2917 98.326 +-148.895 23.1497 97.7266 +-386.339 58.9424 248.826 +-381.847 57.1588 241.296 +-381.55 56.0293 236.528 +-381.028 54.8812 231.682 +-379.936 53.6669 226.555 +-686.591 95.093 401.436 +-387.044 52.5515 221.847 +-382.523 50.9066 214.903 +-382.695 49.9083 210.688 +-380.634 48.6336 205.307 +-382.022 47.8112 201.835 +-717.307 87.9137 371.129 +-738.791 88.6492 374.234 +-723.675 84.9937 358.802 +-732.951 84.2342 355.595 +-410.749 46.1781 194.941 +-410.767 45.1616 190.65 +-753.051 80.9421 341.698 +-407.936 42.8522 180.901 +-404.153 41.4767 175.094 +-405.982 40.6898 171.772 +-404.194 39.5474 166.95 +-406.507 38.8124 163.847 +-405.087 37.7255 159.259 +-406.965 36.9515 155.991 +-405.734 35.9002 151.553 +-404.736 34.8809 147.25 +-406.511 34.1048 143.974 +-406.184 33.1549 139.964 +-407.14 32.3142 136.415 +-405.883 31.3037 132.149 +-396.02 29.66 125.21 +-384.157 27.9195 117.862 +-381.279 26.8695 113.43 +-380.651 25.9902 109.718 +-380.371 25.141 106.133 +-381.887 24.4119 103.055 +-380.478 23.4996 99.2037 +-381.741 22.7564 96.0663 +-380.356 21.8594 92.2797 +-380.294 21.0451 88.8419 +-379.809 20.2119 85.3247 +-380.951 19.4671 82.1805 +-380.304 18.633 78.6593 +-380.603 17.8489 75.3493 +-380.086 17.0299 71.8917 +-380.126 16.2395 68.5551 +-380.234 15.4542 65.2402 +-381.298 14.7078 62.0892 +-380.951 13.9078 58.712 +-380.079 13.0933 55.2736 +-381.055 12.3443 52.1117 +-381.211 11.5683 48.8358 +-379.351 10.7365 45.3242 +-378.849 9.94953 42.0021 +-377.819 9.15338 38.6411 +-379.545 8.42397 35.5619 +-378.355 7.63007 32.2104 +-378.729 6.87052 29.004 +-378.077 6.09397 25.7258 +-379.391 5.34871 22.5796 +-378.98 4.57814 19.3267 +-379.139 3.81566 16.1078 +-380.268 3.06092 12.9217 +-378.47 2.28442 9.64371 +-144.078 0.57969 2.44717 +-145.094 0.291868 1.23212 +96 0 0 +95.9963 0.20045 0.813413 +95.9854 0.400884 1.62676 +96.9668 0.607551 2.4654 +95.9415 0.801646 3.25303 +95.9086 1.00194 4.06582 +95.8684 1.20216 4.87831 +95.8209 1.40229 5.69042 +96.7637 1.61901 6.56983 +96.701 1.82099 7.38946 +96.6309 2.02284 8.20854 +96.653 2.22682 9.03629 +96.5681 2.42854 9.85488 +96.4758 2.63008 10.6727 +96.3762 2.83143 11.4898 +96.2693 3.03256 12.3059 +96.056 3.23013 13.1077 +95.9345 3.43057 13.921 +95.8058 3.63074 14.7333 +96.4587 3.86226 15.6728 +95.3294 4.02195 16.3208 +96.064 4.2601 17.2872 +95.0215 4.41943 17.9338 +95.5427 4.65107 18.8738 +96.2497 4.89515 19.8642 +95.3841 5.0597 20.532 +96.0729 5.30711 21.5359 +95.8757 5.5075 22.3491 +95.7682 5.71327 23.1841 +96.3307 5.96095 24.1891 +96.1096 6.16186 25.0045 +95.8812 6.3623 25.8178 +96.5107 6.62162 26.8701 +96.2655 6.82288 27.6868 +96.013 7.02363 28.5014 +95.5624 7.20944 29.2555 +96.342 7.49004 30.3941 +95.8755 7.67574 31.1477 +96.3483 7.93796 32.2117 +96.0552 8.13883 33.0269 +96.5064 8.40456 34.1052 +96.2899 8.61412 34.9556 +95.8787 8.80628 35.7353 +96.4843 9.09383 36.9022 +97.0761 9.38457 38.082 +95.8987 9.5045 38.5687 +96.4689 9.79787 39.7591 +96.1996 10.0085 40.6138 +96.6531 10.2965 41.7827 +96.4559 10.5178 42.6806 +96.0686 10.7188 43.4962 +96.3058 10.9911 44.6012 +96.6204 11.2757 45.756 +96.2054 11.477 46.573 +96.5851 11.7752 47.7831 +96.0633 11.9654 48.5548 +96.4179 12.2666 49.7771 +96.0547 12.4789 50.6386 +96.2082 12.7602 51.78 +95.7391 12.9606 52.5932 +95.2628 13.16 53.4024 +96.244 13.5648 55.0452 +95.6599 13.7529 55.8086 +96.0073 14.0772 57.1243 +95.2358 14.2391 57.7813 +95.3876 14.5402 59.0034 +95.5246 14.8431 60.2325 +95.8135 15.1741 61.5755 +95.9196 15.4806 62.8193 +95.3514 15.6803 63.6296 +96.0865 16.0984 65.3262 +95.5772 16.3123 66.1942 +95.6258 16.6237 67.4581 +95.659 16.9366 68.7278 +95.7564 17.2653 70.0616 +95.7577 17.5811 71.3432 +95.8221 17.913 72.6898 +95.6347 18.2018 73.8616 +95.589 18.5212 75.1579 +95.0641 18.7505 76.0885 +95.0661 19.0867 77.4528 +95.0507 19.4244 78.8229 +95.0179 19.7634 80.1985 +95.5667 20.2306 82.0943 +95.4941 20.5734 83.4857 +95.2562 20.8852 84.7508 +95.1491 21.2302 86.1507 +95.1691 21.6092 87.6888 +95.0248 21.9567 89.0989 +94.8623 22.3052 90.5131 +94.6816 22.6547 91.9313 +95.1835 23.1758 94.0459 +94.9598 23.5286 95.4774 +94.7176 23.8821 96.9122 +94.3204 24.2014 98.208 +94.7177 24.7326 100.363 +94.2805 25.054 101.667 +94.6221 25.5904 103.844 +94.2757 25.9496 105.302 +94.2999 26.4183 107.204 +93.7184 26.7241 108.445 +94.0124 27.2881 110.733 +94.0205 27.781 112.733 +93.6885 28.1822 114.362 +93.7037 28.6971 116.451 +93.6884 29.2144 118.55 +93.6424 29.7339 120.658 +93.6251 30.2744 122.852 +93.7517 30.8752 125.29 +92.2156 30.9336 125.527 +96.0167 32.8105 133.143 +115.037 40.0494 162.518 +115.138 40.8436 165.741 +115.024 41.5812 168.734 +114.864 42.3215 171.738 +115.09 43.2255 175.406 +114.992 44.0323 178.681 +115.159 44.9645 182.463 +114.905 45.757 185.679 +115.211 46.7993 189.909 +114.8 47.5767 193.063 +115.227 48.7309 197.747 +114.561 49.4511 200.67 +114.566 50.4874 204.875 +113.237 50.9571 206.781 +110.866 50.9581 206.785 +108.186 50.804 206.159 +105.66 50.7066 205.764 +103.412 50.732 205.867 +101.558 50.9459 206.735 +98.9349 50.7657 206.004 +96.7065 50.7743 206.039 +94.4849 50.7777 206.053 +92.2705 50.7755 206.044 +91.1185 51.3627 208.427 +91.0404 52.5899 213.407 +90.9919 53.8873 218.671 +90.5258 54.9879 223.138 +88.3377 55.0633 223.443 +90.3185 57.8006 234.551 +90.0881 59.2235 240.325 +89.9276 60.7627 246.571 +89.8568 62.4412 253.383 +89.3213 63.8745 259.199 +89.0896 65.6061 266.225 +88.7082 67.3186 273.175 +88.764 69.4689 281.901 +88.414 71.4183 289.811 +88.2866 73.6701 298.949 +88.1619 76.0652 308.668 +87.8432 78.4419 318.312 +87.5078 80.9621 328.539 +87.3822 83.858 340.291 +83.5501 83.2694 337.902 +82.2196 85.2126 345.787 +81.8575 88.3477 358.51 +81.9172 92.2132 374.195 +81.6013 95.9681 389.433 +81.0557 99.7754 404.882 +80.457 103.87 421.497 +81.7015 110.867 449.893 +83.8607 119.907 486.575 +83.3952 125.986 511.242 +83.5123 133.704 542.562 +83.7126 142.522 578.344 +81.2526 147.673 599.247 +79.5929 155.104 629.402 +78.4951 164.845 668.931 +76.8807 175.021 710.224 +70.1495 174.317 707.368 +64.2251 175.649 712.772 +57.0162 173.343 703.416 +51.0478 174.673 708.812 +44.2907 173.268 703.112 +38.1791 174.31 707.339 +31.5412 172.853 701.428 +25.4138 174.132 706.616 +18.9102 172.791 701.175 +12.742 174.666 708.785 +6.30579 172.892 701.583 +4.4441e-14 173.664 704.717 +-6.28747 172.389 699.545 +-12.6617 173.566 704.319 +-18.8474 172.217 698.846 +-25.337 173.606 704.482 +-31.4147 172.16 698.615 +-38.0168 173.569 704.333 +-43.9549 171.955 697.782 +-50.6013 173.145 702.613 +-56.5769 172.007 697.995 +-63.2489 172.979 701.938 +-69.1431 171.816 697.221 +-75.8877 172.76 701.05 +-81.7554 171.692 696.715 +-88.6356 172.726 700.91 +-94.3965 171.561 696.186 +-101.415 172.661 700.647 +-107.029 171.354 695.344 +-114.135 172.424 699.685 +-119.726 171.188 694.67 +-126.867 172.157 698.601 +-132.54 171.109 694.349 +-140.226 172.611 700.443 +-147.134 173.038 702.177 +-151.131 170.126 690.362 +-120.189 129.718 526.389 +-124.195 128.717 522.324 +-129.072 128.638 522.006 +-134.581 129.153 524.097 +-820.42 759.051 3080.18 +-847.969 757.216 3072.73 +-875.553 755.416 3065.43 +-903.071 753.56 3057.9 +-930.633 751.736 3050.5 +-957.897 749.674 3042.13 +-169.508 128.635 521.994 +-147.834 108.865 441.769 +-152.401 108.984 442.249 +-1066.79 741.309 3008.19 +-1093.78 739.053 2999.03 +-1120.7 736.741 2989.65 +-473.55 303.055 1229.78 +-454.482 283.291 1149.58 +-449.55 273.07 1108.1 +-447.018 264.733 1074.27 +-445.558 257.378 1044.42 +-445.551 251.152 1019.16 +-445.482 245.144 994.78 +-447.044 240.249 974.914 +-448.366 235.408 955.272 +-449.624 230.711 936.213 +-451.735 226.611 919.573 +-454.021 222.734 903.841 +-456.237 218.951 888.489 +-145.776 68.4563 277.791 +-145.497 66.8759 271.378 +-147.649 66.4428 269.621 +-151.832 66.9101 271.517 +-455.479 196.611 797.837 +-111.534 47.1692 191.41 +-111.5 46.2092 187.514 +-112.318 45.6242 185.14 +-113.514 45.2033 183.432 +-115.211 44.9849 182.546 +-116.423 44.5803 180.904 +-118.475 44.497 180.566 +-120.202 44.2881 179.718 +-122.696 44.3546 179.988 +-126.378 44.8306 181.92 +-493.17 171.694 696.723 +-497.119 169.874 689.336 +-500.74 167.972 681.62 +-503.321 165.759 672.638 +-506.432 163.759 664.524 +-509.858 161.893 656.95 +-513.125 160.006 649.293 +-515.678 157.929 640.866 +-516.563 155.385 630.544 +-532.09 157.22 637.991 +-527.245 153.039 621.021 +-530.878 151.382 614.298 +-162.882 45.6316 185.17 +-163.556 45.0189 182.684 +-166.715 45.0878 182.963 +-166.011 44.1156 179.018 +-548.782 143.298 581.494 +-553.237 141.954 576.041 +-556.122 140.221 569.007 +-560.45 138.865 563.505 +-563.601 137.229 556.866 +-566.958 135.657 550.489 +-570.957 134.25 544.78 +-2357.06 544.629 2210.07 +-581.895 132.126 536.158 +-581.938 129.845 526.903 +-586.135 128.512 521.493 +-589.983 127.107 515.792 +-594.371 125.823 510.58 +-598.938 124.577 505.524 +-602.774 123.181 499.863 +-606.784 121.826 494.362 +-610.278 120.372 488.461 +-614.645 119.093 483.271 +-618.965 117.805 478.046 +-141.842 26.5159 107.6 +-142.724 26.2042 106.335 +-142.157 25.6316 104.011 +-143.73 25.4476 103.265 +-142.549 24.781 100.56 +-142.226 24.2739 98.5022 +-142.369 23.8525 96.7919 +-147.436 24.2455 98.3866 +-148.149 23.91 97.0251 +-385.172 61.0001 247.535 +-381.763 59.3204 240.719 +-381.719 58.1867 236.118 +-381.791 57.0832 231.64 +-383.603 56.2462 228.244 +-381.697 54.8762 222.684 +-382.65 53.9315 218.851 +-382.523 52.8433 214.435 +-381.042 51.5831 209.321 +-382.559 50.7391 205.896 +-382.198 49.6528 201.488 +-717.307 91.2583 370.32 +-738.437 91.9777 373.24 +-723.854 88.2489 358.109 +-734.204 87.5883 355.428 +-739.348 86.2826 350.129 +-406.885 46.4365 188.437 +-409.379 45.6764 185.352 +-406.662 44.3434 179.943 +-406.71 43.3272 175.819 +-404.057 42.0375 170.586 +-405.114 41.1455 166.966 +-405.676 40.2064 163.155 +-403.047 38.9634 158.111 +-403.615 38.0414 154.37 +-405.174 37.2145 151.014 +-406.141 36.3335 147.439 +-406.511 35.4023 143.66 +-405.807 34.3844 139.53 +-407.14 33.5436 136.118 +-404.65 32.396 131.461 +-390.123 30.3299 123.077 +-385.016 29.0465 117.869 +-380.896 27.8637 113.069 +-379.98 26.9313 109.286 +-380.371 26.0974 105.902 +-381.019 25.283 102.597 +-380.478 24.3936 98.9876 +-381.353 23.5982 95.7599 +-381.229 22.7431 92.2901 +-380.683 21.868 88.7391 +-380.199 21.0023 85.2262 +-380.658 20.1921 81.9385 +-380.793 19.3667 78.5889 +-380.603 18.5279 75.1852 +-380.381 17.6914 71.7908 +-379.635 16.8355 68.3173 +-380.727 16.0629 65.1824 +-381.89 15.291 62.0501 +-380.062 14.4032 58.4475 +-380.573 13.6091 55.225 +-379.768 12.7707 51.8225 +-378.93 11.9366 48.438 +-380.641 11.1828 45.3793 +-380.141 10.3632 42.0534 +-379.609 9.54661 38.7395 +-378.649 8.7238 35.4006 +-378.952 7.93284 32.191 +-379.925 7.15444 29.0323 +-377.378 6.31414 25.6224 +-378.293 5.53614 22.4653 +-379.879 4.76358 19.3303 +-378.639 3.95558 16.0515 +-377.47 3.15397 12.7986 +-378.97 2.37446 9.63542 +-145.078 0.605919 2.45878 +-144.494 0.301718 1.22435 +96 0 0 +95.8963 0.207562 0.810727 +95.9854 0.415541 1.62308 +96.9668 0.629763 2.45982 +96.9409 0.839611 3.27948 +95.9086 1.03858 4.05662 +95.8684 1.24612 4.86727 +95.8209 1.45356 5.67754 +96.7637 1.6782 6.55496 +96.701 1.88757 7.37274 +95.6347 2.07517 8.10552 +96.653 2.30823 9.01583 +96.767 2.52252 9.85282 +96.4758 2.72624 10.6486 +96.3762 2.93495 11.4638 +96.2693 3.14344 12.2781 +96.155 3.35167 13.0915 +96.0334 3.55966 13.9039 +95.8058 3.76349 14.7 +96.4587 4.00347 15.6373 +95.3294 4.169 16.2839 +96.064 4.41585 17.2481 +95.905 4.6236 18.0595 +95.5427 4.82112 18.831 +95.565 5.03804 19.6783 +95.3841 5.24469 20.4855 +96.0729 5.50114 21.4872 +95.9729 5.71466 22.3212 +95.6712 5.91615 23.1082 +95.4594 6.123 23.9161 +96.2062 6.39357 24.9729 +95.9776 6.60153 25.7852 +96.5107 6.86372 26.8093 +96.2655 7.07233 27.6241 +96.013 7.28042 28.4369 +96.4208 7.54017 29.4515 +96.1518 7.74855 30.2655 +95.8755 7.95637 31.0772 +96.4429 8.23626 32.1704 +96.0552 8.43639 32.9521 +96.5064 8.71184 34.028 +96.2899 8.92906 34.8764 +96.9056 9.22601 36.0363 +96.5773 9.43539 36.8541 +96.2417 9.64407 37.6693 +96.7302 9.93743 38.8151 +96.4689 10.1561 39.6692 +96.1996 10.3744 40.5219 +96.6531 10.673 41.6881 +96.2739 10.8818 42.5036 +96.703 11.1841 43.6844 +96.3058 11.3929 44.5002 +96.5305 11.6771 45.61 +96.2054 11.8966 46.4676 +96.496 12.1945 47.631 +96.0633 12.4029 48.4449 +96.4179 12.7151 49.6645 +95.9668 12.9233 50.4776 +96.2082 13.2267 51.6628 +95.7391 13.4344 52.4742 +96.0422 13.7527 53.7175 +96.3301 14.0734 54.9699 +95.6599 14.2558 55.6823 +96.0073 14.5919 56.995 +95.9142 14.8648 58.0613 +95.3876 15.0719 58.8699 +95.6084 15.3993 60.1488 +95.8135 15.7289 61.4361 +95.9196 16.0466 62.6771 +95.1866 16.2255 63.3758 +95.4312 16.5731 64.7338 +95.5772 16.9087 66.0444 +95.6258 17.2315 67.3054 +95.659 17.5559 68.5722 +95.7564 17.8966 69.903 +95.7577 18.2239 71.1817 +95.7433 18.5526 72.4657 +95.0869 18.7591 73.2723 +95.7444 19.2296 75.1098 +95.0641 19.4361 75.9163 +95.0661 19.7846 77.2775 +95.7351 20.2795 79.2107 +95.6972 20.6324 80.5891 +95.5667 20.9702 81.9085 +95.4941 21.3256 83.2967 +95.4037 21.6823 84.6899 +95.2954 22.0402 86.0878 +95.1691 22.3992 87.4903 +94.8809 22.725 88.7625 +94.8623 23.1207 90.3082 +94.6816 23.483 91.7233 +94.4125 23.8285 93.0729 +94.9598 24.3888 95.2613 +94.7176 24.7553 96.6929 +94.3204 25.0863 97.9857 +94.7177 25.6369 100.136 +94.3474 25.9883 101.509 +94.5559 26.5074 103.537 +94.2757 26.8983 105.063 +93.9102 27.2711 106.519 +93.7827 27.7202 108.274 +93.9488 28.2666 110.408 +94.0834 28.8158 112.553 +93.6262 29.193 114.026 +93.5805 29.7074 116.036 +93.6884 30.2825 118.282 +93.7628 30.8604 120.539 +93.5656 31.3614 122.496 +93.4579 31.9039 124.615 +92.2737 32.0847 125.321 +95.3858 33.7866 131.969 +115.037 41.5137 162.15 +115.585 42.5013 166.008 +115.52 43.2875 169.079 +115.355 44.0559 172.08 +115.09 44.8059 175.009 +115.363 45.7895 178.852 +114.688 46.4183 181.307 +114.956 47.4513 185.342 +115.211 48.5103 189.479 +114.75 49.2948 192.543 +115.375 50.5773 197.552 +114.318 51.1505 199.791 +114.518 52.3115 204.326 +113.237 52.8202 206.313 +110.912 52.8432 206.403 +108.186 52.6614 205.693 +106.061 52.7604 206.079 +103.456 52.6088 205.487 +101.558 52.8085 206.267 +98.9349 52.6217 205.538 +96.7065 52.6307 205.573 +94.4849 52.6341 205.586 +92.2705 52.6319 205.578 +90.8841 53.1034 207.419 +91.0021 54.4898 212.834 +90.9545 55.8344 218.086 +90.4892 56.9752 222.542 +88.3735 57.0995 223.028 +89.8632 59.6117 232.84 +90.3617 61.5753 240.51 +89.8608 62.9374 245.83 +89.8568 64.7241 252.809 +89.2578 66.1627 258.428 +89.1205 68.0283 265.715 +88.7684 69.8269 272.74 +88.7056 71.9614 281.077 +88.414 74.0294 289.155 +88.3418 76.4111 298.458 +87.8947 78.6071 307.035 +87.9208 81.3817 317.873 +87.658 84.066 328.358 +86.221 85.7687 335.008 +82.5463 85.2769 333.087 +82.1521 88.2556 344.722 +82.0306 91.7715 358.455 +81.834 95.4876 372.97 +81.6212 99.5011 388.646 +81.1129 103.496 404.252 +80.6392 107.911 421.496 +83.1948 117.021 457.079 +83.7287 124.095 484.71 +83.3952 130.592 510.085 +83.2019 138.077 539.322 +82.6271 145.817 569.552 +81.2526 153.072 597.89 +79.0932 159.765 624.035 +79.6611 173.41 677.331 +75.8563 179.003 699.175 +69.1431 178.098 695.642 +63.1966 179.155 699.771 +56.3729 177.653 693.905 +50.2805 178.338 696.577 +43.7291 177.326 692.625 +37.6819 178.33 696.547 +31.1704 177.067 691.613 +25.0718 178.069 695.529 +18.6851 176.976 691.26 +12.5343 178.101 695.654 +6.22551 176.931 691.084 +4.38532e-14 177.632 693.822 +-6.21329 176.584 689.727 +-12.5081 177.729 694.201 +-18.638 176.53 689.517 +-25.009 177.623 693.786 +-31.0396 176.323 688.71 +-37.4778 177.364 692.775 +-43.491 176.36 688.853 +-49.9735 177.249 692.325 +-55.8707 176.071 687.724 +-62.4384 177.006 691.375 +-68.2901 175.901 687.06 +-74.9678 176.906 690.985 +-80.8045 175.899 687.053 +-87.5022 176.751 690.381 +-93.2218 175.621 685.966 +-100.135 176.714 690.236 +-105.654 175.338 684.86 +-112.742 176.548 689.586 +-118.405 175.49 685.453 +-125.357 176.326 688.72 +-131.027 175.34 684.871 +-138.432 176.633 689.919 +-145.06 176.837 690.715 +-149.052 173.92 679.324 +-120.47 134.776 526.427 +-124.173 133.398 521.047 +-129.235 133.51 521.485 +-134.726 134.02 523.474 +-820.42 786.803 3073.21 +-847.969 784.9 3065.78 +-875.553 783.035 3058.49 +-903.071 781.11 3050.98 +-930.633 779.221 3043.6 +-957.897 777.083 3035.24 +-169.658 133.457 521.274 +-147.926 112.916 441.046 +-152.687 113.18 442.075 +-1066.79 768.412 3001.38 +-1093.78 766.073 2992.24 +-1120.7 763.677 2982.88 +-1147.38 761.13 2972.93 +-454.339 293.554 1146.61 +-449.844 283.237 1106.31 +-446.531 274.112 1070.67 +-445.023 266.468 1040.81 +-445.551 260.335 1016.85 +-445.642 254.199 992.886 +-446.8 248.896 972.175 +-448.159 243.902 952.669 +-450.004 239.349 934.884 +-451.735 234.896 917.491 +-454.021 230.877 901.795 +-456.237 226.956 886.478 +-145.64 70.8929 276.904 +-145.728 69.4311 271.194 +-148.494 69.2661 270.55 +-151.88 69.378 270.987 +-109.809 49.1331 191.911 +-111.14 48.7209 190.301 +-111.6 47.9416 187.257 +-112.369 47.3136 184.805 +-113.875 47.0048 183.598 +-115.054 46.5661 181.885 +-116.794 46.3575 181.07 +-119.066 46.354 181.056 +-120.42 45.9904 179.636 +-123.137 46.1417 180.227 +-126.21 46.4081 181.268 +-493.396 178.053 695.465 +-496.775 175.963 687.301 +-500.276 173.952 679.447 +-503.144 171.759 670.881 +-507.443 170.085 664.343 +-509.918 167.831 655.541 +-513.673 166.033 648.515 +-516.232 163.879 640.102 +-516.376 161.008 628.889 +-530.706 162.544 634.89 +-527.818 158.806 620.288 +-530.878 156.917 612.908 +-164.31 47.7149 186.372 +-164.212 46.852 183.002 +-164.396 46.0862 180.01 +-169.29 46.6318 182.141 +-549.322 148.683 580.749 +-553.51 147.217 575.021 +-556.466 145.437 568.071 +-560.242 143.889 562.021 +-563.601 142.246 555.605 +-567.595 140.775 549.86 +-570.957 139.159 543.547 +-2357.06 564.542 2205.07 +-583.636 137.366 536.545 +-581.865 134.575 525.644 +-586.578 133.311 520.706 +-590.8 131.937 515.338 +-594.97 130.554 509.938 +-598.787 129.099 504.253 +-603.002 127.733 498.92 +-607.243 126.376 493.617 +-611.512 125.025 488.342 +-614.645 123.447 482.177 +-388.956 76.735 299.723 +-142 27.5159 107.476 +-142.724 27.1622 106.094 +-142.876 26.7031 104.301 +-143.73 26.378 103.031 +-142.468 25.6723 100.275 +-142.145 25.147 98.223 +-142.205 24.6961 96.4617 +-147.189 25.0897 97.9992 +-146.657 24.5345 95.8304 +-662.772 108.802 424.973 +-380.253 61.2459 239.223 +-381.466 60.2742 235.428 +-381.452 59.1176 230.91 +-381.045 57.914 226.209 +-382.554 57.0102 222.679 +-382.563 55.8907 218.306 +-382.177 54.7257 213.756 +-381.825 53.5789 209.276 +-380.46 52.3055 204.303 +-381.231 51.338 200.524 +-718.19 94.7111 369.936 +-738.348 95.3291 372.351 +-724.032 91.4979 357.386 +-734.294 90.8015 354.666 +-740.427 89.5676 349.846 +-405.441 47.9637 187.344 +-406.842 47.0527 183.785 +-410.848 46.4379 181.384 +-405.34 44.76 174.83 +-404.057 43.5745 170.2 +-402.997 42.4269 165.717 +-405.768 41.686 162.823 +-407.961 40.8805 159.677 +-404.918 39.5595 154.517 +-404.894 38.5483 150.568 +-405.485 37.6011 146.868 +-406.135 36.6626 143.202 +-405.336 35.6001 139.052 +-406.195 34.6891 135.494 +-406.167 33.7065 131.656 +-390.979 31.5078 123.068 +-383.585 29.9966 117.165 +-378.792 28.7227 112.19 +-381.035 27.9936 109.341 +-382.967 27.2361 106.383 +-381.309 26.2272 102.442 +-379.899 25.247 98.6134 +-381.934 24.4982 95.6887 +-380.356 23.5206 91.8703 +-381.169 22.6965 88.6513 +-381.076 21.8204 85.2295 +-381.829 20.9948 82.0046 +-380.793 20.0748 78.411 +-380.309 19.1905 74.9571 +-380.086 18.324 71.5728 +-379.831 17.46 68.198 +-379.348 16.5899 64.7993 +-381.89 15.8501 61.9096 +-380.951 14.9648 58.4516 +-379.288 14.059 54.9138 +-380.56 13.2652 51.8131 +-379.823 12.4022 48.4422 +-380.244 11.5796 45.2293 +-378.849 10.7057 41.8157 +-379.211 9.88527 38.6114 +-379.943 9.07365 35.4412 +-378.952 8.22287 32.1181 +-378.33 7.38486 28.8449 +-377.179 6.54151 25.5508 +-378.293 5.73855 22.4145 +-378.481 4.91956 19.2155 +-379.239 4.1067 16.0405 +-379.269 3.28488 12.8306 +-377.571 2.45219 9.57811 +-144.978 0.62764 2.45153 +-145.094 0.314048 1.22666 +96.2 0 0 +96.1963 0.21554 0.811351 +96.9852 0.434647 1.63613 +96.167 0.646553 2.4338 +96.1414 0.861994 3.24479 +97.1075 1.08857 4.09767 +96.0682 1.29266 4.86595 +97.0187 1.52353 5.735 +96.8635 1.73906 6.54629 +96.9004 1.95803 7.37057 +96.7305 2.17283 8.17913 +96.7525 2.39194 9.00391 +96.6675 2.60863 9.81961 +96.7739 2.83092 10.6564 +96.4755 3.04138 11.4486 +96.5667 3.26414 12.2871 +96.2541 3.47321 13.0741 +96.1323 3.68875 13.8855 +95.9045 3.89998 14.6806 +95.6697 4.11046 15.4729 +95.4279 4.3202 16.2624 +96.1623 4.57595 17.2251 +96.0031 4.79124 18.0355 +95.8366 5.00616 18.8446 +95.4672 5.21002 19.612 +95.5794 5.44038 20.4791 +96.1703 5.70054 21.4584 +96.0701 5.92178 22.2912 +95.8652 6.13681 23.1007 +95.653 6.35135 23.9082 +96.2062 6.6186 24.9143 +96.074 6.84077 25.7505 +95.7417 7.04868 26.5332 +96.3614 7.32854 27.5867 +95.9174 7.52917 28.3419 +95.8486 7.75921 29.2078 +96.4371 8.04508 30.2839 +95.9704 8.24455 31.0348 +96.5374 8.5345 32.1262 +96.9978 8.81903 33.1973 +96.6944 9.03603 34.0141 +96.3836 9.25232 34.8283 +96.999 9.55993 35.9862 +96.6704 9.77691 36.803 +96.3344 9.99312 37.6169 +96.915 10.3068 38.7978 +96.561 10.5236 39.6137 +96.2913 10.7498 40.4652 +96.9272 11.08 41.7082 +96.3649 11.2754 42.4438 +96.1593 11.5126 43.3367 +96.5766 11.8271 44.5205 +96.6204 12.0993 45.5452 +96.2949 12.3268 46.4015 +96.6742 12.647 47.6068 +96.2407 12.8631 48.4203 +96.5062 13.1747 49.5931 +96.0547 13.3904 50.4052 +96.2956 13.7047 51.5882 +95.9132 13.9326 52.446 +96.1288 14.2496 53.6395 +95.6408 14.4645 54.4483 +96.517 14.8898 56.0492 +96.0925 15.1189 56.9116 +96.0838 15.4152 58.0272 +95.6406 15.6437 58.8873 +95.7762 15.9693 60.1128 +95.8135 16.2825 61.2917 +95.2564 16.4965 62.0975 +96.0931 16.9565 63.8291 +95.5131 17.1712 64.6371 +95.6586 17.5187 65.9453 +95.7067 17.8531 67.204 +95.7394 18.189 68.4686 +95.8363 18.5419 69.7969 +95.2024 18.7559 70.6026 +95.1129 19.0792 71.8193 +95.3217 19.4674 73.2806 +95.2004 19.7933 74.5074 +95.1413 20.1365 75.7993 +95.1427 20.4974 77.158 +95.8112 21.01 79.0874 +95.0934 21.2238 79.8923 +95.1174 21.6062 81.3317 +95.6427 22.1106 83.2303 +95.4774 22.4628 84.5561 +95.4417 22.8509 86.0173 +95.3142 23.223 87.4177 +95.0967 23.5783 88.7553 +94.9336 23.9525 90.1637 +94.6816 24.3095 91.5077 +95.2536 24.8869 93.6814 +95.0293 25.2657 95.1069 +94.7864 25.6452 96.5358 +94.525 26.0257 97.968 +94.7853 26.5582 99.9725 +94.4143 26.9223 101.343 +94.6221 27.4597 103.366 +94.4069 27.8838 104.962 +94.2999 28.348 106.71 +93.9113 28.7352 108.167 +94.0124 29.2813 110.223 +94.0834 29.83 112.288 +93.7507 30.2608 113.91 +93.7037 30.7933 115.915 +93.7493 31.3687 118.08 +93.7628 31.9466 120.256 +93.7441 32.5271 122.441 +94.1044 33.2553 125.182 +92.506 33.2976 125.342 +94.0665 34.492 129.838 +115.094 42.9959 161.848 +115.194 43.8483 165.057 +115.024 44.6185 167.956 +114.864 45.4129 170.947 +115.197 46.4263 174.761 +115.098 47.2923 178.021 +115.368 48.3365 181.952 +114.956 49.1214 184.907 +115.262 50.2398 189.117 +114.9 51.0966 192.342 +115.326 52.3351 197.004 +114.124 52.861 198.983 +114.852 54.3106 204.44 +113.283 54.7019 205.913 +110.958 54.726 206.004 +108.685 54.7666 206.156 +106.061 54.6174 205.595 +103.85 54.6682 205.786 +101.644 54.7134 205.956 +99.3998 54.7298 206.018 +97.1626 54.7401 206.057 +94.5256 54.5101 205.191 +92.3104 54.5077 205.182 +90.7278 54.878 206.576 +91.27 56.5736 212.959 +91.0294 57.8473 217.753 +90.8923 59.2435 223.009 +88.6961 59.3249 223.315 +90.1784 61.9263 233.108 +90.0881 63.5495 239.218 +89.8608 65.1526 245.252 +89.7591 66.9293 251.94 +89.4482 68.6375 258.37 +89.2441 70.5202 265.458 +88.7383 72.2602 272.007 +88.764 74.5432 280.601 +88.4424 76.6594 288.567 +88.4245 79.1747 298.036 +87.9214 81.3985 306.406 +87.9726 84.2956 317.312 +87.8083 87.174 328.147 +85.0355 87.5669 329.626 +82.4996 88.2285 332.117 +82.2196 91.4369 344.194 +82.1172 95.102 357.99 +81.9172 98.9488 372.471 +81.701 103.104 388.111 +81.0366 107.038 402.922 +80.5663 111.608 420.125 +84.1325 122.505 461.144 +83.7617 128.514 483.761 +83.3014 135.036 508.313 +82.8915 142.404 536.047 +82.5157 150.746 567.448 +81.0959 158.154 595.336 +78.5448 164.242 618.252 +79.197 178.468 671.802 +75.0305 183.286 689.938 +68.2134 181.888 684.675 +62.2902 182.801 688.113 +55.5177 181.116 681.772 +49.7573 182.693 687.709 +43.1247 181.03 681.446 +37.2266 182.376 686.513 +30.7822 181.016 681.394 +24.8031 182.361 686.457 +18.46 180.998 681.326 +12.3807 182.111 685.515 +6.14872 180.899 680.954 +4.34e-14 181.984 685.04 +-6.13563 180.514 679.504 +-12.3703 181.957 684.935 +-18.405 180.459 679.298 +-24.7158 181.72 684.043 +-30.695 180.503 679.463 +-37.0643 181.581 683.521 +-42.9232 180.184 678.264 +-49.3946 181.362 682.696 +-55.1646 179.964 677.436 +-61.8196 181.42 682.914 +-67.485 179.945 677.364 +-74.0898 180.987 681.287 +-79.7403 179.692 676.411 +-86.6369 181.163 681.948 +-92.0601 179.536 675.825 +-99.0634 180.976 681.244 +-104.59 179.681 676.368 +-111.428 180.631 679.946 +-116.887 179.336 675.072 +-123.967 180.509 679.486 +-129.405 179.265 674.804 +-136.772 180.657 680.043 +-142.428 179.74 676.591 +-148.387 179.238 674.702 +-120.514 139.57 525.379 +-124.443 138.394 520.953 +-129.492 138.484 521.293 +-134.775 138.787 522.432 +-820.32 814.395 3065.61 +-847.969 812.526 3058.57 +-875.553 810.595 3051.31 +-903.071 808.603 3043.81 +-930.519 806.549 3036.07 +-957.897 804.433 3028.11 +-170.29 138.668 521.985 +-148.019 116.964 440.285 +-153.163 117.529 442.411 +-1066.79 795.457 2994.32 +-1093.78 793.036 2985.21 +-1120.7 790.556 2975.87 +-470.329 322.979 1215.78 +-453.873 303.576 1142.74 +-449.844 293.206 1103.71 +-445.819 283.308 1066.45 +-442.191 274.091 1031.75 +-445.785 269.639 1015 +-446.28 263.52 991.964 +-447.166 257.867 970.682 +-448.449 252.65 951.045 +-450.384 247.982 933.475 +-451.649 243.117 915.16 +-454.503 239.258 900.632 +-457.085 235.381 886.039 +-145.64 73.3881 276.253 +-146.051 72.0343 271.157 +-148.682 71.795 270.256 +-152.166 71.9554 270.86 +-112.718 52.2098 196.532 +-111.238 50.4804 190.022 +-111.75 49.6957 187.069 +-112.318 48.9568 184.287 +-113.978 48.7031 183.332 +-115.211 48.2708 181.705 +-117.006 48.0762 180.972 +-119.227 48.0505 180.875 +-120.529 47.6523 179.376 +-123.137 47.7658 179.804 +-126.657 48.2117 181.482 +-135.881 50.7615 191.08 +-497.578 182.45 686.793 +-501.147 180.388 679.03 +-504.026 178.116 670.477 +-507.562 176.113 662.937 +-510.52 173.944 654.772 +-513.795 171.917 647.144 +-516.971 169.89 639.512 +-517.31 166.977 628.546 +-529.447 167.866 631.896 +-528.009 164.455 619.054 +-531.007 162.479 611.615 +-162.362 48.8084 183.728 +-165.13 48.7722 183.592 +-166.914 48.439 182.338 +-166.346 47.4335 178.553 +-550.471 154.238 580.596 +-553.373 152.361 573.527 +-556.604 150.594 566.876 +-561.006 149.156 561.465 +-564.092 147.381 554.781 +-567.948 145.821 548.909 +-571.385 144.165 542.675 +-2357.06 584.412 2199.89 +-586.102 142.802 537.545 +-582.231 139.4 524.739 +-586.946 138.09 519.808 +-591.395 136.718 514.644 +-595.495 135.268 509.188 +-599.088 133.71 503.322 +-604.219 132.496 498.752 +-607.626 130.906 492.767 +-612.053 129.54 487.624 +-615.5 127.97 481.714 +-620.373 126.698 476.925 +-141.527 28.3896 106.866 +-142.883 28.1495 105.963 +-142.956 27.6584 104.114 +-143.89 27.3369 102.904 +-142.549 26.5911 100.096 +-142.226 26.047 98.0482 +-142.86 25.6832 96.6787 +-148.013 26.1184 98.3169 +-658.67 114.069 429.386 +-386.923 65.7534 247.514 +-380.924 63.5135 239.082 +-381.55 62.4092 234.926 +-383.911 61.5928 231.852 +-381.983 60.0998 226.232 +-381.697 58.8846 221.658 +-384.028 58.0794 218.627 +-382.783 56.7417 213.592 +-382.086 55.5027 208.927 +-380.897 54.2089 204.057 +-382.373 53.3044 200.652 +-718.278 98.0566 369.112 +-739.324 98.8146 371.965 +-724.032 94.7184 356.546 +-735.726 94.1807 354.522 +-740.876 92.7763 349.236 +-411.398 50.3813 189.649 +-408.292 48.8826 184.008 +-406.844 47.6037 179.194 +-407.624 46.5965 175.402 +-406.716 45.4049 170.917 +-404.378 44.0706 165.894 +-405.86 43.163 162.477 +-404.808 41.9922 158.07 +-406.313 41.0931 154.686 +-407.695 40.1811 151.253 +-405.298 38.9066 146.455 +-405.571 37.9004 142.668 +-406.467 36.9561 139.113 +-406.1 35.9019 135.145 +-407.305 34.9904 131.714 +-389.648 32.5056 122.36 +-383.394 31.037 116.832 +-381.948 29.9815 112.859 +-381.227 28.9935 109.14 +-381.909 28.1169 105.84 +-381.405 27.1572 102.227 +-381.444 26.2419 98.7818 +-380.579 25.2705 95.125 +-381.423 24.4168 91.9116 +-381.363 23.5073 88.4881 +-382.733 22.6866 85.3988 +-381.146 21.6949 81.6654 +-380.01 20.7386 78.066 +-380.701 19.8864 74.858 +-381.068 19.018 71.589 +-379.93 18.0793 68.0553 +-380.431 17.2229 64.8316 +-379.621 16.3105 61.3972 +-381.05 15.4955 58.3293 +-380.672 14.607 54.9847 +-379.174 13.682 51.503 +-378.732 12.8018 48.1896 +-378.16 11.9215 44.8757 +-378.65 11.0766 41.6955 +-379.311 10.2359 38.5308 +-377.952 9.3438 35.1726 +-380.148 8.53914 32.1437 +-378.53 7.64881 28.7922 +-379.074 6.8058 25.6189 +-379.99 5.96718 22.4621 +-380.478 5.11959 19.2716 +-378.939 4.24788 15.9902 +-377.27 3.38258 12.733 +-377.771 2.53984 9.56066 +-146.378 0.656004 2.46938 +-145.894 0.326894 1.23052 +96.3 0 0 +96.0963 0.222619 0.808532 +97.1852 0.450316 1.63551 +96.167 0.668483 2.42787 +96.2413 0.892158 3.24024 +96.1084 1.11391 4.04564 +97.0668 1.3504 4.90454 +97.0187 1.57521 5.72102 +96.9632 1.7999 6.53707 +96.8007 2.02236 7.34505 +97.0294 2.25347 8.18441 +96.7525 2.47307 8.98197 +96.9659 2.70542 9.82585 +96.5752 2.92095 10.6086 +96.674 3.15102 11.4442 +96.5667 3.37485 12.2572 +96.5511 3.60211 13.0826 +97.0225 3.84918 13.9799 +96.0033 4.0364 14.6599 +96.5574 4.28933 15.5785 +95.5264 4.47136 16.2396 +96.1623 4.73116 17.1832 +96.1013 4.95882 18.01 +95.8366 5.17596 18.7986 +95.6628 5.39778 19.6043 +96.3604 5.67088 20.5962 +96.2678 5.89987 21.4278 +96.0701 6.12264 22.2369 +95.8652 6.34496 23.0444 +95.653 6.56678 23.85 +96.3028 6.84997 24.8785 +96.074 7.0728 25.6878 +95.9339 7.30239 26.5217 +96.3614 7.57712 27.5194 +96.2043 7.80783 28.3573 +95.8486 8.0224 29.1366 +96.4371 8.31796 30.2101 +95.9704 8.52419 30.9591 +96.5374 8.82397 32.0479 +96.1494 9.03841 32.8267 +96.7883 9.3516 33.9642 +96.2899 9.55685 34.7097 +97.0924 9.89372 35.9331 +96.6704 10.1085 36.7133 +96.4271 10.342 37.5613 +96.915 10.6564 38.7032 +96.653 10.8909 39.5549 +96.2913 11.1144 40.3665 +96.9272 11.4558 41.6065 +96.3649 11.6579 42.3404 +96.9749 12.0041 43.5978 +96.5766 12.2283 44.412 +96.7102 12.5213 45.4764 +96.2949 12.7449 46.2884 +96.6742 13.076 47.4907 +96.2407 13.2994 48.3022 +96.5945 13.634 49.5175 +96.0547 13.8446 50.2824 +96.4706 14.1953 51.556 +96.5224 14.4966 52.6505 +96.1288 14.7329 53.5088 +96.3301 15.0629 54.707 +95.917 15.2991 55.5651 +96.0073 15.6178 56.7225 +96.2535 15.9662 57.9879 +95.5563 16.1601 58.6919 +95.7762 16.5109 59.9663 +95.9803 16.864 61.2487 +95.4222 17.0857 62.0539 +96.0931 17.5317 63.6735 +95.677 17.784 64.5901 +95.8214 18.1437 65.8965 +95.8685 18.4899 67.1536 +95.0963 18.6797 67.8429 +95.9161 19.1868 69.6848 +95.8371 19.5214 70.9 +95.9797 19.9061 72.2972 +95.2434 20.1111 73.0419 +95.8221 20.5983 74.8113 +95.1413 20.8195 75.6146 +95.1427 21.1927 76.9699 +95.8112 21.7226 78.8946 +95.1689 21.9611 79.7609 +95.6416 22.4622 81.5807 +94.8996 22.6829 82.3823 +95.4774 23.2247 84.35 +95.4417 23.626 85.8077 +95.3142 24.0107 87.2047 +95.0967 24.3781 88.539 +94.9336 24.7649 89.9439 +94.823 25.1716 91.421 +94.6228 25.5607 92.8342 +95.0293 26.1226 94.8751 +94.6488 26.4766 96.1606 +94.525 26.9085 97.7292 +94.7853 27.459 99.7288 +94.4812 27.8551 101.167 +94.0258 28.2121 102.464 +94.4069 28.8296 104.707 +94.2999 29.3095 106.45 +93.9113 29.7099 107.904 +94.0124 30.2745 109.954 +94.2093 30.8832 112.165 +94.1865 31.4327 114.161 +93.7652 31.8587 115.708 +93.7493 32.4327 117.793 +93.823 33.0514 120.04 +93.6251 33.5877 121.987 +93.7517 34.2542 124.408 +92.9125 34.5781 125.585 +93.1488 35.3139 128.257 +115.037 44.4324 161.375 +115.194 45.3355 164.655 +115.52 46.331 168.27 +115.463 47.198 171.419 +115.251 48.0233 174.416 +115.045 48.8738 177.506 +114.845 49.7496 180.686 +115.06 50.8329 184.621 +115.211 51.921 188.573 +114.95 52.8525 191.956 +115.178 54.041 196.272 +114.464 54.8167 199.089 +114.995 56.2228 204.196 +113.8 56.815 206.347 +111.374 56.7941 206.271 +108.685 56.6242 205.654 +106.374 56.6361 205.697 +103.894 56.5464 205.372 +101.988 56.7609 206.151 +99.3998 56.5862 205.516 +97.1626 56.5968 205.555 +94.973 56.6258 205.66 +92.6693 56.5758 205.479 +90.6496 56.6905 205.895 +91.0404 58.3454 211.905 +91.0294 59.8094 217.223 +90.8557 61.2283 222.376 +88.8036 61.4114 223.041 +90.0383 63.9272 232.178 +90.3275 65.8796 239.269 +90.0611 67.5127 245.2 +89.8243 69.2499 251.51 +89.2578 70.8145 257.192 +89.275 72.9374 264.902 +88.8586 74.8123 271.712 +88.7056 77.0209 279.733 +88.5276 79.336 288.141 +88.5072 81.9367 297.587 +88.0016 84.2364 305.939 +87.9985 87.1806 316.632 +87.6831 90.0024 326.881 +84.6001 90.0733 327.138 +82.4996 91.2211 331.307 +82.0172 94.3055 342.509 +82.3553 98.6128 358.153 +81.7301 102.071 370.715 +82.1595 107.199 389.339 +81.2083 110.904 402.792 +82.9354 118.787 431.424 +84.3062 126.922 460.97 +83.7782 132.899 482.677 +83.4421 139.852 507.931 +82.6107 146.735 532.929 +82.3626 155.57 565.015 +80.4955 162.308 589.488 +77.9233 168.469 611.865 +78.597 183.123 665.087 +73.9016 186.651 677.9 +66.4115 183.089 664.965 +61.0875 185.352 673.182 +54.2152 182.866 664.155 +48.8784 185.554 673.915 +42.1662 183.01 664.677 +36.5828 185.301 672.998 +30.0538 182.727 663.648 +24.3773 185.31 673.029 +18.0097 182.573 663.089 +12.1713 185.103 672.277 +5.99513 182.363 662.327 +4.26469e-14 184.892 671.511 +-5.99513 182.363 662.327 +-12.1399 184.625 670.541 +-17.96 182.069 661.258 +-24.3005 184.726 670.91 +-29.9011 181.799 660.277 +-36.4258 184.506 670.109 +-41.8488 181.632 659.673 +-48.5854 184.441 669.875 +-53.8543 181.649 659.733 +-60.6691 184.082 668.572 +-65.8556 181.557 659.399 +-72.8459 183.985 668.216 +-77.8385 181.356 658.669 +-85.077 183.935 668.036 +-89.8673 181.205 658.12 +-97.1846 183.566 666.694 +-101.811 180.839 656.793 +-109.379 183.324 665.815 +-113.949 180.759 656.502 +-121.814 183.39 666.057 +-126.125 180.647 656.096 +-134.349 183.475 666.367 +-138.64 180.894 656.991 +-148.075 184.928 671.643 +-120.925 144.796 525.887 +-124.668 143.347 520.622 +-129.702 143.414 520.866 +-135.259 144.009 523.029 +-820.32 842.019 3058.14 +-847.969 840.086 3051.12 +-875.553 838.09 3043.87 +-903.071 836.03 3036.39 +-930.519 833.906 3028.67 +-957.897 831.719 3020.73 +-159.615 134.384 488.071 +-148.174 121.058 439.671 +-153.702 121.943 442.887 +-1066.79 822.438 2987.02 +-1093.78 819.935 2977.93 +-1120.7 817.371 2968.62 +-462.379 328.29 1192.32 +-453.443 313.576 1138.88 +-449.807 303.127 1100.93 +-446.981 293.682 1066.63 +-448.275 287.287 1043.4 +-445.082 278.347 1010.93 +-446.599 272.655 990.26 +-447.288 266.688 968.586 +-448.864 261.461 949.605 +-450.384 256.394 931.199 +-452.682 251.938 915.018 +-454.81 247.54 899.043 +-457.219 243.436 884.138 +-145.549 75.8301 275.408 +-146.282 74.5952 270.923 +-149.292 74.5346 270.703 +-152.643 74.6294 271.048 +-113.397 54.3059 197.234 +-111.238 52.1926 189.559 +-111.95 51.4732 186.946 +-112.927 50.8916 184.834 +-114.081 50.4008 183.051 +-115.472 50.0211 181.672 +-116.953 49.6843 180.449 +-119.281 49.7026 180.516 +-121.182 49.5356 179.909 +-123.523 49.5409 179.928 +-127.328 50.1111 181.999 +-135.484 52.3301 190.058 +-497.176 188.486 684.566 +-501.205 186.528 677.453 +-504.555 184.35 669.544 +-508.098 182.278 662.019 +-510.64 179.886 653.33 +-514.282 177.917 646.179 +-517.217 175.736 638.257 +-518.679 173.097 628.674 +-528.377 173.21 629.082 +-529.153 170.402 618.884 +-531.585 168.173 610.79 +-162.947 50.6458 183.941 +-163.687 49.9858 181.544 +-166.583 49.9824 181.532 +-169.29 49.9105 181.27 +-550.133 159.372 578.825 +-553.987 157.703 572.765 +-557.636 155.99 566.543 +-561.006 154.215 560.096 +-564.793 152.569 554.117 +-567.948 150.767 547.571 +-572.098 149.241 542.029 +-2356.77 604.16 2194.26 +-590.31 148.705 540.085 +-583.474 144.435 524.577 +-587.61 142.935 519.127 +-591.395 141.355 513.389 +-596.244 140.033 508.586 +-599.39 138.315 502.348 +-604.599 137.076 497.85 +-608.392 135.517 492.186 +-612.053 133.934 486.435 +-616.432 132.511 481.268 +-389.113 82.1631 298.409 +-141.763 29.4014 106.783 +-143.835 29.2981 106.408 +-143.115 28.6284 103.976 +-144.292 28.3433 102.94 +-142.387 27.4617 99.7384 +-141.493 26.7917 97.305 +-143.352 26.6457 96.7747 +-148.095 27.0192 98.1313 +-658.919 117.982 428.501 +-382.754 67.251 244.25 +-380.924 65.6678 238.5 +-381.55 64.5261 234.353 +-383.827 63.6678 231.236 +-383.518 62.3881 226.588 +-383.582 61.1829 222.211 +-381.702 59.6854 216.772 +-384.255 58.892 213.891 +-381.999 57.3722 208.371 +-382.384 56.2663 204.354 +-381.319 54.9603 199.611 +-718.896 101.47 368.53 +-737.904 101.97 370.347 +-724.656 98.0153 355.983 +-735.815 97.3872 353.702 +-742.224 96.0978 349.019 +-749.417 94.8889 344.628 +-754.32 93.3737 339.125 +-404.387 48.9214 177.678 +-405.157 47.8855 173.916 +-409.192 47.2309 171.539 +-406.495 45.8041 166.356 +-406.322 44.6777 162.266 +-408.239 43.7845 159.021 +-406.22 42.4771 154.273 +-403.213 41.0874 149.226 +-404.549 40.1519 145.828 +-406.511 39.2767 142.65 +-405.713 38.1384 138.515 +-404.02 36.9293 134.124 +-405.883 36.0509 130.934 +-387.651 33.4358 121.436 +-384.825 32.2094 116.982 +-380.896 30.9132 112.274 +-379.788 29.8636 108.462 +-380.948 28.9974 105.316 +-381.116 28.0571 101.901 +-381.927 27.1662 98.6654 +-381.45 26.1874 95.1104 +-381.132 25.2257 91.6176 +-380.975 24.2799 88.1824 +-381.271 23.3665 84.8652 +-380.658 22.402 81.3621 +-380.499 21.4696 77.9759 +-380.897 20.5715 74.714 +-381.853 19.7036 71.5617 +-380.225 18.707 67.9422 +-379.939 17.784 64.5899 +-380.509 16.9032 61.3909 +-379.371 15.9505 57.9307 +-381.266 15.126 54.9362 +-381.649 14.2385 51.7129 +-380.517 13.2984 48.2987 +-381.237 12.4261 45.1306 +-379.843 11.4884 41.7249 +-379.808 10.5969 38.4872 +-378.45 9.67347 35.1332 +-377.857 8.77558 31.8721 +-379.327 7.92492 28.7826 +-378.775 7.03107 25.5362 +-378.593 6.14688 22.3249 +-378.281 5.26269 19.1136 +-378.439 4.38617 15.9302 +-377.67 3.501 12.7153 +-377.371 2.62321 9.52726 +-145.278 0.673158 2.44485 +-145.794 0.337751 1.22668 +96.2 0 0 +96.0963 0.229904 0.806491 +97.0852 0.464575 1.62971 +96.167 0.690359 2.42174 +96.1414 0.920397 3.2287 +96.1084 1.15037 4.03543 +96.0682 1.38025 4.84183 +96.9189 1.62508 5.70071 +96.8635 1.85688 6.51385 +96.9004 2.09069 7.33405 +96.8301 2.32243 8.14698 +96.653 2.55137 8.95007 +96.6675 2.78537 9.77094 +96.4758 3.01341 10.5709 +96.4755 3.24745 11.3919 +96.5667 3.48529 12.2262 +96.4521 3.71618 13.0362 +96.1323 3.93868 13.8167 +96.6947 4.19851 14.7282 +96.4587 4.42518 15.5233 +96.3142 4.65576 16.3322 +96.1623 4.88599 17.1398 +95.8068 5.10541 17.9095 +95.8366 5.34534 18.7512 +95.6628 5.57442 19.5548 +95.4817 5.80306 20.3568 +96.1703 6.08677 21.3521 +95.9729 6.31661 22.1584 +95.7682 6.54596 22.9629 +96.5243 6.84347 24.0065 +96.2062 7.06703 24.7908 +96.074 7.30425 25.6229 +95.7417 7.52625 26.4017 +96.3614 7.82507 27.4499 +96.1086 8.05533 28.2577 +96.7069 8.35914 29.3234 +96.1518 8.56475 30.0447 +95.8755 8.79445 30.8505 +96.4429 9.10383 31.9357 +96.1494 9.33419 32.7438 +96.6944 9.64825 33.8456 +96.2899 9.8696 34.622 +95.9721 10.0996 35.4288 +95.6469 10.3288 36.2329 +96.3344 10.6702 37.4304 +96.8226 10.9947 38.5687 +96.561 11.2366 39.4174 +96.2913 11.4781 40.2646 +95.9223 11.708 41.0711 +96.5469 12.0621 42.3133 +96.1593 12.2926 43.1219 +96.3961 12.6048 44.2171 +95.9912 12.8349 45.0243 +96.2949 13.162 46.1715 +95.8723 13.3918 46.9779 +96.152 13.7219 48.1359 +96.5062 14.0673 49.3473 +95.9668 14.2845 50.1094 +96.3831 14.6465 51.3792 +95.9132 14.8765 52.1861 +96.0422 15.2014 53.3256 +95.5547 15.4306 54.1296 +95.8313 15.7857 55.3753 +95.922 16.1146 56.5291 +96.1687 16.4742 57.7905 +95.5563 16.6889 58.5437 +95.7762 17.0512 59.8149 +95.9803 17.4159 61.094 +95.4222 17.6449 61.8972 +95.5162 17.9967 63.1315 +95.5131 18.3346 64.3167 +95.6586 18.7057 65.6185 +95.2213 18.966 66.5318 +95.7394 19.4214 68.1293 +95.1974 19.6662 68.9881 +95.7577 20.1435 70.6624 +95.1129 20.3718 71.4633 +95.8695 20.9058 73.3364 +95.2004 21.1343 74.1382 +95.1413 21.5008 75.4237 +95.8322 22.0448 77.3319 +95.1268 22.2732 78.1333 +95.7726 22.8237 80.0643 +95.6416 23.1973 81.3748 +95.5684 23.5903 82.7535 +94.8139 23.818 83.5523 +95.3685 24.3805 85.5254 +95.2417 24.7775 86.9183 +95.0967 25.1758 88.3155 +94.9336 25.5753 89.7169 +94.823 25.9953 91.1902 +94.6228 26.3971 92.5998 +95.0293 26.9775 94.6356 +94.6488 27.343 95.9178 +94.3886 27.7487 97.3411 +94.7177 28.3373 99.4059 +94.3474 28.7258 100.769 +94.0258 29.1354 102.205 +94.3413 29.7522 104.369 +94.3648 30.2895 106.254 +93.9113 30.6821 107.631 +94.076 31.2863 109.751 +94.1463 31.8724 111.807 +93.6262 32.268 113.195 +93.2727 32.7286 114.81 +93.8101 33.5159 117.572 +93.0406 33.8485 118.739 +93.5656 34.6649 121.603 +93.8693 35.4196 124.25 +93.1448 35.799 125.581 +92.7473 36.3125 127.382 +114.867 45.8188 160.73 +115.641 47.0009 164.877 +115.024 47.6416 167.124 +115.409 48.7195 170.905 +115.197 49.5718 173.895 +115.098 50.4965 177.139 +114.845 51.3776 180.23 +115.06 52.4964 184.155 +115.16 53.5965 188.014 +114.8 54.5108 191.221 +114.833 55.6425 195.191 +114.754 56.7542 199.091 +114.948 58.0385 203.596 +114.129 58.844 206.422 +111.789 58.8714 206.518 +109.094 58.697 205.906 +106.82 58.7349 206.039 +104.245 58.5939 205.545 +101.988 58.6183 205.63 +99.7802 58.6614 205.781 +97.5359 58.6735 205.823 +94.8917 58.4286 204.965 +93.0282 58.6534 205.753 +90.5324 58.47 205.11 +91.0404 60.2547 211.37 +90.9919 61.7411 216.585 +90.929 63.2829 221.993 +89.0903 63.6259 223.196 +90.5986 66.4301 233.033 +90.3959 68.0871 238.846 +89.9609 69.6445 244.309 +89.8894 71.5679 251.056 +89.3213 73.184 256.726 +89.275 75.3242 264.233 +88.9488 77.3389 271.301 +88.764 79.5938 279.211 +88.698 82.0899 287.967 +88.3969 84.5128 296.466 +88.2154 87.2041 305.907 +87.6361 89.6626 314.532 +83.7521 88.7807 311.438 +84.8662 93.3137 327.339 +82.4996 94.2063 330.471 +82.3996 97.8458 343.238 +82.5501 102.081 358.093 +81.8548 105.573 370.343 +82.339 110.949 389.204 +81.2465 114.587 401.964 +84.4844 124.966 438.373 +84.2541 130.995 459.523 +83.9267 137.491 482.312 +83.3014 144.185 505.794 +82.8028 151.89 532.82 +81.8199 159.602 559.875 +78.7334 163.95 575.128 +79.8975 178.39 625.783 +75.8914 182.606 640.572 +71.4975 186.488 654.191 +64.0441 182.341 639.642 +59.2485 185.655 651.268 +52.2694 182.073 638.701 +47.3367 185.582 651.012 +40.5668 181.83 637.85 +35.489 185.643 651.227 +28.9153 181.558 636.896 +23.5781 185.1 649.32 +17.3213 181.34 636.131 +11.7839 185.075 649.233 +5.76911 181.231 635.748 +4.12815e-14 184.829 648.37 +-5.76649 181.149 635.46 +-11.7612 184.718 647.983 +-17.282 180.929 634.689 +-23.5188 184.634 647.686 +-28.7975 180.819 634.303 +-35.2849 184.576 647.482 +-40.3226 180.735 634.01 +-47.0089 184.297 646.503 +-51.8458 180.597 633.525 +-58.7604 184.125 645.903 +-63.3636 180.403 632.845 +-70.5149 183.925 645.2 +-74.9405 180.318 632.546 +-82.2496 183.642 644.205 +-86.5128 180.149 631.954 +-94.1784 183.709 644.441 +-98.1898 180.114 631.832 +-106.031 183.528 643.807 +-109.74 179.779 630.657 +-117.838 183.209 642.688 +-121.46 179.658 630.232 +-129.788 183.048 642.122 +-133.218 179.507 629.7 +-142.482 183.767 644.644 +-121.12 149.775 525.404 +-124.893 148.305 520.244 +-130.076 148.533 521.047 +-135.718 149.227 523.482 +-820.32 869.573 3050.42 +-847.969 867.577 3043.42 +-875.553 865.516 3036.18 +-903.071 863.388 3028.72 +-930.519 861.195 3021.03 +-167.178 149.907 525.866 +-151.826 132.01 463.084 +-148.544 125.332 439.658 +-154.908 126.922 445.235 +-1066.79 849.352 2979.48 +-1093.78 846.767 2970.41 +-1120.56 844.015 2960.76 +-460.558 337.698 1184.63 +-453.55 323.914 1136.27 +-449.404 312.767 1097.17 +-447.093 303.367 1064.19 +-452.294 299.348 1050.1 +-449.614 290.38 1018.64 +-453.457 285.901 1002.93 +-447.858 275.763 967.362 +-448.864 270.017 947.207 +-450.765 265.008 929.633 +-452.682 260.183 912.708 +-454.942 255.714 897.032 +-144.97 79.7117 279.624 +-145.595 78.336 274.799 +-146.79 77.3038 271.178 +-149.574 77.1191 270.53 +-152.118 76.8065 269.433 +-113.639 56.2029 197.157 +-111.485 54.0201 189.5 +-111.55 52.9677 185.808 +-113.181 52.6751 184.782 +-114.184 52.097 182.753 +-116.099 51.9388 182.199 +-117.271 51.4497 180.483 +-119.388 51.3754 180.222 +-121.672 51.3636 180.181 +-123.634 51.2076 179.634 +-127.776 51.9328 182.177 +-493.227 196.74 690.155 +-135.823 53.1774 186.543 +-136.117 52.3149 183.518 +-504.966 190.538 668.398 +-508.93 188.552 661.43 +-511.362 186.035 652.603 +-515.317 184.109 645.845 +-518.449 181.919 638.161 +-527.83 181.916 638.15 +-526.867 178.366 625.7 +-529.917 176.232 618.212 +-532.164 173.865 609.91 +-536.509 172.21 604.105 +-164.999 52.0353 182.537 +-167.179 51.8031 181.723 +-547.683 166.753 584.96 +-551.687 165.052 578.995 +-555.078 163.185 572.444 +-558.531 161.354 566.02 +-561.701 159.459 559.374 +-565.213 157.679 553.129 +-567.948 155.7 546.189 +-572.526 154.24 541.065 +-572.019 151.436 531.229 +-592.631 154.176 540.84 +-584.132 149.33 523.843 +-588.79 147.909 518.856 +-592.584 146.274 513.123 +-596.918 144.778 507.875 +-600.824 143.183 502.279 +-605.359 141.74 497.218 +-608.852 140.058 491.315 +-613.519 138.648 486.37 +-617.209 137.02 480.658 +-621.547 135.538 475.46 +-140.975 30.1949 105.922 +-143.438 30.1736 105.847 +-143.115 29.5652 103.713 +-143.328 29.0751 101.994 +-142.387 28.3604 99.4866 +-142.145 27.7959 97.5065 +-144.662 27.7693 97.4132 +-149.002 28.0741 98.4826 +-659.831 122.012 428.011 +-385.422 69.9359 245.331 +-381.679 67.9511 238.369 +-383.827 67.0354 235.157 +-383.063 65.6208 230.194 +-383.603 64.4439 226.066 +-383.497 63.1708 221.6 +-383.166 61.8752 217.055 +-382.437 60.5313 212.341 +-384.262 59.6006 209.076 +-381.509 57.9747 203.372 +-386.504 57.5305 201.814 +-719.426 104.868 367.87 +-723.18 103.206 362.041 +-2919.2 407.767 1430.42 +-736.62 100.684 353.194 +-742.763 99.3147 348.391 +-750.139 98.0887 344.09 +-755.408 96.5683 338.757 +-405.57 50.67 177.748 +-407.167 49.6979 174.338 +-409.376 48.7985 171.182 +-406.035 47.2495 165.749 +-405.029 45.9928 161.341 +-409.444 45.3508 159.088 +-405.29 43.7668 153.532 +-408.068 42.943 150.642 +-405.111 41.5235 145.662 +-404.162 40.3276 141.467 +-405.901 39.4049 138.23 +-407.708 38.4859 135.007 +-405.124 37.1613 130.36 +-387.746 34.5385 121.159 +-382.917 33.0984 116.108 +-382.618 32.069 112.496 +-381.898 31.0122 108.789 +-382.198 30.0444 105.394 +-381.887 29.0339 101.85 +-380.188 27.9275 97.9681 +-381.45 27.0444 94.8703 +-380.453 26.0048 91.2234 +-381.363 25.1 88.0496 +-381.856 24.1682 84.7808 +-380.658 23.1351 81.1567 +-380.499 22.1722 77.779 +-380.309 21.2119 74.4103 +-380.479 20.2751 71.1242 +-379.34 19.2742 67.6129 +-380.431 18.3898 64.5103 +-379.621 17.4156 61.093 +-381.05 16.5453 58.0402 +-380.277 15.5804 54.6553 +-380.758 14.6701 51.462 +-379.922 13.7121 48.1013 +-380.542 12.8094 44.9346 +-379.843 11.8644 41.6196 +-378.913 10.9179 38.2995 +-377.952 9.97687 34.9983 +-379.55 9.10336 31.9341 +-380.723 8.21436 28.8155 +-378.376 7.25351 25.4449 +-377.794 6.33465 22.2216 +-378.78 5.44206 19.0905 +-378.439 4.52971 15.89 +-379.569 3.63374 12.747 +-379.17 2.72197 9.54853 +-145.678 0.697103 2.4454 +-145.794 0.348804 1.22358 +96.2 0 0 +96.0963 0.23717 0.804384 +96.1853 0.474816 1.61038 +96.167 0.712178 2.41542 +97.0408 0.95837 3.2504 +96.2083 1.18796 4.02907 +96.0682 1.42387 4.82918 +96.1204 1.66263 5.63897 +96.8635 1.91557 6.49683 +96.0031 2.1368 7.24716 +96.8301 2.39584 8.1257 +95.8567 2.61032 8.85315 +96.6675 2.87341 9.74542 +95.681 3.08306 10.4565 +96.4755 3.35009 11.3621 +96.3684 3.58804 12.1692 +96.2541 3.82574 12.9753 +96.1323 4.06316 13.7806 +95.9045 4.29583 14.5697 +96.5574 4.5697 15.4986 +95.4279 4.75871 16.1396 +96.1623 5.04041 17.095 +96.0031 5.27755 17.8993 +96.5226 5.55374 18.836 +95.6628 5.75061 19.5037 +96.3604 6.04156 20.4905 +95.9755 6.26642 21.2531 +95.9729 6.51626 22.1005 +95.7682 6.75286 22.9029 +96.5243 7.05976 23.9438 +96.2062 7.2904 24.726 +95.9776 7.52753 25.5303 +95.7417 7.76413 26.3327 +96.3614 8.07239 27.3782 +96.1086 8.30993 28.1838 +96.7069 8.62334 29.2468 +96.2469 8.84418 29.9958 +95.9704 9.08138 30.8003 +96.4429 9.39156 31.8523 +96.1494 9.62921 32.6583 +96.6004 9.94352 33.7243 +96.2899 10.1815 34.5316 +95.9721 10.4188 35.3362 +96.6704 10.7693 36.5249 +97.0761 11.0922 37.6201 +96.8226 11.3422 38.4679 +96.4689 11.5807 39.2769 +96.2913 11.8409 40.1594 +95.9223 12.0781 40.9638 +95.5459 12.3143 41.7652 +95.978 12.6573 42.9282 +95.7643 12.918 43.8125 +96.7102 13.3398 45.2431 +96.2949 13.578 46.0509 +96.6742 13.9307 47.2471 +96.152 14.1556 48.0101 +96.5062 14.5119 49.2184 +96.7578 14.8575 50.3905 +96.2956 15.0957 51.1984 +95.9132 15.3467 52.0498 +96.0422 15.6818 53.1863 +96.3301 16.0474 54.4263 +95.8313 16.2846 55.2306 +96.0925 16.6534 56.4816 +96.0838 16.9799 57.5888 +96.3153 17.3531 58.8546 +95.6084 17.5593 59.5541 +95.9803 17.9663 60.9344 +95.4222 18.2025 61.7355 +96.0931 18.6776 63.3469 +95.5131 18.9141 64.1487 +95.8214 19.3297 65.5584 +95.7067 19.6652 66.6963 +95.7394 20.0352 67.9513 +95.8363 20.4239 69.2696 +95.2024 20.6597 70.0691 +95.9797 21.2073 71.9263 +95.8695 21.5665 73.1448 +95.2004 21.8023 73.9445 +95.1413 22.1804 75.2266 +95.1427 22.5779 76.575 +95.6591 23.1058 78.3652 +95.6217 23.5079 79.7293 +95.0425 23.7805 80.6537 +95.6427 24.3548 82.6014 +95.4774 24.7428 83.9172 +95.3685 25.151 85.302 +95.2417 25.5607 86.6913 +95.0967 25.9715 88.0848 +94.9336 26.3836 89.4825 +94.823 26.8169 90.9519 +95.1134 27.3727 92.8368 +95.0293 27.8301 94.3884 +94.6488 28.2072 95.6672 +95.0706 28.8328 97.7889 +94.7853 29.2539 99.2172 +94.4143 29.6549 100.577 +94.0258 30.0562 101.938 +94.3413 30.6925 104.096 +94.2349 31.2039 105.831 +93.847 31.6301 107.276 +94.0124 32.2534 109.39 +94.2093 32.9019 111.59 +93.6262 33.2879 112.899 +93.8268 33.9635 115.19 +93.7493 34.5526 117.188 +93.1008 34.9409 118.505 +93.5656 35.7605 121.285 +93.2227 36.2874 123.072 +93.5512 37.0917 125.8 +92.5752 37.3906 126.814 +102.406 42.1393 142.919 +115.082 48.2519 163.651 +114.968 49.1236 166.607 +115.355 50.2356 170.378 +115.197 51.1386 173.441 +115.045 52.0685 176.595 +115.211 53.1703 180.332 +115.06 54.1556 183.674 +115.211 55.3149 187.605 +114.85 56.2583 190.805 +114.833 57.4011 194.681 +114.415 58.3749 197.983 +112.943 58.8291 199.524 +113.753 60.5039 205.204 +111.189 60.406 204.872 +109.457 60.7539 206.052 +107.177 60.7937 206.187 +104.508 60.5986 205.525 +102.634 60.854 206.392 +100.118 60.7205 205.939 +97.8676 60.7338 205.984 +95.2984 60.5338 205.306 +93.387 60.7406 206.007 +90.6105 60.3701 204.75 +91.1169 62.2115 210.996 +90.6548 63.4564 215.218 +90.8557 65.2305 221.235 +90.7746 66.8778 226.822 +90.6337 68.5563 232.515 +90.4301 70.2656 238.312 +90.0945 71.9523 244.033 +89.5964 73.5892 249.584 +89.5434 75.6848 256.692 +89.3677 77.7858 263.817 +88.7383 79.5947 269.952 +88.7348 82.0823 278.389 +88.4424 84.4403 286.387 +88.3418 87.1293 295.507 +85.5965 87.2897 296.051 +84.2974 88.9727 301.759 +83.3014 91.094 308.953 +84.9872 96.4001 326.949 +82.4996 97.1838 329.607 +82.3321 100.855 342.06 +82.9613 105.832 358.937 +81.7301 108.743 368.813 +82.7576 115.038 390.161 +85.1199 123.844 420.027 +84.612 129.11 437.888 +84.1846 135.023 457.944 +83.9102 141.809 480.958 +83.3014 148.742 504.473 +82.522 156.159 529.626 +81.1379 163.274 553.757 +79.7646 171.347 581.138 +79.8366 183.888 623.672 +73.616 182.729 619.743 +68.7588 185.014 627.49 +61.9164 181.854 616.775 +57.0696 184.479 625.678 +50.6218 181.907 616.952 +45.6068 184.451 625.581 +39.2603 181.536 615.695 +34.1178 184.111 624.43 +27.9818 181.25 614.725 +22.6951 183.799 623.372 +16.7585 180.993 613.854 +11.3353 183.657 622.89 +5.58062 180.85 613.37 +3.97324e-14 183.516 622.409 +-5.578 180.766 613.082 +-11.3144 183.318 621.739 +-16.7245 180.626 612.607 +-22.6253 183.234 621.455 +-27.8641 180.487 612.138 +-33.9189 183.038 620.79 +-39.0283 180.463 612.058 +-45.272 183.097 620.989 +-50.104 180.046 610.641 +-56.6338 183.071 620.9 +-61.3796 180.278 611.429 +-67.9853 182.932 620.43 +-72.518 180.004 610.498 +-79.2638 182.569 619.198 +-83.7326 179.871 610.047 +-90.713 182.542 619.107 +-94.9528 179.682 609.407 +-102.073 182.262 618.157 +-106.373 179.771 609.711 +-113.618 182.232 618.055 +-117.56 179.386 608.403 +-125.056 181.948 617.093 +-128.951 179.249 607.94 +-125.683 167.223 567.151 +-121.509 155.006 525.718 +-125.478 153.708 521.316 +-130.683 153.943 522.111 +-136.783 155.151 526.209 +-161.946 177.095 600.634 +-847.969 894.998 3035.47 +-875.553 892.871 3028.25 +-903.071 890.677 3020.81 +-930.519 888.414 3013.14 +-168.026 155.429 527.152 +-149.571 134.159 455.013 +-148.884 129.589 439.513 +-155.955 131.818 447.073 +-1066.79 876.197 2971.7 +-1093.78 873.53 2962.65 +-483.035 375.326 1272.95 +-459.017 347.206 1177.58 +-453.12 333.835 1132.23 +-449.147 322.469 1093.68 +-446.793 312.746 1060.7 +-453.595 309.697 1050.36 +-464.189 309.27 1048.92 +-452.899 294.575 999.078 +-447.695 284.377 964.49 +-449.61 279.015 946.304 +-451.441 273.794 928.595 +-453.457 268.866 911.882 +-455.599 264.178 895.982 +-144.97 82.231 278.894 +-145.958 81.0135 274.765 +-147.344 80.048 271.49 +-150.137 79.8563 270.84 +-468.999 244.288 828.526 +-114.512 58.4244 198.151 +-111.14 55.555 188.42 +-112.25 54.9848 186.486 +-113.181 54.34 184.299 +-114.441 53.8649 182.688 +-116.465 53.7489 182.294 +-117.483 53.1717 180.337 +-119.872 53.2139 180.479 +-121.346 52.8448 179.228 +-124.296 53.1092 180.125 +-128.558 53.9025 182.815 +-491.811 202.376 686.376 +-494.767 199.834 677.755 +-498.185 197.523 669.917 +-136.19 53.0125 179.797 +-136.512 52.1742 176.954 +-511.904 192.118 651.586 +-515.864 190.13 644.842 +-523.435 189.474 642.616 +-533.246 189.591 643.014 +-526.175 183.762 623.246 +-529.98 181.824 616.671 +-533.578 179.837 609.933 +-538.003 178.148 604.204 +-540.724 175.917 596.638 +-544.74 174.131 590.58 +-170.294 53.4879 181.409 +-552.565 170.54 578.401 +-555.078 168.343 570.948 +-559.77 166.822 565.793 +-562.951 164.865 559.154 +-566.755 163.106 553.189 +-569.999 161.202 546.729 +-573.881 159.491 540.929 +-573.458 156.615 531.174 +-590.672 158.523 537.644 +-584.864 154.243 523.129 +-589.453 152.755 518.084 +-592.732 150.936 511.911 +-597.891 149.598 507.375 +-602.183 148.042 502.099 +-606.044 146.385 496.479 +-609.848 144.72 490.832 +-614.753 143.318 486.076 +-618.453 141.635 480.368 +-622.643 140.068 475.054 +-141.763 31.3232 106.235 +-143.042 31.0413 105.279 +-143.515 30.5848 103.731 +-142.685 29.8594 101.271 +-142.549 29.2901 99.3399 +-142.389 28.7236 97.4187 +-146.628 29.0361 98.4786 +-149.167 28.9937 98.3347 +-383.181 73.0948 247.908 +-383.921 71.8655 243.738 +-381.763 70.1143 237.799 +-382.309 68.8807 233.615 +-383.148 67.7099 229.644 +-383.603 66.4808 225.475 +-383.925 65.2404 221.268 +-381.616 63.5726 215.612 +-383.13 62.5576 212.17 +-381.564 61.0525 207.065 +-387.981 60.8217 206.282 +-716.412 110.008 373.1 +-725.077 109.032 369.791 +-723.535 106.52 361.272 +-732.675 105.578 358.076 +-737.963 104.056 352.914 +-744.381 102.677 348.237 +-409.864 55.288 187.514 +-756.948 99.8238 338.561 +-406.48 52.3886 177.681 +-406.802 51.2226 173.726 +-405.524 49.8671 169.129 +-408.612 49.0523 166.365 +-406.322 47.5981 161.433 +-406.848 46.4875 157.666 +-403.801 44.9844 152.568 +-405.174 43.986 149.183 +-405.298 42.8556 145.349 +-407.733 41.9699 142.345 +-407.41 40.8013 138.381 +-406.1 39.5459 134.123 +-405.029 38.3267 129.988 +-384.893 35.368 119.954 +-383.585 34.2042 116.007 +-378.888 32.7602 111.109 +-380.939 31.912 108.232 +-381.429 30.9318 104.908 +-381.116 29.8911 101.378 +-381.927 28.9419 98.1592 +-381.063 27.8708 94.5264 +-380.55 26.8335 91.0083 +-381.558 25.9065 87.8643 +-381.174 24.8876 84.4083 +-382.513 23.9826 81.3391 +-381.771 22.9495 77.8351 +-381.583 21.9557 74.4646 +-380.381 20.9106 70.92 +-381.7 20.0071 67.8557 +-380.136 18.9563 64.2918 +-381.002 18.0314 61.155 +-380.161 17.0285 57.7535 +-379.881 16.0562 54.4559 +-380.362 15.118 51.2741 +-380.417 14.164 48.0383 +-379.45 13.1763 44.6886 +-378.551 12.1977 41.3696 +-380.206 11.3014 38.3298 +-378.748 10.3139 34.9805 +-378.753 9.37137 31.7838 +-379.427 8.44514 28.6424 +-379.573 7.50643 25.4587 +-378.593 6.54867 22.2104 +-378.281 5.60668 19.0156 +-378.04 4.66795 15.8318 +-379.469 3.7476 12.7103 +-378.67 2.8043 9.51103 +-145.978 0.720615 2.44403 +-144.395 0.356372 1.20867 +96.2 0 0 +96.1963 0.244672 0.803047 +96.1853 0.489324 1.60603 +96.167 0.73394 2.40889 +96.1414 0.9785 3.21157 +96.1084 1.22299 4.01401 +97.0668 1.48263 4.8662 +96.1204 1.71344 5.62374 +96.0654 1.95784 6.42591 +96.9004 2.22268 7.29513 +96.7305 2.46651 8.09541 +96.7525 2.71523 8.91175 +96.6675 2.96121 9.7191 +96.5752 3.20696 10.5257 +96.4755 3.45245 11.3314 +96.3684 3.69768 12.1363 +96.2541 3.94265 12.9403 +96.0334 4.18301 13.7292 +96.6947 4.46356 14.65 +95.5711 4.66122 15.2988 +96.3142 4.94967 16.2455 +95.2774 5.14663 16.892 +95.8068 5.42771 17.8145 +95.6407 5.67116 18.6135 +95.4672 5.9142 19.4112 +96.1652 6.21355 20.3937 +95.9755 6.4579 21.1957 +95.9729 6.71537 22.0408 +95.8652 6.96625 22.8642 +96.4275 7.26817 23.8551 +96.013 7.49807 24.6097 +95.9776 7.75755 25.4613 +96.6068 8.07368 26.4989 +96.3614 8.31906 27.3043 +95.9174 8.5468 28.0518 +95.8486 8.80794 28.9089 +96.2469 9.11443 29.9148 +96.8238 9.44211 30.9903 +96.4429 9.67854 31.7663 +96.1494 9.92344 32.5701 +96.6944 10.2573 33.666 +96.2899 10.4926 34.4383 +95.9721 10.7371 35.2408 +96.6704 11.0983 36.4263 +97.0761 11.4311 37.5185 +96.7302 11.6776 38.3275 +96.561 11.9459 39.2082 +96.1996 12.1911 40.0128 +96.7445 12.5538 41.2034 +96.3649 12.7994 42.0094 +95.978 13.044 42.8123 +96.3961 13.4006 43.9825 +95.9912 13.6452 44.7854 +96.2054 13.9799 45.8839 +95.8723 14.2373 46.7286 +96.2407 14.6017 47.9246 +96.4179 14.9417 49.0406 +95.9668 15.1863 49.8436 +96.2082 15.5429 51.0138 +95.8262 15.8013 51.862 +96.0422 16.161 53.0427 +96.3301 16.5378 54.2793 +96.6028 16.9173 55.5248 +96.0073 17.1471 56.2791 +96.1687 17.5142 57.4839 +95.6406 17.7581 58.2846 +95.7762 18.1277 59.4975 +95.8135 18.4832 60.6644 +95.9196 18.8565 61.8897 +96.0931 19.2484 63.1758 +95.5131 19.492 63.9755 +95.6586 19.8865 65.2703 +95.7067 20.2661 66.5162 +95.8197 20.6648 67.8247 +95.1974 20.9077 68.622 +95.8371 21.4329 70.3458 +95.1129 21.6579 71.0842 +95.2434 22.0804 72.4709 +95.2004 22.4685 73.7448 +95.1413 22.8581 75.0235 +95.1427 23.2678 76.3682 +95.8112 23.8497 78.2779 +95.0934 24.0924 79.0746 +95.6416 24.6617 80.943 +95.5684 25.0795 82.3144 +94.8139 25.3216 83.109 +95.3685 25.9196 85.0716 +95.2417 26.3417 86.4572 +95.0967 26.7651 87.8469 +94.791 27.149 89.1067 +94.823 27.6363 90.7063 +94.4826 28.022 91.9721 +94.8903 28.6386 93.9958 +94.5799 29.048 95.3394 +94.3886 29.5005 96.8246 +94.7853 30.1478 98.9492 +94.4143 30.5611 100.306 +94.7547 31.2148 102.451 +94.3413 31.6304 103.815 +94.3648 32.2016 105.69 +93.847 32.5966 106.986 +94.0124 33.2389 109.095 +93.5799 33.6808 110.545 +93.6885 34.3281 112.67 +93.7037 34.9553 114.728 +93.6275 35.5624 116.721 +93.4619 36.1482 118.643 +93.4467 36.8063 120.803 +93.7517 37.6084 123.436 +93.7835 38.3201 125.772 +92.5179 38.5093 126.393 +97.9883 41.5535 136.384 +115.697 49.9922 164.081 +115.134 50.6978 166.397 +115.355 51.7706 169.918 +115.197 52.7012 172.973 +114.886 53.5855 175.875 +114.845 54.621 179.274 +115.06 55.8104 183.178 +115.11 56.9547 186.933 +114.9 58.0027 190.373 +114.833 59.1551 194.155 +114.464 60.1842 197.533 +114.041 61.2157 200.918 +110.795 60.7316 199.329 +111.651 62.5103 205.167 +109.866 62.844 206.263 +107.489 62.8341 206.23 +105.297 62.9216 206.517 +102.634 62.7135 205.834 +100.499 62.8137 206.163 +98.1994 62.8018 206.124 +95.6238 62.5966 205.451 +93.387 62.5966 205.451 +90.7668 62.322 204.55 +91.27 64.22 210.779 +90.6923 65.4225 214.726 +90.8923 67.2508 220.726 +90.7746 68.9214 226.21 +90.5986 70.6238 231.797 +90.0881 72.1387 236.769 +89.9943 74.0684 243.103 +89.7591 75.9754 249.362 +89.5116 77.9698 255.908 +89.3986 80.1904 263.196 +89.0991 82.3602 270.318 +88.5302 84.3954 276.998 +88.6128 87.1884 286.164 +88.3418 89.7917 294.709 +85.6232 89.9849 295.343 +83.7797 91.1283 299.096 +83.9524 94.6111 310.527 +84.3824 98.6387 323.746 +81.986 99.5297 326.67 +82.4221 104.051 341.51 +83.3293 109.549 359.556 +81.7925 112.152 368.097 +85.7083 122.78 402.981 +85.0436 127.513 418.517 +84.5573 132.969 436.423 +84.202 139.178 456.801 +83.7947 145.941 478.998 +83.2857 153.259 503.016 +82.4629 160.815 527.817 +80.0941 166.098 545.157 +81.1351 179.617 589.526 +78.0939 185.37 608.411 +71.8501 183.795 603.242 +66.846 185.363 608.385 +60.4307 182.914 600.35 +55.5269 184.978 607.122 +49.3822 182.874 600.219 +44.3442 184.825 606.62 +38.3263 182.632 599.424 +33.1915 184.586 605.835 +27.345 182.537 599.112 +22.1019 184.464 605.436 +16.3815 182.328 598.426 +11.0352 184.257 604.757 +5.45408 182.15 597.843 +3.87037e-14 184.227 604.658 +-5.4567 182.238 598.13 +-11.009 183.82 603.322 +-16.3606 182.095 597.661 +-22.0355 183.911 603.62 +-27.2752 182.071 597.584 +-33.0711 183.916 603.638 +-38.1553 181.818 596.751 +-44.1419 183.982 603.853 +-48.9899 181.422 595.451 +-55.1696 183.787 603.214 +-59.9228 181.377 595.304 +-66.1665 183.478 602.201 +-70.8652 181.276 594.973 +-77.253 183.374 601.86 +-81.8008 181.09 594.363 +-88.2775 183.069 600.857 +-92.9426 181.252 594.894 +-99.5236 183.139 601.087 +-103.947 181.039 594.196 +-110.944 183.38 601.878 +-114.936 180.741 593.216 +-121.736 182.53 599.088 +-126.12 180.671 592.987 +-122.813 168.399 552.707 +-121.726 160.027 525.231 +-125.995 159.058 522.052 +-131.29 159.384 523.119 +-139.274 162.805 534.348 +-153.608 173.11 568.173 +-847.969 922.346 3027.27 +-171.3 180.026 590.87 +-903.071 917.893 3012.65 +-930.633 915.672 3005.36 +-167.909 160.067 525.362 +-148.669 137.425 451.047 +-149.41 134.02 439.872 +-156.019 135.901 446.047 +-1066.79 902.971 2963.67 +-1093.78 900.222 2954.65 +-483.274 386.987 1270.14 +-458.421 357.349 1172.87 +-452.87 343.846 1128.55 +-448.671 331.97 1089.57 +-446.119 321.815 1056.24 +-455.087 320.212 1050.98 +-465.478 319.606 1048.99 +-448.872 300.875 987.512 +-448.427 293.545 963.454 +-449.735 287.62 944.009 +-451.568 282.239 926.348 +-453.457 277.081 909.419 +-456.125 272.564 894.594 +-144.791 84.6394 277.798 +-146.003 83.515 274.108 +-147.113 82.3649 270.333 +-150.7 82.6051 271.121 +-469.238 251.881 826.709 +-112.718 59.2665 194.521 +-111.485 57.4303 188.494 +-111.95 56.5134 185.485 +-113.333 56.0759 184.049 +-114.647 55.6105 182.521 +-116.099 55.2176 181.232 +-118.225 55.1427 180.986 +-119.979 54.8888 180.153 +-122.271 54.8752 180.108 +-125.069 55.0725 180.755 +-129.453 55.936 183.59 +-506.877 214.949 705.492 +-495.914 206.418 677.491 +-499.869 204.247 670.366 +-501.557 201.199 660.363 +-505.718 199.19 653.768 +-136.251 52.6977 172.961 +-136.667 51.9099 170.376 +-520.419 194.138 637.186 +-533.806 195.589 641.951 +-526.489 189.49 621.934 +-531.125 187.785 616.335 +-166.546 57.848 189.865 +-163.206 55.6935 182.794 +-542.102 181.754 596.543 +-545.336 179.648 589.631 +-548.888 177.67 583.136 +-552.971 175.88 577.263 +-556.511 173.934 570.876 +-560.252 172.068 564.751 +-563.437 170.05 558.126 +-566.755 168.09 551.695 +-569.999 166.127 545.253 +-573.881 164.365 539.468 +-575.4 161.947 531.533 +-585.957 162.063 531.912 +-585.595 159.155 522.368 +-590.338 157.659 517.46 +-594.144 155.918 511.745 +-599.015 154.459 506.956 +-601.956 152.509 500.555 +-607.26 151.161 496.132 +-610.537 149.311 490.061 +-614.753 147.697 484.763 +-619.152 146.128 479.613 +-622.878 144.402 473.949 +-142.394 32.424 106.42 +-142.724 31.9186 104.761 +-143.435 31.5019 103.393 +-142.765 30.7893 101.055 +-142.387 30.1507 98.9588 +-142.47 29.6182 97.2111 +-147.202 30.0405 98.5972 +-148.095 29.6649 97.3641 +-661.904 130.122 427.077 +-383.254 73.9326 242.657 +-382.769 72.4471 237.781 +-379.864 70.5314 231.494 +-384.166 69.9639 229.631 +-383.944 68.5731 225.066 +-382.039 66.9034 219.586 +-382.046 65.5892 215.273 +-382.004 64.2797 210.975 +-382.434 63.0617 206.977 +-387.107 62.5389 205.261 +-717.115 113.48 372.458 +-730.374 113.184 371.487 +-724.067 109.856 360.561 +-732.675 108.804 357.109 +-412.296 59.9117 196.639 +-406.884 57.8389 189.835 +-409.052 56.8646 186.637 +-757.492 102.948 337.889 +-764.003 101.477 333.06 +-407.624 52.8944 173.607 +-405.799 51.4255 168.786 +-406.035 50.2323 164.869 +-407.616 49.2087 161.51 +-404.716 47.6571 156.417 +-406.313 46.6472 153.102 +-407.321 45.5703 149.568 +-407.171 44.3692 145.626 +-404.162 42.8735 140.717 +-406.467 41.951 137.689 +-406.478 40.7922 133.886 +-407.21 39.7106 130.336 +-385.558 36.5116 119.836 +-380.628 34.9777 114.802 +-382.904 34.1191 111.984 +-381.227 32.9122 108.022 +-380.467 31.7965 104.361 +-380.152 30.7266 100.849 +-382.313 29.8566 97.9936 +-381.45 28.7516 94.3669 +-379.677 27.59 90.5542 +-381.363 26.6846 87.5824 +-382.051 25.707 84.374 +-382.025 24.6839 81.0159 +-380.499 23.5719 77.3663 +-382.563 22.6846 74.4541 +-380.479 21.5551 70.7468 +-380.716 20.5653 67.4982 +-381.022 19.5811 64.2677 +-379.621 18.515 60.7688 +-380.655 17.5716 57.6723 +-379.881 16.5468 54.3088 +-379.966 15.5637 51.0823 +-379.922 14.5777 47.8461 +-379.947 13.5967 44.6262 +-378.948 12.5836 41.3012 +-379.51 11.6255 38.1564 +-380.54 10.6793 35.051 +-379.65 9.6806 31.7731 +-379.327 8.70092 28.5576 +-379.773 7.73988 25.4034 +-379.491 6.7648 22.203 +-378.281 5.77801 18.9642 +-378.14 4.81184 15.7931 +-143.513 1.46063 4.794 +-377.771 2.88312 9.4628 +-146.078 0.743144 2.4391 +-145.494 0.370059 1.21459 +96.2 0 0 +96.1963 0.251907 0.800807 +96.1853 0.503793 1.60155 +96.167 0.755642 2.40217 +96.1414 1.00743 3.20261 +96.1084 1.25915 4.00282 +96.168 1.51234 4.8077 +96.1204 1.7641 5.60805 +96.8635 2.03248 6.46122 +96.9004 2.2884 7.27478 +96.8301 2.54205 8.08115 +96.7525 2.79551 8.88689 +96.6675 3.04877 9.69199 +96.7739 3.30857 10.5179 +96.4755 3.55454 11.2998 +96.3684 3.80702 12.1024 +96.2541 4.05923 12.9042 +96.0334 4.30669 13.6909 +95.9045 4.558 14.4898 +95.6697 4.804 15.2718 +96.3142 5.09603 16.2002 +95.9657 5.3371 16.9666 +96.0031 5.59963 17.8011 +95.8366 5.85082 18.5997 +95.6628 6.10156 19.3968 +95.4817 6.35182 20.1923 +96.1703 6.66236 21.1795 +95.195 6.85789 21.8011 +95.7682 7.16498 22.7773 +96.5243 7.49061 23.8125 +96.2062 7.73532 24.5905 +95.9776 7.98693 25.3903 +96.6068 8.31242 26.425 +96.4573 8.57357 27.2552 +95.9174 8.79952 27.9735 +95.6578 9.05035 28.7709 +96.2469 9.38393 29.8314 +96.16 9.65466 30.692 +95.6865 9.88655 31.4292 +96.2437 10.2269 32.5111 +96.6004 10.5504 33.5394 +96.2899 10.8029 34.3423 +96.9056 11.1622 35.4844 +96.6704 11.4265 36.3247 +96.3344 11.6792 37.128 +96.0835 11.9425 37.965 +96.561 12.2992 39.0989 +97.025 12.6593 40.2436 +96.6531 12.9128 41.0496 +96.3649 13.1779 41.8922 +95.978 13.4297 42.6929 +96.3961 13.7968 43.8598 +95.9013 14.0355 44.6187 +96.2949 14.4066 45.7984 +95.8723 14.6582 46.5983 +96.2407 15.0334 47.791 +96.5062 15.3975 48.9485 +96.0547 15.6497 49.7501 +96.3831 16.0315 50.964 +95.8262 16.2685 51.7174 +96.1288 16.6539 52.9424 +95.6408 16.905 53.7406 +95.8313 17.2784 54.9278 +96.0925 17.6698 56.172 +96.1687 18.032 57.3236 +96.3153 18.4122 58.532 +95.86 18.68 59.3834 +95.9803 19.0628 60.6004 +96.0855 19.4477 61.8239 +95.3514 19.6645 62.5132 +95.5131 20.0684 63.797 +95.8214 20.5094 65.199 +95.7067 20.8654 66.3306 +95.7394 21.258 67.5787 +95.1175 21.5079 68.3732 +95.7577 22.0484 70.0915 +95.9009 22.483 71.4732 +95.2434 22.7333 72.2688 +95.2004 23.1329 73.5391 +95.1413 23.534 74.8142 +95.1427 23.9558 76.1552 +95.1268 24.3795 77.502 +95.1689 24.8245 78.9166 +95.6416 25.3909 80.7172 +94.9739 25.6604 81.5741 +94.6664 26.0298 82.7483 +95.3685 26.686 84.8343 +95.2417 27.1206 86.216 +94.9529 27.5149 87.4693 +94.9336 27.9938 88.9919 +94.823 28.4535 90.4533 +94.4826 28.8506 91.7155 +95.0293 29.5286 93.8709 +94.6488 29.9287 95.1428 +94.3886 30.3728 96.5545 +94.7853 31.0392 98.6732 +94.4143 31.4647 100.026 +94.6884 32.1153 102.094 +94.3413 32.5657 103.526 +94.2999 33.131 105.323 +93.847 33.5604 106.688 +93.9488 34.1987 108.717 +94.0834 34.863 110.829 +93.6262 35.3194 112.28 +93.088 35.7524 113.656 +93.6275 36.6139 116.395 +93.4619 37.2171 118.312 +93.6251 37.9669 120.696 +93.6342 38.6718 122.937 +93.4351 39.3065 124.955 +91.9443 39.4022 125.259 +95.8926 41.8672 133.095 +115.082 51.1967 162.754 +115.024 52.1467 165.774 +115.355 53.3014 169.444 +115.197 54.2595 172.49 +114.939 55.1955 175.465 +114.741 56.1851 178.611 +114.905 57.3836 182.421 +115.211 58.6907 186.577 +114.95 59.7436 189.924 +113.799 60.3558 191.87 +114.706 62.095 197.399 +109.078 60.2834 191.64 +110.701 62.4742 198.605 +112.667 64.9444 206.457 +110.274 64.9426 206.452 +107.891 64.9336 206.423 +105.297 64.7821 205.941 +103.021 64.8118 206.036 +100.456 64.6438 205.501 +98.5726 64.9045 206.33 +95.9898 64.6942 205.662 +94.0649 64.9153 206.365 +91.2748 64.524 205.121 +91.4231 66.2299 210.544 +90.9919 67.5796 214.835 +90.5991 69.0158 219.4 +90.7388 70.9314 225.49 +90.3185 72.4873 230.436 +90.3275 74.4692 236.736 +90.0277 76.2868 242.514 +89.8894 78.3356 249.028 +89.2895 80.076 254.56 +89.2441 82.4187 262.008 +88.7082 84.4238 268.382 +88.5302 86.8909 276.225 +88.3572 89.5075 284.543 +88.7277 92.8506 295.171 +85.8637 92.9058 295.346 +83.5986 93.62 297.616 +83.4517 96.8277 307.814 +83.8743 100.944 320.9 +82.3829 102.969 327.336 +82.2196 106.864 339.72 +83.3942 112.876 358.832 +81.8548 115.556 367.351 +85.5887 126.234 401.296 +85.139 131.431 417.818 +84.612 136.989 435.487 +84.0631 143.057 454.775 +83.6626 150.019 476.909 +83.2544 157.731 501.425 +81.5465 163.73 520.495 +79.0642 168.811 536.646 +80.7043 183.946 584.761 +76.2902 186.444 592.701 +70.0501 184.49 586.489 +65.2885 186.397 592.552 +59.0985 184.171 585.477 +54.2719 186.142 591.743 +48.1739 183.675 583.899 +43.2699 185.68 590.273 +37.4289 183.63 583.755 +32.4483 185.788 590.618 +26.7038 183.528 583.432 +21.5714 185.36 589.257 +16.0098 183.46 583.215 +10.7943 185.565 589.908 +5.33279 183.366 582.917 +3.77852e-14 185.173 588.662 +-5.32755 183.186 582.345 +-10.7769 185.265 588.954 +-15.9496 182.77 581.022 +-21.5225 184.94 587.922 +-26.6078 182.868 581.335 +-32.3175 185.039 588.237 +-37.2396 182.701 580.804 +-43.0746 184.842 587.609 +-47.8836 182.568 580.381 +-53.871 184.767 587.373 +-58.5138 182.349 579.685 +-64.5672 184.338 586.007 +-69.3143 182.552 580.329 +-75.4859 184.478 586.452 +-79.8559 182.012 578.614 +-86.3012 184.262 585.767 +-90.6959 182.1 578.894 +-97.1927 184.138 585.372 +-101.323 181.687 577.579 +-108.131 184.015 584.98 +-112.312 181.836 578.055 +-119.084 183.833 584.402 +-123.09 181.544 577.126 +-121.628 171.705 545.847 +-122.137 165.316 525.536 +-126.175 163.995 521.339 +-131.453 164.301 522.31 +-140.387 168.958 537.115 +-151.054 175.266 557.167 +-162.616 182.11 578.924 +-875.553 947.363 3011.65 +-171.005 178.952 568.885 +-173.732 175.994 559.482 +-168.991 165.862 527.272 +-148.729 141.545 449.97 +-149.75 138.297 439.643 +-156.019 139.92 444.803 +-1066.79 929.67 2955.41 +-1093.78 926.841 2946.41 +-483.685 398.766 1267.67 +-457.826 367.439 1168.08 +-451.866 353.227 1122.9 +-448.634 341.756 1086.44 +-446.793 331.832 1054.89 +-457.001 331.067 1052.46 +-466.572 329.828 1048.52 +-447.875 309.084 982.573 +-448.427 302.224 960.766 +-450.232 296.453 942.418 +-451.568 290.585 923.764 +-453.845 285.518 907.657 +-456.388 280.786 892.613 +-145.282 87.4377 277.963 +-145.731 85.8239 272.833 +-146.79 84.614 268.987 +-151.123 85.2862 271.123 +-470.383 259.962 826.415 +-111.991 60.6252 192.727 +-111.632 59.2068 188.217 +-112.55 58.4962 185.959 +-113.739 57.9408 184.193 +-115.111 57.4865 182.749 +-116.465 57.0292 181.295 +-118.702 57.0022 181.209 +-120.355 56.6892 180.214 +-122.762 56.724 180.325 +-125.731 57.001 181.205 +-130.516 58.0626 184.58 +-507.613 221.626 704.546 +-510.254 218.666 695.137 +-514.096 216.271 687.522 +-504.966 208.556 662.997 +-508.811 206.334 655.932 +-508.474 202.477 643.672 +-511.116 199.876 635.403 +-136.061 52.2572 166.125 +-137.7 51.946 165.135 +-526.93 195.257 620.718 +-531.443 193.453 614.983 +-165.325 59.1219 187.947 +-163.531 57.4544 182.647 +-166.967 57.6356 183.223 +-171.751 58.2523 185.183 +-549.691 183.191 582.36 +-553.579 181.28 576.285 +-556.579 179.099 569.353 +-560.458 177.221 563.384 +-564.063 175.272 557.187 +-568.017 173.446 551.381 +-571.059 171.358 544.743 +-2337.11 689.161 2190.83 +-579.212 167.841 533.563 +-582.766 165.946 527.539 +-586.326 164.066 521.562 +-590.854 162.463 516.468 +-594.813 160.709 510.891 +-598.79 158.967 505.352 +-602.711 157.215 499.785 +-607.032 155.572 494.562 +-610.997 153.842 489.061 +-615.216 152.179 483.774 +-618.919 150.392 478.095 +-142.122 33.9226 107.839 +-143.024 33.5307 106.594 +-142.645 32.8441 104.411 +-143.994 32.5597 103.507 +-142.685 31.6817 100.716 +-141.821 30.9189 98.2907 +-142.552 30.5114 96.9953 +-146.71 30.8256 97.994 +-146.53 30.2191 96.0661 +-385.42 78.0089 247.989 +-381.753 75.8208 241.033 +-381.26 74.2952 236.183 +-381.635 72.9554 231.924 +-383.827 71.9691 228.788 +-383.518 70.5224 224.19 +-381.954 68.8663 218.925 +-382.305 67.5742 214.817 +-383.13 66.3755 211.006 +-382.347 64.9117 206.353 +-387.457 64.4463 204.874 +-717.906 116.965 371.828 +-736.643 117.531 373.63 +-723.091 112.951 359.071 +-408.616 62.4745 198.606 +-411.043 61.496 195.495 +-408.142 59.7331 189.891 +-406.434 58.1712 184.925 +-407.476 57.016 181.253 +-406.844 55.6357 176.865 +-408.263 54.544 173.394 +-403.873 52.695 167.516 +-405.666 51.6705 164.26 +-406.599 50.5375 160.658 +-405.643 49.1785 156.337 +-403.429 47.6856 151.592 +-404.054 46.5414 147.954 +-406.141 45.5656 144.852 +-405.383 44.2744 140.748 +-405.996 43.1413 137.146 +-406.1 41.9594 133.388 +-401.141 40.2754 128.035 +-386.509 37.6843 119.798 +-381.296 36.075 114.682 +-381.661 35.014 111.309 +-381.227 33.8854 107.721 +-380.467 32.7367 104.07 +-380.73 31.6832 100.72 +-381.444 30.6695 97.498 +-380.579 29.5342 93.8887 +-381.423 28.5365 90.7171 +-380.488 27.4105 87.1377 +-381.758 26.4469 84.0743 +-382.22 25.4268 80.8312 +-380.891 24.2939 77.2299 +-380.309 23.2178 73.8091 +-381.558 22.2554 70.7497 +-380.225 21.1461 67.223 +-379.053 20.0558 63.7572 +-380.509 19.1071 60.7411 +-379.766 18.0489 57.3773 +-380.376 17.0582 54.2278 +-379.966 16.0239 50.9398 +-379.922 15.0088 47.7127 +-380.939 14.0353 44.618 +-380.339 13.0033 41.3372 +-380.703 12.0068 38.1696 +-378.748 10.9433 34.7887 +-379.949 9.97468 31.7094 +-379.327 8.9582 28.478 +-377.877 7.92899 25.2061 +-378.093 6.93918 22.0595 +-379.18 5.96299 18.9562 +-378.04 4.95283 15.745 +-144.912 1.51848 4.82723 +-378.27 2.9723 9.44889 +-143.778 0.753073 2.39401 +-144.195 0.377599 1.20038 +96.3 0 0 +96.0963 0.258851 0.797671 +96.1853 0.518221 1.59694 +96.267 0.778091 2.39775 +96.2413 1.03736 3.19672 +96.2083 1.29656 3.99544 +96.168 1.55565 4.79386 +96.1204 1.81462 5.59191 +95.9657 2.07131 6.3829 +96.0031 2.33214 7.18668 +96.7305 2.61216 8.04959 +95.7571 2.84599 8.77014 +96.6675 3.13608 9.66409 +96.5752 3.39635 10.4661 +97.3688 3.69019 11.3716 +96.3684 3.91604 12.0676 +96.2541 4.17548 12.8671 +96.0334 4.43003 13.6515 +96.7935 4.732 14.582 +96.4587 4.98235 15.3535 +96.3142 5.24197 16.1536 +95.2774 5.45056 16.7964 +96.0031 5.76 17.7499 +95.9346 6.02452 18.5651 +95.6628 6.2763 19.3409 +96.1652 6.58049 20.2783 +96.1703 6.85316 21.1186 +95.9729 7.11194 21.916 +95.7682 7.37017 22.7118 +95.653 7.63556 23.5296 +96.3028 7.96484 24.5443 +95.9776 8.21566 25.3172 +96.4145 8.53343 26.2965 +96.1696 8.7928 27.0957 +95.9174 9.05152 27.893 +95.6578 9.30954 28.6881 +96.2469 9.65268 29.7455 +96.729 9.98992 30.7848 +96.5374 10.2601 31.6174 +96.1494 10.5095 32.3858 +96.6944 10.8631 33.4754 +96.2899 11.1123 34.2434 +96.999 11.4929 35.4163 +96.6704 11.7537 36.2201 +96.3344 12.0137 37.0211 +96.8226 12.379 38.1469 +96.4689 12.6393 38.9491 +96.2913 12.9233 39.8243 +96.6531 13.2826 40.9315 +96.6379 13.5937 41.89 +96.1593 13.8404 42.6503 +96.3961 14.1919 43.7335 +96.7102 14.5593 44.8655 +96.2949 14.8192 45.6666 +96.5851 15.1901 46.8096 +96.152 15.4497 47.6095 +95.7115 15.7081 48.4058 +96.7578 16.2157 49.97 +96.2956 16.4757 50.7711 +95.8262 16.7344 51.5685 +96.0422 17.1154 52.7425 +96.4163 17.5301 54.0203 +95.8313 17.7732 54.7697 +96.0073 18.1597 55.9605 +96.0838 18.5321 57.1082 +95.5563 18.7902 57.9035 +95.86 19.215 59.2125 +95.2298 19.4554 59.9535 +95.4222 19.8665 61.2203 +96.2579 20.42 62.9259 +95.5131 20.6431 63.6134 +95.6586 21.0609 64.9009 +95.7067 21.4629 66.1397 +95.7394 21.8668 67.3842 +95.1974 22.1424 68.2336 +95.7577 22.6798 69.8897 +95.9009 23.1269 71.2675 +95.3217 23.4036 72.12 +95.2004 23.7954 73.3274 +95.1413 24.208 74.5988 +95.1427 24.6419 75.936 +95.1268 25.0777 77.2789 +95.0934 25.5152 78.6271 +95.1174 25.9749 80.0436 +94.8996 26.3747 81.2757 +94.8139 26.817 82.6386 +94.7103 27.2608 84.0063 +95.2417 27.8973 85.9678 +94.9529 28.3029 87.2176 +94.791 28.7522 88.6024 +94.823 29.2684 90.1929 +95.2536 29.919 92.1977 +95.0293 30.3742 93.6007 +94.7864 30.8306 95.0069 +94.3886 31.2426 96.2766 +94.7853 31.9281 98.3892 +94.3474 32.3427 99.6666 +94.6884 33.035 101.8 +94.3413 33.4983 103.228 +94.2349 34.0564 104.947 +94.3612 34.7107 106.964 +93.9488 35.1781 108.404 +94.1463 35.8855 110.584 +94.1865 36.5485 112.627 +93.7037 37.0195 114.079 +93.8101 37.736 116.286 +93.4619 38.2829 117.972 +93.2682 38.9055 119.89 +93.5754 39.7546 122.507 +93.4932 40.4574 124.673 +92.2884 40.6825 125.366 +93.6836 42.0739 129.654 +115.082 52.6629 162.285 +115.024 53.6401 165.296 +115.355 54.8279 168.957 +115.09 55.7613 171.833 +114.886 56.7499 174.88 +115.159 58.0046 178.746 +114.956 59.0535 181.978 +115.262 60.398 186.121 +114.1 61.0002 187.977 +113.11 61.7083 190.159 +109.422 60.9308 187.763 +114.948 65.3462 201.37 +114.927 66.7164 205.592 +113.082 67.0506 206.622 +110.592 66.9951 206.451 +108.292 67.042 206.595 +105.691 66.8871 206.118 +103.409 66.9185 206.215 +101.133 66.9426 206.289 +98.8629 66.9599 206.342 +96.3152 66.7725 205.765 +94.1048 66.8028 205.858 +91.8218 66.7698 205.756 +91.0021 67.813 208.971 +90.5799 69.2002 213.246 +90.6358 71.021 218.857 +90.4521 72.7322 224.13 +90.3185 74.5632 229.773 +89.9855 76.3118 235.161 +90.0277 78.4715 241.816 +89.5638 80.2871 247.411 +89.3847 82.4573 254.099 +89.0587 84.6028 260.71 +88.7383 86.8709 267.7 +88.4424 89.2908 275.157 +88.6128 92.3373 284.545 +88.7001 95.4801 294.23 +85.9973 95.7153 294.954 +83.3397 96.003 295.841 +83.3265 99.4514 306.467 +83.4872 103.356 318.499 +82.8498 106.518 328.244 +82.2871 110.015 339.021 +83.8271 116.712 359.656 +85.8052 124.602 383.971 +85.6485 129.94 400.42 +85.1581 135.225 416.708 +84.612 140.913 434.233 +84.2194 147.428 454.31 +83.6296 154.255 475.349 +83.2388 162.218 499.887 +80.157 165.549 510.154 +81.0266 177.955 548.383 +78.6681 184.44 568.367 +74.5962 187.524 577.872 +68.0125 184.253 567.79 +63.7624 187.253 577.036 +57.287 183.639 565.897 +52.8861 186.584 574.975 +46.8401 183.704 566.099 +42.2306 186.41 574.436 +36.3666 183.528 565.556 +31.6371 186.331 574.195 +25.923 183.264 564.743 +21.0723 186.257 573.967 +15.5517 183.314 564.897 +10.5186 186.003 573.183 +5.17745 183.123 564.308 +3.68423e-14 185.723 572.32 +-5.17484 183.03 564.023 +-10.5011 185.694 572.232 +-15.5229 182.975 563.852 +-20.9851 185.486 571.591 +-25.8663 182.863 563.508 +-31.4905 185.468 571.535 +-36.2201 182.788 563.277 +-41.9725 185.27 570.925 +-46.5498 182.565 562.59 +-52.4678 185.108 570.426 +-56.9228 182.471 562.3 +-63.0516 185.166 570.604 +-67.2993 182.321 561.836 +-73.5603 184.921 569.848 +-77.7153 182.206 561.482 +-84.1301 184.771 569.387 +-88.1831 182.126 561.236 +-94.7524 184.656 569.032 +-98.6159 181.897 560.531 +-105.526 184.725 569.246 +-109.05 181.611 559.65 +-116.165 184.462 568.434 +-119.661 181.541 559.432 +-121.358 176.23 543.067 +-122.332 170.321 524.859 +-126.557 169.203 521.414 +-132.013 169.726 523.025 +-142.323 176.193 542.952 +-151.33 180.614 556.576 +-153.04 176.294 543.263 +-160.129 178.224 549.213 +-170.041 183.038 564.046 +-173.363 180.65 556.686 +-169.254 170.878 526.573 +-148.489 145.363 447.949 +-150.182 142.668 439.644 +-155.797 143.722 442.891 +-1066.79 956.295 2946.9 +-1093.78 953.384 2937.93 +-484.711 411.056 1266.7 +-456.635 376.98 1161.69 +-451.794 363.285 1119.49 +-448.414 351.373 1082.78 +-446.906 341.422 1052.12 +-458.149 341.403 1052.06 +-467.393 339.872 1047.34 +-447.755 317.852 979.488 +-448.793 311.136 958.79 +-450.481 305.111 940.224 +-452.624 299.606 923.26 +-454.232 293.946 905.818 +-456.958 289.188 891.155 +-145.907 90.3285 278.355 +-145.549 88.1719 271.709 +-148.267 87.9132 270.912 +-151.545 87.9737 271.098 +-470.192 267.298 823.701 +-111.506 62.0917 191.34 +-111.386 60.7678 187.261 +-112.55 60.1715 185.423 +-113.942 59.7066 183.991 +-115.111 59.1328 182.223 +-117.092 58.9785 181.747 +-118.702 58.6346 180.687 +-120.839 58.547 180.417 +-122.925 58.4263 180.045 +-127.001 59.2254 182.508 +-504.728 230.969 711.751 +-508.123 228.202 703.224 +-510.942 225.232 694.071 +-515.432 223.043 687.325 +-518.191 220.148 678.403 +-522.254 217.85 671.323 +-515.996 211.357 651.315 +-514.647 207.021 637.952 +-135.938 53.7053 165.497 +-136.393 52.9262 163.096 +-527.748 201.161 619.893 +-529.217 198.159 610.644 +-162.625 59.8217 184.346 +-168.402 60.8601 187.545 +-165.458 58.7504 181.044 +-547.125 190.881 588.217 +-550.092 188.575 581.108 +-554.795 186.881 575.889 +-557.602 184.567 568.758 +-561.491 182.632 562.797 +-564.896 180.558 556.404 +-568.718 178.633 550.472 +-571.484 176.396 543.579 +-571.599 173.379 534.281 +-585.471 174.513 537.775 +-583.564 170.932 526.741 +-587.204 169.017 520.839 +-592.181 167.491 516.138 +-595.556 165.518 510.057 +-599.988 163.846 504.906 +-603.617 161.961 499.095 +-608.629 160.449 494.436 +-612.223 158.565 488.632 +-616.682 156.91 483.532 +-619.852 154.932 477.437 +-141.026 34.6249 106.7 +-142.551 34.3768 105.935 +-142.486 33.7474 103.995 +-144.154 33.5295 103.324 +-142.524 32.5523 100.312 +-142.144 31.8769 98.2313 +-142.552 31.3852 96.7161 +-147.939 31.9738 98.5299 +-659.631 139.933 431.215 +-664.225 138.289 426.149 +-383.587 78.3669 241.494 +-382.434 76.6581 236.228 +-382.309 75.1774 231.665 +-383.063 73.8832 227.677 +-381.898 72.2356 222.6 +-381.525 70.7589 218.049 +-382.736 69.5879 214.441 +-382.437 68.1529 210.019 +-383.827 67.029 206.555 +-382.821 65.4987 201.84 +-718.169 120.358 370.894 +-738.762 121.245 373.627 +-724.599 116.428 358.784 +-734.1 115.453 355.779 +-740.916 114.022 351.369 +-406.525 61.2002 188.593 +-409.503 60.2891 185.786 +-409.832 58.988 181.776 +-410.393 57.7284 177.895 +-405.523 55.7292 171.734 +-408 54.7578 168.741 +-404.562 53.0055 163.341 +-406.599 51.9848 160.195 +-405.272 50.5409 155.746 +-404.266 49.1531 151.469 +-405.267 48.0182 147.972 +-404.268 46.6545 143.77 +-405.665 45.5742 140.44 +-405.996 44.3768 136.751 +-407.14 43.2715 133.345 +-398.96 41.2035 126.972 +-385.939 38.7061 119.276 +-382.059 37.1825 114.581 +-379.94 35.854 110.487 +-380.651 34.803 107.248 +-382.678 33.8699 104.373 +-381.019 32.6152 100.506 +-379.705 31.404 96.7741 +-379.708 30.3104 93.4041 +-381.908 29.3911 90.571 +-381.85 28.2964 87.1977 +-381.758 27.2043 83.8322 +-379.291 25.9545 79.981 +-380.01 24.9319 76.8296 +-381.191 23.9381 73.7672 +-380.086 22.8044 70.2737 +-380.225 21.7517 67.0295 +-379.939 20.6784 63.7223 +-380.114 19.6339 60.5033 +-380.161 18.5851 57.2715 +-378.991 17.4829 53.8749 +-379.471 16.4614 50.727 +-379.525 15.4225 47.5257 +-378.557 14.347 44.2114 +-378.948 13.3268 41.0675 +-378.416 12.2765 37.831 +-379.246 11.2715 34.7341 +-378.753 10.2281 31.5186 +-379.826 9.22684 28.4333 +-379.473 8.19051 25.2397 +-377.694 7.13037 21.9728 +-378.281 6.11922 18.8569 +-379.339 5.11218 15.7536 +-143.912 1.5512 4.78014 +-378.37 3.05823 9.42418 +-144.378 0.777872 2.39708 +-144.195 0.388413 1.19693 +96.2 0 0 +96.1963 0.266314 0.796132 +96.1853 0.532607 1.5922 +96.167 0.79886 2.38815 +97.1408 1.07612 3.21701 +96.2083 1.33255 3.98358 +96.9669 1.61212 4.81933 +96.0206 1.86306 5.56952 +95.9657 2.12881 6.36396 +96.9004 2.41928 7.23231 +96.8301 2.68744 8.03397 +96.7525 2.9554 8.83501 +96.6675 3.22314 9.63541 +96.7739 3.4978 10.4565 +96.4755 3.75783 11.2338 +96.3684 4.02475 12.0318 +96.155 4.28698 12.8157 +96.0334 4.55301 13.611 +96.6947 4.85837 14.5239 +95.5711 5.07352 15.167 +96.3142 5.38748 16.1056 +95.9657 5.64235 16.8675 +96.0031 5.91989 17.6972 +95.8366 6.18545 18.4911 +96.5432 6.50988 19.461 +95.4817 6.7151 20.0744 +96.2678 7.05054 21.0772 +95.9729 7.30937 21.851 +95.7682 7.57477 22.6444 +95.653 7.84752 23.4598 +96.2062 8.17773 24.4469 +95.9776 8.44373 25.2421 +95.7417 8.70912 26.0355 +96.1696 9.03689 27.0153 +96.1086 9.32135 27.8657 +96.7069 9.67291 28.9166 +96.2469 9.92063 29.6572 +95.9704 10.1867 30.4526 +95.6865 10.452 31.2457 +96.1494 10.8012 32.2896 +96.6944 11.1646 33.3761 +96.2899 11.4208 34.1418 +95.8787 11.6755 34.9034 +96.6704 12.08 36.1126 +96.3344 12.3472 36.9112 +96.8226 12.7226 38.0337 +96.4689 12.9902 38.8335 +96.2913 13.2821 39.7061 +96.7445 13.6643 40.8486 +96.3649 13.9316 41.6477 +96.1593 14.2246 42.5237 +96.3961 14.5859 43.6037 +96.7102 14.9634 44.7323 +96.2949 15.2306 45.531 +96.5851 15.6118 46.6707 +96.152 15.8786 47.4681 +96.5945 16.2931 48.7073 +96.0547 16.5448 49.4597 +96.2956 16.933 50.6204 +95.8262 17.199 51.4154 +96.1288 17.6064 52.6333 +96.3301 18.0006 53.8119 +95.8313 18.2666 54.6071 +96.0073 18.6638 55.7944 +96.1687 19.0633 56.9889 +95.5563 19.3118 57.7316 +95.7762 19.7311 58.9852 +95.2298 19.9955 59.7755 +95.2564 20.3826 60.9326 +95.3514 20.7892 62.1483 +95.5131 21.2161 63.4246 +95.6586 21.6456 64.7083 +95.7067 22.0587 65.9434 +95.7394 22.4738 67.1842 +95.1974 22.7571 68.0311 +95.7577 23.3094 69.6822 +95.1129 23.5736 70.472 +95.8695 24.1915 72.3191 +95.2004 24.4559 73.1098 +95.1413 24.88 74.3774 +95.1427 25.3259 75.7106 +95.583 25.8974 77.419 +95.1689 26.2443 78.4559 +95.0425 26.6749 79.7433 +95.5684 27.2979 81.6055 +95.4774 27.7543 82.9699 +95.3685 28.2123 84.3391 +95.0966 28.628 85.5821 +95.0967 29.1326 87.0904 +94.791 29.5504 88.3394 +94.823 30.0809 89.9252 +94.6228 30.5459 91.3153 +94.8903 31.1718 93.1864 +94.6488 31.6404 94.5873 +94.3204 32.0867 95.9216 +94.7177 32.791 98.0269 +94.4143 33.2643 99.4419 +94.0258 33.7144 100.788 +94.2101 34.3803 102.778 +94.2349 35.0018 104.636 +93.847 35.4798 106.065 +94.0124 36.179 108.155 +94.1463 36.8817 110.256 +93.5639 37.3147 111.55 +93.5805 37.9974 113.591 +93.6884 38.7331 115.79 +93.5822 39.3964 117.773 +93.6846 40.1638 120.067 +93.3991 40.7811 121.913 +93.4351 41.5545 124.225 +92.69 41.9936 125.538 +92.3242 42.6147 127.394 +115.082 54.1248 161.803 +114.968 55.1025 164.726 +115.3 56.3236 168.376 +115.036 57.2826 171.243 +114.834 58.2983 174.28 +115.106 59.5879 178.135 +114.905 60.6655 181.356 +114.653 61.7466 184.588 +114.9 63.1333 188.734 +114.932 64.4428 192.648 +114.609 65.5909 196.08 +114.518 66.9093 200.022 +115.208 68.7362 205.483 +113.913 69.4186 207.523 +111.046 69.1375 206.683 +108.694 69.1584 206.746 +105.998 68.9434 206.103 +104.184 69.2917 207.144 +101.428 69.0024 206.279 +99.2361 69.0785 206.507 +96.6813 68.8869 205.934 +94.4637 68.9192 206.031 +92.2125 68.9151 206.018 +90.5812 69.3729 207.387 +90.6923 71.2093 212.877 +90.6358 72.9925 218.207 +90.8104 75.0472 224.35 +90.6337 76.9005 229.89 +90.1223 78.5495 234.82 +89.794 80.4408 240.474 +89.8243 82.7559 247.395 +89.5434 84.8966 253.794 +88.9351 86.8308 259.576 +88.6781 89.2218 266.724 +88.4717 91.7999 274.431 +88.5276 94.8092 283.427 +88.3418 97.734 292.171 +86.4516 98.8919 295.632 +83.4174 98.76 295.238 +83.5268 102.458 306.292 +83.3179 106.009 316.909 +83.1999 109.938 328.653 +82.0396 112.729 336.998 +86.3378 123.544 369.328 +85.9715 128.309 383.573 +85.5687 133.423 398.86 +85.1008 138.886 415.192 +84.612 144.824 432.945 +84.0978 151.301 452.307 +83.7287 158.725 474.499 +82.4253 165.092 493.533 +81.5169 173.032 517.269 +81.7085 184.434 551.356 +76.2012 183.616 548.91 +72.2198 186.59 557.802 +65.8277 183.284 547.919 +61.5986 185.921 555.8 +55.4851 182.8 546.471 +51.2824 185.949 555.885 +45.3415 182.763 546.361 +40.9191 185.635 554.946 +35.2067 182.606 545.892 +30.6636 185.611 554.876 +25.1553 182.773 546.392 +20.4127 185.436 554.351 +15.0491 182.314 545.018 +10.1992 185.362 554.13 +5.01252 182.211 544.71 +3.57646e-14 185.295 553.93 +-5.01165 182.179 544.615 +-10.194 185.267 553.846 +-15.0203 181.965 543.975 +-20.3639 184.992 553.024 +-25.055 182.044 544.212 +-30.538 184.851 552.602 +-35.0297 181.688 543.147 +-40.7238 184.749 552.297 +-45.1297 181.909 543.808 +-50.9338 184.685 552.105 +-55.1305 181.632 542.979 +-61.1178 184.469 551.462 +-65.1484 181.393 542.266 +-71.3667 184.386 551.213 +-75.1961 181.194 541.669 +-81.5833 184.151 550.511 +-85.4191 181.314 542.03 +-91.9522 184.173 550.576 +-95.6781 181.377 542.218 +-102.331 184.105 550.371 +-105.824 181.132 541.484 +-112.539 183.666 549.059 +-116.311 181.358 542.159 +-119.778 178.764 534.405 +-122.894 175.855 525.708 +-127.165 174.735 522.361 +-132.527 175.116 523.501 +-144.863 184.316 551.003 +-149.277 183.109 547.396 +-150.581 178.277 532.949 +-151.177 172.931 516.969 +-903.071 999.084 2986.71 +-930.519 996.546 2979.12 +-169.283 175.651 525.1 +-148.579 149.49 446.892 +-151.357 147.775 441.766 +-1039.59 985.636 2946.51 +-1066.66 982.721 2937.79 +-1093.65 979.732 2928.86 +-485.771 423.393 1265.71 +-455.585 386.553 1155.58 +-451.185 372.868 1114.67 +-448.011 360.8 1078.59 +-448.292 351.988 1052.25 +-460.024 352.318 1053.24 +-469.073 350.563 1047.99 +-448.114 326.936 977.358 +-449.647 320.379 957.756 +-451.02 313.956 938.555 +-452.751 308.009 920.778 +-455.136 302.707 904.926 +-457.484 297.557 889.532 +-145.817 92.7792 277.359 +-146.23 91.0433 272.169 +-149.376 91.029 272.127 +-152.297 90.8641 271.633 +-113.755 66.4632 198.688 +-111.458 63.7874 190.689 +-111.682 62.6206 187.201 +-112.75 61.9519 185.202 +-114.145 61.4732 183.771 +-115.523 60.9919 182.332 +-117.249 60.6966 181.449 +-119.232 60.5313 180.955 +-121.376 60.4396 180.681 +-123.361 60.261 180.147 +-128.27 61.4779 183.785 +-505.51 237.749 710.739 +-509.199 235.034 702.621 +-512.032 231.978 693.486 +-515.955 229.467 685.98 +-519.955 227.029 678.691 +-523.325 224.357 670.703 +-525.926 221.405 661.879 +-530.17 219.185 655.243 +-524.79 213.085 637.005 +-537.106 214.206 640.357 +-138.01 54.0652 161.625 +-137.329 52.8489 157.989 +-532.292 201.239 601.595 +-535.34 198.842 594.427 +-543.414 198.31 592.837 +-547.258 196.228 586.613 +-550.895 194.092 580.229 +-554.862 192.092 574.249 +-558.829 190.108 568.317 +-563.005 188.209 562.64 +-565.382 185.73 555.23 +-569.979 183.999 550.056 +-572.403 181.584 542.837 +-572.669 178.525 533.692 +-591.801 181.296 541.976 +-584.942 176.092 526.418 +-587.935 173.925 519.939 +-592.697 172.291 515.054 +-596.671 170.431 509.495 +-601.561 168.836 504.726 +-605.277 166.914 498.982 +-609.389 165.109 493.585 +-613.142 163.212 487.913 +-617.608 161.508 482.82 +-622.028 159.792 477.69 +-141.183 35.6258 106.501 +-143.418 35.5458 106.262 +-143.518 34.9352 104.437 +-143.834 34.3838 102.789 +-142.443 33.4372 99.9587 +-142.872 32.9296 98.4414 +-144.424 32.6803 97.696 +-148.021 32.8795 98.2915 +-660.537 144.015 430.526 +-383.513 82.0625 245.322 +-383.504 80.5249 240.725 +-380.924 78.4752 234.598 +-381.382 77.0769 230.417 +-380.35 75.3962 225.393 +-383.518 74.5558 222.881 +-382.382 72.8865 217.891 +-383.08 71.584 213.997 +-384.775 70.473 210.676 +-381.651 68.4992 204.775 +-381.159 67.0247 200.367 +-720.103 124.033 370.789 +-740.528 124.909 373.408 +-2906.47 479.975 1434.86 +-734.991 118.802 355.153 +-741.901 117.343 350.792 +-409.76 63.3997 189.53 +-406.254 61.471 183.764 +-406.842 60.183 179.914 +-406.844 58.8176 175.832 +-409.725 57.8697 172.999 +-408.367 56.3286 168.392 +-404.378 54.4522 162.782 +-407.154 53.5008 159.938 +-404.716 51.8725 155.07 +-406.22 50.7615 151.749 +-405.081 49.3283 147.464 +-406.141 48.1717 144.007 +-405.571 46.8285 139.991 +-405.147 45.5132 136.059 +-401.751 43.8839 131.189 +-392.606 41.6728 124.579 +-386.034 39.7904 118.951 +-381.487 38.1573 114.069 +-380.896 36.9423 110.437 +-380.939 35.7961 107.011 +-381.621 34.714 103.776 +-381.405 33.5546 100.31 +-381.058 32.3906 96.8301 +-381.934 31.3345 93.673 +-382.297 30.2376 90.3939 +-380.488 28.9782 86.6289 +-380.881 27.8953 83.3915 +-380.17 26.7368 79.9283 +-380.597 25.6635 76.7198 +-380.701 24.571 73.4537 +-380.086 23.4375 70.0651 +-380.815 22.3902 66.9342 +-381.318 21.3296 63.7637 +-381.002 20.226 60.4647 +-380.161 19.101 57.1016 +-380.87 18.0573 53.9813 +-380.362 16.9581 50.6953 +-379.922 15.8672 47.4341 +-378.557 14.7453 44.0802 +-379.843 13.729 41.0422 +-380.206 12.677 37.8971 +-379.644 11.5966 34.6674 +-377.956 10.4899 31.3589 +-379.826 9.48298 28.3489 +-378.775 8.40236 25.1184 +-378.593 7.34572 21.9597 +-378.281 6.28909 18.8009 +-378.939 5.24854 15.6902 +-145.411 1.61087 4.8156 +-380.57 3.16139 9.45082 +-144.278 0.79891 2.3883 +-143.195 0.396426 1.18509 +96.2 0 0 +96.9963 0.275758 0.800297 +97.0852 0.552064 1.60218 +96.0671 0.819514 2.37837 +97.0408 1.10396 3.20388 +96.2083 1.36842 3.9714 +96.0682 1.64017 4.76007 +96.9189 1.93112 5.60444 +96.0654 2.18839 6.35109 +96.8007 2.48186 7.20278 +96.8301 2.7598 8.0094 +96.7525 3.03497 8.80799 +96.6675 3.30992 9.60594 +96.5752 3.58461 10.4031 +96.674 3.86696 11.2226 +96.5667 4.14165 12.0198 +96.2541 4.40692 12.7896 +96.0334 4.67559 13.5694 +95.8058 4.94331 14.3463 +96.4587 5.25853 15.2611 +96.3142 5.53253 16.0564 +96.1623 5.80612 16.8503 +96.0031 6.07928 17.6431 +95.8366 6.35198 18.4345 +95.4672 6.61065 19.1852 +95.4817 6.89589 20.0131 +95.2934 7.16707 20.8 +95.9729 7.50616 21.7842 +95.8652 7.78659 22.598 +95.5562 8.05066 23.3644 +96.2062 8.3979 24.3721 +95.9776 8.67106 25.1649 +95.5494 8.92565 25.9038 +96.3614 9.2987 26.9864 +95.9174 9.55325 27.7252 +96.5162 9.91372 28.7713 +96.2469 10.1877 29.5665 +95.8755 10.4506 30.3295 +96.5374 10.8288 31.4272 +96.0552 11.0811 32.1593 +96.6004 11.4541 33.2417 +96.2899 11.7282 34.0374 +96.9056 12.1183 35.1693 +96.6704 12.4053 36.0022 +96.2417 12.6674 36.763 +96.8226 13.0652 37.9174 +96.4689 13.3399 38.7148 +96.1996 13.6267 39.547 +96.7445 14.0321 40.7237 +96.3649 14.3066 41.5203 +96.1593 14.6076 42.3937 +96.3961 14.9786 43.4704 +95.9912 15.252 44.264 +96.2949 15.6406 45.3918 +96.6742 16.0469 46.5709 +96.2407 16.3211 47.3667 +95.7998 16.5941 48.159 +96.0547 16.9902 49.3084 +96.2956 17.3889 50.4657 +95.7391 17.646 51.2117 +95.436 17.9501 52.0942 +96.4163 18.5018 53.6953 +95.7456 18.7416 54.3914 +96.0925 19.1833 55.6733 +96.1687 19.5766 56.8146 +95.5563 19.8317 57.5551 +95.6084 20.2268 58.7017 +95.9803 20.6957 60.0623 +95.2564 20.9313 60.7463 +95.3514 21.3489 61.9582 +95.5131 21.7874 63.2306 +94.9259 22.0581 64.0163 +95.6258 22.6335 65.6861 +95.8197 23.0982 67.035 +95.1974 23.3698 67.823 +95.8371 23.9568 69.5267 +95.1129 24.2083 70.2565 +95.9478 24.8631 72.1569 +95.6667 25.2374 73.2432 +95.1413 25.5498 74.15 +95.1427 26.0078 75.4791 +95.8112 26.6581 77.3665 +95.1689 26.9509 78.216 +95.6416 27.5658 80.0006 +95.5684 28.0328 81.356 +94.8139 28.3034 82.1414 +95.3685 28.9718 84.0812 +95.2417 29.4437 85.4505 +95.0967 29.917 86.8241 +94.791 30.346 88.0692 +94.823 30.8908 89.6502 +94.6228 31.3683 91.0361 +95.0293 32.0579 93.0375 +94.6488 32.4923 94.298 +94.3886 32.9744 95.6973 +94.7853 33.6979 97.7972 +94.4812 34.184 99.2078 +94.092 34.6466 100.55 +94.4069 35.3799 102.678 +94.17 35.9194 104.244 +93.847 36.4351 105.741 +94.0124 37.1531 107.825 +94.1463 37.8747 109.919 +93.6262 38.3448 111.283 +93.7652 39.0973 113.467 +93.6275 39.7501 115.362 +93.7026 40.5092 117.565 +93.5656 41.193 119.549 +93.3991 41.8791 121.54 +93.5512 42.7264 123.999 +93.1488 43.3376 125.773 +92.2676 43.735 126.926 +106.75 51.5578 149.629 +115.024 56.6134 164.302 +115.355 57.867 167.94 +115.036 58.8248 170.72 +115.31 60.1165 174.468 +115.106 61.1922 177.59 +114.905 62.2988 180.802 +114.551 63.353 183.861 +114.75 64.7483 187.911 +114.784 66.0928 191.813 +114.657 67.3854 195.564 +114.518 68.7107 199.41 +115.021 70.4718 204.521 +114.375 71.5765 207.727 +111.455 71.2602 206.809 +109.14 71.312 206.96 +106.787 71.3266 207.002 +104.485 71.3628 207.107 +101.893 71.1849 206.591 +99.6093 71.2051 206.649 +97.3321 71.2175 206.685 +95.1017 71.2527 206.787 +92.5251 71.0106 206.085 +90.2368 70.9699 205.967 +90.6923 73.1265 212.226 +90.6358 74.9577 217.54 +90.8104 77.0677 223.664 +90.3185 78.6963 228.39 +90.1223 80.6643 234.101 +89.6939 82.5143 239.471 +89.6615 84.8299 246.191 +89.0991 86.7497 251.762 +89.0896 89.3236 259.232 +88.7383 91.6861 266.089 +88.6763 94.4894 274.224 +88.6128 97.4556 282.833 +88.5898 100.647 292.096 +87.1464 102.371 297.098 +83.728 101.796 295.431 +83.677 105.405 305.904 +83.2453 108.769 315.665 +83.6435 113.499 329.394 +83.5918 117.955 342.324 +86.3378 126.87 368.199 +85.8675 131.604 381.937 +85.5288 136.951 397.455 +85.1771 142.753 414.293 +84.4479 148.435 430.784 +83.9763 155.15 450.272 +83.0355 161.648 469.131 +80.7202 166.029 481.845 +82.5663 179.978 522.326 +79.8993 185.206 537.5 +73.7081 182.39 529.327 +69.7336 185.018 536.953 +63.7221 182.199 528.772 +59.6126 184.77 536.235 +53.8078 182.047 528.331 +49.5219 184.4 535.16 +43.9136 181.773 527.536 +39.6566 184.751 536.178 +34.12 181.735 527.426 +29.664 184.395 535.145 +24.3396 181.608 527.058 +19.7601 184.34 534.987 +14.5832 181.426 526.529 +9.86061 184.034 534.097 +4.86068 181.449 526.595 +3.45584e-14 183.866 533.611 +-4.85544 181.253 526.027 +-9.85537 183.936 533.813 +-14.5518 181.035 525.395 +-19.7077 183.852 533.569 +-24.2611 181.022 525.358 +-29.5698 183.809 533.446 +-34.004 181.117 525.632 +-39.4124 183.613 532.877 +-43.7253 180.993 525.274 +-49.2953 183.556 532.711 +-53.4723 180.912 525.038 +-59.2049 183.507 532.568 +-63.1221 180.483 523.793 +-69.0755 183.272 531.885 +-72.9902 180.614 524.172 +-78.8833 182.851 530.665 +-82.7289 180.332 523.355 +-88.933 182.922 530.87 +-92.6082 180.284 523.216 +-98.9795 182.869 530.718 +-102.416 180.018 522.444 +-109.143 182.918 530.861 +-112.503 180.143 522.806 +-118.967 182.334 529.164 +-122.829 180.494 523.824 +-127.907 180.487 523.804 +-128.372 174.193 505.537 +-140.847 184.031 534.089 +-140.463 176.937 513.502 +-150.892 183.454 532.415 +-150.161 176.394 511.926 +-154.467 175.491 509.304 +-162.088 178.262 517.347 +-170.073 181.222 525.936 +-148.368 153.297 444.894 +-152.376 152.776 443.383 +-173.344 168.773 489.807 +-1066.79 1009.3 2929.17 +-1093.65 1006.11 2919.9 +-204.323 182.88 530.748 +-455.094 396.534 1150.81 +-450.54 382.36 1109.67 +-448.048 370.547 1075.39 +-450.202 363.005 1053.5 +-462.358 363.637 1055.34 +-469.971 360.689 1046.78 +-448.792 336.246 975.844 +-449.688 329.037 954.921 +-451.435 322.705 936.546 +-453.174 316.597 918.819 +-455.782 311.298 903.439 +-457.747 305.745 887.323 +-146.085 95.4521 277.018 +-146.73 93.8138 272.264 +-149.884 93.7978 272.217 +-152.907 93.6844 271.888 +-114.804 68.8824 199.908 +-111.652 65.6188 190.437 +-111.78 64.3633 186.793 +-113.1 63.8173 185.209 +-114.551 63.353 183.861 +-115.987 62.8852 182.504 +-117.928 62.692 181.943 +-119.126 62.1056 180.241 +-121.591 62.1767 180.447 +-124.123 62.2659 180.706 +-129.153 63.5677 184.484 +-506.908 244.826 710.526 +-510.445 241.952 702.187 +-513.121 238.731 692.837 +-517.522 236.361 685.96 +-520.837 233.537 677.763 +-523.86 230.633 669.337 +-527.31 227.964 661.591 +-531.388 225.604 654.74 +-534.517 222.878 646.829 +-538.351 220.483 639.879 +-541.153 217.704 631.813 +-545.183 215.453 625.281 +-137.814 53.5049 155.28 +-136.969 52.2442 151.622 +-539.74 202.272 587.029 +-543.15 199.998 580.429 +-550.092 199.027 577.611 +-552.498 196.423 570.053 +-559.784 195.56 567.548 +-562.936 193.252 560.85 +-566.841 191.222 554.96 +-570.891 189.255 549.251 +-576.433 187.786 544.987 +-575.522 184.245 534.711 +-592.52 186.404 540.976 +-586.03 181.169 525.784 +-589.544 179.097 519.769 +-594.098 177.348 514.693 +-598.083 175.434 509.139 +-602.76 173.727 504.186 +-606.711 171.815 498.635 +-610.758 169.935 493.181 +-615.057 168.129 487.94 +-618.843 166.188 482.306 +-622.649 164.258 476.705 +-142.356 36.8889 107.058 +-142.945 36.3826 105.589 +-143.2 35.7962 103.887 +-142.077 34.8782 101.223 +-142.283 34.2987 99.5406 +-142.711 33.7777 98.0288 +-147.029 34.1654 99.1539 +-148.758 33.9328 98.4788 +-662.35 148.299 430.388 +-383.513 84.2719 244.571 +-382.503 82.4769 239.362 +-381.679 80.7477 234.343 +-382.9 79.4671 230.627 +-381.028 77.5642 225.105 +-383.176 76.495 222.002 +-383.154 75.0001 217.663 +-383.597 73.6103 213.63 +-383.563 72.1424 209.369 +-387.134 71.354 207.081 +-715.439 129.193 374.94 +-726.694 128.538 373.039 +-723.487 125.32 363.7 +-732.316 124.191 360.424 +-736.862 122.311 354.968 +-744.048 120.852 350.732 +-408.052 64.8356 188.164 +-406.073 63.098 183.121 +-410.286 62.3265 180.882 +-405.661 60.2256 174.785 +-405.157 58.7655 170.547 +-406.166 57.5334 166.972 +-406.863 56.2619 163.282 +-407.985 55.0533 159.774 +-406.477 53.501 155.269 +-402.964 51.7106 150.073 +-405.174 50.6681 147.047 +-409.138 49.8338 144.626 +-405.477 48.0782 139.531 +-405.996 46.8367 135.928 +-407.708 45.7336 132.727 +-387.959 42.2882 122.728 +-384.322 40.6805 118.062 +-381.582 39.1944 113.749 +-381.757 38.0226 110.348 +-380.46 36.7136 106.549 +-381.813 35.6666 103.51 +-381.116 34.4319 99.9272 +-380.575 33.2207 96.4121 +-381.063 32.1048 93.1735 +-382.297 31.0517 90.1175 +-380.975 29.7964 86.4744 +-379.907 28.573 82.9237 +-381.146 27.5271 79.8885 +-378.25 26.192 76.0136 +-380.407 25.2131 73.1726 +-380.184 24.0747 69.8689 +-379.34 22.9039 66.4711 +-380.53 21.8586 63.4374 +-381.002 20.7706 60.2798 +-379.766 19.5949 56.8679 +-379.881 18.4953 53.6765 +-378.183 17.3149 50.2508 +-379.922 16.2944 47.289 +-378.557 15.1422 43.9454 +-379.445 14.0839 40.8739 +-379.808 13.0047 37.7417 +-379.246 11.8963 34.5251 +-378.753 10.795 31.3289 +-379.826 9.73829 28.2622 +-379.274 8.63995 25.0746 +-379.491 7.56141 21.9445 +-379.679 6.48226 18.8126 +-379.938 5.40408 15.6836 +-145.911 1.65992 4.81737 +-377.771 3.22263 9.35263 +-144.378 0.82099 2.38265 +-144.195 0.409943 1.18972 +97.1 0 0 +96.1963 0.280633 0.791198 +96.0854 0.560663 1.58069 +96.9668 0.848813 2.39308 +96.1414 1.12232 3.16419 +96.2083 1.4042 3.9589 +96.9669 1.6988 4.78947 +96.9189 1.9816 5.58679 +95.9657 2.24327 6.32452 +96.8007 2.54674 7.1801 +96.8301 2.83194 7.98418 +95.8567 3.08547 8.69896 +96.6675 3.39644 9.57569 +96.5752 3.67831 10.3704 +96.674 3.96804 11.1872 +96.3684 4.24116 11.9572 +96.2541 4.52213 12.7494 +96.0334 4.79781 13.5266 +95.9045 5.07778 14.3159 +96.5574 5.40151 15.2286 +96.3142 5.67716 16.0058 +96.1623 5.9579 16.7973 +95.8068 6.22546 17.5516 +95.8366 6.51803 18.3765 +95.6628 6.79736 19.164 +95.4817 7.07616 19.95 +96.1703 7.42212 20.9254 +95.9729 7.70238 21.7156 +95.8652 7.99014 22.5268 +96.4275 8.33643 23.5031 +96.2062 8.61743 24.2954 +95.9776 8.89773 25.0856 +95.7417 9.1774 25.8741 +96.3614 9.54177 26.9014 +96.1086 9.82254 27.693 +95.6578 10.0824 28.4257 +96.2469 10.454 29.4734 +95.9704 10.7344 30.2639 +95.6865 11.014 31.0521 +96.2437 11.3931 32.121 +95.8486 11.662 32.8791 +96.2899 12.0348 33.9302 +96.9056 12.4351 35.0586 +96.6704 12.7296 35.8888 +97.0761 13.1112 36.9649 +96.8226 13.4067 37.798 +96.561 13.7017 38.6297 +96.1996 13.9829 39.4224 +95.9223 14.2766 40.2504 +96.3649 14.6806 41.3895 +95.978 14.9612 42.1806 +95.7643 15.2694 43.0494 +96.7102 15.768 44.4551 +96.2949 16.0495 45.2489 +96.5851 16.4512 46.3814 +96.152 16.7323 47.174 +96.5062 17.1534 48.3612 +96.1426 17.4503 49.1981 +96.2956 17.8435 50.3067 +95.8262 18.1237 51.0968 +96.0422 18.5363 52.26 +96.3301 18.9685 53.4784 +95.8313 19.2488 54.2687 +96.0073 19.6673 55.4487 +96.1687 20.0884 56.6357 +95.5563 20.3502 57.3738 +95.7762 20.792 58.6196 +95.9803 21.2367 59.8732 +95.9196 21.628 60.9765 +95.3514 21.907 61.7631 +95.5131 22.3569 63.0315 +95.6586 22.8094 64.3072 +95.6258 23.2251 65.4793 +95.7394 23.6822 66.7678 +95.1974 23.9807 67.6095 +95.2024 24.4203 68.8488 +95.9009 25.0469 70.6156 +95.2434 25.3257 71.4016 +95.2004 25.7709 72.6567 +95.1413 26.2177 73.9165 +95.1427 26.6877 75.2414 +95.8112 27.355 77.1228 +94.9425 27.5896 77.7842 +95.6416 28.2864 79.7487 +95.5684 28.7656 81.0998 +95.33 29.2014 82.3284 +95.2223 29.6836 83.6878 +95.2417 30.2134 85.1814 +94.9529 30.6526 86.4198 +94.9336 31.1861 87.924 +94.6816 31.651 89.2346 +94.6228 32.1883 90.7494 +94.8903 32.8478 92.6089 +94.7864 33.3901 94.1378 +94.3886 33.8364 95.3959 +94.1097 34.3325 96.7946 +94.4143 35.0529 98.8256 +94.6884 35.7776 100.869 +94.2757 36.2543 102.213 +93.9102 36.7567 103.629 +93.847 37.3875 105.408 +93.9488 38.0986 107.412 +94.0834 38.8387 109.499 +93.5639 39.3211 110.859 +93.5805 40.0405 112.887 +93.6275 40.7893 114.998 +93.6424 41.5414 117.119 +94.1604 42.5386 119.93 +93.5166 43.028 121.31 +93.6674 43.8978 123.762 +93.4356 44.6075 125.763 +91.7578 44.6302 125.827 +97.3555 48.2496 136.032 +114.913 58.0376 163.627 +114.864 59.1277 166.7 +115.466 60.5882 170.818 +114.834 61.4329 173.2 +114.584 62.5067 176.227 +114.905 63.9274 180.232 +115.11 65.3257 184.175 +114.7 66.4118 187.237 +114.784 67.8205 191.208 +114.609 69.1176 194.865 +114.47 70.4775 198.699 +114.692 72.1074 203.295 +114.006 73.2103 206.404 +111.954 73.4506 207.082 +109.497 73.4155 206.983 +107.182 73.4617 207.113 +104.873 73.5001 207.221 +102.274 73.3182 206.708 +99.9825 73.3403 206.771 +97.6981 73.3543 206.81 +95.4605 73.3911 206.914 +92.8768 73.1437 206.216 +90.5812 73.103 206.101 +90.6923 75.0382 211.557 +90.7091 76.9794 217.03 +90.7746 79.0513 222.872 +90.2835 80.7221 227.582 +90.0881 82.7415 233.276 +89.794 84.766 238.983 +89.4987 86.8894 244.97 +89.2261 89.1445 251.328 +89.2132 91.7857 258.774 +88.6781 94.0191 265.071 +88.5302 96.7997 272.91 +88.3572 99.7147 281.129 +88.1764 102.797 289.817 +87.4404 105.401 297.161 +84.168 105.006 296.048 +83.6019 108.064 304.667 +82.955 111.223 313.573 +86.8884 120.984 341.095 +86.7411 125.598 354.102 +86.381 130.252 367.224 +85.8883 135.077 380.827 +85.5887 140.629 396.48 +85.2153 146.551 413.174 +84.6848 152.743 430.633 +84.1499 159.535 449.783 +82.1937 164.193 462.913 +81.1426 171.261 482.841 +82.0786 183.592 517.606 +77.9091 185.314 522.46 +72.4159 183.877 518.41 +67.8447 184.711 520.762 +62.4542 183.242 516.619 +57.9506 184.315 519.643 +52.8206 183.379 517.005 +48.2669 184.425 519.954 +43.129 183.192 516.479 +38.5544 184.312 519.635 +33.5401 183.316 516.827 +28.8947 184.308 519.625 +23.9252 183.183 516.453 +19.2471 184.248 519.456 +14.3109 182.693 515.072 +9.60755 183.998 518.751 +4.76992 182.715 515.135 +3.36338e-14 183.625 517.699 +-4.76731 182.615 514.852 +-9.59708 183.797 518.185 +-14.3083 182.66 514.978 +-19.1598 183.413 517.102 +-23.8424 182.548 514.664 +-28.7795 183.573 517.554 +-33.3325 182.181 513.63 +-38.38 183.478 517.284 +-42.9093 182.259 513.848 +-48.0315 183.526 517.419 +-52.4755 182.18 513.627 +-57.6056 183.217 516.55 +-62.1146 182.245 513.81 +-67.1988 182.953 515.805 +-71.6197 181.855 512.71 +-76.9071 182.93 515.741 +-81.2804 181.806 512.572 +-86.5865 182.751 515.235 +-90.9577 181.7 512.272 +-96.4616 182.876 515.589 +-100.594 181.438 511.533 +-106.223 182.68 515.034 +-110.53 181.609 512.016 +-116.119 182.62 514.867 +-120.514 181.72 512.329 +-123.903 179.407 505.808 +-127.695 177.804 501.287 +-131.896 176.84 498.572 +-140.739 181.919 512.889 +-148.381 185.117 521.907 +-150.375 181.263 511.041 +-150.167 175.065 493.567 +-154.93 174.845 492.946 +-957.897 1047.37 2952.89 +-148.458 157.4 443.762 +-153.581 158.01 445.482 +-175.914 175.753 495.505 +-1066.66 1035.56 2919.59 +-1093.65 1032.41 2910.71 +-197.619 181.503 511.718 +-202.21 180.795 509.721 +-210.004 182.882 515.605 +-447.828 380.046 1071.48 +-452.188 374.136 1054.81 +-463.698 374.223 1055.06 +-468.76 369.165 1040.8 +-448.912 345.13 973.035 +-449.851 337.759 952.254 +-451.559 331.232 933.854 +-453.512 325.116 916.608 +-455.653 319.345 900.338 +-145.276 99.5713 280.724 +-146.308 98.0967 276.567 +-147.138 96.5343 272.162 +-150.853 96.8722 273.115 +-153.846 96.7238 272.696 +-113.898 70.1251 197.706 +-111.7 67.3632 189.919 +-111.928 66.133 186.451 +-113.55 65.7459 185.359 +-114.805 65.1532 183.688 +-116.502 64.8156 182.737 +-118.032 64.3877 181.53 +-120.186 64.2961 181.272 +-122.343 64.1968 180.992 +-124.94 64.3142 181.323 +-129.54 65.4247 184.454 +-507.579 251.558 709.225 +-510.955 248.525 700.674 +-514.441 245.601 692.43 +-518.103 242.812 684.567 +-520.837 239.642 675.629 +-524.931 237.146 668.592 +-528.033 234.244 660.411 +-532.24 231.872 653.725 +-535.071 228.941 645.46 +-539.284 226.639 638.97 +-542.474 223.94 631.361 +-545.946 221.395 624.184 +-549.198 218.795 616.855 +-553.525 216.651 610.81 +-135.87 52.2494 147.308 +-137.361 51.9014 146.327 +-547.683 203.336 573.271 +-551.417 201.164 567.147 +-555.692 199.205 561.625 +-561.147 197.673 557.306 +-567.675 196.51 554.026 +-570.33 194.012 546.984 +-584.07 195.248 550.469 +-581.014 190.866 538.114 +-587.988 189.814 535.148 +-586.03 185.905 524.129 +-590.641 184.12 519.096 +-594.762 182.187 513.646 +-599.049 180.311 508.355 +-602.984 178.335 502.785 +-606.711 176.306 497.065 +-610.53 174.312 491.444 +-615.287 172.589 486.585 +-619.769 170.788 481.506 +-623.66 168.826 475.976 +-142.748 37.9575 107.015 +-142.709 37.2719 105.082 +-143.914 36.9152 104.076 +-142.796 35.9712 101.415 +-142.443 35.2351 99.3392 +-142.225 34.5431 97.3883 +-147.111 35.0779 98.8963 +-148.594 34.7818 98.0612 +-662.597 152.232 429.193 +-385.502 86.9235 245.066 +-381.002 84.301 237.672 +-378.995 82.2758 231.963 +-380.623 81.0594 228.533 +-382.724 79.9462 225.395 +-382.324 78.3199 220.81 +-384.354 77.2017 217.657 +-383.511 75.5175 212.909 +-381.917 73.7107 207.815 +-385.655 72.9395 205.641 +-715.876 132.652 373.988 +-731.703 132.807 374.427 +-722.516 128.423 362.068 +-732.937 127.546 359.593 +-410.398 69.9025 197.078 +-409.074 68.1806 192.223 +-411.198 67.0433 189.017 +-409.503 65.2943 184.086 +-406.842 63.4189 178.799 +-407.663 62.1052 175.095 +-406.254 60.4648 170.47 +-406.991 59.1574 166.784 +-405.114 57.4846 162.068 +-407.985 56.4925 159.271 +-404.438 54.6238 154.003 +-405.476 53.393 150.532 +-403.307 51.7529 145.909 +-405.485 50.6799 142.883 +-405.571 49.3464 139.124 +-406.09 48.0721 135.531 +-405.533 46.6788 131.603 +-384.261 42.9802 121.175 +-383.751 41.6818 117.515 +-381.201 40.1788 113.277 +-382.235 39.0653 110.138 +-381.706 37.797 106.562 +-381.813 36.5989 103.185 +-380.538 35.2782 99.4608 +-380.188 34.0543 96.0104 +-381.16 32.9524 92.9037 +-380.55 31.7179 89.4233 +-381.072 30.5832 86.224 +-381.758 29.4628 83.0654 +-380.463 28.1961 79.4941 +-380.891 27.0643 76.3032 +-381.877 25.9721 73.224 +-380.479 24.7232 69.7029 +-379.34 23.5027 66.2618 +-379.939 22.3952 63.1394 +-381.89 21.3632 60.2299 +-380.655 20.1542 56.8214 +-379.881 18.9788 53.5075 +-380.758 17.8885 50.4336 +-380.517 16.7465 47.214 +-378.16 15.5218 43.761 +-378.054 14.3991 40.5958 +-379.907 13.3481 37.6328 +-378.748 12.1913 34.3712 +-377.956 11.0539 31.1646 +-380.125 10.0008 28.1954 +-379.274 8.86581 24.9956 +-378.093 7.7305 21.7948 +-380.178 6.66047 18.7781 +-378.439 5.52346 15.5724 +-144.912 1.69165 4.76931 +-378.07 3.3095 9.33057 +-144.278 0.841866 2.3735 +-142.395 0.415407 1.17117 +96.2 0 0 +96.1963 0.28776 0.788634 +96.0854 0.5749 1.57557 +96.0671 0.862292 2.3632 +96.1414 1.15082 3.15393 +96.2083 1.43986 3.94607 +95.9683 1.724 4.72479 +96.8191 2.02983 5.56295 +95.9657 2.30023 6.30402 +96.8007 2.61141 7.15683 +96.8301 2.90386 7.9583 +96.7525 3.19339 8.7518 +96.8664 3.48985 9.56429 +96.5752 3.77172 10.3368 +96.674 4.06881 11.151 +96.3684 4.34886 11.9185 +96.2541 4.63696 12.7081 +96.1323 4.92472 13.4967 +95.9045 5.20673 14.2695 +95.6697 5.48773 15.0397 +95.4279 5.76775 15.8071 +95.9657 6.09671 16.7087 +96.0031 6.39661 17.5305 +95.8366 6.68355 18.3169 +95.4672 6.95571 19.0628 +95.4817 7.25585 19.8854 +96.1703 7.61059 20.8576 +95.9729 7.89798 21.6452 +95.8652 8.19304 22.4538 +96.4275 8.54812 23.427 +96.2062 8.83626 24.2167 +95.9776 9.12368 25.0044 +95.7417 9.41045 25.7903 +96.1696 9.76461 26.7609 +95.9174 10.0519 27.5483 +95.6578 10.3385 28.3336 +96.2469 10.7195 29.3779 +95.9704 11.007 30.1658 +95.6865 11.2937 30.9514 +96.2437 11.6824 32.0169 +95.8486 11.9582 32.7726 +96.3836 12.3524 33.8531 +96.999 12.7631 34.9786 +96.5773 13.0402 35.738 +96.3344 13.3415 36.5636 +96.8226 13.7472 37.6755 +96.561 14.0497 38.5045 +96.1996 14.338 39.2947 +96.7445 14.7646 40.4639 +96.3649 15.0534 41.2554 +95.978 15.3411 42.0439 +96.3961 15.7604 43.1931 +96.7102 16.1684 44.3111 +96.2054 16.4418 45.0603 +96.6742 16.8845 46.2738 +96.2407 17.1731 47.0645 +96.5062 17.589 48.2045 +96.0547 17.8771 48.9939 +96.2956 18.2966 50.1437 +95.8262 18.584 50.9312 +96.1288 19.0242 52.1376 +95.5547 19.2936 52.876 +96.517 19.8788 54.4799 +96.0073 20.1667 55.269 +96.1687 20.5985 56.4522 +95.6406 20.8854 57.2385 +95.7762 21.32 58.4296 +95.9803 21.776 59.6792 +95.9196 22.1772 60.7789 +95.5162 22.5022 61.6694 +95.5131 22.9246 62.8272 +95.6586 23.3886 64.0988 +95.7067 23.8351 65.3223 +95.7394 24.2835 66.5515 +95.1175 24.569 67.3338 +95.2024 25.0404 68.6257 +95.9009 25.683 70.3867 +95.2434 25.9688 71.1702 +95.8221 26.5979 72.8942 +95.1413 26.8835 73.6769 +95.1427 27.3654 74.9976 +94.4424 27.6489 75.7747 +95.0934 28.3352 77.6554 +95.6416 29.0047 79.4902 +95.5684 29.4961 80.837 +95.33 29.9429 82.0616 +95.2223 30.4374 83.4166 +95.2417 30.9806 84.9054 +95.0967 31.4786 86.2702 +95.005 32.0021 87.705 +94.6816 32.4547 88.9455 +94.6228 33.0057 90.4553 +95.0293 33.7313 92.4439 +94.7864 34.238 93.8328 +94.3886 34.6956 95.0868 +94.7177 35.4316 97.1037 +94.4143 35.943 98.5053 +94.7547 36.7118 100.612 +94.2757 37.1749 101.882 +93.9102 37.6901 103.294 +93.7827 38.3109 104.995 +93.8851 39.0396 106.992 +93.517 39.5853 108.488 +93.6262 40.3463 110.573 +93.5805 41.0572 112.521 +93.6884 41.8521 114.7 +93.6424 42.5963 116.739 +93.6846 43.3981 118.937 +93.5166 44.1206 120.917 +93.6674 45.0125 123.361 +93.0341 45.5435 124.817 +92.3242 46.0464 126.195 +96.3489 48.9634 134.189 +114.968 59.5398 163.175 +115.355 60.8876 166.869 +115.036 61.8954 169.63 +114.886 63.0221 172.718 +115.054 64.3569 176.376 +114.802 65.4921 179.488 +114.653 66.7189 182.85 +114.7 68.0983 186.63 +114.833 69.5726 190.671 +115.045 71.1425 194.973 +114.9 72.5383 198.798 +114.645 73.9084 202.553 +114.006 75.0694 205.735 +112.272 75.5297 206.997 +109.497 75.2798 206.312 +107.182 75.3271 206.441 +104.873 75.3665 206.55 +102.527 75.3665 206.55 +99.5264 74.8596 205.16 +97.6981 75.2171 206.14 +95.4605 75.2548 206.243 +93.1503 75.2219 206.153 +90.5429 74.9278 205.347 +91.0294 77.2299 211.656 +90.7091 78.9342 216.327 +90.8104 81.0906 222.237 +90.2835 82.7719 226.845 +90.0197 84.7782 232.343 +89.794 86.9185 238.209 +89.4661 89.0636 244.088 +89.2578 91.4404 250.602 +88.9351 93.8231 257.131 +88.9788 96.7336 265.108 +88.7348 99.4871 272.654 +88.6412 102.576 281.119 +88.4245 105.703 289.691 +87.4404 108.078 296.198 +84.2197 107.739 295.27 +83.3765 110.509 302.861 +83.1244 114.28 313.196 +87.1218 124.39 340.903 +86.7411 128.787 352.955 +86.381 133.56 366.034 +85.8467 138.44 379.409 +85.5687 144.167 395.104 +85.0245 149.935 410.913 +84.5208 156.318 428.406 +84.0978 163.485 448.047 +82.2102 168.396 461.506 +81.8622 177.167 485.544 +82.2116 188.559 516.765 +77.2828 188.492 516.581 +72.5334 188.852 517.568 +67.4547 188.313 516.091 +62.5901 188.304 516.065 +57.6056 187.87 514.876 +52.8206 188.035 515.329 +47.8746 187.571 514.058 +43.129 187.844 514.805 +38.2614 187.556 514.015 +33.5218 187.868 514.872 +28.6749 187.55 514.001 +23.8991 187.629 514.217 +19.09 187.385 513.548 +14.3188 187.435 513.685 +9.54472 187.437 513.689 +4.76992 187.355 513.465 +3.34134e-14 187.054 512.64 +-4.76731 187.252 513.184 +-9.53425 187.231 513.125 +-14.3005 187.195 513.028 +-19.0342 186.837 512.046 +-23.8424 187.184 512.997 +-28.5754 186.9 512.219 +-33.3874 187.116 512.809 +-38.1498 187.009 512.516 +-42.8857 186.785 511.902 +-47.6655 186.752 511.812 +-52.4755 186.807 511.962 +-57.2607 186.745 511.793 +-62.1486 186.975 512.424 +-66.8697 186.68 511.616 +-71.6589 186.575 511.327 +-76.406 186.354 510.72 +-81.1917 186.219 510.353 +-85.9764 186.071 509.947 +-91.0568 186.517 511.168 +-95.6975 186.035 509.848 +-100.758 186.348 510.706 +-105.498 186.04 509.861 +-110.629 186.389 510.817 +-115.37 186.051 509.891 +-120.643 186.535 511.218 +-124.96 185.533 508.471 +-127.438 181.952 498.658 +-132.138 181.664 497.868 +-140.363 186.041 509.863 +-147.501 188.693 517.131 +-150.375 185.866 509.385 +-149.892 179.182 491.065 +-154.76 179.088 490.809 +-957.897 1073.97 2943.32 +-148.428 161.364 442.235 +-154.045 162.512 445.379 +-175.819 180.118 493.631 +-1066.66 1061.86 2910.12 +-1093.65 1058.63 2901.28 +-197.756 186.241 510.413 +-202.665 185.803 509.213 +-209.681 187.238 513.145 +-447.608 389.505 1067.48 +-452.525 383.925 1052.18 +-463.812 383.822 1051.9 +-462.704 373.648 1024.02 +-448.393 353.483 968.755 +-450.217 346.617 949.938 +-451.559 339.644 930.827 +-454.188 333.869 915 +-456.557 328.104 899.202 +-145.715 102.408 280.659 +-146.174 100.496 275.418 +-147.002 98.8941 271.029 +-150.853 99.3322 272.23 +-469.988 302.988 830.368 +-113.993 71.9658 197.23 +-111.409 68.8942 188.811 +-112.519 68.1703 186.827 +-113.6 67.4453 184.841 +-114.856 66.8372 183.174 +-116.553 66.491 182.225 +-118.032 66.0228 180.942 +-120.08 65.8709 180.526 +-121.913 65.596 179.772 +-125.267 66.1198 181.208 +-129.484 67.0576 183.778 +-507.412 257.861 706.694 +-510.955 254.836 698.404 +-514.441 251.838 690.187 +-517.522 248.699 681.584 +-521.424 246.004 674.2 +-524.931 243.168 666.426 +-528.574 240.439 658.946 +-531.388 237.38 650.563 +-535.625 234.998 644.035 +-538.724 232.153 636.238 +-542.474 229.627 629.315 +-546.137 227.096 622.379 +-549.391 224.43 615.072 +-553.33 222.074 608.616 +-136.067 53.654 147.044 +-138.62 53.7071 147.19 +-548.553 208.83 572.321 +-551.282 206.221 565.17 +-555.215 204.088 559.324 +-561.766 202.917 556.114 +-567.466 201.426 552.028 +-570.61 199.036 545.479 +-583.858 200.134 548.486 +-580.729 195.616 536.106 +-587.844 194.586 533.283 +-586.755 190.862 523.077 +-590.861 188.866 517.605 +-595.425 187.022 512.552 +-599.272 184.958 506.897 +-602.76 182.795 500.969 +-607.617 181.053 496.193 +-611.29 178.961 490.461 +-615.823 177.126 485.431 +-619.537 175.059 479.767 +-623.426 173.048 474.256 +-142.669 38.8998 106.609 +-142.472 38.1553 104.568 +-143.914 37.8526 103.739 +-142.636 36.8431 100.972 +-142.443 36.1298 99.0173 +-142.549 35.5008 97.2935 +-146.378 35.7894 98.0845 +-148.594 35.665 97.7435 +-662.35 156.04 427.642 +-383.927 88.7664 243.273 +-385.756 87.5201 239.857 +-381.679 84.9626 232.848 +-382.141 83.4492 228.701 +-384.251 82.303 225.56 +-382.324 80.3087 220.094 +-382.039 78.6853 215.645 +-382.305 77.1918 211.552 +-381.224 75.4454 206.766 +-711.168 137.92 377.983 +-716.663 136.169 373.186 +-731.439 136.13 373.079 +-722.693 131.716 360.982 +-733.381 130.864 358.645 +-738.644 129.007 353.557 +-410.775 70.2026 192.397 +-409.401 68.4452 187.581 +-408.6 66.8046 183.085 +-406.207 64.9283 177.942 +-407.299 63.6254 174.372 +-410.365 62.6276 171.637 +-406.624 60.6048 166.094 +-407.415 59.2793 162.461 +-405.491 57.5729 157.784 +-405.272 56.1268 153.821 +-406.22 54.8492 150.32 +-406.668 53.5093 146.648 +-403.706 51.7385 141.795 +-403.786 50.3767 138.062 +-406.75 49.373 135.312 +-404.871 47.786 130.962 +-386.252 44.2999 121.408 +-384.227 42.7934 117.28 +-380.628 41.1374 112.741 +-381.661 39.9974 109.617 +-381.514 38.7373 106.163 +-382.198 37.566 102.953 +-382.079 36.3207 99.5406 +-380.575 34.9548 95.797 +-381.063 33.7806 92.5791 +-380.55 32.5234 89.1335 +-381.363 31.3838 86.0104 +-380.394 30.103 82.5004 +-382.025 29.0308 79.5618 +-381.869 27.8228 76.2512 +-379.427 26.4608 72.5185 +-379.595 25.2921 69.3156 +-379.831 24.1307 66.1327 +-381.711 23.071 63.2284 +-380.213 21.8095 59.7712 +-378.976 20.5749 56.3874 +-380.87 19.5114 53.4729 +-379.471 18.2807 50.1001 +-379.922 17.1449 46.9874 +-378.557 15.9327 43.665 +-378.948 14.7997 40.56 +-380.206 13.6978 37.5402 +-378.45 12.491 34.2329 +-378.255 11.3435 31.0881 +-378.53 10.2117 27.9861 +-377.977 9.05986 24.8294 +-378.593 7.93726 21.7528 +-379.279 6.81346 18.673 +-378.439 5.66372 15.522 +-144.912 1.7346 4.75385 +-377.771 3.39085 9.29296 +-144.378 0.863844 2.36745 +-143.195 0.428349 1.17393 +96.2 0 0 +96.1963 0.294862 0.786005 +96.1853 0.589702 1.57195 +96.0671 0.883576 2.35532 +96.1414 1.17922 3.14342 +96.1084 1.47386 3.92883 +96.9669 1.78493 4.75804 +96.9189 2.08208 5.55013 +95.9657 2.35701 6.28301 +96.8007 2.67587 7.13298 +96.7305 2.97247 7.92362 +96.7525 3.27221 8.72264 +96.8664 3.576 9.53242 +96.5752 3.86482 10.3023 +95.7807 4.13071 11.0111 +96.5667 4.4654 11.9033 +96.2541 4.75142 12.6657 +96.0334 5.04108 13.4379 +95.9045 5.33525 14.222 +96.4587 5.66959 15.1132 +96.3142 5.96502 15.9008 +96.1623 6.25999 16.687 +96.0031 6.5545 17.4721 +95.8366 6.84852 18.2559 +95.6628 7.14202 19.0383 +96.3604 7.50337 20.0015 +95.2934 7.72732 20.5985 +95.9729 8.09293 21.5731 +95.8652 8.39527 22.379 +96.4275 8.75912 23.3489 +96.2062 9.05437 24.136 +96.074 9.3583 24.9461 +95.7417 9.64273 25.7043 +96.1696 10.0056 26.6717 +95.9174 10.3 27.4565 +96.7069 10.7098 28.5489 +96.2469 10.9841 29.28 +95.9704 11.2787 30.0653 +96.5374 11.6754 31.1226 +96.2437 11.9708 31.9102 +96.6944 12.3615 32.9516 +96.2899 12.6451 33.7075 +96.999 13.0782 34.862 +96.5773 13.3621 35.6189 +96.2417 13.6576 36.4067 +96.8226 14.0865 37.5499 +96.4689 14.3827 38.3396 +96.2913 14.7059 39.2011 +95.9223 15.0005 39.9862 +96.3649 15.425 41.1179 +95.978 15.7198 41.9038 +96.5766 16.1797 43.1297 +96.7102 16.5675 44.1634 +96.2054 16.8476 44.9102 +95.8723 17.1578 45.737 +96.152 17.5807 46.8644 +95.7115 17.8748 47.6482 +96.0547 18.3183 48.8306 +96.2956 18.7482 49.9766 +95.8262 19.0427 50.7615 +96.9082 19.6518 52.3852 +96.3301 19.9303 53.1275 +96.517 20.3695 54.2983 +96.0073 20.6645 55.0848 +96.1687 21.1069 56.264 +95.6406 21.4009 57.0477 +95.7762 21.8463 58.2349 +95.8135 22.2747 59.377 +95.2564 22.5675 60.1576 +95.3514 23.0178 61.3578 +95.5131 23.4905 62.6179 +95.8214 24.0067 63.9939 +95.6258 24.4027 65.0496 +95.8197 24.9038 66.3854 +95.1175 25.1755 67.1094 +95.2024 25.6585 68.397 +95.1129 26.1007 69.5757 +95.9478 26.8066 71.4576 +95.2004 27.0776 72.1799 +95.1413 27.5471 73.4314 +95.1427 28.0409 74.7476 +95.1268 28.5367 76.0695 +95.0934 29.0346 77.3966 +95.0425 29.5344 78.729 +95.5684 30.2242 80.5676 +94.6664 30.4685 81.2189 +95.3685 31.2366 83.2663 +95.2417 31.7453 84.6225 +95.0967 32.2556 85.9827 +94.363 32.5705 86.8221 +94.823 33.3055 88.7814 +95.2536 34.0458 90.7549 +94.4041 34.3365 91.5297 +94.6488 35.0322 93.3842 +94.3886 35.552 94.7699 +94.1773 36.0989 96.2277 +94.4143 36.8302 98.1771 +94.0258 37.3286 99.5057 +94.2757 38.0925 101.542 +93.9102 38.6205 102.949 +93.7827 39.2565 104.645 +93.8851 40.0033 106.635 +94.1463 40.8354 108.854 +93.5639 41.3148 110.132 +93.6421 42.0981 112.219 +93.6275 42.8574 114.244 +93.1008 43.3952 115.677 +93.0303 44.1588 117.713 +93.6342 45.2662 120.665 +93.6093 46.0948 122.873 +93.5503 46.9269 125.092 +92.3242 47.183 125.774 +96.7963 50.4049 134.363 +115.52 61.3024 163.412 +115.355 62.3905 166.312 +115.036 63.4232 169.065 +114.886 64.5777 172.143 +114.584 65.676 175.07 +114.853 67.1386 178.969 +114.602 68.3356 182.16 +114.7 69.7792 186.008 +114.341 70.9843 189.221 +114.609 72.6221 193.586 +114.518 74.0819 197.478 +115.114 76.0428 202.705 +113.96 76.8911 204.966 +111.818 77.0811 205.473 +109.542 77.1693 205.708 +107.226 77.2181 205.838 +104.873 77.2269 205.861 +102.569 77.2588 205.946 +100.273 77.2827 206.01 +97.6981 77.0737 205.453 +95.4207 77.08 205.47 +93.1503 77.0786 205.466 +90.3133 76.5827 204.144 +91.0294 79.1362 210.951 +90.7091 80.8826 215.606 +90.7746 83.0595 221.409 +90.6337 85.1441 226.966 +90.1223 86.9699 231.833 +89.794 89.064 237.415 +89.3685 91.1623 243.008 +89.2578 93.6975 249.766 +89.2441 96.473 257.165 +88.7082 98.82 263.421 +88.5009 101.674 271.029 +88.3572 104.771 279.284 +88.4245 108.313 288.725 +87.574 110.915 295.662 +84.1938 110.365 294.196 +83.6019 113.543 302.668 +83.1244 117.101 312.152 +87.1452 127.495 339.859 +86.7411 131.966 351.779 +86.3594 136.822 364.723 +85.8675 141.892 378.236 +85.4292 147.484 393.145 +85.0054 153.602 409.452 +84.5391 160.211 427.07 +84.1152 167.555 446.647 +82.0617 172.241 459.137 +81.7214 181.228 483.094 +82.0342 192.796 513.931 +77.2828 193.145 514.86 +72.3376 192.991 514.451 +67.5644 193.275 515.208 +62.3863 192.323 512.67 +57.6684 192.717 513.719 +52.6768 192.152 512.214 +47.9531 192.516 513.184 +43.0113 191.955 511.69 +38.3242 192.501 513.143 +33.4485 192.085 512.034 +28.7063 192.39 512.849 +23.8467 191.84 511.381 +19.1214 192.326 512.678 +14.2952 191.746 511.131 +9.54472 192.063 511.977 +4.76207 191.664 510.912 +3.34501e-14 191.882 511.493 +-4.75945 191.558 510.631 +-9.53949 191.958 511.696 +-14.2612 191.289 509.913 +-19.0656 191.765 511.181 +-23.7638 191.173 509.603 +-28.5911 191.619 510.792 +-33.2592 190.998 509.137 +-38.0661 191.204 509.687 +-42.8387 191.185 509.636 +-47.7178 191.572 510.666 +-52.3318 190.893 508.858 +-57.2293 191.25 509.809 +-61.9108 190.858 508.763 +-66.8697 191.288 509.911 +-71.5022 190.762 508.509 +-76.4478 191.058 509.296 +-81.103 190.608 508.097 +-86.0702 190.872 508.802 +-90.6606 190.29 507.249 +-95.8538 190.938 508.978 +-100.43 190.326 507.347 +-105.727 191.046 509.265 +-110.35 190.508 507.83 +-115.557 190.952 509.016 +-120.297 190.591 508.052 +-124.645 189.633 505.499 +-127.555 186.614 497.452 +-132.307 186.387 496.845 +-141.114 191.653 510.883 +-147.501 193.35 515.408 +-150.455 190.555 507.958 +-149.726 183.402 488.888 +-154.334 183.003 487.827 +-957.897 1100.48 2933.51 +-148.428 165.347 440.761 +-154.045 166.523 443.895 +-176.358 185.13 493.496 +-1066.66 1088.07 2900.43 +-1093.65 1084.76 2891.61 +-196.764 189.881 506.161 +-201.474 189.271 504.535 +-208.857 191.106 509.425 +-448.158 399.608 1065.22 +-452.188 393.106 1047.89 +-463.468 393.005 1047.62 +-463.407 383.454 1022.16 +-448.752 362.499 966.303 +-450.217 355.173 946.772 +-451.933 348.315 928.492 +-453.807 341.823 911.187 +-456.299 336.013 895.698 +-145.32 104.652 278.966 +-146.308 103.071 274.752 +-147.048 101.366 270.209 +-150.853 101.784 271.323 +-469.847 310.374 827.353 +-113.993 73.7422 196.572 +-111.409 70.5948 188.182 +-112.42 69.7918 186.042 +-113.15 68.8365 183.495 +-114.907 68.5172 182.644 +-116.553 68.1322 181.618 +-118.032 67.6524 180.339 +-120.08 67.4968 179.924 +-121.86 67.1853 179.094 +-125.267 67.7518 180.604 +-129.374 68.6542 183.009 +-507.412 264.226 704.339 +-511.465 261.387 696.771 +-514.441 258.054 687.886 +-518.103 255.124 680.075 +-521.189 251.963 671.649 +-524.396 248.916 663.527 +-528.273 246.233 656.376 +-531.997 243.518 649.137 +-535.071 240.549 641.225 +-538.724 237.883 634.117 +-542.474 235.295 627.218 +-546.582 232.891 620.811 +-549.391 229.969 613.022 +-553.914 227.796 607.228 +-136.132 55.0047 146.624 +-137.295 54.5066 145.297 +-548.419 213.933 570.274 +-551.079 211.234 563.08 +-555.624 209.28 557.871 +-560.527 207.467 553.038 +-567.466 206.398 550.189 +-571.031 204.1 544.062 +-584.494 205.297 547.254 +-581.656 200.765 535.174 +-587.413 199.243 531.116 +-586.755 195.573 521.333 +-590.861 193.528 515.88 +-594.983 191.496 510.464 +-598.826 189.383 504.831 +-603.509 187.54 499.92 +-607.39 185.453 494.355 +-611.747 183.516 489.192 +-616.053 181.566 483.994 +-619.537 179.38 478.168 +-623.66 177.386 472.852 +-142.748 39.8821 106.312 +-142.63 39.1403 104.335 +-143.914 38.7869 103.393 +-142.796 37.795 100.749 +-142.524 37.0423 98.7426 +-142.63 36.3978 97.0245 +-146.866 36.7954 98.0844 +-148.43 36.5049 97.3101 +-662.597 159.951 426.376 +-382.85 90.7021 241.782 +-381.002 88.5754 236.113 +-381.26 86.9643 231.818 +-383.237 85.7546 228.593 +-382.554 83.9626 223.816 +-382.239 82.2728 219.312 +-381.525 80.519 214.637 +-383.511 79.3466 211.512 +-383.216 77.7116 207.153 +-383.566 76.2227 203.184 +-716.663 139.531 371.942 +-732.143 139.625 372.193 +-722.693 134.968 359.779 +-405.453 74.1342 197.617 +-409.685 73.3193 195.445 +-411.222 72.0138 191.965 +-408.142 69.919 186.381 +-406.705 68.1361 181.628 +-407.567 66.7533 177.942 +-404.387 64.7298 172.548 +-408.903 63.9448 170.456 +-403.323 61.5967 164.196 +-405.206 60.4131 161.041 +-403.828 58.7521 156.613 +-404.808 57.4461 153.132 +-407.523 56.3837 150.3 +-403.12 54.3517 144.884 +-405.111 53.2004 141.815 +-405.383 51.8242 138.146 +-406.467 50.5566 134.767 +-403.926 48.8513 130.221 +-386.252 45.3934 121.004 +-385.939 44.045 117.409 +-379.579 42.0366 112.056 +-382.618 41.0872 109.525 +-380.939 39.6334 105.65 +-381.429 38.416 102.404 +-381.116 37.1235 98.9589 +-380.575 35.8176 95.4778 +-380.579 34.5705 92.1534 +-381.908 33.4451 89.1536 +-381.363 32.1585 85.7238 +-380.881 30.8856 82.3308 +-379.779 29.5725 78.8306 +-380.01 28.3709 75.6273 +-380.701 27.205 72.5195 +-380.479 25.9768 69.2455 +-381.11 24.8096 66.1341 +-379.939 23.5307 62.7251 +-380.114 22.3421 59.5565 +-381.939 21.2476 56.6389 +-380.277 19.9618 53.2117 +-379.966 18.7564 49.9983 +-380.417 17.5911 46.8919 +-380.344 16.403 43.7248 +-379.843 15.2008 40.5202 +-379.311 14.0029 37.3271 +-379.246 12.8263 34.1905 +-378.753 11.6389 31.0253 +-378.53 10.4637 27.8928 +-378.775 9.30308 24.7989 +-378.992 8.14175 21.7032 +-379.879 6.99267 18.6401 +-377.64 5.79126 15.4376 +-146.011 1.7909 4.77395 +-147.549 1.35709 3.61755 +-144.678 0.887004 2.36446 +-144.594 0.443214 1.18146 +96.2 0 0 +96.1963 0.301941 0.783313 +96.1853 0.603859 1.56657 +96.167 0.905731 2.3497 +96.2413 1.20879 3.13591 +96.2083 1.51082 3.91945 +95.9683 1.80896 4.69291 +96.1204 2.1145 5.48554 +96.0654 2.41611 6.26801 +96.8007 2.74011 7.10855 +96.8301 3.04697 7.90462 +96.7525 3.35077 8.69276 +95.7725 3.62049 9.39247 +96.5752 3.95761 10.267 +96.4755 4.26056 11.053 +96.5667 4.57261 11.8625 +96.2541 4.86549 12.6223 +96.0334 5.16211 13.3918 +95.9045 5.46333 14.1733 +96.4587 5.8057 15.0615 +95.5264 6.05826 15.7167 +96.1623 6.41027 16.6299 +95.1197 6.6501 17.2521 +95.8366 7.01294 18.1934 +96.3475 7.36581 19.1088 +96.3604 7.68351 19.933 +96.1703 7.98567 20.7169 +95.9729 8.28722 21.4992 +95.8652 8.59682 22.3024 +96.5243 8.97843 23.2924 +96.3994 9.29034 24.1015 +95.9776 9.57333 24.8357 +95.7417 9.87423 25.6163 +96.3614 10.2663 26.6333 +96.1086 10.5684 27.417 +95.8486 10.8696 28.1985 +96.2469 11.2478 29.1797 +95.9704 11.5495 29.9623 +96.5374 11.9556 31.016 +96.1494 12.2462 31.7698 +96.6944 12.6582 32.8387 +96.3836 12.9612 33.6247 +96.999 13.3921 34.7426 +96.5773 13.6829 35.4969 +96.3344 13.999 36.3169 +96.8226 14.4247 37.4213 +97.3894 14.8686 38.5729 +96.2913 15.059 39.0668 +96.7445 15.4923 40.1909 +96.5469 15.8252 41.0545 +95.978 16.0972 41.7602 +96.5766 16.5681 42.982 +96.7102 16.9652 44.0121 +96.2054 17.2521 44.7564 +95.8723 17.5697 45.5804 +96.152 18.0028 46.7039 +96.5062 18.4559 47.8793 +96.0547 18.7581 48.6633 +96.2956 19.1983 49.8054 +95.9132 19.5176 50.6336 +95.3494 19.7999 51.366 +96.4163 20.427 52.9928 +95.8313 20.7103 53.7279 +96.0925 21.1794 54.9449 +96.1687 21.6136 56.0713 +95.6406 21.9147 56.8523 +95.7762 22.3708 58.0355 +95.9803 22.8492 59.2766 +95.9196 23.2702 60.3689 +95.3514 23.5704 61.1477 +95.677 24.0957 62.5104 +95.6586 24.5413 63.6664 +95.7067 25.0097 64.8817 +95.7394 25.4803 66.1025 +95.1175 25.7799 66.8796 +95.2024 26.2745 68.1627 +95.9797 26.9709 69.9694 +95.2434 27.2487 70.6901 +95.2004 27.7277 71.9327 +95.1413 28.2084 73.1799 +95.1427 28.7141 74.4916 +95.1268 29.2218 75.8089 +95.7726 29.944 77.6825 +95.6416 30.4341 78.954 +94.8996 30.7332 79.7297 +94.8139 31.2486 81.0668 +95.3685 31.9865 82.9812 +95.2417 32.5074 84.3326 +95.0967 33.03 85.6882 +94.9336 33.5541 87.0479 +94.823 34.1051 88.4774 +95.2536 34.8632 90.444 +95.0293 35.3937 91.8203 +94.7864 35.9254 93.1998 +94.3886 36.4056 94.4453 +94.7177 37.1778 96.4487 +94.3474 37.6874 97.7708 +94.0258 38.2248 99.1649 +94.3413 39.034 101.264 +94.2349 39.6843 102.951 +93.7827 40.199 104.287 +94.0124 41.0191 106.414 +94.1463 41.8157 108.481 +93.5017 42.2786 109.682 +93.6421 43.1087 111.835 +93.6884 43.9148 113.926 +93.6424 44.6956 115.952 +93.5656 45.4793 117.985 +93.5166 46.2951 120.101 +93.6093 47.2014 122.453 +93.493 48.024 124.587 +92.3242 48.3157 125.343 +95.7338 51.0485 132.433 +114.968 62.4742 162.074 +114.864 63.6172 165.039 +115.036 64.9458 168.486 +114.886 66.1281 171.553 +114.584 67.2527 174.471 +114.802 68.7198 178.277 +114.602 69.9762 181.536 +114.6 71.3922 185.21 +114.784 72.9701 189.303 +114.706 74.4285 193.087 +114.47 75.8287 196.719 +115.067 77.8364 201.928 +114.052 78.8011 204.43 +112.363 79.3161 205.766 +109.943 79.3118 205.755 +107.182 79.0395 205.049 +105.26 79.3729 205.914 +102.569 79.1136 205.241 +100.273 79.1381 205.304 +97.6981 78.9241 204.749 +95.4207 78.9305 204.766 +93.1503 78.9291 204.762 +90.6194 78.687 204.134 +90.6923 80.7357 209.449 +90.6358 82.7574 214.694 +90.7029 84.9863 220.476 +90.4936 87.0534 225.839 +90.0539 88.9902 230.863 +89.794 91.2022 236.602 +89.3685 93.3508 242.176 +89.0674 95.7423 248.38 +88.8424 98.3445 255.131 +88.6781 101.158 262.429 +88.7348 104.39 270.815 +88.3572 107.286 278.327 +88.3693 110.843 287.556 +87.8947 113.993 295.728 +84.2456 113.084 293.368 +83.5268 116.164 301.36 +82.9066 119.598 310.267 +86.9117 130.206 337.787 +86.7636 135.17 350.665 +86.4243 140.212 363.747 +85.8675 145.298 376.941 +85.6285 151.378 392.712 +85.1771 157.607 408.873 +84.5755 164.128 425.791 +84.0284 171.401 444.657 +81.2364 174.602 452.963 +82.66 187.711 486.969 +80.9404 194.792 505.342 +76.6565 196.179 508.939 +71.2412 194.629 504.918 +66.8697 195.88 508.164 +61.6052 194.475 504.518 +57.2293 195.841 508.063 +52.0059 194.259 503.958 +47.5609 195.525 507.243 +42.4385 193.947 503.147 +38.0103 195.508 507.197 +33.0028 194.076 503.482 +28.5022 195.609 507.459 +23.5152 193.714 502.544 +18.9749 195.434 507.006 +14.1068 193.76 502.664 +9.46968 195.128 506.211 +4.70011 193.711 502.537 +3.32419e-14 195.265 506.569 +-4.69749 193.604 502.258 +-9.4592 194.912 505.651 +-14.0832 193.437 501.825 +-18.9155 194.823 505.421 +-23.4934 193.534 502.078 +-28.3504 194.567 504.757 +-32.8807 193.357 501.619 +-37.8499 194.682 505.055 +-42.2581 193.122 501.008 +-47.343 194.63 504.92 +-51.7088 193.149 501.078 +-56.8844 194.661 505 +-61.1071 192.902 500.438 +-66.3579 194.381 504.274 +-70.5494 192.739 500.015 +-75.9468 194.362 504.226 +-80.024 192.587 499.62 +-85.5071 194.176 503.741 +-89.5548 192.481 499.346 +-95.0203 193.822 502.824 +-99.1179 192.349 499.003 +-104.64 193.62 502.299 +-108.795 192.332 498.959 +-114.539 193.813 502.801 +-118.587 192.393 499.116 +-124.105 193.345 501.586 +-127.344 190.78 494.931 +-132.839 191.629 497.134 +-138.21 192.214 498.653 +-146.181 196.22 509.046 +-150.215 194.818 505.409 +-149.974 188.116 488.021 +-151.267 183.672 476.493 +-164.108 193.062 500.853 +-148.519 169.42 439.519 +-154.756 171.307 444.415 +-176.929 190.189 493.398 +-1066.66 1114.19 2890.49 +-483.886 491.473 1275.01 +-195.67 193.358 501.621 +-199.373 191.794 497.562 +-206.062 193.075 500.885 +-447.901 408.968 1060.97 +-452.824 403.112 1045.78 +-464.501 403.335 1046.35 +-461.024 390.639 1013.42 +-448.752 371.202 962.994 +-450.217 363.699 943.53 +-451.767 356.546 924.973 +-454.188 350.323 908.827 +-456.557 344.274 893.136 +-145.583 107.358 278.515 +-145.951 105.288 273.143 +-146.821 103.64 268.869 +-151.546 104.706 271.635 +-470.411 318.206 825.507 +-113.23 75.0069 194.587 +-111.603 72.4151 187.863 +-112.617 71.5925 185.729 +-113.75 70.8628 183.836 +-115.008 70.224 182.179 +-116.708 69.8604 181.236 +-118.032 69.2766 179.721 +-120.398 69.3004 179.783 +-122.612 69.223 179.582 +-124.886 69.1673 179.438 +-130.533 70.9322 184.016 +-507.579 270.659 702.158 +-510.955 267.395 693.692 +-514.67 264.367 685.836 +-518.103 261.249 677.746 +-521.424 258.128 669.651 +-525.466 255.412 662.605 +-528.033 252.03 653.83 +-532.788 249.735 647.877 +-535.625 246.579 639.69 +-539.284 243.847 632.602 +-543.041 241.195 625.722 +-546.582 238.482 618.685 +-550.162 235.821 611.78 +-554.499 233.511 605.788 +-137.248 56.7867 147.319 +-136.301 55.4109 143.75 +-558.523 223.105 578.792 +-556.551 218.453 566.723 +-555.419 214.225 555.755 +-559.15 211.926 549.791 +-565.869 210.758 546.76 +-570.54 208.82 541.733 +-585.202 210.48 546.04 +-581.941 205.686 533.602 +-587.125 203.926 529.037 +-587.191 200.417 519.933 +-590.861 198.174 514.114 +-595.646 196.312 509.283 +-599.495 194.146 503.665 +-603.509 192.042 498.207 +-608.371 190.212 493.458 +-611.975 187.991 487.698 +-616.053 185.925 482.337 +-620.309 183.915 477.123 +-139.575 40.6522 105.462 +-142.748 40.8396 105.948 +-142.63 40.08 103.978 +-143.914 39.7181 103.039 +-142.796 38.7024 100.404 +-142.283 37.8676 98.2383 +-142.063 37.1235 96.3078 +-147.518 37.8457 98.1814 +-148.84 37.4846 97.2446 +-385.361 95.2596 247.128 +-385.502 93.5235 242.624 +-382.503 91.059 236.23 +-382.014 89.2283 231.481 +-383.321 87.8328 227.861 +-382.3 85.9211 222.901 +-382.58 84.3231 218.756 +-383.497 82.8783 215.008 +-383.511 81.2515 210.787 +-383.13 79.5593 206.397 +-380.781 77.4857 201.018 +-716.663 142.88 370.668 +-736.712 143.869 373.234 +-723.046 138.276 358.722 +-410.243 76.811 199.267 +-411.378 75.3896 195.58 +-409.701 73.4697 190.599 +-410.12 71.9447 186.643 +-406.976 69.8183 181.127 +-409.923 68.7511 178.358 +-408.027 66.8801 173.504 +-406.254 65.0559 168.772 +-404.148 63.2046 163.969 +-407.692 62.2429 161.474 +-406.322 60.5341 157.041 +-406.57 59.0814 153.272 +-405.011 57.3812 148.862 +-402.747 55.6052 144.254 +-405.86 54.5783 141.59 +-406.135 53.1669 137.929 +-402.696 51.2898 133.059 +-406.951 50.3989 130.748 +-384.83 46.312 120.145 +-383.181 44.7801 116.171 +-380.628 43.1649 111.981 +-380.227 41.8107 108.468 +-382.281 40.7281 105.659 +-381.909 39.3879 102.182 +-381.405 38.0435 98.6946 +-382.313 36.8451 95.5856 +-382.322 35.5625 92.2583 +-381.035 34.1697 88.645 +-380.488 32.8549 85.2342 +-380.394 31.5866 81.9438 +-382.025 30.4616 79.0251 +-380.499 29.0893 75.4652 +-383.151 28.0374 72.7362 +-379.301 26.518 68.7946 +-380.815 25.3855 65.8565 +-379.939 24.0956 62.5102 +-379.227 22.825 59.2139 +-379.371 21.6114 56.0655 +-381.562 20.5102 53.2087 +-379.075 19.1617 49.7103 +-380.417 18.0134 46.7313 +-379.45 16.7573 43.4727 +-378.054 15.4924 40.1913 +-378.913 14.324 37.1602 +-379.345 13.1376 34.0824 +-379.55 11.9433 30.9841 +-379.327 10.7375 27.8559 +-379.573 9.5465 24.7661 +-378.593 8.32844 21.6061 +-379.18 7.14738 18.5421 +-378.439 5.94285 15.4173 +-145.311 1.82511 4.73481 +-378.37 3.56361 9.24492 +-143.778 0.902652 2.34171 +-144.195 0.452599 1.17416 +96.3 0 0 +96.1963 0.308996 0.780558 +96.1853 0.617967 1.56105 +96.167 0.926892 2.34143 +96.2413 1.23703 3.12488 +97.1075 1.56056 3.94215 +96.9669 1.87049 4.72506 +96.9189 2.18187 5.51166 +96.0654 2.47256 6.24595 +96.0031 2.78103 7.02518 +96.8301 3.11816 7.87681 +96.7525 3.42906 8.66218 +96.6675 3.73971 9.44692 +96.5752 4.05007 10.2309 +96.674 4.36908 11.0368 +96.5667 4.67944 11.8208 +96.2541 4.97916 12.5779 +96.1323 5.28816 13.3585 +95.9045 5.59097 14.1234 +95.6697 5.89272 14.8857 +96.4127 6.25734 15.8067 +96.2607 6.56678 16.5884 +96.0031 6.86867 17.351 +95.8366 7.17679 18.1294 +95.6628 7.48435 18.9063 +96.458 7.87097 19.883 +95.2934 8.09771 20.4557 +96.0701 8.48941 21.4452 +95.8652 8.79767 22.2239 +95.7498 9.11448 23.0242 +96.2062 9.48837 23.9687 +95.9776 9.797 24.7483 +95.7417 10.1049 25.5262 +96.1696 10.4852 26.4868 +96.1086 10.8153 27.3206 +95.8486 11.1235 28.0993 +95.5812 11.431 28.8759 +95.9704 11.8193 29.8569 +95.6865 12.1271 30.6345 +96.2437 12.5446 31.689 +96.6004 12.9414 32.6914 +96.2899 13.2512 33.4739 +95.9721 13.5599 34.2539 +96.6704 14.0161 35.4062 +96.3344 14.326 36.1892 +96.915 14.7758 37.3253 +96.561 15.0865 38.1102 +96.2913 15.4108 38.9294 +95.9223 15.7195 39.7091 +96.5469 16.1949 40.9101 +96.7937 16.6133 41.9669 +96.5766 16.9552 42.8308 +96.7102 17.3616 43.8573 +96.2949 17.6716 44.6404 +95.8723 17.9802 45.42 +96.2407 18.4404 46.5825 +96.5062 18.8871 47.7108 +96.7578 19.3369 48.847 +96.2956 19.6469 49.6302 +95.9132 19.9736 50.4555 +96.1288 20.4281 51.6037 +96.4163 20.9042 52.8064 +95.8313 21.1942 53.5389 +96.0925 21.6743 54.7516 +96.1687 22.1186 55.8741 +95.7249 22.4465 56.7022 +95.7762 22.8934 57.8313 +95.9803 23.383 59.068 +96.0855 23.8551 60.2606 +95.3514 24.1211 60.9325 +95.5131 24.6164 62.1839 +95.5772 25.0933 63.3884 +95.7067 25.594 64.6534 +95.0963 25.9005 65.4274 +95.1175 26.3822 66.6443 +95.2817 26.9107 67.9795 +95.1917 27.3744 69.1507 +95.3217 27.9082 70.4993 +95.2004 28.3755 71.6796 +95.1413 28.8675 72.9224 +95.1427 29.3849 74.2296 +95.1268 29.9046 75.5422 +95.0934 30.4263 76.8601 +95.6416 31.1452 78.6762 +95.5684 31.6729 80.0092 +94.8139 31.9786 80.7815 +95.4417 32.7589 82.7526 +95.3142 33.2922 84.0999 +94.9529 33.7505 85.2576 +94.791 34.2864 86.6113 +94.8937 34.9279 88.2318 +95.2536 35.6777 90.1258 +95.0293 36.2206 91.4973 +94.6488 36.7114 92.737 +94.3886 37.2561 94.1131 +94.7853 38.0736 96.1781 +94.3474 38.5679 97.4269 +94.6884 39.3935 99.5124 +94.3413 39.946 100.908 +94.2349 40.6115 102.589 +93.9113 41.1945 104.062 +94.0124 41.9774 106.04 +93.5799 42.5354 107.449 +93.6262 43.3238 109.441 +93.5805 44.0872 111.369 +93.6275 44.9117 113.452 +93.161 45.5047 114.95 +93.1492 46.3347 117.046 +93.6342 47.4359 119.828 +93.6093 48.3042 122.022 +93.3782 49.0856 123.996 +92.0977 49.3231 124.596 +94.3358 51.4785 130.04 +114.968 63.9338 161.504 +115.355 65.381 165.16 +115.143 66.5254 168.05 +114.886 67.673 170.95 +115.054 69.1063 174.57 +114.802 70.3254 177.65 +114.602 71.6111 180.897 +114.7 73.1238 184.719 +115.129 74.8991 189.203 +114.609 76.103 192.245 +114.948 77.9239 196.844 +114.927 79.5578 200.972 +114.698 81.0989 204.865 +112.68 81.3989 205.623 +110.345 81.4611 205.78 +107.576 81.1839 205.08 +105.26 81.2274 205.189 +103.077 81.3621 205.53 +100.729 81.3555 205.513 +98.0642 81.0706 204.793 +95.7795 81.0787 204.814 +93.502 81.0783 204.813 +91.27 81.1033 204.876 +91.0669 82.9632 209.574 +90.9656 84.9994 214.718 +90.6313 86.9031 219.527 +90.5286 89.1218 225.132 +90.0197 91.0347 229.964 +89.7607 93.298 235.681 +89.5638 95.7405 241.851 +89.0991 98.0141 247.595 +88.9969 100.817 254.675 +89.0089 103.907 262.482 +88.5302 106.583 269.24 +88.3288 109.757 277.259 +88.1764 113.186 285.92 +88.3223 117.224 296.122 +84.815 116.508 294.312 +83.8773 119.377 301.56 +83.8017 123.713 312.514 +86.9817 133.355 336.87 +86.7411 138.292 349.34 +86.4027 143.452 362.376 +85.8883 148.729 375.706 +85.4092 154.518 390.329 +85.0627 161.073 406.887 +84.6302 168.072 424.567 +83.4379 174.173 439.98 +80.7908 177.701 448.894 +83.2857 193.55 488.929 +79.3293 195.376 493.541 +75.5153 197.773 499.597 +69.7793 195.089 492.816 +65.8338 197.351 498.532 +60.36 194.996 492.581 +56.2363 196.939 497.49 +50.9899 194.914 492.375 +46.7765 196.794 497.123 +41.6382 194.735 491.922 +37.3964 196.844 497.25 +32.3618 194.752 491.966 +28.0154 196.76 497.038 +23.0834 194.599 491.58 +18.6468 196.542 496.488 +13.8188 194.24 490.671 +9.30039 196.117 495.413 +4.61197 194.52 491.379 +3.2648e-14 196.257 495.767 +-4.60412 194.189 490.542 +-9.29515 196.007 495.134 +-13.811 194.129 490.392 +-18.6084 196.138 495.465 +-23.0136 194.011 490.094 +-27.9055 195.988 495.088 +-32.2519 194.091 490.296 +-37.1732 195.669 494.282 +-41.4499 193.854 489.697 +-46.5325 195.767 494.529 +-50.6928 193.778 489.505 +-55.8705 195.658 494.254 +-59.8732 193.423 488.608 +-65.2123 195.488 493.825 +-69.2311 193.556 488.945 +-74.6525 195.514 493.889 +-78.4572 193.228 488.115 +-83.9584 195.113 492.878 +-87.7393 192.985 487.501 +-93.3012 194.762 491.99 +-97.1133 192.862 487.192 +-102.941 194.928 492.409 +-106.622 192.894 487.273 +-112.522 194.849 492.209 +-116.574 193.546 488.918 +-122.508 195.316 493.389 +-126.037 193.233 488.127 +-132.114 195.034 492.679 +-135.681 193.106 487.807 +-143.722 197.427 498.723 +-147.542 195.823 494.67 +-150.002 192.547 486.394 +-149.392 185.634 468.933 +-154.957 186.555 471.26 +-149.15 174.115 439.835 +-155.127 175.73 443.913 +-1039.59 1143.6 2888.87 +-1066.66 1140.22 2880.32 +-186.298 193.639 489.155 +-461.112 466.31 1177.95 +-195.626 192.586 486.493 +-204.234 195.833 494.695 +-206.78 193.218 488.089 +-454.585 414.135 1046.15 +-466.147 414.223 1046.37 +-455.319 394.819 997.355 +-449.151 380.213 960.461 +-450.705 372.602 941.233 +-452.596 365.546 923.411 +-453.934 358.307 905.124 +-457.332 352.915 891.504 +-145.276 109.635 276.949 +-145.639 107.517 271.6 +-147.229 106.356 268.667 +-151.407 107.055 270.432 +-471.913 326.68 825.231 +-112.18 76.0478 192.105 +-111.652 74.1394 187.284 +-112.667 73.2972 185.157 +-113.6 72.4227 182.948 +-115.008 71.8647 181.538 +-116.759 71.5242 180.678 +-118.503 71.1778 179.803 +-120.239 70.8256 178.913 +-122.934 71.0266 179.421 +-125.975 71.4009 180.367 +-505.078 280.873 709.517 +-508.474 277.471 700.921 +-512.031 274.219 692.708 +-514.957 270.695 683.805 +-519.439 268.041 677.102 +-522.482 264.695 668.649 +-526.002 261.646 660.947 +-529.477 258.624 653.312 +-532.788 255.57 645.598 +-536.549 252.775 638.539 +-540.654 250.178 631.978 +-543.418 247.002 623.955 +-547.345 244.395 617.369 +-550.74 241.584 610.269 +-554.694 239.051 603.868 +-558.241 236.371 597.099 +-562.233 233.907 590.875 +-135.164 55.2535 139.576 +-135.118 54.2744 137.103 +-561.08 221.465 559.445 +-564.451 218.933 553.049 +-563.437 214.756 542.496 +-566.545 212.202 536.046 +-573.251 210.999 533.007 +-582.797 210.801 532.506 +-585.399 208.077 525.626 +-587.988 205.378 518.808 +-592.25 203.281 513.51 +-596.162 201.072 507.931 +-599.941 198.83 502.266 +-604.857 196.968 497.564 +-608.824 194.801 492.088 +-612.735 192.622 486.586 +-616.513 190.41 480.998 +-621.003 188.423 475.978 +-141.985 42.3201 106.905 +-142.983 41.8622 105.749 +-142.394 40.9483 103.44 +-144.073 40.691 102.79 +-142.317 39.4734 99.7142 +-142.685 38.8616 98.1688 +-142.144 38.0125 96.0238 +-147.518 38.7299 97.836 +-146.792 37.8325 95.5691 +-664.163 168.014 424.421 +-384.01 95.3379 240.834 +-383.504 93.4305 236.016 +-382.769 91.4933 231.122 +-385.093 90.3 228.108 +-384.081 88.3378 223.151 +-382.835 86.351 218.132 +-382.725 84.6442 213.821 +-382.477 82.9257 209.479 +-381.917 81.1604 205.02 +-382.521 79.6586 201.227 +-717.451 146.379 369.77 +-739.349 147.758 373.252 +-722.781 141.454 357.329 +-408.291 78.2316 197.622 +-408.526 76.6165 193.542 +-746.733 137.037 346.17 +-413.266 74.1902 187.413 +-410.676 72.0995 182.131 +-404.757 69.4707 175.491 +-407.754 68.397 172.778 +-407.989 66.8603 168.897 +-406.991 65.1363 164.541 +-408.612 63.841 161.269 +-408.447 62.2723 157.307 +-408.239 60.7098 153.36 +-406.686 58.9648 148.952 +-406.014 57.3658 144.912 +-403.706 55.5568 140.343 +-404.256 54.1573 136.807 +-406.938 53.041 133.987 +-403.736 51.1689 129.258 +-387.011 47.6627 120.401 +-381.659 45.6445 115.303 +-379.102 43.9963 111.139 +-381.374 42.9167 108.412 +-381.227 41.5648 104.997 +-382.678 40.3892 102.027 +-381.019 38.8929 98.2479 +-382.796 37.7534 95.3692 +-381.45 36.3104 91.7241 +-380.259 34.8968 88.1533 +-381.363 33.6999 85.1296 +-379.03 32.2087 81.3628 +-381.048 31.0936 78.5459 +-380.891 29.7996 75.2771 +-380.309 28.4796 71.9427 +-381.362 27.2851 68.9252 +-379.831 25.9115 65.4554 +-382.204 24.8056 62.6617 +-381.002 23.4676 59.2819 +-379.371 22.1163 55.8682 +-378.101 20.799 52.5405 +-380.758 19.6964 49.7554 +-379.525 18.391 46.4576 +-379.947 17.1713 43.3765 +-378.948 15.8919 40.1446 +-379.808 14.6933 37.1169 +-380.142 13.4728 34.0338 +-378.255 12.1807 30.7698 +-379.028 10.9797 27.7359 +-379.473 9.767 24.6725 +-379.491 8.54326 21.5812 +-378.281 7.29704 18.4331 +-378.939 6.08972 15.3833 +-144.112 1.85234 4.67921 +-379.57 3.65843 9.24161 +-144.278 0.926951 2.34158 +-143.995 0.462529 1.1684 +96.3 0 0 +96.4963 0.317011 0.780164 +96.1853 0.632025 1.55542 +97.1667 0.957833 2.35723 +96.2413 1.26517 3.11359 +97.1075 1.59606 3.92791 +97.0668 1.91501 4.71284 +97.0187 2.23381 5.49741 +97.1627 2.55769 6.29448 +97.0997 2.87678 7.07976 +95.9335 3.15956 7.77569 +96.9516 3.51428 8.64865 +96.8664 3.83265 9.43216 +96.8733 4.15496 10.2254 +96.674 4.46847 10.9969 +96.6659 4.79078 11.7901 +96.4521 5.10293 12.5583 +96.1323 5.40846 13.3102 +95.9045 5.71816 14.0724 +96.656 6.08892 14.9849 +95.6248 6.34736 15.6209 +96.2607 6.71616 16.5285 +96.1013 7.03211 17.306 +96.0326 7.35507 18.1008 +95.7607 7.66244 18.8573 +95.5794 7.97669 19.6307 +96.3652 8.37509 20.6111 +96.1674 8.6913 21.3893 +95.8652 8.99781 22.1436 +95.7498 9.32182 22.941 +96.3028 9.71396 23.9061 +96.1703 10.04 24.7085 +95.8378 10.3452 25.4594 +96.4573 10.7558 26.4701 +96.2043 11.0723 27.2489 +95.9439 11.3879 28.0257 +96.4371 11.7957 29.0293 +95.9704 12.0882 29.749 +96.5374 12.5133 30.7953 +96.4322 12.8551 31.6364 +95.9426 13.1457 32.3515 +96.3836 13.5658 33.3854 +96.0654 13.8819 34.1634 +96.7634 14.3487 35.3122 +96.4271 14.6661 36.0932 +96.915 15.1119 37.1905 +96.653 15.4444 38.0088 +96.4747 15.7914 38.8626 +96.105 16.1077 39.6411 +96.5469 16.5633 40.7623 +96.1593 16.8798 41.5413 +96.5766 17.3409 42.6761 +96.89 17.7895 43.7801 +96.2949 18.0736 44.4791 +95.8723 18.3892 45.2559 +96.2407 18.8599 46.4143 +96.7711 19.3698 47.669 +96.9335 19.8127 48.759 +96.3831 20.1121 49.4959 +95.9132 20.428 50.2733 +96.2154 20.9117 51.4636 +96.4163 21.3798 52.6157 +96.6028 21.8508 53.7749 +96.0925 22.1673 54.5539 +96.1687 22.6218 55.6723 +95.7249 22.9571 56.4974 +95.7762 23.4142 57.6224 +95.9803 23.9149 58.8547 +95.2564 24.1872 59.5248 +95.5162 24.7125 60.8174 +95.677 25.2196 62.0655 +95.8214 25.7297 63.3208 +95.7067 26.1763 64.4199 +95.8197 26.6912 65.6871 +95.1974 27.005 66.4593 +95.2024 27.5 67.6776 +95.1917 27.9971 68.901 +95.2434 28.5197 70.1869 +95.2781 29.0447 71.479 +95.2185 29.5481 72.7181 +95.2193 30.0776 74.021 +95.1268 30.5848 75.2694 +95.1689 31.1431 76.6433 +95.6416 31.8537 78.392 +95.4198 32.343 79.5962 +94.8876 32.7315 80.5524 +95.3685 33.4784 82.3905 +95.2417 34.0237 83.7324 +94.4493 34.3352 84.4991 +95.005 35.1455 86.4933 +94.8937 35.7225 87.9131 +94.6228 36.2477 89.2056 +95.0293 37.0446 91.1668 +94.7864 37.6011 92.5364 +94.3886 38.1036 93.7731 +94.7853 38.9397 95.8307 +94.4812 39.5014 97.213 +94.092 40.0359 98.5285 +94.3413 40.8547 100.544 +94.2349 41.5353 102.219 +93.9113 42.1316 103.686 +94.076 42.9613 105.728 +93.5799 43.503 107.061 +93.6262 44.3094 109.045 +93.5805 45.0901 110.967 +93.6275 45.9334 113.042 +93.7026 46.8105 115.201 +93.7441 47.6914 117.369 +93.5754 48.4849 119.322 +93.4351 49.3112 121.355 +93.6077 50.3257 123.852 +93.0039 50.9416 125.367 +93.1615 51.9942 127.958 +114.968 65.3882 160.92 +115.3 66.8371 164.486 +115.09 68.0067 167.365 +114.886 69.2125 170.332 +115.054 70.6784 173.94 +114.802 71.9252 177.008 +115.008 73.4995 180.882 +114.7 74.7873 184.052 +114.735 76.3409 187.875 +114.609 77.8343 191.55 +114.852 79.6303 195.97 +114.88 81.3341 200.163 +114.698 82.9438 204.125 +113.18 83.6195 205.788 +110.702 83.5837 205.7 +107.971 83.3353 205.088 +105.604 83.347 205.117 +102.95 83.1109 204.536 +101.019 83.446 205.361 +98.4303 83.2242 204.815 +96.1384 83.2337 204.838 +93.7755 83.1651 204.67 +91.4231 83.0876 204.479 +91.0669 84.8505 208.817 +90.929 86.898 213.856 +90.6313 88.88 218.734 +90.5986 91.2196 224.492 +90.0539 93.141 229.22 +89.9609 95.6335 235.354 +89.4661 97.812 240.715 +89.3213 100.494 247.315 +89.0896 103.218 254.02 +89.0691 106.343 261.71 +88.5594 109.044 268.357 +88.6128 112.615 277.146 +88.204 115.797 284.976 +88.3757 119.964 295.231 +84.9962 119.413 293.875 +83.8272 122.02 300.292 +87.0677 131.459 323.52 +87.0051 136.425 335.743 +86.6961 141.364 347.898 +86.2945 146.532 360.615 +85.7844 151.928 373.896 +85.5887 158.365 389.736 +85.1199 164.848 405.691 +84.5026 171.636 422.396 +82.6739 176.504 434.376 +82.3588 185.271 455.953 +83.0823 197.47 485.973 +78.2207 197.028 484.886 +74.1932 198.731 489.078 +68.8395 196.84 484.423 +64.6151 198.105 487.536 +59.477 196.514 483.622 +55.2224 197.788 486.756 +50.1753 196.163 482.758 +45.9049 197.52 486.098 +40.9949 196.087 482.571 +36.7407 197.792 486.766 +31.8795 196.214 482.884 +27.4607 197.251 485.436 +22.7257 195.942 482.215 +18.2769 197.025 484.88 +13.612 195.686 481.583 +9.13633 197.04 484.916 +4.54042 195.858 482.007 +3.20357e-14 196.957 484.712 +-4.53344 195.557 481.266 +-9.1311 196.927 484.638 +-13.6068 195.61 481.398 +-18.2594 196.837 484.417 +-22.6341 195.153 480.271 +-27.3979 196.8 484.326 +-31.7636 195.5 481.127 +-36.5524 196.778 484.271 +-40.8223 195.262 480.54 +-45.6696 196.508 483.606 +-49.8973 195.076 480.083 +-54.8147 196.327 483.162 +-59.0015 194.943 479.756 +-63.9814 196.162 482.755 +-68.0955 194.713 479.188 +-73.219 196.122 482.656 +-77.3191 194.757 479.296 +-82.4566 195.983 482.314 +-86.4354 194.442 478.522 +-91.6168 195.596 481.363 +-95.6919 194.362 478.326 +-100.976 195.556 481.263 +-105.087 194.442 478.522 +-110.401 195.525 481.188 +-114.67 194.714 479.193 +-119.989 195.651 481.497 +-124.263 194.847 479.518 +-129.912 196.148 482.72 +-133.402 194.182 477.884 +-140.047 196.755 484.214 +-145.084 196.94 484.671 +-150.388 197.433 485.883 +-149.733 190.29 468.305 +-150.191 184.931 455.116 +-149.421 178.399 439.041 +-155.034 179.62 442.045 +-1039.59 1169.62 2878.43 +-1066.66 1166.16 2869.92 +-182.926 194.461 478.568 +-460.462 476.247 1172.05 +-453.343 456.45 1123.32 +-198.213 194.384 478.378 +-204.178 195.126 480.206 +-209.78 195.46 481.028 +-467.142 424.55 1044.82 +-450.005 399.091 982.163 +-449.47 389.137 957.668 +-450.827 381.179 938.083 +-453.011 374.205 920.918 +-454.78 367.141 903.535 +-457.59 361.148 888.786 +-145.627 112.399 276.615 +-145.327 109.727 270.038 +-147.184 108.742 267.615 +-151.684 109.69 269.948 +-473.65 335.342 825.277 +-112.085 77.7115 191.248 +-111.409 75.6614 186.203 +-112.962 75.1615 184.973 +-114.1 74.3962 183.089 +-115.465 73.7916 181.601 +-117.171 73.4095 180.661 +-118.921 73.0538 179.785 +-120.822 72.788 179.131 +-123.203 72.8012 179.164 +-126.52 73.3406 180.491 +-505.243 287.357 707.186 +-508.81 283.97 698.85 +-512.541 280.736 690.893 +-515.703 277.254 682.322 +-519.439 274.139 674.656 +-523.188 271.082 667.134 +-526.954 268.082 659.751 +-529.657 264.597 651.174 +-533.579 261.772 644.221 +-537.103 258.793 636.89 +-540.467 255.781 629.478 +-544.047 252.914 622.421 +-548.109 250.303 615.997 +-551.705 247.513 609.129 +-555.278 244.746 602.321 +-558.634 241.918 595.361 +-562.829 239.482 589.366 +-137.841 57.6296 141.827 +-135.794 55.7869 137.292 +-574.243 231.816 570.501 +-578.287 229.402 564.559 +-568.508 221.618 545.401 +-567.176 217.271 534.705 +-571.767 215.24 529.707 +-578.303 213.934 526.492 +-583.457 212.104 521.989 +-587.988 210.05 516.934 +-592.616 208.033 511.971 +-597.268 206.028 507.036 +-601.13 203.756 501.444 +-605.83 201.773 496.564 +-609.051 199.306 490.493 +-614.104 197.444 485.911 +-617.968 195.202 480.392 +-621.544 192.877 474.671 +-141.285 43.0693 105.994 +-143.217 42.8849 105.54 +-142.394 41.8798 103.066 +-143.756 41.5252 102.194 +-142.956 40.5528 99.8005 +-142.604 39.7235 97.7596 +-143.034 39.1204 96.2754 +-147.843 39.6986 97.6984 +-660.073 173.989 428.189 +-664.905 172.028 423.361 +-382.435 97.1069 238.98 +-383.254 95.4934 235.01 +-381.679 93.3081 229.632 +-383.321 91.9296 226.239 +-381.622 89.7692 220.922 +-383.944 88.5709 217.973 +-381.954 86.3951 212.618 +-382.305 84.7741 208.629 +-384.255 83.5149 205.53 +-381.999 81.3597 200.226 +-718.762 149.983 369.109 +-739.612 151.173 372.036 +-723.84 144.884 356.561 +-408.646 80.0809 197.079 +-410.041 78.6497 193.557 +-409.611 76.88 189.202 +-408.592 75.0199 184.624 +-407.878 73.2371 180.237 +-407.929 71.6078 176.227 +-408.755 70.1246 172.577 +-407.624 68.3199 168.136 +-406.166 66.4829 163.615 +-406.035 64.8815 159.673 +-408.078 63.6313 156.597 +-404.438 61.5126 151.383 +-405.011 60.0577 147.802 +-406.388 58.725 144.522 +-407.452 57.348 141.134 +-405.195 55.5181 136.63 +-404.393 53.9084 132.669 +-404.398 52.4184 129.002 +-387.39 48.7947 120.084 +-380.708 46.5665 114.6 +-382.059 45.348 111.601 +-381.183 43.8708 107.966 +-381.706 42.5638 104.75 +-381.813 41.2146 101.429 +-380.249 39.6971 97.6947 +-381.927 38.5245 94.8089 +-381.063 37.0987 91.3001 +-381.132 35.7726 88.0365 +-380.099 34.3523 84.541 +-380.979 33.1108 81.4857 +-381.634 31.8498 78.3824 +-380.891 30.4775 75.0052 +-381.191 29.195 71.8491 +-381.362 27.9058 68.6762 +-381.306 26.6039 65.4722 +-380.431 25.2522 62.1457 +-381.397 24.0263 59.1289 +-379.371 22.6194 55.6664 +-381.562 21.4669 52.83 +-379.768 20.0921 49.4467 +-380.417 18.8536 46.3987 +-380.344 17.5802 43.2649 +-380.737 16.3301 40.1884 +-380.206 15.0433 37.0216 +-379.246 13.7468 33.8309 +-378.753 12.4742 30.699 +-378.53 11.2147 27.5994 +-378.775 9.97077 24.5381 +-378.593 8.7169 21.4523 +-378.281 7.46303 18.3665 +-377.54 6.20528 15.2712 +-144.612 1.90104 4.67847 +-377.771 3.72392 9.16457 +-144.678 0.950665 2.33959 +-144.395 0.474365 1.16741 +96.5 0 0 +96.4963 0.324036 0.777272 +96.4853 0.648048 1.55449 +97.3666 0.981072 2.35332 +97.3407 1.30798 3.13749 +97.3073 1.63479 3.92141 +97.0668 1.95745 4.69537 +97.2183 2.28801 5.4883 +97.1627 2.61437 6.27115 +97.0997 2.94053 7.05352 +97.129 3.26982 7.84339 +96.9516 3.59216 8.61659 +96.8664 3.91758 9.3972 +96.8733 4.24704 10.1875 +96.674 4.56749 10.9562 +96.765 4.90199 11.7585 +96.4521 5.21602 12.5118 +97.2203 5.59088 13.411 +95.9045 5.84488 14.0202 +96.7546 6.23021 14.9445 +96.5112 6.54816 15.7072 +96.359 6.872 16.484 +96.1995 7.1953 17.2595 +95.9346 7.51037 18.0153 +95.7607 7.83225 18.7874 +95.677 8.16182 19.5779 +95.4883 8.48277 20.3478 +96.1674 8.88391 21.31 +95.9622 9.20652 22.0839 +96.7179 9.62475 23.0871 +96.3994 9.93916 23.8413 +96.074 10.2522 24.5922 +96.7029 10.6699 25.5941 +96.4573 10.9942 26.372 +96.1086 11.3064 27.121 +95.8486 11.6287 27.894 +96.5322 12.069 28.9502 +96.16 12.3805 29.6974 +96.7266 12.8157 30.7412 +96.4322 13.14 31.5191 +96.7883 13.5554 32.5157 +96.4772 13.8799 33.2941 +97.0924 14.3412 34.4006 +96.8565 14.6808 35.2152 +97.2616 15.1208 36.2706 +97.0074 15.4616 37.088 +96.8371 15.8168 37.94 +96.2913 16.1107 38.645 +96.1963 16.4803 39.5317 +96.6379 16.9463 40.6495 +96.2499 17.2702 41.4264 +96.5766 17.7252 42.5179 +96.2608 18.0657 43.3346 +96.4739 18.5084 44.3966 +96.6742 18.954 45.4653 +96.4181 19.3134 46.3275 +95.7998 19.6003 47.0157 +96.9335 20.2517 48.5783 +96.4706 20.5764 49.3572 +96.6965 21.0512 50.496 +96.1288 21.3558 51.2267 +95.727 21.6973 52.0459 +95.8313 22.1567 53.1478 +96.0925 22.6586 54.3517 +96.1687 23.1231 55.4659 +95.7249 23.4658 56.288 +95.86 23.954 57.459 +96.0636 24.4661 58.6875 +96.1684 24.9599 59.872 +95.5162 25.2601 60.592 +95.677 25.7785 61.8355 +95.8214 26.2999 63.0861 +95.7067 26.7564 64.1811 +95.9805 27.3285 65.5534 +95.1974 27.6034 66.213 +95.2817 28.1328 67.4829 +95.1129 28.5939 68.5887 +95.3217 29.1757 69.9843 +95.8221 29.8579 71.6207 +95.2185 30.203 72.4485 +95.1427 30.7194 73.6873 +95.2028 31.2876 75.0503 +95.1689 31.8333 76.3592 +95.1923 32.4066 77.7345 +95.6427 33.137 79.4864 +95.4774 33.6648 80.7526 +95.3685 34.2204 82.0852 +95.3142 34.8042 83.4855 +95.0967 35.3367 84.763 +94.9336 35.8974 86.108 +94.823 36.4869 87.522 +94.6228 37.051 88.875 +94.4041 37.6164 90.2313 +94.6488 38.3786 92.0595 +94.3886 38.9481 93.4256 +94.7853 39.8027 95.4756 +94.4143 40.3483 96.7844 +94.6884 41.1825 98.7854 +94.3413 41.7601 100.171 +94.2999 42.485 101.91 +93.847 43.0357 103.231 +94.0124 43.8838 105.265 +94.1463 44.7361 107.309 +93.6885 45.3217 108.714 +93.7037 46.1498 110.701 +93.6884 46.9817 112.696 +93.7026 47.8479 114.774 +93.1492 48.4389 116.191 +93.6342 49.5902 118.953 +93.6674 50.5295 121.206 +93.3782 51.3148 123.09 +92.834 51.9751 124.674 +92.155 52.5719 126.105 +113.754 66.1315 158.631 +115.355 68.3502 163.953 +115.143 69.5465 166.823 +114.886 70.7463 169.701 +115.054 72.2447 173.295 +114.802 73.5191 176.352 +115.059 75.1614 180.291 +114.7 76.4447 183.37 +114.735 78.0327 187.179 +114.609 79.5592 190.84 +114.852 81.395 195.244 +114.833 83.1027 199.34 +114.883 84.9185 203.696 +113.18 85.4726 205.025 +111.148 85.7804 205.763 +108.409 85.528 205.158 +106.035 85.5415 205.19 +103.372 85.3014 204.614 +101.434 85.6454 205.44 +98.7963 85.3849 204.815 +96.5371 85.4311 204.925 +94.1271 85.3272 204.676 +91.9206 85.391 204.829 +90.6548 86.3384 207.102 +90.929 88.8238 213.064 +90.6671 90.8858 218.01 +90.2835 92.9168 222.882 +90.0881 95.2413 228.457 +89.9943 97.789 234.569 +89.5638 100.088 240.084 +89.2578 102.648 246.223 +89.2441 105.688 253.517 +88.6481 108.186 259.508 +88.5009 111.386 267.185 +88.4708 114.926 275.676 +88.452 118.696 284.718 +88.1887 122.362 293.513 +85.4103 122.654 294.213 +86.6565 128.934 309.277 +87.2612 134.671 323.039 +87.1918 139.748 335.217 +86.6736 144.46 346.519 +86.2945 149.779 359.278 +85.7844 155.295 372.51 +85.3893 161.497 387.387 +85.1771 168.614 404.459 +84.047 174.493 418.561 +81.9619 178.862 429.039 +83.6626 192.375 461.454 +82.1437 199.566 478.702 +76.92 198.045 475.055 +72.9824 199.82 479.313 +67.6778 197.807 474.483 +63.6402 199.44 478.4 +58.3902 197.199 473.025 +54.4802 199.454 478.435 +49.351 197.216 473.067 +45.2687 199.1 477.585 +40.3358 197.211 473.053 +36.1897 199.143 477.688 +31.3423 197.183 472.986 +27.0891 198.894 477.093 +22.3549 197.017 472.589 +18.0221 198.584 476.349 +13.3869 196.714 471.863 +9.00195 198.444 476.013 +4.45664 196.505 471.361 +3.1552e-14 198.282 475.624 +-4.45664 196.505 471.361 +-8.99323 198.252 475.552 +-13.3607 196.329 470.94 +-17.9837 198.161 475.334 +-22.2633 196.21 470.653 +-26.9949 198.203 475.433 +-31.1775 196.146 470.499 +-36.0013 198.106 475.202 +-40.1161 196.137 470.477 +-45.0334 198.064 475.102 +-49.0347 195.952 470.035 +-54.1039 198.076 475.13 +-57.9827 195.823 469.724 +-63.0796 197.683 474.186 +-67.0121 195.861 469.817 +-72.1613 197.572 473.92 +-76.0184 195.724 469.487 +-81.1738 197.209 473.05 +-84.983 195.411 468.737 +-90.2623 196.975 472.489 +-94.0153 195.189 468.204 +-99.4115 196.792 472.05 +-103.273 195.32 468.518 +-108.946 197.224 473.085 +-112.635 195.498 468.945 +-118.347 197.249 473.147 +-121.835 195.273 468.406 +-127.807 197.246 473.138 +-131.024 194.947 467.623 +-137.148 196.952 472.434 +-142.572 197.819 474.514 +-149.092 200.07 479.912 +-149.818 194.618 466.834 +-148.993 187.521 449.81 +-149.962 183.013 438.998 +-155.806 184.516 442.602 +-1039.59 1195.54 2867.76 +-1066.66 1192 2859.28 +-179.087 194.599 466.788 +-459.504 485.79 1165.27 +-191.248 196.827 472.132 +-194.486 194.955 467.644 +-198.167 193.579 464.342 +-207.982 198.079 475.137 +-212.274 197.196 473.017 +-448.442 406.515 975.117 +-449.749 398.007 954.709 +-451.437 390.154 935.871 +-453.011 382.497 917.505 +-455.371 375.765 901.357 +-458.15 369.603 886.574 +-145.802 115.029 275.922 +-146.041 112.71 270.359 +-148.001 111.769 268.103 +-152.1 112.428 269.684 +-475.058 343.792 824.663 +-111.512 79.0282 189.567 +-111.846 77.641 186.239 +-112.814 76.7263 184.045 +-114.5 76.3115 183.05 +-115.922 75.7251 181.644 +-117.429 75.201 180.386 +-119.234 74.8693 179.591 +-121.193 74.6296 179.016 +-123.901 74.8363 179.511 +-127.554 75.5793 181.294 +-506.402 294.399 706.181 +-508.977 290.359 696.49 +-513.051 287.243 689.017 +-516.047 283.587 680.246 +-520.484 280.778 673.509 +-523.011 276.996 664.437 +-528.084 274.611 658.715 +-530.018 270.645 649.202 +-534.127 267.848 642.492 +-537.842 264.892 635.402 +-541.774 262.082 628.662 +-544.803 258.877 620.974 +-549.444 256.474 615.209 +-551.897 253.086 607.084 +-555.668 250.345 600.509 +-559.225 247.541 593.782 +-563.625 245.135 588.011 +-567.356 242.461 581.596 +-571.684 240.064 575.848 +-135.308 55.8334 133.929 +-134.78 54.6509 131.092 +-582.402 232.064 556.658 +-585.82 229.387 550.235 +-572.969 220.473 528.853 +-578.589 218.783 524.8 +-580.148 215.575 517.106 +-585.014 213.619 512.413 +-593.201 212.854 510.577 +-597.637 210.724 505.468 +-601.576 208.426 499.955 +-606.055 206.321 494.907 +-610.258 204.127 489.644 +-614.864 202.07 484.71 +-617.968 199.528 478.612 +-622.238 197.371 473.439 +-141.207 44 105.544 +-142.904 43.7395 104.919 +-142.945 42.9737 103.082 +-142.962 42.2111 101.253 +-142.397 41.2895 99.042 +-142.604 40.6038 97.3972 +-143.601 40.1459 96.2989 +-148.25 40.69 97.604 +-660.974 178.088 427.184 +-386.268 102.152 245.035 +-384.01 99.6675 239.075 +-383.921 97.7797 234.546 +-381.679 95.376 228.78 +-382.562 93.7806 224.954 +-381.537 91.7382 220.054 +-384.711 90.7146 217.599 +-382.297 88.3889 212.021 +-384.287 87.1018 208.933 +-384.082 85.3272 204.676 +-387.221 84.2994 202.211 +-719.55 153.475 368.143 +-740.052 154.614 370.877 +-724.9 148.312 355.759 +-409.089 81.9441 196.561 +-410.576 80.4977 193.092 +-409.522 78.5664 188.459 +-410.12 76.9691 184.628 +-410.225 75.2907 180.601 +-409.017 73.3902 176.043 +-410.211 71.9342 172.55 +-406.802 69.6932 167.175 +-409.651 68.5392 164.406 +-406.035 66.3193 159.082 +-406.322 64.7617 155.345 +-408.239 63.4669 152.239 +-403.522 61.1631 146.713 +-404.8 59.7917 143.424 +-408.202 58.7266 140.869 +-405.759 56.8273 136.313 +-403.922 55.0388 132.023 +-401.467 53.1918 127.592 +-388.149 49.9738 119.873 +-381.659 47.7174 114.461 +-379.961 46.0982 110.577 +-382.235 44.9669 107.863 +-382.09 43.5505 104.466 +-381.909 42.1387 101.079 +-382.079 40.7723 97.8015 +-380.575 39.239 94.1234 +-380.192 37.8342 90.7536 +-381.908 36.6399 87.8889 +-381.85 35.2752 84.6155 +-382.148 33.9484 81.4328 +-381.634 32.5556 78.0919 +-380.891 31.1529 74.7272 +-382.073 29.9111 71.7484 +-380.479 28.4581 68.2632 +-378.946 27.0252 64.8259 +-379.053 25.7183 61.691 +-380.509 24.5017 58.7727 +-381.248 23.235 55.7344 +-380.672 21.8914 52.5114 +-380.857 20.5963 49.4047 +-380.814 19.2915 46.2749 +-379.947 17.9511 43.0596 +-379.445 16.6354 39.9036 +-379.211 15.3365 36.7879 +-378.748 14.033 33.6613 +-379.55 12.7774 30.6496 +-379.427 11.4904 27.5623 +-379.274 10.2052 24.4794 +-379.092 8.92182 21.401 +-377.382 7.6103 18.255 +-378.439 6.35788 15.2508 +-145.411 1.95392 4.6869 +-146.85 1.47967 3.54931 +-144.378 0.969721 2.32609 +-144.894 0.486555 1.16711 +96.5 0 0 +96.1963 0.330006 0.77191 +96.2853 0.660673 1.54537 +96.267 0.990945 2.3179 +97.3407 1.33623 3.12556 +97.1075 1.66667 3.89848 +96.3678 1.98533 4.64384 +96.32 2.31583 5.41691 +97.1627 2.67084 6.24731 +96.9004 2.99788 7.01227 +97.129 3.34045 7.81358 +96.7525 3.66221 8.56621 +96.8664 4.0022 9.36147 +96.5752 4.32545 10.1176 +96.7732 4.67095 10.9257 +96.3684 4.98731 11.6657 +96.4521 5.32868 12.4642 +96.9236 5.69419 13.3192 +96.0033 5.97726 13.9813 +96.5574 6.35181 14.8574 +96.5112 6.6896 15.6475 +96.1623 7.00608 16.3878 +96.1995 7.35072 17.1939 +95.8366 7.66476 17.9285 +95.7607 8.00142 18.716 +96.458 8.40615 19.6627 +96.3652 8.7456 20.4567 +96.0701 9.06664 21.2076 +95.9622 9.40538 21.9999 +96.5243 9.81294 22.9533 +96.3994 10.1538 23.7507 +95.9776 10.4631 24.4741 +96.7991 10.9112 25.5222 +96.3614 11.2205 26.2456 +96.1086 11.5506 27.0179 +96.5162 11.9626 27.9815 +96.4371 12.3175 28.8117 +95.9704 12.6229 29.5261 +96.5374 13.0669 30.5645 +96.2437 13.3976 31.338 +96.7883 13.8482 32.3921 +96.2899 14.1522 33.103 +97.0924 14.651 34.2699 +96.6704 14.9691 35.0139 +96.4271 15.3149 35.8227 +96.8226 15.7654 36.8765 +96.653 16.1277 37.7239 +97.025 16.584 38.7914 +96.9272 16.9642 39.6806 +96.5469 17.2961 40.4569 +97.0656 17.7927 41.6186 +96.3961 18.0742 42.2771 +96.89 18.5765 43.452 +96.2949 18.8731 44.1458 +96.0505 19.2384 45.0003 +96.152 19.6761 46.024 +96.5945 20.1898 47.2255 +96.0547 20.5016 47.9549 +96.4706 21.0209 49.1695 +95.8262 21.3123 49.8512 +96.2154 21.8368 51.078 +96.4163 22.3256 52.2214 +95.917 22.6555 52.9931 +96.0073 23.1274 54.0969 +96.3383 23.6642 55.3525 +95.6406 23.9516 56.0247 +95.86 24.4714 57.2406 +96.0636 24.9946 58.4644 +96.0855 25.4771 59.5929 +95.5162 25.8057 60.3616 +95.7589 26.3579 61.6532 +95.8214 26.868 62.8463 +95.8685 27.3805 64.0452 +95.7394 27.8486 65.1402 +95.1974 28.1997 65.9613 +95.7577 28.8841 67.5622 +96.0585 29.5019 69.0073 +95.3217 29.8058 69.7182 +95.2004 30.3048 70.8855 +95.1413 30.8303 72.1145 +95.8322 31.6103 73.9391 +95.1268 31.9379 74.7053 +95.8481 32.753 76.6119 +95.6416 33.2629 77.8046 +95.6427 33.8527 79.1843 +95.4774 34.392 80.4456 +94.7834 34.745 81.2714 +95.2417 35.5289 83.1049 +95.1687 36.1273 84.5046 +94.9336 36.6728 85.7806 +94.823 37.275 87.1893 +94.4826 37.7952 88.406 +95.0293 38.6834 90.4836 +94.6488 39.2075 91.7095 +95.0706 40.0771 93.7435 +94.7853 40.6624 95.1126 +94.4143 41.2198 96.4164 +94.0258 41.7776 97.7212 +94.3413 42.6621 99.7901 +94.2999 43.4027 101.522 +93.9755 44.0258 102.98 +94.0124 44.8316 104.865 +94.2722 45.7633 107.044 +94.062 46.485 108.732 +93.7037 47.1466 110.28 +93.7493 48.0275 112.34 +93.7628 48.9124 114.41 +93.6251 49.7379 116.341 +93.5166 50.598 118.353 +93.4351 51.4927 120.446 +93.6077 52.5521 122.924 +93.1172 53.2597 124.579 +92.155 53.7074 125.626 +98.024 58.2175 136.175 +115.3 69.7939 163.254 +115.143 71.0487 166.189 +114.886 72.2744 169.056 +115.159 73.8724 172.793 +114.75 75.0733 175.602 +115.008 76.751 179.527 +114.8 78.1638 182.832 +114.685 79.684 186.387 +115.142 81.6558 190.999 +114.804 83.1185 194.421 +114.739 84.8281 198.42 +115.022 86.8573 203.166 +113.588 87.634 204.983 +111.862 88.1962 206.298 +108.76 87.658 205.039 +106.767 87.9922 205.821 +104.133 87.785 205.336 +101.766 87.7811 205.327 +99.081 87.4807 204.624 +97.1353 87.8172 205.412 +94.5569 87.568 204.829 +92.5329 87.8164 205.41 +90.3176 87.8754 205.548 +90.929 90.7423 212.254 +90.8104 92.9955 217.524 +90.5636 95.2181 222.723 +90.1565 97.3723 227.762 +89.9943 99.9012 233.677 +89.5638 102.25 239.172 +89.0991 104.679 244.851 +89.0896 107.784 252.116 +88.6781 110.56 258.609 +88.5302 113.83 266.257 +88.698 117.71 275.333 +88.3969 121.184 283.459 +88.2688 125.119 292.663 +87.015 127.657 298.601 +87.7081 133.317 311.839 +87.2612 137.58 321.81 +87.0751 142.575 333.495 +86.6736 147.58 345.201 +86.2945 153.014 357.913 +85.8052 158.688 371.184 +85.3494 164.908 385.734 +85.2344 172.372 403.192 +82.7532 175.518 410.551 +80.8853 180.325 421.794 +83.5471 196.259 459.065 +80.2822 199.256 466.076 +74.7324 196.569 459.79 +71.368 199.62 466.928 +65.7983 196.467 459.552 +62.129 198.909 465.265 +56.8507 196.146 458.802 +53.1945 198.953 465.368 +48.0475 196.154 458.821 +44.249 198.818 465.051 +39.1746 195.67 457.689 +35.3596 198.777 464.957 +30.4815 195.909 458.248 +26.4611 198.48 464.26 +21.7399 195.735 457.841 +17.6277 198.434 464.154 +13.0256 195.54 457.384 +8.8187 198.604 464.55 +4.34494 195.718 457.799 +3.08662e-14 198.162 463.518 +-4.34232 195.6 457.523 +-8.80299 198.25 463.723 +-13.0178 195.422 457.109 +-17.6138 198.277 463.787 +-21.705 195.421 457.105 +-26.3983 198.009 463.158 +-30.3594 195.124 456.412 +-35.2479 198.15 463.489 +-39.0412 195.004 456.13 +-44.0398 197.878 462.853 +-47.7791 195.059 456.258 +-52.8496 197.663 462.35 +-56.545 195.092 456.335 +-61.6537 197.387 461.705 +-65.1978 194.674 455.359 +-70.6164 197.518 462.011 +-73.9638 194.547 455.062 +-79.5156 197.353 461.625 +-82.7879 194.475 454.894 +-88.3696 197.01 460.823 +-91.5734 194.226 454.31 +-97.4462 197.068 460.959 +-100.342 193.876 453.491 +-106.617 197.177 461.213 +-109.518 194.194 454.236 +-115.962 197.45 461.851 +-118.52 194.063 453.929 +-124.856 196.853 460.456 +-127.519 193.83 453.383 +-134.042 196.65 459.98 +-136.826 193.948 453.66 +-145.537 199.517 466.686 +-148.398 196.937 460.651 +-149.256 191.91 448.892 +-149.601 186.516 436.277 +-156.486 189.323 442.843 +-1039.59 1221.36 2856.86 +-1066.66 1217.75 2848.41 +-174.18 193.355 452.272 +-181.1 195.594 457.51 +-185.785 195.334 456.902 +-449.107 459.913 1075.77 +-448.964 448.041 1048 +-201.875 196.417 459.434 +-470.28 446.311 1043.96 +-213.574 197.788 462.642 +-450.188 407.001 952.009 +-451.762 398.868 932.984 +-453.757 391.403 915.523 +-455.921 384.345 899.013 +-458.839 378.153 884.531 +-145.978 117.654 275.203 +-146.978 115.883 271.059 +-149.272 115.164 269.378 +-153.023 115.554 270.29 +-112.532 83.1971 194.605 +-111.655 80.8385 189.088 +-111.894 79.3522 185.611 +-113.208 78.6576 183.986 +-114.8 78.1638 182.832 +-116.531 77.7672 181.904 +-118.047 77.2298 180.647 +-119.757 76.8218 179.692 +-121.457 76.4082 178.725 +-124.707 76.9499 179.992 +-128.535 77.8049 181.992 +-506.678 300.922 703.88 +-510.375 297.445 695.748 +-513.787 293.869 687.382 +-517.137 290.324 679.09 +-521.123 287.195 671.771 +-524.069 283.552 663.25 +-528.381 280.7 656.58 +-531.282 277.15 648.276 +-535.771 274.475 642.019 +-538.458 270.923 633.711 +-542.522 268.112 627.135 +-545.369 264.744 619.257 +-550.08 262.317 613.58 +-552.926 259.034 605.902 +-557.421 256.56 600.114 +-560.537 253.481 592.913 +-565.414 251.225 587.635 +-568.226 248.078 580.274 +-572.563 245.627 574.54 +-575.743 242.704 567.705 +-579.87 240.206 561.862 +-583.652 237.586 555.733 +-587.502 235.014 549.717 +-583.151 229.237 536.205 +-596.349 230.369 538.852 +-582.449 221.106 517.184 +-596.983 222.698 520.909 +-588.74 215.816 504.811 +-593.877 213.921 500.378 +-601.724 212.98 498.178 +-605.006 210.413 492.173 +-611.013 208.794 488.385 +-615.777 206.741 483.584 +-619.424 204.317 477.915 +-624.244 202.285 473.16 +-142.062 45.2224 105.779 +-142.356 44.5128 104.119 +-143.733 44.1441 103.257 +-142.724 43.0509 100.699 +-143.115 42.394 99.163 +-142.202 41.3637 96.753 +-146.594 41.868 97.9327 +-148.332 41.5917 97.2863 +-662.694 182.408 426.667 +-384.29 103.824 242.852 +-385.42 102.194 239.04 +-379.501 98.7419 230.965 +-382.434 97.6286 228.361 +-382.478 95.785 224.049 +-382.046 93.8446 219.51 +-384.37 92.5918 216.58 +-384.354 90.784 212.351 +-383.942 88.9034 207.952 +-383.563 87.0522 203.622 +-716.303 159.31 372.639 +-721.299 157.17 367.634 +-722.124 154.127 360.517 +-2893.15 604.715 1414.48 +-738.525 151.129 353.502 +-742.654 148.75 347.938 +-408.001 79.9654 187.046 +-407.423 78.1147 182.717 +-410.135 76.9 179.875 +-409.47 75.0583 175.568 +-410.211 73.4879 171.894 +-408.538 71.5023 167.25 +-404.515 69.1418 161.728 +-406.495 67.8284 158.656 +-408.817 66.5666 155.705 +-411.299 65.3236 152.797 +-404.639 62.6568 146.559 +-406.388 61.323 143.439 +-404.642 59.4723 139.11 +-407.545 58.3103 136.392 +-405.996 56.5165 132.197 +-398.725 53.9696 126.239 +-385.778 50.7415 118.688 +-379.376 48.4564 113.343 +-381.868 47.3306 110.71 +-381.183 45.8116 107.157 +-380.843 44.3461 103.729 +-381.333 42.9836 100.542 +-380.538 41.4848 97.0362 +-381.154 40.1474 93.908 +-380.192 38.6514 90.4086 +-380.55 37.2981 87.2434 +-380.488 35.9087 83.9933 +-381.271 34.6021 80.937 +-380.17 33.1312 77.4965 +-381.575 31.883 74.5769 +-378.937 30.3064 70.889 +-380.97 29.1103 68.0914 +-378.946 27.6089 64.5795 +-379.053 26.2738 61.4565 +-380.509 25.0309 58.5492 +-381.05 23.7246 55.4937 +-379.881 22.3178 52.2031 +-379.966 20.9919 49.1017 +-379.525 19.6415 45.9429 +-379.748 18.3292 42.8735 +-379.445 16.9947 39.7519 +-379.808 15.6924 36.7057 +-379.644 14.37 33.6127 +-379.849 13.0637 30.5571 +-378.53 11.7108 27.3926 +-379.573 10.4338 24.4055 +-378.593 9.10253 21.2916 +-379.279 7.81375 18.277 +-378.439 6.49521 15.1928 +-145.611 1.99886 4.6755 +-145.65 1.49928 3.50694 +-144.378 0.990666 2.31725 +-144.894 0.497065 1.16267 +96.2 0 0 +96.1963 0.336955 0.768902 +96.1853 0.673883 1.53774 +96.167 1.01076 2.30647 +96.1414 1.34756 3.07502 +97.0076 1.70002 3.87929 +96.168 2.02293 4.61615 +96.9189 2.3793 5.42935 +96.8635 2.71868 6.20379 +96.2025 3.03896 6.93465 +95.9335 3.36881 7.68734 +95.8567 3.70471 8.45382 +96.6675 4.07809 9.30585 +96.7739 4.4256 10.0988 +96.674 4.76441 10.872 +96.3684 5.09233 11.6203 +96.2541 5.42969 12.3901 +96.0334 5.76071 13.1454 +95.9045 6.09686 13.9125 +95.6697 6.42591 14.6634 +96.3142 6.81654 15.5548 +96.1623 7.15361 16.3239 +96.0031 7.49017 17.0919 +96.5226 7.88216 17.9864 +96.3475 8.21996 18.7572 +96.458 8.58316 19.586 +96.1703 8.91169 20.3357 +96.0701 9.25756 21.125 +95.8652 9.59372 21.892 +95.653 9.92911 22.6574 +96.3028 10.3573 23.6345 +95.9776 10.6835 24.3787 +95.7417 11.0193 25.145 +96.3614 11.4568 26.1433 +96.1086 11.7939 26.9126 +95.8486 12.13 27.6797 +96.2469 12.5521 28.6429 +95.9704 12.8888 29.411 +96.5374 13.342 30.4454 +96.9978 13.7868 31.4604 +96.6944 14.1261 32.2345 +96.2899 14.4502 32.974 +95.9721 14.7869 33.7424 +96.6704 15.2843 34.8775 +97.1689 15.7576 35.9576 +96.8226 16.0974 36.7328 +96.561 16.4516 37.5411 +96.2913 16.8052 38.3481 +96.9272 17.3214 39.526 +96.5469 17.6603 40.2992 +96.9749 18.1504 41.4177 +96.3961 18.4548 42.1124 +96.7102 18.9325 43.2024 +97.0109 19.4138 44.3007 +95.8723 19.6071 44.7418 +96.9503 20.2572 46.2253 +95.7998 20.4453 46.6545 +96.0547 20.9333 47.768 +96.3831 21.4441 48.9335 +95.7391 21.7413 49.6118 +96.1288 22.2765 50.8331 +96.3301 22.7754 51.9714 +95.7456 23.0912 52.6922 +96.0073 23.6144 53.8861 +96.1687 24.12 55.0397 +95.5563 24.4343 55.7571 +95.7762 24.9649 56.9677 +95.9803 25.4988 58.186 +96.0855 26.0136 59.3607 +96.0931 26.5083 60.4896 +95.677 26.8898 61.3603 +95.6586 27.3871 62.4951 +95.7067 27.9099 63.688 +95.7394 28.435 64.8863 +95.8363 28.9867 66.1452 +95.2024 29.3213 66.9087 +95.1129 29.8266 68.0617 +95.2434 30.4085 69.3895 +95.2004 30.943 70.6092 +95.1413 31.4795 71.8335 +95.2193 32.0696 73.18 +95.1268 32.6104 74.4142 +95.7726 33.4163 76.2533 +95.6416 33.9633 77.5014 +95.5684 34.5387 78.8144 +94.8139 34.8721 79.5753 +95.3685 35.6957 81.4544 +95.2417 36.277 82.7811 +95.0967 36.8601 84.1117 +94.791 37.3888 85.318 +95.318 38.2586 87.3029 +95.1134 38.8487 88.6494 +95.0293 39.498 90.131 +94.7864 40.0914 91.4851 +94.3886 40.6272 92.7077 +94.7853 41.5186 94.742 +94.4143 42.0878 96.0407 +94.6884 42.958 98.0264 +94.3413 43.5604 99.4012 +94.2999 44.3166 101.127 +93.9113 44.9219 102.508 +94.0124 45.7756 104.456 +93.6429 46.415 105.915 +94.062 47.4638 108.308 +93.7037 48.1394 109.85 +93.7493 49.0389 111.902 +93.4619 49.7822 113.599 +93.4467 50.6885 115.667 +93.5166 51.6635 117.892 +93.4351 52.577 119.976 +93.5503 53.6258 122.37 +93.1738 54.4145 124.169 +91.6517 54.5389 124.453 +93.6637 56.7991 129.611 +114.81 70.9606 161.926 +115.036 72.477 165.386 +114.781 73.7281 168.241 +115.106 75.3938 172.042 +114.75 76.6541 174.918 +114.856 78.2636 178.591 +114.7 79.7403 181.961 +114.932 81.5365 186.059 +115.045 83.305 190.095 +114.9 84.9394 193.824 +114.692 86.579 197.566 +115.068 88.722 202.456 +114.088 89.8727 205.082 +112.308 90.4126 206.314 +109.505 90.1172 205.64 +107.542 90.4973 206.507 +104.471 89.9245 205.2 +102.471 90.2504 205.944 +99.8132 89.9827 205.333 +97.534 90.0345 205.451 +95.1821 90.0032 205.38 +92.8773 89.9996 205.371 +89.9805 89.3911 203.983 +90.6358 92.354 210.744 +90.7388 94.8791 216.506 +90.2484 96.8848 221.083 +90.0539 99.3095 226.616 +89.9276 101.929 232.594 +89.7266 104.593 238.673 +89.4482 107.301 244.853 +89.1823 110.168 251.395 +88.6781 112.888 257.601 +88.7348 116.495 265.833 +88.414 119.804 273.382 +88.1764 123.427 281.65 +88.0283 127.406 290.729 +88.0502 131.896 300.976 +87.608 135.969 310.27 +87.2612 140.477 320.556 +87.0284 145.5 332.018 +86.5387 150.453 343.321 +86.381 156.393 356.876 +85.722 161.872 369.378 +85.5887 168.853 385.308 +84.2803 174.032 397.126 +81.6051 176.728 403.278 +84.0284 191.276 436.476 +81.1704 194.691 444.268 +77.9826 197.624 450.961 +72.2492 194.039 442.78 +69.1273 197.425 450.506 +63.6054 193.919 442.506 +60.2766 197.042 449.633 +54.9602 193.617 441.817 +51.6266 197.155 449.891 +46.4277 193.533 441.625 +42.8632 196.647 448.732 +37.9585 193.589 441.753 +34.2435 196.557 448.526 +24.2607 159.21 363.305 +21.5624 165.141 376.838 +17.7182 162.885 371.689 +17.0903 196.436 448.249 +12.6016 193.158 440.769 +8.53597 196.285 447.905 +4.1931 192.855 440.079 +2.99477e-14 196.314 447.973 +-4.19834 193.096 440.629 +-8.5255 196.044 447.355 +-12.5859 192.917 440.219 +-17.0589 196.074 447.425 +-20.9373 192.478 439.219 +-25.6132 196.165 447.633 +-29.3338 192.503 439.275 +-34.076 195.596 446.333 +-37.7937 192.748 439.835 +-42.6802 195.807 446.816 +-46.1401 192.334 438.89 +-51.1876 195.478 446.065 +-54.6319 192.46 439.178 +-59.8257 195.568 446.27 +-63.0311 192.168 438.51 +-68.4036 195.358 445.79 +-71.4659 191.935 437.979 +-76.9345 194.968 444.9 +-79.9491 191.762 437.583 +-85.6086 194.873 444.685 +-88.53 191.725 437.499 +-94.4314 194.993 444.957 +-97.2118 191.783 437.633 +-103.394 195.244 445.53 +-105.926 191.778 437.622 +-112.296 195.233 445.505 +-114.808 191.944 438 +-120.84 194.533 443.909 +-123.387 191.499 436.984 +-129.694 194.277 443.324 +-132.497 191.766 437.594 +-140.272 196.349 448.051 +-143.144 193.964 442.61 +-149.402 196.143 447.581 +-149.331 190.099 433.791 +-151.449 187.088 426.919 +-154.845 185.751 423.868 +-1066.66 1243.39 2837.31 +-1093.65 1239.61 2828.68 +-176.243 194.357 443.507 +-451.242 484.424 1105.41 +-448.641 469.111 1070.47 +-451.786 460.353 1050.49 +-195.095 193.817 442.273 +-196.278 190.197 434.012 +-205.134 193.972 442.628 +-209.064 192.989 440.384 +-217.401 195.989 447.231 +-454.504 400.302 913.456 +-227.157 195.528 446.177 +-145.599 122.522 279.586 +-146.109 120.24 274.378 +-147.29 118.575 270.577 +-150.634 118.662 270.777 +-471.63 363.646 829.81 +-115.631 87.2878 199.183 +-111.751 82.6114 188.512 +-112.282 81.3041 185.529 +-113.454 80.4885 183.668 +-115 79.949 182.437 +-116.988 79.7162 181.906 +-118.253 78.9937 180.257 +-120.593 78.9869 180.241 +-122.464 78.6638 179.504 +-126.05 79.4168 181.222 +-129.461 80.0157 182.589 +-508.168 308.162 703.2 +-511.158 304.174 694.099 +-515.203 300.884 686.591 +-518.169 297.029 677.795 +-522.691 294.124 671.167 +-525.304 290.204 662.221 +-529.809 287.385 655.789 +-532.366 283.563 647.067 +-536.867 280.828 640.825 +-539.627 277.229 632.612 +-544.451 274.731 626.913 +-546.942 271.098 618.624 +-551.607 268.584 612.885 +-554.469 265.227 605.226 +-558.85 262.634 599.308 +-561.915 259.455 592.054 +-566.54 257.026 586.511 +-569.162 253.719 578.965 +-574.049 251.45 573.787 +-577.38 248.519 567.1 +-581.935 246.138 561.666 +-585.389 243.311 555.215 +-133.453 54.5084 124.384 +-593.192 238.095 543.312 +-597.561 235.698 537.844 +-601.008 232.955 531.584 +-605.833 230.758 526.571 +-608.706 227.833 519.896 +-614.226 225.91 515.507 +-599.569 216.686 494.46 +-605.381 214.977 490.559 +-606.862 211.742 483.178 +-611.518 209.635 478.368 +-620.879 209.11 477.171 +-141.439 46.798 106.789 +-142.762 46.4018 105.885 +-141.965 45.3253 103.428 +-143.497 44.9994 102.685 +-142.645 43.9329 100.251 +-142.237 43.021 98.1702 +-143.167 42.5213 97.0299 +-147.565 43.0326 98.1968 +-660.085 188.983 431.243 +-664.005 186.617 425.845 +-382.724 105.578 240.921 +-386.58 104.66 238.826 +-381.753 101.419 231.43 +-382.769 99.7719 227.671 +-381.803 97.6298 222.783 +-383.827 96.2671 219.673 +-383.603 94.3529 215.305 +-382.811 92.3235 210.674 +-381.96 90.307 206.073 +-386.854 89.6479 204.569 +-718.13 163.08 372.134 +-733.369 163.166 372.33 +-723.442 157.66 359.768 +-733.641 156.571 357.283 +-741.364 154.904 353.477 +-412.18 84.296 192.356 +-409.522 81.9535 187.011 +-407.423 79.7596 182.005 +-408.691 78.2428 178.543 +-409.379 76.622 174.845 +-411.211 75.2184 171.642 +-408.812 73.057 166.71 +-410.109 71.5743 163.326 +-404.378 68.8959 157.214 +-406.599 67.5998 154.257 +-408.239 66.203 151.07 +-405.848 64.1676 146.425 +-406.388 62.6143 142.88 +-406.703 61.0337 139.274 +-406.511 59.3872 135.517 +-405.807 57.6797 131.62 +-393.525 54.3872 124.107 +-385.399 51.759 118.11 +-379.757 49.5261 113.014 +-381.582 48.2907 110.195 +-380.801 46.7293 106.632 +-381.418 45.3482 103.481 +-382.871 44.0658 100.554 +-380.538 42.3583 96.658 +-379.705 40.8371 93.1867 +-381.45 39.5959 90.3545 +-380.162 38.0447 86.8147 +-380.975 36.7117 83.7729 +-381.758 35.3758 80.7247 +-381.146 33.9157 77.3927 +-381.869 32.5794 74.3434 +-380.309 31.0566 70.8684 +-380.577 29.6926 67.7561 +-380.225 28.2854 64.5448 +-381.318 26.9873 61.5828 +-381.101 25.5977 58.4117 +-380.161 24.1677 55.1485 +-378.991 22.7343 51.8778 +-380.362 21.4563 48.9614 +-379.525 20.0551 45.7639 +-379.45 18.7005 42.6729 +-379.544 17.3571 39.6073 +-379.311 16.0018 36.5149 +-379.644 14.6726 33.4817 +-379.849 13.3388 30.4381 +-378.53 11.9574 27.2858 +-379.773 10.6591 24.3232 +-378.992 9.304 21.2309 +-378.281 7.95729 18.1579 +-377.54 6.61625 15.0977 +-145.411 2.03815 4.65089 +-144.351 1.51719 3.4621 +-144.678 1.01363 2.31301 +-145.494 0.509635 1.16294 +96.3 0 0 +96.1963 0.343878 0.765831 +96.1853 0.687728 1.5316 +97.0667 1.04118 2.31875 +97.0408 1.38811 3.09139 +96.1084 1.71887 3.82799 +96.9669 2.08164 4.63591 +96.9189 2.42818 5.40767 +96.9632 2.77739 6.18538 +96.0031 3.09497 6.89263 +96.8301 3.47016 7.7282 +96.7525 3.81616 8.49875 +96.5681 4.15757 9.2591 +96.7739 4.51653 10.0585 +96.4755 4.8523 10.8063 +96.3684 5.19696 11.5739 +96.155 5.53555 12.3279 +96.0334 5.87907 13.0929 +96.6947 6.27337 13.9711 +96.5574 6.61881 14.7404 +96.3142 6.95658 15.4926 +96.1623 7.30059 16.2587 +96.0031 7.64406 17.0237 +95.9346 7.99511 17.8055 +95.6628 8.32924 18.5496 +95.5794 8.67971 19.3301 +96.2678 9.104 20.275 +96.0701 9.44776 21.0406 +95.8652 9.79082 21.8046 +96.4275 10.2152 22.7496 +96.2062 10.5595 23.5164 +96.074 10.9139 24.3058 +96.6068 11.3473 25.2709 +96.3614 11.6921 26.0389 +96.1086 12.0362 26.8051 +95.8486 12.3792 27.5691 +96.2469 12.81 28.5285 +95.9704 13.1536 29.2936 +96.4429 13.6028 30.2941 +96.1494 13.947 31.0607 +96.6004 14.4023 32.0746 +96.2899 14.747 32.8423 +96.9056 15.2375 33.9346 +96.5773 15.5833 34.7047 +96.2417 15.928 35.4723 +96.8226 16.4281 36.5861 +96.561 16.7896 37.3912 +96.1996 17.1341 38.1585 +95.9223 17.494 38.9599 +96.3649 17.9891 40.0625 +95.978 18.3329 40.8282 +97.1182 18.9751 42.2583 +96.171 19.2138 42.7899 +96.2949 19.6665 43.7981 +96.6742 20.1773 44.9358 +96.2407 20.5221 45.7036 +95.7115 20.8461 46.4252 +96.1426 21.3829 47.6207 +96.2956 21.8648 48.6938 +96.6095 22.3897 49.8629 +96.1288 22.7342 50.6301 +96.3301 23.2433 51.7638 +95.8313 23.5868 52.5288 +96.0073 24.0996 53.6709 +95.4902 24.4419 54.4332 +95.6406 24.9584 55.5834 +95.7762 25.4778 56.7402 +95.9803 26.0226 57.9536 +95.9196 26.5022 59.0215 +95.3514 26.8441 59.7829 +95.5131 27.3953 61.0106 +95.6586 27.9498 62.2455 +95.7067 28.4833 63.4336 +95.8197 29.0436 64.6814 +95.1175 29.3604 65.3869 +95.2024 29.9237 66.6414 +95.1917 30.4646 67.8461 +95.3217 31.0587 69.1692 +95.2004 31.5787 70.3272 +95.1413 32.1263 71.5466 +95.8322 32.9391 73.3568 +95.1268 33.2804 74.117 +95.0934 33.861 75.41 +95.4919 34.6068 77.0709 +95.5684 35.2483 78.4996 +94.8139 35.5886 79.2574 +95.3685 36.429 81.1291 +95.2417 37.0223 82.4504 +94.9529 37.5606 83.649 +94.791 38.1569 84.9772 +94.823 38.8419 86.5026 +95.2536 39.7053 88.4254 +94.4041 40.0443 89.1804 +94.6488 40.8556 90.9873 +94.3204 41.432 92.2708 +94.7177 42.3413 94.296 +94.3474 42.9218 95.5887 +94.6884 43.8406 97.6349 +94.3413 44.4554 99.0042 +93.9751 45.0715 100.376 +93.847 45.8133 102.028 +94.0124 46.7161 104.039 +93.5799 47.3371 105.422 +93.6262 48.2145 107.376 +93.7037 49.1284 109.411 +93.384 49.8514 111.021 +93.4619 50.805 113.145 +93.4467 51.7299 115.205 +93.5754 52.7581 117.495 +93.4932 53.6908 119.572 +93.6077 54.7612 121.956 +93.457 55.7013 124.049 +92.4346 56.1351 125.015 +91.8975 56.8732 126.659 +114.864 72.4529 161.356 +115.036 73.966 164.726 +114.939 75.3473 167.802 +115.054 76.9076 171.277 +114.905 78.3343 174.454 +114.957 79.9421 178.035 +114.65 81.3434 181.155 +114.538 82.9266 184.681 +114.561 84.6585 188.538 +114.375 86.2884 192.168 +114.692 88.3578 196.777 +114.929 90.4358 201.405 +114.678 92.1935 205.319 +113.111 92.9301 206.959 +110.294 92.6314 206.294 +108.23 92.9481 207 +105.19 92.4033 205.786 +103.217 92.7756 206.615 +100.179 92.1682 205.263 +98.2119 92.5229 206.053 +95.5338 92.1915 205.315 +93.6044 92.5675 206.152 +90.6923 91.949 204.775 +91.0756 94.7091 210.921 +90.8104 96.9046 215.811 +90.2835 98.9139 220.286 +90.0539 101.35 225.711 +89.6939 103.753 231.063 +89.3685 106.316 236.771 +89.3847 109.429 243.702 +89.0587 112.276 250.043 +88.8285 115.403 257.007 +88.5302 118.615 264.16 +88.6696 122.619 273.078 +88.2315 126.042 280.701 +88.055 130.063 289.655 +87.7397 134.131 298.717 +87.7081 138.921 309.384 +87.237 143.323 319.188 +86.8183 148.13 329.893 +86.6062 153.664 342.216 +86.2512 159.366 354.916 +85.7428 165.238 367.992 +84.7114 170.556 379.835 +83.0592 175.034 389.808 +84.2475 186.199 414.673 +83.9415 195.005 434.284 +79.1733 193.802 431.606 +75.683 195.737 435.915 +70.579 193.448 430.816 +67.0814 195.518 435.427 +61.9999 192.907 429.613 +58.4607 195.032 434.346 +53.681 192.996 429.81 +49.996 194.851 433.941 +45.2775 192.616 428.965 +41.6343 194.933 434.125 +36.9778 192.461 428.62 +28.1537 164.922 367.289 +24.1142 161.5 359.668 +20.6832 161.662 360.028 +19.21 180.227 401.374 +16.5563 194.208 432.51 +12.3058 192.499 428.704 +8.28466 194.42 432.981 +4.09711 192.312 428.287 +2.90354e-14 194.244 432.591 +-4.10234 192.557 428.834 +-8.27593 194.215 432.525 +-12.2848 192.171 427.974 +-16.5284 193.88 431.78 +-20.488 192.218 428.078 +-24.802 193.856 431.725 +-28.6989 192.206 428.05 +-33.1343 194.098 432.265 +-36.8522 191.808 427.165 +-41.3728 193.709 431.399 +-45.1146 191.923 427.421 +-49.6824 193.628 431.219 +-53.364 191.856 427.272 +-58.0342 193.609 431.177 +-61.53 191.445 426.357 +-66.3995 193.53 431.001 +-69.8695 191.503 426.486 +-74.7287 193.269 430.419 +-78.117 191.217 425.848 +-83.0559 192.947 429.703 +-86.4161 190.991 425.347 +-91.5311 192.887 429.568 +-94.9988 191.268 425.962 +-100.338 193.365 430.633 +-103.393 191.04 425.454 +-108.831 193.097 430.036 +-111.96 191.028 425.429 +-117.381 192.846 429.477 +-120.683 191.15 425.701 +-126.278 193.046 429.922 +-129.504 191.285 426 +-135.062 192.941 429.688 +-138.685 191.783 427.11 +-146.069 195.707 435.848 +-149.331 194.005 432.058 +-148.514 187.231 416.971 +-149.704 183.274 408.16 +-161.612 192.26 428.171 +-165.301 191.211 425.836 +-171.044 192.499 428.705 +-174.193 190.845 425.02 +-181.191 193.351 430.6 +-185.083 192.467 428.633 +-464.587 471.024 1048.99 +-457.881 452.808 1008.42 +-200.64 193.621 431.203 +-204.04 192.221 428.084 +-452.861 416.646 927.89 +-214.106 192.447 428.589 +-457.611 401.986 895.24 +-145.384 124.855 278.058 +-146.153 122.747 273.364 +-147.022 120.791 269.006 +-151.451 121.757 271.158 +-474.031 373.007 830.703 +-112.626 86.7664 193.233 +-112.085 84.5606 188.32 +-113.106 83.5836 186.144 +-113.947 82.4985 183.728 +-115.25 81.769 182.103 +-117.292 81.5654 181.65 +-118.768 80.9678 180.319 +-121.272 81.064 180.533 +-123.047 80.6622 179.638 +-127.447 81.9464 182.498 +-505.371 318.771 709.918 +-509.659 315.416 702.445 +-512.5 311.239 693.142 +-516.732 307.977 685.878 +-519.775 304.071 677.181 +-523.562 300.668 669.601 +-526.832 297.028 661.495 +-530.522 293.685 654.05 +-533.87 290.207 646.304 +-537.962 287.183 639.568 +-540.735 283.506 631.38 +-545.385 280.857 625.48 +-548.075 277.241 617.428 +-552.434 274.513 611.352 +-556.268 271.555 604.765 +-560.019 268.59 598.163 +-563.292 265.435 591.135 +-568.329 263.135 586.013 +-570.969 259.754 578.483 +-575.265 257.159 572.706 +-578.403 254.075 565.835 +-583.174 251.73 560.614 +-585.875 248.516 553.456 +-591.147 246.412 548.771 +-134.704 55.1782 122.884 +-134.804 54.2639 120.848 +-602.231 238.225 530.538 +-607.283 236.063 525.723 +-610.022 233.017 518.94 +-614.963 230.828 514.064 +-618.891 228.265 508.355 +-622.457 225.582 502.382 +-613.503 218.457 486.514 +-617.222 215.937 480.901 +-616.359 211.853 471.806 +-140.744 47.5251 105.841 +-143.073 47.4584 105.692 +-144 46.9197 104.492 +-143.26 45.8481 102.106 +-142.724 44.8605 99.9064 +-142.477 43.979 97.9432 +-144.694 43.8578 97.6732 +-148.374 44.1576 98.341 +-661.55 193.294 430.473 +-665.233 190.804 424.929 +-390.059 109.812 244.557 +-383.181 105.871 235.78 +-383.504 103.978 231.563 +-382.434 101.732 226.563 +-382.225 99.7454 222.137 +-383.911 98.2667 218.844 +-382.068 95.9064 213.588 +-382.725 94.1995 209.786 +-382.133 92.2038 205.342 +-385.295 91.1211 202.931 +-719.697 166.793 371.456 +-739.753 167.968 374.072 +-724.497 161.134 358.853 +-735.319 160.154 356.669 +-408.291 87.063 193.893 +-410.487 85.6744 190.801 +-409.253 83.5824 186.142 +-411.198 82.1524 182.957 +-406.976 79.5152 177.084 +-407.929 77.9189 173.529 +-411.939 76.8998 171.259 +-408.812 74.5579 166.044 +-412.494 73.4692 163.619 +-408.98 71.1118 158.369 +-404.936 68.7065 153.012 +-407.312 67.41 150.125 +-406.592 65.606 146.107 +-404.52 63.607 141.656 +-406.984 62.3306 138.813 +-408.86 60.9576 135.755 +-404.582 58.687 130.699 +-385.393 54.3581 121.058 +-384.261 52.6663 117.29 +-382.515 50.9111 113.381 +-381.582 49.2828 109.755 +-380.801 47.6894 106.206 +-382.09 46.3614 103.249 +-380.467 44.6889 99.5242 +-381.887 43.3822 96.6141 +-381.927 41.9198 93.3573 +-380.579 40.3171 89.788 +-380.259 38.8362 86.4901 +-380.975 37.4659 83.4383 +-381.271 36.0566 80.2996 +-381.146 34.6125 77.0836 +-380.891 33.1636 73.8568 +-381.289 31.7763 70.7673 +-379.595 30.2245 67.3114 +-380.225 28.8665 64.287 +-382.302 27.6129 61.4952 +-380.114 26.056 58.0278 +-380.161 24.6642 54.9283 +-380.672 23.3043 51.8998 +-379.471 21.8458 48.6515 +-380.417 20.5152 45.6883 +-379.748 19.0997 42.5358 +-380.737 17.7693 39.5731 +-378.813 16.3092 36.3213 +-378.748 14.9387 33.2693 +-378.255 13.5557 30.1892 +-380.424 12.2642 27.3129 +-379.673 10.8753 24.2197 +-380.888 9.54267 21.252 +-380.678 8.17223 18.1999 +-378.04 6.76111 15.0573 +-378.569 5.41521 12.0599 +-146.05 1.56659 3.48887 +-142.878 1.02159 2.27512 +-144.395 0.516173 1.14954 +96.2 0 0 +96.0963 0.350408 0.761904 +96.1853 0.701517 1.52533 +96.167 1.05221 2.28786 +97.0408 1.41595 3.07874 +96.9077 1.76791 3.84403 +96.9669 2.12338 4.61694 +96.1204 2.45646 5.34117 +96.0654 2.80685 6.10304 +96.8007 3.18325 6.92146 +96.7305 3.53609 7.68865 +96.7525 3.89267 8.46398 +96.6675 4.24532 9.23076 +96.7739 4.60709 10.0174 +96.4755 4.94959 10.7621 +96.3684 5.30116 11.5265 +96.2541 5.65235 12.2901 +96.0334 5.99694 13.0394 +95.9045 6.34688 13.8003 +95.6697 6.68943 14.5451 +96.3142 7.09607 15.4292 +96.1623 7.44697 16.1922 +96.0031 7.79733 16.954 +95.9346 8.15541 17.7326 +95.6628 8.49625 18.4737 +95.5794 8.85375 19.251 +95.3908 9.20193 20.0081 +96.0701 9.6372 20.9545 +95.7682 9.97702 21.6934 +96.4275 10.42 22.6565 +96.2062 10.7712 23.4202 +95.9776 11.1216 24.182 +95.8378 11.4826 24.9671 +96.3614 11.9266 25.9324 +96.1086 12.2775 26.6954 +95.8486 12.6275 27.4563 +96.2469 13.0669 28.4117 +95.9704 13.4173 29.1737 +96.4429 13.8756 30.1702 +96.1494 14.2267 30.9336 +96.6944 14.7054 31.9744 +96.2899 15.0427 32.7079 +96.999 15.558 33.8282 +96.5773 15.8957 34.5627 +96.4271 16.2786 35.3952 +96.915 16.7735 36.4712 +96.4689 17.1099 37.2027 +96.1996 17.4777 38.0024 +96.6531 17.9807 39.0961 +96.5469 18.3845 39.974 +96.1593 18.7358 40.7379 +96.3961 19.2116 41.7725 +95.9912 19.5624 42.5352 +96.2949 20.0608 43.6189 +96.5851 20.5629 44.7107 +96.8616 21.0686 45.8103 +96.5062 21.4406 46.6191 +96.0547 21.7917 47.3826 +96.3831 22.3234 48.5387 +96.6095 22.8386 49.6589 +96.0422 23.1691 50.3775 +96.3301 23.7093 51.552 +95.8313 24.0597 52.3138 +96.0073 24.5828 53.4513 +96.1687 25.1091 54.5956 +95.5563 25.4363 55.3071 +95.6084 25.9431 56.409 +95.063 26.2907 57.1649 +96.0855 27.0803 58.8817 +95.3514 27.3823 59.5383 +95.5131 27.9446 60.761 +95.6586 28.5102 61.9908 +95.7067 29.0544 63.174 +95.8197 29.626 64.4168 +95.0376 29.9239 65.0647 +95.8371 30.7272 66.8112 +95.1917 31.0754 67.5685 +95.2434 31.6554 68.8296 +95.2004 32.2119 70.0395 +95.8358 33.0096 71.774 +95.2193 33.3847 72.5895 +95.1268 33.9477 73.8137 +95.0934 34.54 75.1015 +95.0425 35.1346 76.3944 +95.6427 35.983 78.2392 +95.4774 36.5562 79.4855 +95.3685 37.1595 80.7972 +95.2417 37.7647 82.1131 +95.0967 38.3717 83.433 +94.9336 38.9806 84.7569 +94.6816 39.5616 86.0203 +94.4826 40.1736 87.3509 +95.0293 41.1177 89.4037 +94.6488 41.6748 90.615 +94.3204 42.2627 91.8933 +94.7853 43.2212 93.9774 +94.4143 43.8137 95.2657 +94.6884 44.7196 97.2354 +94.2757 45.3154 98.531 +93.9751 45.9752 99.9655 +93.847 46.7319 101.611 +94.0124 47.6528 103.613 +94.1463 48.5783 105.626 +93.6262 49.1813 106.937 +93.7652 50.1465 109.035 +93.5058 50.9174 110.711 +93.6424 51.924 112.9 +93.4467 52.7672 114.734 +93.3991 53.7144 116.793 +93.4351 54.7331 119.008 +93.5503 55.8249 121.382 +93.5137 56.8524 123.616 +92.6583 57.3993 124.805 +91.8975 58.0135 126.141 +114.156 73.4497 159.704 +115.036 75.4491 164.052 +114.939 76.8581 167.115 +115.054 78.4496 170.576 +114.802 79.8335 173.585 +114.957 81.545 177.306 +114.6 82.938 180.335 +114.587 84.6257 184.005 +114.948 86.648 188.402 +114.375 88.0185 191.382 +114.645 90.0927 195.892 +114.883 92.212 200.5 +114.769 94.1165 204.641 +113.557 95.1673 206.926 +110.645 94.7892 206.104 +108.661 95.1891 206.973 +105.528 94.5589 205.603 +103.217 94.6358 205.77 +100.911 94.7035 205.917 +98.5309 94.6847 205.876 +95.8854 94.3864 205.228 +93.9105 94.7324 205.98 +91.5539 94.6839 205.875 +90.8557 96.3749 209.551 +90.8104 98.8476 214.928 +90.5636 101.21 220.065 +89.9855 103.303 224.616 +89.794 105.952 230.375 +89.5638 108.685 236.317 +89.3847 111.623 242.705 +88.966 114.408 248.761 +88.7383 117.597 255.696 +88.5886 121.073 263.253 +88.5276 124.877 271.524 +88.3142 128.689 279.814 +88.0016 132.59 288.296 +87.9467 137.144 298.197 +87.7332 141.747 308.206 +87.1887 146.116 317.705 +87.0284 151.466 329.339 +86.6736 156.867 341.082 +86.381 162.807 353.996 +85.722 168.51 366.398 +84.0535 172.624 375.343 +82.0097 176.287 383.308 +84.6848 190.918 415.121 +82.8475 196.322 426.871 +78.2656 195.422 424.913 +74.4159 196.319 426.862 +69.8104 195.177 424.381 +65.9124 195.963 426.088 +61.4387 194.994 423.982 +57.4736 195.584 425.265 +53.1263 194.831 423.628 +49.1388 195.35 424.756 +44.8462 194.607 423.14 +40.9022 195.345 424.746 +36.1932 192.155 417.809 +27.9375 166.937 362.976 +24.1142 164.738 358.196 +20.6832 164.903 358.555 +19.9995 191.397 416.161 +16.326 195.346 424.747 +12.1749 194.27 422.409 +8.15376 195.184 424.397 +4.04911 193.87 421.538 +2.85701e-14 194.963 423.916 +-4.0526 194.037 421.901 +-8.15027 195.101 424.215 +-12.1566 193.978 421.773 +-16.2981 195.012 424.021 +-20.2743 194.027 421.879 +-24.42 194.696 423.335 +-28.3754 193.849 421.493 +-32.5763 194.655 423.246 +-36.4992 193.779 421.341 +-40.7453 194.596 423.117 +-44.6737 193.858 421.512 +-48.8671 194.269 422.407 +-52.764 193.503 420.74 +-57.1323 194.423 422.74 +-60.9035 193.295 420.289 +-65.3696 194.349 422.58 +-69.1009 193.194 420.068 +-73.6024 194.172 422.196 +-77.3083 193.031 419.715 +-81.7883 193.812 421.412 +-85.7418 193.301 420.301 +-90.0809 193.637 421.032 +-94.0219 193.097 419.857 +-98.5917 193.809 421.407 +-102.376 192.953 419.544 +-107.054 193.753 421.284 +-110.957 193.111 419.889 +-115.614 193.753 421.285 +-119.281 192.718 419.034 +-124.363 193.93 421.669 +-127.927 192.745 419.092 +-132.857 193.596 420.943 +-136.64 192.744 419.09 +-143.467 196.074 426.332 +-147.707 195.743 425.611 +-148.637 191.144 415.61 +-148.435 185.364 403.044 +-154.677 187.7 408.122 +-163.165 192.525 418.613 +-168.206 193.1 419.865 +-171.637 191.814 417.069 +-177.249 192.937 419.509 +-183.471 194.615 423.159 +-466.011 481.943 1047.91 +-455.317 459.301 998.674 +-195.874 192.811 419.236 +-201.927 194.044 421.916 +-206.744 194.025 421.876 +-210.789 193.264 420.221 +-216.55 194.041 421.91 +-145.986 127.887 278.068 +-145.671 124.795 271.347 +-147.781 123.848 269.288 +-151.996 124.645 271.02 +-474.862 381.153 828.755 +-111.969 87.9897 191.319 +-111.703 85.9623 186.911 +-112.961 85.1496 185.144 +-114.045 84.2254 183.134 +-115.45 83.5531 181.672 +-117.495 83.345 181.22 +-119.128 82.8419 180.126 +-121.115 82.5824 179.562 +-123.63 82.6694 179.751 +-127.662 83.7307 182.059 +-506.133 325.654 708.081 +-510.155 322.054 700.253 +-512.892 317.721 690.833 +-516.732 314.152 683.072 +-520.119 310.373 674.856 +-523.33 306.56 666.565 +-527.185 303.187 659.229 +-531.117 299.909 652.104 +-534.592 296.426 644.53 +-538.51 293.239 637.6 +-541.536 289.618 629.727 +-545.136 286.357 622.637 +-549.019 283.287 615.961 +-553.006 280.307 609.482 +-556.461 277.096 602.5 +-560.409 274.166 596.13 +-563.752 270.977 589.196 +-568.13 268.317 583.411 +-571.705 265.304 576.859 +-575.67 262.5 570.764 +-579.494 259.658 564.583 +-584 257.141 559.111 +-587.056 254.01 552.303 +-591.357 251.442 546.72 +-595.242 248.715 540.79 +-133.948 55.0005 119.59 +-134.732 54.365 118.208 +-607.138 240.739 523.447 +-611.265 238.174 517.87 +-615.332 235.597 512.268 +-619.337 233.009 506.64 +-623.581 230.52 501.228 +-627.692 227.991 495.729 +-631.441 225.341 489.967 +-617.891 216.638 471.043 +-141.67 48.7969 106.101 +-143.383 48.5152 105.488 +-143.296 47.6261 103.555 +-143.182 46.7419 101.633 +-142.645 45.7345 99.4422 +-143.115 45.0618 97.9795 +-146.382 45.259 98.4083 +-148.778 45.1658 98.2057 +-661.469 197.145 428.659 +-666.298 194.941 423.868 +-384.208 110.334 239.903 +-385.42 108.625 236.187 +-381.753 105.578 229.562 +-381.176 103.431 224.894 +-381.55 101.566 220.838 +-384.166 100.303 218.093 +-383.944 98.3095 213.758 +-382.897 96.1313 209.022 +-384.459 94.6254 205.747 +-384.082 92.6557 201.465 +-720.48 170.323 370.339 +-740.366 171.477 372.849 +-724.497 164.365 357.385 +-735.672 163.443 355.381 +-742.162 161.43 351.003 +-411.021 87.5063 190.268 +-755.056 157.298 342.019 +-760.2 154.924 336.856 +-409.774 81.6674 177.572 +-408.201 79.5343 172.934 +-410.302 78.1295 169.88 +-408.538 76.0019 165.254 +-409.284 74.3594 161.682 +-405.666 71.9497 156.443 +-407.154 70.4681 153.221 +-405.272 68.4173 148.762 +-407.058 66.9979 145.676 +-404.8 64.9271 141.173 +-405.298 63.3172 137.673 +-407.639 61.9939 134.795 +-405.147 59.9473 130.346 +-385.015 55.3933 120.444 +-383.881 53.6693 116.695 +-382.515 51.9319 112.917 +-381.296 50.2334 109.224 +-380.896 48.6581 105.799 +-381.227 47.1844 102.595 +-381.429 45.7003 99.3677 +-381.405 44.196 96.097 +-380.575 42.6091 92.6465 +-380.192 41.0836 89.3296 +-380.259 39.6149 86.1362 +-381.363 38.2562 83.1818 +-382.733 36.9205 80.2777 +-382.025 35.3879 76.9452 +-382.358 33.9589 73.838 +-380.309 32.3301 70.2966 +-380.086 30.8704 67.1226 +-379.34 29.3768 63.875 +-379.939 27.9925 60.865 +-380.509 26.606 57.8505 +-381.05 25.2176 54.8314 +-380.672 23.7716 51.6874 +-380.758 22.3594 48.6169 +-379.922 20.8993 45.4421 +-379.947 19.4928 42.384 +-379.843 18.083 39.3186 +-379.311 16.6581 36.2202 +-378.848 15.2423 33.1419 +-379.152 13.8603 30.137 +-379.925 12.4937 27.1655 +-379.274 11.0817 24.0953 +-378.992 9.68554 21.0596 +-378.281 8.28361 18.0113 +-378.739 6.90942 15.0234 +-379.169 5.53256 12.0296 +-145.25 1.58925 3.45557 +-145.178 1.05884 2.30227 +-143.995 0.525064 1.14167 +96.2 0 0 +96.0963 0.357267 0.758712 +96.1853 0.71525 1.51894 +96.167 1.07281 2.27827 +96.1414 1.43028 3.03743 +96.9077 1.80252 3.82792 +96.9669 2.16495 4.5976 +96.9189 2.52535 5.36298 +96.9632 2.88854 6.13426 +96.8007 3.24556 6.89246 +96.8301 3.60903 7.66433 +95.8567 3.93212 8.35047 +96.6675 4.32843 9.19208 +96.5752 4.68764 9.95494 +96.4755 5.04648 10.717 +96.3684 5.40493 11.4782 +96.2541 5.763 12.2386 +96.9236 6.17099 13.1051 +96.7935 6.53111 13.8698 +96.5574 6.88368 14.6186 +96.3142 7.23497 15.3646 +95.9657 7.57724 16.0914 +96.0031 7.94996 16.883 +95.9346 8.31506 17.6583 +95.6628 8.66256 18.3963 +95.4817 9.01786 19.1508 +95.3908 9.38206 19.9243 +95.9729 9.81592 20.8456 +95.7682 10.1723 21.6025 +96.5243 10.6346 22.5843 +96.2062 10.9821 23.3221 +96.074 11.3507 24.105 +96.6068 11.8014 25.062 +96.3614 12.16 25.8237 +96.1086 12.5178 26.5836 +96.5162 12.9643 27.5317 +96.2469 13.3226 28.2927 +95.9704 13.6799 29.0515 +96.5374 14.161 30.0732 +96.2437 14.5194 30.8342 +96.6944 14.9932 31.8404 +96.3836 15.3521 32.6026 +96.999 15.8625 33.6865 +96.6704 16.2225 34.4511 +96.3344 16.5813 35.2129 +95.9911 16.9388 35.9722 +96.4689 17.4448 37.0468 +96.1996 17.8198 37.8431 +96.7445 18.35 38.9691 +96.3649 18.709 39.7315 +96.1593 19.1025 40.5672 +96.3961 19.5877 41.5975 +96.7102 20.0947 42.6742 +96.2054 20.4345 43.3958 +96.5851 20.9654 44.5234 +96.152 21.3237 45.2841 +95.7998 21.7004 46.0841 +96.0547 22.2183 47.184 +96.2956 22.7398 48.2914 +95.7391 23.0759 49.0053 +96.1288 23.644 50.2117 +96.3301 24.1734 51.3361 +95.8313 24.5307 52.0947 +96.0925 25.0863 53.2747 +96.1687 25.6006 54.3668 +95.6406 25.9572 55.1241 +95.7762 26.4974 56.2713 +95.9803 27.064 57.4746 +95.9196 27.5628 58.5338 +95.5162 27.9666 59.3914 +95.5131 28.4916 60.5064 +95.6586 29.0683 61.731 +95.7067 29.6231 62.9093 +95.7394 30.1805 64.0931 +95.1175 30.5353 64.8465 +95.8371 31.3287 66.5313 +95.1129 31.6575 67.2296 +95.3217 32.3016 68.5976 +95.2004 32.8424 69.746 +94.987 33.3577 70.8403 +95.1427 34.0108 72.2272 +95.1268 34.6122 73.5045 +95.0934 35.2161 74.7868 +95.6416 36.0482 76.5539 +94.8996 36.4024 77.3061 +94.8139 37.0128 78.6024 +95.2223 37.8288 80.3352 +95.2417 38.5039 81.769 +94.9529 39.0637 82.9577 +94.9336 39.7436 84.4017 +94.6816 40.336 85.6598 +95.1134 41.2334 87.5656 +95.0293 41.9226 89.0291 +94.7864 42.5524 90.3666 +94.3886 43.1211 91.5743 +94.7177 44.0357 93.5168 +94.4143 44.6714 94.8666 +94.0258 45.2759 96.1504 +94.3413 46.2344 98.186 +94.3648 47.0694 99.9592 +93.847 47.6467 101.185 +93.9488 48.5528 103.109 +94.1463 49.5292 105.183 +93.6885 50.1776 106.56 +93.7652 51.1281 108.578 +93.6275 51.9818 110.391 +93.5822 52.9063 112.355 +93.3872 53.766 114.18 +93.5754 54.8694 116.524 +93.5512 55.8739 118.657 +93.493 56.8827 120.799 +93.0039 57.6496 122.428 +92.9379 58.6993 124.657 +91.8423 59.1138 125.537 +103.264 67.7419 143.861 +115.036 76.926 163.364 +114.886 78.3263 166.338 +115.054 79.9853 169.861 +114.802 81.3962 172.858 +114.957 83.1412 176.563 +114.6 84.5615 179.58 +114.538 86.2452 183.155 +114.464 87.9718 186.822 +114.804 90.0785 191.296 +114.645 91.8562 195.071 +114.929 94.0549 199.74 +115.314 96.4146 204.751 +113.557 97.0302 206.059 +111.039 96.9893 205.972 +108.575 96.9753 205.942 +105.908 96.7576 205.48 +103.59 96.8372 205.649 +101.237 96.8683 205.715 +98.5708 96.5769 205.096 +96.2371 96.5867 205.117 +93.8722 96.5475 205.034 +91.5913 96.5765 205.095 +90.7824 98.1817 208.504 +90.7388 100.703 213.859 +90.3535 102.952 218.634 +90.0197 105.366 223.76 +89.7273 107.945 229.238 +89.6289 110.893 235.498 +89.353 113.767 241.602 +89.0587 116.769 247.977 +88.6781 119.818 254.452 +88.6471 123.525 262.324 +88.5276 127.321 270.387 +88.2591 131.127 278.468 +88.0016 135.186 287.088 +87.7397 139.499 296.248 +87.5078 144.151 306.127 +87.1887 148.976 316.374 +86.8417 154.1 327.255 +86.6961 159.979 339.74 +86.2295 165.702 351.894 +85.7636 171.892 365.04 +83.914 175.711 373.15 +81.6472 178.944 380.015 +84.6302 194.53 413.114 +82.0314 198.193 420.894 +77.8365 198.154 420.812 +73.7432 198.352 421.232 +69.367 197.734 419.919 +65.4253 198.322 421.167 +61.0993 197.713 419.874 +57.1323 198.229 420.969 +52.8206 197.502 419.427 +48.8148 197.861 420.188 +44.6737 197.653 419.746 +40.6233 197.811 420.083 +34.1768 185.001 392.879 +27.9096 170.034 361.094 +24.1508 168.218 357.238 +21.1804 172.173 365.636 +20.174 196.846 418.033 +16.2003 197.637 419.713 +12.0885 196.668 417.654 +8.09268 197.514 419.452 +4.03253 196.855 418.052 +2.83496e-14 197.246 418.883 +-4.03166 196.813 417.962 +-8.07872 197.173 418.728 +-12.0833 196.582 417.473 +-16.155 197.083 418.537 +-20.1478 196.59 417.49 +-24.2525 197.146 418.67 +-28.2349 196.666 417.65 +-32.2972 196.766 417.862 +-36.2873 196.426 417.14 +-40.4403 196.92 418.19 +-44.3766 196.338 416.954 +-48.543 196.759 417.848 +-52.5037 196.317 416.91 +-56.6083 196.41 417.108 +-60.7077 196.446 417.183 +-64.9243 196.803 417.942 +-68.7609 196.006 416.25 +-72.9923 196.332 416.942 +-76.9287 195.844 415.905 +-81.25 196.306 416.885 +-85.1951 195.828 415.872 +-89.5467 196.257 416.782 +-93.3839 195.541 415.261 +-97.7393 195.894 416.012 +-101.813 195.649 415.49 +-106.199 195.968 416.169 +-110.023 195.235 414.611 +-114.695 195.975 416.184 +-118.705 195.542 415.263 +-123.25 195.957 416.145 +-127.018 195.122 414.372 +-131.865 195.912 416.049 +-135.958 195.537 415.252 +-142.443 198.487 421.517 +-146.985 198.6 421.757 +-148.761 195.048 414.214 +-148.276 188.791 400.926 +-152.626 188.836 401.023 +-161.596 194.406 412.851 +-166.974 195.439 415.045 +-171.286 195.17 414.473 +-177.535 197.031 418.427 +-456.257 493.448 1047.91 +-187.715 197.933 420.341 +-451.911 464.79 987.053 +-195.053 195.762 415.731 +-199.574 195.537 415.254 +-205.158 196.306 416.885 +-209.005 195.38 414.92 +-216.676 197.955 420.388 +-145.642 130.082 276.25 +-145.364 126.97 269.641 +-148.405 126.806 269.293 +-152.586 127.578 270.932 +-476.109 389.635 827.449 +-112.063 89.7875 190.678 +-112.18 88.0195 186.923 +-112.912 86.7794 184.29 +-114.439 86.171 182.998 +-116.05 85.6313 181.851 +-117.444 84.9398 180.383 +-119.18 84.5002 179.449 +-121.376 84.3805 179.195 +-124.001 84.5402 179.534 +-128.253 85.765 182.135 +-506.623 332.35 705.796 +-509.659 328.038 696.639 +-513.507 324.329 688.764 +-517.242 320.618 680.881 +-520.635 316.763 672.695 +-524.084 313.012 664.729 +-527.185 309.121 656.467 +-531.474 305.986 649.808 +-535.134 302.535 642.481 +-538.51 298.979 634.929 +-542.09 295.589 627.73 +-545.883 292.363 620.878 +-549.019 288.832 613.38 +-553.579 286.09 607.557 +-557.04 282.814 600.599 +-560.604 279.63 593.839 +-564.342 276.571 587.342 +-568.13 273.569 580.967 +-572.307 270.782 575.048 +-576.076 267.827 568.772 +-580.108 265.021 562.813 +-584.344 262.329 557.096 +-587.681 259.258 550.574 +-592.128 256.699 545.14 +-595.525 253.704 538.78 +-599.844 251.123 533.298 +-134.948 55.5178 117.901 +-607.719 245.686 521.752 +-612.143 243.185 516.441 +-615.553 240.295 510.304 +-619.857 237.77 504.941 +-623.955 235.174 499.429 +-627.466 232.37 493.474 +-632.202 230.029 488.502 +-629.076 224.876 477.56 +-141.979 49.8603 105.886 +-143.228 49.4112 104.932 +-143.374 48.5852 103.178 +-142.236 47.3421 100.538 +-142.804 46.6817 99.1359 +-142.796 45.8416 97.3518 +-146.382 46.145 97.996 +-148.616 45.9997 97.6875 +-662.69 201.375 427.651 +-384.674 114.748 243.686 +-388.823 113.845 241.767 +-383.927 110.322 234.287 +-384.255 108.35 230.099 +-385.034 106.523 226.219 +-380.791 103.348 219.476 +-381.282 101.5 215.55 +-382.409 99.8334 212.012 +-384.354 98.3858 208.938 +-388.767 97.5585 207.181 +-715.077 175.881 373.512 +-719.958 173.531 368.52 +-740.278 174.813 371.243 +-725.464 167.806 356.363 +-737.261 167.003 354.656 +-743.138 164.806 349.992 +-407.814 88.5226 187.992 +-407.643 86.5851 183.877 +-409.311 85.0476 180.612 +-412.12 83.7427 177.841 +-407.113 80.8752 171.751 +-780.747 151.58 321.904 +-405.523 76.9175 163.346 +-405.065 75.0332 159.345 +-409.533 74.0572 157.272 +-405.029 71.4721 151.782 +-407.312 70.1076 148.884 +-405.011 67.966 144.336 +-406.388 66.4579 141.134 +-406.516 64.7504 137.508 +-406.887 63.0911 133.984 +-404.959 61.0922 129.739 +-387.095 56.7831 120.588 +-382.174 54.4766 115.69 +-381.659 52.83 112.193 +-382.059 51.3194 108.985 +-380.801 49.5978 105.329 +-381.898 48.1924 102.344 +-381.621 46.6183 99.0011 +-381.116 45.0271 95.622 +-381.154 43.5092 92.3985 +-381.063 41.9839 89.1593 +-381.908 40.5656 86.1474 +-381.461 39.015 82.8543 +-380.881 37.4612 79.5546 +-380.17 35.9055 76.2508 +-380.499 34.4553 73.1712 +-381.583 33.0734 70.2365 +-379.301 31.4097 66.7034 +-380.225 30.0217 63.7557 +-381.318 28.644 60.8299 +-379.227 27.0354 57.4139 +-382.433 25.8045 54.7998 +-381.167 24.2684 51.5377 +-380.56 22.7852 48.3879 +-380.417 21.3362 45.3107 +-379.45 19.8484 42.1512 +-380.737 18.4804 39.2461 +-378.913 16.9663 36.0305 +-379.644 15.5733 33.0724 +-379.949 14.1613 30.0738 +-378.53 12.6915 26.9523 +-380.67 11.3402 24.0827 +-379.491 9.88817 20.9991 +-378.281 8.44576 17.9359 +-378.939 7.04838 14.9683 +-378.569 5.63191 11.9602 +-144.351 1.61033 3.41978 +-145.678 1.08329 2.30053 +-144.395 0.536829 1.14004 +96.2 0 0 +96.0963 0.364097 0.755458 +96.1853 0.728924 1.51243 +96.167 1.09332 2.2685 +96.1414 1.45763 3.0244 +96.1084 1.82183 3.78007 +96.9669 2.20633 4.57788 +96.9189 2.57363 5.33998 +96.0654 2.91651 6.0514 +95.9034 3.27696 6.79929 +96.8301 3.67802 7.63146 +96.7525 4.04475 8.39237 +96.6675 4.41118 9.15266 +96.5752 4.77726 9.91224 +96.4755 5.14296 10.671 +96.3684 5.50826 11.429 +96.2541 5.87317 12.1861 +96.0334 6.23123 12.929 +95.9045 6.59484 13.6835 +96.4587 7.00812 14.541 +96.1172 7.35823 15.2674 +95.9657 7.7221 16.0224 +96.0031 8.10195 16.8106 +95.8366 8.46538 17.5647 +96.5432 8.9094 18.4859 +95.4817 9.19026 19.0687 +96.1703 9.63957 20.001 +96.0701 10.0137 20.7772 +95.7682 10.3668 21.5099 +96.4275 10.8271 22.4648 +96.013 11.1695 23.1754 +95.9776 11.5561 23.9774 +96.6068 12.027 24.9546 +96.1696 12.3679 25.6618 +95.9174 12.7318 26.4169 +95.6578 13.0947 27.1699 +96.4371 13.6042 28.227 +95.9704 13.9415 28.9269 +95.6865 14.3046 29.6803 +96.2437 14.797 30.702 +95.7547 15.1314 31.3958 +96.2899 15.6304 32.4312 +96.999 16.1658 33.542 +96.6704 16.5327 34.3033 +97.0761 17.0284 35.3319 +96.8226 17.4122 36.1282 +96.4689 17.7783 36.8879 +96.2913 18.1778 37.7168 +96.7445 18.7008 38.802 +96.3649 19.0667 39.5611 +96.1593 19.4677 40.3932 +96.3961 19.9622 41.4191 +96.7102 20.4789 42.4912 +96.2949 20.8445 43.2499 +96.5851 21.3663 44.3324 +96.152 21.7313 45.0899 +96.5945 22.2987 46.267 +96.0547 22.6431 46.9817 +96.2956 23.1745 48.0843 +96.5224 23.7095 49.1944 +96.1288 24.096 49.9963 +96.4163 24.6576 51.1616 +95.8313 24.9996 51.8712 +96.0925 25.5659 53.0462 +96.1687 26.09 54.1337 +95.5563 26.4301 54.8392 +95.7762 27.0039 56.0299 +95.8135 27.5335 57.1288 +95.2564 27.8955 57.8798 +96.0931 28.6734 59.4938 +95.5131 29.0363 60.2469 +96.3099 29.8257 61.8848 +95.6258 30.1639 62.5866 +95.0963 30.5509 63.3895 +95.0376 31.093 64.5142 +95.2024 31.7162 65.8072 +95.1917 32.2895 66.9968 +95.3217 32.9192 68.3034 +95.2004 33.4703 69.4469 +95.1413 34.0507 70.651 +95.1427 34.661 71.9174 +95.1268 35.2739 73.1892 +94.9425 35.8324 74.3479 +95.0425 36.5072 75.748 +95.4198 37.3017 77.3965 +94.8139 37.7204 78.2653 +94.564 38.2855 79.4378 +95.2417 39.24 81.4183 +94.9529 39.8105 82.6019 +94.9336 40.5034 84.0398 +94.6816 41.1072 85.2925 +95.2536 42.0837 87.3185 +94.8903 42.6616 88.5176 +94.6488 43.3029 89.8483 +94.3886 43.9455 91.1816 +94.7177 44.8776 93.1157 +94.4143 45.5254 94.4597 +94.6884 46.4667 96.4127 +94.2757 47.0858 97.6973 +93.9751 47.7713 99.1197 +94.3612 48.8237 101.303 +94.0124 49.5145 102.737 +94.0205 50.4088 104.592 +94.1242 51.3744 106.596 +93.7652 52.1056 108.113 +93.6275 52.9756 109.918 +93.4619 53.8483 111.729 +93.3277 54.7587 113.618 +93.5754 55.9184 116.024 +93.4932 56.907 118.075 +93.493 57.9702 120.281 +93.5137 59.0734 122.57 +92.9379 59.8215 124.122 +91.8975 60.28 125.074 +100.976 67.5079 140.071 +115.036 78.3967 162.664 +114.939 79.8607 165.701 +115.054 81.5144 169.133 +114.802 82.9523 172.116 +115.008 84.768 175.883 +114.6 86.1782 178.809 +114.538 87.894 182.369 +114.997 90.0713 186.887 +114.423 91.4954 189.842 +114.645 93.6123 194.234 +114.883 95.8144 198.803 +114.86 97.871 203.071 +113.513 98.8462 205.094 +110.996 98.8045 205.007 +108.962 99.1818 205.79 +106.246 98.9221 205.252 +103.59 98.6886 204.767 +101.237 98.7203 204.833 +98.8898 98.742 204.878 +96.2371 98.4333 204.237 +93.9105 98.4333 204.237 +91.6288 98.4632 204.299 +90.5991 99.8569 207.191 +90.7029 102.588 212.857 +90.3535 104.92 217.697 +89.9855 107.339 222.716 +89.8608 110.173 228.595 +89.3033 112.603 233.637 +89.0991 115.613 239.882 +88.9042 118.795 246.485 +88.6781 122.109 253.361 +88.5886 125.803 261.026 +88.5276 129.755 269.227 +88.5623 134.092 278.225 +87.9481 137.686 285.683 +87.7914 142.25 295.151 +87.7332 147.285 305.598 +87.3338 152.077 315.542 +86.8183 157.003 325.763 +86.7411 163.122 338.459 +86.3594 169.124 350.913 +85.8052 175.263 363.651 +83.914 179.07 371.549 +81.8761 182.876 379.446 +84.4662 197.865 410.545 +81.8751 201.598 418.291 +77.5889 201.301 417.675 +73.4773 201.415 417.913 +69.2339 201.128 417.316 +65.1887 201.383 417.845 +60.8383 200.632 416.287 +56.8642 201.07 417.196 +52.6169 200.501 416.016 +48.6475 200.952 416.951 +44.4149 200.265 415.525 +40.51 201.031 417.114 +32.5762 179.708 372.873 +27.9375 173.458 359.905 +24.1874 171.694 356.245 +22.2114 184.006 381.79 +20.0693 199.568 414.079 +16.1271 200.504 416.023 +12.065 200.037 415.052 +8.04381 200.075 415.132 +4.0177 199.88 414.728 +2.82639e-14 200.409 415.825 +-4.01682 199.837 414.638 +-8.05429 200.336 415.672 +-12.0492 199.776 414.512 +-16.1061 200.244 415.482 +-20.0911 199.785 414.53 +-24.1583 200.134 415.255 +-28.1067 199.515 413.97 +-32.1996 199.921 414.813 +-36.1853 199.618 414.184 +-40.3095 200.036 415.051 +-44.2424 199.487 413.911 +-48.3444 199.7 414.353 +-52.3338 199.423 413.779 +-56.4986 199.777 414.514 +-60.4597 199.383 413.697 +-64.6877 199.835 414.633 +-68.4949 198.981 412.862 +-72.7107 199.314 413.553 +-76.6481 198.86 412.61 +-80.868 199.118 413.145 +-84.94 198.974 412.848 +-89.146 199.114 413.137 +-93.2045 198.896 412.686 +-97.3858 198.918 412.73 +-101.445 198.668 412.213 +-105.817 198.996 412.892 +-109.813 198.587 412.044 +-114.139 198.753 412.39 +-118.129 198.313 411.476 +-122.887 199.116 413.143 +-126.885 198.643 412.161 +-131.479 199.073 413.053 +-135.475 198.567 412.003 +-141.946 201.575 418.245 +-146.263 201.403 417.886 +-148.761 198.776 412.437 +-147.864 191.865 398.096 +-151.617 191.174 396.663 +-160.594 196.895 408.533 +-166.701 198.849 412.588 +-171.111 198.698 412.274 +-176.066 199.136 413.184 +-181.528 200.078 415.137 +-467.097 501.939 1041.46 +-450.992 472.712 980.82 +-193.646 198.066 410.963 +-198.497 198.201 411.243 +-204.589 199.503 413.945 +-208.964 199.076 413.059 +-458.287 426.695 885.34 +-146.029 132.922 275.797 +-146.021 129.983 269.699 +-148.45 129.27 268.219 +-152.495 129.94 269.61 +-114.144 95.1983 197.525 +-112.157 91.5805 190.018 +-112.18 89.7023 186.121 +-113.009 88.5144 183.657 +-114.193 87.6291 181.82 +-115.6 86.9301 180.37 +-117.647 86.7135 179.92 +-119.592 86.4131 179.297 +-121.376 85.9937 178.427 +-124.001 86.1565 178.764 +-128.898 87.8441 182.266 +-506.569 338.667 702.693 +-510.155 334.635 694.328 +-513.507 330.53 685.81 +-516.902 326.533 677.516 +-520.635 322.819 669.81 +-524.084 318.996 661.878 +-527.949 315.488 654.6 +-531.117 311.626 646.587 +-535.375 308.458 640.012 +-538.328 304.592 631.991 +-542.09 301.24 625.038 +-545.883 297.952 618.215 +-549.774 294.759 611.59 +-553.388 291.459 604.742 +-557.425 288.42 598.437 +-560.993 285.175 591.703 +-564.932 282.153 585.434 +-568.727 279.092 579.083 +-572.709 276.152 572.983 +-576.278 273.044 566.533 +-580.108 270.088 560.399 +-584.344 267.344 554.707 +-587.889 264.308 548.407 +-591.918 261.513 542.609 +-595.95 258.739 536.852 +-600.058 256.015 531.2 +-134.301 56.3078 116.832 +-135.065 55.6474 115.462 +-611.339 247.508 513.55 +-615.553 244.889 508.116 +-619.634 242.228 502.595 +-623.73 239.584 497.108 +-627.466 236.813 491.358 +-632.658 234.596 486.758 +-634.668 231.213 479.74 +-141.979 50.8135 105.432 +-143.15 50.3285 104.426 +-143.374 49.514 102.736 +-142.394 48.3006 100.218 +-142.724 47.5477 98.6558 +-142.716 46.6915 96.8794 +-147.106 47.2599 98.0586 +-148.778 46.9303 97.3748 +-662.69 205.225 425.817 +-385.001 117.042 242.848 +-390.059 116.39 241.496 +-384.342 112.553 233.534 +-384.004 110.35 228.962 +-383.189 108.04 224.169 +-382.309 105.744 219.405 +-382.639 103.808 215.39 +-383.859 102.128 211.902 +-383.497 100.043 207.578 +-711.016 181.836 377.288 +-715.424 179.331 372.09 +-721.525 177.233 367.738 +-733.281 176.471 366.157 +-2879.62 678.817 1408.46 +-736.467 170.012 352.754 +-741.807 167.656 347.866 +-410.487 90.8063 188.412 +-407.106 88.1241 182.847 +-413.715 87.6061 181.772 +-406.615 84.2036 174.712 +-407.929 82.5863 171.357 +-408.755 80.8757 167.807 +-408.446 78.9533 163.819 +-408.734 77.1602 160.098 +-406.035 74.8287 155.261 +-407.523 73.2875 152.063 +-406.107 71.2365 147.807 +-406.592 69.5359 144.279 +-406.668 67.7749 140.625 +-406.516 65.9883 136.918 +-405.947 64.1488 133.101 +-404.959 62.2602 129.182 +-387.19 57.8825 120.099 +-382.743 55.6006 115.364 +-381.659 53.84 111.712 +-380.438 52.0786 108.057 +-381.757 50.6733 105.141 +-381.418 49.0521 101.777 +-381.429 47.4856 98.527 +-381.887 45.9808 95.4047 +-380.575 44.2737 91.8626 +-379.32 42.5908 88.3709 +-381.423 41.2886 85.6689 +-380.488 39.6595 82.2887 +-380.881 38.1774 79.2135 +-381.146 36.6858 76.1187 +-379.13 34.9877 72.5952 +-381.191 33.6711 69.8634 +-381.853 32.2256 66.8642 +-380.225 30.5956 63.4823 +-381.318 29.1916 60.5691 +-381.002 27.6813 57.4353 +-380.161 26.1416 54.2407 +-379.881 24.649 51.1436 +-379.966 23.1846 48.1052 +-379.525 21.6931 45.0106 +-380.344 20.2755 42.0692 +-379.246 18.76 38.9248 +-378.416 17.268 35.829 +-379.644 15.8711 32.9306 +-379.55 14.4169 29.9134 +-378.53 12.9341 26.8367 +-378.476 11.4904 23.8411 +-378.593 10.0533 20.8595 +-378.281 8.60722 17.859 +-378.939 7.18313 14.9041 +-378.569 5.73958 11.9089 +-144.85 1.64679 3.4169 +-145.478 1.10248 2.28752 +-145.194 0.550123 1.14144 +96.2 0 0 +96.0963 0.370898 0.752143 +96.0854 0.741769 1.50423 +96.167 1.11374 2.25854 +97.0408 1.49874 3.0393 +96.9077 1.87129 3.79478 +97.0668 2.24986 4.56248 +96.0206 2.5974 5.26727 +96.9632 2.99875 6.08115 +96.8007 3.36939 6.83278 +96.7305 3.74286 7.59014 +96.7525 4.12029 8.35553 +96.6675 4.49357 9.11249 +96.5752 4.86649 9.86874 +96.4755 5.23902 10.6242 +96.3684 5.61114 11.3788 +96.2541 5.98287 12.1327 +96.0334 6.34761 12.8723 +95.9045 6.71802 13.6234 +95.6697 7.08059 14.3587 +96.3142 7.51101 15.2316 +95.9657 7.86633 15.9521 +96.0031 8.25327 16.7368 +95.8366 8.6235 17.4876 +95.6628 8.99306 18.237 +95.4817 9.36191 18.985 +95.3908 9.74001 19.7517 +95.9729 10.1904 20.6651 +95.7682 10.5604 21.4155 +96.5243 11.0404 22.3888 +96.2062 11.4011 23.1202 +95.9776 11.7719 23.8722 +95.7417 12.1419 24.6225 +96.3614 12.624 25.6001 +96.1086 12.9954 26.3534 +95.6578 13.3393 27.0507 +96.2469 13.8309 28.0477 +96.16 14.23 28.8569 +96.5374 14.7013 29.8128 +96.2437 15.0734 30.5672 +96.6944 15.5653 31.5647 +96.2899 15.9223 32.2889 +96.999 16.4677 33.3948 +96.6704 16.8415 34.1528 +97.1689 17.363 35.2105 +96.7302 17.7205 35.9353 +96.4689 18.1104 36.726 +96.1996 18.4997 37.5155 +96.7445 19.0501 38.6317 +96.3649 19.4228 39.3874 +96.1593 19.8314 40.216 +96.3961 20.335 41.2373 +96.7102 20.8614 42.3047 +96.2949 21.2339 43.0601 +95.7832 21.5846 43.7714 +96.152 22.1372 44.892 +96.4179 22.6736 45.9798 +95.3517 22.8971 46.4331 +96.2956 23.6073 47.8733 +95.8262 23.9781 48.6251 +96.1288 24.5461 49.7769 +95.5547 24.8937 50.4819 +95.8313 25.4666 51.6436 +96.0073 26.0203 52.7665 +96.1687 26.5773 53.8961 +95.6406 26.9475 54.6468 +95.86 27.5324 55.8328 +95.8135 28.0478 56.8781 +95.9196 28.6143 58.027 +95.5162 29.0336 58.8771 +95.5131 29.5787 59.9825 +95.6586 30.1773 61.1965 +95.7067 30.7533 62.3646 +95.7394 31.332 63.5381 +95.1974 31.727 64.339 +95.2024 32.3085 65.5184 +95.9797 33.1649 67.255 +95.2434 33.5065 67.9477 +95.2004 34.0955 69.1421 +94.987 34.6304 70.2269 +95.1427 35.3084 71.6018 +94.9747 35.8753 72.7515 +94.9425 36.5016 74.0216 +95.0425 37.1891 75.4156 +94.8996 37.7912 76.6367 +94.6664 38.3652 77.8007 +95.2223 39.272 79.6396 +95.2417 39.9729 81.061 +94.9529 40.554 82.2394 +94.9336 41.2599 83.6709 +94.823 41.9375 85.045 +94.4125 42.4911 86.1677 +94.2651 43.1721 87.5485 +94.7864 44.1759 89.5842 +94.3886 44.7663 90.7814 +94.1097 45.4226 92.1124 +94.4143 46.3757 94.0452 +94.6884 47.3345 95.9896 +94.2101 47.9316 97.2004 +94.2999 48.8316 99.0256 +93.847 49.4645 100.309 +93.8851 50.3712 102.148 +94.0834 51.3844 104.202 +93.6885 52.0921 105.637 +93.7652 53.0788 107.638 +93.7493 54.035 109.577 +93.6424 54.9602 111.454 +93.3872 55.8173 113.192 +93.3991 56.8553 115.297 +93.5512 58.0057 117.63 +93.493 59.053 119.753 +93.5137 60.1768 122.032 +92.9938 60.9755 123.652 +91.8975 61.4059 124.525 +98.5252 67.0997 136.071 +115.036 79.861 161.95 +114.886 81.3147 164.898 +115.106 83.0749 168.467 +114.75 84.4637 171.284 +114.907 86.2752 174.957 +114.55 87.7493 177.947 +114.932 89.8435 182.193 +114.512 91.3667 185.282 +114.375 93.1654 188.93 +114.598 95.3219 193.303 +114.837 97.5651 197.852 +114.723 99.5805 201.939 +113.87 101.009 204.836 +110.996 100.65 204.108 +108.575 100.675 204.159 +106.246 100.77 204.351 +103.881 100.814 204.44 +101.237 100.564 203.934 +98.8898 100.586 203.979 +96.5887 100.638 204.084 +94.2549 100.64 204.087 +91.9659 100.672 204.152 +90.5258 101.64 206.115 +90.8104 104.628 212.174 +90.3885 106.921 216.826 +90.0197 109.386 221.823 +89.794 112.147 227.423 +89.3033 114.706 232.612 +89.3847 118.15 239.596 +89.1823 121.392 246.171 +88.8285 124.6 252.677 +88.5886 128.153 259.88 +88.5844 132.264 268.218 +88.2591 136.129 276.056 +88.1887 140.641 285.206 +87.7655 144.864 293.769 +87.7832 150.122 304.431 +87.3096 154.875 314.07 +86.8183 159.936 324.334 +86.7186 166.126 336.887 +86.2295 172.024 348.847 +85.7636 178.45 361.879 +83.595 181.721 368.512 +82.3341 187.334 379.894 +84.6302 201.952 409.537 +81.4757 204.361 414.424 +77.0772 203.708 413.099 +73.1175 204.173 414.042 +68.5836 202.96 411.581 +64.9243 204.312 414.323 +60.3684 202.8 411.259 +56.4255 203.245 412.161 +52.2093 202.664 410.982 +48.3444 203.43 412.535 +44.1178 202.64 410.934 +40.1962 203.199 412.068 +31.823 178.832 362.654 +28.0351 177.316 359.579 +25.1825 182.097 369.274 +23.9385 202.018 409.671 +19.9515 202.103 409.843 +16.0573 203.365 412.404 +11.9812 202.358 410.362 +8.01065 202.972 411.606 +3.98541 201.978 409.59 +2.80741e-14 202.781 411.22 +-3.98715 202.066 409.77 +-8.01415 203.06 411.785 +-11.9602 202.004 409.644 +-16.0258 202.967 411.597 +-19.9297 201.881 409.395 +-24.0222 202.724 411.104 +-27.9053 201.785 409.199 +-32.0182 202.508 410.666 +-35.895 201.716 409.059 +-40.0045 202.23 410.102 +-43.9069 201.672 408.97 +-48.1145 202.462 410.572 +-51.9829 201.785 409.2 +-56.133 202.192 410.025 +-60.0551 201.748 409.125 +-64.131 201.816 409.261 +-67.948 201.079 407.768 +-72.2101 201.639 408.903 +-76.0539 201.004 407.615 +-80.4686 201.835 409.301 +-84.047 200.56 406.715 +-88.5354 201.444 408.507 +-92.3074 200.661 406.92 +-97.0116 201.854 409.34 +-100.536 200.565 406.726 +-105.367 201.85 409.332 +-108.996 200.791 407.184 +-113.607 201.521 408.665 +-117.353 200.69 406.979 +-121.981 201.34 408.297 +-125.709 200.478 406.549 +-130.514 201.303 408.222 +-134.339 200.58 406.755 +-141.011 203.987 413.665 +-145.03 203.435 412.546 +-148.977 202.783 411.224 +-148.276 195.993 397.455 +-150.575 193.406 392.208 +-157.757 197.028 399.553 +-165.196 200.735 407.069 +-169.43 200.421 406.432 +-174.597 201.163 407.937 +-178.559 200.481 406.555 +-185.73 203.311 412.295 +-450.457 480.97 975.358 +-194.779 202.946 411.554 +-195.786 199.144 403.844 +-203.938 202.583 410.818 +-207.139 201.024 407.656 +-212.788 201.82 409.27 +-145.857 135.245 274.263 +-145.539 131.974 267.629 +-149.164 132.317 268.326 +-152.586 132.446 268.586 +-111.189 94.4656 191.567 +-111.828 93.0176 188.63 +-112.18 91.3777 185.305 +-113.494 90.5542 183.635 +-114.538 89.5356 181.569 +-116.1 88.9368 180.355 +-117.8 88.4472 179.362 +-120.004 88.3305 179.125 +-121.847 87.9395 178.332 +-124.478 88.1031 178.664 +-129.543 89.9324 182.374 +-507.222 345.438 700.513 +-510.652 341.217 691.954 +-513.675 336.814 683.023 +-517.412 332.959 675.207 +-520.635 328.848 666.871 +-524.607 325.278 659.631 +-528.478 321.703 652.38 +-532.247 318.122 645.119 +-535.676 314.395 637.561 +-539.058 310.702 630.072 +-542.398 307.041 622.648 +-546.194 303.69 615.852 +-549.774 300.265 608.906 +-554.151 297.312 602.919 +-557.618 293.909 596.017 +-561.643 290.837 589.788 +-564.932 287.423 582.865 +-568.727 284.305 576.541 +-572.709 281.31 570.468 +-576.819 278.404 564.575 +-581.131 275.617 558.924 +-584.551 272.434 552.468 +-588.515 269.531 546.582 +-592.759 266.776 540.995 +-595.95 263.572 534.496 +-600.557 261.014 529.309 +-133.797 57.1441 115.882 +-135.427 56.839 115.264 +-612.289 252.523 512.091 +-616.88 250.001 506.976 +-619.857 246.841 500.569 +-624.929 244.527 495.877 +-628.145 241.497 489.731 +-632.886 239.064 484.797 +-636.43 236.185 478.96 +-142.596 51.9877 105.426 +-142.218 50.9346 103.29 +-143.374 50.4388 102.285 +-142.236 49.1483 99.6677 +-142.09 48.2204 97.7861 +-142.157 47.3774 96.0766 +-147.106 48.1426 97.6282 +-148.859 47.8325 96.9995 +-663.179 209.213 424.262 +-390.162 120.826 245.023 +-383.96 116.711 236.677 +-383.513 114.408 232.008 +-383.921 112.386 227.908 +-385.034 110.587 224.26 +-381.129 107.386 217.768 +-381.537 105.442 213.826 +-383.944 104.058 211.019 +-382.639 101.684 206.205 +-385.838 100.518 203.84 +-716.203 182.879 370.86 +-723.614 181.066 367.184 +-726.634 178.138 361.246 +-2879.27 691.412 1402.11 +-737.438 173.416 351.67 +-743.67 171.217 347.21 +-408.259 92.0004 186.567 +-756.488 166.812 338.278 +-762.177 164.41 333.406 +-410.947 86.6905 175.799 +-408.564 84.2598 170.87 +-781.111 157.437 319.266 +-408.081 80.3559 162.953 +-408.459 78.5487 159.289 +-409.349 76.8482 155.84 +-404.659 74.1313 150.331 +-405.55 72.4675 146.957 +-406.965 70.8997 143.777 +-407.975 69.2628 140.458 +-403.706 66.756 135.374 +-405.101 65.2107 132.241 +-404.582 63.3642 128.496 +-383.408 58.3878 118.404 +-382.174 56.555 114.688 +-382.039 54.9 111.332 +-381.201 53.1575 107.798 +-381.757 51.6197 104.679 +-381.898 50.0311 101.458 +-381.14 48.3358 98.0202 +-381.019 46.7331 94.7699 +-381.444 45.2037 91.6684 +-380.579 43.5303 88.275 +-379.289 41.8244 84.8156 +-381.85 40.5448 82.2207 +-381.271 38.9302 78.9464 +-381.634 37.4189 75.8817 +-379.815 35.7055 72.4071 +-381.191 34.3 69.5568 +-380.479 32.7093 66.3312 +-380.716 31.2074 63.2854 +-379.939 29.6293 60.0852 +-379.227 28.0669 56.9168 +-379.371 26.5745 53.8905 +-379.189 25.0636 50.8263 +-379.471 23.5868 47.8317 +-379.029 22.0694 44.7546 +-379.45 20.6057 41.7862 +-378.054 19.0503 38.6321 +-378.416 17.5905 35.6717 +-379.644 16.1675 32.786 +-379.55 14.6862 29.7821 +-379.327 13.2034 26.7752 +-379.274 11.7297 23.7865 +-377.195 10.2033 20.6912 +-378.78 8.77953 17.804 +-379.039 7.31924 14.8427 +-378.569 5.84678 11.8567 +-148.449 1.71923 3.48643 +-145.478 1.12307 2.27748 +-143.995 0.555767 1.12704 +96.2 0 0 +96.0963 0.377668 0.748766 +97.0852 0.763168 1.51306 +97.0667 1.14468 2.26944 +97.0408 1.5261 3.02565 +97.0076 1.90741 3.78163 +96.9669 2.28857 4.53733 +96.0206 2.64482 5.24362 +96.0654 3.02521 5.9978 +96.8007 3.4309 6.80211 +96.7305 3.81119 7.55607 +96.653 4.19119 8.30946 +96.6675 4.57559 9.07158 +96.5752 4.95532 9.82444 +96.4755 5.33465 10.5765 +96.5667 5.72537 11.3511 +96.2541 6.09208 12.0782 +96.0334 6.46348 12.8145 +95.9045 6.84065 13.5623 +95.6697 7.20984 14.2942 +96.3142 7.64811 15.1632 +95.9657 8.00992 15.8805 +96.0031 8.40393 16.6617 +95.8366 8.78091 17.4091 +95.6628 9.15722 18.1551 +95.4817 9.53281 18.8998 +95.3908 9.91781 19.6631 +96.0701 10.3869 20.5932 +95.7682 10.7532 21.3193 +96.4275 11.2306 22.2658 +96.2062 11.6092 23.0164 +95.9776 11.9868 23.765 +96.6068 12.4753 24.7335 +96.3614 12.8544 25.4852 +96.1086 13.2327 26.2351 +96.5162 13.7046 27.1708 +96.4371 14.1112 27.977 +95.9704 14.4611 28.6706 +96.5374 14.9697 29.6789 +96.1494 15.3335 30.4002 +95.8486 15.7108 31.1482 +96.2899 16.213 32.1439 +96.999 16.7683 33.2449 +96.6704 17.1489 33.9995 +96.3344 17.5281 34.7513 +96.8226 18.0612 35.8081 +96.3769 18.4234 36.5262 +96.1996 18.8374 37.347 +96.7445 19.3979 38.4583 +96.5469 19.8147 39.2847 +95.978 20.1553 39.96 +96.3961 20.7062 41.0522 +96.171 21.1237 41.88 +96.2949 21.6215 42.8668 +95.8723 21.9991 43.6154 +96.2407 22.5621 44.7318 +96.5062 23.1086 45.8152 +96.0547 23.4871 46.5655 +96.2956 24.0383 47.6584 +95.8262 24.4158 48.4068 +96.1288 24.9941 49.5534 +96.3301 25.5538 50.6631 +95.8313 25.9314 51.4117 +96.0073 26.4953 52.5296 +96.1687 27.0625 53.6541 +95.5563 27.4152 54.3534 +95.7762 28.0104 55.5336 +95.9803 28.6095 56.7212 +95.4222 28.9856 57.4669 +95.5162 29.5636 58.6128 +95.5131 30.1186 59.7132 +95.6586 30.7282 60.9218 +95.7067 31.3147 62.0847 +95.8197 31.9307 63.306 +95.8363 32.5229 64.48 +95.2024 32.8983 65.2243 +95.1917 33.493 66.4033 +95.8695 34.3424 68.0873 +95.2004 34.7178 68.8317 +95.1413 35.3198 70.0252 +95.1427 35.9529 71.2803 +95.8872 36.8812 73.1207 +95.0934 37.227 73.8064 +95.6416 38.1066 75.5503 +95.5684 38.7522 76.8303 +95.4774 39.4002 78.1149 +95.2223 39.9889 79.2821 +95.2417 40.7026 80.6971 +94.9529 41.2943 81.8702 +94.9336 42.0131 83.2953 +94.823 42.703 84.6632 +95.1134 43.588 86.4177 +94.8903 44.2517 87.7335 +94.6488 44.9169 89.0524 +94.3886 45.5834 90.3739 +94.7177 46.5503 92.2908 +94.4143 47.2222 93.623 +94.6884 48.1986 95.5587 +94.3413 48.8746 96.8989 +94.2349 49.6888 98.5131 +93.9113 50.4021 99.9274 +93.9488 51.3253 101.758 +93.6429 52.0774 103.249 +93.6262 53.0074 105.093 +93.6421 53.9765 107.014 +93.2623 54.7358 108.519 +93.3415 55.7833 110.596 +93.2682 56.7637 112.54 +93.3403 57.8567 114.707 +93.4932 59.028 117.029 +93.4356 60.094 119.143 +93.5137 61.2752 121.485 +93.1056 62.1633 123.245 +91.8975 62.5268 123.966 +96.7279 67.0779 132.989 +115.036 81.3187 161.223 +114.886 82.799 164.158 +115.054 84.5527 167.634 +114.75 86.0055 170.515 +114.957 87.8888 174.249 +114.55 89.3511 177.148 +114.882 91.4443 181.298 +114.9 93.3497 185.075 +114.804 95.2222 188.788 +114.598 97.0619 192.435 +114.791 99.306 196.884 +115.177 101.8 201.828 +113.959 102.933 204.076 +111.434 102.892 203.993 +109.048 102.96 204.129 +106.5 102.854 203.919 +104.254 103.023 204.253 +101.562 102.729 203.671 +99.2486 102.794 203.799 +96.5497 102.434 203.086 +94.2549 102.477 203.171 +91.9285 102.467 203.152 +90.1227 103.034 204.276 +90.5237 106.201 210.555 +90.3535 108.831 215.768 +90.0881 111.467 220.995 +89.8608 114.279 226.57 +89.7266 117.353 232.665 +89.2578 120.135 238.181 +89.0587 123.437 244.726 +88.8285 126.875 251.542 +88.6763 130.621 258.97 +88.5844 134.678 267.014 +88.2591 138.614 274.817 +87.9481 142.818 283.152 +87.8173 147.596 292.623 +87.5078 152.382 302.113 +87.3096 157.702 312.66 +86.8417 162.9 322.965 +86.5162 168.764 334.591 +86.2295 175.164 347.281 +85.5972 181.355 359.555 +83.0766 183.891 364.584 +83.3072 193.008 382.658 +84.375 205.018 406.469 +80.5554 205.741 407.902 +76.252 205.206 406.842 +72.4917 206.121 408.655 +68.1401 205.328 407.085 +64.1866 205.678 407.777 +59.8463 204.716 405.871 +56.0477 205.57 407.563 +51.7452 204.529 405.501 +47.9577 205.486 407.398 +40.1785 187.915 372.562 +36.3091 186.9 370.548 +31.517 180.346 357.554 +29.0536 187.111 370.968 +27.6855 203.85 404.154 +23.8547 204.986 406.405 +19.8032 204.262 404.97 +15.9072 205.142 406.715 +11.8608 203.981 404.414 +7.94608 205.011 406.455 +3.95312 203.998 404.448 +2.78475e-14 204.817 406.07 +-3.95312 203.998 404.448 +-7.94259 204.921 406.277 +-11.866 204.071 404.593 +-15.8723 204.692 405.823 +-19.7727 203.947 404.346 +-23.8024 204.536 405.514 +-27.655 203.626 403.709 +-31.7252 204.318 405.081 +-35.5655 203.512 403.484 +-39.7169 204.441 405.326 +-43.5044 203.47 403.401 +-47.7277 204.501 405.444 +-51.4622 203.411 403.283 +-55.7309 204.407 405.259 +-59.3633 203.064 402.596 +-63.7134 204.162 404.771 +-67.4011 203.101 402.669 +-71.7252 203.941 404.334 +-75.3607 202.807 402.086 +-79.774 203.745 403.946 +-83.4821 202.848 402.168 +-87.9248 203.706 403.869 +-91.5099 202.558 401.593 +-96.076 203.557 403.572 +-99.6488 202.424 401.327 +-104.31 203.472 403.405 +-107.945 202.486 401.449 +-112.736 203.627 403.711 +-116.452 202.783 402.039 +-121.153 203.623 403.704 +-124.64 202.402 401.282 +-129.522 203.419 403.3 +-133.09 202.341 401.162 +-139.315 205.213 406.855 +-143.497 204.958 406.351 +-148.761 206.185 408.784 +-148.562 199.955 396.432 +-149.045 194.935 386.479 +-154.486 196.465 389.511 +-164.443 203.468 403.395 +-167.749 202.054 400.594 +-172.769 202.691 401.855 +-176.91 202.256 400.993 +-468.333 522.026 1034.97 +-449.653 488.876 969.247 +-450.552 478.009 947.703 +-194.829 201.789 400.067 +-201.579 203.895 404.243 +-205.812 203.382 403.226 +-212.535 205.259 406.947 +-146.245 138.079 273.756 +-146.021 134.828 267.31 +-149.699 135.216 268.08 +-152.722 134.984 267.62 +-115.206 99.6653 197.597 +-111.875 94.7552 187.862 +-112.419 93.2434 184.865 +-113.348 92.0892 182.576 +-114.784 91.3659 181.142 +-115.8 90.3261 179.081 +-118.307 90.4499 179.326 +-119.901 89.8658 178.168 +-122.056 89.6983 177.836 +-124.849 89.9789 178.392 +-129.489 91.5357 181.479 +-507.277 351.781 697.443 +-511.094 347.746 689.443 +-514.01 343.186 680.401 +-518.262 339.594 673.279 +-521.152 335.183 664.536 +-524.955 331.436 657.105 +-528.478 327.575 649.451 +-532.069 323.82 642.007 +-535.676 320.134 634.699 +-539.606 316.695 627.88 +-542.952 312.966 620.487 +-544.576 308.318 611.272 +-550.404 306.096 606.866 +-554.533 302.948 600.625 +-557.811 299.377 593.546 +-562.227 296.454 587.751 +-565.523 292.976 580.856 +-569.787 290.034 575.023 +-573.11 286.646 568.306 +-577.427 283.785 562.633 +-581.131 280.649 556.415 +-585.308 277.766 550.7 +-589.14 274.743 544.706 +-593.18 271.839 538.949 +-596.586 268.669 532.665 +-600.7 265.841 527.058 +-605.181 263.189 521.799 +-134.557 57.5045 114.009 +-612.728 257.317 510.158 +-616.659 254.474 504.52 +-620.452 251.588 498.8 +-625.303 249.14 493.946 +-628.749 246.142 488.001 +-633.494 243.661 483.084 +-637.349 240.844 477.498 +-142.905 53.0515 105.18 +-142.839 52.0909 103.276 +-143.296 51.3312 101.769 +-142.394 50.1008 99.3301 +-142.486 49.238 97.6194 +-143.195 48.5944 96.3435 +-147.588 49.1817 97.5078 +-148.616 48.6264 96.4069 +-663.667 213.188 422.668 +-668.264 210.727 417.788 +-673.394 208.424 413.223 +-383.513 116.497 230.966 +-381.67 113.767 225.555 +-384.195 112.361 222.766 +-383.743 110.096 218.277 +-383.063 107.797 213.718 +-383.091 105.722 209.606 +-384.354 104.004 206.199 +-712.223 188.934 374.58 +-716.203 186.218 369.195 +-726.399 185.081 366.943 +-723.136 180.517 357.893 +-733.461 179.344 355.568 +-738.232 176.772 350.468 +-744.734 174.591 346.146 +-410.13 94.1094 186.582 +-412.744 92.6746 183.737 +-409.221 89.8843 178.205 +-769.003 165.184 327.495 +-407.929 85.6646 169.839 +-411.484 84.4504 167.432 +-408.446 81.8961 162.367 +-408.459 79.9826 158.574 +-406.495 77.7056 154.059 +-409.186 76.3289 151.33 +-408.703 74.3641 147.434 +-406.127 72.0452 142.837 +-406.107 70.2042 139.187 +-407.078 68.5425 135.892 +-406.135 66.5704 131.983 +-404.016 64.4308 127.741 +-390.405 60.5385 120.024 +-380.088 57.273 113.55 +-379.376 55.5126 110.06 +-379.961 53.9517 106.965 +-381.279 52.4962 104.079 +-380.46 50.7525 100.622 +-381.14 49.2182 97.5801 +-380.538 47.5258 94.2248 +-382.313 46.1338 91.4649 +-381.063 44.3813 87.9905 +-381.423 42.8276 84.91 +-381.363 41.2323 81.7474 +-380.394 39.5497 78.4113 +-382.025 38.141 75.6184 +-381.869 36.5539 72.4719 +-380.701 34.8812 69.1555 +-379.301 33.2033 65.8289 +-380.225 31.736 62.9199 +-379.939 30.1702 59.8155 +-380.509 28.6759 56.8529 +-380.754 27.1583 53.8441 +-381.167 25.6542 50.8621 +-379.471 24.0174 47.6169 +-379.922 22.5252 44.6585 +-379.748 20.9983 41.6313 +-380.439 19.5204 38.7012 +-379.311 17.954 35.5956 +-379.345 16.4497 32.6131 +-378.753 14.9229 29.5862 +-379.327 13.4445 26.655 +-379.573 11.9532 23.6984 +-379.591 10.4556 20.7292 +-378.281 8.92804 17.7008 +-378.24 7.43713 14.7449 +-378.569 5.95351 11.8035 +-141.452 1.66809 3.30717 +-145.478 1.14357 2.26725 +-144.395 0.567484 1.1251 +95.3 0 0 +96.0963 0.384408 0.745328 +96.0854 0.768788 1.4906 +96.167 1.1543 2.23808 +96.1414 1.53894 2.98385 +97.0076 1.94145 3.76427 +97.0668 2.33181 4.52114 +96.0206 2.69201 5.21955 +96.9632 3.10798 6.02606 +96.701 3.48852 6.7639 +96.7305 3.8792 7.52138 +96.7525 4.27038 8.27983 +96.6675 4.65724 9.02994 +96.7739 5.05411 9.79942 +96.4755 5.42985 10.5279 +96.5667 5.82754 11.299 +96.2541 6.2008 12.0227 +96.0334 6.57882 12.7557 +95.9045 6.96272 13.5 +96.5574 7.40662 14.3607 +96.1172 7.76869 15.0627 +96.1623 8.16955 15.8399 +96.0031 8.5539 16.5852 +95.8366 8.93761 17.3291 +95.6628 9.32063 18.0718 +95.4817 9.70292 18.813 +96.1703 10.1773 19.7328 +95.9729 10.5616 20.4779 +95.8652 10.9562 21.2429 +96.4275 11.431 22.1636 +96.2062 11.8163 22.9107 +95.9776 12.2007 23.6559 +95.7417 12.5842 24.3995 +96.3614 13.0838 25.3682 +96.1086 13.4688 26.1147 +96.5162 13.9492 27.0461 +95.5812 14.2356 27.6014 +95.9704 14.7192 28.539 +96.5374 15.2368 29.5427 +96.1494 15.6071 30.2606 +96.6944 16.1322 31.2788 +96.2899 16.5023 31.9964 +96.999 17.0675 33.0923 +96.5773 17.4381 33.8108 +96.3344 17.8409 34.5918 +96.8226 18.3835 35.6437 +97.2974 18.9313 36.7059 +96.2913 19.1918 37.211 +96.7445 19.744 38.2817 +96.5469 20.1683 39.1044 +95.978 20.515 39.7765 +96.3058 21.056 40.8254 +96.7102 21.6212 41.9215 +96.2949 22.0073 42.67 +95.7832 22.3708 43.3748 +96.152 22.9436 44.4853 +96.5062 23.521 45.6049 +95.9668 23.8843 46.3092 +96.2956 24.4672 47.4396 +95.9132 24.8741 48.2284 +96.1288 25.4402 49.3259 +96.3301 26.0098 50.4305 +95.8313 26.3942 51.1757 +95.922 26.9442 52.242 +96.1687 27.5454 53.4078 +96.3153 28.1261 54.5337 +95.7762 28.5103 55.2786 +95.9803 29.12 56.4608 +95.4222 29.5028 57.2031 +95.5162 30.0911 58.3437 +95.677 30.7087 59.541 +95.6586 31.2765 60.6421 +95.7067 31.8735 61.7996 +95.7394 32.4733 62.9625 +95.1974 32.8826 63.7561 +95.2817 33.5133 64.9789 +95.1129 34.0624 66.0437 +95.713 34.8982 67.6641 +95.2004 35.3374 68.5157 +95.2185 35.9793 69.7603 +94.9895 36.5356 70.8389 +95.8112 37.5096 72.7273 +95.0934 37.8913 73.4676 +95.6416 38.7867 75.2035 +94.8996 39.1678 75.9424 +95.4774 40.1033 77.7563 +95.3685 40.765 79.0394 +95.2417 41.429 80.3266 +94.9529 42.0312 81.4944 +94.791 42.6986 82.7883 +94.6109 43.3679 84.086 +95.1134 44.3658 86.021 +94.8903 45.0414 87.3307 +94.7864 45.785 88.7726 +94.3886 46.3969 89.959 +94.7853 47.415 91.9329 +94.4143 48.0649 93.1931 +94.7547 49.0931 95.1866 +94.2101 49.6775 96.3198 +94.2999 50.6103 98.1284 +93.9113 51.3016 99.4686 +94.076 52.3118 101.427 +94.1463 53.2919 103.328 +93.5639 53.9175 104.541 +93.5805 54.904 106.453 +93.6275 55.9308 108.444 +93.4017 56.8154 110.159 +93.3277 57.8133 112.094 +93.2815 58.852 114.108 +93.319 59.9691 116.274 +93.493 61.204 118.668 +93.0039 62.0291 120.268 +93.1615 63.3107 122.753 +92.3391 63.9483 123.989 +95.2029 67.1987 130.292 +114.982 82.7314 160.408 +114.886 84.2766 163.404 +115.054 86.0615 166.865 +114.802 87.5797 169.808 +114.805 89.339 173.219 +114.95 91.2632 176.95 +114.587 92.8369 180.001 +114.464 94.6548 183.526 +114.423 96.5993 187.296 +114.645 98.8343 191.63 +114.837 101.119 196.06 +114.996 103.453 200.585 +114.093 104.894 203.378 +111.828 105.099 203.776 +109.393 105.128 203.833 +106.965 105.147 203.869 +104.627 105.237 204.043 +101.562 104.562 202.736 +99.6075 105.007 203.598 +96.9013 104.642 202.89 +94.9055 105.025 203.633 +92.2656 104.678 202.961 +89.9761 104.703 203.008 +90.8104 108.439 210.252 +90.3535 110.773 214.778 +90.0197 113.37 219.813 +89.8608 116.318 225.53 +89.3033 118.884 230.504 +89.353 122.41 237.34 +89.275 125.945 244.195 +88.7984 129.095 250.303 +88.5886 132.821 257.526 +88.272 136.598 264.85 +88.3142 141.176 273.726 +88.1887 145.764 282.623 +87.8173 150.229 291.28 +87.7332 155.501 301.501 +87.3338 160.56 311.311 +86.865 165.851 321.569 +86.7411 172.222 333.921 +86.4027 178.648 346.381 +84.828 182.933 354.688 +81.9602 184.657 358.033 +80.7504 190.423 369.211 +75.5002 186.728 362.046 +79.7392 207.291 401.917 +75.1132 205.749 398.926 +71.5688 207.127 401.599 +67.0907 205.774 398.975 +63.4908 207.078 401.504 +58.9717 205.325 398.105 +55.3774 206.736 400.84 +46.402 186.683 361.959 +42.888 187.043 362.659 +39.891 189.9 368.197 +35.4811 185.897 360.436 +35.1811 204.905 397.29 +30.7766 201.745 391.164 +27.362 205.063 397.597 +23.6192 206.584 400.546 +19.511 204.839 397.162 +15.7397 206.604 400.584 +11.6775 204.414 396.338 +7.85882 206.377 400.145 +3.8964 204.659 396.814 +2.75659e-14 206.363 400.118 +-3.89378 204.522 396.548 +-7.8466 206.057 399.524 +-11.6802 204.46 396.427 +-15.6908 205.963 399.341 +-19.4324 204.014 395.564 +-23.5773 206.218 399.836 +-27.2399 204.148 395.823 +-31.4253 205.998 399.409 +-35.0555 204.174 395.872 +-39.2637 205.715 398.861 +-42.8622 204.044 395.622 +-47.226 205.962 399.34 +-50.749 204.171 395.868 +-55.0728 205.599 398.635 +-58.541 203.825 395.197 +-63.0176 205.535 398.512 +-66.396 203.643 394.844 +-70.9743 205.407 398.264 +-74.2714 203.443 394.456 +-78.8189 204.898 397.277 +-82.0971 203.043 393.68 +-86.8753 204.867 397.216 +-90.1342 203.074 393.74 +-94.9533 204.768 397.025 +-98.1554 202.948 393.497 +-103.163 204.826 397.137 +-106.404 203.157 393.902 +-111.211 204.459 396.425 +-114.524 202.985 393.569 +-119.704 204.778 397.044 +-122.93 203.187 393.959 +-127.951 204.538 396.579 +-131.357 203.271 394.122 +-136.771 205.061 397.593 +-141.632 205.905 399.23 +-147.339 207.859 403.019 +-148.626 203.611 394.781 +-147.971 196.984 381.932 +-150.714 195.088 378.257 +-162.391 204.514 396.533 +-165.508 202.912 393.426 +-171.192 204.425 396.359 +-175.151 203.818 395.183 +-179.699 203.874 395.292 +-184.874 204.587 396.675 +-190.364 205.57 398.58 +-452.261 476.776 924.421 +-198.203 204.058 395.648 +-201.873 203.049 393.691 +-458.583 450.788 874.033 +-145.943 140.254 271.938 +-146.547 137.728 267.042 +-150.547 138.409 268.361 +-152.995 137.638 266.866 +-115.437 101.647 197.084 +-111.875 96.4462 187 +-112.466 94.9477 184.094 +-113.348 93.7325 181.738 +-115.03 93.1958 180.697 +-116.5 92.494 179.337 +-118.51 92.2217 178.809 +-120.004 91.5479 177.502 +-122.735 91.8069 178.004 +-125.167 91.8179 178.026 +-129.973 93.5171 181.32 +-507.277 358.059 694.241 +-511.48 354.22 686.797 +-514.513 349.652 677.94 +-519.111 346.221 671.288 +-522.241 341.878 662.868 +-526.001 338.022 655.392 +-529.595 334.125 647.835 +-533.734 330.631 641.06 +-536.217 326.177 632.424 +-540.58 322.929 626.127 +-543.506 318.876 618.268 +-545.198 314.178 609.16 +-549.271 310.917 602.837 +-553.77 307.93 597.045 +-558.647 305.176 591.706 +-562.812 302.059 585.662 +-566.113 298.516 578.792 +-570.582 295.622 573.182 +-573.913 292.17 566.488 +-578.238 289.255 560.837 +-581.949 286.059 554.64 +-586.134 283.122 548.945 +-589.695 279.91 542.717 +-594.021 277.082 537.235 +-596.94 273.626 530.534 +-602.34 271.324 526.07 +-605.972 268.236 520.082 +-610.04 265.36 514.506 +-135.154 57.7712 112.013 +-138.829 58.3125 113.062 +-620.898 256.262 496.867 +-626.427 254.042 492.562 +-630.107 251.076 486.811 +-634.635 248.456 481.731 +-141.871 54.5675 105.801 +-143.291 54.144 104.98 +-142.684 52.9627 102.689 +-143.452 52.3045 101.413 +-142.709 51.1077 99.0927 +-142.407 50.0887 97.117 +-142.077 49.0757 95.1528 +-147.829 50.1414 97.2192 +-147.807 49.2246 95.4417 +-665.295 217.525 421.759 +-383.855 123.203 238.878 +-389.482 122.701 237.906 +-386.249 119.421 231.546 +-382.754 116.126 225.156 +-382.434 113.841 220.727 +-383.743 112.061 217.275 +-382.979 109.696 212.69 +-384.711 108.064 209.525 +-383.154 105.529 204.611 +-383.683 103.597 200.865 +-716.982 189.747 367.9 +-732.056 189.851 368.102 +-722.523 183.582 355.948 +-733.988 182.675 354.19 +-738.762 180.055 349.109 +-409.976 97.8277 189.678 +-408.972 95.5184 185.201 +-408.448 93.347 180.991 +-409.67 91.5892 177.582 +-406.976 88.9796 172.523 +-406.388 86.8642 168.421 +-407.845 85.1975 165.189 +-407.715 83.2086 161.333 +-407.908 81.3003 157.633 +-405.114 78.8237 152.831 +-408.447 77.5508 150.363 +-405.365 75.0728 145.559 +-406.686 73.4318 142.377 +-407.788 71.7527 139.121 +-406.797 69.7175 135.175 +-408.672 68.1819 132.198 +-395.532 64.2032 124.484 +-387.095 61.0967 118.46 +-380.752 58.3969 113.226 +-382.039 56.8998 110.323 +-381.391 55.1213 106.875 +-380.418 53.312 103.367 +-383.048 52.0098 100.842 +-381.813 50.185 97.3036 +-381.019 48.4353 93.9113 +-381.058 46.8026 90.7455 +-379.708 45.0126 87.2749 +-380.55 43.492 84.3267 +-381.363 41.9681 81.3721 +-380.979 40.3173 78.1713 +-381.146 38.7323 75.0981 +-381.869 37.2062 72.1391 +-378.937 35.3392 68.5192 +-382.246 34.0582 66.0354 +-380.225 32.3024 62.6311 +-380.431 30.7483 59.618 +-380.509 29.1876 56.5919 +-380.655 27.6357 53.5829 +-381.562 26.1391 50.6812 +-380.857 24.5353 47.5715 +-379.922 22.9271 44.4534 +-379.053 21.3339 41.3644 +-379.445 19.8169 38.423 +-378.913 18.2552 35.395 +-378.45 16.7037 32.3868 +-379.949 15.2371 29.5433 +-377.632 13.6232 26.4141 +-379.573 12.1665 23.5896 +-378.593 10.6141 20.5798 +-378.78 9.09933 17.6427 +-378.539 7.57585 14.6888 +-379.968 6.08217 11.7927 +-145.35 1.74466 3.38272 +-144.678 1.15758 2.24443 +-144.894 0.579609 1.1238 +96.1 0 0 +96.1963 0.391523 0.742602 +96.1853 0.783016 1.48515 +96.167 1.17445 2.22758 +96.1414 1.56579 2.96984 +96.1084 1.95702 3.71188 +96.0682 2.3481 4.45363 +96.9189 2.76461 5.24365 +96.9632 3.16221 5.99777 +96.8007 3.55306 6.7391 +96.7305 3.94689 7.48608 +96.7525 4.3449 8.24097 +96.6675 4.73852 8.98755 +96.5752 5.13177 9.73343 +96.4755 5.5246 10.4785 +96.5667 5.92923 11.246 +97.1453 6.36745 12.0771 +96.1323 6.70053 12.7089 +95.9045 7.08423 13.4367 +95.6697 7.46656 14.1618 +96.3142 7.92045 15.0227 +96.1623 8.31211 15.7656 +95.8068 8.6854 16.4736 +95.8366 9.09358 17.2478 +95.4672 9.46389 17.9502 +95.4817 9.87225 18.7247 +96.1703 10.3549 19.6402 +96.0701 10.7568 20.4024 +95.8652 11.1474 21.1432 +96.4275 11.6305 22.0596 +96.3028 12.0346 22.8261 +95.9776 12.4136 23.5449 +95.7417 12.8038 24.2849 +96.3614 13.3121 25.2491 +96.1086 13.7038 25.9921 +95.8486 14.0944 26.7329 +96.2469 14.5849 27.6632 +96.16 15.0057 28.4612 +95.6865 15.3661 29.1448 +96.2437 15.895 30.1481 +96.6004 16.3978 31.1017 +96.3836 16.8066 31.8771 +95.8787 17.1649 32.5566 +96.6704 17.7595 33.6845 +96.3344 18.1523 34.4294 +95.9911 18.5437 35.1718 +96.4689 19.0976 36.2225 +97.025 19.6755 37.3186 +95.9223 19.9179 37.7782 +96.3649 20.4816 38.8474 +96.1593 20.9124 39.6646 +96.3961 21.4435 40.6719 +96.7102 21.9986 41.7247 +96.2949 22.3913 42.4697 +96.5851 22.9518 43.5327 +96.2407 23.3655 44.3174 +96.5062 23.9315 45.3908 +95.9668 24.3011 46.0919 +96.2956 24.8942 47.2169 +95.8262 25.2852 47.9584 +96.1288 25.8841 49.0944 +95.5547 26.2507 49.7897 +95.8313 26.8548 50.9355 +96.0925 27.4631 52.0893 +96.1687 28.0261 53.1571 +96.3153 28.6169 54.2777 +95.7762 29.0078 55.0192 +95.8135 29.5767 56.0982 +95.2564 29.9656 56.8357 +95.3514 30.5634 57.9696 +95.5131 31.1911 59.1601 +95.6586 31.8224 60.3575 +95.6258 32.4023 61.4576 +95.8197 33.0677 62.7196 +95.1175 33.4284 63.4036 +95.2024 34.0697 64.6201 +95.1917 34.6856 65.7882 +95.2434 35.333 67.0161 +95.2004 35.9541 68.1941 +95.1413 36.5775 69.3765 +95.1427 37.2331 70.6201 +95.1268 37.8915 71.8689 +95.0934 38.5526 73.1227 +95.0425 39.2163 74.3816 +94.8996 39.8513 75.586 +95.33 40.7401 77.2718 +95.3685 41.4764 78.6684 +95.2417 42.1519 79.9496 +95.0967 42.8295 81.2347 +94.791 43.4437 82.3997 +94.6816 44.1576 83.7538 +94.6228 44.9072 85.1756 +94.8903 45.8274 86.9208 +94.6488 46.5163 88.2275 +94.3886 47.2066 89.5367 +94.1773 47.9327 90.914 +94.4812 48.9382 92.8212 +94.7547 49.9498 94.7399 +94.3413 50.6149 96.0013 +94.2999 51.4935 97.6678 +93.847 52.1609 98.9337 +94.0124 53.1888 100.883 +94.1463 54.2219 102.843 +93.5017 54.8221 103.981 +93.4574 55.7884 105.814 +93.6275 56.9068 107.935 +93.4017 57.8069 109.642 +93.3277 58.8222 111.568 +93.3991 59.9546 113.716 +93.319 61.0156 115.728 +93.2635 62.1191 117.821 +93.4004 63.3802 120.213 +93.2734 64.4925 122.323 +92.891 65.4532 124.145 +92.5886 66.4937 126.119 +114.445 83.7815 158.908 +114.886 85.7473 162.637 +114.688 87.2854 165.554 +114.75 89.0679 168.935 +114.45 90.6163 171.872 +114.95 92.8559 176.12 +114.882 94.7004 179.618 +114.464 96.3066 182.665 +114.375 98.244 186.339 +114.645 100.559 190.731 +114.698 102.759 194.903 +114.769 105.05 199.249 +114.271 106.891 202.741 +112.267 107.352 203.614 +110.125 107.678 204.234 +107.387 107.404 203.714 +105.374 107.837 204.534 +102.254 107.111 203.158 +100.246 107.524 203.94 +97.6046 107.24 203.403 +95.2499 107.246 203.414 +92.6027 106.894 202.747 +90.2326 106.833 202.631 +90.5237 109.983 208.604 +90.2484 112.575 213.521 +90.3617 115.787 219.613 +89.6271 118.04 223.887 +89.3685 121.047 229.589 +89.3213 124.502 236.142 +89.0587 127.832 242.459 +88.7984 131.348 249.128 +88.5302 135.049 256.148 +88.4708 139.295 264.201 +88.5072 143.953 273.037 +88.1619 148.263 281.211 +87.7914 152.806 289.827 +87.608 157.989 299.657 +87.237 163.181 309.506 +86.8884 168.791 320.145 +86.6961 175.136 332.181 +85.6884 180.264 341.906 +84.1211 184.574 350.082 +82.7377 189.662 359.733 +79.0712 189.717 359.836 +81.1677 204.248 387.397 +78.3153 207.142 392.886 +69.7986 194.527 368.96 +70.3329 207.103 392.813 +61.2818 191.237 362.72 +57.896 192.126 364.406 +57.6404 204.192 387.29 +50.1249 190.392 361.117 +49.7755 203.75 386.452 +46.5047 206.356 391.396 +42.153 204.17 387.249 +38.8105 206.889 392.406 +34.3337 203.459 385.901 +30.937 206.336 391.358 +26.6904 203.521 386.019 +23.1796 206.277 391.245 +19.0486 203.474 385.93 +15.4221 205.968 390.66 +11.4262 203.505 385.988 +7.70349 205.829 390.396 +3.8039 203.287 385.575 +2.70087e-14 205.72 390.19 +-3.79866 203.007 385.044 +-7.70524 205.876 390.485 +-11.3948 202.946 384.928 +-15.3837 205.455 389.687 +-18.9875 202.822 384.693 +-23.1116 205.671 390.097 +-26.6294 203.056 385.136 +-30.7975 205.406 389.593 +-34.216 202.762 384.578 +-38.5838 205.681 390.115 +-41.8846 202.87 384.784 +-46.3061 205.475 389.724 +-49.4811 202.544 384.166 +-54.0612 205.344 389.476 +-57.1835 202.573 384.221 +-61.7372 204.873 388.583 +-64.8736 202.446 383.979 +-69.5351 204.754 388.356 +-72.6044 202.347 383.792 +-77.4124 204.754 388.356 +-80.2201 201.863 382.874 +-85.2535 204.55 387.971 +-87.9412 201.591 382.357 +-93.2276 204.555 387.98 +-95.8178 201.572 382.323 +-101.093 204.22 387.344 +-103.696 201.442 382.076 +-109.252 204.361 387.612 +-111.92 201.832 382.814 +-117.193 203.981 386.891 +-119.856 201.564 382.307 +-125.636 204.341 387.574 +-128.006 201.542 382.264 +-133.994 204.402 387.69 +-136.43 201.803 382.76 +-144.342 207.184 392.966 +-146.785 204.599 388.063 +-148.101 200.598 380.474 +-147.342 194.053 368.06 +-154.388 197.828 375.22 +-160.815 200.6 380.477 +-167.645 203.682 386.324 +-168.81 199.867 379.089 +-176.252 203.454 385.891 +-179.708 202.341 383.78 +-187.16 205.637 390.033 +-188.568 202.259 383.625 +-194.054 203.273 385.549 +-195.652 200.226 379.77 +-145.719 145.742 276.428 +-146.288 143.038 271.3 +-147.38 140.929 267.299 +-151.663 141.867 269.08 +-471.288 431.38 818.2 +-112.482 100.774 191.137 +-111.875 98.1293 186.122 +-112.896 96.9736 183.93 +-113.833 95.7764 181.659 +-115.621 95.3095 180.774 +-116.8 94.3506 178.955 +-119.068 94.2732 178.808 +-120.673 93.6651 177.655 +-123.31 93.8465 177.999 +-126.651 94.5274 179.29 +-506.029 370.449 702.631 +-508.693 365.324 692.911 +-513.357 361.723 686.081 +-515.688 356.566 676.298 +-520.131 352.954 669.449 +-523.102 348.417 660.844 +-526.93 344.528 653.467 +-530.476 340.522 645.869 +-534.27 336.738 638.691 +-537.18 332.465 630.586 +-541.676 329.23 624.451 +-544.86 325.249 616.9 +-554.785 325.282 616.962 +-554.054 319.097 605.232 +-565.155 319.745 606.46 +-557.875 310.073 588.116 +-561.123 306.408 581.164 +-567.557 304.499 577.544 +-571.775 301.41 571.684 +-575.385 298.031 565.276 +-579.656 295.025 559.574 +-583.518 291.836 553.525 +-587.924 288.942 548.037 +-590.46 285.163 540.869 +-595.563 282.649 536.101 +-598.637 279.193 529.545 +-603.624 276.648 524.718 +-606.26 273.046 517.887 +-611.346 270.568 513.187 +-134.642 58.5569 111.065 +-134.111 57.3135 108.707 +-622.087 261.233 495.481 +-627.7 259.001 491.247 +-631.239 255.916 485.396 +-636.46 253.519 480.849 +-140.876 55.1304 104.566 +-143.136 55.0296 104.375 +-142.995 54.0045 102.43 +-142.904 53.0139 100.552 +-142.472 51.9137 98.4648 +-142.645 51.0477 96.8222 +-143.275 50.3532 95.505 +-149.035 51.4324 97.5519 +-655.223 222.019 421.104 +-660.329 219.669 416.646 +-386.148 126.102 239.177 +-385.444 123.548 234.333 +-384.591 120.984 229.47 +-383.838 118.487 224.735 +-383.943 116.285 220.559 +-381.888 113.465 215.21 +-382.3 111.413 211.317 +-383.944 109.73 208.126 +-384.354 107.707 204.289 +-385.751 105.973 201 +-718.888 193.571 367.147 +-739.889 195.231 370.295 +-723.31 186.99 354.663 +-735.306 186.197 353.161 +-740.528 183.635 348.302 +-748.371 181.691 344.614 +-752.455 178.808 339.145 +-760.068 176.738 335.219 +-410.479 93.3712 177.097 +-407.878 90.7334 172.094 +-408.292 88.7942 168.416 +-407.663 86.6456 164.341 +-407.167 84.5469 160.36 +-409.742 83.0908 157.598 +-410.269 81.2197 154.049 +-404.659 78.1724 148.27 +-407.312 76.7499 145.572 +-407.523 74.8671 142.001 +-405.921 72.6705 137.834 +-404.83 70.5913 133.891 +-406.135 68.9408 130.76 +-394.59 65.1683 123.605 +-385.015 61.8285 117.27 +-382.933 59.7564 113.34 +-379.757 57.5467 109.149 +-381.868 56.1536 106.507 +-381.279 54.3655 103.115 +-382.665 52.8647 100.269 +-382.486 51.1507 97.0177 +-380.538 49.2181 93.3519 +-381.444 47.6678 90.4116 +-380.192 45.8565 86.976 +-381.908 44.409 84.2306 +-379.322 42.4719 80.5564 +-380.881 41.0104 77.7845 +-380.658 39.3578 74.6499 +-380.891 37.7585 71.6166 +-381.289 36.179 68.6208 +-380.184 34.4657 65.371 +-378.946 32.7556 62.1275 +-380.825 31.3174 59.3997 +-379.621 29.6277 56.1948 +-380.161 28.0815 53.2622 +-380.079 26.4919 50.2472 +-379.966 24.905 47.2374 +-379.525 23.3029 44.1986 +-380.344 21.7801 41.3103 +-380.339 20.2102 38.3327 +-378.416 18.5494 35.1827 +-380.54 17.089 32.4128 +-379.052 15.4665 29.3353 +-379.028 13.9122 26.3872 +-379.274 12.3691 23.4604 +-378.093 10.7851 20.4562 +-379.18 9.26791 17.5785 +-379.938 7.73655 14.6739 +-377.67 6.15086 11.6663 +-145.85 1.78121 3.37842 +-145.578 1.18511 2.24779 +-146.394 0.595829 1.13011 +96.2 0 0 +96.1963 0.398205 0.739041 +96.1853 0.796379 1.47802 +96.167 1.19449 2.21689 +97.0408 1.60742 2.98325 +97.0076 2.00904 3.72863 +96.0682 2.38817 4.43227 +97.0187 2.8147 5.22388 +96.0654 3.1864 5.91374 +96.8007 3.6137 6.70678 +96.7305 4.01426 7.45017 +96.7525 4.41905 8.20145 +96.6675 4.81939 8.94445 +96.5752 5.21936 9.68675 +96.4755 5.61889 10.4283 +96.3684 6.018 11.169 +96.2541 6.41668 11.9089 +96.0334 6.80787 12.6349 +95.9045 7.20513 13.3722 +95.6697 7.594 14.0939 +96.4127 8.06388 14.966 +96.1623 8.45398 15.69 +96.0031 8.85171 16.4281 +95.6407 9.22985 17.13 +96.5432 9.73389 18.0654 +95.4817 10.0407 18.6349 +96.1703 10.5316 19.546 +95.9729 10.9293 20.284 +95.8652 11.3376 21.0418 +96.4275 11.829 21.9538 +96.2062 12.2277 22.6938 +95.7849 12.6001 23.385 +96.3184 13.1008 24.3141 +96.1696 13.5124 25.078 +95.9174 13.91 25.8159 +95.6578 14.3065 26.5518 +96.2469 14.8338 27.5305 +96.729 15.3521 28.4923 +96.5374 15.7673 29.263 +96.1494 16.1505 29.9741 +96.6944 16.6939 30.9827 +96.2899 17.0769 31.6934 +96.9056 17.6448 32.7475 +96.6704 18.0626 33.523 +97.0761 18.6042 34.5281 +95.9911 18.8601 35.0031 +96.561 19.4421 36.0832 +96.2913 19.86 36.8588 +96.7445 20.4314 37.9193 +96.3649 20.8311 38.6611 +96.7937 21.4096 39.7347 +96.3961 21.8095 40.4769 +96.171 22.2493 41.293 +96.2054 22.7523 42.2267 +96.5851 23.3435 43.3239 +96.152 23.7424 44.0642 +96.5062 24.3399 45.1731 +96.0547 24.7385 45.9129 +96.3831 25.3421 47.0331 +95.8262 25.7167 47.7284 +96.1288 26.3259 48.859 +96.3301 26.9154 49.953 +95.8313 27.3131 50.6912 +96.0073 27.907 51.7934 +96.1687 28.5044 52.9022 +96.3153 29.1053 54.0174 +95.7762 29.5029 54.7553 +95.8135 30.0815 55.8292 +95.9196 30.6891 56.9569 +95.3514 31.085 57.6916 +95.5131 31.7234 58.8764 +95.6586 32.3655 60.068 +95.7067 32.9832 61.2146 +95.0159 33.35 61.8951 +95.1974 34.0275 63.1525 +95.2024 34.6512 64.3102 +95.9009 35.5404 65.9605 +95.2434 35.936 66.6947 +95.045 36.508 67.7563 +94.987 37.1414 68.9318 +95.1427 37.8686 70.2814 +95.1268 38.5382 71.5242 +95.0934 39.2106 72.772 +95.0425 39.8856 74.0248 +95.5684 40.8171 75.7536 +94.8139 41.2111 76.4849 +95.2223 42.1196 78.171 +95.0966 42.806 79.4449 +95.0967 43.5605 80.8451 +94.791 44.1852 82.0045 +94.823 44.9784 83.4766 +94.6228 45.6737 84.767 +94.8903 46.6095 86.504 +94.6488 47.3102 87.8044 +94.3886 48.0122 89.1073 +94.7853 49.0658 91.0625 +94.4143 49.7384 92.3109 +94.7547 50.8023 94.2855 +94.3413 51.4787 95.5408 +94.2349 52.3363 97.1325 +93.847 53.0512 98.4592 +93.5035 53.8039 99.8563 +94.0205 55.0737 102.213 +93.6885 55.8692 103.689 +93.5805 56.8155 105.446 +93.5058 57.8026 107.278 +93.3415 58.7556 109.046 +93.3277 59.8262 111.033 +93.2815 60.901 113.028 +93.319 62.057 115.173 +93.2062 63.1404 117.184 +93.3437 64.423 119.564 +93.3852 65.6719 121.882 +93.3877 66.9261 124.21 +91.6083 66.9123 124.185 +95.9617 71.4499 132.606 +114.834 87.1705 161.782 +115.106 89.0986 165.361 +114.699 90.5473 168.049 +115.008 92.6126 171.882 +114.55 94.1119 174.665 +114.784 96.2341 178.604 +114.851 98.2819 182.404 +114.804 100.296 186.142 +114.645 102.275 189.816 +114.467 104.303 193.578 +114.542 106.632 197.902 +114.717 109.14 202.556 +113.1 109.994 204.142 +111.33 110.715 205.48 +108.021 109.882 203.933 +106.037 110.368 204.835 +103.311 110.066 204.275 +101.322 110.533 205.142 +98.2689 109.813 203.805 +96.2449 110.216 204.553 +93.2021 109.422 203.08 +91.5154 110.201 204.525 +90.8463 112.259 208.344 +90.2835 114.541 212.58 +90.1223 117.451 217.981 +89.8274 120.324 223.312 +89.6289 123.471 229.154 +89.004 126.177 234.175 +88.9351 129.834 240.962 +88.7383 133.499 247.765 +88.5886 137.445 255.088 +88.4424 141.627 262.849 +88.2591 146 270.966 +87.9749 150.474 279.268 +87.9726 155.734 289.032 +87.5328 160.547 297.964 +87.1887 165.874 307.851 +86.9584 171.81 318.867 +86.6062 177.94 330.244 +84.3032 180.376 334.765 +82.4162 183.92 341.342 +85.3494 198.989 369.309 +79.7772 194.678 361.308 +78.8715 201.857 374.632 +72.4807 194.982 361.872 +70.954 201.122 373.268 +68.3775 204.782 380.06 +63.4102 201.257 373.518 +60.5821 204.471 379.484 +55.7608 200.904 372.864 +52.94 204.517 379.57 +48.2699 200.959 372.965 +45.2295 204.123 378.837 +40.7153 200.572 372.247 +37.7036 204.419 379.387 +33.2823 200.595 372.289 +30.0929 204.132 378.854 +25.8907 200.792 372.657 +22.5411 204.018 378.644 +18.4423 200.36 371.855 +14.9858 203.557 377.788 +11.0624 200.387 371.905 +7.50104 203.841 378.314 +3.67998 200.022 371.226 +2.62617e-14 203.445 377.579 +-3.68085 200.069 371.314 +-7.48708 203.461 377.609 +-11.0205 199.629 370.497 +-14.9719 203.368 377.437 +-18.3725 199.602 370.447 +-22.4992 203.639 377.94 +-25.7564 199.751 370.723 +-29.9953 203.47 377.625 +-33.1019 199.507 370.271 +-37.477 203.19 377.107 +-40.514 199.581 370.407 +-44.9368 202.802 376.386 +-47.851 199.215 369.729 +-52.5135 202.87 376.512 +-55.3039 199.258 369.81 +-60.0949 202.827 376.432 +-62.7747 199.239 369.774 +-67.6735 202.673 376.147 +-70.2278 199.064 369.449 +-75.2765 202.502 375.83 +-77.8328 199.198 369.698 +-82.8683 202.221 375.308 +-85.3295 198.942 369.222 +-90.6495 202.293 375.441 +-93.0474 199.085 369.488 +-98.4836 202.344 375.535 +-100.732 199.023 369.372 +-106.276 202.188 375.246 +-108.314 198.664 368.706 +-114.139 202.056 375.002 +-116.222 198.788 368.936 +-122.162 202.084 375.053 +-124.086 198.705 368.782 +-130.222 202.04 374.971 +-131.95 198.507 368.415 +-139.707 203.953 378.523 +-141.93 201.208 373.428 +-147.971 203.842 378.316 +-147.91 198.124 367.705 +-148.437 193.449 359.027 +-150.449 190.872 354.244 +-163.237 201.711 374.362 +-165.475 199.263 369.817 +-171.495 201.341 373.674 +-172.743 197.818 367.137 +-180.909 202.161 375.196 +-453.457 494.68 918.091 +-455.708 485.506 901.065 +-458.526 477.253 885.747 +-145.634 148.143 274.943 +-146.072 145.265 269.602 +-147.512 143.461 266.254 +-153.581 146.114 271.177 +-475.192 442.378 821.022 +-111.743 101.82 188.971 +-112.251 100.139 185.852 +-113.421 99.0873 183.899 +-114.318 97.8256 181.557 +-116.458 97.6377 181.209 +-117.7 96.6999 179.468 +-119.982 96.6179 179.316 +-121.24 95.7109 177.633 +-124.929 96.7018 179.472 +-128.24 97.3479 180.671 +-507.318 377.731 701.042 +-510.109 372.594 691.507 +-514.792 368.925 684.699 +-517.365 363.831 675.245 +-522.17 360.386 668.85 +-524.65 355.413 659.621 +-528.556 351.49 652.34 +-532.122 347.408 644.765 +-536.292 343.781 638.034 +-538.865 339.2 629.531 +-544.111 336.354 624.249 +-546.707 331.921 616.023 +-564.185 336.439 624.407 +-572.493 335.344 622.375 +-574.697 330.692 613.742 +-581.787 328.882 610.382 +-582.295 323.396 600.199 +-564.736 308.157 571.917 +-572.835 307.122 569.997 +-577.192 304.07 564.332 +-582.156 301.354 559.292 +-584.745 297.441 552.03 +-589.989 294.906 547.324 +-592.544 291.054 540.175 +-597.876 288.59 535.602 +-600.616 284.896 528.747 +-605.264 282.134 523.62 +-608.13 278.563 516.993 +-613.884 276.329 512.847 +-616.385 272.645 506.01 +-621.377 270.083 501.255 +-134.286 57.3534 106.444 +-135.187 56.7325 105.291 +-632.749 260.906 484.223 +-141.664 57.3914 106.514 +-142.178 56.5893 105.026 +-141.747 55.4257 102.866 +-143.383 55.0756 102.216 +-142.435 53.7418 99.7409 +-142.472 52.7998 97.9926 +-142.566 51.89 96.3041 +-147.189 52.6114 97.6431 +-149.115 52.3387 97.1369 +-668.329 230.325 427.467 +-383.774 129.847 240.987 +-385.083 127.9 237.374 +-672.24 219.154 406.734 +-387.658 124.03 230.191 +-383.921 120.536 223.705 +-383.44 118.115 219.213 +-383.321 115.835 214.982 +-382.215 113.289 210.256 +-382.068 111.058 206.116 +-389.154 110.914 205.848 +-716.875 200.301 371.744 +-721.226 197.515 366.574 +-722.395 193.869 359.806 +-725.585 190.779 354.072 +-739.349 190.416 353.399 +-742.559 187.282 347.582 +-411.928 101.716 188.777 +-2919.38 705.581 1309.51 +-410.775 97.1472 180.298 +-408.592 94.5284 175.438 +-412.572 93.344 173.24 +-408.926 90.4496 167.868 +-406.389 87.8488 163.041 +-407.167 85.9898 159.591 +-405.891 83.7144 155.368 +-407.784 82.1054 152.382 +-405.86 79.7428 147.997 +-406.57 77.9175 144.609 +-406.22 75.9011 140.867 +-405.641 73.86 137.079 +-404.83 71.7961 133.249 +-406.793 70.2313 130.344 +-385.446 64.7446 120.161 +-385.015 62.8838 116.708 +-382.08 60.6406 112.545 +-381.374 58.7783 109.088 +-381.582 57.0688 105.916 +-381.183 55.2791 102.594 +-380.172 53.4164 99.137 +-382.486 52.0237 96.5523 +-381.116 50.1344 93.0459 +-380.575 48.3708 89.7728 +-381.063 46.746 86.7573 +-380.55 45.0063 83.5284 +-380.975 43.385 80.5195 +-380.394 41.657 77.3124 +-379.779 39.9371 74.1204 +-379.13 38.2255 70.9437 +-379.819 36.6546 68.0284 +-379.203 34.9634 64.8895 +-379.831 33.3924 61.9739 +-380.825 31.8519 59.1148 +-379.621 30.1333 55.9253 +-381.05 28.6276 53.1307 +-378.991 26.8669 49.8631 +-380.362 25.3565 47.0599 +-379.922 23.7254 44.0326 +-379.947 22.1287 41.0693 +-380.737 20.5766 38.1888 +-378.913 18.8907 35.0599 +-379.246 17.3216 32.1476 +-379.55 15.7511 29.2329 +-379.826 14.1794 26.316 +-378.376 12.5504 23.2926 +-379.99 11.0242 20.4602 +-378.281 9.40375 17.4527 +-378.439 7.83752 14.5459 +-378.169 6.26414 11.6258 +-145.65 1.80912 3.35761 +-146.878 1.21609 2.25698 +-144.295 0.597308 1.10856 +96.3 0 0 +96.1963 0.404856 0.735418 +96.0854 0.808842 1.46925 +96.167 1.21444 2.20603 +96.1414 1.61912 2.94111 +97.0076 2.0426 3.71036 +96.0682 2.42806 4.41055 +97.0187 2.86171 5.19827 +96.9632 3.2699 5.93975 +96.8007 3.67406 6.6739 +96.7305 4.0813 7.41365 +96.7525 4.49286 8.16125 +96.5681 4.89482 8.89141 +96.5752 5.30653 9.63927 +96.4755 5.71274 10.3771 +96.3684 6.11852 11.1142 +96.2541 6.52386 11.8505 +96.0334 6.92158 12.573 +95.9045 7.32548 13.3067 +95.6697 7.72084 14.0248 +96.3142 8.19017 14.8774 +96.1623 8.59518 15.6131 +96.0031 8.99956 16.3476 +95.6407 9.38402 17.046 +95.6628 9.80624 17.8129 +95.4817 10.2084 18.5436 +96.1703 10.7075 19.4502 +95.9729 11.1119 20.1846 +95.8652 11.527 20.9387 +96.4275 12.0266 21.8462 +95.4335 12.3321 22.4011 +95.7849 12.8106 23.2703 +95.7417 13.2398 24.05 +96.1696 13.7381 24.9551 +95.9174 14.1423 25.6894 +95.6578 14.5454 26.4217 +95.391 14.9474 27.1519 +96.729 15.6085 28.3527 +96.5374 16.0307 29.1196 +96.1494 16.4202 29.8272 +96.6944 16.9727 30.8308 +96.2899 17.3621 31.5381 +96.999 17.9568 32.6183 +96.6704 18.3643 33.3587 +96.3344 18.7704 34.0964 +95.9911 19.1752 34.8315 +96.4689 19.748 35.8721 +96.2913 20.1917 36.6781 +96.7445 20.7727 37.7334 +96.3649 21.1791 38.4716 +96.703 21.7469 39.503 +96.3961 22.1738 40.2785 +95.9912 22.5786 41.0138 +96.2054 23.1324 42.0198 +96.5851 23.7334 43.1115 +96.152 24.1389 43.8482 +96.4179 24.7238 44.9106 +96.0547 25.1517 45.6879 +96.2956 25.742 46.7601 +95.8262 26.1463 47.4945 +96.2154 26.7897 48.6633 +96.3301 27.3649 49.7082 +95.8313 27.7693 50.4427 +96.0073 28.3731 51.5395 +96.1687 28.9805 52.6429 +96.3153 29.5915 53.7526 +95.7762 29.9957 54.4869 +95.8135 30.584 55.5555 +95.9196 31.2017 56.6777 +95.3514 31.6042 57.4088 +95.5131 32.2533 58.5878 +95.6586 32.9061 59.7736 +95.0595 33.3074 60.5026 +95.0159 33.907 61.5918 +95.1175 34.5668 62.7903 +95.2024 35.23 63.995 +95.1917 35.8668 65.1518 +95.2434 36.5362 66.3678 +95.2004 37.1785 67.5344 +94.987 37.7618 68.5939 +95.9088 38.8111 70.5 +95.1268 39.1819 71.1737 +95.7726 40.1503 72.9326 +95.0425 40.5518 73.662 +94.8996 41.2084 74.8547 +94.8139 41.8994 76.11 +95.3685 42.8889 77.9073 +95.0966 43.521 79.0555 +94.9529 44.221 80.3272 +94.791 44.9232 81.6026 +94.823 45.7296 83.0675 +94.6228 46.4365 84.3515 +94.2651 47.0758 85.5128 +94.6488 48.1004 87.374 +95.0024 49.132 89.2478 +94.7853 49.8853 90.6162 +94.3474 50.533 91.7927 +94.7547 51.6508 93.8233 +93.8164 52.0473 94.5434 +94.2349 53.2105 96.6564 +93.847 53.9372 97.9766 +93.5035 54.7026 99.3668 +94.0834 56.0307 101.779 +93.6885 56.8024 103.181 +93.4574 57.6883 104.79 +93.5058 58.7681 106.752 +93.2813 59.6988 108.442 +93.3277 60.8254 110.489 +93.3403 61.9573 112.545 +93.319 63.0935 114.609 +93.1488 64.1554 116.538 +93.3437 65.499 118.978 +93.3293 66.7288 121.212 +93.3877 68.0439 123.601 +92.9699 69.0412 125.413 +95.9617 72.6433 131.956 +96.9752 74.8438 135.953 +115.106 90.5868 164.55 +115.317 92.5559 168.127 +115.008 94.1594 171.04 +115 96.06 174.492 +114.784 97.8415 177.728 +114.851 99.9234 181.51 +114.804 101.971 185.23 +114.645 103.984 188.885 +114.467 106.045 192.629 +114.269 108.155 196.463 +114.717 110.963 201.563 +114.196 112.915 205.109 +111.33 112.564 204.472 +110.008 113.772 206.665 +106.037 112.211 203.831 +105.101 113.843 206.795 +101.322 112.379 204.136 +100.262 113.911 206.919 +96.2449 112.057 203.55 +95.1875 113.62 206.389 +91.5154 112.042 203.523 +90.2729 113.413 206.014 +90.2835 116.454 211.538 +89.9855 119.231 216.583 +89.8274 122.333 222.217 +89.7266 125.67 228.279 +89.004 128.284 233.027 +89.275 132.507 240.697 +88.7383 135.729 246.551 +88.7933 140.064 254.424 +88.4424 143.992 261.561 +88.2315 148.392 269.553 +87.9749 152.987 277.899 +87.8949 158.196 287.361 +87.5328 163.229 296.503 +87.3338 168.926 306.852 +86.9584 174.679 317.304 +84.0417 175.556 318.896 +84.3032 183.389 333.124 +85.4933 193.973 352.35 +85.3494 202.312 367.498 +78.9377 195.846 355.754 +78.8715 205.228 372.796 +71.4562 195.436 355.008 +70.954 204.481 371.439 +64.2476 195.627 355.355 +63.4102 204.618 371.688 +56.894 195.231 354.635 +55.7608 204.26 371.037 +49.7105 195.249 354.668 +48.2699 204.315 371.137 +42.5535 195.254 354.677 +40.7153 203.922 370.423 +35.3678 194.958 354.139 +33.2823 203.945 370.465 +28.2932 195.129 354.451 +25.8907 204.146 370.83 +21.2275 195.338 354.829 +18.4423 203.707 370.032 +14.1238 195.053 354.312 +11.0624 203.734 370.082 +7.03681 194.419 353.16 +3.67998 203.363 369.406 +2.46881e-14 194.448 353.214 +-3.68085 203.411 369.494 +-7.03681 194.419 353.16 +-11.0205 202.963 368.681 +-14.0819 194.474 353.261 +-18.3725 202.936 368.631 +-21.1123 194.278 352.905 +-25.7564 203.087 368.906 +-28.2165 194.6 353.49 +-33.1019 202.839 368.456 +-35.1499 193.756 351.957 +-40.514 202.914 368.592 +-42.2713 193.959 352.325 +-47.851 202.542 367.916 +-49.2961 193.621 351.712 +-55.3039 202.587 367.997 +-56.4208 193.607 351.685 +-62.7747 202.567 367.962 +-63.4967 193.341 351.202 +-70.2278 202.389 367.638 +-70.7269 193.441 351.385 +-77.8328 202.525 367.886 +-77.831 193.101 350.766 +-85.3295 202.265 367.413 +-85.1814 193.265 351.065 +-93.0474 202.411 367.677 +-92.3649 192.942 350.477 +-100.732 202.347 367.561 +-99.9379 193.305 351.137 +-108.314 201.982 366.898 +-107.255 193.04 350.656 +-116.222 202.108 367.128 +-114.996 193.406 351.32 +-124.086 202.024 366.975 +-122.358 193.008 350.598 +-131.95 201.823 366.609 +-130.034 193.004 350.59 +-141.93 204.569 371.597 +-139.539 195.437 355.009 +-147.91 201.433 365.902 +-147.547 195.501 355.126 +-150.449 194.06 352.508 +-147.11 184.82 335.724 +-165.475 202.591 368.005 +-160.819 191.96 348.694 +-172.743 201.122 365.337 +-169.851 192.974 350.536 +-453.457 502.942 913.591 +-178.11 192.925 350.447 +-458.526 485.224 881.405 +-145.972 150.967 274.23 +-146.072 147.692 268.281 +-152.202 150.495 273.374 +-153.581 148.554 269.848 +-112.544 106.523 193.498 +-111.743 103.521 188.045 +-112.908 102.408 186.023 +-113.421 100.742 182.998 +-115.579 100.556 182.659 +-116.458 99.2685 180.32 +-119.35 99.6934 181.092 +-119.982 98.2316 178.437 +-124.227 99.7074 181.118 +-124.929 98.317 178.592 +-507.292 391.518 711.19 +-507.318 384.04 697.606 +-513.758 381.527 693.04 +-514.792 375.087 681.343 +-521.28 372.707 677.019 +-522.17 366.405 665.572 +-528.436 363.957 661.124 +-528.556 357.361 649.143 +-535.649 355.552 645.857 +-536.292 349.523 634.906 +-543.258 347.677 631.552 +-544.111 341.972 621.19 +-560.252 345.826 628.19 +-564.185 342.058 621.346 +-573.122 341.32 620.005 +-574.697 336.216 610.733 +-580.887 333.858 606.45 +-582.295 328.797 597.257 +-590.519 327.608 595.097 +-572.835 312.252 567.203 +-583.883 312.732 568.075 +-582.156 306.387 556.55 +-589.315 304.772 553.616 +-589.989 299.832 544.641 +-597.128 298.204 541.686 +-597.876 293.41 532.977 +-604.364 291.462 529.439 +-605.264 286.846 521.054 +-613.165 285.561 518.719 +-613.884 280.944 510.333 +-621.431 279.468 507.652 +-621.377 274.594 498.798 +-629.369 273.292 496.433 +-135.187 57.6801 104.775 +-137.206 57.5205 104.485 +-141.664 58.35 105.992 +-137.505 55.6435 101.076 +-141.747 56.3515 102.362 +-141.518 55.2668 100.392 +-142.435 54.6394 99.2521 +-142.866 53.8297 97.7812 +-142.566 52.7567 95.832 +-149.105 54.1866 98.4295 +-149.115 53.2129 96.6608 +-682.406 239.104 434.331 +-383.774 132.016 239.806 +-692.02 233.684 424.485 +-672.24 222.814 404.74 +-385.337 125.346 227.691 +-383.921 122.549 222.609 +-381.931 119.615 217.28 +-383.321 117.77 213.928 +-382.979 115.411 209.644 +-382.068 112.913 205.106 +-715.478 207.326 376.606 +-716.875 203.646 369.921 +-741.837 206.553 375.202 +-722.395 197.107 358.043 +-737.392 197.122 358.07 +-739.349 193.597 351.667 +-749.181 192.108 348.963 +-411.928 103.415 187.852 +-761.632 187.152 339.96 +-410.775 98.7699 179.415 +-773.682 181.982 330.569 +-412.572 94.9031 172.391 +-407.204 91.573 166.342 +-406.389 89.3161 162.242 +-410.182 88.0733 159.984 +-405.891 85.1126 154.606 +-406.863 83.2882 151.292 +-405.86 81.0747 147.271 +-405.55 79.0202 143.54 +-406.22 77.1688 140.177 +-405.174 75.0073 136.25 +-404.83 72.9953 132.595 +-394.953 69.3258 125.93 +-385.446 65.826 119.572 +-382.651 63.5415 115.423 +-382.08 61.6535 111.993 +-381.659 59.8049 108.635 +-381.582 58.022 105.397 +-381.087 56.1884 102.066 +-380.172 54.3086 98.6511 +-380.467 52.6134 95.5719 +-381.116 50.9718 92.5899 +-380.575 49.1788 89.3328 +-381.063 47.5268 86.3321 +-379.677 45.6529 82.9282 +-380.975 44.1096 80.1248 +-380.394 42.3528 76.9334 +-379.779 40.6041 73.7571 +-381.869 39.1447 71.1059 +-379.819 37.2669 67.695 +-379.595 35.5842 64.6383 +-379.831 33.9502 61.6702 +-380.037 32.3168 58.7032 +-379.621 30.6366 55.6512 +-380.161 29.0378 52.747 +-378.991 27.3157 49.6187 +-379.471 25.7196 46.7195 +-379.922 24.1216 43.8167 +-379.053 22.4454 40.7719 +-380.737 20.9203 38.0016 +-380.206 19.2718 35.0071 +-379.246 17.6109 31.99 +-379.55 16.0142 29.0896 +-379.826 14.4162 26.187 +-378.875 12.7768 23.209 +-379.99 11.2084 20.3599 +-379.679 9.59612 17.4313 +-378.439 7.96843 14.4746 +-378.569 6.37547 11.581 +-145.65 1.83934 3.34115 +-146.978 1.23725 2.24745 +-144.295 0.607285 1.10313 +96.1 0 0 +96.0963 0.411047 0.730975 +96.9852 0.829759 1.47558 +96.167 1.2343 2.19498 +96.1414 1.64558 2.92638 +96.1084 2.05675 3.65757 +96.168 2.47031 4.39302 +96.1204 2.88156 5.12435 +96.9632 3.32335 5.91001 +96.8007 3.73412 6.64049 +96.8301 4.15229 7.38413 +96.7525 4.56631 8.12038 +96.6675 4.97998 8.85604 +96.5752 5.39328 9.59101 +96.4755 5.80613 10.3252 +96.3684 6.21854 11.0586 +96.2541 6.6305 11.7912 +96.9236 7.09992 12.626 +95.9045 7.44522 13.24 +95.6697 7.84705 13.9546 +96.3142 8.32406 14.8029 +95.9657 8.71784 15.5032 +96.0031 9.14667 16.2658 +95.8366 9.55697 16.9954 +95.4672 9.94615 17.6875 +95.4817 10.3753 18.4507 +96.1703 10.8826 19.3528 +95.0978 11.1905 19.9004 +95.8652 11.7154 20.8339 +95.653 12.125 21.5622 +96.3028 12.6479 22.4921 +95.9776 13.0462 23.2004 +96.6068 13.5778 24.1458 +96.1696 13.9627 24.8302 +96.1086 14.4022 25.6118 +96.5162 14.9158 26.5252 +96.2469 15.3281 27.2584 +96.16 15.7703 28.0448 +96.5374 16.2927 28.9738 +96.1494 16.6886 29.6779 +96.6004 17.2334 30.6466 +96.2899 17.6459 31.3802 +96.999 18.2503 32.455 +96.5773 18.6465 33.1596 +96.3344 19.0773 33.9256 +96.8226 19.6574 34.9573 +96.4689 20.0708 35.6924 +96.2913 20.5218 36.4944 +96.7445 21.1123 37.5445 +96.3649 21.5253 38.2789 +96.7937 22.123 39.342 +96.3961 22.5362 40.0768 +95.9912 22.9477 40.8084 +96.2949 23.5324 41.8482 +95.7832 23.9211 42.5395 +96.152 24.5335 43.6286 +96.5062 25.151 44.7266 +96.7578 25.7499 45.7918 +96.2956 26.1628 46.526 +96.6095 26.7909 47.643 +96.1288 27.2031 48.376 +95.6408 27.6133 49.1054 +95.8313 28.2233 50.1902 +96.0073 28.8369 51.2815 +96.0838 29.4283 52.3332 +95.5563 29.8381 53.062 +95.6084 30.4326 54.1191 +95.8135 31.0839 55.2773 +95.4222 31.5473 56.1015 +96.0931 32.3707 57.5657 +95.677 32.8367 58.3944 +95.6586 33.444 59.4743 +95.7067 34.0823 60.6095 +95.8197 34.7528 61.8018 +95.1974 35.1613 62.5283 +95.1231 35.776 63.6215 +95.1917 36.4531 64.8255 +95.8695 37.3776 66.4695 +95.2004 37.7862 67.1962 +95.1413 38.4414 68.3613 +95.1427 39.1304 69.5867 +95.1268 39.8224 70.8173 +94.9425 40.4529 71.9384 +95.0425 41.2147 73.2932 +95.5684 42.1772 75.0048 +95.4774 42.8824 76.2588 +94.7103 43.2891 76.9822 +95.2417 44.2999 78.7797 +95.0967 45.012 80.046 +94.791 45.6575 81.194 +94.823 46.4771 82.6515 +95.1134 47.4403 84.3644 +94.8903 48.1627 85.6489 +94.5799 48.8511 86.8732 +94.3886 49.6121 88.2265 +94.7177 50.6645 90.098 +94.4143 51.3958 91.3984 +94.1583 52.1648 92.766 +94.2757 53.1574 94.5311 +94.3648 54.1548 96.3049 +93.9113 54.8567 97.5531 +94.0124 55.8992 99.4071 +94.0834 56.9467 101.27 +94.1242 57.999 103.141 +93.3958 58.5926 104.197 +93.384 59.6508 106.079 +93.2813 60.6747 107.899 +93.2087 61.7408 109.795 +93.3991 63.0098 112.052 +93.0867 63.9656 113.752 +93.5503 65.4855 116.455 +93.1172 66.408 118.095 +93.4411 67.901 120.75 +92.6702 68.6249 122.037 +93.1333 70.2934 125.005 +92.5767 71.2261 126.663 +91.676 71.9104 127.88 +94.6245 75.685 134.593 +114.853 93.6905 166.612 +114.957 95.6565 170.108 +114.55 97.248 172.939 +114.587 99.2703 176.535 +114.803 101.514 180.525 +114.28 103.165 183.46 +114.692 105.727 188.016 +114.698 107.995 192.051 +114.36 110.011 195.635 +114.316 112.382 199.851 +114.503 115.069 204.631 +114.128 117.28 208.562 +112.374 118.119 210.054 +110.474 118.818 211.298 +107.134 117.943 209.741 +105.11 118.487 210.708 +102.059 117.849 209.574 +100.148 118.507 210.744 +97.0606 117.749 209.397 +95.2537 118.525 210.777 +92.2081 117.738 209.377 +90.2134 118.266 210.315 +90.1223 121.365 215.826 +90.0945 124.703 221.762 +89.7917 127.817 227.301 +89.2895 130.799 232.604 +89.2441 134.626 239.409 +88.7984 138.041 245.483 +88.5302 141.931 252.4 +88.4708 146.393 260.335 +88.3418 151.006 268.538 +87.2533 154.212 274.24 +87.0408 159.22 283.144 +86.7316 164.378 292.318 +85.4468 167.977 298.718 +83.947 171.387 304.781 +86.5837 183.822 326.896 +84.195 186.147 331.031 +81.6261 188.226 334.728 +76.976 185.446 329.784 +74.6445 188.223 334.721 +70.2336 185.739 330.305 +67.6707 188.108 334.518 +63.3948 185.683 330.205 +60.6966 187.835 334.033 +56.5371 185.422 329.741 +53.9157 188.035 334.387 +49.7305 185.148 329.253 +47.005 187.64 333.686 +43.1078 185.448 329.787 +40.2435 187.673 333.743 +36.4118 185.349 329.612 +33.4504 187.403 333.263 +29.6889 184.9 328.812 +26.7865 187.758 333.895 +23.1435 185.468 329.823 +20.0551 187.567 333.555 +16.4969 185.197 329.341 +13.3735 187.71 333.809 +9.8818 184.967 328.932 +6.66507 187.158 332.829 +3.2899 184.778 328.596 +2.33716e-14 187.089 332.705 +-3.28816 184.68 328.422 +-6.66856 187.256 333.003 +-9.88965 185.114 329.193 +-13.3142 186.877 332.328 +-16.4532 184.707 328.47 +-19.9714 186.783 332.162 +-23.0214 184.49 328.083 +-26.6679 186.927 332.417 +-29.6575 184.704 328.465 +-33.3196 186.67 331.96 +-36.2201 184.373 327.876 +-40.0553 186.795 332.183 +-42.8814 184.474 328.055 +-46.7978 186.813 332.215 +-49.5608 184.517 328.131 +-53.4564 186.433 331.539 +-56.0198 183.725 326.723 +-60.1178 186.044 330.848 +-62.7181 183.701 326.681 +-66.9587 186.129 330.998 +-69.3953 183.522 326.362 +-73.7668 186.009 330.785 +-76.0788 183.285 325.94 +-80.545 185.733 330.294 +-82.9397 183.372 326.095 +-87.551 185.876 330.548 +-89.8064 183.35 326.055 +-94.4947 185.764 330.35 +-96.7468 183.36 326.074 +-101.483 185.638 330.125 +-103.635 183.166 325.728 +-108.877 186.108 330.96 +-110.908 183.52 326.359 +-116.13 186.179 331.087 +-117.967 183.385 326.118 +-123.298 185.997 330.763 +-125.018 183.138 325.68 +-130.553 185.84 330.485 +-132.421 183.288 325.946 +-139.784 188.242 334.755 +-141.204 185.112 329.189 +-147.074 187.795 333.961 +-146.894 182.781 325.044 +-146.658 177.919 316.398 +-148.864 176.153 313.258 +-159.965 184.714 328.482 +-162.45 183.124 325.653 +-147.727 162.631 289.21 +-146.055 157.086 279.35 +-147.071 154.59 274.911 +-153.692 157.936 280.863 +-473.09 475.432 845.473 +-112.531 110.627 196.731 +-112.499 108.22 192.45 +-113.544 106.909 190.119 +-114.645 105.683 187.94 +-116.474 105.146 186.983 +-117.421 103.829 184.642 +-119.856 103.835 184.653 +-121.65 103.276 183.658 +-125.057 104.061 185.054 +-128.141 104.53 185.889 +-508.443 406.676 723.203 +-511.054 400.87 712.878 +-515.861 396.891 705.802 +-518.714 391.504 696.223 +-522.85 387.186 688.543 +-525.697 382.009 679.337 +-530.723 378.494 673.086 +-532.91 373.038 663.383 +-538.254 369.866 657.743 +-540.292 364.496 648.193 +-544.917 360.95 641.887 +-547.832 356.335 633.681 +-169.723 108.414 192.795 +-2017.21 1265.52 2250.51 +-575.826 354.823 630.992 +-578.408 350.099 622.591 +-583.665 347.045 617.159 +-586.415 342.545 609.156 +-591.972 339.725 604.143 +-594.258 335.072 595.867 +-583.901 323.487 575.265 +-587.095 319.593 568.34 +-592.56 316.961 563.66 +-595.248 312.873 556.391 +-599.763 309.782 550.893 +-602.477 305.794 543.801 +-607.478 302.996 538.825 +-610.657 299.311 532.273 +-615.535 296.482 527.242 +-618.632 292.816 520.723 +-624.04 290.26 516.177 +-626.916 286.544 509.569 +-631.994 283.852 504.781 +-635.24 280.35 498.555 +-141.028 61.156 108.755 +-142.565 60.7438 108.022 +-142.652 59.7175 106.197 +-143.48 59.0107 104.94 +-141.979 57.3657 102.015 +-141.674 56.232 99.9989 +-142.983 55.7458 99.1342 +-146.412 56.0678 99.7069 +-675.778 254.162 451.983 +-678.92 250.76 445.934 +-685.529 248.634 442.153 +-387.6 138.029 245.461 +-386.461 135.114 240.276 +-698.327 239.669 426.209 +-704.71 237.395 422.165 +-708.413 234.207 416.496 +-714.557 231.817 412.247 +-383.44 122.051 217.046 +-381.972 119.274 212.108 +-728.473 223.115 396.771 +-735.317 220.861 392.764 +-739.221 217.708 387.156 +-741.26 214.015 380.589 +-726.162 205.494 365.435 +-737.104 204.408 363.504 +-738.354 200.605 356.741 +-745.413 198.375 352.775 +-755.097 196.79 349.957 +-762.918 194.662 346.172 +-768.315 191.881 341.226 +-776.177 189.68 337.313 +-2944.9 704.007 1251.95 +-415.46 97.1294 172.728 +-412.551 94.2924 167.683 +-412.576 92.1583 163.888 +-413.379 90.2105 160.424 +-822.97 175.392 311.905 +-412.938 85.9138 152.783 +-409.371 83.1126 147.801 +-409.444 81.0829 144.192 +-406.313 78.4484 139.507 +-408.068 76.778 136.536 +-393.402 72.0942 128.207 +-392.04 69.9395 124.375 +-381.016 66.133 117.606 +-379.437 64.0381 113.881 +-380.278 62.3657 110.907 +-381.374 60.737 108.01 +-381.582 58.9705 104.869 +-380.801 57.0638 101.478 +-382.761 55.5723 98.8257 +-381.525 53.622 95.3574 +-381.598 51.8702 92.2422 +-381.637 50.1219 89.1331 +-382.031 48.4264 86.118 +-380.841 46.5415 82.766 +-381.072 44.8421 79.7439 +-380.979 43.1113 76.6659 +-381.439 41.4482 73.7085 +-380.206 39.6113 70.4419 +-380.211 37.9152 67.4256 +-380.184 36.222 64.4145 +-381.7 34.6748 61.6631 +-379.643 32.8111 58.3488 +-380.213 31.186 55.4589 +-380.754 29.5585 52.5647 +-380.87 27.8998 49.615 +-381.451 26.2765 46.7282 +-380.517 24.5544 43.6657 +-380.046 22.8721 40.674 +-380.041 21.2234 37.7422 +-379.609 19.5561 34.7771 +-379.843 17.927 31.88 +-379.65 16.2803 28.9516 +-379.925 14.6558 26.0627 +-378.476 12.972 23.0685 +-377.794 11.3258 20.1409 +-380.278 9.76837 17.3714 +-379.538 8.12222 14.4439 +-379.169 6.48998 11.5413 +-379.37 4.86919 8.659 +-146.778 1.25576 2.23315 +-145.494 0.622344 1.10673 +96.2 0 0 +96.0963 0.417624 0.727237 +96.0854 0.835219 1.45442 +96.167 1.25405 2.18376 +97.0408 1.68756 2.93866 +97.0076 2.10921 3.6729 +96.9669 2.53069 4.40687 +96.1204 2.92767 5.09814 +96.0654 3.34527 5.82534 +96.9004 3.79778 6.61333 +96.8301 4.21874 7.34637 +96.7525 4.63938 8.07886 +96.6675 5.05968 8.81075 +96.5752 5.47958 9.54196 +96.4755 5.89904 10.2724 +96.3684 6.31805 11.002 +96.2541 6.73661 11.7309 +96.0334 7.1473 12.4461 +95.8058 7.55655 13.1587 +95.6697 7.97262 13.8833 +96.3142 8.45726 14.7272 +95.9657 8.85735 15.4239 +95.8068 9.27407 16.1495 +95.6407 9.69004 16.8739 +95.4672 10.1053 17.597 +95.4817 10.5413 18.3564 +96.1703 11.0567 19.2538 +95.9729 11.4742 19.9808 +95.7682 11.8909 20.7063 +96.5243 12.4313 21.6474 +96.2062 12.8374 22.3546 +95.9776 13.2549 23.0817 +96.6068 13.7951 24.0224 +96.1696 14.1861 24.7032 +95.9174 14.6035 25.4301 +95.8486 15.0497 26.207 +96.4371 15.6042 27.1726 +95.9704 15.9911 27.8463 +96.5374 16.5534 28.8256 +96.2437 16.9723 29.5551 +96.6944 17.5262 30.5195 +96.3836 17.9457 31.2501 +96.9056 18.5245 32.258 +96.5773 18.9449 32.9901 +96.3344 19.3826 33.7521 +96.8226 19.972 34.7785 +96.561 20.4115 35.5438 +96.2913 20.8502 36.3078 +96.7445 21.4501 37.3525 +96.3649 21.8697 38.0832 +95.978 22.2877 38.811 +96.3961 22.8969 39.8719 +96.6204 23.4677 40.8659 +96.2949 23.9089 41.6342 +96.5851 24.5074 42.6763 +96.152 24.9261 43.4055 +95.7115 25.3431 44.1315 +96.7578 26.162 45.5576 +96.2956 26.5815 46.2881 +96.6095 27.2196 47.3993 +96.1288 27.6384 48.1286 +95.6408 28.0552 48.8543 +95.8313 28.6749 49.9335 +96.0073 29.2984 51.0192 +95.4902 29.7145 51.7438 +95.6406 30.3424 52.8373 +95.6084 30.9196 53.8423 +95.8135 31.5813 54.9947 +95.9196 32.2192 56.1055 +95.3514 32.6349 56.8293 +95.677 33.3622 58.0958 +95.6586 33.9791 59.1701 +95.6258 34.5984 60.2486 +95.659 35.2497 61.3826 +95.1974 35.724 62.2086 +95.2024 36.3789 63.3489 +95.1917 37.0365 64.494 +95.8695 37.9757 66.1296 +95.2004 38.3909 66.8526 +95.1413 39.0565 68.0118 +95.1427 39.7566 69.2308 +95.1268 40.4597 70.4551 +94.9425 41.1002 71.5705 +95.0425 41.8742 72.9184 +94.8996 42.5522 74.099 +94.8139 43.2658 75.3416 +95.2223 44.2196 77.0025 +95.0966 44.9402 78.2574 +94.9529 45.6631 79.5162 +94.791 46.3882 80.7788 +94.6816 47.1505 82.1063 +94.4826 47.8798 83.3763 +94.8903 48.9334 85.2109 +94.6488 49.669 86.4919 +94.3886 50.406 87.7754 +94.7177 51.4752 89.6372 +94.4143 52.2182 90.9311 +94.0258 52.9249 92.1616 +94.2757 54.008 94.0477 +94.2999 54.9836 95.7465 +93.9113 55.7345 97.0542 +93.9488 56.7554 98.832 +94.0834 57.858 100.752 +93.6262 58.6154 102.071 +93.4574 59.5695 103.732 +93.5058 60.6845 105.674 +93.3415 61.685 107.416 +93.6251 63.0092 109.722 +93.3403 63.9778 111.409 +93.2609 65.1107 113.382 +93.1488 66.2476 115.361 +93.1172 67.4707 117.491 +92.9938 68.6574 119.558 +92.5598 69.6404 121.269 +92.4797 70.9167 123.492 +92.8454 72.576 126.381 +91.994 73.3146 127.668 +91.7507 74.561 129.838 +114.75 95.1046 165.612 +114.957 97.1872 169.239 +115 99.1926 172.731 +114.587 100.859 175.632 +114.803 103.139 179.602 +114.709 105.209 183.208 +114.504 107.243 186.749 +114.837 109.857 191.301 +114.406 111.816 194.712 +114.36 114.225 198.907 +114.108 116.508 202.883 +114.085 119.112 207.417 +113.05 120.731 210.237 +111.47 121.807 212.111 +108.111 120.922 210.569 +105.948 121.342 211.3 +103.231 121.11 210.896 +101.181 121.646 211.83 +98.072 120.881 210.497 +96.2066 121.627 211.796 +93.1757 120.878 210.492 +91.2991 121.604 211.757 +89.9513 123.073 214.315 +89.8608 126.369 220.055 +89.6615 129.675 225.811 +89.3213 132.94 231.497 +89.1205 136.591 237.855 +88.6781 140.06 243.896 +88.5009 144.155 251.026 +88.3288 148.497 258.588 +88.2591 153.279 266.915 +88.055 158.12 275.344 +86.0056 159.843 278.346 +85.8052 165.225 287.717 +83.9227 167.621 291.89 +86.7483 179.94 313.342 +86.0888 185.696 323.365 +82.312 184.896 321.972 +79.5886 186.465 324.704 +75.4807 184.754 321.724 +72.7746 186.444 324.667 +68.557 184.206 320.771 +65.9342 186.214 324.267 +61.8103 183.94 320.306 +59.1322 185.923 323.759 +55.1033 183.611 319.735 +52.4126 185.718 323.403 +48.5688 183.717 319.918 +45.7985 185.75 323.458 +42.0437 183.765 320.002 +39.1773 185.624 323.24 +35.5013 183.606 319.726 +32.6485 185.837 323.611 +29.0063 183.539 319.609 +26.1098 185.943 323.796 +22.588 183.913 320.259 +19.5318 185.595 323.19 +16.1043 183.683 319.86 +13.014 185.587 323.176 +9.65406 183.596 319.708 +6.48531 185.025 322.196 +3.21398 183.403 319.371 +2.27593e-14 185.103 322.332 +-3.20787 183.054 318.764 +-6.48706 185.074 322.282 +-9.61741 182.899 318.494 +-12.9791 185.089 322.308 +-16.0388 182.937 318.56 +-19.4742 185.048 322.236 +-22.4475 182.769 318.268 +-25.9494 184.801 321.806 +-28.92 182.993 318.658 +-32.4219 184.547 321.364 +-35.3383 182.764 318.259 +-38.9787 184.683 321.601 +-41.7154 182.33 317.503 +-45.4451 184.316 320.962 +-48.2294 182.433 317.683 +-52.0368 184.386 321.084 +-54.6304 182.035 316.99 +-58.4752 183.857 320.162 +-61.1501 181.975 316.885 +-65.066 183.762 319.997 +-67.6641 181.808 316.594 +-71.8396 184.049 320.496 +-74.2047 181.631 316.286 +-78.4451 183.786 320.038 +-80.732 181.347 315.792 +-85.2564 183.901 320.238 +-87.6587 181.829 316.63 +-92.0513 183.857 320.162 +-94.6687 182.293 317.438 +-98.9465 183.894 320.227 +-101.283 181.874 316.709 +-105.9 183.916 320.265 +-108.267 182.016 316.957 +-112.885 183.872 320.189 +-115.351 182.188 317.255 +-120.084 184.048 320.494 +-122.289 182.007 316.941 +-127.069 183.776 320.022 +-129.45 182.043 317.004 +-134.346 183.814 320.087 +-137.281 182.849 318.408 +-143.276 185.872 323.672 +-145.831 184.362 321.042 +-146.658 180.766 314.78 +-145.955 175.476 305.567 +-151.369 177.585 309.241 +-154.276 176.692 307.686 +-146.018 163.322 284.404 +-146.47 160.053 278.711 +-149.691 159.862 278.378 +-157.137 164.06 285.688 +-175.042 178.723 311.222 +-112.397 112.264 195.492 +-112.862 110.307 192.084 +-114.19 109.238 190.223 +-115.067 107.77 187.667 +-117.047 107.354 186.942 +-118.342 106.318 185.139 +-121.185 106.667 185.746 +-122.9 106.007 184.596 +-127.341 107.657 187.47 +-130.253 107.953 187.986 +-510.951 415.222 723.054 +-513.439 409.185 712.542 +-517.849 404.797 704.899 +-520.729 399.315 695.353 +-525.334 395.251 688.277 +-528.493 390.187 679.458 +-532.818 386.07 672.289 +-535.434 380.802 663.116 +-540.054 377.042 656.568 +-542.702 371.981 647.755 +-547.594 368.528 641.742 +-555.776 367.287 639.582 +-1994.61 1294.48 2254.17 +-574.597 366.247 637.77 +-581.802 364.243 634.28 +-580.926 357.249 622.102 +-586.973 354.596 617.482 +-588.729 349.4 608.433 +-593.596 346.108 602.702 +-583.696 334.383 582.283 +-586.485 330.118 574.856 +-589.236 325.891 567.496 +-594.519 323.098 562.632 +-596.953 318.79 555.131 +-602.517 316.184 550.592 +-605.047 312.013 543.329 +-610.702 309.478 538.915 +-613.274 305.404 531.821 +-618.602 302.728 527.16 +-621.222 298.748 520.229 +-627.086 296.345 516.046 +-628.964 292.081 508.619 +-635.386 289.942 504.895 +-638.287 286.203 498.384 +-142.376 62.7288 109.234 +-143.168 61.9768 107.924 +-143.337 60.9644 106.161 +-142.408 59.5068 103.623 +-142.056 58.3156 101.549 +-142.451 57.4451 100.033 +-147.287 58.343 101.597 +-148.067 57.609 100.318 +-136.298 52.0823 90.6943 +-682.115 255.972 445.741 +-688.503 253.709 441.8 +-692.033 250.385 436.013 +-387.926 137.796 239.954 +-701.44 244.59 425.92 +-707.924 242.293 421.922 +-711.397 238.957 416.112 +-717.142 236.379 411.622 +-385.621 124.709 217.164 +-728.1 230.993 402.244 +-731.357 227.582 396.304 +-738.216 225.28 392.295 +-742.393 222.14 386.828 +-748.67 219.614 382.428 +-753.269 216.576 377.138 +-759.908 214.103 372.832 +-749.724 206.954 360.383 +-755.695 204.33 355.813 +-2892.98 766.018 1333.92 +-759.37 196.857 342.8 +-770.275 195.449 340.348 +-2932.25 728.046 1267.8 +-783.838 190.383 331.527 +-2957.32 702.45 1223.22 +-412.551 95.8013 166.825 +-2981.49 676.639 1178.28 +-410.639 91.0465 158.545 +-409.926 88.7622 154.568 +-409.533 86.5686 150.748 +-409.741 84.5188 147.178 +-406.57 81.8023 142.448 +-405.29 79.5031 138.444 +-408.441 78.0778 135.962 +-388.813 72.3933 126.063 +-387.529 70.241 122.315 +-382.335 67.4238 117.41 +-383.03 65.6789 114.371 +-382.649 63.7586 111.027 +-382.325 61.8628 107.726 +-382.44 60.0491 104.568 +-381.757 58.1229 101.213 +-383.24 56.5323 98.4435 +-381.909 54.5354 94.9661 +-380.73 52.5808 91.5624 +-381.83 50.9498 88.7223 +-382.515 49.2637 85.7861 +-382.976 47.5514 82.8043 +-380.683 45.5132 79.2552 +-380.881 43.7899 76.2543 +-381.244 42.09 73.294 +-382.456 40.4833 70.4963 +-380.995 38.6013 67.2191 +-380.184 36.8016 64.0851 +-380.421 35.1117 61.1424 +-381.515 33.5004 58.3365 +-380.213 31.6851 55.1753 +-381.643 30.1016 52.418 +-380.079 28.2874 49.2588 +-380.56 26.6346 46.3806 +-380.517 24.9473 43.4424 +-380.641 23.2745 40.5294 +-380.041 21.5631 37.5492 +-380.206 19.9003 34.6537 +-379.843 18.2138 31.717 +-378.853 16.506 28.743 +-380.025 14.8942 25.9362 +-380.172 13.2387 23.0534 +-379.99 11.5739 20.1544 +-378.88 9.88824 17.219 +-379.039 8.24133 14.3512 +-379.269 6.59558 11.4853 +-379.57 4.94972 8.61927 +-147.777 1.28455 2.23687 +-145.494 0.632303 1.10107 +96.2 0 0 +96.0963 0.424168 0.72344 +96.1853 0.849186 1.44833 +96.167 1.2737 2.17235 +96.1414 1.69811 2.89622 +97.0076 2.14226 3.65372 +96.168 2.54917 4.34774 +96.1204 2.97354 5.07152 +95.9657 3.39416 5.78891 +95.9034 3.81761 6.51112 +96.7305 4.28043 7.30049 +96.653 4.70722 8.0284 +96.6675 5.13896 8.76475 +96.5752 5.56544 9.49214 +96.3762 5.9853 10.2082 +96.3684 6.41705 10.9446 +96.2541 6.84216 11.6697 +96.0334 7.25929 12.3811 +95.8058 7.67495 13.09 +95.6697 8.09754 13.8108 +96.1172 8.57223 14.6204 +96.1623 9.01454 15.3748 +95.8068 9.41938 16.0652 +95.6407 9.84187 16.7858 +95.4672 10.2637 17.5052 +95.4817 10.7065 18.2605 +96.1703 11.23 19.1533 +95.9729 11.654 19.8765 +95.7682 12.0772 20.5982 +95.653 12.5121 21.3399 +96.3028 13.0516 22.2602 +95.9776 13.4626 22.9612 +95.7417 13.8858 23.6829 +96.1696 14.4084 24.5742 +95.9174 14.8323 25.2973 +95.6578 15.2551 26.0184 +96.2469 15.8174 26.9774 +95.9704 16.2416 27.7009 +96.5374 16.8128 28.6751 +96.1494 17.2214 29.3719 +96.6944 17.8008 30.3602 +96.2899 18.2092 31.0567 +95.8787 18.6154 31.7495 +96.6704 19.2603 32.8495 +97.0761 19.8379 33.8344 +96.8226 20.2849 34.5969 +96.561 20.7313 35.3582 +97.025 21.3382 36.3934 +96.7445 21.7862 37.1575 +95.7279 22.0656 37.6339 +96.1593 22.6797 38.6813 +96.3961 23.2556 39.6637 +95.9912 23.6802 40.3878 +96.2054 24.261 41.3784 +95.7832 24.6847 42.101 +96.9503 25.5269 43.5374 +96.5062 25.9539 44.2656 +95.9668 26.3547 44.9492 +96.3831 27.0225 46.0882 +95.8262 27.422 46.7695 +96.0422 28.0462 47.8342 +95.6408 28.4948 48.5992 +95.8313 29.1242 49.6728 +96.0073 29.7575 50.7528 +95.4054 30.1533 51.428 +96.3153 31.0352 52.9322 +95.7762 31.4592 53.6552 +95.9803 32.132 54.8027 +95.2564 32.4979 55.4267 +95.3514 33.1462 56.5325 +95.5131 33.8269 57.6935 +95.6586 34.5116 58.8612 +95.6258 35.1406 59.934 +95.0963 35.5914 60.7029 +95.1175 36.2533 61.8318 +95.2024 36.9489 63.0182 +95.1917 37.6168 64.1573 +95.3217 38.3504 65.4085 +95.2781 39.0243 66.5579 +95.2185 39.7007 67.7116 +95.2193 40.4121 68.9248 +95.8112 41.3893 70.5915 +95.7726 42.1092 71.8194 +95.6416 42.7985 72.9949 +94.9739 43.2528 73.7699 +94.8876 43.9779 75.0066 +95.3685 44.9815 76.7181 +95.2417 45.7141 77.9676 +94.8809 46.3435 79.0411 +94.791 47.115 80.357 +94.6816 47.8893 81.6775 +94.6228 48.7022 83.064 +94.8903 49.7001 84.766 +94.6488 50.4473 86.0403 +94.3886 51.1959 87.3171 +94.7853 52.3192 89.233 +94.3474 52.9985 90.3916 +94.6884 54.133 92.3265 +94.2757 54.8543 93.5567 +93.9102 55.6145 94.8532 +93.847 56.5689 96.4811 +93.9488 57.6447 98.3159 +94.0205 58.7256 100.159 +93.6262 59.5338 101.538 +93.5805 60.5829 103.327 +93.384 61.555 104.985 +93.4017 62.692 106.924 +93.2682 63.7527 108.733 +93.693 65.2255 111.245 +93.319 66.1719 112.859 +93.1488 67.2856 114.759 +93.0039 68.4449 116.736 +92.9379 69.6912 118.862 +92.615 70.7736 120.708 +92.9699 72.4098 123.499 +92.8991 73.7557 125.794 +92.6299 74.9782 127.879 +91.4372 75.4704 128.718 +96.5696 81.2905 138.645 +114.501 98.318 167.686 +115.05 100.79 171.903 +114.587 102.439 174.715 +114.851 104.799 178.74 +114.757 106.902 182.327 +114.551 108.968 185.85 +114.698 111.443 190.071 +114.36 113.523 193.619 +114.36 116.015 197.869 +114.283 118.515 202.134 +113.999 120.887 206.179 +113.853 123.494 210.625 +111.926 124.222 211.867 +108.883 123.695 210.967 +106.745 124.171 211.779 +103.817 123.706 210.986 +101.794 124.3 211.999 +99.1209 124.088 211.638 +96.5731 124.003 211.493 +93.7491 123.527 210.682 +91.6143 123.936 211.379 +89.5067 124.384 212.142 +89.8942 128.397 218.988 +89.4336 131.372 224.061 +89.4799 135.263 230.697 +89.1205 138.731 236.613 +88.6781 142.255 242.623 +88.7348 146.8 250.375 +88.414 150.97 257.486 +88.2315 155.632 265.439 +88.0283 160.549 273.824 +86.2903 162.886 277.809 +84.8287 165.904 282.958 +83.6808 169.757 289.529 +86.8417 182.956 312.041 +85.009 186.24 317.642 +81.0566 184.93 315.406 +78.3411 186.418 317.945 +74.444 185.072 315.649 +71.4007 185.79 316.875 +67.7369 184.855 315.28 +64.7187 185.645 316.627 +61.1171 184.727 315.061 +58.0685 185.439 316.275 +54.6008 184.787 315.164 +51.5358 185.472 316.332 +48.112 184.84 315.255 +45.0307 185.498 316.375 +41.6248 184.784 315.159 +38.5292 185.414 316.233 +35.1562 184.671 314.965 +32.0297 185.172 315.82 +28.6611 184.197 314.157 +25.6355 185.426 316.254 +22.3438 184.775 315.143 +19.2387 185.675 316.677 +15.9211 184.439 314.57 +12.7627 184.856 315.281 +9.53626 184.197 314.157 +6.39456 185.294 316.028 +3.17384 183.95 313.736 +2.23919e-14 184.968 315.473 +-3.17559 184.051 313.908 +-6.38409 184.991 315.511 +-9.52317 183.944 313.726 +-12.7697 184.957 315.453 +-15.8731 183.883 313.622 +-19.155 184.866 315.299 +-22.2766 184.219 314.195 +-25.5239 184.619 314.877 +-28.5591 183.541 313.038 +-31.8903 184.366 314.445 +-34.9837 183.765 313.42 +-38.341 184.509 314.689 +-41.3192 183.428 312.845 +-44.7992 184.544 314.748 +-47.7726 183.537 313.031 +-51.1879 184.22 314.197 +-54.0982 183.087 312.264 +-57.6617 184.14 314.06 +-60.556 183.03 312.167 +-64.1804 184.101 313.993 +-67.0262 182.915 311.971 +-70.6757 183.904 313.657 +-73.6665 183.139 312.352 +-77.1976 183.697 313.304 +-80.1692 182.905 311.953 +-83.8393 183.678 313.271 +-86.8417 182.956 312.041 +-90.5756 183.744 313.384 +-93.567 182.994 312.106 +-97.3936 183.845 313.556 +-100.295 182.921 311.98 +-104.356 184.075 313.949 +-107.159 182.977 312.077 +-110.897 183.464 312.907 +-113.787 182.534 311.32 +-117.983 183.66 313.241 +-120.925 182.797 311.769 +-124.888 183.452 312.886 +-128.082 182.941 312.015 +-132.054 183.509 312.984 +-134.865 182.446 311.17 +-140.552 185.196 315.861 +-143.815 184.663 314.952 +-146.733 183.693 313.297 +-146.836 179.3 305.805 +-147.149 175.339 299.05 +-149.611 174.034 296.823 +-146.222 166.113 283.313 +-147.216 163.389 278.669 +-150.959 163.742 279.27 +-166.909 176.993 301.871 +-118.492 122.879 209.577 +-112.888 114.521 195.321 +-113.18 112.351 191.62 +-114.791 111.533 190.225 +-115.631 109.995 187.602 +-117.62 109.569 186.875 +-119.118 108.692 185.379 +-121.727 108.822 185.602 +-124.2 108.807 185.575 +-128.915 110.695 188.795 +-507.364 427.089 728.422 +-511.735 422.376 720.382 +-514.87 416.755 710.797 +-519.139 412.163 702.965 +-522.418 406.887 693.965 +-525.83 401.824 685.33 +-529.723 397.223 677.483 +-533.498 392.619 669.631 +-536.753 387.722 661.278 +-540.576 383.32 653.772 +-544.583 379.119 646.606 +-549.378 375.522 640.471 +-563.78 378.415 645.406 +-574.488 378.681 645.859 +-575.028 372.265 634.916 +-580.184 368.921 629.213 +-584.576 365.127 622.743 +-590.281 362.182 617.72 +-591.107 356.308 607.701 +-595.024 352.378 600.998 +-584.089 339.851 579.633 +-587.877 336.086 573.212 +-590.842 331.9 566.072 +-596.141 329.056 561.221 +-598.726 324.747 553.872 +-603.756 321.799 548.844 +-606.715 317.775 541.981 +-611.333 314.652 536.655 +-615.254 311.191 530.752 +-619.244 307.79 524.951 +-623.452 304.518 519.37 +-628.029 301.441 514.123 +-632.255 298.209 508.611 +-636.049 294.792 502.783 +-142.089 64.7101 110.366 +-142.901 63.9464 109.064 +-142.414 62.6161 106.795 +-143.489 61.9854 105.719 +-142.637 60.5368 103.249 +-141.979 59.197 100.963 +-142.606 58.409 99.6194 +-148.617 59.7928 101.98 +-150.037 59.2901 101.122 +-679.348 263.661 449.686 +-136.726 52.1123 88.8802 +-689.227 257.955 439.955 +-693.328 254.784 434.547 +-387.519 139.809 238.451 +-385.329 136.468 232.753 +-385.114 133.874 228.329 +-713.718 243.493 415.29 +-718.393 240.501 410.187 +-723.521 237.652 405.327 +-728.859 234.857 400.56 +-733.731 231.899 395.515 +-738.983 229.048 390.653 +-743.678 226.012 385.475 +-750.221 223.517 381.219 +-755.347 220.576 376.204 +-761.561 217.931 371.693 +-766.254 214.831 366.406 +-772.304 212.093 361.735 +-755.891 203.286 346.714 +-760.08 200.128 341.328 +-767.602 197.822 337.396 +-777.25 196.006 334.299 +-2944.9 726.48 1239.05 +-792.289 191.141 326 +-412.098 97.1957 165.772 +-412.576 95.1002 162.198 +-412.557 92.9051 158.454 +-3004.75 660.818 1127.06 +-409.717 87.9645 150.028 +-410.572 86.0177 146.707 +-408.703 83.5201 142.448 +-408.825 81.4534 138.923 +-406.574 78.9386 134.634 +-387.595 73.2975 125.013 +-384.334 70.7533 120.673 +-382.335 68.4803 116.797 +-382.179 66.5598 113.521 +-382.554 64.742 110.421 +-382.039 62.7851 107.083 +-382.44 60.99 104.022 +-381.757 59.0336 100.685 +-382.281 57.2745 97.6845 +-381.044 55.2644 94.2563 +-382.465 53.6479 91.4992 +-382.7 51.866 88.4601 +-382.031 49.9723 85.2302 +-382.005 48.1741 82.1633 +-381.558 46.3327 79.0226 +-382.343 44.6467 76.1472 +-380.56 42.6728 72.7806 +-381.575 41.023 69.9668 +-381.779 39.2868 67.0056 +-381.755 37.5327 64.0138 +-379.93 35.6158 60.7445 +-379.643 33.8585 57.7473 +-380.903 32.2399 54.9868 +-380.754 30.5021 52.0228 +-380.376 28.7531 49.0398 +-380.065 27.0167 46.0784 +-379.228 25.2524 43.0692 +-379.649 23.5775 40.2127 +-380.24 21.9124 37.3727 +-379.012 20.1487 34.3645 +-380.938 18.5526 31.6424 +-379.351 16.7867 28.6306 +-380.822 15.1593 25.855 +-379.174 13.4108 22.8728 +-379.191 11.7305 20.007 +-380.078 10.0749 17.1833 +-379.938 8.39035 14.3102 +-378.769 6.69007 11.4103 +-377.97 5.00609 8.53813 +-146.778 1.29585 2.21013 +-146.694 0.647506 1.10435 +96.1 0 0 +96.0963 0.430677 0.719584 +96.0854 0.861324 1.43912 +97.0667 1.30534 2.18099 +96.1414 1.72417 2.88078 +96.2083 2.15721 3.60431 +97.0668 2.61248 4.36498 +96.1204 3.01917 5.04449 +95.9657 3.44624 5.75805 +96.8007 3.91246 6.537 +96.7305 4.34612 7.26158 +96.653 4.77946 7.98561 +96.6675 5.21782 8.71803 +96.4758 5.64499 9.43176 +96.4755 6.08342 10.1643 +96.3684 6.51552 10.8863 +96.2541 6.94716 11.6074 +96.1323 7.37829 12.3278 +95.9045 7.80079 13.0337 +95.5711 8.21333 13.723 +96.1172 8.70378 14.5424 +96.1623 9.15288 15.2928 +95.8068 9.56393 15.9796 +95.8366 10.0134 16.7306 +95.6628 10.4425 17.4476 +95.4817 10.8708 18.1632 +96.1703 11.4023 19.0512 +95.9729 11.8329 19.7706 +95.7682 12.2625 20.4884 +95.5562 12.6912 21.2047 +96.3028 13.2519 22.1416 +95.9776 13.6692 22.8388 +95.7417 14.0989 23.5567 +96.1696 14.6295 24.4432 +96.1086 15.09 25.2126 +95.8486 15.5201 25.9312 +96.2469 16.0601 26.8336 +95.9704 16.4909 27.5532 +96.5374 17.0708 28.5222 +96.1494 17.4857 29.2154 +96.6944 18.074 30.1984 +96.2899 18.4886 30.8912 +96.9056 19.1035 31.9185 +96.6704 19.5559 32.6744 +96.2417 19.9692 33.3649 +96.8226 20.5962 34.4125 +96.4689 21.0293 35.1362 +96.2913 21.5019 35.9257 +95.9223 21.9325 36.6453 +96.3649 22.5533 37.6824 +96.1593 23.0277 38.4751 +96.3961 23.6125 39.4523 +96.171 24.0886 40.2478 +96.2949 24.6562 41.1961 +95.7832 25.0635 41.8766 +96.2407 25.7289 42.9884 +96.5062 26.3521 44.0296 +95.9668 26.7591 44.7097 +96.2956 27.4123 45.8009 +95.9132 27.8681 46.5625 +96.1288 28.5023 47.6222 +96.3301 29.1405 48.6885 +95.8313 29.5711 49.408 +96.0073 30.2141 50.4823 +96.0838 30.8338 51.5176 +95.6406 31.2908 52.2812 +95.7762 31.942 53.3692 +95.8135 32.5684 54.4159 +95.2564 32.9966 55.1313 +96.0931 33.9167 56.6686 +95.5131 34.346 57.386 +95.6586 35.0412 58.5474 +95.7067 35.71 59.665 +95.0159 36.1071 60.3283 +95.1175 36.8097 61.5023 +95.7577 37.7347 63.0479 +95.9009 38.4786 64.2908 +95.3217 38.9389 65.0598 +95.2004 39.5908 66.1491 +95.2185 40.31 67.3507 +95.1427 40.9992 68.5023 +95.1268 41.7243 69.7137 +95.0934 42.4522 70.9299 +95.6416 43.4553 72.6059 +94.8996 43.8822 73.3192 +94.8139 44.6181 74.5488 +95.3685 45.6718 76.3092 +95.2417 46.4156 77.552 +94.9529 47.0903 78.6794 +94.791 47.838 79.9287 +94.6816 48.6242 81.2422 +95.1134 49.706 83.0497 +94.8903 50.4628 84.3142 +94.6488 51.2214 85.5817 +94.3204 51.944 86.789 +94.7853 53.1221 88.7574 +94.3474 53.8118 89.9098 +94.7547 55.0022 91.8987 +94.2757 55.696 93.058 +94.2349 56.6631 94.6737 +93.847 57.437 95.9668 +93.9488 58.5293 97.7919 +94.2093 59.7464 99.8255 +93.6262 60.4474 100.997 +93.4574 61.4314 102.641 +93.384 62.4996 104.426 +93.3415 63.613 106.286 +93.3277 64.7721 108.222 +93.2227 65.8942 110.097 +93.2609 67.1457 112.188 +93.1488 68.3182 114.147 +93.1172 69.5795 116.255 +92.8819 70.718 118.157 +92.4494 71.7313 119.85 +92.9699 73.521 122.84 +93.0066 74.9744 125.269 +92.7889 76.2593 127.415 +91.594 76.76 128.252 +94.87 81.0852 135.479 +114.957 100.225 167.458 +115 102.293 170.913 +114.538 103.967 173.709 +114.851 106.407 177.787 +114.757 108.543 181.355 +114.504 110.595 184.783 +114.698 113.153 189.058 +114.36 115.265 192.587 +114.584 118.025 197.198 +114.283 120.334 201.056 +114.172 122.928 205.39 +114.065 125.622 209.891 +112.382 126.643 211.597 +109.656 126.484 211.333 +107.104 126.5 211.358 +104.13 125.983 210.494 +101.794 126.207 210.869 +99.3082 126.23 210.907 +96.9396 126.383 211.163 +94.1074 125.902 210.359 +91.7894 126.079 210.655 +89.4383 126.196 210.85 +89.8608 130.319 217.74 +89.8894 134.068 224.003 +89.5116 137.387 229.549 +89.0278 140.713 235.107 +88.6781 144.438 241.329 +88.7348 149.053 249.041 +88.414 153.286 256.114 +88.2866 158.119 264.189 +88.055 163.062 272.447 +86.1091 165.038 275.749 +84.5283 167.854 280.453 +85.2291 175.551 293.314 +86.795 185.664 310.211 +84.2442 187.397 313.107 +80.7103 186.965 312.385 +77.4055 187.018 312.473 +74.1051 187.056 312.537 +70.9046 187.331 312.996 +67.4636 186.934 312.334 +64.3019 187.28 312.911 +60.9686 187.105 312.619 +57.6461 186.915 312.301 +54.32 186.658 311.872 +51.1739 186.997 312.437 +47.877 186.76 312.043 +44.7139 187.019 312.474 +41.3305 186.294 311.263 +38.1633 186.472 311.56 +35.0029 186.687 311.92 +31.8118 186.734 311.999 +28.512 186.051 310.857 +25.4681 187.042 312.514 +22.2339 186.688 311.922 +19.066 186.832 312.162 +15.8426 186.345 311.349 +12.7034 186.82 312.142 +9.48914 186.1 310.939 +6.34569 186.7 311.942 +3.16599 186.31 311.291 +2.22266e-14 186.42 311.475 +-3.16075 186.002 310.776 +-6.33522 186.392 311.427 +-9.47867 185.894 310.596 +-12.6755 186.41 311.457 +-15.8338 186.243 311.179 +-19.0032 186.216 311.133 +-22.1057 185.612 310.123 +-25.3286 186.018 310.802 +-28.4963 185.948 310.685 +-31.6463 185.762 310.375 +-34.8016 185.613 310.126 +-38.0484 185.91 310.622 +-41.2173 185.784 310.411 +-44.3604 185.541 310.005 +-47.5376 185.436 309.831 +-50.6868 185.217 309.463 +-53.8174 184.932 308.987 +-57.1455 185.292 309.589 +-60.2754 184.978 309.065 +-63.5726 185.156 309.362 +-66.8804 185.319 309.634 +-70.0078 184.961 309.037 +-73.1282 184.59 308.417 +-76.4699 184.758 308.697 +-79.6065 184.408 308.113 +-83.0969 184.845 308.842 +-86.4448 184.915 308.96 +-89.753 184.869 308.883 +-93.0913 184.858 308.864 +-96.4877 184.93 308.984 +-99.8403 184.886 308.911 +-103.226 184.876 308.894 +-106.534 184.701 308.603 +-110.166 185.052 309.189 +-113.336 184.6 308.434 +-116.932 184.818 308.797 +-120.354 184.725 308.642 +-124.041 185.004 309.109 +-127.247 184.538 308.33 +-130.925 184.733 308.655 +-134.34 184.524 308.306 +-139.584 186.744 312.015 +-143.412 186.971 312.394 +-146.808 186.607 311.786 +-146.836 182.052 304.175 +-146.173 176.848 295.481 +-148.016 174.821 292.094 +-146.425 168.896 282.194 +-147.299 165.99 277.339 +-151.678 167.046 279.104 +-166.651 179.431 299.797 +-114.941 121.026 202.213 +-112.531 115.91 193.665 +-113.452 114.35 191.058 +-114.698 113.153 189.058 +-116.335 112.363 187.738 +-118.288 111.883 186.935 +-119.99 111.168 185.742 +-122.416 111.118 185.658 +-125.1 111.277 185.924 +-129.219 112.659 188.233 +-508.343 434.48 725.937 +-512.258 429.295 717.274 +-515.823 423.934 708.317 +-519.3 418.618 699.435 +-523.071 413.647 691.13 +-526.217 408.29 682.178 +-530.506 403.915 674.869 +-533.951 398.983 666.628 +-537.9 394.513 659.16 +-541.389 389.788 651.265 +-545.288 385.436 643.993 +-550.33 381.945 638.161 +-167.305 114.02 190.507 +-170.271 113.958 190.404 +-575.52 378.301 632.072 +-579.748 374.301 625.389 +-588.729 373.365 623.824 +-589.708 367.383 613.831 +-596.828 365.277 610.312 +-596.258 358.527 599.034 +-584.286 345.183 576.738 +-588.473 341.59 570.735 +-592.85 338.138 564.967 +-596.141 334.105 558.229 +-599.34 330.069 551.485 +-604.306 327.035 546.416 +-607.34 322.984 539.648 +-611.754 319.701 534.162 +-615.678 316.184 528.287 +-620.599 313.197 523.295 +-624.099 309.512 517.139 +-628.464 306.279 511.737 +-632.767 303.031 506.309 +-637.155 299.836 500.972 +-141.643 65.4967 109.433 +-143.125 65.0299 108.653 +-142.867 63.7794 106.564 +-143.108 62.7697 104.877 +-141.795 61.1027 102.092 +-141.67 59.975 100.207 +-143.15 59.5318 99.4668 +-148.852 60.8059 101.596 +-675.877 271.184 453.099 +-680.221 268.051 447.864 +-136.726 52.9121 88.4065 +-138.344 52.5721 87.8384 +-694.541 259.147 432.987 +-386.623 141.626 236.631 +-387.459 139.328 232.793 +-387.669 136.83 228.618 +-714.216 247.402 413.365 +-719.393 244.532 408.569 +-724.024 241.467 403.447 +-729.449 238.654 398.748 +-735.258 235.948 394.226 +-740.006 232.885 389.109 +-744.793 229.824 383.995 +-751.513 227.338 379.84 +-756.387 224.269 374.713 +-762.083 221.427 369.965 +-767.304 218.427 364.951 +-772.92 215.519 360.093 +-771.608 210.697 352.036 +-760.878 203.413 339.866 +-766.355 200.531 335.051 +-775.461 198.556 331.751 +-2944.9 737.629 1232.44 +-792.199 194.052 324.225 +-411.011 98.4264 164.453 +-804.861 188.37 314.732 +-411.826 94.1639 157.331 +-3004.75 670.959 1121.05 +-409.256 89.2142 149.061 +-407.154 86.6105 144.71 +-410.279 85.1284 142.234 +-407.151 82.3644 137.616 +-408.441 80.5182 134.531 +-387.876 74.4762 124.436 +-384.146 71.8042 119.972 +-380.544 69.2056 115.63 +-382.462 67.631 112.999 +-382.269 65.6867 109.751 +-382.8 63.8754 106.724 +-382.44 61.926 103.467 +-381.757 59.9395 100.148 +-382.281 58.1534 97.1638 +-381.621 56.1973 93.8954 +-382.85 54.5262 91.1033 +-381.637 52.5156 87.744 +-381.16 50.6235 84.5826 +-381.617 48.8637 81.6423 +-381.558 47.0437 78.6014 +-380.686 45.1355 75.4132 +-381.732 43.4611 72.6155 +-380.597 41.5458 69.4154 +-379.525 39.6542 66.255 +-379.792 37.9127 63.3452 +-380.421 36.2092 60.4989 +-380.53 34.4583 57.5736 +-379.424 32.6075 54.4813 +-381.248 31.0103 51.8126 +-379.584 29.1336 48.677 +-381.451 27.5314 46 +-380.517 25.727 42.9852 +-380.542 23.9957 40.0924 +-378.65 22.1556 37.018 +-378.714 20.4417 34.1544 +-380.739 18.8274 31.4572 +-379.351 17.0443 28.478 +-379.128 15.3234 25.6027 +-380.072 13.6488 22.8047 +-378.692 11.8949 19.8741 +-380.378 10.2376 17.1052 +-379.738 8.51458 14.2263 +-380.068 6.81605 11.3884 +-380.67 5.11921 8.55327 +-146.978 1.31752 2.20134 +-146.694 0.657442 1.09847 +96.2 0 0 +95.9963 0.436696 0.714924 +96.0854 0.874272 1.43129 +96.0671 1.31132 2.14679 +96.1414 1.75009 2.86511 +96.1084 2.18737 3.58098 +96.0682 2.62447 4.29657 +96.1204 3.06456 5.01705 +96.7637 3.52714 5.77435 +96.0031 3.93855 6.44787 +96.8301 4.416 7.22952 +96.7525 4.85631 7.95035 +96.8664 5.30715 8.68844 +96.5752 5.7358 9.39018 +96.4755 6.17486 10.109 +96.3684 6.61347 10.827 +96.2541 7.0516 11.5443 +96.0334 7.48149 12.2481 +95.9045 7.91806 12.9628 +96.4587 8.41426 13.7751 +96.3142 8.85271 14.4929 +95.9657 9.2715 15.1785 +96.0031 9.72756 15.9252 +95.6407 10.1431 16.6055 +95.6628 10.5995 17.3526 +95.4817 11.0342 18.0644 +95.2934 11.4681 18.7747 +95.7784 11.9864 19.6232 +95.8652 12.4595 20.3976 +95.653 12.895 21.1107 +96.2062 13.4376 21.999 +95.9776 13.8747 22.7146 +95.7417 14.3108 23.4285 +96.1696 14.8494 24.3102 +95.9174 15.2863 25.0255 +95.6578 15.7221 25.7389 +96.2469 16.3016 26.6876 +95.9704 16.7388 27.4033 +96.5374 17.3274 28.3671 +96.1494 17.7485 29.0564 +96.6004 18.3279 30.0049 +96.2899 18.7666 30.7231 +96.9056 19.3907 31.7449 +96.5773 19.8308 32.4653 +96.3344 20.2888 33.2153 +95.9911 20.7263 33.9314 +96.4689 21.3455 34.9451 +97.025 21.9914 36.0025 +96.7445 22.4531 36.7584 +96.3649 22.8923 37.4774 +96.1593 23.3739 38.2658 +96.3961 23.9675 39.2376 +96.7102 24.5879 40.2532 +96.2949 25.0269 40.972 +96.5851 25.6533 41.9975 +96.2407 26.1157 42.7545 +96.5062 26.7483 43.7901 +95.9668 27.1614 44.4664 +96.2956 27.8243 45.5518 +95.9132 28.287 46.3092 +96.1288 28.9308 47.3631 +96.4163 29.605 48.4669 +95.8313 30.0157 49.1392 +96.0073 30.6683 50.2077 +95.4054 31.0763 50.8755 +95.6406 31.7612 51.9968 +95.7762 32.4221 53.0789 +95.8135 33.058 54.1199 +95.9196 33.7257 55.2131 +95.3514 34.1608 55.9253 +95.4312 34.8325 57.0249 +95.6586 35.5679 58.2289 +95.6258 36.2162 59.2902 +95.8197 36.9599 60.5077 +95.0376 37.3316 61.1163 +95.7577 38.302 62.7049 +95.1917 38.7682 63.4682 +95.3217 39.5243 64.7059 +95.2004 40.186 65.7892 +95.9129 41.2143 67.4728 +95.1427 41.6156 68.1296 +95.1268 42.3515 69.3344 +95.0934 43.0903 70.544 +95.6416 44.1085 72.2109 +95.5684 44.8558 73.4343 +94.8139 45.2888 74.1432 +95.3685 46.3583 75.8941 +95.2417 47.1133 77.1301 +94.9529 47.7982 78.2514 +94.9336 48.6302 79.6135 +94.823 49.4288 80.9209 +94.4826 50.1186 82.0501 +94.4041 50.9589 83.4258 +94.6488 51.9914 85.1162 +94.3886 52.7629 86.3792 +94.7853 53.9207 88.2745 +94.3474 54.6207 89.4206 +94.092 55.4386 90.7596 +94.3413 56.5724 92.6157 +94.2999 57.5545 94.2235 +93.847 58.3004 95.4447 +94.0124 59.4493 97.3256 +94.2722 60.6847 99.3481 +94.1865 61.7236 101.049 +93.3958 62.3137 102.015 +93.4449 63.4808 103.926 +93.3415 64.5693 105.708 +93.3277 65.7458 107.634 +93.2815 66.927 109.567 +93.319 68.1973 111.647 +93.0915 69.3024 113.456 +93.0605 70.5827 115.552 +92.8819 71.7811 117.514 +92.5046 72.8528 119.269 +93.0243 74.67 122.244 +92.9528 76.0576 124.515 +92.4709 77.1403 126.288 +91.9597 78.2251 128.064 +94.355 81.8573 134.01 +114.856 101.642 166.4 +114.9 103.74 169.835 +115.227 106.164 173.804 +114.609 107.779 176.447 +114.948 110.358 180.668 +114.833 112.579 184.306 +114.929 115.085 188.409 +114.542 117.183 191.843 +114.584 119.799 196.125 +114.503 122.377 200.346 +114.172 124.775 204.272 +114.403 127.889 209.369 +112.382 128.546 210.446 +109.697 128.433 210.261 +107.104 128.401 210.208 +104.56 128.404 210.213 +101.794 128.104 209.722 +99.4206 128.273 209.998 +96.9396 128.283 210.015 +94.5016 128.33 210.092 +91.9294 128.169 209.828 +89.7461 128.533 210.424 +90.0945 132.622 217.118 +89.8894 136.083 222.784 +89.5434 139.502 228.381 +89.0587 142.878 233.909 +88.6781 146.609 240.016 +88.4717 150.845 246.952 +88.414 155.591 254.72 +88.2591 160.446 262.67 +88.055 165.513 270.965 +86.2644 167.821 274.743 +84.5283 170.377 278.928 +85.4468 178.645 292.463 +86.8183 188.505 308.606 +84.0417 189.757 310.655 +80.8618 190.132 311.268 +77.2808 189.524 310.273 +74.1051 189.868 310.837 +70.752 189.737 310.622 +67.4636 189.745 310.634 +64.1456 189.634 310.453 +60.9851 189.97 311.003 +57.6617 189.776 310.686 +54.32 189.464 310.175 +51.0487 189.343 309.976 +47.8901 189.619 310.43 +44.6042 189.365 310.012 +41.4324 189.56 310.332 +38.1633 189.275 309.866 +34.9933 189.441 310.138 +31.7334 189.074 309.536 +28.5277 188.951 309.336 +25.3286 188.814 309.111 +22.24 189.546 310.31 +19.0084 189.067 309.526 +15.8382 189.095 309.57 +12.6685 189.108 309.592 +9.5127 189.366 310.015 +6.33173 189.09 309.563 +3.15813 188.642 308.829 +2.21715e-14 188.754 309.012 +-3.16773 189.215 309.768 +-6.31952 188.725 308.965 +-9.50223 189.158 309.674 +-12.6441 188.743 308.994 +-15.8382 189.095 309.57 +-18.9561 188.547 308.674 +-22.1118 188.453 308.521 +-25.2658 188.346 308.345 +-28.4963 188.743 308.995 +-31.655 188.607 308.771 +-34.8112 188.455 308.524 +-37.9543 188.238 308.168 +-41.2173 188.576 308.722 +-44.3604 188.33 308.318 +-47.5376 188.224 308.145 +-50.6729 187.949 307.695 +-53.9652 188.227 308.15 +-57.1142 187.974 307.736 +-60.2919 187.81 307.467 +-63.4163 187.478 306.923 +-66.8622 188.053 307.865 +-70.0078 187.742 307.356 +-73.3275 187.876 307.575 +-76.4699 187.535 307.018 +-79.7796 187.588 307.103 +-83.1194 187.675 307.246 +-86.4448 187.695 307.279 +-89.7772 187.699 307.286 +-93.0913 187.637 307.183 +-96.4877 187.709 307.303 +-99.8403 187.665 307.23 +-103.226 187.655 307.214 +-106.534 187.478 306.924 +-109.932 187.435 306.854 +-113.547 187.724 307.326 +-116.932 187.596 307.118 +-120.385 187.552 307.044 +-123.748 187.342 306.701 +-127.247 187.312 306.652 +-130.96 187.559 307.056 +-134.305 187.249 306.549 +-139.799 189.843 310.796 +-143.412 189.782 310.695 +-146.846 189.46 310.169 +-146.568 184.451 301.968 +-146.641 180.082 294.816 +-148.295 177.783 291.053 +-146.344 171.34 280.504 +-147.465 168.675 276.141 +-152.058 169.982 278.282 +-167.211 182.74 299.167 +-114.59 122.471 200.499 +-112.531 117.653 192.612 +-113.634 116.254 190.322 +-114.929 115.085 188.409 +-116.476 114.19 186.943 +-117.81 113.106 185.168 +-120.33 113.159 185.255 +-122.416 112.788 184.648 +-125.1 112.95 184.912 +-129.118 114.262 187.061 +-508.188 440.877 721.768 +-512.414 435.882 713.59 +-515.823 430.307 704.464 +-519.139 424.779 695.414 +-523.071 419.865 687.37 +-526.713 414.818 679.107 +-530.227 409.77 670.843 +-533.951 404.98 663.001 +-537.728 400.316 655.364 +-541.564 395.775 647.93 +-545.288 391.23 640.49 +-550.211 387.603 634.553 +-168.027 116.233 190.288 +-1994.61 1355.01 2218.32 +-575.89 384.234 629.037 +-579.81 379.968 622.053 +-588.226 378.653 619.9 +-589.199 372.584 609.965 +-596.314 370.449 606.468 +-595.544 363.481 595.061 +-584.286 350.372 573.6 +-588.274 346.608 567.438 +-592.247 342.872 561.323 +-596.141 339.128 555.193 +-599.954 335.374 549.047 +-603.756 331.649 542.948 +-608.034 328.214 537.326 +-611.543 324.395 531.073 +-615.678 320.937 525.413 +-619.957 317.576 519.91 +-624.531 314.382 514.681 +-628.464 310.883 508.953 +-632.767 307.586 503.555 +-637.155 304.344 498.247 +-141.049 66.2024 108.381 +-143.125 66.0075 108.062 +-142.867 64.7382 105.984 +-143.337 63.815 104.473 +-142.484 62.3226 102.029 +-141.747 60.9099 99.7168 +-143.772 60.6889 99.3549 +-149.087 61.8175 101.203 +-675.877 275.261 450.635 +-680.697 272.271 445.74 +-135.209 53.1111 86.9492 +-139.389 53.7653 88.0202 +-694.137 262.889 430.381 +-699.325 260.024 425.691 +-388.442 141.782 232.113 +-390.965 140.068 229.308 +-714.216 251.122 411.116 +-720.144 248.467 406.77 +-724.779 245.352 401.671 +-729.702 242.326 396.717 +-734.494 239.246 391.674 +-740.006 236.386 386.992 +-745.564 233.521 382.301 +-750.737 230.517 377.384 +-756.127 227.563 372.547 +-762.083 224.756 367.952 +-767.829 221.862 363.214 +-773.447 218.908 358.378 +-772.314 214.06 350.442 +-760.7 206.423 337.939 +-766.978 203.712 333.5 +-775.103 201.448 329.794 +-786.355 199.925 327.301 +-2957.32 735.295 1203.76 +-798.548 194.107 317.776 +-411.575 97.7734 160.067 +-413.379 95.9396 157.065 +-414.144 93.8686 153.674 +-411.558 91.0646 149.084 +-407.985 88.0918 144.217 +-408.981 86.1349 141.013 +-407.988 83.7746 137.149 +-406.388 81.3178 133.127 +-385.909 75.2121 123.131 +-384.334 72.919 119.377 +-381.487 70.4201 115.286 +-382.368 68.631 112.357 +-382.649 66.7399 109.261 +-382.61 64.8038 106.092 +-382.059 62.7943 102.802 +-382.331 60.9318 99.7526 +-381.418 58.8941 96.4167 +-381.909 57.0853 93.4555 +-381.598 55.1644 90.3107 +-379.995 53.0757 86.8912 +-380.772 51.3323 84.037 +-382.588 49.7243 81.4046 +-383.211 47.9577 78.5125 +-381.856 45.9547 75.2333 +-381.439 44.0806 72.1651 +-381.086 42.2245 69.1265 +-381.093 40.4166 66.1668 +-380.184 38.5224 63.0657 +-380.618 36.7725 60.201 +-380.136 34.9401 57.2011 +-380.312 33.1752 54.3117 +-379.865 31.3623 51.3439 +-379.189 29.5407 48.3616 +-379.669 27.8147 45.536 +-380.517 26.1138 42.7514 +-379.649 24.2992 39.7807 +-379.544 22.5418 36.9036 +-380.604 20.8526 34.1381 +-379.345 19.0405 31.1716 +-380.447 17.3505 28.4049 +-378.729 15.5374 25.4366 +-379.374 13.8286 22.639 +-378.293 12.0609 19.7452 +-381.077 10.4106 17.0434 +-379.039 8.62668 14.1229 +-380.168 6.92034 11.3294 +-378.07 5.16068 8.44865 +-147.678 1.3437 2.1998 +-146.294 0.665506 1.08951 +96.1 0 0 +96.0963 0.44359 0.711696 +96.9852 0.895453 1.43667 +96.167 1.33202 2.13709 +97.0408 1.79248 2.87586 +96.2083 2.22189 3.5648 +96.0682 2.66313 4.27272 +96.1204 3.1097 4.9892 +95.9657 3.54957 5.69494 +96.8007 4.02976 6.46535 +96.7305 4.47643 7.18198 +96.7525 4.92783 7.90622 +96.6675 5.37426 8.62247 +96.5752 5.82027 9.33805 +96.4755 6.26581 10.0529 +96.3684 6.71087 10.7669 +96.2541 7.15546 11.4802 +96.0334 7.59168 12.1801 +95.9045 8.03468 12.8908 +95.5711 8.45959 13.5726 +96.1172 8.96474 14.383 +96.1623 9.42731 15.1252 +96.0031 9.87083 15.8368 +95.6407 10.2925 16.5133 +95.6628 10.7556 17.2563 +95.5794 11.2082 17.9824 +96.1703 11.7442 18.8424 +95.9729 12.1876 19.5539 +95.7682 12.6302 20.2638 +96.5243 13.2042 21.1848 +95.4335 13.526 21.7011 +95.9776 14.0791 22.5885 +96.6068 14.6528 23.509 +96.3614 15.0982 24.2235 +95.9174 15.5115 24.8866 +96.5162 16.0968 25.8257 +96.2469 16.5417 26.5395 +95.9704 16.9853 27.2512 +96.5374 17.5826 28.2096 +96.1494 18.0099 28.8951 +95.8486 18.4531 29.6061 +96.2899 19.043 30.5526 +95.9721 19.4867 31.2645 +96.6704 20.1422 32.3162 +97.1689 20.766 33.317 +96.8226 21.2137 34.0353 +96.4689 21.6599 34.7511 +96.1996 22.1254 35.4981 +96.7445 22.7838 36.5543 +96.3649 23.2295 37.2694 +95.978 23.6734 37.9817 +96.5766 24.366 39.0929 +95.9912 24.7645 39.7322 +96.2949 25.3955 40.7445 +96.5851 26.0311 41.7643 +96.2407 26.5004 42.5172 +96.4179 27.1174 43.5072 +95.9668 27.5614 44.2196 +96.3831 28.2598 45.3401 +95.9132 28.7037 46.0522 +96.0422 29.3304 47.0577 +96.3301 30.0142 48.1549 +95.8313 30.4578 48.8665 +95.3252 30.8989 49.5742 +96.0838 31.7582 50.953 +95.6406 32.229 51.7082 +95.7762 32.8997 52.7843 +95.2298 33.3405 53.4915 +95.2564 33.9859 54.527 +95.5162 34.7239 55.711 +95.5131 35.3758 56.757 +94.9259 35.8154 57.4622 +95.6258 36.7496 58.9611 +95.7394 37.4728 60.1214 +95.1175 37.9133 60.8281 +95.1231 38.6085 61.9435 +95.1129 39.3066 63.0635 +95.3217 40.1064 64.3467 +95.2004 40.7778 65.424 +95.2185 41.5186 66.6124 +95.1427 42.2285 67.7514 +95.2028 43.0096 69.0046 +95.0934 43.725 70.1524 +95.1174 44.5128 71.4163 +95.5684 45.5165 73.0266 +95.4774 46.2775 74.2476 +95.3685 47.0411 75.4728 +95.2417 47.8072 76.702 +94.9529 48.5022 77.817 +94.9336 49.3465 79.1715 +94.823 50.1569 80.4717 +94.4826 50.8568 81.5946 +95.0293 52.0519 83.5121 +94.6488 52.7572 84.6437 +94.3886 53.54 85.8997 +94.7853 54.7148 87.7845 +94.3474 55.4252 88.9242 +94.0258 56.2155 90.1921 +94.2101 57.3257 91.9735 +93.9102 58.161 93.3135 +93.9113 59.1998 94.9802 +93.9488 60.2842 96.72 +94.2093 61.5378 98.7313 +93.5639 62.2186 99.8235 +93.4574 63.2733 101.516 +93.4449 64.4158 103.349 +93.4017 65.5626 105.189 +93.8036 67.0542 107.582 +93.2815 67.9127 108.959 +93.2609 69.1589 110.959 +93.1488 70.3665 112.896 +93.1172 71.6656 114.98 +92.9379 72.8822 116.932 +93.4981 74.7198 119.881 +92.9699 75.7254 121.494 +93.0066 77.2223 123.895 +92.3119 78.1421 125.371 +91.9075 79.3318 127.28 +94.87 83.5163 133.994 +115.262 103.503 166.061 +114.85 105.222 168.819 +114.833 107.36 172.248 +115.142 109.875 176.284 +114.948 111.983 179.665 +114.786 114.191 183.208 +114.975 116.828 187.438 +114.587 118.956 190.853 +114.584 121.563 195.036 +114.546 124.227 199.31 +114.172 126.613 203.138 +114.403 129.772 208.206 +112.714 130.824 209.894 +109.656 130.277 209.016 +107.144 130.341 209.12 +104.13 129.76 208.187 +102.062 130.333 209.107 +99.3831 130.113 208.753 +97.2328 130.567 209.481 +94.5016 130.22 208.925 +92.2446 130.503 209.378 +89.7119 130.377 209.176 +90.0945 134.576 215.913 +89.9219 138.137 221.627 +89.5434 141.557 227.114 +89.0587 144.983 232.61 +88.8886 149.122 239.251 +88.9102 153.826 246.798 +88.6696 158.339 254.039 +88.452 163.165 261.783 +88.2688 168.359 270.115 +86.3162 170.395 273.381 +84.6785 173.194 277.872 +85.3984 181.174 290.675 +86.865 191.385 307.058 +84.2442 193.016 309.675 +80.8835 192.984 309.624 +77.4263 192.677 309.131 +74.1051 192.665 309.111 +70.752 192.532 308.898 +67.4818 192.591 308.993 +64.1456 192.427 308.729 +60.8365 192.298 308.523 +57.6617 192.571 308.962 +54.32 192.255 308.453 +51.0348 192.079 308.172 +47.864 192.308 308.538 +44.6042 192.154 308.291 +41.4324 192.352 308.61 +38.2574 192.536 308.905 +34.9933 192.231 308.416 +31.8118 192.333 308.579 +28.5356 191.787 307.703 +25.3914 192.069 308.156 +22.2339 192.285 308.503 +19.0137 191.905 307.892 +15.8426 191.932 307.937 +12.672 191.946 307.958 +9.48914 191.68 307.531 +6.33173 191.875 307.844 +3.16599 191.897 307.879 +2.22266e-14 192.01 308.06 +-3.15988 191.526 307.285 +-6.31952 191.505 307.25 +-9.47867 191.468 307.191 +-12.6406 191.47 307.194 +-15.7989 191.404 307.089 +-19.0084 191.852 307.808 +-22.1606 191.652 307.486 +-25.3286 191.595 307.395 +-28.4963 191.523 307.28 +-31.655 191.384 307.057 +-34.8016 191.178 306.726 +-37.9543 191.011 306.457 +-41.2173 191.354 307.008 +-44.3604 191.104 306.607 +-47.5376 190.996 306.434 +-50.6729 190.717 305.987 +-53.9652 190.999 306.44 +-57.1299 190.795 306.112 +-60.2754 190.524 305.677 +-63.5726 190.707 305.971 +-66.6982 190.355 305.405 +-70.0078 190.507 305.649 +-73.3076 190.591 305.784 +-76.4699 190.298 305.313 +-79.8013 190.402 305.481 +-83.1194 190.439 305.54 +-86.4448 190.459 305.573 +-89.8014 190.515 305.662 +-93.0913 190.4 305.478 +-96.4877 190.474 305.597 +-100.054 190.837 306.179 +-103.199 190.368 305.426 +-106.79 190.696 305.952 +-110.195 190.651 305.88 +-113.547 190.488 305.62 +-116.932 190.359 305.413 +-120.385 190.314 305.34 +-124.107 190.651 305.881 +-127.247 190.071 304.95 +-130.96 190.321 305.352 +-134.34 190.056 304.926 +-139.584 192.343 308.595 +-143.412 192.577 308.97 +-146.808 192.202 308.369 +-146.568 187.168 300.292 +-146.759 182.881 293.414 +-148.215 180.305 289.281 +-146.71 174.298 279.644 +-147.589 171.304 274.84 +-152.185 172.629 276.967 +-167.899 186.195 298.732 +-114.59 124.275 199.386 +-112.531 119.386 191.542 +-113.634 117.966 189.265 +-114.56 116.405 186.76 +-116.617 116.012 186.13 +-118.288 115.237 184.886 +-119.796 114.317 183.41 +-122.416 114.449 183.623 +-125.1 114.613 183.886 +-129.422 116.219 186.461 +-508.343 447.506 717.98 +-511.735 441.715 708.688 +-515.823 436.645 700.553 +-519.3 431.169 691.768 +-522.908 425.917 683.341 +-526.824 421.016 675.479 +-529.723 415.411 666.486 +-534.064 411.033 659.461 +-537.269 405.865 651.17 +-541.564 401.604 644.334 +-545.288 396.992 636.934 +-549.914 393.099 630.689 +-566.91 397.939 638.453 +-169.236 116.662 187.172 +-575.705 389.769 625.345 +-579.437 385.316 618.202 +-588.981 384.723 617.251 +-589.199 378.072 606.579 +-596.828 376.229 603.622 +-595.739 368.955 591.951 +-584.286 355.532 570.416 +-588.274 351.713 564.288 +-591.846 347.687 557.829 +-596.141 344.123 552.111 +-599.954 340.313 545.999 +-604.1 336.725 540.242 +-608.243 333.163 534.527 +-611.543 329.173 528.125 +-615.678 325.664 522.496 +-620.171 322.365 517.203 +-624.531 319.012 511.823 +-628.247 315.353 505.952 +-632.767 312.116 500.76 +-636.713 308.612 495.137 +-142.387 67.8143 108.801 +-143.125 66.9797 107.462 +-142.867 65.6917 105.396 +-143.337 64.7549 103.893 +-142.484 63.2405 101.463 +-142.982 62.345 100.026 +-143.15 61.3167 98.3765 +-148.383 62.4317 100.165 +-675.877 279.315 448.133 +-680.697 276.281 443.265 +-135.049 53.8299 86.3647 +-137.62 53.8653 86.4216 +-694.541 266.917 428.241 +-386.786 145.934 234.136 +-383.855 142.171 228.099 +-387.339 140.813 225.92 +-713.967 254.731 408.691 +-719.393 251.864 404.091 +-724.779 248.966 399.441 +-729.702 245.895 394.514 +-734.494 242.77 389.5 +-740.006 239.868 384.844 +-745.564 236.96 380.179 +-750.996 233.993 375.418 +-756.213 230.941 370.521 +-762.083 228.066 365.91 +-768.091 225.207 361.322 +-773.447 222.132 356.389 +-772.403 217.238 348.536 +-760.878 209.512 336.141 +-766.711 206.64 331.533 +-776.177 204.698 328.417 +-786.355 202.87 325.484 +-410.676 103.613 166.236 +-2969.52 732.446 1175.14 +-805.407 194.149 311.493 +-2993.23 704.919 1130.97 +-413.136 95.0189 152.448 +-412.386 92.5921 148.555 +-410.203 89.8748 144.195 +-407.497 87.0867 139.722 +-407.523 84.9117 136.232 +-406.388 82.5155 132.388 +-388.813 76.8943 123.369 +-383.77 73.8846 118.54 +-382.618 71.6688 114.985 +-381.8 69.5382 111.567 +-381.226 67.4711 108.251 +-381.374 65.5457 105.161 +-383.108 63.8943 102.512 +-381.757 61.7367 99.0504 +-381.802 59.8219 95.9782 +-381.909 57.9261 92.9367 +-381.116 55.9066 89.6965 +-380.768 53.9669 86.5845 +-382.709 52.3532 83.9955 +-383.267 50.5462 81.0964 +-381.752 48.4788 77.7794 +-381.563 46.5958 74.7584 +-381.732 44.7641 71.8196 +-380.304 42.7584 68.6017 +-379.525 40.8432 65.5288 +-381.558 39.2311 62.9424 +-381.798 37.4298 60.0524 +-380.628 35.5006 56.9572 +-380.213 33.6551 53.9962 +-379.865 31.8243 51.0589 +-379.288 29.9836 48.1057 +-380.56 28.2906 45.3894 +-379.624 26.4362 42.4143 +-381.435 24.7732 39.7461 +-380.935 22.9576 36.8333 +-379.112 21.0768 33.8156 +-380.44 19.3767 31.088 +-380.845 17.6245 28.2767 +-381.72 15.8908 25.4952 +-379.374 14.0323 22.5134 +-378.692 12.2515 19.6563 +-379.479 10.5196 16.8777 +-378.739 8.74681 14.0334 +-378.569 6.9927 11.2191 +-379.27 5.25331 8.42841 +-148.377 1.36995 2.19796 +-146.694 0.677154 1.08643 +96.2 0 0 +96.6963 0.452802 0.712084 +96.1853 0.900887 1.41675 +96.8668 1.36108 2.14046 +96.1414 1.8015 2.83307 +96.9077 2.27034 3.57038 +96.0682 2.70157 4.24852 +96.8191 3.17751 4.99701 +96.7637 3.63075 5.70978 +96.701 4.08371 6.42211 +95.9335 4.50363 7.08248 +97.3497 5.02981 7.90996 +96.6675 5.45183 8.57363 +97.2707 5.94678 9.352 +96.4755 6.35625 9.99594 +96.9633 6.8498 10.7721 +97.1453 7.32597 11.5209 +96.7258 7.75679 12.1985 +95.9045 8.15065 12.8178 +97.0505 8.71455 13.7046 +96.1172 9.09413 14.3016 +96.7523 9.62208 15.1318 +96.0031 10.0133 15.7471 +96.4246 10.5267 16.5544 +95.6628 10.9109 17.1586 +96.0675 11.4281 17.972 +96.1703 11.9137 18.7356 +96.5563 12.4387 19.5613 +95.8652 12.8254 20.1695 +96.2339 13.3545 21.0014 +96.2062 13.8324 21.753 +96.4594 14.354 22.5734 +96.6068 14.8643 23.3759 +96.8408 15.3923 24.2061 +96.1086 15.7667 24.795 +96.3254 16.2968 25.6287 +96.2469 16.7804 26.3891 +96.6342 17.3496 27.2843 +96.5374 17.8364 28.0498 +96.8093 18.3953 28.9287 +95.8486 18.7194 29.4385 +97.1329 19.487 30.6455 +95.8787 19.7488 31.0572 +97.2286 20.551 32.3188 +96.3344 20.8848 32.8438 +97.4693 21.6637 34.0686 +96.4689 21.9725 34.5543 +96.8415 22.5945 35.5325 +95.9223 22.9162 36.0383 +97.0019 23.7205 37.3033 +96.1593 24.0605 37.8378 +97.0279 24.8332 39.0531 +96.6204 25.2866 39.7661 +96.9214 25.9296 40.7773 +95.7832 26.1876 41.183 +96.7729 27.0315 42.5102 +96.5062 27.534 43.3004 +96.6699 28.1641 44.2913 +96.2956 28.6417 45.0423 +96.4354 29.2765 46.0406 +96.0422 29.7537 46.7912 +96.9333 30.6381 48.1819 +95.8313 30.8974 48.5897 +96.6041 31.7655 49.9549 +95.4902 32.0176 50.3513 +96.1466 32.8671 51.6874 +95.7762 33.3745 52.4853 +96.3972 34.2363 53.8406 +95.8367 34.6864 54.5484 +96.67 35.6506 56.0646 +96.0865 36.1018 56.7743 +96.147 36.7997 57.8717 +96.1921 37.5008 58.9744 +96.3021 38.2371 60.1322 +95.5967 38.6543 60.7883 +95.6784 39.3944 61.9522 +95.7433 40.1383 63.1221 +95.8695 40.919 64.3499 +95.7444 41.6028 65.4252 +95.7586 42.3567 66.6108 +95.679 43.0795 67.7474 +95.7351 43.8743 68.9974 +95.6217 44.6026 70.1427 +96.1659 45.653 71.7947 +96.0886 46.4248 73.0083 +95.4037 46.9092 73.7701 +95.8073 47.9396 75.3906 +95.0966 48.4234 76.1514 +95.5283 49.5005 77.8452 +95.4329 50.322 79.1372 +95.318 51.1464 80.4336 +95.604 52.2032 82.0955 +94.8903 52.726 82.9177 +95.1994 53.8299 84.6537 +94.866 54.5875 85.8452 +95.2582 55.7814 87.7228 +94.8827 56.5445 88.9227 +94.6221 57.3885 90.2501 +94.8005 58.518 92.0264 +94.6895 59.4898 93.5546 +94.2969 60.3011 94.8305 +94.4576 61.4854 96.6928 +94.6498 62.7179 98.6311 +93.9997 63.4106 99.7205 +93.9499 64.5246 101.472 +93.9319 65.6858 103.298 +93.7026 66.7235 104.93 +93.7441 67.9791 106.905 +93.7517 69.2401 108.888 +93.7255 70.5065 110.88 +93.6077 71.7342 112.81 +94.0234 73.4078 115.442 +93.2175 74.1569 116.62 +93.2774 75.6196 118.921 +93.4056 77.1784 121.372 +93.3827 78.6535 123.692 +92.9478 79.8162 125.52 +92.1165 80.6598 126.847 +94.7155 84.5838 133.018 +114.907 104.674 164.611 +115.3 107.159 168.52 +114.882 108.956 171.346 +114.706 111.039 174.621 +114.566 113.222 178.055 +114.833 115.886 182.244 +114.929 118.466 186.302 +114.633 120.721 189.847 +114.628 123.366 194.008 +114.546 126.02 198.181 +114.602 128.925 202.749 +114.318 131.548 206.874 +112.797 132.81 208.859 +109.982 132.549 208.449 +107.024 132.075 207.703 +104.833 132.521 208.405 +102.023 132.165 207.844 +99.6828 132.389 208.197 +97.2328 132.451 208.295 +94.7166 132.4 208.215 +92.4547 132.688 208.667 +89.4041 131.805 207.279 +90.3949 136.973 215.406 +89.8243 139.979 220.133 +89.7338 143.905 226.307 +89.3677 147.586 232.096 +88.9187 151.325 237.976 +88.7056 155.687 244.836 +88.6412 160.573 252.519 +88.4245 165.469 260.219 +88.2956 170.841 268.667 +86.2126 172.647 271.507 +83.8022 173.875 273.439 +85.7371 184.518 290.176 +86.6549 193.678 304.581 +84.0417 195.331 307.181 +80.5372 194.931 306.552 +77.4679 195.563 307.546 +73.7462 194.499 305.872 +70.7711 195.364 307.232 +67.2996 194.843 306.414 +64.1456 195.204 306.981 +60.6715 194.544 305.944 +57.521 194.874 306.462 +54.1869 194.552 305.955 +51.0487 194.904 306.51 +47.7595 194.658 306.122 +44.592 194.874 306.462 +41.3305 194.649 306.107 +38.0588 194.301 305.561 +34.8112 193.991 305.074 +31.716 194.521 305.906 +28.5356 194.555 305.96 +25.3286 194.36 305.654 +22.1728 194.525 305.913 +19.0084 194.621 306.064 +15.7989 194.167 305.35 +12.6371 194.18 305.37 +9.46558 193.963 305.03 +6.33173 194.644 306.101 +3.15028 193.7 304.616 +2.21715e-14 194.298 305.556 +-3.1529 193.861 304.869 +-6.31952 194.269 305.51 +-9.45773 193.802 304.777 +-12.6441 194.287 305.539 +-15.7597 193.684 304.591 +-18.9613 194.139 305.306 +-22.0629 193.561 304.397 +-25.2588 193.825 304.812 +-28.3551 193.325 304.026 +-31.6463 194.093 305.234 +-34.7249 193.51 304.318 +-37.9647 193.821 304.805 +-41.0135 193.156 303.76 +-44.3604 193.862 304.87 +-47.4202 193.274 303.946 +-50.6729 193.47 304.254 +-53.8174 193.226 303.869 +-57.1299 193.549 304.378 +-60.1103 192.745 303.113 +-63.4163 192.985 303.491 +-66.5524 192.68 303.012 +-69.8361 192.783 303.173 +-72.9687 192.448 302.647 +-76.4491 192.992 303.502 +-79.4117 192.207 302.268 +-82.917 192.717 303.069 +-86.2347 192.738 303.103 +-89.5353 192.692 303.03 +-92.7157 192.369 302.523 +-96.2289 192.705 303.051 +-99.3592 192.247 302.331 +-102.978 192.703 303.048 +-106.335 192.625 302.925 +-109.961 192.992 303.502 +-113.035 192.367 302.52 +-116.654 192.648 302.961 +-120.068 192.552 302.81 +-123.748 192.845 303.271 +-127.014 192.46 302.666 +-130.617 192.564 302.83 +-134.059 192.398 302.567 +-139.441 194.918 306.532 +-143.119 194.957 306.593 +-146.846 195.026 306.701 +-146.529 189.819 298.513 +-146.29 184.928 290.82 +-146.819 181.185 284.934 +-146.751 176.863 278.137 +-147.755 173.972 273.591 +-152.185 175.121 275.398 +-166.134 186.898 293.918 +-114.59 126.068 198.257 +-112.933 121.541 191.138 +-113.634 119.669 188.193 +-115.068 118.609 186.526 +-116.429 117.497 184.778 +-118.192 116.806 183.691 +-120.233 116.389 183.035 +-122.318 116.008 182.436 +-125.05 116.221 182.771 +-129.169 117.665 185.043 +-508.343 453.965 713.913 +-512.467 448.731 705.681 +-515.664 442.811 696.371 +-519.945 437.935 688.704 +-522.745 431.929 679.258 +-526.879 427.138 671.723 +-530.506 422.03 663.691 +-533.951 416.877 655.587 +-537.9 412.207 648.243 +-541.796 407.575 640.959 +-545.288 402.722 633.327 +-551.341 399.808 628.745 +-567.211 403.897 635.174 +-575.584 402.502 632.982 +-575.705 395.394 621.803 +-579.872 391.171 615.162 +-587.345 389.192 612.049 +-592.889 385.93 606.92 +-596.828 381.659 600.203 +-598.466 375.994 591.294 +-584.68 360.907 567.568 +-588.937 357.191 561.724 +-592.649 353.183 555.421 +-596.141 349.09 548.984 +-599.954 345.225 542.906 +-604.306 341.702 537.366 +-608.034 337.856 531.317 +-611.964 334.154 525.495 +-615.89 330.479 519.716 +-620.599 327.243 514.628 +-624.531 323.617 508.925 +-628.9 320.237 503.609 +-632.767 316.621 497.923 +-637.376 313.393 492.846 +-141.941 68.578 107.847 +-143.65 68.1954 107.245 +-143.546 66.9564 105.297 +-143.489 65.7593 103.414 +-143.097 64.4296 101.323 +-142.828 63.1767 99.3526 +-143.772 62.4716 98.2438 +-148.852 63.533 99.9129 +-676.113 283.446 445.751 +-680.697 280.268 440.755 +-136.087 55.0265 86.5355 +-136.816 54.3235 85.43 +-695.107 270.99 426.163 +-699.651 267.787 421.126 +-385.575 144.869 227.823 +-384.537 141.812 223.016 +-714.216 258.498 406.518 +-719.643 255.588 401.942 +-724.779 252.559 397.178 +-729.702 249.444 392.28 +-734.494 246.274 387.294 +-740.603 243.526 382.972 +-745.564 240.38 378.026 +-751.513 237.534 373.549 +-755.867 234.167 368.254 +-762.083 231.358 363.837 +-766.867 228.093 358.702 +-773.447 225.338 354.37 +-775.316 221.204 347.869 +-764.071 213.427 335.639 +-767.246 209.768 329.885 +-2932.25 784.474 1233.68 +-785.995 205.704 323.493 +-412.481 105.57 166.021 +-410.648 102.75 161.586 +-805.68 197.018 309.834 +-813.512 194.351 305.64 +-411.118 95.9197 150.845 +-409.533 93.2781 146.691 +-409.371 90.9874 143.088 +-409.444 88.7654 139.594 +-408.36 86.3138 135.738 +-402 82.8023 130.216 +-387.595 77.76 122.287 +-383.77 74.951 117.869 +-382.807 72.7392 114.391 +-382.462 70.6642 111.128 +-382.08 68.5983 107.879 +-382.325 66.6575 104.827 +-382.44 64.7033 101.753 +-380.801 62.4705 98.2421 +-381.418 60.6241 95.3385 +-381.044 58.6291 92.201 +-381.983 56.8423 89.391 +-381.154 54.8016 86.1819 +-382.031 53.0147 83.3718 +-382.976 51.2369 80.5759 +-381.072 49.0908 77.201 +-380.881 47.1839 74.2022 +-381.244 45.3522 71.3215 +-382.064 43.5764 68.5289 +-381.779 41.6787 65.5446 +-378.908 39.5209 62.1511 +-380.52 37.8428 59.5123 +-381.022 36.0503 56.6933 +-381.101 34.2205 53.8157 +-380.754 32.3591 50.8885 +-380.376 30.5036 47.9705 +-380.56 28.6989 45.1324 +-379.228 26.7898 42.1301 +-379.649 25.013 39.3358 +-379.843 23.2222 36.5196 +-380.405 21.4539 33.7387 +-379.843 19.6255 30.8634 +-379.849 17.8321 28.0431 +-380.025 16.0486 25.2382 +-378.476 14.2011 22.3329 +-378.792 12.4316 19.5501 +-378.481 10.6434 16.7379 +-379.538 8.89178 13.9834 +-378.269 7.08805 11.1468 +-379.07 5.32632 8.37626 +-147.578 1.38224 2.17373 +-146.194 0.684588 1.07659 +96.7 0 0 +96.6963 0.459207 0.707971 +96.6853 0.918379 1.41589 +96.8668 1.38033 2.12809 +96.841 1.84027 2.8372 +96.8078 2.30008 3.54609 +96.8671 2.76256 4.25911 +96.8191 3.22245 4.96814 +96.664 3.67831 5.67094 +97.4985 4.17563 6.43767 +97.4278 4.63847 7.15124 +97.3497 5.10095 7.86427 +97.3637 5.56872 8.58544 +97.1713 6.02474 9.2885 +97.071 6.48593 9.99953 +97.0625 6.95376 10.7208 +96.9472 7.4144 11.431 +96.8247 7.8745 12.1403 +96.5959 8.32552 12.8357 +97.0505 8.83781 13.6255 +96.9051 9.29834 14.3355 +96.654 9.74827 15.0292 +96.5921 10.2172 15.7522 +96.4246 10.6755 16.4588 +96.1519 11.1217 17.1466 +96.0675 11.5897 17.8681 +95.9755 12.0577 18.5897 +96.5563 12.6146 19.4483 +96.4474 13.0858 20.1747 +96.1371 13.5297 20.8591 +96.7858 14.1125 21.7576 +96.5558 14.5716 22.4654 +96.3184 15.0296 23.1715 +96.8408 15.61 24.0663 +96.6824 16.0852 24.799 +96.3254 16.5273 25.4806 +96.9127 17.1355 26.4182 +96.6342 17.595 27.1267 +97.1993 18.2127 28.079 +96.9035 18.6736 28.7895 +96.5064 19.1145 29.4693 +97.1329 19.7626 30.4685 +97.5592 20.3791 31.419 +97.2286 20.8416 32.1321 +97.8179 21.5064 33.157 +97.4693 21.9701 33.8719 +97.9417 22.6235 34.8792 +96.9332 22.9358 35.3608 +96.5618 23.3953 36.0691 +97.0019 24.056 37.0878 +96.6124 24.5157 37.7966 +97.0279 25.1844 38.8275 +96.6204 25.6443 39.5364 +96.9214 26.2963 40.5418 +97.2088 26.9533 41.5546 +96.8616 27.439 42.3033 +97.1242 28.1023 43.326 +96.6699 28.5625 44.0355 +96.9953 29.2579 45.1076 +96.4354 29.6905 45.7747 +96.735 30.3923 46.8565 +96.9333 31.0714 47.9036 +97.1171 31.7548 48.9571 +96.6041 32.2148 49.6663 +96.6775 32.8741 50.6829 +96.1466 33.332 51.3888 +96.4471 34.0837 52.5477 +96.564 34.7807 53.6222 +96.5 35.4205 54.6087 +96.0931 35.939 55.4082 +96.0865 36.6125 56.4464 +96.2285 37.3518 57.5862 +96.1921 38.0312 58.6337 +95.659 38.5189 59.3856 +95.6765 39.2337 60.4876 +95.6784 39.9516 61.5944 +96.4525 41.0075 63.2223 +95.7912 41.464 63.9261 +95.7444 42.1912 65.0473 +95.6814 42.9212 66.1727 +95.679 43.6888 67.3561 +95.6591 44.4595 68.5444 +95.6217 45.2334 69.7375 +96.1659 46.2987 71.38 +95.4198 46.7537 72.0814 +95.33 47.5359 73.2873 +95.8073 48.6177 74.9552 +95.6769 49.408 76.1735 +95.6003 50.2384 77.4539 +95.4329 51.0338 78.6801 +95.318 51.8698 79.969 +95.7442 53.0191 81.7409 +95.4461 53.7849 82.9216 +95.2683 54.631 84.226 +94.866 55.3596 85.3493 +95.1907 56.5301 87.154 +94.9496 57.3845 88.4712 +95.1522 58.5262 90.2313 +94.6693 59.2635 91.3681 +94.6895 60.3312 93.0142 +94.4255 61.2373 94.4111 +94.5848 62.4393 96.2644 +94.7757 63.6893 98.1915 +94.062 64.3499 99.21 +93.9499 65.4372 100.886 +93.9928 66.6583 102.769 +93.8831 67.7973 104.525 +93.5656 68.8095 106.085 +94.0456 70.4398 108.599 +93.6093 71.415 110.102 +93.665 72.7934 112.227 +93.457 73.9976 114.084 +93.2734 75.2503 116.015 +93.3325 76.7343 118.303 +93.4601 78.3157 120.741 +92.8454 79.3072 122.27 +93.0008 80.9909 124.866 +92.848 82.4503 127.116 +94.355 85.4537 131.746 +114.907 106.154 163.661 +114.85 108.251 166.893 +114.932 110.545 170.429 +114.657 112.562 173.539 +114.948 115.206 177.616 +114.833 117.525 181.192 +114.929 120.142 185.225 +114.542 122.331 188.601 +114.584 125.062 192.811 +114.546 127.803 197.036 +114.559 130.699 201.502 +114.445 133.556 205.907 +112.88 134.788 207.806 +110.307 134.822 207.858 +107.742 134.841 207.889 +104.716 134.246 206.97 +102.368 134.487 207.342 +100.095 134.816 207.85 +97.4527 134.628 207.56 +95.075 134.781 207.795 +92.4547 134.564 207.462 +89.7119 134.129 206.79 +90.3615 138.859 214.083 +89.8894 142.062 219.02 +89.8289 146.095 225.238 +89.3986 149.725 230.835 +88.9187 153.465 236.602 +88.9687 158.358 244.144 +88.7264 163 251.301 +88.452 167.862 258.796 +88.0818 172.837 266.468 +86.0832 174.826 269.534 +82.2248 173.015 266.742 +86.9951 189.873 292.732 +86.6082 196.311 302.658 +83.6368 197.139 303.935 +80.0394 196.466 302.897 +76.9273 196.946 303.636 +73.2278 195.863 301.967 +70.275 196.738 303.316 +66.8075 196.154 302.416 +63.8157 196.947 303.638 +60.2589 195.954 302.108 +57.255 196.717 303.283 +53.8026 195.905 302.031 +50.7843 196.638 303.161 +47.381 195.846 301.941 +44.3604 196.604 303.109 +41.0135 195.888 302.005 +37.9647 196.562 303.045 +34.6482 195.814 301.892 +31.5765 196.405 302.802 +28.2296 195.191 300.931 +25.2239 196.295 302.633 +21.9653 195.43 301.299 +18.8723 195.961 302.118 +15.6855 195.5 301.407 +12.6092 196.491 302.936 +9.41847 195.728 301.759 +6.28461 195.928 302.067 +3.13544 195.515 301.43 +2.20674e-14 196.121 302.365 +-3.12934 195.134 300.843 +-6.28985 196.091 302.319 +-9.408 195.51 301.423 +-12.5813 196.056 302.264 +-15.6376 194.902 300.485 +-18.8671 195.907 302.035 +-21.9347 195.158 300.88 +-25.1402 195.643 301.628 +-28.206 195.028 300.68 +-31.4284 195.483 301.382 +-34.4565 194.731 300.222 +-37.6825 195.101 300.792 +-40.7984 194.86 300.421 +-44.0314 195.145 300.861 +-47.0547 194.497 299.862 +-50.4363 195.29 301.084 +-53.4183 194.505 299.873 +-56.6762 194.728 300.216 +-59.6647 194.022 299.128 +-63.069 194.642 300.085 +-66.0422 193.907 298.952 +-69.4736 194.494 299.857 +-72.4304 193.731 298.679 +-75.9293 194.391 299.697 +-78.8057 193.438 298.228 +-82.5345 194.541 299.929 +-85.4177 193.613 298.497 +-89.1482 194.572 299.977 +-92.265 194.141 299.313 +-95.8407 194.642 300.085 +-98.9584 194.18 299.372 +-102.482 194.487 299.846 +-105.455 193.732 298.682 +-109.172 194.317 299.583 +-112.314 193.843 298.852 +-116.159 194.544 299.934 +-119.275 193.985 299.072 +-123.195 194.698 300.17 +-126.079 193.746 298.704 +-130.036 194.418 299.74 +-133.184 193.844 298.855 +-138.366 196.151 302.411 +-141.873 195.993 302.168 +-146.284 197.027 303.762 +-146.836 192.907 297.409 +-146.212 187.443 288.986 +-146.142 182.899 281.981 +-146.222 178.718 275.535 +-147.589 176.234 271.705 +-152.312 177.746 274.036 +-167.985 191.653 295.476 +-113.801 126.971 195.755 +-112.977 123.309 190.108 +-113.77 121.507 187.33 +-115.437 120.673 186.044 +-116.523 119.255 183.859 +-118.526 118.793 183.146 +-120.33 118.13 182.125 +-122.761 118.075 182.04 +-125.4 118.195 182.224 +-130.234 120.314 185.491 +-508.703 460.713 710.293 +-513.198 455.728 702.607 +-516.3 449.627 693.202 +-520.267 444.405 685.151 +-523.562 438.723 676.39 +-527.21 433.452 668.264 +-531.01 428.405 660.483 +-535.027 423.625 653.114 +-538.416 418.438 645.117 +-542.086 413.562 637.599 +-546.346 409.21 630.89 +-554.672 407.913 628.89 +-569.257 411.087 633.783 +-577.106 409.275 630.989 +-576.998 401.887 619.6 +-581.553 397.854 613.382 +-584.702 392.92 605.776 +-591.998 390.801 602.508 +-593.743 385.056 593.652 +-593.206 377.96 582.711 +-585.073 366.258 564.669 +-589.533 362.61 559.045 +-593.05 358.421 552.587 +-597.56 354.869 547.111 +-601.182 350.824 540.874 +-604.719 346.772 534.627 +-608.451 342.869 528.61 +-612.805 339.346 523.178 +-616.739 335.615 517.426 +-621.241 332.215 512.185 +-625.25 328.572 506.568 +-629.77 325.216 501.393 +-632.987 321.211 495.219 +-638.556 318.413 490.906 +-141.272 69.2203 106.719 +-143.275 68.9793 106.347 +-144.225 68.225 105.184 +-143.184 66.5479 102.599 +-143.02 65.3055 100.683 +-142.673 64.0011 98.6722 +-143.228 63.1158 97.3072 +-149.4 64.6688 99.7016 +-676.822 287.756 443.641 +-682.125 284.829 439.128 +-136.487 55.9685 86.2881 +-135.932 54.736 84.3879 +-695.188 274.855 423.751 +-390.613 151.619 233.755 +-386.804 147.386 227.229 +-385.856 144.311 222.488 +-715.211 262.519 404.733 +-720.644 259.563 400.176 +-725.869 256.517 395.478 +-730.967 253.411 390.69 +-736.021 250.276 385.857 +-741.371 247.226 381.155 +-747.107 244.285 376.62 +-752.03 241.059 371.646 +-756.906 237.805 366.63 +-762.867 234.871 362.107 +-768.353 231.767 357.322 +-774.502 228.837 352.804 +-780.261 225.764 348.066 +-781.723 221.447 341.41 +-767.869 212.908 328.246 +-412.475 111.912 172.537 +-2944.9 781.611 1205.03 +-413.835 107.414 165.604 +-411.554 104.433 161.008 +-2981.49 739.394 1139.94 +-412.557 99.9554 154.104 +-413.044 97.7324 150.677 +-413.215 95.448 147.155 +-405.768 91.4624 141.01 +-408.61 89.8375 138.505 +-411.058 88.113 135.846 +-404.52 84.5003 130.276 +-388.157 78.9741 121.756 +-382.737 75.8065 116.873 +-383.09 73.8224 113.814 +-382.179 71.6109 110.404 +-382.933 69.7242 107.496 +-382.325 67.6003 104.221 +-382.44 65.6184 101.166 +-382.331 63.6088 98.0673 +-381.418 61.4816 94.7878 +-380.467 59.368 91.5292 +-382.561 57.7339 89.0098 +-382.12 55.7177 85.9014 +-381.16 53.642 82.7012 +-382.588 51.9089 80.0293 +-381.072 49.7852 76.7551 +-380.492 47.8023 73.6981 +-381.244 45.9936 70.9096 +-380.206 43.9778 67.8017 +-380.015 42.0729 64.8649 +-380.184 40.2148 62.0002 +-380.421 38.3682 59.1532 +-381.022 36.5602 56.3658 +-380.706 34.6686 53.4495 +-380.161 32.7657 50.5158 +-380.474 30.9431 47.7058 +-380.857 29.1276 44.9068 +-380.517 27.2611 42.0291 +-380.542 25.4265 39.2007 +-379.246 23.5137 36.2517 +-380.106 21.7403 33.5176 +-380.44 19.9344 30.7333 +-380.447 18.1128 27.925 +-379.128 16.2371 25.0332 +-379.673 14.4475 22.2741 +-379.191 12.6207 19.4577 +-379.379 10.8195 16.6808 +-377.74 8.97483 13.8367 +-379.868 7.21866 11.1292 +-379.77 5.41163 8.34325 +-148.677 1.41223 2.17727 +-147.294 0.699495 1.07843 +97 0 0 +96.9963 0.467019 0.705983 +96.8852 0.933041 1.41046 +97.8665 1.41391 2.13738 +96.9409 1.86772 2.82339 +97.9067 2.35845 3.56522 +96.9669 2.80376 4.23838 +97.8172 3.30083 4.98979 +97.6615 3.7678 5.69571 +97.6979 4.24219 6.41283 +97.5275 4.7076 7.11638 +97.5488 5.18227 7.83392 +97.4631 5.65174 8.54361 +97.37 6.12076 9.25262 +97.2695 6.58934 9.96096 +97.1616 7.05742 10.6685 +96.9472 7.51723 11.3636 +96.9236 7.99187 12.0811 +96.5959 8.44098 12.76 +97.1491 8.96947 13.559 +97.0036 9.43684 14.2655 +96.7523 9.8935 14.9558 +96.5921 10.3589 15.6594 +96.5226 10.8346 16.3784 +96.5432 11.3219 17.115 +96.3604 11.7862 17.817 +96.8524 12.3366 18.6489 +96.848 12.8282 19.3921 +96.6415 13.294 20.0962 +96.4275 13.7588 20.7988 +96.8824 14.3225 21.651 +96.8449 14.8179 22.3999 +96.4145 15.2532 23.0579 +97.0326 15.8578 23.9719 +96.6824 16.3083 24.6528 +97.2791 16.9224 25.5813 +96.9127 17.3731 26.2625 +96.6342 17.839 26.9669 +97.1993 18.4653 27.9136 +96.9035 18.9325 28.6199 +96.5064 19.3795 29.2956 +97.3202 20.0753 30.3473 +97.6525 20.6815 31.2638 +97.3217 21.1509 31.9733 +97.8179 21.8046 32.9616 +97.6541 22.317 33.7361 +97.2053 22.7648 34.413 +96.9332 23.2539 35.1524 +97.4753 23.9441 36.1958 +97.0929 24.4125 36.9039 +97.5187 25.0889 37.9263 +97.1182 25.5575 38.6347 +97.3394 26.1934 39.596 +97.0109 26.6856 40.3401 +96.496 27.1267 41.0068 +96.9503 27.845 42.0926 +96.3296 28.2589 42.7183 +96.6699 28.9586 43.776 +96.2082 29.4229 44.4779 +96.6095 30.1566 45.5871 +96.735 30.8137 46.5804 +96.244 31.2783 47.2827 +96.517 31.9962 48.368 +96.7747 32.7192 49.4608 +96.5079 33.2715 50.2959 +96.231 33.8239 51.1308 +96.4471 34.5563 52.2381 +95.8135 34.9889 52.892 +95.8367 35.6649 53.9138 +96.67 36.6562 55.4124 +96.2504 37.1835 56.2094 +96.3913 37.9338 57.3437 +96.273 38.591 58.3372 +96.3824 39.3485 59.4823 +95.6765 39.7778 60.1312 +96.4718 40.8415 61.7392 +95.7433 41.2705 62.3877 +95.9478 42.1077 63.6532 +95.8221 42.8111 64.7165 +95.7586 43.5515 65.8359 +95.679 44.2946 66.9592 +95.7351 45.1119 68.1947 +96.3009 46.1864 69.819 +96.1659 46.9408 70.9594 +96.0886 47.7343 72.1589 +95.4037 48.2324 72.9118 +95.9536 49.3672 74.6273 +95.7494 50.1311 75.7821 +95.5283 50.8968 76.9395 +95.4329 51.7415 78.2165 +95.318 52.5891 79.4978 +95.7442 53.7544 81.2593 +95.5155 54.5705 82.493 +95.2683 55.3886 83.7297 +94.9342 56.1676 84.9073 +95.2582 57.3549 86.7022 +94.9496 58.1803 87.9499 +95.2185 59.3792 89.7622 +94.8661 60.2101 91.0182 +94.8844 61.2937 92.6563 +94.4898 62.129 93.919 +94.4576 63.2197 95.5679 +94.7757 64.5726 97.6129 +94.062 65.2423 98.6254 +94.0731 66.4319 100.424 +93.9928 67.5828 102.163 +93.823 68.6934 103.842 +94.3984 70.3844 106.399 +93.5166 71.015 107.352 +93.7255 72.4953 109.59 +93.493 73.6672 111.361 +93.5137 75.0691 113.48 +93.2175 76.2487 115.263 +93.4981 77.9364 117.815 +93.1333 79.1242 119.61 +93.2215 80.7325 122.042 +93.0538 82.1609 124.201 +92.7435 83.5 126.225 +92.4493 84.8892 128.325 +101.305 94.8859 143.437 +114.95 109.847 166.054 +114.932 112.078 169.425 +114.609 114.074 172.444 +114.995 116.852 176.643 +114.833 119.155 180.124 +114.929 121.808 184.134 +114.633 124.126 187.639 +114.271 126.451 191.153 +114.546 129.575 195.876 +114.516 132.462 200.24 +114.403 135.359 204.619 +113.419 137.31 207.568 +110.754 137.246 207.471 +108.42 137.572 207.964 +105.693 137.377 207.67 +103.248 137.524 207.892 +100.282 136.942 207.011 +98.1124 137.419 207.734 +95.29 136.959 207.038 +93.1902 137.516 207.88 +90.0197 136.456 206.277 +90.5284 141.045 213.214 +89.987 144.188 217.966 +89.702 147.912 223.595 +89.4295 151.854 229.554 +88.9488 155.646 235.287 +88.7348 160.131 242.066 +88.6696 165.155 249.661 +88.4796 170.242 257.352 +87.6007 174.277 263.451 +86.3679 177.836 268.831 +81.3234 173.492 262.263 +87.1403 192.828 291.493 +85.6044 196.727 297.387 +82.8495 197.991 299.299 +79.0005 196.605 297.204 +76.3868 198.273 299.725 +72.4104 196.363 296.838 +69.6262 197.625 298.745 +66.0239 196.542 297.108 +63.1906 197.722 298.892 +59.5162 196.223 296.626 +56.817 197.918 299.189 +53.1227 196.111 296.457 +50.2832 197.398 298.402 +46.8328 196.264 296.689 +43.9461 197.468 298.508 +40.5041 196.138 296.497 +37.6825 197.806 299.02 +34.2169 196.058 296.377 +31.3238 197.534 298.609 +27.9471 195.918 296.165 +25.0216 197.421 298.437 +21.7394 196.102 296.443 +18.731 197.191 298.09 +15.5198 196.116 296.464 +12.4801 197.176 298.066 +9.30067 195.96 296.228 +6.234 197.046 297.87 +3.09443 195.633 295.734 +2.18347e-14 196.744 297.414 +-3.08919 195.303 295.235 +-6.22527 196.77 297.453 +-9.26402 195.188 295.061 +-12.4487 196.68 297.317 +-15.4762 195.565 295.631 +-18.6735 196.585 297.173 +-21.715 195.882 296.111 +-24.9449 196.816 297.522 +-27.8451 195.203 295.084 +-31.1756 196.6 297.196 +-34.0252 194.96 294.717 +-37.3689 196.161 296.532 +-40.2777 195.041 294.84 +-43.7023 196.373 296.853 +-46.5848 195.226 295.118 +-50.0466 196.469 296.997 +-52.7384 194.693 294.312 +-56.2382 195.902 296.141 +-59.021 194.59 294.158 +-62.6175 195.929 296.181 +-65.3861 194.643 294.238 +-68.8057 195.296 295.225 +-71.5332 193.984 293.242 +-75.368 195.629 295.729 +-78.0698 194.289 293.703 +-81.7247 195.304 295.237 +-84.3672 193.883 293.089 +-88.3015 195.397 295.377 +-91.1133 194.377 293.835 +-94.9089 195.423 295.417 +-97.542 194.055 293.348 +-101.572 195.434 295.433 +-104.347 194.355 293.803 +-108.207 195.27 295.186 +-111.021 194.268 293.671 +-114.862 195.038 294.835 +-117.688 194.059 293.355 +-122.088 195.624 295.72 +-124.376 193.781 292.934 +-128.873 195.352 295.309 +-131.608 194.207 293.578 +-136.108 195.627 295.724 +-140.077 196.196 296.585 +-145.123 198.174 299.575 +-146.759 195.48 295.503 +-146.212 190.043 287.283 +-145.982 185.233 280.013 +-145.978 180.894 273.453 +-149.497 180.988 273.595 +-153.326 181.411 274.235 +-164.111 189.829 286.96 +-113.231 128.087 193.627 +-113.156 125.216 189.287 +-114.042 123.487 186.673 +-115.576 122.493 185.17 +-116.851 121.25 183.291 +-119.003 120.925 182.8 +-120.718 120.154 181.634 +-123.943 120.865 182.71 +-126.5 120.885 182.739 +-506.879 474.763 717.688 +-509.785 468.095 707.609 +-514.139 462.894 699.747 +-517.413 456.845 690.603 +-521.396 451.545 682.591 +-524.596 445.686 673.733 +-528.921 440.889 666.482 +-532.016 435.169 657.836 +-535.99 430.273 650.434 +-539.621 425.19 642.75 +-543.596 420.465 635.607 +-546.64 415.109 627.511 +-1948.94 1453.15 2196.69 +-572.326 419.035 633.445 +-574.184 412.849 624.095 +-577.121 407.547 616.08 +-581.678 403.458 609.898 +-585.268 398.756 602.79 +-589.835 394.773 596.769 +-598.564 393.567 594.946 +-585.542 378.251 571.794 +-585.861 371.837 562.098 +-591.322 368.754 557.437 +-594.054 364.007 550.261 +-598.776 360.523 544.994 +-602.409 356.416 538.786 +-606.785 352.782 533.292 +-609.632 348.299 526.516 +-614.557 345.035 521.582 +-617.587 340.737 515.084 +-622.953 337.75 510.57 +-626.329 333.704 504.452 +-630.931 330.334 499.358 +-634.742 326.568 493.666 +-142.442 72.0131 108.861 +-142.461 70.7706 106.982 +-142.751 69.6799 105.333 +-143.772 68.9538 104.236 +-142.728 67.2556 101.669 +-143.097 66.247 100.144 +-142.982 65.0288 98.3026 +-145.637 65.0675 98.361 +-149.791 65.7372 99.3735 +-677.926 292.222 441.746 +-682.998 289.149 437.1 +-687.625 285.882 432.162 +-134.485 54.9041 82.9973 +-140.931 56.492 85.3977 +-702.337 276.398 417.824 +-387.049 149.525 226.034 +-388.575 147.344 222.736 +-383.264 142.629 215.609 +-722.229 263.742 398.693 +-726.624 260.344 393.557 +-732.232 257.37 389.06 +-737.123 254.127 384.158 +-743.161 251.26 379.824 +-747.621 247.843 374.658 +-754.442 245.186 370.643 +-758.292 241.544 365.137 +-765.13 238.835 361.042 +-769.665 235.383 355.823 +-776.523 232.616 351.64 +-781.762 229.335 346.68 +-2906.29 834.713 1261.82 +-774.196 217.639 329 +-775.64 213.362 322.535 +-2944.9 792.451 1197.93 +-791.026 208.165 314.679 +-413.367 106.348 160.764 +-808.319 203.239 307.232 +-412.374 101.297 153.128 +-3004.75 720.826 1089.66 +-412.11 96.5129 145.896 +-407.985 93.2373 140.945 +-409.074 91.1866 137.845 +-406.686 88.3849 133.61 +-397.145 84.1102 127.147 +-389.468 80.3397 121.448 +-383.395 76.9896 116.384 +-382.43 74.7171 112.948 +-381.8 72.5317 109.645 +-381.7 70.4633 106.518 +-382.325 68.5378 103.607 +-382.917 66.6112 100.695 +-381.661 64.3783 97.3193 +-382.281 62.4755 94.4428 +-381.044 60.2829 91.1283 +-381.983 58.4457 88.351 +-382.024 56.476 85.3735 +-380.288 54.2616 82.026 +-380.744 52.3752 79.1744 +-380.683 50.4241 76.225 +-380.979 48.5273 73.3576 +-383.489 46.9061 70.9069 +-380.891 44.6679 67.5235 +-381.289 42.7994 64.6989 +-380.184 40.7725 61.6349 +-380.421 38.9003 58.8047 +-380.53 37.0193 55.9613 +-381.199 35.1949 53.2034 +-381.742 33.3582 50.4269 +-380.376 31.3641 47.4124 +-380.56 29.5085 44.6073 +-380.318 27.6247 41.7596 +-380.542 25.7791 38.9697 +-380.439 23.9147 36.1513 +-380.206 22.0475 33.3287 +-379.843 20.1791 30.5043 +-378.554 18.2726 27.6223 +-379.128 16.4623 24.8857 +-378.975 14.6209 22.1021 +-378.393 12.7688 19.3023 +-381.676 11.036 16.6829 +-379.938 9.15226 13.8353 +-379.169 7.30531 11.0433 +-379.27 5.47945 8.28317 +-147.378 1.4193 2.14552 +-145.194 0.699083 1.05679 +96.9 0 0 +96.8963 0.472881 0.701017 +96.8852 0.945727 1.40198 +96.8668 1.4185 2.10284 +96.841 1.89116 2.80353 +96.9077 2.36612 3.50763 +96.7672 2.83602 4.20423 +97.7174 3.34229 4.95474 +97.6615 3.81904 5.66148 +96.6013 4.25161 6.30275 +97.4278 4.76674 7.06639 +97.3497 5.24201 7.77096 +97.3637 5.72271 8.48357 +97.2707 6.19766 9.18765 +97.1703 6.67211 9.89099 +97.0625 7.14605 10.5936 +96.9472 7.61944 11.2953 +96.7258 8.08404 11.9841 +96.5959 8.55575 12.6834 +96.2615 9.00833 13.3543 +96.9051 9.55547 14.1654 +96.654 10.0178 14.8508 +95.7087 10.4038 15.4229 +96.4246 10.9708 16.2635 +96.2497 11.4409 16.9604 +96.0675 11.9102 17.6561 +96.7549 12.4917 18.5182 +96.6536 12.9765 19.2369 +96.4474 13.4477 19.9353 +97.0084 14.0299 20.7984 +96.7858 14.5028 21.4995 +96.6521 14.9895 22.2209 +97.1836 15.5839 23.1021 +96.9367 16.0576 23.8044 +96.6824 16.53 24.5047 +96.3254 16.9844 25.1783 +96.9127 17.6093 26.1047 +96.729 18.0994 26.8312 +97.1993 18.7164 27.7458 +96.8093 19.1713 28.4203 +97.4461 19.8343 29.4031 +97.1329 20.3091 30.107 +96.7189 20.7623 30.7788 +97.3217 21.4384 31.7812 +96.9834 21.9126 32.484 +97.4693 22.5776 33.4699 +97.2053 23.0743 34.2062 +96.9332 23.5701 34.9412 +97.3839 24.2469 35.9446 +97.0019 24.7213 36.6477 +97.5187 25.43 37.6984 +97.0279 25.8809 38.3668 +97.3394 26.5495 39.358 +96.8319 26.9986 40.0237 +96.496 27.4955 40.7604 +96.7729 28.172 41.7632 +97.1242 28.8794 42.812 +96.6699 29.3523 43.513 +96.9079 30.0398 44.5322 +96.4354 30.5116 45.2315 +97.5145 31.4844 46.6736 +97.0194 31.959 47.3773 +96.4313 32.4025 48.0347 +96.6041 33.1056 49.077 +96.7623 33.8129 50.1255 +96.737 34.4641 51.0909 +96.3632 34.9957 51.879 +96.564 35.7425 52.986 +96.5 36.4 53.9607 +95.9283 36.8695 54.6568 +96.2504 37.6891 55.8717 +96.2285 38.3847 56.9029 +96.273 39.1158 57.9867 +96.3021 39.8502 59.0755 +95.7564 40.3523 59.8198 +95.6784 41.0564 60.8635 +95.7433 41.8316 62.0128 +95.7912 42.6106 63.1675 +95.7444 43.358 64.2755 +95.6814 44.1081 65.3876 +95.679 44.8969 66.5569 +95.7351 45.7253 67.7849 +95.6217 46.4843 68.9101 +96.091 47.542 70.4781 +96.0886 48.3833 71.7253 +95.9935 49.1904 72.9217 +95.8805 50.0003 74.1223 +95.7494 50.8127 75.3267 +95.6003 51.6277 76.5348 +95.3616 52.4058 77.6884 +95.318 53.3042 79.0202 +95.6741 54.4454 80.7119 +95.4461 55.2723 81.9377 +95.1994 56.1009 83.1661 +94.9342 56.9313 84.3972 +95.2582 58.1348 86.1812 +94.9496 58.9714 87.4214 +94.5559 59.7677 88.6019 +94.8661 61.0288 90.4714 +94.8194 62.0846 92.0365 +95.004 63.316 93.862 +94.4576 64.0793 94.9936 +94.6498 65.3639 96.8979 +93.9997 66.0858 97.9681 +94.1346 67.3793 99.8857 +93.9928 68.5017 101.549 +94.3044 69.9847 103.748 +93.863 70.9371 105.16 +93.9869 72.3424 107.243 +93.6674 73.4357 108.864 +93.6077 74.7605 110.828 +93.3437 75.9517 112.594 +93.2175 77.2854 114.571 +93.4429 78.9497 117.038 +93.4601 80.4814 119.309 +93.1678 81.7833 121.239 +93.1068 83.3256 123.525 +92.9002 84.7779 125.678 +91.7798 85.4199 126.63 +95.5187 90.6833 134.432 +114.9 111.293 164.985 +115.227 113.893 168.84 +115.142 116.163 172.205 +114.948 118.392 175.509 +114.739 120.676 178.895 +114.837 123.365 182.881 +114.587 125.764 186.437 +114.717 128.671 190.747 +114.546 131.337 194.699 +114.43 134.162 198.887 +114.403 137.199 203.389 +114.041 139.94 207.452 +111.364 139.878 207.361 +109.138 140.365 208.082 +106.005 139.657 207.033 +104.358 140.892 208.864 +100.919 139.685 207.074 +98.6988 140.12 207.719 +95.9351 139.761 207.187 +93.7155 140.171 207.795 +90.9432 139.73 207.141 +89.8942 141.961 210.448 +90.0196 146.201 216.735 +89.7655 150.029 222.409 +89.4295 153.919 228.175 +89.039 157.923 234.111 +88.9395 162.683 241.167 +88.7548 167.561 248.399 +88.5623 172.718 256.044 +86.3714 174.168 258.193 +85.3068 178.04 263.933 +85.63 185.163 274.492 +87.2612 195.721 290.144 +84.2738 196.302 291.006 +81.6797 197.85 293.301 +77.7668 196.167 290.805 +75.2848 198.07 293.627 +71.294 195.964 290.505 +68.7485 197.787 293.206 +64.8394 195.64 290.025 +62.2702 197.491 292.769 +58.5919 195.802 290.264 +55.941 197.517 292.806 +52.3245 195.791 290.248 +49.5317 197.091 292.175 +45.9583 195.219 289.4 +43.2636 197.045 292.107 +39.7683 195.193 289.361 +37.0972 197.382 292.606 +33.5748 194.994 289.067 +30.8444 197.156 292.272 +27.5156 195.516 289.84 +24.638 197.037 292.096 +21.3304 195.029 289.118 +18.4798 197.192 292.324 +15.2319 195.096 289.217 +12.316 197.23 292.382 +9.13052 194.99 289.061 +6.1415 196.761 291.686 +3.04731 195.274 289.482 +2.15469e-14 196.791 291.731 +-3.0412 194.883 288.901 +-6.13103 196.425 291.189 +-9.12267 194.823 288.813 +-12.2567 196.28 290.973 +-15.197 194.648 288.554 +-18.3856 196.187 290.835 +-21.2754 194.526 288.373 +-24.5613 196.423 291.185 +-27.4215 194.847 288.848 +-30.6875 196.154 290.786 +-33.4981 194.549 288.407 +-36.8045 195.824 290.297 +-39.6551 194.637 288.537 +-43.0199 195.935 290.462 +-45.7233 194.22 287.92 +-49.1699 195.651 290.041 +-51.7924 193.8 287.296 +-55.3934 195.583 289.94 +-57.9812 193.761 287.239 +-61.6277 195.454 289.748 +-64.1834 193.661 287.09 +-67.928 195.426 289.707 +-70.4168 193.553 286.93 +-74.2037 195.226 289.41 +-76.6413 193.327 286.596 +-80.4875 194.963 289.02 +-83.0832 193.529 286.894 +-86.9951 195.124 289.259 +-89.3356 193.176 286.371 +-93.5372 195.218 289.398 +-96.0722 193.729 287.192 +-100.084 195.188 289.355 +-102.359 193.245 286.474 +-106.803 195.358 289.607 +-108.916 193.176 286.372 +-113.533 195.403 289.673 +-115.721 193.41 286.719 +-120.167 195.164 289.319 +-122.34 193.2 286.407 +-126.855 194.908 288.939 +-129.227 193.286 286.534 +-133.743 194.841 288.839 +-136.742 194.129 287.784 +-142.763 197.602 292.933 +-145.267 196.123 290.74 +-146.602 193.141 286.32 +-146.261 188.111 278.863 +-146.507 184.018 272.795 +-150.865 185.128 274.441 +-154.425 185.196 274.541 +-119.381 139.967 207.492 +-112.881 129.426 191.867 +-113.334 127.119 188.446 +-114.587 125.764 186.437 +-116.268 124.902 185.16 +-117.368 123.442 182.995 +-119.91 123.503 183.086 +-121.493 122.571 181.704 +-124.928 123.482 183.054 +-127.95 123.933 183.723 +-508.655 482.905 715.876 +-511.433 475.994 705.631 +-516.124 471 698.229 +-518.685 464.195 688.141 +-523.007 459.099 680.587 +-526.23 453.153 671.772 +-530.246 448.003 664.136 +-533.582 442.385 655.808 +-538.199 437.921 649.19 +-540.538 431.704 639.975 +-545.454 427.639 633.948 +-548.345 422.065 625.685 +-1948.94 1472.91 2183.5 +-576.358 427.725 634.075 +-576.375 420.06 622.713 +-579.153 414.543 614.535 +-583.981 410.563 608.635 +-586.652 405.133 600.585 +-591.807 401.479 595.167 +-594.964 396.519 587.815 +-584.828 382.927 567.665 +-587.763 378.116 560.534 +-592.382 374.438 555.081 +-595.928 370.12 548.68 +-601.073 366.827 543.798 +-603.637 361.998 536.64 +-608.643 358.673 531.711 +-611.508 354.121 524.962 +-616.8 351.003 520.34 +-619.567 346.477 513.631 +-625.592 343.793 509.653 +-628.056 339.173 502.803 +-633.324 336.095 498.24 +-636.131 331.733 491.774 +-141.484 72.5013 107.479 +-143.799 72.4067 107.339 +-143.575 71.035 105.305 +-144.3 70.148 103.99 +-142.728 68.1701 101.058 +-142.867 67.0399 99.3824 +-143.599 66.1977 98.134 +-148.202 67.1131 99.491 +-676.721 301.024 446.249 +-674.143 294.543 436.641 +-681.173 292.297 433.313 +-688.743 290.24 430.263 +-694.773 287.5 426.201 +-136.724 55.551 82.3509 +-136.283 54.3621 80.5884 +-708.239 277.327 411.121 +-386.186 148.428 220.036 +-383.679 144.724 214.544 +-384.755 142.414 211.121 +-728.721 264.646 392.321 +-735.353 261.981 388.371 +-738.65 258.116 382.641 +-744.952 255.29 378.452 +-749.764 251.933 373.475 +-756.683 249.258 369.509 +-760.544 245.556 364.021 +-767.48 242.826 359.975 +-772.027 239.315 354.77 +-779.687 236.739 350.952 +-783.793 233.057 345.492 +-791.125 230.308 341.417 +-795.223 226.591 335.907 +-803.651 224.074 332.175 +-782.22 213.352 316.281 +-790.304 210.803 312.503 +-800.542 208.758 309.471 +-412.121 105.031 155.702 +-411.278 102.401 151.804 +-412.494 100.301 148.69 +-410.729 97.4975 144.534 +-409.371 94.8261 140.574 +-408.239 92.238 136.737 +-408.639 90.0167 133.444 +-390.423 83.8105 124.244 +-385.253 80.5507 119.411 +-381.797 77.7115 115.203 +-381.864 75.6212 112.104 +-381.8 73.5179 108.986 +-381.795 71.4393 105.904 +-382.895 69.5732 103.138 +-382.44 67.433 99.9652 +-381.47 65.2207 96.6857 +-380.843 63.0867 93.5221 +-381.044 61.1026 90.5808 +-382.85 59.3751 88.02 +-381.251 57.1282 84.689 +-381.644 55.1954 81.8237 +-382.976 53.3985 79.1599 +-381.752 51.2533 75.9798 +-381.856 49.3003 73.0846 +-381.732 47.326 70.1579 +-381.967 45.4032 67.3074 +-380.407 43.281 64.1614 +-380.773 41.3909 61.3595 +-380.421 39.4292 58.4514 +-380.136 37.4838 55.5675 +-381.199 35.6735 52.8837 +-380.359 33.6893 49.9423 +-380.376 31.7905 47.1275 +-380.065 29.8708 44.2816 +-381.012 28.0514 41.5844 +-379.153 26.0342 38.5941 +-380.041 24.2145 35.8966 +-379.51 22.3064 33.0679 +-381.137 20.5232 30.4243 +-381.443 18.6624 27.6658 +-379.626 16.7081 24.7687 +-380.271 14.8705 22.0445 +-380.09 13.0005 19.2724 +-379.779 11.1305 16.5002 +-378.739 9.2474 13.7087 +-380.168 7.42416 11.0059 +-378.97 5.54957 8.22689 +-146.678 1.43177 2.12251 +-146.494 0.714935 1.05985 +96.9 0 0 +96.8963 0.479186 0.696722 +96.8852 0.958337 1.39339 +96.8668 1.43741 2.08996 +96.841 1.91638 2.78636 +96.8078 2.3952 3.48255 +96.8671 2.87681 4.18279 +96.8191 3.35572 4.87912 +97.5618 3.866 5.62105 +97.4985 4.34831 6.32232 +97.4278 4.83029 7.0231 +96.4539 5.26302 7.65228 +97.3637 5.79902 8.4316 +97.2707 6.2803 9.13137 +97.2695 6.76798 9.84045 +97.0625 7.24133 10.5287 +97.0463 7.72896 11.2377 +96.7258 8.19183 11.9107 +96.3984 8.65208 12.5799 +96.2615 9.12844 13.2725 +96.9051 9.68288 14.0786 +96.654 10.1514 14.7598 +96.494 10.629 15.4542 +96.3266 11.1058 16.1474 +96.2497 11.5934 16.8565 +96.8486 12.1671 17.6906 +96.7549 12.6583 18.4048 +96.5563 13.1363 19.0998 +96.3504 13.6133 19.7933 +97.1052 14.2311 20.6916 +96.7858 14.6961 21.3677 +96.5558 15.1742 22.0628 +96.3184 15.6511 22.7562 +96.9367 16.2717 23.6585 +96.5868 16.7338 24.3305 +96.4208 17.2279 25.0488 +96.9127 17.8441 25.9448 +96.729 18.3407 26.6668 +96.3483 18.7999 27.3345 +96.715 19.408 28.2187 +96.5064 19.905 28.9412 +97.1329 20.5799 29.9225 +97.6525 21.2422 30.8855 +97.3217 21.7243 31.5865 +96.9834 22.2047 32.285 +97.4693 22.8787 33.2649 +97.1133 23.3598 33.9644 +97.6669 24.0651 34.99 +97.3839 24.5702 35.7244 +97.0019 25.0509 36.4232 +97.5187 25.7691 37.4675 +96.3058 26.0308 37.848 +96.6204 26.7048 38.828 +96.9214 27.3838 39.8153 +96.496 27.8621 40.5107 +96.8616 28.5737 41.5453 +97.2125 29.2911 42.5883 +96.6699 29.7437 43.2464 +96.9953 30.4678 44.2993 +96.4354 30.9184 44.9544 +97.4279 31.8758 46.3465 +96.9333 32.3564 47.0453 +97.1171 33.068 48.0799 +96.6894 33.5766 48.8194 +96.7623 34.2637 49.8184 +96.231 34.7409 50.5122 +96.3632 35.4623 51.5612 +96.564 36.219 52.6614 +96.0026 36.6951 53.3536 +95.9283 37.3611 54.3219 +96.0865 38.1266 55.4349 +96.2285 38.8965 56.5543 +96.1921 39.604 57.5831 +95.5786 40.0782 58.2725 +95.5967 40.8222 59.3542 +96.3131 41.8798 60.8919 +95.7433 42.3894 61.6329 +95.8695 43.214 62.8318 +96.3661 44.2213 64.2965 +95.6814 44.6962 64.987 +95.7556 45.532 66.2021 +95.6591 46.2982 67.3162 +96.3009 47.4386 68.9743 +96.1659 48.2134 70.1009 +96.0886 49.0284 71.2859 +95.9935 49.8463 72.475 +95.8805 50.6669 73.6682 +95.0966 51.1392 74.3548 +95.6003 52.316 76.066 +95.4329 53.1443 77.2702 +95.2473 53.9748 78.4778 +95.0433 54.8076 79.6886 +95.5155 56.05 81.495 +95.1994 56.8489 82.6566 +95.548 58.0638 84.4231 +95.3258 58.9518 85.7142 +94.8827 59.7157 86.8249 +95.2185 60.989 88.6763 +94.9317 61.885 89.9789 +94.8844 62.9554 91.5353 +94.2969 63.683 92.5933 +94.394 64.8901 94.3482 +94.5869 66.1912 96.24 +93.9997 66.967 97.368 +93.9499 68.1434 99.0785 +93.9928 69.415 100.927 +93.823 70.5557 102.586 +93.8036 71.837 104.449 +93.8105 73.1693 106.386 +93.6674 74.4148 108.197 +93.5503 75.7108 110.081 +93.457 77.0578 112.04 +93.6089 78.6445 114.347 +93.0566 79.6714 115.84 +93.4601 81.5545 118.578 +93.2752 82.9695 120.635 +93.0538 84.3884 122.698 +93.1092 86.1015 125.189 +92.0888 86.8507 126.278 +91.966 88.4742 128.639 +114.85 112.728 163.903 +114.833 115.018 167.232 +114.706 117.266 170.501 +114.566 119.572 173.854 +114.833 122.386 177.945 +114.791 124.959 181.687 +114.542 127.39 185.222 +114.673 130.335 189.504 +114.152 132.629 192.839 +114.516 136.053 197.817 +114.276 138.874 201.919 +114.414 142.27 206.856 +112.585 143.296 208.348 +110.254 143.692 208.923 +107.138 143.031 207.963 +104.932 143.556 208.726 +101.893 142.914 207.792 +99.6883 143.412 208.517 +96.8669 143 207.918 +94.591 143.367 208.452 +91.764 142.872 207.731 +89.527 143.266 208.305 +90.0522 148.204 215.484 +89.5434 151.653 220.5 +89.275 155.701 226.385 +88.9488 159.866 232.44 +88.9102 164.798 239.611 +88.698 169.686 246.719 +88.0661 174.041 253.05 +86.2645 176.272 256.294 +83.9609 177.567 258.177 +84.0275 184.12 267.705 +86.7532 197.175 286.687 +82.8731 195.613 284.416 +80.2175 196.899 286.285 +76.23 194.854 283.312 +73.7671 196.665 285.945 +70.018 195.023 283.558 +67.5273 196.864 286.234 +63.6913 194.739 283.144 +61.1589 196.553 285.782 +57.5521 194.892 283.367 +54.7833 196.008 284.99 +51.3933 194.871 283.336 +48.7523 196.577 285.816 +45.149 194.338 282.562 +42.5811 196.523 285.738 +39.123 194.586 282.922 +36.4282 196.407 285.569 +33.0668 194.605 282.95 +30.2866 196.172 285.229 +27.0213 194.563 282.889 +24.1985 196.103 285.128 +21.019 194.744 283.153 +18.1553 196.312 285.432 +15.0007 194.696 283.083 +12.0682 195.839 284.744 +8.9656 194.022 282.102 +6.02981 195.758 284.627 +2.99146 194.251 282.435 +2.11673e-14 195.902 284.835 +-2.98535 193.854 281.858 +-6.0333 195.872 284.791 +-8.95252 193.739 281.69 +-12.0682 195.839 284.744 +-14.9614 194.187 282.342 +-18.0925 195.633 284.445 +-20.9335 193.952 282.001 +-24.1218 195.481 284.224 +-26.9193 193.829 281.821 +-30.1472 195.269 283.916 +-32.8943 193.59 281.473 +-36.2505 195.448 284.176 +-38.9419 193.685 281.613 +-42.2521 195.004 283.53 +-44.901 193.271 281.01 +-48.3766 195.061 283.613 +-50.9942 193.357 281.136 +-54.361 194.497 282.793 +-56.9414 192.824 280.36 +-60.5338 194.544 282.861 +-63.1811 193.178 280.875 +-66.6687 194.361 282.595 +-69.1408 192.58 280.005 +-72.8523 194.226 282.399 +-75.2561 192.364 279.692 +-79.0478 194.028 282.111 +-81.5658 192.528 279.929 +-85.4226 194.151 282.29 +-87.7081 192.185 279.432 +-91.6478 193.824 281.815 +-94.0946 192.271 279.557 +-98.0993 193.869 281.88 +-100.57 192.398 279.742 +-104.903 194.441 282.711 +-107.322 192.888 280.453 +-111.401 194.29 282.492 +-113.754 192.657 280.117 +-117.921 194.07 282.171 +-120.304 192.517 279.915 +-124.495 193.832 281.826 +-126.81 192.201 279.454 +-131.342 193.894 281.916 +-133.773 192.446 279.811 +-139.953 196.296 285.409 +-142.32 194.706 283.097 +-146.133 195.091 283.656 +-146.421 190.826 277.456 +-146.547 186.523 271.199 +-148.419 184.554 268.336 +-157.594 191.517 278.46 +-113.698 135.081 196.404 +-113.363 131.713 191.506 +-113.914 129.474 188.251 +-114.905 127.794 185.809 +-117.099 127.473 185.341 +-118.682 126.488 183.91 +-121.055 126.345 183.702 +-122.657 125.395 182.32 +-126.257 126.46 183.869 +-130.1 127.696 185.666 +-510.381 491.003 713.904 +-513.029 483.846 703.497 +-517.326 478.391 695.567 +-520.487 472.019 686.301 +-525.425 467.371 679.544 +-527.537 460.335 669.314 +-532.288 455.724 662.61 +-535.092 449.551 653.634 +-539.898 445.16 647.25 +-542.603 439.131 638.484 +-547.429 434.909 632.345 +-555.457 433.239 629.917 +-167.681 128.414 186.71 +-172.3 129.571 188.392 +-578.323 427.099 620.99 +-581.615 421.857 613.367 +-586.098 417.545 607.098 +-588.981 412.165 599.275 +-594.415 408.624 594.127 +-585.387 395.338 574.809 +-587.296 389.67 566.568 +-589.797 384.484 559.028 +-595.033 381.128 554.149 +-597.534 376.065 546.788 +-602.897 372.845 542.106 +-606.16 368.358 535.582 +-611.121 364.935 530.605 +-614.009 360.309 523.879 +-619.534 357.259 519.445 +-622.466 352.74 512.873 +-627.874 349.648 508.378 +-630.933 345.27 502.013 +-636.008 342.02 497.287 +-638.984 337.664 490.953 +-143.179 74.3485 108.101 +-143.65 73.2962 106.571 +-143.575 71.9821 104.66 +-142.942 70.4146 102.381 +-142.652 69.0421 100.385 +-142.867 67.9337 98.7736 +-148.383 69.3153 100.782 +-148.746 68.2579 99.2449 +-693 312.375 454.185 +-701.093 310.402 451.315 +-707.354 307.579 447.21 +-686.906 293.326 426.487 +-692.683 290.457 422.316 +-701.337 288.753 419.838 +-135.713 54.8565 79.7598 +-710.532 281.935 409.925 +-716.743 279.149 405.875 +-384.425 146.939 213.645 +-727.315 272.8 396.643 +-730.985 269.007 391.129 +-737.714 266.326 387.231 +-741.194 262.458 381.606 +-748.021 259.76 377.683 +-752.25 256.138 372.417 +-759.009 253.358 368.375 +-763.661 249.85 363.274 +-770.178 246.929 359.027 +-775.175 243.495 354.035 +-782.147 240.653 349.902 +-786.177 236.882 344.42 +-793.342 234.032 340.276 +-798.342 230.512 335.157 +-806.604 227.895 331.353 +-811.072 224.171 325.938 +-815.396 220.396 320.449 +-797.551 210.751 306.426 +-2981.49 769.972 1119.52 +-413.927 104.435 151.845 +-3004.75 740.369 1076.47 +-413.215 99.3953 144.518 +-409.741 96.1771 139.839 +-409.444 93.7438 136.301 +-401.01 89.5141 130.151 +-388.183 84.4406 122.774 +-383.38 81.228 118.103 +-379.918 78.3601 113.933 +-381.581 76.5728 111.335 +-382.746 74.6829 108.587 +-382.364 72.4995 105.412 +-381.088 70.1681 102.022 +-381.582 68.1785 99.1295 +-381.757 66.1402 96.1658 +-380.556 63.8797 92.8792 +-380.66 61.8544 89.9344 +-381.116 59.8942 87.0844 +-381.154 57.8751 84.1487 +-382.709 56.0874 81.5494 +-381.617 53.9185 78.3959 +-381.363 51.8838 75.4375 +-380.881 49.8302 72.4516 +-382.22 48.0183 69.8172 +-380.206 45.7965 66.5867 +-380.407 43.858 63.7683 +-382.344 42.1158 61.2351 +-379.733 39.8827 57.9882 +-382.401 38.2099 55.5561 +-381.101 36.1397 52.5461 +-380.359 34.1385 49.6364 +-380.376 32.2144 46.8388 +-380.56 30.3085 44.0676 +-379.624 28.3219 41.1792 +-379.649 26.4158 38.4078 +-379.544 24.5053 35.63 +-381.3 22.7104 33.0203 +-380.739 20.7751 30.2064 +-379.351 18.8075 27.3456 +-379.925 16.9442 24.6364 +-379.872 15.0529 21.8865 +-381.787 13.2326 19.2398 +-380.478 11.2996 16.4293 +-379.039 9.37812 13.6355 +-379.769 7.51521 10.9269 +-377.97 5.60872 8.15492 +-146.578 1.44986 2.10806 +-145.794 0.721005 1.04832 +97 0 0 +96.8963 0.485452 0.692371 +96.8852 0.970868 1.38469 +96.8668 1.45621 2.07691 +96.9409 1.94344 2.77181 +96.9077 2.42902 3.46437 +96.8671 2.91442 4.15667 +96.8191 3.3996 4.84865 +97.5618 3.91655 5.58594 +97.4985 4.40517 6.28283 +97.4278 4.89345 6.97924 +97.4493 5.38687 7.68297 +97.2642 5.86887 8.37042 +97.2707 6.36242 9.07434 +97.2695 6.85648 9.77899 +97.0625 7.33602 10.4629 +96.8482 7.81401 11.1447 +96.7258 8.29894 11.8363 +96.3984 8.76522 12.5013 +97.1491 9.33311 13.3113 +96.9051 9.80949 13.9907 +96.654 10.2842 14.6677 +96.494 10.7679 15.3577 +96.4246 11.2624 16.0629 +96.2497 11.745 16.7512 +95.9699 12.2144 17.4206 +96.7549 12.8238 18.2898 +96.5563 13.3081 18.9805 +96.3504 13.7913 19.6697 +96.1371 14.2735 20.3574 +96.7858 14.8883 21.2343 +96.5558 15.3726 21.925 +97.0874 15.9823 22.7947 +96.8408 16.4681 23.4874 +96.5868 16.9526 24.1785 +96.4208 17.4532 24.8924 +96.8176 18.0597 25.7575 +96.6342 18.5623 26.4742 +97.1048 19.1952 27.3769 +96.8093 19.681 28.0698 +97.4461 20.3616 29.0405 +97.1329 20.849 29.7356 +97.6525 21.52 30.6926 +97.3217 22.0084 31.3892 +96.9834 22.4951 32.0834 +97.4693 23.1778 33.0572 +97.2053 23.6877 33.7843 +96.9332 24.1967 34.5103 +97.3839 24.8915 35.5012 +97.0019 25.3784 36.1957 +96.6124 25.8634 36.8875 +97.1182 26.5936 37.9289 +97.3394 27.2553 38.8726 +96.9214 27.7419 39.5666 +97.1197 28.4089 40.5179 +96.7729 28.9209 41.2481 +97.1242 29.6472 42.2839 +96.582 30.1052 42.9372 +96.9079 30.8384 43.9829 +96.4354 31.3227 44.6737 +96.735 32.063 45.7295 +96.244 32.5464 46.4189 +96.4313 33.2639 47.4423 +96.6041 33.9857 48.4717 +96.6775 34.6813 49.4638 +96.1466 35.1643 50.1528 +96.4471 35.9573 51.2838 +96.3972 36.6292 52.2421 +96.0026 37.175 53.0204 +95.9283 37.8496 53.9827 +96.0865 38.6251 55.0887 +95.4958 39.1051 55.7732 +96.1921 40.1219 57.2235 +96.3021 40.9096 58.3469 +95.5967 41.356 58.9835 +95.7577 42.1828 60.1628 +95.7433 42.9437 61.248 +95.7912 43.7433 62.3885 +95.1227 44.2215 63.0705 +95.6814 45.2807 64.5811 +95.679 46.0904 65.736 +95.6591 46.9036 66.8958 +95.6217 47.72 68.0602 +95.6416 48.5776 69.2834 +96.0886 49.6695 70.8407 +95.33 50.149 71.5245 +95.8073 51.2903 73.1523 +95.7494 52.1635 74.3977 +95.5283 52.9602 75.534 +95.3616 53.799 76.7303 +95.2473 54.6806 77.9877 +95.6741 55.8928 79.7165 +94.8209 56.3699 80.3971 +95.1994 57.5922 82.1403 +94.9342 58.4448 83.3562 +95.3258 59.7227 85.1789 +94.8827 60.4966 86.2826 +95.2185 61.7865 88.1224 +94.8661 62.6511 89.3555 +94.8194 63.735 90.9014 +94.2969 64.5158 92.015 +94.4576 65.7828 93.822 +94.461 66.9677 95.512 +94.56 68.2468 97.3363 +94.0731 69.1251 98.589 +94.0536 70.3681 100.362 +93.8831 71.5243 102.011 +93.863 72.8229 103.863 +93.7517 74.0796 105.655 +93.4351 75.2008 107.254 +93.5503 76.7009 109.394 +93.457 78.0655 111.34 +93.3293 79.4347 113.293 +93.0566 80.7132 115.116 +93.3511 82.5244 117.7 +93.3289 84.1026 119.95 +93.0008 85.4431 121.862 +92.9525 87.081 124.198 +92.7069 88.5765 126.331 +91.7122 89.3837 127.483 +96.85 96.3032 137.351 +114.882 116.571 166.259 +114.754 118.849 169.508 +114.948 121.539 173.344 +114.786 123.935 176.762 +114.652 126.441 180.335 +114.587 129.107 184.138 +114.584 131.937 188.174 +114.24 134.467 191.782 +114.516 137.832 196.582 +114.234 140.638 200.583 +114.082 143.712 204.968 +113.235 146.009 208.244 +111.331 146.992 209.646 +107.959 146.011 208.247 +105.659 146.441 208.86 +102.755 146.007 208.241 +100.568 146.569 209.043 +97.6911 146.103 208.378 +95.4665 146.587 209.068 +92.5849 146.034 208.28 +90.5284 146.763 209.319 +90.28 150.522 214.681 +90.0193 154.453 220.287 +89.3677 157.901 225.205 +89.1593 162.34 231.535 +88.9102 166.953 238.114 +88.7548 172.015 245.335 +86.8533 173.889 248.007 +84.5809 175.091 249.722 +86.0056 184.27 262.813 +81.2984 180.47 257.394 +85.1323 196.022 279.574 +81.7059 195.38 278.658 +78.8004 195.95 279.472 +75.2128 194.768 277.786 +72.6236 196.148 279.754 +69.081 194.929 278.016 +66.3634 196 279.544 +62.853 194.689 277.673 +60.2906 196.296 279.965 +56.7929 194.836 277.882 +53.9542 195.566 278.925 +50.6986 194.75 277.76 +47.8755 195.565 278.923 +44.5616 194.318 277.144 +41.8134 195.503 278.834 +38.5344 194.164 276.925 +35.7696 195.378 278.655 +32.6355 194.578 277.515 +29.7375 195.135 278.309 +26.5898 193.96 276.633 +23.8358 195.689 279.1 +20.7382 194.655 277.624 +17.878 195.841 279.316 +14.7739 194.26 277.061 +11.8833 195.359 278.629 +8.85566 194.148 276.902 +5.93207 195.104 278.265 +2.94521 193.748 276.331 +2.08244e-14 195.248 278.471 +-2.94695 193.863 276.495 +-5.93731 195.276 278.51 +-8.83472 193.689 276.247 +-11.8728 195.187 278.383 +-14.7259 193.629 276.161 +-17.8047 195.038 278.171 +-20.6161 193.509 275.99 +-23.7242 194.773 277.793 +-26.5741 193.845 276.47 +-29.6678 194.677 277.656 +-32.4534 193.492 275.966 +-35.5919 194.407 277.271 +-38.3532 193.252 275.623 +-41.594 194.477 277.371 +-44.3136 193.237 275.602 +-47.625 194.542 277.464 +-50.1813 192.763 274.926 +-53.5319 194.035 276.741 +-56.1822 192.741 274.895 +-59.5787 193.978 276.66 +-62.197 192.656 274.774 +-65.6574 193.915 276.57 +-68.2237 192.51 274.565 +-71.7087 193.677 276.23 +-74.2821 192.358 274.348 +-77.8106 193.489 275.961 +-80.5387 192.589 274.678 +-84.0921 193.627 276.158 +-86.6064 192.253 274.199 +-90.4314 193.752 276.337 +-92.9188 192.351 274.339 +-96.5558 193.314 275.712 +-99.235 192.327 274.305 +-102.944 193.305 275.699 +-105.638 192.344 274.329 +-109.732 193.882 276.522 +-112.358 192.78 274.951 +-116.13 193.621 276.151 +-118.468 192.058 273.921 +-122.648 193.454 275.911 +-125.339 192.455 274.488 +-129.156 193.16 275.492 +-131.721 191.971 273.797 +-137.181 194.924 278.008 +-140.368 194.547 277.471 +-145.196 196.374 280.076 +-146.261 193.112 275.423 +-146.1 188.386 268.683 +-146.304 184.303 262.86 +-151.593 186.633 266.183 +-112.923 135.915 193.847 +-113.363 133.435 190.31 +-114.36 131.68 187.808 +-115.904 130.591 186.254 +-117.376 129.445 184.619 +-119.011 128.497 183.268 +-121.675 128.653 183.49 +-123.723 128.139 182.757 +-128.572 130.462 186.07 +-507.2 504.337 719.305 +-511.903 498.907 711.562 +-514.781 491.846 701.491 +-519.102 486.311 693.597 +-521.97 479.554 683.959 +-526.93 474.839 677.234 +-529.335 467.944 667.4 +-534.109 463.263 660.725 +-536.881 456.953 651.724 +-541.484 452.306 645.097 +-544.84 446.708 637.112 +-1902.67 1531.36 2184.09 +-167.401 132.275 188.656 +-169.703 131.662 187.782 +-575.756 438.637 625.602 +-580.454 434.278 619.385 +-583.339 428.639 611.342 +-588.339 424.622 605.613 +-590.617 418.714 597.186 +-595.369 414.632 591.365 +-584.101 399.628 569.965 +-589.114 395.987 564.773 +-591.831 390.855 557.453 +-596.689 387.187 552.222 +-600.277 382.732 545.868 +-605.261 379.203 540.834 +-608.002 374.308 533.854 +-613.668 371.248 529.489 +-616.301 366.384 522.551 +-621.216 362.914 517.602 +-623.527 357.961 510.539 +-629.158 354.944 506.236 +-632.587 350.702 500.186 +-637.677 347.401 495.478 +-141.809 75.9172 108.276 +-143.474 75.4757 107.647 +-143.204 74.0239 105.576 +-143.35 72.8091 103.843 +-143.017 71.3727 101.795 +-142.728 69.9823 99.8115 +-143.25 69.0063 98.4196 +-148.846 70.4404 100.465 +-150.3 69.8732 99.6559 +-700.669 319.962 456.343 +-705.742 316.546 451.47 +-709.893 312.719 446.012 +-708.629 306.559 437.226 +-703.857 299.002 426.449 +-384.607 160.42 228.797 +-706.082 289.137 412.379 +-136.553 54.8918 78.2889 +-136.063 53.6854 76.5682 +-386.58 149.695 213.502 +-729.4 277.159 395.295 +-732.998 273.276 389.757 +-739.486 270.457 385.736 +-743.569 266.742 380.438 +-750.579 264.056 376.607 +-755.079 260.463 371.483 +-761.336 257.457 367.196 +-765.566 253.748 361.906 +-773.05 251.091 358.116 +-777.187 247.32 352.737 +-784.081 244.403 348.577 +-788.649 240.735 343.345 +-796.181 237.941 339.361 +-801.015 234.308 334.179 +-807.947 231.259 329.831 +-813.498 227.782 324.872 +-820.631 224.711 320.492 +-811.417 217.219 309.806 +-807.682 211.313 301.382 +-2993.23 765.074 1091.18 +-3004.75 750.05 1069.75 +-408.244 99.4837 141.888 +-409.371 97.3469 138.84 +-410.186 95.1418 135.695 +-391.706 88.5805 126.337 +-387.156 85.3185 121.685 +-381.413 81.8677 116.763 +-381.421 79.6988 113.67 +-382.147 77.6889 110.803 +-381.517 75.4166 107.562 +-380.278 73.0468 104.182 +-381.088 71.0857 101.385 +-381.582 69.07 98.5104 +-382.235 67.0888 95.6848 +-380.556 64.715 92.2991 +-382.774 63.0117 89.8697 +-382.079 60.8307 86.7591 +-382.7 58.8696 83.9622 +-381.644 56.6627 80.8146 +-382.005 54.6791 77.9856 +-383.794 52.8973 75.4442 +-382.343 50.6755 72.2754 +-381.732 48.5841 69.2926 +-382.945 46.7295 66.6475 +-382.269 44.649 63.6802 +-381.657 42.5898 60.7433 +-381.405 40.582 57.8797 +-379.643 38.4305 54.811 +-381.101 36.6123 52.2179 +-380.754 34.6208 49.3776 +-380.87 32.6781 46.6068 +-380.56 30.7048 43.7924 +-379.327 28.6697 40.8899 +-381.336 26.8802 38.3376 +-380.439 24.8843 35.4909 +-380.405 22.9534 32.737 +-380.938 21.0578 30.0334 +-378.853 19.0284 27.1391 +-380.025 17.1703 24.4889 +-380.172 15.2618 21.7669 +-380.09 13.3461 19.0347 +-380.278 11.4413 16.3181 +-380.038 9.52578 13.586 +-379.269 7.60349 10.8444 +-378.87 5.69559 8.12328 +-147.378 1.47684 2.10632 +-145.794 0.730433 1.04177 +96.9 0 0 +96.8963 0.491678 0.687963 +96.8852 0.983321 1.37588 +97.7665 1.48859 2.08285 +96.841 1.96634 2.75133 +96.9077 2.46018 3.44232 +97.666 2.97615 4.16427 +96.8191 3.4432 4.81778 +96.664 3.93028 5.49931 +96.701 4.42518 6.19177 +97.5275 4.96129 6.9419 +97.3497 5.45038 7.62625 +97.2642 5.94415 8.31714 +97.2707 6.44403 9.01657 +97.2695 6.94443 9.71674 +97.1616 7.43773 10.407 +96.8482 7.91423 11.0737 +96.7258 8.40539 11.7609 +96.3984 8.87764 12.4217 +97.0505 9.44323 13.2131 +96.9051 9.93531 13.9016 +96.654 10.4161 14.5743 +96.494 10.906 15.2599 +96.4246 11.4069 15.9606 +96.2497 11.8957 16.6446 +96.1652 12.3962 17.3449 +96.7549 12.9883 18.1734 +96.5563 13.4788 18.8597 +96.3504 13.9682 19.5444 +97.0084 14.5876 20.4112 +96.7858 15.0793 21.0991 +96.5558 15.5698 21.7854 +96.3184 16.0591 22.4702 +96.8408 16.6793 23.3379 +96.5868 17.1701 24.0246 +97.1838 17.8169 24.9296 +96.8176 18.2913 25.5935 +96.6342 18.8003 26.3057 +96.3483 19.29 26.9908 +96.8093 19.9334 27.8911 +97.4461 20.6227 28.8556 +97.1329 21.1164 29.5463 +97.5592 21.7752 30.4681 +97.3217 22.2906 31.1894 +96.9834 22.7836 31.8791 +97.4693 23.4751 32.8467 +97.1133 23.9688 33.5374 +96.9332 24.507 34.2906 +96.5618 24.9979 34.9775 +97.0019 25.7039 35.9653 +96.703 26.2198 36.687 +97.1182 26.9347 37.6874 +97.3394 27.6049 38.6252 +96.8319 28.0718 39.2785 +96.496 28.5885 40.0014 +96.7729 29.2918 40.9855 +97.1242 30.0274 42.0148 +96.582 30.4913 42.6638 +96.9079 31.2339 43.7029 +96.4354 31.7244 44.3893 +96.735 32.4742 45.4384 +96.9333 33.1999 46.4538 +96.4313 33.6905 47.1402 +96.6041 34.4216 48.1631 +96.8471 35.1878 49.2352 +96.1466 35.6154 49.8335 +96.3632 36.3868 50.913 +96.3972 37.0991 51.9095 +95.8367 37.5868 52.5919 +96.0931 38.401 53.7312 +96.0865 39.1205 54.738 +96.147 39.8767 55.7961 +96.1921 40.6365 56.8592 +95.659 41.1576 57.5883 +96.3953 42.2363 59.0976 +95.7577 42.7238 59.7798 +95.7433 43.4945 60.8581 +95.7912 44.3044 61.9913 +95.7444 45.0815 63.0787 +95.6814 45.8615 64.17 +95.679 46.6816 65.3175 +96.2674 47.8072 66.8925 +95.6217 48.3321 67.6269 +96.1659 49.4704 69.2196 +96.0886 50.3066 70.3897 +95.33 50.7922 71.0692 +95.8805 51.9878 72.7421 +95.6769 52.7926 73.8681 +94.8809 53.276 74.5445 +95.3616 54.489 76.2418 +95.2473 55.382 77.4912 +95.6741 56.6096 79.209 +95.4461 57.4694 80.412 +95.1994 58.3309 81.6174 +94.866 59.1519 82.7662 +95.2582 60.4457 84.5764 +94.9496 61.3155 85.7935 +95.2185 62.579 87.5614 +95.2598 63.7181 89.1552 +94.8194 64.5525 90.3227 +94.2969 65.3433 91.4292 +94.4576 66.6265 93.2248 +94.5239 67.8714 94.9666 +94.6222 69.1675 96.7801 +94.0115 69.9658 97.8972 +93.9928 71.2247 99.6586 +93.823 72.3951 101.296 +94.2199 74.0372 103.594 +93.693 74.9826 104.917 +93.5512 76.2601 106.704 +93.6077 77.7323 108.764 +93.457 79.0667 110.631 +93.3852 80.5018 112.639 +93.1118 81.7973 114.452 +93.2967 83.5341 116.882 +93.114 84.9854 118.913 +92.9478 86.4902 121.018 +93.0047 88.2473 123.477 +92.7069 89.7126 125.527 +92.2705 91.0813 127.442 +94.9 95.5748 133.73 +114.882 118.067 165.2 +114.657 120.273 168.287 +114.518 122.638 171.597 +114.833 125.576 175.708 +114.929 128.372 179.62 +114.542 130.712 182.893 +114.584 133.629 186.976 +114.196 136.139 190.488 +114.473 139.547 195.257 +114.191 142.389 199.232 +114.455 146.032 204.33 +113.642 148.413 207.662 +111.61 149.251 208.834 +108.662 148.848 208.27 +106.386 149.34 208.959 +103.466 148.903 208.348 +100.898 148.936 208.393 +98.3362 148.953 208.418 +95.8868 149.12 208.651 +93.3031 149.055 208.559 +90.7955 149.084 208.6 +89.7917 151.628 212.16 +89.7338 155.938 218.191 +89.4604 160.092 224.004 +89.0991 164.311 229.906 +89.0564 169.372 236.987 +88.2436 173.218 242.369 +86.6328 175.672 245.803 +84.2068 176.553 247.035 +87.9208 190.79 266.956 +85.9054 193.142 270.247 +84.4307 196.9 275.505 +81.0522 196.303 274.67 +77.968 196.367 274.759 +74.6284 195.733 273.873 +71.8751 196.616 275.108 +68.5427 195.891 274.093 +65.6383 196.346 274.729 +62.5432 196.214 274.545 +59.5787 196.466 274.899 +56.3307 195.729 273.866 +53.3911 196.007 274.256 +50.3143 195.753 273.9 +47.3745 196.001 274.247 +44.3267 195.773 273.928 +41.3868 195.99 274.232 +38.3306 195.615 273.707 +35.4142 195.918 274.131 +32.3863 195.569 273.642 +29.4325 195.61 273.7 +26.4643 195.52 273.574 +23.5707 195.995 274.239 +20.5795 195.643 273.746 +17.6372 195.681 273.8 +14.6866 195.59 273.672 +11.7611 195.831 274.009 +8.80593 195.534 273.594 +5.87273 195.63 273.728 +2.92252 194.722 272.457 +2.05673e-14 195.311 273.281 +-2.92426 194.838 272.62 +-5.86401 195.339 273.321 +-8.79284 195.244 273.188 +-11.7262 195.249 273.196 +-14.6169 194.66 272.371 +-17.5901 195.159 273.069 +-20.5062 194.946 272.771 +-23.494 195.357 273.346 +-26.3623 194.766 272.52 +-29.3628 195.147 273.052 +-32.2233 194.585 272.266 +-35.2365 194.934 272.755 +-38.1608 194.748 272.494 +-41.1675 194.951 272.778 +-43.9873 194.274 271.831 +-47.0127 194.504 272.153 +-49.93 194.258 271.809 +-52.9844 194.514 272.167 +-55.8851 194.18 271.7 +-58.9536 194.405 272.014 +-61.869 194.098 271.585 +-64.9705 194.348 271.934 +-67.8648 193.953 271.382 +-70.9603 194.114 271.607 +-73.8925 193.803 271.172 +-77.0007 193.931 271.351 +-80.0951 193.985 271.426 +-83.2453 194.135 271.637 +-86.1558 193.706 271.036 +-89.2667 193.71 271.042 +-92.4378 193.81 271.182 +-95.8115 194.284 271.845 +-98.7521 193.846 271.233 +-102.184 194.339 271.922 +-105.097 193.813 271.185 +-108.65 194.433 272.054 +-111.564 193.875 271.272 +-114.958 194.126 271.624 +-117.867 193.535 270.797 +-121.451 194.023 271.479 +-124.394 193.453 270.683 +-127.937 193.792 271.156 +-131.171 193.622 270.919 +-134.858 194.081 271.561 +-139.679 196.076 274.352 +-143.711 196.858 275.447 +-146.062 195.322 273.297 +-146.181 190.908 267.121 +-145.848 186.085 260.372 +-123.151 153.561 214.865 +-113.052 137.816 192.834 +-113.538 135.356 189.391 +-114.717 133.786 187.195 +-115.858 132.214 184.996 +-117.838 131.621 184.166 +-119.668 130.864 183.107 +-122.057 130.712 182.893 +-124.499 130.596 182.731 +-128.966 132.54 185.452 +-508.9 512.518 717.122 +-512.055 505.457 707.243 +-515.553 498.902 698.07 +-519.311 492.747 689.459 +-523.454 487.085 681.537 +-527.413 481.37 673.54 +-530.315 474.824 664.38 +-534.441 469.496 656.926 +-538.279 464.019 649.262 +-542.504 458.97 642.197 +-546.217 453.58 634.655 +-552.365 450.271 630.025 +-1925.88 1541.28 2156.59 +-576.681 453.15 634.054 +-576.719 445.006 622.658 +-581.124 440.356 616.152 +-584.694 435.145 608.861 +-588.276 430.023 601.695 +-592.19 425.214 594.965 +-587.927 414.701 580.255 +-585.58 405.777 567.769 +-589.699 401.465 561.735 +-593.077 396.701 555.07 +-597.352 392.589 549.316 +-601.348 388.332 543.36 +-605.667 384.323 537.751 +-609.229 379.875 531.526 +-613.462 375.883 525.941 +-617.829 372.003 520.512 +-622.057 368.066 515.004 +-625.012 363.416 508.497 +-630.228 360.108 503.868 +-633.882 355.927 498.019 +-637.967 352.017 492.547 +-141.809 76.8909 107.587 +-143.179 76.2868 106.742 +-144.021 75.4018 105.503 +-142.601 73.358 102.644 +-143.017 72.2881 101.147 +-142.652 70.8421 99.1232 +-144.17 70.3403 98.4211 +-149.155 71.4921 100.033 +-677.749 319.12 446.517 +-703.408 325.333 455.21 +-704.324 319.962 447.695 +-712.273 317.792 444.658 +-714.06 312.871 437.773 +-720.417 309.962 433.703 +-389.137 164.392 230.019 +-704.617 292.238 408.903 +-134.996 54.9622 76.9039 +-136.805 54.6703 76.4955 +-724.745 284.242 397.715 +-729.733 280.842 392.959 +-735.346 277.668 388.517 +-739.907 274.082 383.499 +-745.773 270.964 379.137 +-750.579 267.443 374.21 +-755.85 264.074 369.496 +-761.68 260.878 365.024 +-767.558 257.671 360.538 +-773.398 254.426 355.996 +-778.761 250.999 351.201 +-784.959 247.815 346.746 +-790.856 244.505 342.115 +-796.979 241.234 337.538 +-803.064 237.921 332.902 +-809.647 234.719 328.422 +-815.656 231.315 323.66 +-822.255 228.044 319.082 +-829.09 224.797 314.539 +-411.302 108.988 152.498 +-414.202 107.228 150.035 +-412.769 104.358 146.019 +-409.533 101.078 141.429 +-410.572 98.885 138.361 +-406.941 95.5998 133.765 +-394.776 90.4196 126.516 +-386.502 86.2669 120.706 +-382.631 83.1829 116.391 +-383.583 81.1786 113.586 +-383.844 79.0348 110.587 +-382.368 76.5543 107.116 +-381.7 74.2604 103.906 +-382.325 72.2312 101.067 +-381.201 69.8862 97.7857 +-379.94 67.5412 94.5045 +-383.624 66.0736 92.4511 +-379.794 63.3227 88.602 +-381.405 61.5022 86.0547 +-381.444 59.4293 83.1543 +-382.128 57.4622 80.4019 +-381.617 55.3242 77.4103 +-382.628 53.4129 74.736 +-381.466 51.2077 71.6505 +-379.877 48.9682 68.5169 +-380.206 46.9904 65.7496 +-382.563 45.2565 63.3235 +-379.792 42.9253 60.0617 +-381.405 41.1025 57.5113 +-382.105 39.1758 54.8153 +-381.693 37.1395 51.9661 +-382.63 35.2377 49.3051 +-380.079 33.0285 46.2139 +-380.065 31.0582 43.457 +-380.12 29.0981 40.7145 +-380.939 27.1967 38.0539 +-380.439 25.2034 35.265 +-379.907 23.2174 32.4861 +-380.241 21.2888 29.7877 +-380.148 19.3384 27.0585 +-379.726 17.3768 24.3139 +-379.872 15.4453 21.6113 +-378.692 13.4675 18.844 +-379.579 11.5668 16.1844 +-378.14 9.59975 13.4321 +-379.169 7.69898 10.7725 +-380.17 5.78843 8.09925 +-146.578 1.48766 2.08156 +-145.494 0.738278 1.03301 +97 0 0 +96.8963 0.497865 0.6835 +96.8852 0.995693 1.36695 +96.8668 1.49345 2.05029 +96.841 1.99108 2.73348 +96.9077 2.49113 3.41998 +96.8671 2.98895 4.10341 +97.7174 3.51887 4.83093 +96.7637 3.98384 5.46927 +96.701 4.48085 6.15159 +97.5275 5.02371 6.89686 +96.5534 5.47382 7.5148 +97.3637 6.02506 8.27158 +97.2707 6.52511 8.95807 +97.2695 7.0318 9.65369 +97.0625 7.5236 10.3289 +96.9472 8.022 11.0131 +97.6159 8.58945 11.7921 +96.3984 8.98935 12.3411 +97.0505 9.56204 13.1274 +96.9051 10.0603 13.8114 +97.5389 10.6437 14.6123 +96.494 11.0433 15.1609 +97.2085 11.6443 15.986 +96.2497 12.0454 16.5366 +96.0675 12.5395 17.2149 +96.8524 13.165 18.0737 +96.5563 13.6483 18.7373 +97.2236 14.2721 19.5937 +97.0084 14.7711 20.2787 +96.7858 15.269 20.9622 +96.5558 15.7657 21.6441 +96.3184 16.2612 22.3244 +96.8408 16.8892 23.1865 +96.5868 17.3861 23.8687 +96.4208 17.8994 24.5735 +96.9127 18.5397 25.4524 +96.6342 19.0369 26.135 +97.1048 19.686 27.0262 +97.8462 20.4004 28.007 +97.5401 20.9024 28.696 +97.1329 21.3821 29.3546 +97.6525 22.0702 30.2994 +97.3217 22.5711 30.987 +96.8907 23.0482 31.642 +97.4693 23.7705 32.6336 +97.2053 24.2934 33.3514 +96.8415 24.7919 34.0358 +96.5618 25.3125 34.7505 +97.0019 26.0274 35.732 +96.703 26.5497 36.449 +97.0279 27.2482 37.4081 +96.6204 27.7457 38.0911 +96.9214 28.4513 39.0597 +97.2979 29.1888 40.0721 +96.7729 29.6604 40.7196 +97.2125 30.4328 41.7801 +96.6699 30.9031 42.4257 +96.9079 31.6269 43.4194 +96.5224 32.1526 44.1411 +95.9556 32.6179 44.7798 +96.244 33.3786 45.8242 +96.4313 34.1144 46.8344 +96.6041 34.8547 47.8507 +96.8471 35.6305 48.9157 +96.1466 36.0635 49.5102 +96.3632 36.8447 50.5826 +96.3972 37.5658 51.5727 +96.6658 38.3889 52.7027 +96.0931 38.8842 53.3826 +96.0865 39.6128 54.3828 +96.147 40.3785 55.434 +96.273 41.1824 56.5377 +96.2217 41.9206 57.5512 +95.5967 42.4134 58.2278 +95.6784 43.2255 59.3427 +95.6645 44.0055 60.4134 +95.7912 44.8618 61.5891 +95.8221 45.6858 62.7202 +95.6814 46.4385 63.7536 +95.6023 47.2311 64.8418 +96.2674 48.4088 66.4585 +95.6972 48.9788 67.2411 +95.5667 49.7807 68.342 +96.0143 50.9002 69.8789 +95.33 51.4313 70.6081 +95.8805 52.642 72.2701 +95.7494 53.4973 73.4444 +95.5283 54.3144 74.5662 +95.4329 55.2159 75.8038 +95.8837 56.4535 77.5028 +95.1134 56.986 78.2339 +94.8209 57.8113 79.3669 +95.1994 59.0649 81.0879 +94.866 59.8962 82.2292 +95.2582 61.2062 84.0277 +94.3474 61.6931 84.6961 +95.2185 63.3664 86.9933 +94.8661 64.2531 88.2106 +94.8194 65.3647 89.7367 +94.8755 66.5711 91.3929 +94.394 67.4195 92.5577 +94.5869 68.7713 94.4135 +94.4977 69.9459 96.0261 +94.0731 70.8927 97.3258 +93.9928 72.1208 99.0119 +93.8831 73.3531 100.704 +93.7441 74.5901 102.402 +93.7517 75.9738 104.301 +93.6093 77.2673 106.077 +93.665 78.7586 108.125 +93.457 80.0616 109.913 +93.3293 81.4658 111.841 +93.1118 82.8265 113.709 +93.3511 84.6346 116.192 +93.2215 86.1536 118.277 +92.9478 87.5784 120.233 +92.9525 89.3076 122.607 +92.9644 91.094 125.059 +91.8644 91.8217 126.058 +94.75 96.6243 132.652 +114.882 119.552 164.129 +115.094 122.249 167.831 +114.948 124.647 171.123 +114.833 127.156 174.568 +114.514 129.517 177.809 +115.041 132.933 182.499 +114.584 135.311 185.763 +114.59 138.329 189.906 +114.473 141.303 193.99 +114.234 144.234 198.013 +114.082 147.387 202.342 +113.886 150.603 206.758 +111.371 150.805 207.034 +108.623 150.666 206.844 +105.965 150.62 206.781 +103.504 150.832 207.071 +100.898 150.81 207.041 +98.3003 150.773 206.99 +95.4665 150.335 206.389 +93.2005 150.764 206.978 +90.6953 150.794 207.019 +89.6289 153.258 210.401 +89.6703 157.788 216.621 +89.584 162.33 222.857 +89.1893 166.547 228.646 +88.9979 171.39 235.295 +88.556 176.019 241.649 +86.7431 178.108 244.518 +84.4473 179.285 246.133 +87.8949 193.133 265.145 +83.026 189.018 259.495 +84.213 198.863 273.012 +81.309 199.402 273.752 +77.9905 198.895 273.055 +75.018 199.23 273.516 +71.688 198.572 272.611 +68.7221 198.875 273.028 +65.6383 198.816 272.947 +62.689 199.146 273.399 +59.4398 198.475 272.478 +56.4958 198.772 272.887 +53.3754 198.415 272.396 +50.4326 198.682 272.763 +47.3745 198.467 272.468 +44.4311 198.703 272.792 +41.3868 198.456 272.453 +38.4438 198.661 272.734 +35.4038 198.324 272.272 +32.463 198.499 272.511 +29.4325 198.071 271.924 +26.527 198.45 272.444 +23.5847 198.578 272.62 +20.6344 198.633 272.696 +17.6425 198.202 272.105 +14.7303 198.639 272.704 +11.7611 198.295 272.232 +8.82948 198.524 272.546 +5.87273 198.091 271.952 +2.93735 198.172 272.063 +2.05673e-14 197.768 271.508 +-2.93212 197.819 271.578 +-5.86401 197.797 271.548 +-8.8164 198.23 272.143 +-11.7227 197.647 271.342 +-14.6561 197.638 271.33 +-17.5849 197.556 271.217 +-20.5611 197.928 271.728 +-23.4382 197.345 270.928 +-26.4329 197.745 271.477 +-29.2843 197.074 270.555 +-32.3767 197.971 271.787 +-35.2575 197.504 271.146 +-38.2514 197.667 271.369 +-41.1675 197.404 271.009 +-44.2092 197.71 271.429 +-47.0127 196.951 270.387 +-50.0778 197.285 270.844 +-52.9844 196.961 270.401 +-56.0502 197.205 270.735 +-58.9536 196.851 270.249 +-62.0512 197.119 270.617 +-64.9705 196.793 270.17 +-68.0443 196.913 270.334 +-70.7731 196.038 269.132 +-74.1089 196.817 270.202 +-77.0007 196.371 269.59 +-80.3285 196.998 270.451 +-83.2453 196.578 269.875 +-86.3561 196.599 269.903 +-89.2408 196.091 269.205 +-92.6783 196.759 270.123 +-95.5635 196.219 269.381 +-98.9793 196.737 270.093 +-101.95 196.333 269.538 +-105.397 196.813 270.197 +-108.372 196.376 269.597 +-111.818 196.761 270.125 +-114.991 196.624 269.938 +-118.201 196.525 269.802 +-121.451 196.464 269.718 +-124.954 196.77 270.138 +-127.902 196.175 269.322 +-131.794 196.99 270.44 +-134.858 196.523 269.799 +-140.062 199.087 273.319 +-143.672 199.281 273.585 +-146.022 197.725 271.449 +-146.181 193.31 265.388 +-146.138 188.801 259.198 +-123.912 156.453 214.789 +-113.052 139.55 191.583 +-113.626 137.164 188.307 +-114.717 135.469 185.98 +-116.267 134.35 184.444 +-117.884 133.329 183.043 +-119.668 132.51 181.918 +-121.675 131.942 181.138 +-124.499 132.239 181.546 +-129.212 134.464 184.6 +-508.35 518.405 711.699 +-511.599 511.36 702.027 +-515.708 505.331 693.75 +-519.311 498.947 684.985 +-523.454 493.214 677.115 +-527.091 487.129 668.761 +-530.315 480.798 660.069 +-533.944 474.962 652.057 +-538.279 469.858 645.05 +-541.994 464.308 637.43 +-545.701 458.853 629.942 +-551.377 455.121 624.819 +-166.578 134.99 185.323 +-170.119 135.36 185.831 +-1971.85 1540.65 2115.1 +-580.271 445.242 611.256 +-584.694 440.62 604.911 +-588.276 435.434 597.791 +-592.442 430.747 591.357 +-592.952 423.507 581.417 +-585.901 411.109 564.396 +-589.699 406.516 558.09 +-593.077 401.693 551.469 +-597.352 397.528 545.751 +-601.348 393.219 539.835 +-605.464 389.029 534.083 +-609.229 384.654 528.077 +-613.462 380.613 522.529 +-617.621 376.557 516.961 +-621.426 372.32 511.143 +-626.072 368.613 506.054 +-629.8 364.392 500.259 +-633.882 360.406 494.787 +-637.314 356.081 488.85 +-141.809 77.8584 106.889 +-143.327 77.3262 106.158 +-144.021 76.3506 104.819 +-143.65 74.8274 102.728 +-143.017 73.1977 100.49 +-142.576 71.6958 98.4283 +-144.093 71.1871 97.73 +-148.306 71.9795 98.8179 +-677.36 322.95 443.366 +-701.686 328.62 451.15 +-704.324 323.987 444.79 +-711.4 321.396 441.232 +-714.3 316.913 435.078 +-709.323 309.029 424.254 +-2650.74 1133.9 1556.69 +-705.675 296.359 406.86 +-134.013 55.2485 75.8486 +-136.97 55.4249 76.0907 +-723.75 287.423 394.592 +-729.4 284.246 390.23 +-734.592 280.872 385.599 +-740.16 277.625 381.141 +-745.095 274.124 376.334 +-750.323 270.716 371.656 +-755.85 267.397 367.098 +-761.336 264.041 362.491 +-767.558 260.914 358.198 +-773.398 257.627 353.686 +-778.499 254.072 348.805 +-784.959 250.933 344.496 +-790.326 247.415 339.667 +-796.447 244.107 335.125 +-803.064 240.914 330.742 +-808.752 237.409 325.93 +-2944.9 845.663 1160.98 +-821.894 230.812 316.872 +-828.456 227.451 312.259 +-809.775 217.277 298.292 +-2993.23 784.637 1077.2 +-413.319 105.811 145.264 +-834.99 208.679 286.487 +-407.154 99.2955 136.319 +-408.61 97.1995 133.441 +-392.543 91.0398 124.985 +-386.876 87.4371 120.039 +-382.631 84.2295 115.635 +-382.455 81.958 112.517 +-382.807 79.8131 109.572 +-382.368 77.5175 106.421 +-381.226 75.1012 103.104 +-381.374 72.9581 100.161 +-382.44 70.9957 97.4673 +-380.801 68.5458 94.1039 +-381.418 66.5199 91.3226 +-381.044 64.3308 88.3173 +-382.85 62.5121 85.8205 +-383.279 60.4661 83.0116 +-382.128 58.1852 79.8803 +-382.102 56.0915 77.0058 +-381.558 53.9337 74.0435 +-381.563 51.8653 71.2038 +-380.755 49.6989 68.2298 +-382.456 47.8632 65.7096 +-381.975 45.7555 62.8159 +-379.89 43.4766 59.6874 +-379.93 41.4587 56.9171 +-381.022 39.5562 54.3053 +-379.917 37.4318 51.3887 +-379.865 35.4232 48.6311 +-380.87 33.5136 46.0096 +-381.55 31.5719 43.3438 +-380.616 29.5027 40.5031 +-379.153 27.4097 37.6297 +-379.544 25.4606 34.9538 +-379.808 23.5034 32.2669 +-379.345 21.5059 29.5246 +-380.148 19.5817 26.8829 +-379.626 17.5908 24.1498 +-380.67 15.6725 21.5162 +-378.692 13.637 18.7217 +-379.779 11.7185 16.0879 +-379.538 9.75651 13.3943 +-379.868 7.81022 10.7223 +-380.769 5.87051 8.0594 +-145.478 1.49508 2.05254 +-145.794 0.74911 1.02842 +97 0 0 +96.8963 0.504011 0.67898 +96.8852 1.00798 1.35791 +96.9668 1.51344 2.03883 +96.841 2.01566 2.7154 +96.9077 2.52189 3.39737 +96.8671 3.02584 4.07628 +96.8191 3.52957 4.75487 +96.7637 4.03302 5.4331 +97.5982 4.57826 6.16762 +97.4278 5.08053 6.84426 +97.3497 5.58709 7.52668 +97.2642 6.09324 8.20854 +97.2707 6.60566 8.89884 +97.2695 7.11861 9.58986 +97.0625 7.61648 10.2606 +96.9472 8.12102 10.9403 +96.7258 8.61621 11.6074 +96.5959 9.11897 12.2847 +97.0505 9.68008 13.0406 +96.9051 10.1845 13.7201 +96.654 10.6773 14.384 +96.494 11.1796 15.0606 +96.3266 11.6811 15.7362 +96.2497 12.1941 16.4273 +96.9462 12.8104 17.2575 +96.7549 13.3141 17.9361 +96.6536 13.8308 18.6322 +96.3504 14.3185 19.2892 +97.0084 14.9535 20.1446 +96.7858 15.4575 20.8236 +96.4594 15.9444 21.4796 +96.2223 16.4455 22.1546 +96.8408 17.0977 23.0332 +96.5868 17.6007 23.7109 +97.1838 18.2638 24.6041 +96.8176 18.7501 25.2593 +96.6342 19.2719 25.9622 +97.1993 19.9485 26.8736 +96.8093 20.4334 27.5269 +97.4461 21.14 28.4788 +97.1329 21.646 29.1605 +96.8123 22.1505 29.8401 +97.3217 22.8497 30.7821 +96.9834 23.3551 31.4629 +96.6378 23.8586 32.1413 +97.2053 24.5933 33.1309 +97.7586 25.3356 34.131 +97.3839 25.8431 34.8146 +97.0019 26.3487 35.4957 +96.703 26.8774 36.208 +97.1182 27.6103 37.1953 +97.3394 28.2973 38.1208 +96.9214 28.8025 38.8014 +97.2979 29.5491 39.8072 +96.7729 30.0265 40.4503 +97.1242 30.7806 41.4662 +96.6699 31.2846 42.1451 +96.9079 32.0173 43.1323 +96.4354 32.5202 43.8097 +96.735 33.2888 44.8451 +96.244 33.7906 45.5212 +96.4313 34.5355 46.5247 +96.6041 35.2849 47.5343 +96.7623 36.0388 48.5498 +96.1466 36.5087 49.1828 +96.3632 37.2995 50.2482 +96.3972 38.0296 51.2317 +96.6658 38.8628 52.3542 +95.9283 39.2966 52.9386 +96.0046 40.0676 53.9773 +96.2285 40.9115 55.1142 +96.1112 41.6207 56.0695 +96.3021 42.4736 57.2185 +95.5967 42.937 57.8428 +95.7577 43.7954 58.9992 +95.8221 44.6221 60.1128 +95.7912 45.4156 61.1819 +95.7444 46.2122 62.255 +95.6814 47.0118 63.3321 +95.679 47.8525 64.4647 +95.6591 48.6967 65.602 +95.6972 49.5834 66.7965 +96.1659 50.7112 68.3158 +96.0886 51.5684 69.4706 +95.33 52.0662 70.1412 +95.8805 53.2918 71.7923 +95.7494 54.1577 72.9588 +95.6003 55.0263 74.129 +95.4329 55.8975 75.3026 +95.2473 56.7711 76.4794 +95.1134 57.6894 77.7166 +95.4461 58.9108 79.362 +95.1994 59.794 80.5517 +95.548 61.0719 82.2733 +95.2582 61.9618 83.4721 +95.5519 63.2522 85.2105 +94.5559 63.7022 85.8167 +94.8661 65.0463 87.6274 +94.8194 66.1716 89.1434 +94.4255 67.0734 90.3582 +94.4576 68.2977 92.0075 +94.5869 69.6203 93.7893 +94.56 70.8559 95.4538 +93.9499 71.6736 96.5554 +93.9928 73.0111 98.3573 +93.8831 74.2586 100.038 +94.3389 75.9901 102.37 +93.693 76.8633 103.547 +93.5512 78.1728 105.311 +93.6077 79.682 107.344 +93.457 81.0499 109.187 +93.3852 82.5209 111.168 +93.1118 83.8489 112.957 +93.3511 85.6793 115.423 +93.114 87.117 117.36 +92.9478 88.6595 119.438 +93.3705 90.8166 122.344 +92.7069 91.9628 123.888 +91.8137 92.9039 125.156 +94.9 97.972 131.983 +114.882 121.028 163.043 +115.094 123.758 166.722 +114.852 126.081 169.85 +114.833 128.726 173.414 +114.929 131.592 177.274 +114.542 133.99 180.505 +114.628 137.035 184.607 +114.24 139.608 188.073 +114.43 142.994 192.635 +114.191 145.96 196.631 +114.082 149.206 201.004 +113.642 152.136 204.95 +111.251 152.502 205.444 +108.623 152.526 205.476 +106.042 152.59 205.562 +103.579 152.804 205.851 +100.934 152.727 205.747 +98.0853 152.3 205.172 +95.7817 152.693 205.701 +92.9269 152.177 205.006 +90.6619 152.598 205.574 +89.9545 155.713 209.77 +89.7338 159.849 215.342 +89.1823 163.598 220.391 +89.0991 168.432 226.904 +88.764 173.05 233.125 +88.4708 178.02 239.82 +86.7706 180.364 242.978 +84.2068 180.981 243.81 +87.6361 194.942 262.616 +83.2263 191.812 258.401 +84.6485 202.359 272.608 +81.2857 201.806 271.864 +78.1705 201.815 271.876 +75.018 201.69 271.707 +71.8751 201.548 271.516 +68.9215 201.914 272.009 +65.81 201.797 271.851 +62.689 201.604 271.592 +59.5613 201.335 271.23 +56.4793 201.167 271.003 +53.5475 201.512 271.468 +50.4326 201.134 270.959 +47.4859 201.389 271.302 +44.4311 201.156 270.988 +41.4965 201.438 271.369 +38.5344 201.587 271.569 +35.4979 201.306 271.19 +32.463 200.949 270.709 +29.5109 201.051 270.847 +26.4564 200.365 269.922 +23.6405 201.505 271.458 +20.6283 201.026 270.813 +17.6896 201.185 271.027 +14.739 201.209 271.06 +11.7925 201.279 271.153 +8.82948 200.975 270.744 +5.88844 201.073 270.876 +2.93822 200.678 270.345 +2.06224e-14 200.746 270.436 +-2.93124 200.202 269.702 +-5.87797 200.715 270.395 +-8.79284 200.141 269.621 +-11.7542 200.624 270.271 +-14.6561 200.078 269.536 +-17.6268 200.47 270.065 +-20.5123 199.895 269.29 +-23.494 200.257 269.777 +-26.4329 200.186 269.682 +-29.4412 200.576 270.207 +-32.3 199.941 269.351 +-35.3306 200.357 269.912 +-38.2514 200.107 269.575 +-41.2771 200.373 269.934 +-44.0917 199.619 268.918 +-47.1379 199.914 269.315 +-50.0778 199.72 269.054 +-53.1095 199.864 269.247 +-56.0502 199.639 268.944 +-59.1098 199.809 269.174 +-61.8872 199.025 268.117 +-64.9705 199.222 268.383 +-68.0443 199.344 268.547 +-71.1682 199.566 268.846 +-74.0873 199.188 268.337 +-77.2032 199.318 268.512 +-80.1184 198.908 267.96 +-83.2453 199.005 268.09 +-86.3561 199.026 268.118 +-89.5255 199.145 268.279 +-92.6783 199.188 268.337 +-95.8115 199.157 268.296 +-99.0077 199.223 268.384 +-102.184 199.213 268.371 +-105.367 199.185 268.333 +-108.619 199.253 268.425 +-111.786 199.133 268.263 +-115.251 199.502 268.761 +-118.168 198.895 267.942 +-121.725 199.337 268.538 +-124.989 199.254 268.427 +-128.511 199.543 268.815 +-131.464 198.922 267.979 +-135.083 199.281 268.462 +-140.1 201.599 271.585 +-143.75 201.851 271.924 +-146.341 200.603 270.244 +-146.1 195.588 263.487 +-146.138 191.132 257.484 +-127.715 163.247 219.918 +-113.44 141.756 190.968 +-113.494 138.697 186.846 +-114.717 137.141 184.751 +-115.904 135.583 182.652 +-117.792 134.869 181.69 +-119.293 133.725 180.149 +-121.58 133.467 179.8 +-124.548 133.924 180.416 +-128.769 135.657 182.751 +-508.2 524.65 706.784 +-511.903 517.981 697.8 +-515.09 510.956 688.336 +-519.311 505.106 680.456 +-523.083 498.949 672.161 +-527.091 493.143 664.339 +-530.478 486.883 655.907 +-534.275 481.123 648.147 +-538.167 475.559 640.651 +-541.711 469.794 632.885 +-545.873 464.664 625.974 +-551.203 460.594 620.491 +-169.576 139.116 187.411 +-578.108 465.666 627.324 +-1971.85 1559.67 2101.12 +-580.637 451.022 607.597 +-584.324 445.778 600.531 +-588.65 441.089 594.215 +-591.75 435.555 586.76 +-590.726 427.126 575.405 +-585.258 415.727 560.048 +-588.919 410.99 553.667 +-592.684 406.382 547.459 +-596.888 402.123 541.721 +-600.879 397.763 535.848 +-605.261 393.7 530.374 +-609.025 389.272 524.41 +-613.462 385.311 519.074 +-616.996 380.82 513.023 +-621.426 376.916 507.764 +-625.648 372.91 502.368 +-629.586 368.765 496.783 +-633.666 364.731 491.349 +-637.749 360.723 485.95 +-141.883 78.8607 106.237 +-143.327 78.2807 105.456 +-143.799 77.1733 103.964 +-143.5 75.6719 101.942 +-142.867 74.0232 99.7207 +-143.26 72.9289 98.2465 +-143.863 71.9514 96.9296 +-149.387 73.3992 98.88 +-676.739 326.636 440.029 +-702.156 332.899 448.467 +-704.324 327.987 441.849 +-711.797 325.545 438.559 +-715.018 321.149 432.637 +-713.021 314.475 423.646 +-698.991 302.696 407.778 +-704.943 299.707 403.751 +-135.652 56.6143 76.2682 +-137.052 56.1429 75.6331 +-723.999 291.071 392.118 +-729.65 287.854 387.784 +-734.592 284.34 383.049 +-740.16 281.052 378.621 +-744.332 277.223 373.463 +-751.091 274.338 369.576 +-755.422 270.544 364.464 +-761.336 267.3 360.094 +-766.346 263.717 355.268 +-772.615 260.543 350.991 +-778.761 257.294 346.615 +-784.081 253.746 341.835 +-790.768 250.61 337.61 +-796.181 247.038 332.798 +-801.906 243.536 328.081 +-808.752 240.34 323.775 +-411.378 119.59 161.107 +-821.894 233.661 314.777 +-827.459 229.981 309.821 +-810.23 220.083 296.486 +-814.243 216.078 291.091 +-411.943 106.761 143.824 +-414.043 104.754 141.12 +-407.985 100.726 135.694 +-409.074 98.5109 132.709 +-392.078 92.0546 124.012 +-391.637 89.6054 120.712 +-383.755 85.5196 115.208 +-382.737 83.0311 111.856 +-382.807 80.7984 108.848 +-382.746 78.5519 105.822 +-382.08 76.1988 102.651 +-381.849 73.9505 99.6227 +-381.296 71.6569 96.533 +-380.418 69.3223 93.3878 +-381.802 67.409 90.8103 +-381.909 65.2728 87.9325 +-381.598 63.0764 84.9736 +-382.603 61.1047 82.3174 +-381.741 58.8438 79.2717 +-380.744 56.5821 76.2248 +-382.239 54.6969 73.6852 +-380.492 52.358 70.5344 +-381.634 50.4286 67.935 +-381.282 48.3053 65.0748 +-380.799 46.1777 62.2085 +-382.049 44.2635 59.6298 +-380.913 42.0791 56.6871 +-381.022 40.0445 53.9462 +-379.819 37.8841 51.0357 +-380.853 35.9537 48.4352 +-380.87 33.9273 45.7054 +-380.56 31.8786 42.9455 +-379.228 29.758 40.0886 +-380.939 27.8788 37.5571 +-379.544 25.7749 34.7227 +-379.51 23.7748 32.0284 +-381.237 21.8799 29.4756 +-380.845 19.8598 26.7542 +-380.424 17.8454 24.0405 +-379.972 15.8369 21.3347 +-379.591 13.8381 18.6421 +-380.378 11.8819 16.0068 +-380.937 9.91337 13.3548 +-379.569 7.90037 10.643 +-380.27 5.93518 7.9956 +-145.778 1.51666 2.04317 +-145.494 0.756796 1.01952 +96.9 0 0 +96.8963 0.510116 0.674406 +96.8852 1.02019 1.34876 +96.8668 1.53019 2.02302 +96.841 2.04007 2.69711 +96.1084 2.53139 3.34665 +97.666 3.08775 4.08221 +96.8191 3.57232 4.72284 +96.7637 4.08187 5.3965 +96.701 4.59111 6.06975 +97.5275 5.14733 6.8051 +97.4493 5.66055 7.48361 +97.2642 6.16705 8.15323 +97.37 6.69248 8.8479 +97.1703 7.19747 9.51552 +97.1616 7.71664 10.2019 +96.9472 8.21939 10.8666 +96.7258 8.72058 11.5292 +96.3984 9.21054 12.1769 +96.1628 9.70769 12.8342 +96.9051 10.3079 13.6277 +96.654 10.8066 14.2871 +96.494 11.315 14.9592 +96.3266 11.8226 15.6302 +96.2497 12.3418 16.3166 +96.0675 12.848 16.9859 +96.7549 13.4753 17.8153 +96.5563 13.9842 18.488 +97.2236 14.6233 19.333 +96.1371 14.9986 19.8291 +96.7858 15.6447 20.6833 +96.5558 16.1536 21.3561 +97.1836 16.8109 22.2251 +96.8408 17.3048 22.878 +96.5868 17.8139 23.5511 +96.3254 18.3217 24.2225 +96.9127 18.9959 25.1138 +96.6342 19.5053 25.7873 +96.3483 20.0133 26.4589 +96.715 20.6607 27.3148 +97.4461 21.3961 28.287 +97.2266 21.9293 28.992 +97.5592 22.5917 29.8677 +97.3217 23.1265 30.5747 +96.8907 23.6154 31.2211 +97.4693 24.3554 32.1994 +97.2053 24.8912 32.9077 +96.9332 25.426 33.6148 +97.3839 26.1561 34.5801 +97.0019 26.6678 35.2566 +97.5187 27.4324 36.2674 +97.1182 27.9447 36.9447 +97.3394 28.64 37.864 +96.9214 29.1514 38.54 +97.2979 29.907 39.539 +96.8616 30.418 40.2146 +97.1242 31.1534 41.1868 +96.6699 31.6635 41.8612 +96.9079 32.4052 42.8417 +96.4354 32.9141 43.5145 +96.735 33.692 44.5429 +96.9333 34.4449 45.5384 +96.4313 34.9539 46.2113 +96.6041 35.7123 47.214 +96.0838 36.2196 47.8846 +96.231 36.9833 48.8943 +96.3632 37.7513 49.9096 +96.3138 38.4569 50.8425 +95.8367 38.9962 51.5555 +96.67 40.0802 52.9886 +96.0865 40.5875 53.6593 +96.147 41.372 54.6965 +96.1921 42.1603 55.7387 +96.3824 43.0239 56.8804 +96.3154 43.7838 57.885 +95.7577 44.3259 58.6017 +95.6645 45.0883 59.6096 +95.7912 45.9657 60.7697 +95.7444 46.772 61.8356 +95.6814 47.5812 62.9054 +95.6023 48.3933 63.9791 +95.6591 49.2865 65.16 +95.6972 50.184 66.3465 +96.1659 51.3254 67.8555 +95.4198 51.8298 68.5223 +95.2562 52.6562 69.6148 +95.2223 53.567 70.8191 +95.0966 54.44 71.9732 +95.5283 55.6509 73.5741 +95.4329 56.5746 74.7952 +95.813 57.8 76.4153 +95.6741 58.7324 77.648 +95.4461 59.6244 78.8273 +95.2683 60.5623 80.0672 +94.866 61.37 81.1352 +94.7177 62.3564 82.4391 +94.9496 63.6148 84.1028 +95.2185 64.9257 85.8359 +94.8661 65.8342 87.037 +94.9493 67.0648 88.664 +94.2969 67.7935 89.6274 +94.4576 69.1249 91.3876 +94.5239 70.4165 93.0952 +93.9997 71.2894 94.2492 +94.0115 72.5894 95.9679 +93.9319 73.8472 97.6308 +93.823 75.1099 99.3001 +93.9225 76.5709 101.232 +94.1632 78.1853 103.366 +93.5512 79.1197 104.601 +93.6077 80.6472 106.621 +93.4004 81.9816 108.385 +93.4411 83.5706 110.486 +93.6637 85.3671 112.861 +93.4056 86.7678 114.713 +93.2752 88.3248 116.771 +93.0538 89.8354 118.768 +93.0047 91.5565 121.044 +92.9129 93.2836 123.327 +92.0167 94.2368 124.587 +94.7 98.9494 130.817 +114.882 122.494 161.945 +115.094 125.257 165.598 +114.518 127.237 168.215 +114.833 130.285 172.245 +114.606 132.811 175.585 +114.587 135.667 179.36 +114.584 138.64 183.291 +114.196 141.244 186.734 +114.473 144.78 191.409 +114.191 147.728 195.306 +114.082 151.014 199.65 +113.48 153.758 203.278 +111.729 155.013 204.937 +108.662 154.429 204.165 +106.424 154.996 204.914 +103.466 154.487 204.242 +101.264 155.082 205.028 +98.3362 154.539 204.311 +96.1669 155.164 205.137 +93.3031 154.644 204.449 +91.0625 155.13 205.091 +89.987 157.656 208.431 +89.8924 162.071 214.269 +89.5222 166.21 219.741 +89.0991 170.472 225.375 +89.0272 175.666 232.241 +88.1868 179.598 237.441 +86.7982 182.607 241.418 +84.3404 183.464 242.551 +87.9208 197.944 261.695 +86.7817 202.429 267.625 +84.213 203.756 269.379 +80.8421 203.136 268.559 +77.7656 203.201 268.645 +74.6067 203.014 268.397 +71.8959 204.048 269.764 +68.4031 202.823 268.145 +65.6574 203.767 269.394 +62.2152 202.503 267.723 +59.4571 203.417 268.931 +56.1822 202.533 267.762 +53.2346 202.761 268.063 +50.1813 202.557 267.793 +47.3606 203.291 268.763 +44.0787 201.977 267.027 +41.265 202.741 268.036 +38.2287 202.411 267.6 +35.3202 202.724 268.015 +32.2329 201.942 266.98 +29.4325 202.945 268.306 +26.3466 201.95 266.99 +23.5149 202.863 268.198 +20.5245 202.437 267.635 +17.6425 203.08 268.484 +14.6561 202.502 267.72 +11.7611 203.174 268.61 +8.75619 201.72 266.687 +5.85703 202.423 267.616 +2.92252 202.023 267.088 +2.05673e-14 202.634 267.896 +-2.91641 201.601 266.53 +-5.8483 202.121 267.217 +-8.74834 201.539 266.448 +-11.7227 202.511 267.732 +-14.5776 201.417 266.286 +-17.5378 201.875 266.892 +-20.4146 201.353 266.202 +-23.4382 202.201 267.323 +-26.2367 201.108 265.877 +-29.293 201.983 267.035 +-32.0508 200.8 265.471 +-35.2365 202.244 267.38 +-37.9457 200.912 265.619 +-41.0456 201.663 266.612 +-43.8568 200.96 265.683 +-47.0127 201.798 266.79 +-49.797 201.005 265.742 +-52.8436 201.272 266.094 +-55.588 200.391 264.93 +-58.8146 201.219 266.025 +-61.5409 200.309 264.821 +-64.7987 201.103 265.871 +-67.5259 200.221 264.706 +-70.8147 200.98 265.708 +-73.5029 200.01 264.426 +-76.7758 200.615 265.226 +-79.6749 200.203 264.682 +-83.0276 200.888 265.587 +-85.9555 200.502 265.076 +-89.2667 200.974 265.701 +-92.1705 200.496 265.069 +-95.591 201.106 265.875 +-98.2409 200.074 264.511 +-101.658 200.588 265.19 +-104.796 200.505 265.08 +-108.341 201.15 265.934 +-111.279 200.63 265.245 +-114.698 200.949 265.667 +-117.6 200.338 264.859 +-121.075 200.674 265.304 +-124.008 200.086 264.527 +-127.866 200.946 265.663 +-130.768 200.265 264.764 +-134.596 200.968 265.692 +-139.182 202.704 267.987 +-143.359 203.74 269.358 +-146.261 202.923 268.277 +-146.1 197.957 261.712 +-145.848 193.062 255.241 +-122.094 157.952 208.823 +-112.794 142.657 188.601 +-113.626 140.539 185.802 +-114.762 138.856 183.577 +-115.813 137.118 181.279 +-118.254 137.038 181.173 +-119.668 135.771 179.498 +-122.487 136.09 179.92 +-124.935 135.968 179.758 +-129.754 138.351 182.908 +-508.9 531.736 702.99 +-512.36 524.723 693.718 +-516.171 518.231 685.134 +-520.304 512.202 677.164 +-523.189 505.095 667.768 +-527.897 499.879 660.872 +-530.478 492.78 651.487 +-534.606 487.253 644.18 +-538.559 481.669 636.797 +-543.07 476.678 630.199 +-545.873 470.292 621.757 +-555.675 469.954 621.31 +-569.564 472.916 625.226 +-1948.94 1588.89 2100.61 +-576.719 461.693 610.387 +-581.063 456.821 603.947 +-584.878 451.605 597.051 +-589.584 447.14 591.147 +-593.072 441.815 584.108 +-585.701 428.622 566.666 +-586.094 421.363 557.069 +-590.348 416.977 551.271 +-593.077 411.577 544.131 +-597.948 407.717 539.028 +-601.548 403.029 532.83 +-605.937 398.913 527.388 +-609.229 394.119 521.051 +-614.494 390.635 516.445 +-618.038 386.083 510.427 +-622.968 382.428 505.594 +-625.86 377.555 499.152 +-630.442 373.739 494.107 +-634.314 369.526 488.537 +-638.765 365.674 483.444 +-141.663 79.6922 105.358 +-142.958 79.025 104.476 +-144.17 78.3095 103.53 +-143.125 76.3888 100.991 +-143.017 74.9989 99.1533 +-143.26 73.8122 97.5845 +-143.71 72.7451 96.1737 +-149.078 74.1344 98.0104 +-679.303 331.846 438.721 +-701.686 336.707 445.148 +-704.088 331.849 438.725 +-711.4 329.304 435.361 +-714.06 324.603 429.146 +-720.979 321.836 425.488 +-2650.74 1161.8 1535.98 +-385.484 165.874 219.296 +-131.965 55.743 73.6958 +-136.64 56.6521 74.8977 +-724.247 294.698 389.61 +-730.234 291.573 385.479 +-735.598 288.178 380.99 +-740.919 284.749 376.456 +-745.519 281.029 371.538 +-751.432 277.787 367.252 +-756.622 274.256 362.584 +-763.662 271.364 358.761 +-767.558 267.334 353.433 +-774.617 264.382 349.53 +-779.549 260.674 344.628 +-785.399 257.252 340.103 +-791.121 253.759 335.485 +-797.778 250.531 331.218 +-803.064 246.842 326.341 +-810.453 243.763 322.27 +-816.195 240.148 317.491 +-823.519 236.959 313.274 +-828.818 233.15 308.239 +-2981.49 819.671 1083.66 +-413.197 110.98 146.722 +-3004.75 788.157 1041.99 +-409.256 104.797 138.549 +-409.371 102.293 135.237 +-407.775 99.388 131.397 +-388.077 92.2189 121.919 +-386.409 89.4801 118.298 +-382.069 86.1754 113.929 +-381.609 83.7889 110.774 +-382.147 81.6359 107.928 +-382.746 79.5034 105.109 +-381.226 76.9492 101.732 +-381.088 74.6972 98.7545 +-383.013 72.8513 96.3141 +-381.757 70.4093 93.0856 +-381.802 68.2255 90.1985 +-382.39 66.1466 87.4501 +-381.116 63.7602 84.295 +-383.473 61.9854 81.9487 +-382.128 59.617 78.8175 +-381.423 57.3695 75.8462 +-381.363 55.2327 73.0212 +-381.856 53.1822 70.3103 +-380.755 50.9219 67.322 +-380.206 48.7525 64.4539 +-380.995 46.7611 61.8212 +-380.184 44.581 58.9389 +-381.503 42.6548 56.3924 +-380.333 40.4562 53.4857 +-381.397 38.5023 50.9025 +-380.359 36.342 48.0465 +-380.178 34.2759 45.3149 +-379.174 32.1473 42.5007 +-379.624 30.1499 39.8602 +-379.649 28.1209 37.1776 +-379.147 26.0597 34.4526 +-379.907 24.088 31.8459 +-379.843 22.064 29.17 +-377.956 19.9479 26.3724 +-380.523 18.0663 23.8847 +-380.67 16.0582 21.23 +-379.191 13.9909 18.4969 +-378.88 11.9785 15.8363 +-376.541 9.91762 13.1117 +-378.769 7.97923 10.5491 +-377.97 5.97075 7.89371 +-146.278 1.54029 2.03637 +-146.994 0.773859 1.02309 +96.9 0 0 +97.7963 0.520972 0.675998 +96.8852 1.03232 1.33951 +96.8668 1.54838 2.00913 +96.841 2.06432 2.6786 +96.9077 2.58277 3.35132 +96.8671 3.09889 4.02103 +96.8191 3.61477 4.69042 +97.6615 4.16871 5.40919 +96.701 4.64567 6.02809 +97.5275 5.2085 6.7584 +96.5534 5.67517 7.36393 +97.2642 6.24034 8.09728 +97.2707 6.76512 8.77822 +97.2695 7.29045 9.45988 +97.0625 7.80034 10.1215 +96.8482 8.30859 10.781 +96.7258 8.82421 11.45 +97.2873 9.40595 12.2049 +96.2615 9.83313 12.7592 +97.0036 10.4409 13.5478 +96.7523 10.9462 14.2034 +96.5921 11.4611 14.8716 +96.4246 11.9752 15.5387 +96.2497 12.4884 16.2046 +96.0675 13.0007 16.8693 +96.7549 13.6355 17.693 +96.5563 14.1504 18.3611 +96.4474 14.6789 19.047 +97.1052 15.3297 19.8914 +96.7858 15.8306 20.5414 +96.5558 16.3456 21.2096 +96.3184 16.8593 21.8762 +96.8408 17.5104 22.721 +96.5868 18.0256 23.3895 +97.1838 18.7046 24.2706 +96.9127 19.2216 24.9414 +96.6342 19.7371 25.6103 +96.3483 20.2512 26.2773 +96.8093 20.9267 27.1538 +97.5401 21.6712 28.1199 +97.1329 22.1686 28.7653 +97.5592 22.8602 29.6627 +97.3217 23.4013 30.3649 +96.9834 23.9189 31.0364 +97.4693 24.6448 31.9784 +97.2053 25.187 32.6819 +97.7586 25.9472 33.6684 +96.6531 26.2683 34.085 +97.0019 26.9847 35.0146 +96.6124 27.5004 35.6837 +97.0279 28.2505 36.657 +97.3394 28.9804 37.6041 +96.9214 29.4978 38.2755 +97.2088 30.2347 39.2317 +96.7729 30.7514 39.9021 +97.1242 31.5236 40.9041 +96.582 32.0106 41.536 +96.9079 32.7903 42.5477 +96.4354 33.3052 43.2159 +96.6484 34.0618 44.1976 +96.244 34.6063 44.9042 +96.517 35.4007 45.9349 +96.6894 36.1686 46.9313 +96.7623 36.9087 47.8917 +96.1466 37.39 48.5162 +96.4471 38.2332 49.6103 +96.564 39.015 50.6248 +95.8367 39.4597 51.2017 +95.9283 40.2453 52.2211 +96.0865 41.0698 53.291 +96.2285 41.8992 54.3671 +96.273 42.6972 55.4026 +95.5786 43.1721 56.0188 +95.6765 44.0102 57.1064 +95.7577 44.8527 58.1995 +95.6645 45.6241 59.2005 +96.4173 46.816 60.747 +95.7444 47.3278 61.4112 +95.6814 48.1467 62.4737 +95.679 49.0077 63.5909 +95.6591 49.8723 64.7128 +96.3009 51.1008 66.3068 +96.1659 51.9354 67.3898 +95.4198 52.4457 68.052 +95.9935 53.6943 69.6721 +95.8805 54.5783 70.8192 +95.7494 55.4651 71.9699 +95.6003 56.3547 73.1242 +95.3616 57.2041 74.2264 +95.1766 58.0984 75.3868 +95.6741 59.4304 77.1151 +95.5155 60.3769 78.3432 +95.1994 61.2374 79.4599 +94.9342 62.1439 80.6361 +95.2582 63.4576 82.3407 +94.9496 64.3708 83.5256 +95.2848 65.743 85.3062 +94.8661 66.6165 86.4396 +94.8844 67.8154 87.9953 +94.2969 68.5992 89.0123 +94.394 69.8994 90.6994 +94.0834 70.9213 92.0253 +94.6222 72.614 94.2218 +94.1346 73.5485 95.4344 +93.9928 74.7737 97.0241 +93.9433 76.1001 98.7453 +93.8036 77.3826 100.409 +94.2808 79.2127 102.784 +93.5512 80.06 103.883 +93.6077 81.6056 105.889 +93.1738 82.755 107.38 +93.3293 84.4624 109.596 +93.6085 86.3309 112.02 +92.861 87.2868 113.261 +93.114 89.22 115.769 +93.0008 90.8511 117.886 +92.7435 92.3845 119.875 +92.7584 94.2353 122.277 +92.372 95.7254 124.21 +92.2 97.4822 126.49 +103.901 112.102 145.46 +114.609 126.212 163.769 +114.518 128.749 167.061 +114.88 131.887 171.133 +114.929 134.768 174.871 +114.678 137.388 178.27 +114.584 140.288 182.033 +114.152 142.868 185.381 +114.085 146.005 189.452 +114.191 149.484 193.966 +113.958 152.642 198.063 +113.927 156.199 202.679 +112.447 157.863 204.839 +109.366 157.276 204.077 +107.113 157.853 204.825 +104.103 157.285 204.089 +101.851 157.834 204.801 +98.9454 157.345 204.166 +96.7273 157.923 204.916 +93.5425 156.883 203.567 +91.5632 157.836 204.804 +89.4661 158.607 205.803 +89.8289 163.881 212.648 +89.4913 168.128 218.157 +89.0691 172.44 223.753 +88.9979 177.695 230.571 +87.5335 180.386 234.064 +86.5226 184.19 239 +85.1421 187.409 243.177 +83.8315 190.98 247.81 +86.0556 203.121 263.564 +83.5356 204.519 265.378 +80.0251 203.472 264.02 +77.1357 203.95 264.64 +73.676 202.864 263.23 +71.1474 204.323 265.124 +67.6854 203.079 263.51 +64.9323 203.912 264.59 +61.5409 202.689 263.004 +58.9709 204.152 264.901 +55.588 202.772 263.111 +52.9687 204.146 264.894 +49.5162 202.247 262.429 +46.8735 203.591 264.174 +43.6219 202.26 262.446 +40.9481 203.575 264.153 +37.7306 202.147 262.3 +35.0484 203.555 264.127 +31.9358 202.458 262.703 +29.1187 203.168 263.625 +26.0563 202.098 262.236 +23.3266 203.629 264.223 +20.317 202.771 263.11 +17.4593 203.36 263.873 +14.4686 202.286 262.48 +11.639 203.454 263.995 +8.66195 201.921 262.007 +5.81165 203.241 263.72 +2.88325 201.677 261.69 +2.03468e-14 202.845 263.206 +-2.88499 201.799 261.849 +-5.80118 202.875 263.244 +-8.6541 201.738 261.77 +-11.6006 202.783 263.125 +-14.4249 201.676 261.689 +-17.4069 202.75 263.082 +-20.1826 201.431 261.37 +-23.2498 202.96 263.355 +-25.9543 201.307 261.21 +-29.0664 202.803 263.151 +-31.7154 201.061 260.89 +-34.8707 202.523 262.788 +-37.5608 201.238 261.12 +-40.7531 202.605 262.894 +-43.3869 201.17 261.032 +-46.623 202.503 262.762 +-49.1318 200.677 260.393 +-52.4212 202.036 262.155 +-55.0104 200.665 260.377 +-58.3458 201.987 262.093 +-60.9031 200.589 260.278 +-64.2836 201.874 261.946 +-66.8082 200.448 260.095 +-70.2742 201.816 261.87 +-72.767 200.361 259.983 +-76.3934 201.988 262.094 +-78.6711 200.03 259.553 +-82.4228 201.795 261.843 +-84.8037 200.166 259.73 +-88.3608 201.299 261.199 +-90.9679 200.232 259.816 +-94.5987 201.383 261.309 +-97.2185 200.345 259.961 +-100.839 201.337 261.249 +-103.683 200.734 260.467 +-107.507 201.974 262.075 +-109.851 200.409 260.045 +-113.819 201.779 261.822 +-116.432 200.704 260.428 +-120.186 201.568 261.549 +-122.783 200.462 260.114 +-126.611 201.34 261.252 +-129.192 200.203 259.778 +-133.21 201.262 261.152 +-137.269 202.293 262.49 +-141.953 204.138 264.884 +-144.985 203.543 264.111 +-146.14 200.365 259.987 +-145.931 195.468 253.633 +-117.826 154.242 200.14 +-113.138 144.793 187.879 +-113.801 142.429 184.812 +-115.164 140.998 182.955 +-116.766 139.89 181.517 +-118.577 139.046 180.421 +-120.607 138.463 179.665 +-123.202 138.513 179.73 +-125.614 138.331 179.495 +-130.689 141.004 182.962 +-509.65 538.849 699.194 +-514.035 532.694 691.208 +-516.995 525.227 681.519 +-521.506 519.486 674.069 +-524.461 512.339 664.797 +-529.401 507.261 658.207 +-532.276 500.326 649.209 +-536.593 494.876 642.136 +-539.789 488.507 633.872 +-544.09 483.248 627.049 +-547.479 477.281 619.306 +-1902.67 1628.28 2112.81 +-572.209 480.759 623.819 +-574.837 474.209 615.319 +-578.284 468.447 607.843 +-583.072 463.848 601.875 +-586.233 458.03 594.327 +-591.264 453.743 588.764 +-593.701 447.541 580.716 +-584.047 432.491 561.188 +-587.058 427.072 554.156 +-592.167 423.232 549.174 +-594.914 417.759 542.071 +-599.804 413.842 536.989 +-603.221 408.953 530.645 +-607.761 404.869 525.346 +-611.002 399.964 518.982 +-615.802 396.118 513.992 +-619.08 391.33 507.779 +-624.65 388.017 503.48 +-627.345 382.948 496.903 +-632.439 379.378 492.27 +-635.609 374.68 486.174 +-142.173 82.357 106.864 +-143.126 81.4719 105.716 +-143.327 80.1705 104.027 +-143.947 79.1181 102.661 +-142.601 77.0133 99.9302 +-142.942 75.8505 98.4213 +-142.652 74.372 96.5029 +-148.076 75.8462 98.4158 +-149.387 75.1711 97.5398 +-687.852 340.015 441.193 +-702.391 341.05 442.536 +-708.973 338.122 438.738 +-716.477 335.596 435.459 +-718.772 330.628 429.013 +-725.722 327.803 425.348 +-385.092 170.789 221.611 +-386.949 168.483 218.618 +-711.434 304.085 394.572 +-135.569 56.8758 73.8004 +-725.822 298.849 387.777 +-731.985 295.746 383.751 +-736.52 291.969 378.85 +-743.703 289.215 375.277 +-747.046 284.951 369.744 +-753.734 281.95 365.85 +-757.65 277.892 360.585 +-765.299 275.178 357.063 +-769.55 271.213 351.918 +-776.531 268.185 347.989 +-780.073 263.95 342.494 +-787.42 260.978 338.638 +-792.799 257.319 333.889 +-799.995 254.213 329.859 +-805.203 250.441 324.964 +-812.153 247.177 320.73 +-817.903 243.51 315.972 +-825.414 240.326 311.84 +-2969.52 845.265 1096.79 +-410.12 114.09 148.04 +-410.821 111.653 144.877 +-410.751 109.022 141.464 +-412.938 106.997 138.836 +-407.154 102.948 133.582 +-408.239 100.683 130.644 +-387.519 93.1805 120.908 +-386.316 90.5221 117.459 +-381.038 86.9639 112.842 +-382.925 85.0771 110.394 +-381.77 82.5249 107.082 +-380.949 80.0703 103.897 +-382.649 78.1542 101.411 +-381.849 75.7357 98.2724 +-381.201 73.3685 95.2008 +-381.47 71.1923 92.377 +-381.514 68.9844 89.5121 +-381.813 66.8314 86.7185 +-380.827 64.469 83.6531 +-381.444 62.3905 80.9561 +-381.837 60.2796 78.2171 +-382.976 58.2876 75.6323 +-382.53 56.06 72.7419 +-380.004 53.5533 69.4892 +-380.853 51.5403 66.8771 +-381.184 49.4588 64.1762 +-380.015 47.1951 61.239 +-381.755 45.2971 58.7762 +-380.421 43.0393 55.8466 +-380.333 40.937 53.1187 +-380.213 38.839 50.3963 +-379.865 36.7262 47.6548 +-380.079 34.6742 44.9922 +-380.362 32.6312 42.3413 +-380.517 30.58 39.6797 +-380.542 28.522 37.0093 +-380.439 26.4593 34.3328 +-379.907 24.3743 31.6274 +-379.345 22.297 28.9319 +-379.65 20.2754 26.3088 +-379.826 18.2474 23.6773 +-380.67 16.249 21.0843 +-378.692 14.1386 18.3458 +-380.378 12.1687 15.7898 +-379.039 10.1021 13.1082 +-379.469 8.08895 10.496 +-380.17 6.07686 7.88515 +-144.878 1.54368 2.00303 +-146.394 0.779857 1.01192 +96.9 0 0 +96.9963 0.522738 0.66578 +96.8852 1.04436 1.33014 +96.8668 1.56644 1.99508 +96.841 2.0884 2.65987 +96.9077 2.6129 3.32788 +96.8671 3.13504 3.99291 +96.8191 3.65694 4.65762 +96.7637 4.17856 5.32198 +96.701 4.69987 5.98593 +97.5275 5.26926 6.71113 +96.5534 5.74137 7.31243 +97.3637 6.31955 8.04883 +97.2707 6.84404 8.71683 +97.1703 7.36797 9.38413 +97.0625 7.89134 10.0507 +96.9472 8.41409 10.7165 +96.7258 8.92715 11.37 +97.4848 9.535 12.1442 +96.2615 9.94783 12.6699 +96.9051 10.552 13.4395 +96.7523 11.0739 14.1041 +96.5921 11.5948 14.7676 +96.4246 12.1149 15.4301 +96.1519 12.6213 16.0749 +96.0675 13.1524 16.7513 +96.7549 13.7945 17.5693 +96.5563 14.3154 18.2327 +96.3504 14.8352 18.8947 +96.2339 15.3694 19.5751 +96.7858 16.0153 20.3977 +97.3267 16.6683 21.2294 +96.3184 17.056 21.7232 +96.9367 17.7323 22.5845 +96.6824 18.254 23.249 +96.4208 18.7743 23.9117 +96.9127 19.4458 24.767 +96.6342 19.9674 25.4312 +96.3483 20.4874 26.0936 +96.8093 21.1708 26.9639 +97.4461 21.9029 27.8964 +97.2266 22.4488 28.5917 +96.7189 22.9276 29.2015 +97.2286 23.6517 30.1237 +97.7252 24.383 31.0551 +97.4693 24.9323 31.7548 +97.1133 25.4566 32.4225 +96.9332 26.0283 33.1506 +97.3839 26.7757 34.1026 +97.0929 27.3251 34.8024 +96.6124 27.8212 35.4342 +97.1182 28.6067 36.4346 +97.3394 29.3185 37.3411 +96.9214 29.8419 38.0078 +96.496 30.3631 38.6716 +96.7729 31.1101 39.623 +97.0359 31.8623 40.5811 +96.6699 32.4136 41.2832 +96.9953 33.2027 42.2883 +96.5224 33.7242 42.9524 +96.6484 34.4592 43.8886 +96.9333 35.2608 44.9095 +96.3456 35.75 45.5326 +96.6894 36.5905 46.6031 +96.6775 37.3066 47.5151 +96.1466 37.8262 48.1769 +96.3632 38.6455 49.2205 +96.564 39.4701 50.2707 +96.5 40.1963 51.1955 +96.0931 40.7847 51.945 +96.0865 41.5489 52.9183 +96.2285 42.3879 53.9869 +96.273 43.1953 55.0152 +95.659 43.7125 55.6739 +96.3953 44.8581 57.1331 +95.8371 45.4135 57.8404 +95.6645 46.1563 58.7865 +95.7912 47.0546 59.9305 +95.7444 47.8799 60.9817 +95.6814 48.7083 62.0368 +95.679 49.5793 63.1462 +96.2674 50.7749 64.6688 +95.6217 51.3323 65.3788 +95.5667 52.2139 66.5016 +95.4198 53.0575 67.5761 +95.9935 54.3206 69.1849 +95.8073 55.1729 70.2703 +95.6769 56.0697 71.4125 +95.5283 56.9692 72.5582 +95.4329 57.9147 73.7624 +95.2473 58.8198 74.9152 +95.6741 60.1237 76.5758 +95.4461 61.0368 77.7388 +95.2683 61.9969 78.9616 +94.9342 62.8689 80.0722 +95.3258 64.2435 81.823 +94.9496 65.1217 82.9415 +95.1522 66.4173 84.5916 +94.9317 67.4399 85.8941 +94.4947 68.3249 87.0212 +94.4898 69.5415 88.5707 +94.9665 71.144 90.6118 +94.5869 72.1327 91.871 +94.6845 73.5098 93.625 +94.0115 74.3089 94.6428 +94.0536 75.6947 96.4077 +93.9433 76.9879 98.0547 +93.8036 78.2853 99.7072 +93.6342 79.5871 101.365 +93.377 80.8432 102.965 +93.6077 82.5575 105.148 +93.4004 83.9235 106.888 +93.3852 85.4989 108.895 +93.4981 87.2348 111.106 +93.3511 88.7713 113.063 +93.0066 90.1565 114.827 +93.0538 91.9634 117.128 +92.7957 93.5147 119.104 +93.0674 95.652 121.826 +92.981 97.48 124.154 +91.8 98.1914 125.06 +95.284 104.004 132.463 +115.045 128.17 163.243 +114.47 130.196 165.823 +114.833 133.371 169.867 +114.929 136.34 173.648 +114.451 138.715 176.673 +114.584 141.924 180.76 +114.196 144.59 184.156 +114.516 148.266 188.837 +114.191 151.228 192.609 +114.289 154.872 197.251 +114.293 158.528 201.908 +113.404 161.064 205.137 +110.421 160.646 204.605 +108.146 161.234 205.354 +105.152 160.724 204.704 +102.877 161.284 205.417 +99.5905 160.218 204.06 +97.7079 161.385 205.546 +94.466 160.28 204.139 +92.5313 161.365 205.521 +89.2382 160.048 203.843 +89.7972 165.735 211.087 +89.5222 170.147 216.706 +89.0991 174.51 222.263 +89.2026 180.181 229.486 +87.2211 181.839 231.598 +85.2822 183.667 233.926 +85.8102 191.083 243.371 +81.4762 187.78 239.164 +84.8287 202.561 257.989 +82.3986 204.089 259.936 +78.5777 202.123 257.432 +76.3259 204.164 260.031 +72.464 201.854 257.089 +70.2118 203.988 259.808 +66.4294 201.636 256.812 +64.1118 203.684 259.42 +60.5751 201.836 257.066 +58.1895 203.796 259.563 +54.7133 201.91 257.16 +52.1396 203.295 258.924 +48.7919 201.613 256.783 +46.2751 203.336 258.977 +42.9562 201.497 256.634 +40.4241 203.314 258.949 +37.1646 201.438 256.559 +34.6198 203.412 259.073 +31.4278 201.562 256.717 +28.7352 202.831 258.333 +25.6954 201.623 256.795 +22.9638 202.802 258.296 +19.9934 201.87 257.109 +17.2709 203.512 259.2 +14.2374 201.376 256.48 +11.4854 203.112 258.691 +8.52583 201.066 256.086 +5.73486 202.895 258.415 +2.84398 201.251 256.322 +2.01325e-14 203.05 258.612 +-2.83787 200.819 255.771 +-5.72613 202.587 258.022 +-8.51013 200.696 255.615 +-11.4784 202.988 258.533 +-14.1937 200.759 255.694 +-17.1662 202.278 257.629 +-19.8652 200.575 255.46 +-22.8871 202.124 257.433 +-25.6169 201.008 256.012 +-28.6742 202.4 257.785 +-31.2936 200.701 255.621 +-34.4108 202.183 257.509 +-36.9382 200.21 254.996 +-40.1194 201.781 256.997 +-42.7473 200.517 255.386 +-45.9132 201.746 256.952 +-48.3928 199.965 254.683 +-51.7485 201.77 256.982 +-54.1356 199.778 254.445 +-57.4602 201.242 256.31 +-59.9555 199.771 254.436 +-63.2723 201.017 256.023 +-65.7715 199.639 254.268 +-69.3178 201.391 256.499 +-71.5766 199.382 253.941 +-75.1786 201.095 256.122 +-77.3871 199.061 253.532 +-81.3341 201.452 256.577 +-83.4517 199.273 253.802 +-87.2479 201.082 256.106 +-89.5516 199.414 253.982 +-93.3859 201.12 256.154 +-95.6848 199.484 254.071 +-99.7865 201.56 256.714 +-101.879 199.542 254.144 +-106.147 201.746 256.951 +-108.423 200.111 254.87 +-112.093 201.038 256.05 +-114.663 199.96 254.677 +-118.647 201.308 256.393 +-120.927 199.735 254.391 +-125.285 201.555 256.709 +-127.139 199.321 253.863 +-131.562 201.09 256.116 +-133.671 199.29 253.823 +-140.194 203.962 259.774 +-142.433 202.293 257.648 +-146.018 202.533 257.954 +-144.355 195.613 249.141 +-113.98 150.948 192.253 +-113.44 146.872 187.062 +-113.976 144.312 183.802 +-115.744 143.361 182.591 +-117.357 142.237 181.158 +-119.362 141.599 180.346 +-121.311 140.896 179.451 +-124.3 141.377 180.063 +-127.408 141.943 180.785 +-508.378 554.901 706.743 +-511.35 546.952 696.62 +-515.963 540.93 688.95 +-518.849 533.259 679.179 +-523.491 527.547 671.904 +-526.475 520.306 662.683 +-530.745 514.48 655.262 +-533.419 507.25 646.054 +-538.746 502.657 640.203 +-541.131 495.434 631.004 +-546.242 490.819 625.126 +-549.544 484.67 617.295 +-168.926 146.251 186.272 +-576.441 489.964 624.038 +-577.335 481.825 613.671 +-579.969 475.293 605.351 +-585.263 471.022 599.912 +-587.464 464.347 591.41 +-592.447 459.955 585.816 +-595.589 454.201 578.488 +-585.764 438.823 558.902 +-589.372 433.757 552.45 +-593.725 429.297 546.769 +-596.948 424.076 540.12 +-602.322 420.427 535.473 +-604.493 414.595 528.045 +-610.126 411.185 523.701 +-612.912 405.895 516.963 +-617.729 401.994 511.995 +-621.025 397.139 505.812 +-626.403 393.645 501.361 +-629.537 388.769 495.152 +-635.007 385.362 490.812 +-638.198 380.595 484.741 +-142.754 83.658 106.55 +-143.638 82.7169 105.351 +-143.695 81.3144 103.565 +-143.724 79.9169 101.785 +-142.601 77.9117 99.2314 +-143.017 76.7754 97.7842 +-145.238 76.6037 97.5655 +-148.842 77.128 98.2333 +-681.422 346.89 441.812 +-699.276 349.694 445.384 +-704.895 346.259 441.008 +-708.658 341.914 435.475 +-715.684 339.135 431.936 +-721.407 335.711 427.575 +-727.33 332.362 423.309 +-730.461 327.74 417.422 +-387.763 170.807 217.546 +-385.821 166.834 212.486 +-724.572 307.529 391.681 +-136.957 57.0483 72.6589 +-136.174 55.6604 70.8913 +-738.533 296.182 377.228 +-745.558 293.319 373.582 +-749.335 289.159 368.284 +-756.036 286.109 364.4 +-760.479 282.184 359.4 +-767.625 279.234 355.644 +-770.849 274.84 350.047 +-779.055 272.195 346.679 +-783.659 268.256 341.661 +-790.408 265.025 337.546 +-795.006 261.045 332.477 +-802.834 258.091 328.715 +-807.252 254.007 323.513 +-815.464 251.08 319.785 +-820.329 247.082 314.693 +-828.483 244.034 310.811 +-834.528 240.317 306.077 +-411.757 115.882 147.592 +-833.884 229.276 292.015 +-410.843 110.319 140.506 +-408.704 107.135 136.452 +-409.094 104.645 133.28 +-402.676 100.47 127.963 +-865.381 210.512 268.116 +-383.048 90.803 115.65 +-383.005 88.4329 112.632 +-381.891 85.8373 109.326 +-382.147 83.5697 106.438 +-382.462 81.3261 103.58 +-381.226 78.772 100.327 +-381.374 76.5241 97.464 +-380.724 74.1317 94.417 +-380.801 71.8962 91.5698 +-382.473 69.9645 89.1095 +-380.179 67.322 85.7439 +-381.694 65.3693 83.2569 +-382.99 63.374 80.7156 +-382.999 61.1683 77.9063 +-382.102 58.8331 74.9321 +-381.752 56.5986 72.0862 +-382.733 54.567 69.4987 +-379.877 52.0079 66.2392 +-381.575 50.0871 63.7929 +-383.151 48.1397 61.3125 +-382.049 45.8609 58.4102 +-380.815 43.5864 55.5134 +-380.136 41.3931 52.7199 +-379.621 39.2308 49.9659 +-380.359 37.2029 47.383 +-380.079 35.0787 44.6776 +-379.174 32.9088 41.9139 +-381.409 31.0092 39.4945 +-380.542 28.8547 36.7505 +-379.843 26.726 34.0393 +-379.808 24.6521 31.3979 +-379.047 22.5393 28.707 +-377.956 20.4204 26.0082 +-380.822 18.5088 23.5735 +-378.975 16.3653 20.8435 +-379.191 14.3224 18.2415 +-377.981 12.2331 15.5806 +-379.039 10.2199 13.0165 +-378.769 8.16825 10.4034 +-380.17 6.14775 7.83001 +-145.378 1.56708 1.99589 +-146.394 0.788955 1.00484 +96.9 0 0 +96.8963 0.528178 0.660355 +96.8852 1.05632 1.32066 +96.6669 1.5811 1.97678 +96.841 2.11231 2.64092 +96.9077 2.64281 3.30418 +96.7672 3.16766 3.96037 +96.7193 3.69499 4.61967 +97.6615 4.26562 5.3331 +96.701 4.75368 5.94329 +97.4278 5.32414 6.65651 +96.5534 5.8071 7.26034 +97.3637 6.39191 7.99149 +96.3765 6.85875 8.57516 +97.1703 7.45232 9.31728 +97.1616 7.98987 9.98934 +96.9472 8.51043 10.6402 +96.7258 9.02936 11.289 +96.3984 9.53668 11.9232 +97.1491 10.1546 12.6957 +96.8066 10.662 13.3302 +96.7523 11.2007 14.0036 +96.494 11.7157 14.6475 +96.3266 12.2412 15.3046 +96.2497 12.7788 15.9767 +96.0675 13.3029 16.632 +96.7549 13.9525 17.4441 +95.7784 14.3627 17.957 +96.3504 15.0051 18.7601 +96.1371 15.5297 19.416 +96.7858 16.1987 20.2524 +96.6521 16.7423 20.932 +97.1836 17.4062 21.7621 +96.9367 17.9353 22.4236 +96.6824 18.463 23.0834 +96.4208 18.9893 23.7414 +96.9127 19.6685 24.5905 +96.6342 20.196 25.25 +97.1048 20.8846 26.111 +96.9035 21.434 26.7978 +97.4461 22.1537 27.6976 +97.1329 22.684 28.3606 +97.5592 23.3917 29.2454 +97.2286 23.9225 29.9091 +97.7252 24.6621 30.8338 +97.4693 25.2178 31.5286 +97.2053 25.7725 32.2221 +96.9332 26.3263 32.9145 +97.3839 27.0823 33.8596 +97.0019 27.6121 34.522 +96.6124 28.1398 35.1818 +97.0279 28.9073 36.1414 +96.6204 29.4351 36.8012 +96.9214 30.1836 37.737 +96.496 30.7107 38.3961 +96.7729 31.4663 39.3408 +96.9476 32.1978 40.2554 +96.6699 32.7847 40.9891 +96.9953 33.5829 41.987 +96.4354 34.0795 42.6079 +96.735 34.885 43.6149 +96.1578 35.3792 44.2329 +96.4313 36.1915 45.2485 +96.6041 36.9769 46.2303 +96.1687 37.5351 46.9283 +96.1466 38.2593 47.8337 +96.1955 39.02 48.7848 +95.6467 39.5429 49.4385 +96.0026 40.4469 50.5687 +96.0931 41.2517 51.575 +96.0865 42.0247 52.5414 +95.4958 42.5468 53.1942 +96.273 43.6898 54.6232 +96.3021 44.5102 55.6489 +95.6765 45.0334 56.303 +96.3924 46.1996 57.7611 +95.6645 46.6848 58.3677 +95.7912 47.5933 59.5036 +95.7444 48.4281 60.5473 +95.6814 49.266 61.5948 +95.7556 50.1872 62.7465 +96.3434 51.3968 64.2589 +95.6217 51.92 64.913 +95.5667 52.8117 66.0279 +96.0886 54.0411 67.565 +95.33 54.5628 68.2172 +95.8805 55.8472 69.8229 +95.6769 56.7116 70.9038 +95.5283 57.6214 72.0413 +95.3616 58.534 73.1822 +95.2473 59.4932 74.3815 +95.6741 60.8121 76.0303 +95.3766 61.6907 77.1289 +95.1306 62.6161 78.2859 +94.866 63.5431 79.4448 +95.2582 64.9329 81.1824 +94.9496 65.8673 82.3506 +95.2185 67.2246 84.0476 +94.8005 68.1184 85.1651 +94.6895 69.2496 86.5794 +94.4255 70.2896 87.8796 +94.4576 71.5726 89.4836 +94.5869 72.9586 91.2165 +94.6222 74.3021 92.8963 +94.0731 75.2091 94.0302 +93.9928 76.512 95.6592 +93.9433 77.8693 97.3562 +93.982 79.3322 99.1851 +93.6342 80.4984 100.643 +93.6674 82.023 102.549 +93.6077 83.5028 104.399 +93.4004 84.8844 106.127 +93.4971 86.5815 108.249 +93.5533 88.2861 110.38 +93.4601 89.8926 112.388 +93.0603 91.2412 114.074 +92.9478 92.9108 116.162 +93.266 95.0645 118.854 +93.0159 96.6935 120.891 +92.6765 98.2731 122.866 +92.15 99.6941 124.643 +91.6893 101.226 126.558 +114.609 129.146 161.465 +114.948 132.236 165.328 +114.739 134.788 168.518 +114.883 137.846 172.342 +114.633 140.526 175.693 +114.584 143.549 179.473 +114.196 146.246 182.844 +114.473 149.907 187.421 +114.149 152.903 191.167 +113.916 156.133 195.206 +114.049 160.001 200.041 +113.324 162.793 203.532 +111.749 164.44 205.591 +108.529 163.658 204.613 +106.426 164.533 205.707 +103.023 163.363 204.244 +101.131 164.56 205.741 +97.6728 163.174 204.009 +95.9024 164.581 205.767 +92.5313 163.213 204.057 +90.5731 164.302 205.418 +90.0828 168.165 210.249 +89.584 172.214 215.311 +89.3698 177.045 221.351 +88.1208 180.034 225.087 +86.1419 181.645 227.102 +84.5931 184.269 230.383 +88.1352 198.507 248.183 +86.9632 202.721 253.452 +83.3014 201.192 251.54 +80.8261 202.486 253.159 +77.3404 201.218 251.573 +74.8862 202.606 253.309 +71.2952 200.872 251.141 +69.0475 202.903 253.68 +65.5123 201.129 251.462 +63.0624 202.644 253.356 +59.591 200.83 251.088 +57.2171 202.685 253.407 +53.8055 200.833 251.092 +51.4044 202.722 253.454 +47.9642 200.463 250.629 +45.5374 202.386 253.034 +42.2774 200.583 250.779 +39.7538 202.232 252.841 +36.5873 200.579 250.774 +33.9822 201.951 252.489 +30.8815 200.326 250.458 +28.2559 201.731 252.214 +25.2246 200.196 250.295 +22.636 202.195 252.795 +19.6088 200.253 250.367 +16.983 202.411 253.064 +14.0062 200.374 250.518 +11.29 201.941 252.477 +8.38971 200.122 250.202 +5.63887 201.784 252.28 +2.79162 199.808 249.81 +1.97529e-14 201.502 251.928 +-2.79424 199.995 250.044 +-5.63015 201.471 251.89 +-8.38709 200.059 250.124 +-11.2656 201.504 251.93 +-13.98 200 250.05 +-16.894 201.351 251.739 +-19.5661 199.817 249.821 +-22.5244 201.198 251.548 +-25.1461 199.573 249.516 +-28.2297 201.544 251.98 +-30.7186 199.268 249.135 +-33.8568 201.206 251.558 +-36.3948 199.524 249.455 +-39.4491 200.682 250.903 +-41.9511 199.035 248.843 +-45.1338 200.593 250.791 +-47.639 199.103 248.929 +-50.7317 200.07 250.137 +-53.1948 198.554 248.242 +-56.6267 200.594 250.793 +-58.9167 198.558 248.247 +-62.2228 199.946 249.983 +-64.6151 198.375 248.019 +-68.195 200.398 250.547 +-70.2779 198.006 247.557 +-74.0089 200.233 250.341 +-76.2199 198.303 247.929 +-79.7375 199.759 249.748 +-81.9995 198.047 247.608 +-85.7985 200.005 250.057 +-87.9481 198.086 247.657 +-91.8424 200.06 250.126 +-94.0091 198.235 247.843 +-98.1492 200.523 250.703 +-100.015 198.133 247.716 +-104.231 200.372 250.515 +-106.234 198.316 247.944 +-110.368 200.21 250.312 +-112.593 198.599 248.299 +-116.526 199.974 250.017 +-119.035 198.863 248.629 +-123.064 200.248 250.36 +-125.233 198.581 248.276 +-129.352 199.976 250.02 +-131.452 198.225 247.83 +-137.029 201.64 252.101 +-139.881 200.943 251.229 +-145.083 203.539 254.475 +-117.773 161.42 201.815 +-113.388 151.884 189.892 +-113.698 148.892 186.153 +-114.678 146.863 183.616 +-116.636 146.121 182.688 +-118.174 144.867 181.12 +-120.655 144.772 181.001 +-122.579 143.998 180.034 +-126.686 145.74 182.211 +-130.656 147.229 184.073 +-510.545 563.646 704.699 +-513.25 555.27 694.227 +-517.74 549.007 686.397 +-520.703 541.292 676.751 +-525.581 535.717 669.781 +-528.647 528.435 660.677 +-533.001 522.583 653.36 +-535.761 515.31 644.267 +-541.064 510.599 638.377 +-543.48 503.281 629.228 +-548.791 498.755 623.569 +-167.771 149.66 187.112 +-168.404 147.469 184.373 +-169.165 145.433 181.828 +-580.012 489.602 612.125 +-583.038 483.279 604.22 +-587.698 478.397 598.117 +-590.789 472.321 590.52 +-595.56 467.665 584.699 +-583.38 449.984 562.593 +-588.627 446.016 557.632 +-591.686 440.446 550.668 +-596.323 436.112 545.249 +-599.179 430.535 538.276 +-605.171 427.252 534.172 +-608.039 421.802 527.359 +-612.828 417.735 522.273 +-615.231 412.095 515.222 +-620.965 408.725 511.009 +-623.595 403.348 504.286 +-629.697 400.246 500.407 +-631.941 394.722 493.502 +-637.432 391.263 489.177 +-142.573 85.9981 107.519 +-143.624 85.1318 106.436 +-142.907 83.2379 104.068 +-143.99 82.4141 103.038 +-142.609 80.2048 100.276 +-142.601 78.8038 98.5245 +-142.565 77.409 96.7806 +-149.116 79.5496 99.4569 +-149.532 78.3721 97.9848 +-698.552 359.682 449.692 +-701.996 355.074 443.931 +-708.339 351.934 440.006 +-711.495 347.214 434.104 +-718.223 344.235 430.38 +-721.487 339.593 424.576 +-727.651 336.316 420.479 +-734.183 333.181 416.56 +-386.786 172.327 215.452 +-387.868 169.639 212.091 +-381.982 163.981 205.017 +-731.874 308.346 385.51 +-136.174 56.2977 70.3862 +-742.14 301.036 376.37 +-748.679 297.919 372.473 +-752.812 293.826 367.356 +-759.191 290.593 363.314 +-763.222 286.444 358.127 +-770.383 283.446 354.378 +-774.313 279.236 349.115 +-782.711 276.604 345.825 +-785.846 272.085 340.174 +-794.011 269.281 336.669 +-798.803 265.295 331.685 +-806.559 262.257 327.887 +-810.816 258.049 322.626 +-819.223 255.125 318.97 +-410.299 124.996 156.277 +-832.725 248.092 310.178 +-837.791 244.019 305.084 +-845.991 240.815 301.08 +-850.968 236.652 295.875 +-3004.75 816.064 1020.28 +-413.215 109.557 136.974 +-410.757 106.273 132.868 +-391.642 98.8359 123.57 +-385.844 94.9345 118.692 +-382.488 91.7084 114.658 +-383.005 89.4454 111.829 +-382.173 86.8845 108.627 +-383.09 84.7351 105.94 +-382.273 82.2167 102.791 +-381.7 79.7732 99.7365 +-382.23 77.5739 96.9868 +-381.582 75.1491 93.9552 +-382.331 73.0117 91.2829 +-382.09 70.6943 88.3857 +-382.198 68.4538 85.5845 +-382.079 66.1846 82.7473 +-382.12 63.9541 79.9586 +-382.128 61.7279 77.1754 +-381.811 59.4614 74.3416 +-381.947 57.2758 71.6092 +-380.979 54.9389 68.6874 +-381.732 52.8602 66.0885 +-382.064 50.7255 63.4196 +-381.387 48.4667 60.5955 +-382.049 46.386 57.9941 +-381.405 44.1538 55.2033 +-380.53 41.9105 52.3986 +-381.693 39.8965 49.8807 +-381.742 37.7656 47.2165 +-380.079 35.4803 44.3593 +-380.56 33.4072 41.7674 +-379.624 31.2175 39.0297 +-380.046 29.1471 36.4412 +-381.134 27.1239 33.9117 +-380.405 24.9736 31.2232 +-380.739 22.8991 28.6297 +-380.148 20.7739 25.9726 +-380.424 18.7011 23.381 +-380.87 16.6355 20.7985 +-379.391 14.494 18.1211 +-379.379 12.4189 15.5268 +-380.038 10.3642 12.9578 +-379.269 8.2727 10.3429 +-378.37 6.1887 7.73743 +-146.578 1.5981 1.99802 +-144.295 0.786545 0.983378 +97 0 0 +96.8963 0.534114 0.655563 +96.8852 1.06819 1.31108 +96.8668 1.60218 1.96649 +96.841 2.13605 2.62175 +96.9077 2.67251 3.2802 +96.7672 3.20326 3.93163 +96.7193 3.73652 4.58615 +96.7637 4.27391 5.24573 +97.4985 4.84675 5.94883 +97.4278 5.38398 6.60821 +97.5488 5.9329 7.28195 +97.3637 6.46374 7.9335 +97.2707 7.0002 8.59193 +97.1703 7.53608 9.24966 +97.0625 8.07139 9.9067 +96.9472 8.60607 10.563 +96.7258 9.13084 11.207 +96.3984 9.64385 11.8367 +96.2615 10.1748 12.4884 +96.8066 10.7818 13.2334 +96.7523 11.3265 13.902 +96.5921 11.8594 14.556 +96.4246 12.3914 15.209 +96.2497 12.9224 15.8607 +96.0675 13.4524 16.5113 +96.8524 14.1235 17.335 +96.5563 14.6421 17.9715 +96.3504 15.1737 18.624 +96.1371 15.7042 19.2751 +96.8824 16.3971 20.1255 +96.5558 16.9136 20.7595 +97.0874 17.5844 21.5829 +96.9367 18.1369 22.2609 +96.5868 18.652 22.8931 +96.4208 19.2027 23.5691 +96.9127 19.8895 24.4121 +96.6342 20.423 25.0668 +97.1993 21.1399 25.9468 +96.9035 21.6749 26.6034 +97.5401 22.4242 27.5232 +97.1329 22.9389 28.1548 +97.6525 23.6772 29.061 +97.3217 24.2145 29.7205 +96.8907 24.7264 30.3488 +97.5617 25.5254 31.3295 +97.1133 26.0375 31.958 +96.8415 26.597 32.6447 +97.3839 27.3866 33.6139 +97.0929 27.9486 34.3037 +96.6124 28.456 34.9265 +97.0279 29.2322 35.8791 +96.6204 29.7659 36.5342 +96.9214 30.5228 37.4632 +96.496 31.0559 38.1175 +96.8616 31.849 39.091 +97.1242 32.619 40.0361 +96.6699 33.1531 40.6916 +96.9079 33.9297 41.6447 +97.1317 34.7114 42.6042 +96.735 35.277 43.2984 +96.9333 36.0653 44.2661 +96.3456 36.5657 44.8802 +96.6041 37.3924 45.8949 +96.7623 38.1913 46.8754 +96.1466 38.6892 47.4866 +96.3632 39.5273 48.5152 +96.564 40.3707 49.5504 +95.8367 40.8308 50.1151 +95.9283 41.6437 51.1129 +96.2504 42.5694 52.249 +96.2285 43.3551 53.2134 +96.1921 44.1438 54.1814 +95.5786 44.6722 54.83 +96.3953 45.8816 56.3144 +95.7577 46.4112 56.9644 +95.6645 47.2095 57.9442 +96.4173 48.4427 59.4579 +95.7444 48.9724 60.1079 +96.3759 50.1813 61.5917 +95.679 50.7106 62.2414 +95.6591 51.6052 63.3395 +95.6217 52.5035 64.442 +95.6416 53.4471 65.6001 +95.4941 54.3103 66.6597 +95.9935 55.56 68.1935 +95.1491 56.044 68.7876 +95.7494 57.3924 70.4426 +95.5283 58.269 71.5185 +95.3616 59.1918 72.6512 +95.318 60.2065 73.8965 +95.7442 61.5405 75.5339 +95.3766 62.384 76.5692 +95.1994 63.3653 77.7736 +94.866 64.2572 78.8683 +95.2582 65.6626 80.5933 +94.8827 66.5608 81.6957 +95.2185 67.9801 83.4377 +94.8661 68.9313 84.6052 +94.6895 70.0278 85.9511 +94.4255 71.0795 87.2419 +94.394 72.3283 88.7746 +94.5869 73.7785 90.5546 +94.4977 75.0386 92.1013 +94.0115 76.0044 93.2866 +94.0536 77.4218 95.0263 +94.485 79.1986 97.2071 +93.982 80.2238 98.4654 +93.8693 81.6077 100.164 +93.6674 82.9449 101.805 +93.5503 84.3894 103.578 +93.1738 85.6306 105.102 +93.6089 87.6594 107.592 +93.4429 89.1728 109.449 +93.3511 90.7967 111.443 +93.0603 92.2666 113.247 +92.8948 93.9013 115.253 +92.7957 95.6484 117.397 +93.0159 97.7801 120.014 +92.7273 99.4325 122.042 +92.5 101.198 124.209 +91.6893 102.363 125.639 +96.1862 109.605 134.528 +114.948 133.722 164.129 +114.833 136.414 167.433 +114.837 139.339 171.023 +114.542 141.993 174.28 +114.45 144.993 177.962 +114.196 147.889 181.517 +114.473 151.591 186.061 +114.276 154.793 189.991 +114.041 158.061 194.001 +113.968 161.684 198.448 +112.048 162.769 199.781 +109.991 163.671 200.888 +106.654 162.637 199.619 +104.665 163.629 200.836 +101.448 162.672 199.661 +99.5546 163.815 201.064 +96.237 162.582 199.551 +94.3634 163.759 200.996 +91.4297 163.083 200.165 +89.1731 163.58 200.776 +89.8607 169.636 208.209 +89.7385 174.45 214.118 +89.1593 178.613 219.227 +87.0391 179.822 220.711 +84.8354 180.901 222.035 +88.2591 194.416 238.623 +87.8413 200.068 245.561 +85.6432 201.887 247.793 +82.2498 200.884 246.562 +79.5197 201.452 247.259 +76.2899 200.716 246.355 +73.7165 201.683 247.542 +70.3645 200.478 246.064 +67.9663 201.97 247.895 +64.6949 200.852 246.523 +62.0511 201.635 247.483 +58.8621 200.603 246.217 +56.3141 201.728 247.598 +53.1288 200.536 246.134 +50.5283 201.507 247.327 +47.4912 200.716 246.356 +44.8277 201.471 247.282 +41.7031 200.082 245.578 +39.181 201.558 247.39 +36.0665 199.946 245.411 +33.5014 201.331 247.11 +30.4502 199.747 245.167 +27.8288 200.915 246.6 +24.9343 200.116 245.619 +22.2942 201.38 247.17 +19.3951 200.297 245.841 +16.7213 201.532 247.357 +13.8055 199.723 245.137 +11.1155 201.054 246.771 +8.29809 200.161 245.674 +5.5359 200.325 245.876 +2.76195 199.906 245.361 +1.94406e-14 200.545 246.146 +-2.75497 199.401 244.741 +-5.54114 200.515 246.109 +-8.28762 199.908 245.365 +-11.0841 200.486 246.074 +-13.8055 199.723 245.137 +-16.6219 200.334 245.886 +-19.3219 199.541 244.913 +-22.1616 200.183 245.701 +-24.8558 199.486 244.846 +-27.7765 200.537 246.136 +-30.3639 199.182 244.473 +-33.3237 200.263 245.8 +-35.8741 198.88 244.102 +-38.8519 199.866 245.312 +-41.4682 198.955 244.194 +-44.5076 200.032 245.517 +-46.959 198.467 243.595 +-50.0121 199.449 244.8 +-52.6172 198.605 243.764 +-55.6542 199.365 244.697 +-58.2607 198.554 243.702 +-61.326 199.279 244.592 +-63.8974 198.376 243.484 +-67.0099 199.128 244.407 +-69.5637 198.197 243.264 +-72.9291 199.529 244.899 +-75.2628 198.014 243.039 +-78.6004 199.123 244.401 +-80.9479 197.704 242.659 +-84.5303 199.264 244.573 +-87.0395 198.242 243.319 +-90.5469 199.455 244.808 +-92.8162 197.919 242.923 +-96.3072 198.971 244.213 +-98.842 198.01 243.035 +-102.47 199.2 244.495 +-105.06 198.328 243.425 +-108.61 199.235 244.537 +-111.024 198.033 243.063 +-114.987 199.55 244.925 +-117.354 198.258 243.339 +-121.093 199.255 244.562 +-123.767 198.462 243.589 +-127.591 199.471 244.827 +-129.959 198.176 243.238 +-133.708 198.964 244.206 +-138.127 200.653 246.278 +-142.317 201.903 247.813 +-113.419 157.198 192.943 +-113.473 153.705 188.656 +-114.516 151.649 186.131 +-115.379 149.422 183.399 +-117.439 148.781 182.611 +-118.991 147.508 181.05 +-121.763 147.743 181.338 +-123.847 147.122 180.576 +-128.547 149.542 183.546 +-507.402 578.187 709.658 +-511.727 571.3 701.205 +-515 563.425 691.539 +-519.212 556.756 683.353 +-523.124 549.92 674.964 +-526.835 543.03 666.507 +-530.131 535.874 657.723 +-534.774 530.215 650.778 +-538.158 523.432 642.453 +-542.775 517.971 635.749 +-545.828 511.137 627.362 +-164.598 151.272 185.669 +-168.459 151.963 186.517 +-168.23 148.971 182.845 +-1925.88 1674.31 2055.02 +-582.272 497.033 610.051 +-585.205 490.526 602.064 +-590.072 485.728 596.175 +-593.005 479.421 588.434 +-585.973 465.308 571.112 +-586.023 457.103 561.041 +-590.281 452.296 555.141 +-594 447.138 548.81 +-598.986 442.982 543.709 +-601.541 437.089 536.477 +-606.96 433.331 531.864 +-609.913 427.857 525.145 +-614.787 423.78 520.141 +-617.822 418.481 513.637 +-623.236 414.831 509.157 +-625.679 409.244 502.3 +-631.169 405.69 497.938 +-634.558 400.811 491.949 +-639.5 396.944 487.203 +-141.566 86.3506 105.985 +-143.407 85.9584 105.504 +-144.004 84.8196 104.106 +-143.032 82.7857 101.61 +-142.684 81.1485 99.6004 +-142.751 79.7728 97.9119 +-144.3 79.2315 97.2475 +-149.572 80.6893 99.0368 +-679.405 360.089 441.968 +-700.635 364.808 447.76 +-704.25 360.217 442.125 +-710.843 357.147 438.357 +-714.411 352.555 432.72 +-720.762 349.334 428.767 +-724.442 344.815 423.221 +-729.741 341.072 418.627 +-736.772 338.113 414.995 +-729.285 328.574 403.287 +-387.213 171.256 210.197 +-385.609 167.397 205.461 +-386.083 164.489 201.891 +-740.324 309.509 379.887 +-136.955 56.1777 68.9516 +-751.462 302.387 371.145 +-755.611 298.233 366.047 +-761.578 294.783 361.812 +-766.393 290.867 357.006 +-773.054 287.625 353.026 +-778.037 283.732 348.248 +-784.713 280.428 344.193 +-789.169 276.306 339.134 +-796.999 273.332 335.484 +-801.275 269.106 330.297 +-809.043 266.021 326.511 +-814.291 262.068 321.658 +-821.102 258.584 317.382 +-826.531 254.63 312.529 +-412.481 124.271 152.528 +-840.782 247.642 303.952 +-413.395 118.998 146.056 +-854.165 240.211 294.832 +-863.229 237.08 290.989 +-414.595 111.159 136.435 +-401.61 105.074 128.967 +-390.344 99.6151 122.266 +-382.774 95.2378 116.893 +-380.154 92.1731 113.132 +-383.099 90.4727 111.045 +-382.079 87.8388 107.812 +-381.581 85.3501 104.757 +-382.273 83.1407 102.046 +-381.416 80.6097 98.9391 +-382.325 78.4653 96.3071 +-380.628 75.8042 93.0409 +-381.757 73.7217 90.4848 +-381.802 71.4351 87.6784 +-381.813 69.1537 84.8781 +-381.598 66.8438 82.043 +-382.603 64.7543 79.4784 +-381.547 62.3268 76.4989 +-382.102 60.1754 73.8584 +-381.558 57.8606 71.0172 +-381.856 55.6842 68.3459 +-381.732 53.4542 65.6089 +-382.456 51.3481 63.0239 +-381.387 49.0113 60.1558 +-382.049 46.9073 57.5733 +-379.93 44.4773 54.5908 +-380.53 42.3815 52.0184 +-380.213 40.1886 49.3268 +-380.853 38.1011 46.7647 +-380.474 35.9164 44.0832 +-380.164 33.7476 41.4212 +-379.228 31.5354 38.706 +-380.939 29.5439 36.2618 +-380.439 27.3787 33.6042 +-379.907 25.2213 30.9562 +-379.843 23.102 28.355 +-380.148 21.0074 25.7842 +-379.626 18.8716 23.1627 +-379.374 16.7564 20.5665 +-378.692 14.6299 17.9565 +-378.281 12.5222 15.3695 +-379.039 10.4531 12.83 +-380.168 8.3855 10.2922 +-378.87 6.26652 7.69143 +-144.778 1.59622 1.95918 +-146.194 0.805857 0.989096 +96.9 0 0 +96.8963 0.540006 0.650718 +96.8852 1.07997 1.30139 +96.8668 1.61986 1.95196 +96.841 2.15961 2.60238 +96.9077 2.702 3.25596 +96.7672 3.2386 3.90257 +96.7193 3.77774 4.55225 +96.7637 4.32106 5.20695 +96.6013 4.85513 5.85052 +97.5275 5.44894 6.56608 +97.4493 5.99224 7.22076 +97.3637 6.53505 7.87487 +97.2707 7.07742 8.52843 +97.1703 7.61922 9.1813 +97.0625 8.16044 9.83348 +96.9472 8.70102 10.4849 +96.7258 9.23157 11.1242 +96.5959 9.77023 11.7733 +97.0505 10.3714 12.4978 +96.9051 10.9119 13.149 +96.7523 11.4515 13.7993 +96.494 11.978 14.4338 +96.4246 12.5281 15.0966 +97.1301 13.1844 15.8875 +96.0675 13.6009 16.3893 +96.8524 14.2793 17.2068 +96.5563 14.8036 17.8386 +96.4474 15.3566 18.505 +96.9116 16.0054 19.2868 +96.7858 16.5614 19.9568 +96.5558 17.1002 20.606 +97.1836 17.796 21.4445 +96.9367 18.337 22.0964 +96.6824 18.8764 22.7465 +96.4208 19.4145 23.3949 +96.9127 20.109 24.2317 +96.6342 20.6483 24.8816 +96.3483 21.186 25.5296 +96.9035 21.914 26.4068 +97.4461 22.6498 27.2934 +97.1329 23.192 27.9468 +96.8123 23.7324 28.598 +97.3217 24.4816 29.5008 +97.7252 25.2144 30.3839 +97.4693 25.7825 31.0684 +97.1133 26.3247 31.7218 +96.8415 26.8904 32.4034 +97.3839 27.6888 33.3655 +97.0019 28.2304 34.0182 +96.6124 28.7699 34.6683 +97.0279 29.5547 35.6139 +97.3394 30.3182 36.5341 +96.9214 30.8595 37.1863 +96.496 31.3985 37.8358 +96.6842 32.1415 38.7311 +97.1242 32.9789 39.7402 +97.3729 33.7626 40.6846 +96.9953 34.3349 41.3743 +97.2187 35.1257 42.3272 +96.6484 35.6343 42.94 +96.9333 36.4632 43.9389 +96.4313 37.002 44.5881 +96.6041 37.8049 45.5557 +96.7623 38.6126 46.5289 +96.1466 39.1161 47.1356 +96.3632 39.9634 48.1566 +96.564 40.8161 49.1842 +95.8367 41.2813 49.7447 +95.9283 42.1031 50.7351 +96.0046 42.9292 51.7305 +96.2285 43.8334 52.8201 +96.273 44.6682 53.8261 +96.3824 45.545 54.8826 +96.3953 46.3878 55.8982 +95.6784 46.8843 56.4965 +95.7433 47.7696 57.5633 +95.7912 48.6591 58.6352 +95.7444 49.5126 59.6637 +95.0641 50.0443 60.3043 +95.679 51.27 61.7814 +95.6591 52.1745 62.8713 +95.6217 53.0827 63.9657 +95.5667 53.9944 65.0643 +96.0886 55.2514 66.5789 +95.33 55.7847 67.2217 +95.8073 57.0543 68.7515 +95.0966 57.63 69.4452 +95.5283 58.9118 70.9899 +95.4329 59.8896 72.1681 +95.318 60.8707 73.3504 +95.6741 62.1739 74.9208 +95.3766 63.0722 76.0033 +95.1994 64.0644 77.1988 +94.866 64.9661 78.2854 +95.1907 66.3397 79.9407 +94.9496 67.3423 81.1488 +95.2185 68.73 82.821 +95.391 70.0775 84.4447 +94.8194 70.8975 85.4328 +94.2969 71.766 86.4794 +94.4576 73.1754 88.1777 +94.6498 74.6423 89.9454 +94.4977 75.8665 91.4206 +94.6272 77.3461 93.2036 +93.9928 78.2255 94.2632 +93.8831 79.5621 95.8738 +93.9225 81.0577 97.6761 +93.8693 82.508 99.4237 +93.7255 83.9116 101.115 +93.8945 85.634 103.191 +93.2305 86.6276 104.388 +93.3852 88.4145 106.541 +93.5533 90.2632 108.769 +93.3511 91.7984 110.619 +93.2215 93.446 112.604 +93.0008 95.0451 114.531 +92.7957 96.7036 116.53 +92.9644 98.8046 119.061 +92.6765 100.474 121.073 +92.8 102.646 123.69 +91.9355 103.77 125.045 +94.2955 108.636 130.908 +114.518 134.692 162.307 +114.786 137.863 166.128 +114.837 140.877 169.759 +114.633 143.673 173.129 +114.539 146.707 176.785 +114.546 149.98 180.729 +114.516 153.322 184.756 +114.572 156.906 189.074 +114.082 159.862 192.637 +113.683 163.059 196.49 +111.171 163.276 196.751 +109.248 164.36 198.057 +105.927 163.311 196.793 +103.729 163.954 197.568 +100.824 163.456 196.968 +98.5153 163.893 197.494 +95.6767 163.419 196.923 +93.3715 163.826 197.413 +90.495 163.196 196.654 +89.2708 165.566 199.51 +89.9559 171.689 206.889 +89.8312 176.557 212.754 +88.3774 179 215.698 +87.4191 182.6 220.037 +84.6934 182.59 220.025 +88.4796 197.052 237.451 +87.5473 201.599 242.93 +84.7374 201.956 243.36 +81.5988 201.493 242.802 +78.794 201.816 243.192 +75.5663 201.005 242.215 +72.9291 201.73 243.089 +69.8667 201.256 242.517 +67.1347 201.7 243.052 +64.1765 201.441 242.74 +61.4214 201.791 243.162 +58.4976 201.56 242.884 +55.7411 201.878 243.267 +52.6997 201.111 242.342 +49.9652 201.46 242.763 +46.9443 200.593 241.719 +44.3405 201.48 242.787 +41.4682 201.15 242.389 +38.7057 201.31 242.582 +35.8741 201.074 242.298 +33.1146 201.203 242.453 +30.2873 200.871 242.053 +27.5935 201.413 242.707 +24.7382 200.732 241.886 +22.0361 201.244 242.503 +19.2852 201.36 242.642 +16.5277 201.395 242.685 +13.7314 200.842 242.018 +11.0178 201.486 242.794 +8.22741 200.645 241.781 +5.50449 201.386 242.674 +2.73839 200.387 241.47 +1.92753e-14 201.033 242.249 +-2.73141 199.876 240.855 +-5.49576 201.067 242.289 +-8.19338 199.816 240.782 +-10.9899 200.975 242.178 +-13.6965 200.332 241.403 +-16.4806 200.821 241.994 +-19.1692 200.148 241.183 +-21.9663 200.607 241.736 +-24.6362 199.904 240.889 +-27.4628 200.459 241.557 +-30.1147 199.726 240.674 +-33.031 200.694 241.84 +-35.6703 199.931 240.921 +-38.5107 200.296 241.36 +-41.2463 200.074 241.092 +-43.9787 199.836 240.806 +-46.7373 199.71 240.654 +-49.5741 199.883 240.862 +-52.155 199.032 239.837 +-55.1854 199.866 240.842 +-57.7504 198.985 239.781 +-60.8299 199.847 240.82 +-63.3591 198.875 239.648 +-66.4486 199.639 240.568 +-69.0009 198.762 239.512 +-72.0968 199.428 240.314 +-74.8192 199.019 239.821 +-77.8021 199.275 240.131 +-80.4721 198.711 239.45 +-83.6762 199.427 240.313 +-86.2111 198.522 239.223 +-89.5546 199.446 240.336 +-92.163 198.694 239.43 +-95.5763 199.639 240.568 +-98.0301 198.55 239.257 +-101.512 199.515 240.419 +-104.203 198.881 239.655 +-107.535 199.44 240.329 +-110.423 199.134 239.96 +-113.756 199.591 240.511 +-116.444 198.89 239.667 +-120.053 199.724 240.671 +-122.521 198.632 239.355 +-126.28 199.599 240.521 +-129.003 198.888 239.663 +-132.614 199.513 240.417 +-136.452 200.406 241.493 +-140.405 201.388 242.677 +-113.17 158.584 191.097 +-113.388 155.285 187.121 +-114.645 153.494 184.963 +-116.212 152.161 183.357 +-117.841 150.936 181.881 +-119.717 150.046 180.808 +-122.133 149.826 180.543 +-124.926 150.042 180.803 +-130.742 153.774 185.301 +-508.808 586.185 706.365 +-512.81 578.825 697.496 +-516.35 571.134 688.228 +-520.379 564.163 679.827 +-524.206 557.136 671.36 +-528.664 550.927 663.877 +-531.562 543.248 654.624 +-536.279 537.572 647.785 +-539.683 530.707 639.512 +-543.824 524.697 632.27 +-547.002 517.888 624.065 +-163.691 152.098 183.281 +-166.968 152.279 183.499 +-575.244 515.013 620.6 +-578.675 508.636 612.916 +-583.224 503.338 606.532 +-586.348 496.907 598.782 +-590.925 491.796 592.624 +-594.421 485.867 585.479 +-584.168 468.992 565.145 +-587.156 463.039 557.971 +-591.807 458.468 552.463 +-595.736 453.392 546.346 +-600.155 448.743 540.744 +-603.049 443.02 533.848 +-607.821 438.734 528.682 +-611.719 433.859 522.808 +-616.071 429.35 517.375 +-619.732 424.406 511.417 +-624.2 420.056 506.175 +-627.971 415.275 500.414 +-632.991 411.35 495.684 +-635.901 406.091 489.347 +-141.58 88.8493 107.065 +-143.364 88.4119 106.538 +-143.116 86.7304 104.512 +-143.638 85.5375 103.074 +-143.106 83.7418 100.91 +-142.312 81.8304 98.6072 +-142.601 80.5685 97.0866 +-148.527 82.4518 99.356 +-149.42 81.4971 98.2055 +-689.67 369.563 445.33 +-701.87 369.483 445.234 +-706.737 365.477 440.407 +-711.704 361.525 435.644 +-716.144 357.309 430.564 +-721.476 353.538 426.02 +-725.081 348.927 420.464 +-733.841 346.772 417.867 +-737.257 342.069 412.2 +-725.865 330.642 398.43 +-385.984 172.596 207.981 +-385.609 169.244 203.942 +-384.01 165.411 199.323 +-742.325 313.769 378.098 +-136.368 56.5539 68.1486 +-136.461 55.5173 66.8995 +-757.307 302.2 364.157 +-763.71 298.869 360.143 +-768.536 294.898 355.357 +-774.432 291.316 351.042 +-778.903 287.181 346.059 +-786.105 284.025 342.255 +-791.268 280.097 337.523 +-797.878 276.652 333.371 +-803.217 272.735 328.651 +-809.841 269.221 324.417 +-816.429 265.655 320.119 +-823.25 262.121 315.86 +-828.958 258.195 311.13 +-836.426 254.775 307.009 +-842.685 250.94 302.388 +-850.814 247.612 298.377 +-857.088 243.692 293.654 +-412.494 114.539 138.021 +-871.994 236.374 284.835 +-399.67 105.721 127.395 +-391.642 101.049 121.766 +-380.541 95.7265 115.352 +-382.581 93.7851 113.013 +-382.35 91.292 110.009 +-381.233 88.6118 106.779 +-382.053 86.3984 104.112 +-382.746 84.162 101.417 +-382.933 81.8234 98.5988 +-381.374 79.1336 95.3575 +-381.582 76.832 92.5841 +-381.279 74.4417 89.7037 +-382.281 72.3139 87.1396 +-381.14 69.7933 84.1023 +-382.85 67.8034 81.7044 +-383.279 65.5843 79.0303 +-382.418 63.1583 76.1069 +-382.976 60.9784 73.4801 +-381.072 58.4243 70.4024 +-382.733 56.4278 67.9966 +-380.755 53.9057 64.9574 +-382.162 51.8747 62.51 +-382.269 49.6666 59.8492 +-382.049 47.4248 57.1478 +-381.503 45.1542 54.4117 +-380.136 42.8047 51.5804 +-381.594 40.7794 49.14 +-379.865 38.4216 46.2987 +-381.266 36.3881 43.8484 +-381.253 34.2176 41.2328 +-379.624 31.9166 38.4601 +-381.435 29.9088 36.0406 +-379.246 27.594 33.2513 +-380.405 25.5328 30.7676 +-380.241 23.3814 28.175 +-380.546 21.2615 25.6205 +-381.022 19.15 23.0761 +-379.374 16.9412 20.4145 +-377.794 14.7562 17.7815 +-378.88 12.6804 15.2801 +-380.937 10.6214 12.799 +-379.269 8.45796 10.192 +-378.87 6.33565 7.63459 +-146.078 1.62832 1.96216 +-146.394 0.815858 0.983125 +96.9 0 0 +96.8963 0.545855 0.64582 +96.8852 1.09167 1.29159 +96.8668 1.6374 1.93727 +97.7404 2.20328 2.60678 +96.8078 2.72844 3.22812 +97.666 3.30408 3.90918 +97.6176 3.85413 4.55995 +97.6615 4.40838 5.21571 +97.4985 4.95329 5.86041 +97.5275 5.50796 6.51666 +97.3497 6.05095 7.15909 +97.3637 6.60583 7.81559 +97.2707 7.15407 8.46423 +97.2695 7.70961 9.12151 +97.0625 8.24882 9.75946 +96.9472 8.79525 10.406 +96.7258 9.33155 11.0405 +96.5959 9.87605 11.6847 +96.2615 10.3985 12.3028 +96.9051 11.0301 13.05 +96.7523 11.5755 13.6954 +96.494 12.1078 14.3251 +96.4246 12.6637 14.9829 +96.2497 13.2064 15.625 +96.0675 13.7482 16.2659 +95.9755 14.3033 16.9227 +95.7784 14.8434 17.5618 +96.4474 15.5229 18.3657 +96.1371 16.0494 18.9887 +96.7858 16.7408 19.8066 +96.5558 17.2854 20.4509 +96.3184 17.8286 21.0937 +96.9367 18.5355 21.9301 +96.5868 19.062 22.5529 +96.3254 19.6054 23.1958 +96.9127 20.3267 24.0493 +96.729 20.8924 24.7185 +97.1993 21.6046 25.5612 +96.9035 22.1513 26.208 +97.5401 22.9172 27.1141 +97.1329 23.4431 27.7364 +96.8123 23.9894 28.3827 +97.3217 24.7468 29.2788 +96.8907 25.2699 29.8977 +97.4693 26.0618 30.8346 +97.1133 26.6098 31.483 +96.9332 27.2074 32.19 +97.3839 27.9887 33.1144 +97.0929 28.563 33.7939 +96.6124 29.0815 34.4074 +97.0279 29.8747 35.3458 +97.3394 30.6466 36.2591 +96.9214 31.1937 36.9064 +97.2979 32.0023 37.8631 +96.7729 32.5194 38.4748 +97.1242 33.336 39.441 +96.7578 33.9127 40.1233 +96.9953 34.7068 41.0628 +96.5224 35.2519 41.7077 +96.735 36.0525 42.6549 +97.0194 36.8909 43.6469 +96.4313 37.4028 44.2525 +96.6894 38.2481 45.2526 +96.0838 38.7571 45.8549 +96.1466 39.5397 46.7808 +96.3632 40.3962 47.7941 +96.564 41.2582 48.814 +95.8367 41.7283 49.3703 +96.67 42.8882 50.7426 +96.0865 43.4311 51.3849 +96.2285 44.3081 52.4225 +96.1921 45.1141 53.3761 +95.5786 45.6542 54.0151 +96.3154 46.8513 55.4315 +95.6784 47.3921 56.0713 +95.6645 48.2472 57.083 +95.8695 49.2263 58.2413 +95.7444 50.0489 59.2146 +95.6814 50.9148 60.2391 +95.679 51.8253 61.3163 +95.6591 52.7396 62.3981 +95.6217 53.6576 63.4842 +95.5667 54.5792 64.5745 +95.4198 55.461 65.6179 +95.9935 56.7814 67.18 +95.8805 57.7162 68.2861 +95.7494 58.654 69.3956 +95.5283 59.5499 70.4556 +95.4329 60.5382 71.6249 +95.318 61.53 72.7982 +95.7442 62.8933 74.4113 +95.4461 63.8017 75.4861 +95.1994 64.7582 76.6177 +94.9342 65.7168 77.7519 +94.5826 66.6302 78.8326 +94.8827 68.0239 80.4815 +95.1522 69.426 82.1403 +94.8661 70.4466 83.3478 +95.274 72.0094 85.1968 +94.4255 72.642 85.9453 +94.5848 74.068 87.6324 +94.5869 75.4003 89.2087 +94.6222 76.7888 90.8516 +94.0115 77.6751 91.9002 +94.5406 79.5336 94.099 +93.8831 80.4238 95.1522 +93.863 81.8839 96.8798 +93.9869 83.5061 98.799 +93.6093 84.7152 100.23 +93.3209 86.0327 101.788 +93.1738 87.5129 103.54 +93.2734 89.2649 105.612 +93.5533 91.2408 107.95 +93.3511 92.7926 109.786 +93.0066 94.2405 111.499 +93.0538 96.1293 113.734 +93.2137 98.1911 116.173 +92.9644 99.8747 118.165 +92.6258 101.507 120.096 +92.65 103.59 122.561 +92.0832 105.063 124.304 +91.7745 106.877 126.45 +114.375 135.981 160.884 +114.786 139.356 164.877 +114.837 142.402 168.481 +114.542 145.114 171.69 +114.539 148.296 175.454 +114.503 151.546 179.3 +114.473 154.924 183.296 +114.191 158.078 187.028 +114.165 161.711 191.326 +113.276 164.235 194.312 +110.892 164.63 194.78 +108.545 165.071 195.301 +105.621 164.603 194.747 +103.054 164.652 194.806 +100.531 164.747 194.917 +97.8345 164.523 194.652 +95.2914 164.524 194.654 +93.0295 164.993 195.209 +90.4617 164.903 195.102 +89.6289 168.03 198.803 +90.0511 173.732 205.549 +89.7076 178.224 210.863 +88.3774 180.938 214.074 +87.0391 183.775 217.431 +84.7502 184.692 218.515 +88.4796 199.186 235.664 +87.3335 203.284 240.513 +84.5303 203.644 240.938 +81.3735 203.113 240.31 +78.6488 203.626 240.917 +75.5896 203.245 240.466 +72.8167 203.601 240.887 +69.6503 202.805 239.946 +66.906 203.19 240.401 +63.9971 203.053 240.239 +61.0589 202.772 239.907 +58.3336 203.172 240.38 +55.4111 202.857 240.007 +52.5512 202.716 239.84 +49.84 203.132 240.332 +46.9147 202.639 239.749 +44.2014 203.023 240.203 +41.3507 202.752 239.883 +38.596 202.913 240.074 +35.7609 202.61 239.715 +32.9369 202.29 239.337 +30.201 202.468 239.547 +27.4279 202.373 239.434 +24.6597 202.262 239.304 +21.9803 202.909 240.068 +19.1753 202.38 239.443 +16.4387 202.481 239.563 +13.6965 202.501 239.586 +10.9584 202.571 239.669 +8.20386 202.238 239.275 +5.47307 202.405 239.472 +2.72966 201.912 238.889 +1.91651e-14 202.049 239.051 +-2.73141 202.041 239.042 +-5.4626 202.018 239.014 +-8.19338 201.98 238.969 +-10.927 201.99 238.981 +-13.6529 201.856 238.823 +-16.3916 201.901 238.876 +-19.1082 201.672 238.605 +-21.8338 201.557 238.469 +-24.6362 202.069 239.075 +-27.2972 201.408 238.293 +-30.1147 201.889 238.862 +-32.8428 201.712 238.653 +-35.5684 201.519 238.425 +-38.2913 201.312 238.179 +-41.1288 201.664 238.596 +-43.8674 201.488 238.388 +-46.6043 201.298 238.163 +-49.3081 200.964 237.767 +-52.155 201.188 238.032 +-54.8728 200.886 237.675 +-57.5864 200.57 237.301 +-60.4674 200.808 237.583 +-63.3591 201.029 237.844 +-66.0743 200.664 237.413 +-69.0009 200.915 237.709 +-71.7144 200.518 237.24 +-74.6558 200.734 237.496 +-77.5602 200.807 237.582 +-80.4972 200.925 237.721 +-83.2103 200.464 237.176 +-86.2111 200.672 237.422 +-89.1962 200.799 237.572 +-92.1346 200.784 237.555 +-95.05 200.69 237.443 +-98.0301 200.701 237.456 +-101.018 200.693 237.447 +-104.203 201.035 237.851 +-107.21 200.989 237.798 +-110.423 201.291 238.154 +-113.174 200.722 237.481 +-116.199 200.621 237.361 +-119.516 200.983 237.79 +-122.595 200.903 237.695 +-125.643 200.743 237.506 +-127.778 199.133 235.601 +-132.262 201.139 237.975 +-135.934 201.807 238.765 +-127.715 185.17 219.081 +-113.253 160.419 189.797 +-113.431 157.025 185.782 +-114.731 155.273 183.709 +-116.168 153.751 181.908 +-117.93 152.686 180.648 +-119.99 152.016 179.856 +-122.086 151.392 179.117 +-125.584 152.465 180.386 +-130.98 155.723 184.241 +-509.438 593.268 701.916 +-512.958 585.263 692.446 +-517.05 578.103 683.973 +-520.582 570.496 674.974 +-524.618 563.613 666.831 +-528.716 556.949 658.946 +-532.092 549.679 650.344 +-536.279 543.394 642.909 +-540.173 536.942 635.274 +-543.989 530.541 627.702 +-165.913 158.783 187.861 +-165.447 155.395 183.853 +-167.025 153.981 182.18 +-1902.67 1721.9 2037.24 +-579.439 514.823 609.105 +-583.402 508.945 602.151 +-587.131 502.959 595.068 +-591.29 497.43 588.526 +-595.652 492.147 582.276 +-583.794 473.769 560.532 +-587.974 468.706 554.542 +-591.744 463.384 548.245 +-595.993 458.499 542.467 +-599.83 453.358 536.384 +-604.165 448.646 530.809 +-608.153 443.727 524.989 +-612.321 438.989 519.383 +-616.409 434.238 513.762 +-620.005 429.191 507.791 +-624.475 424.793 502.587 +-628.944 420.423 497.417 +-632.991 415.805 491.953 +-636.679 410.991 486.258 +-141.509 89.7664 106.206 +-143.58 89.5043 105.896 +-143.189 87.7143 103.778 +-144.223 86.8164 102.716 +-143.253 84.7359 100.254 +-142.758 82.9755 98.1712 +-142.826 81.5696 96.5078 +-148.451 83.3028 98.5585 +-149.116 82.2119 97.2677 +-697.33 377.715 446.888 +-702.256 373.69 442.126 +-707.047 369.598 437.284 +-711.939 365.561 432.508 +-717.326 361.775 428.029 +-721.634 357.445 422.905 +-725.56 352.939 417.575 +-733.6 350.412 414.585 +-736.367 345.356 408.603 +-725.214 333.923 395.075 +-387.868 175.316 207.423 +-386.927 171.663 203.1 +-384.756 167.527 198.207 +-742.242 317.132 375.21 +-135.361 56.7445 67.1364 +-136.039 55.9452 66.1907 +-758.07 305.781 361.78 +-763.966 302.207 357.552 +-769.651 298.524 353.194 +-774.605 294.537 348.477 +-780.809 291.002 344.294 +-786.105 287.101 339.679 +-792.405 283.538 335.464 +-798.142 279.741 330.972 +-803.747 275.871 326.392 +-810.639 272.406 322.293 +-817.231 268.796 318.022 +-823.519 265.046 313.585 +-829.767 261.246 309.089 +-836.967 257.701 304.895 +-843.863 254.013 300.532 +-851.269 250.428 296.29 +-857.362 246.41 291.537 +-413.319 116.011 137.256 +-412.018 112.896 133.571 +-393.388 105.186 124.449 +-391.642 102.144 120.85 +-382.588 97.2835 115.1 +-382.768 94.8473 112.217 +-382.631 92.3485 109.261 +-382.737 89.9246 106.393 +-381.581 87.2263 103.2 +-381.611 84.8211 100.355 +-381.226 82.3403 97.4197 +-382.325 80.1901 94.8757 +-383.013 77.9553 92.2316 +-380.801 75.1531 88.9162 +-382.953 73.2255 86.6357 +-382.774 70.852 83.8274 +-381.501 68.2963 80.8038 +-382.7 66.1945 78.317 +-383.29 63.9877 75.7061 +-382.394 61.5451 72.8161 +-380.683 58.9969 69.8013 +-383.707 57.1841 67.6565 +-381.732 54.6293 64.6338 +-382.064 52.4231 62.0236 +-381.681 50.1273 59.3074 +-380.675 47.7659 56.5135 +-380.618 45.5374 53.8769 +-381.81 43.4588 51.4176 +-380.706 41.1252 48.6567 +-379.865 38.8377 45.9502 +-379.189 36.5819 43.2813 +-379.174 34.3995 40.6993 +-379.228 32.2286 38.1308 +-380.046 30.1226 35.639 +-378.65 27.849 32.9491 +-378.714 25.6947 30.4002 +-379.047 23.5604 27.8751 +-379.849 21.4523 25.381 +-379.925 19.3017 22.8365 +-380.072 17.1562 20.2981 +-379.591 14.987 17.7316 +-378.481 12.8041 15.149 +-379.538 10.697 12.6559 +-378.769 8.53827 10.1019 +-379.27 6.41103 7.58512 +-146.378 1.64933 1.95138 +-145.294 0.818504 0.9684 +96.9 0 0 +96.8963 0.551659 0.640869 +96.8852 1.10328 1.28169 +96.8668 1.65481 1.92242 +96.841 2.20622 2.56299 +96.8078 2.75746 3.20337 +96.7672 3.30848 3.84351 +96.8191 3.86325 4.48798 +96.7637 4.4143 5.12815 +97.4985 5.00596 5.81549 +97.5275 5.56652 6.4667 +97.4493 6.12154 7.11147 +97.3637 6.67607 7.75568 +97.37 7.23751 8.40791 +97.2695 7.79159 9.05159 +97.1616 8.34507 9.69458 +96.9472 8.88877 10.3262 +96.7258 9.43077 10.9559 +96.5959 9.98106 11.5951 +96.2615 10.509 12.2085 +96.9051 11.1473 12.95 +96.7523 11.6986 13.5904 +96.494 12.2365 14.2153 +96.4246 12.7984 14.8681 +96.2497 13.3469 15.5052 +96.0675 13.8943 16.1412 +96.8524 14.5874 16.9464 +96.5563 15.123 17.5686 +97.3207 15.83 18.39 +97.0084 16.3671 19.0139 +96.7858 16.9188 19.6548 +96.5558 17.4692 20.2941 +96.4145 18.0361 20.9528 +96.9367 18.7326 21.7619 +96.6824 19.2838 22.4022 +96.4208 19.8335 23.0408 +97.0078 20.563 23.8883 +96.729 21.1146 24.5291 +97.1993 21.8343 25.3652 +96.9035 22.3869 26.0071 +97.5401 23.1608 26.9062 +97.2266 23.7152 27.5503 +96.8123 24.2445 28.1652 +97.3217 25.0099 29.0543 +96.9834 25.563 29.6969 +97.4693 26.3389 30.5982 +97.1133 26.8928 31.2417 +96.8415 27.4706 31.913 +97.3839 28.2863 32.8605 +97.0929 28.8667 33.5348 +96.703 29.4183 34.1757 +97.0279 30.1924 35.0749 +96.7102 30.7722 35.7485 +96.9214 31.5254 36.6235 +97.2979 32.3426 37.5728 +96.8616 32.8952 38.2148 +97.1242 33.6905 39.1387 +96.6699 34.2422 39.7795 +96.9079 35.0442 40.7113 +96.5224 35.6267 41.388 +96.735 36.4358 42.3279 +96.9333 37.25 43.2739 +96.3456 37.7669 43.8743 +96.6894 38.6548 44.9057 +96.7623 39.4458 45.8247 +96.231 39.9952 46.4629 +96.4471 40.8613 47.4691 +95.8135 41.3728 48.0633 +96.0026 42.245 49.0765 +96.5876 43.3073 50.3106 +96.0865 43.8929 50.991 +96.147 44.7413 51.9766 +96.1112 45.5555 52.9224 +95.659 46.1785 53.6461 +96.3953 47.3888 55.0522 +95.6784 47.896 55.6414 +95.6645 48.7602 56.6454 +95.8695 49.7497 57.7949 +95.7444 50.5811 58.7607 +95.6814 51.4562 59.7773 +95.679 52.3764 60.8463 +96.3434 53.6817 62.3627 +95.6217 54.2282 62.9975 +96.1659 55.5053 64.4813 +96.0886 56.4436 65.5712 +95.9935 57.3851 66.665 +95.8805 58.3299 67.7626 +95.6769 59.2328 68.8115 +95.5283 60.1831 69.9155 +95.4329 61.1819 71.0759 +95.318 62.1842 72.2402 +95.7442 63.562 73.8408 +95.4461 64.4802 74.9074 +95.1994 65.4468 76.0304 +94.9342 66.4156 77.1558 +95.1907 67.7712 78.7307 +94.8827 68.7472 79.8645 +95.1522 70.1642 81.5107 +94.8661 71.1956 82.7089 +94.8844 72.4769 84.1974 +94.2969 73.3146 85.1705 +95.2845 75.4087 87.6033 +94.5869 76.202 88.5249 +94.6222 77.6053 90.1551 +94.0115 78.5011 91.1957 +93.9928 79.9135 92.8365 +93.9433 81.3311 94.4834 +93.9225 82.8068 96.1977 +93.9281 84.3412 97.9803 +93.6674 85.6695 99.5233 +93.3209 86.9475 101.008 +93.7402 88.981 103.37 +93.3293 90.2682 104.866 +93.5533 92.211 107.123 +93.4056 93.8341 109.008 +93.0603 95.2974 110.708 +93.1068 97.2069 112.927 +93.266 99.2907 115.347 +92.9644 100.937 117.259 +92.6258 102.586 119.175 +92.65 104.692 121.622 +92.0832 106.181 123.351 +92.2593 108.583 126.143 +114.423 137.484 159.717 +114.786 140.838 163.613 +114.929 144.032 167.324 +114.496 146.599 170.306 +114.539 149.873 174.109 +114.459 153.099 177.857 +114.085 156.041 181.275 +114.234 159.818 185.663 +114.124 163.371 189.791 +113.724 166.637 193.585 +111.251 166.92 193.913 +108.545 166.826 193.804 +105.659 166.413 193.324 +103.054 166.403 193.313 +100.824 166.984 193.987 +97.8703 166.333 193.231 +95.5716 166.762 193.729 +92.7559 166.258 193.143 +90.495 166.717 193.678 +89.5638 169.694 197.135 +90.0511 175.579 203.973 +89.6767 180.057 209.174 +88.3774 182.862 212.433 +86.9513 185.542 215.547 +84.7502 186.656 216.84 +88.5072 201.366 233.93 +87.3335 205.446 238.669 +84.5303 205.809 239.091 +81.5988 205.84 239.127 +78.4069 205.158 238.335 +75.5663 205.343 238.549 +72.6142 205.193 238.376 +69.6719 205.026 238.181 +66.9268 205.414 238.633 +64.017 205.276 238.472 +61.097 205.056 238.217 +58.3154 205.268 238.463 +55.4111 205.014 238.167 +52.6667 205.322 238.525 +49.8087 205.163 238.34 +46.9443 204.922 238.06 +44.0761 204.6 237.687 +41.3376 204.844 237.969 +38.596 205.071 238.233 +35.7609 204.764 237.877 +33.031 205.025 238.18 +30.2106 204.686 237.786 +27.4279 204.525 237.599 +24.6754 204.543 237.621 +21.9733 205.001 238.153 +19.2303 205.118 238.289 +16.4387 204.634 237.726 +13.6921 204.589 237.674 +10.9584 204.725 237.831 +8.20647 204.453 237.516 +5.47307 204.557 237.637 +2.72879 203.994 236.982 +1.91651e-14 204.197 237.218 +-2.73053 204.124 237.133 +-5.46435 204.231 237.258 +-8.19338 204.127 237.137 +-10.927 204.138 237.149 +-13.6529 204.003 236.993 +-16.3864 203.982 236.969 +-19.1143 203.881 236.852 +-21.8477 203.83 236.792 +-24.5577 203.568 236.487 +-27.2885 203.485 236.392 +-30.0285 203.452 236.353 +-32.7488 203.273 236.145 +-35.5684 203.662 236.597 +-38.3035 203.517 236.428 +-41.1419 203.873 236.842 +-43.756 203.114 235.96 +-46.6043 203.438 236.337 +-49.2925 203.036 235.87 +-52.155 203.327 236.207 +-55.0638 203.729 236.675 +-57.7504 203.279 236.152 +-60.4674 202.943 235.762 +-63.3591 203.166 236.021 +-66.0743 202.798 235.593 +-69.0226 203.115 235.961 +-71.7369 202.714 235.496 +-74.6325 202.806 235.602 +-77.5844 203.006 235.834 +-80.2468 202.43 235.165 +-83.2103 202.595 235.358 +-86.2378 202.869 235.675 +-89.1962 202.934 235.751 +-92.163 202.982 235.806 +-95.0793 202.886 235.695 +-98.0902 202.959 235.78 +-100.77 202.331 235.051 +-103.949 202.678 235.453 +-107.177 203.065 235.903 +-110.123 202.877 235.685 +-113.209 202.917 235.731 +-116.129 202.631 235.399 +-119.516 203.12 235.967 +-122.558 202.978 235.803 +-125.643 202.877 235.685 +-128.084 201.732 234.355 +-132.262 203.278 236.151 +-135.934 203.953 236.935 +-128.163 187.795 218.164 +-113.253 162.125 188.342 +-113.431 158.695 184.358 +-114.645 156.806 182.164 +-116.125 155.327 180.446 +-117.885 154.252 179.196 +-120.126 153.807 178.679 +-122.086 153.002 177.744 +-125.584 154.086 179.004 +-130.98 157.379 182.829 +-509.196 599.291 696.204 +-513.647 592.281 688.061 +-517.2 584.419 678.927 +-520.836 576.843 670.126 +-524.463 569.438 661.523 +-528.246 562.37 653.312 +-532.357 555.8 645.68 +-536.279 549.172 637.98 +-540.01 542.487 630.214 +-543.437 535.638 622.258 +-165.913 160.471 186.421 +-164.881 156.51 181.819 +-167.542 156.099 181.342 +-169.739 155.246 180.351 +-579.262 520.139 604.252 +-583.759 514.671 597.9 +-587.371 508.515 590.748 +-591.046 502.512 583.775 +-595.345 497.123 577.514 +-584.168 479.112 556.591 +-587.722 473.487 550.056 +-591.998 468.512 544.277 +-596.314 463.625 538.599 +-599.83 458.178 532.272 +-604.493 453.663 527.026 +-608.153 448.445 520.965 +-611.786 443.269 514.951 +-616.071 438.615 509.544 +-620.619 434.184 504.397 +-624.475 429.31 498.735 +-628.596 424.659 493.332 +-632.641 419.994 487.912 +-636.891 415.499 482.691 +-141.794 90.9042 105.605 +-143.652 90.5011 105.136 +-143.189 88.647 102.982 +-144.296 87.7839 101.98 +-143.327 85.6812 99.537 +-142.758 83.8578 97.4187 +-143.5 82.8257 96.2197 +-148.074 83.9746 97.5543 +-149.648 83.3822 96.8662 +-697.33 381.731 443.462 +-702.256 377.663 438.737 +-707.591 373.815 434.266 +-711.939 369.448 429.192 +-717.326 365.622 424.747 +-722.19 361.524 419.987 +-726.599 357.202 414.966 +-734.082 354.371 411.678 +-737.095 349.373 405.872 +-725.214 337.473 392.047 +-385.001 175.871 204.312 +-384.702 172.49 200.384 +-384.01 168.98 196.306 +-743.076 320.864 372.752 +-135.278 57.3124 66.5805 +-136.208 56.6102 65.7647 +-758.07 309.032 359.007 +-763.88 305.386 354.771 +-769.051 301.463 350.213 +-774.174 297.503 345.614 +-780.549 293.998 341.541 +-786.366 290.25 337.187 +-792.405 286.553 332.892 +-797.878 282.622 328.325 +-803.747 278.804 323.89 +-810.639 275.302 319.822 +-816.697 271.476 315.378 +-823.25 267.777 311.08 +-830.576 264.281 307.019 +-836.426 260.273 302.362 +-843.863 256.714 298.228 +-850.541 252.874 293.767 +-857.362 249.03 289.302 +-865.43 245.493 285.192 +-412.57 114.25 132.726 +-395.143 106.779 124.046 +-392.477 103.45 120.179 +-381.471 98.0316 113.885 +-380.434 95.2713 110.678 +-382.631 93.3305 108.423 +-382.643 90.8586 105.552 +-382.43 88.3495 102.637 +-380.949 85.5742 99.4127 +-382.08 83.4024 96.8897 +-381.849 80.9416 94.0309 +-382.727 78.7255 91.4564 +-382.904 76.3723 88.7227 +-382.761 73.967 85.9284 +-381.909 71.4435 82.9969 +-382.079 69.1269 80.3056 +-381.444 66.6792 77.462 +-383.29 64.6681 75.1258 +-382.102 62.1521 72.2029 +-380.683 59.6242 69.2662 +-382.733 57.6454 66.9674 +-381.146 55.1254 64.0399 +-381.575 52.9127 61.4694 +-382.269 50.7383 58.9434 +-380.479 48.249 56.0514 +-380.815 46.0453 53.4915 +-382.007 43.9435 51.0498 +-379.819 41.4656 48.1711 +-379.667 39.2302 45.5743 +-379.189 36.9708 42.9495 +-379.174 34.7653 40.3873 +-380.517 32.682 37.9671 +-378.259 30.2997 35.1996 +-379.246 28.1894 32.748 +-380.802 26.1111 30.3336 +-379.843 23.8609 27.7195 +-379.65 21.6691 25.1733 +-379.925 19.5069 22.6614 +-379.872 17.3295 20.132 +-380.389 15.1782 17.6327 +-378.281 12.9335 15.025 +-380.537 10.8391 12.592 +-378.569 8.62449 10.0192 +-377.471 6.44847 7.49127 +-145.478 1.65663 1.92452 +-145.194 0.826633 0.96031 +96.9 0 0 +96.8963 0.557418 0.635866 +96.8852 1.1148 1.27169 +96.8668 1.67209 1.90741 +96.841 2.22925 2.54298 +96.8078 2.78624 3.17837 +96.8671 3.34648 3.81744 +96.8191 3.90358 4.45295 +96.7637 4.46038 5.08811 +97.4985 5.05822 5.77009 +97.4278 5.61889 6.40966 +97.4493 6.18545 7.05596 +97.3637 6.74577 7.69513 +97.37 7.31307 8.34228 +97.071 7.85684 8.96258 +97.1616 8.43219 9.6189 +96.8482 8.9724 10.2351 +96.7258 9.52923 10.8703 +96.3984 10.0646 11.4811 +96.2615 10.6187 12.1132 +96.9051 11.2637 12.8489 +96.7523 11.8207 13.4843 +96.5921 12.3768 14.1187 +96.4246 12.932 14.752 +96.1519 13.4725 15.3685 +96.0675 14.0394 16.0152 +96.7549 14.7249 16.7972 +96.5563 15.2809 17.4315 +96.3504 15.8358 18.0644 +97.0084 16.538 18.8655 +96.7858 17.0954 19.5014 +96.5558 17.6515 20.1357 +96.3184 18.2063 20.7686 +96.9367 18.9282 21.5921 +96.6824 19.4851 22.2273 +96.4208 20.0405 22.8609 +96.1518 20.5944 23.4927 +96.729 21.335 24.3376 +96.3483 21.8691 24.9469 +96.9035 22.6206 25.8041 +97.5401 23.4026 26.6962 +97.2266 23.9628 27.3352 +97.6525 24.7102 28.1878 +97.3217 25.271 28.8275 +96.8907 25.8052 29.4369 +97.4693 26.6138 30.3594 +97.2053 27.1993 31.0272 +96.8415 27.7574 31.6639 +97.3839 28.5816 32.604 +97.0929 29.168 33.273 +96.6124 29.6976 33.8771 +97.0279 30.5076 34.8011 +96.6204 31.0646 35.4365 +96.9214 31.8545 36.3376 +97.2088 32.6503 37.2454 +96.8616 33.2387 37.9165 +97.1242 34.0422 38.8332 +96.6699 34.5996 39.469 +96.9953 35.442 40.43 +96.5224 35.9986 41.0649 +96.735 36.8162 41.9975 +96.9333 37.6389 42.936 +96.4313 38.1951 43.5705 +96.6894 39.0583 44.5552 +96.7623 39.8576 45.467 +96.231 40.4127 46.1002 +96.3632 41.2519 47.0575 +95.8135 41.8047 47.6881 +95.8367 42.6123 48.6094 +96.5876 43.7594 49.9179 +96.0865 44.3511 50.5929 +96.147 45.2084 51.5708 +96.1921 46.0698 52.5534 +95.659 46.6606 53.2274 +95.6765 47.5264 54.2151 +95.6784 48.396 55.2071 +95.7433 49.3099 56.2495 +95.8695 50.2691 57.3437 +95.7444 51.1091 58.3019 +95.6814 51.9933 59.3106 +96.3684 53.3045 60.8063 +96.3434 54.2421 61.8759 +95.6217 54.7943 62.5058 +96.1659 56.0848 63.9779 +95.4198 56.6359 64.6065 +95.9935 57.9842 66.1446 +95.8073 58.8939 67.1823 +95.6769 59.8512 68.2743 +95.6003 60.8572 69.4219 +95.4329 61.8207 70.521 +95.318 62.8334 71.6763 +95.7442 64.2256 73.2644 +95.5155 65.2007 74.3767 +95.1994 66.13 75.4369 +94.866 67.0608 76.4986 +95.1907 68.4788 78.1161 +95.5519 69.9547 79.7998 +95.1522 70.8967 80.8744 +94.8661 71.9389 82.0632 +94.8844 73.2336 83.5401 +94.4255 74.1808 84.6207 +95.2845 76.196 86.9194 +94.6498 77.049 87.8925 +94.6222 78.4155 89.4513 +94.504 79.7365 90.9583 +93.9928 80.7477 92.1118 +94.3646 82.5487 94.1662 +93.9225 83.6713 95.4468 +91.1655 82.7154 94.3564 +93.6674 86.5638 98.7464 +94.1239 88.6113 101.082 +93.7402 89.9099 102.563 +93.2734 91.1558 103.985 +93.5533 93.1736 106.286 +93.3511 94.7583 108.094 +93.0603 96.2923 109.844 +93.5837 98.7247 112.619 +93.266 100.327 114.447 +93.2734 102.329 116.731 +92.6258 103.657 118.245 +92.6 105.727 120.607 +92.0832 107.289 122.388 +92.5502 110.063 125.553 +114.423 138.919 158.47 +92.0634 114.137 130.201 +114.929 145.536 166.018 +114.633 148.306 169.177 +114.539 151.437 172.75 +114.634 154.934 176.739 +114.085 157.67 179.86 +111.106 157.066 179.17 +114.124 165.077 188.309 +106.118 157.116 179.227 +111.251 168.662 192.399 +101.199 157.16 179.278 +105.659 168.15 191.815 +96.2739 157.078 179.184 +100.824 168.727 192.473 +91.4913 157.115 179.227 +95.5716 168.503 192.217 +90.8063 164.462 187.607 +90.495 168.458 192.166 +89.7266 171.777 195.952 +90.0511 177.412 202.381 +85.8449 174.163 198.673 +88.3774 184.771 210.775 +89.1734 192.27 219.329 +84.7502 188.604 215.148 +84.1796 193.52 220.755 +87.3335 207.591 236.806 +78.5775 193.313 220.519 +81.5988 207.989 237.261 +73.0846 193.228 220.422 +75.5663 207.486 236.687 +67.5528 192.883 220.029 +69.6719 207.166 236.322 +62.1032 192.6 219.705 +64.017 207.419 236.61 +56.7657 192.508 219.601 +58.3154 207.411 236.601 +51.5735 192.807 219.942 +52.6667 207.465 236.663 +46.3515 192.915 220.065 +46.9443 207.061 236.202 +41.0143 192.375 219.449 +41.3376 206.982 236.112 +35.8174 192.294 219.356 +35.7609 206.902 236.02 +30.6373 192.152 219.195 +30.2106 206.823 235.93 +25.5279 192.344 219.414 +24.6754 206.679 235.766 +20.3689 192.017 219.041 +19.2303 207.26 236.428 +15.2873 192.288 219.35 +13.6921 206.725 235.818 +10.1837 192.237 219.291 +8.20647 206.588 235.662 +5.08912 192.193 219.241 +2.72879 206.123 235.132 +1.78364e-14 192.024 219.049 +-2.73053 206.255 235.282 +-5.08563 192.061 219.091 +-8.19338 206.258 235.286 +-10.1802 192.171 219.216 +-13.6529 206.132 235.142 +-15.2455 191.761 218.749 +-19.1143 206.01 235.003 +-20.3759 192.082 219.115 +-24.5577 205.693 234.641 +-25.4669 191.884 218.889 +-30.0285 205.576 234.508 +-30.5537 191.628 218.597 +-35.5684 205.788 234.75 +-35.7321 191.836 218.834 +-41.1419 206.001 234.993 +-40.8056 191.396 218.332 +-46.6043 205.562 234.492 +-45.8353 190.767 217.615 +-52.155 205.449 234.363 +-51.0352 190.795 217.646 +-57.7504 205.401 234.309 +-56.2505 190.761 217.608 +-63.3591 205.287 234.178 +-61.4587 190.6 217.425 +-69.0226 205.235 234.119 +-66.9004 191.021 217.904 +-74.6325 204.923 233.763 +-71.9476 190.222 216.993 +-80.2468 204.543 233.329 +-77.6198 190.957 217.831 +-86.2378 204.987 233.836 +-82.8566 190.478 217.285 +-92.163 205.101 233.966 +-88.384 190.568 217.388 +-98.0902 205.078 233.939 +-94.0339 190.776 217.625 +-103.949 204.794 233.615 +-99.6564 190.787 217.637 +-110.123 204.995 233.845 +-105.479 191.036 217.922 +-116.129 204.747 233.562 +-111.345 191.209 218.119 +-122.558 205.097 233.962 +-116.99 190.877 217.74 +-128.084 203.838 232.526 +-114.914 178.458 203.573 +-135.934 206.082 235.085 +-114.212 169.1 192.898 +-113.253 163.817 186.872 +-117.446 166.027 189.393 +-114.645 158.443 180.742 +-121.999 164.888 188.093 +-117.885 155.862 177.797 +-130.159 168.393 192.092 +-122.086 154.599 176.356 +-147.132 182.411 208.082 +-130.98 159.022 181.401 +-159.987 190.261 217.037 +-513.647 598.464 682.689 +-1638.25 1870.49 2133.74 +-520.836 582.865 664.895 +-536.258 588.323 671.12 +-528.246 568.241 648.212 +-544.439 574.349 655.18 +-536.279 554.905 633 +-165.679 168.177 191.846 +-543.437 541.23 617.4 +-168.373 164.551 187.709 +-164.881 158.143 180.4 +-579.542 545.599 622.384 +-169.739 156.867 178.943 +-594.427 539.328 615.231 +-583.759 520.044 593.233 +-585.566 512.244 584.335 +-591.046 507.758 579.218 +-593.682 500.91 571.406 +-584.168 484.114 552.246 +-601.693 489.803 558.735 +-591.998 473.403 540.028 +-610.198 479.372 546.837 +-599.83 462.962 528.117 +-618.139 468.747 534.716 +-608.153 453.127 516.898 +-626.641 458.772 523.337 +-616.071 443.194 505.567 +-635.145 448.986 512.174 +-624.475 433.792 494.841 +-141.849 96.8289 110.456 +-632.641 424.378 484.103 +-144.25 95.0892 108.472 +-141.794 91.8532 104.78 +-143.077 91.08 103.898 +-143.189 89.5724 102.178 +-144.369 88.7451 101.235 +-143.327 86.5757 98.76 +-679.68 403.42 460.196 +-143.5 83.6904 95.4686 +-705.276 404.145 461.023 +-149.648 84.2527 96.11 +-714.107 394.996 450.586 +-702.256 381.606 435.312 +-723.756 386.346 440.719 +-711.939 373.305 425.842 +-739.233 380.721 434.302 +-722.19 365.298 416.709 +-725.081 360.178 410.867 +-734.082 358.071 408.464 +-734.507 351.781 401.289 +-725.214 340.996 388.986 +-385.575 177.971 203.018 +-384.702 174.291 198.819 +-754.673 335.553 382.777 +-743.076 324.214 369.842 +-383.44 164.146 187.247 +-136.208 57.2011 65.2514 +-383.148 157.824 180.035 +-763.88 308.574 352.002 +-136.032 53.8805 61.4634 +-774.174 300.609 342.916 +-798.302 303.824 346.583 +-786.366 293.28 334.555 +-810.073 296 337.658 +-797.878 285.572 325.762 +-821.671 287.997 328.528 +-810.639 278.176 317.325 +-835.319 280.565 320.05 +-823.25 270.572 308.651 +-2944.9 946.819 1080.07 +-836.426 262.99 300.002 +-412.279 126.73 144.565 +-850.541 255.514 291.474 +-877.369 257.502 293.742 +-865.43 248.055 282.965 +-384.955 107.716 122.875 +-395.143 107.893 123.078 +-382.556 101.888 116.227 +-381.471 99.055 112.995 +-383.515 97.0457 110.703 +-382.631 94.3048 107.577 +-381.233 91.4689 104.342 +-382.43 89.2718 101.836 +-382.179 86.7471 98.9555 +-382.08 84.2731 96.1333 +-380.993 81.6034 93.0878 +-382.727 79.5473 90.7425 +-381.183 76.8222 87.6338 +-382.761 74.7392 85.2576 +-381.909 72.1894 82.349 +-382.079 69.8486 79.6787 +-381.541 67.3924 76.8769 +-383.29 65.3432 74.5393 +-382.976 62.9445 71.803 +-380.683 60.2466 68.7255 +-383.025 58.2917 66.4954 +-381.146 55.7009 63.5399 +-382.456 53.5885 61.1303 +-382.269 51.268 58.4832 +-382.049 48.9539 55.8435 +-380.815 46.526 53.0739 +-380.037 44.1734 50.3901 +-379.819 41.8985 47.7951 +-380.754 39.7532 45.3479 +-379.189 37.3568 42.6142 +-380.065 35.2108 40.1662 +-380.517 33.0232 37.6707 +-380.939 30.833 35.1723 +-379.246 28.4837 32.4924 +-379.907 26.3217 30.0261 +-379.843 24.11 27.5031 +-380.148 21.924 25.0095 +-379.925 19.7105 22.4845 +-378.476 17.4461 19.9013 +-380.389 15.3366 17.495 +-381.676 13.1858 15.0415 +-380.537 10.9523 12.4937 +-378.269 8.70767 9.93315 +-377.471 6.51579 7.43279 +-146.178 1.68197 1.91868 +-145.194 0.835263 0.952813 +96.9 0 0 +96.8963 0.563132 0.630812 +96.6853 1.1239 1.25897 +96.8668 1.68923 1.89225 +96.841 2.2521 2.52277 +96.9077 2.81771 3.15635 +96.8671 3.38078 3.7871 +97.6176 3.97612 4.45398 +97.5618 4.54326 5.08929 +97.5982 5.1153 5.73008 +96.6309 5.63005 6.3067 +97.4493 6.24885 6.99987 +96.4686 6.75231 7.56384 +97.37 7.38803 8.27596 +97.1703 7.9455 8.90043 +97.0625 8.5099 9.53266 +96.9472 9.07363 10.1641 +97.6159 9.71548 10.8831 +96.6947 10.199 11.4248 +97.1491 10.8266 12.1277 +96.9051 11.3792 12.7468 +96.654 11.9298 13.3636 +96.5921 12.5037 14.0065 +96.4246 13.0646 14.6347 +96.1519 13.6106 15.2464 +96.0675 14.1833 15.8879 +96.6575 14.8608 16.6469 +96.6536 15.4531 17.3104 +96.4474 16.0142 17.9389 +97.0084 16.7075 18.7155 +96.8824 17.2879 19.3657 +96.5558 17.8325 19.9757 +97.1836 18.5581 20.7885 +96.9367 19.1222 21.4204 +96.6824 19.6848 22.0506 +96.3254 20.2259 22.6568 +96.9127 20.9701 23.4904 +96.6342 21.5325 24.1204 +96.3483 22.0933 24.7486 +96.715 22.808 25.5492 +97.5401 23.6425 26.484 +97.9759 24.395 27.327 +96.8123 24.7487 27.7232 +97.3217 25.53 28.5984 +97.7252 26.2942 29.4544 +97.4693 26.8867 30.118 +97.2053 27.4781 30.7805 +97.6669 28.281 31.6799 +96.6531 28.6578 32.1021 +97.0929 29.467 33.0085 +96.6124 30.002 33.6078 +97.0279 30.8203 34.5244 +97.3394 31.6166 35.4164 +96.9214 32.1811 36.0487 +97.2088 32.985 36.9493 +96.7729 33.5487 37.5807 +97.1242 34.3912 38.5245 +96.6699 34.9543 39.1553 +96.9079 35.773 40.0724 +96.4354 36.3348 40.7017 +96.735 37.1936 41.6637 +96.9333 38.0247 42.5947 +96.4313 38.5866 43.2241 +96.6894 39.4587 44.201 +96.6775 40.2308 45.066 +96.1466 40.7912 45.6937 +97.1181 42.0012 47.0491 +96.3972 42.4905 47.5972 +96.5 43.3471 48.5567 +96.5876 44.2079 49.5211 +96.0865 44.8058 50.1907 +96.2285 45.7105 51.2042 +96.1921 46.542 52.1357 +96.3021 47.4558 53.1593 +96.3953 48.3743 54.1882 +95.8371 48.9732 54.8591 +95.6645 49.7743 55.7564 +95.7912 50.7429 56.8415 +95.7444 51.633 57.8385 +95.6814 52.5263 58.8392 +96.3684 53.8509 60.323 +95.6591 54.4089 60.948 +96.2255 55.7054 62.4004 +95.5667 56.3067 63.0739 +96.0886 57.6175 64.5422 +95.33 58.1737 65.1653 +95.8073 59.4976 66.6483 +95.7494 60.5105 67.7829 +95.5283 61.4347 68.8182 +95.4329 62.4544 69.9604 +95.318 63.4775 71.1065 +95.7442 64.884 72.682 +95.5155 65.869 73.7855 +95.1306 66.7599 74.7835 +95.548 68.2357 76.4366 +95.3258 69.2793 77.6056 +94.9496 70.2262 78.6664 +95.2185 71.6734 80.2874 +94.8661 72.6763 81.4109 +94.8844 73.9842 82.876 +94.2327 74.788 83.7764 +94.394 76.2578 85.4228 +94.6498 77.8388 87.1938 +94.56 79.1673 88.6821 +94.1346 80.2389 89.8824 +94.5406 82.0509 91.9122 +93.7628 82.8627 92.8216 +92.6139 83.3515 93.3691 +91.1655 83.5633 93.6064 +92.9125 86.7459 97.1715 +94.0092 89.4104 100.156 +93.4004 90.5019 101.379 +93.2734 92.0902 103.158 +93.6085 94.184 105.503 +93.2967 95.6737 107.172 +93.114 97.3359 109.034 +93.0538 99.172 111.091 +93.1615 101.242 113.41 +93.2734 103.378 115.803 +92.8795 105.006 117.627 +93.05 107.33 120.229 +92.6249 109.026 122.129 +92.5017 111.133 124.489 +92.4734 113.422 127.054 +92.2512 115.542 129.429 +91.6109 117.197 131.282 +113.361 148.164 165.971 +114.762 153.287 171.71 +114.897 156.882 175.736 +113.569 158.565 177.622 +110.684 158.072 177.07 +108.193 158.104 177.105 +105.752 158.179 177.19 +103.276 158.177 177.187 +100.535 157.729 176.685 +98.3879 158.184 177.195 +95.712 157.761 176.722 +93.5678 158.188 177.2 +91.0255 157.917 176.896 +90.3185 160.873 180.208 +90.8406 166.21 186.186 +90.3615 169.934 190.357 +89.694 173.475 194.324 +88.179 175.505 196.598 +85.4741 175.187 196.242 +89.1893 188.38 211.02 +89.0564 193.986 217.3 +86.6247 194.752 218.158 +83.7111 194.415 217.781 +81.0267 194.574 217.959 +78.1375 194.201 217.541 +75.4645 194.326 217.681 +72.625 193.981 217.295 +70.1036 194.461 217.832 +67.3503 194.276 217.625 +64.6072 194.075 217.4 +62.1032 194.574 217.959 +59.3718 194.34 217.697 +56.6512 194.089 217.416 +53.9417 193.821 217.116 +51.2609 193.603 216.871 +48.7551 194.025 217.344 +46.1012 193.841 217.137 +43.5742 194.167 217.503 +40.8891 193.753 217.04 +38.3486 193.984 217.298 +35.6955 193.604 216.873 +33.2251 194.201 217.541 +30.5537 193.592 216.859 +28.0157 193.762 217.049 +25.4495 193.719 217.001 +22.8473 193.328 216.563 +20.2991 193.321 216.555 +17.8262 194.096 217.423 +15.235 193.594 216.861 +12.6932 193.608 216.877 +10.1523 193.608 216.877 +7.6044 193.393 216.636 +5.0612 193.098 216.305 +2.53419 193.386 216.628 +1.77813e-14 193.393 216.636 +-2.53593 193.519 216.777 +-5.06992 193.431 216.678 +-7.60964 193.526 216.785 +-10.1418 193.409 216.653 +-12.6758 193.342 216.579 +-15.2088 193.261 216.488 +-17.7407 193.165 216.381 +-20.2643 192.988 216.183 +-22.7924 192.863 216.042 +-25.3275 192.79 215.96 +-27.9295 193.165 216.381 +-30.4491 192.93 216.117 +-33.078 193.341 216.578 +-35.5005 192.547 215.688 +-38.1528 192.993 216.188 +-40.6664 192.698 215.857 +-43.1751 192.389 215.511 +-45.6789 192.065 215.148 +-48.3424 192.383 215.504 +-50.8789 192.161 215.255 +-53.559 192.447 215.576 +-56.0788 192.128 215.219 +-58.7936 192.448 215.577 +-61.3132 192.099 215.186 +-63.9795 192.19 215.288 +-66.473 191.746 214.791 +-69.2166 192 215.076 +-71.9476 192.172 215.268 +-74.6383 192.198 215.297 +-77.1281 191.692 214.731 +-80.1448 192.456 215.587 +-82.6636 191.983 215.056 +-85.6022 192.453 215.583 +-88.1501 192.012 215.089 +-91.174 192.572 215.716 +-93.7558 192.162 215.257 +-96.5241 192.115 215.204 +-99.3634 192.176 215.272 +-102.278 192.344 215.461 +-105.24 192.556 215.698 +-107.899 192.187 215.285 +-110.7 192.05 215.131 +-113.615 192.081 215.166 +-116.39 191.846 214.902 +-119.55 192.208 215.308 +-114.015 178.877 200.376 +-113.683 174.116 195.043 +-114.7 171.563 192.183 +-116.031 169.557 189.935 +-117.826 168.273 188.497 +-119.811 167.28 187.385 +-122.349 167.057 187.134 +-125.069 167.055 187.132 +-132.565 173.264 194.088 +-144.758 185.187 207.444 +-146.428 183.398 205.44 +-151.546 185.876 208.215 +-159.26 191.337 214.333 +-163.78 192.781 215.95 +-169.55 195.57 219.075 +-1662.95 1880.08 2106.03 +-537.236 595.437 667 +-540.891 587.807 658.452 +-545.499 581.366 651.237 +-162.264 169.621 190.007 +-165.897 170.124 190.57 +-166.023 167.043 187.119 +-169.939 167.784 187.949 +-567.143 549.544 615.591 +-577.305 549.064 615.053 +-589.82 550.676 616.859 +-594.075 544.533 609.978 +-594.525 535.065 599.371 +-586.108 517.973 580.226 +-590.316 512.329 573.903 +-594.421 506.674 567.569 +-598.174 500.803 560.992 +-602.385 495.393 554.932 +-606.691 490.127 549.032 +-611.034 484.949 543.233 +-614.443 479.101 536.682 +-618.664 473.954 530.916 +-622.863 468.844 525.192 +-626.975 463.722 519.455 +-631.204 458.735 513.868 +-635.418 453.783 508.321 +-145.174 101.878 114.123 +-142.474 98.2529 110.061 +-143.616 97.3259 109.023 +-144.038 95.9228 107.451 +-143.007 93.5879 104.836 +-143.077 92.0136 103.072 +-142.609 90.1243 100.956 +-145.539 90.382 101.245 +-149.299 91.1072 102.057 +-684.957 410.719 460.082 +-700.798 412.901 462.526 +-706.031 408.725 457.848 +-710.827 404.304 452.895 +-715.486 399.815 447.867 +-720.62 395.599 443.144 +-724.766 390.851 437.826 +-731.895 387.703 434.299 +-738.839 384.418 430.62 +-734.883 375.529 420.662 +-725.241 363.95 407.691 +-729.5 359.484 402.688 +-734.911 355.582 398.318 +-386.786 183.732 205.813 +-387.459 180.675 202.389 +-2700.25 1235.9 1384.43 +-755.005 339.142 379.902 +-385.589 169.962 190.389 +-381.679 165.067 184.905 +-382.309 162.199 181.692 +-383.063 159.406 178.564 +-782.383 319.289 357.662 +-135.518 54.227 60.7443 +-136.827 53.674 60.1248 +-799.168 307.271 344.201 +-805.34 303.436 339.904 +-810.772 299.293 335.263 +-817.036 295.427 330.933 +-823.26 291.512 326.547 +-829.799 287.67 322.243 +-835.853 283.622 317.709 +-842.67 279.794 313.421 +-849.001 275.762 308.904 +-856.373 272.022 304.715 +-863.168 268.048 300.263 +-871.47 264.485 296.272 +-878.191 260.386 291.68 +-885.788 256.494 287.32 +-383.114 108.299 121.315 +-384.057 105.941 118.674 +-380.053 102.258 114.548 +-380.82 99.8992 111.906 +-383.702 98.0878 109.876 +-380.945 94.8512 106.251 +-382.737 92.7708 103.92 +-382.901 90.2981 101.151 +-381.8 87.5491 98.0711 +-382.554 85.2429 95.4878 +-382.8 82.8308 92.7858 +-381.868 80.1829 89.8197 +-380.131 77.3959 86.6977 +-380.651 75.089 84.1136 +-382.198 72.984 81.7555 +-383.043 70.7424 79.2445 +-382.313 68.2211 76.4202 +-382.999 65.963 73.8908 +-382.394 63.493 71.1239 +-380.78 60.8797 68.1965 +-382.148 58.7544 65.8158 +-382.318 56.4448 63.2287 +-381.869 54.0547 60.5512 +-381.681 51.7139 57.9291 +-380.577 49.2651 55.186 +-380.815 47.0029 52.652 +-380.53 44.684 50.0544 +-380.903 42.4489 47.5506 +-380.853 40.1711 44.9991 +-379.189 37.7397 42.2755 +-378.976 35.4697 39.7327 +-379.624 33.2834 37.2836 +-379.649 31.0435 34.7744 +-380.24 28.8511 32.3185 +-380.206 26.6123 29.8107 +-378.549 24.2741 27.1915 +-379.749 22.1255 24.7847 +-381.022 19.97 22.3701 +-378.177 17.611 19.7275 +-380.589 15.502 17.3651 +-379.579 13.2478 14.84 +-379.039 11.021 12.3456 +-378.269 8.79693 9.85419 +-143.751 2.50682 2.8081 +-145.778 1.69456 1.89822 +-145.494 0.845569 0.947194 +96.9 0 0 +96.8963 0.568799 0.625707 +96.8852 1.13756 1.25137 +96.8668 1.70623 1.87693 +96.9409 2.27711 2.50493 +96.8078 2.84313 3.12758 +97.666 3.44296 3.78743 +96.7193 3.97916 4.37728 +96.7637 4.55145 5.00682 +96.701 5.11927 5.63145 +96.5313 5.68084 6.24921 +96.5534 6.25371 6.87939 +97.3637 6.88349 7.57218 +97.37 7.46238 8.20899 +97.1703 8.02546 8.82841 +97.0625 8.59554 9.45552 +96.9472 9.16494 10.0819 +96.7258 9.72378 10.6966 +96.5959 10.2912 11.3208 +97.1491 10.9355 12.0296 +96.8066 11.482 12.6307 +96.654 12.0498 13.2554 +96.5921 12.6295 13.8931 +96.3266 13.1826 14.5016 +96.2497 13.7615 15.1384 +96.0675 14.326 15.7593 +95.878 14.8894 16.3791 +96.5563 15.5929 17.153 +96.4474 16.1754 17.7937 +97.0084 16.8757 18.5641 +96.7858 17.4445 19.1898 +96.5558 18.0119 19.814 +96.3184 18.578 20.4367 +96.9367 19.3146 21.2471 +96.5868 19.8632 21.8505 +96.4208 20.4497 22.4957 +96.0567 20.9941 23.0945 +97.4877 21.9413 24.1365 +96.3483 22.3156 24.5483 +96.8093 23.06 25.3671 +97.5401 23.8804 26.2697 +97.1329 24.4285 26.8726 +97.6525 25.2147 27.7374 +97.2286 25.7623 28.3398 +96.8907 26.3321 28.9666 +97.4693 27.1572 29.8743 +97.2053 27.7546 30.5314 +96.8415 28.3241 31.158 +97.3839 29.1651 32.0831 +97.0929 29.7636 32.7414 +96.6124 30.3039 33.3358 +97.0279 31.1305 34.2451 +96.6204 31.6989 34.8703 +96.8319 32.4749 35.724 +97.2979 33.3475 36.6839 +96.7729 33.8863 37.2766 +97.1242 34.7372 38.2127 +96.6699 35.306 38.8384 +96.9953 36.1656 39.784 +96.4354 36.7005 40.3723 +96.6484 37.5342 41.2895 +96.9333 38.4074 42.25 +96.3456 38.9403 42.8362 +96.6041 39.8206 43.8047 +96.0838 40.3862 44.4268 +96.1466 41.2017 45.3239 +96.3632 42.0941 46.3057 +96.3972 42.9181 47.212 +95.8367 43.4823 47.8327 +95.9283 44.348 48.785 +95.3493 44.9094 49.4026 +96.2285 46.1705 50.7899 +96.1921 47.0104 51.7138 +96.3021 47.9333 52.7291 +95.6765 48.4968 53.3488 +95.8371 49.4661 54.4151 +95.7433 50.3166 55.3508 +95.7912 51.2536 56.3815 +95.7444 52.1526 57.3704 +95.6043 53.0121 58.3159 +95.6023 53.9604 59.3591 +95.6591 54.9564 60.4548 +95.6217 55.913 61.5071 +95.5667 56.8733 62.5634 +95.4198 57.7922 63.5743 +95.33 58.7591 64.6379 +95.1491 59.6834 65.6547 +95.6769 61.0731 67.1835 +95.6003 62.0997 68.3127 +95.4329 63.0828 69.3943 +95.318 64.1162 70.5311 +95.7442 65.5369 72.0938 +95.5155 66.5319 73.1884 +95.1994 67.4802 74.2316 +94.9342 68.4791 75.3304 +95.1907 69.8769 76.868 +94.9496 70.9329 78.0298 +95.2848 72.4451 79.6932 +94.9317 73.4581 80.8075 +94.8844 74.7287 82.2053 +94.4255 75.6953 83.2686 +94.394 77.0252 84.7315 +94.5869 78.5696 86.4305 +94.56 79.964 87.9644 +94.0731 80.9932 89.0965 +94.6015 82.9298 91.2269 +94.2442 84.1264 92.5432 +92.0786 83.7033 92.0778 +91.6357 84.8394 93.3276 +93.0286 87.7285 96.5057 +94.0665 90.3653 99.4063 +93.457 91.4685 100.62 +93.2734 93.0169 102.323 +93.4981 95.0194 104.526 +93.2967 96.6365 106.305 +93.0603 98.2582 108.089 +93.5837 100.74 110.819 +93.266 102.376 112.618 +93.2734 104.418 114.865 +92.8288 106.005 116.611 +93.05 108.41 119.256 +92.5756 110.065 121.077 +92.5502 112.31 123.547 +92.8551 115.036 126.546 +92.392 116.883 128.578 +91.5186 118.257 130.089 +109.775 144.92 159.42 +114.762 154.83 170.321 +114.459 157.856 173.649 +113.569 160.161 176.185 +110.684 159.663 175.637 +107.82 159.144 175.066 +105.426 159.279 175.215 +102.957 159.275 175.21 +100.496 159.254 175.187 +98.1583 159.403 175.351 +95.6745 159.287 175.224 +93.6044 159.843 175.835 +90.7746 159.067 174.982 +90.6687 163.122 179.442 +90.8406 167.883 184.68 +90.6953 172.278 189.514 +89.5964 175.03 192.542 +88.179 177.271 195.007 +85.4432 176.886 194.584 +89.1593 190.212 209.242 +89.0272 195.874 215.471 +86.5963 196.647 216.321 +83.7111 196.372 216.019 +80.8396 196.078 215.695 +78.1375 196.155 215.781 +75.4395 196.216 215.847 +72.8185 196.455 216.111 +69.8702 195.763 215.349 +67.1704 195.707 215.288 +64.6289 196.094 215.713 +61.8953 195.874 215.471 +59.3718 196.296 215.935 +56.6321 195.976 215.584 +53.9599 195.838 215.432 +51.2609 195.551 215.116 +48.7221 195.845 215.439 +46.0856 195.725 215.307 +43.4412 195.522 215.084 +40.8891 195.703 215.283 +38.3355 195.869 215.465 +35.6833 195.486 215.044 +33.1233 195.554 215.119 +30.5432 195.473 215.03 +28.0061 195.645 215.22 +25.4495 195.668 215.245 +22.8473 195.273 214.81 +20.2922 195.199 214.728 +17.7651 195.378 214.925 +15.235 195.542 215.106 +12.6889 195.489 215.048 +10.1523 195.557 215.122 +7.60179 195.272 214.809 +5.07516 195.579 215.146 +2.53331 195.265 214.801 +1.77813e-14 195.339 214.883 +-2.5272 194.794 214.283 +-5.06992 195.377 214.924 +-7.58608 194.869 214.366 +-10.1453 195.422 214.974 +-12.6758 195.288 214.826 +-15.2088 195.206 214.736 +-17.7346 195.042 214.556 +-20.2573 194.864 214.36 +-22.7924 194.804 214.294 +-25.3275 194.73 214.213 +-27.939 195.177 214.704 +-30.376 194.403 213.853 +-32.9874 194.752 214.237 +-35.5005 194.484 213.943 +-38.0353 194.335 213.778 +-40.6803 194.704 214.184 +-43.1899 194.391 213.84 +-45.7102 194.131 213.553 +-48.3424 194.319 213.76 +-50.8789 194.094 213.513 +-53.395 193.788 213.177 +-56.0788 194.061 213.477 +-58.5942 193.725 213.107 +-61.3132 194.032 213.445 +-63.828 193.664 213.041 +-66.4955 193.741 213.125 +-69.1932 193.866 213.262 +-71.9476 194.106 213.526 +-74.438 193.611 212.981 +-77.3869 194.271 213.708 +-79.9043 193.81 213.2 +-82.6361 193.85 213.245 +-85.375 193.874 213.271 +-88.1208 193.88 213.277 +-90.9635 194.061 213.476 +-93.7867 194.16 213.585 +-96.5558 194.112 213.533 +-99.3634 194.11 213.53 +-102.278 194.28 213.718 +-104.932 193.925 213.328 +-107.619 193.617 212.988 +-111.022 194.548 214.012 +-113.579 193.951 213.356 +-116.39 193.776 213.163 +-119.589 194.204 213.634 +-114.015 180.677 198.754 +-113.683 175.869 193.464 +-114.374 172.798 190.086 +-116.031 171.263 188.398 +-117.784 169.905 186.904 +-119.768 168.903 185.802 +-122.306 168.678 185.554 +-125.025 168.676 185.552 +-132.565 175.008 192.517 +-144.62 186.872 205.568 +-146.804 185.719 204.3 +-151.259 187.392 206.14 +-158.387 192.203 211.433 +-163.829 194.779 214.267 +-168.8 196.664 216.341 +-533.22 608.907 669.828 +-537.7 601.949 662.173 +-541.204 594.066 653.503 +-545.499 587.216 645.967 +-164.897 174.108 191.528 +-165.026 170.933 188.035 +-167.071 169.79 186.777 +-1832.2 1827.16 2009.97 +-566.973 554.908 610.426 +-576.788 554.093 609.53 +-589.297 555.724 611.324 +-594.075 550.013 605.041 +-592.206 538.34 592.201 +-586.649 523.67 576.063 +-590.133 517.324 569.083 +-594.791 512.091 563.326 +-598.735 506.317 556.974 +-602.952 500.849 550.959 +-606.373 494.799 544.304 +-610.777 489.623 538.61 +-615.222 484.536 533.014 +-618.926 478.926 526.843 +-623.128 473.764 521.164 +-627.243 468.588 515.471 +-631.204 463.351 509.709 +-635.418 458.349 504.207 +-141.87 100.562 110.623 +-142.544 99.2901 109.224 +-143.476 98.2091 108.035 +-143.967 96.8403 106.529 +-143.078 94.5768 104.039 +-143.077 92.9396 102.238 +-143.044 91.309 100.444 +-145.466 91.2451 100.374 +-149.299 92.0241 101.231 +-684.734 414.717 456.21 +-701.247 417.323 459.076 +-705.804 412.705 453.997 +-710.827 408.372 449.23 +-715.486 403.839 444.242 +-720.697 399.623 439.605 +-725.077 394.954 434.469 +-733.617 392.525 431.797 +-738.445 388.08 426.907 +-732.9 378.284 416.132 +-725.241 367.612 404.391 +-730.465 363.581 399.957 +-734.911 359.161 395.095 +-739.868 354.99 390.506 +-387.213 182.377 200.624 +-2700.25 1248.34 1373.23 +-755.419 342.743 377.035 +-383.421 170.707 187.787 +-383.189 167.388 184.135 +-383.321 164.265 180.699 +-385.353 161.972 178.178 +-782.383 322.502 354.768 +-133.804 54.0798 59.4905 +-137.688 54.5555 60.0138 +-799.168 310.364 341.415 +-805.34 306.489 337.153 +-811.385 302.532 332.801 +-817.564 298.593 328.467 +-823.702 294.603 324.078 +-830.153 290.689 319.772 +-836.655 286.751 315.441 +-841.954 282.37 310.621 +-2944.9 966.149 1062.81 +-2957.32 948.829 1043.76 +-864.074 271.029 298.146 +-871.47 267.147 293.875 +-878.191 263.006 289.32 +-3004.75 878.825 966.751 +-383.758 109.573 120.536 +-382.024 106.441 117.091 +-382.092 103.841 114.231 +-383.239 101.546 111.705 +-382.955 98.8825 108.776 +-382.35 96.1596 105.78 +-383.583 93.9115 103.307 +-381.581 90.8927 99.9864 +-381.422 88.3426 97.1813 +-381.131 85.7805 94.3628 +-383.181 83.7477 92.1266 +-382.727 81.1714 89.2926 +-382.044 78.5676 86.4282 +-380.651 75.8447 83.4329 +-382.774 73.8301 81.2167 +-383.139 71.4724 78.6232 +-382.313 68.9076 75.8018 +-382.128 66.4752 73.1261 +-382.394 64.132 70.5484 +-381.363 61.5866 67.7483 +-381.856 59.3002 65.2332 +-381.439 56.8818 62.5728 +-382.456 54.6826 60.1535 +-380.995 52.1405 57.3571 +-381.46 49.8764 54.8665 +-381.405 47.5495 52.3068 +-381.81 45.2855 49.8163 +-381.199 42.9093 47.2024 +-381.742 40.6701 44.7391 +-379.288 38.1294 41.9443 +-380.065 35.9297 39.5244 +-379.624 33.6183 36.9819 +-379.153 31.3149 34.4479 +-380.141 29.1337 32.0486 +-380.405 26.8942 29.585 +-380.241 24.628 27.0921 +-381.244 22.4361 24.6808 +-379.128 20.0707 22.0788 +-380.172 17.882 19.6711 +-380.289 15.6456 17.211 +-379.379 13.374 14.7121 +-378.839 11.1261 12.2392 +-378.969 8.90186 9.79249 +-144.95 2.55317 2.80862 +-145.978 1.71396 1.88544 +-144.994 0.851145 0.936302 +96.9 0 0 +96.8963 0.57442 0.62055 +96.6853 1.14643 1.23849 +97.5666 1.73553 1.87491 +96.841 2.29724 2.48173 +96.8078 2.87123 3.10181 +96.8671 3.44855 3.72549 +96.8191 4.02264 4.34569 +96.7637 4.59643 4.96555 +96.701 5.16987 5.58504 +96.5313 5.73699 6.19771 +97.3497 6.3676 6.87896 +97.3637 6.95152 7.50978 +97.37 7.53613 8.14133 +97.1703 8.10478 8.75564 +96.9633 8.67166 9.36805 +96.8482 9.24608 9.9886 +96.7258 9.81989 10.6085 +97.2873 10.4673 11.3079 +97.1491 11.0436 11.9305 +96.8066 11.5955 12.5266 +96.654 12.1689 13.1462 +95.8068 12.6507 13.6666 +96.4246 13.3265 14.3967 +96.1519 13.8834 14.9983 +96.1652 14.4823 15.6453 +95.9755 15.0518 16.2606 +96.5563 15.747 17.0116 +96.3504 16.3188 17.6293 +97.0084 17.0425 18.4111 +96.7858 17.6169 19.0316 +96.5558 18.1899 19.6507 +97.0874 18.9114 20.4301 +96.9367 19.5055 21.072 +96.6824 20.0794 21.6919 +96.4208 20.6518 22.3103 +96.9127 21.3905 23.1083 +96.6342 21.9641 23.728 +97.1048 22.7131 24.5371 +96.8093 23.2879 25.1581 +96.4125 23.8377 25.752 +97.1329 24.67 26.6511 +96.8123 25.2448 27.2722 +97.3217 26.0418 28.1331 +97.7252 26.8213 28.9752 +97.4693 27.4256 29.6281 +97.2053 28.0289 30.2798 +96.9332 28.6312 30.9304 +97.3839 29.4533 31.8186 +97.0019 30.0295 32.4411 +96.703 30.6321 33.0921 +97.0279 31.4381 33.9628 +97.3394 32.2504 34.8403 +96.8319 32.7959 35.4296 +97.2088 33.6462 36.3482 +96.7729 34.2212 36.9694 +97.0359 35.0486 37.8633 +96.6699 35.655 38.5183 +96.9079 36.4901 39.4205 +96.4354 37.0632 40.0396 +96.735 37.9391 40.9859 +96.9333 38.787 41.9018 +96.4313 39.3601 42.521 +96.6041 40.2142 43.4437 +96.0838 40.7854 44.0607 +96.1466 41.6089 44.9503 +96.3632 42.5102 45.924 +96.3972 43.3423 46.8229 +96.0026 43.988 47.5205 +96.5876 45.0941 48.7155 +96.0865 45.7039 49.3742 +96.147 46.5874 50.3286 +96.1921 47.475 51.2876 +96.3021 48.4071 52.2945 +96.3154 49.3032 53.2625 +95.7577 49.9136 53.922 +95.7433 50.8139 54.8946 +95.7912 51.7601 55.9168 +95.7444 52.668 56.8976 +95.6043 53.536 57.8353 +95.679 54.5374 58.9171 +95.6591 55.4996 59.9565 +95.5462 56.421 60.952 +95.5667 57.4354 62.0478 +95.4198 58.3634 63.0503 +95.33 59.3398 64.1052 +95.8805 60.7366 65.6141 +95.6769 61.6768 66.6298 +95.6003 62.7134 67.7497 +95.3616 63.6587 68.7709 +95.2473 64.7019 69.8979 +95.1134 65.7486 71.0286 +95.4461 67.1406 72.5324 +95.1306 68.0982 73.5669 +94.9342 69.1559 74.7096 +95.2582 70.6178 76.2888 +94.9496 71.634 77.3867 +94.6221 72.6523 78.4867 +94.8005 74.0822 80.0315 +94.8194 75.4157 81.472 +94.2969 76.3395 82.4701 +94.4576 77.8388 84.0897 +94.5869 79.3461 85.7181 +94.4977 80.7013 87.1822 +94.1962 81.901 88.4782 +93.9928 83.2107 89.893 +94.2442 84.9579 91.7805 +92.0786 84.5306 91.3189 +91.7533 85.788 92.6773 +92.8544 88.4298 95.5313 +94.0665 91.2584 98.587 +93.4004 92.3161 99.7297 +93.7207 94.3873 101.967 +93.6085 96.072 103.787 +93.2422 97.5345 105.367 +93.0603 99.2294 107.198 +93.5308 101.678 109.844 +93.2137 103.33 111.628 +93.2734 105.45 113.919 +92.981 107.228 115.839 +93.05 109.481 118.273 +92.5756 111.153 120.079 +92.5017 113.36 122.464 +92.4734 115.696 124.987 +92.5328 118.219 127.712 +91.5648 119.486 129.081 +105.371 140.482 151.764 +114.762 156.36 168.917 +114.415 159.355 172.152 +113.526 161.683 174.667 +110.303 160.687 173.591 +108.235 161.335 174.291 +105.426 160.853 173.771 +102.957 160.849 173.766 +100.457 160.766 173.676 +98.1583 160.978 173.906 +95.6745 160.861 173.779 +93.2379 160.79 173.702 +90.7388 160.576 173.471 +90.6337 164.671 177.895 +90.8063 169.478 183.088 +90.7287 174.045 188.021 +89.6615 176.888 191.093 +88.2424 179.152 193.539 +85.4741 178.699 193.05 +89.2194 192.221 207.658 +88.9687 197.68 213.555 +86.6531 198.721 214.68 +83.7111 198.313 214.238 +80.8396 198.016 213.918 +78.1634 198.16 214.073 +75.4145 198.089 213.997 +72.5524 197.672 213.546 +69.8935 197.764 213.646 +67.1704 197.642 213.513 +64.5856 197.9 213.792 +61.7498 197.345 213.193 +59.2123 197.703 213.58 +56.6321 197.913 213.807 +53.9417 197.707 213.584 +51.2609 197.484 213.343 +48.6065 197.311 213.157 +46.1012 197.726 213.605 +43.4264 197.387 213.239 +40.8751 197.57 213.436 +38.2442 197.333 213.18 +35.5858 196.878 212.689 +33.1006 197.351 213.2 +30.5432 197.405 213.258 +27.9295 197.038 212.861 +25.3623 196.926 212.74 +22.8551 197.271 213.113 +20.3131 197.332 213.179 +17.7712 197.377 213.227 +15.2402 197.542 213.406 +12.6845 197.354 213.202 +10.1209 196.878 212.689 +7.60179 197.202 213.039 +5.05945 196.9 212.713 +2.53331 197.195 213.031 +1.77384e-14 196.794 212.598 +-2.52808 196.787 212.59 +-5.05422 196.697 212.493 +-7.58346 196.727 212.526 +-10.1104 196.675 212.469 +-12.6322 196.539 212.322 +-15.1617 196.525 212.307 +-17.7346 196.97 212.788 +-20.2015 196.248 212.008 +-22.7924 196.729 212.528 +-25.3275 196.655 212.447 +-27.8432 196.43 212.204 +-30.3655 196.257 212.018 +-32.9761 196.609 212.398 +-35.5005 196.407 212.179 +-38.0353 196.256 212.016 +-40.5411 195.956 211.692 +-43.1899 196.312 212.077 +-45.6945 195.982 211.721 +-48.2104 195.703 211.42 +-50.8789 196.013 211.754 +-53.4132 195.77 211.492 +-56.0788 195.979 211.718 +-58.6142 195.706 211.423 +-61.1468 195.417 211.111 +-63.828 195.578 211.285 +-66.3381 195.193 210.868 +-69.1932 195.782 211.505 +-71.7056 195.365 211.054 +-74.463 195.59 211.297 +-77.1281 195.535 211.238 +-79.931 195.79 211.514 +-82.6361 195.766 211.487 +-85.4034 195.855 211.583 +-88.1501 195.861 211.59 +-90.9334 195.914 211.647 +-93.7249 195.949 211.685 +-96.5875 196.095 211.842 +-99.0704 195.45 211.146 +-102.212 196.072 211.818 +-104.898 195.778 211.5 +-107.899 196.04 211.783 +-110.736 195.963 211.7 +-113.579 195.868 211.597 +-116.39 195.691 211.407 +-119.244 195.559 211.263 +-113.742 182.026 196.644 +-113.364 177.108 191.331 +-114.7 175.002 189.056 +-116.114 173.079 186.979 +-117.784 171.584 185.363 +-119.811 170.634 184.337 +-122.218 170.223 183.893 +-125.426 170.89 184.613 +-133.473 177.948 192.238 +-144.943 189.141 204.33 +-146.193 186.775 201.774 +-151.689 189.781 205.022 +-158.436 194.163 209.755 +-163.583 196.409 212.181 +-168.65 198.432 214.367 +-1662.95 1917.76 2071.77 +-537.442 607.606 656.401 +-541.204 599.938 648.117 +-1736.28 1887.54 2039.12 +-1760.46 1877.17 2027.92 +-166.224 173.876 187.839 +-166.409 170.789 184.504 +-171.113 172.329 186.168 +-566.633 560.056 605.033 +-576.272 559.069 603.966 +-588.833 560.774 605.808 +-595.309 556.603 601.302 +-592.206 543.661 587.32 +-586.348 528.574 571.022 +-589.829 522.168 564.101 +-594.606 516.992 558.51 +-598.548 511.162 552.211 +-602.574 505.482 546.075 +-606.691 499.952 540.101 +-611.034 494.671 534.396 +-614.768 488.963 528.23 +-619.582 484.173 523.055 +-623.128 478.446 516.869 +-627.511 473.421 511.44 +-631.474 468.131 505.725 +-635.418 462.879 500.051 +-142.352 101.9 110.084 +-143.1 100.662 108.746 +-143.546 99.2287 107.197 +-143.896 97.7492 105.599 +-143.007 95.464 103.13 +-143.077 93.8581 101.396 +-143.044 92.2115 99.6167 +-146.49 92.7957 100.248 +-149.299 92.9336 100.397 +-686.74 420.044 453.776 +-701.023 421.313 455.147 +-705.503 416.606 450.063 +-710.827 412.408 445.527 +-716.175 408.222 441.005 +-720.389 403.4 435.796 +-724.455 398.515 430.519 +-733.93 396.574 428.421 +-737.736 391.539 422.982 +-733.138 382.147 412.836 +-725.8 371.531 401.368 +-730.224 367.053 396.53 +-735.963 363.229 392.399 +-386.786 187.415 202.465 +-745.183 354.449 382.913 +-749.708 350.018 378.127 +-755.751 346.282 374.091 +-760.17 341.789 369.237 +-381.679 168.376 181.897 +-384.249 166.29 179.644 +-383.742 162.889 175.97 +-386.075 160.715 173.621 +-133.89 54.6493 59.038 +-137.085 54.8534 59.2585 +-799.428 313.533 338.712 +-805.34 309.518 334.374 +-812.347 305.885 330.449 +-817.827 301.641 325.865 +-823.702 297.515 321.407 +-830.065 293.53 317.102 +-836.21 289.431 312.674 +-842.67 285.403 308.323 +-849.81 281.558 304.169 +-857.185 277.738 300.042 +-864.89 273.967 295.968 +-2981.49 922.998 997.121 +-878.831 265.799 287.144 +-886.614 261.879 282.91 +-384.127 110.762 119.657 +-384.057 108.065 116.743 +-381.722 104.766 113.18 +-382.029 102.225 110.434 +-383.795 100.078 108.115 +-381.788 96.9673 104.754 +-382.173 94.4912 102.079 +-381.581 91.791 99.1624 +-381.422 89.2157 96.3803 +-381.7 86.7573 93.7245 +-382.325 84.3866 91.1634 +-382.44 81.9125 88.4906 +-381.661 79.2653 85.6308 +-380.939 76.652 82.8077 +-381.909 74.3913 80.3654 +-381.79 71.9247 77.7008 +-382.12 69.5533 75.1389 +-382.709 67.2343 72.6336 +-381.714 64.6508 69.8427 +-381.947 62.2904 67.2927 +-382.148 59.9322 64.7451 +-381.146 57.3999 62.0094 +-382.456 55.223 59.6578 +-381.387 52.7099 56.9429 +-381.166 50.3304 54.3723 +-382.683 48.1804 52.0496 +-381.81 45.7331 49.4057 +-381.397 43.3558 46.8376 +-380.359 40.9233 44.2097 +-380.969 38.677 41.783 +-379.174 36.1997 39.1068 +-380.318 34.0126 36.7441 +-380.046 31.6989 34.2445 +-378.65 29.3063 31.6598 +-380.206 27.1458 29.3258 +-379.445 24.8193 26.8125 +-379.65 22.5632 24.3751 +-378.23 20.2211 21.845 +-379.872 18.0446 19.4937 +-379.391 15.7629 17.0288 +-378.88 13.4885 14.5717 +-378.839 11.236 12.1384 +-380.668 9.03013 9.7553 +-143.951 2.56062 2.76626 +-145.678 1.72735 1.86607 +-144.994 0.859558 0.928586 +96.9 0 0 +96.8963 0.579995 0.615343 +96.8852 1.15995 1.23064 +96.8668 1.73981 1.84584 +96.841 2.31954 2.4609 +96.8078 2.89909 3.07578 +96.8671 3.48202 3.69423 +96.8191 4.06168 4.30922 +96.7637 4.64104 4.92389 +96.701 5.22004 5.53817 +97.4278 5.84647 6.20278 +97.4493 6.43598 6.82821 +97.4631 7.02619 7.4544 +97.37 7.60927 8.07302 +97.1703 8.18344 8.68217 +96.9633 8.75582 9.28944 +96.9472 9.34535 9.91489 +96.7258 9.91519 10.5195 +96.5959 10.4937 11.1333 +97.0505 11.1394 11.8183 +96.8066 11.708 12.4215 +96.654 12.287 13.0358 +96.6903 12.8912 13.6769 +97.2085 13.5652 14.3919 +96.2497 14.0324 14.8876 +96.9462 14.7416 15.6401 +96.7549 15.3213 16.255 +96.5563 15.8998 16.8689 +96.4474 16.4938 17.499 +97.0084 17.2079 18.2566 +96.7858 17.7878 18.8719 +96.5558 18.3665 19.4858 +97.1836 19.1138 20.2787 +96.0737 19.5195 20.7091 +96.6824 20.2743 21.5099 +96.3254 20.8316 22.1012 +96.9127 21.5981 22.9144 +96.6342 22.1773 23.5289 +96.3483 22.7549 24.1417 +96.9035 23.5368 24.9712 +96.5064 24.0925 25.5608 +97.1329 24.9094 26.4275 +96.8123 25.4899 27.0433 +97.3217 26.2946 27.8971 +96.8907 26.8504 28.4868 +97.4693 27.6918 29.3794 +97.1133 28.2741 29.9973 +97.6669 29.1279 30.903 +96.6531 29.516 31.3148 +97.0929 30.3494 32.1991 +96.6124 30.9004 32.7836 +97.0279 31.7432 33.6778 +97.2495 32.5333 34.5161 +96.8319 33.1142 35.1323 +97.2979 34.0039 36.0762 +96.8616 34.5849 36.6927 +97.1242 35.421 37.5797 +97.4608 36.2955 38.5076 +96.1207 36.545 38.7722 +96.4354 37.4229 39.7036 +96.735 38.3074 40.642 +96.9333 39.1634 41.5502 +96.517 39.7774 42.2016 +96.6894 40.6403 43.1171 +96.6775 41.4356 43.9609 +96.1466 42.0127 44.5731 +96.3632 42.9228 45.5386 +96.564 43.8386 46.5103 +95.8367 44.3382 47.0404 +96.67 45.5707 48.3479 +96.0865 46.1475 48.9599 +96.147 47.0395 49.9063 +96.273 47.976 50.8999 +95.659 48.5505 51.5093 +95.6765 49.4514 52.4652 +96.3131 50.6903 53.7795 +95.7433 51.3071 54.434 +95.713 52.2197 55.4022 +95.7444 53.1792 56.4201 +95.6814 54.0992 57.3963 +95.679 55.0667 58.4227 +96.3434 56.4391 59.8787 +95.5462 56.9686 60.4405 +95.5667 57.9928 61.5271 +95.4941 58.9757 62.5699 +95.9935 60.3327 64.0097 +95.8805 61.3261 65.0635 +95.0966 61.8976 65.6699 +94.9529 62.8933 66.7262 +95.3616 64.2765 68.1938 +95.318 65.3783 69.3628 +95.6741 66.778 70.8478 +95.4461 67.7922 71.9238 +95.1994 68.8085 73.002 +95.0024 69.8778 74.1365 +95.3258 71.3539 75.7025 +94.9496 72.3292 76.7373 +95.2848 73.8711 78.3731 +95.4566 75.3184 79.9086 +94.4297 75.8348 80.4565 +95.004 77.658 82.3908 +94.394 78.5414 83.328 +95.0274 80.4893 85.3947 +94.4977 81.4846 86.4506 +94.1962 82.6959 87.7357 +94.6624 84.6164 89.7733 +93.7026 85.2899 90.4879 +91.9596 85.2405 90.4355 +90.9892 85.899 91.1341 +92.1576 88.6179 94.0187 +94.1239 92.2003 97.8194 +93.9668 93.7779 99.4931 +93.3293 94.9048 100.689 +93.4429 96.8329 102.734 +93.2967 98.5387 104.544 +93.0603 100.192 106.299 +92.9478 102.026 108.244 +93.1615 104.274 110.629 +93.1704 106.357 112.838 +92.8795 108.151 114.742 +93.05 110.544 117.281 +93.0188 112.768 119.641 +92.4532 114.401 121.373 +92.4257 116.758 123.874 +92.2042 118.942 126.191 +91.5648 120.645 127.998 +96.8816 130.417 138.365 +114.762 157.878 167.499 +114.678 161.272 171.1 +113.052 162.571 172.478 +109.965 161.749 171.607 +107.82 162.276 172.166 +104.979 161.725 171.581 +102.997 162.473 172.375 +100.183 161.883 171.749 +98.0818 162.414 172.312 +95.3374 161.85 171.714 +93.2379 162.35 172.245 +90.3804 161.494 171.336 +90.7037 166.397 176.538 +90.8063 171.123 181.552 +90.3949 175.087 185.757 +89.4336 178.151 189.008 +87.9886 180.37 191.363 +85.3196 180.108 191.084 +89.2495 194.152 205.985 +88.6763 198.942 211.067 +86.3123 199.86 212.04 +83.27 199.182 211.321 +80.6525 199.475 211.632 +77.7234 198.957 211.082 +75.139 199.281 211.426 +72.383 199.124 211.26 +69.8935 199.684 211.853 +66.9229 198.824 210.942 +64.4124 199.285 211.43 +61.5419 198.589 210.692 +59.0328 199.017 211.146 +56.2887 198.622 210.727 +53.7595 198.951 211.076 +51.1394 198.928 211.052 +48.59 199.158 211.296 +45.8197 198.426 210.519 +43.4264 199.303 211.45 +40.6385 198.333 210.42 +38.2181 199.112 211.247 +35.4762 198.176 210.254 +32.9874 198.586 210.688 +30.376 198.23 210.311 +27.9295 198.95 211.075 +25.2839 198.222 210.302 +22.7767 198.502 210.6 +20.2433 198.562 210.664 +17.7163 198.676 210.784 +15.1827 198.706 210.816 +12.6496 198.721 210.832 +10.0999 198.378 210.468 +7.58346 198.636 210.742 +5.04549 198.263 210.346 +2.52546 198.491 210.588 +1.76711e-14 197.95 210.014 +-2.5272 198.628 210.733 +-5.03851 197.988 210.055 +-7.58346 198.636 210.742 +-10.072 197.829 209.886 +-12.6365 198.515 210.613 +-15.1146 197.815 209.871 +-17.6736 198.197 210.276 +-20.1457 197.604 209.647 +-22.7218 198.023 210.092 +-25.2403 197.88 209.94 +-27.7569 197.721 209.771 +-30.261 197.479 209.515 +-32.8969 198.04 210.11 +-35.2812 197.087 209.098 +-37.9179 197.549 209.588 +-40.4298 197.314 209.339 +-43.0421 197.539 209.578 +-45.5694 197.342 209.369 +-48.2104 197.603 209.646 +-50.5663 196.699 208.686 +-53.395 197.603 209.646 +-55.7544 196.737 208.727 +-58.5942 197.538 209.577 +-60.9389 196.643 208.628 +-63.6549 196.941 208.943 +-66.1131 196.418 208.389 +-68.9598 197.016 209.023 +-71.4879 196.662 208.647 +-74.4129 197.355 209.383 +-76.6881 196.306 208.27 +-79.6638 197.029 209.037 +-82.1399 196.479 208.454 +-85.1762 197.23 209.25 +-87.653 196.647 208.631 +-90.6628 197.227 209.247 +-93.1686 196.677 208.663 +-96.2702 197.347 209.374 +-98.7448 196.699 208.686 +-102.045 197.652 209.698 +-104.624 197.162 209.178 +-107.584 197.364 209.392 +-110.091 196.713 208.701 +-113.249 197.195 209.213 +-116.053 197.018 209.026 +-118.9 196.886 208.885 +-113.234 182.971 194.122 +-113.444 178.953 189.859 +-114.7 176.701 187.47 +-116.114 174.759 185.41 +-118.037 173.622 184.204 +-120.156 172.786 183.316 +-122.963 172.923 183.462 +-125.605 172.794 183.325 +-139.284 187.498 198.924 +-144.758 190.733 202.357 +-146.053 188.406 199.888 +-150.782 190.478 202.086 +-156.642 193.828 205.64 +-162.992 197.599 209.641 +-166.95 198.338 210.426 +-533.677 621.425 659.297 +-538.369 614.562 652.016 +-541.674 606.286 643.236 +-166.766 183.053 194.209 +-165.058 177.709 188.539 +-166.06 175.391 186.081 +-168.12 174.219 184.837 +-173.462 176.39 187.14 +-566.746 565.605 600.076 +-573.978 562.247 596.513 +-586.916 564.375 598.77 +-595.955 562.615 596.903 +-589.767 546.676 579.993 +-587.432 534.69 567.276 +-590.864 528.161 560.349 +-595.345 522.658 554.511 +-599.295 516.767 548.26 +-603.77 511.401 542.568 +-607.137 505.174 535.962 +-611.934 500.207 530.692 +-615.612 494.387 524.517 +-620.435 489.545 519.38 +-623.989 483.758 513.24 +-628.715 478.934 508.122 +-632.082 473.13 501.964 +-636.918 468.475 497.026 +-142.696 103.138 109.424 +-143.586 101.985 108.2 +-143.336 100.045 106.142 +-143.896 98.6978 104.713 +-143.007 96.3905 102.265 +-142.861 94.6257 100.393 +-143.189 93.2004 98.8804 +-148.684 95.0996 100.895 +-150.183 94.3918 100.144 +-694.246 428.756 454.886 +-701.547 425.72 451.665 +-707.163 421.639 447.336 +-711.284 416.678 442.073 +-717.018 412.669 437.819 +-721.006 407.664 432.508 +-726.165 403.333 427.914 +-734.947 400.977 425.415 +-735.844 394.326 418.358 +-731.234 384.853 408.308 +-727.317 375.922 398.832 +-730.947 370.983 393.592 +-736.772 367.158 389.534 +-388.496 190.07 201.653 +-746.739 358.636 380.493 +-2700.25 1272.91 1350.48 +-756.497 349.989 371.318 +-760.921 345.447 366.5 +-386.543 172.177 182.67 +-384.671 168.087 178.331 +-383.742 164.47 174.493 +-384.797 161.737 171.594 +-789.365 325.32 345.147 +-137.43 55.525 58.9089 +-800.554 317.022 336.342 +-805.862 312.724 331.783 +-812.872 309.053 327.888 +-818.794 304.929 323.512 +-825.203 300.95 319.291 +-831.307 296.823 314.912 +-838.17 292.925 310.777 +-843.834 288.571 306.157 +-851.428 284.832 302.191 +-857.185 280.433 297.524 +-2969.52 949.769 1007.65 +-871.743 272.49 289.097 +-880.475 268.881 285.267 +-886.614 264.421 280.536 +-384.127 111.837 118.653 +-383.04 108.825 115.457 +-381.907 105.834 112.284 +-382.588 103.368 109.668 +-383.515 100.976 107.13 +-382.631 98.1244 104.105 +-382.737 95.5489 101.372 +-381.581 92.6818 98.3303 +-380.949 89.9698 95.4529 +-381.795 87.6213 92.9613 +-382.325 85.2056 90.3984 +-381.868 82.5841 87.6171 +-381.087 79.9139 84.7842 +-381.418 77.4933 82.2161 +-382.774 75.2834 79.8715 +-382.079 72.6777 77.1069 +-383.183 70.4238 74.7157 +-381.353 67.6464 71.7691 +-382.976 65.494 69.4855 +-382.919 63.0551 66.8979 +-381.856 60.4675 64.1527 +-381.439 58.0015 61.5364 +-383.043 55.8445 59.2479 +-381.681 53.2625 56.5086 +-379.988 50.6619 53.7494 +-381.208 48.4605 51.4139 +-380.924 46.0697 48.8774 +-381.495 43.7879 46.4566 +-379.667 41.2453 43.759 +-379.584 38.9105 41.2818 +-379.669 36.5988 38.8293 +-379.624 34.2801 36.3693 +-380.542 32.0483 34.0015 +-379.147 29.6296 31.4353 +-379.41 27.3519 29.0189 +-379.445 25.0602 26.5875 +-378.853 22.7343 24.1198 +-379.427 20.4819 21.7302 +-380.67 18.258 19.3707 +-379.291 15.9117 16.8814 +-379.579 13.6445 14.476 +-379.039 11.351 12.0428 +-380.668 9.11777 9.67344 +-146.05 2.62318 2.78305 +-146.078 1.7489 1.85549 +-146.794 0.878675 0.932226 +96.9 0 0 +96.8963 0.585523 0.610085 +96.8852 1.171 1.22013 +96.8668 1.75639 1.83007 +96.841 2.34165 2.43988 +96.8078 2.92673 3.0495 +96.7672 3.51158 3.65888 +96.8191 4.10039 4.2724 +96.7637 4.68527 4.88182 +97.5982 5.31869 5.5418 +97.4278 5.90219 6.14978 +97.4493 6.49732 6.76987 +97.3637 7.08589 7.38313 +96.4758 7.61124 7.93052 +97.1703 8.26143 8.60799 +96.9633 8.83927 9.21007 +96.9472 9.43441 9.83018 +96.8247 10.0199 10.4402 +96.5959 10.5938 11.0382 +97.1491 11.257 11.7293 +96.8066 11.8196 12.3154 +96.654 12.4041 12.9245 +96.5921 13.0009 13.5462 +96.4246 13.584 14.1539 +96.2497 14.1662 14.7604 +96.0675 14.7473 15.3659 +96.7549 15.4673 16.1162 +96.5563 16.0514 16.7247 +96.4474 16.651 17.3495 +97.0084 17.3719 18.1006 +96.7858 17.9574 18.7107 +96.5558 18.5415 19.3193 +96.3184 19.1243 19.9265 +96.8408 19.8628 20.696 +96.5868 20.4472 21.305 +97.2791 21.2383 22.1293 +96.9127 21.8039 22.7186 +96.6342 22.3887 23.3279 +97.1993 23.1747 24.1468 +96.8093 23.738 24.7338 +97.4461 24.5589 25.5891 +97.9759 25.365 26.4291 +96.8123 25.7328 26.8123 +97.3217 26.5452 27.6587 +96.9834 27.1322 28.2704 +97.4693 27.9557 29.1284 +97.2053 28.5707 29.7692 +96.9332 29.1846 30.4088 +97.3839 30.0226 31.282 +97.0929 30.6387 31.924 +96.6124 31.1949 32.5035 +97.0279 32.0458 33.3901 +97.3394 32.8737 34.2527 +96.9214 33.4606 34.8643 +97.2979 34.328 35.768 +96.8616 34.9145 36.3792 +97.1242 35.7586 37.2587 +96.7578 36.3772 37.9032 +96.9079 37.1954 38.7557 +96.4354 37.7796 39.3644 +96.6484 38.6378 40.2586 +96.9333 39.5367 41.1952 +96.4313 40.1209 41.8039 +96.6894 41.0276 42.7487 +96.0838 41.5737 43.3177 +96.1466 42.4131 44.1923 +96.3632 43.3318 45.1496 +96.564 44.2564 46.113 +96.5 45.0706 46.9613 +95.9283 45.652 47.567 +96.0865 46.5873 48.5416 +96.2285 47.5281 49.5218 +95.6258 48.1077 50.1258 +96.3824 49.3839 51.4555 +95.6765 49.9227 52.0169 +95.7577 50.8783 53.0126 +95.7433 51.7961 53.9689 +96.3391 53.0623 55.2883 +95.7444 53.686 55.9381 +95.6814 54.6148 56.9059 +95.679 55.5915 57.9235 +96.3434 56.977 59.3671 +95.5462 57.5116 59.9241 +96.1659 58.9126 61.3839 +95.4198 59.4914 61.9871 +95.9198 60.861 63.4141 +95.2223 61.4855 64.0648 +95.7494 62.9165 65.5558 +95.5283 63.8775 66.5571 +95.4329 64.9376 67.6617 +95.318 66.0014 68.7701 +95.6741 67.4145 70.2425 +95.4461 68.4383 71.3092 +95.1994 69.4643 72.3783 +95.0024 70.5438 73.5031 +95.3258 72.0339 75.0557 +94.9496 73.0186 76.0816 +95.2185 74.5232 77.6494 +94.8661 75.566 78.736 +94.8194 76.8733 80.0981 +94.4255 77.921 81.1897 +94.4576 79.3433 82.6716 +94.6498 80.9338 84.3289 +94.6222 82.3692 85.8245 +94.504 83.7568 87.2704 +94.4189 85.2033 88.7775 +93.3415 85.7704 89.3684 +91.3648 85.4962 89.0827 +90.8716 86.6055 90.2385 +92.1576 89.4625 93.2154 +93.6077 92.5687 96.4519 +93.5137 94.2147 98.1669 +93.6648 96.1542 100.188 +93.6085 97.9289 102.037 +93.2967 99.4779 103.651 +93.2215 101.323 105.573 +92.8948 102.939 107.258 +93.1092 105.208 109.622 +92.8099 106.955 111.441 +92.981 109.301 113.886 +93.05 111.598 116.279 +92.5756 113.301 118.054 +92.8895 116.036 120.904 +92.4734 117.932 122.879 +92.6267 120.626 125.686 +91.3801 121.549 126.648 +94.1576 127.958 133.326 +114.807 159.445 166.133 +114.108 161.999 168.795 +112.493 163.308 170.158 +109.205 162.161 168.964 +107.074 162.689 169.513 +104.328 162.254 169.06 +102.319 162.942 169.777 +99.402 162.151 168.954 +97.4312 162.874 169.707 +94.7005 162.301 169.109 +92.9081 163.318 170.169 +90.2729 162.839 169.67 +90.9489 168.437 175.503 +90.7037 172.559 179.797 +90.7621 177.474 184.918 +88.4569 177.884 185.346 +87.4492 180.973 188.565 +85.814 182.877 190.549 +89.1593 195.804 204.018 +88.3255 200.044 208.436 +85.7158 200.371 208.776 +82.8566 200.082 208.476 +80.3853 200.709 209.129 +77.0504 199.114 207.466 +74.7635 200.175 208.572 +71.8266 199.477 207.845 +69.45 200.307 208.71 +66.3831 199.1 207.453 +64.0228 199.967 208.355 +61.2092 199.398 207.763 +58.8135 200.167 208.564 +56.0215 199.564 207.935 +53.4861 199.826 208.209 +50.6879 199.051 207.401 +48.3094 199.896 208.281 +45.5381 199.086 207.437 +43.1899 200.107 208.501 +40.402 199.057 207.408 +38.0092 199.912 208.298 +35.2568 198.828 207.169 +32.8855 199.859 208.243 +30.2087 199.017 207.366 +27.7569 199.606 207.979 +25.1531 199.076 207.427 +22.6511 199.289 207.649 +20.0689 198.728 207.064 +17.6613 199.947 208.335 +15.0518 198.871 207.214 +12.5711 199.37 207.733 +10.0301 198.884 207.227 +7.5442 199.491 207.859 +5.00011 198.352 206.673 +2.50975 199.136 207.49 +1.75609e-14 198.59 206.921 +-2.51237 199.344 207.706 +-4.99488 198.144 206.456 +-7.53373 199.214 207.571 +-10.0092 198.469 206.795 +-12.558 199.162 207.517 +-15.0152 198.387 206.709 +-17.5698 198.911 207.255 +-20.0201 198.245 206.561 +-22.6747 199.497 207.865 +-25.0224 198.041 206.349 +-27.6707 198.985 207.333 +-30.0833 198.191 206.504 +-32.6931 198.69 207.025 +-35.0862 197.866 206.166 +-37.8004 198.813 207.153 +-40.1932 198.029 206.336 +-42.8204 198.395 206.717 +-45.2721 197.923 206.226 +-47.9133 198.257 206.574 +-50.2538 197.346 205.624 +-53.067 198.261 206.577 +-55.4491 197.524 205.81 +-58.2752 198.335 206.655 +-60.4607 196.959 205.222 +-63.2653 197.601 205.89 +-65.7532 197.211 205.484 +-68.6096 197.884 206.185 +-71.125 197.529 205.815 +-73.812 197.628 205.918 +-76.3257 197.241 205.515 +-79.1827 197.707 206 +-81.6989 197.287 205.563 +-84.665 197.914 206.217 +-87.156 197.395 205.676 +-90.1817 198.05 206.358 +-92.427 196.971 205.233 +-95.4452 197.521 205.807 +-97.8983 196.871 205.129 +-101.277 198.034 206.341 +-103.769 197.415 205.696 +-106.988 198.142 206.454 +-109.446 197.423 205.705 +-112.553 197.85 206.15 +-115.042 197.162 205.433 +-118.173 197.547 205.834 +-113.39 184.971 192.73 +-113.843 181.294 188.899 +-115.351 179.397 186.922 +-116.57 177.118 184.548 +-118.967 176.658 184.069 +-120.414 174.807 182.14 +-123.884 175.878 183.255 +-126.765 176.052 183.437 +-145.232 197.367 205.646 +-145.128 193.042 201.14 +-145.442 189.406 197.352 +-149.685 190.894 198.902 +-152.715 190.769 198.772 +-161.909 198.156 206.468 +-531.75 637.744 664.497 +-534.438 628.243 654.597 +-539.811 622.081 648.176 +-542.824 613.364 639.094 +-163.692 181.391 189.001 +-163.769 178.001 185.468 +-167.259 178.341 185.822 +-168.617 176.399 183.799 +-564.617 579.622 603.937 +-567.596 571.852 595.84 +-573.175 566.812 590.589 +-582.329 565.3 589.014 +-591.723 563.944 587.601 +-584.889 547.322 570.282 +-589.057 541.279 563.985 +-591.777 534.018 556.42 +-597.561 529.603 551.82 +-600.291 522.559 544.479 +-605.28 517.566 539.278 +-608.727 511.325 532.774 +-613.734 506.459 527.705 +-617.106 500.31 521.298 +-622.206 495.621 516.412 +-625.513 489.561 510.097 +-630.455 484.836 505.175 +-633.366 478.609 498.686 +-638.828 474.358 494.257 +-141.732 103.418 107.757 +-143.169 102.658 106.964 +-143.266 100.949 105.183 +-143.401 99.2957 103.461 +-142.864 97.2122 101.29 +-142.861 95.5275 99.5348 +-143.334 94.1842 98.1351 +-149.196 96.337 100.378 +-148.488 94.2154 98.1676 +-699.299 435.993 454.282 +-702.895 430.603 448.667 +-709.578 427.112 445.029 +-712.652 421.459 439.139 +-719.086 417.804 435.331 +-722.704 412.518 429.823 +-727.953 408.179 425.302 +-732.443 403.42 420.343 +-735.844 398.084 414.783 +-726.474 385.993 402.185 +-728.994 380.38 396.336 +-732.796 375.465 391.216 +-738.228 371.39 386.969 +-388.984 192.123 200.182 +-388.606 188.415 196.319 +-387.834 184.569 192.312 +-758.735 354.369 369.235 +-762.839 349.618 364.284 +-2747.9 1235.66 1287.49 +-383.574 169.206 176.304 +-381.791 165.194 172.124 +-385.052 163.387 170.241 +-791.251 329.205 343.015 +-137.085 55.9136 58.2592 +-802.806 320.943 334.406 +-807.69 316.421 329.694 +-815.146 312.872 325.996 +-413.923 155.619 162.147 +-827.057 304.501 317.274 +-832.903 300.227 312.821 +-839.863 296.314 308.744 +-845.802 292.001 304.25 +-853.585 288.275 300.368 +-413.294 136.5 142.226 +-867.971 280.257 292.014 +-412.576 130.193 135.654 +-882.668 272.119 283.534 +-888.54 267.521 278.743 +-383.574 112.741 117.47 +-382.763 109.783 114.388 +-383.854 107.388 111.892 +-383.053 104.481 108.864 +-382.955 101.79 106.06 +-383.099 99.1808 103.341 +-383.583 96.6728 100.728 +-382.147 93.7036 97.6344 +-381.422 90.9401 94.755 +-382.554 88.6323 92.3503 +-383.181 86.2101 89.8266 +-382.154 83.4335 86.9334 +-379.366 80.3113 83.6803 +-380.076 77.957 81.2272 +-380.467 75.5425 78.7114 +-381.79 73.3149 76.3904 +-382.7 71.005 73.9836 +-382.418 68.4818 71.3546 +-382.588 66.0512 68.8219 +-382.919 63.656 66.3263 +-381.174 60.9348 63.491 +-382.025 58.6442 61.1043 +-381.575 56.1608 58.5167 +-381.877 53.7978 56.0545 +-382.933 51.5411 53.7032 +-380.618 48.8467 50.8957 +-381.81 46.617 48.5726 +-381.693 44.2281 46.0835 +-381.346 41.8225 43.577 +-379.584 39.2813 40.9291 +-378.778 36.8608 38.4071 +-380.12 34.652 36.1056 +-380.939 32.3876 33.7462 +-379.544 29.9433 31.1994 +-379.012 27.5837 28.7408 +-378.549 25.2393 26.2981 +-379.052 22.9631 23.9263 +-379.626 20.688 21.5558 +-379.374 18.3692 19.1397 +-379.591 16.0761 16.7505 +-380.578 13.8107 14.3901 +-378.439 11.4411 11.921 +-380.568 9.20224 9.58827 +-144.251 2.61555 2.72527 +-147.378 1.78127 1.856 +-145.794 0.881005 0.917962 +96.9 0 0 +96.8963 0.591003 0.604778 +96.6853 1.17952 1.20702 +96.6669 1.76917 1.81041 +97.5405 2.38064 2.43612 +96.8078 2.95412 3.02297 +96.8671 3.5481 3.6308 +96.8191 4.13877 4.23524 +96.7637 4.72912 4.83935 +96.701 5.31911 5.44309 +97.4278 5.95743 6.09629 +97.4493 6.55813 6.71098 +97.3637 7.1522 7.31891 +97.37 7.75369 7.93441 +97.1703 8.33875 8.53311 +96.9633 8.922 9.12995 +96.9472 9.52271 9.74467 +96.8247 10.1136 10.3494 +96.3984 10.671 10.9197 +97.0505 11.3509 11.6154 +96.9051 11.9424 12.2207 +96.7523 12.5329 12.8251 +96.494 13.1092 13.4147 +96.4246 13.7112 14.0307 +96.2497 14.2987 14.632 +96.0675 14.8853 15.2322 +95.878 15.4706 15.8312 +96.5563 16.2016 16.5792 +96.3504 16.7899 17.1812 +96.1371 17.3769 17.7819 +96.7858 18.1254 18.5479 +96.5558 18.7151 19.1513 +96.3184 19.3033 19.7532 +96.8408 20.0487 20.516 +96.5868 20.6386 21.1196 +96.4208 21.248 21.7432 +96.9127 22.008 22.5209 +96.6342 22.5982 23.1249 +97.1993 23.3916 23.9368 +96.9035 23.9835 24.5425 +97.5401 24.8127 25.391 +97.2266 25.4066 25.9988 +97.6525 26.199 26.8097 +97.3217 26.7936 27.4181 +96.9834 27.3861 28.0244 +97.3769 28.1906 28.8476 +97.2053 28.8381 29.5102 +97.5752 29.6528 30.3439 +97.3839 30.3036 31.0099 +97.0019 30.8964 31.6166 +96.6124 31.4869 32.2208 +97.0279 32.3457 33.0996 +96.6204 32.9363 33.704 +96.9214 33.7738 34.561 +97.2088 34.6175 35.4244 +96.6842 35.1768 35.9967 +97.1242 36.0933 36.9345 +96.6699 36.6843 37.5393 +96.9079 37.5435 38.4186 +96.4354 38.1331 39.0219 +96.6484 38.9994 39.9084 +96.8471 39.8712 40.8005 +96.4313 40.4964 41.4403 +96.6041 41.3751 42.3395 +96.0838 41.9628 42.9408 +96.1466 42.8101 43.8079 +96.3632 43.7374 44.7568 +95.6467 44.2463 45.2776 +96.0026 45.2579 46.3127 +95.9283 46.0792 47.1532 +96.0865 47.0233 48.1193 +96.147 47.9323 49.0495 +96.273 48.8866 50.026 +96.3824 49.8461 51.0079 +95.6765 50.3899 51.5644 +95.6784 51.3119 52.5079 +95.6645 52.2378 53.4553 +96.4173 53.6024 54.8518 +95.7444 54.1885 55.4515 +95.6814 55.126 56.4109 +95.6023 56.0669 57.3737 +95.6591 57.1018 58.4327 +95.6217 58.0957 59.4498 +95.5667 59.0935 60.4708 +96.0143 60.4224 61.8307 +95.2562 61.0057 62.4276 +95.8805 62.49 63.9465 +95.6769 63.4573 64.9363 +95.6003 64.5239 66.0278 +95.3616 65.4964 67.023 +95.318 66.6192 68.1719 +95.6741 68.0454 69.6314 +95.4461 69.0788 70.6889 +95.1994 70.1144 71.7486 +94.9342 71.1523 72.8107 +95.3258 72.7081 74.4028 +95.0165 73.7544 75.4734 +95.2185 75.2207 76.9739 +94.8661 76.2733 78.051 +94.8194 77.5928 79.4013 +94.8755 79.0249 80.8668 +94.4576 80.0858 81.9525 +94.5869 81.6367 83.5395 +94.56 83.0856 85.0221 +94.3193 84.3751 86.3417 +94.2971 85.8896 87.8915 +91.9573 85.29 87.2779 +91.3053 86.2405 88.2506 +92.0472 88.5469 90.6107 +90.9381 89.1046 91.1815 +92.2311 92.0611 94.2068 +93.9668 95.5577 97.785 +93.6648 97.0541 99.3162 +93.6085 98.8454 101.149 +93.2967 100.409 102.749 +93.2215 102.271 104.655 +92.9478 103.962 106.385 +93.1092 106.193 108.668 +92.6553 107.775 110.287 +92.8795 110.203 112.772 +92.6 112.098 114.71 +92.9696 114.848 117.525 +92.5502 116.694 119.414 +92.4257 118.974 121.747 +92.2512 121.261 124.087 +91.7033 123.121 125.991 +90.8889 124.672 127.578 +114.762 160.874 164.624 +113.231 162.259 166.041 +111.244 163.006 166.806 +108.402 162.475 166.262 +106.369 163.13 166.932 +103.555 162.56 166.349 +101.522 163.185 166.988 +98.3861 161.997 165.772 +96.7806 163.301 167.107 +93.6891 162.071 165.848 +91.9918 163.221 167.025 +90.7029 165.146 168.995 +90.9489 170.014 173.976 +90.6011 173.977 178.032 +90.1946 178.015 182.164 +88.6197 179.88 184.072 +86.9732 181.673 185.908 +88.7497 190.904 195.353 +89.3698 198.104 202.721 +87.4776 199.978 204.639 +85.0342 200.638 205.315 +81.8919 199.604 204.256 +79.7172 200.904 205.586 +76.5069 199.56 204.211 +74.2627 200.695 205.373 +71.0525 199.174 203.816 +68.9364 200.687 205.365 +65.8432 199.329 203.975 +63.59 200.474 205.147 +60.5023 198.94 203.577 +58.3351 200.397 205.068 +55.2201 198.55 203.178 +53.067 200.116 204.78 +50.2711 199.262 203.906 +47.9298 200.181 204.847 +45.147 199.224 203.867 +42.7908 200.113 204.777 +40.0262 199.052 203.691 +37.7873 200.605 205.28 +34.9765 199.094 203.734 +32.6365 200.202 204.868 +29.9474 199.142 203.784 +27.5365 199.874 204.532 +24.8655 198.641 203.271 +22.4707 199.552 204.203 +19.8318 198.217 202.837 +17.5087 200.075 204.738 +14.8843 198.499 203.125 +12.4533 199.35 203.996 +9.90448 198.231 202.851 +7.47352 199.472 204.121 +4.95474 198.392 203.016 +2.48619 199.113 203.754 +1.73404e-14 197.933 202.546 +-2.48968 199.393 204.04 +-4.95997 198.602 203.23 +-7.46567 199.262 203.906 +-9.89401 198.021 202.637 +-12.4446 199.21 203.853 +-14.8372 197.87 202.482 +-17.3805 198.61 203.239 +-19.8387 198.287 202.909 +-22.4785 199.622 204.275 +-24.7871 198.015 202.63 +-27.4886 199.526 204.177 +-29.7593 197.891 202.503 +-32.4327 198.952 203.589 +-34.8059 198.122 202.74 +-37.461 198.873 203.508 +-39.8453 198.152 202.771 +-42.4065 198.316 202.939 +-44.7246 197.36 201.96 +-47.4842 198.32 202.942 +-49.8023 197.404 202.005 +-52.5749 198.26 202.881 +-54.7431 196.835 201.422 +-57.7768 198.479 203.105 +-59.8994 196.957 201.548 +-62.7458 197.812 202.423 +-65.1908 197.354 201.954 +-67.9793 197.901 202.513 +-70.2783 197.004 201.596 +-73.3613 198.259 202.88 +-75.6269 197.264 201.862 +-78.5681 198.007 202.623 +-80.7893 196.916 201.506 +-83.9549 198.091 202.708 +-86.2204 197.104 201.698 +-89.1593 197.637 202.244 +-91.6544 197.152 201.747 +-95.001 198.441 203.067 +-97.1821 197.26 201.857 +-100.376 198.109 202.726 +-102.538 196.898 201.488 +-106.183 198.491 203.117 +-108.191 196.988 201.579 +-111.673 198.141 202.759 +-113.805 196.869 201.458 +-115.953 195.651 200.211 +-113.664 187.152 191.514 +-114.321 183.759 188.042 +-116.042 182.162 186.407 +-117.234 179.793 183.984 +-119.728 179.451 183.634 +-121.705 178.336 182.492 +-125.506 179.848 184.04 +-129.264 181.202 185.425 +-145.413 199.463 204.112 +-144.851 194.477 199.009 +-144.456 189.883 194.309 +-147.871 190.346 194.782 +-151.164 190.598 195.041 +-159.644 197.212 201.809 +-166.1 201.074 205.76 +-536.57 636.651 651.49 +-541.563 629.94 644.622 +-544.757 621.309 635.791 +-163.639 183.03 187.296 +-164.145 180.08 184.277 +-168.402 181.24 185.465 +-170.052 179.565 183.75 +-566.966 587.48 601.173 +-569.691 579.335 592.838 +-575.125 574.063 587.444 +-578.729 567.063 580.28 +-584.141 561.928 575.026 +-586.317 553.794 566.701 +-591.223 548.355 561.136 +-594.516 541.511 554.133 +-600.147 536.873 549.387 +-602.345 529.255 541.59 +-607.42 524.257 536.476 +-610.253 517.405 529.464 +-616.048 513.127 525.087 +-618.859 506.427 518.231 +-623.781 501.526 513.215 +-627.236 495.503 507.052 +-633.064 491.399 502.853 +-635.73 484.892 496.193 +-142.06 106.473 108.955 +-142.971 105.298 107.753 +-143.239 103.669 106.085 +-144.037 102.442 104.83 +-143.048 99.9784 102.309 +-142.864 98.122 100.409 +-142.861 96.4216 98.669 +-145.583 96.5572 98.8077 +-149.05 97.1429 99.4071 +-685.889 439.269 449.508 +-701.975 441.757 452.053 +-705.516 436.254 446.422 +-712.068 432.623 442.706 +-715.922 427.355 437.316 +-721.461 423.107 432.969 +-724.401 417.357 427.085 +-733.704 415.254 424.933 +-737.999 410.285 419.847 +-730.092 398.668 407.96 +-724.887 388.754 397.815 +-731.63 385.328 394.309 +-734.404 379.811 388.664 +-741.14 376.345 385.116 +-744.753 371.282 379.936 +-2683.95 1313.48 1344.1 +-755.394 362.854 371.312 +-387.078 182.478 186.731 +-764.173 353.508 361.747 +-772.499 350.622 358.795 +-382.984 170.527 174.501 +-385.268 168.258 172.18 +-385.223 164.989 168.835 +-382.982 160.834 164.582 +-137.688 56.6852 58.0064 +-136.919 55.2492 56.537 +-810.475 320.484 327.954 +-817.769 316.816 324.2 +-822.133 311.983 319.255 +-830.147 308.499 315.689 +-835.209 303.876 310.958 +-842.981 300.198 307.195 +-848.04 295.513 302.401 +-856.641 292.015 298.821 +-862.149 287.411 294.109 +-871.506 284.032 290.652 +-410.939 130.889 133.94 +-2993.23 931.423 953.132 +-385.532 117.162 119.893 +-383.574 113.796 116.448 +-382.856 110.837 113.42 +-382.741 108.079 110.598 +-383.332 105.535 107.995 +-382.301 102.567 104.958 +-380.851 99.5213 101.841 +-383.019 97.4336 99.7046 +-381.11 94.3241 96.5226 +-379.815 91.4048 93.5352 +-382.08 89.3507 91.4332 +-382.61 86.8877 88.9129 +-381.868 84.1514 86.1128 +-380.418 81.2873 83.1819 +-380.843 78.8453 80.683 +-380.467 76.2495 78.0267 +-382.85 74.2066 75.9362 +-381.83 71.5067 73.1733 +-381.547 68.9653 70.5727 +-382.394 66.6355 68.1886 +-381.947 64.0886 65.5824 +-380.297 61.3636 62.7939 +-381.732 59.1477 60.5263 +-381.869 56.73 58.0523 +-381.681 54.2734 55.5384 +-381.166 51.7834 52.9903 +-381.208 49.3802 50.5312 +-380.924 46.9441 48.0382 +-380.509 44.5037 45.541 +-382.038 42.2906 43.2763 +-379.189 39.6076 40.5307 +-380.659 37.3906 38.2621 +-379.823 34.949 35.7635 +-380.542 32.6566 33.4177 +-380.637 30.3107 31.0172 +-380.405 27.9441 28.5954 +-380.739 25.6229 26.2201 +-378.853 23.1657 23.7057 +-378.729 20.8323 21.3178 +-379.872 18.5655 18.9982 +-379.391 16.218 16.596 +-379.579 13.9034 14.2275 +-378.839 11.5604 11.8298 +-378.269 9.23231 9.4475 +-145.65 2.66565 2.72778 +-145.478 1.77478 1.81614 +-144.694 0.882541 0.903111 +96.9 0 0 +96.8963 0.596435 0.599422 +97.7851 1.20391 1.20994 +96.8668 1.78913 1.79809 +97.7404 2.40744 2.4195 +96.9077 2.98434 2.99929 +97.666 3.61025 3.62833 +96.7193 4.1725 4.1934 +97.5618 4.81195 4.83604 +96.701 5.368 5.39488 +97.4278 6.01219 6.04229 +96.5534 6.55756 6.5904 +97.3637 7.21794 7.25409 +97.37 7.82496 7.86414 +97.1703 8.41539 8.45754 +97.0625 9.01317 9.0583 +96.9472 9.61024 9.65836 +96.7258 10.1962 10.2473 +96.5959 10.7912 10.8452 +96.2615 11.362 11.4189 +96.9051 12.0521 12.1125 +96.7523 12.6481 12.7115 +96.5921 13.2432 13.3095 +96.4246 13.8372 13.9065 +96.3475 14.4448 14.5172 +96.1652 15.0373 15.1126 +96.7549 15.7556 15.8345 +96.5563 16.3505 16.4324 +96.3504 16.9442 17.0291 +97.0084 17.6956 17.7842 +96.6892 18.2738 18.3653 +96.5558 18.8871 18.9816 +97.1836 19.6556 19.754 +96.9367 20.2531 20.3545 +96.6824 20.849 20.9534 +97.1838 21.6129 21.7211 +96.9127 22.2103 22.3215 +97.4877 23.0074 23.1226 +97.1048 23.5836 23.7017 +96.9035 24.2039 24.3251 +97.5401 25.0407 25.1661 +97.1329 25.6154 25.7437 +96.8123 26.2124 26.3436 +97.3217 27.0399 27.1753 +96.9834 27.6378 27.7762 +97.4693 28.4767 28.6193 +97.1133 29.0755 29.2211 +96.8415 29.7003 29.8491 +97.3839 30.5821 30.7353 +97.0019 31.1804 31.3365 +96.6124 31.7763 31.9354 +96.9377 32.6127 32.776 +96.6204 33.239 33.4055 +96.9214 34.0842 34.2549 +97.2088 34.9357 35.1106 +96.7729 35.5327 35.7106 +96.3296 36.1269 36.3079 +96.6699 37.0215 37.2068 +96.9079 37.8886 38.0783 +96.5224 38.5184 38.7113 +96.6484 39.3579 39.555 +96.244 39.9871 40.1873 +96.4313 40.8686 41.0732 +96.6041 41.7554 41.9645 +96.6775 42.6101 42.8234 +96.1466 43.2035 43.4199 +96.3632 44.1394 44.3604 +96.3972 45.0033 45.2287 +96.0026 45.6738 45.9026 +95.9283 46.5028 46.7356 +96.2504 47.5364 47.7745 +96.2285 48.4138 48.6562 +96.1921 49.2945 49.5413 +96.3021 50.2623 50.514 +96.3953 51.2352 51.4917 +96.3924 52.17 52.4313 +96.4525 53.1522 53.4184 +96.4173 54.0951 54.366 +95.7444 54.6865 54.9604 +95.6814 55.6327 55.9112 +95.679 56.6275 56.9111 +95.6591 57.6266 57.9152 +95.5462 58.5834 58.8767 +96.1659 60.0105 60.311 +95.4198 60.6001 60.9036 +95.2562 61.5664 61.8747 +95.2223 62.6314 62.945 +95.7494 64.089 64.41 +95.5283 65.0679 65.3937 +95.4329 66.1478 66.4791 +95.2473 67.1816 67.518 +95.1134 68.2684 68.6102 +95.4461 69.7138 70.0629 +95.1994 70.7589 71.1132 +94.9342 71.8063 72.1659 +95.3258 73.3764 73.7438 +94.9496 74.3794 74.7518 +95.2848 75.965 76.3454 +94.8005 76.9214 77.3066 +94.8194 78.306 78.6981 +94.8755 79.7512 80.1506 +94.394 80.7676 81.1721 +94.6498 82.4421 82.8549 +94.8712 84.125 84.5463 +94.3193 85.1506 85.577 +93.4449 85.8961 86.3263 +91.4759 85.6232 86.0519 +91.4837 87.2031 87.6398 +91.3418 88.6759 89.1199 +91.5769 90.5556 91.0091 +91.3707 92.0403 92.5012 +93.627 96.0869 96.568 +93.8326 98.1218 98.6131 +93.5533 99.6954 100.195 +93.3511 101.391 101.899 +93.1678 103.152 103.668 +92.9478 104.918 105.443 +93.057 107.109 107.646 +92.7584 108.887 109.433 +92.8795 111.216 111.773 +93.05 113.677 114.247 +92.9696 115.903 116.484 +92.8895 118.199 118.79 +92.8074 120.564 121.167 +92.6267 122.874 123.49 +92.6268 125.504 126.132 +91.6607 126.886 127.522 +95.4417 135.02 135.696 +112.179 162.229 163.041 +110.168 162.913 163.729 +106.88 161.667 162.477 +105.249 162.897 163.712 +102.213 161.927 162.738 +100.445 162.938 163.754 +97.0967 161.343 162.151 +95.7091 162.977 163.793 +92.7151 161.86 162.67 +90.6724 162.358 163.171 +91.2046 167.586 168.425 +90.9489 171.576 172.436 +90.8406 176.04 176.921 +89.5604 178.388 179.281 +87.8708 179.999 180.9 +85.8944 181.068 181.975 +89.7385 194.805 195.781 +89.1593 199.454 200.452 +86.3958 199.32 200.318 +84.0401 200.115 201.117 +80.8444 198.862 199.858 +78.675 200.1 201.102 +75.5234 198.805 199.8 +73.2862 199.877 200.878 +70.2057 198.609 199.604 +68.1894 200.337 201.34 +65.1458 199.031 200.028 +62.8757 200.044 201.046 +59.8162 198.491 199.485 +57.5974 199.681 200.681 +54.724 198.575 199.569 +52.4656 199.667 200.666 +49.5245 198.106 199.098 +47.3357 199.517 200.516 +44.49 198.129 199.121 +42.2587 199.442 200.44 +39.4417 197.948 198.939 +37.2261 199.442 200.44 +34.4403 197.843 198.834 +32.2176 199.449 200.448 +29.5606 198.377 199.371 +27.2969 199.956 200.957 +24.5779 198.149 199.141 +22.1804 198.785 199.78 +19.6643 198.35 199.344 +17.3012 199.52 200.519 +14.6959 197.788 198.778 +12.353 199.561 200.561 +9.78931 197.727 198.717 +7.37666 198.696 199.691 +4.89715 197.888 198.879 +2.46263 199.039 200.035 +1.712e-14 197.213 198.2 +-2.4635 199.109 200.106 +-4.88144 197.253 198.241 +-7.37405 198.625 199.62 +-9.77535 197.445 198.433 +-12.2919 198.575 199.57 +-14.6488 197.153 198.141 +-17.2523 198.957 199.953 +-19.6016 197.717 198.707 +-22.1647 198.644 199.639 +-24.4995 197.516 198.505 +-27.1243 198.692 199.687 +-29.3725 197.115 198.102 +-32.0365 198.328 199.321 +-34.2697 196.863 197.849 +-37.0303 198.393 199.386 +-39.2468 196.97 197.956 +-42.0222 198.325 199.318 +-44.1771 196.735 197.72 +-47.0551 198.334 199.327 +-49.1945 196.787 197.772 +-51.9553 197.725 198.715 +-54.0371 196.082 197.064 +-57.079 197.884 198.875 +-59.1925 196.422 197.406 +-62.0965 197.565 198.554 +-64.201 196.144 197.126 +-67.3957 198.005 198.996 +-69.4316 196.419 197.403 +-72.5351 197.828 198.818 +-74.8246 196.965 197.951 +-77.6327 197.449 198.438 +-79.8797 196.489 197.473 +-82.9893 197.613 198.602 +-85.2264 196.622 197.607 +-88.1669 197.234 198.221 +-90.4493 196.348 197.331 +-93.8587 197.857 198.848 +-95.7496 196.138 197.121 +-99.0739 197.337 198.325 +-101.443 196.587 197.571 +-104.887 197.871 198.862 +-106.829 196.296 197.279 +-110.354 197.6 198.589 +-112.719 196.782 197.768 +-113.389 193.084 194.05 +-113.859 189.196 190.144 +-114.68 186.03 186.962 +-117.018 185.382 186.31 +-118.271 183.05 183.967 +-121.334 183.53 184.449 +-123.298 182.33 183.243 +-127.917 184.988 185.914 +-139.928 197.954 198.945 +-144.551 200.102 201.104 +-144.851 196.264 197.247 +-144.832 192.126 193.089 +-145.772 189.369 190.317 +-148.643 189.142 190.089 +-156.591 195.219 196.196 +-161.15 196.874 197.86 +-539.006 645.42 648.652 +-544.962 639.72 642.924 +-162.758 187.336 188.274 +-165.759 187.104 188.041 +-165.757 183.519 184.438 +-172.051 186.87 187.805 +-563.804 600.817 603.826 +-569.929 595.979 598.964 +-572.41 587.45 590.391 +-578.108 582.344 585.26 +-580.471 573.997 576.872 +-586.139 569.033 571.883 +-588.28 560.754 563.562 +-594.353 556.323 559.109 +-596.951 548.727 551.474 +-603.471 544.809 547.537 +-604.835 536.327 539.012 +-611.196 532.364 535.03 +-613.37 524.827 527.455 +-619.262 520.545 523.151 +-621.652 513.388 515.959 +-627.586 509.223 511.773 +-630.218 502.435 504.951 +-636.076 498.274 500.77 +-638.703 491.636 494.098 +-143.083 108.226 108.768 +-143.04 106.318 106.85 +-143.794 105.027 105.553 +-143.827 103.233 103.75 +-143.118 100.947 101.452 +-143.007 99.1226 99.619 +-147.177 100.248 100.75 +-149.355 99.969 100.47 +-687.619 452.274 454.538 +-699.971 452.408 454.673 +-706.508 448.695 450.942 +-709.336 442.647 444.864 +-715.993 439.005 441.203 +-718.432 432.795 434.962 +-725.367 429.309 431.458 +-728.336 423.481 425.602 +-737.512 421.246 423.355 +-735.808 412.826 414.893 +-725.679 399.901 401.903 +-727.902 393.959 395.932 +-734.904 390.609 392.565 +-737.539 384.938 386.866 +-744.781 381.669 383.581 +-748.416 376.538 378.423 +-388.114 191.684 192.643 +-388.74 188.448 189.392 +-387.658 184.431 185.355 +-769.093 359.053 360.851 +-776.525 355.689 357.47 +-386.779 173.8 174.67 +-383.403 168.982 169.828 +-384.2 166.063 166.895 +-383.925 162.712 163.527 +-802.608 333.464 335.134 +-135.966 55.3691 55.6463 +-814.044 324.854 326.48 +-822.055 321.404 323.013 +-826.264 316.432 318.017 +-413.926 155.237 156.014 +-838.403 307.841 309.383 +-849.218 305.199 306.727 +-847.055 297.883 299.374 +-853.495 293.616 295.087 +-866.031 291.358 292.817 +-875.403 287.924 289.366 +-880.843 283.139 284.557 +-388.622 122.042 122.653 +-383.515 117.62 118.209 +-382.746 114.594 115.167 +-382.579 111.774 112.334 +-383.483 109.283 109.83 +-382.402 106.247 106.779 +-382.021 103.434 103.952 +-382.35 100.832 101.337 +-381.891 98.0399 98.5309 +-381.581 95.3089 95.7861 +-381.8 92.7266 93.191 +-382.08 90.1719 90.6234 +-381.944 87.5332 87.9716 +-380.628 84.6491 85.073 +-380.801 82.1169 82.5281 +-380.076 79.4098 79.8075 +-380.467 76.9503 77.3357 +-382.272 74.7751 75.1495 +-381.541 72.1096 72.4707 +-382.322 69.7404 70.0897 +-381.326 67.0603 67.3961 +-381.655 64.6283 64.9519 +-382.148 62.2291 62.5407 +-382.025 59.7371 60.0362 +-381.869 57.2514 57.5381 +-381.681 54.7722 55.0465 +-381.166 52.2593 52.521 +-381.503 49.8727 50.1224 +-382.401 47.5593 47.7974 +-380.805 44.9476 45.1727 +-381.149 42.5799 42.7932 +-380.376 40.0967 40.2975 +-380.065 37.6754 37.864 +-380.219 35.307 35.4838 +-381.038 32.9997 33.1649 +-380.141 30.5493 30.7023 +-378.217 28.0388 28.1792 +-379.047 25.7435 25.8724 +-380.048 23.4524 23.5699 +-379.427 21.0625 21.1679 +-378.975 18.6918 18.7854 +-379.591 16.3757 16.4577 +-377.981 13.9722 14.0422 +-379.538 11.6882 11.7467 +-379.569 9.34912 9.39594 +-147.649 2.72708 2.74073 +-146.078 1.79847 1.80748 +-145.494 0.895575 0.90006 +96.9 0 0 +96.8963 0.601818 0.594017 +96.8852 1.20359 1.18799 +96.6669 1.80155 1.77819 +96.841 2.40682 2.37561 +96.8078 3.00818 2.96918 +96.8671 3.61303 3.5662 +96.7193 4.21016 4.15558 +97.5618 4.85538 4.79244 +96.701 5.41645 5.34623 +96.5313 6.01063 5.93271 +96.5534 6.61675 6.53097 +97.4631 7.29056 7.19605 +97.37 7.89558 7.79323 +97.1703 8.49135 8.38127 +97.0625 9.09452 8.97662 +96.9472 9.69698 9.57127 +96.7258 10.2883 10.1549 +96.5959 10.8886 10.7474 +96.2615 11.4646 11.3159 +96.0188 12.0497 11.8935 +96.7523 12.7623 12.5968 +96.5921 13.3627 13.1895 +96.4246 13.9621 13.7811 +96.2497 14.5604 14.3717 +96.0675 15.1577 14.9612 +95.878 15.7537 15.5495 +96.4591 16.4815 16.2679 +96.4474 17.1144 16.8925 +96.2339 17.7128 17.4831 +96.7858 18.4571 18.2179 +96.5558 19.0575 18.8105 +97.0874 19.8134 19.5566 +96.8408 20.4156 20.1509 +96.5868 21.0163 20.7438 +96.4208 21.6368 21.3563 +96.9127 22.4107 22.1202 +96.6342 23.0118 22.7135 +96.3483 23.6111 23.305 +96.8093 24.3987 24.0824 +97.5401 25.2667 24.9392 +97.1329 25.8466 25.5116 +96.8123 26.4489 26.1061 +97.3217 27.2839 26.9302 +96.9834 27.8873 27.5258 +97.4693 28.7337 28.3612 +97.1133 29.338 28.9576 +97.6669 30.2238 29.832 +97.3839 30.8582 30.4581 +97.0019 31.4618 31.054 +96.703 32.0932 31.6771 +97.0279 32.9376 32.5106 +97.3394 33.7886 33.3506 +96.9214 34.3919 33.946 +97.2088 35.251 34.794 +96.7729 35.8534 35.3886 +97.1242 36.7538 36.2773 +96.6699 37.3556 36.8713 +96.9953 38.2651 37.769 +96.4354 38.831 38.3276 +96.735 39.7487 39.2334 +96.1578 40.3119 39.7893 +96.4313 41.2375 40.7029 +96.6894 42.1694 41.6228 +96.7623 43.0324 42.4745 +96.9057 43.9376 43.368 +96.1955 44.4603 43.8839 +96.564 45.4881 44.8984 +95.8367 46.0065 45.4101 +95.9283 46.9225 46.3142 +96.0865 47.8839 47.2631 +96.2285 48.8508 48.2175 +96.1921 49.7394 49.0946 +95.5786 50.3349 49.6824 +95.6765 51.3121 50.6469 +96.3131 52.5976 51.9157 +95.6645 53.1937 52.5042 +95.7912 54.2289 53.5259 +95.7444 55.1801 54.4648 +95.6814 56.1348 55.4071 +95.6023 57.0929 56.3528 +95.583 58.1005 57.3473 +95.6217 59.1588 58.3919 +96.1659 60.5521 59.7672 +95.4198 61.1471 60.3544 +95.9198 62.5548 61.7439 +95.2954 63.2452 62.4253 +95.6769 64.6185 63.7808 +95.5283 65.6552 64.8041 +95.4329 66.7449 65.8796 +95.318 67.8383 66.9589 +95.6741 69.2907 68.3924 +95.5155 70.3942 69.4816 +95.1994 71.3975 70.4719 +94.866 72.4024 71.4638 +95.2582 73.986 73.0269 +94.9496 75.0507 74.0778 +95.2185 76.5972 75.6043 +94.8661 77.6691 76.6622 +94.6895 78.9046 77.8817 +94.8112 80.417 79.3745 +94.4576 81.5514 80.4942 +95.0274 83.5179 82.4352 +94.9335 84.9406 83.8394 +93.2727 84.9662 83.8647 +91.6186 84.9776 83.8759 +91.4759 86.396 85.276 +91.8406 88.3333 87.1881 +91.5769 89.7068 88.5439 +92.1576 91.9523 90.7602 +91.6002 93.1045 91.8975 +91.9277 95.1948 93.9607 +93.7207 98.8893 97.6073 +93.4981 100.535 99.2321 +93.4056 102.366 101.039 +93.1678 104.083 102.733 +93.4248 106.408 105.028 +93.1615 108.198 106.795 +93.2219 110.419 108.987 +93.2348 112.649 111.189 +92.8 114.395 112.912 +92.5756 116.454 114.944 +92.2108 118.394 116.859 +92.8074 121.652 120.075 +92.5798 123.92 122.313 +92.7653 126.826 125.182 +92.4325 129.11 127.436 +91.6937 130.889 129.192 +96.0033 140.089 138.273 +108.962 162.585 160.477 +105.781 161.45 159.357 +103.839 162.165 160.063 +100.83 161.178 159.089 +99.0891 162.19 160.087 +96.0808 161.096 159.007 +94.1019 161.687 159.59 +91.5164 161.209 159.119 +90.3059 163.162 161.047 +91.1688 169.032 166.841 +90.9489 173.125 170.881 +90.2249 176.425 174.138 +88.4588 177.784 175.479 +86.6662 179.134 176.812 +86.3703 183.715 181.334 +89.5222 196.09 193.548 +88.5579 199.897 197.305 +85.0802 198.057 195.489 +82.9609 199.328 196.744 +79.7695 197.988 195.422 +77.7931 199.642 197.054 +74.5399 197.987 195.42 +72.46 199.407 196.822 +69.359 197.985 195.418 +67.1622 199.1 196.519 +64.1335 197.707 195.144 +62.0532 199.209 196.627 +59.1717 198.125 195.557 +56.8398 198.834 196.256 +54.0753 197.991 195.425 +51.9007 199.299 196.716 +48.9167 197.441 194.882 +46.7745 198.931 196.352 +43.9737 197.597 195.035 +41.7562 198.848 196.27 +38.9685 197.338 194.78 +36.7823 198.843 196.265 +34.0503 197.368 194.809 +31.8214 198.774 196.197 +29.1843 197.62 195.058 +26.8368 198.36 195.789 +24.2293 197.101 194.546 +21.8979 198.025 195.458 +19.3993 197.443 194.884 +17.0264 198.124 195.556 +14.5023 196.943 194.39 +12.1611 198.235 195.665 +9.67763 197.235 194.679 +7.28766 198.071 195.503 +4.83432 197.112 194.557 +2.42598 197.846 195.281 +1.69118e-14 196.573 194.025 +-2.43296 198.415 195.843 +-4.81861 196.472 193.925 +-7.30075 198.426 195.854 +-9.63575 196.382 193.836 +-12.1349 197.808 195.243 +-14.4761 196.588 194.039 +-17.057 198.48 195.907 +-19.3644 197.088 194.533 +-21.9215 198.238 195.668 +-24.2031 196.888 194.336 +-26.7889 198.006 195.439 +-29.038 196.628 194.079 +-31.6516 197.714 195.151 +-33.8675 196.309 193.764 +-36.469 197.149 194.594 +-38.7597 196.281 193.737 +-41.431 197.3 194.742 +-43.6765 196.262 193.718 +-46.1968 196.474 193.927 +-48.6041 196.18 193.637 +-51.3357 197.13 194.575 +-53.4647 195.756 193.218 +-56.3813 197.23 194.673 +-58.4856 195.828 193.289 +-61.3606 196.986 194.432 +-63.5037 195.765 193.227 +-66.3685 196.747 194.197 +-68.3913 195.223 192.692 +-71.4334 196.582 194.034 +-73.7117 195.787 193.249 +-76.7776 197.036 194.482 +-78.7772 195.526 192.991 +-82.1372 197.349 194.791 +-83.9984 195.538 193.003 +-87.2047 196.842 194.29 +-89.3986 195.819 193.281 +-92.5895 196.944 194.391 +-94.8054 195.957 193.417 +-98.0057 196.971 194.418 +-100.178 195.887 193.347 +-103.451 196.924 194.371 +-105.504 195.609 193.073 +-108.888 196.734 194.184 +-111.183 195.853 193.314 +-113.58 195.154 192.625 +-114.719 192.345 189.852 +-115.797 189.537 187.08 +-118.32 189.136 186.684 +-119.556 186.71 184.29 +-122.771 187.379 184.95 +-125.193 186.803 184.381 +-132.739 193.694 191.183 +-140.106 199.995 197.403 +-142.144 198.547 195.973 +-145.312 198.667 196.091 +-145.301 194.489 191.968 +-144.436 189.326 186.872 +-145.879 187.302 184.873 +-151.322 190.353 187.885 +-157.15 193.72 191.209 +-542.203 655.109 646.616 +-547.898 648.972 640.559 +-165.684 192.425 189.931 +-552.176 628.909 620.756 +-168.336 188.057 185.619 +-564.464 618.612 610.593 +-567.667 610.395 602.482 +-573.005 604.604 596.766 +-575.752 596.212 588.483 +-581.033 590.573 582.917 +-583.723 582.423 574.873 +-589.372 577.336 569.851 +-592.027 569.42 562.038 +-597.422 564.243 556.929 +-600.056 556.559 549.344 +-605.749 551.802 544.649 +-608.757 544.677 537.616 +-614.783 540.322 533.318 +-617.378 533.024 526.114 +-622.733 528.188 521.34 +-625.678 521.377 514.618 +-630.801 516.451 509.756 +-633.664 509.742 503.133 +-639.354 505.364 498.812 +-142.144 110.402 108.971 +-143.902 109.827 108.404 +-143.453 107.587 106.192 +-143.447 105.719 104.349 +-142.845 103.453 102.112 +-142.694 101.556 100.239 +-143.221 100.167 98.8689 +-149.407 102.685 101.354 +-151.458 102.292 100.966 +-701.222 465.384 459.351 +-703.215 458.607 452.662 +-710.149 455.079 449.18 +-713.605 449.331 443.506 +-720.144 445.536 439.76 +-723.602 439.844 434.142 +-731.726 436.98 431.316 +-733.969 430.608 425.026 +-735.569 423.928 418.433 +-726.573 411.325 405.993 +-729.856 405.833 400.572 +-732.9 400.244 395.056 +-739.696 396.705 391.562 +-742.362 390.953 385.885 +-748.826 387.206 382.186 +-752.568 382.045 377.092 +-759.927 378.703 373.794 +-387.339 189.464 187.008 +-385.171 184.902 182.505 +-387.674 182.621 180.253 +-385.285 178.074 175.765 +-783.426 355.21 350.606 +-385.777 171.564 169.339 +-385.393 168.083 165.904 +-382.982 163.777 161.654 +-384.89 161.356 159.264 +-814.324 334.608 330.27 +-137.603 55.4078 54.6895 +-825.991 325.857 321.633 +-831.449 321.292 317.127 +-838.8 317.419 313.304 +-414.234 153.47 151.48 +-880.136 319.165 315.028 +-884.911 314.004 309.934 +-882.076 306.188 302.218 +-864.496 293.467 289.663 +-877.215 291.124 287.35 +-885.756 287.288 283.564 +-383.141 121.406 119.832 +-382.964 118.512 116.975 +-383.482 115.851 114.349 +-384.057 113.219 111.752 +-385.801 110.936 109.498 +-382.96 107.362 105.97 +-380.527 103.959 102.612 +-381.788 101.592 100.275 +-382.173 98.9981 97.7148 +-381.77 96.2168 94.9695 +-381.422 93.471 92.2593 +-383.028 91.2114 90.029 +-381.088 88.1254 86.983 +-381.582 85.6266 84.5166 +-380.992 82.9001 81.8254 +-380.268 80.1664 79.1272 +-379.794 77.5075 76.5027 +-380.923 75.1838 74.2091 +-382.7 72.9811 72.035 +-382.418 70.3877 69.4752 +-382.685 67.9066 67.0263 +-381.363 65.1618 64.317 +-382.148 62.7907 61.9767 +-381.439 60.1839 59.4037 +-381.869 57.7682 57.0193 +-381.681 55.2666 54.5501 +-381.46 52.7718 52.0877 +-381.503 50.3228 49.6704 +-380.924 47.8032 47.1834 +-381.495 45.4355 44.8465 +-379.667 42.7972 42.2424 +-380.376 40.4586 39.9342 +-380.659 38.0749 37.5813 +-380.12 35.6163 35.1546 +-379.649 33.1761 32.746 +-380.538 30.8572 30.4572 +-380.405 28.4555 28.0866 +-379.445 26.0031 25.666 +-379.65 23.6393 23.3329 +-379.626 21.2637 20.9881 +-379.872 18.9052 18.6601 +-379.591 16.5235 16.3093 +-378.481 14.1169 13.9339 +-380.038 11.8092 11.6561 +-378.569 9.40867 9.2867 +-144.151 2.68649 2.65166 +-147.178 1.82836 1.80466 +-145.494 0.903659 0.891944 +96.9 0 0 +96.8963 0.607153 0.588563 +96.8852 1.21426 1.17708 +96.8668 1.82128 1.76551 +96.841 2.42815 2.3538 +96.8078 3.03484 2.94192 +96.7672 3.6413 3.52981 +96.7193 4.24748 4.11743 +96.664 4.85334 4.70474 +97.5982 5.51517 5.34631 +97.5275 6.12648 5.93891 +97.4493 6.73733 6.53105 +97.3637 7.34765 7.12268 +97.2707 7.95745 7.71381 +97.1703 8.56662 8.30433 +97.0625 9.17513 8.89421 +96.8482 9.77295 9.47372 +96.7258 10.3795 10.0617 +96.5959 10.9851 10.6488 +97.1491 11.6729 11.3155 +96.8066 12.2562 11.8809 +96.7523 12.8754 12.4812 +96.494 13.4674 13.0551 +96.4246 14.0858 13.6546 +96.2497 14.6895 14.2397 +96.9462 15.4319 14.9594 +96.7549 16.0387 15.5476 +96.5563 16.6443 16.1347 +96.3504 17.2487 16.7206 +96.2339 17.8698 17.3226 +96.7858 18.6207 18.0506 +96.5558 19.2265 18.6378 +96.3184 19.8307 19.2236 +96.8408 20.5966 19.9659 +96.6824 21.2236 20.5738 +96.4208 21.8286 21.1603 +96.8176 22.5872 21.8956 +96.6342 23.2157 22.5049 +97.1993 24.0308 23.295 +96.9035 24.6388 23.8845 +96.5064 25.2206 24.4484 +96.1962 25.8243 25.0336 +97.5592 26.8892 26.066 +97.3217 27.5258 26.683 +96.9834 28.1345 27.2731 +97.4693 28.9884 28.1009 +97.1133 29.598 28.6918 +96.9332 30.2627 29.3361 +97.3839 31.1317 30.1785 +97.0019 31.7407 30.7689 +96.6124 32.3473 31.3569 +97.0279 33.2296 32.2122 +97.3394 34.0881 33.0444 +96.8319 34.6647 33.6033 +97.2979 35.5961 34.5062 +96.7729 36.1712 35.0637 +97.2125 37.1132 35.9769 +96.582 37.6524 36.4996 +96.9079 38.5695 37.3885 +96.4354 39.1752 37.9757 +96.735 40.101 38.8732 +96.244 40.7056 39.4593 +96.4313 41.603 40.3292 +96.6041 42.5057 41.2043 +96.7623 43.4138 42.0846 +96.1466 43.9799 42.6333 +96.4471 44.9717 43.5948 +96.564 45.8913 44.4862 +96.0026 46.4946 45.071 +96.67 47.7044 46.2438 +96.0865 48.3083 46.8292 +96.2285 49.2838 47.7748 +96.1921 50.1803 48.6439 +95.659 50.8238 49.2677 +95.6765 51.7669 50.1819 +95.6784 52.7141 51.1001 +95.6645 53.6653 52.0221 +96.3391 55.0225 53.3378 +95.7444 55.6692 53.9648 +95.6814 56.6324 54.8984 +95.679 57.6451 55.8802 +95.6591 58.6621 56.866 +96.2255 60.06 58.2211 +96.1659 61.0889 59.2185 +96.0886 62.1215 60.2195 +95.33 62.7212 60.8008 +95.8073 64.1486 62.1845 +95.6769 65.1913 63.1953 +95.5283 66.2372 64.2091 +95.3616 67.2862 65.226 +95.1766 68.3381 66.2457 +95.1835 69.5463 67.417 +95.5155 71.0181 68.8437 +95.1994 72.0304 69.825 +95.548 73.5698 71.3173 +95.1907 74.5887 72.3049 +94.9496 75.7159 73.3977 +95.2185 77.2762 74.9102 +94.6693 78.1952 75.8011 +94.8194 79.7131 77.2725 +94.4255 80.7995 78.3256 +94.5848 82.3856 79.8631 +94.9015 84.1469 81.5705 +94.311 85.1313 82.5247 +92.2877 84.8139 82.2171 +91.436 85.5599 82.9402 +91.2352 86.932 84.2704 +91.8406 89.1162 86.3877 +91.5182 90.4438 87.6746 +91.1704 91.7736 88.9637 +91.7149 94.0468 91.1673 +90.9082 94.9731 92.0652 +91.9872 97.9205 94.9224 +93.4981 101.427 98.3211 +93.2967 103.153 99.9944 +93.1678 105.005 101.79 +92.8948 106.742 103.474 +93.1615 109.157 105.815 +93.2219 111.398 107.987 +92.8795 113.215 109.749 +92.95 115.596 112.057 +91.3938 115.986 112.435 +91.5805 118.627 114.995 +92.7597 122.667 118.911 +92.6267 125.082 121.252 +92.7653 127.95 124.032 +92.3417 130.126 126.142 +91.6937 132.049 128.006 +92.6278 136.362 132.186 +107.413 161.693 156.742 +104.852 161.449 156.506 +102.802 161.969 157.01 +100.017 161.295 156.357 +98.0524 161.916 156.958 +95.104 160.872 155.946 +93.0303 161.262 156.325 +90.3176 160.508 155.593 +91.552 166.879 161.77 +91.1688 170.53 165.309 +91.264 175.265 169.899 +89.5751 176.707 171.296 +88.7926 180.037 174.524 +85.7221 178.753 173.28 +90.178 193.515 187.59 +89.584 197.964 191.903 +87.4753 199.203 193.104 +84.3785 198.165 192.097 +82.052 198.892 192.802 +79.1906 198.294 192.222 +76.9112 199.129 193.032 +74.0222 198.355 192.282 +71.6588 198.95 192.859 +68.7784 198.068 192.003 +66.602 199.189 193.09 +63.6387 197.92 191.86 +61.4256 198.942 192.851 +58.6519 198.125 192.059 +56.1819 198.274 192.204 +53.6364 198.125 192.059 +51.1717 198.242 192.172 +48.4999 197.495 191.448 +46.2133 198.287 192.215 +43.5044 197.221 191.183 +41.2979 198.409 192.334 +38.6345 197.38 191.337 +36.3385 198.185 192.117 +33.8553 197.977 191.915 +31.5271 198.681 192.598 +28.9126 197.515 191.467 +26.626 198.546 192.467 +24.0201 197.131 191.096 +21.7018 197.99 191.928 +19.2109 197.259 191.219 +16.8616 197.946 191.885 +14.4029 197.327 191.285 +12.0477 198.126 192.06 +9.57642 196.903 190.874 +7.21698 197.889 191.83 +4.7872 196.921 190.892 +2.40154 197.59 191.54 +1.68016e-14 197.023 190.99 +-2.39718 197.231 191.192 +-4.79243 197.136 191.1 +-7.20651 197.602 191.551 +-9.55897 196.544 190.526 +-12.0215 197.696 191.643 +-14.3819 197.039 191.006 +-16.8311 197.587 191.538 +-19.183 196.973 190.942 +-21.6469 197.489 191.442 +-23.9853 196.846 190.819 +-26.463 197.331 191.289 +-28.7558 196.443 190.429 +-31.3686 197.683 191.63 +-33.5384 196.125 190.12 +-36.1558 197.188 191.151 +-38.37 196.03 190.028 +-41.0615 197.273 191.233 +-43.2541 196.087 190.083 +-45.7677 196.374 190.362 +-48.1874 196.222 190.214 +-50.7526 196.618 190.598 +-53.1594 196.363 190.351 +-55.6835 196.515 190.498 +-58.0905 196.229 190.221 +-60.7113 196.629 190.608 +-63.0538 196.101 190.097 +-65.6448 196.326 190.315 +-68.0042 195.838 189.842 +-70.8325 196.656 190.635 +-73.0646 195.789 189.794 +-75.9224 196.568 190.55 +-78.3086 196.085 190.081 +-81.2 196.827 190.8 +-83.2967 195.623 189.634 +-86.483 196.943 190.913 +-88.8733 196.394 190.381 +-91.8597 197.123 191.088 +-93.9915 195.997 189.996 +-96.9041 196.484 190.468 +-99.2884 195.869 189.872 +-102.436 196.719 190.696 +-104.787 196.003 190.001 +-107.715 196.341 190.329 +-110.322 196.058 190.055 +-113.427 196.619 190.599 +-115.188 194.844 188.878 +-116.674 192.666 186.767 +-118.93 191.796 185.924 +-121.09 190.783 184.941 +-124.165 191.188 185.334 +-127.259 191.569 185.703 +-132.607 195.217 189.24 +-138.589 199.584 193.473 +-140.919 198.58 192.499 +-144.851 199.791 193.674 +-144.973 195.769 189.775 +-144.77 191.446 185.584 +-145.685 188.71 182.933 +-149.303 189.478 183.677 +-152.4 189.53 183.727 +-160.788 195.992 189.991 +-165.173 197.378 191.334 +-566.023 663.204 642.898 +-573.691 659.206 639.022 +-559.007 630.031 610.741 +-566.098 625.902 606.739 +-570.041 618.38 599.446 +-574.627 611.689 592.961 +-578.301 604.16 585.662 +-583.04 597.867 579.561 +-585.813 589.69 571.635 +-591.547 584.603 566.704 +-594.763 577.122 559.452 +-599.528 571.252 553.762 +-603.222 564.455 547.172 +-608.274 559.013 541.897 +-611.372 551.864 534.967 +-616.86 546.952 530.206 +-620.24 540.241 523.7 +-625.432 535.179 518.793 +-628.601 528.456 512.276 +-633.819 523.521 507.492 +-636.513 516.573 500.756 +-142.391 113.547 110.071 +-143.09 112.121 108.688 +-143.765 110.695 107.306 +-143.866 108.853 105.52 +-142.891 106.243 102.99 +-142.845 104.37 101.175 +-143.613 103.116 99.9589 +-147.429 104.024 100.839 +-149.047 103.346 100.182 +-689.106 469.535 455.159 +-703.489 471.027 456.605 +-707.123 465.243 450.998 +-712.676 460.746 446.639 +-716.151 454.931 441.002 +-722.483 450.945 437.138 +-725.96 445.188 431.558 +-733.564 441.961 428.429 +-737.056 436.252 422.895 +-728.497 423.574 410.605 +-726.886 415.15 402.439 +-731.904 410.579 398.008 +-735.439 405.191 392.785 +-741.773 401.345 389.057 +-745.416 396.041 383.915 +-751.415 391.989 379.987 +-754.929 386.64 374.802 +-761.32 382.76 371.041 +-2700.25 1332.51 1291.71 +-386.166 187.022 181.296 +-385.505 183.208 177.599 +-386.627 180.278 174.758 +-787.475 360.211 349.182 +-384.59 172.552 167.268 +-385.052 169.422 164.235 +-384.268 165.784 160.708 +-382.219 161.656 156.707 +-2837.53 1176.29 1140.27 +-136.472 55.4392 53.7418 +-136.003 54.1295 52.4722 +-834.173 325.202 315.245 +-842.067 321.48 311.637 +-414.145 154.796 150.057 +-884.057 323.428 313.526 +-891.265 319.062 309.293 +-895.469 313.592 303.99 +-877.313 300.458 291.258 +-388.625 130.118 126.134 +-889.123 290.937 282.029 +-382.684 122.337 118.591 +-382.689 119.476 115.818 +-382.194 116.485 112.918 +-383.225 113.975 110.486 +-387.007 112.269 108.832 +-385.565 109.05 105.712 +-381.368 105.112 101.894 +-381.788 102.493 99.3547 +-383.019 100.096 97.0314 +-383.278 97.4531 94.4693 +-382.746 94.627 91.7297 +-382.933 91.9976 89.1808 +-380.803 88.8398 86.1197 +-381.582 86.3856 83.7407 +-380.992 83.6349 81.0742 +-378.83 80.5711 78.1042 +-380.083 78.2541 75.8581 +-381.79 76.0233 73.6956 +-381.444 73.3867 71.1398 +-381.837 70.9037 68.7328 +-382.685 68.5085 66.4109 +-381.363 65.7394 63.7266 +-381.174 63.1858 61.2512 +-381.732 60.764 58.9035 +-381.869 58.2802 56.4958 +-381.093 55.6706 53.9661 +-380.577 53.1162 51.4899 +-379.733 50.5333 48.9861 +-380.628 48.1895 46.714 +-380.903 45.7672 44.3659 +-381.248 43.3563 42.0288 +-381.365 40.9234 39.6704 +-380.956 38.4424 37.2653 +-379.624 35.8852 34.7865 +-378.756 33.3914 32.3691 +-380.141 31.0982 30.1461 +-379.907 28.6702 27.7924 +-382.133 26.4194 25.6105 +-378.454 23.7738 23.0459 +-380.125 21.4804 20.8228 +-378.476 19.0027 18.4208 +-380.09 16.6919 16.1808 +-379.579 14.2834 13.846 +-381.137 11.9483 11.5825 +-378.769 9.49709 9.20631 +-3275.38 61.5831 59.6976 +-146.178 1.83204 1.77595 +-146.094 0.915431 0.887403 +96.9 0 0 +96.6963 0.611174 0.581859 +96.8852 1.22483 1.16608 +96.6669 1.83334 1.7454 +97.7404 2.47203 2.35346 +96.8078 3.06126 2.91442 +97.7658 3.7109 3.5329 +96.7193 4.28445 4.07895 +96.664 4.89559 4.66076 +96.701 5.51203 5.24764 +97.5275 6.17981 5.88339 +96.5534 6.73351 6.41053 +97.2642 7.40407 7.04893 +97.2707 8.02672 7.64171 +97.071 8.63235 8.21829 +96.9633 9.24558 8.80211 +96.9472 9.86809 9.39476 +96.7258 10.4698 9.96761 +97.2873 11.16 10.6247 +96.2615 11.6669 11.1073 +96.1172 12.2749 11.6861 +96.7523 12.9875 12.3645 +96.494 13.5846 12.933 +96.3266 14.194 13.5132 +96.2497 14.8173 14.1066 +95.9699 15.4094 14.6703 +95.878 16.0317 15.2627 +96.5563 16.7892 15.9839 +96.3504 17.3988 16.5643 +97.0084 18.1704 17.2988 +96.6892 18.7641 17.864 +96.5558 19.3938 18.4636 +96.3184 20.0034 19.0439 +96.9367 20.7965 19.799 +96.5868 21.3871 20.3613 +96.3254 21.9968 20.9417 +97.0078 22.8286 21.7336 +96.6342 23.4178 22.2946 +97.1993 24.2399 23.0772 +96.9035 24.8533 23.6612 +97.5401 25.7126 24.4793 +97.1329 26.3027 25.0411 +97.6525 27.1492 25.847 +97.3217 27.7654 26.4336 +96.8907 28.3523 26.9924 +97.4693 29.2408 27.8382 +97.1133 29.8557 28.4236 +96.9332 30.5261 29.0619 +97.3839 31.4027 29.8964 +96.1829 31.7467 30.224 +97.4281 32.9044 31.3261 +96.2156 33.2383 31.644 +96.7102 34.1626 32.5239 +96.9214 34.9987 33.32 +97.2088 35.8731 34.1524 +96.8616 36.5195 34.7678 +97.0359 37.3683 35.5759 +96.6699 38.0148 36.1914 +96.9079 38.9052 37.0391 +96.4354 39.5162 37.6207 +96.735 40.4501 38.5099 +96.1578 41.0232 39.0555 +96.3456 41.9278 39.9167 +96.5189 42.8379 40.7831 +96.6775 43.7533 41.6547 +96.1466 44.3627 42.2348 +96.3632 45.3237 43.1497 +96.564 46.2908 44.0704 +95.8367 46.8183 44.5727 +96.0931 47.8325 45.5382 +96.0865 48.7288 46.3915 +96.147 49.6707 47.2882 +96.1921 50.6171 48.1892 +96.3021 51.6109 49.1353 +96.3953 52.6098 50.0864 +95.7577 53.2171 50.6645 +95.7433 54.177 51.5784 +96.4173 55.5465 52.8822 +95.7444 56.1538 53.4603 +95.6814 57.1253 54.3853 +95.679 58.1469 55.3578 +96.2674 59.549 56.6927 +96.2255 60.5828 57.6769 +96.091 61.5727 58.6193 +95.4198 62.2261 59.2414 +95.2562 63.2183 60.186 +95.2223 64.3118 61.2271 +95.6769 65.7588 62.6046 +95.5283 66.8137 63.609 +95.4329 67.9226 64.6647 +95.318 69.0353 65.724 +95.1134 70.1001 66.7377 +95.4461 71.5842 68.1506 +95.1994 72.6574 69.1723 +94.866 73.68 70.1459 +95.2582 75.2915 71.6801 +94.9496 76.375 72.7116 +95.2185 77.9488 74.21 +94.8661 79.0396 75.2484 +94.8194 80.407 76.5502 +94.8755 81.891 77.963 +94.6484 83.1585 79.1697 +94.2722 84.3158 80.2716 +93.9997 85.5891 81.4837 +92.2261 85.4949 81.3941 +91.2533 86.1323 82.0009 +91.8972 88.3254 84.0888 +91.7812 89.834 85.525 +91.6357 91.3484 86.9668 +91.6349 93.0439 88.581 +91.6002 94.7474 90.2028 +91.4746 96.3966 91.7728 +91.1484 97.8719 93.1774 +93.7189 102.551 97.6324 +93.3511 104.111 99.1176 +93.114 105.858 100.781 +93.5308 108.408 103.208 +93.1615 110.107 104.825 +93.2219 112.367 106.977 +93.0318 114.388 108.901 +92.55 116.1 110.531 +91.4923 117.122 111.504 +91.3381 119.343 113.618 +92.7597 123.735 117.8 +92.6267 126.171 120.119 +92.3497 128.486 122.323 +92.4779 131.452 125.147 +92.0952 133.782 127.365 +91.2689 135.531 129.03 +105.088 159.57 151.917 +104.091 161.673 153.918 +101.973 162.06 154.287 +99.0404 161.111 153.383 +97.0156 161.598 153.847 +94.7914 161.738 153.98 +92.7625 162.197 154.417 +90.2427 161.771 154.011 +91.2955 167.86 159.809 +91.1688 172.015 163.764 +91.124 176.519 168.052 +89.2331 177.565 169.048 +88.0582 180.102 171.463 +86.1779 181.268 172.573 +90.0828 194.993 185.64 +89.4604 199.412 189.847 +86.8739 199.556 189.984 +83.9399 198.85 189.312 +81.342 198.887 189.347 +78.5842 198.489 188.968 +76.1897 198.978 189.433 +73.4011 198.403 188.886 +71.2331 199.49 189.921 +68.3429 198.527 189.005 +65.9717 199.022 189.476 +63.3687 198.796 189.26 +60.971 199.189 189.635 +58.2569 198.504 188.983 +55.8031 198.652 189.123 +53.312 198.642 189.114 +50.9166 198.97 189.427 +48.1874 197.93 188.436 +45.9658 198.941 189.399 +43.2541 197.793 188.306 +41.0023 198.704 189.173 +38.4814 198.31 188.798 +36.1035 198.618 189.091 +33.4775 197.472 188 +31.2101 198.396 188.88 +28.7244 197.938 188.443 +26.3576 198.255 188.746 +23.8371 197.332 187.867 +21.5606 198.414 188.897 +19.0993 197.82 188.332 +16.7578 198.439 188.921 +14.3191 197.887 188.395 +11.9604 198.404 188.887 +9.54501 197.965 188.47 +7.16987 198.308 188.796 +4.75753 197.404 187.935 +2.38583 198.006 188.509 +1.67036e-14 197.579 188.102 +-2.38671 198.079 188.578 +-4.76451 197.693 188.211 +-7.14107 197.512 188.038 +-9.52407 197.531 188.056 +-11.9474 198.187 188.681 +-14.2982 197.598 188.12 +-16.7334 198.15 188.646 +-19.0714 197.531 188.056 +-21.5056 197.909 188.416 +-23.8109 197.116 187.661 +-26.2713 197.607 188.128 +-28.5885 197.001 187.552 +-31.1762 198.18 188.674 +-33.4288 197.184 187.726 +-35.9208 197.612 188.134 +-38.2587 197.163 187.706 +-40.7806 197.629 188.15 +-43.0038 196.649 187.217 +-45.5036 196.941 187.495 +-47.7012 195.933 186.535 +-50.5886 197.689 188.207 +-52.7396 196.509 187.083 +-55.3844 197.161 187.704 +-57.55 196.095 186.689 +-60.3217 197.068 187.615 +-62.4914 196.044 186.64 +-65.2246 196.768 187.33 +-67.593 196.349 186.931 +-70.1815 196.545 187.117 +-72.547 196.094 186.688 +-75.4414 197.024 187.573 +-77.7849 196.469 187.046 +-80.3763 196.526 187.099 +-82.8581 196.288 186.873 +-85.7312 196.931 187.485 +-88.1316 196.45 187.027 +-91.0664 197.122 187.667 +-93.3729 196.402 186.982 +-96.3033 196.965 187.517 +-98.6728 196.349 186.931 +-101.735 197.074 187.621 +-104.034 196.288 186.873 +-107.165 197.039 187.588 +-109.385 196.086 186.68 +-112.662 196.992 187.543 +-114.953 196.14 186.732 +-117.312 195.406 186.033 +-119.784 194.855 185.509 +-121.754 193.498 184.217 +-125.349 194.69 185.351 +-128.895 195.721 186.333 +-131.95 195.94 186.542 +-137.295 199.441 189.875 +-140.238 199.34 189.779 +-143.881 200.181 190.579 +-145.301 197.921 188.427 +-144.865 193.24 183.971 +-144.522 188.833 179.775 +-147.629 188.984 179.919 +-151.25 189.737 180.637 +-159.672 196.325 186.908 +-164.246 197.978 188.482 +-570.359 674.102 641.768 +-576.181 667.831 635.798 +-562.821 639.853 609.162 +-564.791 629.893 599.679 +-571.2 625.031 595.05 +-577.031 619.596 589.876 +-580.057 611.27 581.95 +-584.761 604.851 575.839 +-587.904 596.946 568.313 +-592.958 591.097 562.745 +-596.429 583.776 555.775 +-601.935 578.538 550.788 +-605.231 571.264 543.863 +-610.059 565.534 538.408 +-613.052 558.199 531.425 +-618.622 553.289 526.75 +-622.339 546.788 520.561 +-627.168 541.336 515.371 +-630.159 534.377 508.746 +-635.984 529.882 504.466 +-638.434 522.642 497.573 +-142.324 114.482 108.991 +-143.36 113.311 107.876 +-143.765 111.659 106.303 +-143.866 109.8 104.534 +-142.822 107.116 101.978 +-142.845 105.279 100.229 +-144.957 104.987 99.9513 +-149.64 106.504 101.395 +-682.294 477.205 454.315 +-700.494 481.45 458.357 +-705.464 476.461 453.607 +-709.998 471.201 448.599 +-715.426 466.55 444.172 +-719.297 460.907 438.799 +-724.446 456.106 434.228 +-728.317 450.521 428.912 +-737.471 448.183 426.685 +-736.67 439.819 418.723 +-725.932 425.757 405.335 +-728.06 419.439 399.32 +-733.717 415.178 395.264 +-738.533 410.437 390.75 +-743.849 405.972 386.499 +-747.587 400.652 381.434 +-754.247 396.891 377.853 +-758.267 391.73 372.94 +-763.941 387.421 368.838 +-768.333 382.455 364.11 +-386.829 188.974 179.91 +-385.672 184.883 176.015 +-385.872 181.492 172.786 +-383.237 176.828 168.346 +-796.317 360.389 343.103 +-381.215 169.194 161.079 +-384.525 167.338 159.312 +-384.2 163.909 156.047 +-384.515 160.786 153.074 +-824.401 337.814 321.61 +-136.528 54.8114 52.1823 +-836.107 328.793 313.022 +-845.246 325.502 309.889 +-2906.29 1095.75 1043.19 +-885.215 326.672 311.003 +-889.386 321.161 305.756 +-903.558 319.179 303.87 +-902.766 311.866 296.907 +-390.619 131.923 125.595 +-385.46 127.227 121.124 +-382.319 123.283 117.37 +-380.947 119.967 114.213 +-383.114 117.781 112.132 +-383.872 115.161 109.638 +-382 111.781 106.42 +-940.094 268.204 255.34 +-384.542 106.91 101.782 +-382.912 103.689 98.7156 +-381.703 100.621 95.7948 +-382.43 98.0834 93.3787 +-384.07 95.7809 91.1867 +-382.08 92.5913 88.1501 +-380.137 89.4567 85.1658 +-381.296 87.0724 82.8959 +-380.418 84.2354 80.195 +-3141.38 673.941 641.615 +-381.044 79.1352 75.3394 +-381.116 76.5496 72.8778 +-382.313 74.1943 70.6355 +-382.031 71.5571 68.1249 +-382.005 68.9822 65.6735 +-381.363 66.3116 63.1309 +-380.979 63.7032 60.6477 +-382.61 61.434 58.4872 +-380.891 58.6369 55.8244 +-379.623 55.9386 53.2554 +-382.344 53.8273 51.2455 +-381.208 51.1712 48.7167 +-381.515 48.7221 46.3851 +-381.199 46.2014 43.9853 +-381.742 43.7903 41.6899 +-381.562 41.301 39.32 +-380.164 38.6964 36.8403 +-380.616 36.2921 34.5513 +-381.038 33.8851 32.2598 +-378.75 31.2542 29.7551 +-379.112 28.8592 27.475 +-379.345 26.455 25.1861 +-380.148 24.088 22.9326 +-380.125 21.6674 20.6281 +-379.374 19.2135 18.292 +-379.191 16.7973 15.9916 +-378.481 14.366 13.6769 +-380.637 12.0365 11.4592 +-379.769 9.60504 9.14432 +-151.948 2.88177 2.74354 +-145.178 1.83535 1.74731 +-145.194 0.917707 0.873688 +96.9 0 0 +96.8963 0.617672 0.577514 +96.8852 1.2353 1.15499 +96.8668 1.85283 1.73237 +96.841 2.47022 2.30962 +96.8078 3.08742 2.88669 +96.7672 3.70438 3.46354 +97.6176 4.36121 4.07766 +96.7637 4.94252 4.62119 +96.701 5.55914 5.19771 +97.5275 6.23263 5.82741 +97.4493 6.85406 6.40844 +97.3637 7.47495 6.98896 +97.2707 8.09532 7.569 +97.1703 8.71504 8.14843 +97.0625 9.3341 8.72724 +96.9472 9.95242 9.30537 +96.7258 10.5593 9.87277 +96.5959 11.1754 10.4489 +96.2615 11.7666 11.0016 +96.0188 12.3671 11.563 +96.654 13.0852 12.2345 +96.5921 13.7147 12.823 +96.4246 14.3299 13.3982 +96.1519 14.9288 13.9582 +96.0675 15.557 14.5455 +96.7549 16.3166 15.2557 +96.5563 16.9327 15.8318 +96.4474 17.5652 16.4232 +97.0084 18.3257 17.1342 +96.6892 18.9244 17.6941 +96.5558 19.5596 18.2879 +97.2797 20.3756 19.0509 +96.8408 20.9534 19.5911 +96.5868 21.5699 20.1675 +96.4208 22.2068 20.763 +96.9127 23.0011 21.5057 +96.6342 23.618 22.0824 +97.1048 24.4233 22.8354 +96.8093 25.0414 23.4133 +97.5401 25.9323 24.2463 +97.1329 26.5275 24.8028 +96.8123 27.1457 25.3808 +97.3217 28.0027 26.1821 +96.8907 28.5946 26.7355 +96.6378 29.2391 27.3381 +97.1133 30.1108 28.1532 +96.9332 30.787 28.7854 +96.5618 31.4037 29.362 +97.0019 32.2906 30.1913 +96.703 32.9386 30.7971 +97.0279 33.8053 31.6074 +96.6204 34.4225 32.1846 +96.9214 35.2978 33.0029 +97.2088 36.1796 33.8274 +96.7729 36.7979 34.4055 +97.0359 37.6877 35.2374 +96.582 38.3047 35.8144 +96.9079 39.2377 36.6866 +96.4354 39.8539 37.2628 +96.735 40.7958 38.1435 +96.9333 41.7075 38.9959 +96.4313 42.3238 39.5721 +96.6894 43.2803 40.4664 +96.6775 44.1273 41.2583 +96.9057 45.095 42.1632 +96.3632 45.711 42.7391 +96.3972 46.6058 43.5757 +96.4171 47.5044 44.4159 +95.9283 48.1586 45.0275 +96.0865 49.1453 45.9501 +96.2285 50.1376 46.8779 +95.7876 50.835 47.53 +96.3021 52.0519 48.6678 +95.6765 52.6638 49.2398 +95.7577 53.6719 50.1824 +95.6645 54.595 51.0455 +95.7912 55.6575 52.0389 +95.7444 56.6337 52.9517 +96.2987 57.9853 54.2154 +95.6023 58.5969 54.7872 +95.6591 59.6785 55.7985 +95.6217 60.7172 56.7697 +96.0161 62.0505 58.0163 +96.0143 63.1489 59.0433 +95.33 63.8079 59.6594 +95.2223 64.8615 60.6445 +95.6769 66.3208 62.0089 +95.6003 67.4355 63.0512 +95.4329 68.5031 64.0494 +95.2473 69.5737 65.0504 +95.7442 71.1681 66.5411 +95.5155 72.2485 67.5513 +95.1994 73.2783 68.5141 +94.866 74.3097 69.4785 +95.3258 75.989 71.0486 +94.8827 76.9737 71.9692 +95.2185 78.615 73.5039 +94.8005 79.6603 74.4812 +94.8844 81.1497 75.8737 +94.4898 82.2556 76.9078 +94.8393 84.0379 78.5742 +94.7757 85.4908 79.9326 +93.0659 85.463 79.9066 +92.1645 86.1679 80.5657 +91.1316 86.7523 81.1121 +91.7768 88.9634 83.1794 +91.7812 90.6018 84.7113 +91.5769 92.07 86.084 +91.6349 93.8391 87.7382 +91.3707 95.3176 89.1205 +91.8145 97.582 91.2377 +90.8129 98.3453 91.9514 +92.891 102.514 95.849 +93.4601 105.124 98.2893 +93.5439 107.255 100.282 +93.5308 109.334 102.226 +93.1615 111.048 103.828 +93.2219 113.328 105.96 +93.184 115.554 108.041 +91.9 116.27 108.711 +91.9847 118.759 111.037 +91.4836 120.555 112.717 +92.3779 124.279 116.199 +92.5798 127.184 118.915 +92.7653 130.167 121.704 +92.4779 132.576 123.956 +92.3183 135.252 126.459 +91.225 136.623 127.741 +95.4013 146.1 136.601 +103.668 162.392 151.834 +101.392 162.516 151.95 +99.1217 162.622 152.049 +96.6966 162.443 151.882 +94.4397 162.516 151.95 +92.0736 162.369 151.812 +90.3926 163.424 152.799 +91.1855 169.091 158.098 +91.1688 173.485 162.206 +90.8088 177.412 165.877 +88.549 177.709 166.155 +87.6577 180.815 169.059 +86.4709 183.439 171.512 +89.9876 196.452 183.679 +88.9042 199.866 186.872 +86.5131 200.425 187.394 +83.4721 199.432 186.466 +80.9728 199.677 186.695 +78.3361 199.553 186.579 +75.7354 199.482 186.512 +73.1164 199.322 186.363 +70.7574 199.851 186.858 +68.1494 199.656 186.676 +65.5748 199.515 186.544 +63.0088 199.356 186.395 +60.668 199.893 186.897 +57.9034 198.986 186.049 +55.504 199.276 186.32 +52.9877 199.12 186.174 +50.5886 199.379 186.416 +48.1353 199.406 186.441 +45.6192 199.128 186.182 +43.129 198.907 185.975 +40.7067 198.957 186.022 +38.2587 198.848 185.92 +35.8686 199.011 186.073 +33.5019 199.305 186.347 +31.029 198.93 185.997 +28.6513 199.12 186.174 +26.2809 199.368 186.406 +23.7935 198.655 185.739 +21.4429 199.018 186.079 +19.0296 198.782 185.858 +16.6907 199.333 186.374 +14.2354 198.411 185.511 +11.8906 198.932 185.999 +9.48917 198.489 185.584 +7.12275 198.688 185.771 +4.75578 199.018 186.079 +2.371 198.457 185.554 +1.66546e-14 198.683 185.766 +-2.37362 198.676 185.759 +-4.75055 198.799 185.874 +-7.12013 198.615 185.702 +-9.49615 198.635 185.721 +-11.8776 198.713 185.794 +-14.2511 198.63 185.716 +-16.6235 198.531 185.624 +-19.0156 198.637 185.722 +-21.3801 198.435 185.534 +-23.7325 198.146 185.263 +-26.1946 198.714 185.795 +-28.4945 198.031 185.156 +-30.9498 198.422 185.522 +-33.3191 198.217 185.33 +-35.6598 197.853 184.989 +-38.1473 198.268 185.378 +-40.4998 197.946 185.076 +-42.8474 197.608 184.761 +-45.3551 197.975 185.104 +-47.7185 197.679 184.827 +-50.0601 197.295 184.468 +-52.4343 197.04 184.23 +-54.9458 197.271 184.446 +-57.3836 197.2 184.379 +-59.9321 197.468 184.629 +-62.2215 196.865 184.066 +-64.9912 197.74 184.883 +-67.3752 197.388 184.555 +-69.9562 197.588 184.741 +-72.547 197.769 184.911 +-74.9604 197.44 184.603 +-77.5368 197.517 184.675 +-80.2059 197.786 184.927 +-82.5365 197.197 184.376 +-85.22 197.429 184.593 +-87.7917 197.365 184.533 +-90.4636 197.49 184.651 +-92.9823 197.252 184.427 +-95.8026 197.615 184.767 +-98.3308 197.341 184.511 +-101.14 197.596 184.749 +-103.676 197.284 184.458 +-106.395 197.295 184.468 +-109.048 197.152 184.334 +-112.011 197.529 184.687 +-114.68 197.345 184.515 +-117.591 197.544 184.701 +-119.987 196.854 184.056 +-122.791 196.813 184.017 +-125.56 196.685 183.897 +-128.981 197.526 184.683 +-131.555 197.024 184.214 +-136.18 199.512 186.54 +-139.874 200.523 187.486 +-143.188 200.92 187.857 +-145.067 199.29 186.333 +-144.913 194.956 182.281 +-144.425 190.319 177.945 +-146.151 188.692 176.424 +-150.7 190.663 178.267 +-158.352 196.366 183.6 +-164.143 199.544 186.571 +-573.39 683.476 639.039 +-577.241 674.777 630.907 +-582.057 667.376 623.986 +-566.588 637.298 595.864 +-572.524 631.835 590.756 +-578.038 625.981 585.283 +-581.529 618.058 577.875 +-585.622 610.917 571.199 +-589.762 603.95 564.685 +-594.721 597.922 559.048 +-597.737 590.057 551.695 +-602.537 584.066 546.093 +-606.083 576.958 539.447 +-611.475 571.691 534.522 +-614.484 564.285 527.598 +-618.874 558.245 521.951 +-623.484 552.475 516.556 +-627.746 546.466 510.937 +-631.913 540.444 505.307 +-636.574 534.907 500.13 +-141.801 117.075 109.463 +-143.194 116.166 108.614 +-143.698 114.549 107.102 +-144.243 112.987 105.641 +-142.765 109.892 102.747 +-142.891 108.084 101.057 +-142.775 106.127 99.227 +-147.078 107.434 100.449 +-149.426 107.26 100.286 +-687.761 485.14 453.599 +-701.51 486.269 454.654 +-707.365 481.828 450.502 +-711.768 476.413 445.439 +-716.689 471.369 440.723 +-721.095 466.008 435.71 +-725.955 460.962 430.993 +-733.336 457.503 427.759 +-736.322 451.308 421.966 +-734.432 442.23 413.479 +-725.699 429.257 401.349 +-730.33 424.343 396.754 +-735.608 419.806 392.512 +-739.405 414.434 387.49 +-744.807 409.969 383.315 +-750.4 405.597 379.227 +-754.975 400.669 374.619 +-759.733 395.841 370.106 +-765.088 391.318 365.877 +-769.487 386.303 361.188 +-383.264 188.833 176.556 +-386.256 186.745 174.604 +-383.943 182.128 170.287 +-2763.37 1285.93 1202.33 +-798.522 364.476 340.779 +-384.029 171.9 160.724 +-383.497 168.317 157.374 +-383.597 165.05 154.32 +-383.389 161.686 151.174 +-826.49 341.564 319.357 +-137.053 55.4923 51.8845 +-838.567 332.579 310.956 +-846.394 328.73 307.357 +-875.214 332.8 311.163 +-2919.38 1086.55 1015.91 +-893.86 325.535 304.371 +-902.749 321.619 300.709 +-906.286 315.757 295.228 +-897.97 305.863 285.977 +-383.094 127.527 119.236 +-381.862 124.189 116.115 +-382.047 121.342 113.453 +-382.194 118.503 110.798 +-382.948 115.866 108.333 +-384.689 113.53 106.149 +-942.885 271.299 253.661 +-383.888 107.64 100.642 +-381.413 104.166 97.3932 +-382.173 101.606 95.0001 +-382.053 98.8245 92.3994 +-381.895 96.0524 89.8076 +-382.08 93.3826 87.3113 +-380.137 90.2212 84.3555 +-380.819 87.707 82.0047 +-380.227 84.913 79.3924 +-381.227 82.4864 77.1236 +-380.467 79.6903 74.5092 +-381.598 77.3009 72.2752 +-381.251 74.6202 69.7687 +-382.031 72.1687 67.4767 +-380.55 69.3067 64.8007 +-382.919 67.1511 62.7853 +-383.025 64.5927 60.3932 +-382.903 62.0064 57.9751 +-381.869 59.2899 55.4352 +-381.681 56.7225 53.0347 +-382.049 54.2456 50.7188 +-380.028 51.4487 48.1038 +-381.219 49.1005 45.9082 +-380.016 46.4516 43.4315 +-380.853 44.0617 41.1971 +-380.87 41.5784 38.8752 +-381.253 39.1389 36.5942 +-381.012 36.6404 34.2582 +-379.153 34.0056 31.7947 +-380.041 31.6288 29.5724 +-380.902 29.2433 27.342 +-380.54 26.7651 25.025 +-379.351 24.2429 22.6668 +-379.726 21.8297 20.4104 +-380.271 19.4236 18.1608 +-379.191 16.9409 15.8395 +-380.777 14.5767 13.629 +-378.14 12.0597 11.2756 +-377.97 9.64125 9.01443 +-3275.38 62.6501 58.5769 +-147.278 1.87781 1.75572 +-145.494 0.927464 0.867165 +96.9 0 0 +96.6963 0.621571 0.570738 +96.8852 1.24567 1.14379 +96.8668 1.86838 1.71558 +96.6411 2.48581 2.28252 +96.8078 3.11334 2.85872 +96.8671 3.73934 3.43353 +96.8191 4.36184 4.00512 +96.7637 4.98401 4.57641 +96.701 5.6058 5.14735 +96.6309 6.22717 5.7179 +97.4493 6.9116 6.34635 +97.2642 7.53003 6.91421 +97.2707 8.16327 7.49566 +97.1703 8.78819 8.06947 +97.0625 9.41245 8.64268 +96.8482 10.0257 9.2058 +96.5279 10.6261 9.75709 +96.5959 11.2692 10.3476 +96.2615 11.8653 10.895 +96.9051 12.586 11.5567 +96.7523 13.2084 12.1282 +96.494 13.8158 12.6859 +96.4246 14.4502 13.2684 +96.1519 15.0541 13.8229 +96.0675 15.6876 14.4046 +96.8524 16.4701 15.1231 +96.5563 17.0748 15.6784 +96.3504 17.6948 16.2477 +97.1052 18.4979 16.9851 +96.6892 19.0833 17.5226 +96.5558 19.7238 18.1107 +96.3184 20.3437 18.6799 +96.9367 21.1503 19.4206 +96.5868 21.751 19.9721 +97.1838 22.5704 20.7245 +97.0078 23.2169 21.3182 +96.6342 23.8162 21.8685 +97.1993 24.6523 22.6362 +96.9035 25.2761 23.209 +97.5401 26.15 24.0114 +97.1329 26.7502 24.5625 +97.6525 27.6111 25.353 +97.3217 28.2377 25.9284 +97.7252 29.0829 26.7045 +97.4693 29.7382 27.3062 +97.1133 30.3636 27.8804 +97.6669 31.2804 28.7222 +97.3839 31.9369 29.325 +97.0929 32.5923 29.9268 +96.703 33.2151 30.4987 +97.0279 34.0891 31.3012 +97.3394 34.9698 32.1099 +96.9214 35.5941 32.6832 +97.2088 36.4833 33.4996 +97.5712 37.4128 34.3531 +97.1242 38.0386 34.9278 +96.6699 38.6615 35.4997 +96.9079 39.5671 36.3312 +96.4354 40.1884 36.9017 +96.735 41.1383 37.7739 +96.244 41.7585 38.3434 +96.3456 42.6411 39.1538 +95.8368 43.2587 39.7209 +96.6775 44.4977 40.8586 +96.1466 45.1174 41.4276 +96.3632 46.0947 42.325 +96.3972 46.997 43.1535 +95.8367 47.6148 43.7208 +95.4338 48.3124 44.3613 +96.0865 49.5578 45.5048 +96.2285 50.5585 46.4237 +96.273 51.5215 47.3079 +96.3021 52.4889 48.1962 +95.6765 53.1058 48.7627 +96.3924 54.4811 50.0255 +96.4525 55.5068 50.9673 +96.3391 56.4457 51.8294 +95.6667 57.0627 52.396 +95.6043 58.0503 53.3028 +95.679 59.1361 54.2998 +95.6591 60.1794 55.2578 +95.6217 61.2269 56.2196 +95.4919 62.2297 57.1404 +95.3455 63.2354 58.0639 +95.2562 64.2938 59.0357 +95.1491 65.3557 60.0108 +95.6769 66.8775 61.4081 +95.5283 67.9504 62.3933 +95.4329 69.0782 63.4288 +95.2473 70.1577 64.4201 +95.7442 71.7655 65.8963 +95.5155 72.855 66.8968 +95.819 74.3744 68.2919 +94.7978 74.8797 68.7559 +95.2582 76.5724 70.3101 +94.9496 77.6743 71.322 +95.2185 79.2749 72.7917 +94.8661 80.3842 73.8102 +94.6895 81.6629 74.9844 +94.4898 82.9461 76.1626 +94.394 84.3456 77.4476 +94.7757 86.2084 79.1581 +92.9414 86.0648 79.0262 +91.5489 86.3108 79.2521 +91.1925 87.5387 80.3796 +91.7768 89.7101 82.3734 +91.7217 91.3034 83.8364 +91.6945 92.9622 85.3595 +92.0995 95.1071 87.329 +91.8869 96.6605 88.7554 +91.5879 98.158 90.1304 +91.3721 99.7815 91.6211 +92.2287 102.637 94.2433 +93.4056 105.944 97.2801 +93.5976 108.218 99.368 +93.4778 110.19 101.179 +93.1615 111.98 102.822 +93.2219 114.279 104.933 +93.2348 116.587 107.053 +91.55 116.8 107.247 +91.7878 119.499 109.726 +91.5805 121.696 111.743 +92.1394 124.998 114.776 +92.5798 128.252 117.763 +92.3497 130.672 119.985 +92.4325 133.623 122.695 +92.4968 136.651 125.476 +91.6634 138.432 127.111 +94.4972 145.93 133.995 +103.372 163.288 149.934 +101.019 163.277 149.923 +99.0404 163.852 150.452 +96.3776 163.266 149.914 +94.4788 163.948 150.54 +92.1884 163.937 150.529 +90.505 165.001 151.507 +91.5154 171.127 157.132 +91.1688 174.941 160.634 +90.8088 178.901 164.27 +88.4464 178.994 164.355 +87.3573 181.707 166.847 +86.6337 185.326 170.17 +90.0193 198.17 181.963 +88.8733 201.474 184.997 +86.062 201.054 184.611 +83.5014 201.177 184.724 +81.0012 201.423 184.95 +78.3086 201.157 184.706 +75.7086 201.085 184.64 +73.1681 201.137 184.688 +70.482 200.744 184.327 +67.9075 200.618 184.211 +65.3414 200.473 184.078 +63.0538 201.173 184.721 +60.4516 200.851 184.425 +57.9242 200.728 184.312 +55.504 200.948 184.514 +52.7778 199.996 183.64 +50.5886 201.052 184.61 +48.0311 200.644 184.235 +45.6522 200.945 184.512 +43.129 200.576 184.173 +40.7658 200.919 184.487 +38.2726 200.59 184.185 +35.8947 200.828 184.403 +33.4044 200.393 184.004 +31.029 200.6 184.195 +28.5676 200.206 183.833 +26.1851 200.308 183.927 +23.8109 200.469 184.074 +21.435 200.615 184.208 +18.9807 199.936 183.585 +16.6357 200.345 183.96 +14.2301 200.003 183.646 +11.8557 200.013 183.655 +9.48568 200.081 183.718 +7.12798 200.504 184.106 +4.74182 200.1 183.735 +2.371 200.123 183.756 +1.6575e-14 199.394 183.087 +-2.37362 200.344 183.959 +-4.73135 199.658 183.329 +-7.11489 200.135 183.768 +-9.46125 199.567 183.246 +-11.8383 199.719 183.386 +-14.1987 199.561 183.241 +-16.6235 200.198 183.825 +-18.9598 199.716 183.383 +-21.3095 199.44 183.129 +-23.7325 199.809 183.468 +-26.118 199.795 183.455 +-28.4945 199.693 183.362 +-30.9384 200.014 183.657 +-33.2947 199.735 183.4 +-35.6598 199.514 183.197 +-38.0221 199.276 182.979 +-40.3815 199.024 182.748 +-42.7379 198.757 182.502 +-45.2065 198.984 182.711 +-47.7012 199.266 182.97 +-50.0601 198.952 182.681 +-52.4725 198.839 182.577 +-54.9657 198.999 182.725 +-57.3836 198.855 182.592 +-59.8888 198.982 182.709 +-62.2215 198.518 182.282 +-64.8278 198.898 182.631 +-67.1817 198.474 182.242 +-70.0062 199.389 183.083 +-72.3399 198.86 182.597 +-74.9604 199.097 182.815 +-77.3163 198.608 182.366 +-79.9219 198.739 182.486 +-82.5365 198.852 182.59 +-85.4606 199.648 183.321 +-87.8226 199.092 182.809 +-90.4953 199.218 182.926 +-92.9823 198.907 182.64 +-95.8359 199.343 183.041 +-98.3992 199.136 182.85 +-100.825 198.633 182.389 +-103.676 198.941 182.671 +-106.395 198.952 182.681 +-109.085 198.875 182.611 +-111.667 198.574 182.335 +-114.328 198.392 182.167 +-117.272 198.662 182.415 +-120.028 198.574 182.334 +-122.583 198.13 181.927 +-125.349 198.002 181.809 +-128.766 198.851 182.588 +-131.555 198.678 182.429 +-135.243 199.802 183.462 +-139.602 201.813 185.308 +-142.773 202.019 185.497 +-145.114 201.028 184.587 +-144.865 196.527 180.455 +-144.328 191.788 176.103 +-145.56 189.506 174.008 +-150.7 192.263 176.54 +-157.54 197 180.889 +-163.061 199.894 183.546 +-168.036 201.978 185.46 +-577.559 680.816 625.138 +-582.54 673.537 618.453 +-569.039 645.427 592.643 +-572.524 637.138 585.032 +-578.038 631.235 579.612 +-581.699 623.429 572.444 +-586.08 616.529 566.108 +-589.936 609.2 559.378 +-594.545 602.763 553.467 +-598.094 595.365 546.675 +-602.537 588.969 540.802 +-606.631 582.327 534.703 +-611.167 576.199 529.076 +-615.044 569.54 522.962 +-619.755 563.733 517.629 +-623.738 557.341 511.76 +-628.003 551.278 506.194 +-632.692 545.652 501.028 +-636.574 539.397 495.284 +-143.192 119.216 109.466 +-143.261 117.196 107.611 +-142.887 114.859 105.465 +-144.243 113.936 104.618 +-142.765 110.814 101.751 +-142.891 108.991 100.077 +-143.056 107.228 98.4583 +-147.22 108.44 99.5715 +-149.711 108.367 99.5046 +-689.703 490.593 450.472 +-701.582 490.401 450.295 +-707.658 486.074 446.322 +-711.546 480.262 440.985 +-716.986 475.522 436.633 +-721.244 470.017 431.578 +-726.634 465.267 427.216 +-733.259 461.296 423.57 +-736.169 455.002 417.791 +-733.121 445.146 408.741 +-726.631 433.418 397.972 +-730.956 428.272 393.247 +-735.766 423.421 388.792 +-740.754 418.676 384.435 +-745.287 413.676 379.845 +-750.4 409.001 375.552 +-755.217 404.163 371.109 +-760.384 399.507 366.834 +-765.825 394.984 362.681 +-769.816 389.712 357.841 +-387.907 192.724 176.963 +-388.174 189.249 173.771 +-384.698 184.018 168.969 +-382.9 179.678 164.984 +-797.759 367.184 337.155 +-381.642 172.265 158.177 +-383.325 169.654 155.779 +-383.425 166.361 152.756 +-383.563 163.117 149.777 +-827.273 344.758 316.563 +-137.053 55.9581 51.3817 +-839.534 335.757 308.298 +-846.394 331.489 304.379 +-877.963 336.648 309.116 +-884.948 332.128 304.966 +-894.666 328.564 301.693 +-901.94 324.027 297.528 +-909.535 319.55 293.416 +-900.689 309.364 284.064 +-383.185 128.628 118.108 +-382.136 125.321 115.072 +-381.589 122.213 112.219 +-381.825 119.382 109.619 +-382.486 116.698 107.154 +-386.358 114.98 105.577 +-944.188 273.954 251.55 +-382.768 108.227 99.3761 +-382.069 105.221 96.6159 +-381.233 102.207 93.8483 +-381.298 99.4574 91.3235 +-383.219 97.1946 89.2458 +-382.364 94.2364 86.5296 +-380.993 91.1833 83.7261 +-380.533 88.3769 81.1493 +-378.697 85.2811 78.3066 +-380.46 83.0109 76.2221 +-381.909 80.6641 74.0672 +-380.056 77.6353 71.2861 +-381.83 75.3607 69.1976 +-382.322 72.8299 66.8737 +-382.394 70.227 64.4837 +-381.947 67.5428 62.019 +-381.271 64.8366 59.5341 +-382.318 62.4313 57.3255 +-382.456 59.8796 54.9825 +-382.465 57.3161 52.6287 +-381.46 54.6166 50.1499 +-381.208 52.0417 47.7856 +-380.924 49.4743 45.4281 +-380.312 46.878 43.0442 +-379.964 44.3279 40.7027 +-380.87 41.9274 38.4985 +-380.56 39.3956 36.1738 +-379.624 36.8134 33.8027 +-379.649 34.3359 31.5278 +-379.544 31.8526 29.2476 +-380.405 29.4502 27.0417 +-380.042 26.9545 24.7501 +-380.546 24.5235 22.5179 +-379.626 22.0071 20.2073 +-379.374 19.5404 17.9424 +-379.89 17.1146 15.7149 +-379.879 14.6644 13.4651 +-379.139 12.1931 11.1959 +-378.869 9.74531 8.94832 +-149.649 2.88645 2.65039 +-146.378 1.882 1.72808 +-144.095 0.926248 0.850497 +96.9 0 0 +96.6963 0.626695 0.565107 +96.8852 1.25594 1.13251 +96.6669 1.87989 1.69515 +96.841 2.51149 2.26467 +96.8078 3.139 2.83052 +96.7672 3.76627 3.39614 +96.8191 4.3978 3.96561 +96.664 5.01991 4.52659 +96.701 5.65201 5.09656 +96.6309 6.2785 5.66149 +97.4493 6.96857 6.28374 +97.3637 7.59983 6.85296 +97.37 8.23896 7.42928 +97.1703 8.86063 7.98986 +97.0625 9.49004 8.55741 +96.9472 10.1187 9.12429 +96.7258 10.7357 9.68065 +96.5959 11.3621 10.2455 +97.1491 12.0735 10.887 +96.9051 12.6898 11.4427 +96.7523 13.3173 12.0086 +96.5921 13.9438 12.5735 +96.3266 14.5545 13.1242 +96.2497 15.1936 13.7005 +96.0675 15.8169 14.2625 +96.7549 16.5892 14.9589 +96.5563 17.2156 15.5237 +97.3207 18.0204 16.2495 +97.0084 18.6318 16.8008 +96.7858 19.2598 17.3671 +96.5558 19.8863 17.932 +96.3184 20.5114 18.4956 +96.8408 21.3035 19.2099 +96.6824 21.952 19.7947 +96.3254 22.5554 20.3388 +96.0567 23.1788 20.901 +96.6342 24.0125 21.6527 +97.1048 24.8313 22.391 +96.9035 25.4845 22.98 +96.5064 26.0862 23.5226 +97.1329 26.9707 24.3202 +96.8123 27.5992 24.8869 +97.3217 28.4705 25.6726 +97.7252 29.3227 26.441 +97.4693 29.9833 27.0368 +97.1133 30.6139 27.6053 +96.8415 31.2717 28.1985 +97.2926 32.17 29.0085 +97.0929 32.8609 29.6315 +96.703 33.4889 30.1978 +97.0279 34.3701 30.9924 +97.3394 35.2581 31.7931 +96.9214 35.8875 32.3607 +96.4069 36.4806 32.8955 +96.7729 37.4127 33.736 +97.1242 38.3522 34.5832 +96.6699 38.9802 35.1494 +96.8204 39.8572 35.9403 +96.5224 40.5563 36.5707 +96.735 41.4774 37.4012 +96.1578 42.065 37.9311 +96.3456 42.9926 38.7675 +96.6041 43.9646 39.644 +96.7623 44.9038 40.491 +96.1466 45.4893 41.0189 +96.3632 46.4747 41.9074 +96.3972 47.3844 42.7277 +95.8367 48.0073 43.2894 +96.67 49.3417 44.4927 +96.0865 49.9663 45.0559 +96.2285 50.9753 45.9657 +96.273 51.9461 46.8412 +95.659 52.5681 47.402 +95.6765 53.5436 48.2817 +95.6784 54.5233 49.1651 +95.6645 55.5071 50.0522 +96.3391 56.911 51.3181 +95.6667 57.5331 51.8791 +95.6814 58.5761 52.8196 +95.679 59.6236 53.7641 +95.6591 60.6755 54.7127 +95.6217 61.7316 55.665 +95.4919 62.7427 56.5767 +95.3455 63.7567 57.4911 +95.9198 65.2753 58.8604 +95.8805 66.4009 59.8754 +95.6769 67.4287 60.8023 +95.4564 68.459 61.7312 +95.3616 69.5955 62.7561 +95.318 70.7885 63.8319 +95.0433 71.8274 64.7686 +95.4461 73.4022 66.1886 +95.1994 74.5026 67.1809 +94.9342 75.6054 68.1754 +95.2582 77.2036 69.6165 +94.9496 78.3146 70.6183 +95.2185 79.9284 72.0735 +94.8661 81.0468 73.082 +94.6895 82.3361 74.2446 +95.0683 84.1415 75.8726 +94.394 85.0408 76.6835 +94.2093 86.3999 77.909 +92.8792 86.7163 78.1943 +91.5489 87.0223 78.4702 +91.7403 88.7905 80.0647 +91.837 90.509 81.6143 +91.7812 92.1154 83.0628 +91.5769 93.6081 84.4089 +91.5769 95.3467 85.9766 +91.7149 97.2746 87.7151 +91.9277 99.3348 89.5727 +91.428 100.666 90.7728 +92.2287 103.483 93.3135 +93.4601 106.88 96.3766 +93.114 108.547 97.8793 +93.4248 111.035 100.123 +93.1615 112.903 101.808 +93.2734 115.285 103.955 +93.2856 117.612 106.054 +91.1 117.184 105.668 +92.034 120.807 108.935 +91.1927 122.179 110.172 +91.9485 125.767 113.408 +92.6267 129.375 116.661 +92.8115 132.407 119.395 +92.3871 134.658 121.425 +92.5414 137.844 124.297 +91.6196 139.507 125.797 +94.2819 146.798 132.372 +103.33 164.567 148.394 +101.061 164.69 148.505 +98.593 164.456 148.294 +96.4175 164.68 148.497 +94.1271 164.684 148.5 +91.8058 164.602 148.426 +90.6923 166.705 150.322 +91.1855 171.916 155.021 +91.2046 176.452 159.112 +90.8088 180.376 162.649 +88.72 181.027 163.237 +87.3239 183.135 165.138 +87.2523 188.188 169.694 +90.0193 199.804 180.168 +88.8733 203.134 183.172 +86.062 202.711 182.79 +83.5014 202.835 182.902 +80.7456 202.442 182.547 +78.1156 202.316 182.434 +75.4948 202.17 182.302 +73.0129 202.365 182.478 +70.507 202.47 182.573 +67.9317 202.343 182.458 +65.4347 202.415 182.523 +62.8513 202.18 182.311 +60.5165 202.724 182.802 +57.9034 202.31 182.428 +55.504 202.605 182.694 +52.9686 202.374 182.486 +50.5704 202.636 182.722 +48.0137 202.225 182.351 +45.5036 201.942 182.097 +42.9882 201.57 181.761 +40.5885 201.694 181.872 +38.2726 202.243 182.368 +35.7642 201.747 181.921 +33.4044 202.045 182.189 +31.0403 202.327 182.444 +28.5572 201.782 181.952 +26.1851 201.959 182.112 +23.7151 201.308 181.525 +21.3801 201.75 181.923 +18.9598 201.362 181.574 +16.593 201.477 181.677 +14.2249 201.578 181.768 +11.8557 201.662 181.844 +9.48917 201.805 181.973 +7.10442 201.488 181.687 +4.74007 201.675 181.856 +2.36227 201.03 181.274 +1.6575e-14 201.037 181.28 +-2.36315 201.104 181.341 +-4.73135 201.304 181.521 +-7.09657 201.265 181.486 +-9.46125 201.212 181.438 +-11.8383 201.365 181.576 +-14.1935 201.132 181.366 +-16.5625 201.107 181.343 +-18.9459 201.214 181.44 +-21.3095 201.084 181.323 +-23.7412 201.529 181.724 +-26.1276 201.516 181.712 +-28.4945 201.339 181.553 +-30.8592 201.147 181.379 +-33.185 200.718 180.992 +-35.6598 201.158 181.39 +-38.0499 201.066 181.306 +-40.3815 200.665 180.945 +-42.7379 200.395 180.702 +-45.0745 200.038 180.38 +-47.5796 200.396 180.702 +-50.0783 200.664 180.944 +-52.4343 200.332 180.645 +-54.7664 199.912 180.266 +-57.2173 199.913 180.266 +-59.7157 200.042 180.383 +-62.019 199.503 179.897 +-64.571 199.743 180.114 +-67.2059 200.182 180.509 +-69.7809 200.386 180.693 +-72.314 200.428 180.731 +-74.7198 200.095 180.431 +-77.2887 200.174 180.502 +-79.9503 200.449 180.75 +-82.3319 199.994 180.339 +-84.9795 200.161 180.49 +-87.5136 200.026 180.369 +-90.4953 200.86 181.121 +-92.7869 200.126 180.459 +-95.8026 200.917 181.172 +-98.365 200.707 180.983 +-101.07 200.758 181.029 +-103.712 200.649 180.931 +-106.322 200.453 180.754 +-109.085 200.514 180.809 +-111.705 200.28 180.597 +-114.367 200.095 180.431 +-117.312 200.368 180.677 +-120.028 200.211 180.535 +-122.293 199.29 179.705 +-125.391 199.702 180.076 +-128.249 199.685 180.062 +-131.248 199.848 180.208 +-135.198 201.382 181.592 +-139.602 203.477 183.48 +-142.68 203.552 183.548 +-145.161 202.75 182.825 +-144.865 198.147 178.675 +-144.279 193.304 174.307 +-145.856 191.456 172.641 +-149.9 192.819 173.87 +-157.794 198.944 179.393 +-163.885 202.56 182.654 +-167.565 203.073 183.117 +-578.513 687.562 619.992 +-582.218 678.713 612.013 +-571 652.99 588.818 +-572.193 642.018 578.925 +-578.541 636.993 574.393 +-582.209 629.118 567.292 +-585.908 621.428 560.358 +-590.459 614.766 554.35 +-594.545 607.731 548.007 +-598.987 601.169 542.089 +-602.898 594.179 535.787 +-607.057 587.539 529.799 +-611.598 581.359 524.226 +-615.044 574.235 517.802 +-620.006 568.61 512.731 +-624.374 562.508 507.228 +-628.903 556.62 501.918 +-633.082 550.49 496.391 +-637.165 544.348 490.853 +-142.463 119.586 107.834 +-143.261 118.162 106.55 +-143.563 116.353 104.918 +-143.629 114.386 103.145 +-142.765 111.727 100.748 +-142.683 109.729 98.9455 +-142.565 107.741 97.1528 +-147.29 109.386 98.6361 +-148.927 108.688 98.0066 +-690.207 494.999 446.354 +-702.235 494.903 446.267 +-707.804 490.181 442.009 +-711.989 484.522 436.906 +-717.283 479.641 432.505 +-721.694 474.187 427.587 +-726.785 469.199 423.089 +-732.803 464.809 419.13 +-737.088 459.326 414.186 +-731.114 447.587 403.601 +-726.554 436.943 394.003 +-731.66 432.218 389.742 +-735.766 426.911 384.957 +-740.992 422.262 380.764 +-745.287 417.086 376.098 +-750.802 412.593 372.046 +-755.379 407.581 367.526 +-760.384 402.8 363.215 +-766.071 398.368 359.218 +-770.97 393.514 354.841 +-386.829 193.773 174.73 +-385.672 189.579 170.948 +-383.189 184.807 166.645 +-380.37 179.962 162.276 +-798.522 370.565 334.148 +-384.37 174.927 157.736 +-385.04 171.817 154.932 +-381.702 166.978 150.569 +-381.831 163.719 147.629 +-827.621 347.746 313.572 +-137.315 56.5274 50.9722 +-839.446 338.489 305.225 +-846.217 334.152 301.314 +-877.786 339.354 306.004 +-2919.38 1104.7 996.138 +-895.113 331.438 298.866 +-901.311 326.471 294.387 +-910.979 322.695 290.983 +-392.522 135.933 122.574 +-383.185 129.688 116.943 +-381.223 126.052 113.664 +-382.873 123.636 111.486 +-380.721 120.018 108.223 +-383.04 117.831 106.251 +-385.523 115.677 104.309 +-943.723 276.077 248.945 +-382.395 109.013 98.2999 +-382.724 106.27 95.8268 +-381.233 103.05 92.9224 +-382.43 100.574 90.6904 +-382.368 97.7781 88.1691 +-381.795 94.8721 85.5487 +-380.518 91.8206 82.797 +-381.487 89.3282 80.5496 +-381.087 86.5269 78.0236 +-380.268 83.6528 75.4319 +-381.044 81.1449 73.1704 +-380.634 78.3941 70.69 +-381.541 75.9247 68.4633 +-382.709 73.5046 66.281 +-382.394 70.8059 63.8475 +-382.53 68.2036 61.501 +-381.856 65.4713 59.0372 +-381.146 62.753 56.586 +-381.575 60.2342 54.3147 +-381.093 57.5813 51.9225 +-381.46 55.0668 49.6552 +-380.913 52.4301 47.2775 +-379.446 49.6886 44.8055 +-381.693 47.436 42.7743 +-381.445 44.8676 40.4583 +-380.771 42.2621 38.1088 +-381.748 39.8444 35.9287 +-379.624 37.1169 33.4692 +-380.344 34.6823 31.2739 +-381.035 32.2412 29.0728 +-380.405 29.693 26.7749 +-380.938 27.2408 24.5637 +-382.439 24.8486 22.4066 +-379.128 22.1594 19.9817 +-379.872 19.7274 17.7887 +-381.487 17.3283 15.6253 +-378.58 14.7347 13.2867 +-379.339 12.3001 11.0913 +-378.869 9.82564 8.86004 +-381.469 7.41848 6.68944 +-145.778 1.88973 1.70402 +-144.994 0.93972 0.84737 +96 0 0 +96.8963 0.633074 0.560587 +96.8852 1.2661 1.12113 +97.5666 1.91275 1.69374 +96.841 2.53181 2.24192 +96.8078 3.16441 2.80208 +96.8671 3.80068 3.3655 +96.7193 4.42882 3.92172 +97.6615 5.11277 4.52736 +96.701 5.69776 5.04537 +97.4278 6.38152 5.65083 +97.4493 7.02497 6.22062 +97.3637 7.66134 6.78412 +97.2707 8.29718 7.34716 +97.1703 8.93235 7.9096 +97.0625 9.56685 8.47145 +96.9472 10.2006 9.03263 +96.7258 10.8226 9.58341 +96.5959 11.4541 10.1426 +96.2615 12.06 10.6791 +96.9051 12.7925 11.3277 +96.7523 13.4251 11.8879 +96.494 14.0424 12.4345 +96.3266 14.6723 12.9923 +96.2497 15.3166 13.5629 +96.0675 15.9449 14.1192 +95.878 16.5719 14.6744 +96.5563 17.3549 15.3678 +96.4474 18.0032 15.9418 +97.0084 18.7827 16.632 +96.7858 19.4157 17.1926 +96.4594 20.0273 17.7342 +96.3184 20.6774 18.3098 +96.9367 21.4972 19.0358 +96.5868 22.1078 19.5764 +96.3254 22.738 20.1345 +96.1518 23.3896 20.7115 +96.6342 24.2069 21.4352 +97.1048 25.0323 22.1661 +96.9035 25.6908 22.7492 +96.5064 26.2973 23.2863 +97.1329 27.189 24.0759 +97.6525 28.064 24.8507 +97.3217 28.7009 25.4147 +96.8907 29.3076 25.9519 +97.4693 30.226 26.7652 +97.1133 30.8617 27.328 +96.8415 31.5248 27.9152 +97.3839 32.4608 28.7441 +97.0929 33.1269 29.3339 +97.5187 34.0447 30.1466 +97.0279 34.6483 30.681 +97.3394 35.5434 31.4737 +96.9214 36.178 32.0356 +97.1197 37.0478 32.8059 +96.7729 37.7155 33.3971 +97.1242 38.6626 34.2358 +96.6699 39.2957 34.7963 +96.9079 40.2161 35.6114 +96.5224 40.8846 36.2033 +96.735 41.8131 37.0255 +96.244 42.4435 37.5837 +96.3456 43.3406 38.3781 +95.8368 43.9684 38.934 +96.0838 44.9499 39.8032 +96.1466 45.8575 40.6069 +96.1955 46.7693 41.4143 +96.564 47.8506 42.3717 +95.8367 48.3959 42.8546 +95.9283 49.3594 43.7078 +96.2504 50.4566 44.6793 +96.147 51.3444 45.4655 +96.1921 52.3227 46.3317 +96.3824 53.3945 47.2808 +96.3154 54.3375 48.1159 +95.7577 55.0102 48.7116 +95.6645 55.9564 49.5494 +95.7912 57.0453 50.5137 +95.6667 57.9988 51.3579 +95.6814 59.0502 52.289 +95.679 60.1062 53.224 +95.6591 61.1666 54.163 +95.5462 62.1822 55.0623 +96.1659 63.6969 56.4037 +95.3455 64.2727 56.9135 +95.9935 65.8542 58.3139 +95.8073 66.8873 59.2287 +95.6769 67.9745 60.1915 +95.5283 69.065 61.1571 +95.4329 70.2113 62.1722 +95.318 71.3615 63.1906 +95.6741 72.8893 64.5435 +95.4461 73.9963 65.5237 +95.2683 75.1602 66.5544 +94.9342 76.2174 67.4905 +95.2582 77.8285 68.9172 +94.9496 78.9485 69.9089 +95.2185 80.5754 71.3495 +94.8005 81.6467 72.2982 +94.6895 83.0025 73.4988 +94.4898 84.3067 74.6536 +94.5212 85.8445 76.0153 +94.1463 87.0409 77.0747 +92.8792 87.4182 77.4088 +92.103 88.2574 78.152 +91.7403 89.5092 79.2604 +91.837 91.2416 80.7945 +91.7812 92.861 82.2284 +91.6945 94.4871 83.6684 +91.4607 95.9964 85.0049 +91.7149 98.062 86.8339 +91.7012 99.8917 88.4542 +91.0366 101.045 89.4758 +91.8423 103.884 91.9896 +93.3511 107.619 95.2971 +93.5976 109.994 97.3993 +93.4248 111.934 99.1176 +93.1615 113.817 100.785 +93.2734 116.218 102.911 +93.2856 118.564 104.989 +91.3 118.391 104.836 +92.1817 121.981 108.014 +91.2897 123.299 109.181 +92.1871 127.114 112.56 +92.5798 130.356 115.43 +92.8115 133.479 118.196 +92.4325 135.815 120.264 +92.6307 139.093 123.167 +91.7072 140.77 124.652 +93.8084 147.243 130.383 +103.372 165.967 146.964 +100.936 165.819 146.832 +98.6743 165.924 146.926 +96.3776 165.944 146.944 +93.7755 165.396 146.459 +91.4613 165.311 146.383 +90.9919 168.61 149.304 +91.2222 173.377 153.526 +91.2046 177.88 157.513 +90.4936 181.205 160.457 +88.9594 182.985 162.033 +87.3239 184.618 163.479 +87.6104 190.49 168.679 +89.9876 201.35 178.296 +88.5334 203.995 180.638 +86.062 204.352 180.954 +83.3259 204.047 180.684 +80.7172 204.01 180.651 +78.1156 203.954 180.601 +75.4948 203.807 180.471 +72.8058 203.424 180.132 +70.2817 203.457 180.161 +67.7381 203.4 180.111 +65.388 203.908 180.56 +62.6489 203.16 179.898 +60.3217 203.708 180.383 +57.6955 203.215 179.947 +55.3445 203.658 180.339 +52.7778 203.277 180.002 +50.4063 203.614 180.3 +48.0311 203.936 180.585 +45.5201 203.651 180.333 +42.9882 203.201 179.935 +40.618 203.474 180.177 +38.1473 203.212 179.945 +35.7772 203.454 180.159 +33.2947 203.012 179.767 +30.9271 203.221 179.953 +28.5676 203.49 180.191 +26.1851 203.594 180.283 +23.7238 203.012 179.767 +21.3487 203.084 179.831 +18.897 202.32 179.154 +16.6418 203.706 180.382 +14.183 202.611 179.412 +11.8601 203.369 180.083 +9.45776 202.765 179.549 +7.10181 203.044 179.795 +4.72262 202.559 179.366 +2.36227 202.657 179.453 +1.65812e-14 202.739 179.526 +-2.36576 202.956 179.718 +-4.73309 203.008 179.764 +-7.09919 202.969 179.729 +-9.46823 202.99 179.748 +-11.8339 202.92 179.686 +-14.1569 202.237 179.081 +-16.5686 202.81 179.588 +-18.8831 202.171 179.022 +-21.3016 202.637 179.435 +-23.6628 202.49 179.305 +-26.0317 202.402 179.227 +-28.3899 202.224 179.07 +-30.8592 202.775 179.557 +-33.0875 201.748 178.648 +-35.5553 202.193 179.042 +-37.9108 201.952 178.829 +-40.3815 202.289 179.127 +-42.7223 201.944 178.822 +-45.058 201.583 178.502 +-47.406 201.282 178.235 +-49.9143 201.627 178.54 +-52.2817 201.366 178.31 +-54.7664 201.53 178.455 +-57.2381 201.604 178.521 +-59.7157 201.661 178.571 +-62.064 201.264 178.219 +-64.8044 202.088 178.949 +-67.2059 201.802 178.696 +-69.7559 201.935 178.814 +-72.0811 201.399 178.339 +-74.7198 201.714 178.618 +-77.0958 201.291 178.243 +-79.6947 201.425 178.362 +-82.3611 201.684 178.592 +-84.9494 201.71 178.614 +-87.5445 201.717 178.62 +-90.2097 201.847 178.735 +-92.6241 201.392 178.332 +-95.5355 201.979 178.852 +-98.0572 201.699 178.604 +-100.79 201.821 178.713 +-103.389 201.645 178.556 +-106.285 202.006 178.877 +-108.486 201.026 178.009 +-111.399 201.347 178.293 +-114.093 201.232 178.191 +-117.272 201.921 178.801 +-119.581 201.079 178.055 +-122.749 201.653 178.564 +-125.306 201.182 178.147 +-128.249 201.302 178.253 +-130.985 201.062 178.041 +-134.261 201.606 178.522 +-139.103 204.389 180.987 +-142.172 204.469 181.058 +-145.161 204.392 180.989 +-144.961 199.883 176.996 +-144.522 195.196 172.846 +-146.102 193.332 171.196 +-149.6 193.991 171.779 +-156.931 199.457 176.619 +-161.104 200.734 177.75 +-165.11 201.717 178.62 +-1736.28 2080.27 1842.08 +-582.594 684.648 606.256 +-578.352 666.751 590.409 +-571.752 646.716 572.667 +-578.709 642.335 568.788 +-582.549 634.581 561.922 +-586.597 627.194 555.381 +-590.807 620.107 549.105 +-595.603 613.741 543.467 +-598.987 606.035 536.644 +-603.44 599.527 530.881 +-607.24 592.473 524.635 +-612.214 586.655 519.483 +-616.103 579.878 513.482 +-620.447 573.62 507.941 +-624.692 567.35 502.389 +-629.482 561.641 497.333 +-633.082 554.945 491.404 +-637.427 548.98 486.122 +-142.662 120.723 106.9 +-143.595 119.397 105.726 +-143.563 117.295 103.864 +-144.447 115.969 102.691 +-142.696 112.577 99.6871 +-142.405 110.402 97.7613 +-142.845 108.826 96.3658 +-148.775 111.383 98.6297 +-149.925 110.302 97.6724 +-696.465 503.53 445.876 +-703.396 499.733 442.514 +-708.755 494.813 438.157 +-712.505 488.798 432.83 +-718.101 484.074 428.648 +-722.143 478.322 423.555 +-727.087 473.193 419.013 +-732.955 468.668 415.006 +-737.241 463.14 410.111 +-730.188 450.639 399.041 +-727.253 440.904 390.421 +-731.66 435.716 385.827 +-736.711 430.92 381.579 +-740.992 425.68 376.94 +-746.884 421.363 373.117 +-751.043 416.067 368.427 +-756.593 411.54 364.419 +-760.872 406.321 359.797 +-766.562 401.85 355.838 +-771.959 397.208 351.728 +-390.228 197.058 174.495 +-383.671 190.121 168.352 +-385.453 187.404 165.946 +-386.442 184.315 163.211 +-798.777 373.683 330.897 +-384.285 176.304 156.117 +-383.154 172.36 152.625 +-384.373 169.508 150.099 +-382.87 165.493 146.544 +-827.882 350.671 310.519 +-136.266 56.5493 50.0745 +-840.764 341.765 302.633 +-848.424 337.735 299.065 +-878.496 342.378 303.176 +-413.16 157.606 139.56 +-894.666 333.954 295.716 +-901.401 329.146 291.459 +-911.792 325.597 288.316 +-910.749 317.951 281.546 +-382.457 130.49 115.549 +-380.583 126.859 112.333 +-382.781 124.607 110.339 +-382.194 121.458 107.551 +-383.964 119.07 105.437 +-3037.92 918.915 813.699 +-945.025 278.695 246.785 +-382.768 110.002 97.4072 +-381.788 106.869 94.6321 +-380.857 103.781 91.8982 +-382.053 101.289 89.6912 +-383.03 98.7403 87.4345 +-380.562 95.3309 84.4155 +-380.518 92.5638 81.9652 +-382.059 90.1868 79.8604 +-380.705 87.1397 77.1622 +-380.651 84.4153 74.7498 +-381.813 81.9664 72.5813 +-380.923 79.0885 70.0329 +-381.444 76.5198 67.7583 +-382.418 74.0433 65.5654 +-382.199 71.3428 63.1741 +-381.655 68.5984 60.7439 +-381.271 65.9002 58.3546 +-381.146 63.2609 56.0176 +-380.402 60.5349 53.6037 +-381.093 58.0474 51.4009 +-381.657 55.541 49.1816 +-381.208 52.8954 46.8389 +-380.924 50.2858 44.5281 +-380.706 47.6964 42.2352 +-381.742 45.2659 40.0829 +-379.288 42.4382 37.579 +-380.56 40.0419 35.4571 +-381.012 37.5541 33.2541 +-380.046 34.9357 30.9356 +-379.147 32.3412 28.6381 +-378.714 29.8003 26.3881 +-380.938 27.4613 24.317 +-381.244 24.9714 22.1122 +-380.723 22.4327 19.8642 +-379.374 19.861 17.5869 +-379.191 17.3633 15.3752 +-379.18 14.8775 13.1741 +-381.237 12.4617 11.0349 +-380.168 9.93916 8.80113 +-377.97 7.40994 6.5615 +-145.478 1.90111 1.68344 +-144.994 0.947327 0.838858 +96.9 0 0 +96.6963 0.636789 0.553708 +96.8852 1.27616 1.10967 +96.6669 1.91017 1.66096 +96.841 2.55194 2.21899 +96.8078 3.18956 2.77342 +96.8671 3.83089 3.33108 +97.6176 4.50548 3.91766 +96.664 5.10076 4.43528 +96.701 5.74304 4.99376 +97.5275 6.43882 5.59876 +97.4493 7.08081 6.15699 +97.2642 7.71438 6.7079 +97.2707 8.36313 7.27201 +97.1703 9.00335 7.8287 +97.0625 9.64289 8.3848 +96.9472 10.2817 8.94024 +96.7258 10.9086 9.48538 +96.5959 11.5451 10.0389 +96.2615 12.1558 10.5699 +97.0036 12.9072 11.2232 +96.654 13.5181 11.7544 +96.5921 14.1684 12.3199 +96.4246 14.8039 12.8725 +96.2497 15.4384 13.4241 +96.0675 16.0716 13.9748 +96.7549 16.8564 14.6571 +96.6536 17.5105 15.226 +96.4474 18.1463 15.7788 +97.0084 18.9319 16.4619 +96.7858 19.57 17.0168 +96.5558 20.2066 17.5703 +96.3184 20.8417 18.1225 +96.9367 21.6681 18.8411 +96.5868 22.2835 19.3762 +97.1838 23.1229 20.1061 +96.9127 23.762 20.6618 +96.6342 24.3993 21.216 +97.1993 25.2559 21.9608 +96.9035 25.8949 22.5165 +97.5401 26.7902 23.295 +97.1329 27.4051 23.8296 +97.6525 28.2871 24.5965 +97.2286 28.9014 25.1307 +97.8179 29.8233 25.9323 +97.4693 30.4663 26.4914 +97.2053 31.1364 27.0741 +97.6669 32.0462 27.8652 +96.5618 32.4426 28.2099 +97.0019 33.3589 29.0066 +97.4281 34.2834 29.8105 +97.0279 34.9236 30.3672 +96.5305 35.5282 30.8929 +97.0109 36.4992 31.7372 +96.4069 37.0682 32.232 +96.8616 38.05 33.0857 +97.1242 38.9699 33.8856 +96.6699 39.608 34.4404 +96.9079 40.5357 35.2471 +96.4354 41.1723 35.8007 +96.735 42.1454 36.6468 +97.0194 43.1255 37.499 +96.3456 43.6851 37.9856 +96.6894 44.7121 38.8786 +96.6775 45.5871 39.6394 +96.1466 46.222 40.1915 +96.3632 47.2232 41.0621 +96.564 48.2309 41.9383 +96.5 49.1182 42.7098 +95.9283 49.7517 43.2607 +96.0865 50.7711 44.1471 +96.147 51.7525 45.0004 +96.273 52.7828 45.8963 +95.5786 53.3699 46.4068 +95.7564 54.4514 47.3472 +95.6784 55.4015 48.1734 +95.6645 56.4011 49.0426 +95.8695 57.5457 50.0378 +96.2884 58.8397 51.163 +95.6814 59.5195 51.7541 +95.679 60.5839 52.6796 +95.583 61.6037 53.5664 +95.5462 62.6764 54.4991 +95.4919 63.7532 55.4355 +95.4198 64.8341 56.3753 +95.2562 65.8678 57.2742 +95.8073 67.4189 58.6229 +95.0966 68.0992 59.2144 +95.6003 69.6664 60.5772 +95.3616 70.7165 61.4902 +95.2473 71.8753 62.4979 +95.1134 73.038 63.5089 +95.4461 74.5844 64.8535 +95.1306 75.6482 65.7785 +94.9342 76.8231 66.8002 +95.3258 78.5029 68.2608 +94.8827 79.5201 69.1453 +95.2185 81.2158 70.6197 +94.8661 82.3522 71.6079 +95.274 84.1791 73.1965 +94.5541 85.0341 73.9399 +94.712 86.7018 75.39 +93.9575 87.5568 76.1334 +92.8792 88.113 76.617 +91.7951 88.6616 77.0941 +91.1316 89.6222 77.9294 +91.837 91.9668 79.9681 +91.7812 93.599 81.3874 +91.6945 95.2381 82.8125 +91.6349 96.9435 84.2955 +91.6002 98.7184 85.8388 +91.4746 100.437 87.3329 +91.2603 102.099 88.7784 +91.7871 104.647 90.9936 +93.3511 108.475 94.3223 +93.5439 110.804 96.3472 +93.4778 112.888 98.1596 +93.2137 114.786 99.8098 +93.4279 117.336 102.027 +93.2856 119.507 103.915 +91.45 119.528 103.934 +91.4431 121.965 106.053 +91.2897 124.279 108.064 +91.9008 127.727 111.062 +92.5798 131.392 114.249 +92.7653 134.473 116.928 +92.3871 136.827 118.976 +92.3629 139.794 121.555 +91.8388 142.092 123.554 +92.9904 147.119 127.924 +102.569 165.987 144.331 +100.688 166.725 144.972 +98.2269 166.485 144.764 +96.0587 166.71 144.96 +93.4238 166.086 144.417 +91.4613 166.625 144.886 +91.2916 170.51 148.264 +91.2955 174.896 152.077 +91.563 179.999 156.515 +90.4936 182.645 158.815 +88.9594 184.439 160.376 +87.157 185.73 161.498 +89.4987 196.143 170.552 +89.7972 202.521 176.099 +88.2553 204.971 178.229 +85.7613 205.256 178.477 +82.7997 204.37 177.706 +80.4615 204.98 178.237 +77.84 204.849 178.122 +75.2811 204.845 178.119 +72.4435 204.021 177.403 +70.2817 205.074 178.319 +67.5688 204.504 177.823 +65.2246 205.015 178.267 +62.4239 204.04 177.419 +60.1269 204.664 177.962 +57.55 204.314 177.657 +55.1452 204.537 177.851 +52.606 204.226 177.581 +50.2241 204.49 177.811 +47.7185 204.218 177.574 +45.3881 204.674 177.971 +42.8787 204.294 177.64 +40.485 204.419 177.749 +38.036 204.23 177.584 +35.6598 204.398 177.731 +33.185 203.951 177.342 +30.8252 204.162 177.525 +28.369 203.681 177.107 +26.0221 203.936 177.328 +23.6454 203.949 177.34 +21.3095 204.323 177.665 +18.8273 203.176 176.668 +16.5442 204.12 177.489 +14.1255 203.392 176.856 +11.8121 204.156 177.52 +9.42635 203.698 177.122 +7.07825 203.979 177.366 +4.70691 203.49 176.941 +2.35442 203.588 177.027 +1.64648e-14 202.917 176.443 +-2.35791 203.89 177.289 +-4.70168 203.263 176.744 +-7.07301 203.828 177.235 +-9.40541 203.246 176.729 +-11.799 203.93 177.324 +-14.1045 203.091 176.594 +-16.5197 203.819 177.227 +-18.8203 203.1 176.602 +-21.2389 203.646 177.076 +-23.5669 203.272 176.752 +-26.0221 203.936 177.328 +-28.2854 203.081 176.586 +-30.7686 203.787 177.199 +-32.9778 202.678 176.235 +-35.5553 203.8 177.21 +-37.7577 202.736 176.285 +-40.2633 203.3 176.776 +-42.5658 202.804 176.344 +-44.9425 202.665 176.223 +-47.267 202.287 175.895 +-49.9143 203.229 176.714 +-52.129 202.374 175.971 +-54.6468 202.688 176.244 +-56.9886 202.321 175.924 +-59.5209 202.601 176.168 +-61.8615 202.201 175.821 +-64.4076 202.447 176.034 +-66.7463 202.015 175.658 +-69.5556 202.955 176.476 +-71.6929 201.906 175.564 +-74.5328 202.809 176.349 +-76.9028 202.383 175.978 +-79.5243 202.592 176.16 +-81.8056 201.916 175.573 +-84.7088 202.737 176.286 +-87.0501 202.172 175.795 +-89.9241 202.807 176.347 +-92.2986 202.279 175.888 +-95.2351 202.944 176.466 +-97.5441 202.238 175.852 +-100.825 203.496 176.947 +-102.995 202.472 176.056 +-105.919 202.91 176.437 +-108.111 201.924 175.58 +-111.131 202.46 176.046 +-113.781 202.276 175.886 +-116.714 202.557 176.13 +-119.377 202.333 175.935 +-122.417 202.706 176.26 +-124.503 201.481 175.195 +-127.991 202.493 176.074 +-130.328 201.642 175.334 +-134.038 202.87 176.402 +-138.513 205.14 178.376 +-141.849 205.626 178.798 +-144.55 205.15 178.385 +-144.531 200.875 174.667 +-144.667 196.945 171.25 +-145.56 194.146 168.816 +-149.05 194.814 169.397 +-153.683 196.881 171.194 +-163.319 205.111 178.351 +-164.639 202.741 176.29 +-169.521 204.721 178.011 +-173.333 205.315 178.528 +-589.245 684.709 595.376 +-571.365 651.416 566.427 +-578.541 647.252 562.807 +-583.512 640.682 557.093 +-587.916 633.601 550.936 +-591.504 625.773 544.13 +-596.955 620.023 539.13 +-600.057 611.943 532.104 +-605.125 605.979 526.918 +-608.335 598.26 520.206 +-613.507 592.566 515.255 +-616.663 585.019 508.693 +-621.769 579.411 503.816 +-625.837 572.907 498.161 +-630.318 566.856 492.9 +-634.251 560.388 487.276 +-638.608 554.368 482.041 +-141.999 121.117 105.315 +-143.529 120.29 104.596 +-143.968 118.561 103.093 +-143.424 116.063 100.921 +-142.765 113.527 98.7153 +-142.891 111.659 97.0913 +-143.336 110.069 95.7081 +-149.129 112.535 97.8531 +-677.017 502.05 436.548 +-700.781 510.677 444.05 +-704.846 504.744 438.891 +-710.218 499.775 434.57 +-713.979 493.703 429.29 +-719.29 488.73 424.966 +-722.967 482.674 419.7 +-729.804 478.736 416.277 +-736.453 474.647 412.721 +-736.552 466.384 405.536 +-727.256 452.396 393.373 +-729.274 445.643 387.501 +-732.365 439.602 382.248 +-738.76 435.553 378.727 +-742.182 429.752 373.683 +-747.842 425.257 369.775 +-752.249 420.047 365.244 +-757.806 415.476 361.27 +-762.338 410.339 356.803 +-768.447 406.039 353.064 +-773.113 400.963 348.65 +-387.492 197.232 171.5 +-385.672 192.632 167.5 +-383.189 187.784 163.284 +-385.514 185.334 161.154 +-801.066 377.733 328.451 +-383.006 177.113 154.006 +-382.211 173.302 150.691 +-383.597 170.51 148.264 +-384.169 167.374 145.537 +-828.927 353.904 307.731 +-136.003 56.8891 49.4669 +-841.38 344.734 299.757 +-856.901 343.821 298.963 +-880.092 345.726 300.62 +-410.932 158.002 137.388 +-895.74 337.012 293.042 +-909.31 334.673 291.009 +-911.07 327.925 285.141 +-385.906 135.794 118.077 +-383.367 131.839 114.638 +-381.497 128.174 111.451 +-382.231 125.417 109.054 +-381.917 122.334 106.373 +-384.519 120.19 104.509 +-937.661 285.879 248.581 +-945.397 281.021 244.357 +-384.728 111.444 96.9043 +-381.788 107.718 93.6642 +-381.703 104.838 91.1603 +-382.43 102.194 88.8611 +-382.368 99.353 86.3906 +-381.226 96.2561 83.6977 +-380.137 93.2059 81.0455 +-379.675 90.3361 78.5501 +-380.992 87.8987 76.4307 +-379.98 84.936 73.8546 +-381.044 82.4518 71.6945 +-380.73 79.6771 69.2818 +-382.12 77.2646 67.184 +-382.418 74.6318 64.8947 +-382.394 71.9463 62.5596 +-382.141 69.2317 60.1991 +-382.733 66.6786 57.9792 +-381.732 63.8617 55.5298 +-381.282 61.1573 53.1782 +-382.563 58.7343 51.0714 +-379.693 55.6945 48.4281 +-381.503 53.3571 46.3957 +-380.924 50.6855 44.0727 +-380.509 48.0506 41.7815 +-381.149 45.5549 39.6114 +-380.079 42.8647 37.2722 +-380.164 40.3182 35.0579 +-380.12 37.7639 32.8369 +-379.45 35.1581 30.5711 +-381.134 32.7691 28.4938 +-379.41 30.0924 26.1663 +-378.549 27.5059 23.9173 +-378.853 25.012 21.7488 +-379.925 22.5637 19.6198 +-379.374 20.0188 17.407 +-378.293 17.4599 15.1819 +-380.378 15.0432 13.0805 +-378.739 12.4784 10.8504 +-378.969 9.98654 8.68361 +-379.37 7.49649 6.51844 +-145.978 1.9228 1.67194 +-144.594 0.952222 0.827988 +96.9 0 0 +96.8963 0.643085 0.549074 +96.8852 1.28612 1.09811 +96.6669 1.92508 1.64366 +96.841 2.57185 2.19588 +96.8078 3.21445 2.74454 +96.8671 3.86078 3.29638 +96.7193 4.49885 3.84118 +96.7637 5.14588 4.39361 +96.701 5.78786 4.94174 +96.5313 6.42278 5.48384 +97.4493 7.13606 6.09286 +97.3637 7.78249 6.64479 +97.2707 8.42839 7.19626 +97.1703 9.07361 7.74716 +97.0625 9.71814 8.29746 +96.9472 10.3619 8.84712 +96.7258 10.9937 9.38658 +96.5959 11.6352 9.93429 +96.2615 12.2507 10.4598 +97.0036 13.0079 11.1063 +96.654 13.6236 11.632 +96.494 14.2644 12.1792 +96.3266 14.9043 12.7255 +96.2497 15.5588 13.2843 +96.0675 16.197 13.8292 +95.878 16.834 14.373 +96.5563 17.6294 15.0522 +96.3504 18.2695 15.5987 +96.2339 18.9273 16.1604 +96.6892 19.7031 16.8227 +96.6521 20.3846 17.4046 +97.1836 21.193 18.0948 +96.8408 21.8155 18.6264 +96.5868 22.4574 19.1744 +96.4208 23.1205 19.7405 +96.9127 23.9474 20.4466 +96.6342 24.5897 20.995 +96.4429 25.2549 21.5629 +96.9035 26.097 22.282 +97.4461 26.9733 23.0301 +97.1329 27.6189 23.5814 +96.8123 28.2626 24.1309 +97.2286 29.127 24.8689 +97.7252 30.0275 25.6378 +97.4693 30.704 26.2155 +98.0338 31.6469 27.0205 +96.8415 32.0233 27.3419 +97.3839 32.9741 28.1537 +97.0019 33.6192 28.7045 +96.6124 34.2617 29.253 +97.1182 35.229 30.0789 +97.3394 36.1055 30.8273 +96.9214 36.7501 31.3777 +96.496 37.392 31.9257 +96.8616 38.347 32.7411 +97.1242 39.274 33.5326 +96.582 39.8808 34.0507 +96.9079 40.8521 34.88 +96.4354 41.4936 35.4278 +96.6484 42.4363 36.2326 +96.244 43.1147 36.8118 +97.1171 44.3785 37.8909 +96.6041 45.0213 38.4397 +96.7623 45.9831 39.261 +96.231 46.6236 39.8078 +96.3632 47.5918 40.6344 +96.3972 48.5233 41.4298 +96.5 49.5015 42.2649 +96.0931 50.2262 42.8837 +96.0865 51.1673 43.6872 +96.2285 52.2005 44.5694 +96.273 53.1947 45.4183 +96.3021 54.1936 46.2711 +95.7564 54.8763 46.8541 +95.7577 55.8801 47.7111 +95.6645 56.8413 48.5318 +95.7912 57.9474 49.4762 +95.6667 58.9159 50.3031 +95.6814 59.984 51.2151 +95.679 61.0567 52.1309 +95.6591 62.1339 53.0506 +95.6217 63.2154 53.9741 +95.4919 64.2507 54.8581 +96.0886 65.798 56.1791 +95.9198 66.8442 57.0724 +95.8073 67.945 58.0123 +95.6769 69.0495 58.9553 +95.5283 70.1572 59.9011 +95.3616 71.2683 60.8497 +95.2473 72.4362 61.8469 +95.1134 73.608 62.8474 +95.5155 75.2211 64.2247 +95.1994 76.2933 65.1401 +95.4798 77.8683 66.4849 +95.3258 79.1155 67.5498 +94.8827 80.1407 68.4251 +94.6221 81.337 69.4465 +94.8005 82.9378 70.8133 +94.4297 84.0839 71.7919 +94.7469 85.8726 73.3191 +94.7757 87.437 74.6548 +93.0136 87.3533 74.5833 +91.7587 87.729 74.9041 +91.241 88.8143 75.8307 +91.7403 90.9247 77.6326 +91.8972 92.7453 79.1871 +91.7812 94.3295 80.5396 +91.6945 95.9813 81.95 +91.6349 97.7 83.4175 +91.4854 99.364 84.8382 +91.4746 101.22 86.4232 +91.3721 103.022 87.9615 +90.9592 104.512 89.2335 +92.6976 108.556 92.6867 +93.0066 111.027 94.7963 +93.4778 113.769 97.1372 +93.1615 115.617 98.715 +93.0674 117.795 100.575 +92.8288 119.85 102.329 +91.35 120.33 102.739 +91.2461 122.652 104.722 +91.2412 125.182 106.882 +91.0419 127.52 108.878 +92.5328 132.35 113.002 +92.8115 135.59 115.768 +92.3871 137.895 117.737 +92.586 141.225 120.58 +92.0579 143.543 122.559 +90.967 145.041 123.838 +95.6808 156.047 133.235 +100.273 167.334 142.871 +97.2914 166.186 141.892 +95.4207 166.895 142.497 +92.7205 166.122 141.837 +90.8108 166.731 142.357 +91.6662 172.545 147.321 +91.2955 176.26 150.493 +91.2405 180.765 154.339 +90.1084 183.287 156.492 +88.6858 185.307 158.217 +86.5895 185.96 158.775 +90.4103 199.687 170.495 +89.9876 204.535 174.634 +87.8226 205.557 175.507 +85.19 205.48 175.441 +82.3611 204.874 174.924 +79.9787 205.34 175.322 +77.2612 204.912 174.957 +74.8 205.124 175.137 +72.0811 204.584 174.676 +69.6307 204.76 174.827 +67.1817 204.919 174.963 +64.6877 204.914 174.958 +61.9515 204.076 174.242 +59.8672 205.37 175.347 +57.1341 204.42 174.537 +54.8262 204.941 174.981 +52.2817 204.55 174.648 +50.0965 205.563 175.512 +47.406 204.465 174.574 +45.124 205.071 175.092 +42.425 203.71 173.93 +40.2928 205.037 175.063 +37.7855 204.468 174.578 +35.4509 204.786 174.849 +32.9657 204.184 174.335 +30.712 204.999 175.031 +28.2959 204.741 174.811 +25.9454 204.922 174.965 +23.4798 204.101 174.264 +21.129 204.173 174.326 +18.7296 203.699 173.92 +16.4831 204.954 174.992 +14.0365 203.688 173.911 +11.738 204.458 174.568 +9.36005 203.844 174.044 +7.05731 204.963 175 +4.68248 204.013 174.189 +2.34744 204.569 174.663 +1.63607e-14 203.207 173.501 +-2.34831 204.645 174.728 +-4.66852 203.404 173.669 +-7.05207 204.811 174.87 +-9.3426 203.464 173.72 +-11.7249 204.23 174.374 +-14.0156 203.385 173.652 +-16.4587 204.65 174.733 +-18.6808 203.168 173.467 +-21.1447 204.325 174.455 +-23.3577 203.04 173.358 +-25.8496 204.164 174.318 +-28.1182 203.455 173.713 +-30.5422 203.866 174.063 +-32.856 203.504 173.754 +-35.3334 204.108 174.27 +-37.5211 203.037 173.356 +-39.9677 203.382 173.65 +-42.1747 202.509 172.904 +-44.7609 203.421 173.683 +-46.9197 202.367 172.783 +-49.5863 203.469 173.724 +-51.5948 201.863 172.353 +-54.268 202.855 173.2 +-56.6144 202.561 172.949 +-59.1529 202.92 173.256 +-61.4791 202.519 172.913 +-64.0107 202.769 173.127 +-66.3834 202.484 172.883 +-68.9046 202.625 173.004 +-71.1752 202.013 172.482 +-74.025 202.999 173.323 +-76.2964 202.353 172.772 +-79.2403 203.444 173.703 +-81.3086 202.255 172.688 +-84.1676 203.013 173.335 +-86.5248 202.52 172.914 +-89.4482 203.308 173.587 +-91.7451 202.635 173.012 +-94.6342 203.237 173.526 +-96.8943 202.458 172.861 +-99.8791 203.161 173.461 +-102.135 202.348 172.767 +-105.259 203.22 173.511 +-107.512 202.372 172.788 +-110.787 203.407 173.672 +-112.999 202.455 172.858 +-116.076 203.022 173.343 +-118.401 202.244 172.678 +-121.339 202.489 172.887 +-123.912 202.089 172.546 +-127.259 202.906 173.244 +-128.092 199.73 170.532 +-132.744 202.48 172.88 +-137.65 205.453 175.418 +-141.48 206.691 176.475 +-144.128 206.147 176.011 +-144.961 203.044 173.361 +-144.231 197.883 168.955 +-145.511 195.595 167.001 +-147.25 193.963 165.608 +-151.855 196.058 167.397 +-159.971 202.474 172.875 +-162.758 201.988 172.46 +-167.296 203.61 173.844 +-1760.46 2101.56 1794.34 +-590.879 691.965 590.808 +-583.949 670.958 572.872 +-580.722 654.763 559.044 +-585.211 647.562 552.896 +-590.095 640.913 547.219 +-593.362 632.637 540.154 +-598.718 626.707 535.09 +-601.485 618.186 527.814 +-607.472 613.077 523.453 +-610.405 604.979 516.539 +-615.6 599.228 511.628 +-619.029 591.846 505.325 +-623.971 586.001 500.335 +-627.3 578.727 494.124 +-632.696 573.436 489.606 +-636.004 566.324 483.534 +-142.43 124.607 106.391 +-142.53 122.518 104.607 +-143.194 120.946 103.265 +-144.103 119.598 102.114 +-143.151 116.746 99.6793 +-142.765 114.413 97.6871 +-142.822 112.476 96.0333 +-145.649 112.717 96.2391 +-149.695 113.844 97.2014 +-685.362 512.204 437.326 +-703.227 516.459 440.959 +-707.095 510.306 435.706 +-712.339 505.179 431.328 +-716.265 499.148 426.179 +-722.114 494.477 422.19 +-725.738 488.305 416.921 +-732.597 484.318 413.517 +-738.05 479.389 409.308 +-730.96 466.455 398.265 +-726.099 455.201 388.656 +-731.061 450.222 384.405 +-734.869 444.547 379.56 +-741.518 440.59 376.181 +-744.562 434.495 370.977 +-750.558 430.132 367.252 +-754.339 424.501 362.444 +-760.557 420.239 358.805 +-764.699 414.821 354.18 +-771.314 410.735 350.69 +-775.503 405.341 346.085 +-781.285 400.774 342.186 +-389.175 195.898 167.26 +-383.943 189.622 161.901 +-383.068 185.595 158.463 +-382.13 181.595 155.048 +-385.052 179.449 153.216 +-383.754 175.36 149.724 +-385.665 172.767 147.511 +-382.61 167.996 143.437 +-382.26 164.476 140.432 +-839.547 353.916 302.178 +-136.92 56.5371 48.272 +-877.12 354.68 302.83 +-884.172 350.039 298.868 +-412.625 159.891 136.517 +-902.541 342.22 292.192 +-907.962 336.785 287.551 +-911.792 330.746 282.395 +-383.731 136.083 116.189 +-382.002 132.395 113.041 +-382.41 129.484 110.555 +-383.698 126.881 108.332 +-384.035 123.973 105.849 +-384.888 121.245 103.52 +-941.741 289.364 247.062 +-948.654 284.19 242.645 +-960.001 280.254 239.285 +-382.256 108.692 92.8022 +-380.857 105.422 90.0108 +-383.278 103.221 88.131 +-383.03 100.302 85.6388 +-379.709 96.6216 82.4967 +-380.803 94.0975 80.3416 +-380.247 91.1779 77.8488 +-378.697 88.0507 75.1788 +-381.131 85.8582 73.3068 +-380.083 82.8854 70.7685 +-380.73 80.2989 68.5601 +-380.575 77.5527 66.2154 +-382.902 75.3094 64.3001 +-381.326 72.3054 61.7352 +-383.503 70.0205 59.7844 +-381.563 66.9937 57.2 +-381.732 64.3601 54.9514 +-381.771 61.7135 52.6918 +-381.387 59.0108 50.3841 +-380.577 56.2597 48.0352 +-380.913 53.6903 45.8414 +-382.401 51.2792 43.7828 +-379.424 48.2875 41.2284 +-380.556 45.8389 39.1378 +-380.969 43.3004 36.9704 +-380.56 40.6751 34.7289 +-380.219 38.0685 32.5034 +-380.641 35.5437 30.3477 +-380.737 32.9904 28.1676 +-379.907 30.367 25.9277 +-380.241 27.8445 23.774 +-379.749 25.2669 21.5732 +-379.925 22.7398 19.4155 +-379.074 20.1591 17.2121 +-379.591 17.6565 15.0754 +-380.777 15.1764 12.9578 +-380.537 12.6355 10.7884 +-379.169 10.0698 8.59771 +-379.37 7.55499 6.45054 +-145.978 1.93781 1.65453 +-145.494 0.965623 0.824461 +96.7 0 0 +96.8963 0.648013 0.54325 +96.8852 1.29598 1.08646 +96.6669 1.93983 1.62622 +96.6411 2.58621 2.1681 +97.7069 3.26916 2.74065 +96.8671 3.89036 3.26142 +97.7174 4.58011 3.83965 +96.7637 5.18531 4.34701 +96.701 5.83221 4.88933 +96.5313 6.47199 5.42568 +97.4493 7.19074 6.02823 +97.2642 7.83415 6.56763 +97.2707 8.49297 7.11993 +97.1703 9.14313 7.66498 +97.0625 9.7926 8.20945 +96.9472 10.4413 8.75328 +96.7258 11.078 9.28702 +97.2873 11.8083 9.89927 +97.1491 12.4584 10.4443 +96.9051 13.0943 10.9774 +96.654 13.728 11.5086 +96.494 14.3737 12.05 +96.4246 15.0338 12.6033 +96.1519 15.6621 13.13 +96.0675 16.3211 13.6826 +95.878 16.963 14.2206 +96.5563 17.7645 14.8925 +96.4474 18.428 15.4488 +97.0084 19.2259 16.1177 +96.7858 19.8739 16.6609 +96.5558 20.5203 17.2029 +97.1836 21.3553 17.9029 +96.9367 22.0045 18.4471 +96.5868 22.6295 18.971 +96.3254 23.2746 19.5118 +96.9127 24.1309 20.2297 +96.729 24.8025 20.7927 +96.3483 25.4234 21.3133 +96.8093 26.2715 22.0242 +96.5064 26.9179 22.5661 +97.1329 27.8306 23.3313 +97.6525 28.7263 24.0822 +97.3217 29.3782 24.6287 +96.9834 30.0279 25.1733 +97.4693 30.9393 25.9374 +97.1133 31.5899 26.4828 +96.8415 32.2687 27.0519 +97.2926 33.1957 27.829 +97.0019 33.8768 28.4 +97.4281 34.8157 29.1871 +97.0279 35.4659 29.7322 +97.3394 36.3822 30.5003 +96.9214 37.0317 31.0449 +97.2088 37.9568 31.8204 +96.7729 38.6054 32.3642 +97.2125 39.6109 33.2071 +96.6699 40.2229 33.7202 +96.9079 41.1651 34.51 +96.4354 41.8116 35.052 +95.9556 42.4549 35.5913 +96.9333 43.7562 36.6823 +96.4313 44.4028 37.2243 +96.6041 45.3663 38.032 +96.0838 46.0106 38.5722 +96.1466 46.9396 39.351 +96.3632 47.9564 40.2034 +96.564 48.9797 41.0613 +96.5 49.8807 41.8167 +96.5876 50.8714 42.6471 +96.8238 51.9549 43.5555 +96.147 52.5559 44.0594 +96.1921 53.5573 44.8988 +96.3021 54.6088 45.7803 +95.6765 55.2507 46.3184 +95.7577 56.3083 47.2051 +95.6645 57.2768 48.017 +95.7912 58.3914 48.9514 +95.8221 59.4638 49.8505 +95.6814 60.4436 50.6718 +95.679 61.5245 51.578 +95.6591 62.6099 52.4879 +95.5462 63.6495 53.3594 +95.5667 64.7938 54.3187 +95.3455 65.7894 55.1534 +95.2562 66.8904 56.0764 +95.8073 68.4656 57.397 +95.6769 69.5785 58.3299 +95.5283 70.6948 59.2657 +95.4329 71.8681 60.2494 +95.318 73.0454 61.2363 +95.6741 74.6093 62.5474 +95.5155 75.7975 63.5435 +95.1994 76.8778 64.4492 +94.9342 78.0158 65.4032 +95.2582 79.665 66.7858 +95.418 81.2099 68.0809 +95.2185 82.4767 69.1429 +94.8005 83.5733 70.0622 +94.9493 85.1941 71.421 +94.6183 86.4133 72.4431 +94.6484 87.9889 73.764 +92.1954 87.2486 73.1434 +92.0077 88.6411 74.3107 +91.672 89.9178 75.381 +91.7403 91.6213 76.8092 +91.7768 93.3333 78.2444 +91.8406 95.1135 79.7368 +91.6945 96.7167 81.0808 +91.5769 98.3865 82.4806 +91.6002 100.251 84.0437 +91.4746 101.996 85.5065 +91.3721 103.811 87.0285 +91.2904 105.697 88.6089 +91.2815 107.717 90.3024 +93.6513 112.653 94.441 +93.5308 114.705 96.1608 +93.266 116.633 97.7772 +93.1704 118.829 99.6184 +91.3569 118.853 99.6384 +91.65 121.649 101.983 +91.2461 123.592 103.611 +91.3381 126.275 105.86 +91.5191 129.171 108.288 +92.9084 133.905 112.257 +92.8115 136.629 114.54 +92.3871 138.952 116.488 +92.4968 142.17 119.186 +92.1018 144.712 121.317 +91.3545 146.775 123.046 +91.6659 150.644 126.29 +99.1946 166.803 139.836 +96.6 166.269 139.389 +94.7827 167.049 140.043 +92.2907 166.619 139.682 +90.6194 167.655 140.55 +91.5539 173.654 145.58 +91.2955 177.611 148.897 +91.0613 181.792 152.402 +89.3379 183.112 153.508 +87.6598 184.566 154.728 +86.2557 186.663 156.486 +90.2475 200.855 168.383 +89.6068 205.23 172.051 +86.8029 204.728 171.63 +84.5284 205.446 172.232 +81.7471 204.905 171.778 +79.3255 205.223 172.045 +76.4067 204.199 171.187 +74.1854 204.997 171.856 +71.3305 204.005 171.024 +69.2551 205.217 172.04 +66.5043 204.407 171.361 +64.3142 205.292 172.103 +61.4566 203.997 171.017 +59.391 205.298 172.108 +56.552 203.888 170.926 +54.4274 205.009 171.866 +51.7474 204.011 171.029 +49.6045 205.103 171.945 +46.9545 204.069 171.077 +44.7609 204.98 171.841 +42.2529 204.439 171.388 +40.0268 205.243 172.062 +37.4376 204.138 171.135 +35.216 204.988 171.848 +32.6244 203.619 170.7 +30.4517 204.819 171.706 +27.9091 203.49 170.592 +25.7729 205.118 171.957 +23.2706 203.833 170.879 +21.0113 204.591 171.515 +18.5901 203.731 170.794 +16.3366 204.689 171.597 +13.9004 203.259 170.399 +11.6638 204.722 171.625 +9.26931 203.414 170.529 +6.98401 204.388 171.345 +4.62838 203.201 170.35 +2.323 203.99 171.012 +1.62505e-14 203.385 170.504 +-2.32388 204.067 171.076 +-4.61965 202.818 170.029 +-6.98139 204.311 171.281 +-9.27629 203.567 170.657 +-11.642 204.34 171.305 +-13.9214 203.565 170.655 +-16.245 203.541 170.635 +-18.5622 203.425 170.538 +-20.9564 204.057 171.068 +-23.1921 203.145 170.303 +-25.6867 204.432 171.382 +-27.8046 202.728 169.954 +-30.3271 203.981 171.004 +-32.5269 203.01 170.19 +-34.9419 203.393 170.511 +-37.2566 203.151 170.308 +-39.746 203.803 170.855 +-41.8931 202.698 169.928 +-44.3483 203.09 170.257 +-46.4683 201.956 169.306 +-49.0943 202.993 170.176 +-51.2704 202.131 169.453 +-53.949 203.207 170.355 +-56.053 202.089 169.418 +-58.7634 203.128 170.288 +-60.9392 202.279 169.577 +-63.6372 203.131 170.291 +-65.706 201.953 169.304 +-68.4539 202.842 170.049 +-70.787 202.451 169.721 +-73.3035 202.56 169.813 +-75.6349 202.136 169.457 +-78.445 202.945 170.136 +-80.5192 201.826 169.198 +-83.7165 203.473 170.578 +-85.4432 201.52 168.941 +-88.5915 202.904 170.101 +-90.6056 201.652 169.051 +-93.7663 202.916 170.111 +-96.0735 202.281 169.579 +-98.8986 202.708 169.936 +-101.275 202.182 169.496 +-104.673 203.636 170.714 +-106.463 201.934 169.287 +-109.754 203.055 170.227 +-111.788 201.819 169.191 +-115.039 202.75 169.972 +-117.344 201.973 169.321 +-120.51 202.645 169.884 +-119.77 196.831 165.01 +-123.083 197.752 165.782 +-125.286 196.852 165.027 +-129.04 198.339 166.274 +-130.885 196.854 165.029 +-140.187 206.371 173.007 +-142.532 205.426 172.215 +-144.961 204.6 171.523 +-144.425 199.668 167.388 +-144.182 195.293 163.72 +-146.05 193.856 162.516 +-150.84 196.24 164.514 +-155.954 198.902 166.746 +-162.497 203.209 170.357 +-166.978 204.78 171.674 +-172.903 207.985 174.361 +-165.625 195.446 163.849 +-169.721 196.503 164.735 +-171.281 194.598 163.138 +-587.533 655.113 549.202 +-593.422 649.464 544.467 +-595.743 640.043 536.569 +-602.127 635.104 532.429 +-604.28 625.817 524.643 +-609.819 620.161 519.901 +-612.658 611.865 512.946 +-619.048 607.201 509.036 +-621.332 598.599 501.825 +-628.062 594.362 498.273 +-629.717 585.409 490.767 +-636.038 580.882 486.972 +-638.083 572.527 479.968 +-143.349 126.372 105.941 +-142.927 123.801 103.787 +-144.398 122.898 103.029 +-144.509 120.854 101.316 +-142.81 117.36 98.3869 +-142.765 115.29 96.651 +-147.129 116.756 97.88 +-149.644 116.697 97.8305 +-684.904 524.865 440.012 +-700.483 527.516 442.234 +-707.255 523.397 438.781 +-709.271 515.799 432.411 +-716.361 511.924 429.163 +-719.73 505.406 423.698 +-726.944 501.599 420.507 +-728.809 494.129 414.244 +-737.2 491.096 411.702 +-737.138 482.465 404.466 +-725.674 466.631 391.192 +-728.182 460.005 385.637 +-735.18 456.227 382.47 +-738.313 450.053 377.294 +-744.355 445.664 373.615 +-747.26 439.41 368.371 +-754.072 435.457 365.058 +-756.912 429.212 359.822 +-764.602 425.711 356.887 +-768.037 419.824 351.953 +-774.918 415.815 348.591 +-778.387 409.966 343.688 +-786.093 406.331 340.64 +-385.172 195.369 163.784 +-384.111 191.158 160.254 +-385.936 188.417 157.956 +-385.353 184.529 154.697 +-811.799 381.229 319.597 +-385.811 177.651 148.93 +-383.77 173.236 145.229 +-382.177 169.092 141.755 +-383.479 166.265 139.386 +-843.658 358.374 300.436 +-136.92 56.9703 47.76 +-881.711 359.268 301.186 +-886.124 353.5 296.35 +-896.531 350.065 293.471 +-903.794 345.322 289.494 +-912.186 340.944 285.825 +-911.882 333.313 279.427 +-907.939 324.45 271.997 +-383.185 133.823 112.188 +-382.41 130.476 109.382 +-381.956 127.272 106.696 +-381.181 123.994 103.948 +-384.519 122.056 102.324 +-384.225 118.963 99.7309 +-383.053 115.631 96.9375 +-965.416 283.994 238.082 +-381.788 109.39 91.7055 +-382.737 106.754 89.4955 +-382.147 103.704 86.9385 +-381.517 100.671 84.3958 +-379.993 97.4347 81.6827 +-380.708 94.7955 79.4702 +-380.247 91.8765 77.0231 +-381.566 89.3974 74.9448 +-379.117 86.0593 72.1463 +-381.044 83.7319 70.1952 +-380.056 80.7708 67.7128 +-380.575 78.1469 65.5131 +-380.579 75.4259 63.232 +-383.558 73.2858 61.4379 +-381.363 70.1635 58.8203 +-381.856 67.5587 56.6366 +-381.146 64.7537 54.2851 +-381.575 62.1546 52.1062 +-381.975 59.5546 49.9265 +-381.755 56.8663 47.6728 +-380.913 54.1016 45.3552 +-380.628 51.4325 43.1175 +-382.087 48.9989 41.0774 +-380.853 46.2261 38.7528 +-380.079 43.5302 36.4928 +-379.174 40.8375 34.2354 +-378.732 38.2102 32.0328 +-379.153 35.676 29.9083 +-380.737 33.2432 27.8688 +-378.714 30.5035 25.572 +-379.047 27.9697 23.4479 +-380.148 25.4872 21.3667 +-379.128 22.8659 19.1692 +-379.872 20.3564 17.0654 +-379.591 17.7918 14.9155 +-380.378 15.2767 12.807 +-379.538 12.6989 10.6459 +-378.569 10.1309 8.49303 +-147.949 2.96892 2.48894 +-145.878 1.95132 1.63586 +-145.494 0.973022 0.815716 +96.9 0 0 +96.8963 0.652887 0.537382 +96.8852 1.30573 1.07472 +97.5666 1.97261 1.62363 +96.841 2.61105 2.14912 +96.9077 3.26681 2.68886 +96.7672 3.91558 3.22286 +96.7193 4.56743 3.75938 +96.7637 5.22431 4.30005 +97.4985 5.92454 4.8764 +97.5275 6.58797 5.42246 +97.4493 7.24483 5.96311 +97.3637 7.90111 6.50329 +97.37 8.56558 7.05021 +97.1703 9.21191 7.58219 +97.0625 9.86626 8.12077 +96.9472 10.5198 8.65873 +96.5279 11.1384 9.16789 +97.2873 11.8971 9.79234 +96.2615 12.4374 10.2371 +96.9051 13.1928 10.8588 +96.654 13.8312 11.3843 +96.494 14.4819 11.9198 +96.3266 15.1315 12.4545 +96.2497 15.796 13.0014 +96.0675 16.4439 13.5348 +95.878 17.0906 14.067 +95.7784 17.7539 14.613 +96.4474 18.5667 15.2819 +96.1371 19.1965 15.8003 +96.7858 20.0234 16.4809 +96.5558 20.6747 17.0171 +96.3184 21.3245 17.5519 +96.0737 21.9726 18.0853 +96.6824 22.8223 18.7847 +97.1838 23.6586 19.473 +96.9127 24.3125 20.0112 +96.6342 24.9645 20.5479 +97.1993 25.8409 21.2693 +96.8093 26.4691 21.7863 +97.5401 27.4108 22.5614 +97.0392 28.0129 23.057 +97.7459 28.97 23.8448 +97.2286 29.5709 24.3394 +96.9834 30.2538 24.9014 +96.6378 30.9061 25.4384 +97.1133 31.8275 26.1968 +96.8415 32.5114 26.7597 +97.3839 33.4767 27.5542 +97.0929 34.1637 28.1196 +96.6124 34.7839 28.6301 +97.0279 35.7326 29.411 +96.7102 36.4189 29.9758 +96.9214 37.3103 30.7095 +97.2979 38.2774 31.5056 +96.7729 38.8958 32.0146 +97.1242 39.8726 32.8186 +96.582 40.4886 33.3256 +96.9079 41.4747 34.1372 +96.4354 42.1261 34.6734 +96.6484 43.0831 35.4611 +96.9333 44.0854 36.286 +96.3456 44.697 36.7895 +96.6041 45.7075 37.6212 +96.6775 46.6431 38.3912 +96.9057 47.666 39.2332 +96.1955 48.2331 39.6999 +96.564 49.3481 40.6177 +96.0026 49.9968 41.1517 +96.67 51.2978 42.2225 +96.0046 51.9029 42.7205 +96.2285 52.9961 43.6204 +95.6258 53.6425 44.1523 +96.3021 55.0196 45.2858 +95.6765 55.6663 45.8181 +95.7577 56.7319 46.6952 +95.6645 57.7076 47.4983 +95.7912 58.8307 48.4227 +95.7444 59.8626 49.272 +95.6043 60.8492 50.0841 +96.2918 62.3843 51.3476 +95.6591 63.0809 51.921 +96.2255 64.5841 53.1582 +95.5667 65.2812 53.732 +96.0143 66.7492 54.9403 +95.9198 67.8631 55.8571 +95.8073 68.9807 56.777 +95.6769 70.1019 57.6999 +95.6003 71.2802 58.6697 +95.3616 72.3546 59.554 +95.2473 73.5403 60.5299 +95.7442 75.2255 61.9171 +95.4461 76.3121 62.8114 +95.1994 77.4561 63.753 +94.9342 78.6027 64.6967 +95.2582 80.2643 66.0643 +95.2842 81.7065 67.2515 +95.1522 83.0392 68.3483 +94.8661 84.2599 69.3531 +95.0792 85.9523 70.7461 +94.4898 86.9452 71.5634 +93.6943 87.7567 72.2313 +92.0066 87.7251 72.2052 +91.1984 88.5226 72.8617 +91.7336 90.6552 74.6169 +91.3142 91.882 75.6268 +91.8972 94.1589 77.5009 +91.7812 95.7672 78.8246 +91.6357 97.3817 80.1534 +91.693 99.2525 81.6933 +91.6575 101.068 83.1873 +91.418 102.7 84.5308 +91.3721 104.592 86.0884 +90.9592 106.105 87.3334 +91.1726 108.397 89.2202 +92.4693 112.069 92.242 +93.4778 115.503 95.0687 +93.684 118.037 97.1544 +93.4279 120.054 98.8144 +91.3569 119.747 98.5621 +91.4 122.23 100.606 +91.2953 124.589 102.547 +91.2412 127.09 104.606 +91.185 129.668 106.728 +92.9554 134.981 111.101 +92.7653 137.588 113.247 +92.3871 139.997 115.229 +92.4522 143.17 117.841 +92.4086 146.286 120.406 +92.0863 149.064 122.692 +91.4546 151.428 124.638 +95.255 161.382 132.832 +95.8678 166.251 136.838 +93.706 166.394 136.957 +90.9231 165.384 136.125 +91.6144 170.77 140.559 +91.2542 174.388 143.536 +91.2588 178.875 147.23 +90.3804 181.79 149.629 +89.3379 184.489 151.85 +86.9415 184.431 151.803 +87.4908 190.759 157.011 +90.4428 202.803 166.924 +88.9088 205.162 168.866 +85.7522 203.771 167.721 +83.8668 205.372 169.039 +80.5192 203.344 167.37 +78.445 204.472 168.298 +75.5246 203.36 167.383 +73.4906 204.605 168.407 +70.6835 203.675 167.642 +68.554 204.667 168.458 +65.6334 203.248 167.29 +63.7306 204.959 168.699 +60.7818 203.274 167.312 +58.7201 204.505 168.325 +56.053 203.609 167.588 +53.8692 204.433 168.266 +51.0414 202.741 166.874 +49.0943 204.52 168.338 +46.4856 203.551 167.54 +44.3153 204.466 168.293 +41.7367 203.46 167.465 +39.5538 204.344 168.193 +37.0479 203.532 167.524 +34.8635 204.463 168.291 +32.2954 203.081 167.153 +30.1121 204.058 167.957 +27.6478 203.101 167.17 +25.5046 204.51 168.329 +23.0091 203.058 167.134 +20.7603 203.667 167.636 +18.3948 203.107 167.174 +16.1595 203.993 167.904 +13.7487 202.552 166.718 +11.5417 204.103 167.994 +9.17159 202.784 166.908 +6.91071 203.764 167.716 +4.57951 202.568 166.731 +2.30555 203.981 167.894 +1.60362e-14 202.213 166.438 +-2.30031 203.517 167.512 +-4.57951 202.568 166.731 +-6.91333 203.841 167.779 +-9.15763 202.475 166.654 +-11.5242 203.795 167.74 +-13.733 202.321 166.527 +-16.129 203.608 167.587 +-18.332 202.413 166.603 +-20.7289 203.36 167.383 +-22.9481 202.52 166.691 +-25.332 203.126 167.19 +-27.5119 202.103 166.348 +-30.0215 203.444 167.452 +-32.1979 202.468 166.649 +-34.6155 203.009 167.093 +-36.7139 201.698 166.014 +-39.3321 203.199 167.25 +-41.2831 201.248 165.644 +-44.0182 203.094 167.164 +-45.9647 201.27 165.662 +-48.584 202.395 166.588 +-50.6025 200.999 165.439 +-53.4306 202.768 166.896 +-55.5332 201.721 166.033 +-58.2223 202.772 166.898 +-60.3544 201.844 166.135 +-63.0069 202.632 166.783 +-65.077 201.525 165.873 +-67.7028 202.125 166.366 +-69.8035 201.139 165.555 +-72.7957 202.67 166.815 +-74.8631 201.579 165.916 +-77.6214 202.325 166.53 +-79.8175 201.573 165.911 +-82.7542 202.647 166.796 +-84.8561 201.641 165.968 +-87.703 202.38 166.576 +-89.7266 201.197 165.603 +-92.9652 202.696 166.836 +-94.808 201.119 165.538 +-98.1281 202.642 166.792 +-100.128 201.396 165.766 +-103.243 202.366 166.565 +-105.414 201.448 165.809 +-108.491 202.228 166.451 +-110.342 200.708 165.2 +-113.723 201.939 166.213 +-116.001 201.165 165.576 +-119.307 202.132 166.372 +-118.418 196.072 161.384 +-121.835 197.219 162.328 +-122.963 194.655 160.218 +-127.077 196.79 161.975 +-129.296 195.927 161.265 +-136.031 201.759 166.065 +-141.076 204.858 168.615 +-144.913 206.071 169.614 +-144.619 201.44 165.802 +-144.625 197.366 162.449 +-144.6 193.376 159.165 +-148.506 194.656 160.219 +-151.37 194.508 160.097 +-160.616 202.369 166.567 +-166.607 205.862 169.442 +-165.112 200.108 164.706 +-163.664 194.585 160.16 +-167.844 195.793 161.154 +-168.988 193.438 159.216 +-591.328 664.304 546.779 +-176.088 194.167 159.816 +-599.227 648.629 533.877 +-605.536 643.505 529.659 +-607.968 634.373 522.143 +-613.851 628.958 517.686 +-615.762 619.591 509.977 +-622.372 615.054 506.242 +-624.195 605.882 498.693 +-631.02 601.653 495.212 +-633.279 593.148 488.212 +-639.767 588.682 484.535 +-142.684 128.988 106.168 +-144.005 127.905 105.277 +-143.656 125.369 103.189 +-142.792 122.445 100.783 +-142.414 119.998 98.7686 +-142.81 118.243 97.3241 +-143.109 116.436 95.837 +-149.629 119.634 98.4686 +-150.625 118.346 97.4086 +-702.086 542.079 446.178 +-704.834 534.785 440.174 +-710.852 530.015 436.248 +-714.131 523.24 430.671 +-721.115 519.198 427.344 +-723.269 511.711 421.182 +-731.626 508.627 418.643 +-735.549 502.45 413.559 +-735.464 493.626 406.296 +-728.469 480.377 395.392 +-730.194 473.069 389.376 +-732.272 466.068 383.614 +-739.377 462.282 380.498 +-742.46 455.986 375.315 +-749.713 452.249 372.24 +-752.178 445.63 366.791 +-759.103 441.66 363.524 +-761.896 435.288 358.279 +-769.699 431.772 355.385 +-771.619 424.955 349.774 +-779.669 421.512 346.94 +-782.178 415.062 341.631 +-791.068 411.978 339.093 +-383.254 195.858 161.208 +-385.118 193.1 158.938 +-383.49 188.631 155.26 +-383.318 184.936 152.218 +-384.114 181.741 149.589 +-824.509 382.509 314.838 +-383.77 174.539 143.661 +-384.948 171.599 141.241 +-383.044 167.326 137.724 +-382.559 163.728 134.762 +-134.195 56.2567 46.3041 +-137.21 56.3291 46.3637 +-891.978 358.512 295.086 +-906.599 356.659 293.561 +-910.506 350.503 288.494 +-391.245 147.334 121.269 +-909.445 334.923 275.67 +-906.58 326.401 268.656 +-382.821 134.701 110.87 +-382.776 131.583 108.304 +-381.772 128.168 105.493 +-382.93 125.5 103.297 +-382.486 122.324 100.683 +-384.318 119.887 98.6771 +-382.681 116.388 95.797 +-383.141 113.556 93.466 +-382.631 110.456 90.9151 +-383.301 107.715 88.659 +-382.712 104.639 86.1272 +-381.233 101.353 83.4218 +-380.942 98.4124 81.0018 +-381.279 95.6514 78.7293 +-380.819 92.7074 76.3061 +-379.749 89.6414 73.7825 +-380.268 86.9692 71.5831 +-380.756 84.2977 69.3842 +-380.249 81.4193 67.0151 +-380.671 78.7548 64.8219 +-381.547 76.1867 62.7081 +-382.297 73.5943 60.5744 +-383.211 71.0337 58.4668 +-382.44 68.1711 56.1107 +-381.146 65.2408 53.6987 +-382.162 62.7184 51.6226 +-380.505 59.7717 49.1972 +-382.344 57.3824 47.2306 +-381.798 54.6353 44.9695 +-380.037 51.7389 42.5856 +-379.72 49.0617 40.382 +-380.853 46.5738 38.3342 +-379.584 43.8006 36.0516 +-380.857 41.3273 34.0159 +-380.913 38.7193 31.8693 +-379.45 35.9725 29.6085 +-380.637 33.4845 27.5606 +-379.51 30.7975 25.349 +-379.047 28.1801 23.1947 +-378.853 25.5914 21.0639 +-379.227 23.0439 18.9671 +-379.374 20.4825 16.8589 +-379.591 17.9257 14.7543 +-379.879 15.3714 12.652 +-379.538 12.7944 10.5309 +-379.469 10.2313 8.42124 +-148.049 2.99328 2.46372 +-146.678 1.97678 1.62706 +-145.494 0.980341 0.806904 +96.9 0 0 +96.8963 0.657709 0.53147 +96.6853 1.31265 1.06071 +96.6669 1.96885 1.59096 +96.841 2.63033 2.12548 +96.8078 3.28754 2.65654 +96.8671 3.94857 3.1907 +96.8191 4.60591 3.72186 +96.7637 5.26289 4.25275 +96.701 5.91947 4.78331 +96.6309 6.57561 5.31351 +97.3497 7.29087 5.89149 +97.3637 7.95946 6.43175 +97.2707 8.62005 6.96554 +97.1703 9.27993 7.49877 +97.0625 9.93912 8.03144 +96.9472 10.5975 8.56347 +96.7258 11.2437 9.08564 +96.5959 11.8998 9.61579 +96.2615 12.5293 10.1244 +96.9051 13.2903 10.7394 +96.7523 13.9475 11.2705 +96.494 14.5888 11.7887 +96.4246 15.2587 12.33 +96.2497 15.9126 12.8584 +96.0675 16.5654 13.3859 +95.878 17.2168 13.9122 +96.5563 18.0303 14.5696 +96.3504 18.6849 15.0986 +97.0084 19.5135 15.7682 +96.7858 20.1712 16.2996 +96.5558 20.8274 16.8298 +96.3184 21.482 17.3588 +96.8408 22.3116 18.0292 +96.6824 22.9908 18.578 +96.3254 23.6228 19.0887 +96.9127 24.492 19.7911 +96.6342 25.1488 20.3219 +97.1993 26.0317 21.0353 +96.9035 26.6904 21.5676 +97.5401 27.6132 22.3132 +97.2266 28.2742 22.8473 +97.6525 29.1561 23.5599 +97.2286 29.7893 24.0716 +97.7252 30.7103 24.8158 +97.4693 31.4022 25.375 +97.2053 32.093 25.9331 +97.6669 33.0307 26.6909 +97.3839 33.7239 27.2511 +96.9109 34.3514 27.7581 +97.4281 35.3366 28.5542 +97.0279 35.9965 29.0875 +96.6204 36.6538 29.6185 +96.8319 37.5511 30.3437 +96.4069 38.2069 30.8736 +96.7729 39.1831 31.6624 +97.1242 40.1671 32.4575 +96.582 40.7876 32.959 +96.9079 41.781 33.7617 +96.4354 42.4372 34.2919 +96.6484 43.4013 35.0709 +96.244 44.095 35.6316 +97.2028 45.4277 36.7084 +96.6041 46.0451 37.2073 +96.7623 47.0288 38.0022 +96.231 47.6837 38.5315 +96.1955 48.5893 39.2632 +96.564 49.7126 40.1709 +96.0026 50.3661 40.699 +95.9283 51.2801 41.4376 +96.0865 52.3308 42.2866 +96.147 53.3423 43.104 +96.1921 54.3587 43.9252 +96.2217 55.3796 44.7502 +95.6765 56.0774 45.3141 +95.7577 57.1508 46.1815 +95.6645 58.1338 46.9758 +96.3391 59.6041 48.1639 +95.7444 60.3046 48.73 +95.6814 61.348 49.573 +95.679 62.4451 50.4596 +95.6591 63.5467 51.3498 +96.3009 65.1121 52.6147 +96.091 66.1241 53.4324 +96.0143 67.2421 54.3359 +95.33 67.9438 54.9029 +95.1491 69.0127 55.7666 +95.6769 70.6196 57.0651 +95.5283 71.7525 57.9806 +95.3616 72.8889 58.8988 +95.318 74.1384 59.9085 +95.1134 75.2818 60.8324 +95.4461 76.8757 62.1204 +95.1994 78.0281 63.0517 +94.866 79.1264 63.9391 +95.2582 80.857 65.3376 +94.8827 81.963 66.2313 +95.2848 83.7691 67.6907 +95.1286 85.117 68.7799 +95.274 86.7652 70.1117 +93.6542 86.8126 70.1501 +92.3586 87.1447 70.4184 +91.8178 88.1917 71.2644 +91.5719 89.5419 72.3555 +91.7951 91.3853 73.8451 +91.8621 93.1159 75.2435 +91.7768 94.7298 76.5477 +91.7812 96.4744 77.9574 +91.8708 98.3521 79.4747 +91.693 99.9854 80.7945 +91.4854 101.623 82.1182 +91.4746 103.522 83.6524 +91.3721 105.365 85.1413 +91.2352 107.213 86.6347 +91.227 109.263 88.2914 +91.126 111.256 89.9017 +90.9871 113.255 91.5176 +93.684 118.909 96.0856 +93.2734 120.74 97.5657 +93.2348 123.111 99.4815 +92.65 124.817 100.86 +91.3446 125.577 101.474 +91.2412 128.028 103.455 +92.3302 132.266 106.879 +92.5328 135.36 109.379 +92.7653 138.604 112.001 +92.3871 141.031 113.962 +92.4968 144.297 116.601 +92.321 147.227 118.968 +92.0002 150.024 121.229 +92.2576 153.885 124.349 +90.9008 155.143 125.365 +92.8173 162.149 131.026 +92.8687 166.125 134.239 +91.0404 166.821 134.802 +91.4996 171.816 138.838 +91.6288 176.397 142.54 +91.1855 180.051 145.493 +89.2336 180.809 146.105 +88.6375 184.395 149.003 +86.5311 184.916 149.424 +90.5618 198.914 160.735 +89.8894 203.051 164.078 +87.9886 204.538 165.28 +84.8561 203.13 164.142 +82.5437 203.624 164.541 +79.5836 202.466 163.605 +77.5362 203.595 164.518 +74.7253 202.693 163.789 +72.6888 203.867 164.737 +69.7517 202.475 163.612 +67.6527 203.467 164.414 +65.0044 202.787 163.864 +62.9602 203.977 164.826 +60.1294 202.577 163.695 +58.0924 203.813 164.694 +55.4085 202.754 163.838 +53.3708 204.037 164.875 +50.5453 202.254 163.434 +48.584 203.889 164.756 +45.8605 202.296 163.468 +43.7211 203.214 164.209 +41.1423 202.043 163.263 +39.1843 203.93 164.788 +36.4912 201.954 163.192 +34.3675 203.042 164.071 +31.942 202.342 163.505 +29.8177 203.556 164.486 +27.3342 202.28 163.455 +25.1691 203.31 164.287 +22.6692 201.536 162.854 +20.5014 202.612 163.724 +18.1437 201.813 163.077 +15.952 202.86 163.924 +13.6073 201.951 163.189 +11.3803 202.735 163.823 +9.04944 201.561 162.874 +6.84265 203.247 164.236 +4.52017 201.42 162.76 +2.27763 202.998 164.035 +1.58648e-14 201.528 162.847 +-2.27064 202.376 163.532 +-4.53239 201.964 163.199 +-6.8191 202.548 163.671 +-9.05642 201.716 162.999 +-11.3716 202.58 163.697 +-13.5969 201.796 163.064 +-15.9276 202.549 163.673 +-18.1297 201.658 162.952 +-20.5171 202.768 163.849 +-22.7128 201.923 163.167 +-25.0637 202.458 163.599 +-27.2192 201.43 162.768 +-29.7158 202.86 163.924 +-31.7104 200.875 162.32 +-34.237 202.272 163.448 +-36.4077 201.492 162.818 +-38.9182 202.545 163.669 +-41.0328 201.505 162.829 +-43.4075 201.756 163.032 +-45.5132 200.764 162.23 +-48.092 201.824 163.087 +-50.0492 200.269 161.83 +-52.6531 201.293 162.658 +-54.8055 200.548 162.055 +-57.4431 201.535 162.853 +-59.4546 200.304 161.858 +-62.3299 201.935 163.176 +-64.1577 200.145 161.73 +-67.1018 201.811 163.076 +-68.9494 200.146 161.731 +-71.994 201.918 163.163 +-73.7054 199.927 161.553 +-76.9682 202.104 163.312 +-78.7649 200.384 161.923 +-81.7318 201.621 162.923 +-83.8054 200.616 162.11 +-86.8463 201.883 163.134 +-88.9452 200.918 162.355 +-91.6967 201.407 162.749 +-93.7477 200.338 161.886 +-96.8674 201.516 162.837 +-98.802 200.196 161.771 +-102.144 201.689 162.977 +-104.066 200.34 161.887 +-107.19 201.278 162.646 +-109.092 199.899 161.531 +-112.647 201.504 162.828 +-114.171 199.453 161.17 +-118.105 201.572 162.883 +-119.939 200.058 161.659 +-120.328 196.218 158.557 +-122.086 194.694 157.325 +-126.542 197.408 159.518 +-127.299 194.324 157.026 +-131.09 195.867 158.273 +-138.964 203.28 164.263 +-143.148 205.063 165.704 +-144.813 203.2 164.198 +-144.625 198.824 160.662 +-144.6 194.804 157.414 +-145.562 192.206 155.315 +-148.794 192.611 155.642 +-158.16 200.746 162.215 +-162.95 202.831 163.9 +-163.876 200.077 161.675 +-165.352 198.043 160.032 +-165.36 194.319 157.022 +-167.311 192.932 155.901 +-595.123 673.504 544.234 +-173.335 192.543 155.587 +-182.689 199.211 160.975 +-610.415 653.48 528.053 +-611.954 643.247 519.784 +-618.425 638.323 515.806 +-620.267 628.733 508.056 +-627.113 624.315 504.486 +-629.3 615.348 497.24 +-635.425 610.327 493.183 +-638.368 602.33 486.721 +-143.277 132.81 107.319 +-143.268 130.473 105.43 +-144.267 129.084 104.308 +-144.451 126.993 102.618 +-143.194 123.696 99.9541 +-142.752 121.171 97.9139 +-147.857 123.326 99.6549 +-149.029 122.149 98.704 +-687.295 553.572 447.321 +-699.227 553.435 447.211 +-707.602 550.373 444.736 +-709.042 541.951 437.931 +-716.894 538.469 435.117 +-718.773 530.531 428.702 +-726.307 526.799 425.687 +-727.914 518.8 419.224 +-737.2 516.287 417.192 +-738.77 508.376 410.8 +-725.804 490.739 396.548 +-728.317 483.824 390.96 +-735.173 479.812 387.718 +-736.361 472.132 381.512 +-744.739 469.074 379.042 +-746.999 462.161 373.455 +-754.757 458.654 370.621 +-756.621 451.572 364.899 +-764.534 448.105 362.097 +-767.362 441.649 356.88 +-775.281 438.115 354.025 +-777.155 431.165 348.409 +-785.731 427.926 345.791 +-787.865 421.166 340.329 +-795.71 417.455 337.33 +-799.113 411.395 332.433 +-383.608 193.764 156.574 +-384.586 190.568 153.991 +-382.385 185.848 150.177 +-384.2 183.124 147.976 +-383.497 179.227 144.827 +-382.046 175.038 141.442 +-382.61 171.816 138.838 +-382.521 168.332 136.022 +-382.909 165.088 133.402 +-883.563 373.138 301.519 +-137.74 56.9642 46.0307 +-898.542 363.817 293.987 +-911.411 361.2 291.873 +-913.012 354.063 286.105 +-384.145 145.729 117.758 +-383.96 142.446 115.105 +-910.567 330.258 266.869 +-382.821 135.696 109.651 +-382.776 132.555 107.113 +-382.873 129.487 104.633 +-382.93 126.427 102.161 +-382.948 123.376 99.6958 +-383.854 120.627 97.474 +-382.122 117.076 94.6048 +-382.301 114.144 92.2353 +-380.945 110.781 89.5183 +-382.643 108.325 87.5334 +-381.581 105.1 84.9276 +-380.098 101.797 82.2583 +-380.278 98.9665 79.9712 +-380.708 96.2139 77.7469 +-380.533 93.322 75.4101 +-380.514 90.4854 73.1179 +-381.706 87.9435 71.0639 +-378.833 84.4917 68.2746 +-381.019 82.187 66.4123 +-379.222 79.0338 63.8643 +-380.869 76.6129 61.9081 +-382.879 74.2507 59.9992 +-382.141 71.3585 57.6622 +-381.174 68.4471 55.3096 +-381.927 65.8573 53.2168 +-381.282 63.036 50.9371 +-381.681 60.3991 48.8063 +-380.282 57.4945 46.4592 +-381.208 54.9537 44.406 +-379.742 52.0805 42.0843 +-380.016 49.4625 39.9688 +-380.556 46.8813 37.883 +-380.771 44.262 35.7665 +-380.956 41.6433 33.6505 +-380.616 38.9748 31.4941 +-380.939 36.3804 29.3977 +-380.041 33.6789 27.2147 +-379.012 30.9843 25.0373 +-379.345 28.4106 22.9575 +-380.148 25.8685 20.9034 +-379.128 23.208 18.7535 +-380.172 20.6772 16.7085 +-379.591 18.058 14.592 +-377.981 15.4076 12.4503 +-378.639 12.8584 10.3904 +-380.068 10.3232 8.3418 +-378.67 7.71253 6.23221 +-146.378 1.9873 1.60587 +-145.894 0.990295 0.800221 +96.9 0 0 +97.5963 0.667262 0.529313 +96.6853 1.32217 1.04882 +97.7665 2.00569 1.59103 +96.841 2.6494 2.10166 +96.9077 3.31479 2.62949 +96.8671 3.97719 3.15495 +97.7174 4.68233 3.71431 +96.664 5.29557 4.20077 +96.701 5.96237 4.72972 +96.6309 6.62327 5.25398 +97.3497 7.34372 5.82548 +97.3637 8.01715 6.35969 +97.37 8.69138 6.89453 +97.2695 9.35675 7.42235 +97.0625 10.0112 7.94146 +97.0463 10.6853 8.47624 +96.7258 11.3252 8.98385 +96.3984 11.9615 9.48861 +96.2615 12.6201 10.011 +96.0188 13.2641 10.5219 +96.654 14.0343 11.1329 +96.5921 14.7095 11.6685 +96.4246 15.3693 12.1919 +96.2497 16.028 12.7144 +96.0675 16.6854 13.2359 +96.7549 17.5001 13.8822 +96.5563 18.1609 14.4064 +96.4474 18.8393 14.9445 +97.0084 19.655 15.5915 +96.7858 20.3174 16.117 +96.5558 20.9783 16.6413 +97.1836 21.832 17.3185 +96.8408 22.4733 17.8272 +96.5868 23.1345 18.3517 +96.3254 23.794 18.8749 +96.0567 24.4516 19.3965 +96.729 25.356 20.114 +96.3483 25.9909 20.6175 +96.9035 26.8839 21.3259 +97.4461 27.7866 22.042 +97.1329 28.4517 22.5696 +96.8123 29.1147 23.0956 +97.3217 30.0339 23.8247 +96.9834 30.6981 24.3516 +97.4693 31.6298 25.0907 +97.1133 32.2949 25.6183 +96.9332 33.0202 26.1936 +96.5618 33.6816 26.7183 +97.0019 34.6329 27.4729 +97.4281 35.5927 28.2343 +97.0279 36.2574 28.7616 +96.7102 36.9537 29.314 +96.9214 37.8582 30.0314 +97.2088 38.804 30.7817 +96.7729 39.4671 31.3077 +97.1242 40.4582 32.0939 +96.6699 41.1207 32.6194 +96.9079 42.0838 33.3835 +96.4354 42.7447 33.9077 +96.6484 43.7158 34.6781 +96.9333 44.7328 35.4848 +96.4313 45.3938 36.0091 +96.6041 46.3788 36.7905 +96.6775 47.3281 37.5435 +96.1466 47.9873 38.0664 +96.3632 49.0267 38.891 +96.3972 49.9864 39.6522 +96.5 50.994 40.4516 +95.9283 51.6518 40.9734 +96.8238 53.1145 42.1337 +96.2285 53.7744 42.6572 +96.1921 54.7526 43.4331 +96.3021 55.8276 44.2859 +95.5967 56.4367 44.7691 +95.7577 57.565 45.6641 +96.4525 59.0375 46.8322 +95.7912 59.6947 47.3534 +96.2884 61.0868 48.4578 +95.6814 61.7926 49.0177 +95.679 62.8977 49.8943 +96.2674 64.4143 51.0974 +95.5462 65.0701 51.6175 +96.1659 66.6552 52.875 +95.4198 67.3101 53.3945 +95.2562 68.3834 54.2459 +95.8073 69.9937 55.5233 +95.6769 71.1314 56.4258 +95.5283 72.2726 57.331 +95.4329 73.4721 58.2826 +95.2473 74.6203 59.1934 +95.6741 76.2745 60.5056 +95.5155 77.4892 61.4692 +95.1994 78.5937 62.3453 +94.866 79.6999 63.2228 +95.2582 81.443 64.6056 +95.0165 82.6738 65.5819 +95.351 84.435 66.979 +95.063 85.6744 67.9622 +94.5596 86.7383 68.8061 +92.8828 86.7211 68.7924 +92.1677 87.5946 69.4854 +91.629 88.6475 70.3206 +91.6964 90.3131 71.6419 +91.7951 92.0476 73.0178 +91.8012 93.7289 74.3515 +91.8972 95.5418 75.7896 +92.0191 97.4259 77.2842 +91.6945 98.8753 78.4339 +91.8672 100.901 80.0411 +91.4281 102.296 81.1473 +91.4746 104.272 82.7152 +91.2044 105.933 84.0328 +91.0144 107.729 85.4572 +90.7913 109.529 86.8853 +91.2872 112.26 89.0518 +90.8282 113.877 90.3338 +92.1165 117.766 93.4194 +93.2734 121.615 96.4727 +93.0318 123.734 98.1532 +93.2 126.468 100.322 +91.3938 126.555 100.391 +92.6471 130.944 103.873 +92.8074 133.913 106.228 +92.9554 136.964 108.648 +92.7653 139.609 110.746 +92.4325 142.123 112.74 +92.4522 145.273 115.239 +92.4086 148.435 117.748 +91.8711 150.899 119.703 +92.2998 155.072 123.013 +92.0204 158.192 125.487 +90.987 160.103 127.004 +91.7522 165.318 131.14 +91.7437 169.328 134.322 +91.8823 173.784 137.856 +91.5913 177.602 140.885 +90.8557 180.701 143.343 +89.1978 182.046 144.41 +87.4118 183.162 145.295 +89.9171 193.544 153.531 +90.6619 200.576 159.11 +89.0754 202.671 160.771 +86.6559 202.9 160.953 +83.8054 202.07 160.294 +81.6116 202.784 160.861 +78.7942 201.911 160.168 +76.883 203.344 161.305 +73.9811 202.129 160.341 +71.807 202.854 160.916 +69.1047 202.05 160.278 +67.0017 202.97 161.008 +64.2545 201.9 160.16 +62.1198 202.713 160.804 +59.4096 201.603 159.924 +57.2916 202.461 160.604 +54.7431 201.771 160.057 +52.6331 202.675 160.774 +50.011 201.566 159.894 +47.9644 202.748 160.832 +45.409 201.756 160.045 +43.292 202.678 160.776 +40.7668 201.651 159.962 +38.6522 202.619 160.73 +36.1433 201.479 159.825 +33.8585 201.485 159.83 +31.5642 201.398 159.761 +29.4102 202.229 160.42 +26.9788 201.097 159.523 +24.8432 202.132 160.344 +22.4339 200.89 159.358 +20.2817 201.894 160.155 +17.9553 201.166 159.577 +15.7688 201.984 160.226 +13.4608 201.224 159.623 +11.2625 202.091 160.311 +8.94474 200.673 159.186 +6.7458 201.823 160.098 +4.47131 200.686 159.197 +2.25057 202.041 160.271 +1.56933e-14 200.795 159.283 +-2.24621 201.649 159.96 +-4.48178 201.156 159.569 +-6.7458 201.823 160.098 +-8.93776 200.516 159.062 +-11.2494 201.857 160.125 +-13.4503 201.068 159.499 +-15.7566 201.828 160.103 +-17.9274 200.853 159.329 +-20.2503 201.582 159.907 +-22.4077 200.656 159.172 +-24.7857 201.664 159.972 +-26.937 200.786 159.275 +-29.2404 201.061 159.494 +-31.4057 200.387 158.959 +-33.8585 201.485 159.83 +-35.9484 200.392 158.963 +-38.3713 201.147 159.562 +-40.3601 199.639 158.366 +-42.9949 201.286 159.673 +-44.9054 199.519 158.271 +-47.4359 200.514 159.06 +-49.5913 199.875 158.553 +-52.0151 200.295 158.886 +-54.0778 199.319 158.112 +-56.8803 201.007 159.451 +-58.9147 199.924 158.592 +-61.4895 200.656 159.172 +-63.4803 199.468 158.23 +-66.2005 200.543 159.083 +-68.1729 199.326 158.118 +-71.0052 200.589 159.119 +-72.9336 199.267 158.071 +-75.6901 200.188 158.801 +-77.9171 199.663 158.385 +-80.7395 200.617 159.142 +-82.7857 199.61 158.343 +-85.7992 200.895 159.362 +-87.7732 199.708 158.42 +-90.495 200.207 158.817 +-92.7901 199.729 158.437 +-95.9218 200.995 159.441 +-97.9061 199.819 158.509 +-100.788 200.454 159.013 +-102.942 199.612 158.344 +-105.965 200.421 158.986 +-108.076 199.473 158.234 +-111.291 200.522 159.066 +-113.48 199.682 158.4 +-116.321 199.968 158.627 +-118.629 199.307 158.103 +-120.801 198.417 157.397 +-124.41 199.838 158.523 +-123.82 194.562 154.338 +-126.845 195.034 154.713 +-129.982 195.62 155.177 +-137.555 202.678 160.777 +-141.239 203.796 161.663 +-143.649 203.028 161.054 +-144.231 199.719 158.43 +-144.25 195.74 155.273 +-145.105 192.992 153.093 +-146.477 190.985 151.501 +-151.002 193.049 153.138 +-157.704 197.723 156.846 +-589.848 725.365 575.404 +-164.427 198.362 157.353 +-167.127 197.819 156.922 +-169.491 196.863 156.164 +-169.582 193.308 153.344 +-178.44 199.65 158.374 +-608.402 668.232 530.083 +-615 663.16 526.059 +-616.95 653.199 518.157 +-623.3 648.018 514.047 +-625.198 638.325 506.358 +-631.977 633.717 502.703 +-633.907 624.345 495.269 +-142.352 137.72 109.248 +-142.1 135.05 107.13 +-143.792 134.253 106.498 +-144.048 132.133 104.816 +-143.415 129.252 102.53 +-143.192 126.799 100.584 +-143.462 124.825 99.0189 +-144.239 123.32 97.8251 +-149.289 125.423 99.4931 +-677.134 559.023 443.451 +-701.466 569.08 451.429 +-708.199 564.598 447.874 +-715.309 560.4 444.543 +-715.39 550.766 436.901 +-723.656 547.487 434.3 +-724.431 538.582 427.236 +-732.597 535.212 424.563 +-738.015 529.812 420.279 +-734.153 517.879 410.813 +-727.311 504.119 399.898 +-730.559 497.534 394.674 +-732.423 490.078 388.76 +-740.535 486.815 386.171 +-742.766 479.69 380.52 +-749.48 475.482 377.181 +-752.791 469.12 372.135 +-759.248 464.727 368.65 +-762.413 458.327 363.573 +-769.485 454.275 360.359 +-772.506 447.832 355.248 +-779.488 443.685 351.958 +-783.098 437.611 347.14 +-790.973 433.903 344.198 +-793.798 427.414 339.051 +-801.265 423.417 335.88 +-804.199 417.014 330.801 +-812.085 413.165 327.747 +-382.562 190.939 151.464 +-386.371 189.146 150.042 +-384.967 184.819 146.61 +-382.125 179.88 142.692 +-2823.13 1302.82 1033.47 +-382.61 173.061 137.283 +-381.738 169.204 134.223 +-382.384 166.057 131.726 +-384.746 163.66 129.825 +-902.814 376.077 298.328 +-137.043 55.8906 44.3358 +-912.212 364.138 288.856 +-386.433 150.943 119.737 +-383.336 146.475 116.193 +-382.064 142.77 113.254 +-915.733 334.538 265.376 +-921.336 328.947 260.941 +-381.405 133.038 105.534 +-381.222 129.863 103.015 +-382.102 127.067 100.798 +-382.301 124.06 98.4123 +-380.98 120.591 95.6605 +-382.588 118.068 93.6587 +-381.181 114.634 90.9348 +-382.912 112.161 88.9728 +-380.669 108.547 86.106 +-381.581 105.862 83.9762 +-379.058 102.254 81.1143 +-380.562 99.7582 79.1343 +-381.374 97.0804 77.0101 +-380.342 93.9506 74.5274 +-380.131 91.0495 72.2261 +-378.83 87.9127 69.7377 +-381.909 85.795 68.0579 +-381.116 82.8039 65.6851 +-381.251 80.0328 63.4869 +-380.095 77.0113 61.0901 +-382.879 74.7888 59.3271 +-381.947 71.8391 56.9872 +-380.979 68.908 54.662 +-382.025 66.3515 52.6341 +-381.282 63.4929 50.3665 +-382.563 60.9775 48.371 +-381.362 58.0757 46.0692 +-381.503 55.3948 43.9426 +-381.515 52.7029 41.8071 +-381.199 49.9762 39.6442 +-381.346 47.3191 37.5364 +-380.079 44.5018 35.3015 +-381.55 42.0106 33.3254 +-379.922 39.1857 31.0845 +-380.939 36.6441 29.0684 +-379.048 33.8343 26.8394 +-379.51 31.2498 24.7893 +-379.843 28.654 22.7301 +-378.554 25.9468 20.5826 +-379.128 23.3762 18.5434 +-380.072 20.8216 16.5169 +-378.093 18.1172 14.3716 +-380.378 15.6177 12.3889 +-377.84 12.9243 10.2523 +-379.169 10.3734 8.22883 +-149.149 3.05979 2.42722 +-145.478 1.98941 1.57812 +-146.094 0.998844 0.792344 +96.7 0 0 +96.8963 0.66719 0.519518 +96.8852 1.33433 1.039 +96.8668 2.00137 1.5584 +96.841 2.66825 2.07768 +97.7069 3.36591 2.62092 +96.8671 4.00549 3.11894 +97.6176 4.71084 3.66817 +96.664 5.33325 4.15282 +97.5982 6.06052 4.71913 +97.4278 6.72541 5.23685 +96.5534 7.33548 5.71189 +96.5681 8.00824 6.23575 +97.2707 8.74431 6.8089 +97.1703 9.41371 7.33014 +97.0625 10.0824 7.85082 +96.9472 10.7503 8.37089 +96.7258 11.4058 8.88132 +97.2873 12.1577 9.46682 +97.1491 12.8271 9.98806 +97.0036 13.4955 10.5085 +96.7523 14.1486 11.017 +96.5921 14.8142 11.5353 +96.4246 15.4787 12.0527 +96.2497 16.142 12.5692 +96.0675 16.8041 13.0848 +96.7549 17.6246 13.7237 +96.6536 18.3086 14.2563 +96.3504 18.9543 14.7591 +96.2339 19.6368 15.2905 +96.7858 20.462 15.9331 +96.6521 21.1487 16.4678 +96.3184 21.7917 16.9684 +96.8408 22.6332 17.6237 +96.5868 23.2991 18.1423 +96.23 23.9396 18.6409 +96.9127 24.845 19.346 +96.6342 25.5114 19.8649 +97.1993 26.407 20.5622 +96.9035 27.0752 21.0825 +97.5401 28.0113 21.8114 +97.1329 28.6542 22.312 +96.8123 29.3219 22.832 +97.3217 30.2476 23.5528 +96.8907 30.887 24.0507 +96.6378 31.5831 24.5927 +97.2053 32.5556 25.35 +96.9332 33.2551 25.8947 +97.3839 34.2101 26.6382 +97.0019 34.8793 27.1594 +96.6124 35.5459 27.6784 +97.0279 36.5154 28.4333 +96.5305 37.1476 28.9256 +96.9214 38.1276 29.6887 +96.496 38.7935 30.2072 +96.6842 39.7115 30.922 +97.1242 40.7461 31.7276 +96.582 41.3756 32.2178 +96.9079 42.3833 33.0025 +96.4354 43.0489 33.5207 +96.6484 44.0269 34.2823 +96.244 44.7307 34.8303 +96.4313 45.7168 35.5981 +96.6041 46.7088 36.3706 +96.6775 47.6649 37.115 +96.1466 48.3287 37.632 +96.3632 49.3756 38.4471 +96.3972 50.3421 39.1997 +95.8367 51.0039 39.715 +95.9283 52.0193 40.5057 +96.0865 53.0851 41.3356 +96.147 54.1112 42.1346 +96.1921 55.1423 42.9374 +96.3021 56.2249 43.7804 +96.3154 57.2656 44.5908 +95.6784 57.9266 45.1055 +95.6645 58.9718 45.9194 +95.7912 60.1194 46.813 +95.7444 61.1739 47.6341 +95.6814 62.2323 48.4582 +95.679 63.3452 49.3248 +96.2674 64.8727 50.5142 +95.6217 65.5848 51.0687 +95.5667 66.7112 51.9458 +96.0886 68.2642 53.1551 +95.2562 68.87 53.6267 +95.1491 70.0075 54.5125 +95.6769 71.6376 55.7818 +95.5283 72.7869 56.6767 +95.3616 73.9396 57.5743 +95.2473 75.1513 58.5178 +95.7442 76.8735 59.8588 +95.4461 77.9838 60.7234 +95.1994 79.1529 61.6337 +94.866 80.267 62.5012 +95.3258 82.0809 63.9137 +94.9496 83.2029 64.7873 +95.4173 85.095 66.2606 +94.9317 86.1649 67.0937 +94.105 86.9357 67.694 +92.7543 87.2174 67.9133 +91.5317 87.6096 68.2186 +91.629 89.2783 69.518 +91.6342 90.8942 70.7763 +91.672 92.5788 72.088 +91.8621 94.4582 73.5514 +92.2582 96.5996 75.2188 +91.8406 97.9283 76.2535 +91.9884 99.8976 77.7869 +91.4607 101.17 78.7773 +91.6002 103.218 80.3722 +91.418 104.95 81.7208 +91.3721 106.884 83.2266 +91.18 108.693 84.6354 +91.227 110.838 86.3059 +90.6424 112.261 87.4136 +91.3051 115.29 89.7722 +90.7058 116.788 90.9389 +92.1918 121.061 94.2658 +93.3363 125.022 97.3506 +93.05 127.163 99.0174 +92.7234 129.31 100.689 +92.841 132.152 102.902 +92.8074 134.866 105.016 +93.0023 138.008 107.462 +92.7191 140.533 109.428 +92.4325 143.134 111.454 +92.4522 146.307 113.924 +92.3648 149.42 116.348 +92.2585 152.614 118.835 +92.004 155.674 121.219 +92.3107 159.82 124.446 +91.3937 161.964 126.116 +91.2737 165.626 128.967 +91.7046 170.46 132.731 +91.4996 174.293 135.716 +91.5164 178.72 139.163 +90.2326 180.738 140.735 +88.6961 182.31 141.959 +86.8164 183.209 142.659 +90.5327 196.257 152.818 +90.5952 201.855 157.178 +88.3266 202.397 157.599 +85.8944 202.548 157.717 +83.2492 202.157 157.413 +81.0703 202.872 157.97 +78.3264 202.14 157.4 +76.2581 203.126 158.167 +73.2093 201.444 156.857 +71.032 202.092 157.362 +68.5612 201.888 157.203 +66.3257 202.352 157.564 +63.7222 201.653 157.02 +61.6296 202.544 157.714 +58.9597 201.5 156.901 +56.8154 202.206 157.451 +54.3481 201.741 157.089 +52.1148 202.107 157.374 +49.6485 201.529 156.924 +47.4724 202.096 157.365 +45.0617 201.638 157.009 +42.8299 201.941 157.244 +40.4383 201.448 156.861 +38.2531 201.953 157.254 +35.8649 201.35 156.784 +33.7149 202.058 157.336 +31.3326 201.343 156.779 +29.1272 201.708 157.063 +26.8952 201.9 157.213 +24.6419 201.921 157.229 +22.2944 201.062 156.56 +19.9992 200.499 156.122 +17.7949 200.787 156.346 +15.6651 202.083 157.355 +13.3247 200.607 156.206 +11.1491 201.48 156.886 +8.8889 200.839 156.387 +6.67774 201.208 156.674 +4.44513 200.931 156.458 +2.22788 201.427 156.844 +1.55954e-14 200.961 156.482 +-2.23225 201.821 157.152 +-4.45385 201.325 156.765 +-6.68036 201.287 156.736 +-8.87843 200.602 156.202 +-11.136 201.243 156.701 +-13.3561 201.08 156.574 +-15.5857 201.059 156.558 +-17.7739 200.55 156.162 +-20.1169 201.679 157.041 +-22.2683 200.826 156.376 +-24.5749 201.372 156.801 +-26.7906 201.116 156.602 +-28.98 200.688 156.269 +-31.2595 200.873 156.413 +-33.5322 200.963 156.483 +-35.6701 200.256 155.933 +-37.987 200.549 156.161 +-40.188 200.202 155.89 +-42.5328 200.54 156.154 +-44.7665 200.317 155.98 +-47.1443 200.699 156.278 +-49.286 200.057 155.778 +-51.6562 200.329 155.989 +-53.8907 200.043 155.767 +-56.2527 200.203 155.892 +-58.4648 199.809 155.584 +-60.8592 200.012 155.743 +-63.1174 199.738 155.53 +-65.5244 199.907 155.661 +-67.7847 199.601 155.423 +-70.5242 200.647 156.237 +-72.4926 199.472 155.322 +-75.1221 200.1 155.811 +-77.4785 199.952 155.696 +-80.1982 200.69 156.271 +-82.4457 200.206 155.893 +-85.1328 200.752 156.319 +-87.122 199.637 155.45 +-90.0611 200.666 156.252 +-92.277 200.037 155.763 +-95.0113 200.503 156.125 +-96.9744 199.326 155.208 +-100.055 200.412 156.054 +-102.417 200.008 155.74 +-105.008 200.025 155.753 +-107.373 199.585 155.41 +-110.015 199.634 155.448 +-112.625 199.589 155.414 +-115.534 200.026 155.754 +-117.615 199.009 154.961 +-121.103 200.328 155.989 +-122.963 198.919 154.892 +-126.542 200.254 155.931 +-128.888 199.586 155.411 +-131.783 199.741 155.531 +-135.63 201.264 156.718 +-140.523 204.206 159.008 +-142.873 203.368 158.356 +-144.723 201.828 157.157 +-144.2 197.065 153.448 +-144.09 193.006 150.287 +-145.395 190.924 148.666 +-150.375 193.616 150.762 +-156.273 197.323 153.649 +-585.657 725.337 564.795 +-591.151 718.232 559.264 +-167.127 199.226 155.131 +-169.547 198.329 154.432 +-175.869 201.901 157.214 +-608.393 685.553 533.817 +-611.596 676.52 526.783 +-617.175 670.241 521.894 +-619.865 660.955 514.663 +-625.286 654.708 509.799 +-628.729 646.497 503.406 +-634.254 640.527 498.757 +-637.517 632.369 492.404 +-141.975 138.333 107.715 +-143.054 136.924 106.618 +-143.856 135.269 105.329 +-144.242 133.253 103.76 +-142.824 129.635 100.942 +-142.728 127.287 99.1144 +-144.198 126.359 98.3913 +-149.17 128.444 100.015 +-678.179 573.815 446.811 +-685.876 570.269 444.049 +-695.145 567.965 442.255 +-710.652 570.586 444.296 +-716.794 565.559 440.382 +-720.098 558.335 434.757 +-727.756 554.507 431.776 +-730.162 546.705 425.701 +-736.985 542.249 422.231 +-737.793 533.422 415.358 +-726.721 516.285 402.014 +-726.562 507.183 394.927 +-733.049 502.782 391.5 +-736.757 496.486 386.597 +-742.68 491.699 382.87 +-746.238 485.362 377.935 +-752.744 480.95 374.5 +-755.921 474.423 369.417 +-762.558 470.075 366.031 +-766.538 464.085 361.368 +-772.36 459.217 357.577 +-776.686 453.46 353.094 +-782.643 448.651 349.349 +-786.843 442.832 344.819 +-793.185 438.213 341.222 +-797.507 432.466 336.747 +-803.752 427.754 333.077 +-808.452 422.203 328.755 +-816.11 418.167 325.613 +-383.827 192.933 150.231 +-382.724 188.695 146.93 +-382.494 184.939 144.006 +-381.697 180.957 140.905 +-381.788 177.441 138.167 +-382.956 174.451 135.839 +-383.914 171.38 133.448 +-382.646 167.353 130.312 +-383.076 164.11 127.787 +-908.2 381.012 296.682 +-136.954 56.2518 43.8014 +-2919.38 1173.66 913.886 +-383.748 150.962 117.549 +-382.886 147.345 114.733 +-381.794 143.684 111.882 +-384.365 141.416 110.116 +-926.159 333.022 259.313 +-382.227 134.273 104.554 +-381.956 131.038 102.035 +-383.39 128.404 99.9838 +-381.747 124.763 97.1484 +-382.278 121.863 94.8906 +-382.402 118.85 92.5449 +-382.301 115.789 90.1611 +-383.848 113.235 88.1724 +-380.482 109.266 85.0814 +-381.204 106.51 82.9354 +-381.517 103.65 80.7089 +-379.614 100.218 78.0364 +-379.186 97.2103 75.6944 +-379.389 94.3824 73.4924 +-382.235 92.2048 71.7968 +-379.117 88.6061 68.9946 +-381.429 86.2966 67.1963 +-380.73 83.3086 64.8697 +-379.029 80.1329 62.3968 +-379.708 77.4802 60.3313 +-382.199 75.1873 58.5459 +-381.461 72.2582 56.2651 +-382.927 69.7533 54.3145 +-380.56 66.5675 51.8339 +-382.162 64.0923 49.9066 +-382.269 61.3642 47.7822 +-381.166 58.4588 45.5199 +-380.52 55.6452 43.329 +-380.333 52.9134 41.2019 +-381.495 50.3709 39.2221 +-381.742 47.7052 37.1464 +-381.365 44.97 35.0166 +-379.867 42.1228 32.7996 +-380.12 39.4851 30.7457 +-380.244 36.8375 28.6841 +-381.73 34.3163 26.7209 +-379.012 31.4309 24.4742 +-379.744 28.8504 22.4648 +-380.148 26.2414 20.4333 +-379.626 23.5735 18.3559 +-378.476 20.8817 16.2599 +-378.692 18.2749 14.2301 +-379.379 15.6875 12.2153 +-379.039 13.0575 10.1675 +-380.668 10.4885 8.16704 +-147.25 3.04232 2.36895 +-145.478 2.00356 1.56011 +-145.594 1.0025 0.780616 +96.7 0 0 +96.9963 0.672543 0.514008 +96.8852 1.34365 1.02692 +96.9668 2.01742 1.54187 +96.841 2.68689 2.05352 +97.0076 3.36515 2.5719 +96.8671 4.03347 3.08268 +96.8191 4.70493 3.59587 +96.664 5.3705 4.10454 +96.8007 6.05298 4.62614 +97.4278 6.77238 5.17596 +97.5488 7.46286 5.70368 +96.5681 8.06417 6.16325 +97.37 8.81436 6.7366 +97.1703 9.47945 7.24491 +97.2607 10.1735 7.77539 +96.9472 10.8254 8.27357 +96.9236 11.5089 8.79597 +97.2873 12.2426 9.35675 +96.4587 12.8249 9.8018 +97.0036 13.5898 10.3863 +96.8506 14.2618 10.9 +96.5921 14.9176 11.4012 +96.5226 15.6026 11.9247 +96.2497 16.2547 12.4231 +96.1652 16.9387 12.9458 +96.7549 17.7477 13.5642 +96.6536 18.4365 14.0906 +96.3504 19.0867 14.5875 +96.4275 19.8136 15.1431 +96.7858 20.6049 15.7478 +96.6521 21.2964 16.2763 +96.3184 21.9438 16.7711 +97.0326 22.8365 17.4534 +96.5868 23.4619 17.9313 +96.4208 24.1546 18.4608 +96.9127 25.0186 19.1211 +97.4877 25.9165 19.8073 +97.1993 26.5914 20.3232 +96.9035 27.2643 20.8374 +97.5401 28.2069 21.5579 +97.3202 28.9099 22.0951 +96.8123 29.5267 22.5665 +97.4147 30.488 23.3012 +96.8907 31.1027 23.771 +97.5617 32.1078 24.5392 +97.2053 32.783 25.0552 +96.9332 33.4874 25.5936 +97.3839 34.449 26.3285 +97.0019 35.1229 26.8436 +96.6124 35.7941 27.3566 +97.1182 36.8047 28.1289 +96.5305 37.407 28.5893 +97.0109 38.4293 29.3706 +96.496 39.0645 29.856 +96.8616 40.0621 30.6185 +97.1242 41.0307 31.3587 +96.7578 41.7404 31.9012 +96.9079 42.6793 32.6188 +96.4354 43.3496 33.131 +96.6484 44.3344 33.8837 +96.9333 45.3657 34.6719 +96.4313 46.0361 35.1843 +96.6894 47.0765 35.9794 +96.6775 47.9978 36.6835 +96.231 48.7089 37.2271 +96.3632 49.7204 38.0001 +96.564 50.7814 38.811 +95.8367 51.3601 39.2533 +96.0931 52.4727 40.1036 +96.0865 53.4559 40.855 +96.2285 54.5353 41.68 +96.1921 55.5274 42.4382 +96.3824 56.6648 43.3075 +96.3154 57.6656 44.0724 +95.7577 58.3795 44.6181 +95.6645 59.3837 45.3855 +95.8695 60.5887 46.3065 +95.7444 61.6012 47.0803 +96.3759 63.1218 48.2425 +95.679 63.7876 48.7513 +95.6591 64.913 49.6114 +95.6217 66.0429 50.475 +95.6416 67.2298 51.3821 +96.0886 68.741 52.5371 +95.9935 69.8876 53.4134 +95.1491 70.4964 53.8787 +95.7494 72.1926 55.175 +95.5283 73.2952 56.0177 +95.4329 74.5117 56.9475 +95.2473 75.6761 57.8374 +95.6741 77.3537 59.1196 +95.4461 78.5285 60.0174 +95.2683 79.7637 60.9615 +94.866 80.8276 61.7746 +95.2582 82.5954 63.1257 +94.9496 83.784 64.0341 +95.086 85.3913 65.2625 +94.9317 86.7666 66.3136 +93.3906 86.8779 66.3987 +92.7543 87.8265 67.1237 +91.4044 88.0983 67.3314 +91.629 89.9018 68.7098 +91.6964 91.591 70.0008 +91.672 93.2253 71.2499 +91.8621 95.1179 72.6963 +92.2582 97.2742 74.3443 +91.5432 98.2936 75.1234 +91.9884 100.595 76.8826 +91.4607 101.876 77.8614 +91.6002 103.939 79.4378 +91.4746 105.748 80.8205 +91.3721 107.63 82.259 +91.6215 109.982 84.0564 +91.227 111.612 85.3025 +91.0186 113.514 86.7562 +91.3051 116.095 88.7285 +90.9148 117.875 90.0887 +92.1918 121.906 93.1698 +93.4378 126.032 96.3232 +93.05 128.051 97.8661 +93.0681 130.697 99.8882 +92.841 133.075 101.706 +93.1891 136.366 104.221 +93.0023 138.972 106.213 +92.7653 141.584 108.209 +92.4325 144.134 110.158 +92.0952 146.759 112.165 +92.3648 150.464 114.996 +92.2585 153.68 117.454 +92.004 156.762 119.809 +92.1448 160.647 122.779 +91.3937 163.095 124.649 +90.9547 166.199 127.022 +91.7046 171.65 131.188 +91.4996 175.51 134.138 +91.5164 179.968 137.545 +89.8295 181.187 138.477 +88.6961 183.583 140.308 +86.7814 184.414 140.943 +90.5327 197.627 151.042 +90.495 203.04 155.179 +88.3266 203.81 155.767 +85.6088 203.285 155.366 +83.2492 203.569 155.583 +80.7696 203.531 155.554 +78.3264 203.552 155.57 +75.7469 203.173 155.28 +73.2093 202.85 155.034 +70.9785 203.35 155.416 +68.5612 203.298 155.375 +66.0252 202.842 155.028 +63.7222 203.061 155.195 +61.4195 203.264 155.349 +58.9597 202.907 155.077 +56.599 202.842 155.028 +54.3481 203.15 155.263 +52.1148 203.519 155.544 +49.6485 202.936 155.099 +47.2901 202.726 154.939 +45.0617 203.047 155.184 +42.7968 203.194 155.297 +40.4383 202.855 155.037 +38.1348 202.735 154.946 +35.8649 202.756 154.961 +33.5844 202.682 154.905 +31.3326 202.749 154.957 +29.0253 202.406 154.694 +26.8952 203.31 155.385 +24.5461 202.541 154.797 +22.2944 202.466 154.74 +19.9992 201.899 154.307 +17.7949 202.189 154.528 +15.604 202.701 154.919 +13.3247 202.008 154.39 +11.1099 202.173 154.516 +8.8889 202.242 154.568 +6.65418 201.899 154.306 +4.44513 202.334 154.639 +2.22439 202.516 154.778 +1.55954e-14 202.365 154.663 +-2.22439 202.516 154.778 +-4.45385 202.731 154.943 +-6.68297 202.773 154.974 +-8.87843 202.003 154.386 +-11.1404 202.728 154.94 +-13.3561 202.484 154.754 +-15.5857 202.463 154.738 +-17.7739 201.951 154.346 +-20.0541 202.454 154.731 +-22.2683 202.228 154.558 +-24.4886 202.066 154.434 +-26.7906 202.521 154.782 +-29.0027 202.248 154.573 +-31.2595 202.276 154.595 +-33.4408 201.815 154.242 +-35.6701 201.655 154.12 +-37.9575 201.792 154.225 +-40.188 201.6 154.078 +-42.4007 201.314 153.859 +-44.7665 201.716 154.166 +-46.9621 201.32 153.864 +-49.286 201.454 153.967 +-51.4768 201.028 153.641 +-53.8907 201.44 153.956 +-56.2527 201.601 154.079 +-58.4648 201.204 153.775 +-60.6958 200.868 153.519 +-63.1174 201.133 153.721 +-65.6246 201.611 154.086 +-67.7847 200.995 153.616 +-70.2837 201.36 153.894 +-72.4926 200.865 153.516 +-74.9516 201.04 153.65 +-77.4785 201.349 153.886 +-79.9577 201.485 153.99 +-82.4457 201.604 154.081 +-84.879 201.552 154.041 +-87.122 201.031 153.643 +-89.7607 201.392 153.919 +-92.277 201.435 153.952 +-94.6961 201.234 153.798 +-96.9744 200.718 153.404 +-99.6883 201.073 153.675 +-102.417 201.405 153.929 +-105.008 201.422 153.942 +-107.373 200.978 153.603 +-110.055 201.101 153.696 +-112.625 200.983 153.607 +-115.202 200.845 153.501 +-117.615 200.398 153.16 +-120.328 200.437 153.189 +-122.963 200.309 153.091 +-125.605 200.159 152.977 +-128.888 200.98 153.604 +-131.645 200.924 153.562 +-135.63 202.67 154.896 +-140.189 205.143 156.785 +-142.873 204.788 156.515 +-144.379 202.753 154.959 +-144.2 198.442 151.664 +-143.887 194.08 148.33 +-145.395 192.257 146.937 +-149.591 193.952 148.233 +-156.273 198.701 151.863 +-586.677 731.675 559.202 +-591.151 723.248 552.761 +-167.347 200.882 153.53 +-169.547 199.714 152.637 +-604.186 698.461 533.817 +-608.393 690.341 527.611 +-612.642 682.409 521.549 +-617.175 674.922 515.826 +-621.53 667.359 510.047 +-625.286 659.281 503.872 +-630.007 652.336 498.564 +-634.254 645.001 492.958 +-638.825 638.091 487.677 +-141.975 139.299 106.463 +-143.245 138.064 105.519 +-143.856 136.214 104.105 +-143.723 133.701 102.184 +-142.824 130.54 99.7686 +-143.192 128.593 98.2803 +-144.198 127.241 97.2474 +-149.981 130.044 99.3897 +-678.179 577.823 441.616 +-685.257 573.733 438.49 +-695.145 571.932 437.113 +-710.091 574.117 438.784 +-716.794 569.509 435.262 +-723.165 564.629 431.532 +-727.756 558.379 426.756 +-730.815 551.015 421.127 +-736.985 546.036 417.322 +-736.982 536.557 410.078 +-726.721 519.89 397.34 +-728.584 512.147 391.421 +-733.049 506.294 386.948 +-737.898 500.727 382.694 +-742.68 495.133 378.418 +-747.396 489.509 374.12 +-752.744 484.309 370.146 +-757.33 478.626 365.802 +-762.558 473.358 361.776 +-767.014 467.617 357.388 +-772.36 462.424 353.42 +-777.41 457.052 349.313 +-782.643 451.784 345.287 +-788.552 446.894 341.551 +-793.185 441.273 337.254 +-798.99 436.297 333.451 +-803.752 430.741 329.205 +-809.953 425.94 325.536 +-816.11 421.088 321.827 +-384.586 194.665 148.778 +-382.724 190.012 145.222 +-382.835 186.397 142.458 +-381.697 182.221 139.267 +-382.477 179.003 136.807 +-382.956 175.669 134.26 +-383.392 172.342 131.717 +-382.646 168.521 128.797 +-382.901 165.18 126.243 +-908.2 383.673 293.232 +-136.511 56.4612 43.152 +-2919.38 1181.85 903.261 +-383.032 151.732 115.965 +-382.886 148.374 113.399 +-381.794 144.687 110.581 +-384.365 142.404 108.836 +-928.251 336.106 256.878 +-382.227 135.211 103.339 +-383.148 132.365 101.163 +-383.39 129.301 98.8213 +-381.747 125.634 96.0189 +-382.278 122.714 93.7874 +-381.843 119.506 91.3353 +-382.301 116.598 89.1129 +-382.912 113.748 86.9347 +-380.482 110.029 84.0923 +-380.639 107.095 81.8497 +-381.517 104.374 79.7706 +-380.847 101.246 77.3799 +-379.186 97.8892 74.8143 +-380.533 95.3284 72.8572 +-382.235 92.8487 70.962 +-380.651 89.5856 68.4681 +-381.429 86.8993 66.4151 +-380.827 83.9119 64.1318 +-379.029 80.6925 61.6713 +-380.288 78.1408 59.7211 +-382.199 75.7125 57.8652 +-382.336 72.9298 55.7385 +-382.927 70.2404 53.683 +-382.318 67.342 51.4679 +-382.162 64.54 49.3263 +-380.799 61.5552 47.0451 +-381.166 58.8671 44.9907 +-381.503 56.1786 42.936 +-380.333 53.283 40.7229 +-380.016 50.5259 38.6157 +-381.742 48.0384 36.7145 +-380.969 45.2371 34.5736 +-379.867 42.417 32.4183 +-380.318 39.7816 30.4041 +-380.244 37.0948 28.3506 +-379.843 34.385 26.2796 +-379.012 31.6504 24.1897 +-379.345 29.0214 22.1803 +-380.148 26.4247 20.1958 +-379.626 23.7381 18.1425 +-378.476 21.0275 16.0708 +-377.395 18.3396 14.0165 +-379.379 15.797 12.0733 +-378.14 13.1175 10.0254 +-380.668 10.5617 8.07209 +-146.75 3.05318 2.33347 +-145.478 2.01756 1.54197 +-145.994 1.01228 0.773659 +97.1 0 0 +96.8963 0.676454 0.507396 +96.9852 1.35425 1.0158 +96.6669 2.02497 1.51889 +97.0408 2.71089 2.03339 +96.8078 3.38124 2.53621 +97.8657 4.10297 3.07757 +96.8191 4.73718 3.55327 +96.8635 5.41847 4.06429 +97.5982 6.14468 4.60901 +97.6271 6.83274 5.12511 +97.4493 7.50635 5.63037 +97.5626 8.20304 6.15295 +97.2707 8.86573 6.65002 +97.3688 9.56394 7.17374 +96.9633 10.212 7.65983 +97.1453 10.9219 8.19231 +96.7258 11.5642 8.67409 +96.6947 12.2514 9.18958 +96.2615 12.8864 9.66583 +96.3142 13.5857 10.1904 +96.7523 14.345 10.76 +96.6903 15.0352 11.2776 +96.3266 15.6777 11.7596 +96.3475 16.3828 12.2884 +96.0675 17.0375 12.7795 +96.1703 17.7615 13.3226 +96.6536 18.5629 13.9237 +96.4474 19.2368 14.4292 +96.2339 19.9095 14.9337 +96.8824 20.7669 15.5768 +96.5558 21.421 16.0675 +96.4145 22.1163 16.589 +96.8408 22.9475 17.2125 +96.778 23.6695 17.754 +97.1838 24.5126 18.3864 +97.0078 25.2148 18.9131 +96.6342 25.8656 19.4013 +97.1993 26.7737 20.0824 +96.8093 27.4245 20.5706 +97.6341 28.4276 21.323 +97.1329 29.0521 21.7914 +96.9056 29.7577 22.3207 +97.2286 30.6383 22.9812 +96.9834 31.3458 23.5119 +97.4693 32.2972 24.2256 +97.2974 33.0389 24.7819 +96.8415 33.685 25.2665 +97.4753 34.7177 26.0411 +97.0019 35.3637 26.5256 +96.703 36.0733 27.0579 +97.0279 37.0225 27.7699 +96.7102 37.7335 28.3032 +97.7268 38.9783 29.2369 +97.2979 39.6591 29.7476 +97.6599 40.6692 30.5052 +97.2125 41.3494 31.0154 +97.3729 42.2937 31.7237 +96.9953 43.0106 32.2615 +96.4354 43.6467 32.7386 +96.8216 44.7182 33.5423 +96.9333 45.6767 34.2613 +96.517 46.3928 34.7984 +96.6894 47.3992 35.5533 +96.7623 48.3691 36.2808 +96.231 49.0428 36.7861 +96.3632 50.0612 37.55 +96.564 51.1294 38.3513 +96.0026 51.8016 38.8554 +95.9283 52.7417 39.5606 +95.5131 53.5011 40.1302 +95.4958 54.4911 40.8728 +96.273 55.9549 41.9708 +96.3021 57.0056 42.7589 +95.6765 57.6757 43.2615 +95.6784 58.731 44.053 +95.7433 59.84 44.8849 +95.7912 60.9542 45.7207 +95.7444 62.0234 46.5226 +95.6814 63.0965 47.3275 +95.7556 64.2763 48.2125 +95.583 65.3059 48.9848 +96.3009 66.9678 50.2314 +95.6416 67.6906 50.7735 +95.4941 68.7839 51.5936 +95.9935 70.3667 52.7808 +95.8805 71.5252 53.6497 +95.6769 72.6323 54.4802 +96.1757 74.2977 55.7294 +95.4329 75.0224 56.2729 +95.318 76.2514 57.1948 +95.6741 77.8839 58.4193 +95.4461 79.0667 59.3065 +95.1306 80.1945 60.1524 +94.866 81.3816 61.0429 +95.3933 83.2799 62.4668 +94.9496 84.3583 63.2756 +94.4896 85.4374 64.0851 +94.9973 87.4222 65.5738 +92.8061 86.9262 65.2018 +92.3043 87.9997 66.007 +91.9769 89.2581 66.9509 +91.7549 90.6428 67.9895 +91.9454 92.4692 69.3594 +91.7951 93.9899 70.5001 +92.2882 96.2138 72.1682 +92.3184 98.005 73.5117 +91.9596 99.4169 74.5708 +91.5182 100.767 75.5837 +91.693 102.835 77.1348 +91.6002 104.651 78.4969 +91.5312 106.539 79.913 +91.428 108.434 81.3345 +91.3456 110.402 82.8106 +91.336 112.512 84.3929 +90.9648 114.224 85.6776 +91.4641 117.094 87.8299 +91.0192 118.819 89.1242 +92.2433 122.81 92.1178 +90.9509 123.518 92.6489 +93.05 128.929 96.707 +92.9696 131.453 98.6007 +92.8895 134.056 100.553 +92.8551 136.809 102.618 +93.0493 139.995 105.007 +92.7653 142.554 106.927 +92.7957 145.692 109.281 +92.7645 148.84 111.642 +92.4086 151.567 113.688 +92.2155 154.661 116.008 +92.1308 158.054 118.553 +92.1034 161.675 121.27 +91.4344 164.286 123.228 +91.792 168.879 126.673 +91.7437 172.901 129.69 +91.4996 176.713 132.549 +91.5164 181.202 135.916 +88.8032 180.345 135.273 +88.6961 184.842 138.646 +91.0189 194.745 146.075 +90.6011 199.132 149.365 +88.4254 199.757 149.834 +88.3918 205.358 154.036 +83.5463 199.747 149.827 +83.2801 205.04 153.797 +78.815 199.967 149.992 +78.2971 204.87 153.67 +73.9292 199.657 149.759 +73.5125 205.086 153.832 +69.3484 200.042 150.048 +68.6388 204.923 153.709 +64.4729 199.431 149.589 +63.7948 204.686 153.531 +59.9254 199.678 149.775 +59.1621 204.999 153.766 +55.257 199.391 149.559 +54.5144 205.168 153.893 +50.7192 199.427 149.586 +49.6485 204.327 153.262 +46.2878 199.79 149.859 +45.0617 204.438 153.346 +41.757 199.616 149.728 +40.5947 205.036 153.794 +37.3662 200.011 150.024 +35.8927 204.304 153.245 +32.8926 199.867 149.917 +31.4789 205.092 153.836 +28.4253 199.581 149.702 +26.8847 204.625 153.485 +23.9614 199.071 149.32 +22.2944 203.854 152.907 +19.5599 198.817 149.129 +17.8577 204.293 153.236 +15.2316 199.22 149.431 +13.3718 204.112 153.101 +10.8569 198.923 149.208 +8.88541 203.548 152.678 +6.50235 198.644 148.999 +4.44513 203.721 152.807 +2.17291 199.185 149.405 +1.55954e-14 203.752 152.831 +-2.16593 198.545 148.925 +-4.4556 204.201 153.167 +-6.49974 198.564 148.939 +-8.90984 204.107 153.097 +-10.8481 198.763 149.088 +-13.3509 203.792 152.861 +-15.2194 199.06 149.311 +-17.8367 204.054 153.057 +-18.9243 192.357 144.284 +-22.277 203.694 152.787 +-23.0988 191.904 143.944 +-26.7593 203.67 152.769 +-28.3121 198.786 149.106 +-31.2473 203.583 152.704 +-32.6054 198.123 148.608 +-35.6561 202.958 152.235 +-37.0706 198.428 148.837 +-40.188 202.982 152.253 +-41.3939 197.88 148.426 +-44.7839 203.178 152.4 +-45.8869 198.059 148.561 +-49.2669 202.757 152.084 +-50.1809 197.31 147.999 +-53.9115 202.899 152.191 +-54.7592 197.595 148.212 +-58.4873 202.661 152.012 +-59.5286 198.355 148.783 +-63.1416 202.59 151.959 +-63.7968 197.339 148.021 +-67.8365 202.527 151.912 +-68.6268 197.96 148.486 +-72.7407 202.934 152.217 +-73.1908 197.663 148.263 +-77.4493 202.652 152.006 +-77.7926 197.374 148.047 +-82.5075 203.138 152.37 +-82.6579 197.623 148.233 +-87.415 203.09 152.334 +-87.2905 197.193 147.911 +-92.277 202.815 152.128 +-92.2446 197.367 148.042 +-97.3686 202.915 152.203 +-97.5626 198.134 148.617 +-102.343 202.638 151.995 +-102.368 197.703 148.293 +-107.373 202.356 151.784 +-107.383 197.563 148.189 +-112.666 202.434 151.842 +-112.257 197.054 147.807 +-117.953 202.353 151.781 +-117.573 197.189 147.908 +-123.577 202.688 152.033 +-122.972 197.307 147.997 +-128.752 202.143 151.624 +-128.366 197.263 147.964 +-135.771 204.27 153.219 +-134.034 197.48 148.126 +-142.97 206.332 154.766 +-142.261 201.149 150.878 +-144.25 199.871 149.919 +-144.344 196.03 147.038 +-145.55 193.78 145.351 +-145.516 189.961 142.486 +-156.485 200.335 150.268 +-152.271 191.206 143.42 +-591.151 728.206 546.214 +-164.643 198.991 149.259 +-170.274 201.946 151.476 +-1855.83 2160.12 1620.26 +-608.393 695.073 521.361 +-623.675 699.461 524.653 +-616.881 679.224 509.473 +-632.713 684.024 513.074 +-625.286 663.8 497.904 +-143.059 149.145 111.871 +-633.7 648.854 486.693 +-143.49 144.307 108.242 +-142.226 140.502 105.388 +-143.436 139.195 104.408 +-143.92 137.208 102.917 +-143.853 134.739 101.065 +-142.89 131.496 98.6325 +-148.626 134.388 100.802 +-144.198 128.113 96.0955 +-686.129 599 449.299 +-677.77 581.432 436.122 +-694.274 585.267 438.998 +-696.881 577.291 433.015 +-703.853 572.974 429.778 +-715.804 572.621 429.512 +-714.82 561.939 421.5 +-727.109 561.707 421.326 +-730.815 554.792 416.139 +-737.205 549.942 412.501 +-732.19 536.722 402.586 +-727.91 524.31 393.275 +-741.241 524.615 393.504 +-732.37 509.292 382.011 +-750.825 512.992 384.786 +-741.991 498.064 373.588 +-761.208 501.973 376.521 +-752.666 487.578 365.724 +-770.556 490.323 367.782 +-762.085 476.306 357.269 +-781.136 479.491 359.657 +-772.36 465.594 349.233 +-791.719 468.654 351.529 +-782.158 454.599 340.986 +-802.392 457.855 343.429 +-792.939 444.16 333.156 +-813 446.99 335.279 +-803.503 433.559 325.205 +-824.796 436.72 327.575 +-815.356 423.582 317.721 +-835.464 425.782 319.372 +-383.657 191.78 143.851 +-383.603 188.05 141.053 +-383.24 184.212 138.174 +-384.114 181.002 135.766 +-383.909 177.313 132.999 +-382.173 172.972 129.743 +-382.559 169.638 127.242 +-382.198 166.006 124.518 +-908.465 386.416 289.844 +-383.455 159.685 119.777 +-911.411 371.495 278.652 +-136.835 54.5767 40.937 +-383.066 149.461 112.108 +-382.606 145.989 109.504 +-386.087 144.022 108.029 +-382.912 139.597 104.709 +-383.05 136.431 102.334 +-961.079 334.298 250.751 +-382.562 129.905 97.4396 +-382.301 126.678 95.019 +-382.741 123.706 92.7893 +-382.122 120.413 90.3195 +-382.301 117.397 88.0573 +-380.008 113.659 85.2534 +-380.669 110.837 83.137 +-381.77 108.149 81.1209 +-381.706 105.141 78.8647 +-381.131 102.016 76.5203 +-381.279 99.1041 74.3362 +-378.721 95.5242 71.651 +-380.227 92.9939 69.7531 +-380.651 90.1997 67.6571 +-380.756 87.3406 65.5126 +-381.116 84.5511 63.4202 +-379.416 81.328 61.0027 +-380.869 78.7965 59.1038 +-382.297 76.2508 57.1943 +-381.363 73.243 54.9382 +-381.563 70.4699 52.8582 +-380.56 67.4919 50.6245 +-381.282 64.8327 48.6298 +-381.093 62.0249 46.5238 +-381.166 59.2706 44.4578 +-379.733 56.3013 42.2306 +-381.81 53.8566 40.3969 +-380.016 50.8722 38.1583 +-380.853 48.255 36.1952 +-380.474 45.4881 34.1198 +-380.56 42.7857 32.0928 +-380.616 40.0856 30.0675 +-380.542 37.3783 28.0368 +-379.544 34.5935 25.948 +-380.106 31.9594 23.9722 +-379.744 29.251 21.9407 +-379.849 26.585 19.9409 +-379.227 23.8757 17.9087 +-378.975 21.1996 15.9014 +-379.591 18.5727 13.9311 +-378.88 15.8844 11.9146 +-378.639 13.2248 9.91971 +-378.869 10.5839 7.93879 +-144.85 3.03431 2.27598 +-145.478 2.03138 1.5237 +-145.994 1.01922 0.764495 +97.1 0 0 +96.9963 0.681707 0.50179 +96.9852 1.36336 1.00354 +96.7668 2.0407 1.50212 +97.8404 2.7516 2.0254 +96.9077 3.4075 2.50819 +97.7658 4.12636 3.03733 +96.9189 4.77396 3.51401 +96.8635 5.45491 4.01525 +97.6979 6.19232 4.55804 +97.6271 6.8787 5.06326 +97.4493 7.55683 5.56243 +97.4631 8.24984 6.07253 +97.37 8.93446 6.57647 +97.2695 9.61845 7.07994 +97.1616 10.3017 7.58287 +97.0463 10.9842 8.08521 +96.8247 11.6538 8.57812 +96.4972 12.3086 9.06013 +96.3601 12.9864 9.55903 +97.0036 13.7749 10.1394 +96.8506 14.4562 10.6409 +96.5921 15.1209 11.1302 +96.4246 15.7992 11.6294 +96.2497 16.4762 12.1278 +96.2628 17.1869 12.6509 +96.0729 17.8628 13.1484 +96.7508 18.7065 13.7695 +96.4474 19.3662 14.2551 +97.1052 20.2248 14.8871 +96.979 20.9273 15.4042 +96.6521 21.5866 15.8894 +97.1836 22.4426 16.5195 +97.0326 23.1477 17.0385 +96.778 23.8287 17.5398 +97.1838 24.6774 18.1645 +97.0078 25.3844 18.6849 +96.8238 26.0907 19.2048 +97.1993 26.9538 19.8401 +96.9035 27.6358 20.3421 +97.5401 28.5913 21.0454 +97.2266 29.2757 21.5492 +96.9056 29.9579 22.0514 +97.3217 30.8739 22.7256 +97.0761 31.5868 23.2504 +97.5617 32.5453 23.9559 +97.2974 33.2612 24.4828 +97.7586 34.2327 25.198 +97.4753 34.9512 25.7268 +97.0929 35.6349 26.2301 +96.7937 36.3499 26.7564 +97.1182 37.3062 27.4603 +96.6204 37.952 27.9357 +97.0109 38.953 28.6725 +97.387 39.9624 29.4155 +96.9503 40.6453 29.9181 +97.2125 41.6275 30.6412 +96.7578 42.3092 31.1429 +96.9953 43.2999 31.8722 +96.5224 43.98 32.3727 +96.8216 45.019 33.1376 +97.1056 46.0657 33.908 +96.4313 46.6634 34.3479 +96.6894 47.718 35.1242 +96.1687 48.3957 35.623 +96.231 49.3727 36.3422 +96.2794 50.3541 37.0646 +96.6474 51.5178 37.9212 +95.9196 52.105 38.3534 +96.0931 53.1877 39.1503 +96.0865 54.1843 39.8839 +96.3099 55.3252 40.7237 +96.3539 56.3786 41.4991 +96.3824 57.4369 42.2781 +95.7564 58.1121 42.7751 +96.4718 59.6163 43.8823 +95.8221 60.292 44.3797 +95.8695 61.4143 45.2058 +95.8221 62.4912 45.9985 +95.7586 63.5721 46.7941 +95.8322 64.7603 47.6687 +95.6591 65.7975 48.4322 +95.6972 66.9956 49.3141 +96.2408 68.5728 50.475 +95.5684 69.3005 51.0106 +95.9935 70.84 52.1438 +95.9536 72.0612 53.0427 +95.822 73.2317 53.9043 +95.7441 74.4618 54.8097 +95.5042 75.5835 55.6354 +95.3887 76.8212 56.5465 +95.7442 78.4652 57.7566 +95.5155 79.6565 58.6334 +95.9566 81.4345 59.9422 +95.6844 82.6361 60.8267 +95.2582 83.7209 61.6252 +95.2173 85.1657 62.6887 +93.562 85.1681 62.6904 +92.5043 85.7004 63.0823 +92.2866 87.0212 64.0545 +92.4329 88.7149 65.3011 +92.613 90.4802 66.6006 +92.1325 91.6278 67.4453 +92.5057 93.6589 68.9403 +91.9798 94.813 69.7898 +91.8621 96.414 70.9683 +91.5962 97.8918 72.0561 +92.257 100.409 73.9092 +92.5762 102.618 75.5347 +91.4026 103.199 75.9627 +91.7722 105.552 77.6948 +91.7012 107.455 79.095 +91.484 109.23 80.4021 +91.2904 111.078 81.762 +91.336 113.268 83.3744 +91.0723 115.129 84.7438 +90.8282 117.062 86.1665 +91.0715 119.687 88.0991 +91.3163 122.394 90.0915 +91.0016 124.418 91.5818 +90.75 126.588 93.1788 +91.4923 130.235 95.863 +92.9865 135.099 99.4435 +92.9505 137.871 101.484 +92.7676 140.509 103.426 +92.7653 143.513 105.637 +92.7957 146.672 107.962 +92.4968 149.408 109.976 +92.321 152.441 112.209 +92.5599 156.283 115.037 +92.3844 159.555 117.445 +92.1448 162.836 119.86 +92.2479 166.862 122.824 +91.9117 170.236 125.307 +91.8218 174.212 128.234 +90.8873 176.711 130.073 +89.4935 178.388 131.308 +87.8503 179.61 132.207 +86.725 181.949 133.929 +91.229 196.508 144.645 +90.9432 201.228 148.12 +87.858 199.81 147.076 +85.5919 200.191 147.357 +82.6896 199.028 146.501 +80.8079 200.291 147.43 +78.0933 199.469 146.825 +75.9582 200.087 147.28 +73.418 199.61 146.929 +71.1971 199.963 147.189 +68.5199 198.982 146.466 +66.6459 200.311 147.445 +63.8469 198.823 146.349 +61.9562 200.124 147.307 +59.5286 199.69 146.987 +57.2275 199.63 146.943 +54.8891 199.396 146.771 +52.8927 200.404 147.513 +50.3205 199.189 146.619 +48.2174 199.773 147.048 +45.9234 199.549 146.884 +43.8114 200.103 147.291 +41.4765 199.609 146.928 +39.3433 200.052 147.254 +37.0115 199.445 146.807 +34.9603 200.335 147.462 +32.5532 199.135 146.579 +30.5161 200.157 147.331 +28.165 199.083 146.541 +26.1112 200.075 147.271 +23.741 198.567 146.161 +21.6669 199.448 146.809 +19.3637 198.147 145.852 +17.3205 199.481 146.834 +15.0912 198.711 146.267 +12.9793 199.453 146.813 +10.7827 198.893 146.401 +8.65508 199.605 146.925 +6.44738 198.29 145.957 +4.32122 199.374 146.755 +2.14935 198.35 146.001 +1.51912e-14 199.807 147.074 +-2.15109 198.511 146.12 +-4.32296 199.454 146.814 +-6.43429 197.887 145.661 +-8.6481 199.444 146.806 +-10.7304 197.927 145.69 +-12.9584 199.131 146.576 +-15.0912 198.711 146.267 +-17.3066 199.321 146.716 +-18.736 191.725 141.124 +-20.8912 192.308 141.554 +-22.8592 191.192 140.732 +-25.1182 192.466 141.67 +-27.9952 197.882 145.657 +-30.382 199.277 146.684 +-32.3444 197.858 145.639 +-34.7794 199.298 146.699 +-36.7011 197.772 145.576 +-39.1243 198.938 146.434 +-40.9978 197.305 145.232 +-43.3947 198.199 145.89 +-45.4495 197.491 145.369 +-47.8931 198.428 146.059 +-49.9018 197.532 145.399 +-52.4353 198.671 146.237 +-54.3696 197.509 145.382 +-56.8676 198.374 146.019 +-58.8749 197.497 145.374 +-61.4724 198.56 146.156 +-63.3712 197.341 145.259 +-65.9471 198.211 145.899 +-67.9053 197.196 145.152 +-70.5907 198.26 145.935 +-72.5375 197.216 145.167 +-75.1395 197.931 145.693 +-77.2513 197.319 145.242 +-79.9427 198.147 145.851 +-82.0867 197.577 145.432 +-84.8756 198.516 146.124 +-86.723 197.228 145.176 +-89.4725 197.974 145.725 +-91.6843 197.489 145.367 +-94.43 198.114 145.828 +-96.2066 196.694 144.783 +-99.6079 198.549 146.148 +-101.411 197.172 145.134 +-104.521 198.305 145.968 +-106.307 196.898 144.933 +-109.412 197.91 145.677 +-111.345 196.767 144.836 +-114.53 197.801 145.597 +-116.496 196.699 144.786 +-119.807 197.826 145.616 +-121.634 196.472 144.619 +-125.074 197.691 145.516 +-127.304 196.947 144.969 +-130.231 197.254 145.195 +-132.268 196.19 144.411 +-138.946 201.874 148.595 +-141.079 200.819 147.819 +-144.55 201.634 148.418 +-144.547 197.626 145.469 +-144.056 193.082 142.124 +-144.314 189.659 139.604 +-147.583 190.208 140.008 +-150.498 190.251 140.04 +-162.302 201.276 148.155 +-161 195.896 144.195 +-165.689 197.829 145.618 +-1855.83 2174.64 1600.71 +-622.158 715.58 526.723 +-628.553 709.673 522.375 +-630.87 699.299 514.739 +-637.71 694.062 510.884 +-639.428 683.379 503.021 +-143.242 150.339 110.662 +-143.388 147.804 108.796 +-144.237 146.034 107.493 +-143.8 143.012 105.268 +-143.245 139.946 103.011 +-143.342 137.576 101.267 +-150.152 141.585 104.218 +-150.894 139.795 102.9 +-681.041 619.939 456.324 +-683.316 611.179 449.876 +-690.251 606.65 446.542 +-692.774 598.301 440.397 +-699.644 593.761 437.055 +-701.397 584.939 430.561 +-709.53 581.481 428.016 +-711.349 572.884 421.688 +-718.172 568.372 418.367 +-723.512 562.687 414.182 +-728.203 556.528 409.648 +-730.33 548.478 403.723 +-737.646 544.358 400.691 +-739.355 536.136 394.638 +-746.784 532.093 391.662 +-748.974 524.341 385.956 +-756.528 520.365 383.03 +-758.078 512.285 377.082 +-765.529 508.218 374.089 +-767.587 500.589 368.473 +-775.878 497.03 365.853 +-779.027 490.17 360.804 +-786.292 485.902 357.662 +-788.812 478.71 352.368 +-797.506 475.256 349.826 +-799.551 467.834 344.363 +-807.928 464.115 341.625 +-810.879 457.264 336.582 +-819.181 453.418 333.751 +-821.41 446.202 328.44 +-830.384 442.635 325.814 +-833.387 435.861 320.828 +-841.958 431.978 317.97 +-386.371 194.436 143.12 +-385.734 190.367 140.125 +-384.268 185.949 136.873 +-384.114 182.219 134.128 +-380.618 176.976 130.268 +-380.52 173.382 127.623 +-381.422 170.271 125.333 +-382.637 167.315 123.157 +-382.934 163.977 120.7 +-383.011 160.573 118.194 +-909.985 373.408 274.858 +-136.567 54.8361 40.3637 +-382.976 150.431 110.729 +-383.238 147.214 108.361 +-381.284 143.188 105.398 +-383.094 140.603 103.495 +-956.299 342.895 252.398 +-968.599 339.18 249.663 +-383.39 131.063 96.4724 +-382.763 127.685 93.9862 +-383.854 124.899 91.9357 +-382.309 121.282 89.2728 +-380.994 117.782 86.6971 +-381.038 114.733 84.4527 +-382.173 112.024 82.4586 +-380.45 108.5 79.8645 +-381.328 105.744 77.8359 +-383.787 103.417 76.1233 +-380.518 99.5718 73.2927 +-381.391 96.8449 71.2855 +-386.251 95.1029 70.0032 +-382.377 91.2179 67.1436 +-380.948 87.9723 64.7546 +-380.441 84.9692 62.544 +-381.348 82.2922 60.5735 +-380.966 79.3466 58.4054 +-381.132 76.5298 56.332 +-383.308 74.1116 54.552 +-382.927 71.1975 52.407 +-381.244 68.0679 50.1033 +-380.304 65.1013 47.9197 +-382.171 62.6187 46.0923 +-380.675 59.5924 43.8647 +-381.405 56.9295 41.9046 +-381.121 54.1209 39.8373 +-381.101 51.3607 37.8055 +-381.05 48.6048 35.7769 +-380.178 45.7583 33.6817 +-380.362 43.0511 31.689 +-380.715 40.3658 29.7124 +-378.954 37.4727 27.5828 +-380.24 34.8901 25.6818 +-379.708 32.1407 23.6581 +-380.142 29.4786 21.6986 +-379.251 26.7217 19.6692 +-379.227 24.0363 17.6926 +-381.369 21.477 15.8087 +-381.088 18.7713 13.8172 +-378.58 15.9786 11.7615 +-380.038 13.363 9.83622 +-378.869 10.6551 7.84299 +-147.349 3.10742 2.28731 +-144.978 2.03802 1.50014 +-144.894 1.01834 0.749579 +97.1 0 0 +96.9963 0.686206 0.49562 +96.9852 1.37236 0.9912 +96.9668 2.05841 1.48671 +96.9409 2.7443 1.9821 +96.9077 3.42999 2.47734 +96.9669 4.11965 2.97546 +96.8191 4.80052 3.46723 +96.8635 5.49091 3.96587 +96.9004 6.18231 4.46524 +96.7305 6.86051 4.95507 +97.5488 7.61447 5.49963 +97.4631 8.30428 5.99786 +96.5752 8.92007 6.44261 +97.2695 9.68193 6.99288 +97.1616 10.3697 7.48962 +97.0463 11.0567 7.98578 +96.8247 11.7307 8.47264 +96.6947 12.4152 8.96704 +96.3601 13.0721 9.44148 +97.0036 13.8658 10.0148 +96.8506 14.5516 10.51 +96.6903 15.2362 11.0045 +96.5226 15.9196 11.4981 +97.1301 16.7367 12.0882 +96.1652 17.2828 12.4827 +96.8524 18.1265 13.0921 +96.6536 18.8111 13.5865 +96.5444 19.5137 14.094 +96.2339 20.1757 14.5721 +96.979 21.0654 15.2147 +96.6521 21.729 15.694 +96.4145 22.412 16.1873 +96.9367 23.2774 16.8124 +96.778 23.9859 17.3241 +96.4208 24.6453 17.8004 +97.0078 25.5519 18.4551 +96.729 26.2372 18.9501 +97.2939 27.1581 19.6152 +96.9978 27.8453 20.1115 +97.5401 28.78 20.7866 +97.3202 29.4972 21.3047 +97.7459 30.417 21.969 +96.5773 30.8399 22.2745 +97.0761 31.7953 22.9645 +97.5617 32.7601 23.6613 +97.2974 33.4807 24.1818 +97.025 34.2001 24.7014 +96.7445 34.9181 25.22 +97.1839 35.9037 25.9318 +96.703 36.5556 26.4027 +97.2084 37.5873 27.1478 +97.5192 38.5579 27.8488 +97.1004 39.2463 28.3461 +97.4761 40.2629 29.0803 +97.039 40.951 29.5773 +97.2125 41.9023 30.2644 +97.3729 42.8592 30.9555 +96.9953 43.5857 31.4802 +96.5224 44.2702 31.9746 +96.735 45.2756 32.7008 +96.9333 46.2874 33.4316 +96.4313 46.9714 33.9256 +96.7747 48.0753 34.7229 +96.1687 48.7151 35.185 +97.0744 50.1341 36.2099 +96.4471 50.7748 36.6726 +96.4806 51.7683 37.3902 +96.0855 52.5396 37.9473 +96.0931 53.5387 38.6689 +96.1684 54.5884 39.4271 +96.4727 55.7845 40.2909 +96.3539 56.7507 40.9888 +95.7394 57.4302 41.4796 +95.7564 58.4956 42.2491 +95.8371 59.615 43.0575 +95.8221 60.6899 43.8339 +95.8695 61.8196 44.6499 +95.7444 62.8527 45.396 +95.7586 63.9917 46.2187 +95.7556 65.1357 47.0449 +95.6591 66.2318 47.8366 +95.6217 67.3846 48.6693 +95.6416 68.5957 49.544 +96.1629 70.1918 50.6968 +95.9935 71.3075 51.5026 +95.2954 72.0392 52.0311 +95.7494 73.6592 53.2012 +95.6722 74.897 54.0951 +95.5042 76.0823 54.9513 +95.3887 77.3282 55.8511 +95.8143 79.0408 57.0881 +95.585 80.2405 57.9546 +95.9566 81.972 59.2051 +95.7526 83.2406 60.1214 +95.5285 84.5126 61.0401 +95.0165 85.547 61.7872 +92.9656 85.183 61.5243 +93.0292 86.7557 62.6602 +92.8061 88.0884 63.6228 +92.4329 89.3004 64.4981 +92.613 91.0773 65.7816 +92.7618 92.8624 67.0709 +92.3812 94.1498 68.0007 +92.2877 95.7581 69.1623 +91.8012 96.9863 70.0494 +92.0777 99.0559 71.5442 +92.5544 101.398 73.2357 +91.9296 102.573 74.0847 +91.8672 104.408 75.4097 +91.7149 106.182 76.6914 +91.5312 107.963 77.9778 +91.484 109.951 79.4134 +91.5112 112.081 80.9516 +91.6083 114.356 82.5945 +91.3409 116.231 83.9488 +90.8282 117.834 85.107 +91.0715 120.477 87.0157 +90.7497 122.437 88.4315 +90.7986 124.96 90.2536 +91 127.774 92.2865 +90.5567 129.753 93.7157 +92.5017 135.281 97.7083 +92.9028 138.71 100.184 +93.1432 142.01 102.568 +92.8115 144.533 104.39 +92.7957 147.64 106.634 +92.4076 150.249 108.519 +92.3648 153.52 110.882 +92.5599 157.314 113.622 +92.3844 160.608 116.001 +92.0619 163.763 118.28 +91.8818 167.297 120.832 +91.8718 171.286 123.713 +91.8609 175.437 126.711 +90.6194 177.353 128.095 +89.8681 180.317 130.236 +87.5205 180.117 130.091 +89.1261 188.221 135.945 +91.0889 197.501 142.647 +90.1223 200.728 144.978 +86.9233 198.989 143.722 +84.7454 199.519 144.105 +82.1819 199.112 143.811 +80.3135 200.38 144.727 +77.6422 199.626 144.182 +75.3734 199.857 144.349 +72.8783 199.45 144.055 +70.7837 200.114 144.535 +68.1725 199.279 143.931 +66.0247 199.754 144.275 +63.3712 198.644 143.472 +61.4724 199.871 144.359 +59.0617 199.432 144.042 +56.7776 199.368 143.995 +54.4562 199.128 143.823 +52.373 199.744 144.267 +50.0414 199.392 144.013 +47.9312 199.898 144.378 +45.6864 199.83 144.33 +43.3599 199.347 143.981 +41.1959 199.567 144.139 +39.093 200.091 144.518 +36.7011 199.077 143.786 +34.6124 199.65 144.2 +32.253 198.601 143.442 +30.2236 199.546 144.124 +27.9159 198.625 143.459 +25.8394 199.299 143.946 +23.6356 198.99 143.722 +21.4839 199.068 143.779 +19.2382 198.162 143.125 +17.1392 198.695 143.509 +14.9874 198.647 143.475 +12.8903 199.393 144.013 +10.6649 198.019 143.021 +8.57132 198.978 143.714 +6.41073 198.464 143.342 +4.28282 198.907 143.663 +2.13538 198.362 143.269 +1.49769e-14 198.289 143.216 +-2.13364 198.2 143.152 +-4.27409 198.502 143.37 +-6.39241 197.896 142.933 +-8.5783 199.14 143.831 +-10.6737 198.181 143.138 +-12.8589 198.907 143.663 +-14.9386 198 143.008 +-16.9927 196.997 142.283 +-18.9086 194.768 140.673 +-20.7605 192.366 138.938 +-22.84 192.292 138.885 +-25.0032 192.849 139.287 +-27.7801 197.659 142.761 +-30.1017 198.742 143.543 +-32.1094 197.717 142.803 +-34.3479 198.125 143.098 +-36.3316 197.073 142.338 +-38.7019 198.089 143.072 +-40.6842 197.088 142.349 +-43.1168 198.23 143.174 +-45.1397 197.439 142.602 +-47.397 197.669 142.769 +-49.523 197.326 142.521 +-51.9363 198.079 143.064 +-53.9151 197.15 142.393 +-56.3052 197.709 142.797 +-58.4547 197.381 142.561 +-60.8917 197.983 142.995 +-62.9205 197.231 142.452 +-65.5071 198.188 143.143 +-67.4777 197.248 142.465 +-70.1497 198.322 143.24 +-72.1967 197.585 142.708 +-74.5548 197.687 142.782 +-76.7401 197.307 142.507 +-79.4792 198.298 143.223 +-81.5473 197.574 142.7 +-84.2896 198.447 143.33 +-86.1222 197.155 142.397 +-88.8568 197.909 142.942 +-91.124 197.577 142.702 +-93.7491 197.985 142.996 +-95.8034 197.163 142.403 +-98.6714 197.98 142.994 +-100.684 197.051 142.322 +-103.622 197.898 142.934 +-105.868 197.38 142.56 +-108.436 197.438 142.602 +-110.474 196.516 141.936 +-113.811 197.858 142.905 +-115.592 196.46 141.895 +-118.711 197.31 142.509 +-120.741 196.318 141.793 +-123.758 196.901 142.214 +-125.965 196.162 141.68 +-129.058 196.766 142.116 +-131.314 196.059 141.606 +-137.444 201.008 145.18 +-140.095 200.733 144.982 +-143.8 201.911 145.833 +-144.496 198.861 143.629 +-144.211 194.565 140.527 +-143.478 189.805 137.089 +-145.092 188.233 135.953 +-148.993 189.592 136.935 +-156.202 194.99 140.834 +-162.214 198.677 143.496 +-164.85 198.126 143.099 +-623.104 734.965 530.837 +-626.173 724.951 523.604 +-632.618 718.976 519.288 +-635.337 708.898 512.009 +-144.423 158.222 114.278 +-142.389 153.181 110.636 +-143.85 151.974 109.765 +-144.68 150.121 108.427 +-143.427 146.173 105.575 +-143.296 143.452 103.61 +-143.945 141.557 102.241 +-147.198 142.21 102.713 +-151.711 143.999 104.005 +-678.365 632.618 456.915 +-685.48 628.099 453.651 +-688.535 619.912 447.738 +-694.98 614.838 444.073 +-697.412 606.281 437.893 +-703.911 601.325 434.313 +-706.884 593.406 428.594 +-713.666 588.73 425.217 +-716.228 580.621 419.359 +-722.665 575.702 415.807 +-725.598 568.034 410.269 +-732.12 563.214 406.787 +-735.522 556.023 401.594 +-741.701 550.963 397.939 +-267.904 195.55 141.238 +-751.427 538.935 389.252 +-754.106 531.418 383.822 +-760.786 526.748 380.449 +-764.283 519.886 375.493 +-770.544 514.924 371.91 +-773.882 508.025 366.926 +-780.808 503.49 363.651 +-783.992 496.55 358.638 +-791.529 492.366 355.617 +-794.562 485.382 350.572 +-802.008 481.093 347.474 +-804.891 474.067 342.4 +-812.243 469.672 339.226 +-815.712 463.025 334.425 +-823.467 458.798 331.372 +-827.628 452.547 326.857 +-834.803 447.928 323.521 +-838.251 441.299 318.733 +-846.259 437.05 315.664 +-855.511 433.367 313.004 +-384.114 190.819 137.821 +-384.782 187.426 135.371 +-384.459 183.586 132.597 +-385.641 180.494 130.364 +-379.562 174.087 125.736 +-381.159 171.277 123.707 +-383.692 168.884 121.978 +-383.641 165.363 119.435 +-382.213 161.295 116.497 +-384.202 158.696 114.62 +-136.835 55.3064 39.9457 +-930.252 367.81 265.655 +-381.613 147.557 106.575 +-381.284 144.133 104.102 +-382.002 141.127 101.93 +-385.151 139.013 100.403 +-973.918 343.294 247.948 +-382.838 131.737 95.1485 +-382.763 128.528 92.8304 +-382.927 125.42 90.5862 +-381.099 121.696 87.8963 +-379.781 118.182 85.3581 +-381.6 115.661 83.5372 +-380.2 112.181 81.0236 +-378.659 108.702 78.5112 +-381.044 106.362 76.8214 +-382.554 103.766 74.946 +-381.849 100.579 72.6444 +-381.678 97.557 70.4616 +-381.948 94.6637 68.3719 +-1138.6 273.411 197.474 +-381.813 88.754 64.1035 +-381.309 85.7245 61.9154 +-381.251 82.8142 59.8135 +-380.385 79.7485 57.5992 +-380.744 76.9565 55.5827 +-381.85 74.3169 53.6761 +-382.44 71.5762 51.6967 +-381.927 68.6399 49.5759 +-381.478 65.7332 47.4765 +-380.113 62.6926 45.2804 +-381.657 60.1404 43.437 +-381.405 57.3052 41.3893 +-382.007 54.6048 39.4389 +-380.509 51.6194 37.2826 +-381.05 48.9255 35.337 +-380.079 46.0483 33.2589 +-380.758 43.3804 31.3319 +-378.93 40.4417 29.2094 +-379.649 37.7891 27.2936 +-380.637 35.1571 25.3926 +-378.813 32.2765 23.3121 +-380.54 29.7042 21.4542 +-379.949 26.9475 19.4631 +-379.925 24.2395 17.5072 +-379.074 21.4887 15.5204 +-379.491 18.8161 13.5901 +-379.479 16.1223 11.6445 +-380.138 13.4548 9.71784 +-379.369 10.7395 7.75673 +-151.248 3.21069 2.31896 +-145.478 2.05854 1.48681 +-145.594 1.03001 0.743939 +97.9 0 0 +96.9963 0.69065 0.489409 +96.9852 1.38124 0.978779 +96.9668 2.07174 1.46808 +96.9409 2.76207 1.95726 +96.9077 3.4522 2.4463 +97.7658 4.18049 2.96238 +96.8191 4.8316 3.42378 +96.8635 5.52647 3.91617 +96.8007 6.21594 4.40475 +97.6271 6.96893 4.93833 +96.653 7.5934 5.38084 +97.5626 8.36654 5.92871 +97.37 9.05166 6.4142 +98.1628 9.83413 6.96867 +97.1616 10.4368 7.39577 +97.0463 11.1282 7.88571 +96.8247 11.8067 8.36646 +96.6947 12.4956 8.85467 +96.3601 13.1568 9.32317 +97.102 13.9698 9.89932 +96.8506 14.6458 10.3783 +96.6903 15.3349 10.8666 +96.4246 16.0064 11.3425 +96.3475 16.7093 11.8406 +96.1652 17.3947 12.3263 +96.8524 18.2439 12.928 +96.7508 18.9519 13.4297 +96.5444 19.64 13.9173 +96.3307 20.3267 14.4039 +96.1096 21.0118 14.8894 +96.6521 21.8697 15.4974 +96.4145 22.5571 15.9844 +97.0326 23.4513 16.6181 +96.6824 24.1174 17.0901 +96.4208 24.8049 17.5773 +97.1029 25.7426 18.2417 +97.5825 26.6401 18.8777 +97.2939 27.3339 19.3694 +96.9978 28.0256 19.8595 +97.6341 28.9942 20.5459 +97.2266 29.6597 21.0175 +97.6525 30.5848 21.673 +97.3217 31.2789 22.1649 +97.0761 32.0012 22.6767 +96.7302 32.6912 23.1657 +97.2053 33.6656 23.8561 +97.025 34.4215 24.3918 +97.3839 35.3765 25.0685 +97.0929 36.1024 25.5829 +97.5187 37.1026 26.2917 +97.1182 37.7956 26.7827 +96.7102 38.4856 27.2717 +97.1004 39.5004 27.9908 +97.387 40.4866 28.6897 +96.9503 41.1784 29.1799 +97.2125 42.1736 29.8851 +97.5487 43.2145 30.6227 +96.9953 43.8679 31.0857 +96.6095 44.597 31.6024 +96.8216 45.6096 32.3199 +97.0194 46.6285 33.0419 +96.4313 47.2755 33.5004 +96.7747 48.3866 34.2878 +96.7623 49.3332 34.9586 +96.231 50.0203 35.4455 +96.531 51.148 36.2446 +96.6474 52.1936 36.9855 +96.0855 52.8798 37.4717 +96.0931 53.8854 38.1843 +96.0865 54.8951 38.8998 +96.3099 56.051 39.7189 +96.3539 57.1182 40.4752 +95.659 57.7535 40.9254 +95.6765 58.8253 41.6848 +95.8371 60.001 42.518 +96.5313 61.535 43.605 +95.7912 62.1692 44.0544 +95.8221 63.311 44.8635 +95.8358 64.4579 45.6763 +95.8322 65.6098 46.4925 +96.3434 67.1375 47.5751 +95.6217 67.8209 48.0594 +96.3157 69.5264 49.2679 +96.1629 70.6463 50.0615 +95.4774 71.3834 50.5838 +95.8805 72.9508 51.6945 +95.0966 73.6307 52.1763 +95.6722 75.3819 53.4172 +95.5042 76.575 54.2627 +95.3887 77.8289 55.1512 +95.7442 79.4945 56.3315 +95.5155 80.7014 57.1867 +95.9566 82.5027 58.4632 +95.207 83.3023 59.0298 +94.9204 84.518 59.8913 +94.0798 85.2516 60.4111 +92.8993 85.6742 60.7106 +92.1107 86.455 61.2639 +92.1567 88.0387 62.3861 +92.4329 89.8786 63.6899 +92.4222 91.4778 64.8231 +92.8248 93.5274 66.2755 +92.0077 94.3759 66.8768 +92.1645 96.2493 68.2043 +91.6186 97.4201 69.034 +91.9573 99.5676 70.5557 +92.4355 101.923 72.2249 +91.9884 103.304 73.2032 +91.8672 105.084 74.4647 +91.4281 106.536 75.4939 +92.3242 109.604 77.6678 +91.7076 110.933 78.6097 +91.3456 112.603 79.7926 +91.8261 115.37 81.7538 +91.5021 117.19 83.0431 +90.8812 118.666 84.0896 +91.0192 121.188 85.8762 +90.6982 123.16 87.2736 +90.7986 125.769 89.1226 +90.65 128.107 90.7791 +90.6059 130.664 92.5916 +91.2412 134.302 95.1691 +92.9505 139.68 98.9799 +93.1432 142.929 101.283 +92.8576 145.541 103.133 +92.7957 148.596 105.298 +92.8538 151.952 107.677 +92.4086 154.588 109.544 +92.2155 157.744 111.781 +92.3844 161.648 114.547 +92.1034 164.898 116.85 +92.2479 169.051 119.793 +92.2307 173.068 122.64 +92.0172 176.873 125.336 +90.1602 177.597 125.849 +89.1938 180.123 127.639 +86.9341 180.068 127.6 +91.348 194.163 137.588 +91.3341 199.315 141.239 +89.1304 199.804 141.586 +86.6229 199.585 141.43 +84.4524 200.118 141.808 +81.8963 199.705 141.515 +79.7882 200.358 141.978 +77.1611 199.674 141.493 +74.9056 199.903 141.655 +72.5659 199.881 141.64 +70.4529 200.468 142.056 +67.7717 199.391 141.292 +65.6106 199.786 141.573 +63.1709 199.298 141.227 +61.2546 200.453 142.045 +58.7115 199.532 141.393 +56.5302 199.784 141.571 +54.2831 199.781 141.569 +52.1443 200.159 141.837 +49.6825 199.244 141.188 +47.5496 199.59 141.433 +45.3402 199.6 141.441 +43.3252 200.478 142.063 +40.8988 199.411 141.307 +38.7801 199.775 141.565 +36.5089 199.317 141.24 +34.3618 199.488 141.362 +32.1486 199.24 141.186 +30.0286 199.542 141.4 +27.7801 198.939 140.972 +25.6617 199.209 141.164 +23.5493 199.547 141.403 +21.327 198.894 140.941 +19.1676 198.713 140.812 +17.0624 199.086 141.077 +14.8775 198.467 140.638 +12.8118 199.462 141.343 +10.6213 198.486 140.651 +8.52944 199.288 141.22 +6.36362 198.281 140.506 +4.24966 198.645 140.764 +2.12666 198.831 140.896 +1.48912e-14 198.43 140.612 +-2.12491 198.668 140.78 +-4.25664 198.971 140.995 +-6.36362 198.281 140.506 +-8.51897 199.043 141.046 +-10.63 198.649 140.767 +-12.7438 198.402 140.592 +-14.9019 198.793 140.869 +-16.9997 198.353 140.558 +-18.9793 196.761 139.429 +-20.9697 195.561 138.579 +-23.118 195.893 138.814 +-25.2645 196.126 138.979 +-27.7348 198.614 140.742 +-29.858 198.409 140.597 +-31.992 198.269 140.498 +-34.2227 198.681 140.789 +-36.169 197.461 139.925 +-38.4203 197.921 140.251 +-40.5357 197.64 140.052 +-42.8216 198.148 140.412 +-44.9393 197.835 140.19 +-47.0917 197.668 140.072 +-49.204 197.325 139.828 +-51.4789 197.605 140.027 +-53.6337 197.391 139.875 +-56.1253 198.353 140.557 +-58.1046 197.47 139.931 +-60.4321 197.761 140.138 +-62.7452 197.955 140.275 +-65.0412 198.052 140.344 +-67.157 197.582 140.011 +-69.5433 197.88 140.222 +-71.9127 198.082 140.365 +-74.087 197.719 140.108 +-76.1086 196.95 139.563 +-78.892 198.108 140.383 +-80.9444 197.383 139.87 +-83.7687 198.497 140.659 +-85.8885 197.893 140.231 +-88.2754 197.888 140.227 +-90.7037 197.939 140.264 +-93.1757 198.048 140.341 +-95.4369 197.68 140.081 +-97.8472 197.598 140.022 +-100.263 197.497 139.95 +-102.762 197.527 139.972 +-105.31 197.611 140.031 +-107.704 197.375 139.864 +-110.018 196.972 139.579 +-112.797 197.365 139.857 +-115.205 197.069 139.647 +-118.316 197.928 140.256 +-120.429 197.078 139.654 +-123.395 197.595 140.02 +-125.873 197.287 139.802 +-128.447 197.104 139.672 +-131.028 196.899 139.527 +-135.068 198.813 140.883 +-139.75 201.536 142.813 +-142.9 201.947 143.104 +-144.344 199.937 141.68 +-144.108 195.685 138.666 +-143.896 191.59 135.765 +-145.675 190.212 134.789 +-147.919 189.444 134.244 +-153.152 192.42 136.353 +-161.662 199.283 141.216 +-620.48 750.559 531.862 +-626.105 743.288 526.71 +-629.385 733.389 519.695 +-634.766 726.09 514.523 +-638.687 717.252 508.26 +-142.52 157.148 111.359 +-143.774 155.671 110.312 +-144.763 153.929 109.078 +-144.557 150.964 106.977 +-142.992 146.673 103.935 +-143.359 144.444 102.356 +-146.362 144.866 102.655 +-150.284 146.131 103.552 +-679.647 649.276 460.09 +-679.284 637.576 451.8 +-684.818 631.555 447.533 +-691.413 626.534 443.975 +-696.939 620.564 439.745 +-700.344 612.773 434.224 +-706.871 607.763 430.674 +-710.566 600.36 425.428 +-715.558 594.113 421.001 +-719.552 587.092 416.026 +-725.804 581.946 412.38 +-728.907 574.319 406.975 +-734.949 569.052 403.242 +-738.375 561.794 398.099 +-744.134 556.349 394.241 +-268.944 197.58 140.009 +-266.553 192.414 136.348 +-756.974 536.893 380.454 +-763.6 532.119 377.071 +-767.806 525.665 372.498 +-772.782 519.763 368.315 +-777.535 513.728 364.038 +-783.782 508.68 360.461 +-787.38 501.925 355.675 +-793.75 496.945 352.146 +-797.997 490.637 347.676 +-804.982 486.004 344.393 +-808.855 479.486 339.774 +-815.255 474.467 336.217 +-819.316 468.082 331.693 +-826.269 463.34 328.333 +-830.696 457.165 323.957 +-837.888 452.494 320.647 +-841.941 446.111 316.124 +-854.524 444.177 314.753 +-879.511 448.409 317.752 +-382.153 191.074 135.399 +-384.268 188.388 133.496 +-384.545 184.816 130.964 +-384.342 181.051 128.297 +-379.91 175.375 124.274 +-381.684 172.624 122.325 +-382.549 169.471 120.091 +-382.228 165.821 117.505 +-382.745 162.567 115.198 +-383.667 159.501 113.026 +-135.225 55.0093 38.9808 +-137.785 54.8313 38.8546 +-383.057 149.075 105.638 +-381.284 145.066 102.797 +-384.55 142.988 101.324 +-383.598 139.349 98.7457 +-977.219 346.687 245.67 +-383.943 132.973 94.2273 +-383.595 129.641 91.866 +-382.371 126.049 89.3209 +-382.029 122.783 87.0065 +-381.461 119.473 84.6614 +-380.664 116.124 82.288 +-380.388 112.963 80.0482 +-380.733 110.006 77.9523 +-383.219 107.662 76.2918 +-382.743 104.489 74.0433 +-380.232 100.802 71.4305 +-381.01 98.0173 69.4572 +-379.94 94.7757 67.1601 +-1145.41 276.827 196.166 +-381.14 89.1712 63.1886 +-381.887 86.411 61.2327 +-380.382 83.1604 58.9292 +-382.225 80.6531 57.1525 +-378.609 77.0205 54.5784 +-380.683 74.5695 52.8416 +-382.44 72.0397 51.0489 +-380.755 68.8724 48.8045 +-382.162 66.2776 46.9657 +-381.779 63.375 44.9089 +-380.675 60.3741 42.7824 +-380.815 57.587 40.8074 +-382.007 54.9584 38.9447 +-380.805 51.994 36.8441 +-380.458 49.1658 34.8399 +-381.167 46.4791 32.9361 +-381.451 43.7407 30.9956 +-380.318 40.8526 28.949 +-381.237 38.1929 27.0643 +-380.24 35.3477 25.0482 +-381.598 32.7243 23.1892 +-381.436 29.967 21.2352 +-380.546 27.1646 19.2494 +-378.829 24.3261 17.238 +-378.875 21.6164 15.3178 +-380.689 18.9977 13.4621 +-149.095 6.37535 4.51771 +-378.24 13.4742 9.54814 +-378.869 10.7949 7.64947 +-145.15 3.1012 2.19758 +-145.578 2.07329 1.46918 +-145.594 1.03668 0.734616 +97 0 0 +96.9963 0.695037 0.483159 +96.9852 1.39002 0.966278 +96.9668 2.0849 1.44933 +97.8404 2.80541 1.95019 +96.9077 3.47412 2.41506 +97.7658 4.20704 2.92455 +96.8191 4.86229 3.38005 +97.7613 5.61312 3.90199 +96.9004 6.26186 4.35297 +97.6271 7.0132 4.87526 +96.653 7.64163 5.31212 +97.5626 8.41969 5.85299 +97.37 9.10916 6.33228 +97.3688 9.81654 6.82402 +97.2607 10.5138 7.30873 +97.0463 11.1989 7.785 +96.8247 11.8817 8.25961 +96.4972 12.5493 8.72372 +96.3601 13.2403 9.2041 +97.102 14.0586 9.77289 +96.7523 14.7239 10.2354 +96.6903 15.4323 10.7278 +96.5226 16.1244 11.209 +96.3475 16.8155 11.6894 +96.1652 17.5052 12.1688 +96.9498 18.3783 12.7758 +96.6536 19.0531 13.2449 +96.4474 19.7449 13.7258 +96.2339 20.4353 14.2057 +96.979 21.3365 14.8322 +96.6521 22.0087 15.2994 +97.1836 22.8814 15.9061 +97.0326 23.6003 16.4059 +96.778 24.2946 16.8885 +96.4208 24.9625 17.3528 +97.0078 25.8807 17.9911 +96.8238 26.6009 18.4918 +97.2939 27.5076 19.122 +96.9978 28.2036 19.6059 +96.6004 28.8695 20.0688 +97.2266 29.8481 20.7491 +96.9056 30.5436 21.2326 +97.4147 31.5077 21.9027 +97.1689 32.2353 22.4085 +96.7302 32.8989 22.8698 +97.2974 33.9115 23.5738 +96.9332 34.6074 24.0575 +97.4753 35.6346 24.7716 +97.1839 36.3657 25.2798 +96.703 37.026 25.7388 +97.1182 38.0356 26.4407 +97.609 39.09 27.1736 +97.0109 39.7146 27.6078 +97.387 40.7438 28.3233 +97.039 41.4779 28.8336 +97.2125 42.4415 29.5034 +96.7578 43.1365 29.9865 +96.9953 44.1466 30.6887 +97.3058 45.2038 31.4237 +96.8216 45.8993 31.9071 +96.3301 46.5913 32.3882 +96.517 47.6181 33.102 +96.6894 48.651 33.82 +96.8471 49.6901 34.5424 +96.3153 50.3821 35.0234 +96.4471 51.4281 35.7505 +96.6474 52.5251 36.5131 +95.9196 53.1238 36.9293 +96.67 54.5532 37.923 +96.1684 55.2909 38.4358 +96.2285 56.3593 39.1785 +96.3539 57.481 39.9582 +96.3824 58.56 40.7083 +95.7564 59.2483 41.1868 +96.5511 60.832 42.2877 +96.6101 61.9764 43.0833 +96.4956 63.0242 43.8116 +95.8221 63.7131 44.2905 +96.4531 65.2852 45.3834 +96.445 66.4489 46.1923 +95.7351 67.1374 46.6709 +95.6217 68.2517 47.4456 +95.6416 69.4784 48.2983 +96.1629 71.095 49.4221 +95.4774 71.8368 49.9377 +95.9536 73.4702 51.0732 +95.822 74.6636 51.9028 +95.7441 75.9178 52.7746 +95.5042 77.0614 53.5696 +95.318 78.2653 54.4065 +95.7442 79.9994 55.612 +95.5155 81.214 56.4563 +95.3371 82.4906 57.3438 +95.4798 84.0721 58.4431 +95.3933 85.4794 59.4215 +93.9459 85.6716 59.555 +92.8331 86.1568 59.8924 +91.9795 86.8802 60.3952 +92.8061 89.222 62.0231 +92.3686 90.3871 62.8331 +91.9769 91.6155 63.687 +92.0696 93.3554 64.8965 +92.1322 95.1043 66.1123 +91.7336 96.4082 67.0187 +92.1665 98.6252 68.5598 +91.5962 99.8059 69.3806 +92.7329 102.901 71.5319 +91.5182 103.429 71.8989 +91.8672 105.751 73.5137 +92.5179 108.491 75.4179 +92.1543 110.097 76.5343 +91.1484 110.957 77.1325 +91.2352 113.181 78.6782 +91.4449 115.621 80.3746 +91.2335 117.588 81.7416 +91.1991 119.838 83.3062 +91.0715 122.027 84.8279 +90.8012 124.083 86.2571 +90.8494 126.639 88.034 +90.65 128.92 89.6197 +90.8029 131.781 91.6083 +90.8533 134.581 93.5547 +92.4257 139.773 97.1638 +93.1901 143.909 100.039 +92.8576 146.466 101.816 +92.7957 149.54 103.953 +92.4076 152.183 105.791 +92.3648 155.496 108.094 +92.6029 159.413 110.817 +92.3844 162.675 113.084 +92.0619 165.871 115.306 +92.2072 170.05 118.211 +92.1908 174.092 121.021 +91.7437 177.468 123.368 +89.8923 178.194 123.872 +88.8567 180.582 125.533 +87.1173 181.594 126.236 +91.4555 195.626 135.991 +91.5442 201.042 139.756 +89.0962 200.996 139.724 +86.3558 200.233 139.193 +83.9315 200.146 139.133 +81.579 200.195 139.166 +79.541 201.006 139.73 +76.8604 200.159 139.141 +74.5548 200.231 139.192 +72.3387 200.521 139.393 +70.1497 200.874 139.639 +67.5311 199.944 138.992 +65.3 200.104 139.103 +62.9455 199.848 138.926 +60.7708 200.132 139.123 +58.4781 200.002 139.032 +56.3502 200.413 139.318 +54.0883 200.328 139.259 +51.9987 200.869 139.635 +49.5031 199.785 138.882 +47.4351 200.375 139.291 +45.0851 199.737 138.849 +43.0647 200.538 139.405 +40.7998 200.192 139.164 +38.6237 200.233 139.193 +36.3759 199.852 138.928 +34.2505 200.105 139.104 +32.0311 199.774 138.874 +29.9067 199.995 139.028 +27.6782 199.467 138.661 +25.5781 199.822 138.907 +23.3576 199.18 138.461 +21.2747 199.667 138.799 +19.0577 198.829 138.217 +16.9508 199.04 138.364 +14.8409 199.237 138.5 +12.7072 199.089 138.398 +10.5821 199.008 138.342 +8.46313 198.994 138.332 +6.34529 198.966 138.312 +4.2357 199.25 138.51 +2.11618 199.108 138.411 +1.48973e-14 199.773 138.873 +-2.11008 198.534 138.012 +-4.24093 199.496 138.681 +-6.33744 198.719 138.141 +-8.47709 199.323 138.56 +-10.5821 199.008 138.342 +-12.6915 198.843 138.227 +-14.7737 198.335 137.874 +-16.9508 199.04 138.364 +-19.0263 198.502 137.99 +-20.9697 196.804 136.809 +-23.1467 197.382 137.211 +-25.4318 198.678 138.112 +-27.531 198.407 137.924 +-29.7361 198.854 138.234 +-31.8614 198.715 138.138 +-33.9722 198.479 137.974 +-36.0507 198.066 137.686 +-38.2639 198.368 137.896 +-40.3871 198.167 137.757 +-42.5091 197.951 137.607 +-44.7753 198.365 137.895 +-47.0726 198.842 138.226 +-48.9847 197.693 137.427 +-51.4166 198.62 138.072 +-53.4822 198.084 137.699 +-55.7654 198.333 137.872 +-57.8711 197.926 137.589 +-60.166 198.141 137.739 +-62.3446 197.941 137.6 +-64.8083 198.597 138.056 +-67.0234 198.442 137.948 +-69.2677 198.348 137.883 +-71.4583 198.08 137.697 +-73.7946 198.189 137.772 +-76.1387 198.279 137.835 +-78.6448 198.741 138.156 +-80.6588 197.937 137.597 +-83.4431 198.981 138.323 +-85.5547 198.376 137.902 +-87.9676 198.45 137.954 +-90.0383 197.735 137.456 +-92.889 198.692 138.122 +-94.9605 197.943 137.601 +-97.6225 198.397 137.916 +-99.9569 198.145 137.741 +-102.45 198.177 137.763 +-104.871 198.038 137.667 +-107.704 198.629 138.078 +-109.852 197.924 137.588 +-112.586 198.246 137.811 +-114.903 197.802 137.503 +-117.615 198.004 137.644 +-119.626 197.007 136.951 +-122.623 197.606 137.367 +-125.134 197.375 137.206 +-128.119 197.848 137.535 +-130.36 197.139 137.043 +-133.71 198.065 137.686 +-138.913 201.601 140.144 +-142.4 202.518 140.782 +-144.293 201.137 139.821 +-143.85 196.576 136.651 +-143.948 192.877 134.08 +-145.251 190.864 132.68 +-147.435 190.024 132.096 +-151.355 191.37 133.032 +-160.117 198.631 138.08 +-165.689 201.697 140.211 +-628.654 751.055 522.1 +-631.45 740.468 514.74 +-637.38 733.71 510.042 +-641.156 724.598 503.708 +-143.531 159.269 110.717 +-143.653 156.529 108.812 +-144.398 154.516 107.413 +-143.572 150.888 104.891 +-142.992 147.604 102.608 +-143.233 145.234 100.96 +-150.114 149.524 103.942 +-152.855 149.575 103.978 +-690.948 664.264 461.766 +-699.031 660.279 458.996 +-687.27 637.842 443.399 +-693.554 632.466 439.662 +-699.911 627.169 435.98 +-703.55 619.488 430.64 +-708.868 613.352 426.375 +-712.789 606.064 421.308 +-718.782 600.581 417.497 +-722.451 593.202 412.367 +-728.157 587.542 408.433 +-731.353 579.907 403.125 +-737.561 574.701 399.506 +-740.422 566.93 394.104 +-746.788 561.88 390.594 +-750.279 554.695 385.599 +-272.395 197.88 137.557 +-759.917 542.405 377.056 +-766.337 537.419 373.59 +-769.951 530.482 368.768 +-776.949 525.885 365.572 +-779.477 518.283 360.287 +-786.365 513.598 357.031 +-790.611 507.185 352.573 +-796.685 501.951 348.934 +-800.233 495.137 344.197 +-807.474 490.604 341.046 +-811.444 484.077 336.508 +-818.023 479.102 333.05 +-822.592 472.939 328.766 +-828.824 467.725 325.142 +-833.266 461.493 320.809 +-840.89 457 317.686 +-844.541 450.332 313.051 +-866.416 453.219 315.058 +-883.327 453.216 315.055 +-384.2 193.317 134.386 +-384.097 189.5 131.732 +-384.287 185.865 129.205 +-383.043 181.585 126.23 +-381.129 177.055 123.08 +-380.809 173.322 120.486 +-382.022 170.313 118.394 +-382.493 166.99 116.084 +-383.011 163.713 113.806 +-382.509 160.03 111.246 +-932.253 381.649 265.305 +-137.336 54.9996 38.2333 +-383.508 150.198 104.411 +-382.915 146.612 101.918 +-382.002 142.943 99.3676 +-383.05 140.034 97.3453 +-981.163 350.298 243.511 +-385.047 134.202 93.2916 +-382.763 130.182 90.4964 +-381.165 126.45 87.9022 +-379.983 122.901 85.4352 +-381.741 120.321 83.6418 +-381.881 117.236 81.4973 +-379.26 113.343 78.7912 +-380.733 110.704 76.9567 +-380.382 107.544 74.7597 +-382.08 104.971 72.9709 +-381.849 101.873 70.8179 +-385.302 99.7509 69.3424 +-381.47 95.762 66.5695 +-3141.57 764.093 531.163 +-381.525 89.8279 62.4444 +-380.73 86.6963 60.2674 +-381.83 84.0072 58.398 +-380.966 80.8981 56.2368 +-379.968 77.7879 54.0747 +-380.099 74.9282 52.0867 +-382.927 72.5897 50.4611 +-381.927 69.5232 48.3294 +-381.771 66.6302 46.3184 +-382.465 63.8922 44.415 +-381.068 60.8203 42.2796 +-380.815 57.9528 40.2862 +-379.643 54.9653 38.2095 +-382.482 52.5547 36.5337 +-381.346 49.5936 34.4753 +-381.562 46.8229 32.5492 +-378.976 43.7328 30.4011 +-381.508 41.2408 28.6688 +-379.847 38.2954 26.6213 +-379.743 35.5258 24.696 +-379.708 32.7691 22.7796 +-378.251 29.9055 20.789 +-380.248 27.3157 18.9886 +-379.327 24.5128 17.0402 +-379.074 21.7652 15.1302 +-378.593 19.0131 13.217 +-148.197 6.37718 4.43313 +-379.139 13.5921 9.44862 +-378.669 10.8577 7.54778 +-152.048 3.2692 2.2726 +-145.878 2.09077 1.45341 +-146.194 1.04757 0.728225 +97.1 0 0 +96.9963 0.699367 0.476869 +97.0852 1.40012 0.954685 +96.7668 2.09356 1.42751 +97.0408 2.79982 1.90908 +96.9077 3.49577 2.38362 +97.7658 4.23326 2.88648 +97.7174 4.93798 3.367 +96.8635 5.59623 3.81583 +96.8007 6.2944 4.29188 +97.6271 7.05689 4.81179 +97.5488 7.76051 5.29156 +97.4631 8.46355 5.77093 +97.37 9.16592 6.24985 +97.3688 9.8777 6.73518 +97.2607 10.5793 7.21358 +97.0463 11.2687 7.68365 +96.8247 11.9557 8.15208 +97.5836 12.7697 8.7071 +96.3601 13.3228 9.08427 +97.102 14.1462 9.64566 +96.7523 14.8156 10.1021 +96.6903 15.5284 10.5882 +96.5226 16.2249 11.0631 +96.3475 16.9203 11.5372 +96.2628 17.6321 12.0226 +95.9755 18.307 12.4827 +95.8757 19.0175 12.9672 +96.5444 19.8879 13.5607 +97.202 20.7695 14.1618 +96.979 21.4695 14.6391 +96.6521 22.1458 15.1003 +97.2797 23.0468 15.7146 +96.9367 23.7239 16.1763 +96.778 24.446 16.6687 +96.4208 25.118 17.1269 +97.1029 26.0675 17.7743 +96.729 26.7404 18.2332 +97.1993 27.652 18.8547 +96.9035 28.3517 19.3318 +97.6341 29.3602 20.0195 +97.2266 30.0341 20.4789 +97.7459 31.0004 21.1378 +97.4147 31.704 21.6176 +97.0761 32.4051 22.0957 +97.5617 33.3884 22.7661 +97.2974 34.1228 23.2669 +97.025 34.856 23.7668 +96.6531 35.5541 24.2428 +97.1839 36.5923 24.9507 +96.7937 37.2916 25.4275 +97.2084 38.3082 26.1207 +97.4293 39.2611 26.7705 +97.1899 40.0359 27.2987 +97.387 40.9976 27.9545 +97.039 41.7364 28.4582 +97.2125 42.7059 29.1193 +96.6699 43.3658 29.5693 +96.9953 44.4216 30.2892 +96.5224 45.1193 30.7649 +96.735 46.144 31.4636 +96.3301 46.8816 31.9666 +96.4313 47.8722 32.642 +96.6894 48.9542 33.3797 +96.8471 49.9997 34.0927 +96.231 50.6517 34.5372 +96.531 51.7936 35.3158 +96.6474 52.8524 36.0378 +96.6658 53.8706 36.7321 +96.0931 54.5655 37.2059 +96.3323 55.7302 38 +96.3099 56.7585 38.7012 +96.3539 57.8392 39.438 +95.659 58.4825 39.8767 +95.8363 59.6672 40.6845 +95.8371 60.7583 41.4285 +96.5313 62.3117 42.4877 +96.4956 63.4168 43.2412 +95.8221 64.1101 43.7139 +96.5302 65.7445 44.8284 +95.8322 66.438 45.3012 +95.7351 67.5557 46.0633 +95.7726 68.7854 46.9018 +96.3157 70.404 48.0054 +96.1629 71.538 48.7787 +95.4774 72.2844 49.2876 +95.8805 73.8716 50.3699 +95.7494 75.072 51.1884 +95.6722 76.3334 52.0485 +95.5042 77.5415 52.8722 +96.0251 79.3371 54.0966 +95.7442 80.4979 54.888 +95.5155 81.72 55.7214 +95.3371 83.0046 56.5973 +95.6162 84.7165 57.7646 +94.7177 85.4023 58.2321 +93.2768 85.5906 58.3606 +92.8331 86.6936 59.1127 +92.1763 87.6091 59.7369 +92.2216 89.2128 60.8304 +92.3686 90.9503 62.0151 +92.4222 92.6325 63.1621 +92.3842 94.2584 64.2708 +92.0077 95.5672 65.1631 +91.7336 97.0089 66.1462 +92.2274 99.3049 67.7118 +91.5962 100.428 68.4774 +93.0303 103.874 70.8272 +91.5182 104.073 70.9629 +91.693 106.209 72.4192 +92.9194 109.641 74.7594 +92.041 110.647 75.4456 +91.1484 111.649 76.1284 +91.3456 114.024 77.748 +91.4449 116.341 79.3282 +91.6633 118.878 81.0577 +90.8282 120.094 81.887 +91.0192 122.717 83.6757 +91.1617 125.352 85.4722 +90.7986 127.357 86.8389 +90.65 129.724 88.453 +90.7044 132.458 90.3177 +90.9503 135.564 92.4353 +92.9028 141.37 96.3941 +93.1432 144.733 98.6875 +92.8115 147.305 100.441 +92.8411 150.545 102.65 +92.4522 153.205 104.464 +92.3648 156.465 106.687 +92.5599 160.331 109.323 +92.3844 163.688 111.612 +92.0619 166.904 113.805 +92.1258 170.958 116.569 +92.2307 175.253 119.497 +91.3529 177.812 121.243 +89.9689 179.457 122.364 +88.5195 181.018 123.429 +87.1173 182.725 124.592 +91.4555 196.845 134.22 +90.9489 200.979 137.039 +88.5832 201.084 137.11 +86.0888 200.858 136.956 +83.7036 200.846 136.949 +81.4204 201.051 137.088 +79.3247 201.708 137.536 +76.5898 200.697 136.847 +74.3501 200.925 137.002 +72.0831 201.057 137.092 +69.9568 201.569 137.442 +67.2906 200.474 136.694 +65.1965 201.032 137.075 +62.7953 200.613 136.79 +60.6014 200.818 136.929 +58.3147 200.685 136.839 +56.2153 201.179 137.175 +53.9151 200.931 137.006 +51.6453 200.746 136.88 +49.3635 200.463 136.687 +47.2252 200.731 136.87 +44.9393 200.333 136.598 +42.8564 200.812 136.925 +40.6347 200.624 136.797 +38.4985 200.827 136.936 +36.2724 200.525 136.729 +34.1252 200.616 136.791 +31.9006 200.199 136.507 +29.7849 200.421 136.658 +27.6669 200.628 136.8 +25.4945 200.409 136.651 +23.3384 200.257 136.546 +21.1963 200.171 136.488 +18.9243 198.668 135.463 +16.895 199.621 136.113 +14.7799 199.653 136.135 +12.6601 199.586 136.089 +10.5428 199.506 136.034 +8.43172 199.491 136.025 +6.31912 199.379 135.948 +4.22174 199.83 136.256 +2.10135 198.945 135.652 +1.47871e-14 199.53 136.051 +-2.1031 199.11 135.764 +-4.20952 199.252 135.861 +-6.3165 199.296 135.892 +-8.41078 198.996 135.687 +-10.5123 198.928 135.64 +-12.6496 199.422 135.977 +-14.7799 199.653 136.135 +-16.9229 199.951 136.338 +-19.0106 199.574 136.081 +-21.1004 199.265 135.87 +-23.2234 199.269 135.873 +-25.3377 199.177 135.81 +-27.4178 198.822 135.568 +-29.6143 199.273 135.876 +-31.744 199.216 135.837 +-33.8469 198.979 135.675 +-36.0212 199.136 135.782 +-38.1231 198.869 135.6 +-40.2551 198.75 135.519 +-42.457 198.94 135.648 +-44.4837 198.302 135.213 +-46.7291 198.621 135.431 +-48.8451 198.359 135.252 +-51.2086 199.049 135.723 +-53.3091 198.673 135.466 +-55.5629 198.844 135.583 +-57.8711 199.159 135.798 +-59.9966 198.814 135.563 +-62.0942 198.374 135.263 +-64.5754 199.116 135.768 +-66.7027 198.722 135.5 +-68.9369 198.631 135.438 +-71.2026 198.602 135.418 +-73.5607 198.792 135.547 +-75.9282 198.964 135.665 +-78.3667 199.273 135.875 +-80.3733 198.464 135.324 +-83.0524 199.284 135.883 +-85.2543 198.911 135.629 +-87.6598 198.987 135.681 +-89.7582 198.348 135.245 +-92.5664 199.236 135.851 +-94.9238 199.099 135.757 +-97.2853 198.944 135.651 +-99.6125 198.693 135.48 +-102.059 198.651 135.452 +-104.074 197.756 134.842 +-107.297 199.111 135.766 +-109.52 198.556 135.387 +-111.867 198.208 135.15 +-114.387 198.14 135.103 +-117.308 198.718 135.497 +-119.715 198.383 135.269 +-122.35 198.395 135.277 +-125.226 198.751 135.52 +-127.696 198.425 135.297 +-130.073 197.932 134.962 +-132.789 197.926 134.957 +-138.519 202.282 137.928 +-141.9 203.065 138.461 +-144.598 202.817 138.292 +-144.365 198.509 135.355 +-143.948 194.079 132.334 +-144.933 191.633 130.666 +-146.79 190.372 129.806 +-150.375 191.315 130.45 +-159.234 198.767 135.531 +-164.459 201.447 137.358 +-168.562 202.637 138.169 +-633.859 747.925 509.978 +-639.006 740.165 504.687 +-143.008 162.627 110.888 +-143.828 160.593 109.502 +-143.834 157.702 107.531 +-144.155 155.217 105.836 +-143.326 151.568 103.348 +-143.303 148.847 101.492 +-144.87 147.809 100.784 +-151.45 151.795 103.503 +-678.205 667.789 455.336 +-702.053 679.146 463.08 +-705.526 670.566 457.23 +-701.251 654.872 446.529 +-693.085 635.976 433.645 +-701.465 632.478 431.26 +-705.937 625.463 426.476 +-710.726 618.791 421.927 +-714.803 611.563 416.999 +-720.675 605.914 413.147 +-723.936 598.125 407.836 +-729.655 592.419 403.945 +-733.727 585.414 399.169 +-739.882 580.102 395.547 +-743.64 572.942 390.665 +-749 567.056 386.651 +-753.4 560.474 382.163 +-758.617 554.527 378.108 +-762.86 547.898 373.588 +-768.39 542.216 369.714 +-773.169 536.019 365.488 +-778.415 530.161 361.494 +-782.586 523.592 357.015 +-788.086 517.929 353.154 +-793.448 512.177 349.232 +-798.827 506.437 345.318 +-804.146 500.658 341.377 +-809.403 494.841 337.411 +-813.628 488.404 333.022 +-820.954 483.814 329.892 +-825.296 477.45 325.553 +-830.637 471.669 321.611 +-836.25 466.032 317.767 +-842.475 460.714 314.141 +-848.735 455.388 310.509 +-881.26 463.855 316.283 +-885.956 457.397 311.879 +-899.109 455.222 310.397 +-385.382 191.319 130.452 +-383.856 186.813 127.38 +-384.429 183.378 125.037 +-380.955 178.077 121.423 +-2865.69 1312.42 894.884 +-381.846 171.294 116.798 +-382.758 168.147 114.653 +-384.697 165.457 112.818 +-381.44 160.577 109.49 +-385.001 158.595 108.139 +-137.695 55.4872 37.8343 +-383.87 151.276 103.149 +-382.099 147.211 100.377 +-382.821 144.142 98.2841 +-383.232 140.973 96.1237 +-984.189 353.568 241.083 +-992.212 347.975 237.269 +-383.318 131.182 89.4473 +-381.443 127.33 86.8209 +-380.262 123.758 84.3849 +-379.407 120.33 82.0481 +-381.413 117.821 80.3372 +-382.737 115.096 78.4787 +-381.77 111.697 76.1616 +-380.949 108.375 73.8963 +-384.83 106.385 72.5392 +-379.376 101.845 69.4435 +-1120.24 291.826 198.983 +-380.609 96.1414 65.5547 +-386.788 94.6608 64.5451 +-379.025 89.7961 61.2281 +-380.441 87.1704 59.4377 +-379.512 84.0175 57.288 +-380.385 81.2781 55.42 +-380.356 78.3525 53.4252 +-380.391 75.4529 51.4481 +-381.174 72.7074 49.5761 +-380.755 69.7417 47.5539 +-382.358 67.1485 45.7857 +-380.995 64.0433 43.6684 +-383.129 61.5303 41.9549 +-381.405 58.4043 39.8234 +-380.53 55.437 37.8001 +-379.917 52.5275 35.8163 +-380.161 49.7476 33.9207 +-381.266 47.078 32.1005 +-381.154 44.2583 30.1778 +-380.318 41.3683 28.2073 +-380.344 38.5844 26.309 +-379.743 35.7472 24.3744 +-381.598 33.1374 22.595 +-378.947 30.1473 20.5561 +-379.451 27.4283 18.7022 +-379.526 24.6785 16.8272 +-379.473 21.9239 14.949 +-378.792 19.1416 13.0518 +-146.1 6.3261 4.3135 +-378.24 13.6443 9.30348 +-380.268 10.9715 7.48101 +-150.149 3.24849 2.215 +-145.278 2.09513 1.42858 +-145.694 1.0505 0.716288 +97.1 0 0 +97.0963 0.704366 0.471026 +96.9852 1.40722 0.941044 +96.9668 2.1107 1.41148 +97.0408 2.81692 1.88375 +96.9077 3.51713 2.35199 +96.8671 4.21997 2.82199 +96.9189 4.92755 3.29517 +96.8635 5.63042 3.76519 +96.8007 6.33286 4.23493 +97.7267 7.10726 4.75279 +97.5488 7.80793 5.22135 +97.5626 8.52391 5.70014 +97.4694 9.23131 6.1732 +97.3688 9.93805 6.64581 +97.1616 10.6331 7.11064 +97.0463 11.3376 7.5817 +96.8247 12.0287 8.04391 +96.6947 12.7307 8.5133 +96.3601 13.4042 8.96373 +97.102 14.2326 9.51767 +96.8506 14.9213 9.97822 +96.6903 15.6233 10.4477 +96.5226 16.324 10.9163 +96.3475 17.0236 11.3841 +96.2628 17.7398 11.8631 +96.0729 18.4375 12.3296 +96.6536 19.289 12.899 +96.5444 20.0094 13.3808 +96.2339 20.6882 13.8347 +96.979 21.6006 14.4449 +96.7485 22.3033 14.9147 +96.4145 22.9813 15.3682 +97.0326 23.8924 15.9774 +96.778 24.5953 16.4475 +96.6115 25.3214 16.933 +97.1029 26.2268 17.5385 +96.8238 26.9302 18.0089 +97.2939 27.848 18.6227 +96.9978 28.5527 19.0939 +96.6004 29.2269 19.5447 +97.2266 30.2176 20.2072 +97.7459 31.1898 20.8574 +97.4147 31.8977 21.3308 +97.0761 32.6031 21.8025 +97.5617 33.5924 22.464 +97.2974 34.3313 22.9582 +97.025 35.069 23.4515 +96.6531 35.7714 23.9212 +97.1839 36.8158 24.6196 +96.7937 37.5194 25.0901 +97.2084 38.5422 25.7741 +97.5192 39.5375 26.4397 +97.1899 40.2805 26.9365 +97.387 41.2481 27.5836 +96.9503 41.953 28.0549 +97.2125 42.9668 28.733 +96.7578 43.6704 29.2035 +97.0828 44.7333 29.9143 +96.5224 45.3949 30.3567 +96.8216 46.4674 31.0739 +96.3301 47.168 31.5424 +96.517 48.2075 32.2375 +96.6894 49.2532 32.9368 +96.7623 50.2611 33.6108 +96.231 50.9611 34.0789 +96.4471 52.0647 34.8169 +96.6474 53.1753 35.5596 +96.0855 53.8744 36.0271 +96.9172 55.3697 37.0271 +96.1684 55.9753 37.432 +96.4727 57.2018 38.2522 +96.273 58.1437 38.8821 +96.3824 59.2849 39.6452 +95.7564 59.9817 40.1112 +96.4718 61.5344 41.1495 +95.9009 62.283 41.6501 +95.8695 63.3902 42.3906 +95.7444 64.4495 43.0989 +95.8358 65.6703 43.9153 +96.445 67.2714 44.986 +96.4195 68.4543 45.777 +95.6972 69.1511 46.243 +96.3157 70.8341 47.3685 +95.5684 71.5301 47.8339 +96.0672 73.1753 48.9341 +95.9536 74.3797 49.7395 +95.822 75.5878 50.5474 +95.6722 76.7998 51.3579 +95.5756 78.0734 52.2096 +95.318 79.2341 52.9857 +95.7442 80.9897 54.1597 +95.585 82.2791 55.022 +95.3371 83.5117 55.8463 +95.7526 85.3555 57.0792 +94.7177 85.924 57.4595 +93.2768 86.1136 57.5862 +92.8331 87.2233 58.3283 +92.6355 88.5832 59.2377 +92.1567 89.6946 59.981 +92.3686 91.5059 61.1922 +92.4222 93.1984 62.324 +92.0066 94.4469 63.1589 +92.0699 96.2167 64.3424 +91.7336 97.6016 65.2685 +91.6186 99.2525 66.3725 +92.1379 101.639 67.9684 +92.1975 103.573 69.262 +92.0472 105.314 70.426 +91.3446 106.451 71.1865 +92.6326 109.97 73.5395 +91.7578 110.98 74.2149 +91.1484 112.331 75.1182 +91.7319 115.206 77.041 +91.4449 117.052 78.2756 +91.6633 119.604 79.9822 +91.5171 121.745 81.4136 +91.0715 123.538 82.6126 +90.7497 125.548 83.9568 +90.7986 128.135 85.6867 +90.65 130.516 87.2793 +90.6552 133.194 89.0703 +91.1442 136.683 91.4034 +92.9028 142.234 95.115 +93.1432 145.618 97.378 +92.8115 148.205 99.1079 +92.7957 151.391 101.239 +92.4968 154.215 103.128 +92.3648 157.421 105.271 +92.6029 161.386 107.923 +92.3844 164.688 110.131 +92.1448 168.075 112.396 +92.1665 172.078 115.073 +92.2307 176.324 117.912 +91.392 178.975 119.685 +90.1219 180.861 120.946 +88.4821 182.047 121.739 +87.154 183.919 122.991 +91.7422 198.669 132.855 +91.0189 202.363 135.325 +88.1728 201.375 134.664 +85.8217 201.458 134.72 +83.8012 202.309 135.289 +81.4204 202.279 135.269 +78.9229 201.913 135.024 +76.5296 201.764 134.925 +74.0285 201.278 134.599 +71.8275 201.569 134.794 +69.7087 202.082 135.137 +67.3173 201.779 134.935 +64.9377 201.457 134.719 +62.7703 201.759 134.921 +60.6498 202.207 135.22 +58.3613 202.073 135.131 +56.0128 201.679 134.867 +53.742 201.509 134.754 +51.6245 201.891 135.01 +49.3236 201.525 134.765 +47.0153 201.059 134.453 +44.9393 201.556 134.786 +42.8564 202.039 135.108 +40.6347 201.85 134.982 +38.3734 201.398 134.679 +36.0951 200.764 134.256 +34.0139 201.183 134.536 +31.9006 201.422 134.696 +29.6752 200.903 134.349 +27.531 200.863 134.322 +25.39 200.807 134.284 +23.2522 200.735 134.236 +21.1091 200.565 134.122 +18.9479 200.131 133.832 +16.8741 200.592 134.141 +14.7737 200.79 134.273 +12.6496 200.64 134.173 +10.5035 199.977 133.729 +8.43521 200.793 134.275 +6.32173 200.68 134.2 +4.20603 200.303 133.947 +2.10222 200.243 133.907 +1.47443e-14 200.167 133.857 +-2.10397 200.409 134.019 +-4.20778 200.386 134.003 +-6.3165 200.514 134.089 +-8.41427 200.295 133.942 +-10.521 200.309 133.951 +-12.6182 200.142 133.84 +-14.7127 199.96 133.718 +-16.8462 200.261 133.919 +-18.9871 200.545 134.109 +-21.1876 201.31 134.621 +-23.2618 200.818 134.292 +-25.2645 199.815 133.621 +-27.4405 200.202 133.88 +-29.5289 199.913 133.687 +-31.6395 199.773 133.593 +-33.833 200.113 133.82 +-35.9029 199.695 133.541 +-38.0136 199.509 133.417 +-40.1066 199.226 133.227 +-42.3007 199.418 133.356 +-44.4837 199.513 133.419 +-46.5765 199.182 133.198 +-48.8651 199.652 133.512 +-51.2086 200.266 133.922 +-53.2874 199.805 133.614 +-55.5404 199.978 133.73 +-57.4276 198.84 132.969 +-59.8031 199.384 133.333 +-62.1193 199.666 133.522 +-64.3942 199.77 133.591 +-66.7294 200.017 133.756 +-68.9645 199.925 133.694 +-71.2026 199.815 133.621 +-73.5315 199.927 133.696 +-75.7478 199.703 133.546 +-78.0268 199.62 133.491 +-80.3415 199.599 133.477 +-82.8571 200.029 133.765 +-84.9538 199.421 133.358 +-87.694 200.281 133.933 +-89.7582 199.56 133.45 +-92.2081 199.677 133.529 +-94.594 199.62 133.49 +-96.9107 199.388 133.335 +-99.3829 199.446 133.374 +-102.098 199.941 133.706 +-104.472 199.727 133.562 +-106.768 199.341 133.304 +-109.52 199.769 133.591 +-111.867 199.419 133.356 +-114.473 199.5 133.41 +-116.914 199.26 133.25 +-119.492 199.222 133.225 +-121.896 198.867 132.987 +-124.395 198.639 132.835 +-127.321 199.049 133.109 +-129.692 198.556 132.779 +-132.45 198.626 132.826 +-138.47 203.446 136.049 +-141.45 203.658 136.191 +-144.344 203.698 136.218 +-143.953 199.152 133.177 +-144.001 195.336 130.626 +-144.562 192.31 128.603 +-146.36 190.974 127.709 +-150.375 192.484 128.719 +-159.951 200.882 134.335 +-163.62 201.644 134.844 +-166.977 201.956 135.053 +-634.892 753.719 504.03 +-639.644 745.431 498.488 +-142.126 162.611 108.742 +-143.59 161.307 107.87 +-144.496 159.396 106.592 +-143.546 155.506 103.991 +-143.572 152.756 102.151 +-143.552 150.017 100.32 +-146.569 150.456 100.613 +-152.85 154.133 103.072 +-681.419 675.053 451.424 +-702.898 684.116 457.485 +-707.035 676.106 452.129 +-710.991 668.025 446.724 +-692.349 639.183 427.437 +-701.736 636.587 425.701 +-706.891 630.135 421.386 +-712.309 623.958 417.256 +-716.401 616.674 412.385 +-721.586 610.387 408.18 +-725.774 603.307 403.446 +-731.438 597.495 399.559 +-735.237 590.203 394.683 +-740.172 583.875 390.451 +-744.664 577.236 386.012 +-750.032 571.307 382.047 +-754.664 564.843 377.724 +-758.917 558.135 373.239 +-764.445 552.391 369.397 +-768.846 545.853 365.025 +-774.088 539.934 361.067 +-779.495 534.139 357.192 +-783.674 527.523 352.768 +-789.886 522.284 349.264 +-793.921 515.613 344.803 +-799.621 510.037 341.074 +-805.344 504.467 337.349 +-810.207 498.359 333.264 +-815.813 492.707 329.485 +-820.547 486.529 325.354 +-826.361 480.987 321.648 +-832.78 475.775 318.162 +-837.494 469.576 314.017 +-843.892 464.309 310.494 +-853.431 460.705 308.085 +-881.428 466.779 312.146 +-887.228 460.852 308.183 +-900.473 458.698 306.743 +-383.925 191.76 128.235 +-382.477 187.28 125.238 +-383.996 184.29 123.239 +-381.216 179.288 119.894 +-382.034 176.032 117.717 +-382.725 172.738 115.514 +-383.288 169.409 113.288 +-383.011 165.739 110.834 +-381.44 161.558 108.038 +-384.464 159.342 106.556 +-136.886 55.4982 37.113 +-382.877 151.807 101.517 +-382.915 148.426 99.2564 +-382.002 144.712 96.7727 +-382.41 141.53 94.6447 +-985.656 356.257 238.238 +-994.329 350.848 234.621 +-382.763 131.793 88.1331 +-380.331 127.735 85.4193 +-382.122 125.123 83.6727 +-378.847 120.887 80.8399 +-382.069 118.746 79.408 +-381.609 115.457 77.2089 +-382.053 112.463 75.2066 +-387.757 110.987 74.2194 +-382.08 106.27 71.0653 +-380.898 102.878 68.7967 +-1119.09 293.308 196.142 +-381.757 97.0205 64.88 +-1155.28 284.466 190.229 +-379.987 90.5733 60.5685 +-380.441 87.7029 58.6491 +-379.512 84.5308 56.5278 +-380.385 81.7746 54.6847 +-379.968 78.7508 52.6625 +-380.78 75.9915 50.8173 +-382.051 73.3199 49.0308 +-381.634 70.3298 47.0312 +-381.771 67.455 45.1088 +-381.779 64.567 43.1775 +-380.479 61.478 41.1118 +-380.52 58.6247 39.2037 +-380.234 55.7323 37.2696 +-381.397 53.0543 35.4787 +-381.05 50.1685 33.5489 +-379.386 47.1322 31.5184 +-382.343 44.6675 29.8702 +-380.417 41.6319 27.8403 +-380.344 38.8201 25.9599 +-380.24 36.0126 24.0825 +-380.106 33.2095 22.208 +-381.038 30.4988 20.3953 +-378.554 27.5307 18.4104 +-379.925 24.8553 16.6214 +-379.972 22.0867 14.7699 +-379.291 19.2839 12.8956 +-146.499 6.38215 4.2679 +-379.139 13.7603 9.20188 +-379.269 11.0095 7.36235 +-147.05 3.20088 2.1405 +-146.778 2.1297 1.42418 +-145.694 1.05691 0.706784 +97.1 0 0 +96.9963 0.707856 0.464174 +97.0852 1.41712 0.92927 +96.9668 2.12335 1.39238 +97.0408 2.8338 1.85826 +97.0076 3.54185 2.32255 +96.9669 4.24963 2.78668 +96.9189 4.95708 3.25058 +97.7613 5.71665 3.74867 +96.8007 6.3708 4.17763 +97.7267 7.14985 4.68848 +97.6484 7.86273 5.15596 +97.5626 8.57498 5.62301 +97.4694 9.28663 6.08967 +97.3688 9.9976 6.55588 +97.2607 10.7077 7.02155 +97.1453 11.4171 7.48673 +96.9236 12.1132 7.94319 +96.6947 12.807 8.39811 +96.3601 13.4846 8.84244 +96.2157 14.1872 9.30318 +96.8506 15.0107 9.8432 +96.7884 15.7329 10.3168 +96.5226 16.4219 10.7686 +96.4454 17.143 11.2415 +96.2628 17.8461 11.7025 +96.9498 18.7173 12.2738 +96.7508 19.424 12.7372 +96.5444 20.1293 13.1997 +96.3307 20.8331 13.6612 +96.979 21.7301 14.2494 +96.6521 22.4146 14.6983 +97.2797 23.3265 15.2963 +97.0326 24.0356 15.7612 +96.778 24.7427 16.2249 +96.5162 25.448 16.6874 +97.0078 26.3581 17.2842 +96.729 27.065 17.7478 +97.2939 28.0149 18.3707 +96.9978 28.7238 18.8355 +96.6004 29.402 19.2802 +97.2266 30.3986 19.9338 +97.7459 31.3767 20.5751 +97.4147 32.0888 21.0421 +97.9106 33.0804 21.6924 +97.6541 33.8256 22.181 +97.2974 34.537 22.6475 +97.8503 35.5791 23.3309 +97.5667 36.3259 23.8206 +97.0929 37.0018 24.2638 +97.5187 38.027 24.936 +97.2084 38.7732 25.4253 +97.609 39.811 26.1059 +97.1899 40.5218 26.572 +97.387 41.4953 27.2104 +97.6599 42.5132 27.8779 +97.2125 43.2243 28.3442 +96.7578 43.9321 28.8083 +97.0828 45.0014 29.5095 +96.5224 45.667 29.9459 +96.8216 46.7459 30.6534 +97.1056 47.8327 31.3661 +96.517 48.4964 31.8013 +96.6894 49.5484 32.4912 +96.8471 50.6066 33.1851 +96.231 51.2665 33.6178 +96.4471 52.3767 34.3458 +96.6474 53.4939 35.0784 +96.0855 54.1972 35.5396 +96.0931 55.2279 36.2155 +96.1684 56.3107 36.9255 +96.3099 57.4474 37.6709 +96.3539 58.5412 38.3882 +96.4628 59.6898 39.1414 +95.8363 60.3915 39.6015 +96.5511 61.954 40.6261 +95.9009 62.6562 41.0866 +96.4956 64.1866 42.0901 +95.8221 64.8883 42.5502 +96.5302 66.5426 43.635 +95.8322 67.2444 44.0953 +96.4195 68.8645 45.1576 +95.6217 69.5106 45.5813 +95.7165 70.8152 46.4368 +96.2373 72.4623 47.5169 +96.0672 73.6138 48.272 +95.9536 74.8254 49.0664 +95.7494 75.9832 49.8257 +95.6722 77.26 50.6629 +95.5042 78.4827 51.4647 +95.3887 79.768 52.3075 +95.8143 81.5346 53.466 +95.585 82.7722 54.2775 +95.4059 84.0732 55.1307 +95.207 85.3777 55.9861 +94.7177 86.4389 56.682 +93.2768 86.6296 56.807 +92.568 87.4951 57.3745 +92.7667 89.2403 58.519 +92.2216 90.2957 59.211 +92.3043 91.9899 60.322 +92.5494 93.8856 61.5651 +92.5101 95.5322 62.6449 +92.6302 97.382 63.8578 +92.2261 98.7133 64.7308 +91.6186 99.8472 65.4744 +92.1379 102.248 67.0487 +92.0786 104.059 68.2365 +91.9296 105.81 69.3842 +91.6349 107.429 70.4464 +92.9767 111.04 72.8142 +91.9277 111.852 73.3467 +91.7076 113.697 74.5564 +91.7319 115.896 75.9986 +91.4449 117.754 77.2165 +91.6633 120.321 78.8999 +91.4111 122.332 80.2188 +91.3327 124.635 81.7289 +90.7497 126.3 82.8207 +90.7986 128.902 84.5272 +90.65 131.298 86.0983 +90.7044 134.066 87.9134 +90.7564 136.917 89.7827 +92.8551 143.012 93.7797 +93.1432 146.49 96.0604 +93.1809 149.686 98.1562 +92.8411 152.372 99.9176 +92.4968 155.139 101.732 +92.3648 158.364 103.847 +92.6029 162.353 106.462 +92.3844 165.675 108.641 +92.4766 169.691 111.274 +92.1665 173.109 113.516 +92.2307 177.38 116.316 +91.392 180.048 118.066 +90.2368 182.176 119.461 +88.4821 183.138 120.092 +87.6671 186.11 122.041 +91.4555 199.234 130.647 +90.9489 203.419 133.391 +88.1728 202.582 132.842 +85.8885 202.824 133.001 +83.4757 202.731 132.94 +81.1031 202.698 132.919 +78.9229 203.123 133.197 +76.4996 202.894 133.047 +74.0285 202.484 132.778 +71.7991 202.696 132.917 +69.7363 203.373 133.361 +67.0768 202.262 132.633 +64.9636 202.744 132.949 +62.57 202.32 132.671 +60.4321 202.688 132.912 +58.1279 202.471 132.769 +56.0353 202.969 133.096 +53.5472 201.982 132.449 +51.4581 202.447 132.754 +49.1641 202.077 132.511 +47.0153 202.264 132.634 +44.8117 202.188 132.584 +42.6654 202.343 132.685 +40.4367 202.069 132.506 +38.3264 202.357 132.695 +36.0803 201.885 132.385 +34.0139 202.389 132.716 +31.7701 201.8 132.33 +29.6752 202.107 132.531 +27.5423 202.15 132.559 +25.39 202.01 132.467 +23.2618 202.022 132.475 +21.1266 201.934 132.417 +18.9322 201.163 131.912 +16.8253 201.21 131.942 +14.7005 200.991 131.799 +12.6025 201.091 131.865 +10.5079 201.259 131.975 +8.40729 201.328 132.02 +6.29294 200.964 131.781 +4.20428 201.42 132.08 +2.1031 201.527 132.15 +1.47443e-14 201.367 132.046 +-2.10222 201.443 132.095 +-4.19556 201.001 131.806 +-6.3165 201.716 132.274 +-8.41427 201.495 132.129 +-10.4861 200.841 131.701 +-12.6182 201.342 132.029 +-14.731 201.409 132.073 +-16.8392 201.377 132.052 +-18.9871 201.747 132.294 +-21.1788 202.433 132.745 +-23.1659 201.189 131.929 +-25.39 202.01 132.467 +-27.4178 201.236 131.959 +-29.5289 201.111 131.878 +-31.6265 200.888 131.731 +-33.833 201.312 132.009 +-35.8142 200.396 131.409 +-38.0292 200.787 131.666 +-40.1231 200.502 131.479 +-42.3181 200.696 131.606 +-44.4837 200.709 131.614 +-46.5765 200.376 131.396 +-48.8451 200.766 131.652 +-51.0007 200.648 131.574 +-53.2874 201.002 131.806 +-55.338 200.443 131.44 +-57.4742 200.194 131.276 +-59.7789 200.497 131.475 +-62.0942 200.782 131.662 +-64.4201 201.048 131.837 +-66.4889 200.49 131.47 +-68.7715 200.56 131.516 +-70.9754 200.371 131.392 +-73.5022 201.045 131.834 +-75.7478 200.899 131.739 +-78.0268 200.817 131.685 +-80.3733 200.873 131.722 +-82.8245 201.149 131.903 +-85.0206 200.774 131.657 +-87.3519 200.695 131.605 +-89.7582 200.756 131.645 +-92.1722 200.796 131.671 +-94.594 200.816 131.684 +-96.9107 200.582 131.531 +-99.4212 200.718 131.62 +-101.825 200.601 131.543 +-104.113 200.233 131.302 +-106.85 200.688 131.6 +-109.147 200.281 131.334 +-111.867 200.614 131.552 +-114.473 200.695 131.605 +-116.914 200.454 131.447 +-119.09 199.743 130.981 +-121.987 200.207 131.285 +-124.487 199.977 131.134 +-127.415 200.39 131.405 +-129.883 200.041 131.176 +-132.256 199.524 130.837 +-138.47 204.665 134.208 +-141.35 204.733 134.253 +-144.039 204.486 134.091 +-143.953 200.345 131.375 +-144.001 196.507 128.858 +-144.35 193.178 126.676 +-145.447 190.919 125.194 +-150.103 193.287 126.747 +-157.688 199.227 130.642 +-163.005 202.089 132.519 +-165.674 201.582 132.186 +-635.637 759.126 497.794 +-146.802 172.105 112.857 +-142.891 164.465 107.847 +-143.59 162.273 106.41 +-144.255 160.084 104.975 +-143.729 156.637 102.714 +-143.634 153.737 100.812 +-143.116 150.458 98.6624 +-148.457 153.307 100.531 +-153.74 155.961 102.271 +-684.247 681.916 447.164 +-703.092 688.406 451.42 +-708.413 681.482 446.879 +-713.31 674.22 442.117 +-693.42 644.007 422.305 +-701.938 640.587 420.062 +-707.71 634.645 416.166 +-712.929 628.243 411.968 +-717.235 621.091 407.278 +-722.287 614.641 403.049 +-726.411 607.455 398.336 +-731.51 601.134 394.192 +-736.244 594.553 389.876 +-740.752 587.834 385.47 +-745.542 581.379 381.237 +-750.991 575.464 377.358 +-754.292 567.948 372.43 +-760.19 562.422 368.806 +-764.068 555.426 364.219 +-770.215 550.101 360.727 +-774.777 543.653 356.498 +-780.421 537.979 352.778 +-784.684 531.369 348.443 +-789.886 525.414 344.538 +-795.339 519.629 340.745 +-800.732 513.806 336.926 +-805.344 507.49 332.784 +-811.333 502.042 329.212 +-816.055 495.807 325.123 +-822.419 490.561 321.683 +-827.507 484.541 317.736 +-832.862 478.673 313.888 +-838.986 473.231 310.32 +-844.643 467.506 306.566 +-856.199 464.968 304.901 +-883.284 470.565 308.571 +-888.924 464.499 304.594 +-902.008 462.233 303.108 +-383.411 192.651 126.33 +-384.545 189.42 124.212 +-383.476 185.144 121.407 +-382.173 180.815 118.568 +-382.384 177.249 116.23 +-380.001 172.536 113.14 +-383.817 170.659 111.909 +-383.011 166.732 109.334 +-382.153 162.83 106.775 +-384.106 160.147 105.016 +-136.617 55.7208 36.5387 +-382.877 152.717 100.143 +-382.099 148.998 97.7049 +-382.912 145.927 95.6908 +-382.41 142.378 93.3641 +-986.757 358.793 235.277 +-994.79 353.114 231.553 +-381.655 132.199 86.6889 +-380.98 128.719 84.4071 +-381.75 125.75 82.4599 +-379.407 121.791 79.864 +-380.008 118.812 77.9107 +-381.421 116.092 76.1269 +-381.393 112.941 74.0607 +-1113.54 320.633 210.254 +-381.89 106.854 70.0691 +-379.662 103.159 67.6459 +-1121.57 295.72 193.917 +-381.757 97.6019 64.0021 +-1158.64 287.001 188.2 +-380.948 91.3468 59.9003 +-381.309 88.4292 57.9871 +-381.058 85.3836 55.9899 +-381.934 82.5996 54.1644 +-379.192 79.0608 51.8438 +-379.808 76.2516 50.0017 +-382.44 73.8345 48.4167 +-380.755 70.5883 46.288 +-381.282 67.7723 44.4414 +-380.995 64.8206 42.5059 +-381.068 61.9421 40.6183 +-381.306 59.0979 38.7532 +-382.302 56.3712 36.9652 +-381.693 53.4136 35.0257 +-381.05 50.4692 33.095 +-380.573 47.563 31.1892 +-380.659 44.7373 29.3363 +-379.426 41.7723 27.392 +-380.84 39.1037 25.6421 +-379.743 36.1811 23.7256 +-381.101 33.4959 21.9648 +-379.345 30.5452 20.0299 +-380.546 27.8414 18.2569 +-380.224 25.0239 16.4093 +-379.074 22.1667 14.5357 +-379.69 19.4199 12.7346 +-146.998 6.44228 4.2245 +-380.138 13.8793 9.10127 +-379.269 11.0755 7.26272 +-148.249 3.24632 2.12876 +-144.778 2.11327 1.38577 +-144.794 1.05667 0.69291 +97.1 0 0 +97.0963 0.712749 0.458241 +97.0852 1.42545 0.916448 +97.0667 2.13803 1.37458 +97.1408 2.85339 1.8345 +97.1075 3.56633 2.29286 +96.9669 4.27459 2.74822 +97.8172 5.03242 3.23545 +97.861 5.75611 3.70072 +96.9004 6.41483 4.12422 +97.7267 7.19185 4.62379 +97.6484 7.90893 5.08481 +97.5626 8.62536 5.54542 +97.5688 9.35077 6.01181 +97.3688 10.0563 6.46543 +97.2607 10.7706 6.92467 +97.1453 11.4842 7.38343 +96.9236 12.1844 7.83358 +97.5836 13.0006 8.35837 +96.5574 13.5915 8.73828 +97.102 14.402 9.25934 +96.9489 15.1142 9.71723 +96.7884 15.8253 10.1744 +96.6206 16.5352 10.6308 +97.2279 17.3836 11.1763 +96.458 17.9874 11.5645 +96.9498 18.8272 12.1044 +96.7508 19.5382 12.5615 +96.5444 20.2476 13.0176 +97.202 21.1451 13.5946 +96.979 21.8577 14.0528 +96.7485 22.5688 14.5099 +96.4145 23.2549 14.951 +97.0326 24.1768 15.5438 +97.6387 25.1095 16.1434 +97.3745 25.8252 16.6036 +97.1029 26.5389 17.0624 +96.729 27.224 17.5029 +97.2939 28.1795 18.1172 +96.9978 28.8926 18.5756 +96.6004 29.5747 19.0142 +97.3202 30.6067 19.6777 +97.7459 31.561 20.2912 +97.5078 32.3081 20.7716 +97.0761 32.9912 21.2107 +97.7465 34.0566 21.8957 +97.2974 34.7399 22.335 +97.8503 35.7882 23.009 +97.5667 36.5393 23.4919 +97.2749 37.289 23.9738 +96.8843 38.0016 24.432 +97.1182 38.9648 25.0513 +97.609 40.0449 25.7457 +97.1899 40.7599 26.2054 +97.387 41.7391 26.8349 +97.1277 42.53 27.3434 +97.2125 43.4783 27.9531 +97.4608 44.5113 28.6172 +97.0828 45.2658 29.1023 +97.3058 46.3081 29.7724 +96.8216 47.0205 30.2305 +97.1056 48.1137 30.9333 +96.517 48.7813 31.3625 +96.8599 49.9274 32.0993 +96.9319 50.9485 32.7559 +96.3153 51.6129 33.183 +96.531 52.7303 33.9014 +96.6474 53.8082 34.5944 +96.0855 54.5156 35.0492 +96.2579 55.6476 35.777 +96.1684 56.6416 36.416 +96.4727 57.8826 37.2139 +96.3539 58.8852 37.8585 +96.6236 60.1406 38.6656 +95.8363 60.7463 39.0551 +95.8371 61.8571 39.7692 +95.8221 62.9725 40.4863 +95.9478 64.1971 41.2737 +95.8998 65.3224 41.9971 +95.7586 66.3984 42.6889 +95.9088 67.6936 43.5216 +95.8112 68.8321 44.2536 +95.6972 69.9742 44.9878 +95.6416 71.1756 45.7603 +96.2373 72.888 46.8612 +96.0672 74.0463 47.6059 +95.9536 75.265 48.3894 +95.7494 76.4296 49.1382 +95.7441 77.7723 50.0014 +95.5042 78.9438 50.7546 +95.3887 80.2366 51.5858 +95.8143 82.0136 52.7283 +95.5155 83.1979 53.4896 +95.4748 84.6277 54.4089 +95.207 85.8793 55.2136 +94.5826 86.8231 55.8204 +93.2768 87.1385 56.0232 +92.568 88.0091 56.5829 +92.7667 89.7646 57.7115 +92.2216 90.8261 58.394 +92.4329 92.659 59.5724 +92.4222 94.3077 60.6324 +92.5101 96.0935 61.7805 +92.0077 97.2955 62.5533 +91.8567 98.8953 63.5819 +91.5577 100.367 64.5277 +92.0777 102.781 66.0803 +92.6139 105.28 67.6865 +91.8708 106.363 68.383 +91.9253 108.403 69.6945 +92.8047 111.486 71.6765 +91.5879 112.093 72.0669 +91.2603 113.807 73.1691 +91.7871 116.647 74.9948 +91.3904 118.375 76.1056 +91.2335 120.46 77.4462 +91.4111 123.051 79.1119 +91.0192 124.937 80.3243 +90.7497 127.042 81.6779 +90.7986 129.66 83.3609 +90.65 132.07 84.9103 +90.9506 135.22 86.9356 +90.9503 138.016 88.7332 +93.2845 144.518 92.9135 +93.0962 147.277 94.6873 +93.227 150.64 96.8494 +92.8411 153.268 98.5389 +92.4968 156.051 100.328 +92.3648 159.294 102.414 +92.5599 163.231 104.945 +92.3844 166.649 107.142 +92.0619 169.922 109.247 +92.1665 174.126 111.95 +91.9117 177.805 114.314 +91.3529 181.028 116.387 +90.1219 183.013 117.663 +88.07 183.356 117.883 +88.2901 188.535 121.213 +91.4197 200.326 128.794 +90.7037 204.062 131.196 +88.1044 203.614 130.908 +85.7216 203.618 130.91 +83.5082 204.002 131.157 +80.754 203.011 130.52 +78.6448 203.596 130.896 +76.1988 203.283 130.695 +73.9993 203.594 130.895 +71.5719 203.242 130.669 +69.5157 203.921 131.105 +67.1036 203.532 130.855 +64.9118 203.773 131.01 +62.5449 203.427 130.788 +60.4321 203.879 131.078 +57.9411 203.006 130.517 +55.8329 203.424 130.785 +53.5688 203.251 130.674 +51.4374 203.554 130.869 +49.1841 203.346 130.736 +47.0535 203.617 130.91 +44.8482 203.542 130.861 +42.6654 203.532 130.855 +40.3871 203.008 130.518 +38.3108 203.463 130.81 +36.0951 203.154 130.612 +33.8747 202.744 130.348 +31.6657 202.319 130.075 +29.5655 202.543 130.219 +27.4857 202.919 130.461 +25.3063 202.528 130.209 +23.1947 202.622 130.27 +21.0394 202.282 130.051 +18.893 201.926 129.822 +16.8113 202.224 130.014 +14.7005 202.172 129.981 +12.613 202.441 130.153 +10.4643 201.601 129.614 +8.40729 202.51 130.198 +6.28509 201.892 129.801 +4.19032 201.93 129.825 +2.09524 201.954 129.84 +1.46953e-14 201.877 129.791 +-2.09524 201.954 129.84 +-4.19032 201.93 129.825 +-6.27461 201.556 129.584 +-8.42125 202.847 130.414 +-10.4948 202.189 129.992 +-12.5711 201.768 129.721 +-14.6639 201.668 129.657 +-16.8113 202.224 130.014 +-18.9165 202.177 129.984 +-21.1091 202.952 130.482 +-23.1467 202.203 130.001 +-25.1914 201.608 129.618 +-27.3159 201.666 129.655 +-29.4193 201.541 129.575 +-31.509 201.318 129.431 +-33.6938 201.662 129.652 +-35.8142 201.573 129.596 +-37.8884 201.219 129.368 +-39.991 201.017 129.238 +-42.1791 201.212 129.364 +-44.3561 201.308 129.425 +-46.5765 201.553 129.583 +-48.6856 201.287 129.411 +-50.8136 201.085 129.282 +-52.8762 200.623 128.985 +-55.4054 201.866 129.784 +-57.4509 201.288 129.412 +-59.5854 201.022 129.241 +-61.8689 201.228 129.374 +-64.1871 201.498 129.548 +-66.2484 200.938 129.187 +-68.6061 201.253 129.39 +-70.947 201.467 129.528 +-73.2976 201.663 129.654 +-75.5072 201.438 129.509 +-77.7487 201.276 129.405 +-80.2146 201.655 129.648 +-82.5315 201.615 129.623 +-84.7536 201.319 129.432 +-87.4203 202.033 129.891 +-89.4079 201.147 129.321 +-91.8855 201.347 129.45 +-94.3374 201.447 129.515 +-96.9856 201.917 129.817 +-99.115 201.276 129.404 +-101.825 201.779 129.728 +-104.074 201.333 129.441 +-106.565 201.329 129.439 +-108.816 200.846 129.128 +-111.487 201.107 129.296 +-113.698 200.508 128.911 +-116.475 200.876 129.147 +-119.09 200.916 129.173 +-121.942 201.308 129.425 +-124.395 201.003 129.229 +-126.945 200.825 129.114 +-129.644 200.847 129.128 +-131.965 200.254 128.748 +-137.632 204.623 131.556 +-141 205.426 132.073 +-143.735 205.253 131.961 +-144.005 201.594 129.609 +-144.053 197.733 127.126 +-143.82 193.6 124.469 +-144.856 191.26 122.965 +-150.048 194.352 124.953 +-154.487 196.33 126.224 +-162.725 202.928 130.467 +-165.221 202.212 130.006 +-1879.44 2257.76 1451.56 +-142.911 168.529 108.351 +-143.243 165.839 106.622 +-144.007 163.7 105.246 +-144.014 160.755 103.353 +-143.607 157.424 101.211 +-143.203 154.176 99.1229 +-144.859 153.185 98.4859 +-150.219 156.038 100.32 +-678.505 692.347 445.124 +-689.004 690.691 444.06 +-705.82 695.137 446.918 +-709.134 686.185 441.162 +-714.768 679.568 436.908 +-700.847 654.729 420.939 +-700.722 643.234 413.548 +-708.323 638.927 410.78 +-714.719 633.52 407.303 +-718.485 625.83 402.359 +-724.25 619.932 398.567 +-727.966 612.332 393.681 +-733.721 606.493 389.927 +-737.467 599.04 385.135 +-742.638 592.792 381.119 +-746.639 585.655 376.53 +-752.686 580.152 372.992 +-756.67 573.086 368.449 +-761.538 566.729 364.362 +-766.03 560.125 360.116 +-772.192 554.753 356.662 +-775.926 547.659 352.101 +-782.273 542.423 348.735 +-786.472 535.708 344.417 +-792.939 530.543 341.097 +-796.048 523.148 336.343 +-802.874 518.207 333.166 +-806.382 511.13 328.616 +-813.101 506.091 325.377 +-817.269 499.461 321.114 +-824.618 494.762 318.093 +-828.245 487.821 313.63 +-835.499 483.01 310.537 +-839.318 476.2 306.159 +-846.894 471.506 303.141 +-860.811 470.22 302.314 +-885.055 474.278 304.923 +-890.959 468.298 301.079 +-902.434 465.168 299.066 +-384.097 194.129 124.81 +-384.804 190.662 122.58 +-383.303 186.147 119.678 +-382.347 181.96 116.986 +-379.06 176.74 113.63 +-381.231 174.111 111.94 +-382.846 171.228 110.086 +-382.834 167.634 107.776 +-381.885 163.672 105.228 +-383.479 160.825 103.398 +-136.976 56.1957 36.1293 +-955.296 383.274 246.415 +-383.006 150.228 96.585 +-381.638 146.295 94.0562 +-381.588 142.907 91.8779 +-3004.75 1098.97 706.549 +-996.539 355.813 228.76 +-382.486 133.265 85.6788 +-380.609 129.349 83.1614 +-381.099 126.273 81.1837 +-381.461 123.169 79.1881 +-379.727 119.422 76.7789 +-382.173 117.005 75.2246 +-380.073 113.212 72.7862 +-386.812 112.033 72.0285 +-382.08 107.535 69.1364 +-380.518 103.999 66.8629 +-1123.86 298.065 191.632 +-380.896 97.9541 62.9767 +-1161.42 289.381 186.049 +-380.948 91.8835 59.0738 +-380.923 88.8587 57.1291 +-380.865 85.8415 55.1893 +-380.676 82.8111 53.241 +-379.968 79.6881 51.2331 +-380.391 76.8174 49.3875 +-382.343 74.2494 47.7364 +-382.513 71.3307 45.86 +-381.086 68.1355 43.8057 +-381.877 65.3524 42.0164 +-380.675 62.2418 40.0165 +-382.29 59.5985 38.3171 +-382.007 56.6585 36.4269 +-382.284 53.8107 34.596 +-380.458 50.6868 32.5876 +-380.969 47.8921 30.7908 +-379.867 44.9065 28.8713 +-379.823 42.0616 27.0423 +-380.046 39.2515 25.2356 +-380.637 36.4793 23.4533 +-380.206 33.6135 21.6108 +-379.246 30.7166 19.7483 +-379.65 27.939 17.9626 +-379.726 25.138 16.1617 +-380.97 22.4083 14.4068 +-378.792 19.4878 12.5291 +-146.699 6.46692 4.15772 +-379.239 13.9277 8.95444 +-379.968 11.1611 7.17571 +-146.85 3.23457 2.07957 +-146.878 2.15652 1.38647 +-146.594 1.0761 0.691845 +97.2 0 0 +97.1963 0.717592 0.452258 +97.1852 1.43513 0.904479 +97.0667 2.15034 1.35524 +97.2407 2.87277 1.81055 +97.1075 3.58687 2.2606 +97.0668 4.30364 2.71234 +97.0187 5.02009 3.16388 +97.861 5.78926 3.64864 +97.0001 6.45841 4.07037 +97.8263 7.24064 4.56336 +97.6484 7.95448 5.01326 +97.6621 8.68392 5.47298 +97.5688 9.40463 5.9272 +96.5747 10.0318 6.32245 +97.3599 10.8438 6.8342 +97.2443 11.5621 7.28693 +96.9236 12.2545 7.72334 +97.6824 13.0888 8.24912 +96.656 13.6838 8.62411 +97.299 14.5143 9.14753 +97.1456 15.2321 9.59994 +96.9848 15.9487 10.0515 +96.6206 16.6304 10.4812 +96.641 17.3783 10.9525 +96.458 18.091 11.4017 +97.1447 18.9737 11.9581 +96.9453 19.6902 12.4096 +96.7385 20.4052 12.8602 +96.5243 21.1186 13.3098 +97.1721 22.0274 13.8826 +96.9412 22.744 14.3343 +96.7029 23.4588 14.7847 +97.1284 24.3401 15.3402 +96.8737 25.0562 15.7915 +96.6115 25.7704 16.2416 +97.198 26.7179 16.8388 +96.9187 27.4345 17.2904 +97.6721 28.452 17.9316 +97.3749 29.1719 18.3854 +97.728 30.0923 18.9654 +97.4139 30.8126 19.4194 +97.9326 31.8035 20.0439 +97.5078 32.4942 20.4793 +97.9106 33.4664 21.092 +97.6541 34.2203 21.5671 +98.2179 35.2705 22.229 +97.025 35.6907 22.4938 +96.8358 36.4745 22.9878 +97.2749 37.5037 23.6365 +96.8843 38.2204 24.0882 +97.2987 39.262 24.7446 +96.89 39.9789 25.1964 +97.2794 41.0324 25.8604 +97.4761 42.0179 26.4815 +97.2164 42.814 26.9832 +97.4774 43.8479 27.6348 +96.8456 44.4851 28.0364 +97.0828 45.5265 28.6928 +96.6095 46.2414 29.1434 +97.6011 47.672 30.045 +97.1056 48.3908 30.498 +97.3742 49.4979 31.1957 +96.7747 50.1708 31.6198 +96.9319 51.242 32.2949 +97.0744 52.3193 32.9739 +96.6148 53.08 33.4533 +96.7308 54.1648 34.137 +96.8316 55.2553 34.8243 +96.2579 55.9681 35.2735 +96.3323 57.0648 35.9647 +96.4727 58.216 36.6902 +96.5157 59.3238 37.3884 +96.5432 60.4366 38.0898 +95.9161 61.1471 38.5375 +95.9958 62.3164 39.2745 +95.9009 63.3873 39.9494 +95.9478 64.5669 40.6928 +96.5215 66.1246 41.6746 +95.8358 66.8347 42.1221 +95.9088 68.0834 42.9091 +96.4195 69.668 43.9078 +96.3764 70.8767 44.6695 +96.3906 72.1461 45.4696 +96.2373 73.3078 46.2018 +95.4774 74.0155 46.6478 +95.9536 75.6984 47.7084 +95.822 76.928 48.4834 +95.7441 78.2202 49.2977 +95.5756 79.4577 50.0777 +96.0251 81.2371 51.1991 +95.8143 82.486 51.9862 +95.585 83.738 52.7753 +95.6813 85.2995 53.7594 +95.3434 86.4974 54.5144 +94.4475 87.1979 54.9559 +93.3437 87.7038 55.2747 +92.3692 88.3257 55.6666 +92.8324 90.345 56.9394 +92.2866 91.4135 57.6128 +92.4329 93.1927 58.7341 +92.5494 94.9811 59.8612 +92.5101 96.6469 60.911 +91.9454 97.7898 61.6314 +91.7336 99.3321 62.6034 +92.2274 101.683 64.0851 +92.0777 103.373 65.1504 +92.6139 105.886 66.734 +92.1647 107.318 67.6366 +92.7963 110.061 69.3652 +92.5752 111.85 70.4929 +91.9277 113.157 71.3167 +91.428 114.673 72.2722 +92.1735 117.813 74.2508 +91.9351 119.766 75.4819 +91.2872 121.225 76.4011 +91.3581 123.688 77.9532 +91.2282 125.945 79.3758 +90.8012 127.846 80.5744 +90.7986 130.406 82.1878 +90.7 132.904 83.7618 +91.4923 136.808 86.2224 +90.7079 138.44 87.2509 +93.38 145.499 91.6998 +93.1432 148.2 93.4017 +93.1809 151.433 95.4396 +92.8411 154.15 97.1522 +92.4968 156.95 98.9165 +92.3648 160.212 100.972 +92.6029 164.247 103.516 +92.3844 167.608 105.634 +92.4351 171.594 108.146 +92.4919 175.748 110.764 +92.3902 179.76 113.293 +91.1185 181.604 114.455 +89.701 183.207 115.465 +87.9576 184.176 116.076 +89.7195 192.69 121.441 +91.6347 201.954 127.28 +90.2835 204.287 128.75 +87.7966 204.071 128.614 +85.2543 203.675 128.365 +83.2152 204.457 128.857 +80.5637 203.699 128.38 +78.4285 204.205 128.699 +75.838 203.486 128.245 +73.8823 204.442 128.848 +71.2594 203.52 128.267 +69.2125 204.201 128.696 +66.7294 203.563 128.294 +64.7306 204.375 128.806 +62.1193 203.206 128.069 +60.045 203.739 128.405 +57.731 203.435 128.213 +55.4954 203.359 128.165 +53.4173 203.843 128.471 +51.2918 204.147 128.662 +48.8053 202.943 127.904 +46.939 204.292 128.753 +44.6659 203.882 128.495 +42.5091 203.954 128.541 +40.2056 203.259 128.102 +38.1544 203.799 128.443 +35.9325 203.403 128.194 +33.8887 203.996 128.567 +31.5482 202.728 127.768 +29.5533 203.625 128.333 +27.3499 203.079 127.989 +25.3168 203.778 128.43 +23.0892 202.863 127.853 +21.0655 203.7 128.38 +18.8302 202.414 127.57 +16.7695 202.882 127.865 +14.6639 202.83 127.832 +12.592 203.268 128.108 +10.4207 201.917 127.257 +8.38286 203.085 127.993 +6.26676 202.463 127.601 +4.18683 202.924 127.891 +2.08564 202.186 127.426 +1.47014e-14 203.124 128.018 +-2.08651 202.271 127.48 +-4.17811 202.502 127.625 +-6.26414 202.378 127.547 +-8.35843 202.493 127.62 +-10.4599 202.678 127.736 +-12.5711 202.931 127.896 +-14.615 202.154 127.406 +-16.7555 202.714 127.759 +-18.8302 202.414 127.57 +-20.9522 202.604 127.69 +-23.0221 202.273 127.481 +-25.2123 202.937 127.9 +-27.2367 202.239 127.459 +-29.4071 202.618 127.698 +-31.3785 201.638 127.081 +-33.6103 202.321 127.511 +-35.696 202.064 127.35 +-37.7633 201.71 127.126 +-39.826 201.34 126.893 +-42.0402 201.705 127.123 +-44.1557 201.553 127.028 +-46.3857 201.884 127.236 +-48.4663 201.534 127.015 +-50.6265 201.499 126.993 +-52.8762 201.778 127.169 +-55.113 201.958 127.282 +-57.0774 201.131 126.762 +-59.4886 201.852 127.216 +-61.6686 201.733 127.141 +-63.9801 202.005 127.312 +-66.0613 201.525 127.009 +-68.4408 201.924 127.261 +-70.7198 201.979 127.296 +-73.0929 202.258 127.472 +-75.1764 201.711 127.127 +-77.8414 202.677 127.736 +-79.929 202.095 127.369 +-82.3036 202.217 127.446 +-84.4198 201.681 127.108 +-86.8389 201.845 127.212 +-89.2328 201.909 127.252 +-91.5988 201.875 127.23 +-94.0076 201.899 127.246 +-96.611 202.296 127.496 +-98.7323 201.653 127.09 +-101.512 202.318 127.51 +-103.715 201.794 127.179 +-106.158 201.716 127.13 +-108.359 201.156 126.777 +-111.191 201.728 127.138 +-113.311 200.975 126.663 +-116.3 201.728 127.138 +-118.689 201.393 126.926 +-121.533 201.789 127.176 +-123.795 201.185 126.796 +-126.476 201.234 126.827 +-129.119 201.185 126.796 +-131.771 201.113 126.75 +-136.746 204.476 128.87 +-140.55 205.95 129.799 +-143.227 205.706 129.645 +-144.314 203.19 128.059 +-144.105 198.943 125.383 +-143.714 194.572 122.628 +-145.393 193.076 121.685 +-149.068 194.194 122.389 +-153.328 195.978 123.514 +-163.452 205.009 129.206 +-164.994 203.097 128.001 +-639.423 772.558 486.9 +-142.795 169.361 106.739 +-143.772 167.411 105.51 +-144.066 164.711 103.808 +-144.014 161.681 101.899 +-143.12 157.793 99.4481 +-143.511 155.397 97.9381 +-149.341 158.835 100.104 +-151.289 158.055 99.6128 +-684.993 702.994 443.057 +-702.245 708.02 446.225 +-708.418 701.714 442.251 +-712.349 693.265 436.926 +-718.081 686.649 432.756 +-721.122 677.549 427.021 +-711.261 656.669 413.861 +-710.574 644.648 406.285 +-717.403 639.562 403.08 +-721.055 631.686 398.116 +-726.913 625.795 394.403 +-730.017 617.593 389.234 +-736.574 612.358 385.935 +-740.345 604.84 381.196 +-746.555 599.352 377.738 +-749.126 590.99 372.468 +-755.636 585.78 369.184 +-759.048 578.198 364.405 +-765.208 572.74 360.966 +-768.898 565.46 356.377 +-775.006 559.981 352.924 +-778.608 552.715 348.345 +-784.974 547.431 345.014 +-789.192 540.657 340.745 +-795.912 535.599 337.558 +-798.885 528.037 332.792 +-806.126 523.303 329.808 +-809.657 516.161 325.307 +-817.04 511.472 322.352 +-820.91 504.576 318.005 +-827.548 499.38 314.731 +-831.849 492.766 310.563 +-839.125 487.9 307.496 +-843.131 481.119 303.222 +-855.9 479.265 302.054 +-880.772 483.894 304.971 +-889.272 479.283 302.065 +-894.352 472.789 297.972 +-908.488 470.986 296.836 +-385.211 195.813 123.41 +-383.856 191.287 120.557 +-384.169 187.643 118.26 +-383.566 183.591 115.707 +-379.847 178.128 112.264 +-381.758 175.357 110.518 +-383.817 172.651 108.812 +-383.011 168.678 106.308 +-384.024 165.537 104.328 +-382.584 161.374 101.705 +-137.605 56.7789 35.7845 +-134.937 54.4497 34.3165 +-381.827 150.629 94.933 +-383.094 147.7 93.0866 +-382.958 144.246 90.9102 +-384.707 141.514 89.1885 +-999.944 359.085 226.311 +-381.47 133.676 84.2486 +-380.516 130.063 81.9713 +-378.959 126.287 79.5917 +-382.021 124.061 78.1884 +-381.881 120.792 76.1281 +-382.173 117.678 74.166 +-383.372 114.852 72.3847 +-386.906 112.706 71.032 +-382.269 108.208 68.1976 +-380.803 104.675 65.971 +-1131.68 301.868 190.25 +-378.219 97.8254 61.6538 +-1169.86 293.161 184.763 +-381.429 92.5294 58.316 +-382.272 89.6869 56.5245 +-380.092 86.1607 54.3022 +-380.579 83.2669 52.4784 +-379.968 80.147 50.5121 +-380.683 77.3191 48.7299 +-382.051 74.6199 47.0287 +-381.536 71.5585 45.0992 +-381.967 68.6862 43.289 +-381.877 65.7288 41.4251 +-380.773 62.6164 39.4636 +-381.995 59.8954 37.7487 +-380.727 56.7939 35.794 +-382.58 54.1625 34.1356 +-381.248 51.0845 32.1957 +-380.079 48.0554 30.2866 +-379.867 45.1652 28.465 +-380.021 42.3259 26.6756 +-380.046 39.4775 24.8804 +-380.737 36.699 23.1293 +-381.598 33.931 21.3848 +-381.535 31.08 19.588 +-379.451 28.0851 17.7005 +-381.919 25.4288 16.0263 +-379.473 22.4489 14.1483 +-379.79 19.6517 12.3854 +-147.198 6.5263 4.11316 +-380.737 14.0633 8.86329 +-380.468 11.2401 7.084 +-148.249 3.2842 2.06985 +-145.978 2.15565 1.35858 +-145.294 1.0727 0.676062 +97.2 0 0 +97.1963 0.721643 0.445765 +97.1852 1.44323 0.891495 +97.9664 2.18253 1.34817 +97.2407 2.88899 1.78456 +97.2074 3.61083 2.23044 +97.0668 4.32793 2.6734 +97.917 5.09517 3.14733 +97.9608 5.82788 3.59993 +97.7976 6.54827 4.04493 +97.8263 7.28151 4.49786 +97.6484 7.99938 4.94129 +96.767 8.65289 5.34497 +96.8733 9.39025 5.80044 +97.468 10.1817 6.28935 +97.5582 10.9272 6.74982 +97.2443 11.6274 7.18233 +97.0225 12.3363 7.62025 +96.7935 13.0429 8.05671 +96.656 13.761 8.50031 +96.5112 14.4781 8.94322 +97.1456 15.3181 9.46213 +96.1013 15.8926 9.81702 +96.8166 16.7582 10.3517 +96.641 17.4764 10.7953 +96.458 18.1931 11.2381 +97.2421 19.1 11.7982 +96.9453 19.8013 12.2315 +96.7385 20.5203 12.6756 +96.6211 21.2591 13.1319 +97.2687 22.1738 13.697 +96.7485 22.8269 14.1004 +97.5681 23.8023 14.7029 +97.1284 24.4775 15.1199 +96.8737 25.1976 15.5648 +96.6115 25.9159 16.0085 +97.198 26.8687 16.5971 +96.9187 27.5893 17.0422 +97.6721 28.6126 17.6742 +96.9978 29.223 18.0513 +96.6944 29.9421 18.4955 +97.3202 30.9567 19.1222 +97.8392 31.9525 19.7374 +97.5078 32.6777 20.1853 +98.0033 33.6872 20.8089 +97.7465 34.4461 21.2776 +97.3894 35.1705 21.7251 +97.2084 35.96 22.2128 +96.8358 36.6804 22.6578 +97.2749 37.7154 23.2972 +97.7 38.7598 23.9422 +97.2987 39.4837 24.3894 +97.6989 40.5402 25.042 +97.1004 41.1881 25.4423 +97.6543 42.3323 26.1491 +97.039 42.9771 26.5474 +96.5945 43.6959 26.9914 +96.7578 44.6956 27.6089 +97.1702 45.8247 28.3063 +96.6095 46.5025 28.725 +96.9082 47.6008 29.4035 +97.1918 48.7071 30.0868 +96.6028 49.383 30.5043 +96.8599 50.4984 31.1933 +96.9319 51.5312 31.8313 +96.3153 52.2032 32.2464 +96.6148 53.3796 32.9731 +95.9803 54.0479 33.3859 +96.8316 55.5672 34.3244 +96.2579 56.284 34.7671 +96.9876 57.7774 35.6896 +96.5541 58.594 36.1941 +96.5157 59.6587 36.8517 +96.6236 60.8284 37.5743 +95.9161 61.4923 37.9843 +96.5511 63.0307 38.9346 +96.6101 64.2165 39.6671 +95.9478 64.9314 40.1087 +96.5215 66.4979 41.0763 +95.8358 67.2119 41.5174 +95.8322 68.4131 42.2594 +96.4955 70.1166 43.3116 +96.3764 71.2768 44.0283 +96.3906 72.5534 44.8169 +96.3116 73.7786 45.5737 +95.5511 74.4908 46.0137 +95.3685 75.6616 46.7368 +95.822 77.3623 47.7874 +95.7441 78.6618 48.5901 +95.5756 79.9063 49.3588 +96.0251 81.6957 50.4642 +95.8844 83.0124 51.2775 +95.6545 84.2718 52.0555 +95.9566 86.0278 53.1401 +95.207 86.8615 53.6551 +93.5692 86.8751 53.6635 +93.2099 88.0722 54.403 +92.6343 89.0795 55.0252 +92.9636 90.9835 56.2013 +92.8711 92.5115 57.1452 +92.4971 93.7843 57.9314 +92.5494 95.5173 59.0019 +92.636 97.3252 60.1186 +92.0699 98.4754 60.8292 +91.7951 99.9592 61.7457 +92.2882 102.324 63.2067 +92.1981 104.093 64.2992 +93.3277 107.304 66.2826 +91.8121 107.511 66.4103 +92.6802 110.544 68.2838 +91.8296 111.576 68.9213 +91.7012 113.515 70.1195 +91.2044 115.038 71.0602 +92.0631 118.336 73.0972 +91.7717 120.228 74.2659 +91.7708 122.555 75.7033 +91.4111 124.458 76.8789 +91.3327 126.801 78.3262 +90.8527 128.64 79.4624 +90.7986 131.143 81.008 +90.7 133.654 82.5593 +91.4431 137.506 84.939 +90.9018 139.519 86.1824 +93.38 146.32 90.3835 +93.1432 149.036 92.0609 +92.7653 151.608 93.6496 +92.8411 155.02 95.7575 +92.4968 157.836 97.4965 +92.3648 161.116 99.523 +92.6029 165.174 102.03 +92.4266 168.632 104.166 +92.5181 172.717 106.689 +92.1665 176.118 108.79 +92.1908 180.385 111.425 +90.4933 181.376 112.037 +89.4331 183.692 113.468 +87.7329 184.742 114.117 +91.7353 198.132 122.388 +91.6347 203.094 125.453 +89.583 203.846 125.918 +87.4888 204.503 126.323 +84.9205 204.023 126.027 +82.9548 204.967 126.61 +80.2463 204.042 126.039 +78.1195 204.549 126.352 +75.5974 203.985 126.003 +73.2683 203.888 125.944 +71.0038 203.935 125.972 +68.8266 204.209 126.142 +66.4087 203.728 125.845 +64.4201 204.542 126.348 +61.9941 203.942 125.977 +59.8757 204.312 126.205 +57.3108 203.094 125.453 +55.4729 204.424 126.275 +53.0061 203.416 125.652 +50.9176 203.801 125.89 +48.6258 203.338 125.604 +46.71 204.443 126.286 +44.3561 203.611 125.772 +42.2139 203.681 125.816 +39.958 203.148 125.486 +37.8884 203.521 125.716 +35.696 203.205 125.522 +33.6242 203.547 125.733 +31.4307 203.114 125.465 +29.4314 203.931 125.97 +27.248 203.465 125.682 +25.1809 203.829 125.907 +23.0221 203.415 125.651 +20.8738 202.985 125.386 +18.7203 202.369 125.005 +16.6927 203.094 125.453 +14.5723 202.701 125.21 +12.5135 203.141 125.482 +10.3901 202.461 125.062 +8.34796 203.381 125.63 +6.22226 202.16 124.876 +4.16763 203.134 125.478 +2.07953 202.732 125.229 +1.45851e-14 202.654 125.181 +-2.07953 202.732 125.229 +-4.15891 202.709 125.215 +-6.21703 201.99 124.771 +-8.32353 202.786 125.263 +-10.3683 202.037 124.8 +-12.4769 202.546 125.115 +-14.5662 202.616 125.158 +-16.6509 202.586 125.139 +-18.7046 202.199 124.9 +-20.7518 201.799 124.653 +-22.8784 202.145 124.867 +-25.0764 202.983 125.384 +-27.0669 202.113 124.847 +-29.2365 202.58 125.135 +-31.3132 202.355 124.997 +-33.3598 201.946 124.744 +-35.4299 201.691 124.586 +-37.6068 202.008 124.782 +-39.6939 201.805 124.657 +-41.8839 202.09 124.833 +-43.8823 201.436 124.429 +-46.0613 201.604 124.532 +-48.1673 201.421 124.419 +-50.5225 202.221 124.913 +-52.4866 201.423 124.421 +-54.7306 201.688 124.584 +-56.8439 201.44 124.431 +-59.2709 202.248 124.93 +-61.2429 201.471 124.45 +-63.7212 202.324 124.977 +-65.8475 202.007 124.782 +-68.1376 202.164 124.879 +-70.2086 201.651 124.561 +-72.8006 202.586 125.139 +-74.9058 202.119 124.851 +-77.2852 202.364 125.002 +-79.3262 201.702 124.593 +-81.9455 202.473 125.07 +-84.1193 202.098 124.838 +-86.4969 202.185 124.891 +-88.8126 202.093 124.835 +-91.2046 202.141 124.864 +-93.3845 201.693 124.588 +-96.0117 202.175 124.886 +-98.0052 201.298 124.344 +-101.16 202.756 125.244 +-102.957 201.451 124.438 +-105.914 202.388 125.017 +-108.069 201.749 124.622 +-110.388 201.402 124.408 +-112.88 201.343 124.371 +-115.423 201.337 124.368 +-117.885 201.159 124.258 +-120.761 201.64 124.555 +-123.148 201.264 124.323 +-126.147 201.845 124.681 +-128.26 200.975 124.144 +-130.996 201.057 124.195 +-134.185 201.78 124.641 +-139.65 205.786 127.116 +-142.314 205.548 126.969 +-144.365 204.41 126.266 +-144.105 200.066 123.583 +-144.032 196.103 121.134 +-144.802 193.376 119.45 +-148.087 194.006 119.839 +-151.065 194.177 119.945 +-160.097 201.934 124.736 +-162.672 201.369 124.387 +-142.821 173.532 107.192 +-144.014 171.772 106.105 +-143.949 168.562 104.122 +-144.007 165.573 102.276 +-143.413 161.915 100.016 +-143.546 159.157 98.3127 +-144.373 157.214 97.1124 +-151.894 162.46 100.353 +-678.156 712.483 440.107 +-706.301 728.954 450.281 +-706.359 716.187 442.395 +-713.224 710.463 438.859 +-714.711 699.491 432.082 +-721.858 694.157 428.787 +-724.668 684.725 422.961 +-731.124 678.818 419.312 +-709.687 647.479 399.954 +-718.023 643.728 397.637 +-724.251 638.067 394.14 +-731.679 633.454 391.29 +-733.977 624.449 385.728 +-740.568 619.154 382.457 +-743.51 610.855 377.331 +-750.4 605.839 374.232 +-752.929 597.343 368.984 +-759.764 592.306 365.873 +-762.541 584.137 360.827 +-769.777 579.412 357.908 +-771.841 570.829 352.606 +-779.34 566.292 349.803 +-782.438 558.57 345.034 +-789.526 553.714 342.034 +-793.155 546.439 337.54 +-799.826 541.271 334.348 +-803.535 534.108 329.923 +-810.331 529.002 326.769 +-812.931 521.174 321.934 +-820.657 516.637 319.131 +-824.227 509.474 314.707 +-831.131 504.373 311.556 +-834.798 497.305 307.19 +-842.751 492.775 304.391 +-846.116 485.547 299.927 +-880.75 495.964 306.361 +-884.378 488.618 301.824 +-896.103 485.691 300.016 +-905.291 481.274 297.287 +-911.046 474.979 293.399 +-383.497 196.042 121.097 +-385.062 192.972 119.2 +-384.775 189 116.747 +-382.782 184.251 113.813 +-380.722 179.546 110.907 +-382.901 176.874 109.257 +-382.934 173.226 107.003 +-379.729 168.177 103.884 +-382.866 165.969 102.521 +-383.569 162.702 100.503 +-136.077 56.4654 34.8792 +-136.471 55.3797 34.2085 +-382.371 151.696 93.7038 +-382.912 148.463 91.7067 +-383.598 145.303 89.7549 +-383.423 141.839 87.615 +-1006.3 363.406 224.479 +-383.687 135.212 83.5216 +-382.278 131.402 81.1683 +-381.75 127.935 79.0267 +-379.407 123.908 76.5389 +-380.757 121.115 74.8141 +-381.703 118.197 73.0115 +-386.672 116.495 71.9599 +-387.001 113.37 70.0296 +-383.597 109.197 67.4519 +-378.425 104.61 64.6182 +-381.773 102.41 63.2597 +-382.044 99.3722 61.3831 +-1179.44 297.233 183.603 +-381.236 93.005 57.45 +-381.019 89.8979 55.5308 +-381.058 86.8675 53.6588 +-381.45 83.9286 51.8435 +-381.229 80.867 49.9523 +-380.099 77.6364 47.9567 +-381.856 75.0028 46.3299 +-383.294 72.2939 44.6566 +-382.651 69.1978 42.7441 +-380.897 65.9302 40.7257 +-379.497 62.7589 38.7667 +-381.11 60.094 37.1206 +-382.007 57.3065 35.3988 +-380.509 54.1734 33.4634 +-381.346 51.3862 31.7417 +-380.969 48.4399 29.9217 +-381.055 45.5622 28.1442 +-381.012 42.6759 26.3613 +-381.435 39.8455 24.6129 +-379.942 36.8291 22.7497 +-379.211 33.9091 20.9459 +-381.038 31.2147 19.2816 +-380.148 28.2956 17.4784 +-379.826 25.4321 15.7096 +-379.773 22.5934 13.9562 +-380.888 19.8197 12.2428 +-145.201 6.4741 3.99911 +-380.338 14.1279 8.72692 +-380.768 11.3125 6.98783 +-149.649 3.33392 2.05939 +-145.978 2.16782 1.33908 +-145.694 1.08173 0.668192 +97 0 0 +97.0963 0.724889 0.438785 +97.0852 1.44972 0.877538 +96.9668 2.1722 1.31486 +97.0408 2.899 1.75481 +96.9077 3.61961 2.191 +96.8671 4.34293 2.62883 +96.9189 5.07113 3.06962 +96.8635 5.79447 3.50747 +96.8007 6.51738 3.94506 +97.6271 7.30688 4.42296 +97.5488 8.03543 4.86396 +97.5626 8.77227 5.30998 +97.37 9.49062 5.7448 +97.468 10.2381 6.19724 +97.1616 10.943 6.62393 +97.1453 11.6798 7.06994 +96.9236 12.3919 7.50099 +96.4972 13.0748 7.91437 +97.445 13.9501 8.44417 +97.102 14.6473 8.86621 +96.9489 15.3716 9.30466 +96.7884 16.0948 9.74243 +96.6206 16.8168 10.1794 +96.4454 17.5374 10.6157 +96.2628 18.2567 11.0511 +96.0729 18.9747 11.4857 +96.7508 19.8709 12.0282 +96.5444 20.5925 12.4649 +97.202 21.5052 13.0174 +96.979 22.23 13.4561 +96.7485 22.9532 13.8939 +97.3758 23.8868 14.459 +97.1284 24.6129 14.8985 +96.8737 25.337 15.3369 +97.2791 26.2393 15.883 +97.0078 26.9645 16.322 +96.729 27.6877 16.7598 +97.2939 28.6595 17.348 +96.9978 29.3847 17.7869 +97.6341 30.4003 18.4017 +97.3202 31.128 18.8422 +97.8392 32.1293 19.4483 +97.4147 32.8271 19.8707 +97.0761 33.5531 20.3101 +97.6541 34.6039 20.9462 +97.2053 35.2982 21.3665 +96.9332 36.0566 21.8256 +97.4753 37.1268 22.4734 +97.2749 37.9241 22.956 +97.7 38.9742 23.5916 +97.2987 39.7021 24.0322 +97.5192 40.6895 24.6299 +97.2794 41.4923 25.1158 +96.6742 42.1393 25.5075 +97.039 43.2149 26.1586 +97.3008 44.259 26.7906 +96.6699 44.9021 27.1798 +97.8699 46.41 28.0926 +96.5224 46.7176 28.2788 +96.8216 47.8214 28.9469 +96.3301 48.5424 29.3834 +97.2028 49.9646 30.2443 +96.7747 50.7331 30.7094 +96.2535 51.4536 31.1456 +96.99 52.8597 31.9967 +96.4471 53.5818 32.4338 +96.564 54.6775 33.097 +96.8316 55.8746 33.8217 +96.2579 56.5954 34.258 +96.2504 57.6553 34.8996 +96.4727 58.8685 35.6339 +96.4348 59.9384 36.2815 +96.5432 61.114 36.9932 +95.9161 61.8324 37.428 +95.8371 62.9107 38.0807 +96.5313 64.5191 39.0543 +95.8695 65.2373 39.489 +96.5215 66.8658 40.4748 +95.7586 67.5294 40.8764 +96.3684 69.1765 41.8735 +95.7351 69.9488 42.341 +96.3764 71.6711 43.3835 +96.2408 72.8414 44.0919 +96.2373 74.1295 44.8716 +95.4774 74.8451 45.3048 +95.8805 76.4885 46.2996 +95.7494 77.7314 47.0519 +95.7441 79.0969 47.8785 +95.5042 80.2884 48.5997 +96.0251 82.1476 49.7251 +95.7442 83.3495 50.4526 +95.585 84.6765 51.2559 +95.4748 86.0691 52.0988 +94.9342 87.0914 52.7176 +92.9612 86.7877 52.5338 +93.143 88.4961 53.5679 +92.568 89.5081 54.1805 +92.3075 90.8418 54.9878 +92.8711 93.0233 56.3083 +92.4329 94.2372 57.0431 +92.5494 96.0457 58.1378 +92.8248 98.0629 59.3588 +92.3812 99.3547 60.1408 +92.2877 101.052 61.1682 +91.6795 102.212 61.8703 +93.1008 105.694 63.9779 +92.8518 107.347 64.9789 +92.1647 108.521 65.6894 +91.9253 110.249 66.7354 +91.7722 112.123 67.8694 +91.6445 114.073 69.0501 +91.9872 116.668 70.6207 +93.5533 120.917 73.1928 +92.044 121.252 73.3953 +91.6096 123.016 74.4636 +91.729 125.582 76.0165 +90.967 126.992 76.8699 +90.8527 129.352 78.2986 +91.1539 132.385 80.1344 +90.85 134.616 81.4849 +91.1968 137.895 83.4697 +92.5017 142.76 86.4147 +93.3323 147.055 89.0142 +93.1432 149.861 90.7127 +93.1809 153.13 92.6918 +92.8411 155.878 94.3551 +92.4522 158.632 96.022 +92.7593 162.7 98.4843 +92.6029 166.088 100.535 +92.3421 169.409 102.546 +92.4351 173.517 105.032 +92.1665 177.092 107.196 +91.473 179.971 108.939 +90.1026 181.591 109.92 +88.6295 183.047 110.801 +87.2459 184.733 111.822 +91.8452 199.466 120.74 +91.7064 204.377 123.712 +88.9877 203.611 123.249 +86.7021 203.786 123.354 +84.2862 203.619 123.253 +82.3036 204.483 123.776 +79.7069 203.792 123.358 +77.656 204.461 123.763 +75.1464 203.89 123.418 +73.0345 204.362 123.703 +70.5778 203.833 123.383 +68.3581 203.941 123.448 +65.8208 203.042 122.904 +63.9801 204.269 123.647 +61.5184 203.497 123.179 +59.4402 203.948 123.453 +56.9373 202.887 122.81 +55.068 204.054 123.517 +52.8329 203.873 123.407 +50.5433 203.423 123.135 +48.2869 203.038 122.902 +46.2712 203.643 123.268 +44.0281 203.223 123.014 +41.8839 203.208 123.004 +39.6939 202.922 122.831 +37.6225 203.21 123.006 +35.4151 202.722 122.71 +33.3876 203.232 123.019 +31.1958 202.71 122.703 +29.139 203.021 122.891 +26.9876 202.636 122.658 +25.045 203.85 123.393 +22.8496 203.007 122.883 +20.8302 203.682 123.292 +18.5556 201.698 122.09 +16.5951 203.023 122.892 +14.4746 202.456 122.55 +12.4403 203.069 122.92 +10.3247 202.3 122.455 +8.28514 202.967 122.859 +6.18561 202.081 122.322 +4.13971 202.889 122.812 +2.0647 202.399 122.515 +1.44687e-14 202.15 122.364 +-2.0647 202.399 122.515 +-4.14495 203.146 122.967 +-6.17514 201.739 122.115 +-8.29212 203.138 122.962 +-10.3029 201.872 122.196 +-12.4455 203.154 122.972 +-14.4563 202.2 122.394 +-16.5183 202.084 122.324 +-18.6183 202.379 122.503 +-20.6995 202.403 122.518 +-22.7538 202.156 122.368 +-24.9091 202.745 122.724 +-26.8518 201.615 122.041 +-29.1146 202.851 122.788 +-31.0522 201.778 122.139 +-33.2485 202.385 122.507 +-35.1639 201.284 121.84 +-37.3566 201.774 122.136 +-39.3639 201.234 121.81 +-41.6582 202.112 122.341 +-43.6819 201.625 122.046 +-45.9086 202.047 122.302 +-47.7885 200.942 121.633 +-50.0443 201.414 121.919 +-52.1187 201.117 121.739 +-54.3257 201.303 121.852 +-56.4237 201.057 121.702 +-58.8354 201.873 122.196 +-60.8423 201.26 121.826 +-63.2813 202.038 122.296 +-65.3932 201.722 122.105 +-67.7241 202.049 122.303 +-69.7826 201.536 121.992 +-72.362 202.479 122.564 +-74.4548 202.013 122.281 +-76.698 201.938 122.236 +-78.755 201.358 121.885 +-81.4572 202.38 122.504 +-83.5852 201.925 122.228 +-86.0865 202.339 122.479 +-88.2172 201.849 122.182 +-90.8821 202.54 122.6 +-92.6515 201.218 121.8 +-95.6371 202.501 122.577 +-97.7373 201.858 122.188 +-100.535 202.617 122.647 +-102.08 200.839 121.57 +-104.938 201.633 122.051 +-107.281 201.386 121.902 +-110.008 201.818 122.163 +-112.105 201.066 121.708 +-114.985 201.683 122.082 +-117.127 200.97 121.65 +-119.944 201.384 121.9 +-122.363 201.088 121.721 +-125.208 201.45 121.941 +-127.354 200.658 121.461 +-130.753 201.795 122.149 +-132.807 200.811 121.554 +-138.75 205.591 124.447 +-141.299 205.211 124.217 +-144.468 205.688 124.506 +-143.739 200.662 121.464 +-143.979 197.116 119.317 +-144.534 194.085 117.482 +-146.998 193.644 117.215 +-150.182 194.109 117.497 +-159.873 202.768 122.738 +-142.451 177.314 107.331 +-143.624 175.473 106.216 +-144.479 173.279 104.888 +-144.536 170.187 103.016 +-143.293 165.663 100.278 +-143.473 162.879 98.5931 +-147.199 164.109 99.3377 +-149.852 164.083 99.3217 +-683.334 734.917 444.855 +-694.015 733.179 443.803 +-709.927 736.749 445.964 +-712.851 726.768 439.923 +-717.445 718.621 434.991 +-719.894 708.46 428.841 +-726.364 702.354 425.145 +-729.285 692.9 419.422 +-738.217 689.195 417.179 +-738.127 677.151 409.889 +-725.595 654.115 395.945 +-728.141 645.043 390.453 +-735.534 640.315 387.591 +-738.502 631.774 382.422 +-745.632 626.837 379.433 +-747.394 617.443 373.747 +-755.187 613.077 371.104 +-757.902 604.615 365.982 +-764.704 599.454 362.858 +-767.446 591.147 357.829 +-775.469 586.926 355.274 +-777.502 578.196 349.99 +-785.347 573.814 347.337 +-787.111 565.014 342.011 +-795.159 560.75 339.43 +-797.429 552.423 334.389 +-805.46 548.1 331.772 +-807.632 539.801 326.749 +-815.885 535.574 324.19 +-818.522 527.661 319.4 +-826.284 523.056 316.613 +-829.162 515.36 311.954 +-836.504 510.441 308.977 +-840.286 503.344 304.681 +-851.57 500.686 303.072 +-860.873 496.749 300.689 +-887.421 502.485 304.161 +-890.752 494.862 299.547 +-905.802 493.664 298.822 +-908.005 485.387 293.811 +-913.348 478.813 289.832 +-913.655 469.641 284.28 +-384.459 193.736 117.271 +-383.476 189.403 114.649 +-382.086 184.933 111.942 +-381.772 181.036 109.584 +-381.582 177.24 107.286 +-382.14 173.823 105.217 +-381.947 170.094 102.96 +-382.509 166.732 100.925 +-382.674 163.221 98.7997 +-383.965 160.208 96.9759 +-136.922 55.8702 33.819 +-382.553 152.607 92.3749 +-382.912 149.284 90.3637 +-382.319 145.619 88.1453 +-382.689 142.35 86.1666 +-1012.1 367.522 222.466 +-1025.6 363.423 219.985 +-383.112 132.417 80.154 +-381.378 128.518 77.7937 +-382.861 125.727 76.1046 +-381.038 121.875 73.7728 +-382.925 119.231 72.1721 +-1113.54 337.338 204.196 +-3097.99 912.559 552.384 +-1119.5 320.444 193.969 +-378.996 105.346 63.7677 +-381.773 102.977 62.3333 +-1163.15 304.219 184.148 +-1191.24 301.866 182.724 +-382.39 93.8026 56.78 +-381.019 90.3952 54.7175 +-381.541 87.4592 52.9403 +-381.644 84.4358 51.1102 +-380.55 81.1696 49.1331 +-379.808 78.006 47.2181 +-381.466 75.3407 45.6048 +-381.048 72.2679 43.7448 +-382.554 69.5628 42.1073 +-382.465 66.5678 40.2944 +-382.54 63.6121 38.5053 +-381.011 60.4109 36.5675 +-381.613 57.5642 34.8444 +-381.693 54.6425 33.0758 +-381.939 51.7508 31.3255 +-379.782 48.5561 29.3917 +-380.857 45.7905 27.7176 +-380.517 42.8562 25.9414 +-379.947 39.9096 24.1578 +-379.346 36.9747 22.3813 +-379.708 34.1414 20.6663 +-379.843 31.289 18.9396 +-380.447 28.4745 17.236 +-379.726 25.5661 15.4755 +-377.877 22.6051 13.6832 +-379.79 19.872 12.0288 +-146.599 6.57259 3.97848 +-379.838 14.1874 8.58782 +-379.769 11.3452 6.86742 +-148.749 3.33221 2.01703 +-145.978 2.17981 1.31947 +-145.894 1.0892 0.659307 +97 0 0 +96.9963 0.728067 0.431783 +96.9852 1.45608 0.863531 +97.0667 2.18623 1.29655 +97.0408 2.91472 1.72858 +97.0076 3.64298 2.16048 +97.8657 4.41147 2.61624 +96.9189 5.09861 3.02375 +96.8635 5.82588 3.45506 +97.6979 6.61344 3.92212 +96.8301 7.28652 4.3213 +97.5488 8.07898 4.79127 +97.5626 8.81982 5.23062 +96.5752 9.46422 5.61279 +97.3688 10.2831 6.0984 +97.2607 11.0135 6.53157 +97.0463 11.7311 6.95719 +96.8247 12.4463 7.38134 +96.6947 13.1726 7.81206 +96.3601 13.8696 8.22539 +97.102 14.7267 8.7337 +96.9489 15.4549 9.1656 +96.7884 16.1821 9.59684 +96.6206 16.9079 10.0273 +96.4454 17.6325 10.457 +96.2628 18.3557 10.8859 +96.9498 19.2517 11.4173 +96.7508 19.9786 11.8484 +96.5444 20.7041 12.2786 +97.202 21.6218 12.8229 +96.979 22.3505 13.255 +96.7485 23.0776 13.6862 +97.3758 24.0163 14.2429 +97.1284 24.7463 14.6759 +96.6824 25.424 15.0778 +96.6115 26.2005 15.5383 +97.198 27.1638 16.1096 +96.729 27.8378 16.5093 +97.2939 28.8148 17.0887 +96.9035 29.5152 17.5041 +97.728 30.5945 18.1442 +97.2266 31.2666 18.5427 +97.8392 32.3034 19.1577 +97.4147 33.005 19.5737 +98.0033 34.0571 20.1977 +97.5617 34.7586 20.6137 +97.2974 35.5231 21.0671 +96.9332 36.2521 21.4994 +96.6531 37.0132 21.9508 +97.0929 38.0583 22.5706 +96.8843 38.8583 23.045 +97.1182 39.8432 23.6292 +97.5192 40.91 24.2618 +97.9058 41.9858 24.8998 +97.4761 42.7191 25.3347 +97.039 43.4491 25.7676 +97.2125 44.4585 26.3662 +96.6699 45.1454 26.7736 +97.0828 46.2863 27.4502 +97.3058 47.3521 28.0823 +96.735 48.0376 28.4888 +97.1056 49.1984 29.1773 +96.6028 49.9254 29.6084 +96.7747 51.0081 30.2505 +96.8471 52.0516 30.8694 +96.3153 52.7765 31.2993 +96.4471 53.8722 31.9491 +96.6474 55.0213 32.6306 +96.0855 55.7447 33.0596 +96.2579 56.9021 33.746 +96.2504 57.9678 34.378 +96.2285 59.0377 35.0125 +95.7876 59.8589 35.4995 +96.3824 61.343 36.3797 +95.7564 62.064 36.8073 +95.8371 63.2517 37.5116 +96.5313 64.8688 38.4706 +96.4956 66.0193 39.153 +95.8221 66.741 39.581 +95.8358 67.9501 40.298 +95.7556 69.1092 40.9854 +96.4195 70.8307 42.0064 +96.3764 72.0595 42.7351 +96.3906 73.3501 43.5005 +96.2373 74.5313 44.201 +96.0672 75.7156 44.9034 +95.9536 76.9618 45.6424 +95.822 78.2119 46.3838 +96.2477 79.9439 47.411 +95.5756 80.7838 47.9091 +95.3887 82.0455 48.6574 +95.8143 83.8626 49.735 +95.8629 85.3829 50.6366 +95.4748 86.5356 51.3202 +94.0476 86.7463 51.4452 +92.8937 87.1953 51.7115 +92.7415 88.5921 52.5399 +92.7005 90.1223 53.4473 +92.8324 91.8528 54.4736 +92.8061 93.4621 55.428 +92.3686 94.6826 56.1518 +92.3586 96.3676 57.1511 +92.6989 98.4611 58.3927 +91.9454 99.4219 58.9625 +92.2877 101.6 60.254 +91.6186 102.698 60.9054 +92.4388 105.511 62.5734 +92.1975 107.169 63.5569 +92.4586 109.457 64.9138 +92.2156 111.198 65.9462 +91.7722 112.73 66.8552 +91.418 114.408 67.8499 +91.484 116.659 69.1848 +93.1118 120.999 71.7587 +94.6583 125.372 74.3521 +91.6633 123.756 73.3941 +91.941 126.554 75.0534 +91.1237 127.9 75.8512 +90.8012 129.98 77.0851 +90.9001 132.732 78.7169 +91.05 135.643 80.4436 +90.9506 138.268 82.0004 +93.035 144.362 85.6145 +93.4277 148.002 87.7732 +93.1432 150.673 89.357 +93.1809 153.96 91.3066 +92.7957 156.646 92.8996 +92.8538 160.185 94.9982 +92.6717 163.427 96.9207 +92.2585 166.367 98.6647 +92.4266 170.484 101.106 +92.1448 173.91 103.138 +92.1665 178.052 105.594 +91.154 180.315 106.936 +90.3761 183.13 108.606 +88.4381 183.643 108.91 +87.3583 185.974 110.292 +91.8452 200.548 118.935 +91.2405 204.441 121.245 +88.3573 203.265 120.547 +86.3601 204.082 121.031 +83.2848 202.29 119.969 +81.7502 204.209 121.107 +79.0089 203.102 120.45 +77.3161 204.668 121.379 +74.6051 203.518 120.697 +72.5374 204.071 121.025 +70.0666 203.453 120.659 +67.9446 203.806 120.868 +65.4467 202.982 120.379 +63.5142 203.881 120.912 +60.9926 202.851 120.301 +58.9564 203.384 120.618 +56.5171 202.481 120.082 +54.6631 203.652 120.776 +52.1836 202.459 120.069 +50.3146 203.6 120.746 +47.948 202.706 120.215 +45.9277 203.227 120.524 +43.7001 202.803 120.273 +41.7103 203.462 120.664 +39.4134 202.579 120.14 +37.5286 203.801 120.865 +35.1786 202.46 120.069 +33.151 202.886 120.322 +30.9608 202.275 119.96 +29.0171 203.267 120.548 +26.8292 202.538 120.116 +24.8255 203.159 120.484 +22.6579 202.396 120.032 +20.6646 203.158 120.484 +18.4614 201.762 119.656 +16.4695 202.579 120.14 +14.3525 201.836 119.7 +12.3408 202.538 120.116 +10.2375 201.678 119.606 +8.21883 202.435 120.055 +6.13849 201.629 119.577 +4.11179 202.613 120.16 +2.04899 201.948 119.766 +1.44504e-14 202.988 120.383 +-2.04986 202.034 119.817 +-4.11528 202.785 120.262 +-6.15158 202.058 119.831 +-8.22581 202.606 120.156 +-10.2418 201.764 119.657 +-12.3565 202.795 120.268 +-14.3647 202.008 119.802 +-16.5044 203.008 120.395 +-18.5085 202.276 119.961 +-20.6646 203.158 120.484 +-22.5621 201.539 119.524 +-24.7001 202.133 119.876 +-26.7386 201.854 119.71 +-28.9074 202.499 120.093 +-30.8042 201.251 119.353 +-32.9701 201.779 119.666 +-35.016 201.524 119.514 +-37.028 201.083 119.253 +-39.0833 200.882 119.134 +-41.2935 201.428 119.458 +-43.1898 200.434 118.868 +-45.6033 201.791 119.673 +-47.4695 200.683 119.016 +-49.6285 200.824 119.099 +-51.7291 200.696 119.023 +-54.1907 201.892 119.733 +-56.0035 200.641 118.991 +-58.5451 201.966 119.777 +-60.4668 201.102 119.264 +-62.8671 201.803 119.68 +-64.832 201.076 119.249 +-67.228 201.656 119.593 +-69.2713 201.144 119.289 +-71.8357 202.097 119.854 +-73.6128 200.812 119.092 +-76.2036 201.724 119.633 +-78.1839 200.981 119.193 +-80.806 201.851 119.708 +-82.9176 201.398 119.44 +-85.5734 202.223 119.929 +-87.6219 201.573 119.543 +-89.9862 201.631 119.578 +-92.0285 200.948 119.173 +-94.6256 201.446 119.468 +-96.7424 200.887 119.136 +-99.7537 202.132 119.875 +-101.641 201.06 119.239 +-104.531 201.939 119.761 +-106.535 201.069 119.245 +-109.289 201.587 119.552 +-111.287 200.681 119.014 +-114.196 201.385 119.432 +-116.235 200.519 118.919 +-119.173 201.172 119.306 +-121.578 200.88 119.133 +-124.363 201.176 119.308 +-126.495 200.385 118.839 +-129.493 200.933 119.164 +-131.822 200.402 118.849 +-138.1 205.737 122.013 +-139.878 204.248 121.13 +-143.49 205.402 121.814 +-144.157 202.337 119.996 +-143.714 197.819 117.317 +-143.19 193.323 114.651 +-144.656 191.592 113.624 +-148.913 193.511 114.762 +-143.768 183.331 108.725 +-143.811 179.976 106.735 +-143.968 176.846 104.879 +-143.666 173.238 102.739 +-143.655 170.066 100.858 +-143.174 166.422 98.6974 +-144.676 165.136 97.9343 +-153.591 172.164 102.102 +-677.659 746.034 442.438 +-704.126 761.383 451.541 +-705.846 749.719 444.623 +-713.68 744.658 441.622 +-718.958 736.967 437.061 +-725.304 730.43 433.184 +-725.076 717.428 425.473 +-732.526 712.153 422.344 +-736.111 703.175 417.021 +-733.826 688.809 408.5 +-728.374 671.826 398.429 +-731.721 663.214 393.321 +-733.698 653.489 387.554 +-741.562 649.061 384.928 +-743.593 639.577 379.304 +-751.338 635.058 376.623 +-753.58 625.928 371.209 +-761.643 621.669 368.683 +-763.241 612.174 363.052 +-771.708 608.224 360.709 +-772.796 598.495 354.939 +-781.386 594.609 352.635 +-782.332 584.941 346.901 +-790.518 580.722 344.399 +-793.162 572.444 339.49 +-801.023 567.947 336.823 +-803.336 559.531 331.831 +-811.252 555.033 329.164 +-813.858 546.91 324.347 +-822.39 542.77 321.892 +-824.352 534.299 316.868 +-833.278 530.343 314.521 +-835.067 521.844 309.481 +-843.912 517.754 307.056 +-846.266 509.673 302.263 +-881.815 521.279 309.146 +-884.003 512.86 304.153 +-899.346 511.997 303.642 +-901.487 503.54 298.626 +-910.694 499.02 295.945 +-912.754 490.57 290.934 +-912.666 481.048 285.287 +-911.683 471.167 279.427 +-384.545 194.829 115.544 +-383.476 190.43 112.935 +-382.521 186.147 110.395 +-382.734 182.477 108.218 +-378.946 176.97 104.953 +-381.522 174.483 103.477 +-383.632 171.771 101.869 +-383.133 167.909 99.5788 +-382.674 164.105 97.3232 +-383.246 160.774 95.3476 +-136.561 56.0249 33.2257 +-383.278 153.725 91.1668 +-383.458 150.307 89.1402 +-382.684 146.549 86.9111 +-383.331 143.362 85.0212 +-1020.38 372.538 220.935 +-1033.64 368.256 218.395 +-382.371 132.878 78.8037 +-381.099 129.12 76.575 +-381.461 125.946 74.6928 +-380.945 122.506 72.6524 +-382.079 119.612 70.9364 +-1113.26 339.081 201.093 +-1113.63 329.816 195.598 +-1128.69 324.829 192.641 +-381.944 106.741 63.3034 +-380.438 103.173 61.187 +-1175.78 309.187 183.365 +-1205.14 307.044 182.093 +-381.429 94.0737 55.7907 +-380.923 90.862 53.886 +-379.802 87.5325 51.9114 +-381.934 84.958 50.3846 +-378.221 81.1101 48.1026 +-379.905 78.4488 46.5243 +-380.784 75.6137 44.843 +-381.048 72.6596 43.091 +-382.651 69.9578 41.4887 +-381.779 66.8085 39.621 +-382.147 63.8912 37.8909 +-380.716 60.6913 35.9932 +-382.007 57.9359 34.3591 +-381.693 54.9386 32.5815 +-381.346 51.9505 30.8094 +-381.562 49.0481 29.0882 +-380.659 46.0147 27.2891 +-380.021 43.0323 25.5204 +-379.947 40.1259 23.7968 +-380.24 37.2628 22.0988 +-381.598 34.4973 20.4587 +-381.734 31.6152 18.7495 +-380.048 28.5988 16.9606 +-379.726 25.7047 15.2443 +-380.77 22.9015 13.5818 +-380.19 20.0007 11.8615 +-145.5 6.5587 3.88966 +-378.439 14.2117 8.42831 +-379.269 11.3917 6.75591 +-153.148 3.44934 2.04564 +-147.777 2.21865 1.31578 +-145.894 1.0951 0.649454 +97.1 0 0 +96.9963 0.731933 0.425197 +97.0852 1.46532 0.851239 +96.9668 2.19557 1.27546 +97.0408 2.93019 1.70222 +97.0076 3.66232 2.12753 +96.9669 4.39417 2.55268 +97.8172 5.1732 3.00523 +96.9632 5.86285 3.40586 +96.8007 6.5875 3.82683 +96.8301 7.32521 4.25538 +97.5488 8.12188 4.71819 +97.5626 8.86665 5.15084 +97.37 9.59272 5.57264 +97.3688 10.3376 6.00538 +97.2607 11.0719 6.43195 +97.1453 11.8055 6.85806 +97.8137 12.6403 7.34305 +96.6947 13.2426 7.69291 +97.2478 14.0716 8.17453 +97.102 14.8049 8.60049 +96.9489 15.537 9.0258 +96.7884 16.268 9.45046 +97.5025 17.1528 9.96448 +96.4454 17.7261 10.2975 +96.2628 18.4531 10.7199 +96.0729 19.1789 11.1415 +96.7508 20.0847 11.6677 +96.5444 20.814 12.0913 +96.3307 21.5417 12.5141 +96.979 22.4692 13.0529 +96.7485 23.2001 13.4775 +96.5107 23.9293 13.9011 +97.1284 24.8777 14.452 +97.7343 25.8371 15.0094 +96.6115 26.3396 15.3013 +97.198 27.308 15.8639 +96.729 27.9856 16.2575 +96.4429 28.7144 16.6809 +96.9035 29.6719 17.2371 +96.6004 30.402 17.6613 +97.1329 31.4023 18.2423 +97.8392 32.475 18.8655 +97.4147 33.1803 19.2752 +97.9106 34.2056 19.8708 +97.6541 34.9761 20.3185 +97.3894 35.7455 20.7654 +97.025 36.4791 21.1915 +97.4753 37.5263 21.7999 +97.0929 38.2604 22.2263 +96.8843 39.0646 22.6936 +97.1182 40.0548 23.2688 +97.5192 41.1272 23.8918 +97.1004 41.8615 24.3183 +96.6742 42.5926 24.743 +97.5712 43.9193 25.5138 +97.3008 44.7351 25.9877 +96.6699 45.3851 26.3653 +97.0828 46.532 27.0315 +96.6095 47.2628 27.4561 +96.8216 48.3359 28.0794 +97.0194 49.4157 28.7067 +97.2885 50.5467 29.3637 +96.6894 51.2337 29.7628 +96.8471 52.3279 30.3985 +96.231 53.0103 30.7949 +96.531 54.2053 31.4891 +96.6474 55.3134 32.1329 +96.8316 56.4757 32.8081 +96.2579 57.2042 33.2313 +96.9876 58.722 34.113 +96.3913 59.4516 34.5368 +96.4348 60.5833 35.1942 +96.5432 61.7715 35.8845 +96.3953 62.8099 36.4877 +95.7577 63.5349 36.9089 +96.5313 65.2132 37.8839 +95.8695 65.9391 38.3056 +96.5215 67.5851 39.2618 +96.5302 68.8059 39.9709 +95.8322 69.5316 40.3925 +96.3434 71.1507 41.3331 +96.3009 72.3854 42.0504 +96.3157 73.6823 42.8037 +96.2373 74.927 43.5268 +95.9935 76.0592 44.1846 +95.9536 77.3704 44.9463 +95.7494 78.5677 45.6418 +95.7441 79.9479 46.4436 +95.5042 81.1522 47.1432 +95.9544 82.9703 48.1994 +95.8844 84.3696 49.0123 +95.5155 85.5253 49.6836 +94.5799 86.18 50.064 +93.843 87.0167 50.55 +93.3666 88.1044 51.1819 +92.9422 89.2553 51.8505 +92.6343 90.5359 52.5944 +92.8324 92.3405 53.6428 +92.2866 93.4326 54.2772 +92.3686 95.1853 55.2954 +92.3586 96.8793 56.2794 +92.5101 98.7816 57.3845 +92.0077 100.017 58.1023 +91.8567 101.662 59.0577 +93.2014 105.026 61.0122 +93.161 106.9 62.1007 +92.3165 107.877 62.6684 +92.2823 109.829 63.8021 +91.8091 111.295 64.654 +91.7149 113.258 65.7943 +91.4746 115.086 66.8562 +91.428 117.206 68.0878 +91.9527 120.126 69.7842 +94.8761 126.327 73.3863 +91.717 124.486 72.3168 +91.3581 126.419 73.44 +91.0192 128.432 74.6089 +90.8012 130.67 75.9094 +90.9001 133.436 77.5163 +91.7 137.337 79.7822 +92.1324 140.809 81.799 +93.0834 145.204 84.3523 +93.38 148.713 86.3907 +93.1432 151.473 87.9941 +93.1809 154.778 89.9139 +92.8411 157.555 91.5274 +92.8538 161.035 93.5492 +92.7155 164.372 95.4876 +92.6029 167.875 97.5225 +92.4266 171.389 99.5639 +92.4351 175.384 101.885 +92.3292 179.314 104.168 +90.7952 180.559 104.891 +90.1807 183.705 106.718 +87.5962 182.86 106.228 +90.1678 192.974 112.103 +91.8452 201.612 117.121 +90.4162 203.67 118.316 +87.5869 202.563 117.673 +85.7102 203.622 118.289 +82.9176 202.468 117.618 +81.1641 203.822 118.405 +78.2791 202.294 117.517 +76.4817 203.535 118.238 +74.0939 203.197 118.042 +71.865 203.253 118.074 +69.5554 203.041 117.951 +67.5312 203.641 118.3 +65.0191 202.726 117.768 +62.8413 202.792 117.807 +60.617 202.673 117.737 +58.5935 203.206 118.047 +56.167 202.295 117.518 +54.2357 203.133 118.004 +51.8589 202.268 117.502 +50.0028 203.412 118.167 +47.5891 202.257 117.496 +45.7178 203.372 118.144 +43.3903 202.434 117.599 +41.2935 202.498 117.636 +39.0998 202.034 117.366 +37.075 202.407 117.583 +34.9274 202.08 117.393 +33.0536 203.364 118.139 +30.752 201.976 117.333 +28.7977 202.802 117.813 +26.6367 202.152 117.435 +24.6374 202.69 117.747 +22.5333 202.352 117.551 +20.5077 202.686 117.745 +18.2967 201.023 116.779 +16.323 201.843 117.255 +14.2609 201.613 117.122 +12.2361 201.887 117.281 +10.1764 201.539 117.079 +8.16299 202.127 117.42 +6.09661 201.316 116.949 +4.08735 202.478 117.624 +2.03677 201.81 117.236 +1.43401e-14 202.509 117.642 +-2.03765 201.896 117.286 +-4.07339 201.786 117.222 +-6.1097 201.748 117.2 +-8.17695 202.472 117.621 +-10.1895 201.798 117.229 +-12.2466 202.059 117.381 +-14.2426 201.355 116.972 +-16.3718 202.447 117.606 +-18.2888 200.936 116.729 +-20.499 202.6 117.695 +-22.3992 201.146 116.851 +-24.5537 202.002 117.347 +-26.5462 201.465 117.036 +-28.6393 201.686 117.164 +-30.6867 201.548 117.084 +-32.8309 201.994 117.343 +-34.7352 200.969 116.748 +-36.9029 201.468 117.037 +-38.8027 200.5 116.475 +-41.0157 201.136 116.845 +-43.0623 200.903 116.709 +-45.2027 201.08 116.812 +-47.2701 200.901 116.708 +-49.5038 201.382 116.988 +-51.3828 200.411 116.423 +-53.8308 201.616 117.123 +-55.6534 200.445 116.443 +-57.8919 200.773 116.634 +-59.991 200.579 116.521 +-62.3236 201.121 116.836 +-64.3777 200.727 116.607 +-66.6491 200.981 116.755 +-68.6749 200.471 116.458 +-71.3095 201.682 117.162 +-73.0414 200.311 116.365 +-75.6474 201.315 116.949 +-77.6127 200.572 116.517 +-80.2851 201.614 117.122 +-82.25 200.838 116.671 +-84.65 201.103 116.825 +-86.9565 201.105 116.826 +-89.2336 201.006 116.769 +-91.5887 201.049 116.794 +-93.9888 201.152 116.854 +-96.3214 201.074 116.808 +-99.1285 201.932 117.307 +-100.844 200.541 116.499 +-103.311 200.642 116.558 +-106.037 201.192 116.877 +-108.275 200.776 116.636 +-110.512 200.342 116.383 +-113.713 201.599 117.113 +-115.476 200.269 116.341 +-118.355 200.853 116.68 +-120.886 200.796 116.647 +-123.565 200.946 116.734 +-125.636 200.082 116.232 +-128.475 200.411 116.424 +-131.132 200.413 116.425 +-135.8 203.384 118.151 +-139.066 204.14 118.59 +-142.511 205.084 119.138 +-144.471 203.854 118.423 +-143.767 198.942 115.57 +-143.781 195.152 113.369 +-145.31 193.479 112.397 +-143.062 186.896 108.572 +-143.657 184.161 106.983 +-144.434 181.715 105.563 +-144.484 178.422 103.65 +-143.376 173.806 100.968 +-143.713 171.039 99.3605 +-149.301 174.466 101.351 +-150.454 172.642 100.292 +-687.353 774.563 449.962 +-702.347 777.319 451.563 +-709.604 771.381 448.113 +-712.454 760.755 441.941 +-718.832 754.016 438.026 +-721.143 743.131 431.702 +-728.811 737.859 428.64 +-733.277 729.395 423.723 +-738.092 721.373 419.063 +-736.311 707.102 410.772 +-728.421 687.365 399.307 +-730.898 677.733 393.711 +-737.365 671.878 390.31 +-740.506 663.054 385.183 +-747.8 657.996 382.245 +-749.957 648.476 376.715 +-757.115 643.338 373.73 +-759.047 633.817 368.199 +-766.793 629.196 365.515 +-769.53 620.497 360.461 +-776.206 615.016 357.277 +-778.964 606.475 352.315 +-786.928 602.006 349.719 +-788.973 593.039 344.51 +-797.286 588.803 342.05 +-799.367 579.986 336.928 +-806.656 574.977 334.018 +-809.475 566.801 329.268 +-817.669 562.393 326.707 +-819.452 553.593 321.595 +-828.578 549.758 319.367 +-830.501 541.143 314.363 +-839.066 536.862 311.876 +-841.539 528.68 307.123 +-854.251 526.88 306.077 +-864.943 523.687 304.222 +-888.326 527.915 306.678 +-891.796 520.128 302.155 +-906.434 518.773 301.367 +-907.19 509.417 295.932 +-913.815 503.388 292.43 +-913.687 493.679 286.789 +-910.193 482.292 280.175 +-908.083 471.799 274.079 +-382.391 194.767 113.145 +-383.476 191.441 111.213 +-382.521 187.135 108.711 +-382.384 183.278 106.47 +-377.276 177.125 102.896 +-381.61 175.45 101.923 +-381.326 171.645 99.7126 +-383.133 168.8 98.06 +-382.584 164.939 95.8167 +-382.347 161.249 93.6733 +-136.29 56.2107 32.6541 +-136.762 55.1436 32.0342 +-382.548 150.747 87.5722 +-383.598 147.679 85.7899 +-383.239 144.088 83.7043 +-383.943 140.921 81.8643 +-1042.04 373.223 216.814 +-383.112 133.842 77.7519 +-379.796 129.362 75.1494 +-381.181 126.522 73.4998 +-382.256 123.581 71.7909 +-380.388 119.716 69.5456 +-1114.3 341.198 198.21 +-1121.39 333.875 193.956 +-1140.45 329.956 191.679 +-382.039 107.335 62.3534 +-382.25 104.214 60.5406 +-1190.79 314.798 182.873 +-1222.02 312.997 181.827 +-381.909 94.6925 55.0091 +-381.501 91.4836 53.145 +-380.575 88.1762 51.2236 +-381.45 85.3009 49.5533 +-380.065 81.9382 47.5998 +-380.002 78.8855 45.8264 +-381.076 76.0736 44.1929 +-382.513 73.3261 42.5968 +-381.086 70.0415 40.6887 +-381.485 67.1115 38.9867 +-380.184 63.9004 37.1213 +-382.191 61.2498 35.5815 +-379.84 57.9132 33.6431 +-380.509 55.0591 31.9851 +-381.05 52.1858 30.3159 +-380.573 49.1807 28.5702 +-381.352 46.3433 26.9219 +-380.12 43.272 25.1377 +-381.435 40.497 23.5256 +-381.035 37.5389 21.8072 +-379.41 34.4815 20.0311 +-379.744 31.6174 18.3673 +-381.343 28.8486 16.7588 +-380.324 25.8818 15.0354 +-378.975 22.9146 13.3116 +-380.09 20.1016 11.6775 +-379.879 17.2147 10.0004 +-378.439 14.2872 8.29976 +-379.868 11.4703 6.66336 +-3275.38 74.163 43.083 +-146.278 2.20779 1.28256 +-145.994 1.10167 0.639985 +97.1 0 0 +96.9963 0.735739 0.418576 +97.0852 1.47294 0.837985 +96.9668 2.20699 1.2556 +97.8404 2.9697 1.68952 +97.0076 3.68136 2.0944 +96.9669 4.41702 2.51293 +96.9189 5.15234 2.93127 +96.9632 5.89333 3.35283 +96.8007 6.62175 3.76724 +97.6271 7.4239 4.2236 +97.6484 8.17245 4.64947 +97.5626 8.91276 5.07064 +97.37 9.64261 5.48587 +97.3688 10.3914 5.91188 +97.2607 11.1295 6.3318 +97.0463 11.8548 6.74441 +96.8247 12.5775 7.15558 +96.6947 13.3114 7.57313 +96.5574 14.0444 7.99014 +97.102 14.8819 8.46658 +96.9489 15.6178 8.88527 +96.7884 16.3526 9.30331 +96.6206 17.0861 9.72062 +96.4454 17.8183 10.1372 +96.2628 18.5491 10.5529 +96.9498 19.4545 11.0681 +96.7508 20.1892 11.486 +96.5444 20.9222 11.9031 +97.202 21.8496 12.4307 +96.979 22.586 12.8496 +97.6158 23.5298 13.3865 +96.5107 24.0537 13.6846 +97.1284 25.007 14.227 +96.8737 25.7428 14.6456 +97.2791 26.6595 15.1671 +97.198 27.45 15.6169 +96.729 28.1311 16.0044 +97.1993 29.0901 16.5499 +96.9978 29.8552 16.9852 +97.5401 30.8574 17.5554 +97.3202 31.6265 17.9929 +97.7459 32.6126 18.554 +97.4147 33.3528 18.9751 +97.9106 34.3835 19.5614 +97.5617 35.1248 19.9832 +97.2974 35.8974 20.4228 +97.025 36.6687 20.8616 +97.658 37.7921 21.5007 +97.0929 38.4593 21.8803 +96.8843 39.2678 22.3402 +97.1182 40.2631 22.9065 +96.89 41.0744 23.368 +97.1004 42.0792 23.9397 +97.387 43.1298 24.5374 +97.6599 44.1879 25.1393 +97.2125 44.9269 25.5598 +96.7578 45.6626 25.9783 +97.0828 46.774 26.6107 +96.5224 47.4658 27.0042 +96.8216 48.5872 27.6422 +96.3301 49.3198 28.059 +97.2885 50.8095 28.9065 +96.6894 51.5001 29.2994 +96.8471 52.6001 29.9252 +96.3153 53.3326 30.342 +96.4471 54.4398 30.9719 +96.564 55.5531 31.6052 +96.8316 56.7694 32.2972 +96.8348 57.8463 32.9099 +96.3323 58.6285 33.3549 +96.3913 59.7607 33.999 +96.4348 60.8983 34.6462 +96.3824 61.9894 35.267 +96.4752 63.1888 35.9494 +96.5511 64.3944 36.6352 +96.5313 65.5523 37.294 +96.4956 66.7149 37.9554 +95.8221 67.4443 38.3704 +96.4531 69.1084 39.3171 +95.8322 69.8932 39.7636 +96.3434 71.5206 40.6895 +95.6972 72.3057 41.1361 +96.3157 74.0654 42.1373 +96.2373 75.3166 42.8491 +96.0672 76.5135 43.53 +95.3685 77.2985 43.9766 +95.822 79.036 44.9651 +95.7441 80.3636 45.7204 +95.5756 81.635 46.4438 +96.0251 83.4632 47.4838 +96.0246 84.9323 48.3196 +95.7239 86.1576 49.0167 +94.3734 86.439 49.1768 +93.2292 86.8973 49.4376 +92.8261 88.0498 50.0932 +92.4069 89.2023 50.7489 +92.6343 91.0067 51.7755 +92.898 92.8868 52.8451 +92.2216 93.8524 53.3945 +92.3686 95.6803 54.4344 +92.5494 97.5838 55.5174 +92.5101 99.2952 56.491 +92.4434 101.014 57.4686 +91.9183 102.259 58.1772 +92.1665 104.401 59.3957 +93.2211 107.526 61.1734 +92.257 108.368 61.6525 +92.1647 110.259 62.7286 +92.2156 112.369 63.9292 +91.8296 113.99 64.8509 +91.9844 116.329 66.1821 +91.9313 118.464 67.3966 +91.5112 120.171 68.3678 +91.7172 122.756 69.8384 +92.5767 126.306 71.8579 +91.0931 126.708 72.0869 +91.1237 129.247 73.5313 +91.3163 132.095 75.1512 +91.1031 134.429 76.4795 +91.65 137.976 78.497 +93.0681 142.978 81.3428 +93.0834 145.959 83.0389 +93.38 149.486 85.0456 +93.0962 152.184 86.5805 +93.1809 155.583 88.514 +92.7957 158.297 90.0583 +92.8091 161.795 92.0481 +92.7155 165.227 94.0009 +92.646 168.826 96.0486 +92.7647 172.911 98.3722 +92.4766 176.375 100.343 +92.0852 179.77 102.275 +90.1572 180.222 102.532 +89.4774 183.22 104.237 +87.4049 183.409 104.345 +91.9659 197.846 112.559 +91.8819 202.742 115.344 +89.807 203.349 115.689 +87.2016 202.72 115.331 +85.4366 204.027 116.075 +82.951 203.602 115.833 +80.7083 203.731 115.906 +78.0887 202.851 115.406 +75.9255 203.106 115.551 +73.5226 202.679 115.308 +71.3095 202.73 115.337 +68.9873 202.43 115.166 +67.0074 203.113 115.555 +64.4846 202.105 114.982 +62.6083 203.09 115.542 +60.2665 202.548 115.233 +58.2548 203.082 115.537 +55.9802 202.67 115.303 +53.8758 202.834 115.396 +51.7291 202.81 115.383 +49.6493 203.025 115.505 +47.5493 203.138 115.569 +45.4507 203.235 115.625 +43.2263 202.717 115.33 +41.1893 203.037 115.512 +38.9842 202.485 115.198 +36.9968 203.03 115.508 +34.7943 202.357 115.125 +32.7753 202.7 115.32 +30.504 201.39 114.575 +28.6149 202.563 115.242 +26.5688 202.685 115.312 +24.5433 202.966 115.471 +22.4183 202.365 115.13 +20.3596 202.268 115.074 +18.2496 201.548 114.665 +16.316 202.806 115.38 +14.1755 201.447 114.607 +12.1995 202.329 115.109 +10.1328 201.719 114.762 +8.11413 201.961 114.9 +6.07305 201.58 114.683 +4.0507 201.706 114.755 +2.02107 201.294 114.52 +1.4236e-14 202.085 114.97 +-2.02194 201.381 114.57 +-4.05943 202.141 115.002 +-6.08352 201.928 114.881 +-8.11762 202.048 114.949 +-10.1502 202.066 114.96 +-12.1733 201.894 114.862 +-14.1938 201.707 114.755 +-16.2602 202.112 114.986 +-18.2417 201.461 114.615 +-20.3334 202.008 114.926 +-22.3033 201.328 114.539 +-24.3969 201.755 114.782 +-26.4216 201.563 114.673 +-28.4443 201.354 114.555 +-30.4779 201.217 114.476 +-32.6222 201.753 114.781 +-34.6465 201.498 114.636 +-36.6839 201.314 114.531 +-38.7037 201.028 114.369 +-40.7726 200.983 114.343 +-42.8436 200.922 114.309 +-44.9164 200.846 114.265 +-46.9312 200.497 114.067 +-49.2959 201.58 114.683 +-51.2096 200.774 114.224 +-53.4709 201.309 114.529 +-55.4433 200.727 114.197 +-57.6984 201.142 114.434 +-59.7407 200.781 114.228 +-62.013 201.16 114.444 +-64.1372 201.016 114.362 +-66.4562 201.441 114.604 +-68.5045 201.013 114.36 +-70.7247 201.068 114.391 +-72.7708 200.607 114.129 +-75.431 201.783 114.798 +-77.3906 201.038 114.375 +-79.7968 201.43 114.598 +-81.7827 200.735 114.202 +-84.4106 201.577 114.681 +-86.3611 200.766 114.22 +-89.0186 201.564 114.674 +-91.0389 200.882 114.286 +-93.7266 201.633 114.713 +-96.0153 201.477 114.624 +-98.308 201.301 114.524 +-100.565 201.027 114.368 +-103.108 201.288 114.517 +-105.664 201.527 114.652 +-107.852 201.033 114.372 +-110.168 200.756 114.214 +-112.661 200.772 114.223 +-114.985 200.455 114.043 +-117.992 201.279 114.511 +-120.055 200.453 114.042 +-122.814 200.763 114.218 +-125.159 200.358 113.988 +-127.699 200.238 113.919 +-130.295 200.169 113.88 +-133.35 200.754 114.213 +-138.558 204.453 116.317 +-141.996 205.406 116.859 +-144.523 204.988 116.621 +-143.767 199.977 113.771 +-143.835 196.24 111.645 +-144.547 193.465 110.066 +-143.835 188.883 107.459 +-143.824 185.334 105.44 +-144.094 182.231 103.675 +-143.681 178.354 101.469 +-143.608 174.993 99.557 +-145.183 173.686 98.8133 +-151.026 177.399 100.926 +-678.607 782.733 445.312 +-703.911 797.347 453.626 +-706.472 785.95 447.142 +-713.215 779.337 443.38 +-716.418 768.967 437.48 +-722.394 761.693 433.342 +-725.45 751.457 427.519 +-733.941 746.918 424.936 +-737.542 737.452 419.551 +-734.846 721.935 410.723 +-728.014 702.769 399.819 +-731.867 694.209 394.949 +-734.58 684.689 389.533 +-742.046 679.66 386.672 +-744.952 670.504 381.463 +-751.445 664.642 378.128 +-754.412 655.721 373.052 +-761.395 650.339 369.991 +-764.227 641.46 364.939 +-770.42 635.459 361.525 +-773.553 626.984 356.703 +-781.072 622.09 353.919 +-783.646 613.292 348.914 +-790.523 607.901 345.847 +-793.653 599.658 341.157 +-800.784 594.462 338.201 +-803.657 586.13 333.461 +-811.672 581.561 330.862 +-814.371 573.194 326.102 +-820.799 567.482 322.852 +-825.047 560.272 318.75 +-832.307 555.104 315.81 +-835.692 547.357 311.402 +-842.603 541.928 308.314 +-846.798 534.751 304.23 +-885.758 549.153 312.424 +-885.995 539.222 306.774 +-893.765 533.91 303.752 +-902.573 529.151 301.045 +-908.185 522.478 297.248 +-911.887 514.717 292.833 +-913.393 505.772 287.744 +-912.076 495.371 281.826 +-907.891 483.574 275.115 +-907.397 473.894 269.608 +-387.13 198.205 112.763 +-383.13 192.263 109.382 +-383.392 188.537 107.262 +-383.521 184.778 105.124 +-379.737 179.208 101.955 +-381.875 176.484 100.405 +-379.729 171.815 97.7491 +-382.955 169.599 96.4882 +-382.137 165.602 94.214 +-381.808 161.859 92.0847 +-383.689 159.069 90.4974 +-137.215 55.614 31.6399 +-383.367 151.855 86.3931 +-382.958 148.199 84.3132 +-382.506 144.56 82.2433 +-381.825 140.873 80.1451 +-1048.97 377.658 214.857 +-383.761 134.767 76.6713 +-381.936 130.767 74.3961 +-381.181 127.18 72.3554 +-380.383 123.614 70.3265 +-381.609 120.724 68.6823 +-3088.56 950.641 540.838 +-1129.89 338.158 192.385 +-384.45 111.807 63.6093 +-381.183 107.652 61.2451 +-382.25 104.756 59.5979 +-384.626 102.209 58.1486 +-1231.41 317.043 180.372 +-386.812 96.4061 54.8473 +-381.501 91.9593 52.3175 +-381.541 88.8598 50.5541 +-380.869 85.6139 48.7074 +-381.714 82.7218 47.062 +-380.099 79.3161 45.1245 +-381.368 76.5277 43.5381 +-381.927 73.5946 41.8694 +-381.673 70.5141 40.1169 +-381.289 67.4259 38.3599 +-381.362 64.4318 36.6565 +-380.52 61.2991 34.8742 +-381.613 58.4861 33.2739 +-380.41 55.3311 31.479 +-381.05 52.4572 29.8439 +-381.562 49.565 28.1985 +-381.154 46.56 26.4889 +-380.814 43.5765 24.7915 +-380.542 40.6122 23.1051 +-380.24 37.6554 21.4229 +-379.41 34.6609 19.7192 +-378.848 31.7068 18.0386 +-379.65 28.8699 16.4247 +-381.62 26.1051 14.8517 +-378.775 23.0216 13.0974 +-379.89 20.1955 11.4896 +-378.58 17.2451 9.81106 +-379.838 14.4146 8.20074 +-378.569 11.4905 6.53716 +-153.547 3.49479 1.98825 +-145.578 2.20865 1.25654 +-145.094 1.10057 0.626138 +97.1 0 0 +97.0963 0.740247 0.412348 +97.0852 1.48044 0.824665 +96.9668 2.21822 1.23564 +97.8404 2.98481 1.66266 +96.9077 3.6963 2.05899 +96.9669 4.43951 2.47299 +96.9189 5.17857 2.88468 +96.8635 5.91724 3.29614 +96.9004 6.66231 3.71118 +97.6271 7.46169 4.15647 +97.5488 8.20567 4.5709 +97.5626 8.95813 4.99004 +97.37 9.6917 5.39867 +97.3688 10.4443 5.81791 +97.2607 11.1862 6.23116 +97.1453 11.9273 6.64397 +96.9236 12.6544 7.04904 +96.6947 13.3792 7.45275 +96.5574 14.1159 7.86313 +96.2157 14.8211 8.25594 +96.9489 15.6973 8.74404 +96.7884 16.4358 9.15544 +96.6206 17.1731 9.56611 +96.4454 17.909 9.97605 +96.2628 18.6435 10.3852 +96.9498 19.5536 10.8921 +96.7508 20.2919 11.3034 +96.5444 21.0287 11.7139 +97.202 21.9609 12.2331 +96.979 22.701 12.6454 +96.7485 23.4395 13.0567 +96.5107 24.1762 13.4671 +97.1284 25.1343 14.0009 +96.8737 25.8738 14.4128 +96.6115 26.6113 14.8236 +97.198 27.5898 15.3686 +96.729 28.2743 15.75 +97.2939 29.2667 16.3027 +96.9978 30.0072 16.7153 +97.6341 31.0444 17.293 +97.2266 31.7569 17.6899 +97.7459 32.7787 18.2591 +97.4147 33.5226 18.6735 +97.0761 34.264 19.0864 +97.6541 35.337 19.6842 +97.2053 36.046 20.0791 +97.8503 37.1689 20.7046 +97.4753 37.9134 21.1193 +97.2749 38.7276 21.5728 +97.7 39.7999 22.1702 +97.2987 40.5433 22.5843 +96.89 41.2835 22.9966 +97.1004 42.2934 23.5592 +96.6742 43.0321 23.9706 +97.039 44.1305 24.5825 +97.2125 45.1556 25.1535 +96.7578 45.8951 25.5654 +97.0828 47.0121 26.1877 +97.3058 48.0946 26.7907 +96.8216 48.8346 27.2029 +96.3301 49.5708 27.613 +96.6028 50.7083 28.2466 +96.7747 51.808 28.8592 +96.9319 52.9141 29.4753 +96.3153 53.6041 29.8597 +96.4471 54.717 30.4796 +96.6474 55.8841 31.1297 +96.8316 57.0584 31.7839 +96.8348 58.1408 32.3868 +96.2504 58.8768 32.7968 +96.2285 59.9635 33.4021 +96.5157 61.2597 34.1242 +96.3824 62.305 34.7064 +96.3953 63.4579 35.3487 +95.8371 64.2436 35.7863 +96.5313 65.886 36.7012 +95.9478 66.6739 37.1401 +96.5215 68.2824 38.0361 +95.8358 69.0156 38.4445 +95.8322 70.249 39.1316 +96.4195 71.9414 40.0743 +96.3764 73.1896 40.7696 +95.7165 73.9794 41.2095 +96.2373 75.7 42.168 +96.0672 76.903 42.8381 +95.9536 78.1687 43.5432 +95.822 79.4384 44.2504 +95.7441 80.7727 44.9937 +95.5756 82.0506 45.7056 +95.3887 83.3321 46.4194 +96.1648 85.4893 47.6211 +95.7239 86.5962 48.2376 +94.0981 86.6256 48.254 +93.161 87.2758 48.6162 +93.4341 89.0772 49.6197 +92.5408 89.7866 50.0148 +92.568 91.4045 50.9161 +92.8324 93.2932 51.9682 +92.8061 94.9278 52.8786 +92.3686 96.1674 53.5692 +92.4222 97.9461 54.56 +92.3842 99.6653 55.5177 +92.0077 101.049 56.2885 +91.9183 102.78 57.2525 +92.0447 104.793 58.3742 +92.499 107.235 59.7344 +92.3165 108.99 60.712 +92.2235 110.891 61.7709 +92.1576 112.87 62.8731 +92.2311 115.071 64.0995 +91.8145 116.706 65.01 +91.7636 118.85 66.2042 +91.2352 120.419 67.0781 +91.3904 122.942 68.4835 +91.9857 126.139 70.2646 +91.3051 127.65 71.1065 +91.1237 129.905 72.3625 +90.8527 132.093 73.581 +91.4077 135.565 75.5154 +91.15 137.921 76.8279 +93.1173 143.782 80.0922 +93.1319 146.778 81.7614 +93.4277 150.323 83.7361 +93.0962 152.959 85.2043 +93.1809 156.375 87.107 +92.7957 159.103 88.6268 +92.8538 162.697 90.6288 +92.7155 166.068 92.5067 +92.6029 169.607 94.4781 +92.3844 173.078 96.4115 +92.4766 177.273 98.7483 +92.1258 180.765 100.693 +90.2369 181.3 100.992 +89.1258 183.428 102.177 +87.8258 185.231 103.181 +91.891 198.691 110.679 +91.8452 203.693 113.465 +89.6278 203.976 113.623 +86.8865 203.016 113.088 +84.8894 203.753 113.499 +82.5171 203.569 113.396 +80.3177 203.776 113.512 +78.1204 203.967 113.618 +75.771 203.724 113.483 +73.282 203.044 113.104 +71.3095 203.762 113.504 +68.7317 202.706 112.916 +66.7042 203.223 113.203 +64.4846 203.134 113.154 +62.4013 203.45 113.33 +60.2665 203.579 113.402 +57.9161 202.929 113.04 +55.8168 203.108 113.14 +53.6508 203.015 113.087 +51.4693 202.819 112.978 +49.5246 203.546 113.383 +47.3499 203.316 113.255 +45.279 203.498 113.357 +43.044 202.891 113.018 +41.0331 203.297 113.245 +38.8357 202.74 112.935 +36.8403 203.202 113.192 +34.7352 203.043 113.103 +32.7196 203.386 113.294 +30.5431 202.675 112.898 +28.5052 202.814 112.976 +26.5009 203.196 113.189 +24.4388 203.13 113.152 +22.3321 202.613 112.864 +20.255 202.254 112.664 +18.1554 201.53 112.26 +16.2044 202.444 112.77 +14.1266 201.775 112.397 +12.1576 202.661 112.89 +10.0935 201.96 112.5 +8.07574 202.029 112.539 +6.04688 201.734 112.374 +4.03849 202.122 112.59 +2.02019 202.232 112.651 +1.41871e-14 202.414 112.753 +-2.01408 201.62 112.311 +-4.04372 202.384 112.736 +-6.05735 202.083 112.569 +-8.07923 202.117 112.587 +-10.1023 202.135 112.597 +-12.121 202.05 112.55 +-14.1511 202.124 112.592 +-16.2184 202.619 112.867 +-18.2496 202.574 112.842 +-20.2637 202.34 112.712 +-22.2841 202.179 112.622 +-24.3238 202.174 112.619 +-26.3311 201.895 112.464 +-28.4199 202.207 112.637 +-30.3473 201.376 112.175 +-32.483 201.916 112.475 +-34.4987 201.66 112.333 +-36.6526 202.165 112.614 +-38.5386 201.19 112.071 +-40.7726 202.006 112.526 +-42.6067 200.829 111.87 +-44.802 201.354 112.162 +-46.8116 201.004 111.968 +-48.984 201.324 112.146 +-51.0148 201.028 111.981 +-53.2684 201.568 112.282 +-55.2332 200.984 111.957 +-57.7468 202.336 112.709 +-59.5404 201.127 112.036 +-61.9354 201.93 112.484 +-63.9234 201.366 112.169 +-66.2357 201.795 112.408 +-68.2489 201.282 112.122 +-70.5785 201.674 112.34 +-72.5002 200.878 111.897 +-74.813 201.149 112.048 +-77.1685 201.481 112.233 +-79.5037 201.712 112.362 +-81.7493 201.675 112.341 +-83.7265 200.962 111.944 +-86.3962 201.87 112.45 +-88.3735 201.122 112.033 +-90.7091 201.172 112.061 +-93.352 201.85 112.439 +-95.6326 201.695 112.353 +-97.9954 201.683 112.346 +-100.126 201.169 112.059 +-102.742 201.595 112.297 +-105.125 201.519 112.254 +-107.641 201.661 112.333 +-109.78 201.068 112.003 +-112.223 201.009 111.97 +-114.762 201.084 112.012 +-117.311 201.136 112.041 +-119.639 200.776 111.841 +-122.532 201.322 112.144 +-124.92 200.994 111.962 +-127.844 201.486 112.236 +-129.901 200.58 111.731 +-132.3 200.187 111.512 +-138.101 204.816 114.091 +-141.069 205.103 114.251 +-144.157 205.51 114.477 +-143.873 201.143 112.045 +-143.835 197.239 109.87 +-143.567 193.132 107.582 +-143.945 189.989 105.832 +-144.104 186.64 103.966 +-143.244 182.079 101.425 +-143.337 178.832 99.6169 +-144.711 177.235 98.7274 +-149.297 179.517 99.9985 +-677.92 800.359 445.833 +-687.213 796.695 443.792 +-706.042 803.832 447.767 +-709.55 793.393 441.952 +-715.767 786.108 437.894 +-719.628 776.344 432.455 +-725.829 769.211 428.482 +-728.6 758.562 422.55 +-738.098 754.971 420.55 +-738.657 742.327 413.507 +-727.954 718.805 400.404 +-729.285 707.581 394.151 +-734.772 700.512 390.214 +-738.536 691.881 385.406 +-744.387 685.274 381.726 +-747.73 676.43 376.799 +-754.459 670.705 373.61 +-758.089 662.271 368.912 +-763.392 655.364 365.065 +-767.895 647.821 360.863 +-773.249 641.04 357.085 +-777.136 633.094 352.659 +-783.431 627.146 349.346 +-787.288 619.279 344.964 +-793.444 613.254 341.607 +-796.898 605.176 337.108 +-803.369 599.418 333.9 +-806.951 591.529 329.506 +-813.524 585.855 326.345 +-818.179 578.807 322.419 +-824.165 572.71 319.023 +-827.963 565.115 314.792 +-834.29 559.26 311.531 +-838.567 552.037 307.507 +-844.854 546.143 304.224 +-857.073 543.994 303.027 +-887.305 552.912 307.995 +-890.992 545.024 303.601 +-901.676 541.378 301.57 +-906.967 534.434 297.702 +-912.188 527.452 293.812 +-913.564 518.288 288.708 +-911.537 507.314 282.595 +-909.956 496.735 276.702 +-907.55 485.853 270.64 +-911.769 478.601 266.601 +-919.875 473.362 263.682 +-382.783 193.067 107.546 +-383.305 189.453 105.533 +-382.909 185.423 103.288 +-379.737 180.12 100.334 +-382.669 177.752 99.015 +-381.415 173.456 96.6222 +-382.509 170.264 94.844 +-382.316 166.523 92.7603 +-382.347 162.913 90.749 +-384.231 160.105 89.185 +-136.943 55.7864 31.0753 +-382.73 152.374 84.8787 +-383.598 149.202 83.1118 +-383.331 145.61 81.1107 +-382.102 141.692 78.9282 +-1069.58 387.036 215.595 +-382.834 135.125 75.2701 +-382.309 131.561 73.2847 +-381.274 127.858 71.2223 +-381.226 124.519 69.3619 +-381.985 121.458 67.6572 +-384.221 118.863 66.2115 +-1135.38 341.529 190.246 +-382.743 111.877 62.3203 +-382.039 108.442 60.4069 +-381.773 105.159 58.5776 +-384.626 102.729 57.2243 +-1239.47 320.742 178.666 +-3149.57 788.976 439.492 +-380.152 92.1008 51.3039 +-381.927 89.4022 49.8007 +-381.45 86.181 48.0063 +-380.938 82.9738 46.2198 +-379.516 79.5975 44.339 +-380.492 76.7405 42.7476 +-382.22 74.0259 41.2355 +-382.26 70.9821 39.54 +-381.191 67.7517 37.7405 +-380.675 64.6431 36.0088 +-381.7 61.8022 34.4264 +-383.09 59.0113 32.8717 +-380.114 55.5695 30.9545 +-381.05 52.7242 29.3695 +-381.167 49.7656 27.7215 +-382.045 46.9065 26.1289 +-379.624 43.6615 24.3212 +-380.741 40.8403 22.7497 +-379.048 37.7284 21.0163 +-380.703 34.956 19.4719 +-381.038 32.0524 17.8545 +-378.654 28.9407 16.1212 +-380.424 26.1558 14.5698 +-380.67 23.2546 12.9538 +-379.99 20.3036 11.31 +-378.58 17.3329 9.65512 +-378.939 14.4536 8.05127 +-379.569 11.5795 6.45024 +-379.57 8.68311 4.83685 +-146.578 2.23514 1.24506 +-146.494 1.11685 0.622133 +97.1 0 0 +96.9963 0.743171 0.405235 +97.0852 1.48782 0.811276 +96.9668 2.22928 1.21558 +96.9409 2.97212 1.62063 +97.0076 3.71855 2.02765 +96.8671 4.45705 2.43033 +96.9189 5.20438 2.83784 +97.7613 6.00185 3.27268 +96.9004 6.69552 3.65092 +97.6271 7.49889 4.08898 +96.653 8.17084 4.45539 +97.4631 8.99365 4.90405 +97.4694 9.74993 5.31643 +97.3688 10.4964 5.72345 +97.1616 11.2305 6.12376 +97.0463 11.9745 6.52944 +96.9236 12.7175 6.93459 +96.6947 13.4459 7.33175 +97.2478 14.2877 7.79076 +96.2157 14.8949 8.1219 +96.7523 15.7436 8.58464 +96.5921 16.4842 8.9885 +96.6206 17.2587 9.41079 +96.4454 17.9983 9.81408 +96.2628 18.7365 10.2166 +96.9498 19.651 10.7153 +96.7508 20.3931 11.1199 +96.7385 21.1761 11.5469 +96.3307 21.8725 11.9266 +96.979 22.8142 12.4401 +96.7485 23.5563 12.8447 +96.5107 24.2967 13.2485 +97.1284 25.2596 13.7735 +96.6824 25.9515 14.1508 +96.6115 26.744 14.5829 +97.198 27.7273 15.1191 +96.729 28.4153 15.4942 +97.2939 29.4126 16.038 +96.9978 30.1568 16.4439 +97.6341 31.1991 17.0122 +97.2266 31.9152 17.4027 +97.7459 32.942 17.9626 +97.4147 33.6897 18.3703 +97.0761 34.4347 18.7765 +97.5617 35.4796 19.3463 +97.2974 36.26 19.7718 +97.7586 37.3192 20.3494 +97.4753 38.1024 20.7764 +97.2749 38.9206 21.2226 +96.8843 39.6644 21.6282 +97.1182 40.6698 22.1764 +97.5192 41.7587 22.7701 +97.1004 42.5043 23.1767 +97.4761 43.6053 23.7771 +96.9503 44.3099 24.1612 +97.2125 45.3807 24.7451 +97.5487 46.5008 25.3559 +96.9953 47.2039 25.7393 +97.3058 48.3344 26.3557 +96.8216 49.078 26.7612 +97.0194 50.1744 27.359 +96.6028 50.961 27.788 +96.6894 52.0203 28.3656 +96.7623 53.0848 28.946 +96.231 53.8242 29.3492 +96.4471 54.9897 29.9847 +96.6474 56.1627 30.6243 +96.8316 57.3428 31.2678 +96.1755 58.0328 31.6441 +97.0695 59.6739 32.5389 +96.2285 60.2624 32.8598 +96.4348 61.5134 33.542 +96.3824 62.6155 34.1429 +96.4752 63.8271 34.8036 +96.5511 65.0448 35.4676 +95.8221 65.728 35.8401 +95.9478 67.0062 36.5371 +96.5215 68.6228 37.4186 +95.7586 69.3038 37.7899 +96.445 71.0507 38.7424 +96.4195 72.3 39.4237 +96.3009 73.4968 40.0762 +95.6416 74.29 40.5088 +96.1629 76.0186 41.4514 +96.0672 77.2863 42.1426 +95.9536 78.5583 42.8362 +95.7494 79.7739 43.499 +95.7441 81.1753 44.2632 +95.5756 82.4596 44.9635 +95.318 83.6854 45.6319 +95.604 85.4145 46.5747 +95.0987 86.4594 47.1445 +93.4786 86.4842 47.158 +93.161 87.7108 47.8268 +93.3666 89.4571 48.7791 +92.8753 90.5607 49.3809 +92.568 91.8601 50.0894 +92.2419 93.1621 50.7993 +92.8711 95.4677 52.0565 +92.3686 96.6468 52.6994 +92.4222 98.4343 53.6741 +92.3842 100.162 54.6163 +91.9454 101.484 55.3373 +91.8567 103.223 56.2851 +92.3491 105.664 57.6165 +91.9573 107.139 58.4208 +92.3165 109.533 59.7263 +92.3998 111.656 60.8839 +92.6221 114.004 62.164 +91.7722 115.069 62.7447 +92.041 117.577 64.1124 +91.5399 119.151 64.9703 +91.7319 121.678 66.3486 +91.4994 123.702 67.4521 +91.717 126.397 68.9218 +91.4111 128.435 70.0329 +91.1237 130.553 71.1876 +91.2647 133.353 72.7148 +91.4584 136.317 74.331 +90.9 138.229 75.3732 +93.5605 145.187 79.1672 +93.0834 147.433 80.3922 +93.38 150.996 82.3349 +93.0962 153.721 83.8209 +92.8115 156.531 85.3529 +92.8411 159.974 87.2305 +92.8538 163.508 89.1574 +92.7155 166.896 91.0048 +92.6029 170.453 92.9441 +92.3844 173.941 94.8461 +92.4766 178.157 97.145 +91.8818 181.185 98.7962 +90.2768 182.284 99.3955 +88.7741 183.616 100.122 +87.7876 186.073 101.462 +91.8535 199.6 108.838 +91.9552 204.953 111.756 +89.4128 204.502 111.51 +86.9565 204.193 111.342 +84.8552 204.686 111.611 +82.25 203.921 111.194 +80.0247 204.045 111.261 +77.8666 204.318 111.41 +75.4929 203.988 111.23 +73.1016 203.554 110.994 +71.0171 203.938 111.203 +68.7317 203.717 111.082 +66.4837 203.56 110.997 +64.2441 203.386 110.902 +62.2719 204.04 111.259 +60.0662 203.914 111.19 +57.9403 204.026 111.251 +55.5833 203.266 110.837 +53.6508 204.027 111.251 +51.2962 203.144 110.77 +49.3374 203.787 111.121 +47.1705 203.555 110.994 +45.1454 203.909 111.187 +42.8982 203.211 110.807 +40.8768 203.532 110.982 +38.7862 203.491 110.959 +36.7465 203.694 111.07 +34.5874 203.186 110.793 +32.5804 203.531 110.981 +30.4518 203.076 110.733 +28.5052 203.825 111.141 +26.365 203.163 110.78 +24.3656 203.531 110.981 +22.3416 203.711 111.079 +20.2288 202.999 110.691 +18.1868 202.883 110.628 +16.1975 203.365 110.891 +14.1266 202.781 110.572 +12.1105 202.882 110.627 +10.0935 202.967 110.674 +8.07574 203.036 110.711 +6.03902 202.476 110.406 +4.03325 202.866 110.618 +2.01845 203.064 110.727 +1.41258e-14 202.545 110.444 +-2.01234 202.45 110.392 +-4.02802 202.603 110.475 +-6.03379 202.301 110.31 +-8.08272 203.212 110.807 +-10.1066 203.229 110.817 +-12.1053 202.794 110.579 +-14.0961 202.343 110.333 +-16.1556 202.84 110.605 +-18.1947 202.971 110.676 +-20.1766 202.474 110.405 +-22.1979 202.4 110.364 +-24.2402 202.484 110.41 +-26.2292 202.116 110.21 +-28.3102 202.43 110.381 +-30.3473 202.38 110.353 +-32.3856 202.313 110.317 +-34.3509 201.797 110.035 +-36.371 201.613 109.935 +-38.4066 201.5 109.874 +-40.5989 202.149 110.227 +-42.6067 201.83 110.054 +-44.6111 201.495 109.871 +-46.8515 202.178 110.244 +-48.8385 201.726 109.997 +-50.8417 201.344 109.789 +-53.021 201.632 109.945 +-55.0231 201.218 109.72 +-57.2629 201.64 109.95 +-59.5153 202.044 110.17 +-61.4695 201.41 109.825 +-63.7096 201.694 109.979 +-65.96 201.957 110.123 +-67.9649 201.445 109.843 +-70.4908 202.427 110.379 +-72.5002 201.879 110.08 +-74.813 202.151 110.229 +-76.8829 201.737 110.003 +-79.1456 201.804 110.04 +-81.4155 201.852 110.066 +-83.7949 202.128 110.216 +-86.0109 201.972 110.131 +-88.3377 202.043 110.17 +-90.6724 202.093 110.197 +-93.0523 202.205 110.258 +-95.3264 202.052 110.175 +-97.9563 202.608 110.478 +-100.166 202.251 110.283 +-102.294 201.718 109.992 +-104.586 201.485 109.865 +-107.218 201.869 110.075 +-109.35 201.279 109.753 +-112.311 202.169 110.238 +-114.316 201.301 109.765 +-117.084 201.747 110.009 +-119.593 201.699 109.982 +-122.016 201.473 109.859 +-124.395 201.148 109.682 +-127.359 201.723 109.995 +-129.901 201.58 109.917 +-132.2 201.033 109.619 +-138.05 205.761 112.197 +-141.069 206.126 112.396 +-143.739 205.935 112.292 +-143.926 202.221 110.267 +-143.943 198.371 108.167 +-143.567 194.094 105.835 +-144.497 191.668 104.513 +-144.328 187.862 102.437 +-143.414 183.203 99.8968 +-143.624 180.084 98.1958 +-147.15 181.121 98.7612 +-150.355 181.691 99.0724 +-681.072 808.089 440.634 +-702.318 818.266 446.183 +-707.99 810.068 441.713 +-712.628 800.807 436.663 +-717.884 792.363 432.059 +-721.579 782.329 426.588 +-727.165 774.467 422.301 +-732.778 766.715 418.073 +-738.682 759.336 414.05 +-737.673 745.033 406.251 +-728.021 722.454 393.939 +-731.226 713 388.784 +-736.934 706.075 385.008 +-740.718 697.384 380.269 +-746.727 690.855 376.708 +-749.953 681.823 371.784 +-756.001 675.425 368.295 +-759.786 667.062 363.735 +-766.174 661.031 360.446 +-770.125 652.94 356.034 +-775.643 646.23 352.375 +-779.623 638.286 348.044 +-785.422 631.873 344.547 +-789.666 624.246 340.388 +-795.691 618.056 337.013 +-799.237 609.978 332.608 +-804.89 603.546 329.101 +-809.249 596.171 325.079 +-816.147 590.674 322.082 +-819.811 582.852 317.817 +-826.356 577.095 314.678 +-830.563 569.715 310.653 +-836.432 563.49 307.259 +-841.522 556.743 303.58 +-847.989 550.902 300.395 +-867.994 553.673 301.906 +-891.701 558.421 304.495 +-898.118 552.122 301.06 +-903.077 544.922 297.134 +-908.459 537.983 293.35 +-912.104 530.033 289.016 +-913.732 520.968 284.073 +-910.778 509.419 277.775 +-909.192 498.792 271.981 +-909.255 489.193 266.746 +-914.083 482.208 262.938 +-922.029 476.835 260.008 +-384.429 194.863 106.255 +-383.653 190.57 103.914 +-382.209 186.006 101.425 +-381.758 181.982 99.2309 +-381.963 178.308 97.2274 +-378.488 172.983 94.3238 +-382.776 171.232 93.3693 +-382.584 167.471 91.3184 +-382.796 163.917 89.3804 +-383.508 160.6 87.5718 +-136.399 55.8418 30.4493 +-383.185 153.316 83.5997 +-382.593 149.553 81.5479 +-381.68 145.705 79.4501 +-381.917 142.33 77.6094 +-1082.32 393.602 214.623 +-3037.92 1077.61 587.597 +-381.378 131.895 71.9196 +-380.434 128.213 69.9118 +-381.694 125.294 68.32 +-380.669 121.643 66.3294 +-382.241 118.84 64.8008 +-1140.86 344.89 188.061 +-382.08 112.24 61.2022 +-380.993 108.684 59.2633 +-382.917 105.999 57.7989 +-386.347 103.703 56.547 +-1245.51 323.911 176.622 +-382.871 96.3878 52.5582 +-380.923 92.7469 50.5729 +-379.995 89.3931 48.7441 +-379.998 86.2809 47.0471 +-379.58 83.09 45.3072 +-379.808 80.0558 43.6527 +-379.907 77.0045 41.9889 +-383.099 74.566 40.6592 +-381.478 71.1899 38.8184 +-381.289 68.107 37.1373 +-381.951 65.1831 35.543 +-381.995 62.1583 33.8936 +-380.234 58.8634 32.097 +-381.002 55.9769 30.523 +-382.235 53.1518 28.9826 +-380.573 49.9358 27.229 +-380.758 46.9815 25.618 +-379.426 43.8562 23.9139 +-380.542 41.0224 22.3687 +-380.041 38.0159 20.7292 +-381.001 35.1578 19.1708 +-381.635 32.2627 17.5922 +-380.447 29.2227 15.9345 +-380.723 26.3068 14.3445 +-380.371 23.3521 12.7334 +-379.291 20.3673 11.1058 +-377.682 17.3779 9.47581 +-379.439 14.5448 7.93098 +-378.969 11.6188 6.33551 +-378.97 8.7126 4.7508 +-145.878 2.23556 1.219 +-144.694 1.10863 0.604511 +97 0 0 +97.0963 0.747566 0.398925 +96.9852 1.49353 0.796996 +96.9668 2.24016 1.19542 +97.0408 2.98969 1.5954 +97.0076 3.73669 1.99402 +96.8671 4.47879 2.39002 +97.8172 5.27825 2.81664 +96.8635 5.97574 3.18885 +96.8007 6.72127 3.58668 +97.7267 7.54316 4.02527 +97.5488 8.28681 4.4221 +96.5681 8.95451 4.77841 +97.37 9.78752 5.22293 +97.3688 10.5476 5.62852 +97.2607 11.2968 6.02832 +97.0463 12.0329 6.42115 +96.9236 12.7796 6.81958 +96.6947 13.5115 7.21015 +97.445 14.3865 7.67708 +96.2157 14.9676 7.9872 +96.9489 15.8525 8.4594 +96.7884 16.5984 8.85741 +97.5025 17.5012 9.33917 +96.4454 18.0861 9.65131 +96.2628 18.8279 10.0472 +96.9498 19.7469 10.5376 +96.7508 20.4926 10.9355 +96.5444 21.2367 11.3326 +97.202 22.178 11.8349 +96.979 22.9255 12.2338 +96.7485 23.6712 12.6317 +97.3758 24.6341 13.1455 +97.1284 25.3829 13.5451 +96.8737 26.1297 13.9436 +96.6115 26.8745 14.3411 +97.0078 27.8081 14.8393 +96.9187 28.6098 15.2671 +97.2939 29.556 15.772 +98.0347 30.6279 16.344 +97.6341 31.3513 16.7301 +97.2266 32.0709 17.114 +97.7459 33.1027 17.6647 +97.4147 33.8541 18.0656 +97.0761 34.6027 18.4651 +97.5617 35.6527 19.0254 +97.2053 36.4024 19.4255 +97.7586 37.5013 20.0119 +97.4753 38.2883 20.4319 +97.0929 39.0373 20.8316 +96.8843 39.8579 21.2695 +97.2987 40.9441 21.8491 +97.5192 41.9624 22.3925 +97.1004 42.7116 22.7923 +97.4761 43.818 23.3827 +97.039 44.5668 23.7823 +97.2125 45.6021 24.3347 +96.7578 46.3488 24.7332 +96.9953 47.4342 25.3124 +97.3058 48.5702 25.9186 +96.8216 49.3174 26.3173 +97.0194 50.4192 26.9053 +96.517 51.1642 27.3029 +96.7747 52.3202 27.9197 +96.0838 52.9698 28.2664 +96.99 54.5134 29.0901 +96.531 55.3061 29.5131 +96.564 56.388 30.0904 +96.8316 57.6226 30.7492 +96.2579 58.3659 31.1459 +96.3323 59.5096 31.7562 +96.3913 60.6588 32.3695 +96.5157 61.8654 33.0133 +96.5432 63.0259 33.6326 +96.4752 64.1385 34.2263 +96.4718 65.3084 34.8507 +96.6101 66.5918 35.5355 +95.8695 67.2781 35.9018 +96.5215 68.9576 36.798 +95.8358 69.698 37.1931 +95.8322 70.9436 37.8578 +95.8112 72.1944 38.5252 +96.4519 73.9711 39.4733 +95.6416 74.6525 39.8369 +96.1629 76.3895 40.7639 +95.9935 77.6037 41.4118 +95.8805 78.8814 42.0936 +95.822 80.2238 42.81 +96.3196 82.0617 43.7907 +95.5756 82.8619 44.2177 +95.9544 84.6552 45.1747 +95.1835 85.4536 45.6008 +95.585 87.3255 46.5997 +94.0981 87.4821 46.6832 +93.0928 88.0742 46.9992 +92.8261 89.373 47.6923 +92.4738 90.6091 48.3519 +92.7005 92.4406 49.3292 +92.1763 93.5505 49.9215 +92.2866 95.3299 50.8711 +92.3043 97.0503 51.7891 +92.4222 98.9145 52.7839 +92.3842 100.651 53.7104 +92.3812 102.463 54.6775 +92.4108 104.352 55.6854 +91.8621 105.62 56.362 +92.3184 108.085 57.6774 +92.0786 109.784 58.5841 +92.2823 112.059 59.7983 +92.506 114.417 61.0567 +92.1164 116.064 61.9357 +91.5312 117.496 62.6998 +91.9313 120.245 64.1663 +91.18 121.536 64.8555 +91.4994 124.305 66.3334 +91.3409 126.493 67.5009 +91.4111 129.062 68.8714 +91.0192 131.04 69.9269 +91.2647 134.004 71.5088 +91.3569 136.83 73.0167 +91.15 139.285 74.327 +93.5605 145.895 77.8541 +93.0834 148.153 79.0589 +93.3323 151.655 80.9279 +93.1432 154.549 82.4721 +93.227 157.998 84.313 +92.8411 160.754 85.7837 +92.8538 164.306 87.6787 +92.7593 167.789 89.5378 +92.6029 171.284 91.4026 +92.7647 175.509 93.6573 +92.2278 178.544 95.2768 +91.8818 182.069 97.1576 +90.3964 183.417 97.877 +88.735 184.43 98.4179 +87.8641 187.144 99.8661 +91.8535 200.574 107.032 +91.8086 205.625 109.728 +89.377 205.417 109.617 +86.8865 205.023 109.407 +84.479 204.772 109.273 +81.983 204.251 108.995 +80.0572 205.124 109.461 +77.581 204.561 109.16 +75.462 204.899 109.341 +73.1317 204.631 109.198 +70.754 204.174 108.954 +68.5045 204.034 108.879 +66.4837 204.553 109.156 +64.351 204.718 109.244 +62.0648 204.353 109.049 +59.8408 204.14 108.935 +57.7709 204.422 109.086 +55.5133 204.001 108.862 +53.4484 204.248 108.993 +51.3178 204.222 108.979 +49.1919 204.178 108.956 +46.9711 203.684 108.692 +44.9737 204.125 108.927 +42.8982 204.202 108.969 +40.8247 204.264 109.002 +38.7697 204.396 109.072 +36.7465 204.688 109.228 +34.6022 204.265 109.002 +32.5804 204.523 109.14 +30.4257 203.892 108.803 +28.3956 204.03 108.877 +26.2518 203.277 108.475 +24.2715 203.735 108.719 +22.2554 203.914 108.815 +20.1853 203.55 108.621 +18.0848 202.73 108.183 +16.1416 203.654 108.676 +14.1205 203.683 108.692 +12.0634 203.078 108.369 +10.0543 203.164 108.415 +8.03735 203.057 108.358 +6.0207 202.846 108.245 +4.03151 203.767 108.737 +2.00361 202.555 108.09 +1.41136e-14 203.357 108.518 +-2.01408 203.614 108.655 +-4.02802 203.591 108.643 +-6.03902 203.464 108.575 +-8.05131 203.409 108.546 +-10.0674 203.428 108.556 +-12.0477 202.815 108.228 +-14.0961 203.33 108.503 +-16.0998 203.126 108.394 +-18.1162 203.082 108.371 +-20.2027 203.726 108.715 +-22.2266 203.65 108.674 +-24.2088 203.208 108.438 +-26.1952 202.839 108.241 +-28.2249 202.805 108.223 +-30.256 202.755 108.196 +-32.2882 202.688 108.161 +-34.3657 202.868 108.257 +-36.371 202.597 108.112 +-38.4396 202.657 108.144 +-40.5816 203.048 108.353 +-42.4609 202.12 107.858 +-44.5921 202.392 108.003 +-46.5923 202.041 107.815 +-48.6721 202.02 107.804 +-50.885 202.499 108.06 +-53.0435 202.701 108.168 +-55.0464 202.285 107.946 +-57.2387 202.538 108.081 +-59.2399 202.09 107.842 +-61.4695 202.393 108.003 +-63.4691 201.912 107.747 +-65.7119 202.179 107.889 +-67.9081 202.258 107.931 +-70.1984 202.571 108.098 +-72.3197 202.359 107.985 +-74.5967 202.55 108.087 +-76.9146 202.805 108.223 +-79.1131 202.705 108.17 +-81.0149 201.839 107.708 +-83.7949 203.115 108.388 +-85.7308 202.296 107.951 +-88.0868 202.452 108.035 +-90.3426 202.341 107.975 +-92.7526 202.538 108.08 +-95.3264 203.038 108.347 +-97.6437 202.946 108.298 +-99.8866 202.673 108.153 +-102.01 202.137 107.867 +-104.461 202.227 107.915 +-107.261 202.935 108.292 +-109.393 202.34 107.975 +-111.522 201.728 107.648 +-114.227 202.125 107.86 +-116.676 202.024 107.806 +-119.547 202.605 108.116 +-122.016 202.455 108.037 +-124.348 202.051 107.821 +-126.778 201.781 107.677 +-129.409 201.795 107.684 +-131.95 201.631 107.597 +-137.949 206.614 110.256 +-140.554 206.375 110.128 +-143.269 206.263 110.069 +-144.085 203.431 108.557 +-143.943 199.339 106.373 +-143.839 195.411 104.277 +-144.276 192.31 102.623 +-144.048 188.412 100.543 +-143.527 184.242 98.3176 +-143.681 181.035 96.6058 +-149.125 184.446 98.4264 +-151.472 183.934 98.1529 +-687.913 820.187 437.678 +-703.883 824.09 439.76 +-710.546 816.959 435.955 +-713.983 806.244 430.237 +-720 798.576 426.146 +-723.593 788.339 420.683 +-729.264 780.493 416.496 +-736.506 774.375 413.231 +-738.942 763.308 407.326 +-733.933 744.873 397.488 +-728.948 726.903 387.899 +-733.033 718.248 383.28 +-738.555 711.081 379.456 +-742.833 702.786 375.029 +-748.654 696.017 371.417 +-752.523 687.498 366.871 +-758.384 680.86 363.329 +-762.261 672.5 358.867 +-767.743 665.617 355.194 +-772.067 657.781 351.013 +-777.674 651.083 347.438 +-781.598 643.025 343.139 +-787.412 636.565 339.691 +-791.969 629.121 335.719 +-797.863 622.766 332.328 +-801.577 614.747 328.049 +-807.627 608.553 324.743 +-811.931 601.065 320.747 +-818.154 595.015 317.519 +-822.609 587.694 313.612 +-828.391 581.339 310.221 +-832.77 574.015 306.313 +-839.13 568.065 303.138 +-842.481 560.097 298.885 +-857.072 559.519 298.577 +-885.388 567.523 302.848 +-892.759 561.812 299.801 +-899.183 555.474 296.418 +-904.396 548.38 292.633 +-908.874 540.853 288.617 +-914.189 533.836 284.872 +-912.977 523.077 279.13 +-909.935 511.43 272.916 +-908.684 500.945 267.32 +-910.62 492.317 262.716 +-916.483 485.833 259.256 +-924.873 480.639 256.484 +-384.255 195.726 104.445 +-382.434 190.892 101.866 +-382.121 186.871 99.7201 +-383.34 183.628 97.9895 +-379.226 177.894 94.9298 +-381.415 175.171 93.4769 +-383.4 172.348 91.9704 +-381.511 167.815 89.5515 +-382.347 164.523 87.7949 +-382.606 161.004 85.9169 +-137.215 56.4498 30.1234 +-384.641 154.649 82.5258 +-382.136 150.103 80.0998 +-381.956 146.522 78.1889 +-381.549 142.886 76.2487 +-1106.16 404.233 215.711 +-1115.22 397.519 212.129 +-380.913 132.377 70.6406 +-380.061 128.712 68.685 +-380.383 125.472 66.9557 +-381.703 122.569 65.4068 +-381.77 119.272 63.6475 +-386.717 117.477 62.6894 +-381.89 112.732 60.1575 +-383.561 109.951 58.6735 +-382.917 106.516 56.8403 +-385.773 104.054 55.5268 +-1255.29 328.047 175.056 +-382.102 96.6639 51.5829 +-381.501 93.3414 49.8099 +-379.705 89.7612 47.8994 +-380.579 86.8343 46.3375 +-380.55 83.7089 44.6697 +-380.294 80.5493 42.9837 +-379.907 77.3802 41.2925 +-381.927 74.7006 39.8626 +-382.26 71.684 38.2528 +-382.465 68.6503 36.634 +-382.246 65.5516 34.9804 +-381.11 62.3168 33.2542 +-382.007 59.4263 31.7117 +-381.693 56.3519 30.0712 +-381.05 53.2455 28.4135 +-380.87 50.2185 26.7982 +-382.541 47.4317 25.3111 +-381.012 44.2544 23.6156 +-380.939 41.2656 22.0206 +-381.631 38.3612 20.4707 +-381.399 35.3662 18.8725 +-380.839 32.3524 17.2643 +-380.148 29.3422 15.6579 +-379.427 26.3451 14.0586 +-379.473 23.4107 12.4927 +-379.291 20.4666 10.9217 +-378.98 17.5227 9.35066 +-379.738 14.6273 7.80561 +-379.569 11.694 6.24027 +-379.87 8.77589 4.68309 +-146.578 2.25724 1.20453 +-145.894 1.12327 0.599414 +97 0 0 +97.0963 0.751135 0.392165 +96.9852 1.50066 0.78349 +97.0667 2.25317 1.17637 +97.0408 3.00397 1.56836 +97.1075 3.75839 1.96224 +96.8671 4.50017 2.34952 +96.9189 5.25474 2.74348 +96.8635 6.00427 3.13481 +97.7976 6.8229 3.56221 +97.6271 7.57144 3.95302 +97.5488 8.32636 4.34717 +97.4631 9.08067 4.74098 +97.4694 9.84426 5.13965 +97.2695 10.5871 5.52749 +97.2607 11.3507 5.92616 +97.0463 12.0904 6.31233 +96.9236 12.8406 6.70401 +96.6947 13.576 7.08796 +96.5574 14.3235 7.47826 +97.102 15.1776 7.92418 +96.7523 15.8959 8.2992 +96.5921 16.6437 8.68963 +96.6206 17.4257 9.09788 +96.4454 18.1724 9.48775 +97.1415 19.0904 9.96704 +96.9498 19.8412 10.359 +96.7508 20.5904 10.7502 +96.5444 21.338 11.1405 +96.5243 22.1285 11.5532 +96.979 23.0349 12.0264 +96.7485 23.7842 12.4176 +97.3758 24.7517 12.9228 +96.2655 25.2774 13.1972 +96.6824 26.2025 13.6803 +96.6115 27.0027 14.098 +97.0078 27.9408 14.5878 +97.9618 29.0559 15.17 +97.2939 29.6971 15.5048 +96.9035 30.419 15.8816 +97.6341 31.501 16.4465 +97.2266 32.224 16.824 +97.7459 33.2608 17.3653 +97.4147 34.0157 17.7595 +97.1689 34.8012 18.1696 +97.6541 35.8567 18.7207 +97.2974 36.6109 19.1144 +97.025 37.3975 19.5251 +97.4753 38.4711 20.0856 +97.2749 39.2972 20.5169 +97.5187 40.3104 21.0459 +97.2987 41.1396 21.4788 +96.89 41.8907 21.871 +97.1004 42.9155 22.406 +97.4761 44.0272 22.9864 +97.039 44.7795 23.3792 +97.2125 45.8198 23.9223 +96.6699 46.5278 24.292 +97.0828 47.7036 24.9059 +96.5224 48.4091 25.2742 +96.8216 49.5528 25.8714 +97.0194 50.6598 26.4493 +96.517 51.4084 26.8402 +96.7747 52.57 27.4466 +96.8471 53.6454 28.0081 +96.99 54.7736 28.5971 +96.4471 55.5218 28.9877 +96.6474 56.7061 29.606 +96.0026 57.4019 29.9694 +96.2579 58.6445 30.6181 +96.2504 59.7428 31.1915 +96.2285 60.8455 31.7672 +96.273 62.0043 32.3722 +96.3824 63.2213 33.0076 +95.9161 64.0712 33.4513 +96.4718 65.6202 34.2601 +96.4525 66.8006 34.8763 +95.8695 67.5993 35.2933 +96.5215 69.2867 36.1744 +95.8358 70.0307 36.5628 +95.9088 71.3392 37.246 +96.3434 72.942 38.0828 +96.3764 74.266 38.774 +96.3157 75.5374 39.4378 +96.2373 76.8134 40.104 +96.0672 78.0341 40.7413 +95.9536 79.3184 41.4118 +95.822 80.6068 42.0845 +95.7441 81.9607 42.7914 +95.5756 83.2574 43.4684 +95.4594 84.6205 44.18 +95.9545 86.557 45.1911 +95.5155 87.6785 45.7767 +93.4786 87.321 45.59 +93.161 88.5594 46.2366 +92.8261 89.7997 46.8841 +92.5408 91.1072 47.5667 +93.2969 93.4793 48.8052 +92.3075 94.1309 49.1454 +92.1567 95.6503 49.9387 +92.4329 97.6492 50.9823 +92.3586 99.3184 51.8538 +92.4472 101.2 52.8363 +91.8832 102.397 53.4611 +91.8567 104.221 54.4136 +91.8621 106.124 55.4068 +92.0777 108.317 56.5518 +92.257 110.521 57.7028 +92.3411 112.666 58.8224 +92.4479 114.891 59.9841 +92.059 116.546 60.8481 +91.5312 118.057 61.6372 +91.8195 120.671 63.0021 +91.6767 122.781 64.1036 +90.9547 124.155 64.8209 +91.6633 127.546 66.5912 +91.3051 129.528 67.6261 +91.0192 131.665 68.7419 +91.3163 134.72 70.3368 +91.8644 138.247 72.1783 +90.85 139.49 72.8272 +93.5112 146.514 76.4945 +93.0834 148.86 77.7191 +93.3323 152.379 79.5565 +93.0962 155.209 81.0338 +93.1809 158.675 82.8434 +92.8411 161.522 84.33 +92.4968 164.455 85.8614 +92.7593 168.59 88.0205 +92.6029 172.102 89.8537 +92.4266 175.704 91.7346 +92.601 180.122 94.0412 +91.5157 182.209 95.1307 +90.5958 184.698 96.4303 +88.696 185.229 96.7075 +88.5529 189.512 98.9434 +91.891 201.614 105.262 +91.3321 205.533 107.308 +89.0186 205.57 107.327 +86.6063 205.338 107.206 +84.3422 205.416 107.247 +81.983 205.226 107.148 +79.7642 205.349 107.212 +77.232 204.613 106.828 +75.1529 205.034 107.048 +72.8309 204.762 106.906 +70.6662 204.894 106.975 +68.5329 205.093 107.078 +66.2357 204.763 106.906 +64.0838 204.841 106.947 +61.806 204.472 106.754 +59.7907 204.943 107 +57.529 204.537 106.788 +55.2799 204.112 106.566 +53.2909 204.619 106.831 +51.3395 205.283 107.177 +49.1711 205.065 107.064 +46.9711 204.656 106.85 +44.9355 204.924 106.99 +42.8071 204.742 106.895 +40.8247 205.239 107.155 +38.6376 204.673 106.859 +36.59 204.789 106.92 +34.4692 204.45 106.743 +32.4412 204.621 106.832 +30.3343 204.25 106.638 +28.3224 204.477 106.757 +26.2631 204.336 106.683 +24.282 204.795 106.923 +22.2075 204.446 106.74 +20.1766 204.433 106.734 +18.0613 203.433 106.211 +16.0789 203.831 106.419 +14.0167 203.151 106.064 +12.0582 203.959 106.486 +10.0281 203.602 106.3 +8.04433 204.204 106.614 +6.02332 203.903 106.457 +4.02103 204.208 106.616 +2.00361 203.522 106.258 +1.41258e-14 204.505 106.771 +-2.00536 203.699 106.351 +-4.01231 203.765 106.385 +-6.01808 203.726 106.365 +-8.03037 203.849 106.429 +-10.0281 203.602 106.3 +-12.0739 204.225 106.625 +-14.0412 203.504 106.249 +-16.1068 204.184 106.604 +-18.1241 204.14 106.581 +-20.1417 204.081 106.55 +-22.15 203.917 106.464 +-24.2192 204.267 106.647 +-26.2631 204.336 106.683 +-28.2737 204.125 106.573 +-30.1646 203.107 106.042 +-32.2603 203.48 106.236 +-34.2474 203.136 106.056 +-36.371 203.564 106.28 +-38.3075 202.925 105.946 +-40.46 203.406 106.198 +-42.4609 203.085 106.03 +-44.5921 203.358 106.173 +-46.4328 202.31 105.625 +-48.6721 202.984 105.977 +-50.6685 202.6 105.777 +-52.931 203.237 106.109 +-54.953 202.906 105.936 +-57.021 202.731 105.845 +-59.0646 202.454 105.7 +-61.2883 202.76 105.86 +-63.4424 202.791 105.876 +-65.7119 203.144 106.061 +-67.7093 202.629 105.792 +-70.2277 203.622 106.31 +-72.2596 203.156 106.067 +-74.5967 203.517 106.255 +-76.5973 202.932 105.95 +-78.8201 202.918 105.943 +-81.0817 202.97 105.97 +-83.5213 203.417 106.204 +-85.4506 202.597 105.775 +-88.051 203.336 106.161 +-90.3792 203.389 106.189 +-92.6027 203.175 106.077 +-94.7141 202.697 105.827 +-97.3702 203.344 106.165 +-99.6075 203.071 106.023 +-102.01 203.102 106.039 +-104.254 202.789 105.875 +-106.922 203.261 106.122 +-109.135 202.825 105.894 +-111.478 202.611 105.782 +-114.271 203.169 106.074 +-116.312 202.356 105.65 +-118.762 202.235 105.586 +-121.499 202.561 105.756 +-123.918 202.315 105.628 +-126.778 202.744 105.852 +-129.36 202.681 105.819 +-131.5 201.903 105.413 +-137.086 206.301 107.709 +-140.09 206.677 107.905 +-142.747 206.492 107.809 +-144.297 204.703 106.875 +-143.405 199.542 104.18 +-144.057 196.641 102.665 +-144.387 193.376 100.961 +-143.489 188.576 98.4551 +-143.244 184.757 96.4608 +-144.771 183.278 95.6888 +-150.46 186.986 97.6248 +-163.11 199.011 103.903 +-701.772 840.705 438.929 +-706.471 831.067 433.897 +-712.799 823.461 429.926 +-715.891 812.258 424.077 +-722.677 805.371 420.481 +-725.103 793.757 414.417 +-733.144 788.39 411.616 +-737.984 779.634 407.044 +-737.513 765.469 399.649 +-728.882 743.276 388.062 +-731.069 732.498 382.435 +-734.839 723.455 377.713 +-740.717 716.567 374.117 +-744.265 707.503 369.385 +-750.857 701.397 366.197 +-754.468 692.565 361.586 +-760.627 686.133 358.228 +-764.029 677.277 353.604 +-770.025 670.782 350.213 +-773.866 662.459 345.868 +-780.068 656.204 342.602 +-783.792 647.908 338.271 +-789.771 641.52 334.935 +-793.976 633.726 330.866 +-800.184 627.56 327.647 +-804.294 619.776 323.583 +-810.365 613.531 320.322 +-813.999 605.472 316.115 +-820.931 599.885 313.198 +-824.008 591.503 308.822 +-830.895 585.879 305.886 +-835.055 578.337 301.948 +-841.193 572.18 298.733 +-845.356 564.69 294.823 +-865.754 567.884 296.49 +-884.903 569.92 297.553 +-895.608 566.295 295.661 +-900.903 559.193 291.952 +-909.176 553.909 289.194 +-912.19 545.418 284.761 +-914.272 536.433 280.07 +-912.138 525.091 274.148 +-908.586 513.109 267.893 +-907.327 502.585 262.398 +-913.945 496.473 259.207 +-919.055 489.522 255.578 +-927.888 484.508 252.96 +-384.862 196.97 102.837 +-382.086 191.629 100.049 +-382.821 188.107 98.2098 +-383.34 184.504 96.3289 +-378.255 178.286 93.0823 +-378.488 174.656 91.1875 +-382.242 172.648 90.1388 +-383.837 169.644 88.5707 +-383.515 165.814 86.5709 +-383.418 162.116 84.6401 +-136.49 56.4196 29.4565 +-142.227 57.457 29.9981 +-383.415 151.324 79.0058 +-383.515 147.823 77.1776 +-382.194 143.811 75.0834 +-1113.27 408.775 213.42 +-1115.96 399.681 208.672 +-382.309 133.496 69.6976 +-381.181 129.708 67.72 +-381.226 126.35 65.9669 +-381.985 123.245 64.3456 +-382.901 120.196 62.754 +-381.8 116.537 60.8435 +-381.226 113.073 59.0348 +-382.99 110.311 57.5932 +-383.108 107.078 55.9053 +-383.765 104.007 54.3016 +-383.911 100.808 52.6313 +-381.14 96.8807 50.581 +-381.501 93.7869 48.9658 +-380.092 90.281 47.1354 +-380.095 87.1378 45.4943 +-379.677 83.9154 43.8119 +-380.002 80.8716 42.2228 +-381.174 78.0088 40.7281 +-382.22 75.1147 39.2171 +-380.793 71.7497 37.4602 +-381.583 68.819 35.9301 +-381.853 65.7969 34.3523 +-380.421 62.5012 32.6316 +-380.825 59.5253 31.0779 +-381.693 56.6209 29.5616 +-380.951 53.4859 27.9248 +-380.672 50.432 26.3304 +-379.372 47.2633 24.676 +-379.823 44.3268 23.1429 +-380.542 41.4193 21.6249 +-379.942 38.3737 20.0348 +-379.211 35.3312 18.4463 +-381.934 32.6003 17.0205 +-379.152 29.405 15.3523 +-380.424 26.5405 13.8567 +-379.473 23.5224 12.281 +-380.389 20.6239 10.7677 +-379.18 17.6156 9.19706 +-379.439 14.6855 7.66727 +-381.168 11.7993 6.16039 +-379.57 8.81082 4.6001 +-145.078 2.24481 1.172 +-144.694 1.11935 0.58441 +97 0 0 +97.0963 0.754642 0.385373 +97.0852 1.50923 0.770716 +96.9668 2.26136 1.15481 +97.8404 3.04286 1.55389 +97.0076 3.77206 1.92627 +96.9669 4.52584 2.31121 +96.9189 5.27927 2.69596 +96.8635 6.03231 3.08051 +96.9004 6.79187 3.4684 +96.8301 7.5447 3.85285 +96.7525 8.29696 4.237 +97.5626 9.13233 4.6636 +97.4694 9.89023 5.05063 +97.3688 10.6474 5.4373 +97.2607 11.4037 5.82352 +97.0463 12.1468 6.203 +97.0225 12.9137 6.59463 +96.6947 13.6394 6.9652 +96.3601 14.361 7.33372 +96.2157 15.1093 7.71585 +96.9489 16.0026 8.17201 +96.7884 16.7555 8.5565 +96.6206 17.507 8.9403 +96.4454 18.2573 9.32342 +96.2628 19.0061 9.70582 +96.9498 19.9338 10.1796 +96.7508 20.6865 10.564 +96.5444 21.4377 10.9476 +97.202 22.3879 11.4328 +96.979 23.1424 11.8181 +96.7485 23.8953 12.2026 +96.5107 24.6463 12.5861 +97.1284 25.6231 13.0849 +96.6824 26.3249 13.4433 +97.2791 27.3163 13.9496 +97.198 28.1263 14.3632 +96.729 28.8242 14.7196 +97.2939 29.8358 15.2362 +96.9978 30.5908 15.6218 +97.5401 31.6176 16.1461 +97.2266 32.3744 16.5326 +96.999 33.1607 16.9342 +97.4147 34.1745 17.4519 +97.9106 35.2306 17.9912 +96.7302 35.6834 18.2224 +97.2974 36.7818 18.7833 +97.025 37.5721 19.1869 +97.4753 38.6507 19.7377 +98.0938 39.813 20.3313 +97.5187 40.4986 20.6814 +98.111 41.6768 21.283 +97.5192 42.3596 21.6317 +97.1004 43.1159 22.018 +97.4761 44.2328 22.5883 +97.039 44.9886 22.9743 +97.1242 45.992 23.4867 +96.7578 46.7875 23.893 +96.9953 47.8832 24.4524 +96.6095 48.679 24.8589 +96.8216 49.7842 25.4233 +97.1056 50.9416 26.0143 +97.2885 52.0613 26.5861 +96.6041 52.7224 26.9237 +96.8471 53.8959 27.523 +96.231 54.5987 27.8819 +96.4471 55.781 28.4856 +96.6474 56.9709 29.0933 +96.0855 57.7199 29.4757 +96.2579 58.9183 30.0878 +96.2504 60.0218 30.6513 +96.3913 61.233 31.2698 +96.4348 62.3986 31.865 +96.5432 63.6224 32.49 +95.7564 64.2631 32.8172 +96.4718 65.9266 33.6667 +96.5313 67.1673 34.3003 +95.8695 67.9149 34.6821 +95.8221 69.1058 35.2902 +96.4531 70.811 36.161 +95.9088 71.6723 36.6009 +95.7351 72.8199 37.1869 +96.4519 74.6712 38.1323 +96.2408 75.8312 38.7246 +96.2373 77.1721 39.4094 +96.0672 78.3985 40.0357 +95.8805 79.628 40.6636 +95.7494 80.9219 41.3243 +95.8161 82.4053 42.0819 +95.5756 83.6462 42.7155 +96.0958 85.5824 43.7043 +95.4638 86.5165 44.1813 +94.8903 87.5114 44.6894 +93.4786 87.7287 44.8003 +93.161 88.9729 45.4357 +92.8261 90.219 46.072 +93.143 92.1284 47.0471 +92.8331 93.4492 47.7216 +92.2419 94.5027 48.2596 +92.5463 96.503 49.2811 +92.8828 98.5825 50.3431 +92.4222 99.8507 50.9907 +92.3842 101.603 51.8857 +91.9454 102.945 52.5707 +91.9183 104.778 53.5071 +91.8621 106.619 54.4472 +91.837 108.538 55.4273 +92.1975 110.966 56.667 +92.4586 113.335 57.8768 +92.3898 115.355 58.9083 +92.0017 117.017 59.7569 +91.9844 119.195 60.8694 +91.8195 121.235 61.9109 +91.3456 122.909 62.7659 +91.4994 125.482 64.0798 +91.9857 128.592 65.668 +91.3051 130.133 66.4548 +91.1237 132.431 67.6286 +90.9042 134.738 68.8065 +91.8644 138.893 70.9282 +91.4 140.989 71.9988 +93.5112 147.198 75.1696 +93.0834 149.555 76.373 +93.3323 153.09 78.1786 +93.0962 155.933 79.6303 +93.227 159.494 81.4486 +92.8865 162.355 82.9098 +92.8984 165.94 84.7404 +92.7593 169.378 86.4959 +92.646 172.985 88.3383 +92.4266 176.525 90.1457 +92.6425 181.044 92.4538 +91.5157 183.06 93.483 +90.0774 184.499 94.218 +88.5397 185.765 94.8647 +90.0837 193.687 98.9101 +91.891 202.555 103.439 +91.1122 205.996 105.196 +88.5886 205.532 104.959 +86.2561 205.462 104.923 +84.0343 205.622 105.005 +81.7827 205.68 105.034 +79.5037 205.635 105.011 +77.1368 205.315 104.848 +74.8748 205.229 104.804 +72.5904 205.039 104.707 +70.4616 205.254 104.817 +68.1637 204.941 104.657 +65.9876 204.949 104.661 +63.9501 205.368 104.875 +61.8319 205.514 104.949 +59.5153 204.952 104.662 +57.4565 205.233 104.806 +55.3266 205.239 104.809 +53.1559 205.054 104.715 +51.188 205.633 105.01 +48.984 205.239 104.809 +46.8714 205.175 104.777 +44.802 205.269 104.825 +42.6249 204.822 104.596 +40.6337 205.233 104.806 +38.4891 204.838 104.605 +36.4805 205.13 104.753 +34.3361 204.612 104.489 +32.316 204.783 104.576 +30.3473 205.292 104.836 +28.3102 205.343 104.862 +26.1839 204.67 104.519 +24.2088 205.131 104.754 +22.2075 205.4 104.892 +20.0545 204.146 104.251 +18.0299 204.028 104.191 +16.0858 204.87 104.621 +14.0045 203.921 104.136 +12.0216 204.289 104.324 +9.98448 203.663 104.004 +8.02339 204.623 104.495 +6.00499 204.232 104.295 +4.00882 204.538 104.451 +1.99663 203.76 104.054 +1.40769e-14 204.748 104.558 +-2.00623 204.74 104.554 +-4.00882 204.538 104.451 +-5.99452 203.877 104.113 +-7.99547 203.91 104.131 +-9.98448 203.663 104.004 +-12.032 204.467 104.415 +-13.9923 203.743 104.045 +-16.044 204.338 104.349 +-17.9828 203.495 103.918 +-20.0633 204.235 104.296 +-22.0637 204.071 104.213 +-24.1461 204.601 104.483 +-26.0594 203.697 104.022 +-28.164 204.282 104.32 +-30.1646 204.056 104.205 +-32.1351 203.637 103.991 +-34.1144 203.291 103.815 +-36.2615 203.898 104.124 +-38.1425 202.994 103.663 +-40.269 203.391 103.866 +-42.2786 203.158 103.746 +-44.4394 203.609 103.977 +-46.353 202.906 103.618 +-48.485 203.148 103.741 +-50.6036 203.285 103.811 +-52.661 203.145 103.74 +-54.6729 202.814 103.571 +-57.0694 203.851 104.1 +-58.9144 202.882 103.605 +-61.3142 203.793 104.071 +-63.2019 202.966 103.648 +-65.4639 203.323 103.831 +-67.5104 202.976 103.654 +-69.7891 203.296 103.817 +-71.9589 203.255 103.796 +-74.2877 203.62 103.982 +-76.2483 202.95 103.64 +-78.4945 203.024 103.678 +-80.8146 203.246 103.791 +-83.2135 203.614 103.979 +-85.4856 203.627 103.986 +-87.836 203.787 104.068 +-89.8295 203.096 103.715 +-92.378 203.629 103.987 +-94.3315 202.82 103.574 +-96.9795 203.473 103.907 +-99.2885 203.365 103.852 +-101.928 203.887 104.119 +-104.005 203.25 103.793 +-106.5 203.403 103.872 +-108.833 203.21 103.773 +-111.522 203.637 103.991 +-113.602 202.922 103.626 +-116.358 203.381 103.86 +-118.9 203.416 103.878 +-121.546 203.585 103.965 +-123.775 203.024 103.678 +-126.39 203.067 103.7 +-128.818 202.775 103.551 +-131.5 202.846 103.587 +-135.614 205.039 104.707 +-140.142 207.718 106.075 +-142.694 207.38 105.903 +-144.191 205.508 104.947 +-143.405 200.474 102.376 +-144.166 197.708 100.964 +-143.724 193.387 98.7569 +-143.489 189.457 96.7498 +-144.377 187.087 95.5396 +-147.925 188.146 96.0804 +-154.99 193.515 98.8219 +-682.36 836.435 427.142 +-705.46 849.069 433.593 +-709.119 838.078 427.98 +-714.564 829.355 423.526 +-718.969 819.559 418.524 +-725.416 812.198 414.764 +-727.62 800.231 408.653 +-737.66 796.951 406.978 +-740.17 785.593 401.178 +-731.473 762.745 389.51 +-728.619 746.478 381.203 +-734.779 739.654 377.718 +-737.85 729.812 372.692 +-744.365 723.458 369.448 +-747.402 713.803 364.517 +-753.748 707.386 361.24 +-756.552 697.721 356.304 +-763.921 692.323 353.548 +-766.433 682.581 348.573 +-773.092 676.599 345.518 +-776.599 667.904 341.078 +-783.114 661.843 337.983 +-786.132 652.877 333.404 +-793.163 647.284 330.548 +-796.428 638.651 326.14 +-803.629 633.204 323.358 +-807.011 624.773 319.052 +-813.558 618.824 316.014 +-817.446 610.875 311.955 +-824.095 605.009 308.959 +-826.806 596.283 304.503 +-834.965 591.498 302.06 +-838.049 583.122 297.782 +-844.128 576.857 294.583 +-848.311 569.311 290.729 +-873.551 575.675 293.979 +-889.029 575.25 293.762 +-897.969 570.439 291.306 +-905.245 564.511 288.278 +-910.165 557.101 284.494 +-913.019 548.463 280.083 +-913.689 538.593 275.043 +-911.132 526.961 269.103 +-908.164 515.266 263.13 +-908.26 505.451 258.118 +-917.185 500.56 255.621 +-922.055 493.412 251.97 +-930.818 488.307 249.364 +-384.429 197.667 100.943 +-383.218 193.093 98.6068 +-382.209 188.683 96.3546 +-383.428 185.407 94.6819 +-378.431 179.202 91.5128 +-378.931 175.678 89.7132 +-382.955 173.777 88.7426 +-382.137 169.681 86.651 +-381.808 165.846 84.6927 +-382.696 162.566 83.0176 +-136.852 56.8336 29.0232 +-136.585 55.4355 28.3092 +-383.506 152.067 77.656 +-382.781 148.229 75.6958 +-383.114 144.83 73.9603 +-382.948 141.268 72.1411 +-1116.79 401.849 205.212 +-382.216 134.087 68.4741 +-381.461 130.409 66.5958 +-380.757 126.784 64.7447 +-381.139 123.546 63.0911 +-380.639 120.044 61.3028 +-381.8 117.081 59.7897 +-381.795 113.771 58.0992 +-383.181 110.882 56.6238 +-381.201 107.042 54.6632 +-384.052 104.57 53.4007 +-381.802 100.722 51.4355 +-380.275 97.1122 49.5922 +-381.79 94.2961 48.1541 +-380.575 90.8183 46.3781 +-381.741 87.9237 44.8999 +-380.841 84.5657 43.1851 +-378.446 80.9166 41.3216 +-379.712 78.0725 39.8692 +-382.22 75.4655 38.5379 +-382.26 72.3625 36.9533 +-380.897 69.016 35.2443 +-380.773 65.9171 33.6619 +-381.995 63.0527 32.1991 +-381.613 59.9269 30.6028 +-381.693 56.8853 29.0496 +-380.458 53.666 27.4055 +-380.672 50.6675 25.8743 +-382.045 47.8187 24.4195 +-380.12 44.5686 22.7598 +-380.84 41.6453 21.267 +-380.737 38.6335 19.729 +-381.399 35.701 18.2314 +-381.336 32.7013 16.6995 +-380.845 29.6742 15.1537 +-380.224 26.6504 13.6095 +-380.97 23.7254 12.1158 +-379.89 20.693 10.5673 +-381.077 17.7864 9.08297 +-379.439 14.7541 7.53447 +-378.869 11.7829 6.01717 +-380.869 8.88227 4.5359 +-143.778 2.23509 1.14139 +-145.294 1.12925 0.576671 +97 0 0 +97.0963 0.758088 0.378549 +96.9852 1.51455 0.756287 +97.8665 2.29277 1.14488 +96.9409 3.02865 1.51235 +97.0076 3.78928 1.89217 +96.8671 4.54183 2.26795 +96.9189 5.30338 2.64823 +97.7613 6.11602 3.05401 +96.9004 6.82288 3.40698 +97.7267 7.64933 3.81967 +97.6484 8.41202 4.20052 +97.5626 9.17403 4.58102 +97.37 9.92528 4.95616 +97.2695 10.6851 5.33558 +96.3684 11.3507 5.66791 +97.0463 12.2023 6.09317 +96.9236 12.9594 6.47125 +96.6947 13.7016 6.84187 +97.2478 14.5594 7.27021 +96.2157 15.1783 7.57922 +96.9489 16.0756 8.02731 +96.7884 16.832 8.40499 +96.6206 17.587 8.782 +96.4454 18.3406 9.15834 +96.2628 19.0929 9.53396 +96.0729 19.8438 9.90891 +96.7508 20.781 10.3769 +96.5444 21.5356 10.7537 +96.3307 22.2885 11.1297 +96.979 23.2481 11.6089 +96.7485 24.0044 11.9865 +97.3758 24.9808 12.4741 +97.1284 25.7401 12.8532 +96.8737 26.4974 13.2314 +96.6115 27.2527 13.6086 +97.198 28.2547 14.1089 +96.9187 29.0125 14.4873 +97.2939 29.972 14.9664 +96.9978 30.7304 15.3451 +97.6341 31.7926 15.8755 +97.2266 32.5223 16.2399 +96.9056 33.2801 16.6183 +97.4147 34.3306 17.1428 +97.9106 35.3914 17.6726 +97.5617 36.1545 18.0536 +97.2974 36.9498 18.4507 +96.9332 37.708 18.8294 +97.4753 38.8272 19.3882 +97.0929 39.5868 19.7675 +97.7 40.7591 20.3529 +97.0279 41.4048 20.6754 +97.5192 42.553 21.2487 +97.1004 43.3128 21.6281 +97.4761 44.4348 22.1884 +96.9503 45.1527 22.5469 +96.5062 45.9079 22.924 +96.7578 47.0012 23.4699 +97.0828 48.1452 24.0411 +96.6095 48.9013 24.4187 +96.8216 50.0115 24.9731 +97.0194 51.1288 25.531 +97.2885 52.299 26.1153 +96.7747 53.0566 26.4936 +96.8471 54.142 27.0356 +96.99 55.2806 27.6042 +96.531 56.0845 28.0056 +96.6474 57.231 28.5781 +96.7487 58.3836 29.1537 +96.2579 59.1874 29.555 +96.2504 60.2958 30.1085 +96.3913 61.5126 30.7161 +96.4348 62.6835 31.3008 +95.8197 63.434 31.6756 +96.4752 65.0412 32.4781 +95.8371 65.7919 32.853 +96.5313 67.474 33.6929 +96.4956 68.6707 34.2905 +96.5215 69.9281 34.9184 +95.8358 70.679 35.2933 +95.8322 71.9421 35.924 +95.8112 73.2105 36.5574 +95.6972 74.4253 37.164 +96.3157 76.2366 38.0685 +96.2373 77.5245 38.7116 +96.0672 78.7565 39.3268 +96.0267 80.1137 40.0045 +95.822 81.3529 40.6233 +95.7441 82.7194 41.3057 +95.6469 84.0909 41.9905 +95.6008 85.5303 42.7093 +95.4638 86.9116 43.399 +94.7514 87.7822 43.8338 +92.859 87.5452 43.7154 +93.161 89.3792 44.6312 +92.7585 90.5647 45.2232 +93.2099 92.6153 46.2471 +92.8331 93.8759 46.8766 +92.9636 95.6768 47.7759 +91.8969 96.2628 48.0685 +92.3686 98.4852 49.1782 +92.4858 100.376 50.1222 +92.3842 102.067 50.967 +91.9454 103.415 51.6398 +91.8567 105.186 52.5244 +91.8621 107.106 53.4831 +91.837 109.034 54.4458 +92.257 111.545 55.6994 +92.0472 113.346 56.5991 +92.4479 115.954 57.9014 +92.0017 117.551 58.6988 +92.2676 120.108 59.9756 +91.7636 121.714 60.7776 +91.5112 123.694 61.7662 +92.1529 126.955 63.3946 +91.2872 128.198 64.0151 +91.4111 130.878 65.3536 +91.1237 133.036 66.4311 +91.3163 135.967 67.8947 +91.6107 139.141 69.4797 +92.1 142.718 71.2658 +93.5605 147.948 73.8775 +93.5683 151.021 75.4116 +93.38 153.868 76.8336 +93.5187 157.356 78.575 +93.227 160.222 80.0064 +93.3404 163.894 81.8398 +92.8984 166.698 83.2399 +92.4086 169.508 84.6432 +92.646 173.775 86.7741 +92.4266 177.331 88.5495 +92.4351 181.464 90.6135 +91.231 183.323 91.5418 +89.9179 185.013 92.3857 +88.188 185.873 92.815 +91.844 198.374 99.0574 +91.891 203.48 101.607 +90.7457 206.104 102.917 +88.3735 205.97 102.85 +86.116 206.065 102.898 +83.7607 205.889 102.81 +81.4489 205.776 102.754 +79.2433 205.896 102.814 +76.7877 205.319 102.526 +74.5349 205.231 102.481 +72.2897 205.122 102.427 +70.2569 205.593 102.662 +67.9365 205.19 102.461 +65.9325 205.713 102.722 +63.6295 205.271 102.501 +61.4695 205.241 102.487 +59.2399 204.935 102.333 +57.2387 205.389 102.56 +55.0231 205.046 102.389 +53.0884 205.728 102.73 +50.7984 205 102.366 +48.88 205.739 102.735 +46.7119 205.411 102.571 +44.6302 205.417 102.574 +42.5155 205.229 102.48 +40.5121 205.554 102.643 +38.3406 204.979 102.356 +36.371 205.448 102.59 +34.2474 205.016 102.374 +32.2325 205.187 102.459 +30.1254 204.721 102.227 +28.2371 205.748 102.74 +26.116 205.071 102.402 +24.0938 205.089 102.411 +22.0254 204.647 102.19 +19.9674 204.187 101.96 +17.975 204.335 102.034 +16.0161 204.914 102.323 +13.9618 204.227 101.98 +11.9797 204.507 102.12 +9.94086 203.699 101.716 +7.96058 203.948 101.841 +5.98143 204.36 102.047 +3.99311 204.667 102.2 +1.99227 204.243 101.988 +1.39973e-14 204.519 102.126 +-1.99838 204.869 102.301 +-3.98962 204.488 102.11 +-5.96573 203.823 101.779 +-7.99547 204.842 102.287 +-9.94086 203.699 101.716 +-11.9954 204.775 102.254 +-13.9496 204.049 101.891 +-15.9673 204.289 102.011 +-17.9201 203.711 101.722 +-20.0633 205.167 102.45 +-21.9678 204.112 101.923 +-24.052 204.733 102.233 +-25.9122 203.472 101.603 +-28.0421 204.327 102.03 +-30.0471 204.189 101.961 +-32.0376 203.947 101.84 +-34.0109 203.601 101.667 +-36.0894 203.857 101.796 +-38.126 203.832 101.783 +-40.1475 203.704 101.719 +-42.1693 203.558 101.646 +-44.1914 203.397 101.565 +-46.2534 203.395 101.565 +-48.4018 203.726 101.73 +-50.3222 203.078 101.406 +-52.5711 203.723 101.729 +-54.4395 202.871 101.303 +-56.6339 203.219 101.477 +-58.664 202.942 101.339 +-60.9001 203.34 101.537 +-63.0415 203.374 101.554 +-65.3812 203.993 101.863 +-67.3116 203.303 101.519 +-69.526 203.454 101.594 +-71.7785 203.671 101.703 +-74.0405 203.869 101.801 +-76.0262 203.283 101.509 +-78.2991 203.443 101.589 +-80.4808 203.33 101.532 +-82.8031 203.535 101.635 +-84.8202 202.965 101.35 +-87.2984 203.464 101.599 +-89.6095 203.524 101.629 +-92.0783 203.895 101.814 +-94.2932 203.664 101.699 +-96.706 203.826 101.78 +-98.9695 203.637 101.686 +-101.603 204.165 101.949 +-103.756 203.689 101.712 +-106.5 204.332 102.032 +-108.36 203.25 101.492 +-111.127 203.843 101.788 +-113.111 202.968 101.351 +-115.995 203.671 101.703 +-118.392 203.473 101.603 +-120.936 203.488 101.611 +-123.346 203.244 101.489 +-125.954 203.29 101.512 +-128.424 203.078 101.406 +-130.95 202.92 101.327 +-134.142 203.74 101.737 +-139.215 207.286 103.507 +-141.649 206.802 103.266 +-144.827 207.357 103.543 +-144.05 202.294 101.015 +-144.057 198.461 99.1008 +-143.338 193.748 96.7473 +-143.713 190.619 95.185 +-148.908 193.84 96.7933 +-149.761 191.351 95.5505 +-683.952 857.859 428.369 +-700.522 862.619 430.746 +-709.326 857.621 428.25 +-711.887 845.191 422.044 +-718.825 838.111 418.508 +-721.925 826.685 412.803 +-729.089 820.038 409.483 +-733.284 810.142 404.542 +-739.377 802.454 400.703 +-737.47 786.302 392.637 +-729.2 763.847 381.425 +-731.112 752.453 375.735 +-738.424 746.716 372.87 +-741.464 736.734 367.886 +-748.013 730.323 364.685 +-751.085 720.596 359.827 +-757.81 714.445 356.756 +-760.651 704.704 351.892 +-767.496 698.738 348.913 +-769.969 688.861 343.981 +-777.086 683.2 341.154 +-779.98 673.875 336.497 +-787.539 668.622 333.874 +-789.935 659.03 329.085 +-796.997 653.382 326.264 +-800.218 644.621 321.889 +-806.55 638.409 318.787 +-810.181 630.091 314.634 +-817.741 624.845 312.015 +-820.28 615.792 307.494 +-828.03 610.674 304.938 +-831.158 602.159 300.686 +-838.721 596.872 298.046 +-841.595 588.263 293.747 +-848.491 582.487 290.863 +-854.141 575.84 287.544 +-870.175 576.069 287.658 +-888.543 577.562 288.404 +-902.61 576.005 287.626 +-907.129 568.27 283.764 +-914.121 562.078 280.672 +-913.931 551.517 275.398 +-911.604 539.819 269.557 +-909.37 528.344 263.827 +-908.754 517.955 258.639 +-912.669 510.224 254.779 +-921.96 505.464 252.402 +-926.855 498.246 248.798 +-935.988 493.261 246.308 +-383.216 197.944 98.8425 +-383.827 194.284 97.0149 +-383.696 190.282 95.0166 +-383.955 186.511 93.1336 +-379.403 180.482 90.123 +-379.907 176.934 88.3516 +-380.192 173.312 86.5427 +-382.316 170.537 85.1569 +-381.538 166.487 83.1345 +-383.057 163.463 81.6245 +-134.587 56.1478 28.0372 +-138.223 56.3564 28.1414 +-382.319 152.288 76.0447 +-383.331 149.119 74.4623 +-382.194 145.143 72.4765 +-383.502 142.119 70.9665 +-1115.96 403.381 201.427 +-382.122 134.666 67.2451 +-381.088 130.876 65.3527 +-380.757 127.363 63.5983 +-380.669 123.957 61.8975 +-381.77 120.951 60.3965 +-380.76 117.295 58.5711 +-383.407 114.772 57.3113 +-382.8 111.277 55.5658 +-387.781 109.387 54.6223 +-1246.45 340.935 170.245 +-380.556 100.852 50.3599 +-381.429 97.8517 48.8619 +-380.152 94.3205 47.0986 +-380.575 91.233 45.5569 +-381.45 88.258 44.0714 +-380.744 84.9303 42.4097 +-379.224 81.4532 40.6734 +-379.712 78.429 39.1633 +-381.536 75.6745 37.7878 +-382.26 72.6929 36.299 +-380.897 69.3311 34.6203 +-381.657 66.3718 33.1425 +-380.52 63.096 31.5068 +-381.613 60.2006 30.061 +-380.805 57.0122 28.4688 +-380.161 53.869 26.8993 +-381.76 51.0443 25.4888 +-379.174 47.6759 23.8068 +-379.624 44.7138 22.3277 +-378.954 41.6283 20.787 +-380.24 38.7593 19.3543 +-379.41 35.6769 17.8152 +-379.246 32.6705 16.3139 +-378.554 29.6305 14.7959 +-381.321 26.8493 13.4071 +-378.775 23.6964 11.8327 +-378.992 20.7383 10.3556 +-380.378 17.8349 8.90579 +-379.339 14.8176 7.39914 +-378.569 11.8273 5.90594 +-379.57 8.89238 4.44038 +-145.878 2.27808 1.13755 +-145.794 1.1383 0.568408 +97 0 0 +97.0963 0.761472 0.371694 +96.9852 1.52131 0.742593 +97.0667 2.28418 1.11497 +97.0408 3.04531 1.48649 +97.0076 3.8062 1.8579 +96.8671 4.5621 2.22688 +96.9189 5.32705 2.60027 +96.8635 6.0869 2.97117 +97.6979 6.90975 3.37283 +96.8301 7.61299 3.7161 +97.6484 8.44957 4.12446 +96.6675 9.13051 4.45684 +97.4694 9.97974 4.87137 +97.3688 10.7438 5.24432 +97.1616 11.4952 5.61112 +97.0463 12.2568 5.98284 +96.8247 13.004 6.34758 +96.6947 13.7628 6.71798 +96.3601 14.491 7.07343 +96.2157 15.246 7.44199 +96.9489 16.1474 7.88196 +96.7884 16.9071 8.2528 +96.6206 17.6655 8.62298 +96.4454 18.4225 8.9925 +96.2628 19.1781 9.36133 +96.9498 20.1142 9.81828 +96.7508 20.8738 10.189 +96.5444 21.6317 10.559 +97.202 22.5906 11.027 +96.979 23.3519 11.3987 +96.7485 24.1115 11.7695 +96.5107 24.8694 12.1394 +97.1284 25.855 12.6205 +96.6824 26.5632 12.9662 +96.6115 27.3744 13.3621 +97.198 28.3809 13.8534 +96.729 29.0851 14.1972 +97.2939 30.1058 14.6954 +96.9035 30.8376 15.0526 +97.5401 31.9038 15.5731 +97.2266 32.6674 15.9458 +96.9056 33.4287 16.3174 +97.4147 34.4838 16.8324 +97.0761 35.2464 17.2047 +97.6541 36.3502 17.7435 +97.2053 37.0796 18.0995 +97.025 37.9122 18.5059 +97.658 39.0736 19.0728 +97.2749 39.838 19.446 +97.7 40.9411 19.9844 +97.9305 41.9766 20.4899 +97.6989 42.8217 20.9024 +97.1004 43.5061 21.2365 +97.4761 44.6331 21.7866 +97.039 45.3958 22.1589 +97.2125 46.4504 22.6736 +96.7578 47.211 23.0449 +96.9953 48.3165 23.5845 +96.5224 49.0754 23.955 +96.8216 50.2348 24.5209 +97.1056 51.4027 25.091 +97.3742 52.5788 25.6651 +96.6894 53.2465 25.991 +96.8471 54.3837 26.5461 +97.0744 55.5757 27.1279 +96.4471 56.2859 27.4746 +96.564 57.4369 28.0364 +96.7487 58.6442 28.6258 +96.2579 59.4516 29.0199 +96.2504 60.565 29.5634 +96.3913 61.7872 30.1599 +96.4348 62.9633 30.734 +96.3824 64.0914 31.2847 +96.3953 65.2775 31.8636 +96.5511 66.578 32.4984 +96.5313 67.7752 33.0828 +96.4173 68.9212 33.6422 +96.5215 70.2403 34.2861 +96.5302 71.509 34.9054 +95.8322 72.2633 35.2736 +95.7351 73.479 35.867 +95.6972 74.7576 36.4911 +96.3157 76.577 37.3792 +96.2373 77.8706 38.0106 +96.0672 79.108 38.6147 +95.9536 80.41 39.2502 +95.822 81.7161 39.8877 +95.7441 83.0887 40.5578 +95.6469 84.4663 41.2302 +95.1059 85.4674 41.7188 +95.1835 87.0432 42.488 +94.543 87.9802 42.9454 +92.7902 87.8709 42.8921 +92.82 89.4496 43.6627 +93.5692 91.7643 44.7925 +93.2099 93.0287 45.4097 +92.8331 94.2949 46.0278 +93.0292 96.1722 46.9442 +92.6762 97.513 47.5986 +91.9829 98.5114 48.086 +92.4222 100.754 49.1809 +92.3842 102.523 50.0441 +91.8832 103.806 50.6705 +91.9183 105.727 51.608 +91.923 107.655 52.5493 +91.837 109.521 53.46 +91.7812 111.465 54.4088 +92.1059 113.925 55.6098 +92.0414 115.96 56.6029 +91.6002 117.561 57.3846 +92.2109 120.571 58.8537 +92.155 122.779 59.9315 +91.6767 124.471 60.7575 +92.6976 128.276 62.6147 +91.5021 129.074 63.0043 +90.9341 130.777 63.8355 +91.176 133.707 65.266 +91.1102 136.266 66.5148 +91.1539 139.066 67.8817 +92.65 144.212 70.3934 +93.5112 148.531 72.5016 +93.4713 151.537 73.9694 +93.38 154.555 75.4424 +93.1432 157.424 76.8426 +93.227 160.937 78.5577 +92.9773 163.985 80.0452 +92.9876 167.603 81.8112 +92.8032 170.992 83.4654 +92.6029 174.47 85.1634 +92.4266 178.122 86.9461 +92.1863 181.783 88.7332 +90.7023 183.075 89.3636 +89.559 185.098 90.351 +87.9927 186.289 90.9326 +92.1884 200.007 97.6287 +91.8535 204.305 99.7264 +90.3792 206.188 100.646 +88.051 206.134 100.619 +85.4856 205.47 100.295 +83.4529 206.048 100.577 +80.9815 205.509 100.314 +78.9177 205.966 100.537 +76.5339 205.555 100.337 +74.504 206.062 100.584 +72.1093 205.523 100.321 +69.9938 205.737 100.426 +67.7093 205.417 100.269 +65.6844 205.854 100.483 +63.282 205.062 100.096 +61.2366 205.377 100.25 +59.0396 205.153 100.14 +56.9 205.086 100.108 +54.8597 205.349 100.236 +52.9535 206.122 100.613 +50.5603 204.95 100.041 +48.6721 205.778 100.445 +46.4926 205.359 100.241 +44.4585 205.539 100.329 +42.3698 205.439 100.28 +40.3732 205.763 100.438 +38.2415 205.362 100.243 +36.2615 205.743 100.429 +34.1144 205.131 100.13 +32.1768 205.747 100.43 +30.008 204.833 99.9843 +28.1274 205.864 100.487 +26.0028 205.094 100.112 +24.0102 205.29 100.208 +21.9103 204.487 99.8154 +19.9587 205.009 100.07 +17.9122 204.53 99.8365 +15.8975 204.305 99.7264 +13.9008 204.242 99.6957 +11.9797 205.42 100.271 +9.9016 203.801 99.4803 +7.96058 204.858 99.9966 +5.96049 204.554 99.8479 +3.98264 205.042 100.086 +1.9879 204.705 99.922 +1.39605e-14 204.893 100.014 +-1.9818 204.076 99.615 +-3.97566 204.682 99.9106 +-5.96573 204.733 99.9356 +-7.9536 204.679 99.9089 +-9.94086 204.608 99.8747 +-11.9378 204.702 99.9203 +-13.8824 203.973 99.5645 +-15.8975 204.305 99.7264 +-17.8573 203.903 99.5303 +-19.9064 204.472 99.808 +-21.9008 204.397 99.7716 +-23.9684 204.933 100.033 +-25.8443 203.844 99.5014 +-27.9325 204.437 99.7909 +-29.9166 204.209 99.6799 +-31.9959 204.59 99.8659 +-33.8631 203.621 99.3926 +-35.9643 204.058 99.6058 +-37.994 204.033 99.5939 +-40.1301 204.524 99.8334 +-42.0053 203.671 99.4171 +-44.096 203.863 99.511 +-46.0939 203.598 99.3816 +-48.0692 203.229 99.2013 +-50.0841 203.02 99.0991 +-52.3461 203.757 99.4592 +-54.206 202.902 99.0416 +-56.392 203.254 99.2136 +-58.4637 203.152 99.1636 +-60.9001 204.248 99.6988 +-62.6407 202.984 99.0816 +-64.9126 203.435 99.3018 +-66.9992 203.263 99.218 +-69.2629 203.589 99.3772 +-71.2372 203.038 99.1083 +-73.7933 204.095 99.6242 +-75.7724 203.509 99.3382 +-77.9736 203.502 99.3347 +-80.2805 203.73 99.4457 +-82.5637 203.853 99.5057 +-84.5401 203.198 99.186 +-87.1192 203.952 99.5544 +-89.0598 203.178 99.1763 +-91.7786 204.138 99.6452 +-93.7192 203.328 99.2496 +-96.3152 203.908 99.5329 +-98.6106 203.805 99.4825 +-101.277 204.42 99.7825 +-103.093 203.29 99.2311 +-106.035 204.348 99.7474 +-108.015 203.508 99.3377 +-110.645 203.865 99.5119 +-112.799 203.311 99.2412 +-115.541 203.78 99.4702 +-117.469 202.787 98.9855 +-120.607 203.841 99.5 +-122.487 202.729 98.9574 +-125.323 203.176 99.1754 +-127.981 203.28 99.2263 +-130.25 202.737 98.9609 +-132.874 202.714 98.95 +-138.751 207.518 101.295 +-141.127 206.958 101.022 +-144.562 207.902 101.482 +-143.674 202.667 98.9272 +-143.349 198.367 96.8282 +-144.111 195.662 95.5078 +-144.775 192.885 94.1524 +-149.814 195.89 95.6188 +-154.292 198.02 96.6589 +-704.335 887.369 433.148 +-706.165 873.45 426.354 +-713.668 866.723 423.07 +-715.618 853.414 416.573 +-723.513 847.342 413.609 +-726.419 835.546 407.852 +-736.373 831.927 406.085 +-738.633 819.695 400.114 +-734.225 800.419 390.705 +-729.371 781.139 381.294 +-733.681 771.972 376.82 +-735.901 760.763 371.348 +-743.261 754.963 368.517 +-745.345 743.897 363.115 +-752.54 738.023 360.248 +-755.109 727.69 355.204 +-761.94 721.545 352.205 +-764.749 711.664 347.381 +-772.052 706.024 344.628 +-774.282 695.812 339.644 +-781.936 690.533 337.067 +-784.368 680.691 332.263 +-792.326 675.69 329.822 +-794.47 665.773 324.981 +-801.863 660.306 322.313 +-804.752 651.167 317.851 +-811.793 645.426 315.049 +-814.483 636.265 310.577 +-822.455 631.254 308.131 +-825.26 622.296 303.759 +-832.429 616.658 301.007 +-835.743 608.183 296.87 +-843.808 603.173 294.424 +-845.614 593.711 289.806 +-854.124 588.972 287.492 +-857.575 580.737 283.473 +-867.683 576.983 281.64 +-883.689 576.971 281.634 +-898.702 576.072 281.196 +-909.914 572.559 279.481 +-914.203 564.637 275.614 +-913.019 553.427 270.142 +-908.519 540.393 263.78 +-908.196 530.018 258.715 +-913.562 523.02 255.299 +-917.418 515.169 251.467 +-927.758 510.913 249.39 +-932.084 503.293 245.671 +-940.985 498.109 243.14 +-384.602 199.546 97.4037 +-383.305 194.885 95.1284 +-381.247 189.912 92.7009 +-382.988 186.872 91.2169 +-380.374 181.751 88.7174 +-381.592 178.512 87.1365 +-380.638 174.29 85.0753 +-382.584 171.418 83.6738 +-382.257 167.544 81.7827 +-382.516 163.96 80.0333 +-133.137 55.7908 27.2329 +-137.768 56.4217 27.5409 +-381.862 152.786 74.5786 +-382.689 149.534 72.9916 +-383.482 146.282 71.4041 +-383.502 142.753 69.6815 +-1114.75 404.745 197.567 +-382.029 135.234 66.0112 +-380.341 131.203 64.0434 +-382.162 128.404 62.6775 +-381.045 124.634 60.8368 +-380.45 121.07 59.0976 +-381.8 118.141 57.6676 +-383.123 115.199 56.2318 +-382.515 111.691 54.5193 +-3124.85 885.411 432.192 +-388.834 106.83 52.1466 +-380.843 101.378 49.4853 +-381.429 98.2886 47.9772 +-380.634 94.8611 46.3042 +-380.865 91.7095 44.7658 +-380.869 88.517 43.2075 +-381.326 85.4399 41.7054 +-378.349 81.628 39.8448 +-379.712 78.7791 38.4541 +-381.048 75.9151 37.0561 +-382.26 73.0174 35.6417 +-380.897 69.6406 33.9934 +-382.147 66.7538 32.5842 +-381.11 63.476 30.9843 +-381.711 60.4849 29.5242 +-380.805 57.2667 27.9533 +-380.359 54.1376 26.4259 +-381.562 51.2457 25.0144 +-381.154 48.1389 23.4978 +-380.913 45.0659 21.9978 +-381.237 42.066 20.5335 +-379.942 38.9018 18.989 +-381.101 35.9959 17.5705 +-381.436 33.0059 16.111 +-379.451 29.8332 14.5623 +-379.925 26.8705 13.1162 +-379.673 23.8587 11.646 +-379.89 20.8803 10.1922 +-379.279 17.8627 8.71927 +-380.238 14.919 7.28236 +-377.67 11.8519 5.78522 +-379.57 8.93208 4.35998 +-145.678 2.28512 1.11542 +-146.594 1.14966 0.561178 +97.1 0 0 +97.0963 0.764795 0.36481 +96.9852 1.52795 0.728838 +96.9668 2.29178 1.09319 +97.0408 3.05859 1.45896 +97.0076 3.8228 1.82349 +96.8671 4.58201 2.18563 +97.0187 5.35581 2.55474 +96.8635 6.11346 2.91614 +97.6979 6.93989 3.31035 +97.6271 7.70913 3.67728 +97.6484 8.48644 4.04806 +97.4631 9.2458 4.41028 +96.5752 9.9314 4.73731 +97.2695 10.7796 5.14192 +96.3684 11.4511 5.4622 +97.0463 12.3102 5.87202 +96.9236 13.0741 6.23638 +96.6947 13.8229 6.59355 +97.2478 14.6882 7.00634 +97.102 15.4536 7.37143 +96.9489 16.2178 7.73596 +96.7884 16.9809 8.09993 +96.6206 17.7426 8.46326 +96.4454 18.5029 8.82594 +97.1415 19.4376 9.2718 +96.9498 20.202 9.63641 +96.0701 20.8174 9.92995 +96.7385 21.7698 10.3842 +97.202 22.6891 10.8228 +96.979 23.4538 11.1875 +96.7485 24.2167 11.5515 +96.5107 24.9779 11.9145 +97.1284 25.9678 12.3867 +96.6824 26.679 12.726 +97.4699 27.738 13.2311 +97.0078 28.4489 13.5702 +97.9618 29.5843 14.1118 +97.2939 30.2372 14.4232 +96.9978 31.0023 14.7882 +97.6341 32.0738 15.2993 +97.3202 32.8416 15.6655 +97.7459 33.8656 16.154 +97.4147 34.6343 16.5207 +97.8179 35.6707 17.015 +97.6541 36.5088 17.4148 +97.2053 37.2413 17.7642 +97.8503 38.4014 18.3176 +96.8358 38.9137 18.562 +97.2749 40.0118 19.0858 +96.8843 40.7765 19.4505 +97.2987 41.8877 19.9806 +97.6989 43.0085 20.5152 +97.8163 44.0181 20.9968 +97.4761 44.8279 21.383 +97.039 45.5939 21.7484 +97.2125 46.653 22.2537 +96.7578 47.417 22.6181 +97.0828 48.5711 23.1686 +96.6095 49.3339 23.5324 +96.8216 50.454 24.0667 +96.3301 51.2147 24.4296 +97.2885 52.7617 25.1675 +96.7747 53.526 25.5321 +96.8471 54.621 26.0544 +96.3153 55.3817 26.4172 +96.4471 56.5315 26.9657 +96.6474 57.7373 27.5409 +96.7487 58.9001 28.0955 +96.1755 59.6599 28.458 +96.2504 60.8293 29.0158 +97.0426 62.4761 29.8013 +96.273 63.1319 30.1141 +96.5432 64.4784 30.7564 +95.9161 65.2364 31.118 +96.5511 66.8685 31.8965 +96.5313 68.0709 32.47 +96.4956 69.2782 33.0459 +96.5215 70.5467 33.651 +96.4531 71.7636 34.2315 +95.9088 72.6366 34.6479 +95.7351 73.7995 35.2026 +95.6972 75.0837 35.8152 +96.3157 76.9111 36.6868 +95.6427 77.7272 37.0761 +96.0672 79.4532 37.8994 +95.9536 80.7608 38.5232 +95.822 82.0726 39.1489 +95.6003 83.3259 39.7467 +96.2175 85.341 40.7079 +95.9544 86.6061 41.3114 +95.1134 87.3586 41.6703 +93.7789 87.6499 41.8093 +92.7902 88.2543 42.0976 +93.2974 90.3018 43.0742 +93.0288 91.6322 43.7089 +93.2768 93.5014 44.6005 +93.0981 94.9762 45.304 +92.5043 96.0467 45.8146 +92.6762 97.9385 46.717 +92.24 99.2174 47.327 +92.1041 100.846 48.1037 +92.3842 102.97 49.1172 +92.3812 104.824 50.0015 +92.4108 106.757 50.9233 +91.8012 107.982 51.5079 +91.7166 109.854 52.4009 +92.1975 112.459 53.6434 +92.1059 114.422 54.5798 +92.0414 116.466 55.5545 +91.8869 118.443 56.4978 +91.8711 120.65 57.5504 +92.0432 123.165 58.7503 +91.9527 125.39 59.8116 +91.7172 127.473 60.8048 +91.5021 129.637 61.8372 +91.3051 131.883 62.9088 +91.1237 134.213 64.02 +91.5223 137.479 65.5781 +91.4584 140.139 66.8469 +93.6 146.326 69.7978 +93.5112 149.179 71.1587 +93.4713 152.199 72.5992 +93.38 155.229 74.045 +92.7206 157.393 75.0769 +93.227 161.64 77.1026 +92.6595 164.137 78.2939 +92.8984 168.172 80.2188 +92.4963 171.17 81.6486 +92.646 175.313 83.6247 +92.4266 178.899 85.3357 +91.8131 181.837 86.737 +90.7429 183.956 87.7475 +89.1603 185.078 88.2826 +87.9145 186.936 89.1691 +92.1119 200.713 95.7407 +91.8161 205.113 97.8396 +89.6462 205.408 97.9804 +87.6926 206.191 98.3536 +85.2405 205.775 98.1552 +82.8715 205.506 98.0269 +80.6144 205.47 98.0096 +78.3968 205.499 98.0238 +76.2483 205.681 98.1104 +74.1332 205.93 98.2292 +71.7785 205.473 98.0114 +69.7599 205.944 98.2361 +67.3968 205.361 97.958 +65.3536 205.711 98.1246 +63.0415 205.173 97.8684 +61.0554 205.663 98.1018 +58.7642 205.087 97.8271 +56.7791 205.542 98.0441 +54.5795 205.192 97.877 +52.5261 205.349 97.9524 +50.4521 205.404 97.9782 +48.4018 205.528 98.0376 +46.1736 204.84 97.7096 +44.1914 205.196 97.8792 +42.06 204.826 97.7027 +40.0433 204.972 97.7724 +37.9444 204.656 97.6217 +36.1207 205.839 98.1857 +33.9814 205.223 97.8921 +31.9541 205.215 97.8882 +29.8774 204.832 97.7057 +27.8715 204.88 97.7285 +25.8783 205.003 97.7871 +23.8952 205.199 97.8805 +21.8816 205.109 97.8379 +19.8802 205.094 97.8305 +17.8416 204.613 97.6011 +15.8347 204.386 97.4926 +13.858 204.503 97.5485 +11.8803 204.604 97.5968 +9.86671 203.969 97.2937 +7.91521 204.58 97.5851 +5.93693 204.634 97.611 +3.9617 204.853 97.7156 +1.97918 204.696 97.6407 +1.38993e-14 204.885 97.7307 +-1.97656 204.425 97.5115 +-3.96519 205.034 97.8017 +-5.92908 204.363 97.4818 +-7.9187 204.67 97.6282 +-9.87979 204.238 97.4224 +-11.9012 204.964 97.7685 +-13.8336 204.142 97.3763 +-15.8556 204.655 97.6213 +-17.7396 203.443 97.0431 +-19.8366 204.645 97.6161 +-21.7857 204.211 97.4095 +-23.8952 205.199 97.8805 +-25.7311 203.837 97.2308 +-27.7862 204.254 97.4297 +-29.773 204.117 97.3643 +-31.7315 203.784 97.2058 +-33.5675 202.724 96.7 +-35.714 203.521 97.0801 +-37.6969 203.321 96.985 +-39.7828 203.638 97.1361 +-41.7502 203.318 96.9833 +-43.7716 203.246 96.9492 +-45.8746 203.514 97.0767 +-47.8405 203.144 96.9006 +-50.0192 203.641 97.1374 +-52.0537 203.503 97.0715 +-54.0193 203.085 96.8722 +-56.2226 203.528 97.0836 +-58.1883 203.078 96.8687 +-60.4342 203.57 97.1038 +-62.3734 202.999 96.8313 +-64.5267 203.107 96.8829 +-66.5732 202.851 96.7607 +-68.912 203.441 97.0422 +-71.2372 203.924 97.2726 +-73.2679 203.527 97.0831 +-75.4868 203.626 97.1305 +-77.6806 203.622 97.1283 +-79.9801 203.853 97.2386 +-82.2558 203.978 97.2984 +-84.2249 203.323 96.9858 +-86.725 203.915 97.2683 +-88.6933 203.225 96.9389 +-91.3665 204.108 97.3604 +-93.3748 203.465 97.0534 +-95.9636 204.051 97.3328 +-97.853 203.122 96.8898 +-100.545 203.827 97.2261 +-102.388 202.781 96.7271 +-105.443 204.094 97.3535 +-107.585 203.581 97.109 +-110.338 204.186 97.3974 +-112.442 203.552 97.0948 +-115.087 203.865 97.2442 +-117.007 202.871 96.7701 +-119.621 203.057 96.8588 +-122.105 202.979 96.8218 +-124.984 203.51 97.075 +-126.947 202.518 96.6018 +-129.95 203.152 96.904 +-131.808 201.965 96.3379 +-138.288 207.727 99.0864 +-140.657 207.169 98.8203 +-143.608 207.431 98.9452 +-143.889 203.856 97.2399 +-143.512 199.46 95.1432 +-143.669 195.913 93.4512 +-145.278 194.4 92.7296 +-149.305 196.076 93.5287 +-158.192 203.912 97.2665 +-712.813 901.968 430.242 +-711.279 883.613 421.486 +-719.2 877.252 418.452 +-720.974 863.553 411.917 +-728.809 857.269 408.92 +-731.098 844.597 402.875 +-740.357 840.078 400.72 +-739.326 824.043 393.071 +-728.755 797.922 380.611 +-730.85 786.137 374.99 +-738.422 780.351 372.23 +-741.347 769.736 367.167 +-748.761 763.868 364.367 +-750.564 752.374 358.885 +-758.012 746.633 356.146 +-760.292 735.882 351.018 +-768.135 730.585 348.492 +-770.307 719.963 343.425 +-777.519 714.126 340.64 +-779.373 703.443 335.545 +-787.143 698.163 333.026 +-789.332 687.987 328.172 +-797.041 682.676 325.639 +-800.174 673.478 321.251 +-807.982 668.248 318.757 +-809.805 658.115 313.923 +-817.56 652.847 311.41 +-820.822 644.015 307.197 +-828.462 638.639 304.633 +-830.699 629.13 300.097 +-837.676 623.253 297.294 +-840.561 614.359 293.051 +-849.13 609.625 290.793 +-851.524 600.469 286.426 +-860.312 595.827 284.212 +-863.245 587.127 280.062 +-871.702 582.185 277.704 +-879.725 576.888 275.178 +-893.248 575.073 274.312 +-914.747 578.111 275.761 +-912.637 566.13 270.046 +-910.781 554.478 264.488 +-909.102 543.1 259.06 +-910.461 533.657 254.556 +-920.309 529.181 252.421 +-923.524 520.86 248.452 +-934.238 516.726 246.48 +-936.884 508.093 242.362 +-947.964 503.993 240.406 +-950.982 495.559 236.383 +-382.26 195.202 93.1119 +-383.608 191.921 91.5469 +-380.879 186.654 89.0344 +-379.932 182.333 86.9734 +-379.375 178.25 85.0257 +-381.44 175.418 83.6751 +-381.511 171.683 81.8931 +-383.246 168.71 80.4754 +-382.516 164.676 78.5509 +-382.553 161.008 76.8012 +-136.676 56.2186 26.8165 +-381.771 153.415 73.1796 +-383.056 150.33 71.708 +-382.746 146.638 69.9467 +-382.948 143.168 68.2918 +-1114.38 406.376 193.843 +-383.797 136.453 65.0886 +-381.461 132.163 63.0423 +-380.383 128.363 61.2298 +-380.294 124.931 59.5925 +-381.676 121.99 58.1898 +-388.324 120.684 57.5668 +-383.123 115.702 55.1903 +-385.083 112.931 53.8685 +-382.727 108.916 51.9535 +-380.705 105.053 50.1109 +-379.597 101.487 48.4098 +-380.564 98.4936 46.9818 +-381.019 95.3715 45.4925 +-380.575 92.0401 43.9035 +-379.901 88.6772 42.2993 +-379.386 85.376 40.7246 +-378.933 82.1106 39.167 +-381.174 79.4275 37.8872 +-381.634 76.3635 36.4256 +-381.967 73.2797 34.9546 +-382.465 70.2324 33.5011 +-382.147 67.045 31.9807 +-379.635 63.5062 30.2927 +-382.204 60.8272 29.0148 +-380.509 57.4719 27.4143 +-380.951 54.4585 25.9769 +-381.068 51.4026 24.5192 +-381.154 48.3489 23.0626 +-381.607 45.3449 21.6297 +-381.634 42.2936 20.1742 +-380.935 39.1737 18.686 +-380.206 36.068 17.2046 +-381.038 33.1153 15.7961 +-380.248 30.0263 14.3226 +-379.826 26.9806 12.8698 +-380.471 24.0131 11.4543 +-378.992 20.9218 9.97976 +-380.478 17.9974 8.5848 +-378.24 14.9054 7.10993 +-379.069 11.9478 5.69912 +-379.07 8.95924 4.27359 +-144.878 2.28248 1.08875 +-145.694 1.14759 0.547404 +97 0 0 +97.0963 0.768055 0.357895 +97.8851 1.5487 0.72166 +96.9668 2.30155 1.07247 +97.0408 3.07163 1.43131 +97.0076 3.8391 1.78893 +96.9669 4.60628 2.14642 +97.0187 5.37864 2.50632 +96.8635 6.13952 2.86087 +97.6979 6.96948 3.24761 +96.8301 7.6788 3.57814 +97.6484 8.52261 3.97133 +97.4631 9.28521 4.32669 +96.5752 9.97373 4.64752 +97.3688 10.8366 5.04962 +96.3684 11.4999 5.35867 +97.0463 12.3627 5.76072 +96.9236 13.1298 6.11818 +96.6947 13.8818 6.46858 +97.2478 14.7509 6.87355 +97.102 15.5195 7.23172 +96.9489 16.287 7.58934 +96.7884 17.0533 7.94641 +96.6206 17.8182 8.30285 +96.4454 18.5818 8.65866 +97.1415 19.5205 9.09606 +96.9498 20.2881 9.45377 +96.0701 20.9061 9.74174 +96.5444 21.8187 10.167 +97.202 22.7858 10.6177 +96.979 23.5538 10.9755 +96.7485 24.32 11.3325 +97.3758 25.3092 11.7935 +97.1284 26.0785 12.152 +96.6824 26.7928 12.4848 +97.4699 27.8563 12.9804 +97.0078 28.5702 13.313 +97.9618 29.7104 13.8443 +97.2939 30.3661 14.1499 +96.9978 31.1344 14.5079 +97.6341 32.2106 15.0093 +97.3202 32.9816 15.3686 +97.7459 34.01 15.8478 +97.4147 34.7819 16.2075 +97.0761 35.5511 16.566 +97.6541 36.6644 17.0848 +97.2974 37.4355 17.4441 +97.8503 38.5651 17.9704 +97.4753 39.3377 18.3304 +97.2749 40.1824 18.724 +96.703 40.8737 19.0462 +97.2987 42.0663 19.6019 +96.89 42.8343 19.9598 +97.8163 44.2057 20.5988 +97.4761 45.0189 20.9778 +97.039 45.7882 21.3362 +97.1242 46.8094 21.8121 +96.7578 47.6191 22.1894 +96.9953 48.7342 22.709 +96.6095 49.5442 23.0864 +96.8216 50.669 23.6106 +96.3301 51.433 23.9665 +96.517 52.5665 24.4947 +96.7747 53.7541 25.0481 +96.8471 54.8538 25.5606 +96.3153 55.6177 25.9165 +96.4471 56.7724 26.4546 +96.6474 57.9834 27.0189 +96.8316 59.2018 27.5866 +96.1755 59.9142 27.9186 +96.2504 61.0885 28.4658 +97.0426 62.7424 29.2365 +96.273 63.401 29.5434 +96.5432 64.7532 30.1735 +96.4752 65.8963 30.7061 +96.5511 67.1535 31.2919 +96.5313 68.3611 31.8546 +96.4956 69.5735 32.4196 +95.8221 70.3341 32.774 +96.4531 72.0695 33.5827 +96.445 73.3541 34.1813 +95.7351 74.1141 34.5354 +96.3009 75.8795 35.358 +96.3157 77.2389 35.9915 +96.2373 78.5437 36.5995 +96.0672 79.7919 37.1811 +95.9536 81.1051 37.793 +95.822 82.4225 38.4069 +95.7441 83.8069 39.052 +96.2175 85.7047 39.9364 +95.5301 86.5907 40.3492 +95.1134 87.7309 40.8805 +93.0842 87.3715 40.713 +92.7902 88.6305 41.2997 +92.6836 90.0903 41.9799 +93.0288 92.0228 42.8804 +92.6077 93.2265 43.4413 +93.0981 95.3811 44.4453 +92.7667 96.7298 45.0738 +92.6762 98.3559 45.8315 +92.6257 100.057 46.6243 +92.1041 101.276 47.192 +92.2584 103.269 48.1208 +92.3812 105.271 49.0538 +91.8567 106.569 49.6586 +91.8012 108.443 50.5317 +92.2582 110.974 51.7114 +92.1975 112.938 52.6266 +92.1059 114.91 53.5453 +92.0414 116.962 54.5015 +91.8869 118.948 55.427 +91.8711 121.164 56.4597 +91.3162 122.713 57.1815 +91.9527 125.925 58.678 +91.4994 127.712 59.5109 +91.5021 130.19 60.6652 +91.3051 132.446 61.7165 +91.1237 134.785 62.8066 +92.0888 138.92 64.7335 +91.4584 140.737 65.5799 +93.55 146.87 68.4381 +93.5112 149.814 69.81 +93.4713 152.847 71.2232 +93.38 155.891 72.6416 +93.0962 158.705 73.9526 +93.227 162.329 75.6412 +92.8865 165.241 76.9983 +92.8984 168.889 78.6984 +92.8032 172.47 80.3667 +92.646 176.06 82.0397 +92.5534 179.908 83.8327 +91.8131 182.612 85.0931 +90.4176 184.077 85.7756 +89.1603 185.867 86.6094 +89.2821 190.652 88.8395 +92.1119 201.568 93.9261 +91.7037 205.735 95.8678 +89.6462 206.284 96.1233 +86.6892 204.7 95.3854 +85.2405 206.652 96.2948 +82.3585 205.104 95.5734 +80.6144 206.345 96.152 +77.648 204.404 95.2473 +76.2483 206.557 96.2509 +73.2061 204.222 95.1624 +71.7785 206.349 96.1537 +69.0874 204.829 95.4454 +67.3968 206.237 96.1013 +64.7197 204.583 95.3309 +63.0415 206.048 96.0135 +60.2531 203.825 94.9778 +58.7642 205.961 95.9729 +56.1017 203.956 95.0386 +54.5795 206.066 96.0219 +51.9862 204.106 95.1083 +50.4521 206.279 96.1212 +47.9029 204.276 95.1877 +46.1736 205.714 95.8576 +43.8479 204.469 95.2777 +42.06 205.699 95.8509 +39.6786 203.971 95.0458 +37.9444 205.529 95.7715 +35.6514 204.03 95.0733 +33.9814 206.098 96.0367 +31.5923 203.756 94.9453 +29.8774 205.705 95.8538 +27.7131 204.584 95.3313 +25.8783 205.877 95.9337 +23.6652 204.09 95.1012 +21.8816 205.984 95.9835 +19.6275 203.35 94.7561 +17.8416 205.485 95.7512 +15.6534 202.905 94.5491 +13.858 205.375 95.6997 +11.7494 203.213 94.6923 +9.86671 204.838 95.4496 +7.84192 203.549 94.849 +5.93693 205.506 95.7609 +3.91457 203.28 94.7236 +1.97918 205.569 95.79 +1.37217e-14 203.129 94.6534 +-1.97656 205.297 95.6633 +-3.91807 203.461 94.808 +-5.92908 205.234 95.6342 +-7.84192 203.549 94.849 +-9.87979 205.109 95.5759 +-11.7756 203.666 94.9035 +-13.8336 205.012 95.5307 +-15.6673 203.087 94.6336 +-17.7396 204.31 95.2038 +-19.61 203.169 94.672 +-21.7857 205.082 95.5632 +-23.613 203.639 94.8908 +-25.7311 204.706 95.3879 +-27.4937 202.964 94.5766 +-29.773 204.987 95.5189 +-31.4114 202.589 94.4017 +-33.5675 203.588 94.8672 +-35.3698 202.419 94.3223 +-37.6969 204.188 95.1468 +-39.4529 202.81 94.5048 +-41.7502 204.184 95.1451 +-43.3518 202.156 94.1998 +-45.8746 204.381 95.2367 +-47.4662 202.414 94.3202 +-50.0192 204.509 95.2963 +-51.5813 202.516 94.3675 +-54.0193 203.951 95.0361 +-55.7146 202.548 94.3827 +-58.1883 203.943 95.0327 +-59.9425 202.774 94.4879 +-62.3734 203.864 94.996 +-63.9479 202.144 94.1943 +-66.5732 203.716 94.9267 +-68.2396 202.315 94.2742 +-71.2372 204.794 95.4289 +-72.7426 202.929 94.5601 +-75.4868 204.494 95.2895 +-76.8666 202.347 94.2889 +-79.9801 204.722 95.3955 +-81.435 202.804 94.5018 +-84.2249 204.19 95.1476 +-85.865 202.754 94.4786 +-88.6933 204.091 95.1016 +-90.3926 202.793 94.4967 +-93.3748 204.332 95.2139 +-94.8695 202.585 94.3996 +-97.853 203.988 95.0534 +-99.5285 202.626 94.419 +-102.388 203.645 94.8938 +-104.302 202.746 94.4748 +-107.585 204.449 95.2684 +-108.848 202.287 94.2611 +-112.442 204.419 95.2545 +-113.906 202.634 94.4228 +-117.007 203.736 94.936 +-118.635 202.242 94.2399 +-122.105 203.845 94.9867 +-123.675 202.237 94.2374 +-126.947 203.381 94.7709 +-128.7 202.055 94.1529 +-131.808 202.826 94.5119 +-135.713 204.728 95.3985 +-140.657 208.052 96.9473 +-142.283 206.393 96.1744 +-143.889 204.725 95.3968 +-143.458 200.234 93.3044 +-143.669 196.748 91.6799 +-144.663 194.402 90.5868 +-149.305 196.911 91.756 +-150.965 195.426 91.0637 +-712.813 905.813 422.087 +-727.737 907.909 423.064 +-719.2 880.991 410.521 +-736.983 886.49 413.083 +-728.809 860.923 401.17 +-735.9 853.768 397.835 +-740.357 843.658 393.125 +-734.48 822.132 383.094 +-728.755 801.323 373.397 +-743.834 803.514 374.418 +-738.422 783.677 365.175 +-753.681 785.878 366.2 +-748.761 767.124 357.461 +-763.612 768.716 358.204 +-758.012 749.816 349.396 +-772.909 751.282 350.08 +-768.135 733.699 341.886 +-782.463 734.442 342.232 +-777.519 717.17 334.184 +-793.162 718.94 335.009 +-787.143 701.139 326.714 +-802.495 702.442 327.321 +-797.041 685.586 319.467 +-812.753 686.982 320.117 +-807.982 671.096 312.715 +-823.256 671.898 313.088 +-817.56 655.63 305.508 +-833.048 656.393 305.864 +-828.462 641.361 298.859 +-843.109 641.251 298.808 +-837.676 625.909 291.659 +-854.394 627.131 292.228 +-849.13 612.223 285.282 +-865.866 613.185 285.73 +-860.312 598.367 278.825 +-877.221 599.176 279.202 +-871.702 584.666 272.441 +-889.191 585.581 272.867 +-893.248 577.525 269.113 +-903.934 573.713 267.337 +-912.637 568.543 264.927 +-913.019 558.211 260.113 +-909.102 545.415 254.15 +-926.983 545.657 254.263 +-920.309 531.437 247.637 +-939.552 532.159 247.973 +-934.238 518.929 241.809 +-952.741 518.895 241.793 +-947.964 506.141 235.85 +-968.216 506.69 236.106 +-382.26 196.034 91.3471 +-383.171 192.52 89.7096 +-380.879 187.449 87.3468 +-383.464 184.811 86.1177 +-379.375 179.009 83.4141 +-380.638 175.796 81.9168 +-381.511 172.414 80.341 +-382.527 169.112 78.8023 +-382.516 165.378 77.0621 +-381.556 161.273 75.1492 +-136.676 56.4583 26.3082 +-136.392 55.0433 25.6488 +-383.056 150.971 70.3489 +-383.022 147.369 68.6704 +-382.948 143.779 66.9974 +-382.741 140.167 65.3147 +-383.797 137.035 63.855 +-381.461 132.727 61.8474 +-380.383 128.911 60.0692 +-380.763 125.618 58.5352 +-381.676 122.51 57.0869 +-381.99 119.222 55.5545 +-383.123 116.195 54.1442 +-381.469 112.348 52.3517 +-382.727 109.381 50.9688 +-381.279 105.661 49.2354 +-379.597 101.92 47.4923 +-380.564 98.9134 46.0913 +-381.019 95.7781 44.6303 +-380.768 92.4787 43.0929 +-379.901 89.0552 41.4976 +-378.124 85.4548 39.8199 +-378.933 82.4606 38.4247 +-380.686 79.6641 37.1216 +-381.634 76.689 35.7352 +-381.575 73.5167 34.257 +-382.465 70.5318 32.8661 +-380.675 67.0714 31.2537 +-379.635 63.7769 29.7185 +-381.416 60.9605 28.4061 +-380.509 57.7168 26.8947 +-379.569 54.4921 25.392 +-381.068 51.6217 24.0545 +-380.56 48.4793 22.5902 +-381.607 45.5382 21.2197 +-379.847 42.275 19.6992 +-380.935 39.3407 18.3318 +-381.996 36.3923 16.958 +-381.038 33.2565 15.4967 +-379.849 30.1227 14.0365 +-379.826 27.0956 12.6259 +-379.673 24.0649 11.2137 +-378.992 21.011 9.79061 +-378.68 17.9887 8.3823 +-378.24 14.9689 6.97517 +-380.468 12.0429 5.61171 +-379.07 8.99742 4.19259 +-144.878 2.29221 1.06811 +-145.694 1.15248 0.537028 +97.1 0 0 +97.0963 0.771252 0.350953 +96.9852 1.54085 0.701155 +96.9668 2.31113 1.05167 +96.9409 3.08124 1.4021 +97.1075 3.85905 1.75603 +96.9669 4.62545 2.10478 +97.0187 5.40103 2.4577 +96.9632 6.17143 2.80827 +96.8007 6.93422 3.15537 +96.7305 7.70282 3.50512 +97.5488 8.54936 3.89033 +97.4631 9.32386 4.24276 +97.37 10.0976 4.59486 +97.3688 10.8818 4.95167 +97.1616 11.6429 5.29801 +97.0463 12.4142 5.64898 +96.9236 13.1845 5.9995 +96.6947 13.9396 6.3431 +97.2478 14.8123 6.74022 +96.2157 15.4418 7.02671 +96.9489 16.3548 7.44213 +96.7884 17.1242 7.79227 +96.6206 17.8924 8.1418 +96.4454 18.6591 8.4907 +96.2628 19.4244 8.83894 +96.0729 20.1883 9.18656 +96.7508 21.1418 9.62046 +96.5444 21.9095 9.96978 +96.3307 22.6755 10.3183 +96.979 23.6518 10.7626 +96.7485 24.4212 11.1127 +97.3758 25.4146 11.5647 +97.1284 26.1871 11.9162 +96.8737 26.9575 12.2669 +96.4208 27.6712 12.5916 +97.0078 28.6891 13.0548 +96.729 29.4586 13.4049 +97.2939 30.4925 13.8754 +96.9978 31.264 14.2265 +97.5401 32.3135 14.704 +97.3202 33.1188 15.0705 +97.7459 34.1515 15.5404 +97.5078 34.96 15.9083 +97.8179 35.9718 16.3688 +97.5617 36.7823 16.7375 +97.2974 37.5914 17.1057 +97.025 38.3991 17.4732 +97.4753 39.5014 17.9749 +97.0929 40.2742 18.3265 +96.8843 41.1207 18.7117 +97.1182 42.163 19.186 +97.4293 43.252 19.6815 +97.1004 44.0648 20.0514 +97.4761 45.2063 20.5708 +97.039 45.9788 20.9224 +97.2125 47.0469 21.4084 +96.7578 47.8173 21.759 +96.9953 48.937 22.2685 +97.3058 50.109 22.8018 +96.8216 50.8799 23.1526 +97.1056 52.0628 23.6908 +96.517 52.7852 24.0196 +96.7747 53.9779 24.5623 +96.8471 55.0821 25.0648 +96.231 55.8004 25.3916 +96.4471 57.0087 25.9415 +95.8969 57.7727 26.2891 +96.7487 59.3974 27.0284 +96.2579 60.2151 27.4005 +96.9876 61.8128 28.1275 +96.3913 62.5807 28.4769 +96.4348 63.7719 29.019 +96.6236 65.0769 29.6128 +96.3953 66.1158 30.0856 +96.4718 67.3776 30.6597 +96.6101 68.7017 31.2622 +96.4956 69.8631 31.7907 +96.5215 71.1423 32.3729 +96.5302 72.4274 32.9576 +96.3684 73.6009 33.4916 +96.4195 74.9546 34.1076 +96.3764 76.255 34.6993 +96.3157 77.5604 35.2934 +96.2373 78.8706 35.8896 +96.0672 80.124 36.4599 +95.9536 81.4427 37.06 +95.822 82.7655 37.6619 +96.1757 84.5351 38.4672 +95.7182 85.6148 38.9585 +94.328 85.8569 39.0686 +93.2209 86.3433 39.2899 +92.8758 87.5387 39.8339 +93.5474 89.7256 40.8291 +93.2292 90.9978 41.408 +92.8261 92.2046 41.9571 +93.143 94.1561 42.8451 +92.7005 95.3694 43.3972 +92.898 97.2699 44.262 +92.2866 98.3503 44.7537 +92.3686 100.195 45.5932 +92.0405 101.627 46.2447 +92.3842 103.84 47.2516 +92.0699 105.353 47.9403 +92.103 107.299 48.8259 +92.1665 109.327 49.7486 +91.9573 111.073 50.543 +91.8406 112.969 51.4058 +91.6357 114.799 52.2387 +91.5188 116.783 53.1412 +91.8296 119.369 54.3179 +91.7578 121.518 55.2962 +91.6517 123.676 56.2782 +91.4008 125.69 57.1943 +91.7172 128.549 58.4953 +91.5021 130.731 59.4885 +91.5171 133.305 60.6598 +91.9597 136.589 62.1537 +92.7584 140.512 63.9392 +93.5393 144.537 65.7707 +93.6 147.561 67.1466 +93.5112 150.438 68.4558 +93.4713 153.484 69.8417 +93.2368 156.3 71.1232 +93.0962 159.365 72.5181 +93.1347 162.843 74.1007 +92.8865 165.929 75.5048 +92.8538 169.511 77.135 +93.1539 173.842 79.1056 +92.7321 176.958 80.5234 +91.7504 179.089 81.4934 +90.9837 181.717 82.6891 +88.7093 181.351 82.5226 +88.602 185.471 84.3976 +92.3298 197.981 90.0901 +92.0736 202.323 92.0657 +89.3811 201.359 91.6271 +87.3006 201.722 91.7923 +85.1124 201.813 91.8337 +82.789 201.544 91.7111 +80.7852 202.022 91.929 +78.3445 201.37 91.632 +76.2155 201.468 91.6768 +74.2493 201.98 91.9095 +72.1246 202.042 91.9381 +69.854 201.652 91.7604 +67.6548 201.416 91.6532 +65.6643 201.771 91.8147 +63.4517 201.41 91.6503 +61.2778 201.117 91.5169 +59.3731 201.684 91.7749 +57.2118 201.355 91.6254 +55.0856 201.095 91.507 +53.2022 201.702 91.7832 +51.0414 201.231 91.5687 +49.1534 201.806 91.8304 +47.0296 201.387 91.6399 +45.097 201.753 91.8064 +43.0083 201.389 91.6407 +41.003 201.364 91.6296 +38.8625 200.607 91.285 +37.0202 201.357 91.6262 +34.9318 200.745 91.3475 +33.0206 201.104 91.5111 +31.0913 201.359 91.6271 +29.1596 201.598 91.736 +27.0916 200.828 91.3856 +25.1538 200.946 91.439 +23.2262 201.138 91.5264 +21.2107 200.499 91.2357 +19.2266 200.026 91.0203 +17.3081 200.17 91.0862 +15.3883 200.3 91.1454 +13.51 201.05 91.4867 +11.5662 200.877 91.408 +9.60063 200.144 91.0741 +7.67789 200.121 91.0638 +5.76678 200.448 91.2125 +3.83953 200.212 91.1052 +1.92071 200.327 91.1574 +1.34645e-14 200.152 91.0779 +-1.92333 200.6 91.2816 +-3.84826 200.667 91.3123 +-5.7694 200.538 91.2535 +-7.69534 200.576 91.2709 +-9.62244 200.598 91.2808 +-11.5348 200.332 91.1599 +-13.5161 201.141 91.5281 +-15.3743 200.118 91.0625 +-17.2924 199.989 91.0037 +-19.2963 200.751 91.3504 +-21.2298 200.68 91.3181 +-23.1531 200.504 91.2382 +-25.0858 200.403 91.1922 +-26.9697 199.924 90.9743 +-28.8854 199.703 90.8737 +-30.799 199.466 90.7656 +-32.7989 199.754 90.8969 +-34.7285 199.576 90.8157 +-36.8056 200.19 91.0953 +-38.602 199.263 90.6732 +-40.6567 199.664 90.8559 +-42.5695 199.334 90.7055 +-44.479 198.988 90.5481 +-46.5722 199.428 90.7486 +-48.6773 199.851 90.9408 +-50.659 199.722 90.8824 +-52.6653 199.667 90.8571 +-54.5292 199.064 90.5829 +-56.686 199.505 90.7834 +-58.8555 199.926 90.9752 +-60.8769 199.802 90.9184 +-62.7902 199.31 90.6948 +-65.0679 199.939 90.981 +-67.0116 199.501 90.7817 +-69.1924 199.742 90.8915 +-71.3829 199.965 90.9925 +-73.6147 200.253 91.1238 +-75.5318 199.661 90.8542 +-77.777 199.911 90.9681 +-79.9985 200.056 91.034 +-82.1587 200.009 91.0128 +-84.0373 199.265 90.674 +-86.311 199.436 90.7519 +-88.6694 199.755 90.8973 +-90.6577 199.212 90.65 +-92.8768 199.154 90.6239 +-95.2213 199.327 90.7026 +-97.7388 199.811 90.9226 +-100.065 199.855 90.9428 +-101.809 198.723 90.4276 +-104.571 199.549 90.8037 +-107.05 199.775 90.9064 +-109.318 199.569 90.8124 +-111.545 199.26 90.672 +-114.144 199.578 90.8165 +-116.429 199.306 90.6931 +-118.717 199.014 90.5601 +-121.396 199.337 90.7072 +-123.746 199.078 90.5891 +-126.15 198.876 90.4972 +-128.864 199.122 90.609 +-131.541 199.261 90.6724 +-136.32 202.477 92.1357 +-139.316 202.93 92.3419 +-142.277 203.274 92.4985 +-144.22 202.136 91.9808 +-143.338 197.112 89.6945 +-143.657 193.853 88.2118 +-144.943 191.955 87.3478 +-147.753 192.064 87.3975 +-151.215 192.958 87.8042 +-729.324 913.682 415.765 +-733.773 902.585 410.715 +-739.45 893.16 406.426 +-743.785 882.27 401.471 +-749.26 872.886 397.201 +-753.741 862.485 392.468 +-758.96 853.07 388.184 +-764.121 843.709 383.924 +-769.481 834.679 379.815 +-773.428 824.243 375.066 +-779.726 816.42 371.507 +-783.681 806.242 366.875 +-789.708 798.296 363.259 +-794.224 788.906 358.986 +-799.37 780.238 355.042 +-803.379 770.557 350.637 +-809.694 763.164 347.273 +-813.756 753.718 342.975 +-819.678 746.067 339.493 +-823.59 736.658 335.211 +-829.327 728.95 331.704 +-834.616 720.894 328.038 +-839.887 712.872 324.388 +-844.035 703.96 320.332 +-853.205 699.239 318.184 +-881.221 709.624 322.91 +-888.821 703.254 320.011 +-893.325 694.454 316.007 +-904.239 690.607 314.256 +-910.208 682.936 310.766 +-912.991 672.931 306.213 +-882.547 638.966 290.757 +-892.58 634.734 288.832 +-899.98 628.562 286.023 +-907.33 622.321 283.183 +-911.815 614.115 279.449 +-919.367 607.973 276.654 +-924.917 600.49 273.249 +-932.113 594.06 270.323 +-937.773 586.634 266.944 +-944.937 580.13 263.984 +-951.214 573.055 260.765 +-958.517 566.568 257.813 +-964.924 559.519 254.606 +-973.39 553.618 251.92 +-979.342 546.247 248.566 +-988.4 540.556 245.977 +-993.372 532.593 242.353 +-1001.56 526.321 239.499 +-1008.92 519.555 236.42 +-382.034 192.748 87.7085 +-382.461 189.01 86.0079 +-382.14 184.94 84.1557 +-380.616 180.343 82.0637 +-377.698 175.164 79.7074 +-381.332 173.051 78.7457 +-382.707 169.895 77.3097 +-381.974 165.83 75.46 +-383.006 162.559 73.9715 +-380.091 157.661 71.7428 +-136.758 55.4204 25.2187 +-384.156 152.035 69.1827 +-382.378 147.734 67.2253 +-381.562 143.855 65.4601 +-383.669 141.091 64.2026 +-1182.47 423.956 192.919 +-383.702 134.062 61.0039 +-380.757 129.575 58.962 +-380.294 125.986 57.3289 +-380.167 122.534 55.7584 +-379.909 119.065 54.1799 +-380.183 115.783 52.6864 +-379.947 112.365 51.1312 +-379.675 108.96 49.5817 +-379.844 105.701 48.0986 +-379.597 102.344 46.5711 +-379.218 98.9738 45.0374 +-378.418 95.5205 43.466 +-379.899 92.6525 42.1609 +-378.933 89.198 40.589 +-380.55 86.361 39.298 +-380.002 83.0375 37.7857 +-378.64 79.5657 36.2058 +-379.584 76.5945 34.8538 +-382.064 73.9173 33.6356 +-382.073 70.7528 32.1956 +-381.362 67.4722 30.7028 +-381.11 64.2912 29.2553 +-381.121 61.1668 27.8335 +-381.693 58.1373 26.455 +-382.235 55.1033 25.0744 +-379.881 51.6751 23.5144 +-382.045 48.8711 22.2385 +-380.219 45.5615 20.7325 +-381.435 42.6285 19.3978 +-379.942 39.4014 17.9293 +-380.703 36.4201 16.5727 +-379.843 33.2901 15.1485 +-380.148 30.2718 13.775 +-379.925 27.2156 12.3843 +-380.471 24.2158 11.0193 +-380.689 21.1929 9.64369 +-378.58 18.0588 8.21755 +-378.839 15.0551 6.85072 +-380.468 12.093 5.50286 +-379.67 9.04917 4.11776 +-146.078 2.32082 1.05607 +-145.094 1.15251 0.524441 +97.1 0 0 +97.0963 0.774386 0.343981 +96.9852 1.54711 0.687225 +96.9668 2.32053 1.03077 +97.0408 3.09695 1.37566 +97.1075 3.87473 1.72115 +96.9669 4.64425 2.06297 +96.9189 5.4174 2.4064 +96.8635 6.19013 2.74964 +96.8007 6.9624 3.09268 +97.6271 7.80582 3.46733 +97.6484 8.59287 3.81694 +97.4631 9.36176 4.15847 +97.4694 10.149 4.50816 +97.2695 10.9148 4.84835 +97.2607 11.7021 5.19803 +96.9472 12.4518 5.53107 +96.9236 13.238 5.88031 +96.6947 13.9962 6.21709 +96.3601 14.7367 6.54603 +97.102 15.6474 6.95056 +96.9489 16.4212 7.29428 +96.7884 17.1938 7.63747 +96.6206 17.9651 7.98005 +96.4454 18.7349 8.32202 +96.2628 19.5033 8.66335 +96.9498 20.4553 9.08623 +96.9453 21.2705 9.44829 +96.5444 21.9986 9.77171 +96.3307 22.7677 10.1134 +96.979 23.7479 10.5488 +96.7485 24.5204 10.8919 +96.5107 25.2911 11.2343 +97.1284 26.2935 11.6795 +96.8737 27.0671 12.0232 +97.2791 28.031 12.4513 +97.0078 28.8057 12.7954 +96.729 29.5783 13.1386 +97.2939 30.6164 13.5997 +96.9978 31.3911 13.9439 +97.5401 32.4448 14.4119 +97.2266 33.2215 14.7569 +97.7459 34.2903 15.2317 +97.4147 35.0686 15.5774 +97.9106 36.1523 16.0588 +97.6541 36.9667 16.4205 +97.2053 37.7084 16.75 +97.025 38.5551 17.1261 +97.4753 39.662 17.6178 +97.0929 40.4378 17.9624 +97.7 41.6354 18.4944 +97.1182 42.3344 18.8048 +97.5192 43.4679 19.3083 +97.1004 44.2439 19.6531 +97.4761 45.3901 20.1622 +97.6599 46.4611 20.6379 +97.2125 47.2381 20.9831 +96.7578 48.0117 21.3267 +96.9953 49.1359 21.8261 +96.5224 49.9076 22.1689 +96.8216 51.0867 22.6926 +97.1056 52.2744 23.2202 +96.517 52.9998 23.5424 +96.7747 54.1973 24.0743 +96.8471 55.306 24.5668 +96.99 56.4691 25.0835 +96.4471 57.2404 25.4261 +96.6474 58.4614 25.9684 +96.7487 59.6388 26.4914 +96.1755 60.4081 26.8332 +96.3323 61.6446 27.3824 +96.8797 63.1535 28.0527 +96.4348 64.0311 28.4425 +96.5432 65.287 29.0004 +96.3953 66.3845 29.4879 +96.5511 67.7071 30.0754 +96.5313 68.9246 30.6162 +96.4173 70.0901 31.1339 +95.8998 70.9714 31.5253 +96.4531 72.6636 32.277 +96.445 73.9588 32.8523 +96.3434 75.1999 33.4037 +95.6972 76.0254 33.7703 +96.2408 77.8152 34.5653 +96.2373 79.1912 35.1766 +96.0672 80.4496 35.7356 +95.9536 81.7737 36.3237 +95.822 83.1019 36.9137 +95.5283 84.3074 37.4492 +95.5756 85.8347 38.1276 +94.1866 86.0767 38.2351 +93.291 86.7594 38.5383 +93.3621 88.3547 39.247 +92.859 89.4274 39.7235 +93.161 91.3008 40.5556 +92.8937 92.647 41.1536 +93.0761 94.4703 41.9635 +92.7005 95.757 42.5351 +92.898 97.6652 43.3827 +92.2866 98.75 43.8646 +92.3686 100.602 44.6874 +92.4858 102.534 45.5452 +92.3213 104.19 46.2812 +92.1322 105.853 47.0196 +92.0414 107.664 47.8242 +91.9839 109.554 48.6637 +91.9573 111.524 49.5389 +91.9596 113.575 50.4499 +91.4594 115.044 51.1023 +91.1123 116.736 51.8541 +91.8869 119.929 53.2721 +91.7012 121.937 54.1643 +91.6517 124.179 55.1601 +91.456 126.277 56.0922 +91.1726 128.304 56.9926 +91.0186 130.569 57.9985 +91.5171 133.847 59.4547 +91.5417 136.52 60.6421 +92.7584 141.083 62.669 +93.5393 145.125 64.4641 +93.55 148.081 65.7774 +93.5112 151.049 67.0959 +93.4713 154.107 68.4542 +93.2368 156.935 69.7102 +93.0962 160.013 71.0775 +93.1809 163.586 72.6647 +93.3404 167.417 74.3665 +92.8984 170.282 75.6387 +92.8032 173.891 77.2422 +92.7321 177.677 78.9237 +91.7504 179.817 79.8744 +90.6519 181.79 80.7508 +88.6279 181.922 80.8093 +88.6818 186.393 82.7952 +92.3298 198.786 88.3003 +91.9206 202.808 90.0869 +89.3811 202.177 89.8068 +87.3006 202.542 89.9688 +85.1124 202.633 90.0094 +82.5439 201.764 89.6233 +80.8194 202.929 90.1409 +78.3111 202.102 89.7735 +76.1829 202.2 89.8169 +73.9954 202.107 89.7755 +72.0628 202.689 90.0341 +69.854 202.472 89.9375 +67.5963 202.06 89.7548 +65.4087 201.803 89.6403 +63.4793 202.317 89.8689 +61.2243 201.759 89.6209 +59.1143 201.621 89.5596 +57.2369 202.262 89.8445 +55.0856 201.912 89.6891 +52.9688 201.634 89.5652 +51.0414 202.048 89.7495 +48.937 201.734 89.6099 +47.0296 202.206 89.8194 +44.9176 201.767 89.6245 +43.0083 202.208 89.8202 +41.003 202.183 89.8092 +38.8972 201.603 89.5514 +36.9707 201.905 89.6858 +34.9475 201.651 89.573 +33.0058 201.831 89.6529 +30.9521 201.273 89.4049 +29.1334 202.236 89.8328 +27.1159 201.826 89.6509 +25.1538 201.762 89.6225 +23.1531 201.319 89.4256 +21.3065 202.224 89.8275 +19.244 201.02 89.2929 +17.2688 200.529 89.0745 +15.3953 201.205 89.3749 +13.4612 201.138 89.3452 +11.5139 200.781 89.1865 +9.60063 200.957 89.2648 +7.71279 201.847 89.6602 +5.77202 201.444 89.4812 +3.85524 201.848 89.6606 +1.92071 201.141 89.3464 +1.34829e-14 201.24 89.3903 +-1.92158 201.232 89.387 +-3.84651 201.391 89.4577 +-5.77202 201.444 89.4812 +-7.69534 201.391 89.4577 +-9.62244 201.413 89.4674 +-11.5453 201.329 89.4301 +-13.4612 201.138 89.3452 +-15.3813 201.023 89.2941 +-17.2924 200.802 89.1958 +-19.2178 200.747 89.1715 +-21.2298 201.496 89.5039 +-23.0694 200.592 89.1025 +-25.0858 201.218 89.3805 +-26.9697 200.737 89.167 +-29.016 201.421 89.4707 +-30.799 200.276 88.9624 +-32.7989 200.566 89.0911 +-34.7128 200.297 88.9713 +-36.6736 200.283 88.9653 +-38.6194 200.162 88.9117 +-40.6567 200.476 89.0509 +-42.5886 200.234 88.9433 +-44.6584 200.603 89.1073 +-46.593 200.329 88.9855 +-48.5258 200.039 88.8569 +-50.659 200.534 89.0769 +-52.6653 200.478 89.0521 +-54.7469 200.671 89.1378 +-56.7111 200.403 89.0188 +-58.6225 199.944 88.8146 +-60.9036 200.701 89.1512 +-62.7626 200.032 88.854 +-64.8691 200.138 88.9007 +-67.0408 200.4 89.0172 +-69.2525 200.729 89.1634 +-71.1048 199.995 88.8374 +-73.6147 201.067 89.3136 +-75.5969 200.645 89.126 +-77.6435 200.379 89.0079 +-79.7249 200.181 88.9202 +-82.1937 200.908 89.2429 +-84.0731 200.159 88.9104 +-86.4943 200.672 89.1382 +-88.3322 199.805 88.7529 +-90.6194 199.937 88.8118 +-92.9159 200.048 88.8609 +-95.2213 200.138 88.9007 +-97.6981 200.54 89.0793 +-100.024 200.584 89.0992 +-101.809 199.531 88.6312 +-104.184 199.618 88.6701 +-106.612 199.766 88.7355 +-109.318 200.38 89.0083 +-111.455 199.907 88.7984 +-114.144 200.389 89.0123 +-116.382 200.036 88.8556 +-118.622 199.662 88.6896 +-121.493 200.308 88.9762 +-123.697 199.808 88.7542 +-126.25 199.842 88.7696 +-128.813 199.851 88.7736 +-131.129 199.444 88.5926 +-135.902 202.676 90.0284 +-139.316 203.755 90.5075 +-142.277 204.1 90.6609 +-144.275 203.035 90.1876 +-143.338 197.913 87.9126 +-143.657 194.641 86.4593 +-144.943 192.735 85.6125 +-147.065 191.946 85.2622 +-150.75 193.146 85.7952 +-730.382 918.72 408.094 +-734.963 907.723 403.209 +-740.473 898.031 398.904 +-744.759 887.016 394.011 +-750.368 877.73 389.886 +-754.861 867.278 385.243 +-760.911 858.739 381.45 +-764.884 847.984 376.673 +-770.638 839.331 372.829 +-775.181 829.47 368.449 +-780.513 820.566 364.494 +-784.873 810.751 360.134 +-790.979 802.83 356.616 +-795.237 793.123 352.304 +-800.393 784.412 348.434 +-805.237 775.479 344.466 +-811.014 767.516 340.929 +-814.597 757.564 336.509 +-820.951 750.263 333.265 +-824.874 740.805 329.064 +-830.909 733.309 325.735 +-835.269 724.39 321.773 +-840.545 716.33 318.192 +-844.994 707.623 314.325 +-860.264 707.89 314.444 +-885.266 715.778 317.947 +-890.708 707.612 314.32 +-895.302 698.819 310.414 +-905.158 694.12 308.327 +-911.597 686.758 305.057 +-914.39 676.701 300.589 +-887.791 645.375 286.674 +-892.816 637.482 283.168 +-901.17 631.951 280.711 +-908.608 625.73 277.948 +-913.744 617.916 274.477 +-921.389 611.788 271.755 +-926.382 603.885 268.245 +-933.67 597.47 265.395 +-939.092 589.846 262.009 +-946.927 583.714 259.285 +-952.464 576.14 255.92 +-960.278 569.916 253.156 +-965.683 562.236 249.744 +-973.814 556.111 247.023 +-980.877 549.326 244.009 +-988.4 542.753 241.09 +-994.923 535.593 237.909 +-1003.38 529.419 235.167 +-1010.57 522.522 232.103 +-382.034 193.531 85.9661 +-382.637 189.866 84.3382 +-383.111 186.164 82.6937 +-382.39 181.92 80.8085 +-379.391 176.664 78.4739 +-380.795 173.509 77.0725 +-383.246 170.826 75.8807 +-382.516 166.741 74.0661 +-382.099 162.834 72.3306 +-382.912 159.477 70.8396 +-136.94 55.72 24.7507 +-383.056 152.216 67.6139 +-383.298 148.691 66.0481 +-382.948 144.964 64.3927 +-383.669 141.665 62.9272 +-1184.51 426.417 189.414 +-384.728 134.967 59.952 +-381.226 130.261 57.8617 +-380.482 126.56 56.2176 +-379.696 122.88 54.5829 +-379.531 119.431 53.0508 +-380.657 116.399 51.7043 +-379.376 112.653 50.0403 +-379.961 109.486 48.6333 +-379.557 106.05 47.1073 +-380.747 103.071 45.7839 +-379.794 99.5268 44.2096 +-378.418 95.9087 42.6025 +-379.029 92.8161 41.2287 +-379.998 89.8123 39.8945 +-380.065 86.6014 38.4682 +-379.613 83.2897 36.9971 +-380.492 80.2797 35.6601 +-379.974 76.985 34.1966 +-382.064 74.2177 32.9674 +-381.779 70.9856 31.5317 +-381.264 67.7289 30.0851 +-381.11 64.5525 28.6741 +-381.121 61.4154 27.2806 +-380.805 58.2379 25.8691 +-380.458 55.07 24.462 +-381.463 52.1013 23.1433 +-380.758 48.9044 21.7233 +-380.814 45.8182 20.3524 +-379.947 42.6347 18.9382 +-380.737 39.6443 17.6099 +-379.708 36.4726 16.2011 +-379.843 33.4254 14.8475 +-380.845 30.4506 13.5261 +-381.121 27.4122 12.1764 +-380.471 24.3143 10.8004 +-379.79 21.2289 9.42982 +-380.278 18.2135 8.09039 +-379.638 15.1482 6.72879 +-379.069 12.0976 5.37373 +-379.87 9.09073 4.03809 +-142.878 2.27921 1.01242 +-146.394 1.16756 0.518626 +97.1 0 0 +96.9963 0.776657 0.336634 +96.9852 1.55325 0.67324 +96.9668 2.32973 1.0098 +97.0408 3.10924 1.34767 +97.0076 3.8861 1.68439 +96.9669 4.66267 2.02099 +96.9189 5.43889 2.35743 +96.8635 6.21469 2.69369 +97.6979 7.0548 3.05783 +97.7267 7.84478 3.40023 +97.5488 8.61816 3.73545 +97.4631 9.39889 4.07385 +97.37 10.1789 4.41192 +97.2695 10.9581 4.74968 +97.1616 11.7366 5.08708 +96.9472 12.5012 5.41852 +96.8247 13.277 5.75476 +96.6947 14.0517 6.09057 +96.3601 14.7952 6.41282 +96.2157 15.5661 6.74696 +96.9489 16.4864 7.14584 +96.5921 17.227 7.46685 +96.4246 17.9997 7.80179 +96.4454 18.8093 8.15267 +96.2628 19.5807 8.48705 +96.9498 20.5365 8.90132 +96.7508 21.312 9.23745 +96.5444 22.0858 9.57286 +96.3307 22.858 9.90755 +96.979 23.8421 10.3341 +96.7485 24.6177 10.6703 +97.3758 25.6191 11.1043 +97.1284 26.3978 11.4418 +96.6824 27.1208 11.7552 +96.4208 27.8939 12.0903 +97.0078 28.92 12.535 +96.729 29.6956 12.8713 +96.4429 30.469 13.2065 +96.9978 31.5156 13.6601 +96.6004 32.2597 13.9826 +97.2266 33.3532 14.4566 +97.7459 34.4264 14.9217 +97.5078 35.2413 15.275 +97.9106 36.2957 15.732 +97.5617 37.0783 16.0712 +97.2974 37.8939 16.4247 +96.9332 38.6715 16.7617 +97.4753 39.8193 17.2592 +97.0929 40.5982 17.5969 +96.8843 41.4516 17.9668 +97.1182 42.5023 18.4222 +97.5192 43.6403 18.9154 +97.1004 44.4194 19.2531 +97.4761 45.5701 19.7519 +96.9503 46.3064 20.071 +96.5062 47.0809 20.4067 +96.7578 48.2021 20.8927 +96.9953 49.3308 21.3819 +97.3058 50.5122 21.894 +96.8216 51.2894 22.2308 +97.0194 52.4352 22.7275 +97.2885 53.6353 23.2476 +96.7747 54.4122 23.5844 +96.1687 55.1364 23.8983 +96.99 56.6931 24.573 +96.4471 57.4675 24.9087 +96.6474 58.6933 25.44 +96.7487 59.8753 25.9523 +96.8348 61.0634 26.4673 +96.2504 61.8365 26.8023 +96.2285 62.9778 27.297 +96.273 64.1772 27.8169 +96.5432 65.546 28.4102 +96.4752 66.7031 28.9117 +96.4718 67.9198 29.4391 +96.5313 69.198 29.9931 +96.4956 70.4253 30.5251 +96.5215 71.7148 31.084 +96.5302 73.0102 31.6455 +95.8322 73.7803 31.9793 +95.8112 75.0811 32.5431 +96.3009 76.8085 33.2918 +96.2408 78.1238 33.8619 +96.2373 79.5053 34.4607 +96.0672 80.7688 35.0083 +95.9536 82.0981 35.5845 +95.8945 83.4948 36.1899 +95.6003 84.7056 36.7147 +95.5756 86.1751 37.3517 +94.1866 86.4181 37.457 +93.291 87.1035 37.7541 +93.1537 88.5072 38.3625 +93.5474 90.4477 39.2036 +93.161 91.6629 39.7303 +92.8261 92.9466 40.2867 +93.0761 94.845 41.1095 +92.7005 96.1368 41.6695 +92.8324 97.9829 42.4696 +92.8061 99.6996 43.2137 +92.3686 101.002 43.778 +92.5494 103.011 44.649 +92.1325 104.39 45.2467 +92.1944 106.344 46.0938 +92.2261 108.308 46.9448 +92.1665 110.207 47.768 +91.8972 111.893 48.499 +91.8406 113.878 49.3592 +91.6945 115.797 50.1912 +91.5188 117.722 51.0255 +91.8296 120.329 52.1554 +91.7578 122.496 53.0947 +91.6517 124.672 54.0376 +91.456 126.778 54.9507 +91.7172 129.583 56.1664 +91.4484 131.705 57.0863 +91.1991 133.911 58.0423 +91.5417 137.062 59.408 +93.2219 142.351 61.7003 +93.5901 145.779 63.1865 +93.55 148.669 64.4388 +93.5112 151.649 65.7305 +93.4228 154.638 67.0261 +93.2845 157.638 68.3266 +93.1432 160.728 69.666 +93.227 164.316 71.221 +93.295 168 72.8177 +92.8984 170.957 74.0994 +92.8032 174.581 75.6703 +92.7751 178.464 77.3533 +91.4546 179.949 77.9968 +90.7349 182.678 79.1799 +88.9126 183.23 79.4189 +89.1603 188.142 81.5482 +92.3298 199.574 86.5034 +91.7675 203.273 88.1065 +89.4561 203.15 88.0532 +87.2273 203.175 88.0639 +84.6823 202.41 87.7322 +82.719 202.994 87.9856 +80.5115 202.959 87.9704 +78.3779 203.077 88.0214 +76.1178 202.829 87.914 +73.9954 202.909 87.9486 +71.7846 202.708 87.8615 +69.854 203.275 88.1073 +67.5671 202.774 87.8901 +65.4087 202.603 87.8161 +63.2588 202.414 87.7342 +61.251 202.647 87.8352 +59.166 202.599 87.8142 +56.9865 202.176 87.6308 +55.0856 202.713 87.8639 +52.9688 202.433 87.7426 +51.0414 202.85 87.9231 +48.937 202.534 87.7863 +46.8217 202.11 87.6026 +44.9375 202.657 87.8396 +42.8366 202.199 87.6408 +40.8208 202.083 87.5907 +38.8972 202.402 87.729 +36.9707 202.706 87.8607 +34.9162 202.269 87.6714 +32.9763 202.45 87.7497 +30.9521 202.071 87.5855 +29.0029 202.129 87.6105 +27.1159 202.627 87.8265 +25.0858 202.016 87.5616 +23.1635 202.209 87.6451 +21.2394 202.387 87.7223 +19.2527 201.909 87.5151 +17.2375 200.958 87.1031 +15.3255 201.088 87.1596 +13.4673 202.028 87.5668 +11.5139 201.577 87.3715 +9.5919 201.571 87.3687 +7.67091 201.548 87.3588 +5.74846 201.419 87.3027 +3.83953 201.823 87.4781 +1.92071 201.939 87.5282 +1.34401e-14 201.396 87.2928 +-1.92246 202.122 87.6078 +-3.83429 201.549 87.3592 +-5.74584 201.327 87.263 +-7.66742 201.456 87.319 +-9.6268 202.304 87.6865 +-11.4982 201.303 87.2526 +-13.4612 201.936 87.527 +-15.3743 201.729 87.4371 +-17.2924 201.598 87.3807 +-19.2091 201.452 87.317 +-21.1532 201.565 87.366 +-23.1531 202.118 87.6058 +-25.0745 201.924 87.5219 +-26.9941 201.716 87.4316 +-28.8985 201.401 87.2952 +-30.799 201.071 87.152 +-32.7841 201.271 87.2387 +-34.5877 200.366 86.8466 +-36.6736 201.077 87.1548 +-38.5499 200.595 86.9456 +-40.4927 200.459 86.8867 +-42.5886 201.028 87.1333 +-44.479 200.589 86.9432 +-46.4267 200.405 86.8633 +-48.5474 200.921 87.0872 +-50.4565 200.525 86.9154 +-52.4785 200.56 86.9305 +-54.626 201.022 87.1309 +-56.686 201.11 87.1691 +-58.6484 200.826 87.0458 +-60.6631 200.702 86.9921 +-62.8453 201.091 87.1608 +-65.1247 201.723 87.4348 +-67.0116 201.107 87.1675 +-69.012 200.825 87.0454 +-71.1357 200.875 87.0673 +-73.3608 201.168 87.1942 +-75.3039 200.66 86.9738 +-77.4432 200.655 86.9718 +-79.6907 200.889 87.0733 +-81.8785 200.931 87.0916 +-84.109 201.039 87.1381 +-86.311 201.041 87.1389 +-88.2948 200.512 86.9098 +-90.9256 201.409 87.2984 +-92.8768 200.757 87.016 +-95.301 201.099 87.1643 +-97.2914 200.497 86.903 +-99.9825 201.297 87.2498 +-101.893 200.488 86.8995 +-104.614 201.238 87.2244 +-106.524 200.393 86.8581 +-108.917 200.435 86.8764 +-111.545 200.864 87.0621 +-113.729 200.452 86.8836 +-115.913 200.019 86.6963 +-118.24 199.809 86.6052 +-121.154 200.54 86.9217 +-123.746 200.68 86.9826 +-125.95 200.159 86.7567 +-128.813 200.644 86.9671 +-131.232 200.392 86.8577 +-135.432 202.776 87.8909 +-138.839 203.863 88.3622 +-141.793 204.213 88.5141 +-144.493 204.147 88.4855 +-143.283 198.622 86.0906 +-143.601 195.337 84.6668 +-144.434 192.819 83.5752 +-147.122 192.782 83.5593 +-150.112 193.091 83.6933 +-733.027 925.714 401.241 +-736.51 913.241 395.834 +-742.76 904.378 391.993 +-746.768 892.937 387.034 +-753.2 884.537 383.393 +-757.102 873.303 378.524 +-763.303 864.855 374.862 +-766.347 852.975 369.713 +-773.531 845.823 366.613 +-776.545 834.225 361.586 +-783.072 826.521 358.247 +-786.928 816.098 353.729 +-793.254 808.333 350.363 +-797.129 798.164 345.955 +-803.462 790.543 342.652 +-806.889 780.153 338.149 +-813.375 772.804 334.964 +-816.699 762.532 330.511 +-824.204 756.224 327.777 +-827.085 745.737 323.231 +-834.146 739.086 320.349 +-836.937 728.717 315.854 +-843.47 721.675 312.802 +-846.689 711.856 308.546 +-876.911 724.45 314.005 +-890.583 722.933 313.348 +-895.312 714.09 309.515 +-897.127 703.021 304.717 +-909.065 699.881 303.356 +-912.215 689.949 299.051 +-914.701 679.616 294.572 +-896.008 653.932 283.44 +-892.816 640.011 277.406 +-903.312 635.966 275.653 +-910.764 629.703 272.938 +-915.271 621.404 269.341 +-924.059 615.994 266.996 +-928.662 607.773 263.433 +-936.209 601.472 260.702 +-941.317 593.589 257.285 +-949.248 587.466 254.631 +-954.799 579.843 251.327 +-963.8 574.275 248.913 +-968.045 565.846 245.26 +-977.121 560.213 242.818 +-982.412 552.368 239.418 +-992.257 547.033 237.105 +-997.508 539.114 233.673 +-1006.84 533.354 231.177 +-1011.88 525.273 227.674 +-380.809 193.676 83.9466 +-380.44 189.525 82.1475 +-382.316 186.514 80.8427 +-383.543 183.192 79.4026 +-377.787 176.615 76.552 +-379.81 173.747 75.3088 +-382.527 171.183 74.1973 +-383.599 167.876 72.764 +-383.006 163.867 71.0265 +-382.548 159.958 69.3319 +-136.666 55.8291 24.1985 +-137.467 54.8425 23.7709 +-383.298 149.281 64.704 +-381.562 145.012 62.854 +-382.278 141.711 61.4231 +-1188.33 429.487 186.156 +-1209.55 426.006 184.648 +-381.226 130.778 56.6842 +-379.636 126.779 54.9511 +-379.507 123.306 53.4459 +-380.855 120.323 52.1526 +-380.373 116.774 50.6143 +-380.898 113.553 49.2184 +-378.626 109.534 47.4761 +-380.322 106.686 46.2417 +-379.693 103.193 44.7281 +-378.929 99.6941 43.2113 +-379.285 96.5094 41.8309 +-379.319 93.2549 40.4203 +-378.933 89.9158 38.973 +-379.677 86.8561 37.6469 +-381.655 84.0699 36.4392 +-379.322 80.3504 34.827 +-379.584 77.2109 33.4662 +-382.064 74.5121 32.2965 +-381.877 71.2855 30.8979 +-380.381 67.8401 29.4045 +-381.601 64.8922 28.1268 +-381.022 61.6431 26.7186 +-380.114 58.3628 25.2967 +-381.05 55.3745 24.0015 +-380.969 52.2401 22.6429 +-380.362 49.0473 21.259 +-381.012 46.0239 19.9486 +-380.84 42.9044 18.5965 +-379.346 39.6561 17.1885 +-381.399 36.7804 15.942 +-379.644 33.5405 14.5378 +-381.742 30.6434 13.2821 +-380.723 27.4921 11.9162 +-381.269 24.4619 10.6028 +-378.493 21.2402 9.20635 +-379.579 18.2521 7.91119 +-379.638 15.2083 6.59186 +-378.569 12.1295 5.25741 +-380.869 9.15081 3.96632 +-144.978 2.32188 1.00639 +-146.394 1.17219 0.508072 +96.2 0 0 +97.0963 0.780466 0.329953 +96.9852 1.55926 0.6592 +96.9668 2.33875 0.988738 +97.0408 3.12127 1.31956 +97.1075 3.90516 1.65096 +96.9669 4.68071 1.97884 +96.9189 5.45993 2.30826 +96.7637 6.23231 2.6348 +97.5982 7.07488 2.99101 +97.6271 7.8671 3.32593 +97.6484 8.66034 3.66128 +96.6675 9.35826 3.95634 +97.37 10.2183 4.31992 +96.3762 10.8995 4.60791 +97.1616 11.782 4.98099 +97.9375 12.6778 5.35972 +96.8247 13.3284 5.63475 +96.6947 14.1061 5.96356 +97.2478 14.9892 6.33691 +97.102 15.7703 6.66712 +96.9489 16.5502 6.99682 +96.7884 17.3288 7.32601 +96.6206 18.1061 7.65462 +96.4454 18.882 7.98265 +96.2628 19.6565 8.31005 +96.9498 20.616 8.71569 +96.7508 21.3944 9.0448 +96.5444 22.1713 9.37322 +97.202 23.1541 9.78871 +96.979 23.9344 10.1186 +96.7485 24.713 10.4478 +97.3758 25.7182 10.8727 +97.1284 26.4999 11.2032 +96.6824 27.2257 11.5101 +96.6115 28.0572 11.8616 +97.198 29.0888 12.2977 +96.729 29.8105 12.6028 +97.2939 30.8568 13.0451 +96.9035 31.6068 13.3622 +97.6341 32.7311 13.8375 +97.2266 33.4823 14.1551 +97.7459 34.5596 14.6106 +97.4147 35.344 14.9422 +97.0761 36.1256 15.2726 +97.5617 37.2218 15.736 +97.2974 38.0405 16.0822 +96.9332 38.8211 16.4122 +97.4753 39.9734 16.8993 +97.0929 40.7553 17.2299 +97.7 41.9623 17.7402 +97.2987 42.7461 18.0715 +96.89 43.5265 18.4014 +97.1004 44.5913 18.8516 +96.6742 45.3701 19.1809 +97.039 46.5282 19.6704 +97.2125 47.609 20.1274 +96.7578 48.3886 20.457 +96.9953 49.5217 20.936 +96.6095 50.3448 21.284 +96.8216 51.4878 21.7672 +97.1056 52.6849 22.2733 +97.2885 53.8428 22.7628 +96.7747 54.6228 23.0926 +96.7623 55.6914 23.5443 +96.3153 56.5165 23.8932 +96.3632 57.6397 24.368 +96.6474 58.9204 24.9094 +96.7487 60.107 25.4111 +96.1755 60.8824 25.7389 +96.8238 62.4455 26.3997 +96.3913 63.3284 26.773 +96.4348 64.5339 27.2826 +96.3824 65.6901 27.7714 +96.4752 66.9612 28.3088 +96.4718 68.1826 28.8252 +96.5313 69.4658 29.3676 +96.4956 70.6978 29.8885 +96.5215 71.9924 30.4358 +96.4531 73.2341 30.9608 +96.445 74.5395 31.5126 +95.7351 75.3118 31.8391 +96.3009 77.1057 32.5975 +95.6416 77.9379 32.9493 +96.2373 79.813 33.7421 +96.141 81.1436 34.3046 +95.8805 82.3529 34.8159 +95.8945 83.8179 35.4352 +95.8161 85.2253 36.0302 +95.5042 86.4441 36.5455 +93.4088 86.0361 36.373 +93.2209 87.3749 36.939 +93.1537 88.8497 37.5625 +92.7902 90.0627 38.0753 +93.0928 91.9503 38.8733 +92.8261 93.3063 39.4466 +93.0092 95.1438 40.2234 +92.7005 96.5089 40.8005 +92.898 98.4321 41.6135 +92.7412 100.015 42.2829 +92.3686 101.392 42.8651 +92.4858 103.339 43.6879 +92.5101 105.223 44.4846 +92.4434 107.044 45.2544 +92.1645 108.654 45.9351 +91.9839 110.414 46.6792 +91.9573 112.4 47.5187 +91.8406 114.319 48.3298 +91.6945 116.246 49.1445 +91.5188 118.178 49.9614 +91.4281 120.267 50.8446 +91.7578 122.97 51.9874 +91.6517 125.154 52.9107 +91.4008 127.192 53.772 +91.1181 129.235 54.6361 +91.4484 132.215 55.8958 +91.5171 134.898 57.0301 +91.4895 137.513 58.1356 +93.8914 143.928 60.8477 +93.5901 146.343 61.8687 +93.5 149.165 63.0615 +93.462 152.155 64.3258 +93.4228 155.236 65.6284 +93.714 158.977 67.2097 +93.0962 161.269 68.1789 +93.227 164.952 69.7357 +93.295 168.65 71.2991 +92.8091 171.454 72.4844 +92.8032 175.257 74.0923 +92.8612 179.321 75.8107 +91.4546 180.645 76.3702 +90.5275 182.966 77.3515 +88.3839 182.844 77.3001 +89.6787 189.968 80.3117 +92.3688 200.431 84.7352 +91.691 203.89 86.1974 +89.1189 203.167 85.8917 +86.8241 203.019 85.829 +84.6107 203.021 85.8298 +82.5439 203.348 85.9684 +80.3405 203.312 85.9529 +78.4112 203.949 86.2223 +75.9551 203.178 85.8964 +73.9954 203.694 86.1145 +71.6919 203.23 85.9182 +69.5232 203.095 85.8614 +67.304 202.765 85.7219 +65.1815 202.681 85.6861 +63.2588 203.197 85.9046 +61.0372 202.721 85.7033 +59.1402 203.293 85.9451 +56.9865 202.958 85.8033 +54.8195 202.515 85.616 +52.9454 203.126 85.8746 +50.8839 203.007 85.824 +48.8937 203.138 85.8793 +46.8217 202.893 85.7757 +44.9575 203.532 86.0459 +42.8366 202.981 85.8131 +40.839 202.955 85.8022 +38.7409 202.369 85.5545 +36.8386 202.764 85.7212 +34.8067 202.415 85.574 +32.9467 203.052 85.8431 +30.8268 202.031 85.4116 +28.9116 202.272 85.5132 +26.9209 201.947 85.3762 +25.0858 202.798 85.7356 +23.0903 202.35 85.5463 +21.249 203.261 85.9314 +19.2614 202.782 85.729 +17.2924 202.379 85.5584 +15.3464 202.142 85.4583 +13.4185 202.074 85.4295 +11.4668 201.53 85.1998 +9.5919 202.351 85.5467 +7.64299 201.592 85.2259 +5.74846 202.198 85.4821 +3.82033 201.592 85.2259 +1.92071 202.72 85.7029 +1.34278e-14 201.991 85.3945 +-1.91286 201.891 85.3524 +-3.81684 201.408 85.148 +-5.74846 202.198 85.4821 +-7.67091 202.328 85.537 +-9.58754 202.259 85.5078 +-11.5034 202.174 85.472 +-13.4002 201.798 85.3131 +-15.3115 201.682 85.264 +-17.2924 202.379 85.5584 +-19.122 201.314 85.1083 +-21.1436 202.252 85.5051 +-23.0381 201.892 85.3528 +-25.0519 202.522 85.6191 +-26.86 201.491 85.183 +-28.8854 202.089 85.4361 +-30.799 201.849 85.3345 +-32.6807 201.411 85.1495 +-34.5877 201.142 85.0354 +-36.6736 201.855 85.3372 +-38.4457 200.827 84.9023 +-40.4927 201.235 85.0748 +-42.4168 200.992 84.9724 +-44.4989 201.456 85.1682 +-46.4267 201.18 85.0518 +-48.3743 200.979 84.9669 +-50.2766 200.583 84.7995 +-52.4085 201.067 85.0039 +-54.3598 200.816 84.898 +-56.5358 201.353 85.125 +-58.6484 201.603 85.2305 +-60.7166 201.656 85.2531 +-62.7075 201.426 85.1558 +-64.8123 201.533 85.2009 +-66.7777 201.18 85.0518 +-68.9819 201.515 85.1931 +-70.8576 200.864 84.9182 +-73.2974 201.772 85.3022 +-75.3039 201.436 85.1601 +-77.51 201.605 85.2313 +-79.7249 201.753 85.294 +-81.8435 201.622 85.2387 +-83.7864 201.043 84.9938 +-86.311 201.819 85.3217 +-88.1824 201.032 84.9891 +-90.6194 201.507 85.19 +-92.4861 200.686 84.8427 +-94.8624 200.949 84.9541 +-97.088 200.851 84.9128 +-99.5264 201.154 85.0405 +-101.724 200.93 84.9459 +-104.184 201.186 85.0541 +-106.13 200.423 84.7317 +-108.917 201.211 85.0646 +-111.182 200.984 84.9689 +-113.498 200.818 84.8988 +-115.631 200.305 84.6819 +-118.383 200.826 84.9019 +-120.718 200.591 84.8026 +-123.5 201.056 84.9992 +-125.75 200.614 84.8123 +-128.407 200.786 84.8851 +-130.717 200.378 84.7126 +-134.596 202.304 85.5269 +-138.362 203.948 86.2219 +-141.256 204.227 86.3399 +-144.111 204.397 86.4116 +-143.448 199.621 84.3926 +-143.601 196.093 82.9012 +-144.434 193.565 81.8323 +-146.606 192.849 81.5297 +-150.054 193.763 81.916 +-736.495 933.689 394.73 +-740.197 921.365 389.52 +-746.371 912.291 385.684 +-750.177 900.484 380.692 +-757.695 893.259 377.638 +-760.588 880.719 372.337 +-767.582 873.069 369.102 +-769.655 859.972 363.565 +-777.194 853.118 360.668 +-780.377 841.586 355.792 +-787.927 834.864 352.951 +-789.777 822.221 347.606 +-797.671 815.979 344.967 +-799.629 803.764 339.803 +-807.213 797.306 337.073 +-810.469 786.646 332.566 +-817.057 779.306 329.463 +-819.363 767.979 324.674 +-827.527 762.211 322.235 +-830.081 751.334 317.637 +-837.168 744.633 314.804 +-841.144 735.213 310.822 +-847.785 728.173 307.845 +-852.809 719.775 304.295 +-886.869 735.512 310.948 +-895.302 729.576 308.439 +-902.784 722.836 305.589 +-905.035 711.963 300.992 +-913.585 706.083 298.506 +-914.144 694.084 293.434 +-913.924 681.667 288.184 +-910.799 667.3 282.111 +-900.617 648.102 273.994 +-904.978 639.604 270.402 +-915.875 635.687 268.746 +-919.693 626.823 264.998 +-928.347 621.247 262.641 +-932.732 612.798 259.069 +-940.96 606.863 256.56 +-945.85 598.755 253.132 +-954.305 592.881 250.649 +-957.885 583.968 246.881 +-969.084 579.657 245.058 +-973.021 570.956 241.38 +-983.312 565.944 239.261 +-987.016 557.104 235.524 +-997.057 551.806 233.284 +-1001.99 543.631 229.828 +-1012.56 538.458 227.641 +-1017.62 530.299 224.191 +-382.821 195.452 82.6301 +-382.022 191.049 80.7688 +-382.316 187.236 79.1567 +-383.1 183.688 77.6568 +-378.321 177.549 75.0615 +-381.421 175.16 74.0514 +-383.336 172.208 72.8034 +-383.057 168.288 71.1461 +-383.278 164.618 69.5947 +-382.184 160.424 67.8214 +-136.575 56.0076 23.678 +-134.441 53.8427 22.7627 +-383.298 149.858 63.3547 +-382.024 145.75 61.618 +-382.927 142.502 60.2446 +-1196.24 434.019 183.488 +-1221.87 432.012 182.639 +-381.226 131.284 55.5021 +-379.918 127.365 53.8452 +-379.507 123.784 52.3313 +-380.193 120.578 50.9762 +-380.657 117.313 49.5958 +-380.232 113.794 48.1079 +-380.438 110.484 46.7088 +-379.844 106.964 45.2205 +-380.076 103.698 43.8397 +-378.16 99.8772 42.2245 +-379.863 97.0302 41.0209 +-380.092 93.8064 39.658 +-379.708 90.4482 38.2383 +-379.677 87.1922 36.8618 +-381.363 84.3307 35.652 +-378.933 80.5785 34.0657 +-378.705 77.3302 32.6925 +-382.064 74.8004 31.6229 +-381.191 71.4328 30.1992 +-380.97 68.208 28.8359 +-380.126 64.8915 27.4338 +-379.939 61.7057 26.087 +-381.594 58.8167 24.8656 +-380.458 55.5024 23.4644 +-380.672 52.4014 22.1534 +-380.362 49.2371 20.8157 +-380.517 46.142 19.5072 +-379.45 42.9132 18.1422 +-381.333 40.0181 16.9182 +-381.399 36.9227 15.6096 +-380.54 33.7497 14.2682 +-378.952 30.5372 12.91 +-378.829 27.4613 11.6096 +-380.471 24.5052 10.3599 +-381.587 21.4968 9.08807 +-379.18 18.3035 7.73807 +-378.739 15.2309 6.43909 +-379.269 12.199 5.15731 +-380.47 9.17658 3.87953 +-146.078 2.34855 0.992881 +-145.494 1.16949 0.49442 +97.1 0 0 +97.0963 0.783411 0.322899 +96.9852 1.56515 0.645106 +97.0667 2.34999 0.968597 +96.9409 3.12982 1.29002 +97.1075 3.91989 1.61566 +96.9669 4.69838 1.93653 +97.0187 5.48618 2.26124 +96.8635 6.26227 2.58112 +96.8007 7.04354 2.90314 +97.5275 7.88874 3.2515 +97.5488 8.68415 3.57935 +96.6675 9.39357 3.87175 +97.37 10.2568 4.22756 +96.4755 10.9519 4.51405 +97.2607 11.8384 4.87945 +97.0463 12.6099 5.19742 +96.9236 13.3923 5.51992 +96.6947 14.1593 5.83606 +96.3601 14.9085 6.14484 +97.102 15.8298 6.52457 +96.9489 16.6126 6.84723 +96.7884 17.3942 7.16938 +96.6206 18.1744 7.49097 +96.4454 18.9533 7.81198 +96.2628 19.7306 8.13239 +96.9498 20.6937 8.52935 +96.7508 21.4752 8.85143 +96.5444 22.2549 9.17282 +97.202 23.2414 9.57942 +96.979 24.0247 9.90227 +96.7485 24.8062 10.2244 +96.5107 25.5859 10.5457 +97.1284 26.5999 10.9637 +96.6824 27.3285 11.264 +96.6115 28.1631 11.608 +97.0078 29.1414 12.0112 +96.9187 29.9816 12.3575 +97.2939 30.9732 12.7662 +96.9035 31.7261 13.0765 +97.6341 32.8546 13.5417 +97.3202 33.641 13.8658 +97.7459 34.69 14.2982 +97.4147 35.4773 14.6227 +97.9106 36.5737 15.0746 +97.5617 37.3622 15.3996 +97.2974 38.184 15.7383 +97.025 39.0045 16.0765 +97.4753 40.1242 16.538 +97.2749 40.9858 16.8931 +97.5187 42.0425 17.3287 +97.2987 42.9073 17.6851 +97.5192 43.9745 18.125 +97.2794 44.8421 18.4826 +96.5851 45.4993 18.7535 +97.039 46.7037 19.2499 +97.2125 47.7887 19.6971 +96.7578 48.5712 20.0196 +96.9953 49.7086 20.4884 +97.3058 50.899 20.9791 +96.8216 51.6821 21.3018 +97.0194 52.8367 21.7777 +97.2028 53.9984 22.2565 +96.6894 54.7806 22.5789 +96.8471 55.9506 23.0612 +96.231 56.6801 23.3619 +96.4471 57.9076 23.8678 +96.564 59.0917 24.3558 +96.8316 60.3855 24.8891 +96.1755 61.1121 25.1886 +96.2504 62.31 25.6823 +96.4727 63.6211 26.2227 +96.4348 64.7774 26.6993 +96.5432 66.0479 27.223 +96.3953 67.1582 27.6806 +96.5511 68.4962 28.2321 +96.6101 69.7848 28.7632 +95.9478 70.5616 29.0834 +96.5215 72.264 29.7851 +95.8358 73.04 30.1049 +95.7556 74.2859 30.6184 +96.4195 76.1364 31.3811 +96.3764 77.4573 31.9256 +96.3157 78.7832 32.4721 +96.2373 80.1141 33.0207 +95.4774 80.8875 33.3394 +95.9536 82.7267 34.0975 +96.0396 84.2614 34.73 +95.8161 85.5469 35.2599 +94.791 86.1222 35.497 +93.4088 86.3607 35.5953 +93.291 87.7705 36.1764 +93.1537 89.1849 36.7594 +92.7902 90.4026 37.2613 +93.161 92.3648 38.07 +93.3666 94.2038 38.828 +93.143 95.6406 39.4202 +92.7005 96.873 39.9282 +92.8324 98.7332 40.6949 +92.2866 99.9009 41.1762 +92.3686 101.775 41.9486 +92.4858 103.729 42.7538 +92.4472 105.549 43.5041 +92.0699 107.014 44.1081 +92.103 108.991 44.9229 +91.8012 110.611 45.5905 +92.2582 113.193 46.6548 +91.8406 114.75 47.2966 +91.6945 116.684 48.0938 +91.693 118.849 48.9862 +91.4854 120.797 49.7888 +91.4746 123.053 50.7189 +91.6517 125.626 51.7795 +91.4008 127.671 52.6224 +91.1726 129.8 53.4996 +91.5021 132.793 54.7331 +91.729 135.721 55.94 +91.6462 138.269 56.9902 +93.9944 144.63 59.612 +93.4886 146.737 60.4804 +93.5 149.727 61.7132 +93.462 152.729 62.9505 +93.4228 155.822 64.2252 +93.714 159.577 65.7728 +93.0962 161.878 66.7212 +93.1809 165.493 68.2112 +93.2496 169.204 69.7408 +92.8091 172.101 70.9347 +92.7593 175.835 72.4739 +92.6029 179.497 73.9833 +90.9052 180.237 74.2885 +90.2372 183.068 75.455 +88.6279 184.042 75.8566 +91.2737 194.076 79.9924 +92.3688 201.188 82.9236 +91.3083 203.805 84.0024 +88.7068 202.991 83.6667 +87.0807 204.387 84.2421 +84.5032 203.528 83.8881 +82.5089 204.029 84.0946 +79.9985 203.21 83.757 +77.777 203.063 83.6964 +75.6295 203.071 83.6998 +73.7099 203.674 83.9483 +71.2284 202.678 83.5379 +69.5533 203.95 84.0622 +67.2747 203.443 83.853 +65.1247 203.268 83.781 +63.0107 203.163 83.7379 +61.0907 203.665 83.9445 +58.8813 203.167 83.7395 +56.9615 203.635 83.9323 +54.7953 203.189 83.7486 +52.7587 203.175 83.7425 +50.614 202.691 83.5432 +48.6773 203.002 83.6712 +46.6346 202.844 83.6065 +44.6784 203.031 83.6834 +42.6267 202.749 83.5672 +40.7114 203.085 83.7055 +38.7756 203.315 83.8004 +36.7231 202.891 83.6255 +34.6815 202.449 83.4434 +32.8728 203.36 83.8191 +30.8408 202.885 83.6232 +28.9246 203.126 83.7227 +26.8966 202.526 83.4754 +24.9839 202.735 83.5615 +23.0694 202.93 83.6415 +21.134 202.924 83.6392 +19.1655 202.534 83.4784 +17.1982 202.035 83.273 +15.2697 201.89 83.2132 +13.4185 202.836 83.603 +11.4773 202.475 83.454 +9.56137 202.467 83.451 +7.62903 201.983 83.2513 +5.72752 202.221 83.3496 +3.82033 202.353 83.4037 +1.90588 201.913 83.2227 +1.33666e-14 201.828 83.1877 +-1.91373 202.746 83.5657 +-3.81859 202.26 83.3656 +-5.73013 202.314 83.3877 +-7.63601 202.168 83.3275 +-9.54392 202.098 83.2989 +-11.4406 201.828 83.1877 +-13.3513 201.821 83.1846 +-15.2488 201.614 83.0993 +-17.1982 202.035 83.273 +-19.0522 201.337 82.9849 +-21.0381 202.003 83.2597 +-22.944 201.827 83.1869 +-24.9613 202.552 83.486 +-26.8844 202.435 83.4377 +-28.781 202.119 83.3073 +-30.6738 201.787 83.1705 +-32.5476 201.349 82.9899 +-34.4469 201.079 82.8786 +-36.525 201.796 83.1743 +-38.411 201.402 83.012 +-40.3469 201.267 82.9564 +-42.3787 201.569 83.0806 +-44.3594 201.582 83.0859 +-46.2188 201.035 82.8607 +-48.2877 201.377 83.0017 +-50.1866 200.98 82.8378 +-52.175 200.927 82.8161 +-54.3115 201.395 83.0089 +-56.2604 201.129 82.8992 +-58.3896 201.471 83.0402 +-60.5028 201.705 83.1366 +-62.4319 201.298 82.9689 +-64.7839 202.205 83.3428 +-66.5438 201.232 82.9419 +-68.6211 201.216 82.9354 +-70.8885 201.71 83.1389 +-72.7897 201.13 82.9 +-74.8807 201.06 82.871 +-77.2095 201.582 83.0859 +-79.3829 201.646 83.1126 +-81.5983 201.778 83.1667 +-83.4281 200.939 82.8211 +-85.9445 201.72 83.1431 +-87.8078 200.933 82.8188 +-90.275 201.498 83.0516 +-92.4861 201.443 83.0288 +-94.8624 201.707 83.1377 +-96.6406 200.68 82.7144 +-99.2361 201.324 82.9796 +-101.386 201.018 82.8535 +-103.71 201.027 82.8573 +-106.261 201.429 83.023 +-108.828 201.804 83.1778 +-110.819 201.084 82.8809 +-113.544 201.658 83.1176 +-115.725 201.225 82.9388 +-118.001 200.933 82.8184 +-120.281 200.62 82.6896 +-123.401 201.654 83.1156 +-125.2 200.491 82.6363 +-127.9 200.748 82.7422 +-130.253 200.421 82.6077 +-133.394 201.254 82.951 +-137.885 204.012 84.0878 +-140.772 204.296 84.2047 +-143.785 204.703 84.3724 +-143.504 200.451 82.6199 +-143.713 196.987 81.192 +-144.377 194.219 80.0515 +-146.09 192.895 79.5058 +-149.763 194.118 80.0095 +-741.609 943.721 388.974 +-744.54 930.269 383.429 +-752.148 922.822 380.36 +-753.951 908.429 374.428 +-762.066 901.802 371.696 +-764.572 888.673 366.284 +-772.554 882.039 363.55 +-774.68 868.853 358.115 +-782.851 862.57 355.526 +-785.507 850.315 350.475 +-792.322 842.689 347.332 +-794.813 830.586 342.343 +-802.823 824.348 339.772 +-805.168 812.387 334.842 +-812.806 805.859 332.151 +-814.736 793.772 327.169 +-822.823 787.767 324.694 +-825.531 776.68 320.124 +-833.042 770.186 317.448 +-835.145 758.77 312.743 +-842.922 752.581 310.192 +-844.844 741.234 305.514 +-865.411 746.117 307.527 +-883.479 748.475 308.499 +-893.037 743.422 306.416 +-901.144 737.107 303.814 +-910.255 731.568 301.531 +-910.51 718.972 296.339 +-915.347 710.113 292.688 +-914.221 696.761 287.184 +-911.126 682.144 281.159 +-909.547 668.897 275.699 +-910.546 657.719 271.092 +-910.294 645.789 266.175 +-922.424 642.648 264.881 +-925.239 632.982 260.896 +-935.547 628.428 259.019 +-938.105 618.654 254.991 +-948.332 613.925 253.042 +-951.866 604.837 249.296 +-962.43 600.185 247.378 +-965.139 590.611 243.432 +-975.542 585.722 241.417 +-979.515 576.935 237.796 +-990.181 572.048 235.781 +-993.667 562.975 232.041 +-1004.51 558.031 230.004 +-1008.54 549.249 226.384 +-1020.09 544.511 224.431 +-1024.41 535.851 220.862 +-380.547 195.025 80.3834 +-381.67 191.594 78.9692 +-383.641 188.594 77.7326 +-382.036 183.869 75.7854 +-377.876 178.009 73.3702 +-380.168 175.243 72.23 +-382.257 172.371 71.0464 +-382.516 168.684 69.5267 +-382.371 164.849 67.946 +-382.821 161.297 66.4819 +-134.931 55.5421 22.8928 +-137.192 55.1519 22.732 +-382.378 150.063 61.8515 +-382.117 146.335 60.3151 +-382.092 142.727 58.8277 +-385.937 140.554 57.9322 +-1236.15 438.711 180.824 +-382.069 132.071 54.4359 +-380.482 128.035 52.7722 +-380.45 124.559 51.3393 +-380.004 120.973 49.8615 +-381.511 118.02 48.6444 +-379.947 114.137 47.0439 +-381.01 111.068 45.7787 +-380.514 107.557 44.3318 +-378.926 103.774 42.7725 +-379.218 100.534 41.4372 +-379.863 97.3963 40.1439 +-380.092 94.1604 38.8101 +-380.385 90.9516 37.4875 +-379.677 87.5212 36.0736 +-380.877 84.541 34.8453 +-379.615 81.028 33.3974 +-378.705 77.622 31.9935 +-382.064 75.0827 30.9468 +-381.485 71.7576 29.5764 +-381.853 68.6242 28.2848 +-381.7 65.4059 26.9584 +-379.84 61.9225 25.5226 +-381.397 59.0081 24.3214 +-380.951 55.7841 22.9926 +-380.672 52.5991 21.6798 +-381.154 49.5258 20.4131 +-380.814 46.3522 19.105 +-380.542 43.1991 17.8054 +-380.637 40.0959 16.5263 +-379.708 36.8977 15.2081 +-381.734 33.9834 14.0069 +-381.742 30.8781 12.727 +-381.022 27.7245 11.4272 +-381.369 24.6557 10.1623 +-379.291 21.448 8.84022 +-380.578 18.4403 7.60053 +-379.339 15.3126 6.3114 +-379.469 12.2514 5.04968 +-379.57 9.18942 3.78761 +-144.978 2.33966 0.964337 +-147.794 1.19246 0.491497 diff --git a/dat/scan000.pose b/dat/scan000.pose new file mode 100644 index 0000000..a84bd27 --- /dev/null +++ b/dat/scan000.pose @@ -0,0 +1,3 @@ +0 0 0 +-0 0 -0 + diff --git a/dat/scan001.3d b/dat/scan001.3d new file mode 100644 index 0000000..854aed0 --- /dev/null +++ b/dat/scan001.3d @@ -0,0 +1,81361 @@ +360 x 225 +10.2 0 2.84217e-14 +10.9996 -0.0721153 0.0633548 +10.9983 -0.144225 0.126704 +10.9962 -0.216324 0.190045 +11.8928 -0.312003 0.274101 +12.4881 -0.409621 0.359861 +12.1833 -0.479681 0.42141 +12.7761 -0.587054 0.515739 +12.6691 -0.66555 0.5847 +13.7575 -0.813424 0.71461 +13.349 -0.877394 0.770809 +14.5328 -1.05128 0.923573 +15.1167 -1.19363 1.04863 +15.2016 -1.3012 1.14313 +17.3696 -1.60223 1.40759 +31.4288 -3.10849 2.73088 +35.4516 -3.7431 3.28839 +41.242 -4.63053 4.06802 +41.6804 -4.95949 4.35702 +42.8048 -5.38136 4.72764 +47.8617 -6.34014 5.56995 +59.6836 -8.31026 7.30074 +114.654 -16.743 14.7091 +116.807 -17.8536 15.6847 +116.986 -18.6811 16.4117 +117.937 -19.6425 17.2563 +118.873 -20.6177 18.1131 +119.504 -21.5541 18.9357 +119.346 -22.3549 19.6393 +119.566 -23.2305 20.4085 +119.871 -24.1302 21.1989 +119.972 -24.9955 21.959 +120.542 -25.9674 22.8129 +120.332 -26.778 23.525 +120.877 -27.7636 24.3909 +120.264 -28.4872 25.0266 +120.404 -29.3907 25.8203 +120.911 -30.3934 26.7012 +120.27 -31.1116 27.3322 +120.375 -32.0242 28.134 +119.999 -32.8122 28.8262 +120.175 -33.7555 29.6549 +120.525 -34.7575 30.5352 +120.117 -35.5463 31.2282 +119.792 -36.3606 31.9436 +120.012 -37.3458 32.8091 +120.034 -38.2779 33.6279 +118.576 -38.7339 34.0286 +116.751 -39.0514 34.3075 +115.11 -39.4103 34.6228 +112.201 -39.3062 34.5314 +110.837 -39.7169 34.8922 +107.945 -39.5529 34.748 +105.602 -39.555 34.7499 +102.198 -39.1204 34.3681 +99.8774 -39.0604 34.3154 +96.5062 -38.5498 33.8668 +94.385 -38.5 33.823 +92.7097 -38.6073 33.9174 +91.2133 -38.7697 34.06 +88.8542 -38.5399 33.8581 +87.9723 -38.9303 34.2011 +85.9739 -38.809 34.0946 +84.0703 -38.7039 34.0022 +82.3455 -38.6564 33.9605 +81.1343 -38.8315 34.1143 +79.2544 -38.6664 33.9692 +78.3019 -38.9357 34.2058 +76.8518 -38.9434 34.2126 +74.9131 -38.6798 33.981 +73.9694 -38.911 34.1841 +72.2935 -38.74 34.0339 +70.3036 -38.3734 33.7119 +68.9709 -38.3414 33.6837 +68.4431 -38.7468 34.0399 +66.6417 -38.4166 33.7498 +65.4837 -38.4358 33.7667 +65.0347 -38.8636 34.1425 +63.1043 -38.3902 33.7266 +62.6559 -38.8025 34.0888 +60.7473 -38.2943 33.6423 +59.6919 -38.3007 33.648 +58.5655 -38.247 33.6008 +58.1939 -38.6793 33.9806 +56.7763 -38.4058 33.7403 +55.6644 -38.3198 33.6648 +54.4859 -38.1709 33.534 +54.0404 -38.5266 33.8465 +52.296 -37.9401 33.3312 +51.9246 -38.3342 33.6774 +50.841 -38.195 33.5551 +49.8346 -38.0982 33.4701 +49.3207 -38.3694 33.7083 +48.1848 -38.1463 33.5124 +47.1261 -37.9663 33.3542 +46.2104 -37.8861 33.2838 +45.7685 -38.1876 33.5486 +44.6606 -37.9235 33.3166 +43.8903 -37.9314 33.3235 +43.1883 -37.9892 33.3743 +42.6811 -38.2134 33.5712 +42.1084 -38.3757 33.7139 +40.717 -37.7745 33.1857 +40.2144 -37.9813 33.3674 +39.8333 -38.3027 33.6497 +38.7781 -37.9663 33.3542 +38.3356 -38.2191 33.5763 +37.4144 -37.9859 33.3714 +37.3831 -38.6552 33.9594 +36.4101 -38.3483 33.6898 +35.3897 -37.9702 33.3576 +34.9473 -38.2007 33.5602 +34.5581 -38.4906 33.8149 +34.0545 -38.6531 33.9576 +33.0596 -38.2448 33.5989 +32.0231 -37.7631 33.1757 +32.0071 -38.4813 33.8067 +31.1932 -38.2413 33.5958 +30.7478 -38.4444 33.7742 +30.3 -38.6445 33.95 +29.75 -38.7115 34.0089 +29.2992 -38.9051 34.179 +28.5068 -38.6357 33.9423 +27.6752 -38.293 33.6412 +27.1824 -38.4067 33.7411 +26.7814 -38.65 33.9548 +25.9229 -38.2217 33.5786 +25.3887 -38.2557 33.6085 +25.031 -38.5557 33.872 +24.1947 -38.1081 33.4788 +23.7934 -38.3333 33.6767 +23.0155 -37.941 33.332 +22.5739 -38.0904 33.4633 +22.1704 -38.3058 33.6525 +21.6856 -38.3806 33.7182 +21.3155 -38.6601 33.9638 +20.5284 -38.1715 33.5345 +20.0476 -38.2347 33.59 +19.3519 -37.8737 33.2729 +19.1914 -38.5621 33.8776 +18.2297 -37.6275 33.0566 +17.9922 -38.1705 33.5336 +17.4505 -38.0739 33.4488 +17.1662 -38.5431 33.8609 +16.7178 -38.6542 33.9585 +16.1178 -38.404 33.7388 +15.4957 -38.0772 33.4517 +15.1096 -38.3214 33.6662 +14.6363 -38.3468 33.6885 +14.1904 -38.4413 33.7715 +13.7951 -38.6779 33.9794 +13.3703 -38.8397 34.1215 +12.7251 -38.3427 33.6849 +12.2559 -38.3516 33.6927 +11.8099 -38.4305 33.762 +11.2981 -38.2864 33.6355 +10.9362 -38.653 33.9575 +10.6064 -39.1649 34.4072 +9.97931 -38.5692 33.8839 +9.56737 -38.7809 34.0699 +8.94288 -38.1023 33.4737 +8.51646 -38.2336 33.589 +8.08766 -38.3622 33.702 +7.64175 -38.4137 33.7473 +7.20917 -38.5368 33.8554 +6.7482 -38.5081 33.8302 +6.30065 -38.5508 33.8677 +5.84129 -38.516 33.8372 +5.40412 -38.6276 33.9352 +4.95523 -38.6616 33.965 +4.49724 -38.6177 33.9265 +4.04849 -38.6457 33.9511 +3.59246 -38.5958 33.9073 +3.144 -38.6179 33.9267 +2.70577 -38.7871 34.0753 +2.2115 -38.0528 33.4302 +1.7694 -38.0659 33.4417 +1.32717 -38.076 33.4506 +0.886582 -38.1584 33.523 +0.443308 -38.1628 33.5268 +1.22125e-15 -38.0891 33.4621 +-0.442435 -38.0877 33.4608 +-0.884837 -38.0833 33.457 +-1.32717 -38.076 33.4506 +-1.8043 -38.8167 34.1013 +-2.25512 -38.8034 34.0896 +-2.70577 -38.7871 34.0753 +-3.15621 -38.7679 34.0585 +-3.64826 -39.1954 34.434 +-4.0328 -38.496 33.8195 +-4.47981 -38.468 33.795 +-4.91689 -38.3624 33.7022 +-5.45639 -39.0011 34.2633 +-5.92053 -39.0385 34.2962 +-6.27627 -38.4017 33.7367 +-6.7221 -38.3591 33.6993 +-7.1535 -38.2392 33.594 +-7.5974 -38.1908 33.5514 +-8.27538 -39.2526 34.4842 +-8.61549 -38.6782 33.9796 +-9.01234 -38.3982 33.7337 +-9.40335 -38.1161 33.4858 +-9.65494 -37.3155 32.7825 +-10.4668 -38.6495 33.9544 +-10.7282 -37.9181 33.3119 +-11.1899 -37.9197 33.3133 +-11.8324 -38.5037 33.8263 +-12.2559 -38.3516 33.6927 +-12.8702 -38.78 34.0691 +-13.1199 -38.1123 33.4825 +-13.8468 -38.8231 34.1069 +-14.2438 -38.5861 33.8987 +-14.7466 -38.6356 33.9422 +-15.1664 -38.4655 33.7927 +-15.6419 -38.4364 33.7672 +-16.1178 -38.404 33.7388 +-16.8414 -38.94 34.2096 +-17.1345 -38.4719 33.7984 +-17.5156 -38.216 33.5736 +-18.2926 -38.8079 34.0936 +-18.7427 -38.6865 33.9869 +-19.2264 -38.6325 33.9395 +-19.6027 -38.3647 33.7042 +-20.4508 -39.0036 34.2655 +-20.903 -38.8681 34.1464 +-21.5451 -39.0766 34.3296 +-21.9591 -38.8647 34.1435 +-22.2103 -38.3747 33.713 +-22.9806 -38.7767 34.0662 +-23.8863 -39.3766 34.5932 +-24.047 -38.7419 34.0356 +-24.8405 -39.1252 34.3724 +-25.3817 -39.0959 34.3466 +-25.7456 -38.7936 34.081 +-26.5584 -39.1588 34.4019 +-27.1046 -39.1164 34.3646 +-27.4641 -38.8046 34.0907 +-28.3432 -39.2173 34.4532 +-28.6038 -38.7672 34.0578 +-29.5947 -39.2974 34.5236 +-29.55 -38.4513 33.7803 +-30.4523 -38.8386 34.1206 +-30.8508 -38.5731 33.8873 +-31.8202 -39.01 34.2711 +-32.1661 -38.6724 33.9746 +-33.2588 -39.2204 34.456 +-33.6587 -38.9379 34.2078 +-34.8824 -39.5928 34.7831 +-34.8936 -38.8643 34.1431 +-35.7969 -39.1294 34.3761 +-36.4221 -39.0779 34.3308 +-37.2811 -39.2657 34.4958 +-37.148 -38.4121 33.7458 +-38.6635 -39.2541 34.4855 +-38.7569 -38.6391 33.9453 +-39.6304 -38.8008 34.0873 +-40.6952 -39.1315 34.3778 +-41.1482 -38.8632 34.1421 +-42.2903 -39.2342 34.4681 +-43.1261 -39.3032 34.5287 +-43.8381 -39.2492 34.4813 +-44.747 -39.3602 34.5788 +-45.3337 -39.1787 34.4194 +-46.2509 -39.2739 34.503 +-46.6384 -38.9134 34.1862 +-47.494 -38.9385 34.2083 +-48.6947 -39.23 34.4644 +-49.0797 -38.8548 34.1348 +-50.1543 -39.0179 34.278 +-51.4467 -39.3306 34.5528 +-51.9016 -38.9918 34.2551 +-52.8519 -39.0187 34.2788 +-53.9505 -39.1404 34.3857 +-55.0559 -39.2506 34.4825 +-55.5829 -38.9394 34.2091 +-56.6229 -38.9796 34.2444 +-58.1139 -39.3106 34.5352 +-59.4671 -39.5255 34.724 +-60.8296 -39.7256 34.8998 +-61.9731 -39.7644 34.9339 +-63.1221 -39.7912 34.9574 +-64.1992 -39.7582 34.9284 +-66.0574 -40.1868 35.3049 +-67.226 -40.1731 35.2929 +-68.3205 -40.1008 35.2294 +-70.1324 -40.4289 35.5177 +-71.398 -40.4197 35.5096 +-72.2667 -40.1735 35.2933 +-74.4296 -40.6255 35.6904 +-76.1198 -40.7904 35.8353 +-77.5737 -40.8069 35.8498 +-78.5392 -40.5521 35.6259 +-80.0021 -40.5398 35.6151 +-82.2211 -40.8845 35.918 +-83.4477 -40.7122 35.7665 +-85.0982 -40.7287 35.781 +-86.6705 -40.6867 35.7442 +-88.4188 -40.7058 35.7609 +-90.0883 -40.6663 35.7262 +-91.8497 -40.6461 35.7085 +-93.5307 -40.5683 35.6401 +-95.8262 -40.7304 35.7825 +-97.5201 -40.6106 35.6772 +-100.537 -41.0093 36.0275 +-102.863 -41.0892 36.0977 +-105.111 -41.1071 36.1134 +-106.03 -40.587 35.6565 +-106.497 -39.8902 35.0444 +-105.968 -38.8283 34.1115 +-107.498 -38.5202 33.8409 +-108.757 -38.0998 33.4715 +-108.103 -37.0115 32.5154 +-108.255 -36.2097 31.811 +-107.663 -35.169 30.8967 +-108.159 -34.4912 30.3013 +-105.599 -32.8608 28.8689 +-55.9092 -16.9702 14.9086 +-46.4278 -13.7394 12.0704 +-43.5048 -12.546 11.022 +-39.9022 -11.208 9.84643 +-36.742 -10.0467 8.8262 +-17.0618 -4.53906 3.98766 +-16.1684 -4.18245 3.67437 +-16.5008 -4.1478 3.64394 +-16.0729 -3.92339 3.44679 +-16.4993 -3.90823 3.43347 +-16.0659 -3.69009 3.24182 +-14.3823 -3.20056 2.81176 +-13.8422 -2.9819 2.61967 +-13.7799 -2.87096 2.5222 +-13.1366 -2.6444 2.32317 +-13.1668 -2.55818 2.24742 +-13.002 -2.43541 2.13956 +-13.0298 -2.35008 2.0646 +-13.2514 -2.29836 2.01916 +-12.3013 -2.0488 1.79992 +-12.6181 -2.01494 1.77016 +-12.445 -1.90218 1.6711 +-12.8593 -1.87786 1.64974 +-14.2572 -1.98516 1.744 +-14.3782 -1.90465 1.67328 +-14.3998 -1.81032 1.59041 +-13.9264 -1.65709 1.45579 +-13.9451 -1.56572 1.37552 +-13.4676 -1.42196 1.24922 +-13.9794 -1.38264 1.21468 +-13.9949 -1.29094 1.13412 +-13.7113 -1.17362 1.03105 +-12.7299 -1.00516 0.883056 +-13.0397 -0.943272 0.828685 +-12.054 -0.792268 0.696025 +-12.7605 -0.75448 0.662826 +-11.2725 -0.592182 0.520245 +-10.9795 -0.504499 0.443214 +-11.9836 -0.471817 0.414502 +-11.589 -0.380128 0.333951 +-11.5929 -0.304137 0.267191 +-10.9962 -0.216324 0.190045 +-11.2983 -0.148158 0.13016 +-11.2996 -0.0740821 0.0650827 +11.9 -8.88178e-16 2.84217e-14 +10.6996 -0.0695895 0.0622574 +11.5982 -0.15088 0.134983 +11.596 -0.226306 0.202462 +11.8928 -0.309517 0.276905 +11.8887 -0.386852 0.346092 +11.5841 -0.452456 0.404784 +12.7761 -0.582376 0.521015 +12.7688 -0.665446 0.595333 +13.259 -0.777705 0.695764 +13.7475 -0.896383 0.801938 +14.0351 -1.00719 0.901071 +15.0173 -1.17633 1.05239 +15.4997 -1.31614 1.17747 +15.7815 -1.44414 1.29198 +34.1057 -3.34637 2.99379 +37.9273 -3.97258 3.55402 +41.242 -4.59363 4.10964 +42.2731 -4.98994 4.46418 +41.3254 -5.15396 4.61093 +43.2331 -5.68137 5.08276 +56.7338 -7.8366 7.01091 +76.0761 -11.021 9.85975 +19.5985 -2.97169 2.65859 +115.03 -18.2223 16.3024 +116.863 -19.3085 17.2741 +118.776 -20.4366 18.2834 +119.504 -21.3823 19.1294 +120.414 -22.3751 20.0176 +119.566 -23.0454 20.6173 +120.161 -23.9958 21.4675 +120.068 -24.8162 22.2015 +120.638 -25.781 23.0647 +120.428 -26.5858 23.7846 +120.973 -27.5641 24.6599 +119.978 -28.193 25.2225 +120.404 -29.1565 26.0845 +121.006 -30.1749 26.9956 +120.365 -30.8879 27.6335 +120.375 -31.769 28.4218 +120.187 -32.6017 29.1667 +120.269 -33.5126 29.9816 +119.778 -34.2668 30.6564 +120.117 -35.2631 31.5476 +120.07 -36.1546 32.3453 +121.121 -37.3905 33.4509 +119.758 -37.8855 33.8938 +118.576 -38.4253 34.3767 +116.112 -38.5281 34.4686 +114.837 -39.0036 34.8941 +112.201 -38.993 34.8846 +110.025 -39.1117 34.9908 +107.406 -39.0417 34.9282 +105.065 -39.0404 34.927 +101.753 -38.6395 34.5683 +98.6356 -38.2674 34.2354 +95.7115 -37.9277 33.9316 +94.2092 -38.122 34.1054 +91.9225 -37.9745 33.9734 +91.0392 -38.3874 34.3428 +88.1614 -37.9347 33.9378 +87.9723 -38.6201 34.551 +85.031 -38.0776 34.0656 +84.0703 -38.3955 34.3501 +82.0911 -38.2299 34.2019 +80.8812 -38.4019 34.3558 +78.7512 -38.1147 34.0988 +77.5514 -38.2552 34.2245 +76.0227 -38.2164 34.1898 +74.9131 -38.3716 34.3287 +72.7407 -37.9597 33.9602 +72.2935 -38.4313 34.3821 +70.3036 -38.0677 34.0568 +68.4082 -37.7255 33.7507 +67.7243 -38.0345 34.027 +66.6417 -38.1105 34.0951 +64.6957 -37.6707 33.7016 +64.1739 -38.0436 34.0352 +62.4048 -37.6622 33.694 +61.267 -37.64 33.6741 +60.8239 -38.037 34.0293 +59.6919 -37.9955 33.9922 +58.5655 -37.9423 33.9446 +58.119 -38.3217 34.284 +56.1074 -37.651 33.684 +55.5907 -37.9641 33.9641 +53.9008 -37.4601 33.5132 +52.8073 -37.3475 33.4125 +51.6486 -37.1719 33.2553 +51.2114 -37.5063 33.5546 +50.1339 -37.3637 33.427 +49.0636 -37.2099 33.2893 +48.6956 -37.5812 33.6215 +48.116 -37.7884 33.8069 +47.2625 -37.7728 33.7929 +46.1428 -37.5292 33.575 +45.1663 -37.3849 33.4459 +44.1968 -37.2306 33.3079 +43.6935 -37.4604 33.5135 +42.9935 -37.5165 33.5636 +42.1026 -37.395 33.455 +41.6631 -37.6674 33.6987 +40.717 -37.4736 33.5252 +40.2767 -37.7369 33.7609 +39.2176 -37.4102 33.4686 +38.839 -37.7229 33.7483 +37.794 -37.3789 33.4406 +37.4144 -37.6832 33.7128 +36.3839 -37.3222 33.3898 +35.9455 -37.5574 33.6002 +34.8734 -37.1181 33.2073 +34.9473 -37.8964 33.9035 +33.8871 -37.4426 33.4975 +33.5026 -37.7237 33.749 +32.8962 -37.7526 33.7749 +32.4529 -37.9651 33.965 +31.5302 -37.6059 33.6437 +31.1409 -37.8731 33.8827 +30.6448 -38.0103 34.0054 +29.7417 -37.6302 33.6654 +29.35 -37.8867 33.8949 +29.3484 -38.66 34.5866 +28.4098 -38.1975 34.1729 +27.6752 -37.9879 33.9854 +27.2294 -38.1664 34.1451 +26.3658 -37.7471 33.7699 +25.8775 -37.8507 33.8627 +25.4779 -38.0843 34.0716 +24.6365 -37.6456 33.6792 +24.1947 -37.8045 33.8213 +23.7934 -38.0279 34.0212 +23.3472 -38.1812 34.1583 +22.5332 -37.7188 33.7447 +21.8116 -37.3855 33.4465 +21.7247 -38.1434 34.1245 +20.9711 -37.7324 33.7568 +20.1913 -37.2454 33.3211 +20.0476 -37.93 33.9336 +19.2444 -37.3633 33.4266 +18.8412 -37.5568 33.5997 +18.4691 -37.8179 33.8333 +17.9588 -37.7961 33.8138 +17.5156 -37.9115 33.917 +17.0075 -37.8826 33.8912 +16.5324 -37.9209 33.9254 +16.1178 -38.098 34.0839 +15.4957 -37.7738 33.7939 +15.0812 -37.9446 33.9466 +14.6363 -38.0412 34.0331 +13.9766 -37.5605 33.603 +13.5621 -37.7219 33.7474 +13.17 -37.953 33.9542 +12.5316 -37.4587 33.5119 +12.0691 -37.4663 33.5187 +11.585 -37.3981 33.4578 +11.2981 -37.9814 33.9796 +10.7698 -37.7618 33.7831 +10.4269 -38.1956 34.1712 +9.80758 -37.6035 33.6415 +9.40335 -37.8124 33.8284 +8.96025 -37.8721 33.8818 +8.49995 -37.8554 33.8669 +8.08766 -38.0565 34.0468 +7.65653 -38.1813 34.1585 +7.05608 -37.4179 33.4754 +6.7482 -38.2012 34.1763 +6.31283 -38.3177 34.2804 +5.7394 -37.5427 33.5871 +5.31005 -37.6527 33.6855 +4.95523 -38.3535 34.3125 +4.41008 -37.5676 33.6094 +3.97003 -37.5948 33.6337 +3.53665 -37.6936 33.7221 +3.09516 -37.7151 33.7413 +2.65867 -37.8083 33.8247 +2.2115 -37.7496 33.7722 +1.7694 -37.7626 33.7838 +1.32717 -37.7726 33.7928 +0.86913 -37.1092 33.1993 +0.443308 -37.8587 33.8698 +2.44249e-15 -37.1894 33.271 +-0.441563 -37.7097 33.7365 +-0.881347 -37.6308 33.6659 +-1.32717 -37.7726 33.7928 +-1.7694 -37.7626 33.7838 +-2.25512 -38.4942 34.4384 +-2.6482 -37.6594 33.6915 +-3.09516 -37.7151 33.7413 +-3.5227 -37.5449 33.589 +-4.0328 -38.1892 34.1655 +-4.47981 -38.1615 34.1407 +-5.00315 -38.7244 34.6443 +-5.36231 -38.0233 34.0171 +-5.81865 -38.0611 34.0508 +-6.27627 -38.0957 34.0818 +-6.73515 -38.1274 34.1102 +-7.13958 -37.8607 33.8716 +-7.5974 -37.8865 33.8947 +-8.00944 -37.6884 33.7175 +-8.61549 -38.37 34.3272 +-8.96025 -37.8721 33.8818 +-9.36691 -37.6658 33.6973 +-9.82666 -37.6766 33.7069 +-10.3073 -37.7574 33.7791 +-10.5203 -36.887 33.0005 +-11.1899 -37.6175 33.6541 +-11.6075 -37.4707 33.5227 +-12.2092 -37.901 33.9077 +-12.7009 -37.9648 33.9648 +-13.0949 -37.7365 33.7605 +-13.5362 -37.6499 33.683 +-14.0033 -37.6322 33.6672 +-14.7466 -38.3278 34.2895 +-15.1664 -38.159 34.1385 +-15.3788 -37.4887 33.5388 +-16.0878 -38.027 34.0204 +-16.5633 -37.9917 33.9888 +-17.1345 -38.1653 34.1441 +-17.5156 -37.9115 33.917 +-18.0256 -37.9366 33.9395 +-18.6743 -38.2381 34.2093 +-19.1563 -38.1851 34.1618 +-19.6027 -38.059 34.049 +-20.4508 -38.6928 34.616 +-20.491 -37.7983 33.8157 +-21.2007 -38.1455 34.1264 +-21.9591 -38.555 34.4928 +-22.5692 -38.6841 34.6082 +-22.9806 -38.4678 34.4147 +-23.5546 -38.5203 34.4617 +-23.5398 -37.6226 33.6586 +-24.7974 -38.7462 34.6638 +-25.3817 -38.7844 34.698 +-25.7902 -38.5512 34.4893 +-26.1953 -38.3156 34.2785 +-26.5967 -38.0776 34.0656 +-27.0416 -37.9032 33.9096 +-28.3432 -38.9048 34.8057 +-28.7492 -38.6538 34.5811 +-29.1515 -38.4005 34.3545 +-29.5 -38.0804 34.0681 +-30.4015 -38.465 34.4122 +-30.8508 -38.2658 34.234 +-31.4022 -38.1908 34.1669 +-32.1661 -38.3643 34.3221 +-32.7753 -38.3423 34.3024 +-33.2774 -38.1901 34.1663 +-34.4409 -38.7802 34.6942 +-34.8377 -38.4929 34.4372 +-35.1738 -38.142 34.1233 +-36.0206 -38.3391 34.2996 +-36.8166 -38.4675 34.4144 +-37.0892 -38.0457 34.0371 +-38.1876 -38.462 34.4096 +-38.6967 -38.2717 34.2393 +-39.5086 -38.3733 34.3302 +-40.1411 -38.2911 34.2567 +-41.0237 -38.4369 34.3871 +-41.4722 -38.1686 34.1471 +-42.5536 -38.4725 34.419 +-43.0668 -38.2514 34.2211 +-44.2274 -38.5932 34.5269 +-44.612 -38.2479 34.218 +-45.6545 -38.4586 34.4065 +-46.1031 -38.1603 34.1396 +-47.5616 -38.6831 34.6074 +-48.0809 -38.4268 34.3781 +-49.2174 -38.6533 34.5807 +-49.5291 -38.2245 34.1971 +-50.6056 -38.3794 34.3356 +-51.1945 -38.1541 34.1341 +-52.8519 -38.7078 34.6295 +-52.6557 -37.8967 33.9038 +-54.3305 -38.4249 34.3764 +-55.5829 -38.6292 34.5591 +-56.6966 -38.7194 34.6398 +-57.1478 -38.3491 34.3085 +-59.2424 -39.0624 34.9467 +-59.9994 -38.8713 34.7757 +-62.4293 -39.738 35.5511 +-62.4326 -39.043 34.9294 +-64.1992 -39.4414 35.2857 +-64.6585 -39.0224 34.9109 +-66.5217 -39.4354 35.2804 +-67.6113 -39.3684 35.2205 +-69.4978 -39.7438 35.5563 +-70.5994 -39.6491 35.4716 +-72.2667 -39.8535 35.6544 +-73.7014 -39.9076 35.7028 +-75.3057 -40.0326 35.8147 +-76.5907 -39.9688 35.7576 +-78.5392 -40.229 35.9904 +-79.0073 -39.7167 35.532 +-80.7201 -39.8184 35.623 +-81.9381 -39.6571 35.4788 +-84.3391 -40.0438 35.8247 +-85.2288 -39.6912 35.5092 +-87.0546 -39.7584 35.5694 +-88.0311 -39.421 35.2675 +-91.505 -40.1709 35.9384 +-93.0111 -40.0214 35.8047 +-95.0428 -40.0756 35.8531 +-96.7329 -39.9617 35.7513 +-99.8336 -40.398 36.1415 +-101.274 -40.132 35.9036 +-104.312 -40.4698 36.2058 +-105.852 -40.1959 35.9608 +-105.96 -39.3729 35.2245 +-105.069 -38.1922 34.1682 +-106.505 -37.8604 33.8713 +-108.032 -37.5442 33.5884 +-108.194 -36.7474 32.8756 +-108.072 -35.8605 32.0821 +-107.846 -34.9483 31.266 +-107.331 -33.9543 30.3768 +-104.86 -32.3709 28.9602 +-52.7568 -15.8857 14.2119 +-45.4974 -13.3568 11.9495 +-41.0775 -11.7517 10.5135 +-38.9656 -10.8577 9.71367 +-33.2651 -9.02346 8.07272 +-16.2134 -4.279 3.82815 +-15.6956 -4.0278 3.60342 +-15.7422 -3.92557 3.51196 +-15.7875 -3.82304 3.42023 +-15.3548 -3.60816 3.22799 +-15.3009 -3.48637 3.11904 +-14.0947 -3.11156 2.78372 +-13.8422 -2.95814 2.64647 +-12.8163 -2.64892 2.36982 +-3164.66 -631.973 565.386 +-3171.94 -611.367 546.951 +-12.4198 -2.30783 2.06467 +-13.3215 -2.38355 2.13241 +-12.2771 -2.1124 1.88983 +-12.5942 -2.08087 1.86162 +-12.6181 -1.99888 1.78827 +-12.739 -1.9316 1.72808 +-13.4483 -1.94822 1.74295 +-12.4873 -1.72486 1.54313 +-13.0979 -1.72123 1.53988 +-13.9066 -1.73439 1.55165 +-14.3215 -1.69051 1.5124 +-13.4506 -1.49817 1.34031 +-14.2599 -1.4936 1.33623 +-14.2768 -1.40081 1.25322 +-13.6971 -1.25341 1.12135 +-12.7177 -1.07991 0.966126 +-12.3321 -0.965992 0.864213 +-12.3429 -0.885756 0.79243 +-11.9543 -0.779464 0.697338 +-12.2621 -0.719228 0.643449 +-11.9708 -0.623856 0.558125 +-12.1772 -0.555077 0.496593 +-11.5841 -0.452456 0.404784 +-10.9895 -0.357594 0.319917 +-12.1926 -0.31732 0.283886 +-10.9962 -0.2146 0.191989 +-10.9983 -0.143076 0.128001 +-10.4996 -0.0682888 0.0610937 +11.3 8.88178e-16 2.84217e-14 +11.2996 -0.0728956 0.066409 +10.4984 -0.135464 0.12341 +10.9962 -0.212859 0.193918 +11.8928 -0.307006 0.279687 +11.8887 -0.383714 0.349569 +11.8837 -0.460392 0.419424 +11.5784 -0.523496 0.476913 +11.6715 -0.603325 0.549638 +13.5581 -0.78879 0.718599 +12.8509 -0.831125 0.757168 +14.0351 -0.99902 0.910122 +14.4206 -1.12042 1.02072 +14.5061 -1.22178 1.11306 +15.186 -1.37837 1.25572 +37.3775 -3.63764 3.31395 +40.502 -4.20784 3.83341 +42.0332 -4.64378 4.23055 +41.2854 -4.83381 4.40367 +39.6487 -4.90474 4.46829 +37.3242 -4.86508 4.43216 +44.1481 -6.04867 5.51043 +64.9837 -9.33768 8.50677 +69.2807 -10.4197 9.4925 +77.8605 -12.2341 11.1455 +3198.83 -524.236 477.587 +115.755 -19.7554 17.9974 +119.213 -21.1571 19.2744 +119.54 -22.0326 20.0721 +120.341 -23.0065 20.9593 +120.161 -23.8011 21.6832 +119.972 -24.5951 22.4065 +120.734 -25.5923 23.315 +120.428 -26.3701 24.0236 +120.877 -27.3189 24.8879 +120.931 -28.1865 25.6784 +120.404 -28.9199 26.3465 +120.058 -29.6955 27.0531 +120.365 -30.6373 27.9111 +120.564 -31.5607 28.7523 +119.811 -32.2361 29.3676 +120.269 -33.2407 30.2828 +119.872 -34.0153 30.9885 +120.768 -35.1667 32.0374 +120.07 -35.8613 32.6702 +120.659 -36.9457 33.6581 +119.297 -37.4338 34.1028 +117.475 -37.7598 34.3998 +115.564 -38.0351 34.6506 +114.291 -38.5032 35.077 +110.479 -38.0831 34.6943 +108.4 -38.2215 34.8204 +106.597 -38.4332 35.0133 +104.349 -38.4598 35.0374 +100.416 -37.8226 34.4569 +97.6599 -37.5814 34.2373 +95.4466 -37.5159 34.1776 +94.2092 -37.8127 34.448 +90.3482 -37.0213 33.727 +89.2985 -37.348 34.0246 +87.382 -37.2942 33.9756 +86.4214 -37.6314 34.2828 +84.5167 -37.5403 34.1997 +83.3029 -37.7364 34.3784 +81.3278 -37.5672 34.2243 +79.9535 -37.6535 34.3029 +78.4157 -37.6444 34.2946 +76.7175 -37.5368 34.1966 +74.8621 -37.3276 34.006 +74.4186 -37.8091 34.4447 +71.512 -37.0157 33.7219 +70.5024 -37.1751 33.8671 +69.3328 -37.2375 33.9239 +68.6494 -37.5514 34.2099 +67.0055 -37.3255 34.0041 +65.8483 -37.3513 34.0276 +64.6957 -37.3651 34.0401 +63.4695 -37.3208 33.9998 +61.6277 -36.8914 33.6087 +61.267 -37.3346 34.0124 +60.2111 -37.3483 34.0248 +59.0835 -37.3032 33.9838 +57.6598 -37.0524 33.7553 +57.2202 -37.423 34.0929 +55.3643 -36.8508 33.5717 +55.0009 -37.2565 33.9413 +53.1694 -36.6521 33.3906 +52.8073 -37.0445 33.7481 +51.7205 -36.9216 33.6361 +50.5695 -36.7357 33.4668 +49.4975 -36.5901 33.3342 +49.0636 -36.908 33.6237 +48.6261 -37.2231 33.9108 +47.703 -37.16 33.8533 +46.6487 -36.9798 33.6891 +45.5348 -36.7343 33.4655 +44.5641 -36.5871 33.3314 +44.1305 -36.8732 33.5921 +42.8407 -36.4312 33.1894 +43.1883 -37.3807 34.0544 +42.0383 -37.035 33.7394 +41.1543 -36.9055 33.6214 +39.9618 -36.4802 33.234 +39.5919 -36.7944 33.5203 +38.7251 -36.6407 33.3802 +38.1693 -36.7718 33.4997 +37.3125 -36.6033 33.3462 +37.3549 -37.318 33.9973 +36.4427 -37.0792 33.7797 +35.4229 -36.711 33.4443 +34.8161 -36.7564 33.4857 +34.4375 -37.0406 33.7446 +33.943 -37.2001 33.8898 +33.4474 -37.356 34.0319 +32.406 -36.8883 33.6058 +31.9693 -37.096 33.795 +31.5302 -37.3008 33.9816 +31.0887 -37.5028 34.1656 +30.1812 -37.1316 33.8275 +29.7417 -37.3249 34.0036 +29.3 -37.5153 34.177 +28.8068 -37.6386 34.2893 +28.022 -37.3704 34.045 +27.5798 -37.5497 34.2084 +27.1355 -37.7262 34.3692 +26.2735 -37.3097 33.9897 +25.7867 -37.4119 34.0828 +25.0763 -37.1799 33.8714 +24.6365 -37.3402 34.0175 +24.1517 -37.431 34.1002 +23.3285 -36.9824 33.6916 +22.6008 -36.6606 33.3984 +22.2078 -36.8726 33.5915 +21.8116 -37.0822 33.7825 +21.3339 -37.1535 33.8474 +20.6266 -36.8116 33.5359 +20.491 -37.4916 34.1554 +19.6811 -36.9345 33.6479 +19.2444 -37.0601 33.7623 +18.8412 -37.2521 33.9372 +18.3323 -37.2332 33.9201 +17.7585 -37.0714 33.7726 +17.2877 -37.1146 33.812 +16.8806 -37.2948 33.9762 +16.2543 -36.9805 33.6898 +15.9073 -37.2954 33.9767 +15.2033 -36.7604 33.4893 +15.0528 -37.5658 34.223 +14.3883 -37.0931 33.7924 +13.9766 -37.2557 33.9405 +13.3292 -36.7732 33.501 +12.9196 -36.9293 33.6432 +12.5316 -37.1547 33.8485 +11.859 -36.5154 33.2661 +11.6525 -37.3108 33.9907 +11.2981 -37.6732 34.3209 +10.5411 -36.66 33.3979 +10.2674 -37.3061 33.9865 +9.80758 -37.2984 33.9794 +9.23934 -36.8514 33.5722 +8.80396 -36.9097 33.6253 +8.36791 -36.9651 33.6757 +7.91558 -36.9446 33.6571 +7.50872 -37.1405 33.8355 +7.05608 -37.1143 33.8117 +6.7482 -37.8913 34.5196 +6.16659 -37.1263 33.8226 +5.7394 -37.2381 33.9245 +5.28914 -37.2002 33.89 +4.85938 -37.3065 33.9868 +4.41008 -37.2628 33.947 +3.97788 -37.3635 34.0387 +3.4669 -36.6503 33.389 +3.04022 -36.7451 33.4753 +2.61156 -36.8371 33.5592 +2.17661 -36.8525 33.5732 +1.73799 -36.7913 33.5175 +1.32717 -37.4662 34.1323 +0.86913 -36.8081 33.5328 +0.443308 -37.5516 34.21 +1.66533e-15 -36.8137 33.5379 +-0.443308 -37.5516 34.21 +-0.86913 -36.8081 33.5328 +-1.32194 -37.3184 33.9976 +-1.73799 -36.7913 33.5175 +-2.2115 -37.4433 34.1115 +-2.65343 -37.4277 34.0972 +-3.08906 -37.3353 34.0131 +-3.52968 -37.314 33.9936 +-3.97003 -37.2898 33.9716 +-4.39265 -37.1155 33.8128 +-4.91689 -37.748 34.389 +-5.36231 -37.7149 34.3588 +-5.81865 -37.7523 34.3929 +-6.14221 -36.9795 33.6889 +-6.70905 -37.6715 34.3193 +-7.01432 -36.8947 33.6116 +-7.43481 -36.7749 33.5025 +-7.85301 -36.6526 33.3911 +-8.46694 -37.4025 34.0743 +-8.90815 -37.3464 34.0232 +-9.53092 -38.0144 34.6317 +-9.67402 -36.7904 33.5167 +-10.2674 -37.3061 33.9865 +-10.5203 -36.5878 33.332 +-11.125 -37.0958 33.7949 +-11.5625 -37.0226 33.7282 +-12.0458 -37.0904 33.7899 +-12.4348 -36.8678 33.5872 +-12.8946 -36.8578 33.578 +-13.3033 -36.7018 33.4359 +-13.8162 -36.8283 33.5511 +-14.4985 -37.3773 34.0513 +-14.9392 -37.2823 33.9648 +-15.3788 -37.1845 33.8757 +-15.8472 -37.1544 33.8483 +-16.347 -37.1914 33.8819 +-17.0393 -37.6454 34.2955 +-17.2551 -37.0447 33.7483 +-17.9922 -37.5592 34.217 +-18.4691 -37.5111 34.1732 +-18.9112 -37.3906 34.0634 +-19.3877 -37.3361 34.0138 +-20.0476 -37.6223 34.2745 +-20.1913 -36.9432 33.6559 +-21.2389 -37.9043 34.5314 +-21.6465 -37.6979 34.3433 +-22.0508 -37.4889 34.153 +-22.3298 -37.0751 33.776 +-23.0984 -37.4678 34.1337 +-23.5398 -37.3174 33.9967 +-24.453 -37.898 34.5257 +-24.5488 -37.2074 33.8965 +-25.2994 -37.5107 34.1728 +-25.7413 -37.3461 34.0228 +-26.5967 -37.7687 34.4078 +-26.9946 -37.5304 34.1908 +-27.9138 -38.0045 34.6227 +-28.2644 -37.6936 34.3395 +-28.8068 -37.6386 34.2893 +-29.2 -37.3873 34.0604 +-29.9448 -37.5797 34.2356 +-30.5418 -37.5751 34.2315 +-31.2454 -37.6919 34.3379 +-31.7422 -37.5516 34.21 +-32.2917 -37.47 34.1358 +-32.8962 -37.4463 34.1141 +-33.9993 -37.9724 34.5934 +-34.3344 -37.629 34.2806 +-35.3437 -38.0154 34.6326 +-35.6765 -37.6648 34.3132 +-36.2359 -37.5536 34.2119 +-36.7954 -37.438 34.1066 +-37.5928 -37.5558 34.2139 +-38.6967 -37.9612 34.5833 +-39.0825 -37.6515 34.3011 +-39.6486 -37.5145 34.1762 +-41.1482 -38.2407 34.8379 +-40.9688 -37.3994 34.0714 +-41.9176 -37.59 34.2451 +-43.0668 -37.9411 34.5649 +-43.7079 -37.8304 34.4641 +-44.1528 -37.5471 34.2059 +-45.0582 -37.6483 34.2982 +-46.0362 -37.7957 34.4325 +-47.1562 -38.0423 34.6572 +-47.3989 -37.5745 34.2309 +-48.529 -37.8035 34.4396 +-48.9039 -37.4358 34.1046 +-50.6757 -38.1207 34.7285 +-51.1945 -37.8446 34.477 +-52.2813 -37.9792 34.5996 +-52.6557 -37.5892 34.2443 +-54.4031 -38.164 34.768 +-54.1933 -37.3579 34.0336 +-56.0331 -37.9558 34.5783 +-56.6276 -37.6918 34.3378 +-57.8943 -37.8638 34.4945 +-58.7919 -37.7799 34.4181 +-61.1366 -38.5994 35.1647 +-62.2794 -38.6312 35.1936 +-63.4275 -38.6512 35.2118 +-63.9591 -38.2871 34.8801 +-65.8173 -38.7014 35.2575 +-66.9021 -38.6394 35.2011 +-68.7837 -39.0163 35.5445 +-69.2417 -38.5712 35.1389 +-71.8648 -39.3103 35.8123 +-72.3261 -38.8451 35.3885 +-74.8986 -39.4932 35.9789 +-75.1162 -38.8814 35.4215 +-77.7975 -39.5258 36.0086 +-78.3441 -39.0637 35.5877 +-80.2198 -39.2505 35.7578 +-80.9317 -38.8523 35.3951 +-82.9054 -39.0437 35.5694 +-84.1264 -38.8599 35.402 +-86.7135 -39.2814 35.7859 +-87.5168 -38.8728 35.4137 +-90.2987 -39.3197 35.8209 +-91.5389 -39.0684 35.5919 +-93.5632 -39.1316 35.6495 +-96.2956 -39.4583 35.9471 +-98.5154 -39.5411 36.0226 +-100.568 -39.5288 36.0113 +-103.869 -39.9708 36.4141 +-105.317 -39.6684 36.1385 +-105.334 -38.8226 35.368 +-104.799 -37.7852 34.4229 +-105.873 -37.3305 34.0086 +-107.488 -37.0521 33.7551 +-107.83 -36.3267 33.0941 +-107.89 -35.5094 32.3496 +-107.204 -34.4584 31.3921 +-107.607 -33.7655 30.7609 +-19.771 -6.05389 5.51518 +-47.9354 -14.3168 13.0429 +-42.334 -12.3273 11.2303 +-38.6502 -10.9675 9.99159 +-36.4365 -10.0706 9.17449 +-31.8556 -8.57102 7.80833 +-15.9306 -4.17026 3.79917 +-15.2228 -3.87479 3.53 +-15.837 -3.91718 3.56861 +-15.1218 -3.63212 3.30892 +-15.7363 -3.66781 3.34143 +-15.6834 -3.54454 3.22913 +-14.9576 -3.27527 2.98382 +-13.5538 -2.87302 2.61736 +-13.7799 -2.82498 2.5736 +-3164.66 -626.845 571.066 +-13.1668 -2.51721 2.29322 +-13.002 -2.3964 2.18316 +-12.8353 -2.27793 2.07523 +-12.6668 -2.16178 1.96941 +-13.4729 -2.20799 2.01151 +-12.7159 -1.99803 1.82024 +-13.8169 -2.07805 1.89313 +-13.3501 -1.91831 1.74761 +-13.9622 -1.91294 1.74272 +-13.8858 -1.80996 1.64891 +-14.3011 -1.76912 1.6117 +-13.6301 -1.59585 1.45385 +-14.5385 -1.6062 1.46327 +-14.1608 -1.4712 1.34029 +-13.3845 -1.3026 1.18669 +-14.4912 -1.31531 1.19827 +-13.6119 -1.14646 1.04444 +-13.1277 -1.01998 0.929215 +-11.7457 -0.836056 0.76166 +-12.2532 -0.792471 0.721953 +-11.5642 -0.672794 0.612926 +-11.3722 -0.587855 0.535545 +-11.6782 -0.528009 0.481025 +-11.9836 -0.46426 0.422948 +-10.6898 -0.345019 0.314318 +-12.1926 -0.314746 0.286738 +-11.2961 -0.218665 0.199207 +-10.7984 -0.139335 0.126936 +-10.4996 -0.0677348 0.0617074 +10.5 -8.88178e-16 2.84217e-14 +10.9996 -0.070374 0.0652835 +10.9983 -0.140742 0.130562 +11.596 -0.222616 0.206513 +11.8928 -0.30447 0.282446 +12.1884 -0.390137 0.361917 +12.1833 -0.468099 0.434239 +13.0756 -0.586306 0.543896 +12.4696 -0.639253 0.593012 +13.3587 -0.770771 0.715017 +13.5482 -0.868987 0.806129 +13.6369 -0.962659 0.893025 +13.426 -1.03453 0.959701 +14.7049 -1.22828 1.13944 +14.4912 -1.30444 1.21008 +37.6749 -3.6363 3.37327 +41.0961 -4.23429 3.92801 +42.7255 -4.68127 4.34265 +41.1866 -4.78241 4.43647 +36.5912 -4.48912 4.1644 +34.1728 -4.41751 4.09797 +42.1816 -5.7315 5.31691 +58.8976 -8.39318 7.78606 +65.263 -9.73436 9.03022 +71.796 -11.188 10.3787 +75.4677 -12.2658 11.3785 +113.904 -19.2788 17.8843 +118.046 -20.777 19.2741 +119.346 -21.8152 20.2372 +120.147 -22.7798 21.132 +120.065 -23.5855 21.8794 +119.876 -24.3724 22.6094 +119.773 -25.1787 23.3574 +120.428 -26.1522 24.2605 +120.016 -26.9003 24.9544 +119.978 -27.7332 25.7271 +120.499 -28.7037 26.6274 +120.911 -29.6595 27.5141 +120.932 -30.5275 28.3193 +120.564 -31.3 29.0359 +120.093 -32.045 29.7271 +120.175 -32.9405 30.5577 +119.872 -33.7343 31.2941 +119.652 -34.5537 32.0543 +120.441 -35.6749 33.0943 +120.382 -36.5563 33.912 +118.745 -36.9526 34.2797 +117.475 -37.4479 34.7391 +114.833 -37.4823 34.771 +112.38 -37.5467 34.8308 +110.932 -37.9234 35.1803 +107.588 -37.6217 34.9003 +105.968 -37.8908 35.15 +103.275 -37.7495 35.0189 +99.7036 -37.2438 34.5498 +96.9503 -37.0001 34.3237 +94.652 -36.8963 34.2274 +93.1546 -37.0806 34.3983 +90.6981 -36.8577 34.1916 +88.6022 -36.7506 34.0922 +87.6418 -37.0961 34.4128 +85.4736 -36.9112 34.2412 +83.7452 -36.8903 34.2218 +82.5356 -37.0799 34.3977 +80.5646 -36.9072 34.2375 +79.6162 -37.1849 34.4951 +77.577 -36.9342 34.2625 +76.0504 -36.9031 34.2337 +74.0331 -36.6092 33.9611 +73.4296 -36.9985 34.3222 +71.1843 -36.5417 33.8985 +70.0139 -36.6126 33.9642 +68.8473 -36.6713 34.0187 +67.9259 -36.8487 34.1832 +66.3666 -36.6642 34.0121 +65.1343 -36.6411 33.9906 +63.9865 -36.6502 33.9991 +62.7652 -36.6018 33.9542 +61.7054 -36.6328 33.9829 +60.4954 -36.5598 33.9153 +59.5217 -36.6156 33.967 +59.0075 -36.9474 34.2748 +57.056 -36.3616 33.7314 +55.8721 -36.2395 33.6181 +54.6955 -36.1049 33.4933 +54.2636 -36.4535 33.8166 +53.2425 -36.3993 33.7663 +52.0819 -36.2339 33.6129 +51.0012 -36.1073 33.4955 +50.6408 -36.4837 33.8446 +49.4268 -36.236 33.6149 +49.1337 -36.6554 34.004 +47.9314 -36.3882 33.7561 +47.0146 -36.3213 33.694 +46.5805 -36.6207 33.9717 +45.6023 -36.4848 33.8457 +44.0957 -35.9035 33.3064 +43.998 -36.4588 33.8216 +43.3655 -36.5729 33.9274 +42.4739 -36.4587 33.8215 +42.1026 -36.7852 34.1243 +41.0907 -36.544 33.9006 +40.0877 -36.2928 33.6675 +39.0939 -36.0315 33.4251 +38.6635 -36.2802 33.6559 +38.2911 -36.5843 33.938 +37.3727 -36.3595 33.7295 +36.998 -36.6562 34.0046 +35.9137 -36.239 33.6177 +35.4229 -36.4077 33.7742 +34.8161 -36.4528 33.816 +34.3809 -36.6742 34.0214 +33.4397 -36.3457 33.7166 +32.9506 -36.4972 33.8571 +32.406 -36.5836 33.9373 +31.9693 -36.7895 34.1283 +31.5302 -36.9927 34.3168 +30.6184 -36.6304 33.9807 +30.1812 -36.8249 34.1611 +29.285 -36.448 33.8116 +28.85 -36.634 33.9841 +28.4128 -36.8172 34.154 +27.5857 -36.4846 33.8455 +27.2458 -36.7886 34.1275 +26.3843 -36.3789 33.7474 +26.3197 -37.0665 34.3853 +25.4235 -36.5803 33.9343 +25.0763 -36.8727 34.2055 +24.2419 -36.4387 33.8029 +23.7642 -36.5263 33.8841 +23.3708 -36.7433 34.0855 +22.6008 -36.3578 33.7278 +22.2078 -36.568 33.9228 +21.8116 -36.7759 34.1157 +21.0604 -36.3741 33.743 +20.8562 -36.9139 34.2437 +20.1164 -36.5021 33.8618 +19.7178 -36.6977 34.0431 +19.2085 -36.6855 34.0318 +18.526 -36.3263 33.6987 +18.0587 -36.3746 33.7434 +17.9254 -37.1106 34.4262 +17.2877 -36.808 34.1455 +16.8171 -36.8477 34.1823 +16.2543 -36.675 34.0221 +15.6367 -36.3581 33.7281 +15.2326 -36.5268 33.8847 +14.8256 -36.6932 34.039 +14.3883 -36.7867 34.1257 +13.7628 -36.3828 33.751 +13.0962 -35.8321 33.2401 +12.9446 -36.6952 34.0409 +12.5316 -36.8478 34.1824 +11.8824 -36.285 33.6603 +11.3825 -36.1453 33.5308 +10.9086 -36.0736 33.4642 +10.5619 -36.4289 33.7938 +10.2475 -36.9261 34.2551 +9.80758 -36.9903 34.3146 +9.23934 -36.547 33.9034 +8.75187 -36.3881 33.756 +8.3349 -36.515 33.8737 +7.79044 -36.0601 33.4517 +7.49394 -36.7611 34.102 +7.05608 -36.8077 34.1452 +6.61768 -36.8515 34.1858 +6.16659 -36.8196 34.1562 +5.72808 -36.8576 34.1915 +5.28914 -36.8929 34.2242 +4.85938 -36.9983 34.322 +4.33164 -36.2977 33.6721 +3.89942 -36.324 33.6965 +3.4669 -36.3475 33.7183 +3.04022 -36.4415 33.8055 +2.60633 -36.4596 33.8223 +2.17661 -36.5481 33.9044 +1.73799 -36.4874 33.8481 +1.30361 -36.4971 33.8571 +0.86913 -36.504 33.8635 +0.435454 -36.5815 33.9354 +1.88738e-15 -36.5096 33.8687 +-0.434581 -36.5082 33.8674 +-0.863894 -36.2842 33.6596 +-1.30099 -36.4238 33.7891 +-1.73799 -36.4874 33.8481 +-2.17225 -36.4749 33.8365 +-2.60633 -36.4596 33.8223 +-3.03411 -36.3683 33.7376 +-3.5227 -36.9326 34.2611 +-3.95434 -36.8356 34.1711 +-4.47109 -37.4662 34.7561 +-4.82104 -36.7064 34.0512 +-5.36231 -37.4033 34.6977 +-5.70544 -36.712 34.0564 +-6.1544 -36.7469 34.0888 +-6.57852 -36.6334 33.9835 +-7.00041 -36.5173 33.8758 +-7.43481 -36.4711 33.833 +-7.86865 -36.4222 33.7876 +-8.46694 -37.0935 34.4104 +-8.96025 -37.2545 34.5597 +-9.14822 -36.1866 33.569 +-9.52137 -35.9108 33.3132 +-10.0681 -36.2796 33.6553 +-10.5411 -36.3572 33.7273 +-10.9518 -36.2168 33.5971 +-11.36 -36.0739 33.4645 +-11.789 -35.9999 33.3958 +-12.2171 -35.923 33.3245 +-12.8695 -36.4823 33.8434 +-13.3033 -36.3986 33.7657 +-13.8162 -36.5241 33.8821 +-14.2505 -36.4342 33.7988 +-14.6836 -36.3417 33.7129 +-15.3788 -36.8773 34.2098 +-15.5766 -36.2182 33.5984 +-16.2852 -36.7447 34.0868 +-16.7854 -36.7782 34.1178 +-17.2551 -36.7387 34.0812 +-17.6584 -36.5578 33.9134 +-18.4691 -37.2012 34.5103 +-18.9112 -37.0817 34.3994 +-19.316 -36.8908 34.2223 +-19.7544 -36.7658 34.1064 +-20.5284 -37.2498 34.5554 +-20.5884 -36.4397 33.8039 +-21.3339 -36.8466 34.1813 +-21.7318 -36.6414 33.991 +-22.5739 -37.1707 34.482 +-23.0569 -37.0916 34.4085 +-23.5398 -37.0091 34.332 +-24.0656 -36.9894 34.3138 +-24.5488 -36.9 34.2308 +-24.9425 -36.6759 34.0229 +-25.8321 -37.1682 34.4796 +-26.1811 -36.8714 34.2043 +-27.0885 -37.3498 34.6481 +-27.4366 -37.0463 34.3665 +-27.8281 -36.8052 34.1429 +-28.6591 -37.1362 34.45 +-29.2 -37.0784 34.3964 +-29.9955 -37.3324 34.632 +-30.5418 -37.2647 34.5692 +-30.8274 -36.8804 34.2127 +-31.7952 -37.3035 34.6052 +-32.1842 -37.0368 34.3577 +-32.7873 -37.014 34.3366 +-33.7233 -37.353 34.6511 +-33.943 -36.8927 34.2241 +-35.0605 -37.3992 34.6939 +-35.0455 -36.693 34.0388 +-35.8874 -36.8852 34.2171 +-36.7366 -37.0694 34.388 +-37.5333 -37.1866 34.4967 +-37.9745 -36.945 34.2726 +-39.0825 -37.3405 34.6394 +-39.5255 -37.089 34.4062 +-40.5257 -37.3511 34.6493 +-41.0317 -37.1474 34.4603 +-41.9812 -37.336 34.6353 +-42.6168 -37.2345 34.5411 +-43.513 -37.3507 34.6489 +-44.1528 -37.2369 34.5433 +-44.9919 -37.2824 34.5856 +-45.434 -36.9931 34.3172 +-45.805 -36.647 33.9961 +-46.9215 -36.8887 34.2204 +-47.9095 -37.0126 34.3353 +-48.9039 -37.1265 34.441 +-50.115 -37.3875 34.683 +-50.5581 -37.0654 34.3843 +-51.6393 -37.203 34.5119 +-52.0083 -36.8203 34.1569 +-53.7502 -37.3946 34.6896 +-54.3396 -37.1493 34.4621 +-55.2958 -37.1469 34.4599 +-55.8102 -36.8408 34.1759 +-57.0704 -37.0166 34.339 +-59.0183 -37.6121 34.8914 +-59.92 -37.5188 34.8048 +-61.5134 -37.8408 35.1036 +-62.9646 -38.0521 35.2996 +-63.9591 -37.9708 35.2242 +-65.1913 -38.0166 35.2666 +-66.2717 -37.9591 35.2133 +-67.435 -37.9353 35.1913 +-69.1618 -38.2084 35.4446 +-71.0609 -38.5494 35.7609 +-72.0834 -38.395 35.6177 +-73.189 -38.2729 35.5045 +-74.379 -38.1817 35.4198 +-75.8196 -38.2027 35.4393 +-77.6808 -38.4131 35.6345 +-79.4693 -38.5621 35.7727 +-81.1833 -38.6511 35.8553 +-83.1584 -38.8393 36.0298 +-84.1264 -38.5389 35.7512 +-86.0314 -38.6504 35.8546 +-87.5168 -38.5517 35.763 +-89.3509 -38.5856 35.7945 +-91.5389 -38.7456 35.943 +-93.2151 -38.664 35.8672 +-95.2461 -38.7059 35.9061 +-97.1972 -38.6898 35.8912 +-98.9784 -38.5827 35.7919 +-102.006 -38.9297 36.1137 +-104.07 -38.8747 36.0627 +-104.439 -38.1748 35.4134 +-104.53 -37.3766 34.673 +-104.971 -36.7064 34.0512 +-106.672 -36.4672 33.8294 +-107.193 -35.8138 33.2232 +-107.616 -35.1266 32.5858 +-107.479 -34.2614 31.7831 +-106.779 -33.2287 30.8251 +-57.2805 -17.3944 16.1362 +-47.0082 -13.9239 12.9168 +-42.7992 -12.3598 11.4658 +-37.1565 -10.4566 9.70018 +-34.8442 -9.55093 8.86006 +-19.1697 -5.11517 4.74516 +-16.4962 -4.28264 3.97285 +-15.2228 -3.84278 3.56482 +-16.1215 -3.95461 3.66855 +-15.9777 -3.80601 3.5307 +-15.1641 -3.50523 3.25168 +-14.7271 -3.30091 3.06214 +-14.0947 -3.06082 2.83941 +-13.5538 -2.84928 2.64318 +-13.3945 -2.72327 2.52628 +-3164.66 -621.667 576.699 +-13.9413 -2.64326 2.45206 +-12.1287 -2.21698 2.05662 +-12.3491 -2.17354 2.01632 +-12.8617 -2.1769 2.01944 +-12.5942 -2.04694 1.89887 +-13.3028 -2.07298 1.92303 +-13.7189 -2.04626 1.89824 +-13.7428 -1.95842 1.81676 +-13.9622 -1.89714 1.75991 +-14.3782 -1.85866 1.72422 +-14.2025 -1.74241 1.61637 +-13.8276 -1.6056 1.48946 +-13.2528 -1.45206 1.34703 +-14.1608 -1.45905 1.35351 +-13.5828 -1.31098 1.21615 +-13.9949 -1.25977 1.16865 +-13.91 -1.16189 1.07784 +-13.1277 -1.01155 0.93838 +-12.2434 -0.864281 0.801763 +-12.7513 -0.817867 0.758706 +-11.2652 -0.64998 0.602963 +-10.9732 -0.562542 0.521851 +-10.7799 -0.483367 0.448402 +-11.5841 -0.445078 0.412883 +-11.2892 -0.361356 0.335218 +-10.9933 -0.281442 0.261084 +-11.596 -0.222616 0.206513 +-11.7982 -0.150978 0.140057 +-10.4996 -0.0671752 0.0623161 +11.3 8.88178e-16 2.84217e-14 +11.2996 -0.0716853 0.0677136 +11.2983 -0.143365 0.135422 +10.9962 -0.209325 0.197727 +11.8928 -0.301909 0.285182 +11.8887 -0.377343 0.356437 +12.1833 -0.464162 0.438446 +11.8778 -0.528119 0.498859 +11.5717 -0.588236 0.555646 +12.4615 -0.712956 0.673455 +12.8509 -0.817326 0.772043 +12.7411 -0.891854 0.842442 +13.9233 -1.06383 1.00489 +14.1087 -1.16858 1.10383 +14.4912 -1.29347 1.22181 +34.8989 -3.34002 3.15497 +41.1952 -4.2088 3.97561 +42.6266 -4.63115 4.37457 +41.1866 -4.74218 4.47944 +37.183 -4.52335 4.27273 +34.2713 -4.39298 4.14959 +39.1335 -5.27261 4.98048 +56.3454 -7.96194 7.52081 +63.3031 -9.36264 8.84391 +71.796 -11.0939 10.4792 +74.9795 -12.0839 11.4144 +114.683 -19.2475 18.1811 +117.851 -20.5683 19.4287 +119.346 -21.6317 20.4332 +120.244 -22.6064 21.3539 +120.065 -23.3871 22.0914 +119.972 -24.1868 22.8467 +119.869 -24.987 23.6026 +120.332 -25.9116 24.476 +120.016 -26.674 25.1961 +120.168 -27.5437 26.0176 +120.404 -28.4398 26.8641 +119.963 -29.1794 27.5627 +120.365 -30.1286 28.4594 +120.564 -31.0367 29.3171 +119.999 -31.7506 29.9915 +120.175 -32.6634 30.8537 +119.685 -33.3985 31.5481 +120.21 -34.4229 32.5157 +120.627 -35.4293 33.4663 +120.197 -36.1931 34.1879 +118.653 -36.6134 34.5849 +116.558 -36.843 34.8017 +114.833 -37.1671 35.1078 +112.744 -37.3515 35.282 +110.932 -37.6045 35.521 +108.039 -37.4618 35.3862 +105.249 -37.3172 35.2496 +102.828 -37.2698 35.2049 +99.7036 -36.9306 34.8845 +96.152 -36.3868 34.3708 +94.9169 -36.6883 34.6556 +92.7152 -36.5952 34.5677 +90.6981 -36.5477 34.5228 +88.8633 -36.5488 34.5239 +86.8623 -36.457 34.4371 +84.6981 -36.2687 34.2592 +83.7452 -36.58 34.5533 +82.1092 -36.5781 34.5515 +80.5646 -36.5968 34.5691 +79.3631 -36.7549 34.7186 +78.4157 -37.0194 34.9684 +75.4667 -36.3118 34.3 +74.5305 -36.5452 34.5204 +73.1824 -36.5637 34.538 +71.4301 -36.3595 34.345 +70.0139 -36.3047 34.2932 +69.0901 -36.4911 34.4693 +68.1671 -36.6685 34.6369 +66.2867 -36.312 34.3002 +65.1343 -36.3329 34.3199 +63.9865 -36.3419 34.3284 +62.8434 -36.3391 34.3258 +61.7054 -36.3247 34.3121 +60.4954 -36.2523 34.2438 +59.445 -36.2609 34.2519 +59.0835 -36.6838 34.6514 +56.9806 -36.0081 34.0131 +55.7972 -35.8864 33.8982 +55.3643 -36.239 34.2312 +54.2636 -36.1468 34.1441 +53.2425 -36.0931 34.0934 +52.0819 -35.9291 33.9385 +51.0731 -35.8541 33.8676 +50.5695 -36.1258 34.1243 +49.4268 -35.9312 33.9405 +48.5029 -35.8804 33.8925 +47.9314 -36.0821 34.083 +46.8769 -35.9103 33.9207 +45.8985 -35.781 33.7985 +45.0619 -35.7492 33.7685 +44.1626 -35.6556 33.6801 +43.3354 -35.6077 33.6348 +42.6438 -35.6617 33.6859 +42.409 -36.0968 34.0968 +41.3955 -35.8633 33.8763 +40.391 -35.6196 33.6462 +40.0248 -35.931 33.9403 +39.0939 -35.7284 33.7489 +38.7251 -36.0323 34.036 +38.2302 -36.219 34.2123 +37.3727 -36.0537 34.0562 +37.1764 -36.5232 34.4996 +35.8549 -35.8754 33.8877 +35.3648 -36.0423 34.0454 +34.8161 -36.1462 34.1435 +34.3809 -36.3657 34.3509 +33.4397 -36.04 34.0432 +33.0058 -36.2508 34.2423 +32.4605 -36.3369 34.3236 +31.9156 -36.4188 34.401 +31.4772 -36.6199 34.591 +30.5662 -36.2602 34.2513 +30.1812 -36.5151 34.492 +29.285 -36.1415 34.1391 +28.85 -36.3259 34.3133 +28.4128 -36.5075 34.4848 +28.0705 -36.8135 34.7739 +27.198 -36.4152 34.3977 +26.7129 -36.5222 34.4987 +25.9503 -36.2389 34.2311 +25.4235 -36.2726 34.2629 +24.6747 -35.9771 33.9838 +24.2419 -36.1322 34.1303 +23.8073 -36.2847 34.2743 +23.3708 -36.4343 34.4157 +22.6423 -36.1181 34.117 +22.2078 -36.2604 34.2514 +21.7717 -36.3999 34.3832 +21.0213 -36.0013 34.0067 +20.5501 -36.0661 34.0679 +20.1538 -36.2625 34.2534 +19.6811 -36.3213 34.3089 +19.1727 -36.3091 34.2974 +18.561 -36.0888 34.0893 +18.0587 -36.0686 34.0703 +17.5916 -36.1133 34.1124 +17.2877 -36.4984 34.4762 +16.8171 -36.5378 34.5134 +16.2543 -36.3665 34.3517 +15.6668 -36.1216 34.1203 +15.2326 -36.2196 34.2129 +14.8256 -36.3846 34.3687 +14.3607 -36.4073 34.3902 +13.7361 -36.0067 34.0118 +13.3551 -36.2329 34.2254 +12.7193 -35.7532 33.7723 +12.2654 -35.762 33.7806 +12.1158 -36.6867 34.6541 +11.405 -35.9122 33.9225 +10.8653 -35.6283 33.6543 +10.5203 -35.9803 33.9868 +10.2674 -36.6868 34.6541 +9.61677 -35.9655 33.9729 +9.22112 -36.1681 34.1643 +8.76923 -36.1537 34.1506 +8.3184 -36.1362 34.1341 +7.91558 -36.3312 34.3183 +7.49394 -36.4519 34.4323 +7.05608 -36.4981 34.4759 +6.61768 -36.5415 34.5169 +6.16659 -36.5099 34.4871 +5.6262 -35.8976 33.9087 +5.27869 -36.5103 34.4875 +4.77312 -36.0358 34.0393 +4.34036 -36.0648 34.0666 +3.89942 -36.0185 34.0229 +3.4669 -36.0418 34.0449 +3.04022 -36.135 34.133 +2.61156 -36.2255 34.2184 +2.17225 -36.1681 34.1642 +1.73799 -36.1805 34.1759 +1.28005 -35.536 33.5672 +0.86913 -36.197 34.1915 +0.435454 -36.2738 34.2641 +2.10942e-15 -36.2752 34.2654 +-0.434581 -36.2011 34.1954 +-0.86913 -36.197 34.1915 +-1.32455 -36.7715 34.7342 +-1.73799 -36.1805 34.1759 +-2.20714 -36.7491 34.713 +-2.60633 -36.1529 34.1499 +-3.09516 -36.788 34.7498 +-3.5227 -36.622 34.593 +-3.88373 -35.8735 33.886 +-4.39265 -36.4993 34.477 +-4.83063 -36.47 34.4494 +-5.26823 -36.438 34.4192 +-5.70544 -36.4032 34.3863 +-6.14221 -36.3656 34.3508 +-6.57852 -36.3252 34.3127 +-7.01432 -36.2821 34.2719 +-7.44959 -36.2363 34.2286 +-7.86865 -36.1158 34.1148 +-8.30189 -36.0645 34.0664 +-8.7345 -36.0105 34.0153 +-9.29401 -36.4541 34.4343 +-9.52137 -35.6087 33.6359 +-10.0681 -35.9744 33.9813 +-10.5411 -36.0514 34.054 +-10.9086 -35.7702 33.7884 +-11.6075 -36.5496 34.5246 +-11.8123 -35.7677 33.786 +-12.2171 -35.6209 33.6473 +-12.8695 -36.1755 34.1712 +-13.3292 -36.1627 34.1591 +-13.7628 -36.0768 34.0779 +-14.2505 -36.1278 34.1262 +-14.9108 -36.5936 34.5662 +-15.0864 -35.872 33.8845 +-15.8472 -36.5376 34.5132 +-16.347 -36.5739 34.5476 +-17.0393 -37.0204 34.9693 +-17.2551 -36.4297 34.4113 +-17.6918 -36.3188 34.3066 +-18.1613 -36.2735 34.2638 +-18.8412 -36.6336 34.6039 +-19.316 -36.5805 34.5538 +-19.7544 -36.4566 34.4367 +-20.1913 -36.3299 34.3171 +-20.9711 -36.8049 34.7657 +-21.3339 -36.5366 34.5123 +-22.1306 -36.9999 34.9499 +-22.6552 -36.9909 34.9415 +-23.1399 -36.9119 34.8668 +-23.5821 -36.7637 34.7269 +-24.0656 -36.6783 34.6462 +-24.8118 -36.9816 34.9327 +-25.2994 -36.8879 34.8441 +-25.7867 -36.7908 34.7524 +-26.2273 -36.6258 34.5965 +-26.9946 -36.9073 34.8625 +-27.4843 -36.7986 34.7598 +-28.2644 -37.0678 35.0141 +-28.3144 -36.381 34.3653 +-29.65 -37.3332 35.2647 +-29.9955 -37.0184 34.9674 +-30.4388 -36.8267 34.7863 +-31.4022 -37.252 35.1881 +-31.7952 -36.9897 34.9404 +-32.238 -36.7866 34.7485 +-32.6783 -36.5807 34.554 +-33.2818 -36.5539 34.5286 +-33.943 -36.5824 34.5556 +-35.1172 -37.1445 35.0865 +-35.6191 -36.9799 34.931 +-35.9455 -36.6342 34.6045 +-37.0305 -37.0517 34.9989 +-37.6523 -36.9906 34.9412 +-38.0347 -36.6923 34.6594 +-38.4128 -36.392 34.3757 +-39.587 -36.8343 34.7935 +-39.9654 -36.5249 34.5012 +-40.9688 -36.7784 34.7407 +-42.0448 -37.0781 35.0238 +-42.4883 -36.8099 34.7705 +-43.0584 -36.6495 34.619 +-44.0872 -36.8688 34.8261 +-45.1244 -37.0777 35.0234 +-45.434 -36.682 34.6496 +-46.6157 -36.9819 34.9329 +-47.5353 -37.057 35.0039 +-47.9095 -36.7013 34.6679 +-48.9039 -36.8143 34.7746 +-50.115 -37.073 35.019 +-51.1238 -37.1649 35.1058 +-51.568 -36.8391 34.7981 +-52.6557 -36.9651 34.9171 +-53.0974 -36.6297 34.6002 +-54.9247 -37.2334 35.1705 +-55.3695 -36.8835 34.84 +-56.5533 -37.0173 34.9664 +-57.8943 -37.2352 35.1722 +-58.9428 -37.248 35.1843 +-59.7679 -37.1087 35.0528 +-62.2028 -37.9432 35.8409 +-62.8874 -37.6858 35.5978 +-63.9591 -37.6514 35.5654 +-65.1913 -37.6968 35.6082 +-66.9809 -38.0426 35.9349 +-67.9904 -37.9261 35.8248 +-69.2417 -37.9308 35.8293 +-70.3375 -37.836 35.7397 +-72.3261 -38.2002 36.0837 +-73.189 -37.951 35.8484 +-74.8705 -38.1107 35.9992 +-76.2317 -38.0872 35.977 +-77.6808 -38.09 35.9796 +-79.2192 -38.1173 36.0055 +-81.1833 -38.326 36.2026 +-82.9054 -38.3955 36.2682 +-84.1264 -38.2147 36.0975 +-85.6903 -38.1734 36.0584 +-87.8596 -38.3771 36.2509 +-89.1786 -38.1873 36.0715 +-91.2791 -38.3107 36.1881 +-93.4762 -38.4461 36.316 +-95.9458 -38.6623 36.5202 +-96.9335 -38.2603 36.1405 +-99.5082 -38.4629 36.3319 +-102.006 -38.6023 36.4635 +-104.693 -38.7788 36.6303 +-105.244 -38.1456 36.0322 +-105.249 -37.3172 35.2496 +-105.332 -36.5228 34.4993 +-107.488 -36.437 34.4182 +-107.193 -35.5126 33.545 +-107.433 -34.772 32.8455 +-107.571 -34.0022 32.1184 +-107.607 -33.2049 31.3652 +-57.1881 -17.2203 16.2662 +-46.1738 -13.5617 12.8103 +-42.0549 -12.0427 11.3755 +-37.5299 -10.4729 9.89261 +-33.9075 -9.21601 8.70541 +-26.7812 -7.08608 6.69348 +-15.1765 -3.90688 3.69043 +-16.0738 -4.02347 3.80055 +-16.1215 -3.92134 3.70408 +-15.1218 -3.57182 3.37392 +-15.0687 -3.45389 3.26253 +-15.1096 -3.35816 3.17211 +-14.6699 -3.15895 2.98393 +-14.0344 -2.92551 2.76342 +-14.1654 -2.85578 2.69756 +-12.4604 -2.42715 2.29267 +-12.9732 -2.43901 2.30388 +-13.5841 -2.46214 2.32573 +-13.4187 -2.34193 2.21218 +-12.5694 -2.10954 1.99266 +-12.8871 -2.07692 1.96185 +-12.4225 -1.91952 1.81317 +-13.425 -1.98557 1.87556 +-13.7428 -1.94195 1.83435 +-13.6672 -1.84144 1.73941 +-14.3782 -1.84303 1.74092 +-14.1039 -1.71575 1.62069 +-14.1239 -1.62621 1.53611 +-14.4396 -1.56879 1.48187 +-14.1608 -1.44678 1.36662 +-14.1777 -1.35688 1.2817 +-12.7046 -1.134 1.07118 +-12.3203 -1.02045 0.963909 +-12.8293 -0.980245 0.925935 +-11.9448 -0.836111 0.789787 +-10.9581 -0.696944 0.658331 +-10.667 -0.61029 0.576477 +-11.7713 -0.598378 0.565225 +-11.2789 -0.501491 0.473706 +-10.9849 -0.418507 0.39532 +-11.2892 -0.358317 0.338465 +-10.9933 -0.279075 0.263613 +-11.796 -0.224549 0.212108 +-10.9983 -0.139559 0.131826 +-11.2996 -0.0716853 0.0677136 +11.3 8.88178e-16 2.84217e-14 +10.9996 -0.0691845 0.0665428 +11.2983 -0.142137 0.13671 +10.9962 -0.207532 0.199608 +11.5929 -0.291777 0.280636 +10.6898 -0.336385 0.323541 +11.8837 -0.448871 0.431732 +11.8778 -0.523596 0.503604 +12.1703 -0.613364 0.589944 +13.0596 -0.740776 0.712491 +12.8509 -0.810327 0.779386 +13.6369 -0.946387 0.910251 +13.9233 -1.05472 1.01445 +15.0029 -1.232 1.18496 +15.7815 -1.39658 1.34325 +37.2783 -3.5372 3.40214 +40.502 -4.10254 3.94589 +41.8354 -4.50627 4.3342 +41.2854 -4.71284 4.53289 +37.3802 -4.5084 4.33626 +36.044 -4.58063 4.40573 +41.1984 -5.50328 5.29315 +61.1554 -8.56764 8.2405 +63.6951 -9.3399 8.98328 +77.078 -11.8081 11.3572 +76.6392 -12.2456 11.778 +115.755 -19.261 18.5256 +118.24 -20.4594 19.6782 +119.734 -21.5162 20.6946 +120.341 -22.4308 21.5743 +120.354 -23.2428 22.3554 +119.876 -23.9604 23.0455 +120.734 -24.9518 23.9991 +120.428 -25.7102 24.7285 +120.973 -26.6563 25.6385 +121.027 -27.5029 26.4527 +120.499 -28.2185 27.141 +119.963 -28.9295 27.8249 +120.27 -29.8472 28.7076 +120.752 -30.819 29.6423 +120.938 -31.7252 30.5139 +120.175 -32.3837 31.1472 +119.778 -33.1383 31.873 +120.675 -34.2602 32.952 +120.163 -34.9908 33.6548 +120.566 -35.9935 34.6192 +119.482 -36.5533 35.1576 +116.558 -36.5275 35.1327 +114.833 -36.8488 35.4418 +112.744 -37.0316 35.6176 +110.932 -37.2824 35.8589 +108.039 -37.1409 35.7228 +105.968 -37.2503 35.828 +102.828 -36.9506 35.5397 +100.416 -36.8761 35.468 +96.152 -36.0752 34.6977 +95.7115 -36.6786 35.2781 +93.1546 -36.4538 35.0619 +90.9604 -36.3395 34.9519 +88.6022 -36.1294 34.7499 +87.6418 -36.4691 35.0766 +86.1629 -36.5799 35.1832 +84.5167 -36.6008 35.2033 +81.7682 -36.1142 34.7352 +81.3278 -36.6271 35.2286 +79.0258 -36.2853 34.8998 +78.4157 -36.7024 35.301 +76.2172 -36.3588 34.9705 +76.0227 -36.9577 35.5466 +73.5945 -36.4547 35.0628 +72.1673 -36.4201 35.0295 +70.2582 -36.1193 34.7402 +69.3328 -36.3056 34.9194 +68.2474 -36.3974 35.0076 +67.0854 -36.4348 35.0437 +65.9277 -36.4605 35.0683 +64.6957 -36.43 35.039 +63.5478 -36.4317 35.0407 +62.4048 -36.4218 35.0311 +61.1898 -36.3545 34.9664 +60.2111 -36.4136 35.0233 +59.0835 -36.3697 34.981 +57.6598 -36.1252 34.7459 +55.7972 -35.5791 34.2206 +55.3643 -35.9287 34.5568 +54.2636 -35.8373 34.4689 +53.2425 -35.784 34.4177 +52.0819 -35.6214 34.2613 +51.7205 -35.9976 34.6232 +50.5695 -35.8164 34.4489 +50.2046 -36.1841 34.8025 +49.0636 -35.9844 34.6104 +48.0009 -35.825 34.4571 +47.0146 -35.7073 34.3439 +46.5805 -36.0017 34.627 +45.6699 -35.9212 34.5497 +44.5641 -35.6715 34.3095 +43.9317 -35.7886 34.4221 +43.4967 -36.0634 34.6864 +42.6038 -35.952 34.5793 +42.1669 -36.2186 34.8357 +40.4546 -35.3702 34.0196 +40.6541 -36.1834 34.8018 +39.6542 -35.93 34.5581 +38.7867 -35.7806 34.4144 +38.352 -36.0232 34.6477 +37.3727 -35.745 34.3801 +36.9385 -35.9786 34.6049 +36.4427 -36.1513 34.7709 +35.3648 -35.7336 34.3692 +34.8161 -35.8366 34.4683 +34.4375 -36.1137 34.7348 +33.943 -36.2691 34.8843 +32.9506 -35.8802 34.5102 +32.406 -35.9652 34.592 +31.9693 -36.1677 34.7867 +31.5302 -36.3674 34.9788 +30.6184 -36.0112 34.6362 +30.2327 -36.2642 34.8795 +29.3357 -35.8941 34.5235 +28.85 -36.0148 34.6397 +28.4128 -36.1948 34.8128 +27.9735 -36.3722 34.9834 +27.198 -36.1034 34.7248 +26.7129 -36.2094 34.8268 +25.9041 -35.8646 34.4952 +25.7867 -36.4757 35.083 +25.0763 -36.2495 34.8654 +24.6803 -36.4706 35.078 +23.8073 -35.9739 34.6003 +23.3708 -36.1223 34.743 +22.6423 -35.8088 34.4415 +22.2485 -36.0157 34.6405 +21.8514 -36.2203 34.8374 +20.9823 -35.6266 34.2663 +20.5501 -35.7572 34.3919 +20.1538 -35.9519 34.5792 +19.7544 -36.1444 34.7643 +19.2802 -36.1999 34.8177 +18.561 -35.7798 34.4136 +18.0929 -35.8274 34.4594 +17.6584 -35.9398 34.5676 +17.3202 -36.254 34.8697 +16.8489 -36.2932 34.9074 +16.2543 -36.0551 34.6784 +15.6367 -35.7435 34.3787 +15.2326 -35.9094 34.5383 +14.7972 -36.0038 34.6291 +14.4158 -36.2341 34.8506 +13.7628 -35.7678 34.4021 +13.3551 -35.9226 34.551 +12.9196 -36.0052 34.6304 +12.5316 -36.225 34.8418 +12.1625 -36.5127 35.1185 +11.6525 -36.3771 34.9881 +11.1034 -36.0972 34.7189 +10.5411 -35.7426 34.3779 +10.2475 -36.3019 34.9158 +9.80758 -36.365 34.9765 +9.22112 -35.8584 34.4892 +8.7866 -35.915 34.5437 +8.35141 -35.969 34.5956 +7.93123 -36.0913 34.7132 +7.49394 -36.1398 34.7599 +7.05608 -36.1855 34.8039 +6.61768 -36.2286 34.8453 +6.06909 -35.6249 34.2647 +5.7394 -36.3063 34.92 +5.29959 -36.341 34.9534 +4.77312 -35.7272 34.3631 +4.34036 -35.7559 34.3907 +3.97003 -36.3566 34.9684 +3.47387 -35.8051 34.4379 +3.04022 -35.8255 34.4576 +2.6168 -35.9873 34.6132 +2.17661 -35.9303 34.5584 +1.74148 -35.9426 34.5703 +1.30361 -35.8802 34.5102 +0.86913 -35.887 34.5167 +0.436327 -36.0353 34.6593 +1.55431e-15 -35.8925 34.522 +-0.434581 -35.8911 34.5207 +-0.883092 -36.4635 35.0712 +-1.30099 -35.8082 34.4409 +-1.73799 -35.8706 34.501 +-2.18097 -36.0023 34.6277 +-2.65343 -36.4911 35.0977 +-3.08906 -36.401 35.0111 +-3.53665 -36.4521 35.0603 +-3.96218 -36.2848 34.8993 +-4.39265 -36.1867 34.805 +-4.91689 -36.8033 35.3981 +-5.36231 -36.7711 35.367 +-5.70544 -36.0914 34.7133 +-6.14221 -36.0541 34.6775 +-6.57852 -36.0141 34.639 +-7.01432 -35.9714 34.5979 +-7.44959 -35.9259 34.5542 +-8.00944 -36.4472 35.0555 +-8.46694 -36.4665 35.0742 +-8.96025 -36.6248 35.2264 +-9.34868 -36.3545 34.9664 +-9.67402 -35.8698 34.5002 +-10.0681 -35.6663 34.3045 +-10.5203 -35.6722 34.3101 +-10.9518 -35.6046 34.2451 +-11.585 -36.1664 34.7855 +-12.0458 -36.1623 34.7815 +-12.459 -36.0152 34.64 +-12.8695 -35.8657 34.4962 +-13.3292 -35.853 34.484 +-14.0033 -36.3928 35.0032 +-14.471 -36.3726 34.9838 +-14.9392 -36.3494 34.9614 +-15.3788 -36.254 34.8697 +-15.8472 -36.2247 34.8415 +-16.347 -36.2607 34.8762 +-16.7537 -36.0882 34.7102 +-17.2551 -36.1177 34.7386 +-17.6918 -36.0078 34.6329 +-18.0929 -35.8274 34.4594 +-18.8762 -36.3873 34.998 +-19.316 -36.2673 34.8825 +-19.7911 -36.2114 34.8288 +-20.5659 -36.687 35.2862 +-20.9328 -36.4231 35.0324 +-21.6074 -36.6881 35.2873 +-22.1306 -36.683 35.2823 +-22.6146 -36.6082 35.2104 +-23.1399 -36.5958 35.1985 +-23.7089 -36.6449 35.2457 +-24.0225 -36.2992 34.9132 +-24.8995 -36.7945 35.3896 +-25.3887 -36.701 35.2997 +-25.7867 -36.4757 35.083 +-26.7352 -37.0153 35.602 +-27.0885 -36.7185 35.3165 +-27.4366 -36.4201 35.0294 +-28.3614 -36.8765 35.4685 +-28.7575 -36.634 35.2352 +-29.6 -36.951 35.5401 +-29.9955 -36.7014 35.3 +-30.4903 -36.5731 35.1766 +-31.3499 -36.8715 35.4637 +-31.7952 -36.673 35.2727 +-32.1305 -36.35 34.9621 +-32.7873 -36.3883 34.9989 +-33.1714 -36.1206 34.7414 +-34.3344 -36.6874 35.2866 +-35.2305 -36.9452 35.5345 +-35.8485 -36.8993 35.4904 +-36.4101 -36.7898 35.3851 +-37.2068 -36.9093 35.5 +-37.6523 -36.6738 35.2735 +-38.6365 -36.9537 35.5427 +-38.4737 -36.1375 34.7576 +-39.6486 -36.5757 35.1791 +-40.5257 -36.7197 35.3177 +-40.9688 -36.4634 35.0712 +-42.0448 -36.7605 35.3569 +-42.6168 -36.6051 35.2074 +-43.1234 -36.3905 35.001 +-44.0216 -36.4986 35.105 +-44.5943 -36.3283 34.9412 +-46.0362 -36.8499 35.4429 +-46.5482 -36.6121 35.2141 +-47.5353 -36.7396 35.3368 +-48.529 -36.8575 35.4502 +-48.9734 -36.5509 35.1553 +-50.0449 -36.7041 35.3026 +-51.1945 -36.8975 35.4887 +-51.568 -36.5236 35.1291 +-53.2311 -37.049 35.6344 +-53.8228 -36.8121 35.4065 +-54.9247 -36.9146 35.5051 +-56.1068 -37.0546 35.6398 +-56.6276 -36.7486 35.3454 +-57.8943 -36.9163 35.5067 +-59.3956 -37.2127 35.7918 +-60.5283 -37.2591 35.8364 +-62.356 -37.7108 36.2709 +-62.8102 -37.3172 35.8924 +-64.7363 -37.7825 36.3399 +-65.8173 -37.7329 36.2921 +-67.0597 -37.7612 36.3194 +-68.1491 -37.689 36.2499 +-69.9605 -37.9963 36.5455 +-71.0609 -37.8978 36.4507 +-72.7306 -38.0849 36.6307 +-73.596 -37.8352 36.3906 +-75.7716 -38.239 36.779 +-76.8086 -38.0468 36.5941 +-78.7586 -38.2877 36.8258 +-78.8856 -37.6318 36.1949 +-81.1833 -37.9978 36.547 +-83.1584 -38.1828 36.7248 +-84.8048 -38.193 36.7347 +-86.4577 -38.1854 36.7274 +-87.8596 -38.0485 36.5957 +-90.1264 -38.2626 36.8016 +-92.7513 -38.5952 37.1216 +-93.9984 -38.3298 36.8663 +-96.7329 -38.6456 37.17 +-97.9881 -38.3453 36.8812 +-100.568 -38.5396 37.068 +-102.006 -38.2717 36.8104 +-105.584 -38.7739 37.2934 +-104.797 -37.6581 36.2202 +-105.069 -36.9344 35.5241 +-105.422 -36.2411 34.8573 +-107.76 -36.2163 34.8335 +-107.193 -35.2084 33.8641 +-107.616 -34.5329 33.2143 +-107.204 -33.5961 32.3133 +-106.779 -32.6671 31.4197 +-59.8674 -17.8727 17.1902 +-47.9354 -13.9586 13.4256 +-43.9157 -12.4679 11.9918 +-40.6107 -11.2355 10.8065 +-35.2189 -9.49046 9.12809 +-32.4194 -8.50443 8.17971 +-16.0249 -4.08996 3.93379 +-16.5466 -4.10633 3.94954 +-15.5525 -3.75055 3.60734 +-15.8826 -3.7194 3.57738 +-15.1641 -3.44598 3.3144 +-15.6834 -3.45584 3.32389 +-15.8205 -3.37753 3.24857 +-14.4189 -2.97991 2.86613 +-12.4308 -2.48464 2.38977 +-3164.66 -611.159 587.823 +-13.1668 -2.45422 2.36051 +-12.4198 -2.23182 2.1466 +-14.0021 -2.42282 2.33031 +-12.8617 -2.14011 2.05839 +-13.4729 -2.15273 2.07054 +-13.3028 -2.03794 1.96013 +-13.131 -1.92546 1.85194 +-14.2336 -1.99407 1.91793 +-13.9622 -1.86507 1.79386 +-14.4767 -1.83976 1.76952 +-14.7943 -1.78433 1.71619 +-14.2227 -1.62357 1.56157 +-14.1429 -1.52339 1.46522 +-14.1608 -1.43439 1.37962 +-13.2854 -1.2606 1.21246 +-14.1934 -1.25604 1.20808 +-12.7177 -1.04434 1.00447 +-12.8293 -0.97185 0.934742 +-12.542 -0.8704 0.837166 +-11.9543 -0.753793 0.725011 +-11.5642 -0.655958 0.630911 +-11.472 -0.578171 0.556095 +-12.1772 -0.536796 0.5163 +-11.2845 -0.426238 0.409963 +-10.6898 -0.336385 0.323541 +-10.4936 -0.264109 0.254024 +-11.2961 -0.213193 0.205052 +-11.2983 -0.142137 0.13671 +-10.9996 -0.0691845 0.0665428 +11.9 -8.88178e-16 2.84217e-14 +10.9996 -0.0685812 0.0671644 +10.9983 -0.137157 0.134323 +10.9962 -0.205723 0.201472 +11.8928 -0.296713 0.290583 +12.1884 -0.380199 0.372344 +11.8837 -0.444957 0.435764 +13.0756 -0.57137 0.559566 +12.9683 -0.647886 0.634501 +13.3587 -0.751135 0.735617 +13.7475 -0.859303 0.84155 +14.5328 -0.999763 0.979109 +14.1222 -1.06046 1.03855 +15.1023 -1.22934 1.20395 +15.3845 -1.34957 1.32169 +38.0715 -3.58096 3.50698 +39.6107 -3.97728 3.89511 +42.0332 -4.48809 4.39537 +42.2731 -4.78352 4.68469 +38.6624 -4.62239 4.52689 +39.1953 -4.93769 4.83569 +44.7381 -5.924 5.80162 +71.9533 -9.99249 9.78605 +70.7506 -10.2841 10.0716 +14.77 -2.24299 2.19665 +78.2989 -12.4017 12.1455 +117.704 -19.4145 19.0134 +118.824 -20.3811 19.96 +120.511 -21.4668 21.0233 +120.341 -22.2352 21.7758 +120.065 -22.9847 22.5098 +119.972 -23.7706 23.2795 +119.773 -24.5373 24.0304 +120.428 -25.486 24.9595 +120.016 -26.215 25.6734 +120.264 -27.0912 26.5315 +120.499 -27.9724 27.3945 +120.911 -28.9039 28.3068 +120.27 -29.5869 28.9757 +120.658 -30.5264 29.8958 +120.844 -31.4241 30.7749 +120.456 -32.1764 31.5117 +120.712 -33.1054 32.4215 +120.582 -33.9353 33.2342 +120.719 -34.8464 34.1265 +121.398 -35.9257 35.1835 +119.758 -36.3183 35.568 +117.475 -36.4939 35.7399 +116.112 -36.9343 36.1712 +113.563 -36.9753 36.2115 +111.748 -37.229 36.4599 +108.852 -37.0939 36.3275 +107.226 -37.364 36.5921 +103.633 -36.9153 36.1527 +101.218 -36.8465 36.0852 +98.0147 -36.4534 35.7003 +96.0647 -36.4929 35.739 +93.5061 -36.2723 35.523 +92.2724 -36.5422 35.7872 +89.5596 -36.2014 35.4535 +88.1614 -36.3654 35.6141 +86.4214 -36.3698 35.6184 +84.5167 -36.2817 35.5321 +82.5356 -36.1353 35.3888 +81.667 -36.4592 35.7059 +80.1222 -36.4679 35.7145 +78.5834 -36.4602 35.707 +77.1344 -36.4756 35.722 +75.0279 -36.1561 35.4091 +73.5945 -36.1369 35.3903 +72.495 -36.2665 35.5172 +70.9909 -36.1777 35.4303 +69.8182 -36.241 35.4923 +68.6494 -36.2925 35.5427 +67.0055 -36.0741 35.3289 +65.9277 -36.1426 35.3959 +64.6169 -36.0683 35.3232 +63.5478 -36.1141 35.368 +63.0265 -36.4639 35.7106 +61.3442 -36.1284 35.382 +60.0579 -36.0043 35.2604 +59.0835 -36.0526 35.3077 +57.6598 -35.8102 35.0704 +56.5462 -35.7423 35.0039 +56.1074 -36.0935 35.3478 +55.0009 -36.0075 35.2636 +53.8276 -35.8618 35.1209 +52.8073 -35.8026 35.0629 +51.7205 -35.6838 34.9466 +50.7121 -35.6042 34.8687 +50.2046 -35.8686 35.1276 +49.1337 -35.7216 34.9836 +48.6261 -35.9752 35.232 +47.703 -35.9142 35.1722 +46.6487 -35.74 35.0016 +46.2779 -36.0821 35.3367 +45.0994 -35.7853 35.046 +43.6667 -35.2625 34.534 +43.5623 -35.8029 35.0633 +43.1234 -36.0732 35.328 +42.0383 -35.7934 35.0539 +41.0907 -35.613 34.8773 +40.6541 -35.8679 35.1269 +39.5919 -35.5609 34.8262 +39.2792 -35.919 35.1769 +38.352 -35.7091 34.9713 +37.9143 -35.9467 35.2041 +37.4144 -36.1244 35.3781 +37.0305 -36.4141 35.6618 +36.0036 -36.0619 35.3169 +35.5044 -36.2265 35.478 +34.3809 -35.7399 35.0016 +33.943 -35.9529 35.2101 +33.0058 -35.627 34.8909 +32.8962 -36.1909 35.4432 +31.9693 -35.8523 35.1116 +31.5302 -36.0503 35.3055 +31.0887 -36.2455 35.4967 +30.1812 -35.8867 35.1453 +30.2493 -36.6891 35.9312 +28.9 -35.7626 35.0238 +28.4128 -35.8792 35.138 +28.022 -36.1175 35.3713 +27.6275 -36.3536 35.6026 +26.7599 -35.9568 35.2139 +26.2735 -36.0588 35.3139 +25.9229 -36.3486 35.5977 +25.0763 -35.9334 35.191 +24.6365 -36.0884 35.3428 +23.7642 -35.5957 34.8604 +23.4131 -35.8721 35.131 +22.974 -36.0167 35.2726 +22.6146 -36.289 35.5393 +21.8116 -35.839 35.0986 +21.4121 -36.0394 35.2949 +20.9711 -36.1715 35.4242 +20.1538 -35.6385 34.9022 +20.0476 -36.361 35.6098 +19.2444 -35.8176 35.0777 +18.8762 -36.0701 35.3249 +18.4007 -36.1193 35.3731 +17.7251 -35.7612 35.0224 +17.4179 -36.1405 35.3939 +16.8806 -36.0445 35.2998 +16.5324 -36.3522 35.6012 +15.6367 -35.4318 34.6999 +15.4957 -36.2112 35.4631 +14.8256 -35.7584 35.0197 +14.6363 -36.4676 35.7142 +14.03 -36.1444 35.3977 +13.3809 -35.6784 34.9413 +12.9196 -35.6913 34.9539 +12.4832 -35.7705 35.0315 +12.0691 -35.9164 35.1744 +11.6075 -35.9207 35.1786 +11.3198 -36.4799 35.7263 +10.749 -36.1298 35.3834 +10.2674 -36.0554 35.3105 +9.97931 -36.6791 35.9214 +9.42158 -36.3185 35.5682 +8.97761 -36.3758 35.6243 +8.36791 -35.7258 34.9877 +7.93123 -35.7766 35.0375 +7.49394 -35.8247 35.0845 +7.05608 -35.87 35.129 +6.63073 -35.9835 35.2401 +6.30065 -36.6616 35.9042 +5.7394 -35.9897 35.2462 +5.28914 -35.953 35.2103 +4.86896 -36.1269 35.3805 +4.41008 -36.0136 35.2695 +3.90726 -35.4699 34.7371 +3.5506 -36.2768 35.5274 +3.04632 -35.5845 34.8493 +2.65343 -36.1729 35.4256 +2.18097 -35.6884 34.9511 +1.77289 -36.2719 35.5225 +1.30885 -35.7102 34.9724 +0.884837 -36.217 35.4688 +0.436327 -35.7211 34.9831 +1.66533e-15 -36.2225 35.4742 +-0.442435 -36.2212 35.4729 +-0.883092 -36.1456 35.3988 +-1.32717 -36.2101 35.462 +-1.7694 -36.2004 35.4526 +-2.17225 -35.5457 34.8113 +-2.6482 -36.1016 35.3557 +-3.09516 -36.1549 35.408 +-3.52968 -36.063 35.318 +-4.04064 -36.6806 35.9228 +-4.47981 -36.5829 35.8271 +-4.92647 -36.5536 35.7984 +-5.36231 -36.4504 35.6974 +-5.81865 -36.4866 35.7328 +-6.27627 -36.5198 35.7653 +-6.57852 -35.7001 34.9626 +-7.13958 -36.2945 35.5447 +-7.58262 -36.2486 35.4997 +-8.00944 -36.1294 35.383 +-8.46694 -36.1486 35.4018 +-8.96025 -36.3055 35.5554 +-9.36691 -36.1077 35.3618 +-9.65494 -35.4869 34.7537 +-10.2674 -36.0554 35.3105 +-10.7282 -36.0599 35.3149 +-11.1683 -35.9917 35.2481 +-11.6075 -35.9207 35.1786 +-12.0458 -35.8469 35.1064 +-12.459 -35.7011 34.9636 +-12.8695 -35.5529 34.8184 +-13.5362 -36.0924 35.3468 +-13.7895 -35.5247 34.7908 +-14.4985 -36.1242 35.3779 +-14.9392 -36.0324 35.288 +-15.3788 -35.9379 35.1954 +-16.1178 -36.522 35.7675 +-16.5633 -36.4201 35.6677 +-17.071 -36.451 35.698 +-17.5481 -36.4108 35.6586 +-17.9922 -36.3 35.55 +-18.7427 -36.7907 36.0306 +-18.9112 -36.137 35.3904 +-19.6386 -36.5513 35.7962 +-20.0476 -36.361 35.6098 +-20.5284 -36.3009 35.551 +-20.9711 -36.1715 35.4242 +-21.6856 -36.4997 35.7457 +-22.0907 -36.2976 35.5477 +-22.6552 -36.3543 35.6033 +-23.1399 -36.2767 35.5272 +-23.5821 -36.1311 35.3846 +-24.1517 -36.1761 35.4287 +-24.8556 -36.4094 35.6572 +-25.701 -36.8285 36.0677 +-26.286 -36.8579 36.0964 +-26.6891 -36.6292 35.8725 +-27.4641 -36.903 36.1406 +-27.8661 -36.6676 35.91 +-28.3129 -36.4924 35.7385 +-29.25 -36.9363 36.1733 +-29.55 -36.567 35.8115 +-29.9955 -36.3813 35.6297 +-30.4388 -36.1929 35.4452 +-31.3499 -36.55 35.7949 +-31.7952 -36.3532 35.6022 +-32.238 -36.1536 35.4067 +-33.2774 -36.6103 35.854 +-34.0545 -36.7589 35.9995 +-34.8377 -36.9005 36.1382 +-35.4004 -36.7997 36.0395 +-36.1353 -36.8702 36.1085 +-36.1197 -36.1782 35.4308 +-37.2068 -36.5875 35.8316 +-37.5333 -36.2392 35.4906 +-37.9745 -36.0038 35.26 +-39.1434 -36.4459 35.6929 +-40.0796 -36.6508 35.8937 +-40.5257 -36.3996 35.6476 +-41.4722 -36.5897 35.8338 +-42.5536 -36.881 36.1191 +-42.6168 -36.2859 35.5363 +-43.6429 -36.5078 35.7536 +-44.6776 -36.7196 35.961 +-45.1907 -36.4932 35.7392 +-46.0362 -36.5286 35.7739 +-47.0886 -36.7142 35.9557 +-47.5353 -36.4193 35.6669 +-48.5978 -36.5879 35.832 +-49.5986 -36.6947 35.9366 +-50.6757 -36.8427 36.0815 +-51.1238 -36.5253 35.7707 +-52.3526 -36.756 35.9967 +-53.375 -36.8253 36.0645 +-54.4031 -36.8845 36.1225 +-54.9247 -36.5927 35.8367 +-56.0331 -36.6833 35.9254 +-57.1478 -36.7627 36.0032 +-58.6432 -37.0678 36.302 +-59.9994 -37.2633 36.4934 +-61.2127 -37.3518 36.5801 +-62.6624 -37.5657 36.7896 +-63.5047 -37.4008 36.6281 +-65.358 -37.8127 37.0316 +-66.5217 -37.8041 37.0231 +-67.6113 -37.7399 36.9602 +-68.7837 -37.7083 36.9293 +-70.3598 -37.88 37.0974 +-71.8648 -37.9924 37.2075 +-73.7014 -38.2567 37.4663 +-74.8986 -38.1692 37.3806 +-75.7716 -37.9056 37.1225 +-77.7975 -38.2006 37.4114 +-78.427 -37.794 37.0132 +-80.3032 -37.974 37.1895 +-81.9381 -38.0166 37.2313 +-83.9174 -38.1953 37.4062 +-85.2288 -38.0493 37.2632 +-86.7135 -37.9644 37.1801 +-88.2025 -37.8639 37.0817 +-90.2987 -38.0015 37.2164 +-92.7513 -38.2587 37.4683 +-94.6947 -38.2771 37.4863 +-97.1702 -38.4818 37.6868 +-98.779 -38.3177 37.5261 +-101.274 -38.4719 37.6771 +-104.046 -38.6967 37.8973 +-106.386 -38.7277 37.9277 +-104.976 -37.3935 36.621 +-106.058 -36.9568 36.1933 +-105.602 -35.9866 35.2432 +-108.123 -36.0213 35.2772 +-107.739 -35.0792 34.3545 +-108.164 -34.4061 33.6953 +-107.204 -33.3031 32.6151 +-107.423 -32.5776 31.9046 +-17.5537 -5.19475 5.08743 +-51.1805 -14.7736 14.4684 +-44.0088 -12.3853 12.1294 +-41.6377 -11.4192 11.1833 +-36.8112 -9.83309 9.62995 +-33.0772 -8.60131 8.42362 +-16.0249 -4.05429 3.97054 +-15.9793 -3.93097 3.84975 +-15.5525 -3.71785 3.64104 +-16.168 -3.7532 3.67567 +-15.9271 -3.58781 3.51369 +-15.8747 -3.46748 3.39585 +-15.3411 -3.24663 3.17956 +-14.4189 -2.95393 2.8929 +-14.2617 -2.82574 2.76736 +-13.04 -2.49633 2.44475 +-3171.94 -586.076 573.968 +-13.5841 -2.41977 2.36978 +-11.9602 -2.05145 2.00907 +-13.7386 -2.26609 2.21928 +-13.8634 -2.19581 2.15045 +-14.0853 -2.13901 2.09482 +-13.8169 -2.00838 1.96689 +-13.4483 -1.86762 1.82904 +-14.5522 -1.92693 1.88712 +-13.6888 -1.72447 1.68884 +-13.9066 -1.66264 1.62829 +-13.9264 -1.57588 1.54332 +-14.1429 -1.51011 1.47891 +-14.755 -1.48154 1.45093 +-13.8802 -1.30556 1.27859 +-14.1934 -1.24509 1.21937 +-13.6119 -1.10802 1.08513 +-12.3321 -0.926032 0.906901 +-12.6415 -0.869655 0.851689 +-11.6555 -0.728537 0.713486 +-12.1624 -0.683871 0.669742 +-11.472 -0.57313 0.561289 +-12.1772 -0.532115 0.521122 +-12.4829 -0.467391 0.457735 +-11.7888 -0.367733 0.360136 +-10.9933 -0.274272 0.268606 +-11.2961 -0.211334 0.206968 +-11.7982 -0.147132 0.144092 +-10.9996 -0.0685812 0.0671644 +10.7 0 2.84217e-14 +10.4996 -0.0648827 0.0646995 +11.5982 -0.143355 0.14295 +11.2961 -0.209458 0.208866 +11.8928 -0.294079 0.293249 +11.2892 -0.349025 0.348039 +11.8837 -0.441007 0.439762 +12.7761 -0.553329 0.551766 +13.0681 -0.647074 0.645247 +12.3618 -0.688911 0.686966 +13.7475 -0.851674 0.849269 +14.0351 -0.956955 0.954253 +14.9178 -1.11026 1.10713 +13.6119 -1.09819 1.09509 +15.6822 -1.36349 1.35964 +36.4852 -3.40129 3.39168 +38.1253 -3.79414 3.78343 +41.1431 -4.35405 4.34176 +41.4829 -4.65243 4.6393 +40.8322 -4.83847 4.8248 +45.6951 -5.70541 5.6893 +51.2276 -6.72309 6.70411 +20.1234 -2.76981 2.76199 +12.3471 -1.77879 1.77377 +114.345 -17.2104 17.1618 +115.789 -18.1769 18.1255 +118.776 -19.4173 19.3625 +119.407 -20.2993 20.242 +119.54 -21.1049 21.0454 +120.244 -22.0201 21.9579 +120.161 -22.799 22.7346 +119.972 -23.5595 23.493 +120.734 -24.5147 24.4455 +120.428 -25.2598 25.1884 +120.016 -25.9822 25.9089 +121.027 -27.021 26.9447 +120.404 -27.7022 27.624 +121.006 -28.6699 28.5889 +120.365 -29.3473 29.2644 +120.47 -30.2081 30.1229 +119.999 -30.9272 30.8399 +120.456 -31.8907 31.8007 +120.619 -32.7861 32.6935 +120.117 -33.5042 33.4096 +120.348 -34.4309 34.3336 +121.213 -35.5526 35.4523 +120.034 -36.0789 35.977 +117.475 -36.1699 36.0678 +116.112 -36.6064 36.503 +114.382 -36.9114 36.8071 +112.292 -37.0781 36.9734 +108.942 -36.7951 36.6912 +108.035 -37.3116 37.2063 +105.155 -37.1247 37.0199 +102.198 -36.873 36.7689 +98.4582 -36.2933 36.1908 +96.2413 -36.2355 36.1332 +93.8577 -36.0855 35.9836 +92.7097 -36.3894 36.2867 +89.9077 -36.0195 35.9178 +88.5078 -36.1842 36.082 +87.1969 -36.3704 36.2677 +85.031 -36.1784 36.0762 +83.3029 -36.1475 36.0454 +82.8543 -36.6608 36.5573 +81.2186 -36.6388 36.5354 +79.6737 -36.6379 36.5344 +78.1351 -36.6208 36.5174 +76.4373 -36.5082 36.4052 +74.5834 -36.2974 36.1949 +73.1503 -36.2695 36.1671 +71.2351 -35.9799 35.8783 +70.3036 -36.169 36.0669 +68.8905 -36.0966 35.9947 +67.7243 -36.1374 36.0354 +66.5623 -36.1666 36.0645 +64.6957 -35.7918 35.6907 +63.5478 -35.7935 35.6924 +63.1043 -36.1848 36.0826 +61.1898 -35.7176 35.6167 +60.7473 -36.0943 35.9924 +59.7679 -36.1464 36.0443 +58.5655 -36.0498 35.948 +57.2202 -35.8473 35.7461 +56.1817 -35.8204 35.7193 +54.9272 -35.64 35.5394 +54.559 -36.0264 35.9246 +53.3876 -35.8747 35.7734 +52.3679 -35.8097 35.7086 +51.2114 -35.6356 35.535 +50.2046 -35.5502 35.4498 +49.0636 -35.3539 35.2541 +48.6956 -35.7067 35.6059 +48.116 -35.9036 35.8022 +47.1943 -35.837 35.7358 +46.2104 -35.7096 35.6088 +45.7685 -35.9938 35.8922 +44.3955 -35.5327 35.4324 +43.5623 -35.4851 35.3849 +42.7337 -35.4299 35.3298 +42.6168 -35.9638 35.8622 +41.5359 -35.6794 35.5787 +41.3463 -36.1548 36.0527 +40.2767 -35.8547 35.7535 +39.8333 -36.1023 36.0003 +38.7781 -35.7853 35.6842 +37.8542 -35.5711 35.4707 +37.3549 -35.7467 35.6458 +36.9129 -35.9762 35.8747 +35.8874 -35.6264 35.5258 +35.5044 -35.9049 35.8035 +34.9473 -36.0062 35.9045 +34.5022 -36.2207 36.1185 +33.3922 -35.724 35.6231 +32.9507 -35.929 35.8276 +32.5066 -36.1312 36.0292 +31.5302 -35.7302 35.6294 +31.0887 -35.9237 35.8223 +30.6448 -36.1145 36.0125 +30.1985 -36.3024 36.1999 +29.4 -36.0584 35.9566 +28.856 -36.1154 36.0134 +28.0705 -35.8588 35.7576 +27.5798 -35.9687 35.8671 +27.1824 -36.2003 36.0981 +26.3197 -35.8015 35.7005 +25.9229 -36.0259 35.9242 +25.4779 -36.1848 36.0826 +24.8995 -36.1499 36.0478 +24.2378 -35.9828 35.8812 +23.7511 -36.067 35.9652 +23.0155 -35.7614 35.6604 +22.5739 -35.9022 35.8009 +21.8116 -35.5208 35.4206 +21.6856 -36.1757 36.0736 +20.9328 -35.785 35.6839 +20.491 -35.913 35.8116 +20.011 -35.9723 35.8708 +19.6744 -36.293 36.1905 +18.8762 -35.7499 35.6489 +18.7427 -36.464 36.3611 +18.0256 -36.0444 35.9427 +17.6132 -36.2214 36.1192 +16.9441 -35.8588 35.7576 +16.7178 -36.4336 36.3307 +15.8773 -35.6576 35.5569 +15.4957 -35.8898 35.7884 +15.1096 -36.1199 36.0179 +14.6363 -36.1438 36.0418 +13.9498 -35.6188 35.5182 +13.588 -35.9088 35.8074 +13.17 -36.06 35.9582 +12.7009 -36.0713 35.9694 +12.1158 -35.7353 35.6344 +11.8099 -36.2227 36.1204 +11.1034 -35.4648 35.3646 +10.7698 -35.8783 35.777 +10.2475 -35.6659 35.5652 +9.80758 -35.7279 35.627 +9.42158 -35.9961 35.8944 +8.96025 -35.9832 35.8816 +8.53296 -36.107 36.0051 +8.08766 -36.1584 36.0563 +7.64175 -36.2069 36.1047 +7.06999 -35.6217 35.5211 +6.61768 -35.5939 35.4934 +6.28846 -36.2659 36.1635 +5.72808 -35.5998 35.4993 +5.29959 -35.7043 35.6035 +4.85938 -35.7357 35.6348 +4.48852 -36.3287 36.2261 +3.97788 -35.7903 35.6892 +3.5506 -35.9548 35.8533 +3.04632 -35.2686 35.169 +2.65343 -35.8517 35.7505 +2.17225 -35.2301 35.1306 +1.7694 -35.8791 35.7778 +1.30623 -35.3224 35.2226 +0.86913 -35.2583 35.1587 +0.442435 -35.8996 35.7983 +1.77636e-15 -35.901 35.7996 +-0.442435 -35.8996 35.7983 +-0.884837 -35.8955 35.7942 +-1.32717 -35.8886 35.7873 +-1.76591 -35.8083 35.7072 +-2.25076 -36.5035 36.4004 +-2.65343 -35.8517 35.7505 +-3.09516 -35.834 35.7328 +-3.53665 -35.8135 35.7124 +-4.04849 -36.4256 36.3227 +-4.47981 -36.2581 36.1558 +-4.91689 -36.1586 36.0565 +-5.46684 -36.8311 36.7271 +-5.81865 -36.1627 36.0606 +-6.28846 -36.2659 36.1635 +-6.70905 -36.0853 35.9834 +-7.1535 -36.0424 35.9407 +-7.5974 -35.9968 35.8952 +-8.15024 -36.4381 36.3352 +-8.56597 -36.2467 36.1443 +-9.01234 -36.1923 36.0902 +-9.36691 -35.7872 35.6861 +-9.82666 -35.7974 35.6964 +-10.2475 -35.6659 35.5652 +-10.749 -35.809 35.7079 +-11.1899 -35.7413 35.6404 +-11.63 -35.6708 35.57 +-12.2092 -36.0106 35.909 +-12.6525 -35.9339 35.8324 +-13.0949 -35.8543 35.7531 +-13.5621 -35.8404 35.7392 +-14.03 -35.8235 35.7223 +-14.719 -36.3481 36.2454 +-14.9108 -35.6446 35.544 +-15.6419 -36.2283 36.126 +-16.0878 -36.1303 36.0283 +-16.5942 -36.1642 36.0621 +-17.1027 -36.1945 36.0923 +-17.5481 -36.0875 35.9857 +-17.9922 -35.9777 35.8761 +-18.4349 -35.8651 35.7639 +-19.1914 -36.3468 36.2442 +-19.6744 -36.293 36.1905 +-20.4141 -36.6971 36.5935 +-20.8281 -36.5038 36.4008 +-21.3155 -36.4392 36.3363 +-21.6856 -36.1757 36.0736 +-22.4496 -36.5599 36.4566 +-22.9806 -36.5491 36.4459 +-23.5131 -36.5346 36.4314 +-24.0047 -36.4521 36.3492 +-24.41 -36.2384 36.1361 +-25.294 -36.7226 36.619 +-25.7902 -36.6283 36.5249 +-26.6038 -36.9723 36.8679 +-27.1046 -36.8693 36.7652 +-27.6049 -36.7629 36.6591 +-28.2478 -36.8399 36.7359 +-28.6522 -36.602 36.4986 +-29.25 -36.6084 36.5051 +-29.65 -36.365 36.2623 +-30.4523 -36.6074 36.5041 +-30.7993 -36.2965 36.194 +-31.2454 -36.1048 36.0029 +-32.696 -37.0513 36.9467 +-32.7215 -36.3701 36.2674 +-33.7676 -36.8198 36.7158 +-34.0545 -36.4326 36.3297 +-34.7818 -36.5143 36.4112 +-34.9473 -36.0062 35.9045 +-35.9059 -36.3109 36.2084 +-36.7585 -36.4912 36.3881 +-37.7946 -36.8355 36.7315 +-37.6523 -36.0313 35.9296 +-38.6967 -36.3629 36.2602 +-39.6304 -36.5717 36.4685 +-40.6952 -36.8835 36.7793 +-41.1482 -36.6306 36.5272 +-42.1645 -36.8702 36.7661 +-42.2356 -36.2804 36.178 +-43.1953 -36.452 36.3491 +-43.6429 -36.1837 36.0815 +-44.612 -36.3402 36.2376 +-45.6545 -36.5404 36.4372 +-46.6384 -36.6779 36.5743 +-47.0886 -36.3883 36.2855 +-48.0127 -36.4585 36.3555 +-49.2862 -36.7767 36.6729 +-50.2238 -36.8274 36.7234 +-50.8159 -36.6166 36.5133 +-51.8309 -36.7018 36.5981 +-52.4952 -36.529 36.4258 +-53.3031 -36.4492 36.3463 +-54.4756 -36.6058 36.5025 +-55.5829 -36.7025 36.5988 +-56.6229 -36.7403 36.6365 +-57.4451 -36.6259 36.5225 +-58.5683 -36.6918 36.5882 +-60.0749 -36.9789 36.8745 +-61.6689 -37.2961 37.1908 +-63.0455 -37.4598 37.354 +-63.5047 -37.0688 36.9641 +-65.4357 -37.5217 37.4157 +-66.5217 -37.4685 37.3627 +-68.3205 -37.7971 37.6904 +-68.7837 -37.3735 37.268 +-70.5994 -37.6715 37.5651 +-72.0256 -37.7393 37.6327 +-73.9442 -38.042 37.9346 +-75.3057 -38.0359 37.9285 +-77.0822 -38.2189 38.111 +-78.292 -38.1022 37.9946 +-79.8363 -38.1317 38.024 +-80.7201 -37.8323 37.7255 +-82.6929 -38.0263 37.9189 +-84.3391 -38.0465 37.9391 +-85.9921 -38.0492 37.9418 +-88.2483 -38.2934 38.1852 +-89.6597 -38.1478 38.0401 +-91.0742 -37.9876 37.8803 +-93.7906 -38.3439 38.2357 +-95.2169 -38.1464 38.0387 +-97.1702 -38.1402 38.0325 +-99.8336 -38.383 38.2746 +-101.804 -38.3298 38.2216 +-104.046 -38.3532 38.2449 +-106.03 -38.2553 38.1473 +-105.334 -37.1879 37.0829 +-105.698 -36.5046 36.4015 +-106.234 -35.8806 35.7793 +-108.485 -35.8212 35.7201 +-108.376 -34.9733 34.8746 +-107.89 -34.0143 33.9182 +-107.846 -33.2051 33.1114 +-107.331 -32.2607 32.1696 +-104.121 -30.5395 30.4532 +-54.2403 -15.5178 15.474 +-45.4974 -12.6906 12.6548 +-42.5713 -11.5716 11.5389 +-38.7782 -10.2665 10.2376 +-36.836 -9.49372 9.46691 +-15.8364 -3.97103 3.95982 +-15.8847 -3.87301 3.86208 +-15.5525 -3.68484 3.67444 +-15.7875 -3.63236 3.6221 +-15.641 -3.49208 3.48222 +-16.5441 -3.58162 3.57151 +-14.3823 -3.01669 3.00818 +-13.8422 -2.8106 2.80266 +-12.0454 -2.36541 2.35873 +-3164.66 -600.452 598.756 +-13.3604 -2.44668 2.43977 +-12.1287 -2.14133 2.13528 +-12.8353 -2.18201 2.17585 +-13.4463 -2.19819 2.19198 +-11.7156 -1.83915 1.83396 +-12.8137 -1.92863 1.92318 +-12.837 -1.84937 1.84415 +-13.7428 -1.89158 1.88624 +-13.3723 -1.75497 1.75001 +-14.5752 -1.81982 1.81469 +-14.4984 -1.71801 1.71316 +-13.9264 -1.56189 1.55748 +-14.2418 -1.50717 1.50292 +-13.3686 -1.33042 1.32666 +-13.3845 -1.24775 1.24423 +-13.8956 -1.20815 1.20474 +-13.6119 -1.09819 1.09509 +-12.7299 -0.947417 0.944742 +-13.1392 -0.895867 0.893338 +-12.6517 -0.783788 0.781575 +-13.0596 -0.727798 0.725743 +-11.2725 -0.558163 0.556587 +-11.3787 -0.492808 0.491417 +-11.684 -0.433595 0.432371 +-11.589 -0.358291 0.357279 +-11.5929 -0.286665 0.285856 +-11.8959 -0.220579 0.219956 +-11.2983 -0.139647 0.139253 +-10.9996 -0.0679724 0.0677805 +11.3 8.88178e-16 2.84217e-14 +10.6996 -0.065521 0.0665258 +11.5982 -0.142059 0.144238 +11.2961 -0.207564 0.210748 +10.9933 -0.269381 0.273512 +12.1884 -0.373418 0.379144 +11.5841 -0.426003 0.432537 +12.9758 -0.556895 0.565436 +13.0681 -0.641226 0.65106 +13.259 -0.732237 0.743467 +14.2456 -0.874557 0.887969 +14.2342 -0.961751 0.9765 +15.1167 -1.11489 1.13199 +14.9036 -1.19153 1.2098 +17.9651 -1.54785 1.57159 +33.5108 -3.09578 3.14326 +36.3428 -3.58407 3.63903 +41.242 -4.32507 4.3914 +40.8903 -4.54452 4.61421 +42.7062 -5.01478 5.09169 +51.21 -6.3362 6.43337 +67.058 -8.72115 8.8549 +114.85 -15.6654 15.9056 +115.239 -16.452 16.7043 +117.378 -17.5071 17.7756 +117.839 -18.3316 18.6127 +119.165 -19.305 19.601 +120.282 -20.2633 20.5741 +119.734 -20.9482 21.2694 +120.438 -21.8562 22.1914 +120.258 -22.6111 22.9578 +120.068 -23.3653 23.7237 +120.638 -24.2737 24.646 +120.428 -25.0315 25.4153 +120.877 -25.9321 26.3298 +120.836 -26.7346 27.1446 +120.784 -27.5386 27.9609 +121.196 -28.4552 28.8916 +120.365 -29.082 29.5281 +120.47 -29.9351 30.3942 +119.811 -30.5997 31.069 +120.175 -31.5288 32.0123 +120.432 -32.4395 32.937 +120.117 -33.2014 33.7106 +120.534 -34.1723 34.6964 +121.213 -35.2313 35.7716 +120.402 -35.8625 36.4125 +117.842 -35.9549 36.5063 +117.025 -36.561 37.1217 +114.018 -36.4614 37.0206 +112.745 -36.8913 37.457 +110.567 -37.0063 37.5738 +108.844 -37.2512 37.8225 +105.602 -36.9457 37.5123 +102.733 -36.7308 37.2942 +99.0791 -36.1921 36.7471 +97.7423 -36.468 37.0273 +95.0001 -36.1946 36.7497 +93.4094 -36.3327 36.8899 +90.6911 -36.0049 36.557 +89.8068 -36.3834 36.9414 +87.7138 -36.2553 36.8113 +86.7453 -36.5742 37.1351 +84.0703 -36.1507 36.7052 +83.5327 -36.6269 37.1886 +81.556 -36.4584 37.0176 +80.0092 -36.4596 37.0188 +78.1351 -36.2898 36.8463 +77.2663 -36.5706 37.1315 +75.3251 -36.3269 36.8841 +74.1333 -36.4246 36.9832 +72.0492 -36.0622 36.6153 +71.5171 -36.4608 37.0199 +69.1317 -35.8956 36.4461 +68.6827 -36.3175 36.8745 +66.6417 -35.8824 36.4327 +66.8233 -36.6347 37.1966 +65.0347 -36.2999 36.8566 +64.5031 -36.6526 37.2147 +62.6559 -36.2428 36.7986 +61.5134 -36.2191 36.7746 +59.7679 -35.8197 36.369 +59.2447 -36.1383 36.6925 +57.2202 -35.5233 36.0681 +57.7424 -36.4827 37.0422 +55.6644 -35.792 36.3409 +54.4859 -35.6529 36.1997 +53.3876 -35.5504 36.0956 +52.4399 -35.5348 36.0798 +51.9246 -35.8054 36.3545 +50.841 -35.6754 36.2225 +49.8346 -35.585 36.1307 +49.3207 -35.8383 36.3879 +48.2537 -35.6808 36.228 +47.1943 -35.5131 36.0577 +46.8184 -35.8525 36.4023 +45.8354 -35.7206 36.2684 +44.8594 -35.5795 36.1251 +44.0872 -35.588 36.1338 +43.1234 -35.4298 35.9732 +43.0025 -35.9613 36.5128 +41.5359 -35.3569 35.8992 +41.2834 -35.7735 36.3221 +40.2144 -35.4758 36.0198 +39.7717 -35.7207 36.2685 +38.7781 -35.4618 36.0057 +38.3958 -35.7539 36.3023 +37.4738 -35.5365 36.0815 +37.0305 -35.7646 36.3131 +36.4681 -35.8757 36.4259 +36.078 -36.1552 36.7097 +34.9473 -35.6807 36.228 +34.5022 -35.8934 36.4438 +33.5026 -35.5182 36.0629 +33.0596 -35.7219 36.2698 +32.5604 -35.8638 36.4138 +32.0071 -35.9428 36.4941 +31.6112 -36.1973 36.7524 +30.7478 -35.9083 36.459 +30.2493 -36.0348 36.5874 +29.7 -36.0971 36.6507 +28.9053 -35.8501 36.3999 +28.5068 -36.087 36.6405 +27.6752 -35.7669 36.3154 +27.6519 -36.4926 37.0523 +26.7814 -36.1004 36.654 +26.3314 -36.263 36.8192 +25.4333 -35.7949 36.3439 +25.0748 -36.0754 36.6286 +24.5822 -36.1642 36.7188 +24.1315 -36.3134 36.8703 +23.4302 -36.0766 36.6299 +22.9806 -36.2187 36.7742 +22.2103 -35.8433 36.393 +21.6856 -35.8487 36.3985 +21.3155 -36.1098 36.6636 +20.5284 -35.6534 36.2002 +20.0843 -35.7778 36.3265 +19.6744 -35.9649 36.5165 +19.2264 -36.084 36.6374 +18.7427 -36.1345 36.6886 +18.2592 -36.1817 36.7366 +17.5807 -35.8277 36.3771 +17.2614 -36.2001 36.7553 +16.7487 -36.171 36.7258 +16.3584 -36.406 36.9644 +15.7296 -36.1022 36.6559 +15.1096 -35.7934 36.3424 +14.6363 -35.8172 36.3665 +13.9766 -35.3645 35.9068 +13.5362 -35.4487 35.9923 +13.17 -35.7341 36.2821 +12.7009 -35.7452 36.2934 +12.3259 -36.0263 36.5788 +11.9899 -36.4423 37.0012 +11.2981 -35.7608 36.3092 +10.9154 -36.0345 36.5871 +10.4269 -35.9625 36.514 +10.151 -36.6449 37.2069 +9.56737 -36.2227 36.7782 +9.09916 -36.2107 36.7661 +8.49995 -35.6422 36.1888 +8.08766 -35.8315 36.3811 +7.77478 -36.5043 37.0641 +7.22308 -36.0641 36.6172 +6.7482 -35.9678 36.5194 +6.41033 -36.6346 37.1964 +5.85261 -36.045 36.5978 +5.40412 -36.0795 36.6328 +4.95523 -36.1112 36.665 +4.48852 -36.0003 36.5524 +4.04849 -36.0964 36.6499 +3.60641 -36.1898 36.7448 +3.09516 -35.5101 36.0547 +2.65343 -35.5277 36.0726 +2.2115 -35.5426 36.0877 +1.80081 -36.186 36.7409 +1.32717 -35.5643 36.1097 +0.884837 -35.5711 36.1166 +0.443308 -35.6453 36.192 +1.88738e-15 -36.2782 36.8345 +-0.441563 -35.505 36.0495 +-0.902289 -36.2726 36.8289 +-1.32717 -35.5643 36.1097 +-1.8043 -36.2561 36.8121 +-2.2115 -35.5426 36.0877 +-2.70577 -36.2284 36.784 +-3.15621 -36.2105 36.7659 +-3.59943 -36.1198 36.6737 +-4.04064 -36.0264 36.5789 +-4.55825 -36.5596 37.1202 +-4.91689 -35.8318 36.3813 +-5.46684 -36.4982 37.0579 +-5.81865 -35.8358 36.3854 +-6.38595 -36.4953 37.055 +-6.73515 -35.8983 36.4488 +-7.27875 -36.342 36.8994 +-7.5974 -35.6715 36.2185 +-8.25974 -36.5939 37.1551 +-8.71451 -36.5419 37.1024 +-9.20335 -36.6254 37.1871 +-9.40335 -35.6017 36.1477 +-9.97931 -36.0249 36.5774 +-10.3073 -35.5499 36.0951 +-10.7075 -35.3481 35.8902 +-11.1683 -35.3497 35.8919 +-11.7874 -35.827 36.3764 +-12.2559 -35.8216 36.371 +-12.8702 -36.2218 36.7773 +-13.1199 -35.5982 36.1441 +-13.7692 -36.0588 36.6118 +-14.2438 -36.0406 36.5934 +-14.9395 -36.5591 37.1198 +-15.1664 -35.928 36.479 +-15.6711 -35.968 36.5196 +-16.0878 -35.8038 36.3528 +-16.8723 -36.438 36.9968 +-17.1027 -35.8674 36.4175 +-17.8411 -36.3585 36.9161 +-18.326 -36.314 36.8709 +-18.7769 -36.2004 36.7555 +-19.5416 -36.6756 37.238 +-19.9611 -36.489 37.0486 +-20.4141 -36.3654 36.9231 +-20.8656 -36.239 36.7947 +-21.1624 -35.8505 36.4003 +-21.9982 -36.3655 36.9232 +-22.5692 -36.4224 36.981 +-23.3874 -36.8598 37.4251 +-23.5131 -36.2044 36.7596 +-24.3428 -36.6313 37.1931 +-24.41 -35.9109 36.4616 +-25.3379 -36.4538 37.0129 +-26.1472 -36.7997 37.3641 +-26.6946 -36.7632 37.327 +-26.6891 -35.9759 36.5276 +-27.9336 -36.8644 37.4297 +-28.3432 -36.6302 37.192 +-29.234 -37.0077 37.5752 +-29.5454 -36.644 37.206 +-30.05 -36.5224 37.0826 +-30.4523 -36.2766 36.8329 +-31.3658 -36.6301 37.1919 +-31.3499 -35.8981 36.4487 +-32.2721 -36.2404 36.7961 +-32.829 -36.1597 36.7143 +-33.9855 -36.7224 37.2855 +-34.3305 -36.3959 36.954 +-35.4528 -36.8823 37.448 +-35.6836 -36.4325 36.9912 +-36.8236 -36.9024 37.4684 +-37.1069 -36.5041 37.064 +-37.8534 -36.5593 37.12 +-38.6635 -36.6646 37.2269 +-39.118 -36.4264 36.9851 +-39.6304 -36.2412 36.797 +-40.6952 -36.5501 37.1106 +-41.086 -36.2446 36.8004 +-42.1645 -36.537 37.0973 +-43.1897 -36.7647 37.3285 +-43.7738 -36.6063 37.1677 +-44.747 -36.7638 37.3276 +-45.7929 -36.9649 37.5318 +-45.7208 -36.2627 36.8188 +-47.1068 -36.7114 37.2744 +-47.6291 -36.4733 37.0327 +-48.6947 -36.6422 37.2041 +-49.1485 -36.3425 36.8999 +-50.2933 -36.545 37.1054 +-51.5168 -36.7861 37.3503 +-52.4673 -36.8166 37.3812 +-53.6364 -36.9858 37.553 +-53.9505 -36.5584 37.1191 +-55.0559 -36.6614 37.2236 +-56.168 -36.7536 37.3172 +-57.6551 -37.0719 37.6405 +-58.8571 -37.187 37.7573 +-59.542 -36.9647 37.5316 +-61.9617 -37.7955 38.3752 +-61.897 -37.0957 37.6646 +-63.8115 -37.5723 38.1485 +-64.2763 -37.1801 37.7503 +-66.1351 -37.58 38.1563 +-67.226 -37.523 38.0985 +-68.9509 -37.8012 38.3809 +-70.2118 -37.8047 38.3844 +-71.5577 -37.8378 38.4181 +-73.2314 -38.0243 38.6075 +-75.0768 -38.2756 38.8626 +-75.3057 -37.6921 38.2702 +-77.8194 -38.2358 38.8222 +-78.9513 -38.0757 38.6597 +-80.1679 -37.944 38.5259 +-81.4706 -37.8389 38.4192 +-83.8671 -38.2176 38.8037 +-85.0982 -38.0419 38.6253 +-87.6882 -38.449 39.0387 +-88.4188 -38.0206 38.6037 +-91.0312 -38.3812 38.9698 +-91.5912 -37.8579 38.4385 +-94.3102 -38.2079 38.7938 +-96.0002 -38.1126 38.6972 +-98.7446 -38.4079 38.9969 +-100.537 -38.304 38.8914 +-103.923 -38.774 39.3687 +-105.377 -38.4925 39.0829 +-105.495 -37.7184 38.2969 +-106.497 -37.2588 37.8302 +-106.507 -36.4515 37.0105 +-107.769 -36.0698 36.6229 +-108.485 -35.4975 36.0419 +-107.83 -34.4826 35.0114 +-108.255 -33.821 34.3397 +-107.755 -32.877 33.3812 +-107.331 -31.9691 32.4594 +-105.599 -30.6931 31.1638 +-56.7437 -16.0872 16.3339 +-44.9392 -12.4216 12.6121 +-42.758 -11.5173 11.6939 +-39.9959 -10.4932 10.6542 +-38.5274 -9.83988 9.99078 +-17.3446 -4.30991 4.37601 +-16.7357 -4.04362 4.10563 +-15.9318 -3.7406 3.79796 +-14.4561 -3.29595 3.3465 +-16.0224 -3.54492 3.59928 +-15.8747 -3.40564 3.45787 +-15.2452 -3.16879 3.21739 +-14.4189 -2.90124 2.94574 +-13.5872 -2.64407 2.68462 +-12.9434 -2.43364 2.47096 +-13.3604 -2.42456 2.46174 +-14.3604 -2.51241 2.55095 +-12.8353 -2.16229 2.19545 +-14.3232 -2.32039 2.35597 +-12.3013 -1.91365 1.943 +-13.4984 -2.01332 2.0442 +-13.7189 -1.95857 1.9886 +-13.7428 -1.87449 1.90323 +-13.7656 -1.79026 1.81772 +-14.2797 -1.76682 1.79392 +-14.3998 -1.6909 1.71683 +-14.2227 -1.5807 1.60495 +-13.9451 -1.46243 1.48486 +-13.0715 -1.28909 1.30886 +-13.5828 -1.2548 1.27404 +-14.8882 -1.28275 1.30242 +-14.0094 -1.12004 1.13722 +-13.3266 -0.982865 0.997938 +-13.0397 -0.881047 0.894559 +-11.5559 -0.709431 0.720311 +-11.963 -0.660662 0.670794 +-12.27 -0.602067 0.6113 +-10.9795 -0.471219 0.478446 +-11.3844 -0.418659 0.425079 +-11.589 -0.355052 0.360498 +-11.2931 -0.276727 0.280971 +-11.2961 -0.207564 0.210748 +-11.7982 -0.144508 0.146724 +-11.2996 -0.0691951 0.0702563 +11 -4.44089e-16 2.84217e-14 +10.9996 -0.0667394 0.0689949 +11.2983 -0.137114 0.141748 +10.9962 -0.200198 0.206963 +12.1926 -0.296024 0.306028 +13.0875 -0.397282 0.410708 +12.4829 -0.454839 0.47021 +12.1772 -0.517825 0.535325 +13.5669 -0.659586 0.681877 +14.6547 -0.801879 0.828979 +14.8433 -0.90288 0.933393 +14.5328 -0.972913 1.00579 +15.1167 -1.10465 1.14198 +15.6984 -1.24355 1.28558 +17.3696 -1.48279 1.5329 +31.8254 -2.91307 3.01152 +34.5604 -3.37698 3.49111 +39.4617 -4.10037 4.23894 +42.7669 -4.70943 4.86858 +47.4403 -5.51953 5.70607 +55.0508 -6.74885 6.97693 +114.549 -14.7607 15.2595 +117.304 -15.8531 16.3889 +117.199 -16.5781 17.1383 +118.356 -17.4909 18.082 +119.01 -18.3438 18.9637 +119.165 -19.1277 19.7741 +119.407 -19.9311 20.6047 +119.734 -20.7558 21.4572 +120.341 -21.638 22.3693 +120.258 -22.4034 23.1605 +120.068 -23.1507 23.9331 +119.869 -23.8975 24.7051 +120.428 -24.8016 25.6397 +120.59 -25.6329 26.4992 +120.264 -26.3636 27.2546 +120.689 -27.2642 28.1856 +120.153 -27.9512 28.8959 +120.459 -28.8376 29.8122 +120.658 -29.7066 30.7106 +120.657 -30.5327 31.5645 +120.175 -31.2392 32.2949 +120.339 -32.1166 33.202 +120.024 -32.871 33.9819 +120.441 -33.8324 34.9758 +120.197 -34.615 35.7849 +120.954 -35.6961 36.9025 +120.135 -36.3177 37.5451 +118.578 -36.7059 37.9464 +115.656 -36.6455 37.8839 +114.376 -37.0813 38.3345 +111.83 -37.0854 38.3387 +110.102 -37.3359 38.5976 +106.139 -36.7926 38.036 +103.98 -36.8354 38.0803 +100.676 -36.4376 37.669 +99.155 -36.6553 37.8941 +95.7911 -36.1607 37.3828 +94.1965 -36.3023 37.5292 +92.6058 -36.4274 37.6585 +91.0193 -36.536 37.7707 +88.5755 -36.2752 37.5011 +87.2596 -36.4531 37.6851 +85.5198 -36.4363 37.6676 +84.72 -36.8063 38.0502 +83.0741 -36.796 38.0395 +81.1833 -36.6549 37.8937 +79.8863 -36.7623 38.0047 +77.6808 -36.4292 37.6603 +75.3251 -35.9933 37.2097 +75.5258 -36.768 38.0106 +72.7005 -36.054 37.2725 +72.2452 -36.4937 37.727 +70.0963 -36.0621 37.2809 +69.2417 -36.2769 37.5029 +67.9904 -36.2724 37.4982 +66.8233 -36.2982 37.525 +65.6608 -36.3128 37.54 +64.5808 -36.3597 37.5885 +63.2732 -36.2637 37.4892 +62.1262 -36.244 37.4689 +61.1366 -36.3035 37.5304 +59.9239 -36.2169 37.4409 +58.8679 -36.2105 37.4343 +57.668 -36.1011 37.3211 +56.328 -35.886 37.0987 +55.2172 -35.7996 37.0095 +54.0404 -35.6546 36.8596 +53.6627 -36.0295 37.2471 +52.5666 -35.9151 37.1289 +51.4774 -35.7902 36.9998 +50.4655 -35.7044 36.9111 +49.8765 -35.9092 37.1228 +48.8732 -35.807 37.0172 +48.4219 -36.1022 37.3223 +46.8184 -35.5232 36.7237 +46.3708 -35.8059 37.0159 +45.3895 -35.6693 36.8748 +45.0056 -35.9958 37.2123 +43.7728 -35.6331 36.8373 +43.4524 -36.0038 37.2206 +42.2356 -35.6223 36.8262 +41.8498 -35.9312 37.1455 +40.8992 -35.7485 36.9566 +40.5105 -36.05 37.2684 +39.5086 -35.798 37.0078 +38.9976 -35.9809 37.1969 +37.8902 -35.6013 36.8045 +38.0885 -36.4486 37.6804 +36.4681 -35.5462 36.7476 +36.4221 -36.1648 37.387 +35.5703 -35.9833 37.1994 +35.0055 -36.0825 37.3019 +34.0545 -35.7717 36.9807 +34.2033 -36.6183 37.8559 +32.6141 -35.5931 36.796 +32.59 -36.2613 37.4868 +31.6112 -35.8648 37.0769 +31.1083 -35.9957 37.2122 +30.6553 -36.183 37.4059 +29.75 -35.8257 37.0365 +29.3484 -36.0654 37.2843 +28.7492 -36.0596 37.2783 +28.2001 -36.1105 37.3309 +27.7458 -36.2802 37.5064 +26.8738 -35.8921 37.1051 +26.4222 -36.0539 37.2723 +25.8795 -36.0883 37.308 +25.4694 -36.3064 37.5334 +24.5822 -35.8321 37.043 +24.216 -36.1059 37.3261 +23.4302 -35.7453 36.9533 +23.306 -36.3943 37.6242 +22.2103 -35.5141 36.7143 +22.0763 -36.1595 37.3815 +21.3537 -35.8424 37.0538 +21.1653 -36.4219 37.6528 +20.3775 -35.9667 37.1822 +20.2836 -36.7381 37.9797 +19.1914 -35.6875 36.8935 +19.0163 -36.3252 37.5529 +18.326 -35.9804 37.1964 +17.8411 -36.0245 37.242 +17.2296 -35.8018 37.0117 +16.8105 -35.9711 37.1867 +16.3283 -36.0053 37.2222 +15.9343 -36.236 37.4606 +15.28 -35.8647 37.0768 +14.8844 -36.0897 37.3093 +14.511 -36.3796 37.6091 +14.0798 -36.5335 37.7681 +13.3453 -35.8771 37.0895 +12.9186 -36.0241 37.2416 +12.4426 -36.0335 37.2513 +12.0124 -36.1754 37.398 +11.4497 -35.9075 37.121 +11.1025 -36.3156 37.5429 +10.5864 -36.1772 37.3998 +10.151 -36.3083 37.5354 +9.60381 -36.0267 37.2442 +9.25545 -36.4944 37.7278 +8.63199 -35.8634 37.0755 +8.2441 -36.1892 37.4122 +7.77478 -36.169 37.3914 +7.32051 -36.2148 37.4387 +6.7482 -35.6375 36.8419 +6.41033 -36.2981 37.5248 +5.95449 -36.3356 37.5636 +5.48774 -36.3012 37.5281 +5.04149 -36.4023 37.6326 +4.58439 -36.4315 37.6628 +4.11126 -36.3194 37.5468 +3.66221 -36.4123 37.6428 +3.15621 -35.878 37.0905 +2.70054 -35.8263 37.0371 +2.25512 -35.9108 37.1244 +1.83222 -36.4789 37.7118 +1.35335 -35.9327 37.147 +0.904035 -36.009 37.226 +0.451162 -35.9436 37.1583 +2.55351e-15 -35.945 37.1598 +-0.451162 -35.9436 37.1583 +-0.916251 -36.4956 37.729 +-1.35335 -35.9327 37.147 +-1.83571 -36.5485 37.7836 +-2.25076 -35.8413 37.0526 +-2.75287 -36.5206 37.7548 +-3.15621 -35.878 37.0905 +-3.66919 -36.4817 37.7146 +-4.11126 -36.3194 37.5468 +-4.55825 -36.2238 37.448 +-5.08941 -36.7484 37.9903 +-5.55046 -36.7161 37.9569 +-5.92053 -36.1284 37.3494 +-6.48345 -36.7122 37.9529 +-6.82652 -36.0511 37.2694 +-7.40401 -36.6279 37.8658 +-7.84868 -36.5128 37.7468 +-8.40053 -36.8759 38.1221 +-8.81354 -36.6178 37.8553 +-9.22072 -36.3575 37.5862 +-9.60381 -36.0267 37.2442 +-9.97931 -35.6941 36.9004 +-10.2874 -35.1552 36.3433 +-10.9362 -35.7716 36.9805 +-11.3847 -35.7039 36.9105 +-11.9899 -36.1076 37.3279 +-12.4426 -36.0335 37.2513 +-12.8702 -35.8892 37.1021 +-13.3202 -35.8098 37.02 +-14.028 -36.3991 37.6293 +-14.4576 -36.2456 37.4706 +-14.9947 -36.357 37.5857 +-15.422 -36.198 37.4213 +-15.905 -36.1696 37.3919 +-16.3885 -36.138 37.3593 +-17.1504 -36.6984 37.9386 +-17.3248 -35.9996 37.2162 +-18.1341 -36.6162 37.8537 +-18.5263 -36.3737 37.603 +-19.0505 -36.3906 37.6204 +-19.5416 -36.3387 37.5668 +-20.2836 -36.7381 37.9797 +-20.4508 -36.0961 37.316 +-21.1653 -36.4219 37.6528 +-21.9278 -36.8059 38.0498 +-22.3498 -36.6075 37.8447 +-22.9281 -36.6618 37.9008 +-23.7534 -37.0929 38.3465 +-23.8863 -36.4413 37.6728 +-24.7232 -36.862 38.1078 +-24.8405 -36.2086 37.4323 +-25.9954 -37.0564 38.3087 +-26.1026 -36.3995 37.6296 +-27.1486 -37.045 38.297 +-27.474 -36.6938 37.9339 +-27.9336 -36.5258 37.7602 +-28.2955 -36.2327 37.4573 +-29.5249 -37.0326 38.2841 +-29.6931 -36.489 37.7221 +-30.85 -37.1504 38.4059 +-30.9091 -36.4826 37.7155 +-31.8809 -36.8896 38.1363 +-31.8202 -36.102 37.3221 +-32.802 -36.4972 37.7306 +-33.2588 -36.2967 37.5234 +-34.4757 -36.9099 38.1573 +-34.6064 -36.3514 37.58 +-36.1239 -37.2352 38.4936 +-36.0801 -36.499 37.7325 +-36.9383 -36.6774 37.9169 +-37.3973 -36.4518 37.6837 +-38.2648 -36.6173 37.8548 +-38.723 -36.3838 37.6134 +-39.78 -36.7027 37.9431 +-40.1783 -36.4048 37.6351 +-41.7418 -37.1458 38.4011 +-42.2065 -36.8911 38.1379 +-43.3602 -37.228 38.4862 +-43.1897 -36.427 37.6581 +-44.9951 -37.282 38.542 +-44.747 -36.4261 37.6571 +-46.3178 -37.0452 38.2972 +-46.1846 -36.2941 37.5207 +-47.7759 -36.8909 38.1376 +-48.3047 -36.6509 37.8895 +-49.2403 -36.7123 37.9531 +-50.3187 -36.8661 38.112 +-51.5437 -37.1095 38.3637 +-52.0075 -36.7954 38.039 +-53.1037 -36.9209 38.1687 +-53.5651 -36.5973 37.8342 +-55.3172 -37.1403 38.3955 +-55.7813 -36.8033 38.0471 +-57.1187 -37.0324 38.284 +-58.2449 -37.1072 38.3612 +-59.8232 -37.4502 38.7159 +-60.3658 -37.1319 38.3868 +-61.7352 -37.3116 38.5726 +-63.2658 -37.5678 38.8374 +-65.1138 -37.9869 39.2707 +-65.6653 -37.6347 38.9066 +-68.078 -38.3287 39.624 +-67.8521 -37.5246 38.7928 +-70.4482 -38.2672 39.5605 +-70.9258 -37.8384 39.1172 +-73.2349 -38.3689 39.6656 +-73.9548 -38.0472 39.3331 +-75.8858 -38.3327 39.6282 +-76.8525 -38.1131 39.4011 +-78.8843 -38.403 39.7009 +-79.693 -38.0805 39.3674 +-81.7431 -38.3342 39.6297 +-82.2211 -37.8368 39.1155 +-84.6219 -38.2074 39.4987 +-85.5199 -37.8793 39.1595 +-88.197 -38.3169 39.6119 +-88.5893 -37.744 39.0196 +-92.3169 -38.5658 39.8692 +-93.4868 -38.2866 39.5805 +-96.2154 -38.6217 39.927 +-97.0447 -38.1734 39.4635 +-100.581 -38.7629 40.073 +-102.119 -38.5493 39.8521 +-105.159 -38.8749 40.1887 +-106.796 -38.6527 39.959 +-106.921 -37.877 39.1571 +-105.96 -36.7305 37.9718 +-107.406 -36.4215 37.6524 +-108.852 -36.0977 37.3176 +-109.391 -35.4653 36.6638 +-108.103 -34.2524 35.41 +-108.529 -33.5952 34.7306 +-107.938 -32.6305 33.7333 +-107.791 -31.8114 32.8865 +-106.8 -30.7571 31.7965 +-19.0073 -5.33921 5.51966 +-50.0565 -13.709 14.1723 +-45.7454 -12.2088 12.6214 +-41.2136 -10.7133 11.0754 +-40.0309 -10.13 10.4724 +-33.7466 -8.30857 8.58937 +-16.5466 -3.96121 4.09508 +-16.0267 -3.7283 3.8543 +-16.6435 -3.75983 3.8869 +-16.7854 -3.67961 3.80397 +-16.4484 -3.49632 3.61448 +-15.3411 -3.15944 3.26621 +-15.2841 -3.04707 3.15005 +-14.3581 -2.76842 2.86198 +-12.9434 -2.41129 2.49278 +-3171.94 -570.336 589.611 +-12.7109 -2.20341 2.27787 +-13.0298 -2.17489 2.2484 +-12.4719 -2.00191 2.06957 +-12.5942 -1.94122 2.00682 +-13.205 -1.95146 2.01742 +-13.229 -1.87127 1.93451 +-14.1354 -1.91033 1.97489 +-12.8806 -1.65979 1.71588 +-14.7721 -1.81096 1.87216 +-14.1039 -1.64094 1.6964 +-13.7289 -1.5118 1.5629 +-14.2418 -1.47983 1.52985 +-14.2599 -1.39337 1.44045 +-13.9794 -1.27957 1.32282 +-13.9949 -1.19471 1.23508 +-14.5061 -1.14911 1.18794 +-13.7244 -1.00291 1.0368 +-13.1392 -0.879616 0.909343 +-13.1498 -0.79987 0.826902 +-13.1593 -0.720054 0.744388 +-11.9708 -0.581987 0.601656 +-11.4786 -0.488113 0.50461 +-11.7838 -0.429368 0.443879 +-12.4881 -0.379085 0.391897 +-10.7934 -0.262054 0.270911 +-10.6963 -0.194738 0.201319 +-10.9983 -0.133473 0.137984 +-11.7996 -0.0715931 0.0740126 +11 -4.44089e-16 2.84217e-14 +10.3996 -0.0625079 0.0657983 +12.1981 -0.146647 0.154367 +11.596 -0.20914 0.220149 +12.1926 -0.293251 0.308687 +11.8887 -0.357509 0.376327 +13.082 -0.472206 0.497062 +13.375 -0.563429 0.593088 +14.6642 -0.706255 0.743431 +14.6547 -0.794366 0.836181 +15.3414 -0.924436 0.973097 +14.9309 -0.990205 1.04233 +15.4151 -1.1159 1.17464 +17.0894 -1.34106 1.41165 +18.7591 -1.58641 1.66992 +30.1399 -2.73295 2.87681 +36.838 -3.56581 3.75351 +40.5497 -4.17394 4.39365 +43.0632 -4.69763 4.9449 +49.7088 -5.72927 6.03086 +53.2781 -6.47034 6.81094 +13.9622 -1.7823 1.87612 +118.286 -15.836 16.6696 +118.179 -16.5601 17.4318 +118.454 -17.3413 18.2542 +118.718 -18.1272 19.0814 +119.165 -18.9485 19.9459 +119.99 -19.8409 20.8853 +119.443 -20.5113 21.591 +119.663 -21.3147 22.4366 +120.161 -22.1757 23.343 +120.936 -23.0995 24.3154 +119.677 -23.6357 24.8798 +120.332 -24.5496 25.8419 +120.112 -25.2921 26.6234 +121.027 -26.2823 27.6658 +120.499 -26.9662 28.3856 +121.006 -27.8861 29.3539 +120.554 -28.5898 30.0948 +120.564 -29.4053 30.9532 +119.999 -30.0817 31.6652 +120.175 -30.9465 32.5755 +119.592 -31.6182 33.2826 +119.931 -32.5378 34.2505 +120.534 -33.5412 35.3068 +120.012 -34.238 36.0403 +120.034 -35.0926 36.9398 +120.869 -36.1972 38.1025 +119.674 -36.6982 38.6299 +117.112 -36.7591 38.6941 +115.826 -37.1996 39.1578 +112.823 -37.0642 39.0152 +111.54 -37.4691 39.4415 +107.929 -37.0625 39.0134 +105.317 -36.9593 38.9048 +102.45 -36.7323 38.6658 +101.539 -37.1849 39.1423 +97.4608 -36.4464 38.3649 +96.4706 -36.8304 38.7691 +93.7373 -36.527 38.4497 +92.4915 -36.7791 38.7151 +89.7818 -36.4247 38.3421 +89.6597 -37.1049 39.058 +86.2872 -36.4188 38.3359 +86.1617 -37.082 39.034 +83.4958 -36.6363 38.5648 +83.0284 -37.1368 39.0916 +80.7201 -36.798 38.735 +79.8363 -37.0892 39.0416 +77.2206 -36.5534 38.4775 +76.4269 -36.8581 38.7983 +74.4102 -36.5561 38.4804 +73.6205 -36.84 38.7793 +71.6236 -36.5027 38.4242 +71.1584 -36.9318 38.8758 +68.9424 -36.4357 38.3536 +68.0053 -36.5942 38.5205 +66.8347 -36.6156 38.5431 +65.902 -36.7559 38.6907 +64.122 -36.4059 38.3222 +63.6583 -36.7899 38.7265 +61.745 -36.3212 38.2331 +61.2824 -36.6909 38.6223 +59.4671 -36.2364 38.1438 +59.0057 -36.5924 38.5186 +57.8763 -36.5269 38.4496 +56.753 -36.4506 38.3693 +54.7658 -35.7947 37.6789 +54.9576 -36.5531 38.4772 +53.2085 -36.0131 37.9088 +52.7502 -36.3315 38.244 +51.0262 -35.7629 37.6454 +50.6406 -36.1178 38.019 +49.4927 -35.9212 37.812 +49.1721 -36.318 38.2298 +47.494 -35.6982 37.5773 +47.6421 -36.4429 38.3612 +45.9196 -35.7478 37.6295 +45.4649 -36.0224 37.9186 +44.682 -36.0324 37.9291 +43.8381 -35.983 37.8771 +42.9989 -35.9263 37.8174 +42.6679 -36.2904 38.2007 +41.335 -35.7909 37.6749 +41.0646 -36.2007 38.1063 +40.1783 -36.0637 37.962 +39.6596 -36.2488 38.1569 +38.5445 -35.8768 37.7653 +38.5587 -36.5528 38.4769 +37.5134 -36.2225 38.1292 +37.053 -36.4466 38.3651 +36.0234 -36.1003 38.0005 +35.5087 -36.2583 38.1669 +34.5513 -35.9535 37.846 +34.4212 -36.5063 38.428 +33.5275 -36.2471 38.1551 +33.014 -36.3888 38.3043 +32.0814 -36.0573 37.9554 +32.0869 -36.7801 38.7162 +30.7568 -35.9627 37.8558 +30.7 -36.6234 38.5512 +29.4962 -35.9073 37.7975 +29.3795 -36.505 38.4265 +28.5341 -36.1959 38.1012 +28.1213 -36.4269 38.3443 +27.2893 -36.1057 38.0063 +27.1486 -36.698 38.6297 +26.2811 -36.305 38.216 +25.8201 -36.4616 38.3809 +24.9696 -36.0558 37.9538 +24.9345 -36.8288 38.7674 +24.1351 -36.4758 38.3959 +23.7534 -36.7454 38.6796 +22.9281 -36.3183 38.2301 +22.467 -36.4547 38.3736 +21.6599 -36.0157 37.9115 +21.465 -36.5915 38.5176 +20.744 -36.2705 38.1798 +20.2478 -36.3295 38.2419 +19.5416 -35.9983 37.8932 +19.3583 -36.6321 38.5604 +18.6264 -36.2277 38.1347 +18.1341 -36.2731 38.1825 +17.42 -35.8582 37.7458 +17.3977 -36.8786 38.8199 +16.6892 -36.4563 38.3753 +16.1682 -36.4235 38.3408 +15.564 -36.189 38.094 +15.1325 -36.3474 38.2607 +14.6714 -36.437 38.355 +14.2609 -36.6568 38.5864 +13.5956 -36.2077 38.1136 +13.3541 -36.8895 38.8313 +12.466 -35.7629 37.6454 +12.1699 -36.3062 38.2173 +11.6228 -36.109 38.0097 +11.2896 -36.5817 38.5073 +10.7659 -36.4457 38.3641 +10.3228 -36.5766 38.5019 +9.87717 -36.705 38.6371 +9.39437 -36.6951 38.6267 +8.79704 -36.2067 38.1126 +8.38489 -36.4623 38.3817 +7.9078 -36.4432 38.3615 +7.44576 -36.4893 38.4101 +6.86568 -35.9182 37.8088 +6.52001 -36.5733 38.4985 +6.04505 -36.5426 38.4662 +5.58182 -36.5776 38.503 +5.10858 -36.5412 38.4647 +4.65412 -36.6391 38.5678 +4.12695 -36.1164 38.0176 +3.725 -36.6895 38.6208 +3.20505 -36.0918 37.9916 +2.74764 -36.1097 38.0105 +2.29438 -36.1936 38.0988 +1.86363 -36.7567 38.6915 +1.37691 -36.2157 38.122 +0.921487 -36.3603 38.2743 +0.460761 -36.3645 38.2786 +1.22125e-15 -36.2281 38.1351 +-0.460761 -36.3645 38.2786 +-0.933704 -36.8424 38.7817 +-1.39785 -36.7665 38.7018 +-1.86712 -36.8255 38.764 +-2.29438 -36.1936 38.0988 +-2.79997 -36.7975 38.7345 +-3.20505 -36.0918 37.9916 +-3.77383 -37.1704 39.127 +-4.18187 -36.597 38.5235 +-4.71513 -37.1194 39.0733 +-5.09899 -36.4727 38.3925 +-5.64454 -36.9886 38.9356 +-6.12429 -37.0217 38.9704 +-6.61751 -37.1202 39.0742 +-6.95705 -36.3961 38.312 +-7.52926 -36.8986 38.8409 +-7.84868 -36.1707 38.0747 +-8.55697 -37.2107 39.1694 +-8.89607 -36.6143 38.5417 +-9.4291 -36.8308 38.7695 +-9.60381 -35.6891 37.5678 +-10.1892 -36.1034 38.0038 +-10.6662 -36.1082 38.0089 +-11.1233 -36.0427 37.94 +-11.5795 -35.9745 37.8682 +-12.2373 -36.5075 38.4292 +-12.4893 -35.8299 37.7159 +-13.3783 -36.9564 38.9017 +-13.5956 -36.2077 38.1136 +-14.2868 -36.7234 38.6564 +-14.7248 -36.5697 38.4947 +-15.2427 -36.6123 38.5395 +-15.6776 -36.4532 38.372 +-16.1682 -36.4235 38.3408 +-16.6591 -36.3906 38.3061 +-17.4286 -36.9441 38.8888 +-17.7056 -36.4461 38.3646 +-18.3946 -36.7941 38.7309 +-18.6264 -36.2277 38.1347 +-19.5978 -37.0852 39.0373 +-20.1369 -37.095 39.0477 +-20.6062 -36.9726 38.9188 +-21.0738 -36.8473 38.7869 +-21.8021 -37.1662 39.1226 +-22.0043 -36.5884 38.5143 +-22.7406 -36.8985 38.8408 +-23.2072 -36.7604 38.6955 +-24.0381 -37.1858 39.1432 +-24.2596 -36.6639 38.5938 +-25.4839 -37.6403 39.6216 +-25.271 -36.4911 38.4119 +-26.4338 -37.3282 39.2931 +-26.9503 -37.2295 39.1893 +-27.0578 -36.5752 38.5005 +-27.8434 -36.8389 38.778 +-28.7317 -37.2174 39.1765 +-29.1544 -36.9827 38.9295 +-29.9612 -37.2278 39.1874 +-30.5303 -37.1662 39.1226 +-31.35 -37.3988 39.3675 +-31.4166 -36.7342 38.6678 +-32.3959 -37.1343 39.0891 +-32.7607 -36.8208 38.759 +-33.5969 -37.0313 38.9806 +-33.9573 -36.7118 38.6443 +-35.2926 -37.4306 39.4009 +-35.1584 -36.5852 38.511 +-36.4594 -37.229 39.1887 +-36.9863 -37.0652 39.0163 +-37.9134 -37.2929 39.256 +-38.3845 -37.0635 39.0145 +-39.3228 -37.2772 39.2394 +-39.7342 -36.9841 38.9309 +-40.6827 -37.1839 39.1413 +-41.274 -37.0473 38.9974 +-42.3575 -37.3405 39.306 +-42.829 -37.0845 39.0366 +-43.9266 -37.3609 39.3276 +-44.3983 -37.0955 39.0482 +-45.3808 -37.2493 39.2101 +-45.851 -36.9752 38.9215 +-46.9738 -37.218 39.1771 +-47.2448 -36.7794 38.7155 +-49.0473 -37.5178 39.4927 +-48.7776 -36.663 38.5929 +-50.6043 -37.3758 39.3432 +-51.0071 -37.0203 38.969 +-52.1688 -37.2078 39.1663 +-52.6383 -36.8928 38.8348 +-54.2351 -37.3543 39.3205 +-54.7776 -37.0751 39.0267 +-56.8278 -37.7971 39.7867 +-57.3046 -37.4541 39.4256 +-58.5814 -37.6249 39.6055 +-59.4246 -37.5041 39.4782 +-61.7553 -38.2976 40.3136 +-61.6391 -37.5598 39.537 +-64.1503 -38.408 40.4297 +-64.6345 -38.021 40.0223 +-66.4161 -38.3837 40.4041 +-66.8999 -37.983 39.9824 +-69.4768 -38.7497 40.7895 +-69.7304 -38.2021 40.213 +-71.5514 -38.5024 40.5291 +-72.5125 -38.3224 40.3397 +-74.6724 -38.7556 40.7956 +-75.1606 -38.3053 40.3216 +-78.2319 -39.1475 41.2082 +-78.2365 -38.4359 40.4592 +-80.3588 -38.7543 40.7943 +-80.8468 -38.2699 40.2844 +-83.8986 -38.9764 41.0281 +-84.3892 -38.4706 40.4957 +-87.2217 -39.0123 41.0659 +-87.7127 -38.4866 40.5125 +-90.9108 -39.1259 41.1854 +-91.8293 -38.7579 40.7981 +-94.8027 -39.2332 41.2984 +-95.0377 -38.5571 40.5867 +-98.1207 -39.0175 41.0714 +-99.1335 -38.6297 40.6632 +-102.68 -39.2011 41.2646 +-104.491 -39.0755 41.1324 +-107.013 -39.1897 41.2526 +-108.215 -38.7994 40.8417 +-107.544 -37.7411 39.7277 +-106.676 -36.6322 38.5605 +-109.563 -36.8048 38.7422 +-110.296 -36.2339 38.1413 +-109.029 -35.0166 36.8598 +-108.74 -34.1314 35.928 +-108.529 -33.2805 35.0323 +-108.397 -32.4621 34.1709 +-107.883 -31.5403 33.2005 +-107.632 -30.7061 32.3225 +-104.494 -29.0777 30.6083 +-52.8477 -14.3379 15.0926 +-44.8119 -11.8476 12.4713 +-42.8996 -11.0472 11.6287 +-40.1249 -10.0587 10.5881 +-36.1974 -8.8285 9.29322 +-32.4313 -7.69124 8.0961 +-15.7422 -3.62781 3.81877 +-16.3582 -3.66075 3.85345 +-15.8317 -3.43803 3.61901 +-15.5878 -3.28233 3.45511 +-15.5329 -3.16896 3.33577 +-15.5724 -3.07548 3.23737 +-15.7072 -3.00017 3.1581 +-13.9093 -2.56695 2.70207 +-13.4573 -2.39703 2.52321 +-3178.98 -545.907 574.643 +-12.6408 -2.0902 2.20023 +-12.6668 -2.01414 2.12017 +-12.4966 -1.90813 2.00857 +-12.6181 -1.84726 1.9445 +-12.641 -1.77135 1.8646 +-14.1354 -1.89244 1.99205 +-12.979 -1.65679 1.744 +-13.2949 -1.61459 1.69959 +-14.1039 -1.62557 1.71113 +-13.8276 -1.50841 1.58781 +-14.9341 -1.53723 1.61815 +-14.2599 -1.38031 1.45297 +-14.5742 -1.32153 1.39109 +-14.8882 -1.25906 1.32533 +-13.7113 -1.07596 1.1326 +-13.8239 -1.00071 1.05339 +-13.1392 -0.871375 0.917243 +-13.1498 -0.792376 0.834086 +-13.0596 -0.707901 0.745164 +-12.3698 -0.595752 0.627112 +-12.2771 -0.517178 0.544402 +-12.1833 -0.439764 0.462913 +-11.4891 -0.345491 0.363678 +-11.493 -0.276424 0.290975 +-11.2961 -0.203731 0.214456 +-11.2983 -0.135829 0.142979 +-10.9996 -0.0661141 0.0695943 +11.4 4.44089e-16 2.84217e-14 +10.7996 -0.0642929 0.0689119 +11.4982 -0.136915 0.146751 +11.3961 -0.203573 0.218199 +12.0926 -0.288072 0.308769 +12.6879 -0.377903 0.405053 +13.7811 -0.492693 0.52809 +14.2733 -0.595536 0.638322 +15.0632 -0.718551 0.770174 +14.8541 -0.797492 0.854787 +16.238 -0.969128 1.03875 +16.0259 -1.05268 1.12831 +16.4096 -1.17656 1.26109 +17.7849 -1.38232 1.48163 +19.6524 -1.6461 1.76436 +19.0357 -1.7096 1.83243 +35.3526 -3.38938 3.63289 +39.5606 -4.03329 4.32306 +42.5694 -4.59946 4.9299 +50.0047 -5.7084 6.11851 +55.5432 -6.68108 7.16107 +65.3865 -8.2671 8.86104 +117.795 -15.6199 16.7421 +118.081 -16.3885 17.5659 +118.551 -17.1901 18.4251 +118.522 -17.9247 19.2125 +118.873 -18.7217 20.0667 +119.796 -19.6198 21.0293 +120.608 -20.5137 21.9875 +120.438 -21.248 22.7745 +120.258 -21.9818 23.561 +119.972 -22.6968 24.3275 +120.638 -23.5982 25.2936 +120.236 -24.2961 26.0416 +121.164 -25.2702 27.0857 +120.741 -25.9701 27.8359 +120.784 -26.7722 28.6956 +120.911 -27.5984 29.5811 +120.932 -28.406 30.4468 +120.847 -29.1931 31.2904 +121.126 -30.0747 32.2354 +120.175 -30.6513 32.8534 +120.619 -31.5855 33.8548 +120.024 -32.2524 34.5696 +120.719 -33.2724 35.6628 +120.012 -33.9114 36.3477 +120.31 -34.8378 37.3407 +120.96 -35.8791 38.4568 +120.862 -36.7088 39.3461 +118.568 -36.8611 39.5093 +116.732 -37.1331 39.8009 +114.448 -37.2392 39.9146 +113.428 -37.7397 40.451 +109.092 -37.1046 39.7704 +107.277 -37.2881 39.967 +104.046 -36.9488 39.6034 +102.863 -37.3106 39.9911 +100.273 -37.1403 39.8086 +98.0449 -37.0744 39.738 +96.0002 -37.052 39.7139 +94.137 -37.0763 39.74 +92.022 -36.9775 39.6341 +91.2883 -37.4185 40.1068 +88.6746 -37.0694 39.7326 +88.7058 -37.8128 40.5294 +85.3512 -37.0932 39.7581 +84.7896 -37.5627 40.2614 +82.2211 -37.1248 39.7919 +81.0799 -37.3076 39.988 +79.3634 -37.2093 39.8825 +78.6386 -37.5629 40.2616 +75.957 -36.9601 39.6154 +74.8341 -37.09 39.7547 +72.9902 -36.8443 39.4913 +73.0751 -37.5648 40.2636 +70.4498 -36.8771 39.5265 +69.3449 -36.9591 39.6144 +68.2434 -37.0308 39.6912 +68.078 -37.6074 40.3092 +65.5109 -36.8396 39.4863 +65.1138 -37.272 39.9498 +63.1897 -36.8165 39.4615 +62.7918 -37.236 39.9112 +60.8152 -36.7043 39.3413 +60.4177 -37.1106 39.7768 +58.4661 -36.5472 39.1728 +58.1426 -36.9869 39.6442 +56.9419 -36.862 39.5103 +56.612 -37.2943 39.9737 +53.9217 -36.1477 38.7447 +53.528 -36.5156 39.139 +52.2878 -36.2976 38.9054 +52.0299 -36.7547 39.3953 +50.7317 -36.4693 39.0893 +50.4679 -36.9196 39.572 +48.6425 -36.2127 38.8143 +48.2443 -36.5515 39.1775 +47.046 -36.2754 38.8815 +46.7114 -36.657 39.2906 +45.5263 -36.3631 38.9756 +45.2522 -36.7895 39.4326 +43.5714 -36.0574 38.6478 +43.8007 -36.8985 39.5495 +42.58 -36.5172 39.1407 +42.1112 -36.7693 39.4109 +41.0305 -36.4774 39.098 +40.6225 -36.7747 39.4168 +39.5557 -36.4668 39.0867 +39.0877 -36.7009 39.3376 +38.0941 -36.4323 39.0498 +37.684 -36.7136 39.3512 +36.5332 -36.2619 38.8671 +36.6271 -37.0436 39.7049 +35.5447 -36.6344 39.2664 +35.0748 -36.8447 39.4917 +33.9573 -36.3616 38.974 +33.5439 -36.6202 39.2511 +32.5517 -36.2369 38.8403 +32.6019 -37.014 39.6733 +31.6196 -36.6189 39.2498 +31.2 -36.8648 39.5133 +30.284 -36.5148 39.1382 +29.8643 -36.7534 39.3939 +28.9158 -36.3302 38.9403 +29.0133 -37.2238 39.8981 +27.6587 -36.2454 38.8494 +27.2848 -36.5302 39.1547 +26.6826 -36.5081 39.131 +26.3023 -36.7882 39.4312 +25.7446 -36.8202 39.4655 +25.3571 -37.0958 39.7609 +24.5084 -36.6866 39.3223 +24.4855 -37.5166 40.2119 +23.2072 -36.4098 39.0256 +22.7796 -36.6093 39.2394 +22.3487 -36.8066 39.4509 +21.8396 -36.8749 39.5242 +21.4037 -37.067 39.7301 +20.6778 -36.7472 39.3873 +19.8217 -36.166 38.7643 +19.7004 -36.9237 39.5764 +18.9268 -36.4609 39.0803 +18.7202 -37.0881 39.7527 +17.9594 -36.6159 39.2465 +17.5213 -36.7863 39.4292 +16.9297 -36.629 39.2606 +16.8991 -37.7069 40.4159 +16.0185 -36.8904 39.5407 +15.4081 -36.6564 39.29 +14.7248 -36.2209 38.8231 +14.5197 -36.9661 39.6219 +13.7959 -36.3907 39.0051 +13.6202 -37.2657 39.943 +12.8628 -36.5494 39.1752 +12.5523 -37.0898 39.7545 +11.9908 -36.8968 39.5476 +11.5183 -36.9668 39.6226 +10.9652 -36.7665 39.408 +10.7807 -37.8348 40.553 +10.0047 -36.8244 39.47 +9.62011 -37.2184 39.8923 +8.97859 -36.6015 39.231 +8.66647 -37.3273 40.009 +8.04083 -36.7028 39.3397 +7.58493 -36.8168 39.4619 +7.11368 -36.8605 39.5087 +6.65407 -36.9692 39.6252 +6.15825 -36.8719 39.5209 +5.79088 -37.5856 40.2858 +5.21401 -36.9396 39.5935 +4.74999 -37.0372 39.698 +4.27602 -37.064 39.7269 +3.80173 -37.0881 39.7526 +3.32104 -37.0412 39.7024 +2.85231 -37.1277 39.7951 +2.33364 -36.4617 39.0813 +1.90202 -37.156 39.8254 +1.40308 -36.5521 39.1782 +0.952901 -37.2412 39.9167 +0.46687 -36.4951 39.117 +1.44329e-15 -36.7693 39.411 +-0.46687 -36.4951 39.117 +-0.935449 -36.5591 39.1856 +-1.39785 -36.4158 39.032 +-1.90202 -37.156 39.8254 +-2.33364 -36.4617 39.0813 +-2.85231 -37.1277 39.7951 +-3.32104 -37.0412 39.7024 +-3.85753 -37.6325 40.3362 +-4.25248 -36.86 39.5082 +-4.79357 -37.377 40.0622 +-5.27152 -37.347 40.0302 +-5.74907 -37.3142 39.995 +-6.12429 -36.6685 39.3029 +-6.72719 -37.3755 40.0606 +-7.07452 -36.6577 39.2913 +-7.68236 -37.2897 39.9687 +-7.99649 -36.5004 39.1227 +-8.6039 -37.0578 39.7202 +-9.04461 -36.8706 39.5196 +-9.58538 -37.0841 39.7484 +-9.89539 -36.4219 39.0386 +-10.5517 -37.0313 39.6918 +-10.8456 -36.3654 38.978 +-11.4975 -36.9 39.5511 +-11.7527 -36.1642 38.7623 +-12.4623 -36.824 39.4695 +-12.8862 -36.6157 39.2463 +-13.4025 -36.67 39.3045 +-13.7709 -36.3246 38.9343 +-14.5456 -37.032 39.6925 +-14.9921 -36.8783 39.5278 +-15.5184 -36.9187 39.5711 +-15.9617 -36.7596 39.4005 +-16.7237 -37.3155 39.9964 +-17.1703 -37.1495 39.8184 +-17.7685 -37.3053 39.9855 +-17.9277 -36.5513 39.1772 +-18.7527 -37.1527 39.8218 +-19.1939 -36.9753 39.6317 +-20.0082 -37.5006 40.1948 +-20.0669 -36.6133 39.2438 +-20.9645 -37.2568 39.9334 +-21.4037 -37.067 39.7301 +-22.2516 -37.5707 40.2699 +-22.6166 -37.2478 39.9238 +-23.522 -37.8024 40.5183 +-23.6458 -37.0979 39.7632 +-24.5262 -37.579 40.2788 +-24.9645 -37.3695 40.0542 +-25.5684 -37.4049 40.0922 +-26.0459 -37.2512 39.9275 +-26.9598 -37.7079 40.4169 +-27.3073 -37.3628 40.0471 +-28.2382 -37.8067 40.5228 +-28.259 -37.032 39.6926 +-29.2011 -37.4647 40.1563 +-29.6793 -37.2894 39.9684 +-30.543 -37.5886 40.2891 +-30.481 -36.7523 39.3927 +-32.1 -37.9282 40.6531 +-32.2287 -37.3243 40.0058 +-32.8594 -37.3064 39.9866 +-33.3354 -37.1093 39.7754 +-34.9747 -38.1823 40.9254 +-35.0319 -37.5123 40.2073 +-35.8372 -37.6456 40.3502 +-36.0415 -37.1464 39.8151 +-37.0186 -37.4394 40.1292 +-37.3828 -37.1052 39.7709 +-38.3723 -37.3842 40.07 +-38.849 -37.1543 39.8236 +-39.9106 -37.4736 40.1658 +-40.2695 -37.1248 39.792 +-41.4651 -37.5375 40.2343 +-41.8828 -37.2351 39.9102 +-43.5888 -38.0595 40.7938 +-43.3893 -37.2113 39.8846 +-44.5559 -37.5347 40.2313 +-45.5432 -37.6891 40.3968 +-46.6664 -37.9391 40.6648 +-46.9551 -37.5043 40.1988 +-48.1547 -37.7897 40.5046 +-48.57 -37.4505 40.1411 +-50.2517 -38.0724 40.8077 +-49.9937 -37.2186 39.8925 +-51.9001 -37.9672 40.6949 +-52.2461 -37.5579 40.2562 +-53.4192 -37.7361 40.4472 +-53.8298 -37.368 40.0527 +-55.9321 -38.1556 40.8968 +-56.2041 -37.6778 40.3847 +-58.1227 -38.2895 41.0404 +-57.8849 -37.4725 40.1646 +-60.2635 -38.3361 41.0903 +-61.4152 -38.3907 41.1488 +-62.7214 -38.5257 41.2935 +-63.6612 -38.4221 41.1824 +-65.4333 -38.8024 41.5901 +-65.8512 -38.3671 41.1236 +-67.1821 -38.456 41.2188 +-68.7518 -38.6621 41.4397 +-70.4094 -38.8953 41.6897 +-71.2956 -38.687 41.4664 +-73.285 -39.0591 41.8652 +-74.1785 -38.829 41.6186 +-76.9086 -39.5354 42.3758 +-77.2506 -38.9949 41.7965 +-79.7691 -39.536 42.3764 +-80.2718 -39.0596 41.8658 +-82.5705 -39.4411 42.2747 +-82.9895 -38.9094 41.7048 +-85.2251 -39.2149 42.0323 +-85.8069 -38.7438 41.5273 +-88.5636 -39.2347 42.0534 +-89.3995 -38.8526 41.6439 +-92.8613 -39.5841 42.428 +-94.0462 -39.315 42.1395 +-97.6314 -40.0184 42.8935 +-98.0534 -39.4011 42.2318 +-100.199 -39.4639 42.2992 +-101.658 -39.2355 42.0543 +-104.342 -39.4556 42.2902 +-106.425 -39.4189 42.2508 +-109.309 -39.6485 42.497 +-110.078 -39.0908 41.8992 +-108.525 -37.7217 40.4317 +-108.645 -36.9524 39.6072 +-110.462 -36.7528 39.3933 +-110.115 -35.8296 38.4037 +-109.301 -34.7691 37.267 +-108.74 -33.8058 36.2346 +-108.712 -33.0185 35.3907 +-107.663 -31.9348 34.2291 +-106.687 -30.8929 33.1123 +-106.616 -30.1261 32.2905 +-105.143 -28.9792 31.0611 +-53.406 -14.3511 15.3821 +-45.6521 -11.9546 12.8135 +-43.4616 -11.0851 11.8815 +-41.7224 -10.3593 11.1036 +-37.9885 -9.17692 9.83622 +-32.904 -7.72893 8.2842 +-15.1732 -3.46332 3.71214 +-16.9288 -3.75231 4.02189 +-16.4039 -3.52832 3.7818 +-16.5441 -3.45047 3.69837 +-16.3958 -3.3131 3.55113 +-15.6686 -3.06495 3.28514 +-15.8999 -3.00801 3.22412 +-14.9719 -2.73669 2.9333 +-15.0063 -2.64745 2.83766 +-13.9723 -2.37649 2.54722 +-14.78 -2.42062 2.59452 +-11.7899 -1.85682 1.99023 +-12.7895 -1.93422 2.07318 +-13.205 -1.91474 2.0523 +-12.935 -1.79526 1.92424 +-12.4667 -1.6531 1.77186 +-13.5689 -1.71557 1.83883 +-13.6888 -1.64658 1.76487 +-14.3011 -1.63258 1.74987 +-14.519 -1.56873 1.68143 +-14.044 -1.43181 1.53468 +-14.4579 -1.38614 1.48572 +-13.3845 -1.20206 1.28842 +-14.4912 -1.21379 1.30099 +-13.7113 -1.0657 1.14226 +-13.7244 -0.984034 1.05473 +-14.6323 -0.96114 1.03019 +-13.8471 -0.82643 0.885804 +-12.4615 -0.669038 0.717104 +-12.3698 -0.590069 0.632462 +-12.6763 -0.528903 0.566901 +-11.5841 -0.414148 0.443901 +-11.2892 -0.336244 0.360401 +-12.0926 -0.288072 0.308769 +-11.3961 -0.203573 0.218199 +-11.8982 -0.141677 0.151856 +-11.2996 -0.0672694 0.0721023 +11.4 4.44089e-16 2.84217e-14 +10.8996 -0.0642579 0.0701326 +12.2981 -0.145017 0.158275 +11.8959 -0.210438 0.229677 +12.9921 -0.306493 0.334514 +12.8877 -0.380126 0.414878 +14.1805 -0.50205 0.547949 +15.6707 -0.647491 0.706686 +29.7274 -1.4043 1.53268 +20.2374 -1.07596 1.17433 +30.7824 -1.81933 1.98566 +15.9263 -1.03598 1.13069 +17.9014 -1.27106 1.38726 +16.9901 -1.30771 1.42727 +19.1561 -1.58895 1.73422 +18.7383 -1.66655 1.81891 +35.8477 -3.40348 3.71463 +40.6486 -4.10396 4.47915 +46.8164 -5.00921 5.46717 +51.1882 -5.78675 6.3158 +56.134 -6.68658 7.29788 +67.1563 -8.40839 9.17711 +117.501 -15.4295 16.8401 +118.375 -16.2697 17.7571 +118.551 -17.0232 18.5795 +118.62 -17.7653 19.3894 +119.75 -18.6766 20.3841 +120.088 -19.4765 21.2571 +120.026 -20.2164 22.0646 +120.631 -21.0754 23.0022 +120.354 -21.7858 23.7775 +120.743 -22.6208 24.6889 +120.638 -23.369 25.5055 +120.14 -24.0409 26.2388 +120.303 -24.8471 27.1187 +120.836 -25.7381 28.0912 +120.594 -26.4704 28.8904 +121.101 -27.3732 29.8758 +120.648 -28.0641 30.6298 +120.941 -28.9321 31.5772 +120.375 -29.5978 32.3037 +120.269 -30.3773 33.1544 +119.872 -31.0851 33.927 +120.303 -32.0134 34.9402 +120.719 -32.9492 35.9615 +120.289 -33.6596 36.7369 +120.678 -34.6051 37.7688 +120.41 -35.369 38.6026 +121.319 -36.4897 39.8257 +119.842 -36.8953 40.2684 +118.183 -37.2292 40.6329 +115.441 -37.1975 40.5982 +113.697 -37.462 40.8869 +111.061 -37.4074 40.8273 +108.703 -37.4166 40.8374 +106.264 -37.3698 40.7863 +104.806 -37.646 41.0877 +101.679 -37.2954 40.705 +99.4443 -37.2384 40.6428 +97.4798 -37.2576 40.6638 +95.6958 -37.3242 40.7365 +93.4868 -37.2012 40.6023 +92.5741 -37.577 41.0124 +91.403 -37.8389 41.2982 +89.0451 -37.5887 41.0252 +87.1223 -37.4951 40.9231 +85.7121 -37.6026 41.0404 +83.472 -37.3235 40.7357 +82.5721 -37.6253 41.0651 +80.0227 -37.154 40.5507 +79.3758 -37.5469 40.9795 +77.5038 -37.3465 40.7608 +76.6139 -37.6034 41.0413 +74.2764 -37.1294 40.5239 +73.155 -37.2407 40.6453 +71.6398 -37.1359 40.531 +70.2906 -37.0993 40.491 +69.1043 -37.1337 40.5286 +68.622 -37.5397 40.9717 +66.8999 -37.2553 40.6613 +65.7266 -37.2575 40.6637 +64.6345 -37.2925 40.7019 +64.0748 -37.6278 41.0679 +61.5642 -36.7955 40.1595 +61.0865 -37.157 40.554 +60.0144 -37.1506 40.547 +58.874 -37.0884 40.4791 +57.6673 -36.969 40.3488 +56.612 -36.9321 40.3086 +55.4909 -36.8383 40.2062 +55.0836 -37.2118 40.6138 +53.199 -36.5715 39.9149 +52.2383 -36.5436 39.8845 +50.9382 -36.2621 39.5772 +49.9905 -36.2151 39.526 +49.4532 -36.4586 39.7918 +49.6495 -37.2508 40.6564 +47.8412 -36.5302 39.8699 +47.3019 -36.7599 40.1206 +46.3056 -36.6263 39.9748 +45.8308 -36.898 40.2713 +44.271 -36.2806 39.5975 +43.9266 -36.6452 39.9954 +43.4515 -36.9027 40.2764 +42.7269 -36.9445 40.3221 +42.1263 -37.0879 40.4785 +41.1641 -36.9032 40.277 +40.7454 -37.1987 40.5995 +39.5579 -36.7816 40.1443 +39.1394 -37.0685 40.4574 +38.1428 -36.7997 40.1641 +37.666 -37.0232 40.408 +37.0745 -37.1318 40.5265 +36.1519 -36.8983 40.2717 +35.6194 -37.0534 40.4409 +34.6021 -36.6922 40.0467 +34.1268 -36.8948 40.2678 +33.6489 -37.0945 40.4858 +32.6019 -36.6546 40.0056 +32.1272 -36.8453 40.2138 +31.7 -37.0918 40.4829 +30.7272 -36.6893 40.0436 +30.3006 -36.9282 40.3042 +29.8224 -37.1054 40.4977 +29.0133 -36.8623 40.2324 +28.5361 -37.0319 40.4175 +28.0566 -37.1987 40.5995 +27.2181 -36.879 40.2506 +26.7406 -37.0381 40.4242 +25.8737 -36.6456 39.9958 +25.7797 -37.3477 40.7622 +24.9231 -36.945 40.3227 +24.4449 -37.0906 40.4815 +23.6059 -36.6757 40.0287 +23.2094 -36.9378 40.3148 +22.6549 -36.9484 40.3264 +22.1767 -37.0806 40.4706 +21.4403 -36.7699 40.1315 +21.2871 -37.4625 40.8875 +20.1719 -36.4476 39.7797 +20.0082 -37.1364 40.5316 +19.294 -36.8072 40.1723 +18.7853 -36.8557 40.2251 +18.2767 -36.9009 40.2745 +17.8303 -37.0716 40.4608 +17.2004 -36.8531 40.2223 +16.8991 -37.3407 40.7545 +16.2741 -37.1151 40.5083 +15.9043 -37.4693 40.8949 +15.2059 -37.0409 40.4273 +14.7527 -37.1944 40.5948 +14.0714 -36.7567 40.1171 +13.596 -36.8382 40.2061 +13.0496 -36.7199 40.077 +12.5748 -36.7955 40.1594 +12.034 -36.6704 40.0229 +11.7054 -37.2024 40.6036 +11.1646 -37.0714 40.4606 +10.7235 -37.2684 40.6756 +10.0958 -36.7989 40.1631 +9.77639 -37.4558 40.8801 +9.14364 -36.9123 40.2869 +8.68211 -37.0315 40.417 +8.23298 -37.2149 40.6172 +7.73802 -37.1951 40.5956 +7.23115 -37.1053 40.4976 +6.77594 -37.2807 40.689 +6.1809 -36.648 39.9985 +5.80133 -37.2877 40.6967 +5.31944 -37.3205 40.7325 +4.82843 -37.2832 40.6917 +4.26817 -36.6367 39.9862 +3.85753 -37.267 40.6741 +3.32715 -36.7489 40.1086 +2.85231 -36.7671 40.1285 +2.34236 -36.2426 39.556 +1.90202 -36.7951 40.1591 +1.42926 -36.8725 40.2435 +0.954647 -36.9471 40.3249 +0.477341 -36.9513 40.3295 +1.33227e-15 -36.9527 40.331 +-0.476469 -36.8837 40.2557 +-0.951156 -36.812 40.1774 +-1.42141 -36.6699 40.0224 +-1.89853 -36.7276 40.0854 +-2.41651 -37.39 40.8083 +-2.89941 -37.3743 40.7912 +-3.38209 -37.3558 40.771 +-3.85753 -37.267 40.6741 +-4.3231 -37.1081 40.5007 +-4.88072 -37.6869 41.1324 +-5.27152 -36.9843 40.3655 +-5.84314 -37.5565 40.99 +-6.32806 -37.5206 40.9509 +-6.82468 -37.5489 40.9818 +-7.19199 -36.9044 40.2784 +-7.68236 -36.9275 40.3036 +-8.12952 -36.7472 40.1068 +-8.74469 -37.2984 40.7084 +-9.22616 -37.2455 40.6506 +-9.62011 -36.8569 40.2265 +-10.0412 -36.5996 39.9456 +-10.5327 -36.6053 39.9519 +-11.025 -36.608 39.9548 +-11.6846 -37.1364 40.5315 +-12.0124 -36.6044 39.9508 +-12.4623 -36.4663 39.8002 +-13.143 -36.9827 40.3637 +-13.8137 -37.4282 40.85 +-14.0213 -36.6259 39.9744 +-14.8044 -37.3249 40.7373 +-15.2593 -37.1711 40.5694 +-15.7389 -37.0797 40.4696 +-16.2173 -36.9855 40.3668 +-16.9868 -37.5345 40.9661 +-17.471 -37.433 40.8552 +-17.9848 -37.3928 40.8114 +-18.5306 -37.4135 40.8339 +-19.0783 -37.4306 40.8526 +-19.5277 -37.253 40.6587 +-20.316 -37.7077 41.1551 +-20.7673 -37.5233 40.9538 +-21.3229 -37.5255 40.9562 +-21.7335 -37.2728 40.6803 +-22.5888 -37.7696 41.2226 +-22.9993 -37.5101 40.9394 +-23.4829 -37.3731 40.7898 +-24.0446 -37.3571 40.7724 +-24.9736 -37.8928 41.3571 +-25.4207 -37.6827 41.1277 +-25.9065 -37.5314 40.9627 +-26.4334 -37.4382 40.8609 +-27.3105 -37.8274 41.2858 +-27.7981 -37.665 41.1084 +-28.2382 -37.4395 40.8623 +-28.7669 -37.3315 40.7445 +-29.5298 -37.5184 40.9484 +-30.1564 -37.5209 40.9512 +-31.1248 -37.9326 41.4005 +-31.4659 -37.5713 41.0062 +-31.9 -37.3258 40.7383 +-32.8885 -37.7185 41.1668 +-33.735 -37.9285 41.3961 +-34.1714 -37.6706 41.1145 +-35.5046 -38.3843 41.8935 +-35.5155 -37.6608 41.1039 +-36.1096 -37.5633 40.9975 +-36.5934 -37.349 40.7635 +-37.4659 -37.5239 40.9544 +-38.0059 -37.3573 40.7726 +-38.8311 -37.4638 40.8889 +-39.4297 -37.3434 40.7575 +-40.4984 -37.6561 41.0988 +-41.5186 -37.9047 41.37 +-41.9465 -37.6045 41.0424 +-43.1003 -37.9453 41.4144 +-43.4657 -37.5834 41.0194 +-44.0118 -37.3785 40.7958 +-45.0593 -37.5902 41.0268 +-46.1157 -37.7922 41.2473 +-47.1806 -37.9847 41.4574 +-47.1499 -37.2942 40.7037 +-48.8108 -37.9325 41.4004 +-49.2327 -37.5927 41.0295 +-50.3855 -37.8031 41.2591 +-51.3449 -37.8533 41.3139 +-52.4457 -37.9938 41.4673 +-52.9345 -37.6831 41.1283 +-54.1834 -37.9042 41.3695 +-55.4419 -38.1133 41.5978 +-56.4271 -38.1194 41.6044 +-57.06 -37.88 41.3431 +-58.1946 -37.9646 41.4354 +-59.118 -37.8991 41.3639 +-60.9949 -38.4245 41.9374 +-62.5948 -38.748 42.2905 +-63.8361 -38.8296 42.3795 +-64.3353 -38.4518 41.9672 +-66.188 -38.8688 42.4223 +-67.372 -38.872 42.4258 +-68.3312 -38.7339 42.2751 +-69.6777 -38.8023 42.3497 +-71.8083 -39.2828 42.8741 +-72.313 -38.858 42.4105 +-73.9942 -39.054 42.6245 +-75.6859 -39.2332 42.82 +-77.5475 -39.4767 43.0858 +-78.5368 -39.2591 42.8483 +-80.1736 -39.3505 42.9481 +-81.4116 -39.2295 42.816 +-83.7173 -39.6005 43.2209 +-84.2257 -39.1055 42.6806 +-85.9712 -39.1741 42.7555 +-87.8082 -39.2624 42.8519 +-88.9829 -39.0376 42.6065 +-91.1706 -39.2375 42.8247 +-93.8789 -39.6293 43.2523 +-95.922 -39.7097 43.3401 +-98.7457 -40.0821 43.7465 +-99.1735 -39.4642 43.0721 +-101.238 -39.486 43.0959 +-102.963 -39.3534 42.9512 +-105.916 -39.6619 43.2879 +-108.007 -39.6162 43.2381 +-110.898 -39.8343 43.4761 +-111.142 -39.0855 42.6588 +-109.237 -37.6007 41.0382 +-110.345 -37.1663 40.5641 +-112.439 -37.0474 40.4344 +-111.018 -35.7724 39.0428 +-109.845 -34.6026 37.7661 +-109.286 -33.6456 36.7216 +-109.169 -32.8352 35.8371 +-108.213 -31.7863 34.6923 +-106.871 -30.6457 33.4474 +-105.969 -29.6525 32.3635 +-104.123 -28.4193 31.0175 +-56.6624 -15.0782 16.4567 +-46.4923 -12.0564 13.1586 +-41.7756 -10.5516 11.5162 +-38.7153 -9.51933 10.3896 +-37.7057 -9.02017 9.84482 +-16.452 -3.82693 4.1768 +-16.406 -3.70835 4.04738 +-15.7875 -3.46536 3.78218 +-16.1178 -3.43311 3.74697 +-16.2572 -3.35771 3.66468 +-16.2999 -3.26174 3.55994 +-16.2453 -3.1469 3.4346 +-15.8999 -2.9788 3.25113 +-14.0059 -2.53526 2.76705 +-13.7477 -2.40186 2.62144 +-14.4574 -2.43512 2.65775 +-3185.78 -516.687 563.924 +-13.5437 -2.11233 2.30544 +-13.18 -1.97391 2.15438 +-13.4984 -1.93828 2.11548 +-12.935 -1.77782 1.94036 +-13.8409 -1.81751 1.98367 +-14.5522 -1.82202 1.9886 +-13.6888 -1.63059 1.77966 +-13.7094 -1.54982 1.69151 +-14.8153 -1.5852 1.73012 +-13.9451 -1.40792 1.53664 +-14.4579 -1.37267 1.49817 +-13.4837 -1.19921 1.30885 +-13.7964 -1.14437 1.24899 +-13.0158 -1.00182 1.09341 +-14.9178 -1.05922 1.15605 +-14.0351 -0.912961 0.996426 +-14.0463 -0.830185 0.906084 +-13.7575 -0.731447 0.798318 +-12.5693 -0.593764 0.648048 +-12.8759 -0.532014 0.580653 +-12.2831 -0.434874 0.474632 +-12.6879 -0.374233 0.408446 +-11.9927 -0.282917 0.308782 +-11.596 -0.205133 0.223887 +-11.4982 -0.135585 0.147981 +-11.3996 -0.0672056 0.0733497 +11.8 -1.33227e-15 -1.13687e-13 +11.4996 -0.0671246 0.0746017 +11.0983 -0.129575 0.144009 +11.3961 -0.199603 0.221837 +12.8921 -0.301128 0.334672 +12.6879 -0.370532 0.411806 +13.9808 -0.490084 0.544676 +31.3414 -1.28217 1.425 +33.0194 -1.54438 1.71642 +32.7986 -1.72656 1.91888 +35.3649 -2.06951 2.30003 +32.7485 -2.10917 2.34412 +19.4926 -1.37036 1.523 +17.3875 -1.32507 1.47268 +18.0643 -1.48357 1.64883 +20.7212 -1.82468 2.02794 +35.9467 -3.37912 3.75553 +41.5387 -4.15235 4.61489 +46.8164 -4.95967 5.51214 +51.8786 -5.8068 6.45364 +57.9067 -6.82951 7.59026 +71.8759 -8.9103 9.90284 +117.403 -15.2642 16.9645 +118.375 -16.1088 17.9032 +118.747 -16.8826 18.7632 +118.62 -17.5896 19.5489 +119.848 -18.507 20.5685 +119.893 -19.2527 21.3973 +120.22 -20.0488 22.2821 +120.728 -20.8838 23.2101 +120.451 -21.5876 23.9923 +119.972 -22.2541 24.7331 +120.638 -23.1379 25.7153 +120.044 -23.7842 26.4336 +120.686 -24.6795 27.4287 +119.882 -25.2825 28.0987 +120.499 -26.188 29.1051 +120.153 -26.8903 29.8857 +120.554 -27.7648 30.8576 +120.375 -28.512 31.6881 +120.375 -29.3051 32.5695 +120.362 -30.1003 33.4532 +119.872 -30.7777 34.2061 +120.303 -31.6969 35.2277 +119.885 -32.3978 36.0067 +120.197 -33.3012 37.0107 +120.77 -34.2889 38.1085 +120.043 -34.9126 38.8016 +120.679 -35.9384 39.9416 +120.934 -36.8633 40.9696 +119.089 -37.1438 41.2813 +115.711 -36.916 41.0282 +114.327 -37.2968 41.4514 +110.793 -36.948 41.0637 +109.416 -37.2896 41.4433 +106.707 -37.1547 41.2935 +104.982 -37.3365 41.4955 +102.646 -37.2776 41.43 +100.669 -37.3241 41.4817 +98.4372 -37.2515 41.401 +95.9556 -37.0555 41.1832 +94.693 -37.3086 41.4645 +93.1741 -37.4465 41.6177 +91.062 -37.3249 41.4826 +89.8083 -37.536 41.7173 +87.9657 -37.4837 41.6591 +86.8024 -37.7043 41.9043 +84.3059 -37.3235 41.4811 +82.655 -37.2906 41.4445 +81.5061 -37.4686 41.6423 +79.8673 -37.4057 41.5725 +78.1551 -37.2879 41.4415 +77.342 -37.5854 41.7721 +75.4018 -37.3193 41.4763 +74.1932 -37.3956 41.5612 +72.5918 -37.2573 41.4074 +71.1574 -37.1854 41.3275 +69.8086 -37.1413 41.2785 +68.3888 -37.0422 41.1684 +67.3628 -37.1421 41.2795 +66.4161 -37.276 41.4283 +65.2428 -37.2712 41.423 +64.0748 -37.2557 41.4057 +62.3131 -36.8749 40.9824 +61.8296 -37.2372 41.3851 +60.0144 -36.7832 40.8806 +59.6053 -37.1778 41.3191 +57.7398 -36.6495 40.7319 +57.2594 -36.9851 41.105 +55.7762 -36.6616 40.7454 +55.0836 -36.8438 40.948 +53.6896 -36.5438 40.6145 +53.2108 -36.8557 40.9612 +52.1084 -36.7283 40.8195 +51.0135 -36.5908 40.6667 +49.9937 -36.4926 40.5576 +49.5157 -36.783 40.8804 +48.5038 -36.6699 40.7547 +48.0235 -36.9516 41.0677 +46.8252 -36.6711 40.7559 +45.8308 -36.5331 40.6026 +44.8435 -36.3863 40.4394 +43.9895 -36.3348 40.3822 +43.327 -36.4331 40.4914 +43.1579 -36.9482 41.0639 +42.1263 -36.7211 40.8115 +41.7058 -37.0189 41.1426 +40.6859 -36.7771 40.8738 +40.087 -36.905 41.0159 +39.1394 -36.7019 40.7902 +38.7164 -36.9838 41.1035 +37.7227 -36.7122 40.8017 +37.1304 -36.8201 40.9216 +36.5934 -36.9796 41.0989 +35.6194 -36.687 40.7736 +35.1394 -36.8935 41.0031 +34.7097 -37.1539 41.2926 +33.7012 -36.7848 40.8823 +33.1685 -36.9228 41.0357 +32.1272 -36.481 40.5447 +32.2 -37.3043 41.4597 +30.7765 -36.3847 40.4377 +30.7369 -37.0895 41.221 +29.8224 -36.7385 40.8309 +29.4359 -37.0292 41.154 +28.5361 -36.6657 40.75 +28.0566 -36.8309 40.9335 +27.1734 -36.4545 40.5152 +27.1352 -37.2129 41.3582 +26.3042 -36.8869 40.9958 +25.7797 -36.9784 41.0975 +24.9231 -36.5797 40.6544 +24.4449 -36.7238 40.8145 +24.0047 -36.9264 41.0397 +23.5611 -37.1266 41.2623 +22.6931 -36.6448 40.7268 +22.2516 -36.8379 40.9413 +21.7702 -36.9664 41.0841 +21.2871 -37.092 41.2238 +20.5222 -36.7137 40.8033 +20.0082 -36.7692 40.865 +19.4943 -36.8216 40.9232 +19.0457 -36.9971 41.1183 +18.2767 -36.536 40.6059 +17.8303 -36.705 40.7936 +17.2906 -36.68 40.7659 +16.9576 -37.0994 41.232 +16.5013 -37.2611 41.4117 +15.9043 -37.0988 41.2313 +15.2593 -36.8035 40.9031 +14.7268 -36.762 40.857 +14.2466 -36.8465 40.9509 +13.8137 -37.0581 41.1861 +13.3297 -37.1373 41.2741 +12.7997 -37.0834 41.2142 +12.2505 -36.9607 41.0779 +11.6846 -36.7691 40.8649 +11.344 -37.2947 41.4491 +10.8189 -37.2282 41.3752 +10.2599 -37.0269 41.1514 +9.77639 -37.0854 41.2164 +9.29218 -37.141 41.2782 +8.68211 -36.6653 40.7495 +8.2182 -36.7808 40.8779 +7.73802 -36.8273 40.9296 +7.25726 -36.8711 40.9782 +6.78812 -36.9784 41.0975 +6.28278 -36.8837 40.9923 +5.81178 -36.9855 41.1054 +5.31944 -36.9515 41.0676 +4.84586 -37.0477 41.1745 +4.27602 -36.3411 40.3892 +3.86451 -36.9652 41.0828 +3.38209 -36.9864 41.1064 +2.89941 -37.0047 41.1267 +2.42088 -37.087 41.2182 +1.90202 -36.4313 40.4894 +1.42926 -36.5079 40.5746 +0.970354 -37.1836 41.3255 +0.477341 -36.5858 40.6612 +2.33147e-15 -36.5873 40.6628 +-0.484323 -37.1209 41.2559 +-0.968609 -37.1167 41.2512 +-1.4502 -37.0428 41.169 +-1.92994 -36.966 41.0838 +-2.42088 -37.087 41.2182 +-2.90465 -37.0714 41.2009 +-3.38209 -36.9864 41.1064 +-3.90636 -37.3656 41.5278 +-4.33094 -36.8078 40.908 +-4.88072 -37.3142 41.4708 +-5.36736 -37.2843 41.4375 +-5.93722 -37.7837 41.9926 +-6.32806 -37.1496 41.2878 +-6.83687 -37.2439 41.3926 +-7.30947 -37.1363 41.273 +-7.93287 -37.7546 41.9602 +-8.26255 -36.9792 41.0984 +-8.88548 -37.5241 41.704 +-9.22616 -36.8771 40.985 +-9.62011 -36.4925 40.5575 +-10.2052 -36.8296 40.9321 +-10.857 -37.3595 41.5211 +-11.1845 -36.7704 40.8663 +-11.7054 -36.8345 40.9376 +-12.1856 -36.7648 40.8602 +-12.6647 -36.6923 40.7795 +-13.3064 -37.0723 41.2018 +-13.8137 -37.0581 41.1861 +-14.2466 -36.8465 40.9509 +-14.7786 -36.8912 41.0006 +-15.286 -36.868 40.9748 +-15.9594 -37.2274 41.3743 +-16.5013 -37.2611 41.4117 +-16.9868 -37.1634 41.3031 +-17.471 -37.0628 41.1913 +-18.2938 -37.6591 41.8541 +-18.5623 -37.1069 41.2403 +-19.3387 -37.5663 41.751 +-19.8281 -37.452 41.6239 +-20.5896 -37.8377 42.0525 +-20.8724 -37.3402 41.4996 +-21.6096 -37.654 41.8484 +-22.0267 -37.402 41.5683 +-22.5888 -37.3961 41.5617 +-23.0758 -37.2627 41.4135 +-23.9518 -37.7423 41.9465 +-24.0446 -36.9877 41.1079 +-24.9736 -37.5181 41.6974 +-25.7939 -37.8578 42.0749 +-25.991 -37.2815 41.4343 +-26.8208 -37.6114 41.801 +-27.3982 -37.5736 41.759 +-27.7981 -37.2925 41.4466 +-28.6922 -37.6652 41.8608 +-29.1363 -37.437 41.6072 +-29.9523 -37.6789 41.8761 +-30.6336 -37.7378 41.9415 +-31.1248 -37.5575 41.7411 +-31.4166 -37.1415 41.2788 +-32.35 -37.4781 41.6528 +-32.8377 -37.2878 41.4414 +-33.735 -37.5534 41.7366 +-34.5894 -37.7543 41.9598 +-35.6106 -38.1182 42.3642 +-35.8379 -37.6268 41.8182 +-36.5453 -37.6406 41.8335 +-36.9798 -37.3701 41.5328 +-37.9692 -37.6519 41.846 +-38.5156 -37.4839 41.6594 +-39.4047 -37.6412 41.8341 +-39.9524 -37.4642 41.6374 +-41.0274 -37.7708 41.9781 +-41.3997 -37.4223 41.5908 +-42.4881 -37.7134 41.9144 +-42.9786 -37.4639 41.6371 +-44.1429 -37.7915 42.0012 +-44.5098 -37.4277 41.5969 +-45.5628 -37.6343 41.8265 +-46.1157 -37.4185 41.5867 +-47.1806 -37.6091 41.7985 +-48.3189 -37.8409 42.056 +-48.7452 -37.5069 41.6849 +-49.829 -37.6718 41.8682 +-50.9208 -37.8269 42.0405 +-51.4124 -37.5282 41.7086 +-52.7867 -37.8627 42.0803 +-53.6917 -37.8442 42.0598 +-54.878 -38.0105 42.2446 +-55.4419 -37.7364 41.94 +-56.6393 -37.8844 42.1044 +-57.7733 -37.9743 42.2043 +-58.7701 -37.9608 42.1894 +-60.3511 -38.307 42.5741 +-62.0919 -38.7288 43.0429 +-62.8898 -38.5456 42.8393 +-64.4307 -38.8036 43.1261 +-64.9345 -38.4261 42.7065 +-66.1126 -38.4406 42.7225 +-68.0563 -38.8785 43.2093 +-69.4036 -38.9528 43.2918 +-70.6036 -38.9291 43.2655 +-72.5077 -39.2732 43.6479 +-73.2521 -38.9734 43.3147 +-74.7034 -39.0385 43.3871 +-75.6859 -38.8452 43.1723 +-77.5475 -39.0863 43.4402 +-79.5014 -39.3484 43.7315 +-80.9017 -39.3152 43.6947 +-81.0859 -38.6862 42.9955 +-84.045 -39.3623 43.747 +-84.7202 -38.9461 43.2844 +-86.8002 -39.1607 43.5229 +-88.4753 -39.1694 43.5326 +-90.1571 -39.1615 43.5238 +-91.8453 -39.1369 43.4965 +-94.8118 -39.6273 44.0415 +-96.3483 -39.4917 43.8908 +-99.1743 -39.858 44.2978 +-100.38 -39.5491 43.9546 +-103.23 -39.8647 44.3054 +-104.53 -39.5571 43.9635 +-107.491 -39.8534 44.2928 +-108.798 -39.5118 43.9131 +-111.693 -39.7231 44.1479 +-112.828 -39.2857 43.6619 +-110.307 -37.5932 41.7808 +-111.777 -37.2763 41.4286 +-113.608 -37.0622 41.1907 +-110.837 -35.3611 39.3 +-109.845 -34.2605 38.0768 +-109.468 -33.3684 37.0854 +-108.895 -32.4289 36.0412 +-108.763 -31.632 35.1556 +-107.607 -30.5517 33.9549 +-105.692 -29.2825 32.5444 +-102.454 -27.6873 30.7714 +-62.431 -16.449 18.2813 +-47.3325 -12.1529 13.5067 +-41.8692 -10.4707 11.6371 +-38.6214 -9.40232 10.4497 +-34.3122 -8.12719 9.03249 +-16.5466 -3.81085 4.23535 +-16.1215 -3.60801 4.00992 +-16.6435 -3.61712 4.02004 +-16.1178 -3.39916 3.7778 +-16.1616 -3.30495 3.67309 +-17.067 -3.38146 3.75813 +-15.7647 -3.0236 3.3604 +-15.2254 -2.82422 3.13882 +-14.1025 -2.5275 2.80905 +-13.7477 -2.3781 2.64301 +-13.002 -2.16831 2.40985 +-14.1966 -2.27971 2.53366 +-13.0566 -2.01621 2.2408 +-12.3013 -1.82411 2.0273 +-11.9334 -1.69661 1.88559 +-13.9149 -1.89359 2.10452 +-12.9575 -1.68467 1.87233 +-13.6672 -1.6943 1.88303 +-13.8858 -1.63769 1.82012 +-13.7094 -1.5345 1.70543 +-13.5313 -1.43349 1.59317 +-13.9451 -1.394 1.54928 +-14.854 -1.39634 1.55188 +-13.9794 -1.231 1.36813 +-14.4912 -1.19012 1.32269 +-14.8042 -1.12821 1.25388 +-14.6195 -1.02777 1.14225 +-14.0351 -0.903933 1.00462 +-14.6441 -0.856951 0.952409 +-13.8572 -0.729458 0.810714 +-13.7664 -0.643881 0.715605 +-12.5765 -0.514504 0.571816 +-11.9836 -0.420072 0.466865 +-11.589 -0.338439 0.376138 +-11.1932 -0.261444 0.290567 +-11.696 -0.204855 0.227674 +-11.0983 -0.129575 0.144009 +-11.3996 -0.066541 0.0739531 +11.8 -1.33227e-15 -1.13687e-13 +12.2995 -0.0710711 0.0804358 +12.0982 -0.139826 0.15825 +12.2958 -0.213192 0.241283 +12.8921 -0.298096 0.337375 +12.7878 -0.369689 0.418402 +25.8645 -0.897526 1.01579 +33.4375 -1.35415 1.53259 +33.4184 -1.54731 1.75119 +34.0946 -1.77671 2.01082 +36.2615 -2.10061 2.3774 +33.6444 -2.14505 2.4277 +20.4872 -1.42577 1.61364 +17.3875 -1.31173 1.48457 +18.9576 -1.54125 1.74434 +21.7126 -1.89273 2.14213 +35.1545 -3.27138 3.70244 +40.7475 -4.03224 4.56356 +46.9152 -4.9201 5.5684 +52.6677 -5.83576 6.60472 +57.1188 -6.66877 7.54749 +76.2023 -9.35155 10.5838 +117.501 -15.1231 17.1158 +118.473 -15.9599 18.0628 +118.747 -16.7127 18.9148 +118.815 -17.4411 19.7393 +119.068 -18.2015 20.5998 +120.088 -19.0897 21.6051 +120.899 -19.9591 22.589 +120.631 -20.6569 23.3787 +120.451 -21.3702 24.1861 +120.068 -22.0477 24.9529 +120.446 -22.8685 25.8818 +120.044 -23.5447 26.6471 +120.399 -24.373 27.5845 +119.882 -25.0279 28.3257 +120.594 -25.9448 29.3634 +120.058 -26.5985 30.1033 +120.648 -27.5068 31.1313 +121.035 -28.3797 32.1192 +120.469 -29.0327 32.8582 +120.55 -29.8436 33.776 +120.805 -30.7051 34.751 +120.303 -31.3777 35.5122 +120.719 -32.2949 36.5503 +120.104 -32.9405 37.2809 +120.678 -33.9179 38.3871 +120.593 -34.7194 39.2943 +121.136 -35.7112 40.4167 +120.479 -36.3549 41.1452 +119.905 -37.0216 41.8998 +117.246 -37.0289 41.9081 +115.046 -37.1535 42.049 +112.404 -37.1077 41.9972 +109.416 -36.9141 41.7781 +107.328 -36.9946 41.8693 +105.512 -37.1471 42.0418 +102.997 -37.0286 41.9078 +100.406 -36.8519 41.7078 +98.2632 -36.8112 41.6617 +96.302 -36.8148 41.6657 +94.4346 -36.8321 41.6854 +93.4312 -37.1718 42.0698 +92.0851 -37.3642 42.2876 +90.9108 -37.6142 42.5705 +88.5561 -37.3554 42.2776 +85.8799 -36.928 41.7939 +84.6394 -37.0939 41.9817 +83.4841 -37.2854 42.1983 +81.5061 -37.0913 41.9787 +80.6046 -37.3709 42.2951 +79.2134 -37.4123 42.342 +77.9892 -37.5183 42.4619 +76.1252 -37.2979 42.2125 +75.2315 -37.5372 42.4833 +72.9885 -37.0837 41.97 +71.3938 -36.9332 41.7998 +69.8086 -36.7673 41.612 +68.8551 -36.9193 41.784 +67.5943 -36.8946 41.756 +66.8757 -37.156 42.052 +65.2428 -36.896 41.7576 +64.1503 -36.924 41.7894 +62.9872 -36.8984 41.7604 +61.8296 -36.8623 41.7195 +60.6042 -36.7707 41.6159 +59.6053 -36.8035 41.6529 +58.4652 -36.7362 41.5768 +57.9788 -37.0727 41.9576 +56.1328 -36.5245 41.3372 +55.5786 -36.8006 41.6497 +54.5307 -36.7425 41.584 +54.0444 -37.0562 41.9389 +52.1084 -36.3584 41.1492 +51.0817 -36.2708 41.05 +50.6693 -36.6134 41.4378 +49.4488 -36.3635 41.1549 +48.5038 -36.3007 41.0839 +48.0235 -36.5795 41.3995 +46.8901 -36.3521 41.1421 +45.895 -36.2159 40.988 +45.416 -36.4797 41.2865 +44.43 -36.3291 41.116 +43.8873 -36.5326 41.3464 +43.3426 -36.7327 41.5728 +42.8568 -36.9817 41.8546 +41.6456 -36.5934 41.4151 +41.2212 -36.8858 41.7461 +40.1457 -36.5869 41.4079 +39.662 -36.8175 41.6688 +39.1753 -37.0453 41.9266 +38.0625 -36.67 41.5018 +37.5778 -36.8885 41.7491 +37.0902 -37.1042 41.9933 +36.1096 -36.8174 41.6686 +35.623 -37.0246 41.9032 +34.6567 -36.7236 41.5625 +34.1714 -36.9225 41.7876 +33.1685 -36.551 41.3672 +32.6855 -36.7412 41.5825 +32.2 -36.9287 41.7946 +31.2197 -36.5371 41.3514 +30.6884 -36.6581 41.4884 +29.7747 -36.3104 41.0948 +29.342 -36.5395 41.3541 +28.5361 -36.2965 41.0792 +28.0566 -36.46 41.2642 +27.575 -36.6207 41.4461 +27.1352 -36.8382 41.6922 +26.2612 -36.4557 41.2593 +26.1178 -37.0861 41.9728 +25.3378 -36.8138 41.6647 +24.4449 -36.354 41.1442 +23.9648 -36.4938 41.3025 +23.4829 -36.6309 41.4576 +22.6931 -36.2759 41.0558 +22.5888 -37.0195 41.8974 +21.7702 -36.5942 41.416 +21.2154 -36.5949 41.4169 +20.7673 -36.7782 41.6243 +20.0424 -36.4612 41.2655 +19.5277 -36.5132 41.3244 +19.0783 -36.6872 41.5214 +18.5623 -36.7333 41.5735 +18.0775 -36.8391 41.6933 +17.5913 -36.9422 41.8099 +16.9868 -36.7892 41.6367 +16.4729 -36.8224 41.6743 +15.9043 -36.7253 41.5644 +15.2593 -36.4329 41.2336 +14.9856 -37.0314 41.9108 +14.2967 -36.6037 41.4268 +13.8137 -36.6849 41.5188 +13.3064 -36.699 41.5347 +12.7772 -36.6454 41.474 +12.2288 -36.5239 41.3365 +11.851 -36.917 41.7814 +11.3241 -36.8543 41.7105 +11.0288 -37.5684 42.5186 +10.2599 -36.6541 41.4838 +9.79376 -36.7772 41.6232 +9.29218 -36.767 41.6117 +8.68211 -36.2961 41.0787 +8.2182 -36.4104 41.2081 +7.76586 -36.5877 41.4087 +7.34862 -36.9593 41.8293 +6.88562 -37.1319 42.0246 +6.2941 -36.5781 41.3979 +5.90586 -37.2058 42.1082 +5.32902 -36.6453 41.4739 +4.83714 -36.6087 41.4325 +4.34663 -36.5693 41.3878 +3.86451 -36.593 41.4147 +3.37598 -36.5479 41.3636 +2.89941 -36.6321 41.459 +2.41651 -36.6475 41.4764 +1.93343 -36.66 41.4906 +1.43188 -36.2065 40.9773 +0.966863 -36.6768 41.5095 +0.48345 -36.681 41.5143 +1.44329e-15 -36.8148 41.6657 +-0.485195 -36.8134 41.6641 +-0.968609 -36.7429 41.5844 +-1.4502 -36.6698 41.5016 +-1.94041 -36.7923 41.6403 +-2.42524 -36.7797 41.6261 +-2.90465 -36.6982 41.5338 +-3.38209 -36.614 41.4384 +-3.96914 -37.5838 42.5361 +-4.40156 -37.0314 41.9108 +-4.88072 -36.9385 41.8058 +-5.44404 -37.4362 42.369 +-5.84314 -36.8107 41.6611 +-6.33938 -36.8413 41.6957 +-6.95874 -37.5262 42.4709 +-7.32252 -36.8281 41.6808 +-7.80761 -36.7843 41.6312 +-8.36601 -37.0653 41.9492 +-8.88548 -37.1463 42.0409 +-9.39121 -37.1589 42.0552 +-9.75903 -36.6467 41.4755 +-10.2234 -36.5238 41.3364 +-10.7235 -36.5283 41.3415 +-11.364 -36.9841 41.8573 +-11.7262 -36.5284 41.3416 +-12.1639 -36.33 41.117 +-12.8222 -36.7745 41.6201 +-13.3531 -36.8278 41.6804 +-13.8379 -36.7492 41.5915 +-14.2717 -36.5396 41.3543 +-14.9597 -36.9674 41.8385 +-15.4731 -36.9434 41.8113 +-15.987 -36.9162 41.7805 +-16.7285 -37.3938 42.3211 +-17.2499 -37.3591 42.2817 +-17.471 -36.6896 41.5241 +-18.2629 -37.217 42.1209 +-18.8479 -37.2984 42.2131 +-19.3062 -37.1255 42.0174 +-19.8615 -37.1374 42.0308 +-20.2476 -36.8345 41.6881 +-20.8023 -36.8401 41.6944 +-21.6454 -37.3367 42.2565 +-22.1 -37.1486 42.0436 +-22.5888 -37.0195 41.8974 +-23.4202 -37.4381 42.3712 +-23.9127 -37.3014 42.2164 +-24.4034 -37.1618 42.0585 +-24.9736 -37.1403 42.0342 +-25.7939 -37.4766 42.4148 +-26.3291 -37.3862 42.3124 +-26.8208 -37.2327 42.1387 +-27.3544 -37.1357 42.0289 +-28.1997 -37.4504 42.3851 +-28.6468 -37.227 42.1322 +-29.0902 -37.0013 41.8768 +-29.9523 -37.2995 42.2143 +-30.4427 -37.125 42.0168 +-31.1248 -37.1793 42.0783 +-31.9583 -37.4015 42.3297 +-32.4 -37.158 42.0542 +-33.3453 -37.4829 42.4218 +-33.7865 -37.2321 42.138 +-35.0074 -37.8258 42.81 +-35.2926 -37.3975 42.3252 +-35.8916 -37.3038 42.2191 +-36.5453 -37.2616 42.1714 +-37.0902 -37.1042 41.9933 +-37.9692 -37.2728 42.1841 +-39.0254 -37.5976 42.5517 +-39.5768 -37.4249 42.3563 +-40.4169 -37.5182 42.4619 +-41.0274 -37.3904 42.3172 +-41.3997 -37.0455 41.9268 +-42.6085 -37.4394 42.3727 +-43.5264 -37.5595 42.5086 +-44.0198 -37.3066 42.2224 +-45.1323 -37.569 42.5193 +-46.1292 -37.7185 42.6885 +-46.6245 -37.4505 42.3852 +-47.6948 -37.6362 42.5953 +-48.254 -37.4095 42.3388 +-49.4012 -37.6289 42.5872 +-49.8953 -37.3421 42.2625 +-50.9878 -37.4952 42.4358 +-51.3449 -37.1015 41.9903 +-53.3323 -37.8688 42.8587 +-53.8293 -37.5592 42.5083 +-54.9475 -37.6754 42.6398 +-56.0027 -37.7343 42.7064 +-57.2049 -37.8774 42.8684 +-57.702 -37.5455 42.4927 +-59.3455 -37.9466 42.9466 +-60.4962 -38.0124 43.0212 +-61.8725 -38.2033 43.2373 +-63.3321 -38.4259 43.4891 +-64.505 -38.4572 43.5246 +-65.6085 -38.434 43.4983 +-66.8673 -38.4879 43.5593 +-68.0563 -38.4871 43.5584 +-69.8633 -38.8159 43.9305 +-70.6036 -38.5371 43.615 +-72.974 -39.1278 44.2835 +-73.2521 -38.581 43.6646 +-75.1762 -38.89 44.0144 +-76.3999 -38.8169 43.9316 +-78.0267 -38.9318 44.0617 +-79.2603 -38.834 43.951 +-81.8725 -39.3864 44.5763 +-81.7372 -38.6043 43.691 +-84.045 -38.966 44.1004 +-85.6267 -38.9665 44.1009 +-87.2977 -38.9886 44.1259 +-88.7255 -38.8847 44.0084 +-90.6603 -38.9836 44.1203 +-92.6044 -39.0631 44.2103 +-94.5574 -39.123 44.2781 +-97.1157 -39.4055 44.5978 +-99.6028 -39.6271 44.8487 +-101.414 -39.5542 44.7661 +-103.23 -39.4633 44.6633 +-104.53 -39.1588 44.3186 +-107.491 -39.4521 44.6506 +-109.061 -39.2087 44.375 +-111.693 -39.3231 44.5045 +-112.828 -38.8902 44.0146 +-109.683 -37.0043 41.8802 +-111.956 -36.96 41.8301 +-114.147 -36.8632 41.7205 +-111.199 -35.119 39.7465 +-110.116 -33.9994 38.4794 +-110.014 -33.1971 37.5714 +-109.26 -32.2101 36.4543 +-108.397 -31.2079 35.32 +-106.871 -30.0371 33.995 +-105.599 -28.9623 32.7786 +-103.937 -27.8054 31.4692 +-67.3622 -17.5696 19.8847 +-47.3325 -12.0306 13.6158 +-42.6186 -10.5507 11.941 +-38.4334 -9.26236 10.4828 +-31.2957 -7.33806 8.30497 +-17.3975 -3.96649 4.48914 +-16.406 -3.63471 4.11364 +-16.0729 -3.45793 3.91357 +-16.5947 -3.46448 3.92098 +-16.4484 -3.32974 3.76849 +-15.437 -3.02772 3.42667 +-16.5337 -3.13916 3.5528 +-16.2854 -2.99043 3.38446 +-14.9719 -2.65629 3.0063 +-14.619 -2.50337 2.83322 +-13.099 -2.1625 2.44745 +-13.2242 -2.10219 2.37919 +-14.5181 -2.21933 2.51176 +-13.3753 -1.96338 2.22209 +-12.0312 -1.69329 1.91641 +-13.327 -1.79532 2.03188 +-13.3501 -1.71824 1.94465 +-13.9622 -1.71344 1.93921 +-12.8025 -1.49473 1.69168 +-13.7094 -1.51905 1.71921 +-14.4202 -1.51228 1.71155 +-13.5495 -1.34082 1.51749 +-15.0521 -1.4007 1.58527 +-14.8717 -1.29639 1.46721 +-13.9949 -1.13779 1.28771 +-14.9036 -1.12434 1.27249 +-14.0228 -0.97589 1.10448 +-14.2342 -0.907517 1.0271 +-14.6441 -0.848322 0.960103 +-13.5581 -0.706526 0.799622 +-12.8686 -0.595829 0.674339 +-11.778 -0.476985 0.539836 +-12.383 -0.429704 0.486324 +-12.1884 -0.35236 0.39879 +-12.3924 -0.286542 0.324299 +-10.7963 -0.187193 0.211859 +-11.0983 -0.12827 0.145172 +-11.7996 -0.0681822 0.0771663 +11.5 -2.66454e-15 -1.13687e-13 +11.4996 -0.0657674 0.0758009 +11.2983 -0.129242 0.14896 +11.696 -0.200713 0.231334 +12.5923 -0.288179 0.332143 +12.6879 -0.36304 0.418426 +31.0574 -1.06668 1.22941 +33.737 -1.35227 1.55857 +35.214 -1.61373 1.85992 +34.4933 -1.77906 2.05047 +36.9588 -2.11905 2.44234 +33.0472 -2.08537 2.40351 +21.1833 -1.4591 1.68171 +17.0894 -1.27603 1.4707 +18.9576 -1.52545 1.75818 +26.769 -2.30958 2.66193 +36.0458 -3.31992 3.82641 +41.6376 -4.07808 4.70024 +47.014 -4.8799 5.62438 +52.569 -5.76512 6.64465 +57.4143 -6.63454 7.64671 +76.1039 -9.24368 10.6539 +117.599 -14.9805 17.266 +118.473 -15.7962 18.2061 +118.649 -16.5277 19.0491 +118.913 -17.2765 19.9122 +119.068 -18.0148 20.7632 +120.185 -18.9093 21.7941 +120.123 -19.6276 22.622 +119.76 -20.2974 23.394 +120.451 -21.1511 24.378 +120.068 -21.8217 25.1508 +120.638 -22.6701 26.1287 +120.907 -23.4708 27.0515 +120.686 -24.1806 27.8695 +120.073 -24.8107 28.5959 +120.499 -25.6585 29.573 +120.911 -26.5129 30.5578 +120.554 -27.2034 31.3536 +120.187 -27.8918 32.147 +120.657 -28.7798 33.1705 +120.643 -29.5606 34.0703 +119.965 -30.1789 34.7831 +120.303 -31.056 35.7939 +120.719 -31.9638 36.8402 +121.028 -32.8535 37.8657 +120.77 -33.5957 38.721 +120.227 -34.2589 39.4855 +121.045 -35.3184 40.7066 +120.479 -35.9821 41.4716 +120.176 -36.7251 42.328 +117.517 -36.7339 42.338 +114.506 -36.6002 42.1839 +111.867 -36.5518 42.1282 +109.683 -36.6249 42.2124 +107.594 -36.7061 42.306 +105.071 -36.6124 42.198 +103.525 -36.8366 42.4564 +100.931 -36.6647 42.2583 +99.0465 -36.7242 42.3269 +96.4752 -36.5029 42.0717 +94.6069 -36.521 42.0927 +93.1741 -36.6894 42.2867 +92.4262 -37.1181 42.7808 +90.3171 -36.9854 42.628 +88.3031 -36.8668 42.4912 +86.8024 -36.942 42.5779 +84.6394 -36.7136 42.3147 +83.4841 -36.9031 42.533 +81.5061 -36.711 42.3116 +80.6046 -36.9877 42.6306 +78.8878 -36.8765 42.5024 +77.7465 -37.0181 42.6656 +75.7233 -36.7206 42.3227 +74.912 -36.9945 42.6384 +72.9885 -36.7035 42.303 +71.1574 -36.4335 41.9918 +69.5739 -36.268 41.801 +68.3888 -36.2933 41.8302 +67.5943 -36.5163 42.0872 +66.1862 -36.3959 41.9485 +65.0147 -36.39 41.9417 +64.2258 -36.5884 42.1704 +62.9872 -36.5201 42.0916 +61.8296 -36.4843 42.0504 +61.3415 -36.8365 42.4563 +59.2396 -36.2026 41.7257 +58.4652 -36.3596 41.9066 +57.9788 -36.6926 42.2904 +56.7747 -36.5634 42.1415 +55.72 -36.516 42.0869 +54.6008 -36.4125 41.9677 +54.1139 -36.7234 42.326 +52.1084 -35.9857 41.4756 +51.6273 -36.2823 41.8176 +50.5341 -36.1413 41.655 +49.5157 -36.0393 41.5375 +49.0339 -36.3211 41.8623 +47.9579 -36.1551 41.6709 +46.8901 -35.9794 41.4685 +46.345 -36.196 41.7181 +45.3524 -36.0551 41.5557 +44.8076 -36.2622 41.7944 +43.8873 -36.1581 41.6744 +43.3426 -36.3561 41.9026 +42.248 -36.0826 41.5874 +41.6456 -36.2182 41.7436 +41.2807 -36.5603 42.138 +40.1457 -36.2118 41.7363 +39.0813 -35.9065 41.3844 +38.6017 -36.1286 41.6404 +38.2324 -36.456 42.0177 +37.1863 -36.13 41.642 +36.6486 -36.2866 41.8225 +36.1096 -36.4399 41.9992 +35.1394 -36.1475 41.6622 +34.6567 -36.3471 41.8922 +34.1192 -36.488 42.0547 +33.6835 -36.7379 42.3427 +32.6855 -36.3645 41.9123 +32.25 -36.6068 42.1915 +31.1704 -36.1054 41.6136 +30.7854 -36.3969 41.9497 +29.7747 -35.9381 41.4208 +29.342 -36.1648 41.6821 +28.9516 -36.4475 42.008 +28.3744 -36.4949 42.0626 +27.6196 -36.3039 41.8424 +26.6968 -35.8715 41.3441 +26.6917 -36.6734 42.2684 +26.1178 -36.7059 42.3057 +25.2963 -36.3768 41.9264 +24.4855 -36.0411 41.5395 +23.9648 -36.1197 41.6301 +23.5611 -36.376 41.9255 +23.0375 -36.4488 42.0094 +22.2516 -36.0931 41.5994 +21.8068 -36.2799 41.8148 +21.2154 -36.2197 41.7454 +20.8023 -36.4624 42.0251 +20.316 -36.58 42.1606 +19.5611 -36.2006 41.7234 +19.4039 -36.9307 42.5649 +18.5623 -36.3566 41.9032 +18.0775 -36.4614 42.024 +17.5612 -36.501 42.0696 +17.2499 -36.976 42.6171 +16.4729 -36.4449 42.0049 +15.9043 -36.3487 41.8941 +15.4197 -36.4383 41.9973 +15.0115 -36.715 42.3162 +14.2967 -36.2284 41.7554 +13.7654 -36.1816 41.7015 +13.3064 -36.3227 41.8641 +12.8447 -36.4612 42.0238 +12.4236 -36.7253 42.3281 +11.8302 -36.4744 42.039 +11.3241 -36.4764 42.0413 +10.857 -36.6042 42.1885 +10.4603 -36.987 42.6298 +9.81112 -36.4646 42.0276 +9.29218 -36.3901 41.9418 +8.8229 -36.5065 42.076 +8.38079 -36.75 42.3567 +7.8772 -36.7317 42.3355 +7.27031 -36.1906 41.7118 +6.76375 -36.1007 41.6082 +6.2941 -36.2031 41.7263 +5.81178 -36.2377 41.7661 +5.31944 -36.2043 41.7277 +4.85457 -36.3639 41.9116 +4.34663 -36.1943 41.7161 +3.86451 -36.2178 41.7432 +3.37598 -36.1731 41.6917 +2.90465 -36.3219 41.8632 +2.41651 -36.2717 41.8053 +1.93343 -36.2842 41.8197 +1.45544 -36.4248 41.9818 +0.970354 -36.4317 41.9898 +0.477341 -35.8461 41.3148 +2.10942e-15 -36.3718 41.9207 +-0.48345 -36.3049 41.8436 +-0.980825 -36.8249 42.4429 +-1.44759 -36.2283 41.7553 +-1.93343 -36.2842 41.8197 +-2.42524 -36.4026 41.9563 +-2.89941 -36.2565 41.7878 +-3.3943 -36.3694 41.9179 +-3.89939 -36.5447 42.1199 +-4.40156 -36.6517 42.2433 +-4.88072 -36.5598 42.1374 +-5.35778 -36.4652 42.0284 +-5.93722 -37.0198 42.6675 +-6.44126 -37.0495 42.7018 +-6.94655 -37.0763 42.7327 +-7.33557 -36.5154 42.0862 +-7.94678 -37.0562 42.7095 +-8.38079 -36.75 42.3567 +-8.86983 -36.7007 42.2998 +-9.24267 -36.1961 41.7183 +-9.77639 -36.3355 41.8789 +-10.2052 -36.0849 41.5901 +-10.857 -36.6042 42.1885 +-11.2045 -36.0912 41.5972 +-11.851 -36.5385 42.1128 +-12.3587 -36.5333 42.1069 +-12.8672 -36.5251 42.0974 +-13.3064 -36.3227 41.8641 +-13.7895 -36.2452 41.7748 +-14.522 -36.7995 42.4136 +-14.9597 -36.5884 42.1703 +-15.4998 -36.6278 42.2157 +-15.9594 -36.4747 42.0393 +-16.4445 -36.3821 41.9325 +-16.9576 -36.3493 41.8948 +-17.7416 -36.8759 42.5018 +-18.2938 -36.8977 42.5268 +-18.7844 -36.7917 42.4047 +-19.2736 -36.6829 42.2792 +-19.8281 -36.6948 42.293 +-20.5554 -37.0111 42.6575 +-21.1175 -37.0149 42.6619 +-21.6096 -36.8927 42.5211 +-22.0267 -36.6458 42.2365 +-22.8885 -37.126 42.79 +-23.4202 -37.0543 42.7073 +-23.8737 -36.8586 42.4817 +-24.4433 -36.8409 42.4613 +-25.299 -37.2385 42.9196 +-25.8354 -37.152 42.82 +-26.0333 -36.5871 42.1689 +-26.95 -37.0283 42.6774 +-27.442 -36.8728 42.4981 +-28.1551 -37.0077 42.6537 +-28.6922 -36.9037 42.5337 +-29.1363 -36.6801 42.276 +-29.8584 -36.8014 42.4158 +-30.4427 -36.7443 42.3501 +-31.5126 -37.2567 42.9406 +-32.0075 -37.075 42.7312 +-32.4 -36.777 42.3878 +-33.3453 -37.0986 42.7583 +-33.735 -36.7942 42.4075 +-35.0074 -37.438 43.1495 +-35.8225 -37.5698 43.3015 +-36.2677 -37.3082 43 +-36.5453 -36.8795 42.5059 +-37.4765 -37.1063 42.7673 +-37.9692 -36.8906 42.5187 +-38.9687 -37.1581 42.827 +-39.5768 -37.0412 42.6922 +-40.475 -37.187 42.8602 +-41.0274 -37.0071 42.6529 +-42.054 -37.2452 42.9273 +-42.5483 -37.0032 42.6484 +-43.1003 -36.8105 42.4263 +-44.5739 -37.3889 43.0929 +-44.5098 -36.6709 42.2655 +-46.1921 -37.3827 43.0858 +-46.6881 -37.117 42.7796 +-47.1806 -36.8487 42.4703 +-48.3189 -37.0758 42.7321 +-49.4669 -37.2926 42.982 +-49.9616 -37.0083 42.6543 +-51.7238 -37.6465 43.3899 +-51.9529 -37.156 42.8245 +-53.2641 -37.4326 43.1433 +-54.38 -37.5544 43.2837 +-55.5032 -37.6663 43.4127 +-55.9326 -37.3007 42.9913 +-57.1342 -37.4428 43.155 +-57.702 -37.1606 42.8298 +-59.2736 -37.512 43.2348 +-60.4962 -37.6227 43.3624 +-62.2382 -38.0351 43.8378 +-62.6686 -37.6335 43.3748 +-64.505 -38.0629 43.8698 +-65.6085 -38.04 43.8434 +-67.3201 -38.3513 44.2021 +-68.0563 -38.0925 43.9039 +-69.4036 -38.1652 43.9877 +-70.6036 -38.142 43.961 +-72.2746 -38.3554 44.2069 +-73.4869 -38.3077 44.152 +-75.4126 -38.6123 44.503 +-76.7966 -38.6184 44.51 +-78.0267 -38.5327 44.4112 +-79.9838 -38.7867 44.704 +-81.2253 -38.6744 44.5746 +-82.877 -38.7413 44.6516 +-84.045 -38.5665 44.4502 +-85.6267 -38.5669 44.4507 +-87.7122 -38.7721 44.6871 +-88.7255 -38.486 44.3574 +-90.9119 -38.691 44.5937 +-93.3634 -38.9795 44.9262 +-95.0662 -38.9302 44.8694 +-97.6273 -39.2069 45.1883 +-99.86 -39.3221 45.3211 +-101.414 -39.1487 45.1212 +-103.49 -39.157 45.1308 +-105.4 -39.08 45.0421 +-107.753 -39.1429 45.1146 +-109.061 -38.8067 44.727 +-111.693 -38.9199 44.8575 +-113.36 -38.673 44.573 +-109.683 -36.6249 42.2124 +-112.225 -36.6688 42.263 +-114.956 -36.7438 42.3495 +-112.101 -35.0411 40.387 +-110.66 -33.817 38.9762 +-110.014 -32.8568 37.8694 +-108.621 -31.6933 36.5284 +-108.58 -30.9402 35.6604 +-107.883 -30.0108 34.5892 +-105.784 -28.7156 33.0964 +-104.215 -27.5939 31.8037 +-69.2231 -17.8698 20.596 +-49.8532 -12.5413 14.4546 +-41.8692 -10.259 11.8241 +-39.3731 -9.39152 10.8243 +-33.2752 -7.72222 8.90033 +-18.154 -4.09652 4.72148 +-16.6905 -3.65983 4.21817 +-15.7875 -3.36172 3.87459 +-16.5947 -3.42896 3.95209 +-16.3528 -3.27645 3.77631 +-16.5876 -3.22003 3.71128 +-15.9569 -2.99859 3.45606 +-15.4181 -2.80214 3.22964 +-14.4889 -2.54425 2.9324 +-13.7477 -2.33002 2.68549 +-13.9723 -2.28302 2.63132 +-13.6132 -2.14183 2.46859 +-13.8361 -2.09338 2.41274 +-13.18 -1.91488 2.20701 +-12.2268 -1.70318 1.96302 +-13.621 -1.81611 2.09317 +-12.9575 -1.65061 1.90243 +-13.3723 -1.62421 1.872 +-13.5903 -1.57044 1.81002 +-13.4135 -1.47103 1.69545 +-14.2227 -1.47627 1.7015 +-13.9451 -1.36582 1.57419 +-14.5569 -1.34074 1.54528 +-14.5742 -1.25744 1.44928 +-14.0942 -1.1341 1.30712 +-14.5061 -1.08314 1.24838 +-14.6195 -1.00699 1.16061 +-13.7365 -0.866808 0.999049 +-13.349 -0.765374 0.88214 +-13.5581 -0.699282 0.805965 +-12.6691 -0.580577 0.66915 +-12.3769 -0.496099 0.571784 +-12.5827 -0.432158 0.498088 +-12.1884 -0.348748 0.401953 +-12.6923 -0.290466 0.334779 +-11.0962 -0.19042 0.219471 +-11.2983 -0.129242 0.14896 +-11.4996 -0.0657674 0.0758009 +11.9 -8.88178e-16 2.84217e-14 +11.4996 -0.0650807 0.0763912 +11.6982 -0.13242 0.155434 +11.9959 -0.20371 0.239114 +11.7928 -0.267064 0.313477 +13.0875 -0.370565 0.434966 +33.554 -1.14039 1.33858 +35.1343 -1.39358 1.63577 +35.0145 -1.58783 1.86379 +34.8921 -1.78084 2.09034 +37.1581 -2.10823 2.47463 +34.7393 -2.16926 2.54626 +23.7691 -1.62012 1.90168 +17.3875 -1.28473 1.508 +18.0643 -1.4384 1.68838 +28.851 -2.46322 2.89131 +35.2535 -3.21306 3.77146 +41.7365 -4.04509 4.74809 +48.0017 -4.9304 5.78727 +53.4567 -5.80126 6.80947 +58.3006 -6.66663 7.82524 +76.4972 -9.19444 10.7924 +117.599 -14.8241 17.4004 +119.453 -15.7606 18.4997 +118.747 -16.3686 19.2133 +118.913 -17.0961 20.0673 +120.237 -18.0019 21.1304 +119.31 -18.5756 21.8039 +120.317 -19.4541 22.835 +119.857 -20.1017 23.5952 +120.354 -20.9136 24.5482 +120.068 -21.5939 25.3467 +120.638 -22.4334 26.3322 +120.811 -23.2073 27.2406 +120.686 -23.9281 28.0866 +121.027 -24.7467 29.0475 +120.404 -25.3706 29.7798 +121.006 -26.2567 30.82 +119.797 -26.7505 31.3995 +121.224 -27.8388 32.6769 +120.375 -28.4128 33.3507 +120.643 -29.2519 34.3357 +119.872 -29.8406 35.0266 +120.303 -30.7318 36.0727 +120.719 -31.6301 37.1271 +120.197 -32.2872 37.8984 +120.77 -33.2449 39.0226 +120.318 -33.9271 39.8234 +120.771 -34.8705 40.9307 +120.934 -35.7409 41.9523 +119.542 -36.1498 42.4324 +117.787 -36.4341 42.7661 +115.315 -36.4739 42.8127 +112.672 -36.4306 42.762 +109.95 -36.3308 42.6448 +107.594 -36.3228 42.6355 +105.159 -36.2606 42.5624 +102.997 -36.2664 42.5692 +101.194 -36.3763 42.6982 +98.3502 -36.0854 42.3567 +96.735 -36.219 42.5136 +94.9515 -36.2714 42.575 +93.6884 -36.5068 42.8513 +92.5967 -36.7983 43.1936 +90.9956 -36.8742 43.2826 +88.7248 -36.656 43.0266 +87.4733 -36.8389 43.2412 +84.6394 -36.3303 42.6442 +83.4841 -36.5178 42.8643 +82.495 -36.7685 43.1586 +80.6046 -36.6016 42.9626 +78.6436 -36.3785 42.7008 +77.7465 -36.6316 42.9979 +76.8487 -36.8773 43.2863 +74.912 -36.6083 42.9705 +73.7025 -36.6755 43.0494 +72.8122 -36.8916 43.303 +70.2782 -36.2526 42.553 +69.5546 -36.5265 42.8746 +68.3659 -36.5475 42.8991 +67.1055 -36.5162 42.8624 +65.9272 -36.5155 42.8615 +64.7541 -36.5043 42.8484 +62.9872 -36.1388 42.4194 +62.4242 -36.4505 42.7853 +60.6779 -36.0576 42.3241 +59.6785 -36.09 42.3622 +58.4652 -35.98 42.233 +57.9069 -36.2644 42.5669 +56.7747 -36.1817 42.4697 +56.2857 -36.5016 42.8452 +54.6008 -36.0324 42.2945 +54.0444 -36.2933 42.6008 +52.1084 -35.6099 41.7987 +51.6273 -35.9035 42.1433 +50.6017 -35.8118 42.0356 +50.1848 -36.145 42.4267 +48.5038 -35.5534 41.7323 +47.9579 -35.7776 41.9954 +47.4097 -35.9983 42.2545 +46.2807 -35.7684 41.9847 +45.2888 -35.6287 41.8207 +44.8076 -35.8836 42.1199 +43.8873 -35.7806 41.9989 +43.4657 -36.0787 42.3489 +42.8568 -36.2204 42.5152 +42.1872 -36.3061 42.6158 +41.2212 -36.1265 42.405 +40.7335 -36.3584 42.6772 +39.6039 -36.0068 42.2644 +39.1753 -36.2826 42.5883 +38.1191 -35.9685 42.2195 +37.6337 -36.1828 42.4711 +37.0902 -36.3404 42.656 +36.1096 -36.0594 42.3263 +35.623 -36.2624 42.5645 +34.7097 -36.0227 42.2831 +34.1192 -36.1071 42.3822 +33.6835 -36.3544 42.6725 +32.6347 -35.929 42.1732 +32.2 -36.1684 42.4542 +31.7121 -36.3493 42.6665 +30.7369 -35.9602 42.2098 +30.2519 -36.1328 42.4123 +29.7645 -36.3026 42.6117 +28.9978 -36.1245 42.4027 +28.4198 -36.1717 42.458 +27.575 -35.8668 42.1002 +27.442 -36.4878 42.8291 +26.6056 -36.1735 42.4602 +26.1178 -36.3227 42.6352 +25.3378 -36.056 42.3222 +24.8923 -36.2573 42.5585 +23.9648 -35.7426 41.9543 +23.4829 -35.8768 42.1119 +22.9993 -36.0084 42.2663 +22.5513 -36.1973 42.4881 +21.7702 -35.8408 42.0696 +21.5379 -36.3865 42.7101 +20.8023 -36.0817 42.3524 +20.2818 -36.1372 42.4175 +19.5945 -35.8838 42.1201 +19.4039 -36.5452 42.8964 +18.5623 -35.9771 42.2296 +18.1084 -36.1424 42.4237 +17.892 -36.8002 43.1958 +17.2499 -36.59 42.949 +16.6717 -36.4996 42.843 +16.1248 -36.4679 42.8057 +15.6602 -36.6203 42.9845 +15.0115 -36.3317 42.6458 +14.497 -36.3524 42.6702 +13.8137 -35.9297 42.174 +13.3064 -35.9435 42.1901 +13.0472 -36.6493 43.0187 +12.2505 -35.8354 42.0633 +11.8925 -36.2839 42.5897 +11.3241 -36.0956 42.3687 +10.857 -36.222 42.5171 +10.2963 -36.027 42.2882 +9.77639 -35.9562 42.2051 +9.29218 -36.0101 42.2684 +8.97934 -36.7659 43.1555 +8.35123 -36.2381 42.536 +7.75194 -35.7702 41.9868 +7.36168 -36.2628 42.565 +6.88562 -36.3675 42.6878 +6.38466 -36.3406 42.6563 +5.81178 -35.8594 42.0914 +5.4057 -36.4073 42.7346 +4.85457 -35.9843 42.238 +4.34663 -35.8164 42.041 +3.86451 -35.8396 42.0683 +3.38209 -35.8602 42.0924 +2.89941 -35.878 42.1133 +2.38598 -35.4395 41.5985 +1.93343 -35.9053 42.1454 +1.4502 -35.9149 42.1566 +0.970354 -36.0514 42.3168 +0.485195 -36.0555 42.3217 +1.88738e-15 -36.0569 42.3233 +-0.484323 -35.9907 42.2456 +-0.98257 -36.5053 42.8496 +-1.47376 -36.4983 42.8414 +-1.96833 -36.5534 42.9061 +-2.4645 -36.6057 42.9674 +-2.90988 -36.0075 42.2653 +-3.38209 -35.8602 42.0924 +-3.89939 -36.1631 42.448 +-4.39371 -36.2044 42.4964 +-4.88072 -36.1781 42.4656 +-5.44404 -36.6655 43.0377 +-5.93722 -36.6333 42.9998 +-6.44126 -36.6627 43.0344 +-6.94655 -36.6893 43.0655 +-7.32252 -36.0699 42.3386 +-7.93287 -36.6051 42.9667 +-8.38079 -36.3664 42.6865 +-8.88548 -36.3816 42.7044 +-9.40771 -36.4579 42.7939 +-9.75903 -35.8923 42.1301 +-10.3692 -36.2821 42.5876 +-10.8761 -36.2856 42.5918 +-11.2244 -35.7779 41.9958 +-11.8925 -36.2839 42.5897 +-12.3587 -36.1519 42.4348 +-12.8672 -36.1438 42.4253 +-13.283 -35.8804 42.1161 +-13.9831 -36.3702 42.691 +-14.472 -36.2896 42.5965 +-14.9597 -36.2064 42.4987 +-15.4998 -36.2453 42.5445 +-15.987 -36.1562 42.4399 +-16.7285 -36.624 42.989 +-17.2499 -36.59 42.949 +-17.7416 -36.4909 42.8328 +-18.2938 -36.5125 42.858 +-18.8162 -36.4691 42.8071 +-19.5666 -36.8518 43.2563 +-20.0618 -36.7396 43.1247 +-20.6238 -36.7466 43.1328 +-21.1525 -36.6892 43.0655 +-21.6454 -36.5681 42.9233 +-22.3932 -36.8666 43.2737 +-22.851 -36.6783 43.0527 +-23.4202 -36.6674 43.0399 +-24.3035 -37.1304 43.5834 +-24.7623 -36.932 43.3505 +-25.299 -36.8497 43.2539 +-25.7939 -36.7051 43.0842 +-26.3291 -36.6166 42.9802 +-26.8639 -36.5247 42.8723 +-27.7489 -36.8959 43.3081 +-28.1997 -36.6794 43.054 +-29.1462 -37.0962 43.5432 +-29.1825 -36.3546 42.6728 +-29.8584 -36.4171 42.7461 +-30.4427 -36.3607 42.6799 +-31.4641 -36.811 43.2084 +-31.909 -36.575 42.9315 +-32.85 -36.8986 43.3113 +-33.4468 -36.823 43.2226 +-34.147 -36.8547 43.2597 +-35.0597 -37.1024 43.5505 +-35.5046 -36.8476 43.2514 +-36.1065 -36.7546 43.1423 +-36.5997 -36.5489 42.9008 +-37.4765 -36.7189 43.1003 +-38.4166 -36.9356 43.3546 +-39.0254 -36.8236 43.2233 +-39.9783 -37.0263 43.4612 +-40.475 -36.7987 43.194 +-41.6152 -37.1453 43.6009 +-42.054 -36.8563 43.2616 +-42.6085 -36.6687 43.0414 +-43.5264 -36.7863 43.1795 +-44.6355 -37.0496 43.4885 +-45.0078 -36.6941 43.0712 +-46.1292 -36.942 43.3622 +-46.6881 -36.7295 43.1128 +-47.1806 -36.464 42.8011 +-48.3189 -36.6887 43.0649 +-49.4012 -36.8543 43.2593 +-49.8953 -36.5734 42.9295 +-51.1216 -36.8197 43.2187 +-51.9529 -36.768 43.158 +-53.3323 -37.0892 43.5351 +-54.38 -37.1623 43.6208 +-55.3643 -37.1797 43.6412 +-56.5634 -37.3275 43.8147 +-57.2049 -37.0977 43.545 +-58.2726 -37.1362 43.5902 +-59.9929 -37.5708 44.1003 +-61.2216 -37.6763 44.2241 +-62.2382 -37.638 44.1792 +-63.9957 -38.0291 44.6383 +-64.4307 -37.6221 44.1605 +-66.1328 -37.9437 44.5379 +-67.5465 -38.0785 44.6962 +-68.8928 -38.1581 44.7896 +-70.0931 -38.1419 44.7707 +-70.6036 -37.7438 44.3033 +-72.2746 -37.9549 44.5512 +-74.1913 -38.2711 44.9224 +-75.8854 -38.4487 45.1308 +-77.2726 -38.4521 45.1347 +-78.7455 -38.4817 45.1694 +-79.9838 -38.3817 45.0521 +-81.5489 -38.4232 45.1008 +-82.877 -38.3368 44.9994 +-84.7003 -38.4614 45.1457 +-85.9564 -38.3112 44.9694 +-87.7122 -38.3673 45.0352 +-89.4759 -38.4063 45.081 +-91.3312 -38.4636 45.1483 +-93.3634 -38.5725 45.2761 +-95.0662 -38.5237 45.2189 +-98.2241 -39.0347 45.8186 +-100.974 -39.3458 46.1838 +-102.448 -39.1349 45.9362 +-103.49 -38.7482 45.4823 +-105.4 -38.672 45.3929 +-108.54 -39.0173 45.7981 +-109.852 -38.68 45.4022 +-112.576 -38.818 45.5642 +-114.424 -38.6286 45.3419 +-111.019 -36.6841 43.0595 +-112.225 -36.2859 42.5921 +-115.225 -36.4455 42.7794 +-111.379 -34.4519 40.4394 +-110.298 -33.3543 39.151 +-109.741 -32.433 38.0696 +-109.443 -31.5997 37.0915 +-108.58 -30.6172 35.9382 +-108.067 -29.7481 34.9181 +-105.137 -28.242 33.1502 +-104.401 -27.3544 32.1084 +-17.3988 -4.44458 5.21701 +-48.2661 -12.0152 14.1034 +-42.7123 -10.3563 12.1561 +-39.5611 -9.33783 10.9607 +-34.1236 -7.83641 9.19831 +-20.045 -4.47601 5.2539 +-16.1215 -3.49815 4.1061 +-16.2631 -3.42683 4.02238 +-16.5947 -3.39316 3.98286 +-15.8747 -3.14744 3.69443 +-16.2041 -3.11273 3.6537 +-16.3414 -3.03879 3.56691 +-16.6708 -2.99818 3.51924 +-15.0684 -2.61839 3.07345 +-14.0381 -2.3544 2.76358 +-13.9723 -2.25918 2.65181 +-14.78 -2.30114 2.70106 +-12.6668 -1.89646 2.22605 +-12.4966 -1.79664 2.10888 +-13.205 -1.82023 2.13657 +-13.033 -1.71957 2.01842 +-12.4667 -1.5715 1.84462 +-13.6672 -1.64271 1.9282 +-14.2797 -1.63287 1.91665 +-13.019 -1.41285 1.6584 +-14.1239 -1.45071 1.70283 +-13.9451 -1.35156 1.58645 +-14.5569 -1.32674 1.55731 +-13.0871 -1.11734 1.31153 +-14.0942 -1.12226 1.3173 +-14.8042 -1.09385 1.28396 +-14.52 -0.989697 1.1617 +-14.2342 -0.888835 1.04331 +-14.6441 -0.830858 0.975255 +-14.1562 -0.722513 0.848079 +-13.1678 -0.597134 0.700911 +-12.0774 -0.479042 0.562296 +-11.9836 -0.407281 0.478064 +-11.8887 -0.33662 0.395122 +-11.493 -0.260274 0.305507 +-11.3961 -0.193525 0.227158 +-11.5982 -0.131289 0.154105 +-11.0996 -0.0628171 0.0737342 +10.2 0 2.84217e-14 +10.7996 -0.0604696 0.07229 +11.6982 -0.131012 0.156622 +11.9959 -0.201545 0.240942 +12.6923 -0.284377 0.339966 +15.3853 -0.430995 0.515245 +35.2516 -1.18535 1.41706 +37.1306 -1.4571 1.74193 +35.7128 -1.60228 1.91549 +36.5869 -1.84748 2.20863 +36.8592 -2.06904 2.47349 +32.9476 -2.0355 2.4334 +25.4598 -1.7169 2.05252 +17.0894 -1.24928 1.49349 +18.5606 -1.4622 1.74803 +29.7433 -2.51241 3.00353 +35.2535 -3.1789 3.8003 +41.7365 -4.00208 4.7844 +47.3103 -4.80772 5.74752 +54.1471 -5.8137 6.95015 +60.8611 -6.88544 8.23139 +114.844 -13.6567 16.3263 +117.697 -14.6788 17.5481 +118.571 -15.4779 18.5035 +118.747 -16.1946 19.3602 +118.913 -16.9143 20.2207 +119.36 -17.6805 21.1367 +120.379 -18.5429 22.1676 +120.317 -19.2472 23.0096 +120.728 -20.0326 23.9485 +120.451 -20.7078 24.7557 +120.068 -21.3643 25.5405 +120.638 -22.1949 26.5335 +120.044 -22.8148 27.2746 +120.686 -23.6737 28.3014 +120.168 -24.3099 29.062 +120.499 -25.1206 30.0312 +120.153 -25.7943 30.8366 +120.554 -26.6332 31.8394 +121.035 -27.4999 32.8756 +120.375 -28.1107 33.6058 +120.55 -28.9185 34.5714 +119.965 -29.5463 35.322 +120.303 -30.405 36.3485 +120.627 -31.2697 37.3822 +120.289 -31.9685 38.2176 +120.77 -32.8914 39.321 +120.502 -33.6176 40.189 +120.588 -34.4475 41.1813 +121.207 -35.4407 42.3686 +119.723 -35.8198 42.8217 +117.246 -35.881 42.895 +115.855 -36.2548 43.3418 +112.135 -35.8715 42.8836 +110.218 -36.0319 43.0754 +107.328 -35.8478 42.8552 +105.424 -35.9654 42.9958 +102.558 -35.7277 42.7117 +100.669 -35.8029 42.8015 +98.4372 -35.7333 42.7183 +96.735 -35.8339 42.8387 +95.21 -35.9834 43.0174 +94.5456 -36.449 43.574 +92.0851 -36.2059 43.2834 +90.9956 -36.4822 43.6136 +88.7248 -36.2663 43.3556 +87.9765 -36.6569 43.8225 +85.3899 -36.2627 43.3513 +83.8986 -36.3089 43.4065 +82.1654 -36.2322 43.3148 +81.6695 -36.6909 43.8631 +80.109 -36.6624 43.8291 +78.4746 -36.5815 43.7324 +76.8487 -36.4852 43.6173 +75.6308 -36.5666 43.7145 +73.7025 -36.2856 43.3786 +72.497 -36.3414 43.4453 +70.9043 -36.1867 43.2604 +69.5546 -36.1382 43.2024 +68.1345 -36.0365 43.0808 +67.4119 -36.2929 43.3873 +65.6991 -36.0022 43.0399 +64.7541 -36.1162 43.1761 +63.6612 -36.1372 43.2012 +62.4242 -36.063 43.1125 +61.3415 -36.0643 43.1141 +60.1173 -35.9689 43 +58.9729 -35.9066 42.9255 +58.4823 -36.2354 43.3186 +57.4167 -36.2017 43.2783 +55.6493 -35.7052 42.6847 +55.1616 -36.0154 43.0556 +54.6696 -36.3228 43.4231 +53.6228 -36.2553 43.3424 +52.2411 -35.9441 42.9704 +51.2097 -35.8568 42.866 +50.2517 -35.8084 42.8081 +49.1001 -35.6078 42.5684 +48.4828 -35.7845 42.7796 +47.9942 -36.0546 43.1025 +46.8592 -35.8305 42.8345 +45.7976 -35.6459 42.6139 +44.8705 -35.5519 42.5016 +43.9495 -35.4503 42.3801 +43.4041 -35.6445 42.6122 +42.8568 -35.8353 42.8403 +42.1872 -35.9201 42.9417 +41.2807 -35.794 42.7909 +40.6747 -35.9199 42.9415 +39.6039 -35.6239 42.5876 +39.6341 -36.3173 43.4166 +38.0625 -35.5332 42.4792 +37.6337 -35.7981 42.7959 +37.0902 -35.954 42.9822 +36.5997 -36.1603 43.2289 +35.623 -35.8769 42.89 +35.1336 -36.0749 43.1268 +34.5894 -36.2156 43.2949 +33.6835 -35.9678 42.9987 +33.193 -36.1551 43.2226 +32.2 -35.7839 42.7788 +31.7121 -35.9628 42.9928 +31.2702 -36.1952 43.2705 +30.2519 -35.7486 42.7367 +29.342 -35.4067 42.328 +28.9516 -35.6835 42.6589 +28.4198 -35.7871 42.7827 +27.9766 -36.0023 43.0399 +27.4859 -36.1576 43.2256 +26.6056 -35.7889 42.7848 +26.4982 -36.4598 43.5869 +25.3378 -35.6726 42.6458 +24.8109 -35.7546 42.7438 +24.4034 -36.0098 43.0489 +23.8737 -36.086 43.14 +22.9993 -35.6255 42.5895 +22.5513 -35.8124 42.813 +21.7702 -35.4597 42.3913 +21.2871 -35.5803 42.5355 +20.8373 -35.7582 42.7482 +20.6238 -36.3559 43.4626 +19.6278 -35.5627 42.5144 +19.4039 -36.1566 43.2244 +18.5941 -35.6554 42.6253 +18.1084 -35.7582 42.7481 +17.6514 -35.9194 42.9408 +17.2499 -36.2009 43.2774 +16.6717 -36.1116 43.1706 +15.8767 -35.5251 42.4695 +15.7403 -36.4164 43.535 +14.7786 -35.3876 42.3051 +14.5471 -36.0902 43.145 +14.0557 -36.1703 43.2407 +13.5398 -36.1852 43.2586 +12.8447 -35.697 42.6749 +12.4236 -35.9555 42.9839 +12.0589 -36.4002 43.5157 +11.4637 -36.152 43.2189 +11.0478 -36.4667 43.5951 +10.4239 -36.0856 43.1395 +9.96741 -36.2689 43.3587 +9.45723 -36.2601 43.3481 +8.85419 -35.8681 42.8795 +8.36601 -35.9163 42.9371 +7.86328 -35.8982 42.9155 +7.38778 -36.0045 43.0425 +6.8978 -36.0444 43.0903 +6.39598 -36.0179 43.0587 +5.92676 -36.18 43.2524 +5.34819 -35.637 42.6033 +4.9243 -36.113 43.1723 +4.41725 -36.0113 43.0507 +3.92729 -36.0347 43.0787 +3.43703 -36.0553 43.1033 +2.90465 -35.5605 42.5118 +2.42088 -35.5755 42.5297 +1.96484 -36.1007 43.1575 +1.45282 -35.5972 42.5556 +0.970354 -35.6681 42.6404 +0.493049 -36.2496 43.3356 +1.22125e-15 -35.5452 42.4935 +-0.48345 -35.5439 42.4919 +-0.98257 -36.1171 43.1772 +-1.47376 -36.1103 43.169 +-1.96484 -36.1007 43.1575 +-2.42524 -35.6396 42.6063 +-2.95698 -36.2013 43.2779 +-3.44924 -36.1834 43.2564 +-3.96914 -36.4187 43.5377 +-4.47217 -36.4591 43.586 +-4.95916 -36.3687 43.478 +-5.44404 -36.2757 43.3668 +-5.93722 -36.2438 43.3286 +-6.53183 -36.7829 43.9732 +-6.95874 -36.3629 43.471 +-7.45305 -36.3225 43.4228 +-7.93287 -36.2159 43.2953 +-8.39557 -36.0432 43.0888 +-8.91676 -36.1215 43.1825 +-9.39121 -36.007 43.0455 +-9.77639 -35.5739 42.5278 +-10.2416 -35.4547 42.3853 +-10.857 -35.8369 42.8422 +-11.344 -35.7747 42.7679 +-11.8718 -35.8353 42.8404 +-12.3803 -35.8301 42.8341 +-12.8447 -35.697 42.6749 +-13.5165 -36.1228 43.184 +-14.0073 -36.0457 43.0919 +-14.522 -36.0281 43.0708 +-15.2186 -36.4412 43.5646 +-15.4731 -35.7981 42.7959 +-16.2075 -36.2652 43.3543 +-16.7001 -36.1731 43.2441 +-17.2499 -36.2009 43.2774 +-17.7416 -36.103 43.1603 +-18.541 -36.6125 43.7694 +-18.8479 -36.1422 43.2072 +-19.5666 -36.46 43.5871 +-19.8281 -35.9256 42.9483 +-20.5554 -36.2353 43.3184 +-21.0825 -36.1789 43.2511 +-21.9321 -36.6585 43.8244 +-22.4299 -36.5343 43.676 +-22.9259 -36.4073 43.5242 +-23.4202 -36.2775 43.369 +-24.2253 -36.6175 43.7754 +-24.7224 -36.4805 43.6116 +-25.2583 -36.3993 43.5146 +-25.8354 -36.3733 43.4834 +-26.4136 -36.3435 43.4478 +-26.8208 -36.0785 43.131 +-27.7051 -36.4459 43.5703 +-28.2443 -36.3468 43.4518 +-29.1916 -36.7589 43.9445 +-29.6443 -36.5372 43.6794 +-30.5157 -36.823 44.0211 +-31.063 -36.7072 43.8826 +-31.5611 -36.5318 43.673 +-32.0075 -36.2979 43.3933 +-32.9 -36.5618 43.7089 +-33.4468 -36.4315 43.5531 +-34.5591 -36.9028 44.1165 +-35.0597 -36.7079 43.8835 +-35.7166 -36.6734 43.8423 +-36.5364 -36.7967 43.9897 +-36.981 -36.5369 43.6791 +-37.4213 -36.275 43.366 +-38.5284 -36.6492 43.8133 +-39.0254 -36.4321 43.5538 +-39.9783 -36.6327 43.7935 +-40.9976 -36.8776 44.0863 +-41.4976 -36.6466 43.8102 +-42.1135 -36.516 43.6541 +-43.0298 -36.6375 43.7993 +-44.0743 -36.8533 44.0573 +-44.5739 -36.6051 43.7606 +-45.6926 -36.8563 44.0609 +-46.1921 -36.5991 43.7534 +-46.6245 -36.2895 43.3833 +-47.7591 -36.5186 43.6572 +-48.9034 -36.7377 43.9191 +-49.9917 -36.8983 44.1111 +-50.4916 -36.617 43.7748 +-51.7907 -36.905 44.1192 +-52.2231 -36.5663 43.7142 +-53.9461 -37.1172 44.3728 +-54.9307 -37.1395 44.3995 +-55.5032 -36.8767 44.0853 +-56.7036 -37.0222 44.2592 +-57.8413 -37.1116 44.3661 +-58.4152 -36.8313 44.031 +-59.9929 -37.1714 44.4375 +-61.6568 -37.5407 44.879 +-62.3113 -37.2816 44.5693 +-63.3321 -37.2347 44.5133 +-65.8426 -38.0379 45.4734 +-66.3575 -37.6677 45.0309 +-67.5465 -37.6736 45.038 +-68.8928 -37.7523 45.1321 +-70.0931 -37.7364 45.113 +-71.9926 -38.0771 45.5203 +-72.974 -37.9148 45.3263 +-74.8956 -38.2237 45.6956 +-76.5158 -38.3559 45.8536 +-76.7966 -37.8089 45.1997 +-79.4642 -38.42 45.9303 +-80.3857 -38.1645 45.6248 +-82.1152 -38.2786 45.7612 +-83.284 -38.1154 45.5662 +-85.4376 -38.3837 45.8869 +-86.6157 -38.1946 45.6608 +-88.1267 -38.1387 45.594 +-89.2258 -37.8918 45.2988 +-92.3376 -38.474 45.9948 +-94.0381 -38.4382 45.952 +-96.8471 -38.8282 46.4182 +-98.6505 -38.7873 46.3694 +-100.974 -38.9275 46.5369 +-102.448 -38.7188 46.2875 +-104.269 -38.6249 46.1753 +-106.183 -38.5452 46.0799 +-108.54 -38.6024 46.1483 +-110.643 -38.5443 46.0788 +-113.724 -38.7968 46.3807 +-114.691 -38.3068 45.7949 +-111.554 -36.4689 43.5977 +-113.388 -36.2723 43.3628 +-116.394 -36.4236 43.5436 +-112.191 -34.3342 41.0457 +-110.841 -33.1624 39.6449 +-110.287 -32.2478 38.5516 +-108.621 -31.0289 37.0944 +-108.763 -30.3428 36.2741 +-107.239 -29.2062 34.9154 +-105.23 -27.9663 33.433 +-105.05 -27.2318 32.555 +-102.346 -25.8666 30.9229 +-51.5336 -12.6923 15.1733 +-42.8059 -10.2687 12.2759 +-40.7827 -9.52387 11.3856 +-36.763 -8.3528 9.98559 +-33.0932 -7.31108 8.74024 +-17.4492 -3.74598 4.47824 +-16.6435 -3.4697 4.14795 +-16.3086 -3.2992 3.94413 +-17.2135 -3.3766 4.03665 +-17.3546 -3.29831 3.94306 +-16.8221 -3.0949 3.69989 +-16.0926 -2.86343 3.42317 +-15.7446 -2.70679 3.23591 +-15.1031 -2.50608 2.99597 +-13.9723 -2.23516 2.67209 +-14.0994 -2.17183 2.59637 +-13.2514 -1.9629 2.3466 +-12.6918 -1.80531 2.1582 +-13.7919 -1.88091 2.24859 +-14.1109 -1.842 2.20207 +-13.252 -1.65274 1.97581 +-14.7488 -1.75386 2.0967 +-13.9843 -1.58208 1.89134 +-14.4984 -1.55667 1.86097 +-14.1239 -1.43529 1.71586 +-13.9451 -1.33719 1.59858 +-14.755 -1.33049 1.59058 +-13.6819 -1.15571 1.38162 +-14.5904 -1.14943 1.37412 +-14.6055 -1.0677 1.27641 +-14.1222 -0.952342 1.1385 +-14.6323 -0.903984 1.08069 +-13.349 -0.74933 0.895808 +-13.9568 -0.704764 0.84253 +-13.9659 -0.626591 0.749075 +-13.5746 -0.532703 0.636835 +-11.684 -0.392878 0.469677 +-11.3891 -0.319048 0.381415 +-11.1932 -0.250789 0.299812 +-11.9959 -0.201545 0.240942 +-11.2983 -0.126533 0.151268 +-10.7996 -0.0604696 0.07229 +11.9 -8.88178e-16 2.84217e-14 +11.0996 -0.0614776 0.0748547 +11.3983 -0.126273 0.15375 +12.5957 -0.209335 0.254885 +13.2919 -0.294593 0.358695 +31.5699 -0.874819 1.06517 +37.6483 -1.25226 1.52474 +37.7295 -1.4646 1.78329 +36.6106 -1.62481 1.97836 +38.2816 -1.91217 2.32825 +37.0584 -2.05774 2.50549 +35.237 -2.15342 2.62199 +32.0236 -2.13621 2.60103 +17.7849 -1.28607 1.56591 +19.1561 -1.49281 1.81764 +30.9331 -2.58467 3.14708 +36.838 -3.28587 4.00086 +41.9343 -3.97759 4.84309 +47.3103 -4.75576 5.79059 +54.9361 -5.83468 7.10426 +62.2398 -6.96532 8.48093 +115.729 -13.6132 16.5754 +117.697 -14.5201 17.6796 +118.767 -15.3359 18.6729 +119.041 -16.0592 19.5535 +119.01 -16.7453 20.389 +120.432 -17.6465 21.4863 +120.574 -18.3721 22.3698 +120.414 -19.0546 23.2007 +120.05 -19.7049 23.9925 +120.451 -20.484 24.9412 +120.743 -21.2521 25.8765 +120.542 -21.9375 26.711 +119.948 -22.5502 27.457 +120.494 -23.3807 28.4682 +119.978 -24.0091 29.2333 +120.499 -24.8492 30.2562 +120.153 -25.5156 31.0676 +120.648 -26.3661 32.1031 +120.847 -27.1603 33.0703 +120.469 -27.8287 33.884 +120.55 -28.606 34.8304 +119.965 -29.227 35.5867 +120.303 -30.0764 36.6209 +120.534 -30.9081 37.6334 +120.104 -31.5744 38.4448 +120.126 -32.3624 39.4043 +120.318 -33.2037 40.4286 +120.131 -33.9462 41.3327 +120.661 -34.8998 42.4937 +120.72 -35.7277 43.5018 +117.607 -35.6026 43.3494 +115.315 -35.6961 43.4633 +112.404 -35.5688 43.3083 +110.039 -35.5849 43.328 +106.885 -35.3138 42.9979 +104.806 -35.3682 43.0641 +102.909 -35.4627 43.1792 +100.581 -35.3852 43.0848 +98.0891 -35.2221 42.8862 +96.3886 -35.3198 43.0051 +94.6069 -35.3691 43.0651 +94.2884 -35.9571 43.7811 +93.4494 -36.3453 44.2537 +92.098 -36.5251 44.4727 +89.8212 -36.3177 44.2202 +88.2281 -36.3644 44.2771 +86.7241 -36.4313 44.3585 +84.8934 -36.3425 44.2503 +82.9895 -36.2001 44.077 +82.3248 -36.5855 44.5463 +80.109 -36.2662 44.1575 +79.2028 -36.522 44.4689 +77.2506 -36.2797 44.1739 +75.6308 -36.1714 44.0421 +73.7025 -35.8934 43.7036 +72.9698 -36.1831 44.0563 +71.3739 -36.0327 43.8732 +70.8757 -36.4266 44.3528 +68.5974 -35.8893 43.6986 +68.1014 -36.2678 44.1595 +66.3834 -35.9841 43.814 +65.2069 -35.9757 43.8038 +64.2604 -36.0831 43.9346 +63.1673 -36.0979 43.9526 +61.9313 -36.0176 43.8548 +60.8486 -36.013 43.8492 +59.6258 -35.9117 43.7259 +59.2017 -36.2847 44.18 +57.488 -35.855 43.6568 +56.9221 -36.1271 43.9881 +55.7924 -36.0336 43.8742 +55.2948 -36.3412 44.2488 +53.554 -35.8174 43.611 +53.1277 -36.1591 44.0271 +51.2097 -35.4693 43.1872 +50.1848 -35.3743 43.0715 +49.6965 -35.6509 43.4082 +48.5484 -35.4457 43.1585 +47.9942 -35.665 43.4255 +46.9878 -35.5405 43.2739 +45.7976 -35.2607 42.9332 +45.3111 -35.513 43.2404 +44.0118 -35.1169 42.7581 +44.0198 -35.7595 43.5405 +43.3438 -35.8508 43.6517 +42.9094 -36.1402 44.0041 +41.7566 -35.8153 43.6085 +41.3213 -36.0965 43.9509 +39.6039 -35.239 42.9067 +39.6341 -35.9249 43.7419 +38.6289 -35.6723 43.4343 +38.5843 -36.3058 44.2057 +37.6421 -36.0947 43.9487 +36.5997 -35.7695 43.5528 +35.623 -35.4891 43.2113 +35.5576 -36.1156 43.9742 +34.5894 -35.8242 43.6193 +34.147 -36.0688 43.9171 +33.2438 -35.8191 43.613 +32.7 -35.9469 43.7687 +31.6628 -35.519 43.2477 +31.2217 -35.7485 43.5271 +30.729 -35.92 43.736 +30.234 -36.0889 43.9415 +29.3672 -35.8046 43.5954 +28.8738 -35.9659 43.7918 +27.9766 -35.6132 43.3624 +27.5297 -35.8239 43.6189 +26.6486 -35.4594 43.1751 +26.2023 -35.6632 43.4232 +25.628 -35.6914 43.4576 +25.1363 -35.832 43.6288 +24.3636 -35.5625 43.3006 +23.9518 -35.8128 43.6055 +22.9993 -35.2405 42.9086 +22.9259 -36.0139 43.8503 +22.1 -35.608 43.3561 +21.6096 -35.7291 43.5035 +21.1175 -35.8474 43.6475 +20.6238 -35.963 43.7883 +19.8281 -35.5374 43.2701 +19.3387 -35.6458 43.4021 +18.8479 -35.7516 43.5309 +18.3247 -35.7943 43.5829 +17.6514 -35.5312 43.2626 +17.2792 -35.8704 43.6756 +16.9557 -36.3298 44.235 +16.3729 -36.2393 44.1248 +15.6602 -35.8394 43.6378 +15.2444 -36.1087 43.9657 +14.5471 -35.7002 43.4683 +14.0799 -35.8409 43.6397 +13.4931 -35.6707 43.4324 +13.1821 -36.2388 44.1241 +12.4453 -35.6288 43.3814 +12.0589 -36.0069 43.8417 +11.683 -36.4454 44.3757 +11.0669 -36.1349 43.9976 +10.4785 -35.8828 43.6907 +9.96741 -35.877 43.6836 +9.45723 -35.8682 43.6729 +8.97934 -35.9819 43.8113 +8.35123 -35.4653 43.1824 +8.01637 -36.2016 44.0788 +7.40084 -35.6783 43.4416 +6.8978 -35.6549 43.4132 +6.49786 -36.1962 44.0723 +5.99993 -36.2309 44.1145 +5.43445 -35.8205 43.6148 +5.00274 -36.2918 44.1887 +4.41725 -35.6221 43.3732 +3.92729 -35.6453 43.4014 +3.44314 -35.729 43.5034 +2.95175 -35.7467 43.5249 +2.41651 -35.1276 42.7712 +1.97182 -35.8374 43.6354 +1.47638 -35.7835 43.5698 +0.986061 -35.8538 43.6553 +0.493049 -35.8578 43.6603 +2.88658e-15 -35.8592 43.662 +-0.491304 -35.731 43.5058 +-0.984316 -35.7903 43.578 +-1.47376 -35.72 43.4925 +-1.99974 -36.3448 44.2532 +-2.4645 -35.8251 43.6204 +-2.95698 -35.8101 43.6021 +-3.49808 -36.2991 44.1976 +-4.02495 -36.5316 44.4806 +-4.47217 -36.0651 43.9126 +-5.0376 -36.5447 44.4966 +-5.44404 -35.8837 43.6917 +-6.04175 -36.4834 44.4219 +-6.44126 -35.8809 43.6884 +-6.95874 -35.9699 43.7967 +-7.45305 -35.93 43.7481 +-7.9607 -35.9502 43.7727 +-8.5286 -36.2186 44.0995 +-9.04191 -36.2327 44.1167 +-9.42422 -35.743 43.5205 +-10.0369 -36.127 43.988 +-10.3692 -35.5084 43.2348 +-11.0288 -36.0103 43.8459 +-11.344 -35.3881 43.0883 +-12.0797 -36.0689 43.9173 +-12.3803 -35.4429 43.1551 +-13.0472 -35.8678 43.6724 +-13.7032 -36.2261 44.1087 +-14.2008 -36.1489 44.0146 +-14.7223 -36.1303 43.992 +-15.4515 -36.5991 44.5629 +-15.7136 -35.9617 43.7868 +-16.4556 -36.4224 44.3476 +-16.9273 -36.269 44.1609 +-17.5131 -36.356 44.2668 +-18.0123 -36.2575 44.1469 +-18.5719 -36.2772 44.1708 +-19.1335 -36.2933 44.1905 +-19.5992 -36.1259 43.9867 +-20.1286 -36.0758 43.9257 +-20.6238 -35.963 43.7883 +-21.3977 -36.323 44.2266 +-22.2188 -36.7363 44.7299 +-22.4665 -36.1985 44.0751 +-23.2256 -36.4846 44.4234 +-23.7264 -36.3546 44.2651 +-24.2644 -36.2803 44.1746 +-24.7623 -36.1444 44.0092 +-25.5837 -36.4698 44.4054 +-26.1257 -36.3845 44.3015 +-26.6672 -36.2959 44.1936 +-27.2083 -36.2041 44.0819 +-28.1873 -36.6795 44.6608 +-28.6459 -36.4652 44.3998 +-29.1916 -36.3617 44.2738 +-29.6904 -36.1987 44.0752 +-30.5157 -36.4251 44.351 +-31.0153 -36.2547 44.1435 +-31.949 -36.5811 44.5409 +-32.4507 -36.4028 44.3238 +-33.4 -36.7164 44.7056 +-33.8021 -36.4206 44.3455 +-35.0741 -37.048 45.1094 +-35.3209 -36.5818 44.5418 +-36.1405 -36.7077 44.6951 +-36.5364 -36.3991 44.3193 +-37.5256 -36.6744 44.6545 +-37.9733 -36.4122 44.3353 +-39.0317 -36.7267 44.7182 +-39.0254 -36.0384 43.8801 +-40.4945 -36.7047 44.6914 +-41.1138 -36.5824 44.5425 +-41.5564 -36.3019 44.201 +-42.6488 -36.5805 44.5402 +-43.5714 -36.6978 44.6829 +-44.0743 -36.4551 44.3874 +-45.1896 -36.7097 44.6975 +-45.6926 -36.458 44.391 +-47.262 -37.0421 45.1022 +-47.197 -36.3381 44.245 +-48.4019 -36.6101 44.5762 +-49.4879 -36.775 44.777 +-49.9917 -36.4996 44.4416 +-51.2868 -36.7917 44.7973 +-52.326 -36.8835 44.9091 +-52.8312 -36.5923 44.5546 +-54.3553 -36.9946 45.0444 +-54.9995 -36.7842 44.7882 +-56.1284 -36.8891 44.9159 +-56.7036 -36.6221 44.5908 +-58.4777 -37.1144 45.1903 +-58.9145 -36.7447 44.7401 +-60.7123 -37.2106 45.3073 +-61.3667 -36.9603 45.0026 +-63.4084 -37.528 45.6938 +-64.5855 -37.5612 45.7343 +-66.5115 -38.009 46.2795 +-66.8069 -37.513 45.6756 +-68.3767 -37.7245 45.9331 +-69.5771 -37.7153 45.9219 +-71.4719 -38.0629 46.3451 +-71.7611 -37.5445 45.7139 +-74.1397 -38.1042 46.3954 +-75.3652 -38.0477 46.3266 +-77.2251 -38.2931 46.6254 +-77.7486 -37.8639 46.1028 +-80.183 -38.3486 46.6929 +-81.0288 -38.054 46.3343 +-82.7624 -38.1634 46.4674 +-83.6911 -37.8878 46.132 +-85.7652 -38.1145 46.408 +-87.687 -38.2492 46.5719 +-88.8728 -38.046 46.3246 +-90.6434 -38.0778 46.3633 +-93.0924 -38.3693 46.7182 +-94.5442 -38.2274 46.5454 +-97.3559 -38.6104 47.0117 +-98.3947 -38.2686 46.5956 +-102.174 -38.9644 47.4428 +-103.223 -38.5903 46.9873 +-105.135 -38.5249 46.9076 +-106.967 -38.4099 46.7677 +-109.59 -38.5544 46.9436 +-111.522 -38.4306 46.7928 +-115.313 -38.9139 47.3813 +-114.602 -37.8635 46.1023 +-112.712 -36.4493 44.3805 +-114.194 -36.1352 43.998 +-117.472 -36.3639 44.2764 +-113.004 -34.2091 41.6527 +-111.113 -32.8845 40.0399 +-109.104 -31.5572 38.4238 +-109.717 -31.0034 37.7495 +-108.305 -29.8884 36.3919 +-107.791 -29.0394 35.3581 +-106.8 -28.0769 34.1863 +-105.514 -27.0564 32.9437 +-104.579 -26.1453 31.8344 +-66.4709 -16.1943 19.718 +-45.0539 -10.6911 13.0174 +-41.1585 -9.50777 11.5766 +-36.6688 -8.24134 10.0346 +-35.1733 -7.68663 9.35919 +-22.0959 -4.69229 5.7133 +-18.8309 -3.88329 4.72827 +-16.5947 -3.32081 4.04339 +-17.2135 -3.34011 4.06689 +-16.4917 -3.10043 3.77507 +-15.9569 -2.90401 3.53591 +-17.1526 -3.01905 3.67598 +-15.2616 -2.59541 3.16015 +-14.9095 -2.44722 2.97972 +-15.4277 -2.44132 2.97254 +-14.0021 -2.13354 2.59778 +-14.0309 -2.05591 2.50326 +-14.0587 -1.97812 2.40854 +-13.5963 -1.8342 2.2333 +-14.7969 -1.91067 2.32642 +-14.9207 -1.84075 2.24129 +-14.4538 -1.70021 2.07016 +-14.5752 -1.63111 1.98603 +-14.2025 -1.50843 1.83665 +-14.4202 -1.44956 1.76498 +-14.2418 -1.35088 1.64483 +-14.1608 -1.26312 1.53797 +-14.5742 -1.21778 1.48276 +-14.1934 -1.10607 1.34674 +-14.1087 -1.02024 1.24223 +-14.6195 -0.975225 1.18743 +-14.6323 -0.894215 1.08879 +-13.9467 -0.77442 0.942928 +-13.1593 -0.657309 0.800335 +-13.4671 -0.597683 0.727734 +-12.7761 -0.49595 0.603865 +-13.1819 -0.438457 0.533862 +-11.9886 -0.332211 0.404497 +-11.8928 -0.263584 0.320938 +-10.8963 -0.181092 0.220496 +-12.1981 -0.135135 0.164539 +-11.0996 -0.0614776 0.0748547 +11.9 -8.88178e-16 2.84217e-14 +11.2996 -0.0618952 0.0767652 +12.898 -0.141313 0.175262 +12.6956 -0.20867 0.258801 +33.2797 -0.729456 0.904703 +34.667 -0.950047 1.17829 +41.7427 -1.37313 1.70302 +40.7239 -1.56341 1.93901 +40.3016 -1.7689 2.19386 +38.7801 -1.91571 2.37595 +28.1923 -1.54817 1.92011 +31.1559 -1.88301 2.3354 +27.2499 -1.79772 2.22961 +18.7785 -1.34294 1.66557 +19.7517 -1.52224 1.88795 +32.8168 -2.71183 3.36333 +39.7097 -3.50297 4.34453 +42.9233 -4.02651 4.99385 +49.3844 -4.90952 6.089 +56.7114 -5.95681 7.3879 +61.452 -6.80127 8.43522 +116.614 -13.5661 16.8252 +118.482 -14.4558 17.9287 +118.963 -15.1919 18.8416 +119.627 -15.9603 19.7947 +119.303 -16.6014 20.5898 +119.848 -17.3672 21.5396 +119.796 -18.0523 22.3893 +120.414 -18.8445 23.3717 +120.05 -19.4876 24.1693 +120.548 -20.2744 25.1452 +120.068 -20.9004 25.9215 +120.542 -21.6956 26.9078 +120.044 -22.3194 27.6815 +121.355 -23.2881 28.8829 +120.645 -23.8764 29.6126 +120.689 -24.6139 30.5273 +121.006 -25.4135 31.5189 +120.648 -26.0753 32.3397 +120.941 -26.8818 33.34 +120.563 -27.5433 34.1603 +120.55 -28.2905 35.0871 +120.152 -28.9498 35.9047 +120.396 -29.7678 36.9193 +119.978 -30.4261 37.7358 +120.289 -31.2743 38.7877 +121.046 -32.2508 39.9988 +120.685 -32.9376 40.8507 +120.588 -33.6995 41.7956 +120.115 -34.3588 42.6132 +119.905 -35.095 43.5263 +117.426 -35.1559 43.6019 +114.237 -34.9723 43.3742 +112.135 -35.0926 43.5233 +109.416 -34.993 43.3999 +106.974 -34.9534 43.3508 +104.011 -34.713 43.0525 +102.646 -34.9818 43.3859 +99.6192 -34.6602 42.9871 +97.3928 -34.5864 42.8956 +95.436 -34.585 42.8939 +94.5207 -34.9472 43.3431 +94.0313 -35.4636 43.9835 +94.0462 -36.1741 44.8647 +92.8613 -36.4218 45.1718 +90.1585 -36.0521 44.7134 +89.6539 -36.5446 45.3242 +87.4746 -36.3414 45.0722 +86.137 -36.4681 45.2294 +83.6488 -36.0853 44.7546 +82.5705 -36.2901 45.0086 +80.8417 -36.1943 44.8897 +79.9309 -36.4513 45.2084 +77.8133 -36.1409 44.8236 +77.4676 -36.6414 45.4442 +75.1306 -36.1854 44.8787 +74.6246 -36.5956 45.3874 +72.4695 -36.1824 44.875 +71.5751 -36.3805 45.1206 +69.6777 -36.0525 44.7139 +69.1738 -36.4327 45.1855 +67.1438 -35.995 44.6426 +66.8673 -36.4849 45.2502 +65.0094 -36.1011 44.7742 +63.8361 -36.0779 44.7453 +62.6686 -36.0445 44.704 +62.1651 -36.3864 45.128 +60.3511 -35.9478 44.584 +59.8491 -36.277 44.9923 +58.0586 -35.8115 44.415 +57.6292 -36.1726 44.8628 +56.4933 -36.0839 44.7529 +55.2948 -35.9405 44.5749 +54.1735 -35.8322 44.4407 +53.1277 -35.7604 44.3516 +51.7502 -35.4484 43.9646 +51.2554 -35.7305 44.3145 +50.2266 -35.6338 44.1945 +49.7949 -35.955 44.5929 +48.7086 -35.7967 44.3966 +48.2733 -36.1102 44.7855 +46.9426 -35.7437 44.3309 +46.0033 -35.658 44.2246 +44.9456 -35.4665 43.9871 +44.5739 -35.8103 44.4135 +42.8568 -35.0571 43.4794 +42.8492 -35.6915 44.2662 +42.2919 -35.8744 44.493 +41.674 -36.0032 44.6527 +40.7073 -35.8213 44.4271 +40.2077 -36.0429 44.702 +39.1387 -35.7444 44.3318 +38.6402 -35.9575 44.596 +37.6421 -35.6967 44.2726 +37.0899 -35.8489 44.4613 +36.1065 -35.5742 44.1207 +36.1405 -36.3029 45.0245 +35.1119 -35.9643 44.6045 +34.5591 -36.1015 44.7746 +33.6498 -35.8567 44.4711 +33.15 -36.0397 44.698 +32.2045 -35.7282 44.3117 +31.755 -35.9582 44.5969 +30.7767 -35.5791 44.1267 +30.2809 -35.7463 44.3341 +29.829 -35.9665 44.6072 +29.2824 -36.0726 44.7388 +28.3782 -35.726 44.309 +27.8366 -35.8237 44.4301 +26.993 -35.5216 44.0554 +26.8785 -36.1801 44.8721 +26.0427 -35.869 44.4863 +25.5431 -36.0103 44.6616 +24.4433 -35.2854 43.7625 +24.577 -36.3424 45.0734 +23.4202 -35.4898 44.016 +23.338 -36.2569 44.9674 +22.4665 -35.7994 44.3999 +21.968 -35.9211 44.5509 +21.1175 -35.4521 43.9692 +20.9658 -36.1562 44.8425 +20.1286 -35.678 44.2494 +19.6318 -35.7869 44.3845 +19.1335 -35.8931 44.5161 +18.5719 -35.8771 44.4964 +18.0724 -35.9775 44.6208 +17.5715 -36.0751 44.7419 +17.0409 -36.1098 44.7849 +16.5658 -36.2621 44.9738 +15.9274 -36.049 44.7096 +15.3997 -36.0743 44.7409 +14.7223 -35.7319 44.3162 +14.4669 -36.4202 45.1699 +13.7032 -35.8267 44.4338 +13.2271 -35.9615 44.6011 +12.6184 -35.7262 44.3092 +12.4331 -36.7149 45.5354 +11.8624 -36.5971 45.3893 +11.2577 -36.3526 45.0861 +10.6243 -35.9809 44.625 +10.2452 -36.4704 45.2322 +9.62228 -36.0918 44.7626 +9.12013 -36.1431 44.8262 +8.61729 -36.1917 44.8865 +8.11379 -36.2375 44.9433 +7.47915 -35.6583 44.2249 +7.0928 -36.2586 44.9694 +6.50918 -35.8595 44.4745 +6.09401 -36.3931 45.1363 +5.51113 -35.9253 44.5561 +5.07246 -36.3918 45.1347 +4.50355 -35.9177 44.5467 +4.05285 -36.3793 45.1191 +3.49198 -35.8362 44.4456 +2.99885 -35.9167 44.5454 +2.49503 -35.869 44.4863 +1.99625 -35.8813 44.5016 +1.49732 -35.8909 44.5134 +1.00177 -36.0232 44.6776 +0.493049 -35.4624 43.982 +1.9984e-15 -35.9659 44.6065 +-0.50003 -35.9646 44.6048 +-0.998278 -35.8977 44.5219 +-1.49732 -35.8909 44.5134 +-1.99974 -35.944 44.5793 +-2.46886 -35.4927 44.0196 +-3.05119 -36.5435 45.3228 +-3.49198 -35.8362 44.4456 +-4.03192 -36.1914 44.8861 +-4.55063 -36.2931 45.0123 +-5.11604 -36.7045 45.5225 +-5.5303 -36.0503 44.7111 +-6.12537 -36.5804 45.3686 +-6.54315 -36.0466 44.7066 +-7.15373 -36.5701 45.3558 +-7.55747 -36.0317 44.688 +-8.16946 -36.4861 45.2516 +-8.67641 -36.44 45.1944 +-9.19835 -36.4531 45.2107 +-9.57276 -35.9061 44.5323 +-10.1931 -36.2849 45.0021 +-10.5332 -35.6722 44.2423 +-11.2196 -36.2294 44.9332 +-11.5434 -35.6129 44.1687 +-12.246 -36.1623 44.8501 +-12.5319 -35.4811 44.0051 +-13.2496 -36.0227 44.6769 +-13.7266 -35.8877 44.5095 +-14.4427 -36.3593 45.0944 +-14.7223 -35.7319 44.3162 +-15.4774 -36.2562 44.9665 +-15.9274 -36.049 44.7096 +-16.5107 -36.1414 44.8242 +-16.9841 -35.9894 44.6356 +-17.747 -36.4353 45.1886 +-18.0123 -35.8577 44.4723 +-18.85 -36.4144 45.1627 +-19.3873 -36.3693 45.1068 +-20.1852 -36.7959 45.6358 +-20.4624 -36.2697 44.9832 +-21.2052 -36.5691 45.3546 +-21.4677 -36.04 44.6984 +-22.2546 -36.3898 45.1322 +-22.7231 -36.2082 44.9069 +-23.6002 -36.6643 45.4726 +-23.9943 -36.3596 45.0948 +-24.5379 -36.2846 45.0017 +-25.0813 -36.2064 44.9047 +-26.1125 -36.8131 45.6571 +-26.6233 -36.6686 45.478 +-27.1744 -36.5783 45.366 +-27.7249 -36.4847 45.2499 +-28.538 -36.7264 45.5496 +-28.6905 -36.1193 44.7967 +-29.9634 -36.9115 45.7792 +-29.9675 -36.1335 44.8144 +-30.9382 -36.5222 45.2964 +-31.3493 -36.241 44.9477 +-32.3853 -36.6718 45.482 +-32.7954 -36.3838 45.1247 +-33.75 -36.692 45.507 +-34.0558 -36.2894 45.0077 +-35.1771 -36.7471 45.5753 +-35.6344 -36.4995 45.2683 +-36.5114 -36.6755 45.4866 +-37.0199 -36.4742 45.2368 +-37.9613 -36.6911 45.5059 +-38.5252 -36.5341 45.3112 +-39.479 -36.738 45.5641 +-40.1016 -36.6238 45.4224 +-41.1254 -36.8655 45.7222 +-41.5783 -36.5878 45.3778 +-42.5557 -36.7648 45.5974 +-43.0057 -36.4799 45.244 +-44.113 -36.7443 45.5718 +-45.1701 -36.9494 45.8262 +-45.7436 -36.75 45.579 +-46.1283 -36.3999 45.1447 +-47.3878 -36.7311 45.5556 +-48.4056 -36.8576 45.7124 +-49.7518 -37.2161 46.1571 +-50.2673 -36.9422 45.8174 +-51.435 -37.1392 46.0616 +-51.9494 -36.856 45.7105 +-52.9282 -36.8967 45.7608 +-53.3716 -36.559 45.3421 +-55.1055 -37.0916 46.0026 +-55.619 -36.7883 45.6265 +-57.3788 -37.295 46.2549 +-57.1942 -36.5316 45.3081 +-59.6091 -37.4153 46.4041 +-60.127 -37.0874 45.9974 +-62.4387 -37.8466 46.9391 +-62.6723 -37.3304 46.2988 +-64.7979 -37.9275 47.0393 +-65.9863 -37.9527 47.0706 +-67.106 -37.9259 47.0373 +-67.8554 -37.6816 46.7344 +-69.7352 -38.0498 47.191 +-70.2615 -37.6663 46.7154 +-72.8508 -38.3694 47.5874 +-73.3815 -37.9689 47.0906 +-75.4609 -38.3555 47.5702 +-75.9913 -37.9407 47.0557 +-78.4071 -38.4505 47.6879 +-78.9387 -38.0196 47.1535 +-80.8219 -38.2279 47.4119 +-81.5915 -37.8957 46.9999 +-84.3805 -38.4804 47.7251 +-85.5635 -38.3084 47.5117 +-87.6493 -38.5223 47.777 +-88.0991 -38.0051 47.1356 +-91.277 -38.6443 47.9283 +-91.8108 -38.1429 47.3065 +-95.0214 -38.7325 48.0377 +-96.3153 -38.5141 47.7668 +-99.3064 -38.9496 48.307 +-100.612 -38.6993 47.9966 +-104.06 -39.2459 48.6745 +-105.463 -38.993 48.3609 +-107.474 -38.9474 48.3043 +-108.272 -38.45 47.6873 +-110.989 -38.6162 47.8935 +-113.192 -38.5758 47.8434 +-116.637 -38.9268 48.2787 +-117.972 -38.5473 47.8081 +-118.682 -37.9566 47.0754 +-115.805 -36.2409 44.9475 +-122.685 -37.5588 46.582 +-117.336 -35.1289 43.5683 +-112.11 -32.8137 40.6969 +-109.741 -31.3914 38.933 +-109.443 -30.5849 37.9327 +-108.947 -29.734 36.8774 +-108.251 -28.8418 35.7708 +-107.632 -27.9835 34.7064 +-107.831 -27.3459 33.9155 +-3048.51 -753.741 934.822 +-61.1495 -14.7335 18.2732 +-51.1423 -12.002 14.8854 +-47.2665 -10.7983 13.3925 +-37.8942 -8.42281 10.4463 +-36.2134 -7.8267 9.70702 +-33.5707 -7.05045 8.74428 +-32.8114 -6.69174 8.29938 +-16.3086 -3.22756 4.00296 +-17.5004 -3.35833 4.16514 +-15.9164 -2.95928 3.67023 +-16.0531 -2.88929 3.58342 +-15.129 -2.63351 3.26619 +-15.9378 -2.6805 3.32448 +-15.0063 -2.43595 3.02117 +-15.5247 -2.42958 3.01328 +-13.5159 -2.03675 2.52606 +-14.1284 -2.04735 2.53922 +-14.9373 -2.07857 2.57794 +-13.7919 -1.84007 2.28213 +-13.523 -1.72692 2.1418 +-14.4299 -1.76057 2.18353 +-13.9622 -1.62427 2.01449 +-14.4767 -1.60223 1.98715 +-14.1039 -1.48143 1.83734 +-13.9264 -1.38449 1.7171 +-14.7363 -1.38237 1.71448 +-14.2599 -1.25792 1.56013 +-14.5742 -1.20435 1.49369 +-14.4912 -1.11682 1.38513 +-14.1087 -1.00899 1.25139 +-14.2217 -0.938228 1.16363 +-13.7365 -0.830211 1.02966 +-14.0463 -0.771353 0.956666 +-14.2559 -0.704236 0.873424 +-13.2676 -0.582335 0.722237 +-12.2771 -0.471321 0.584553 +-13.1819 -0.433622 0.537797 +-11.9886 -0.328547 0.407479 +-12.5923 -0.276011 0.342321 +-12.0959 -0.198811 0.246574 +-12.5981 -0.138026 0.171186 +-11.5996 -0.0635386 0.0788033 +12.5 4.44089e-16 5.68434e-14 +12.1995 -0.0660745 0.083479 +18.9971 -0.205798 0.260006 +29.29 -0.476012 0.601397 +37.0774 -0.80357 1.01524 +39.5623 -1.07203 1.35441 +43.3405 -1.40968 1.781 +41.3228 -1.56858 1.98176 +42.3965 -1.83994 2.3246 +39.3782 -1.92341 2.43004 +21.3186 -1.15755 1.46246 +23.4914 -1.40384 1.77361 +18.0008 -1.17421 1.4835 +19.474 -1.37704 1.73976 +19.7517 -1.50515 1.90161 +35.2954 -2.88389 3.64353 +41.5913 -3.62774 4.58331 +45.6925 -4.23814 5.35449 +49.3844 -4.85438 6.13305 +52.9635 -5.50066 6.94957 +63.4216 -6.94042 8.76857 +116.614 -13.4137 16.9469 +119.464 -14.4119 18.2081 +119.845 -15.1326 19.1186 +120.41 -15.8843 20.0683 +120.182 -16.5358 20.8915 +120.335 -17.242 21.7836 +120.088 -17.893 22.6061 +120.511 -18.6478 23.5598 +120.244 -19.2998 24.3835 +120.548 -20.0467 25.3271 +120.936 -20.8149 26.2976 +120.542 -21.4519 27.1025 +121.003 -22.245 28.1044 +120.59 -22.8814 28.9085 +121.027 -23.6829 29.9211 +120.499 -24.2991 30.6997 +121.006 -25.128 31.7469 +120.648 -25.7824 32.5737 +121.224 -26.6421 33.6598 +120.563 -27.2339 34.4075 +120.643 -27.9945 35.3684 +120.339 -28.669 36.2206 +120.396 -29.4335 37.1864 +120.719 -30.2704 38.2438 +120.382 -30.9468 39.0984 +120.218 -31.6703 40.0125 +120.593 -32.5429 41.115 +121.045 -33.4472 42.2575 +121.571 -34.3846 43.4418 +118.726 -34.3598 43.4104 +115.982 -34.3336 43.3773 +113.518 -34.3619 43.413 +110.972 -34.3384 43.3834 +108.168 -34.2055 43.2155 +105.466 -34.0736 43.0489 +103.393 -34.1191 43.1063 +101.591 -34.2336 43.2509 +98.4822 -33.8798 42.804 +96.8706 -34.0146 42.9742 +95.869 -34.3518 43.4002 +95.727 -34.9957 44.2137 +95.0599 -35.4488 44.7863 +94.4725 -35.9299 45.394 +94.3878 -36.6046 46.2465 +91.8453 -36.3141 45.8795 +91.1635 -36.7426 46.4208 +87.7248 -36.036 45.5281 +87.9609 -36.8221 46.5213 +85.7091 -36.5588 46.1887 +84.3727 -36.6657 46.3237 +82.6327 -36.5807 46.2163 +81.7916 -36.8809 46.5955 +80.1445 -36.8056 46.5004 +78.9052 -36.9021 46.6223 +76.4793 -36.4213 46.0149 +76.437 -37.0634 46.8261 +73.8782 -36.4714 46.0783 +73.3626 -36.8701 46.582 +70.3722 -36.0028 45.4862 +70.5527 -36.7416 46.4196 +69.1209 -36.6386 46.2895 +68.1503 -36.7673 46.452 +66.3575 -36.4359 46.0333 +65.8426 -36.7939 46.4857 +63.3321 -36.017 45.5041 +62.8233 -36.3587 45.9358 +61.004 -35.9285 45.3923 +61.2158 -36.6887 46.3527 +59.3424 -36.1923 45.7256 +58.902 -36.5562 46.1854 +57.1241 -36.077 45.58 +56.6147 -36.3851 45.9691 +54.8619 -35.8799 45.3309 +55.0373 -36.6296 46.278 +53.2365 -36.0569 45.5546 +52.7275 -36.3438 45.917 +50.7567 -35.6054 44.9841 +51.107 -36.4879 46.099 +49.2282 -35.7722 45.1949 +48.7876 -36.085 45.5901 +47.6423 -35.869 45.3171 +47.0732 -36.0774 45.5804 +46.0661 -35.9424 45.4099 +45.4974 -36.1416 45.6616 +44.1352 -35.6973 45.1002 +43.451 -35.7863 45.2127 +42.7678 -35.8706 45.3192 +42.2618 -36.1009 45.6101 +41.2299 -35.8737 45.323 +41.2401 -36.5531 46.1814 +40.1582 -36.2636 45.8157 +39.6468 -36.4798 46.0888 +38.6908 -36.2791 45.8352 +38.1247 -36.4351 46.0324 +37.0737 -36.1168 45.6302 +36.5644 -36.3162 45.8822 +35.6344 -36.0896 45.5958 +35.4861 -36.6535 46.3083 +34.0558 -35.8818 45.3333 +34.05 -36.6023 46.2436 +32.6477 -35.8131 45.2465 +32.5307 -36.4228 46.0168 +31.6356 -36.1613 45.6864 +31.126 -36.3312 45.9011 +30.1984 -36.0029 45.4863 +29.691 -36.1651 45.6912 +28.7798 -35.8247 45.2611 +28.2311 -35.9234 45.3858 +27.3375 -35.5708 44.9404 +27.3011 -36.3362 45.9074 +26.3745 -35.9179 45.3789 +25.8685 -36.0594 45.5577 +25.0016 -35.6859 45.0858 +24.9286 -36.4484 46.0491 +24.0708 -36.0659 45.5659 +23.5628 -36.195 45.7289 +22.7597 -35.8592 45.3047 +22.2546 -35.9811 45.4587 +21.7829 -36.1584 45.6828 +21.2737 -36.275 45.8301 +20.4624 -35.8623 45.3087 +20.2503 -36.4999 46.1142 +19.419 -36.0196 45.5074 +18.8809 -36.0644 45.564 +18.3431 -36.1061 45.6167 +17.6885 -35.9073 45.3655 +17.1545 -35.9422 45.4097 +17.0068 -36.8093 46.5051 +16.1145 -36.0628 45.5619 +15.6586 -36.2686 45.8219 +14.9226 -35.8112 45.2441 +14.6363 -36.4327 46.0293 +13.96 -36.0881 45.5939 +13.4521 -36.1623 45.6877 +12.7916 -35.8097 45.2422 +12.4331 -36.3025 45.8648 +11.8823 -36.2468 45.7945 +11.4104 -36.4317 46.028 +10.7701 -36.0649 45.5647 +10.4015 -36.6108 46.2544 +9.75431 -36.1761 45.7051 +9.24528 -36.2275 45.7701 +8.64685 -35.9079 45.3663 +8.22513 -36.3221 45.8896 +7.72715 -36.4268 46.0219 +7.21467 -36.4673 46.073 +6.67899 -36.3816 45.9648 +6.19854 -36.6016 46.2427 +5.59739 -36.0778 45.5809 +5.1509 -36.5395 46.1643 +4.50355 -35.5143 44.8689 +4.10866 -36.4659 46.0713 +3.60186 -36.5488 46.176 +3.03549 -35.9471 45.4158 +2.53429 -36.0242 45.5132 +2.02417 -35.9745 45.4504 +1.5235 -36.1082 45.6193 +1.01748 -36.1771 45.7064 +0.501776 -35.6847 45.0843 +1.44329e-15 -36.1826 45.7133 +-0.502648 -35.7468 45.1627 +-1.03144 -36.6735 46.3336 +-1.52088 -36.0461 45.5409 +-2.06605 -36.7188 46.3907 +-2.57354 -36.5822 46.2181 +-3.09829 -36.6908 46.3554 +-3.60186 -36.5488 46.176 +-4.09471 -36.3421 45.9149 +-4.62124 -36.4423 46.0414 +-5.21191 -36.9723 46.711 +-5.62615 -36.2632 45.8151 +-6.21944 -36.7251 46.3987 +-6.74691 -36.7517 46.4323 +-7.25123 -36.6521 46.3065 +-7.66189 -36.1192 45.6332 +-8.2808 -36.568 46.2003 +-8.67641 -36.0307 45.5214 +-9.35478 -36.6566 46.3122 +-9.7213 -36.0536 45.5504 +-10.3494 -36.4274 46.0227 +-10.6972 -35.8208 45.2563 +-11.3722 -36.3098 45.8741 +-11.7627 -35.882 45.3335 +-12.4123 -36.2418 45.7881 +-12.9431 -36.2338 45.778 +-13.4071 -36.0414 45.535 +-13.9367 -36.0278 45.5177 +-14.6605 -36.4929 46.1053 +-14.9226 -35.8112 45.2441 +-15.6844 -36.3285 45.8977 +-16.1946 -36.2422 45.7886 +-16.7312 -36.2128 45.7514 +-17.2965 -36.2398 45.7856 +-18.0686 -36.6789 46.3403 +-18.6137 -36.6388 46.2897 +-19.0973 -36.4776 46.086 +-19.6094 -36.3728 45.9536 +-20.2503 -36.4999 46.1142 +-20.696 -36.2719 45.8261 +-21.5815 -36.7999 46.4932 +-21.993 -36.5072 46.1234 +-22.828 -36.9082 46.63 +-23.1262 -36.4366 46.0343 +-23.8999 -36.7128 46.3832 +-24.3387 -36.4673 46.073 +-25.3585 -37.0768 46.8431 +-25.8788 -36.938 46.6677 +-26.3972 -36.7965 46.4889 +-26.6648 -36.3132 45.8784 +-27.5124 -36.6174 46.2627 +-28.1124 -36.5791 46.2142 +-29.064 -36.9832 46.7248 +-29.4491 -36.6578 46.3137 +-30.4174 -37.0499 46.809 +-30.4292 -36.2782 45.8341 +-31.7363 -37.0436 46.8011 +-31.7788 -36.3249 45.8931 +-32.8216 -36.7485 46.4283 +-33.2386 -36.4613 46.0654 +-34.5 -37.0861 46.8548 +-35.0201 -36.8978 46.6169 +-36.0527 -37.2387 47.0476 +-36.4704 -36.9362 46.6655 +-36.9884 -36.7373 46.4142 +-38.0408 -37.059 46.8206 +-38.8328 -37.1118 46.8873 +-39.0771 -36.6413 46.2929 +-40.5974 -37.3544 47.1938 +-40.498 -36.5705 46.2034 +-41.9858 -37.214 47.0164 +-41.9848 -36.5305 46.1529 +-43.1434 -36.854 46.5616 +-43.66 -36.619 46.2646 +-45.1963 -37.2237 47.0287 +-45.718 -36.9775 46.7176 +-46.7903 -37.1687 46.9591 +-47.3111 -36.9138 46.6372 +-48.3947 -37.0903 46.8601 +-49.1688 -37.0183 46.7692 +-50.9088 -37.6539 47.5722 +-50.8518 -36.9521 46.6855 +-52.4847 -37.4715 47.3418 +-53.0759 -37.2323 47.0396 +-54.1996 -37.3585 47.199 +-54.6552 -37.0178 46.7685 +-56.2649 -37.4466 47.3103 +-56.8581 -37.1855 46.9804 +-58.004 -37.278 47.0972 +-58.5259 -36.9624 46.6985 +-60.8819 -37.785 47.7378 +-61.2682 -37.3668 47.2095 +-63.0861 -37.8096 47.7689 +-64.0506 -37.7228 47.6593 +-66.2606 -38.348 48.4492 +-66.5761 -37.8619 47.835 +-68.6666 -38.372 48.4794 +-68.9788 -37.8752 47.8518 +-71.3201 -38.4774 48.6126 +-71.8584 -38.0897 48.1227 +-74.3829 -38.7363 48.9397 +-74.9247 -38.332 48.4288 +-76.8597 -38.6278 48.8026 +-77.3999 -38.21 48.2748 +-79.7467 -38.6682 48.8536 +-80.2874 -38.2348 48.3061 +-82.5789 -38.6202 48.7931 +-83.8423 -38.5038 48.6459 +-86.1603 -38.8507 49.0843 +-87.0289 -38.5268 48.675 +-89.5333 -38.9083 49.157 +-89.5825 -38.2111 48.2761 +-93.1838 -39.0085 49.2836 +-93.4786 -38.3995 48.5142 +-97.4535 -39.2777 49.6237 +-97.4961 -38.5483 48.7022 +-101.087 -39.2028 49.5291 +-102.402 -38.9457 49.2043 +-105.089 -39.1887 49.5113 +-107.359 -39.2481 49.5863 +-110.158 -39.4719 49.8691 +-110.187 -38.6904 48.8817 +-113.875 -39.1754 49.4944 +-116.004 -39.0902 49.3869 +-118.756 -39.1889 49.5115 +-120.545 -38.9454 49.2039 +-125.008 -39.5308 49.9435 +-124.038 -38.3815 48.4914 +-131.763 -39.8848 50.3907 +-132.048 -39.0895 49.3859 +-115.645 -33.468 42.2837 +-110.742 -31.322 39.5724 +-110.356 -30.4938 38.5261 +-109.222 -29.4742 37.2379 +-108.159 -28.4936 35.999 +-107.54 -27.6455 34.9275 +-107.831 -27.0387 34.1609 +-107.835 -26.3627 33.3068 +-107.642 -25.6442 32.3991 +-70.9061 -16.4533 20.7872 +-69.8192 -15.7715 19.9258 +-43.3615 -9.5298 12.04 +-39.4281 -8.42577 10.6452 +-35.2776 -7.32571 9.25534 +-34.5234 -6.96177 8.79554 +-30.7097 -6.00937 7.59228 +-28.7848 -5.46177 6.90043 +-16.7793 -3.08469 3.89721 +-15.7647 -2.80552 3.54451 +-16.0926 -2.76979 3.49937 +-16.0344 -2.66647 3.36883 +-16.1681 -2.59506 3.27862 +-15.3307 -2.37227 2.99714 +-15.4607 -2.30363 2.91043 +-15.7848 -2.2617 2.85744 +-13.5705 -1.86717 2.35899 +-14.77 -1.94844 2.46167 +-13.9149 -1.75701 2.21982 +-14.9207 -1.80001 2.27414 +-13.8639 -1.59472 2.01477 +-14.3782 -1.57345 1.98791 +-14.1039 -1.46479 1.85063 +-15.1116 -1.48544 1.87672 +-14.7363 -1.36685 1.72688 +-14.2599 -1.24379 1.57142 +-15.07 -1.23133 1.55566 +-14.5904 -1.11184 1.40471 +-14.6055 -1.03278 1.30482 +-14.3211 -0.934175 1.18024 +-14.8314 -0.886319 1.11978 +-14.7437 -0.800548 1.01142 +-13.8572 -0.676844 0.85513 +-13.5669 -0.588782 0.743871 +-14.1735 -0.538015 0.679732 +-12.8823 -0.419007 0.529376 +-11.7888 -0.319443 0.403586 +-11.9927 -0.259915 0.328379 +-11.8959 -0.193329 0.244253 +-12.6981 -0.13756 0.173794 +-11.3996 -0.0617416 0.0780048 +12.3 1.33227e-15 5.68434e-14 +13.9995 -0.0749553 0.0964752 +31.5952 -0.338358 0.435502 +34.888 -0.560503 0.721426 +38.2767 -0.820071 1.05552 +42.6594 -1.14273 1.47081 +41.7427 -1.34218 1.72752 +42.5205 -1.59558 2.05368 +42.596 -1.82745 2.35212 +28.0134 -1.35264 1.74099 +24.2075 -1.29938 1.67243 +18.4148 -1.08788 1.40021 +17.9014 -1.15436 1.48578 +18.8779 -1.31961 1.69848 +20.0494 -1.51036 1.94399 +36.386 -2.93899 3.78278 +41.2942 -3.56062 4.58289 +45.0991 -4.13524 5.32249 +49.6807 -4.82763 6.21366 +54.5416 -5.59974 7.20745 +74.4515 -8.05427 10.3667 +117.696 -13.3832 17.2256 +119.562 -14.2587 18.3524 +119.551 -14.9228 19.2071 +120.508 -15.7153 20.2272 +120.28 -16.36 21.057 +120.335 -17.0447 21.9383 +120.088 -17.6883 22.7667 +120.414 -18.4196 23.708 +121.018 -19.2019 24.7148 +120.644 -19.8332 25.5274 +120.936 -20.5767 26.4844 +120.446 -21.1896 27.2733 +121.099 -22.0079 28.3265 +120.59 -22.6196 29.1138 +120.836 -23.375 30.0861 +120.404 -24.0022 30.8933 +120.911 -24.8211 31.9473 +120.648 -25.4875 32.805 +120.093 -26.0915 33.5824 +120.375 -26.8804 34.5978 +120.831 -27.7172 35.6749 +120.339 -28.341 36.4779 +120.582 -29.1417 37.5084 +120.812 -29.947 38.5449 +120.382 -30.5927 39.376 +120.954 -31.4998 40.5435 +120.96 -32.2685 41.5329 +121.502 -33.1894 42.7182 +120.934 -33.8132 43.521 +117.548 -33.6296 43.2848 +114.899 -33.6238 43.2773 +111.81 -33.4577 43.0636 +110.524 -33.8087 43.5153 +107.099 -33.48 43.0922 +105.111 -33.5705 43.2087 +102.422 -33.4119 43.0046 +100.537 -33.4906 43.1059 +97.7825 -33.2542 42.8016 +95.9132 -33.2931 42.8517 +96.4752 -34.1735 43.9848 +95.6408 -34.5642 44.4877 +95.317 -35.1381 45.2263 +95.1546 -35.7753 46.0465 +95.0662 -36.4459 46.9097 +93.2791 -36.4591 46.9266 +91.8344 -36.5896 47.0945 +89.8929 -36.5041 46.9846 +88.8728 -36.7782 47.3374 +87.1926 -36.7661 47.3218 +86.1748 -37.0204 47.649 +83.6911 -36.6253 47.1406 +83.1669 -37.072 47.7155 +80.4661 -36.5305 47.0186 +80.2629 -37.1076 47.7613 +78.6213 -37.0131 47.6397 +77.8555 -37.3193 48.0338 +75.2086 -36.7035 47.2412 +74.6837 -37.1047 47.7576 +71.9926 -36.4105 46.864 +71.7018 -36.9128 47.5106 +69.349 -36.339 46.7721 +69.2823 -36.9504 47.559 +67.6307 -36.7102 47.2498 +67.106 -37.0709 47.714 +64.5855 -36.3096 46.7342 +64.0666 -36.654 47.1775 +62.2371 -36.2354 46.6387 +61.7194 -36.5673 47.0659 +59.9844 -36.1653 46.5485 +59.5384 -36.5284 47.0159 +57.7549 -36.0581 46.4105 +57.1704 -36.3219 46.75 +56.1009 -36.2705 46.6839 +54.9691 -36.1657 46.549 +53.777 -36.0063 46.3438 +53.3297 -36.3384 46.7712 +52.2145 -36.209 46.6047 +51.6975 -36.4872 46.9627 +50.592 -36.3427 46.7768 +49.2375 -36.0012 46.3372 +48.2783 -35.932 46.2482 +47.6396 -36.0938 46.4564 +46.5641 -35.9153 46.2268 +46.0515 -36.1633 46.5459 +44.9875 -35.9704 46.2976 +44.2936 -36.0629 46.4167 +43.4221 -36.0028 46.3393 +42.7908 -36.1346 46.5089 +42.3332 -36.4122 46.8663 +41.7564 -36.5873 47.0916 +40.668 -36.3038 46.7268 +40.1501 -36.5202 47.0052 +39.1323 -36.2733 46.6875 +38.6149 -36.4814 46.9553 +37.611 -36.2211 46.6203 +37.5713 -36.8893 47.4804 +36.5749 -36.6183 47.1315 +35.5376 -36.2868 46.7048 +35.0201 -36.4757 46.948 +34.5 -36.6618 47.1876 +33.5833 -36.4179 46.8737 +33.0155 -36.5427 47.0342 +32.0651 -36.2328 46.6353 +31.5015 -36.3489 46.7848 +30.6139 -36.0808 46.4397 +30.4628 -36.6807 47.2118 +29.6275 -36.458 46.9252 +29.064 -36.5601 47.0566 +28.2846 -36.3821 46.8276 +27.6392 -36.3653 46.8059 +26.8307 -36.1211 46.4916 +26.6819 -36.7678 47.324 +25.7991 -36.4029 46.8543 +25.2803 -36.5397 47.0303 +24.7596 -36.6736 47.2027 +23.9374 -36.3497 46.7858 +23.1262 -36.0198 46.3612 +22.5413 -36.0277 46.3714 +22.0631 -36.2044 46.5989 +21.5473 -36.3212 46.7491 +20.696 -35.8569 46.1515 +20.5108 -36.5464 47.039 +19.6729 -36.073 46.4297 +19.1591 -36.177 46.5635 +18.6738 -36.3367 46.769 +18.1855 -36.494 46.9715 +17.4669 -36.1781 46.565 +17.1171 -36.6242 47.1391 +16.3015 -36.0641 46.4182 +15.8915 -36.387 46.8338 +15.4484 -36.6489 47.1709 +14.8782 -36.6111 47.1223 +14.1701 -36.2122 46.6088 +13.7895 -36.6453 47.1663 +13.1812 -36.4781 46.9511 +12.7866 -36.9074 47.5037 +12.0817 -36.4333 46.8935 +11.6203 -36.6773 47.2075 +11.0981 -36.7381 47.2858 +10.4015 -36.192 46.5828 +9.88635 -36.2463 46.6527 +9.37042 -36.2978 46.7191 +8.88335 -36.468 46.9381 +8.3643 -36.5141 46.9975 +7.81852 -36.4359 46.8967 +7.32435 -36.5981 47.1056 +6.70163 -36.0874 46.4482 +6.28216 -36.671 47.1994 +5.67407 -36.1536 46.5335 +5.22934 -36.6716 47.2001 +4.63693 -36.1477 46.5258 +4.17841 -36.6608 47.1862 +3.6507 -36.6205 47.1344 +3.13492 -36.6999 47.2366 +2.56482 -36.0411 46.3886 +2.09048 -36.7279 47.2726 +1.54444 -36.1857 46.5748 +1.03318 -36.3153 46.7416 +0.516611 -36.3194 46.7468 +2.33147e-15 -36.3208 46.7487 +-0.514866 -36.1968 46.589 +-1.0454 -36.7447 47.2942 +-1.56538 -36.6764 47.2063 +-2.09048 -36.7279 47.2726 +-2.57791 -36.2249 46.6252 +-3.13492 -36.6999 47.2366 +-3.63239 -36.4368 46.8979 +-4.17144 -36.5996 47.1074 +-4.67616 -36.4535 46.9195 +-5.27292 -36.9772 47.5935 +-5.71241 -36.3979 46.8478 +-6.31352 -36.854 47.435 +-6.84879 -36.8798 47.4681 +-7.3731 -36.8417 47.4191 +-7.76631 -36.1926 46.5836 +-8.40606 -36.6964 47.2321 +-8.95725 -36.7714 47.3286 +-9.47993 -36.722 47.265 +-9.83684 -36.0647 46.4191 +-10.5231 -36.6149 47.1272 +-10.8612 -35.9539 46.2764 +-11.563 -36.4967 46.975 +-12.0817 -36.4333 46.8935 +-12.7658 -36.8474 47.4264 +-13.1595 -36.4183 46.8741 +-13.632 -36.2268 46.6277 +-14.1701 -36.2122 46.6088 +-14.6605 -36.0754 46.4327 +-15.173 -35.9955 46.3299 +-15.9691 -36.5648 47.0626 +-16.4886 -36.4779 46.9508 +-16.9517 -36.2703 46.6836 +-17.8078 -36.884 47.4736 +-18.2732 -36.6699 47.198 +-18.5836 -36.1611 46.5431 +-19.3754 -36.5854 47.0892 +-19.9585 -36.5967 47.1037 +-20.7387 -36.9525 47.5616 +-20.9965 -36.3773 46.8214 +-22.1629 -37.359 48.0849 +-22.3432 -36.6642 47.1906 +-23.1864 -37.0587 47.6984 +-23.7493 -36.9902 47.6103 +-24.237 -36.8048 47.3716 +-24.8362 -36.787 47.3487 +-25.671 -37.1044 47.7572 +-25.8788 -36.5154 46.9991 +-26.7633 -36.8799 47.4683 +-27.3283 -36.791 47.3539 +-28.2309 -37.1438 47.8079 +-28.3707 -36.4929 46.9701 +-29.6777 -37.3322 48.0504 +-29.7614 -36.6227 47.1373 +-30.7352 -37.0087 47.634 +-31.168 -36.7339 47.2803 +-32.1588 -37.1073 47.7609 +-32.6854 -36.9337 47.5375 +-33.3064 -36.8647 47.4486 +-34.0757 -36.9519 47.5609 +-35 -37.1931 47.8714 +-35.7307 -37.2158 47.9006 +-36.3617 -37.1282 47.7879 +-36.8884 -36.9321 47.5355 +-37.5183 -36.8373 47.4134 +-38.0945 -36.6868 47.2197 +-39.4863 -37.3047 48.015 +-39.5739 -36.6826 47.2143 +-41.0448 -37.334 48.0527 +-41.5176 -37.0622 47.7029 +-42.502 -37.2406 47.9325 +-43.0301 -37.0117 47.6378 +-44.1427 -37.2762 47.9783 +-44.0764 -36.5453 47.0375 +-45.7379 -37.2388 47.9303 +-46.2659 -36.9926 47.6133 +-47.3444 -37.1785 47.8526 +-47.8714 -36.9237 47.5246 +-49.7163 -37.6672 48.4816 +-50.3774 -37.4943 48.2591 +-51.4873 -37.6462 48.4545 +-51.9558 -37.3224 48.0378 +-53.0752 -37.4595 48.2143 +-53.6722 -37.2199 47.9059 +-55.3371 -37.7062 48.5318 +-55.7362 -37.3181 48.0322 +-56.9469 -37.4669 48.2238 +-58.0971 -37.5611 48.3451 +-59.1849 -37.6017 48.3973 +-60.2081 -37.5897 48.3819 +-62.4375 -38.3071 49.3052 +-62.1241 -37.4554 48.2089 +-64.3809 -38.1442 49.0955 +-65.7189 -38.2626 49.2479 +-67.1383 -38.4114 49.4394 +-68.1244 -38.2991 49.295 +-69.5584 -38.4256 49.4577 +-70.3269 -38.1737 49.1335 +-72.2257 -38.5202 49.5795 +-73.4552 -38.4907 49.5415 +-75.0724 -38.6481 49.7441 +-76.3137 -38.5958 49.6769 +-78.2586 -38.8808 50.0437 +-79.1999 -38.6513 49.7482 +-80.2195 -38.4524 49.4922 +-82.2707 -38.7311 49.851 +-83.9366 -38.8061 49.9475 +-84.4854 -38.3552 49.3671 +-87.0502 -38.803 49.9434 +-87.9245 -38.4779 49.5251 +-90.762 -38.9911 50.1856 +-92.1373 -38.8511 50.0054 +-94.6761 -39.1797 50.4284 +-96.2304 -39.0777 50.2971 +-98.4599 -39.2293 50.4922 +-99.5202 -38.8985 50.0664 +-102.699 -39.372 50.6759 +-103.255 -38.8207 49.9663 +-107.146 -39.4988 50.839 +-108.91 -39.3595 50.6598 +-111.89 -39.6339 51.0129 +-113.233 -39.3052 50.5899 +-116.237 -39.5303 50.8796 +-118.025 -39.3163 50.6042 +-120.699 -39.3742 50.6787 +-122.851 -39.2364 50.5013 +-128.483 -40.1648 51.6963 +-130.123 -39.8039 51.2318 +-135.089 -40.4236 52.0294 +-136.922 -40.0686 51.5724 +-124.708 -35.678 45.9213 +-111.561 -31.1926 40.1481 +-110.448 -30.1699 38.8318 +-109.497 -29.2104 37.5968 +-108.62 -28.2875 36.4089 +-108.094 -27.4701 35.3568 +-107.831 -26.7294 34.4035 +-107.835 -26.0611 33.5434 +-107.362 -25.2849 32.5443 +-107.905 -24.7521 31.8585 +-107.125 -23.9216 30.7896 +-53.6363 -11.6531 14.9987 +-47.2759 -9.98725 12.8546 +-37.6484 -7.72861 9.94752 +-35.8548 -7.14753 9.19962 +-33.1893 -6.42032 8.26362 +-32.3231 -6.06298 7.80368 +-17.5464 -3.1888 4.10431 +-16.5337 -2.90871 3.74381 +-15.8035 -2.68891 3.46091 +-15.8412 -2.6042 3.35187 +-15.684 -2.48857 3.20304 +-15.2336 -2.33028 2.99931 +-14.8773 -2.19134 2.82048 +-14.9079 -2.11161 2.71786 +-14.8397 -2.01843 2.59793 +-14.0853 -1.83686 2.36423 +-14.3069 -1.78584 2.29856 +-14.7244 -1.756 2.26015 +-13.4706 -1.53175 1.97152 +-13.7873 -1.49153 1.91975 +-13.9066 -1.42778 1.8377 +-14.519 -1.41086 1.81593 +-14.7363 -1.35121 1.73915 +-13.3686 -1.15272 1.48367 +-13.6819 -1.10512 1.42241 +-13.8956 -1.04678 1.34732 +-15.1023 -1.05569 1.35878 +-14.6195 -0.942728 1.21339 +-12.2434 -0.723288 0.930946 +-13.8471 -0.743264 0.956658 +-13.259 -0.640222 0.824032 +-14.1654 -0.607725 0.782205 +-12.8759 -0.483169 0.621888 +-13.2818 -0.427057 0.549666 +-13.0875 -0.350578 0.45123 +-12.9921 -0.278353 0.358269 +-12.5957 -0.20236 0.260458 +-12.1981 -0.130632 0.168136 +-11.9995 -0.0642474 0.082693 +27.2 8.88178e-16 2.84217e-14 +28.5989 -0.151339 0.19846 +33.5949 -0.35558 0.466293 +35.3879 -0.561908 0.736862 +39.376 -0.833793 1.0934 +42.0599 -1.11354 1.46025 +41.9424 -1.33288 1.74789 +41.8218 -1.55107 2.03401 +42.596 -1.80615 2.36851 +29.7081 -1.41776 1.85919 +24.2075 -1.28423 1.68409 +15.8268 -0.924088 1.21181 +16.3102 -1.03949 1.36315 +18.2817 -1.26305 1.65631 +31.0667 -2.31303 3.03321 +36.1877 -2.88891 3.78839 +41.6903 -3.55288 4.65909 +45.0991 -4.08705 5.35958 +56.0019 -5.37846 7.05309 +62.925 -6.38515 8.37322 +82.3299 -8.80278 11.5436 +119.269 -13.4041 17.5776 +119.857 -14.1273 18.5259 +119.649 -14.7609 19.3568 +120.41 -15.5196 20.3517 +119.401 -16.0512 21.0488 +120.14 -16.8188 22.0554 +119.796 -17.4397 22.8697 +120.414 -18.205 23.8732 +120.147 -18.8415 24.7079 +120.548 -19.5863 25.6847 +120.165 -20.2073 26.499 +120.542 -20.9594 27.4852 +120.907 -21.717 28.4787 +120.781 -22.3914 29.3631 +120.645 -23.0662 30.248 +120.404 -23.7224 31.1086 +120.911 -24.5318 32.1699 +120.648 -25.1904 33.0337 +120.941 -25.9696 34.0554 +120.469 -26.5878 34.8661 +120.924 -27.4154 35.9514 +121.085 -28.1846 36.9601 +120.396 -28.7576 37.7115 +119.978 -29.3936 38.5455 +120.382 -30.2362 39.6505 +120.954 -31.1327 40.8261 +120.869 -31.8682 41.7906 +121.227 -32.7286 42.9189 +121.207 -33.4945 43.9233 +117.186 -33.1352 43.4521 +114.899 -33.2319 43.579 +111.81 -33.0678 43.3637 +108.914 -32.9277 43.18 +106.208 -32.8145 43.0316 +104.312 -32.9272 43.1794 +101.627 -32.7663 42.9684 +99.7457 -32.8399 43.0648 +96.9953 -32.6021 42.753 +95.478 -32.7558 42.9546 +96.3886 -33.7449 44.2516 +96.761 -34.5614 45.3224 +96.0885 -35.0097 45.9102 +94.8989 -35.2633 46.2428 +95.2358 -36.0854 47.3209 +94.5442 -36.5229 47.8946 +93.5118 -36.8236 48.289 +91.0603 -36.5473 47.9265 +89.8677 -36.7565 48.2009 +87.8519 -36.6124 48.0119 +87.3216 -37.0758 48.6197 +84.9122 -36.7266 48.1617 +83.3288 -36.7112 48.1415 +81.5915 -36.6097 48.0084 +80.7421 -36.8941 48.3814 +79.4147 -36.9508 48.4557 +78.2495 -37.071 48.6133 +76.6173 -36.9552 48.4614 +75.4609 -37.0539 48.5909 +73.5358 -36.7575 48.2023 +73.004 -37.1453 48.7107 +70.2615 -36.3881 47.7178 +69.7352 -36.7585 48.2036 +68.3048 -36.6439 48.0533 +67.7748 -37.004 48.5255 +65.7651 -36.5419 47.9194 +65.4562 -37.0126 48.5367 +63.5428 -36.5645 47.9491 +63.0142 -36.8993 48.3882 +61.2682 -36.5088 47.8761 +60.6698 -36.7888 48.2432 +59.0166 -36.4164 47.7549 +58.4902 -36.7273 48.1626 +57.3399 -36.6395 48.0476 +56.1285 -36.4981 47.862 +55.0606 -36.436 47.7807 +54.5341 -36.726 48.1609 +52.7446 -36.1503 47.406 +52.2223 -36.428 47.7702 +51.1765 -36.3341 47.647 +50.5874 -36.5571 47.9394 +49.5505 -36.4491 47.7978 +49.0241 -36.7099 48.1398 +47.6846 -36.351 47.6691 +46.6056 -36.1718 47.4342 +45.5962 -36.0323 47.2512 +45.0158 -36.2237 47.5022 +43.9574 -36.0218 47.2375 +43.79 -36.5474 47.9268 +42.7978 -36.3828 47.7109 +42.7314 -37.0053 48.5271 +41.1777 -36.3305 47.6422 +40.6533 -36.547 47.9261 +40.0706 -36.7101 48.1401 +39.0506 -36.4631 47.8162 +38.5781 -36.7195 48.1524 +37.9422 -36.8193 48.2833 +36.5749 -36.1915 47.46 +36.0527 -36.3837 47.712 +35.5277 -36.573 47.9603 +35 -36.7597 48.2051 +33.9772 -36.4157 47.754 +33.5003 -36.6471 48.0575 +32.4945 -36.2901 47.5893 +31.971 -36.4607 47.813 +31.4913 -36.6822 48.1035 +30.9168 -36.7934 48.2494 +29.9845 -36.4673 47.8216 +29.4585 -36.6246 48.0279 +28.5429 -36.2865 47.5845 +28.0619 -36.491 47.8528 +27.2039 -36.1968 47.4669 +26.6819 -36.3393 47.6539 +26.1181 -36.4235 47.7642 +25.632 -36.6161 48.0169 +24.7596 -36.2462 47.5317 +24.312 -36.4883 47.8492 +23.3828 -35.9949 47.2022 +23.2222 -36.6834 48.105 +22.3783 -36.2937 47.5941 +22.1971 -36.9806 48.4948 +21.0632 -36.0677 47.2977 +20.7712 -36.5792 47.9684 +20.0219 -36.2851 47.5828 +19.4372 -36.2744 47.5687 +18.9144 -36.3758 47.7017 +18.3902 -36.4746 47.8312 +17.5237 -35.8728 47.0421 +17.1998 -36.3721 47.6969 +16.5153 -36.1112 47.3547 +16.0985 -36.4315 47.7747 +15.3984 -36.1044 47.3457 +14.8782 -36.1845 47.4508 +14.3335 -36.2028 47.4749 +13.8345 -36.3364 47.65 +13.376 -36.5858 47.9771 +12.8074 -36.5366 47.9125 +12.2611 -36.5436 47.9217 +11.7538 -36.6665 48.0829 +11.0981 -36.31 47.6154 +10.6967 -36.7854 48.2388 +10.0514 -36.4219 47.7622 +9.52686 -36.4737 47.8301 +8.86856 -35.983 47.1866 +8.47564 -36.569 47.955 +7.81852 -36.0112 47.2236 +7.44622 -36.7735 48.2232 +6.79219 -36.1487 47.4039 +6.36578 -36.7261 48.161 +5.75075 -36.2151 47.491 +5.22934 -36.2442 47.5291 +4.68401 -36.0891 47.3258 +4.24119 -36.7779 48.229 +3.6507 -36.1937 47.4629 +3.13492 -36.2722 47.5658 +2.60844 -36.2268 47.5064 +2.0835 -36.1786 47.4431 +1.568 -36.3096 47.6148 +1.0454 -36.3165 47.6239 +0.523592 -36.3812 47.7088 +1.9984e-15 -36.322 47.6311 +-0.521847 -36.26 47.5498 +-1.05936 -36.8015 48.2599 +-1.568 -36.3096 47.6148 +-2.12538 -36.9059 48.3968 +-2.6128 -36.2874 47.5858 +-3.18726 -36.8777 48.3599 +-3.69344 -36.6174 48.0185 +-4.22724 -36.6569 48.0704 +-4.75462 -36.6332 48.0392 +-5.35136 -37.0899 48.6381 +-5.79867 -36.5169 47.8868 +-6.41805 -37.0276 48.5564 +-6.95068 -36.9922 48.51 +-7.48278 -36.954 48.4599 +-7.89683 -36.372 47.6966 +-8.53131 -36.8091 48.27 +-8.95725 -36.3428 47.6585 +-9.62072 -36.833 48.3013 +-10.0019 -36.2425 47.5269 +-10.662 -36.6659 48.0821 +-11.0435 -36.1311 47.3808 +-11.7348 -36.607 48.0049 +-12.2611 -36.5436 47.9217 +-12.7866 -36.4773 47.8348 +-13.5058 -36.941 48.4429 +-14.0145 -36.8091 48.2699 +-14.4036 -36.3797 47.7068 +-15.0717 -36.6551 48.068 +-15.3733 -36.0457 47.2688 +-16.1503 -36.5486 47.9284 +-16.7024 -36.5202 47.8911 +-17.2273 -36.4305 47.7734 +-18.0066 -36.8612 48.3382 +-18.5364 -36.7645 48.2114 +-19.0347 -36.6072 48.0051 +-19.6535 -36.6781 48.098 +-20.1171 -36.4576 47.809 +-21.0643 -37.0952 48.645 +-21.2635 -36.4107 47.7475 +-22.1629 -36.9236 48.42 +-22.6934 -36.8049 48.2644 +-23.5089 -37.1363 48.699 +-24.0425 -37.0105 48.534 +-24.5742 -36.8819 48.3653 +-25.1423 -36.8064 48.2664 +-26.0227 -37.1743 48.7488 +-26.6364 -37.1464 48.7122 +-27.17 -37.004 48.5255 +-27.743 -36.9141 48.4075 +-28.569 -37.1505 48.7176 +-29.1456 -37.0527 48.5893 +-30.0284 -37.3331 48.957 +-30.2076 -36.7386 48.1775 +-31.0983 -37.0096 48.5328 +-31.6298 -36.8436 48.3151 +-32.6752 -37.2638 48.8662 +-33.2102 -37.0895 48.6376 +-34.0336 -37.2305 48.8225 +-34.9128 -37.4184 49.069 +-35.65 -37.4423 49.1003 +-35.4262 -36.4685 47.8233 +-36.7737 -37.1113 48.6662 +-37.3064 -36.9153 48.4092 +-37.8892 -36.7679 48.2159 +-38.9542 -37.0775 48.6218 +-40.031 -37.3785 49.0166 +-40.0154 -36.6596 48.0738 +-41.4362 -37.2508 48.8491 +-41.4609 -36.5803 47.9699 +-43.0182 -37.2536 48.8528 +-43.5527 -37.0246 48.5525 +-44.1427 -36.8418 48.3127 +-45.2065 -37.0455 48.5798 +-46.2796 -37.2407 48.8359 +-47.6051 -37.6198 49.333 +-48.5757 -37.7009 49.4394 +-49.1787 -37.4899 49.1626 +-50.2198 -37.6052 49.3139 +-50.8226 -37.3848 49.0249 +-52.0015 -37.579 49.2795 +-52.4754 -37.2563 48.8563 +-53.5344 -37.3433 48.9704 +-54.6662 -37.4673 49.133 +-55.9393 -37.6723 49.4019 +-56.4118 -37.3302 48.9533 +-58.1745 -37.8285 49.6067 +-58.7166 -37.5192 49.2011 +-60.2963 -37.8614 49.6498 +-60.909 -37.5842 49.2863 +-62.7911 -38.0751 49.9301 +-63.6219 -37.9114 49.7154 +-65.6038 -38.4157 50.3767 +-65.9365 -37.9419 49.7554 +-68.0159 -38.4599 50.4348 +-69.0092 -38.3444 50.2832 +-70.896 -38.7081 50.7602 +-71.8997 -38.5726 50.5824 +-73.5087 -38.7476 50.8119 +-74.5198 -38.5934 50.6098 +-76.4512 -38.8992 51.0108 +-77.0081 -38.4932 50.4783 +-78.6472 -38.6185 50.6426 +-79.6695 -38.4273 50.392 +-82.4259 -39.0496 51.208 +-83.3814 -38.7965 50.8761 +-85.0547 -38.8647 50.9655 +-85.9323 -38.5575 50.5626 +-88.8301 -39.1348 51.3198 +-89.2271 -38.5929 50.6091 +-91.5812 -38.8844 50.9914 +-93.6207 -39.0165 51.1646 +-96.0855 -39.2996 51.5358 +-97.1477 -38.9905 51.1305 +-99.7179 -39.2675 51.4938 +-101.291 -39.1293 51.3125 +-103.462 -39.2024 51.4084 +-105.557 -39.2237 51.4363 +-108.517 -39.5381 51.8486 +-111.322 -39.7626 52.143 +-113.536 -39.748 52.1239 +-114.626 -39.3249 51.569 +-117.374 -39.4518 51.7354 +-119.08 -39.2053 51.4122 +-123.348 -39.7694 52.1519 +-126.044 -39.7871 52.1752 +-130.622 -40.3574 52.923 +-132.003 -39.9082 52.334 +-136.617 -40.4044 52.9846 +-138.096 -39.941 52.3769 +-134.043 -37.9017 49.7027 +-112.107 -30.9799 40.6258 +-110.448 -29.8183 39.1024 +-109.314 -28.8216 37.7955 +-109.264 -28.1236 36.8802 +-108.002 -27.1267 35.5728 +-107.646 -26.3724 34.5837 +-107.742 -25.7351 33.748 +-107.922 -25.1206 32.942 +-107.811 -24.4424 32.0527 +-106.373 -23.4769 30.7866 +-59.4807 -12.7722 16.749 +-48.1269 -10.0485 13.1772 +-41.9159 -8.50438 11.1523 +-39.2786 -7.73883 10.1484 +-34.5246 -6.60072 8.6559 +-32.2275 -5.97459 7.83483 +-20.8064 -3.73718 4.90078 +-15.0918 -2.6241 3.44114 +-16.2854 -2.7386 3.59128 +-15.2616 -2.47968 3.25175 +-15.9744 -2.50511 3.28509 +-15.1366 -2.28845 3.00098 +-14.6828 -2.13749 2.80302 +-15.2002 -2.12792 2.79047 +-13.961 -1.87679 2.46115 +-13.9875 -1.80284 2.36417 +-14.8949 -1.83756 2.4097 +-14.0373 -1.65454 2.1697 +-14.9455 -1.67965 2.20263 +-14.8706 -1.58998 2.08503 +-14.1039 -1.43116 1.87676 +-14.519 -1.39442 1.82858 +-14.1429 -1.28168 1.68074 +-13.6657 -1.1646 1.52721 +-14.7725 -1.17931 1.54649 +-14.4912 -1.07892 1.41485 +-13.7113 -0.947282 1.24223 +-14.9178 -0.950757 1.24678 +-14.1346 -0.825285 1.08224 +-14.9429 -0.792741 1.03957 +-12.8602 -0.613726 0.804815 +-12.8686 -0.545654 0.715547 +-13.4748 -0.499749 0.655349 +-13.5814 -0.4316 0.565983 +-13.4872 -0.357072 0.46825 +-13.5917 -0.287807 0.377417 +-12.2958 -0.195239 0.256028 +-12.2981 -0.130168 0.170697 +-12.5995 -0.0666736 0.0874329 +29.1 8.88178e-16 2.84217e-14 +30.5988 -0.16 0.21379 +34.7947 -0.363907 0.48625 +36.5875 -0.574057 0.767051 +39.8757 -0.834348 1.11485 +41.1608 -1.07679 1.4388 +40.2448 -1.26375 1.68861 +41.0233 -1.50339 2.00882 +39.2043 -1.6426 2.19483 +33.8952 -1.59837 2.13573 +24.0083 -1.25854 1.68165 +16.1254 -0.930343 1.24312 +16.4096 -1.03341 1.38084 +21.7592 -1.48545 1.98485 +33.8458 -2.49003 3.32715 +38.2698 -3.01884 4.03375 +44.9582 -3.78588 5.05866 +46.9783 -4.20679 5.62109 +62.7182 -5.95198 7.95299 +69.1386 -6.93236 9.26297 +117.783 -12.4439 16.6274 +119.957 -13.3213 17.7999 +120.151 -13.9938 18.6984 +119.845 -14.6096 19.5212 +120.606 -15.3602 20.5242 +120.28 -15.9773 21.3488 +120.53 -16.6729 22.2783 +120.671 -17.3585 23.1943 +120.414 -17.9888 24.0365 +120.147 -18.6178 24.8769 +120.741 -19.3848 25.9019 +120.936 -20.0954 26.8514 +120.734 -20.7436 27.7174 +121.003 -21.4761 28.6963 +120.781 -22.1255 29.564 +121.027 -22.8644 30.5512 +120.689 -23.4963 31.3956 +120.911 -24.2405 32.39 +120.932 -24.9499 33.3378 +121.035 -25.6812 34.3151 +120.844 -26.3541 35.2141 +120.643 -27.0269 36.1132 +120.432 -27.6997 37.0121 +120.582 -28.4601 38.0282 +120.348 -29.1343 38.9291 +120.566 -29.923 39.9829 +121.138 -30.8098 41.1679 +120.227 -31.3226 41.853 +121.593 -32.4374 43.3426 +120.206 -32.8235 43.8586 +116.823 -32.6405 43.614 +113.906 -32.5536 43.4979 +111.091 -32.465 43.3796 +108.914 -32.5367 43.4753 +105.673 -32.2617 43.1078 +103.78 -32.3703 43.253 +101.097 -32.2085 43.0367 +99.7457 -32.4499 43.3594 +96.4706 -32.0407 42.8126 +95.5651 -32.3964 43.2878 +96.6484 -33.4341 44.6744 +96.5886 -34.0903 45.5511 +96.0885 -34.594 46.2242 +95.1546 -34.9385 46.6846 +95.4902 -35.7523 47.7719 +94.9659 -36.2502 48.4372 +94.015 -36.5822 48.8808 +92.061 -36.5102 48.7846 +91.4428 -36.9567 49.3812 +89.3353 -36.7885 49.1566 +88.1408 -36.9793 49.4115 +86.3777 -36.9169 49.3281 +85.3513 -37.1558 49.6473 +82.3149 -36.4958 48.7655 +81.3011 -36.7085 49.0496 +80.208 -36.8768 49.2746 +79.1163 -37.0366 49.488 +77.0086 -36.7028 49.0421 +75.9272 -36.8402 49.2256 +74.5389 -36.8166 49.194 +73.6935 -37.0508 49.5071 +70.9459 -36.3063 48.5121 +70.4899 -36.7151 49.0585 +68.7541 -36.4471 48.7003 +68.518 -36.9655 49.3931 +67.2397 -36.9176 49.329 +65.7487 -36.7366 49.0871 +64.921 -36.9139 49.3241 +63.8774 -36.9607 49.3866 +61.3395 -36.1173 48.2597 +60.9526 -36.5214 48.7996 +59.5773 -36.3259 48.5384 +59.1154 -36.6791 49.0104 +57.4088 -36.248 48.4342 +56.9469 -36.5906 48.892 +55.6686 -36.401 48.6388 +55.2702 -36.7798 49.1449 +53.4072 -36.1698 48.3298 +52.944 -36.493 48.7616 +51.6961 -36.2672 48.4599 +51.2945 -36.6279 48.9419 +50.0594 -36.3862 48.6189 +49.7163 -36.7862 49.1534 +47.6224 -35.8724 47.9325 +48.0216 -36.8283 49.2097 +46.0832 -35.9847 48.0825 +45.6176 -36.2722 48.4666 +44.0764 -35.6905 47.6894 +43.8488 -36.162 48.3194 +43.0301 -36.146 48.298 +42.7888 -36.6149 48.9246 +41.5742 -36.2448 48.43 +41.2684 -36.6595 48.9841 +40.1258 -36.3242 48.5362 +39.6497 -36.5829 48.8818 +38.4707 -36.1824 48.3467 +38.0482 -36.4838 48.7494 +37.4631 -36.6303 48.9451 +36.9797 -36.8761 49.2736 +35.9845 -36.6034 48.9093 +35.05 -36.3751 48.6041 +34.4696 -36.5048 48.7775 +33.5488 -36.2644 48.4563 +32.924 -36.3332 48.5481 +32.4874 -36.6097 48.9177 +31.4451 -36.1935 48.3616 +30.9622 -36.41 48.6507 +29.9845 -36.0343 48.1487 +29.4585 -36.1897 48.3564 +28.9734 -36.3964 48.6326 +28.4845 -36.6008 48.9057 +27.4942 -36.1486 48.3015 +27.1293 -36.51 48.7844 +26.5168 -36.5405 48.8252 +25.7492 -36.3469 48.5664 +25.104 -36.314 48.5226 +24.6491 -36.555 48.8446 +23.7859 -36.1808 48.3445 +23.2581 -36.3038 48.5089 +22.7285 -36.424 48.6695 +22.1971 -36.5415 48.8265 +21.3303 -36.0913 48.225 +20.7387 -36.0882 48.2207 +20.371 -36.4794 48.7434 +19.7462 -36.4135 48.6555 +19.155 -36.4011 48.6389 +18.4194 -36.0988 48.2349 +17.7226 -35.849 47.9012 +17.5581 -36.6891 49.0237 +16.8627 -36.433 48.6816 +16.2538 -36.3462 48.5655 +15.5736 -36.0817 48.2122 +15.1443 -36.3943 48.6298 +14.3569 -35.8313 47.8775 +14.0145 -36.372 48.6001 +13.376 -36.1514 48.3053 +13.0153 -36.6888 49.0233 +12.4406 -36.6381 48.9555 +11.7729 -36.29 48.4904 +11.2439 -36.3502 48.5708 +10.7488 -36.5256 48.8053 +10.1834 -36.4622 48.7205 +9.69894 -36.6916 49.0271 +9.03116 -36.2076 48.3804 +8.62873 -36.7875 49.1551 +8.06652 -36.7124 49.0548 +7.54371 -36.8126 49.1887 +6.99596 -36.7911 49.16 +6.45986 -36.8263 49.2071 +5.84659 -36.3816 48.6128 +5.33393 -36.5301 48.8113 +4.77031 -36.3177 48.5274 +4.24119 -36.3412 48.5589 +3.70565 -36.3022 48.5068 +3.18726 -36.4399 48.6907 +2.60844 -35.7967 47.8313 +2.12189 -36.4078 48.6479 +1.58894 -36.3576 48.5808 +1.06285 -36.4843 48.7501 +0.522719 -35.8893 47.9551 +2.9976e-15 -36.5498 48.8376 +-0.532319 -36.5484 48.8358 +-1.06285 -36.4843 48.7501 +-1.59418 -36.4774 48.7408 +-2.12189 -36.4078 48.6479 +-2.65206 -36.3953 48.6311 +-3.19773 -36.5596 48.8506 +-3.74838 -36.7209 49.0662 +-4.24119 -36.3412 48.5589 +-4.82523 -36.7358 49.0861 +-5.43852 -37.2464 49.7683 +-5.88493 -36.6201 48.9315 +-6.50167 -37.0647 49.5256 +-6.93936 -36.4935 48.7623 +-7.60465 -37.11 49.5861 +-8.01431 -36.4747 48.7373 +-8.6844 -37.0248 49.4722 +-9.0755 -36.3854 48.6179 +-9.65201 -36.5141 48.7899 +-10.1339 -36.2849 48.4836 +-10.8356 -36.8206 49.1995 +-11.2075 -36.2324 48.4134 +-11.9256 -36.7605 49.1192 +-12.4406 -36.6381 48.9555 +-12.9945 -36.6302 48.945 +-13.5058 -36.5024 48.7743 +-14.0369 -36.4304 48.678 +-14.5436 -36.2973 48.5002 +-15.1201 -36.3362 48.5522 +-15.824 -36.6618 48.9872 +-16.435 -36.7513 49.1068 +-16.9162 -36.5485 48.8358 +-17.503 -36.5738 48.8697 +-18.035 -36.481 48.7456 +-18.858 -36.9583 49.3834 +-19.4256 -36.9154 49.3261 +-19.9934 -36.8694 49.2646 +-20.5296 -36.7634 49.123 +-21.0968 -36.7114 49.0534 +-21.5973 -36.5432 48.8287 +-22.5049 -37.0482 49.5035 +-23.0086 -36.873 49.2694 +-23.5448 -36.7513 49.1068 +-24.0425 -36.571 48.8659 +-24.9113 -36.9439 49.3642 +-25.4484 -36.8123 49.1883 +-26.3744 -37.2293 49.7456 +-26.5567 -36.5955 48.8986 +-27.5361 -37.0573 49.5157 +-28.0333 -36.8574 49.2486 +-28.6113 -36.7637 49.1234 +-29.5331 -37.0995 49.5721 +-30.0723 -36.9437 49.3638 +-30.6092 -36.785 49.1518 +-31.5523 -37.1041 49.5782 +-32.0915 -36.9377 49.3558 +-33.0977 -37.2975 49.8366 +-33.5443 -37.0177 49.4627 +-34.373 -37.1553 49.6466 +-35.2575 -37.3392 49.8924 +-35.45 -36.7902 49.1588 +-36.289 -36.9132 49.3232 +-36.8767 -36.7734 49.1364 +-37.7766 -36.9368 49.3547 +-38.8961 -37.2968 49.8357 +-39.4378 -37.092 49.5621 +-40.031 -36.9347 49.3518 +-40.9537 -37.0737 49.5376 +-42.0513 -37.3549 49.9133 +-42.5371 -37.0842 49.5517 +-43.5345 -37.253 49.7772 +-44.1334 -37.0728 49.5364 +-45.4358 -37.4708 50.0681 +-45.6229 -36.9428 49.3626 +-47.1221 -37.4685 50.0651 +-47.5443 -37.1256 49.6069 +-49.2529 -37.7727 50.4716 +-49.1787 -37.0447 49.4989 +-50.4086 -37.2984 49.8379 +-51.4587 -37.4033 49.978 +-52.6443 -37.5918 50.2299 +-53.0599 -37.224 49.7385 +-54.3217 -37.4426 50.0305 +-55.395 -37.5161 50.1288 +-56.6084 -37.6703 50.3348 +-57.0198 -37.2845 49.8193 +-58.2427 -37.4232 50.0046 +-59.1985 -37.378 49.9442 +-61.0605 -37.886 50.623 +-62.5211 -38.1208 50.9367 +-63.9225 -38.3009 51.1774 +-64.8345 -38.1752 51.0094 +-66.3231 -38.3758 51.2775 +-67.0246 -38.1101 50.9224 +-68.7472 -38.4119 51.3258 +-69.6727 -38.2535 51.114 +-71.6392 -38.6495 51.6431 +-72.3491 -38.3528 51.2467 +-74.037 -38.5627 51.5272 +-75.2041 -38.4854 51.4239 +-77.2173 -38.8225 51.8743 +-78.0884 -38.5697 51.5366 +-79.8129 -38.7255 51.7448 +-81.1565 -38.6798 51.6836 +-82.2683 -38.5122 51.4597 +-83.7781 -38.5182 51.4678 +-85.6137 -38.6557 51.6514 +-86.8165 -38.4917 51.4323 +-88.911 -38.7054 51.7179 +-90.6111 -38.7261 51.7456 +-92.8918 -38.9727 52.075 +-93.868 -38.6551 51.6507 +-96.7487 -39.101 52.2465 +-98.3985 -39.0236 52.143 +-100.64 -39.1603 52.3256 +-102.894 -39.2764 52.4809 +-104.819 -39.2449 52.4388 +-106.068 -38.9458 52.0391 +-109.375 -39.3773 52.6156 +-111.753 -39.4425 52.7027 +-114.229 -39.5157 52.8006 +-115.235 -39.0645 52.1977 +-117.549 -39.0414 52.1669 +-120.574 -39.2259 52.4133 +-124.496 -39.6628 52.9972 +-128.173 -39.9787 53.4193 +-132.314 -40.3951 53.9756 +-134.867 -40.2899 53.835 +-137.875 -40.2923 53.8383 +-139.359 -39.8279 53.2177 +-137.306 -38.3633 51.2608 +-113.199 -30.9102 41.302 +-110.904 -29.5861 39.5327 +-110.047 -28.6706 38.3094 +-108.712 -27.6492 36.9447 +-107.817 -26.7588 35.7549 +-107.831 -26.1042 34.8802 +-107.742 -25.4296 33.9788 +-108.109 -24.8653 33.2248 +-107.624 -24.1102 32.2158 +-107.125 -23.3621 31.2163 +-58.9151 -12.5006 16.7032 +-47.2759 -9.75365 13.0328 +-43.6229 -8.74559 11.6858 +-39.564 -7.70248 10.292 +-37.2903 -7.04489 9.41333 +-33.375 -6.11389 8.16933 +-26.847 -4.76492 6.36685 +-15.8608 -2.72507 3.64122 +-15.4181 -2.56197 3.42328 +-15.8412 -2.54329 3.39832 +-15.1031 -2.34034 3.12715 +-15.8158 -2.36275 3.15709 +-14.9745 -2.15408 2.87826 +-14.8104 -2.04874 2.73752 +-15.7184 -2.08794 2.78989 +-14.5744 -1.85618 2.48021 +-14.4049 -1.75601 2.34637 +-14.7244 -1.71492 2.29147 +-14.4538 -1.60511 2.14474 +-14.9691 -1.5815 2.11319 +-14.8929 -1.49328 1.99531 +-15.0129 -1.42472 1.90371 +-14.5385 -1.30189 1.73958 +-14.0618 -1.18413 1.58223 +-13.9794 -1.10274 1.47347 +-14.3919 -1.05881 1.41478 +-14.1087 -0.963172 1.28698 +-13.9233 -0.876836 1.17162 +-13.2388 -0.763801 1.02059 +-13.349 -0.699773 0.935032 +-13.4584 -0.634649 0.848013 +-14.7639 -0.618591 0.826556 +-13.7743 -0.504789 0.674495 +-14.58 -0.457834 0.611755 +-12.7878 -0.334537 0.447007 +-12.9921 -0.271843 0.363234 +-12.8956 -0.202332 0.270355 +-12.5981 -0.131759 0.176056 +-12.6995 -0.066405 0.0887299 +41.1 4.44089e-16 -1.13687e-13 +31.6988 -0.163746 0.222962 +43.4934 -0.44938 0.611892 +37.5871 -0.582608 0.793298 +40.0756 -0.828387 1.12796 +40.5614 -1.04828 1.42737 +36.7496 -1.14003 1.55231 +40.2248 -1.4563 1.98295 +32.0218 -1.32544 1.80476 +34.8921 -1.62548 2.21331 +25.8014 -1.33618 1.81939 +14.9309 -0.85101 1.15876 +33.217 -2.06657 2.81391 +27.6213 -1.86283 2.53649 +39.8011 -2.89273 3.93884 +39.7569 -3.09821 4.21863 +54.3657 -4.52269 6.15825 +54.5937 -4.82959 6.57614 +120.103 -11.2599 15.3319 +79.6919 -7.89384 10.7485 +120.245 -12.5503 17.0889 +119.465 -13.1062 17.8459 +119.66 -13.768 18.747 +120.041 -14.4564 19.6844 +119.823 -15.076 20.5279 +120.475 -15.8096 21.5269 +120.53 -16.4712 22.4278 +120.963 -17.19 23.4064 +120.511 -17.7855 24.2173 +121.018 -18.5259 25.2255 +120.741 -19.1503 26.0757 +120.261 -19.7416 26.8808 +120.734 -20.4926 27.9035 +120.236 -21.0818 28.7057 +120.781 -21.8579 29.7624 +121.217 -22.6233 30.8047 +120.784 -23.2304 31.6312 +121.291 -24.0224 32.7097 +120.27 -24.5131 33.3779 +121.318 -25.4298 34.6261 +120.469 -25.9543 35.3403 +120.831 -26.7414 36.4121 +120.152 -27.3009 37.1739 +120.675 -28.1375 38.3129 +120.627 -28.8484 39.281 +120.751 -29.6063 40.313 +121.138 -30.4371 41.4442 +121.51 -31.2741 42.5839 +119.309 -31.4431 42.814 +119.66 -32.2792 43.9524 +113.107 -31.22 42.5102 +114.087 -32.2108 43.8593 +107.406 -31.0084 42.2221 +108.377 -31.9846 43.5514 +103 -31.0652 42.2994 +103.071 -31.7601 43.2456 +98.3604 -30.9573 42.1526 +98.4275 -31.6337 43.0736 +96.1207 -31.5383 42.9436 +95.9132 -32.1211 43.7371 +96.3886 -32.9408 44.8534 +96.0717 -33.4975 45.6114 +96.6028 -34.3584 46.7835 +95.8368 -34.7633 47.3348 +94.3029 -34.8806 47.4946 +95.0502 -35.8435 48.8057 +94.602 -36.3653 49.5163 +93.3118 -36.5585 49.7793 +94.4274 -37.7012 51.3352 +90.1594 -36.6787 49.943 +92.8918 -38.5012 52.4245 +87.2732 -36.8484 50.174 +90.3672 -38.8634 52.9178 +84.0834 -36.8289 50.1475 +86.8915 -38.758 52.7742 +81.2394 -36.8992 50.2432 +84.0807 -38.8845 52.9464 +78.1043 -36.7748 50.0738 +81.6003 -39.1138 53.2587 +74.9247 -36.5594 49.7805 +78.6728 -39.0758 53.2069 +72.5427 -36.6743 49.937 +75.7728 -38.9893 53.0892 +69.0537 -36.1631 49.2408 +73.2741 -39.0533 53.1763 +67.0922 -36.391 49.5512 +70.2831 -38.795 52.8246 +65.0661 -36.5489 49.7662 +68.697 -39.2685 53.4693 +62.6947 -36.4687 49.657 +65.8316 -38.9676 53.0596 +60.2782 -36.3086 49.439 +63.7002 -39.0457 53.1659 +58.0283 -36.1959 49.2856 +61.1753 -38.8319 52.8749 +56.4118 -36.4407 49.6189 +58.8166 -38.6662 52.6492 +54.0698 -36.1756 49.2579 +56.4211 -38.4191 52.3128 +52.4105 -36.3236 49.4594 +54.7012 -38.5881 52.5428 +50.8226 -36.4941 49.6916 +53.0517 -38.7793 52.8032 +48.5561 -36.1333 49.2004 +50.8536 -38.5285 52.4617 +46.692 -36.019 49.0447 +49.6497 -39.0006 53.1046 +45.147 -36.1152 49.1756 +47.4343 -38.6457 52.6213 +43.0882 -35.7569 48.6878 +45.6567 -38.5964 52.5542 +42.2539 -36.3917 49.5521 +44.1762 -38.7678 52.7875 +40.6778 -36.3784 49.5341 +42.4818 -38.7218 52.7249 +39.0617 -36.2939 49.419 +41.1747 -39.0041 53.1094 +37.5154 -36.2376 49.3424 +39.3489 -38.764 52.7824 +36.0352 -36.2117 49.307 +37.55 -38.4982 52.4204 +34.4696 -36.0632 49.1049 +36.2153 -38.6731 52.6586 +33.4488 -36.4658 49.6531 +34.6001 -38.5187 52.4484 +31.953 -36.3332 49.4726 +33.1413 -38.5011 52.4244 +30.4753 -36.1811 49.2654 +31.9573 -38.7844 52.8102 +29.0164 -36.0095 49.0318 +30.4285 -38.6258 52.5943 +27.9503 -36.3038 49.4325 +28.8783 -38.3935 52.2779 +26.2377 -35.7185 48.6355 +27.781 -38.7405 52.7504 +25.1806 -35.9841 48.9972 +26.2974 -38.5276 52.4605 +24.1158 -36.2388 49.3439 +24.8349 -38.2961 52.1452 +23.0436 -36.4823 49.6756 +23.702 -38.5468 52.4867 +21.6974 -36.2685 49.3844 +22.5619 -38.7858 52.812 +20.2758 -35.8696 48.8413 +21.1368 -38.5063 52.4315 +19.2151 -36.0736 49.1191 +19.9982 -38.7188 52.7208 +17.893 -35.7558 48.6863 +18.6331 -38.4643 52.3743 +16.8895 -36.0493 49.0859 +17.3668 -38.365 52.2391 +15.8491 -36.2756 49.3941 +16.112 -38.2514 52.0845 +14.5903 -35.9733 48.9825 +15.0042 -38.4697 52.3817 +13.6141 -36.3498 49.4951 +13.9717 -38.9084 52.979 +12.4406 -36.1948 49.2841 +12.8224 -39.0468 53.1674 +11.2439 -35.9104 48.8969 +11.5476 -38.7652 52.7841 +10.2164 -36.1379 49.2066 +10.2621 -38.3525 52.222 +9.16418 -36.2965 49.4225 +9.14367 -38.5112 52.4382 +7.9882 -35.9161 48.9046 +7.99463 -38.5411 52.4788 +7.00728 -36.4049 49.5701 +6.84661 -38.5589 52.5032 +5.85618 -36.0003 49.0193 +5.71742 -38.6828 52.6718 +4.85662 -36.5275 49.737 +4.56207 -38.6178 52.5834 +3.76669 -36.4539 49.6368 +3.42277 -38.6591 52.6395 +2.6477 -35.8959 48.877 +2.28243 -38.6886 52.6797 +1.59156 -35.977 48.9874 +1.14488 -38.8246 52.8649 +0.533191 -36.1655 49.2442 +1.88738e-15 -38.7713 52.7924 +-0.532319 -36.1063 49.1636 +-1.14139 -38.7062 52.7037 +-1.61512 -36.5095 49.7126 +-2.28243 -38.6886 52.6797 +-2.69568 -36.5464 49.7628 +-3.42277 -38.6591 52.6395 +-3.75449 -36.3357 49.476 +-4.56207 -38.6178 52.5834 +-4.84093 -36.4094 49.5763 +-5.84815 -39.5673 53.8762 +-5.98077 -36.7663 50.0622 +-6.90933 -38.9122 52.9841 +-7.06388 -36.6989 49.9705 +-8.16525 -39.3636 53.5988 +-8.13178 -36.5617 49.7836 +-9.3246 -39.2733 53.4758 +-9.22331 -36.5306 49.7414 +-10.4968 -39.2294 53.4161 +-10.299 -36.4298 49.604 +-11.6344 -39.0567 53.1809 +-11.3715 -36.3178 49.4516 +-12.8033 -38.9887 53.0883 +-12.4406 -36.1948 49.2841 +-13.9509 -38.8505 52.9001 +-13.5058 -36.0608 49.1017 +-15.1167 -38.7581 52.7744 +-14.6137 -36.0309 49.061 +-16.4749 -39.1129 53.2575 +-15.8491 -36.2756 49.3941 +-17.6515 -38.994 53.0955 +-16.9429 -36.1634 49.2413 +-18.7985 -38.8057 52.8391 +-18.3474 -36.6639 49.9229 +-20.2029 -39.1151 53.2604 +-19.4557 -36.5253 49.734 +-21.6312 -39.4071 53.658 +-20.5296 -36.3187 49.4527 +-22.8223 -39.2336 53.4218 +-21.6641 -36.2127 49.3084 +-24.2834 -39.4924 53.7742 +-22.9736 -36.3715 49.5246 +-25.4441 -39.2355 53.4244 +-24.1158 -36.2388 49.3439 +-26.9342 -39.4606 53.7309 +-25.8311 -36.9138 50.2631 +-28.0936 -39.1764 53.3439 +-26.9554 -36.6956 49.966 +-29.6511 -39.421 53.6769 +-28.1162 -36.5193 49.7259 +-30.8089 -39.1086 53.2516 +-30.0066 -37.2384 50.705 +-32.4395 -39.3697 53.6071 +-31.0107 -36.8167 50.1309 +-33.9585 -39.4505 53.7171 +-32.5533 -37.0159 50.402 +-35.8676 -39.9299 54.3698 +-33.592 -36.6219 49.8656 +-36.7001 -39.1908 53.3636 +-35.4053 -37.0421 50.4377 +-38.4 -39.3697 53.6071 +-36.3397 -36.5176 49.7236 +-40.6365 -40.0324 54.5095 +-38.3514 -37.0452 50.4419 +-41.8106 -39.6065 53.9296 +-39.4915 -36.6932 49.9628 +-43.6256 -39.7643 54.1444 +-41.1745 -36.8226 50.139 +-45.1828 -39.6511 53.9902 +-43.1035 -37.1234 50.5485 +-47.3774 -40.0511 54.5349 +-44.6561 -37.058 50.4594 +-49.0801 -39.9865 54.447 +-46.4557 -37.162 50.601 +-50.7932 -39.8988 54.3276 +-48.2139 -37.193 50.6433 +-52.5159 -39.7879 54.1765 +-49.8012 -37.0599 50.462 +-54.8138 -40.0673 54.557 +-52.0312 -37.3619 50.8732 +-56.5653 -39.903 54.3333 +-53.7743 -37.2688 50.7464 +-58.9797 -40.1614 54.6852 +-56.0577 -37.5056 51.0689 +-61.0916 -40.1618 54.6857 +-57.6278 -37.2263 50.6886 +-63.4258 -40.2606 54.8202 +-60.5064 -37.7416 51.3903 +-66.2009 -40.5786 55.2531 +-62.3108 -37.533 51.1062 +-68.1651 -40.3489 54.9404 +-64.9058 -37.7548 51.4082 +-71.2146 -40.7077 55.4289 +-67.9676 -38.1787 51.9854 +-73.8667 -40.7731 55.5181 +-70.6312 -38.3105 52.1649 +-76.321 -40.6772 55.3874 +-73.4726 -38.4771 52.3918 +-79.3954 -40.8534 55.6274 +-75.9646 -38.4043 52.2926 +-82.5796 -41.0162 55.8491 +-78.2427 -38.1784 51.985 +-84.9421 -40.7156 55.4398 +-81.7043 -38.4697 52.3817 +-88.6512 -40.9981 55.8244 +-84.6508 -38.4486 52.3529 +-92.2424 -41.1447 56.0241 +-88.1027 -38.5894 52.5446 +-96.0303 -41.2989 56.234 +-91.588 -38.6702 52.6546 +-99.7727 -41.3531 56.3078 +-95.4338 -38.8245 52.8647 +-103.796 -41.4415 56.4282 +-99.566 -39.0089 53.1158 +-108.356 -41.6525 56.7154 +-102.725 -38.7377 52.7465 +-111.858 -41.3737 56.3358 +-107.774 -39.0932 53.2307 +-117.775 -41.8885 57.0369 +-112.787 -39.3259 53.5474 +-117.26 -40.0736 54.5655 +-116.802 -39.1165 53.2624 +-118.249 -38.7987 52.8297 +-122.243 -39.288 53.4958 +-135.621 -42.6845 58.1206 +-129.592 -39.9324 54.3733 +-139.443 -42.0562 57.2652 +-135.225 -39.9081 54.3403 +-138.774 -40.0644 54.553 +-138.727 -39.1677 53.3321 +-139.209 -38.4246 52.3202 +-115.11 -31.0518 42.2812 +-130.546 -34.4045 46.8463 +-110.231 -28.3709 38.6308 +-110.276 -27.7079 37.7281 +-108.741 -26.6615 36.3033 +-108.017 -25.8328 35.1748 +-107.928 -25.1653 34.266 +-108.389 -24.6281 33.5344 +-107.717 -23.8392 32.4603 +-107.125 -23.0795 31.4258 +-58.9151 -12.3494 16.8153 +-102.778 -20.9479 28.5234 +-43.8126 -8.67738 11.8154 +-41.9416 -8.06657 10.9837 +-37.4811 -6.99524 9.52495 +-33.9488 -6.14375 8.36553 +-28.0934 -4.92582 6.70717 +-16.9182 -2.87158 3.91004 +-15.7072 -2.57844 3.51089 +-17.0969 -2.71168 3.69232 +-15.684 -2.40096 3.26923 +-16.495 -2.43441 3.31477 +-15.7524 -2.23856 3.0481 +-16.0771 -2.19706 2.99159 +-14.8397 -1.94737 2.65161 +-14.5744 -1.83372 2.49686 +-14.1109 -1.69937 2.31392 +-3216.11 -370.043 503.863 +-13.7656 -1.51019 2.05632 +-3226.53 -336.762 458.547 +-15.0902 -1.49476 2.03531 +-14.0252 -1.31489 1.7904 +-14.2418 -1.2599 1.71552 +-13.5667 -1.12861 1.53676 +-13.3845 -1.04304 1.42024 +-12.2083 -0.887295 1.20817 +-13.0158 -0.877807 1.19525 +-13.8239 -0.860043 1.17106 +-13.5374 -0.771579 1.05061 +-13.6479 -0.706781 0.962377 +-13.3587 -0.622324 0.847378 +-13.6666 -0.565685 0.770256 +-13.375 -0.484227 0.65934 +-14.4801 -0.449198 0.611643 +-14.1865 -0.366638 0.499226 +-14.9909 -0.30987 0.421929 +-12.4957 -0.193686 0.26373 +-13.6979 -0.141529 0.192711 +-12.1995 -0.0630191 0.0858089 +47.4 8.88178e-16 0 +44.8983 -0.229071 0.317884 +45.5931 -0.465268 0.645656 +43.885 -0.671842 0.93232 +41.2748 -0.842659 1.16937 +38.5633 -0.984351 1.36599 +37.9479 -1.1627 1.61349 +35.0345 -1.25275 1.73845 +30.3259 -1.23977 1.72044 +28.0134 -1.28894 1.78867 +28.4912 -1.45728 2.02228 +30.3596 -1.70905 2.37167 +34.7088 -2.13276 2.95965 +36.0667 -2.40242 3.33385 +41.5877 -2.98532 4.14276 +45.4082 -3.49499 4.85002 +55.8511 -4.58899 6.36817 +115.616 -10.1018 14.0183 +120.3 -11.1394 15.4582 +119.735 -11.7142 16.2558 +120.54 -12.4261 17.2437 +119.957 -12.9979 18.0374 +120.544 -13.6987 19.0098 +120.237 -14.3015 19.8463 +119.725 -14.878 20.6463 +120.768 -15.6527 21.7214 +120.432 -16.2551 22.5573 +120.768 -16.9508 23.5227 +119.734 -17.4531 24.2199 +120.922 -18.2829 25.3713 +120.837 -18.9294 26.2685 +120.357 -19.5139 27.0796 +120.734 -20.24 28.0872 +121.099 -20.9714 29.1022 +120.781 -21.5884 29.9584 +120.454 -22.2038 30.8124 +120.879 -22.9621 31.8646 +120.532 -23.5779 32.7192 +121.026 -24.3632 33.809 +120.47 -24.9407 34.6104 +120.657 -25.6744 35.6285 +120.55 -26.3504 36.5666 +120.152 -26.9644 37.4187 +120.861 -27.8335 38.6247 +120.441 -28.449 39.4789 +121.398 -29.398 40.7958 +121.783 -30.2218 41.939 +120.96 -30.7487 42.6702 +118.304 -30.794 42.733 +115.565 -30.7902 42.7279 +111.566 -30.4151 42.2072 +109.484 -30.5301 42.3668 +106.867 -30.4724 42.2867 +104.26 -30.3903 42.1729 +101.486 -30.231 41.9518 +99.7 -30.3427 42.1068 +97.1242 -30.1915 41.897 +95.7911 -30.4069 42.1959 +97.0828 -31.4613 43.6591 +96.2613 -31.8402 44.1849 +96.302 -32.5055 45.1082 +97.2779 -33.5001 46.4883 +95.2313 -33.4531 46.4231 +94.8136 -33.9682 47.1379 +95.2358 -34.7914 48.2803 +94.5442 -35.2131 48.8656 +94.5182 -35.8852 49.7982 +94.4793 -36.5597 50.7342 +94.5103 -37.2691 51.7187 +94.6097 -38.0148 52.7534 +94.3663 -38.6301 53.6074 +93.2162 -38.8725 53.9436 +91.7425 -38.9685 54.0769 +89.7908 -38.8439 53.9041 +88.4888 -38.9839 54.0983 +86.7929 -38.9356 54.0313 +85.4992 -39.053 54.1942 +83.2695 -38.7235 53.7368 +82.9215 -39.2572 54.4775 +80.7119 -38.8978 53.9788 +80.3581 -39.4208 54.7046 +78.702 -39.2977 54.5338 +76.8294 -39.0457 54.184 +75.1952 -38.8939 53.9733 +74.1659 -39.0413 54.1779 +73.1379 -39.1812 54.372 +71.7458 -39.1142 54.2791 +69.2733 -38.4325 53.3331 +69.1286 -39.0281 54.1596 +67.6875 -38.8876 53.9646 +66.8923 -39.1074 54.2696 +65.535 -38.9885 54.1046 +64.6727 -39.1531 54.3331 +63.1221 -38.8879 53.965 +62.8802 -39.4222 54.7065 +61.0734 -38.9657 54.073 +60.021 -38.9716 54.0812 +58.3106 -38.532 53.4711 +58.258 -39.181 54.3718 +56.437 -38.6321 53.61 +55.8582 -38.9185 54.0076 +54.1939 -38.4351 53.3367 +54.1216 -39.0736 54.2228 +52.4157 -38.5247 53.461 +51.8387 -38.7906 53.8301 +50.8316 -38.729 53.7445 +50.1914 -38.9401 54.0375 +49.0729 -38.7717 53.8039 +48.4335 -38.9733 54.0836 +46.8047 -38.3622 53.2355 +46.4597 -38.7911 53.8307 +45.6523 -38.834 53.8902 +44.6236 -38.6776 53.6732 +43.5478 -38.465 53.3783 +43.4622 -39.127 54.2969 +42.3929 -38.9035 53.9867 +41.8106 -39.1183 54.2848 +40.3891 -38.5326 53.472 +40.173 -39.0879 54.2426 +38.5729 -38.2839 53.1269 +38.35 -38.8337 53.8898 +37.6212 -38.8752 53.9475 +36.8455 -38.8611 53.9279 +35.596 -38.3284 53.1886 +35.4451 -38.973 54.0832 +34.077 -38.2708 53.1087 +33.8677 -38.86 53.9263 +32.9294 -38.6127 53.5832 +32.7025 -39.1996 54.3976 +31.3843 -38.4679 53.3822 +31.1892 -39.1034 54.2641 +29.775 -38.1971 53.0064 +29.5698 -38.8282 53.8822 +28.6701 -38.5486 53.4943 +28.0936 -38.6935 53.6952 +27.1705 -38.3492 53.2175 +26.9342 -38.9742 54.0848 +26.0216 -38.6206 53.5941 +25.4441 -38.7519 53.7763 +24.5495 -38.3873 53.2704 +24.2834 -39.0056 54.1284 +23.1662 -38.2462 53.0746 +23.1479 -39.3027 54.5407 +21.9892 -38.4213 53.3176 +21.6621 -38.9769 54.0885 +20.7788 -38.5283 53.466 +20.4953 -39.192 54.387 +19.4266 -38.3421 53.2076 +19.1017 -38.9455 54.045 +18.2791 -38.5344 53.4746 +17.8068 -38.8521 53.9154 +17.126 -38.7151 53.7252 +16.5475 -38.801 53.8444 +15.7809 -38.4292 53.3284 +15.5441 -39.3627 54.6239 +14.5664 -38.4131 53.3061 +14.3251 -39.4009 54.677 +13.3776 -38.4413 53.3452 +12.9941 -39.082 54.2343 +12.1004 -38.1695 52.9681 +11.8254 -39.2086 54.4101 +11.0912 -38.7485 53.7716 +10.528 -38.8613 53.9282 +9.82933 -38.451 53.3588 +9.35243 -38.9049 53.9887 +8.65389 -38.4295 53.3289 +8.18962 -38.9944 54.1129 +7.51669 -38.57 53.524 +7.01386 -39.0139 54.1399 +6.36416 -38.6408 53.6222 +5.85687 -39.1378 54.3118 +5.19399 -38.5833 53.5424 +4.68066 -39.1332 54.3055 +4.03531 -38.5721 53.5268 +3.50651 -39.1167 54.2825 +2.85271 -38.1986 53.0085 +2.28592 -38.2701 53.1077 +1.73553 -38.7478 53.7707 +1.16059 -38.8721 53.9432 +0.570715 -38.2335 53.0569 +1.77636e-15 -38.878 53.9514 +-0.578569 -38.7596 53.7871 +-1.15709 -38.7552 53.7809 +-1.73291 -38.6894 53.6895 +-2.31733 -38.7959 53.8374 +-2.89197 -38.7242 53.7379 +-3.48557 -38.8831 53.9584 +-4.04752 -38.6888 53.6887 +-4.69461 -39.2499 54.4674 +-5.19399 -38.5833 53.5424 +-5.85687 -39.1378 54.3118 +-6.38333 -38.7572 53.7837 +-7.10794 -39.5372 54.8661 +-7.61858 -39.0928 54.2494 +-8.2993 -39.5167 54.8376 +-8.82357 -39.183 54.3746 +-9.49161 -39.4839 54.7921 +-9.91801 -38.7979 53.8402 +-10.5593 -38.9768 54.0885 +-11.2232 -39.2098 54.4117 +-11.7039 -38.8055 53.8508 +-12.2098 -38.5144 53.4468 +-12.8224 -38.5654 53.5176 +-13.3577 -38.384 53.2658 +-14.2212 -39.115 54.2802 +-14.7179 -38.8126 53.8606 +-15.3642 -38.907 53.9915 +-15.8743 -38.6566 53.644 +-16.5233 -38.7443 53.7657 +-17.2512 -38.9981 54.118 +-17.8844 -39.0216 54.1505 +-18.4662 -38.9288 54.0219 +-19.3222 -39.3951 54.6689 +-19.8527 -39.1829 54.3744 +-20.466 -39.136 54.3094 +-21.0193 -38.9744 54.0851 +-21.9402 -39.4773 54.7829 +-22.4652 -39.253 54.4716 +-23.3432 -39.6344 55.0009 +-23.3999 -38.632 53.61 +-24.5912 -39.5 54.8145 +-25.1099 -39.2635 54.4863 +-26.0533 -39.6797 55.0639 +-26.6446 -39.5453 54.8774 +-27.571 -39.8957 55.3636 +-27.8594 -39.3214 54.5666 +-28.836 -39.716 55.1142 +-29.3479 -39.4601 54.7591 +-30.4239 -39.9498 55.4386 +-30.6044 -39.261 54.4828 +-31.6541 -39.6863 55.073 +-31.8578 -39.0483 54.1877 +-33.1847 -39.7776 55.1997 +-33.4648 -39.2406 54.4544 +-35.0935 -40.2664 55.878 +-35.0467 -39.3598 54.6199 +-35.9615 -39.5409 54.8712 +-36.6458 -39.4587 54.7571 +-37.5727 -39.6281 54.9923 +-38.0643 -39.3332 54.583 +-39.35 -39.8463 55.295 +-39.7403 -39.4426 54.7347 +-41.0485 -39.9398 55.4248 +-41.4341 -39.5295 54.8555 +-42.6585 -39.9116 55.3856 +-43.1452 -39.5938 54.9446 +-44.4425 -40.0096 55.5216 +-44.8725 -39.6351 55.0019 +-45.5742 -39.5016 54.8167 +-46.3887 -39.4603 54.7593 +-47.6642 -39.7968 55.2263 +-48.4887 -39.7425 55.1509 +-49.903 -40.1557 55.7244 +-50.203 -39.6647 55.043 +-51.5755 -40.014 55.5278 +-51.9273 -39.5638 54.903 +-53.2547 -39.8502 55.3005 +-54.3455 -39.9431 55.4293 +-55.5061 -40.0732 55.6099 +-56.5474 -40.1042 55.653 +-57.7866 -40.2621 55.872 +-58.3854 -39.9657 55.4608 +-59.7014 -40.1517 55.7188 +-60.2322 -39.8018 55.2333 +-62.1622 -40.3619 56.0106 +-62.357 -39.7846 55.2094 +-65.1308 -40.8332 56.6646 +-65.1872 -40.1601 55.7305 +-67.5208 -40.8774 56.7258 +-67.5677 -40.1977 55.7827 +-69.5086 -40.637 56.3922 +-70.1838 -40.3218 55.9549 +-72.4375 -40.8962 56.752 +-73.553 -40.8068 56.628 +-75.9145 -41.3869 57.433 +-76.1607 -40.8006 56.6193 +-77.8073 -40.9582 56.838 +-78.4157 -40.5596 56.2849 +-80.7539 -41.0402 56.9518 +-81.3634 -40.6266 56.3779 +-84.4181 -41.4125 57.4685 +-84.3386 -40.6455 56.4042 +-87.1958 -41.2807 57.2855 +-88.0434 -40.9435 56.8176 +-90.7 -41.4285 57.4907 +-91.3943 -40.9998 56.8958 +-93.8397 -41.3413 57.3696 +-95.1767 -41.1739 57.1373 +-98.5383 -41.8551 58.0826 +-98.915 -41.2489 57.2415 +-102.23 -41.8493 58.0746 +-103.181 -41.4587 57.5325 +-105.702 -41.6826 57.8432 +-106.904 -41.3676 57.4061 +-109.866 -41.7122 57.8843 +-110.99 -41.3385 57.3658 +-114.402 -41.7931 57.9966 +-116.3 -41.666 57.8203 +-119.489 -41.9744 58.2482 +-117.957 -40.6214 56.3706 +-120.811 -40.7781 56.5881 +-118.542 -39.2102 54.4123 +-118.686 -38.4622 53.3743 +-130.153 -41.3143 57.3322 +-137.475 -42.7347 59.3032 +-138.817 -42.2477 58.6274 +-139.532 -41.5644 57.6792 +-139.252 -40.5901 56.3272 +-139.223 -39.6987 55.0902 +-139.269 -38.8359 53.8929 +-139.118 -37.9262 52.6305 +-139.952 -37.2877 51.7445 +-139.407 -36.2869 50.3557 +-112.707 -28.6507 39.7587 +-110.645 -27.4578 38.1034 +-109.665 -26.5566 36.8528 +-108.388 -25.6019 35.528 +-108.021 -24.8766 34.5214 +-107.922 -24.2197 33.6099 +-107.062 -23.4021 32.4752 +-106.749 -22.715 31.5218 +-104.35 -21.6036 29.9794 +-103.062 -20.7468 28.7905 +-51.494 -10.073 13.9783 +-45.8409 -8.70786 12.084 +-39.77 -7.33094 10.1732 +-36.0527 -6.44405 8.94246 +-17.5464 -3.03861 4.21671 +-16.8221 -2.82006 3.91342 +-16.9599 -2.74976 3.81586 +-16.8071 -2.63286 3.65364 +-17.6203 -2.66412 3.69702 +-17.0772 -2.48926 3.45437 +-16.0441 -2.25191 3.125 +-16.3694 -2.20943 3.06604 +-15.9136 -2.06256 2.86224 +-14.8678 -1.84759 2.56391 +-13.621 -1.62014 2.24828 +-14.2336 -1.61752 2.24464 +-3221.44 -349.059 484.392 +-3226.53 -332.611 461.567 +-3231.37 -316.137 438.706 +-3235.96 -299.639 415.812 +-13.7473 -1.20116 1.66685 +-11.9822 -0.984515 1.36622 +-14.1777 -1.09123 1.5143 +-13.5979 -0.976108 1.35455 +-13.1151 -0.873604 1.21231 +-13.5255 -0.831107 1.15333 +-13.2388 -0.74526 1.0342 +-12.9505 -0.6624 0.919218 +-13.9568 -0.642177 0.891155 +-14.1654 -0.579103 0.803625 +-14.3731 -0.513949 0.713212 +-13.5814 -0.416123 0.577457 +-14.4862 -0.369769 0.513131 +-13.7916 -0.281566 0.390732 +-14.1951 -0.217315 0.30157 +-13.4979 -0.137743 0.191148 +-13.3995 -0.0683645 0.09487 +52.7 1.77636e-15 2.84217e-14 +47.1982 -0.23778 0.336327 +53.3919 -0.538008 0.760983 +44.5847 -0.673978 0.953303 +42.574 -0.858265 1.21397 +39.4624 -0.994649 1.40688 +38.9466 -1.1783 1.66664 +35.9329 -1.26873 1.79455 +26.5352 -1.07117 1.51511 +27.2158 -1.23651 1.74897 +29.9855 -1.51445 2.14211 +32.4499 -1.80378 2.55134 +35.5044 -2.15425 3.04706 +37.0602 -2.43759 3.44783 +40.4959 -2.87043 4.06006 +46.8953 -3.56411 5.04123 +60.4064 -4.90092 6.93207 +116.803 -10.0773 14.2538 +119.807 -10.9543 15.4943 +119.834 -11.5765 16.3743 +120.147 -12.2299 17.2985 +120.055 -12.8452 18.1688 +120.642 -13.5376 19.1482 +120.237 -14.1218 19.9745 +119.921 -14.7151 20.8136 +119.889 -15.3436 21.7027 +120.53 -16.0638 22.7214 +120.185 -16.6569 23.5603 +120.608 -17.3596 24.5541 +121.018 -18.0677 25.5557 +120.934 -18.7065 26.4593 +120.261 -19.2533 27.2327 +120.831 -20.0016 28.2912 +120.332 -20.5768 29.1047 +120.781 -21.3172 30.152 +121.313 -22.0811 31.2325 +121.069 -22.7093 32.121 +120.532 -23.2817 32.9306 +121.31 -24.1135 34.1072 +121.318 -24.8008 35.0793 +120.751 -25.3716 35.8866 +120.831 -26.08 36.8887 +120.245 -26.6463 37.6897 +120.489 -27.3992 38.7546 +120.719 -28.1565 39.8258 +121.305 -29.0066 41.0282 +121.507 -29.7745 42.1143 +121.51 -30.5006 43.1414 +116.934 -30.0549 42.511 +114.655 -30.164 42.6653 +111.566 -30.033 42.48 +108.852 -29.9725 42.3945 +106.148 -29.8871 42.2736 +104.26 -30.0086 42.4454 +101.753 -29.9299 42.3341 +98.9017 -29.7217 42.0396 +96.5062 -29.6225 41.8993 +95.2638 -29.8596 42.2348 +96.3831 -30.8422 43.6245 +96.3484 -31.4687 44.5107 +96.302 -32.0972 45.3997 +96.8471 -32.9327 46.5814 +95.4884 -33.122 46.8492 +94.7283 -33.5113 47.3999 +94.6422 -34.1402 48.2894 +94.6285 -34.8018 49.2252 +94.8536 -35.5602 50.2979 +94.7294 -36.1959 51.1971 +94.9248 -36.9623 52.2811 +94.9393 -37.668 53.2793 +94.9397 -38.3766 54.2816 +94.1932 -38.7864 54.8612 +93.037 -39.0219 55.1943 +90.6751 -38.7337 54.7866 +89.9264 -39.1196 55.3324 +87.9036 -38.9385 55.0763 +87.3904 -39.4154 55.7509 +84.2086 -38.6682 54.694 +83.9318 -39.2363 55.4975 +82.3323 -39.1802 55.4182 +80.9709 -39.2225 55.478 +79.7666 -39.3289 55.6286 +78.7162 -39.5021 55.8734 +76.3186 -38.979 55.1337 +75.4292 -39.2075 55.4568 +73.654 -38.962 55.1096 +73.1354 -39.3709 55.6879 +70.5064 -38.6252 54.6332 +70.7111 -39.42 55.7574 +68.5434 -38.8846 55.0001 +68.0944 -39.3101 55.6019 +66.0957 -38.8281 54.9201 +65.3674 -39.0765 55.2716 +63.6728 -38.7343 54.7875 +62.9484 -38.9692 55.1197 +61.4787 -38.7315 54.7835 +60.8909 -39.0398 55.2196 +59.172 -38.61 54.6116 +59.6358 -39.6037 56.0172 +57.4112 -38.8052 54.8878 +57.1438 -39.3141 55.6076 +55.6568 -38.9768 55.1306 +54.8138 -39.0763 55.2712 +53.5363 -38.8539 54.9567 +52.5159 -38.8037 54.8857 +51.8056 -38.9752 55.1283 +51.395 -39.373 55.6909 +49.8461 -38.8879 55.0048 +49.5503 -39.3711 55.6882 +48.1403 -38.9613 55.1085 +47.3774 -39.0604 55.2488 +46.2754 -38.8694 54.9786 +45.5742 -39.0054 55.1709 +44.5413 -38.8483 54.9488 +44.1158 -39.2165 55.4695 +42.8765 -38.853 54.9553 +42.1816 -38.9696 55.1203 +41.2251 -38.836 54.9314 +40.8425 -39.2402 55.5031 +40.0448 -39.2455 55.5105 +39.85 -39.8457 56.3594 +37.7689 -38.5376 54.5092 +37.8152 -39.3827 55.7047 +36.4549 -38.76 54.8239 +36.1024 -39.1971 55.4421 +34.9544 -38.763 54.828 +34.1401 -38.6804 54.7113 +33.3756 -38.6443 54.6601 +33.0532 -39.1223 55.3362 +31.8148 -38.5057 54.4642 +31.1892 -38.6122 54.6147 +30.3141 -38.4001 54.3148 +30.0985 -39.026 55.2001 +28.8296 -38.2761 54.1394 +28.5234 -38.7919 54.869 +27.7445 -38.6675 54.693 +27.0466 -38.6452 54.6614 +26.2048 -38.404 54.3203 +25.8025 -38.804 54.8861 +25.0048 -38.6081 54.6089 +24.6597 -39.1123 55.3221 +23.8004 -38.7997 54.88 +23.1479 -38.809 54.8931 +22.4334 -38.7051 54.7462 +22.0638 -39.201 55.4475 +21.1998 -38.8151 54.9018 +20.8169 -39.3069 55.5974 +19.7959 -38.58 54.5692 +19.4049 -39.0667 55.2576 +18.6265 -38.7735 54.843 +18.0397 -38.8659 54.9736 +17.3764 -38.7876 54.8629 +16.8378 -38.9857 55.1431 +16.1311 -38.7884 54.864 +15.6566 -39.1495 55.3747 +14.9776 -39.0014 55.1653 +14.4291 -39.1883 55.4296 +13.7564 -39.0332 55.2102 +13.2421 -39.3277 55.6268 +12.4649 -38.8253 54.9161 +11.9296 -39.0571 55.2441 +11.2728 -38.888 55.0049 +10.7627 -39.2284 55.4864 +10.1102 -39.0528 55.2379 +9.49161 -38.9879 55.1461 +8.82357 -38.6908 54.726 +8.32368 -39.1349 55.354 +7.65254 -38.7738 54.8434 +7.14975 -39.2702 55.5454 +6.48876 -38.9024 55.0253 +5.88301 -38.8186 54.9067 +5.22538 -38.3288 54.214 +4.75739 -39.2751 55.5525 +4.10246 -38.7214 54.7692 +3.51698 -38.7406 54.7963 +2.90069 -38.3531 54.2483 +2.34525 -38.7701 54.8381 +1.76171 -38.8381 54.9343 +1.17629 -38.9032 55.0264 +0.589041 -38.9654 55.1144 +2.77556e-15 -38.9669 55.1165 +-0.589914 -39.0231 55.196 +-1.16582 -38.5569 54.5366 +-1.76694 -38.9536 55.0976 +-2.35921 -39.0009 55.1645 +-2.94431 -38.9299 55.0641 +-3.54838 -39.0865 55.2856 +-4.13299 -39.0095 55.1767 +-4.72251 -38.9872 55.1452 +-5.30383 -38.9043 55.028 +-5.97888 -39.4513 55.8016 +-6.55585 -39.3047 55.5943 +-7.14975 -39.2702 55.5454 +-7.6299 -38.6591 54.681 +-8.34805 -39.2494 55.5161 +-8.94104 -39.2059 55.4546 +-9.51944 -39.1022 55.3078 +-10.0363 -38.7673 54.8341 +-10.747 -39.1714 55.4057 +-11.2067 -38.6603 54.6828 +-11.9123 -39.0003 55.1637 +-12.3556 -38.4847 54.4344 +-13.0895 -38.8743 54.9855 +-13.5171 -38.3544 54.2501 +-14.3459 -38.9624 55.1101 +-14.8478 -38.6632 54.6869 +-15.6116 -39.0369 55.2156 +-16.0144 -38.5077 54.467 +-16.9587 -39.2658 55.5392 +-17.4014 -38.8436 54.942 +-18.2467 -39.312 55.6046 +-18.8403 -39.2186 55.4724 +-19.3497 -38.9557 55.1007 +-19.9663 -38.9121 55.0389 +-20.6999 -39.0861 55.285 +-21.1095 -38.6499 54.6681 +-22.1565 -39.3657 55.6806 +-22.5604 -38.9241 55.0559 +-23.5711 -39.5185 55.8967 +-24.0675 -39.2351 55.4958 +-25.0701 -39.7633 56.2429 +-25.4951 -39.3651 55.6797 +-26.2325 -39.4507 55.8008 +-27.0478 -39.6393 56.0676 +-27.6834 -39.5551 55.9485 +-28.242 -39.3608 55.6736 +-29.3048 -39.8547 56.3723 +-29.5074 -39.1761 55.4124 +-30.912 -40.0808 56.692 +-31.2264 -39.5558 55.9495 +-32.119 -39.7632 56.2428 +-32.7188 -39.5999 56.0118 +-33.8861 -40.1081 56.7306 +-34.1788 -39.5742 55.9755 +-35.5021 -40.2235 56.8939 +-35.8779 -39.7871 56.2766 +-36.7127 -39.8597 56.3793 +-37.0752 -39.4196 55.7568 +-38.3969 -39.9887 56.5617 +-38.9015 -39.6932 56.1438 +-40 -39.9956 56.5716 +-40.5523 -39.7429 56.2141 +-41.6666 -40.0319 56.6229 +-42.3224 -39.8697 56.3935 +-43.8243 -40.4873 57.2669 +-43.9511 -39.8267 56.3327 +-45.5318 -40.4753 57.25 +-45.7004 -39.8592 56.3786 +-47.14 -40.3454 57.0663 +-47.2949 -39.7258 56.1898 +-48.8687 -40.2899 56.9879 +-49.4178 -39.9952 56.5709 +-51.1961 -40.6788 57.5379 +-51.1548 -39.9089 56.4489 +-52.9597 -40.5717 57.3864 +-53.5101 -40.2576 56.9421 +-55.2864 -40.8508 57.7812 +-55.2793 -40.119 56.746 +-57.2052 -40.7811 57.6826 +-57.7559 -40.4468 57.2097 +-59.3293 -40.8176 57.7343 +-60.1389 -40.6489 57.4956 +-61.5383 -40.8672 57.8044 +-62.0212 -40.4692 57.2414 +-63.9689 -41.0132 58.0108 +-64.5189 -40.6468 57.4926 +-66.3584 -41.0802 58.1056 +-66.9081 -40.7025 57.5714 +-69.2574 -41.402 58.5608 +-69.8106 -41.0103 58.0068 +-72.1249 -41.6368 58.8929 +-72.0383 -40.8672 57.8044 +-74.5236 -41.5454 58.7637 +-75.2939 -41.2479 58.3428 +-77.0847 -41.4969 58.6951 +-77.5616 -41.029 58.0333 +-80.2596 -41.7183 59.0082 +-80.1383 -40.9299 57.893 +-82.5652 -41.4336 58.6055 +-83.5686 -41.2035 58.28 +-85.6438 -41.486 58.6796 +-86.1133 -40.9795 57.9632 +-89.0609 -41.634 58.889 +-88.9825 -40.8604 57.7947 +-92.2761 -41.619 58.8677 +-93.219 -41.2931 58.4068 +-96.8745 -42.1421 59.6076 +-97.1863 -41.5151 58.7208 +-100.075 -41.974 59.3699 +-101.357 -41.7365 59.0339 +-104.114 -42.0852 59.5271 +-105.406 -41.8207 59.153 +-107.692 -41.9337 59.3129 +-109.489 -41.8356 59.1741 +-112.717 -42.2572 59.7704 +-113.774 -41.8428 59.1843 +-117.031 -42.2164 59.7127 +-119.114 -42.138 59.6018 +-122.489 -42.4877 60.0965 +-124.333 -42.2793 59.8017 +-128.432 -42.8059 60.5465 +-118.629 -38.746 54.804 +-119.386 -38.2029 54.0358 +-119.695 -37.5173 53.0662 +-137.475 -42.1978 59.6864 +-138.551 -41.6369 58.8931 +-139.799 -41.1208 58.1631 +-138.715 -39.9256 56.4725 +-139.673 -39.3265 55.6251 +-139.179 -38.3231 54.2059 +-140.115 -37.7181 53.3502 +-140.407 -36.939 52.2482 +-140.686 -36.1598 51.146 +-117.659 -29.5337 41.7738 +-110.829 -27.1579 38.4133 +-109.849 -26.2672 37.1535 +-109.222 -25.475 36.0329 +-108.021 -24.5641 34.7445 +-107.922 -23.9155 33.8271 +-107.343 -23.1687 32.7709 +-107.313 -22.5481 31.893 +-105.953 -21.6598 30.6365 +-103.629 -20.599 29.1361 +-70.176 -13.555 19.1728 +-53.1641 -9.97207 14.1049 +-43.2987 -7.88113 11.1474 +-39.9735 -7.05509 9.97903 +-21.1899 -3.62348 5.12521 +-17.8795 -2.95967 4.18628 +-16.5744 -2.6535 3.75323 +-16.8071 -2.59979 3.67725 +-16.749 -2.50056 3.5369 +-15.7188 -2.26247 3.20013 +-15.7524 -2.18319 3.088 +-16.5643 -2.20765 3.12259 +-16.4994 -2.11162 2.98677 +-15.2591 -1.87239 2.64838 +-14.7969 -1.7379 2.45816 +-13.9391 -1.56416 2.21241 +-3221.44 -344.674 487.522 +-3226.53 -328.433 464.55 +-3231.37 -312.165 441.54 +-3235.96 -295.875 418.498 +-3240.31 -279.562 395.425 +-3244.42 -263.228 372.321 +-12.9879 -0.987098 1.39619 +-13.1016 -0.928671 1.31355 +-12.4196 -0.816885 1.15544 +-13.7244 -0.832732 1.17785 +-13.5374 -0.752495 1.06436 +-13.6479 -0.689299 0.974974 +-13.5581 -0.615989 0.871282 +-13.9659 -0.563774 0.797426 +-14.8722 -0.525114 0.742744 +-13.2818 -0.401831 0.568368 +-13.7869 -0.347497 0.491515 +-14.1913 -0.286088 0.404656 +-14.3951 -0.217607 0.307793 +-14.4978 -0.146088 0.206634 +-13.9995 -0.0705278 0.0997576 +56 2.22045e-15 2.84217e-14 +56.4978 -0.280994 0.405142 +55.7915 -0.555004 0.800214 +48.3834 -0.722054 1.04107 +43.3736 -0.86321 1.24459 +41.5604 -1.03414 1.49104 +39.346 -1.17518 1.69439 +36.931 -1.28731 1.85607 +25.7372 -1.02568 1.47884 +27.9137 -1.25201 1.80517 +30.6828 -1.52987 2.20579 +34.8389 -1.91182 2.7565 +36.6979 -2.1982 3.1694 +38.4512 -2.49676 3.59986 +40.7936 -2.85459 4.11579 +45.8048 -3.43674 4.95515 +64.3674 -5.15555 7.43336 +119.275 -10.1591 14.6476 +120.597 -10.8856 15.6951 +120.327 -11.4756 16.5457 +120.344 -12.0934 17.4365 +120.252 -12.7018 18.3137 +119.857 -13.2777 19.144 +120.335 -13.9528 20.1174 +120.117 -14.5507 20.9795 +120.865 -15.2709 22.0178 +120.53 -15.8586 22.8651 +119.99 -16.4175 23.6711 +120.608 -17.1377 24.7095 +121.212 -17.8653 25.7585 +120.644 -18.4232 26.5629 +121.128 -19.1444 27.6027 +120.638 -19.7146 28.4249 +121.099 -20.4433 29.4755 +120.781 -21.0448 30.3427 +120.454 -21.6447 31.2077 +120.214 -22.2605 32.0956 +120.722 -23.0203 33.1911 +120.365 -23.6198 34.0555 +121.601 -24.541 35.3836 +120.751 -25.0473 36.1137 +120.924 -25.7667 37.1508 +121.085 -26.4896 38.1932 +120.861 -27.1326 39.1202 +120.719 -27.7967 40.0778 +121.49 -28.6796 41.3507 +121.691 -29.4386 42.445 +120.043 -29.7472 42.89 +117.482 -29.8099 42.9804 +113.836 -29.5659 42.6286 +110.932 -29.4806 42.5057 +108.852 -29.5895 42.6627 +105.339 -29.2804 42.2169 +103.544 -29.4217 42.4207 +100.149 -29.0817 41.9305 +98.9904 -29.3681 42.3434 +96.4179 -29.2172 42.1259 +96.4062 -29.8316 43.0117 +96.2082 -30.3928 43.8209 +96.4354 -31.0946 44.8327 +97.0814 -31.9435 46.0567 +96.5025 -32.3962 46.7093 +94.8884 -32.4933 46.8494 +95.1546 -33.2319 47.9144 +94.6422 -33.7039 48.5949 +94.6285 -34.3571 49.5366 +94.6859 -35.0436 50.5265 +94.9796 -35.8278 51.6571 +94.9248 -36.49 52.6119 +94.6097 -37.0575 53.4302 +95.0216 -37.919 54.6722 +94.5188 -38.4232 55.3991 +93.846 -38.8583 56.0265 +91.8005 -38.7134 55.8175 +91.1243 -39.1341 56.4242 +89.3316 -39.0654 56.3251 +87.8632 -39.1223 56.4071 +85.8521 -38.9191 56.1143 +85.2529 -39.3446 56.7277 +82.641 -38.8246 55.9779 +82.0434 -39.2341 56.5684 +80.1468 -39.0114 56.2473 +79.0936 -39.1842 56.4964 +77.6667 -39.1607 56.4625 +77.0641 -39.5454 57.0172 +74.6125 -38.9646 56.1798 +74.013 -39.3342 56.7127 +72.3924 -39.1516 56.4494 +71.7901 -39.5101 56.9664 +69.4706 -38.907 56.0968 +68.7308 -39.1704 56.4766 +66.8667 -38.7791 55.9123 +66.3399 -39.1512 56.4488 +65.0495 -39.0662 56.3263 +63.835 -39.0131 56.2497 +62.6272 -38.9509 56.16 +61.56 -38.9644 56.1795 +60.2984 -38.8423 56.0034 +59.767 -39.1836 56.4956 +58.3204 -38.9161 56.1098 +57.2724 -38.899 56.0853 +56.0385 -38.7426 55.8597 +55.3802 -38.9755 56.1955 +54.2833 -38.8926 56.0761 +53.7472 -39.206 56.5279 +51.9882 -38.6128 55.6726 +51.5154 -38.9609 56.1745 +50.2625 -38.7117 55.8152 +49.7854 -39.0524 56.3064 +48.5468 -38.7882 55.9254 +48.0083 -39.0748 56.3387 +46.8418 -38.8424 56.0036 +45.7979 -38.6959 55.7924 +45.0933 -38.8272 55.9816 +43.8979 -38.5241 55.5447 +43.575 -38.9813 56.2039 +43.1884 -39.3899 56.793 +42.2179 -39.263 56.6101 +41.203 -39.0807 56.3472 +40.0448 -38.744 55.8617 +39.6 -39.0897 56.3602 +38.4583 -38.7396 55.8553 +37.5243 -38.5804 55.6259 +36.8844 -38.7155 55.8207 +36.3371 -38.9478 56.1555 +35.2776 -38.6215 55.6851 +34.6395 -38.7447 55.8627 +33.6879 -38.5074 55.5207 +33.1847 -38.776 55.9079 +32.2453 -38.528 55.5503 +31.6118 -38.6353 55.705 +30.7702 -38.4799 55.4809 +30.1799 -38.6315 55.6995 +29.2283 -38.3097 55.2355 +28.9922 -38.9258 56.1238 +28.1272 -38.6998 55.7981 +27.4587 -38.7326 55.8453 +26.5713 -38.4435 55.4285 +25.8742 -38.4145 55.3867 +25.1449 -38.3283 55.2623 +24.7281 -38.7196 55.8266 +24.0007 -38.6262 55.6919 +23.2781 -38.5286 55.5511 +22.719 -38.6969 55.7939 +22.1565 -38.8627 56.0328 +21.2599 -38.4278 55.4059 +20.9338 -39.0226 56.2634 +20.0515 -38.5788 55.6235 +19.4876 -38.7318 55.8442 +18.68 -38.3879 55.3484 +18.2985 -38.9198 56.1152 +17.5767 -38.7334 55.8465 +17.0797 -39.0405 56.2893 +16.3178 -38.7361 55.8503 +15.6791 -38.7047 55.8051 +14.9993 -38.5586 55.5945 +14.533 -38.9662 56.1821 +13.7763 -38.5902 55.6401 +13.1849 -38.6573 55.7367 +12.6836 -39.0016 56.2331 +11.9991 -38.7825 55.9173 +11.4543 -39.0094 56.2443 +10.8253 -38.9523 56.162 +10.0806 -38.441 55.4249 +9.61686 -38.9976 56.2273 +8.94104 -38.7049 55.8054 +8.40898 -39.0307 56.2752 +7.73178 -38.6747 55.7618 +7.12884 -38.655 55.7334 +6.53668 -38.689 55.7824 +5.93531 -38.6633 55.7453 +5.30383 -38.4072 55.3761 +4.74344 -38.6596 55.74 +4.16351 -38.7954 55.9359 +3.54838 -38.587 55.6354 +2.97048 -38.774 55.905 +2.39411 -39.0721 56.3347 +1.75909 -38.2849 55.1998 +1.18676 -38.748 55.8675 +0.589041 -38.4675 55.4631 +2.33147e-15 -38.6399 55.7117 +-0.59515 -38.8664 56.0383 +-1.18851 -38.805 55.9497 +-1.78527 -38.8546 56.0212 +-2.38364 -38.9012 56.0884 +-2.9792 -38.8879 56.0692 +-3.60595 -39.213 56.538 +-4.17572 -38.9092 56.0999 +-4.80622 -39.1712 56.4777 +-5.34306 -38.6913 55.7857 +-6.04861 -39.4013 56.8094 +-6.5846 -38.9726 56.1913 +-7.24382 -39.2785 56.6323 +-7.77706 -38.9012 56.0884 +-8.45773 -39.257 56.6014 +-9.16294 -39.6654 57.1903 +-9.74212 -39.5055 56.9597 +-10.1545 -38.7228 55.8312 +-10.8409 -39.0086 56.2432 +-11.3223 -38.5597 55.596 +-12.0165 -38.8387 55.9982 +-12.4831 -38.3852 55.3444 +-13.3948 -39.2727 56.624 +-13.8162 -38.702 55.8011 +-14.6162 -39.1892 56.5037 +-15.2157 -39.115 56.3967 +-15.7691 -38.9268 56.1253 +-16.4346 -39.0131 56.2498 +-16.9829 -38.8194 55.9704 +-17.5767 -38.7334 55.8465 +-18.402 -39.1399 56.4326 +-19.0541 -39.1568 56.4569 +-19.8735 -39.4988 56.95 +-20.2219 -38.9067 56.0963 +-21.08 -39.2951 56.6563 +-21.6809 -39.1888 56.503 +-22.62 -39.6756 57.205 +-22.9411 -39.0752 56.3393 +-23.8316 -39.4447 56.872 +-24.4347 -39.3246 56.6989 +-25.3095 -39.6301 57.1393 +-25.9153 -39.5026 56.9555 +-26.8776 -39.9043 57.5347 +-27.5242 -39.8222 57.4163 +-28.058 -39.5781 57.0643 +-28.663 -39.437 56.8609 +-29.6956 -39.87 57.4853 +-29.9461 -39.2504 56.5919 +-30.9527 -39.6206 57.1257 +-31.5996 -39.517 56.9763 +-32.6684 -39.9266 57.5668 +-33.3216 -39.814 57.4045 +-34.2806 -40.0566 57.7542 +-34.848 -39.8336 57.4327 +-35.5929 -39.8111 57.4002 +-36.2011 -39.6325 57.1428 +-37.5577 -40.2561 58.0419 +-38.1727 -40.0678 57.7704 +-39.2696 -40.3749 58.2131 +-39.8863 -40.178 57.9293 +-40.85 -40.3236 58.1393 +-41.0599 -39.7261 57.2777 +-42.0786 -39.9112 57.5446 +-43.2106 -40.1863 57.9412 +-43.9303 -40.0665 57.7686 +-44.9182 -40.183 57.9365 +-46.022 -40.3883 58.2325 +-46.5835 -40.1103 57.8317 +-47.6432 -40.2551 58.0404 +-48.3145 -40.0636 57.7643 +-49.3849 -40.1952 57.9541 +-50.5792 -40.4121 58.2668 +-51.7251 -40.5739 58.5002 +-52.3444 -40.3151 58.127 +-53.8023 -40.6905 58.6682 +-54.6668 -40.6022 58.5409 +-55.7174 -40.6432 58.6 +-56.5866 -40.5429 58.4555 +-58.338 -41.0572 59.1969 +-58.9645 -40.7655 58.7763 +-60.4863 -41.0819 59.2326 +-61.1131 -40.7795 58.7966 +-62.1288 -40.7321 58.7282 +-62.9489 -40.5496 58.4651 +-64.7718 -40.9973 59.1106 +-65.7349 -40.8837 58.9469 +-67.3814 -41.1804 59.3746 +-68.629 -41.2158 59.4257 +-70.091 -41.3649 59.6406 +-70.8619 -41.096 59.2529 +-72.1249 -41.1048 59.2655 +-73.1082 -40.9442 59.034 +-75.3868 -41.4896 59.8204 +-76.4545 -41.3485 59.617 +-77.6698 -41.2776 59.5147 +-79.626 -41.5828 59.9548 +-80.9285 -41.5284 59.8764 +-81.9358 -41.3132 59.566 +-83.6973 -41.4649 59.7848 +-84.5571 -41.1582 59.3425 +-86.946 -41.5786 59.9488 +-88.0424 -41.3621 59.6366 +-89.7604 -41.4248 59.727 +-91.4086 -41.438 59.746 +-93.2217 -41.5082 59.8472 +-94.8057 -41.4593 59.7767 +-97.3537 -41.8094 60.2815 +-98.7136 -41.6287 60.0209 +-101.613 -42.0741 60.6631 +-102.986 -41.865 60.3617 +-104.524 -41.7109 60.1394 +-107.054 -41.9319 60.4581 +-109.184 -41.9715 60.5152 +-110.907 -41.8358 60.3195 +-113.975 -42.1827 60.8198 +-115.629 -41.9818 60.53 +-119.32 -42.4923 61.2661 +-120.478 -42.0759 60.6658 +-124.289 -42.5612 61.3655 +-128.038 -42.9828 61.9733 +-129.731 -42.6863 61.5458 +-117.585 -37.9141 54.6652 +-118.598 -37.466 54.0192 +-118.904 -36.7932 53.0491 +-138.093 -41.8459 60.3341 +-138.817 -41.1839 59.3796 +-138.73 -40.2849 58.0834 +-139.699 -39.6951 57.2331 +-139.493 -38.774 55.905 +-139.179 -37.8334 54.5488 +-140.478 -37.3325 53.8266 +-141.044 -36.6324 52.8172 +-140.686 -35.6977 51.4696 +-122.336 -30.3153 43.7091 +-111.657 -27.0113 38.9454 +-108.833 -25.6916 37.0426 +-109.13 -25.128 36.23 +-108.673 -24.3963 35.175 +-107.735 -23.5691 33.9823 +-107.53 -22.9126 33.0357 +-107.783 -22.3574 32.2353 +-104.916 -21.1737 30.5286 +-61.0805 -11.9862 17.2819 +-105.169 -20.0546 28.9151 +-61.4383 -11.3768 16.4033 +-45.3969 -8.15747 11.7616 +-41.1211 -7.16492 10.3305 +-37.6816 -6.36123 9.17173 +-36.0473 -5.89083 8.49349 +-18.7908 -2.96989 4.28204 +-16.5173 -2.52232 3.63672 +-16.6521 -2.45434 3.53871 +-16.5921 -2.35764 3.39929 +-17.1137 -2.34156 3.3761 +-16.272 -2.14097 3.08689 +-16.1089 -2.03529 2.93452 +-15.846 -1.91956 2.76765 +-14.9928 -1.73842 2.50648 +-14.5281 -1.60941 2.32047 +-3221.44 -340.27 490.607 +-3226.53 -324.236 467.489 +-3231.37 -308.176 444.334 +-3235.96 -292.094 421.146 +-3240.31 -275.99 397.926 +-3244.42 -259.864 374.676 +-12.7896 -0.95961 1.38358 +-13.1016 -0.916804 1.32186 +-14.1087 -0.916126 1.32089 +-12.8293 -0.768479 1.10801 +-13.9355 -0.764729 1.1026 +-14.5444 -0.725194 1.0456 +-13.1593 -0.590234 0.851009 +-14.8637 -0.592348 0.854057 +-14.0737 -0.49057 0.707312 +-14.58 -0.435472 0.62787 +-15.0856 -0.375373 0.54122 +-15.1907 -0.302322 0.435892 +-14.7949 -0.220794 0.318345 +-13.8979 -0.138253 0.199336 +-14.1995 -0.0706216 0.101823 +58.8 4.44089e-16 2.84217e-14 +59.0977 -0.290089 0.42642 +58.5911 -0.575247 0.845593 +51.1825 -0.75386 1.10815 +43.9732 -0.863722 1.26964 +42.6594 -1.04763 1.53999 +40.2448 -1.18633 1.74387 +37.2304 -1.28081 1.88275 +26.1362 -1.02799 1.5111 +27.1162 -1.20037 1.7645 +30.7824 -1.5148 2.22671 +34.4407 -1.86531 2.74194 +37.6924 -2.22831 3.27554 +39.9416 -2.55969 3.76265 +42.1832 -2.9133 4.28245 +46.2013 -3.42125 5.02912 +64.3674 -5.08827 7.47958 +118.583 -9.96832 14.6531 +119.807 -10.6732 15.6892 +120.327 -11.3258 16.6486 +120.344 -11.9356 17.5449 +120.154 -12.5258 18.4125 +119.759 -13.0936 19.2472 +120.433 -13.7819 20.2589 +120.117 -14.3608 21.1099 +120.768 -15.0594 22.1368 +120.627 -15.6643 23.0259 +120.768 -16.3083 23.9726 +120.608 -16.9141 24.8631 +120.341 -17.5054 25.7323 +120.644 -18.1828 26.7281 +120.357 -18.7743 27.5975 +120.831 -19.4883 28.6472 +120.428 -20.0647 29.4944 +120.686 -20.7537 30.5073 +120.454 -21.3622 31.4017 +121.069 -22.1265 32.5252 +120.627 -22.7021 33.3713 +121.121 -23.4581 34.4826 +121.412 -24.1831 35.5484 +121.032 -24.7782 36.423 +121.018 -25.4501 37.4108 +120.245 -25.9625 38.164 +120.861 -26.7785 39.3635 +120.627 -27.4129 40.2959 +121.583 -28.3268 41.6393 +121.691 -29.0544 42.7089 +119.951 -29.3366 43.1237 +116.568 -29.1921 42.9114 +113.108 -28.9935 42.6194 +110.841 -29.0721 42.735 +108.13 -29.0097 42.6432 +105.518 -28.9476 42.5519 +102.828 -28.8369 42.3893 +100.862 -28.9064 42.4915 +98.4582 -28.8291 42.3777 +95.7998 -28.6511 42.1161 +96.2305 -29.3886 43.2002 +96.9953 -30.2416 44.4541 +96.3484 -30.6611 45.0708 +97.0814 -31.5266 46.343 +95.6408 -31.6879 46.5801 +94.8884 -32.0692 47.1406 +95.0694 -32.7689 48.1691 +94.6422 -33.2641 48.897 +94.7129 -33.9389 49.889 +94.6859 -34.5863 50.8406 +94.8962 -35.3292 51.9326 +94.9248 -36.0138 52.939 +94.6921 -36.6058 53.8092 +94.5301 -37.2305 54.7275 +94.9259 -38.0851 55.9837 +94.0078 -38.4172 56.472 +93.167 -38.7769 57.0007 +91.7632 -38.8942 57.1731 +89.5696 -38.6583 56.8264 +88.0208 -38.6809 56.8596 +86.3217 -38.6213 56.772 +85.4861 -38.9373 57.2365 +83.7984 -38.8546 57.1149 +82.503 -38.939 57.239 +81.4395 -39.1233 57.5099 +79.5464 -38.8942 57.1731 +78.1161 -38.8732 57.1423 +77.51 -39.2552 57.7037 +75.7184 -39.0261 57.367 +74.4518 -39.051 57.4037 +73.4079 -39.1827 57.5972 +72.1498 -39.1899 57.6077 +69.8985 -38.6358 56.7932 +68.7308 -38.6592 56.8277 +67.4976 -38.634 56.7907 +66.8956 -38.9639 57.2755 +65.1183 -38.5971 56.7364 +64.517 -38.9153 57.2041 +63.2352 -38.8158 57.0579 +62.1622 -38.8321 57.0819 +60.3647 -38.3775 56.4135 +59.767 -38.6723 56.8469 +58.3854 -38.4509 56.5215 +57.8509 -38.7791 57.004 +56.6746 -38.671 56.8451 +55.5061 -38.5543 56.6735 +54.3455 -38.4291 56.4894 +53.7472 -38.6944 56.8794 +52.6579 -38.5998 56.7403 +51.9968 -38.8118 57.052 +50.3815 -38.2969 56.2951 +49.7854 -38.5427 56.6565 +48.6629 -38.3735 56.4078 +48.0657 -38.6109 56.7567 +46.9551 -38.4282 56.4881 +45.7979 -38.1909 56.1393 +45.314 -38.508 56.6054 +44.3336 -38.3988 56.4449 +43.8436 -38.7098 56.902 +43.1884 -38.8758 57.1461 +42.2179 -38.7506 56.9621 +41.2545 -38.6189 56.7684 +40.197 -38.3837 56.4227 +39.6 -38.5796 56.7106 +38.5075 -38.2829 56.2746 +37.9121 -38.4705 56.5503 +36.9798 -38.3091 56.313 +36.7596 -38.8865 57.1617 +35.2314 -38.0676 55.958 +34.6395 -38.2391 56.2101 +34.1341 -38.5083 56.6059 +33.097 -38.1689 56.1069 +32.4175 -38.2283 56.1943 +31.4428 -37.9272 55.7516 +30.8946 -38.1312 56.0516 +30.2612 -38.2301 56.1968 +29.6669 -38.3771 56.413 +28.7969 -38.1588 56.0922 +28.242 -38.3507 56.3742 +27.5336 -38.3314 56.3458 +26.7179 -38.1511 56.0808 +26.3042 -38.5434 56.6574 +25.5301 -38.4076 56.4578 +24.8649 -38.4257 56.4845 +24.3345 -38.6524 56.8176 +23.3758 -38.1853 56.131 +22.7825 -38.2986 56.2975 +22.2183 -38.4625 56.5385 +21.4403 -38.2482 56.2235 +20.9923 -38.6209 56.7714 +20.1935 -38.345 56.3658 +19.5703 -38.3886 56.4298 +18.8403 -38.2121 56.1705 +18.2209 -38.2488 56.2245 +17.7019 -38.5002 56.5939 +17.1281 -38.6402 56.7997 +16.5046 -38.6681 56.8408 +15.7916 -38.4736 56.5548 +15.1291 -38.3849 56.4245 +14.6786 -38.8428 57.0976 +13.876 -38.3622 56.3911 +13.2803 -38.4289 56.4891 +12.72 -38.6032 56.7453 +12.1206 -38.6642 56.835 +11.4873 -38.6112 56.7572 +10.9035 -38.7217 56.9196 +10.1988 -38.3843 56.4236 +9.70037 -38.8228 57.0682 +8.99325 -38.4229 56.4803 +8.50648 -38.968 57.2815 +7.7997 -38.5053 56.6014 +7.20201 -38.5421 56.6556 +6.59419 -38.52 56.6231 +6.00503 -38.6069 56.7508 +5.39014 -38.5228 56.6271 +4.79227 -38.5478 56.6639 +4.18793 -38.5137 56.6137 +3.59025 -38.5328 56.6418 +2.95303 -38.0432 55.9222 +2.39062 -38.506 56.6024 +1.79836 -38.6287 56.7828 +1.19898 -38.636 56.7935 +0.591659 -38.1342 56.0559 +3.55271e-15 -38.5857 56.7195 +-0.599513 -38.6404 56.8001 +-1.19549 -38.5236 56.6283 +-1.80097 -38.6849 56.8654 +-2.40109 -38.6746 56.8503 +-3.00538 -38.7175 56.9134 +-3.60595 -38.7013 56.8895 +-4.20624 -38.6821 56.8613 +-4.79227 -38.5478 56.6639 +-5.45291 -38.9714 57.2866 +-6.05732 -38.9431 57.245 +-6.64211 -38.8 57.0346 +-7.25428 -38.8218 57.0666 +-7.84498 -38.7288 56.93 +-8.55523 -39.1913 57.6098 +-9.16294 -39.1478 57.5459 +-9.74212 -38.99 57.3139 +-10.258 -38.6069 56.7507 +-10.9817 -38.9995 57.3278 +-11.4543 -38.5003 56.594 +-12.1901 -38.8857 57.1607 +-12.8112 -38.8797 57.1518 +-13.3948 -38.7601 56.976 +-13.9757 -38.6378 56.7962 +-14.6162 -38.6778 56.855 +-15.1941 -38.5497 56.6666 +-15.7916 -38.4736 56.5548 +-16.6213 -38.9415 57.2427 +-17.2006 -38.8039 57.0404 +-17.802 -38.718 56.9141 +-18.6609 -39.1725 57.5822 +-19.2679 -39.0794 57.4453 +-19.8735 -38.9833 57.3041 +-20.4775 -38.8843 57.1585 +-21.1385 -38.8898 57.1667 +-21.9816 -39.2138 57.6429 +-22.62 -39.1579 57.5607 +-23.195 -38.992 57.3169 +-23.8316 -38.9299 57.2256 +-24.6683 -39.1826 57.597 +-25.3437 -39.1657 57.5722 +-25.9504 -39.0398 57.3871 +-26.8776 -39.3835 57.8924 +-27.5242 -39.3025 57.7732 +-28.0955 -39.1137 57.4958 +-29.0074 -39.39 57.902 +-29.6565 -39.2979 57.7665 +-30.3049 -39.2025 57.6262 +-30.912 -39.0522 57.4054 +-32.0558 -39.5644 58.1582 +-33.091 -39.9153 58.6741 +-33.2785 -39.2436 57.6868 +-34.2806 -39.5338 58.1133 +-35.3389 -39.8674 58.6037 +-35.7291 -39.4419 57.9781 +-36.6167 -39.5644 58.1582 +-37.5577 -39.7307 58.4028 +-38.6021 -39.9898 58.7835 +-39.2211 -39.7987 58.5027 +-39.7878 -39.5558 58.1456 +-40.85 -39.7974 58.5008 +-41.5166 -39.6438 58.275 +-42.5936 -39.8724 58.6111 +-43.2106 -39.6618 58.3015 +-44.3013 -39.8775 58.6186 +-44.9182 -39.6586 58.2967 +-46.022 -39.8612 58.5945 +-46.5835 -39.5869 58.1913 +-47.6992 -39.7764 58.4698 +-48.7676 -39.9116 58.6686 +-49.9585 -40.1314 58.9917 +-50.5792 -39.8847 58.6291 +-52.2541 -40.454 59.4659 +-52.6418 -40.0151 58.8207 +-54.043 -40.3392 59.2971 +-54.6668 -40.0723 58.9049 +-56.5177 -40.689 59.8113 +-57.1468 -40.41 59.4012 +-58.338 -40.5213 59.565 +-59.2825 -40.4505 59.4608 +-59.715 -40.0287 58.8407 +-60.9182 -40.119 58.9735 +-62.0632 -40.158 59.0309 +-63.8103 -40.568 59.6336 +-65.1064 -40.6713 59.7854 +-66.4105 -40.7649 59.923 +-67.586 -40.7665 59.9253 +-68.629 -40.6779 59.7951 +-70.5078 -41.0678 60.3683 +-71.7731 -41.0812 60.388 +-73.1148 -41.1251 60.4525 +-74.5347 -41.1983 60.5601 +-75.8184 -41.1826 60.537 +-77.2524 -41.2348 60.6137 +-78.9862 -41.4294 60.8998 +-79.626 -41.0401 60.3275 +-80.7055 -40.8736 60.0827 +-82.3851 -40.9977 60.2651 +-83.6973 -40.9238 60.1565 +-85.2415 -40.9498 60.1947 +-86.946 -41.036 60.3215 +-88.1967 -40.8939 60.1126 +-89.7604 -40.8842 60.0983 +-91.6434 -41.0023 60.272 +-93.9309 -41.2781 60.6774 +-95.2817 -41.1236 60.4503 +-97.8328 -41.4668 60.9547 +-99.4371 -41.3865 60.8368 +-101.613 -41.525 61.0403 +-103.474 -41.5146 61.025 +-105.343 -41.4891 60.9875 +-107.796 -41.6713 61.2554 +-109.184 -41.4237 60.8914 +-111.657 -41.5692 61.1053 +-113.556 -41.4791 60.9728 +-115.882 -41.5246 61.0397 +-119.066 -41.8484 61.5157 +-121.586 -41.9089 61.6046 +-124.546 -42.0927 61.8747 +-128.814 -42.6788 62.7363 +-131.116 -42.5792 62.5899 +-117.324 -37.3362 54.8829 +-118.598 -36.9771 54.355 +-118.465 -36.1788 53.1816 +-138.093 -41.2998 60.7093 +-139.261 -40.7762 59.9396 +-138.73 -39.7591 58.4445 +-138.983 -38.9763 57.2938 +-139.223 -38.194 56.1438 +-139.901 -37.5334 55.1727 +-140.931 -36.9641 54.3359 +-141.044 -36.1544 53.1456 +-140.503 -35.1861 51.7224 +-125.27 -30.6374 45.0359 +-111.381 -26.5929 39.0906 +-109.572 -25.5286 37.5261 +-109.037 -24.779 36.4243 +-107.928 -23.913 35.1513 +-107.735 -23.2615 34.1935 +-107.53 -22.6136 33.2411 +-107.783 -22.0657 32.4357 +-107.932 -21.4982 31.6016 +-56.0693 -10.8592 15.9627 +-104.79 -19.7215 28.99 +-61.4383 -11.2284 16.5053 +-47.6858 -8.45695 12.4314 +-41.6949 -7.17007 10.5397 +-38.9281 -6.48588 9.53401 +-37.4892 -6.04653 8.88818 +-20.3326 -3.17163 4.66219 +-17.3867 -2.62042 3.85192 +-17.1362 -2.49273 3.66422 +-16.5921 -2.32687 3.42042 +-16.6275 -2.24535 3.30058 +-16.6617 -2.16364 3.18048 +-16.8899 -2.10613 3.09594 +-17.1176 -2.04653 3.00833 +-14.9928 -1.71573 2.52206 +-15.2152 -1.66354 2.44534 +-3221.44 -335.829 493.657 +-3226.53 -320.004 470.395 +-3231.37 -304.155 447.096 +-3235.96 -288.282 423.764 +-3240.31 -272.388 400.4 +-3244.42 -256.473 377.006 +-13.0871 -0.969113 1.42456 +-13.3001 -0.918547 1.35023 +-14.0094 -0.897803 1.31974 +-12.8293 -0.75845 1.11489 +-11.9448 -0.646928 0.950962 +-13.0502 -0.642198 0.944008 +-13.4584 -0.595771 0.875763 +-13.9659 -0.549306 0.807461 +-13.6744 -0.470433 0.69152 +-14.2804 -0.420957 0.618792 +-15.0856 -0.370475 0.544585 +-13.8915 -0.272857 0.401091 +-14.1951 -0.209079 0.307338 +-14.1978 -0.139394 0.204905 +-14.3995 -0.0706815 0.103899 +59.5 3.10862e-15 2.84217e-14 +59.9977 -0.290588 0.435554 +57.4912 -0.556938 0.834777 +49.9829 -0.726398 1.08878 +46.0719 -0.892906 1.33835 +43.8582 -1.06274 1.59292 +40.4445 -1.17636 1.76321 +38.3284 -1.30104 1.95009 +28.0315 -1.08787 1.63057 +27.5149 -1.20181 1.80136 +32.4759 -1.57688 2.36354 +35.3366 -1.88836 2.83041 +38.5874 -2.25087 3.37376 +38.948 -2.46281 3.69142 +43.3743 -2.9557 4.43021 +47.1928 -3.44818 5.16837 +65.2587 -5.09009 7.62939 +118.682 -9.84391 14.7547 +119.807 -10.5312 15.7849 +120.327 -11.1752 16.7501 +120.344 -11.7768 17.6518 +120.154 -12.3592 18.5248 +119.759 -12.9194 19.3646 +120.531 -13.6096 20.3991 +120.214 -14.1813 21.2559 +120.768 -14.8591 22.2718 +120.53 -15.4434 23.1476 +120.866 -16.1043 24.1383 +120.608 -16.689 25.0147 +120.244 -17.2586 25.8684 +120.644 -17.9409 26.891 +120.357 -18.5245 27.7658 +120.638 -19.1985 28.776 +121.195 -19.9238 29.8633 +120.877 -20.5101 30.742 +121.313 -21.2282 31.8184 +120.974 -21.815 32.6978 +121.765 -22.6113 33.8914 +120.365 -23.0014 34.4762 +121.412 -23.8614 35.7651 +121.032 -24.4485 36.6451 +121.018 -25.1115 37.6389 +120.245 -25.6171 38.3967 +120.861 -26.4222 39.6035 +120.719 -27.069 40.5728 +120.751 -27.7587 41.6068 +121.691 -28.6678 42.9693 +119.218 -28.7692 43.1213 +116.386 -28.7586 43.1053 +113.017 -28.5847 42.8447 +110.841 -28.6853 42.9955 +107.317 -28.4087 42.5809 +105.518 -28.5624 42.8114 +102.828 -28.4533 42.6477 +100.238 -28.3455 42.4862 +98.4582 -28.4455 42.6361 +95.7998 -28.2699 42.3729 +97.2851 -29.3154 43.9399 +97.0828 -29.8662 44.7655 +97.1317 -30.4992 45.7143 +97.3413 -31.1904 46.7504 +96.3301 -31.4917 47.2019 +94.8884 -31.6426 47.4281 +95.1546 -32.3619 48.5063 +95.3206 -33.0568 49.5478 +94.7129 -33.4874 50.1932 +95.4407 -34.3982 51.5584 +94.8962 -34.8591 52.2493 +95.0906 -35.5967 53.3548 +94.7745 -36.1502 54.1844 +94.7759 -36.8307 55.2044 +95.1701 -37.675 56.47 +94.655 -38.1671 57.2076 +92.9259 -38.1619 57.1998 +92.2424 -38.5771 57.8221 +90.0456 -38.3467 57.4767 +89.4392 -38.7813 58.1282 +87.026 -38.4184 57.5842 +86.1855 -38.7336 58.0567 +84.1842 -38.5141 57.7277 +82.5796 -38.4566 57.6415 +81.2114 -38.4947 57.6985 +80.603 -38.8865 58.2858 +78.7901 -38.687 57.9868 +77.6586 -38.8071 58.1669 +76.4557 -38.8819 58.2788 +75.622 -39.1371 58.6614 +73.1903 -38.5468 57.7766 +72.3656 -38.7841 58.1323 +70.6118 -38.5107 57.7226 +69.2965 -38.4588 57.6448 +68.1985 -38.5159 57.7303 +66.8956 -38.4455 57.6248 +65.7379 -38.446 57.6255 +65.0626 -38.7222 58.0396 +63.3028 -38.3403 57.4671 +62.6975 -38.6454 57.9245 +60.961 -38.2409 57.3182 +60.3574 -38.5348 57.7586 +58.3854 -37.9394 56.8662 +57.8509 -38.2632 57.3516 +56.611 -38.1137 57.1275 +56.0095 -38.3864 57.5362 +54.3455 -37.9178 56.8339 +54.3013 -38.5732 57.8162 +52.597 -38.0422 57.0202 +51.9366 -38.2511 57.3334 +50.9168 -38.1889 57.2402 +50.1969 -38.3443 57.4731 +48.6629 -37.863 56.7517 +47.8936 -37.9608 56.8984 +46.9551 -37.9169 56.8326 +46.3571 -38.1429 57.1712 +45.2036 -37.9031 56.8119 +44.3336 -37.8879 56.7891 +43.8436 -38.1948 57.249 +43.1884 -38.3586 57.4946 +42.2179 -38.2351 57.3094 +41.1515 -38.01 56.972 +40.6538 -38.3034 57.4119 +40 -38.4508 57.6327 +38.9507 -38.2083 57.2693 +38.3969 -38.4441 57.6227 +37.3615 -38.1896 57.2413 +36.7127 -38.3201 57.4368 +35.7393 -38.1026 57.1108 +34.9119 -38.027 56.9975 +34.0003 -37.847 56.7277 +33.4039 -38.0102 56.9723 +32.4175 -37.7197 56.5369 +31.8232 -37.8753 56.7701 +31.2679 -38.0784 57.0746 +30.5866 -38.127 57.1474 +30.0258 -38.3246 57.4436 +28.9922 -37.9066 56.8171 +28.1655 -37.7379 56.5642 +27.4961 -37.77 56.6123 +26.9745 -38.005 56.9645 +26.3042 -38.0306 57.0029 +25.4601 -37.7926 56.6462 +25.0701 -38.2274 57.2979 +24.2344 -37.9812 56.9288 +23.6362 -38.097 57.1025 +22.7507 -37.7364 56.562 +22.4346 -38.3202 57.437 +21.6809 -38.1628 57.201 +20.9631 -38.054 57.038 +20.1367 -37.7284 56.5499 +19.7908 -38.3046 57.4136 +18.7869 -37.5968 56.3527 +18.3762 -38.0616 57.0494 +17.7269 -38.0417 57.0196 +17.0797 -38.0184 56.9846 +16.4346 -37.9917 56.9446 +15.9265 -38.2862 57.386 +15.3023 -38.3077 57.4182 +14.637 -38.2175 57.283 +13.8561 -37.7975 56.6535 +13.433 -38.3534 57.4868 +12.6836 -37.9804 56.9277 +12.0859 -38.0404 57.0177 +11.4873 -38.0975 57.1033 +10.8878 -38.1517 57.1844 +10.2875 -38.203 57.2613 +9.68645 -38.2514 57.3338 +9.08462 -38.2968 57.402 +8.38461 -37.8987 56.8052 +7.78838 -37.9378 56.8639 +7.19156 -37.9741 56.9183 +6.60377 -38.0627 57.0511 +6.07476 -38.5356 57.7598 +5.39014 -38.0102 56.9724 +4.77832 -37.9242 56.8434 +4.23677 -38.4445 57.6233 +3.63212 -38.4635 57.6518 +2.98793 -37.9806 56.928 +2.39062 -37.9936 56.9475 +1.7748 -37.6154 56.3806 +1.19724 -38.0665 57.0568 +0.599513 -38.1263 57.1464 +2.77556e-15 -38.5163 57.7309 +-0.599513 -38.1263 57.1464 +-1.19724 -38.0665 57.0568 +-1.82192 -38.614 57.8774 +-2.43249 -38.6592 57.9451 +-2.99665 -38.0915 57.0942 +-3.59548 -38.0755 57.0702 +-4.20014 -38.1121 57.1251 +-4.85505 -38.5332 57.7563 +-5.39014 -38.0102 56.9724 +-6.05732 -38.425 57.5941 +-6.6517 -38.339 57.4651 +-7.25428 -38.3053 57.4146 +-7.8563 -38.2687 57.3598 +-8.54304 -38.6148 57.8785 +-9.16294 -38.6269 57.8968 +-9.74212 -38.4712 57.6633 +-10.258 -38.0932 57.0968 +-10.9973 -38.5354 57.7596 +-11.4213 -37.8786 56.7751 +-12.1901 -38.3684 57.5092 +-12.6107 -37.7622 56.6006 +-13.3948 -38.2444 57.3235 +-13.9956 -38.1781 57.224 +-14.5954 -38.1089 57.1203 +-15.1941 -38.0368 57.0122 +-15.8141 -38.0158 56.9807 +-16.598 -38.3695 57.5109 +-17.1765 -38.2338 57.3075 +-18.0524 -38.7402 58.0665 +-18.4279 -38.1688 57.2101 +-19.2946 -38.6129 57.8757 +-19.8735 -38.4647 57.6535 +-20.4775 -38.3669 57.507 +-21.3431 -38.7439 58.0721 +-21.9816 -38.692 57.9943 +-22.62 -38.6369 57.9117 +-23.2267 -38.5259 57.7453 +-23.799 -38.3594 57.4958 +-24.7351 -38.7659 58.105 +-25.6857 -39.1661 58.7049 +-25.9153 -38.4684 57.6591 +-26.9134 -38.9114 58.3231 +-27.4876 -38.7279 58.0481 +-28.058 -38.5419 57.7692 +-29.0457 -38.9173 58.3319 +-30.0082 -39.2349 58.808 +-30.6638 -39.1389 58.6642 +-31.278 -38.9889 58.4393 +-31.8899 -38.836 58.21 +-33.0487 -39.3339 58.9565 +-33.3216 -38.7716 58.1136 +-34.6313 -39.4069 59.0658 +-35.4281 -39.4363 59.1099 +-35.7291 -38.9171 58.3317 +-36.9861 -39.4318 59.1031 +-37.9333 -39.5942 59.3465 +-38.5544 -39.4089 59.0689 +-39.1726 -39.2207 58.7868 +-39.8371 -39.0778 58.5726 +-40.85 -39.2679 58.8575 +-41.5674 -39.1642 58.702 +-42.5936 -39.3419 58.9684 +-43.2106 -39.1341 58.657 +-44.2483 -39.2999 58.9055 +-44.9182 -39.1309 58.6522 +-46.022 -39.3308 58.9518 +-47.0802 -39.4767 59.1704 +-48.1465 -39.6152 59.3781 +-48.8242 -39.4263 59.0949 +-49.9585 -39.5975 59.3514 +-51.1019 -39.7607 59.5961 +-52.019 -39.7361 59.5593 +-52.8797 -39.6612 59.4469 +-54.043 -39.8025 59.6587 +-55.3364 -40.0235 59.9901 +-56.5177 -40.1476 60.1761 +-57.1468 -39.8723 59.7635 +-58.6527 -40.1979 60.2514 +-59.5369 -40.0836 60.0801 +-60.2935 -39.8788 59.7731 +-61.5027 -39.965 59.9024 +-62.7192 -40.0426 60.0187 +-63.8103 -40.0283 59.9972 +-65.7755 -40.5426 60.7681 +-66.4105 -40.2225 60.2884 +-67.9952 -40.4676 60.6557 +-68.8355 -40.2575 60.3408 +-70.7162 -40.6412 60.9159 +-71.9834 -40.6534 60.9342 +-73.7512 -40.9311 61.3505 +-74.7486 -40.7669 61.1043 +-75.8184 -40.6347 60.9061 +-77.2524 -40.6862 60.9833 +-78.9862 -40.8782 61.2711 +-80.0683 -40.7191 61.0326 +-81.9689 -40.9611 61.3953 +-82.3851 -40.4522 60.6326 +-84.6029 -40.8163 61.1783 +-85.2415 -40.405 60.5618 +-87.8653 -40.9181 61.3309 +-88.5053 -40.491 60.6908 +-90.3044 -40.5847 60.8312 +-92.113 -40.6641 60.9502 +-94.1673 -40.8314 61.201 +-95.9958 -40.8806 61.2747 +-98.5516 -41.2157 61.777 +-100.241 -41.166 61.7025 +-102.341 -41.2661 61.8526 +-103.474 -40.9623 61.3971 +-105.671 -41.0645 61.5503 +-107.466 -40.9912 61.4405 +-109.682 -41.0588 61.5418 +-112.408 -41.2918 61.8911 +-114.982 -41.4411 62.1148 +-117.4 -41.5088 62.2164 +-119.829 -41.5563 62.2875 +-121.586 -41.3513 61.9803 +-126.518 -42.1901 63.2375 +-128.814 -42.1109 63.1188 +-132.155 -42.3457 63.4707 +-118.02 -37.0581 55.5453 +-118.511 -36.4582 54.6461 +-118.025 -35.5651 53.3074 +-138.358 -40.8285 61.1966 +-138.728 -40.08 60.0747 +-139.532 -39.4569 59.1408 +-138.804 -38.4082 57.5689 +-139.133 -37.6615 56.4498 +-139.901 -37.034 55.5092 +-141.384 -36.5896 54.843 +-141.044 -35.6733 53.4697 +-141.051 -34.8534 52.2407 +-126.463 -30.5175 45.7418 +-111.381 -26.2391 39.329 +-110.311 -25.3588 38.0096 +-109.037 -24.4493 36.6464 +-107.928 -23.5949 35.3657 +-107.642 -22.9321 34.3722 +-107.436 -22.2933 33.4147 +-107.783 -21.7721 32.6335 +-106.896 -21.0084 31.4889 +-57.7712 -11.04 16.5475 +-103.272 -19.1774 28.7444 +-70.8537 -12.7769 19.1509 +-47.7812 -8.36114 12.5323 +-43.5119 -7.38297 11.0661 +-38.3528 -6.30501 9.4504 +-38.066 -6.05782 9.07989 +-34.0162 -5.2355 7.84733 +-17.0969 -2.54246 3.81082 +-16.8458 -2.41787 3.62408 +-16.5921 -2.29591 3.44128 +-16.822 -2.24138 3.35954 +-16.1745 -2.07244 3.10631 +-16.3041 -2.00603 3.00678 +-14.9657 -1.76545 2.64618 +-15.3848 -1.73716 2.60378 +-15.6079 -1.68376 2.52374 +-3221.44 -331.361 496.667 +-3226.53 -315.747 473.264 +-3231.37 -300.108 449.823 +-3235.96 -284.447 426.348 +-3240.31 -268.764 402.842 +-3244.42 -253.06 379.304 +-3248.27 -237.337 355.738 +-3251.88 -221.597 332.145 +-14.0094 -0.885858 1.32779 +-13.7244 -0.800567 1.19995 +-11.9448 -0.638321 0.956761 +-14.4448 -0.701374 1.05127 +-13.0596 -0.570424 0.854991 +-14.8637 -0.57684 0.864608 +-14.5728 -0.494667 0.741442 +-15.279 -0.444402 0.666101 +-14.4862 -0.35102 0.526134 +-14.791 -0.286659 0.429665 +-15.0948 -0.219372 0.32881 +-14.1978 -0.13754 0.206154 +-14.0995 -0.0682881 0.102355 +64.3 2.66454e-15 2.84217e-14 +64.5975 -0.308622 0.47175 +65.59 -0.626777 0.958071 +53.7816 -0.771 1.17853 +48.0707 -0.919006 1.40476 +44.1579 -1.05549 1.61339 +43.1408 -1.23776 1.892 +38.1287 -1.27671 1.95153 +29.1289 -1.11512 1.70453 +28.5118 -1.22846 1.87779 +32.8744 -1.57457 2.40684 +36.2324 -1.90998 2.91953 +42.2672 -2.43207 3.71759 +42.1274 -2.62771 4.01664 +45.2601 -3.04237 4.65047 +49.1757 -3.54432 5.41773 +70.7051 -5.4401 8.31556 +118.682 -9.71037 14.843 +120.597 -10.4568 15.984 +120.425 -11.0326 16.8641 +120.442 -11.6265 17.772 +120.154 -12.1915 18.6356 +120.74 -12.8486 19.64 +120.433 -13.4141 20.5043 +120.997 -14.08 21.5222 +119.889 -14.5509 22.242 +120.53 -15.2339 23.286 +120.866 -15.8858 24.2826 +120.705 -16.4759 25.1845 +120.244 -17.0245 26.0231 +120.548 -17.6833 27.0301 +120.261 -18.2585 27.9094 +120.734 -18.9532 28.9712 +120.524 -19.5447 29.8755 +120.877 -20.2319 30.9258 +121.313 -20.9403 32.0086 +120.974 -21.519 32.8933 +120.816 -22.1309 33.8286 +121.121 -22.832 34.9003 +121.412 -23.5377 35.979 +120.938 -24.0981 36.8356 +120.924 -24.7517 37.8346 +120.245 -25.2696 38.6263 +120.861 -26.0638 39.8403 +120.719 -26.7018 40.8154 +121.767 -27.6127 42.2078 +121.875 -28.3217 43.2916 +119.401 -28.4226 43.4458 +116.294 -28.3462 43.3291 +113.108 -28.2196 43.1356 +110.841 -28.2962 43.2526 +107.408 -28.0469 42.8715 +105.518 -28.175 43.0674 +102.828 -28.0673 42.9027 +100.238 -27.961 42.7402 +97.6599 -27.8321 42.5432 +95.7115 -27.8607 42.5869 +96.6699 -28.7349 43.9232 +96.8204 -29.3814 44.9114 +97.1317 -30.0854 45.9876 +97.5145 -30.8221 47.1136 +95.8993 -30.9255 47.2718 +94.8884 -31.2133 47.7117 +94.3873 -31.6655 48.4028 +94.6422 -32.3763 49.4894 +94.7972 -33.0625 50.5383 +94.7698 -33.693 51.5021 +94.9796 -34.4165 52.6079 +95.0077 -35.0832 53.6271 +94.8569 -35.6908 54.5559 +95.3493 -36.5509 55.8704 +94.9259 -37.0686 56.6618 +94.5741 -37.6172 57.5004 +94.3728 -38.2304 58.4378 +93.4404 -38.548 58.9233 +91.3943 -38.3931 58.6864 +90.306 -38.626 59.0425 +87.4956 -38.1017 58.241 +87.0403 -38.5872 58.9831 +85.1874 -38.4444 58.7648 +84.0351 -38.6036 59.0081 +81.9718 -38.328 58.587 +81.0558 -38.5745 58.9637 +79.9885 -38.7426 59.2207 +78.922 -38.9035 59.4666 +76.898 -38.5763 58.9666 +76.2802 -38.9422 59.5258 +74.4959 -38.7022 59.1589 +73.9481 -39.0947 59.7589 +70.6831 -38.0267 58.1264 +70.4278 -38.5565 58.9362 +69.39 -38.6572 59.0902 +68.0765 -38.5934 58.9927 +66.9081 -38.5995 59.002 +66.2902 -38.9177 59.4883 +63.8433 -38.1431 58.3043 +63.8351 -38.8128 59.328 +61.4911 -38.0502 58.1624 +60.8823 -38.3425 58.6091 +60.2688 -38.632 59.0516 +59.0722 -38.541 58.9125 +57.1198 -37.9346 57.9856 +57.2682 -38.7166 59.181 +55.4038 -38.1318 58.2871 +54.8554 -38.4382 58.7554 +53.6928 -38.3079 58.5563 +52.5385 -38.1695 58.3446 +51.2737 -37.9349 57.9861 +50.6083 -38.1342 58.2906 +49.4759 -37.9733 58.0448 +48.8687 -38.2083 58.404 +47.748 -38.0342 58.1378 +47.14 -38.2609 58.4844 +45.59 -37.7086 57.6401 +45.4229 -38.2922 58.5322 +43.8974 -37.7229 57.6619 +43.7183 -38.3026 58.5481 +42.5836 -38.0432 58.1516 +41.9756 -38.2451 58.4603 +40.9076 -38.0197 58.1157 +40.3 -38.2137 58.4122 +39.7386 -38.4524 58.7771 +38.6878 -38.2099 58.4064 +37.7433 -38.0564 58.1718 +37.0883 -38.187 58.3714 +36.0626 -37.9256 57.9719 +34.8665 -37.4624 57.2638 +33.911 -37.2356 56.9171 +33.7107 -37.839 57.8395 +33.1063 -37.9986 58.0834 +32.119 -37.7088 57.6404 +31.4752 -37.811 57.7967 +30.912 -38.0099 58.1008 +29.9859 -37.7545 57.7103 +29.3439 -37.8459 57.8501 +28.3951 -37.5295 57.3664 +28.2079 -38.222 58.425 +26.9012 -37.3875 57.1494 +26.5909 -37.9236 57.9687 +25.6702 -37.5876 57.4552 +25.0359 -37.6574 57.5619 +24.5014 -37.8788 57.9003 +23.8967 -37.9944 58.077 +23.0046 -37.6399 57.5351 +22.4655 -37.8524 57.86 +21.8312 -37.9061 57.9421 +21.1969 -37.9566 58.0193 +20.3071 -37.5315 57.3695 +19.9837 -38.1534 58.32 +18.9472 -37.4033 57.1735 +18.5314 -37.8626 57.8755 +17.8521 -37.7906 57.7655 +17.37 -38.1401 58.2997 +16.598 -37.849 57.8547 +16.0615 -38.0869 58.2183 +15.259 -37.6811 57.5982 +14.8033 -38.1274 58.2804 +14.0355 -37.7675 57.7302 +13.6047 -38.3168 58.5698 +12.8476 -37.9497 58.0087 +12.2596 -38.0635 58.1827 +11.6524 -38.1207 58.2701 +11.0443 -38.1749 58.3529 +10.2875 -37.6848 57.6037 +9.82562 -38.2746 58.5053 +9.08462 -37.7773 57.7452 +8.48211 -37.8193 57.8093 +7.87894 -37.8584 57.8691 +7.26473 -37.8401 57.8412 +6.69003 -38.0369 58.1419 +5.9876 -37.4675 57.2716 +5.39014 -37.4946 57.3131 +4.91086 -38.4474 58.7694 +4.23677 -37.923 57.9678 +3.63735 -37.9964 58.0801 +3.02282 -37.9029 57.9372 +2.42203 -37.9706 58.0407 +1.79312 -37.4882 57.3033 +1.21469 -38.0975 58.2346 +0.605622 -37.9924 58.0739 +2.33147e-15 -38.1033 58.2435 +-0.606494 -38.0471 58.1576 +-1.2112 -37.988 58.0672 +-1.82192 -38.0902 58.2235 +-2.429 -38.0801 58.208 +-3.03155 -38.0124 58.1045 +-3.64258 -38.0511 58.1636 +-4.24898 -38.0322 58.1348 +-4.84807 -37.9559 58.0181 +-5.46075 -37.9858 58.0639 +-6.12705 -38.3401 58.6054 +-6.74754 -38.3638 58.6417 +-7.3379 -38.2212 58.4237 +-7.94687 -38.1847 58.3679 +-8.73803 -38.9604 59.5536 +-9.2021 -38.2658 58.4919 +-9.88129 -38.4914 58.8368 +-10.4058 -38.1179 58.2658 +-11.1381 -38.4993 58.8488 +-11.5863 -37.9047 57.9398 +-12.2075 -37.9018 57.9355 +-12.7929 -37.7882 57.7619 +-13.5856 -38.2631 58.4877 +-14.1751 -38.143 58.3042 +-14.7825 -38.0739 58.1985 +-15.3889 -38.0018 58.0883 +-16.219 -38.4603 58.7891 +-16.598 -37.849 57.8547 +-17.4184 -38.2463 58.4621 +-17.802 -37.6846 57.6035 +-18.9197 -38.6558 59.088 +-19.2679 -38.0364 58.1412 +-20.094 -38.3639 58.6418 +-20.7331 -38.3189 58.573 +-21.3724 -38.2708 58.4994 +-21.9515 -38.1149 58.2613 +-22.8673 -38.5293 58.8947 +-23.5123 -38.4705 58.8048 +-24.1246 -38.3567 58.6308 +-24.7351 -38.24 58.4524 +-25.6857 -38.6348 59.0559 +-26.3006 -38.5107 58.8661 +-27.236 -38.8435 59.3749 +-27.8174 -38.661 59.0959 +-28.7698 -38.9834 59.5888 +-29.3901 -38.8445 59.3764 +-30.0082 -38.7026 59.1596 +-31.1423 -39.2105 59.9359 +-31.8068 -39.1102 59.7826 +-32.4705 -39.0066 59.6242 +-33.5559 -39.3957 60.219 +-33.709 -38.6904 59.1409 +-35.1135 -39.4136 60.2463 +-35.3389 -38.8034 59.3136 +-36.4554 -39.1696 59.8734 +-36.9861 -38.8969 59.4565 +-37.9333 -39.0571 59.7014 +-38.5544 -38.8743 59.422 +-39.6574 -39.1675 59.8702 +-40.231 -38.9289 59.5055 +-41.4 -39.2567 60.0066 +-42.4302 -39.4348 60.2788 +-43.1087 -39.2775 60.0384 +-43.6286 -38.9768 59.5786 +-45.2021 -39.6025 60.5351 +-45.8854 -39.4312 60.2733 +-47.0568 -39.6696 60.6377 +-47.577 -39.352 60.1523 +-48.7057 -39.5317 60.4269 +-49.334 -39.2975 60.0689 +-50.4747 -39.4639 60.3233 +-51.1019 -39.2213 59.9524 +-52.7831 -39.7729 60.7955 +-53.4151 -39.5192 60.4077 +-55.2466 -40.1369 61.352 +-55.0929 -39.3069 60.0832 +-57.0718 -39.9913 61.1293 +-58.2674 -40.1027 61.2996 +-59.3449 -40.1206 61.3271 +-59.855 -39.7511 60.7622 +-61.3219 -40.0088 61.1561 +-61.9573 -39.7143 60.706 +-63.7689 -40.1605 61.3881 +-64.1416 -39.6903 60.6693 +-66.1101 -40.1961 61.4424 +-67.3563 -40.242 61.5126 +-68.609 -40.279 61.5692 +-69.5926 -40.1482 61.3693 +-71.4109 -40.4837 61.8821 +-73.1048 -40.7267 62.2535 +-73.7512 -40.3759 61.7173 +-75.3906 -40.5593 61.9976 +-76.3939 -40.3877 61.7353 +-77.6876 -40.3604 61.6935 +-79.425 -40.5477 61.9799 +-80.6581 -40.4626 61.8499 +-82.4148 -40.6252 62.0984 +-83.6584 -40.5202 61.9378 +-85.4331 -40.6577 62.148 +-85.9259 -40.1768 61.413 +-88.9378 -40.8557 62.4507 +-89.1226 -40.2203 61.4795 +-91.8587 -40.7233 62.2483 +-92.5825 -40.3169 61.6272 +-95.5857 -40.8842 62.4943 +-96.4718 -40.526 61.9468 +-99.5898 -41.0849 62.8011 +-100.964 -40.9006 62.5194 +-102.826 -40.8994 62.5176 +-105.021 -41.0107 62.6876 +-106.408 -40.79 62.3503 +-108.785 -40.9313 62.5662 +-110.511 -40.808 62.3777 +-112.575 -40.7921 62.3535 +-115.988 -41.2367 63.0331 +-117.653 -41.034 62.7233 +-122.119 -41.7759 63.8572 +-123.633 -41.4769 63.4003 +-128.575 -42.2945 64.65 +-129.848 -41.8731 64.0059 +-133.368 -42.1545 64.436 +-118.455 -36.6902 56.0834 +-119.123 -36.1495 55.2569 +-118.289 -35.161 53.746 +-133.413 -38.8354 59.3625 +-139.438 -39.7385 60.743 +-138.73 -38.698 59.1525 +-139.341 -38.0338 58.1372 +-139.223 -37.1746 56.8239 +-140.081 -36.5788 55.9131 +-140.75 -35.9313 54.9234 +-141.044 -35.1894 53.7894 +-140.047 -34.1357 52.1787 +-129.489 -30.8239 47.1164 +-111.841 -25.9901 39.7276 +-109.48 -24.8263 37.9486 +-108.759 -24.0562 36.7715 +-108.673 -23.4353 35.8225 +-107.548 -22.6014 34.5477 +-108.279 -22.1634 33.8783 +-107.595 -21.4393 32.7714 +-108.121 -20.961 32.0403 +-106.844 -20.1407 30.7864 +-64.7705 -11.8645 18.1357 +-67.7152 -12.0452 18.412 +-53.3128 -9.20255 14.0667 +-44.7551 -7.49091 11.4504 +-38.9281 -6.31277 9.6495 +-38.4505 -6.03603 9.22648 +-36.8107 -5.58876 8.54279 +-20.4776 -3.0039 4.59166 +-17.233 -2.4399 3.72956 +-17.1742 -2.34424 3.58333 +-17.5027 -2.30044 3.51638 +-16.7592 -2.11821 3.23783 +-16.4994 -2.00252 3.06099 +-16.6285 -1.935 2.95778 +-16.4627 -1.83365 2.80287 +-15.1171 -1.60869 2.45899 +-15.0438 -1.52643 2.33325 +-3226.53 -311.464 476.093 +-3231.37 -296.037 452.512 +-3235.96 -280.588 428.898 +-3240.31 -265.118 405.251 +-3244.42 -249.627 381.572 +-3248.27 -234.118 357.865 +-3251.88 -218.591 334.131 +-14.3074 -0.892433 1.36414 +-14.9178 -0.858381 1.31209 +-11.9448 -0.629662 0.962481 +-14.4448 -0.691859 1.05755 +-14.0565 -0.60564 0.925761 +-14.2652 -0.546102 0.834754 +-14.3731 -0.481272 0.735657 +-15.279 -0.438374 0.670084 +-14.1865 -0.339095 0.518329 +-14.1913 -0.271307 0.414711 +-14.1951 -0.203498 0.311061 +-15.0977 -0.144273 0.220531 +-14.3995 -0.068795 0.105158 +68.8 8.88178e-16 2.84217e-14 +74.5972 -0.351467 0.547971 +74.5886 -0.702907 1.0959 +55.9808 -0.791427 1.23391 +49.5698 -0.934557 1.45706 +45.157 -1.06444 1.65957 +45.8371 -1.29693 2.02204 +40.9235 -1.35133 2.10686 +30.3259 -1.14489 1.78499 +30.0072 -1.27501 1.98786 +34.2691 -1.61867 2.52366 +40.214 -2.09054 3.25935 +46.5436 -2.64109 4.11772 +43.0217 -2.64637 4.12594 +47.543 -3.15162 4.91367 +52.5466 -3.73488 5.82304 +82.2913 -6.24396 9.73494 +119.77 -9.66383 15.0668 +119.807 -10.2446 15.9724 +120.425 -10.88 16.9629 +119.556 -11.3813 17.7446 +120.055 -12.013 18.7295 +120.74 -12.6709 19.7551 +120.433 -13.2285 20.6245 +120.117 -13.7842 21.4909 +119.889 -14.3496 22.3724 +120.53 -15.0231 23.4225 +121.06 -15.6912 24.4642 +120.705 -16.248 25.3322 +120.438 -16.816 26.2178 +120.644 -17.4527 27.2104 +120.357 -18.0204 28.0956 +120.734 -18.691 29.141 +120.62 -19.2897 30.0745 +120.781 -19.9362 31.0824 +120.645 -20.537 32.0191 +120.974 -21.2214 33.0862 +120.816 -21.8247 34.0269 +121.121 -22.5162 35.1049 +120.658 -23.0679 35.9651 +120.938 -23.7648 37.0516 +121.018 -24.4282 38.0859 +120.432 -24.9587 38.9131 +120.861 -25.7032 40.0738 +120.719 -26.3324 41.0547 +121.213 -27.1067 42.262 +121.599 -27.8666 43.4468 +118.576 -27.8357 43.3985 +115.289 -27.7125 43.2065 +112.198 -27.6054 43.0394 +109.21 -27.4941 42.8659 +107.408 -27.6589 43.1229 +104.08 -27.4065 42.7294 +102.291 -27.5345 42.9289 +99.5254 -27.3781 42.6851 +96.8616 -27.2227 42.4428 +95.7998 -27.5006 42.8761 +97.0214 -28.4404 44.3413 +96.2956 -28.8179 44.9298 +96.1743 -29.3768 45.8013 +97.5145 -30.3957 47.3898 +95.8132 -30.4703 47.5062 +94.8027 -30.7537 47.948 +95.1546 -31.4813 49.0824 +94.727 -31.957 49.8241 +94.7972 -32.6052 50.8346 +94.9375 -33.2858 51.8957 +95.063 -33.9702 52.9628 +95.0906 -34.6281 53.9885 +95.0217 -35.2582 54.971 +95.0216 -35.9214 56.0049 +94.8445 -36.5244 56.9451 +94.9786 -37.2555 58.0849 +94.5336 -37.7658 58.8805 +94.4786 -38.4371 59.9272 +91.8703 -38.0592 59.3379 +91.0152 -38.3908 59.855 +88.9825 -38.2132 59.5781 +88.5946 -38.7329 60.3883 +86.422 -38.462 59.966 +85.414 -38.6942 60.328 +83.4165 -38.464 59.9691 +83.0181 -38.9618 60.7452 +81.1119 -38.7433 60.4046 +80.2596 -39.0156 60.8291 +77.709 -38.4439 59.9377 +77.8892 -39.2136 61.1377 +75.9467 -38.9101 60.6646 +75.6026 -39.4164 61.454 +72.3236 -38.371 59.8241 +71.0642 -38.3667 59.8174 +69.39 -38.1224 59.4366 +69.188 -38.6809 60.3073 +68.1471 -38.7705 60.4469 +66.8358 -38.6952 60.3296 +65.1945 -38.4116 59.8873 +64.5042 -38.6771 60.3014 +62.6839 -38.2517 59.6381 +62.1288 -38.5863 60.1598 +60.2038 -38.0565 59.3337 +60.1649 -38.7109 60.3541 +58.4556 -38.2847 59.6895 +57.394 -38.2649 59.6587 +56.0263 -38.0268 59.2875 +55.4095 -38.2894 59.6968 +54.2406 -38.1635 59.5005 +53.6217 -38.4175 59.8967 +51.8685 -37.8441 59.0027 +51.7839 -38.4802 59.9943 +49.9985 -37.8436 59.0018 +49.3849 -38.0777 59.3669 +48.7676 -38.309 59.7274 +47.6992 -38.1792 59.525 +46.5283 -37.9523 59.1713 +45.9131 -38.17 59.5107 +44.0586 -37.3376 58.2129 +43.9303 -37.9558 59.1768 +43.1061 -37.9772 59.2101 +42.6452 -38.3177 59.741 +41.2629 -37.8194 58.9641 +40.75 -38.1059 59.4107 +39.6893 -37.8735 59.0484 +39.512 -38.484 60.0003 +38.0773 -37.8621 59.0307 +37.8864 -38.4691 59.977 +36.4781 -37.832 58.9838 +35.9106 -38.0505 59.3244 +35.2942 -38.2183 59.586 +34.2806 -37.9464 59.1621 +33.6229 -38.0577 59.3356 +33.0487 -38.2636 59.6567 +31.8899 -37.7792 58.9014 +31.2374 -37.8787 59.0565 +30.2651 -37.5788 58.589 +29.6956 -37.7697 58.8866 +29.0839 -37.9081 59.1024 +28.4701 -38.0437 59.3138 +27.5609 -37.7745 58.8942 +26.9493 -37.9029 59.0943 +25.9854 -37.5228 58.5016 +25.6857 -38.1004 59.4021 +24.5014 -37.3548 58.2397 +24.1246 -37.8261 58.9745 +23.2902 -37.58 58.5908 +22.96 -38.1504 59.4801 +21.8012 -37.3303 58.2015 +21.4601 -37.8962 59.0839 +20.8467 -37.9959 59.2393 +20.2042 -38.0408 59.3092 +19.1343 -37.25 58.0764 +18.7644 -37.8081 58.9465 +17.9773 -37.5292 58.5117 +17.4184 -37.7173 58.8048 +16.9948 -38.2178 59.5853 +16.4214 -38.4017 59.8719 +15.6486 -38.1086 59.415 +15.0112 -38.1281 59.4454 +14.195 -37.6683 58.7285 +13.7955 -38.3167 59.7394 +13.0298 -37.9556 59.1764 +12.4158 -38.0155 59.2699 +11.6524 -37.5934 58.6117 +11.0756 -37.7534 58.8612 +10.4353 -37.6974 58.7739 +9.95088 -38.2263 59.5985 +9.2021 -37.7365 58.8348 +8.59179 -37.7784 58.9001 +7.87894 -37.3346 58.2083 +7.45288 -38.2831 59.6871 +6.76671 -37.9406 59.1531 +6.1532 -37.971 59.2005 +5.52352 -37.8909 59.0756 +4.91086 -37.9155 59.1139 +4.30392 -37.9911 59.2318 +3.72632 -38.3873 59.8495 +3.02719 -37.4325 58.3609 +2.45692 -37.9849 59.2222 +1.81668 -37.4554 58.3965 +1.22865 -38.0023 59.2493 +0.607367 -37.5747 58.5826 +2.33147e-15 -38.0621 59.3425 +-0.614348 -38.0066 59.256 +-1.22865 -38.0023 59.2493 +-1.84024 -37.9411 59.1538 +-2.46041 -38.0389 59.3063 +-3.0708 -37.9719 59.2019 +-3.69492 -38.0638 59.3452 +-4.31003 -38.045 59.3158 +-4.97364 -38.4002 59.8696 +-5.53137 -37.9448 59.1596 +-6.2142 -38.3475 59.7875 +-6.82422 -38.263 59.6558 +-7.43197 -38.1757 59.5196 +-8.03743 -38.0856 59.3792 +-8.79897 -38.6893 60.3204 +-9.39789 -38.5393 60.0866 +-9.92304 -38.1194 59.4318 +-10.524 -38.0178 59.2734 +-11.1381 -37.9667 59.1938 +-11.7514 -37.9128 59.1097 +-12.5374 -38.3877 59.8501 +-13.1574 -38.3272 59.7558 +-13.7764 -38.2637 59.6568 +-14.1751 -37.6154 58.646 +-15.1776 -38.5506 60.1041 +-15.6269 -38.0559 59.3329 +-16.4439 -38.4543 59.954 +-16.8081 -37.7979 58.9305 +-17.8538 -38.6602 60.2749 +-18.2777 -38.1565 59.4896 +-19.1008 -38.4861 60.0035 +-19.7222 -38.3946 59.8609 +-20.3972 -38.4041 59.8756 +-20.9887 -38.2547 59.6428 +-21.9279 -38.7223 60.3718 +-22.2522 -38.1026 59.4057 +-23.4544 -38.9719 60.761 +-23.7978 -38.3991 59.868 +-24.7106 -38.745 60.4072 +-25.0689 -38.22 59.5886 +-25.9593 -38.5063 60.035 +-26.5807 -38.3825 59.8419 +-27.5227 -38.7094 60.3517 +-28.1473 -38.5783 60.1472 +-29.2568 -39.0949 60.9528 +-29.8876 -38.9556 60.7355 +-30.9459 -39.36 61.366 +-31.5411 -39.1632 61.0592 +-32.2135 -39.0624 60.902 +-32.8852 -38.9582 60.7397 +-33.894 -39.2422 61.1824 +-34.4409 -38.9836 60.7791 +-35.4642 -39.2565 61.2047 +-35.9635 -38.943 60.7159 +-36.7278 -38.9164 60.6744 +-37.771 -39.1729 61.0743 +-38.3558 -38.9458 60.7202 +-38.9362 -38.7162 60.3622 +-40.0938 -39.0506 60.8837 +-40.7234 -38.8603 60.5869 +-41.85 -39.1345 61.0144 +-42.481 -38.9358 60.7047 +-43.8812 -39.4284 61.4726 +-44.5169 -39.2201 61.1479 +-45.626 -39.4209 61.461 +-46.2615 -39.2045 61.1236 +-47.4381 -39.4378 61.4874 +-48.0737 -39.2129 61.1366 +-49.209 -39.3877 61.4092 +-50.3535 -39.5548 61.6697 +-51.5072 -39.7141 61.9181 +-52.031 -39.382 61.4003 +-53.8411 -40.0089 62.3778 +-54.6047 -39.8405 62.1152 +-56.3299 -40.3579 62.9218 +-56.4322 -39.7055 61.9046 +-58.18 -40.2038 62.6816 +-58.7031 -39.8437 62.1201 +-60.226 -40.153 62.6024 +-60.8727 -39.8677 62.1576 +-62.3504 -40.1171 62.5464 +-62.6068 -39.5754 61.7019 +-64.5562 -40.0939 62.5103 +-65.4669 -39.95 62.2858 +-67.5822 -40.5227 63.1788 +-68.2346 -40.2027 62.6799 +-70.1094 -40.5905 63.2845 +-71.1759 -40.4936 63.1334 +-72.8002 -40.7004 63.4559 +-73.4553 -40.3559 62.9187 +-75.3069 -40.6573 63.3886 +-75.9612 -40.3009 62.833 +-77.9045 -40.6166 63.3251 +-78.7757 -40.3595 62.9243 +-80.4489 -40.5023 63.1469 +-81.3217 -40.2311 62.7242 +-83.4552 -40.569 63.251 +-84.3324 -40.2816 62.8028 +-86.4897 -40.5911 63.2855 +-87.1425 -40.1821 62.6477 +-89.857 -40.707 63.4661 +-90.5116 -40.2821 62.8037 +-92.6358 -40.4997 63.1429 +-94.226 -40.465 63.0889 +-96.7677 -40.8172 63.638 +-97.8998 -40.557 63.2323 +-100.788 -41.004 63.9292 +-102.17 -40.8166 63.637 +-104.768 -41.0953 64.0715 +-105.998 -40.8196 63.6416 +-108.128 -40.876 63.7297 +-109.856 -40.7626 63.5528 +-113.164 -41.2095 64.2496 +-114.826 -41.0324 63.9734 +-117.749 -41.2838 64.3654 +-119.677 -41.1626 64.1764 +-123.9 -41.7988 65.1683 +-126.873 -41.9751 65.4432 +-129.604 -42.0431 65.5493 +-132.174 -42.0337 65.5346 +-135.62 -42.2732 65.908 +-123.416 -37.698 58.7749 +-117.636 -35.2044 54.8871 +-118.552 -34.7519 54.1815 +-122.2 -35.0792 54.6918 +-138.906 -39.0392 60.8658 +-139.532 -38.3833 59.8432 +-139.252 -37.4835 58.4405 +-139.583 -36.755 57.3046 +-140.894 -36.282 56.5671 +-141.384 -35.5939 55.4944 +-140.862 -34.6578 54.0349 +-140.595 -33.7952 52.69 +-135.358 -31.7753 49.5408 +-111.841 -25.6305 39.9605 +-109.942 -24.5861 38.3321 +-109.222 -23.8245 37.1448 +-108.487 -23.0716 35.9708 +-108.295 -22.4435 34.9916 +-108.186 -21.8379 34.0474 +-107.595 -21.1427 32.9635 +-108.31 -20.7071 32.2843 +-107.884 -20.0554 31.2683 +-62.779 -11.3407 17.6812 +-57.9193 -10.1602 15.8407 +-53.6943 -9.14014 14.2504 +-45.7114 -7.54515 11.7636 +-40.2704 -6.44011 10.0407 +-38.5466 -5.96743 9.3038 +-38.3525 -5.7423 8.9528 +-36.995 -5.35178 8.34395 +-16.5553 -2.31153 3.6039 +-16.6891 -2.24651 3.50252 +-16.2386 -2.10477 3.28155 +-17.1489 -2.13749 3.33255 +-16.7923 -2.00987 3.13358 +-16.6285 -1.90823 2.97512 +-15.8748 -1.74371 2.71861 +-15.5097 -1.62764 2.53765 +-15.2405 -1.52499 2.37761 +-14.0828 -1.34063 2.09018 +-3231.37 -291.942 455.165 +-3235.96 -276.707 431.412 +-3240.31 -261.45 407.626 +-3244.42 -246.174 383.809 +-3248.27 -230.879 359.963 +-3251.88 -215.567 336.09 +-3255.24 -200.238 312.19 +-12.531 -0.711065 1.10862 +-13.5374 -0.703744 1.0972 +-13.9467 -0.65876 1.02707 +-14.2559 -0.605738 0.944404 +-14.3649 -0.542312 0.845516 +-14.5728 -0.481207 0.750248 +-14.2804 -0.404054 0.629959 +-14.3863 -0.339114 0.528711 +-14.4912 -0.273206 0.425955 +-14.9949 -0.211989 0.330511 +-14.4978 -0.136624 0.21301 +-15.2994 -0.0720837 0.112385 +78.6 3.55271e-15 2.84217e-14 +116.696 -0.542059 0.862143 +84.4871 -0.784955 1.24847 +58.6799 -0.817882 1.30084 +52.7678 -0.98081 1.55997 +47.5547 -1.10514 1.75773 +50.3309 -1.40399 2.23303 +43.4189 -1.4135 2.24817 +33.4184 -1.24383 1.97831 +32.8983 -1.37813 2.19191 +32.6752 -1.52161 2.42011 +42.9016 -2.19878 3.49716 +47.8365 -2.67616 4.25642 +46.1017 -2.79582 4.44674 +53.8953 -3.52231 5.60221 +56.2149 -3.93925 6.26536 +116.951 -8.74856 13.9145 +119.968 -9.54324 15.1785 +119.807 -10.1001 16.0642 +120.425 -10.7265 17.0604 +120.344 -11.2947 17.9641 +119.957 -11.8338 18.8216 +119.857 -12.4007 19.7233 +120.335 -13.0313 20.7262 +120.214 -13.6007 21.6319 +119.987 -14.1586 22.5192 +120.432 -14.7993 23.5382 +120.282 -15.3705 24.4467 +120.705 -16.0187 25.4777 +120.438 -16.5788 26.3685 +120.644 -17.2064 27.3668 +120.454 -17.7804 28.2796 +120.927 -18.4566 29.3551 +120.524 -19.0024 30.2233 +120.877 -19.6705 31.2858 +120.454 -20.2152 32.1521 +121.069 -20.9384 33.3025 +120.722 -21.5 34.1956 +121.026 -22.1812 35.279 +121.318 -22.8668 36.3696 +120.469 -23.3385 37.1197 +121.018 -24.0835 38.3048 +120.525 -24.6257 39.167 +120.861 -25.3406 40.3041 +120.997 -26.0207 41.3858 +121.583 -26.8057 42.6344 +121.138 -27.3695 43.531 +117.842 -27.2732 43.3779 +114.376 -27.105 43.1104 +112.107 -27.1938 43.2516 +108.576 -26.9487 42.8618 +106.686 -27.0853 43.0791 +103.99 -26.9965 42.9378 +101.396 -26.9085 42.7979 +98.7235 -26.7743 42.5845 +96.8616 -26.8386 42.6867 +96.3296 -27.2625 43.3609 +97.0214 -28.0391 44.5961 +96.9953 -28.6177 45.5164 +96.8706 -29.172 46.3979 +97.2547 -29.887 47.5351 +95.6408 -29.9864 47.6933 +94.8027 -30.3198 48.2236 +95.1546 -31.0371 49.3644 +95.3206 -31.7036 50.4244 +94.7972 -32.1452 51.1267 +94.9375 -32.8161 52.1939 +94.8962 -33.4321 53.1737 +94.4274 -33.9014 53.9201 +94.3624 -34.5196 54.9033 +94.6121 -35.2619 56.0839 +94.6002 -35.9164 57.1249 +94.7359 -36.636 58.2695 +94.8551 -37.3596 59.4203 +94.798 -38.023 60.4754 +93.5364 -38.2027 60.7612 +92.6701 -38.5374 61.2935 +90.3912 -38.2705 60.869 +89.2941 -38.4879 61.2149 +87.7337 -38.4949 61.226 +87.0993 -38.901 61.8719 +84.4811 -38.4053 61.0835 +83.6973 -38.7264 61.5941 +81.9358 -38.5846 61.3687 +81.3 -38.9638 61.9717 +79.4785 -38.7645 61.6548 +79.1325 -39.2774 62.4706 +76.8897 -38.8374 61.7708 +76.6097 -39.378 62.6305 +74.0354 -38.725 61.592 +73.6805 -39.218 62.376 +71.0722 -38.4957 61.2273 +69.9521 -38.5564 61.3237 +68.7666 -38.5709 61.3469 +68.1316 -38.8889 61.8526 +66.343 -38.5367 61.2925 +65.7086 -38.8434 61.7803 +63.9428 -38.4694 61.1855 +63.1785 -38.6846 61.5277 +61.5027 -38.329 60.9622 +60.872 -38.6133 61.4142 +59.6005 -38.4838 61.2083 +58.9673 -38.7592 61.6464 +57.2713 -38.3235 60.9533 +56.6409 -38.588 61.3741 +54.7885 -38.0051 60.4469 +54.3439 -38.3857 61.0522 +52.9987 -38.1231 60.6347 +52.9007 -38.7554 61.6403 +51.1019 -38.133 60.6504 +50.4747 -38.3689 61.0256 +49.334 -38.2071 60.7683 +49.209 -38.832 61.7621 +47.025 -37.8163 60.1466 +46.8934 -38.435 61.1307 +45.2944 -37.8433 60.1897 +44.7782 -38.1426 60.6656 +43.6809 -37.9406 60.3444 +43.4177 -38.4614 61.1728 +42.0242 -37.9737 60.3971 +41.85 -38.5823 61.365 +40.5265 -38.1267 60.6404 +39.9968 -38.4066 61.0855 +38.5544 -37.7957 60.1139 +38.3089 -38.3493 60.9944 +36.8937 -37.7232 59.9986 +36.7278 -38.3673 61.0231 +35.6958 -38.1078 60.6102 +35.0697 -38.2721 60.8717 +34.0534 -38.0012 60.4407 +33.4291 -38.1579 60.69 +32.3875 -37.8274 60.1643 +31.8068 -38.025 60.4787 +30.6638 -37.5367 59.702 +30.5552 -38.3147 60.9394 +29.0839 -37.3733 59.442 +28.8072 -37.9511 60.3611 +27.9274 -37.7368 60.0203 +27.236 -37.7657 60.0662 +26.6158 -37.8908 60.2652 +25.9935 -38.013 60.4595 +25.0689 -37.6807 59.931 +24.5153 -37.8963 60.274 +23.893 -38.0088 60.4529 +23.2381 -38.0677 60.5466 +22.3124 -37.6666 59.9085 +21.6647 -37.7179 59.9901 +21.0739 -37.8681 60.229 +20.7004 -38.425 61.1149 +19.5886 -37.5965 59.797 +18.9973 -37.7375 60.0213 +18.4029 -37.8758 60.2413 +17.8055 -38.0115 60.4571 +17.0415 -37.7822 60.0924 +16.7589 -38.6378 61.4533 +15.8434 -38.0387 60.5003 +15.1983 -38.0587 60.5323 +14.3944 -37.6585 59.8956 +13.9481 -38.1941 60.7475 +13.1756 -37.8387 60.1824 +12.5548 -37.8985 60.2774 +11.966 -38.0604 60.5349 +11.3415 -38.1145 60.621 +10.5832 -37.6919 59.9489 +10.09 -38.214 60.7793 +9.31957 -37.679 59.9283 +8.81115 -38.1963 60.7511 +8.09403 -37.8127 60.141 +7.55741 -38.2723 60.872 +6.84339 -37.8292 60.1671 +6.30136 -38.3367 60.9744 +5.59413 -37.8339 60.1747 +5.03642 -38.3363 60.9737 +4.34666 -37.827 60.1637 +3.77866 -38.3773 61.0389 +3.06644 -37.383 59.4575 +2.51974 -38.4065 61.0854 +1.8638 -37.8847 60.2554 +1.24436 -37.9451 60.3515 +0.622202 -37.9495 60.3585 +2.33147e-15 -38.4832 61.2073 +-0.614348 -37.4704 59.5965 +-1.24436 -37.9451 60.3515 +-1.86642 -37.9379 60.3401 +-2.55115 -38.8853 61.8469 +-3.11006 -37.9148 60.3033 +-3.73679 -37.952 60.3625 +-4.35276 -37.8801 60.2482 +-5.04339 -38.3894 61.0582 +-5.59413 -37.8339 60.1747 +-6.29264 -38.2837 60.8901 +-6.92006 -38.253 60.8413 +-7.63058 -38.6429 61.4614 +-8.15063 -38.0771 60.5616 +-8.9574 -38.8303 61.7594 +-9.51536 -38.4706 61.1873 +-10.1736 -38.5303 61.2823 +-10.6423 -37.9025 60.2838 +-11.4197 -38.3774 61.039 +-11.9329 -37.9554 60.3679 +-12.5374 -37.8461 60.1941 +-13.1392 -37.7341 60.0159 +-13.9291 -38.1419 60.6645 +-14.5339 -38.0236 60.4763 +-15.3647 -38.4752 61.1947 +-15.7784 -37.8828 60.2524 +-16.6239 -38.3266 60.9583 +-17.2283 -38.1962 60.7509 +-18.1199 -38.6828 61.5249 +-18.7284 -38.5457 61.3067 +-19.3597 -38.4572 61.1661 +-20.0162 -38.4171 61.1023 +-20.8382 -38.6809 61.5217 +-21.3012 -38.2764 60.8784 +-22.1618 -38.5832 61.3664 +-22.8236 -38.5295 61.2811 +-23.7325 -38.8776 61.8347 +-24.0517 -38.2612 60.8542 +-25.0036 -38.6513 61.4747 +-25.6364 -38.5337 61.2877 +-26.7118 -39.0633 62.1301 +-26.8959 -38.2896 60.8995 +-28.3111 -39.2565 62.4373 +-28.6237 -38.6778 61.5168 +-29.6314 -39.0368 62.0879 +-30.2703 -38.8978 61.8667 +-31.2585 -39.1966 62.3421 +-31.9398 -39.0987 62.1864 +-32.905 -39.3379 62.5667 +-33.5902 -39.232 62.3984 +-34.2321 -39.0745 62.1478 +-34.8283 -38.8659 61.8161 +-35.9903 -39.2768 62.4696 +-36.5436 -39.0128 62.0497 +-37.6358 -39.3159 62.5317 +-38.279 -39.1396 62.2513 +-39.2009 -39.2422 62.4146 +-39.8428 -39.0587 62.1226 +-40.8695 -39.2445 62.4183 +-41.5605 -39.0995 62.1877 +-42.65 -39.3199 62.5381 +-43.3438 -39.1661 62.2936 +-44.3448 -39.2827 62.479 +-44.9871 -39.0752 62.149 +-46.6329 -39.7224 63.1783 +-46.7988 -39.1003 62.1888 +-48.4184 -39.6849 63.1187 +-48.5705 -39.0591 62.1233 +-50.1037 -39.538 62.8851 +-50.8633 -39.3915 62.652 +-52.6543 -40.0258 63.6609 +-53.1924 -39.693 63.1316 +-54.664 -40.0473 63.6951 +-55.5564 -39.963 63.561 +-56.7512 -40.086 63.7566 +-57.528 -39.9053 63.4693 +-58.9188 -40.1399 63.8424 +-59.5747 -39.8647 63.4047 +-61.5475 -40.4552 64.3438 +-61.8268 -39.9213 63.4947 +-62.6075 -39.7141 63.1652 +-64.1655 -39.9885 63.6015 +-65.6715 -40.2111 63.9556 +-66.0632 -39.7451 63.2145 +-68.7866 -40.663 64.6743 +-69.4507 -40.3419 64.1636 +-71.7462 -40.9521 65.1341 +-71.3135 -39.9995 63.619 +-74.259 -40.9302 65.0994 +-75.2777 -40.7736 64.8502 +-77.0039 -40.9869 65.1895 +-77.673 -40.6277 64.6182 +-79.3432 -40.783 64.8652 +-80.8792 -40.8526 64.9758 +-81.6922 -40.548 64.4914 +-82.7962 -40.3827 64.2286 +-85.6103 -41.0294 65.2572 +-86.7291 -40.8419 64.9588 +-87.8482 -40.647 64.6489 +-88.7394 -40.3411 64.1624 +-90.6231 -40.4748 64.375 +-91.9777 -40.357 64.1877 +-94.7341 -40.8327 64.9443 +-95.5565 -40.4574 64.3473 +-98.7377 -41.0606 65.3068 +-100.121 -40.8921 65.0387 +-102.465 -41.0982 65.3665 +-103.376 -40.7156 64.758 +-105.819 -40.9222 65.0866 +-107.463 -40.8 64.8923 +-110.176 -41.0625 65.3098 +-111.752 -40.8809 65.0209 +-115.153 -41.3425 65.755 +-116.077 -40.8941 65.042 +-120.014 -41.484 65.9801 +-122.207 -41.4398 65.9098 +-126.953 -42.2244 67.1578 +-128.152 -41.8 66.4827 +-131.747 -42.1353 67.016 +-134.156 -42.062 66.8994 +-137.525 -42.2623 67.218 +-136.472 -41.0977 65.3657 +-117.549 -34.6819 55.1614 +-118.025 -34.1092 54.2505 +-119.463 -33.8096 53.774 +-138.906 -38.4884 61.2156 +-138.819 -37.6484 59.8796 +-139.52 -37.0259 58.8896 +-140.392 -36.4465 57.968 +-140.894 -35.7701 56.8922 +-140.206 -34.7993 55.3482 +-140.498 -34.0805 54.205 +-140.686 -33.34 53.0272 +-139.485 -32.2821 51.3445 +-115.063 -25.9968 41.3479 +-110.496 -24.3614 38.7468 +-109.593 -23.5681 37.485 +-108.952 -22.8436 36.3327 +-108.295 -22.1269 35.1927 +-108.092 -21.5111 34.2134 +-107.783 -20.8808 33.2109 +-108.687 -20.486 32.5829 +-108.546 -19.8937 31.6409 +-107.824 -19.203 30.5423 +-107.184 -18.537 29.483 +-59.8934 -10.0516 15.987 +-48.9628 -7.96777 12.6727 +-42.284 -6.66674 10.6034 +-38.1621 -5.82453 9.26389 +-38.2561 -5.64707 8.98164 +-36.029 -5.13851 8.17279 +-18.298 -2.5188 4.00614 +-15.7188 -2.08604 3.31783 +-16.1413 -2.06265 3.28064 +-17.1489 -2.10733 3.35171 +-17.1828 -2.0276 3.22489 +-16.8241 -1.90344 3.02742 +-17.2467 -1.86767 2.97053 +-15.3134 -1.58437 2.51993 +-15.2405 -1.50348 2.39128 +-16.0524 -1.50658 2.3962 +-3231.37 -287.823 457.781 +-3235.96 -272.803 433.891 +-3240.31 -257.762 409.969 +-3244.42 -242.701 386.015 +-3248.27 -227.622 362.032 +-3251.88 -212.526 338.021 +-3255.24 -197.413 313.984 +-13.426 -0.751103 1.19463 +-13.3383 -0.683611 1.08728 +-13.6479 -0.635547 1.01084 +-13.9568 -0.584662 0.929903 +-14.2652 -0.53095 0.844473 +-14.6726 -0.477667 0.759728 +-15.3789 -0.428996 0.682317 +-14.7859 -0.343616 0.54652 +-14.9909 -0.278639 0.443175 +-14.0952 -0.196458 0.312466 +-15.2977 -0.142128 0.226054 +-14.3995 -0.0668862 0.106382 +117.1 5.32907e-15 5.68434e-14 +117.796 -0.539294 0.875172 +85.587 -0.783731 1.27185 +61.4789 -0.844559 1.37056 +56.1658 -1.02894 1.66978 +50.352 -1.15331 1.87161 +57.3213 -1.57597 2.5575 +47.8107 -1.53408 2.48952 +39.1045 -1.43452 2.32795 +36.8859 -1.52294 2.47144 +31.7786 -1.45856 2.36696 +44.8924 -2.2677 3.68005 +52.2124 -2.87892 4.67195 +49.4799 -2.9575 4.79946 +57.7662 -3.72095 6.0384 +59.4867 -4.10852 6.66735 +119.426 -8.80521 14.2892 +119.968 -9.40589 15.264 +119.905 -9.96292 16.1679 +119.735 -10.5115 17.0582 +120.245 -11.123 18.0505 +119.957 -11.6635 18.9276 +119.857 -12.2223 19.8344 +120.335 -12.8437 20.8429 +120.312 -13.4159 21.7715 +120.084 -13.9662 22.6645 +120.627 -14.6098 23.709 +120.185 -15.137 24.5645 +120.026 -15.6993 25.477 +120.438 -16.3402 26.517 +120.644 -16.9588 27.5209 +120.357 -17.5105 28.4162 +120.927 -18.191 29.5205 +120.62 -18.7438 30.4177 +120.973 -19.4027 31.4869 +120.55 -19.94 32.3589 +120.879 -20.6046 33.4374 +120.627 -21.1739 34.3612 +121.026 -21.8619 35.4777 +120.47 -22.3801 36.3187 +120.657 -23.0385 37.3871 +120.924 -23.7186 38.4907 +120.432 -24.2525 39.3571 +121.047 -25.0144 40.5935 +120.905 -25.6265 41.587 +121.028 -26.2995 42.6791 +120.126 -26.7501 43.4103 +117.475 -26.797 43.4864 +113.462 -26.5016 43.007 +111.288 -26.6067 43.1775 +108.576 -26.5609 43.1032 +105.873 -26.4923 42.992 +103.271 -26.424 42.8811 +101.486 -26.5446 43.0769 +98.9017 -26.4366 42.9016 +96.3294 -26.307 42.6913 +96.8594 -27.0179 43.845 +97.1093 -27.6606 44.8879 +96.1207 -27.9515 45.36 +96.7836 -28.7263 46.6174 +96.3886 -29.1946 47.3772 +94.7792 -29.2886 47.5298 +94.5456 -29.8024 48.3637 +95.3252 -30.6453 49.7314 +95.3206 -31.2473 50.7084 +94.7129 -31.6543 51.3689 +94.9375 -32.3438 52.4879 +95.1464 -33.0378 53.6142 +94.4274 -33.4135 54.2238 +94.7745 -34.1714 55.4536 +95.1855 -34.9651 56.7416 +95.1701 -35.6127 57.7927 +94.8168 -36.1396 58.6476 +94.614 -36.7283 59.603 +94.6383 -37.4126 60.7136 +94.7264 -38.1319 61.8808 +93.9309 -38.4995 62.4773 +91.7999 -38.3076 62.1659 +91.3924 -38.8254 63.0062 +89.1226 -38.5415 62.5456 +87.7887 -38.6446 62.7129 +86.078 -38.568 62.5886 +84.9803 -38.7541 62.8906 +83.0592 -38.5508 62.5606 +82.8606 -39.1402 63.5171 +81.1005 -38.9863 63.2674 +79.8638 -39.0699 63.4031 +78.9207 -39.2896 63.7596 +77.8326 -39.4307 63.9886 +75.9612 -39.1605 63.55 +74.9533 -39.3213 63.8109 +72.6142 -38.7649 62.908 +71.8277 -39.0203 63.3226 +69.7992 -38.5866 62.6188 +69.291 -38.9814 63.2594 +67.559 -38.6783 62.7675 +66.98 -39.0251 63.3304 +65.1356 -38.623 62.6778 +64.425 -38.8802 63.0951 +62.6717 -38.4955 62.4708 +62.0933 -38.8211 62.9993 +60.2366 -38.3347 62.21 +60.163 -38.976 63.2507 +58.3919 -38.5109 62.4959 +57.6875 -38.7354 62.8602 +56.5539 -38.6651 62.7461 +55.367 -38.5455 62.552 +54.1884 -38.4179 62.345 +53.5472 -38.6645 62.7451 +52.2633 -38.4384 62.3782 +51.5645 -38.6332 62.6944 +50.4102 -38.4787 62.4436 +49.7122 -38.6645 62.7451 +48.0737 -38.1032 61.8343 +47.9282 -38.7178 62.8316 +46.2615 -38.0951 61.8211 +45.626 -38.3054 62.1624 +44.0989 -37.7524 61.265 +43.9327 -38.3576 62.2471 +42.9377 -38.2408 62.0576 +42.5 -38.6177 62.6692 +40.9696 -37.9889 61.6488 +40.4331 -38.2668 62.0997 +38.9362 -37.6206 61.0511 +38.7314 -38.2143 62.0145 +37.6787 -37.9713 61.6203 +37.091 -38.1891 61.9737 +36.0974 -37.9819 61.6374 +35.4204 -38.0986 61.8267 +34.4409 -37.8804 61.4727 +34.1898 -38.4646 62.4207 +33.1755 -38.19 61.9751 +32.5389 -38.3404 62.2192 +31.5809 -38.1031 61.834 +30.9459 -38.2462 62.0663 +29.9258 -37.9017 61.5073 +29.2568 -37.9886 61.6484 +28.1839 -37.5354 60.9128 +28.0244 -38.2997 62.1531 +27.071 -37.9843 61.6413 +26.3013 -37.9096 61.5201 +25.6697 -38.0285 61.7131 +25.0362 -38.1446 61.9015 +23.8296 -37.3623 60.6319 +23.4853 -37.919 61.5353 +22.6431 -37.6748 61.1391 +21.9279 -37.6266 61.0608 +21.3296 -37.7758 61.303 +20.9209 -38.2754 62.1138 +19.8291 -37.5104 60.8722 +19.4373 -38.0557 61.7572 +18.6032 -37.737 61.24 +17.9506 -37.7698 61.2932 +17.4851 -38.2076 62.0037 +16.8713 -38.3374 62.2142 +15.9949 -37.8497 61.4229 +15.3855 -37.9728 61.6226 +14.7532 -38.0418 61.7346 +14.1389 -38.1594 61.9255 +13.3761 -37.8616 61.4422 +12.8673 -38.2831 62.1261 +12.0815 -37.8748 61.4636 +11.6074 -38.4468 62.3919 +10.7162 -37.6165 61.0444 +10.2014 -38.0797 61.7961 +9.55452 -38.0729 61.7852 +8.92084 -38.1152 61.8538 +8.18459 -37.6855 61.1564 +7.65148 -38.1911 61.9769 +6.92965 -37.7547 61.2687 +6.3798 -38.2554 62.0812 +5.67259 -37.8124 61.3623 +5.09222 -38.2033 61.9966 +4.4077 -37.8062 61.3523 +3.82052 -38.2441 62.0629 +3.14932 -37.8408 61.4084 +2.51974 -37.8538 61.4295 +1.88998 -37.8639 61.4459 +1.26181 -37.9235 61.5427 +0.622202 -37.4033 60.6984 +2.22045e-15 -38.4015 62.3183 +-0.630929 -37.9278 61.5497 +-1.27577 -38.3432 62.2237 +-1.91615 -38.3883 62.2969 +-2.54766 -38.2732 62.1101 +-3.16241 -37.998 61.6636 +-3.83099 -38.3488 62.2329 +-4.41991 -37.911 61.5223 +-5.10617 -38.3079 62.1665 +-5.73536 -38.2308 62.0413 +-6.37108 -38.2031 61.9963 +-7.00632 -38.1725 61.9467 +-7.72465 -38.5563 62.5696 +-8.25251 -37.9982 61.6639 +-9.07927 -38.7921 62.9523 +-9.61978 -38.333 62.2072 +-10.2988 -38.4433 62.3862 +-10.8049 -37.9278 61.5496 +-11.5605 -38.2914 62.1397 +-12.065 -37.8231 61.3797 +-12.85 -38.2314 62.0423 +-13.449 -38.0679 61.777 +-14.2725 -38.5199 62.5104 +-14.7532 -38.0418 61.7346 +-15.531 -38.332 62.2056 +-15.9516 -37.7473 61.2567 +-17.0063 -38.644 62.7119 +-17.4851 -38.2076 62.0037 +-18.2893 -38.4825 62.4497 +-18.9538 -38.448 62.3939 +-19.7997 -38.7652 62.9085 +-20.2834 -38.3698 62.2669 +-21.1414 -38.6789 62.7685 +-21.5568 -38.1782 61.9559 +-22.805 -39.1316 63.5032 +-23.0942 -38.4253 62.357 +-24.1342 -38.9667 63.2356 +-24.369 -38.208 62.0044 +-25.7524 -39.2359 63.6723 +-26.0369 -38.5725 62.5958 +-27.3616 -39.4378 64 +-27.6664 -38.8196 62.9969 +-28.6694 -39.1812 63.5837 +-29.3201 -39.0485 63.3683 +-30.2682 -39.302 63.7796 +-30.9208 -39.1619 63.5523 +-31.9618 -39.5017 64.1038 +-32.2588 -38.9209 63.1613 +-33.7185 -39.7302 64.4746 +-34.3366 -39.5266 64.1442 +-35.0351 -39.4155 63.9638 +-35.6463 -39.2063 63.6243 +-36.6917 -39.4659 64.0457 +-36.9452 -38.8739 63.085 +-38.3622 -39.4979 64.0977 +-38.556 -38.8555 63.055 +-40.0459 -39.5112 64.1192 +-40.6539 -39.2803 63.7444 +-41.7421 -39.5057 64.1102 +-42.0037 -38.9477 63.2048 +-43.55 -39.5718 64.2175 +-44.2066 -39.3709 63.8915 +-45.7869 -39.9764 64.8742 +-45.8754 -39.2733 63.733 +-47.0038 -39.4622 64.0396 +-47.7659 -39.334 63.8315 +-49.3988 -39.9057 64.7594 +-50.1711 -39.7656 64.5319 +-51.3339 -39.9258 64.7919 +-51.9961 -39.6893 64.4082 +-53.6868 -40.2232 65.2747 +-53.715 -39.5061 64.111 +-55.4281 -40.0227 64.9492 +-56.6271 -40.1469 65.1509 +-57.8344 -40.2632 65.3396 +-58.502 -39.997 64.9075 +-59.9654 -40.265 65.3424 +-60.1349 -39.6605 64.3614 +-62.1769 -40.2806 65.3678 +-62.8445 -39.9944 64.9034 +-64.4073 -40.2679 65.3471 +-64.75 -39.772 64.5424 +-67.1804 -40.5431 65.7937 +-67.8523 -40.234 65.2921 +-70.3925 -41.0134 66.5569 +-70.4641 -40.3415 65.4665 +-72.4282 -40.7464 66.1236 +-73.7228 -40.7557 66.1388 +-75.0231 -40.7563 66.1397 +-75.9085 -40.5235 65.762 +-77.9939 -40.9164 66.3995 +-79.5274 -40.999 66.5336 +-80.5661 -40.8156 66.2359 +-81.6772 -40.6618 65.9865 +-83.5937 -40.8946 66.3642 +-84.0496 -40.4041 65.5681 +-86.7993 -41.0006 66.5363 +-87.1784 -40.4627 65.6632 +-88.9803 -40.5783 65.8508 +-89.88 -40.2716 65.3531 +-92.4616 -40.7016 66.051 +-93.8295 -40.5771 65.8489 +-96.3661 -40.9383 66.4351 +-97.3565 -40.6262 65.9287 +-100.865 -41.3417 67.0898 +-100.835 -40.591 65.8714 +-104.462 -41.2959 67.0155 +-105.386 -40.9098 66.3888 +-107.599 -41.0116 66.554 +-109.01 -40.7916 66.1971 +-112.06 -41.1637 66.8009 +-113.482 -40.9165 66.3997 +-116.646 -41.2755 66.9823 +-118.579 -41.1742 66.818 +-122.781 -41.8299 67.882 +-125.497 -41.9427 68.065 +-129.836 -42.5619 69.0699 +-130.795 -42.0482 68.2362 +-134.832 -42.5016 68.9719 +-135.965 -42.0158 68.1837 +-138.824 -42.0475 68.2351 +-139.083 -41.2812 66.9916 +-118.424 -34.4371 55.8849 +-119.08 -33.9187 55.0436 +-119.286 -33.2737 53.9969 +-138.64 -37.8618 61.4425 +-139.799 -37.3686 60.6421 +-140.415 -36.7271 59.6011 +-141.111 -36.1059 58.5931 +-140.713 -35.2101 57.1393 +-140.568 -34.3872 55.8039 +-139.952 -33.4595 54.2985 +-140.321 -32.7749 53.1874 +-139.943 -31.9221 51.8034 +-119.113 -26.5246 43.0444 +-111.143 -24.1514 39.1931 +-110.242 -23.3665 37.9194 +-108.766 -22.4764 36.4749 +-108.202 -21.7896 35.3603 +-107.811 -21.1465 34.3167 +-107.595 -20.5444 33.3397 +-108.31 -20.1211 32.6527 +-107.695 -19.4537 31.5697 +-108.204 -18.9932 30.8224 +-108.325 -18.4647 29.9647 +-106.435 -17.6053 28.57 +-105.289 -16.8873 27.4048 +-44.2975 -6.88367 11.1709 +-40.0846 -6.02992 9.78542 +-37.967 -5.52372 8.96396 +-36.6086 -5.14603 8.35102 +-32.7234 -4.43969 7.20478 +-16.9802 -2.22101 3.60427 +-17.5027 -2.20442 3.57736 +-17.2464 -2.0888 3.38973 +-16.7923 -1.953 3.16934 +-17.3132 -1.93059 3.13297 +-16.3647 -1.74666 2.83449 +-16.3932 -1.67168 2.71281 +-15.3388 -1.4914 2.42026 +-14.6736 -1.35736 2.20273 +-13.6107 -1.19488 1.93907 +-16.0006 -1.32949 2.15751 +-3240.31 -254.052 412.278 +-3244.42 -239.208 388.189 +-3248.27 -224.346 364.071 +-3251.88 -209.467 339.925 +-3255.24 -194.572 315.753 +-14.7189 -0.811582 1.31704 +-13.5374 -0.683829 1.10973 +-14.2456 -0.653837 1.06105 +-15.1531 -0.62564 1.01529 +-13.9659 -0.51233 0.831414 +-15.2715 -0.490008 0.795191 +-13.881 -0.381638 0.619326 +-13.8868 -0.318076 0.516177 +-14.791 -0.270968 0.43973 +-14.7949 -0.203244 0.329826 +-15.6976 -0.143745 0.23327 +-14.3995 -0.0659236 0.106981 +117.8 5.77316e-15 2.84217e-14 +118.795 -0.535883 0.887467 +74.6886 -0.673886 1.11601 +63.1783 -0.85516 1.41622 +58.5643 -1.05713 1.7507 +54.3482 -1.22656 2.03129 +63.0135 -1.70703 2.82699 +55.4963 -1.75454 2.90566 +47.2845 -1.70913 2.83047 +39.2785 -1.59791 2.64627 +40.1466 -1.81557 3.00674 +47.2813 -2.35331 3.89728 +51.914 -2.82045 4.6709 +53.5535 -3.15398 5.22327 +64.714 -4.10728 6.802 +68.0131 -4.62844 7.66508 +120.417 -8.74782 14.4871 +120.165 -9.28303 15.3735 +120.004 -9.82475 16.2706 +120.524 -10.4254 17.2653 +120.245 -10.9597 18.1501 +119.957 -11.4922 19.0321 +119.759 -12.0329 19.9275 +120.433 -12.6654 20.975 +120.312 -13.2189 21.8916 +120.865 -13.8506 22.9378 +120.627 -14.3953 23.8398 +120.185 -14.9147 24.7001 +120.802 -15.5689 25.7834 +121.309 -16.2167 26.8563 +120.741 -16.7232 27.695 +120.454 -17.2672 28.5959 +120.734 -17.8954 29.6362 +120.524 -18.4539 30.5613 +120.208 -18.9969 31.4605 +121.313 -19.7716 32.7434 +120.974 -20.3181 33.6484 +120.532 -20.8465 34.5236 +121.026 -21.5409 35.6736 +121.224 -22.1896 36.7478 +120.844 -22.7355 37.652 +120.831 -23.3522 38.6732 +120.525 -23.9149 39.605 +121.047 -24.6471 40.8176 +121.183 -25.3083 41.9127 +121.398 -25.9925 43.0457 +119.666 -26.2563 43.4826 +117.017 -26.3004 43.5557 +113.462 -26.1124 43.2444 +110.56 -26.0445 43.1318 +107.851 -25.9961 43.0517 +105.241 -25.9475 42.9712 +102.552 -25.8547 42.8176 +101.486 -26.1549 43.3147 +98.0998 -25.8373 42.7887 +95.8859 -25.8014 42.7293 +96.7711 -26.597 44.0469 +97.0214 -27.2298 45.0948 +96.9079 -27.7666 45.9839 +97.2187 -28.4318 47.0855 +96.1288 -28.6883 47.5103 +95.1239 -28.9634 47.9659 +95.2313 -29.5778 48.9833 +94.5578 -29.9522 49.6034 +95.3206 -30.7885 50.9883 +94.7972 -31.2173 51.6985 +94.7698 -31.8126 52.6844 +94.9796 -32.4957 53.8156 +94.4274 -32.9229 54.5231 +95.1042 -33.7867 55.9537 +94.694 -34.2737 56.7602 +95.3329 -35.1498 58.2111 +94.7359 -35.5785 58.9211 +95.1767 -36.4042 60.2884 +95.2772 -37.1121 61.4608 +94.409 -37.4461 62.0139 +94.2461 -38.0615 63.033 +93.4434 -38.4208 63.628 +91.6255 -38.3529 63.5156 +90.1258 -38.403 63.5987 +89.1676 -38.6752 64.0495 +87.1425 -38.4717 63.7124 +86.4897 -38.8633 64.361 +84.7818 -38.7725 64.2105 +84.3469 -39.2572 65.0132 +81.9852 -38.8329 64.3106 +81.1071 -39.0955 64.7455 +79.501 -38.9974 64.5829 +79.1274 -39.4981 65.4122 +77.1737 -39.2014 64.9208 +76.509 -39.548 65.4949 +74.2964 -39.0805 64.7206 +73.3559 -39.2654 65.0269 +71.1759 -38.7699 64.2063 +70.5186 -39.0895 64.7356 +68.7075 -38.7582 64.1869 +68.1175 -39.1051 64.7613 +66.3283 -38.7528 64.1779 +66.1964 -39.3626 65.1877 +63.7758 -38.5984 63.9223 +63.7645 -39.2806 65.052 +61.3815 -38.4898 63.7424 +61.2958 -39.1268 64.7972 +59.5124 -38.6736 64.0467 +58.7957 -38.8998 64.4214 +57.1627 -38.5074 63.7716 +56.5104 -38.7638 64.1962 +54.7832 -38.2693 63.3772 +54.6052 -38.8495 64.3381 +52.902 -38.3369 63.4891 +52.769 -38.9551 64.513 +51.5996 -38.8083 64.2698 +50.9425 -39.0395 64.6528 +49.5639 -38.7075 64.1029 +48.9086 -38.9296 64.4707 +47.2824 -38.364 63.534 +46.6329 -38.5758 63.8848 +44.9871 -37.9473 62.844 +44.0873 -37.9273 62.8108 +43.3945 -38.0802 63.064 +42.95 -38.4535 63.6823 +41.856 -38.2409 63.3301 +41.3058 -38.5187 63.7902 +39.795 -37.8858 62.7421 +39.5765 -38.4747 63.7173 +38.556 -38.2849 63.4031 +37.8628 -38.4113 63.6124 +36.9006 -38.2568 63.3566 +36.2971 -38.4683 63.7067 +35.2158 -38.164 63.2028 +34.4857 -38.2277 63.3083 +33.5487 -38.0526 63.0183 +33.2304 -38.5802 63.8921 +32.2588 -38.3494 63.5099 +31.6101 -38.4934 63.7484 +30.6147 -38.2048 63.2704 +29.9685 -38.3414 63.4966 +28.9902 -38.0423 63.0012 +28.6694 -38.6059 63.9347 +27.3862 -37.8623 62.7032 +27.0538 -38.4215 63.6293 +26.1037 -38.1036 63.1028 +25.7524 -38.6597 64.0238 +24.4007 -37.696 62.4278 +24.1342 -38.3946 63.5846 +23.1243 -37.9104 62.7828 +22.7758 -38.5075 63.7718 +21.8124 -38.0637 63.0367 +21.4997 -38.7569 64.1846 +20.2834 -37.8064 62.6105 +19.8773 -38.3458 63.5038 +18.8286 -37.6333 62.3239 +18.3861 -38.118 63.1266 +17.5784 -37.8477 62.6789 +17.5012 -39.1846 64.8931 +16.3628 -38.1519 63.1827 +15.926 -38.7298 64.1399 +14.9327 -37.9391 62.8304 +14.4824 -38.5124 63.7798 +13.6859 -38.1696 63.2122 +13.0236 -38.1791 63.2277 +12.23 -37.7775 62.5628 +11.7482 -38.3418 63.4972 +10.9527 -37.8821 62.736 +10.438 -38.3907 63.5783 +9.67199 -37.9751 62.89 +9.15239 -38.5303 63.8095 +8.38836 -38.0566 63.025 +7.85009 -38.6071 63.9366 +7.09259 -38.075 63.0554 +6.53668 -38.6205 63.9588 +5.81382 -38.1847 63.2372 +5.16198 -38.1579 63.1927 +4.51759 -38.1798 63.2289 +3.87286 -38.1987 63.2603 +3.18858 -37.7499 62.5171 +2.58256 -38.2278 63.3085 +1.91353 -37.773 62.5552 +1.29148 -38.2453 63.3374 +0.638782 -37.8361 62.6598 +2.44249e-15 -38.3028 63.4327 +-0.638782 -37.8361 62.6598 +-1.29148 -38.2453 63.3374 +-1.93971 -38.2897 63.4109 +-2.58256 -38.2278 63.3085 +-3.22783 -38.2147 63.2868 +-3.87809 -38.2503 63.3457 +-4.51759 -38.1798 63.2289 +-5.23871 -38.7252 64.1322 +-5.80597 -38.1332 63.1518 +-6.53668 -38.6205 63.9588 +-7.18843 -38.5895 63.9075 +-7.81873 -38.4528 63.6811 +-8.43364 -38.262 63.3651 +-9.20114 -38.7356 64.1494 +-9.77641 -38.3851 63.569 +-10.5354 -38.749 64.1717 +-11.0561 -38.2399 63.3286 +-11.8264 -38.597 63.9199 +-12.3456 -38.1344 63.1538 +-13.1452 -38.5354 63.8178 +-13.613 -37.9663 62.8755 +-14.4442 -38.4109 63.6118 +-15.0722 -38.2937 63.4175 +-15.7181 -38.2242 63.3026 +-16.3628 -38.1519 63.1827 +-17.2088 -38.5299 63.8087 +-17.8586 -38.4508 63.6778 +-18.8457 -39.0709 64.7048 +-19.1541 -38.2838 63.4013 +-20.3949 -39.3444 65.1576 +-20.7911 -38.7527 64.1778 +-21.7478 -39.204 64.9252 +-22.1248 -38.6089 63.9395 +-23.3313 -39.4468 65.3272 +-23.7257 -38.8964 64.4157 +-24.6905 -39.2794 65.0501 +-25.1305 -38.8234 64.2949 +-26.0455 -39.0996 64.7523 +-26.6712 -38.9319 64.4746 +-27.6352 -39.2473 64.9968 +-28.2968 -39.1211 64.7879 +-29.2787 -39.4263 65.2933 +-29.6499 -38.908 64.4349 +-30.905 -39.5396 65.4809 +-31.3035 -39.0644 64.6939 +-32.3916 -39.4451 65.3245 +-32.6177 -38.776 64.2164 +-33.6778 -39.0997 64.7524 +-34.6684 -39.3226 65.1215 +-35.669 -39.5394 65.4807 +-36.0338 -39.0505 64.6709 +-37.3931 -39.6298 65.6302 +-38.1053 -39.5059 65.425 +-39.0886 -39.6549 65.6718 +-39.7566 -39.477 65.3773 +-40.891 -39.7526 65.8336 +-41.0834 -39.1124 64.7734 +-42.5663 -39.6941 65.7368 +-42.8901 -39.1857 64.8948 +-44.6 -39.9308 66.1288 +-45.0187 -39.5054 65.4243 +-45.9414 -39.5223 65.4523 +-46.8159 -39.4899 65.3987 +-48.5406 -40.1539 66.4983 +-48.7331 -39.5411 65.4834 +-50.3791 -40.1001 66.4091 +-51.0542 -39.8713 66.0303 +-52.3405 -40.1109 66.427 +-52.9023 -39.7881 65.8924 +-55.1207 -40.6912 67.388 +-55.2829 -40.0622 66.3465 +-56.7801 -40.3968 66.9005 +-57.4599 -40.1392 66.4739 +-59.2186 -40.6215 67.2726 +-59.2934 -39.9427 66.1486 +-61.3814 -40.6106 67.2547 +-61.6289 -40.049 66.3246 +-62.8062 -40.0909 66.3939 +-64.2439 -40.2847 66.7148 +-65.5643 -40.3893 66.8881 +-66.5035 -40.2493 66.6562 +-68.6894 -40.845 67.6428 +-68.8462 -40.2239 66.6142 +-71.2624 -40.9105 67.7513 +-71.7477 -40.4732 67.0271 +-74.4742 -41.2821 68.3667 +-74.9618 -40.8322 67.6216 +-76.8292 -41.1246 68.1058 +-77.9411 -40.9976 67.8956 +-79.8324 -41.2659 68.3399 +-80.312 -40.7955 67.5609 +-82.8679 -41.3653 68.5044 +-82.6927 -40.5629 67.1756 +-85.1296 -41.0344 67.9565 +-85.8191 -40.6489 67.318 +-88.5085 -41.1941 68.221 +-88.7513 -40.5878 67.2168 +-90.6406 -40.7285 67.4498 +-91.781 -40.5195 67.1037 +-94.2235 -40.8682 67.6811 +-95.6814 -40.7704 67.5192 +-98.0758 -41.0528 67.987 +-99.1565 -40.7698 67.5182 +-102.363 -41.3393 68.4614 +-102.739 -40.7501 67.4857 +-105.979 -41.2806 68.3643 +-106.913 -40.8932 67.7227 +-109.055 -40.9563 67.8272 +-110.883 -40.883 67.7058 +-114.517 -41.4487 68.6426 +-115.46 -41.0184 67.9299 +-120.128 -41.8835 69.3626 +-121.33 -41.5111 68.746 +-126.555 -42.4825 70.3546 +-128.617 -42.3544 70.1425 +-132.296 -42.7313 70.7667 +-133.268 -42.214 69.9099 +-136.89 -42.5164 70.4108 +-137.516 -41.8711 69.342 +-138.651 -41.3784 68.5261 +-139.344 -40.7514 67.4878 +-117.636 -33.7059 55.8198 +-118.904 -33.3713 55.2657 +-118.756 -32.6395 54.0538 +-130.834 -35.2054 58.3032 +-140.155 -36.9137 61.1322 +-141.131 -36.3724 60.2357 +-141.021 -35.5531 58.8789 +-141.164 -34.8043 57.6389 +-140.025 -33.7512 55.8948 +-139.497 -32.8611 54.4207 +-139.59 -32.1255 53.2025 +-142.419 -32.0098 53.011 +-124.084 -27.2258 45.0882 +-111.05 -23.7769 39.3766 +-109.871 -22.946 38.0005 +-108.673 -22.1274 36.6448 +-108.109 -21.4511 35.5249 +-107.811 -20.8359 34.5061 +-107.407 -20.2074 33.4651 +-108.121 -19.7911 32.7758 +-107.695 -19.168 31.7439 +-107.824 -18.6487 30.8838 +-107.184 -18.0019 29.8127 +-108.628 -17.7043 29.3198 +-107.584 -17.002 28.1567 +-51.0092 -7.81026 12.9344 +-41.6226 -6.16934 10.2169 +-37.2925 -5.3459 8.85327 +-35.0631 -4.85641 8.04262 +-32.5298 -4.34862 7.20168 +-16.7861 -2.16338 3.58275 +-17.0165 -2.11171 3.49718 +-17.3438 -2.06976 3.4277 +-17.0852 -1.95788 3.24242 +-17.8023 -1.95597 3.23925 +-16.8547 -1.77254 2.93548 +-15.9024 -1.59782 2.64612 +-14.9455 -1.43182 2.37122 +-16.8402 -1.53489 2.54191 +-14.6957 -1.27118 2.10519 +-14.9141 -1.22102 2.02211 +-3240.31 -250.321 414.554 +-13.9628 -1.01435 1.67984 +-3248.27 -221.052 366.08 +-15.4837 -0.982723 1.62747 +-13.7113 -0.807512 1.33731 +-14.7189 -0.799665 1.32431 +-15.8268 -0.78774 1.30456 +-14.4448 -0.653246 1.08183 +-15.2528 -0.620505 1.02761 +-14.2652 -0.515624 0.853917 +-15.0718 -0.476502 0.789127 +-14.3803 -0.389561 0.645145 +-15.0856 -0.340462 0.563834 +-14.791 -0.266989 0.442157 +-14.7949 -0.20026 0.331647 +-14.7977 -0.133515 0.221112 +-15.2994 -0.0690153 0.114295 +118.6 5.32907e-15 2.84217e-14 +118.096 -0.524742 0.887007 +74.8886 -0.665571 1.12506 +62.9784 -0.839684 1.41938 +62.7617 -1.11592 1.88632 +62.8401 -1.39697 2.36139 +68.3063 -1.82269 3.08101 +56.9935 -1.77487 3.00019 +50.5765 -1.80073 3.04389 +44.4625 -1.7817 3.01173 +43.3345 -1.93037 3.26304 +49.5707 -2.43029 4.10809 +58.0801 -3.10816 5.25393 +55.4413 -3.21624 5.43663 +68.982 -4.31256 7.28981 +119.667 -8.02159 13.5594 +120.615 -8.63095 14.5895 +120.165 -9.14393 15.4566 +120.004 -9.67753 16.3586 +119.735 -10.202 17.2451 +120.245 -10.7954 18.2483 +120.842 -11.4035 19.2762 +119.857 -11.8623 20.0517 +120.531 -12.4858 21.1056 +120.312 -13.0208 22.01 +119.987 -13.5439 22.8942 +120.627 -14.1796 23.9687 +121.06 -14.7982 25.0145 +120.026 -15.237 25.7562 +120.438 -15.859 26.8076 +121.031 -16.5121 27.9116 +121.225 -17.1173 28.9346 +120.831 -17.6412 29.8202 +120.524 -18.1774 30.7266 +120.973 -18.8313 31.8319 +120.645 -19.3682 32.7393 +121.165 -20.0451 33.8836 +120.627 -20.5504 34.7377 +120.743 -21.1684 35.7825 +121.318 -21.874 36.9752 +120.844 -22.3949 37.8556 +121.112 -23.0558 38.9727 +120.619 -23.5747 39.85 +120.954 -24.2591 41.0068 +121.368 -24.9672 42.2039 +121.49 -25.6225 43.3115 +118.653 -25.644 43.3479 +115.916 -25.6627 43.3795 +112.732 -25.5555 43.1982 +109.65 -25.4431 43.0082 +107.035 -25.4129 42.9571 +105.332 -25.5806 43.2406 +102.552 -25.4673 43.0491 +100.054 -25.3995 42.9345 +97.5652 -25.3114 42.7857 +96.152 -25.4853 43.0796 +96.7711 -26.1985 44.285 +96.7578 -26.7489 45.2155 +96.8204 -27.3259 46.1908 +97.828 -28.1813 47.6368 +96.0422 -28.233 47.7242 +95.6408 -28.6845 48.4874 +95.317 -29.1608 49.2925 +94.8989 -29.6098 50.0515 +94.727 -30.1383 50.9448 +94.7972 -30.7495 51.9781 +95.5246 -31.5855 53.3912 +95.1464 -32.065 54.2016 +95.2564 -32.7143 55.2992 +94.8569 -33.194 56.1101 +94.694 -33.7602 57.0671 +95.3329 -34.6231 58.5259 +94.7359 -35.0454 59.2397 +94.614 -35.6467 60.2561 +95.1175 -36.4948 61.6896 +94.8057 -37.04 62.6112 +94.9553 -37.7733 63.8508 +94.0695 -38.0987 64.4008 +93.4907 -38.5472 65.159 +91.9005 -38.5725 65.2018 +90.7763 -38.783 65.5576 +88.7394 -38.5897 65.2308 +87.8482 -38.8823 65.7254 +86.055 -38.765 65.5272 +84.7185 -38.8393 65.6528 +83.2386 -38.8358 65.6469 +82.3504 -39.1 66.0935 +80.444 -38.8686 65.7023 +80.2064 -39.4368 66.6628 +78.4575 -39.2564 66.3577 +77.7817 -39.6035 66.9444 +75.2076 -38.9671 65.8687 +74.5368 -39.2997 66.4311 +71.4512 -38.3368 64.8033 +71.4052 -38.9879 65.9039 +70.5316 -39.1911 66.2474 +69.3219 -39.2002 66.2629 +67.4547 -38.8204 65.6207 +66.7868 -39.1186 66.1248 +64.9448 -38.717 65.4459 +64.793 -39.3161 66.4587 +63.099 -38.9739 65.8802 +62.4915 -39.2923 66.4185 +60.6329 -38.8114 65.6055 +59.9654 -39.0793 66.0584 +58.7455 -38.9807 65.8918 +57.4733 -38.8336 65.6431 +56.3892 -38.801 65.5879 +55.6633 -39.0089 65.9394 +54.4119 -38.8402 65.6542 +53.8015 -39.1222 66.1309 +52.1094 -38.6044 65.2557 +51.8931 -39.1722 66.2155 +50.1711 -38.5946 65.239 +49.9979 -39.2004 66.2631 +48.2495 -38.5622 65.1843 +47.4808 -38.6887 65.3982 +46.3456 -38.5075 65.0919 +45.7869 -38.7992 65.585 +43.6991 -37.7728 63.85 +43.55 -38.4065 64.9211 +42.1022 -37.8895 64.0472 +42.13 -38.6986 65.4149 +40.5585 -38.0341 64.2917 +39.999 -38.3027 64.7458 +38.9716 -38.1177 64.433 +38.68 -38.6524 65.3368 +37.2575 -38.0481 64.3154 +36.5602 -38.1664 64.5154 +35.6033 -38.0058 64.2437 +34.9083 -38.1163 64.4307 +33.9219 -37.8993 64.0639 +33.6371 -38.4673 65.0239 +32.2588 -37.7748 63.8533 +31.9618 -38.3385 64.8062 +30.9591 -38.0557 64.3282 +30.6054 -38.5694 65.1966 +29.2834 -37.8513 63.9826 +28.992 -38.4553 65.0036 +28.0166 -38.1534 64.4933 +27.6694 -38.707 65.4292 +26.6378 -38.3006 64.7421 +26.0129 -38.4656 65.021 +25.0671 -38.1452 64.4794 +24.7214 -38.7393 65.4837 +23.5152 -37.9736 64.1894 +23.0681 -38.4175 64.9397 +22.1816 -38.128 64.4503 +21.8029 -38.7145 65.4418 +20.8446 -38.2702 64.6908 +20.2138 -38.4105 64.928 +19.2542 -37.9074 64.0775 +18.6038 -37.9914 64.2196 +17.9286 -38.0232 64.2732 +17.5012 -38.5975 65.244 +16.6442 -38.2264 64.6168 +16.1755 -38.7471 65.497 +15.2716 -38.2188 64.6039 +14.635 -38.3352 64.8006 +13.8317 -37.9982 64.231 +13.1799 -38.0583 64.3325 +12.3951 -37.7136 63.7499 +11.889 -38.2199 64.6057 +11.2187 -38.2209 64.6074 +10.5632 -38.2692 64.6891 +9.78946 -37.8604 63.9981 +9.24988 -38.3573 64.838 +8.59212 -38.3969 64.905 +7.92326 -38.383 64.8815 +7.19802 -38.062 64.3389 +6.5454 -38.0925 64.3904 +5.93935 -38.4247 64.9519 +5.28754 -38.5005 65.08 +4.57254 -38.0651 64.344 +3.96707 -38.5415 65.1494 +3.27145 -38.1508 64.4889 +2.61048 -38.0621 64.3389 +1.93709 -37.665 63.6678 +1.30893 -38.1813 64.5405 +0.645764 -37.6765 63.6872 +2.9976e-15 -38.1871 64.5503 +-0.655363 -38.2366 64.6339 +-1.32464 -38.6395 65.3149 +-1.96327 -38.174 64.5282 +-2.64887 -38.6218 65.2852 +-3.27582 -38.2016 64.5748 +-3.9723 -38.5924 65.2354 +-4.57864 -38.1159 64.4299 +-5.29452 -38.5512 65.1658 +-5.95505 -38.5262 65.1235 +-6.58897 -38.3461 64.8191 +-7.27469 -38.4675 65.0242 +-7.99643 -38.7375 65.4806 +-8.59212 -38.3969 64.905 +-9.37175 -38.8627 65.6923 +-9.98525 -38.6176 65.278 +-10.6607 -38.6222 65.2858 +-11.3074 -38.523 65.1181 +-11.9672 -38.4713 65.0307 +-12.6426 -38.4669 65.0233 +-13.3188 -38.4594 65.0106 +-13.941 -38.2986 64.7388 +-14.8449 -38.885 65.73 +-15.2516 -38.1689 64.5195 +-16.1755 -38.7471 65.497 +-16.839 -38.6738 65.373 +-17.7261 -39.0936 66.0827 +-18.3955 -39.0133 65.9469 +-19.0634 -38.9301 65.8063 +-19.7299 -38.8439 65.6606 +-20.3949 -38.7548 65.51 +-21.2989 -39.1043 66.1006 +-21.9683 -39.0082 65.9382 +-22.4088 -38.5185 65.1105 +-23.3313 -38.8557 65.6805 +-23.9963 -38.7506 65.5027 +-24.9686 -39.1267 66.1386 +-25.6382 -39.0143 65.9486 +-26.5664 -39.284 66.4045 +-27.005 -38.8285 65.6345 +-27.943 -39.0898 66.0762 +-28.6119 -38.9642 65.8638 +-29.637 -39.3109 66.4499 +-30.3097 -39.1777 66.2248 +-31.2797 -39.4192 66.6331 +-31.6862 -38.9494 65.8389 +-32.7042 -39.229 66.3115 +-33.3753 -39.0822 66.0633 +-34.3692 -39.3045 66.4391 +-35.083 -39.1966 66.2568 +-36.0916 -39.4084 66.6148 +-36.7226 -39.2006 66.2635 +-37.7876 -39.4478 66.6813 +-38.4176 -39.2328 66.318 +-39.5426 -39.5144 66.7938 +-40.2183 -39.3371 66.4942 +-41.6421 -39.8763 67.4056 +-42.4194 -39.7792 67.2415 +-43.4389 -39.9009 67.4473 +-44.1212 -39.7064 67.1185 +-45.35 -39.9939 67.6044 +-46.0337 -39.7909 67.2613 +-47.1775 -39.9776 67.5769 +-47.6519 -39.5928 66.9265 +-49.0175 -39.9409 67.5148 +-50.1838 -40.1081 67.7975 +-51.3595 -40.2679 68.0675 +-52.3236 -40.2504 68.0381 +-53.5148 -40.3963 68.2847 +-53.6953 -39.7794 67.2418 +-55.4075 -40.29 68.105 +-56.0959 -40.0423 67.6863 +-57.8381 -40.533 68.5157 +-58.5306 -40.2744 68.0786 +-59.7001 -40.3381 68.1863 +-60.2674 -39.9906 67.5988 +-62.4281 -40.6842 68.7713 +-62.5627 -40.0466 67.6936 +-64.4424 -40.5189 68.4919 +-64.88 -40.0739 67.7397 +-66.7856 -40.5252 68.5025 +-67.7374 -40.3818 68.2601 +-69.6079 -40.771 68.918 +-70.569 -40.6127 68.6504 +-72.4668 -40.9786 69.269 +-73.1664 -40.6551 68.7221 +-75.0198 -40.9615 69.24 +-76.132 -40.8482 69.0485 +-78.4269 -41.3508 69.8981 +-79.1327 -41.0007 69.3064 +-80.8223 -41.1516 69.5614 +-82.1665 -41.1121 69.4946 +-83.7312 -41.1699 69.5923 +-84.6512 -40.9015 69.1386 +-86.446 -41.0446 69.3806 +-87.5885 -40.8654 69.0775 +-89.1774 -40.8835 69.1082 +-89.65 -40.3845 68.2646 +-91.7727 -40.6193 68.6616 +-93.1497 -40.5076 68.4727 +-95.679 -40.8776 69.0983 +-97.0704 -40.7424 68.8697 +-99.0084 -40.8222 69.0046 +-100.956 -40.8879 69.1157 +-102.757 -40.8767 69.0966 +-104.723 -40.9144 69.1605 +-106.937 -41.0298 69.3554 +-108.762 -40.9771 69.2664 +-111.24 -41.1507 69.5599 +-112.836 -40.9801 69.2714 +-116.238 -41.4409 70.0504 +-118.18 -41.3555 69.906 +-121.371 -41.6829 70.4595 +-124.332 -41.9008 70.8279 +-128.4 -42.456 71.7664 +-130.557 -42.349 71.5854 +-134.416 -42.7656 72.2896 +-135.826 -42.3796 71.6371 +-138.175 -42.2727 71.4564 +-139.67 -41.8897 70.8091 +-137.092 -40.3001 68.1221 +-136.037 -39.188 66.2422 +-117.724 -33.2255 56.1634 +-116.707 -32.2639 54.5379 +-117.697 -31.8636 53.8613 +-122.94 -32.5855 55.0816 +-140.601 -36.4762 61.6582 +-141.221 -35.8501 60.5998 +-141.38 -35.1096 59.3483 +-140.713 -34.1732 57.7654 +-140.115 -33.267 56.2335 +-139.679 -32.4109 54.7864 +-142.148 -32.2239 54.4703 +-151.223 -33.4793 56.5923 +-130.436 -28.1905 47.6524 +-111.327 -23.4792 39.6885 +-109.686 -22.564 38.1415 +-109.417 -21.9451 37.0953 +-108.762 -21.2574 35.9329 +-107.998 -20.5594 34.7529 +-107.407 -19.9046 33.6461 +-107.932 -19.4606 32.8956 +-107.884 -18.914 31.9716 +-107.635 -18.337 30.9963 +-108.04 -17.8738 30.2133 +-107.484 -17.2552 29.1677 +-107.68 -16.7622 28.3342 +-54.7486 -8.25723 13.9578 +-45.8522 -6.69441 11.316 +-38.9307 -5.49711 9.29215 +-35.9324 -4.90224 8.2866 +-32.1425 -4.23247 7.15443 +-17.5624 -2.22951 3.7687 +-16.822 -2.0563 3.47591 +-15.9797 -1.8784 3.17519 +-18.0615 -2.03875 3.44624 +-17.3132 -1.87374 3.1673 +-17.1487 -1.77643 3.00283 +-16.4913 -1.63216 2.75896 +-16.4204 -1.54955 2.61931 +-15.363 -1.37927 2.33148 +-15.4847 -1.31936 2.23021 +-15.0129 -1.21068 2.0465 +-13.5495 -1.03105 1.74285 +-15.8443 -1.13379 1.91652 +-13.1862 -0.883905 1.49412 +-14.4912 -0.905946 1.53138 +-14.2081 -0.824236 1.39326 +-13.7244 -0.734461 1.24151 +-13.9355 -0.683213 1.15488 +-13.349 -0.594645 1.00517 +-15.851 -0.635179 1.07369 +-14.7639 -0.525658 0.888557 +-15.3713 -0.478687 0.809158 +-14.7797 -0.394382 0.666652 +-14.4862 -0.322035 0.544358 +-15.2907 -0.271873 0.459566 +-14.7949 -0.197259 0.33344 +-13.8979 -0.123516 0.208788 +-14.9994 -0.0666482 0.11266 +118.6 5.32907e-15 2.84217e-14 +117.396 -0.513674 0.886419 +78.688 -0.688659 1.18838 +69.7761 -0.916115 1.58089 +67.0591 -1.17413 2.02614 +69.3339 -1.5178 2.61919 +72.5005 -1.90508 3.28749 +66.376 -2.03551 3.51257 +58.4573 -2.04955 3.53679 +49.4471 -1.95119 3.36707 +50.5071 -2.21554 3.82324 +55.6426 -2.68634 4.63567 +67.3291 -3.54813 6.12281 +66.3706 -3.7915 6.54278 +118.212 -7.27747 12.5583 +120.758 -7.97115 13.7554 +120.615 -8.49921 14.6666 +120.165 -9.00436 15.5383 +120.103 -9.53764 16.4586 +120.623 -10.1207 17.4648 +120.147 -10.622 18.3298 +120.055 -11.1564 19.252 +119.857 -11.6813 20.1578 +119.649 -12.2052 21.0619 +120.312 -12.8221 22.1264 +119.987 -13.3372 23.0152 +120.627 -13.9632 24.0955 +120.282 -14.4787 24.9852 +120.802 -15.1015 26.0599 +120.341 -15.6044 26.9276 +120.934 -16.2471 28.0367 +120.454 -16.7488 28.9025 +120.831 -17.372 29.9778 +120.428 -17.8857 30.8644 +120.303 -18.4413 31.8232 +120.645 -19.0725 32.9124 +121.069 -19.7236 34.036 +120.627 -20.2367 34.9214 +120.932 -20.878 36.028 +121.318 -21.5402 37.1707 +121.126 -22.1045 38.1445 +120.269 -22.5458 38.9061 +120.712 -23.2329 40.0918 +121.14 -23.9256 41.2871 +121.554 -24.6237 42.4918 +121.49 -25.2314 43.5405 +118.929 -25.3114 43.6785 +115.825 -25.251 43.5743 +112.64 -25.145 43.3914 +109.741 -25.0755 43.2715 +107.035 -25.025 43.1842 +104.519 -24.9959 43.1341 +101.833 -24.9028 42.9734 +99.9642 -24.9894 43.1229 +97.4761 -24.9023 42.9726 +95.6198 -24.9574 43.0677 +96.7711 -25.7986 44.5192 +97.0214 -26.4124 45.5784 +96.8204 -26.9088 46.4351 +97.4798 -27.6524 47.7182 +97.1681 -28.128 48.5389 +96.5886 -28.5266 49.2269 +96.0027 -28.9223 49.9097 +94.8989 -29.1579 50.3162 +95.0662 -29.7845 51.3975 +94.7972 -30.2802 52.2529 +94.8536 -30.885 53.2965 +95.063 -31.5479 54.4404 +95.1735 -32.1869 55.5432 +94.9393 -32.7157 56.4557 +94.5301 -33.1873 57.2696 +94.6002 -33.8326 58.3832 +94.7359 -34.5105 59.5529 +94.7747 -35.1623 60.6776 +94.7182 -35.7869 61.7554 +94.6471 -36.4135 62.8369 +94.6401 -37.0732 63.9753 +95.0086 -37.8917 65.3876 +94.1901 -38.2428 65.9936 +93.0579 -38.4621 66.372 +91.2359 -38.3844 66.2379 +90.1081 -38.5868 66.5871 +88.1501 -38.4204 66.2999 +87.1784 -38.6717 66.7337 +86.0562 -38.8503 67.0419 +84.0496 -38.6157 66.637 +82.7892 -38.7084 66.797 +81.4595 -38.7585 66.8835 +80.7819 -39.1135 67.496 +79.3848 -39.114 67.497 +78.3474 -39.2826 67.7879 +76.1888 -38.8729 67.0809 +75.7872 -39.3491 67.9026 +73.5851 -38.879 67.0914 +71.678 -38.5395 66.5055 +70.3965 -38.5189 66.47 +69.7234 -38.8255 66.999 +69.1775 -39.2042 67.6525 +68.0333 -39.2405 67.7152 +66.6983 -39.1554 67.5683 +65.4358 -39.1 67.4728 +64.1167 -38.998 67.2968 +62.995 -39.0043 67.3076 +61.6912 -38.886 67.1035 +61.0736 -39.194 67.635 +59.2934 -38.7437 66.8579 +58.6168 -39.0017 67.3031 +56.8651 -38.5312 66.4911 +56.6625 -39.103 67.4779 +54.9926 -38.6555 66.7057 +54.2603 -38.8536 67.0476 +52.6191 -38.3871 66.2425 +52.3405 -38.9068 67.1394 +50.723 -38.4236 66.3055 +50.597 -39.0645 67.4116 +49.3241 -38.8193 66.9883 +48.6466 -39.0336 67.3582 +46.6069 -38.1335 65.8048 +46.1474 -38.5078 66.4509 +44.3589 -37.7579 65.1567 +43.6 -37.8637 65.3393 +43.0378 -38.1403 65.8166 +42.3724 -38.3271 66.1391 +41.2742 -38.1145 65.7721 +40.4215 -38.1166 65.7757 +39.341 -37.8917 65.3876 +39.0886 -38.4645 66.3761 +37.6145 -37.8264 65.2749 +37.3492 -38.3951 66.2563 +36.3351 -38.195 65.911 +35.6267 -38.307 66.1044 +34.6684 -38.1421 65.8198 +33.9218 -38.2007 65.921 +33.0164 -38.0718 65.6985 +32.3135 -38.1687 65.8657 +31.3035 -37.8917 65.3876 +30.98 -38.4456 66.3435 +29.9432 -38.1132 65.7699 +29.3145 -38.2896 66.0743 +28.2968 -37.9467 65.4826 +27.8746 -38.3989 66.2629 +26.9716 -38.1886 65.8999 +26.2734 -38.2577 66.0193 +25.3844 -38.0384 65.6408 +24.9686 -38.5295 66.4883 +24.0264 -38.2069 65.9316 +23.3313 -38.2626 66.0277 +22.4372 -37.9787 65.5378 +22.051 -38.5573 66.5363 +21.1386 -38.2175 65.9499 +20.4726 -38.3085 66.107 +19.5547 -37.9112 65.4214 +19.1602 -38.5305 66.49 +18.2321 -38.0766 65.7067 +17.5687 -38.1549 65.8419 +17.0122 -38.4751 66.3944 +16.3419 -38.5481 66.5203 +15.2716 -37.6354 64.9454 +14.9022 -38.4391 66.3323 +13.9957 -37.862 65.3363 +13.3362 -37.9217 65.4395 +12.6757 -37.9786 65.5377 +12.0298 -38.0822 65.7163 +11.3518 -38.0838 65.7191 +10.7024 -38.1816 65.888 +9.90694 -37.7299 65.1085 +9.35957 -38.2197 65.9537 +8.59212 -37.8109 65.2482 +8.02779 -38.2958 66.085 +7.27469 -37.8803 65.368 +6.68485 -38.3103 66.1099 +6.00997 -38.2881 66.0717 +5.34335 -38.3129 66.1145 +4.61527 -37.8344 65.2887 +3.96707 -37.9533 65.4939 +3.30635 -37.9692 65.5214 +2.64887 -38.0323 65.6303 +1.96065 -37.5412 64.7829 +1.32464 -38.0497 65.6603 +0.65449 -37.6028 64.8891 +2.88658e-15 -38.0555 65.6703 +-0.662344 -38.054 65.6678 +-1.32464 -38.0497 65.6603 +-1.98683 -38.0425 65.6478 +-2.68028 -38.4833 66.4085 +-3.31071 -38.0193 65.6078 +-4.0194 -38.4539 66.3579 +-4.68853 -38.4349 66.3251 +-5.29452 -37.9628 65.5103 +-5.9472 -37.8882 65.3816 +-6.78943 -38.9097 67.1443 +-7.34178 -38.2296 65.9708 +-8.13231 -38.7944 66.9455 +-8.76193 -38.5581 66.5377 +-9.53018 -38.9164 67.156 +-10.0114 -38.1276 65.7947 +-10.8277 -38.6285 66.6592 +-11.4996 -38.5796 66.5748 +-12.1862 -38.5774 66.5709 +-12.8407 -38.4732 66.391 +-13.6835 -38.9093 67.1437 +-14.1779 -38.3549 66.187 +-14.9976 -38.6852 66.7569 +-15.7102 -38.7164 66.8108 +-16.3834 -38.6461 66.6895 +-17.0554 -38.573 66.5633 +-17.9286 -38.9366 67.1908 +-18.6056 -38.8567 67.0528 +-19.0876 -38.3846 66.2382 +-19.9553 -38.6879 66.7617 +-20.6279 -38.5992 66.6085 +-21.2989 -38.5074 66.4501 +-22.2164 -38.8465 67.0354 +-22.8916 -38.7479 66.8651 +-23.8283 -39.0777 67.4343 +-24.2369 -38.5416 66.5092 +-25.2158 -38.911 67.1465 +-25.8603 -38.7516 66.8716 +-26.957 -39.2533 67.7372 +-27.5724 -39.0393 67.368 +-28.5245 -39.2941 67.8078 +-28.9271 -38.7921 66.9414 +-29.8879 -39.0385 67.3667 +-30.5662 -38.9063 67.1384 +-31.6543 -39.2824 67.7875 +-32.3368 -39.1424 67.5459 +-33.3684 -39.4148 68.016 +-34.0532 -39.2673 67.7615 +-34.6946 -39.071 67.4227 +-35.7051 -39.2827 67.7881 +-36.3874 -39.125 67.5159 +-37.4975 -39.4169 68.0196 +-38.5767 -39.6569 68.4337 +-38.8638 -39.0827 67.443 +-40.269 -39.626 68.3804 +-40.7724 -39.2704 67.7668 +-41.8769 -39.4889 68.1439 +-42.324 -39.0839 67.445 +-43.7783 -39.5989 68.3336 +-44.6628 -39.5804 68.3017 +-45.6 -39.6005 68.3365 +-46.5413 -39.6155 68.3624 +-47.8985 -39.9691 68.9725 +-48.1221 -39.3732 67.9443 +-49.7594 -39.9265 68.8991 +-50.4524 -39.7073 68.5208 +-52.122 -40.242 69.4434 +-52.3236 -39.6361 68.3978 +-54.2417 -40.3201 69.5782 +-54.7148 -39.916 68.8808 +-55.8663 -40.0036 69.032 +-57.1412 -40.1658 69.312 +-58.8373 -40.6039 70.0679 +-59.3038 -40.1836 69.3427 +-60.3019 -40.1229 69.2379 +-60.9979 -39.8575 68.7799 +-62.7359 -40.2608 69.4758 +-63.2475 -39.867 68.7964 +-65.6381 -40.6408 70.1316 +-66.343 -40.3521 69.6334 +-68.1998 -40.7516 70.3229 +-68.6467 -40.2992 69.5421 +-71.0512 -40.9811 70.7189 +-71.7618 -40.6687 70.1798 +-73.6044 -40.9866 70.7283 +-74.3149 -40.663 70.1699 +-76.793 -41.2897 71.2513 +-77.3022 -40.843 70.4805 +-78.8437 -40.936 70.6411 +-79.7635 -40.6968 70.2282 +-82.0951 -41.1617 71.0304 +-82.8084 -40.8009 70.4079 +-85.026 -41.1684 71.0421 +-85.3766 -40.6223 70.0996 +-87.7624 -41.0337 70.8095 +-88.2521 -40.5465 69.9688 +-90.0692 -40.662 70.1682 +-91.4475 -40.5654 70.0015 +-93.1312 -40.5914 70.0463 +-94.5945 -40.5079 69.9024 +-97.3642 -40.9627 70.6871 +-98.305 -40.6308 70.1144 +-100.563 -40.8302 70.4585 +-102.365 -40.8256 70.4506 +-104.569 -40.9627 70.6871 +-105.754 -40.6867 70.2109 +-108.055 -40.826 70.4512 +-109.485 -40.6201 70.0958 +-113.829 -41.4656 71.555 +-114.79 -41.0534 70.8436 +-118.204 -41.4986 71.6119 +-119.416 -41.1502 71.0107 +-124.107 -41.972 72.4287 +-126.667 -42.0361 72.5395 +-130.581 -42.518 73.371 +-131.822 -42.1067 72.6612 +-135.773 -42.538 73.4055 +-137.019 -42.0995 72.6488 +-139.204 -41.9374 72.369 +-138.981 -41.0467 70.8321 +-125.4 -36.3006 62.642 +-121.589 -34.4914 59.52 +-116.149 -32.2808 55.7053 +-115.389 -31.4125 54.2069 +-116.991 -31.189 53.8211 +-120.633 -31.4862 54.334 +-140.334 -35.8511 61.8664 +-141.221 -35.3029 60.9202 +-141.021 -34.4858 59.5103 +-140.262 -33.5437 57.8845 +-139.934 -32.7168 56.4577 +-140.407 -32.0825 55.3631 +-148.451 -33.1392 57.1866 +-157.734 -34.3877 59.341 +-137.984 -29.3667 50.6765 +-111.42 -23.1399 39.9314 +-110.428 -22.3698 38.6024 +-109.324 -21.5918 37.2598 +-108.669 -20.915 36.0918 +-107.811 -20.2105 34.8761 +-107.783 -19.6694 33.9424 +-107.744 -19.1301 33.0117 +-107.789 -18.609 32.1125 +-108.583 -18.2162 31.4347 +-107.564 -17.5235 30.2393 +-108.342 -17.1276 29.5561 +-107.68 -16.5063 28.484 +-65.1039 -9.6691 16.6854 +-49.7934 -7.15885 12.3536 +-40.6652 -5.65442 9.75753 +-37.7677 -5.07397 8.75587 +-32.1425 -4.16786 7.19226 +-17.5624 -2.19548 3.78862 +-17.0165 -2.04832 3.53468 +-16.7592 -1.93996 3.34768 +-16.4018 -1.82315 3.14611 +-17.0198 -1.81386 3.13008 +-17.2467 -1.75932 3.03596 +-16.7858 -1.63595 2.82307 +-16.617 -1.54417 2.66469 +-16.6433 -1.4714 2.53912 +-16.2737 -1.36543 2.35625 +-15.1116 -1.20005 2.07086 +-14.4396 -1.08201 1.86717 +-15.9433 -1.12346 1.93869 +-14.376 -0.948946 1.63754 +-14.1934 -0.873787 1.50785 +-15.4004 -0.879764 1.51816 +-15.3156 -0.807107 1.39278 +-15.3291 -0.740062 1.27708 +-15.1422 -0.664226 1.14622 +-15.7513 -0.621548 1.07257 +-15.3625 -0.538618 0.929464 +-15.6707 -0.480563 0.829282 +-14.9794 -0.393611 0.679233 +-15.2854 -0.334616 0.577429 +-14.791 -0.258974 0.446898 +-15.5947 -0.204748 0.353322 +-13.8979 -0.121631 0.209892 +-12.9995 -0.0568802 0.098155 +118.6 5.32907e-15 2.84217e-14 +117.496 -0.506084 0.891775 +84.8871 -0.731316 1.28866 +76.8736 -0.993546 1.75074 +76.7532 -1.32289 2.33107 +72.1313 -1.55439 2.739 +77.993 -2.01741 3.55489 +73.9618 -2.23273 3.93431 +70.5278 -2.43414 4.28922 +54.0329 -2.09886 3.69843 +58.377 -2.52079 4.4419 +64.9994 -3.08907 5.44328 +71.6056 -3.71458 6.54548 +81.8703 -4.60392 8.11261 +119.999 -7.27215 12.8143 +120.857 -7.85312 13.838 +119.723 -8.30468 14.6337 +120.264 -8.87109 15.6318 +120.103 -9.38874 16.544 +119.834 -9.89756 17.4406 +120.147 -10.4562 18.4249 +120.055 -10.9823 19.3519 +119.857 -11.4989 20.2623 +120.531 -12.1033 21.3273 +120.312 -12.6219 22.2412 +120.865 -13.2251 23.3041 +120.627 -13.7452 24.2205 +120.282 -14.2527 25.1148 +120.123 -14.7821 26.0477 +120.341 -15.3607 27.0673 +120.934 -15.9934 28.1822 +120.454 -16.4874 29.0525 +120.927 -17.1144 30.1574 +121.195 -17.7186 31.2222 +120.877 -18.24 32.1408 +121.313 -18.8787 33.2662 +121.355 -19.4615 34.2932 +120.532 -19.9051 35.0749 +120.27 -20.4396 36.0167 +120.658 -21.0886 37.1604 +121.032 -21.7425 38.3127 +120.456 -22.2284 39.1689 +120.712 -22.8702 40.2998 +121.047 -23.5339 41.4694 +120.997 -24.1284 42.5168 +121.398 -24.8186 43.733 +117.641 -24.6462 43.4293 +114.908 -24.66 43.4536 +111.727 -24.5517 43.2628 +109.741 -24.684 43.496 +106.31 -24.4674 43.1142 +103.707 -24.4144 43.0208 +101.923 -24.5356 43.2344 +99.2482 -24.4231 43.0361 +96.7633 -24.3343 42.8797 +95.6198 -24.5678 43.2911 +97.5657 -25.6043 45.1176 +96.9335 -25.9765 45.7734 +96.7329 -26.4648 46.6338 +96.9576 -27.0749 47.7088 +96.4752 -27.4914 48.4429 +96.6748 -28.1063 49.5264 +96.6885 -28.6742 50.527 +96.0073 -29.0379 51.1679 +95.3206 -29.398 51.8025 +94.7972 -29.8075 52.524 +94.1827 -30.1878 53.1941 +94.9796 -31.0281 54.6749 +94.9248 -31.6016 55.6855 +94.4449 -32.0372 56.4531 +94.694 -32.7259 57.6665 +94.6002 -33.3045 58.6861 +94.7359 -33.9718 59.8619 +94.7747 -34.6133 60.9924 +94.798 -35.2578 62.1281 +95.1231 -36.0254 63.4806 +94.5613 -36.4641 64.2537 +94.4608 -37.085 65.3479 +95.2004 -38.0496 67.0475 +93.7524 -38.1442 67.2143 +92.6148 -38.3562 67.5878 +91.2487 -38.4652 67.7798 +90.5651 -38.8567 68.4698 +87.478 -38.1988 67.3104 +86.7993 -38.5741 67.9718 +85.1555 -38.513 67.8641 +84.0325 -38.6763 68.1519 +82.33 -38.5611 67.9489 +81.8609 -39.0171 68.7524 +79.3134 -38.4688 67.7862 +78.8424 -38.9136 68.5701 +77.6607 -39.0053 68.7316 +76.6903 -39.1963 69.0681 +74.2046 -38.5943 68.0073 +74.1332 -39.2373 69.1403 +71.0721 -38.2815 67.4561 +70.9278 -38.8796 68.51 +69.7739 -38.9248 68.5897 +69.083 -39.2239 69.1167 +67.4127 -38.9569 68.6463 +66.7214 -39.2458 69.1554 +64.7528 -38.77 68.317 +64.0019 -39.0091 68.7382 +62.3137 -38.6652 68.1323 +62.0587 -39.2044 69.0824 +60.3891 -38.8437 68.4468 +59.6399 -39.0629 68.8331 +57.9357 -38.6438 68.0946 +57.603 -39.1315 68.9539 +55.9798 -38.7351 68.2555 +55.2354 -38.9343 68.6065 +53.582 -38.4793 67.8046 +53.4588 -39.1178 68.9298 +51.6613 -38.5234 67.8824 +51.5229 -39.1584 69.0013 +49.9151 -38.6712 68.1428 +49.1235 -38.801 68.3715 +47.9654 -38.6323 68.0743 +46.9715 -38.5836 67.9885 +45.4754 -38.104 67.1434 +44.5 -38.042 67.0341 +43.7765 -38.1892 67.2935 +43.0026 -38.29 67.4711 +41.8945 -38.0833 67.1069 +41.2196 -38.2623 67.4224 +39.7566 -37.6942 66.4212 +39.5426 -38.3038 67.4954 +38.4176 -38.0309 67.0145 +37.7438 -38.1949 67.3036 +36.6795 -37.9551 66.881 +36.0071 -38.1116 67.1568 +35.0416 -37.9509 66.8735 +34.654 -38.416 67.6931 +33.6145 -38.1564 67.2357 +32.9386 -38.2998 67.4883 +32.0306 -38.1665 67.2536 +31.2422 -38.1658 67.2522 +30.3097 -37.9774 66.9203 +29.9596 -38.5212 67.8785 +28.9271 -38.1865 67.2887 +28.5587 -38.727 68.2412 +27.2386 -37.9646 66.8977 +26.8919 -38.5471 67.9242 +25.6699 -37.8658 66.7237 +25.2158 -38.3035 67.4949 +24.5376 -38.4107 67.6837 +23.8283 -38.4677 67.7842 +22.9484 -38.2376 67.3787 +22.2991 -38.3824 67.634 +21.3791 -38.0489 67.0463 +20.9385 -38.5686 67.9621 +20.0304 -38.2273 67.3606 +19.3538 -38.3121 67.5101 +18.4655 -37.9621 66.8933 +17.9511 -38.3768 67.6241 +17.4017 -38.7418 68.2672 +16.7161 -38.8153 68.3967 +15.7102 -38.112 67.1574 +15.2647 -38.7596 68.2985 +14.3966 -38.3385 67.5566 +13.8398 -38.7393 68.2629 +12.8902 -38.0186 66.9928 +12.374 -38.5601 67.9471 +11.5439 -38.1238 67.1783 +10.9808 -38.5631 67.9524 +10.181 -38.1685 67.2571 +9.62768 -38.7008 68.1949 +8.84117 -38.2995 67.4878 +8.15322 -38.287 67.4658 +7.47597 -38.3206 67.5251 +6.78943 -38.3022 67.4927 +6.00997 -37.6904 66.4145 +5.49681 -38.798 68.3662 +4.68242 -37.7856 66.5823 +4.07697 -38.3958 67.6576 +3.40231 -38.4612 67.7729 +2.71518 -38.3758 67.6222 +2.01039 -37.8926 66.7709 +1.35954 -38.4426 67.7401 +0.669325 -37.8548 66.7043 +3.66374e-15 -38.5472 67.9244 +-0.669325 -37.8548 66.7043 +-1.36129 -38.492 67.8271 +-2.00777 -37.8433 66.6839 +-2.72565 -38.5237 67.883 +-3.40667 -38.5106 67.8598 +-4.08744 -38.4944 67.8313 +-4.68853 -37.8349 66.6692 +-5.50379 -38.8472 68.453 +-6.11196 -38.33 67.5416 +-6.86787 -38.7447 68.2724 +-7.4568 -38.2224 67.3519 +-8.31001 -39.0233 68.7632 +-8.89777 -38.5446 67.9198 +-9.63987 -38.7498 68.2813 +-10.2855 -38.56 67.9469 +-11.0921 -38.9541 68.6414 +-11.6622 -38.5144 67.8665 +-12.4678 -38.8526 68.4626 +-13.0058 -38.3593 67.5933 +-13.8398 -38.7393 68.2629 +-14.3602 -38.2415 67.3856 +-15.2075 -38.6142 68.0424 +-15.77 -38.257 67.413 +-16.529 -38.3807 67.631 +-17.2502 -38.4045 67.6729 +-18.1311 -38.7615 68.302 +-18.6056 -38.2501 67.4007 +-19.4505 -38.5037 67.8477 +-20.1306 -38.4185 67.6975 +-21.042 -38.7594 68.2982 +-21.5394 -38.3343 67.5492 +-22.7401 -39.1415 68.9716 +-23.1473 -38.5688 67.9625 +-24.3838 -39.3645 69.3644 +-24.8082 -38.8343 68.4302 +-25.772 -39.1484 68.9838 +-26.1776 -38.6147 68.0433 +-27.2175 -39.0138 68.7466 +-27.8395 -38.8021 68.3734 +-28.7639 -39.0053 68.7316 +-29.5225 -38.9724 68.6736 +-30.5329 -39.2585 69.1777 +-31.2259 -39.1255 68.9433 +-32.2536 -39.4013 69.4294 +-32.9873 -39.3065 69.2623 +-33.642 -39.1175 68.9293 +-34.3323 -38.9711 68.6714 +-35.7928 -39.6785 69.9178 +-36.2027 -39.2084 69.0894 +-37.1904 -39.3641 69.3638 +-37.885 -39.2024 69.0789 +-39.2781 -39.7475 70.0394 +-39.3993 -39.0026 68.7269 +-40.9953 -39.711 69.9751 +-41.6959 -39.5329 69.6613 +-42.8158 -39.744 70.0333 +-43.0874 -39.1677 69.0178 +-44.651 -39.7577 70.0573 +-45.3522 -39.5639 69.7158 +-46.3 -39.5807 69.7456 +-46.9981 -39.3798 69.3915 +-48.6196 -39.9374 70.374 +-49.5329 -39.8948 70.2989 +-50.7133 -40.0566 70.5841 +-51.2047 -39.6702 69.9031 +-53.0478 -40.3174 71.0436 +-53.7587 -40.0874 70.6383 +-55.4719 -40.5908 71.5254 +-56.0742 -40.269 70.9584 +-57.415 -40.4707 71.3137 +-58.1284 -40.2219 70.8753 +-59.1312 -40.1696 70.7832 +-59.8392 -39.9134 70.3317 +-61.686 -40.4031 71.1946 +-62.0328 -39.9009 70.3097 +-63.6594 -40.2156 70.8643 +-64.6793 -40.133 70.7188 +-66.5192 -40.5433 71.4417 +-67.2335 -40.2553 70.9342 +-69.6139 -40.9472 72.1534 +-70.3352 -40.6459 71.6224 +-72.1665 -40.9746 72.2017 +-73.1533 -40.8101 71.9117 +-75.1434 -41.1904 72.5819 +-75.8688 -40.8651 72.0087 +-78.3616 -41.4753 73.0839 +-78.3348 -40.7424 71.7925 +-80.8582 -41.3266 72.8219 +-81.3756 -40.8711 72.0193 +-83.1558 -41.0426 72.3215 +-83.8783 -40.6828 71.6875 +-86.3208 -41.1429 72.4982 +-87.0449 -40.7695 71.8403 +-89.0789 -40.9989 72.2446 +-89.358 -40.4136 71.2132 +-92.15 -40.952 72.1618 +-92.8705 -40.5535 71.4597 +-94.9425 -40.7348 71.7791 +-95.9632 -40.4525 71.2817 +-99.0495 -41.0212 72.2837 +-98.9994 -40.279 70.976 +-102.972 -41.1557 72.5208 +-103.539 -40.6492 71.6282 +-106.618 -41.1133 72.446 +-107.341 -40.6525 71.634 +-110.451 -41.0797 72.3869 +-111.415 -40.6905 71.701 +-115.285 -41.3405 72.8464 +-116.256 -40.9284 72.1202 +-120.661 -41.7 73.4799 +-122.877 -41.6819 73.4481 +-127.174 -42.3379 74.6039 +-128.252 -41.8975 73.8279 +-132.426 -42.4456 74.7938 +-134.015 -42.1388 74.2532 +-136.79 -42.1877 74.3394 +-137.36 -41.5454 73.2074 +-138.861 -41.181 72.5653 +-135.62 -39.429 69.4781 +-121.677 -34.6728 61.0972 +-110.622 -30.8906 54.4326 +-112.214 -30.7001 54.0969 +-113.016 -30.2863 53.3677 +-116.019 -30.4472 53.6512 +-120.013 -30.8351 54.3348 +-141.135 -35.4931 62.5427 +-140.415 -34.5535 60.887 +-140.392 -33.796 59.5522 +-139.449 -32.8288 57.8479 +-140.296 -32.2895 56.8976 +-141.681 -31.8682 56.1552 +-157.587 -34.6294 61.0207 +-176.167 -37.8067 66.6196 +-154 -32.2638 56.8524 +-111.697 -22.8354 40.2384 +-110.335 -22.0021 38.7701 +-109.045 -21.2004 37.3575 +-108.575 -20.5708 36.248 +-107.811 -19.895 35.0571 +-108.065 -19.4129 34.2077 +-107.744 -18.8314 33.183 +-107.978 -18.3506 32.3357 +-107.73 -17.7909 31.3494 +-107.564 -17.2499 30.3962 +-108.342 -16.8602 29.7095 +-107.967 -16.2919 28.7081 +-107.867 -15.7702 27.7887 +-103.24 -14.6112 25.7465 +-43.267 -5.92226 10.4357 +-41.3416 -5.46744 9.63422 +-33.2075 -4.23873 7.4691 +-25.4217 -3.12837 5.51253 +-17.2109 -2.03939 3.59363 +-16.6617 -1.89857 3.34548 +-16.7923 -1.83741 3.23772 +-16.0416 -1.68292 2.96549 +-16.5607 -1.66297 2.93033 +-16.884 -1.61983 2.85431 +-17.0103 -1.55604 2.74191 +-17.0372 -1.48272 2.61271 +-15.5833 -1.28709 2.26799 +-15.6055 -1.21992 2.14963 +-15.1319 -1.11618 1.96683 +-15.4482 -1.07157 1.88823 +-14.4751 -0.940572 1.65739 +-15.0867 -0.91428 1.61106 +-14.8042 -0.832507 1.46697 +-15.4151 -0.799665 1.4091 +-16.1254 -0.766354 1.3504 +-15.2418 -0.658156 1.15974 +-14.2559 -0.553762 0.975789 +-14.7639 -0.509554 0.897889 +-15.8703 -0.479087 0.844203 +-14.9794 -0.387466 0.682757 +-14.3863 -0.310016 0.546282 +-14.691 -0.253209 0.446181 +-14.695 -0.189923 0.334665 +-14.7977 -0.127485 0.224643 +-14.3995 -0.062022 0.10929 +118.9 5.32907e-15 2.84217e-14 +117.696 -0.498862 0.897826 +90.4862 -0.767126 1.38063 +85.5707 -1.08832 1.9587 +88.546 -1.50182 2.70289 +82.7212 -1.75418 3.15708 +88.6783 -2.25723 4.06245 +77.8545 -2.31278 4.16242 +84.7929 -2.87983 5.18297 +65.1984 -2.49221 4.48535 +79.6956 -3.38649 6.09483 +75.0529 -3.51 6.31713 +118.646 -6.05671 10.9006 +119.924 -6.63634 11.9437 +120.197 -7.16808 12.9007 +120.857 -7.72794 13.9083 +120.02 -8.1926 14.7446 +120.462 -8.74406 15.7371 +120.498 -9.26948 16.6827 +119.834 -9.73978 17.5292 +120.245 -10.2979 18.5336 +120.055 -10.8072 19.4502 +120.74 -11.399 20.5154 +120.531 -11.9104 21.4356 +121.29 -12.5217 22.5359 +120.084 -12.9302 23.2711 +120.724 -13.537 24.3632 +120.379 -14.0368 25.2628 +120.22 -14.5583 26.2012 +120.922 -15.1889 27.3362 +121.031 -15.7511 28.348 +120.454 -16.2245 29.2001 +121.023 -16.8549 30.3346 +120.524 -17.3396 31.207 +121.068 -17.9777 32.3553 +120.645 -18.4755 33.2512 +121.45 -19.1662 34.4944 +120.627 -19.6032 35.2809 +121.405 -20.3035 36.5412 +121.601 -20.9146 37.6409 +121.22 -21.4291 38.5671 +121.393 -22.0442 39.674 +120.992 -22.5578 40.5985 +121.14 -23.1766 41.7121 +122.203 -23.9803 43.1584 +121.767 -24.4973 44.089 +117.272 -24.1774 43.5133 +114.816 -24.2475 43.6395 +111.909 -24.1998 43.5536 +108.103 -23.928 43.0645 +106.491 -24.1184 43.4071 +103.707 -24.0252 43.2394 +101.294 -23.9955 43.1858 +99.3377 -24.0555 43.2938 +96.8524 -23.9685 43.1372 +95.7972 -24.2211 43.5918 +96.9476 -25.0366 45.0596 +97.0214 -25.5856 46.0476 +96.9953 -26.1136 46.9979 +96.3484 -26.4759 47.6499 +96.8216 -27.1503 48.8638 +96.6748 -27.6583 49.7779 +96.3456 -28.117 50.6036 +96.6041 -28.7527 51.7476 +95.575 -29.0066 52.2046 +95.3032 -29.4889 53.0726 +94.8536 -29.9182 53.8452 +94.3959 -30.3459 54.6149 +94.6761 -31.0164 55.8217 +94.6921 -31.6091 56.8884 +94.7759 -32.2321 58.0096 +94.6002 -32.7736 58.9842 +94.8168 -33.4587 60.2173 +94.7747 -34.0616 61.3023 +94.8779 -34.725 62.4963 +95.3611 -35.5398 63.9627 +94.9553 -36.0323 64.8491 +94.7738 -36.6148 65.8975 +95.045 -37.3819 67.2781 +94.2154 -37.7216 67.8894 +94.1469 -38.3692 69.0549 +92.1612 -38.2305 68.8054 +90.6406 -38.2692 68.8749 +89.2006 -38.3301 68.9845 +88.2113 -38.5767 69.4284 +86.4826 -38.4897 69.2718 +85.2027 -38.5898 69.452 +83.5631 -38.5148 69.317 +82.796 -38.8338 69.8911 +81.1679 -38.7407 69.7235 +80.1152 -38.9115 70.031 +78.3617 -38.73 69.7042 +77.7323 -39.0956 70.3622 +75.9943 -38.8951 70.0013 +75.3608 -39.2512 70.6423 +72.8286 -38.6023 69.4744 +71.8646 -38.7651 69.7675 +69.6414 -38.2316 68.8072 +69.9359 -39.0751 70.3254 +68.5168 -38.9638 70.125 +67.7498 -39.2155 70.5781 +65.9613 -38.8641 69.9456 +65.4493 -39.2554 70.6499 +63.3097 -38.657 69.5729 +62.6743 -38.9622 70.1222 +61.424 -38.8796 69.9735 +60.3019 -38.8669 69.9506 +58.9469 -38.6915 69.635 +58.3671 -39.0185 70.2235 +56.9089 -38.7503 69.7409 +55.8663 -38.7513 69.7427 +55.1113 -38.9466 70.0942 +54.4095 -39.1788 70.5119 +53.1515 -39.0028 70.1953 +52.013 -38.9007 70.0116 +50.8285 -38.7511 69.7422 +50.1304 -38.965 70.1272 +48.9059 -38.7619 69.7617 +48.2591 -39.0094 70.207 +46.2875 -38.1662 68.6895 +45.65 -38.403 69.1157 +44.2196 -37.9609 68.32 +44.0207 -38.5717 69.4194 +42.3717 -37.9031 68.2161 +41.9238 -38.2957 68.9226 +40.7724 -38.0411 68.4645 +40.3144 -38.4288 69.1623 +38.7746 -37.7724 67.9808 +38.5328 -38.3718 69.0596 +37.4975 -38.183 68.7198 +36.7678 -38.2964 68.924 +35.7051 -38.0531 68.486 +35.1014 -38.2917 68.9154 +33.9734 -37.949 68.2987 +33.3684 -38.181 68.7162 +32.3368 -37.9171 68.2413 +31.9539 -38.413 69.1338 +30.9694 -38.1855 68.7242 +30.6046 -38.7234 69.6923 +29.2073 -37.9417 68.2856 +28.9007 -38.5661 69.4093 +27.8729 -38.2293 68.8032 +27.2175 -38.3919 69.0958 +26.2411 -38.0913 68.5548 +25.8338 -38.6168 69.5005 +24.8082 -38.2152 68.7778 +24.413 -38.7834 69.8004 +23.2041 -38.0472 68.4754 +22.8228 -38.6577 69.5741 +21.8334 -38.2381 68.8189 +21.1455 -38.3291 68.9828 +20.2557 -38.0411 68.4645 +19.5957 -38.1727 68.7013 +18.8624 -38.1598 68.6781 +18.356 -38.6169 69.5007 +17.51 -38.3613 69.0407 +16.8824 -38.5766 69.4282 +16.0691 -38.3611 69.0403 +15.4174 -38.5231 69.3319 +14.5788 -38.2049 68.7593 +13.9092 -38.3131 68.954 +13.1708 -38.2269 68.7988 +12.5304 -38.4252 69.1556 +11.81 -38.3808 69.0757 +11.1338 -38.4774 69.2497 +10.416 -38.4269 69.1587 +9.74955 -38.566 69.409 +8.94305 -38.1232 68.6123 +8.35182 -38.5944 69.4603 +7.57181 -38.1932 68.7382 +6.95503 -38.6109 69.49 +6.18258 -38.1548 68.669 +5.56657 -38.664 69.5855 +4.81062 -38.2013 68.7528 +4.17641 -38.7053 69.6598 +3.39359 -37.7511 67.9425 +2.75706 -38.3465 69.0141 +2.06536 -38.3082 68.9451 +1.38049 -38.4126 69.1331 +0.687651 -38.2713 68.8787 +3.55271e-15 -38.807 69.8429 +-0.689396 -38.3684 69.0535 +-1.38049 -38.4126 69.1331 +-2.06798 -38.3567 69.0325 +-2.79196 -38.8319 69.8877 +-3.44593 -38.3334 68.9904 +-4.18688 -38.8023 69.8345 +-4.82283 -38.2983 68.9273 +-5.56657 -38.664 69.5855 +-6.26888 -38.6874 69.6276 +-6.95503 -38.6109 69.49 +-7.63891 -38.5317 69.3473 +-8.41454 -38.8842 69.9819 +-9.03362 -38.5093 69.307 +-9.83486 -38.9034 70.0164 +-10.4029 -38.3787 69.0721 +-11.2313 -38.8141 69.8556 +-11.7508 -38.1886 68.7299 +-12.6243 -38.713 69.6736 +-13.3028 -38.6101 69.4885 +-13.9787 -38.5044 69.2983 +-14.6517 -38.396 69.1031 +-15.3983 -38.4754 69.2461 +-16.0292 -38.2659 68.869 +-16.924 -38.6716 69.5992 +-17.2502 -37.7923 68.0166 +-18.356 -38.6169 69.5007 +-18.9791 -38.396 69.1031 +-19.9344 -38.8325 69.8887 +-20.5061 -38.5114 69.3108 +-21.3267 -38.6576 69.5739 +-22.0472 -38.6125 69.4928 +-22.7676 -38.5643 69.406 +-23.6869 -38.8389 69.9002 +-24.6177 -39.1086 70.3856 +-25.2894 -38.9564 70.1117 +-26.081 -38.9863 70.1656 +-26.4949 -38.4597 69.2179 +-27.771 -39.1726 70.5008 +-28.1399 -38.5956 69.4624 +-29.5505 -39.4333 70.97 +-29.8377 -38.7606 69.7594 +-30.9272 -39.1315 70.4268 +-31.9223 -39.3604 70.8388 +-32.6657 -39.2686 70.6736 +-32.949 -38.6351 69.5334 +-34.4234 -39.3881 70.8888 +-34.731 -38.7953 69.8218 +-36.1996 -39.4897 71.0715 +-36.8662 -39.2906 70.7131 +-38.2047 -39.7931 71.6175 +-38.0141 -38.709 69.6666 +-39.6288 -39.4632 71.0238 +-40.4701 -39.4241 70.9534 +-41.4493 -39.5107 71.1094 +-42.527 -39.6782 71.4108 +-43.4731 -39.7108 71.4695 +-43.9463 -39.3117 70.7512 +-45.5721 -39.9311 71.8659 +-46.0416 -39.525 71.1351 +-47.45 -39.9172 71.8409 +-48.3684 -39.882 71.7776 +-49.5982 -40.0918 72.1551 +-50.0554 -39.673 71.4013 +-51.5082 -40.036 72.0547 +-52.333 -39.898 71.8064 +-53.4291 -39.9599 71.9177 +-54.7521 -40.1774 72.3092 +-55.8075 -40.1854 72.3236 +-56.6973 -40.0674 72.1112 +-58.2754 -40.4223 72.75 +-59.1736 -40.2925 72.5163 +-60.248 -40.2758 72.4864 +-61.1478 -40.1361 72.2349 +-62.2879 -40.1469 72.2544 +-63.1894 -39.997 71.9846 +-65.137 -40.4931 72.8774 +-65.2395 -39.8354 71.6937 +-68.2183 -40.9162 73.6389 +-68.8873 -40.588 73.0482 +-70.2567 -40.6666 73.1896 +-71.2445 -40.515 72.9167 +-73.0194 -40.798 73.4261 +-74.4122 -40.8507 73.5209 +-76.4147 -41.2195 74.1847 +-77.2875 -40.9657 73.7279 +-79.4528 -41.3825 74.4781 +-80.1245 -41.009 73.8058 +-81.9697 -41.2268 74.1979 +-82.4269 -40.7392 73.3204 +-83.9336 -40.7661 73.3688 +-84.9481 -40.545 72.9708 +-87.2559 -40.9257 73.6559 +-87.4801 -40.3202 72.5663 +-89.8102 -40.6766 73.2077 +-90.5377 -40.2945 72.5199 +-92.5215 -40.4617 72.8208 +-93.9939 -40.3898 72.6915 +-96.4519 -40.7227 73.2907 +-97.332 -40.3755 72.6658 +-100.275 -40.8668 73.55 +-101.623 -40.6874 73.2271 +-103.671 -40.7747 73.3842 +-105.339 -40.6966 73.2437 +-107.957 -40.9662 73.7289 +-109.007 -40.6254 73.1154 +-111.969 -40.9803 73.7542 +-114.067 -40.9953 73.7812 +-117.793 -41.5665 74.8092 +-119.187 -41.2913 74.3139 +-122.709 -41.7318 75.1067 +-124.525 -41.5677 74.8114 +-128.998 -42.2605 76.0583 +-130.42 -41.9266 75.4573 +-133.6 -42.1394 75.8403 +-136.039 -42.0934 75.7576 +-137.469 -41.7211 75.0875 +-138.895 -41.3399 74.4014 +-132.518 -38.6734 69.6024 +-125.539 -35.9163 64.6403 +-117.866 -33.0515 59.4844 +-110.883 -30.47 54.8383 +-111.427 -29.9988 53.9903 +-113.28 -29.873 53.764 +-115.931 -29.939 53.8827 +-120.013 -30.3436 54.6108 +-140.779 -34.8391 62.7017 +-140.147 -33.9377 61.0794 +-139.852 -33.1295 59.6248 +-139.901 -32.41 58.3299 +-142.018 -32.1648 57.8885 +-149.416 -33.0722 59.5217 +-177.136 -38.3049 68.9392 +-203.954 -43.0723 77.5193 +-212.913 -43.8952 79.0003 +-113.637 -22.8617 41.1453 +-110.984 -21.7787 39.1963 +-108.952 -20.8447 37.5152 +-108.389 -20.2081 36.3694 +-107.811 -19.5778 35.2352 +-108.065 -19.1035 34.3815 +-108.121 -18.5961 33.4683 +-107.978 -18.0581 32.5 +-107.824 -17.5227 31.5364 +-107.85 -17.02 30.6316 +-107.484 -16.46 29.6238 +-108.349 -16.089 28.9561 +-107.771 -15.505 27.9051 +-107.565 -14.9807 26.9614 +-53.096 -7.15176 12.8714 +-45.2053 -5.88307 10.5881 +-37.1769 -4.66976 8.40439 +-33.9604 -4.11251 7.40148 +-17.6971 -2.06358 3.71392 +-17.2464 -1.93386 3.48046 +-16.6947 -1.79761 3.23525 +-16.0416 -1.6561 2.98056 +-17.2467 -1.70424 3.06721 +-15.706 -1.4828 2.66866 +-16.912 -1.52239 2.73991 +-16.7417 -1.43378 2.58044 +-15.6819 -1.27459 2.29394 +-16.9882 -1.30684 2.35199 +-15.2308 -1.10557 1.98974 +-14.5569 -0.993654 1.78833 +-15.5657 -0.995315 1.79132 +-15.186 -0.905626 1.6299 +-14.5061 -0.802742 1.44473 +-14.6195 -0.746304 1.34316 +-15.2296 -0.712242 1.28186 +-14.6441 -0.622267 1.11992 +-13.8572 -0.529689 0.953307 +-15.4622 -0.525148 0.945134 +-15.8703 -0.47145 0.848492 +-15.3789 -0.391457 0.704525 +-15.2854 -0.324142 0.583373 +-14.791 -0.250868 0.451499 +-14.695 -0.186896 0.336366 +-13.9979 -0.118672 0.213579 +-13.5995 -0.0576427 0.103742 +119 5.77316e-15 2.84217e-14 +117.796 -0.491161 0.903064 +116.882 -0.974777 1.79226 +116.66 -1.45957 2.68361 +116.929 -1.95092 3.58703 +114.891 -2.39669 4.40663 +114.842 -2.87563 5.28722 +115.185 -3.36601 6.18886 +117.413 -3.9228 7.21258 +117.437 -4.41594 8.11929 +119.643 -5.00119 9.19535 +118.651 -5.45863 10.0364 +120.437 -6.04803 11.1201 +120.222 -6.54454 12.033 +120.297 -7.05721 12.9756 +120.163 -7.5585 13.8973 +120.912 -8.11904 14.9279 +120.66 -8.6158 15.8413 +120.498 -9.11857 16.7657 +120.031 -9.59698 17.6453 +120.442 -10.1469 18.6564 +120.154 -10.6399 19.5629 +119.955 -11.1405 20.4833 +120.629 -11.726 21.5597 +120.41 -12.2284 22.4836 +121.061 -12.8231 23.577 +120.724 -13.3166 24.4843 +120.379 -13.8083 25.3884 +120.996 -14.4138 26.5016 +120.534 -14.8937 27.3841 +120.837 -15.4699 28.4435 +120.55 -15.9732 29.3688 +120.158 -16.462 30.2676 +120.715 -17.0845 31.4121 +121.164 -17.6989 32.5418 +120.836 -18.2034 33.4694 +121.45 -18.8542 34.666 +120.911 -19.3295 35.5399 +121.499 -19.9885 36.7515 +120.752 -20.4305 37.5642 +121.314 -21.0966 38.7889 +120.737 -21.5681 39.6559 +121.085 -22.2077 40.8318 +120.582 -22.6942 41.7264 +121.647 -23.4825 43.1757 +120.936 -23.934 44.0057 +117.641 -23.8585 43.867 +114.908 -23.8718 43.8915 +111.818 -23.7865 43.7345 +108.376 -23.5979 43.3879 +105.766 -23.5643 43.3261 +103.075 -23.4901 43.1897 +100.485 -23.4163 43.054 +98.6218 -23.4933 43.1955 +96.496 -23.4915 43.1922 +97.2164 -24.1797 44.4575 +97.0359 -24.6514 45.3249 +97.1972 -25.2147 46.3605 +97.9574 -25.9432 47.7001 +96.6095 -26.1154 48.0166 +96.9082 -26.7322 49.1507 +96.244 -27.0867 49.8025 +96.3456 -27.6593 50.8552 +96.4336 -28.2347 51.9132 +95.999 -28.661 52.697 +95.4719 -29.0601 53.4309 +94.8536 -29.4311 54.1129 +94.9796 -30.0364 55.2259 +95.0077 -30.6183 56.2958 +94.9393 -31.1756 57.3205 +94.694 -31.6799 58.2477 +94.9259 -32.351 59.4816 +94.3314 -32.7455 60.207 +94.8551 -33.5355 61.6594 +94.9578 -34.1885 62.86 +94.9644 -34.8158 64.0134 +94.7977 -35.3869 65.0635 +94.5391 -35.9295 66.0612 +94.7341 -36.6531 67.3915 +94.2925 -37.1378 68.2828 +94.3001 -37.806 69.5113 +92.9216 -37.9185 69.7181 +92.2255 -38.3044 70.4277 +90.6236 -38.3076 70.4335 +89.549 -38.5241 70.8317 +87.8835 -38.4764 70.744 +86.8117 -38.6784 71.1154 +84.7237 -38.414 70.6292 +83.8031 -38.6662 71.093 +82.3091 -38.6458 71.0554 +81.388 -38.8862 71.4974 +79.2027 -38.5084 70.8027 +78.0796 -38.6309 71.0281 +76.8204 -38.6778 71.1142 +76.5884 -39.2412 72.1501 +74.923 -39.0659 71.8278 +73.136 -38.8086 71.3548 +71.4967 -38.6111 70.9916 +70.7888 -38.9078 71.5371 +69.6208 -38.9471 71.6094 +68.9068 -39.2359 72.1404 +66.661 -38.6369 71.0391 +66.3933 -39.1733 72.0252 +64.6793 -38.8503 71.4315 +64.0288 -39.1562 71.9938 +61.9719 -38.5877 70.9487 +61.2648 -38.8447 71.421 +60.0771 -38.7913 71.323 +59.2488 -38.963 71.6387 +58.0703 -38.8974 71.5181 +57.3576 -39.1381 71.9605 +55.7344 -38.7457 71.2391 +55.416 -39.2539 72.1734 +53.7035 -38.7663 71.2769 +52.9934 -38.9887 71.6859 +51.3121 -38.4829 70.7558 +51.0842 -39.06 71.8169 +49.7941 -38.8234 71.3819 +49.0831 -39.0295 71.7609 +47.4548 -38.4917 70.772 +46.55 -38.5226 70.8288 +45.2537 -38.2162 70.2655 +44.457 -38.3198 70.456 +43.326 -38.1258 70.0994 +42.8628 -38.5159 70.8166 +41.4189 -38.0151 69.8958 +41.2223 -38.6546 71.0716 +39.4439 -37.7988 69.4981 +39.1465 -38.3483 70.5085 +37.8419 -37.9063 69.6958 +37.3595 -38.2792 70.3813 +36.0783 -37.8248 69.5459 +35.8335 -38.454 70.7027 +34.412 -37.8132 69.5246 +34.0718 -38.351 70.5135 +33.0256 -38.0944 70.0415 +32.3285 -38.2306 70.2921 +31.2626 -37.9194 69.7199 +30.9272 -38.4944 70.777 +29.8727 -38.1743 70.1885 +29.1743 -38.2974 70.4149 +28.1733 -38.0122 69.8905 +27.771 -38.5349 70.8514 +26.8122 -38.2867 70.3951 +26.081 -38.3516 70.5145 +25.1089 -38.0488 69.9577 +24.6762 -38.5632 70.9036 +23.7153 -38.2523 70.332 +23.0708 -38.4416 70.68 +22.1273 -38.122 70.0923 +21.6373 -38.582 70.9381 +20.7064 -38.2544 70.3358 +20.0311 -38.3857 70.5772 +19.0958 -38.0032 69.8738 +18.581 -38.4538 70.7023 +17.6182 -37.97 69.8129 +17.1527 -38.5561 70.8905 +16.2285 -38.1112 70.0724 +15.5891 -38.318 70.4528 +14.7429 -38.0058 69.8786 +14.1871 -38.4422 70.6811 +13.3524 -38.1229 70.094 +12.7807 -38.5546 70.8878 +11.9282 -38.1339 70.1143 +11.2591 -38.2768 70.377 +10.429 -37.8486 69.5897 +9.94454 -38.6969 71.1493 +9.1355 -38.3096 70.4372 +8.53998 -38.8214 71.3782 +7.74434 -38.4275 70.654 +7.03347 -38.4107 70.6232 +6.33165 -38.4386 70.6744 +5.62935 -38.4635 70.7203 +4.92662 -38.4855 70.7608 +4.22351 -38.5046 70.7958 +3.48083 -38.0911 70.0356 +2.81639 -38.5339 70.8497 +2.08892 -38.1144 70.0784 +1.40841 -38.5516 70.8822 +0.69725 -38.1738 70.1876 +2.44249e-15 -38.6052 70.9808 +-0.69725 -38.1738 70.1876 +-1.4119 -38.6471 71.0579 +-2.11248 -38.5442 70.8686 +-2.82337 -38.6295 71.0254 +-3.52445 -38.5685 70.9133 +-4.22351 -38.5046 70.7958 +-4.93272 -38.5332 70.8484 +-5.69213 -38.8925 71.509 +-6.26104 -38.0099 69.8862 +-7.03347 -38.4107 70.6232 +-7.73475 -38.38 70.5666 +-8.52952 -38.7739 71.2909 +-9.12418 -38.2621 70.35 +-9.92016 -38.602 70.9749 +-10.6248 -38.5592 70.8961 +-11.3287 -38.5134 70.812 +-12.0317 -38.4647 70.7225 +-12.7651 -38.5075 70.8011 +-13.4679 -38.4528 70.7005 +-14.3086 -38.7716 71.2867 +-14.8704 -38.3346 70.4832 +-15.7608 -38.7402 71.2289 +-16.3482 -38.392 70.5888 +-17.1319 -38.5094 70.8046 +-17.748 -38.2499 70.3275 +-18.7384 -38.7796 71.3015 +-19.3526 -38.5142 70.8135 +-20.3698 -39.0347 71.7705 +-20.8567 -38.532 70.8461 +-21.8443 -38.9512 71.6169 +-22.3144 -38.4443 70.6849 +-23.3465 -38.9009 71.5245 +-23.9141 -38.573 70.9216 +-25.1732 -39.34 72.3317 +-25.6502 -38.869 71.4658 +-26.3591 -38.7606 71.2664 +-27.0978 -38.6945 71.1449 +-28.0965 -38.9866 71.6821 +-28.8075 -38.868 71.464 +-30.132 -39.5545 72.7263 +-30.328 -38.7561 71.2582 +-31.5722 -39.2973 72.2532 +-32.2888 -39.1641 72.0085 +-33.2651 -39.3381 72.3283 +-33.7144 -38.8889 71.5025 +-35.1267 -39.5385 72.6968 +-35.4887 -38.9962 71.6997 +-36.769 -39.4578 72.5485 +-37.4883 -39.303 72.2638 +-38.585 -39.535 72.6902 +-38.9182 -38.9845 71.6781 +-40.4178 -39.5937 72.7982 +-40.9163 -39.2099 72.0925 +-42.2665 -39.6338 72.8719 +-42.9888 -39.456 72.5451 +-44.3651 -39.8659 73.2987 +-44.8529 -39.4695 72.5698 +-46.2508 -39.866 73.2988 +-46.9772 -39.6716 72.9415 +-48.4 -40.0535 73.6437 +-48.8759 -39.6444 72.8914 +-50.0617 -39.8077 73.1917 +-51.2571 -39.9641 73.4792 +-52.462 -40.1135 73.754 +-53.1927 -39.8933 73.349 +-54.8452 -40.3511 74.1909 +-55.3041 -39.9217 73.4014 +-57.3173 -40.6007 74.6497 +-57.7734 -40.1632 73.8454 +-59.3652 -40.5079 74.4791 +-60.1028 -40.2589 74.0212 +-61.1297 -40.2 73.913 +-62.04 -40.0588 73.6534 +-63.6118 -40.3328 74.1572 +-64.407 -40.104 73.7364 +-66.553 -40.6999 74.8321 +-66.7336 -40.0843 73.7002 +-68.9106 -40.6585 74.7561 +-69.8414 -40.4803 74.4283 +-71.9279 -40.9561 75.3033 +-72.6732 -40.6547 74.7489 +-74.9219 -41.1795 75.7139 +-75.87 -40.9729 75.334 +-77.9537 -41.3651 76.0552 +-78.7063 -41.0385 75.4547 +-80.6804 -41.3377 76.0049 +-81.2258 -40.8958 75.1924 +-83.6369 -41.3805 76.0834 +-83.8287 -40.7576 74.9382 +-85.6306 -40.9132 75.2244 +-86.5886 -40.6551 74.7498 +-88.1191 -40.6577 74.7545 +-89.076 -40.3873 74.2574 +-91.7118 -40.8616 75.1295 +-92.4546 -40.4777 74.4236 +-94.9739 -40.858 75.1227 +-95.0425 -40.1755 73.8679 +-97.8858 -40.6554 74.7503 +-98.8528 -40.3387 74.1681 +-102.19 -40.9693 75.3274 +-103.321 -40.6936 74.8205 +-104.138 -40.2913 74.0809 +-105.417 -40.0638 73.6625 +-108.036 -40.3287 74.1497 +-110.276 -40.4293 74.3347 +-113.965 -41.0319 75.4426 +-114.871 -40.612 74.6706 +-119.977 -41.6481 76.5755 +-120.489 -41.063 75.4997 +-123.528 -41.3264 75.984 +-126.503 -41.5405 76.3776 +-118.304 -38.1259 70.0995 +-131.504 -41.5869 76.4629 +-115.149 -35.7284 65.6914 +-134.943 -41.0744 75.5207 +-117.624 -35.1173 64.5678 +-132.671 -38.8445 71.4208 +-125.061 -35.9029 66.0122 +-115.717 -32.5671 59.879 +-111.977 -30.889 56.7934 +-111.667 -30.1856 55.5002 +-111.514 -29.5336 54.3014 +-113.455 -29.4323 54.1151 +-116.549 -29.6086 54.4393 +-121.698 -30.2687 55.6531 +-140.423 -34.1852 62.854 +-140.415 -33.4491 61.5007 +-140.122 -32.653 60.0369 +-140.081 -31.9235 58.6956 +-149.631 -33.3373 61.295 +-157.696 -34.3368 63.1328 +-208.014 -44.2498 81.359 +-209.365 -43.4951 79.9715 +-199.381 -40.4363 74.3475 +-121.675 -24.0802 44.2746 +-111.633 -21.5495 39.6215 +-109.696 -20.6454 37.9594 +-108.482 -19.8962 36.5818 +-107.624 -19.2256 35.3488 +-107.971 -18.7761 34.5224 +-108.215 -18.3093 33.6641 +-107.505 -17.6863 32.5186 +-108.109 -17.2829 31.7768 +-108.135 -16.7872 30.8654 +-108.056 -16.2782 29.9297 +-108.732 -15.8829 29.2029 +-108.251 -15.3204 28.1686 +-108.815 -14.908 27.4103 +-66.5869 -8.82292 16.2221 +-54.9612 -7.03628 12.9371 +-41.2431 -5.09618 9.36999 +-39.394 -4.69284 8.62841 +-31.6993 -3.63612 6.68548 +-28.0619 -3.09539 5.69128 +-16.597 -1.758 3.23232 +-16.8241 -1.70861 3.1415 +-16.3647 -1.59076 2.92483 +-15.6079 -1.44954 2.66517 +-15.8304 -1.40182 2.57744 +-16.6433 -1.40214 2.57802 +-15.9778 -1.27749 2.34884 +-15.803 -1.19588 2.19878 +-15.6265 -1.11582 2.05158 +-15.8443 -1.06392 1.95616 +-16.0614 -1.01029 1.85755 +-15.3845 -0.902526 1.65941 +-16.692 -0.908661 1.67069 +-16.4096 -0.82405 1.51512 +-14.9309 -0.68691 1.26298 +-15.9391 -0.66627 1.22503 +-15.851 -0.59604 1.0959 +-16.2603 -0.543259 0.998853 +-14.8722 -0.434607 0.799081 +-14.4801 -0.362579 0.66665 +-15.0856 -0.314696 0.57861 +-15.6904 -0.26179 0.481336 +-15.3947 -0.192608 0.354135 +-13.9979 -0.11674 0.214641 +-13.4995 -0.0562872 0.103491 +119.2 7.10543e-15 2.84217e-14 +118.795 -0.487089 0.915157 +117.882 -0.966764 1.81638 +117.76 -1.44882 2.72209 +117.828 -1.93323 3.63221 +117.488 -2.41012 4.52819 +119.137 -2.93354 5.51161 +116.682 -3.35306 6.29981 +118.91 -3.90672 7.34005 +119.829 -4.43097 8.32503 +120.639 -4.95899 9.31708 +120.244 -5.43992 10.2207 +120.437 -5.94744 11.1742 +120.222 -6.4357 12.0916 +120.297 -6.93984 13.0388 +120.163 -7.4328 13.9649 +120.12 -7.93172 14.9023 +119.77 -8.41002 15.801 +120.498 -8.96692 16.8473 +119.932 -9.42962 17.7166 +120.54 -9.98624 18.7624 +120.154 -10.463 19.6582 +120.838 -11.0359 20.7346 +119.747 -11.4467 21.5063 +120.41 -12.0251 22.593 +120.182 -12.5183 23.5197 +120.724 -13.0951 24.6035 +120.477 -13.5896 25.5326 +120.899 -14.1627 26.6092 +120.728 -14.6696 27.5616 +121.127 -15.2491 28.6505 +120.55 -15.7075 29.5117 +120.158 -16.1882 30.4149 +120.715 -16.8004 31.565 +120.399 -17.2947 32.4937 +120.836 -17.9007 33.6323 +121.545 -18.5552 34.862 +121.196 -19.0528 35.7969 +121.026 -19.5796 36.7866 +121.035 -20.1378 37.8354 +121.314 -20.7458 38.9777 +121.018 -21.2588 39.9417 +121.459 -21.9057 41.1571 +120.861 -22.3684 42.0264 +121.925 -23.1448 43.485 +120.012 -23.3561 43.8821 +116.536 -23.2415 43.6667 +113.899 -23.2687 43.7179 +110.996 -23.2189 43.6242 +108.376 -23.2055 43.5991 +105.041 -23.0135 43.2385 +102.443 -22.9579 43.1339 +99.6763 -22.8415 42.9153 +97.9058 -22.9348 43.0906 +95.8723 -22.9515 43.1218 +96.6842 -23.6474 44.4294 +96.8594 -24.1973 45.4626 +97.1093 -24.7729 46.5439 +98.3947 -25.6257 48.1462 +96.7836 -25.7273 48.3372 +96.9082 -26.2876 49.3899 +96.244 -26.6362 50.0449 +96.3456 -27.1993 51.1027 +96.5189 -27.7896 52.2119 +96.6775 -28.3835 53.3277 +95.6406 -28.6273 53.7858 +95.273 -29.0696 54.6167 +95.4799 -29.6925 55.787 +95.0906 -30.1353 56.6191 +94.4449 -30.4975 57.2995 +94.7759 -31.18 58.5818 +94.9259 -31.813 59.7711 +94.8168 -32.3666 60.8113 +94.9355 -33.0057 62.012 +94.9578 -33.6199 63.1659 +94.9644 -34.2367 64.3249 +94.2461 -34.5959 64.9997 +94.9304 -35.4782 66.6574 +94.9672 -36.1322 67.8862 +94.8327 -36.7294 69.0082 +95.3725 -37.6 70.644 +93.9862 -37.715 70.86 +94.7161 -38.6846 72.6816 +91.9718 -38.2309 71.8292 +91.2582 -38.6065 72.5349 +89.5055 -38.5348 72.4003 +88.7863 -38.9003 73.087 +86.1019 -38.3897 72.1275 +85.7453 -38.9044 73.0947 +83.7356 -38.6617 72.6387 +83.2265 -39.1033 73.4683 +80.8849 -38.6722 72.6584 +80.7193 -39.2728 73.7868 +78.1971 -38.7161 72.7409 +78.0888 -39.3445 73.9216 +75.3959 -38.6586 72.6329 +74.675 -38.9663 73.2109 +72.6894 -38.6024 72.5272 +71.7073 -38.7571 72.8179 +69.7507 -38.3708 72.0921 +69.6782 -39.0153 73.3029 +68.2512 -38.9007 73.0876 +68.5959 -39.7997 74.7769 +66.2356 -39.1235 73.5062 +65.5064 -39.3935 74.0136 +63.6764 -38.9897 73.2549 +63.5517 -39.6245 74.4476 +61.0883 -38.7883 72.8765 +61.0121 -39.4554 74.1299 +58.5349 -38.5565 72.441 +58.8489 -39.4878 74.1908 +56.6406 -38.7208 72.7498 +56.3666 -39.2632 73.7688 +54.697 -38.8268 72.9489 +54.4639 -39.4042 74.0338 +52.7628 -38.9127 73.1103 +52.409 -39.4065 74.0381 +50.3689 -38.6184 72.5573 +50.4737 -39.4678 74.1532 +48.8252 -38.9445 73.1701 +48.35 -39.3467 73.9257 +46.0908 -38.2758 71.9136 +45.8145 -38.8331 72.9608 +43.8509 -37.9459 71.2939 +43.8956 -38.788 72.876 +41.9729 -37.883 71.1756 +42.0395 -38.7653 72.8333 +40.3363 -38.0112 71.4164 +40.0233 -38.5551 72.4384 +39.0904 -38.5057 72.3456 +38.3737 -38.6645 72.644 +37.198 -38.3501 72.0532 +36.769 -38.8016 72.9015 +35.2494 -38.0891 71.5629 +35.1267 -38.881 73.0506 +33.6379 -38.1553 71.6873 +33.1152 -38.5097 72.353 +32.2888 -38.5128 72.3589 +31.5005 -38.556 72.44 +30.2229 -37.9795 71.357 +30.132 -38.8967 73.0802 +28.7408 -38.133 71.6453 +28.1942 -38.4715 72.2813 +27.0661 -38.0064 71.4075 +26.6682 -38.5628 72.4528 +25.6502 -38.2226 71.8136 +24.9393 -38.3263 72.0085 +24.2265 -38.4271 72.1978 +23.5119 -38.5249 72.3817 +22.5816 -38.2577 71.8796 +22.1031 -38.7573 72.8182 +21.1321 -38.3915 72.1311 +20.4182 -38.4767 72.2911 +19.4927 -38.1478 71.6731 +18.9409 -38.5467 72.4226 +18.0294 -38.2101 71.7902 +17.527 -38.7421 72.7897 +16.707 -38.5823 72.4895 +16.1043 -38.926 73.1353 +15.0527 -38.1591 71.6943 +14.6559 -39.0522 73.3723 +13.6494 -38.323 72.0023 +13.0623 -38.7488 72.8022 +12.2091 -38.3826 72.1143 +11.621 -38.85 72.9924 +10.7815 -38.4769 72.2914 +10.1761 -38.9393 73.1603 +9.35059 -38.5594 72.4465 +8.72813 -39.0168 73.3059 +7.82101 -38.1625 71.7008 +7.2775 -39.0825 73.4292 +6.40226 -38.2209 71.8105 +5.81071 -39.0425 73.354 +4.96935 -38.1738 71.7219 +4.33865 -38.8965 73.0798 +3.55062 -38.2087 71.7875 +2.90713 -39.114 73.4884 +2.13604 -38.3259 72.0078 +1.44157 -38.803 72.9041 +0.712085 -38.3376 72.0297 +2.44249e-15 -38.8089 72.9152 +-0.712085 -38.3376 72.0297 +-1.45728 -39.2258 73.6985 +-2.13604 -38.3259 72.0078 +-2.91411 -39.2078 73.6648 +-3.55934 -38.3025 71.9639 +-4.37005 -39.178 73.6087 +-4.98156 -38.2675 71.8981 +-5.84559 -39.2768 73.7944 +-6.48072 -38.6893 72.6905 +-7.26007 -38.9888 73.2533 +-7.89769 -38.5367 72.4038 +-8.67586 -38.7832 72.8669 +-9.38455 -38.6995 72.7096 +-10.2127 -39.0792 73.4232 +-10.8206 -38.6166 72.554 +-11.6627 -38.9896 73.2546 +-12.2534 -38.522 72.3762 +-12.9684 -38.4703 72.2791 +-13.5999 -38.184 71.7411 +-14.5517 -38.7746 72.8507 +-15.1073 -38.2976 71.9546 +-15.9898 -38.6493 72.6154 +-16.5276 -38.1679 71.711 +-17.6101 -38.9259 73.1351 +-18.0511 -38.2559 71.8763 +-19.0534 -38.7756 72.8526 +-19.5627 -38.2848 71.9306 +-20.7327 -39.0693 73.4045 +-21.3574 -38.8009 72.9002 +-22.4137 -39.3019 73.8414 +-22.9023 -38.801 72.9003 +-23.9804 -39.2927 73.8243 +-24.2265 -38.4271 72.1978 +-25.6995 -39.4945 74.2033 +-26.1614 -38.9843 73.2448 +-27.2244 -39.3671 73.964 +-27.669 -38.853 72.998 +-28.6826 -39.1379 73.5333 +-29.2081 -38.753 72.8103 +-30.5424 -39.4266 74.0757 +-31.0984 -39.0798 73.4241 +-32.3965 -39.6526 74.5004 +-32.5453 -38.8188 72.9338 +-34.2016 -39.773 74.7265 +-34.5946 -39.2405 73.7262 +-35.83 -39.6595 74.5133 +-36.2862 -39.2094 73.6678 +-37.7045 -39.7888 74.7564 +-38.2347 -39.4189 74.0614 +-39.5571 -39.8568 74.8841 +-39.9084 -39.3115 73.8595 +-41.4261 -39.9064 74.9773 +-41.9426 -39.5248 74.2604 +-43.3107 -39.9375 75.0356 +-44.0508 -39.7584 74.6991 +-45.6326 -40.323 75.7599 +-45.5209 -39.3911 74.0091 +-47.3659 -40.1481 75.4313 +-47.8636 -39.7479 74.6795 +-49.9 -40.6081 76.2955 +-50.4493 -40.24 75.604 +-51.6583 -40.3941 75.8935 +-51.7796 -39.7 74.5894 +-53.8398 -40.4823 76.0593 +-54.321 -40.0619 75.2694 +-56.3701 -40.7834 76.6249 +-56.7943 -40.3156 75.7461 +-58.3797 -40.6655 76.4034 +-59.1328 -40.4246 75.9508 +-60.9712 -40.9119 76.8663 +-60.7415 -40.01 75.172 +-62.6579 -40.5197 76.1295 +-62.6348 -39.7702 74.7214 +-65.4173 -40.7877 76.6331 +-65.8071 -40.2943 75.706 +-68.1537 -40.9856 77.0048 +-68.9124 -40.7046 76.4769 +-71.1132 -41.2603 77.521 +-72.0677 -41.0759 77.1746 +-73.7277 -41.2828 77.5632 +-74.6865 -41.0861 77.1936 +-77.6118 -41.9484 78.8139 +-77.7916 -41.3119 77.618 +-79.9611 -41.7246 78.3934 +-80.5304 -41.2913 77.5792 +-82.7264 -41.6811 78.3117 +-83.0844 -41.1359 77.2872 +-84.9567 -41.3344 77.6603 +-85.0904 -40.6829 76.4362 +-87.1863 -40.9637 76.9638 +-87.3732 -40.3412 75.7942 +-90.1333 -40.8953 76.8353 +-90.4542 -40.3301 75.7734 +-93.467 -40.9511 76.94 +-94.519 -40.6933 76.4557 +-97.5006 -41.2473 77.4966 +-97.3642 -40.4724 76.0407 +-101.056 -41.2738 77.5464 +-101.21 -40.6138 76.3063 +-104.182 -41.0731 77.1693 +-105.404 -40.8237 76.7007 +-105.614 -40.183 75.4969 +-105.809 -39.5437 74.2958 +-107.721 -39.5423 74.2931 +-112.894 -40.7009 76.4699 +-118.677 -42.0178 78.9441 +-118.489 -41.1942 77.3969 +-110.431 -37.6966 70.8255 +-102.579 -34.3776 64.5896 +-98.544 -32.4196 60.9109 +-102.027 -32.9458 61.8995 +-100.894 -31.9745 60.0746 +-105.236 -32.7265 61.4875 +-105.337 -32.1403 60.3861 +-109.135 -32.6665 61.3747 +-109.059 -32.0186 60.1574 +-116.556 -33.5587 63.051 +-112.375 -31.7244 59.6047 +-111.926 -30.9763 58.1991 +-111.371 -30.2108 56.7609 +-110.796 -29.4522 55.3357 +-114.488 -29.8169 56.0208 +-113.631 -28.9876 54.4627 +-119.198 -29.7779 55.9476 +-122.94 -30.0691 56.4946 +-140.155 -33.5526 63.0396 +-140.505 -32.9138 61.8394 +-141.021 -32.3159 60.716 +-143.421 -32.141 60.3874 +-165.945 -36.357 68.3085 +-188.635 -40.3903 75.8865 +-213.496 -44.6605 83.9094 +-207.256 -42.3408 79.5511 +-194.779 -38.8459 72.9847 +-127.218 -24.7585 46.517 +-111.818 -21.2263 39.8806 +-110.161 -20.3882 38.3058 +-109.136 -19.6832 36.9813 +-108.467 -19.0539 35.7991 +-107.877 -18.4478 34.6602 +-107.555 -17.895 33.6217 +-108.451 -17.5451 32.9643 +-107.919 -16.9656 31.8755 +-107.85 -16.4644 30.9338 +-108.056 -16.0075 30.0753 +-108.732 -15.6188 29.345 +-108.634 -15.119 28.406 +-108.911 -14.673 27.568 +-108.794 -14.1757 26.6337 +-105.479 -13.2791 24.9492 +-52.5704 -6.38778 12.0015 +-48.2237 -5.64914 10.6138 +-39.2837 -4.43116 8.32539 +-37.903 -4.11139 7.7246 +-18.2567 -1.90165 3.57286 +-17.411 -1.7388 3.26691 +-17.2467 -1.64862 3.09747 +-16.3932 -1.49715 2.81289 +-16.2237 -1.41276 2.65433 +-16.2493 -1.34618 2.52925 +-15.7806 -1.24074 2.33113 +-15.5067 -1.15394 2.16805 +-16.9122 -1.18754 2.23119 +-16.0423 -1.0593 1.99025 +-15.5657 -0.962827 1.80899 +-14.9874 -0.864616 1.62446 +-16.5926 -0.88823 1.66883 +-15.3156 -0.756322 1.421 +-16.225 -0.734028 1.37911 +-16.238 -0.667475 1.25407 +-15.3525 -0.567695 1.0666 +-15.0632 -0.494893 0.929819 +-14.7724 -0.42451 0.797581 +-15.0793 -0.371303 0.697614 +-15.5852 -0.319709 0.600678 +-15.3906 -0.252517 0.474436 +-15.3947 -0.189405 0.355859 +-13.4979 -0.110698 0.207982 +-14.1995 -0.0582213 0.109388 +118.6 5.32907e-15 2.84217e-14 +118.895 -0.479218 0.920295 +118.982 -0.959203 1.84206 +117.96 -1.42662 2.7397 +118.728 -1.91489 3.67737 +119.186 -2.40341 4.61552 +119.236 -2.8861 5.5425 +118.678 -3.35247 6.43811 +119.907 -3.87255 7.43687 +119.73 -4.35205 8.35772 +119.743 -4.83846 9.29182 +119.647 -5.32092 10.2183 +120.437 -5.84637 11.2274 +120.421 -6.33677 12.1692 +120.396 -6.82754 13.1117 +120.262 -7.31249 14.043 +120.219 -7.80335 14.9856 +120.66 -8.32853 15.9942 +120.399 -8.80734 16.9137 +119.932 -9.26938 17.801 +120.54 -9.81654 18.8518 +120.154 -10.2852 19.7518 +119.955 -10.7691 20.681 +120.629 -11.335 21.7678 +120.312 -11.8111 22.6822 +121.061 -12.3955 23.8045 +120.822 -12.883 24.7406 +120.477 -13.3587 25.6542 +120.802 -13.9108 26.7144 +120.631 -14.4087 27.6706 +121.127 -14.99 28.7869 +120.743 -15.4653 29.6997 +121.023 -16.0277 30.7797 +120.715 -16.5149 31.7153 +121.259 -17.1223 32.8818 +120.931 -17.6104 33.8191 +121.45 -18.2256 35.0006 +121.48 -18.773 36.0518 +121.026 -19.2468 36.9618 +120.847 -19.7647 37.9563 +121.314 -20.3932 39.1633 +121.205 -20.9299 40.1939 +121.272 -21.5004 41.2895 +121.14 -22.0391 42.3241 +121.925 -22.7514 43.6921 +119.642 -22.8885 43.9552 +115.431 -22.6299 43.4587 +112.248 -22.5418 43.2895 +109.351 -22.4862 43.1826 +106.829 -22.4855 43.1814 +104.225 -22.4468 43.107 +101.631 -22.3887 42.9956 +99.0471 -22.3116 42.8474 +97.2794 -22.4008 43.0188 +96.6742 -22.7502 43.6896 +96.7729 -23.2669 44.6819 +96.9476 -23.8078 45.7207 +96.8456 -24.2858 46.6386 +97.3452 -24.9215 47.8594 +96.9576 -25.3356 48.6548 +96.735 -25.7947 49.5364 +96.3301 -26.2071 50.3283 +96.4313 -26.7608 51.3917 +95.8368 -27.1243 52.0898 +96.0838 -27.7298 53.2527 +96.6527 -28.4386 54.6138 +96.7826 -29.0283 55.7462 +94.646 -28.9329 55.5631 +94.6761 -29.4941 56.6407 +94.4449 -29.9792 57.5724 +94.7759 -30.6501 58.8608 +94.8445 -31.2455 60.0042 +94.9786 -31.8709 61.2052 +94.2924 -32.225 61.8852 +95.0376 -33.0763 63.5201 +95.0437 -33.683 64.6852 +94.9553 -34.2639 65.8007 +94.226 -34.6166 66.4779 +94.9672 -35.5182 68.2095 +94.987 -36.164 69.4496 +95.1427 -36.872 70.8093 +94.9747 -37.464 71.9463 +94.867 -38.0878 73.1441 +94.4433 -38.5911 74.1107 +94.0821 -39.1248 75.1356 +91.2749 -38.6288 74.1832 +91.1998 -39.2787 75.4312 +88.7133 -38.8818 74.669 +88.4788 -39.4624 75.784 +85.6614 -38.8788 74.6631 +85.2064 -39.3532 75.5742 +82.497 -38.7727 74.4595 +82.1781 -39.3031 75.478 +80.1933 -39.0297 74.9531 +79.862 -39.5541 75.9601 +77.1524 -38.887 74.679 +77.2177 -39.6083 76.0642 +75.0749 -39.1917 75.264 +74.7251 -39.7019 76.2438 +71.5042 -38.667 74.2564 +71.3494 -39.2721 75.4185 +70.0322 -39.2375 75.352 +69.8546 -39.8413 76.5115 +68.3521 -39.6876 76.2163 +67.6612 -39.9979 76.8124 +65.4419 -39.3897 75.6444 +64.996 -39.8364 76.5021 +62.8133 -39.2058 75.2912 +63.1281 -40.13 77.066 +60.7996 -39.3677 75.6021 +60.5123 -39.9139 76.651 +58.7363 -39.4712 75.8008 +58.4357 -40.0127 76.8408 +56.132 -39.1683 75.2192 +56.4791 -40.1677 77.1385 +54.1598 -39.2643 75.4035 +53.8928 -39.8335 76.4967 +52.2499 -39.3798 75.6253 +51.8128 -39.8264 76.483 +49.9925 -39.198 75.2763 +49.9 -39.918 76.6588 +48.0605 -39.2332 75.3439 +47.9477 -39.9506 76.7215 +45.3301 -38.5593 74.0497 +45.2101 -39.2707 75.4159 +43.5891 -38.673 74.2681 +43.4923 -39.4234 75.709 +42.1211 -39.0185 74.9315 +41.6014 -39.3944 75.6533 +39.9084 -38.6434 74.2112 +39.7261 -39.3469 75.5622 +38.0688 -38.5809 74.0912 +37.7045 -39.1127 75.1124 +36.4058 -38.6702 74.2626 +36.2208 -39.4106 75.6845 +34.5946 -38.5737 74.0773 +34.2016 -39.0971 75.0824 +33.1317 -38.8467 74.6015 +32.5756 -39.1943 75.2692 +31.2735 -38.6319 74.1891 +30.9186 -39.2339 75.3452 +29.5085 -38.4863 73.9095 +29.236 -39.2152 75.3092 +28.1767 -38.8935 74.6914 +27.7188 -39.4009 75.6659 +26.4922 -38.8064 74.5241 +25.9918 -39.265 75.4049 +24.7093 -38.5269 73.9873 +24.6144 -39.6461 76.1368 +23.3032 -38.8092 74.5295 +22.7502 -39.2139 75.3068 +21.6078 -38.5887 74.106 +21.2649 -39.3913 75.6475 +20.0063 -38.4875 73.9118 +19.5932 -39.1967 75.2737 +18.7437 -39.0487 74.9895 +18.0259 -39.168 75.2185 +17.0061 -38.6055 74.1384 +16.6958 -39.67 76.1826 +15.5447 -38.7367 74.3903 +15.0379 -39.3892 75.6434 +14.0786 -38.8561 74.6197 +13.469 -39.2763 75.4266 +12.5786 -38.8723 74.6507 +11.9828 -39.3789 75.6236 +11.0164 -38.6472 74.2185 +10.493 -39.4695 75.7975 +9.55435 -38.7302 74.3778 +8.95809 -39.3643 75.5956 +8.08938 -38.8013 74.5143 +7.41695 -39.1545 75.1926 +6.60626 -38.7685 74.4513 +5.97813 -39.4847 75.8268 +5.14029 -38.8158 74.5423 +4.43286 -39.0657 75.0221 +3.67275 -38.8514 74.6105 +2.95599 -39.0955 75.0793 +2.2041 -38.875 74.6559 +1.47822 -39.1133 75.1136 +0.731284 -38.7021 74.3239 +2.22045e-15 -39.304 75.4798 +-0.73652 -38.9793 74.8561 +-1.4852 -39.298 75.4683 +-2.2041 -38.875 74.6559 +-2.99089 -39.557 75.9657 +-3.68148 -38.9436 74.7877 +-4.45379 -39.2502 75.3764 +-5.14029 -38.8158 74.5423 +-5.95023 -39.3004 75.4729 +-6.64549 -38.9987 74.8935 +-7.46925 -39.4305 75.7228 +-8.0798 -38.7553 74.426 +-9.03126 -39.6858 76.2131 +-9.65623 -39.1432 75.1709 +-10.4564 -39.332 75.5335 +-11.1339 -39.0593 75.0099 +-12.122 -39.8362 76.5019 +-12.4603 -38.5069 73.9489 +-13.4847 -39.3219 75.5141 +-14.0786 -38.8561 74.6197 +-15.1248 -39.6166 76.0801 +-15.4718 -38.555 74.0414 +-16.6195 -39.4886 75.8343 +-17.0858 -38.7865 74.486 +-18.0259 -39.168 75.2185 +-18.7437 -39.0487 74.9895 +-19.7057 -39.4217 75.7058 +-20.1697 -38.8019 74.5155 +-21.1924 -39.2569 75.3893 +-21.8081 -38.9464 74.7931 +-23.009 -39.66 76.1635 +-23.517 -39.1652 75.2133 +-24.5042 -39.4685 75.7958 +-24.9934 -38.9697 74.8378 +-26.255 -39.6625 76.1683 +-26.853 -39.3349 75.5392 +-28.0896 -39.928 76.6781 +-28.2084 -38.9373 74.7756 +-30.0174 -40.2632 77.3218 +-30.1761 -39.3571 75.5816 +-31.8421 -40.4057 77.5956 +-32.149 -39.7135 76.2661 +-33.2207 -39.9704 76.7596 +-33.9747 -39.835 76.4996 +-35.5502 -40.6387 78.0429 +-35.6278 -39.7258 76.2898 +-37.1195 -40.3885 77.5624 +-37.1634 -39.4749 75.808 +-39.006 -40.4628 77.7052 +-39.5617 -40.0939 76.9968 +-41.0785 -40.6864 78.1346 +-41.286 -39.9774 76.7729 +-43.0042 -40.7227 78.2043 +-43.1919 -40.0105 76.8365 +-44.9905 -40.7814 78.3169 +-45.5284 -40.3937 77.5724 +-46.6655 -40.5349 77.8436 +-47.0479 -40.0206 76.8558 +-49.0627 -40.8797 78.5057 +-49.1439 -40.1176 77.0422 +-51.05 -40.8379 78.4256 +-51.2106 -40.1531 77.1104 +-53.564 -41.1724 79.0679 +-53.6084 -40.4037 77.5916 +-55.5885 -41.0869 78.9036 +-56.0941 -40.6666 78.0964 +-58.0585 -41.2911 79.2958 +-58.6157 -40.9015 78.5475 +-61.1198 -41.8506 80.3703 +-60.8887 -40.9176 78.5785 +-62.1757 -41.0111 78.7581 +-62.6578 -40.5709 77.9128 +-65.2442 -41.4752 79.6493 +-65.3115 -40.7651 78.2857 +-67.8246 -41.57 79.8314 +-67.7551 -40.7821 78.3183 +-70.8011 -41.854 80.3769 +-70.9044 -41.1695 79.0623 +-73.3158 -41.8154 80.3026 +-73.9123 -41.4114 79.5268 +-76.8131 -42.2795 81.1938 +-76.8297 -41.5468 79.7869 +-79.3831 -42.1767 80.9966 +-79.9782 -41.7514 80.1798 +-82.5038 -42.3199 81.2715 +-82.0167 -41.3387 79.3873 +-84.7042 -41.9524 80.5657 +-85.4936 -41.6094 79.9071 +-87.1102 -41.6619 80.0079 +-87.6137 -41.1775 79.0776 +-89.449 -41.3126 79.3372 +-90.0122 -40.8534 78.4553 +-93.2264 -41.5799 79.8505 +-92.993 -40.7575 78.2712 +-97.27 -41.8931 80.4519 +-97.2469 -41.1562 79.0368 +-101.068 -42.0298 80.7144 +-100.36 -41.0088 78.7537 +-104.225 -41.8451 80.3597 +-104.404 -41.1834 79.089 +-108.089 -41.8892 80.4444 +-108.182 -41.1876 79.097 +-106.158 -39.7036 76.2472 +-105.652 -38.8142 74.5392 +-106.854 -38.5575 74.0462 +-116.782 -41.3869 79.4797 +-121.153 -42.1654 80.9748 +-112.379 -38.4063 73.7558 +-97.7293 -32.7939 62.9778 +-96.8797 -31.916 61.2918 +-97.7248 -31.6038 60.6923 +-99.3896 -31.5488 60.5866 +-100.562 -31.3278 60.1622 +-102.485 -31.3292 60.1649 +-104.498 -31.3425 60.1905 +-106.52 -31.342 60.1895 +-108.55 -31.3276 60.1619 +-111.184 -31.4681 60.4316 +-111.689 -30.995 59.5231 +-111.409 -30.3092 58.2061 +-112.323 -29.9514 57.519 +-114.539 -29.9297 57.4772 +-126.645 -32.4225 62.2646 +-121.453 -30.4564 58.4887 +-140.124 -34.4107 66.0826 +-139.97 -33.6527 64.627 +-140.155 -32.9825 63.3398 +-140.415 -32.3339 62.0943 +-156.75 -35.3098 67.8094 +-160.299 -35.313 67.8155 +-209.901 -45.2058 86.8137 +-211.293 -44.473 85.4064 +-196.869 -40.4825 77.7431 +-191.666 -38.4905 73.9175 +-193.49 -37.9331 72.8471 +-137.288 -26.2643 50.4383 +-111.633 -20.831 40.004 +-109.789 -19.974 38.3582 +-108.949 -19.3156 37.0938 +-108.373 -18.714 35.9385 +-108.065 -18.1659 34.886 +-108.31 -17.7142 34.0186 +-108.073 -17.1868 33.0057 +-108.299 -16.7359 32.1399 +-107.85 -16.1846 31.0811 +-108.438 -15.791 30.3251 +-109.114 -15.4074 29.5884 +-108.634 -14.862 28.5412 +-108.815 -14.4109 27.6748 +-110.047 -14.0952 27.0686 +-109.633 -13.5675 26.0552 +-62.3487 -7.44721 14.3017 +-52.8811 -6.08945 11.6942 +-46.6738 -5.17529 9.93868 +-46.1851 -4.92464 9.45733 +-38.9542 -3.98857 7.65969 +-19.0739 -1.8725 3.59596 +-16.7567 -1.57456 3.0238 +-16.884 -1.51577 2.9109 +-16.617 -1.42242 2.73162 +-15.6584 -1.27519 2.44889 +-15.4847 -1.19679 2.29832 +-16.1981 -1.18491 2.27551 +-15.8243 -1.09227 2.0976 +-15.7453 -1.02202 1.9627 +-14.9708 -0.910297 1.74814 +-15.583 -0.883694 1.69705 +-15.8971 -0.836538 1.6065 +-15.5145 -0.753122 1.4463 +-15.0305 -0.668432 1.28366 +-14.6441 -0.591727 1.13636 +-14.6547 -0.532683 1.02297 +-13.8661 -0.447823 0.860004 +-14.7724 -0.417296 0.801379 +-14.4801 -0.35049 0.673084 +-13.9867 -0.282043 0.541637 +-14.4912 -0.233719 0.448837 +-14.9949 -0.18135 0.348266 +-13.7979 -0.111235 0.213617 +-13.3995 -0.0540077 0.103717 +119.1 5.77316e-15 2.84217e-14 +119.295 -0.472479 0.927692 +119.282 -0.944916 1.8553 +119.959 -1.4256 2.79911 +119.827 -1.89905 3.7287 +119.386 -2.36562 4.6448 +120.235 -2.85973 5.61495 +120.076 -3.33303 6.54426 +120.007 -3.80845 7.47772 +120.727 -4.31207 8.46656 +119.942 -4.76236 9.3507 +119.746 -5.23281 10.2744 +120.536 -5.74954 11.289 +120.62 -6.23701 12.2461 +120.594 -6.71998 13.1944 +120.361 -7.19142 14.1201 +120.318 -7.67412 15.0678 +120.66 -8.18387 16.0687 +120.399 -8.65436 16.9925 +120.031 -9.11587 17.8986 +120.737 -9.66183 18.9706 +120.252 -10.1148 19.86 +120.838 -10.6599 20.9304 +120.727 -11.1471 21.8869 +120.508 -11.6248 22.8249 +120.182 -12.0918 23.7418 +119.945 -12.5674 24.6755 +120.477 -13.1267 25.7737 +120.899 -13.6802 26.8604 +120.631 -14.1584 27.7995 +121.127 -14.7296 28.921 +121.61 -15.3058 30.0523 +121.311 -15.7868 30.9968 +120.811 -16.2409 31.8883 +120.781 -16.7585 32.9047 +120.931 -17.3045 33.9767 +121.735 -17.9511 35.2462 +122.144 -18.5477 36.4176 +121.877 -19.0455 37.395 +121.695 -19.5578 38.4009 +121.596 -20.0856 39.4371 +121.112 -20.5505 40.35 +121.365 -21.1432 41.5137 +121.513 -21.7229 42.6519 +121.647 -22.3053 43.7954 +118.257 -22.2304 43.6485 +114.511 -22.0596 43.313 +112.34 -22.1684 43.5267 +108.803 -21.9848 43.1662 +106.101 -21.9444 43.0868 +103.682 -21.9418 43.0818 +101.812 -22.039 43.2726 +99.3167 -21.9838 43.1642 +96.7424 -21.8903 42.9806 +96.7633 -22.3756 43.9336 +97.4825 -23.0304 45.2192 +97.0359 -23.4156 45.9755 +97.6366 -24.0588 47.2385 +96.4706 -24.2686 47.6504 +96.6965 -24.8285 48.7498 +96.8216 -25.3694 49.8117 +96.3301 -25.7519 50.5627 +96.517 -26.3194 51.677 +96.6041 -26.8666 52.7515 +96.8471 -27.4646 53.9257 +96.231 -27.8228 54.6288 +96.4471 -28.4253 55.8118 +96.8975 -29.1068 57.1499 +96.3342 -29.4894 57.9011 +95.269 -29.7156 58.3453 +95.595 -30.3781 59.6461 +94.9259 -30.7292 60.3354 +95.0595 -31.344 61.5427 +95.0159 -31.9083 62.6505 +95.1974 -32.5565 63.9233 +95.0437 -33.098 64.9865 +95.0341 -33.6967 66.162 +95.0869 -34.326 67.3977 +95.1227 -34.9584 68.6393 +94.9098 -35.507 69.7164 +94.9895 -36.1732 71.0246 +95.0507 -36.8428 72.3392 +95.0934 -37.5155 73.6602 +95.1174 -38.1914 74.9873 +94.751 -38.7186 76.0223 +93.7079 -38.9697 76.5153 +93.1745 -39.4322 77.4234 +90.4542 -38.9562 76.4888 +90.3491 -39.5967 77.7464 +87.0166 -38.8078 76.1975 +87.3277 -39.6324 77.8165 +85.0904 -39.2969 77.1579 +84.4705 -39.6977 77.9448 +82.2584 -39.3394 77.2413 +82.3172 -40.062 78.6601 +79.7196 -39.4831 77.5233 +79.3589 -39.9997 78.5376 +77.1952 -39.5986 77.7502 +76.8245 -40.1083 78.751 +74.4917 -39.5829 77.7193 +74.1777 -40.1197 78.7733 +70.8591 -39.0112 76.5968 +71.1132 -39.8547 78.2529 +69.9084 -39.8861 78.3148 +70.1238 -40.7337 79.9789 +67.8769 -40.1457 78.8245 +67.1024 -40.4131 79.3493 +65.371 -40.0936 78.722 +65.0678 -40.6446 79.804 +62.774 -39.9402 78.4208 +62.5772 -40.559 79.6359 +60.832 -40.1695 78.8711 +60.3928 -40.6346 79.7843 +58.1742 -39.8883 78.319 +57.8951 -40.4597 79.4409 +56.0403 -39.9219 78.385 +55.7475 -40.4888 79.4979 +53.6084 -39.7019 77.953 +53.7185 -40.574 79.6653 +51.6167 -39.7685 78.0838 +51.75 -40.6789 79.8712 +49.3408 -39.5788 77.7112 +49.2082 -40.2887 79.1052 +47.4296 -39.6445 77.8403 +46.7594 -39.911 78.3635 +45.2514 -39.4506 77.4595 +44.5819 -39.7091 77.9672 +42.7904 -38.95 76.4767 +42.9165 -39.9338 78.4083 +40.8986 -38.9144 76.4067 +40.6136 -39.5273 77.6102 +39.0226 -38.8607 76.3014 +38.8433 -39.5942 77.7415 +37.3229 -38.9557 76.4879 +36.9632 -39.5199 77.5956 +35.4748 -38.8681 76.3158 +35.4378 -39.8066 78.1586 +33.7914 -38.932 76.4413 +33.4716 -39.5728 77.6995 +32.149 -39.0237 76.6213 +31.8421 -39.7039 77.957 +30.777 -39.4435 77.4456 +30.0174 -39.5639 77.682 +29.0968 -39.4661 77.49 +28.4914 -39.7956 78.137 +27.3342 -39.3443 77.2508 +26.6935 -39.6246 77.8012 +25.5046 -39.0761 76.7243 +25.1657 -39.83 78.2045 +23.8644 -39.0535 76.6799 +23.3972 -39.6287 77.8093 +22.3589 -39.2366 77.0394 +21.7488 -39.5878 77.7291 +20.94 -39.5842 77.7219 +20.2231 -39.7541 78.0555 +19.1549 -39.2123 76.9918 +18.5041 -39.5086 77.5736 +17.5444 -39.1357 76.8414 +16.982 -39.6492 77.8495 +15.9456 -39.0456 76.6644 +15.42 -39.6883 77.9263 +14.5077 -39.345 77.2522 +13.8288 -39.6251 77.8021 +12.9924 -39.4539 77.4661 +12.3029 -39.7286 78.0054 +11.4733 -39.5508 77.6563 +10.7732 -39.82 78.1848 +9.90528 -39.4553 77.4688 +9.20896 -39.7638 78.0746 +8.33858 -39.3019 77.1676 +7.62613 -39.5594 77.6733 +6.82594 -39.3619 77.2855 +6.10369 -39.6138 77.7801 +5.2868 -39.2288 77.0241 +4.6108 -39.9281 78.3971 +3.77744 -39.2647 77.0946 +3.04324 -39.5503 77.6554 +2.26692 -39.2886 77.1416 +1.52709 -39.7045 77.9582 +0.751355 -39.0737 76.7195 +3.10862e-15 -39.5744 77.7027 +-0.755718 -39.3006 77.1651 +-1.53407 -39.886 78.3145 +-2.26692 -39.2886 77.1416 +-3.06767 -39.8678 78.2788 +-3.79489 -39.4461 77.4507 +-4.6265 -40.0641 78.6641 +-5.34175 -39.6365 77.8246 +-6.16647 -40.0213 78.5801 +-6.79456 -39.1809 76.9301 +-7.70457 -39.9663 78.4722 +-8.30983 -39.1664 76.9015 +-9.31349 -40.2152 78.9608 +-9.86 -39.2749 77.1146 +-10.8098 -39.9551 78.4501 +-11.3949 -39.2808 77.1262 +-12.3864 -39.9982 78.5349 +-13.0664 -39.6783 77.9067 +-13.9227 -39.894 78.3303 +-14.4582 -39.2107 76.9886 +-15.5589 -40.0459 78.6283 +-16.0367 -39.2687 77.1024 +-17.1537 -40.0502 78.6368 +-17.6441 -39.3581 77.2779 +-18.7121 -39.9526 78.4452 +-19.1549 -39.2123 76.9918 +-20.2456 -39.7983 78.1422 +-20.7533 -39.2312 77.0287 +-22.16 -40.3364 79.1989 +-22.4841 -39.4563 77.4707 +-23.7078 -40.1548 78.8422 +-23.8911 -39.0972 76.7658 +-25.2484 -39.9609 78.4615 +-25.959 -39.7723 78.0913 +-26.8982 -39.9284 78.3977 +-27.6048 -39.7338 78.0156 +-28.9549 -40.4431 79.4082 +-29.4141 -39.8965 78.335 +-30.7011 -40.465 79.4513 +-31.2443 -40.0424 78.6216 +-32.5603 -40.5995 79.7154 +-33.2347 -40.3415 79.2088 +-34.26 -40.5049 79.5297 +-34.781 -40.0721 78.6798 +-36.4492 -40.9427 80.3893 +-36.3549 -39.8325 78.2093 +-38.2526 -40.8984 80.3023 +-38.5989 -40.2876 79.1029 +-39.9822 -40.7551 80.0208 +-40.6814 -40.5126 79.5447 +-41.8815 -40.7612 80.033 +-42.6206 -40.5528 79.6238 +-43.8371 -40.7904 80.0903 +-44.3521 -40.3716 79.2679 +-46.2162 -41.1649 80.8255 +-46.5904 -40.618 79.7516 +-48.1678 -41.1131 80.7238 +-48.7179 -40.7213 79.9546 +-50.2748 -41.162 80.8198 +-50.5227 -40.5268 79.5726 +-52.6 -41.347 81.1832 +-52.9363 -40.7852 80.08 +-54.7485 -41.352 81.193 +-55.4893 -41.0949 80.6882 +-56.8073 -41.2585 81.0093 +-57.5985 -41.0319 80.5645 +-59.3657 -41.4874 81.4587 +-59.9956 -41.1371 80.771 +-61.679 -41.4999 81.4834 +-62.1914 -41.0671 80.6335 +-64.2979 -41.6743 81.8256 +-64.458 -41.0116 80.5246 +-66.89 -41.7828 82.0388 +-67.0365 -41.115 80.7276 +-69.5096 -41.8628 82.1959 +-69.8249 -41.2979 81.0867 +-72.7712 -42.2715 82.9983 +-72.7097 -41.4844 81.4529 +-75.015 -42.0414 82.5464 +-75.8205 -41.7427 81.96 +-77.7773 -42.0666 82.596 +-78.3884 -41.6534 81.7847 +-80.7609 -42.1634 82.7861 +-81.171 -41.638 81.7545 +-83.8421 -42.2593 82.9743 +-83.8407 -41.5241 81.5309 +-85.8636 -41.7879 82.0489 +-86.9392 -41.578 81.6366 +-89.2636 -41.9503 82.3677 +-89.9267 -41.5304 81.5433 +-92.2774 -41.8787 82.2271 +-93.1505 -41.5435 81.5688 +-95.888 -42.0242 82.5128 +-96.1121 -41.3929 81.2733 +-99.4641 -42.094 82.6498 +-100.491 -41.7904 82.0538 +-103.966 -42.4841 83.4158 +-104.105 -41.8001 82.0727 +-101.131 -39.8975 78.337 +-105.925 -41.0576 80.6148 +-104.642 -39.8489 78.2416 +-110.265 -41.2516 80.9958 +-109.111 -40.0993 78.7333 +-105.965 -38.2531 75.1083 +-106.933 -37.9158 74.446 +-113.529 -39.5353 77.6259 +-97.6731 -33.4032 65.5857 +-96.7844 -32.5022 63.8166 +-97.8102 -32.251 63.3234 +-97.8567 -31.6779 62.1982 +-97.8887 -31.1069 61.0772 +-98.8951 -30.8466 60.5659 +-100.065 -30.6314 60.1435 +-102.568 -30.81 60.4942 +-104.582 -30.8229 60.5194 +-106.52 -30.7977 60.4699 +-107.787 -30.567 60.017 +-110.417 -30.7081 60.2941 +-111.517 -30.4099 59.7085 +-111.667 -29.8519 58.6129 +-113.796 -29.817 58.5443 +-116.541 -29.9238 58.7542 +-122.972 -30.9353 60.7401 +-140.699 -34.6699 68.0728 +-140.565 -33.9196 66.5997 +-140.325 -33.152 65.0926 +-144.878 -33.5016 65.779 +-150.438 -34.0403 66.8367 +-189.286 -41.8985 82.2659 +-196.222 -42.4758 83.3995 +-210.807 -44.6124 87.5946 +-200.737 -41.5174 81.5177 +-193.489 -39.0964 76.7642 +-193.775 -38.2382 75.0791 +-194.595 -37.487 73.6042 +-160.847 -30.2368 59.3688 +-113.302 -20.7752 40.7911 +-110.813 -19.81 38.8962 +-109.416 -19.0614 37.4262 +-109.122 -18.5161 36.3556 +-108.722 -17.959 35.2618 +-108.31 -17.4066 34.1771 +-108.073 -16.8883 33.1594 +-107.73 -16.3588 32.1199 +-108.516 -16.0017 31.4186 +-107.961 -15.4485 30.3325 +-108.636 -15.0734 29.596 +-108.443 -14.5781 28.6235 +-109.295 -14.2232 27.9266 +-109.565 -13.7898 27.0756 +-109.633 -13.3319 26.1765 +-109.304 -12.829 25.1891 +-109.643 -12.4066 24.3598 +-52.119 -5.6787 11.1499 +-52.0314 -5.45165 10.7041 +-45.9835 -4.62653 9.084 +-42.4516 -4.09512 8.0406 +-16.3647 -1.51102 2.96682 +-15.706 -1.38553 2.72043 +-14.4538 -1.21576 2.38709 +-15.6584 -1.25304 2.4603 +-16.0765 -1.22094 2.39727 +-16.0993 -1.15722 2.27216 +-15.7254 -1.06659 2.0942 +-16.4384 -1.04848 2.05865 +-14.6734 -0.876714 1.72139 +-15.7815 -0.879405 1.72667 +-14.8042 -0.765497 1.50302 +-16.2107 -0.773249 1.51824 +-15.0305 -0.656822 1.28964 +-14.4448 -0.573538 1.12612 +-14.1562 -0.505627 0.992776 +-15.3625 -0.487532 0.957249 +-14.8722 -0.412819 0.810552 +-15.1792 -0.361029 0.708865 +-13.7869 -0.273185 0.536387 +-14.791 -0.234412 0.460257 +-12.5957 -0.149688 0.293907 +-3275.8 -25.95 50.9517 +-3276.18 -12.9755 25.4768 +119.1 5.77316e-15 2.84217e-14 +119.395 -0.464476 0.932696 +119.182 -0.927361 1.8622 +119.159 -1.39095 2.79311 +119.527 -1.86066 3.73632 +119.386 -2.32362 4.66596 +119.336 -2.78795 5.59837 +119.976 -3.27112 6.5686 +119.907 -3.73771 7.50555 +120.627 -4.232 8.4981 +119.743 -4.66999 9.37762 +120.542 -5.17408 10.3899 +120.437 -5.64281 11.3311 +120.62 -6.12626 12.3019 +120.594 -6.60065 13.2545 +120.361 -7.06372 14.1844 +120.219 -7.53165 15.124 +120.66 -8.03855 16.1419 +120.103 -8.47973 17.0278 +120.721 -9.00548 18.0835 +120.54 -9.47475 19.0258 +120.252 -9.93519 19.9504 +120.838 -10.4707 21.0257 +120.629 -10.9403 21.9688 +120.41 -11.4091 22.9102 +121.061 -11.964 24.0243 +120.822 -12.4344 24.9691 +120.574 -12.904 25.9119 +120.996 -13.448 27.0045 +120.534 -13.8959 27.9037 +121.127 -14.4681 29.0527 +120.743 -14.9268 29.9739 +121.311 -15.5065 31.138 +120.907 -15.9652 32.059 +120.686 -16.4479 33.0284 +120.836 -16.9838 34.1045 +121.45 -17.591 35.3237 +121.48 -18.1193 36.3847 +121.026 -18.5767 37.3031 +121.695 -19.2105 38.5758 +121.408 -19.6984 39.5555 +120.924 -20.1543 40.4711 +121.365 -20.7677 41.7028 +121.885 -21.4025 42.9774 +121.554 -21.8925 43.9614 +117.887 -21.7674 43.7103 +114.327 -21.633 43.4403 +112.248 -21.7569 43.6892 +108.803 -21.5944 43.3629 +106.192 -21.5732 43.3203 +103.682 -21.5522 43.278 +100.909 -21.4557 43.0843 +98.5078 -21.4175 43.0077 +96.116 -21.3623 42.8968 +97.2088 -22.0795 44.3369 +97.5712 -22.642 45.4664 +96.8594 -22.9579 46.1008 +97.9002 -23.6954 47.5819 +96.2956 -23.7944 47.7806 +96.6095 -24.3657 48.9277 +96.735 -24.8966 49.9938 +96.3301 -25.2946 50.793 +96.517 -25.852 51.9124 +96.6041 -26.3895 52.9918 +96.8471 -26.9769 54.1713 +96.231 -27.3287 54.8776 +96.4471 -27.9205 56.066 +96.3972 -28.4422 57.1137 +96.5829 -29.0405 58.3151 +96.2579 -29.4908 59.2194 +95.4312 -29.7875 59.8151 +94.6002 -30.0799 60.4023 +94.7359 -30.6826 61.6125 +94.4532 -31.156 62.5632 +95.1175 -31.9515 64.1606 +95.0437 -32.5103 65.2825 +95.0341 -33.0983 66.4634 +95.1652 -33.7443 67.7605 +95.1227 -34.3376 68.9519 +94.987 -34.9048 70.0909 +94.9895 -35.5309 71.3481 +94.9747 -36.1596 72.6106 +95.4708 -36.9956 74.2894 +95.2672 -37.5724 75.4475 +95.1969 -38.21 76.7279 +94.8876 -38.7596 77.8315 +94.1984 -39.1576 78.6307 +92.8479 -39.2771 78.8706 +91.6439 -39.451 79.2198 +90.0122 -39.431 79.1797 +88.6005 -39.496 79.3103 +86.8427 -39.394 79.1054 +86.4155 -39.8907 80.1028 +84.3234 -39.6109 79.5411 +82.931 -39.644 79.6075 +81.1384 -39.4721 79.2624 +80.3626 -39.7863 79.8932 +78.9843 -39.7969 79.9145 +78.2022 -40.1026 80.5285 +75.8555 -39.5918 79.5026 +75.0776 -39.8854 80.0922 +73.149 -39.5567 79.4323 +72.6236 -39.9784 80.2789 +70.5309 -39.5267 79.372 +70.0623 -39.9752 80.2726 +68.9727 -40.0694 80.4618 +69.2087 -40.9415 82.2128 +66.8581 -40.2774 80.8794 +66.5961 -40.8605 82.0504 +64.2838 -40.1745 80.6728 +63.8391 -40.6421 81.6118 +62.1914 -40.3379 81.0008 +61.3994 -40.5782 81.4835 +59.6092 -40.1465 80.6164 +59.2023 -40.6385 81.6045 +57.0075 -39.8897 80.1009 +56.9133 -40.6015 81.5301 +55.9073 -40.6693 81.6663 +54.285 -40.2738 80.8722 +53.0378 -40.1378 80.599 +52.25 -40.3426 81.0103 +50.6704 -39.9235 80.1688 +50.5656 -40.6649 81.6576 +48.6702 -39.9591 80.2401 +48.0269 -40.2649 80.8544 +45.7593 -39.185 78.6857 +45.626 -39.9175 80.1568 +43.8166 -39.176 78.6676 +43.6618 -39.9058 80.1332 +42.2762 -39.5109 79.3402 +41.5434 -39.7142 79.7485 +40.3497 -39.4687 79.2554 +39.8195 -39.8685 80.0582 +38.6787 -39.6539 79.6274 +38.2526 -40.1722 80.6681 +36.7759 -39.5781 79.4752 +35.9997 -39.7197 79.7595 +34.8909 -39.485 79.2881 +34.4392 -39.9937 80.3098 +33.1296 -39.4999 79.318 +32.3893 -39.6691 79.6579 +31.478 -39.6255 79.5704 +30.8313 -39.9151 80.1518 +29.4459 -39.2303 78.7767 +29.1403 -39.9792 80.2807 +27.9055 -39.4534 79.2247 +27.3075 -39.8162 79.9533 +26.1862 -39.408 79.1336 +25.5791 -39.7655 79.8515 +24.5592 -39.4769 79.2719 +24.0184 -39.9584 80.2389 +22.9348 -39.5324 79.3835 +22.3778 -40.0095 80.3414 +21.2435 -39.4448 79.2075 +20.6955 -39.9603 80.2425 +19.6311 -39.4735 79.265 +19.1279 -40.1152 80.5537 +17.8634 -39.1397 78.5949 +17.3827 -39.8641 80.0494 +16.383 -39.4042 79.1259 +15.6978 -39.6859 79.6917 +14.7388 -39.2619 78.8401 +14.0635 -39.5819 79.4827 +13.155 -39.2383 78.7928 +12.4699 -39.5528 79.4244 +11.656 -39.4672 79.2525 +11.017 -39.9978 80.3179 +10.109 -39.5519 79.4226 +9.39711 -39.8557 80.0326 +8.55903 -39.6245 79.5684 +7.8353 -39.9228 80.1673 +6.98286 -39.5517 79.4222 +6.25018 -39.8442 80.0095 +5.43332 -39.6001 79.5193 +4.66313 -39.6642 79.6481 +3.84287 -39.2355 78.7871 +3.10955 -39.6944 79.7088 +2.30619 -39.2594 78.8352 +1.56374 -39.9355 80.1928 +0.771426 -39.4051 79.1277 +3.55271e-15 -39.7186 79.7574 +-0.771426 -39.4051 79.1277 +-1.56374 -39.9355 80.1928 +-2.34807 -39.9724 80.267 +-3.12699 -39.9172 80.1561 +-3.85595 -39.3691 79.0555 +-4.73117 -40.2429 80.8102 +-5.45163 -39.7335 79.7873 +-6.25018 -39.8442 80.0095 +-7.0064 -39.6851 79.69 +-7.90503 -40.278 80.8807 +-8.58778 -39.7576 79.8357 +-9.49118 -40.2547 80.8339 +-10.109 -39.5519 79.4226 +-10.9317 -39.6881 79.696 +-11.6299 -39.3788 79.075 +-12.5256 -39.7294 79.779 +-13.1698 -39.2824 78.8813 +-14.0791 -39.6259 79.5712 +-14.7057 -39.1739 78.6635 +-15.6283 -39.5103 79.3391 +-16.4012 -39.448 79.2139 +-17.4972 -40.1266 80.5766 +-17.8833 -39.1834 78.6825 +-19.0655 -39.9844 80.291 +-19.5878 -39.3865 79.0903 +-20.6955 -39.9603 80.2425 +-21.1968 -39.3581 79.0334 +-22.5229 -40.269 80.8624 +-23.035 -39.7051 79.7302 +-24.1996 -40.2599 80.8442 +-24.7195 -39.7346 79.7894 +-25.9099 -40.2797 80.884 +-26.6406 -40.0919 80.5069 +-27.7461 -40.4556 81.2373 +-28.2062 -39.8785 80.0784 +-29.5111 -40.488 81.3023 +-30.0488 -40.0335 80.3896 +-31.3848 -40.6316 81.5906 +-32.0788 -40.3819 81.0892 +-33.176 -40.6326 81.5926 +-33.795 -40.2932 80.9111 +-35.2276 -40.9093 82.1483 +-35.8805 -40.6048 81.5368 +-37.3108 -41.1663 82.6644 +-37.8091 -40.6901 81.7082 +-38.9168 -40.8698 82.0689 +-39.7154 -40.7168 81.7618 +-41.0397 -41.0902 82.5115 +-41.4279 -40.5233 81.3732 +-43.0225 -41.1282 82.5879 +-43.5247 -40.6777 81.6832 +-44.9769 -41.1078 82.5469 +-45.5122 -40.6919 81.7117 +-47.3058 -41.3871 83.1078 +-47.8372 -40.9643 82.2587 +-49.3415 -41.367 83.0674 +-49.9108 -40.9776 82.2855 +-51.1474 -41.1328 82.5971 +-51.9507 -40.9323 82.1944 +-53.6 -41.3849 83.1033 +-53.9513 -40.8292 81.9874 +-55.9331 -41.4966 83.3276 +-56.3253 -40.9733 82.2769 +-58.4501 -41.6978 83.7316 +-58.8343 -41.168 82.6679 +-60.5639 -41.5732 83.4814 +-61.0994 -41.1501 82.6319 +-62.8533 -41.5391 83.413 +-64.1172 -41.5869 83.509 +-65.9613 -41.9932 84.3249 +-66.3163 -41.4447 83.2234 +-68.477 -42.0146 84.3678 +-68.702 -41.3883 83.1101 +-71.1947 -42.1163 84.572 +-71.1033 -41.3073 82.9474 +-74.3103 -42.3991 85.1398 +-74.3282 -41.6548 83.6453 +-76.903 -42.3341 85.0094 +-77.4743 -41.8958 84.1292 +-80.1556 -42.5831 85.5093 +-79.9471 -41.7273 83.7909 +-82.7946 -42.4576 85.2574 +-82.4299 -41.533 83.4007 +-84.7119 -41.9395 84.2171 +-85.6648 -41.6742 83.6842 +-88.1824 -42.1544 84.6484 +-88.1782 -41.4217 83.1773 +-91.7644 -42.3598 85.0609 +-91.4687 -41.4925 83.3193 +-94.6816 -42.2068 84.7537 +-95.1476 -41.6806 83.6972 +-98.2618 -42.2998 84.9405 +-98.9411 -41.8546 84.0466 +-102.755 -42.7146 85.7735 +-103.587 -42.3132 84.9675 +-106.641 -42.8035 85.952 +-106.576 -42.0326 84.4039 +-102.565 -39.7447 79.8097 +-99.4611 -37.8677 76.0406 +-99.8156 -37.3361 74.973 +-103.321 -37.9671 76.2403 +-102.894 -37.143 74.5852 +-105.261 -37.324 74.9488 +-99.2894 -34.5803 69.4393 +-98.0585 -33.5415 67.3533 +-98.3919 -33.0514 66.3692 +-98.1509 -32.3758 65.0125 +-97.8102 -31.6783 63.6118 +-97.4496 -30.9859 62.2216 +-98.1344 -30.6313 61.5094 +-98.3183 -30.1221 60.487 +-99.9819 -30.0626 60.3674 +-101.901 -30.0661 60.3745 +-103.911 -30.0813 60.4051 +-105.846 -30.0592 60.3606 +-107.787 -30.0242 60.2904 +-110.332 -30.1395 60.5219 +-111.432 -29.8469 59.9343 +-113.304 -29.7517 59.7431 +-115.441 -29.711 59.6614 +-118.107 -29.7876 59.8153 +-121.222 -29.9537 60.1489 +-139.996 -33.8841 68.0412 +-140.3 -33.2544 66.7769 +-141.478 -32.8309 65.9264 +-157.174 -35.6995 71.6867 +-169.68 -37.7123 75.7284 +-209.239 -45.4928 91.3522 +-209.49 -44.5427 89.4443 +-195.4 -40.6176 81.5624 +-195.551 -39.7265 79.7731 +-193.215 -38.3478 77.0046 +-193.5 -37.5059 75.314 +-195.055 -36.9084 74.1143 +-195.308 -36.063 72.4166 +-114.878 -20.6902 41.5471 +-111.371 -19.5563 39.2702 +-110.069 -18.8348 37.8213 +-108.935 -18.1561 36.4584 +-108.441 -17.5944 35.3305 +-108.498 -17.1272 34.3925 +-108.073 -16.5884 33.3105 +-108.488 -16.1815 32.4935 +-107.755 -15.6073 31.3404 +-107.961 -15.1742 30.4706 +-108.636 -14.8057 29.7308 +-109.21 -14.4205 28.9573 +-108.719 -13.8969 27.9058 +-109.276 -13.5092 27.1272 +-109.633 -13.0951 26.2958 +-111.143 -12.8132 25.7297 +-111.778 -12.4235 24.9471 +-69.0383 -7.38856 14.8367 +-60.4109 -6.21724 12.4846 +-50.2792 -4.96889 9.97782 +-49.2986 -4.67115 9.37995 +-17.1487 -1.55529 3.12311 +-16.4913 -1.42898 2.86947 +-16.617 -1.37289 2.75685 +-17.1357 -1.3469 2.70466 +-16.8655 -1.25812 2.52638 +-16.0006 -1.1297 2.26851 +-16.9122 -1.12672 2.26251 +-14.854 -0.930602 1.8687 +-14.0785 -0.826232 1.65912 +-14.4912 -0.793165 1.59272 +-15.5991 -0.792273 1.59093 +-14.0228 -0.657007 1.31931 +-15.3291 -0.657974 1.32125 +-14.8433 -0.578894 1.16245 +-14.8541 -0.52113 1.04646 +-14.9635 -0.466438 0.936634 +-15.8703 -0.432702 0.868892 +-14.4801 -0.338287 0.679299 +-14.3863 -0.28 0.562257 +-14.5911 -0.227138 0.456106 +-12.0959 -0.141196 0.283529 +-3275.8 -25.4892 51.1837 +-3276.58 -12.7466 25.5959 +119.1 5.77316e-15 2.84217e-14 +119.395 -0.456041 0.936849 +119.182 -0.91052 1.87049 +119.159 -1.36569 2.80555 +119.427 -1.82534 3.74981 +120.285 -2.2986 4.72203 +120.235 -2.75794 5.66565 +120.076 -3.21439 6.60334 +119.907 -3.66984 7.53897 +120.727 -4.15858 8.543 +119.743 -4.58519 9.41938 +120.642 -5.08432 10.4447 +120.536 -5.54489 11.3909 +119.725 -5.9704 12.265 +120.495 -6.47544 13.3025 +120.361 -6.93545 14.2475 +120.219 -7.39488 15.1913 +120.462 -7.87965 16.1872 +120.893 -8.38054 17.2162 +119.932 -8.78417 18.0454 +120.54 -9.30269 19.1106 +120.252 -9.75477 20.0393 +119.955 -10.2054 20.9649 +120.629 -10.7416 22.0666 +120.508 -11.2111 23.031 +120.182 -11.6614 23.9562 +120.822 -12.2086 25.0803 +120.574 -12.6696 26.0273 +120.899 -13.1932 27.1029 +120.534 -13.6435 28.028 +120.354 -14.1147 28.996 +120.936 -14.6791 30.1554 +121.311 -15.2249 31.2766 +120.715 -15.6504 32.1507 +120.686 -16.1492 33.1755 +121.122 -16.7149 34.3374 +121.735 -17.3121 35.5644 +121.48 -17.7903 36.5467 +121.499 -18.3106 37.6156 +120.752 -18.7155 38.4474 +121.314 -19.3257 39.7009 +120.831 -19.773 40.6198 +121.365 -20.3906 41.8885 +121.233 -20.9015 42.9381 +120.256 -21.2654 43.6856 +117.517 -21.3051 43.7672 +114.327 -21.2401 43.6337 +111.423 -21.2048 43.5611 +107.981 -21.0421 43.2269 +105.465 -21.0362 43.2148 +102.957 -21.0128 43.1667 +100.277 -20.9342 43.0052 +97.609 -20.8367 42.805 +95.8475 -20.9158 42.9675 +97.2088 -21.6785 44.5343 +96.6842 -22.0287 45.2538 +96.8594 -22.541 46.3061 +97.9881 -23.286 47.8366 +96.8204 -23.4896 48.2549 +96.6095 -23.9232 49.1456 +96.8216 -24.4664 50.2614 +97.0194 -25.0129 51.3842 +96.4313 -25.36 52.0972 +96.6894 -25.9332 53.2746 +96.0838 -26.2783 53.9837 +96.99 -27.0441 55.5568 +96.3632 -27.3896 56.2667 +96.4806 -27.9499 57.4177 +96.5829 -28.5132 58.5748 +96.4228 -29.0049 59.5849 +96.3323 -29.5227 60.6487 +95.1701 -29.7116 61.0367 +95.464 -30.357 62.3625 +94.4532 -30.5903 62.8418 +94.9578 -31.3186 64.338 +95.1231 -31.9465 65.628 +94.4037 -32.2817 66.3164 +95.1652 -33.1315 68.0622 +95.1227 -33.714 69.2589 +95.0641 -34.2988 70.4602 +94.9895 -34.8857 71.6658 +94.9747 -35.503 72.934 +94.9425 -36.1228 74.2072 +94.8178 -36.716 75.426 +94.9739 -37.4282 76.889 +94.8876 -38.0557 78.178 +95.0028 -38.7748 79.6554 +94.3712 -39.1965 80.5215 +93.5861 -39.5554 81.259 +91.3674 -39.2978 80.7298 +90.2975 -39.5215 81.1892 +88.4547 -39.3966 80.9327 +87.2491 -39.5441 81.2356 +85.6313 -39.4948 81.1345 +84.4314 -39.6283 81.4087 +82.9625 -39.6266 81.4052 +81.7678 -39.7468 81.6521 +79.7795 -39.4676 81.0785 +79.1863 -39.8698 81.9048 +76.8297 -39.372 80.8822 +76.0418 -39.664 81.482 +74.6756 -39.6489 81.4511 +73.8822 -39.9326 82.0339 +71.5892 -39.3912 80.9216 +70.8626 -39.6976 81.5511 +70.0076 -39.9321 82.0327 +68.7273 -39.9183 82.0045 +68.4046 -40.4607 83.1188 +66.89 -40.2956 82.7794 +66.1421 -40.5852 83.3744 +64.7568 -40.4777 83.1537 +63.5508 -40.471 83.1399 +61.9027 -40.1679 82.5172 +60.7683 -40.1838 82.5499 +59.638 -40.1942 82.5711 +58.3507 -40.0882 82.3534 +57.2843 -40.1239 82.4269 +55.8028 -39.8561 81.8766 +54.7485 -39.8801 81.926 +53.7991 -39.9746 82.12 +52.75 -39.989 82.1497 +51.5075 -39.8461 81.8561 +50.5656 -39.9265 82.0212 +49.3382 -39.7719 81.7037 +48.9659 -40.3066 82.8022 +47.2369 -39.7157 81.5882 +46.9426 -40.3236 82.837 +44.8429 -39.3654 80.8686 +44.2316 -39.6925 81.5406 +42.922 -39.3859 80.9108 +42.135 -39.5484 81.2444 +40.9717 -39.3493 80.8356 +40.633 -39.9441 82.0575 +39.0774 -39.3352 80.8066 +38.6433 -39.8455 81.8549 +37.4647 -39.5873 81.3244 +36.7114 -39.7694 81.6986 +35.3674 -39.2973 80.7287 +34.9767 -39.8803 81.9264 +33.69 -39.4385 81.0188 +33.2786 -40.0181 82.2094 +31.9119 -39.4423 81.0265 +31.1894 -39.6454 81.4439 +30.017 -39.265 80.6622 +29.6038 -39.8776 81.9209 +28.3566 -39.363 80.8637 +27.9215 -39.9721 82.115 +26.6406 -39.3638 80.8654 +26.158 -39.9269 82.022 +24.9601 -39.3926 80.9245 +24.2513 -39.6133 81.3778 +23.3855 -39.5773 81.3039 +22.7407 -39.9199 82.0077 +21.8038 -39.7499 81.6585 +21.1454 -40.0875 82.3521 +19.9124 -39.3121 80.7592 +19.2318 -39.6008 81.3522 +18.2621 -39.2867 80.7069 +17.6689 -39.7846 81.7298 +16.7474 -39.5493 81.2464 +16.0104 -39.7411 81.6404 +14.9203 -39.0237 80.1666 +14.3763 -39.7277 81.6128 +13.4507 -39.3914 80.9221 +12.8735 -40.0915 82.3602 +11.9954 -39.8788 81.9232 +11.1632 -39.7927 81.7464 +10.3015 -39.5729 81.2949 +9.60617 -40.0025 82.1775 +8.70279 -39.5585 81.2652 +8.00961 -40.0698 82.3157 +7.13978 -39.7062 81.5687 +6.35481 -39.7756 81.7113 +5.48826 -39.2741 80.681 +4.74687 -39.6432 81.4394 +3.94319 -39.5287 81.2041 +3.16538 -39.6734 81.5014 +2.3664 -39.5528 81.2535 +1.58817 -39.8229 81.8084 +0.784516 -39.346 80.8288 +3.21965e-15 -39.829 81.8209 +-0.784516 -39.346 80.8288 +-1.5934 -39.9542 82.0781 +-2.3821 -39.8153 81.7928 +-3.18632 -39.9359 82.0406 +-3.96936 -39.791 81.743 +-4.76257 -39.7744 81.7087 +-5.54321 -39.6673 81.4887 +-6.36877 -39.8629 81.8906 +-7.13978 -39.7062 81.5687 +-7.98347 -39.939 82.0469 +-8.73155 -39.6892 81.5337 +-9.58526 -39.9155 81.9986 +-10.4034 -39.9643 82.099 +-11.212 -39.9665 82.1034 +-11.9954 -39.8788 81.9232 +-12.8735 -40.0915 82.3602 +-13.5837 -39.7811 81.7225 +-14.4702 -39.987 82.1456 +-15.1679 -39.6712 81.4968 +-16.1666 -40.129 82.4373 +-16.8568 -39.8075 81.7769 +-17.8216 -40.1283 82.4359 +-18.3418 -39.4583 81.0594 +-19.419 -39.9861 82.1437 +-20.0423 -39.5685 81.2859 +-21.2129 -40.2155 82.6149 +-21.6871 -39.5371 81.2213 +-22.8132 -40.0473 82.2694 +-23.4856 -39.7468 81.652 +-24.4843 -39.9938 82.1595 +-25.2808 -39.8987 81.9642 +-26.6541 -40.6842 83.5778 +-27.2939 -40.329 82.8482 +-28.2723 -40.4744 83.1468 +-28.988 -40.2396 82.6645 +-30.1601 -40.6269 83.4601 +-30.7786 -40.2611 82.7087 +-31.9057 -40.5559 83.3141 +-32.5795 -40.2674 82.7216 +-33.8942 -40.7584 83.7302 +-34.3904 -40.2584 82.7031 +-35.9085 -40.9428 84.109 +-36.5035 -40.5597 83.3221 +-37.648 -40.784 83.7828 +-38.4597 -40.6386 83.4842 +-39.6201 -40.8528 83.9241 +-40.5528 -40.8203 83.8574 +-42.0159 -41.3036 84.8502 +-42.1743 -40.5043 83.2083 +-43.8255 -41.135 84.504 +-44.1704 -40.5316 83.2642 +-45.8536 -41.1481 84.5308 +-46.36 -40.6972 83.6045 +-48.123 -41.3375 84.9199 +-48.6683 -40.9192 84.0605 +-50.3274 -41.4274 85.1045 +-50.5788 -40.772 83.7581 +-52.2625 -41.2663 84.7736 +-53.0833 -41.0651 84.3603 +-54.75 -41.5052 85.2644 +-55.3217 -41.1059 84.4442 +-57.0147 -41.5308 85.317 +-57.6316 -41.1622 84.5598 +-59.4039 -41.6086 85.4769 +-59.8014 -41.0849 84.4009 +-61.9799 -41.7726 85.8136 +-62.3689 -41.2423 84.7243 +-64.6986 -41.9822 86.2442 +-65.1934 -41.517 85.2887 +-67.1658 -41.9835 86.247 +-67.8261 -41.6185 85.4971 +-70.064 -42.2077 86.7075 +-70.7244 -41.8329 85.9376 +-73.0002 -42.4001 87.1028 +-73.4775 -41.9113 86.0987 +-75.9726 -42.5603 87.4319 +-76.258 -41.9602 86.1992 +-78.665 -42.5177 87.3444 +-79.7006 -42.317 86.9321 +-81.3126 -42.4133 87.1299 +-82.35 -42.201 86.6937 +-84.0412 -42.3142 86.9264 +-84.5503 -41.8277 85.9269 +-86.5855 -42.0887 86.463 +-87.3538 -41.7241 85.7141 +-89.41 -41.9651 86.2091 +-90.3121 -41.6537 85.5694 +-93.4316 -42.3461 86.9919 +-94.062 -41.894 86.0631 +-96.8029 -42.3688 87.0384 +-97.858 -42.0895 86.4647 +-100.851 -42.6262 87.5673 +-101.697 -42.2394 86.7727 +-104.364 -42.5956 87.5045 +-105.578 -42.3432 86.9859 +-109.762 -43.2563 88.8616 +-109.947 -42.5743 87.4608 +-106.414 -40.4874 83.1734 +-98.3965 -36.7821 75.5617 +-99.5092 -36.5455 75.0757 +-102.009 -36.8044 75.6074 +-103.127 -36.5511 75.0871 +-104.087 -36.2375 74.443 +-97.3193 -33.2787 68.3647 +-97.1858 -32.6393 67.0511 +-97.9127 -32.2932 66.3401 +-97.6686 -31.6316 64.9811 +-97.6484 -31.0516 63.7894 +-97.7753 -30.5249 62.7075 +-97.7248 -29.9495 61.5254 +-97.7414 -29.4016 60.3998 +-99.4016 -29.3453 60.2842 +-101.234 -29.3269 60.2464 +-103.073 -29.2966 60.1843 +-105.761 -29.4898 60.5811 +-107.024 -29.2703 60.1301 +-109.308 -29.3177 60.2276 +-111.86 -29.4176 60.4328 +-113.563 -29.278 60.1461 +-115.788 -29.259 60.1069 +-118.281 -29.2898 60.1702 +-120.26 -29.1764 59.9372 +-139.908 -33.2479 68.3013 +-143.214 -33.3286 68.4673 +-150.171 -34.2153 70.2886 +-177.667 -39.6214 81.3944 +-205.835 -44.917 92.2733 +-209.958 -44.8198 92.0737 +-202.901 -42.3583 87.0169 +-193.497 -39.4915 81.1276 +-194.55 -38.8054 79.7182 +-193.58 -37.7226 77.4938 +-194.6 -37.0342 76.0796 +-195.423 -36.3066 74.5848 +-196.417 -35.6091 73.1519 +-115.898 -20.4948 42.1025 +-111.929 -19.2974 39.6428 +-109.976 -18.477 37.9574 +-108.935 -17.8263 36.6208 +-109.004 -17.3647 35.6724 +-108.31 -16.787 34.4856 +-107.978 -16.2729 33.4296 +-108.204 -15.846 32.5526 +-107.85 -15.3374 31.5078 +-108.152 -14.9249 30.6603 +-108.445 -14.5113 29.8107 +-108.538 -14.0717 28.9075 +-108.719 -13.6445 28.03 +-109.276 -13.2638 27.248 +-110.405 -12.9479 26.599 +-111.143 -12.5805 25.8442 +-111.584 -12.1767 25.0147 +-111.531 -11.7194 24.0753 +-112.735 -11.3914 23.4015 +-60.4327 -5.86387 12.0462 +-55.2653 -5.14144 10.5621 +-14.6989 -1.30889 2.68887 +-16.3932 -1.39467 2.86509 +-17.9936 -1.45963 2.99852 +-15.166 -1.17044 2.40444 +-16.2737 -1.19193 2.44859 +-17.5809 -1.21874 2.50366 +-16.9122 -1.10626 2.27259 +-13.8638 -0.852786 1.75188 +-15.3674 -0.885498 1.81908 +-14.0942 -0.757424 1.55598 +-15.2016 -0.758067 1.5573 +-14.52 -0.667953 1.37218 +-15.5282 -0.654416 1.34437 +-12.5521 -0.480644 0.987389 +-15.4522 -0.532272 1.09345 +-14.1654 -0.433541 0.890626 +-13.7743 -0.368733 0.75749 +-13.9808 -0.32069 0.658796 +-12.588 -0.240551 0.494166 +-13.2919 -0.203155 0.417343 +-3275.18 -37.537 77.1126 +-3276.2 -25.0293 51.4179 +-3276.58 -12.5151 25.7099 +119.2 7.10543e-15 2.84217e-14 +119.295 -0.447212 0.940132 +119.182 -0.893638 1.87861 +119.159 -1.34037 2.81773 +119.427 -1.7915 3.7661 +119.386 -2.23912 4.70709 +120.135 -2.70455 5.68553 +120.076 -3.15479 6.63202 +119.907 -3.60179 7.57171 +120.727 -4.08148 8.5801 +120.739 -4.53763 9.53904 +120.542 -4.98593 10.4814 +120.636 -5.44659 11.4499 +120.62 -5.90348 12.4103 +120.594 -6.36062 13.3713 +120.361 -6.80685 14.3094 +120.219 -7.25777 15.2573 +120.66 -7.74623 16.2842 +120.103 -8.17137 17.1779 +121.017 -8.69926 18.2876 +120.442 -9.12277 19.1779 +120.154 -9.56608 20.1099 +120.053 -10.0243 21.0731 +120.629 -10.5425 22.1625 +120.41 -10.9943 23.1122 +120.28 -11.4545 24.0798 +120.822 -11.9823 25.1892 +120.574 -12.4347 26.1404 +120.899 -12.9486 27.2207 +120.631 -13.4013 28.1723 +121.127 -13.9419 29.3088 +120.839 -14.3955 30.2623 +121.215 -14.9308 31.3876 +120.907 -15.3846 32.3416 +120.686 -15.8498 33.3196 +121.122 -16.4049 34.4866 +120.784 -16.8584 35.4398 +121.48 -17.4604 36.7054 +121.31 -17.9431 37.7202 +121.601 -18.4976 38.8857 +121.408 -18.9821 39.9042 +121.767 -19.5568 41.1125 +121.272 -19.9971 42.0381 +121.419 -20.5454 43.1907 +120.812 -20.9676 44.0783 +117.24 -20.8608 43.8537 +113.498 -20.6952 43.5056 +110.689 -20.6746 43.4622 +108.164 -20.6869 43.488 +105.465 -20.6462 43.4025 +102.141 -20.4598 43.0108 +100.277 -20.546 43.192 +97.609 -20.4504 42.9909 +95.937 -20.5472 43.1944 +97.2088 -21.2766 44.7277 +96.7729 -21.6401 45.492 +97.654 -22.3046 46.8889 +98.2518 -22.9157 48.1736 +97.3452 -23.1791 48.7272 +96.5224 -23.4585 49.3146 +96.8216 -24.0127 50.4797 +96.9333 -24.5274 51.5616 +96.3456 -24.8677 52.277 +96.6894 -25.4523 53.506 +96.8471 -25.9959 54.6488 +96.231 -26.3349 55.3614 +96.4471 -26.9052 56.5603 +96.4806 -27.4317 57.667 +95.9196 -27.7923 58.4251 +95.8459 -28.2968 59.4857 +95.8408 -28.8275 60.6013 +96.0656 -29.4351 61.8786 +95.5449 -29.8193 62.6864 +95.4982 -30.3552 63.8129 +94.9578 -30.7379 64.6174 +95.0437 -31.3281 65.858 +94.4037 -31.6831 66.6045 +95.0869 -32.4904 68.3016 +95.1227 -33.0889 69.5597 +95.0641 -33.6628 70.7662 +94.9895 -34.2388 71.9771 +94.9747 -34.8447 73.2507 +94.867 -35.4248 74.4703 +94.8927 -36.0638 75.8135 +95.3455 -36.878 77.5252 +94.8876 -37.3501 78.5176 +94.8566 -37.9973 79.8782 +95.2417 -38.8246 81.6173 +94.4493 -39.1801 82.3646 +92.0806 -38.8703 81.7133 +91.0046 -39.0925 82.1804 +89.5061 -39.1257 82.2504 +88.0827 -39.1817 82.368 +86.2508 -39.043 82.0764 +85.0452 -39.1763 82.3567 +83.3678 -39.0819 82.1582 +81.9685 -39.1056 82.208 +80.5746 -39.1218 82.2422 +79.7768 -39.4224 82.874 +77.9987 -39.23 82.4695 +76.8131 -39.3234 82.666 +75.2481 -39.2121 82.432 +74.2598 -39.3925 82.8113 +72.523 -39.1652 82.3333 +71.4167 -39.2663 82.5458 +70.6163 -39.5325 83.1055 +69.2087 -39.4526 82.9376 +68.2262 -39.607 83.2621 +67.0663 -39.6527 83.3581 +65.5614 -39.4829 83.0013 +64.47 -39.5513 83.1449 +63.4941 -39.6852 83.4265 +62.35 -39.7081 83.4745 +60.4371 -39.2239 82.4566 +59.8014 -39.557 83.1569 +58.5657 -39.4898 83.0158 +57.2313 -39.3436 82.7083 +56.2731 -39.4467 82.9251 +55.2121 -39.4721 82.9784 +53.9513 -39.3444 82.7101 +52.75 -39.2476 82.5065 +51.5075 -39.1073 82.2116 +50.9535 -39.4868 83.0093 +49.7199 -39.3365 82.6934 +48.6842 -39.3318 82.6835 +47.3754 -39.0936 82.1828 +46.5794 -39.2697 82.5531 +45.4229 -39.1353 82.2704 +44.5823 -39.2655 82.5441 +43.6538 -39.3148 82.6477 +42.6422 -39.2823 82.5794 +41.6767 -39.2843 82.5836 +40.511 -39.0858 82.1664 +39.835 -39.3544 82.731 +38.9168 -39.3836 82.7924 +37.9239 -39.3295 82.6788 +37.0111 -39.3507 82.7233 +35.7705 -39.0083 82.0036 +35.1917 -39.3816 82.7881 +34.2853 -39.3913 82.8085 +33.4838 -39.5183 83.0756 +32.3793 -39.2779 82.5701 +31.5801 -39.3977 82.8222 +30.5882 -39.2702 82.5541 +29.6965 -39.2608 82.5343 +28.8978 -39.3706 82.7652 +28.0969 -39.4775 82.9898 +27.1235 -39.3342 82.6885 +26.4887 -39.6821 83.4199 +25.5213 -39.5315 83.1034 +24.4843 -39.2523 82.5163 +23.6859 -39.3425 82.7061 +23.031 -39.6799 83.4154 +22.0839 -39.5141 83.0668 +21.0104 -39.0931 82.1818 +20.4103 -39.5478 83.1377 +19.5021 -39.4127 82.8537 +18.5013 -39.0634 82.1193 +17.7643 -39.2578 82.528 +16.9115 -39.1962 82.3985 +16.1146 -39.2581 82.5286 +15.3164 -39.317 82.6524 +14.5171 -39.3729 82.77 +13.7167 -39.4258 82.8812 +12.9988 -39.731 83.5227 +12.1128 -39.5227 83.0848 +11.3095 -39.5666 83.1771 +10.4713 -39.4794 82.9938 +9.70024 -39.6453 83.3426 +8.80822 -39.2953 82.6069 +8.08805 -39.712 83.4828 +7.21824 -39.3982 82.8232 +6.38969 -39.2524 82.5166 +5.64699 -39.6607 83.375 +4.76781 -39.0798 82.1538 +3.97373 -39.0962 82.1883 +3.21075 -39.496 83.0287 +2.38472 -39.12 82.2384 +1.59864 -39.3422 82.7054 +0.801969 -39.4756 82.9858 +4.10783e-15 -39.7348 83.5308 +-0.804587 -39.6045 83.2567 +-1.60911 -39.5999 83.2472 +-2.41351 -39.5924 83.2313 +-3.21773 -39.5818 83.2091 +-4.02171 -39.5682 83.1806 +-4.82538 -39.5517 83.1457 +-5.62868 -39.5321 83.1046 +-6.41062 -39.3809 82.7868 +-7.23393 -39.4839 83.0032 +-8.00961 -39.3269 82.6732 +-8.81781 -39.3381 82.6968 +-9.76296 -39.9016 83.8814 +-10.5053 -39.6075 83.263 +-11.3095 -39.5666 83.1771 +-12.1128 -39.5227 83.0848 +-12.9153 -39.4758 82.9862 +-13.7167 -39.4258 82.8812 +-14.564 -39.5002 83.0376 +-15.3164 -39.317 82.6524 +-16.0104 -39.0043 81.995 +-16.8568 -39.0695 82.1321 +-17.7643 -39.2578 82.528 +-18.6808 -39.4422 82.9157 +-19.6269 -39.6648 83.3837 +-20.2155 -39.1704 82.3442 +-21.1454 -39.3443 82.7098 +-22.0839 -39.5141 83.0668 +-22.8858 -39.4298 82.8896 +-23.6859 -39.3425 82.7061 +-24.7172 -39.6257 83.3013 +-25.5747 -39.6143 83.2774 +-26.5714 -39.806 83.6803 +-27.1519 -39.3754 82.7751 +-28.3601 -39.8472 83.767 +-29.2587 -39.8623 83.7987 +-30.3455 -40.1187 84.3378 +-30.9689 -39.7591 83.5817 +-32.1661 -40.1288 84.3591 +-32.7798 -39.7638 83.5917 +-34.1678 -40.3256 84.7727 +-34.8807 -40.0753 84.2465 +-36.016 -40.3039 84.7271 +-36.9433 -40.2873 84.6922 +-38.0226 -40.4261 84.984 +-38.8041 -40.2423 84.5976 +-40.089 -40.5698 85.2861 +-40.792 -40.2998 84.7185 +-42.0566 -40.577 85.3013 +-42.8793 -40.4178 84.9666 +-43.6987 -40.2555 84.6255 +-44.9023 -40.4391 85.0114 +-46.1166 -40.6168 85.3848 +-47.0739 -40.5577 85.2606 +-48.5316 -40.9155 86.0129 +-49.3609 -40.7321 85.6272 +-50.4682 -40.773 85.7133 +-51.4377 -40.6955 85.5504 +-52.9412 -41.0272 86.2476 +-53.5264 -40.6402 85.4341 +-55.2 -41.0704 86.3385 +-56.0322 -40.862 85.9003 +-57.3237 -40.9817 86.152 +-58.5721 -41.0583 86.313 +-59.8809 -41.165 86.5374 +-60.5537 -40.8303 85.8337 +-62.1978 -41.1422 86.4893 +-63.7487 -41.3731 86.9748 +-65.4815 -41.7024 87.667 +-66.666 -41.6677 87.5942 +-68.1982 -41.8385 87.9531 +-69.0456 -41.5812 87.4123 +-70.4167 -41.6336 87.5224 +-71.7951 -41.6788 87.6175 +-73.3613 -41.8198 87.9139 +-74.5733 -41.7477 87.7622 +-75.9726 -41.7712 87.8116 +-77.6276 -41.9218 88.1283 +-79.4202 -42.13 88.5659 +-80.2731 -41.8307 87.9367 +-82.2768 -42.1205 88.546 +-83.3891 -41.9411 88.1689 +-84.6316 -41.8214 87.9173 +-85.743 -41.6313 87.5176 +-87.1877 -41.5956 87.4426 +-88.3672 -41.4256 87.0851 +-89.8192 -41.3755 86.9798 +-91.7577 -41.5357 87.3167 +-93.8483 -41.7464 87.7595 +-95.5339 -41.7607 87.7895 +-97.6514 -41.9477 88.1827 +-99.1418 -41.851 87.9795 +-101.499 -42.1044 88.5122 +-103.293 -42.1068 88.5171 +-106.046 -42.4797 89.301 +-107.79 -42.4288 89.194 +-110.431 -42.7129 89.7914 +-111.744 -42.4681 89.2767 +-109.357 -40.8358 85.8453 +-97.7882 -35.8769 75.4206 +-99.739 -35.9507 75.5759 +-101.777 -36.04 75.7635 +-103.205 -35.9004 75.47 +-97.9043 -33.4531 70.3253 +-96.7677 -32.4765 68.2724 +-97.9791 -32.2956 67.892 +-97.753 -31.6428 66.5196 +-97.9098 -31.1218 65.4244 +-97.8102 -30.5263 64.1726 +-98.0195 -30.0338 63.1372 +-97.8068 -29.4188 61.8444 +-97.3293 -28.7348 60.4064 +-99.4016 -28.8012 60.546 +-101.234 -28.7831 60.5081 +-103.073 -28.7535 60.4457 +-105.087 -28.7583 60.456 +-107.108 -28.7503 60.4391 +-109.223 -28.7517 60.4421 +-111.775 -28.8501 60.6488 +-113.649 -28.757 60.4531 +-115.528 -28.652 60.2325 +-117.672 -28.5986 60.1202 +-120.26 -28.6354 60.1975 +-139.38 -32.5084 68.3394 +-146.304 -33.4165 70.2484 +-157.267 -35.1677 73.9297 +-195.576 -42.8066 89.9883 +-215.142 -46.0778 96.865 +-209.599 -43.9136 92.3155 +-197.666 -40.5003 85.1399 +-195.128 -39.0861 82.1669 +-194.095 -37.9968 79.8772 +-194.494 -37.1979 78.1976 +-194.692 -36.3646 76.4459 +-194.871 -35.5327 74.6971 +-196.602 -34.9817 73.5387 +-116.454 -20.2113 42.4884 +-111.929 -18.9396 39.8149 +-109.696 -18.0882 38.0252 +-108.935 -17.4958 36.7798 +-108.159 -16.9105 35.5494 +-108.31 -16.4757 34.6354 +-107.978 -15.9712 33.5748 +-108.204 -15.5522 32.694 +-107.945 -15.0663 31.6725 +-108.342 -14.674 30.8479 +-109.306 -14.3553 30.1777 +-108.538 -13.8108 29.033 +-108.911 -13.4152 28.2015 +-109.372 -13.0294 27.3905 +-109.826 -12.6411 26.5743 +-110.369 -12.2612 25.7756 +-111.584 -11.9509 25.1234 +-112.406 -11.5924 24.3696 +-114.488 -11.3542 23.8688 +-15.4255 -1.46901 3.08816 +-57.9063 -5.28727 11.1149 +-15.1888 -1.32744 2.79056 +-17.0803 -1.42619 2.99815 +-15.4371 -1.22903 2.58368 +-17.825 -1.35014 2.83827 +-17.8518 -1.28327 2.69769 +-17.4821 -1.18942 2.50041 +-16.4177 -1.054 2.21572 +-13.3686 -0.807085 1.69666 +-14.376 -0.813009 1.70911 +-13.6971 -0.722444 1.51873 +-14.6055 -0.714836 1.50273 +-13.426 -0.606173 1.2743 +-13.4378 -0.555824 1.16846 +-14.5444 -0.546609 1.14909 +-14.0565 -0.475216 0.999001 +-14.3649 -0.431494 0.90709 +-13.1754 -0.346162 0.727703 +-13.9808 -0.314744 0.661657 +-10.8896 -0.204237 0.429349 +-3274.3 -49.117 103.254 +-3275.18 -36.8411 77.4475 +-3276.2 -24.5653 51.6413 +-3276.58 -12.2831 25.8216 +118.3 6.21725e-15 2.84217e-14 +119.295 -0.438711 0.944129 +119.982 -0.882534 1.89926 +119.059 -1.31379 2.82734 +119.527 -1.75891 3.78528 +119.386 -2.19656 4.7271 +119.336 -2.6355 5.67173 +119.976 -3.09225 6.65468 +119.907 -3.53332 7.6039 +119.829 -3.97413 8.55254 +119.743 -4.41463 9.50051 +119.746 -4.85883 10.4564 +119.84 -5.30783 11.4227 +120.62 -5.79126 12.4631 +120.594 -6.23971 13.4282 +120.361 -6.67746 14.3702 +120.219 -7.1198 15.3222 +120.561 -7.59278 16.3401 +120.103 -8.01604 17.2509 +120.919 -8.52694 18.3504 +120.442 -8.94935 19.2595 +120.154 -9.38424 20.1954 +120.053 -9.83375 21.1627 +120.629 -10.3421 22.2567 +120.312 -10.7765 23.1916 +120.182 -11.2277 24.1625 +120.919 -11.764 25.3167 +120.574 -12.1983 26.2515 +120.899 -12.7025 27.3364 +120.631 -13.1465 28.292 +121.127 -13.6769 29.4334 +120.839 -14.1218 30.3909 +121.311 -14.6586 31.546 +121.003 -15.1041 32.5048 +121.546 -15.6594 33.6998 +121.027 -16.0805 34.606 +121.735 -16.6681 35.8707 +121.385 -17.1152 36.8327 +121.499 -17.6295 37.9396 +121.601 -18.1459 39.051 +121.408 -18.6212 40.0739 +120.831 -19.0375 40.9697 +121.365 -19.6321 42.2493 +121.419 -20.1549 43.3744 +120.07 -20.4428 43.994 +117.148 -20.4481 44.0055 +113.498 -20.3018 43.6906 +110.689 -20.2816 43.647 +108.072 -20.2765 43.636 +105.556 -20.2712 43.6247 +102.141 -20.0709 43.1936 +100.277 -20.1555 43.3756 +98.5078 -20.2464 43.5713 +96.116 -20.1942 43.4589 +97.2088 -20.8721 44.9179 +97.5712 -21.4039 46.0623 +96.8594 -21.7025 46.705 +98.2518 -22.4801 48.3784 +97.4326 -22.7589 48.9783 +96.5224 -23.0126 49.5243 +96.8216 -23.5563 50.6943 +96.3301 -23.9114 51.4586 +96.3456 -24.395 52.4993 +96.6041 -24.9465 53.6862 +96.0838 -25.3008 54.4487 +96.231 -25.8343 55.5968 +96.4471 -26.3938 56.8008 +96.4806 -26.9102 57.9122 +95.8367 -27.2404 58.6228 +96.5876 -27.9737 60.2009 +96.578 -28.497 61.3271 +95.8214 -28.8021 61.9837 +95.6258 -29.2773 63.0062 +95.4982 -29.7782 64.0842 +95.0376 -30.179 64.9468 +95.0437 -30.7325 66.138 +94.9553 -31.2625 67.2785 +95.1652 -31.899 68.6484 +95.045 -32.4334 69.7984 +95.0641 -33.0229 71.0671 +95.0661 -33.615 72.3413 +94.9747 -34.1823 73.5622 +94.9425 -34.7791 74.8464 +94.8178 -35.3503 76.0757 +94.6767 -35.9232 77.3085 +94.9613 -36.6685 78.9126 +95.0028 -37.3325 80.3415 +94.2987 -37.7094 81.1527 +93.73 -38.1426 82.0849 +93.0079 -38.5154 82.8871 +91.2168 -38.4387 82.7222 +89.7164 -38.4722 82.7941 +88.0827 -38.4369 82.7181 +86.2508 -38.3008 82.4253 +85.659 -38.709 83.3037 +83.3678 -38.339 82.5075 +82.5707 -38.6441 83.1641 +80.7734 -38.4728 82.7956 +79.7768 -38.673 83.2264 +78.778 -38.8687 83.6476 +76.8131 -38.5759 83.0174 +76.2022 -38.9545 83.8321 +74.2598 -38.6437 83.1633 +72.523 -38.4207 82.6833 +71.4167 -38.5198 82.8967 +70.6163 -38.781 83.4588 +69.5096 -38.8709 83.6523 +68.4046 -38.9557 83.8347 +67.2426 -39.0012 83.9326 +65.5614 -38.7324 83.3541 +64.47 -38.7994 83.4984 +63.1543 -38.7225 83.3328 +62.6855 -39.1628 84.2805 +60.6027 -38.5837 83.0341 +59.8014 -38.805 83.5105 +58.8343 -38.9169 83.7512 +57.7082 -38.9173 83.7521 +56.4821 -38.8406 83.587 +55.6241 -39.0107 83.9531 +53.9513 -38.5965 83.0618 +52.75 -38.5015 82.8573 +52.1969 -38.8774 83.6662 +50.7111 -38.5519 82.9656 +49.7199 -38.5887 83.045 +49.1067 -38.9189 83.7556 +47.6986 -38.6121 83.0953 +46.5794 -38.5232 82.9041 +45.4229 -38.3913 82.6202 +44.4508 -38.4054 82.6505 +43.6538 -38.5674 82.9991 +42.6422 -38.5355 82.9305 +41.6767 -38.5375 82.9347 +40.877 -38.6893 83.2614 +39.7154 -38.4903 82.8332 +38.9168 -38.6349 83.1444 +38.2301 -38.8934 83.7006 +37.0111 -38.6027 83.075 +36.3203 -38.8549 83.6179 +35.4068 -38.869 83.6481 +34.2853 -38.6425 83.1606 +33.6206 -38.9255 83.7697 +32.3793 -38.5312 82.9212 +31.7103 -38.8082 83.5173 +30.5882 -38.5237 82.9051 +29.8201 -38.6748 83.2303 +28.7174 -38.3811 82.5982 +27.9507 -38.5255 82.909 +27.1519 -38.6269 83.1271 +26.3234 -38.6847 83.2516 +25.4411 -38.6582 83.1945 +24.6396 -38.7503 83.3927 +23.9113 -38.9618 83.8479 +23.1035 -39.0483 84.0339 +22.154 -38.8859 83.6845 +21.2129 -38.7195 83.3265 +20.4103 -38.7961 83.4912 +19.4813 -38.6223 83.1173 +18.6808 -38.6925 83.2683 +18.0505 -39.132 84.2141 +17.0755 -38.824 83.5513 +16.2187 -38.7608 83.4153 +15.3164 -38.5696 83.0038 +14.4702 -38.4996 82.8532 +13.8497 -39.0515 84.0408 +12.9292 -38.7671 83.4288 +12.0084 -38.4371 82.7187 +11.2729 -38.6889 83.2606 +10.5053 -38.8545 83.617 +9.7316 -39.0174 83.9675 +8.80822 -38.5484 82.9581 +8.08805 -38.9571 83.8378 +7.25747 -38.8593 83.6274 +6.45247 -38.8845 83.6816 +5.64699 -38.9068 83.7295 +4.81491 -38.7157 83.3181 +3.99554 -38.5635 82.9907 +3.19679 -38.5767 83.0191 +2.39781 -38.587 83.0413 +1.60388 -38.7208 83.3291 +0.796733 -38.4723 82.7945 +2.9976e-15 -38.8531 83.6139 +-0.804587 -38.8516 83.6107 +-1.60388 -38.7208 83.3291 +-2.40566 -38.7134 83.3132 +-3.20028 -38.6188 83.1097 +-3.9999 -38.6056 83.0813 +-4.82538 -38.7998 83.4992 +-5.62868 -38.7806 83.4579 +-6.41062 -38.6323 83.1388 +-7.26531 -38.9013 83.7177 +-8.03576 -38.7052 83.2957 +-8.95199 -39.1775 84.3122 +-9.70024 -38.8917 83.6969 +-10.5392 -38.9801 83.8873 +-11.2851 -38.7308 83.3507 +-12.152 -38.8967 83.7077 +-12.8874 -38.6419 83.1593 +-13.7611 -38.8014 83.5027 +-14.5171 -38.6245 83.1219 +-15.3164 -38.5696 83.0038 +-16.1493 -38.5948 83.058 +-17.0755 -38.824 83.5513 +-17.7071 -38.3874 82.6118 +-18.6808 -38.6925 83.2683 +-19.5437 -38.746 83.3834 +-20.2804 -38.5492 82.9599 +-21.2129 -38.7195 83.3265 +-22.0372 -38.681 83.2436 +-23.031 -38.9256 83.77 +-23.7611 -38.717 83.3211 +-24.7431 -38.9131 83.7431 +-25.6816 -39.0237 83.9811 +-26.599 -39.0898 84.1234 +-27.5495 -39.1925 84.3444 +-28.3893 -39.13 84.2099 +-29.1685 -38.9839 83.8955 +-30.2837 -39.2759 84.5239 +-31.191 -39.283 84.5391 +-32.2638 -39.4855 84.975 +-33.2472 -39.564 85.1439 +-34.0652 -39.4402 84.8775 +-35.0207 -39.4713 84.9444 +-36.016 -39.5378 85.0874 +-37.1632 -39.7567 85.5585 +-38.135 -39.7748 85.5975 +-38.8041 -39.4773 84.9573 +-39.9718 -39.6822 85.3982 +-40.6724 -39.4178 84.8292 +-41.7312 -39.4977 85.0012 +-43.2525 -39.9946 86.0706 +-44.0791 -39.834 85.725 +-45.4189 -40.1268 86.3551 +-46.2482 -39.9583 85.9924 +-47.0739 -39.7867 85.6231 +-48.6678 -40.2504 86.621 +-49.3609 -39.9578 85.9912 +-50.609 -40.1096 86.318 +-51.5809 -40.033 86.1532 +-52.9412 -40.2473 86.6143 +-53.6742 -39.9777 86.0341 +-55.2 -40.2897 86.7056 +-56.6413 -40.5209 87.2031 +-57.4782 -40.3111 86.7516 +-59.0423 -40.6012 87.3759 +-59.8809 -40.3825 86.9053 +-60.5537 -40.0541 86.1986 +-62.4701 -40.5368 87.2373 +-63.4728 -40.4109 86.9665 +-65.4815 -40.9096 88.0397 +-66.8359 -40.9798 88.1908 +-68.3703 -41.1467 88.5499 +-69.2198 -40.8937 88.0055 +-70.9457 -41.149 88.5549 +-71.9736 -40.9882 88.2087 +-73.9029 -41.3277 88.9394 +-75.1212 -41.255 88.7829 +-77.1424 -41.6081 89.5427 +-78.1878 -41.4218 89.1418 +-79.609 -41.4274 89.154 +-80.8455 -41.3282 88.9404 +-82.2768 -41.3198 88.9224 +-83.3891 -41.1438 88.5437 +-84.894 -41.1537 88.5649 +-85.743 -40.8399 87.8897 +-87.1877 -40.8049 87.8143 +-88.6374 -40.7623 87.7227 +-89.9556 -40.6506 87.4822 +-91.7577 -40.7462 87.6879 +-94.0567 -41.0438 88.3283 +-95.9545 -41.1472 88.5509 +-98.0757 -41.3291 88.9424 +-99.5698 -41.2327 88.7349 +-101.283 -41.2162 88.6995 +-103.656 -41.4514 89.2056 +-105.681 -41.5285 89.3714 +-107.79 -41.6222 89.5732 +-110.208 -41.8164 89.9911 +-112.194 -41.8284 90.0169 +-111.923 -40.9995 88.2331 +-97.7882 -35.1949 75.7413 +-99.8922 -35.3215 76.0138 +-101.623 -35.3013 75.9703 +-103.127 -35.1914 75.7339 +-96.8869 -32.4762 69.8904 +-97.0041 -31.937 68.7301 +-97.9791 -31.6817 68.1807 +-97.9127 -31.0919 66.9115 +-97.8294 -30.5051 65.6486 +-97.6484 -29.8965 64.3389 +-98.1823 -29.5118 63.511 +-97.7248 -28.8354 62.0554 +-97.9886 -28.3795 61.0741 +-99.4016 -28.2537 60.8034 +-101.234 -28.236 60.7653 +-103.156 -28.2298 60.7521 +-105.002 -28.189 60.6643 +-107.024 -28.1815 60.648 +-109.223 -28.2052 60.699 +-111.689 -28.2799 60.8599 +-113.132 -28.082 60.434 +-116.221 -28.2759 60.8513 +-117.759 -28.0757 60.4205 +-120.173 -28.0706 60.4095 +-139.556 -31.9307 68.7165 +-147.541 -33.0583 71.1432 +-158.42 -34.7521 74.7884 +-200.031 -42.9495 92.4296 +-216.037 -45.3898 97.6813 +-210.138 -43.1897 92.9465 +-196.222 -39.4401 84.8772 +-193.678 -38.0581 81.903 +-192.639 -36.9949 79.6151 +-193.854 -36.3708 78.2719 +-195.517 -35.8246 77.0964 +-194.871 -34.8573 75.0147 +-196.694 -34.3328 73.8861 +-117.381 -19.985 43.0087 +-111.929 -18.5796 39.9842 +-110.443 -17.8652 38.4469 +-108.935 -17.1632 36.9362 +-108.065 -16.5746 35.6695 +-108.31 -16.1625 34.7826 +-107.978 -15.6676 33.7175 +-108.109 -15.2432 32.8041 +-108.04 -14.7929 31.8352 +-108.342 -14.3951 30.979 +-108.445 -13.9715 30.0674 +-108.347 -13.5243 29.105 +-108.911 -13.1602 28.3214 +-109.468 -12.793 27.5312 +-109.826 -12.4008 26.6872 +-111.143 -12.1126 26.0669 +-111.681 -11.734 25.2521 +-112.6 -11.3917 24.5155 +-113.514 -11.0435 23.7663 +-113.738 -10.6257 22.867 +-3204.9 -287.067 617.784 +-16.7567 -1.43663 3.09171 +-17.0803 -1.39908 3.0109 +-17.6986 -1.38229 2.97477 +-3226.53 -239.745 515.943 +-15.5833 -1.09891 2.3649 +-18.0747 -1.20636 2.59616 +-16.7144 -1.05265 2.26536 +-3244.42 -192.147 413.51 +-14.376 -0.797554 1.71638 +-15.4837 -0.801149 1.72411 +-14.7049 -0.706018 1.51939 +-14.52 -0.643107 1.384 +-14.9309 -0.605842 1.30381 +-15.3414 -0.565603 1.21721 +-13.6578 -0.452959 0.974791 +-14.9635 -0.440932 0.948909 +-14.6726 -0.37817 0.813842 +-13.9808 -0.308761 0.66447 +-13.7869 -0.253661 0.545892 +-3274.3 -48.1833 103.693 +-3275.18 -36.1407 77.7768 +-3276.2 -24.0983 51.8608 +-3276.58 -12.0496 25.9314 +119.2 7.10543e-15 2.84217e-14 +119.395 -0.430534 0.948842 +119.182 -0.859592 1.89443 +119.059 -1.28822 2.83908 +119.427 -1.72325 3.79782 +119.486 -2.15561 4.7507 +120.135 -2.60151 5.73341 +120.076 -3.0346 6.68787 +119.907 -3.46457 7.63547 +119.829 -3.8968 8.58805 +119.743 -4.32872 9.53996 +119.746 -4.76428 10.4999 +120.636 -5.23908 11.5463 +120.62 -5.67856 12.5148 +120.594 -6.11829 13.4839 +120.361 -6.54752 14.4299 +120.12 -6.97552 15.3732 +120.561 -7.44503 16.4079 +120.893 -7.91178 17.4366 +120.228 -8.31329 18.3214 +120.442 -8.77521 19.3395 +120.154 -9.20163 20.2792 +120.151 -9.65028 21.268 +120.629 -10.1408 22.3491 +120.312 -10.5668 23.2879 +120.28 -11.0181 24.2826 +120.822 -11.5258 25.4013 +120.574 -11.961 26.3605 +120.802 -12.4453 27.4279 +120.534 -12.8804 28.3868 +121.127 -13.4108 29.5557 +120.839 -13.847 30.5171 +120.446 -14.2708 31.4512 +120.14 -14.7046 32.4071 +120.781 -15.258 33.6268 +120.454 -15.693 34.5853 +120.784 -16.2161 35.7383 +121.385 -16.7821 36.9857 +120.743 -17.1788 37.86 +121.601 -17.7928 39.2132 +121.314 -18.2448 40.2091 +121.58 -18.7828 41.3949 +121.459 -19.2649 42.4574 +122.257 -19.899 43.8549 +119.607 -19.9676 44.0061 +117.056 -20.0344 44.1533 +113.498 -19.9068 43.872 +110.781 -19.9034 43.8645 +107.25 -19.7307 43.4839 +104.737 -19.7225 43.466 +102.232 -19.6978 43.4114 +100.277 -19.7633 43.5557 +97.6989 -19.6893 43.3928 +95.6685 -19.709 43.4362 +97.2088 -20.466 45.1044 +97.4825 -20.9683 46.2115 +96.8594 -21.2802 46.8989 +97.9881 -21.9836 48.449 +97.0828 -22.2359 49.0051 +96.5224 -22.5648 49.7299 +96.8216 -23.0979 50.9048 +96.3301 -23.4461 51.6723 +96.4313 -23.9415 52.7641 +96.6041 -24.4611 53.9091 +95.999 -24.7866 54.6265 +96.231 -25.3316 55.8276 +96.4471 -25.8801 57.0366 +96.4806 -26.3866 58.1527 +96.6658 -26.9414 59.3755 +96.0107 -27.2655 60.0898 +95.9227 -27.7529 61.1639 +96.4727 -28.4336 62.6642 +95.7876 -28.7561 63.3749 +95.0159 -29.0513 64.0254 +94.798 -29.5171 65.052 +95.0437 -30.1345 66.4126 +95.0341 -30.6796 67.614 +95.1652 -31.2783 68.9335 +95.045 -31.8023 70.0883 +95.0641 -32.3803 71.3622 +95.0661 -32.9609 72.6417 +94.9747 -33.5172 73.8676 +94.9425 -34.1023 75.1572 +94.8178 -34.6624 76.3915 +95.3455 -35.473 78.178 +94.8876 -35.9271 79.1788 +95.2223 -36.6906 80.8614 +94.879 -37.2032 81.9911 +94.6651 -37.7735 83.248 +92.5086 -37.5631 82.7844 +91.2168 -37.6908 83.0657 +89.7164 -37.7235 83.1379 +88.9163 -38.0456 83.8477 +87.0769 -37.9152 83.5603 +86.0682 -38.137 84.0492 +84.0434 -37.8976 83.5215 +83.2398 -38.1992 84.1862 +81.171 -37.9099 83.5486 +80.1704 -38.1076 83.9843 +79.1677 -38.3009 84.4104 +77.9701 -38.395 84.6178 +76.0113 -38.1008 83.9693 +75.3926 -38.4698 84.7825 +73.4567 -38.1581 84.0956 +72.4634 -38.3238 84.4609 +70.9207 -38.1903 84.1666 +69.2087 -37.9496 83.636 +68.4046 -38.1976 84.1828 +67.5953 -38.4429 84.7233 +66.084 -38.2814 84.3675 +64.7568 -38.2137 84.2181 +63.9473 -38.4457 84.7294 +62.6855 -38.4008 84.6305 +60.7683 -37.9362 83.6066 +60.1281 -38.2578 84.3155 +58.9955 -38.2641 84.3293 +58.1851 -38.4754 84.7949 +56.4821 -38.0848 83.9341 +55.9331 -38.4641 84.7701 +54.4081 -38.1659 84.1128 +53.6 -38.3606 84.5419 +52.1969 -38.1209 84.0136 +51.5353 -38.4161 84.6641 +49.9108 -37.9831 83.71 +49.3415 -38.344 84.5054 +47.8833 -38.0074 83.7634 +47.3058 -38.3627 84.5465 +45.646 -37.8292 83.3708 +44.8454 -37.9923 83.7303 +43.826 -37.9661 83.6726 +42.9803 -38.0852 83.9351 +41.8425 -37.938 83.6105 +40.877 -37.9364 83.6071 +39.835 -37.855 83.4277 +39.034 -37.9972 83.741 +38.1153 -38.022 83.7957 +37.4232 -38.2729 84.3487 +36.3203 -38.0988 83.9651 +35.5143 -38.2283 84.2504 +34.6005 -38.2388 84.2736 +33.5864 -38.1292 84.0319 +32.5128 -37.9372 83.6089 +31.9708 -38.3656 84.5529 +30.6834 -37.8916 83.5084 +30.0674 -38.2366 84.2687 +29.1685 -38.2253 84.2438 +28.4478 -38.4476 84.7337 +27.2939 -38.0733 83.9088 +26.5163 -38.21 84.21 +25.6014 -38.1449 84.0665 +24.8984 -38.3954 84.6186 +23.8362 -38.0837 83.9316 +22.9584 -38.0479 83.8528 +22.154 -38.1292 84.032 +21.2804 -38.0869 83.9386 +20.3453 -37.9201 83.5711 +19.6269 -38.1537 84.0859 +18.7406 -38.061 83.8817 +17.8216 -37.8838 83.4912 +17.0755 -38.0685 83.8982 +16.2882 -38.1693 84.1204 +15.432 -38.1043 83.9772 +14.6266 -38.1585 84.0966 +13.8497 -38.2916 84.3898 +13.0405 -38.34 84.4966 +12.1128 -38.0169 83.7845 +11.3826 -38.3052 84.4198 +10.5053 -38.0985 83.9642 +9.77341 -38.4225 84.6784 +8.92324 -38.2918 84.3903 +8.1142 -38.3225 84.458 +7.281 -38.2267 84.2469 +6.4734 -38.2515 84.3015 +5.6653 -38.2734 84.3498 +4.81491 -37.9623 83.6641 +4.04788 -38.3085 84.427 +3.2282 -38.1977 84.183 +2.42399 -38.2492 84.2964 +1.61958 -38.3391 84.4946 +0.804587 -38.0956 83.9579 +3.66374e-15 -38.5929 85.0538 +-0.800223 -37.889 83.5025 +-1.61958 -38.3391 84.4946 +-2.40566 -37.96 83.6592 +-3.23867 -38.3216 84.456 +-4.01298 -37.9782 83.6991 +-4.90388 -38.6638 85.2101 +-5.61647 -37.9435 83.6227 +-6.53618 -38.6225 85.1192 +-7.22608 -37.9384 83.6114 +-8.17521 -38.6107 85.0931 +-8.98075 -38.5386 84.9342 +-9.80477 -38.5458 84.9502 +-10.5392 -38.2216 84.2356 +-11.4313 -38.4692 84.7813 +-12.1128 -38.0169 83.7845 +-13.0544 -38.3809 84.5867 +-13.8497 -38.2916 84.3898 +-14.6266 -38.1585 84.0966 +-15.465 -38.1859 84.1568 +-16.3924 -38.4135 84.6585 +-17.1848 -38.3123 84.4354 +-18.0696 -38.4111 84.6532 +-18.7007 -37.98 83.7032 +-19.6269 -38.1537 84.0859 +-20.4319 -38.0814 83.9267 +-21.4378 -38.3687 84.5598 +-22.3174 -38.4105 84.6519 +-23.2729 -38.5691 85.0014 +-23.9363 -38.2437 84.2842 +-24.8984 -38.3954 84.6186 +-25.7885 -38.4236 84.6807 +-26.8471 -38.6866 85.2604 +-27.6631 -38.5883 85.0438 +-28.5647 -38.6057 85.082 +-29.5594 -38.7376 85.3729 +-30.5309 -38.8261 85.5678 +-31.4449 -38.8321 85.581 +-32.1661 -38.6 85.0695 +-33.0803 -38.5994 85.0682 +-34.4756 -39.1387 86.2568 +-35.0207 -38.7033 85.2971 +-36.4819 -39.2699 86.5459 +-37.1632 -38.983 85.9137 +-38.2099 -39.0775 86.1218 +-38.9572 -38.8618 85.6465 +-40.4016 -39.3284 86.6749 +-41.2307 -39.1813 86.3506 +-42.4226 -39.3708 86.7684 +-43.3769 -39.3291 86.6765 +-44.5862 -39.5083 87.0713 +-45.2898 -39.2341 86.4671 +-46.8619 -39.7007 87.4953 +-47.4308 -39.3083 86.6306 +-48.9402 -39.688 87.4675 +-49.638 -39.4001 86.8329 +-51.1255 -39.7304 87.5608 +-52.1057 -39.6535 87.3912 +-53.523 -39.8977 87.9296 +-54.2158 -39.5954 87.2632 +-55.5 -39.7204 87.5388 +-56.6413 -39.7324 87.5652 +-58.0448 -39.9163 87.9704 +-58.8856 -39.7054 87.5057 +-60.3578 -39.9121 87.9612 +-61.1984 -39.6929 87.4782 +-62.9058 -40.0252 88.2105 +-64.3007 -40.1414 88.4666 +-66.488 -40.7302 89.7642 +-67.3457 -40.4889 89.2324 +-68.8865 -40.6507 89.589 +-70.0908 -40.6025 89.4829 +-71.4747 -40.6491 89.5856 +-72.6873 -40.5892 89.4534 +-74.264 -40.7215 89.7451 +-75.1212 -40.4522 89.1515 +-77.8812 -41.1892 90.7757 +-78.5613 -40.8097 89.9395 +-80.1754 -40.9103 90.161 +-81.2272 -40.7153 89.7313 +-83.4981 -41.1172 90.6171 +-83.9736 -40.626 89.5346 +-86.0093 -40.883 90.1009 +-86.737 -40.5094 89.2776 +-88.1245 -40.4408 89.1264 +-89.1103 -40.1824 88.557 +-91.7288 -40.6453 89.5771 +-92.5837 -40.313 88.8447 +-95.3071 -40.7801 89.8742 +-96.7956 -40.7001 89.698 +-98.9242 -40.8755 90.0844 +-100.426 -40.7779 89.8693 +-102.794 -41.017 90.3963 +-104.164 -40.8438 90.0147 +-107.363 -41.3683 91.1706 +-109.117 -41.3148 91.0526 +-112.289 -41.777 92.0712 +-112.418 -41.0966 90.5717 +-113.508 -40.771 89.8541 +-98.4726 -34.7515 76.588 +-98.5133 -34.1561 75.2758 +-101.623 -34.6144 76.2857 +-97.765 -32.7124 72.094 +-96.8869 -31.8442 70.1806 +-97.5557 -31.4936 69.408 +-97.8205 -31.0149 68.3529 +-97.753 -30.4372 67.0798 +-97.8294 -29.9115 65.9212 +-97.5674 -29.2905 64.5525 +-98.4266 -29.0095 63.9333 +-98.1344 -28.3928 62.5742 +-97.7414 -27.757 61.173 +-99.4016 -27.7039 61.0559 +-101.234 -27.6865 61.0176 +-103.073 -27.658 60.9547 +-105.087 -27.6627 60.9651 +-107.108 -27.655 60.9481 +-109.223 -27.6563 60.9511 +-110.66 -27.4742 60.5498 +-113.39 -27.5984 60.8235 +-115.874 -27.6431 60.9218 +-117.759 -27.5294 60.6713 +-119.561 -27.3842 60.3513 +-137.886 -30.9347 68.1762 +-153.721 -33.7729 74.4312 +-163.476 -35.1634 77.4958 +-212.861 -44.8148 98.7662 +-215.142 -44.3223 97.6808 +-199.802 -40.2663 88.7418 +-195.59 -38.5482 84.9553 +-194.675 -37.5096 82.6665 +-193.549 -36.4464 80.3233 +-194.037 -35.6967 78.671 +-194.325 -34.9133 76.9445 +-194.411 -34.0982 75.1482 +-196.14 -33.5699 73.9838 +-118.494 -19.7818 43.5966 +-112.208 -18.2634 40.2503 +-109.509 -17.3695 38.2802 +-108.935 -16.8293 37.0896 +-108.065 -16.2521 35.8176 +-108.215 -15.8342 34.8967 +-107.978 -15.3627 33.8575 +-108.204 -14.9597 32.9693 +-107.945 -14.4923 31.9393 +-109.105 -14.2144 31.3267 +-109.019 -13.7721 30.352 +-108.347 -13.2611 29.2258 +-109.199 -12.9383 28.5143 +-109.565 -12.5551 27.6698 +-109.826 -12.1595 26.7981 +-110.272 -11.7838 25.9699 +-111.681 -11.5056 25.357 +-112.503 -11.1604 24.596 +-114.683 -10.9402 24.1108 +-114.617 -10.4994 23.1394 +-3204.9 -281.481 620.349 +-17.2467 -1.44987 3.19533 +-17.2766 -1.38762 3.05815 +-17.6003 -1.34787 2.97053 +-3226.53 -235.079 518.085 +-3231.37 -223.436 492.424 +-17.7784 -1.1635 2.5642 +-17.3078 -1.06881 2.35552 +-3244.81 -188.431 415.278 +-15.07 -0.819788 1.80671 +-3251.88 -164.983 363.601 +-15.1023 -0.710989 1.56693 +-13.426 -0.583079 1.28503 +-16.424 -0.653455 1.44013 +-10.0616 -0.363729 0.801612 +-14.9538 -0.486291 1.07172 +-11.871 -0.342998 0.755924 +-14.6726 -0.370811 0.817221 +-11.9836 -0.259502 0.57191 +-3273.18 -59.0504 130.14 +-3274.3 -47.2457 104.124 +-3275.58 -35.4418 78.1093 +-3276.2 -23.6294 52.0762 +-3276.58 -11.8151 26.039 +119.3 4.44089e-15 0 +119.295 -0.421602 0.951892 +119.082 -0.841754 1.90051 +119.859 -1.27103 2.86974 +119.527 -1.69032 3.8164 +119.486 -2.11266 4.76996 +120.135 -2.54967 5.75665 +119.976 -2.97165 6.70939 +119.907 -3.39553 7.66642 +119.829 -3.81915 8.62286 +119.842 -4.24599 9.58659 +119.746 -4.66934 10.5424 +119.84 -5.10083 11.5166 +119.725 -5.52414 12.4724 +120.594 -5.99637 13.5386 +120.361 -6.41705 14.4884 +120.12 -6.83652 15.4355 +120.561 -7.29668 16.4744 +120.103 -7.70343 17.3928 +120.13 -8.14095 18.3806 +120.54 -8.60735 19.4337 +121.039 -9.08468 20.5114 +120.053 -9.45025 21.3368 +120.629 -9.93876 22.4397 +120.312 -10.3562 23.3823 +120.28 -10.7986 24.381 +119.945 -11.2141 25.3192 +120.574 -11.7226 26.4673 +120.899 -12.2071 27.5612 +120.631 -12.6338 28.5247 +121.031 -13.133 29.6518 +120.839 -13.5711 30.6408 +121.407 -14.0981 31.8306 +120.907 -14.5036 32.7462 +120.877 -14.9658 33.7899 +121.217 -15.4777 34.9455 +120.784 -15.893 35.8831 +121.48 -16.4605 37.1646 +121.499 -16.942 38.2515 +120.847 -17.3301 39.1279 +121.408 -17.895 40.4034 +120.831 -18.2951 41.3066 +121.552 -18.8955 42.6623 +121.513 -19.3837 43.7646 +119.978 -19.6304 44.3214 +116.132 -19.4802 43.9824 +112.67 -19.3677 43.7284 +110.781 -19.5068 44.0424 +107.25 -19.3375 43.6602 +104.737 -19.3295 43.6422 +102.141 -19.2882 43.5488 +99.3746 -19.1951 43.3387 +96.9799 -19.155 43.2481 +96.2054 -19.4247 43.8571 +97.2088 -20.0581 45.2872 +97.4825 -20.5505 46.3989 +96.6828 -20.8181 47.0031 +97.2851 -21.3909 48.2964 +97.5201 -21.891 49.4254 +96.5224 -22.1151 49.9315 +96.8216 -22.6376 51.1111 +96.3301 -22.9789 51.8817 +96.4313 -23.4645 52.978 +96.6041 -23.9736 54.1276 +96.7623 -24.4858 55.284 +96.231 -24.8268 56.0539 +96.531 -25.3865 57.3176 +96.4806 -25.8608 58.3884 +96.6658 -26.4046 59.6162 +96.7524 -26.9287 60.7995 +96.0046 -27.2231 61.4643 +96.4727 -27.8671 62.9182 +95.9494 -28.2307 63.7393 +95.0159 -28.4724 64.2849 +95.8363 -29.2458 66.031 +94.3297 -29.3121 66.1809 +95.0341 -30.0682 67.888 +95.0869 -30.6298 69.1559 +95.045 -31.1686 70.3724 +94.987 -31.7093 71.5933 +95.0661 -32.3041 72.9361 +95.0507 -32.8755 74.2264 +94.9425 -33.4227 75.4618 +94.8927 -33.9985 76.7618 +94.8253 -34.5764 78.0666 +94.6664 -35.1291 79.3144 +94.8566 -35.8214 80.8774 +95.6769 -36.7685 83.0158 +95.0967 -37.1896 83.9666 +93.5071 -37.212 84.0172 +93.2674 -37.7701 85.2773 +91.0481 -37.5206 84.7139 +89.8193 -37.6661 85.0425 +87.4899 -37.3359 84.2969 +86.8866 -37.7325 85.1924 +84.6515 -37.4111 84.4668 +84.645 -38.07 85.9543 +82.4299 -37.7307 85.1884 +81.8106 -38.1123 86.0499 +79.3626 -37.6301 84.9612 +78.3558 -37.8161 85.381 +76.7746 -37.7166 85.1564 +76.5254 -38.2697 86.4052 +74.2037 -37.778 85.2952 +73.7562 -38.2303 86.3163 +71.9556 -37.9754 85.7409 +70.8336 -38.0666 85.9466 +68.4046 -37.4365 84.524 +68.6533 -38.2665 86.3981 +66.6066 -37.8153 85.3794 +66.2481 -38.3147 86.5068 +64.1172 -37.7797 85.299 +64.1394 -38.5085 86.9444 +61.8721 -37.8557 85.4704 +61.9799 -38.6502 87.2645 +59.4253 -37.7749 85.288 +59.4039 -38.4986 86.922 +57.6316 -38.0855 85.9894 +57.2722 -38.6001 87.1514 +55.1187 -37.8938 85.5567 +54.5 -38.2275 86.31 +52.5908 -37.6432 84.9908 +52.214 -38.1464 86.1268 +50.9606 -38.0092 85.8171 +50.3274 -38.3308 86.5433 +48.8068 -37.9684 85.725 +48.2592 -38.356 86.6 +46.4938 -37.764 85.2634 +45.8536 -38.0724 85.9599 +44.0413 -37.3923 84.4244 +43.6565 -37.9136 85.6012 +42.1743 -37.4768 84.6151 +41.7312 -37.9574 85.7001 +40.4332 -37.6578 85.0236 +39.542 -37.7247 85.1747 +38.5745 -37.7133 85.1491 +37.9102 -37.9984 85.7927 +36.5035 -37.528 84.7308 +35.9443 -37.9203 85.6163 +34.7056 -37.5907 84.8721 +33.9968 -37.826 85.4035 +32.8132 -37.5248 84.7235 +32.1661 -37.8308 85.4143 +31.191 -37.751 85.2342 +30.5309 -38.0524 85.9146 +29.2887 -37.6181 84.9341 +28.6524 -37.9526 85.6892 +27.6631 -37.8194 85.3885 +27.0952 -38.2661 86.397 +25.7885 -37.6579 85.024 +25.209 -38.0997 86.0214 +24.0866 -37.7168 85.157 +23.418 -38.0363 85.8782 +22.2473 -37.5269 84.7283 +21.7753 -38.196 86.2389 +20.6267 -37.6784 85.0703 +20.0011 -38.1064 86.0366 +18.9998 -37.8185 85.3865 +18.3558 -38.242 86.3426 +17.2577 -37.7081 85.1373 +16.6008 -38.1266 86.0821 +15.564 -37.6646 85.039 +14.8926 -38.0781 85.9727 +13.9384 -37.7688 85.2744 +13.1797 -37.9771 85.7446 +12.3086 -37.8616 85.4839 +11.541 -38.0644 85.9418 +10.6185 -37.7416 85.213 +9.95111 -38.3416 86.5676 +8.99033 -37.811 85.3695 +8.21879 -38.043 85.8934 +7.32808 -37.7072 85.1353 +6.54316 -37.8933 85.5554 +5.72635 -37.9149 85.6043 +4.95622 -38.2977 86.4685 +4.05224 -37.5855 84.8606 +3.27357 -37.9627 85.7121 +2.44493 -37.8109 85.3693 +1.64576 -38.1825 86.2083 +0.810695 -37.6199 84.9382 +3.66374e-15 -37.9858 85.7643 +-0.815058 -37.8224 85.3953 +-1.64576 -38.1825 86.2083 +-2.43184 -37.6085 84.9123 +-3.29102 -38.1651 86.169 +-4.0915 -37.9497 85.6827 +-4.90911 -37.9338 85.6468 +-5.72025 -37.8745 85.5131 +-6.64082 -38.4589 86.8323 +-7.39869 -38.0706 85.9557 +-8.2798 -38.3254 86.531 +-9.04784 -38.0528 85.9155 +-9.89885 -38.1402 86.1129 +-10.6864 -37.9831 85.7581 +-11.6141 -38.3056 86.4863 +-12.3217 -37.9017 85.5745 +-13.3467 -38.4583 86.8311 +-13.9976 -37.929 85.6361 +-14.8613 -37.9981 85.7921 +-15.63 -37.8243 85.3997 +-16.5487 -38.007 85.812 +-17.2577 -37.7081 85.1373 +-18.2986 -38.1227 86.0734 +-18.9998 -37.8185 85.3865 +-19.9387 -37.9876 85.7683 +-20.8215 -38.0343 85.8738 +-21.7753 -38.196 86.2389 +-22.4574 -37.8813 85.5284 +-23.6358 -38.3899 86.6767 +-24.2368 -37.9521 85.6882 +-25.3643 -38.3344 86.5513 +-26.1894 -38.2433 86.3456 +-27.233 -38.4607 86.8366 +-27.8335 -38.0524 85.9145 +-29.1495 -38.6109 87.1757 +-29.7097 -38.1588 86.1549 +-30.9017 -38.5146 86.9582 +-31.7305 -38.4039 86.7083 +-32.7522 -38.52 86.9705 +-33.6811 -38.5173 86.9644 +-34.8177 -38.7393 87.4656 +-35.8262 -38.8045 87.6127 +-36.8761 -38.9032 87.8356 +-37.3831 -38.4323 86.7725 +-39.0715 -39.1624 88.4207 +-39.9139 -39.0228 88.1056 +-41.1049 -39.2157 88.5412 +-41.5895 -38.7348 87.4553 +-43.2361 -39.3262 88.7907 +-43.8331 -38.9508 87.9431 +-45.1779 -39.2349 88.5844 +-45.8925 -38.9641 87.973 +-47.5194 -39.4556 89.0827 +-47.9663 -38.9599 87.9636 +-49.712 -39.5106 89.207 +-50.4229 -39.2257 88.5636 +-52.1113 -39.6896 89.6111 +-52.5352 -39.1836 88.4687 +-54.2017 -39.5986 89.4056 +-55.2007 -39.5113 89.2085 +-56.95 -39.946 90.19 +-57.3518 -39.4292 89.0231 +-59.5899 -40.1622 90.6782 +-59.7738 -39.5012 89.1857 +-61.7356 -40.0097 90.3338 +-62.3268 -39.6192 89.4522 +-64.5942 -40.2805 90.9452 +-65.4597 -40.0507 90.4264 +-67.4946 -40.5229 91.4926 +-67.8555 -39.9824 90.2722 +-69.919 -40.4377 91.3002 +-70.7877 -40.1891 90.7389 +-72.3564 -40.3306 91.0583 +-73.4011 -40.171 90.698 +-75.7685 -40.7185 91.9342 +-76.6431 -40.4493 91.3264 +-78.8047 -40.8469 92.2241 +-79.1216 -40.2818 90.9481 +-81.5599 -40.7874 92.0897 +-82.4357 -40.4978 91.4359 +-84.4623 -40.7631 92.0348 +-85.3375 -40.4631 91.3576 +-86.731 -40.4045 91.2253 +-87.2671 -39.9448 90.1874 +-89.7973 -40.3873 91.1863 +-90.3264 -39.9191 90.1293 +-92.9564 -40.3684 91.1438 +-93.6162 -39.9503 90.1996 +-96.7659 -40.5792 91.6197 +-97.4264 -40.1491 90.6485 +-100.833 -40.8339 92.1948 +-101.282 -40.3059 91.0026 +-104.088 -40.706 91.9059 +-105.252 -40.4481 91.3236 +-108.679 -41.0413 92.6629 +-110.665 -41.066 92.7187 +-113.181 -41.2697 93.1786 +-113.467 -40.6533 91.787 +-115.546 -40.676 91.8382 +-98.0924 -33.9276 76.6016 +-98.3601 -33.4234 75.4634 +-100.928 -33.6928 76.0715 +-96.9878 -31.8057 71.8109 +-97.5912 -31.4365 70.9774 +-97.6345 -30.891 69.7457 +-97.8205 -30.3969 68.63 +-97.9127 -29.8794 67.4617 +-97.8294 -29.3155 66.1884 +-97.6484 -28.7306 64.8679 +-97.7753 -28.2433 63.7677 +-97.8887 -27.7573 62.6705 +-98.071 -27.2956 61.6281 +-98.7384 -26.9707 60.8944 +-101.234 -27.1348 61.265 +-102.402 -26.9304 60.8034 +-105.087 -27.1115 61.2122 +-106.345 -26.9108 60.7591 +-108.285 -26.8725 60.6726 +-110.403 -26.8642 60.6539 +-113.304 -27.028 61.0237 +-115.701 -27.0517 61.0774 +-117.237 -26.8612 60.6472 +-119.561 -26.8385 60.596 +-132.35 -29.1009 65.704 +-162.816 -35.0582 79.1542 +-183.611 -38.7075 87.3937 +-215.534 -44.4734 100.412 +-215.321 -43.4751 98.1581 +-196.117 -38.7361 87.4582 +-193.514 -37.379 84.3943 +-194.222 -36.6766 82.8084 +-194.459 -35.8881 81.028 +-194.22 -35.0183 79.0643 +-194.784 -34.2983 77.4387 +-194.687 -33.4662 75.56 +-194.846 -32.684 73.7938 +-119.885 -19.6152 44.2871 +-112.208 -17.8995 40.4135 +-110.162 -17.125 38.6647 +-108.935 -16.4939 37.2399 +-108.065 -15.9282 35.9628 +-108.121 -15.5052 35.0076 +-107.884 -15.0434 33.965 +-108.393 -14.6873 33.1609 +-107.85 -14.191 32.0405 +-108.533 -13.8581 31.2887 +-108.254 -13.403 30.2612 +-108.73 -13.0429 29.4482 +-108.719 -12.6247 28.5039 +-109.372 -12.2833 27.7331 +-109.922 -11.9277 26.9304 +-110.466 -11.5692 26.121 +-111.681 -11.2764 25.4597 +-112.698 -10.9569 24.7384 +-113.709 -10.6311 24.0029 +-116.082 -10.4217 23.5301 +-117.769 -10.1374 22.8881 +-3210.72 -264.536 597.268 +-3216.11 -253.164 571.593 +-3221.44 -241.788 545.909 +-15.56 -1.11108 2.5086 +-3231.37 -218.983 494.42 +-17.4821 -1.12131 2.53168 +-16.6155 -1.00561 2.27047 +-3244.81 -184.676 416.961 +-3248.67 -173.202 391.055 +-3251.88 -161.695 365.075 +-3255.24 -150.197 339.115 +-3258.75 -138.704 313.166 +-12.9402 -0.504584 1.13925 +-13.7475 -0.487073 1.09971 +-10.3679 -0.330442 0.746072 +-3268.32 -92.5522 208.964 +-14.1735 -0.351061 0.792624 +-3271.81 -69.4387 156.779 +-3273.18 -57.8737 130.667 +-3274.7 -46.3099 104.558 +-3275.58 -34.7356 78.4259 +-3276.2 -23.1585 52.2872 +-3276.58 -11.5797 26.1446 +119.3 4.44089e-15 0 +119.195 -0.412647 0.95485 +119.082 -0.824571 1.90803 +119.159 -1.23782 2.86427 +120.327 -1.66689 3.85713 +119.386 -2.0678 4.78483 +120.135 -2.49763 5.77942 +119.976 -2.91099 6.73593 +120.805 -3.35112 7.75438 +119.829 -3.74118 8.65697 +120.041 -4.16626 9.64057 +119.846 -4.57783 10.5929 +119.939 -5.00083 11.5718 +120.62 -5.4518 12.6153 +120.594 -5.87397 13.5922 +120.461 -6.29122 14.5577 +120.219 -6.70247 15.5093 +120.561 -7.14773 16.5396 +120.103 -7.54617 17.4616 +120.327 -7.98786 18.4836 +119.753 -8.37654 19.383 +120.252 -8.8414 20.4587 +120.053 -9.25734 21.4212 +120.727 -9.74377 22.5467 +120.41 -10.1531 23.4939 +120.182 -10.5695 24.4575 +120.822 -11.0655 25.6052 +120.477 -11.4741 26.5507 +120.802 -11.9483 27.648 +120.534 -12.366 28.6146 +120.934 -12.8547 29.7453 +120.839 -13.2941 30.762 +120.542 -13.7119 31.7288 +120.907 -14.2075 32.8757 +120.973 -14.6719 33.9503 +121.122 -15.1498 35.0561 +121.64 -15.6789 36.2804 +121.385 -16.1119 37.2825 +121.405 -16.5832 38.373 +121.035 -17.0029 39.344 +121.596 -17.5569 40.626 +120.924 -17.9355 41.5021 +121.646 -18.524 42.8639 +121.606 -19.0026 43.9713 +118.958 -19.0662 44.1184 +115.947 -19.0522 44.0861 +112.67 -18.9723 43.9014 +109.864 -18.9504 43.8505 +107.342 -18.9589 43.8702 +104.009 -18.8033 43.5102 +101.416 -18.7603 43.4107 +99.4649 -18.8203 43.5496 +97.1596 -18.7987 43.4997 +96.2054 -19.0282 44.0306 +97.2088 -19.6487 45.4664 +97.5712 -20.1493 46.6247 +97.4774 -20.5608 47.577 +96.7578 -20.8407 48.2246 +96.2082 -21.1556 48.9534 +96.5224 -21.6637 50.129 +96.735 -22.1557 51.2674 +96.3301 -22.5098 52.087 +96.4313 -22.9855 53.1876 +96.6894 -23.505 54.3896 +96.0838 -23.8178 55.1135 +96.231 -24.32 56.2757 +96.531 -24.8683 57.5444 +96.564 -25.3548 58.67 +96.0026 -25.6881 59.4413 +96.0931 -26.1992 60.6241 +96.1684 -26.7129 61.8127 +96.7169 -27.3673 63.327 +96.1921 -27.7244 64.1533 +95.4178 -28.0092 64.8122 +95.5967 -28.5771 66.1265 +95.5197 -29.076 67.281 +94.6401 -29.3323 67.8739 +95.0086 -29.9799 69.3724 +94.4232 -30.3326 70.1886 +94.4468 -30.8854 71.4678 +94.9895 -31.6192 73.1657 +95.0507 -32.2044 74.52 +94.9425 -32.7405 75.7603 +94.8927 -33.3045 77.0655 +94.8253 -33.8706 78.3755 +94.5927 -34.3852 79.5661 +95.2223 -35.2254 81.5103 +95.024 -35.7721 82.7755 +95.4564 -36.5682 84.6176 +94.2917 -36.7582 85.0573 +94.328 -37.4199 86.5883 +92.52 -37.3489 86.424 +91.6949 -37.6678 87.1619 +90.0368 -37.6384 87.094 +89.2054 -37.9487 87.812 +86.8133 -37.5833 86.9665 +86.3848 -38.0593 88.068 +83.8877 -37.6142 87.0379 +83.5163 -38.1127 88.1915 +81.3758 -37.7971 87.4611 +81.1198 -38.3508 88.7425 +79.1281 -38.0792 88.114 +78.665 -38.5366 89.1725 +75.6978 -37.752 87.3568 +76.4036 -38.7941 89.7681 +73.4775 -37.987 87.9006 +72.8196 -38.335 88.7059 +70.3675 -37.7246 87.2935 +70.0052 -38.2235 88.4479 +68.3487 -38.0123 87.9591 +67.8541 -38.4424 88.9545 +65.7031 -37.9239 87.7546 +65.6492 -38.6104 89.343 +63.4728 -38.0422 88.0284 +63.1781 -38.5932 89.3034 +61.1447 -38.0744 88.1028 +60.9407 -38.6883 89.5234 +59.4603 -38.4919 89.069 +58.3538 -38.5263 89.1485 +56.8951 -38.3166 88.6634 +56.45 -38.787 89.7518 +53.9204 -37.807 87.4841 +54.1048 -38.7209 89.5988 +51.8672 -37.8957 87.6892 +51.8297 -38.6692 89.4792 +49.915 -38.0379 88.0183 +49.3488 -38.4213 88.9055 +47.4308 -37.7386 87.3258 +46.9934 -38.2223 88.445 +45.1606 -37.56 86.9125 +44.5862 -37.9306 87.7701 +43.0037 -37.4337 86.6204 +42.6667 -38.0161 87.9678 +40.9117 -37.3256 86.3702 +40.8705 -38.1961 88.3845 +39.0337 -37.3832 86.5035 +38.8467 -38.1422 88.2598 +37.1999 -37.4633 86.6887 +36.8761 -38.1091 88.1831 +35.1258 -37.2692 86.2396 +34.7834 -37.9112 87.7253 +33.4808 -37.5067 86.7892 +33.208 -38.2588 88.5296 +31.5401 -37.3942 86.529 +31.2725 -38.1811 88.3497 +29.7999 -37.4934 86.7584 +29.3249 -38.0504 88.0472 +28.0607 -37.5799 86.9586 +27.6464 -38.2476 88.5036 +26.1894 -37.4626 86.6872 +25.5713 -37.8584 87.603 +24.5372 -37.6382 87.0936 +24.047 -38.2606 88.5338 +22.9477 -37.9181 87.7412 +22.0902 -37.9574 87.8322 +21.0812 -37.7226 87.2888 +20.3546 -37.9882 87.9034 +19.3586 -37.7462 87.3435 +18.6993 -38.1623 88.3062 +17.5857 -37.6405 87.0987 +17.0175 -38.2859 88.5923 +15.9271 -37.7565 87.3672 +15.1898 -38.0453 88.0354 +14.2636 -37.861 87.609 +13.5137 -38.1446 88.2653 +12.4783 -37.6 87.0051 +11.8701 -38.3505 88.7418 +10.8222 -37.6807 87.1918 +10.087 -38.0718 88.0968 +9.16285 -37.7499 87.3519 +8.38438 -38.0172 87.9706 +7.43008 -37.4516 86.6618 +6.71057 -38.0695 88.0916 +5.83624 -37.8537 87.5922 +5.03472 -38.1102 88.1857 +4.17001 -37.8884 87.6724 +3.35733 -38.1392 88.2529 +2.4711 -37.4356 86.6247 +1.68939 -38.3947 88.8439 +0.826403 -37.566 86.9264 +3.33067e-15 -38.1625 88.3067 +-0.826403 -37.566 86.9264 +-1.69463 -38.5136 89.1192 +-2.47896 -37.5545 86.8999 +-3.3678 -38.2582 88.5281 +-4.15257 -37.7298 87.3055 +-5.03472 -38.1102 88.1857 +-5.7813 -37.4974 86.7676 +-6.77335 -38.4257 88.9157 +-7.47715 -37.6889 87.2108 +-8.51512 -38.61 89.3423 +-9.19161 -37.8683 87.626 +-10.1497 -38.3085 88.6446 +-10.8562 -37.7989 87.4654 +-11.8701 -38.3505 88.7418 +-12.6349 -38.072 88.0973 +-13.5972 -38.3803 88.8108 +-14.2636 -37.861 87.609 +-15.2836 -38.2804 88.5795 +-15.8281 -37.5217 86.824 +-17.1043 -38.4813 89.0443 +-17.6404 -37.7575 87.3695 +-18.7374 -38.2402 88.4864 +-19.2988 -37.6296 87.0736 +-20.4169 -38.1046 88.1727 +-21.1462 -37.8388 87.5577 +-22.3601 -38.4213 88.9055 +-22.8076 -37.6866 87.2056 +-24.2648 -38.6071 89.3354 +-24.5873 -37.715 87.2713 +-25.9596 -38.4332 88.9331 +-26.5635 -37.9978 87.9256 +-27.8945 -38.5908 89.2978 +-28.4867 -38.1504 88.2787 +-29.8219 -38.6953 89.5396 +-30.1608 -37.9474 87.8089 +-31.5197 -38.4829 89.0482 +-32.2064 -38.1843 88.3571 +-33.501 -38.5964 89.3108 +-34.1484 -38.2546 88.5198 +-35.5701 -38.7686 89.7093 +-36.3165 -38.5326 89.163 +-37.8795 -39.1461 90.5827 +-38.5559 -38.8289 89.8487 +-39.5959 -38.8778 89.962 +-40.6792 -38.9592 90.1503 +-42.238 -39.4742 91.3419 +-42.5067 -38.7808 89.7374 +-44.0903 -39.2845 90.9029 +-44.5795 -38.8054 89.7945 +-46.4035 -39.4766 91.3475 +-46.6674 -38.8131 89.8123 +-48.6592 -39.5771 91.5802 +-49.1264 -39.0877 90.4476 +-50.7561 -39.517 91.441 +-51.2541 -39.0583 90.3796 +-53.4728 -39.8953 92.3163 +-53.7758 -39.2902 90.9161 +-55.4622 -39.6921 91.8463 +-56.087 -39.3262 90.9995 +-58.1 -39.9206 92.375 +-58.5699 -39.4446 91.2735 +-60.929 -40.2265 93.0827 +-61.1846 -39.6081 91.6518 +-63.0074 -40.0004 92.5595 +-63.7237 -39.6802 91.8187 +-66.2281 -40.4562 93.6142 +-66.6188 -39.9278 92.3915 +-68.8366 -40.4852 93.6812 +-69.3848 -40.0488 92.6715 +-71.525 -40.522 93.7666 +-72.2394 -40.1761 92.9662 +-74.7075 -40.791 94.389 +-75.0666 -40.244 93.1231 +-77.6341 -40.8696 94.5707 +-78.1041 -40.3788 93.4352 +-80.7132 -40.9822 94.8314 +-81.2382 -40.5149 93.7501 +-83.0703 -40.6946 94.1659 +-83.7715 -40.3138 93.2847 +-86.2621 -40.7819 94.3679 +-85.857 -39.8786 92.2777 +-88.6336 -40.4479 93.595 +-88.5923 -39.7235 91.9188 +-92.4069 -40.7125 94.2072 +-92.691 -40.1277 92.8542 +-94.7978 -40.3277 93.3168 +-95.4748 -39.9115 92.3539 +-98.4331 -40.4356 93.5665 +-99.7394 -40.2634 93.1681 +-102.955 -40.8422 94.5074 +-103.635 -40.4007 93.4857 +-106.966 -40.9775 94.8204 +-107.573 -40.4963 93.7069 +-111.385 -41.2044 95.3455 +-112.73 -40.9782 94.8223 +-115.559 -41.2766 95.5126 +-116.163 -40.7696 94.3394 +-119.32 -41.1468 95.2124 +-100.982 -34.214 79.17 +-97.5175 -32.4607 75.1129 +-98.2278 -32.1219 74.3289 +-97.4541 -31.3062 72.4416 +-97.5912 -30.7948 71.2581 +-97.7133 -30.2848 70.078 +-97.8205 -29.7764 68.9015 +-97.753 -29.2217 67.6181 +-97.8294 -28.717 66.4502 +-97.8911 -28.2141 65.2863 +-98.5894 -27.8971 64.553 +-98.544 -27.3727 63.3396 +-98.2358 -26.7834 61.9759 +-98.8213 -26.4423 61.1866 +-100.567 -26.4057 61.102 +-102.486 -26.4023 61.094 +-104.496 -26.4088 61.1091 +-106.345 -26.3614 60.9994 +-108.371 -26.3446 60.9606 +-110.317 -26.2954 60.8466 +-112.443 -26.2749 60.7992 +-115.008 -26.3408 60.9518 +-117.585 -26.391 61.0678 +-118.686 -26.0983 60.3906 +-126.11 -27.1629 62.8541 +-209.435 -44.176 102.222 +-213.237 -44.0352 101.896 +-205.912 -41.6205 96.3084 +-199.839 -39.5255 91.4607 +-193.78 -37.4932 86.7579 +-193.875 -36.6843 84.8862 +-195.4 -36.1459 83.6403 +-194.186 -35.1061 81.2343 +-194.037 -34.2712 79.3024 +-195.884 -33.788 78.1843 +-194.411 -32.7366 75.7513 +-195.955 -32.199 74.5073 +-124.335 -19.9281 46.1129 +-111.929 -17.4905 40.4724 +-110.629 -16.8465 38.9822 +-109.497 -16.2406 37.5801 +-108.91 -15.7252 36.3876 +-108.781 -15.2814 35.3606 +-107.695 -14.7105 34.0396 +-107.54 -14.2742 33.0299 +-108.135 -13.9381 32.2523 +-109.105 -13.6467 31.5781 +-109.019 -13.2221 30.5956 +-109.497 -12.8668 29.7733 +-109.007 -12.3998 28.6926 +-109.565 -12.0537 27.8919 +-109.246 -11.6123 26.8706 +-109.885 -11.2734 26.0864 +-111.196 -10.9982 25.4494 +-111.823 -10.6499 24.6434 +-114.001 -10.4408 24.1598 +-115.789 -10.1832 23.5635 +-118.551 -9.99639 23.1313 +-3210.53 -259.12 599.594 +-743.583 -57.3381 132.678 +-3221.44 -236.853 548.069 +-829.208 -58.0022 134.215 +-3231.37 -214.513 496.376 +-3235.96 -203.319 470.473 +-17.11 -1.0144 2.34729 +-3244.42 -180.884 418.56 +-905.288 -47.2798 109.404 +-909.47 -44.299 102.506 +-3255.64 -147.149 340.497 +-3258.75 -135.873 314.405 +-3261.61 -124.587 288.289 +-3264.23 -113.291 262.151 +-3266.2 -101.974 235.964 +-3268.72 -90.674 209.816 +-3270.19 -79.345 183.602 +-3272.21 -68.0296 157.418 +-3273.58 -56.6994 131.201 +-3274.7 -45.3646 104.972 +-3275.58 -34.0265 78.7361 +-3276.2 -22.6858 52.4941 +-3276.58 -11.3433 26.248 +119.4 4.88498e-15 0 +119.995 -0.406725 0.964967 +119.682 -0.811388 1.92504 +119.859 -1.21904 2.89221 +119.627 -1.62253 3.8495 +119.386 -2.02454 4.80329 +119.336 -2.42911 5.76314 +120.874 -2.87144 6.81256 +120.107 -3.26205 7.73931 +119.929 -3.66597 8.69761 +120.34 -4.08923 9.70182 +119.945 -4.48579 10.6427 +120.238 -4.90841 11.6453 +119.825 -5.30256 12.5805 +120.793 -5.76056 13.6671 +120.659 -6.16974 14.6379 +120.02 -6.55146 15.5435 +121.253 -7.03836 16.6987 +120.399 -7.40656 17.5723 +120.327 -7.82075 18.555 +119.753 -8.20131 19.4578 +120.252 -8.65643 20.5376 +120.053 -9.06367 21.5038 +120.531 -9.52447 22.5971 +120.508 -9.94876 23.6037 +120.963 -10.4157 24.7115 +120.822 -10.834 25.704 +120.671 -11.2522 26.6961 +120.802 -11.6983 27.7547 +120.534 -12.1073 28.725 +120.065 -12.4953 29.6455 +120.743 -13.0056 30.8561 +120.638 -13.4357 31.8767 +121.099 -13.9323 33.0549 +121.068 -14.3764 34.1083 +121.313 -14.8562 35.2468 +120.879 -15.2549 36.1926 +121.385 -15.7749 37.4263 +121.405 -16.2363 38.5211 +121.129 -16.6601 39.5266 +120.938 -17.0966 40.5622 +121.018 -17.5739 41.6945 +121.272 -18.0808 42.8972 +121.513 -18.5908 44.1072 +117.938 -18.5073 43.909 +115.023 -18.505 43.9036 +111.841 -18.4388 43.7467 +109.13 -18.43 43.7257 +106.519 -18.4201 43.7022 +104.009 -18.4099 43.6781 +101.325 -18.3514 43.5392 +98.9233 -18.3263 43.4796 +96.5305 -18.2863 43.3848 +96.7424 -18.7341 44.4472 +97.2088 -19.2376 45.6418 +96.7729 -19.5664 46.4218 +97.8306 -20.2036 47.9336 +96.7578 -20.4047 48.4107 +97.0828 -20.9013 49.589 +96.4354 -21.1913 50.277 +96.6484 -21.6727 51.4192 +96.244 -22.0192 52.2412 +96.3456 -22.4846 53.3454 +96.6041 -22.9929 54.5514 +96.0838 -23.3195 55.3262 +96.231 -23.8112 56.4928 +96.4471 -24.3269 57.7162 +96.564 -24.8243 58.8964 +96.7487 -25.3462 60.1345 +96.0107 -25.6291 60.8058 +96.2504 -26.1763 62.1041 +96.3913 -26.7045 63.3573 +96.4348 -27.2129 64.5633 +96.2217 -27.6542 65.6104 +96.3154 -28.1897 66.8808 +95.5197 -28.4678 67.5406 +96.1373 -29.173 69.2138 +94.7738 -29.2801 69.468 +95.2781 -29.9669 71.0973 +94.9098 -30.3875 72.0952 +95.0661 -30.9827 73.5072 +94.4424 -31.3289 74.3287 +95.0179 -32.081 76.1131 +94.8927 -32.6078 77.3628 +94.8253 -33.162 78.6779 +94.6664 -33.6921 79.9355 +94.3446 -34.1706 81.0707 +95.0966 -35.0505 83.1584 +94.8809 -35.5873 84.432 +94.9336 -36.2343 85.9668 +94.6816 -36.7744 87.2482 +94.1321 -37.2047 88.2691 +94.6125 -38.0532 90.2822 +92.1707 -37.7244 89.5022 +92.5472 -38.5467 91.4531 +88.6374 -37.5703 89.1365 +89.0613 -38.4177 91.147 +86.3394 -37.9036 89.9273 +86.403 -38.6052 91.5918 +84.3633 -38.3649 91.0218 +83.7552 -38.7684 91.9792 +81.1636 -38.2416 90.7293 +81.7487 -39.2094 93.0254 +78.9349 -38.5428 91.4439 +78.62 -39.0843 92.7287 +76.2778 -38.6098 91.6028 +76.3101 -39.3321 93.3166 +72.5089 -38.0594 90.2971 +72.709 -38.8692 92.2182 +69.9166 -38.0708 90.3241 +70.091 -38.8789 92.2412 +67.9687 -38.4109 91.1309 +67.8301 -39.0583 92.667 +65.4597 -38.4124 91.1344 +66.0103 -39.4797 93.6668 +63.67 -38.8175 92.0955 +63.7493 -39.6246 94.0105 +61.2891 -38.8459 92.1629 +61.1865 -39.5512 93.8363 +58.6207 -38.6529 91.7051 +58.8 -39.5566 93.8492 +56.1855 -38.5711 91.511 +56.141 -39.3376 93.3295 +54.0144 -38.6389 91.6718 +53.8484 -39.3349 93.3231 +51.5311 -38.4479 91.2187 +51.2555 -39.0711 92.6974 +48.9925 -38.1657 90.5492 +49.0099 -39.0284 92.596 +46.6674 -38.0012 90.1588 +46.2767 -38.5451 91.4494 +44.3307 -37.7816 89.6379 +44.3343 -38.6755 91.7588 +42.387 -37.8626 89.8301 +42.0036 -38.4339 91.1855 +40.5644 -38.0365 90.2427 +40.2702 -38.7128 91.8471 +38.5193 -37.9805 90.1097 +38.3095 -38.7622 91.9645 +36.3165 -37.7264 89.5071 +36.2541 -38.6875 91.7873 +34.5156 -37.857 89.8169 +34.1195 -38.4867 91.3108 +32.4603 -37.6801 89.397 +32.2305 -38.5274 91.4075 +30.7622 -37.8944 89.9054 +30.4067 -38.6286 91.6475 +28.9696 -37.9854 90.1214 +28.5009 -38.6049 91.5911 +26.9644 -37.7643 89.5968 +26.5548 -38.492 91.3234 +25.2633 -37.9413 90.0168 +24.8938 -38.7792 92.0048 +23.5546 -38.1068 90.4094 +23.0125 -38.715 91.8524 +21.644 -37.9194 89.9648 +21.207 -38.7511 91.9381 +19.8172 -37.8319 89.7573 +19.2526 -38.4696 91.2702 +18.1142 -37.9605 90.0624 +17.4169 -38.3647 91.0214 +16.3067 -37.8477 89.7947 +15.6904 -38.4769 91.2876 +14.6036 -37.9525 90.0433 +13.9591 -38.5774 91.5261 +12.8568 -37.9301 89.9903 +12.2235 -38.6662 91.7366 +11.1505 -38.0115 90.1834 +10.4528 -38.6273 91.6443 +9.39288 -37.888 89.8903 +8.74172 -38.8083 92.0738 +7.66545 -37.8297 89.7521 +6.97565 -38.7454 91.9246 +6.01328 -38.1861 90.5976 +5.21789 -38.6705 91.7468 +4.28342 -38.1046 90.4042 +3.48995 -38.8164 92.093 +2.55749 -37.9337 89.9988 +1.73477 -38.6011 91.5823 +0.8552 -38.0618 90.3027 +3.66374e-15 -38.9566 92.4255 +-0.859564 -38.256 90.7633 +-1.75048 -38.9507 92.4117 +-2.55749 -37.9337 89.9988 +-3.50042 -38.9329 92.3693 +-4.2747 -38.027 90.2201 +-5.2336 -38.7868 92.0228 +-6.01328 -38.1861 90.5976 +-7.03843 -39.094 92.7517 +-7.72822 -38.1395 90.4871 +-8.76787 -38.9243 92.349 +-9.44081 -38.0813 90.3489 +-10.5156 -38.8591 92.1942 +-11.1845 -38.1273 90.458 +-12.321 -38.9744 92.4679 +-12.9351 -38.1612 90.5385 +-14.1122 -39.0004 92.5296 +-14.6479 -38.0677 90.3167 +-15.8155 -38.7838 92.0157 +-16.3562 -37.9626 90.0673 +-17.4169 -38.3647 91.0214 +-18.0595 -37.846 89.7906 +-19.2908 -38.5458 91.451 +-19.877 -37.9461 90.0283 +-21.207 -38.7511 91.9381 +-21.8388 -38.2607 90.7745 +-23.1475 -38.9422 92.3914 +-23.4846 -37.9935 90.1406 +-25.0873 -39.0808 92.7204 +-25.4636 -38.2421 90.7305 +-27.1242 -39.3174 93.2816 +-27.2583 -38.176 90.5736 +-28.9695 -39.2397 93.0973 +-29.14 -38.2088 90.6516 +-31.0791 -39.4828 93.6741 +-31.1832 -38.4129 91.1358 +-32.8485 -39.2661 93.1599 +-33.2853 -38.6378 91.6692 +-34.8032 -39.258 93.1406 +-35.2834 -38.6991 91.8148 +-37.075 -39.5636 93.8658 +-37.5422 -38.9997 92.5278 +-39.0263 -39.4875 93.6852 +-39.7287 -39.1729 92.9388 +-41.4689 -39.865 94.5809 +-41.6742 -39.077 92.7112 +-43.5665 -39.8639 94.5781 +-43.9023 -39.216 93.0411 +-45.7172 -39.8821 94.6214 +-45.9065 -39.1247 92.8245 +-47.9672 -39.9532 94.7901 +-48.3894 -39.4036 93.4862 +-50.325 -40.0759 95.0813 +-50.5542 -39.3822 93.4355 +-52.7537 -40.213 95.4065 +-53.1473 -39.6537 94.0796 +-55.3976 -40.4667 96.0083 +-55.3027 -39.5605 93.8584 +-57.6439 -40.3905 95.8277 +-57.6628 -39.5854 93.9174 +-60.35 -40.5991 96.3225 +-60.194 -39.6902 94.1662 +-63.0922 -40.7832 96.7593 +-62.9088 -39.8724 94.5984 +-65.922 -40.9751 97.2145 +-66.1416 -40.3241 95.6701 +-69.2236 -41.4015 98.2263 +-68.661 -40.2907 95.5908 +-71.4089 -41.1192 97.5564 +-71.8203 -40.5874 96.2949 +-74.5076 -41.3289 98.054 +-74.33 -40.474 96.0258 +-77.4113 -41.3833 98.183 +-77.2675 -40.5572 96.223 +-80.2219 -41.3483 98.1001 +-80.7218 -40.8593 96.9399 +-82.9912 -41.2574 97.8844 +-82.7944 -40.4274 95.9152 +-86.154 -41.3223 98.0383 +-85.9342 -40.4892 96.0617 +-88.5761 -40.9999 97.2735 +-88.3249 -40.1664 95.296 +-92.5699 -41.3608 98.1295 +-92.5018 -40.6088 96.3455 +-95.8195 -41.3328 98.0632 +-94.7177 -40.1474 95.2508 +-99.0944 -41.2737 97.9231 +-98.3659 -40.26 95.518 +-103.504 -41.6295 98.7672 +-102.473 -40.5012 96.0903 +-106.632 -41.4159 98.2604 +-106.774 -40.7533 96.6883 +-110.994 -41.6311 98.7709 +-110.547 -40.7451 96.669 +-115.115 -41.6936 98.9193 +-115.163 -40.9867 97.2422 +-119.275 -41.7123 98.9635 +-119.758 -41.1522 97.6347 +-98.1122 -33.1258 78.5918 +-98.5486 -32.6911 77.5605 +-97.6707 -31.8315 75.5211 +-98.1506 -31.4251 74.557 +-97.6095 -30.7002 72.837 +-97.7478 -30.1989 71.6478 +-97.7921 -29.6752 70.4052 +-97.8205 -29.1534 69.1674 +-97.753 -28.6104 67.879 +-97.6686 -28.0701 66.5971 +-97.8911 -27.6238 65.5383 +-97.8567 -27.1105 64.3205 +-97.7248 -26.5773 63.0555 +-98.3183 -26.2451 62.2672 +-97.5777 -25.5633 60.6498 +-99.8995 -25.6818 60.9309 +-101.815 -25.6807 60.9282 +-103.737 -25.6686 60.8994 +-105.752 -25.6658 60.8929 +-108.456 -25.8138 61.2439 +-109.632 -25.5853 60.7017 +-113.132 -25.8829 61.408 +-114.229 -25.615 60.7723 +-117.063 -25.7241 61.0313 +-118.686 -25.5524 60.6237 +-122.507 -25.8348 61.2938 +-211.996 -43.7805 103.87 +-211.641 -42.7912 101.523 +-194.596 -38.5105 91.3672 +-195.096 -37.7801 89.6344 +-195.308 -36.9983 87.7795 +-193.875 -35.9169 85.2138 +-196.125 -35.521 84.2746 +-195.369 -34.5811 82.0446 +-196.504 -33.9808 80.6204 +-195.792 -33.0656 78.4492 +-162.929 -26.8615 63.7297 +-162.048 -26.0705 61.8529 +-146.402 -22.974 54.5065 +-112.581 -17.2242 40.865 +-111.283 -16.5915 39.3638 +-109.403 -15.8872 37.6928 +-108.91 -15.3962 36.528 +-108.592 -14.9358 35.4356 +-108.356 -14.4913 34.3809 +-108.014 -14.0372 33.3036 +-108.23 -13.6585 32.4052 +-108.724 -13.3146 31.5892 +-108.062 -12.832 30.4442 +-110.456 -12.7079 30.1499 +-109.199 -12.1617 28.8541 +-109.276 -11.7704 27.9256 +-108.956 -11.3393 26.9027 +-109.982 -11.0473 26.2101 +-111.39 -10.7869 25.5922 +-111.92 -10.4362 24.7601 +-114.001 -10.2224 24.253 +-115.203 -9.91971 23.5348 +-117.769 -9.72267 23.0673 +-3210.53 -253.699 601.908 +-3216.11 -242.808 576.068 +-806.564 -58.0612 137.752 +-3226.53 -220.97 524.258 +-3231.37 -210.026 498.292 +-3235.96 -199.065 472.288 +-3240.31 -188.09 446.248 +-892.826 -48.7357 115.627 +-906.379 -46.3466 109.959 +-893.788 -42.6242 101.127 +-3255.24 -144.053 341.77 +-3258.35 -133.014 315.58 +-3261.61 -121.98 289.402 +-3264.23 -110.921 263.162 +-3266.6 -99.8527 236.903 +-3268.72 -88.7771 210.626 +-3270.59 -77.6948 184.333 +-3272.21 -66.6064 158.026 +-3273.58 -55.5133 131.707 +-3274.7 -44.4155 105.377 +-3275.58 -33.3146 79.0399 +-3276.2 -22.2112 52.6966 +-3276.58 -11.106 26.3493 +119.4 4.88498e-15 0 +119.395 -0.396014 0.96376 +119.682 -0.793985 1.93228 +119.259 -1.18692 2.88856 +119.627 -1.58773 3.86398 +119.786 -1.98775 4.83749 +119.336 -2.37701 5.78483 +119.477 -2.77736 6.75914 +120.107 -3.19208 7.76843 +119.73 -3.58137 8.71582 +120.34 -4.00153 9.73833 +120.244 -4.40052 10.7093 +120.238 -4.80313 11.6892 +120.123 -5.20175 12.6593 +120.793 -5.637 13.7185 +120.758 -6.04239 14.7051 +120.02 -6.41094 15.602 +120.561 -6.8481 16.6659 +120.399 -7.2477 17.6384 +120.228 -7.64674 18.6095 +119.753 -8.0254 19.531 +120.252 -8.47077 20.6149 +120.053 -8.86927 21.5847 +120.727 -9.33531 22.7189 +120.508 -9.73537 23.6925 +120.28 -10.1347 24.6644 +120.822 -10.6016 25.8007 +120.574 -11.002 26.7749 +120.802 -11.4474 27.8591 +120.534 -11.8476 28.8331 +120.065 -12.2273 29.757 +120.839 -12.7368 30.9969 +120.638 -13.1476 31.9966 +121.099 -13.6335 33.1793 +121.068 -14.068 34.2367 +121.313 -14.5376 35.3795 +120.879 -14.9277 36.3287 +121.575 -15.4607 37.6259 +121.405 -15.8881 38.666 +121.129 -16.3028 39.6753 +120.938 -16.7299 40.7148 +121.018 -17.1969 41.8514 +121.272 -17.693 43.0586 +120.21 -17.9971 43.7986 +117.938 -18.1103 44.0742 +113.914 -17.9336 43.644 +111.841 -18.0434 43.9113 +107.571 -17.7771 43.2633 +106.519 -18.025 43.8666 +102.462 -17.7472 43.1904 +101.325 -17.9578 43.7031 +97.389 -17.655 42.9662 +96.5305 -17.8941 43.548 +96.9214 -18.3662 44.6969 +97.2088 -18.825 45.8135 +97.5712 -19.3046 46.9807 +97.8306 -19.7702 48.1139 +97.4608 -20.1121 48.9459 +97.0828 -20.453 49.7756 +96.5224 -20.7555 50.5118 +96.6484 -21.2079 51.6126 +97.0194 -21.7205 52.8602 +96.3456 -22.0023 53.5461 +96.6894 -22.5196 54.805 +96.0838 -22.8193 55.5344 +96.231 -23.3005 56.7054 +96.4471 -23.8051 57.9333 +95.8969 -24.1241 58.7097 +96.7487 -24.8025 60.3607 +96.0931 -25.1009 61.087 +96.2504 -25.6149 62.3377 +96.3913 -26.1318 63.5957 +96.4348 -26.6292 64.8062 +96.4628 -27.1289 66.0223 +96.3154 -27.585 67.1324 +95.9164 -27.9729 68.0763 +96.1373 -28.5473 69.4742 +96.3391 -29.1253 70.881 +95.2781 -29.3242 71.3648 +95.0641 -29.7841 72.4841 +95.0661 -30.3181 73.7838 +95.8112 -31.1013 75.6898 +95.0179 -31.3929 76.3995 +95.0425 -31.9587 77.7765 +94.8253 -32.4508 78.9739 +94.7401 -32.9951 80.2986 +94.3446 -33.4377 81.3758 +95.0966 -34.2987 83.4712 +94.8809 -34.824 84.7496 +94.7197 -35.3772 86.0958 +94.6816 -35.9856 87.5765 +94.9732 -36.732 89.3929 +94.6125 -37.237 90.6219 +94.9241 -38.018 92.5226 +92.5472 -37.7199 91.7972 +94.4475 -39.1742 95.3363 +89.0613 -37.5937 91.49 +93.0981 -39.994 97.3315 +86.403 -37.7771 91.9365 +90.0784 -40.0852 97.5535 +83.7552 -37.9369 92.3252 +87.3335 -40.2661 97.9937 +81.7487 -38.3684 93.3754 +84.3507 -40.3037 98.0853 +78.62 -38.246 93.0776 +81.9393 -40.5857 98.7716 +76.3101 -38.4885 93.6677 +79.1114 -40.6344 98.89 +72.709 -38.0355 92.5652 +76.4786 -40.7507 99.1731 +70.091 -38.045 92.5883 +73.5762 -40.688 99.0204 +67.8301 -38.2206 93.0156 +70.6479 -40.5675 98.7272 +66.0103 -38.6329 94.0192 +68.9355 -41.1262 100.087 +63.7493 -38.7747 94.3642 +66.6708 -41.3504 100.633 +61.1865 -38.7029 94.1894 +64.6604 -41.721 101.534 +58.8 -38.7082 94.2023 +62.3901 -41.9118 101.999 +56.141 -38.4938 93.6807 +59.2631 -41.4842 100.958 +53.8484 -38.4912 93.6742 +56.7951 -41.4664 100.915 +51.2555 -38.2331 93.0461 +54.6146 -41.6328 101.32 +49.0099 -38.1913 92.9444 +51.1878 -40.7879 99.2637 +46.2767 -37.7184 91.7935 +48.685 -40.6025 98.8123 +44.3343 -37.846 92.1041 +46.0156 -40.2224 97.8874 +42.0036 -37.6095 91.5286 +43.8938 -40.2756 98.0169 +40.2702 -37.8824 92.1927 +41.8178 -40.3486 98.1945 +38.3095 -37.9308 92.3105 +39.6785 -40.3349 98.1612 +36.2541 -37.8578 92.1326 +37.8203 -40.5918 98.7864 +34.1195 -37.6612 91.6544 +35.6016 -40.4402 98.4174 +32.2305 -37.7011 91.7514 +33.4686 -40.344 98.1834 +30.4067 -37.8001 91.9923 +31.5257 -40.4504 98.4423 +28.5009 -37.7768 91.9357 +29.316 -40.1772 97.7773 +26.5548 -37.6664 91.667 +27.2664 -40.0711 97.5192 +24.8938 -37.9474 92.3509 +25.5156 -40.3938 98.3045 +23.0125 -37.8846 92.198 +23.4621 -40.2228 97.8883 +21.207 -37.92 92.2841 +21.4919 -40.149 97.7088 +19.2526 -37.6445 91.6136 +19.7361 -40.4725 98.496 +17.4169 -37.5418 91.3638 +17.7426 -40.2973 98.0696 +15.6904 -37.6516 91.631 +15.8452 -40.2961 98.0668 +13.9591 -37.75 91.8704 +14.0316 -40.5078 98.582 +12.2235 -37.8368 92.0818 +12.0675 -40.2551 97.9669 +10.4528 -37.7988 91.9891 +10.2459 -40.4425 98.4229 +8.74172 -37.9759 92.4202 +8.37159 -40.4284 98.3887 +6.97565 -37.9144 92.2705 +6.56272 -40.7811 99.2471 +5.21789 -37.841 92.0919 +4.68908 -40.8187 99.3386 +3.48995 -37.9838 92.4395 +2.77737 -40.3117 98.1047 +1.73477 -37.7732 91.9268 +0.930249 -40.5139 98.5968 +3.77476e-15 -38.121 92.7733 +-0.925885 -40.3239 98.1343 +-1.75048 -38.1153 92.7594 +-2.79046 -40.5014 98.5663 +-3.50042 -38.0978 92.7169 +-4.68908 -40.8187 99.3386 +-5.2336 -37.9549 92.3691 +-6.47725 -40.2501 97.9549 +-7.03843 -38.2555 93.1007 +-8.37159 -40.4284 98.3887 +-8.76787 -38.0894 92.6965 +-10.2555 -40.4801 98.5145 +-10.5156 -38.0256 92.5411 +-12.1241 -40.444 98.4266 +-12.321 -38.1385 92.8158 +-13.9794 -40.3573 98.2157 +-14.1122 -38.1639 92.8778 +-15.9339 -40.5215 98.6153 +-15.8155 -37.952 92.3619 +-17.7921 -40.4098 98.3434 +-17.4169 -37.5418 91.3638 +-19.645 -40.2855 98.0409 +-19.2908 -37.7191 91.7951 +-21.7909 -40.7077 99.0685 +-21.207 -37.92 92.2841 +-23.5703 -40.4086 98.3406 +-23.1475 -38.1069 92.739 +-25.8191 -40.8742 99.4737 +-25.0873 -38.2426 93.0693 +-27.7922 -40.8438 99.3997 +-27.1242 -38.4741 93.6326 +-29.7436 -40.7632 99.2036 +-28.9695 -38.3981 93.4476 +-31.8665 -40.8879 99.507 +-31.0791 -38.636 94.0266 +-33.7392 -40.6701 98.977 +-32.8485 -38.4239 93.5105 +-36.2045 -41.1251 100.084 +-34.8032 -38.4159 93.491 +-38.4879 -41.3086 100.531 +-37.075 -38.715 94.219 +-40.519 -41.1893 100.24 +-39.0263 -38.6405 94.0377 +-43.0639 -41.5507 101.12 +-41.4689 -39.01 94.9367 +-45.3097 -41.5747 101.178 +-43.5665 -39.0088 94.934 +-47.7701 -41.756 101.62 +-45.7172 -39.0267 94.9774 +-50.2194 -41.8822 101.927 +-47.9672 -39.0962 95.1467 +-52.3501 -41.7142 101.518 +-50.325 -39.2164 95.439 +-55.1054 -42.0068 102.23 +-52.7537 -39.3505 95.7655 +-57.8571 -42.2417 102.802 +-55.3976 -39.5987 96.3695 +-60.6469 -42.453 103.316 +-57.6439 -39.5242 96.1882 +-63.0795 -42.3751 103.126 +-60.35 -39.7283 96.6849 +-66.0815 -42.6377 103.765 +-63.0922 -39.9085 97.1233 +-69.4401 -43.068 104.813 +-65.922 -40.0962 97.5803 +-72.2668 -43.1136 104.924 +-69.2236 -40.5135 98.5959 +-74.7323 -42.9129 104.435 +-71.4089 -40.2372 97.9234 +-78.2207 -43.2565 105.271 +-74.5076 -40.4425 98.4229 +-80.5435 -42.9167 104.444 +-77.4113 -40.4957 98.5524 +-84.1079 -43.2006 105.135 +-80.2219 -40.4615 98.4692 +-86.8703 -43.0284 104.716 +-82.9912 -40.3725 98.2527 +-89.7666 -42.8916 104.383 +-86.154 -40.436 98.4072 +-93.5671 -43.1402 104.988 +-88.5761 -40.1205 97.6395 +-97.5471 -43.4089 105.642 +-92.5699 -40.4736 98.4988 +-100.718 -43.2675 105.298 +-95.8195 -40.4463 98.4322 +-104.514 -43.3496 105.498 +-99.0944 -40.3885 98.2916 +-108.072 -43.2839 105.338 +-103.504 -40.7366 99.1388 +-112.496 -43.5092 105.886 +-106.632 -40.5276 98.6301 +-115.475 -43.1292 104.961 +-110.994 -40.7381 99.1425 +-120.049 -43.2987 105.374 +-115.115 -40.7993 99.2915 +-97.4681 -33.9452 82.6108 +-119.275 -40.8176 99.3358 +-97.4391 -32.7646 79.7377 +-98.1122 -32.4153 78.8875 +-97.9403 -31.7924 77.3717 +-97.6707 -31.1488 75.8053 +-97.4562 -30.5335 74.3081 +-97.6095 -30.0417 73.1111 +-97.826 -29.5749 71.9749 +-97.7921 -29.0387 70.6701 +-97.9791 -28.5744 69.5402 +-97.753 -27.9968 68.1344 +-97.8294 -27.5132 66.9576 +-97.8911 -27.0313 65.7849 +-98.5894 -26.7277 65.0459 +-97.7248 -26.0073 63.2927 +-98.4007 -25.7037 62.5539 +-97.5777 -25.015 60.878 +-98.6487 -24.8163 60.3943 +-101.815 -25.1299 61.1575 +-103.062 -24.9546 60.7309 +-105.752 -25.1153 61.122 +-106.239 -24.7438 60.2178 +-109.632 -25.0365 60.9301 +-110.806 -24.8069 60.3714 +-114.229 -25.0656 61.001 +-115.322 -24.7981 60.3499 +-118.686 -25.0043 60.8518 +-119.959 -24.7548 60.2445 +-211.996 -42.8415 104.261 +-195.231 -38.6269 94.0044 +-194.596 -37.6845 91.711 +-194.738 -36.902 89.8066 +-195.308 -36.2047 88.1097 +-196.222 -35.5719 86.5697 +-196.125 -34.7591 84.5917 +-163.429 -28.3072 68.8898 +-196.504 -33.252 80.9237 +-157.551 -26.0367 63.3643 +-162.929 -26.2854 63.9695 +-157.337 -24.7695 60.2804 +-146.402 -22.4813 54.7116 +-116.023 -17.3702 42.2731 +-111.283 -16.2356 39.5119 +-110.34 -15.6795 38.1586 +-108.91 -15.066 36.6654 +-108.781 -14.6408 35.6306 +-108.356 -14.1804 34.5103 +-108.109 -13.7481 33.4582 +-108.23 -13.3656 32.5272 +-108.152 -12.9604 31.5411 +-108.062 -12.5567 30.5588 +-109.018 -12.2734 29.8692 +-109.199 -11.9009 28.9627 +-109.083 -11.4976 27.9813 +-108.956 -11.0961 27.004 +-109.885 -10.8009 26.2855 +-111.39 -10.5555 25.6885 +-111.823 -10.2034 24.8316 +-114.001 -10.0032 24.3442 +-115.105 -9.69869 23.6033 +-117.769 -9.51413 23.1541 +-120.335 -9.30502 22.6452 +-3216.11 -237.6 578.236 +-3221.44 -226.924 552.253 +-3226.53 -216.231 526.231 +-3231.37 -205.521 500.166 +-3235.96 -194.796 474.065 +-881.411 -50.0658 121.843 +-892.826 -47.6904 116.062 +-381.012 -19.0648 46.397 +-893.788 -41.71 101.508 +-887.558 -38.4342 93.5354 +-3258.35 -130.161 316.768 +-909.394 -33.2807 80.9937 +-3264.23 -108.541 264.152 +-3266.2 -97.6992 237.766 +-3268.72 -86.8729 211.419 +-3270.59 -76.0284 185.027 +-3272.21 -65.1778 158.62 +-3273.58 -54.3226 132.202 +-3274.7 -43.4629 105.774 +-3275.58 -32.6001 79.3373 +-3276.2 -21.7348 52.8949 +-3276.58 -10.8678 26.4484 +119.1 5.77316e-15 2.84217e-14 +118.795 -0.385354 0.962429 +119.382 -0.774573 1.93451 +119.459 -1.16276 2.90402 +119.327 -1.54891 3.86843 +120.086 -1.94888 4.86738 +120.135 -2.34028 5.84491 +120.275 -2.73441 6.82926 +120.306 -3.12704 7.80986 +120.727 -3.53175 8.82062 +119.743 -3.89405 9.72548 +120.642 -4.31795 10.7842 +120.437 -4.70523 11.7514 +120.322 -5.09571 12.7267 +120.991 -5.52206 13.7915 +120.758 -5.90945 14.759 +120.912 -6.31644 15.7754 +120.66 -6.7029 16.7407 +120.696 -7.10568 17.7466 +120.228 -7.47851 18.6777 +120.048 -7.86821 19.651 +120.547 -8.30474 20.7413 +120.151 -8.68124 21.6816 +120.629 -9.12253 22.7837 +120.606 -9.52892 23.7987 +120.28 -9.91175 24.7548 +120.822 -10.3684 25.8953 +120.477 -10.7512 26.8515 +120.22 -11.1416 27.8264 +120.534 -11.587 28.9388 +121.031 -12.0545 30.1064 +121.514 -12.5261 31.2843 +121.023 -12.8993 32.2162 +121.099 -13.3336 33.3009 +121.642 -13.8237 34.525 +121.217 -14.2066 35.4812 +121.83 -14.7141 36.7488 +121.385 -15.0969 37.7049 +121.499 -15.5506 38.838 +121.318 -15.9689 39.8827 +121.408 -16.4254 41.0228 +121.486 -16.8837 42.1674 +121.179 -17.2904 43.1833 +118.535 -17.3559 43.3468 +115.527 -17.3498 43.3316 +112.344 -17.2972 43.2001 +109.632 -17.2978 43.2018 +106.929 -17.2822 43.1628 +103.687 -17.1598 42.8569 +101.097 -17.1255 42.7713 +99.3313 -17.2171 43.0002 +96.9377 -17.1866 42.924 +97.1596 -17.6145 43.9925 +97.0109 -17.9787 44.9022 +96.5851 -18.2927 45.6865 +98.3695 -19.0344 47.5388 +97.0359 -19.1782 47.8981 +96.7578 -19.5278 48.771 +96.9953 -19.985 49.9131 +96.5224 -20.2989 50.697 +96.8216 -20.7785 51.8947 +96.9333 -21.2238 53.007 +96.4313 -21.5374 53.7903 +96.6041 -22.0048 54.9575 +96.8471 -22.4946 56.1808 +96.3153 -22.8079 56.9632 +96.531 -23.3016 58.1964 +96.564 -23.7575 59.3348 +96.0026 -24.0698 60.1148 +96.1755 -24.5698 61.3635 +96.4142 -25.094 62.6728 +96.3913 -25.5569 63.8289 +96.4348 -26.0434 65.0439 +96.5432 -26.5542 66.3196 +95.8363 -26.8439 67.0434 +95.9164 -27.3575 68.3259 +96.6101 -28.0566 70.0719 +95.9478 -28.3689 70.8519 +95.8221 -28.8428 72.0355 +95.8358 -29.3653 73.3405 +96.3684 -30.0573 75.0689 +96.4195 -30.6102 76.4496 +95.6972 -30.9218 77.2278 +96.0161 -31.5758 78.8614 +95.8657 -32.085 80.1331 +95.33 -32.4701 81.0949 +95.3685 -33.057 82.5605 +95.4593 -33.6721 84.0969 +95.3125 -34.2128 85.4473 +94.791 -34.6249 86.4765 +94.6109 -35.1676 87.832 +94.4826 -35.7383 89.2573 +94.8903 -36.5247 91.2213 +94.6488 -37.0738 92.5927 +95.0706 -37.896 94.6462 +94.7177 -38.422 95.9598 +94.7489 -39.1145 97.6893 +94.3571 -39.643 99.0094 +94.6037 -40.4526 101.031 +94.4297 -41.0972 102.641 +94.4255 -41.8291 104.469 +93.9488 -42.3632 105.803 +94.3981 -43.3308 108.22 +91.5719 -42.7918 106.873 +91.3026 -43.4386 108.489 +88.8183 -43.0252 107.456 +87.8048 -43.3118 108.172 +85.3571 -42.8776 107.088 +84.935 -43.4538 108.527 +82.634 -43.062 107.548 +81.9641 -43.511 108.67 +79.75 -43.1319 107.723 +79.2376 -43.6664 109.058 +77.216 -43.3638 108.302 +76.8486 -43.9865 109.857 +74.8458 -43.6698 109.066 +74.2417 -44.1634 110.299 +71.3733 -43.2932 108.126 +71.6933 -44.3515 110.769 +68.873 -43.4612 108.545 +69.2 -44.5522 111.27 +67.8067 -44.5485 111.261 +67.1946 -45.0592 112.536 +65.5616 -44.8834 112.097 +64.9749 -45.4227 113.444 +62.4746 -44.6098 111.414 +62.1059 -45.3075 113.157 +60.2367 -44.9083 112.159 +59.1363 -45.0685 112.56 +57.1719 -44.554 111.275 +56.2505 -44.8391 111.987 +53.8687 -43.9374 109.735 +53.4452 -44.6198 111.439 +51.0798 -43.6664 109.058 +50.5215 -44.2411 110.493 +48.4477 -43.4761 108.583 +48.1369 -44.2864 110.606 +45.8127 -43.2304 107.969 +45.1185 -43.6898 109.116 +43.7759 -43.5211 108.695 +42.8551 -43.766 109.307 +41.125 -43.1676 107.812 +40.5332 -43.7564 109.283 +39.0919 -43.4278 108.462 +38.2563 -43.7653 109.305 +36.5959 -43.143 107.751 +36.1079 -43.9002 109.642 +34.4511 -43.2315 107.972 +33.6278 -43.5917 108.871 +32.5229 -43.5917 108.871 +31.5759 -43.8032 109.4 +30.1458 -43.3282 108.213 +29.2242 -43.5687 108.814 +28.0368 -43.4088 108.415 +27.2416 -43.8601 109.542 +25.7996 -43.2572 108.036 +25.1781 -44.0303 109.967 +23.7248 -43.3453 108.256 +22.8589 -43.7125 109.173 +21.7407 -43.6021 108.897 +20.8551 -43.9638 109.801 +19.5416 -43.4066 108.409 +18.647 -43.7619 109.296 +17.3528 -43.159 107.791 +16.4503 -43.5084 108.663 +15.2846 -43.1546 107.78 +14.4537 -43.756 109.282 +13.3014 -43.3951 108.38 +12.3657 -43.7322 109.222 +11.2331 -43.3635 108.301 +10.3105 -43.8058 109.406 +9.12479 -43.0962 107.634 +8.21034 -43.6434 109 +7.14878 -43.446 108.507 +6.15994 -43.6902 109.117 +5.10783 -43.4858 108.607 +4.10767 -43.7233 109.2 +3.06532 -43.5122 108.673 +2.04891 -43.6318 108.972 +1.02188 -43.5255 108.706 +4.88498e-15 -43.8616 109.545 +-1.01751 -43.3397 108.242 +-2.05938 -43.8549 109.529 +-3.06532 -43.5122 108.673 +-4.10069 -43.6489 109.014 +-5.08602 -43.2999 108.143 +-6.22798 -44.1727 110.322 +-7.14878 -43.446 108.507 +-8.27312 -43.9772 109.834 +-9.25817 -43.7263 109.207 +-10.3192 -43.8426 109.498 +-11.2619 -43.4746 108.579 +-12.4912 -44.1756 110.33 +-13.3693 -43.6166 108.933 +-14.5634 -44.0879 110.111 +-15.4804 -43.7073 109.16 +-16.7147 -44.2076 110.41 +-17.5006 -43.5266 108.709 +-18.6939 -43.8723 109.572 +-19.5416 -43.4066 108.409 +-20.9072 -44.0738 110.075 +-21.7407 -43.6021 108.897 +-23.0306 -44.0407 109.993 +-23.7048 -43.3088 108.165 +-25.2405 -44.1392 110.239 +-25.9295 -43.475 108.58 +-27.444 -44.1861 110.356 +-28.1769 -43.6255 108.956 +-29.6596 -44.2177 110.435 +-30.296 -43.5441 108.752 +-32.0418 -44.4496 111.014 +-32.416 -43.4482 108.513 +-34.2066 -44.3422 110.746 +-34.7067 -43.5523 108.773 +-36.6342 -44.5399 111.239 +-37.4078 -44.1002 110.141 +-39.0288 -44.6488 111.512 +-39.6631 -44.0623 110.047 +-41.5099 -44.8109 111.916 +-42.0263 -44.1139 110.176 +-43.9154 -44.8492 112.012 +-44.4413 -44.1827 110.347 +-46.337 -44.8696 112.063 +-46.8389 -44.1987 110.387 +-49.036 -45.1135 112.672 +-49.5958 -44.5065 111.156 +-51.3811 -44.9938 112.373 +-52.0368 -44.4845 111.101 +-54.096 -45.1633 112.796 +-54.698 -44.6139 111.424 +-56.7576 -45.2432 112.996 +-57.5163 -44.8224 111.945 +-60.013 -45.7368 114.229 +-60.0582 -44.7752 111.827 +-62.6961 -45.7379 114.232 +-63.2134 -45.1373 112.731 +-66.1016 -46.2104 115.412 +-66.8977 -45.7982 114.382 +-69.958 -46.9125 117.165 +-70.2196 -46.1338 115.22 +-73.5 -47.3207 118.184 +-73.8976 -46.6319 116.464 +-76.7922 -47.5058 118.647 +-77.0163 -46.7159 116.674 +-79.5409 -47.3155 118.171 +-79.198 -46.2093 115.409 +-82.4583 -47.1976 117.877 +-82.8457 -46.5252 116.198 +-84.8855 -46.7787 116.831 +-85.4707 -46.226 115.45 +-88.3881 -46.9211 117.187 +-88.0926 -45.9063 114.652 +-90.4014 -46.2505 115.512 +-91.3648 -45.8955 114.625 +-94.6053 -46.6665 116.551 +-95.6973 -46.3576 115.779 +-98.8752 -47.0415 117.487 +-99.4778 -46.4862 116.1 +-102.642 -47.1151 117.671 +-102.981 -46.436 115.975 +-106.124 -47.0114 117.412 +-106.834 -46.4959 116.124 +-109.759 -46.933 117.216 +-110.194 -46.2966 115.627 +-113.351 -46.794 116.869 +-114.242 -46.3423 115.741 +-118.122 -47.0843 117.594 +-118.328 -46.349 115.758 +-106.908 -41.1503 102.774 +-99.8796 -37.7797 94.3556 +-97.51 -36.2453 90.5234 +-97.1447 -35.4847 88.6238 +-97.3267 -34.9358 87.2531 +-97.4178 -34.3629 85.8222 +-97.4894 -33.7921 84.3966 +-97.0257 -33.0477 82.5374 +-97.2777 -32.5576 81.3134 +-97.514 -32.0684 80.0916 +-97.8104 -31.6046 78.9332 +-97.8642 -31.0689 77.5952 +-98.0537 -30.583 76.3816 +-97.5333 -29.8854 74.6396 +-97.765 -29.4276 73.496 +-97.7478 -28.9011 72.1811 +-97.5557 -28.3312 70.7578 +-98.2171 -28.0137 69.9648 +-97.5134 -27.3137 68.2166 +-98.2313 -27.0185 67.4792 +-97.8102 -26.4148 65.9715 +-97.7753 -25.9238 64.7453 +-97.7248 -25.4351 63.5248 +-98.4831 -25.1592 62.8358 +-98.4897 -24.6933 61.6722 +-98.4819 -24.2293 60.5134 +-99.8857 -24.1114 60.2188 +-101.797 -24.1061 60.2054 +-103.716 -24.0901 60.1655 +-105.472 -24.0246 60.0021 +-107.574 -24.0262 60.006 +-109.427 -23.9593 59.839 +-112.064 -24.0495 60.0642 +-113.93 -23.9596 59.8397 +-117.112 -24.1298 60.2647 +-119.255 -24.0682 60.111 +-120.611 -23.8376 59.5349 +-160.194 -30.9974 77.4167 +-163.678 -30.9997 77.4226 +-164.31 -30.451 76.0522 +-163.76 -29.6888 74.1484 +-164.451 -29.1564 72.8189 +-163.951 -28.4177 70.9738 +-163.975 -27.7769 69.3734 +-163.981 -27.1381 67.7781 +-164.245 -26.5459 66.299 +-164.402 -25.9395 64.7845 +-163.434 -25.1634 62.8462 +-164.204 -24.6602 61.5893 +-123.559 -18.0916 45.1841 +-112.963 -16.1182 40.2556 +-110.434 -15.3476 38.3311 +-109.756 -14.849 37.0857 +-108.31 -14.2566 35.6063 +-108.356 -13.8685 34.6368 +-108.204 -13.4575 33.6104 +-107.85 -13.0256 32.5317 +-108.247 -12.6864 31.6847 +-108.062 -12.2805 30.6708 +-108.73 -11.9717 29.8996 +-109.488 -11.6698 29.1456 +-109.468 -11.2844 28.1831 +-108.956 -10.8519 27.103 +-110.078 -10.5819 26.4284 +-110.129 -10.2064 25.4907 +-111.531 -9.95293 24.8577 +-112.442 -9.64932 24.0994 +-113.446 -9.34857 23.3483 +-116.595 -9.21208 23.0074 +-118.963 -8.99656 22.4691 +-3216.11 -232.373 580.356 +-3221.44 -221.931 554.279 +-847.821 -55.5681 138.783 +-858.759 -53.4171 133.41 +-872.129 -51.3448 128.235 +-872.708 -48.4808 121.082 +-853.809 -44.6031 111.397 +-380.616 -18.6259 46.5187 +-386.398 -17.6352 44.0443 +-380.439 -16.1119 40.2398 +-902.926 -35.2756 88.1017 +-404.23 -14.468 36.1342 +-404.057 -13.14 32.8175 +-406.244 -11.8843 29.6813 +-404.612 -10.5168 26.266 +-144.829 -3.29264 8.22345 +-3272.01 -63.7401 159.192 +-1013.33 -16.4455 41.0731 +-3274.3 -42.5015 106.148 +-3275.58 -31.8829 79.6283 +-3275.8 -21.254 53.0824 +-3276.58 -10.6287 26.5454 +119 5.77316e-15 2.84217e-14 +119.695 -0.379509 0.97319 +119.482 -0.757718 1.94305 +119.459 -1.13651 2.91439 +119.327 -1.51394 3.88225 +120.186 -1.90647 4.88883 +120.335 -2.29125 5.87553 +120.275 -2.67268 6.85366 +120.206 -3.05391 7.83127 +119.73 -3.42351 8.77903 +119.842 -3.8093 9.76833 +119.945 -4.19609 10.7602 +120.437 -4.599 11.7934 +120.222 -4.97656 12.7616 +120.197 -5.36197 13.7499 +120.758 -5.77604 14.8117 +120.02 -6.12835 15.7152 +120.759 -6.55695 16.8142 +119.807 -6.89411 17.6788 +120.228 -7.30967 18.7445 +120.934 -7.74736 19.8668 +120.35 -8.10399 20.7814 +120.936 -8.54073 21.9013 +120.727 -8.92381 22.8837 +120.606 -9.31379 23.8837 +120.28 -9.68797 24.8432 +120.919 -10.1425 26.0088 +120.477 -10.5085 26.9474 +120.899 -10.9516 28.0837 +120.631 -11.3345 29.0655 +121.031 -11.7823 30.2139 +120.357 -12.1268 31.0972 +121.311 -12.6381 32.4084 +121.099 -13.0326 33.4199 +120.686 -13.4054 34.376 +121.122 -13.8749 35.5799 +120.974 -14.2809 36.621 +121.385 -14.7561 37.8396 +121.783 -15.235 39.0677 +121.318 -15.6084 40.0252 +120.751 -15.9676 40.9463 +121.674 -16.5279 42.3833 +121.832 -16.9912 43.5712 +118.442 -16.9507 43.4674 +114.507 -16.8084 43.1025 +112.251 -16.8928 43.3187 +108.804 -16.7795 43.0284 +106.196 -16.7762 43.0198 +103.687 -16.7724 43.01 +101.188 -16.7539 42.9627 +98.5157 -16.6902 42.7994 +96.3961 -16.7048 42.8367 +96.5305 -17.1053 43.8639 +97.0109 -17.5728 45.0626 +97.2088 -17.9952 46.1458 +98.4582 -18.6214 47.7517 +96.8594 -18.7112 47.9817 +96.7578 -19.0869 48.9453 +96.9953 -19.5338 50.0914 +96.6095 -19.8585 50.9239 +96.8216 -20.3094 52.0801 +96.4163 -20.634 52.9126 +96.4313 -21.0512 53.9824 +96.6894 -21.527 55.2024 +96.8471 -21.9867 56.3814 +96.231 -22.2734 57.1166 +96.531 -22.7756 58.4043 +96.564 -23.2211 59.5468 +96.0026 -23.5264 60.3296 +96.1755 -24.0151 61.5827 +96.3323 -24.5066 62.8433 +96.4727 -25.001 64.111 +96.4348 -25.4554 65.2762 +96.4628 -25.933 66.5011 +95.8363 -26.2379 67.2829 +96.6304 -26.9388 69.0803 +95.8221 -27.1995 69.7486 +95.7912 -27.6832 70.989 +95.8221 -28.1916 72.2928 +95.8358 -28.7023 73.6024 +95.7556 -29.1919 74.858 +95.7351 -29.7067 76.1781 +96.2255 -30.3905 77.9315 +96.3157 -30.9592 79.3899 +96.1629 -31.4579 80.6688 +96.2147 -32.0316 82.1399 +96.0999 -32.5584 83.4909 +95.2417 -32.8369 84.2049 +95.3125 -33.4404 85.7526 +95.2189 -33.996 87.1773 +95.2473 -34.6049 88.7387 +95.1134 -35.1647 90.1742 +94.2651 -35.4649 90.944 +94.6488 -36.2368 92.9234 +94.3204 -36.748 94.2343 +94.7177 -37.5546 96.3026 +94.1467 -37.9884 97.415 +94.3571 -38.748 99.3631 +94.5381 -39.5121 101.322 +94.7545 -40.3074 103.362 +94.2969 -40.8291 104.7 +94.2032 -41.5191 106.469 +95.0274 -42.6348 109.33 +93.3772 -42.6501 109.369 +94.8119 -44.0899 113.061 +90.7055 -42.9476 110.132 +90.9342 -43.8428 112.428 +87.9148 -43.1656 110.691 +88.109 -44.0601 112.985 +84.7826 -43.1841 110.739 +85.635 -44.4332 113.942 +82.6387 -43.6852 112.024 +83.3197 -44.8794 115.086 +80.5276 -44.2025 113.35 +80.77 -45.1875 115.876 +78.0159 -44.4917 114.092 +78.2161 -45.477 116.618 +75.71 -44.887 115.105 +75.8651 -45.8727 117.633 +71.6137 -44.1705 113.268 +71.45 -44.9622 115.298 +70.1704 -45.0607 115.551 +70.5398 -46.2345 118.561 +67.8043 -45.3709 116.346 +68.0264 -46.4823 119.196 +65.2913 -45.5682 116.852 +65.1022 -46.4209 119.039 +62.2892 -45.3902 116.396 +62.2049 -46.337 118.824 +59.6688 -45.4501 116.55 +59.082 -46.0329 118.044 +57.0618 -45.4912 116.655 +57.2685 -46.7323 119.837 +54.3096 -45.3797 116.369 +53.8037 -46.0518 118.092 +49.8254 -43.703 112.069 +49.7103 -44.7013 114.629 +47.4986 -43.8094 112.342 +46.8387 -44.3315 113.681 +44.6514 -43.3894 111.265 +44.4284 -44.3486 113.725 +42.4602 -43.5631 111.71 +41.9332 -44.2457 113.461 +40.1708 -43.619 111.854 +39.3997 -44.0557 112.974 +37.8889 -43.659 111.956 +37.0143 -43.986 112.795 +35.5019 -43.5442 111.662 +35.0059 -44.3537 113.738 +33.4048 -43.7629 112.223 +32.6371 -44.253 113.48 +30.997 -43.546 111.667 +30.5064 -44.4532 113.993 +28.7838 -43.5591 111.7 +28.3663 -44.6399 114.472 +26.687 -43.7349 112.151 +26.0305 -44.4932 114.096 +24.3827 -43.5416 111.655 +23.6794 -44.2592 113.496 +22.3421 -43.7967 112.31 +21.5497 -44.4027 113.864 +20.0863 -43.6092 111.829 +19.3666 -44.4249 113.92 +17.9293 -43.5863 111.77 +17.1879 -44.4329 113.941 +15.7545 -43.477 111.49 +14.9046 -44.1022 113.093 +13.6636 -43.5703 111.729 +12.7943 -44.2261 113.411 +11.5398 -43.542 111.656 +10.7114 -44.4815 114.066 +9.44648 -43.6085 111.827 +8.57307 -44.5429 114.223 +7.33193 -43.5529 111.684 +6.43209 -44.5905 114.345 +5.25177 -43.7015 112.065 +4.25774 -44.2977 113.594 +3.17003 -43.9827 112.787 +2.13443 -44.4267 113.925 +1.04282 -43.4145 111.329 +4.66294e-15 -44.6516 114.502 +-1.05067 -43.7415 112.168 +-2.1449 -44.6447 114.484 +-3.1517 -43.7284 112.134 +-4.29962 -44.7333 114.711 +-5.25177 -43.7015 112.065 +-6.44779 -44.6992 114.624 +-7.36856 -43.7705 112.242 +-8.53122 -44.3253 113.665 +-9.5014 -43.8621 112.477 +-10.7637 -44.6988 114.623 +-11.5398 -43.542 111.656 +-12.972 -44.8405 114.986 +-13.7089 -43.7149 112.1 +-15.1362 -44.7875 114.85 +-16.0025 -44.1615 113.245 +-17.2853 -44.6846 114.587 +-18.0771 -43.9456 112.692 +-19.4292 -44.5684 114.288 +-20.2348 -43.9318 112.656 +-21.6539 -44.6174 114.414 +-22.2874 -43.6895 112.035 +-23.8893 -44.6516 114.502 +-24.6219 -43.9689 112.751 +-26.0929 -44.6 114.369 +-26.8818 -44.0543 112.97 +-28.3663 -44.6399 114.472 +-28.9706 -43.8417 112.425 +-30.6273 -44.6294 114.445 +-31.3726 -44.0735 113.019 +-33.0771 -44.8496 115.009 +-33.5651 -43.9729 112.761 +-35.5572 -45.0523 115.529 +-35.8427 -43.9624 112.734 +-37.7159 -44.8198 114.933 +-38.2498 -44.075 113.023 +-40.3576 -45.1268 115.72 +-40.8371 -44.3424 113.709 +-42.8122 -45.1733 115.84 +-43.4617 -44.5905 114.345 +-45.1809 -45.0995 115.65 +-45.4919 -44.2061 113.36 +-47.7704 -45.2133 115.942 +-48.5248 -44.7558 114.769 +-50.497 -45.4087 116.443 +-50.8969 -44.6429 114.479 +-53.2567 -45.5835 116.891 +-53.7514 -44.9132 115.173 +-56.089 -45.7699 117.369 +-56.813 -45.2928 116.146 +-58.6594 -45.7037 117.2 +-59.7119 -45.4832 116.634 +-61.9857 -46.1735 118.404 +-62.1554 -45.2925 116.145 +-65.6924 -46.842 120.119 +-65.7068 -45.8585 117.597 +-69.3409 -47.3804 121.499 +-69.7606 -46.68 119.703 +-72.7214 -47.6646 122.228 +-73.0264 -46.8947 120.254 +-75.9 -47.7626 122.48 +-76.4353 -47.1443 120.894 +-78.7493 -47.6166 122.105 +-79.263 -46.9935 120.507 +-81.8195 -47.5723 121.991 +-82.1531 -46.8515 120.143 +-85.0726 -47.5944 122.048 +-85.2191 -46.7777 119.954 +-87.2341 -46.9877 120.492 +-87.5098 -46.26 118.626 +-90.1089 -46.7548 119.895 +-89.6605 -45.6685 117.109 +-94.1044 -47.0582 120.673 +-94.4579 -46.3781 118.929 +-97.6144 -47.0636 120.687 +-97.6453 -46.2335 118.558 +-101.276 -47.096 120.77 +-101.719 -46.4602 119.14 +-105.097 -47.1523 120.914 +-105.843 -46.6491 119.624 +-109.338 -47.3416 121.4 +-109.367 -46.5234 119.302 +-113.301 -47.3539 121.431 +-113.838 -46.7483 119.878 +-117.299 -47.3303 121.371 +-117.62 -46.6353 119.589 +-111.507 -43.4439 111.405 +-108.898 -41.692 106.912 +-97.2522 -36.5889 93.8262 +-97.0058 -35.8644 91.9684 +-97.5807 -35.4527 90.9126 +-97.1447 -34.6836 88.9404 +-97.2547 -34.1219 87.5 +-97.3452 -33.5621 86.0647 +-96.9044 -32.831 84.1898 +-97.0994 -32.3261 82.8952 +-97.129 -31.774 81.4792 +-97.514 -31.3444 80.3777 +-97.8104 -30.8911 79.2152 +-97.332 -30.2023 77.4488 +-97.4409 -29.7057 76.1754 +-98.1506 -29.3956 75.3802 +-97.4541 -28.6718 73.5241 +-98.2173 -28.3843 72.787 +-98.2649 -27.8929 71.5268 +-97.5825 -27.2043 69.761 +-97.753 -26.7627 68.6286 +-97.6686 -26.2572 67.3324 +-97.6484 -25.7757 66.0977 +-98.5894 -25.5495 65.5176 +-98.3802 -25.0276 64.1792 +-98.4831 -24.5912 63.0603 +-98.4068 -24.1156 61.8404 +-98.3151 -23.6422 60.6267 +-99.2147 -23.4088 60.028 +-101.038 -23.3861 59.9699 +-102.953 -23.3729 59.9361 +-105.727 -23.5392 60.3624 +-106.717 -23.2966 59.7405 +-109.427 -23.4184 60.0528 +-111.371 -23.3612 59.9061 +-114.017 -23.4366 60.0994 +-115.887 -23.3385 59.8477 +-118.377 -23.3515 59.8812 +-120.346 -23.2482 59.6164 +-159.928 -30.2473 77.5643 +-163.411 -30.2504 77.5723 +-163.862 -29.6825 76.116 +-163.76 -29.0185 74.4133 +-163.639 -28.3575 72.7181 +-163.951 -27.7761 71.2273 +-163.611 -27.0895 69.4667 +-164.255 -26.5698 68.1338 +-164.245 -25.9466 66.5358 +-164.402 -25.3539 65.0159 +-165.005 -24.8317 63.6768 +-165.224 -24.2531 62.1933 +-132.864 -19.0147 48.76 +-113.243 -15.7934 40.4995 +-110.996 -15.0775 38.6638 +-109.662 -14.5013 37.1863 +-108.498 -13.959 35.7957 +-108.546 -13.579 34.8212 +-108.299 -13.1652 33.76 +-108.325 -12.7876 32.7918 +-108.056 -12.3782 31.7419 +-108.445 -12.0458 30.8894 +-109.689 -11.8047 30.2711 +-110.161 -11.4764 29.4295 +-108.698 -10.952 28.0846 +-109.729 -10.6822 27.3927 +-109.304 -10.2702 26.3362 +-111.099 -10.0639 25.8072 +-111.434 -9.71973 24.9247 +-111.955 -9.3906 24.0807 +-113.348 -9.12963 23.4115 +-115.324 -8.9059 22.8377 +-119.061 -8.80068 22.5679 +-3216.11 -227.126 582.429 +-159.582 -10.7457 27.5557 +-3226.72 -206.712 530.079 +-859.844 -52.2772 134.056 +-862.054 -49.6058 127.206 +-856.389 -46.5001 119.242 +-851.135 -43.4595 111.445 +-381.211 -18.2339 46.7578 +-381.435 -17.0157 43.634 +-380.935 -15.7687 40.4363 +-901.136 -34.4108 88.2411 +-404.927 -14.1657 36.3257 +-404.654 -12.8624 32.9835 +-403.452 -11.5362 29.5826 +-402.118 -10.216 26.1973 +-145.728 -3.23827 8.30402 +-403.247 -7.67807 19.6892 +-408.211 -6.47535 16.605 +-406.752 -5.16058 13.2335 +-3275.18 -31.1593 79.9029 +-1118.93 -7.09593 18.1964 +-3276.18 -10.3875 26.637 +118.9 5.32907e-15 2.84217e-14 +119.795 -0.371038 0.977382 +119.482 -0.740189 1.94979 +119.459 -1.11022 2.92451 +119.427 -1.48015 3.89899 +119.386 -1.84998 4.87319 +119.536 -2.22338 5.85678 +119.477 -2.59352 6.83179 +120.306 -2.98574 7.86497 +119.829 -3.34709 8.81684 +119.842 -3.72117 9.80224 +119.746 -4.0922 10.7796 +120.437 -4.49261 11.8343 +120.322 -4.86544 12.8165 +120.098 -5.23359 13.7862 +120.857 -5.64703 14.8753 +120.813 -6.02607 15.8738 +120.858 -6.41051 16.8864 +120.696 -6.78459 17.8718 +120.327 -7.14642 18.825 +120.048 -7.51265 19.7897 +120.35 -7.91651 20.8535 +120.053 -8.28217 21.8167 +119.943 -8.66076 22.814 +120.508 -9.09094 23.9472 +120.28 -9.46385 24.9295 +120.919 -9.90784 26.099 +120.477 -10.2654 27.041 +120.802 -10.6897 28.1585 +120.631 -11.0723 29.1664 +121.127 -11.519 30.343 +120.743 -11.8842 31.3051 +121.023 -12.3164 32.4436 +121.003 -12.721 33.5093 +120.686 -13.0953 34.4953 +120.836 -13.5219 35.6191 +121.83 -14.0492 37.0081 +120.437 -14.3021 37.6743 +120.932 -14.7786 38.9294 +121.129 -15.2236 40.1018 +121.502 -15.6953 41.3443 +121.861 -16.1705 42.5959 +121.459 -16.5473 43.5885 +118.07 -16.5066 43.4813 +114.414 -16.4063 43.2172 +112.251 -16.5019 43.4691 +107.975 -16.2666 42.8491 +106.104 -16.3739 43.1319 +102.865 -16.2544 42.817 +100.278 -16.2192 42.7242 +97.8812 -16.1991 42.6715 +96.4864 -16.3336 43.0256 +97.4293 -16.8652 44.4259 +97.0109 -17.1663 45.2191 +97.2979 -17.595 46.3484 +98.1921 -18.1415 47.788 +97.1242 -18.3283 48.28 +96.7578 -18.6453 49.1152 +96.2082 -18.9271 49.8574 +96.5224 -19.3816 51.0547 +96.8216 -19.8395 52.2609 +96.244 -20.1206 53.0014 +96.4313 -20.5642 54.1698 +96.6894 -21.0289 55.394 +96.8471 -21.4781 56.5772 +96.3153 -21.7772 57.3651 +96.531 -22.2487 58.607 +95.8969 -22.5272 59.3407 +96.7487 -23.1607 61.0095 +96.1755 -23.4595 61.7965 +96.2504 -23.9193 63.0078 +96.4727 -24.4226 64.3336 +95.8685 -24.7205 65.1182 +96.5432 -25.3542 66.7876 +95.9161 -25.6523 67.5727 +96.6304 -26.3156 69.3201 +95.8221 -26.5702 69.9907 +95.9478 -27.0869 71.3519 +95.9775 -27.5841 72.6615 +95.8358 -28.0383 73.8579 +95.7556 -28.5166 75.1178 +95.7351 -29.0195 76.4426 +95.6972 -29.5245 77.7727 +96.4655 -30.2901 79.7895 +96.1629 -30.7302 80.9488 +96.0672 -31.2426 82.2987 +95.9536 -31.7568 83.6532 +96.1846 -32.3948 85.3337 +96.0319 -32.9134 86.6997 +95.005 -33.1349 87.2833 +95.318 -33.8294 89.1128 +94.5527 -34.1487 89.9537 +95.0293 -34.9253 91.9995 +94.6488 -35.3985 93.246 +94.2522 -35.8719 94.4932 +94.7177 -36.6857 96.6369 +94.2136 -37.1361 97.8233 +94.4234 -37.8782 99.7781 +94.5381 -38.598 101.674 +94.8194 -39.4019 103.792 +94.7469 -40.0748 105.564 +94.5848 -40.7229 107.271 +94.5239 -41.4277 109.128 +94.7467 -42.2745 111.359 +94.7503 -43.0419 113.38 +94.2363 -43.587 114.816 +94.0637 -44.3025 116.701 +91.3648 -43.8216 115.434 +91.4594 -44.6773 117.688 +88.6153 -44.092 116.146 +88.1013 -44.6556 117.631 +85.584 -44.1953 116.418 +85.5006 -44.9885 118.508 +83.2321 -44.6301 117.564 +83.1119 -45.4219 119.649 +81.4009 -45.3484 119.456 +81.3426 -46.2006 121.701 +78.845 -45.6639 120.287 +78.6463 -46.454 122.368 +75.5725 -45.534 119.945 +75.35 -46.3195 122.014 +71.2537 -44.6975 117.741 +71.1216 -45.5376 119.954 +70.3809 -46.0057 121.187 +70.1391 -46.817 123.325 +67.8309 -46.2456 121.819 +67.2814 -46.865 123.451 +64.8772 -46.1821 121.652 +64.6159 -47.0193 123.857 +61.9075 -46.0646 121.343 +61.491 -46.8014 123.283 +59.5499 -46.3762 122.163 +58.8548 -46.9157 123.584 +56.5426 -46.1523 121.573 +56.2653 -47.0445 123.924 +53.3843 -45.7413 120.491 +52.857 -46.4316 122.309 +49.1845 -44.3149 116.733 +48.523 -44.8633 118.178 +46.2974 -43.9479 115.767 +45.9333 -44.7901 117.985 +43.8956 -43.9937 115.887 +43.4959 -44.8327 118.098 +41.3448 -43.8553 115.523 +40.7593 -44.5215 117.278 +38.8813 -43.7662 115.288 +38.3884 -44.5637 117.389 +36.7232 -44.0001 115.904 +36.1912 -44.7948 117.997 +34.5539 -44.2209 116.486 +33.8276 -44.8065 118.028 +32.0236 -43.9472 115.765 +31.4015 -44.6989 117.745 +29.9277 -44.2425 116.543 +29.3336 -45.0943 118.787 +27.4229 -43.9014 115.644 +26.8622 -44.8526 118.15 +25.3197 -44.1687 116.348 +24.5762 -44.8728 118.203 +22.9799 -44.0047 115.916 +22.2096 -44.7035 117.757 +20.8125 -44.1407 116.274 +19.961 -44.7291 117.825 +18.5796 -44.1222 116.226 +17.7446 -44.8107 118.04 +16.3941 -44.1953 116.418 +15.5749 -45.0194 118.589 +14.1164 -43.9728 115.832 +13.2751 -44.8267 118.082 +11.904 -43.877 115.58 +11.0426 -44.7962 118.001 +9.82308 -44.2979 116.689 +8.83815 -44.8576 118.163 +7.58223 -43.9976 115.898 +6.63097 -44.9055 118.289 +5.43934 -44.2152 116.471 +4.42177 -44.9399 118.38 +3.2695 -44.3131 116.729 +2.21122 -44.9605 118.434 +1.08384 -44.0782 116.11 +4.77396e-15 -44.8608 118.171 +-1.08384 -44.0782 116.11 +-2.21122 -44.9605 118.434 +-3.27212 -44.3486 116.822 +-4.45318 -45.259 119.22 +-5.41753 -44.0381 116.004 +-6.64667 -45.012 118.57 +-7.61275 -44.1747 116.364 +-8.91488 -45.2473 119.189 +-9.878 -44.5456 117.341 +-11.1472 -45.2203 119.118 +-12.0861 -44.5481 117.348 +-13.4319 -45.3562 119.476 +-14.3315 -44.6429 117.597 +-15.6602 -45.2661 119.239 +-16.4202 -44.2659 116.604 +-17.8837 -45.1621 118.965 +-18.7127 -44.4381 117.058 +-20.0549 -44.9396 118.379 +-20.9445 -44.4207 117.012 +-22.3659 -45.018 118.586 +-23.0346 -44.1094 116.192 +-24.6525 -45.012 118.57 +-25.4393 -44.3774 116.898 +-27.0493 -45.1649 118.973 +-27.8774 -44.629 117.561 +-29.4686 -45.3016 119.333 +-29.8577 -44.1389 116.27 +-31.7643 -45.2157 119.106 +-32.6245 -44.772 117.938 +-34.2676 -45.3892 119.563 +-34.8746 -44.6315 117.567 +-36.6046 -45.3065 119.346 +-37.1776 -44.5449 117.339 +-39.1486 -45.446 119.713 +-39.7232 -44.7138 117.784 +-41.5628 -45.3992 119.59 +-42.2332 -44.7976 118.005 +-44.5052 -45.873 120.838 +-44.5966 -44.6964 117.739 +-46.7542 -45.5905 120.094 +-47.4181 -45.0116 118.569 +-49.5981 -45.8574 120.797 +-50.0641 -45.1074 118.821 +-52.1827 -45.8393 120.749 +-52.619 -45.0854 118.763 +-55.0149 -45.999 121.17 +-55.5457 -45.3385 119.43 +-58.1227 -46.3322 122.047 +-59.0108 -45.9564 121.057 +-61.2796 -46.6407 122.86 +-61.52 -45.7761 120.582 +-64.3529 -46.828 123.354 +-64.8325 -46.1505 121.569 +-68.7342 -47.8768 126.116 +-68.7544 -46.8752 123.478 +-72.4395 -48.3527 127.37 +-72.051 -47.0971 124.062 +-75.3879 -48.269 127.149 +-75.7347 -47.5088 125.147 +-78.25 -48.1022 126.71 +-78.3639 -47.216 124.375 +-81.2215 -47.9751 126.375 +-81.771 -47.3586 124.751 +-84.4161 -47.9464 126.299 +-84.571 -47.1145 124.108 +-87.0333 -47.5652 125.295 +-87.8132 -47.0864 124.034 +-89.2472 -46.9597 123.7 +-89.7187 -46.3308 122.044 +-94.1239 -47.7082 125.672 +-93.8416 -46.6925 122.996 +-97.396 -47.5773 125.327 +-97.432 -46.7319 123.1 +-100.924 -47.5336 125.212 +-101.298 -46.8532 123.42 +-104.539 -47.4885 125.093 +-105.392 -47.0243 123.871 +-109.187 -47.8544 126.057 +-108.96 -46.9118 123.574 +-113.195 -47.8775 126.118 +-113.134 -47.0126 123.84 +-116.844 -47.705 125.664 +-116.952 -46.9161 123.585 +-110.808 -43.6771 115.053 +-111.135 -43.0443 113.387 +-97.4576 -37.0918 97.7064 +-97.1957 -36.3511 95.7553 +-97.1827 -35.7168 94.0846 +-97.2862 -35.1359 92.5544 +-96.9443 -34.4066 90.6332 +-97.1447 -33.8812 89.2491 +-97.3986 -33.3818 87.9336 +-97.4903 -32.8346 86.4922 +-97.5626 -32.2893 85.0559 +-97.0994 -31.5783 83.1829 +-97.352 -31.1101 81.9497 +-97.514 -30.6193 80.6567 +-97.7349 -30.1531 79.4287 +-98.0163 -29.711 78.2641 +-97.6707 -29.0869 76.6201 +-98.0735 -28.693 75.5825 +-97.9981 -28.1648 74.1911 +-97.4347 -27.5067 72.4577 +-97.7921 -27.1165 71.4297 +-97.8205 -26.6397 70.1739 +-97.753 -26.1435 68.8668 +-98.5529 -25.882 68.1779 +-97.8102 -25.2211 66.437 +-97.8567 -24.773 65.2565 +-97.7248 -24.2858 63.9731 +-98.4007 -24.0023 63.2263 +-98.4068 -23.5577 62.0551 +-98.4819 -23.1345 60.9403 +-99.2986 -22.8866 60.2873 +-101.123 -22.8642 60.2283 +-102.868 -22.8134 60.0946 +-105.727 -22.9946 60.572 +-106.717 -22.7577 59.9478 +-109.341 -22.8586 60.2137 +-110.591 -22.6611 59.6934 +-113.32 -22.7546 59.9397 +-115.187 -22.6609 59.6928 +-117.674 -22.6758 59.7323 +-119.639 -22.5771 59.4722 +-146.091 -26.991 71.0991 +-164.123 -29.6795 78.1811 +-163.326 -28.9008 76.1299 +-163.491 -28.3005 74.5486 +-163.639 -27.7014 72.9705 +-164.042 -27.1485 71.5141 +-164.157 -26.5512 69.9405 +-164.073 -25.9262 68.2944 +-164.337 -25.3605 66.804 +-164.862 -24.8366 65.4242 +-164.173 -24.135 63.5758 +-163.184 -23.3996 61.6387 +-161.055 -22.5161 59.3114 +-113.617 -15.4789 40.7742 +-110.902 -14.7162 38.7653 +-109.662 -14.1659 37.3154 +-108.404 -13.6243 35.8888 +-108.167 -13.2187 34.8204 +-108.299 -12.8606 33.8772 +-108.42 -12.5028 32.9346 +-108.628 -12.1558 32.0207 +-108.636 -11.7878 31.0512 +-109.305 -11.4912 30.2699 +-109.776 -11.1718 29.4286 +-109.468 -10.7745 28.382 +-109.15 -10.3799 27.3426 +-109.594 -10.0592 26.4979 +-110.42 -9.77095 25.7385 +-110.85 -9.44518 24.8803 +-112.053 -9.18134 24.1853 +-113.446 -8.92612 23.513 +-115.617 -8.72201 22.9754 +-118.571 -8.5617 22.5531 +-159.318 -10.991 28.9523 +-159.877 -10.5166 27.7025 +-163.183 -10.212 26.9003 +-860.238 -51.0912 134.584 +-843.782 -47.431 124.942 +-842.938 -44.711 117.777 +-851.631 -42.479 111.897 +-381.31 -17.8167 46.9324 +-383.123 -16.6956 43.9792 +-381.83 -15.4401 40.6719 +-897.954 -33.4961 88.2346 +-404.33 -13.8176 36.398 +-404.654 -12.5648 33.098 +-405.247 -11.3194 29.8173 +-404.113 -10.0292 26.4187 +-144.131 -3.12869 8.24153 +-404.046 -7.51528 19.7966 +-405.114 -6.27756 16.5362 +-402.854 -4.99289 13.1522 +-3275.18 -30.4384 80.1803 +-149.577 -0.92663 2.44091 +-3276.18 -10.1472 26.7294 +119 5.77316e-15 2.84217e-14 +118.895 -0.359484 0.973326 +119.482 -0.722565 1.95639 +119.659 -1.08559 2.93931 +119.727 -1.44854 3.92201 +119.586 -1.80896 4.89786 +119.636 -2.17226 5.88152 +119.577 -2.53388 6.86065 +120.306 -2.91465 7.89159 +119.929 -3.27012 8.85404 +120.739 -3.65977 9.90906 +119.945 -4.00142 10.8341 +119.542 -4.35304 11.7861 +120.322 -4.7496 12.8598 +120.098 -5.10898 13.8329 +120.758 -5.50807 14.9134 +120.02 -5.84403 15.8231 +120.858 -6.25788 16.9436 +120.794 -6.62846 17.947 +120.228 -6.97055 18.8732 +119.95 -7.32775 19.8403 +120.35 -7.72802 20.9241 +120.053 -8.08498 21.8906 +120.825 -8.51674 23.0596 +119.627 -8.80967 23.8527 +120.28 -9.23852 25.0139 +120.822 -9.66415 26.1663 +120.477 -10.021 27.1325 +120.899 -10.4435 28.2765 +120.534 -10.8 29.2416 +120.258 -11.164 30.2272 +120.743 -11.6012 31.4111 +121.215 -12.0423 32.6051 +120.907 -12.4083 33.5961 +121.355 -12.8544 34.8041 +121.122 -13.2312 35.8243 +121.64 -13.6933 37.0754 +121.385 -14.0715 38.0995 +121.783 -14.5282 39.336 +121.129 -14.8612 40.2375 +121.784 -15.3572 41.5805 +121.955 -15.7976 42.7729 +121.179 -16.116 43.6352 +117.698 -16.0628 43.4909 +114.414 -16.0157 43.3634 +111.512 -16.003 43.3291 +107.975 -15.8793 42.9941 +105.37 -15.8736 42.9786 +102.043 -15.7406 42.6186 +100.278 -15.833 42.8688 +97.8812 -15.8134 42.8159 +96.3058 -15.9149 43.0905 +97.4293 -16.4636 44.5763 +96.9214 -16.7421 45.3303 +97.1197 -17.1446 46.4201 +97.8373 -17.6456 47.7765 +97.3008 -17.9244 48.5315 +96.7578 -18.2014 49.2814 +96.2082 -18.4764 50.0261 +96.5224 -18.9202 51.2275 +96.8216 -19.3672 52.4378 +96.244 -19.6416 53.1807 +96.4313 -20.0746 54.3531 +96.6041 -20.5102 55.5326 +96.8471 -20.9667 56.7687 +96.3153 -21.2587 57.5593 +96.4471 -21.7001 58.7543 +96.564 -22.1438 59.9557 +96.0026 -22.4349 60.7439 +96.1755 -22.9009 62.0057 +96.2504 -23.3498 63.221 +96.3913 -23.821 64.4968 +96.4348 -24.2744 65.7245 +96.5432 -24.7505 67.0136 +96.3953 -25.1666 68.1402 +96.6304 -25.6891 69.5548 +96.4525 -26.1083 70.6897 +95.9478 -26.442 71.5934 +95.8221 -26.8837 72.7893 +96.3759 -27.525 74.5257 +95.7556 -27.8376 75.3721 +95.7351 -28.3285 76.7013 +95.6972 -28.8215 78.036 +96.3157 -29.5229 79.9352 +96.1629 -29.9985 81.2228 +96.2147 -30.5456 82.704 +95.9536 -31.0007 83.9363 +96.3297 -31.6712 85.7518 +96.1757 -32.1778 87.1235 +95.7895 -32.6131 88.302 +95.8837 -33.22 89.9451 +95.1835 -33.558 90.8604 +95.3071 -34.1934 92.5808 +94.1669 -34.3797 93.0853 +94.5932 -35.1446 95.1563 +94.6502 -35.787 96.8955 +94.682 -36.4321 98.6422 +94.4234 -36.9764 100.116 +94.6037 -37.705 102.089 +94.17 -38.2004 103.43 +94.7469 -39.1206 105.922 +94.0124 -39.5125 106.982 +94.5239 -40.4413 109.497 +94.6845 -41.241 111.662 +94.8734 -42.0714 113.911 +94.6624 -42.7415 115.725 +94.4248 -43.4136 117.545 +93.6251 -43.8367 118.69 +93.2815 -44.4825 120.439 +90.7639 -44.0858 119.365 +90.6824 -44.8695 121.487 +88.5293 -44.628 120.833 +87.4019 -44.8941 121.553 +85.1639 -44.5788 120.7 +85.1271 -45.4155 122.965 +82.6367 -44.9408 121.68 +82.4554 -45.7176 123.783 +81.353 -45.9948 124.534 +80.0369 -46.15 124.954 +78.0086 -45.8825 124.23 +77.7 -46.6267 126.245 +74.3067 -45.5031 123.203 +72.7214 -45.4532 123.067 +70.4286 -44.9405 121.679 +70.5616 -45.9778 124.488 +69.447 -46.22 125.143 +69.1882 -47.0456 127.379 +66.9297 -46.5089 125.926 +66.194 -47.021 127.312 +63.8448 -46.3748 125.563 +63.0546 -46.8488 126.846 +61.1258 -46.4701 125.821 +60.3597 -46.9697 127.173 +58.4167 -46.5467 126.028 +57.5547 -46.9766 127.192 +55.5656 -46.4767 125.839 +54.9922 -47.1571 127.681 +50.9437 -44.8071 121.318 +49.9207 -45.0565 121.993 +47.8733 -44.3619 120.113 +47.062 -44.7981 121.294 +45.5313 -44.5466 120.613 +44.668 -44.9446 121.69 +43.0582 -44.5854 120.718 +41.8718 -44.6477 120.886 +40.2946 -44.277 119.883 +39.5287 -44.7946 121.284 +37.8024 -44.215 119.715 +37.1008 -44.8272 121.372 +35.4893 -44.3366 120.044 +34.7594 -44.9443 121.689 +33.1754 -44.444 120.335 +32.2724 -44.8449 121.42 +30.558 -44.0986 119.4 +29.941 -44.9322 121.657 +28.4185 -44.4121 120.249 +27.6107 -45.0046 121.853 +26.2368 -44.6789 120.971 +25.1677 -44.8587 121.458 +23.7635 -44.4218 120.275 +22.7479 -44.6969 121.02 +21.3737 -44.2514 119.813 +20.6337 -45.1355 122.207 +19.23 -44.5795 120.702 +18.2317 -44.9446 121.69 +16.9945 -44.7233 121.091 +15.9161 -44.9107 121.598 +14.5466 -44.234 119.766 +13.6305 -44.9311 121.654 +12.3449 -44.4187 120.266 +11.3913 -45.1102 122.139 +10.1605 -44.7284 121.105 +9.1381 -45.2759 122.587 +7.84474 -44.4371 120.316 +6.80891 -45.0129 121.875 +5.59201 -44.374 120.145 +4.52995 -44.9433 121.687 +3.36374 -44.505 120.5 +2.26009 -44.8598 121.461 +1.11612 -44.3106 119.974 +5.55112e-15 -44.832 121.386 +-1.12136 -44.5185 120.537 +-2.27579 -45.1716 122.305 +-3.36897 -44.5743 120.688 +-4.56136 -45.2547 122.53 +-5.60509 -44.478 120.427 +-6.80891 -45.0129 121.875 +-7.84474 -44.4371 120.316 +-9.13112 -45.2412 122.493 +-10.1918 -44.8667 121.479 +-11.4435 -45.3171 122.699 +-12.4983 -44.9706 121.761 +-13.7559 -45.3445 122.773 +-14.6485 -44.5438 120.605 +-16.1111 -45.4609 123.088 +-17.0598 -44.8951 121.556 +-18.3987 -45.3562 122.805 +-19.363 -44.8878 121.537 +-20.7276 -45.341 122.764 +-21.6212 -44.7638 121.201 +-23.0084 -45.2086 122.405 +-23.9822 -44.8307 121.382 +-25.3967 -45.2668 122.563 +-26.177 -44.577 120.695 +-27.673 -45.1061 122.128 +-28.6133 -44.7163 121.072 +-30.3459 -45.5399 123.302 +-30.8615 -44.5365 120.585 +-32.7804 -45.5509 123.332 +-33.3256 -44.645 120.879 +-35.277 -45.6137 123.502 +-35.9703 -44.9377 121.672 +-37.6796 -45.5263 123.265 +-38.4557 -44.9789 121.783 +-40.2303 -45.5901 123.438 +-41.2568 -45.3344 122.746 +-42.7989 -45.6362 123.563 +-43.6611 -45.2093 122.407 +-45.6772 -45.9601 124.44 +-46.5327 -45.5263 123.265 +-48.2932 -45.9702 124.467 +-48.8189 -45.2381 122.485 +-51.1033 -46.124 124.884 +-51.9332 -45.6774 123.674 +-53.8684 -46.1933 125.071 +-54.9151 -45.9327 124.366 +-57.1249 -46.626 126.243 +-57.8585 -46.1018 124.824 +-60.319 -46.9382 127.088 +-60.7526 -46.1864 125.052 +-62.9279 -46.7546 126.591 +-63.4573 -46.0935 124.801 +-66.8954 -47.5192 128.661 +-67.9559 -47.2223 127.857 +-70.3231 -47.8175 129.469 +-71.5249 -47.603 128.888 +-73.754 -48.0579 130.12 +-74.6753 -47.6505 129.017 +-76.7454 -47.9682 129.877 +-77.5075 -47.4631 128.509 +-79.8 -47.8871 129.657 +-80.3941 -47.2857 128.029 +-83.0241 -47.8722 129.617 +-83.5475 -47.2354 127.893 +-85.7939 -47.5687 128.795 +-86.8276 -47.2198 127.851 +-88.994 -47.4787 128.551 +-89.5242 -46.8609 126.879 +-92.7142 -47.6224 128.941 +-94.0234 -47.3976 128.332 +-96.8771 -47.9346 129.786 +-97.0355 -47.1322 127.613 +-99.9823 -47.6779 129.091 +-101.06 -47.3179 128.116 +-103.994 -47.813 129.457 +-104.463 -47.1668 127.707 +-107.864 -47.832 129.508 +-108.567 -47.2874 128.034 +-111.767 -47.8189 129.473 +-112.459 -47.2652 127.974 +-115.123 -47.5341 128.701 +-116.446 -47.2368 127.897 +-120.19 -47.9027 129.7 +-118.742 -46.4996 125.9 +-97.0909 -37.3589 101.151 +-96.7445 -36.5786 99.039 +-97.253 -36.1328 97.8317 +-97.471 -35.586 96.3514 +-97.1827 -34.8664 94.4031 +-97.3563 -34.3241 92.9345 +-96.9443 -33.5874 90.94 +-97.216 -33.0988 89.617 +-97.3267 -32.5629 88.1661 +-97.4178 -32.0289 86.7203 +-97.0506 -31.3551 84.896 +-97.6892 -31.0137 83.9715 +-97.352 -30.3694 82.2271 +-97.514 -29.8903 80.9297 +-97.0557 -29.2306 79.1437 +-97.7882 -28.9361 78.3462 +-97.6707 -28.3943 76.8794 +-97.9192 -27.9657 75.719 +-97.6095 -27.3852 74.1471 +-97.826 -26.9596 72.9948 +-97.7133 -26.4495 71.6137 +-97.9791 -26.0476 70.5256 +-97.9926 -25.5836 69.2692 +-98.3921 -25.2245 68.297 +-97.8102 -24.6206 66.6619 +-97.7753 -24.163 65.4229 +-97.7248 -23.7075 64.1896 +-98.4007 -23.4308 63.4403 +-98.241 -22.958 62.1603 +-98.1484 -22.5071 60.9395 +-98.7115 -22.2095 60.1337 +-101.123 -22.3198 60.4322 +-102.953 -22.2886 60.3477 +-104.107 -22.1032 59.8458 +-106.803 -22.2337 60.1991 +-108.651 -22.1737 60.0367 +-110.591 -22.1215 59.8954 +-113.32 -22.2128 60.1426 +-115.187 -22.1213 59.8949 +-117.849 -22.169 60.0239 +-119.551 -22.0233 59.6294 +-128.883 -23.2448 62.9367 +-163.589 -28.8785 78.1902 +-164.399 -28.3982 76.8899 +-164.21 -27.7482 75.13 +-164.451 -27.1761 73.5809 +-164.585 -26.59 71.9941 +-163.975 -25.8902 70.0994 +-164.347 -25.3512 68.64 +-164.887 -24.8395 67.2546 +-164.402 -24.1776 65.4624 +-164.173 -23.5603 63.791 +-163.926 -22.9462 62.1284 +-163.102 -22.2593 60.2685 +-114.55 -15.2345 41.2483 +-111.37 -14.4265 39.0607 +-109.568 -13.8167 37.4095 +-109.158 -13.3924 36.2607 +-108.167 -12.9039 34.9382 +-108.109 -12.5324 33.9323 +-108.325 -12.1944 33.0171 +-108.438 -11.8456 32.0726 +-108.254 -11.4666 31.0466 +-109.114 -11.1979 30.3191 +-109.968 -10.9249 29.5799 +-108.601 -10.4346 28.2524 +-110.019 -10.2135 27.6537 +-109.594 -9.81974 26.5876 +-110.323 -9.52993 25.8029 +-111.045 -9.23647 25.0083 +-111.37 -8.90817 24.1194 +-113.055 -8.68359 23.5114 +-114.737 -8.44949 22.8775 +-118.375 -8.34403 22.592 +-155.195 -10.4517 28.2985 +-160.762 -10.323 27.9501 +-159.834 -9.76434 26.4376 +-848.304 -49.1825 133.165 +-834.498 -45.7921 123.985 +-838.982 -43.4417 117.621 +-852.324 -41.5012 112.367 +-384.482 -17.5372 47.483 +-382.825 -16.2854 44.0937 +-381.532 -15.0607 40.7777 +-899.346 -32.7493 88.6706 +-405.823 -13.5384 36.6561 +-404.654 -12.2657 33.21 +-403.452 -11.001 29.7858 +-402.417 -9.74934 26.3969 +-146.327 -3.10073 8.39541 +-401.749 -7.29466 19.7508 +-403.915 -6.10994 16.543 +-401.655 -4.8595 13.1574 +-144.251 -1.3087 3.54338 +-145.178 -0.877963 2.37714 +-145.694 -0.440511 1.19271 +119 5.77316e-15 2.84217e-14 +118.895 -0.350687 0.97653 +119.682 -0.706062 1.96611 +119.659 -1.05903 2.94899 +119.627 -1.41191 3.93164 +119.686 -1.76616 4.91809 +119.636 -2.1191 5.90088 +119.577 -2.47187 6.88323 +120.306 -2.84332 7.91757 +120.129 -3.19539 8.89796 +119.842 -3.54368 9.86779 +119.647 -3.89379 10.8427 +120.536 -4.28183 11.9233 +120.322 -4.63337 12.9022 +120.098 -4.98396 13.8784 +120.758 -5.37328 14.9625 +120.912 -5.74334 15.993 +120.067 -6.06479 16.8881 +120.696 -6.46097 17.9914 +120.228 -6.79997 18.9353 +119.95 -7.14843 19.9057 +119.564 -7.48962 20.8557 +120.053 -7.88712 21.9626 +119.845 -8.24092 22.9478 +120.41 -8.65029 24.0878 +120.182 -9.0051 25.0758 +120.822 -9.42765 26.2524 +120.477 -9.77577 27.2218 +120.802 -10.1798 28.3469 +120.631 -10.5441 29.3614 +120.451 -10.9083 30.3754 +120.743 -11.3173 31.5145 +120.927 -11.7196 32.6346 +120.715 -12.0854 33.6533 +121.355 -12.5398 34.9186 +121.027 -12.8973 35.914 +121.64 -13.3582 37.1974 +121.291 -13.7164 38.1951 +121.121 -14.0957 39.251 +121.129 -14.4975 40.37 +120.938 -14.8773 41.4276 +121.205 -15.3163 42.65 +120.805 -15.6732 43.6439 +116.674 -15.5334 43.2547 +113.58 -15.5098 43.1888 +110.588 -15.482 43.1116 +107.883 -15.4775 43.0989 +104.728 -15.3907 42.8574 +102.043 -15.3554 42.7589 +100.369 -15.4596 43.049 +97.8812 -15.4265 42.9568 +96.1253 -15.4963 43.1513 +97.4293 -16.0607 44.723 +97.0109 -16.3475 45.5215 +97.2088 -16.7404 46.6157 +97.4825 -17.1513 47.7599 +96.8594 -17.4064 48.4703 +96.7578 -17.756 49.4436 +96.2082 -18.0243 50.1908 +96.5224 -18.4572 51.3961 +96.8216 -18.8932 52.6104 +96.244 -19.1609 53.3558 +96.4313 -19.5833 54.5321 +96.7747 -20.0436 55.8137 +96.0838 -20.2924 56.5067 +97.0744 -20.9019 58.2039 +96.531 -21.1874 58.999 +96.564 -21.6019 60.1531 +95.9196 -21.867 60.8912 +96.1755 -22.3405 62.2098 +96.3323 -22.7978 63.4832 +95.6586 -23.0614 64.2173 +96.4348 -23.6804 65.9409 +96.5432 -24.1449 67.2342 +96.555 -24.5914 68.4777 +95.9164 -24.8753 69.2682 +95.9797 -25.3445 70.5748 +95.7912 -25.7528 71.7119 +95.8221 -26.2258 73.0289 +96.3759 -26.8514 74.771 +95.7556 -27.1564 75.6202 +95.7351 -27.6353 76.9538 +95.6972 -28.1162 78.2929 +96.3157 -28.8005 80.1983 +95.5684 -29.0835 80.9864 +96.2147 -29.7981 82.9762 +95.9536 -30.2421 84.2126 +96.3297 -30.8962 86.034 +96.2477 -31.4139 87.4757 +96.0035 -31.8861 88.7906 +95.7423 -32.3592 90.1081 +96.0246 -33.0261 91.965 +95.4461 -33.4053 93.021 +94.9241 -33.808 94.1425 +95.3434 -34.5563 96.2262 +94.7853 -34.9609 97.3528 +94.682 -35.5405 98.9669 +94.3571 -36.0462 100.375 +94.6037 -36.7823 102.425 +94.8194 -37.5225 104.486 +94.5541 -38.0855 106.054 +94.4576 -38.7281 107.843 +94.5239 -39.4517 109.858 +94.56 -40.1787 111.882 +94.6272 -40.9354 113.99 +94.2971 -41.5347 115.658 +94.9664 -42.5942 118.609 +94.5173 -43.1715 120.216 +93.8693 -43.6673 121.597 +93.4351 -44.2727 123.282 +92.0017 -44.4082 123.66 +90.1152 -44.3156 123.402 +89.359 -44.7759 124.684 +87.2612 -44.5586 124.079 +86.2708 -44.8993 125.027 +84.5172 -44.8384 124.858 +84.0982 -45.4874 126.665 +82.2413 -45.3593 126.308 +81.3245 -45.7449 127.382 +79.785 -45.779 127.477 +79 -46.2468 128.78 +76.9658 -45.9781 128.032 +75.7757 -46.2032 128.658 +72.4327 -45.0882 125.553 +71.8761 -45.6881 127.224 +71.0631 -46.1383 128.478 +69.9145 -46.3763 129.14 +68.4467 -46.3992 129.204 +67.2461 -46.5993 129.761 +65.3946 -46.3384 129.035 +64.1957 -46.5294 129.567 +62.6601 -46.4709 129.404 +61.4172 -46.623 129.827 +59.4934 -46.2444 128.773 +58.6097 -46.6673 129.951 +56.4075 -46.0264 128.166 +55.5167 -46.4418 129.323 +53.0327 -45.5029 126.708 +51.1033 -44.9953 125.295 +49.1341 -44.416 123.682 +48.1906 -44.7499 124.611 +46.4325 -44.3166 123.405 +45.3842 -44.5478 124.049 +43.915 -44.3595 123.524 +42.768 -44.4873 123.88 +41.2869 -44.2571 123.239 +40.3181 -44.5711 124.114 +38.7397 -44.2024 123.087 +37.845 -44.6073 124.214 +36.4513 -44.4241 123.704 +35.3806 -44.6279 124.272 +34.0016 -44.4359 123.737 +33.0707 -44.8297 124.834 +31.4918 -44.3342 123.454 +30.5484 -44.7215 124.532 +29.0678 -44.3152 123.401 +28.1097 -44.6968 124.464 +26.6555 -44.2811 123.306 +25.6829 -44.6566 124.352 +24.4196 -44.5312 124.002 +23.321 -44.7016 124.477 +21.9183 -44.2686 123.271 +21.0091 -44.8324 124.841 +19.5404 -44.1905 123.054 +18.6074 -44.7485 124.608 +17.2817 -44.3659 123.542 +16.3183 -44.9185 125.081 +14.9315 -44.2933 123.34 +13.9127 -44.7391 124.581 +12.6996 -44.5765 124.129 +11.5481 -44.6123 124.228 +10.3017 -44.2402 123.192 +9.24273 -44.6735 124.399 +8.03399 -44.3957 123.625 +6.96592 -44.9239 125.096 +5.70978 -44.1997 123.079 +4.62418 -44.7553 124.626 +3.45274 -44.5647 124.096 +2.31244 -44.7759 124.684 +1.14841 -44.4768 123.851 +5.21805e-15 -44.7827 124.703 +-1.14841 -44.4768 123.851 +-2.32292 -44.9787 125.249 +-3.45274 -44.5647 124.096 +-4.61371 -44.6539 124.344 +-5.74031 -44.4362 123.738 +-6.95021 -44.8226 124.814 +-8.03399 -44.3957 123.625 +-9.38225 -45.3478 126.276 +-10.3488 -44.4423 123.755 +-11.705 -45.2183 125.916 +-12.6996 -44.5765 124.129 +-14.0382 -45.1423 125.704 +-15.1239 -44.8641 124.93 +-16.4036 -45.1534 125.735 +-17.4122 -44.7012 124.476 +-18.7745 -45.1501 125.726 +-19.7621 -44.6918 124.45 +-21.103 -45.0324 125.398 +-22.1164 -44.6684 124.385 +-23.4772 -45.001 125.311 +-24.5836 -44.8303 124.835 +-25.8355 -44.9219 125.09 +-26.8947 -44.6786 124.413 +-28.3384 -45.0605 125.476 +-29.1977 -44.513 123.952 +-30.8183 -45.1169 125.633 +-31.912 -44.9256 125.101 +-33.4336 -45.3218 126.204 +-34.4273 -44.9922 125.286 +-35.8982 -45.2809 126.09 +-36.9056 -44.9777 125.246 +-38.5617 -45.4522 126.567 +-39.4781 -45.0449 125.433 +-41.0198 -45.3471 126.274 +-42.159 -45.192 125.842 +-43.9113 -45.6766 127.192 +-44.5178 -44.9686 125.22 +-46.5562 -45.6983 127.252 +-47.434 -45.2724 126.066 +-49.3877 -45.8615 127.707 +-50.3948 -45.5556 126.855 +-52.1784 -45.9416 127.93 +-53.2526 -45.6918 127.234 +-55.1046 -46.0971 128.363 +-56.2927 -45.9328 127.905 +-58.4924 -46.574 129.691 +-59.294 -46.0896 128.342 +-61.2139 -46.4689 129.398 +-61.9966 -45.9788 128.033 +-64.1112 -46.4682 129.396 +-65.9543 -46.7349 130.139 +-68.079 -47.1766 131.369 +-69.4284 -47.0647 131.057 +-71.1857 -47.2195 131.488 +-72.5407 -47.0975 131.149 +-74.646 -47.449 132.127 +-75.2479 -46.8406 130.433 +-78.1028 -47.6221 132.609 +-79.034 -47.2134 131.471 +-81.1 -47.4761 132.203 +-81.8152 -46.9441 130.721 +-84.3117 -47.425 132.061 +-84.906 -46.8288 130.4 +-86.9068 -47.0066 130.895 +-88.2783 -46.8339 130.415 +-90.0833 -46.8836 130.553 +-91.9527 -46.9542 130.75 +-94.224 -47.2138 131.472 +-95.2695 -46.8504 130.461 +-97.7948 -47.2043 131.446 +-99.4163 -47.107 131.175 +-101.158 -47.058 131.039 +-102.904 -47.0022 130.883 +-105.257 -47.2097 131.461 +-106.655 -46.9782 130.816 +-108.911 -47.1144 131.196 +-110.185 -46.818 130.37 +-113.026 -47.1739 131.361 +-114.303 -46.865 130.501 +-117.566 -47.3547 131.865 +-119.174 -47.16 131.323 +-99.3273 -38.6189 107.539 +-97.8027 -37.3626 104.041 +-97.0239 -36.4196 101.415 +-96.9472 -35.7582 99.573 +-97.253 -35.2485 98.1537 +-97.5398 -34.7399 96.7373 +-97.1132 -33.9889 94.6461 +-97.3563 -33.4841 93.2404 +-97.51 -32.9567 91.7718 +-97.1447 -32.2651 89.846 +-97.3267 -31.7661 88.4564 +-97.4178 -31.2451 87.0058 +-96.9044 -30.5417 85.0471 +-97.8367 -30.3004 84.3751 +-97.352 -29.6262 82.4978 +-97.514 -29.1588 81.1961 +-97.433 -28.6262 79.713 +-97.5601 -28.1621 78.4208 +-97.6707 -27.6995 77.1325 +-97.4562 -27.1524 75.6091 +-97.6872 -26.7363 74.4504 +-97.7478 -26.2788 73.1766 +-97.7133 -25.8023 71.8495 +-97.8205 -25.3691 70.6432 +-97.753 -24.8965 69.3274 +-97.8294 -24.4665 68.1299 +-98.4574 -24.1771 67.3239 +-98.508 -23.7484 66.1302 +-98.4621 -23.3018 64.8867 +-98.4831 -22.8765 63.7024 +-98.241 -22.3962 62.3649 +-98.5653 -22.0496 61.3998 +-98.7115 -21.666 60.3316 +-100.364 -21.6102 60.1761 +-102.275 -21.5999 60.1475 +-104.193 -21.5799 60.0919 +-106.117 -21.5503 60.0095 +-108.651 -21.6311 60.2343 +-110.591 -21.5802 60.0926 +-112.45 -21.5028 59.8772 +-115.187 -21.58 60.092 +-117.41 -21.5458 59.997 +-119.639 -21.5002 59.8699 +-125.423 -22.0673 61.4491 +-163.321 -28.1257 78.3194 +-164.399 -27.7032 77.143 +-164.569 -27.1284 75.5424 +-164.451 -26.511 73.8231 +-163.951 -25.8393 71.9526 +-163.793 -25.2286 70.2521 +-164.438 -24.7446 68.9042 +-164.612 -24.1913 67.3635 +-165.231 -23.7048 66.0089 +-164.173 -22.9838 64.001 +-164.019 -22.3974 62.3682 +-164.498 -21.9004 60.9842 +-115.017 -14.9222 41.5527 +-111.277 -14.0616 39.1563 +-109.568 -13.4786 37.5327 +-109.064 -13.0534 36.3487 +-108.167 -12.5882 35.0532 +-108.678 -12.2901 34.2232 +-108.42 -11.9064 33.1548 +-108.342 -11.5455 32.15 +-108.254 -11.186 31.1489 +-108.922 -10.9047 30.3654 +-110.257 -10.6855 29.7551 +-109.854 -10.2967 28.6724 +-109.15 -9.88484 27.5255 +-109.497 -9.57099 26.6516 +-110.323 -9.29671 25.8878 +-111.045 -9.01044 25.0907 +-111.468 -8.69777 24.22 +-114.129 -8.55156 23.8129 +-114.932 -8.25678 22.992 +-118.277 -8.13311 22.6476 +-153.33 -10.0734 28.0505 +-158.796 -9.94716 27.6991 +-160.425 -9.56061 26.6227 +-837.258 -47.3544 131.864 +-831.337 -44.5025 123.922 +-839.872 -42.4236 118.133 +-852.819 -40.5092 112.803 +-381.012 -16.9536 47.2093 +-381.138 -15.8168 44.0439 +-379.743 -14.6232 40.7202 +-899.147 -31.9408 88.9429 +-404.33 -13.1585 36.6414 +-403.758 -11.939 33.2455 +-403.153 -10.7238 29.8617 +-403.914 -9.54611 26.5823 +-145.728 -3.01247 8.38858 +-403.546 -7.14799 19.9044 +-403.016 -5.94717 16.5606 +-401.955 -4.74412 13.2106 +-146.15 -1.29348 3.60186 +-147.078 -0.867685 2.41617 +-145.194 -0.428254 1.19252 +118.9 5.32907e-15 2.84217e-14 +118.895 -0.341861 0.979655 +119.682 -0.688293 1.97241 +119.659 -1.03237 2.95842 +119.727 -1.37753 3.94751 +119.586 -1.72028 4.92971 +119.636 -2.06577 5.91977 +119.577 -2.40967 6.90526 +120.306 -2.77176 7.9429 +120.129 -3.11498 8.92643 +119.842 -3.45449 9.89937 +119.647 -3.7958 10.8774 +120.536 -4.17407 11.9614 +120.322 -4.51676 12.9434 +120.098 -4.85853 13.9228 +120.758 -5.23805 15.0104 +120.912 -5.59879 16.0442 +120.165 -5.917 16.956 +120.696 -6.29837 18.0489 +120.228 -6.62883 18.9959 +120.737 -7.01432 20.1006 +120.252 -7.34317 21.043 +120.053 -7.68863 22.0329 +120.727 -8.09263 23.1906 +120.508 -8.43944 24.1845 +120.28 -8.78562 25.1765 +120.822 -9.19038 26.3364 +120.574 -9.53742 27.3309 +120.899 -9.93157 28.4604 +120.534 -10.2705 29.4318 +120.354 -10.6253 30.4482 +120.647 -11.0237 31.59 +121.023 -11.4337 32.765 +120.715 -11.7813 33.7609 +121.164 -12.205 34.9751 +120.836 -12.5529 35.9721 +121.45 -13.0016 37.2581 +121.385 -13.3817 38.3472 +121.215 -13.7516 39.4073 +121.318 -14.1546 40.5621 +120.938 -14.5029 41.5602 +121.393 -14.9539 42.8527 +120.339 -15.2197 43.6143 +116.395 -15.1063 43.2892 +113.487 -15.1071 43.2916 +111.512 -15.2185 43.6108 +107.883 -15.0879 43.2368 +104.728 -15.0034 42.9945 +102.043 -14.9689 42.8957 +99.4588 -14.9338 42.7952 +97.8812 -15.0382 43.0943 +96.3058 -15.1347 43.3706 +96.6204 -15.5265 44.4936 +97.0109 -15.936 45.6671 +97.1197 -16.3041 46.7219 +98.0147 -16.8109 48.1743 +96.8594 -16.9684 48.6254 +96.9335 -17.3405 49.6919 +96.9953 -17.7144 50.7633 +96.5224 -17.9926 51.5606 +96.8216 -18.4177 52.7788 +96.3301 -18.6954 53.5745 +96.4313 -19.0905 54.7066 +96.6894 -19.5219 55.9429 +96.0838 -19.7817 56.6875 +96.3153 -20.2165 57.9335 +96.531 -20.6542 59.1877 +96.564 -21.0583 60.3456 +96.7487 -21.5009 61.6141 +96.1755 -21.7783 62.4088 +96.3323 -22.224 63.6863 +96.3099 -22.6341 64.8614 +96.4348 -23.0844 66.1519 +95.8197 -23.3608 66.944 +95.8363 -23.7941 68.1854 +96.4718 -24.3896 69.8921 +95.8221 -24.6661 70.6843 +96.4956 -25.2893 72.4703 +95.9775 -25.6073 73.3814 +95.8358 -26.0289 74.5898 +96.3684 -26.6424 76.3476 +95.7351 -26.9398 77.2 +95.6972 -27.4086 78.5434 +96.1659 -28.032 80.3298 +96.1629 -28.5279 81.7509 +96.0672 -29.0036 83.1142 +95.9536 -29.481 84.4821 +95.7494 -29.9372 85.7894 +95.6003 -30.4173 87.1653 +96.0035 -31.0836 89.0747 +95.813 -31.5681 90.4632 +96.1648 -32.2419 92.394 +95.3766 -32.5409 93.2507 +95.3371 -33.1005 94.8545 +94.5932 -33.4218 95.775 +94.7177 -34.0567 97.5944 +94.2136 -34.4748 98.7926 +94.3571 -35.139 100.696 +94.6037 -35.8566 102.752 +94.2349 -36.3528 104.174 +94.4898 -37.102 106.321 +94.4576 -37.7534 108.188 +94.5239 -38.4588 110.209 +94.56 -39.1675 112.24 +94.6272 -39.9052 114.354 +95.2103 -40.8814 117.152 +94.846 -41.4695 118.837 +94.6958 -42.1644 120.828 +94.2808 -42.7548 122.52 +94.0158 -43.4266 124.446 +93.0341 -43.7762 125.447 +90.6816 -43.4721 124.576 +90.3656 -44.1406 126.492 +88.6963 -44.1515 126.523 +87.3601 -44.3222 127.012 +85.3232 -44.1271 126.453 +84.8401 -44.734 128.192 +82.9205 -44.5828 127.759 +82.3546 -45.1584 129.408 +80.7494 -45.1663 129.431 +79.45 -45.3396 129.927 +77.9014 -45.3656 130.002 +76.7454 -45.6167 130.721 +73.387 -44.5327 127.615 +71.8761 -44.5383 127.631 +70.4167 -44.5679 127.716 +70.5955 -45.6496 130.816 +69.2053 -45.7326 131.054 +67.9914 -45.93 131.619 +66.1265 -45.6776 130.896 +64.9564 -45.8961 131.522 +63.2822 -45.7511 131.107 +62.2714 -46.0819 132.055 +60.6099 -45.9267 131.61 +59.7819 -46.4025 132.973 +57.4791 -45.7205 131.019 +56.6405 -46.1893 132.362 +54.0223 -45.1857 129.486 +52.5009 -45.0625 129.133 +49.9396 -44.0078 126.111 +48.7037 -44.0879 126.34 +47.2337 -43.9469 125.936 +45.9702 -43.9874 126.052 +44.2005 -43.5242 124.725 +43.3242 -43.9317 125.893 +42.0086 -43.8975 125.795 +40.8443 -44.0167 126.137 +39.2509 -43.6586 125.11 +38.2585 -43.9597 125.973 +36.6918 -43.5917 124.919 +35.9241 -44.1732 126.585 +34.4523 -43.8919 125.779 +33.2885 -43.9894 126.058 +32.0287 -43.9551 125.96 +30.9533 -44.1739 126.587 +29.5873 -43.9719 126.008 +28.5463 -44.2487 126.801 +27.0144 -43.7479 125.366 +26.0263 -44.1149 126.418 +24.6929 -43.8965 125.792 +23.6856 -44.2579 126.828 +22.2649 -43.8368 125.621 +21.2438 -44.192 126.639 +19.9838 -44.0559 126.249 +18.858 -44.2095 126.689 +17.5166 -43.8375 125.623 +16.428 -44.0823 126.324 +15.1692 -43.8662 125.705 +14.0382 -44.0062 126.106 +12.7187 -43.5202 124.714 +11.705 -44.0803 126.319 +10.4821 -43.8823 125.751 +9.34737 -44.0424 126.21 +8.1805 -44.0675 126.282 +7.01302 -44.0892 126.344 +5.80574 -43.8115 125.548 +4.66257 -43.9914 126.064 +3.48415 -43.8382 125.625 +2.33862 -44.1433 126.499 +1.1615 -43.8517 125.663 +4.66294e-15 -44.1498 126.518 +-1.16936 -44.1482 126.513 +-2.33862 -44.1433 126.499 +-3.49986 -44.0358 126.191 +-4.67653 -44.1228 126.441 +-5.845 -44.1077 126.397 +-7.02872 -44.1881 126.627 +-8.21713 -44.2648 126.847 +-9.46595 -44.6009 127.811 +-10.6077 -44.4078 127.257 +-11.8357 -44.5726 127.729 +-12.9775 -44.4058 127.252 +-14.195 -44.4978 127.515 +-15.3277 -44.3245 127.018 +-16.5864 -44.5077 127.543 +-17.7646 -44.4582 127.402 +-19.0667 -44.6991 128.092 +-20.0725 -44.2513 126.809 +-21.4315 -44.5824 127.758 +-22.463 -44.2266 126.738 +-23.9461 -44.7445 128.222 +-24.8387 -44.1558 126.535 +-26.179 -44.3736 127.159 +-27.2536 -44.1353 126.476 +-28.7126 -44.5063 127.54 +-29.7821 -44.2612 126.837 +-31.1557 -44.4628 127.415 +-32.1921 -44.1795 126.603 +-33.6513 -44.4688 127.432 +-34.8779 -44.4342 127.333 +-36.0017 -44.2685 126.858 +-37.3866 -44.4174 127.285 +-39.0578 -44.8783 128.605 +-40.0746 -44.5745 127.735 +-41.6922 -44.9304 128.755 +-42.7002 -44.6203 127.866 +-44.3439 -44.966 128.857 +-45.5332 -44.8365 128.486 +-47.3051 -45.2648 129.713 +-48.0348 -44.6922 128.072 +-50.106 -45.3574 129.978 +-51.2003 -45.1188 129.295 +-53.0743 -45.5544 130.543 +-54.0223 -45.1857 129.486 +-55.8164 -45.5172 130.436 +-57.0198 -45.3551 129.972 +-58.9613 -45.7656 131.148 +-60.4105 -45.7758 131.177 +-61.824 -45.7508 131.106 +-62.909 -45.4813 130.333 +-65.1255 -46.0153 131.864 +-66.514 -45.9452 131.663 +-68.6051 -46.3445 132.807 +-69.83 -46.1455 132.237 +-71.7305 -46.3834 132.918 +-73.2795 -46.3801 132.909 +-74.646 -46.2549 132.55 +-76.584 -46.4726 133.174 +-78.1028 -46.4236 133.034 +-79.7234 -46.4269 133.043 +-81.25 -46.3669 132.871 +-82.7795 -46.302 132.685 +-84.3117 -46.2315 132.483 +-86.0033 -46.2404 132.509 +-87.8076 -46.2987 132.676 +-88.8694 -45.961 131.708 +-91.4449 -46.3946 132.951 +-92.7806 -46.1847 132.349 +-95.2865 -46.5445 133.38 +-96.7988 -46.4044 132.979 +-98.7125 -46.4483 133.104 +-99.939 -46.1626 132.286 +-102.216 -46.3534 132.833 +-104.035 -46.3227 132.745 +-106.1 -46.39 132.937 +-107.386 -46.1096 132.134 +-109.711 -46.2664 132.583 +-111.368 -46.1297 132.191 +-114.536 -46.6015 133.543 +-116.339 -46.499 133.25 +-119.366 -46.8693 134.311 +-112.809 -43.5182 124.708 +-97.4904 -36.9508 105.888 +-97.2064 -36.2002 103.737 +-97.0909 -35.5274 101.809 +-96.8796 -34.8342 99.8227 +-97.253 -34.3614 98.4678 +-97.5398 -33.8656 97.0468 +-97.1827 -33.1572 95.0169 +-97.3563 -32.6414 93.5388 +-97.4393 -32.104 91.9987 +-97.1447 -31.4531 90.1335 +-97.4705 -31.0124 88.8706 +-97.4178 -30.4588 87.2842 +-97.6357 -29.9978 85.9631 +-97.0994 -29.3152 84.0072 +-97.2777 -28.8586 82.6986 +-97.8885 -28.5341 81.7687 +-97.5085 -27.9273 80.03 +-98.0924 -27.6031 79.1009 +-97.9005 -27.0659 77.5615 +-98.305 -26.6996 76.5116 +-97.6095 -26.0427 74.6292 +-97.826 -25.638 73.4694 +-97.7921 -25.1732 72.1375 +-97.8205 -24.7306 70.8692 +-97.9127 -24.3096 69.6628 +-97.6686 -23.8116 68.2357 +-97.8102 -23.4136 67.0953 +-98.508 -23.1507 66.3418 +-98.3802 -22.6965 65.0401 +-98.4007 -22.2821 63.8528 +-98.3239 -21.851 62.6172 +-98.1484 -21.4038 61.3357 +-98.7115 -21.1208 60.5247 +-100.364 -21.0663 60.3686 +-102.275 -21.0563 60.3399 +-104.789 -21.1574 60.6296 +-106.203 -21.0249 60.2501 +-108.651 -21.0867 60.427 +-109.812 -20.8888 59.86 +-112.45 -20.9617 60.0687 +-114.488 -20.9091 59.9181 +-117.586 -21.035 60.279 +-119.639 -20.9591 60.0615 +-124.359 -21.3294 61.1225 +-163.945 -27.5226 78.8701 +-163.594 -26.8737 77.0107 +-163.401 -26.2579 75.246 +-163.639 -25.7162 73.6936 +-163.951 -25.189 72.1828 +-164.157 -24.6484 70.6336 +-163.89 -24.0414 68.8943 +-164.887 -23.6218 67.6919 +-164.034 -22.9409 65.7405 +-164.635 -22.4684 64.3865 +-163.648 -21.7844 62.4263 +-164.498 -21.3492 61.1794 +-116.137 -14.6884 42.0918 +-111.277 -13.7077 39.2816 +-109.662 -13.1507 37.6852 +-109.064 -12.7249 36.465 +-108.167 -12.2713 35.1654 +-108.678 -11.9808 34.3327 +-108.516 -11.6169 33.2901 +-108.342 -11.255 32.2528 +-108.158 -10.8949 31.2209 +-108.73 -10.6115 30.409 +-110.257 -10.4166 29.8503 +-108.987 -9.95833 28.5371 +-109.15 -9.63607 27.6136 +-109.401 -9.32184 26.7131 +-110.323 -9.06274 25.9706 +-111.142 -8.79135 25.1929 +-111.468 -8.47888 24.2975 +-113.446 -8.28643 23.746 +-115.128 -8.06268 23.1048 +-118.571 -7.94812 22.7765 +-146.95 -9.4112 26.9692 +-161.549 -9.86495 28.2695 +-161.607 -9.38866 26.9046 +-3231.56 -178.174 510.583 +-829.757 -43.3001 124.083 +-839.971 -41.3608 118.526 +-853.116 -39.5036 113.203 +-381.508 -16.5484 47.422 +-382.23 -15.463 44.3114 +-379.544 -14.2477 40.829 +-897.357 -31.0749 89.0498 +-403.434 -12.7989 36.6773 +-403.459 -11.6299 33.3272 +-402.655 -10.441 29.9202 +-401.819 -9.2576 26.529 +-145.229 -2.92659 8.38659 +-403.147 -6.96118 19.9483 +-403.016 -5.7975 16.6136 +-402.555 -4.63161 13.2726 +-146.95 -1.26783 3.63315 +-146.078 -0.840099 2.40743 +-146.594 -0.421502 1.20788 +119.1 5.77316e-15 2.84217e-14 +118.895 -0.333008 0.9827 +119.782 -0.671029 1.98019 +119.659 -1.00564 2.96762 +119.827 -1.34297 3.96309 +119.686 -1.67712 4.94916 +119.636 -2.01227 5.93816 +119.577 -2.34726 6.92672 +120.306 -2.69998 7.96759 +120.129 -3.0343 8.95417 +119.842 -3.36503 9.93014 +119.746 -3.70054 10.9202 +120.536 -4.06597 11.9986 +120.322 -4.39978 12.9837 +120.098 -4.7327 13.9661 +120.758 -5.10239 15.0571 +120.912 -5.45379 16.094 +120.957 -5.80173 17.1208 +120.696 -6.13525 18.105 +120.228 -6.45716 19.055 +119.95 -6.78805 20.0314 +120.35 -7.15884 21.1256 +120.053 -7.48951 22.1014 +119.845 -7.82547 23.0928 +120.508 -8.22087 24.2596 +120.182 -8.55112 25.2342 +120.822 -8.95237 26.4183 +120.574 -9.29042 27.4158 +120.996 -9.68213 28.5718 +120.631 -10.0126 29.5469 +121.224 -10.4248 30.7635 +120.647 -10.7382 31.6882 +120.35 -11.0757 32.6842 +120.715 -11.4761 33.8659 +121.164 -11.8889 35.0838 +121.027 -12.2471 36.1409 +121.45 -12.6649 37.3739 +121.48 -13.0453 38.4964 +121.215 -13.3955 39.5298 +121.318 -13.788 40.6882 +121.784 -14.2261 41.9809 +121.393 -14.5666 42.9859 +120.992 -14.9061 43.9875 +116.581 -14.7386 43.4932 +113.487 -14.7158 43.4262 +110.588 -14.7015 43.3839 +107.883 -14.6972 43.3711 +104.728 -14.6148 43.1281 +102.043 -14.5813 43.029 +99.4588 -14.5471 42.9282 +97.0656 -14.5267 42.8679 +96.3058 -14.7427 43.5054 +96.6204 -15.1244 44.6319 +96.9214 -15.509 45.7668 +97.1197 -15.8819 46.8672 +97.039 -16.2126 47.843 +97.0359 -16.5591 48.8654 +96.9335 -16.8915 49.8464 +96.2082 -17.1156 50.5079 +96.5224 -17.5267 51.7208 +96.8216 -17.9407 52.9428 +96.3301 -18.2112 53.741 +96.517 -18.6126 54.9254 +95.922 -18.8654 55.6715 +95.999 -19.2524 56.8135 +96.3153 -19.693 58.1136 +96.531 -20.1193 59.3717 +96.564 -20.5129 60.5331 +96.0026 -20.7825 61.3289 +96.0931 -21.1961 62.5492 +96.3323 -21.6485 63.8842 +96.3913 -22.0665 65.1179 +96.4348 -22.4866 66.3575 +95.8197 -22.7558 67.152 +96.555 -23.3517 68.9103 +95.9164 -23.6212 69.7058 +95.9797 -24.0668 71.0206 +95.7912 -24.4546 72.1649 +95.8221 -24.9037 73.4903 +95.8358 -25.3548 74.8216 +96.445 -25.973 76.6458 +96.4195 -26.4297 77.9935 +96.3009 -26.8672 79.2845 +96.2408 -27.3273 80.6423 +96.0886 -27.7676 81.9416 +96.0672 -28.2525 83.3725 +95.9536 -28.7175 84.7447 +95.822 -29.1839 86.1212 +96.2477 -29.8302 88.0283 +96.0035 -30.2786 89.3515 +95.813 -30.7506 90.7443 +95.6741 -31.2467 92.2083 +95.9323 -31.8828 94.0855 +95.3371 -32.2433 95.1493 +95.1388 -32.7439 96.6268 +95.0555 -33.2931 98.2472 +94.7489 -33.7726 99.6622 +94.4234 -34.253 101.08 +94.6037 -34.928 103.072 +94.17 -35.3869 104.426 +94.3612 -36.0917 106.506 +94.4576 -36.7756 108.524 +94.461 -37.4381 110.479 +94.56 -38.1531 112.589 +94.6272 -38.8717 114.71 +95.1494 -39.7973 117.441 +94.5451 -40.2675 118.829 +94.3984 -40.9434 120.823 +94.3395 -41.6736 122.978 +94.5965 -42.5632 125.603 +94.4107 -43.2735 127.699 +92.0977 -43.0074 126.914 +91.0366 -43.3168 127.827 +89.3586 -43.3293 127.864 +88.5038 -43.7395 129.074 +86.5052 -43.5796 128.603 +85.476 -43.9019 129.554 +83.9133 -43.9481 129.69 +82.7151 -44.1814 130.379 +81.1046 -44.1901 130.404 +80.95 -44.9995 132.793 +79.2802 -44.9729 132.714 +78.1028 -45.2213 133.447 +75.4865 -44.6205 131.674 +74.3173 -44.8586 132.377 +71.6634 -44.1824 130.381 +70.2777 -44.2671 130.631 +69.9192 -45.0078 132.817 +69.1311 -45.4905 134.242 +67.2028 -45.219 133.44 +66.0975 -45.4928 134.248 +64.0701 -45.1211 133.152 +63.2882 -45.6215 134.628 +61.4074 -45.3259 133.756 +60.5243 -45.7621 135.043 +58.5506 -45.3667 133.876 +58.064 -46.1238 136.11 +55.0118 -44.8217 132.268 +53.146 -44.4346 131.126 +50.9902 -43.77 129.164 +49.9349 -44.0319 129.937 +47.7344 -43.2626 127.667 +46.719 -43.5463 128.504 +45.1842 -43.3405 127.897 +44.1585 -43.6182 128.716 +42.7303 -43.4952 128.354 +41.6337 -43.7055 128.974 +39.7621 -43.0819 127.134 +39.0027 -43.6544 128.823 +37.4134 -43.2979 127.771 +36.5452 -43.7732 129.174 +34.903 -43.3145 127.82 +33.9658 -43.7221 129.023 +32.2388 -43.0976 127.18 +31.3582 -43.5928 128.642 +30.0418 -43.4911 128.341 +28.9829 -43.7619 129.141 +27.433 -43.2754 127.705 +26.4843 -43.7286 129.042 +24.9663 -43.233 127.58 +23.9461 -43.5857 128.621 +22.6115 -43.3662 127.973 +21.5254 -43.6182 128.716 +20.2499 -43.4863 128.327 +19.192 -43.8274 129.334 +17.7255 -43.2112 127.515 +16.8302 -43.9921 129.82 +15.373 -43.304 127.789 +14.3204 -43.7282 129.041 +12.9775 -43.2558 127.647 +11.9926 -43.9937 129.824 +10.6547 -43.4497 128.219 +9.53571 -43.7661 129.153 +8.29039 -43.5029 128.376 +7.15433 -43.813 129.291 +5.90607 -43.4144 128.115 +4.78821 -44.0065 129.862 +3.53389 -43.3126 127.815 +2.37876 -43.7379 129.07 +1.17983 -43.39 128.043 +5.21805e-15 -43.6162 128.711 +-1.18506 -43.5825 128.611 +-2.38574 -43.8663 129.448 +-3.53127 -43.2805 127.72 +-4.77076 -43.8464 129.39 +-5.92351 -43.5427 128.494 +-7.15433 -43.813 129.291 +-8.29039 -43.5029 128.376 +-9.6543 -44.3104 130.759 +-10.6783 -43.5456 128.502 +-12.0362 -44.1535 130.296 +-13.0638 -43.5434 128.496 +-14.5086 -44.3031 130.737 +-15.4749 -43.5909 128.636 +-16.9398 -44.2787 130.665 +-17.9082 -43.6567 128.83 +-19.2755 -44.0181 129.896 +-20.3829 -43.7719 129.17 +-21.9008 -44.3788 130.961 +-22.7601 -43.6512 128.814 +-24.3107 -44.2495 130.579 +-25.1667 -43.5803 128.605 +-26.7133 -44.1066 130.158 +-27.6125 -43.5585 128.54 +-29.2324 -44.1387 130.253 +-30.2799 -43.8358 129.358 +-32.078 -44.5935 131.595 +-32.8925 -43.9715 129.759 +-34.4255 -44.3136 130.769 +-35.4288 -43.967 129.746 +-36.9852 -44.3002 130.729 +-37.8677 -43.8236 129.322 +-39.8296 -44.5797 131.554 +-40.5858 -43.9741 129.767 +-42.657 -44.7797 132.144 +-43.3317 -44.1076 130.161 +-45.3637 -44.8085 132.229 +-46.1996 -44.3146 130.772 +-48.3794 -45.0939 133.071 +-49.2031 -44.5935 131.595 +-51.2346 -45.1779 133.319 +-51.9358 -44.5816 131.56 +-54.0419 -45.1837 133.336 +-54.9752 -44.7919 132.18 +-57.0526 -45.3204 133.74 +-58.0531 -44.9812 132.739 +-59.9382 -45.3188 133.735 +-60.9687 -45.0021 132.8 +-62.8001 -45.2694 133.589 +-63.8628 -44.9751 132.721 +-66.5201 -45.7836 135.106 +-67.375 -45.3349 133.782 +-70.0955 -46.1251 136.114 +-71.0793 -45.7547 135.021 +-73.1379 -46.0686 135.947 +-73.9721 -45.6058 134.582 +-75.9605 -45.8503 135.303 +-77.6814 -45.9177 135.502 +-79.0724 -45.7826 135.104 +-80.6097 -45.7271 134.94 +-82.3 -45.7499 135.007 +-83.5408 -45.5175 134.321 +-85.7538 -45.8044 135.168 +-86.6303 -45.3712 133.889 +-88.8145 -45.6167 134.614 +-89.8902 -45.2848 133.635 +-92.6431 -45.7852 135.111 +-93.4981 -45.3365 133.787 +-96.7963 -46.0573 135.914 +-96.9687 -45.2819 133.626 +-100.376 -46.0079 135.768 +-100.984 -45.4376 134.085 +-104.449 -46.1395 136.157 +-105.165 -45.6131 134.604 +-107.364 -45.7271 134.94 +-108.36 -45.3227 133.746 +-113.035 -46.4338 137.025 +-113.484 -45.7887 135.122 +-117.431 -46.5416 137.343 +-118.311 -46.0625 135.929 +-99.8249 -38.1817 112.673 +-98.0667 -36.8511 108.747 +-96.2439 -35.5336 104.859 +-97.1401 -35.2386 103.989 +-97.2247 -34.6552 102.267 +-96.8796 -33.9321 100.133 +-97.253 -33.4715 98.7738 +-97.5398 -32.9885 97.3484 +-97.1827 -32.2985 95.3122 +-97.4264 -31.8189 93.897 +-97.6514 -31.3406 92.4855 +-97.1447 -30.6385 90.4136 +-97.3986 -30.1869 89.0809 +-97.4178 -29.67 87.5555 +-97.7089 -29.2428 86.2949 +-97.0257 -28.5344 84.2043 +-97.0547 -28.0468 82.7655 +-97.2893 -27.625 81.5208 +-97.2821 -27.1409 80.0923 +-97.6361 -26.7632 78.9777 +-98.0537 -26.4062 77.9242 +-98.305 -26.0081 76.7494 +-97.6872 -25.3884 74.9208 +-97.7478 -24.954 73.6389 +-97.7133 -24.5015 72.3034 +-97.9791 -24.1292 71.2047 +-97.5933 -23.6028 69.6513 +-97.6686 -23.1949 68.4477 +-97.6484 -22.7696 67.1926 +-97.7753 -22.3834 66.0529 +-98.4621 -22.1271 65.2967 +-98.3183 -21.6869 63.9976 +-98.3239 -21.2851 62.8118 +-98.1484 -20.8495 61.5263 +-98.7115 -20.5738 60.7128 +-100.364 -20.5207 60.5562 +-102.359 -20.528 60.5776 +-104.278 -20.5088 60.5211 +-106.203 -20.4804 60.4374 +-107.962 -20.4103 60.2303 +-110.765 -20.5243 60.5669 +-112.537 -20.4346 60.3021 +-114.4 -20.352 60.0584 +-117.674 -20.5056 60.5116 +-119.551 -20.4012 60.2036 +-123.295 -20.5992 60.7877 +-162.609 -26.5912 78.4702 +-163.057 -26.0918 76.9964 +-162.951 -25.5075 75.2722 +-164.451 -25.1745 74.2895 +-164.314 -24.5909 72.5673 +-162.792 -23.8104 70.2639 +-164.438 -23.4971 69.3395 +-164.704 -22.9845 67.8267 +-164.678 -22.4345 66.2039 +-165.005 -21.9356 64.7316 +-164.019 -21.2683 62.7622 +-163.567 -20.6787 61.0224 +-116.978 -14.4115 42.528 +-112.026 -13.4427 39.669 +-110.32 -12.8869 38.029 +-109.158 -12.406 36.6099 +-108.073 -11.9431 35.2438 +-107.73 -11.5687 34.1389 +-108.42 -11.3062 33.3643 +-108.628 -10.9924 32.4385 +-108.636 -10.6596 31.4564 +-109.305 -10.3914 30.6649 +-110.064 -10.1291 29.8909 +-108.698 -9.67468 28.5498 +-109.343 -9.4031 27.7484 +-109.304 -9.0724 26.7725 +-110.226 -8.82027 26.0284 +-111.239 -8.57115 25.2933 +-111.565 -8.26651 24.3943 +-112.665 -8.01624 23.6558 +-114.345 -7.8005 23.0191 +-117.395 -7.66551 22.6208 +-136.839 -8.53671 25.1917 +-159.582 -9.49248 28.0121 +-158.948 -8.99502 26.5441 +-161.554 -8.67665 25.6046 +-828.967 -42.1383 124.349 +-840.762 -40.3275 119.006 +-852.225 -38.4401 113.436 +-381.211 -16.1073 47.5323 +-382.825 -15.086 44.5184 +-380.637 -13.9187 41.0739 +-897.655 -30.2802 89.3563 +-405.226 -12.5228 36.9546 +-403.658 -11.3343 33.4473 +-403.851 -10.2008 30.1024 +-404.313 -9.07381 26.7766 +-144.829 -2.84296 8.38953 +-403.247 -6.7826 20.0153 +-402.417 -5.63895 16.6404 +-402.854 -4.51503 13.3238 +-146.65 -1.23247 3.63701 +-144.978 -0.81218 2.39673 +-144.994 -0.406106 1.19841 +119 5.77316e-15 2.84217e-14 +118.995 -0.324399 0.986491 +119.782 -0.653134 1.98617 +119.759 -0.979638 2.97906 +119.827 -1.30716 3.97504 +119.686 -1.6324 4.96409 +119.536 -1.95697 5.9511 +119.676 -2.28657 6.95341 +120.206 -2.6258 7.985 +120.129 -2.95338 8.98119 +119.842 -3.27529 9.9601 +119.547 -3.59589 10.935 +120.536 -3.95754 12.0348 +120.322 -4.28245 13.0228 +120.098 -4.60649 14.0082 +120.659 -4.96223 15.09 +120.02 -5.26924 16.0237 +120.165 -5.61005 17.0601 +119.807 -5.92765 18.0259 +121.017 -6.3262 19.2378 +119.95 -6.60703 20.0918 +120.35 -6.96793 21.1893 +120.151 -7.29574 22.1862 +120.727 -7.67282 23.3329 +120.41 -7.99514 24.3131 +120.28 -8.32986 25.3309 +120.822 -8.71363 26.498 +120.574 -9.04266 27.4986 +120.996 -9.42393 28.658 +120.728 -9.7534 29.6599 +120.258 -10.066 30.6104 +120.839 -10.4685 31.8346 +121.215 -10.8578 33.0185 +120.907 -11.1878 34.022 +120.303 -11.4896 34.9398 +121.122 -11.9298 36.2784 +121.64 -12.3465 37.5454 +121.575 -12.7073 38.6428 +121.31 -13.0484 39.68 +121.318 -13.4203 40.811 +121.784 -13.8467 42.1075 +121.486 -14.1891 43.1488 +120.339 -14.4302 43.8819 +116.395 -14.3226 43.5548 +113.487 -14.3234 43.5572 +110.588 -14.3095 43.5148 +107.239 -14.2198 43.2422 +104.728 -14.2251 43.2582 +102.043 -14.1924 43.1589 +99.4588 -14.1591 43.0577 +97.3375 -14.1789 43.1177 +96.5766 -14.3899 43.7594 +96.8001 -14.7485 44.8499 +97.0109 -15.1094 45.9473 +98.0107 -15.6002 47.4398 +96.9503 -15.7658 47.9434 +97.0359 -16.1175 49.0129 +96.7578 -16.4112 49.9061 +96.9079 -16.7803 51.0287 +96.5224 -17.0593 51.8769 +96.8216 -17.4623 53.1025 +96.244 -17.7097 53.8549 +96.4313 -18.1001 55.0421 +96.6041 -18.4929 56.2365 +96.0838 -18.7555 57.0352 +95.5563 -19.0167 57.8295 +96.531 -19.5828 59.5508 +95.8969 -19.8279 60.2963 +96.0026 -20.2283 61.5139 +96.1755 -20.6485 62.7917 +96.3323 -21.0712 64.077 +95.74 -21.333 64.8731 +96.5157 -21.9053 66.6136 +95.8197 -22.149 67.3546 +95.9161 -22.5785 68.6609 +96.6304 -23.1624 70.4365 +96.6101 -23.5788 71.7028 +96.6521 -24.0163 73.0332 +96.677 -24.4558 74.3697 +95.9901 -24.7184 75.1682 +95.7556 -25.0996 76.3275 +95.6591 -25.522 77.612 +95.6972 -25.9867 79.0252 +96.1659 -26.5778 80.8226 +96.1629 -27.048 82.2524 +96.0672 -27.499 83.624 +96.0999 -27.9942 85.1299 +95.822 -28.4056 86.381 +96.2477 -29.0347 88.2939 +96.0748 -29.493 89.6877 +95.813 -29.9305 91.0181 +95.604 -30.3911 92.4187 +96.0713 -31.0775 94.5061 +95.6813 -31.4968 95.7812 +96.0254 -32.1678 97.8217 +95.0555 -32.4052 98.5437 +95.418 -33.104 100.669 +94.9535 -33.5267 101.954 +94.6693 -34.0202 103.455 +94.2349 -34.467 104.813 +94.8755 -35.3207 107.41 +94.4576 -35.7949 108.852 +94.5239 -36.4637 110.885 +94.4977 -37.1113 112.855 +94.5656 -37.8104 114.981 +95.0885 -38.7113 117.72 +94.5451 -39.1937 119.187 +94.6363 -39.9521 121.494 +94.5746 -40.6634 123.657 +94.6546 -41.4538 126.06 +94.0665 -41.9661 127.618 +93.9102 -42.6842 129.802 +93.3852 -43.2493 131.52 +90.9592 -42.9291 130.547 +90.7913 -43.6732 132.81 +87.8485 -43.0763 130.994 +88.1786 -44.0822 134.053 +84.9583 -43.3087 131.701 +84.7238 -44.0475 133.948 +81.1046 -43.0116 130.798 +81.85 -44.2861 134.673 +81.0529 -44.7525 136.092 +79.3149 -44.6985 135.927 +77.6814 -44.6932 135.911 +76.1483 -44.7379 136.047 +73.0486 -43.8354 133.303 +71.4127 -43.7823 133.141 +70.3208 -44.0594 133.984 +69.7448 -44.6704 135.842 +68.3652 -44.7744 136.158 +66.9427 -44.8456 136.375 +65.1068 -44.6285 135.714 +63.9797 -44.89 136.51 +62.7232 -45.0627 137.035 +60.8368 -44.7719 136.151 +59.8517 -45.138 137.264 +58.1389 -44.9518 136.698 +56.9543 -45.1668 137.351 +54.5794 -44.4161 135.069 +52.286 -43.6854 132.847 +51.2004 -43.9438 133.632 +48.9695 -43.1984 131.366 +48.412 -43.921 133.563 +46.1044 -43.0438 130.895 +45.7345 -43.97 133.712 +43.4219 -43.0207 130.825 +42.9494 -43.8841 133.451 +40.955 -43.1909 131.343 +40.2155 -43.8113 133.229 +38.2151 -43.0463 130.903 +37.6841 -43.9335 133.601 +35.8043 -43.2481 131.517 +34.9335 -43.7685 133.099 +33.1959 -43.1937 131.351 +32.5729 -44.074 134.028 +30.5613 -43.0632 130.954 +29.9185 -43.9697 133.711 +28.2106 -43.3149 131.72 +27.2857 -43.8504 133.348 +25.5676 -43.0938 131.047 +24.9185 -44.1462 134.248 +23.1067 -43.1341 131.17 +22.2293 -43.8435 133.327 +20.6933 -43.2534 131.533 +19.7765 -43.9578 133.675 +18.1562 -43.081 131.008 +17.2323 -43.8419 133.322 +15.6786 -42.9873 130.723 +14.7594 -43.8669 133.398 +13.3321 -43.2528 131.531 +12.3325 -44.0344 133.908 +10.9372 -43.4121 132.015 +9.84961 -44.0013 133.807 +8.49185 -43.3718 131.893 +7.38984 -44.0481 133.949 +6.08054 -43.5049 132.297 +4.94875 -44.2693 134.622 +3.6386 -43.4065 131.998 +2.46428 -44.1018 134.113 +1.21561 -43.5136 132.324 +5.10703e-15 -44.2024 134.419 +-1.22084 -43.701 132.894 +-2.46952 -44.1956 134.398 +-3.66216 -43.6876 132.853 +-4.95922 -44.3627 134.906 +-6.08927 -43.5673 132.487 +-7.42124 -44.2355 134.519 +-8.52848 -43.5586 132.461 +-9.94727 -44.4377 135.134 +-11.0235 -43.7548 133.057 +-12.4023 -44.2833 134.665 +-13.5047 -43.8123 133.232 +-14.843 -44.1156 134.155 +-15.939 -43.701 132.894 +-17.4517 -44.4002 135.02 +-18.4303 -43.7314 132.986 +-19.9713 -44.3908 134.992 +-20.8707 -43.6242 132.66 +-22.4014 -44.1827 134.359 +-23.5358 -43.935 133.606 +-25.0748 -44.423 135.089 +-25.841 -43.5545 132.449 +-27.4383 -44.0956 134.094 +-28.39 -43.5905 132.558 +-30.1472 -44.3058 134.733 +-30.9509 -43.612 132.623 +-32.8204 -44.4089 135.047 +-33.7329 -43.8922 133.475 +-35.6593 -44.6779 135.865 +-36.23 -43.7623 133.08 +-38.0723 -44.3861 134.977 +-39.1504 -44.1 134.107 +-40.9873 -44.6523 135.787 +-41.6082 -43.8797 133.437 +-43.6511 -44.601 135.631 +-44.5947 -44.1824 134.358 +-46.5998 -44.8019 136.242 +-47.0563 -43.9325 133.598 +-49.4864 -44.8956 136.527 +-49.9709 -44.0815 134.051 +-52.1923 -44.795 136.221 +-53.0214 -44.2999 134.715 +-55.332 -45.0287 136.931 +-56.038 -44.4402 135.142 +-58.2888 -45.0677 137.05 +-59.1629 -44.6185 135.684 +-62.009 -45.6344 138.773 +-62.0055 -44.547 135.467 +-65.7286 -46.117 140.241 +-65.2312 -44.7138 135.974 +-69.4362 -46.5159 141.454 +-68.6235 -44.9434 136.672 +-73.471 -47.057 143.099 +-72.3733 -45.3451 137.894 +-76.6336 -46.9833 142.875 +-75.9576 -45.581 138.611 +-80.1388 -47.0823 143.176 +-79.3038 -45.6266 138.75 +-82.9024 -46.7202 142.075 +-82.4317 -45.5138 138.407 +-86.35 -46.7212 142.078 +-85.9262 -45.5688 138.574 +-88.535 -46.0289 139.973 +-88.7203 -45.2264 137.533 +-93.9547 -46.9698 142.834 +-93.92 -46.0533 140.047 +-97.0002 -46.66 141.892 +-97.3617 -45.9508 139.736 +-100.99 -46.7715 142.231 +-100.594 -45.7222 139.04 +-104.448 -46.5978 141.703 +-104.352 -45.7009 138.976 +-106.33 -45.7178 139.027 +-105.7 -44.6226 135.696 +-107.665 -44.6323 135.726 +-111.525 -45.4026 138.068 +-116.545 -46.5984 141.705 +-116.721 -45.839 139.396 +-101.761 -39.2558 119.376 +-102.218 -38.7357 117.795 +-97.1252 -36.1582 109.956 +-97.0275 -35.4885 107.92 +-96.8343 -34.7981 105.82 +-97.2064 -34.3223 104.374 +-97.1578 -33.7079 102.505 +-97.5552 -33.2574 101.135 +-97.253 -32.5789 99.0718 +-97.5398 -32.1088 97.6421 +-97.1827 -31.4371 95.5997 +-97.4264 -30.9704 94.1803 +-97.5807 -30.4827 92.6973 +-97.1447 -29.8214 90.6864 +-97.3986 -29.3819 89.3497 +-97.4178 -28.8787 87.8196 +-97.3432 -28.3564 86.2313 +-96.8782 -27.7312 84.33 +-97.5749 -27.4451 83.4601 +-97.0647 -26.8262 81.578 +-97.5839 -26.4991 80.5832 +-97.9403 -26.1306 79.4627 +-98.0537 -25.702 78.1593 +-98.305 -25.3145 76.981 +-97.6872 -24.7114 75.1468 +-97.7478 -24.2886 73.8611 +-97.7133 -23.8481 72.5215 +-97.8205 -23.4477 71.304 +-98.6315 -23.2177 70.6047 +-97.9098 -22.6321 68.8237 +-97.8102 -22.1991 67.5069 +-97.8567 -21.8046 66.3074 +-98.4621 -21.537 65.4937 +-98.3183 -21.1085 64.1907 +-98.241 -20.7 62.9482 +-98.3151 -20.3279 61.8168 +-98.2083 -19.923 60.5855 +-100.364 -19.9735 60.7389 +-101.511 -19.815 60.2569 +-103.511 -19.815 60.2569 +-106.203 -19.9343 60.6197 +-108.048 -19.8818 60.4602 +-109.985 -19.8364 60.3222 +-112.537 -19.8897 60.4841 +-114.488 -19.8244 60.2857 +-117.058 -19.8544 60.3768 +-118.756 -19.7252 59.9839 +-121.254 -19.718 59.9622 +-160.916 -25.6126 77.8875 +-164.399 -25.6051 77.8645 +-163.76 -24.9505 75.8741 +-164.451 -24.5032 74.5137 +-164.314 -23.9351 72.7863 +-164.43 -23.4086 71.185 +-165.078 -22.9594 69.8192 +-164.979 -22.4089 68.1451 +-164.402 -21.7996 66.2923 +-163.711 -21.1833 64.4179 +-164.761 -20.7947 63.2363 +-164.219 -20.2074 61.4503 +-118.471 -14.2063 43.201 +-111.839 -13.0623 39.7222 +-109.944 -12.5005 38.0138 +-108.969 -12.0543 36.657 +-108.924 -11.7161 35.6286 +-108.393 -11.3295 34.4529 +-108.611 -11.024 33.5237 +-108.533 -10.6899 32.5078 +-107.871 -10.3023 31.3291 +-109.114 -10.0966 30.7034 +-110.064 -9.85902 29.9811 +-109.758 -9.50852 28.9152 +-109.826 -9.19276 27.955 +-109.497 -8.84611 26.9008 +-110.129 -8.57749 26.084 +-111.045 -8.32802 25.3253 +-111.565 -8.04606 24.4679 +-112.665 -7.80246 23.7271 +-113.661 -7.54699 22.9503 +-117.395 -7.46109 22.689 +-131.244 -7.96931 24.2345 +-159.484 -9.23365 28.0794 +-161.607 -8.90162 27.0697 +-159.186 -8.32152 25.3056 +-829.461 -41.0392 124.799 +-840.169 -39.2243 119.28 +-852.423 -37.4237 113.805 +-3248.47 -133.597 406.267 +-382.329 -14.6646 44.5948 +-380.935 -13.5581 41.2301 +-897.357 -29.4629 89.596 +-404.927 -12.1799 37.0389 +-403.957 -11.0402 33.573 +-404.051 -9.93368 30.2081 +-403.614 -8.81659 26.8111 +-142.733 -2.7271 8.29306 +-401.05 -6.56573 19.9663 +-403.715 -5.50628 16.7445 +-402.555 -4.39135 13.354 +-146.15 -1.19552 3.63555 +-144.778 -0.78943 2.40064 +-146.194 -0.398547 1.21197 +118.9 5.32907e-15 2.84217e-14 +119.895 -0.317869 0.996857 +119.782 -0.635186 1.99198 +119.859 -0.953514 2.99028 +119.827 -1.27124 3.98668 +120.385 -1.59682 5.00771 +120.035 -1.91114 5.99345 +119.676 -2.22373 6.97376 +119.508 -2.53881 7.96185 +120.228 -2.87461 9.01495 +119.743 -3.18264 9.98095 +120.443 -3.52326 11.0492 +119.641 -3.82023 11.9805 +120.322 -4.16477 13.061 +120.098 -4.4799 14.0492 +120.659 -4.82587 15.1342 +120.12 -5.12867 16.0838 +120.165 -5.45589 17.11 +120.597 -5.80277 18.1978 +120.228 -6.11225 19.1684 +119.95 -6.42547 20.1506 +120.35 -6.77645 21.2513 +120.151 -7.09526 22.2511 +120.727 -7.46197 23.4012 +120.606 -7.78807 24.4239 +120.182 -8.09436 25.3844 +120.919 -8.48101 26.597 +120.477 -8.78709 27.5568 +120.996 -9.16496 28.7418 +120.631 -9.47775 29.7228 +121.224 -9.86798 30.9466 +120.839 -10.1809 31.9278 +120.35 -10.4841 32.8787 +120.907 -10.8804 34.1216 +120.59 -11.2005 35.1256 +120.836 -11.5746 36.2987 +121.45 -11.9884 37.5964 +121.575 -12.3581 38.7559 +121.877 -12.7492 39.9822 +121.506 -13.0718 40.994 +121.784 -13.4662 42.2308 +121.486 -13.7992 43.2751 +119.685 -13.9574 43.7713 +116.116 -13.8956 43.5776 +112.653 -13.8274 43.3635 +109.849 -13.8232 43.3505 +107.239 -13.829 43.3687 +104.728 -13.8342 43.3848 +101.312 -13.7035 42.9751 +99.7318 -13.8078 43.3022 +97.3375 -13.7893 43.2439 +96.7571 -14.0206 43.9695 +96.6204 -14.3166 44.8976 +97.0109 -14.6942 46.0817 +97.387 -15.0749 47.2759 +97.2164 -15.3746 48.2157 +96.3296 -15.5604 48.7985 +96.7578 -15.9602 50.0522 +96.9953 -16.3339 51.2242 +96.5224 -16.5905 52.0287 +96.735 -16.9672 53.2103 +96.3301 -17.2385 54.0609 +96.4313 -17.6027 55.2032 +95.922 -17.8577 56.0029 +96.0838 -18.2401 57.2022 +96.3153 -18.6411 58.4595 +96.4471 -19.0281 59.6732 +95.8969 -19.2831 60.4728 +96.7487 -19.8253 62.1734 +96.1755 -20.0811 62.9755 +96.3323 -20.4921 64.2645 +96.3913 -20.8878 65.5055 +95.8685 -21.1605 66.3605 +95.8197 -21.5403 67.5517 +95.996 -21.9764 68.9192 +96.6304 -22.5259 70.6426 +96.0585 -22.7999 71.502 +95.7912 -23.1483 72.5945 +95.8221 -23.5734 73.9277 +95.8358 -24.0005 75.267 +95.7556 -24.4099 76.5509 +95.7351 -24.8404 77.9009 +96.15 -25.3922 79.6315 +96.3157 -25.8877 81.1854 +96.1629 -26.3047 82.4931 +96.0672 -26.7434 83.8688 +95.9536 -27.1835 85.2491 +95.822 -27.625 86.6338 +95.6722 -28.068 88.0229 +96.0035 -28.6612 89.8834 +95.7423 -29.0865 91.2171 +95.5339 -29.5342 92.6212 +96.1407 -30.2453 94.8511 +95.819 -30.6753 96.1996 +96.0936 -31.306 98.1775 +95.7311 -31.7386 99.5342 +95.8864 -32.3526 101.46 +95.4173 -32.7649 102.753 +95.4566 -33.3603 104.62 +94.6895 -33.6814 105.627 +94.7469 -34.3036 107.578 +94.4576 -34.8113 109.17 +94.5869 -35.4854 111.284 +94.56 -36.1152 113.259 +94.6272 -36.7954 115.392 +95.0277 -37.6232 117.989 +94.5451 -38.1166 119.536 +94.5173 -38.8053 121.696 +94.5159 -39.5214 123.941 +94.4223 -40.2156 126.118 +94.7548 -41.1115 128.928 +94.3633 -41.7115 130.81 +94.6154 -42.615 133.643 +93.4429 -42.8896 134.504 +93.2422 -43.6196 136.794 +89.944 -42.8917 134.511 +90.0333 -43.7725 137.273 +87.4663 -43.362 135.986 +87.299 -44.1391 138.423 +83.8961 -43.2694 135.695 +84.5 -44.4636 139.44 +81.8408 -43.9456 137.816 +82.1267 -45.0114 141.158 +79.6378 -44.5599 139.743 +79.8102 -45.6007 143.007 +76.0038 -44.3554 139.101 +76.452 -45.5837 142.953 +71.8825 -43.8001 137.36 +71.8052 -44.7261 140.264 +68.9248 -43.9004 137.674 +69.3939 -45.2103 141.782 +65.8948 -43.9274 137.759 +66.6235 -45.4604 142.566 +62.8429 -43.908 137.698 +63.2984 -45.3033 142.074 +60.1578 -44.1221 138.37 +60.986 -45.8574 143.812 +56.9909 -43.9538 137.842 +56.658 -44.8406 140.623 +53.6518 -43.5947 136.716 +53.0131 -44.2491 138.768 +50.5717 -43.3857 136.06 +49.8445 -43.9778 137.917 +47.6592 -43.2727 135.706 +47.2178 -44.1486 138.453 +44.8052 -43.1712 135.388 +44.2943 -44.0146 138.032 +42.0343 -43.1108 135.198 +41.511 -43.98 137.924 +39.3375 -43.0929 135.142 +38.797 -43.9879 137.949 +36.7808 -43.2068 135.499 +36.4092 -44.364 139.128 +34.3398 -43.4544 136.276 +33.5627 -44.1653 138.505 +31.8383 -43.6297 136.825 +30.9788 -44.2771 138.856 +29.0878 -43.4346 136.214 +28.3351 -44.2856 138.882 +26.3695 -43.2238 135.552 +25.7868 -44.429 139.332 +23.8824 -43.3572 135.971 +23.2774 -44.6489 140.022 +21.388 -43.4772 136.347 +20.5837 -44.4949 139.539 +18.848 -43.4936 136.398 +17.9879 -44.5067 139.576 +16.3465 -43.5868 136.691 +15.2925 -44.2026 138.622 +13.7826 -43.4854 136.373 +12.7945 -44.4281 139.329 +11.3138 -43.6728 136.961 +10.2193 -44.3983 139.236 +8.71163 -43.2715 135.702 +7.63582 -44.2637 138.814 +6.27683 -43.6752 136.968 +5.15466 -44.844 140.633 +3.75639 -43.5805 136.671 +2.55678 -44.5001 139.555 +1.26011 -43.8672 137.57 +7.21645e-15 -44.7194 140.243 +-1.26011 -43.8672 137.57 +-2.56027 -44.5608 139.745 +-3.76686 -43.702 137.052 +-5.15117 -44.8136 140.538 +-6.32917 -44.0395 138.11 +-7.72479 -44.7796 140.431 +-8.85204 -43.969 137.889 +-10.2961 -44.7316 140.281 +-11.4001 -44.0061 138.006 +-12.9252 -44.8822 140.753 +-14.0222 -44.2412 138.743 +-15.4389 -44.6255 139.948 +-16.5163 -44.0395 138.11 +-18.0245 -44.5973 139.86 +-19.1221 -44.1261 138.382 +-20.709 -44.7656 140.388 +-21.6541 -44.0179 138.043 +-23.387 -44.8588 140.68 +-24.229 -43.9863 137.944 +-26.082 -44.9375 140.927 +-26.8615 -44.0304 138.082 +-28.7168 -44.8819 140.752 +-29.5663 -44.1492 138.454 +-31.4155 -44.9011 140.812 +-32.2928 -44.2525 138.778 +-34.305 -45.142 141.568 +-35.1335 -44.4587 139.425 +-36.8205 -44.8649 140.699 +-37.6321 -44.2069 138.635 +-39.7805 -45.1031 141.446 +-40.5935 -44.4688 139.457 +-42.6135 -45.1481 141.587 +-43.2271 -44.3342 139.035 +-45.5515 -45.2638 141.95 +-46.2185 -44.5329 139.658 +-48.423 -45.2757 141.987 +-48.8649 -44.3676 139.139 +-51.2444 -45.2131 141.791 +-51.9737 -44.5885 139.832 +-54.2786 -45.3054 142.081 +-54.7374 -44.477 139.482 +-57.5897 -45.5779 142.935 +-58.2004 -44.8865 140.767 +-60.6863 -45.632 143.105 +-61.5738 -45.1605 141.626 +-64.8223 -46.3939 145.494 +-65.5145 -45.7745 143.552 +-69.2266 -47.2364 148.136 +-69.3782 -46.2496 145.042 +-73.113 -47.6332 149.38 +-73.5743 -46.8618 146.961 +-77.3725 -48.194 151.139 +-77.3261 -47.117 147.762 +-80.3563 -47.9117 150.254 +-80.2519 -46.8345 146.876 +-83.3312 -47.6125 149.316 +-83.2165 -46.5623 146.022 +-86.3446 -47.323 148.408 +-85.9279 -46.1403 144.699 +-88.6 -46.6212 146.207 +-88.667 -45.7301 143.412 +-92.8614 -46.9514 147.242 +-92.9002 -46.0558 144.434 +-96.6573 -46.993 147.373 +-96.7677 -46.1457 144.716 +-100.813 -47.1613 147.901 +-100.397 -46.0816 144.515 +-104.513 -47.0729 147.624 +-104.842 -46.3435 145.336 +-108.234 -46.9596 147.268 +-107.837 -45.9288 144.036 +-112.796 -47.165 147.912 +-106.116 -43.5674 136.63 +-110.373 -44.4976 139.547 +-116.821 -46.2521 145.049 +-101.276 -39.381 123.501 +-101.283 -38.6829 121.312 +-97.1041 -36.4299 114.246 +-97.5108 -35.9365 112.699 +-97.1252 -35.1646 110.278 +-97.0925 -34.5363 108.308 +-96.7687 -33.819 106.059 +-97.2064 -33.3791 104.679 +-97.2247 -32.8041 102.875 +-96.9472 -32.1418 100.798 +-97.253 -31.6836 99.3618 +-96.9203 -31.028 97.3058 +-97.1827 -30.5732 95.8795 +-97.3563 -30.0976 94.388 +-96.9443 -29.4517 92.3623 +-97.1447 -29.0019 90.9518 +-97.1109 -28.4901 89.3465 +-97.2002 -28.0224 87.8799 +-97.3432 -27.5772 86.4836 +-96.952 -26.9896 84.6411 +-97.2033 -26.5893 83.3856 +-97.4391 -26.1897 82.1324 +-97.8104 -25.8307 81.0066 +-97.9403 -25.4126 79.6953 +-97.9771 -24.9762 78.3268 +-97.6105 -24.445 76.6608 +-97.6872 -24.0323 75.3667 +-97.7478 -23.6211 74.0772 +-97.9497 -23.2488 72.9097 +-97.9791 -22.8403 71.6286 +-97.9926 -22.4334 70.3526 +-97.8294 -21.9921 68.9684 +-97.8102 -21.589 67.7045 +-98.508 -21.3466 66.9441 +-98.3802 -20.9277 65.6306 +-98.4007 -20.5457 64.4325 +-98.241 -20.1311 63.1325 +-98.3985 -19.7861 62.0503 +-97.8729 -19.3094 60.5553 +-99.6889 -19.294 60.5071 +-101.681 -19.3026 60.5343 +-103.425 -19.2546 60.3835 +-105.346 -19.23 60.3065 +-107.962 -19.3201 60.5888 +-109.899 -19.2761 60.4511 +-111.841 -19.2234 60.2857 +-113.788 -19.1618 60.0926 +-116.795 -19.2653 60.4172 +-118.845 -19.1974 60.2042 +-120.988 -19.1341 60.0057 +-161.718 -25.0329 78.5048 +-162.789 -24.6575 77.3273 +-164.21 -24.3315 76.305 +-163.368 -23.6729 74.2396 +-163.135 -23.1105 72.4758 +-163.429 -22.6267 70.9587 +-164.347 -22.2296 69.7135 +-164.704 -21.7567 68.2305 +-163.574 -21.0937 66.1512 +-164.173 -20.6593 64.7887 +-163.184 -20.0298 62.8146 +-163.474 -19.563 61.3508 +-118.565 -13.8268 43.3616 +-111.651 -12.6821 39.7717 +-110.508 -12.2193 38.3206 +-108.969 -11.7231 36.7643 +-108.829 -11.3843 35.7018 +-108.393 -11.0182 34.5537 +-108.516 -10.7116 33.5923 +-108.438 -10.387 32.5742 +-108.349 -10.0636 31.56 +-108.347 -9.75008 30.5768 +-110.353 -9.61321 30.1476 +-109.372 -9.21475 28.898 +-109.15 -8.88513 27.8643 +-109.691 -8.61824 27.0273 +-110.226 -8.34913 26.1834 +-111.142 -8.10624 25.4217 +-111.663 -7.83179 24.561 +-113.543 -7.64723 23.9822 +-114.737 -7.40908 23.2353 +-116.807 -7.21972 22.6415 +-127.219 -7.51262 23.56 +-159.484 -8.97991 28.1615 +-158.456 -8.48818 26.6194 +-162.836 -8.27838 25.9615 +-3236.16 -155.715 488.332 +-841.652 -38.2138 119.841 +-852.72 -36.408 114.178 +-3248.47 -129.926 407.456 +-381.435 -14.2283 44.6208 +-379.246 -13.1271 41.1674 +-897.954 -28.6723 89.918 +-403.335 -11.7986 37.0011 +-402.562 -10.6997 33.555 +-403.652 -9.65116 30.2666 +-404.313 -8.58913 26.936 +-143.332 -2.66329 8.35222 +-401.05 -6.3853 20.0247 +-402.716 -5.34172 16.752 +-402.555 -4.27067 13.3931 +-145.25 -1.15551 3.62374 +-144.778 -0.767737 2.40767 +-146.594 -0.388655 1.21884 +119.8 1.77636e-15 -1.13687e-13 +118.995 -0.306544 0.992184 +119.082 -0.613578 1.98595 +119.959 -0.927263 3.00125 +119.727 -1.23418 3.99465 +119.686 -1.54255 4.99274 +120.135 -1.85853 6.01546 +119.577 -2.15892 6.98771 +119.508 -2.46686 7.98443 +120.129 -2.79083 9.03302 +119.643 -3.08988 10.001 +120.542 -3.42625 11.0897 +119.641 -3.71197 12.0144 +120.322 -4.04675 13.098 +120.098 -4.35295 14.0891 +120.758 -4.69298 15.1897 +120.12 -4.98333 16.1294 +120.165 -5.30128 17.1585 +120.597 -5.63833 18.2494 +120.228 -5.93904 19.2227 +120.048 -6.24852 20.2244 +120.35 -6.58442 21.3116 +120.151 -6.89419 22.3143 +120.727 -7.25051 23.4676 +120.508 -7.56123 24.4733 +120.182 -7.86498 25.4564 +120.919 -8.24067 26.6724 +120.574 -8.54496 27.6573 +120.123 -8.84095 28.6153 +120.631 -9.20917 29.8071 +121.127 -9.58069 31.0096 +120.743 -9.88448 31.9928 +121.023 -10.2439 33.1563 +121.003 -10.5804 34.2455 +120.399 -10.8659 35.1693 +120.836 -11.2466 36.4016 +120.404 -11.5484 37.3783 +121.48 -11.9985 38.8354 +121.121 -12.311 39.8468 +121.506 -12.7014 41.1103 +121.126 -13.0139 42.1218 +121.674 -13.4288 43.4647 +119.032 -13.4878 43.6558 +115.93 -13.4802 43.6311 +112.56 -13.4245 43.4507 +109.849 -13.4315 43.4735 +106.41 -13.3333 43.1557 +103.903 -13.3362 43.1651 +101.404 -13.3272 43.1359 +98.8218 -13.2941 43.0288 +95.7967 -13.1864 42.6802 +96.8474 -13.636 44.1353 +96.8001 -13.9367 45.1087 +97.0109 -14.2777 46.2124 +98.1889 -14.7684 47.8004 +96.5068 -14.8299 47.9995 +96.3296 -15.1195 48.9369 +96.6699 -15.4938 50.1486 +96.9953 -15.8711 51.3695 +96.5224 -16.1203 52.1763 +96.8216 -16.5012 53.409 +96.9333 -16.8549 54.5537 +96.4313 -17.1039 55.3598 +96.6041 -17.4751 56.5611 +96.0838 -17.7232 57.3644 +96.3153 -18.1128 58.6253 +96.4471 -18.4889 59.8424 +96.564 -18.8669 61.0662 +96.0026 -19.115 61.8689 +96.1755 -19.512 63.1541 +96.2504 -19.8945 64.3919 +95.6586 -20.1417 65.192 +96.4348 -20.6823 66.9418 +96.4628 -21.0704 68.1979 +95.8363 -21.3181 68.9996 +96.7098 -21.9055 70.9012 +95.8221 -22.0993 71.5283 +96.6521 -22.6945 73.4547 +95.8221 -22.9054 74.1374 +96.4531 -23.4706 75.9667 +95.7556 -23.7182 76.768 +95.7351 -24.1365 78.1219 +96.3009 -24.7114 79.9827 +96.4655 -25.1932 81.5424 +96.1629 -25.5593 82.7271 +96.0672 -25.9855 84.1067 +95.9536 -26.4132 85.4909 +95.967 -26.8829 87.0111 +96.2477 -27.4366 88.8035 +96.0748 -27.8697 90.2053 +95.8837 -28.304 91.611 +95.604 -28.7184 92.9521 +96.0713 -29.367 95.0515 +95.819 -29.806 96.4725 +96.1618 -30.4404 98.5257 +95.7987 -30.8611 99.8872 +96.0872 -31.5016 101.961 +95.8149 -31.9689 103.473 +95.4566 -32.4149 104.917 +94.2999 -32.5924 105.491 +94.5541 -33.2636 107.664 +94.5848 -33.8705 109.628 +94.7757 -34.5486 111.823 +94.56 -35.0917 113.581 +94.6272 -35.7527 115.72 +94.5406 -36.3699 117.718 +94.5451 -37.0365 119.875 +94.5173 -37.7057 122.041 +94.5159 -38.4014 124.293 +94.9449 -39.2923 127.176 +94.3533 -39.7773 128.746 +94.7031 -40.6756 131.654 +94.1681 -41.2116 133.389 +94.4364 -42.1173 136.32 +94.1681 -42.8045 138.544 +93.2215 -43.1947 139.807 +92.8948 -43.884 142.038 +90.34 -43.5174 140.852 +89.6681 -44.0523 142.583 +87.2966 -43.7473 141.596 +87.25 -44.6096 144.387 +84.7461 -44.2161 143.113 +84.4054 -44.9491 145.486 +82.1667 -44.6719 144.588 +82.1106 -45.5858 147.546 +79.7902 -45.2454 146.445 +79.0851 -45.8175 148.296 +76.1213 -45.0686 145.872 +76.0136 -46.0058 148.906 +71.7231 -44.3882 143.67 +70.8731 -44.8655 145.215 +69.0879 -44.751 144.844 +68.9012 -45.6823 147.859 +66.1923 -44.9375 145.448 +65.5256 -45.5684 147.49 +63.181 -45.0264 145.736 +62.8964 -45.9536 148.737 +60.1429 -45.0704 145.878 +59.4174 -45.692 147.89 +56.3484 -44.4886 143.995 +55.1678 -44.7427 144.818 +52.5412 -43.7981 141.76 +51.7653 -44.3782 143.638 +49.3091 -43.502 140.802 +48.8556 -44.3855 143.662 +46.6695 -43.6933 141.421 +46.0193 -44.4328 143.814 +43.4259 -43.2762 140.071 +43.1648 -44.4363 143.826 +40.9142 -43.5501 140.958 +40.117 -44.1957 143.047 +38.233 -43.6399 141.248 +37.3044 -44.1665 142.953 +35.4837 -43.6293 141.214 +34.62 -44.2657 143.274 +32.769 -43.6325 141.224 +31.8729 -44.2639 143.268 +30.0049 -43.5345 140.907 +29.251 -44.4213 143.777 +27.5722 -43.9144 142.137 +26.6203 -44.5653 144.243 +24.8067 -43.7588 141.633 +23.8093 -44.3749 143.627 +22.1566 -43.763 141.647 +21.1961 -44.5201 144.097 +19.5006 -43.7243 141.521 +18.6094 -44.7398 144.808 +16.9465 -43.9061 142.11 +15.8779 -44.5939 144.336 +14.3194 -43.8985 142.085 +13.2477 -44.6984 144.674 +11.6747 -43.789 141.731 +10.5542 -44.5535 144.205 +9.14507 -44.1373 142.858 +7.90796 -44.5423 144.169 +6.50801 -44.0006 142.416 +5.27331 -44.5762 144.279 +3.88204 -43.7618 141.643 +2.63706 -44.5966 144.345 +1.29415 -43.7751 141.686 +6.32827e-15 -44.6624 144.558 +-1.30811 -44.2474 143.214 +-2.64928 -44.8032 145.014 +-3.91084 -44.0865 142.694 +-5.32217 -44.9892 145.615 +-6.52982 -44.1482 142.893 +-7.96553 -44.8664 145.218 +-9.18781 -44.3433 143.525 +-10.603 -44.7598 144.873 +-11.7846 -44.201 143.064 +-13.2738 -44.7864 144.959 +-14.4631 -44.3392 143.512 +-15.9929 -44.9169 145.381 +-17.139 -44.4047 143.724 +-18.646 -44.8277 145.093 +-19.6703 -44.1048 142.753 +-21.4187 -44.9877 145.611 +-22.3783 -44.201 143.064 +-24.1691 -45.0456 145.798 +-25.1368 -44.341 143.517 +-26.9155 -45.0595 145.843 +-27.9003 -44.4369 143.828 +-29.5754 -44.9139 145.372 +-30.6429 -44.4599 143.902 +-32.6006 -45.2746 146.539 +-33.4399 -44.526 144.116 +-35.3848 -45.2434 146.438 +-36.2074 -44.5193 144.094 +-38.2479 -45.2835 146.568 +-38.9341 -44.4401 143.838 +-40.9969 -45.1651 146.185 +-41.8763 -44.5742 144.272 +-43.909 -45.2023 146.305 +-44.704 -44.5497 144.193 +-47.0134 -45.3927 146.922 +-47.9024 -44.8475 145.157 +-50.0917 -45.5084 147.296 +-50.6418 -44.6778 144.607 +-53.1978 -45.6064 147.613 +-53.576 -44.6607 144.552 +-56.4675 -45.7968 148.23 +-56.8737 -44.9033 145.337 +-59.9908 -46.1328 149.317 +-60.2895 -45.1802 146.234 +-63.2336 -46.2001 149.535 +-64.3674 -45.8718 148.472 +-68.4561 -47.6061 154.085 +-68.6646 -46.616 150.881 +-72.6432 -48.1631 155.888 +-72.9031 -47.222 152.842 +-76.2403 -48.2632 156.212 +-76.8462 -47.5585 153.932 +-80.1781 -48.5262 157.064 +-80.4048 -47.6046 154.081 +-83.4435 -48.3426 156.469 +-83.2533 -47.2093 152.801 +-85.9133 -47.6967 154.379 +-86.0317 -46.7733 151.39 +-88.4293 -47.0921 152.422 +-88.4885 -46.1688 149.433 +-91.95 -47.0127 152.165 +-92.1182 -46.1638 149.417 +-96.2606 -47.2911 153.066 +-96.2442 -46.3615 150.057 +-99.3599 -46.9381 151.923 +-100.099 -46.3816 150.122 +-103.754 -47.1618 152.647 +-104.316 -46.5233 150.581 +-107.701 -47.1341 152.558 +-108.354 -46.5384 150.63 +-112.765 -47.5391 153.869 +-112.656 -46.6219 150.9 +-116.264 -47.2377 152.893 +-106.295 -42.4039 137.248 +-103.271 -40.4548 130.939 +-101.846 -39.1801 126.813 +-97.2129 -36.7298 118.882 +-96.801 -35.9236 116.273 +-96.7895 -35.2827 114.199 +-96.6839 -34.6221 112.06 +-97.1252 -34.1681 110.591 +-97.0275 -33.5352 108.543 +-96.8999 -32.9053 106.504 +-97.1401 -32.4111 104.904 +-97.2916 -31.8963 103.238 +-96.8796 -31.2094 101.015 +-97.3894 -30.8289 99.7831 +-96.9203 -30.1488 97.5818 +-97.8079 -29.8978 96.7696 +-97.3563 -29.2447 94.6557 +-97.3686 -28.7424 93.0297 +-97.5727 -28.3042 91.6116 +-97.7583 -27.8673 90.1973 +-97.2002 -27.2283 88.1291 +-97.5626 -26.8561 86.9244 +-97.6892 -26.4242 85.5267 +-97.352 -25.8753 83.75 +-97.514 -25.4671 82.4286 +-97.7349 -25.0793 81.1736 +-97.9403 -24.6924 79.9214 +-98.1303 -24.3064 78.6718 +-97.5333 -23.7335 76.8175 +-97.6872 -23.3513 75.5805 +-97.826 -22.9701 74.3468 +-97.9497 -22.59 73.1165 +-97.9791 -22.1931 71.8318 +-97.753 -21.7444 70.3797 +-97.6686 -21.3338 69.0505 +-97.8911 -20.9946 67.9527 +-98.2637 -20.6902 66.9674 +-98.4621 -20.3516 65.8716 +-98.4007 -19.9635 64.6152 +-97.9922 -19.5111 63.1512 +-98.3151 -19.2091 62.1736 +-98.2922 -18.8426 60.9872 +-99.6889 -18.7472 60.6787 +-101.596 -18.74 60.6553 +-103.511 -18.7244 60.6047 +-105.346 -18.6851 60.4775 +-107.273 -18.6527 60.3727 +-109.206 -18.6118 60.2404 +-111.928 -18.6932 60.5038 +-113.701 -18.6045 60.2168 +-116.795 -18.7194 60.5885 +-118.845 -18.6534 60.375 +-120.988 -18.5919 60.1759 +-160.559 -24.1493 78.1635 +-163.594 -24.0773 77.9303 +-163.76 -23.5773 76.312 +-163.639 -23.0402 74.5736 +-163.498 -22.5055 72.8429 +-163.793 -22.0345 71.3185 +-164.073 -21.5637 69.7947 +-164.062 -21.0578 68.1573 +-163.574 -20.496 66.3388 +-164.173 -20.0738 64.9725 +-163.648 -19.5175 63.1718 +-165.335 -19.225 62.2251 +-121.739 -13.7946 44.6488 +-112.12 -12.3744 40.0518 +-110.32 -11.8529 38.3639 +-108.969 -11.3909 36.8685 +-108.829 -11.0617 35.803 +-108.488 -10.7154 34.6821 +-107.66 -10.326 33.4219 +-108.533 -10.1015 32.6954 +-108.445 -9.78706 31.6776 +-108.443 -9.48216 30.6907 +-109.872 -9.30009 30.1014 +-109.854 -8.99306 29.1076 +-109.343 -8.6486 27.9927 +-109.691 -8.37401 27.104 +-110.226 -8.11253 26.2576 +-110.267 -7.81451 25.293 +-111.76 -7.61649 24.6521 +-112.762 -7.37942 23.8848 +-114.248 -7.16845 23.202 +-117.101 -7.03278 22.7628 +-125.55 -7.20399 23.317 +-159.091 -8.70392 28.1718 +-159.145 -8.28351 26.811 +-162.54 -8.02914 25.9877 +-830.843 -38.8451 125.729 +-842.048 -37.1483 120.237 +-850.937 -35.3022 114.262 +-862.557 -33.5213 108.498 +-381.138 -13.8143 44.7124 +-379.942 -12.7785 41.3599 +-897.457 -27.8443 90.1231 +-404.33 -11.4925 37.1976 +-402.164 -10.3862 33.6169 +-403.652 -9.37766 30.3525 +-402.916 -8.31689 26.9191 +-144.131 -2.60223 8.42258 +-401.948 -6.21826 20.1265 +-403.116 -5.19548 16.8161 +-402.854 -4.15275 13.4411 +-146.15 -1.12972 3.65653 +-144.978 -0.747011 2.41783 +-145.094 -0.373777 1.20979 +118.9 5.32907e-15 2.84217e-14 +118.995 -0.297579 0.99491 +119.282 -0.596634 1.99475 +119.059 -0.893393 2.98692 +119.727 -1.19809 4.00562 +119.686 -1.49744 5.00645 +120.135 -1.80417 6.03198 +119.676 -2.09752 7.01275 +120.406 -2.41271 8.06652 +120.129 -2.70921 9.05783 +120.54 -3.02198 10.1035 +119.647 -3.30135 11.0376 +120.536 -3.63035 12.1375 +120.322 -3.9284 13.134 +120.098 -4.22564 14.1278 +120.659 -4.55197 15.2188 +120.219 -4.84157 16.187 +120.165 -5.14624 17.2057 +120.696 -5.47793 18.3146 +120.327 -5.77007 19.2914 +120.048 -6.06577 20.28 +120.35 -6.39185 21.3702 +120.053 -6.68709 22.3573 +119.845 -6.98706 23.3602 +120.606 -7.34606 24.5604 +121.061 -7.69079 25.713 +120.822 -7.99322 26.7241 +120.574 -8.29505 27.7332 +120.123 -8.58238 28.6939 +120.728 -8.94703 29.913 +121.127 -9.3005 31.0948 +120.743 -9.59539 32.0807 +120.35 -9.88906 33.0626 +121.003 -10.271 34.3396 +121.355 -10.6319 35.546 +121.027 -10.9349 36.5593 +121.26 -11.2903 37.7474 +121.48 -11.6476 38.9421 +121.215 -11.9603 39.9874 +121.506 -12.3299 41.2232 +121.22 -12.6431 42.2703 +121.767 -13.0461 43.6177 +118.565 -13.042 43.604 +115.744 -13.065 43.6808 +112.653 -13.0426 43.6059 +109.018 -12.94 43.2629 +105.582 -12.8426 42.9374 +103.903 -12.9462 43.2837 +100.764 -12.8559 42.9817 +98.0938 -12.8103 42.8291 +96.703 -12.9219 43.2023 +97.0279 -13.2619 44.3391 +96.8001 -13.5291 45.2326 +97.0109 -13.8602 46.3394 +97.387 -14.2194 47.5402 +96.5068 -14.3962 48.1314 +97.2125 -14.8118 49.5211 +96.6699 -15.0407 50.2863 +96.2082 -15.2819 51.0926 +96.5224 -15.6489 52.3196 +96.8216 -16.0186 53.5557 +96.9333 -16.3619 54.7036 +96.4313 -16.6037 55.5119 +96.6894 -16.9789 56.7665 +96.1687 -17.2201 57.5727 +96.3153 -17.5831 58.7864 +96.4471 -17.9481 60.0068 +96.564 -18.3152 61.2339 +96.0026 -18.5559 62.0389 +96.1755 -18.9414 63.3276 +96.2504 -19.3126 64.5688 +96.4727 -19.719 65.9275 +95.7876 -19.9427 66.6752 +95.9001 -20.3348 67.9864 +95.9161 -20.7118 69.2469 +95.9958 -21.1079 70.571 +95.8221 -21.453 71.7248 +95.9478 -21.8702 73.1196 +95.8221 -22.2355 74.3411 +95.8358 -22.6383 75.6878 +95.7556 -23.0245 76.9789 +95.7351 -23.4306 78.3365 +95.6972 -23.8383 79.6996 +96.4655 -24.4564 81.7664 +96.3116 -24.8501 83.0825 +96.0672 -25.2255 84.3377 +95.9536 -25.6407 85.7257 +95.822 -26.0572 87.1182 +95.6722 -26.475 88.515 +96.0035 -27.0346 90.386 +95.8837 -27.4762 91.8626 +95.604 -27.8785 93.2074 +96.1407 -28.5287 95.3815 +95.8878 -28.9553 96.8075 +95.6162 -29.3825 98.2359 +95.8663 -29.9797 100.233 +96.1541 -30.6015 102.312 +95.5498 -30.948 103.47 +95.8502 -31.5967 105.639 +95.4689 -32.0315 107.092 +94.9397 -32.4226 108.4 +95.0301 -33.0347 110.446 +95.0274 -33.6273 112.428 +94.6845 -34.1104 114.043 +95.0581 -34.8652 116.567 +94.5406 -35.3062 118.041 +94.6053 -35.9762 120.281 +94.5768 -36.6258 122.453 +94.5159 -37.2783 124.634 +94.4223 -37.9331 126.824 +94.5254 -38.6842 129.335 +94.5898 -39.4387 131.857 +94.0003 -39.935 133.517 +94.326 -40.8377 136.535 +94.3315 -41.6248 139.166 +94.2424 -42.3908 141.727 +93.8487 -43.0379 143.891 +93.2137 -43.5886 145.732 +92.0373 -43.8938 146.752 +89.7835 -43.6777 146.03 +89.2 -44.2729 148.02 +86.2234 -43.6712 146.008 +86.1022 -44.5116 148.818 +83.9322 -44.2973 148.101 +83.6129 -45.0621 150.658 +81.9142 -45.0916 150.757 +81.0373 -45.5756 152.375 +78.6201 -45.1865 151.074 +77.9862 -45.8192 153.189 +75.4255 -45.3143 151.501 +74.4653 -45.7607 152.994 +70.954 -44.6154 149.165 +69.5113 -44.7389 149.578 +67.9468 -44.7796 149.714 +67.7528 -45.7392 152.922 +65.4389 -45.2713 151.358 +64.8069 -45.9648 153.676 +62.4885 -45.4584 151.983 +61.711 -46.0679 154.021 +59.4302 -45.5493 152.287 +58.4512 -46.0192 153.858 +54.6776 -44.246 147.93 +53.3932 -44.4351 148.562 +50.9274 -43.6158 145.823 +50.2153 -44.2867 148.066 +47.8724 -43.5087 145.465 +47.1011 -44.1474 147.6 +44.988 -43.5216 145.508 +44.0468 -44.0182 147.168 +42.4375 -43.8505 146.608 +41.4369 -44.3148 148.16 +39.3097 -43.5565 145.625 +38.4172 -44.1537 147.621 +36.5809 -43.6628 145.98 +35.5648 -44.1437 147.588 +33.9161 -43.8394 146.57 +32.954 -44.4268 148.534 +31.1014 -43.8055 146.457 +30.0333 -44.2755 148.028 +28.3923 -43.8981 146.767 +27.1586 -44.1368 147.565 +25.6484 -43.9205 146.841 +24.5289 -44.3792 148.375 +22.8366 -43.7869 146.395 +21.711 -44.2681 148.003 +20.1663 -43.8944 146.754 +19.0116 -44.3698 148.344 +17.422 -43.8179 146.498 +16.4005 -44.7145 149.496 +14.6932 -43.727 146.195 +13.5701 -44.4474 148.603 +12.0435 -43.8511 146.609 +10.882 -44.5942 149.094 +9.44421 -44.2477 147.935 +8.20104 -44.842 149.922 +6.71302 -44.0594 147.306 +5.47922 -44.9621 150.324 +4.02863 -44.0861 147.395 +2.71734 -44.6102 149.147 +1.34301 -44.0996 147.44 +4.77396e-15 -44.703 149.458 +-1.34476 -44.1569 147.632 +-2.73654 -44.9254 150.201 +-4.03387 -44.1434 147.587 +-5.44781 -44.7045 149.463 +-6.73483 -44.2024 147.784 +-8.20628 -44.8707 150.018 +-9.49915 -44.5053 148.797 +-10.9518 -44.8801 150.05 +-12.1925 -44.3939 148.424 +-13.6835 -44.8185 149.844 +-14.9519 -44.4973 148.77 +-16.505 -44.9996 150.449 +-17.6257 -44.3302 148.211 +-19.2432 -44.9102 150.15 +-20.4012 -44.4059 148.464 +-22.0033 -44.8638 149.995 +-23.1617 -44.4105 148.48 +-24.7949 -44.8604 149.984 +-25.863 -44.2878 148.07 +-27.8011 -45.181 151.056 +-28.7203 -44.4053 148.462 +-30.663 -45.2037 151.132 +-31.5599 -44.4515 148.617 +-33.5777 -45.2679 151.346 +-34.652 -44.7904 149.75 +-36.4871 -45.2885 151.415 +-37.1878 -44.3875 148.403 +-39.4575 -45.3492 151.618 +-40.4113 -44.7773 149.706 +-42.291 -45.228 151.213 +-43.3193 -44.7615 149.653 +-45.5353 -45.5054 152.14 +-46.4081 -44.8953 150.101 +-48.5922 -45.545 152.273 +-49.3158 -44.8205 149.851 +-51.6367 -45.5404 152.257 +-52.4187 -44.893 150.093 +-54.7931 -45.6003 152.458 +-55.7791 -45.1372 150.909 +-58.3144 -45.9118 153.499 +-58.9399 -45.1736 151.031 +-61.8543 -46.1748 154.378 +-62.7817 -45.6719 152.697 +-66.6051 -47.2399 157.94 +-67.9646 -47.0187 157.2 +-71.1131 -48.0076 160.506 +-71.9742 -47.4337 158.587 +-74.7989 -48.142 160.956 +-75.4742 -47.4577 158.668 +-78.5225 -48.2541 161.33 +-79.5154 -47.7715 159.717 +-82.0631 -48.2145 161.198 +-82.7251 -47.546 158.963 +-84.987 -47.7967 159.801 +-86.0238 -47.3537 158.32 +-87.7442 -47.2887 158.102 +-88.1789 -46.5385 155.594 +-89.9807 -46.5167 155.521 +-91.64 -46.4147 155.18 +-94.95 -47.1268 157.561 +-95.5187 -46.468 155.359 +-99.3508 -47.3818 158.414 +-99.536 -46.545 155.616 +-102.963 -47.2179 157.866 +-103.269 -46.4511 155.302 +-107.13 -47.2726 158.049 +-107.738 -46.6445 155.949 +-111.503 -47.3709 158.377 +-112.205 -46.7832 156.412 +-111.79 -45.7498 152.958 +-115.037 -46.2149 154.513 +-109.446 -43.1668 144.322 +-105.343 -40.7953 136.393 +-97.0126 -36.8915 123.341 +-97.1583 -36.2837 121.309 +-96.9667 -35.5653 118.907 +-96.8633 -34.8953 116.667 +-97.2929 -34.4291 115.108 +-96.6839 -33.6095 112.368 +-97.1895 -33.1909 110.969 +-97.0275 -32.5544 108.841 +-96.8999 -31.9429 106.796 +-96.7425 -31.3345 104.762 +-97.2916 -30.9635 103.522 +-96.9472 -30.3176 101.362 +-97.253 -29.8854 99.9173 +-96.9892 -29.2877 97.9188 +-97.53 -28.9409 96.7596 +-97.146 -28.3281 94.7107 +-97.2979 -27.8815 93.2175 +-96.9307 -27.2957 91.2589 +-97.4705 -26.9726 90.1788 +-97.4178 -26.4911 88.5691 +-97.0506 -25.9338 86.7058 +-97.0257 -25.4772 85.1792 +-97.2777 -25.0994 83.916 +-97.4391 -24.7033 82.5916 +-97.7349 -24.3459 81.3966 +-97.8642 -23.9517 80.0787 +-98.1303 -23.5955 78.888 +-98.305 -23.2216 77.638 +-97.6872 -22.6683 75.7881 +-97.7478 -22.2805 74.4914 +-97.9497 -21.9293 73.3174 +-98.4551 -21.6487 72.3791 +-97.753 -21.1085 70.573 +-98.5529 -20.8973 69.867 +-97.8102 -20.3637 68.083 +-98.4266 -20.1184 67.2627 +-98.0525 -19.6742 65.7778 +-98.1534 -19.3309 64.63 +-98.0751 -18.9565 63.3783 +-98.065 -18.5998 62.1858 +-98.3761 -18.3071 61.207 +-99.0142 -18.0758 60.4336 +-100.918 -18.0705 60.4158 +-102.743 -18.042 60.3207 +-105.346 -18.1386 60.6437 +-107.273 -18.1072 60.5386 +-109.206 -18.0675 60.4059 +-111.928 -18.1465 60.67 +-113.788 -18.0743 60.4286 +-116.795 -18.1719 60.755 +-118.05 -17.9868 60.136 +-120.19 -17.929 59.943 +-160.025 -23.365 78.1173 +-164.668 -23.5265 78.6573 +-163.76 -22.8877 76.5216 +-163.639 -22.3663 74.7784 +-163.77 -21.8836 73.1645 +-163.975 -21.4138 71.5938 +-163.981 -20.9214 69.9474 +-163.512 -20.3734 68.1154 +-164.31 -19.9861 66.8206 +-164.451 -19.5197 65.261 +-164.39 -19.0325 63.6323 +-164.498 -18.5682 62.08 +-124.54 -13.6993 45.8014 +-112.401 -12.0426 40.2625 +-110.32 -11.5062 38.4693 +-109.629 -11.1247 37.1936 +-108.829 -10.7382 35.9014 +-108.299 -10.3838 34.7166 +-108.42 -10.0948 33.7505 +-108.438 -9.79748 32.7564 +-108.349 -9.49243 31.7365 +-107.963 -9.16415 30.6389 +-109.488 -8.99652 30.0785 +-110.625 -8.79131 29.3924 +-109.343 -8.39566 28.0696 +-109.497 -8.11475 27.1304 +-110.226 -7.87527 26.3298 +-110.364 -7.59264 25.3848 +-110.786 -7.32927 24.5043 +-112.86 -7.1698 23.9711 +-114.15 -6.95284 23.2458 +-116.709 -6.80423 22.7489 +-124.568 -6.93863 23.1982 +-159.484 -8.47025 28.319 +-160.031 -8.08604 27.0344 +-160.666 -7.70448 25.7588 +-162.08 -7.3562 24.5943 +-841.949 -36.0576 120.553 +-3244.61 -130.671 436.878 +-862.557 -32.541 108.796 +-379.947 -13.3684 44.6952 +-379.544 -12.3918 41.4301 +-897.457 -27.03 90.3707 +-404.33 -11.1564 37.2998 +-402.762 -10.0975 33.7594 +-403.752 -9.10564 30.4433 +-402.717 -8.06967 26.9797 +-403.546 -7.0728 23.6468 +-402.248 -6.0409 20.1968 +-402.716 -5.03855 16.8456 +-402.555 -4.02829 13.468 +-150.248 -1.12743 3.7694 +-145.378 -0.727164 2.43116 +-145.894 -0.364846 1.21981 +118.9 5.32907e-15 2.84217e-14 +118.995 -0.288607 0.99755 +119.282 -0.578645 2.00005 +119.059 -0.866457 2.99485 +119.727 -1.16197 4.01625 +120.485 -1.46199 5.05326 +120.135 -1.74978 6.04799 +120.475 -2.04786 7.07827 +119.608 -2.32445 8.03431 +120.129 -2.62753 9.08186 +120.54 -2.93087 10.1303 +119.647 -3.20181 11.0668 +119.641 -3.49477 12.0794 +120.322 -3.80995 13.1688 +120.991 -4.12873 14.2706 +120.758 -4.41837 15.2718 +120.219 -4.6956 16.23 +120.363 -4.9993 17.2797 +120.597 -5.30841 18.3481 +120.228 -5.59152 19.3267 +120.147 -5.88773 20.3505 +120.547 -6.20928 21.4619 +120.053 -6.48547 22.4166 +120.629 -6.82073 23.5754 +120.606 -7.12457 24.6256 +120.28 -7.4108 25.6149 +120.822 -7.75222 26.795 +120.671 -8.05146 27.8293 +120.22 -8.33035 28.7933 +120.728 -8.67728 29.9924 +121.031 -9.01289 31.1524 +120.839 -9.31351 32.1915 +120.35 -9.5909 33.1503 +121.003 -9.96134 34.4307 +120.399 -10.2301 35.3595 +120.836 -10.5885 36.5985 +120.309 -10.864 37.5506 +121.291 -11.2788 38.9845 +121.31 -11.6088 40.1248 +121.601 -11.9675 41.3647 +121.22 -12.2619 42.3825 +121.674 -12.643 43.6997 +119.312 -12.7285 43.9951 +114.907 -12.5794 43.4798 +112.653 -12.6494 43.7216 +109.018 -12.5498 43.3776 +106.502 -12.564 43.4266 +103.261 -12.4783 43.1303 +100.673 -12.457 43.0566 +98.8218 -12.5162 43.2615 +96.1593 -12.4618 43.0733 +97.0279 -12.862 44.4567 +96.6204 -13.0969 45.2684 +96.9214 -13.4299 46.4195 +98.0107 -13.879 47.9716 +96.8616 -14.0134 48.4365 +96.4179 -14.2478 49.2466 +96.7578 -14.6005 50.4656 +96.2956 -14.8346 51.2747 +96.5224 -15.1771 52.4584 +96.8216 -15.5356 53.6978 +96.244 -15.7557 54.4586 +96.4313 -16.1031 55.6592 +96.6041 -16.4525 56.8669 +96.0838 -16.6862 57.6746 +96.3153 -17.053 58.9423 +96.4471 -17.407 60.166 +95.8969 -17.6403 60.9723 +95.9196 -17.9809 62.1498 +96.0931 -18.3546 63.4412 +96.3323 -18.7463 64.7953 +96.3913 -19.1083 66.0466 +96.4348 -19.4721 67.3038 +95.8197 -19.7052 68.1097 +95.9161 -20.0874 69.4306 +96.6304 -20.6068 71.2261 +95.9797 -20.8404 72.0334 +95.7912 -21.1762 73.194 +95.8221 -21.5651 74.5383 +95.9901 -21.9911 76.0108 +95.7556 -22.3303 77.1831 +96.3434 -22.8685 79.0435 +95.8481 -23.156 80.0371 +96.3157 -23.6822 81.8559 +96.1629 -24.0637 83.1744 +96.0672 -24.465 84.5615 +95.9536 -24.8676 85.9532 +95.967 -25.3098 87.4816 +95.6722 -25.6768 88.7499 +96.0748 -26.239 90.6931 +95.813 -26.6282 92.0384 +95.604 -27.0379 93.4547 +96.1407 -27.6686 95.6345 +95.8878 -28.0823 97.0643 +95.548 -28.4763 98.4264 +95.8663 -29.0758 100.498 +95.6188 -29.5135 102.011 +95.7486 -30.0774 103.96 +95.9158 -30.6652 105.992 +95.339 -31.0235 107.23 +95.1326 -31.509 108.909 +95.3481 -32.146 111.11 +95.0274 -32.6134 112.726 +94.6222 -33.06 114.27 +94.2578 -33.5292 115.891 +94.4798 -34.2195 118.277 +94.1239 -34.7139 119.986 +94.5768 -35.5216 122.778 +94.3983 -36.1094 124.809 +94.3642 -36.7669 127.082 +94.468 -37.4951 129.599 +94.5898 -38.2496 132.207 +94.4477 -38.9152 134.508 +94.2708 -39.5833 136.817 +94.6038 -40.4863 139.938 +94.1886 -41.0894 142.023 +94.2726 -41.929 144.925 +93.8407 -42.5587 147.101 +93.4279 -43.2135 149.364 +91.2554 -43.0554 148.818 +90.15 -43.3953 149.993 +88.5378 -43.4914 150.325 +87.6051 -43.9233 151.818 +85.4114 -43.7188 151.111 +84.5049 -44.1698 152.67 +83.2071 -44.4222 153.542 +81.8091 -44.6223 154.234 +80.1371 -44.6698 154.398 +79.126 -45.0872 155.841 +77.0184 -44.8763 155.112 +75.6909 -45.1117 155.925 +71.4931 -43.599 150.697 +71.0976 -44.3802 153.397 +69.3425 -44.3216 153.194 +68.8078 -45.0508 155.715 +66.7783 -44.8051 154.866 +65.7809 -45.2487 156.399 +63.7712 -44.993 155.515 +62.6786 -45.3793 156.85 +60.9011 -45.2693 156.47 +59.8535 -45.7025 157.968 +56.4134 -44.274 153.03 +54.5978 -44.0676 152.316 +52.4187 -43.5395 150.491 +51.0805 -43.6915 151.017 +49.1353 -43.3099 149.698 +47.9197 -43.5604 150.563 +46.0389 -43.1954 149.302 +44.9565 -43.5726 150.606 +43.1056 -43.1979 149.311 +42.1616 -43.7302 151.15 +40.3362 -43.3466 149.825 +39.2639 -43.7663 151.275 +37.4446 -43.3464 149.824 +36.3071 -43.7063 151.068 +34.6303 -43.4128 150.053 +33.5569 -43.8758 151.654 +31.7792 -43.4108 150.046 +30.663 -43.8408 151.533 +28.939 -43.3944 149.99 +27.8011 -43.8188 151.457 +26.2096 -43.5281 150.452 +25.0452 -43.9469 151.899 +23.4574 -43.6212 150.774 +22.1564 -43.8141 151.44 +20.6101 -43.5078 150.382 +19.4016 -43.9147 151.788 +17.8182 -43.4631 150.227 +16.5991 -43.8916 151.708 +15.1053 -43.5982 150.694 +13.8403 -43.9656 151.964 +12.3573 -43.6371 150.828 +11.0704 -43.9981 152.076 +9.63346 -43.7738 151.301 +8.32142 -44.1284 152.527 +6.89623 -43.8972 151.728 +5.54902 -44.162 152.643 +4.12549 -43.7849 151.339 +2.76621 -44.0434 152.233 +1.3753 -43.7983 151.386 +7.32747e-15 -44.05 152.256 +-1.37007 -43.6315 150.809 +-2.7854 -44.3491 153.289 +-4.12025 -43.7293 151.147 +-5.556 -44.2176 152.835 +-6.88314 -43.8138 151.439 +-8.35282 -44.2949 153.102 +-9.67009 -43.9403 151.876 +-11.1401 -44.2754 153.035 +-12.4593 -43.9972 152.073 +-14.0059 -44.4914 153.781 +-15.2778 -44.0962 152.415 +-16.7664 -44.3338 153.237 +-18.0786 -44.0981 152.422 +-19.6697 -44.5217 153.886 +-20.8059 -43.9211 151.81 +-22.4625 -44.4194 153.532 +-23.753 -44.1709 152.674 +-25.1859 -44.194 152.753 +-26.5232 -44.0489 152.252 +-28.1831 -44.4208 153.537 +-29.4675 -44.1868 152.728 +-31.0255 -44.3594 153.325 +-32.2378 -44.0373 152.212 +-34.1599 -44.6642 154.379 +-35.4528 -44.4439 153.617 +-37.1394 -44.7082 154.531 +-38.3551 -44.4002 153.466 +-40.159 -44.764 154.724 +-41.3377 -44.4227 153.544 +-43.1451 -44.7504 154.677 +-44.5486 -44.644 154.309 +-46.3898 -44.9616 155.407 +-47.459 -44.5278 153.907 +-49.4693 -44.9691 155.433 +-50.4584 -44.4764 153.729 +-52.6874 -45.0658 155.767 +-53.6879 -44.5937 154.135 +-56.1931 -45.3554 156.768 +-57.0142 -44.7457 154.66 +-59.4773 -45.4155 156.975 +-60.5509 -45.0091 155.571 +-62.7861 -45.4571 157.119 +-64.7241 -45.6653 157.839 +-67.7663 -46.6147 161.12 +-68.9596 -46.2687 159.924 +-71.9336 -47.0974 162.789 +-72.373 -46.2584 159.889 +-75.6123 -47.1983 163.138 +-76.345 -46.558 160.924 +-79.9594 -47.6555 164.718 +-81.0652 -47.2342 163.261 +-82.9398 -47.2606 163.353 +-84.4206 -47.0577 162.652 +-86.349 -47.0985 162.793 +-86.9934 -46.4438 160.53 +-89.5282 -46.7953 161.745 +-89.7058 -45.9171 158.709 +-93.2289 -46.7428 161.563 +-94.6438 -46.4907 160.692 +-97.2 -46.7889 161.723 +-98.0564 -46.2642 159.909 +-100.999 -46.7156 161.469 +-101.992 -46.2553 159.878 +-105.136 -46.7606 161.625 +-105.848 -46.1756 159.603 +-109.527 -46.8729 162.013 +-110.443 -46.3737 160.287 +-113.852 -46.9104 162.142 +-105.635 -42.716 147.645 +-109.209 -43.3461 149.823 +-108.127 -42.1291 145.616 +-97.6899 -37.3686 129.162 +-96.8371 -36.3706 125.712 +-97.5542 -35.979 124.359 +-96.8539 -35.0797 121.25 +-96.9051 -34.471 119.147 +-96.801 -33.8215 116.902 +-97.3559 -33.4124 115.488 +-96.7475 -32.6176 112.74 +-97.1252 -32.1688 111.189 +-97.0275 -31.5729 109.129 +-96.8999 -30.9798 107.08 +-97.3389 -30.5771 105.688 +-97.2916 -30.0299 103.796 +-96.9472 -29.4035 101.631 +-97.253 -28.9844 100.182 +-96.8515 -28.3643 98.0393 +-97.1827 -27.9686 96.6714 +-97.2862 -27.5137 95.0991 +-96.9443 -26.9426 93.1252 +-97.2874 -26.5701 91.8377 +-97.3986 -26.1401 90.3513 +-97.4178 -25.6924 88.8041 +-96.9775 -25.133 86.8704 +-97.0994 -24.7278 85.47 +-97.4263 -24.3798 84.2671 +-97.514 -23.9769 82.8743 +-97.8858 -23.6483 81.7387 +-97.8642 -23.2295 80.2912 +-98.0537 -22.8662 79.0355 +-98.305 -22.5215 77.8439 +-97.765 -22.0024 76.0496 +-97.7478 -21.6087 74.689 +-97.9497 -21.2682 73.5119 +-97.8205 -20.8606 72.1033 +-97.753 -20.4721 70.7603 +-97.8294 -20.1185 69.5381 +-98.2956 -19.8478 68.6025 +-98.1009 -19.4472 67.218 +-98.0525 -19.0811 65.9523 +-98.1534 -18.7481 64.8014 +-98.158 -18.4005 63.6001 +-98.2317 -18.0697 62.4568 +-98.4599 -17.7703 61.4216 +-99.0142 -17.5308 60.594 +-101.681 -17.6582 61.0342 +-102.658 -17.4835 60.4305 +-105.346 -17.5917 60.8045 +-107.273 -17.5612 60.6992 +-109.206 -17.5227 60.5661 +-111.928 -17.5994 60.831 +-113.875 -17.5428 60.6355 +-116.707 -17.6108 60.8704 +-118.05 -17.4445 60.2955 +-120.545 -17.4398 60.2795 +-159.312 -22.5596 77.9756 +-164.131 -22.7428 78.6089 +-164.21 -22.2586 76.9352 +-164.451 -21.7997 75.349 +-163.498 -21.1886 73.2368 +-163.975 -20.7682 71.7838 +-164.164 -20.3132 70.2112 +-164.062 -19.8256 68.5259 +-164.402 -19.3944 67.0354 +-164.173 -18.8992 65.3238 +-164.019 -18.4171 63.6573 +-165.8 -18.151 62.7376 +-125.94 -13.4356 46.4393 +-111.932 -11.6308 40.2011 +-110.32 -11.1593 38.5714 +-109.723 -10.7985 37.3244 +-108.829 -10.4144 35.9966 +-108.488 -10.0883 34.8697 +-107.564 -9.71319 33.5729 +-107.865 -9.45194 32.67 +-108.445 -9.21438 31.8488 +-108.826 -8.95889 30.9658 +-110.257 -8.78655 30.3701 +-110.625 -8.52625 29.4704 +-109.343 -8.14253 28.1441 +-109.207 -7.84922 27.1303 +-109.546 -7.59078 26.237 +-110.461 -7.37023 25.4747 +-111.76 -7.17082 24.7854 +-112.86 -6.95363 24.0347 +-114.345 -6.75478 23.3474 +-117.003 -6.61571 22.8667 +-124.863 -6.74533 23.3147 +-158.501 -8.16424 28.2191 +-160.327 -7.85672 27.1562 +-162.441 -7.55474 26.1124 +-159.709 -7.03008 24.299 +-840.663 -34.9171 120.688 +-152.897 -5.97199 20.6418 +-863.747 -31.6032 109.234 +-379.649 -12.9552 44.7786 +-379.445 -12.015 41.5292 +-896.561 -26.1889 90.5201 +-403.633 -10.8014 37.3344 +-403.758 -9.81724 33.9326 +-403.652 -8.82894 30.5166 +-402.417 -7.82056 27.0312 +-402.248 -6.83751 23.6334 +-400.65 -5.83551 20.17 +-403.715 -4.89875 16.9322 +-401.655 -3.89811 13.4735 +-147.949 -1.07671 3.72157 +-145.378 -0.70524 2.43761 +-145.594 -0.353117 1.22053 +118.9 5.32907e-15 2.84217e-14 +119.895 -0.281708 1.00767 +119.282 -0.560575 2.00519 +119.059 -0.839399 3.00254 +119.727 -1.12568 4.02657 +119.686 -1.40694 5.03264 +120.435 -1.69936 6.07865 +119.676 -1.97076 7.04943 +119.508 -2.24999 8.04824 +120.129 -2.54547 9.1052 +120.54 -2.83934 10.1564 +119.746 -3.10438 11.1044 +119.641 -3.38563 12.1105 +120.322 -3.69097 13.2027 +120.098 -3.97026 14.2017 +120.758 -4.28039 15.311 +120.219 -4.54896 16.2717 +120.363 -4.84318 17.3241 +120.597 -5.14263 18.3953 +120.327 -5.42135 19.3923 +120.048 -5.69917 20.386 +119.564 -5.96629 21.3415 +120.053 -6.28294 22.4742 +119.845 -6.56478 23.4823 +120.606 -6.90208 24.6889 +120.28 -7.17937 25.6807 +119.945 -7.45564 26.6689 +120.671 -7.80002 27.9008 +120.996 -8.12233 29.0537 +120.728 -8.40629 30.0695 +121.127 -8.7384 31.2574 +120.839 -9.02266 32.2742 +120.35 -9.29139 33.2355 +121.099 -9.65791 34.5465 +120.686 -9.9342 35.5348 +121.027 -10.2741 36.7505 +120.404 -10.5331 37.677 +121.385 -10.9352 39.1152 +121.405 -11.255 40.2594 +121.695 -11.6027 41.5032 +121.314 -11.8882 42.5243 +120.924 -12.1728 43.5423 +118.938 -12.2924 43.9702 +114.907 -12.1865 43.5915 +111.911 -12.1737 43.5454 +109.018 -12.1579 43.4891 +105.766 -12.0875 43.2372 +103.261 -12.0886 43.2411 +100.673 -12.0679 43.1673 +98.8218 -12.1254 43.3727 +96.4311 -12.1068 43.3061 +97.0279 -12.4604 44.5709 +96.8001 -12.7115 45.4692 +97.0109 -13.0225 46.5817 +98.7235 -13.5433 48.4446 +97.1277 -13.6131 48.6944 +96.3296 -13.7902 49.3279 +96.7578 -14.1445 50.5953 +96.2082 -14.3583 51.3598 +96.5224 -14.7031 52.5932 +96.8216 -15.0505 53.8358 +96.3301 -15.2774 54.6475 +96.517 -15.6141 55.8518 +96.5189 -15.9246 56.9627 +96.1687 -16.1793 57.8738 +96.3153 -16.5204 59.0938 +96.4471 -16.8634 60.3207 +95.8969 -17.0894 61.129 +96.0026 -17.4345 62.3633 +96.8348 -17.9186 64.0951 +96.3323 -18.1609 64.9618 +96.3913 -18.5116 66.2163 +95.7876 -18.7374 67.0239 +95.8197 -19.0898 68.2847 +95.8363 -19.4439 69.551 +95.7577 -19.783 70.7642 +95.9797 -20.1896 72.2186 +95.7912 -20.5149 73.3821 +95.8221 -20.8917 74.7299 +95.8358 -21.2701 76.0837 +95.9088 -21.6676 77.5053 +95.7351 -22.0145 78.7462 +95.6217 -22.3799 80.0533 +96.3157 -22.9427 82.0663 +95.5684 -23.1681 82.8727 +96.0672 -23.701 84.7788 +95.9536 -24.091 86.1741 +95.822 -24.4824 87.5738 +95.8161 -24.9123 89.1117 +96.0748 -25.4195 90.9262 +95.9544 -25.8347 92.4111 +95.6741 -26.2128 93.7636 +96.1407 -26.8045 95.8803 +95.8878 -27.2053 97.3137 +95.6162 -27.6067 98.7497 +96.0014 -28.2074 100.898 +96.221 -28.772 102.918 +95.8149 -29.1583 104.3 +95.9158 -29.7076 106.265 +95.4689 -30.0956 107.652 +95.2611 -30.5662 109.336 +95.0937 -31.0589 111.098 +95.0903 -31.616 113.091 +94.9335 -32.1332 114.941 +94.8734 -32.6943 116.948 +94.845 -33.279 119.04 +94.5451 -33.7804 120.833 +94.6363 -34.4341 123.171 +94.5159 -35.0253 125.286 +94.3062 -35.5967 127.33 +93.8371 -36.0816 129.064 +94.5898 -37.0551 132.547 +94.5036 -37.7223 134.933 +94.2708 -38.3472 137.169 +94.6038 -39.222 140.298 +94.3498 -39.8743 142.631 +94.2196 -40.5967 145.215 +94.0497 -41.3215 147.808 +93.5309 -41.9103 149.914 +92.4227 -42.2444 151.109 +91.7 -42.763 152.964 +89.2271 -42.4612 151.884 +88.2838 -42.8812 153.387 +86.2226 -42.7557 152.938 +85.6316 -43.361 155.103 +83.6688 -43.2737 154.791 +83.0803 -43.9005 157.033 +81.6096 -44.0699 157.639 +80.6165 -44.502 159.184 +78.1808 -44.1307 157.856 +77.0856 -44.5082 159.207 +74.5204 -44.026 157.482 +71.9924 -43.5354 155.727 +69.7013 -43.1596 154.383 +69.5111 -44.0901 157.711 +67.8115 -44.0774 157.666 +66.7924 -44.5098 159.212 +64.8341 -44.3144 158.513 +64.0762 -44.9425 160.76 +61.6715 -44.4105 158.857 +60.9138 -45.0596 161.179 +58.3828 -44.3889 158.78 +55.607 -43.4808 155.532 +53.1485 -42.767 152.978 +51.9458 -43.0441 153.969 +49.9773 -42.6766 152.655 +48.8553 -43.0242 153.898 +46.8341 -42.5691 152.271 +45.8109 -43.0142 153.863 +43.5866 -42.3158 151.364 +42.731 -42.9367 153.585 +40.862 -42.5403 152.168 +39.7236 -42.896 153.44 +38.0983 -42.7258 152.831 +36.937 -43.0761 154.084 +35.1281 -42.6618 152.602 +34.1391 -43.243 154.681 +32.178 -42.5829 152.32 +31.14 -43.1327 154.286 +29.4675 -42.8069 153.121 +28.3047 -43.2194 154.596 +26.6387 -42.8591 153.308 +25.4988 -43.3456 155.048 +23.7234 -42.7382 152.875 +22.56 -43.2188 154.594 +21.0278 -43.0034 153.824 +19.755 -43.3184 154.951 +18.2031 -43.0153 153.866 +16.9023 -43.2974 154.876 +15.3737 -42.9873 153.766 +14.0669 -43.2899 154.849 +12.5848 -43.053 154.001 +11.2726 -43.403 155.253 +9.76777 -42.998 153.805 +8.42609 -43.288 154.842 +6.9791 -43.0373 153.945 +5.65023 -43.5632 155.826 +4.19878 -43.1712 154.424 +2.81682 -43.4485 155.416 +1.39974 -43.1844 154.471 +6.21725e-15 -43.2667 154.766 +-1.39363 -42.9959 153.797 +-2.8046 -43.2603 154.743 +-4.19093 -43.0904 154.135 +-5.62231 -43.3481 155.057 +-6.98346 -43.0643 154.042 +-8.48889 -43.6108 155.997 +-9.84713 -43.3472 155.054 +-11.3354 -43.6448 156.118 +-12.6084 -43.1335 154.289 +-14.189 -43.6652 156.191 +-15.4695 -43.2552 154.724 +-17.1427 -43.9135 157.079 +-18.4295 -43.5502 155.78 +-20.0231 -43.9062 157.053 +-21.2497 -43.4571 155.447 +-22.9357 -43.9388 157.17 +-23.9895 -43.2175 154.59 +-26.0307 -44.2497 158.282 +-26.9853 -43.417 155.303 +-28.7735 -43.9353 157.157 +-29.9231 -43.4687 155.488 +-31.846 -44.1105 157.784 +-32.9555 -43.6119 156.001 +-34.95 -44.2702 158.355 +-35.8208 -43.5029 155.611 +-37.8593 -44.1515 157.931 +-38.9854 -43.7207 156.39 +-40.788 -44.0454 157.551 +-42.0889 -43.8176 156.736 +-43.8698 -44.0809 157.678 +-45.2435 -43.9245 157.119 +-47.2442 -44.3599 158.676 +-48.595 -44.1698 157.996 +-50.2002 -44.2085 158.135 +-51.3606 -43.8577 156.88 +-53.7072 -44.5036 159.19 +-55.0524 -44.299 158.458 +-56.9093 -44.499 159.174 +-58.049 -44.135 157.872 +-60.5034 -44.7562 160.094 +-61.6015 -44.3601 158.677 +-64.1479 -44.9928 160.94 +-66.2634 -45.2912 162.007 +-68.8902 -45.9077 164.213 +-70.7964 -46.0178 164.607 +-72.3243 -45.8743 164.093 +-74.5262 -46.1473 165.07 +-75.287 -45.5275 162.853 +-77.7965 -45.9616 164.405 +-80.0016 -46.1918 165.229 +-82.2276 -46.4152 166.028 +-84.518 -46.6557 166.888 +-85.1345 -45.9734 164.448 +-87.1208 -46.0356 164.67 +-87.8246 -45.4231 162.479 +-90.7019 -45.9282 164.286 +-92.1871 -45.7133 163.517 +-95.3621 -46.3194 165.685 +-96.4165 -45.8827 164.123 +-99.4 -46.3538 165.808 +-99.8328 -45.6312 163.224 +-102.853 -46.0873 164.855 +-104.343 -45.8439 163.984 +-107.627 -46.3735 165.879 +-108.481 -45.8463 163.993 +-111.705 -46.3121 165.659 +-112.871 -45.9134 164.233 +-115.25 -46.0036 164.556 +-101.727 -39.8509 142.547 +-100.548 -38.6619 138.294 +-100.055 -37.7667 135.092 +-97.6899 -36.2016 129.494 +-96.7777 -35.2133 125.958 +-97.5542 -34.8554 124.679 +-97.5236 -34.219 122.402 +-96.9667 -33.4158 119.529 +-96.8633 -32.7863 117.277 +-96.9153 -32.2225 115.261 +-96.8111 -31.6197 113.104 +-97.2538 -31.2056 111.623 +-97.1574 -30.6278 109.556 +-96.8999 -30.0124 107.355 +-97.2064 -29.5819 105.815 +-97.2247 -29.0722 103.992 +-96.9472 -28.4852 101.892 +-97.0484 -28.0203 100.229 +-97.3333 -27.6153 98.7805 +-96.9048 -27.0176 96.6425 +-97.146 -26.616 95.2061 +-97.6514 -26.2916 94.0455 +-97.7866 -25.8725 92.5462 +-97.3267 -25.3051 90.5167 +-97.4178 -24.8901 89.0323 +-97.5626 -24.495 87.6191 +-97.0994 -23.9556 85.6896 +-97.352 -23.6005 84.4193 +-97.4391 -23.2103 83.0236 +-97.7349 -22.8745 81.8223 +-97.9403 -22.5216 80.56 +-98.1303 -22.1695 79.3005 +-98.305 -21.8182 78.044 +-97.6872 -21.2983 76.1845 +-97.7478 -20.9339 74.881 +-98.5013 -20.72 74.1159 +-97.9791 -20.2419 72.4058 +-97.753 -19.8328 70.9421 +-98.5529 -19.6344 70.2324 +-98.1338 -19.1963 68.6656 +-98.2637 -18.8712 67.5026 +-98.0525 -18.4852 66.1218 +-97.9886 -18.1321 64.8588 +-98.241 -17.841 63.8175 +-98.1484 -17.4906 62.5641 +-98.5438 -17.23 61.632 +-98.9298 -16.9689 60.6979 +-100.833 -16.9641 60.6807 +-102.743 -16.9516 60.6362 +-104.66 -16.9314 60.5639 +-107.273 -17.0128 60.8552 +-109.206 -16.9755 60.7218 +-111.144 -16.9304 60.5605 +-113.088 -16.8775 60.3711 +-115.652 -16.9066 60.4753 +-118.05 -16.8997 60.4505 +-120.633 -16.9076 60.4789 +-157.886 -21.6595 77.4765 +-164.936 -22.1407 79.1977 +-163.76 -21.5045 76.9218 +-163.639 -21.0146 75.1695 +-164.857 -20.6976 74.0356 +-163.793 -20.0973 71.8884 +-164.073 -19.6679 70.3524 +-165.713 -19.3998 69.3933 +-164.402 -18.7888 67.2077 +-164.173 -18.309 65.4917 +-165.224 -17.973 64.2899 +-164.219 -17.4164 62.2988 +-128.461 -13.2766 47.4905 +-112.494 -11.3242 40.5068 +-110.132 -10.7924 38.6046 +-109.629 -10.4523 37.3881 +-108.829 -10.0892 36.0892 +-108.678 -9.79037 35.0203 +-108.42 -9.48473 33.9271 +-107.865 -9.15677 32.7539 +-108.254 -8.91088 31.8744 +-107.963 -8.6103 30.7992 +-109.68 -8.46763 30.2888 +-110.721 -8.26718 29.5718 +-109.343 -7.88825 28.2164 +-109.207 -7.6041 27.2 +-109.449 -7.34721 26.2811 +-110.461 -7.14006 25.5401 +-111.858 -6.95294 24.8708 +-111.981 -6.68402 23.9089 +-114.345 -6.54383 23.4074 +-117.003 -6.4091 22.9255 +-124.47 -6.51413 23.3012 +-159.091 -7.93871 28.3969 +-159.243 -7.55994 27.042 +-162.737 -7.33216 26.2273 +-161.191 -6.8737 24.5874 +-841.059 -33.8426 121.055 +-155.472 -5.88293 21.0433 +-862.061 -30.5568 109.302 +-381.138 -12.5998 45.0697 +-379.346 -11.6368 41.625 +-896.561 -25.3711 90.7527 +-404.031 -10.4744 37.4672 +-403.558 -9.50597 34.003 +-402.156 -8.52153 30.4817 +-403.614 -7.59887 27.1813 +-3270.39 -53.8548 192.64 +-401.549 -5.66595 20.2672 +-403.715 -4.74577 16.9757 +-401.056 -3.77075 13.488 +-3275.38 -23.0923 82.6016 +-145.278 -0.682745 2.44219 +-146.994 -0.34538 1.23543 +119 5.77316e-15 2.84217e-14 +118.995 -0.270559 1.0026 +119.282 -0.542459 2.01016 +119.059 -0.812272 3.01 +119.727 -1.0893 4.03656 +119.686 -1.36147 5.04513 +120.335 -1.64308 6.08868 +119.676 -1.90707 7.06692 +119.608 -2.17909 8.07494 +120.129 -2.46321 9.1278 +119.743 -2.72942 10.1143 +120.642 -3.02654 11.2153 +119.641 -3.27622 12.1405 +120.322 -3.57169 13.2354 +120.098 -3.84195 14.2369 +119.866 -4.11145 15.2356 +120.219 -4.40195 16.3121 +120.165 -4.67895 17.3386 +120.597 -4.97644 18.4409 +120.327 -5.24615 19.4404 +120.147 -5.51953 20.4534 +120.35 -5.81146 21.5352 +120.053 -6.07989 22.53 +119.845 -6.35263 23.5406 +120.606 -6.67903 24.7501 +120.377 -6.95298 25.7653 +120.042 -7.22056 26.7569 +120.671 -7.54795 27.9701 +120.22 -7.8094 28.9389 +120.05 -8.08896 29.9748 +120.258 -8.39532 31.1101 +120.839 -8.73108 32.3543 +121.215 -9.05576 33.5575 +121.099 -9.34579 34.6322 +120.781 -9.62076 35.6512 +121.027 -9.94203 36.8417 +121.64 -10.2973 38.1583 +121.291 -10.5735 39.1817 +120.365 -10.798 40.0134 +121.601 -11.2191 41.5739 +121.314 -11.504 42.6298 +121.674 -11.8524 43.9208 +118.565 -11.8578 43.9409 +114.907 -11.7927 43.6997 +111.911 -11.7802 43.6534 +109.018 -11.765 43.5971 +106.41 -11.7681 43.6085 +103.261 -11.6979 43.3484 +100.673 -11.6779 43.2744 +98.0938 -11.6471 43.16 +96.2499 -11.6935 43.332 +97.0279 -12.0577 44.6816 +96.6204 -12.2778 45.4974 +97.0109 -12.6017 46.6973 +98.3671 -13.0583 48.3896 +96.8616 -13.1371 48.6815 +96.4179 -13.3568 49.4957 +96.6699 -13.675 50.6748 +96.2082 -13.8943 51.4873 +96.5224 -14.2279 52.7238 +95.9556 -14.4338 53.4867 +96.244 -14.7704 54.7341 +96.4313 -15.0961 55.9407 +96.6041 -15.4236 57.1546 +96.1687 -15.6565 58.0174 +96.231 -15.9725 59.1886 +96.4471 -16.3184 60.4704 +96.564 -16.6521 61.7069 +96.0026 -16.871 62.5181 +96.1755 -17.2215 63.8168 +96.3323 -17.574 65.123 +96.3099 -17.8982 66.3246 +95.8685 -18.1472 67.247 +96.4628 -18.5969 68.9135 +95.9161 -18.8312 69.7818 +95.9164 -19.1754 71.0574 +95.8221 -19.505 72.2788 +95.7912 -19.8519 73.5643 +95.8221 -20.2165 74.9153 +96.4531 -20.7153 76.7638 +95.7556 -20.9339 77.5735 +95.7351 -21.303 78.9416 +95.6972 -21.6737 80.3153 +96.2408 -22.184 82.206 +96.1629 -22.5588 83.5951 +96.0672 -22.935 84.9892 +95.9536 -23.3125 86.3879 +95.822 -23.6912 87.7911 +96.3196 -24.2339 89.8024 +96.0748 -24.5981 91.1518 +95.8837 -24.9814 92.5722 +95.6741 -25.3657 93.9963 +96.2102 -25.9571 96.1878 +95.9566 -26.3448 97.6248 +95.6162 -26.7145 98.9948 +95.9338 -27.2765 101.077 +95.6188 -27.6679 102.527 +95.7486 -28.1965 104.486 +95.3254 -28.5704 105.872 +95.5338 -29.1428 107.993 +95.5182 -29.6581 109.903 +95.2209 -30.0953 111.523 +95.342 -30.6752 113.672 +94.9335 -31.0947 115.226 +94.9966 -31.6788 117.391 +94.6624 -32.1416 119.105 +94.5451 -32.6887 121.133 +94.5173 -33.2793 123.322 +94.5159 -33.8934 125.597 +94.3062 -34.4463 127.646 +94.3533 -35.1078 130.097 +94.4766 -35.8146 132.716 +94.5036 -36.5032 135.268 +94.2708 -37.1079 137.509 +94.1136 -37.7577 139.917 +94.3498 -38.5857 142.985 +94.5376 -39.4173 146.067 +93.9452 -39.9418 148.01 +93.9944 -40.7568 151.03 +93.6408 -41.418 153.481 +93.45 -42.1707 156.27 +91.64 -42.2002 156.379 +91.0472 -42.7944 158.581 +87.7495 -42.1066 156.032 +87.4626 -42.8567 158.812 +85.0541 -42.5686 157.744 +84.1698 -43.0391 159.488 +82.4127 -43.0654 159.585 +81.274 -43.415 160.881 +79.2571 -43.2926 160.427 +78.0999 -43.6365 161.702 +76.3865 -43.6701 161.826 +74.3921 -43.5325 161.316 +71.2166 -42.6728 158.13 +69.9018 -42.9049 158.991 +68.7299 -43.2308 160.198 +67.2793 -43.3853 160.771 +66.0435 -43.6821 161.871 +64.4704 -43.7577 162.151 +63.2825 -44.0979 163.411 +61.632 -44.1177 163.485 +59.9183 -44.0841 163.36 +57.886 -43.7999 162.307 +54.4812 -42.4227 157.204 +53.6144 -42.9909 159.309 +50.8494 -42.018 155.704 +50.1417 -42.7298 158.342 +47.8282 -42.0678 155.889 +47.2718 -42.9513 159.162 +44.8426 -42.1282 156.113 +43.9734 -42.7572 158.443 +41.8635 -42.1744 156.283 +41.1751 -43.0263 159.441 +38.822 -42.1303 156.12 +38.1067 -43.0039 159.357 +36.0805 -42.4023 157.128 +35.0747 -42.9925 159.315 +33.135 -42.432 157.238 +32.1132 -43.043 159.502 +30.2329 -42.4995 157.488 +29.1382 -43.0542 159.544 +27.2164 -42.3734 157.021 +26.2028 -43.1029 159.724 +24.492 -42.697 158.22 +23.3115 -43.2155 160.141 +21.5629 -42.6728 158.13 +20.3278 -43.1339 159.839 +18.6899 -42.7384 158.374 +17.4144 -43.1678 159.965 +15.7954 -42.7389 158.376 +14.4853 -43.1368 159.85 +12.8673 -42.5964 157.847 +11.5935 -43.1959 160.069 +10.0608 -42.8567 158.812 +8.7244 -43.3723 160.723 +7.16667 -42.7658 158.475 +5.82124 -43.4312 160.941 +4.29825 -42.7658 158.475 +2.9163 -43.5294 161.305 +1.42679 -42.5964 157.847 +5.88418e-15 -43.2493 160.267 +-1.4329 -42.7788 158.523 +-2.90932 -43.4252 160.919 +-4.28778 -42.6616 158.089 +-5.80379 -43.3012 160.459 +-7.15794 -42.7137 158.282 +-8.7244 -43.3723 160.723 +-10.0608 -42.8567 158.812 +-11.6493 -43.4038 160.839 +-13.0242 -43.1159 159.773 +-14.5637 -43.3702 160.715 +-15.9391 -43.1279 159.817 +-17.5294 -43.4528 161.021 +-18.8483 -43.1008 159.717 +-20.5106 -43.5219 161.277 +-21.7718 -43.086 159.662 +-23.3811 -43.3444 160.619 +-24.6398 -42.9547 159.175 +-26.3749 -43.3859 160.773 +-27.5795 -42.9388 159.116 +-29.4855 -43.5672 161.445 +-30.4698 -42.8325 158.722 +-32.7237 -43.8613 162.535 +-33.4539 -42.8406 158.752 +-35.7192 -43.7824 162.242 +-36.6216 -43.038 159.484 +-39.0065 -44.0195 163.121 +-39.8024 -43.1944 160.063 +-42.2396 -44.1388 163.563 +-43.0654 -43.3851 160.77 +-45.3451 -44.0909 163.385 +-46.2055 -43.4088 160.858 +-48.457 -44.0284 163.154 +-49.4471 -43.4919 161.166 +-51.9252 -44.2498 163.974 +-52.6536 -43.5088 161.229 +-55.1595 -44.23 163.901 +-55.9725 -43.5839 161.507 +-58.9929 -44.6375 165.411 +-59.5845 -43.8387 162.451 +-62.3845 -44.6562 165.48 +-63.0373 -43.927 162.778 +-68.52 -46.5063 172.336 +-67.7661 -44.8214 166.093 +-72.7111 -46.888 173.751 +-72.9012 -45.8545 169.921 +-76.5442 -46.9821 174.099 +-77.3573 -46.3524 171.766 +-80.6152 -47.1744 174.812 +-81.0725 -46.349 171.753 +-83.8475 -46.8476 173.601 +-84.3802 -46.091 170.797 +-86.9728 -46.4594 172.162 +-87.2317 -45.5838 168.918 +-89.2999 -45.6622 169.208 +-89.4869 -44.7873 165.966 +-94.6455 -46.3763 171.854 +-94.2389 -45.2206 167.572 +-98.3194 -46.2124 171.247 +-99.4203 -45.7831 169.656 +-103.2 -46.5707 172.575 +-103.081 -45.5934 168.953 +-106.922 -46.3623 171.802 +-106.851 -45.4287 168.343 +-111.336 -46.4214 172.021 +-111.651 -45.6611 169.204 +-114.755 -46.0392 170.605 +-114.858 -45.2117 167.539 +-120.226 -46.4391 172.087 +-98.6113 -37.382 138.525 +-96.705 -35.9827 133.339 +-96.4548 -35.2313 130.555 +-97.3372 -34.9051 129.346 +-97.5509 -34.3475 127.28 +-97.494 -33.7082 124.911 +-96.9757 -32.9271 122.016 +-97.0282 -32.3562 119.901 +-96.8633 -31.7268 117.568 +-96.9153 -31.1812 115.547 +-96.8111 -30.5979 113.385 +-97.2538 -30.1972 111.9 +-96.9626 -29.5786 109.608 +-96.8343 -29.0227 107.548 +-97.3389 -28.6649 106.222 +-97.0239 -28.0746 104.034 +-96.7445 -27.5071 101.932 +-97.0484 -27.1147 100.478 +-97.471 -26.7607 99.1657 +-97.2522 -26.2383 97.2299 +-97.3563 -25.8117 95.649 +-97.6514 -25.4419 94.2789 +-97.216 -24.8902 92.2345 +-97.3267 -24.4873 90.7413 +-97.4178 -24.0857 89.2532 +-97.5626 -23.7034 87.8365 +-97.0994 -23.1814 85.9023 +-97.9465 -22.9772 85.1456 +-97.514 -22.4774 83.2935 +-97.7349 -22.1352 82.0254 +-97.8642 -21.7768 80.6973 +-98.0537 -21.4363 79.4353 +-98.1506 -21.0799 78.1148 +-97.765 -20.6264 76.4343 +-97.7478 -20.2574 75.0668 +-97.7133 -19.89 73.7054 +-98.4551 -19.683 72.9382 +-98.1523 -19.2702 71.4087 +-98.1509 -18.9223 70.1196 +-97.4865 -18.4534 68.3819 +-98.1823 -18.2462 67.6141 +-98.3802 -17.9476 66.5074 +-98.3183 -17.6052 65.2386 +-98.4068 -17.2935 64.0838 +-98.1484 -16.9253 62.7194 +-98.0406 -16.588 61.4694 +-99.0985 -16.4485 60.9523 +-100.918 -16.4296 60.8825 +-102.658 -16.3901 60.7362 +-104.66 -16.3842 60.7142 +-106.584 -16.3572 60.6142 +-108.513 -16.3227 60.4863 +-111.144 -16.3833 60.7108 +-113.088 -16.3321 60.521 +-116.355 -16.4597 60.9939 +-118.138 -16.3658 60.6459 +-120.013 -16.277 60.3169 +-142.205 -18.8778 69.9545 +-162.699 -21.1345 78.3172 +-164.3 -20.878 77.3666 +-164.451 -20.4364 75.7301 +-163.498 -19.8635 73.6072 +-163.975 -19.4694 72.1469 +-164.438 -19.0747 70.6841 +-164.062 -18.5858 68.8725 +-164.402 -18.1816 67.3745 +-163.896 -17.6874 65.5434 +-164.019 -17.2653 63.9792 +-163.195 -16.7485 62.0641 +-129.954 -12.9969 48.162 +-112.494 -10.9582 40.6073 +-110.79 -10.506 38.9315 +-109.535 -10.1059 37.4488 +-107.884 -9.67829 35.8644 +-108.678 -9.47398 35.1072 +-108.42 -9.17821 34.0113 +-107.961 -8.86869 32.8643 +-108.349 -8.63051 31.9817 +-108.538 -8.37643 31.0401 +-109.68 -8.19398 30.364 +-110.528 -7.98607 29.5936 +-109.15 -7.61986 28.2365 +-109.304 -7.36487 27.2916 +-109.449 -7.10978 26.3463 +-110.558 -6.91539 25.626 +-111.078 -6.68135 24.7587 +-112.86 -6.51877 24.1563 +-114.345 -6.33236 23.4655 +-117.003 -6.20198 22.9824 +-123.194 -6.23898 23.1195 +-158.599 -7.65842 28.3794 +-159.44 -7.32467 27.1427 +-160.074 -6.97909 25.8621 +-160.302 -6.61488 24.5124 +-841.356 -32.7603 121.398 +-154.581 -5.66017 20.9746 +-862.061 -29.5693 109.573 +-379.748 -12.1482 45.0169 +-379.942 -11.2784 41.7939 +-897.059 -24.5648 91.0284 +-405.325 -10.1684 37.6805 +-404.057 -9.21013 34.1295 +-404.051 -8.28498 30.7013 +-400.622 -7.29877 27.0467 +-142.833 -2.27607 8.43434 +-144.901 -1.97851 7.33168 +-401.817 -4.5708 16.9378 +-403.554 -3.67161 13.6057 +-402.962 -2.74917 10.1875 +-145.378 -0.661137 2.44994 +-146.994 -0.334218 1.2385 +119.8 1.77636e-15 -1.13687e-13 +118.995 -0.261501 1.005 +119.082 -0.52342 2.0116 +119.959 -0.791012 3.04 +119.727 -1.05283 4.04623 +119.686 -1.31589 5.05721 +119.636 -1.57885 6.0678 +119.577 -1.84169 7.07794 +119.608 -2.10614 8.09428 +119.929 -2.3768 9.13447 +119.743 -2.63805 10.1385 +119.945 -2.90832 11.1772 +120.536 -3.19021 12.2605 +120.322 -3.45212 13.2671 +121.091 -3.74403 14.389 +120.659 -4.0001 15.3731 +120.318 -4.25808 16.3646 +120.165 -4.52231 17.3801 +120.597 -4.80984 18.4851 +120.327 -5.07052 19.4869 +120.147 -5.33475 20.5024 +119.76 -5.58938 21.481 +120.151 -5.88116 22.6024 +119.943 -6.14497 23.6162 +120.41 -6.44495 24.7691 +120.377 -6.72021 25.827 +120.919 -7.0298 27.0168 +120.574 -7.28937 28.0144 +120.996 -7.59671 29.1955 +120.825 -7.8686 30.2405 +121.127 -8.17292 31.41 +120.936 -8.44551 32.4576 +121.215 -8.7526 33.6378 +121.099 -9.03292 34.7152 +120.781 -9.29868 35.7365 +121.217 -9.62433 36.9881 +120.784 -9.88257 37.9805 +121.291 -10.2195 39.2755 +121.31 -10.5185 40.4244 +121.601 -10.8435 41.6735 +121.408 -11.1275 42.765 +121.58 -11.4468 43.9921 +117.818 -11.3886 43.7686 +114.907 -11.3979 43.8043 +111.911 -11.3859 43.758 +109.018 -11.3712 43.7014 +105.582 -11.2856 43.3727 +103.261 -11.3063 43.4522 +99.8505 -11.1948 43.0237 +98.2758 -11.2781 43.3436 +95.978 -11.2701 43.3131 +97.2084 -11.6757 44.8719 +96.6204 -11.8668 45.6063 +96.9214 -12.1686 46.766 +98.5453 -12.644 48.5932 +96.9503 -12.7089 48.8427 +96.3296 -12.8978 49.5688 +96.6699 -13.2172 50.7961 +96.2082 -13.4291 51.6106 +96.5224 -13.7516 52.85 +96.8216 -14.0765 54.0986 +96.3301 -14.2887 54.9143 +96.4313 -14.5907 56.0746 +96.6041 -14.9073 57.2914 +96.0838 -15.119 58.1051 +96.231 -15.4378 59.3303 +96.4471 -15.7721 60.6151 +95.8969 -15.9835 61.4274 +96.0026 -16.3062 62.6678 +96.1755 -16.6449 63.9695 +96.3323 -16.9856 65.2789 +96.3913 -17.3137 66.5396 +95.7876 -17.5248 67.3511 +95.7394 -17.8395 68.5605 +95.8363 -18.1856 69.8906 +95.9164 -18.5335 71.2276 +95.9797 -18.8831 72.5711 +95.9478 -19.2187 73.8609 +95.8221 -19.5397 75.0947 +95.8358 -19.8937 76.4551 +95.7556 -20.233 77.7593 +95.7351 -20.5899 79.1306 +96.2255 -21.0638 80.952 +96.3157 -21.458 82.4669 +96.1629 -21.8036 83.7953 +95.4037 -22.0141 84.6043 +95.9536 -22.532 86.5948 +95.822 -22.898 88.0013 +95.6722 -23.2652 89.4124 +96.1462 -23.7922 91.4379 +95.8837 -24.1451 92.7939 +95.7442 -24.5344 94.2903 +96.1407 -25.0699 96.3484 +95.9566 -25.4629 97.8585 +95.6162 -25.8202 99.2318 +96.0014 -26.382 101.391 +95.6188 -26.7416 102.773 +95.8811 -27.2903 104.882 +95.3254 -27.6139 106.125 +95.6637 -28.2054 108.399 +95.5825 -28.6846 110.24 +95.0301 -29.0296 111.566 +95.7826 -29.7853 114.47 +94.8712 -30.0338 115.426 +95.0581 -30.6382 117.748 +94.5406 -31.0257 119.238 +94.9062 -31.715 121.886 +94.6958 -32.2259 123.85 +94.3983 -32.7179 125.741 +95.0611 -33.5598 128.976 +94.9843 -34.1593 131.281 +94.4199 -34.595 132.955 +94.5036 -35.2812 135.592 +94.326 -35.8866 137.919 +94.1681 -36.5148 140.333 +94.4035 -37.3151 143.409 +94.1137 -37.9268 145.76 +94.1542 -38.6905 148.695 +93.7884 -39.306 151.06 +94.1484 -40.2483 154.681 +93.5 -40.7808 156.728 +93.3635 -41.5544 159.701 +92.4532 -42.0004 161.415 +90.3262 -41.8921 160.999 +89.8099 -42.5337 163.465 +86.5779 -41.8808 160.956 +86.349 -42.675 164.008 +83.2605 -42.052 161.614 +82.9837 -42.8445 164.659 +80.1612 -42.3204 162.645 +80.382 -43.408 166.825 +77.3403 -42.7352 164.239 +78.0528 -44.1456 169.66 +73.649 -42.6528 163.923 +74.1998 -44.0184 169.171 +69.6484 -42.3419 162.728 +70.6133 -44.0109 169.142 +67.0331 -42.8523 164.689 +68.6991 -45.0668 173.2 +64.2631 -43.2819 166.34 +65.8731 -45.5749 175.153 +61.1868 -43.5103 167.218 +62.1835 -45.4765 174.774 +56.9879 -42.8891 164.83 +56.8282 -44.0424 169.263 +52.7438 -42.1243 161.891 +52.3638 -43.1295 165.755 +49.5607 -42.1323 161.922 +49.0359 -43.0626 165.497 +46.2055 -41.9556 161.243 +45.7333 -42.9797 165.179 +43.2406 -42.1034 161.811 +43.0379 -43.4675 167.053 +40.0826 -42.0422 161.576 +39.4114 -42.9875 165.209 +37.0977 -42.1381 161.945 +36.5301 -43.2774 166.323 +34.1717 -42.2948 162.547 +33.2198 -43.0356 165.394 +31.0712 -42.2157 162.243 +30.2321 -43.1751 165.93 +28.2562 -42.5196 163.411 +27.204 -43.2517 166.224 +25.1276 -42.3386 162.715 +24.1326 -43.2398 166.179 +22.1895 -42.4426 163.115 +21.0834 -43.2393 166.177 +19.1766 -42.3834 162.887 +18.0834 -43.3254 166.508 +16.1788 -42.3109 162.608 +15.0169 -43.2227 166.113 +13.2282 -42.3252 162.664 +12.033 -43.3325 166.535 +10.2378 -42.1507 161.993 +8.99655 -43.2277 166.132 +7.3455 -42.3655 162.818 +5.97828 -43.1099 165.679 +4.40558 -42.366 162.82 +3.00705 -43.3814 166.722 +1.47217 -42.4798 163.258 +6.21725e-15 -43.3879 166.748 +-1.47566 -42.5806 163.645 +-3.00007 -43.2806 166.335 +-4.4082 -42.3912 162.917 +-6.03761 -43.5377 167.323 +-7.34114 -42.3403 162.722 +-9.10122 -43.7309 168.066 +-10.3905 -42.7793 164.409 +-12.1167 -43.6339 167.693 +-13.338 -42.6768 164.015 +-15.1738 -43.6742 167.848 +-16.428 -42.9626 165.113 +-18.3134 -43.8764 168.625 +-19.5049 -43.1089 165.675 +-21.3515 -43.7893 168.29 +-22.4766 -42.9918 165.225 +-24.5501 -43.988 169.054 +-25.4528 -42.8865 164.821 +-27.7358 -44.0973 169.474 +-28.6688 -43.1406 165.797 +-30.892 -44.1174 169.551 +-31.7819 -43.1814 165.954 +-34.1166 -44.1975 169.859 +-34.9891 -43.3066 166.435 +-37.3617 -44.2625 170.109 +-38.115 -43.2937 166.386 +-40.6037 -44.2879 170.206 +-41.3899 -43.4133 166.845 +-43.7637 -44.2003 169.87 +-44.7679 -43.5906 167.527 +-47.1568 -44.3176 170.321 +-47.8624 -43.4599 167.024 +-50.8551 -44.6603 171.638 +-51.4068 -43.7017 167.954 +-54.3227 -44.7429 171.955 +-54.8788 -43.8293 168.444 +-57.7553 -44.7608 172.024 +-58.2571 -43.8442 168.501 +-61.8254 -45.2146 173.768 +-62.1882 -44.2224 169.955 +-67.2412 -46.5215 178.791 +-68.0803 -45.8529 176.221 +-71.7811 -47.0886 180.97 +-72.384 -46.273 177.835 +-75.5956 -47.1163 181.077 +-76.3071 -46.39 178.285 +-79.4747 -47.1478 181.198 +-80.0688 -46.3709 178.212 +-83.5844 -47.2744 181.684 +-83.7266 -46.2639 177.801 +-86.9748 -46.9682 180.507 +-87.1785 -46.0254 176.884 +-89.1647 -46.0357 176.924 +-89.1949 -45.0491 173.132 +-94.203 -46.5568 178.926 +-94.4738 -45.7001 175.634 +-98.7299 -46.7582 179.7 +-98.247 -45.5656 175.117 +-103.071 -46.8237 179.952 +-103.064 -45.8721 176.295 +-107.5 -46.8869 180.195 +-106.685 -45.6074 175.278 +-111.969 -46.9254 180.343 +-111.815 -45.9476 176.585 +-114.939 -46.3195 178.014 +-114.982 -45.4493 174.67 +-120.583 -46.7577 179.698 +-120.046 -45.6719 175.525 +-97.2996 -36.3252 139.604 +-96.6855 -35.425 136.145 +-96.9918 -34.8813 134.055 +-97.0935 -34.2772 131.734 +-97.3372 -33.7365 129.656 +-96.9561 -32.9952 126.807 +-97.5542 -32.5998 125.287 +-97.0366 -31.8449 122.386 +-96.9667 -31.2534 120.113 +-96.9878 -30.7039 118.001 +-96.9783 -30.157 115.899 +-96.8111 -29.5735 113.656 +-97.2538 -29.1862 112.168 +-97.0925 -28.6267 110.018 +-97.2936 -28.184 108.316 +-97.0738 -27.6298 106.186 +-97.0239 -27.1347 104.284 +-97.3525 -26.7534 102.818 +-97.253 -26.2621 100.93 +-97.6087 -25.9013 99.5434 +-97.8774 -25.5228 98.0888 +-97.4965 -24.9834 96.016 +-97.7222 -24.608 94.5731 +-97.1447 -24.0393 92.3875 +-97.9741 -23.8249 91.5636 +-97.4178 -23.2794 89.4669 +-97.7089 -22.9442 88.1788 +-97.6892 -22.5415 86.6311 +-97.352 -22.0732 84.8314 +-97.514 -21.7249 83.493 +-97.7349 -21.3942 82.2218 +-97.9403 -21.0641 80.9533 +-97.9771 -20.7024 79.5632 +-98.305 -20.4063 78.425 +-97.6095 -19.9042 76.4955 +-97.6695 -19.5635 75.1863 +-98.1073 -19.3017 74.1799 +-98.2171 -18.978 72.9361 +-98.0724 -18.6099 71.5214 +-97.9902 -18.2589 70.1723 +-97.6484 -17.8653 68.6595 +-98.4266 -17.6792 67.9446 +-98.4621 -17.3612 66.7222 +-98.4007 -17.03 65.4496 +-98.3239 -16.7005 64.1831 +-98.1484 -16.3587 62.8696 +-98.4599 -16.1013 61.8801 +-99.0142 -15.8843 61.0463 +-100.154 -15.7595 60.5668 +-102.743 -15.8546 60.9322 +-104.66 -15.8357 60.8596 +-106.584 -15.8096 60.7593 +-109.206 -15.877 61.0182 +-111.144 -15.8348 60.8561 +-113.088 -15.7853 60.6659 +-115.74 -15.8246 60.8167 +-117.609 -15.747 60.5185 +-120.013 -15.7321 60.4614 +-129.998 -16.6796 64.1027 +-163.326 -20.5057 78.807 +-164.569 -20.2122 77.6792 +-164.18 -19.7197 75.7865 +-163.498 -19.1985 73.7835 +-163.793 -18.7968 72.2394 +-164.347 -18.4259 70.8139 +-164.337 -17.9937 69.1531 +-164.862 -17.6221 67.7248 +-164.081 -17.1146 65.7744 +-164.297 -16.7156 64.2412 +-164.219 -16.2893 62.603 +-143.865 -13.9064 53.4449 +-113.056 -10.6443 40.9079 +-110.602 -10.1371 38.9586 +-109.441 -9.75913 37.5061 +-108.64 -9.41988 36.2023 +-108.678 -9.15681 35.1913 +-108.516 -8.87873 34.1226 +-108.533 -8.61722 33.1176 +-107.68 -8.29006 31.8602 +-108.538 -8.09601 31.1145 +-109.392 -7.89884 30.3567 +-110.143 -7.6918 29.561 +-109.246 -7.37126 28.3291 +-109.304 -7.11831 27.357 +-109.449 -6.87176 26.4094 +-109.683 -6.63097 25.484 +-111.078 -6.45767 24.818 +-112.86 -6.30054 24.2141 +-114.345 -6.12036 23.5217 +-116.807 -5.98433 22.9989 +-122.703 -6.00609 23.0825 +-159.189 -7.42955 28.5531 +-158.554 -7.04012 27.0565 +-161.554 -6.8078 26.1636 +-160.993 -6.42101 24.6771 +-840.466 -31.6301 121.56 +-153.095 -5.41812 20.8228 +-862.458 -28.5924 109.886 +-379.748 -11.7415 45.1246 +-378.849 -10.8695 41.7734 +-896.76 -23.7345 91.216 +-403.534 -9.78454 37.6038 +-403.359 -8.88644 34.1522 +-403.452 -7.99576 30.7292 +-403.315 -7.10184 27.2937 +-145.528 -2.24138 8.61405 +-145.201 -1.91623 7.36443 +-402.417 -4.42438 17.0037 +-402.854 -3.54255 13.6147 +-400.163 -2.63868 10.1409 +-145.678 -0.640323 2.46088 +-146.094 -0.321053 1.23386 +119 5.77316e-15 2.84217e-14 +119.095 -0.252633 1.00816 +119.282 -0.506096 2.01962 +119.859 -0.762915 3.04449 +120.427 -1.02222 4.07926 +119.686 -1.2702 5.06887 +119.636 -1.52403 6.0818 +119.676 -1.77923 7.10019 +119.608 -2.03302 8.11295 +119.929 -2.29428 9.15555 +119.743 -2.54646 10.1619 +119.945 -2.80735 11.203 +120.536 -3.07945 12.2888 +120.322 -3.33227 13.2977 +120.197 -3.58737 14.3158 +120.758 -3.8644 15.4213 +120.516 -4.11703 16.4294 +120.165 -4.3653 17.4202 +120.597 -4.64285 18.5277 +120.425 -4.89849 19.5479 +120.048 -5.1453 20.5328 +119.76 -5.39533 21.5306 +120.151 -5.67698 22.6545 +119.845 -5.92678 23.6514 +120.508 -6.22625 24.8465 +119.499 -6.43955 25.6976 +120.919 -6.78573 27.0791 +120.671 -7.04198 28.1017 +120.996 -7.33296 29.2629 +120.728 -7.58933 30.286 +121.224 -7.89546 31.5076 +120.936 -8.15229 32.5325 +120.542 -8.4018 33.5282 +121.195 -8.72621 34.8228 +120.781 -8.97585 35.819 +121.313 -9.2975 37.1026 +120.879 -9.54697 38.0981 +121.291 -9.86472 39.3661 +121.215 -10.1453 40.486 +121.789 -10.4832 41.8343 +121.408 -10.7412 42.8637 +121.58 -11.0494 44.0936 +117.538 -10.9671 43.7653 +114.907 -11.0022 43.9054 +111.818 -10.9815 43.8226 +108.279 -10.902 43.5053 +104.846 -10.8178 43.1695 +102.436 -10.8266 43.2044 +99.8505 -10.8061 43.123 +97.2749 -10.7756 43.0011 +95.7967 -10.8583 43.331 +96.3961 -11.1762 44.5996 +96.8001 -11.4761 45.7966 +96.8319 -11.7352 46.8306 +98.0107 -12.1388 48.4412 +97.4825 -12.335 49.2242 +96.5945 -12.4843 49.8198 +96.6699 -12.7583 50.9133 +96.2956 -12.9746 51.7766 +96.5224 -13.2742 52.9719 +96.8216 -13.5878 54.2234 +96.3301 -13.7927 55.041 +96.4313 -14.0841 56.204 +96.6041 -14.3897 57.4236 +96.1687 -14.607 58.2905 +96.3153 -14.9149 59.5193 +96.4471 -15.2245 60.755 +95.8969 -15.4285 61.5691 +96.0026 -15.7401 62.8124 +96.1755 -16.067 64.1171 +96.2504 -16.382 65.3739 +96.3913 -16.7126 66.6931 +96.4348 -17.0307 67.9626 +95.8197 -17.2346 68.7764 +96.6349 -17.7005 70.6356 +96.6304 -18.0232 71.9233 +96.4525 -18.3173 73.0969 +95.7912 -18.5212 73.9105 +95.9775 -18.8919 75.3901 +95.8358 -19.203 76.6315 +95.7556 -19.5306 77.9387 +95.8872 -19.9066 79.4392 +95.6972 -20.2209 80.6933 +96.3157 -20.713 82.6572 +96.1629 -21.0466 83.9886 +96.0672 -21.3976 85.3892 +95.8805 -21.7332 86.7284 +95.822 -22.103 88.2044 +95.6722 -22.4574 89.6186 +96.1462 -22.9662 91.6489 +95.9544 -23.324 93.0765 +95.7442 -23.6826 94.5079 +95.5155 -24.0422 95.9427 +95.8878 -24.5613 98.0145 +95.6162 -24.9238 99.4607 +96.0689 -25.484 101.697 +95.6188 -25.8132 103.01 +95.8811 -26.3428 105.124 +95.4566 -26.6919 106.517 +95.7286 -27.2446 108.722 +95.7111 -27.7259 110.643 +95.0937 -28.0404 111.898 +95.1532 -28.5621 113.98 +95.2447 -29.1054 116.148 +95.1197 -29.5937 118.097 +94.7842 -30.0256 119.82 +94.7859 -30.575 122.012 +94.8742 -31.1656 124.37 +94.6922 -31.6805 126.424 +95.003 -32.3747 129.194 +94.6975 -32.8737 131.186 +94.7031 -33.494 133.661 +94.4477 -34.0361 135.824 +94.326 -34.6406 138.237 +94.1136 -35.2267 140.575 +94.4573 -36.04 143.821 +94.1137 -36.61 146.096 +94.1542 -37.3472 149.038 +94.252 -38.129 152.157 +93.7931 -38.7043 154.453 +94 -39.5755 157.93 +93.8067 -40.3023 160.83 +94.1015 -41.2651 164.672 +93.1891 -41.7194 166.485 +93.1432 -42.5809 169.923 +89.6254 -41.8497 167.005 +89.8447 -42.8611 171.041 +86.5624 -42.2017 168.41 +86.2276 -42.9737 171.491 +83.3039 -42.4528 169.412 +83.5094 -43.531 173.715 +80.8237 -43.1093 172.032 +80.9406 -44.1898 176.344 +77.6763 -43.4233 173.285 +77.1303 -44.1684 176.258 +73.8579 -43.3422 172.961 +73.0108 -43.9253 175.288 +70.185 -43.3096 172.831 +70.0251 -44.3419 176.951 +68.5006 -44.5342 177.718 +67.9252 -45.3631 181.026 +65.2592 -44.795 178.759 +64.6253 -45.6212 182.056 +61.6206 -44.7653 178.641 +61.2163 -45.796 182.753 +55.3299 -42.6555 170.221 +54.4396 -43.2826 172.723 +51.4068 -42.1844 168.341 +50.8551 -43.1098 172.034 +48.3701 -42.3961 169.186 +47.5451 -43.1312 172.119 +44.9933 -42.2889 168.758 +44.1991 -43.0903 171.956 +42.1135 -42.6389 170.155 +41.0536 -43.224 172.49 +38.6561 -42.3837 169.136 +37.9439 -43.3915 173.158 +35.6071 -42.5415 169.766 +34.5555 -43.2119 172.441 +32.4379 -42.5424 169.77 +31.4998 -43.4236 173.286 +29.296 -42.5539 169.815 +28.1895 -43.2624 172.643 +26.177 -42.5755 169.902 +25.1207 -43.4476 173.382 +22.9987 -42.4632 169.454 +21.8877 -43.3305 172.915 +19.9351 -42.53 169.72 +18.721 -43.296 172.777 +16.8209 -42.463 169.453 +15.6706 -43.5383 173.744 +13.7696 -42.5279 169.712 +12.4515 -43.2828 172.724 +10.6957 -42.507 169.628 +9.34197 -43.329 172.909 +7.66829 -42.6917 170.365 +6.23305 -43.3864 173.138 +4.59405 -42.6448 170.178 +3.13096 -43.6008 173.993 +1.53151 -42.6577 170.23 +6.88338e-15 -43.6317 174.116 +-1.52889 -42.5847 169.939 +-3.13271 -43.6251 174.09 +-4.58882 -42.5962 169.984 +-6.26795 -43.6295 174.108 +-7.70318 -42.8859 171.14 +-9.42571 -43.7175 174.459 +-10.8666 -43.1863 172.339 +-12.6468 -43.9617 175.434 +-13.9579 -43.1095 172.033 +-15.8013 -43.9015 175.193 +-17.0797 -43.1163 172.06 +-19.0137 -43.9729 175.478 +-20.3426 -43.3995 173.19 +-22.3143 -44.1749 176.284 +-23.3511 -43.1137 172.049 +-25.5661 -44.2179 176.456 +-26.6205 -43.2967 172.78 +-28.7839 -44.1749 176.284 +-29.9231 -43.4649 173.451 +-32.0034 -44.1178 176.056 +-33.094 -43.4029 173.204 +-35.376 -44.2379 176.536 +-36.3049 -43.375 173.092 +-38.63 -44.1761 176.289 +-39.6517 -43.4754 173.493 +-42.1783 -44.408 177.215 +-43.164 -43.7024 174.399 +-45.7232 -44.5762 177.886 +-46.5206 -43.7245 174.487 +-49.0721 -44.5164 177.647 +-49.8667 -43.7077 174.42 +-52.8121 -44.7688 178.654 +-53.3949 -43.8159 174.852 +-56.4862 -44.9097 179.217 +-57.104 -44.0232 175.679 +-60.5055 -45.2644 180.632 +-61.3985 -44.6042 177.997 +-64.7229 -45.6902 182.331 +-65.6598 -45.0702 179.857 +-69.6011 -46.4822 185.492 +-71.0221 -46.1735 184.26 +-73.9313 -46.8154 186.822 +-74.6563 -46.0687 183.842 +-77.5061 -46.6297 186.081 +-78.9093 -46.3064 184.79 +-82.1708 -47.0546 187.776 +-83.1392 -46.4773 185.472 +-86.3095 -47.1207 188.04 +-86.6709 -46.2282 184.478 +-89.2992 -46.5493 185.759 +-89.2019 -45.4586 181.407 +-93.6799 -46.6876 186.311 +-94.1924 -45.9216 183.255 +-97.608 -46.5646 185.821 +-98.2601 -45.8815 183.095 +-101.594 -46.444 185.339 +-102.685 -45.9703 183.449 +-105.64 -46.3249 184.864 +-106.856 -45.9085 183.202 +-110.65 -46.5852 185.903 +-111.76 -46.1185 184.041 +-114.956 -46.5048 185.582 +-114.897 -45.5753 181.873 +-120.08 -46.7109 186.404 +-120.409 -45.9418 183.335 +-97.5449 -36.5111 145.701 +-97.1409 -35.6744 142.362 +-97.1318 -35.0035 139.685 +-97.3652 -34.4355 137.418 +-97.0491 -33.6902 134.444 +-97.0935 -33.0871 132.037 +-97.4548 -32.6046 130.112 +-96.9561 -31.8497 127.099 +-97.0126 -31.2933 124.879 +-97.0974 -30.7585 122.745 +-96.9051 -30.1491 120.313 +-96.9878 -29.6379 118.273 +-96.9153 -29.091 116.091 +-96.8111 -28.5468 113.919 +-96.9967 -28.0983 112.129 +-96.8976 -27.5774 110.05 +-97.2279 -27.1873 108.493 +-97.0738 -26.6705 106.431 +-97.2916 -26.2648 104.812 +-96.9472 -25.7169 102.626 +-97.3212 -25.3681 101.234 +-97.6775 -25.0198 99.8439 +-97.3216 -24.4969 97.7574 +-97.3563 -24.0814 96.0992 +-97.5807 -23.7193 94.6541 +-97.7866 -23.3581 93.2126 +-97.3267 -22.8458 91.1684 +-97.4903 -22.4879 89.7402 +-97.5626 -22.1145 88.25 +-97.1732 -21.6439 86.3722 +-97.2777 -21.2906 84.9622 +-97.3642 -20.9385 83.5571 +-97.5839 -20.6195 82.2842 +-97.7882 -20.3012 81.0141 +-97.9771 -19.9837 79.7468 +-98.2278 -19.6823 78.5443 +-97.221 -19.1367 76.3668 +-98.0608 -18.96 75.6617 +-97.8709 -18.5866 74.1718 +-98.0585 -18.2895 72.9862 +-97.6731 -17.8907 71.3945 +-98.3921 -17.6973 70.6227 +-97.6484 -17.245 68.8179 +-98.4266 -17.0654 68.1013 +-98.3802 -16.7445 66.8205 +-98.3183 -16.425 65.5457 +-98.241 -16.1071 64.277 +-98.2317 -15.8042 63.0682 +-98.7115 -15.582 62.1814 +-99.1828 -15.3589 61.2913 +-100.154 -15.2124 60.7065 +-102.743 -15.3042 61.0728 +-103.889 -15.1733 60.5504 +-106.67 -15.2731 60.9487 +-108.426 -15.2164 60.7225 +-110.448 -15.1893 60.6143 +-113.001 -15.2255 60.7588 +-114.861 -15.1592 60.4942 +-117.344 -15.166 60.5215 +-120.013 -15.1859 60.6009 +-125.543 -15.5487 62.0488 +-163.057 -19.7612 78.8589 +-164.3 -19.4785 77.7308 +-163.639 -18.9723 75.7108 +-163.951 -18.5833 74.1587 +-163.793 -18.1442 72.406 +-164.621 -17.8158 71.0957 +-163.237 -17.2527 68.8485 +-164.402 -16.9628 67.6916 +-164.173 -16.5297 65.9633 +-163.648 -16.0715 64.1351 +-165.056 -15.804 63.0673 +-160.202 -14.948 59.6515 +-113.899 -10.3513 41.308 +-111.354 -9.85161 39.3138 +-109.441 -9.42031 37.5927 +-108.64 -9.09284 36.2859 +-108.583 -8.83119 35.2417 +-108.516 -8.57047 34.2013 +-108.533 -8.31804 33.194 +-108.445 -8.0591 32.1606 +-108.922 -7.84254 31.2964 +-109.584 -7.63802 30.4803 +-110.336 -7.43775 29.6811 +-109.246 -7.11534 28.3945 +-109.594 -6.88943 27.4929 +-110.323 -6.6861 26.6815 +-110.558 -6.45182 25.7466 +-111.078 -6.23347 24.8753 +-111.981 -6.03444 24.081 +-113.759 -5.87754 23.4549 +-116.807 -5.77656 23.0519 +-122.311 -5.77902 23.0617 +-158.501 -7.14062 28.4953 +-160.13 -6.86322 27.3884 +-160.074 -6.51125 25.9838 +-162.672 -6.26273 24.9921 +-840.367 -30.5285 121.827 +-3244.61 -110.842 442.325 +-861.566 -27.5711 110.025 +-379.153 -11.3161 45.1578 +-377.259 -10.4481 41.6941 +-896.363 -22.9003 91.3859 +-404.927 -9.47745 37.8207 +-403.359 -8.57791 34.231 +-404.051 -7.72961 30.8458 +-400.223 -6.80272 27.1469 +-143.731 -2.13685 8.52733 +-144.502 -1.8408 7.34588 +-403.316 -4.2803 17.081 +-3274.5 -27.7949 110.918 +-402.662 -2.56299 10.2279 +-145.378 -0.616818 2.46147 +-146.494 -0.310755 1.2401 +120 6.21725e-15 5.68434e-14 +119.095 -0.243526 1.0104 +119.282 -0.487851 2.02411 +119.759 -0.734799 3.0487 +119.727 -0.979644 4.06457 +119.686 -1.22441 5.08013 +120.035 -1.474 6.11566 +119.676 -1.71509 7.11595 +119.907 -1.96463 8.15131 +119.829 -2.20973 9.16824 +119.942 -2.45876 10.2015 +119.945 -2.70615 11.2279 +119.939 -2.95375 12.2552 +120.322 -3.21214 13.3273 +120.297 -3.46091 14.3594 +120.758 -3.7251 15.4555 +120.615 -3.97187 16.4794 +120.165 -4.20794 17.4589 +119.905 -4.44982 18.4624 +120.425 -4.7219 19.5913 +120.147 -4.9639 20.5953 +119.564 -5.19228 21.5429 +120.446 -5.48575 22.7605 +119.845 -5.71313 23.7039 +120.606 -6.00667 24.9219 +120.28 -6.24799 25.9231 +121.017 -6.54639 27.1611 +120.574 -6.78264 28.1414 +121.287 -7.08561 29.3984 +120.825 -7.3216 30.3775 +120.548 -7.56838 31.4014 +120.936 -7.85841 32.6047 +121.503 -8.16353 33.8707 +121.291 -8.41829 34.9277 +121.738 -8.72079 36.1828 +121.408 -8.96937 37.2142 +120.974 -9.21005 38.2128 +121.48 -9.52396 39.5152 +122.066 -9.84827 40.8607 +121.601 -10.0897 41.8624 +121.032 -10.3219 42.8259 +121.393 -10.6346 44.1234 +117.351 -10.555 43.7929 +113.976 -10.5197 43.6466 +111.169 -10.5241 43.6649 +108.186 -10.5 43.5647 +105.03 -10.4461 43.3413 +102.436 -10.4363 43.3004 +99.3024 -10.3594 42.9815 +97.4569 -10.4066 43.1772 +96.6124 -10.556 43.797 +97.2084 -10.8641 45.0753 +96.89 -11.0727 45.9409 +96.9214 -11.3226 46.978 +98.0107 -11.7012 48.5488 +97.2164 -11.8579 49.1988 +96.5945 -12.0342 49.9304 +96.6699 -12.2984 51.0263 +96.2956 -12.5069 51.8916 +96.5224 -12.7957 53.0896 +96.9082 -13.1097 54.3924 +96.244 -13.2835 55.1138 +96.517 -13.5885 56.3789 +96.6041 -13.871 57.5511 +96.1687 -14.0804 58.4199 +96.231 -14.3646 59.5993 +96.531 -14.6885 60.9429 +96.6474 -14.9887 62.1887 +96.2513 -15.212 63.115 +96.0931 -15.4746 64.2045 +96.4142 -15.8183 65.6305 +96.3913 -16.1101 66.8412 +96.5966 -16.4443 68.2279 +95.8197 -16.6133 68.9291 +95.9161 -16.9355 70.2659 +95.7577 -17.2166 71.432 +96.5313 -17.6714 73.319 +96.4956 -17.9848 74.6193 +96.0552 -18.2256 75.6186 +95.8358 -18.5108 76.8017 +96.445 -18.9621 78.6741 +96.4195 -19.2955 80.0575 +95.9236 -19.538 81.0638 +96.4655 -19.9974 82.9696 +96.3116 -20.3193 84.3052 +96.0672 -20.6262 85.5788 +96.0999 -20.9977 87.1199 +96.4023 -21.4353 88.9356 +95.6722 -21.6479 89.8176 +96.1462 -22.1383 91.8524 +96.0958 -22.5163 93.4207 +95.7442 -22.8289 94.7177 +95.585 -23.1924 96.2257 +95.8878 -23.6759 98.2321 +95.6844 -24.0424 99.7525 +95.3258 -24.3754 101.134 +95.6857 -24.9002 103.312 +95.8149 -25.3756 105.284 +95.5222 -25.7475 106.827 +95.6637 -26.2447 108.89 +95.1968 -26.5828 110.293 +95.1573 -27.0477 112.221 +95.2791 -27.569 114.385 +95.307 -28.0744 116.482 +95.2428 -28.5637 118.511 +94.9059 -28.9805 120.241 +94.9062 -29.5103 122.439 +95.3501 -30.1928 125.271 +95.2212 -30.709 127.412 +94.7127 -31.1123 129.086 +94.5828 -31.6502 131.318 +94.25 -32.1322 133.317 +94.3918 -32.7899 136.046 +94.6572 -33.509 139.03 +94.3315 -34.0355 141.214 +94.4035 -34.7211 144.059 +94.2196 -35.3301 146.585 +94.2065 -36.0208 149.451 +93.9429 -36.6338 151.995 +93.8946 -37.3494 154.964 +94 -38.1488 158.281 +94.1514 -38.9921 161.779 +94.15 -39.7979 165.123 +93.9048 -40.5243 168.136 +94.176 -41.5009 172.188 +93.0885 -41.8997 173.843 +93.3404 -42.9236 178.091 +89.6858 -42.1483 174.874 +89.9099 -43.1936 179.211 +86.0161 -42.2549 175.317 +86.7213 -43.5757 180.797 +83.5192 -42.9412 178.164 +83.4624 -43.9239 182.241 +81.1056 -43.706 181.337 +81.233 -44.8408 186.046 +76.9194 -43.5115 180.53 +77.3563 -44.8618 186.133 +72.4573 -43.1001 178.823 +71.8886 -43.8808 182.063 +70.3216 -44.0701 182.848 +70.5588 -45.4233 188.462 +67.5625 -44.7044 185.48 +67.3601 -45.8378 190.182 +64.1907 -44.9516 186.505 +63.9047 -46.0838 191.203 +60.6824 -45.0955 187.102 +57.7726 -44.2768 183.706 +53.6505 -42.4386 176.079 +53.6115 -43.8079 181.76 +50.321 -42.5162 176.401 +50.0556 -43.7716 181.61 +46.8711 -42.4658 176.192 +46.7635 -43.9469 182.337 +43.701 -42.6511 176.961 +43.3931 -44.0401 182.724 +40.1928 -42.4801 176.251 +39.7943 -43.867 182.005 +37.0226 -42.638 176.906 +36.5781 -44.0921 182.939 +33.7318 -42.6446 176.933 +33.1842 -44.0966 182.958 +30.4183 -42.5911 176.712 +29.8008 -44.0867 182.917 +27.2708 -42.7554 177.393 +26.3872 -43.993 182.528 +24.0299 -42.7676 177.444 +23.0455 -43.9778 182.465 +20.7275 -42.6265 176.859 +19.7036 -43.9255 182.248 +17.5206 -42.6347 176.893 +16.4289 -43.9996 182.555 +14.3423 -42.6999 177.163 +13.0863 -43.8496 181.933 +11.2146 -42.9625 178.253 +9.84439 -44.0134 182.613 +7.97362 -42.7912 177.542 +6.5646 -44.0469 182.752 +4.78515 -42.8173 177.65 +3.29501 -44.2311 183.516 +1.59783 -42.9007 177.996 +6.77236e-15 -44.2379 183.544 +-1.59783 -42.9007 177.996 +-3.29501 -44.2311 183.516 +-4.81132 -43.0516 178.622 +-6.59949 -44.2812 183.724 +-8.03905 -43.1425 178.999 +-9.87579 -44.1538 183.195 +-11.2635 -43.1497 179.029 +-13.2816 -44.5041 184.649 +-14.5699 -43.3775 179.974 +-16.5945 -44.4429 184.395 +-17.8561 -43.4511 180.28 +-20.0277 -44.6479 185.245 +-21.1577 -43.5113 180.529 +-23.3989 -44.6524 185.264 +-24.6042 -43.7896 181.684 +-26.8187 -44.7124 185.513 +-27.8473 -43.6594 181.144 +-30.1293 -44.5727 184.933 +-31.293 -43.8161 181.794 +-33.7051 -44.7887 185.83 +-34.7523 -43.9349 182.287 +-37.036 -44.6442 185.23 +-38.1989 -43.9928 182.527 +-40.522 -44.6692 185.334 +-41.5348 -43.8984 182.135 +-44.1804 -44.8391 186.039 +-45.1016 -44.0181 182.632 +-47.8522 -44.9699 186.581 +-48.6739 -44.0992 182.969 +-51.3756 -44.9258 186.398 +-52.4589 -44.3225 183.895 +-54.8794 -44.844 186.059 +-56.1214 -44.3932 184.189 +-58.6205 -44.9265 186.401 +-59.9307 -44.5369 184.785 +-63.3794 -45.7051 189.632 +-64.159 -44.9293 186.413 +-69.639 -47.3884 196.616 +-69.6655 -46.0957 191.252 +-74.2868 -47.8231 198.419 +-73.5436 -46.0892 191.225 +-78.4826 -47.9058 198.762 +-77.5517 -46.1302 191.395 +-82.7131 -47.9686 199.023 +-81.2054 -45.9359 190.589 +-86.4297 -47.7094 197.948 +-85.3323 -45.9837 190.788 +-89.0753 -46.8776 194.497 +-88.4955 -45.4999 188.78 +-94.582 -47.5257 197.186 +-93.2918 -45.8288 190.145 +-99.6418 -47.8688 198.609 +-98.6097 -46.342 192.274 +-103.101 -47.4123 196.715 +-102.416 -46.0981 191.262 +-107.509 -47.3765 196.566 +-106.693 -46.043 191.034 +-112.136 -47.4011 196.668 +-112.174 -46.4561 192.748 +-116.55 -47.3006 196.251 +-115.77 -46.051 191.067 +-106.716 -41.6148 172.661 +-120.488 -46.07 191.145 +-96.7103 -36.264 150.461 +-97.0363 -35.6893 148.076 +-97.2181 -35.077 145.536 +-96.8649 -34.2907 142.273 +-97.1877 -33.7611 140.076 +-97.3652 -33.1941 137.723 +-97.1065 -32.4947 134.821 +-97.2677 -31.9516 132.568 +-97.5136 -31.4483 130.48 +-97.0156 -30.7203 127.459 +-97.1931 -30.2214 125.389 +-97.5845 -29.7985 123.635 +-97.0898 -29.1176 120.81 +-96.9878 -28.5695 118.536 +-96.9153 -28.0423 116.348 +-96.7475 -27.4997 114.097 +-97.318 -27.1751 112.75 +-97.4822 -26.7435 110.96 +-97.0311 -26.1542 108.515 +-97.2726 -25.7618 106.886 +-97.4254 -25.3529 105.19 +-96.9472 -24.7898 102.854 +-97.3212 -24.4536 101.459 +-97.5398 -24.0839 99.9246 +-97.9468 -23.7654 98.6034 +-97.3563 -23.2133 96.3125 +-97.7222 -22.8974 95.0018 +-97.2874 -22.401 92.9426 +-97.3986 -22.0385 91.4383 +-97.4903 -21.6772 89.9394 +-96.9775 -21.1894 87.9155 +-97.763 -20.9903 87.0895 +-97.352 -20.5388 85.2159 +-97.6638 -20.2458 84.0003 +-97.3575 -19.8301 82.2756 +-97.6361 -19.539 81.0677 +-97.6707 -19.203 79.6739 +-97.7648 -18.8834 78.3476 +-97.9981 -18.5943 77.1481 +-97.7478 -18.2182 75.5876 +-98.5013 -18.032 74.8153 +-98.4551 -17.7015 73.4442 +-98.4718 -17.3868 72.1381 +-98.3921 -17.0593 70.7795 +-97.972 -16.6784 69.1993 +-98.4266 -16.4503 68.2526 +-98.3802 -16.1409 66.9688 +-98.3183 -15.8329 65.6912 +-98.3239 -15.5396 64.4741 +-98.2317 -15.2345 63.2082 +-98.2083 -14.9437 62.0018 +-98.5081 -14.7045 61.0096 +-100.324 -14.6888 60.9442 +-102.061 -14.6545 60.802 +-103.974 -14.6384 60.7349 +-106.584 -14.7106 61.0347 +-107.734 -14.5741 60.4685 +-110.535 -14.6533 60.7969 +-112.301 -14.5858 60.5167 +-114.686 -14.5903 60.5357 +-117.785 -14.6743 60.8841 +-120.013 -14.6385 60.7354 +-123.315 -14.7223 61.0832 +-162.968 -19.0384 78.9907 +-164.389 -18.7866 77.9461 +-163.639 -18.2884 75.8789 +-164.404 -17.963 74.5288 +-163.702 -17.4804 72.5265 +-164.255 -17.1354 71.0954 +-163.787 -16.6868 69.2341 +-165.047 -16.4154 68.1078 +-164.173 -15.9338 66.1097 +-165.502 -15.6677 65.0058 +-164.963 -15.2257 63.1718 +-163.47 -14.703 61.0033 +-113.899 -9.97817 41.3997 +-111.166 -9.48045 39.3346 +-110.101 -9.13545 37.9032 +-108.735 -8.77267 36.398 +-108.583 -8.51284 35.32 +-108.706 -8.276 34.3373 +-108.152 -7.99 33.1507 +-108.254 -7.75487 32.1752 +-108.443 -7.52655 31.2279 +-110.545 -7.42725 30.8159 +-109.854 -7.13833 29.6171 +-108.86 -6.83459 28.3569 +-108.723 -6.58828 27.335 +-110.226 -6.4394 26.7172 +-110.558 -6.21924 25.8038 +-111.176 -6.01403 24.9524 +-112.079 -5.82199 24.1556 +-113.856 -5.67053 23.5272 +-115.435 -5.50291 22.8317 +-121.624 -5.53939 22.9831 +-157.616 -6.84478 28.3992 +-160.13 -6.61581 27.4492 +-158.397 -6.21078 25.7687 +-163.462 -6.06628 25.1692 +-164.473 -5.75952 23.8964 +-3244.61 -106.846 443.307 +-861.962 -26.5894 110.32 +-379.55 -10.9195 45.3055 +-379.346 -10.1271 42.0178 +-896.263 -22.0723 91.5787 +-404.728 -9.1313 37.886 +-404.256 -8.28706 34.3832 +-401.259 -7.39949 30.7007 +-400.322 -6.55913 27.214 +-144.829 -2.07556 8.61154 +-143.703 -1.76463 7.32149 +-400.918 -4.10149 17.0172 +-404.653 -3.311 13.7374 +-402.662 -2.4706 10.2506 +-145.178 -0.593765 2.46355 +-145.894 -0.298324 1.23776 +119.3 4.44089e-15 0 +119.295 -0.234794 1.01426 +120.182 -0.473111 2.04373 +119.859 -0.707851 3.05776 +119.727 -0.942929 4.07324 +119.786 -1.17951 5.09522 +119.836 -1.41639 6.11851 +119.676 -1.65081 7.13114 +120.506 -1.90044 8.20948 +119.929 -2.12869 9.19546 +119.942 -2.36661 10.2232 +119.846 -2.60256 11.2425 +120.636 -2.85955 12.3526 +120.421 -3.09431 13.3667 +120.297 -3.3312 14.3901 +120.956 -3.59137 15.5139 +120.615 -3.82301 16.5146 +120.462 -4.06025 17.5394 +120.696 -4.31128 18.6238 +120.524 -4.54865 19.6492 +120.147 -4.77786 20.6393 +120.449 -5.03469 21.7488 +120.446 -5.28016 22.8091 +119.943 -5.5035 23.7739 +120.606 -5.78155 24.975 +120.573 -6.02846 26.0416 +120.335 -6.26554 27.0657 +120.768 -6.53897 28.2469 +121.19 -6.81459 29.4375 +121.018 -7.0585 30.4912 +121.32 -7.33144 31.6702 +121.032 -7.56991 32.7003 +120.734 -7.80784 33.7282 +121.291 -8.10279 35.0023 +120.973 -8.3412 36.0321 +120.836 -8.59253 37.1178 +121.069 -8.87185 38.3244 +121.67 -9.18134 39.6614 +121.31 -9.42045 40.6942 +121.695 -9.71907 41.9842 +121.878 -10.0045 43.2171 +121.205 -10.2203 44.1493 +117.071 -10.1351 43.7815 +113.976 -10.1255 43.7397 +111.077 -10.1213 43.7217 +107.632 -10.0547 43.434 +105.122 -10.0635 43.4719 +102.527 -10.0541 43.4316 +99.9419 -10.0354 43.3506 +97.5478 -10.0259 43.3098 +96.2499 -10.1222 43.7258 +97.389 -10.4763 45.2553 +96.89 -10.6577 46.0389 +96.9214 -10.8983 47.0782 +97.5652 -11.2115 48.4312 +96.7729 -11.3614 49.0789 +96.5945 -11.5832 50.037 +96.1426 -11.7729 50.8563 +96.4706 -12.0601 52.0968 +96.5224 -12.3161 53.2029 +96.1288 -12.5169 54.0701 +96.5886 -12.8315 55.4293 +96.4313 -13.0676 56.449 +96.8599 -13.3865 57.8266 +96.2535 -13.5646 58.5962 +96.3996 -13.8505 59.8311 +96.6148 -14.1502 61.1259 +96.7308 -14.4394 62.3752 +96.1684 -14.6293 63.1952 +96.2579 -14.9202 64.4518 +96.3323 -15.2125 65.7148 +96.4727 -15.5194 67.0404 +96.5157 -15.8147 68.3162 +96.5432 -16.1114 69.5977 +95.9161 -16.3008 70.4159 +96.7098 -16.7361 72.2961 +95.9797 -16.9119 73.0556 +96.026 -17.2265 74.4146 +96.7547 -17.6703 76.3318 +95.9901 -17.8457 77.0895 +95.8322 -18.1354 78.341 +96.5716 -18.6016 80.3549 +95.8481 -18.791 81.1729 +96.5404 -19.2628 83.2112 +96.3116 -19.5577 84.4851 +96.2147 -19.8837 85.8931 +96.0999 -20.2107 87.3058 +95.822 -20.5077 88.5889 +95.8161 -20.8679 90.1446 +95.5042 -21.1663 91.4338 +95.9544 -21.6405 93.4823 +95.8844 -22.0055 95.0589 +96.3491 -22.5016 97.2019 +95.9566 -22.8048 98.5119 +96.23 -23.2733 100.535 +96.0689 -23.6447 102.14 +95.6857 -23.967 103.532 +95.8811 -24.4415 105.582 +95.5222 -24.7825 107.055 +95.7286 -25.2782 109.196 +95.7111 -25.7248 111.125 +95.2209 -26.0513 112.536 +95.405 -26.5707 114.78 +95.3692 -27.0401 116.807 +94.8734 -27.3865 118.303 +95.0277 -27.93 120.651 +95.0266 -28.4404 122.856 +95.1716 -29.0069 125.303 +95.1624 -29.5398 127.605 +95.1772 -30.0933 129.996 +94.9843 -30.5935 132.157 +94.4199 -30.9837 133.843 +94.7832 -31.6918 136.902 +94.602 -32.2344 139.246 +94.4404 -32.7976 141.678 +94.2424 -33.3628 144.12 +94.4846 -34.1016 147.311 +93.8407 -34.5362 149.189 +94.4065 -35.4349 153.071 +93.8946 -35.9496 155.294 +93.35 -36.4651 157.521 +93.8067 -37.3934 161.531 +93.7137 -38.1289 164.708 +93.9048 -39.0055 168.495 +94.129 -39.9257 172.47 +93.735 -40.6095 175.424 +93.8852 -41.556 179.513 +93.3 -42.2035 182.31 +93.1977 -43.095 186.161 +90.5365 -42.8086 184.924 +89.8909 -43.4757 187.805 +86.7124 -42.9121 185.371 +86.0248 -43.5756 188.237 +83.3784 -43.2468 186.817 +82.5224 -43.8454 189.402 +80.1722 -43.6519 188.566 +78.8547 -44.017 190.144 +76.2323 -43.646 188.541 +75.4723 -44.3418 191.547 +71.6524 -43.2211 186.706 +71.1402 -44.081 190.42 +69.4986 -44.2619 191.202 +68.2391 -44.6956 193.075 +66.4753 -44.8068 193.555 +64.5227 -44.7858 193.465 +62.9377 -45.0186 194.47 +61.5442 -45.3995 196.116 +56.9451 -43.3564 187.29 +55.4307 -43.5971 188.33 +52.7529 -42.9004 185.32 +51.8156 -43.6124 188.396 +49.3249 -43.0141 185.811 +48.2392 -43.6347 188.492 +45.872 -43.0921 186.148 +44.6978 -43.664 188.619 +42.5953 -43.3321 187.185 +41.0834 -43.5907 188.302 +38.8767 -43.0953 186.162 +37.5894 -43.6131 188.399 +35.5177 -43.2195 186.699 +34.2782 -43.8431 189.393 +32.0357 -43.1749 186.506 +30.8332 -43.9045 189.658 +28.4681 -42.9597 185.576 +27.431 -44.0192 190.153 +25.2307 -43.2218 186.709 +23.9717 -44.031 190.204 +21.8482 -43.2473 186.819 +20.5189 -44.0289 190.195 +18.4599 -43.2369 186.774 +17.1174 -44.1255 190.612 +15.0563 -43.1455 186.379 +13.742 -44.321 191.457 +11.7335 -43.266 186.899 +10.2631 -44.1656 190.786 +8.3662 -43.2152 186.68 +6.84379 -44.1994 190.932 +5.04168 -43.422 187.574 +3.42765 -44.2872 191.311 +1.672 -43.2098 186.657 +7.77156e-15 -44.4518 192.022 +-1.67549 -43.3 187.047 +-3.43812 -44.4225 191.895 +-5.03383 -43.3544 187.281 +-6.8752 -44.4022 191.808 +-8.40109 -43.3957 187.46 +-10.3625 -44.5937 192.635 +-11.8312 -43.6261 188.455 +-13.8397 -44.6361 192.818 +-15.2917 -43.8201 189.293 +-17.3701 -44.777 193.427 +-18.7474 -43.9103 189.683 +-20.8743 -44.7915 193.489 +-22.2218 -43.9868 190.013 +-24.4714 -44.9487 194.168 +-25.7137 -44.0492 190.283 +-27.9877 -44.9126 194.012 +-29.2958 -44.2089 190.973 +-31.6623 -45.0851 194.758 +-32.7619 -44.1537 190.734 +-35.2679 -45.109 194.861 +-36.2831 -44.151 190.722 +-38.8487 -45.074 194.71 +-39.9932 -44.333 191.509 +-42.5179 -45.1128 194.877 +-43.5044 -44.2567 191.179 +-46.2274 -45.1584 195.074 +-47.2493 -44.386 191.738 +-50.0053 -45.2321 195.393 +-51.2778 -44.7173 193.169 +-53.912 -45.3769 196.018 +-54.9977 -44.7258 193.206 +-57.6633 -45.353 195.915 +-58.706 -44.6972 193.082 +-61.8074 -45.5937 196.955 +-63.0279 -45.0831 194.749 +-67.5202 -46.8663 202.452 +-68.8868 -46.4322 200.577 +-72.7645 -47.6595 205.879 +-73.7379 -46.962 202.865 +-77.3992 -47.9592 207.173 +-77.9211 -47.0025 203.041 +-81.4212 -47.8368 206.644 +-82.5361 -47.2551 204.132 +-85.5976 -47.7811 206.404 +-86.2951 -46.9856 202.968 +-88.5787 -47.063 203.302 +-89.1603 -46.2459 199.772 +-94.0782 -47.655 205.859 +-94.3012 -46.6676 201.594 +-98.5546 -47.6658 205.906 +-99.5772 -47.0833 203.389 +-103.412 -47.8181 206.563 +-103.339 -46.7448 201.927 +-106.779 -47.263 204.166 +-106.341 -46.0709 199.016 +-108.542 -46.0389 198.878 +-111.703 -46.3984 200.431 +-116.839 -47.5377 205.352 +-117 -46.6388 201.469 +-107.5 -41.9924 181.398 +-102.726 -39.3309 169.901 +-96.9302 -36.3821 157.163 +-96.6622 -35.5745 153.674 +-96.9752 -35.0006 151.195 +-97.305 -34.4469 148.803 +-96.7279 -33.5921 145.111 +-96.9753 -33.0432 142.739 +-97.2996 -32.5333 140.537 +-97.4219 -31.9688 138.098 +-97.2212 -31.3138 135.269 +-97.3258 -30.7726 132.931 +-97.5724 -30.2879 130.837 +-97.0751 -29.587 127.809 +-97.6746 -29.2329 126.28 +-97.7062 -28.7173 124.052 +-97.0282 -28.0085 120.99 +-96.9255 -27.4812 118.713 +-97.0412 -27.0265 116.749 +-97.5108 -26.6779 115.242 +-97.318 -26.1567 112.991 +-97.2224 -25.6727 110.9 +-97.0311 -25.174 108.746 +-97.4051 -24.8299 107.26 +-97.3585 -24.386 105.342 +-97.0823 -23.8941 103.217 +-97.3894 -23.5536 101.746 +-97.1268 -23.0829 99.7131 +-97.3911 -22.7448 98.2527 +-97.6367 -22.4076 96.796 +-97.6514 -22.0232 95.1355 +-97.216 -21.5457 93.0726 +-97.5425 -21.2439 91.7689 +-97.4903 -20.8648 90.1314 +-97.6357 -20.5337 88.7011 +-97.0994 -20.0665 86.6829 +-97.7235 -19.8445 85.7237 +-97.2893 -19.4123 83.8567 +-97.3575 -19.0869 82.4512 +-97.5601 -18.792 81.1775 +-97.8239 -18.5123 79.9692 +-97.9963 -18.2187 78.7007 +-98.3867 -17.9684 77.6194 +-97.826 -17.5494 75.8095 +-98.1073 -17.2868 74.6751 +-97.9791 -16.9557 73.245 +-97.9926 -16.6537 71.9402 +-97.9902 -16.3529 70.6408 +-98.7001 -16.1727 69.8623 +-98.5894 -15.8599 68.5113 +-98.3802 -15.5359 67.1117 +-98.4007 -15.2523 65.8865 +-98.3239 -14.9572 64.6117 +-98.3151 -14.676 63.3969 +-98.2922 -14.3959 62.1872 +-98.6768 -14.1777 61.2445 +-100.239 -14.1264 61.0228 +-102.146 -14.1171 60.9826 +-104.06 -14.1014 60.9147 +-106.756 -14.1822 61.2639 +-107.907 -14.0505 60.6949 +-110.709 -14.1263 61.0226 +-112.301 -14.0391 60.6458 +-112.928 -13.8283 59.7352 +-116.814 -14.0079 60.5109 +-120.19 -14.1107 60.955 +-122.246 -14.0477 60.6827 +-163.326 -18.3651 79.3331 +-163.581 -17.9935 77.728 +-163.368 -17.5738 75.9149 +-164.676 -17.3183 74.8113 +-164.248 -16.8813 72.9236 +-164.073 -16.4749 71.1679 +-164.979 -16.1783 69.8868 +-165.047 -15.8001 68.2532 +-164.728 -15.3884 66.4746 +-165.317 -15.0636 65.0716 +-164.684 -14.6302 63.1994 +-164.777 -14.2652 61.6223 +-114.836 -9.68319 41.8292 +-111.072 -9.11742 39.3853 +-109.346 -8.73285 37.724 +-108.829 -8.45123 36.5075 +-108.583 -8.19379 35.3954 +-108.42 -7.94492 34.3203 +-107.579 -7.64986 33.0457 +-108.254 -7.46423 32.2438 +-108.73 -7.26369 31.3775 +-109.968 -7.11159 30.7205 +-109.854 -6.87079 29.6803 +-108.956 -6.58428 28.4426 +-109.594 -6.39217 27.6128 +-110.42 -6.20898 26.8214 +-110.947 -6.00722 25.9499 +-111.176 -5.78864 25.0056 +-112.372 -5.61843 24.2704 +-113.759 -5.45332 23.5571 +-116.513 -5.34613 23.0941 +-121.918 -5.3447 23.0879 +-158.009 -6.60467 28.5307 +-159.933 -6.36004 27.474 +-161.06 -6.07853 26.2579 +-162.475 -5.80366 25.0705 +-165.561 -5.58034 24.1058 +-3244.61 -102.842 444.253 +-150.898 -4.48039 19.3543 +-379.748 -10.5158 45.4259 +-378.75 -9.73229 42.0413 +-895.468 -21.2262 91.6926 +-403.932 -8.77178 37.8921 +-403.06 -7.95288 34.3547 +-402.854 -7.15047 30.8885 +-403.515 -6.36365 27.4895 +-142.334 -1.96335 8.48123 +-142.405 -1.68315 7.27083 +-401.617 -3.95465 17.0832 +-401.155 -3.15937 13.6478 +-402.462 -2.37681 10.2673 +-145.778 -0.573873 2.479 +-146.094 -0.287538 1.2421 +119.3 4.44089e-15 0 +119.095 -0.225253 1.01463 +119.982 -0.453894 2.04451 +119.759 -0.679663 3.06146 +119.727 -0.906136 4.08159 +119.786 -1.13349 5.10565 +119.836 -1.36113 6.13104 +119.676 -1.5864 7.14574 +119.608 -1.81268 8.16501 +119.231 -2.03372 9.16068 +120.141 -2.27804 10.2612 +119.846 -2.50101 11.2655 +119.74 -2.72758 12.2861 +120.52 -2.97602 13.4051 +120.297 -3.20122 14.4195 +121.055 -3.45406 15.5584 +120.615 -3.67384 16.5484 +120.462 -3.90182 17.5753 +119.905 -4.11593 18.5397 +120.425 -4.36759 19.6733 +120.048 -4.58766 20.6646 +120.645 -4.84613 21.8288 +120.446 -5.07413 22.8558 +120.825 -5.32766 23.9978 +120.606 -5.55596 25.0262 +120.377 -5.78385 26.0527 +121.017 -6.05518 27.2748 +120.768 -6.28383 28.3048 +120.22 -6.49627 29.2617 +120.825 -6.77223 30.5047 +120.548 -7.00049 31.5329 +121.128 -7.28035 32.7935 +120.734 -7.50319 33.7972 +120.62 -7.74354 34.8799 +120.973 -8.01573 36.1059 +120.931 -8.26378 37.2232 +121.26 -8.53907 38.4632 +121.575 -8.81622 39.7116 +121.31 -9.05287 40.7776 +121.695 -9.33984 42.0702 +121.22 -9.56223 43.0719 +120.831 -9.79114 44.103 +116.884 -9.72414 43.8013 +113.976 -9.73036 43.8293 +110.335 -9.6614 43.5187 +108.371 -9.72872 43.8219 +105.122 -9.67079 43.5609 +102.436 -9.65319 43.4817 +99.3937 -9.5909 43.2011 +96.8199 -9.56283 43.0747 +96.703 -9.77306 44.0216 +97.389 -10.0675 45.348 +97.609 -10.3179 46.4756 +97.7268 -10.5601 47.5667 +97.5652 -10.774 48.5304 +96.8616 -10.9281 49.2244 +96.4179 -11.1109 50.0478 +96.7578 -11.3859 51.2865 +97.0828 -11.663 52.5348 +96.6095 -11.8462 53.3599 +96.9082 -12.126 54.6202 +96.3301 -12.2978 55.3941 +96.517 -12.5688 56.6149 +96.6894 -12.8415 57.843 +96.1687 -13.0239 58.6645 +96.3996 -13.3101 59.9536 +96.531 -13.5863 61.198 +95.9803 -13.7684 62.018 +96.1684 -14.0584 63.3246 +96.2579 -14.338 64.5838 +96.3323 -14.619 65.8494 +96.4727 -14.9139 67.1777 +96.5157 -15.1977 68.4561 +96.5432 -15.4827 69.7402 +96.7946 -15.8082 71.2063 +95.9958 -15.9643 71.9093 +96.7677 -16.3854 73.8062 +96.1043 -16.5678 74.6278 +96.677 -16.9672 76.4267 +95.9901 -17.1494 77.2474 +95.9854 -17.4557 78.627 +95.9632 -17.7632 80.0122 +95.8481 -18.0578 81.3391 +96.4655 -18.4969 83.317 +96.3116 -18.7946 84.6581 +96.2884 -19.1225 86.135 +96.0999 -19.4221 87.4846 +95.967 -19.7374 88.9047 +96.3196 -20.159 90.804 +95.6469 -20.3708 91.7579 +96.0958 -20.8268 93.8118 +95.7442 -21.1159 95.1143 +96.2102 -21.5924 97.2606 +95.9566 -21.915 98.7136 +96.23 -22.3652 100.741 +96.0014 -22.7061 102.277 +95.6857 -23.0318 103.744 +95.8811 -23.4878 105.798 +95.5878 -23.8318 107.347 +95.6637 -24.2754 109.346 +95.6468 -24.7043 111.278 +95.857 -25.2021 113.52 +95.405 -25.534 115.015 +95.4315 -26.0019 117.122 +95.366 -26.4546 119.162 +94.9059 -26.8059 120.744 +95.3877 -27.4345 123.575 +94.9337 -27.8055 125.247 +95.2212 -28.4048 127.946 +95.4676 -29.0073 130.66 +95.2137 -29.4706 132.747 +94.7598 -29.8818 134.599 +94.5595 -30.3833 136.858 +94.7124 -31.0129 139.694 +94.4404 -31.5179 141.969 +94.7797 -32.2437 145.238 +94.3786 -32.7341 147.447 +94.102 -33.2809 149.91 +93.6854 -33.7922 152.213 +93.9454 -34.5657 155.697 +93.8 -35.2111 158.604 +93.8559 -35.9532 161.947 +94.15 -36.8117 165.814 +93.9048 -37.4835 168.84 +93.7065 -38.1955 172.047 +94.1044 -39.1788 176.476 +93.7944 -39.896 179.707 +93.9693 -40.8476 183.993 +94.206 -41.8615 188.56 +92.1724 -41.8816 188.651 +92.5534 -43.0166 193.763 +88.9517 -42.3027 190.548 +88.5872 -43.1226 194.241 +85.1728 -42.4538 191.228 +85.0231 -43.4113 195.541 +81.7029 -42.7494 192.56 +81.402 -43.666 196.688 +77.8082 -42.8101 192.833 +77.8017 -43.9267 197.863 +74.6992 -43.3008 195.043 +74.7998 -44.5403 200.626 +71.2678 -43.6176 196.471 +71.1041 -44.7548 201.593 +69.2993 -44.8877 202.191 +68.7254 -45.8415 206.488 +65.614 -45.1016 203.155 +64.7311 -45.8872 206.694 +62.0005 -45.3636 204.335 +57.8838 -43.7501 197.067 +54.677 -42.7301 192.473 +53.7826 -43.5017 195.948 +51.0274 -42.7624 192.618 +50.0536 -43.5093 195.982 +47.3427 -42.7384 192.51 +46.4524 -43.6074 196.425 +43.5909 -42.6146 191.953 +42.9753 -43.819 197.377 +40.3122 -42.943 193.432 +39.1158 -43.6133 196.451 +36.7022 -42.9185 193.321 +35.5805 -43.7332 196.991 +33.0425 -42.7941 192.761 +31.9596 -43.7327 196.989 +29.7688 -43.1699 194.454 +28.4331 -43.8469 197.503 +26.0661 -42.9107 193.286 +24.8613 -43.8831 197.666 +22.6293 -43.0457 193.894 +21.2924 -43.9059 197.769 +19.1404 -43.0817 194.056 +17.71 -43.8719 197.616 +15.7389 -43.342 195.229 +14.1675 -43.9104 197.789 +12.1853 -43.1785 194.493 +10.6608 -44.0873 198.586 +8.71079 -43.2397 194.768 +7.08111 -43.9475 197.956 +5.22492 -43.2444 194.789 +3.54458 -44.011 198.242 +1.74182 -43.2574 194.848 +7.21645e-15 -44.0827 198.566 +-1.74443 -43.3224 195.141 +-3.54458 -44.011 198.242 +-5.23277 -43.3092 195.081 +-7.1195 -44.1859 199.03 +-8.74569 -43.4128 195.548 +-10.7236 -44.3469 199.756 +-12.2769 -43.503 195.954 +-14.3977 -44.6239 201.003 +-15.8409 -43.6228 196.494 +-18.0325 -44.6707 201.214 +-19.4375 -43.7503 197.068 +-21.6269 -44.5957 200.876 +-23.0029 -43.7563 197.095 +-25.4341 -44.8942 202.221 +-26.6273 -43.8346 197.448 +-29.0176 -44.7483 201.564 +-30.3009 -43.9414 197.929 +-32.7104 -44.7602 201.617 +-34.0823 -44.1408 198.827 +-36.2056 -44.5015 200.452 +-37.577 -43.9412 197.928 +-40.089 -44.6982 201.338 +-41.329 -44.026 198.31 +-43.9317 -44.7943 201.771 +-45.2142 -44.2015 199.101 +-48.072 -45.128 203.274 +-49.0469 -44.2767 199.439 +-51.7713 -45.0023 202.708 +-52.8302 -44.2732 199.424 +-55.7755 -45.1137 203.209 +-56.8683 -44.4427 200.187 +-59.9787 -45.3335 204.199 +-61.0065 -44.6363 201.059 +-64.5264 -45.742 206.04 +-66.1553 -45.4737 204.831 +-70.4559 -46.9958 211.687 +-71.7743 -46.4908 209.412 +-74.9132 -47.1525 212.393 +-76.2081 -46.6412 210.09 +-79.1093 -47.1063 212.185 +-80.4777 -46.6503 210.131 +-83.7864 -47.3057 213.083 +-84.6618 -46.5808 209.818 +-87.4332 -46.9013 211.261 +-87.7493 -45.9132 206.811 +-91.939 -46.9425 211.447 +-93.1079 -46.4091 209.044 +-96.9253 -47.1815 212.524 +-97.4114 -46.3259 208.67 +-101.471 -47.1612 212.432 +-102.548 -46.5959 209.886 +-107.269 -47.6664 214.708 +-106.641 -46.356 208.805 +-110.91 -47.1761 212.499 +-106.987 -44.5422 200.635 +-108.87 -44.3766 199.889 +-116.093 -46.3402 208.734 +-121.299 -47.4269 213.629 +-121.382 -46.4978 209.444 +-97.2 -36.4875 164.353 +-96.8891 -35.6487 160.575 +-97.0847 -35.0183 157.736 +-97.028 -34.3158 154.572 +-97.0282 -33.6533 151.587 +-96.8214 -32.9383 148.367 +-97.2725 -32.4632 146.227 +-96.9753 -31.7539 143.032 +-97.2996 -31.2638 140.824 +-96.9687 -30.5783 137.737 +-97.2212 -30.092 135.546 +-97.3258 -29.5718 133.203 +-97.5724 -29.1061 131.105 +-97.6104 -28.5894 128.778 +-97.6746 -28.0922 126.538 +-97.7062 -27.5968 124.307 +-97.0282 -26.9156 121.238 +-97.05 -26.4429 119.109 +-97.0412 -25.972 116.988 +-96.9383 -25.4865 114.801 +-97.318 -25.136 113.222 +-97.2224 -24.6709 111.127 +-97.0311 -24.1918 108.969 +-97.3389 -23.845 107.407 +-97.3585 -23.4345 105.558 +-97.6903 -23.1055 104.076 +-97.3212 -22.6187 101.883 +-97.058 -22.1666 99.847 +-97.2522 -21.8264 98.3143 +-96.9358 -21.3787 96.2979 +-97.7929 -21.1946 95.4685 +-97.216 -20.705 93.2632 +-97.3986 -20.3848 91.8211 +-97.6354 -20.0805 90.4503 +-97.4894 -19.7029 88.7496 +-97.6155 -19.386 87.3221 +-97.7235 -19.0702 85.8993 +-97.8885 -18.7697 84.546 +-97.3575 -18.3421 82.6201 +-98.0924 -18.1573 81.7875 +-97.9005 -17.8039 80.1958 +-98.305 -17.563 79.1103 +-97.6872 -17.1445 77.2254 +-97.826 -16.8646 75.9648 +-98.0285 -16.5989 74.7679 +-98.0585 -16.3073 73.4545 +-97.9127 -15.9908 72.0288 +-98.6332 -15.8179 71.2501 +-98.6192 -15.5289 69.948 +-98.5894 -15.2411 68.6516 +-98.544 -14.9546 67.3612 +-98.4007 -14.6572 66.0215 +-98.3239 -14.3736 64.744 +-98.2317 -14.0913 63.4728 +-98.2922 -13.8342 62.3145 +-98.0864 -13.543 61.0027 +-100.324 -13.5866 61.1994 +-102.232 -13.5776 61.1586 +-104.06 -13.5511 61.0395 +-106.067 -13.5408 60.993 +-107.214 -13.4155 60.4287 +-110.796 -13.5858 61.1956 +-111.864 -13.4388 60.5334 +-112.84 -13.2784 59.811 +-117.079 -13.4918 60.7723 +-119.303 -13.46 60.6291 +-121.266 -13.3913 60.3195 +-162.252 -17.5325 78.973 +-165.198 -17.4624 78.6575 +-164.18 -16.9721 76.4487 +-164.676 -16.6426 74.9645 +-163.793 -16.1777 72.8706 +-165.169 -15.9378 71.7901 +-164.704 -15.5211 69.9131 +-164.954 -15.1752 68.3548 +-163.25 -14.6553 66.013 +-165.224 -14.4677 65.1683 +-164.312 -14.0276 63.1857 +-164.31 -13.6697 61.5737 +-115.492 -9.3585 42.1543 +-111.072 -8.76167 39.4659 +-110.195 -8.45721 38.0945 +-108.64 -8.10737 36.5187 +-108.583 -7.87408 35.4679 +-108.325 -7.62822 34.3604 +-108.342 -7.40352 33.3483 +-108.732 -7.20467 32.4526 +-108.155 -6.94333 31.2754 +-110.353 -6.85801 30.8911 +-109.661 -6.59111 29.6889 +-109.439 -6.35541 28.6272 +-109.013 -6.11021 27.5227 +-110.42 -5.96671 26.8763 +-110.656 -5.75765 25.9347 +-111.176 -5.56277 25.0568 +-112.274 -5.39452 24.299 +-113.856 -5.24504 23.6257 +-115.729 -5.10298 22.9858 +-121.329 -5.11134 23.0234 +-158.304 -6.35882 28.6425 +-159.539 -6.09681 27.4624 +-159.877 -5.79842 26.1183 +-161.586 -5.54669 24.9844 +-161.21 -5.22164 23.5203 +-851.532 -25.9371 116.831 +-148.023 -4.22353 19.0244 +-380.046 -10.1134 45.5547 +-379.743 -9.37707 42.2379 +-896.164 -20.4139 91.9519 +-403.633 -8.42329 37.9417 +-401.367 -7.61045 34.2804 +-402.655 -6.86806 30.9364 +-403.215 -6.11081 27.5254 +-142.234 -1.88542 8.49265 +-143.303 -1.62768 7.33171 +-402.217 -3.80603 17.1438 +-401.855 -3.04138 13.6996 +-3275.38 -18.5886 83.7302 +-145.578 -0.550724 2.48067 +-145.494 -0.275183 1.23953 +119.4 4.88498e-15 0 +119.095 -0.216089 1.01662 +119.982 -0.435427 2.04852 +119.759 -0.652011 3.06747 +119.827 -0.869996 4.09301 +119.786 -1.08737 5.11567 +119.836 -1.30575 6.14307 +119.676 -1.52186 7.15977 +119.608 -1.73893 8.18103 +120.228 -1.9673 9.2554 +120.141 -2.18536 10.2813 +119.846 -2.39926 11.2876 +119.74 -2.61661 12.3102 +120.421 -2.85259 13.4204 +120.297 -3.07098 14.4478 +120.064 -3.2864 15.4613 +120.714 -3.52726 16.5945 +120.462 -3.74308 17.6098 +120.696 -3.9745 18.6986 +120.425 -4.1899 19.7119 +120.934 -4.43351 20.858 +120.645 -4.64897 21.8717 +120.446 -4.86769 22.9007 +120.041 -5.07774 23.8889 +119.823 -5.29534 24.9126 +120.573 -5.55754 26.1462 +120.14 -5.76674 27.1304 +120.671 -6.02333 28.3375 +121.093 -6.27725 29.5321 +120.825 -6.4967 30.5646 +120.644 -6.72106 31.6201 +121.032 -6.97858 32.8316 +120.734 -7.19792 33.8636 +121.387 -7.47574 35.1706 +121.068 -7.69571 36.2054 +120.931 -7.92757 37.2963 +121.165 -8.18523 38.5085 +121.765 -8.47072 39.8516 +121.31 -8.68455 40.8576 +121.695 -8.95985 42.1528 +121.972 -9.23007 43.4241 +121.58 -9.45102 44.4636 +116.791 -9.32106 43.8521 +113.139 -9.2659 43.5926 +110.242 -9.26053 43.5674 +107.632 -9.26924 43.6084 +104.293 -9.20421 43.3024 +101.794 -9.2024 43.2939 +99.3024 -9.19225 43.2462 +96.8199 -9.17377 43.1592 +97.0656 -9.41058 44.2733 +97.2987 -9.64899 45.3949 +96.89 -9.82516 46.2237 +97.9953 -10.1583 47.791 +97.5652 -10.3357 48.6257 +97.1277 -10.5123 49.4566 +96.6828 -10.6881 50.2837 +96.9335 -10.9425 51.4805 +96.4706 -11.118 52.306 +96.6095 -11.3642 53.4646 +96.1288 -11.5391 54.2872 +96.4163 -11.808 55.5524 +96.517 -12.0575 56.726 +95.922 -12.2213 57.4966 +96.0838 -12.483 58.7279 +96.3996 -12.7685 60.0713 +96.531 -13.0336 61.3181 +95.9803 -13.2082 62.1397 +96.1684 -13.4865 63.4489 +96.2579 -13.7546 64.7105 +96.4142 -14.0361 66.0346 +96.4727 -14.3071 67.3096 +96.5157 -14.5793 68.5904 +96.6236 -14.8652 69.9353 +95.9161 -15.0274 70.6986 +96.7098 -15.4287 72.5864 +96.0585 -15.6036 73.4091 +96.1043 -15.8938 74.7743 +95.9775 -16.1591 76.0227 +95.9901 -16.4517 77.399 +95.9854 -16.7455 78.7813 +95.9632 -17.0405 80.1693 +96.3764 -17.4186 81.9479 +96.4655 -17.7443 83.4805 +96.3116 -18.03 84.8243 +95.5511 -18.204 85.6432 +96.0999 -18.6319 87.6563 +95.967 -18.9344 89.0792 +95.888 -19.2522 90.5745 +95.6469 -19.542 91.938 +96.0958 -19.9794 93.9959 +95.8844 -20.2865 95.4405 +96.2102 -20.714 97.4515 +95.9566 -21.0234 98.9074 +95.6844 -21.3336 100.367 +96.0014 -21.7823 102.478 +95.6857 -22.0948 103.948 +95.8149 -22.5166 105.932 +95.5222 -22.8466 107.485 +95.6637 -23.2878 109.56 +95.1326 -23.572 110.897 +95.2845 -24.0323 113.063 +95.405 -24.4951 115.24 +95.4315 -24.944 117.352 +94.6272 -25.1816 118.47 +94.9059 -25.7153 120.981 +94.9062 -26.1854 123.193 +94.8148 -26.6408 125.335 +95.28 -27.266 128.276 +95.3514 -27.7932 130.757 +95.1563 -28.2546 132.927 +94.9863 -28.7346 135.186 +94.7273 -29.1989 137.37 +95.0987 -29.8725 140.539 +94.8217 -30.3578 142.822 +95.0483 -31.0196 145.936 +94.9085 -31.5787 148.566 +94.6767 -32.1219 151.122 +94.252 -32.6134 153.434 +93.7931 -33.1056 155.749 +93.9 -33.8148 159.086 +93.9052 -34.5086 162.35 +94.15 -35.314 166.139 +93.9526 -35.9768 169.258 +93.7535 -36.66 172.472 +94.1044 -37.5848 176.823 +93.8398 -38.2913 180.146 +94.1031 -39.2417 184.618 +94.3375 -40.2143 189.193 +93.8945 -40.9282 192.552 +94.2861 -42.0391 197.779 +92.0204 -41.9815 197.508 +92.1258 -43.0207 202.396 +88.1235 -42.1375 198.241 +88.2271 -43.2144 203.308 +84.6878 -42.5086 199.987 +84.5112 -43.4895 204.602 +81.0701 -42.7899 201.311 +80.8478 -43.7895 206.014 +77.5359 -43.1165 202.847 +77.3308 -44.174 207.822 +73.9716 -43.4305 204.324 +73.611 -44.4478 209.11 +70.283 -43.6727 205.464 +70.2396 -44.9453 211.451 +67.7189 -44.6546 210.084 +67.5963 -45.9689 216.266 +64.3011 -45.1328 212.333 +63.81 -46.267 217.669 +56.9752 -42.7146 200.957 +56.3449 -43.7201 205.687 +52.8803 -42.5123 200.005 +52.1342 -43.4741 204.53 +49.3737 -42.7583 201.162 +48.477 -43.6567 205.388 +45.3225 -42.5046 199.969 +44.4515 -43.4802 204.558 +42.1065 -43.0294 202.437 +41.3101 -44.1858 207.878 +38.2148 -42.8691 201.683 +37.5948 -44.3291 208.552 +34.594 -42.9805 202.208 +33.7742 -44.3355 208.582 +30.833 -42.8941 201.801 +29.9918 -44.369 208.74 +27.1494 -42.8758 201.715 +26.2994 -44.5328 209.51 +23.5802 -43.0296 202.438 +22.4423 -44.3941 208.858 +19.8784 -42.9223 201.934 +18.6252 -44.2617 208.235 +16.3116 -43.0916 202.73 +14.907 -44.3224 208.521 +12.6798 -43.1028 202.783 +11.1894 -44.3906 208.841 +9.08156 -43.246 203.457 +7.46151 -44.4245 209.001 +5.43957 -43.1893 203.19 +3.74529 -44.611 209.878 +1.81774 -43.3063 203.74 +8.10463e-15 -44.4931 209.324 +-1.80988 -43.1192 202.86 +-3.75052 -44.6734 210.172 +-5.46051 -43.3556 203.972 +-7.49292 -44.6114 209.88 +-9.09464 -43.3084 203.75 +-11.2627 -44.6813 210.209 +-12.8263 -43.6007 205.125 +-15.0116 -44.6337 209.985 +-16.5549 -43.7342 205.753 +-18.9128 -44.9451 211.45 +-20.3193 -43.8744 206.413 +-22.6618 -44.8283 210.9 +-24.101 -43.9798 206.909 +-26.5066 -44.8838 211.162 +-27.8151 -43.927 206.66 +-30.4372 -45.0279 211.839 +-31.5869 -43.9428 206.734 +-34.3843 -45.1364 212.35 +-35.3037 -43.8623 206.356 +-38.1158 -44.9432 211.441 +-39.2171 -43.9933 206.972 +-42.1879 -45.1247 212.295 +-43.2628 -44.2112 207.997 +-46.1564 -45.1478 212.404 +-47.0323 -44.1083 207.513 +-50.0741 -45.095 212.155 +-51.0078 -44.1735 207.82 +-54.2873 -45.2694 212.976 +-55.0836 -44.2835 208.338 +-58.1566 -45.126 212.301 +-59.1131 -44.3174 208.497 +-62.7902 -45.5275 214.19 +-63.6194 -44.6544 210.083 +-68.4442 -46.5454 218.979 +-69.1924 -45.6262 214.654 +-73.5151 -47.0413 221.312 +-74.4079 -46.2358 217.522 +-78.8526 -47.6128 224.001 +-79.0788 -46.4292 218.432 +-84.0001 -47.9837 225.746 +-82.824 -46.0572 216.682 +-87.0834 -47.1668 221.903 +-87.0074 -45.9237 216.054 +-91.0669 -46.8629 220.473 +-90.8108 -45.5819 214.446 +-96.4324 -47.2336 222.217 +-96.0985 -45.9508 216.181 +-101.399 -47.3513 222.77 +-100.688 -45.9358 216.111 +-106.458 -47.466 223.31 +-106.595 -46.4641 218.596 +-112.135 -47.8014 224.888 +-111.46 -46.4797 218.67 +-116.358 -47.4798 223.375 +-109.157 -43.5968 205.107 +-109.105 -42.6629 200.713 +-121.341 -46.4647 218.599 +-96.9619 -36.3687 171.101 +-96.9582 -35.6305 167.628 +-97 -34.931 164.338 +-97.0413 -34.252 161.143 +-97.0847 -33.5935 158.045 +-97.028 -32.9197 154.875 +-97.0282 -32.2841 151.885 +-96.8214 -31.5982 148.658 +-97.327 -31.1597 146.595 +-96.9753 -30.462 143.312 +-97.2996 -29.9919 141.101 +-97.4785 -29.4885 138.733 +-97.1065 -28.8336 135.651 +-97.3258 -28.3687 133.464 +-97.4548 -27.8882 131.204 +-97.4915 -27.3928 128.873 +-97.1931 -26.8164 126.161 +-97.7062 -26.474 124.55 +-97.0898 -25.837 121.553 +-97.05 -25.3671 119.343 +-97.0412 -24.9153 117.217 +-97.5108 -24.5939 115.705 +-97.3823 -24.1294 113.52 +-97.2224 -23.6672 111.345 +-97.6216 -23.3487 109.847 +-97.4051 -22.8902 107.69 +-97.3585 -22.4811 105.765 +-97.1499 -22.0428 103.703 +-97.3212 -21.6985 102.083 +-97.7463 -21.4155 100.752 +-97.3216 -20.9533 98.5777 +-97.5666 -20.6424 97.1149 +-97.1565 -20.2 95.0334 +-97.2874 -19.8772 93.5148 +-97.7583 -19.6277 92.3411 +-97.2727 -19.192 90.2911 +-97.4894 -18.9013 88.9238 +-97.6155 -18.5973 87.4934 +-98.0208 -18.3499 86.3296 +-97.2893 -17.8959 84.1934 +-97.8104 -17.6778 83.1673 +-97.8642 -17.3781 81.7575 +-98.0537 -17.1063 80.4789 +-98.4593 -16.8749 79.39 +-98.3867 -16.5647 77.931 +-98.3738 -16.2691 76.5401 +-98.5013 -16.0004 75.276 +-98.0585 -15.6439 73.5987 +-98.6315 -15.4529 72.7 +-98.5529 -15.162 71.3317 +-98.6192 -14.8971 70.0853 +-98.508 -14.6089 68.7296 +-98.4621 -14.3342 67.4373 +-98.4007 -14.0608 66.151 +-98.3239 -13.7888 64.871 +-98.3985 -13.541 63.7054 +-98.9631 -13.3619 62.863 +-98.4238 -13.0367 61.3327 +-99.476 -12.9237 60.8012 +-102.146 -13.0143 61.2274 +-103.374 -12.9141 60.7563 +-105.98 -12.9793 61.063 +-107.82 -12.9425 60.8897 +-110.013 -12.9409 60.8822 +-111.776 -12.8819 60.6048 +-113.719 -12.8374 60.395 +-116.108 -12.8355 60.3864 +-119.303 -12.9124 60.7481 +-121.89 -12.9125 60.7487 +-162.789 -16.8748 79.3898 +-164.389 -16.67 78.426 +-164.722 -16.3353 76.8514 +-165.401 -16.0358 75.4424 +-164.521 -15.5885 73.3381 +-165.169 -15.2894 71.931 +-164.704 -14.8897 70.0503 +-164.494 -14.5172 68.2979 +-164.358 -14.1545 66.5917 +-164.39 -13.809 64.9663 +-164.684 -13.4874 63.4531 +-164.87 -13.1583 61.9048 +-116.335 -9.04329 42.5453 +-111.729 -8.45498 39.7775 +-110.101 -8.10619 38.1366 +-108.64 -7.77752 36.5903 +-108.583 -7.55372 35.5375 +-108.23 -7.31144 34.3976 +-108.342 -7.1023 33.4137 +-108.158 -6.87506 32.3446 +-107.963 -6.64904 31.2813 +-109.968 -6.55606 30.8438 +-109.661 -6.32295 29.7471 +-109.15 -6.08071 28.6075 +-109.885 -5.90846 27.7971 +-109.74 -5.68875 26.7635 +-110.656 -5.5234 25.9856 +-111.37 -5.3458 25.15 +-112.176 -5.17054 24.3255 +-113.759 -5.02733 23.6517 +-115.925 -4.90364 23.0698 +-121.035 -4.89148 23.0126 +-157.517 -6.06979 28.5561 +-159.145 -5.83431 27.4483 +-159.186 -5.5385 26.0566 +-161.685 -5.32426 25.0487 +-165.66 -5.1475 24.2171 +-850.442 -24.85 116.91 +-149.807 -4.10054 19.2915 +-381.336 -9.73488 45.799 +-380.24 -9.00734 42.3762 +-897.258 -19.6072 92.2448 +-403.932 -8.08656 38.0443 +-403.558 -7.3407 34.5353 +-402.655 -6.58864 30.9971 +-403.515 -5.86654 27.5999 +-143.432 -1.82394 8.58098 +-144.102 -1.57017 7.38705 +-402.616 -3.6548 17.1945 +-402.055 -2.9191 13.7333 +-3275.38 -17.8323 83.8945 +-144.878 -0.525777 2.47359 +-146.594 -0.265984 1.25135 +119.4 4.88498e-15 0 +119.095 -0.206925 1.01852 +119.982 -0.416961 2.05236 +119.859 -0.624881 3.07579 +119.827 -0.8331 4.10068 +119.786 -1.04126 5.12526 +119.836 -1.25037 6.15458 +119.776 -1.45853 7.17916 +120.406 -1.6763 8.25105 +120.228 -1.88386 9.27274 +120.141 -2.09268 10.3006 +119.846 -2.29751 11.3088 +119.641 -2.50357 12.3231 +120.52 -2.73386 13.4566 +120.297 -2.94074 14.4749 +120.956 -3.17042 15.6054 +120.714 -3.37767 16.6256 +120.462 -3.58433 17.6428 +120.696 -3.80595 18.7336 +120.524 -4.01549 19.765 +120.048 -4.21437 20.7439 +120.645 -4.45181 21.9127 +120.249 -4.65365 22.9062 +120.825 -4.89416 24.09 +120.606 -5.10388 25.1223 +120.377 -5.31323 26.1527 +120.14 -5.52218 27.1812 +120.768 -5.77252 28.4135 +120.317 -5.97249 29.3977 +120.825 -6.22118 30.6218 +120.644 -6.43602 31.6793 +121.128 -6.68796 32.9194 +120.638 -6.88717 33.9 +121.482 -7.16435 35.2643 +121.068 -7.36934 36.2733 +121.122 -7.60333 37.4251 +121.26 -7.84426 38.6109 +121.765 -8.11148 39.9263 +121.31 -8.31625 40.9342 +121.789 -8.5865 42.2644 +121.314 -8.79097 43.2708 +121.205 -9.02232 44.4096 +116.604 -8.9115 43.8641 +113.139 -8.87294 43.6743 +110.335 -8.87526 43.6858 +107.632 -8.87614 43.6901 +104.293 -8.81386 43.3835 +101.794 -8.81213 43.375 +99.3024 -8.80242 43.3272 +96.8199 -8.78472 43.2401 +96.5218 -8.96099 44.1077 +97.2987 -9.23979 45.48 +96.89 -9.40848 46.3103 +97.9953 -9.72749 47.8806 +96.6742 -9.80699 48.2719 +97.039 -10.0573 49.504 +96.5945 -10.2255 50.332 +96.9335 -10.4785 51.577 +96.4706 -10.6465 52.404 +96.7836 -10.9019 53.6613 +96.9082 -11.1393 54.8299 +97.0194 -11.378 56.0047 +96.517 -11.5461 56.8323 +96.0073 -11.7134 57.6555 +96.1687 -11.9641 58.8898 +96.3153 -12.2163 60.1312 +95.7762 -12.3832 60.9526 +95.9803 -12.648 62.2561 +96.1684 -12.9145 63.5678 +96.1755 -13.1601 64.7763 +96.2504 -13.418 66.046 +96.4727 -13.7003 67.4357 +96.5157 -13.961 68.719 +95.9001 -14.1282 69.5418 +96.555 -14.486 71.3028 +95.9958 -14.6653 72.1854 +96.0585 -14.9418 73.5466 +96.026 -15.2073 74.8533 +95.9775 -15.4738 76.1651 +96.0673 -15.7666 77.6063 +96.5982 -16.1377 79.4328 +96.5716 -16.4213 80.8287 +95.8481 -16.5884 81.6515 +96.3157 -16.9654 83.507 +96.3116 -17.2653 84.9832 +96.2147 -17.553 86.3995 +96.0999 -17.8418 87.8205 +95.967 -18.1314 89.2461 +96.4635 -18.5464 91.2888 +96.1462 -18.8109 92.5911 +96.0958 -19.1321 94.172 +95.7442 -19.3978 95.4795 +96.3491 -19.8641 97.775 +95.4748 -20.0307 98.5948 +95.6162 -20.4143 100.483 +96.0689 -20.8732 102.742 +96.2879 -21.2909 104.798 +95.8149 -21.5617 106.131 +96.047 -21.9977 108.277 +95.6637 -22.3002 109.766 +95.0683 -22.557 111.03 +95.857 -23.1515 113.956 +95.342 -23.441 115.381 +95.307 -23.8549 117.418 +94.9966 -24.2079 119.156 +95.332 -24.7353 121.752 +95.809 -25.3134 124.598 +95.4691 -25.6869 126.436 +95.4563 -26.1578 128.754 +94.8288 -26.4686 130.283 +95.271 -27.089 133.337 +94.7598 -27.4503 135.116 +94.6714 -27.9441 137.546 +95.1539 -28.6222 140.884 +94.4404 -28.9533 142.514 +94.7259 -29.6033 145.713 +95.1205 -30.3071 149.178 +94.6767 -30.7597 151.405 +94.767 -31.401 154.562 +94.1484 -31.8216 156.632 +94.45 -32.5702 160.317 +93.9052 -33.0451 162.654 +94.1985 -33.8339 166.537 +94.0957 -34.5036 169.834 +93.7535 -35.1053 172.795 +93.7811 -35.8672 176.545 +93.8852 -36.6851 180.571 +93.8354 -37.4705 184.437 +93.9868 -38.3657 188.843 +94.1528 -39.3002 193.443 +94.0326 -40.148 197.616 +94.011 -41.0708 202.158 +94.1189 -42.0873 207.162 +92.7092 -42.4501 208.947 +92.3688 -43.3243 213.251 +88.8974 -42.729 210.32 +88.2573 -43.4912 214.072 +84.8817 -42.9018 211.171 +84.109 -43.6237 214.724 +80.6878 -42.9663 211.489 +80.3405 -43.9469 216.315 +76.809 -43.1839 212.56 +76.5085 -44.2382 217.749 +72.9166 -43.3876 213.562 +71.8774 -44.0428 216.787 +69.433 -43.8431 215.804 +68.2103 -44.4191 218.639 +66.8856 -44.9559 221.282 +64.8575 -45.0321 221.657 +60.9571 -43.7617 215.404 +59.1143 -43.9236 216.2 +55.5343 -42.7525 210.436 +54.6502 -43.6395 214.802 +51.8716 -43.0165 211.736 +50.7939 -43.8033 215.608 +47.8764 -42.9958 211.634 +47.0712 -44.09 217.02 +43.8211 -42.8823 211.075 +42.9129 -43.9536 216.348 +40.3287 -43.3217 213.238 +38.9493 -43.9783 216.47 +36.3765 -43.2785 213.025 +35.1821 -44.225 217.684 +32.5624 -43.3787 213.518 +31.3 -44.3405 218.252 +28.6244 -43.2879 213.071 +27.445 -44.5018 219.046 +24.8594 -43.44 213.82 +23.5398 -44.5904 219.482 +21.0477 -43.5198 214.213 +19.6013 -44.6059 219.559 +17.1982 -43.5069 214.149 +15.7301 -44.7865 220.448 +13.3391 -43.4209 213.726 +11.7599 -44.6752 219.9 +9.54392 -43.5204 214.216 +7.85239 -44.7689 220.361 +5.75369 -43.746 215.326 +3.92679 -44.7894 220.462 +1.91373 -43.6598 214.902 +9.54792e-15 -44.7763 220.398 +-1.91635 -43.7195 215.196 +-3.93552 -44.889 220.952 +-5.73799 -43.6265 214.738 +-7.86984 -44.8685 220.851 +-9.61807 -43.8585 215.88 +-11.7965 -44.8143 220.585 +-13.394 -43.5999 214.607 +-15.7719 -44.9055 221.034 +-17.2218 -43.5664 214.442 +-19.7582 -44.9629 221.316 +-21.2586 -43.9558 216.359 +-23.7907 -45.0656 221.821 +-25.2217 -44.0731 216.936 +-27.9203 -45.2724 222.84 +-29.1596 -44.0972 217.055 +-32.0933 -45.4644 223.784 +-33.198 -44.2254 217.686 +-36.1676 -45.464 223.782 +-37.2017 -44.2605 217.858 +-40.1648 -45.3509 223.226 +-41.3128 -44.3789 218.442 +-44.4394 -45.5171 224.044 +-45.3163 -44.3457 218.278 +-48.6305 -45.5506 224.209 +-49.4781 -44.4341 218.713 +-52.886 -45.6073 224.488 +-53.7858 -44.6039 219.549 +-57.3113 -45.7644 225.261 +-57.8127 -44.5065 219.07 +-61.7542 -45.8853 225.856 +-62.32 -44.7403 220.22 +-66.9799 -46.5058 228.911 +-68.4193 -45.9868 226.356 +-73.6484 -47.9604 236.07 +-74.3645 -46.9572 231.132 +-78.6757 -48.2085 237.291 +-79.3262 -47.2015 232.335 +-83.7036 -48.3984 238.226 +-83.919 -47.1814 232.236 +-87.1809 -47.6887 234.733 +-87.2016 -46.435 228.562 +-90.9896 -47.1925 232.291 +-91.6253 -46.3101 227.947 +-96.686 -47.6445 234.515 +-96.2832 -46.2791 227.794 +-101.707 -47.7044 234.81 +-101.92 -46.6679 229.708 +-107.012 -47.8531 235.542 +-106.618 -46.5783 229.267 +-112.459 -48.0154 236.341 +-112.536 -46.9735 231.213 +-102.184 -41.712 205.315 +-116.904 -46.6822 229.779 +-101.921 -39.825 196.026 +-105.279 -40.2644 198.189 +-96.805 -36.2479 178.419 +-96.9109 -35.5359 174.915 +-97.3983 -34.9831 172.193 +-96.8597 -34.0847 167.772 +-97 -33.4496 164.646 +-97.0413 -32.7994 161.445 +-97.1362 -32.186 158.426 +-97.0802 -31.5407 155.249 +-97.0812 -30.9317 152.252 +-97.4124 -30.4429 149.846 +-97.327 -29.8383 146.87 +-97.0857 -29.2033 143.744 +-97.0759 -28.6538 141.04 +-97.1953 -28.1559 138.589 +-96.8771 -27.5457 135.585 +-97.1516 -27.117 133.475 +-97.5724 -26.7378 131.608 +-97.6104 -26.2631 129.272 +-97.6746 -25.8064 127.024 +-97.0974 -25.1934 124.007 +-97.6439 -24.8826 122.477 +-97.05 -24.2913 119.566 +-97.0412 -23.8587 117.437 +-96.9383 -23.4127 115.242 +-97.318 -23.0908 113.657 +-97.2224 -22.6635 111.554 +-97.6216 -22.3585 110.053 +-97.4051 -21.9195 107.892 +-97.4254 -21.5424 106.036 +-97.0823 -21.0934 103.826 +-97.3894 -20.7928 102.346 +-97.7463 -20.5073 100.941 +-97.3216 -20.0647 98.7624 +-97.5666 -19.767 97.2969 +-97.51 -19.4137 95.5579 +-97.7153 -19.1179 94.1022 +-97.6863 -18.7815 92.4461 +-97.1276 -18.3507 90.3255 +-97.782 -18.1541 89.3577 +-97.8367 -17.849 87.856 +-97.4263 -17.4651 85.9668 +-97.6638 -17.2029 84.6759 +-97.7349 -16.915 83.2587 +-97.9403 -16.654 81.9743 +-97.9771 -16.368 80.5666 +-97.6105 -16.0199 78.853 +-98.4644 -15.8748 78.1386 +-97.826 -15.4924 76.2565 +-98.5013 -15.3218 75.417 +-98.6932 -15.0774 74.2138 +-98.7113 -14.8095 72.8952 +-98.6332 -14.5309 71.5237 +-97.8911 -14.16 69.6982 +-98.508 -13.9894 68.8584 +-98.4621 -13.7263 67.5637 +-98.4007 -13.4645 66.275 +-98.241 -13.1929 64.9378 +-98.3151 -12.9557 63.7707 +-98.2083 -12.6977 62.5004 +-98.0864 -12.441 61.2369 +-99.5608 -12.3862 60.967 +-102.146 -12.4624 61.3422 +-103.374 -12.3665 60.8701 +-105.98 -12.4289 61.1774 +-107.127 -12.314 60.6118 +-110.013 -12.3921 60.9962 +-111.776 -12.3356 60.7183 +-113.455 -12.2644 60.368 +-116.549 -12.3379 60.7296 +-119.392 -12.374 60.9072 +-121.533 -12.3288 60.6846 +-161.178 -15.9993 78.7514 +-164.839 -16.0066 78.7878 +-164.993 -15.6682 77.1219 +-163.589 -15.1874 74.7554 +-165.34 -15.0017 73.8413 +-164.073 -14.5438 71.5875 +-164.154 -14.2106 69.9472 +-165.599 -13.9948 68.8853 +-164.635 -13.5771 66.829 +-165.224 -13.2905 65.4185 +-164.405 -12.8935 63.4643 +-165.804 -12.6716 62.3719 +-117.178 -8.7225 42.9338 +-111.542 -8.08279 39.785 +-109.912 -7.74913 38.1427 +-109.396 -7.49952 36.9141 +-108.583 -7.23337 35.6041 +-108.23 -7.00137 34.4621 +-108.247 -6.79511 33.4468 +-108.827 -6.62425 32.6058 +-108.059 -6.37271 31.3677 +-109.199 -6.23412 30.6855 +-109.854 -6.06545 29.8553 +-109.633 -5.84859 28.7879 +-109.885 -5.65788 27.8492 +-109.837 -5.45232 26.8373 +-109.683 -5.24267 25.8054 +-111.273 -5.11461 25.1751 +-112.274 -4.95558 24.3923 +-113.954 -4.8224 23.7368 +-115.925 -4.69568 23.113 +-120.642 -4.66884 22.9809 +-157.517 -5.81238 28.6096 +-156.387 -5.49008 27.0233 +-158.496 -5.28062 25.9922 +-162.08 -5.11093 25.157 +-162.1 -4.82326 23.741 +-850.838 -23.8073 117.184 +-3248.47 -85.1465 419.107 +-380.145 -9.29292 45.7416 +-380.24 -8.62534 42.4556 +-896.959 -18.7695 92.3869 +-402.737 -7.72072 38.0029 +-400.371 -6.97385 34.3267 +-403.253 -6.3186 31.1013 +-402.318 -5.60108 27.5696 +-146.925 -1.78913 8.80645 +-142.405 -1.48586 7.3137 +-402.616 -3.4998 17.2267 +-402.055 -2.7953 13.759 +-3275.38 -17.0761 84.0517 +-145.078 -0.504174 2.48164 +-146.894 -0.255225 1.25627 +119.5 2.66454e-15 -1.13687e-13 +118.995 -0.19756 1.01949 +119.982 -0.398425 2.05604 +119.859 -0.597102 3.0813 +119.827 -0.796065 4.10803 +119.786 -0.994966 5.13444 +119.836 -1.19479 6.16561 +119.776 -1.39369 7.19203 +120.406 -1.60178 8.26584 +120.228 -1.80012 9.28936 +120.141 -1.99965 10.319 +119.846 -2.19537 11.329 +120.536 -2.41016 12.4374 +120.52 -2.61233 13.4807 +120.396 -2.81233 14.5128 +120.163 -3.00962 15.5309 +120.714 -3.22752 16.6554 +120.462 -3.42499 17.6744 +120.794 -3.63972 18.7825 +120.425 -3.83385 19.7843 +120.048 -4.02702 20.7811 +120.744 -4.25737 21.9698 +120.249 -4.44677 22.9472 +120.237 -4.65381 24.0156 +120.606 -4.87699 25.1673 +120.377 -5.07703 26.1996 +120.042 -5.27241 27.2079 +120.768 -5.5159 28.4644 +120.317 -5.70698 29.4504 +120.728 -5.93986 30.6522 +120.644 -6.14991 31.7361 +121.128 -6.39064 32.9784 +120.734 -6.58625 33.9878 +120.62 -6.79723 35.0766 +120.973 -7.03616 36.3095 +121.122 -7.26533 37.4921 +121.45 -7.5073 38.7408 +121.006 -7.7026 39.7487 +121.405 -7.95275 41.0395 +121.789 -8.20479 42.3402 +121.408 -8.40667 43.382 +121.112 -8.61457 44.4548 +116.698 -8.52215 43.9779 +113.139 -8.47849 43.7526 +110.335 -8.48072 43.7641 +106.893 -8.42332 43.4679 +104.293 -8.42205 43.4613 +101.885 -8.42798 43.4919 +99.211 -8.40336 43.3649 +96.7289 -8.3863 43.2768 +97.1562 -8.61893 44.4773 +97.2987 -8.82903 45.5615 +96.8001 -8.98189 46.3504 +97.9953 -9.29505 47.9664 +97.0306 -9.40557 48.5367 +96.3294 -9.53994 49.2301 +96.5945 -9.77095 50.4222 +96.7578 -9.99448 51.5757 +96.4706 -10.1732 52.4979 +96.6095 -10.3985 53.6608 +96.9082 -10.6441 54.9282 +96.4163 -10.8046 55.7563 +96.517 -11.0329 56.9342 +96.6894 -11.2722 58.1692 +96.1687 -11.4323 58.9953 +96.3996 -11.6835 60.2917 +96.531 -11.926 61.5431 +96.7308 -12.1803 62.8554 +96.8316 -12.4255 64.1209 +96.1755 -12.575 64.8924 +96.4142 -12.8433 66.277 +96.4727 -13.0913 67.5566 +96.5157 -13.3404 68.8421 +96.5432 -13.5907 70.1335 +96.6349 -13.8535 71.4897 +95.9164 -14.0018 72.2551 +96.0585 -14.2776 73.6785 +96.026 -14.5313 74.9875 +95.9775 -14.7859 76.3017 +95.9901 -15.0536 77.683 +95.8322 -15.298 78.9441 +95.8872 -15.5801 80.3997 +95.9236 -15.8635 81.8622 +96.3157 -16.2112 83.6566 +96.3859 -16.5105 85.2012 +96.2147 -16.7727 86.5543 +95.9536 -17.0227 87.8441 +95.967 -17.3254 89.4061 +95.6722 -17.5765 90.7023 +96.1462 -17.9747 92.7571 +95.9544 -18.2547 94.202 +95.8844 -18.5626 95.7907 +95.585 -18.8305 97.1735 +95.8878 -19.2232 99.1996 +95.6844 -19.5207 100.735 +96.0014 -19.9312 102.854 +95.6188 -20.2029 104.256 +95.8149 -20.6032 106.321 +95.5222 -20.9051 107.879 +95.7286 -21.3233 110.037 +95.6468 -21.6853 111.905 +95.857 -22.1223 114.16 +95.405 -22.4135 115.663 +95.2447 -22.7796 117.552 +95.4275 -23.2367 119.911 +95.2712 -23.6206 121.892 +95.3275 -24.0666 124.194 +95.2311 -24.4838 126.347 +95.28 -24.9489 128.747 +95.003 -25.3384 130.757 +95.0416 -25.8223 133.254 +94.7031 -26.2144 135.277 +94.895 -26.765 138.119 +95.0987 -27.334 141.055 +94.6583 -27.7301 143.099 +94.7259 -28.2873 145.974 +94.6966 -28.8307 148.778 +94.6245 -29.3761 151.593 +94.767 -30.005 154.839 +94.8082 -30.6201 158.013 +94.85 -31.2542 161.285 +94.8408 -31.8907 164.57 +94.5379 -32.4462 167.436 +94.1434 -32.9865 170.224 +94.176 -33.6958 173.884 +93.8273 -34.2897 176.949 +93.8852 -35.0543 180.895 +94.1477 -35.9239 185.382 +93.7238 -36.5576 188.653 +93.8514 -37.4331 193.17 +94.0748 -38.3805 198.06 +94.1768 -39.3142 202.878 +94.2002 -40.2512 207.713 +93.706 -40.9992 211.573 +93.9318 -42.0988 217.248 +91.844 -42.1829 217.682 +91.891 -43.2686 223.284 +87.887 -42.446 219.039 +88.051 -43.6383 225.192 +84.0848 -42.7848 220.788 +84.1028 -43.9596 226.85 +80.7145 -43.3624 223.768 +80.7083 -44.592 230.113 +76.5973 -43.5515 224.744 +76.6671 -44.8893 231.648 +71.3274 -43.0373 222.09 +70.9001 -44.1182 227.669 +70.0382 -44.9821 232.127 +68.7715 -45.6271 235.455 +66.0079 -45.2812 233.67 +65.1965 -46.2895 238.873 +58.3636 -42.9332 221.553 +57.3597 -43.7669 225.855 +54.276 -43.0095 221.947 +53.2459 -43.8764 226.421 +50.1707 -43.0531 222.172 +49.0464 -43.8978 226.531 +45.9942 -43.0082 221.94 +44.821 -43.8671 226.373 +42.1693 -43.2852 223.37 +40.981 -44.2155 228.17 +37.9114 -43.0997 222.412 +36.6057 -43.9689 226.898 +34.0405 -43.3318 223.61 +32.6918 -44.2533 228.366 +30.021 -43.3816 223.867 +28.5784 -44.2796 228.501 +25.9688 -43.3613 223.762 +24.5433 -44.4245 229.249 +21.987 -43.441 224.174 +20.3857 -44.3287 228.755 +17.9357 -43.3556 223.733 +16.4067 -44.6363 230.342 +14.0167 -43.5985 224.987 +12.2675 -44.532 229.804 +10.0281 -43.6953 225.486 +8.18044 -44.5659 229.979 +6.01285 -43.6839 225.427 +4.0891 -44.5672 229.986 +2.0071 -43.7543 225.791 +8.77076e-15 -44.517 229.726 +-2.0071 -43.7543 225.791 +-4.09957 -44.6814 230.575 +-6.0207 -43.741 225.722 +-8.21534 -44.7561 230.96 +-10.0106 -43.6194 225.095 +-12.3513 -44.836 231.373 +-14.0656 -43.7503 225.77 +-16.5672 -45.0727 232.594 +-18.179 -43.9436 226.767 +-20.8477 -45.3331 233.938 +-22.3225 -44.1038 227.594 +-25.1286 -45.484 234.717 +-26.5122 -44.2687 228.445 +-29.3583 -45.488 234.737 +-30.7128 -44.3814 229.026 +-33.6521 -45.5533 235.074 +-35.0456 -44.6114 230.213 +-38.0292 -45.6788 235.722 +-39.2648 -44.6382 230.352 +-42.2139 -45.5456 235.035 +-43.2992 -44.4449 229.354 +-46.5956 -45.6039 235.335 +-47.5493 -44.4622 229.444 +-51.0215 -45.6655 235.653 +-51.8589 -44.502 229.649 +-55.4054 -45.656 235.604 +-56.237 -44.5634 229.966 +-60.1176 -45.8712 236.714 +-61.293 -45.0883 232.675 +-64.3942 -45.7197 235.933 +-65.8208 -45.1528 233.007 +-70.1773 -46.5596 240.267 +-72.1115 -46.3137 238.998 +-75.7535 -47.1384 243.254 +-77.0108 -46.4664 239.786 +-80.5916 -47.1873 243.506 +-81.8329 -46.5284 240.106 +-84.9733 -46.9483 242.273 +-86.5227 -46.4828 239.871 +-89.9171 -46.9987 242.533 +-90.1084 -45.8498 236.604 +-95.2542 -47.2082 243.614 +-95.8401 -46.287 238.861 +-100.095 -47.1317 243.219 +-100.914 -46.3485 239.178 +-105.419 -47.2474 243.816 +-105.788 -46.2855 238.853 +-111.405 -47.6028 245.65 +-111.511 -46.5505 240.22 +-116.305 -47.4498 244.861 +-102.806 -41.0045 211.601 +-99.1596 -38.6779 199.594 +-102.759 -39.2098 202.339 +-97.0632 -36.2408 187.018 +-96.8287 -35.3864 182.609 +-96.805 -34.6365 178.739 +-97.1018 -34.023 175.573 +-97.0104 -33.2947 171.815 +-97.2537 -32.7019 168.756 +-97 -31.9626 164.941 +-97.0921 -31.3579 161.82 +-97.0847 -30.7388 158.625 +-97.1325 -30.1548 155.611 +-97.0282 -29.5406 152.442 +-97.3587 -29.0736 150.032 +-97.1636 -28.4641 146.886 +-97.3617 -27.9843 144.411 +-96.964 -27.3485 141.13 +-97.1953 -26.9042 138.837 +-97.1065 -26.3834 136.149 +-97.2677 -25.9424 133.874 +-97.5136 -25.5337 131.765 +-97.0156 -24.9426 128.715 +-97.7348 -24.6742 127.329 +-97.0974 -24.0734 124.229 +-97.0898 -23.6414 121.999 +-96.9878 -23.1964 119.703 +-97.5447 -22.9164 118.258 +-97.4472 -22.4893 116.054 +-97.3823 -22.0789 113.936 +-97.2224 -21.656 111.754 +-96.9655 -21.2209 109.509 +-96.8088 -20.8168 107.424 +-97.3585 -20.5707 106.153 +-97.6903 -20.2819 104.663 +-97.8668 -19.9659 103.032 +-97.5398 -19.5544 100.909 +-97.8079 -19.2684 99.4333 +-97.2862 -18.834 97.1912 +-97.3686 -18.5238 95.5903 +-97.5727 -18.2414 94.1333 +-98.1179 -18.0258 93.0209 +-97.4903 -17.6004 90.8253 +-97.7089 -17.334 89.451 +-97.2469 -16.9527 87.4829 +-97.9465 -16.7778 86.5808 +-97.6638 -16.4381 84.8277 +-97.8104 -16.1755 83.4725 +-98.0924 -15.9384 82.2487 +-98.1303 -15.6649 80.8373 +-98.2278 -15.4046 79.494 +-98.3867 -15.1571 78.2169 +-97.9825 -14.8274 76.5154 +-98.4225 -14.629 75.4917 +-98.6932 -14.4071 74.3468 +-98.6315 -14.1397 72.9668 +-98.5529 -13.8736 71.5935 +-98.7001 -13.6423 70.4002 +-98.5894 -13.3785 69.0388 +-98.4621 -13.1161 67.6848 +-98.4007 -12.866 66.3938 +-99.07 -12.7128 65.6032 +-98.3151 -12.3798 63.885 +-98.8793 -12.2161 63.0402 +-98.1708 -11.8982 61.3995 +-99.5608 -11.8355 61.0763 +-101.379 -11.8189 60.9905 +-103.289 -11.8069 60.9287 +-105.894 -11.8667 61.2373 +-107.734 -11.8332 61.064 +-109.839 -11.8225 61.009 +-111.427 -11.7503 60.6367 +-114.158 -11.7918 60.8509 +-116.726 -11.8073 60.9306 +-119.392 -11.8239 61.0163 +-121.533 -11.7807 60.7934 +-161.715 -15.3389 79.1554 +-163.311 -15.1533 78.1973 +-164.812 -14.9553 77.1756 +-164.676 -14.6087 75.3873 +-164.521 -14.2638 73.6072 +-164.712 -13.9514 71.9953 +-164.337 -13.594 70.1508 +-164.954 -13.3207 68.7402 +-164.728 -12.9808 66.9864 +-166.244 -12.7781 65.9403 +-165.149 -12.3761 63.8659 +-169.632 -12.3878 63.9263 +-116.522 -8.28811 42.7702 +-112.387 -7.78203 40.1585 +-109.818 -7.39829 38.1783 +-108.64 -7.11659 36.7246 +-108.583 -6.91182 35.6679 +-108.135 -6.68425 34.4935 +-108.247 -6.49303 33.5068 +-108.158 -6.29082 32.4633 +-108.347 -6.10562 31.5076 +-108.911 -5.94125 30.6593 +-109.468 -5.77547 29.8039 +-109.729 -5.5935 28.8648 +-108.917 -5.35874 27.6534 +-109.837 -5.20993 26.8855 +-110.656 -5.05403 26.0809 +-111.468 -4.8958 25.2644 +-112.274 -4.73528 24.436 +-113.074 -4.57243 23.5957 +-114.259 -4.42246 22.8218 +-120.936 -4.47219 23.0784 +-157.517 -5.55399 28.6609 +-159.637 -5.35505 27.6343 +-159.186 -5.06784 26.1522 +-162.969 -4.91051 25.3403 +-159.726 -4.54134 23.4352 +-850.838 -22.7489 117.394 +-3248.47 -81.3613 419.858 +-380.244 -8.88211 45.8354 +-378.452 -8.20313 42.3316 +-896.263 -17.9212 92.4807 +-403.534 -7.39209 38.1463 +-404.754 -6.73679 34.7647 +-404.549 -6.05711 31.2572 +-402.517 -5.35473 27.6327 +-3270.39 -38.0537 196.373 +-143.703 -1.43275 7.3936 +-402.017 -3.33923 17.2318 +-403.254 -2.67899 13.8247 +-147.749 -0.736043 3.79829 +-144.878 -0.481097 2.48267 +-146.294 -0.242882 1.25337 +119.4 4.88498e-15 0 +119.895 -0.189777 1.02896 +119.082 -0.377007 2.0441 +119.759 -0.5688 3.08398 +119.927 -0.759598 4.11848 +119.786 -0.948597 5.14321 +119.736 -1.13816 6.171 +119.776 -1.32874 7.20431 +120.306 -1.52586 8.27309 +120.228 -1.71622 9.30523 +120.141 -1.90646 10.3367 +119.846 -2.09306 11.3484 +120.536 -2.29783 12.4587 +120.421 -2.48853 13.4926 +120.396 -2.68127 14.5376 +120.163 -2.86935 15.5574 +120.714 -3.0771 16.6838 +120.462 -3.26537 17.7046 +120.696 -3.46726 18.7992 +120.425 -3.65517 19.818 +120.048 -3.83934 20.8166 +119.957 -4.03251 21.8639 +120.249 -4.23953 22.9864 +120.041 -4.42971 24.0175 +120.801 -4.65725 25.2512 +120.377 -4.84042 26.2444 +120.919 -5.0634 27.4534 +119.893 -5.22073 28.3064 +120.317 -5.44101 29.5007 +120.728 -5.66304 30.7045 +120.644 -5.8633 31.7903 +121.128 -6.09281 33.0347 +120.638 -6.2743 34.0187 +120.524 -6.4753 35.1086 +120.973 -6.70824 36.3716 +120.931 -6.91583 37.4971 +121.45 -7.15742 38.807 +121.86 -7.39541 40.0973 +121.499 -7.58801 41.1416 +121.884 -7.82847 42.4453 +121.408 -8.01489 43.4561 +120.55 -8.17499 44.3241 +115.671 -8.05348 43.6653 +112.394 -8.03018 43.539 +110.335 -8.08548 43.8388 +106.8 -8.02381 43.5044 +104.385 -8.03663 43.574 +101.794 -8.02796 43.527 +99.3024 -8.01911 43.479 +96.8199 -8.00299 43.3916 +96.5218 -8.16358 44.2623 +96.4864 -8.34728 45.2583 +96.8001 -8.5633 46.4295 +97.9953 -8.86186 48.0483 +97.5652 -9.01663 48.8875 +97.1277 -9.17071 49.7229 +96.4179 -9.29855 50.416 +96.1426 -9.46812 51.3354 +96.4706 -9.69907 52.5875 +96.6095 -9.91391 53.7524 +96.302 -10.0846 54.6778 +96.4163 -10.3011 55.8515 +96.517 -10.5187 57.0314 +96.0925 -10.6805 57.9089 +96.1687 -10.8995 59.0961 +96.3996 -11.139 60.3947 +96.531 -11.3702 61.6482 +95.9803 -11.5225 62.4742 +96.0855 -11.7552 63.7355 +96.1755 -11.989 65.0032 +96.3323 -12.2344 66.3338 +95.8214 -12.3969 67.215 +95.8685 -12.6334 68.4973 +95.8197 -12.8602 69.7269 +95.996 -13.1205 71.1384 +96.6304 -13.4486 72.9173 +96.0585 -13.6122 73.8043 +96.7304 -13.9557 75.6666 +96.0552 -14.1083 76.4938 +96.6846 -14.4559 78.3787 +95.9854 -14.6084 79.2054 +95.8872 -14.854 80.537 +96.5274 -15.2194 82.5181 +96.4655 -15.4797 83.9299 +96.3116 -15.7289 85.2809 +96.2147 -15.991 86.7022 +96.0999 -16.2541 88.1282 +95.967 -16.5179 89.5588 +95.6722 -16.7574 90.8572 +95.6469 -17.048 92.4329 +96.0958 -17.4296 94.5019 +95.8844 -17.6975 95.9543 +95.5155 -17.9399 97.2686 +95.9566 -18.3403 99.4398 +95.6844 -18.611 100.907 +96.0689 -19.0158 103.102 +96.221 -19.3827 105.092 +95.8811 -19.6566 106.576 +95.5878 -19.9444 108.137 +95.5988 -20.3019 110.075 +95.6468 -20.6747 112.096 +95.2209 -20.9513 113.596 +95.2791 -21.3409 115.708 +95.307 -21.7321 117.83 +95.366 -22.1395 120.038 +95.332 -22.5341 122.178 +95.147 -22.9014 124.17 +95.1122 -23.3137 126.405 +95.2212 -23.7715 128.887 +95.1772 -24.2019 131.221 +94.9843 -24.6042 133.402 +94.5898 -24.9628 135.346 +95.0628 -25.5626 138.598 +94.9884 -26.0298 141.132 +94.6583 -26.4378 143.343 +94.9408 -27.0301 146.555 +94.7496 -27.5024 149.116 +94.6245 -28.007 151.852 +94.9215 -28.6533 155.356 +94.8589 -29.2087 158.367 +94.95 -29.829 161.73 +94.7915 -30.3885 164.764 +94.6833 -30.9816 167.98 +94.9546 -31.7202 171.984 +95.1619 -32.4617 176.004 +94.012 -32.7559 177.6 +94.203 -33.5338 181.817 +94.1031 -34.2335 185.611 +93.7238 -34.8538 188.975 +93.8945 -35.7049 193.589 +93.6945 -36.4438 197.595 +93.8036 -37.3335 202.419 +93.8748 -38.2427 207.349 +94.1048 -39.2548 212.836 +94.2053 -40.2538 218.253 +94.0253 -41.1721 223.232 +94.2136 -42.2949 229.319 +91.9552 -42.3411 229.57 +92.2797 -43.6026 236.41 +87.9021 -42.6427 231.205 +87.6598 -43.6835 236.848 +84.2862 -43.1709 234.069 +83.7687 -44.1259 239.247 +80.6588 -43.7236 237.066 +80.3135 -44.8329 243.08 +76.0184 -43.7301 237.101 +75.2565 -44.6466 242.07 +71.089 -43.5293 236.012 +70.6183 -44.6687 242.19 +68.5199 -44.8138 242.977 +66.7753 -45.2009 245.076 +60.8423 -42.6708 231.358 +60.3837 -43.9271 238.169 +56.4471 -42.6453 231.219 +55.9228 -43.9347 238.21 +52.3351 -42.8174 232.152 +51.4997 -43.9454 238.268 +48.267 -43.03 233.305 +47.2061 -44.0484 238.827 +43.9005 -42.9621 232.937 +42.7695 -43.9945 238.535 +39.925 -43.2734 234.625 +38.4516 -44.0337 238.747 +35.7551 -43.3933 235.275 +34.167 -44.0948 239.079 +31.5351 -43.4459 235.56 +29.7971 -44.0163 238.653 +27.3952 -43.6111 236.456 +25.6304 -44.2301 239.812 +23.0509 -43.4205 235.422 +21.3619 -44.2864 240.117 +18.8145 -43.3603 235.096 +17.0555 -44.2387 239.859 +14.6761 -43.5219 235.972 +12.8589 -44.5033 241.293 +10.473 -43.5072 235.892 +8.58528 -44.5916 241.772 +6.29294 -43.5883 236.332 +4.2706 -44.3763 240.605 +2.0996 -43.6378 236.6 +1.05471e-14 -44.6733 242.215 +-2.0996 -43.6378 236.6 +-4.28108 -44.4852 241.195 +-6.29032 -43.5701 236.234 +-8.60273 -44.6823 242.264 +-10.473 -43.5072 235.892 +-12.8275 -44.3947 240.704 +-14.7493 -43.739 237.149 +-17.0624 -44.2568 239.957 +-18.9557 -43.6857 236.86 +-21.5275 -44.6297 241.979 +-23.3384 -43.9621 238.359 +-26.1217 -45.0779 244.409 +-27.6782 -44.0616 238.899 +-30.6014 -45.2043 245.094 +-31.992 -44.0753 238.972 +-35.2386 -45.4778 246.577 +-36.302 -44.0569 238.873 +-39.3902 -45.1086 244.575 +-40.7007 -44.1142 239.184 +-43.933 -45.1913 245.023 +-45.0486 -44.0858 239.029 +-48.5036 -45.2591 245.391 +-49.5429 -44.1674 239.472 +-53.0591 -45.276 245.483 +-54.0666 -44.2341 239.834 +-57.8349 -45.437 246.356 +-58.6415 -44.3031 240.208 +-62.2223 -45.2645 245.421 +-63.0707 -44.2336 239.831 +-67.5518 -45.7265 247.925 +-67.7984 -44.3419 240.418 +-74.1464 -46.9004 254.29 +-74.3836 -45.5466 246.95 +-80.256 -47.6127 258.152 +-80.108 -46.0826 249.856 +-84.9179 -47.403 257.015 +-85.3232 -46.252 250.774 +-89.3685 -47.0756 255.24 +-89.4936 -45.8381 248.53 +-96.1761 -47.9275 259.859 +-95.3264 -46.2443 250.733 +-100.379 -47.4295 257.159 +-100.165 -46.1212 250.065 +-105.751 -47.4744 257.403 +-105.276 -46.0987 249.943 +-111.476 -47.6333 258.264 +-111.371 -46.4571 251.887 +-116.123 -47.3063 256.491 +-116.363 -46.312 251.1 +-118.883 -46.2411 250.715 +-98.8884 -37.6039 203.885 +-96.9239 -36.0439 195.427 +-96.8695 -35.2398 191.067 +-97.1086 -34.568 187.425 +-96.7825 -33.7211 182.833 +-96.805 -33.0223 179.044 +-97.1018 -32.4374 175.873 +-97.4952 -31.9017 172.969 +-97.2537 -31.1779 169.044 +-97 -30.473 165.222 +-97.0413 -29.8807 162.011 +-97.0847 -29.3062 158.896 +-97.1325 -28.7494 155.877 +-96.9752 -28.1485 152.619 +-97.2512 -27.688 150.122 +-97.0547 -27.107 146.972 +-96.8097 -26.529 143.838 +-97.2436 -26.1492 141.779 +-97.4785 -25.7251 139.48 +-97.1638 -25.1687 136.462 +-97.3258 -24.7482 134.183 +-97.5724 -24.3584 132.069 +-97.0751 -23.7947 129.013 +-97.6746 -23.51 127.469 +-97.0974 -22.9515 124.441 +-97.0282 -22.5253 122.13 +-97.05 -22.1297 119.985 +-97.0412 -21.7355 117.848 +-96.8111 -21.3011 115.493 +-97.3823 -21.0499 114.131 +-97.2873 -20.6605 112.02 +-97.6216 -20.3689 110.438 +-97.4051 -19.9689 108.27 +-97.4923 -19.6388 106.48 +-97.4201 -19.2831 104.552 +-97.1848 -18.9028 102.489 +-97.5398 -18.6431 101.081 +-97.7384 -18.3574 99.5323 +-97.2161 -17.9433 97.2869 +-97.7222 -17.7246 96.1013 +-97.9293 -17.4548 94.6386 +-97.4705 -17.0724 92.565 +-97.6354 -16.8051 91.1157 +-97.7089 -16.5262 89.6037 +-97.9104 -16.2729 88.2303 +-97.352 -15.8988 86.2022 +-98.1881 -15.7562 85.4286 +-97.7349 -15.4098 83.5504 +-97.8642 -15.1602 82.1976 +-98.0537 -14.9232 80.9121 +-98.305 -14.6982 79.6923 +-97.765 -14.3594 77.8554 +-98.4521 -14.2041 77.0134 +-98.0285 -13.8914 75.318 +-98.6932 -13.7357 74.4738 +-98.6315 -13.4807 73.0914 +-97.9098 -13.1407 71.2477 +-98.7001 -13.0065 70.5204 +-98.5894 -12.755 69.1567 +-98.4621 -12.5049 67.8004 +-98.4831 -12.2766 66.5628 +-98.241 -12.0189 65.1653 +-98.2317 -11.7928 63.9398 +-98.1245 -11.5579 62.6659 +-97.7491 -11.2949 61.2401 +-99.6457 -11.2936 61.2327 +-101.294 -11.2586 61.0432 +-103.203 -11.2473 60.9821 +-105.205 -11.24 60.9425 +-107.387 -11.2454 60.9716 +-109.752 -11.2626 61.0647 +-111.864 -11.2467 60.9787 +-114.246 -11.2509 61.0017 +-116.814 -11.2655 61.0809 +-119.126 -11.2477 60.9842 +-121.088 -11.1905 60.674 +-162.52 -14.6969 79.6855 +-164.659 -14.5663 78.9775 +-163.097 -14.11 76.5031 +-163.589 -13.8359 75.0173 +-164.885 -13.6291 73.8961 +-164.712 -13.3012 72.1182 +-164.796 -12.9966 70.4667 +-165.691 -12.7566 69.165 +-165.374 -12.4244 67.3641 +-170.973 -12.5291 67.9318 +-171.104 -12.2248 66.2817 +-178.967 -12.4605 67.5596 +-116.335 -7.88916 42.7744 +-111.542 -7.36352 39.9244 +-109.629 -7.04138 38.1778 +-109.302 -6.82627 37.0115 +-108.583 -6.58969 35.7288 +-108.04 -6.36713 34.522 +-108.152 -6.18497 33.5344 +-108.636 -6.02416 32.6625 +-108.347 -5.82107 31.5614 +-109.295 -5.68437 30.8202 +-109.854 -5.5257 29.9599 +-109.439 -5.31875 28.8378 +-109.788 -5.14987 27.9222 +-109.643 -4.95835 26.8838 +-110.656 -4.81849 26.1255 +-111.468 -4.66764 25.3076 +-112.176 -4.51066 24.4564 +-113.954 -4.39327 23.8199 +-116.023 -4.28145 23.2137 +-119.955 -4.22916 22.9302 +-157.616 -5.29847 28.7279 +-158.259 -5.06139 27.4425 +-160.962 -4.88555 26.489 +-160.104 -4.59937 24.9374 +-162.396 -4.40208 23.8677 +-851.135 -21.6962 117.635 +-152.98 -3.65298 19.8061 +-379.847 -8.45933 45.8658 +-377.557 -7.80235 42.3037 +-896.959 -17.0992 92.7105 +-402.638 -7.03193 38.1266 +-402.463 -6.38646 34.6269 +-403.652 -5.76202 31.2412 +-401.619 -5.0938 27.6182 +-403.746 -4.47895 24.2845 +-143.004 -1.35933 7.3702 +-402.217 -3.1852 17.2699 +-401.455 -2.54275 13.7866 +-145.45 -0.690821 3.74558 +-145.778 -0.461526 2.50235 +-146.294 -0.231563 1.25551 +119.4 4.88498e-15 0 +119.895 -0.18049 1.03063 +119.982 -0.361268 2.06289 +119.859 -0.541417 3.09157 +120.127 -0.72363 4.13203 +119.786 -0.902177 5.15156 +119.736 -1.08246 6.18101 +119.776 -1.26372 7.216 +120.306 -1.45119 8.28652 +120.328 -1.63359 9.32805 +120.241 -1.81467 10.362 +119.846 -1.99063 11.3668 +119.641 -2.16917 12.3863 +119.527 -2.34918 13.4142 +120.396 -2.55006 14.5612 +119.37 -2.71093 15.4798 +120.714 -2.92652 16.7109 +120.363 -3.10303 17.7187 +120.794 -3.30028 18.8451 +120.425 -3.4763 19.8502 +120.147 -3.65446 20.8675 +119.957 -3.83518 21.8994 +120.249 -4.03207 23.0237 +120.041 -4.21294 24.0565 +120.801 -4.42934 25.2922 +120.573 -4.61102 26.3296 +120.042 -4.78071 27.2985 +120.671 -4.99748 28.5363 +120.317 -5.17476 29.5486 +120.728 -5.38591 30.7544 +120.644 -5.57637 31.8419 +121.225 -5.79926 33.1146 +120.638 -5.96726 34.0739 +121.291 -6.19762 35.3893 +120.973 -6.37997 36.4306 +121.122 -6.58777 37.6171 +121.355 -6.80184 38.8395 +121.101 -6.98973 39.9124 +121.499 -7.21669 41.2084 +121.129 -7.39932 42.2512 +121.502 -7.62857 43.5603 +119.988 -7.7387 44.1891 +115.671 -7.65938 43.7362 +113.139 -7.68779 43.8984 +109.5 -7.63164 43.5778 +106.893 -7.63777 43.6128 +103.465 -7.57596 43.2598 +101.06 -7.58008 43.2834 +98.5716 -7.57056 43.229 +96.1829 -7.56128 43.176 +96.8843 -7.79326 44.5006 +96.4864 -7.9388 45.3317 +96.89 -8.15181 46.548 +98.0848 -8.4359 48.1702 +97.0306 -8.52841 48.6985 +96.2407 -8.64228 49.3487 +96.5945 -8.85972 50.5903 +96.9335 -9.07886 51.8416 +96.4706 -9.22444 52.6729 +96.5224 -9.42028 53.7912 +96.9082 -9.65147 55.1113 +96.4163 -9.79697 55.9421 +96.4313 -9.99505 57.0732 +96.0073 -10.1488 57.9513 +96.9319 -10.4484 59.6618 +96.3996 -10.5939 60.4927 +96.531 -10.8138 61.7483 +96.7308 -11.0444 63.0649 +96.1684 -11.1896 63.894 +96.1755 -11.4023 65.1087 +96.4142 -11.6456 66.4979 +95.8214 -11.7903 67.3241 +96.5966 -12.1064 69.1295 +96.5432 -12.3232 70.3673 +96.6349 -12.5615 71.728 +95.9164 -12.696 72.496 +96.6889 -13.0311 74.4093 +96.1043 -13.1869 75.2988 +96.677 -13.5047 77.1139 +95.9901 -13.6497 77.9419 +95.9854 -13.8935 79.3339 +95.9632 -14.1383 80.7317 +95.8481 -14.3727 82.0705 +96.4655 -14.7222 84.0661 +96.3116 -14.9592 85.4193 +96.2147 -15.2085 86.8428 +96.0999 -15.4587 88.2712 +95.967 -15.7096 89.7041 +96.4635 -16.0692 91.7573 +96.1462 -16.2984 93.0662 +95.9544 -16.5523 94.516 +95.7442 -16.8068 95.9694 +95.585 -17.0744 97.4974 +95.9566 -17.4428 99.6012 +95.6162 -17.6876 100.999 +95.3933 -17.9581 102.543 +95.5519 -18.306 104.53 +95.8811 -18.6947 106.749 +96.047 -19.0595 108.833 +95.7286 -19.3347 110.404 +95.5825 -19.6498 112.203 +95.857 -20.0592 114.541 +95.2791 -20.2965 115.896 +95.307 -20.6686 118.021 +95.3044 -21.0424 120.155 +95.2712 -21.4178 122.299 +95.147 -21.7807 124.371 +94.9932 -22.1451 126.452 +95.0449 -22.5663 128.857 +95.1191 -23.0034 131.353 +94.9843 -23.4002 133.618 +94.9297 -23.8266 136.053 +95.1187 -24.326 138.905 +94.9884 -24.7561 141.361 +94.8761 -25.2018 143.906 +95.0483 -25.7366 146.959 +94.8026 -26.1713 149.442 +94.311 -26.5483 151.595 +94.9215 -27.2511 155.608 +94.9097 -27.7943 158.71 +94.45 -28.2199 161.14 +94.8408 -28.9166 165.118 +94.8288 -29.5109 168.511 +94.9069 -30.1528 172.177 +94.8333 -30.7665 175.681 +94.9355 -31.4589 179.635 +94.9294 -32.1386 183.516 +94.1924 -32.5892 186.089 +94.0744 -33.2723 189.99 +94.0667 -34.0199 194.259 +93.948 -34.7542 198.452 +93.8866 -35.5379 202.927 +93.9155 -36.3871 207.776 +93.7858 -37.2074 212.46 +93.9318 -38.1727 217.972 +94.0253 -39.1573 223.594 +94.0637 -40.1611 229.326 +93.7877 -41.0716 234.525 +93.9641 -42.2258 241.115 +91.7894 -42.3495 241.822 +91.6956 -43.4587 248.155 +87.1904 -42.473 242.527 +87.4802 -43.8259 250.252 +83.5146 -43.0562 245.857 +84.0217 -44.6075 254.716 +79.0255 -43.2353 246.88 +80.1098 -45.2003 258.1 +74.3268 -43.2846 247.161 +75.2214 -45.252 258.396 +68.707 -42.7371 244.035 +69.2341 -44.5718 254.512 +64.4979 -43.021 245.656 +63.4319 -43.8865 250.598 +59.0383 -42.4202 242.226 +58.6447 -43.8185 250.21 +54.7809 -42.6253 243.397 +54.0362 -43.8535 250.41 +50.3205 -42.6653 243.625 +49.4004 -43.8401 250.333 +45.9962 -42.8104 244.454 +44.8881 -43.9143 250.757 +42.0046 -43.2996 247.247 +40.407 -44.0086 251.296 +37.1593 -42.8906 244.912 +35.8232 -43.9698 251.074 +32.8404 -43.0302 245.709 +31.4301 -44.1566 252.141 +28.4819 -43.1225 246.236 +26.9892 -44.296 252.937 +24.0573 -43.0985 246.099 +22.4339 -44.233 252.577 +19.7011 -43.1816 246.573 +18.0181 -44.4487 253.808 +15.4087 -43.4582 248.152 +13.5602 -44.6339 254.866 +10.9877 -43.4118 247.887 +9.04246 -44.6679 255.06 +6.59136 -43.4211 247.941 +4.51145 -44.5849 254.586 +2.20781 -43.6412 249.197 +1.04361e-14 -44.7297 255.413 +-2.20258 -43.5377 248.606 +-4.54112 -44.878 256.26 +-6.60706 -43.5246 248.532 +-9.0983 -44.9437 256.635 +-11.0575 -43.6876 249.462 +-13.7905 -45.3919 259.194 +-15.5124 -43.7509 249.824 +-18.3878 -45.3607 259.016 +-19.9992 -43.8351 250.305 +-22.9917 -45.3327 258.856 +-24.5173 -43.9227 250.805 +-27.7837 -45.5998 260.381 +-29.0706 -44.0136 251.324 +-32.4294 -45.5606 260.158 +-33.7932 -44.2786 252.837 +-37.1731 -45.6268 260.536 +-38.2087 -44.1019 251.828 +-42.0339 -45.7805 261.414 +-42.7803 -44.0992 251.813 +-46.6766 -45.6639 260.748 +-47.4177 -44.1333 252.008 +-51.4421 -45.652 260.68 +-52.035 -44.119 251.926 +-56.3025 -45.6926 260.911 +-56.9886 -44.3431 253.205 +-61.2992 -45.8019 261.536 +-61.9097 -44.4835 254.007 +-66.3834 -45.9284 262.258 +-67.4273 -44.975 256.814 +-71.6411 -46.1214 263.36 +-72.8225 -45.297 258.653 +-78.1708 -47.0264 268.527 +-79.7515 -46.4438 265.201 +-84.2323 -47.5261 271.381 +-84.8291 -46.4105 265.011 +-88.8115 -47.1506 269.237 +-89.0357 -45.9027 262.111 +-95.0333 -47.6099 271.86 +-95.4688 -46.5056 265.554 +-99.0832 -46.9599 268.148 +-100.054 -46.1626 263.595 +-104.858 -47.1216 269.071 +-105.223 -46.0791 263.119 +-107.774 -46.015 262.752 +-110.902 -46.1856 263.726 +-116.907 -47.5095 271.286 +-116.235 -46.1136 263.316 +-100.667 -39.0031 222.714 +-103.259 -39.0854 223.183 +-96.9486 -35.8643 204.79 +-96.908 -35.0475 200.126 +-97.143 -34.3577 196.187 +-97.0034 -33.5617 191.642 +-97.1086 -32.8764 187.729 +-96.8287 -32.0863 183.218 +-97.2745 -31.5587 180.204 +-97.1495 -30.8652 176.245 +-97.0104 -30.1897 172.387 +-97.3029 -29.6672 169.404 +-97 -28.9818 165.49 +-97.0921 -28.4334 162.359 +-96.6211 -27.7391 158.394 +-97.028 -27.313 155.961 +-97.0812 -26.8002 153.033 +-97.3587 -26.3622 150.532 +-97.2181 -25.824 147.459 +-97.0305 -25.2882 144.399 +-97.2436 -24.8696 142.009 +-97.4785 -24.4662 139.706 +-97.2212 -23.9512 136.765 +-97.3258 -23.5372 134.401 +-97.5724 -23.1664 132.284 +-97.5509 -22.7414 129.857 +-97.6746 -22.3595 127.676 +-97.828 -21.9926 125.581 +-97.0898 -21.4366 122.406 +-96.9878 -21.0331 120.102 +-96.9783 -20.6584 117.963 +-97.5108 -20.4052 116.517 +-97.318 -20.0066 114.24 +-97.2873 -19.6495 112.201 +-97.4248 -19.3329 110.394 +-97.2064 -18.9531 108.225 +-97.4254 -18.665 106.58 +-97.4201 -18.3395 104.721 +-97.3212 -18.003 102.8 +-97.6775 -17.7558 101.388 +-97.2522 -17.3723 99.1983 +-97.4264 -17.1021 97.6556 +-97.7222 -16.8572 96.2573 +-97.9293 -16.6007 94.7922 +-97.5425 -16.2489 92.7836 +-97.6354 -15.9827 91.2636 +-97.6357 -15.7057 89.6819 +-97.8367 -15.4649 88.3069 +-98.0951 -15.2362 87.0011 +-97.6638 -14.9051 85.1104 +-97.8104 -14.667 83.7507 +-98.0163 -14.4408 82.459 +-98.2069 -14.2151 81.1701 +-98.305 -13.9789 79.8216 +-98.4644 -13.7544 78.5396 +-98.5304 -13.5197 77.1997 +-98.6589 -13.2966 75.9253 +-98.7725 -13.074 74.6546 +-98.7113 -12.8314 73.2692 +-98.5529 -12.5797 71.8321 +-97.8911 -12.2687 70.0558 +-98.508 -12.1208 69.2118 +-98.4621 -11.8929 67.9104 +-98.4007 -11.6661 66.6151 +-98.3239 -11.4404 65.3261 +-98.3151 -11.2253 64.0979 +-97.789 -10.9547 62.5529 +-98.0864 -10.7793 61.5512 +-99.1368 -10.6861 61.019 +-100.782 -10.6536 60.8335 +-103.289 -10.7058 61.1317 +-105.463 -10.7163 61.1914 +-107.56 -10.7124 61.1691 +-109.317 -10.6689 60.9212 +-112.564 -10.7632 61.4597 +-114.07 -10.6839 61.0067 +-119.375 -10.9491 62.5211 +-120.456 -10.8168 61.7655 +-130.443 -11.4652 65.4679 +-162.61 -13.9854 79.8587 +-164.3 -13.8233 78.9329 +-165.624 -13.6274 77.8145 +-165.492 -13.312 76.0133 +-165.249 -12.9908 74.1794 +-166.265 -12.7696 72.9164 +-165.713 -12.4294 70.9739 +-170.57 -12.4895 71.3171 +-171.472 -12.2521 69.9613 +-176.907 -12.3295 70.4034 +-177.431 -12.0564 68.8441 +-671.058 -44.4356 253.733 +-116.803 -7.5333 43.0162 +-112.293 -7.05038 40.2587 +-110.383 -6.74288 38.5028 +-109.302 -6.49222 37.0715 +-108.583 -6.26723 35.7868 +-108.325 -6.07154 34.6694 +-108.247 -5.8875 33.6185 +-108.636 -5.72937 32.7155 +-108.634 -5.55091 31.6965 +-108.334 -5.35864 30.5986 +-109.854 -5.2553 30.0085 +-109.246 -5.04954 28.8336 +-109.885 -4.90217 27.9921 +-109.546 -4.71154 26.9036 +-110.656 -4.5827 26.1679 +-111.37 -4.43534 25.3265 +-112.274 -4.29367 24.5175 +-113.367 -4.15677 23.7358 +-116.023 -4.07194 23.2513 +-120.642 -4.04523 23.0989 +-156.731 -5.01088 28.6128 +-158.554 -4.8227 27.5383 +-160.863 -4.64362 26.5158 +-163.265 -4.46065 25.471 +-160.616 -4.14076 23.6444 +-849.947 -20.6057 117.661 +-860.971 -19.5529 111.65 +-379.351 -8.03487 45.8803 +-380.141 -7.4713 42.6622 +-895.567 -16.2372 92.7169 +-403.036 -6.69443 38.2261 +-403.857 -6.09498 34.8032 +-403.652 -5.48005 31.2919 +-403.515 -4.86739 27.7935 +-402.747 -4.24925 24.2638 +-144.602 -1.30726 7.46465 +-403.116 -3.0361 17.3366 +-402.055 -2.42194 13.8296 +-144.051 -0.650693 3.71555 +-146.978 -0.442553 2.52704 +-146.494 -0.220533 1.25928 +119.4 4.88498e-15 0 +119.995 -0.171327 1.03307 +119.082 -0.340073 2.05057 +119.859 -0.513504 3.09633 +120.227 -0.686895 4.14184 +119.886 -0.85638 5.1638 +120.535 -1.03351 6.23183 +119.976 -1.20056 7.23915 +120.306 -1.37638 8.29927 +120.228 -1.54809 9.33467 +119.942 -1.71684 10.3522 +120.045 -1.89115 11.4032 +120.536 -2.07272 12.4981 +120.421 -2.24474 13.5353 +120.396 -2.41859 14.5836 +120.163 -2.58825 15.6066 +120.813 -2.77792 16.7503 +120.363 -2.94305 17.746 +119.807 -3.10455 18.7198 +120.425 -3.29708 19.8808 +120.147 -3.46606 20.8996 +119.957 -3.63746 21.9331 +121.035 -3.84916 23.2097 +120.041 -3.99574 24.0935 +120.019 -4.17378 25.1671 +120.573 -4.3733 26.3701 +119.945 -4.53056 27.3184 +120.671 -4.73983 28.5802 +120.414 -4.91193 29.618 +120.922 -5.11644 30.8511 +121.513 -5.32699 32.1207 +120.454 -5.4653 32.9547 +120.734 -5.66414 34.1536 +121.387 -5.88275 35.4718 +120.973 -6.05105 36.4866 +121.122 -6.24814 37.675 +121.355 -6.45118 38.8993 +121.101 -6.62938 39.9738 +121.499 -6.84464 41.2718 +121.884 -7.06153 42.5796 +121.502 -7.23528 43.6273 +119.707 -7.32254 44.1534 +116.324 -7.30554 44.0509 +113.139 -7.29145 43.966 +109.408 -7.23208 43.608 +106.893 -7.244 43.6799 +104.385 -7.24931 43.7119 +101.06 -7.18929 43.35 +98.5716 -7.18026 43.2955 +96.1829 -7.17146 43.2425 +96.8843 -7.39148 44.5691 +97.2987 -7.59292 45.7838 +96.8001 -7.72438 46.5764 +98.0848 -8.00099 48.2443 +97.2088 -8.10359 48.863 +96.2407 -8.19673 49.4246 +96.4179 -8.38759 50.5755 +96.9335 -8.61081 51.9214 +96.2956 -8.733 52.6583 +96.6095 -8.94267 53.9225 +96.9082 -9.15389 55.1961 +96.4163 -9.29189 56.0282 +96.517 -9.48819 57.2119 +95.922 -9.61708 57.989 +96.2535 -9.84035 59.3354 +96.3996 -10.0477 60.5858 +96.531 -10.2563 61.8433 +96.6474 -10.4659 63.1075 +96.1684 -10.6127 63.9923 +96.1755 -10.8144 65.2089 +96.4142 -11.0452 66.6002 +95.74 -11.1729 67.3705 +96.5157 -11.4727 69.1779 +95.9001 -11.61 70.0062 +95.996 -11.8351 71.3635 +96.0751 -12.0614 72.7276 +95.9797 -12.2686 73.9772 +96.1043 -12.507 75.4147 +95.9775 -12.7158 76.6738 +95.9901 -12.946 78.0619 +96.5982 -13.2614 79.9633 +95.9632 -13.4094 80.8559 +95.8481 -13.6318 82.1968 +95.7914 -13.8657 83.6071 +95.7171 -14.1004 85.0227 +96.2147 -14.4244 86.9765 +96.0999 -14.6617 88.4071 +95.967 -14.8997 89.8422 +96.4635 -15.2407 91.8985 +96.2888 -15.4811 93.3478 +96.0958 -15.7221 94.8009 +95.8844 -15.9637 96.2579 +96.3491 -16.3236 98.428 +96.0943 -16.5673 99.8975 +95.6844 -16.7877 101.226 +96.0014 -17.1408 103.355 +95.5519 -17.3623 104.691 +95.2848 -17.6206 106.249 +95.5222 -17.9783 108.405 +95.6637 -18.3254 110.499 +95.5825 -18.6368 112.376 +95.0937 -18.8735 113.804 +95.405 -19.2755 116.227 +95.1202 -19.5648 117.972 +95.1197 -19.919 120.107 +94.9668 -20.2487 122.095 +95.2673 -20.684 124.72 +94.6958 -20.9376 126.25 +94.9273 -21.3764 128.895 +95.1772 -21.8309 131.636 +94.9843 -22.1938 133.824 +95.1562 -22.6521 136.587 +95.1746 -23.0855 139.201 +94.9332 -23.466 141.495 +94.7127 -23.8615 143.88 +95.0483 -24.4097 147.186 +94.8555 -24.8359 149.756 +94.7812 -25.3051 152.585 +94.973 -25.8603 155.932 +94.9604 -26.3755 159.039 +94.6 -26.8076 161.644 +94.9393 -27.4543 165.544 +94.8288 -27.9895 168.771 +94.5252 -28.4832 171.748 +94.7863 -29.166 175.865 +94.9817 -29.8517 179.999 +94.657 -30.3943 183.272 +94.817 -31.1141 187.611 +94.6882 -31.7629 191.524 +94.4111 -32.3841 195.27 +94.4552 -33.1405 199.831 +93.8036 -33.676 203.059 +93.8748 -34.4962 208.005 +93.8257 -35.3041 212.876 +93.6192 -36.0843 217.581 +94.0636 -37.1538 224.03 +94.1386 -38.1209 229.861 +93.7144 -38.9237 234.702 +93.8566 -40.0031 241.21 +93.6805 -40.9937 247.184 +93.8161 -42.1714 254.285 +91.9304 -42.4732 256.105 +91.8428 -43.6394 263.137 +87.703 -42.8845 258.585 +87.3591 -43.9884 265.241 +83.8368 -43.5028 262.313 +83.2382 -44.544 268.591 +79.8935 -44.1278 266.082 +78.722 -44.9164 270.837 +74.8802 -44.1757 266.371 +73.867 -45.1027 271.96 +69.3302 -43.8601 264.468 +68.222 -44.767 269.936 +62.61 -42.6674 257.276 +61.8615 -43.8392 264.341 +58.179 -42.9354 258.892 +57.1133 -43.9611 265.076 +53.4904 -43.0149 259.371 +52.2053 -43.9408 264.954 +48.6569 -42.9519 258.992 +47.1976 -43.7932 264.064 +43.6881 -42.7132 257.552 +42.7379 -44.1474 266.2 +39.3321 -43.058 259.631 +37.702 -43.8902 264.649 +34.6678 -43.0827 259.78 +33.1241 -44.1373 266.139 +30.0668 -43.1751 260.337 +28.3063 -44.0625 265.688 +25.3704 -43.1077 259.931 +23.5756 -44.0877 265.84 +20.8074 -43.2551 260.82 +18.897 -44.2135 266.599 +16.2389 -43.4387 261.926 +14.1255 -44.0974 265.898 +11.5809 -43.3966 261.673 +9.40541 -44.0656 265.707 +6.94998 -43.4231 261.833 +4.72088 -44.2493 266.815 +2.32475 -43.5836 262.8 +1.07692e-14 -44.3542 267.447 +-2.32213 -43.5345 262.505 +-4.75229 -44.5438 268.59 +-7.00495 -43.7665 263.903 +-9.60434 -44.9975 271.326 +-11.6813 -43.7726 263.94 +-14.429 -45.045 271.612 +-16.3915 -43.8469 264.388 +-19.2807 -45.1112 272.012 +-21.1212 -43.9076 264.754 +-24.238 -45.3264 273.309 +-25.8688 -43.9545 265.037 +-29.153 -45.3804 273.635 +-30.7234 -44.1178 266.021 +-34.1965 -45.5662 274.755 +-35.5945 -44.2343 266.724 +-38.9685 -45.3645 273.539 +-40.1894 -43.9964 265.289 +-43.8955 -45.3432 273.411 +-44.926 -43.9234 264.85 +-49.0903 -45.5494 274.654 +-49.8779 -44.0298 265.491 +-54.2279 -45.6431 275.219 +-54.8661 -44.1211 266.041 +-59.6083 -45.8815 276.656 +-60.0836 -44.3411 267.368 +-64.6959 -45.8478 276.453 +-65.1313 -44.3855 267.635 +-70.4235 -46.2117 278.647 +-70.7824 -44.7788 270.007 +-76.5328 -46.7305 281.775 +-76.644 -45.2163 272.645 +-83.3252 -47.5428 286.673 +-84.7502 -46.8103 282.257 +-89.2026 -47.7358 287.838 +-89.7306 -46.5611 280.754 +-95.1154 -47.8939 288.791 +-96.3337 -47.1046 284.032 +-101.805 -48.3731 291.68 +-100.576 -46.4677 280.191 +-106.505 -47.8751 288.677 +-106.428 -46.5719 280.819 +-112.743 -48.0524 289.746 +-109.914 -45.652 275.272 +-108.524 -43.946 264.986 +-118.096 -46.6462 281.267 +-99.3629 -38.2981 230.93 +-99.8069 -37.5547 226.447 +-97.1694 -35.7069 215.305 +-97.287 -34.9266 210.6 +-96.9486 -34.0153 205.106 +-97.2955 -33.3735 201.235 +-97.1869 -32.6011 196.578 +-97.0034 -31.8315 191.937 +-96.7454 -31.0648 187.315 +-96.8287 -30.4321 183.5 +-96.805 -29.7872 179.611 +-97.1972 -29.2883 176.603 +-97.3498 -28.7336 173.258 +-97.1552 -28.095 169.407 +-96.95 -27.4734 165.659 +-96.5338 -26.8125 161.674 +-97.1362 -26.4493 159.484 +-97.1325 -25.9329 156.37 +-96.9752 -25.3909 153.102 +-97.3587 -25.0031 150.764 +-97.2181 -24.4927 147.686 +-97.0305 -23.9845 144.622 +-97.2996 -23.601 142.309 +-97.4785 -23.2049 139.921 +-97.1065 -22.6895 136.813 +-97.3258 -22.3237 134.607 +-97.5724 -21.9721 132.487 +-97.6104 -21.5821 130.136 +-97.6746 -21.2068 127.872 +-97.7062 -20.8327 125.617 +-97.6439 -20.4476 123.295 +-97.05 -19.9617 120.365 +-97.1671 -19.6315 118.374 +-97.2564 -19.3027 116.391 +-97.1895 -18.9501 114.265 +-97.677 -18.7111 112.824 +-96.8999 -18.2376 109.969 +-97.0738 -17.9514 108.244 +-97.76 -17.7634 107.11 +-97.6903 -17.4423 105.173 +-98.0032 -17.1946 103.68 +-97.7463 -16.8522 101.615 +-97.8774 -16.5825 99.9893 +-97.5666 -16.2438 97.9467 +-97.7222 -15.9882 96.4054 +-97.216 -15.6301 94.2466 +-97.4705 -15.3998 92.8579 +-97.5629 -15.1475 91.3362 +-96.9775 -14.7956 89.2144 +-97.3206 -14.5902 87.9763 +-98.0951 -14.4507 87.1351 +-98.3379 -14.2343 85.8297 +-97.8104 -13.9108 83.8796 +-97.8642 -13.675 82.4577 +-98.1303 -13.4717 81.2316 +-98.3821 -13.2686 80.0072 +-98.4644 -13.0453 78.6605 +-98.5304 -12.8227 77.3185 +-98.0285 -12.5305 75.5563 +-98.7725 -12.4 74.7695 +-97.9926 -12.0813 72.8477 +-98.5529 -11.9312 71.9427 +-97.972 -11.6458 70.2217 +-98.5894 -11.5054 69.3755 +-98.4621 -11.2798 68.0149 +-98.3183 -11.0554 66.6618 +-98.241 -10.8414 65.3715 +-97.8982 -10.6014 63.9243 +-99.2986 -10.5503 63.6164 +-98.3394 -10.2499 61.8049 +-103.716 -10.6033 63.9358 +-102.658 -10.2924 62.0611 +-109.546 -10.769 64.935 +-107.617 -10.3714 62.5373 +-115.268 -10.8881 65.6533 +-112.885 -10.4492 63.0067 +-127.869 -11.5964 69.9241 +-120.749 -10.7264 64.6782 +-150.631 -13.1037 79.0126 +-144.494 -12.3064 74.2053 +-163.678 -13.6446 82.2743 +-163.326 -13.3228 80.3338 +-164.929 -13.1608 79.3572 +-164.812 -12.8615 77.552 +-165.492 -12.6257 76.1303 +-166.068 -12.3821 74.6617 +-171.747 -12.5106 75.4361 +-170.573 -12.1344 73.1679 +-177.842 -12.3507 74.4721 +-177.939 -12.0587 72.7117 +-658.671 -43.5396 262.535 +-665.621 -42.8973 258.662 +-380.714 -23.9101 144.173 +-115.679 -7.07616 42.6678 +-112.575 -6.70369 40.4219 +-110.195 -6.38432 38.4962 +-109.207 -6.15218 37.0964 +-108.583 -5.94412 35.8418 +-108.516 -5.76863 34.7837 +-108.152 -5.57904 33.6405 +-108.541 -5.42921 32.7371 +-108.538 -5.26009 31.7173 +-108.911 -5.10944 30.8089 +-109.661 -4.97561 30.0019 +-109.826 -4.81462 29.0312 +-109.401 -4.62895 27.9117 +-109.546 -4.46863 26.945 +-110.558 -4.34261 26.185 +-110.494 -4.17355 25.1657 +-111.591 -4.04751 24.4057 +-113.367 -3.94247 23.7723 +-115.141 -3.83264 23.11 +-119.464 -3.79923 22.9086 +-157.616 -4.77939 28.8188 +-157.569 -4.54565 27.4093 +-158.2 -4.3313 26.1169 +-161.586 -4.18718 25.2478 +-161.506 -3.94906 23.8121 +-850.244 -19.5502 117.884 +-861.863 -18.564 111.937 +-379.748 -7.6286 45.9989 +-378.253 -7.05095 42.5158 +-896.064 -15.4087 92.9111 +-403.036 -6.3493 38.285 +-403.957 -5.7822 34.8655 +-402.256 -5.17955 31.2316 +-402.318 -4.60276 27.7537 +-402.248 -4.02519 24.2711 +-144.402 -1.23815 7.46581 +-403.116 -2.87957 17.3632 +-403.054 -2.30279 13.8853 +-141.551 -0.606441 3.65671 +-145.678 -0.416027 2.50856 +-144.994 -0.207022 1.2483 +119.4 4.88498e-15 0 +119.995 -0.162001 1.03457 +120.282 -0.324799 2.07424 +119.859 -0.48555 3.10083 +120.227 -0.649501 4.14787 +119.886 -0.80976 5.17132 +120.634 -0.978052 6.24607 +119.976 -1.13521 7.24969 +120.406 -1.30253 8.31825 +119.53 -1.45532 9.294 +120.141 -1.62607 10.3845 +119.846 -1.78523 11.4009 +120.636 -1.96151 12.5267 +119.527 -2.10678 13.4544 +119.503 -2.26995 14.4965 +120.262 -2.44936 15.6422 +120.02 -2.60948 16.6647 +120.165 -2.77826 17.7426 +119.905 -2.93796 18.7625 +120.327 -3.11504 19.8934 +120.245 -3.28005 20.9471 +119.957 -3.43944 21.965 +120.446 -3.62192 23.1304 +120.041 -3.77822 24.1286 +120.801 -3.97229 25.368 +120.377 -4.12853 26.3657 +120.919 -4.31872 27.5803 +120.671 -4.4818 28.6218 +120.414 -4.64453 29.6611 +120.825 -4.83403 30.8712 +120.741 -5.00497 31.9629 +120.454 -5.16778 33.0026 +120.927 -5.36431 34.2578 +120.62 -5.52735 35.299 +120.973 -5.72164 36.5397 +120.931 -5.8987 37.6705 +121.355 -6.09998 38.9559 +121.006 -6.26358 40.0007 +121.499 -6.47203 41.3319 +121.035 -6.63064 42.3448 +121.596 -6.8467 43.7246 +119.613 -6.91849 44.1831 +115.391 -6.85241 43.7611 +112.301 -6.8435 43.7041 +109.5 -6.84416 43.7084 +106.893 -6.84965 43.7435 +103.557 -6.80027 43.4281 +101.152 -6.80409 43.4525 +98.5716 -6.78938 43.3586 +96.2739 -6.78746 43.3463 +97.0656 -7.00217 44.7175 +96.5766 -7.12629 45.5101 +97.609 -7.3649 47.034 +98.6218 -7.60684 48.579 +97.8325 -7.7116 49.2481 +96.8616 -7.80051 49.8159 +96.6828 -7.95277 50.7882 +96.1426 -8.07562 51.5728 +96.4706 -8.2726 52.8307 +96.7836 -8.47108 54.0983 +96.1288 -8.58595 54.8318 +97.0194 -8.84102 56.4608 +96.6028 -8.97963 57.346 +96.7747 -9.17437 58.5897 +96.1687 -9.29646 59.3694 +96.3996 -9.50075 60.674 +96.6148 -9.70636 61.9871 +96.8141 -9.91327 63.3085 +96.8316 -10.1041 64.5274 +96.1755 -10.2257 65.3038 +96.4142 -10.4439 66.6972 +95.74 -10.5647 67.4686 +96.5157 -10.8481 69.2786 +95.9001 -10.978 70.1081 +95.9161 -11.1815 71.4079 +95.9958 -11.3953 72.7733 +96.1373 -11.6198 74.2065 +96.1043 -11.8261 75.5245 +96.0552 -12.0333 76.8476 +96.6846 -12.3298 78.7411 +95.9854 -12.4599 79.5717 +96.5716 -12.7598 81.4869 +95.9236 -12.8998 82.3812 +95.7914 -13.1108 83.7288 +96.3116 -13.4156 85.6753 +96.2147 -13.6392 87.1031 +96.173 -13.8741 88.6031 +95.967 -14.0886 89.9729 +95.8161 -14.3143 91.4146 +95.6469 -14.5407 92.8604 +96.0958 -14.8662 94.9389 +95.7442 -15.0726 96.2571 +96.3491 -15.435 98.5713 +95.9566 -15.643 99.8997 +95.8208 -15.8964 101.518 +96.0014 -16.2076 103.506 +95.7526 -16.4516 105.064 +95.351 -16.673 106.478 +95.5878 -17.0112 108.637 +95.6637 -17.3278 110.66 +95.454 -17.5986 112.388 +95.0937 -17.8461 113.969 +95.0903 -18.1662 116.013 +95.2447 -18.5238 118.297 +95.3044 -18.8711 120.515 +95.0885 -19.171 122.43 +95.0868 -19.5209 124.665 +95.1122 -19.8849 126.99 +94.9861 -20.2252 129.163 +94.9449 -20.592 131.506 +94.8122 -20.9475 133.776 +95.1562 -21.4189 136.786 +95.1187 -21.8159 139.321 +94.9884 -22.2016 141.784 +94.7672 -22.5755 144.172 +94.6722 -22.9896 146.817 +94.8026 -23.4707 149.89 +94.8857 -23.9539 152.975 +95.076 -24.4789 156.328 +94.6052 -24.8463 158.674 +94.6 -25.3482 161.879 +94.9885 -25.9732 165.871 +94.5379 -26.3845 168.498 +95.05 -27.0821 172.952 +94.8333 -27.5918 176.208 +94.9817 -28.2266 180.261 +94.657 -28.7397 183.538 +94.4601 -29.3095 187.177 +94.469 -29.9642 191.358 +94.4111 -30.6212 195.554 +94.6242 -31.3924 200.479 +94.5915 -32.1102 205.063 +94.729 -32.9151 210.204 +93.7459 -33.3539 213.005 +94.049 -34.2767 218.899 +94.1019 -35.1455 224.447 +93.839 -35.931 229.464 +93.6777 -36.7904 234.952 +93.8924 -37.8397 241.653 +93.9256 -38.8634 248.191 +93.6451 -39.8029 254.191 +93.3324 -40.7737 260.39 +93.5357 -42.0243 268.377 +91.4789 -42.2958 270.111 +92.0871 -43.8448 280.003 +86.2124 -42.3003 270.139 +87.0391 -44.0424 281.265 +82.194 -42.927 274.141 +82.8842 -44.7167 285.571 +77.606 -43.2914 276.469 +78.3704 -45.2475 288.961 +72.6102 -43.4345 277.383 +71.875 -44.5967 284.805 +66.0183 -42.5408 271.676 +65.9781 -44.2111 282.343 +60.8412 -42.4559 271.133 +60.5439 -44.0648 281.408 +56.1021 -42.6592 272.431 +55.8307 -44.4341 283.766 +51.2811 -42.8041 273.357 +50.6532 -44.4409 283.81 +46.2959 -42.7987 273.322 +45.2252 -44.1737 282.103 +41.6231 -43.0855 275.154 +40.5968 -44.6873 285.383 +36.4429 -42.8231 273.479 +35.3665 -44.5598 284.569 +31.5724 -42.8689 273.771 +30.3028 -44.6024 284.841 +26.7697 -43.0093 274.667 +25.2316 -44.6157 284.926 +21.9842 -43.2138 275.973 +20.2852 -44.8777 286.6 +16.9776 -42.9423 274.239 +15.146 -44.7093 285.524 +12.1829 -43.1671 275.675 +10.0825 -44.6661 285.248 +7.3086 -43.1779 275.744 +5.05073 -44.7639 285.873 +2.45477 -43.5159 277.903 +1.22125e-14 -44.9099 286.805 +-2.44954 -43.4231 277.31 +-5.06643 -44.9031 286.762 +-7.37666 -43.58 278.312 +-10.1418 -44.929 286.927 +-12.3181 -43.6462 278.734 +-15.3449 -45.2964 289.273 +-17.3683 -43.9305 280.55 +-20.4665 -45.2789 289.161 +-22.4785 -44.1855 282.179 +-25.6499 -45.3555 289.65 +-27.709 -44.5184 284.305 +-30.8777 -45.4486 290.245 +-32.8969 -44.6673 285.256 +-36.2196 -45.6347 291.434 +-37.8918 -44.5256 284.351 +-41.4318 -45.6065 291.254 +-42.9682 -44.4778 284.046 +-46.7583 -45.6711 291.666 +-48.2764 -44.6298 285.016 +-52.1639 -45.7664 292.274 +-53.6319 -44.7664 285.888 +-57.4908 -45.7552 292.203 +-58.7936 -44.7057 285.501 +-62.9972 -45.8504 292.811 +-64.2393 -44.8272 286.277 +-69.0375 -46.2611 295.434 +-70.057 -45.1432 288.295 +-74.9716 -46.518 297.075 +-75.5396 -45.1868 288.574 +-81.1139 -46.8315 299.077 +-81.7215 -45.5872 291.13 +-87.8181 -47.3787 302.571 +-88.982 -46.4721 296.782 +-96.4242 -48.7912 311.592 +-95.2335 -46.7264 298.406 +-101.728 -48.4353 309.319 +-101.157 -46.7704 298.686 +-108.317 -48.6652 310.787 +-106.451 -46.5046 296.989 +-114.235 -48.5542 310.079 +-113.082 -46.7897 298.81 +-109.195 -44.0068 281.037 +-118.417 -46.5061 296.999 +-98.9711 -37.8961 242.013 +-98.6941 -36.8606 235.401 +-97.0967 -35.3873 225.991 +-97.0156 -34.5172 220.435 +-96.9253 -33.6783 215.077 +-96.9553 -32.9126 210.188 +-96.9486 -32.1636 205.404 +-97.2955 -31.5567 201.528 +-97.143 -30.8124 196.775 +-96.9588 -30.0847 192.128 +-97.154 -29.4978 188.38 +-97.1981 -28.8853 184.468 +-97.2276 -28.2885 180.657 +-97.0541 -27.6531 176.599 +-97.4467 -27.1964 173.683 +-97.1552 -26.5655 169.654 +-97.05 -26.0047 166.072 +-97.0921 -25.4995 162.846 +-97.1877 -25.0225 159.8 +-97.1325 -24.5212 156.598 +-97.0812 -24.0348 153.492 +-97.305 -23.6288 150.899 +-97.2725 -23.1723 147.984 +-97.0857 -22.6918 144.915 +-97.2436 -22.3034 142.434 +-97.4785 -21.9417 140.125 +-97.6801 -21.5812 137.823 +-97.3258 -21.1084 134.803 +-97.5724 -20.776 132.68 +-97.6104 -20.4072 130.325 +-97.5542 -20.0275 127.9 +-97.7671 -19.711 125.879 +-97.5823 -19.3223 123.396 +-97.4235 -18.9476 121.004 +-97.1671 -18.5628 118.546 +-97.1291 -18.228 116.409 +-97.2538 -17.9304 114.508 +-97.2873 -17.6219 112.538 +-96.9655 -17.2564 110.203 +-97.3389 -17.0206 108.697 +-97.3585 -16.7276 106.826 +-97.0823 -16.3902 104.672 +-97.4576 -16.1679 103.252 +-97.6087 -15.9123 101.62 +-97.3911 -15.6018 99.6369 +-97.5666 -15.3595 98.0892 +-97.7222 -15.1178 96.5457 +-97.9293 -14.8877 95.0763 +-97.3986 -14.5507 92.9244 +-97.5629 -14.3229 91.4691 +-97.782 -14.1062 90.0855 +-97.9842 -13.89 88.705 +-98.0951 -13.6641 87.2619 +-97.7387 -13.3774 85.4309 +-97.8104 -13.1536 84.0017 +-97.9403 -12.9406 82.6419 +-98.1303 -12.7383 81.3498 +-98.3821 -12.5463 80.1237 +-97.765 -12.2475 78.2154 +-97.7478 -12.0284 76.8161 +-97.8709 -11.8293 75.5447 +-98.6932 -11.7155 74.8182 +-98.7113 -11.5074 73.4888 +-98.6332 -11.2909 72.1062 +-98.7001 -11.0936 70.8465 +-98.4266 -10.8611 69.3618 +-98.7078 -10.6924 68.2839 +-98.3183 -10.4536 66.7588 +-100.894 -10.528 67.2345 +-99.4826 -10.1865 65.0534 +-108.021 -10.8523 69.305 +-106.942 -10.5398 67.3094 +-111.603 -10.7885 68.8978 +-111.696 -10.5889 67.6233 +-116.832 -10.86 69.3546 +-117.957 -10.749 68.6455 +-137.265 -12.2601 78.2959 +-135.775 -11.8839 75.8933 +-161.192 -13.8227 88.2747 +-161.439 -13.5602 86.5989 +-163.522 -13.4507 85.8994 +-163.476 -13.1652 84.0758 +-164.569 -12.9721 82.8425 +-163.952 -12.6458 80.7593 +-166.816 -12.5868 80.3822 +-168.152 -12.4077 79.2386 +-171.292 -12.3568 78.9133 +-173.166 -12.2085 77.966 +-180.151 -12.4084 79.2429 +-178.552 -12.0105 76.7018 +-648.588 -42.5908 271.995 +-653.09 -41.8498 267.262 +-377.642 -23.6039 150.74 +-380.076 -23.1613 147.914 +-379.034 -22.5086 143.745 +-113.993 -6.59342 42.1071 +-112.575 -6.33875 40.4807 +-110.101 -6.03161 38.5192 +-109.207 -5.81727 37.1504 +-108.488 -5.61563 35.8627 +-108.42 -5.44982 34.8038 +-108.152 -5.27533 33.6895 +-108.541 -5.13365 32.7847 +-107.867 -4.94298 31.567 +-109.199 -4.84408 30.9354 +-109.661 -4.70474 30.0456 +-109.439 -4.53651 28.9712 +-109.401 -4.37696 27.9523 +-109.837 -4.2366 27.0559 +-110.656 -4.10982 26.2463 +-111.273 -3.9742 25.3801 +-111.688 -3.83052 24.4626 +-113.465 -3.73107 23.8275 +-115.337 -3.63017 23.1831 +-120.249 -3.61601 23.0927 +-154.764 -4.43745 28.3386 +-156.191 -4.26058 27.209 +-158.693 -4.10829 26.2365 +-159.61 -3.91083 24.9755 +-163.089 -3.77067 24.0804 +-850.244 -18.4859 118.055 +-861.268 -17.5413 112.023 +-378.855 -7.19634 45.9575 +-379.743 -6.69337 42.7454 +-895.865 -14.5666 93.0256 +-403.932 -6.017 38.426 +-403.359 -5.45933 34.8646 +-402.954 -4.90609 31.3314 +-403.515 -4.36514 27.8768 +-403.746 -3.82022 24.3968 +-145.5 -1.17966 7.53355 +-402.217 -2.71675 17.3498 +-402.455 -2.17418 13.8848 +-145.25 -0.58841 3.75772 +-144.578 -0.390408 2.49324 +-146.394 -0.197641 1.26218 +119.4 4.88498e-15 0 +119.295 -0.151771 1.02996 +120.282 -0.306073 2.07709 +119.959 -0.457937 3.10767 +120.227 -0.612055 4.15356 +120.086 -0.764345 5.18704 +120.634 -0.921664 6.25464 +119.976 -1.06976 7.25964 +120.406 -1.22743 8.32966 +120.328 -1.38056 9.36884 +120.141 -1.53232 10.3987 +120.144 -1.6865 11.445 +120.636 -1.84842 12.5438 +120.421 -2.00017 13.5736 +119.503 -2.13908 14.5163 +120.262 -2.30815 15.6637 +120.02 -2.45903 16.6876 +120.165 -2.61808 17.7669 +119.905 -2.76857 18.7882 +120.327 -2.93545 19.9207 +120.245 -3.09094 20.9759 +119.859 -3.23849 21.9772 +120.446 -3.41311 23.1622 +120.237 -3.56619 24.2011 +120.801 -3.74327 25.4028 +120.377 -3.8905 26.4019 +120.919 -4.06973 27.6182 +120.671 -4.22341 28.6611 +120.414 -4.37676 29.7018 +120.922 -4.55899 30.9384 +120.741 -4.71642 32.0068 +120.454 -4.86984 33.0479 +120.927 -5.05504 34.3048 +120.715 -5.21282 35.3755 +120.973 -5.39177 36.5899 +120.836 -5.55423 37.6924 +121.355 -5.74829 39.0093 +121.006 -5.90246 40.0556 +121.499 -6.09889 41.3886 +121.978 -6.29702 42.7331 +121.596 -6.45196 43.7846 +119.613 -6.51962 44.2437 +115.391 -6.45734 43.8211 +112.301 -6.44894 43.7641 +109.5 -6.44957 43.7684 +106.154 -6.4101 43.5005 +103.557 -6.40821 43.4877 +101.152 -6.41181 43.5121 +98.5716 -6.39795 43.418 +96.7289 -6.42637 43.611 +97.0656 -6.59847 44.7788 +97.389 -6.77191 45.9558 +97.609 -6.94029 47.0985 +98.0848 -7.12925 48.3808 +97.8325 -7.267 49.3157 +97.1277 -7.37099 50.0213 +96.6828 -7.49426 50.8579 +96.9335 -7.67263 52.0683 +96.4706 -7.79565 52.9032 +96.6095 -7.96833 54.0751 +96.1288 -8.09093 54.9071 +96.3301 -8.27211 56.1366 +96.6028 -8.46192 57.4247 +96.0073 -8.57687 58.2048 +96.1687 -8.76048 59.4508 +96.3996 -8.95299 60.7572 +96.6148 -9.14675 62.0721 +95.9803 -9.26126 62.8492 +96.8316 -9.5216 64.6159 +96.2579 -9.64442 65.4494 +96.4142 -9.84177 66.7887 +96.4727 -10.0318 68.0781 +96.5157 -10.2227 69.3737 +95.8197 -10.3364 70.1454 +95.9161 -10.5369 71.5058 +96.6304 -10.8094 73.355 +96.1373 -10.9498 74.3083 +96.6521 -11.2079 76.0593 +96.0552 -11.3396 76.953 +96.6846 -11.619 78.8491 +95.9854 -11.7415 79.6808 +95.7351 -11.92 80.892 +95.9236 -12.1561 82.4943 +96.5404 -12.4515 84.4992 +96.3116 -12.6422 85.7928 +96.2147 -12.8528 87.2226 +96.173 -13.0742 88.7247 +96.0396 -13.2863 90.1644 +95.8161 -13.489 91.54 +96.2888 -13.7944 93.6119 +96.0958 -14.0091 95.0692 +95.8844 -14.2244 96.5303 +96.3491 -14.5451 98.7065 +95.9566 -14.7411 100.037 +95.8208 -14.9799 101.657 +96.0014 -15.2732 103.648 +95.7526 -15.5031 105.208 +95.351 -15.7117 106.624 +95.5878 -16.0304 108.786 +95.6637 -16.3288 110.811 +95.454 -16.5839 112.543 +95.7298 -16.9296 114.888 +95.0903 -17.1188 116.172 +95.8673 -17.57 119.234 +95.3044 -17.7831 120.681 +95.0885 -18.0657 122.598 +95.0868 -18.3954 124.836 +94.9337 -18.7033 126.925 +94.9861 -19.0592 129.34 +94.8869 -19.3929 131.605 +94.8122 -19.7398 133.959 +94.8164 -20.112 136.485 +95.1187 -20.5581 139.512 +94.7676 -20.8729 141.648 +94.7672 -21.2739 144.37 +94.9408 -21.7255 147.435 +94.8026 -22.1176 150.095 +94.8857 -22.5728 153.185 +95.076 -23.0676 156.543 +94.6052 -23.4139 158.892 +94.6 -23.8868 162.102 +94.5453 -24.3614 165.323 +94.5379 -24.8634 168.729 +94.6683 -25.4182 172.494 +94.8333 -26.0011 176.45 +94.6123 -26.4958 179.807 +94.657 -27.0828 183.79 +94.6386 -27.6719 187.788 +94.469 -28.2366 191.621 +94.7124 -28.9479 196.448 +94.6242 -29.5825 200.754 +94.4671 -30.2191 205.074 +94.729 -31.0174 210.492 +94.3839 -31.6447 214.749 +94.049 -32.3005 219.199 +94.6376 -33.3077 226.034 +93.839 -33.8595 229.779 +94.0442 -34.8049 236.194 +93.8924 -35.6581 241.985 +93.8556 -36.5955 248.346 +93.6451 -37.5081 254.539 +93.4325 -38.464 261.026 +93.5357 -39.6014 268.745 +93.5731 -40.7697 276.673 +92.0871 -41.317 280.387 +93.6097 -43.2817 293.72 +87.0391 -41.5031 281.651 +92.1346 -45.3444 307.718 +82.8842 -42.1386 285.963 +87.4938 -45.9934 312.122 +78.3704 -42.6388 289.357 +83.4266 -47.0276 319.141 +71.875 -42.0255 285.195 +74.6325 -45.319 307.546 +65.9781 -41.6622 282.73 +68.9793 -45.3597 307.822 +60.5439 -41.5243 281.794 +63.5585 -45.5425 309.063 +55.8307 -41.8723 284.155 +57.6775 -45.3675 307.875 +50.6532 -41.8787 284.199 +52.5016 -45.7374 310.385 +45.2252 -41.6269 282.49 +47.0921 -45.9361 311.734 +40.5968 -42.1109 285.775 +41.6248 -46.0924 312.794 +35.3665 -41.9908 284.96 +35.8741 -45.9015 311.499 +30.3028 -42.0309 285.232 +30.3735 -45.9858 312.071 +25.2316 -42.0434 285.317 +24.8872 -46.0997 312.844 +20.2852 -42.2904 286.993 +19.3402 -46.0978 312.831 +15.146 -42.1316 285.915 +13.8361 -46.1982 313.512 +10.0825 -42.0909 285.639 +8.31118 -46.2701 314 +5.05073 -42.1831 286.265 +2.77504 -46.3571 314.591 +1.29896e-14 -42.3207 287.199 +-2.77853 -46.4154 314.987 +-5.06643 -42.3143 287.155 +-8.33212 -46.3867 314.792 +-10.1418 -42.3386 287.32 +-13.9582 -46.606 316.28 +-15.3449 -42.6849 289.67 +-19.6088 -46.738 317.176 +-20.4665 -42.6684 289.558 +-25.1618 -46.6083 316.295 +-25.6499 -42.7405 290.048 +-31.0444 -47.0016 318.965 +-30.8777 -42.8283 290.643 +-36.7231 -46.9879 318.872 +-36.2196 -43.0037 291.834 +-42.4732 -47.0318 319.169 +-41.4318 -42.9771 291.654 +-48.5258 -47.3347 321.225 +-46.7583 -43.0379 292.066 +-54.7958 -47.7361 323.949 +-52.1639 -43.1277 292.675 +-61.1582 -48.1053 326.455 +-57.4908 -43.1172 292.604 +-67.3066 -48.2282 327.289 +-62.9972 -43.2069 293.213 +-74.4552 -48.9605 332.258 +-69.0375 -43.594 295.839 +-80.9589 -49.1605 333.615 +-74.9716 -43.8361 297.483 +-87.2825 -49.201 333.89 +-81.1139 -44.1315 299.487 +-94.2015 -49.5194 336.051 +-87.8181 -44.6471 302.986 +-101.45 -49.9291 338.831 +-96.4242 -45.9782 312.02 +-107.833 -49.8581 338.349 +-101.728 -45.6428 309.743 +-114.61 -49.9356 338.876 +-108.317 -45.8594 311.213 +-122.173 -50.296 341.321 +-114.235 -45.7549 310.504 +-97.5678 -38.043 258.169 +-109.195 -41.4696 281.423 +-96.9396 -35.8764 243.466 +-98.9711 -35.7112 242.345 +-97.1251 -34.1832 231.976 +-97.0967 -33.347 226.301 +-97.0156 -32.5272 220.737 +-96.9253 -31.7366 215.372 +-97.0797 -31.0549 210.746 +-96.9486 -30.3092 205.686 +-96.7789 -29.5794 200.733 +-97.143 -29.036 197.045 +-97.3157 -28.4546 193.1 +-97.154 -27.7971 188.638 +-97.2443 -27.2328 184.808 +-97.2276 -26.6575 180.904 +-97.1972 -26.0973 177.103 +-97.4467 -25.6284 173.921 +-96.8597 -24.9578 169.37 +-97.05 -24.5055 166.3 +-97.0921 -24.0293 163.069 +-97.1877 -23.5799 160.019 +-97.1325 -23.1074 156.813 +-97.0812 -22.6491 153.702 +-97.305 -22.2665 151.106 +-97.2725 -21.8363 148.187 +-97.0857 -21.3835 145.114 +-97.2436 -21.0175 142.63 +-97.4219 -20.6647 140.236 +-97.6801 -20.337 138.012 +-97.2097 -19.8677 134.827 +-97.5724 -19.5782 132.862 +-97.432 -19.1955 130.265 +-97.5542 -18.8729 128.076 +-97.7062 -18.5629 125.973 +-97.5823 -18.2082 123.566 +-97.6103 -17.8894 121.402 +-97.1671 -17.4926 118.709 +-97.5108 -17.2446 117.026 +-97.2538 -16.8966 114.665 +-97.2873 -16.6059 112.692 +-96.9655 -16.2615 110.354 +-97.4051 -16.0501 108.92 +-97.3585 -15.7632 106.973 +-97.6903 -15.5419 105.471 +-97.4576 -15.2357 103.393 +-97.7463 -15.016 101.903 +-97.3911 -14.7023 99.7736 +-97.4264 -14.4531 98.0826 +-97.7222 -14.2462 96.6782 +-97.9293 -14.0294 95.2067 +-97.3986 -13.7118 93.0519 +-97.5629 -13.4971 91.5946 +-97.782 -13.2929 90.2091 +-97.9104 -13.0794 88.7599 +-98.0951 -12.8763 87.3816 +-98.3379 -12.6834 86.0725 +-97.8104 -12.3952 84.1169 +-98.0163 -12.204 82.8196 +-98.1303 -12.0039 81.4614 +-98.305 -11.8137 80.1707 +-97.765 -11.5414 78.3227 +-98.0608 -11.3712 77.1678 +-97.8709 -11.1473 75.6483 +-98.5345 -11.0224 74.8005 +-98.7113 -10.8439 73.5896 +-99.839 -10.77 73.0877 +-98.7001 -10.454 70.9437 +-105.102 -10.9291 74.1679 +-98.7078 -10.0759 68.3776 +-109.774 -10.9986 74.6393 +-100.894 -9.92106 67.3268 +-112.992 -10.9027 73.9885 +-108.021 -10.2266 69.4001 +-122.376 -11.3655 77.1293 +-111.603 -10.1665 68.9924 +-162.684 -14.5335 98.6276 +-116.832 -10.2339 69.4497 +-163.882 -14.0729 95.5025 +-137.265 -11.5533 78.4033 +-163.975 -13.5246 91.7815 +-161.192 -13.0257 88.3958 +-166.536 -13.1819 89.4556 +-163.522 -12.6752 86.0172 +-170.483 -12.9379 87.8 +-164.569 -12.2242 82.9562 +-176.392 -12.8209 87.006 +-166.816 -11.8611 80.4925 +-184.127 -12.8033 86.886 +-171.292 -11.6444 79.0216 +-2981.49 -198.081 1344.22 +-180.151 -11.693 79.3516 +-378.379 -23.9847 162.766 +-648.588 -40.1353 272.368 +-378.329 -22.8454 155.035 +-377.642 -22.2431 150.947 +-378.959 -21.7618 147.681 +-379.034 -21.2109 143.943 +-114.368 -6.23371 42.3035 +-112.575 -5.9733 40.5363 +-110.949 -5.72767 38.8694 +-109.207 -5.48188 37.2014 +-108.488 -5.29186 35.9119 +-108.42 -5.13561 34.8515 +-108.819 -5.00187 33.9439 +-108.541 -4.83768 32.8297 +-108.059 -4.66628 31.6665 +-109.199 -4.5648 30.9779 +-109.565 -4.4296 30.0604 +-109.439 -4.27496 29.0109 +-109.594 -4.13192 28.0402 +-109.837 -3.99234 27.093 +-110.656 -3.87287 26.2823 +-111.273 -3.74507 25.415 +-111.688 -3.60968 24.4962 +-113.465 -3.51596 23.8601 +-114.553 -3.39762 23.0571 +-120.249 -3.40754 23.1244 +-154.174 -4.16566 28.2692 +-156.191 -4.01494 27.2464 +-161.849 -3.94842 26.7949 +-159.61 -3.68535 25.0097 +-162.1 -3.53173 23.9672 +-850.244 -17.4201 118.217 +-861.764 -16.5395 112.241 +-378.855 -6.78144 46.0205 +-381.333 -6.33387 42.9832 +-895.865 -13.7268 93.1533 +-402.041 -5.64355 38.2985 +-403.359 -5.14458 34.9124 +-402.655 -4.61979 31.351 +-403.515 -4.11347 27.9151 +-403.147 -3.59463 24.3941 +-145.5 -1.11164 7.54389 +-401.717 -2.55694 17.352 +-402.455 -2.04883 13.9039 +-145.15 -0.554104 3.76028 +-144.578 -0.3679 2.49666 +-147.894 -0.188154 1.27686 +120.3 5.77316e-15 5.68434e-14 +120.295 -0.143667 1.03992 +120.282 -0.287323 2.07977 +119.959 -0.429882 3.11168 +120.127 -0.574081 4.15545 +119.786 -0.715728 5.18075 +119.736 -0.858754 6.21604 +120.076 -1.00506 7.27504 +119.708 -1.14555 8.29202 +120.228 -1.29491 9.37315 +119.842 -1.43486 10.3862 +120.244 -1.58449 11.4693 +119.939 -1.72516 12.4875 +120.719 -1.88228 13.6248 +119.503 -2.00804 14.535 +120.064 -2.16317 15.658 +120.714 -2.32171 16.8056 +120.067 -2.45568 17.7753 +120.794 -2.61823 18.9519 +120.425 -2.75787 19.9627 +120.245 -2.90158 21.0029 +120.645 -3.06004 22.1499 +120.446 -3.20401 23.192 +120.237 -3.34772 24.2322 +120.801 -3.51395 25.4355 +120.377 -3.65216 26.4359 +120.919 -3.8204 27.6538 +120.671 -3.96467 28.698 +121.287 -4.13842 29.9557 +120.05 -4.24884 30.755 +120.837 -4.43102 32.0737 +121.225 -4.60076 33.3023 +120.927 -4.74535 34.349 +120.715 -4.89347 35.4211 +120.781 -5.05345 36.5791 +121.408 -5.23865 37.9196 +121.165 -5.38768 38.9984 +121.765 -5.57559 40.3586 +121.499 -5.72525 41.4419 +121.224 -5.87471 42.5237 +121.502 -6.05201 43.8071 +117.927 -6.03394 43.6763 +115.204 -6.05193 43.8065 +111.464 -6.00871 43.4937 +108.017 -5.97243 43.2311 +105.322 -5.97027 43.2154 +102.728 -5.96749 43.1953 +100.235 -5.96444 43.1732 +97.8407 -5.96146 43.1517 +96.0919 -5.99295 43.3796 +97.0656 -6.19423 44.8366 +96.5766 -6.30403 45.6313 +96.8001 -6.46112 46.7684 +97.9953 -6.68639 48.399 +96.4069 -6.72239 48.6596 +97.1277 -6.91942 50.0858 +96.6828 -7.03514 50.9234 +96.2305 -7.15034 51.7573 +96.2956 -7.30479 52.8753 +96.6095 -7.48017 54.1447 +96.1288 -7.59526 54.9778 +96.4163 -7.77228 56.2592 +96.6028 -7.94352 57.4987 +96.7747 -8.11579 58.7456 +96.2535 -8.23105 59.5799 +96.3153 -8.39716 60.7823 +96.6148 -8.58639 62.1521 +95.9803 -8.69389 62.9302 +96.0855 -8.86942 64.2007 +96.2579 -9.05358 65.5338 +96.3323 -9.23099 66.818 +96.4727 -9.41721 68.1659 +95.7876 -9.52402 68.939 +95.8197 -9.70317 70.2358 +95.9161 -9.89136 71.598 +95.9164 -10.0722 72.9068 +96.0585 -10.2706 74.343 +96.026 -10.4531 75.6639 +96.0552 -10.6449 77.0522 +95.9901 -10.8288 78.3836 +95.9854 -11.0222 79.7835 +95.8872 -11.2075 81.1249 +95.6972 -11.3844 82.4056 +96.4655 -11.6797 84.5425 +96.3116 -11.8677 85.9034 +96.2147 -12.0654 87.335 +96.0999 -12.2639 88.7715 +95.967 -12.463 90.2125 +95.8161 -12.6627 91.658 +96.2888 -12.9493 93.7325 +95.9544 -13.1315 95.0516 +95.7442 -13.3334 96.5133 +96.1407 -13.6245 98.6199 +95.9566 -13.838 100.166 +95.6162 -14.0322 101.571 +95.3258 -14.2367 103.051 +95.6857 -14.5432 105.27 +95.2848 -14.7389 106.687 +95.5878 -15.0483 108.926 +95.6637 -15.3285 110.954 +95.5182 -15.5784 112.763 +95.1573 -15.7975 114.349 +95.342 -16.1126 116.63 +95.2447 -16.3865 118.612 +94.6272 -16.575 119.977 +95.0885 -16.9589 122.756 +95.2673 -17.3013 125.235 +94.9337 -17.5575 127.089 +95.5151 -17.9912 130.228 +95.003 -18.2271 131.936 +94.7548 -18.5193 134.051 +94.5898 -18.8347 136.334 +94.6154 -19.1966 138.953 +94.9884 -19.6398 142.162 +94.6583 -19.9476 144.39 +94.511 -20.3023 146.957 +94.7496 -20.7509 150.204 +94.8335 -21.1783 153.298 +94.561 -21.5371 155.895 +94.6052 -21.9795 159.097 +94.65 -22.4353 162.397 +94.4961 -22.8571 165.45 +94.3924 -23.3042 168.686 +94.1911 -23.7407 171.846 +94.7863 -24.3961 176.59 +94.4738 -24.8361 179.775 +94.7024 -25.4358 184.115 +94.5939 -25.9643 187.941 +94.5128 -26.5191 191.957 +93.9806 -26.9644 195.18 +94.4129 -27.7082 200.564 +94.2183 -28.2931 204.798 +94.2002 -28.9546 209.586 +94.2244 -29.6559 214.662 +94.3616 -30.4224 220.21 +94.1784 -31.1155 225.228 +94.5132 -32.0134 231.727 +94.484 -32.8255 237.605 +94.2508 -33.6014 243.222 +94.1007 -34.4433 249.316 +93.9529 -35.326 255.705 +93.8665 -36.2754 262.577 +93.666 -37.2272 269.467 +93.9222 -38.4148 278.063 +93.5703 -39.4105 285.271 +93.5195 -40.591 293.815 +93.3835 -41.8005 302.57 +93.4694 -43.1832 312.579 +93.1654 -44.4639 321.849 +93.3731 -46.0768 333.524 +93.2007 -47.6011 344.557 +93.2666 -49.3535 357.242 +96.1156 -52.756 381.871 +107.502 -61.2788 443.563 +103.455 -61.325 443.897 +99.454 -61.3927 444.387 +95.3067 -61.3619 444.164 +92.5466 -62.2512 450.601 +92.6568 -65.2341 472.193 +92.6485 -68.4103 495.184 +92.3808 -71.699 518.989 +90.6441 -74.1281 536.572 +91.4985 -79.059 572.264 +83.2463 -76.2282 551.773 +84.3946 -82.1792 594.849 +69.962 -72.7248 526.414 +71.4642 -79.6516 576.553 +61.5825 -73.9687 535.418 +61.3164 -79.8374 577.898 +51.9772 -73.8729 534.724 +51.1866 -80.0671 579.56 +41.9756 -72.9899 528.333 +40.9122 -80.0679 579.566 +32.6793 -73.1201 529.275 +30.7892 -80.3995 581.967 +23.3276 -73.1186 529.264 +20.5384 -80.4881 582.609 +14.2115 -74.2713 537.608 +10.2864 -80.648 583.766 +4.71757 -73.9791 535.493 +2.86438e-14 -80.8382 585.142 +-4.7612 -74.6633 540.446 +-10.2864 -80.648 583.766 +-14.4444 -75.4888 546.421 +-20.6675 -80.9941 586.271 +-24.1913 -75.8256 548.859 +-31.4853 -82.2171 595.124 +-34.1078 -76.3164 552.411 +-42.4538 -83.0849 601.405 +-43.8351 -76.2233 551.738 +-53.1563 -83.1481 601.863 +-54.1337 -76.9379 556.911 +-63.4592 -82.6274 598.093 +-63.7221 -76.5386 554.02 +-75.364 -83.9983 608.016 +-74.2564 -77.1888 558.726 +-87.2059 -84.9167 614.664 +-84.7244 -77.5817 561.57 +-101.229 -87.4663 633.12 +-97.2626 -79.5406 575.75 +-112.732 -87.4943 633.322 +-107.665 -79.498 575.442 +-122.27 -86.0833 623.109 +-117.547 -79.0679 572.328 +-135.621 -87.3176 632.043 +-131.227 -81.0063 586.359 +-142.506 -84.4734 611.456 +-140.698 -80.2014 580.533 +-143.29 -78.6494 569.299 +-142.717 -75.5207 546.652 +-142.402 -72.73 526.452 +-142.492 -70.3154 508.974 +-97.4654 -46.5161 336.704 +-97.5877 -45.0857 326.35 +-97.2136 -43.5148 314.979 +-97.3986 -42.2747 306.003 +-97.124 -40.9073 296.105 +-97 -39.6737 287.175 +-97.117 -38.5987 279.394 +-97.1044 -37.5266 271.634 +-97.4415 -36.6376 265.199 +-97.0775 -35.533 257.203 +-97.4402 -34.7385 251.453 +-97.416 -33.8441 244.978 +-97.3977 -32.9905 238.8 +-97.2016 -32.1143 232.457 +-97.4483 -31.4176 227.414 +-97.4543 -30.6724 222.02 +-97.1694 -29.8673 216.193 +-97.287 -29.2147 211.469 +-97.4135 -28.5888 206.939 +-97.3816 -27.9403 202.244 +-97.2307 -27.2818 197.477 +-97.405 -26.7359 193.526 +-97.1086 -26.082 188.793 +-97.2443 -25.5644 185.046 +-97.2745 -25.0366 181.226 +-97.1972 -24.4985 177.331 +-97.5437 -24.0822 174.317 +-97.3029 -23.536 170.364 +-97.5 -23.1108 167.286 +-97.1428 -22.569 163.364 +-97.6512 -22.241 160.99 +-97.1325 -21.6918 157.015 +-97.0812 -21.2615 153.9 +-97.4124 -20.9256 151.468 +-97.327 -20.5099 148.46 +-97.5825 -20.1762 146.044 +-97.7469 -19.832 143.553 +-97.4785 -19.4099 140.498 +-97.508 -19.0574 137.946 +-97.2677 -18.6616 135.081 +-98.5128 -18.5558 134.315 +-97.6104 -18.0525 130.672 +-99.3597 -18.0446 130.614 +-97.9497 -17.4692 126.45 +-100.907 -17.6751 127.94 +-99.2288 -17.072 123.574 +-105.789 -17.878 129.409 +-100.182 -16.6317 120.388 +-109.595 -17.8743 129.382 +-103.132 -16.5251 119.616 +-113.039 -17.7956 128.813 +-107.808 -16.676 120.709 +-119.44 -18.1535 131.403 +-111.675 -16.6784 120.725 +-165.589 -24.3011 175.902 +-117.846 -16.9948 123.016 +-163.731 -23.2029 167.953 +-128.547 -17.9016 129.579 +-165.675 -22.6729 164.116 +-165.403 -22.244 161.012 +-166.383 -21.9885 159.162 +-163.935 -21.2897 154.104 +-171.502 -21.8865 158.424 +-165.371 -20.7378 150.109 +-176.868 -21.794 157.755 +-167.541 -20.2852 146.833 +-142.64 -16.9689 122.828 +-141.816 -16.5757 119.982 +-142.025 -16.309 118.052 +-142.442 -16.0691 116.315 +-141.674 -15.7003 113.646 +-142.2 -15.4794 112.047 +-143.26 -15.3174 110.874 +-147.326 -15.4707 111.983 +-154.776 -15.9613 115.535 +-155.386 -15.7351 113.897 +-156.626 -15.573 112.724 +-158.508 -15.4728 111.999 +-159.98 -15.33 110.965 +-381.9 -35.9198 260.004 +-378.87 -34.9726 253.147 +-379.835 -34.4054 249.042 +-377.821 -33.5779 243.052 +-380.707 -33.1916 240.255 +-377.805 -32.3078 233.858 +-380.363 -31.8983 230.894 +-378.268 -31.1044 225.148 +-379.72 -30.6099 221.568 +-379.233 -29.9636 216.89 +-380.258 -29.4422 213.116 +-379.41 -28.7812 208.331 +-378.419 -28.1182 203.532 +-380.021 -27.6524 200.16 +-380.528 -27.1089 196.226 +-379.034 -26.4299 191.311 +-379.363 -25.8845 187.363 +-379.74 -25.3465 183.469 +-378.905 -24.733 179.029 +-379.29 -24.2044 175.202 +-378.635 -23.6143 170.931 +-378.025 -23.0332 166.724 +-380.397 -22.6354 163.845 +-378.696 -21.9985 159.235 +-378.883 -21.4772 155.461 +-378.847 -20.947 151.624 +-379.331 -20.4488 148.017 +-379.314 -19.9263 144.235 +-113.993 -5.83264 42.2192 +-113.797 -5.6682 41.0289 +-110.289 -5.34479 38.6879 +-109.869 -5.17723 37.4751 +-109.152 -4.99806 36.1782 +-108.135 -4.80831 34.8046 +-108.628 -4.68722 33.9282 +-107.776 -4.5093 32.6403 +-108.538 -4.39985 31.848 +-108.623 -4.26252 30.854 +-108.794 -4.12898 29.8873 +-110.116 -4.03786 29.2278 +-109.401 -3.87193 28.0267 +-109.352 -3.7312 27.0081 +-110.072 -3.61644 26.1774 +-110.591 -3.49408 25.2917 +-111.786 -3.3915 24.5491 +-112.976 -3.28633 23.7879 +-115.043 -3.20312 23.1856 +-117.108 -3.11522 22.5493 +-127.921 -3.24459 23.4857 +-158.849 -3.83314 27.746 +-159.186 -3.64555 26.3881 +-159.215 -3.45101 24.9799 +-162.792 -3.32952 24.1005 +-849.452 -16.3377 118.26 +-861.169 -15.5155 112.308 +-379.947 -6.38434 46.2127 +-380.24 -5.92881 42.9153 +-3258.55 -46.87 339.266 +-403.335 -5.31486 38.4713 +-402.961 -4.82463 34.9228 +-402.655 -4.33677 31.3915 +-402.218 -3.84906 27.8612 +-403.346 -3.37609 24.4376 +-146.998 -1.05428 7.63137 +-403.016 -2.40805 17.4305 +-404.154 -1.93144 13.9806 +-144.45 -0.517651 3.74698 +-145.578 -0.347749 2.51716 +-145.994 -0.174358 1.26208 +119.4 4.88498e-15 0 +119.395 -0.133275 1.03339 +119.382 -0.26654 2.0667 +119.959 -0.401793 3.11543 +119.927 -0.535677 4.15354 +120.485 -0.672867 5.21729 +120.035 -0.80465 6.23911 +120.076 -0.939384 7.28381 +119.708 -1.0707 8.30202 +120.228 -1.2103 9.38445 +119.842 -1.3411 10.3987 +120.144 -1.47973 11.4736 +119.939 -1.61244 12.5026 +119.825 -1.74626 13.5402 +120.297 -1.8893 14.6493 +120.064 -2.02183 15.6769 +120.714 -2.17001 16.8258 +120.067 -2.29522 17.7967 +119.905 -2.42914 18.8351 +120.524 -2.57978 20.0031 +120.245 -2.71199 21.0282 +120.449 -2.85544 22.1405 +120.249 -2.98977 23.1821 +120.041 -3.12388 24.222 +120.019 -3.26307 25.3013 +120.377 -3.41352 26.4678 +120.14 -3.54776 27.5087 +120.671 -3.70561 28.7326 +120.414 -3.84016 29.7759 +120.147 -3.97443 30.817 +120.837 -4.14149 32.1123 +120.55 -4.2762 33.1569 +120.927 -4.43528 34.3904 +120.62 -4.57009 35.4356 +120.877 -4.72699 36.6522 +121.408 -4.89635 37.9654 +121.165 -5.03564 39.0454 +121.575 -5.20316 40.3444 +121.405 -5.347 41.4596 +121.224 -5.49084 42.575 +121.408 -5.65219 43.826 +118.395 -5.66206 43.9026 +114.364 -5.61523 43.5395 +111.464 -5.61609 43.5461 +108.851 -5.6253 43.6176 +105.322 -5.58016 43.2676 +102.636 -5.57256 43.2086 +100.326 -5.5798 43.2648 +97.8407 -5.57192 43.2037 +96.2739 -5.61196 43.5141 +97.0656 -5.78949 44.8906 +97.389 -5.94166 46.0705 +96.6204 -6.02772 46.7378 +97.9058 -6.24377 48.413 +96.6742 -6.30056 48.8534 +97.1277 -6.46729 50.1462 +96.5945 -6.56945 50.9383 +96.9335 -6.73195 52.1983 +96.4706 -6.83989 53.0353 +96.6095 -6.9914 54.21 +96.1288 -7.09897 55.0441 +96.4163 -7.26442 56.327 +96.517 -7.41789 57.5169 +96.0073 -7.52533 58.35 +96.1687 -7.68643 59.5992 +96.3996 -7.85534 60.9088 +96.6148 -8.02534 62.227 +96.7308 -8.18936 63.4988 +96.1684 -8.29702 64.3336 +96.2579 -8.462 65.6128 +96.3323 -8.62782 66.8985 +96.4727 -8.80187 68.2481 +96.5966 -8.97689 69.6051 +95.9001 -9.07676 70.3795 +95.996 -9.25273 71.744 +95.9958 -9.42182 73.055 +95.9797 -9.59162 74.3716 +96.026 -9.77004 75.7551 +96.0552 -9.9493 77.1451 +96.0673 -10.1294 78.5412 +95.8322 -10.2855 79.7522 +95.9632 -10.4835 81.2871 +95.8481 -10.6573 82.6351 +96.4655 -10.9165 84.6445 +96.3116 -11.0922 86.007 +96.2147 -11.2771 87.4403 +96.0999 -11.4625 88.8785 +95.967 -11.6486 90.3212 +95.8161 -11.8353 91.7685 +96.1462 -12.0852 93.7065 +95.9544 -12.2735 95.1662 +95.8844 -12.4805 96.7712 +95.585 -12.6606 98.1682 +95.8878 -12.9246 100.215 +95.6844 -13.1247 101.766 +95.3933 -13.3159 103.249 +95.7526 -13.6024 105.47 +95.8149 -13.8525 107.409 +95.5222 -14.0555 108.983 +95.6637 -14.3269 111.088 +95.004 -14.482 112.291 +95.1573 -14.7652 114.487 +95.6567 -15.1094 117.156 +95.2447 -15.3157 118.755 +95.2428 -15.5928 120.904 +95.0885 -15.8508 122.904 +95.147 -16.1504 125.227 +94.9337 -16.4103 127.242 +95.1037 -16.7432 129.824 +94.9449 -17.0258 132.015 +94.8695 -17.3302 134.375 +94.6465 -17.6145 136.58 +94.3918 -17.8999 138.792 +94.7676 -18.3138 142.002 +94.7672 -18.6657 144.73 +94.4573 -18.9649 147.05 +94.5906 -19.3625 150.134 +94.311 -19.6855 152.638 +94.5095 -20.1189 155.998 +94.6559 -20.5543 159.374 +94.55 -20.9471 162.42 +94.4961 -21.3636 165.649 +94.344 -21.7703 168.803 +94.6206 -22.2906 172.838 +94.9741 -22.8472 177.153 +94.5661 -23.236 180.168 +94.7478 -23.7851 184.426 +94.5493 -24.2564 188.079 +94.5567 -24.7978 192.278 +94.2819 -25.2833 196.042 +94.4129 -25.8977 200.806 +94.1354 -26.4211 204.864 +94.2002 -27.0627 209.839 +94.2244 -27.7181 214.921 +94.3616 -28.4345 220.476 +94.5228 -29.1887 226.324 +94.2136 -29.8268 231.272 +94.5207 -30.6925 237.984 +94.2508 -31.4058 243.515 +94.1708 -32.2167 249.802 +93.9529 -33.0178 256.014 +93.8331 -33.893 262.8 +93.8287 -34.8551 270.26 +93.8904 -35.8925 278.304 +93.2304 -36.7016 284.577 +93.4894 -37.9265 294.075 +93.442 -39.0936 303.124 +93.3274 -40.3002 312.48 +93.3032 -41.6201 322.714 +93.2127 -42.9921 333.353 +93.356 -44.5648 345.547 +93.2165 -46.1038 357.48 +96.3333 -49.4206 383.198 +107.548 -57.2997 444.291 +103.545 -57.3677 444.819 +99.3025 -57.2938 444.246 +95.1404 -57.2522 443.923 +92.6064 -58.2212 451.436 +92.1226 -60.6201 470.037 +92.5574 -63.8773 495.293 +92.1551 -66.8502 518.344 +92.5092 -70.71 548.272 +92.2963 -74.5374 577.949 +91.494 -78.3063 607.172 +91.8821 -83.624 648.405 +85.2597 -82.8357 642.292 +87.1731 -90.8116 704.136 +72.3935 -81.2722 630.17 +72.7832 -88.5755 686.798 +61.5905 -81.8162 634.388 +61.2356 -89.5271 694.177 +50.5747 -82.1962 637.334 +48.9202 -89.4844 693.845 +39.3397 -82.2711 637.915 +36.9963 -90.2952 700.132 +28.0996 -82.3208 638.3 +114.341 -418.814 3247.4 +16.7297 -81.7189 633.633 +12.3738 -90.6739 703.069 +5.60244 -82.1148 636.703 +3.4639e-14 -90.9947 705.556 +-5.626 -82.46 639.38 +-12.3249 -90.3158 700.292 +-16.9836 -82.9592 643.25 +-25.0613 -91.7958 711.768 +-28.2697 -82.8192 642.164 +-37.5144 -91.5598 709.938 +-39.8586 -83.3562 646.329 +-51.0129 -93.3123 723.527 +-51.9792 -84.4788 655.033 +-63.6411 -93.044 721.446 +-63.9387 -84.9355 658.575 +-78.3127 -95.3048 738.976 +-76.7744 -86.1905 668.305 +-91.1461 -94.9503 736.227 +-88.8753 -86.3484 669.53 +-105.354 -95.8851 743.475 +-103.156 -88.2874 684.564 +-111.413 -89.9756 697.654 +-115.83 -88.5357 686.489 +-123.603 -89.6627 695.228 +-128.494 -88.6787 687.598 +-139.348 -91.6959 710.993 +-138.521 -87.0874 675.259 +-140.964 -84.8275 657.737 +-140.339 -80.9705 627.83 +-142.799 -79.1158 613.449 +-143.265 -76.329 591.841 +-143.581 -73.6593 571.141 +-143.217 -70.8337 549.231 +-142.48 -68.0148 527.374 +-142.652 -65.7948 510.161 +-97.5481 -43.5136 337.397 +-97.3889 -42.0539 326.078 +-97.2136 -40.6715 315.359 +-97.158 -39.4148 305.615 +-97.1549 -38.2464 296.556 +-97 -37.0813 287.522 +-97.0519 -36.0524 279.544 +-97.071 -35.0625 271.868 +-97.3389 -34.2077 265.24 +-97.2876 -33.283 258.071 +-97.4402 -32.4686 251.756 +-97.2328 -31.5732 244.812 +-97.3977 -30.8349 239.088 +-97.4695 -30.0986 233.379 +-97.5656 -29.4 227.962 +-97.0555 -28.5509 221.379 +-97.2101 -27.9274 216.544 +-97.0382 -27.2359 211.182 +-97.4135 -26.7208 207.188 +-97.3816 -26.1146 202.488 +-97.5814 -25.5911 198.429 +-97.405 -24.9889 193.759 +-97.608 -24.5031 189.992 +-97.2904 -23.9054 185.358 +-96.852 -23.2989 180.656 +-97.1495 -22.8864 177.457 +-97.0589 -22.3968 173.661 +-97.3521 -22.0092 170.656 +-97.45 -21.5896 167.402 +-97.1428 -21.0943 163.561 +-97.8572 -20.8316 161.524 +-97.1325 -20.2744 157.204 +-98.565 -20.176 156.441 +-97.7885 -19.6337 152.236 +-99.8868 -19.674 152.549 +-98.1896 -18.9751 147.129 +-102.556 -19.448 150.796 +-99.1777 -18.4578 143.119 +-107.374 -19.6143 152.085 +-100.636 -18.0462 139.927 +-111.503 -19.6304 152.21 +-103.975 -17.9731 139.36 +-117.896 -20.0118 155.168 +-109.09 -18.1847 141.001 +-128.981 -21.1163 163.732 +-112.302 -18.0586 140.023 +-166.141 -26.2428 203.482 +-119.646 -18.5652 143.951 +-2106.09 -321.045 2489.32 +-161.648 -24.2088 187.71 +-472.887 -69.5821 539.527 +-2171.07 -313.883 2433.79 +-478.696 -68.0025 527.279 +-169.1 -23.6045 183.025 +-484.56 -66.4652 515.359 +-168.922 -22.7688 176.545 +-490.846 -65.0145 504.111 +-2296.53 -298.92 2317.77 +-495.965 -63.4386 491.891 +-498.491 -62.6583 485.841 +-501.308 -61.9218 480.13 +-538.373 -65.3485 506.7 +-510.265 -60.8631 471.921 +-520.37 -60.9913 472.915 +-2434.91 -280.43 2174.4 +-516.854 -58.4896 453.518 +-139.848 -15.5497 120.569 +-141.283 -15.4344 119.676 +-141.335 -15.1693 117.62 +-141.902 -14.9622 116.014 +-140.974 -14.602 113.221 +-142.122 -14.46 112.12 +-143.891 -14.3796 111.497 +-146.374 -14.3663 111.393 +-154.776 -14.9183 115.674 +-156.029 -14.7678 114.507 +-156.626 -14.5554 112.86 +-158.02 -14.4172 111.788 +-159.489 -14.2843 110.758 +-380.911 -33.4858 259.643 +-378.953 -32.6945 253.507 +-382.003 -32.3409 250.765 +-380.673 -31.6207 245.181 +-379.948 -30.9608 240.065 +-380.35 -30.4001 235.717 +-378.316 -29.6536 229.929 +-379.382 -29.1577 226.084 +-379.461 -28.5903 221.684 +-380.099 -28.0697 217.647 +-378.779 -27.4114 212.543 +-379.585 -26.913 208.679 +-379.034 -26.3236 204.109 +-378.608 -25.7493 199.655 +-378.488 -25.2017 195.41 +-378.856 -24.6912 191.451 +-380.168 -24.2446 187.988 +-378.302 -23.6006 182.994 +-378.635 -23.1003 179.116 +-380.468 -22.693 175.958 +-379.09 -22.0978 171.342 +-378.939 -21.5801 167.328 +-379.479 -21.1053 163.647 +-378.788 -20.566 159.465 +-379.714 -20.118 155.991 +-378.847 -19.5783 151.807 +-378.029 -19.0469 147.686 +-380.341 -18.6746 144.8 +-113.899 -5.44705 42.2354 +-113.139 -5.26721 40.8409 +-111.043 -5.0297 38.9994 +-109.775 -4.83478 37.488 +-108.488 -4.64307 36.0015 +-108.991 -4.52969 35.1224 +-107.675 -4.34249 33.6708 +-108.541 -4.24457 32.9116 +-108.634 -4.11598 31.9146 +-108.334 -3.97342 30.8091 +-109.758 -3.89337 30.1885 +-110.116 -3.77402 29.263 +-109.691 -3.62855 28.1351 +-109.449 -3.49049 27.0646 +-110.267 -3.38611 26.2552 +-111.565 -3.29455 25.5453 +-111.786 -3.16989 24.5787 +-112.976 -3.07159 23.8165 +-114.259 -2.97342 23.0554 +-117.992 -2.93363 22.7468 +-127.725 -3.02792 23.478 +-157.569 -3.5538 27.5555 +-159.384 -3.41156 26.4526 +-160.894 -3.25954 25.2739 +-162.396 -3.1044 24.0709 +-849.155 -15.2648 118.361 +-861.466 -14.5067 112.482 +-379.053 -5.95315 46.1596 +-380.339 -5.54285 42.9782 +-896.064 -12.0465 93.4065 +-405.027 -4.98841 38.6793 +-403.658 -4.51718 35.0254 +-403.851 -4.06545 31.5227 +-403.614 -3.61005 27.9917 +-403.646 -3.15783 24.4852 +-145.101 -0.972675 7.54195 +-402.017 -2.24512 17.4082 +-403.254 -1.80121 13.9662 +-144.55 -0.484161 3.7541 +-144.578 -0.322795 2.50289 +-145.694 -0.162632 1.26102 +119.5 2.66454e-15 -1.13687e-13 +119.495 -0.124052 1.03542 +119.482 -0.248095 2.07075 +119.959 -0.373676 3.11892 +120.227 -0.499437 4.1686 +120.485 -0.625781 5.22315 +120.135 -0.748965 6.25131 +120.076 -0.873648 7.29199 +120.506 -1.00241 8.36674 +120.228 -1.12561 9.39498 +120.141 -1.25037 10.4364 +120.045 -1.37504 11.4769 +120.138 -1.50209 12.5373 +120.818 -1.63752 13.6678 +120.396 -1.75854 14.6778 +120.956 -1.89432 15.8111 +120.813 -2.01981 16.8585 +120.957 -2.15043 17.9487 +120.893 -2.27777 19.0116 +120.524 -2.39925 20.0256 +120.344 -2.52428 21.0691 +120.645 -2.65995 22.2015 +120.446 -2.78509 23.2461 +121.021 -2.92898 24.4471 +120.801 -3.05451 25.4948 +120.377 -3.17465 26.4975 +120.335 -3.30485 27.5842 +119.796 -3.42131 28.5563 +121.384 -3.60021 30.0495 +121.018 -3.7231 31.0753 +121.031 -3.85782 32.1997 +121.225 -3.99922 33.3799 +121.215 -4.13475 34.5111 +120.62 -4.25028 35.4754 +121.164 -4.40664 36.7805 +121.408 -4.55371 38.008 +121.165 -4.68325 39.0893 +121.575 -4.83905 40.3897 +121.405 -4.97282 41.5062 +121.412 -5.11454 42.689 +121.502 -5.26073 43.9092 +118.114 -5.25335 43.8476 +114.457 -5.22655 43.6239 +111.464 -5.22309 43.595 +108.11 -5.196 43.3689 +105.322 -5.18967 43.3161 +102.084 -5.15472 43.0244 +100.235 -5.1846 43.2738 +97.2012 -5.14814 42.9695 +96.4559 -5.22912 43.6454 +97.0656 -5.38435 44.941 +96.6669 -5.4849 45.7803 +97.609 -5.66327 47.2691 +97.5478 -5.78562 48.2902 +96.7633 -5.86506 48.9533 +96.3294 -5.96528 49.7898 +96.6828 -6.11531 51.0421 +96.9335 -6.26086 52.2569 +96.558 -6.36702 53.1429 +96.6095 -6.50215 54.2709 +97.0814 -6.66763 55.652 +96.3301 -6.75004 56.3399 +96.7742 -6.91718 57.7349 +96.7747 -7.05467 58.8825 +96.3383 -7.16116 59.7713 +96.3996 -7.30564 60.9772 +96.6148 -7.46374 62.2969 +96.0636 -7.56375 63.1316 +96.2513 -7.72306 64.4613 +96.2579 -7.86984 65.6864 +95.7589 -7.9763 66.575 +96.4727 -8.18593 68.3247 +95.9494 -8.29275 69.2163 +95.9001 -8.44158 70.4585 +95.996 -8.60525 71.8245 +95.9958 -8.7625 73.1371 +96.1373 -8.93506 74.5774 +96.026 -9.08635 75.8401 +96.0552 -9.25307 77.2317 +95.9901 -9.41296 78.5662 +96.062 -9.58872 80.0332 +95.8872 -9.74216 81.3139 +95.9236 -9.91937 82.793 +96.4655 -10.1526 84.7395 +96.3859 -10.324 86.17 +96.2147 -10.4879 87.5385 +96.173 -10.6685 89.046 +95.967 -10.8335 90.4226 +95.888 -11.0153 91.9405 +96.1462 -11.2395 93.8117 +96.0958 -11.4314 95.4134 +95.7442 -11.5901 96.7382 +95.585 -11.7747 98.2784 +95.8878 -12.0202 100.328 +95.8208 -12.2236 102.025 +95.3933 -12.3841 103.365 +95.6857 -12.6417 105.515 +95.2848 -12.8118 106.935 +95.5222 -13.0719 109.106 +95.6637 -13.3243 111.213 +95.0683 -13.4778 112.493 +95.0937 -13.7228 114.539 +95.2791 -13.9967 116.825 +95.307 -14.2533 118.966 +95.366 -14.5204 121.196 +95.2712 -14.7699 123.278 +95.3275 -15.0487 125.606 +95.0527 -15.2809 127.544 +95.2212 -15.5908 130.13 +94.8869 -15.8246 132.081 +94.8695 -16.1175 134.526 +94.7598 -16.4015 136.897 +94.951 -16.7459 139.771 +94.9332 -17.062 142.41 +94.6583 -17.3395 144.726 +94.4573 -17.6377 147.215 +94.6966 -18.0277 150.47 +94.8335 -18.4093 153.655 +94.5095 -18.711 156.173 +94.5036 -19.0851 159.296 +94.65 -19.5019 162.775 +94.4468 -19.8582 165.749 +94.3924 -20.2572 169.079 +94.6206 -20.7308 173.032 +94.5516 -21.1539 176.563 +94.5661 -21.61 180.37 +94.3846 -22.0359 183.925 +94.5939 -22.5695 188.379 +94.6005 -23.0732 192.583 +94.325 -23.5248 196.352 +94.4974 -24.1069 201.211 +94.5086 -24.6696 205.907 +94.2816 -25.1907 210.256 +94.1845 -25.7676 215.072 +94.4006 -26.4557 220.815 +94.2167 -27.0582 225.844 +94.251 -27.7505 231.623 +94.3741 -28.5004 237.882 +94.3941 -29.2525 244.159 +94.1007 -29.94 249.897 +94.0897 -30.7518 256.673 +93.8999 -31.5436 263.282 +93.6008 -32.3373 269.907 +93.7001 -33.3131 278.051 +93.4467 -34.2124 285.557 +93.3391 -35.2158 293.932 +93.4128 -36.3465 303.369 +93.299 -37.4686 312.735 +93.4686 -38.7762 323.649 +93.3196 -40.0295 334.111 +93.3819 -41.4578 346.031 +93.2415 -42.8891 357.978 +96.164 -45.8815 382.954 +107.478 -53.2552 444.5 +103.702 -53.4344 445.995 +99.2809 -53.2728 444.647 +95.1196 -53.2343 444.325 +92.407 -54.0304 450.97 +92.3134 -56.4947 471.539 +92.3752 -59.2904 494.873 +91.9988 -62.0667 518.046 +92.1461 -65.5037 546.733 +92.046 -69.1335 577.029 +92.0261 -73.25 611.389 +91.6177 -77.5482 647.264 +91.8904 -83.0303 693.021 +91.6701 -88.8136 741.292 +89.7135 -93.6687 781.815 +86.7377 -98.171 819.394 +314.019 -387.95 3238.06 +285.548 -388.26 3240.65 +59.9663 -90.6397 756.534 +228.543 -388.795 3245.11 +46.0062 -89.4799 746.853 +171.468 -389.21 3248.58 +33.0199 -89.966 750.91 +114.355 -389.553 3251.45 +85.7635 -389.611 3251.92 +14.4157 -98.2448 820.01 +6.73339 -91.7849 766.092 +1.4333e-13 -389.744 3253.04 +-6.79972 -92.6889 773.637 +-57.1793 -389.684 3252.54 +-20.4861 -93.0651 776.777 +-114.341 -389.506 3251.05 +-34.3895 -93.6977 782.057 +-171.468 -389.21 3248.58 +-48.0391 -93.4338 779.855 +-60.7928 -103.42 863.204 +-61.8807 -93.5334 780.686 +-285.548 -388.26 3240.65 +-77.2996 -95.4984 797.087 +-342.467 -387.609 3235.21 +-91.8644 -95.9144 800.559 +-399.281 -386.839 3228.79 +-108.441 -97.9852 817.843 +-123.989 -104.949 875.965 +-122.224 -97.2863 812.01 +-111.632 -83.8436 699.809 +-117.332 -83.4078 696.171 +-123.707 -83.4586 696.595 +-139.957 -89.8303 749.778 +-140.779 -86.1551 719.102 +-140.873 -82.3687 687.498 +-141.255 -79.0542 659.834 +-140.794 -75.5483 630.571 +-142.844 -73.6026 614.332 +-143.476 -71.0919 593.375 +-143.774 -68.5971 572.552 +-143.593 -66.0497 551.29 +-142.609 -63.3127 528.446 +-142.652 -61.1906 510.733 +-97.5756 -40.48 337.871 +-97.6445 -39.2137 327.301 +-97.506 -37.9392 316.663 +-97.3986 -36.7474 306.716 +-97.1858 -35.5813 296.983 +-97.2221 -34.5653 288.503 +-97.1821 -33.5745 280.233 +-97.1044 -32.6201 272.267 +-97.2363 -31.7804 265.258 +-97.3577 -30.9762 258.546 +-97.5119 -30.2187 252.223 +-97.3427 -29.3969 245.364 +-97.5101 -28.7102 239.632 +-97.5077 -28.0034 233.733 +-97.5265 -27.3317 228.127 +-97.0954 -26.5639 221.718 +-97.2914 -25.9948 216.968 +-97.4114 -25.4274 212.232 +-97.498 -24.8724 207.6 +-97.683 -24.3623 203.343 +-97.6253 -23.8109 198.74 +-97.405 -23.2402 193.977 +-97.4718 -22.7566 189.941 +-97.6137 -22.3064 186.183 +-98.589 -22.0572 184.102 +-97.4835 -21.3581 178.267 +-99.0466 -21.2561 177.416 +-98.2877 -20.6658 172.489 +-100.55 -20.7176 172.921 +-98.767 -19.9461 166.482 +-105.222 -20.8319 173.876 +-100.476 -19.5048 162.799 +-110.064 -20.9534 174.889 +-104.666 -19.5441 163.126 +-115.191 -21.1007 176.119 +-109.891 -19.7503 164.848 +-123.973 -21.8643 182.493 +-112.771 -19.5192 162.919 +-164.444 -27.9375 233.183 +-122.122 -20.3667 169.992 +-166.755 -27.3031 227.888 +-1948.94 -313.318 2615.14 +-450.94 -71.1869 594.169 +-1994.61 -309.223 2580.96 +-469.627 -71.5054 596.827 +-462.777 -69.209 577.66 +-465.194 -68.3376 570.387 +-464.21 -66.9894 559.133 +-467.564 -66.2862 553.264 +-470.655 -65.554 547.153 +-473.281 -64.7666 540.581 +-476.026 -64.0056 534.229 +-479.365 -63.3322 528.609 +-482.169 -62.5954 522.459 +-484.696 -61.8314 516.082 +-487.63 -61.1274 510.206 +-490.568 -60.4307 504.391 +-493.51 -59.741 498.634 +-496.46 -59.0581 492.935 +-498.776 -58.307 486.666 +-501.452 -57.6052 480.807 +-539.751 -60.9312 508.568 +-384.546 -42.6579 356.049 +-382.352 -41.6784 347.873 +-380.267 -40.7307 339.963 +-379.87 -39.9797 333.695 +-139.999 -14.4771 120.835 +-141.131 -14.339 119.682 +-141.335 -14.1078 117.752 +-142.673 -13.9908 116.776 +-140.974 -13.5802 113.348 +-142.513 -13.4851 112.555 +-143.891 -13.3733 111.622 +-145.977 -13.3248 111.217 +-154.935 -13.8886 115.923 +-155.868 -13.7202 114.517 +-156.949 -13.5648 113.22 +-158.02 -13.4083 111.914 +-159.735 -13.3052 111.053 +-379.593 -31.0347 259.034 +-381.523 -30.6129 255.514 +-381.086 -30.0055 250.444 +-380.337 -29.382 245.24 +-381.044 -28.8774 241.028 +-380.604 -28.2917 236.139 +-380.278 -27.7214 231.379 +-380.925 -27.2276 227.258 +-378.083 -26.493 221.127 +-378.193 -25.9746 216.8 +-379.301 -25.5283 213.074 +-380.547 -25.0932 209.443 +-378.77 -24.4644 204.195 +-377.548 -23.8804 199.321 +-377.778 -23.3943 195.263 +-377.965 -22.9094 191.216 +-379.094 -22.4842 187.667 +-379.651 -22.0273 183.853 +-378.905 -21.4993 179.446 +-378.927 -21.0196 175.442 +-378.635 -20.5268 171.329 +-378.573 -20.0507 167.355 +-378.379 -19.5715 163.356 +-379.708 -19.1734 160.033 +-379.253 -18.6874 155.977 +-378.106 -18.1727 151.68 +-378.773 -17.749 148.144 +-378.66 -17.2911 144.322 +-379.165 -16.864 140.757 +-112.387 -4.86607 40.6151 +-111.137 -4.68171 39.0763 +-109.775 -4.49645 37.5301 +-108.393 -4.31438 36.0104 +-108.325 -4.18698 34.9471 +-108.628 -4.07438 34.0072 +-108.827 -3.95798 33.0356 +-108.634 -3.82795 31.9504 +-108.142 -3.68881 30.789 +-108.987 -3.59549 30.0101 +-109.729 -3.49759 29.193 +-108.626 -3.34185 27.8931 +-109.449 -3.24624 27.095 +-110.364 -3.15193 26.3079 +-110.786 -3.04259 25.3953 +-111.884 -2.95065 24.6279 +-113.856 -2.8789 24.0291 +-114.259 -2.76535 23.0812 +-117.403 -2.71473 22.6588 +-128.02 -2.82254 23.5586 +-157.766 -3.30924 27.6209 +-158.102 -3.1473 26.2692 +-160.993 -3.0333 25.3177 +-161.012 -2.86255 23.8925 +-850.244 -14.2148 118.645 +-860.574 -13.4776 112.493 +-380.145 -5.55251 46.3446 +-380.637 -5.15902 43.0603 +-895.865 -11.201 93.4906 +-403.633 -4.62338 38.5895 +-404.057 -4.20523 35.0994 +-404.748 -3.78935 31.6282 +-404.213 -3.3624 28.0646 +-403.646 -2.93685 24.5127 +-403.147 -2.51336 20.978 +-403.016 -2.09321 17.4712 +-402.854 -1.67351 13.9681 +-144.65 -0.450591 3.7609 +-144.378 -0.299791 2.50224 +-145.394 -0.150939 1.25983 +119.5 2.66454e-15 -1.13687e-13 +119.495 -0.114706 1.03649 +120.382 -0.231132 2.08852 +120.059 -0.345812 3.12477 +120.027 -0.461042 4.166 +119.786 -0.575276 5.19822 +120.235 -0.693114 6.26301 +120.175 -0.808499 7.30564 +119.807 -0.921521 8.32691 +120.328 -1.04167 9.41255 +120.141 -1.15617 10.4472 +120.343 -1.27461 11.5175 +119.343 -1.37973 12.4673 +120.023 -1.50419 13.5919 +119.701 -1.61666 14.6082 +120.163 -1.74012 15.7238 +120.813 -1.86764 16.8761 +120.363 -1.97866 17.8792 +120.004 -2.09068 18.8915 +120.721 -2.22212 20.0792 +120.442 -2.33601 21.1083 +119.957 -2.44551 22.0978 +121.231 -2.59205 23.4219 +120.335 -2.69297 24.3338 +120.899 -2.82667 25.542 +120.377 -2.93547 26.5251 +121.017 -3.07317 27.7694 +120.768 -3.18922 28.818 +120.705 -3.31035 29.9125 +120.244 -3.42058 30.9085 +121.031 -3.56718 32.2332 +120.743 -3.68322 33.2818 +121.023 -3.81717 34.4921 +120.715 -3.93319 35.5405 +121.164 -4.07465 36.8187 +120.836 -4.19079 37.8682 +121.26 -4.33382 39.1606 +121.765 -4.48146 40.4947 +121.499 -4.60175 41.5816 +121.506 -4.73289 42.7666 +121.408 -4.86062 43.9209 +118.114 -4.85757 43.8932 +114.457 -4.83278 43.6693 +110.813 -4.80137 43.3854 +108.017 -4.80042 43.3769 +105.415 -4.8029 43.3992 +102.82 -4.80075 43.3799 +100.418 -4.80277 43.3981 +97.9321 -4.79608 43.3376 +96.7289 -4.84884 43.8144 +97.0656 -4.97869 44.9877 +96.6669 -5.07167 45.8279 +97.6989 -5.24142 47.3618 +97.5478 -5.34973 48.3405 +96.6742 -5.4182 48.9591 +96.4181 -5.52094 49.8875 +96.6828 -5.65459 51.0952 +97.0214 -5.79442 52.3586 +96.4706 -5.882 53.15 +96.7836 -6.02312 54.4252 +97.0814 -6.16529 55.7099 +96.5886 -6.25825 56.5499 +96.6028 -6.38471 57.6926 +96.0925 -6.4772 58.5283 +96.4231 -6.62747 59.8862 +96.484 -6.76115 61.0941 +96.6148 -6.90143 62.3617 +96.147 -6.99998 63.2521 +96.2513 -7.14121 64.5284 +96.3404 -7.28317 65.8111 +95.7589 -7.37537 66.6442 +95.74 -7.51172 67.8763 +95.9494 -7.66798 69.2883 +95.9805 -7.81213 70.5908 +96.0759 -7.96354 71.959 +96.0751 -8.10903 73.2737 +96.0585 -8.25512 74.5937 +96.1043 -8.40864 75.9809 +96.133 -8.56287 77.3745 +96.0673 -8.71079 78.7112 +96.062 -8.86631 80.1165 +95.8872 -9.00819 81.3985 +95.8481 -9.16483 82.8139 +95.8663 -9.32938 84.3007 +96.3859 -9.54616 86.2596 +96.2884 -9.7052 87.6967 +96.173 -9.86477 89.1386 +96.0396 -10.0249 90.5851 +95.8161 -10.1778 91.967 +95.7182 -10.3465 93.4912 +96.0958 -10.5702 95.5127 +95.9545 -10.7405 97.0515 +95.7934 -10.9113 98.5951 +96.0943 -11.1384 100.648 +95.889 -11.3107 102.204 +96.204 -11.5483 104.351 +95.6857 -11.6893 105.625 +95.351 -11.8548 107.121 +95.6534 -12.1037 109.369 +95.7286 -12.3288 111.404 +95.6468 -12.5381 113.295 +95.2845 -12.7144 114.888 +95.342 -12.9507 117.024 +95.4937 -13.2053 119.324 +94.8119 -13.3485 120.618 +95.1494 -13.6396 123.249 +95.4479 -13.9326 125.895 +95.1716 -14.1474 127.837 +95.2212 -14.4162 130.266 +94.9449 -14.6414 132.3 +94.8695 -14.9032 134.666 +94.6465 -15.1477 136.875 +95.0069 -15.4933 139.998 +94.9884 -15.7858 142.641 +94.8217 -16.0609 145.127 +94.9408 -16.3924 148.123 +94.6436 -16.6601 150.542 +94.8335 -17.0224 153.815 +94.5095 -17.3013 156.336 +94.5544 -17.6568 159.548 +94.55 -18.0135 162.771 +94.4961 -18.3717 166.008 +94.4409 -18.7407 169.342 +94.716 -19.1883 173.386 +94.5516 -19.5602 176.747 +94.7046 -20.0112 180.822 +94.7478 -20.4541 184.825 +94.2816 -20.8003 187.953 +94.2498 -21.2558 192.068 +94.368 -21.7624 196.646 +94.4552 -22.2808 201.331 +94.2183 -22.741 205.488 +94.2409 -23.2827 210.384 +94.2643 -23.8464 215.478 +94.3616 -24.4524 220.953 +94.5611 -25.1112 226.906 +94.5507 -25.7414 232.601 +94.1542 -26.2917 237.574 +94.2866 -27.0178 244.135 +94.1708 -27.7049 250.343 +93.9871 -28.4041 256.661 +93.8665 -29.1568 263.463 +93.7962 -29.9634 270.751 +93.827 -30.845 278.717 +93.4467 -31.6348 285.854 +93.3992 -32.5835 294.427 +93.4128 -33.6081 303.685 +93.2706 -34.6352 312.965 +93.193 -35.7491 323.031 +93.3731 -37.0349 334.649 +93.356 -38.3237 346.295 +93.2666 -39.6685 358.447 +96.4301 -42.5422 384.413 +107.525 -49.2645 445.156 +103.68 -49.3979 446.362 +99.3025 -49.2701 445.207 +95.1404 -49.2343 444.884 +92.4868 -50.0029 451.829 +92.2561 -52.2061 471.737 +92.357 -54.8127 495.29 +92.0162 -57.4016 518.683 +91.9645 -60.4493 546.223 +92.0148 -63.9032 577.433 +91.8044 -67.5683 610.551 +91.4506 -71.5751 646.757 +91.4467 -76.4041 690.391 +91.7067 -82.1552 742.359 +96.1435 -92.8194 838.721 +90.2185 -94.4177 853.163 +84.7947 -96.8657 875.283 +285.548 -359.009 3244.03 +257.056 -359.27 3246.38 +228.543 -359.503 3248.49 +200.038 -359.753 3250.74 +171.468 -359.887 3251.96 +142.91 -360.038 3253.32 +114.341 -360.161 3254.43 +85.774 -360.302 3255.7 +57.1793 -360.326 3255.92 +28.5907 -360.368 3256.3 +1.49658e-13 -360.381 3256.42 +-7.70553 -97.123 877.608 +-57.1793 -360.326 3255.92 +-85.7635 -360.258 3255.31 +-114.341 -360.161 3254.43 +-142.91 -360.038 3253.32 +-171.489 -359.931 3252.35 +-200.013 -359.709 3250.35 +-228.543 -359.503 3248.49 +-257.056 -359.27 3246.38 +-285.548 -359.009 3244.03 +-314.019 -358.722 3241.43 +-342.467 -358.406 3238.58 +-370.888 -358.064 3235.49 +-122.162 -109.438 988.891 +-427.643 -357.298 3228.56 +-138.783 -108.621 981.503 +-138.911 -102.239 923.837 +-111.616 -77.5161 700.44 +-117.299 -77.1022 696.7 +-123.638 -77.1275 696.928 +-141.123 -83.7548 756.813 +-141.141 -79.8694 721.704 +-140.893 -76.1738 688.311 +-681.264 -352.549 3185.65 +-141.919 -70.4149 636.273 +-142.754 -68.0145 614.583 +-143.546 -65.7679 594.282 +-143.919 -63.493 573.726 +-143.493 -61.0309 551.478 +-142.532 -58.5109 528.707 +-142.732 -56.6123 511.552 +-97.8237 -37.5254 339.082 +-97.6729 -36.2699 327.737 +-97.506 -35.0809 316.993 +-97.4587 -33.9998 307.224 +-97.1858 -32.9007 297.292 +-97.3173 -31.9925 289.086 +-97.1495 -31.0347 280.431 +-97.1378 -30.173 272.644 +-97.5099 -29.4687 266.28 +-97.3577 -28.6425 258.815 +-97.4761 -27.9318 252.393 +-97.3794 -27.1924 245.712 +-97.4726 -26.5369 239.789 +-97.6225 -25.9241 234.252 +-97.5265 -25.2725 228.364 +-97.1353 -24.5727 222.04 +-97.6168 -24.1168 217.921 +-97.4529 -23.5217 212.543 +-97.4558 -22.9887 207.727 +-97.3386 -22.4475 202.837 +-98.1513 -22.1356 200.019 +-98.0297 -21.6271 195.424 +-99.0153 -21.3755 193.15 +-98.6295 -20.8406 188.316 +-100.279 -20.7451 187.454 +-99.9648 -20.2516 182.995 +-104.283 -20.6937 186.989 +-102.917 -20.0088 180.8 +-109.7 -20.9 188.853 +-107.852 -20.1399 181.985 +-114.544 -20.969 189.477 +-112.598 -20.2112 182.629 +-124.902 -21.9866 198.672 +-120.677 -20.8362 188.277 +-162.902 -27.5921 249.324 +-162.821 -27.0586 244.503 +-166.919 -27.2206 245.966 +-166.977 -26.7238 241.478 +-441.941 -69.4249 627.327 +-1902.67 -293.41 2651.26 +-447.128 -67.6938 611.685 +-448.794 -66.7138 602.83 +-451.421 -65.8939 595.421 +-453.649 -65.0306 587.62 +-471.043 -66.3175 599.249 +-462.777 -63.9948 578.261 +-465.886 -63.2832 571.83 +-465.037 -62.0527 560.712 +-467.949 -61.3427 554.296 +-470.98 -60.657 548.1 +-473.937 -59.9702 541.894 +-476.424 -59.2329 535.231 +-479.164 -58.5363 528.937 +-482.507 -57.92 523.368 +-485.378 -57.2535 517.346 +-487.975 -56.5621 511.098 +-490.568 -55.8779 504.915 +-493.65 -55.2557 499.294 +-495.823 -54.5387 492.814 +-498.847 -53.9219 487.241 +-501.811 -53.3035 481.653 +-382.708 -39.948 360.972 +-2396.28 -245.794 2221.01 +-383.163 -38.6201 348.974 +-381.828 -37.8166 341.713 +-380.769 -37.0551 334.832 +-139.697 -13.3576 120.7 +-141.968 -13.3373 120.516 +-141.412 -13.052 117.939 +-142.751 -12.9437 116.96 +-141.596 -12.6124 113.966 +-141.809 -12.4076 112.116 +-143.812 -12.359 111.676 +-145.977 -12.3209 111.332 +-154.935 -12.8423 116.044 +-155.225 -12.6342 114.163 +-156.464 -12.5042 112.988 +-157.694 -12.3726 111.799 +-159.817 -12.3091 111.226 +-381.241 -28.8212 260.43 +-380.694 -28.245 255.223 +-382.003 -27.8117 251.308 +-381.847 -27.2762 246.469 +-379.526 -26.5954 240.318 +-379.586 -26.0902 235.753 +-379.595 -25.5869 231.204 +-379.725 -25.097 226.778 +-380.323 -24.6421 222.668 +-378.453 -24.0342 217.174 +-379.649 -23.6266 213.492 +-379.06 -23.112 208.841 +-379.913 -22.6896 205.024 +-380.639 -22.262 201.161 +-379.197 -21.713 196.2 +-379.658 -21.2782 192.271 +-378.378 -20.751 187.507 +-378.213 -20.2907 183.348 +-379.808 -19.9268 180.06 +-378.927 -19.436 175.625 +-379.272 -19.0122 171.795 +-378.847 -18.5535 167.65 +-380.488 -18.1979 164.437 +-379.156 -17.703 159.965 +-378.513 -17.2458 155.834 +-378.755 -16.8324 152.098 +-379.889 -16.4601 148.734 +-379.5 -16.0239 144.793 +-381.226 -15.6782 141.669 +-112.951 -4.52203 40.8613 +-111.232 -4.33266 39.1502 +-109.68 -4.15411 37.5367 +-109.342 -4.02424 36.3632 +-109.181 -3.90214 35.2599 +-108.628 -3.76742 34.0426 +-109.114 -3.66943 33.1572 +-108.826 -3.54581 32.0401 +-108.526 -3.42303 30.9307 +-109.661 -3.34517 30.2272 +-109.826 -3.23694 29.2491 +-108.917 -3.09835 27.9969 +-110.226 -3.02295 27.3155 +-110.364 -2.91446 26.3352 +-110.786 -2.81336 25.4217 +-111.884 -2.72835 24.6535 +-112.976 -2.64143 23.8681 +-114.553 -2.56358 23.1647 +-117.403 -2.5102 22.6823 +-128.708 -2.62392 23.7099 +-157.766 -3.05992 27.6496 +-160.271 -2.95012 26.6575 +-159.907 -2.78584 25.173 +-160.418 -2.63713 23.8292 +-850.244 -13.1439 118.769 +-861.367 -12.4737 112.713 +-380.145 -5.13419 46.3928 +-381.134 -4.77657 43.1613 +-3258.55 -37.6724 340.41 +-404.33 -4.28243 38.6963 +-403.658 -3.88457 35.1012 +-403.353 -3.49179 31.552 +-404.213 -3.10908 28.0938 +-403.346 -2.71357 24.52 +-404.245 -2.33034 21.057 +-402.317 -1.93214 17.4589 +-403.654 -1.5505 14.0104 +-144.351 -0.41578 3.75701 +-145.078 -0.278548 2.51697 +-146.194 -0.140335 1.26808 +119.5 2.66454e-15 -1.13687e-13 +119.595 -0.105439 1.03835 +119.482 -0.210694 2.07489 +120.059 -0.317608 3.12777 +120.027 -0.423439 4.16999 +120.585 -0.531883 5.23792 +120.235 -0.636584 6.26901 +120.175 -0.742558 7.31264 +119.708 -0.845658 8.32795 +120.228 -0.955916 9.41376 +120.241 -1.06275 10.4659 +120.144 -1.16872 11.5094 +120.138 -1.27564 12.5624 +120.023 -1.38151 13.6049 +120.594 -1.49589 14.7313 +120.262 -1.59951 15.7518 +120.813 -1.71531 16.8922 +120.363 -1.81728 17.8964 +120.004 -1.92016 18.9096 +120.623 -2.03922 20.082 +120.344 -2.14373 21.1112 +120.842 -2.26263 22.2821 +120.544 -2.36715 23.3114 +120.335 -2.47334 24.3571 +120.117 -2.57933 25.401 +120.573 -2.70043 26.5935 +120.14 -2.80208 27.5946 +119.893 -2.90788 28.6365 +120.511 -3.03547 29.893 +121.115 -3.16436 31.1623 +121.031 -3.27624 32.2641 +121.321 -3.39902 33.4732 +121.215 -3.51142 34.5801 +121.578 -3.63823 35.8289 +121.068 -3.73937 36.8249 +121.694 -3.87634 38.1738 +121.165 -3.97723 39.1674 +121.86 -4.11915 40.565 +121.405 -4.22315 41.5891 +121.601 -4.35025 42.8408 +121.408 -4.4642 43.9629 +118.114 -4.46139 43.9353 +114.457 -4.43863 43.7111 +110.72 -4.40607 43.3905 +108.017 -4.4089 43.4184 +105.415 -4.41118 43.4408 +102.176 -4.38158 43.1493 +100.418 -4.41106 43.4396 +97.9321 -4.40491 43.3791 +96.7289 -4.45338 43.8564 +97.0656 -4.57264 45.0308 +97.389 -4.69283 46.2144 +97.609 -4.80951 47.3635 +97.8163 -4.92693 48.5199 +96.6742 -4.97629 49.006 +96.2407 -5.06132 49.8434 +96.7711 -5.19815 51.1909 +96.2305 -5.27845 51.9816 +96.4706 -5.40226 53.2009 +96.8706 -5.53685 54.5263 +97.0814 -5.66245 55.7632 +96.4163 -5.73757 56.5029 +96.6028 -5.86398 57.7478 +96.8599 -5.99642 59.0521 +95.4902 -6.02805 59.3636 +96.5683 -6.21514 61.2061 +95.9439 -6.29454 61.9879 +96.0636 -6.42349 63.2578 +96.1684 -6.55313 64.5345 +96.2579 -6.68343 65.8177 +95.7589 -6.77384 66.7081 +96.5541 -6.95774 68.519 +96.6775 -7.09603 69.8809 +95.9001 -7.16898 70.5993 +95.996 -7.30797 71.9681 +96.0751 -7.44767 73.3438 +96.1373 -7.58806 74.7264 +96.1043 -7.72284 76.0537 +96.0552 -7.85813 77.386 +96.0673 -8.00035 78.7865 +96.062 -8.14318 80.1932 +95.9632 -8.28004 81.541 +95.9236 -8.42398 82.9585 +95.8663 -8.56848 84.3815 +96.3859 -8.76758 86.3422 +96.2884 -8.91365 87.7807 +96.0999 -9.05332 89.1561 +96.0396 -9.20723 90.6718 +96.4635 -9.41086 92.6771 +96.3601 -9.56634 94.2083 +96.0958 -9.70808 95.6042 +95.9545 -9.86449 97.1444 +95.7934 -10.0214 98.6895 +95.9566 -10.2153 100.6 +95.889 -10.3882 102.302 +95.4609 -10.5245 103.644 +95.7526 -10.7434 105.8 +95.2848 -10.8804 107.149 +95.5878 -11.1088 109.398 +95.6637 -11.3156 111.435 +95.6468 -11.5155 113.404 +95.3481 -11.6853 115.075 +95.342 -11.8945 117.136 +95.4937 -12.1283 119.438 +95.366 -12.3314 121.439 +95.332 -12.5513 123.603 +94.846 -12.7155 125.221 +95.1122 -12.9855 127.879 +95.28 -13.2486 130.471 +94.9449 -13.4472 132.427 +94.8695 -13.6877 134.795 +94.6465 -13.9123 137.006 +94.6154 -14.1711 139.555 +94.9884 -14.4983 142.778 +94.5493 -14.7085 144.848 +94.9408 -15.0555 148.265 +94.5906 -15.2929 150.603 +94.8335 -15.634 153.962 +94.458 -15.8815 156.4 +94.6052 -16.2254 159.786 +94.6 -16.5532 163.014 +94.4468 -16.8645 166.08 +94.4409 -17.2122 169.504 +94.716 -17.6233 173.553 +94.5516 -17.9649 176.916 +94.6585 -18.3701 180.907 +94.3392 -18.7049 184.204 +94.2816 -19.1038 188.133 +94.206 -19.5131 192.163 +94.368 -19.9875 196.835 +94.4552 -20.4636 201.524 +94.1768 -20.877 205.595 +94.2816 -21.3931 210.677 +94.2244 -21.8922 215.592 +94.4006 -22.4674 221.256 +94.5993 -23.0724 227.215 +94.2885 -23.5764 232.178 +94.484 -24.2321 238.635 +94.2866 -24.8143 244.368 +94.1708 -25.4453 250.582 +94.0555 -26.1064 257.093 +93.733 -26.7407 263.34 +93.7311 -27.5005 270.822 +93.5414 -28.2432 278.136 +93.4158 -29.0451 286.033 +93.3391 -29.9068 294.519 +93.3543 -30.8478 303.786 +93.3558 -31.8395 313.552 +93.193 -32.8334 323.34 +93.3998 -34.0241 335.066 +93.0713 -35.0907 345.57 +93.2415 -36.4234 358.693 +96.3817 -39.0528 384.588 +107.548 -45.2563 445.679 +103.477 -45.2804 445.917 +99.3674 -45.2811 445.924 +95.1404 -45.2188 445.31 +92.4868 -45.9247 452.261 +92.2752 -47.9581 472.286 +92.3387 -50.3322 495.666 +91.912 -52.6602 518.592 +91.9645 -55.5191 546.746 +91.8896 -58.6115 577.2 +91.7453 -62.0175 610.741 +91.4228 -65.7175 647.179 +91.5119 -70.2227 691.546 +91.597 -75.3645 742.181 +96.4944 -85.5602 842.588 +90.5635 -87.0486 857.246 +89.0215 -93.4001 919.794 +88.62 -102.331 1007.75 +257.087 -330.008 3249.89 +228.571 -330.223 3252 +200.038 -330.411 3253.86 +171.489 -330.575 3255.47 +142.91 -330.673 3256.43 +114.355 -330.827 3257.95 +85.774 -330.916 3258.82 +57.1863 -330.978 3259.44 +28.5942 -331.017 3259.82 +1.45439e-13 -331.029 3259.94 +-28.5907 -330.976 3259.42 +-57.1863 -330.978 3259.44 +-85.7635 -330.875 3258.42 +-114.341 -330.786 3257.55 +-142.928 -330.714 3256.83 +-171.489 -330.575 3255.47 +-200.013 -330.371 3253.46 +-228.571 -330.223 3252 +-257.087 -330.008 3249.89 +-285.583 -329.769 3247.53 +-314.058 -329.504 3244.92 +-109.19 -104.953 1033.56 +-117.052 -103.788 1022.09 +-126.878 -104.393 1028.05 +-136.478 -104.728 1031.35 +-140.885 -101.273 997.321 +-141.675 -95.7689 943.122 +-111.757 -71.2838 701.995 +-117.184 -70.7441 696.68 +-123.742 -70.8967 698.184 +-144.458 -78.7415 775.438 +-625.224 -324.947 3200.04 +-653.269 -324.383 3194.49 +-681.264 -323.795 3188.7 +-140.989 -64.2478 632.705 +-142.934 -62.5461 615.948 +-143.452 -60.3646 594.464 +-143.847 -58.2852 573.986 +-143.718 -56.1413 552.874 +-142.454 -53.7096 528.926 +-142.812 -52.0243 512.329 +-97.7686 -34.4455 339.216 +-97.7013 -33.3215 328.147 +-97.2721 -32.1424 316.535 +-97.1881 -31.1401 306.664 +-97.1549 -30.2077 297.482 +-97.0635 -29.3066 288.608 +-97.117 -28.4939 280.605 +-97.1044 -27.7025 272.811 +-97.2363 -26.9893 265.788 +-97.4277 -26.3253 259.249 +-97.4761 -25.6537 252.635 +-97.3794 -24.9746 245.947 +-97.5476 -24.3914 240.204 +-97.5843 -23.8004 234.384 +-97.5656 -23.2206 228.674 +-97.4941 -22.6519 223.074 +-97.9015 -22.2144 218.765 +-97.6603 -21.6493 213.2 +-98.8081 -21.4067 210.811 +-98.6731 -20.8994 205.815 +-99.9048 -20.6935 203.787 +-99.3236 -20.1254 198.193 +-103.964 -20.6132 202.996 +-100.8 -19.5619 192.643 +-108.166 -20.5516 202.39 +-106.12 -19.7452 194.449 +-112.815 -20.561 202.483 +-110.992 -19.8189 195.174 +-121.85 -21.3213 209.97 +-117.038 -20.0729 197.675 +-163.628 -27.5113 270.929 +-128.535 -21.1899 208.676 +-163.427 -26.4219 260.2 +-163.876 -25.9871 255.918 +-167.967 -26.1297 257.323 +-1808.42 -276.024 2718.25 +-437.345 -65.5036 645.073 +-439.531 -64.6077 636.25 +-442.572 -63.8537 628.824 +-444.18 -62.91 619.531 +-447.305 -62.1973 612.512 +-449.567 -61.3783 604.447 +-451.301 -60.5036 595.833 +-453.284 -59.6786 587.709 +-471.597 -60.9803 600.528 +-462.404 -58.728 578.347 +-466.641 -58.2161 573.306 +-464.401 -56.9138 560.481 +-467.949 -56.3396 554.827 +-470.785 -55.6868 548.398 +-473.74 -55.0562 542.188 +-476.159 -54.3717 535.447 +-479.164 -53.7621 529.443 +-481.898 -53.1291 523.209 +-485.174 -52.5618 517.623 +-487.768 -51.9269 511.37 +-490.568 -51.3205 505.399 +-493.65 -50.7491 499.772 +-496.106 -50.1191 493.568 +-499.133 -49.5524 487.987 +-501.164 -48.8929 481.492 +-382.708 -36.6899 361.318 +-380.889 -35.8826 353.368 +-380.583 -35.2315 346.956 +-379.004 -34.4755 339.511 +-382.791 -34.2136 336.932 +-137.81 -12.1024 119.183 +-141.283 -12.1904 120.05 +-141.335 -11.981 117.987 +-142.751 -11.888 117.072 +-140.974 -11.5329 113.575 +-141.652 -11.383 112.099 +-143.97 -11.3634 111.906 +-145.739 -11.2975 111.257 +-155.335 -11.8253 116.454 +-155.868 -11.6518 114.746 +-156.949 -11.5199 113.447 +-158.183 -11.3988 112.254 +-160.554 -11.3573 111.846 +-379.757 -26.3675 259.665 +-378.787 -25.8114 254.188 +-380.919 -25.4709 250.835 +-379.163 -24.8755 244.971 +-381.719 -24.5675 241.938 +-380.689 -24.0319 236.664 +-380.363 -23.5476 231.894 +-379.382 -23.0293 226.79 +-380.323 -22.6323 222.881 +-380.099 -22.1699 218.327 +-378.344 -21.6251 212.962 +-379.41 -21.2466 209.234 +-379.913 -20.839 205.221 +-379.667 -20.3942 200.84 +-378.31 -19.8955 195.928 +-379.391 -19.5291 192.32 +-378.736 -19.0767 187.865 +-379.92 -18.7198 184.351 +-378.996 -18.2625 179.847 +-380.559 -17.9276 176.549 +-378.817 -17.4407 171.754 +-380.309 -17.106 168.458 +-380.488 -16.7137 164.595 +-378.051 -16.2118 159.652 +-379.068 -15.8624 156.212 +-378.106 -15.4331 151.983 +-379.703 -15.1102 148.804 +-378.38 -14.6736 144.504 +-379.914 -14.35 141.317 +-113.515 -4.17395 41.1046 +-111.137 -3.97592 39.1545 +-109.775 -3.8186 37.6051 +-108.583 -3.67038 36.1455 +-108.42 -3.5589 35.0477 +-108.628 -3.46015 34.0752 +-109.593 -3.38492 33.3344 +-108.634 -3.25087 32.0143 +-108.815 -3.15219 31.0425 +-109.276 -3.06154 30.1498 +-110.888 -3.0017 29.5604 +-108.82 -2.84312 27.9987 +-110.226 -2.7764 27.3417 +-110.17 -2.67205 26.3141 +-110.786 -2.58391 25.446 +-111.884 -2.50583 24.6771 +-113.074 -2.4281 23.9116 +-114.553 -2.3545 23.1869 +-117.697 -2.31125 22.761 +-127.823 -2.39334 23.5694 +-156.88 -2.79457 27.5207 +-159.68 -2.69951 26.5845 +-161.882 -2.59024 25.5084 +-160.122 -2.41756 23.8079 +-850.244 -12.0719 118.883 +-862.16 -11.4669 112.925 +-380.443 -4.71913 46.4735 +-381.432 -4.39042 43.2364 +-896.263 -9.51667 93.7192 +-403.832 -3.92832 38.6857 +-403.459 -3.56599 35.1175 +-402.755 -3.20224 31.5353 +-402.717 -2.84494 28.0166 +-402.947 -2.48979 24.5192 +-402.548 -2.13128 20.9887 +-403.915 -1.78161 17.5451 +-403.354 -1.42298 14.0133 +-144.351 -0.38187 3.76061 +-145.278 -0.256182 2.52286 +-145.794 -0.128537 1.26582 +119.5 2.66454e-15 -1.13687e-13 +119.595 -0.0960671 1.03926 +119.482 -0.191967 2.07671 +120.059 -0.289378 3.1305 +120.027 -0.385803 4.17364 +119.786 -0.481395 5.20776 +120.135 -0.579521 6.26929 +120.076 -0.675996 7.31296 +120.605 -0.776272 8.39776 +120.228 -0.870951 9.422 +120.34 -0.969093 10.4837 +120.343 -1.06661 11.5386 +120.238 -1.16323 12.5839 +120.023 -1.25871 13.6168 +120.594 -1.36293 14.7442 +120.262 -1.45734 15.7656 +120.912 -1.56413 16.9209 +120.165 -1.65303 17.8826 +120.004 -1.74949 18.9261 +119.834 -1.84582 19.9682 +120.442 -1.95479 21.147 +119.957 -2.04642 22.1383 +120.544 -2.15675 23.3318 +120.433 -2.25533 24.3983 +120.801 -2.36346 25.5681 +120.573 -2.46041 26.6168 +120.335 -2.55716 27.6636 +120.768 -2.66876 28.8708 +120.511 -2.76567 29.9191 +121.115 -2.8831 31.1895 +121.127 -2.98742 32.3181 +121.514 -3.10183 33.5557 +121.023 -3.19423 34.5554 +120.715 -3.29132 35.6057 +121.164 -3.40969 36.8862 +120.741 -3.50412 37.9078 +122.116 -3.65217 39.5094 +121.765 -3.75011 40.5689 +121.594 -3.85377 41.6904 +121.601 -3.96358 42.8783 +121.408 -4.0674 44.0014 +118.021 -4.06161 43.9388 +114.457 -4.04411 43.7494 +110.72 -4.01444 43.4285 +108.11 -4.02047 43.4937 +105.415 -4.0191 43.4788 +102.912 -4.02089 43.4983 +99.5927 -3.98595 43.1203 +97.9321 -4.01339 43.4171 +96.6379 -4.05373 43.8534 +97.1562 -4.1701 45.1124 +97.389 -4.27571 46.2549 +97.6989 -4.38606 47.4486 +97.5478 -4.47669 48.4291 +96.7633 -4.53816 49.0941 +96.4181 -4.61996 49.979 +96.6828 -4.7318 51.1889 +96.2305 -4.80928 52.0271 +96.558 -4.92656 53.2958 +96.7836 -5.04019 54.525 +97.0814 -5.15916 55.8121 +96.5886 -5.23694 56.6536 +96.7742 -5.35225 57.901 +96.0925 -5.42016 58.6356 +96.3383 -5.54103 59.9432 +96.484 -5.65778 61.2062 +96.6148 -5.77516 62.476 +96.0636 -5.85254 63.3132 +96.2513 -5.97581 64.6467 +96.3404 -6.09461 65.9318 +96.4961 -6.21927 67.2805 +95.9028 -6.29655 68.1164 +95.9494 -6.41662 69.4154 +95.9805 -6.53724 70.7203 +96.0759 -6.66395 72.091 +96.0751 -6.78569 73.408 +96.2161 -6.91928 74.8532 +96.1825 -7.04213 76.1822 +96.0552 -7.15968 77.4538 +96.0673 -7.28925 78.8555 +96.062 -7.41939 80.2634 +95.9632 -7.54409 81.6124 +95.9236 -7.67523 83.0311 +96.5404 -7.86177 85.0491 +96.3859 -7.98829 86.4178 +96.3621 -8.12759 87.9247 +96.173 -8.25491 89.3021 +96.0396 -8.38886 90.7512 +95.888 -8.52324 92.2049 +96.3601 -8.71606 94.2908 +96.1665 -8.8517 95.7583 +95.9545 -8.9877 97.2295 +95.7934 -9.13065 98.7759 +96.0943 -9.32072 100.832 +95.6844 -9.44471 102.173 +95.6636 -9.60938 103.955 +95.7526 -9.7885 105.893 +95.4173 -9.92712 107.392 +95.5878 -10.1214 109.494 +95.2091 -10.2609 111.003 +95.6468 -10.492 113.503 +95.3481 -10.6466 115.176 +95.342 -10.8373 117.238 +95.4937 -11.0503 119.542 +95.3044 -11.2281 121.466 +95.3929 -11.4429 123.79 +95.147 -11.622 125.728 +95.3501 -11.8608 128.311 +95.0449 -12.0412 130.263 +94.8869 -12.2445 132.461 +94.9843 -12.4862 135.076 +95.2695 -12.7592 138.03 +95.1187 -12.9802 140.42 +94.9884 -13.2096 142.903 +94.8761 -13.4475 145.476 +94.4573 -13.6474 147.639 +94.6966 -13.9491 150.903 +94.3632 -14.1738 153.333 +94.5095 -14.4779 156.622 +94.6559 -14.7912 160.012 +94.6 -15.0819 163.156 +94.4961 -15.3735 166.312 +94.3924 -15.6743 169.565 +94.2389 -15.976 172.829 +94.5516 -16.3681 177.071 +94.6585 -16.7373 181.065 +94.2938 -17.0341 184.276 +94.6832 -17.4799 189.099 +94.206 -17.7787 192.331 +94.368 -18.2109 197.007 +94.4552 -18.6448 201.7 +94.1354 -19.013 205.684 +94.2409 -19.4831 210.769 +94.2244 -19.9464 215.781 +94.4006 -20.4704 221.45 +94.2167 -20.9366 226.493 +94.251 -21.4723 232.289 +94.4474 -22.0697 238.751 +94.2866 -22.6087 244.582 +94.2058 -23.1923 250.895 +93.9529 -23.7601 257.038 +93.7997 -24.3812 263.758 +93.6334 -25.0301 270.777 +93.5414 -25.7328 278.379 +93.4467 -26.4722 286.378 +93.3391 -27.2486 294.777 +93.5005 -28.1499 304.528 +93.4694 -29.0448 314.208 +93.2757 -29.9416 323.91 +93.3464 -30.9822 335.167 +93.3043 -32.0518 346.738 +93.0412 -33.1147 358.237 +96.164 -35.5013 384.056 +107.618 -41.2606 446.36 +103.455 -41.2468 446.211 +99.3674 -41.2564 446.314 +95.2028 -41.2267 445.993 +92.407 -41.8067 452.267 +92.2752 -43.6954 472.7 +92.2658 -45.8223 495.709 +91.9641 -48.0068 519.34 +91.7665 -50.4755 546.047 +91.8114 -53.3564 577.213 +91.7305 -56.496 611.177 +91.3393 -59.8216 647.154 +91.2378 -63.7894 690.078 +91.3167 -68.4557 740.558 +96.4831 -77.9461 843.226 +90.8039 -79.522 860.273 +90.7276 -86.7292 938.242 +89.7356 -94.4093 1021.33 +257.056 -300.639 3252.33 +87.4328 -115.089 1245.04 +200.038 -301.043 3256.71 +171.489 -301.193 3258.32 +142.928 -301.319 3259.68 +114.355 -301.422 3260.8 +85.774 -301.503 3261.67 +57.1863 -301.56 3262.29 +28.5942 -301.595 3262.67 +1.46216e-13 -301.606 3262.79 +-28.5907 -301.558 3262.27 +-57.1863 -301.56 3262.29 +-85.774 -301.503 3261.67 +-114.355 -301.422 3260.8 +-142.928 -301.319 3259.68 +-171.489 -301.193 3258.32 +-200.038 -301.043 3256.71 +-228.571 -300.871 3254.84 +-257.087 -300.676 3252.73 +-119.586 -125.815 1361.08 +-314.058 -300.217 3247.76 +-109.859 -96.2097 1040.8 +-118.229 -95.5148 1033.28 +-127.938 -95.9088 1037.55 +-140.981 -98.568 1066.31 +-142.764 -93.5018 1011.51 +-142.976 -88.0577 952.614 +-111.632 -64.875 701.822 +-117.118 -64.4198 696.897 +-123.846 -64.6496 699.383 +-146.444 -72.7293 786.79 +-625.224 -296.065 3202.85 +-653.269 -295.551 3197.29 +-681.264 -295.015 3191.49 +-709.121 -294.421 3185.06 +-142.799 -56.933 615.904 +-143.756 -55.1155 596.243 +-143.968 -53.1492 574.972 +-143.192 -50.9642 551.333 +-142.273 -48.8734 528.715 +-144.095 -47.826 517.384 +-97.6859 -31.3573 339.225 +-97.6729 -30.3509 328.338 +-97.506 -29.3559 317.574 +-97.4587 -28.4513 307.788 +-97.464 -27.6103 298.69 +-97.3173 -26.7716 289.616 +-97.1821 -25.9787 281.039 +-97.4382 -25.327 273.989 +-97.4415 -24.6423 266.581 +-97.4277 -23.9854 259.476 +-98.1928 -23.5454 254.715 +-97.3794 -22.7548 246.163 +-99.2333 -22.6074 244.568 +-98.12 -21.804 235.877 +-100.105 -21.7074 234.832 +-98.7303 -20.9002 226.1 +-104.897 -21.6862 234.603 +-99.8581 -20.1689 218.189 +-111.571 -22.0233 238.249 +-102.16 -19.7146 213.274 +-122.919 -23.1975 250.952 +-113.959 -21.0385 227.596 +-138.876 -25.0879 271.402 +-114.421 -20.2317 218.868 +-161.874 -28.0224 303.148 +-123.059 -20.8619 225.685 +-168.229 -27.9352 302.205 +-163.534 -26.6053 287.818 +-420.15 -66.9835 724.632 +-164.747 -25.7438 278.498 +-423.361 -64.8546 701.601 +-1711.97 -257.146 2781.82 +-438.773 -64.6329 699.203 +-429.947 -62.1199 672.017 +-431.844 -61.2087 662.159 +-434.816 -60.468 654.146 +-436.953 -59.6281 645.06 +-439.645 -58.8804 636.971 +-442.055 -58.1102 628.64 +-444.877 -57.4083 621.046 +-446.834 -56.6094 612.404 +-449.567 -55.9228 604.976 +-451.301 -55.1258 596.355 +-453.832 -54.4399 588.934 +-469.442 -55.3063 598.307 +-461.595 -53.4144 577.84 +-466.263 -52.9987 573.343 +-464.782 -51.8977 561.432 +-467.949 -51.332 555.313 +-470.98 -50.7582 549.105 +-473.543 -50.1417 542.436 +-476.424 -49.5665 536.213 +-478.897 -48.9562 529.611 +-482.034 -48.4203 523.814 +-485.174 -47.8899 518.076 +-487.975 -47.3315 512.035 +-490.915 -46.792 506.199 +-493.37 -46.2121 499.926 +-496.035 -45.6578 493.929 +-498.491 -45.0899 487.785 +-501.596 -44.5855 482.329 +-382.708 -33.4288 361.634 +-382.791 -32.8564 355.443 +-381.099 -32.1435 347.731 +-380.342 -31.522 341.007 +-381.144 -31.0384 335.775 +-2472.81 -197.859 2140.45 +-141.816 -11.1487 120.608 +-141.948 -10.9635 118.603 +-142.056 -10.7787 116.605 +-141.751 -10.5657 114.301 +-141.652 -10.3712 112.197 +-144.364 -10.3817 112.31 +-145.739 -10.2934 111.354 +-154.217 -10.6966 115.717 +-155.868 -10.6162 114.846 +-156.221 -10.4473 113.019 +-158.183 -10.3856 112.352 +-159.817 -10.3004 111.43 +-381.982 -24.1646 261.415 +-380.197 -23.6047 255.357 +-382.003 -23.273 251.769 +-379.75 -22.6996 245.566 +-379.864 -22.275 240.973 +-379.671 -21.8374 236.238 +-379.681 -21.4162 231.681 +-379.811 -21.006 227.244 +-378.255 -20.5086 221.863 +-380.532 -20.2224 218.767 +-379.301 -19.7528 213.687 +-380.197 -19.3983 209.852 +-379.561 -18.9692 205.21 +-379.314 -18.5642 200.829 +-379.729 -18.1951 196.836 +-379.658 -17.8058 192.624 +-377.215 -17.3112 187.274 +-378.033 -16.9713 183.596 +-379.627 -16.667 180.304 +-379.38 -16.2836 176.157 +-379.818 -15.9324 172.358 +-380.309 -15.5855 168.605 +-380.03 -15.2098 164.541 +-379.708 -14.8356 160.493 +-380.269 -14.4984 156.844 +-378.569 -14.0786 152.303 +-379.052 -13.7436 148.679 +-379.314 -13.4023 144.987 +-380.476 -13.0939 141.65 +-113.045 -3.78722 40.9703 +-111.137 -3.62253 39.1887 +-109.68 -3.47619 37.6056 +-109.247 -3.36459 36.3983 +-108.42 -3.24257 35.0784 +-108.628 -3.1526 34.105 +-110.262 -3.1029 33.5674 +-108.826 -2.96715 32.0989 +-108.238 -2.8568 30.905 +-110.047 -2.8091 30.389 +-109.922 -2.71107 29.3286 +-109.497 -2.60655 28.1978 +-109.546 -2.51404 27.1971 +-110.267 -2.4367 26.3603 +-110.786 -2.35424 25.4683 +-111.981 -2.28509 24.7202 +-113.074 -2.21228 23.9326 +-114.847 -2.15073 23.2667 +-117.697 -2.10582 22.7809 +-127.233 -2.17055 23.4812 +-156.978 -2.54778 27.562 +-158.792 -2.4459 26.4599 +-160.302 -2.33697 25.2815 +-161.21 -2.21765 23.9906 +-850.244 -10.9989 118.987 +-861.268 -10.4369 112.907 +-379.748 -4.29183 46.4293 +-379.843 -3.98351 43.0939 +-3258.55 -31.5245 341.034 +-404.23 -3.58269 38.7578 +-403.06 -3.24582 35.1135 +-403.054 -2.91978 31.5863 +-403.614 -2.59785 28.1037 +-403.845 -2.27354 24.5953 +-403.147 -1.94474 21.0383 +-402.017 -1.61562 17.4779 +-403.454 -1.29682 14.0291 +-145.75 -0.351301 3.8004 +-144.978 -0.232931 2.51986 +-145.894 -0.117192 1.2678 +119.5 2.66454e-15 -1.13687e-13 +119.595 -0.0866875 1.04008 +119.482 -0.173224 2.07835 +120.059 -0.261124 3.13299 +120.027 -0.348135 4.17695 +119.886 -0.434756 5.21624 +120.235 -0.523373 6.27948 +120.076 -0.609994 7.31876 +120.506 -0.699901 8.39746 +120.228 -0.785915 9.42947 +120.34 -0.874475 10.492 +120.144 -0.960873 11.5286 +120.437 -1.05139 12.6147 +119.924 -1.13488 13.6164 +120.594 -1.22986 14.7559 +120.262 -1.31505 15.7781 +120.813 -1.41026 16.9204 +120.363 -1.49409 17.9262 +120.893 -1.59037 19.0814 +119.834 -1.6656 19.984 +120.442 -1.76393 21.1638 +119.957 -1.84662 22.1559 +120.642 -1.94776 23.3694 +120.335 -2.03348 24.3978 +120.117 -2.12062 25.4434 +120.377 -2.21659 26.5948 +120.335 -2.30749 27.6855 +120.768 -2.40819 28.8937 +120.511 -2.49564 29.9429 +121.115 -2.60161 31.2143 +121.031 -2.69359 32.3179 +121.321 -2.79453 33.529 +120.927 -2.88008 34.5554 +121.578 -2.9912 35.8887 +121.164 -3.07678 36.9155 +120.836 -3.16449 37.9678 +121.355 -3.27505 39.2944 +120.911 -3.36025 40.3165 +121.594 -3.47751 41.7234 +121.695 -3.57937 42.9456 +121.972 -3.68732 44.2408 +117.74 -3.65633 43.869 +114.457 -3.64926 43.7841 +110.72 -3.62249 43.4629 +108.017 -3.62482 43.4909 +105.507 -3.62986 43.5514 +102.084 -3.59911 43.1824 +99.5927 -3.59678 43.1545 +97.9321 -3.62154 43.4515 +96.0009 -3.63383 43.5989 +97.1562 -3.76295 45.1482 +96.6669 -3.82964 45.9484 +97.6989 -3.95782 47.4862 +97.5478 -4.03961 48.4675 +96.8524 -4.09885 49.1783 +97.1277 -4.19957 50.3868 +96.7711 -4.27371 51.2763 +97.1093 -4.37935 52.5438 +96.6455 -4.44958 53.3864 +96.7836 -4.54809 54.5683 +96.3886 -4.62221 55.4577 +96.5886 -4.72563 56.6985 +96.7742 -4.82968 57.9469 +97.1157 -4.94304 59.307 +96.3383 -5.00003 59.9908 +96.5683 -5.10984 61.3082 +96.6987 -5.21583 62.5799 +96.0636 -5.28113 63.3634 +96.2513 -5.39236 64.698 +96.3404 -5.49956 65.9841 +96.4142 -5.60728 67.2766 +95.9028 -5.68178 68.1704 +96.0303 -5.79501 69.529 +95.9805 -5.89898 70.7764 +95.996 -6.00831 72.0882 +96.0751 -6.12317 73.4663 +96.1373 -6.23859 74.8512 +96.1043 -6.3494 76.1807 +96.0552 -6.46064 77.5152 +96.0673 -6.57756 78.9181 +96.062 -6.69499 80.3271 +96.0393 -6.81291 81.7419 +95.9236 -6.92586 83.097 +95.8663 -7.04465 84.5223 +96.3859 -7.20835 86.4863 +95.6249 -7.27793 87.3212 +96.173 -7.44893 89.3729 +96.0396 -7.56981 90.8232 +95.888 -7.69107 92.278 +96.3601 -7.86506 94.3656 +95.5301 -7.9346 95.2 +95.9545 -8.11018 97.3066 +95.7934 -8.23917 98.8542 +96.0943 -8.41069 100.912 +95.889 -8.54076 102.473 +95.596 -8.6651 103.965 +95.8864 -8.84517 106.125 +95.4173 -8.95788 107.477 +95.6534 -9.13953 109.657 +95.7286 -9.30955 111.697 +95.7754 -9.4804 113.747 +95.2845 -9.60067 115.19 +95.405 -9.78556 117.408 +95.3692 -9.9584 119.482 +95.4275 -10.145 121.72 +94.9668 -10.2796 123.335 +95.3877 -10.5139 126.147 +95.2906 -10.6961 128.333 +95.28 -10.8925 130.689 +95.003 -11.0625 132.729 +94.9843 -11.2671 135.183 +94.9297 -11.4724 137.647 +94.951 -11.6923 140.285 +94.9332 -11.9129 142.932 +94.8761 -12.1345 145.591 +94.5647 -12.329 147.924 +94.2196 -12.5238 150.262 +94.3632 -12.79 153.455 +94.561 -13.0714 156.832 +94.6052 -13.3399 160.053 +94.55 -13.6021 163.199 +94.4961 -13.8725 166.444 +94.4409 -14.1512 169.787 +94.6683 -14.4819 173.755 +94.5046 -14.7626 177.123 +94.6585 -15.1031 181.209 +94.3392 -15.3784 184.511 +94.6832 -15.7733 189.249 +94.6005 -16.1101 193.29 +94.368 -16.4329 197.163 +94.5397 -16.8394 202.04 +94.2183 -17.1718 206.029 +94.2409 -17.5809 210.937 +94.2244 -17.9989 215.952 +94.1662 -18.4259 221.075 +94.2549 -18.9002 226.766 +94.251 -19.3758 232.473 +94.3741 -19.8994 238.755 +94.2866 -20.4013 244.776 +94.1007 -20.9045 250.814 +93.9187 -21.4325 257.148 +93.7997 -22.0007 263.967 +93.6334 -22.5862 270.991 +93.8587 -23.2991 279.545 +93.5394 -23.9113 286.89 +93.3992 -24.604 295.2 +93.5882 -25.4253 305.055 +93.3558 -26.1771 314.075 +93.2206 -27.0023 323.976 +93.3998 -27.9732 335.625 +93.2525 -28.9063 346.82 +93.2165 -29.9377 359.196 +96.4543 -32.1318 385.52 +107.595 -37.224 446.616 +103.432 -37.2115 446.467 +99.3674 -37.2283 446.668 +95.2028 -37.2015 446.346 +92.407 -37.7248 452.626 +92.1035 -39.3558 472.194 +92.2476 -41.3403 496.004 +91.8078 -43.246 518.869 +91.7995 -45.5637 546.676 +91.6706 -48.0731 576.785 +91.7453 -50.9882 611.761 +91.2836 -53.948 647.273 +91.2509 -57.5695 690.724 +91.2314 -61.7143 740.453 +96.4831 -70.3358 843.895 +90.5739 -71.5761 858.775 +90.2579 -77.8563 934.126 +90.8076 -86.2099 1034.35 +91.3421 -96.3987 1156.6 +88.0327 -104.565 1254.58 +200.038 -271.651 3259.29 +86.4433 -137 1643.74 +142.928 -271.899 3262.27 +114.355 -271.992 3263.38 +85.774 -272.065 3264.26 +57.1863 -272.117 3264.88 +28.5942 -272.148 3265.26 +1.4555e-13 -272.158 3265.38 +-28.5942 -272.148 3265.26 +-57.1863 -272.117 3264.88 +-85.774 -272.065 3264.26 +-114.355 -271.992 3263.38 +-142.928 -271.899 3262.27 +-171.489 -271.785 3260.9 +-200.038 -271.651 3259.29 +-119.646 -142.115 1705.11 +-257.087 -271.319 3255.31 +-120.528 -114.425 1372.88 +-314.019 -270.873 3249.95 +-109.88 -86.8329 1041.83 +-118.422 -86.3295 1035.79 +-128.536 -86.9491 1043.22 +-146.972 -92.7242 1112.51 +-456.028 -269.51 3233.6 +-143.567 -79.7887 957.312 +-111.491 -58.4671 701.493 +-117.101 -58.122 697.352 +-123.742 -58.2884 699.349 +-146.517 -65.661 787.805 +-625.224 -267.158 3205.39 +-653.269 -266.695 3199.83 +-681.264 -266.211 3194.03 +-139.409 -52.2299 626.659 +-142.754 -51.3581 616.198 +-146.113 -50.55 606.503 +-152.169 -50.692 608.207 +-142.817 -45.8676 550.323 +-142.273 -44.1016 529.134 +-146.473 -43.8688 526.341 +-97.741 -28.3116 339.685 +-97.6729 -27.3876 328.599 +-99.5818 -27.0536 324.592 +-97.4888 -25.6813 308.127 +-100.492 -25.6887 308.215 +-97.7933 -24.2758 291.263 +-101.219 -24.4161 292.946 +-98.5398 -23.1126 277.306 +-108.899 -24.851 298.164 +-99.669 -22.1415 265.656 +-114.427 -24.7591 297.062 +-101.557 -21.4141 256.928 +-121.71 -25.0208 300.201 +-110.251 -22.1077 265.25 +-411.713 -80.5616 966.585 +-117.352 -22.4168 268.958 +-161.027 -30.0401 360.423 +-129.053 -23.5206 282.202 +-166.934 -29.7343 356.755 +-166.436 -28.9824 347.733 +-141.199 -24.0457 288.502 +-141.534 -23.5781 282.892 +-144.823 -23.6078 283.249 +-149.514 -23.8556 286.222 +-411.492 -64.2794 771.23 +-414.508 -63.4093 760.79 +-414.949 -62.1766 746 +-418.314 -61.4108 736.812 +-417.95 -60.1271 721.41 +-421.003 -59.3638 712.251 +-421.713 -58.2946 699.424 +-432.263 -58.5887 702.952 +-437.183 -58.1112 697.223 +-428.98 -55.9287 671.037 +-431.79 -55.2255 662.601 +-434.098 -54.4741 653.585 +-436.953 -53.8062 645.572 +-439.305 -53.0904 636.983 +-442.227 -52.457 629.384 +-444.18 -51.722 620.565 +-446.599 -51.0554 612.567 +-448.615 -50.3559 604.174 +-451.241 -49.7369 596.748 +-453.466 -49.0851 588.927 +-463.347 -49.2585 591.008 +-461.034 -48.1408 577.597 +-467.082 -47.9081 574.805 +-464.464 -46.7986 561.493 +-467.628 -46.2883 555.371 +-471.434 -45.8466 550.072 +-473.543 -45.2461 542.867 +-476.424 -44.727 536.638 +-479.834 -44.2627 531.068 +-482.507 -43.7356 524.744 +-484.833 -43.1838 518.123 +-487.768 -42.6922 512.224 +-490.568 -42.1936 506.243 +-493.02 -41.6705 499.966 +-495.823 -41.1824 494.11 +-498.847 -40.7167 488.522 +-501.38 -40.2151 482.504 +-2376.69 -187.33 2247.6 +-383.229 -29.6824 356.132 +-380.14 -28.9322 347.13 +-381.308 -28.5166 342.145 +-380.844 -27.986 335.778 +-382.487 -27.6163 331.342 +-141.816 -10.0602 120.703 +-142.101 -9.90367 118.825 +-142.828 -9.77916 117.331 +-140.897 -9.47666 113.702 +-141.809 -9.36902 112.41 +-145.152 -9.41927 113.013 +-145.739 -9.28837 111.443 +-154.696 -9.68232 116.169 +-156.109 -9.59452 115.116 +-156.707 -9.45656 113.461 +-157.938 -9.35706 112.267 +-160.554 -9.33754 112.033 +-380.746 -21.7348 260.776 +-380.694 -21.3279 255.894 +-381.92 -20.9962 251.914 +-381.26 -20.5647 246.737 +-381.382 -20.1805 242.127 +-381.198 -19.7845 237.376 +-380.107 -19.3469 232.125 +-379.125 -18.9208 227.014 +-379.892 -18.5864 223.001 +-380.445 -18.2438 218.891 +-380.345 -17.8733 214.445 +-379.41 -17.4681 209.583 +-378.858 -17.0854 204.992 +-380.374 -16.7984 201.549 +-380.528 -16.4531 197.406 +-377.43 -15.973 191.646 +-377.483 -15.6321 187.556 +-378.662 -15.3398 184.048 +-380.891 -15.0898 181.048 +-380.287 -14.7289 176.718 +-379.363 -14.3597 172.289 +-379.944 -14.0504 168.577 +-379.204 -13.695 164.313 +-379.708 -13.3871 160.62 +-379.437 -13.0542 156.625 +-379.867 -12.7475 152.946 +-379.052 -12.4017 148.797 +-378.38 -12.064 144.745 +-379.54 -11.7864 141.414 +-113.515 -3.43165 41.1732 +-111.137 -3.26884 39.2198 +-109.775 -3.13949 37.6679 +-109.342 -3.03872 36.4588 +-108.325 -2.92342 35.0754 +-108.628 -2.84479 34.1321 +-109.019 -2.76838 33.2152 +-108.155 -2.66094 31.9262 +-108.334 -2.58016 30.957 +-110.143 -2.53705 30.4398 +-110.502 -2.45928 29.5066 +-109.497 -2.35206 28.2202 +-109.449 -2.26657 27.1945 +-110.364 -2.20072 26.4044 +-110.786 -2.12438 25.4885 +-111.884 -2.06019 24.7183 +-112.976 -1.99455 23.9308 +-114.651 -1.93743 23.2454 +-116.814 -1.88596 22.6278 +-127.233 -1.95863 23.4998 +-156.781 -2.29614 27.5493 +-161.258 -2.24136 26.8921 +-160.203 -2.10751 25.286 +-161.012 -1.99867 23.9803 +-850.541 -9.9285 119.123 +-861.665 -9.42218 113.048 +-378.656 -3.86166 46.3326 +-381.432 -3.60962 43.3085 +-3258.55 -28.4466 341.305 +-404.031 -3.2313 38.7694 +-404.355 -2.93833 35.2543 +-403.353 -2.63666 31.6349 +-402.717 -2.33899 28.0634 +-402.248 -2.04346 24.5176 +-403.546 -1.75661 21.0759 +-402.716 -1.46042 17.5222 +-402.854 -1.16847 14.0194 +-144.051 -0.313306 3.75907 +-145.578 -0.211058 2.53229 +-145.894 -0.10575 1.2688 +119.6 2.66454e-15 -1.13687e-13 +119.695 -0.0773661 1.0417 +120.382 -0.155631 2.0955 +119.459 -0.231686 3.11956 +120.227 -0.310955 4.18688 +119.986 -0.388003 5.2243 +120.335 -0.467089 6.28916 +120.175 -0.544395 7.33005 +120.605 -0.624631 8.4104 +120.328 -0.701396 9.444 +120.44 -0.78043 10.5082 +120.343 -0.85825 11.556 +120.437 -0.937544 12.6236 +120.918 -1.02038 13.739 +120.694 -1.09759 14.7786 +121.353 -1.18329 15.9325 +120.912 -1.25859 16.9463 +120.363 -1.33231 17.939 +121.091 -1.42048 19.1262 +120.031 -1.48769 20.0311 +120.442 -1.57293 21.1789 +120.94 -1.66017 22.3534 +120.642 -1.73685 23.386 +120.433 -1.81476 24.435 +120.899 -1.90331 25.6273 +120.67 -1.98138 26.6784 +120.432 -2.0593 27.7276 +120.768 -2.14743 28.9143 +120.705 -2.22899 30.0124 +121.115 -2.3199 31.2365 +121.127 -2.40385 32.3668 +121.514 -2.4959 33.6062 +121.792 -2.58659 34.8274 +120.907 -2.65259 35.7159 +121.259 -2.74579 36.9709 +120.931 -2.82406 38.0248 +121.355 -2.92043 39.3223 +121.954 -3.02225 40.6933 +121.877 -3.10819 41.8504 +121.789 -3.19426 43.0093 +121.126 -3.26526 43.9653 +117.552 -3.25523 43.8303 +114.457 -3.25411 43.8152 +110.813 -3.23296 43.5304 +108.11 -3.23509 43.5591 +105.415 -3.23399 43.5443 +102.82 -3.23254 43.5248 +99.5927 -3.20732 43.1852 +97.2012 -3.2053 43.1579 +96.4559 -3.25571 43.8368 +97.2468 -3.35862 45.2224 +96.7571 -3.41816 46.024 +97.8787 -3.53576 47.6075 +97.5478 -3.60219 48.502 +96.9415 -3.65838 49.2585 +96.5068 -3.72089 50.1002 +96.7711 -3.81095 51.3128 +97.0214 -3.90162 52.5336 +97.2577 -3.9929 53.7627 +96.8706 -4.05926 54.6562 +97.1681 -4.15505 55.9459 +96.5886 -4.21393 56.7388 +96.7742 -4.30672 57.9881 +96.2631 -4.3691 58.8281 +95.575 -4.4233 59.5579 +96.5683 -4.55654 61.3518 +95.9439 -4.61474 62.1356 +96.147 -4.71337 63.4635 +96.2513 -4.80847 64.744 +96.3404 -4.90406 66.031 +96.4961 -5.00437 67.3817 +96.6355 -5.10525 68.7401 +96.6775 -5.20235 70.0474 +96.0609 -5.26463 70.8861 +96.0759 -5.36218 72.1995 +96.0751 -5.46014 73.5185 +96.1373 -5.56307 74.9044 +96.1825 -5.66649 76.2969 +96.133 -5.76573 77.6331 +96.1444 -5.87004 79.0376 +96.1386 -5.97481 80.4482 +95.9632 -6.07039 81.7352 +95.9236 -6.17592 83.1561 +96.5404 -6.32602 85.1771 +96.3859 -6.42782 86.5478 +96.2884 -6.53491 87.9898 +96.173 -6.64235 89.4365 +96.1121 -6.75524 90.9565 +95.888 -6.85827 92.3437 +95.7182 -6.9667 93.8037 +96.1665 -7.12257 95.9024 +96.0246 -7.23728 97.4469 +95.7934 -7.34702 98.9245 +96.1631 -7.50537 101.057 +95.889 -7.61595 102.546 +95.596 -7.72683 104.038 +95.7526 -7.87637 106.052 +95.4173 -7.98791 107.554 +95.6534 -8.14989 109.735 +95.7936 -8.30713 111.852 +95.7754 -8.45385 113.828 +95.2845 -8.5611 115.272 +95.342 -8.72026 117.415 +95.556 -8.89743 119.8 +95.4891 -9.05222 121.884 +95.4538 -9.21353 124.056 +95.2071 -9.35767 125.997 +95.1716 -9.52602 128.264 +95.1037 -9.69503 130.539 +95.1772 -9.88279 133.068 +94.8695 -10.0349 135.116 +94.8164 -10.2179 137.58 +94.7832 -10.4078 140.136 +95.0987 -10.6416 143.284 +94.7127 -10.802 145.444 +95.102 -11.0564 148.87 +94.6966 -11.2243 151.13 +94.3632 -11.405 153.564 +94.561 -11.656 156.944 +94.6052 -11.8954 160.167 +94.6 -12.1357 163.402 +94.4961 -12.3704 166.562 +94.5379 -12.6319 170.083 +94.716 -12.9203 173.966 +94.5046 -13.1641 177.249 +94.6585 -13.4678 181.338 +94.3392 -13.7132 184.642 +94.3262 -14.0123 188.669 +94.5567 -14.359 193.338 +94.368 -14.6535 197.304 +94.4974 -15.0093 202.093 +94.1768 -15.3057 206.084 +94.2002 -15.6704 210.996 +94.2244 -16.05 216.106 +94.1271 -16.4239 221.141 +94.5228 -16.9015 227.571 +94.2136 -17.271 232.547 +94.4474 -17.7585 239.11 +94.3583 -18.2061 245.137 +94.1007 -18.641 250.993 +94.0555 -19.1395 257.705 +93.7997 -19.6185 264.154 +93.6985 -20.1546 271.373 +93.7001 -20.7412 279.271 +93.5394 -21.3222 287.094 +93.2188 -21.8975 294.84 +93.5297 -22.6581 305.082 +93.1002 -23.2787 313.438 +93.2481 -24.0856 324.302 +93.3998 -24.9443 335.864 +93.2784 -25.7835 347.164 +93.2165 -26.6961 359.451 +96.4301 -28.6454 385.698 +107.665 -33.215 447.225 +103.455 -33.1895 446.882 +99.2159 -33.1466 446.305 +95.182 -33.166 446.566 +92.4469 -33.6545 453.143 +92.1226 -35.1016 472.628 +92.2112 -36.8493 496.161 +91.9641 -38.6289 520.122 +91.915 -40.6811 547.753 +91.7957 -42.9263 577.984 +91.7305 -45.4598 612.097 +91.2976 -48.1138 647.832 +91.3553 -51.3946 692.006 +91.1217 -54.9656 740.089 +96.4831 -62.7198 844.495 +90.5635 -63.8184 859.287 +90.0471 -69.2637 932.606 +90.8163 -76.8817 1035.18 +89.5767 -84.2993 1135.05 +88.228 -93.4493 1258.25 +88.148 -106.743 1437.25 +87.5057 -123.667 1665.12 +79.0645 -134.122 1805.9 +114.341 -242.511 3265.31 +85.774 -242.606 3266.58 +57.1863 -242.652 3267.2 +28.5942 -242.68 3267.58 +1.47771e-13 -242.689 3267.7 +-28.5942 -242.68 3267.58 +-57.1863 -242.652 3267.2 +-85.774 -242.606 3266.58 +-114.355 -242.541 3265.71 +-142.928 -242.458 3264.59 +-125.13 -176.839 2381.06 +-125.241 -151.661 2042.05 +-119.988 -127.089 1711.2 +-142.238 -133.858 1802.35 +-120.475 -101.99 1373.26 +-141.267 -108.661 1463.08 +-110.079 -77.5705 1044.45 +-118.478 -77.0179 1037.01 +-128.219 -77.3431 1041.39 +-148.761 -83.6897 1126.85 +-456.028 -240.327 3235.9 +-143.538 -71.1344 957.795 +-111.538 -52.1582 702.288 +-117.167 -51.8576 698.241 +-123.585 -51.9113 698.963 +-146.444 -58.522 787.974 +-625.224 -238.23 3207.67 +-653.269 -237.817 3202.1 +-681.264 -237.386 3196.3 +-138.391 -46.2346 622.529 +-142.799 -45.8114 616.831 +-146.58 -45.2204 608.874 +-162.015 -48.1279 648.022 +-142.667 -40.858 550.136 +-142.221 -39.3119 529.318 +-146.473 -39.1186 526.715 +-903.071 -233.259 3140.73 +-100.627 -25.1606 338.777 +-109.084 -26.4262 355.817 +-108.916 -25.5847 344.487 +-117.087 -26.6897 359.365 +-115.118 -25.4822 343.107 +-125.148 -26.9194 362.459 +-118.635 -24.8129 334.095 +-1120.56 -228.025 3070.25 +-1147.52 -227.319 3060.76 +-1174.26 -226.569 3050.66 +-445.739 -83.8097 1128.46 +-539.733 -98.9427 1332.22 +-414.599 -74.1339 998.181 +-412.299 -71.9406 968.649 +-158.184 -26.9447 362.799 +-161.556 -26.8752 361.863 +-163.928 -26.6418 358.72 +-167.991 -26.6824 359.268 +-408.168 -63.3804 853.391 +-140.849 -21.3887 287.99 +-141.4 -21.0052 282.826 +-144.641 -21.0252 283.095 +-147.575 -20.9966 282.71 +-410.13 -57.1295 769.224 +-412.265 -56.2374 757.213 +-415.046 -55.457 746.705 +-416.787 -54.5614 734.646 +-418.5 -53.687 722.872 +-419.836 -52.7891 710.782 +-421.507 -51.957 699.579 +-431.009 -52.0931 701.411 +-434.375 -51.4859 693.236 +-428.98 -49.8727 671.515 +-431.79 -49.2457 663.072 +-433.933 -48.5571 653.8 +-437.289 -48.0168 646.526 +-439.475 -47.3601 637.684 +-442.572 -46.8134 630.322 +-444.122 -46.1155 620.926 +-446.893 -45.5571 613.407 +-449.091 -44.9509 605.245 +-451.421 -44.3691 597.411 +-453.588 -43.7819 589.504 +-462.423 -43.8372 590.249 +-459.914 -42.8237 576.603 +-467.648 -42.7723 575.911 +-465.037 -41.7826 562.586 +-468.206 -41.3273 556.454 +-471.24 -40.8654 550.236 +-473.74 -40.3636 543.479 +-476.424 -39.8839 537.02 +-479.566 -39.4479 531.149 +-482.371 -38.989 524.97 +-484.833 -38.5078 518.491 +-487.768 -38.0694 512.588 +-490.568 -37.6249 506.603 +-493.65 -37.2059 500.962 +-496.035 -36.7388 494.673 +-499.061 -36.3234 489.079 +-501.596 -35.876 483.055 +-382.708 -26.8986 362.179 +-381.913 -26.3775 355.162 +-382.205 -25.9395 349.264 +-380.119 -25.3495 341.32 +-381.593 -25.0047 336.678 +-382.109 -24.6016 331.251 +-141.816 -8.9709 120.789 +-142.025 -8.82655 118.846 +-142.828 -8.72026 117.415 +-141.751 -8.50177 114.473 +-142.043 -8.36831 112.676 +-145.467 -8.41756 113.339 +-146.929 -8.35031 112.433 +-153.338 -8.55806 115.231 +-155.868 -8.54236 115.019 +-156.949 -8.44563 113.717 +-157.938 -8.34386 112.347 +-160.472 -8.32224 112.055 +-381.406 -19.4149 261.413 +-379.533 -18.9606 255.296 +-379.168 -18.5878 250.277 +-381.26 -18.338 246.913 +-380.707 -17.9635 241.871 +-379.841 -17.5794 236.699 +-380.107 -17.252 232.29 +-379.125 -16.8721 227.175 +-380.323 -16.5926 223.412 +-379.146 -16.2128 218.299 +-379.736 -15.9124 214.254 +-379.585 -15.5838 209.829 +-378.858 -15.2354 205.138 +-379.579 -14.9482 201.272 +-379.286 -14.6237 196.902 +-377.965 -14.2637 192.054 +-379.005 -13.9957 188.446 +-378.662 -13.6788 184.179 +-379.447 -13.4048 180.49 +-380.015 -13.1246 176.717 +-379.636 -12.814 172.535 +-380.309 -12.541 168.859 +-380.03 -12.2386 164.788 +-379.708 -11.9376 160.734 +-378.144 -11.6009 156.202 +-376.715 -11.2729 151.785 +-379.424 -11.0697 149.048 +-380.434 -10.8161 145.634 +-379.54 -10.5101 141.514 +-112.763 -3.0398 40.9297 +-111.043 -2.91241 39.2144 +-109.586 -2.79472 37.6297 +-109.437 -2.71204 36.5164 +-108.325 -2.60686 35.1003 +-108.438 -2.5323 34.0963 +-109.21 -2.47294 33.2971 +-108.443 -2.37912 32.0339 +-109.199 -2.31915 31.2264 +-109.758 -2.25443 30.3549 +-110.405 -2.19106 29.5017 +-108.917 -2.08625 28.0904 +-110.323 -2.03727 27.431 +-110.17 -1.95897 26.3768 +-110.786 -1.89435 25.5067 +-111.981 -1.83871 24.7574 +-113.074 -1.78012 23.9686 +-114.553 -1.72617 23.2421 +-117.108 -1.68598 22.701 +-126.348 -1.7344 23.353 +-156.092 -2.03851 27.4476 +-158.496 -1.96444 26.4504 +-159.314 -1.86887 25.1636 +-160.418 -1.77569 23.9089 +-850.244 -8.85032 119.166 +-861.07 -8.39615 113.051 +-378.954 -3.44622 46.4019 +-379.644 -3.20367 43.1361 +-896.263 -6.977 93.9424 +-403.633 -2.87857 38.7588 +-402.164 -2.60596 35.0882 +-403.353 -2.35116 31.6574 +-403.116 -2.08779 28.1112 +-402.248 -1.82219 24.535 +-403.047 -1.56446 21.0648 +-403.316 -1.30422 17.5607 +-402.455 -1.04091 14.0154 +-144.95 -0.281125 3.78523 +-146.178 -0.18898 2.54453 +-146.094 -0.0944291 1.27145 +119.6 2.66454e-15 -1.13687e-13 +119.695 -0.0679652 1.04236 +120.482 -0.136833 2.09855 +120.359 -0.205066 3.14502 +121.026 -0.274987 4.21737 +120.186 -0.341424 5.23629 +119.536 -0.407608 6.25134 +120.275 -0.478643 7.34076 +120.605 -0.548732 8.41569 +120.428 -0.616679 9.45778 +120.639 -0.686738 10.5322 +120.244 -0.753339 11.5537 +120.437 -0.823622 12.6316 +120.123 -0.890503 13.6573 +119.8 -0.957084 14.6784 +120.461 -1.03186 15.8253 +120.912 -1.10565 16.957 +120.561 -1.17235 17.9798 +120.202 -1.23872 18.9978 +120.919 -1.31658 20.1919 +120.344 -1.38067 21.1748 +120.94 -1.45844 22.3675 +120.642 -1.52581 23.4007 +120.531 -1.59555 24.4703 +120.997 -1.67339 25.6642 +120.67 -1.74062 26.6952 +121.309 -1.82224 27.9471 +120.963 -1.88953 28.9791 +120.802 -1.95972 30.0555 +121.115 -2.03801 31.2561 +120.837 -2.1067 32.3097 +121.514 -2.19262 33.6274 +120.927 -2.25615 34.6017 +121.578 -2.3432 35.9368 +121.451 -2.41595 37.0525 +121.79 -2.49851 38.3187 +121.355 -2.56556 39.347 +121.954 -2.65501 40.7189 +121.877 -2.73051 41.8768 +121.695 -2.80395 43.0032 +121.126 -2.86849 43.993 +117.459 -2.85741 43.8229 +114.457 -2.8587 43.8428 +110.813 -2.84012 43.5578 +108.202 -2.84443 43.624 +104.676 -2.8211 43.2661 +102.176 -2.82196 43.2793 +99.6844 -2.82019 43.2522 +97.9321 -2.83699 43.5098 +96.5469 -2.86281 43.9058 +97.2468 -2.95051 45.2508 +96.8474 -3.00561 46.0959 +97.8787 -3.10612 47.6374 +97.9058 -3.1761 48.7106 +96.9415 -3.21385 49.2895 +96.5068 -3.26876 50.1317 +96.7711 -3.34787 51.3451 +97.1093 -3.43063 52.6143 +96.6455 -3.48564 53.458 +96.8706 -3.56601 54.6906 +97.1681 -3.65016 55.9811 +96.761 -3.7085 56.8758 +96.7742 -3.7834 58.0246 +97.1157 -3.8722 59.3865 +96.4231 -3.9203 60.1241 +96.737 -4.00986 61.4977 +96.6987 -4.0859 62.6638 +96.8975 -4.17297 63.9992 +96.2513 -4.22419 64.7847 +96.3404 -4.30816 66.0726 +96.4961 -4.39628 67.4241 +95.9028 -4.45091 68.2618 +96.0303 -4.53961 69.6223 +96.704 -4.65589 71.4056 +96.0759 -4.71061 72.2449 +96.8684 -4.83629 74.1723 +96.1373 -4.8871 74.9515 +96.2608 -4.982 76.4071 +96.133 -5.06513 77.6819 +96.1444 -5.15677 79.0874 +96.062 -5.24462 80.4348 +95.9632 -5.33277 81.7866 +95.9991 -5.42974 83.2739 +96.6153 -5.56165 85.2969 +95.8657 -5.61629 86.1349 +96.2884 -5.74084 88.0451 +96.173 -5.83523 89.4928 +96.0396 -5.92992 90.945 +95.9599 -6.02943 92.471 +96.2888 -6.15666 94.4223 +96.1665 -6.2571 95.9627 +95.3237 -6.31147 96.7966 +95.7934 -6.45428 98.9868 +96.1631 -6.59339 101.12 +95.889 -6.69053 102.61 +96.2716 -6.83589 104.839 +95.8864 -6.92899 106.267 +96.0799 -7.06602 108.369 +95.6534 -7.15959 109.804 +95.7936 -7.29772 111.922 +95.1326 -7.37677 113.135 +95.2845 -7.52083 115.344 +95.405 -7.66566 117.565 +95.4315 -7.80614 119.72 +95.4891 -7.95228 121.961 +95.3929 -8.08878 124.055 +95.147 -8.2154 125.996 +95.3501 -8.38418 128.585 +95.28 -8.53279 130.864 +95.1772 -8.68192 133.151 +94.8695 -8.81556 135.201 +94.9297 -8.98707 137.831 +94.8391 -9.1485 140.307 +95.1539 -9.35391 143.457 +94.8761 -9.50577 145.786 +94.6185 -9.66356 148.206 +94.8026 -9.87144 151.395 +94.938 -10.0802 154.597 +94.5095 -10.2341 156.957 +94.6052 -10.45 160.268 +94.65 -10.6667 163.592 +94.5453 -10.8729 166.754 +94.5864 -11.1026 170.276 +94.716 -11.3503 174.075 +94.5046 -11.5645 177.36 +94.6585 -11.8313 181.452 +94.3392 -12.0469 184.759 +94.2816 -12.3038 188.699 +94.6005 -12.6201 193.549 +94.368 -12.873 197.428 +94.4974 -13.1855 202.221 +94.2183 -13.4518 206.305 +94.6069 -13.8258 212.041 +94.2244 -14.0997 216.242 +94.1662 -14.4342 221.372 +94.2167 -14.7997 226.977 +94.251 -15.1784 232.785 +94.484 -15.6067 239.354 +94.2866 -15.9817 245.105 +94.1007 -16.3759 251.151 +93.8503 -16.7772 257.306 +93.8999 -17.253 264.603 +93.7636 -17.7179 271.732 +93.8587 -18.2517 279.92 +93.354 -18.6942 286.705 +93.6398 -19.3235 296.358 +93.6467 -19.9297 305.655 +93.2706 -20.4875 314.209 +93.2757 -21.1651 324.602 +93.2929 -21.8881 335.69 +93.2525 -22.6442 347.286 +93.0913 -23.4207 359.194 +96.2607 -25.1205 385.263 +107.688 -29.1853 447.604 +103.477 -29.1629 447.26 +99.3674 -29.1634 447.267 +95.2028 -29.1423 446.945 +92.3273 -29.5268 452.841 +92.0463 -30.8108 472.534 +92.1201 -32.3397 495.982 +91.7904 -33.871 519.466 +91.6179 -35.6224 546.327 +91.608 -37.6331 577.164 +91.7896 -39.9617 612.878 +91.2976 -42.2674 648.239 +91.2117 -45.0786 691.354 +90.9145 -48.1769 738.87 +96.4944 -55.1051 845.126 +90.3858 -55.9537 858.141 +90.0471 -60.8474 933.193 +90.7378 -67.4818 1034.94 +89.4826 -73.9779 1134.57 +88.221 -82.0876 1258.95 +87.6657 -93.2593 1430.28 +87.4324 -108.549 1664.77 +79.0427 -117.793 1806.54 +66.85 -124.556 1910.27 +85.7531 -213.074 3267.84 +57.1723 -213.115 3268.46 +28.5873 -213.139 3268.84 +1.4766e-13 -213.147 3268.96 +-28.5873 -213.139 3268.84 +-57.1723 -213.115 3268.46 +-85.7531 -213.074 3267.84 +-114.327 -213.017 3266.96 +-106.235 -158.315 2428.02 +-125.229 -155.475 2384.46 +-125.546 -133.557 2048.31 +-119.981 -111.64 1712.17 +-142.364 -117.697 1805.08 +-120.467 -89.591 1374.02 +-138.564 -93.6315 1435.99 +-109.839 -67.9958 1042.83 +-118.456 -67.6464 1037.47 +-128.072 -67.8676 1040.86 +-148.865 -73.5719 1128.34 +-455.973 -211.099 3237.55 +-143.493 -62.4716 958.102 +-111.616 -45.8525 703.223 +-117.134 -45.5435 698.484 +-123.585 -45.6035 699.403 +-146.135 -51.3021 786.801 +-625.224 -209.282 3209.68 +-653.269 -208.919 3204.12 +-681.181 -208.515 3197.91 +-709.208 -208.146 3192.25 +-142.866 -40.2638 617.511 +-146.627 -39.7383 609.452 +-158.507 -41.3645 634.391 +-142.541 -35.8618 549.998 +-142.454 -34.5917 530.519 +-146.928 -34.4718 528.681 +-151.435 -34.3621 526.998 +-108.977 -23.9374 367.119 +-111.247 -23.6756 363.103 +-114.238 -23.5742 361.549 +-117.457 -23.5209 360.731 +-120.861 -23.5026 360.451 +-124.986 -23.6177 362.216 +-1093.78 -200.97 3082.2 +-1120.7 -200.342 3072.57 +-1147.52 -199.698 3062.69 +-1174.26 -199.039 3052.58 +-381.418 -63.0018 966.234 +-540.033 -86.9682 1333.8 +-380.311 -59.7397 916.205 +-412.417 -63.2169 969.534 +-158.184 -23.6706 363.027 +-161.718 -23.6334 362.456 +-164.55 -23.4933 360.308 +-167.991 -23.4402 359.494 +-408.081 -55.6673 853.748 +-141.243 -18.8423 288.977 +-141.355 -18.447 282.914 +-144.778 -18.4878 283.54 +-147.529 -18.4395 282.799 +-410.553 -50.2394 770.502 +-412.885 -49.4782 758.829 +-415.046 -48.7184 747.175 +-416.689 -47.9202 734.934 +-418.7 -47.186 723.673 +-419.988 -46.3914 711.487 +-422.022 -45.6994 700.875 +-429.598 -45.6134 699.556 +-430.559 -44.8325 687.579 +-429.41 -43.8565 672.61 +-431.626 -43.2454 663.238 +-433.933 -42.6568 654.212 +-436.953 -42.1499 646.437 +-439.475 -41.6053 638.085 +-442.4 -41.109 630.473 +-444.877 -40.5808 622.372 +-446.893 -40.0214 613.793 +-449.091 -39.4889 605.626 +-450.94 -38.9362 597.15 +-453.771 -38.4774 590.113 +-461.254 -38.4131 589.127 +-458.669 -37.5183 575.404 +-465.76 -37.4233 573.947 +-465.228 -36.7206 563.17 +-468.978 -36.3654 557.722 +-471.24 -35.8998 550.582 +-473.74 -35.459 543.821 +-476.623 -35.0522 537.582 +-479.365 -34.64 531.261 +-482.507 -34.261 525.447 +-484.764 -33.8239 518.744 +-488.319 -33.4813 513.491 +-491.54 -33.1185 507.926 +-493.37 -32.6665 500.993 +-496.672 -32.3161 495.62 +-499.133 -31.9142 489.457 +-502.243 -31.5573 483.982 +-382.708 -23.6301 362.406 +-379.646 -23.0347 353.275 +-381.099 -22.7216 348.473 +-381.085 -22.3258 342.403 +-380.694 -21.9146 336.096 +-2472.81 -139.863 2145.03 +-141.664 -7.87238 120.736 +-141.259 -7.71219 118.279 +-142.828 -7.66065 117.489 +-141.674 -7.46461 114.482 +-142.2 -7.3596 112.871 +-144.364 -7.33865 112.55 +-146.453 -7.31184 112.139 +-154.376 -7.56911 116.084 +-155.868 -7.50437 115.092 +-156.949 -7.41939 113.788 +-158.183 -7.34138 112.592 +-160.226 -7.2998 111.954 +-380.911 -17.0336 261.238 +-381.191 -16.7294 256.572 +-380.669 -16.3938 251.425 +-379.918 -16.053 246.198 +-382.056 -15.8367 242.881 +-381.452 -15.5088 237.853 +-380.363 -15.1659 232.593 +-379.725 -14.8454 227.679 +-379.978 -14.5632 223.35 +-379.233 -14.246 218.486 +-379.388 -13.9661 214.192 +-380.285 -13.7154 210.348 +-379.473 -13.4059 205.6 +-379.579 -13.1319 201.398 +-380.794 -12.8978 197.809 +-378.5 -12.5482 192.446 +-379.81 -12.3211 188.965 +-379.651 -12.048 184.776 +-380.62 -11.8124 181.162 +-380.831 -11.5545 177.208 +-379.272 -11.2461 172.478 +-379.395 -10.9907 168.56 +-379.204 -10.7282 164.534 +-378.051 -10.4412 160.133 +-378.513 -10.2013 156.453 +-379.867 -9.98596 153.151 +-379.424 -9.72459 149.142 +-378.1 -9.44351 144.831 +-380.476 -9.25579 141.953 +-113.703 -2.69269 41.2967 +-111.137 -2.5607 39.2724 +-109.586 -2.45513 37.6533 +-109.626 -2.38662 36.6027 +-108.611 -2.29613 35.2149 +-108.533 -2.22655 34.1478 +-108.541 -2.15914 33.1139 +-108.538 -2.09188 32.0824 +-108.526 -2.0248 31.0536 +-110.239 -1.98918 30.5073 +-109.826 -1.91472 29.3653 +-109.594 -1.84414 28.2829 +-110.226 -1.78814 27.4241 +-110.072 -1.71941 26.37 +-110.786 -1.66417 25.5227 +-112.079 -1.6167 24.7946 +-113.074 -1.56382 23.9837 +-114.553 -1.51642 23.2567 +-117.403 -1.48484 22.7724 +-126.25 -1.52246 23.3494 +-157.668 -1.80889 27.7422 +-159.68 -1.73862 26.6646 +-159.808 -1.64687 25.2575 +-163.188 -1.58685 24.3369 +-3244.61 -29.6698 455.035 +-862.16 -7.3853 113.265 +-379.748 -3.03381 46.5284 +-379.942 -2.8166 43.1972 +-3258.55 -22.2841 341.762 +-404.031 -2.53129 38.8214 +-403.658 -2.29781 35.2407 +-403.951 -2.06853 31.7242 +-403.116 -1.8341 28.1289 +-403.147 -1.60435 24.6053 +-402.548 -1.37266 21.0519 +-403.316 -1.14574 17.5718 +-403.054 -0.915794 14.0452 +-144.051 -0.245433 3.76411 +-145.578 -0.165335 2.53569 +-146.494 -0.083182 1.27573 +119.5 2.66454e-15 -1.13687e-13 +119.795 -0.0586076 1.0438 +120.282 -0.1177 2.09622 +120.359 -0.176685 3.14674 +119.927 -0.234777 4.18135 +120.186 -0.294171 5.23916 +120.335 -0.353543 6.29656 +120.275 -0.412399 7.34478 +120.506 -0.472396 8.41333 +120.328 -0.530891 9.45512 +120.34 -0.590225 10.5118 +120.244 -0.649077 11.56 +120.238 -0.708461 12.6176 +121.216 -0.774237 13.7891 +120.396 -0.828727 14.7596 +120.461 -0.889054 15.834 +120.813 -0.951852 16.9524 +120.462 -1.00926 17.9749 +120.893 -1.07342 19.1175 +120.919 -1.13437 20.203 +120.344 -1.18959 21.1864 +120.055 -1.2474 22.216 +120.544 -1.31356 23.3945 +120.433 -1.3736 24.4638 +120.899 -1.44063 25.6575 +120.67 -1.49972 26.7098 +120.432 -1.5587 27.7603 +120.185 -1.61755 28.8084 +120.705 -1.68714 30.0478 +121.309 -1.75876 31.3233 +120.741 -1.81368 32.3015 +121.514 -1.88916 33.6458 +120.927 -1.9439 34.6207 +121.578 -2.0189 35.9565 +121.259 -2.0783 37.0144 +120.931 -2.13755 38.0695 +121.355 -2.21049 39.3686 +121.291 -2.27511 40.5195 +121.783 -2.35079 41.8673 +121.695 -2.41589 43.0267 +121.784 -2.48492 44.2561 +117.552 -2.4639 43.8819 +114.457 -2.46306 43.8668 +110.813 -2.44705 43.5817 +108.202 -2.45076 43.6479 +105.507 -2.44997 43.6337 +102.728 -2.44454 43.537 +100.418 -2.44776 43.5943 +97.2012 -2.42611 43.2087 +96.4559 -2.46427 43.8884 +97.1562 -2.53979 45.2335 +96.7571 -2.58723 46.0782 +97.7888 -2.67378 47.6198 +97.9953 -2.73903 48.7819 +96.9415 -2.76905 49.3165 +96.5955 -2.81896 50.2053 +96.7711 -2.88453 51.3732 +97.0214 -2.95316 52.5955 +95.7709 -2.97605 53.0032 +96.9576 -3.07524 54.7697 +96.302 -3.11695 55.5126 +96.6748 -3.1924 56.8562 +96.7742 -3.25978 58.0564 +96.2631 -3.307 58.8973 +96.4231 -3.37773 60.157 +96.5683 -3.44887 61.4241 +96.6987 -3.52041 62.6981 +96.8975 -3.59543 64.0342 +96.2513 -3.63956 64.8202 +96.3404 -3.71191 66.1088 +96.4961 -3.78784 67.461 +95.9842 -3.83816 68.3572 +95.9494 -3.90803 69.6017 +95.9805 -3.9815 70.9101 +96.0759 -4.05867 72.2844 +96.1544 -4.13623 73.6659 +96.0585 -4.20727 74.9311 +96.1825 -4.289 76.3867 +96.0552 -4.36059 77.6617 +96.1444 -4.44307 79.1307 +96.062 -4.51877 80.4788 +96.0393 -4.59836 81.8963 +95.9236 -4.67459 83.254 +96.6153 -4.79192 85.3436 +95.7914 -4.83525 86.1153 +96.2884 -4.94631 88.0933 +95.5879 -4.99705 88.997 +96.1121 -5.11309 91.0636 +95.888 -5.19107 92.4524 +96.3601 -5.3085 94.5439 +95.5301 -5.35544 95.3799 +96.0246 -5.47794 97.5616 +95.7239 -5.55697 98.9691 +96.1631 -5.68086 101.176 +95.8208 -5.76047 102.593 +96.0689 -5.87741 104.676 +95.7526 -5.96167 106.177 +95.4173 -6.0461 107.68 +95.5878 -6.16444 109.788 +95.339 -6.25789 111.452 +95.1968 -6.36009 113.273 +95.3481 -6.48432 115.485 +95.4679 -6.60911 117.708 +95.4315 -6.72577 119.785 +95.4275 -6.84731 121.95 +95.4538 -6.97378 124.202 +95.2071 -7.08288 126.145 +95.3501 -7.22381 128.655 +95.1037 -7.33823 130.693 +95.1772 -7.48034 133.224 +94.8695 -7.59549 135.275 +94.873 -7.73861 137.824 +94.7273 -7.87304 140.218 +95.0987 -8.05468 143.453 +94.8761 -8.19018 145.866 +94.6722 -8.33089 148.372 +94.8026 -8.50524 151.477 +94.4677 -8.64208 153.915 +94.561 -8.82254 157.129 +94.6559 -9.00854 160.441 +94.6 -9.18558 163.594 +94.6438 -9.37787 167.019 +94.5864 -9.56601 170.37 +94.716 -9.77943 174.171 +94.5046 -9.96398 177.457 +94.6123 -10.1889 181.463 +94.7024 -10.4196 185.572 +94.6832 -10.6461 189.606 +94.5567 -10.8684 193.565 +94.368 -11.0914 197.536 +94.4552 -11.3556 202.241 +94.5915 -11.636 207.236 +94.2409 -11.8662 211.335 +94.2244 -12.1483 216.36 +94.3616 -12.4623 221.952 +94.2167 -12.7514 227.101 +94.2136 -13.0725 232.82 +94.484 -13.4467 239.485 +94.2866 -13.7698 245.239 +94.1708 -14.1199 251.475 +93.7819 -14.4447 257.259 +93.6328 -14.8229 263.995 +93.7311 -15.2604 271.787 +93.6366 -15.6885 279.41 +93.354 -16.1069 286.862 +93.3992 -16.6064 295.758 +93.3835 -17.1233 304.964 +93.5263 -17.7004 315.242 +93.1654 -18.2143 324.395 +93.1593 -18.8319 335.394 +93.0196 -19.4615 346.608 +93.1664 -20.1956 359.681 +95.8736 -21.5567 383.923 +107.595 -25.1242 447.46 +103.522 -25.1377 447.7 +99.454 -25.1491 447.903 +95.1404 -25.0926 446.896 +92.3273 -25.4403 453.089 +91.9699 -26.5246 472.4 +92.0289 -27.8364 495.763 +91.8078 -29.1888 519.849 +91.6179 -30.6923 546.626 +91.5924 -32.4192 577.383 +91.6123 -34.3645 612.028 +91.1723 -36.3677 647.705 +91.0812 -38.7842 690.742 +90.9023 -41.5036 739.176 +96.3925 -47.4284 844.696 +90.3753 -48.2042 858.512 +89.9512 -52.3703 932.71 +90.7378 -58.1423 1035.51 +89.3649 -63.6558 1133.7 +88.1443 -70.6651 1258.54 +87.3849 -80.0949 1426.48 +87.3539 -93.4418 1664.19 +79.0601 -101.512 1807.92 +66.9023 -107.402 1912.82 +85.7531 -183.585 3269.63 +57.1723 -183.62 3270.25 +28.5873 -183.641 3270.63 +1.41887e-13 -183.648 3270.75 +-28.5873 -183.641 3270.63 +-57.1723 -183.62 3270.25 +-85.7531 -183.585 3269.63 +-114.327 -183.536 3268.75 +-106.095 -136.225 2426.16 +-125.229 -133.957 2385.76 +-125.559 -115.084 2049.63 +-119.981 -96.1887 1713.11 +-142.325 -101.38 1805.57 +-120.502 -77.214 1375.17 +-137.97 -80.327 1430.62 +-110.006 -58.6743 1044.98 +-118.388 -58.2511 1037.45 +-127.999 -58.4411 1040.83 +-148.591 -63.273 1126.89 +-455.973 -181.883 3239.32 +-143.553 -53.8477 959.021 +-111.616 -39.5065 703.608 +-117.035 -39.2071 698.275 +-123.585 -39.292 699.786 +-146.062 -44.1799 786.84 +-625.224 -180.318 3211.44 +-653.269 -180.005 3205.87 +-681.264 -179.679 3200.06 +-709.208 -179.338 3194 +-142.641 -34.6367 616.876 +-146.884 -34.2985 610.853 +-158.096 -35.5471 633.091 +-142.692 -30.9311 550.879 +-142.635 -29.8421 531.485 +-146.821 -29.6794 528.586 +-151.325 -29.5848 526.903 +-108.977 -20.6245 367.32 +-111.247 -20.3989 363.302 +-114.208 -20.3063 361.652 +-117.21 -20.2229 360.169 +-120.83 -20.2446 360.554 +-124.953 -20.3437 362.319 +-1093.78 -173.156 3083.89 +-1120.7 -172.615 3074.25 +-1147.52 -172.06 3064.36 +-1174.26 -171.492 3054.25 +-1200.84 -170.9 3043.72 +-1227.4 -170.307 3033.14 +-381.229 -51.5961 918.922 +-413.12 -54.5606 971.719 +-158.503 -20.4357 363.958 +-161.393 -20.3216 361.925 +-164.758 -20.2673 360.959 +-168.118 -20.2113 359.962 +-408.684 -48.0338 855.477 +-140.98 -16.2043 288.597 +-141.311 -15.8889 282.98 +-144.641 -15.9141 283.429 +-147.667 -15.9024 283.22 +-411.257 -43.3605 772.246 +-412.408 -42.5812 758.368 +-415.046 -41.9758 747.584 +-416.689 -41.2881 735.337 +-418.5 -40.636 723.723 +-419.836 -39.9564 711.619 +-421.662 -39.341 700.659 +-428.815 -39.2288 698.662 +-427.433 -38.3472 682.96 +-429.41 -37.7867 672.978 +-432.117 -37.3025 664.355 +-434.098 -36.7672 654.82 +-436.786 -36.3024 646.543 +-439.645 -35.861 638.681 +-441.883 -35.3782 630.083 +-444.877 -34.9644 622.713 +-447.481 -34.5278 614.936 +-449.27 -34.0371 606.198 +-451.783 -33.6101 598.593 +-453.771 -33.1521 590.436 +-460.699 -33.0569 588.741 +-457.735 -32.26 574.547 +-467.27 -32.3485 576.124 +-465.673 -31.6688 564.018 +-468.206 -31.2809 557.11 +-471.434 -30.9441 551.111 +-473.74 -30.5515 544.119 +-476.358 -30.1842 537.577 +-479.7 -29.8667 531.923 +-482.507 -29.5192 525.735 +-484.423 -29.1222 518.664 +-488.319 -28.8475 513.772 +-490.915 -28.4986 507.558 +-493.58 -28.1574 501.481 +-496.035 -27.8078 495.255 +-498.847 -27.4816 489.445 +-502.027 -27.1781 484.04 +-2376.69 -126.438 2251.84 +-381.255 -19.9309 354.967 +-382.057 -19.6262 349.54 +-380.862 -19.2247 342.39 +-380.919 -18.8928 336.479 +-383.166 -18.6726 332.557 +-141.588 -6.7792 120.737 +-142.025 -6.68087 118.986 +-142.905 -6.60401 117.617 +-141.674 -6.43151 114.545 +-142.122 -6.33755 112.871 +-143.733 -6.2954 112.12 +-145.739 -6.26916 111.653 +-154.376 -6.52154 116.148 +-155.707 -6.45909 115.036 +-156.464 -6.37282 113.499 +-158.427 -6.33509 112.827 +-160.718 -6.3088 112.359 +-382.395 -14.7333 262.399 +-381.026 -14.4078 256.601 +-381.753 -14.1651 252.28 +-381.847 -13.9015 247.584 +-380.876 -13.6027 242.263 +-381.198 -13.3535 237.824 +-379.681 -13.0435 232.303 +-380.154 -12.8052 228.06 +-381.099 -12.5846 224.131 +-380.012 -12.2996 219.055 +-380.52 -12.0691 214.949 +-379.847 -11.8037 210.222 +-380.088 -11.5692 206.046 +-379.932 -11.325 201.696 +-379.02 -11.061 196.995 +-379.123 -10.8293 192.869 +-380.258 -10.6284 189.291 +-380.909 -10.415 185.49 +-379.718 -10.1534 180.831 +-380.287 -9.94122 177.052 +-380.091 -9.71059 172.945 +-379.395 -9.46958 168.652 +-379.663 -9.25454 164.822 +-378.512 -9.00714 160.416 +-378.513 -8.7894 156.538 +-380.424 -8.61652 153.459 +-379.052 -8.37052 149.078 +-379.314 -8.16265 145.376 +-381.319 -7.99245 142.345 +-113.139 -2.30852 41.1144 +-110.949 -2.20256 39.2273 +-109.68 -2.11717 37.7065 +-109.437 -2.05276 36.5594 +-108.801 -1.98181 35.2959 +-108.819 -1.92345 34.2565 +-108.158 -1.85376 33.0152 +-109.114 -1.81192 32.2701 +-109.007 -1.75229 31.2081 +-110.432 -1.71687 30.5773 +-111.081 -1.66859 29.7174 +-109.304 -1.58471 28.2234 +-109.546 -1.53117 27.27 +-110.17 -1.48276 26.4078 +-111.663 -1.4452 25.7389 +-111.2 -1.38203 24.6137 +-113.074 -1.34739 23.9968 +-114.553 -1.30655 23.2694 +-116.814 -1.27292 22.6706 +-125.955 -1.30869 23.3077 +-156.683 -1.5488 27.584 +-158.989 -1.49152 26.5639 +-159.709 -1.41807 25.2557 +-162.594 -1.36226 24.2617 +-3244.61 -25.5635 455.284 +-862.16 -6.36317 113.327 +-380.344 -2.61803 46.6269 +-379.942 -2.42679 43.2208 +-386.471 -2.27716 40.5559 +-404.23 -2.18203 38.8618 +-405.551 -1.98908 35.4253 +-403.353 -1.77961 31.6947 +-404.013 -1.58378 28.207 +-402.847 -1.38128 24.6005 +-403.047 -1.18415 21.0896 +-403.216 -0.986929 17.5771 +-402.755 -0.788459 14.0424 +-144.251 -0.211758 3.77139 +-144.978 -0.141866 2.52662 +-145.694 -0.0712784 1.26946 +119.4 4.88498e-15 0 +119.595 -0.0491063 1.04253 +119.482 -0.098127 2.08325 +120.059 -0.14792 3.14037 +120.726 -0.198359 4.21119 +119.886 -0.246279 5.22853 +119.436 -0.294508 6.25245 +120.076 -0.345547 7.33601 +119.708 -0.393851 8.36151 +120.228 -0.445201 9.45169 +120.44 -0.495778 10.5254 +121.04 -0.548366 11.6419 +120.238 -0.594603 12.6235 +121.017 -0.648744 13.7729 +119.8 -0.692096 14.6933 +120.262 -0.744944 15.8153 +120.813 -0.798878 16.9603 +120.363 -0.846366 17.9685 +120.893 -0.900907 19.1264 +120.721 -0.950508 20.1794 +120.245 -0.997587 21.1789 +119.957 -1.04606 22.2081 +120.544 -1.10246 23.4053 +120.433 -1.15285 24.4752 +120.117 -1.20128 25.5033 +120.573 -1.25768 26.7007 +120.432 -1.3082 27.7732 +120.963 -1.36638 29.0084 +120.705 -1.41599 30.0618 +121.115 -1.47374 31.2878 +120.837 -1.52342 32.3424 +121.321 -1.58303 33.608 +120.831 -1.63019 34.6092 +121.387 -1.69177 35.9165 +121.259 -1.7443 37.0316 +120.836 -1.7926 38.0572 +121.26 -1.85378 39.3561 +121.954 -1.91992 40.7602 +121.877 -1.97451 41.9192 +121.695 -2.02762 43.0468 +121.032 -2.07269 44.0034 +117.365 -2.06463 43.8324 +113.617 -2.05204 43.5651 +110.72 -2.05205 43.5653 +108.017 -2.05337 43.5934 +105.507 -2.05623 43.654 +102.176 -2.04064 43.3232 +99.5927 -2.03749 43.2561 +97.2012 -2.0362 43.2289 +96.3649 -2.06628 43.8674 +97.1562 -2.13162 45.2545 +96.7571 -2.17143 46.0997 +97.7888 -2.24407 47.642 +97.1004 -2.27784 48.3589 +96.8524 -2.32189 49.2941 +96.5068 -2.36374 50.1826 +96.6828 -2.41874 51.3502 +97.0214 -2.47855 52.62 +96.4706 -2.51601 53.4153 +96.7836 -2.57638 54.6969 +96.3886 -2.61837 55.5884 +96.5886 -2.67695 56.8321 +96.6028 -2.73105 57.9805 +97.1157 -2.80011 59.4467 +96.4231 -2.83489 60.1851 +96.484 -2.89207 61.399 +95.9439 -2.93157 62.2377 +96.0636 -2.99163 63.5127 +96.2513 -3.05464 64.8504 +96.3404 -3.11536 66.1396 +95.7589 -3.1548 66.9768 +95.9028 -3.21859 68.331 +95.9494 -3.27996 69.6341 +95.9805 -3.34162 70.9431 +95.996 -3.40356 72.2581 +96.1544 -3.47149 73.7002 +96.1373 -3.53401 75.0275 +96.1043 -3.59678 76.3601 +96.0552 -3.65979 77.6979 +96.0673 -3.72602 79.104 +96.062 -3.79255 80.5163 +95.9632 -3.85629 81.8695 +95.9236 -3.92332 83.2928 +95.8663 -3.99062 84.7215 +96.3859 -4.08335 86.6901 +96.2884 -4.15138 88.1344 +96.0999 -4.21643 89.5154 +95.967 -4.28487 90.9684 +95.8161 -4.35353 92.426 +95.6469 -4.42238 93.8878 +96.0958 -4.52137 95.9894 +96.0246 -4.59757 97.6071 +95.7239 -4.6639 99.0152 +96.0943 -4.76444 101.15 +95.6844 -4.82782 102.495 +96.0689 -4.93284 104.725 +95.6857 -5.00007 106.152 +95.4173 -5.07441 107.731 +95.5878 -5.17374 109.839 +95.2091 -5.24502 111.353 +95.1968 -5.33794 113.325 +95.4117 -5.44583 115.616 +95.405 -5.54327 117.685 +95.4315 -5.64486 119.841 +94.935 -5.71717 121.376 +95.332 -5.84553 124.101 +95.3275 -5.9521 126.364 +95.1122 -6.04775 128.395 +95.1037 -6.15888 130.754 +95.1772 -6.27816 133.286 +95.4431 -6.41333 136.156 +94.8164 -6.49106 137.806 +94.7273 -6.60775 140.283 +95.0435 -6.75624 143.436 +94.8217 -6.87001 145.851 +94.5647 -6.98406 148.273 +94.6966 -7.13034 151.378 +94.8857 -7.28528 154.668 +94.5095 -7.4006 157.116 +94.6052 -7.55671 160.43 +94.65 -7.71344 163.757 +94.6438 -7.87073 167.097 +94.5379 -8.02454 170.362 +94.2389 -8.1664 173.374 +94.5046 -8.36264 177.54 +94.6585 -8.55555 181.636 +94.7024 -8.74502 185.658 +94.6832 -8.93516 189.695 +94.206 -9.08788 192.937 +94.368 -9.30883 197.628 +94.4974 -9.53482 202.426 +94.1768 -9.72311 206.423 +94.2409 -9.95912 211.434 +94.1845 -10.1916 216.37 +94.3225 -10.4551 221.964 +94.2167 -10.7021 227.207 +94.251 -10.9759 233.021 +94.4474 -11.2813 239.503 +94.2508 -11.5524 245.26 +94.1007 -11.8419 251.405 +93.7819 -12.1233 257.379 +93.8999 -12.4762 264.871 +93.6334 -12.7945 271.63 +93.6049 -13.1627 279.445 +93.4467 -13.5317 287.28 +93.4894 -13.951 296.183 +93.3543 -14.3668 305.01 +93.1286 -14.7926 314.049 +93.2206 -15.2961 324.739 +93.1593 -15.8054 335.55 +93.2007 -16.3656 347.445 +93.1414 -16.9453 359.752 +95.8495 -18.0877 384.005 +107.618 -21.0911 447.767 +103.477 -21.0886 447.714 +99.2376 -21.0614 447.136 +95.182 -21.0691 447.3 +92.2675 -21.3379 453.007 +92.0844 -22.2895 473.208 +92.0289 -23.3627 495.994 +91.6515 -24.4561 519.206 +91.6179 -25.7596 546.881 +91.5924 -27.209 577.652 +91.4497 -28.7905 611.226 +91.1584 -30.5183 647.908 +90.9637 -32.5091 690.173 +91.1217 -34.9176 741.305 +96.3925 -39.8061 845.089 +90.2708 -40.4104 857.918 +89.9512 -43.9537 933.144 +90.6681 -48.7605 1035.19 +89.3649 -53.4256 1134.23 +88.0885 -59.2707 1258.32 +87.5253 -67.3309 1429.45 +87.2911 -78.3681 1663.77 +79.0252 -85.1608 1807.98 +66.8814 -90.1128 1913.11 +85.7531 -154.081 3271.15 +57.1723 -154.11 3271.77 +28.5873 -154.128 3272.15 +1.44662e-13 -154.133 3272.27 +-28.5873 -154.128 3272.15 +-57.1723 -154.11 3271.77 +-85.7531 -154.081 3271.15 +-114.327 -154.039 3270.27 +-119.107 -128.354 2724.98 +-125.287 -112.48 2387.97 +-125.516 -96.556 2049.9 +-120.016 -80.7535 1714.41 +-142.325 -85.0869 1806.41 +-120.467 -64.7859 1375.42 +-136.676 -66.7851 1417.86 +-110.037 -49.2587 1045.77 +-118.478 -48.9266 1038.72 +-127.938 -49.0254 1040.82 +-148.891 -53.2115 1129.69 +-455.973 -152.652 3240.83 +-143.523 -45.1844 959.27 +-111.616 -33.1574 703.936 +-117.101 -32.9246 698.995 +-123.638 -32.9911 700.406 +-146.025 -37.0704 787.009 +-625.224 -151.338 3212.94 +-653.269 -151.076 3207.36 +-681.264 -150.802 3201.55 +-709.208 -150.516 3195.49 +-142.889 -29.1206 618.235 +-146.86 -28.7817 611.041 +-159.112 -30.026 637.456 +-142.792 -25.9783 551.524 +-142.635 -25.0461 531.732 +-146.767 -24.9004 528.64 +-151.408 -24.8437 527.436 +-109.005 -17.3144 367.587 +-110.984 -17.08 362.611 +-114.088 -17.0248 361.439 +-117.21 -16.9729 360.336 +-120.798 -16.9866 360.627 +-124.953 -17.0742 362.488 +-1093.78 -145.328 3085.33 +-1120.7 -144.873 3075.68 +-1147.52 -144.407 3065.79 +-1174.26 -143.931 3055.67 +-1200.84 -143.434 3045.13 +-380.713 -44.3357 941.253 +-382.454 -43.4431 922.302 +-412.886 -45.766 971.62 +-158.902 -17.1946 365.043 +-161.718 -17.09 362.824 +-164.675 -17.0016 360.946 +-168.287 -16.9802 360.492 +-408.899 -40.3354 856.327 +-141.462 -13.6466 289.72 +-141.311 -13.3354 283.112 +-144.46 -13.3397 283.204 +-147.436 -13.3258 282.909 +-410.975 -36.367 772.076 +-412.647 -35.7586 759.159 +-415.191 -35.2421 748.194 +-416.541 -34.6403 735.419 +-418.7 -34.1216 724.407 +-420.496 -33.5876 713.069 +-422.28 -33.0668 702.013 +-428.501 -32.9002 698.476 +-431.195 -32.4676 689.293 +-429.625 -31.7298 673.629 +-431.953 -31.2957 664.413 +-434.595 -30.8936 655.875 +-437.121 -30.4916 647.341 +-439.645 -30.0977 638.979 +-442.055 -29.704 630.621 +-444.877 -29.3452 623.003 +-446.893 -28.9407 614.415 +-449.091 -28.5556 606.24 +-451.482 -28.1897 598.472 +-453.953 -27.8354 590.949 +-460.145 -27.7109 588.307 +-458.233 -27.1049 575.44 +-468.97 -27.2484 578.488 +-465.037 -26.5429 563.51 +-468.206 -26.2537 557.369 +-471.24 -25.9602 551.14 +-474.199 -25.6663 544.9 +-476.623 -25.3473 538.127 +-479.7 -25.0668 532.171 +-483.047 -24.8029 526.569 +-485.31 -24.4866 519.855 +-488.319 -24.2114 514.011 +-490.568 -23.9016 507.435 +-493.37 -23.6221 501.501 +-496.46 -23.3588 495.91 +-499.061 -23.0749 489.883 +-502.243 -22.82 484.473 +-381.039 -17.0132 361.193 +-381.913 -16.7566 355.746 +-379.108 -16.3448 347.003 +-380.342 -16.113 342.082 +-381.443 -15.8783 337.098 +-380.826 -15.576 330.68 +-141.588 -5.6897 120.793 +-141.412 -5.58298 118.528 +-142.133 -5.51274 117.036 +-140.897 -5.36829 113.97 +-142.043 -5.31607 112.861 +-142.945 -5.25466 111.557 +-145.263 -5.24445 111.341 +-154.696 -5.48479 116.443 +-156.109 -5.43506 115.387 +-156.221 -5.3403 113.375 +-158.183 -5.30877 112.706 +-159.98 -5.27057 111.895 +-380.005 -12.2882 260.881 +-379.533 -12.0449 255.715 +-379.918 -11.8315 251.184 +-380.253 -11.6186 246.666 +-381.129 -11.4242 242.537 +-380.858 -11.1974 237.723 +-379.34 -10.9374 232.203 +-379.382 -10.7255 227.704 +-378.858 -10.5001 222.918 +-379.925 -10.3206 219.107 +-379.91 -10.1132 214.705 +-379.847 -9.90666 210.32 +-379.473 -9.69418 205.809 +-379.138 -9.48499 201.368 +-379.197 -9.28771 197.179 +-377.163 -9.04191 191.961 +-379.094 -8.893 188.8 +-379.74 -8.71435 185.007 +-378.996 -8.50544 180.572 +-380.015 -8.33757 177.008 +-379.272 -8.13242 172.653 +-380.766 -7.9764 169.34 +-380.03 -7.77475 165.059 +-379.34 -7.5761 160.842 +-379.068 -7.38766 156.841 +-378.662 -7.19823 152.82 +-379.052 -7.02528 149.148 +-379.5 -6.8542 145.516 +-379.821 -6.68162 141.852 +-113.421 -1.94234 41.2361 +-110.949 -1.84858 39.2456 +-109.775 -1.77844 37.7566 +-109.437 -1.72285 36.5764 +-108.896 -1.66477 35.3432 +-108.819 -1.61433 34.2725 +-108.541 -1.56134 33.1474 +-108.922 -1.51805 32.2284 +-108.334 -1.4616 31.0299 +-110.528 -1.44221 30.6183 +-110.792 -1.39677 29.6536 +-109.207 -1.32885 28.2116 +-110.517 -1.29648 27.5244 +-110.17 -1.24446 26.4201 +-110.688 -1.20235 25.5261 +-112.079 -1.16908 24.8198 +-113.074 -1.13084 24.008 +-113.769 -1.08906 23.121 +-117.403 -1.07373 22.7955 +-125.365 -1.09322 23.2093 +-156.978 -1.30234 27.6488 +-159.384 -1.25492 26.6422 +-160.894 -1.199 25.455 +-163.979 -1.15306 24.4797 +-3244.61 -21.4551 455.496 +-861.665 -5.33743 113.314 +-379.55 -2.19269 46.5512 +-380.339 -2.0389 43.2862 +-3258.55 -16.1143 342.109 +-404.23 -1.83135 38.8799 +-404.156 -1.66367 35.3199 +-403.353 -1.4936 31.7094 +-404.013 -1.32925 28.2201 +-403.845 -1.16216 24.6728 +-402.548 -0.992609 21.0732 +-402.716 -0.827292 17.5635 +-402.854 -0.661909 14.0524 +-146.45 -0.180436 3.83067 +-144.678 -0.11882 2.52256 +-146.694 -0.0602333 1.27876 +120.1 6.21725e-15 5.68434e-14 +119.595 -0.0397009 1.04293 +119.482 -0.0793326 2.08405 +120.059 -0.119589 3.14157 +119.927 -0.159305 4.18491 +119.886 -0.199109 5.23054 +120.335 -0.239892 6.30192 +120.076 -0.279364 7.33882 +120.506 -0.320539 8.42048 +119.53 -0.357842 9.40044 +120.34 -0.40049 10.5208 +120.045 -0.439693 11.5506 +120.238 -0.480718 12.6284 +120.123 -0.520613 13.6764 +120.594 -0.563247 14.7964 +120.262 -0.602264 15.8213 +120.813 -0.645868 16.9668 +120.462 -0.684824 17.9902 +120.893 -0.728356 19.1337 +120.623 -0.767829 20.1707 +120.245 -0.806518 21.1871 +119.957 -0.84571 22.2166 +120.544 -0.891303 23.4143 +120.335 -0.931286 24.4647 +120.899 -0.977522 25.6793 +120.573 -1.01679 26.711 +120.432 -1.05764 27.7839 +120.185 -1.09757 28.8329 +120.511 -1.14295 30.025 +121.115 -1.19148 31.2998 +120.837 -1.23164 32.3549 +121.321 -1.27983 33.6209 +120.927 -1.31901 34.6501 +120.524 -1.35802 35.6749 +121.259 -1.41021 37.0459 +120.836 -1.44926 38.0718 +121.355 -1.4999 39.4021 +121.291 -1.54375 40.5539 +121.783 -1.5951 41.9029 +121.695 -1.63927 43.0633 +121.032 -1.6757 44.0203 +117.365 -1.66919 43.8492 +114.457 -1.67128 43.9041 +110.72 -1.65902 43.582 +108.017 -1.66009 43.6101 +105.415 -1.66094 43.6326 +102.176 -1.6498 43.3398 +98.7674 -1.6336 42.9142 +97.2012 -1.64621 43.2455 +96.5469 -1.67368 43.9672 +97.2468 -1.72495 45.3141 +96.7571 -1.75553 46.1174 +97.7888 -1.81426 47.6603 +97.5478 -1.85005 48.6004 +96.8524 -1.87718 49.3131 +96.5068 -1.91101 50.2018 +96.7711 -1.95726 51.4169 +96.9335 -2.00202 52.5925 +96.558 -2.03596 53.4843 +96.8706 -2.08479 54.767 +97.0814 -2.13209 56.0094 +96.5886 -2.16423 56.8539 +96.7742 -2.21188 58.1057 +96.8599 -2.25784 59.3128 +96.4231 -2.29192 60.2082 +96.484 -2.33815 61.4226 +96.6987 -2.38873 62.7515 +95.9803 -2.41654 63.4819 +96.2513 -2.46958 64.8753 +96.2579 -2.51652 66.1083 +95.677 -2.54837 66.9452 +95.8214 -2.59992 68.2992 +95.9494 -2.65175 69.6608 +95.9805 -2.7016 70.9704 +95.996 -2.75167 72.2858 +96.0751 -2.80427 73.6676 +96.0585 -2.85479 74.9948 +96.1825 -2.91025 76.4516 +96.133 -2.96122 77.7906 +96.0673 -3.01237 79.1344 +96.1386 -3.0686 80.6114 +95.9632 -3.11769 81.901 +95.9236 -3.17189 83.3248 +95.9412 -3.22881 84.8202 +95.7914 -3.2809 86.1885 +96.2884 -3.35626 88.1682 +96.173 -3.41144 89.6179 +95.967 -3.46419 91.0034 +95.888 -3.52234 92.531 +96.3601 -3.60202 94.6243 +95.5301 -3.63387 95.461 +96.0246 -3.71699 97.6446 +95.7934 -3.77335 99.1252 +96.0943 -3.85191 101.189 +95.8208 -3.9087 102.681 +95.596 -3.96842 104.249 +95.7526 -4.04522 106.267 +95.4173 -4.10251 107.772 +95.5878 -4.18281 109.881 +95.7286 -4.26356 112.003 +95.6468 -4.33595 113.905 +95.3481 -4.39986 115.583 +95.4679 -4.48453 117.808 +95.4937 -4.56666 119.965 +95.5507 -4.65213 122.21 +95.4538 -4.73198 124.308 +95.3877 -4.81513 126.492 +95.1716 -4.89246 128.524 +95.0449 -4.97619 130.723 +95.003 -5.06638 133.093 +94.9843 -5.16007 135.554 +94.8164 -5.24782 137.859 +94.6714 -5.339 140.254 +95.0435 -5.46221 143.491 +94.7127 -5.5478 145.739 +94.511 -5.6432 148.246 +94.6966 -5.76466 151.436 +94.8857 -5.88992 154.727 +94.5095 -5.98315 157.176 +94.6052 -6.10937 160.492 +94.75 -6.24266 163.993 +94.5453 -6.35662 166.987 +94.5864 -6.4909 170.515 +94.6683 -6.63237 174.231 +94.4107 -6.75424 177.432 +94.7046 -6.92028 181.794 +94.2938 -7.03957 184.928 +94.2816 -7.19317 188.963 +94.206 -7.34727 193.011 +94.4111 -7.52933 197.794 +94.4129 -7.70172 202.322 +94.1768 -7.86084 206.502 +94.2409 -8.05164 211.515 +94.1845 -8.23963 216.453 +94.3616 -8.45615 222.141 +94.5228 -8.68042 228.033 +94.251 -8.8737 233.11 +94.3741 -9.1135 239.41 +94.2149 -9.33622 245.26 +94.1007 -9.57381 251.502 +93.7819 -9.80128 257.478 +93.6996 -10.0651 264.407 +93.6334 -10.344 271.734 +93.6049 -10.6416 279.553 +93.3231 -10.9255 287.011 +93.4894 -11.279 296.296 +93.2958 -11.6079 304.936 +93.2706 -11.9776 314.648 +93.2206 -12.3664 324.864 +93.2395 -12.7891 335.968 +92.9937 -13.2017 346.806 +93.0913 -13.6924 359.696 +96.043 -14.6529 384.928 +107.595 -17.0477 447.841 +103.522 -17.0569 448.08 +99.151 -17.0126 446.917 +95.0364 -17.0077 446.787 +92.3074 -17.2585 453.377 +91.9318 -17.9905 472.606 +91.9743 -18.8768 495.89 +91.6515 -19.772 519.406 +91.6014 -20.8221 546.993 +91.5924 -21.9976 577.873 +91.5827 -23.3101 612.35 +91.047 -24.6429 647.364 +90.9637 -26.2826 690.438 +91.012 -28.1958 740.697 +96.3812 -32.1782 845.315 +90.2708 -32.6705 858.247 +89.865 -35.5012 932.608 +90.8163 -39.4856 1037.28 +89.3492 -43.1853 1134.47 +88.0815 -47.9147 1258.71 +87.4826 -54.4083 1429.29 +87.3382 -63.3924 1665.3 +79.0645 -68.8837 1809.56 +66.8465 -72.8154 1912.84 +85.7531 -124.569 3272.41 +57.1723 -124.593 3273.03 +28.5873 -124.607 3273.41 +1.54432e-13 -124.612 3273.53 +-28.5873 -124.607 3273.41 +-57.1723 -124.593 3273.03 +-85.7531 -124.569 3272.41 +-114.327 -124.536 3271.53 +-119.094 -103.759 2725.73 +-125.277 -90.9292 2388.69 +-125.528 -78.0697 2050.87 +-119.967 -65.2601 1714.37 +-142.176 -68.7178 1805.2 +-120.493 -52.3888 1376.24 +-136.695 -54.0013 1418.6 +-110.1 -39.847 1046.77 +-118.478 -39.5556 1039.12 +-127.938 -39.6355 1041.22 +-148.774 -42.986 1129.23 +-455.973 -123.414 3242.07 +-143.449 -36.5114 959.145 +-111.632 -26.8104 704.304 +-116.92 -26.5773 698.179 +-123.638 -26.6723 700.676 +-146.098 -29.9852 787.704 +-625.224 -122.352 3214.17 +-653.269 -122.14 3208.6 +-681.264 -121.919 3202.78 +-709.208 -121.688 3196.71 +-142.664 -23.506 617.498 +-146.534 -23.2174 609.915 +-160.322 -24.4596 642.55 +-142.667 -20.9843 551.252 +-142.635 -20.249 531.937 +-146.447 -20.0872 527.687 +-151.545 -20.1037 528.119 +-109.033 -14.0018 367.825 +-111.218 -13.8378 363.515 +-114.088 -13.764 361.578 +-117.396 -13.7437 361.045 +-120.766 -13.7295 360.671 +-125.181 -13.8292 363.289 +-1093.78 -117.493 3086.51 +-1120.7 -117.126 3076.86 +-1147.52 -116.749 3066.97 +-1174.26 -116.364 3056.85 +-382.078 -36.8963 969.258 +-1227.4 -115.559 3035.72 +-382.951 -35.168 923.857 +-413.237 -37.032 972.821 +-158.622 -13.8769 364.542 +-161.678 -13.8133 362.871 +-164.426 -13.7245 360.539 +-168.794 -13.7693 361.717 +-408.254 -32.5584 855.303 +-141.375 -11.026 289.651 +-141.712 -10.8119 284.025 +-144.505 -10.7881 283.402 +-147.76 -10.7971 283.638 +-409.708 -29.3109 769.99 +-412.647 -28.9097 759.451 +-415.191 -28.4921 748.482 +-416.393 -27.9957 735.44 +-418.65 -27.583 724.598 +-420.14 -27.1316 712.741 +-421.971 -26.7139 701.769 +-428.658 -26.6085 699 +-432.997 -26.3587 692.438 +-429.141 -25.6237 673.129 +-432.28 -25.3208 665.171 +-434.098 -24.9479 655.376 +-436.953 -24.642 647.341 +-439.475 -24.3237 638.977 +-442.572 -24.0429 631.601 +-444.818 -23.7216 623.161 +-447.069 -23.4068 614.893 +-449.686 -23.1169 607.276 +-451.783 -22.8057 599.102 +-453.771 -22.495 590.938 +-459.591 -22.3764 587.824 +-459.603 -21.9789 577.382 +-469.725 -22.065 579.642 +-464.782 -21.4474 563.418 +-468.206 -21.2253 557.583 +-471.24 -20.9881 551.352 +-473.543 -20.7217 544.355 +-477.153 -20.5153 538.933 +-479.7 -20.2657 532.375 +-482.439 -20.0272 526.109 +-485.378 -19.7995 520.127 +-488.525 -19.5824 514.425 +-491.123 -19.3456 508.205 +-493.65 -19.1086 501.978 +-496.46 -18.8848 496.101 +-499.489 -18.6713 490.492 +-501.811 -18.4335 484.243 +-383.07 -13.8279 363.257 +-381.255 -13.5239 355.269 +-382.499 -13.3325 350.242 +-381.01 -13.0498 342.815 +-381.069 -12.8245 336.897 +-381.053 -12.6002 331.004 +-141.359 -4.59252 120.645 +-141.412 -4.51367 118.573 +-142.905 -4.48107 117.717 +-141.596 -4.36163 114.579 +-141.965 -4.29552 112.842 +-142.945 -4.24823 111.6 +-146.136 -4.26547 112.053 +-154.855 -4.43885 116.608 +-155.868 -4.38727 115.253 +-156.949 -4.33759 113.947 +-158.183 -4.29198 112.749 +-160.554 -4.27638 112.34 +-381.241 -9.96698 261.83 +-380.528 -9.76347 256.484 +-382.003 -9.61786 252.659 +-380.589 -9.4016 246.978 +-380.117 -9.21156 241.986 +-380.434 -9.04271 237.55 +-381.386 -8.89025 233.545 +-379.382 -8.67122 227.791 +-378.255 -8.47543 222.648 +-379.492 -8.33434 218.941 +-379.388 -8.16496 214.492 +-380.197 -8.0166 210.594 +-379.385 -7.83562 205.84 +-379.579 -7.67726 201.68 +-379.552 -7.51582 197.439 +-378.767 -7.34118 192.851 +-378.02 -7.16936 188.338 +-380.1 -7.05194 185.253 +-379.627 -6.88784 180.942 +-380.015 -6.74066 177.076 +-378.362 -6.55903 172.304 +-380.492 -6.44403 169.283 +-379.204 -6.27198 164.764 +-379.34 -6.12504 160.903 +-378.791 -5.96832 156.786 +-378.569 -5.81814 152.841 +-378.866 -5.6769 149.131 +-378.66 -5.52912 145.249 +-379.914 -5.40321 141.941 +-114.267 -1.58203 41.5595 +-110.855 -1.49325 39.2273 +-109.775 -1.43782 37.7711 +-109.437 -1.39287 36.5905 +-108.611 -1.34238 35.2642 +-108.628 -1.30285 34.2256 +-108.062 -1.25673 33.0141 +-108.634 -1.22405 32.1556 +-109.103 -1.19004 31.2622 +-109.95 -1.15988 30.4698 +-110.116 -1.12236 29.484 +-109.11 -1.07338 28.1974 +-109.643 -1.03988 27.3174 +-110.072 -1.00522 26.4069 +-110.688 -0.972064 25.5359 +-112.274 -0.946814 24.8726 +-113.074 -0.914252 24.0172 +-113.769 -0.880474 23.1298 +-117.403 -0.86808 22.8043 +-125.758 -0.886609 23.291 +-158.16 -1.06083 27.8677 +-157.411 -1.00201 26.3225 +-159.709 -0.962216 25.2772 +-161.902 -0.920407 24.1789 +-850.244 -4.54543 119.408 +-862.16 -4.31765 113.424 +-380.145 -1.77551 46.6422 +-379.942 -1.64667 43.2576 +-3258.55 -13.0279 342.24 +-403.135 -1.47658 38.7894 +-403.459 -1.3427 35.2726 +-403.353 -1.20753 31.7216 +-403.614 -1.07359 28.2031 +-403.147 -0.937947 24.6397 +-403.546 -0.804487 21.1337 +-403.715 -0.670498 17.6138 +-3274.5 -4.34968 114.265 +-146.45 -0.145877 3.83214 +-145.278 -0.0964604 2.53399 +-146.694 -0.0486968 1.27925 +119.2 7.10543e-15 2.84217e-14 +119.595 -0.0302905 1.04325 +120.282 -0.0609333 2.09864 +120.059 -0.0912424 3.14253 +119.927 -0.121544 4.18618 +119.886 -0.151913 5.23213 +120.335 -0.18303 6.30382 +120.076 -0.213145 7.34105 +120.506 -0.24456 8.42303 +120.228 -0.274616 9.45818 +120.241 -0.305308 10.5153 +120.144 -0.33575 11.5637 +120.238 -0.366772 12.6322 +120.123 -0.397211 13.6805 +120.396 -0.429034 14.7766 +120.262 -0.459507 15.8261 +120.813 -0.492776 16.9719 +120.462 -0.522498 17.9956 +120.893 -0.555711 19.1395 +120.721 -0.586307 20.1933 +120.245 -0.615347 21.1935 +120.842 -0.650008 22.3873 +120.544 -0.680035 23.4214 +120.335 -0.71054 24.4721 +120.801 -0.745214 25.6663 +120.67 -0.776407 26.7406 +120.53 -0.807592 27.8147 +120.963 -0.842831 29.0284 +120.802 -0.874137 30.1066 +121.018 -0.908332 31.2843 +121.031 -0.9412 32.4163 +121.225 -0.975696 33.6044 +120.927 -1.00636 34.6606 +120.524 -1.03612 35.6857 +120.399 -1.06831 36.7941 +120.836 -1.10574 38.0834 +121.355 -1.14437 39.414 +121.101 -1.17599 40.5027 +121.783 -1.21701 41.9155 +121.695 -1.25071 43.0763 +121.784 -1.28645 44.3071 +117.365 -1.27354 43.8625 +113.617 -1.26577 43.595 +110.813 -1.26684 43.6319 +108.11 -1.26768 43.6607 +105.415 -1.26724 43.6458 +102.912 -1.26781 43.6653 +99.6844 -1.25795 43.3257 +97.2012 -1.256 43.2586 +96.5469 -1.27696 43.9805 +97.1562 -1.31486 45.2856 +96.7571 -1.33941 46.1314 +97.7888 -1.38422 47.6747 +97.9058 -1.4167 48.7934 +96.0505 -1.42037 48.9196 +96.3294 -1.45536 50.1248 +97.4774 -1.50423 51.8079 +97.0214 -1.52886 52.6561 +96.558 -1.55337 53.5005 +96.8706 -1.59063 54.7836 +96.302 -1.61365 55.5766 +96.4163 -1.64829 56.7696 +96.6028 -1.6846 58.0203 +96.9452 -1.72417 59.3831 +96.4231 -1.74866 60.2264 +96.484 -1.78393 61.4412 +96.6987 -1.82252 62.7704 +96.0636 -1.84534 63.5563 +96.2513 -1.88421 64.895 +96.3404 -1.92166 66.185 +95.8408 -1.94765 67.0801 +96.5541 -1.99882 68.8424 +95.9494 -2.0232 69.6819 +95.9001 -2.05951 70.9325 +96.0759 -2.10118 72.3678 +96.0751 -2.13957 73.6899 +96.1373 -2.1799 75.0791 +96.1043 -2.21862 76.4126 +96.0552 -2.25749 77.7512 +96.0673 -2.29834 79.1583 +96.062 -2.33938 80.5716 +95.9632 -2.37869 81.9258 +95.9236 -2.42004 83.35 +95.8663 -2.46155 84.7797 +95.7914 -2.50322 86.2146 +96.2884 -2.56072 88.1949 +96.173 -2.60282 89.645 +95.967 -2.64306 91.0309 +95.8161 -2.68541 92.4895 +95.7182 -2.72991 94.0224 +96.1665 -2.79099 96.126 +96.0246 -2.83594 97.6741 +95.585 -2.87268 98.9395 +96.1631 -2.94099 101.292 +95.6844 -2.97797 102.566 +96.204 -3.04701 104.944 +95.7526 -3.08637 106.299 +96.0136 -3.14964 108.478 +95.5222 -3.18917 109.84 +95.7936 -3.25516 112.113 +95.1326 -3.29043 113.327 +95.2845 -3.35468 115.54 +95.5308 -3.42381 117.921 +95.4937 -3.48421 120.001 +94.9966 -3.52885 121.539 +95.332 -3.60573 124.187 +95.147 -3.6645 126.211 +95.4096 -3.74213 128.885 +95.0449 -3.79666 130.763 +94.9449 -3.86313 133.052 +95.099 -3.94169 135.758 +95.1562 -4.01825 138.395 +94.6714 -4.07348 140.297 +95.0435 -4.16749 143.535 +94.8217 -4.23766 145.951 +94.5647 -4.30801 148.374 +94.7496 -4.40071 151.567 +94.3632 -4.46909 153.922 +94.5095 -4.56495 157.224 +94.6052 -4.66124 160.54 +94.65 -4.75792 163.87 +94.4961 -4.84737 166.951 +94.5379 -4.94982 170.479 +94.1911 -5.03476 173.405 +94.5046 -5.15837 177.662 +94.6585 -5.27736 181.76 +94.2938 -5.37096 184.984 +94.2816 -5.48815 189.02 +94.2498 -5.60834 193.16 +94.325 -5.73937 197.673 +94.4552 -5.8788 202.475 +94.2183 -6.0002 206.656 +94.2002 -6.14049 211.488 +94.1845 -6.28656 216.519 +94.0881 -6.43307 221.565 +94.1784 -6.59876 227.271 +94.2136 -6.76767 233.089 +94.3741 -6.9533 239.482 +94.2149 -7.12322 245.335 +94.1007 -7.3045 251.578 +93.6451 -7.46714 257.18 +93.6662 -7.6766 264.394 +93.666 -7.89487 271.911 +93.5731 -8.11646 279.543 +93.2613 -8.3303 286.908 +93.5496 -8.611 296.576 +93.2958 -8.85642 305.028 +93.3842 -9.14963 315.127 +93.0552 -9.41844 324.385 +93.1593 -9.74929 335.78 +93.1749 -10.0921 347.587 +92.891 -10.4244 359.032 +95.4624 -11.1121 382.718 +107.595 -13.0069 447.976 +103.432 -13.0025 447.826 +99.3674 -13.0084 448.028 +95.2236 -13.0018 447.803 +92.2874 -13.1648 453.416 +91.989 -13.7347 473.043 +91.956 -14.3995 495.941 +91.6515 -15.0854 519.563 +91.5849 -15.8837 547.059 +91.5767 -16.7806 577.949 +91.3314 -17.736 610.856 +91.0749 -18.8075 647.758 +90.7679 -20.0096 689.161 +90.9145 -21.4894 740.127 +96.3925 -24.5538 845.67 +90.1035 -24.8803 856.917 +89.6925 -27.0342 931.1 +90.7378 -30.1004 1036.7 +89.2943 -32.9286 1134.11 +88.0815 -36.5573 1259.09 +87.2017 -41.3785 1425.14 +87.2964 -48.3431 1665.01 +79.0383 -52.5388 1809.52 +66.8814 -55.5848 1914.42 +85.7531 -95.0423 3273.4 +57.1723 -95.0603 3274.02 +28.5873 -95.0713 3274.4 +1.52212e-13 -95.0748 3274.52 +-28.5873 -95.0713 3274.4 +-57.1723 -95.0603 3274.02 +-85.7531 -95.0423 3273.4 +-114.327 -95.0167 3272.52 +-119.181 -79.2227 2728.55 +-125.245 -69.3585 2388.81 +-125.546 -59.5733 2051.8 +-119.953 -49.7855 1714.69 +-142.215 -52.4439 1806.25 +-120.502 -39.9738 1376.76 +-137.146 -41.337 1423.71 +-154.389 -42.6314 1468.29 +-118.422 -30.1654 1038.94 +-127.89 -30.2293 1041.14 +-148.735 -32.7882 1129.27 +-455.973 -94.1612 3243.05 +-143.508 -27.8684 959.832 +-111.679 -20.4641 704.814 +-117.167 -20.3205 699.869 +-123.69 -20.3587 701.184 +-146.062 -22.872 787.747 +-625.224 -93.3509 3215.15 +-653.269 -93.1889 3209.57 +-681.264 -93.02 3203.75 +-709.208 -92.8438 3197.68 +-142.866 -17.9598 618.561 +-146.44 -17.7028 609.711 +-160.297 -18.6591 642.647 +-142.591 -16.0018 551.128 +-142.842 -15.4717 532.869 +-146.366 -15.3175 527.558 +-151.38 -15.3217 527.703 +-109.033 -10.6829 367.936 +-111.189 -10.555 363.53 +-113.998 -10.4932 361.402 +-117.179 -10.4667 360.489 +-120.544 -10.4559 360.116 +-124.986 -10.5347 362.832 +-1093.78 -89.6432 3087.45 +-1120.7 -89.3629 3077.79 +-1147.52 -89.0756 3067.9 +-1174.26 -88.7816 3057.77 +-1200.84 -88.4754 3047.23 +-1227.4 -88.168 3036.64 +-1253.86 -87.8537 3025.81 +-413.237 -28.2542 973.116 +-158.503 -10.5796 364.377 +-161.474 -10.5258 362.525 +-164.094 -10.4502 359.92 +-167.864 -10.4477 359.833 +-408.684 -24.8672 856.463 +-141.243 -8.40465 289.469 +-141.311 -8.22573 283.307 +-144.097 -8.20771 282.686 +-147.621 -8.23011 283.458 +-410.975 -22.4324 772.606 +-412.551 -22.052 759.505 +-415.191 -21.7385 748.708 +-416.246 -21.3522 735.402 +-418.65 -21.0449 724.818 +-419.988 -20.693 712.698 +-422.795 -20.4216 703.353 +-427.979 -20.2693 698.104 +-432.573 -20.0912 691.97 +-428.98 -19.5427 673.08 +-431.626 -19.2897 664.366 +-434.595 -19.0562 656.325 +-437.792 -18.8372 648.781 +-439.475 -18.5581 639.171 +-442.858 -18.3558 632.201 +-445.167 -18.113 623.838 +-447.481 -17.8751 615.646 +-449.329 -17.6234 606.977 +-452.264 -17.4186 599.922 +-453.771 -17.1629 591.117 +-460.145 -17.0931 588.711 +-459.354 -16.7601 577.244 +-470.039 -16.8461 580.205 +-465.037 -16.3726 563.897 +-468.206 -16.1942 557.752 +-471.434 -16.0198 551.746 +-474.068 -15.8275 545.123 +-476.623 -15.6351 538.497 +-479.967 -15.4707 532.833 +-482.642 -15.2865 526.489 +-485.105 -15.0979 519.993 +-488.319 -14.9344 514.364 +-491.193 -14.7621 508.431 +-493.65 -14.5792 502.13 +-496.743 -14.4167 496.534 +-499.489 -14.2456 490.64 +-501.38 -14.052 483.973 +-381.402 -10.5043 361.785 +-380.304 -10.2925 354.49 +-379.698 -10.0978 347.782 +-381.902 -9.97985 343.721 +-383.166 -9.83851 338.853 +-383.543 -9.67636 333.269 +-141.588 -3.5096 120.876 +-141.488 -3.44564 118.673 +-142.905 -3.41891 117.752 +-141.596 -3.32778 114.614 +-141.887 -3.27554 112.814 +-142.63 -3.23412 111.388 +-146.453 -3.26146 112.33 +-155.095 -3.39192 116.823 +-155.948 -3.34908 115.347 +-156.787 -3.30604 113.865 +-158.101 -3.27295 112.725 +-160.308 -3.25775 112.202 +-379.51 -7.56994 260.72 +-379.202 -7.42323 255.667 +-380.419 -7.30769 251.688 +-381.008 -7.18104 247.326 +-381.635 -7.05618 243.026 +-379.841 -6.88852 237.251 +-380.874 -6.77385 233.302 +-378.354 -6.59792 227.242 +-380.495 -6.50478 224.035 +-380.532 -6.37624 219.607 +-379.91 -6.23818 214.852 +-380.022 -6.11359 210.561 +-379.297 -5.97695 205.855 +-379.579 -5.85749 201.741 +-380.528 -5.74907 198.007 +-377.965 -5.58924 192.502 +-378.915 -5.48293 188.84 +-378.662 -5.36005 184.608 +-380.079 -5.26143 181.212 +-378.927 -5.12819 176.623 +-379.818 -5.02359 173.02 +-378.299 -4.88826 168.359 +-378.838 -4.78067 164.654 +-378.327 -4.66072 160.522 +-379.899 -4.56695 157.293 +-379.496 -4.4499 153.261 +-379.796 -4.34194 149.543 +-379.5 -4.22791 145.616 +-380.383 -4.12755 142.159 +-113.985 -1.20406 41.4695 +-111.703 -1.14802 39.5394 +-109.775 -1.09701 37.7826 +-109.437 -1.06272 36.6016 +-108.706 -1.02509 35.3057 +-108.628 -0.994032 34.236 +-108.349 -0.96139 33.1117 +-108.251 -0.930615 32.0518 +-108.911 -0.906364 31.2165 +-109.95 -0.884951 30.4791 +-110.792 -0.861576 29.674 +-109.885 -0.824764 28.4061 +-110.226 -0.797605 27.4707 +-110.17 -0.767628 26.4383 +-111.565 -0.74753 25.7461 +-111.395 -0.716734 24.6854 +-113.074 -0.697544 24.0245 +-114.553 -0.676401 23.2963 +-117.697 -0.663977 22.8684 +-124.873 -0.671694 23.1342 +-158.456 -0.810889 27.9282 +-159.581 -0.775037 26.6935 +-160.203 -0.736408 25.363 +-164.968 -0.715538 24.6442 +-3244.61 -13.2343 455.809 +-861.665 -3.29231 113.392 +-379.252 -1.35147 46.5467 +-380.24 -1.25734 43.3047 +-3258.55 -9.93986 342.344 +-403.633 -1.12797 38.8491 +-404.156 -1.02621 35.3442 +-403.752 -0.922216 31.7625 +-404.013 -0.819926 28.2395 +-404.145 -0.717395 24.7082 +-404.046 -0.614554 21.1662 +-402.317 -0.509795 17.5581 +-403.654 -0.409098 14.09 +-146.15 -0.111071 3.82546 +-144.978 -0.0734443 2.52953 +-145.294 -0.0367997 1.26744 +120 6.21725e-15 5.68434e-14 +119.595 -0.0208776 1.04348 +119.382 -0.041684 2.0834 +119.959 -0.062836 3.1406 +119.927 -0.083774 4.1871 +119.786 -0.104618 5.22891 +119.436 -0.12521 6.25813 +120.076 -0.146909 7.34267 +120.506 -0.168562 8.42489 +120.228 -0.189278 9.46028 +120.34 -0.210606 10.5263 +120.045 -0.231222 11.5567 +119.641 -0.251542 12.5723 +120.023 -0.273548 13.6722 +120.594 -0.296196 14.8041 +120.262 -0.316713 15.8296 +120.813 -0.339644 16.9757 +120.561 -0.360425 18.0144 +120.004 -0.380205 19.003 +120.623 -0.403779 20.1813 +121.033 -0.426905 21.3371 +120.744 -0.447651 22.374 +120.642 -0.469093 23.4457 +120.335 -0.489737 24.4775 +120.899 -0.514051 25.6928 +120.573 -0.534703 26.725 +120.432 -0.556181 27.7984 +121.06 -0.581383 29.0581 +120.705 -0.602011 30.0891 +121.115 -0.626564 31.3162 +120.837 -0.647683 32.3718 +121.225 -0.672494 33.6119 +120.927 -0.69363 34.6683 +121.482 -0.719825 35.9775 +121.259 -0.741589 37.0653 +121.694 -0.767541 38.3624 +121.355 -0.788755 39.4227 +121.101 -0.810543 40.5117 +121.594 -0.837514 41.8597 +121.695 -0.862046 43.0859 +121.126 -0.881888 44.0776 +117.271 -0.877079 43.8372 +114.457 -0.878877 43.9271 +110.72 -0.87243 43.6049 +107.182 -0.866247 43.2958 +105.415 -0.873442 43.6555 +102.084 -0.866799 43.3234 +99.6844 -0.867037 43.3353 +97.9321 -0.872202 43.5935 +96.4559 -0.87931 43.9487 +97.1562 -0.906258 45.2956 +96.7571 -0.923183 46.1416 +97.8787 -0.954945 47.729 +97.8163 -0.975565 48.7596 +96.8524 -0.987155 49.3389 +96.4181 -1.00402 50.1821 +96.6828 -1.02833 51.3968 +97.0214 -1.05376 52.6678 +96.558 -1.07065 53.5123 +96.7836 -1.09535 54.7465 +97.0814 -1.1212 56.0388 +96.4163 -1.13608 56.7821 +96.6028 -1.16111 58.0332 +96.0073 -1.17688 58.8215 +96.3383 -1.20419 60.1868 +96.484 -1.22957 61.4548 +96.6987 -1.25617 62.7843 +96.0636 -1.27189 63.5704 +96.2513 -1.29868 64.9093 +96.3404 -1.3245 66.1997 +96.4961 -1.35159 67.5538 +95.9842 -1.36955 68.4512 +96.5157 -1.40271 70.1088 +95.9805 -1.42069 71.0076 +96.0759 -1.44823 72.3838 +96.0751 -1.47469 73.7062 +96.1373 -1.50249 75.0957 +95.4782 -1.51921 75.9316 +96.133 -1.55722 77.8313 +96.0673 -1.58412 79.1759 +96.062 -1.6124 80.5895 +95.9632 -1.6395 81.9439 +95.9236 -1.668 83.3684 +95.8663 -1.69662 84.7984 +96.3859 -1.73604 86.7688 +96.2884 -1.76496 88.2144 +96.173 -1.79398 89.6649 +96.0396 -1.82309 91.1199 +95.8161 -1.85091 92.51 +96.3601 -1.8942 94.6739 +96.0958 -1.92226 96.0766 +96.0246 -1.95466 97.6957 +95.585 -1.97998 98.9614 +96.0943 -2.02561 101.242 +95.6844 -2.05255 102.588 +95.4609 -2.08392 104.156 +95.7526 -2.12727 106.323 +96.0136 -2.17087 108.502 +95.5878 -2.19962 109.939 +95.7286 -2.24209 112.062 +95.1326 -2.26791 113.352 +95.3481 -2.31376 115.644 +95.4679 -2.35829 117.869 +95.4315 -2.39992 119.95 +95.0581 -2.43382 121.645 +94.845 -2.47253 123.579 +94.846 -2.51776 125.84 +94.8742 -2.56477 128.189 +95.1037 -2.61845 130.873 +95.1191 -2.66752 133.325 +95.0416 -2.71515 135.706 +94.5898 -2.75308 137.601 +94.7273 -2.80929 140.411 +94.9884 -2.87076 143.483 +94.7672 -2.91911 145.9 +94.511 -2.9676 148.323 +94.6966 -3.03147 151.516 +94.3632 -3.0803 153.956 +94.5095 -3.14637 157.259 +94.6052 -3.21274 160.576 +94.6 -3.27763 163.819 +94.5453 -3.34277 167.075 +94.4409 -3.40814 170.342 +94.2389 -3.47195 173.531 +94.5046 -3.55538 177.701 +94.6585 -3.6374 181.801 +94.3392 -3.70369 185.114 +94.2816 -3.78269 189.062 +94.206 -3.86372 193.112 +94.0236 -3.94322 197.086 +94.4552 -4.05194 202.519 +94.2183 -4.13561 206.702 +94.2409 -4.23413 211.626 +94.2244 -4.33481 216.658 +94.3225 -4.44501 222.166 +94.1784 -4.54817 227.322 +94.5132 -4.67941 233.881 +94.3374 -4.79065 239.441 +94.2149 -4.90965 245.389 +94.1007 -5.03459 251.634 +93.6793 -5.14857 257.33 +93.6996 -5.29294 264.546 +93.4055 -5.42636 271.215 +93.5097 -5.59043 279.415 +93.2922 -5.74352 287.067 +93.4594 -5.92938 296.356 +93.325 -6.10615 305.191 +93.2138 -6.29484 314.622 +93.0276 -6.4897 324.361 +92.999 -6.70808 335.276 +93.149 -6.954 347.567 +92.891 -7.18496 359.111 +95.2205 -7.63955 381.832 +107.572 -8.96299 447.978 +103.41 -8.95999 447.828 +99.3241 -8.96207 447.932 +95.2028 -8.95951 447.804 +92.2276 -9.0679 453.222 +92.0844 -9.47638 473.638 +91.8285 -9.91104 495.363 +91.6515 -10.3975 519.678 +91.5684 -10.9458 547.082 +91.4203 -11.5462 577.09 +91.361 -12.2284 611.189 +90.9775 -12.9491 647.208 +90.6374 -13.7717 688.321 +90.8048 -14.7936 739.398 +96.3925 -16.9236 845.857 +90.0931 -17.1467 857.006 +89.6925 -18.6332 931.306 +90.7291 -20.7446 1036.83 +89.2315 -22.6799 1133.56 +88.0187 -25.1792 1258.48 +87.2017 -28.52 1425.45 +87.4063 -33.3623 1667.48 +79.0252 -36.2062 1809.62 +66.8919 -38.3176 1915.15 +85.7531 -65.5075 3274.12 +57.1723 -65.5199 3274.74 +28.5873 -65.5275 3275.12 +1.51434e-13 -65.5299 3275.24 +-28.5873 -65.5275 3275.12 +-57.1723 -65.5199 3274.74 +-85.7531 -65.5075 3274.12 +-114.327 -65.4899 3273.24 +-119.146 -54.5879 2728.35 +-125.308 -47.8291 2390.54 +-125.516 -41.0508 2051.76 +-119.974 -34.3204 1715.37 +-142.129 -36.125 1805.56 +-120.554 -27.5638 1377.66 +-136.456 -28.3481 1416.87 +-154.368 -29.3795 1468.42 +-118.456 -20.7972 1039.46 +-127.89 -20.8354 1041.37 +-148.865 -22.6189 1130.51 +-456.028 -64.908 3244.16 +-143.582 -19.2181 960.538 +-111.35 -14.0633 702.896 +-117.151 -14.0039 699.926 +-123.585 -14.0203 700.748 +-146.153 -15.7743 788.412 +-625.224 -64.3417 3215.86 +-653.269 -64.2301 3210.28 +-681.181 -64.1056 3204.06 +-709.208 -63.9922 3198.39 +-142.889 -12.3806 618.796 +-146.37 -12.1957 609.554 +-161.676 -12.9713 648.319 +-142.817 -11.0466 552.121 +-142.842 -10.6638 532.987 +-146.554 -10.571 528.349 +-151.022 -10.5354 526.57 +-109.175 -7.37274 368.496 +-111.218 -7.27688 363.705 +-114.178 -7.24383 362.054 +-117.087 -7.20841 360.283 +-121.052 -7.23701 361.713 +-124.953 -7.25912 362.817 +-1093.78 -61.7862 3088.13 +-1120.7 -61.593 3078.47 +-1147.52 -61.3949 3068.58 +-1174.26 -61.1923 3058.45 +-1200.84 -60.9813 3047.9 +-1227.4 -60.7694 3037.31 +-382.607 -18.4773 923.51 +-413.354 -19.4796 973.607 +-158.902 -7.31029 365.375 +-161.474 -7.25488 362.605 +-164.675 -7.22823 361.274 +-167.991 -7.20645 360.185 +-408.254 -17.1215 855.751 +-140.98 -5.78209 288.994 +-141.668 -5.68387 284.085 +-144.051 -5.65535 282.659 +-147.436 -5.66549 283.166 +-410.975 -15.4614 772.777 +-413.029 -15.2168 760.552 +-415.191 -14.9832 748.874 +-416.689 -14.7326 736.348 +-418.55 -14.5016 724.805 +-420.952 -14.2953 714.492 +-422.846 -14.0772 703.593 +-428.397 -13.9841 698.94 +-432.255 -13.8376 691.615 +-429.625 -13.49 674.241 +-432.498 -13.3222 665.855 +-434.264 -13.1244 655.97 +-437.289 -12.9685 648.177 +-439.645 -12.7961 639.559 +-442.916 -12.6533 632.422 +-444.877 -12.4761 623.569 +-447.187 -12.3122 615.377 +-449.686 -12.1565 607.594 +-451.783 -11.9929 599.416 +-454.501 -11.8485 592.199 +-460.084 -11.7797 588.762 +-459.416 -11.5534 577.449 +-470.039 -11.6111 580.334 +-465.228 -11.2894 564.253 +-468.206 -11.1618 557.875 +-471.434 -11.0416 551.869 +-473.74 -10.9015 544.867 +-476.623 -10.7764 538.616 +-479.967 -10.6631 532.951 +-482.439 -10.5317 526.385 +-485.31 -10.4105 520.327 +-488.525 -10.2978 514.695 +-491.54 -10.1819 508.903 +-494.211 -10.0601 502.812 +-495.823 -9.91826 495.724 +-498.847 -9.8061 490.118 +-502.243 -9.70196 484.913 +-382.055 -7.25244 362.483 +-383.229 -7.14864 357.295 +-381.467 -6.99227 349.48 +-380.713 -6.85716 342.727 +-381.967 -6.75995 337.868 +-382.487 -6.65103 332.424 +-141.588 -2.41898 120.903 +-141.642 -2.37745 118.827 +-142.905 -2.35647 117.778 +-141.596 -2.29366 114.639 +-141.887 -2.25765 112.839 +-143.26 -2.23895 111.905 +-145.422 -2.23212 111.564 +-154.855 -2.33426 116.669 +-155.868 -2.30714 115.313 +-156.221 -2.27043 113.478 +-157.45 -2.24657 112.286 +-160.308 -2.24539 112.227 +-382.395 -5.25719 262.759 +-380.777 -5.13767 256.786 +-382.003 -5.05776 252.791 +-381.008 -4.9495 247.38 +-381.382 -4.86022 242.918 +-380.604 -4.75742 237.78 +-380.107 -4.65945 232.883 +-379.382 -4.55995 227.91 +-379.117 -4.46715 223.272 +-379.492 -4.3828 219.056 +-379.388 -4.29372 214.604 +-378.011 -4.19146 209.493 +-378.858 -4.11481 205.662 +-380.197 -4.04381 202.114 +-380.794 -3.9653 198.189 +-380.103 -3.87414 193.633 +-378.915 -3.77909 188.882 +-377.224 -3.68035 183.947 +-379.988 -3.62556 181.209 +-378.927 -3.53458 176.662 +-378.817 -3.45337 172.602 +-380.766 -3.39118 169.494 +-379.388 -3.29984 164.929 +-380.261 -3.22881 161.379 +-379.068 -3.14087 156.984 +-378.569 -3.05959 152.921 +-379.424 -2.98972 149.429 +-378.1 -2.90331 145.11 +-378.603 -2.83159 141.526 +-113.703 -0.827838 41.3761 +-110.76 -0.784588 39.2145 +-109.869 -0.756757 37.8234 +-108.583 -0.72676 36.3241 +-108.611 -0.705922 35.2826 +-107.961 -0.680922 34.0331 +-108.158 -0.661464 33.0606 +-108.922 -0.645399 32.2576 +-108.43 -0.621951 31.0857 +-109.276 -0.606206 30.2987 +-110.888 -0.594356 29.7065 +-109.013 -0.563958 28.1872 +-109.546 -0.546359 27.3075 +-110.267 -0.52955 26.4674 +-110.786 -0.511631 25.5718 +-112.274 -0.497902 24.8856 +-113.074 -0.480779 24.0298 +-114.553 -0.466207 23.3014 +-117.403 -0.456499 22.8162 +-126.25 -0.468065 23.3943 +-159.145 -0.561332 28.0559 +-158.496 -0.53056 26.5179 +-162.475 -0.514763 25.7284 +-162.594 -0.486086 24.295 +-850.244 -2.39031 119.47 +-861.665 -2.26921 113.417 +-379.847 -0.932957 46.6301 +-381.631 -0.869786 43.4727 +-386.571 -0.812751 40.6221 +-403.633 -0.777451 38.8577 +-403.658 -0.706438 35.3084 +-403.752 -0.635633 31.7695 +-402.617 -0.563176 28.1481 +-404.744 -0.495194 24.7502 +-146.299 -0.153372 7.66569 +-403.316 -0.352246 17.6056 +-3274.5 -2.28737 114.325 +-147.15 -0.077079 3.85248 +-144.678 -0.0505164 2.52485 +-147.194 -0.0256957 1.28429 +120.3 5.77316e-15 5.68434e-14 +119.695 -0.0114727 1.04451 +120.282 -0.0230593 2.09939 +119.859 -0.0344719 3.13843 +120.227 -0.0461117 4.19816 +119.786 -0.0574414 5.22964 +119.436 -0.0687476 6.259 +120.076 -0.0806617 7.3437 +119.807 -0.092014 8.37724 +120.328 -0.10401 9.46944 +120.54 -0.115826 10.5452 +120.045 -0.126954 11.5583 +120.536 -0.139143 12.668 +120.023 -0.150193 13.6741 +120.793 -0.162896 14.8306 +120.262 -0.173894 15.8318 +120.813 -0.186484 16.9781 +120.561 -0.197894 18.0169 +120.3 -0.209269 19.0526 +120.623 -0.221698 20.1841 +120.245 -0.232869 21.2011 +120.744 -0.245786 22.3772 +120.642 -0.257559 23.449 +120.335 -0.268894 24.4809 +120.899 -0.282244 25.6963 +120.573 -0.293583 26.7287 +120.53 -0.305621 27.8247 +120.088 -0.316649 28.8288 +120.802 -0.330804 30.1175 +121.309 -0.34457 31.3707 +121.031 -0.356183 32.428 +121.225 -0.369238 33.6166 +121.215 -0.381751 34.7558 +121.387 -0.394913 35.9541 +121.259 -0.407175 37.0705 +120.931 -0.418781 38.1272 +121.45 -0.433411 39.4591 +121.291 -0.445732 40.5809 +121.877 -0.460915 41.9632 +121.695 -0.473313 43.0919 +121.972 -0.487588 44.3915 +117.365 -0.481951 43.8784 +113.71 -0.479405 43.6466 +110.72 -0.479014 43.611 +108.202 -0.480145 43.714 +104.583 -0.475787 43.3172 +102.268 -0.47678 43.4076 +99.6844 -0.476053 43.3414 +97.1099 -0.474868 43.2335 +96.3649 -0.482335 43.9134 +96.5218 -0.494338 45.0061 +97.389 -0.51019 46.4493 +97.8787 -0.52432 47.7357 +97.9953 -0.536622 48.8558 +96.9415 -0.542503 49.3912 +96.4181 -0.551267 50.1891 +96.7711 -0.565127 51.451 +96.2305 -0.573857 52.2457 +96.558 -0.58785 53.5198 +96.0002 -0.596541 54.311 +97.1681 -0.616154 56.0966 +97.1056 -0.628231 57.1961 +96.9456 -0.639776 58.2473 +96.9452 -0.652487 59.4045 +96.3383 -0.661172 60.1952 +96.484 -0.675102 61.4634 +96.7826 -0.690304 62.8475 +96.0636 -0.698342 63.5793 +96.2513 -0.71305 64.9184 +96.3404 -0.727225 66.2089 +96.4142 -0.74147 67.5058 +95.9028 -0.751321 68.4027 +96.0303 -0.766295 69.7659 +95.9805 -0.780042 71.0175 +96.2356 -0.796483 72.5143 +96.0751 -0.809688 73.7166 +96.2161 -0.825628 75.1678 +96.1043 -0.839604 76.4402 +96.133 -0.855003 77.8422 +96.1444 -0.870472 79.2505 +96.1386 -0.886007 80.6649 +96.0393 -0.900895 82.0204 +95.9236 -0.91583 83.3801 +95.8663 -0.931539 84.8103 +96.6088 -0.95539 86.9818 +96.2884 -0.969065 88.2268 +96.2461 -0.985747 89.7456 +96.0396 -1.00098 91.1326 +95.9599 -1.01778 92.6618 +95.7182 -1.0331 94.0563 +96.2372 -1.05699 96.2314 +96.0246 -1.07322 97.7094 +95.7239 -1.0887 99.119 +95.3371 -1.10341 100.458 +95.8208 -1.12857 102.749 +95.4609 -1.14419 104.171 +95.8864 -1.16963 106.487 +95.2848 -1.18288 107.694 +95.5878 -1.20772 109.954 +95.2091 -1.22436 111.469 +95.6468 -1.25193 113.98 +95.3481 -1.27039 115.66 +95.4679 -1.29483 117.886 +94.9957 -1.31167 119.419 +95.4275 -1.3415 122.135 +94.845 -1.35756 123.597 +94.9664 -1.38415 126.017 +95.3501 -1.41526 128.85 +95.3388 -1.44124 131.215 +95.1191 -1.46462 133.344 +94.8695 -1.48808 135.48 +94.6465 -1.5125 137.703 +94.6714 -1.54155 140.348 +94.8228 -1.57347 143.253 +94.7672 -1.60276 145.92 +94.9408 -1.63678 149.018 +94.7496 -1.66538 151.622 +94.311 -1.69033 153.893 +94.6125 -1.72943 157.453 +94.6052 -1.76398 160.598 +94.6 -1.79961 163.842 +94.5453 -1.83537 167.098 +94.4894 -1.87222 170.453 +94.8114 -1.91789 174.61 +94.6455 -1.95502 177.991 +94.6123 -1.99617 181.738 +94.43 -2.03549 185.318 +94.3262 -2.07789 189.178 +94.2936 -2.12338 193.319 +94.325 -2.17198 197.744 +94.2016 -2.21877 202.004 +94.1354 -2.26869 206.549 +94.2409 -2.32478 211.655 +94.1845 -2.37906 216.597 +94.3616 -2.44157 222.289 +94.1784 -2.4972 227.353 +94.2136 -2.56112 233.173 +94.3374 -2.63034 239.475 +93.9999 -2.68953 244.863 +94.0657 -2.76325 251.575 +93.7819 -2.82996 257.648 +93.6328 -2.90406 264.395 +93.7311 -2.98977 272.199 +93.478 -3.06842 279.359 +93.4467 -3.15874 287.582 +93.2188 -3.24719 295.634 +93.3835 -3.35473 305.426 +93.1286 -3.45307 314.378 +93.0276 -3.56321 324.406 +93.1326 -3.68841 335.805 +92.9937 -3.81177 347.036 +92.9661 -3.94814 359.451 +94.9302 -4.18176 380.721 +107.618 -4.92333 448.236 +103.477 -4.92275 448.183 +99.3458 -4.92176 448.093 +95.2859 -4.92358 448.258 +92.1877 -4.97665 453.09 +91.9509 -5.19553 473.017 +91.8285 -5.44173 495.432 +91.4952 -5.69909 518.864 +91.5354 -6.00771 546.961 +91.3264 -6.33301 576.577 +91.2132 -6.70325 610.285 +90.88 -7.10219 646.606 +90.7679 -7.57233 689.409 +90.5977 -8.10401 737.814 +96.3812 -9.29093 845.876 +89.9363 -9.39813 855.635 +89.6062 -10.2209 930.54 +90.7553 -11.3932 1037.28 +88.9412 -12.4122 1130.04 +88.0745 -13.8335 1259.44 +86.9942 -15.6218 1422.25 +87.3539 -18.3068 1666.71 +79.0645 -19.889 1810.76 +66.8779 -21.0341 1915.01 +76.989 -32.2914 2939.91 +57.1723 -35.9742 3275.2 +28.5873 -35.9783 3275.58 +1.48659e-13 -35.9797 3275.7 +-28.5873 -35.9783 3275.58 +-57.1723 -35.9742 3275.2 +-85.7531 -35.9674 3274.58 +-114.327 -35.9577 3273.7 +-142.91 -35.9498 3272.98 +-125.324 -26.2642 2391.18 +-125.546 -22.5446 2052.54 +-120.1 -18.8636 1717.41 +-142.074 -19.827 1805.11 +-120.536 -15.1319 1377.66 +-136.264 -15.5428 1415.06 +-154.389 -16.1332 1468.82 +-118.49 -11.4221 1039.91 +-128.012 -11.4507 1042.51 +-148.813 -12.4148 1130.28 +-455.973 -35.6339 3244.22 +-143.567 -10.5507 960.573 +-111.663 -7.74324 704.969 +-117.068 -7.68349 699.53 +-123.655 -7.70228 701.24 +-145.934 -8.64802 787.344 +-625.224 -35.3273 3216.31 +-653.269 -35.266 3210.73 +-681.181 -35.1977 3204.51 +-709.208 -35.1354 3198.84 +-142.934 -6.79982 619.078 +-146.51 -6.70256 610.222 +-162.112 -7.14118 650.156 +-142.992 -6.07267 552.876 +-142.79 -5.85292 532.869 +-146.366 -5.79668 527.748 +-903.071 -34.5901 3149.19 +-109.005 -4.04174 367.973 +-111.277 -3.99753 363.948 +-113.998 -3.971 361.532 +-117.272 -3.9641 360.904 +-120.544 -3.95687 360.246 +-125.083 -3.98982 363.246 +-1093.78 -33.9242 3088.56 +-1120.7 -33.8181 3078.9 +-1147.52 -33.7093 3069 +-1174.26 -33.5981 3058.88 +-1200.84 -33.4822 3048.33 +-1227.4 -33.3659 3037.74 +-382.722 -10.1481 923.916 +-413.472 -10.6984 974.019 +-158.902 -4.01377 365.426 +-161.434 -3.98233 362.564 +-164.301 -3.95972 360.505 +-168.456 -3.9677 361.232 +-1410.57 -32.4806 2957.14 +-141.331 -3.18259 289.754 +-141.623 -3.11978 284.035 +-144.006 -3.10413 282.61 +-147.621 -3.11456 283.56 +-411.445 -8.49892 773.768 +-413.363 -8.36167 761.273 +-415.676 -8.23624 749.854 +-417.23 -8.09954 737.408 +-419.65 -7.98315 726.811 +-421.257 -7.85461 715.109 +-422.743 -7.72733 703.521 +-428.083 -7.67247 698.526 +-433.262 -7.61531 693.322 +-429.893 -7.41139 674.756 +-432.226 -7.31003 665.529 +-434.595 -7.21155 656.562 +-437.904 -7.13046 649.18 +-439.984 -7.0312 640.142 +-443.317 -6.95368 633.085 +-445.225 -6.85548 624.144 +-447.363 -6.76279 615.706 +-449.864 -6.67727 607.92 +-452.384 -6.59355 600.298 +-453.771 -6.49505 591.33 +-460.145 -6.46862 588.923 +-459.229 -6.34089 577.295 +-470.165 -6.37687 580.571 +-465.037 -6.19597 564.101 +-468.914 -6.13769 558.795 +-471.24 -6.05996 551.718 +-474.331 -5.993 545.622 +-476.623 -5.91688 538.692 +-479.9 -5.85382 532.951 +-482.642 -5.78494 526.679 +-484.969 -5.71196 520.035 +-488.319 -5.65171 514.55 +-491.401 -5.58889 508.83 +-494.001 -5.52121 502.669 +-496.955 -5.45812 496.925 +-499.133 -5.38718 490.466 +-502.819 -5.33304 485.537 +-382.272 -3.98428 362.741 +-382.717 -3.91977 356.868 +-380.509 -3.82951 348.651 +-381.828 -3.77599 343.778 +-381.069 -3.70287 337.121 +-383.242 -3.659 333.127 +-141.664 -1.32887 120.985 +-141.642 -1.30536 118.844 +-142.056 -1.28615 117.095 +-141.751 -1.26073 114.781 +-141.809 -1.2389 112.793 +-142.236 -1.22052 111.12 +-145.977 -1.23024 112.005 +-155.654 -1.28826 117.287 +-155.868 -1.26675 115.329 +-156.949 -1.25241 114.023 +-157.694 -1.23541 112.475 +-160.636 -1.23536 112.471 +-382.477 -2.88713 262.853 +-378.621 -2.80491 255.368 +-381.503 -2.77336 252.496 +-381.344 -2.71994 247.632 +-380.117 -2.65969 242.146 +-381.028 -2.61501 238.079 +-379.681 -2.55544 232.655 +-380.839 -2.51328 228.817 +-378.6 -2.44937 222.999 +-380.272 -2.41135 219.537 +-378.431 -2.35156 214.093 +-380.722 -2.31786 211.025 +-379.737 -2.2645 206.168 +-378.608 -2.211 201.297 +-377.689 -2.15943 196.601 +-380.638 -2.13012 193.933 +-379.452 -2.07788 189.177 +-377.673 -2.02314 184.193 +-378.635 -1.98354 180.588 +-379.471 -1.94347 176.939 +-380.091 -1.90247 173.207 +-380.035 -1.85837 169.192 +-379.204 -1.81093 164.873 +-379.892 -1.77109 161.245 +-380.269 -1.72999 157.503 +-378.569 -1.67989 152.943 +-378.68 -1.63831 149.157 +-378.754 -1.59684 145.381 +-379.727 -1.55932 141.965 +-113.797 -0.454906 41.4161 +-111.703 -0.43445 39.5537 +-109.869 -0.415503 37.8287 +-108.583 -0.399033 36.3292 +-108.611 -0.387592 35.2876 +-108.533 -0.375846 34.2182 +-108.349 -0.363824 33.1237 +-108.155 -0.351866 32.035 +-108.719 -0.342395 31.1727 +-110.625 -0.336952 30.6771 +-110.405 -0.324914 29.5812 +-109.304 -0.31047 28.2662 +-110.517 -0.302639 27.5532 +-110.364 -0.291009 26.4944 +-111.078 -0.281656 25.6429 +-111.395 -0.271237 24.6943 +-113.269 -0.264432 24.0747 +-114.553 -0.255974 23.3047 +-117.501 -0.250853 22.8384 +-125.758 -0.255994 23.3065 +-156.683 -0.303435 27.6257 +-158.102 -0.290582 26.4555 +-161.092 -0.280229 25.513 +-163.385 -0.268187 24.4166 +-3244.61 -5.00832 455.973 +-861.665 -1.24593 113.433 +-380.939 -0.51372 46.7707 +-379.942 -0.475448 43.2863 +-3258.55 -3.76159 342.467 +-404.33 -0.427601 38.9302 +-404.355 -0.388545 35.3744 +-402.854 -0.348224 31.7034 +-403.714 -0.310058 28.2287 +-402.847 -0.270616 24.6377 +-146.699 -0.08444 7.68769 +-402.716 -0.193116 17.5819 +-3274.5 -1.2559 114.341 +-146.45 -0.0421194 3.83469 +-145.678 -0.0279281 2.54267 +-146.094 -0.0140029 1.27487 +119.4 4.88498e-15 0 +119.695 -0.00204918 1.04457 +120.282 -0.00411873 2.09952 +120.059 -0.00616744 3.14384 +120.227 -0.00823623 4.1984 +119.886 -0.0102684 5.23432 +120.335 -0.0123717 6.30647 +120.275 -0.0144313 7.35634 +120.605 -0.0165445 8.43354 +120.527 -0.0186086 9.48568 +120.54 -0.0206882 10.5458 +120.244 -0.0227135 11.5782 +120.337 -0.024812 12.6479 +120.123 -0.0268491 13.6863 +120.793 -0.0290957 14.8315 +120.659 -0.0311624 15.885 +120.912 -0.033336 16.993 +120.66 -0.0353756 18.0327 +120.202 -0.037348 19.0381 +120.721 -0.0396309 20.2018 +120.245 -0.0415938 21.2024 +119.957 -0.043615 22.2327 +120.642 -0.0460038 23.4504 +120.433 -0.0480674 24.5023 +120.214 -0.0501272 25.5523 +120.67 -0.0524805 26.7518 +120.53 -0.0545884 27.8263 +120.963 -0.0569704 29.0405 +120.802 -0.0590865 30.1192 +120.534 -0.0611522 31.1722 +121.031 -0.0636195 32.4299 +121.225 -0.0659513 33.6185 +120.542 -0.0678077 34.5648 +121.578 -0.0706487 36.013 +120.686 -0.0723832 36.8972 +121.122 -0.0749184 38.1895 +121.45 -0.0774136 39.4614 +122.144 -0.0801743 40.8687 +121.026 -0.0817514 41.6726 +121.695 -0.0845406 43.0944 +121.972 -0.0870903 44.3941 +117.365 -0.0860835 43.8809 +114.457 -0.0861912 43.9358 +110.813 -0.0856309 43.6502 +108.11 -0.0856874 43.679 +104.583 -0.0849826 43.3197 +102.176 -0.0850834 43.3711 +99.6844 -0.08503 43.3439 +97.2012 -0.0848982 43.2767 +96.6379 -0.0863962 44.0403 +97.3375 -0.0890422 45.3891 +96.8474 -0.0906206 46.1937 +97.8787 -0.0936511 47.7385 +97.4584 -0.0953231 48.5908 +96.9415 -0.096899 49.3941 +96.5068 -0.0985547 50.2381 +96.8594 -0.101032 51.5009 +97.0214 -0.103342 52.6782 +96.558 -0.104999 53.5229 +96.8706 -0.107517 54.8066 +96.3886 -0.109171 55.6499 +96.6748 -0.111713 56.9457 +96.8599 -0.114172 58.1992 +96.1778 -0.115621 58.9377 +96.4231 -0.118199 60.2517 +96.5683 -0.120688 61.5207 +96.6987 -0.123192 62.7968 +96.147 -0.124842 63.6382 +96.3342 -0.127471 64.9781 +96.3404 -0.129893 66.2128 +96.578 -0.132663 67.6246 +95.9028 -0.134197 68.4067 +95.9494 -0.136756 69.7112 +96.1413 -0.13956 71.1407 +96.2356 -0.142263 72.5186 +96.1544 -0.144742 73.7818 +96.2161 -0.147469 75.1722 +96.1825 -0.150088 76.5069 +96.133 -0.152716 77.8468 +96.2216 -0.155604 79.3188 +96.1386 -0.158254 80.6696 +96.0393 -0.160913 82.0251 +95.9991 -0.163709 83.4505 +95.9412 -0.166516 84.8814 +96.5345 -0.170515 86.9199 +95.8461 -0.172294 87.8265 +96.2461 -0.176069 89.7508 +96.1121 -0.178925 91.2068 +95.888 -0.181654 92.5978 +95.7182 -0.184526 94.0618 +95.6008 -0.187545 95.6006 +96.0246 -0.191693 97.7151 +95.7934 -0.1946 99.1968 +95.5436 -0.197513 100.682 +95.889 -0.201723 102.828 +95.596 -0.204659 104.325 +95.8864 -0.208913 106.493 +95.4173 -0.211575 107.85 +95.6534 -0.215865 110.037 +95.8585 -0.220179 112.236 +95.1326 -0.222413 113.375 +95.4753 -0.227212 115.821 +95.5308 -0.231429 117.971 +95.4315 -0.235359 119.974 +95.5507 -0.23992 122.299 +95.0277 -0.242947 123.842 +94.9664 -0.247229 126.025 +95.4096 -0.252946 128.939 +95.2212 -0.257109 131.061 +95.1191 -0.261603 133.352 +95.099 -0.266435 135.815 +94.9297 -0.270965 138.124 +94.6154 -0.27518 140.273 +94.9332 -0.28137 143.428 +94.7127 -0.286111 145.845 +94.6185 -0.291361 148.521 +94.8026 -0.297629 151.716 +94.4155 -0.302251 154.072 +94.6125 -0.308901 157.462 +94.6559 -0.315241 160.694 +94.55 -0.321266 163.765 +94.6931 -0.328336 167.369 +94.4894 -0.334406 170.463 +94.382 -0.341011 173.83 +94.2699 -0.34781 177.296 +94.7046 -0.356893 181.926 +94.43 -0.363569 185.329 +94.4155 -0.371492 189.368 +94.2936 -0.379267 193.331 +94.0236 -0.38671 197.125 +94.1593 -0.396126 201.925 +93.928 -0.404328 206.106 +94.2409 -0.415239 211.668 +94.2244 -0.425113 216.701 +94.4397 -0.436462 222.486 +94.2167 -0.446217 227.459 +94.1761 -0.457272 233.094 +94.1175 -0.468723 238.931 +93.9999 -0.480389 244.878 +93.8556 -0.492454 251.028 +93.6109 -0.50455 257.194 +93.9666 -0.520558 265.353 +93.666 -0.533647 272.025 +93.7953 -0.549925 280.323 +93.4467 -0.564197 287.598 +93.1587 -0.579622 295.461 +93.2666 -0.598453 305.06 +93.2706 -0.617708 314.875 +93 -0.636254 324.329 +93.2127 -0.659371 336.113 +93.0196 -0.681029 347.153 +93.0412 -0.705767 359.763 +94.4221 -0.742926 378.705 +107.642 -0.87957 448.359 +103.477 -0.879275 448.209 +99.4107 -0.879674 448.412 +95.2236 -0.878848 447.991 +92.1279 -0.888325 452.822 +92.0844 -0.929345 473.732 +91.6827 -0.97043 494.675 +91.4952 -1.01794 518.894 +91.4529 -1.0721 546.5 +91.2169 -1.12981 575.92 +91.2132 -1.1973 610.321 +90.6991 -1.26603 645.357 +90.6635 -1.35097 688.657 +90.5002 -1.44594 737.064 +96.4039 -1.65989 846.124 +89.9363 -1.67864 855.685 +89.5487 -1.82442 929.997 +90.8424 -2.03694 1038.33 +88.8549 -2.21483 1129.01 +88.0117 -2.46912 1258.63 +86.7622 -2.78284 1418.55 +87.2597 -3.26635 1665.02 +79.0645 -3.55247 1810.87 +66.9128 -3.75897 1916.13 +77.1147 -5.77713 2944.88 +57.1723 -6.42551 3275.39 +28.5873 -6.42626 3275.77 +1.80078e-13 -6.42649 3275.89 +-28.5873 -6.42626 3275.77 +-57.1723 -6.42551 3275.39 +-85.7531 -6.4243 3274.77 +-114.327 -6.42257 3273.89 +-142.91 -6.42116 3273.17 +-125.36 -4.69254 2392.02 +-125.644 -4.02994 2054.26 +-120.128 -3.37011 1717.91 +-135.875 -3.38688 1726.46 +-120.545 -2.70298 1377.84 +-136.283 -2.77656 1415.35 +-154.577 -2.88514 1470.7 +-118.501 -2.04036 1040.07 +-127.853 -2.04273 1041.28 +-148.917 -2.21901 1131.14 +-455.973 -6.36474 3244.41 +-143.715 -1.88646 961.618 +-111.663 -1.38306 705.011 +-117.167 -1.37355 700.163 +-123.655 -1.37574 701.281 +-146.08 -1.54621 788.175 +-625.224 -6.30997 3216.49 +-653.269 -6.29902 3210.91 +-681.181 -6.28682 3204.69 +-709.208 -6.27569 3199.02 +-142.934 -1.21455 619.114 +-146.627 -1.19813 610.745 +-162.523 -1.27876 651.844 +-142.591 -1.08163 551.359 +-143.023 -1.04712 533.77 +-146.66 -1.03745 528.839 +-903.071 -6.17829 3149.37 +-109.033 -0.722102 368.09 +-111.247 -0.713829 363.873 +-114.058 -0.709653 361.744 +-117.148 -0.707301 360.545 +-120.798 -0.708244 361.026 +-125.083 -0.712641 363.267 +-1093.78 -6.05935 3088.74 +-1120.7 -6.0404 3079.08 +-1147.52 -6.02098 3069.18 +-1174.26 -6.00111 3059.05 +-1200.84 -5.98041 3048.5 +-383.223 -1.86074 948.507 +-383.028 -1.81405 924.709 +-414.292 -1.91469 976.009 +-159.141 -0.717998 365.998 +-161.841 -0.713096 363.499 +-164.633 -0.708692 361.254 +-168.075 -0.707091 360.438 +-409.201 -1.683 857.905 +-141.331 -0.568458 289.77 +-141.623 -0.557239 284.051 +-143.915 -0.554094 282.448 +-147.667 -0.556481 283.665 +-412.055 -1.52028 774.962 +-413.363 -1.49352 761.318 +-415.724 -1.47128 749.985 +-417.329 -1.44704 737.625 +-419.8 -1.42642 727.114 +-421.155 -1.40261 714.979 +-423.052 -1.38122 704.076 +-428.031 -1.37025 698.482 +-434.375 -1.3637 695.144 +-429.84 -1.32362 674.712 +-431.899 -1.30469 665.065 +-435.037 -1.2894 657.268 +-437.904 -1.2736 649.218 +-440.607 -1.25765 641.087 +-443.317 -1.24203 633.122 +-445.631 -1.22561 624.751 +-448.069 -1.20984 616.713 +-450.34 -1.19392 608.599 +-452.565 -1.17818 600.573 +-454.44 -1.16182 592.237 +-460.207 -1.15554 589.037 +-460.101 -1.13473 578.425 +-469.662 -1.13778 579.983 +-465.736 -1.10836 564.983 +-468.656 -1.09568 558.522 +-471.369 -1.0827 551.902 +-474.331 -1.07044 545.654 +-477.484 -1.05875 539.696 +-479.633 -1.045 532.685 +-482.912 -1.03385 527.005 +-486.469 -1.0234 521.674 +-488.663 -1.01019 514.942 +-491.679 -0.998822 509.148 +-494.351 -0.98687 503.055 +-497.237 -0.975454 497.236 +-499.347 -0.962644 490.706 +-502.819 -0.952559 485.565 +-379.806 -0.707057 360.421 +-379.792 -0.694777 354.161 +-379.624 -0.682416 347.86 +-382.051 -0.674842 343.999 +-381.743 -0.662555 337.736 +-383.694 -0.654322 333.539 +-141.664 -0.237356 120.992 +-141.565 -0.23303 118.787 +-142.905 -0.231098 117.802 +-141.518 -0.224814 114.599 +-141.965 -0.221529 112.924 +-142.788 -0.218849 111.558 +-146.374 -0.220336 112.316 +-155.175 -0.229393 116.933 +-155.546 -0.225793 115.098 +-156.949 -0.223698 114.03 +-158.183 -0.221346 112.831 +-160.144 -0.219979 112.134 +-380.994 -0.513684 261.849 +-381.357 -0.504619 257.229 +-379.668 -0.492982 251.297 +-380.84 -0.485182 247.321 +-380.791 -0.475903 242.591 +-381.198 -0.467287 238.199 +-381.045 -0.458078 233.505 +-380.925 -0.449011 228.883 +-379.289 -0.43829 223.418 +-379.406 -0.429721 219.05 +-378.779 -0.420409 214.303 +-380.285 -0.413527 210.795 +-379.473 -0.404193 206.037 +-379.932 -0.396301 202.014 +-378.044 -0.386066 196.797 +-378.41 -0.378245 192.81 +-378.468 -0.370176 188.697 +-379.651 -0.363253 185.168 +-379.627 -0.35522 181.073 +-379.924 -0.347547 177.162 +-380.819 -0.34046 173.549 +-379.578 -0.331534 168.999 +-380.397 -0.324475 165.401 +-379.524 -0.316034 161.098 +-379.992 -0.308775 157.398 +-379.682 -0.300934 153.401 +-378.959 -0.292842 149.276 +-378.754 -0.285219 145.39 +-379.914 -0.278655 142.044 +-113.233 -0.0808503 41.2133 +-110.949 -0.0770753 39.289 +-109.869 -0.0742149 37.8309 +-109.342 -0.071771 36.5851 +-108.706 -0.0692901 35.3205 +-108.819 -0.0673086 34.3104 +-108.349 -0.0649843 33.1256 +-109.21 -0.0634612 32.3492 +-108.911 -0.0612648 31.2296 +-110.336 -0.0600272 30.5987 +-110.502 -0.0580852 29.6088 +-109.304 -0.0554545 28.2678 +-109.837 -0.0537237 27.3855 +-110.558 -0.0520701 26.5426 +-111.078 -0.0503079 25.6444 +-112.469 -0.0489139 24.9338 +-113.269 -0.0472315 24.0762 +-113.867 -0.0454471 23.1666 +-117.501 -0.044806 22.8398 +-125.07 -0.0454741 23.1804 +-160.031 -0.0553562 28.2177 +-160.37 -0.0526469 26.8366 +-160.302 -0.0498074 25.3893 +-162.396 -0.0476122 24.2703 +-851.829 -0.234855 119.717 +-863.251 -0.222951 113.649 +-380.046 -0.0915427 46.6637 +-381.333 -0.0852329 43.4473 +-3258.55 -0.671875 342.487 +-404.429 -0.0763946 38.942 +-403.857 -0.0693143 35.3328 +-404.35 -0.0624287 31.8229 +-404.213 -0.0554494 28.2652 +-403.246 -0.0483838 24.6636 +-145.5 -0.014959 7.62534 +-404.315 -0.0346304 17.6528 +-402.755 -0.027591 14.0645 +-147.749 -0.00758991 3.86894 +-146.678 -0.00502261 2.56027 +-145.394 -0.00248915 1.26884 +119.5 2.66454e-15 -1.13687e-13 +119.695 0.00737336 1.04454 +120.082 0.0147954 2.09598 +120.059 0.0221917 3.14377 +120.027 0.0295863 4.19133 +119.986 0.0369786 5.23856 +119.536 0.0442203 6.26445 +120.275 0.0519266 7.35617 +120.605 0.0595304 8.43335 +120.627 0.0670126 9.49331 +120.54 0.0744402 10.5455 +120.244 0.0817276 11.5779 +120.536 0.0894259 12.6685 +120.123 0.0966082 13.686 +120.793 0.104692 14.8311 +120.659 0.112128 15.8846 +120.912 0.119949 16.9926 +119.968 0.126558 17.9289 +120.202 0.134385 19.0376 +120.623 0.142483 20.1848 +120.245 0.149662 21.2019 +120.744 0.157964 22.3779 +120.74 0.165665 23.4689 +120.433 0.172956 24.5017 +120.117 0.180221 25.531 +120.67 0.188835 26.7512 +120.53 0.19642 27.8257 +121.06 0.205155 29.0632 +120.802 0.212605 30.1185 +120.438 0.219861 31.1465 +121.031 0.228915 32.4292 +121.321 0.237494 33.6445 +120.542 0.243985 34.564 +120.715 0.252403 35.7566 +121.546 0.262306 37.1595 +121.122 0.269571 38.1886 +121.45 0.278549 39.4605 +121.385 0.286691 40.614 +121.783 0.295996 41.9322 +121.695 0.304193 43.0934 +121.878 0.313126 44.3589 +117.365 0.309745 43.8799 +113.71 0.308109 43.6481 +110.813 0.308117 43.6492 +108.017 0.308056 43.6406 +105.507 0.308484 43.7013 +102.084 0.30587 43.331 +99.6844 0.305954 43.3429 +97.1099 0.305193 43.235 +96.7289 0.311163 44.0808 +96.703 0.318303 45.0923 +96.8474 0.326071 46.1926 +97.9686 0.337285 47.7813 +97.7268 0.343936 48.7236 +96.9415 0.348661 49.393 +96.5068 0.354619 50.2369 +96.7711 0.363202 51.4528 +97.1093 0.37218 52.7247 +96.6455 0.378148 53.5702 +96.9576 0.387215 54.8546 +96.3886 0.392819 55.6486 +96.5886 0.401608 56.8937 +96.9456 0.411178 58.2493 +96.3483 0.416765 59.0408 +96.4231 0.425302 60.2503 +96.5683 0.43426 61.5193 +96.6987 0.443268 62.7953 +96.2304 0.449597 63.6919 +96.2513 0.45827 64.9207 +96.4228 0.46778 66.2678 +96.4961 0.476941 67.5656 +95.9842 0.483277 68.4632 +96.0303 0.49249 69.7684 +96.7844 0.505524 71.6149 +96.1557 0.511466 72.4567 +96.2338 0.521238 73.841 +96.2161 0.530623 75.1704 +96.1043 0.539605 76.4429 +96.133 0.549502 77.845 +96.1444 0.559443 79.2533 +96.2152 0.569882 80.7321 +96.0393 0.578996 82.0233 +95.9991 0.589058 83.4486 +95.9412 0.599158 84.8795 +95.8657 0.609296 86.3156 +96.2884 0.622808 88.2299 +96.2461 0.63353 89.7488 +96.1121 0.643807 91.2047 +95.888 0.653626 92.5957 +95.7182 0.66396 94.0597 +95.5301 0.674323 95.5277 +96.0246 0.689748 97.7129 +95.2377 0.696145 98.619 +96.0943 0.714783 101.259 +95.2752 0.721193 102.167 +95.6636 0.736919 104.395 +95.0835 0.745411 105.598 +95.4173 0.761286 107.847 +95.719 0.777253 110.109 +95.2091 0.786881 111.473 +95.7754 0.805693 114.138 +95.4753 0.817552 115.818 +95.5308 0.832728 117.968 +95.4937 0.847417 120.049 +95.0581 0.858831 121.666 +94.9059 0.873055 123.681 +95.4479 0.89409 126.661 +94.8148 0.904473 128.132 +95.28 0.925699 131.139 +95.0611 0.940727 133.268 +95.0416 0.958105 135.73 +94.9297 0.974983 138.121 +94.6714 0.990738 140.353 +94.9332 1.01242 143.424 +94.7672 1.03008 145.925 +94.9946 1.05254 149.108 +94.8555 1.07153 151.797 +94.4155 1.08756 154.068 +94.6125 1.11149 157.458 +94.6559 1.1343 160.69 +94.6 1.15659 163.848 +94.2006 1.17527 166.495 +94.6348 1.20511 170.722 +94.4297 1.22764 173.914 +94.6455 1.25647 177.998 +94.2429 1.27791 181.034 +94.4754 1.30882 185.413 +94.3708 1.33607 189.274 +94.2936 1.36468 193.326 +94.0667 1.39209 197.21 +94.5397 1.4311 202.736 +94.2598 1.45999 206.829 +94.2409 1.49411 211.663 +94.1845 1.529 216.605 +94.4397 1.57047 222.48 +94.2167 1.60558 227.453 +94.1761 1.64535 233.088 +94.484 1.69313 239.856 +93.8924 1.72656 244.592 +94.2058 1.77856 251.959 +93.5767 1.8148 257.094 +93.5327 1.86441 264.121 +93.4055 1.91482 271.262 +93.5731 1.97406 279.654 +93.2304 2.0254 286.927 +93.2789 2.08828 295.836 +93.1789 2.15132 304.766 +93.3842 2.22534 315.252 +93 2.28936 324.322 +92.9722 2.36643 335.239 +92.8643 2.44638 346.565 +92.7908 2.53265 358.787 +94.277 2.66908 378.115 +107.572 3.1628 448.057 +103.455 3.16312 448.102 +99.3891 3.16454 448.304 +95.2028 3.16157 447.883 +92.1678 3.19775 453.008 +91.7028 3.33011 471.758 +91.8285 3.49734 495.45 +91.3389 3.6565 517.996 +91.3704 3.85413 545.994 +91.1074 4.06041 575.216 +91.2427 4.3095 610.504 +90.6991 4.55542 645.342 +90.6374 4.85966 688.442 +90.5977 5.20836 737.841 +96.4718 5.9768 846.701 +89.8422 6.03376 854.771 +89.5391 6.56393 929.876 +90.8337 7.32861 1038.2 +88.6195 7.94829 1125.99 +87.9908 8.88224 1258.3 +85.0772 9.81872 1390.97 +87.2754 11.755 1665.27 +79.0819 12.7853 1811.22 +66.9652 13.5361 1917.58 +85.7531 23.1159 3274.7 +57.1723 23.1202 3275.32 +28.5873 23.1229 3275.7 +1.5532e-13 23.1238 3275.82 +-28.5873 23.1229 3275.7 +-57.1723 23.1202 3275.32 +-85.7531 23.1159 3274.7 +-114.327 23.1096 3273.82 +-142.91 23.1046 3273.1 +-125.423 16.8931 2393.16 +-125.62 14.4977 2053.81 +-120.19 12.1326 1718.76 +-142.176 12.7517 1806.46 +-120.624 9.73211 1378.7 +-136.753 10.025 1420.19 +-154.42 10.3708 1469.17 +-118.603 7.34795 1040.94 +-127.987 7.35783 1042.34 +-148.956 7.98655 1131.41 +-455.973 22.9016 3244.34 +-143.715 6.78784 961.596 +-111.819 4.98348 705.982 +-117.316 4.94855 701.035 +-123.915 4.9606 702.741 +-145.57 5.54411 785.404 +-625.224 22.7045 3216.42 +-653.269 22.6651 3210.84 +-681.264 22.624 3205.02 +-709.208 22.5812 3198.95 +-142.911 4.36949 619.002 +-146.744 4.31453 611.217 +-153.016 4.33204 613.697 +-142.867 3.89943 552.411 +-143.256 3.77389 534.627 +-146.58 3.73091 528.538 +-903.071 22.2307 3149.3 +-109.232 2.603 368.753 +-111.306 2.56984 364.056 +-114.208 2.55683 362.213 +-117.396 2.55037 361.297 +-120.861 2.54973 361.207 +-125.051 2.56355 363.165 +-1093.78 21.8027 3088.67 +-1120.7 21.7345 3079.01 +-1147.52 21.6646 3069.11 +-1174.26 21.5931 3058.98 +-1200.84 21.5187 3048.43 +-384.047 6.70969 950.525 +-383.143 6.52926 924.965 +-414.527 6.89332 976.54 +-158.782 2.57767 365.164 +-161.881 2.5665 363.582 +-164.924 2.55451 361.883 +-168.582 2.55192 361.517 +-1410.57 20.875 2957.25 +-141.331 2.04542 289.764 +-141.668 2.00569 284.135 +-144.051 1.99562 282.709 +-147.667 2.00233 283.659 +-411.774 5.46653 774.414 +-413.124 5.37086 760.861 +-416.306 5.30138 751.017 +-417.329 5.20672 737.608 +-419.8 5.13252 727.097 +-421.308 5.04869 715.22 +-423.516 4.97535 704.831 +-428.188 4.93222 698.722 +-434.375 4.90686 695.128 +-430.001 4.76442 674.949 +-432.77 4.70401 666.391 +-435.202 4.64126 657.503 +-438.407 4.58794 649.949 +-440.381 4.52295 640.742 +-443.317 4.46906 633.107 +-445.631 4.40997 624.736 +-447.892 4.35152 616.456 +-450.34 4.29596 608.585 +-452.745 4.24099 600.798 +-454.806 4.18382 592.699 +-461.069 4.16566 590.126 +-460.35 4.08517 578.725 +-470.165 4.09835 580.592 +-465.736 3.98808 564.97 +-468.914 3.94463 558.815 +-471.954 3.90057 552.573 +-474.856 3.85591 546.245 +-477.749 3.8117 539.984 +-480.101 3.76377 533.193 +-483.182 3.72209 527.288 +-485.242 3.67308 520.345 +-488.181 3.63128 514.423 +-491.401 3.59192 508.848 +-494.141 3.54944 502.829 +-497.874 3.51437 497.862 +-499.347 3.46378 490.695 +-502.819 3.42749 485.554 +-381.837 2.55774 362.341 +-380.596 2.50524 354.903 +-379.845 2.4569 348.055 +-381.01 2.4216 343.054 +-382.716 2.39009 338.591 +-383.694 2.35438 333.532 +-141.74 0.854511 121.054 +-141.642 0.83894 118.848 +-142.982 0.83198 117.862 +-141.674 0.809815 114.722 +-141.809 0.796227 112.797 +-142.709 0.787022 111.493 +-146.374 0.792811 112.313 +-155.175 0.825401 116.93 +-155.868 0.814128 115.333 +-156.707 0.803667 113.851 +-158.427 0.797674 113.002 +-159.898 0.790312 111.959 +-380.829 1.84753 261.729 +-381.772 1.81768 257.502 +-381.002 1.78008 252.174 +-379.918 1.74154 246.715 +-380.454 1.71087 242.37 +-381.282 1.68176 238.246 +-380.278 1.64493 233.028 +-379.554 1.60981 228.053 +-380.582 1.58243 224.174 +-379.579 1.54693 219.145 +-379.91 1.51723 214.938 +-379.585 1.48521 210.402 +-379.473 1.45436 206.032 +-380.55 1.42828 202.337 +-380.616 1.39859 198.131 +-379.48 1.36484 193.35 +-380.168 1.33795 189.54 +-379.651 1.30705 185.163 +-379.357 1.27724 180.939 +-379.743 1.24994 177.073 +-379.454 1.22065 172.923 +-379.761 1.19349 169.076 +-379.296 1.16415 164.919 +-379.432 1.13688 161.055 +-379.53 1.10968 157.202 +-380.053 1.08388 153.547 +-378.308 1.05189 149.015 +-380.527 1.03108 146.067 +-380.102 1.00315 142.11 +-113.797 0.292364 41.4176 +-111.797 0.279452 39.5885 +-109.869 0.26704 37.8301 +-109.247 0.258022 36.5526 +-108.801 0.249537 35.3506 +-108.628 0.241765 34.2495 +-109.019 0.235271 33.3296 +-108.922 0.227744 32.2633 +-108.623 0.219859 31.1462 +-111.203 0.217687 30.8385 +-110.888 0.209732 29.7117 +-109.11 0.199182 28.2171 +-110.323 0.194162 27.5058 +-110.656 0.187523 26.5654 +-111.273 0.181335 25.6888 +-111.395 0.174321 24.6952 +-113.172 0.169801 24.0548 +-113.867 0.163527 23.166 +-116.617 0.160008 22.6675 +-124.185 0.162466 23.0157 +-158.849 0.197712 28.0088 +-159.186 0.188036 26.638 +-160.993 0.17999 25.4982 +-162.693 0.171631 24.314 +-851.829 0.845052 119.714 +-862.854 0.801853 113.594 +-380.244 0.32956 46.6869 +-381.631 0.306924 43.4803 +-897.457 0.665827 94.3242 +-403.832 0.274477 38.8836 +-402.961 0.248853 35.2536 +-403.452 0.224132 31.7516 +-403.116 0.198976 28.1879 +-403.945 0.174396 24.7057 +-145.201 0.0537146 7.60946 +-403.016 0.124206 17.5957 +-147.11 0.0362623 5.13708 +-146.85 0.0271436 3.84529 +-145.978 0.017986 2.54799 +-146.294 0.00901184 1.27666 +119.6 2.66454e-15 -1.13687e-13 +119.595 0.0167821 1.04356 +120.082 0.0337032 2.09576 +119.159 0.0501729 3.11989 +120.227 0.0675085 4.19787 +119.986 0.0842358 5.23801 +120.335 0.101405 6.30566 +120.175 0.118189 7.34929 +120.605 0.135608 8.43247 +120.627 0.152652 9.49232 +120.54 0.169572 10.5444 +120.244 0.186172 11.5767 +120.536 0.203709 12.6672 +120.918 0.221525 13.775 +120.892 0.23868 14.8418 +120.659 0.255424 15.8829 +120.912 0.27324 16.9908 +120.759 0.290196 18.0452 +120.893 0.307885 19.1451 +120.623 0.324571 20.1827 +120.344 0.341205 21.2171 +120.744 0.359836 22.3756 +120.642 0.377072 23.4474 +120.531 0.394308 24.5191 +120.214 0.410869 25.549 +120.67 0.430158 26.7484 +120.53 0.447436 27.8228 +121.06 0.467334 29.0601 +120.802 0.484305 30.1154 +120.244 0.500029 31.0932 +121.031 0.52146 32.4258 +121.321 0.541001 33.641 +121.407 0.559777 34.8085 +120.907 0.575878 35.8097 +121.451 0.597053 37.1264 +121.122 0.614072 38.1847 +121.355 0.634026 39.4255 +122.144 0.657152 40.8635 +121.783 0.674267 41.9278 +121.695 0.69294 43.0889 +121.972 0.713839 44.3885 +117.365 0.705587 43.8753 +114.457 0.706469 43.9302 +110.72 0.701287 43.608 +107.275 0.69692 43.3364 +104.676 0.697177 43.3524 +102.176 0.697389 43.3656 +99.5927 0.69631 43.2985 +97.8407 0.700449 43.5559 +96.5469 0.707484 43.9933 +97.3375 0.729838 45.3833 +96.8474 0.742775 46.1878 +97.8787 0.767615 47.7324 +97.5478 0.782038 48.6293 +97.0306 0.794966 49.4332 +96.5068 0.807808 50.2317 +96.7711 0.827359 51.4474 +96.3184 0.840906 52.2898 +96.6455 0.861406 53.5646 +96.8706 0.881267 54.7996 +97.1681 0.902063 56.0927 +96.5886 0.914848 56.8877 +96.8599 0.935818 58.1918 +96.3483 0.949374 59.0347 +96.4231 0.968822 60.244 +96.5683 0.989227 61.5128 +96.0278 1.00274 62.3531 +96.2304 1.02416 63.6853 +96.2513 1.04392 64.9139 +96.4228 1.06558 66.2609 +95.7589 1.07815 67.0424 +95.9028 1.09995 68.398 +96.7584 1.13038 70.29 +96.1413 1.14391 71.1316 +96.2356 1.16607 72.5093 +96.0751 1.1854 73.7115 +96.2161 1.20874 75.1626 +96.1825 1.2302 76.4971 +96.133 1.25174 77.8368 +96.1444 1.27439 79.2451 +96.1386 1.29713 80.6594 +96.1153 1.31997 82.0796 +95.9991 1.34185 83.4399 +95.9412 1.36486 84.8706 +95.8657 1.38795 86.3066 +96.3621 1.41982 88.2882 +95.5879 1.43329 89.1257 +96.1121 1.46657 91.1952 +95.888 1.48893 92.586 +95.6469 1.51135 93.9797 +95.6008 1.53722 95.5884 +96.0947 1.57236 97.774 +95.7934 1.59504 99.1842 +96.0943 1.62825 101.249 +95.889 1.65343 102.815 +95.6636 1.67867 104.385 +95.7526 1.70996 106.33 +95.351 1.73297 107.761 +95.6534 1.76935 110.023 +95.2091 1.79248 111.462 +95.1968 1.82424 113.436 +95.4753 1.86235 115.806 +95.4679 1.89567 117.878 +95.556 1.93164 120.114 +95.0581 1.95638 121.653 +94.9668 1.99005 123.747 +94.846 2.02385 125.849 +94.9337 2.06294 128.279 +94.751 2.097 130.397 +95.0611 2.14294 133.254 +95.0416 2.18253 135.715 +94.9297 2.22097 138.106 +94.5595 2.25419 140.172 +94.9884 2.30761 143.493 +94.7672 2.34647 145.91 +95.102 2.40036 149.261 +94.8555 2.44089 151.781 +94.3632 2.47604 153.967 +94.664 2.53328 157.527 +94.5544 2.58112 160.501 +94.2 2.62352 163.138 +94.5453 2.68702 167.086 +94.6348 2.7452 170.704 +94.4297 2.79652 173.896 +94.2229 2.84942 177.185 +94.2891 2.91246 181.105 +94.4754 2.98144 185.394 +94.3262 3.04207 189.165 +94.2498 3.10723 193.216 +94.4541 3.18418 198.001 +94.2016 3.24833 201.99 +94.3012 3.32726 206.898 +94.3222 3.40647 211.824 +94.1845 3.48299 216.582 +94.1662 3.56712 221.813 +94.1784 3.65596 227.338 +94.2136 3.74954 233.157 +94.3741 3.85239 239.552 +94.1791 3.94504 245.313 +93.7155 4.03039 250.621 +93.8845 4.14766 257.913 +93.4993 4.24555 264 +93.5357 4.36796 271.612 +93.4462 4.49071 279.245 +93.3231 4.61835 287.182 +93.0985 4.74782 295.233 +93.0327 4.89294 304.257 +93.1002 5.05382 314.26 +93.0552 5.21817 324.48 +92.9188 5.38752 335.011 +92.8902 5.57431 346.626 +92.7908 5.76928 358.75 +94.2528 6.0785 377.978 +107.548 7.20317 447.913 +103.59 7.21485 448.639 +99.454 7.21341 448.55 +95.4107 7.21766 448.814 +91.9684 7.26858 451.981 +91.7982 7.59374 472.2 +91.628 7.94942 494.317 +91.4779 8.34202 518.73 +91.1723 8.76052 544.754 +90.9823 9.23674 574.366 +91.0358 9.79462 609.056 +90.6852 10.3755 645.176 +90.5199 11.0558 687.478 +90.5977 11.8644 737.764 +96.4039 13.6053 846.017 +89.7586 13.7319 853.886 +89.3666 14.9235 927.987 +90.4764 16.6287 1034.02 +88.4391 18.0691 1123.58 +88.0675 20.2509 1259.26 +83.0443 21.8322 1357.58 +87.1655 26.7438 1663 +79.1212 29.1389 1811.94 +67.0035 30.8523 1918.48 +85.7531 52.657 3274.36 +57.1723 52.667 3274.98 +28.5873 52.6731 3275.36 +1.53988e-13 52.675 3275.48 +-28.5873 52.6731 3275.36 +-57.1723 52.667 3274.98 +-85.7531 52.657 3274.36 +-114.327 52.6428 3273.48 +-142.91 52.6313 3272.76 +-125.491 38.5026 2394.2 +-125.729 33.0541 2055.39 +-120.232 27.6472 1719.18 +-139.265 28.4532 1769.3 +-120.676 22.179 1379.15 +-136.273 22.7566 1415.07 +-155.005 23.7138 1474.59 +-118.716 16.7542 1041.83 +-127.987 16.7608 1042.24 +-148.865 18.1818 1130.59 +-135.555 15.5091 964.396 +-143.952 15.4879 963.078 +-111.819 11.3522 705.909 +-117.25 11.2662 700.566 +-123.776 11.2874 701.88 +-145.697 12.6403 786.01 +-625.224 51.7199 3216.08 +-653.269 51.6301 3210.5 +-681.181 51.5301 3204.29 +-709.208 51.439 3198.62 +-143.114 9.96762 619.814 +-146.744 9.82833 611.153 +-152.967 9.86509 613.439 +-143.167 8.90143 553.515 +-143.256 8.59677 534.571 +-146.554 8.49732 528.387 +-903.071 50.6406 3148.97 +-109.232 5.92953 368.714 +-111.569 5.86785 364.879 +-114.268 5.82742 362.365 +-117.241 5.802 360.784 +-120.798 5.80515 360.98 +-125.376 5.85487 364.072 +-1093.78 49.6657 3088.35 +-1120.7 49.5104 3078.69 +-1147.52 49.3512 3068.79 +-1174.26 49.1883 3058.66 +-1200.84 49.0187 3048.12 +-384.234 15.2918 950.889 +-383.372 14.8823 925.423 +-414.644 15.7071 976.714 +-158.702 5.86887 364.943 +-162.003 5.85078 363.818 +-164.758 5.81321 361.481 +-168.667 5.81609 361.66 +-409.588 13.8078 858.609 +-141.243 4.65649 289.554 +-141.712 4.57031 284.194 +-144.142 4.54882 282.858 +-147.483 4.55551 283.274 +-412.149 12.4639 775.04 +-414.317 12.2699 762.978 +-417.033 12.0974 752.251 +-418.166 11.8845 739.01 +-419.5 11.6833 726.501 +-422.069 11.5215 716.438 +-423.825 11.3419 705.272 +-428.344 11.2395 698.904 +-435.17 11.1981 696.327 +-430.484 10.8654 675.638 +-432.77 10.7155 666.322 +-435.202 10.5726 657.434 +-438.407 10.4511 649.881 +-440.437 10.3044 640.758 +-443.489 10.1843 633.286 +-445.631 10.0457 624.671 +-448.598 9.92819 617.362 +-450.34 9.78601 608.521 +-452.384 9.6531 600.256 +-455.171 9.53823 593.113 +-462.3 9.51454 591.641 +-460.91 9.31718 579.368 +-469.662 9.32588 579.909 +-465.991 9.08964 565.219 +-469.492 8.99681 559.447 +-472.214 8.89024 552.82 +-474.593 8.77874 545.886 +-477.749 8.68291 539.927 +-479.9 8.57013 532.914 +-483.182 8.47876 527.233 +-485.856 8.3777 520.949 +-488.663 8.28005 514.876 +-492.027 8.19266 509.442 +-494.772 8.09578 503.418 +-496.955 7.99081 496.891 +-499.989 7.90048 491.273 +-502.819 7.80768 485.503 +-383.215 5.84746 363.611 +-381.547 5.72109 355.753 +-380.509 5.60649 348.627 +-382.497 5.53783 344.357 +-383.091 5.44984 338.886 +-2472.81 34.5643 2149.3 +-141.816 1.94759 121.106 +-142.101 1.91728 119.222 +-142.828 1.89317 117.723 +-141.596 1.84371 114.647 +-141.73 1.81276 112.722 +-143.182 1.79875 111.852 +-146.929 1.81286 112.728 +-155.414 1.88312 117.098 +-156.27 1.85934 115.619 +-156.707 1.83072 113.839 +-158.427 1.81707 112.99 +-160.39 1.80583 112.291 +-382.559 4.22773 262.892 +-380.114 4.12264 256.357 +-380.335 4.04783 251.705 +-381.679 3.98556 247.833 +-380.201 3.89471 242.184 +-381.198 3.83013 238.168 +-380.022 3.74457 232.848 +-380.154 3.67287 228.389 +-379.892 3.59818 223.745 +-380.012 3.52785 219.372 +-379.04 3.44826 214.422 +-379.41 3.38169 210.283 +-379.737 3.31528 206.153 +-376.577 3.21961 200.204 +-379.197 3.17407 197.372 +-378.143 3.09811 192.649 +-378.199 3.03201 188.539 +-378.213 2.96615 184.443 +-379.357 2.9095 180.921 +-380.105 2.85004 177.223 +-380.273 2.78659 173.278 +-380.948 2.72724 169.587 +-380.672 2.6615 165.5 +-378.972 2.58662 160.843 +-379.53 2.5278 157.186 +-379.125 2.46302 153.157 +-379.61 2.40442 149.514 +-379.407 2.34184 145.622 +-380.57 2.28794 142.271 +-114.361 0.669294 41.6185 +-111.703 0.636044 39.551 +-109.869 0.608305 37.8261 +-109.531 0.589295 36.644 +-108.706 0.567939 35.316 +-108.724 0.551215 34.2761 +-108.636 0.534056 33.2091 +-108.73 0.517879 32.2031 +-108.334 0.4995 31.0603 +-110.239 0.491586 30.5681 +-110.792 0.477346 29.6827 +-109.401 0.454937 28.2892 +-109.449 0.438792 27.2853 +-110.364 0.426044 26.4926 +-111.078 0.41235 25.6411 +-111.395 0.397097 24.6926 +-113.172 0.3868 24.0523 +-114.651 0.375072 23.323 +-117.206 0.366334 22.7797 +-123.497 0.368042 22.8858 +-158.849 0.45038 28.0059 +-160.765 0.432585 26.8993 +-160.993 0.410009 25.4955 +-160.913 0.386691 24.0455 +-851.829 1.925 119.702 +-862.359 1.82554 113.517 +-379.351 0.748961 46.5725 +-380.935 0.697886 43.3965 +-898.352 1.51824 94.4084 +-404.031 0.625556 38.8988 +-403.857 0.568137 35.3283 +-403.452 0.510564 31.7483 +-403.315 0.453483 28.1989 +-403.346 0.396678 24.6665 +-145.201 0.12236 7.60867 +-403.016 0.282937 17.5938 +-146.211 0.082099 5.10514 +-145.45 0.061243 3.80826 +-146.378 0.0410837 2.5547 +-146.394 0.0205426 1.27739 +119.6 2.66454e-15 -1.13687e-13 +119.595 0.0261956 1.04336 +120.082 0.0526083 2.09537 +120.059 0.0789076 3.14286 +120.027 0.105201 4.19011 +120.186 0.131705 5.24576 +120.335 0.158287 6.30449 +120.175 0.184484 7.34792 +120.605 0.211674 8.4309 +120.527 0.238082 9.48271 +119.643 0.262722 10.4641 +120.244 0.290602 11.5746 +120.536 0.317975 12.6648 +120.023 0.343227 13.6706 +120.793 0.372256 14.8268 +120.659 0.398698 15.88 +120.912 0.426508 16.9876 +120.759 0.452975 18.0418 +120.202 0.477838 19.0321 +120.623 0.506632 20.1789 +120.245 0.53216 21.1957 +120.842 0.562136 22.3896 +120.642 0.588582 23.443 +120.433 0.614984 24.4946 +120.997 0.645515 25.7106 +120.573 0.670905 26.7219 +120.53 0.698416 27.8176 +121.06 0.729476 29.0547 +120.802 0.755965 30.1098 +120.438 0.781767 31.1375 +121.031 0.813962 32.4198 +120.55 0.839099 33.421 +121.311 0.87308 34.7744 +120.907 0.898905 35.803 +121.451 0.931957 37.1195 +121.122 0.958522 38.1776 +121.355 0.98967 39.4182 +121.291 1.0186 40.5705 +121.783 1.05248 41.92 +121.695 1.08163 43.0809 +121.126 1.10653 44.0725 +117.365 1.10137 43.8672 +113.803 1.09645 43.6713 +110.813 1.09558 43.6365 +108.11 1.0963 43.6653 +104.768 1.08921 43.3826 +102.268 1.08955 43.3965 +99.6844 1.08789 43.3303 +97.2012 1.08621 43.2632 +96.6379 1.10537 44.0265 +97.2468 1.13816 45.3326 +96.8474 1.15942 46.1792 +97.9686 1.19929 47.7674 +98.1743 1.22855 48.9325 +96.9415 1.23975 49.3786 +96.5068 1.26093 50.2224 +96.8594 1.29263 51.4848 +96.3184 1.31259 52.2801 +96.558 1.34338 53.5061 +96.8706 1.3756 54.7894 +97.1681 1.40806 56.0823 +96.6748 1.42928 56.9279 +96.8599 1.46075 58.181 +96.1778 1.47928 58.9192 +96.4231 1.51226 60.2328 +96.5683 1.54411 61.5014 +96.6987 1.57614 62.7771 +96.147 1.59726 63.6183 +96.2513 1.62949 64.9018 +96.4228 1.6633 66.2486 +96.578 1.69731 67.6034 +95.9842 1.7184 68.4433 +96.0303 1.75116 69.7481 +96.1413 1.78557 71.1184 +96.1557 1.81864 72.4357 +96.1544 1.85185 73.7587 +96.2161 1.88675 75.1486 +95.5565 1.90775 75.9851 +96.133 1.95388 77.8224 +96.1444 1.98923 79.2303 +96.2152 2.02635 80.7087 +96.0393 2.05876 81.9995 +95.9991 2.09453 83.4244 +95.9412 2.13045 84.8549 +95.8657 2.16649 86.2906 +96.2884 2.21454 88.2043 +96.2461 2.25266 89.7227 +96.1121 2.28921 91.1783 +95.888 2.32412 92.5688 +96.3601 2.3767 94.663 +96.2372 2.41546 96.2069 +95.3938 2.43645 97.0428 +95.7934 2.48975 99.1657 +96.1631 2.54341 101.303 +95.889 2.58088 102.796 +95.6636 2.62029 104.365 +95.8864 2.67287 106.459 +95.351 2.70505 107.741 +95.719 2.76371 110.077 +95.2091 2.79794 111.441 +95.7754 2.86483 114.105 +95.3481 2.90313 115.631 +95.5938 2.96289 118.011 +94.8712 2.99354 119.231 +95.0581 3.05377 121.631 +95.0277 3.10832 123.803 +94.9664 3.16311 125.985 +95.3501 3.23421 128.817 +95.2212 3.28951 131.02 +95.1191 3.34701 133.31 +95.1563 3.41088 135.854 +94.873 3.4647 137.998 +94.6714 3.5228 140.312 +94.7676 3.59363 143.133 +94.7127 3.66057 145.799 +94.5647 3.72563 148.39 +94.3256 3.78878 150.905 +94.52 3.87135 154.194 +94.6125 3.95214 157.412 +94.6052 4.03111 160.557 +94.2 4.09513 163.108 +94.6931 4.2008 167.316 +94.6348 4.28506 170.672 +94.4774 4.36738 173.951 +94.6455 4.46768 177.946 +94.3352 4.54835 181.159 +94.43 4.65158 185.271 +94.3708 4.75072 189.219 +94.2498 4.85016 193.18 +94.0667 4.94991 197.153 +94.2016 5.07041 201.952 +94.2598 5.19133 206.769 +94.2409 5.31266 211.601 +94.2244 5.43899 216.633 +94.1271 5.56571 221.68 +94.2167 5.709 227.387 +94.251 5.85508 233.206 +94.0442 5.99227 238.67 +93.8566 6.13684 244.428 +93.7855 6.29587 250.762 +93.6451 6.45768 257.207 +93.4993 6.627 263.951 +93.6985 6.82995 272.034 +93.6366 7.02397 279.762 +93.0141 7.18505 286.178 +93.3992 7.43494 296.131 +93.0912 7.64233 304.391 +92.8446 7.86699 313.339 +92.9725 8.13796 324.132 +92.9188 8.40953 334.948 +93.0972 8.72051 347.335 +92.8159 9.00784 358.779 +94.0108 9.46377 376.938 +107.712 11.2607 448.51 +103.635 11.2668 448.751 +99.5189 11.267 448.76 +95.3275 11.2564 448.34 +92.108 11.363 452.582 +91.7791 11.8508 472.014 +91.6462 12.4109 494.323 +91.3216 12.999 517.747 +91.1558 13.6721 544.554 +91.0292 14.4253 574.555 +91.021 15.2862 608.844 +90.6434 16.1879 644.759 +90.5982 17.2722 687.945 +90.2686 18.4523 734.947 +96.4831 21.2544 846.554 +89.6541 21.4095 852.732 +89.2036 23.2521 926.123 +90.4589 25.9512 1033.62 +88.29 28.1569 1121.48 +88.0466 31.603 1258.73 +82.5315 33.8681 1348.95 +87.2022 41.7628 1663.4 +79.1779 45.5164 1812.9 +67.0489 48.1909 1919.43 +77.9026 74.6691 2974.04 +57.1793 82.2194 3274.77 +25.9396 74.6041 2971.45 +1.53766e-13 82.232 3275.27 +-27.7635 79.8496 3180.38 +-57.1793 82.2194 3274.77 +-85.7531 82.1938 3273.75 +-114.355 82.1918 3273.67 +-119.482 68.6858 2735.73 +-125.475 60.0924 2393.46 +-125.784 51.6177 2055.91 +-120.246 43.1603 1719.06 +-139.077 44.3535 1766.58 +-120.754 34.6424 1379.8 +-135.938 35.4341 1411.33 +-155.037 37.0228 1474.61 +-118.716 26.1522 1041.63 +-128.109 26.1873 1043.03 +-149.113 28.4279 1132.27 +-381.432 68.1195 2713.17 +-143.892 24.1655 962.504 +-111.913 17.7348 706.369 +-117.398 17.6081 701.324 +-123.829 17.6262 702.045 +-145.971 19.7677 787.339 +-625.224 80.7311 3215.49 +-653.269 80.591 3209.91 +-681.264 80.4449 3204.09 +-709.208 80.2926 3198.02 +-143.091 15.5563 619.602 +-146.604 15.3267 610.456 +-152.629 15.3646 611.967 +-142.817 13.8605 552.057 +-143.36 13.4286 534.857 +-146.66 13.2734 528.673 +-903.071 79.0464 3148.39 +-109.403 9.27 369.221 +-111.569 9.15929 364.811 +-114.238 9.09381 362.203 +-117.334 9.06366 361.002 +-121.083 9.08284 361.766 +-125.116 9.12006 363.249 +-1093.78 77.5247 3087.78 +-1120.56 77.2727 3077.74 +-1147.52 77.0337 3068.22 +-1174.26 76.7795 3058.1 +-446.289 28.4365 1132.61 +-540.745 33.5923 1337.97 +-1253.86 75.977 3026.14 +-414.722 24.5224 976.716 +-158.583 9.154 364.6 +-162.247 9.14642 364.298 +-164.343 9.05117 360.504 +-168.202 9.05347 360.596 +-409.373 21.5417 857.998 +-141.199 7.26622 289.411 +-141.712 7.13392 284.141 +-144.278 7.10709 283.073 +-147.76 7.12419 283.754 +-412.102 19.453 774.807 +-414.89 19.179 763.89 +-418.003 18.9271 753.859 +-418.954 18.5858 740.266 +-421.65 18.3303 730.089 +-422.576 18.0058 717.166 +-424.288 17.7233 705.912 +-428.501 17.5505 699.03 +-434.905 17.4688 695.774 +-430.861 16.9749 676.103 +-433.424 16.7514 667.204 +-435.699 16.5219 658.062 +-438.407 16.3135 649.76 +-440.891 16.101 641.298 +-443.833 15.9093 633.66 +-445.631 15.6807 624.555 +-448.421 15.4911 617.005 +-450.34 15.2753 608.408 +-452.745 15.0798 600.624 +-454.806 14.8766 592.527 +-463.408 14.8871 592.949 +-461.159 14.5513 579.573 +-470.417 14.5805 580.734 +-466.373 14.1999 565.577 +-469.492 14.0434 559.343 +-472.214 13.877 552.717 +-474.987 13.7144 546.238 +-477.484 13.5459 539.527 +-480.503 13.3942 533.484 +-483.182 13.2347 527.135 +-485.856 13.077 520.852 +-489.076 12.9355 515.216 +-492.304 12.7954 509.635 +-494.491 12.6298 503.039 +-497.591 12.4891 497.434 +-500.274 12.3391 491.463 +-502.819 12.1872 485.413 +-382.853 9.11883 363.2 +-381.255 8.92336 355.414 +-382.721 8.80221 350.589 +-383.017 8.65591 344.761 +-383.69 8.52012 339.353 +-383.392 8.36496 333.173 +-141.664 3.03678 120.954 +-142.254 2.99597 119.328 +-142.751 2.9535 117.637 +-141.596 2.87791 114.626 +-141.496 2.82492 112.516 +-143.103 2.80617 111.769 +-146.77 2.82668 112.586 +-155.654 2.94397 117.257 +-155.546 2.88885 115.062 +-156.707 2.85763 113.818 +-158.02 2.82901 112.678 +-160.144 2.81446 112.099 +-381.323 6.57786 261.993 +-379.368 6.42252 255.806 +-381.336 6.33502 252.321 +-381.344 6.2157 247.569 +-381.213 6.09553 242.782 +-381.367 5.98123 238.23 +-381.13 5.86206 233.483 +-381.268 5.74991 229.017 +-378.772 5.59995 223.044 +-379.666 5.50171 219.131 +-380.345 5.40104 215.121 +-380.285 5.29075 210.729 +-379.473 5.17133 205.972 +-380.462 5.07741 202.231 +-379.375 4.95681 197.428 +-377.341 4.82567 192.204 +-378.468 4.73611 188.638 +-377.673 4.62334 184.146 +-379.808 4.54692 181.102 +-379.834 4.44552 177.063 +-381.092 4.35905 173.619 +-2993.05 33.4467 1332.17 +-380.213 4.1494 165.269 +-379.524 4.0434 161.047 +-379.53 3.94572 157.156 +-378.291 3.83611 152.791 +-380.076 3.75773 149.669 +-379.127 3.65274 145.487 +-380.57 3.57132 142.244 +-113.797 1.03957 41.4056 +-111.703 0.99282 39.5436 +-109.869 0.949522 37.8191 +-109.342 0.918253 36.5737 +-108.706 0.886513 35.3095 +-108.819 0.861161 34.2997 +-108.732 0.83436 33.2322 +-109.018 0.810511 32.2823 +-108.526 0.78107 31.1097 +-109.854 0.764647 30.4556 +-111.178 0.747703 29.7807 +-109.401 0.710125 28.284 +-109.643 0.686137 27.3286 +-110.558 0.666196 26.5343 +-111.078 0.64365 25.6363 +-111.395 0.619841 24.688 +-113.172 0.603767 24.0478 +-114.847 0.586462 23.3585 +-117.206 0.571821 22.7754 +-123.792 0.57586 22.9363 +-158.357 0.70083 27.9138 +-159.482 0.669848 26.6798 +-159.314 0.633322 25.225 +-161.506 0.605823 24.1297 +-852.324 3.00651 119.748 +-862.854 2.85118 113.561 +-380.542 1.17275 46.71 +-380.041 1.08679 43.2866 +-897.457 2.3675 94.2968 +-404.33 0.977168 38.9202 +-402.961 0.884854 35.2434 +-402.854 0.795773 31.6953 +-402.417 0.706282 28.1309 +-403.047 0.618726 24.6436 +-143.303 0.188499 7.50784 +-403.915 0.442629 17.6297 +-151.508 0.132793 5.28909 +-147.749 0.0971069 3.86773 +-146.678 0.0642603 2.55946 +-145.794 0.0319343 1.27193 +119.7 3.55271e-15 -1.13687e-13 +119.595 0.035607 1.04308 +120.082 0.0715092 2.09481 +120.059 0.107257 3.14202 +120.227 0.143235 4.19597 +120.285 0.179172 5.24871 +120.235 0.214976 6.29758 +120.076 0.250556 7.33986 +120.506 0.287485 8.42167 +119.73 0.321478 9.41745 +119.842 0.357705 10.4787 +120.343 0.395335 11.5811 +120.536 0.432215 12.6614 +120.918 0.470016 13.7688 +119.9 0.502256 14.7132 +120.659 0.54194 15.8758 +120.12 0.575944 16.8719 +120.66 0.615212 18.0222 +120.202 0.649513 19.027 +119.735 0.683585 20.0251 +120.344 0.723945 21.2074 +120.055 0.759126 22.238 +119.759 0.794187 23.2651 +120.433 0.835932 24.488 +120.214 0.871755 25.5374 +120.67 0.912681 26.7363 +120.432 0.948575 27.7878 +121.06 0.991558 29.047 +120.802 1.02756 30.1018 +120.438 1.06264 31.1292 +121.031 1.1064 32.4111 +121.514 1.14968 33.6792 +121.311 1.18676 34.7652 +121.77 1.23058 36.0489 +120.59 1.25781 36.8466 +120.931 1.30084 38.1073 +121.355 1.34523 39.4076 +121.385 1.38564 40.5914 +121.783 1.43061 41.9088 +121.789 1.47137 43.1027 +121.314 1.50641 44.1291 +117.365 1.49707 43.8555 +114.457 1.49894 43.9103 +110.813 1.48919 43.6249 +108.202 1.49146 43.6912 +104.768 1.48053 43.371 +102.084 1.47834 43.3069 +99.6844 1.47874 43.3188 +97.1099 1.47506 43.2109 +96.9109 1.50675 44.1391 +97.2468 1.54708 45.3205 +96.8474 1.57597 46.1669 +97.3394 1.6197 47.448 +97.6373 1.6608 48.6519 +97.0306 1.68671 49.4108 +96.5955 1.71553 50.2551 +96.8594 1.75703 51.471 +96.3184 1.78418 52.2662 +96.6455 1.82767 53.5403 +96.8706 1.86981 54.7748 +97.1681 1.91393 56.0673 +96.6748 1.94279 56.9126 +96.8599 1.98556 58.1654 +96.1778 2.01075 58.9035 +97.1015 2.07004 60.6405 +96.484 2.09704 61.4313 +96.6987 2.14241 62.7603 +96.147 2.17112 63.6013 +96.3342 2.21683 64.9404 +95.7635 2.24542 65.7781 +96.4961 2.30516 67.528 +95.9028 2.3338 68.367 +96.0303 2.38031 69.7295 +96.1413 2.42707 71.0994 +96.1557 2.47203 72.4163 +96.1544 2.51718 73.7389 +96.1373 2.56251 75.067 +96.1825 2.61015 76.4625 +96.2107 2.65801 77.8645 +96.1444 2.70391 79.2092 +96.1386 2.75217 80.6228 +96.0393 2.79841 81.9776 +96.6783 2.86719 83.9923 +95.8663 2.8936 84.766 +95.7914 2.94258 86.2007 +96.3621 3.01247 88.2482 +95.5879 3.04105 89.0853 +96.1121 3.11166 91.1539 +95.9599 3.16149 92.6135 +95.7182 3.20906 94.0072 +96.2372 3.28327 96.1812 +96.0947 3.33613 97.7297 +95.7934 3.38425 99.1393 +95.9566 3.44976 101.058 +95.8208 3.50564 102.695 +95.596 3.5592 104.264 +95.2842 3.61034 105.762 +95.9474 3.6999 108.386 +95.719 3.75663 110.048 +95.7936 3.8265 112.095 +95.2611 3.87318 113.462 +95.4117 3.94878 115.677 +95.5308 4.02476 117.902 +95.4315 4.09309 119.904 +94.9966 4.14822 121.519 +94.845 4.21693 123.532 +94.9062 4.2968 125.872 +95.2311 4.39069 128.622 +94.751 4.44927 130.338 +95.1191 4.5495 133.274 +95.099 4.63353 135.736 +94.9297 4.71231 138.044 +94.7832 4.79412 140.44 +94.4916 4.8705 142.678 +94.8217 4.98145 145.928 +94.4573 5.05838 148.182 +94.8026 5.17602 151.628 +94.4155 5.25639 153.982 +94.6125 5.37205 157.37 +94.7574 5.48818 160.772 +94.3 5.57231 163.237 +94.5453 5.70114 167.011 +94.247 5.80069 169.927 +94.4774 5.93647 173.905 +94.2229 6.04571 177.105 +94.3352 6.18245 181.111 +94.0668 6.29848 184.51 +94.3262 6.45446 189.079 +94.2498 6.5927 193.129 +94.0236 6.72521 197.01 +94.4974 6.91371 202.532 +94.2598 7.05645 206.714 +94.2816 7.22451 211.637 +94.1845 7.38997 216.484 +94.1662 7.56847 221.713 +94.2167 7.7601 227.327 +93.9139 7.93021 232.31 +94.1175 8.15149 238.792 +93.9999 8.35438 244.735 +93.8556 8.56419 250.882 +93.7135 8.78418 257.326 +93.4993 9.00791 263.88 +93.5683 9.27088 271.584 +93.3828 9.52164 278.93 +93.0141 9.76646 286.101 +93.0985 10.0736 295.099 +93.0034 10.3783 304.024 +92.9582 10.7065 313.639 +93 11.065 324.141 +92.999 11.4407 335.148 +92.7349 11.8074 345.89 +92.7908 12.2409 358.587 +93.6238 12.8109 375.285 +107.735 15.3097 448.488 +103.545 15.3013 448.242 +99.4973 15.3116 448.542 +95.3275 15.3006 448.22 +91.9684 15.422 451.776 +91.7028 16.0951 471.495 +91.6462 16.8699 494.191 +91.1827 17.6424 516.822 +91.0238 18.5572 543.62 +90.9666 19.5945 574.007 +91.0063 20.7748 608.583 +90.5182 21.9734 643.695 +90.4285 23.4337 686.473 +90.5855 25.1698 737.331 +96.5623 28.9143 847.024 +89.6645 29.1048 852.604 +89.0982 31.5687 924.781 +90.886 35.4412 1038.23 +88.2194 38.2422 1120.28 +88.0815 42.9738 1258.89 +82.1774 45.8386 1342.81 +87.2493 56.7978 1663.85 +79.2303 61.9102 1813.61 +67.0803 65.5354 1919.81 +85.774 111.751 3273.67 +57.1863 111.772 3274.29 +22.7571 88.9656 2606.18 +1.50657e-13 111.789 3274.79 +-28.5942 111.785 3274.67 +-57.1863 111.772 3274.29 +-85.774 111.751 3273.67 +-114.355 111.721 3272.79 +-142.91 111.669 3271.27 +-125.538 81.723 2394.02 +-125.888 70.2203 2057.05 +-120.33 58.7076 1719.8 +-139.406 60.4312 1770.29 +-120.859 47.1292 1380.62 +-136.341 48.3072 1415.13 +-155.078 50.3378 1474.61 +-118.818 35.5784 1042.24 +-128.146 35.606 1043.05 +-149.165 38.6547 1132.36 +-455.973 110.688 3242.53 +-144.04 32.8813 963.235 +-111.991 24.1233 706.674 +-117.497 23.9544 701.728 +-123.829 23.9588 701.857 +-145.916 26.8596 786.834 +-625.224 109.736 3214.63 +-653.269 109.545 3209.05 +-681.181 109.333 3202.83 +-709.208 109.14 3197.17 +-143.316 21.1785 620.41 +-146.814 20.863 611.167 +-153.645 21.0238 615.876 +-143.292 18.903 553.748 +-143.36 18.2532 534.715 +-146.821 18.0619 529.111 +-903.071 107.446 3147.55 +-109.204 12.5776 368.451 +-111.54 12.4467 364.618 +-114.569 12.3968 363.154 +-117.488 12.3362 361.382 +-121.02 12.3396 361.48 +-125.311 12.416 363.718 +-1093.78 105.377 3086.95 +-1120.7 105.048 3077.3 +-1147.52 104.71 3067.4 +-1174.26 104.364 3057.28 +-1200.84 104.004 3046.74 +-1227.4 103.643 3036.15 +-383.334 31.5731 924.911 +-415.113 33.364 977.375 +-158.822 12.4616 365.052 +-162.003 12.4138 363.653 +-164.758 12.3341 361.318 +-167.822 12.2784 359.685 +-1410.57 100.893 2955.6 +-141.156 9.87372 289.244 +-141.712 9.69696 284.066 +-143.915 9.63617 282.285 +-147.898 9.69283 283.945 +-412.055 26.439 774.512 +-415.367 26.0995 764.565 +-418.245 25.742 754.095 +-419.446 25.2929 740.937 +-421.65 24.9159 729.894 +-423.338 24.519 718.267 +-424.958 24.1288 706.837 +-429.807 23.9287 700.974 +-436.071 23.8085 697.453 +-430.592 23.0591 675.501 +-433.26 22.7612 666.774 +-436.03 22.4749 658.387 +-438.911 22.2 650.333 +-441.004 21.8914 641.291 +-443.833 21.6251 633.491 +-445.631 21.3143 624.388 +-448.598 21.065 617.083 +-451.173 20.8017 609.37 +-452.926 20.5058 600.703 +-454.988 20.2294 592.607 +-463.778 20.2519 593.263 +-462.279 19.8273 580.827 +-469.347 19.7737 579.258 +-466.373 19.3016 565.426 +-469.492 19.0888 559.193 +-472.214 18.8627 552.569 +-474.987 18.6416 546.092 +-477.484 18.4126 539.383 +-480.503 18.2063 533.341 +-483.858 18.0148 527.731 +-486.197 17.7877 521.078 +-489.076 17.5829 515.078 +-492.513 17.3998 509.715 +-494.772 17.1771 503.19 +-497.874 16.9857 497.584 +-500.274 16.7723 491.332 +-502.819 16.5658 485.283 +-380.096 12.3057 360.488 +-2396.28 76.2357 2233.27 +-380.656 11.9001 348.604 +-380.267 11.6813 342.195 +-380.17 11.4749 336.15 +-2472.81 73.3361 2148.33 +-141.74 4.13004 120.987 +-141.412 4.04823 118.59 +-142.828 4.01681 117.669 +-141.596 3.91186 114.595 +-142.435 3.86533 113.232 +-143.024 3.81228 111.678 +-146.532 3.83599 112.373 +-155.175 3.98934 116.865 +-155.546 3.92674 115.031 +-157.03 3.89232 114.023 +-158.427 3.85533 112.939 +-160.881 3.84322 112.584 +-380.581 8.92371 261.414 +-382.85 8.81007 258.085 +-382.587 8.63928 253.082 +-380.589 8.43213 247.013 +-381.972 8.30201 243.201 +-380.774 8.11747 237.795 +-381.556 7.97705 233.682 +-378.525 7.75949 227.309 +-379.634 7.62916 223.491 +-379.666 7.47833 219.072 +-380.345 7.34149 215.064 +-379.235 7.17173 210.091 +-379.737 7.03414 206.06 +-379.667 6.8872 201.755 +-380.173 6.75182 197.79 +-378.767 6.58417 192.879 +-379.631 6.45747 189.167 +-380.01 6.32325 185.235 +-378.273 6.15553 180.322 +-379.471 6.03691 176.847 +-377.361 5.86711 171.873 +-380.035 5.77258 169.104 +-380.672 5.64699 165.425 +-378.972 5.48811 160.77 +-380.361 5.37509 157.459 +-379.125 5.22586 153.088 +-379.61 5.10154 149.446 +-378.567 4.95774 145.233 +-380.102 4.84843 142.031 +-113.797 1.41306 41.3945 +-111.703 1.34952 39.5331 +-109.869 1.29066 37.809 +-109.437 1.24924 36.5957 +-108.706 1.20501 35.3 +-108.056 1.16235 34.0502 +-108.541 1.13213 33.1649 +-108.251 1.09396 32.0466 +-108.526 1.06169 31.1014 +-110.336 1.04392 30.581 +-111.081 1.01545 29.7469 +-109.304 0.964401 28.2514 +-109.74 0.933475 27.3455 +-110.461 0.904749 26.504 +-111.078 0.874897 25.6295 +-111.395 0.842534 24.6814 +-113.172 0.820686 24.0414 +-114.161 0.792403 23.2129 +-116.617 0.773356 22.6549 +-124.382 0.78648 23.0394 +-158.554 0.953808 27.9411 +-160.173 0.914448 26.7881 +-160.203 0.865661 25.3589 +-161.803 0.824991 24.1675 +-3244.61 15.5572 455.736 +-862.854 3.87553 113.531 +-380.542 1.59408 46.6975 +-380.637 1.47957 43.343 +-898.153 3.22059 94.3447 +-404.429 1.32857 38.9194 +-405.252 1.2096 35.4344 +-402.555 1.08087 31.6634 +-404.013 0.963838 28.235 +-403.945 0.842892 24.6919 +-145.201 0.259615 7.60522 +-403.416 0.600911 17.6032 +-144.012 0.171572 5.02609 +-148.649 0.132799 3.89024 +-144.478 0.0860373 2.5204 +-146.694 0.0436752 1.27943 +119.7 3.55271e-15 -1.13687e-13 +119.595 0.0450156 1.04272 +120.282 0.0905547 2.09757 +120.259 0.135824 3.14616 +120.227 0.181082 4.1945 +120.285 0.226515 5.24688 +120.235 0.27178 6.29539 +120.974 0.319131 7.39219 +120.605 0.363749 8.42571 +120.527 0.409129 9.47687 +120.739 0.455607 10.5535 +120.244 0.499381 11.5674 +119.74 0.542814 12.5735 +120.918 0.594209 13.764 +119.999 0.635494 14.7203 +120.659 0.685138 15.8702 +120.219 0.728727 16.8799 +120.66 0.777771 18.0159 +121.091 0.827208 19.1611 +120.623 0.870615 20.1665 +120.344 0.915234 21.2001 +119.957 0.958922 22.212 +120.642 1.01144 23.4286 +120.433 1.05681 24.4795 +120.214 1.1021 25.5285 +120.67 1.15384 26.727 +120.53 1.20018 27.8005 +120.963 1.25255 29.0136 +120.802 1.29908 30.0913 +120.534 1.3445 31.1433 +121.224 1.40098 32.4516 +121.321 1.45116 33.614 +121.311 1.50033 34.753 +121.003 1.54594 35.8093 +120.59 1.59016 36.8338 +121.122 1.64716 38.1541 +121.355 1.70069 39.3939 +121.291 1.7504 40.5455 +121.783 1.80863 41.8942 +121.695 1.85872 43.0544 +121.314 1.90445 44.1137 +117.365 1.89264 43.8402 +114.457 1.89501 43.895 +110.813 1.88269 43.6097 +108.202 1.88555 43.6759 +104.676 1.87008 43.3177 +102.176 1.87065 43.3308 +99.6844 1.86948 43.3037 +97.9321 1.88061 43.5616 +96.5469 1.89773 43.9581 +97.2468 1.95586 45.3047 +96.8474 1.99239 46.1508 +97.3394 2.04768 47.4314 +98.0848 2.10926 48.8578 +97.0306 2.13239 49.3936 +96.5955 2.16882 50.2376 +96.7711 2.21927 51.4062 +97.1093 2.27413 52.6769 +96.6455 2.3106 53.5216 +96.8706 2.36388 54.7557 +96.3886 2.40025 55.5982 +96.5886 2.45395 56.8422 +96.8599 2.5102 58.1451 +96.3483 2.54656 58.9874 +96.4231 2.59873 60.1957 +96.0623 2.63956 61.1414 +95.9439 2.68736 62.2487 +96.147 2.74479 63.5791 +96.3342 2.80258 64.9177 +96.3404 2.85584 66.1513 +96.4961 2.91426 67.5044 +95.9028 2.95046 68.3431 +95.9494 3.00673 69.6464 +96.1413 3.06838 71.0746 +96.1557 3.12522 72.3911 +96.1544 3.1823 73.7132 +96.2161 3.24227 75.1023 +96.1825 3.29984 76.4358 +96.2107 3.36034 77.8374 +96.0673 3.41563 79.118 +96.1386 3.47938 80.5947 +96.0393 3.53785 81.949 +95.9991 3.59932 83.373 +96.6153 3.68676 85.3985 +95.8657 3.72299 86.2375 +96.2884 3.80555 88.15 +96.173 3.86812 89.5993 +96.1121 3.93386 91.1221 +95.888 3.99386 92.5118 +95.7895 4.06003 94.0445 +95.5301 4.12032 95.4412 +95.9545 4.2115 97.5531 +95.7934 4.27848 99.1047 +95.4748 4.33938 100.515 +95.6844 4.42564 102.514 +95.596 4.49966 104.228 +95.8864 4.59317 106.394 +95.9474 4.67753 108.348 +95.719 4.74926 110.01 +95.7286 4.83431 111.98 +95.7111 4.91971 113.958 +95.3481 4.98885 115.559 +95.2791 5.07481 117.551 +95.3692 5.17125 119.784 +95.0581 5.24772 121.556 +94.9059 5.33463 123.569 +94.9664 5.4356 125.908 +94.8742 5.53006 128.096 +94.8098 5.62836 130.373 +95.0611 5.74813 133.147 +95.2137 5.86493 135.852 +94.873 5.95387 137.913 +94.7273 6.0573 140.308 +94.3812 6.15024 142.461 +94.7127 6.29046 145.709 +94.5647 6.40226 148.299 +94.3786 6.5144 150.896 +94.4155 6.6453 153.929 +94.561 6.78781 157.23 +94.6052 6.92721 160.459 +94.35 7.04845 163.267 +94.6931 7.21882 167.213 +94.6348 7.36361 170.567 +94.4774 7.50508 173.844 +94.176 7.63935 176.954 +94.3352 7.81606 181.047 +94.4754 7.99729 185.245 +94.3708 8.16382 189.103 +94.2498 8.33471 193.061 +94.0236 8.50223 196.942 +94.1171 8.70538 201.647 +94.2598 8.92099 206.642 +94.2816 9.13345 211.563 +94.1845 9.34264 216.408 +94.1662 9.5683 221.636 +94.2167 9.81057 227.247 +93.9139 10.0256 232.229 +94.1542 10.3094 238.802 +93.9999 10.5619 244.65 +93.7855 10.8191 250.608 +93.4057 11.0687 256.391 +93.5327 11.3921 263.882 +93.3404 11.692 270.828 +93.5414 12.058 279.306 +93.1995 12.3717 286.572 +93.1286 12.7395 295.091 +93.0034 13.1205 303.918 +92.873 13.5231 313.242 +92.8622 13.968 323.548 +92.9722 14.4596 334.935 +92.9937 14.969 346.734 +92.7658 15.4711 358.365 +93.3335 16.1457 373.992 +107.875 19.3802 448.914 +103.792 19.3906 449.156 +99.4324 19.3448 448.093 +95.5562 19.3899 449.139 +91.8488 19.4716 451.031 +91.5311 20.3099 470.449 +91.3364 21.2553 492.348 +91.1827 22.3041 516.642 +91.0403 23.4649 543.529 +90.9354 24.7634 573.609 +90.8289 26.213 607.184 +88.8481 27.267 631.599 +88.6142 29.0312 672.466 +90.3661 31.7434 735.288 +96.4831 36.5244 846.033 +89.675 36.7995 852.406 +89.0982 39.9101 924.459 +90.8947 44.8102 1037.96 +88.4077 48.4505 1122.28 +88.1024 54.3418 1258.75 +82.7574 58.3595 1351.81 +87.3958 71.9259 1666.06 +79.2303 78.2688 1812.98 +67.0978 82.8735 1919.64 +85.774 141.28 3272.53 +57.1863 141.306 3273.15 +28.5942 141.323 3273.53 +1.55098e-13 141.328 3273.65 +-28.5942 141.323 3273.53 +-57.1863 141.306 3273.15 +-85.774 141.28 3272.53 +-114.355 141.242 3271.65 +-142.928 141.193 3270.53 +-125.465 103.256 2391.78 +-125.754 88.6802 2054.15 +-120.386 74.2546 1720 +-138.935 76.1411 1763.7 +-120.815 59.5611 1379.64 +-136.024 60.9301 1411.36 +-155.016 63.6133 1473.51 +-118.784 44.9664 1041.58 +-128.255 45.0531 1043.59 +-149.335 48.9241 1133.25 +-456.028 139.952 3241.79 +-144.144 41.5995 963.59 +-111.851 30.4591 705.54 +-117.547 30.2967 701.779 +-123.985 30.3278 702.499 +-145.843 33.9399 786.167 +-625.224 138.731 3213.51 +-653.269 138.491 3207.93 +-681.264 138.24 3202.12 +-709.208 137.978 3196.05 +-143.271 26.7662 619.999 +-146.72 26.3589 610.565 +-153.016 26.4701 613.141 +-143.142 23.8727 552.975 +-143.489 23.0971 535.011 +-146.928 22.8511 529.311 +-903.071 135.836 3146.45 +-109.431 15.9341 369.089 +-111.569 15.7397 364.586 +-114.208 15.6231 361.885 +-117.519 15.6 361.35 +-121.083 15.6083 361.543 +-125.246 15.6886 363.403 +-1093.78 133.221 3085.88 +-1120.56 132.788 3075.85 +-1147.52 132.378 3066.33 +-1174.26 131.941 3056.21 +-383.434 41.984 972.497 +-384.721 41.0703 951.332 +-1253.86 130.562 3024.27 +-415.621 42.2315 978.23 +-159.141 15.786 365.658 +-161.881 15.6821 363.253 +-164.799 15.597 361.282 +-167.779 15.5188 359.469 +-1410.57 127.553 2954.57 +-141.462 12.5098 289.771 +-141.757 12.2631 284.056 +-144.278 12.2131 282.898 +-148.267 12.2846 284.554 +-412.572 33.4669 775.212 +-415.796 33.0299 765.088 +-418.1 32.5326 753.57 +-420.185 32.0324 741.984 +-421.65 31.4995 729.639 +-423.541 31.0126 718.361 +-424.958 30.5045 706.591 +-429.389 30.222 700.048 +-436.865 30.1543 698.48 +-430.861 29.1703 675.687 +-433.805 28.8117 667.379 +-436.196 28.4243 658.407 +-438.743 28.0552 649.858 +-440.891 27.6686 640.903 +-444.006 27.3497 633.516 +-445.631 26.9463 624.171 +-448.421 26.6205 616.625 +-450.816 26.2774 608.676 +-453.107 25.9345 600.733 +-455.354 25.5952 592.876 +-465.379 25.6914 595.103 +-462.466 25.0765 580.859 +-468.529 24.955 578.047 +-466.373 24.4017 565.229 +-470.071 24.1624 559.687 +-472.603 23.8665 552.832 +-475.84 23.6096 546.882 +-478.345 23.3198 540.168 +-480.703 23.0266 533.378 +-483.858 22.7749 527.547 +-486.469 22.5004 521.19 +-489.282 22.2383 515.116 +-492.027 21.9757 509.034 +-495.122 21.7312 503.371 +-497.874 21.4739 497.411 +-500.63 21.2191 491.51 +-502.819 20.943 485.114 +-380.169 15.5603 360.431 +-381.693 15.3519 355.604 +-381.541 15.0794 349.293 +-382.051 14.8371 343.68 +-382.641 14.6013 338.218 +-2472.81 92.7139 2147.58 +-141.74 5.22133 120.944 +-142.101 5.14283 119.126 +-142.828 5.07818 117.628 +-141.518 4.94279 114.492 +-142.2 4.87861 113.006 +-143.024 4.8196 111.639 +-146.85 4.8601 112.577 +-155.175 5.04346 116.824 +-156.27 4.98743 115.526 +-157.03 4.92079 113.983 +-158.183 4.86653 112.726 +-160.636 4.85131 112.373 +-381.818 11.3183 262.172 +-379.036 11.027 255.425 +-380.669 10.8673 251.725 +-380.84 10.6672 247.091 +-381.972 10.4957 243.117 +-381.961 10.2944 238.454 +-380.022 10.0443 232.661 +-378.354 9.80535 227.126 +-382.477 9.71728 225.086 +-379.319 9.44572 218.796 +-379.127 9.25163 214.3 +-380.285 9.09183 210.599 +-380.264 8.90516 206.275 +-379.667 8.70702 201.685 +-379.907 8.52992 197.583 +-378.143 8.31025 192.495 +-378.199 8.13294 188.388 +-379.381 7.98082 184.864 +-381.252 7.84331 181.679 +-378.655 7.61567 176.406 +-379.09 7.45138 172.6 +-380.4 7.30491 169.207 +-380.121 7.12876 165.127 +-380.997 6.97534 161.574 +-379.992 6.78876 157.252 +-379.682 6.61636 153.258 +-379.61 6.44953 149.394 +-379.967 6.29094 145.72 +-379.633 6.12199 141.807 +-113.985 1.78938 41.4484 +-111.703 1.7061 39.5193 +-109.869 1.63169 37.7958 +-109.531 1.5807 36.6146 +-108.611 1.52209 35.2569 +-108.819 1.47985 34.2786 +-108.923 1.43631 33.2701 +-108.538 1.38669 32.1206 +-108.526 1.34222 31.0905 +-110.239 1.31861 30.5437 +-110.309 1.27483 29.5296 +-109.401 1.22031 28.2666 +-109.837 1.18117 27.3601 +-110.072 1.13978 26.4014 +-111.176 1.10704 25.643 +-111.493 1.06609 24.6944 +-113.172 1.03754 24.033 +-113.965 1.00006 23.1649 +-117.206 0.98264 22.7614 +-124.578 0.995864 23.0677 +-156.191 1.18786 27.515 +-159.088 1.14825 26.5974 +-159.907 1.09237 25.3031 +-163.287 1.05254 24.3806 +-852.72 5.16892 119.73 +-863.449 4.90293 113.569 +-377.862 2.0011 46.3525 +-380.041 1.86759 43.2599 +-897.755 4.06976 94.27 +-402.837 1.67301 38.7527 +-403.459 1.52245 35.2653 +-402.854 1.36749 31.6758 +-403.415 1.21671 28.1832 +-403.246 1.06377 24.6406 +-144.502 0.326633 7.56596 +-401.817 0.75668 17.5274 +-147.01 0.221423 5.12894 +-147.949 0.167098 3.87058 +-145.378 0.109449 2.53522 +-146.894 0.0552911 1.28074 +119.7 3.55271e-15 -1.13687e-13 +119.495 0.054375 1.0414 +120.082 0.109292 2.09318 +120.259 0.164201 3.14481 +120.227 0.218915 4.1927 +120.285 0.273839 5.24463 +120.235 0.328562 6.29268 +120.076 0.38294 7.33415 +120.605 0.439745 8.42209 +120.627 0.495016 9.48064 +120.54 0.549882 10.5315 +120.343 0.604215 11.572 +120.536 0.660581 12.6516 +119.825 0.711863 13.6337 +120.594 0.772076 14.787 +120.659 0.828281 15.8634 +120.12 0.880251 16.8587 +120.759 0.941038 18.0229 +121.091 1.00003 19.1528 +120.623 1.05251 20.1578 +120.344 1.10645 21.1909 +120.842 1.16782 22.3662 +120.642 1.22276 23.4185 +120.433 1.27761 24.469 +120.214 1.33236 25.5175 +120.768 1.39604 26.7372 +120.53 1.45093 27.7885 +121.06 1.51546 29.0244 +120.705 1.56923 30.0542 +120.534 1.6254 31.1299 +121.224 1.69368 32.4376 +120.743 1.74599 33.4394 +121.215 1.81236 34.7106 +120.907 1.86744 35.7656 +121.451 1.93611 37.0807 +121.122 1.99129 38.1376 +121.45 2.05761 39.4078 +121.291 2.11611 40.5281 +121.783 2.18649 41.8762 +120.941 2.23312 42.7691 +121.314 2.30233 44.0947 +117.365 2.28806 43.8213 +114.457 2.29092 43.8761 +110.813 2.27603 43.5909 +108.11 2.27753 43.6197 +104.676 2.26079 43.299 +101.992 2.2574 43.2341 +99.6844 2.26006 43.285 +97.2012 2.25655 43.2179 +96.4559 2.29205 43.8977 +97.2468 2.36449 45.2852 +96.8474 2.40865 46.131 +97.2495 2.4732 47.3673 +97.8163 2.54295 48.7031 +97.0306 2.5779 49.3723 +96.6842 2.62435 50.2621 +96.7711 2.68294 51.3841 +97.1093 2.74926 52.6543 +96.6455 2.79334 53.4986 +96.8706 2.85775 54.7321 +97.1681 2.92518 56.0237 +96.5886 2.96664 56.8177 +96.8599 3.03465 58.1201 +96.9452 3.09768 59.3273 +96.4231 3.14167 60.1698 +96.5683 3.20784 61.4371 +96.0278 3.25166 62.2764 +96.147 3.31825 63.5517 +96.2513 3.3852 64.834 +96.4228 3.45545 66.1794 +96.4961 3.52312 67.4754 +95.9842 3.56992 68.3718 +96.6775 3.66249 70.1447 +96.1413 3.70945 71.044 +96.2356 3.78129 72.4201 +96.1544 3.84716 73.6815 +96.2161 3.91966 75.07 +96.2608 3.9925 76.4651 +96.133 4.05912 77.741 +96.1444 4.13255 79.1475 +96.2152 4.20966 80.6243 +96.0393 4.27699 81.9137 +96.0745 4.35473 83.4027 +95.9412 4.42592 84.7661 +95.94 4.5043 86.2673 +95.6986 4.57244 87.5723 +96.2461 4.67982 89.6289 +96.1121 4.75574 91.0829 +95.9599 4.83189 92.5413 +95.7182 4.90461 93.934 +96.2372 5.01803 96.1063 +96.0246 5.0951 97.5824 +95.7934 5.17236 99.0621 +95.5436 5.24979 100.545 +95.8208 5.35788 102.615 +96.204 5.47432 104.845 +95.8864 5.55279 106.348 +95.4173 5.62355 107.703 +95.6534 5.73758 109.887 +95.2091 5.81262 111.324 +95.7754 5.95158 113.986 +95.3481 6.03115 115.51 +95.342 6.13913 117.578 +95.4315 6.25572 119.811 +95.0581 6.3441 121.503 +94.845 6.445 123.436 +95.4479 6.60455 126.492 +94.8742 6.68543 128.041 +94.8098 6.80426 130.316 +95.1772 6.95756 133.252 +94.6401 7.04756 134.976 +94.873 7.19778 137.853 +94.7273 7.32281 140.248 +94.3812 7.43518 142.4 +94.8217 7.61346 145.814 +94.6185 7.74423 148.319 +94.3786 7.87542 150.832 +94.4155 8.03367 153.862 +94.6125 8.21043 157.248 +94.1991 8.33849 159.7 +94.3 8.51651 163.11 +94.2991 8.69072 166.446 +94.6348 8.90205 170.494 +94.4774 9.07308 173.769 +94.6455 9.28144 177.76 +94.2891 9.44443 180.882 +94.0214 9.62166 184.276 +94.0139 9.83211 188.306 +94.2936 10.0807 193.068 +94.0236 10.2786 196.857 +94.1171 10.5241 201.56 +93.8866 10.7421 205.735 +94.2409 11.0369 211.38 +94.2244 11.2993 216.406 +94.1662 11.5674 221.54 +94.1784 11.8554 227.058 +93.9139 12.1202 232.129 +94.1908 12.4681 238.792 +93.9999 12.7685 244.545 +93.7505 13.0745 250.406 +93.4741 13.3911 256.469 +93.3992 13.7526 263.392 +93.3078 14.1298 270.617 +93.4462 14.5624 278.901 +93.2613 14.9664 286.639 +93.0684 15.3911 294.773 +92.9157 15.8468 303.501 +93.0434 16.3784 313.682 +92.9174 16.8962 323.6 +92.9722 17.4806 334.791 +92.8384 18.0662 346.007 +92.7408 18.6983 358.114 +93.0432 19.4583 372.668 +107.875 23.4292 448.721 +103.792 23.4418 448.962 +99.6055 23.4271 448.68 +95.5562 23.4409 448.945 +91.8488 23.5397 450.837 +91.5502 24.5582 470.344 +91.3 25.6859 491.941 +91.1306 26.9486 516.124 +90.8587 28.3107 542.211 +90.8259 29.9011 572.672 +90.8584 31.6998 607.121 +88.4445 32.8139 628.459 +88.4837 35.0448 671.186 +90.1468 38.2822 733.187 +96.5623 44.1915 846.364 +89.7481 44.5241 852.734 +89.012 48.2016 923.166 +90.9557 54.2087 1038.22 +88.8863 58.8901 1127.87 +88.0257 65.6383 1257.12 +83.1542 70.8906 1357.71 +87.4586 87.0156 1666.54 +79.2826 94.6837 1813.4 +67.1431 100.256 1920.11 +85.774 170.796 3271.12 +57.1863 170.829 3271.74 +19.2132 114.798 2198.63 +1.54543e-13 170.855 3272.24 +-28.5942 170.848 3272.12 +-57.1863 170.829 3271.74 +-85.774 170.796 3271.12 +-114.355 170.75 3270.25 +-142.928 170.692 3269.13 +-124.738 124.105 2376.89 +-125.833 107.276 2054.56 +-120.421 89.7938 1719.75 +-139.218 92.2361 1766.52 +-120.868 72.0356 1379.64 +-136.408 73.8674 1414.72 +-155.078 76.9344 1473.46 +-118.886 54.4079 1042.03 +-128.328 54.4965 1043.73 +-149.309 59.1351 1132.57 +-456.028 169.192 3240.4 +-144.144 50.2906 963.176 +-111.898 36.8382 705.532 +-117.596 36.6419 701.772 +-123.985 36.664 702.196 +-142.217 40.0105 766.288 +-625.224 167.716 3212.12 +-653.269 167.425 3206.55 +-681.264 167.121 3200.74 +-709.208 166.805 3194.68 +-143.316 32.3684 619.927 +-146.977 31.9217 611.371 +-153.354 32.0712 614.233 +-143.217 28.8754 553.027 +-143.36 27.8975 534.298 +-146.928 27.6252 529.083 +-903.071 164.216 3145.1 +-109.431 19.2631 368.93 +-111.511 19.0181 364.239 +-114.238 18.892 361.824 +-117.426 18.8443 360.909 +-121.337 18.9088 362.146 +-125.441 18.9959 363.812 +-1093.78 161.055 3084.55 +-1120.7 160.551 3074.9 +-1147.52 160.035 3065.01 +-1174.26 159.506 3054.9 +-1200.84 158.956 3044.36 +-541.868 69.9317 1339.35 +-383.143 48.231 923.73 +-415.621 51.0547 977.809 +-159.42 19.1175 366.142 +-162.085 18.9823 363.553 +-164.467 18.8177 360.4 +-168.329 18.8224 360.491 +-410.019 44.8227 858.453 +-141.55 15.1328 289.826 +-141.757 14.8252 283.934 +-144.687 14.8065 283.578 +-148.406 14.865 284.697 +-412.712 40.4728 775.143 +-415.367 39.8894 763.969 +-418.148 39.334 753.333 +-420.087 38.7157 741.49 +-422.3 38.1392 730.45 +-423.795 37.5143 718.481 +-425.421 36.9178 707.057 +-429.546 36.5494 700.001 +-437.342 36.4941 698.942 +-431.344 35.3043 676.154 +-434.459 34.8836 668.098 +-436.196 34.3628 658.124 +-439.414 33.9685 650.572 +-441.174 33.4708 641.039 +-444.35 33.0894 633.734 +-445.864 32.593 624.228 +-448.598 32.1949 616.602 +-451.352 31.8051 609.137 +-453.468 31.3778 600.953 +-455.658 30.9634 593.017 +-465.748 31.0836 595.319 +-463.587 30.389 582.015 +-468.34 30.1566 577.565 +-466.373 29.4998 564.985 +-469.492 29.1746 558.758 +-472.603 28.8528 552.594 +-475.577 28.5265 546.345 +-478.345 28.1918 539.936 +-480.503 27.8259 532.926 +-483.587 27.5177 527.025 +-486.197 27.1861 520.673 +-489.076 26.873 514.677 +-492.93 26.6157 509.75 +-494.842 26.2565 502.87 +-497.874 25.9603 497.197 +-500.488 25.645 491.159 +-503.466 25.3511 485.53 +-383.07 18.9548 363.025 +-384.107 18.6766 357.699 +-381.172 18.2123 348.805 +-382.72 17.9683 344.133 +-381.668 17.6069 337.212 +-136.753 6.19857 118.716 +-141.664 6.3088 120.827 +-142.101 6.21729 119.075 +-142.751 6.13579 117.514 +-141.518 5.97546 114.443 +-142.2 5.89787 112.957 +-143.497 5.84578 111.959 +-147.564 5.90407 113.076 +-155.175 6.09716 116.774 +-156.029 6.02009 115.298 +-156.787 5.93969 113.758 +-158.915 5.91049 113.199 +-159.898 5.83796 111.81 +-381.735 13.68 262.002 +-380.528 13.3834 256.321 +-381.086 13.1521 251.892 +-382.685 12.9584 248.181 +-378.683 12.5792 240.92 +-381.452 12.4285 238.034 +-380.789 12.1673 233.031 +-379.725 11.8969 227.852 +-379.289 11.6495 223.114 +-379.752 11.4322 218.952 +-380.52 11.2256 214.995 +-380.722 11.004 210.751 +-380.616 10.7756 206.376 +-379.138 10.5114 201.317 +-380.971 10.3409 198.051 +-380.816 10.1175 193.772 +-378.826 9.84843 188.619 +-376.864 9.58423 183.559 +-379.627 9.44157 180.827 +-379.562 9.22882 176.752 +-379.181 9.01035 172.568 +-379.213 8.8035 168.606 +-380.397 8.62439 165.176 +-378.604 8.37969 160.489 +-380.361 8.21507 157.337 +-380.053 8.0065 153.342 +-381.006 7.82562 149.878 +-379.967 7.60527 145.658 +-379.071 7.39008 141.536 +-113.797 2.15966 41.3623 +-111.703 2.06255 39.5023 +-109.869 1.9726 37.7795 +-109.531 1.91095 36.5988 +-108.706 1.8417 35.2726 +-108.152 1.77805 34.0536 +-108.541 1.7303 33.1391 +-108.634 1.67788 32.1351 +-108.719 1.62552 31.1322 +-110.914 1.60385 30.7173 +-110.309 1.54118 29.5169 +-109.401 1.47526 28.2544 +-109.643 1.42542 27.3 +-110.17 1.37913 26.4134 +-111.176 1.33833 25.632 +-111.395 1.2877 24.6622 +-113.074 1.25322 24.0019 +-114.651 1.21627 23.2943 +-117.992 1.19589 22.904 +-123.988 1.19823 22.9486 +-155.403 1.42879 27.3644 +-158.792 1.38556 26.5366 +-160.697 1.32712 25.4173 +-161.803 1.26088 24.1487 +-852.027 6.24378 119.582 +-863.449 5.92728 113.52 +-379.053 2.4268 46.4786 +-380.041 2.25777 43.2413 +-898.352 4.92331 94.2922 +-403.832 2.02753 38.8317 +-404.156 1.84371 35.311 +-403.951 1.65769 31.7484 +-403.415 1.47091 28.1711 +-404.245 1.2892 24.6911 +-143.603 0.392418 7.51567 +-402.816 0.917043 17.5634 +-148.31 0.27005 5.17204 +-147.05 0.200781 3.84539 +-145.378 0.132315 2.53413 +-146.894 0.0668428 1.28019 +119.7 3.55271e-15 -1.13687e-13 +119.595 0.0638208 1.04174 +120.082 0.128171 2.09211 +120.359 0.192724 3.1458 +120.227 0.25673 4.19055 +120.285 0.321142 5.24194 +120.235 0.385317 6.28946 +120.175 0.449462 7.33649 +120.605 0.515706 8.41778 +119.929 0.577165 9.42097 +120.54 0.644868 10.5261 +120.443 0.709166 11.5756 +120.536 0.774687 12.6451 +120.123 0.836907 13.6607 +120.594 0.905443 14.7794 +120.857 0.972952 15.8813 +120.12 1.0323 16.8501 +120.858 1.1045 18.0285 +121.091 1.17277 19.143 +120.623 1.23432 20.1475 +120.344 1.29757 21.1801 +120.842 1.36954 22.3548 +120.642 1.43397 23.4065 +120.531 1.49952 24.4764 +120.214 1.5625 25.5045 +120.768 1.63719 26.7235 +120.53 1.70156 27.7743 +121.255 1.78009 29.0561 +120.705 1.84029 30.0388 +120.728 1.90923 31.164 +121.224 1.98624 32.421 +120.936 2.05085 33.4756 +121.215 2.12542 34.6929 +121.003 2.19175 35.7756 +121.451 2.27054 37.0617 +121.313 2.33895 38.1782 +121.45 2.41304 39.3877 +121.385 2.48358 40.539 +121.783 2.56418 41.8547 +121.789 2.63723 43.0471 +121.314 2.70003 44.0722 +118.021 2.69828 44.0435 +114.457 2.68665 43.8537 +110.906 2.67142 43.6051 +108.11 2.67094 43.5974 +105.692 2.67705 43.6971 +101.992 2.64733 43.212 +99.7761 2.65289 43.3027 +97.2012 2.64634 43.1958 +96.4559 2.68797 43.8752 +97.2468 2.77293 45.262 +97.0279 2.82998 46.1933 +97.2495 2.90042 47.343 +97.6373 2.97676 48.5891 +97.0306 3.02319 49.3471 +96.6842 3.07768 50.2364 +96.7711 3.14638 51.3578 +96.4941 3.20373 52.294 +96.6455 3.27586 53.4712 +97.0447 3.35741 54.8025 +97.1681 3.43047 55.995 +96.6748 3.48219 56.8392 +96.8599 3.55884 58.0904 +96.4336 3.61359 58.984 +96.4231 3.68435 60.139 +96.737 3.76852 61.513 +96.0278 3.81334 62.2445 +96.3138 3.89818 63.6294 +96.2513 3.96995 64.8008 +96.5052 4.0558 66.2021 +96.4961 4.13169 67.4409 +96.0656 4.19012 68.3947 +96.6775 4.29514 70.1089 +96.1413 4.35021 71.0077 +96.2356 4.43446 72.383 +96.2338 4.51543 73.7046 +96.2161 4.59673 75.0316 +96.2608 4.68215 76.426 +96.133 4.76028 77.7012 +96.2987 4.85418 79.234 +96.2152 4.93683 80.583 +96.1153 5.01975 81.9366 +96.0745 5.10696 83.36 +96.0161 5.1945 84.7889 +95.94 5.28236 86.2231 +95.7723 5.36641 87.595 +96.2461 5.4882 89.583 +96.1121 5.57724 91.0363 +95.9599 5.66654 92.494 +96.5028 5.79897 94.6555 +96.2372 5.88483 96.0571 +96.0947 5.97958 97.6036 +95.7934 6.06582 99.0114 +96.1631 6.19656 101.145 +95.8208 6.28339 102.563 +95.6636 6.38386 104.203 +95.8864 6.51197 106.294 +95.6161 6.60864 107.872 +95.6534 6.72868 109.831 +95.274 6.82132 111.343 +95.7754 6.97963 113.927 +95.4117 7.07766 115.527 +95.342 7.19959 117.518 +95.3692 7.33155 119.672 +95.0581 7.43997 121.441 +94.845 7.55829 123.373 +95.4479 7.74541 126.427 +94.8148 7.83536 127.895 +94.8098 7.97961 130.25 +94.7127 8.11952 132.534 +94.6401 8.26493 134.907 +94.8164 8.43609 137.701 +94.7273 8.58774 140.176 +94.5468 8.73486 142.578 +94.8217 8.92858 145.74 +94.7797 9.09742 148.496 +94.3786 9.2358 150.754 +94.6245 9.44224 154.124 +94.6125 9.62868 157.167 +94.3006 9.78944 159.791 +94.3 9.98763 163.026 +94.3976 10.2026 166.535 +94.6348 10.4398 170.407 +94.1911 10.608 173.153 +94.6455 10.8847 177.669 +94.3814 11.0867 180.966 +94.0214 11.2837 184.182 +94.0585 11.5359 188.299 +94.2936 11.822 192.969 +94.1097 12.065 196.936 +94.1171 12.3421 201.457 +93.9695 12.6088 205.811 +94.2409 12.9433 211.272 +93.9453 13.2118 215.655 +94.1662 13.5655 221.427 +93.9488 13.8694 226.388 +93.9139 14.2138 232.01 +94.0809 14.6048 238.391 +93.9999 14.9741 244.42 +93.7855 15.3387 250.372 +93.4741 15.7042 256.337 +93.3992 16.1282 263.257 +93.3078 16.5706 270.479 +93.2241 17.0372 278.096 +93.2613 17.5516 286.492 +92.8279 18.0031 293.861 +92.9157 18.5841 303.345 +93.0434 19.2075 313.521 +92.9174 19.8149 323.435 +92.7584 20.453 333.85 +92.8384 21.1869 345.83 +92.5905 21.8927 357.351 +93.0432 22.8194 372.478 +108.272 27.5774 450.141 +103.792 27.4911 448.733 +99.9518 27.5693 450.009 +95.5562 27.4901 448.716 +91.8289 27.5999 450.508 +91.5502 28.8004 470.104 +91.3 30.1228 491.689 +91.1306 31.6036 515.86 +88.3995 32.3024 527.266 +90.8259 35.0661 572.379 +90.1637 36.8913 602.171 +88.4445 38.4821 628.137 +87.7136 40.7407 665.004 +90.1468 44.8949 732.812 +91.1965 48.9451 798.923 +89.7481 52.2151 852.298 +88.5998 56.2661 918.422 +90.9557 63.5726 1037.68 +86.9719 67.5748 1103.01 +88.0257 76.9765 1256.47 +85.6267 85.6077 1397.36 +87.4586 102.046 1665.69 +142.928 200.177 3267.45 +67.1431 117.573 1919.13 +85.774 200.299 3269.45 +57.1863 200.337 3270.07 +28.5942 200.36 3270.45 +1.56208e-13 200.368 3270.57 +-28.5942 200.36 3270.45 +-57.1863 200.337 3270.07 +-85.774 200.299 3269.45 +-114.355 200.245 3268.57 +-142.928 200.177 3267.45 +-124.738 145.543 2375.68 +-200.013 199.97 3264.07 +-120.421 105.304 1718.87 +-135.467 105.255 1718.06 +-120.868 84.4789 1378.93 +-136.494 86.6815 1414.89 +-155.078 90.2239 1472.71 +-119.395 64.0795 1045.96 +-128.328 63.9101 1043.19 +-150.014 69.6777 1137.34 +-456.028 198.418 3238.74 +-144.705 59.2076 966.435 +-111.898 43.2015 705.171 +-118.059 43.1402 704.17 +-123.985 42.9973 701.837 +-147.228 48.5752 792.885 +-625.224 196.687 3210.48 +-653.269 196.345 3204.91 +-681.264 195.989 3199.1 +-709.208 195.618 3193.04 +-143.316 37.9597 619.609 +-147.514 37.5726 613.291 +-153.354 37.6111 613.919 +-142.516 33.6975 550.039 +-143.36 32.7164 534.025 +-147.622 32.5503 531.313 +-903.071 192.582 3143.49 +-109.602 22.6258 369.317 +-111.511 22.3033 364.052 +-114.809 22.2662 363.448 +-117.426 22.0994 360.725 +-121.623 22.2273 362.812 +-125.441 22.2772 363.626 +-1093.78 188.875 3082.97 +-1120.7 188.284 3073.33 +-1147.52 187.679 3063.45 +-1174.26 187.059 3053.34 +-1200.84 186.414 3042.81 +-541.868 82.0115 1338.66 +-419.383 61.9124 1010.59 +-415.621 59.8737 977.309 +-159.221 22.3917 365.497 +-162.085 22.2613 363.367 +-165.628 22.224 362.759 +-168.329 22.0738 360.306 +-411.181 52.7142 860.446 +-141.55 17.7468 289.678 +-141.98 17.4133 284.235 +-144.687 17.3642 283.433 +-148.498 17.4436 284.729 +-412.712 47.464 774.746 +-416.75 46.9356 766.123 +-418.148 46.1285 752.947 +-421.17 45.5204 743.022 +-422.3 44.7273 730.076 +-424.556 44.0735 719.404 +-425.421 43.2949 706.695 +-430.487 42.9567 701.175 +-437.342 42.798 698.584 +-433.386 41.5986 679.007 +-434.459 40.9093 667.756 +-437.796 40.4464 660.2 +-439.414 39.8362 650.239 +-443.1 39.4238 643.508 +-444.35 38.8051 633.409 +-447.49 38.3624 626.183 +-448.598 37.7561 616.287 +-452.303 37.3777 610.109 +-453.468 36.7979 600.646 +-456.875 36.409 594.298 +-465.748 36.4529 595.014 +-469.252 36.0738 588.826 +-468.34 35.3658 577.27 +-467.517 34.6804 566.083 +-469.492 34.2142 558.472 +-473.383 33.8926 553.223 +-475.577 33.4541 546.065 +-479.074 33.112 540.482 +-480.503 32.6324 532.653 +-485.682 32.4109 529.037 +-486.197 31.8821 520.406 +-490.521 31.6082 515.935 +-492.93 31.2133 509.489 +-496.174 30.8749 503.965 +-497.874 30.4446 496.942 +-501.415 30.1306 491.817 +-503.466 29.7302 485.281 +-381.692 22.149 361.534 +-384.107 21.9028 357.516 +-382.499 21.4326 349.84 +-382.72 21.0721 343.957 +-381.293 20.6281 336.709 +-136.753 7.2693 118.656 +-142.12 7.42242 121.155 +-142.101 7.29125 119.014 +-142.519 7.18406 117.264 +-141.518 7.00764 114.385 +-142.748 6.94331 113.335 +-143.497 6.85556 111.902 +-148.992 6.99089 114.111 +-155.175 7.15036 116.714 +-156.35 7.07454 115.476 +-156.787 6.96569 113.7 +-159.648 6.96343 113.663 +-159.898 6.84639 111.752 +-382.724 16.0846 262.547 +-380.528 15.6952 256.19 +-380.836 15.4139 251.598 +-382.685 15.1967 248.054 +-383.153 14.9262 243.638 +-381.452 14.5754 237.912 +-379.766 14.2307 232.285 +-379.725 13.9519 227.735 +-380.151 13.6929 223.507 +-379.752 13.407 218.84 +-380.258 13.1556 214.737 +-380.722 12.9048 210.643 +-381.758 12.6749 206.89 +-379.138 12.3271 201.214 +-380.439 12.1102 197.673 +-380.816 11.8652 193.673 +-379.452 11.5687 188.834 +-376.864 11.2398 183.465 +-379.447 11.0672 180.648 +-379.562 10.823 176.662 +-380.546 10.6048 173.1 +-379.213 10.3242 168.52 +-380.855 10.1263 165.29 +-378.604 9.82717 160.407 +-381.008 9.65051 157.524 +-380.053 9.38953 153.264 +-379.331 9.1371 149.143 +-379.967 8.91898 145.583 +-380.289 8.69444 141.918 +-113.797 2.53272 41.3411 +-111.043 2.40453 39.2488 +-109.869 2.31334 37.7602 +-108.773 2.22551 36.3267 +-108.706 2.15983 35.2545 +-108.533 2.09255 34.1563 +-108.541 2.02919 33.1221 +-108.634 1.96771 32.1187 +-108.719 1.9063 31.1163 +-110.818 1.87926 30.6749 +-110.309 1.80739 29.5018 +-109.497 1.73162 28.265 +-109.643 1.67165 27.286 +-110.461 1.62164 26.4698 +-111.176 1.56951 25.6189 +-112.079 1.51939 24.8008 +-113.074 1.4697 23.9896 +-114.847 1.42881 23.3222 +-117.992 1.40247 22.8923 +-125.365 1.4208 23.1915 +-155.403 1.67559 27.3504 +-161.554 1.65316 26.9842 +-160.697 1.55636 25.4043 +-164.572 1.504 24.5495 +-852.027 7.32231 119.521 +-864.837 6.96233 113.645 +-379.053 2.846 46.4548 +-380.836 2.65331 43.3096 +-898.352 5.77375 94.2439 +-405.126 2.38538 38.9362 +-404.156 2.16218 35.2929 +-403.652 1.94259 31.7087 +-403.415 1.72499 28.1567 +-403.147 1.50779 24.6114 +-143.603 0.460204 7.51183 +-403.516 1.07732 17.5849 +-148.31 0.316697 5.1694 +-147.649 0.236424 3.8591 +-145.378 0.155171 2.53283 +-146.594 0.0782288 1.27692 +119.9 5.32907e-15 2.84217e-14 +120.295 0.0736447 1.04721 +120.282 0.147284 2.09435 +120.359 0.221095 3.14394 +120.327 0.294768 4.19155 +120.285 0.368418 5.23883 +120.135 0.441673 6.28051 +120.275 0.516057 7.33823 +120.705 0.592113 8.41974 +119.929 0.662131 9.41538 +119.942 0.736138 10.4677 +120.343 0.812898 11.5593 +120.636 0.889468 12.6481 +120.123 0.96011 13.6526 +120.892 1.0413 14.8071 +119.965 1.10795 15.7548 +121.011 1.19306 16.9651 +120.067 1.2588 17.8999 +120.202 1.33554 18.9912 +120.623 1.41602 20.1356 +120.737 1.49347 21.2369 +120.055 1.56093 22.1962 +120.642 1.64507 23.3926 +120.531 1.72027 24.4619 +120.214 1.79252 25.4893 +120.768 1.8782 26.7076 +120.627 1.95363 27.7803 +121.352 2.04378 29.0622 +120.996 2.1163 30.0934 +120.728 2.19029 31.1455 +121.224 2.27864 32.4018 +120.936 2.35276 33.4558 +121.311 2.44024 34.6997 +121.003 2.51441 35.7544 +121.451 2.6048 37.0397 +121.313 2.68327 38.1556 +121.64 2.77261 39.4259 +121.48 2.85141 40.5466 +121.972 2.94623 41.8948 +121.695 3.02313 42.9883 +121.596 3.10471 44.1484 +118.302 3.10287 44.1222 +114.644 3.08718 43.8992 +111.65 3.08526 43.8717 +108.295 3.0694 43.6463 +105.692 3.07115 43.6711 +102.084 3.0398 43.2253 +100.51 3.06581 43.5952 +97.9321 3.05875 43.4948 +96.2739 3.07785 43.7664 +97.6093 3.193 45.4039 +97.0279 3.24659 46.1659 +97.2495 3.3274 47.3149 +97.9058 3.42436 48.6937 +96.8524 3.46188 49.2272 +96.6842 3.53075 50.2066 +96.9476 3.61615 51.421 +97.1972 3.70214 52.6438 +96.6455 3.7581 53.4395 +96.9576 3.84821 54.7209 +96.4752 3.90742 55.5628 +96.6748 3.99481 56.8055 +96.9456 4.08636 58.1073 +96.3483 4.14189 58.8968 +96.5927 4.23417 60.2091 +96.737 4.3233 61.4765 +96.8665 4.41292 62.7508 +96.3138 4.47205 63.5916 +96.4171 4.56222 64.8739 +95.7635 4.6171 65.6543 +96.6599 4.74797 67.5153 +96.0656 4.80696 68.3541 +96.1112 4.89858 69.6569 +96.2217 4.99478 71.0249 +96.2356 5.08727 72.34 +96.3131 5.18442 73.7215 +96.2949 5.27774 75.0485 +96.3391 5.3758 76.4428 +96.2107 5.46547 77.718 +96.2987 5.56878 79.187 +95.679 5.63203 80.0864 +96.1153 5.75872 81.888 +95.9991 5.85416 83.2451 +96.0161 5.95919 84.7386 +95.94 6.05999 86.172 +96.5096 6.2038 88.2169 +95.7342 6.26265 89.0537 +95.6043 6.36447 90.5016 +96.0319 6.5056 92.5084 +95.8609 6.60839 93.9701 +96.3787 6.76108 96.1413 +96.0947 6.85984 97.5457 +95.8629 6.96383 99.0243 +95.5436 7.06296 100.434 +95.9572 7.21863 102.647 +95.6636 7.32364 104.141 +95.9533 7.4758 106.304 +96.0136 7.61309 108.257 +95.719 7.72449 109.841 +95.339 7.83083 111.353 +95.2611 7.96412 113.248 +95.3481 8.11418 115.382 +95.4679 8.27033 117.603 +95.4315 8.41632 119.678 +94.8734 8.5186 121.133 +94.7842 8.66542 123.221 +94.7859 8.82396 125.475 +94.7553 8.98314 127.739 +94.8098 9.15431 130.173 +95.1772 9.36055 133.105 +95.1563 9.53333 135.562 +94.9297 9.68956 137.784 +94.951 9.87525 140.424 +94.5468 10.0207 142.493 +94.985 10.2606 145.904 +94.8334 10.4426 148.492 +94.5906 10.6193 151.004 +94.52 10.8203 153.863 +94.664 11.0521 157.159 +94.3006 11.2306 159.697 +94.35 11.464 163.016 +94.3976 11.7045 166.436 +94.2955 11.9337 169.695 +94.5252 12.2129 173.665 +94.2229 12.4313 176.771 +94.3814 12.7188 180.858 +94.4754 13.0073 184.961 +94.0585 13.2342 188.187 +93.9429 13.512 192.137 +94.0667 13.8349 196.729 +94.2016 14.1717 201.518 +93.8866 14.4522 205.507 +93.9968 14.8103 210.6 +93.9852 15.1632 215.618 +94.2443 15.5754 221.479 +94.2549 15.963 226.991 +93.9139 16.3063 231.872 +94.1908 16.7743 238.528 +94.0357 17.1851 244.368 +93.7505 17.5902 250.129 +93.5767 18.0359 256.467 +93.3992 18.5024 263.101 +93.2102 18.9901 270.035 +93.2558 19.552 278.025 +92.9832 20.0754 285.468 +92.8279 20.6533 293.687 +93.0034 21.3401 303.452 +93.015 22.0284 313.239 +92.7795 22.6982 322.764 +92.6515 23.4369 333.268 +92.5537 24.2313 344.564 +92.5655 25.1088 357.042 +92.4384 26.0085 369.837 +108.249 31.6303 449.777 +104.107 31.6338 449.827 +99.9735 31.6347 449.84 +95.8265 31.6261 449.717 +91.8687 31.6767 450.437 +91.2449 32.9299 468.258 +91.2818 34.5503 491.299 +90.9743 36.1939 514.67 +88.548 37.1199 527.838 +88.6827 39.2791 558.542 +89.9272 42.2111 600.235 +87.7208 43.786 622.628 +87.3481 46.5435 661.84 +90.0371 51.4414 731.486 +90.6984 55.8438 794.089 +89.8736 59.9856 852.983 +88.4273 64.4235 916.091 +89.7181 71.9386 1022.95 +87.576 78.0614 1110.02 +88.2489 88.5322 1258.91 +85.4435 98.0005 1393.55 +87.3382 116.908 1662.4 +142.928 229.645 3265.52 +114.355 229.724 3266.63 +37.1399 99.4961 1414.82 +24.7178 99.3397 1412.59 +28.5942 229.856 3268.51 +1.55542e-13 229.864 3268.63 +-28.5942 229.856 3268.51 +-57.1863 229.829 3268.13 +-85.774 229.786 3267.51 +-114.355 229.724 3266.63 +-142.928 229.645 3265.52 +-171.489 229.549 3264.15 +-200.038 229.436 3262.53 +-119.988 120.373 1711.68 +-257.087 229.156 3258.55 +-121.356 97.3067 1383.68 +-136.561 99.4912 1414.75 +-155.57 103.834 1476.5 +-119.418 73.5268 1045.54 +-128.767 73.5689 1046.14 +-150.092 79.9765 1137.25 +-456.028 227.627 3236.82 +-144.661 67.9028 965.565 +-112.336 49.7553 707.512 +-118.042 49.484 703.653 +-124.454 49.5135 704.073 +-147.228 55.7261 792.415 +-625.224 225.641 3208.58 +-653.269 225.25 3203.01 +-681.264 224.842 3197.2 +-709.208 224.416 3191.15 +-143.901 43.7256 621.769 +-147.748 43.1719 613.897 +-175.49 49.3761 702.119 +-143.668 38.9706 554.154 +-143.645 37.6073 534.768 +-147.756 37.3759 531.478 +-903.071 220.933 3141.62 +-109.857 26.017 369.957 +-112.095 25.7207 365.744 +-115.05 25.5976 363.993 +-118.23 25.5262 362.978 +-121.655 25.5061 362.691 +-125.93 25.6562 364.826 +-1093.78 216.679 3081.14 +-1120.7 216.002 3071.5 +-1147.52 215.307 3061.63 +-1174.26 214.597 3051.52 +-384.863 68.5399 974.624 +-415.476 72.1393 1025.81 +-419.842 71.1045 1011.09 +-416.637 68.8558 979.116 +-159.619 25.7524 366.195 +-162.817 25.6537 364.791 +-165.628 25.4957 362.544 +-169.301 25.4696 362.173 +-140.949 20.7301 294.778 +-141.419 20.3404 289.237 +-142.382 20.0333 284.87 +-144.687 19.9204 283.264 +-148.914 20.0675 285.356 +-414.356 54.6681 777.37 +-417.466 53.9376 766.983 +-419.894 53.1401 755.642 +-421.318 52.2399 742.841 +-422.9 51.3846 730.679 +-425.114 50.6282 719.923 +-425.679 49.6985 706.704 +-429.86 49.2087 699.739 +-448.418 50.3417 715.85 +-433.225 47.7047 678.352 +-435.875 47.0846 669.534 +-438.348 46.4592 660.64 +-440.532 45.8168 651.507 +-442.76 45.1927 642.632 +-445.726 44.6556 634.995 +-447.838 44.0441 626.299 +-450.126 43.4618 618.019 +-452.839 42.9308 610.468 +-454.611 42.3214 601.803 +-457.18 41.7966 594.34 +-472.766 42.4494 603.622 +-470.932 41.5325 590.584 +-466.893 40.4467 575.145 +-468.09 39.8346 566.44 +-470.842 39.3638 559.746 +-473.967 38.93 553.577 +-476.561 38.4583 546.87 +-479.472 38.018 540.609 +-482.109 37.5615 534.117 +-485.006 37.1304 527.987 +-487.629 36.6833 521.63 +-491.141 36.3071 516.28 +-493.416 35.8435 509.688 +-496.875 35.47 504.377 +-498.369 34.9612 497.141 +-501.415 34.5662 491.525 +-503.754 34.1264 485.271 +-2376.69 158.218 2249.83 +-2396.28 156.758 2229.06 +-383.384 24.6446 350.442 +-382.943 24.1883 343.954 +-381.818 23.6973 336.972 +-140.98 8.59717 122.25 +-141.892 8.50141 120.888 +-142.178 8.3691 119.007 +-142.442 8.23715 117.131 +-140.897 8.00397 113.815 +-142.513 7.95234 113.081 +-144.758 7.93389 112.818 +-148.992 8.02003 114.043 +-155.574 8.2241 116.945 +-156.35 8.116 115.408 +-157.03 8.00348 113.808 +-158.59 7.93557 112.842 +-160.963 7.9066 112.43 +-381.982 18.4167 261.882 +-381.938 18.0723 256.985 +-381.503 17.7139 251.889 +-381.511 17.3804 247.146 +-379.864 16.9766 241.404 +-380.774 16.6913 237.348 +-380.619 16.3623 232.668 +-378.182 15.9408 226.675 +-380.151 15.7087 223.374 +-379.925 15.3877 218.81 +-380.52 15.1027 214.758 +-379.935 14.7739 210.082 +-380.088 14.4772 205.863 +-381.08 14.2143 202.125 +-379.641 13.8638 197.141 +-380.103 13.5863 193.195 +-381.868 13.3563 189.924 +-379.74 12.9928 184.756 +-380.259 12.7236 180.927 +-378.837 12.3925 176.219 +-378.089 12.0874 171.881 +-379.944 11.8669 168.745 +-380.488 11.6059 165.033 +-379.156 11.2903 160.545 +-378.791 11.0067 156.513 +-380.145 10.7744 153.211 +-379.703 10.4924 149.201 +-380.621 10.2496 145.747 +-380.664 9.98419 141.973 +-113.797 2.90556 41.3166 +-111.043 2.75851 39.2255 +-110.058 2.65846 37.8027 +-109.531 2.57095 36.5584 +-108.706 2.47778 35.2336 +-109.105 2.41325 34.3159 +-108.158 2.3197 32.9857 +-108.634 2.25739 32.0996 +-109.295 2.19854 31.2628 +-110.336 2.14654 30.5234 +-110.599 2.07892 29.5618 +-109.497 1.98654 28.2482 +-109.935 1.92283 27.3423 +-110.656 1.86364 26.5007 +-111.176 1.80056 25.6037 +-111.981 1.74154 24.7644 +-113.074 1.68606 23.9754 +-114.749 1.63775 23.2885 +-117.108 1.59689 22.7074 +-124.382 1.61718 22.996 +-158.948 1.96611 27.9578 +-160.567 1.88495 26.8036 +-161.29 1.79206 25.4828 +-3240.51 33.9741 483.105 +-853.809 8.41779 119.699 +-863.648 7.97626 113.421 +-379.252 3.26668 46.4516 +-381.134 3.0463 43.3178 +-899.147 6.62958 94.2714 +-405.425 2.73856 38.9418 +-403.06 2.47375 35.1763 +-403.253 2.22637 31.6585 +-403.515 1.97942 28.147 +-403.746 1.73232 24.6333 +-146.898 0.540067 7.67965 +-3273.38 10.0259 142.567 +-403.854 0.989335 14.0682 +-146.95 0.269942 3.83853 +-145.778 0.178504 2.53829 +-147.294 0.0901737 1.28225 +119.9 5.32907e-15 2.84217e-14 +120.295 0.0830889 1.04651 +120.382 0.16631 2.09468 +119.659 0.247999 3.12355 +120.327 0.332569 4.18872 +120.385 0.41601 5.23965 +120.235 0.498728 6.28148 +120.275 0.582236 7.33327 +120.705 0.668046 8.41405 +119.929 0.747043 9.40902 +120.838 0.836746 10.5388 +120.343 0.917144 11.5514 +119.74 0.996086 12.5457 +120.123 1.08324 13.6434 +119.999 1.16616 14.6878 +120.758 1.25829 15.8482 +120.912 1.34495 16.9397 +120.067 1.42023 17.8878 +121.091 1.51796 19.1187 +120.623 1.59761 20.122 +120.54 1.68224 21.1878 +120.842 1.77264 22.3264 +120.74 1.85755 23.3959 +120.531 1.94088 24.4454 +120.214 2.0224 25.4721 +120.67 2.11734 26.668 +120.53 2.20239 27.7391 +121.352 2.30588 29.0426 +121.093 2.38961 30.0972 +120.728 2.47117 31.1245 +121.127 2.5688 32.3541 +121.032 2.65659 33.4598 +121.407 2.75536 34.7038 +120.907 2.83461 35.7019 +121.546 2.94115 37.0438 +121.313 3.02737 38.1298 +121.735 3.13061 39.4301 +121.575 3.2196 40.5509 +121.972 3.32406 41.8665 +121.789 3.41345 42.9925 +121.784 3.50827 44.1867 +118.489 3.50632 44.1622 +114.457 3.47741 43.7981 +111.557 3.47801 43.8056 +108.295 3.46302 43.6168 +105.599 3.46196 43.6035 +103.097 3.46364 43.6246 +100.51 3.45897 43.5658 +97.8407 3.44778 43.4248 +96.0009 3.46271 43.6129 +96.7937 3.57237 44.994 +97.2084 3.66975 46.2205 +98.0584 3.78533 47.6763 +98.0848 3.87057 48.7499 +96.7633 3.90224 49.1487 +96.6842 3.98354 50.1727 +96.2413 4.05016 51.0119 +96.4062 4.14292 52.1801 +96.7329 4.24388 53.4517 +96.2613 4.31053 54.2911 +96.4752 4.40851 55.5253 +96.6748 4.50711 56.7672 +97.0313 4.61448 58.1194 +96.3483 4.67304 58.8571 +96.5927 4.77716 60.1685 +96.737 4.87772 61.435 +96.8665 4.97883 62.7085 +96.9809 5.0805 63.9889 +96.4171 5.14728 64.8301 +96.5876 5.25403 66.1746 +96.0046 5.32054 67.0123 +96.0656 5.42341 68.3079 +96.1112 5.52678 69.6098 +96.3021 5.64003 71.0363 +96.2356 5.73967 72.2912 +96.2338 5.84447 73.6111 +96.2161 5.94969 74.9365 +95.5565 6.01591 75.7706 +96.2107 6.16637 77.6655 +96.2987 6.28293 79.1336 +96.2152 6.38989 80.4808 +96.1153 6.49723 81.8327 +96.0745 6.6101 83.2543 +96.0161 6.72341 84.6814 +96.6088 6.88479 86.7141 +95.8461 6.95125 87.5512 +96.3193 7.10896 89.5374 +95.6043 7.18066 90.4405 +95.9599 7.33438 92.3767 +95.7895 7.45031 93.8368 +95.7423 7.57775 95.4419 +96.1648 7.74521 97.551 +95.8629 7.85688 98.9575 +96.1631 8.0204 101.017 +95.9572 8.14435 102.578 +95.7311 8.26869 104.144 +95.9533 8.4345 106.233 +95.6161 8.55378 107.735 +95.8502 8.72703 109.917 +95.274 8.82905 111.202 +95.2611 8.98545 113.172 +94.7757 9.09973 114.611 +95.405 9.32475 117.445 +94.9335 9.44608 118.974 +94.935 9.61728 121.13 +94.9668 9.79552 123.375 +94.9062 9.96822 125.55 +95.2311 10.186 128.293 +95.3388 10.386 130.811 +95.1191 10.5545 132.934 +95.099 10.7494 135.389 +94.9863 10.9386 137.772 +94.7273 11.1154 139.998 +95.0435 11.3652 143.145 +94.4404 11.51 144.969 +94.8334 11.7818 148.392 +94.3786 11.9542 150.563 +94.1542 12.1607 153.164 +94.664 12.4694 157.053 +94.3006 12.6708 159.589 +94.35 12.9342 162.906 +94.3484 13.1986 166.237 +94.2955 13.4641 169.58 +94.0957 13.7165 172.759 +94.2699 14.0325 176.74 +94.4276 14.3569 180.825 +94.4754 14.6754 184.836 +94.4601 14.9951 188.864 +93.9429 15.2447 192.008 +93.7223 15.5519 195.877 +93.9058 15.9389 200.75 +93.928 16.3128 205.459 +93.9968 16.7096 210.458 +93.9453 17.1005 215.381 +93.8927 17.5072 220.503 +93.9488 17.9516 226.1 +93.8764 18.3901 231.623 +93.8976 18.8666 237.625 +94.0357 19.3889 244.204 +93.6805 19.8312 249.774 +93.5083 20.3339 256.106 +93.3992 20.8752 262.924 +93.2753 21.4403 270.041 +92.9703 21.9918 276.987 +93.045 22.6649 285.465 +92.8279 23.3019 293.488 +92.945 24.0615 303.055 +92.9014 24.823 312.646 +92.8347 25.6242 322.737 +92.705 26.4576 333.234 +92.5796 27.3464 344.428 +92.5655 28.3288 356.801 +92.4625 29.3516 369.684 +108.202 35.6712 449.279 +104.085 35.6829 449.427 +99.9302 35.6762 449.342 +95.8681 35.6974 449.609 +91.9086 35.7544 450.328 +90.9586 37.0364 466.474 +91.1724 38.9343 490.379 +90.8006 40.7574 513.341 +88.2179 41.7241 525.516 +88.1821 44.0661 555.013 +89.7499 47.5304 598.646 +87.6512 49.3619 621.714 +87.2437 52.4496 660.603 +89.9396 57.9754 730.201 +91.1965 63.3512 797.91 +89.884 67.686 852.506 +88.4081 72.6694 915.273 +89.2736 80.762 1017.2 +86.9484 87.4405 1101.31 +88.228 99.8619 1257.76 +84.7171 109.628 1380.76 +84.2714 127.268 1602.95 +142.928 259.095 3263.31 +114.355 259.184 3264.43 +85.774 259.254 3265.3 +57.1863 259.303 3265.92 +28.5942 259.333 3266.3 +1.54099e-13 259.342 3266.42 +-28.5942 259.333 3266.3 +-57.1863 259.303 3265.92 +-85.774 259.254 3265.3 +-114.355 259.184 3264.43 +-142.91 259.064 3262.91 +-171.489 258.987 3261.94 +-200.013 258.827 3259.93 +-228.571 258.711 3258.47 +-257.087 258.543 3256.35 +-121.399 109.825 1383.25 +-136.666 112.337 1414.89 +-155.873 117.378 1478.38 +-119.611 83.0897 1046.52 +-128.84 83.0509 1046.03 +-150.183 90.2882 1137.18 +-456.028 256.818 3234.63 +-144.883 76.7281 966.392 +-112.476 56.2064 707.92 +-118.191 55.9001 704.063 +-124.454 55.8632 703.598 +-147.593 63.0281 793.84 +-625.224 254.578 3206.41 +-653.269 254.136 3200.85 +-681.264 253.675 3195.05 +-709.208 253.195 3188.99 +-143.924 49.3406 621.446 +-147.748 48.7083 613.482 +-175.877 55.831 703.192 +-143.918 44.0448 554.745 +-143.852 42.4912 535.178 +-147.997 42.2377 531.985 +-903.181 249.296 3139.89 +-109.886 29.3611 369.803 +-111.861 28.9586 364.734 +-115.05 28.8803 363.747 +-118.23 28.7997 362.732 +-121.94 28.8446 363.298 +-126.19 29.0062 365.333 +-1093.78 244.467 3079.06 +-1120.7 243.702 3069.43 +-1147.52 242.918 3059.56 +-1174.26 242.117 3049.46 +-1200.77 241.267 3038.77 +-415.551 81.4055 1025.3 +-419.306 80.1201 1009.11 +-416.91 77.7369 979.098 +-159.699 29.0695 366.131 +-163.02 28.9797 365 +-165.628 28.7653 362.299 +-169.512 28.7717 362.38 +-411.353 68.2583 859.715 +-141.769 23.0058 289.758 +-142.426 22.6095 284.767 +-145.005 22.5243 283.694 +-148.406 22.5637 284.191 +-414.356 61.6788 776.845 +-417.609 60.8755 766.728 +-419.894 59.9548 755.132 +-421.761 59.0012 743.121 +-423.5 58.0565 731.223 +-425.317 57.148 719.78 +-426.143 56.1329 706.995 +-429.494 55.472 698.671 +-454.406 57.5561 724.92 +-433.762 53.8891 678.734 +-435.875 53.1228 669.082 +-439.342 52.5359 661.691 +-440.868 51.7318 651.563 +-443.1 51.0274 642.691 +-445.726 50.3823 634.566 +-448.07 49.7182 626.201 +-450.302 49.0546 617.844 +-453.017 48.4554 610.296 +-454.852 47.7741 601.715 +-457.362 47.1755 594.176 +-472.951 47.9119 603.451 +-473.36 47.1002 593.228 +-466.201 45.5659 573.904 +-467.708 44.9063 565.596 +-470.842 44.4118 559.368 +-474.162 43.9404 553.43 +-476.561 43.3903 546.501 +-479.737 42.9172 540.543 +-481.908 42.3607 533.534 +-485.682 41.9504 528.366 +-487.902 41.4107 521.569 +-490.521 40.9114 515.28 +-493.416 40.4401 509.344 +-496.594 39.9962 503.753 +-499.005 39.4949 497.44 +-502.057 39.049 491.822 +-504.401 38.5522 485.566 +-383.07 28.7717 362.38 +-383.522 28.3063 356.518 +-382.057 27.7088 348.993 +-380.564 27.1208 341.587 +-381.743 26.731 336.677 +-141.055 9.70482 122.232 +-141.892 9.59164 120.807 +-142.331 9.45257 119.055 +-142.288 9.28344 116.925 +-141.596 9.0752 114.302 +-142.356 8.96226 112.88 +-144.6 8.9416 112.62 +-149.468 9.07749 114.331 +-155.974 9.30251 117.165 +-156.35 9.1568 115.33 +-157.273 9.04378 113.907 +-158.508 8.94864 112.708 +-160.718 8.90693 112.183 +-382.724 20.8189 262.214 +-380.777 20.328 256.031 +-379.418 19.8764 250.343 +-380.756 19.5705 246.49 +-381.55 19.2387 242.311 +-381.961 18.8906 237.927 +-381.642 18.5102 233.136 +-379.897 18.0666 227.549 +-380.323 17.7312 223.324 +-380.272 17.3768 218.861 +-380.694 17.0472 214.71 +-379.935 16.6685 209.94 +-380.528 16.3526 205.962 +-380.286 16.0037 201.567 +-380.794 15.6893 197.607 +-379.391 15.2999 192.703 +-379.721 14.9843 188.728 +-376.685 14.541 183.145 +-379.447 14.3247 180.419 +-380.287 14.0353 176.775 +-378.544 13.6539 171.971 +-379.304 13.3662 168.347 +-380.763 13.1037 165.042 +-380.905 12.7969 161.178 +-380.546 12.4758 157.133 +-380.609 12.171 153.294 +-379.983 11.8467 149.209 +-379.781 11.5384 145.327 +-380.57 11.2618 141.843 +-113.515 3.27005 41.1864 +-111.137 3.11491 39.2323 +-109.964 2.99681 37.7448 +-108.678 2.87804 36.249 +-108.706 2.79553 35.2098 +-108.914 2.71797 34.2329 +-108.636 2.62875 33.1092 +-108.443 2.54238 32.0213 +-109.392 2.48266 31.2691 +-110.047 2.41547 30.4229 +-110.405 2.34142 29.4902 +-109.304 2.23733 28.1792 +-109.837 2.1675 27.2997 +-110.267 2.09525 26.3897 +-111.176 2.03147 25.5864 +-112.176 1.96831 24.7909 +-113.074 1.90228 23.9592 +-114.847 1.84935 23.2926 +-117.893 1.81376 22.8443 +-125.365 1.83899 23.1621 +-157.865 2.20313 27.7485 +-160.173 2.12144 26.7196 +-160.993 2.01816 25.4188 +-165.265 1.95486 24.6215 +-853.512 9.49397 119.577 +-864.639 9.00951 113.475 +-380.344 3.69621 46.5538 +-380.737 3.43337 43.2434 +-899.943 7.48638 94.2911 +-404.529 3.08293 38.8295 +-402.961 2.7903 35.1439 +-403.253 2.51188 31.6371 +-403.515 2.23326 28.128 +-403.446 1.95303 24.5984 +-146.998 0.60974 7.67968 +-404.515 1.39786 17.6061 +-3274.5 9.05035 113.989 +-148.149 0.307046 3.86725 +-145.978 0.201672 2.54006 +-146.294 0.101047 1.27268 +119.9 5.32907e-15 2.84217e-14 +120.295 0.0925264 1.04571 +119.582 0.18397 2.07919 +120.459 0.278013 3.14204 +120.327 0.370344 4.18555 +120.285 0.462876 5.23133 +120.135 0.554913 6.27152 +120.175 0.647829 7.32164 +120.705 0.743925 8.40768 +120.826 0.838118 9.47223 +120.739 0.93102 10.5222 +120.343 1.02132 11.5427 +120.636 1.11752 12.63 +120.222 1.20727 13.6443 +119.999 1.29861 14.6767 +120.659 1.40006 15.8232 +120.219 1.48913 16.8298 +120.858 1.59196 17.992 +120.3 1.67934 18.9795 +120.623 1.77908 20.1067 +120.54 1.87331 21.1718 +120.842 1.97398 22.3095 +120.74 2.06854 23.3782 +120.531 2.16133 24.4269 +120.997 2.26677 25.6186 +120.67 2.35784 26.6478 +120.627 2.45452 27.7405 +120.282 2.54516 28.7648 +120.996 2.6589 30.0503 +120.825 2.75406 31.1258 +121.224 2.86285 32.3554 +121.032 2.95833 33.4345 +121.407 3.06832 34.6775 +120.907 3.15657 35.6749 +120.686 3.25202 36.7537 +121.313 3.37123 38.1009 +120.879 3.46168 39.1233 +121.48 3.58249 40.4885 +121.121 3.67579 41.543 +121.695 3.79823 42.9268 +121.032 3.88264 43.8808 +118.114 3.89224 43.9893 +114.457 3.87239 43.7649 +111.65 3.87628 43.8089 +108.295 3.85636 43.5838 +105.507 3.85181 43.5323 +103.004 3.8536 43.5526 +99.6844 3.82022 43.1753 +97.7494 3.8358 43.3514 +96.4559 3.87429 43.7864 +97.6093 4.01165 45.3389 +97.2084 4.08657 46.1856 +97.3394 4.18437 47.2908 +98.0848 4.3102 48.713 +97.2979 4.36947 49.3829 +96.6842 4.436 50.1347 +96.8594 4.53915 51.3006 +97.1972 4.65133 52.5684 +96.6455 4.72164 53.363 +96.9576 4.83485 54.6425 +96.4752 4.90924 55.4832 +96.761 5.02352 56.7748 +96.9456 5.13406 58.0241 +96.4336 5.20843 58.8646 +96.5927 5.31977 60.1229 +96.737 5.43175 61.3885 +97.0342 5.55394 62.7695 +96.3138 5.61863 63.5006 +96.4171 5.73192 64.781 +96.5876 5.85079 66.1245 +96.6599 5.9653 67.4186 +96.7169 6.08036 68.719 +96.0303 6.14934 69.4986 +96.1413 6.27015 70.8639 +96.2356 6.39159 72.2365 +96.2338 6.5083 73.5554 +96.2949 6.6309 74.941 +96.2608 6.7486 76.2713 +96.2884 6.8723 77.6694 +96.2987 6.99656 79.0737 +96.2152 7.11568 80.4199 +95.507 7.18941 81.2533 +96.0745 7.36089 83.1913 +96.0161 7.48707 84.6173 +95.94 7.61371 86.0486 +96.5833 7.80034 88.1579 +96.3193 7.91641 89.4697 +96.1121 8.03873 90.8521 +95.9599 8.16744 92.3068 +95.7895 8.29654 93.7658 +95.6715 8.43222 95.2992 +96.0947 8.61864 97.406 +95.8629 8.74928 98.8826 +96.1631 8.93138 100.941 +95.9572 9.0694 102.501 +95.596 9.19491 103.919 +95.9533 9.39252 106.152 +95.6823 9.53195 107.728 +95.8502 9.71827 109.834 +95.274 9.83188 111.118 +95.2611 10.006 113.086 +95.5389 10.2149 115.447 +95.0903 10.3497 116.97 +95.4315 10.5742 119.507 +94.8119 10.6958 120.882 +94.7842 10.8871 123.044 +94.9062 11.1004 125.455 +95.2311 11.343 128.196 +95.2212 11.5513 130.551 +94.7127 11.703 132.265 +95.2137 11.9848 135.45 +94.9297 12.1739 137.586 +94.8391 12.3925 140.058 +94.602 12.5973 142.372 +94.8761 12.8765 145.527 +94.8334 13.12 148.28 +94.3786 13.312 150.449 +94.4155 13.5795 153.472 +94.767 13.9009 157.105 +94.3006 14.11 159.468 +94.35 14.4033 162.783 +94.3484 14.6978 166.111 +94.247 14.9856 169.364 +94.1434 15.2822 172.716 +94.3168 15.6341 176.694 +94.3352 15.9719 180.511 +94.43 16.3344 184.608 +94.0139 16.6194 187.829 +94.2936 17.0397 192.579 +94.1097 17.3899 196.537 +93.8635 17.7412 200.508 +93.9695 18.1736 205.395 +94.0375 18.6156 210.39 +93.9852 19.0509 215.31 +93.8927 19.4957 220.336 +93.9488 19.9906 225.929 +93.9513 20.4952 231.633 +93.9343 21.0177 237.538 +93.9641 21.5747 243.832 +93.7855 22.1084 249.865 +93.5767 22.6601 256.099 +93.3992 23.2463 262.725 +93.3078 23.8839 269.931 +93.0337 24.5064 276.966 +92.9523 25.2141 284.965 +93.0083 25.9991 293.837 +92.828 26.7608 302.445 +92.8162 27.6171 312.123 +92.6417 28.4754 321.823 +92.6515 29.4458 332.791 +92.6313 30.4695 344.36 +92.5154 31.5294 356.339 +92.2932 32.6256 368.727 +108.435 39.8086 449.908 +104.31 39.8217 450.057 +100.168 39.823 450.072 +96.1176 39.8555 450.438 +91.8089 39.7723 449.499 +90.8632 41.1998 465.632 +90.972 43.2613 488.931 +90.7833 45.378 512.853 +87.8218 46.2547 522.761 +87.9787 48.9581 553.314 +89.4395 52.746 596.124 +87.7069 55.0035 621.638 +87.1654 58.3545 659.51 +89.8299 64.4817 728.759 +90.6871 70.1528 792.852 +89.9781 75.4528 852.752 +88.4944 81.0024 915.472 +88.9076 89.5668 1012.27 +87.0033 97.4339 1101.18 +88.2838 111.275 1257.61 +87.3055 125.81 1421.87 +74.6311 125.512 1418.51 +142.928 288.524 3260.84 +114.355 288.623 3261.96 +85.774 288.7 3262.83 +57.1863 288.755 3263.45 +28.5907 288.753 3263.43 +1.49436e-13 288.764 3263.55 +-28.5942 288.789 3263.83 +-57.1793 288.72 3263.05 +-85.7635 288.665 3262.43 +-114.341 288.588 3261.56 +-142.91 288.489 3260.44 +-171.468 288.368 3259.08 +-200.013 288.225 3257.46 +-228.543 288.061 3255.6 +-257.056 287.874 3253.49 +-121.591 122.492 1384.38 +-136.925 125.333 1416.49 +-342.467 287.182 3245.67 +-119.735 92.6234 1046.81 +-129.096 92.6674 1047.31 +-150.314 100.631 1137.31 +-456.028 285.988 3232.18 +-145.104 85.5739 967.139 +-112.555 62.634 707.876 +-118.504 62.4146 705.397 +-124.731 62.3471 704.634 +-147.848 70.3084 794.611 +-625.224 283.493 3203.98 +-653.269 283.001 3198.42 +-681.264 282.489 3192.63 +-709.121 281.919 3186.19 +-144.126 55.0222 621.85 +-148.331 54.455 615.44 +-175.78 62.1382 702.273 +-144.069 49.0988 554.904 +-143.67 47.2578 534.098 +-148.13 47.0776 532.061 +-903.181 277.612 3137.51 +-109.914 32.7044 369.619 +-111.861 32.2478 364.458 +-115.321 32.2362 364.327 +-118.23 32.0708 362.458 +-121.877 32.1041 362.833 +-126.418 32.3591 365.716 +-1093.78 272.234 3076.73 +-1120.7 271.382 3067.11 +-1147.52 270.51 3057.25 +-1174.26 269.617 3047.16 +-1200.77 268.671 3036.47 +-383.972 83.7623 946.665 +-385.056 81.933 925.99 +-416.91 86.5665 978.357 +-159.699 32.3713 365.854 +-162.044 32.0781 362.541 +-165.753 32.0566 362.297 +-169.259 31.9917 361.563 +-143.102 26.4428 298.851 +-141.375 25.5475 288.733 +-142.382 25.1697 284.463 +-145.095 25.0985 283.658 +-147.529 24.9781 282.297 +-414.825 68.7622 777.136 +-418.039 67.8596 766.936 +-419.894 66.7646 754.56 +-421.761 65.7027 742.559 +-423.35 64.6278 730.41 +-425.317 63.639 719.235 +-426.143 62.5087 706.46 +-428.815 61.6751 697.039 +-464.951 65.5809 741.181 +-433.762 60.01 678.22 +-436.583 59.2527 669.662 +-439.507 58.5251 661.439 +-440.868 57.6076 651.069 +-443.609 56.8887 642.944 +-445.956 56.1338 634.412 +-448.245 55.3868 625.97 +-450.302 54.6264 617.376 +-452.839 53.9378 609.594 +-455.213 53.2426 601.737 +-457.667 52.5688 594.122 +-471.412 53.1802 601.032 +-475.726 52.7121 595.742 +-466.201 50.7415 573.47 +-468.281 50.0681 565.859 +-471.42 49.517 559.631 +-474.552 48.9716 553.467 +-476.955 48.3586 546.539 +-480.068 47.8248 540.506 +-483.179 47.2966 534.537 +-485.682 46.7153 527.966 +-488.515 46.1723 521.83 +-491.141 45.6158 515.541 +-494.388 45.1222 509.962 +-496.384 44.5202 503.158 +-499.288 44.0058 497.345 +-502.699 43.5399 492.079 +-504.905 42.974 485.684 +-2376.69 198.784 2246.61 +-381.474 31.353 354.346 +-382.352 30.8798 348.998 +-379.45 30.1128 340.328 +-380.919 29.703 335.697 +-140.829 10.7898 121.945 +-142.728 10.744 121.427 +-142.484 10.5375 119.093 +-142.056 10.321 116.646 +-141.596 10.106 114.216 +-141.809 9.94187 112.361 +-145.23 10.0006 113.024 +-150.499 10.1783 115.033 +-155.974 10.3591 117.077 +-156.591 10.2125 115.42 +-157.435 10.0814 113.938 +-158.997 9.99573 112.97 +-161.455 9.96409 112.612 +-380.417 23.0437 260.436 +-380.445 22.6172 255.615 +-381.419 22.2508 251.474 +-381.008 21.8078 246.467 +-381.044 21.3955 241.807 +-381.706 21.0222 237.589 +-382.835 20.6772 233.689 +-379.639 20.105 227.222 +-379.72 19.7138 222.802 +-380.185 19.3461 218.646 +-380.694 18.9835 214.548 +-379.935 18.5618 209.781 +-380.791 18.2226 205.948 +-380.639 17.838 201.601 +-380.173 17.4428 197.135 +-380.549 17.0897 193.144 +-380.437 16.7178 188.941 +-378.213 16.2584 183.749 +-379.447 15.9517 180.283 +-379.652 15.6034 176.346 +-379.181 15.2304 172.131 +-381.862 14.9847 169.354 +-380.58 14.585 164.837 +-379.616 14.2023 160.511 +-378.791 13.8287 156.289 +-379.775 13.5237 152.842 +-379.331 13.1697 148.841 +-378.94 12.8206 144.896 +-116.709 3.84594 43.466 +-113.797 3.65052 41.2574 +-111.232 3.47165 39.2359 +-109.964 3.33719 37.7162 +-109.437 3.22732 36.4745 +-108.611 3.11033 35.1524 +-108.914 3.02668 34.207 +-108.445 2.92219 33.026 +-108.826 2.84116 32.1102 +-108.623 2.74521 31.0258 +-110.047 2.68982 30.3998 +-110.502 2.60965 29.4937 +-109.497 2.49587 28.2078 +-109.837 2.41369 27.279 +-110.364 2.33528 26.3929 +-110.981 2.25824 25.5222 +-111.298 2.17471 24.5781 +-113.172 2.12018 23.9618 +-114.749 2.05765 23.2551 +-117.893 2.01977 22.827 +-124.185 2.02859 22.9267 +-159.243 2.4748 27.9696 +-160.37 2.36531 26.7323 +-162.771 2.27221 25.6801 +-162.99 2.14693 24.2642 +-854.403 10.5834 119.612 +-864.639 10.0328 113.389 +-379.847 4.11067 46.4579 +-379.743 3.81337 43.0979 +-900.44 8.34131 94.2718 +-404.529 3.43309 38.8001 +-403.957 3.11492 35.2042 +-402.954 2.79511 31.5898 +-402.517 2.48077 28.0372 +-403.147 2.17324 24.5615 +-146.399 0.676228 7.64259 +-149.158 0.573982 6.48703 +-3274.5 10.0783 113.903 +-3275.38 7.55942 85.435 +-146.378 0.225193 2.54509 +-145.994 0.112293 1.26911 +119.9 5.32907e-15 2.84217e-14 +120.295 0.101956 1.04484 +119.582 0.202719 2.07744 +120.459 0.306346 3.13941 +120.427 0.408426 4.18551 +120.285 0.51005 5.22694 +120.135 0.611467 6.26626 +120.275 0.714446 7.32157 +120.705 0.819741 8.40063 +119.929 0.916676 9.39401 +120.739 1.0259 10.5134 +120.642 1.12819 11.5616 +120.636 1.23141 12.6194 +120.918 1.338 13.7117 +120.892 1.44161 14.7735 +120.758 1.54402 15.8229 +120.219 1.64089 16.8157 +120.858 1.7542 17.9769 +120.202 1.84897 18.9481 +120.524 1.95879 20.0735 +120.442 2.06255 21.1368 +119.957 2.15923 22.1276 +120.642 2.27749 23.3395 +120.531 2.3816 24.4064 +120.997 2.49779 25.5971 +120.768 2.60024 26.647 +120.53 2.70249 27.6949 +120.379 2.80681 28.7639 +120.996 2.92988 30.0251 +120.728 3.03231 31.0748 +121.224 3.15462 32.3282 +121.032 3.25983 33.4064 +121.311 3.37835 34.621 +121.003 3.48103 35.6733 +121.738 3.61469 37.043 +121.313 3.71481 38.069 +121.64 3.83849 39.3365 +121.385 3.94451 40.423 +121.972 4.07886 41.7998 +121.695 4.18532 42.8908 +121.126 4.28165 43.878 +118.676 4.30932 44.1615 +115.391 4.30185 44.0849 +111.65 4.27133 43.7722 +108.944 4.27485 43.8082 +105.507 4.24436 43.4958 +102.912 4.24254 43.4772 +100.51 4.24441 43.4963 +97.7494 4.22672 43.3151 +96.4559 4.26914 43.7497 +96.7937 4.38355 44.9222 +97.0279 4.49469 46.0611 +97.2495 4.60656 47.2076 +98.3533 4.76247 48.8053 +97.1197 4.80596 49.2511 +96.5955 4.8836 50.0467 +96.8594 5.00176 51.2575 +96.4062 5.08366 52.0969 +96.7329 5.20754 53.3664 +96.9576 5.32759 54.5967 +96.4752 5.40956 55.4367 +96.761 5.53549 56.7272 +97.0313 5.6623 58.0267 +96.3483 5.73417 58.7632 +96.5927 5.86193 60.0725 +96.5683 5.97488 61.23 +96.1955 6.06707 62.1748 +96.4806 6.20197 63.5572 +96.4171 6.31609 64.7267 +96.5052 6.44158 66.0127 +95.9227 6.52312 66.8483 +96.147 6.66056 68.2568 +96.1112 6.78176 69.4988 +96.1413 6.90917 70.8045 +96.2356 7.04299 72.1759 +96.1544 7.16567 73.4331 +96.2949 7.30668 74.8781 +96.2608 7.43638 76.2073 +96.2107 7.56658 77.5416 +96.2987 7.70961 79.0073 +96.2152 7.84087 80.3524 +96.1153 7.97257 81.7021 +96.0745 8.11107 83.1215 +96.0161 8.25011 84.5463 +95.8657 8.38315 85.9098 +95.8461 8.5297 87.4115 +95.7342 8.67022 88.8516 +96.1846 8.86467 90.8443 +95.9599 8.99982 92.2293 +95.7895 9.14207 93.6871 +95.6715 9.29158 95.2192 +96.0947 9.497 97.3243 +95.3071 9.58507 98.2268 +95.5436 9.7782 100.206 +95.3434 9.9298 101.76 +95.6636 10.1391 103.904 +95.2842 10.2776 105.324 +95.6823 10.5034 107.638 +95.2598 10.6428 109.066 +95.274 10.8339 111.025 +95.2611 11.0258 112.991 +95.4117 11.241 115.197 +95.342 11.4347 117.181 +95.3692 11.6443 119.329 +94.9966 11.8088 121.015 +94.845 12.0044 123.02 +94.7859 12.2162 125.19 +94.8742 12.4522 127.609 +94.6922 12.6579 129.717 +95.1191 12.9511 132.722 +94.6975 13.1347 134.603 +94.5332 13.3585 136.897 +94.7832 13.6474 139.858 +94.5468 13.8731 142.17 +95.0395 14.2133 145.656 +94.6722 14.4326 147.903 +94.3786 14.6687 150.323 +94.1542 14.922 152.92 +94.664 15.3009 156.802 +94.3514 15.5563 159.42 +94.75 15.9385 163.336 +94.3976 16.2041 166.058 +94.7318 16.5978 170.093 +94.5252 16.9079 173.271 +94.2699 17.2189 176.458 +94.3814 17.6083 180.448 +94.1122 17.9386 183.833 +94.0139 18.3132 187.672 +93.9429 18.7064 191.701 +93.7223 19.0833 195.564 +94.2016 19.6197 201.061 +93.928 20.0169 205.132 +94.0375 20.5128 210.214 +93.6263 20.9124 214.308 +93.8927 21.4826 220.151 +93.9488 22.0279 225.74 +93.9888 22.5929 231.53 +93.9343 23.1597 237.339 +93.7491 23.719 243.07 +93.7855 24.3616 249.655 +93.3373 24.9056 255.23 +93.5661 25.6611 262.973 +93.2753 26.3088 269.61 +93.0972 27.0224 276.923 +92.7978 27.7376 284.252 +93.0083 28.6488 293.591 +92.7695 29.4695 302.001 +93.0434 30.5061 312.624 +92.752 31.4148 321.936 +92.6515 32.4468 332.512 +92.6313 33.5747 344.071 +92.5905 34.7709 356.329 +92.3416 35.9694 368.611 +108.622 43.9412 450.305 +104.422 43.9275 450.165 +100.32 43.9479 450.374 +96.0344 43.8792 449.67 +92.0282 43.9304 450.195 +91.0541 45.4939 466.218 +91.0995 47.7371 489.205 +90.6096 49.9072 511.444 +87.8879 51.0069 522.714 +87.9787 53.9476 552.85 +88.4935 57.5069 589.325 +87.9156 60.7534 622.595 +86.4867 63.8009 653.826 +89.9152 71.1208 728.839 +89.906 76.6366 785.365 +90.0931 83.2488 853.126 +88.3314 89.0934 913.02 +88.3846 98.1141 1005.46 +87.0896 107.471 1101.35 +85.8005 119.166 1221.2 +83.2458 132.186 1354.63 +171.468 317.757 3256.34 +142.91 317.89 3257.71 +114.341 317.999 3258.82 +28.6978 106.435 1090.74 +57.1793 318.144 3260.31 +28.5907 318.181 3260.69 +1.58762e-13 318.193 3260.81 +-28.5907 318.181 3260.69 +-57.1863 318.183 3260.71 +-85.7635 318.084 3259.7 +-114.341 317.999 3258.82 +-142.91 317.89 3257.71 +-171.468 317.757 3256.34 +-200.013 317.6 3254.73 +-228.571 317.457 3253.27 +-105.261 129.894 1331.14 +-120.554 133.825 1371.43 +-314.019 316.728 3245.8 +-146.58 135.445 1388.03 +-119.95 102.247 1047.81 +-129.108 102.121 1046.53 +-150.679 111.155 1139.11 +-456.028 315.135 3229.47 +-145.43 94.5064 968.493 +-112.727 69.1228 708.363 +-118.438 68.7373 704.413 +-124.957 68.8256 705.318 +-148.103 77.6074 795.313 +-625.224 312.385 3201.29 +-653.269 311.843 3195.74 +-681.264 311.278 3189.95 +-140.426 61.5176 630.427 +-144.261 60.6866 621.91 +-148.495 60.0709 615.601 +-176.216 68.6406 703.422 +-144.219 54.1591 555.017 +-143.722 52.0929 533.843 +-148.317 51.941 532.287 +-903.181 305.904 3134.88 +-109.971 36.0561 369.5 +-112.066 35.5994 364.819 +-115.321 35.5215 364.021 +-118.477 35.4132 362.911 +-122.131 35.4496 363.284 +-126.841 35.7763 366.633 +-1093.65 299.942 3073.78 +-1120.7 299.04 3064.53 +-1147.38 298.043 3054.31 +-1174.26 297.095 3044.6 +-493.017 121.555 1245.68 +-1227.4 295.042 3023.56 +-419.651 98.3948 1008.34 +-416.637 95.3262 976.894 +-159.978 35.7327 366.186 +-163.02 35.5603 364.418 +-166.582 35.5002 363.803 +-169.681 35.3402 362.163 +-143.317 29.1816 299.051 +-141.901 28.256 289.565 +-142.783 27.813 285.025 +-145.322 27.6996 283.863 +-148.729 27.7477 284.355 +-415.858 75.9587 778.418 +-418.087 74.7841 766.38 +-420.184 73.6199 754.45 +-422.204 72.4748 742.715 +-423.8 71.29 730.573 +-425.672 70.1833 719.232 +-426.091 68.8709 705.783 +-427.195 67.7039 693.824 +-465.64 72.3716 741.657 +-433.762 66.1258 677.651 +-436.746 65.3159 669.351 +-439.342 64.4654 660.635 +-441.706 63.5995 651.761 +-444.119 62.7584 643.142 +-446.472 61.9262 634.614 +-448.767 61.1026 626.174 +-450.831 60.2643 617.583 +-453.909 59.5754 610.523 +-455.574 58.7153 601.709 +-457.667 57.9263 593.623 +-469.627 58.3781 598.253 +-477.842 58.3427 597.89 +-466.012 55.8901 572.757 +-468.344 55.1782 565.461 +-471.87 54.6155 559.695 +-474.941 54.0068 553.456 +-477.152 53.309 546.305 +-480.068 52.6989 540.053 +-482.778 52.0735 533.644 +-485.682 51.4762 527.523 +-488.243 50.8495 521.101 +-491.554 50.307 515.541 +-494.388 49.7208 509.534 +-497.646 49.1822 504.014 +-499.924 48.5524 497.561 +-502.699 47.9772 491.666 +-382.689 35.8913 367.811 +-382.055 35.2113 360.842 +-381.767 34.5749 354.32 +-384.711 34.2369 350.857 +-382.497 33.4482 342.774 +-381.518 32.7817 335.943 +-140.074 11.8258 121.189 +-142.5 11.8201 121.132 +-142.484 11.6114 118.993 +-141.747 11.3482 116.296 +-141.829 11.1543 114.308 +-141.809 10.9551 112.267 +-145.388 11.0318 113.053 +-150.896 11.2451 115.239 +-155.734 11.3974 116.799 +-156.27 11.2303 115.087 +-157.03 11.0803 113.55 +-159.729 11.0652 113.395 +-161.291 10.9684 112.403 +-381.653 25.4748 261.063 +-380.445 24.9223 255.401 +-382.754 24.6042 252.141 +-379.415 23.9298 245.23 +-381.044 23.576 241.604 +-383.911 23.2984 238.76 +-380.533 22.6474 232.089 +-378.868 22.109 226.571 +-380.151 21.7476 222.867 +-379.406 21.2741 218.014 +-379.562 20.8561 213.731 +-380.285 20.4723 209.799 +-379.649 20.0196 205.159 +-380.815 19.6651 201.526 +-378.931 19.1577 196.327 +-378.767 18.7432 192.079 +-379.721 18.3869 188.427 +-378.302 17.9195 183.638 +-379.988 17.6024 180.388 +-378.112 17.1237 175.483 +-380.364 16.8349 172.523 +-380.583 16.4565 168.645 +-378.838 15.9978 163.944 +-379.984 15.6648 160.532 +-379.714 15.2753 156.539 +-380.145 14.9165 152.863 +-379.331 14.5119 148.717 +-379.407 14.1446 144.953 +-115.679 4.20048 43.0461 +-113.233 4.00263 41.0186 +-111.42 3.83195 39.2695 +-110.058 3.68046 37.717 +-109.342 3.55314 36.4123 +-108.611 3.42732 35.1229 +-108.914 3.33515 34.1783 +-108.636 3.22567 33.0564 +-108.251 3.11417 31.9137 +-109.68 3.05443 31.3015 +-111.107 2.99251 30.6669 +-110.212 2.86807 29.3917 +-109.304 2.74537 28.1343 +-110.711 2.68082 27.4728 +-110.461 2.57555 26.394 +-111.76 2.50587 25.6799 +-112.176 2.41526 24.7513 +-113.172 2.33625 23.9417 +-114.651 2.26541 23.2157 +-116.814 2.20523 22.599 +-125.463 2.25835 23.1434 +-158.554 2.71521 27.8252 +-158.2 2.57111 26.3485 +-160.401 2.46732 25.2849 +-163.88 2.37865 24.3762 +-855.295 11.6742 119.636 +-864.342 11.0515 113.255 +-379.153 4.52132 46.334 +-379.942 4.2042 43.0843 +-900.042 9.18735 94.1511 +-403.633 3.7746 38.6818 +-404.854 3.43999 35.2527 +-403.652 3.08531 31.6179 +-403.914 2.74309 28.1109 +-402.548 2.39117 24.5045 +-145.5 0.740571 7.5893 +-145.861 0.6185 6.33832 +-404.154 1.37069 14.0467 +-146.85 0.373463 3.82721 +-145.478 0.246619 2.52733 +-146.294 0.123992 1.27065 +119.8 1.77636e-15 -1.13687e-13 +119.495 0.110637 1.03693 +119.682 0.221636 2.07726 +120.459 0.334656 3.13652 +120.327 0.445798 4.17818 +120.385 0.557647 5.22647 +120.135 0.667972 6.26049 +120.275 0.780467 7.31483 +120.705 0.895492 8.39289 +120.826 1.00888 9.45557 +120.739 1.12071 10.5037 +120.443 1.23041 11.5318 +120.536 1.34409 12.5973 +120.023 1.45083 13.5977 +120.892 1.57483 14.7599 +120.758 1.6867 15.8084 +120.912 1.80286 16.8971 +120.759 1.91474 17.9456 +120.3 2.02149 18.9462 +120.524 2.1398 20.055 +120.442 2.25315 21.1173 +120.842 2.37616 22.2703 +120.74 2.48998 23.337 +120.531 2.60168 24.3839 +120.312 2.71316 25.4288 +120.768 2.84053 26.6225 +120.724 2.957 27.7141 +120.379 3.06618 28.7374 +120.996 3.20062 29.9974 +120.631 3.30986 31.0212 +121.224 3.44614 32.2985 +121.032 3.56107 33.3757 +121.407 3.69346 34.6165 +121.003 3.80271 35.6404 +120.877 3.9208 36.7472 +121.217 4.05489 38.004 +121.64 4.1932 39.3002 +121.385 4.30902 40.3858 +121.215 4.42814 41.5022 +121.789 4.57562 42.8844 +121.972 4.70997 44.1436 +119.145 4.72612 44.295 +115.391 4.69937 44.0443 +111.65 4.66604 43.7319 +108.944 4.66988 43.7679 +105.692 4.6447 43.5319 +103.004 4.63874 43.476 +100.51 4.63663 43.4562 +97.7494 4.61731 43.2752 +96.1829 4.65044 43.5857 +96.7937 4.78863 44.8809 +97.2084 4.91917 46.1043 +97.3394 5.03689 47.2077 +97.9058 5.17889 48.5385 +97.6543 5.27898 49.4766 +96.5955 5.33489 50.0006 +96.8594 5.46396 51.2103 +96.4941 5.55849 52.0963 +96.7329 5.68877 53.3173 +96.9576 5.81991 54.5464 +96.4752 5.90945 55.3856 +96.6748 6.04163 56.6244 +96.9456 6.18008 57.922 +96.3483 6.26405 58.7091 +96.5927 6.40362 60.0171 +96.0623 6.4928 60.853 +96.0278 6.61617 62.0092 +96.3138 6.76338 63.3889 +96.4171 6.89975 64.6671 +96.5876 7.04284 66.0081 +96.0046 7.132 66.8438 +96.0656 7.26989 68.1362 +96.1921 7.41469 69.4933 +96.2217 7.55395 70.7985 +96.3154 7.70021 72.1693 +96.2338 7.8343 73.426 +96.2949 7.98188 74.8092 +96.3391 8.13018 76.1991 +95.589 8.21238 76.9695 +96.2987 8.42204 78.9346 +96.2152 8.56543 80.2784 +96.1914 8.7162 81.6915 +96.15 8.86757 83.1102 +96.0161 9.01249 84.4685 +95.94 9.16494 85.8973 +96.5096 9.38243 87.9357 +96.3924 9.53654 89.3801 +95.5318 9.61812 90.1446 +96.0319 9.83886 92.2135 +95.8609 9.99432 93.6705 +95.6715 10.1502 95.1315 +96.0947 10.3746 97.2347 +95.9323 10.5395 98.7801 +95.5436 10.6818 100.114 +95.9572 10.9172 102.32 +95.6636 11.076 103.809 +95.7526 11.2825 105.744 +95.4835 11.4502 107.316 +95.1286 11.6102 108.815 +95.274 11.835 110.922 +95.3254 12.0527 112.963 +95.3481 12.2716 115.014 +95.4679 12.5078 117.228 +94.9957 12.6704 118.752 +94.7503 12.8666 120.591 +94.845 13.1137 122.906 +95.3275 13.4214 125.79 +94.7553 13.5858 127.331 +94.8098 13.8447 129.758 +94.5965 14.0701 131.871 +95.2137 14.4266 135.212 +94.9297 14.6542 137.344 +94.6714 14.891 139.564 +94.6572 15.1727 142.204 +94.8761 15.5 145.271 +94.6722 15.7663 147.767 +94.3786 16.0242 150.185 +94.4677 16.3552 153.287 +94.767 16.7331 156.829 +94.1991 16.9664 159.015 +94.3 17.3286 162.41 +94.2991 17.6831 165.732 +94.2955 18.0481 169.154 +94.5252 18.4704 173.111 +94.2699 18.8101 176.295 +94.3814 19.2354 180.282 +94.0668 19.5868 183.575 +93.9693 19.9959 187.409 +93.8553 20.4159 191.346 +94.1097 20.9329 196.191 +93.8635 21.3558 200.155 +93.928 21.8667 204.943 +93.6308 22.3114 209.111 +93.6662 22.8545 214.201 +93.9318 23.4775 220.04 +94.0253 24.0831 225.716 +93.6516 24.5922 230.488 +93.9343 25.2999 237.12 +93.7491 25.9109 242.847 +93.5754 26.5532 248.866 +93.6109 27.2868 255.742 +93.2656 27.9425 261.888 +93.1776 28.7099 269.08 +92.9703 29.4793 276.291 +92.8287 30.3108 284.085 +92.858 31.2456 292.846 +92.8573 32.2232 302.008 +92.7878 33.2336 311.478 +92.7244 34.3075 321.543 +92.5714 35.4145 331.918 +92.6313 36.6773 343.754 +92.3401 37.8813 355.038 +92.4142 39.3242 368.561 +108.786 48.0739 450.567 +104.602 48.0694 450.525 +100.45 48.0712 450.542 +96.3879 48.1105 450.91 +92.088 48.0212 450.072 +91.2449 49.8022 466.765 +90.972 52.0755 488.071 +90.4881 54.4458 510.287 +87.8879 55.7204 522.233 +88.0726 58.9958 552.931 +87.8579 62.3698 584.553 +88.1105 66.5147 623.401 +86.4475 69.6652 652.928 +89.1718 77.0506 722.147 +90.2682 84.0558 787.802 +90.1976 91.0473 853.33 +88.1589 97.1363 910.398 +87.7223 106.378 997.011 +86.7365 116.926 1095.87 +85.654 129.956 1218 +200.013 346.949 3251.73 +171.468 347.121 3253.34 +142.91 347.266 3254.71 +114.341 347.385 3255.82 +28.7711 116.568 1092.52 +57.1793 347.544 3257.31 +10.9902 133.61 1252.24 +1.55764e-13 347.597 3257.81 +-28.5907 347.584 3257.69 +-57.1793 347.544 3257.31 +-85.7635 347.478 3256.7 +-114.341 347.385 3255.82 +-54.799 133.159 1248.02 +-171.468 347.121 3253.34 +-200.013 346.949 3251.73 +-90.5858 137.439 1288.13 +-257.056 346.525 3247.77 +-285.548 346.274 3245.41 +-314.019 345.997 3242.81 +-136.755 138.043 1293.79 +-120.086 111.821 1048.03 +-129.401 111.812 1047.94 +-150.888 121.596 1139.64 +-456.028 344.256 3226.5 +-145.637 103.386 968.977 +-112.727 75.5103 707.711 +-118.735 75.2775 705.529 +-125.061 75.2484 705.256 +-148.486 84.9981 796.634 +-625.224 341.252 3198.35 +-653.269 340.66 3192.8 +-681.264 340.043 3187.01 +-140.686 67.3266 631.01 +-144.374 66.3462 621.822 +-148.821 65.7664 616.387 +-176.385 75.0557 703.45 +-144.469 59.2665 555.468 +-143.878 56.9682 533.927 +-148.718 56.8942 533.233 +-903.181 334.173 3131.99 +-110.255 39.4898 370.113 +-112.358 38.9905 365.434 +-115.531 38.8749 364.35 +-118.724 38.7664 363.334 +-122.384 38.8059 363.704 +-127.134 39.1727 367.141 +-1093.78 327.699 3071.32 +-134.961 39.3401 368.71 +-134.305 38.1106 357.187 +-1174.12 324.51 3041.43 +-1200.77 323.411 3031.13 +-417.986 109.76 1028.71 +-420.072 107.595 1008.42 +-417.027 104.233 976.91 +-159.938 39.025 365.757 +-163.183 38.8851 364.445 +-166.707 38.8097 363.739 +-169.893 38.654 362.28 +-143.059 31.8208 298.236 +-142.032 30.8956 289.565 +-143.051 30.4402 285.297 +-145.913 30.3821 284.753 +-413.404 84.2539 789.659 +-415.952 82.9968 777.877 +-418.945 81.8625 767.246 +-420.912 80.5622 755.059 +-422.056 79.1445 741.772 +-424 77.9146 730.245 +-426.332 76.7877 719.683 +-426.606 75.3261 705.985 +-426.411 73.8247 691.913 +-452.551 76.837 720.145 +-434.568 72.3707 678.285 +-436.909 71.3784 668.985 +-439.894 70.511 660.856 +-442.042 69.5294 651.655 +-444.629 68.6366 643.288 +-447.045 67.7356 634.844 +-449.116 66.8009 626.083 +-451.184 65.8847 617.496 +-454.088 65.1063 610.201 +-456.055 64.2089 601.79 +-458.215 63.355 593.787 +-466.425 63.338 593.628 +-478.776 63.8586 598.507 +-466.326 61.096 572.615 +-469.235 60.3918 566.014 +-472.063 59.6869 559.408 +-475.136 59.0217 553.173 +-477.545 58.2832 546.252 +-480.665 57.6402 540.226 +-483.781 57.0039 534.262 +-486.965 56.3817 528.431 +-488.72 55.6028 521.13 +-491.829 54.9866 515.355 +-495.014 54.3842 509.709 +-497.646 53.727 503.55 +-500.278 53.0767 497.454 +-502.984 52.4404 491.491 +-2356.92 241.476 2263.2 +-383.288 38.5894 361.674 +-381.986 37.7917 354.198 +-382.057 37.1427 348.115 +-381.456 36.4397 341.527 +-380.844 35.7476 335.04 +-139.999 12.9116 121.012 +-142.272 12.8917 120.826 +-142.791 12.7118 119.14 +-141.516 12.3766 115.999 +-141.285 12.1383 113.764 +-141.965 11.9806 112.287 +-145.388 12.0513 112.949 +-151.61 12.3424 115.677 +-155.974 12.4697 116.871 +-156.35 12.2744 115.04 +-157.516 12.1416 113.796 +-159.485 12.0693 113.118 +-160.39 11.915 111.672 +-383.466 27.9611 262.062 +-381.689 27.3142 255.999 +-380.585 26.7256 250.482 +-382.266 26.3375 246.845 +-381.55 25.7888 241.702 +-383.148 25.4009 238.067 +-382.068 24.8401 232.811 +-379.897 24.2176 226.977 +-378.945 23.6818 221.955 +-379.839 23.2665 218.062 +-380.868 22.8617 214.269 +-380.722 22.3899 209.847 +-380.528 21.9202 205.444 +-380.286 21.4524 201.06 +-380.794 21.031 197.11 +-379.747 20.5283 192.399 +-379.094 20.0528 187.942 +-378.302 19.5755 183.469 +-380.53 19.2564 180.479 +-381.284 18.8631 176.793 +-378.089 18.2806 171.333 +-380.4 17.9687 168.409 +-380.855 17.5692 164.665 +-379.156 17.075 160.034 +-378.791 16.6462 156.014 +-378.94 16.2433 152.238 +-379.703 15.8684 148.725 +-380.621 15.5011 145.282 +-114.742 4.55149 42.6583 +-113.327 4.37614 41.0148 +-110.572 4.15418 38.9345 +-110.342 4.03093 37.7794 +-108.773 3.86128 36.1894 +-109.276 3.767 35.3057 +-108.533 3.63058 34.0272 +-108.445 3.51756 32.9679 +-108.73 3.41701 32.0255 +-109.968 3.34546 31.3549 +-111.107 3.26904 30.6387 +-110.985 3.15507 29.5705 +-110.272 3.02563 28.3573 +-110.711 2.92855 27.4475 +-110.267 2.8086 26.3233 +-111.468 2.73027 25.5892 +-112.176 2.63845 24.7285 +-113.172 2.55214 23.9196 +-114.455 2.47053 23.1548 +-117.599 2.4252 22.7299 +-125.07 2.45931 23.0496 +-159.539 2.98454 27.9722 +-159.976 2.84022 26.6196 +-161.586 2.71524 25.4483 +-163.385 2.59062 24.2803 +-855.592 12.7574 119.567 +-865.531 12.0893 113.306 +-379.748 4.94688 46.364 +-380.24 4.59631 43.0784 +-899.744 10.033 94.0332 +-403.633 4.12341 38.6461 +-403.359 3.74401 35.0902 +-403.951 3.37291 31.6122 +-404.412 3.00027 28.1197 +-403.147 2.61602 24.5183 +-143.703 0.799011 7.48863 +-143.663 0.665474 6.23707 +-404.154 1.49735 14.0337 +-147.449 0.409641 3.83931 +-145.378 0.269223 2.52326 +-145.994 0.135172 1.26688 +119.8 1.77636e-15 -1.13687e-13 +120.295 0.12079 1.04283 +120.482 0.241973 2.08904 +120.359 0.362636 3.13077 +120.427 0.483874 4.17746 +120.385 0.604774 5.22123 +120.235 0.725024 6.2594 +120.275 0.846425 7.30749 +119.807 0.963947 8.32211 +119.73 1.08421 9.36036 +119.842 1.20639 10.4152 +120.343 1.3333 11.5108 +120.636 1.45889 12.5951 +120.123 1.57475 13.5954 +120.892 1.70792 14.7451 +120.758 1.82924 15.7925 +120.912 1.95522 16.8801 +119.968 2.06295 17.8102 +121.189 2.20853 19.067 +120.524 2.32063 20.0348 +120.442 2.44356 21.0962 +119.957 2.5581 22.085 +120.642 2.69821 23.2947 +120.433 2.81924 24.3396 +120.312 2.94245 25.4033 +120.768 3.08058 26.5958 +120.627 3.20431 27.6639 +120.282 3.32262 28.6854 +120.996 3.47111 29.9673 +121.406 3.61263 31.1892 +120.837 3.72546 32.1633 +121.032 3.86201 33.3422 +121.311 4.00242 34.5544 +121.099 4.12734 35.6329 +120.877 4.25215 36.7104 +121.122 4.39411 37.936 +121.355 4.5369 39.1687 +121.385 4.67318 40.3453 +121.121 4.79863 41.4283 +121.789 4.9623 42.8414 +121.126 5.0726 43.7936 +119.707 5.1497 44.4592 +115.391 5.09652 44.0001 +112.487 5.09833 44.0157 +108.944 5.06453 43.724 +106.339 5.06805 43.7544 +102.912 5.02626 43.3936 +100.418 5.02388 43.373 +98.6629 5.05433 43.6359 +96.8199 5.07686 43.8304 +96.6124 5.1836 44.7519 +97.0279 5.32498 45.9725 +96.6204 5.42221 46.8119 +98.4428 5.64737 48.7558 +97.5652 5.71988 49.3818 +96.5955 5.78574 49.9504 +96.8594 5.92573 51.159 +96.4062 6.02276 51.9967 +96.6455 6.16396 53.2157 +96.9576 6.31175 54.4917 +96.4752 6.40887 55.3301 +96.6748 6.55221 56.5676 +96.9456 6.70236 57.8639 +96.4336 6.79945 58.7021 +96.4231 6.9326 59.8516 +96.737 7.09098 61.219 +96.8665 7.23797 62.488 +96.4806 7.34765 63.435 +96.4171 7.48285 64.6022 +96.5876 7.63803 65.9419 +96.0046 7.73473 66.7767 +95.9842 7.8776 68.0102 +96.1112 8.03454 69.3651 +96.1413 8.18549 70.6683 +96.3154 8.35096 72.0969 +96.2338 8.49638 73.3524 +96.2161 8.64936 74.673 +96.2608 8.8101 76.0608 +96.133 8.9571 77.3299 +96.2987 9.1338 78.8554 +96.2152 9.2893 80.1979 +96.1153 9.44533 81.545 +96.0745 9.60942 82.9616 +96.0161 9.77414 84.3837 +95.94 9.93947 85.8111 +95.8461 10.1054 87.2434 +95.7342 10.2719 88.6807 +96.1121 10.4943 90.6012 +96.0319 10.6703 92.121 +95.7895 10.8309 93.5069 +95.7423 11.0161 95.1064 +96.0246 11.2432 97.0663 +95.9323 11.4302 98.681 +95.6125 11.5929 100.086 +95.9572 11.8398 102.218 +95.6636 12.0121 103.705 +95.9533 12.2616 105.859 +95.4835 12.4179 107.208 +95.719 12.6695 109.381 +95.2091 12.8265 110.736 +95.1968 13.0537 112.698 +95.2845 13.2997 114.821 +95.405 13.5558 117.033 +95.4937 13.8132 119.255 +94.935 13.9811 120.704 +94.845 14.2219 122.783 +94.7859 14.4729 124.95 +94.7553 14.7339 127.204 +94.6334 14.9868 129.387 +94.6546 15.2686 131.82 +95.1563 15.6364 134.994 +94.5332 15.8262 136.633 +94.8391 16.1781 139.671 +94.5468 16.4358 141.896 +94.4404 16.7327 144.459 +94.7259 17.1083 147.702 +94.4316 17.3882 150.118 +94.52 17.7473 153.219 +94.3035 18.0584 155.905 +94.3006 18.4201 159.028 +94.3 18.793 162.247 +94.3976 19.1975 165.739 +94.247 19.5633 168.897 +94.4297 20.0111 172.763 +94.2699 20.3998 176.118 +94.3814 20.861 180.101 +94.0214 21.2318 183.301 +93.9693 21.6858 187.221 +94.2936 22.2447 192.047 +94.0236 22.6813 195.816 +93.8635 23.1606 199.954 +93.8866 23.7042 204.647 +93.9562 24.2811 209.627 +94.025 24.881 214.807 +93.8927 25.451 219.728 +93.9871 26.1078 225.398 +93.6516 26.6705 230.257 +93.9343 27.438 236.882 +93.7849 28.1113 242.695 +93.6104 28.8079 248.709 +93.3373 29.5063 254.739 +93.4993 30.3799 262.28 +93.1776 31.1362 268.81 +93.002 31.9815 276.108 +92.8287 32.8724 283.8 +92.7978 33.8642 292.362 +92.7695 34.9134 301.42 +92.731 36.0202 310.976 +92.5039 37.1184 320.456 +92.5179 38.3852 331.393 +92.5537 39.7436 343.121 +92.3151 41.0715 354.585 +92.1481 42.5247 367.131 +108.786 52.1366 450.115 +104.782 52.2216 450.848 +100.623 52.2236 450.866 +96.3879 52.1763 450.457 +92.3672 52.2373 450.984 +91.2449 54.011 466.296 +90.808 56.3745 486.702 +90.4881 59.0471 509.775 +87.9374 60.4634 522.003 +87.7128 63.7201 550.119 +87.3406 67.2423 580.528 +88.3888 72.3637 624.742 +86.3822 75.4955 651.78 +88.7574 83.1738 718.07 +90.0758 90.965 785.334 +90.3962 98.9592 854.351 +88.0631 105.231 908.496 +87.5654 115.162 994.233 +85.6616 125.235 1081.2 +85.2215 140.226 1210.63 +73.301 137.895 1190.5 +171.468 376.456 3250.08 +49.3292 129.998 1122.32 +38.557 127.042 1096.8 +31.1296 136.783 1180.89 +21.3844 140.962 1216.97 +10.3898 136.985 1182.64 +5.93969e-14 140.753 1215.18 +-10.368 136.698 1180.16 +-21.3356 140.64 1214.19 +-31.0642 136.495 1178.41 +-42.6367 140.484 1212.85 +-51.7239 136.309 1176.8 +-63.9022 140.297 1211.23 +-72.4158 136.23 1176.13 +-85.0192 139.894 1207.76 +-93.0682 136.064 1174.69 +-106.443 139.988 1208.57 +-314.019 375.237 3239.56 +-342.467 374.907 3236.71 +-120.29 121.477 1048.76 +-129.596 121.443 1048.46 +-150.118 131.199 1132.69 +-456.028 373.349 3223.26 +-145.77 112.226 968.889 +-113.071 82.1417 709.16 +-118.95 81.7868 706.095 +-125.218 81.7096 705.429 +-148.795 92.3737 797.496 +-625.224 370.092 3195.14 +-653.269 369.45 3189.59 +-681.264 368.78 3183.81 +-141.119 73.2411 632.317 +-144.509 72.0203 621.778 +-149.195 71.5034 617.315 +-176.772 81.5773 704.286 +-144.695 64.3755 555.777 +-143.929 61.8048 533.584 +-148.959 61.8022 533.561 +-903.181 362.414 3128.85 +-110.34 42.8601 370.027 +-112.563 42.3626 365.732 +-115.772 42.248 364.742 +-118.941 42.1192 363.631 +-122.607 42.1618 363.998 +-127.395 42.5702 367.524 +-1093.78 355.393 3068.24 +-1120.7 354.281 3058.64 +-1147.52 353.142 3048.81 +-134.782 40.4 348.788 +-135.019 39.4388 340.49 +-385.695 109.84 948.288 +-420.607 116.837 1008.7 +-159.496 43.234 373.254 +-160.815 42.5551 367.394 +-162.776 42.0662 363.173 +-411.583 103.915 897.139 +-170.315 42.0249 362.816 +-141.81 34.2088 295.337 +-142.032 33.5066 289.275 +-143.453 33.1053 285.81 +-146.23 33.0215 285.087 +-414.142 91.5375 790.276 +-416.093 90.0412 777.359 +-418.898 88.7707 766.39 +-420.766 87.3403 754.041 +-422.598 85.9431 741.978 +-424.45 84.5889 730.286 +-425.977 83.2077 718.362 +-427.07 81.7807 706.042 +-426.307 80.044 691.049 +-444.92 81.9254 707.292 +-435.051 78.5741 678.359 +-437.617 77.536 669.396 +-440.722 76.6139 661.436 +-442.378 75.4626 651.496 +-444.855 74.475 642.97 +-447.045 73.46 634.207 +-449.464 72.5024 625.94 +-451.889 71.5644 617.841 +-454.623 70.6917 610.308 +-456.597 69.718 601.901 +-458.458 68.7456 593.506 +-464.147 68.3552 590.135 +-479.336 69.3363 598.606 +-466.326 66.2593 572.04 +-469.489 65.5311 565.753 +-472.642 64.8103 559.531 +-475.721 64.0883 553.298 +-477.742 63.2349 545.93 +-480.93 62.5459 539.982 +-483.781 61.8213 533.726 +-487.236 61.1804 528.193 +-488.925 60.327 520.825 +-492.174 59.6753 515.198 +-495.014 58.9802 509.198 +-497.856 58.2921 503.257 +-500.561 57.5948 497.237 +-503.127 56.8883 491.137 +-383.336 42.5934 367.724 +-381.112 41.6129 359.259 +-381.255 40.907 353.165 +-382.352 40.3127 348.034 +-382.125 39.5885 341.782 +-380.395 38.723 334.31 +-140.678 14.0706 121.477 +-142.12 13.9663 120.576 +-142.101 13.7195 118.445 +-141.516 13.4226 115.882 +-141.985 13.2293 114.213 +-141.887 12.9859 112.112 +-145.624 13.0909 113.018 +-152.8 13.4905 116.468 +-155.734 13.5028 116.575 +-156.993 13.3665 115.397 +-157.516 13.1677 113.682 +-159.729 13.1093 113.177 +-161.373 13.0013 112.245 +-380.417 30.0829 259.717 +-383.513 29.7642 256.965 +-383.171 29.181 251.931 +-381.595 28.5132 246.165 +-382.562 28.0424 242.1 +-382.894 27.5292 237.67 +-380.874 26.8551 231.85 +-381.439 26.3709 227.67 +-381.357 25.8467 223.144 +-381.311 25.3306 218.688 +-380.868 24.7938 214.054 +-379.585 24.2095 209.01 +-380.879 23.7946 205.428 +-381.168 23.3194 201.325 +-381.06 22.8242 197.05 +-378.232 22.1743 191.439 +-380.258 21.8142 188.33 +-378.213 21.2249 183.242 +-380.169 20.864 180.127 +-380.196 20.3988 176.111 +-380.546 19.9544 172.273 +-379.395 19.4358 167.796 +-379.479 18.9852 163.906 +-379.156 18.5181 159.873 +-378.421 18.0354 155.706 +-379.311 17.6332 152.234 +-379.331 17.1927 148.431 +-378.007 16.6956 144.139 +-114.18 4.91196 42.4068 +-113.327 4.74597 40.9737 +-110.666 4.50909 38.9286 +-110.153 4.36409 37.6768 +-108.678 4.18395 36.1216 +-108.42 4.05334 34.9939 +-108.914 3.95124 34.1125 +-108.541 3.81819 32.9638 +-108.347 3.69271 31.8805 +-109.584 3.61551 31.214 +-110.721 3.53301 30.5018 +-110.309 3.40085 29.3608 +-109.304 3.25252 28.0802 +-109.837 3.151 27.2037 +-110.753 3.05939 26.4128 +-111.273 2.95583 25.5188 +-111.981 2.85644 24.6607 +-113.172 2.76782 23.8956 +-115.337 2.69996 23.3098 +-117.304 2.62357 22.6503 +-126.84 2.70489 23.3523 +-159.539 3.23676 27.9442 +-160.962 3.09924 26.7569 +-161.586 2.94471 25.4227 +-163.88 2.81806 24.3293 +-855.592 13.8356 119.447 +-866.424 13.1246 113.309 +-379.252 5.35794 46.257 +-380.24 4.98475 43.0352 +-900.738 10.8929 94.0426 +-403.633 4.47188 38.6074 +-403.359 4.06041 35.055 +-403.652 3.65525 31.5571 +-403.914 3.24981 28.0568 +-403.746 2.84131 24.5301 +-145.5 0.877376 7.57471 +-403.815 2.02863 17.5139 +-403.254 1.62027 13.9884 +-146.65 0.44185 3.81466 +-145.378 0.291975 2.52073 +-147.294 0.147901 1.27688 +119.8 1.77636e-15 -1.13687e-13 +120.395 0.130301 1.04256 +119.682 0.259078 2.07292 +120.559 0.391515 3.13257 +120.427 0.52154 4.17292 +120.485 0.652392 5.21989 +120.235 0.781463 6.2526 +121.174 0.919127 7.35408 +120.705 1.04677 8.37537 +120.826 1.17931 9.43583 +120.739 1.31003 10.4818 +120.443 1.43826 11.5078 +120.636 1.57245 12.5814 +120.222 1.69874 13.5919 +120.793 1.83936 14.717 +120.758 1.97164 15.7754 +120.912 2.10742 16.8618 +120.858 2.24003 17.9229 +120.3 2.36299 18.9066 +120.623 2.50332 20.0295 +120.344 2.63162 21.056 +120.154 2.76176 22.0973 +120.642 2.90825 23.2694 +120.531 3.04119 24.333 +120.312 3.1715 25.3757 +120.768 3.32039 26.5669 +120.627 3.45374 27.6339 +120.282 3.58127 28.6543 +121.093 3.74431 29.9588 +121.406 3.89385 31.1553 +120.837 4.01546 32.1283 +121.032 4.16265 33.306 +121.407 4.31741 34.5442 +121.099 4.44863 35.5942 +120.781 4.57952 36.6414 +121.122 4.73616 37.8948 +121.45 4.8939 39.1569 +121.48 5.04089 40.3329 +121.121 5.17217 41.3833 +121.789 5.34859 42.7949 +121.126 5.46747 43.7461 +119.894 5.55925 44.4804 +115.484 5.49769 43.9879 +112.581 5.49974 44.0042 +108.944 5.45878 43.6765 +106.339 5.46257 43.7069 +102.912 5.41753 43.3465 +100.418 5.41496 43.3259 +98.6629 5.44778 43.5885 +96.5469 5.45663 43.6593 +96.7937 5.59759 44.7872 +97.0279 5.7395 45.9226 +96.6204 5.8443 46.7611 +97.9953 6.05932 48.4815 +97.2979 6.14825 49.1931 +96.7729 6.24759 49.9879 +96.8594 6.38701 51.1034 +96.4941 6.49751 51.9875 +96.6455 6.64378 53.1579 +97.1317 6.8153 54.5303 +96.5618 6.91396 55.3196 +96.761 7.06855 56.5566 +96.9456 7.2241 57.8011 +96.4336 7.32874 58.6384 +96.5927 7.4854 59.8918 +96.0623 7.58965 60.726 +96.0278 7.73386 61.8798 +96.4806 7.91962 63.3661 +96.4171 8.06534 64.532 +96.5876 8.2326 65.8703 +95.9227 8.32971 66.6473 +96.147 8.50522 68.0516 +96.1112 8.65998 69.2898 +96.2217 8.83006 70.6506 +96.3154 9.00103 72.0186 +96.3131 9.16531 73.3331 +96.2949 9.33028 74.653 +96.3391 9.50363 76.04 +96.2107 9.66216 77.3084 +96.2987 9.8448 78.7698 +96.2152 10.0124 80.1108 +96.1914 10.1887 81.521 +96.0745 10.3575 82.8716 +96.0161 10.535 84.2921 +95.94 10.7132 85.7179 +95.8461 10.892 87.1487 +96.3193 11.1391 89.1258 +96.1846 11.3198 90.5712 +96.0319 11.501 92.021 +95.8609 11.6827 93.475 +95.6715 11.8649 94.9329 +96.0246 12.1184 96.9609 +95.8629 12.311 98.5026 +95.6125 12.4953 99.9772 +96.0254 12.7707 102.18 +95.6636 12.9471 103.592 +95.8864 13.207 105.671 +95.6161 13.403 107.24 +95.719 13.6558 109.262 +95.274 13.8344 110.691 +95.7754 14.1554 113.26 +95.2845 14.335 114.697 +95.4679 14.6208 116.983 +95.4315 14.8788 119.048 +94.935 15.0694 120.573 +94.7842 15.3192 122.571 +94.846 15.6094 124.893 +95.4096 15.9906 127.944 +95.2212 16.2538 130.049 +95.1191 16.5379 132.323 +95.0416 16.8332 134.685 +94.8164 17.1093 136.894 +94.7832 17.4271 139.437 +94.602 17.7255 141.825 +94.985 18.1392 145.135 +94.7797 18.4505 147.625 +94.4316 18.7417 149.955 +94.52 19.1288 153.052 +94.3035 19.4641 155.735 +94.3006 19.854 158.855 +94.3 20.256 162.071 +94.2991 20.6703 165.386 +94.2955 21.0971 168.801 +94.0957 21.4925 171.965 +94.2699 21.9877 175.927 +94.3814 22.4849 179.905 +94.43 22.984 183.898 +93.9693 23.3739 187.018 +93.8991 23.876 191.036 +94.0236 24.4469 195.603 +93.8635 24.9635 199.737 +93.8866 25.5494 204.425 +93.9968 26.1825 209.49 +94.0649 26.8291 214.664 +93.8927 27.4322 219.489 +93.9488 28.1286 225.061 +93.6891 28.7582 230.099 +93.9709 29.5854 236.717 +93.7849 30.2996 242.432 +93.8556 31.1318 249.09 +93.2689 31.7799 254.276 +93.1989 32.6396 261.154 +93.1776 33.5599 268.518 +92.8433 34.4123 275.338 +92.8287 35.4313 283.491 +92.8279 36.5121 292.139 +92.5941 37.5601 300.524 +92.589 38.7647 310.162 +92.4488 39.984 319.918 +92.5714 41.3972 331.225 +92.5796 42.8494 342.845 +92.3151 44.2687 354.2 +92.1722 45.847 366.829 +108.949 56.2796 450.302 +104.76 56.2745 450.261 +100.861 56.4221 451.442 +96.5542 56.335 450.745 +92.407 56.328 450.689 +91.1495 58.1545 465.303 +90.9355 60.8483 486.856 +90.3839 63.5702 508.635 +88.2345 65.3903 523.198 +87.5407 68.5455 548.443 +87.1928 72.3541 578.916 +88.5558 78.1442 625.244 +86.2648 81.2617 650.188 +87.7825 88.6637 709.412 +89.9286 97.8859 783.2 +90.4903 106.774 854.311 +87.9576 113.287 906.423 +87.609 124.187 993.64 +87.0739 137.21 1097.84 +77.8692 138.103 1104.98 +69.0825 140.076 1120.77 +171.468 405.76 3246.55 +49.2899 140.005 1120.2 +40.3857 143.426 1147.57 +29.4909 139.669 1117.52 +20.1593 143.23 1146 +9.82259 139.589 1116.87 +7.32747e-14 143.091 1144.89 +-9.81386 139.465 1115.88 +-20.1401 143.093 1144.91 +-29.3784 139.137 1113.26 +-40.1554 142.607 1141.02 +-48.954 139.052 1112.57 +-60.2806 142.647 1141.34 +-68.5453 138.987 1112.06 +-80.4083 142.606 1141.01 +-88.1488 138.904 1111.39 +-100.412 142.337 1138.86 +-107.817 138.864 1111.08 +-120.344 141.998 1136.15 +-120.539 131.205 1049.79 +-129.84 131.143 1049.3 +-145.615 137.17 1097.52 +-455.973 402.364 3219.37 +-146.08 121.22 969.898 +-113.493 88.8667 711.036 +-119.197 88.3368 706.796 +-125.669 88.3876 707.203 +-148.959 99.6742 797.508 +-625.224 398.901 3191.67 +-653.269 398.209 3186.13 +-681.264 397.487 3180.36 +-141.465 79.1362 633.181 +-144.936 77.8563 622.941 +-149.965 77.4673 619.828 +-177.28 88.1803 705.544 +-144.67 69.3747 555.078 +-143.981 66.64 533.197 +-149.36 66.7923 534.415 +-903.181 390.625 3125.45 +-110.397 46.2203 369.816 +-112.592 45.6722 365.43 +-115.772 45.5367 364.346 +-118.91 45.3862 363.142 +-122.86 45.538 364.356 +-127.655 45.9779 367.876 +-1093.78 383.058 3064.91 +-1120.7 381.86 3055.32 +-1147.38 380.586 3045.13 +-481.682 155.62 1245.14 +-1200.91 378.091 3025.16 +-134.746 41.3607 330.933 +-135.011 40.4228 323.429 +-159.262 46.531 372.302 +-161.095 45.9474 367.632 +-163.386 45.5107 364.138 +-166.748 45.3772 363.07 +-412.222 109.633 877.188 +-141.035 36.6703 293.404 +-141.769 36.0481 288.426 +-143.676 35.7379 285.944 +-146.457 35.6474 285.22 +-413.958 98.619 789.066 +-417.548 97.3899 779.232 +-419.327 95.7789 766.342 +-421.639 94.3345 754.785 +-422.499 92.6117 741 +-424.65 91.2165 729.837 +-426.434 89.7811 718.352 +-427.739 88.2849 706.381 +-426.672 86.3489 690.891 +-439.886 87.3037 698.53 +-435.374 84.7533 678.124 +-437.944 83.6341 669.169 +-440.391 82.5157 660.22 +-442.545 81.3676 651.035 +-445.195 80.3337 642.762 +-447.39 79.2394 634.006 +-449.638 78.1767 625.504 +-452.242 77.1955 617.653 +-454.98 76.2544 610.123 +-456.597 75.1451 601.247 +-458.945 74.1758 593.492 +-462.546 73.4221 587.462 +-478.589 74.6173 597.024 +-467.27 71.5617 572.576 +-469.807 70.6801 565.522 +-473.22 69.941 559.608 +-475.721 69.0772 552.697 +-478.201 68.2228 545.861 +-481.128 67.4426 539.619 +-484.451 66.7258 533.883 +-487.573 65.9886 527.985 +-489.402 65.0865 520.767 +-492.793 64.4016 515.287 +-495.361 63.616 509.001 +-497.856 62.8298 502.711 +-500.278 62.043 496.416 +-503.626 61.3776 491.091 +-2356.92 282.269 2258.48 +-383.288 45.1084 360.919 +-383.229 44.3196 354.608 +-381.025 43.3 346.45 +-381.828 42.637 341.145 +-382.417 41.9592 335.722 +-140.225 15.1172 120.955 +-142.044 15.0454 120.38 +-143.097 14.8911 119.146 +-142.133 14.5306 116.261 +-141.829 14.2435 113.964 +-141.73 13.9813 111.867 +-146.097 14.1558 113.263 +-153.752 14.6313 117.067 +-155.494 14.5315 116.268 +-156.35 14.3479 114.8 +-157.273 14.1708 113.383 +-160.218 14.1729 113.4 +-161.045 13.9848 111.894 +-382.642 32.6143 260.952 +-380.777 31.8522 254.854 +-381.67 31.3295 250.672 +-381.26 30.7058 245.682 +-380.454 30.0588 240.505 +-382.385 29.6328 237.096 +-382.068 29.0364 232.325 +-379.897 28.3088 226.503 +-380.754 27.8147 222.55 +-379.839 27.197 217.607 +-380.694 26.7116 213.723 +-379.935 26.1181 208.975 +-380.088 25.5935 204.778 +-379.314 25.0124 200.128 +-382.568 24.6983 197.615 +-377.43 23.8497 190.825 +-377.483 23.3408 186.753 +-380.819 23.0347 184.304 +-377.1 22.3067 178.479 +-380.468 22.0025 176.045 +-380.091 21.4819 171.88 +-381.04 21.0395 168.34 +-380.305 20.5076 164.084 +-379.616 19.9839 159.894 +-378.791 19.4583 155.689 +-378.384 18.9594 151.697 +-380.169 18.5718 148.596 +-380.621 18.1198 144.979 +-114.368 5.30301 42.4302 +-113.139 5.10693 40.8613 +-110.666 4.8601 38.8864 +-110.058 4.69977 37.6035 +-109.626 4.549 36.3972 +-109.276 4.40336 35.232 +-109.01 4.26256 34.1054 +-108.349 4.10815 32.87 +-108.538 3.98721 31.9023 +-108.334 3.85251 30.8245 +-109.95 3.78152 30.2565 +-110.309 3.66559 29.3289 +-109.304 3.5057 28.0497 +-110.517 3.41728 27.3422 +-110.753 3.29754 26.3841 +-111.273 3.18593 25.4911 +-112.762 3.10028 24.8058 +-113.172 2.98328 23.8697 +-115.337 2.91014 23.2844 +-116.912 2.81834 22.55 +-127.037 2.91996 23.363 +-159.539 3.48873 27.9138 +-158.792 3.29547 26.3676 +-162.178 3.18557 25.4882 +-164.177 3.04293 24.347 +-855.592 14.9126 119.318 +-866.82 14.1527 113.238 +-379.153 5.77351 46.1947 +-379.743 5.36576 42.9323 +-899.147 11.7201 93.7746 +-402.936 4.81167 38.4989 +-403.06 4.37324 34.991 +-403.652 3.93979 31.5229 +-404.412 3.50712 28.061 +-402.747 3.05493 24.4429 +-143.803 0.93464 7.4782 +-404.015 2.18763 17.5035 +-402.655 1.7438 13.9525 +-144.351 0.468779 3.75077 +-145.778 0.315569 2.52492 +-146.294 0.158331 1.26683 +120 6.21725e-15 5.68434e-14 +120.295 0.139585 1.04048 +119.782 0.278001 2.07224 +120.459 0.41941 3.12631 +120.626 0.560093 4.17497 +119.686 0.694815 5.1792 +120.435 0.83923 6.25568 +120.175 0.977316 7.28498 +120.905 1.12414 8.37941 +120.826 1.26438 9.42481 +121.038 1.40801 10.4954 +120.343 1.54076 11.4849 +120.735 1.68728 12.5771 +120.222 1.82128 13.576 +120.991 1.9753 14.724 +120.659 2.11213 15.744 +121.011 2.26131 16.856 +120.759 2.39966 17.8873 +120.399 2.53554 18.9001 +120.623 2.68391 20.0061 +120.442 2.82378 21.0486 +120.055 2.95858 22.0534 +120.838 3.12313 23.28 +120.433 3.25792 24.2847 +121.095 3.42242 25.511 +120.768 3.55992 26.5359 +120.724 3.70589 27.6239 +120.379 3.84272 28.6439 +121.093 4.01443 29.9238 +121.406 4.17476 31.1189 +121.9 4.343 32.373 +120.936 4.45939 33.2406 +121.503 4.63254 34.5312 +121.099 4.76956 35.5526 +120.781 4.90989 36.5986 +121.79 5.10582 38.0591 +121.45 5.24695 39.1111 +121.48 5.40454 40.2858 +121.215 5.54961 41.3672 +121.695 5.73001 42.7119 +121.314 5.87099 43.7627 +120.362 5.98358 44.602 +115.577 5.89907 43.9721 +112.581 5.89649 43.9528 +109.779 5.89739 43.9596 +106.246 5.85155 43.6178 +103.833 5.86031 43.6832 +101.243 5.85332 43.631 +98.6629 5.84078 43.5376 +96.0009 5.81718 43.3616 +97.6093 6.05198 45.1119 +97.0279 6.15355 45.869 +96.8001 6.27756 46.7934 +98.5323 6.53203 48.6902 +97.387 6.59782 49.1806 +96.5955 6.686 49.8379 +97.0359 6.86025 51.1368 +96.4941 6.96624 51.9268 +96.7329 7.1295 53.1438 +96.9576 7.29386 54.3689 +96.5618 7.41273 55.255 +96.761 7.57848 56.4905 +97.0313 7.75209 57.7846 +96.3483 7.85049 58.5181 +96.6775 8.03245 59.8744 +96.737 8.19433 61.0811 +97.0342 8.37867 62.4552 +96.4806 8.49095 63.2921 +96.5829 8.66206 64.5676 +95.8459 8.75872 65.2881 +96.0046 8.93825 66.6263 +96.0656 9.11106 67.9145 +96.1921 9.29253 69.2672 +96.2217 9.46706 70.5681 +96.3154 9.65036 71.9345 +96.2338 9.81842 73.1871 +96.3737 10.0116 74.6268 +96.2608 10.1809 75.8894 +96.2884 10.3676 77.2805 +96.2987 10.555 78.6778 +96.2152 10.7347 80.0173 +96.1153 10.915 81.3613 +96.15 11.1134 82.8398 +96.0161 11.295 84.1936 +96.0143 11.4949 85.6841 +95.9198 11.6868 87.1139 +96.3924 11.9518 89.0893 +96.1121 12.1272 90.3972 +96.0319 12.3306 91.9135 +95.7895 12.5162 93.2963 +95.7423 12.7303 94.8922 +96.1648 13.0116 96.9891 +95.8629 13.1992 98.3875 +95.6125 13.3968 99.8604 +96.0936 13.7016 102.133 +95.6636 13.8812 103.471 +95.418 14.0904 105.031 +95.6161 14.3699 107.114 +95.8502 14.661 109.284 +95.339 14.8425 110.637 +95.3897 15.1155 112.672 +95.2209 15.3589 114.486 +95.5308 15.6859 116.924 +94.9335 15.869 118.288 +94.9966 16.1671 120.51 +94.9059 16.4455 122.586 +94.7859 16.7248 124.668 +94.9337 17.0587 127.157 +94.751 17.3403 129.256 +95.1191 17.731 132.168 +95.099 18.0585 134.609 +94.5332 18.2888 136.326 +94.7273 18.6733 139.192 +94.5468 18.9932 141.577 +94.8217 19.4144 144.717 +94.6722 19.7592 147.287 +94.4316 20.0937 149.78 +94.0497 20.4066 152.112 +94.664 20.948 156.148 +94.1991 21.2633 158.498 +94.3 21.7172 161.882 +94.2991 22.1615 165.193 +94.1985 22.5957 168.43 +94.1434 23.0547 171.851 +94.2699 23.5739 175.722 +94.3814 24.107 179.695 +94.0668 24.5474 182.978 +94.0139 25.072 186.889 +93.9429 25.6104 190.902 +94.0236 26.2105 195.375 +93.8635 26.7644 199.504 +93.9695 27.4167 204.366 +93.6308 27.962 208.431 +93.6662 28.6427 213.504 +93.9318 29.4234 219.324 +93.9871 30.1701 224.89 +93.6891 30.8328 229.83 +93.8976 31.695 236.256 +93.8207 32.4978 242.241 +93.5404 33.2655 247.964 +93.2347 34.06 253.886 +93.1989 34.9942 260.849 +93.1125 35.9558 268.017 +92.7799 36.8695 274.828 +92.8905 38.0127 283.35 +92.437 38.9814 290.57 +92.5941 40.2697 300.173 +92.3902 41.4719 309.135 +92.4212 42.8557 319.449 +92.5981 44.3963 330.933 +92.3466 45.8249 341.582 +92.265 47.4364 353.594 +92.1964 49.1673 366.497 +108.996 60.3655 449.969 +105.03 60.4896 450.894 +101.012 60.5832 451.591 +96.6997 60.49 450.897 +92.6463 60.5478 451.328 +90.9396 62.2063 463.69 +90.9902 65.2771 486.58 +90.3491 68.13 507.845 +88.2345 70.1075 522.586 +87.4312 73.3985 547.118 +87.1189 77.508 577.75 +88.7785 83.9921 626.083 +86.1734 87.0317 648.74 +87.1975 94.4265 703.861 +89.7928 104.789 781.103 +90.7098 114.754 855.383 +87.8906 121.366 904.673 +86.4324 131.358 979.154 +85.9676 145.239 1082.62 +77.8552 148.039 1103.49 +66.7932 145.204 1082.36 +58.1662 147.574 1100.03 +47.5844 144.912 1080.18 +38.7035 147.366 1098.48 +28.4727 144.575 1077.68 +19.339 147.315 1098.09 +9.47178 144.314 1075.72 +6.75016e-14 147.178 1097.07 +-9.46567 144.22 1075.03 +-19.2343 146.517 1092.15 +-28.3575 143.99 1073.31 +-38.3825 146.144 1089.37 +-47.2485 143.889 1072.56 +-57.5748 146.073 1088.84 +-66.1217 143.744 1071.48 +-76.6763 145.797 1086.78 +-85.0889 143.755 1071.56 +-95.9672 145.849 1087.17 +-104.127 143.787 1071.8 +-114.866 145.313 1083.18 +-120.199 140.273 1045.6 +-130.169 140.96 1050.73 +-143.918 145.352 1083.46 +-146.619 138.714 1033.99 +-146.257 130.122 969.942 +-113.493 95.2776 710.206 +-119.313 94.8013 706.655 +-125.947 94.9735 707.939 +-149.196 107.035 797.843 +-625.224 427.678 3187.94 +-653.269 426.936 3182.41 +-681.264 426.162 3176.64 +-141.768 85.0269 633.796 +-144.756 83.3692 621.44 +-150.386 83.2886 620.839 +-177.692 94.7609 706.354 +-145.02 74.5596 555.772 +-144.317 71.6143 533.818 +-149.573 71.7132 534.555 +-903.181 418.805 3121.8 +-110.482 49.593 369.669 +-112.68 49.0051 365.288 +-115.772 48.8218 363.921 +-119.188 48.774 363.565 +-122.829 48.8105 363.837 +-127.948 49.4079 368.29 +-1093.78 410.692 3061.32 +-1120.7 409.407 3051.75 +-1147.52 408.091 3041.94 +-1174.12 406.695 3031.53 +-1200.77 405.317 3021.26 +-420.496 138.383 1031.52 +-420.875 135.102 1007.06 +-136.6 42.7888 318.951 +-137.489 42.0434 313.394 +-163.752 48.9031 364.527 +-166.914 48.6992 363.007 +-171.372 48.8652 364.245 +-141.122 39.3396 293.24 +-141.988 38.7083 288.534 +-143.274 38.2089 284.811 +-146.866 38.3256 285.682 +-414.281 105.816 788.76 +-417.736 104.463 778.671 +-419.566 102.747 765.883 +-422.124 101.256 754.769 +-423.337 99.4895 741.601 +-425.55 98.0041 730.529 +-426.637 96.3037 717.854 +-427.739 94.6538 705.556 +-426.725 92.5894 690.168 +-438.296 93.2636 695.193 +-435.374 90.8674 677.332 +-438.108 89.7009 668.637 +-440.722 88.535 659.946 +-443.049 87.3367 651.014 +-445.195 86.129 642.011 +-447.39 84.9557 633.266 +-450.161 83.9137 625.498 +-453.124 82.9256 618.133 +-454.98 81.7554 609.411 +-457.139 80.6617 601.258 +-459.493 79.6218 593.506 +-460.946 78.4465 584.745 +-478.963 80.0627 596.793 +-467.774 76.8069 572.524 +-470.952 75.9637 566.238 +-473.22 74.9865 558.955 +-475.721 74.0604 552.051 +-478.989 73.2648 546.121 +-481.592 72.3776 539.508 +-484.451 71.5394 533.26 +-487.371 70.7197 527.149 +-490.289 69.9084 521.102 +-492.793 69.0475 514.685 +-496.056 68.301 509.12 +-498.837 67.4951 503.113 +-501.622 66.6975 497.168 +-504.268 65.8893 491.143 +-2356.92 302.632 2255.84 +-383.288 48.3625 360.497 +-382.205 47.3899 353.247 +-382.057 46.5494 346.983 +-380.49 45.5527 339.553 +-383.091 45.0654 335.921 +-140.753 16.2688 121.269 +-141.968 16.1221 120.175 +-142.484 15.8969 118.496 +-141.979 15.5618 115.999 +-140.897 15.1706 113.083 +-141.887 15.0066 111.86 +-145.94 15.1607 113.009 +-154.704 15.7839 117.654 +-156.213 15.6518 116.67 +-156.35 15.383 114.666 +-158.001 15.2634 113.775 +-159.974 15.1722 113.095 +-160.554 14.9479 111.423 +-382.395 34.9445 260.478 +-381.938 34.2541 255.333 +-381.169 33.5454 250.05 +-383.608 33.1237 246.906 +-381.803 32.3416 241.076 +-382.385 31.7705 236.819 +-380.874 31.0337 231.328 +-381.354 30.4673 227.105 +-380.151 29.774 221.938 +-381.311 29.272 218.195 +-380.084 28.5927 213.132 +-381.247 28.0991 209.453 +-379.825 27.4208 204.397 +-381.257 26.9541 200.918 +-379.995 26.302 196.057 +-378.232 25.6246 191.008 +-378.02 25.0602 186.801 +-379.83 24.6323 183.611 +-379.718 24.0819 179.508 +-381.012 23.6235 176.091 +-380.091 23.0316 171.679 +-379.944 22.4924 167.66 +-378.562 21.8864 163.142 +-380.537 21.4774 160.094 +-380.546 20.9587 156.227 +-379.311 20.377 151.891 +-379.331 19.8678 148.096 +-379.781 19.384 144.49 +-114.555 5.69489 42.4501 +-113.421 5.48898 40.9153 +-110.666 5.2107 38.8409 +-110.058 5.03881 37.5596 +-109.626 4.87716 36.3547 +-108.611 4.69225 34.9764 +-108.724 4.55806 33.9761 +-108.349 4.40452 32.8316 +-108.826 4.28618 31.9495 +-109.199 4.16341 31.0344 +-110.047 4.05787 30.2476 +-109.439 3.89906 29.0638 +-109.982 3.78191 28.1907 +-110.42 3.66059 27.2863 +-110.656 3.53233 26.3302 +-111.37 3.41875 25.4836 +-111.786 3.29515 24.5623 +-113.074 3.19573 23.8212 +-115.337 3.12007 23.2572 +-117.501 3.03687 22.637 +-128.905 3.17665 23.679 +-158.357 3.71269 27.6747 +-160.666 3.5749 26.6476 +-160.993 3.39042 25.2724 +-166.155 3.30176 24.6115 +-856.285 16.0013 119.274 +-867.713 15.1894 113.223 +-380.641 6.21431 46.3219 +-379.743 5.75285 42.8821 +-900.639 12.5865 93.8205 +-404.529 5.17916 38.6058 +-404.256 4.70264 35.0538 +-404.25 4.23027 31.5327 +-404.412 3.76012 28.0282 +-404.145 3.28668 24.4991 +-141.506 0.986059 7.35015 +-403.516 2.34254 17.4615 +-3274.5 15.2041 113.333 +-145.65 0.507121 3.78012 +-146.278 0.339495 2.53062 +-144.994 0.168246 1.25411 +119.8 1.77636e-15 -1.13687e-13 +120.295 0.148966 1.03918 +120.382 0.298169 2.08001 +120.459 0.447597 3.1224 +120.327 0.596248 4.15938 +120.385 0.745844 5.20295 +120.235 0.894145 6.23749 +120.076 1.04213 7.26983 +120.705 1.19771 8.35512 +119.73 1.33711 9.32759 +120.838 1.50016 10.465 +120.343 1.6443 11.4705 +120.536 1.7977 12.5406 +121.116 1.95814 13.6599 +120.892 2.10631 14.6935 +120.659 2.25407 15.7243 +120.912 2.4113 16.821 +119.869 2.54206 17.7332 +120.3 2.70371 18.8609 +119.735 2.84321 19.834 +120.344 3.01108 21.0051 +120.055 3.15741 22.0258 +120.642 3.3276 23.2131 +120.531 3.4797 24.2742 +120.997 3.64947 25.4585 +120.768 3.79916 26.5027 +120.627 3.95175 27.5671 +120.379 4.10097 28.6081 +121.093 4.28422 29.8864 +121.406 4.45532 31.08 +121.127 4.60548 32.1275 +120.839 4.75529 33.1726 +120.734 4.91258 34.2698 +121.195 5.09412 35.5362 +120.781 5.23985 36.5528 +121.79 5.44896 38.0115 +121.64 5.60834 39.1234 +121.48 5.76775 40.2354 +121.972 5.95954 41.5733 +121.695 6.11509 42.6584 +121.22 6.26069 43.6741 +119.613 6.34596 44.269 +115.577 6.29552 43.9171 +112.581 6.29276 43.8979 +109.593 6.2831 43.8304 +106.246 6.2448 43.5633 +103.649 6.24305 43.5511 +101.243 6.24669 43.5764 +98.6629 6.23331 43.4831 +96.2739 6.22577 43.4305 +97.4281 6.44671 44.9718 +97.2084 6.57931 45.8968 +96.6204 6.687 46.648 +97.9953 6.93303 48.3643 +97.2979 7.03478 49.0741 +96.6842 7.14189 49.8213 +96.8594 7.30797 50.9799 +96.3184 7.42086 51.7674 +96.7329 7.60864 53.0773 +96.2613 7.72813 53.9109 +97.1681 7.96056 55.5323 +96.761 8.08779 56.4199 +96.9456 8.26576 57.6614 +96.3483 8.37808 58.4449 +96.6775 8.57227 59.7995 +96.737 8.74503 61.0047 +97.0342 8.94176 62.3771 +96.4806 9.06158 63.2129 +96.4171 9.22831 64.376 +96.5876 9.41969 65.7111 +95.9227 9.5308 66.4862 +96.147 9.73161 67.887 +96.1112 9.90869 69.1223 +96.2217 10.1033 70.4798 +96.2356 10.2904 71.7849 +96.1544 10.4696 73.0353 +96.2949 10.6756 74.4725 +95.5565 10.7856 75.2399 +95.589 10.9839 76.6231 +96.2987 11.2644 78.5793 +96.2152 11.4561 79.9172 +96.1153 11.6486 81.2595 +96.0745 11.8509 82.6712 +95.9412 12.0447 84.0227 +95.94 12.258 85.5107 +96.5096 12.5489 87.5399 +95.7342 12.6679 88.3702 +96.1846 12.952 90.3522 +95.9599 13.1495 91.7297 +95.8609 13.3672 93.249 +96.3787 13.6761 95.4035 +96.0947 13.8759 96.7971 +95.8629 14.0862 98.2644 +96.1631 14.3794 100.31 +95.4116 14.5186 101.281 +95.596 14.8037 103.269 +95.3511 15.0269 104.826 +95.6823 15.3463 107.055 +95.6534 15.6142 108.924 +95.274 15.8292 110.423 +95.2611 16.1096 112.379 +95.3481 16.4131 114.497 +94.9015 16.6298 116.008 +94.9335 16.9354 118.14 +94.8734 17.2311 120.203 +94.7842 17.5281 122.275 +94.846 17.8602 124.591 +95.2311 18.262 127.395 +94.8098 18.517 129.174 +95.0611 18.9111 131.922 +95.099 19.2721 134.441 +94.8164 19.5763 136.563 +94.1122 19.7988 138.115 +94.5468 20.2696 141.4 +94.8217 20.7192 144.536 +94.6185 21.0751 147.018 +94.3786 21.4321 149.509 +94.52 21.887 152.682 +94.561 22.3316 155.784 +94.6559 22.8024 159.068 +94.3 23.1767 161.679 +94.2991 23.6508 164.986 +94.1985 24.1143 168.219 +94.0957 24.5916 171.549 +94.2699 25.1582 175.502 +94.3814 25.7271 179.47 +94.0668 26.1971 182.749 +94.0139 26.757 186.655 +93.8991 27.3188 190.574 +93.7223 27.8823 194.505 +93.9058 28.576 199.344 +93.9695 29.2593 204.111 +94.0375 29.9709 209.075 +93.6263 30.5547 213.147 +93.541 31.2703 218.139 +93.9488 32.1845 224.517 +93.9139 32.9838 230.093 +93.8976 33.825 235.961 +93.7849 34.6686 241.846 +93.5404 35.5011 247.653 +93.2347 36.349 253.568 +93.4325 37.4395 261.175 +93.0474 38.3454 267.495 +92.7799 39.3473 274.484 +92.7978 40.5268 282.712 +92.3167 41.5469 289.828 +92.4479 42.9082 299.324 +92.3334 44.2318 308.558 +92.5315 45.7904 319.431 +92.3576 47.2569 329.661 +92.3725 48.9183 341.251 +92.3151 50.6519 353.344 +92.1481 52.4441 365.846 +108.762 64.2843 448.443 +105.165 64.6378 450.909 +101.012 64.6547 451.026 +96.8868 64.6802 451.205 +92.6263 64.603 450.666 +91.2067 66.5818 464.47 +90.808 69.5245 484.998 +90.3665 72.7227 507.308 +88.3995 74.9591 522.91 +87.1966 78.121 544.966 +86.9267 82.5345 575.754 +88.9873 89.8475 626.77 +85.9646 92.6556 646.359 +87.49 101.11 705.339 +89.6796 111.69 779.143 +90.7098 122.466 854.313 +87.881 129.509 903.444 +85.3603 138.448 965.8 +84.2729 151.945 1059.95 +75.4974 153.203 1068.73 +65.1327 151.11 1054.13 +56.392 152.687 1065.13 +46.3412 150.611 1050.65 +37.4751 152.279 1062.29 +27.7214 150.221 1047.93 +18.7125 152.122 1061.19 +9.22831 150.053 1046.76 +6.38378e-14 151.691 1058.18 +-9.21958 149.911 1045.77 +-18.6374 151.512 1056.94 +-27.6167 149.653 1043.97 +-37.2831 151.499 1056.85 +-46.0054 149.52 1043.04 +-55.8582 151.242 1055.05 +-64.455 149.538 1043.17 +-74.5069 151.194 1054.72 +-82.7351 149.172 1040.61 +-93.2392 151.227 1054.95 +-101.251 149.213 1040.9 +-111.981 151.184 1054.65 +-120.097 149.573 1043.41 +-127.609 147.476 1028.78 +-140.159 151.068 1053.84 +-145.603 147.011 1025.54 +-146.405 139.008 969.707 +-113.587 101.765 709.904 +-119.544 101.368 707.138 +-125.878 101.3 706.663 +-149.269 114.284 797.234 +-625.224 456.42 3183.95 +-653.269 455.628 3178.43 +-681.264 454.802 3172.67 +-141.79 90.755 633.1 +-144.734 88.9582 620.566 +-150.689 89.0654 621.314 +-177.692 101.129 705.47 +-145.02 79.5703 555.077 +-144.188 76.3586 532.672 +-149.734 76.6147 534.459 +-903.181 446.951 3117.9 +-110.709 53.0347 369.966 +-112.885 52.3934 365.493 +-116.042 52.2246 364.315 +-119.188 52.0519 363.11 +-123.082 52.1985 364.133 +-128.079 52.7819 368.203 +-1093.78 438.292 3057.5 +-1120.7 436.921 3047.93 +-1147.52 435.517 3038.13 +-386.321 142.808 996.216 +-1200.77 432.557 3017.48 +-421.283 147.96 1032.16 +-420.646 144.103 1005.25 +-159.145 53.2013 371.128 +-149.252 48.7079 339.783 +-1332.59 424.712 2962.76 +-167.868 52.269 364.625 +-171.372 52.1492 363.789 +-141.035 41.9579 292.695 +-141.769 41.2459 287.729 +-143.006 40.7005 283.924 +-146.866 40.9013 285.324 +-415.481 113.255 790.056 +-417.736 111.483 777.697 +-420.043 109.777 765.795 +-421.978 108.024 753.566 +-423.14 106.126 740.329 +-425.35 104.541 729.273 +-426.332 102.702 716.444 +-427.997 101.076 705.098 +-427.561 99.0054 690.655 +-437.66 99.3869 693.316 +-436.18 97.1537 677.737 +-438.217 95.753 667.966 +-441.384 94.6268 660.11 +-443.72 93.3473 651.184 +-445.875 92.0576 642.187 +-447.676 90.7232 632.878 +-450.161 89.5531 624.716 +-452.771 88.4298 616.88 +-455.872 87.4209 609.842 +-457.139 86.0825 600.505 +-460.102 85.0852 593.549 +-460.699 83.6736 583.701 +-478.153 85.2988 595.038 +-467.585 81.9355 571.576 +-470.952 81.0688 565.53 +-473.22 80.026 558.255 +-476.955 79.2427 552.791 +-478.989 78.1885 545.437 +-482.189 77.3374 539.5 +-485.053 76.4421 533.255 +-487.979 75.5665 527.146 +-490.289 74.6065 520.45 +-493.068 73.729 514.328 +-496.056 72.8911 508.483 +-498.557 71.9906 502.201 +-501.268 71.1297 496.196 +-504.268 70.3173 490.529 +-2356.92 322.97 2253.02 +-384.376 51.7591 361.068 +-381.255 50.449 351.928 +-382.352 49.7161 346.816 +-383.165 48.9559 341.513 +-385.038 48.3385 337.206 +-140.829 17.3715 121.182 +-142.424 17.2609 120.411 +-143.174 17.0474 118.921 +-141.902 16.5987 115.791 +-141.596 16.2705 113.502 +-141.965 16.0239 111.781 +-146.412 16.2319 113.232 +-155.101 16.8879 117.809 +-155.494 16.6268 115.987 +-156.35 16.4168 114.522 +-158.001 16.2892 113.632 +-160.218 16.2166 113.126 +-160.39 15.9362 111.17 +-383.136 37.3653 260.657 +-380.445 36.4134 254.017 +-383.504 36.0192 251.267 +-380.505 35.0638 244.603 +-380.623 34.4082 240.029 +-381.876 33.8605 236.208 +-382.068 33.2232 231.763 +-380.154 32.4126 226.108 +-381.099 31.8542 222.212 +-381.224 31.2321 217.873 +-380.084 30.5142 212.865 +-379.323 29.8361 208.134 +-380.528 29.3179 204.519 +-379.932 28.6657 199.97 +-376.536 27.814 194.029 +-379.747 27.4563 191.533 +-379.094 26.8203 187.096 +-378.752 26.2131 182.861 +-378.725 25.633 178.814 +-379.652 25.1212 175.244 +-381.183 24.6501 171.957 +-381.405 24.0964 168.095 +-379.938 23.4421 163.53 +-379.616 22.8654 159.507 +-379.53 22.3075 155.615 +-380.424 21.8101 152.146 +-378.494 21.1562 147.584 +-378.38 20.6105 143.777 +-114.274 6.0627 42.293 +-112.857 5.82875 40.6609 +-110.572 5.55615 38.7593 +-110.153 5.38207 37.5449 +-108.773 5.16441 36.0265 +-109.467 5.04707 35.208 +-108.152 4.83877 33.7549 +-108.349 4.70052 32.7905 +-108.922 4.57826 31.9376 +-109.295 4.44713 31.0229 +-109.468 4.30783 30.0511 +-109.246 4.15374 28.9762 +-110.078 4.03962 28.1801 +-110.42 3.90659 27.2521 +-110.461 3.76309 26.2511 +-111.37 3.64851 25.4517 +-111.981 3.52274 24.5744 +-113.856 3.4341 23.956 +-115.043 3.32127 23.169 +-117.795 3.24909 22.6654 +-129.79 3.41341 23.8117 +-159.539 3.99178 27.8463 +-160.666 3.81515 26.6142 +-163.265 3.66932 25.5969 +-167.045 3.54252 24.7124 +-857.473 17.1003 119.291 +-867.316 16.2027 113.029 +-380.641 6.63194 46.264 +-379.246 6.13144 42.7725 +-900.639 13.4324 93.7031 +-405.126 5.53539 38.6145 +-403.957 5.01497 34.9841 +-403.652 4.50788 31.4466 +-403.515 4.00391 27.931 +-403.746 3.50408 24.4442 +-145.5 1.08203 7.54819 +-403.416 2.49935 17.4353 +-402.655 1.99525 13.9187 +-145.45 0.54046 3.77021 +-145.778 0.361072 2.51881 +-146.294 0.181162 1.26377 +119.8 1.77636e-15 -1.13687e-13 +120.295 0.158335 1.03779 +120.482 0.317184 2.07895 +120.459 0.475747 3.11824 +120.427 0.634273 4.15728 +120.385 0.792751 5.19601 +120.235 0.950378 6.22917 +120.076 1.10767 7.26013 +120.705 1.27303 8.34398 +119.929 1.42357 9.33066 +120.838 1.59451 10.4511 +120.443 1.74915 11.4646 +120.536 1.91076 12.5239 +120.123 2.06422 13.5297 +120.793 2.23694 14.6618 +120.659 2.39584 15.7033 +121.011 2.56506 16.8125 +120.759 2.72199 17.841 +121.189 2.89499 18.9749 +120.524 3.04194 19.9381 +120.442 3.20308 20.9943 +120.055 3.35598 21.9965 +120.74 3.53976 23.201 +120.433 3.69553 24.222 +121.095 3.88213 25.4451 +120.768 4.0381 26.4673 +120.627 4.20028 27.5303 +121.352 4.3941 28.8007 +121.093 4.55366 29.8465 +121.406 4.73552 31.0385 +121.127 4.89512 32.0846 +120.839 5.05436 33.1283 +121.407 5.25063 34.4148 +121.195 5.4145 35.4888 +121.642 5.60909 36.7643 +121.122 5.7599 37.7527 +121.64 5.96105 39.0712 +121.385 6.12571 40.1504 +121.972 6.33434 41.5179 +121.695 6.49968 42.6015 +121.22 6.65444 43.6159 +119.8 6.75562 44.2791 +116.324 6.73467 44.1418 +112.487 6.683 43.8031 +109.593 6.67825 43.772 +106.154 6.63177 43.4673 +103.741 6.64159 43.5317 +101.243 6.63955 43.5183 +98.4802 6.61305 43.3446 +96.3649 6.62358 43.4136 +96.7937 6.80752 44.6193 +97.2084 6.9931 45.8356 +97.4293 7.16706 46.9758 +98.0848 7.37578 48.3439 +97.2088 7.47036 48.9638 +96.6842 7.59105 49.7549 +96.153 7.71094 50.5407 +96.4062 7.89477 51.7455 +96.6455 8.07986 52.9587 +96.2613 8.21417 53.839 +96.4752 8.40089 55.0628 +96.6748 8.58878 56.2944 +96.1742 8.7157 57.1263 +96.3483 8.90498 58.3669 +96.5927 9.10339 59.6673 +96.737 9.29501 60.9233 +96.0278 9.40555 61.6478 +96.3138 9.61482 63.0195 +96.4171 9.80869 64.2902 +96.5876 10.0121 65.6234 +96.6599 10.2081 66.9078 +96.147 10.3436 67.7965 +96.7584 10.6028 69.4949 +96.1413 10.7297 70.327 +96.3154 10.9466 71.7486 +96.2338 11.1373 72.9981 +96.2949 11.347 74.3732 +96.2608 11.5485 75.6934 +96.2107 11.7507 77.0187 +96.2987 11.9728 78.4745 +96.2152 12.1766 79.8106 +96.1153 12.3812 81.1511 +96.0745 12.5962 82.5609 +96.091 12.8222 84.0417 +95.94 13.0289 85.3966 +96.5096 13.3381 87.4232 +96.3924 13.5572 88.8591 +96.1121 13.7562 90.1637 +96.0319 13.9869 91.6761 +95.7895 14.1974 93.0553 +96.3787 14.5362 95.2762 +96.0246 14.7378 96.5975 +95.8629 14.9721 98.1333 +95.6125 15.1963 99.6024 +95.9572 15.5199 101.724 +95.7311 15.7569 103.277 +95.8864 16.0617 105.275 +95.4835 16.2777 106.69 +95.6534 16.5962 108.778 +95.274 16.8247 110.276 +95.3254 17.1342 112.304 +95.2845 17.4336 114.267 +95.2791 17.7459 116.314 +94.9957 18.0123 118.06 +94.935 18.3268 120.121 +94.845 18.6424 122.19 +94.7257 18.9593 124.267 +94.6958 19.3015 126.51 +94.751 19.6695 128.922 +95.0611 20.1004 131.746 +95.0416 20.4718 134.18 +94.8164 20.8075 136.381 +94.7273 21.1815 138.832 +95.1539 21.6827 142.117 +94.9306 22.0474 144.508 +94.6722 22.4133 146.906 +94.3786 22.78 149.309 +94.4677 23.2505 152.394 +94.561 23.736 155.576 +94.1991 24.1194 158.089 +94.3 24.6344 161.464 +94.2991 25.1383 164.766 +94.247 25.644 168.081 +94.0957 26.1382 171.321 +94.2699 26.7405 175.268 +94.3814 27.3451 179.231 +94.0214 27.8311 182.416 +93.9693 28.4262 186.317 +93.8553 29.0233 190.231 +94.0236 29.7311 194.87 +93.8635 30.3595 198.988 +93.8866 31.072 203.658 +93.5901 31.7042 207.802 +93.6263 32.4763 212.863 +93.541 33.2369 217.848 +93.9488 34.2086 224.217 +93.6142 34.9463 229.052 +93.8976 35.9523 235.646 +93.7849 36.849 241.523 +93.5404 37.7339 247.323 +93.2347 38.635 253.23 +93.3324 39.7516 260.548 +93.0799 40.7713 267.232 +92.7799 41.8219 274.118 +92.6742 43.0183 281.959 +92.3468 44.1742 289.536 +92.3895 45.5777 298.735 +92.3334 47.0136 308.146 +92.5039 48.6556 318.909 +92.5446 50.3307 329.888 +92.3208 51.9657 340.605 +92.3652 53.8667 353.064 +92.0997 55.7131 365.166 +107.338 67.4327 441.982 +105.142 68.6883 450.211 +101.186 68.8387 451.197 +96.8868 68.7481 450.603 +92.6662 68.6956 450.259 +90.8632 70.5027 462.104 +90.7715 73.8673 484.156 +90.4881 77.4002 507.313 +88.5315 79.7924 522.992 +87.1496 82.9894 543.947 +86.8232 87.6208 574.302 +89.21 95.7372 627.501 +85.6643 98.1388 643.242 +86.9416 106.796 699.982 +89.0909 117.935 772.996 +90.7725 130.258 853.763 +87.5934 137.203 899.287 +85.2732 147.004 963.527 +82.3821 157.876 1034.79 +74.2837 160.222 1050.16 +63.9911 157.798 1034.27 +55.1307 158.661 1039.93 +45.4427 156.979 1028.9 +36.6061 158.103 1036.27 +27.2005 156.667 1026.86 +18.2814 157.964 1035.36 +9.05291 156.459 1025.49 +5.4956e-14 157.535 1032.55 +-9.04069 156.247 1024.11 +-18.2133 157.376 1031.5 +-27.0931 156.05 1022.81 +-36.4386 157.379 1031.52 +-45.0894 155.759 1020.91 +-54.6126 157.169 1030.15 +-63.0937 155.585 1019.77 +-72.9234 157.287 1030.92 +-81.2444 155.697 1020.5 +-90.9557 156.801 1027.74 +-99.4016 155.7 1020.52 +-109.431 157.032 1029.25 +-118.388 156.718 1027.19 +-127.28 156.347 1024.76 +-137.092 157.054 1029.4 +-145.784 156.451 1025.44 +-146.405 147.75 968.414 +-113.743 108.314 709.933 +-119.643 107.833 706.779 +-126.034 107.805 706.596 +-149.542 121.694 797.629 +-625.224 485.125 3179.71 +-653.269 484.283 3174.19 +-681.264 483.405 3168.44 +-142.028 96.6245 633.316 +-144.913 94.6704 620.509 +-150.712 94.6815 620.581 +-177.861 107.592 705.201 +-145.02 84.5746 554.336 +-144.24 81.19 532.152 +-149.6 81.3604 533.269 +-903.071 475.001 3113.35 +-110.51 56.2689 368.809 +-113.177 55.8329 365.951 +-116.042 55.509 363.829 +-119.157 55.3112 362.532 +-123.336 55.5956 364.396 +-128.176 56.1443 367.993 +-1093.78 465.857 3053.42 +-1120.7 464.4 3043.87 +-1147.52 462.907 3034.08 +-1174.26 461.379 3024.07 +-1200.84 459.788 3013.64 +-1227.4 458.191 3003.17 +-421.067 153.318 1004.91 +-158.793 56.4221 369.814 +-160.855 55.7961 365.71 +-141.544 47.949 314.277 +-135.522 44.8512 293.973 +-171.921 55.6066 364.468 +-141.251 44.6647 292.75 +-141.594 43.7857 286.989 +-143.185 43.3142 283.899 +-147.275 43.5946 285.737 +-152.469 44.1749 289.541 +-418.158 118.614 777.445 +-419.804 116.614 764.338 +-422.124 114.857 752.82 +-423.878 112.997 740.632 +-426 111.286 729.413 +-427.043 109.343 716.682 +-427.997 107.433 704.158 +-427.822 105.296 690.156 +-436.706 105.407 690.881 +-436.18 103.264 676.833 +-438.979 101.952 668.235 +-441.384 100.578 659.23 +-443.552 99.1807 650.071 +-446.385 97.9592 642.064 +-448.193 96.5401 632.763 +-450.742 95.308 624.687 +-452.595 93.9546 615.817 +-455.337 92.8097 608.313 +-457.139 91.4964 599.704 +-460.102 90.4364 592.757 +-460.207 88.841 582.3 +-477.78 90.5926 593.781 +-467.585 87.0885 570.814 +-470.952 86.1673 564.776 +-473.606 85.1283 557.965 +-476.76 84.192 551.828 +-479.579 83.2084 545.382 +-481.725 82.1222 538.262 +-485.254 81.2833 532.764 +-487.979 80.319 526.443 +-490.084 79.2656 519.539 +-493.481 78.4315 514.072 +-496.056 77.4753 507.805 +-499.468 76.658 502.448 +-501.904 75.6991 496.163 +-504.482 74.7714 490.082 +-2356.92 343.283 2250.01 +-2376.69 340.166 2229.59 +-381.986 53.7246 352.133 +-381.394 52.7104 345.485 +-381.382 51.7926 339.47 +-384.589 51.3186 336.363 +-141.282 18.5233 121.409 +-141.664 18.2485 119.608 +-143.25 18.1292 118.826 +-141.747 17.6235 115.511 +-141.674 17.3033 113.413 +-142.122 17.0505 111.756 +-147.122 17.3363 113.629 +-155.656 18.0142 118.073 +-155.734 17.6998 116.012 +-157.234 17.5479 115.016 +-158.729 17.3935 114.004 +-160.951 17.3153 113.492 +-160.963 16.999 111.419 +-381.158 39.5103 258.966 +-383.513 39.0156 255.724 +-381.169 38.0513 249.404 +-381.008 37.3183 244.6 +-383.068 36.8072 241.249 +-382.13 36.014 236.05 +-381.642 35.2732 231.195 +-380.925 34.521 226.265 +-379.892 33.7504 221.214 +-377.587 32.8796 215.506 +-380.345 32.4556 212.727 +-380.809 31.8368 208.671 +-380.44 31.1545 204.199 +-381.08 30.5605 200.306 +-380.616 29.8836 195.869 +-380.371 29.231 191.592 +-381.063 28.6552 187.818 +-378.302 27.8285 182.399 +-379.627 27.3101 179.002 +-381.102 26.803 175.678 +-379.454 26.0815 170.949 +-380.948 25.5811 167.669 +-381.222 25.0006 163.864 +-378.327 24.2208 158.753 +-380.454 23.7682 155.786 +-378.94 23.0914 151.351 +-380.262 22.5917 148.076 +-379.781 21.9877 144.116 +-114.461 6.45455 42.3058 +-112.857 6.19533 40.6067 +-110.666 5.91062 38.7406 +-110.058 5.71563 37.4626 +-108.773 5.4892 35.9785 +-108.516 5.31787 34.8555 +-108.914 5.17938 33.9478 +-108.349 4.99614 32.7468 +-108.059 4.82764 31.6423 +-109.392 4.73097 31.0087 +-109.083 4.56263 29.9053 +-109.922 4.4423 29.1167 +-109.885 4.28613 28.093 +-110.42 4.15228 27.2158 +-110.656 4.0068 26.2622 +-111.37 3.87797 25.4178 +-111.786 3.73776 24.4988 +-113.856 3.65007 23.9241 +-114.945 3.52715 23.1184 +-117.795 3.45343 22.6352 +-129.986 3.63357 23.8159 +-158.849 4.2245 27.6891 +-159.384 4.02273 26.3666 +-162.475 3.88122 25.4391 +-164.968 3.7185 24.3726 +-856.582 18.1569 119.008 +-867.019 17.2158 112.839 +-380.641 7.04904 46.2023 +-379.743 6.52559 42.7714 +-899.943 14.2661 93.5058 +-403.832 5.86472 38.4398 +-403.558 5.32511 34.9029 +-404.15 4.7973 31.4434 +-403.914 4.25993 27.9213 +-403.446 3.7217 24.3935 +-145.001 1.14614 7.51225 +-403.416 2.65654 17.412 +-403.554 2.12547 13.9312 +-146.35 0.578004 3.78847 +-146.678 0.38615 2.53098 +-145.994 0.19216 1.2595 +119.8 1.77636e-15 -1.13687e-13 +120.295 0.167691 1.03632 +119.682 0.333696 2.06223 +120.459 0.503858 3.11382 +120.427 0.671751 4.15139 +119.586 0.834019 5.1542 +120.235 1.00654 6.22034 +120.076 1.17312 7.24984 +120.705 1.34825 8.33215 +120.826 1.51897 9.38714 +120.838 1.68873 10.4363 +120.443 1.8525 11.4484 +120.536 2.02366 12.5061 +120.123 2.18619 13.5106 +120.892 2.37107 14.6531 +120.659 2.5374 15.681 +120.912 2.71439 16.7748 +119.968 2.86395 17.6991 +120.3 3.04356 18.809 +120.623 3.22431 19.9261 +120.344 3.38956 20.9473 +121.039 3.58338 22.1452 +120.74 3.74892 23.1681 +120.531 3.91709 24.2074 +120.312 4.08494 25.2447 +120.768 4.2767 26.4298 +120.53 4.44487 27.4691 +121.352 4.65374 28.7599 +121.093 4.82273 29.8042 +120.631 4.98332 30.7967 +121.127 5.18437 32.0392 +120.839 5.35302 33.0814 +120.638 5.52566 34.1483 +121.099 5.7299 35.4105 +121.546 5.93585 36.6833 +121.79 6.13387 37.907 +121.45 6.30341 38.9548 +121.48 6.49273 40.1248 +121.783 6.69823 41.3948 +121.601 6.8784 42.5082 +121.314 7.0531 43.5878 +119.894 7.1604 44.2509 +115.484 7.0811 43.7609 +112.394 7.07203 43.7048 +109.593 7.07286 43.71 +106.893 7.07254 43.708 +103.741 7.03403 43.47 +101.06 7.01913 43.3779 +98.4802 7.00381 43.2832 +96.1829 7.00171 43.2703 +96.6124 7.19627 44.4726 +97.2084 7.40631 45.7707 +97.4293 7.59055 46.9092 +98.1743 7.81873 48.3194 +97.0306 7.89727 48.8048 +96.6842 8.0396 49.6843 +96.8594 8.22655 50.8397 +96.3184 8.35364 51.6251 +96.6455 8.55728 52.8836 +96.9576 8.76247 54.1516 +96.3886 8.8893 54.9354 +96.6748 9.09628 56.2146 +96.1742 9.2307 57.0453 +96.4336 9.43952 58.3358 +96.5927 9.6413 59.5828 +96.0623 9.77557 60.4126 +96.1955 9.97871 61.668 +96.2304 10.1741 62.8757 +96.4171 10.3883 64.199 +96.5876 10.6037 65.5304 +95.9227 10.7288 66.3034 +96.0656 10.9456 67.6431 +96.1112 11.1542 68.9323 +96.1413 11.3637 70.2273 +96.2356 11.5838 71.5875 +96.2338 11.7953 72.8946 +96.2949 12.0175 74.2678 +96.2608 12.2309 75.5861 +96.2107 12.445 76.9095 +96.2987 12.6802 78.3633 +96.2152 12.8961 79.6975 +96.1153 13.1127 81.0361 +96.0745 13.3405 82.4439 +96.0161 13.5692 83.8572 +95.94 13.7987 85.2756 +95.8461 14.0291 86.699 +96.3924 14.3582 88.7332 +96.1846 14.58 90.1038 +96.0319 14.8134 91.5461 +95.7895 15.0363 92.9234 +95.7423 15.2935 94.513 +96.0246 15.6086 96.4606 +95.8629 15.8568 97.9943 +95.6125 16.0942 99.4613 +96.0254 16.4488 101.653 +95.6636 16.6761 103.058 +95.9533 17.0226 105.199 +95.6161 17.2633 106.686 +95.6534 17.5768 108.624 +95.274 17.8188 110.12 +95.3254 18.1466 112.145 +95.3481 18.4762 114.182 +94.7757 18.6952 115.535 +94.9335 19.0641 117.816 +95.0581 19.4349 120.107 +94.9668 19.7694 122.174 +94.9062 20.1179 124.328 +94.7553 20.4548 126.41 +94.5159 20.78 128.42 +95.1191 21.3011 131.64 +95.1563 21.7076 134.152 +94.9297 22.0633 136.35 +94.7273 22.4331 138.636 +94.5468 22.8175 141.011 +94.9306 23.3502 144.303 +94.2424 23.6299 146.032 +94.4316 24.1396 149.182 +94.52 24.6381 152.262 +94.767 25.1934 155.694 +94.3006 25.5723 158.035 +94.3 26.09 161.235 +93.8067 26.4847 163.674 +94.1985 27.1453 167.757 +94.048 27.6686 170.991 +94.2699 28.3205 175.019 +94.3352 28.9467 178.889 +94.0214 29.4756 182.158 +94.0585 30.1345 186.23 +93.9429 30.767 190.139 +94.0236 31.4879 194.594 +93.5254 32.0376 197.991 +93.9695 32.937 203.549 +93.5901 33.5776 207.508 +93.6263 34.3953 212.561 +93.502 35.1861 217.449 +93.9488 36.23 223.9 +93.6142 37.0113 228.728 +93.8976 38.0767 235.312 +93.7491 39.0115 241.089 +93.5404 39.9635 246.973 +93.2347 40.9179 252.871 +93.0987 41.995 259.527 +93.145 43.2106 267.04 +92.8433 44.3235 273.917 +92.736 45.5905 281.747 +92.3167 46.7692 289.032 +92.6234 48.3931 299.067 +92.3618 49.8069 307.804 +92.5039 51.5306 318.457 +92.4912 53.2738 329.23 +92.3466 55.0517 340.217 +92.3652 57.0496 352.564 +92.0755 58.9896 364.553 +105.144 69.9571 432.332 +105.322 72.8715 450.342 +101.164 72.8908 450.462 +97.0532 72.9352 450.736 +92.8656 72.9112 450.588 +90.9968 74.7784 462.127 +90.7533 78.2164 483.374 +90.4707 81.958 506.497 +88.5315 84.5073 522.251 +86.9619 87.7039 542.006 +86.7493 92.7191 573 +89.2935 101.489 627.198 +85.7035 103.985 642.624 +86.8685 113.011 698.403 +88.8645 124.587 769.939 +89.7272 136.366 842.736 +87.3059 144.833 895.064 +83.748 152.906 944.952 +81.3072 165.025 1019.84 +73.328 167.505 1035.18 +63.0754 164.731 1018.03 +54.2672 165.403 1022.18 +44.9062 164.291 1015.31 +36.0477 164.89 1019.02 +26.8288 163.657 1011.39 +17.983 164.566 1017.01 +8.9447 163.723 1011.8 +5.14033e-14 164.688 1017.76 +-8.91677 163.212 1008.64 +-17.9289 164.071 1013.95 +-26.7476 163.162 1008.33 +-35.8557 164.012 1013.59 +-44.5747 163.079 1007.82 +-53.7804 163.919 1013.01 +-62.4038 162.977 1007.19 +-71.7515 163.903 1012.91 +-80.1695 162.715 1005.57 +-89.57 163.536 1010.64 +-98.1844 162.879 1006.59 +-107.57 163.483 1010.32 +-117.199 164.311 1015.43 +-126.781 164.935 1019.29 +-134.912 163.691 1011.6 +-145.046 164.857 1018.81 +-146.243 156.307 965.967 +-113.712 114.682 708.732 +-119.593 114.157 705.487 +-126.19 114.317 706.471 +-149.397 128.759 795.722 +-625.224 513.79 3175.2 +-653.269 512.899 3169.69 +-681.264 511.969 3163.95 +-142.158 102.428 632.997 +-144.913 100.264 619.629 +-150.899 100.4 620.469 +-178.127 114.12 705.256 +-145.22 89.6958 554.316 +-144.292 86.0184 531.59 +-149.921 86.3527 533.656 +-903.181 503.131 3109.33 +-110.738 59.7163 369.044 +-112.914 58.9944 364.583 +-116.253 58.8957 363.973 +-119.435 58.7162 362.863 +-123.336 58.8807 363.88 +-128.469 59.5977 368.311 +-1093.78 493.384 3049.09 +-1120.7 491.841 3039.55 +-1147.52 490.259 3029.78 +-1174.26 488.641 3019.78 +-386.146 156.587 967.701 +-1227.4 485.264 2998.91 +-420.875 162.304 1003.03 +-159.145 59.8885 370.108 +-160.815 59.0783 365.101 +-154.763 55.5248 343.141 +-134.817 47.2543 292.03 +-137.224 47.0067 290.499 +-139.615 46.7559 288.95 +-141.331 46.2868 286.05 +-143.363 45.9307 283.85 +-147.502 46.2416 285.771 +-150.438 46.1617 285.277 +-417.642 125.468 775.384 +-420.091 123.589 763.776 +-422.172 121.658 751.84 +-423.583 119.591 739.067 +-425.55 117.737 727.61 +-426.84 115.749 715.326 +-428.203 113.836 703.498 +-428.135 111.6 689.682 +-435.965 111.446 688.731 +-436.18 109.365 675.874 +-438.979 107.976 667.288 +-441.715 106.601 658.79 +-444.111 105.174 649.968 +-446.385 103.747 641.154 +-448.193 102.244 631.866 +-450.742 100.94 623.802 +-453.3 99.6614 615.903 +-455.515 98.3324 607.69 +-457.139 96.9027 598.855 +-460.954 95.9576 593.014 +-459.838 94.0149 581.008 +-476.659 95.7205 591.549 +-467.774 92.2718 570.236 +-470.634 91.1971 563.594 +-473.863 90.2073 557.477 +-476.76 89.1667 551.046 +-478.792 87.9804 543.715 +-481.924 87.0105 537.721 +-485.387 86.1099 532.155 +-488.181 85.1004 525.916 +-490.698 84.0544 519.452 +-493.826 83.1239 513.702 +-496.959 82.2026 508.008 +-498.977 81.1079 501.243 +-501.622 80.127 495.181 +-504.268 79.1559 489.18 +-2356.92 363.567 2246.83 +-382.708 58.0122 358.513 +-2396.28 356.941 2205.88 +-383.089 56.0732 346.53 +-382.497 55.0133 339.98 +-384.214 54.298 335.559 +-141.055 19.5863 121.043 +-141.588 19.3164 119.374 +-143.25 19.2004 118.658 +-140.976 18.5631 114.719 +-141.596 18.3156 113.19 +-142.513 18.1076 111.904 +-146.806 18.3214 113.225 +-155.18 19.0204 117.545 +-156.213 18.8033 116.204 +-157.476 18.6134 115.03 +-158.648 18.4119 113.785 +-159.892 18.2179 112.586 +-161.291 18.0401 111.487 +-380.746 41.7997 258.32 +-382.435 41.2048 254.644 +-380.169 40.194 248.397 +-381.595 39.5843 244.629 +-380.623 38.7332 239.369 +-380.858 38.015 234.931 +-380.874 37.2823 230.403 +-380.668 36.536 225.791 +-379.72 35.7284 220.8 +-380.791 35.1179 217.027 +-379.475 34.2948 211.94 +-379.935 33.6405 207.897 +-380.264 32.9802 203.816 +-380.639 32.3288 199.79 +-380.794 31.6643 195.684 +-380.549 30.9726 191.409 +-381.421 30.377 187.728 +-380.549 29.6479 183.223 +-381.072 29.0339 179.428 +-379.924 28.2991 174.887 +-379.454 27.6226 170.707 +-379.761 27.0081 166.909 +-379.663 26.3695 162.962 +-380.445 25.7956 159.415 +-379.345 25.0993 155.112 +-380.053 24.5276 151.579 +-380.448 23.9383 147.938 +-379.781 23.2869 143.912 +-113.618 6.78561 41.9347 +-112.857 6.5614 40.5492 +-110.76 6.2652 38.7187 +-109.302 6.01177 37.1525 +-108.773 5.81355 35.9275 +-108.611 5.63703 34.8366 +-108.342 5.45661 33.7216 +-108.254 5.28669 32.6715 +-108.922 5.15373 31.8498 +-109.295 5.00612 30.9376 +-109.083 4.83223 29.863 +-109.246 4.67585 28.8965 +-109.885 4.53939 28.0532 +-110.323 4.39377 27.1533 +-110.656 4.24356 26.225 +-111.468 4.1107 25.404 +-112.762 3.9932 24.6778 +-113.856 3.86575 23.8902 +-115.043 3.73874 23.1053 +-117.795 3.65749 22.6031 +-130.871 3.87447 23.9441 +-160.721 4.52682 27.9755 +-161.258 4.31052 26.6388 +-164.746 4.16803 25.7583 +-163.88 3.91225 24.1775 +-857.473 19.2498 118.963 +-867.019 18.233 112.679 +-380.145 7.45583 46.0767 +-380.24 6.92022 42.7666 +-899.446 15.1007 93.3216 +-404.031 6.21433 38.4043 +-403.857 5.64393 34.8792 +-404.15 5.08076 31.3989 +-403.914 4.51164 27.8817 +-403.746 3.94453 24.377 +-146.399 1.22556 7.57393 +-403.715 2.8156 17.4003 +-403.554 2.25106 13.9115 +-144.85 0.605884 3.74434 +-145.778 0.406457 2.51189 +-145.594 0.202957 1.25427 +119.8 1.77636e-15 -1.13687e-13 +120.295 0.177033 1.03477 +119.682 0.352286 2.05913 +120.359 0.531486 3.10656 +120.327 0.708586 4.14172 +120.385 0.886368 5.18086 +120.235 1.06261 6.21101 +120.974 1.24774 7.29311 +120.905 1.42572 8.3334 +120.826 1.60359 9.37305 +120.838 1.78281 10.4206 +120.343 1.95411 11.4218 +120.536 2.1364 12.4874 +120.222 2.30989 13.5014 +120.793 2.50111 14.6191 +120.659 2.67876 15.6575 +120.12 2.84684 16.6399 +120.66 3.04094 17.7744 +121.189 3.23686 18.9196 +120.623 3.40394 19.8962 +120.344 3.5784 20.9159 +120.055 3.75229 21.9323 +119.857 3.92882 22.9641 +120.531 4.13531 24.1711 +120.214 4.30901 25.1864 +120.768 4.51496 26.3902 +120.627 4.69629 27.4501 +121.255 4.90906 28.6937 +120.996 5.08732 29.7357 +120.728 5.26518 30.7753 +121.127 5.47319 31.9911 +120.839 5.65124 33.0318 +120.734 5.83815 34.1243 +121.099 6.04911 35.3574 +120.781 6.22709 36.3977 +121.122 6.44009 37.6427 +121.45 6.65458 38.8964 +121.48 6.85445 40.0646 +121.972 7.08237 41.3968 +121.695 7.26723 42.4773 +121.22 7.44027 43.4887 +119.894 7.55931 44.1845 +116.324 7.52998 44.0131 +112.301 7.45985 43.6032 +109.593 7.46689 43.6444 +106.893 7.46656 43.6424 +102.912 7.36659 43.0581 +101.06 7.41017 43.3128 +98.4802 7.39399 43.2183 +96.8199 7.44074 43.4915 +97.4281 7.66133 44.7809 +97.2084 7.81892 45.702 +96.5305 7.93951 46.4068 +98.0848 8.2468 48.2029 +97.1197 8.34489 48.7763 +96.6842 8.48749 49.6098 +96.8594 8.68486 50.7634 +96.4062 8.82707 51.5947 +96.7329 9.04218 52.852 +97.0447 9.25892 54.1189 +96.4752 9.39296 54.9023 +96.6748 9.60304 56.1303 +97.0313 9.83179 57.4673 +96.4336 9.9654 58.2483 +96.5927 10.1784 59.4934 +96.737 10.3927 60.7457 +96.0278 10.5163 61.4681 +96.3138 10.7502 62.8357 +96.4171 10.967 64.1027 +96.5052 11.1849 65.3763 +96.0046 11.3362 66.2605 +96.0656 11.5553 67.5416 +96.0303 11.7657 68.7709 +96.1413 11.9968 70.122 +96.1557 12.219 71.4208 +95.5991 12.3703 72.3052 +96.2949 12.687 74.1563 +96.2608 12.9122 75.4727 +96.2107 13.1383 76.7941 +96.2987 13.3867 78.2457 +96.2152 13.6146 79.5779 +96.1153 13.8433 80.9146 +96.0745 14.0838 82.3202 +96.0161 14.3252 83.7313 +95.94 14.5675 85.1476 +95.8461 14.8106 86.5689 +95.7342 15.0546 87.9951 +96.1846 15.3923 89.9686 +95.9599 15.6269 91.3403 +95.7895 15.8739 92.784 +95.7423 16.1455 94.3711 +95.4638 16.382 95.7535 +95.8629 16.7402 97.8472 +95.6125 16.9908 99.312 +95.3434 17.2417 100.779 +95.6636 17.6051 102.903 +95.8864 17.9584 104.968 +95.6161 18.225 106.526 +95.719 18.5687 108.535 +95.274 18.8115 109.954 +95.3254 19.1576 111.977 +95.2845 19.4923 113.934 +95.405 19.8677 116.128 +95.4937 20.2449 118.333 +95.0581 20.5176 119.927 +94.9059 20.8574 121.913 +94.7859 21.2117 123.984 +94.5173 21.5402 125.904 +95.28 22.1151 129.264 +95.0611 22.4741 131.362 +94.6401 22.7927 133.224 +94.3066 23.1396 135.252 +94.7273 23.6829 138.428 +94.5468 24.0886 140.799 +94.8761 24.6369 144.004 +94.7797 25.0885 146.643 +94.4316 25.4844 148.958 +94.52 26.0107 152.034 +94.6125 26.5536 155.207 +94.1991 26.9677 157.628 +94.3 27.5435 160.993 +93.8067 27.9601 163.428 +94.6348 28.7903 168.281 +93.6663 29.0915 170.041 +94.2699 29.8983 174.757 +94.3814 30.5743 178.708 +94.0214 31.1177 181.884 +94.0139 31.7983 185.863 +93.8991 32.4659 189.765 +94.0236 33.2421 194.302 +93.8635 33.9447 198.408 +93.9695 34.772 203.244 +93.6308 35.4636 207.286 +93.6662 36.3268 212.332 +93.9318 37.317 218.12 +93.6044 38.1083 222.745 +93.6142 39.0732 228.385 +93.8976 40.198 234.959 +93.7849 41.2005 240.819 +93.5404 42.1899 246.602 +93.2347 43.1975 252.491 +93.0987 44.3346 259.138 +93.145 45.6179 266.639 +92.6847 46.7127 273.038 +92.4888 48.0021 280.574 +92.3768 49.4069 288.786 +92.331 50.9279 297.676 +92.3902 52.5979 307.437 +92.2283 54.2393 317.032 +92.5446 56.2743 328.926 +92.3208 58.1024 339.612 +92.3902 60.2441 352.13 +92.0513 62.2596 363.911 +103.813 72.9199 426.22 +105.322 76.9312 449.667 +101.164 76.9516 449.786 +96.8868 76.8666 449.289 +92.8656 76.9732 449.912 +91.035 78.9774 461.627 +90.7715 82.5904 482.745 +90.4881 86.5405 505.834 +88.5811 89.265 521.758 +87.0088 92.6398 541.485 +86.6754 97.8012 571.653 +89.2795 107.126 626.159 +85.6643 109.728 641.366 +86.71 119.089 696.083 +89.1815 131.996 771.526 +89.445 143.51 838.824 +87.2101 152.734 892.74 +83.5301 161.005 941.08 +80.8364 173.208 1012.41 +72.3514 174.481 1019.85 +62.4588 172.208 1006.57 +53.7386 172.916 1010.7 +44.5354 172.013 1005.42 +35.6743 172.274 1006.95 +26.6665 171.729 1003.77 +17.8259 172.217 1006.61 +8.87227 171.444 1002.1 +5.67324e-14 172.244 1006.77 +-8.86703 171.343 1001.51 +-17.7962 171.93 1004.94 +-26.5853 171.206 1000.71 +-35.5661 171.751 1003.89 +-44.2519 170.916 999.015 +-53.2989 171.502 1002.44 +-62.0619 171.114 1000.17 +-71.0958 171.454 1002.16 +-79.6124 170.586 997.083 +-88.8727 171.303 1001.27 +-97.3793 170.544 996.836 +-106.567 170.982 999.399 +-116.475 172.394 1007.65 +-125.769 172.734 1009.64 +-133.646 171.188 1000.6 +-144.42 173.289 1012.88 +-146.08 164.831 963.446 +-113.806 121.171 708.252 +-119.593 120.517 704.428 +-126.138 120.635 705.119 +-149.506 136.031 795.109 +-625.224 542.414 3170.44 +-653.269 541.473 3164.94 +-681.264 540.491 3159.2 +-142.028 108.035 631.47 +-144.891 105.834 618.604 +-151.133 106.158 620.497 +-178.272 120.576 704.771 +-145.045 94.5785 552.816 +-144.343 90.843 530.982 +-149.76 91.066 532.285 +-903.071 531.095 3104.28 +-110.709 63.0269 368.395 +-113.148 62.41 364.79 +-116.253 62.1768 363.427 +-119.404 61.9712 362.225 +-123.336 62.161 363.334 +-128.372 62.8701 367.479 +-1093.78 520.871 3044.51 +-1120.7 519.242 3034.99 +-1147.52 517.572 3025.23 +-1174.26 515.864 3015.25 +-433.351 185.52 1084.37 +-1227.4 512.299 2994.41 +-420.416 171.159 1000.43 +-158.637 63.023 368.373 +-161.214 62.5242 365.457 +-163.63 61.9765 362.256 +-135.314 50.071 292.668 +-136.717 49.4422 288.992 +-140.045 49.513 289.406 +-141.243 48.8351 285.444 +-143.586 48.5651 283.866 +-147.275 48.7427 284.904 +-150.853 48.868 285.636 +-418.111 132.606 775.091 +-420.472 130.593 763.323 +-422.172 128.435 750.712 +-423.583 126.253 737.958 +-425.75 124.355 726.86 +-426.84 122.198 714.252 +-428.203 120.177 702.443 +-428.606 117.947 689.404 +-435.647 117.569 687.195 +-436.019 115.416 674.61 +-439.142 114.034 666.536 +-440.998 112.357 656.733 +-443.72 110.935 648.42 +-446.215 109.486 639.949 +-448.709 108.065 631.646 +-450.742 106.563 622.866 +-453.3 105.214 614.979 +-455.515 103.811 606.778 +-457.801 102.449 598.821 +-461.502 101.424 592.828 +-460.207 99.3323 580.602 +-476.099 100.934 589.967 +-468.34 97.5302 570.069 +-470.952 96.3429 563.129 +-473.606 95.1812 556.339 +-476.955 94.1727 550.444 +-479.382 92.9963 543.568 +-481.924 91.8579 536.914 +-485.387 90.9071 531.357 +-488.181 89.8413 525.127 +-490.902 88.7741 518.889 +-493.481 87.6936 512.574 +-496.681 86.7336 506.962 +-499.188 85.6626 500.702 +-501.904 84.6385 494.716 +-504.268 83.5658 488.446 +-2356.92 383.821 2243.45 +-2376.69 380.337 2223.09 +-385.57 60.6326 354.401 +-382.057 59.0375 345.077 +-382.943 58.1458 339.865 +-383.241 57.1778 334.207 +-142.036 20.8213 121.702 +-141.588 20.3925 119.195 +-143.25 20.2701 118.48 +-141.67 19.6938 115.111 +-141.596 19.336 113.02 +-142.2 19.0744 111.491 +-147.516 19.4355 113.601 +-155.18 20.08 117.369 +-155.494 19.7594 115.495 +-156.832 19.5701 114.388 +-158.244 19.3881 113.324 +-160.381 19.2915 112.76 +-161.291 19.0451 111.32 +-382.724 44.3575 259.272 +-383.43 43.6135 254.923 +-380.169 42.4332 248.024 +-381.511 41.7803 244.208 +-382.394 41.0814 240.123 +-381.367 40.1865 234.892 +-381.045 39.3771 230.161 +-380.154 38.5194 225.148 +-379.72 37.7189 220.469 +-380.705 37.0659 216.652 +-380.345 36.2883 212.107 +-380.285 35.5474 207.776 +-379.385 34.7369 203.039 +-380.021 34.0745 199.167 +-381.592 33.4983 195.799 +-378.232 32.4991 189.959 +-379.452 31.9037 186.479 +-379.74 31.2332 182.56 +-381.162 30.6586 179.201 +-379.38 29.8328 174.374 +-380.364 29.2315 170.86 +-379.944 28.5266 166.739 +-380.305 27.8856 162.993 +-379.616 27.1735 158.83 +-380.731 26.5944 155.445 +-379.775 25.8751 151.242 +-379.889 25.2348 147.499 +-380.621 24.6387 144.015 +-114.274 7.20497 42.1134 +-112.857 6.92694 40.4883 +-110.76 6.61424 38.6606 +-109.396 6.35217 37.1287 +-108.773 6.13743 35.8736 +-108.611 5.95107 34.7843 +-108.342 5.7606 33.671 +-108.349 5.58614 32.6513 +-108.826 5.43606 31.774 +-109.295 5.28501 30.8912 +-109.083 5.10144 29.8182 +-110.019 4.97127 29.0573 +-109.885 4.79228 28.0111 +-110.42 4.64263 27.1364 +-110.753 4.4839 26.2086 +-111.37 4.33592 25.3437 +-111.786 4.17916 24.4274 +-113.856 4.08111 23.8543 +-115.043 3.94703 23.0706 +-117.501 3.85158 22.5127 +-130.871 4.09032 23.9081 +-159.834 4.75265 27.7795 +-161.258 4.55066 26.5988 +-163.265 4.36066 25.4883 +-165.66 4.17508 24.4035 +-858.364 20.3433 118.907 +-867.019 19.2488 112.51 +-380.046 7.86914 45.9955 +-379.743 7.2962 42.6467 +-900.341 15.9578 93.2744 +-403.633 6.55407 38.3089 +-403.359 5.95102 34.784 +-403.652 5.35721 31.3131 +-402.517 4.74651 27.7436 +-404.145 4.16842 24.3646 +-143.803 1.2709 7.42845 +-403.715 2.97246 17.3742 +-403.654 2.37706 13.894 +-145.85 0.644053 3.76452 +-145.778 0.429101 2.50812 +-145.994 0.214852 1.25582 +119.8 1.77636e-15 -1.13687e-13 +119.495 0.185121 1.02626 +119.682 0.370847 2.05587 +120.459 0.559953 3.10422 +120.427 0.746538 4.1386 +119.686 0.927645 5.1426 +120.235 1.11859 6.20117 +120.076 1.30373 7.2275 +120.705 1.49836 8.30647 +120.627 1.68529 9.34277 +119.842 1.86125 10.3183 +120.343 2.05706 11.4038 +120.536 2.24896 12.4676 +120.123 2.42958 13.4689 +120.892 2.63504 14.6079 +120.659 2.81989 15.6327 +120.219 2.9993 16.6273 +120.759 3.20378 17.7609 +120.202 3.37963 18.7357 +120.623 3.58328 19.8647 +120.442 3.77001 20.8999 +120.154 3.95321 21.9155 +120.74 4.16629 23.0967 +120.433 4.34963 24.1131 +120.312 4.53972 25.1669 +120.768 4.75283 26.3484 +120.53 4.93972 27.3844 +120.379 5.1304 28.4415 +120.996 5.35535 29.6886 +120.631 5.53812 30.7018 +121.127 5.76155 31.9404 +120.743 5.94423 32.9532 +120.734 6.14574 34.0702 +121.099 6.36781 35.3014 +120.781 6.55517 36.34 +121.122 6.77939 37.583 +121.64 7.01615 38.8956 +120.722 7.17052 39.7514 +121.877 7.44972 41.2992 +121.695 7.65011 42.41 +121.22 7.83226 43.4198 +120.081 7.97001 44.1835 +115.577 7.87582 43.6613 +113.139 7.91141 43.8587 +109.593 7.86029 43.5752 +106.985 7.86671 43.6109 +103.741 7.81713 43.336 +101.243 7.81474 43.3227 +98.4802 7.78355 43.1498 +96.4559 7.80331 43.2593 +97.3375 8.05746 44.6683 +97.8402 8.28436 45.9262 +96.6204 8.36558 46.3764 +98.1743 8.6892 48.1705 +97.5652 8.82484 48.9224 +96.6842 8.93465 49.5312 +96.2413 9.08409 50.3596 +96.4062 9.29212 51.5129 +96.7329 9.51857 52.7683 +96.9576 9.738 53.9847 +96.4752 9.88783 54.8153 +96.6748 10.109 56.0413 +96.9456 10.3406 57.3256 +96.4336 10.4904 58.156 +96.5927 10.7147 59.3992 +96.5683 10.9211 60.5437 +96.1955 11.0896 61.4779 +96.2304 11.3068 62.6819 +96.4171 11.5448 64.0012 +96.5052 11.7742 65.2728 +95.9227 11.9232 66.099 +96.0656 12.1641 67.4346 +96.1112 12.396 68.7198 +96.2217 12.6394 70.0694 +96.2356 12.8735 71.3669 +96.2338 13.1085 72.67 +96.2161 13.3445 73.9784 +96.2608 13.5925 75.3532 +96.2107 13.8305 76.6725 +96.2987 14.0919 78.1218 +96.2152 14.3319 79.4518 +96.1153 14.5726 80.7864 +96.0745 14.8258 82.1898 +96.0161 15.0799 83.5987 +95.94 15.335 85.0128 +95.8461 15.5909 86.4318 +95.8073 15.8599 87.9228 +96.1846 16.2032 89.8261 +96.0319 16.4626 91.264 +95.8609 16.7227 92.706 +95.7423 16.9961 94.2217 +96.0947 17.359 96.2335 +95.2377 17.5072 97.0551 +95.6125 17.886 99.1547 +96.0254 18.2801 101.339 +95.6636 18.5327 102.74 +95.8864 18.9046 104.802 +95.4835 19.1588 106.211 +95.719 19.547 108.363 +95.2091 19.7891 109.705 +95.1968 20.1397 111.649 +95.2845 20.5193 113.753 +95.405 20.9144 115.944 +95.058 21.2143 117.606 +95.0581 21.5986 119.737 +94.845 21.9421 121.641 +94.7859 22.3293 123.787 +94.5768 22.6893 125.783 +94.751 23.151 128.343 +94.9449 23.6292 130.994 +95.1563 24.1243 133.739 +94.7031 24.4611 135.605 +94.7832 24.9454 138.29 +94.602 25.3725 140.658 +94.9306 25.9498 143.858 +94.7797 26.4103 146.411 +94.4316 26.8271 148.722 +94.4677 27.3658 151.709 +94.664 27.9676 155.045 +94.1991 28.3885 157.378 +94.3 28.9946 160.738 +94.2991 29.5877 164.026 +94.1985 30.1675 167.24 +94.0957 30.7646 170.55 +94.2699 31.4735 174.48 +94.3814 32.1851 178.425 +94.0214 32.7571 181.596 +94.0139 33.4736 185.568 +93.9429 34.1923 189.553 +94.0667 35.0095 194.083 +93.9058 35.7492 198.184 +93.9695 36.6039 202.922 +93.6308 37.332 206.958 +93.6263 38.2245 211.906 +93.502 39.1034 216.778 +93.9105 40.2472 223.119 +93.8764 41.247 228.662 +93.8976 42.3158 234.587 +93.7491 43.3547 240.346 +93.5404 44.4127 246.211 +93.2347 45.4733 252.091 +92.9986 46.6201 258.449 +93.145 48.0213 266.217 +92.7482 49.2075 272.792 +92.427 50.4973 279.943 +92.437 52.0439 288.517 +92.331 53.611 297.204 +92.3618 55.3519 306.856 +92.4488 57.2335 317.286 +92.4912 59.2048 328.215 +92.2949 61.1463 338.978 +92.3652 63.401 351.477 +92.0271 65.5224 363.238 +100.615 74.3967 412.435 +105.3 80.9671 448.859 +101.207 81.0404 449.265 +97.0948 81.0899 449.54 +92.8656 81.0285 449.199 +91.0159 83.1209 460.799 +90.7715 86.9417 481.98 +90.3144 90.9252 504.064 +88.6141 94.003 521.127 +86.9306 97.4329 540.141 +86.7493 103.042 571.234 +89.2656 112.753 625.07 +85.586 115.404 639.765 +86.7466 125.416 695.273 +89.0117 138.686 768.838 +89.2673 150.771 835.832 +86.5775 159.615 884.86 +83.9223 170.283 944.001 +79.4006 179.096 992.856 +71.1935 180.734 1001.94 +61.5308 178.588 990.042 +53.1576 180.06 998.2 +43.8724 178.379 988.88 +35.3462 179.681 996.104 +26.279 178.151 987.621 +17.6269 179.268 993.811 +8.74224 177.832 985.849 +5.07372e-14 179.366 994.352 +-8.7117 177.211 982.407 +-17.6217 179.215 993.516 +-26.1612 177.352 983.19 +-35.2241 179.062 992.669 +-43.5409 177.031 981.411 +-52.7232 178.588 990.042 +-60.9264 176.834 980.318 +-70.4192 178.769 991.046 +-78.3649 176.76 979.906 +-87.914 178.382 988.9 +-95.7882 176.596 978.999 +-105.678 178.489 989.491 +-114.709 178.725 990.799 +-124.355 179.79 996.704 +-130.8 176.37 977.747 +-143.251 180.942 1003.09 +-145.592 172.936 958.708 +-113.963 127.731 708.103 +-119.643 126.919 703.603 +-126.364 127.218 705.263 +-149.725 143.408 795.011 +-625.224 570.991 3165.41 +-653.269 570 3159.92 +-681.264 568.967 3154.19 +-142.222 113.883 631.335 +-144.891 111.41 617.624 +-151.226 111.82 619.896 +-178.175 126.859 703.273 +-145.27 99.716 552.797 +-144.343 95.6291 530.141 +-149.76 95.8638 531.442 +-108.325 67.0625 371.776 +-110.738 66.3645 367.906 +-113.177 65.7152 364.306 +-116.253 65.4526 362.851 +-119.404 65.2362 361.651 +-123.336 65.4359 362.758 +-128.306 66.1488 366.711 +-1093.78 548.313 3039.69 +-1120.7 546.598 3030.19 +-1147.52 544.84 3020.44 +-1174.26 543.042 3010.47 +-427.084 192.47 1067 +-1227.4 539.289 2989.67 +-420.875 180.374 999.942 +-159.067 66.5232 368.786 +-161.533 65.9486 365.601 +-163.915 65.3553 362.312 +-142.281 55.4229 307.249 +-135.999 51.7735 287.018 +-140.088 52.1376 289.036 +-141.199 51.3922 284.904 +-143.542 51.1078 283.327 +-147.638 51.4371 285.153 +-416.22 141.936 786.853 +-418.346 139.671 774.299 +-420.234 137.395 761.681 +-422.415 135.28 749.953 +-424.026 133.044 737.56 +-425.75 130.906 725.709 +-427.5 128.835 714.223 +-428.666 126.646 702.089 +-428.971 124.267 688.9 +-435.647 123.763 686.107 +-436.663 121.676 674.538 +-438.979 119.997 665.232 +-441.715 118.469 656.76 +-443.887 116.824 647.638 +-446.668 115.371 639.584 +-447.906 113.555 629.516 +-450.742 112.177 621.879 +-453.3 110.757 614.005 +-455.337 109.237 605.579 +-457.801 107.847 597.873 +-462.111 106.908 592.67 +-460.022 104.524 579.45 +-475.726 106.169 588.57 +-468.403 102.682 569.243 +-471.207 101.473 562.54 +-473.863 100.25 555.759 +-476.76 99.0938 549.348 +-479.382 97.8959 542.707 +-482.321 96.7773 536.506 +-485.187 95.657 530.296 +-487.979 94.5352 524.077 +-491.175 93.5031 518.355 +-492.793 92.1851 511.048 +-496.056 91.1883 505.522 +-499.818 90.2897 500.541 +-501.622 89.0476 493.655 +-504.625 88.0306 488.017 +-2356.92 404.043 2239.9 +-2376.69 400.375 2219.57 +-384.546 63.6575 352.9 +-380.583 61.9081 343.201 +-384.206 61.4112 340.447 +-384.364 60.3667 334.656 +-141.357 21.8136 120.928 +-141.512 21.4553 118.942 +-143.25 21.338 118.292 +-141.825 20.754 115.054 +-141.518 20.3435 112.779 +-142.513 20.1236 111.56 +-146.806 20.3611 112.876 +-155.418 21.1702 117.362 +-156.213 20.8967 115.845 +-156.832 20.6011 114.207 +-158.891 20.493 113.607 +-160.381 20.3079 112.581 +-159.898 19.8754 110.184 +-380.746 46.4533 257.524 +-383.927 45.9708 254.849 +-381.92 44.8746 248.772 +-381.26 43.9525 243.661 +-380.791 43.0646 238.738 +-381.537 42.3226 234.624 +-381.386 41.4887 230.002 +-380.154 40.5488 224.791 +-380.151 39.7512 220.369 +-379.406 38.8856 215.571 +-380.084 38.1739 211.626 +-380.285 37.4202 207.447 +-380.704 36.6941 203.422 +-380.462 35.9113 199.082 +-380.971 35.2058 195.171 +-379.48 34.3242 190.284 +-379.094 33.5527 186.007 +-380.28 32.9254 182.529 +-378.725 32.0674 177.773 +-379.652 31.4271 174.223 +-379.909 30.7346 170.384 +-380.218 30.0512 166.595 +-379.663 29.3052 162.46 +-379.984 28.6328 158.732 +-378.791 27.8528 154.408 +-380.145 27.265 151.15 +-380.541 26.61 147.518 +-379.781 25.8795 143.469 +-113.993 7.56591 41.9433 +-112.857 7.29189 40.4242 +-110.855 6.96864 38.6322 +-110.153 6.73308 37.3263 +-108.868 6.46642 35.848 +-108.611 6.2646 34.7292 +-107.77 6.03207 33.4401 +-108.445 5.88565 32.6284 +-108.73 5.71742 31.6958 +-109.199 5.55856 30.8151 +-109.083 5.37021 29.7709 +-109.922 5.22858 28.9858 +-109.691 5.03589 27.9175 +-110.323 4.88293 27.0696 +-110.753 4.72013 26.1671 +-111.468 4.56835 25.3257 +-111.688 4.3955 24.3674 +-113.856 4.29613 23.8165 +-115.043 4.15498 23.0341 +-117.795 4.06468 22.5334 +-129.986 4.27671 23.7089 +-160.031 5.0092 27.7696 +-160.173 4.75817 26.378 +-162.08 4.55708 25.2632 +-3240.51 85.9722 476.606 +-857.473 21.3929 118.596 +-867.019 20.2629 112.332 +-380.046 8.28373 45.9227 +-380.24 7.69065 42.6348 +-3258.55 60.7982 337.048 +-404.33 6.91127 38.3141 +-404.754 6.28621 34.849 +-402.655 5.62552 31.1863 +-403.515 5.00897 27.7683 +-403.147 4.37718 24.2659 +-144.602 1.34529 7.45789 +-403.815 3.12984 17.351 +-404.154 2.5054 13.8892 +-145.65 0.677055 3.7534 +-145.378 0.450469 2.49728 +-144.994 0.224624 1.24525 +119.7 3.55271e-15 -1.13687e-13 +119.495 0.194372 1.02455 +119.682 0.389379 2.05244 +120.359 0.587446 3.09647 +120.427 0.783844 4.13169 +119.586 0.973188 5.12974 +120.235 1.17449 6.19083 +120.974 1.37912 7.26942 +120.007 1.56413 8.24464 +120.627 1.76951 9.32718 +119.942 1.95591 10.3097 +120.343 2.15985 11.3847 +120.536 2.36134 12.4468 +120.222 2.5531 13.4576 +120.793 2.76445 14.5716 +120.659 2.96081 15.6066 +120.219 3.14918 16.5995 +120.759 3.36388 17.7312 +120.399 3.55435 18.7352 +120.721 3.76542 19.8478 +120.442 3.95841 20.865 +120.055 4.14737 21.8611 +120.74 4.37449 23.0582 +120.335 4.56328 24.0534 +121.095 4.79759 25.2884 +120.084 4.9621 26.1556 +120.627 5.19076 27.3609 +120.379 5.38677 28.394 +120.899 5.61846 29.6153 +120.728 5.81955 30.6753 +120.548 6.02052 31.7346 +121.514 6.28113 33.1083 +120.734 6.45285 34.0134 +121.099 6.68602 35.2425 +121.546 6.92634 36.5092 +120.931 7.10697 37.4613 +121.64 7.36676 38.8307 +121.575 7.58208 39.9656 +121.877 7.822 41.2303 +121.695 8.0324 42.3393 +121.126 8.21728 43.3138 +120.175 8.37481 44.1442 +116.324 8.32281 43.8701 +113.232 8.3136 43.8216 +109.686 8.26007 43.5394 +106.985 8.25983 43.5381 +103.741 8.20777 43.2637 +101.152 8.19782 43.2112 +98.4802 8.17251 43.0778 +96.1829 8.17006 43.065 +96.6124 8.39709 44.2616 +97.0279 8.62612 45.4689 +96.6204 8.78362 46.2991 +98.3533 9.14004 48.1778 +96.6742 9.18121 48.3948 +96.5955 9.37252 49.4032 +96.8594 9.59929 50.5985 +96.4062 9.75647 51.427 +96.6455 9.98521 52.6327 +97.0447 10.2338 53.943 +96.4752 10.3819 54.7239 +96.5886 10.6047 55.8981 +96.0885 10.7614 56.724 +96.3483 11.0049 58.0076 +96.5927 11.2501 59.3001 +96.0623 11.4068 60.1259 +97.0342 11.7453 61.9104 +96.3138 11.8821 62.6316 +96.4171 12.1217 63.8944 +95.8459 12.2781 64.7186 +96.6599 12.6153 66.4959 +96.0656 12.772 67.3221 +96.1112 13.0154 68.6052 +96.2217 13.271 69.9526 +96.2356 13.5168 71.2479 +96.2338 13.7636 72.5488 +96.2161 14.0114 73.855 +95.6347 14.179 74.7382 +96.2884 14.5334 76.6064 +96.2987 14.7961 77.9915 +95.6023 14.9522 78.8141 +96.1153 15.3008 80.6516 +96.0745 15.5666 82.0527 +96.0161 15.8335 83.4593 +95.94 16.1013 84.871 +96.5096 16.4834 86.885 +96.3924 16.7541 88.3122 +96.1121 17.0001 89.6087 +95.9599 17.2723 91.0435 +95.8609 17.5584 92.5514 +95.6715 17.8322 93.9949 +95.4638 18.1068 95.4423 +95.8629 18.5028 97.5293 +95.6125 18.7798 98.9893 +95.9572 19.1797 101.098 +95.6636 19.4588 102.569 +95.2842 19.7246 103.97 +95.6161 20.1439 106.18 +95.719 20.5238 108.182 +95.339 20.8064 109.672 +95.2611 21.1605 111.539 +95.3481 21.5592 113.64 +95.342 21.9452 115.675 +94.9335 22.2453 117.257 +94.9966 22.6632 119.459 +94.9668 23.0682 121.594 +94.7859 23.4451 123.581 +95.1122 23.958 126.284 +95.2212 24.4285 128.764 +95.1191 24.8555 131.015 +94.8122 25.2384 133.033 +94.7598 25.6987 135.46 +94.6154 26.1455 137.815 +94.602 26.6404 140.423 +94.9306 27.2465 143.618 +94.7259 27.7144 146.084 +94.4316 28.1677 148.474 +94.4677 28.7334 151.456 +94.149 29.2055 153.944 +94.3006 29.8394 157.286 +94.2 30.4113 160.3 +94.2991 31.0662 163.752 +94.247 31.6912 167.046 +94.0957 32.302 170.266 +94.2699 33.0463 174.189 +94.3814 33.7935 178.128 +94.0668 34.4108 181.382 +94.0139 35.1463 185.259 +93.8991 35.8842 189.148 +93.7223 36.6244 193.05 +93.8213 37.5017 197.674 +93.928 38.4162 202.494 +93.6308 39.1975 206.613 +93.6263 40.1347 211.553 +93.8536 41.2118 217.23 +93.9488 42.2756 222.837 +93.6142 43.1872 227.643 +93.9343 44.4477 234.287 +93.7491 45.5212 239.945 +93.5404 46.6321 245.801 +93.1321 47.6932 251.394 +93.1989 49.0553 258.574 +93.1125 50.4033 265.679 +92.7799 51.6842 272.431 +92.3343 52.9676 279.196 +92.3768 54.609 287.848 +92.6818 56.504 297.837 +92.447 58.1717 306.627 +92.4488 60.0935 316.757 +92.2507 62.0018 326.816 +92.2949 64.2019 338.413 +92.2901 66.5151 350.605 +92.0029 68.7786 362.537 +98.0704 76.1391 401.334 +105.525 85.1947 449.067 +101.315 85.1811 448.995 +97.0324 85.0874 448.501 +93.045 85.2421 449.317 +90.9968 87.2564 459.934 +90.7351 91.2498 480.984 +90.3318 95.4872 503.319 +88.8451 98.958 521.614 +86.8211 102.173 538.561 +86.6902 108.117 569.893 +89.363 118.516 624.708 +85.3119 120.782 636.652 +86.7832 131.739 694.406 +88.8645 145.376 766.286 +88.6401 157.193 828.576 +85.7053 165.903 874.485 +86.4934 184.27 971.299 +76.733 181.728 957.899 +69.4007 184.988 975.084 +59.4735 181.243 955.343 +51.8649 184.46 972.299 +42.4373 181.167 954.941 +34.5331 184.321 971.567 +25.4178 180.923 953.657 +17.2255 183.939 969.556 +8.44903 180.456 951.197 +5.4956e-14 184.004 969.9 +-8.44641 180.4 950.902 +-17.2098 183.772 968.672 +-25.2817 179.954 948.55 +-34.3969 183.594 967.739 +-42.1494 179.937 948.462 +-51.5614 183.38 966.609 +-58.9546 179.661 947.007 +-68.745 183.24 965.871 +-75.9406 179.851 948.007 +-85.9094 183.026 964.741 +-92.6445 179.335 945.289 +-103.379 183.33 966.345 +-109.739 179.525 946.29 +-121.004 183.687 968.229 +-126.467 179.049 943.777 +-139.354 184.816 974.179 +-145.238 181.135 954.777 +-114.056 134.224 707.504 +-120.006 133.666 704.561 +-126.416 133.631 704.376 +-149.779 150.629 793.975 +-625.224 599.524 3160.13 +-653.269 598.484 3154.65 +-681.264 597.4 3148.93 +-142.417 119.738 631.145 +-144.846 116.941 616.402 +-151.81 117.861 621.251 +-148.54 111.044 585.322 +-145.27 104.699 551.875 +-144.395 100.444 529.446 +-150.054 100.852 531.596 +-108.27 70.378 370.967 +-110.738 69.6809 367.293 +-113.177 68.9991 363.699 +-116.253 68.7234 362.246 +-119.651 68.638 361.796 +-123.622 68.8651 362.992 +-128.925 69.7892 367.863 +-1093.78 575.713 3034.62 +-1120.7 573.912 3025.13 +-1147.52 572.067 3015.4 +-1174.26 570.179 3005.45 +-1200.91 568.248 2995.27 +-421.844 194.61 1025.8 +-420.646 189.285 997.734 +-159.418 70.0019 368.984 +-161.055 69.0391 363.91 +-164.403 68.8255 362.784 +-167.287 68.4198 360.645 +-145.043 57.9758 305.594 +-140.734 54.9954 289.884 +-141.112 53.9268 284.252 +-143.542 53.6618 282.855 +-147.683 54.0241 284.765 +-415.435 148.748 784.059 +-418.158 146.585 772.659 +-420.043 144.196 760.066 +-422.415 142.04 748.702 +-423.878 139.644 736.073 +-426.2 137.593 725.264 +-427.398 135.241 712.863 +-428.924 133.055 701.339 +-430.748 131.017 690.599 +-435.117 129.79 684.129 +-436.663 127.756 673.412 +-438.761 125.931 663.793 +-442.046 124.482 656.155 +-444.782 122.909 647.86 +-446.725 121.151 638.597 +-448.766 119.458 629.674 +-451.264 117.92 621.562 +-453.3 116.292 612.98 +-456.051 114.876 605.517 +-457.981 113.281 597.111 +-464.363 112.798 594.565 +-461.315 110.055 580.109 +-474.294 111.139 585.82 +-468.151 107.756 567.988 +-471.716 106.659 562.209 +-474.184 105.331 555.208 +-477.539 104.216 549.329 +-479.579 102.83 542.025 +-482.321 101.613 535.611 +-485.655 100.534 529.923 +-488.654 99.3969 523.928 +-491.857 98.3119 518.209 +-494.17 97.062 511.62 +-496.681 95.8657 505.315 +-499.188 94.682 499.075 +-502.258 93.616 493.456 +-504.91 92.482 487.479 +-2356.92 424.234 2236.16 +-385.029 68.1031 358.976 +-384.326 66.8004 352.109 +-383.016 65.4172 344.819 +-382.497 64.1932 338.367 +-522.771 86.2072 454.404 +-141.659 22.9525 120.984 +-142.196 22.6365 119.319 +-143.174 22.3924 118.032 +-141.825 21.7911 114.862 +-141.674 21.3836 112.715 +-143.687 21.3033 112.291 +-147.516 21.4819 113.232 +-155.418 22.2282 117.166 +-155.734 21.8736 115.297 +-157.234 21.686 114.308 +-158.486 21.4623 113.129 +-160.625 21.3553 112.565 +-2683.95 350.287 1846.39 +-380.417 48.7323 256.871 +-384.259 48.3098 254.644 +-382.42 47.1787 248.682 +-380.505 46.0576 242.773 +-380.791 45.2166 238.34 +-381.537 44.4375 234.233 +-381.301 43.5521 229.566 +-380.668 42.6327 224.72 +-380.495 41.7755 220.201 +-379.839 40.8754 215.457 +-380.955 40.1734 211.757 +-380.285 39.2901 207.101 +-380.44 38.5012 202.942 +-380.462 37.7058 198.75 +-379.818 36.8533 194.256 +-380.549 36.1409 190.501 +-378.736 35.1963 185.522 +-378.752 34.4319 181.493 +-377.1 33.5256 176.716 +-380.468 33.0684 174.306 +-380.091 32.286 170.182 +-380.218 31.5529 166.317 +-380.855 30.8662 162.698 +-379.984 30.0636 158.467 +-379.714 29.316 154.527 +-380.331 28.6415 150.971 +-379.331 27.851 146.804 +-379.781 27.1727 143.229 +-113.525 7.91135 41.7013 +-112.387 7.62441 40.1888 +-110.855 7.31688 38.5678 +-109.396 7.02099 37.0081 +-108.962 6.79547 35.8194 +-109.467 6.62951 34.9446 +-108.342 6.36713 33.5616 +-108.636 6.19066 32.6314 +-108.826 6.00842 31.6708 +-109.103 5.83118 30.7366 +-108.794 5.62362 29.6425 +-109.729 5.48021 28.8866 +-109.497 5.2782 27.8217 +-110.226 5.12243 27.0007 +-110.85 4.96037 26.1464 +-111.37 4.79245 25.2613 +-111.786 4.61918 24.348 +-113.856 4.51081 23.7768 +-115.043 4.36261 22.9956 +-118.679 4.2998 22.6645 +-132.346 4.57195 24.0991 +-161.312 5.30161 27.9451 +-160.567 5.00827 26.3989 +-162.08 4.78481 25.221 +-165.265 4.60365 24.2662 +-857.869 22.4723 118.453 +-867.911 21.2975 112.261 +-381.237 8.72493 45.9897 +-380.737 8.08552 42.6193 +-3258.55 63.8364 336.486 +-405.126 7.27094 38.3256 +-403.06 6.57272 34.6452 +-404.549 5.93442 31.2808 +-403.515 5.25928 27.722 +-404.145 4.60731 24.2854 +-146.399 1.43007 7.538 +-405.014 3.296 17.3734 +-403.254 2.62473 13.8351 +-145.15 0.708449 3.73428 +-144.878 0.471353 2.48453 +-145.594 0.236824 1.24831 +119.8 1.77636e-15 -1.13687e-13 +120.395 0.205139 1.03045 +119.682 0.407879 2.04884 +120.359 0.615357 3.09104 +120.327 0.820405 4.12103 +119.686 1.02028 5.12503 +120.235 1.23029 6.17998 +120.974 1.44464 7.25668 +120.905 1.6507 8.29177 +120.627 1.85358 9.31084 +120.739 2.06244 10.36 +120.443 2.26433 11.3741 +120.536 2.47353 12.425 +121.017 2.69209 13.5228 +119.999 2.87676 14.4504 +120.659 3.10148 15.5793 +120.219 3.2988 16.5704 +120.66 3.52081 17.6856 +120.202 3.71711 18.6717 +120.623 3.9411 19.7968 +120.442 4.14648 20.8285 +120.94 4.37644 21.9836 +120.74 4.58233 23.0178 +120.433 4.78398 24.0307 +120.312 4.99305 25.0809 +120.084 5.19786 26.1097 +120.627 5.43739 27.3129 +120.379 5.64271 28.3443 +120.899 5.8854 29.5634 +120.728 6.09605 30.6215 +121.32 6.347 31.8821 +121.514 6.57956 33.0502 +120.638 6.75405 33.9267 +121.099 7.00369 35.1807 +121.451 7.24972 36.4166 +120.931 7.44464 37.3957 +121.735 7.7228 38.793 +121.48 7.93611 39.8644 +121.026 8.13643 40.8707 +121.601 8.40751 42.2324 +121.126 8.6077 43.2379 +120.55 8.80007 44.2043 +116.324 8.71825 43.7932 +113.046 8.69429 43.6729 +109.686 8.65253 43.4631 +106.893 8.64481 43.4244 +103.741 8.59774 43.1879 +100.968 8.57175 43.0574 +99.211 8.62433 43.3215 +96.0009 8.54204 42.9081 +97.2468 8.85381 44.4742 +97.0279 9.03597 45.3892 +96.8001 9.21808 46.304 +97.6373 9.50462 47.7433 +96.7633 9.6263 48.3545 +96.6842 9.82685 49.362 +96.8594 10.0554 50.5098 +96.4062 10.22 51.3369 +96.6455 10.4596 52.5405 +96.8706 10.7008 53.7519 +96.4752 10.8752 54.628 +95.8993 11.0293 55.4018 +96.9456 11.3732 57.1297 +96.3483 11.5278 57.906 +96.5927 11.7846 59.1962 +96.5683 12.0117 60.3368 +96.8665 12.2821 61.6951 +96.3138 12.4467 62.5218 +96.4171 12.6977 63.7825 +96.5052 12.9499 65.0497 +96.6599 13.2146 66.3794 +96.0656 13.3788 67.2041 +96.1112 13.6338 68.485 +96.1413 13.89 69.7716 +96.2356 14.159 71.123 +96.1544 14.4056 72.3619 +96.2161 14.6771 73.7256 +96.2608 14.9499 75.0957 +96.2107 15.2116 76.4105 +96.2987 15.4991 77.8548 +95.679 15.6752 78.7391 +96.1153 16.0278 80.5103 +96.0745 16.3062 81.909 +96.091 16.5987 83.378 +95.94 16.8663 84.7223 +95.8461 17.1478 86.1364 +96.3924 17.5502 88.1575 +95.6043 17.7137 88.979 +96.0319 18.1065 90.9521 +95.8609 18.3926 92.3892 +95.6715 18.6795 93.8302 +95.4638 18.9671 95.2751 +95.8629 19.3819 97.3584 +96.232 19.7993 99.4553 +95.9572 20.091 100.921 +96.2716 20.5129 103.04 +95.3511 20.6762 103.86 +95.6161 21.101 105.994 +95.719 21.4989 107.993 +95.339 21.7949 109.48 +95.2611 22.1659 111.343 +95.3481 22.5835 113.441 +95.2162 22.9574 115.319 +94.9335 23.3022 117.051 +95.0581 23.7554 119.327 +94.9059 24.1488 121.304 +94.6053 24.5124 123.13 +94.7553 25.002 125.59 +94.9861 25.5259 128.221 +95.0611 26.0206 130.706 +94.8695 26.4535 132.88 +94.7598 26.9198 135.222 +94.6714 27.404 137.655 +94.7124 27.9387 140.341 +94.3859 28.3775 142.545 +94.7259 29.0311 145.828 +94.3256 29.473 148.048 +94.52 30.1153 151.274 +94.767 30.794 154.684 +94.1991 31.2234 156.84 +94.3 31.8899 160.189 +94.2991 32.5423 163.465 +94.15 33.1627 166.582 +94.0957 33.8367 169.968 +94.2699 34.6164 173.884 +94.3814 35.3991 177.816 +94.0668 36.0457 181.064 +94.0585 36.8336 185.021 +93.8991 37.5892 188.817 +93.7223 38.3645 192.711 +93.8635 39.3013 197.417 +93.5133 40.0637 201.247 +93.6308 41.0599 206.251 +93.5465 42.0056 211.001 +93.7755 43.134 216.669 +93.9105 44.2662 222.357 +93.9139 45.384 227.971 +93.8976 46.5414 233.785 +93.7491 47.684 239.525 +93.4704 48.8111 245.187 +93.2347 50.0142 251.23 +93.0654 51.3122 257.75 +93.1776 52.835 265.399 +92.9385 54.2323 272.418 +92.736 55.7256 279.919 +92.4971 57.278 287.717 +92.3895 59.0018 296.376 +92.305 60.8418 305.619 +92.2283 62.7986 315.448 +92.1705 64.8912 325.96 +92.269 67.2336 337.726 +92.265 69.6564 349.896 +92.0271 72.0653 361.996 +96.1095 78.1619 392.62 +105.57 89.2806 448.471 +101.705 89.5713 449.932 +97.3858 89.4547 449.346 +93.1846 89.426 449.202 +91.035 91.4404 459.321 +90.7351 95.5853 480.141 +90.2971 99.9855 502.244 +89.1092 103.968 522.248 +86.6803 106.854 536.745 +86.4981 113.003 567.633 +89.2795 124.031 623.031 +85.1553 126.289 634.371 +88.2943 140.401 705.26 +88.9098 152.36 765.333 +87.8875 163.264 820.101 +87.6222 177.672 892.478 +83.6434 186.665 937.648 +73.0454 181.214 910.267 +66.6174 186.006 934.339 +56.769 181.221 910.303 +49.8552 185.736 932.986 +40.4657 180.957 908.98 +33.1441 185.312 930.854 +24.2582 180.872 908.553 +16.5431 185.046 929.516 +8.07117 180.576 907.065 +4.04121e-14 184.82 928.382 +-8.05896 180.303 905.692 +-16.5135 184.714 927.848 +-24.2189 180.58 907.083 +-32.98 184.395 926.248 +-40.3043 180.236 905.355 +-49.4679 184.294 925.739 +-56.3783 179.973 904.037 +-65.885 183.961 924.066 +-72.457 179.754 902.934 +-82.4493 184 924.263 +-88.6573 179.771 903.021 +-99.0407 183.982 924.174 +-104.736 179.481 901.561 +-115.386 183.481 921.657 +-120.802 179.154 899.922 +-132.047 183.447 921.483 +-139.044 181.651 912.461 +-114.182 140.756 707.039 +-120.171 140.209 704.294 +-126.59 140.172 704.108 +-150.691 158.745 797.405 +-625.224 628.009 3154.6 +-653.269 626.92 3149.12 +-681.264 625.783 3143.42 +-142.547 125.541 630.614 +-144.846 122.497 615.322 +-152.557 124.068 623.214 +-147.935 115.847 581.917 +-145.421 109.787 551.478 +-144.732 105.461 529.751 +-150.375 105.869 531.799 +-108.27 73.7218 370.317 +-111.05 73.1976 367.684 +-113.411 72.4267 363.812 +-116.554 72.1749 362.547 +-119.899 72.0478 361.908 +-123.781 72.2295 362.821 +-128.99 73.1419 367.404 +-1093.78 603.066 3029.3 +-1120.7 601.18 3019.83 +-1147.52 599.247 3010.12 +-1174.26 597.27 3000.19 +-1200.91 595.247 2990.03 +-1227.32 593.105 2979.27 +-417.125 196.619 987.649 +-159.184 73.22 367.797 +-161.294 72.4267 363.812 +-164.525 72.1491 362.417 +-167.743 71.866 360.995 +-172.259 72.1261 362.301 +-141.251 57.8198 290.439 +-140.936 56.4187 283.401 +-143.185 56.0716 281.657 +-147.956 56.6954 284.79 +-415.805 155.953 783.38 +-417.971 153.481 770.959 +-420.186 151.098 758.992 +-422.56 148.84 747.648 +-424.026 146.33 735.039 +-426.45 144.215 724.417 +-427.753 141.784 712.205 +-429.336 139.51 700.783 +-434.667 138.49 695.66 +-434.64 135.807 682.182 +-436.61 133.81 672.15 +-439.524 132.144 663.781 +-442.433 130.511 655.578 +-444.614 128.7 646.482 +-447.404 127.101 638.448 +-448.938 125.182 628.811 +-451.787 123.665 621.192 +-453.711 121.927 612.461 +-456.408 120.428 604.928 +-458.703 118.85 597.005 +-468.503 119.21 598.814 +-463.101 115.731 581.334 +-471.057 115.625 580.803 +-468.403 112.936 567.298 +-472.097 111.817 561.678 +-475.341 110.605 555.587 +-477.344 109.123 548.142 +-479.973 107.804 541.52 +-483.448 106.69 535.921 +-486.056 105.398 529.431 +-488.857 104.163 523.227 +-491.584 102.926 517.014 +-494.445 101.73 511.008 +-497.306 100.547 505.064 +-499.818 99.3059 498.83 +-502.965 98.202 493.285 +-505.837 97.0539 487.518 +-2356.92 444.39 2232.25 +-384.593 71.2582 357.942 +-2396.28 436.291 2191.56 +-384.416 68.776 345.474 +-383.983 67.5044 339.086 +-140.953 24.3482 122.305 +-141.885 24.0815 120.965 +-141.359 23.5725 118.408 +-143.097 23.4438 117.762 +-141.13 22.7147 114.1 +-141.596 22.3873 112.455 +-144.704 22.4734 112.888 +-147.752 22.5386 113.215 +-155.18 23.2487 116.782 +-156.373 23.0068 115.567 +-156.913 22.6698 113.874 +-158.729 22.5164 113.104 +-160.299 22.3244 112.139 +-381.889 52.209 262.255 +-381.9 51.2468 257.422 +-379.948 50.0373 251.346 +-381.67 49.3235 247.76 +-380.253 48.2139 242.186 +-381.129 47.4069 238.133 +-381.876 46.5902 234.031 +-379.681 45.4277 228.191 +-380.754 44.6684 224.377 +-381.099 43.8296 220.164 +-381.051 42.9541 215.766 +-380.084 41.9859 210.902 +-379.76 41.1001 206.453 +-379.034 40.1815 201.838 +-380.462 39.4973 198.402 +-380.262 38.6494 194.142 +-378.678 37.672 189.233 +-379.542 36.9468 185.59 +-378.302 36.0249 180.959 +-380.349 35.421 177.925 +-381.374 34.7222 174.415 +-380.546 33.8606 170.087 +-381.862 33.195 166.744 +-381.405 32.3796 162.648 +-380.537 31.5377 158.419 +-379.068 30.6566 153.993 +-380.053 29.9802 150.596 +-379.331 29.1743 146.547 +-379.781 28.4638 142.978 +-114.087 8.32828 41.8344 +-112.857 8.02005 40.2861 +-110.572 7.64496 38.4019 +-109.396 7.35457 36.9432 +-108.962 7.11834 35.7566 +-108.801 6.90224 34.6711 +-108.247 6.66377 33.4732 +-108.445 6.47338 32.5169 +-108.826 6.29389 31.6153 +-109.103 6.10823 30.6827 +-109.083 5.90647 29.6692 +-109.246 5.71532 28.709 +-109.497 5.52898 27.773 +-110.032 5.35636 26.9059 +-110.753 5.19148 26.0777 +-111.273 5.01575 25.195 +-112.567 4.87246 24.4752 +-113.661 4.71701 23.6943 +-115.435 4.58545 23.0335 +-118.384 4.49292 22.5687 +-140.409 5.08093 25.5224 +-158.948 5.47212 27.4874 +-161.652 5.28166 26.5307 +-162.969 5.03963 25.3149 +-165.265 4.82238 24.2237 +-858.76 23.5644 118.368 +-868.407 22.3221 112.128 +-379.45 9.09663 45.6939 +-380.24 8.45863 42.4891 +-404.273 8.29616 41.673 +-404.131 7.59769 38.1645 +-402.961 6.8833 34.576 +-403.253 6.19647 31.1259 +-402.916 5.50098 27.6324 +-403.746 4.82143 24.2188 +-144.302 1.47656 7.417 +-402.916 3.43471 17.2531 +-405.353 2.76375 13.8828 +-145.45 0.743644 3.73545 +-144.878 0.493748 2.48018 +-145.994 0.248757 1.24955 +120.6 4.44089e-15 2.84217e-14 +119.695 0.213182 1.02258 +119.682 0.426346 2.04508 +120.359 0.643218 3.08537 +120.327 0.857549 4.11346 +120.385 1.0727 5.14551 +120.235 1.286 6.16863 +120.076 1.49884 7.18957 +121.005 1.72687 8.28337 +120.826 1.9407 9.3091 +120.739 2.15582 10.341 +120.642 2.37077 11.372 +120.536 2.58552 12.4022 +120.918 2.81165 13.4868 +119.999 3.007 14.4239 +120.659 3.24191 15.5507 +120.318 3.45099 16.5536 +120.759 3.68324 17.6677 +120.399 3.8918 18.668 +120.623 4.11954 19.7605 +120.344 4.33066 20.7732 +120.94 4.57459 21.9432 +120.642 4.7859 22.9568 +120.433 5.00058 23.9866 +120.312 5.21911 25.0349 +120.084 5.4332 26.0618 +120.627 5.68357 27.2628 +121.255 5.94107 28.4979 +121.093 6.16174 29.5564 +120.728 6.37205 30.5653 +121.224 6.62908 31.7982 +121.707 6.88835 33.0418 +121.311 7.09921 34.0533 +121.195 7.32659 35.1439 +121.164 7.56006 36.2638 +120.931 7.7817 37.327 +121.735 8.07246 38.7217 +120.627 8.23716 39.5117 +121.877 8.56461 41.0824 +120.847 8.73366 41.8933 +121.032 8.99044 43.125 +120.55 9.1985 44.1231 +116.324 9.11297 43.7128 +113.139 9.0954 43.6285 +110.428 9.10542 43.6766 +107.817 9.11432 43.7193 +104.385 9.04283 43.3763 +102.619 9.10632 43.6809 +99.1197 9.0065 43.2021 +97.3659 9.05575 43.4383 +97.5187 9.28055 44.5166 +96.9377 9.4363 45.2638 +96.6204 9.61753 46.1331 +97.5478 9.92585 47.612 +98.0998 10.2011 48.9324 +96.6842 10.2718 49.2713 +96.2413 10.4436 50.0954 +96.4062 10.6827 51.2426 +96.6455 10.9332 52.444 +96.1743 11.1049 53.2676 +96.4752 11.3676 54.5277 +96.761 11.6322 55.797 +96.9456 11.8882 57.0248 +96.4336 12.0604 57.8508 +96.6775 12.329 59.1393 +96.737 12.5775 60.3312 +96.0278 12.727 61.0487 +96.3138 13.0102 62.407 +96.4171 13.2725 63.6653 +96.5052 13.5362 64.9302 +96.0046 13.7193 65.8084 +96.0656 13.9846 67.0807 +96.1921 14.2631 68.4168 +96.2217 14.531 69.7017 +96.2356 14.8001 70.9924 +96.1544 15.0579 72.229 +96.2161 15.3416 73.5901 +96.2608 15.6267 74.9577 +96.2107 15.9003 76.2701 +96.2987 16.2009 77.7118 +96.2152 16.4767 79.0349 +96.1914 16.7667 80.4261 +96.0745 17.0445 81.7585 +96.0161 17.3367 83.16 +95.94 17.6299 84.5667 +95.8461 17.9242 85.9782 +96.3193 18.3308 87.9288 +96.1121 18.6141 89.2874 +95.9599 18.9121 90.717 +95.8609 19.2254 92.2195 +95.6715 19.5252 93.6579 +96.0246 19.9423 95.6587 +95.8629 20.2594 97.1796 +95.6125 20.5627 98.6344 +96.0254 21.0158 100.808 +95.596 21.2913 102.129 +95.8864 21.7337 104.252 +95.6161 22.0564 105.799 +95.719 22.4723 107.794 +95.274 22.7662 109.204 +95.2611 23.1695 111.139 +95.2845 23.5901 113.156 +95.405 24.0444 115.335 +94.9335 24.3573 116.836 +95.0581 24.8309 119.108 +94.9059 25.2422 121.081 +94.7859 25.671 123.138 +94.7553 26.134 125.359 +95.1624 26.7312 128.223 +94.5965 27.0657 129.828 +95.0416 27.7012 132.876 +94.5898 28.0882 134.732 +94.8391 28.6955 137.646 +94.7124 29.2037 140.083 +94.7127 29.7649 142.775 +94.7259 30.3455 145.561 +94.3786 30.8245 147.858 +94.52 31.4788 150.997 +94.2005 31.9958 153.476 +94.3514 32.6899 156.806 +94.35 33.3515 159.98 +94.2991 34.0156 163.165 +94.1985 34.6822 166.362 +94.048 35.3508 169.569 +94.2229 36.1657 173.478 +94.3352 36.9836 177.402 +94.0668 37.6777 180.731 +94.0585 38.5012 184.681 +93.5046 39.1259 187.678 +93.6792 40.0831 192.269 +93.8635 41.0807 197.054 +93.928 42.0634 201.768 +93.9968 43.0866 206.677 +93.5465 43.9075 210.614 +93.8145 45.1057 216.361 +93.5661 46.1008 221.135 +93.5767 47.2686 226.736 +93.5678 48.4778 232.537 +93.6057 49.7666 238.719 +93.4704 51.0211 244.736 +93.1663 52.2403 250.585 +93.0987 53.6548 257.37 +92.852 55.0342 263.986 +92.8433 56.6298 271.64 +92.4888 58.0933 278.66 +92.3468 59.7739 286.722 +92.5356 61.7707 296.3 +92.3618 63.6356 305.245 +92.2834 65.681 315.056 +92.411 68.0062 326.21 +92.2949 70.2972 337.199 +92.0147 72.6126 348.306 +91.8094 75.15 360.477 +94.1952 80.0733 384.093 +105.952 93.6608 449.269 +101.856 93.7663 449.775 +97.573 93.6847 449.383 +93.5434 93.8349 450.104 +90.8251 95.3602 457.421 +90.7351 99.913 479.259 +90.1929 104.392 500.743 +89.4393 109.077 523.219 +86.43 111.369 534.213 +87.7988 119.895 575.11 +89.3213 129.708 622.177 +87.7005 135.952 652.131 +89.1718 148.217 710.961 +88.5249 158.569 760.62 +85.9956 166.982 800.972 +85.4369 181.085 868.621 +79.5906 185.662 890.578 +69.3657 179.876 862.825 +63.4156 185.083 887.798 +53.8204 179.587 861.436 +47.4792 184.893 886.889 +38.3589 179.302 860.072 +31.6224 184.81 886.489 +22.9755 179.065 858.932 +15.8014 184.751 886.209 +7.64357 178.752 857.433 +4.80727e-14 184.351 884.288 +-7.64357 178.752 857.433 +-15.7543 184.2 883.567 +-22.9101 178.555 856.486 +-31.5282 184.259 883.848 +-38.1364 178.263 855.084 +-47.2489 183.996 882.588 +-53.3564 178.039 854.009 +-63.018 183.922 882.231 +-68.5968 177.882 853.26 +-78.7539 183.71 881.216 +-83.8842 177.794 852.835 +-94.6505 183.788 881.586 +-99.0981 177.508 851.467 +-110.499 183.666 881.001 +-114.432 177.392 850.906 +-126.314 183.426 879.851 +-129.939 177.441 851.145 +-114.401 147.411 707.094 +-120.518 146.98 705.028 +-126.972 146.96 704.935 +-147.52 162.441 779.193 +-625.148 656.363 3148.42 +-653.269 655.304 3143.34 +-681.264 654.116 3137.64 +-142.98 131.623 631.367 +-144.913 128.103 614.478 +-153.7 130.657 626.734 +-179.192 146.676 703.572 +-145.621 114.916 551.224 +-145.042 110.473 529.912 +-150.829 110.997 532.426 +-109.345 77.8247 373.307 +-111.334 76.7072 367.946 +-113.645 75.862 363.892 +-117.035 75.7541 363.375 +-120.177 75.4845 362.081 +-124.288 75.8094 363.64 +-129.12 76.5308 367.101 +-1093.78 630.371 3023.74 +-1120.7 628.399 3014.28 +-1147.52 626.379 3004.59 +-1174.26 624.311 2994.68 +-1200.91 622.197 2984.53 +-1227.32 619.958 2973.79 +-1253.79 617.75 2963.2 +-158.285 76.1031 365.049 +-161.812 75.9492 364.31 +-164.891 75.5835 362.556 +-168.905 75.6398 362.826 +-173.062 75.7431 363.322 +-141.724 60.6403 290.877 +-141.506 59.2117 284.025 +-144.97 59.3409 284.644 +-147.229 58.9713 282.871 +-416.636 163.34 783.505 +-136.1 52.2393 250.58 +-135.227 50.829 243.815 +-422.463 155.543 746.103 +-424.42 153.097 734.371 +-426.4 150.727 723.002 +-427.956 148.274 711.235 +-430.211 146.124 700.922 +-442.452 147.353 706.82 +-434.216 141.818 680.266 +-437.416 140.126 672.154 +-439.524 138.127 662.562 +-442.046 136.301 653.803 +-444.95 134.628 645.781 +-448.254 133.108 638.486 +-449.454 131 628.378 +-452.484 129.464 621.008 +-454.24 127.596 612.049 +-456.764 125.979 604.29 +-458.162 124.084 595.204 +-472.094 125.563 602.297 +-468.026 122.257 586.438 +-469.314 120.412 577.59 +-469.536 118.335 567.625 +-472.861 117.069 561.553 +-475.341 115.613 554.567 +-478.513 114.343 548.475 +-480.17 112.731 540.746 +-483.779 111.597 535.304 +-486.659 110.306 529.113 +-489.262 108.969 522.698 +-491.584 107.586 516.065 +-494.858 106.425 510.497 +-497.792 105.202 504.63 +-501.15 104.079 499.241 +-502.965 102.648 492.379 +-506.336 101.548 487.103 +-2356.92 464.51 2228.15 +-2376.69 460.294 2207.92 +-383.522 72.9893 350.113 +-384.416 71.8899 344.839 +-382.051 70.2056 336.76 +-141.553 25.5587 122.599 +-142.112 25.212 120.936 +-141.588 24.6795 118.382 +-142.867 24.4658 117.357 +-140.976 23.717 113.765 +-142.14 23.4909 112.68 +-145.643 23.6434 113.412 +-149.486 23.8354 114.333 +-155.656 24.3758 116.925 +-156.612 24.0854 115.532 +-156.752 23.6719 113.549 +-158.972 23.5719 113.069 +-160.706 23.3946 112.218 +-380.824 54.4208 261.044 +-382.395 53.6363 257.281 +-381.191 52.474 251.705 +-380.585 51.4101 246.602 +-379.163 50.2523 241.049 +-381.55 49.608 237.958 +-380.35 48.5049 232.667 +-381.556 47.719 228.897 +-382.554 46.9114 225.023 +-381.185 45.8245 219.809 +-379.666 44.7357 214.586 +-379.823 43.8569 210.371 +-380.285 43.0203 206.358 +-379.737 42.0785 201.841 +-378.785 41.1035 197.164 +-381.858 40.5688 194.599 +-380.994 39.6184 190.04 +-377.931 38.4557 184.463 +-380.37 37.8618 181.614 +-379.718 36.9632 177.304 +-377.387 35.9146 172.274 +-381.183 35.4528 170.059 +-381.04 34.6232 166.079 +-379.938 33.7154 161.725 +-380.537 32.9656 158.128 +-380.176 32.1382 154.16 +-378.847 31.2382 149.842 +-380.727 30.6072 146.816 +-380.621 29.8184 143.032 +-114.555 8.74109 41.9289 +-112.857 8.38316 40.2121 +-110.666 7.99791 38.3641 +-109.396 7.68755 36.8754 +-108.868 7.43416 35.6599 +-108.801 7.21475 34.6075 +-108.342 6.97162 33.4412 +-108.445 6.76647 32.4572 +-109.018 6.59045 31.6128 +-108.719 6.3623 30.5185 +-109.083 6.17389 29.6147 +-109.15 5.96882 28.631 +-109.691 5.78953 27.771 +-109.837 5.58902 26.8092 +-110.558 5.41699 25.9841 +-111.176 5.23826 25.1267 +-112.469 5.08864 24.409 +-113.465 4.92211 23.6102 +-115.435 4.79306 22.9912 +-118.581 4.70412 22.5646 +-154.174 5.83166 27.9731 +-157.865 5.6809 27.2499 +-161.258 5.50732 26.4173 +-161.981 5.23589 25.1153 +-165.265 5.04072 24.1792 +-858.76 24.6313 118.151 +-868.01 23.3221 111.871 +-380.344 9.53088 45.7174 +-380.141 8.83927 42.3999 +-404.77 8.68245 41.6477 +-404.33 7.94558 38.1131 +-403.558 7.20562 34.5637 +-402.954 6.47222 31.0457 +-403.515 5.75859 27.6226 +-404.145 5.04472 24.1983 +-145.201 1.55302 7.44949 +-404.615 3.60536 17.2941 +-402.755 2.87037 13.7685 +-145.65 0.77838 3.73371 +-146.378 0.521446 2.50125 +-146.294 0.260555 1.24982 +119.7 3.55271e-15 -1.13687e-13 +119.595 0.222211 1.01976 +119.682 0.444778 2.04115 +120.359 0.671026 3.07944 +120.327 0.894624 4.10556 +120.385 1.11908 5.13563 +120.135 1.34048 6.15166 +120.076 1.56364 7.17575 +120.107 1.78816 8.20611 +120.627 2.02127 9.27588 +120.739 2.24902 10.3211 +120.642 2.47326 11.3502 +120.536 2.69731 12.3783 +120.023 2.91151 13.3614 +120.892 3.16036 14.5034 +120.659 3.38206 15.5208 +120.318 3.60019 16.5218 +120.66 3.83933 17.6192 +120.3 4.05671 18.6168 +120.623 4.29764 19.7225 +120.442 4.5216 20.7503 +120.154 4.74132 21.7586 +120.74 4.99688 22.9314 +120.433 5.21677 23.9405 +120.312 5.44475 24.9868 +120.865 5.70495 26.1808 +120.724 5.93408 27.2324 +120.379 6.15319 28.2379 +120.123 6.37661 29.2632 +120.728 6.64754 30.5065 +121.127 6.91016 31.7117 +120.839 7.13495 32.7433 +121.215 7.40028 33.961 +120.907 7.6252 34.9931 +121.259 7.89312 36.2227 +120.931 8.11813 37.2553 +121.735 8.42146 38.6473 +121.385 8.64731 39.6838 +121.877 8.93489 41.0035 +121.506 9.161 42.0412 +120.938 9.37184 43.0088 +121.112 9.64092 44.2436 +116.511 9.52222 43.6989 +113.976 9.55886 43.867 +110.335 9.49111 43.5561 +107.817 9.50836 43.6353 +104.293 9.42545 43.2548 +101.702 9.41513 43.2074 +99.211 9.40454 43.1588 +97.1839 9.42958 43.2737 +97.3375 9.66378 44.3485 +97.0279 9.85342 45.2188 +97.3394 10.108 46.3871 +97.5478 10.355 47.5205 +98.0998 10.6421 48.8384 +96.5955 10.706 49.1315 +96.9476 10.975 50.3661 +97.1972 11.236 51.5638 +96.6455 11.4059 52.3432 +96.2613 11.5955 53.2133 +96.5618 11.8697 54.4718 +96.6748 12.1243 55.6401 +96.9456 12.4021 56.9152 +96.3483 12.5707 57.6886 +96.5927 12.8507 58.9739 +96.737 13.1212 60.2153 +96.0278 13.2773 60.9314 +96.3138 13.5727 62.2871 +96.3342 13.8345 63.4884 +96.5052 14.1215 64.8055 +95.9227 14.3002 65.6258 +96.147 14.6015 67.0086 +96.1112 14.8672 68.2279 +96.2217 15.1592 69.5678 +96.1557 15.4271 70.7972 +96.3131 15.7348 72.2091 +95.5857 15.9 72.9674 +95.6347 16.1963 74.3271 +95.589 16.4805 75.6316 +96.2987 16.9013 77.5625 +96.2152 17.189 78.883 +96.1153 17.4778 80.208 +96.0745 17.7814 81.6014 +96.0161 18.0862 83.0002 +95.94 18.3921 84.4042 +95.8461 18.6991 85.813 +96.3924 19.1379 87.8265 +95.6043 19.3162 88.645 +96.0319 19.7445 90.6106 +95.8609 20.0565 92.0423 +95.6715 20.3694 93.4779 +96.0947 20.8197 95.5445 +95.9323 21.1506 97.0631 +95.5436 21.4361 98.3736 +95.9572 21.9086 100.542 +95.6636 22.2273 102.004 +95.8864 22.6734 104.051 +95.4835 22.9782 105.45 +95.6534 23.4279 107.514 +95.339 23.7666 109.069 +95.3254 24.1873 110.999 +95.3481 24.6266 113.015 +95.405 25.0839 115.114 +95.1202 25.4603 116.841 +94.935 25.8708 118.725 +94.845 26.3164 120.77 +94.7859 26.7808 122.901 +94.8148 27.2811 125.197 +95.1624 27.8869 127.977 +94.5965 28.2358 129.578 +94.9843 28.8816 132.542 +94.7598 29.3551 134.715 +94.6154 29.8654 137.057 +94.602 30.4307 139.651 +94.4404 30.9623 142.091 +94.7259 31.6575 145.281 +94.3786 32.1572 147.574 +93.9975 32.6582 149.873 +94.6125 33.5251 153.852 +94.4021 34.1215 156.588 +94.3 34.7749 159.587 +94.3484 35.5048 162.937 +94.247 36.2001 166.128 +94.4774 37.0475 170.016 +93.8474 37.5787 172.454 +94.3352 38.5826 177.061 +94.0668 39.3067 180.384 +94.0139 40.1468 184.24 +93.8553 40.9706 188.02 +93.7223 41.8352 191.988 +93.8635 42.8567 196.676 +93.8866 43.8625 201.291 +93.5494 44.7354 205.297 +93.8655 45.962 210.926 +93.8536 47.0753 216.035 +93.9488 48.2904 221.612 +93.5767 49.3121 226.301 +93.5311 50.5538 231.999 +93.4624 51.8387 237.896 +93.5754 53.2867 244.541 +93.2347 54.5388 250.287 +93.0987 55.9745 256.875 +92.7544 57.3531 263.202 +92.5578 58.8963 270.284 +92.4888 60.6048 278.125 +92.2265 62.277 285.798 +92.1848 64.1971 294.61 +92.2482 66.3053 304.285 +92.2834 68.5206 314.451 +92.1705 70.7617 324.736 +92.2949 73.3364 336.551 +91.9646 75.7108 347.448 +91.9061 78.4816 360.163 +92.6311 82.1481 376.99 +106.312 98.042 449.929 +102.073 98.0279 449.864 +97.9264 98.089 450.145 +93.7029 98.0586 450.005 +90.9014 99.5664 456.925 +90.5711 104.044 477.474 +90.3318 109.073 500.551 +89.8024 114.255 524.334 +86.5239 116.31 533.765 +89.7203 127.816 586.569 +89.3909 135.421 621.466 +89.1885 144.236 661.921 +89.1352 154.561 709.303 +86.3401 161.342 740.422 +87.8248 177.906 816.438 +81.4689 180.14 826.688 +75.2067 183.02 839.907 +65.8586 178.165 817.626 +59.8999 182.38 836.968 +51.1709 178.128 817.455 +44.8257 182.107 835.715 +36.4266 177.631 815.176 +29.8286 181.863 834.594 +21.8394 177.569 814.892 +14.9026 181.776 834.195 +7.2692 177.347 813.87 +4.4742e-14 181.484 832.856 +-7.2631 177.198 813.186 +-14.8607 181.265 831.85 +-21.7975 177.229 813.329 +-29.7309 181.267 831.861 +-36.2608 176.823 811.467 +-44.5641 181.044 830.837 +-50.7435 176.64 810.628 +-59.4186 180.914 830.242 +-65.2623 176.552 810.223 +-74.2567 180.708 829.298 +-79.6766 176.177 808.501 +-89.1105 180.511 828.391 +-94.287 176.192 808.572 +-104.101 180.512 828.394 +-108.833 176.005 807.713 +-118.965 180.224 827.073 +-123.303 175.658 806.121 +-114.87 154.415 708.631 +-120.947 153.88 706.179 +-127.458 153.901 706.275 +-134.672 154.705 709.965 +-625.148 684.74 3142.37 +-653.189 683.552 3136.92 +-681.264 682.396 3131.61 +-143.694 138 633.302 +-145.206 133.911 614.535 +-153.14 135.81 623.25 +-179.966 153.679 705.253 +-145.546 119.822 549.88 +-145.508 115.619 530.592 +-151.31 116.165 533.098 +-109.511 81.312 373.153 +-111.646 80.2481 368.27 +-113.937 79.3453 364.127 +-117.305 79.2118 363.515 +-120.424 78.9099 362.129 +-125.018 79.5514 365.073 +-1066.79 659.631 3027.14 +-1093.78 657.624 3017.93 +-1120.7 655.567 3008.49 +-1147.52 653.459 2998.82 +-1174.26 651.302 2988.92 +-1200.91 649.097 2978.8 +-463.613 244.309 1121.17 +-445.405 228.941 1050.65 +-159.692 80.0986 367.584 +-162.171 79.4084 364.417 +-164.81 78.8124 361.682 +-168.822 78.8712 361.951 +-173.907 79.4037 364.395 +-141.681 63.2428 290.23 +-142.076 62.0203 284.62 +-145.416 62.0969 284.972 +-148.818 62.1848 285.375 +-417.744 170.855 784.08 +-419.05 167.798 770.049 +-421.045 165.104 757.688 +-134.874 51.8049 237.74 +-134.53 50.6258 232.329 +-426.65 157.336 722.036 +-428.413 154.849 710.625 +-430.263 152.46 699.66 +-464.658 161.439 740.868 +-435.329 148.328 680.699 +-438.383 146.508 672.346 +-440.014 144.259 662.027 +-443.316 142.602 654.42 +-445.565 140.643 645.431 +-448.197 138.845 637.179 +-450.258 136.908 628.29 +-452.89 135.182 620.371 +-454.769 133.268 611.585 +-457.478 131.63 604.071 +-459.426 129.806 595.699 +-469.355 130.231 597.65 +-474.737 129.371 593.703 +-467.882 125.235 574.722 +-470.102 123.6 567.218 +-473.433 122.278 561.152 +-475.984 120.774 554.25 +-479.098 119.432 548.089 +-481.613 117.959 541.329 +-484.773 116.661 535.373 +-487.06 115.17 528.532 +-490.073 113.868 522.559 +-492.812 112.517 516.359 +-495.271 111.119 509.941 +-497.792 109.75 503.66 +-500.94 108.533 498.072 +-503.389 107.176 491.847 +-506.336 105.938 486.167 +-2356.92 484.592 2223.86 +-384.593 77.7047 356.598 +-384.18 76.2756 350.04 +-380.804 74.293 340.941 +-381.828 73.198 335.916 +-140.429 26.4521 121.392 +-142.187 26.316 120.768 +-142.728 25.9539 119.106 +-142.101 25.3867 116.503 +-141.284 24.7967 113.796 +-142.14 24.5065 112.464 +-145.8 24.6919 113.315 +-149.88 24.9315 114.414 +-156.291 25.5334 117.176 +-156.213 25.0626 115.016 +-157.395 24.7967 113.796 +-158.972 24.591 112.852 +-160.869 24.4307 112.116 +-382.626 57.0422 261.775 +-2700.25 395.123 1813.28 +-383.181 55.0283 252.533 +-383.171 53.997 247.8 +-382.014 52.8192 242.395 +-380.538 51.6156 236.872 +-382.47 50.884 233.514 +-380.107 49.593 227.589 +-380.154 48.6325 223.182 +-380.151 47.6759 218.792 +-379.925 46.7017 214.321 +-379.91 45.7634 210.015 +-379.497 44.7874 205.536 +-381.143 44.0603 202.199 +-379.844 43.0007 197.336 +-380.262 42.1458 193.413 +-379.747 41.196 189.055 +-379.452 40.2799 184.85 +-380.01 39.4613 181.093 +-380.259 38.6162 177.215 +-381.102 37.8363 173.636 +-379.545 36.8267 169.003 +-379.121 35.9382 164.926 +-379.113 35.0966 161.063 +-380.261 34.3659 157.71 +-379.345 33.4544 153.527 +-380.145 32.7005 150.068 +-380.541 31.9149 146.462 +-380.621 31.1075 142.757 +-114.461 9.11152 41.8141 +-112.669 8.73103 40.068 +-110.289 8.31526 38.1599 +-109.396 8.01991 36.8045 +-108.868 7.75556 35.5914 +-108.611 7.51351 34.4806 +-109.105 7.32423 33.612 +-108.636 7.07144 32.4519 +-109.018 6.87537 31.5521 +-109.007 6.65497 30.5406 +-109.854 6.48632 29.7667 +-110.019 6.27646 28.8036 +-109.691 6.03983 27.7177 +-109.74 5.8255 26.7341 +-110.461 5.64623 25.9114 +-111.76 5.49346 25.2103 +-112.274 5.29944 24.3199 +-114.15 5.16588 23.707 +-115.533 5.00454 22.9666 +-118.875 4.9197 22.5772 +-158.206 6.24286 28.6494 +-160.425 6.02263 27.6387 +-161.06 5.7384 26.3343 +-162.969 5.49555 25.2199 +-3240.51 103.112 473.194 +-859.058 25.7052 117.965 +-381.706 10.6992 49.1004 +-380.046 9.93516 45.5939 +-380.737 9.2359 42.3849 +-403.776 9.03557 41.4656 +-404.429 8.29114 38.0492 +-403.26 7.51157 34.4717 +-403.253 6.75704 31.009 +-404.412 6.02093 27.6309 +-402.747 5.24462 24.0683 +-143.403 1.60011 7.34313 +-402.816 3.7445 17.1841 +-403.354 2.99891 13.7624 +-145.75 0.81259 3.72909 +-145.378 0.540274 2.4794 +-144.095 0.267731 1.22866 +119.7 3.55271e-15 -1.13687e-13 +119.595 0.231402 1.01771 +119.682 0.463174 2.03706 +120.259 0.698201 3.07071 +120.427 0.932399 4.10072 +120.385 1.16537 5.12532 +120.135 1.39592 6.13932 +120.175 1.62966 7.1673 +120.206 1.86366 8.19646 +120.627 2.10487 9.25727 +120.54 2.33817 10.2833 +120.443 2.5713 11.3087 +120.337 2.80423 12.3331 +120.918 3.05453 13.4339 +120.892 3.29108 14.4743 +120.659 3.52195 15.4896 +121.11 3.77379 16.5973 +120.759 4.00141 17.5983 +120.3 4.2245 18.5795 +120.721 4.47905 19.699 +120.344 4.70475 20.6917 +120.154 4.93742 21.715 +120.74 5.20355 22.8854 +120.433 5.43253 23.8925 +120.312 5.66995 24.9366 +119.987 5.89772 25.9384 +120.724 6.17952 27.1777 +120.477 6.41287 28.204 +120.996 6.68864 29.4169 +120.728 6.92248 30.4453 +121.224 7.20171 31.6734 +120.936 7.43598 32.7037 +121.503 7.72469 33.9735 +121.003 7.94687 34.9506 +121.546 8.23903 36.2355 +121.98 8.52724 37.5031 +121.64 8.76292 38.5396 +121.385 9.00497 39.6042 +121.783 9.29723 40.8895 +121.224 9.51771 41.8592 +121.502 9.80496 43.1225 +121.486 10.0707 44.2914 +117.444 9.99552 43.9607 +113.976 9.95422 43.779 +111.077 9.95012 43.761 +108.463 9.961 43.8088 +104.293 9.81529 43.168 +102.527 9.88409 43.4706 +99.9419 9.86567 43.3895 +97.1839 9.81959 43.1869 +96.6124 9.98852 43.9298 +96.9377 10.2514 45.0861 +97.3394 10.5261 46.294 +97.6373 10.7931 47.4686 +97.1197 10.9716 48.2534 +96.8616 11.1795 49.1679 +96.2413 11.3457 49.8988 +97.1972 11.7008 51.4603 +96.7329 11.8884 52.2854 +96.9576 12.1624 53.4907 +96.4752 12.3495 54.3137 +96.6748 12.6258 55.5285 +96.9456 12.9151 56.801 +96.3483 13.0906 57.5728 +96.5927 13.3822 58.8556 +96.737 13.6639 60.0945 +96.1955 13.8506 60.9153 +96.3138 14.1341 62.1621 +96.4171 14.4191 63.4155 +96.5876 14.7181 64.7306 +95.9227 14.8917 65.4941 +96.0656 15.1926 66.8175 +96.1112 15.4821 68.091 +96.2217 15.7862 69.4282 +96.3154 16.0919 70.7725 +96.2338 16.3721 72.005 +96.1373 16.6532 73.2413 +96.2608 16.9766 74.6636 +96.2107 17.2738 75.9708 +96.2987 17.6003 77.4069 +96.2152 17.9 78.7247 +96.1914 18.2151 80.1105 +96.15 18.5314 81.5017 +96.0161 18.8342 82.8337 +95.94 19.1528 84.2348 +95.8461 19.4725 85.6408 +96.3924 19.9294 87.6502 +96.1121 20.222 88.937 +95.3125 20.4072 89.7514 +95.7895 20.8705 91.7893 +95.7423 21.2275 93.3594 +96.0947 21.6808 95.3528 +95.9323 22.0254 96.8684 +95.5436 22.3227 98.1762 +95.9572 22.8147 100.34 +95.596 23.1304 101.729 +95.3511 23.4792 103.262 +95.4835 23.9286 105.239 +95.719 24.4135 107.371 +95.2091 24.7159 108.702 +95.2611 25.1709 110.702 +95.2845 25.6278 112.712 +94.8386 25.9664 114.201 +95.4315 26.6001 116.988 +94.9966 26.9584 118.564 +94.9059 27.4226 120.606 +94.846 27.9062 122.732 +94.8742 28.4272 125.024 +95.0449 29.0044 127.562 +95.0611 29.5482 129.954 +94.9843 30.0761 132.276 +94.7598 30.5692 134.444 +94.5595 31.0823 136.701 +94.602 31.6893 139.371 +94.4404 32.2429 141.806 +94.6722 32.9482 144.907 +94.3786 33.4872 147.278 +94.4677 34.179 150.32 +94.149 34.7406 152.79 +94.3514 35.5137 156.19 +94 36.0981 158.761 +94.2991 36.954 162.525 +94.247 37.6974 165.794 +94.0003 38.3849 168.818 +94.2699 39.3092 172.883 +94.3352 40.1784 176.706 +94.0668 40.9324 180.022 +93.6123 41.6286 183.084 +93.5046 42.5057 186.942 +93.7223 43.5655 191.603 +93.8635 44.6293 196.281 +93.8866 45.6767 200.888 +93.5494 46.5857 204.886 +93.5465 47.7003 209.787 +93.8536 49.0224 215.602 +93.6044 50.1034 220.357 +93.5767 51.3517 225.847 +93.5311 52.6447 231.533 +93.4624 53.9828 237.418 +93.2952 55.3244 243.319 +93.2347 56.7946 249.785 +93.0654 58.2686 256.267 +92.852 59.7882 262.951 +92.6847 61.4162 270.111 +92.2107 62.9217 276.732 +92.5572 65.0854 286.248 +92.1263 66.8099 293.832 +92.2482 69.0477 303.674 +92.2834 71.3546 313.82 +92.1171 73.6456 323.896 +92.1396 76.2412 335.312 +92.0397 78.9065 347.033 +91.8819 81.7061 359.346 +92.1409 85.093 374.242 +106.469 102.248 449.691 +102.441 102.45 450.58 +98.0927 102.319 450.004 +94.0419 102.483 450.726 +90.8823 103.663 455.912 +90.5711 108.347 476.516 +90.1755 113.388 498.683 +89.8684 119.068 523.667 +88.276 123.574 543.481 +89.6021 132.927 584.619 +89.2935 140.868 619.543 +89.0711 150.004 659.723 +88.8428 160.426 705.557 +87.7212 170.703 750.757 +86.6645 182.817 804.036 +78.5552 180.881 795.522 +71.9558 182.352 801.988 +63.7872 179.699 790.322 +57.4305 182.093 800.853 +49.4615 179.299 788.562 +42.9731 181.801 799.567 +35.3186 179.352 788.796 +28.5827 181.474 798.13 +21.13 178.907 786.84 +14.2778 181.358 797.617 +7.03708 178.784 786.3 +3.87468e-14 181.119 796.569 +-7.0397 178.851 786.592 +-14.2516 181.025 796.155 +-21.0986 178.641 785.671 +-28.478 180.809 795.206 +-35.1354 178.422 784.704 +-42.7061 180.672 794.601 +-49.1563 178.192 783.695 +-56.8725 180.324 793.072 +-63.1988 178.041 783.031 +-71.1714 180.364 793.246 +-77.3763 178.167 783.583 +-85.3893 180.127 792.205 +-91.321 177.708 781.565 +-99.6647 179.967 791.502 +-105.583 177.811 782.02 +-114.066 179.949 791.424 +-119.489 177.266 779.621 +-115.058 161.064 708.365 +-121.095 160.442 705.628 +-127.822 160.725 706.875 +-134.472 160.864 707.486 +-156.921 178.989 787.198 +-653.189 711.824 3130.62 +-681.264 710.62 3125.33 +-143.694 143.708 632.031 +-145.543 139.773 614.727 +-147.257 135.994 598.105 +-792.609 704.828 3099.86 +-145.396 124.649 548.211 +-145.922 120.744 531.035 +-151.658 121.247 533.249 +-110.034 85.0801 374.185 +-111.646 83.5672 367.531 +-114.23 82.839 364.329 +-117.546 82.6572 363.529 +-120.887 82.4898 362.793 +-125.208 82.9679 364.895 +-1066.79 686.914 3021.07 +-1093.78 684.823 3011.88 +-1120.7 682.681 3002.46 +-1147.52 680.486 2992.8 +-1174.26 678.24 2982.92 +-1200.91 675.943 2972.82 +-461.515 253.263 1113.86 +-445.367 238.39 1048.45 +-160.161 83.6565 367.924 +-162.769 82.9978 365.027 +-165.42 82.3759 362.292 +-168.697 82.0728 360.959 +-413.278 196.501 864.22 +-141.896 65.9585 290.088 +-142.777 64.9043 285.451 +-145.773 64.824 285.098 +-148.818 64.7568 284.803 +-417.975 178.02 782.938 +-420.083 175.169 770.398 +-422.238 172.42 758.31 +-423.433 169.367 744.881 +-425.602 166.785 733.526 +-135.2 51.9197 228.345 +-136.071 51.2169 225.254 +-428.821 158.233 695.915 +-468.315 169.439 745.201 +-435.541 154.538 679.663 +-438.168 152.493 670.668 +-441.321 150.672 662.661 +-443.978 148.722 654.083 +-446.18 146.662 645.025 +-448.424 144.661 636.222 +-450.258 142.57 627.03 +-453.413 140.936 619.84 +-455.827 139.103 611.778 +-458.014 137.235 603.565 +-459.787 135.281 594.972 +-465.946 134.633 592.12 +-479.108 135.962 597.968 +-468.007 130.45 573.721 +-470.669 128.867 566.761 +-473.942 127.472 560.628 +-476.756 125.973 554.034 +-479.682 124.523 547.658 +-482.203 122.988 540.906 +-484.773 121.486 534.299 +-487.93 120.148 528.414 +-490.546 118.692 522.013 +-493.699 117.382 516.25 +-495.959 115.876 509.624 +-498.695 114.497 503.561 +-501.781 113.211 497.908 +-504.026 111.75 491.482 +-507.549 110.584 486.353 +-506.559 108.458 477.003 +-525.896 110.649 486.636 +-2396.28 495.438 2178.95 +-383.089 77.8303 342.3 +-380.787 76.018 334.33 +-140.579 27.5756 121.279 +-142.036 27.3752 120.397 +-142.348 26.9555 118.551 +-141.795 26.3797 116.019 +-141.439 25.8505 113.691 +-141.674 25.4363 111.87 +-146.348 25.8099 113.513 +-150.825 26.1265 114.905 +-156.053 26.5489 116.763 +-156.213 26.0992 114.785 +-157.476 25.8356 113.626 +-160.024 25.7775 113.37 +-161.113 25.4797 112.061 +-384.264 59.6558 262.368 +-382.889 58.3448 256.603 +-382.435 57.1928 251.536 +-383.421 56.2671 247.465 +-381.26 54.8952 241.431 +-381.044 53.8218 236.71 +-381.537 52.8594 232.477 +-381.301 51.8062 227.846 +-381.182 50.781 223.337 +-380.409 49.6815 218.501 +-380.878 48.7552 214.427 +-379.649 47.6233 209.449 +-381.946 46.9407 206.447 +-379.913 45.7345 201.142 +-380.727 44.8832 197.398 +-381.06 43.981 193.43 +-380.192 42.9502 188.897 +-378.289 41.8173 183.914 +-380.549 41.1517 180.987 +-380.259 40.2134 176.86 +-379.652 39.2514 172.629 +-381.456 38.5428 169.512 +-381.04 37.614 165.428 +-379.479 36.5835 160.895 +-380.445 35.8046 157.47 +-379.714 34.872 153.368 +-380.424 34.0779 149.876 +-380.634 33.2431 146.204 +-379.687 32.3146 142.121 +-114.087 9.45733 41.5937 +-111.917 9.03148 39.7208 +-111.137 8.72578 38.3763 +-109.68 8.37328 36.826 +-108.868 8.07633 35.52 +-108.516 7.81742 34.3813 +-109.01 7.62051 33.5153 +-109.019 7.38986 32.5009 +-109.114 7.16604 31.5165 +-108.815 6.91798 30.4255 +-109.276 6.71904 29.5506 +-109.633 6.51311 28.6449 +-110.272 6.32294 27.8085 +-109.935 6.07717 26.7276 +-110.753 5.89528 25.9276 +-111.955 5.73065 25.2036 +-112.176 5.51382 24.2499 +-113.856 5.36571 23.5986 +-115.533 5.21153 22.9205 +-119.17 5.13586 22.5877 +-156.731 6.44045 28.3253 +-157.865 6.17162 27.143 +-161.948 6.00866 26.4263 +-163.66 5.74713 25.2761 +-3240.51 107.376 472.245 +-859.355 26.7774 117.768 +-381.706 11.1418 49.0019 +-380.046 10.3461 45.5024 +-380.439 9.61036 42.2667 +-403.676 9.40696 41.3721 +-403.932 8.62344 37.9262 +-403.957 7.8358 34.4621 +-403.253 7.03651 30.9468 +-403.515 6.25603 27.5142 +-403.746 5.47506 24.0795 +-143.803 1.67093 7.34881 +-403.715 3.90809 17.1879 +-403.654 3.12528 13.7451 +-144.45 0.838654 3.68843 +-144.878 0.560685 2.46591 +-145.594 0.281707 1.23896 +119.7 3.55271e-15 -1.13687e-13 +119.695 0.240777 1.01644 +120.482 0.484751 2.04638 +120.359 0.726477 3.06683 +120.327 0.968551 4.08875 +119.686 1.20452 5.08488 +120.135 1.45125 6.12648 +120.175 1.69425 7.15231 +120.306 1.93914 8.18609 +120.627 2.18829 9.2379 +120.54 2.43084 10.2618 +120.642 2.67764 11.3037 +120.238 2.91298 12.2972 +120.123 3.15474 13.3177 +120.892 3.42152 14.444 +120.659 3.66154 15.4572 +120.318 3.89769 16.4542 +119.968 4.13276 17.4465 +120.399 4.39556 18.5559 +120.031 4.62996 19.5454 +120.245 4.88722 20.6315 +120.154 5.13312 21.6695 +120.74 5.4098 22.8375 +120.433 5.64786 23.8425 +120.312 5.89468 24.8845 +120.768 6.1714 26.0526 +120.724 6.42445 27.1209 +120.379 6.66166 28.1223 +120.899 6.94817 29.3318 +120.631 7.19108 30.3572 +121.127 7.48119 31.5819 +120.936 7.73071 32.6353 +121.407 8.02451 33.8755 +121.003 8.26186 34.8775 +121.546 8.56559 36.1597 +121.217 8.80976 37.1905 +120.879 9.05327 38.2185 +121.385 9.36189 39.5213 +121.877 9.67323 40.8356 +121.412 9.91032 41.8365 +121.408 10.1857 42.9991 +121.486 10.4699 44.1988 +117.444 10.3917 43.8687 +114.814 10.4248 44.0084 +111.077 10.3445 43.6694 +108.371 10.347 43.68 +105.03 10.2764 43.3819 +102.527 10.2759 43.3796 +100.033 10.2661 43.3384 +97.0929 10.1993 43.0563 +96.2499 10.3455 43.6735 +97.0279 10.6677 45.0337 +96.5305 10.8523 45.8133 +96.8319 11.1284 46.9785 +98.278 11.5425 48.7268 +97.3938 11.6865 49.3347 +96.9476 11.882 50.1599 +96.4062 12.0655 50.9347 +96.7329 12.3596 52.176 +96.9576 12.6445 53.3788 +96.4752 12.839 54.2001 +96.761 13.1379 55.4618 +96.1742 13.3202 56.2312 +96.4336 13.6215 57.5033 +96.6775 13.9249 58.784 +96.5683 14.1807 59.8641 +96.8665 14.5 61.2118 +96.2304 14.6816 61.9783 +96.4171 14.9906 63.2828 +96.5052 15.2884 64.5401 +96.0046 15.4952 65.413 +96.0656 15.7947 66.6777 +96.1112 16.0958 67.9485 +96.2217 16.4119 69.283 +96.2356 16.7158 70.5659 +96.3131 17.035 71.9135 +96.2949 17.3416 73.2079 +96.3391 17.6638 74.568 +96.2107 17.9585 75.8119 +96.3759 18.3126 77.3068 +96.2152 18.6095 78.5601 +96.1153 18.9221 79.8796 +95.9991 19.2357 81.2035 +96.0161 19.5808 82.6604 +95.94 19.912 84.0586 +95.8461 20.2443 85.4617 +96.3924 20.7193 87.4669 +96.1121 21.0235 88.7509 +95.9599 21.3601 90.172 +95.8609 21.7139 91.6655 +95.6715 22.0526 93.0952 +96.1648 22.5566 95.2228 +95.8629 22.8818 96.5957 +95.5436 23.2075 97.9708 +95.9572 23.719 100.13 +95.6636 24.0641 101.587 +95.8864 24.547 103.625 +95.6823 24.9287 105.237 +95.063 25.2071 106.412 +95.274 25.7131 108.548 +95.9039 26.3451 111.216 +94.712 26.4837 111.801 +95.4679 27.1747 114.718 +94.9335 27.5101 116.134 +94.9966 28.0269 118.316 +94.7233 28.4547 120.122 +94.7859 28.9938 122.398 +94.7553 29.5169 124.606 +94.5159 29.9862 126.587 +95.1191 30.7381 129.761 +94.8695 31.2304 131.84 +94.8164 31.8 134.244 +94.6154 32.3334 136.496 +94.7124 32.9839 139.242 +94.8217 33.6565 142.081 +94.6185 34.2346 144.522 +94.3786 34.8145 146.97 +93.9975 35.3569 149.259 +94.149 36.1175 152.471 +94.3514 36.9213 155.864 +94.4 37.6887 159.103 +93.8559 38.2382 161.423 +94.247 39.1915 165.447 +94.048 39.9266 168.551 +94.2229 40.847 172.436 +94.3814 41.7914 176.423 +94.0668 42.5548 179.646 +94.0139 43.4644 183.485 +93.5046 44.1905 186.55 +93.7223 45.2923 191.202 +93.8635 46.3982 195.871 +93.5548 47.3193 199.759 +93.5901 48.4534 204.546 +93.5465 49.5909 209.349 +93.8145 50.9442 215.061 +93.6044 52.0893 219.896 +93.2396 53.1946 224.562 +93.5678 54.7528 231.14 +93.4265 56.1008 236.83 +93.5404 57.6684 243.448 +93.1321 58.9807 248.988 +93.0987 60.6 255.823 +92.8846 62.1796 262.492 +92.8116 63.9381 269.915 +92.2416 65.4376 276.245 +92.3468 67.5112 284.999 +92.331 69.6122 293.869 +92.2198 71.7623 302.945 +92.2558 74.1607 313.07 +92.1171 76.5646 323.218 +91.8808 79.0405 333.67 +92.1148 82.1011 346.591 +91.5916 84.6763 357.462 +91.6973 88.04 371.662 +106.649 106.481 449.509 +102.614 106.691 450.398 +98.2383 106.533 449.729 +94.1814 106.704 450.45 +90.8632 107.749 454.863 +90.5711 112.642 475.519 +90.1755 117.882 497.64 +89.9674 123.924 523.147 +89.9655 130.93 552.724 +89.6464 138.265 583.685 +89.1265 146.178 617.091 +89.058 155.927 658.247 +87.8312 164.885 696.065 +88.7626 179.576 758.081 +84.6471 185.639 783.677 +76.8683 184.013 776.811 +70.204 184.964 780.827 +62.5319 183.145 773.147 +56.0354 184.712 779.764 +48.5641 183.023 772.634 +41.942 184.472 778.751 +34.5771 182.546 770.62 +27.9475 184.474 778.761 +20.7295 182.473 770.312 +13.941 184.098 777.171 +6.90531 182.39 769.962 +4.05231e-14 183.988 776.706 +-6.90443 182.367 769.865 +-13.9235 183.867 776.198 +-20.6719 181.966 768.171 +-27.8254 183.668 775.357 +-34.4157 181.694 767.023 +-41.6647 183.252 773.601 +-48.2283 181.758 767.292 +-55.6587 183.47 774.522 +-61.9278 181.375 765.678 +-69.4893 183.081 772.878 +-75.6798 181.167 764.8 +-83.4973 183.117 773.031 +-89.5664 181.202 764.945 +-97.4711 182.982 772.461 +-103.573 181.339 765.526 +-111.352 182.631 770.977 +-117.302 180.918 763.747 +-115.214 167.675 707.843 +-121.145 166.869 704.44 +-128.048 167.391 706.642 +-134.891 167.761 708.206 +-147.782 175.245 739.797 +-653.189 740.038 3124.08 +-681.264 738.786 3118.79 +-143.694 149.404 630.709 +-145.543 145.313 613.441 +-145.577 139.77 590.041 +-792.609 732.765 3093.38 +-145.546 129.724 547.629 +-146.31 125.864 531.334 +-151.685 126.075 532.228 +-110.034 88.4524 373.403 +-111.675 86.9016 366.856 +-114.464 86.2988 364.311 +-117.786 86.1093 363.511 +-121.135 85.9348 362.775 +-125.367 86.3656 364.593 +-1066.79 714.14 3014.75 +-1093.78 711.967 3005.57 +-1120.7 709.74 2996.17 +-1147.52 707.458 2986.54 +-1174.26 705.123 2976.68 +-1200.91 702.735 2966.6 +-460.953 262.981 1110.18 +-445.367 247.839 1046.26 +-159.653 86.6964 365.99 +-162.769 86.2875 364.264 +-166.071 85.9779 362.957 +-169.319 85.6405 361.532 +-407.362 201.365 850.066 +-141.896 68.5729 289.481 +-142.821 67.4976 284.942 +-145.951 67.4759 284.85 +-148.228 67.0566 283.08 +-417.652 184.933 780.696 +-420.553 182.315 769.645 +-422.381 179.315 756.981 +-423.724 176.201 743.833 +-425.848 173.496 732.415 +-136.2 54.3769 229.552 +-134.904 52.7901 222.854 +-428.769 164.485 694.376 +-1711.86 643.911 2718.28 +-435.541 160.663 678.242 +-438.598 158.692 669.921 +-440.776 156.451 660.459 +-443.647 154.501 652.227 +-446.516 152.59 644.161 +-448.934 150.565 635.612 +-451.462 148.618 627.393 +-453.239 146.466 618.306 +-455.651 144.56 610.262 +-457.835 142.619 602.068 +-460.328 140.809 594.426 +-464.302 139.475 588.797 +-480.278 141.697 598.173 +-467.882 135.584 572.368 +-471.487 134.208 566.559 +-474.005 132.543 559.531 +-477.077 131.054 553.248 +-479.877 129.511 546.734 +-482.4 127.915 539.994 +-485.369 126.456 533.837 +-488.332 125.013 527.742 +-491.154 123.55 521.567 +-493.289 121.933 514.743 +-496.166 120.519 508.77 +-499.39 119.201 503.207 +-501.781 117.699 496.866 +-504.026 116.18 490.453 +-507.834 115.032 485.608 +-506.127 112.661 475.6 +-525.679 114.987 485.418 +-2396.28 515.076 2174.4 +-2415.69 510.235 2153.96 +-383.834 79.6633 336.299 +-140.504 28.6534 120.961 +-142.489 28.5511 120.529 +-143.184 28.1885 118.998 +-141.642 27.3955 115.651 +-141.439 26.8751 113.453 +-141.674 26.4445 111.636 +-146.583 26.876 113.457 +-151.85 27.3464 115.443 +-155.418 27.4889 116.045 +-156.612 27.2031 114.838 +-157.476 26.8596 113.388 +-159.619 26.7315 112.847 +-161.113 26.4897 111.826 +-383.035 61.8219 260.982 +-381.158 60.3833 254.909 +-379.45 58.9957 249.051 +-380.752 58.09 245.228 +-382.098 57.1966 241.456 +-380.538 55.8809 235.902 +-381.706 54.9789 232.094 +-381.13 53.8356 227.268 +-381.439 52.8295 223.02 +-381.357 51.7793 218.587 +-380.532 50.6416 213.784 +-380.694 49.6472 209.586 +-380.547 48.6226 205.261 +-380.791 47.6572 201.185 +-380.021 46.5757 196.62 +-377.334 45.2773 191.139 +-377.876 44.3804 187.352 +-377.931 43.4335 183.355 +-380.28 42.7526 180.48 +-378.905 41.6586 175.862 +-378.837 40.7193 171.897 +-380.728 39.9942 168.836 +-379.761 38.9735 164.527 +-380.855 38.1713 161.141 +-379.984 37.1788 156.951 +-380.176 36.2983 153.233 +-379.311 35.3251 149.125 +-379.703 34.4761 145.541 +-379.5 33.579 141.754 +-114.368 9.85639 41.6088 +-111.917 9.38946 39.6377 +-110.101 8.987 37.9387 +-109.68 8.70516 36.7489 +-108.962 8.40376 35.4765 +-108.611 8.13439 34.3394 +-108.342 7.87404 33.2403 +-109.019 7.68276 32.4329 +-108.251 7.39115 31.2018 +-109.295 7.22397 30.4961 +-109.372 6.99153 29.5148 +-109.536 6.76529 28.5597 +-109.497 6.52739 27.5554 +-110.129 6.32918 26.7187 +-110.753 6.12894 25.8734 +-111.176 5.9163 24.9757 +-112.957 5.77228 24.3678 +-113.856 5.57839 23.5492 +-115.533 5.41809 22.8725 +-118.875 5.32624 22.4848 +-157.911 6.74614 28.4789 +-160.425 6.52031 27.5256 +-160.173 6.17834 26.0819 +-161.882 5.91001 24.9492 +-3240.51 111.632 471.257 +-860.048 27.8614 117.617 +-380.913 11.5593 48.7978 +-380.046 10.7562 45.4072 +-379.942 9.97823 42.1232 +-402.98 9.76294 41.2143 +-404.131 8.96966 37.8655 +-405.152 8.17046 34.4917 +-403.652 7.32265 30.9126 +-403.515 6.50399 27.4567 +-403.746 5.69207 24.0291 +-146.499 1.76973 7.47093 +-403.715 4.06299 17.1519 +-403.254 3.24592 13.7027 +-146.45 0.883961 3.73165 +-145.178 0.584116 2.46585 +-145.294 0.292271 1.23383 +119.7 3.55271e-15 -1.13687e-13 +119.695 0.249937 1.01423 +119.682 0.499852 2.02837 +120.459 0.754742 3.06269 +120.327 1.0054 4.07985 +120.485 1.25869 5.1077 +120.135 1.50646 6.11314 +120.175 1.75871 7.13673 +120.206 2.01124 8.1615 +120.627 2.27154 9.21779 +120.54 2.52332 10.2395 +120.642 2.77951 11.2791 +121.133 3.04632 12.3618 +120.123 3.27475 13.2887 +120.892 3.55169 14.4125 +120.659 3.80084 15.4236 +120.318 4.04598 16.4183 +120.759 4.31827 17.5233 +120.3 4.55902 18.5002 +121.017 4.84558 19.6631 +120.344 5.07731 20.6034 +120.154 5.3284 21.6223 +120.74 5.6156 22.7878 +120.433 5.86272 23.7906 +121.095 6.15875 24.9918 +120.865 6.41135 26.0169 +120.627 6.66347 27.04 +120.477 6.92069 28.0837 +120.899 7.21251 29.2679 +120.728 7.47066 30.3155 +121.127 7.7658 31.5131 +120.936 8.02481 32.5642 +121.407 8.32979 33.8018 +121.099 8.58296 34.8291 +120.781 8.83549 35.8539 +120.931 9.12334 37.0219 +121.64 9.45683 38.3752 +121.385 9.71805 39.4352 +121.121 9.97893 40.4939 +121.224 10.2714 41.6807 +121.408 10.5732 42.9054 +121.58 10.8766 44.1365 +117.724 10.8128 43.8775 +114.814 10.8214 43.9126 +111.911 10.8187 43.9016 +108.463 10.7498 43.622 +105.858 10.7515 43.6289 +102.527 10.6668 43.2852 +99.9419 10.6469 43.2045 +97.1839 10.5972 43.0027 +95.978 10.7087 43.4553 +97.8402 11.1662 45.3118 +96.6204 11.2757 45.756 +97.5478 11.6372 47.2229 +97.5652 11.8947 48.268 +97.2164 12.109 49.1376 +96.9476 12.334 50.0507 +96.4062 12.5245 50.8238 +96.7329 12.8298 52.0624 +96.3484 13.043 52.9279 +96.4752 13.3275 54.0821 +96.761 13.6377 55.341 +96.8599 13.9255 56.5088 +96.4336 14.1397 57.378 +96.6775 14.4546 58.656 +96.0623 14.6431 59.4207 +96.8665 15.0516 61.0785 +96.3138 15.2533 61.897 +96.4171 15.5609 63.145 +95.8459 15.7616 63.9596 +95.9227 16.0709 65.2148 +96.0656 16.3956 66.5325 +96.1112 16.7081 67.8005 +96.1413 17.022 69.0743 +96.3154 17.3661 70.4707 +96.2338 17.6685 71.6978 +96.2949 18.0014 73.0484 +95.6347 18.2018 73.8616 +96.2107 18.6417 75.6468 +96.2987 18.9941 77.0767 +96.2918 19.3328 78.4514 +96.1914 19.6575 79.7688 +96.0745 19.9831 81.0904 +96.0161 20.3257 82.4804 +95.94 20.6695 83.8755 +96.5096 21.16 85.866 +95.6611 21.3444 86.6142 +96.1846 21.8398 88.6245 +96.0319 22.1894 90.0431 +95.8609 22.54 91.4659 +95.7423 22.9085 92.9612 +96.0947 23.3976 94.9461 +95.7934 23.7351 96.3156 +95.6125 24.1079 97.8283 +95.9572 24.6214 99.912 +95.7311 24.9973 101.437 +95.7526 25.4452 103.255 +95.4835 25.8235 104.79 +95.719 26.3468 106.914 +95.339 26.7095 108.385 +95.3897 27.2007 110.379 +95.4117 27.6943 112.382 +95.4679 28.2085 114.469 +94.9957 28.5753 115.957 +95.0581 29.112 118.135 +94.9059 29.5942 120.091 +94.846 30.116 122.209 +94.8148 30.6592 124.413 +95.1624 31.3399 127.175 +95.1191 31.9075 129.478 +94.5828 32.3204 131.154 +94.8164 33.0098 133.952 +94.6714 33.5833 136.279 +94.6572 34.2186 138.857 +94.8761 34.9567 141.852 +94.7259 35.5774 144.371 +94.3256 36.1189 146.568 +94.4677 36.8855 149.679 +94.6125 37.6763 152.888 +93.9454 38.1611 154.855 +94.35 39.1017 158.672 +94.3484 39.9011 161.916 +94.247 40.6825 165.087 +94.048 41.4456 168.184 +94.2229 42.401 172.061 +93.9658 43.1903 175.264 +94.0214 44.1522 179.167 +94.0139 45.1179 183.086 +93.8991 46.0652 186.93 +93.7223 47.0153 190.785 +93.8213 48.1416 195.356 +93.8866 49.2937 200.031 +93.5494 50.2747 204.012 +93.5465 51.4775 208.893 +93.4629 52.6842 213.789 +93.6044 54.071 219.417 +93.2396 55.2183 224.073 +93.5311 56.8136 230.546 +93.4265 58.2351 236.314 +93.2252 59.6607 242.099 +93.0637 61.1796 248.263 +92.7315 62.6573 254.259 +92.7869 64.4774 261.645 +92.7164 66.3024 269.051 +92.2725 67.9498 275.736 +92.1663 69.9427 283.823 +92.2725 72.2148 293.043 +92.4186 74.653 302.937 +92.2558 76.9821 312.388 +92.1171 79.4774 322.514 +92.1396 82.2786 333.881 +92.0898 85.2013 345.742 +91.7852 88.0833 357.437 +91.8374 91.5289 371.418 +106.874 110.765 449.476 +102.614 110.75 449.417 +98.3838 110.749 449.414 +94.2013 110.786 449.565 +90.9586 111.966 454.349 +90.4253 116.739 473.719 +90.1929 122.39 496.651 +89.9509 128.615 521.912 +89.8247 135.699 550.657 +89.6168 143.477 582.222 +89.1265 151.739 615.747 +89.1755 162.072 657.68 +87.2097 169.947 689.635 +88.5136 185.884 754.308 +83.2569 189.537 769.127 +75.6702 188.036 763.038 +68.9925 188.687 765.681 +61.7473 187.727 761.784 +55.0379 188.326 764.215 +47.9353 187.526 760.969 +41.2669 188.408 764.546 +34.1016 186.885 758.368 +27.4345 187.977 762.801 +20.4285 186.664 757.472 +13.7036 187.848 762.275 +6.80495 186.577 757.12 +3.5083e-14 187.637 761.421 +-6.80408 186.554 757.023 +-13.6705 187.394 760.432 +-20.3866 186.281 755.919 +-27.3263 187.236 759.793 +-33.9315 185.953 754.585 +-40.9791 187.094 759.214 +-47.5263 185.926 754.477 +-54.6472 186.989 758.792 +-61.0726 185.675 753.459 +-68.2604 186.685 757.557 +-74.683 185.583 753.083 +-81.9085 186.467 756.67 +-88.2985 185.433 752.475 +-95.6431 186.381 756.323 +-101.85 185.107 751.152 +-109.432 186.309 756.03 +-115.483 184.89 750.272 +-115.308 174.196 706.878 +-121.475 173.689 704.82 +-128.152 173.9 705.677 +-134.945 174.214 706.951 +-145.435 179.023 726.463 +-155.946 183.402 744.232 +-681.264 766.892 3112 +-142.547 153.85 624.312 +-144.576 149.839 608.038 +-145.577 145.088 588.756 +-148.25 142.271 577.325 +-145.396 134.52 545.872 +-146.362 130.698 530.364 +-152.032 131.171 532.285 +-110.007 91.7945 372.496 +-111.902 90.3911 366.802 +-114.434 89.5592 363.426 +-117.817 89.408 362.812 +-121.104 89.1814 361.892 +-125.557 89.7874 364.352 +-1066.79 741.309 3008.19 +-1093.78 739.053 2999.03 +-1120.7 736.741 2989.65 +-1147.52 734.372 2980.04 +-1174.26 731.949 2970.2 +-1200.91 729.47 2960.14 +-459.83 272.321 1105.06 +-444.793 256.938 1042.64 +-160.043 90.215 366.087 +-162.929 89.658 363.827 +-166.193 89.3144 362.432 +-169.444 88.9639 361.01 +-406.517 208.592 846.454 +-141.896 71.1816 288.851 +-142.865 70.087 284.408 +-146.174 70.1499 284.664 +-148.409 69.6929 282.809 +-418.021 192.138 779.686 +-420.318 189.146 767.541 +-422.667 186.263 755.844 +-424.354 183.176 743.318 +-426.143 180.221 731.327 +-427.65 177.232 719.196 +-429.733 174.559 708.35 +-135.507 53.9609 218.97 +-1711.86 668.407 2712.36 +-436.071 166.978 677.588 +-438.383 164.649 668.135 +-441.158 162.543 659.59 +-444.144 160.558 651.536 +-447.019 158.574 643.482 +-449.273 156.412 634.709 +-451.806 154.39 626.503 +-453.239 152.038 616.96 +-456.239 150.253 609.718 +-458.014 148.102 600.99 +-460.509 146.223 593.365 +-462.963 144.364 585.819 +-480.093 147.031 596.642 +-468.754 141.004 572.186 +-471.676 139.369 565.552 +-474.324 137.677 558.686 +-477.27 136.095 552.266 +-479.682 134.384 545.322 +-482.4 132.781 538.818 +-485.568 131.321 532.893 +-488.332 129.769 526.593 +-490.546 128.091 519.787 +-493.903 126.73 514.261 +-496.372 125.155 507.873 +-499.182 123.684 501.903 +-501.781 122.176 495.784 +-504.521 120.718 489.866 +-2336.97 549.496 2229.82 +-507.854 117.346 476.183 +-2376.69 539.653 2189.88 +-2396.28 534.671 2169.66 +-2415.69 529.646 2149.27 +-2434.91 524.583 2128.73 +-140.804 29.8069 120.954 +-142.338 29.6059 120.139 +-142.576 29.1367 118.235 +-141.718 28.4533 115.462 +-141.362 27.8824 113.145 +-141.907 27.4957 111.576 +-146.113 27.809 112.847 +-153.347 28.6667 116.328 +-155.815 28.6076 116.088 +-157.171 28.3387 114.997 +-158.199 28.0095 113.661 +-160.024 27.8188 112.887 +-160.951 27.4697 111.47 +-2683.95 449.669 1824.73 +-381.488 62.7346 254.573 +-382.767 61.7751 250.68 +-380.585 60.2737 244.587 +-381.595 59.2943 240.613 +-381.044 58.0839 235.701 +-381.537 57.0452 231.486 +-380.107 55.7337 226.164 +-381.697 54.8762 222.684 +-381.357 53.7492 218.111 +-381.311 52.6758 213.755 +-379.04 51.312 208.221 +-380.285 50.4374 204.672 +-380.44 49.4246 200.562 +-379.932 48.3364 196.146 +-381.149 47.4748 192.65 +-380.103 46.3404 188.046 +-378.289 45.1287 183.129 +-381.089 44.4733 180.47 +-379.447 43.3052 175.73 +-380.74 42.4809 172.385 +-380.364 41.476 168.307 +-379.761 40.4562 164.169 +-380.305 39.5663 160.558 +-379.616 38.5559 156.457 +-379.253 37.5878 152.529 +-379.775 36.7137 148.982 +-379.703 35.7877 145.224 +-381.554 35.045 142.211 +-114.274 10.223 41.4842 +-112.105 9.76303 39.6178 +-110.101 9.3289 37.8561 +-109.68 9.03634 36.6689 +-108.962 8.72346 35.3993 +-108.611 8.44385 34.2646 +-109.01 8.22396 33.3723 +-109.401 8.00302 32.4757 +-108.73 7.70632 31.2718 +-109.392 7.50538 30.4564 +-109.372 7.25751 29.4505 +-109.826 7.04124 28.5729 +-110.175 6.81764 27.6655 +-110.905 6.61629 26.8485 +-110.753 6.36211 25.817 +-111.955 6.18445 25.0961 +-112.957 5.99188 24.3147 +-113.759 5.78563 23.4777 +-116.219 5.6576 22.9582 +-118.384 5.50604 22.3432 +-158.402 7.02458 28.5053 +-160.721 6.78084 27.5162 +-161.06 6.44894 26.1694 +-164.154 6.22094 25.2442 +-3240.51 115.879 470.23 +-860.048 28.9213 117.361 +-379.624 11.9585 48.5267 +-380.641 11.1828 45.3793 +-379.246 10.3389 41.9546 +-404.87 10.1819 41.3174 +-405.126 9.33382 37.8761 +-403.558 8.44794 34.2812 +-402.655 7.58245 30.7691 +-403.515 6.75143 27.3969 +-403.147 5.89986 23.9413 +-142.804 1.79072 7.26665 +-403.216 4.21234 17.0934 +-403.654 3.37276 13.6864 +-146.25 0.916339 3.71845 +-145.778 0.608843 2.47065 +-145.194 0.30318 1.23028 +119.8 1.77636e-15 -1.13687e-13 +119.795 0.25929 1.01278 +120.582 0.522023 2.039 +120.459 0.782336 3.05576 +120.427 1.04302 4.07399 +120.585 1.30579 5.10036 +120.135 1.56154 6.0993 +120.175 1.82301 7.12058 +120.306 2.0865 8.14978 +120.826 2.35849 9.21212 +120.54 2.61557 10.2163 +120.742 2.88351 11.2628 +120.238 3.13436 12.2426 +120.421 3.40289 13.2915 +120.892 3.68154 14.3799 +120.659 3.9398 15.3887 +120.318 4.1939 16.3812 +120.858 4.47982 17.4979 +120.399 4.7296 18.4736 +121.116 5.02683 19.6345 +120.344 5.26294 20.5568 +121.039 5.56389 21.7323 +119.955 5.78307 22.5884 +120.433 6.07707 23.7367 +120.312 6.34265 24.7741 +120.084 6.60282 25.7903 +120.627 6.9071 26.9788 +120.477 7.17372 28.0202 +120.996 7.4822 29.2251 +120.728 7.74379 30.2469 +121.127 8.04973 31.4418 +120.936 8.31821 32.4905 +120.734 8.58649 33.5384 +121.003 8.88972 34.7228 +120.781 9.15853 35.7727 +121.217 9.47927 37.0255 +121.64 9.80258 38.2884 +121.385 10.0733 39.346 +121.215 10.3518 40.4337 +121.412 10.6635 41.6509 +121.314 10.9513 42.7752 +121.674 11.2829 44.0705 +117.164 11.1548 43.5699 +114.814 11.217 43.8132 +111.077 11.1306 43.4757 +108.556 11.1523 43.5604 +105.122 11.067 43.2273 +102.619 11.0667 43.2258 +100.033 11.0463 43.1461 +98.2758 11.1081 43.3875 +96.6124 11.1736 43.6435 +97.0279 11.4784 44.8339 +97.3394 11.7749 45.9922 +97.6373 12.0737 47.1592 +97.9216 12.3746 48.3347 +97.3051 12.5632 49.0711 +96.9476 12.785 49.9374 +97.1972 13.089 51.1249 +96.8204 13.3109 51.9915 +96.2613 13.5077 52.7603 +96.4752 13.8147 53.9596 +96.8471 14.1489 55.2648 +96.9456 14.4474 56.4307 +96.4336 14.6567 57.2482 +96.6775 14.9831 58.5233 +96.0623 15.1785 59.2862 +96.2794 15.5074 60.571 +96.4806 15.8384 61.8638 +96.4171 16.1298 63.0021 +96.5876 16.4643 64.3087 +95.9227 16.6585 65.0672 +96.147 17.0095 66.4382 +96.1112 17.319 67.6471 +96.2217 17.6591 68.9756 +96.3154 18.001 70.3112 +96.3131 18.3296 71.5945 +95.6645 18.5374 72.406 +96.3391 19.0062 74.2372 +95.589 19.1984 74.9878 +96.3759 19.7043 76.9639 +96.2918 20.0397 78.2738 +96.1153 20.36 79.5253 +96.0745 20.7137 80.9068 +96.0161 21.0688 82.2937 +95.94 21.4252 83.6857 +95.9198 21.7996 85.148 +96.4656 22.3108 87.1449 +95.6043 22.5017 87.8904 +95.3845 22.8456 89.2337 +95.8609 23.3641 91.2588 +95.7423 23.746 92.7508 +96.1648 24.2708 94.8004 +95.8629 24.6207 96.1672 +95.6125 24.9893 97.6069 +96.0254 25.5399 99.7575 +95.7311 25.9112 101.208 +95.9533 26.4308 103.237 +95.6161 26.8046 104.697 +95.8502 27.3475 106.818 +95.2091 27.6483 107.993 +94.9397 28.0623 109.61 +95.4117 28.7069 112.128 +95.405 29.2205 114.134 +95.556 29.7947 116.377 +94.9966 30.1568 117.791 +94.9059 30.6762 119.819 +94.9664 31.2568 122.087 +94.7553 31.76 124.053 +95.0449 32.4455 126.731 +95.1191 33.074 129.185 +94.9843 33.6445 131.414 +94.8164 34.2166 133.648 +94.6714 34.8112 135.971 +94.602 35.4491 138.462 +94.4404 36.0684 140.881 +94.7259 36.8782 144.044 +94.2726 37.4183 146.154 +94.1542 38.1073 148.845 +94.767 39.1175 152.791 +94.3514 39.7272 155.172 +93.9 40.338 157.558 +94.3484 41.3599 161.55 +94.247 42.1699 164.714 +94.4774 43.157 168.569 +94.2699 43.973 171.756 +94.012 44.7912 174.952 +94.1122 45.8109 178.935 +93.6569 46.5899 181.978 +93.9429 47.7717 186.594 +93.7653 48.7566 190.441 +93.8213 49.9017 194.913 +93.928 51.1185 199.666 +93.5901 52.1356 203.639 +93.5465 53.3596 208.42 +93.4629 54.6104 213.305 +93.5661 56.0251 218.831 +93.5018 57.3981 224.194 +93.5678 58.9138 230.114 +93.4624 60.3875 235.87 +93.5754 62.0743 242.459 +92.7559 63.2068 246.882 +93.0987 65.2053 254.689 +92.5265 66.647 260.32 +92.8116 68.7971 268.718 +92.2416 70.4105 275.02 +92.5873 72.8309 284.474 +92.1848 74.7839 292.102 +92.1914 77.1921 301.508 +91.9802 79.5582 310.75 +92.1171 82.3832 321.785 +92.1396 85.2868 333.126 +91.8644 88.1001 344.114 +91.7126 91.2316 356.346 +91.6506 94.6823 369.824 +106.852 114.79 448.365 +102.83 115.041 449.345 +98.4046 114.823 448.492 +94.2013 114.837 448.547 +90.9396 116.035 453.226 +90.6075 121.251 473.599 +90.1929 126.865 495.527 +89.9674 133.342 520.826 +89.8247 140.66 549.411 +89.6612 148.797 581.192 +89.2656 157.532 615.312 +89.0189 167.703 655.038 +86.6735 175.077 683.843 +88.1061 191.793 749.135 +82.4625 194.591 760.064 +74.9226 192.985 753.789 +68.2778 193.56 756.035 +61.151 192.711 752.72 +54.5844 193.603 756.204 +47.4225 192.303 751.125 +40.843 193.29 754.98 +33.7876 191.934 749.684 +27.1727 192.991 753.813 +20.261 191.902 749.56 +13.5658 192.757 752.899 +6.73514 191.415 747.657 +4.07452e-14 192.34 751.269 +-6.7299 191.266 747.076 +-13.5343 192.311 751.155 +-20.1641 190.985 745.976 +-27.0646 192.223 750.812 +-33.6393 191.091 746.393 +-40.5708 192.002 749.95 +-47.0806 190.917 745.711 +-54.0334 191.649 748.569 +-60.5861 190.931 745.767 +-67.5544 191.509 748.025 +-73.9833 190.565 744.339 +-81.0827 191.336 747.347 +-87.4268 190.315 743.36 +-94.6925 191.275 747.111 +-101.027 190.325 743.401 +-108.374 191.254 747.028 +-114.464 189.957 741.963 +-115.402 180.712 705.852 +-121.541 180.137 703.608 +-128.361 180.551 705.224 +-135.31 181.072 707.256 +-144.595 184.497 720.634 +-152.217 185.562 724.796 +-681.264 794.93 3104.96 +-139.69 156.278 610.413 +-143.384 154.036 601.658 +-145.717 150.537 587.989 +-147.33 146.558 572.447 +-145.621 139.654 545.482 +-146.569 135.668 529.913 +-151.872 135.824 530.52 +-110.007 95.1505 371.653 +-111.902 93.6959 365.971 +-114.434 92.8335 362.603 +-117.786 92.6532 361.899 +-121.413 92.6778 361.995 +-125.843 93.2817 364.354 +-1066.79 768.412 3001.38 +-1093.78 766.073 2992.24 +-1120.7 763.677 2982.88 +-1147.52 761.222 2973.29 +-1174.26 758.709 2963.48 +-1200.91 756.14 2953.44 +-459.005 281.771 1100.58 +-444.793 266.332 1040.28 +-160.434 93.7415 366.15 +-162.769 92.8449 362.648 +-166.03 92.489 361.257 +-170.232 92.6453 361.868 +-142.507 75.7968 296.058 +-141.983 73.829 288.372 +-142.865 72.6494 283.765 +-146.353 72.8034 284.366 +-149.908 72.9701 285.017 +-417.79 199.053 777.491 +-420.177 195.995 765.547 +-422.763 193.117 754.303 +-424.354 189.873 741.635 +-426.143 186.81 729.672 +-427.75 183.755 717.736 +-429.631 180.898 706.58 +-135.197 55.8061 217.976 +-135.17 54.7078 213.686 +-435.806 172.978 675.644 +-439.404 171.066 668.175 +-441.539 168.632 658.666 +-443.978 166.367 649.819 +-446.683 164.248 641.543 +-449.84 162.335 634.07 +-451.806 160.034 625.085 +-453.994 157.859 616.589 +-456.239 155.747 608.338 +-458.549 153.697 600.331 +-460.509 151.569 592.022 +-462.963 149.642 584.493 +-480.093 152.406 595.291 +-468.567 146.101 570.663 +-471.172 144.31 563.669 +-475.087 142.941 558.319 +-477.591 141.166 551.387 +-480.462 139.523 544.971 +-482.991 137.804 538.257 +-485.568 136.122 531.687 +-488.332 134.513 525.401 +-491.154 132.939 519.254 +-493.903 131.363 513.097 +-496.785 129.839 507.146 +-499.807 128.367 501.394 +-501.781 126.643 494.662 +-504.945 125.237 489.168 +-508.334 123.896 483.93 +-2356.92 564.507 2204.93 +-2376.69 559.383 2184.92 +-2396.28 554.219 2164.75 +-384.195 87.3156 341.05 +-2434.91 543.762 2123.91 +-140.579 30.8473 120.488 +-142.036 30.6231 119.612 +-142.728 30.2339 118.092 +-141.642 29.4775 115.137 +-141.362 28.9018 112.889 +-142.218 28.5635 111.568 +-146.504 28.9031 112.894 +-154.371 29.9132 116.84 +-155.894 29.6687 115.884 +-155.894 29.1359 113.804 +-158.119 29.0189 113.346 +-159.134 28.6754 112.005 +-161.276 28.5315 111.443 +-382.298 66.3921 259.324 +-383.466 65.3655 255.314 +-381.44 63.8119 249.246 +-381.086 62.5594 244.354 +-382.098 61.5433 240.385 +-381.297 60.2474 235.323 +-382.385 59.2622 231.475 +-382.068 58.0695 226.817 +-381.439 56.8443 222.031 +-380.582 55.6012 217.175 +-380.185 54.4405 212.642 +-381.216 53.4935 208.943 +-381.247 52.4139 204.726 +-380.791 51.279 200.293 +-380.639 50.1966 196.065 +-378.133 48.8211 190.693 +-377.43 47.6968 186.301 +-378.289 46.7786 182.715 +-379.74 45.9364 179.425 +-380.259 44.9845 175.707 +-379.199 43.8557 171.298 +-381.183 43.0849 168.287 +-380.766 42.0464 164.231 +-379.938 40.9735 160.04 +-379.984 40.0042 156.254 +-380.823 39.1232 152.813 +-378.94 37.9724 148.318 +-380.727 37.1961 145.286 +-380.341 36.2107 141.437 +-114.368 10.6054 41.4242 +-112.105 10.12 39.5281 +-110.289 9.68654 37.8351 +-109.68 9.36671 36.5859 +-109.152 9.05815 35.3807 +-108.801 8.76789 34.2469 +-108.914 8.51717 33.2676 +-108.541 8.23036 32.1474 +-108.73 7.98807 31.201 +-108.719 7.73194 30.2005 +-109.468 7.52948 29.4097 +-109.633 7.28585 28.4581 +-109.497 7.02344 27.4332 +-110.032 6.80417 26.5767 +-110.753 6.59471 25.7586 +-111.955 6.41056 25.0393 +-112.86 6.20557 24.2386 +-114.541 6.03843 23.5858 +-116.219 5.86444 22.9062 +-119.268 5.74993 22.4589 +-158.206 7.27238 28.4055 +-157.865 6.90385 26.9661 +-161.06 6.68472 26.1102 +-163.857 6.43675 25.1416 +-3240.51 120.116 469.166 +-860.246 29.9857 117.122 +-380.318 12.4183 48.5054 +-381.038 11.6038 45.3238 +-379.644 10.7281 41.9034 +-406.063 10.5853 41.3455 +-403.633 9.63944 37.6511 +-403.26 8.75031 34.1783 +-404.549 7.89665 30.8439 +-403.515 6.99827 27.3349 +-402.747 6.10951 23.8634 +-143.603 1.86658 7.29076 +-403.216 4.36635 17.0547 +-403.654 3.49607 13.6555 +-145.85 0.947244 3.69989 +-145.078 0.628072 2.45322 +-146.094 0.316214 1.23511 +119.9 5.32907e-15 2.84217e-14 +119.895 0.26864 1.01124 +119.882 0.537259 2.02239 +120.559 0.810544 3.05111 +120.527 1.08063 4.06779 +120.685 1.35287 5.09258 +120.235 1.61785 6.09002 +120.275 1.88874 7.10975 +120.406 2.16173 8.13737 +120.826 2.4415 9.19047 +120.54 2.70763 10.1923 +120.841 2.98746 11.2456 +121.431 3.27687 12.3351 +120.421 3.52266 13.2603 +120.892 3.81112 14.3461 +120.758 4.08184 15.3652 +120.516 4.34868 16.3696 +120.858 4.63749 17.4568 +120.399 4.89607 18.4302 +120.228 5.16563 19.4449 +120.442 5.45265 20.5253 +120.252 5.72229 21.5403 +120.838 6.0307 22.7012 +121.315 6.33705 23.8544 +120.41 6.57123 24.7359 +120.084 6.83522 25.7297 +120.724 7.15598 26.9371 +120.477 7.42621 27.9543 +121.093 7.75177 29.1798 +120.825 8.02277 30.1999 +121.127 8.33305 31.3679 +121.032 8.61784 32.4399 +120.831 8.89577 33.4861 +121.195 9.21719 34.6961 +120.877 9.4884 35.717 +121.217 9.8129 36.9385 +121.735 10.1555 38.2283 +121.48 10.436 39.2841 +122.066 10.7914 40.6218 +121.601 11.0559 41.6176 +122.254 11.4245 43.0052 +121.861 11.698 44.0347 +118.285 11.6578 43.8831 +114.907 11.6212 43.7456 +112.004 11.6186 43.7355 +108.556 11.5448 43.458 +105.214 11.4666 43.1635 +102.619 11.4562 43.1242 +100.033 11.4351 43.0447 +98.0938 11.4777 43.2053 +96.7937 11.5886 43.6226 +97.0279 11.8824 44.7285 +97.4293 12.2006 45.9264 +96.9214 12.407 46.7033 +98.0107 12.8218 48.2649 +97.926 13.0883 49.2681 +96.9476 13.2349 49.82 +97.2851 13.5619 51.0508 +96.8204 13.7794 51.8693 +97.0447 14.0969 53.0647 +97.3413 14.4293 54.3161 +96.8471 14.6469 55.135 +97.0313 14.9691 56.3479 +96.4336 15.1725 57.1136 +96.6775 15.5105 58.3857 +96.1466 15.7265 59.1989 +97.0342 16.179 60.9023 +95.7301 16.2683 61.2384 +96.4171 16.6975 62.854 +96.0107 16.942 63.7743 +96.0046 17.2596 64.9697 +96.147 17.6082 66.282 +96.1921 17.9437 67.5449 +96.3021 18.2959 68.871 +96.2356 18.6192 70.0877 +96.3131 18.9747 71.4262 +96.2949 19.3163 72.7118 +96.3391 19.6752 74.0627 +95.6667 19.8902 74.8724 +96.3759 20.3978 76.783 +96.2152 20.7285 78.0277 +96.1153 21.0767 79.3384 +96.15 21.4596 80.7801 +96.0161 21.8104 82.1003 +95.94 22.1793 83.489 +95.8461 22.5495 84.8826 +95.7342 22.921 86.281 +96.1846 23.4351 88.216 +96.0319 23.8102 89.6282 +95.9322 24.2044 91.1121 +95.6715 24.5636 92.4644 +95.5339 24.9602 93.9571 +95.9323 25.5057 96.0107 +95.6813 25.8873 97.4471 +96.0254 26.4388 99.5231 +95.6636 26.8042 100.898 +95.8864 27.3421 102.923 +95.6823 27.7672 104.524 +95.8502 28.31 106.567 +95.339 28.6605 107.886 +95.3897 29.1876 109.87 +95.4117 29.7173 111.864 +95.5308 30.289 114.016 +94.8712 30.6223 115.271 +95.0581 31.2385 117.59 +94.9668 31.7761 119.614 +94.9062 32.3364 121.723 +94.8148 32.8986 123.84 +94.8098 33.5043 126.12 +94.7127 34.0918 128.331 +95.1563 34.8915 131.341 +94.873 35.442 133.414 +94.7832 36.079 135.811 +94.602 36.6968 138.137 +94.4949 37.3594 140.631 +94.7259 38.1761 143.706 +94.3256 38.7572 145.893 +93.9975 39.3829 148.248 +94.3035 40.2961 151.686 +94.3514 41.1254 154.808 +94.4 41.9802 158.025 +94.3976 42.838 161.254 +94.2955 43.6768 164.411 +94.048 44.4729 167.408 +94.2229 45.4981 171.268 +94.012 46.3677 174.541 +94.0668 47.4004 178.428 +94.0139 48.4135 182.242 +93.8553 49.4069 185.981 +93.7653 50.4727 189.993 +93.8213 51.6581 194.455 +93.5963 52.7308 198.493 +93.5494 53.947 203.071 +93.5864 55.2613 208.019 +93.4629 56.5325 212.804 +93.6044 58.0206 218.406 +93.5018 59.4183 223.667 +93.5311 60.9635 229.483 +93.4265 62.4888 235.225 +93.5404 64.235 241.798 +93.0979 65.6725 247.21 +93.0654 67.4759 253.998 +92.9823 69.3327 260.988 +92.7164 71.1454 267.811 +92.4579 73.0597 275.017 +92.2565 75.125 282.791 +92.4479 77.6371 292.247 +92.3334 80.032 301.263 +92.2007 82.5559 310.763 +92.1438 85.3077 321.122 +92.1396 88.2886 332.343 +92.1148 91.4497 344.242 +91.7368 94.4675 355.602 +91.4872 97.8402 368.298 +107.077 119.081 448.252 +103.004 119.291 449.044 +98.6333 119.14 448.478 +94.4007 119.13 448.44 +90.9777 120.169 452.35 +90.5711 125.468 472.296 +90.0713 131.153 493.696 +89.9674 138.035 519.602 +89.8403 145.636 548.214 +89.6464 154.008 579.73 +89.0708 162.721 612.527 +88.5098 172.613 649.762 +86.8197 181.545 683.387 +86.7703 195.534 736.043 +81.3127 198.632 747.705 +73.1974 195.177 734.701 +67.3191 197.559 743.667 +59.6995 194.759 733.126 +53.6985 197.165 742.183 +46.3725 194.663 732.767 +40.1888 196.888 741.142 +33.033 194.252 731.217 +26.7365 196.576 739.967 +19.7976 194.113 730.697 +13.3598 196.512 739.726 +6.58766 193.813 729.566 +4.26326e-14 196.311 738.969 +-6.58243 193.659 728.986 +-13.3336 196.127 738.277 +-19.7165 193.318 727.702 +-26.6527 195.961 737.65 +-32.8541 193.2 727.258 +-39.9742 195.837 737.184 +-45.9573 192.921 726.208 +-53.2939 195.679 736.59 +-59.0875 192.762 725.61 +-66.5783 195.385 735.483 +-72.3348 192.877 726.043 +-79.9434 195.287 735.113 +-85.4571 192.574 724.904 +-93.3763 195.255 734.996 +-98.6647 192.417 724.31 +-106.634 194.807 733.308 +-111.936 192.301 723.875 +-115.668 187.504 705.816 +-121.624 186.604 702.43 +-128.569 187.21 704.709 +-137.387 190.323 716.427 +-144.824 191.293 720.079 +-146.037 184.294 693.733 +-158.138 191.017 719.039 +-137.223 158.921 598.223 +-142.731 158.733 597.513 +-144.176 154.188 580.405 +-145.879 150.221 565.475 +-145.621 144.569 544.2 +-146.673 140.542 529.04 +-152.192 140.901 530.391 +-110.172 98.6474 371.336 +-112.186 97.2399 366.038 +-114.727 96.3464 362.675 +-117.997 96.0858 361.694 +-121.351 95.891 360.96 +-125.938 96.6381 363.773 +-1066.79 795.457 2994.32 +-1093.78 793.036 2985.21 +-1120.7 790.556 2975.87 +-1147.52 788.014 2966.3 +-1174.26 785.413 2956.51 +-1200.91 782.753 2946.5 +-457.844 290.949 1095.21 +-443.913 275.159 1035.77 +-161.02 97.3955 366.624 +-163.288 96.4188 362.947 +-166.355 95.932 361.115 +-171.019 96.35 362.688 +-143.648 79.0928 297.727 +-142.37 76.636 288.479 +-143.304 75.4372 283.967 +-146.576 75.4809 284.131 +-416.264 209.755 789.578 +-417.975 206.15 776.006 +-420.177 202.894 763.748 +-422.763 199.914 752.531 +-424.742 196.736 740.568 +-426.636 193.609 728.798 +-428.45 190.533 717.22 +-429.885 187.376 705.336 +-428.306 183.016 688.925 +-135.536 56.7867 213.761 +-138.097 56.742 213.593 +-439.242 177.022 666.36 +-441.321 174.481 656.794 +-444.309 172.351 648.775 +-446.851 170.093 640.276 +-449.443 167.9 632.022 +-451.864 165.688 623.695 +-454.516 163.603 615.847 +-456.415 161.291 607.143 +-459.144 159.313 599.697 +-460.87 157.027 591.093 +-461.502 154.42 581.279 +-480.093 157.771 593.892 +-469.314 151.485 570.23 +-471.739 149.569 563.021 +-474.896 147.912 556.783 +-478.17 146.312 550.757 +-480.851 144.551 544.132 +-482.991 142.655 536.992 +-486.164 141.086 531.088 +-489.134 139.477 525.028 +-491.627 137.751 518.532 +-494.517 136.156 512.528 +-497.061 134.484 506.234 +-499.598 132.829 500.006 +-502.272 131.229 493.981 +-505.228 129.717 488.292 +-2337.11 589.67 2219.68 +-2356.92 584.376 2199.75 +-520.311 126.772 477.205 +-2396.28 573.726 2159.66 +-383.089 90.1287 339.269 +-2434.91 562.901 2118.92 +-141.253 32.086 120.781 +-142.036 31.7009 119.331 +-142.728 31.2981 117.815 +-141.642 30.515 114.867 +-141.979 30.0495 113.115 +-141.907 29.5042 111.062 +-147.678 30.1602 113.531 +-155.238 31.1399 117.219 +-156.529 30.838 116.083 +-156.932 30.3625 114.293 +-158.601 30.1319 113.425 +-160.104 29.8659 112.424 +-160.625 29.4166 110.732 +-384.1 69.0529 259.934 +-384.62 67.8698 255.481 +-381.191 66.0148 248.498 +-381.169 64.7754 243.833 +-382.014 63.6953 239.767 +-380.538 62.2439 234.303 +-382.47 61.3617 230.982 +-382.068 60.1134 226.283 +-382.382 58.9903 222.056 +-379.978 57.4668 216.321 +-380.878 56.4593 212.528 +-378.692 55.0094 207.071 +-380.285 54.1216 203.729 +-379.649 52.9246 199.223 +-380.462 51.9392 195.514 +-380.794 50.8953 191.584 +-377.43 49.3756 185.863 +-380.526 48.7114 183.363 +-380.19 47.6094 179.215 +-381.162 46.6784 175.711 +-380.015 45.4971 171.264 +-379.545 44.4098 167.171 +-379.395 43.3697 163.256 +-379.938 42.4156 159.664 +-380.813 41.5023 156.226 +-378.421 40.2448 151.493 +-380.424 39.4627 148.549 +-380.634 38.4961 144.91 +-379.687 37.4208 140.862 +-113.993 10.9427 41.1915 +-112.105 10.4762 39.4352 +-110.478 10.0446 37.8107 +-109.018 9.63788 36.2796 +-109.152 9.37697 35.2975 +-108.801 9.07649 34.1664 +-108.628 8.79379 33.1023 +-108.732 8.53506 32.1283 +-109.305 8.31297 31.2923 +-109.584 8.06778 30.3693 +-109.854 7.82194 29.4439 +-109.439 7.52899 28.3412 +-110.272 7.32207 27.5623 +-110.129 7.04986 26.5376 +-111.531 6.87479 25.8786 +-111.176 6.58997 24.8065 +-112.762 6.41844 24.1608 +-113.661 6.2029 23.3494 +-116.023 6.06063 22.8139 +-119.759 5.9768 22.4983 +-157.714 7.50495 28.2507 +-160.425 7.26276 27.339 +-159.877 6.86914 25.8573 +-162.475 6.60707 24.8709 +-3240.51 124.343 468.063 +-860.939 31.066 116.941 +-382.995 12.9459 48.732 +-379.351 11.959 45.0171 +-379.246 11.0941 41.7612 +-404.174 10.9068 41.0564 +-404.23 9.99348 37.6182 +-403.658 9.06725 34.1316 +-405.048 8.18465 30.8093 +-403.914 7.25175 27.2976 +-402.747 6.32455 23.8073 +-147.597 1.98602 7.47595 +-149.458 1.67541 6.30671 +-404.553 3.62718 13.6537 +-147.05 0.988649 3.72155 +-146.378 0.656004 2.46938 +-146.094 0.327343 1.23221 +120.7 5.32907e-15 2.84217e-14 +119.995 0.277983 1.00961 +119.882 0.555483 2.01746 +120.659 0.838732 3.0462 +120.527 1.11728 4.05787 +119.786 1.38834 5.04232 +120.335 1.67411 6.08022 +120.275 1.95281 7.09242 +120.306 2.2332 8.1108 +120.926 2.52639 9.17564 +120.54 2.79947 10.1674 +120.841 3.0888 11.2182 +121.232 3.38247 12.2848 +120.421 3.64214 13.228 +120.991 3.94363 14.3229 +120.758 4.22029 15.3277 +120.516 4.49618 16.3297 +121.154 4.80658 17.4571 +120.399 5.06213 18.3852 +120.13 5.33646 19.3816 +120.54 5.64219 20.4919 +120.252 5.91638 21.4878 +120.838 6.23525 22.6459 +120.629 6.51494 23.6617 +121.095 6.83277 24.816 +120.865 7.11301 25.8338 +120.724 7.3987 26.8714 +121.546 7.74627 28.1338 +121.19 8.02109 29.1319 +121.503 8.34142 30.2953 +121.224 8.62257 31.3164 +121.707 8.95981 32.5412 +120.734 9.1902 33.378 +121.195 9.52983 34.6115 +121.642 9.87232 35.8554 +121.217 10.1457 36.8485 +121.735 10.5 38.1351 +121.101 10.7563 39.066 +121.972 11.1488 40.4915 +121.601 11.4309 41.5162 +121.408 11.7303 42.6036 +121.486 12.0576 43.7923 +118.751 12.1008 43.9489 +114.814 12.0057 43.6037 +111.911 12.0027 43.5928 +109.203 12.0075 43.6103 +105.95 11.9385 43.3597 +104.086 12.0141 43.6342 +100.764 11.9093 43.2535 +98.0938 11.867 43.1 +96.4311 11.9368 43.3533 +97.2084 12.3083 44.7025 +97.4293 12.6144 45.8145 +97.6373 12.9226 46.9337 +97.9216 13.2447 48.1035 +96.8616 13.3852 48.6138 +96.3296 13.5966 49.3817 +96.582 13.9206 50.5583 +96.8204 14.2467 51.7429 +97.0447 14.5751 52.9353 +96.5618 14.7993 53.7498 +96.761 15.1302 54.9517 +97.0313 15.4768 56.2105 +96.5189 15.701 57.0247 +96.6775 16.0366 58.2434 +96.8213 16.374 59.469 +96.1955 16.5832 60.2288 +96.564 16.9666 61.6212 +96.5829 17.2936 62.8087 +96.7524 17.652 64.1104 +96.0046 17.845 64.8114 +96.7983 18.3287 66.5684 +96.1921 18.5523 67.3803 +96.3021 18.9165 68.7032 +96.3154 19.2667 69.9749 +96.3924 19.6345 71.3108 +96.2949 19.9715 72.5346 +96.3391 20.3425 73.8822 +96.2884 20.6985 75.1753 +96.3759 21.0897 76.5959 +95.679 21.3121 77.4038 +96.1914 21.8088 79.2077 +96.0745 22.1701 80.5199 +96.091 22.5677 81.9641 +96.6088 23.0914 83.8661 +96.5833 23.4937 85.327 +96.3924 23.8614 86.6624 +96.2572 24.2482 88.0675 +96.0319 24.6178 89.4097 +95.9322 25.0254 90.89 +95.7423 25.4156 92.3073 +95.5339 25.8068 93.7281 +95.9323 26.3709 95.7767 +95.6125 26.7463 97.1401 +96.0254 27.3356 99.2805 +95.7311 27.733 100.724 +95.9533 28.2891 102.744 +95.6823 28.7091 104.269 +95.8502 29.2703 106.307 +95.4689 29.673 107.77 +95.3897 30.1776 109.602 +95.3481 30.7048 111.517 +95.5308 31.3164 113.738 +94.9957 31.7027 115.141 +95.0581 32.2981 117.304 +94.9059 32.833 119.247 +94.9062 33.4332 121.426 +95.2906 34.1852 124.158 +94.6922 34.598 125.657 +95.1772 35.4212 128.647 +95.099 36.0532 130.942 +94.8164 36.6224 133.009 +94.8391 37.3248 135.56 +94.7124 37.9858 137.961 +94.4404 38.6043 140.207 +94.7797 39.4933 143.436 +94.3786 40.0941 145.618 +94.4677 40.9223 148.626 +94.3035 41.6629 151.316 +94.4021 42.5432 154.513 +94.35 43.381 157.556 +94.3484 44.2679 160.777 +94.247 45.1349 163.926 +94.0957 46.0048 167.085 +94.2699 47.0647 170.935 +94.0582 47.9641 174.201 +94.0668 49.0082 177.993 +94.0585 50.0793 181.884 +93.5046 50.8919 184.835 +93.7653 52.1846 189.53 +93.9058 53.4586 194.157 +93.5963 54.5193 198.01 +93.5901 55.8012 202.665 +93.5864 57.1357 207.512 +93.4629 58.45 212.285 +93.6044 59.9886 217.873 +93.5767 61.4831 223.301 +93.5678 63.056 229.014 +93.7491 64.8316 235.463 +93.2602 66.2149 240.487 +93.1321 67.925 246.698 +93.032 69.7397 253.288 +92.7869 71.5339 259.805 +92.7164 73.5586 267.158 +92.3961 75.4874 274.164 +92.2565 77.6732 282.102 +92.1263 79.9911 290.521 +92.3618 82.7721 300.621 +92.0353 85.2029 309.45 +91.93 87.9966 319.596 +92.0619 91.2062 331.253 +91.7893 94.2173 342.189 +91.5191 97.44 353.894 +91.604 101.288 367.869 +107.482 123.585 448.851 +103.372 123.778 449.55 +98.7788 123.363 448.045 +94.7596 123.639 449.048 +90.8632 124.089 450.68 +90.5893 129.75 471.24 +90.0539 135.575 492.397 +89.9344 142.665 518.145 +89.8403 150.576 546.878 +89.5873 159.127 577.936 +89.0429 168.188 610.843 +86.7999 175.02 635.656 +88.7087 191.787 696.553 +83.7364 195.097 708.577 +78.804 199.033 722.87 +70.5041 194.372 705.943 +65.2622 198.019 719.188 +57.5497 194.114 705.004 +52.0593 197.629 717.772 +44.6875 193.953 704.421 +38.9484 197.283 716.516 +31.877 193.812 703.91 +25.9338 197.142 716.003 +19.0961 193.586 703.086 +12.9567 197.046 715.655 +6.35379 193.273 701.95 +3.88578e-14 196.864 714.993 +-6.34943 193.14 701.468 +-12.92 196.489 713.631 +-19.0359 192.975 700.87 +-25.8361 196.399 713.305 +-31.7287 192.911 700.635 +-38.7286 196.17 712.473 +-44.3701 192.575 699.417 +-51.6337 196.014 711.905 +-57.0947 192.579 699.429 +-64.5911 195.983 711.792 +-69.699 192.153 697.882 +-77.4974 195.733 710.885 +-82.5931 192.434 698.902 +-90.4392 195.528 710.142 +-95.1666 191.89 696.927 +-103.433 195.369 709.562 +-107.871 191.604 695.888 +-115.871 194.204 705.334 +-119.461 189.504 688.262 +-124.558 187.521 681.059 +-132.503 189.783 689.275 +-144.271 197.025 715.579 +-144.761 188.88 685.995 +-152.399 190.329 691.258 +-142.612 170.764 620.202 +-140.752 161.84 587.79 +-144.059 159.288 578.521 +-146.024 155.471 564.658 +-145.546 149.396 542.593 +-147.009 145.643 528.962 +-152.059 145.553 528.634 +-110.2 102.019 370.524 +-112.214 100.564 365.238 +-114.99 99.8429 362.621 +-118.478 99.7498 362.282 +-121.845 99.5475 361.548 +-126.573 100.419 364.714 +-1066.79 822.438 2987.02 +-1093.78 819.935 2977.93 +-1120.7 817.371 2968.62 +-1147.52 814.743 2959.07 +-1174.26 812.054 2949.31 +-1200.91 809.303 2939.32 +-448.516 294.691 1070.29 +-159.12 101.976 370.367 +-160.434 100.332 364.399 +-163.647 99.9082 362.858 +-166.843 99.4769 361.291 +-170.19 99.135 360.05 +-142.718 81.2462 295.079 +-142.069 79.0676 287.167 +-143.654 78.1868 283.968 +-147.29 78.4212 284.819 +-412.405 214.859 780.351 +-414.327 211.282 767.359 +-420.74 210.057 762.908 +-422.429 206.531 750.104 +-424.451 203.27 738.257 +-426.685 200.199 727.105 +-428.7 197.111 715.89 +-430.596 194.052 704.779 +-428.151 189.156 686.998 +-440.31 190.737 692.741 +-135.394 57.5185 208.902 +-135.4 56.4192 204.91 +-442.301 180.8 656.648 +-445.027 178.484 648.239 +-447.354 176.06 639.435 +-450.35 173.945 631.754 +-451.864 171.308 622.175 +-454.807 169.26 614.739 +-457.826 167.277 607.535 +-459.501 164.844 598.7 +-461.773 162.671 590.807 +-462.05 159.847 580.551 +-479.108 162.787 591.229 +-469.874 156.81 569.52 +-472.305 154.828 562.322 +-475.723 153.196 556.393 +-478.17 151.274 549.415 +-481.046 149.515 543.025 +-482.991 147.493 535.683 +-486.827 146.071 530.516 +-488.934 144.148 523.534 +-492.438 142.658 518.12 +-494.722 140.832 511.49 +-498.093 139.334 506.049 +-500.501 137.583 499.689 +-503.463 136.002 493.947 +-505.864 134.286 487.715 +-505.409 131.844 478.845 +-515.551 132.162 480 +-2376.69 598.713 2174.47 +-2396.28 593.186 2154.4 +-384.416 93.5086 339.615 +-523.991 125.244 454.877 +-141.927 33.3326 121.061 +-141.81 32.7239 118.85 +-142.576 32.3254 117.403 +-142.178 31.6695 115.021 +-142.21 31.1194 113.023 +-142.295 30.5885 111.095 +-148.383 31.3318 113.794 +-155.79 32.3106 117.349 +-156.846 31.9485 116.034 +-156.612 31.3284 113.782 +-158.36 31.1064 112.976 +-160.104 30.8789 112.15 +-2667.45 505.08 1834.41 +-2683.95 498.882 1811.89 +-380.911 69.4952 252.4 +-383.679 68.6991 249.509 +-383.171 67.3243 244.516 +-380.505 65.5956 238.238 +-383.406 64.8398 235.493 +-382.13 63.3867 230.215 +-382.835 62.2771 226.185 +-382.897 61.0735 221.814 +-381.185 59.6047 216.479 +-380.878 58.3743 212.01 +-381.738 57.3329 208.228 +-380.722 56.0218 203.466 +-380.704 54.8716 199.289 +-380.639 53.7259 195.128 +-379.197 52.401 190.316 +-380.192 51.4241 186.768 +-377.931 50.0201 181.669 +-380.819 49.3057 179.074 +-380.53 48.1815 174.991 +-381.374 47.2086 171.458 +-380.364 46.0151 167.123 +-379.761 44.8837 163.014 +-381.222 44.0024 159.813 +-380.445 42.8686 155.695 +-380.546 41.8434 151.972 +-380.053 40.7614 148.042 +-380.541 39.792 144.521 +-113.803 11.5966 42.1178 +-113.899 11.3046 41.0573 +-111.448 10.768 39.1083 +-110.006 10.341 37.5577 +-109.775 10.0339 36.4424 +-109.247 9.70344 35.242 +-108.801 9.38436 34.0832 +-109.105 9.13196 33.1665 +-109.21 8.86334 32.1909 +-109.593 8.61758 31.2983 +-109.103 8.30482 30.1624 +-109.468 8.05887 29.2691 +-110.019 7.82558 28.4218 +-110.078 7.55713 27.4468 +-110.905 7.34038 26.6596 +-111.239 7.08936 25.7479 +-111.955 6.86128 24.9196 +-113.543 6.6821 24.2688 +-114.443 6.45746 23.4529 +-116.709 6.30323 22.8928 +-120.151 6.19978 22.5171 +-159.386 7.84175 28.4806 +-157.372 7.36621 26.7534 +-162.047 7.19852 26.1444 +-163.166 6.86024 24.9158 +-3240.51 128.561 466.922 +-860.642 32.1085 116.615 +-381.409 13.3296 48.4119 +-379.649 12.3743 44.9426 +-380.141 11.4974 41.7576 +-401.588 11.2046 40.6943 +-404.33 10.335 37.5357 +-403.26 9.36554 34.0148 +-403.652 8.43311 30.6283 +-404.412 7.50698 27.2647 +-404.644 6.56986 23.8612 +-148.296 2.06311 7.49305 +-147.659 1.7114 6.21565 +-403.354 3.73909 13.58 +-145.65 1.01245 3.67714 +-146.378 0.678255 2.46336 +-145.494 0.337055 1.22416 +119.7 3.55271e-15 -1.13687e-13 +120.495 0.288278 1.01126 +119.782 0.573183 2.0107 +119.659 0.859002 3.01333 +120.427 1.15289 4.04427 +119.686 1.43257 5.0254 +120.235 1.72746 6.05984 +120.175 2.01504 7.06864 +120.206 2.30437 8.08362 +120.627 2.60261 9.12984 +120.34 2.88631 10.125 +120.742 3.18724 11.1807 +120.337 3.46737 12.1633 +120.222 3.75514 13.1728 +120.793 4.06599 14.2633 +120.361 4.34408 15.2388 +120.219 4.63185 16.2483 +120.759 4.94764 17.3561 +120.3 5.22349 18.3237 +120.721 5.53823 19.4278 +121.328 5.86493 20.5739 +120.055 6.10001 21.3985 +120.642 6.42882 22.552 +120.531 6.72268 23.5828 +120.997 7.05067 24.7334 +120.768 7.33986 25.7479 +120.53 7.62848 26.7603 +121.352 7.98696 28.0178 +121.093 8.27697 29.0352 +120.728 8.55948 30.0262 +121.127 8.89764 31.2125 +120.743 9.17976 32.2021 +121.503 9.5514 33.5058 +121.099 9.8339 34.4968 +121.642 10.1954 35.7649 +121.122 10.4695 36.7265 +121.64 10.8351 38.0091 +121.86 11.1779 39.2115 +121.783 11.4958 40.3267 +121.412 11.7867 41.3471 +122.066 12.1798 42.7263 +121.486 12.4522 43.6817 +119.125 12.5361 43.9759 +115.558 12.479 43.7756 +112.746 12.4879 43.807 +109.11 12.39 43.4634 +105.858 12.3185 43.2126 +103.995 12.3963 43.4857 +100.855 12.3101 43.1834 +98.8218 12.3463 43.3103 +96.5218 12.339 43.2844 +96.9377 12.6756 44.4655 +97.3394 13.0152 45.6567 +96.7424 13.2231 46.3861 +98.0107 13.6906 48.0257 +97.039 13.8485 48.58 +96.2413 14.0287 49.2119 +96.4941 14.363 50.3848 +96.7329 14.6997 51.5656 +97.0447 15.052 52.8017 +96.4752 15.2699 53.566 +96.6748 15.6114 54.7641 +96.1742 15.8421 55.5734 +96.4336 16.2005 56.8306 +96.5927 16.5468 58.0454 +96.737 16.8951 59.2672 +97.0342 17.2752 60.6005 +96.3138 17.4764 61.3064 +96.4171 17.8288 62.5425 +96.5876 18.1985 63.8396 +96.0046 18.4289 64.6478 +96.0656 18.7852 65.8977 +96.1112 19.1433 67.1536 +96.2217 19.5192 68.4725 +96.2356 19.8807 69.7404 +96.2338 20.2437 71.0138 +96.2161 20.6082 72.2923 +95.5565 20.8375 73.097 +96.2107 21.3587 74.925 +95.6043 21.6054 75.7907 +95.6023 21.9919 77.1465 +96.1153 22.5047 78.9452 +96.0745 22.8956 80.3166 +96.0161 23.2881 81.6934 +95.94 23.682 83.0752 +95.8461 24.0773 84.4619 +95.7342 24.474 85.8534 +96.1846 25.0229 87.7789 +96.0319 25.4234 89.184 +95.8609 25.8251 90.5931 +95.6715 26.2279 92.0062 +96.0947 26.8078 94.0402 +95.8629 27.2141 95.4657 +95.6125 27.6215 96.8949 +95.9572 28.2099 98.9587 +95.596 28.6002 100.328 +95.9533 29.2149 102.484 +95.6161 29.628 103.933 +95.8502 30.2281 106.039 +95.339 30.6023 107.351 +95.3254 31.144 109.252 +95.4117 31.7307 111.31 +94.9015 32.1282 112.704 +95.4937 32.9117 115.453 +94.935 33.3117 116.856 +95.4538 34.1032 119.632 +94.7859 34.4834 120.966 +95.2906 35.3039 123.844 +95.1624 35.9076 125.962 +94.5384 36.3347 127.46 +95.099 37.2331 130.612 +94.9297 37.8661 132.832 +94.7832 38.5235 135.138 +94.7676 39.2516 137.693 +94.3859 39.8449 139.774 +94.7259 40.7627 142.993 +94.3786 41.4061 145.251 +94.1542 42.1214 147.76 +94.2005 42.9794 150.77 +94.1991 43.8408 153.791 +94.4 44.8244 157.242 +93.8559 45.478 159.534 +94.2955 46.636 163.597 +94.0957 47.5102 166.663 +93.9413 48.4355 169.909 +94.0582 49.5337 173.762 +94.0214 50.5873 177.457 +93.7015 51.5218 180.736 +93.5046 52.5573 184.368 +93.6792 53.843 188.878 +93.5254 54.9843 192.882 +93.5963 56.3035 197.51 +93.6308 57.6523 202.241 +93.5465 58.9802 206.9 +93.502 60.388 211.838 +93.6044 61.9517 217.323 +93.5767 63.4951 222.738 +93.5311 65.0939 228.346 +93.319 66.6459 233.79 +93.4704 68.5358 240.42 +93.1663 70.1736 246.165 +92.9318 71.9443 252.377 +92.6893 73.797 258.876 +92.6847 75.9397 266.392 +92.3961 77.9577 273.471 +92.1964 80.1629 281.207 +92.1556 82.6349 289.879 +92.3334 85.4545 299.77 +91.9526 87.9122 308.391 +91.9834 90.9291 318.975 +92.1396 94.2704 330.696 +91.7893 97.3006 341.325 +91.6642 100.788 353.56 +91.5339 104.522 366.659 +107.617 127.79 448.28 +103.566 128.069 449.26 +99.3402 128.124 449.454 +95.0985 128.142 449.516 +90.806 128.069 449.258 +90.4435 133.78 469.293 +90.0887 140.066 491.344 +89.8189 147.144 516.174 +89.809 155.449 545.308 +89.5577 164.28 576.287 +88.6811 172.986 606.824 +84.581 176.126 617.842 +88.3187 197.192 691.74 +80.8158 194.454 682.136 +75.6368 197.285 692.065 +67.8492 193.174 677.645 +62.7609 196.661 689.877 +55.3843 192.923 676.763 +50.1549 196.631 689.77 +43.0392 192.912 676.726 +37.5458 196.403 688.97 +29.2337 183.557 643.91 +24.9462 195.84 686.996 +17.1302 179.339 629.113 +12.454 195.6 686.156 +6.12166 192.306 674.598 +4.07452e-14 195.356 685.299 +-6.10945 191.922 673.252 +-12.4348 195.299 685.098 +-18.3029 191.617 672.182 +-24.8624 195.182 684.689 +-30.5205 191.637 672.253 +-37.2841 195.034 684.168 +-42.6851 191.325 671.158 +-49.7154 194.908 683.726 +-54.9449 191.392 671.394 +-62.1072 194.613 682.691 +-67.1208 191.1 670.37 +-74.5183 194.368 681.832 +-79.3781 190.995 670.001 +-86.9294 194.09 680.859 +-91.6163 190.777 669.234 +-99.5784 194.242 681.392 +-104.013 190.797 669.306 +-112.445 194.63 682.751 +-116.573 190.974 669.925 +-124.315 193.279 678.013 +-128.749 190.441 668.056 +-139.023 196.073 687.813 +-143.046 192.751 676.159 +-144.81 186.77 655.179 +-142.742 176.513 619.199 +-142.551 169.273 593.802 +-143.826 164.234 576.125 +-144.645 159.043 557.914 +-145.471 154.205 540.944 +-146.336 149.72 525.211 +-147.462 145.772 511.359 +-110.586 105.726 370.883 +-112.498 104.117 365.238 +-115.194 103.294 362.349 +-118.749 103.25 362.194 +-122.309 103.196 362.006 +-127.207 104.225 365.618 +-1066.79 849.352 2979.48 +-1093.78 846.767 2970.41 +-1120.7 844.119 2961.12 +-1147.52 841.405 2951.6 +-1174.26 838.628 2941.86 +-1200.77 835.686 2931.54 +-456.683 309.875 1087.03 +-159.694 105.693 370.764 +-161.372 104.222 365.604 +-164.165 103.505 363.089 +-167.169 102.933 361.082 +-172.429 103.726 363.866 +-141.281 83.0603 291.371 +-141.724 81.4571 285.747 +-143.435 80.6221 282.818 +-147.825 81.282 285.133 +-432.199 232.541 815.74 +-433.72 228.41 801.249 +-416.187 214.583 752.745 +-418.468 211.29 741.195 +-423.869 209.634 735.384 +-425.306 206.082 722.926 +-429.15 203.775 714.832 +-431.052 200.615 703.746 +-430.366 196.356 688.808 +-437.436 195.693 686.482 +-437.819 192.082 673.814 +-440.693 189.64 665.248 +-135.288 57.1116 200.345 +-134.673 55.7798 195.673 +-447.969 182.072 638.698 +-449.953 179.479 629.604 +-452.839 177.296 621.944 +-455.852 175.201 614.597 +-457.297 172.551 605.301 +-460.274 170.525 598.193 +-462.314 168.192 590.007 +-467.407 166.992 585.8 +-475.66 166.904 585.492 +-470.248 162.07 568.533 +-472.62 160.001 561.277 +-476.232 158.378 555.582 +-478.748 156.414 548.691 +-482.02 154.72 542.751 +-484.762 152.879 536.29 +-487.225 150.974 529.608 +-489.536 149.049 522.855 +-493.046 147.508 517.451 +-495.404 145.641 510.902 +-498.506 144.013 505.19 +-501.127 142.263 499.051 +-504.164 140.648 493.385 +-506.501 138.855 487.096 +-505.409 136.158 477.636 +-2356.92 623.969 2188.85 +-516.539 134.38 471.397 +-384.326 98.251 344.659 +-2415.69 606.84 2128.76 +-525.478 129.71 455.015 +-142.077 34.4598 120.883 +-142.187 33.8849 118.867 +-143.184 33.5255 117.606 +-141.412 32.5298 114.113 +-141.747 32.0334 112.371 +-144.316 32.038 112.388 +-148.852 32.4594 113.866 +-156.105 33.4356 117.29 +-156.053 32.827 115.155 +-157.092 32.4525 113.842 +-159.083 32.271 113.205 +-160.833 32.0345 112.375 +-2667.45 521.608 1829.78 +-2683.95 515.207 1807.32 +-383.878 72.3284 253.724 +-2716.34 502.289 1762.01 +-382.67 69.4367 243.58 +-381.26 67.8765 238.107 +-381.044 66.5494 233.452 +-382.385 65.5046 229.787 +-381.898 64.1575 225.061 +-380.668 62.7048 219.965 +-380.409 61.43 215.493 +-379.666 60.0927 210.802 +-380.171 58.9662 206.85 +-379.06 57.6024 202.066 +-380.088 56.5757 198.465 +-380.639 55.484 194.635 +-379.729 54.1917 190.102 +-379.034 52.9452 185.729 +-380.526 52.0117 182.454 +-380.28 50.8471 178.369 +-381.162 49.841 174.84 +-381.374 48.7535 171.025 +-380.273 47.5094 166.661 +-379.395 46.3081 162.446 +-381.222 45.4424 159.409 +-380.169 44.2394 155.19 +-379.714 43.1184 151.257 +-380.702 42.1671 147.92 +-380.262 41.064 144.05 +-115.391 12.1431 42.5973 +-113.244 11.6073 40.718 +-111.823 11.1578 39.1411 +-110.572 10.7343 37.6554 +-109.113 10.2998 36.1312 +-108.962 9.99488 35.0615 +-108.801 9.69146 33.9971 +-109.296 9.4473 33.1406 +-108.636 9.10531 31.9409 +-109.018 8.85284 31.0553 +-108.815 8.55392 30.0067 +-109.854 8.3519 29.298 +-109.826 8.06747 28.3003 +-109.788 7.78384 27.3053 +-110.905 7.58059 26.5923 +-111.142 7.31497 25.6605 +-111.76 7.07348 24.8134 +-113.543 6.90076 24.2075 +-114.15 6.65168 23.3337 +-116.709 6.5095 22.835 +-120.053 6.39743 22.4419 +-160.467 8.15331 28.6014 +-158.653 7.66914 26.9029 +-161.06 7.38885 25.9197 +-162.771 7.06758 24.7927 +-851.543 34.8889 122.388 +-862.028 33.2127 116.509 +-381.805 13.7801 48.3398 +-380.641 12.8127 44.9463 +-379.048 11.8395 41.5324 +-404.273 11.6487 40.8629 +-403.335 10.6469 37.3488 +-404.256 9.69592 34.0128 +-404.549 8.72844 30.6189 +-404.811 7.76029 27.2227 +-404.644 6.78486 23.8009 +-145.201 2.08615 7.31811 +-147.759 1.7686 6.20415 +-404.553 3.87294 13.5861 +-145.95 1.04774 3.67541 +-146.478 0.70093 2.45883 +-145.294 0.347608 1.21939 +119.6 2.66454e-15 -1.13687e-13 +119.695 0.295415 1.00193 +119.782 0.5913 2.00544 +120.459 0.892074 3.02555 +120.427 1.18933 4.03371 +120.485 1.48772 5.04574 +121.034 1.7939 6.08417 +120.175 2.07872 7.05017 +120.107 2.37523 8.05581 +120.527 2.68265 9.09845 +121.237 2.99974 10.1739 +120.642 3.28526 11.1423 +120.238 3.57401 12.1216 +120.222 3.87382 13.1384 +120.793 4.1945 14.226 +121.155 4.51091 15.2991 +121.011 4.80975 16.3127 +120.759 5.10402 17.3107 +120.3 5.38858 18.2758 +120.721 5.71328 19.3771 +120.442 6.0061 20.3702 +120.154 6.29796 21.3601 +120.642 6.63201 22.4931 +120.531 6.93516 23.5212 +120.997 7.27351 24.6688 +120.67 7.56571 25.6598 +120.627 7.87595 26.712 +120.379 8.17336 27.7207 +120.123 8.47014 28.7272 +120.728 8.83001 29.9478 +120.354 9.12032 30.9324 +120.743 9.4699 32.118 +121.311 9.83767 33.3653 +121.003 10.1367 34.3795 +120.781 10.4432 35.419 +121.122 10.8004 36.6305 +120.879 11.1077 37.6727 +121.101 11.4594 38.8656 +121.783 11.8591 40.2213 +121.412 12.1592 41.2391 +121.126 12.4681 42.2866 +121.486 12.8458 43.5676 +119.218 12.9424 43.8953 +115.651 12.8837 43.6963 +112.746 12.8826 43.6926 +109.849 12.8682 43.6436 +106.502 12.7852 43.362 +103.995 12.7881 43.3721 +101.404 12.7683 43.3047 +98.8218 12.7366 43.1972 +95.8874 12.6453 42.8876 +96.9377 13.0763 44.3493 +97.4293 13.439 45.5795 +96.9214 13.6663 46.3504 +97.9216 14.1104 47.8567 +97.2164 14.3123 48.5416 +97.0359 14.5916 49.4886 +96.4062 14.8035 50.2074 +96.7329 15.1643 51.4309 +97.0447 15.5278 52.6637 +96.4752 15.7525 53.4261 +95.8993 15.9757 54.1829 +97.0313 16.4885 55.9222 +96.4336 16.7126 56.6821 +96.5927 17.0698 57.8937 +96.0623 17.3075 58.7 +96.0278 17.6364 59.8154 +96.3138 18.0288 61.1462 +96.4171 18.3923 62.3791 +96.5052 18.7577 63.6185 +96.6599 19.1412 64.9189 +96.7983 19.5268 66.2269 +96.1112 19.7483 66.9782 +96.2217 20.1362 68.2936 +96.2356 20.509 69.5582 +96.2338 20.8835 70.8282 +96.2949 21.2769 72.1624 +96.2608 21.6546 73.4434 +96.2884 22.0515 74.7896 +96.2987 22.4502 76.1419 +96.2152 22.8324 77.4382 +96.1153 23.2159 78.7389 +96.15 23.6378 80.1697 +96.0161 24.0241 81.48 +95.94 24.4305 82.8582 +95.8461 24.8383 84.2413 +96.3924 25.4211 86.2178 +95.6043 25.658 87.0213 +96.0319 26.2269 88.951 +95.7895 26.6215 90.2892 +95.6715 27.0569 91.7658 +96.0947 27.6551 93.7945 +95.8629 28.0743 95.2163 +95.6125 28.4945 96.6418 +95.9572 29.1015 98.7002 +95.6636 29.5248 100.136 +95.3511 29.949 101.575 +95.6823 30.5856 103.734 +95.6534 31.1196 105.545 +95.339 31.5695 107.071 +95.2611 32.1069 108.893 +94.8393 32.537 110.352 +94.8386 33.1216 112.335 +94.809 33.7084 114.325 +94.935 34.3646 116.55 +94.9059 34.9791 118.635 +94.7859 35.5733 120.65 +94.6958 36.1924 122.75 +94.6922 36.8595 125.012 +94.5965 37.506 127.205 +94.5254 38.1782 129.485 +94.4199 38.853 131.774 +94.224 39.5066 133.99 +94.6572 40.445 137.173 +94.3859 41.1042 139.409 +94.7797 42.0748 142.7 +94.3786 42.7148 144.871 +94.1542 43.4527 147.374 +94.2005 44.3379 150.376 +94.3006 45.2754 153.555 +93.95 46.0206 156.083 +94.2991 47.1368 159.869 +94.247 48.0851 163.085 +94.048 48.987 166.144 +93.9413 49.9663 169.465 +93.9658 51.0492 173.138 +93.7036 52.0099 176.396 +93.6123 53.0996 180.092 +93.5046 54.2184 183.886 +93.7223 55.5702 188.471 +93.5254 56.7221 192.378 +93.8866 58.2631 197.605 +93.5494 59.4227 201.537 +93.5864 60.8704 206.447 +93.4629 62.2706 211.196 +93.5661 63.8837 216.667 +93.5767 65.502 222.156 +93.4945 67.125 227.66 +93.319 68.7523 233.179 +93.4353 70.6754 239.702 +93.0637 72.3117 245.252 +93.0654 74.3248 252.079 +92.6893 76.1294 258.2 +92.653 78.3133 265.606 +92.2725 80.3139 272.392 +92.0761 82.5885 280.106 +92.2725 85.355 289.489 +92.2482 88.0742 298.711 +91.8975 90.6364 307.401 +92.0102 93.8302 318.233 +92.1137 97.2225 329.739 +91.9646 100.568 341.084 +91.4949 103.782 351.985 +91.4405 107.716 365.328 +107.999 132.297 448.698 +103.934 132.586 449.678 +99.4857 132.368 448.937 +95.4374 132.663 449.94 +91.0731 132.505 449.404 +90.407 137.953 467.879 +90.0366 144.409 489.777 +89.8189 151.795 514.825 +89.6682 160.111 543.031 +89.4099 169.193 573.833 +87.5538 176.185 597.545 +84.2938 181.076 614.136 +85.5279 196.997 668.132 +78.2687 194.278 658.912 +72.9713 196.348 665.933 +65.8364 193.368 655.825 +60.6255 195.974 664.664 +53.7053 192.987 654.532 +48.411 195.792 664.046 +41.7389 192.997 654.566 +36.2269 195.493 663.031 +27.9077 180.77 613.097 +22.1996 179.786 609.761 +17.2349 186.138 631.305 +12.0544 195.307 662.402 +5.93492 192.332 652.311 +3.66374e-14 195.082 661.64 +-5.92706 192.077 651.447 +-12.0282 194.883 660.963 +-17.7663 191.877 650.769 +-24.0283 194.596 659.991 +-29.6219 191.874 650.757 +-36.0595 194.589 659.967 +-41.4336 191.585 649.778 +-47.9994 194.128 658.401 +-53.2502 191.352 648.986 +-60.0242 194.03 658.07 +-65.0889 191.172 648.378 +-72.0201 193.789 657.252 +-77.0121 191.159 648.333 +-84.1386 193.797 657.279 +-88.8753 190.918 647.516 +-96.1964 193.576 656.53 +-100.806 190.758 646.973 +-108.675 194.049 658.136 +-112.992 190.957 647.646 +-120.894 193.901 657.633 +-124.959 190.676 646.694 +-132.65 192.997 654.568 +-138.74 192.857 654.091 +-144.873 192.756 653.748 +-142.677 182.009 617.301 +-142.484 174.541 591.971 +-142.378 167.72 568.837 +-143.944 163.274 553.757 +-143.843 157.299 533.495 +-145.456 153.524 520.689 +-145.298 148.172 502.537 +-110.475 108.959 369.546 +-112.754 107.652 365.111 +-115.721 107.045 363.053 +-118.989 106.729 361.98 +-122.587 106.7 361.882 +-127.525 107.788 365.572 +-1066.79 876.197 2971.7 +-1093.78 873.53 2962.65 +-1120.7 870.798 2953.39 +-1147.52 867.998 2943.89 +-1174.26 865.133 2934.18 +-475.389 341.307 1157.57 +-466.76 326.722 1108.11 +-159.579 108.955 369.53 +-161.763 107.776 365.531 +-164.444 106.958 362.756 +-167.494 106.393 360.84 +-172.803 107.236 363.701 +-141.281 85.6856 290.61 +-141.466 83.8787 284.482 +-143.61 83.2721 282.425 +-147.959 83.9268 284.645 +-433.425 240.571 815.917 +-434.367 235.98 800.347 +-435.482 231.628 785.586 +-437.173 227.711 772.302 +-420.088 214.33 726.919 +-422.253 211.07 715.862 +-427.75 209.53 710.639 +-430.951 206.907 701.742 +-434.641 204.574 693.832 +-437.07 201.71 684.116 +-438.561 198.489 673.193 +-441.016 195.777 663.995 +-443.881 193.306 655.613 +-446.075 190.599 646.434 +-135.269 56.7159 192.357 +-134.691 55.4243 187.976 +-453.47 183.154 621.183 +-455.91 180.762 613.069 +-458.414 178.44 605.194 +-460.214 175.892 596.554 +-462.916 173.733 589.231 +-473.434 174.491 591.803 +-471.966 170.843 579.428 +-470.87 167.414 567.799 +-473.375 165.322 560.704 +-476.804 163.58 554.797 +-479.005 161.444 547.551 +-482.735 159.847 542.136 +-484.762 157.711 534.889 +-487.821 155.936 528.871 +-490.74 154.138 522.772 +-493.046 152.17 516.099 +-495.813 150.368 509.988 +-499.126 148.749 504.497 +-501.543 146.881 498.16 +-504.304 145.134 492.234 +-507.208 143.444 486.502 +-506.265 140.7 477.195 +-2356.92 643.69 2183.13 +-515.741 138.413 469.44 +-518.822 136.826 464.059 +-385.449 99.8883 338.78 +-141.123 35.9361 121.881 +-142.227 35.5866 120.695 +-142.338 34.993 118.682 +-142.652 34.4565 116.862 +-141.488 33.5761 113.876 +-142.056 33.1176 112.321 +-145.326 33.282 112.879 +-150.496 33.8552 114.823 +-156.263 34.5272 117.102 +-156.608 33.9853 115.264 +-157.81 33.6315 114.064 +-159.083 33.291 112.909 +-161.318 33.1465 112.419 +-2667.45 538.095 1825 +-382.626 75.7699 256.98 +-381.158 74.0858 251.269 +-384.259 73.3005 248.605 +-381.169 71.3502 241.99 +-380.756 69.9294 237.172 +-380.37 68.5311 232.429 +-381.367 67.3951 228.576 +-382.068 66.2149 224.574 +-379.982 64.5701 218.995 +-380.582 63.4004 215.028 +-380.185 62.0768 210.539 +-381.216 60.9971 206.877 +-380.46 59.6424 202.283 +-379.913 58.337 197.855 +-380.021 57.1449 193.812 +-379.375 55.8522 189.428 +-379.034 54.6186 185.244 +-378.289 53.3403 180.908 +-380.28 52.4542 177.903 +-380.44 51.3187 174.052 +-381.012 50.2466 170.416 +-380.091 48.9875 166.146 +-381.04 47.9788 162.724 +-381.222 46.8786 158.993 +-380.813 45.7149 155.046 +-380.731 44.6003 151.266 +-381.165 43.5531 147.714 +-379.703 42.2996 143.463 +-113.897 12.3647 41.936 +-112.775 11.9247 40.4437 +-110.79 11.4041 38.678 +-110.383 11.0547 37.493 +-109.018 10.6161 36.0055 +-108.962 10.3108 34.9699 +-108.801 9.99777 33.9083 +-109.01 9.72039 32.9675 +-109.019 9.42618 31.9697 +-109.018 9.13265 30.9742 +-109.199 8.85547 30.0341 +-109.854 8.61587 29.2215 +-110.405 8.36637 28.3753 +-109.691 8.02279 27.21 +-110.711 7.8065 26.4764 +-111.045 7.53958 25.5711 +-111.663 7.29068 24.727 +-113.543 7.11887 24.1443 +-114.737 6.89718 23.3924 +-117.493 6.76035 22.9283 +-121.624 6.68597 22.6761 +-158.894 8.32856 28.2471 +-161.115 8.0343 27.249 +-160.765 7.60839 25.8045 +-163.166 7.30866 24.788 +-852.433 36.0292 122.196 +-862.424 34.2783 116.258 +-381.409 14.2009 48.1635 +-381.435 13.2452 44.9224 +-380.737 12.2682 41.6086 +-404.572 12.0257 40.7863 +-404.031 11.0024 37.3156 +-404.256 10.0024 33.9239 +-404.15 8.99543 30.5088 +-403.614 7.98189 27.0713 +-403.845 6.98547 23.6918 +-144.502 2.14172 7.26385 +-145.262 1.79366 6.08334 +-403.854 3.98844 13.5272 +-145.75 1.07937 3.66079 +-145.078 0.716172 2.42896 +-144.694 0.357113 1.21118 +119.7 3.55271e-15 -1.13687e-13 +119.695 0.304442 0.99922 +119.782 0.609368 2.00003 +119.559 0.912466 2.99484 +120.427 1.22567 4.02282 +120.385 1.53191 5.02795 +120.235 1.83651 6.02768 +120.175 2.14224 7.03113 +120.905 2.46407 8.08743 +120.527 2.76463 9.07388 +120.44 3.07106 10.0796 +120.642 3.38565 11.1122 +120.238 3.68322 12.0888 +121.017 4.0186 13.1896 +120.793 4.32267 14.1876 +121.055 4.64493 15.2453 +120.219 4.92426 16.1621 +120.66 5.25567 17.2498 +120.3 5.55324 18.2265 +120.721 5.88785 19.3247 +120.442 6.18962 20.3152 +120.94 6.53289 21.4419 +120.74 6.84023 22.4506 +120.433 7.14124 23.4385 +120.312 7.45333 24.4629 +120.67 7.79689 25.5905 +120.627 8.11662 26.6399 +121.255 8.48434 27.8468 +120.899 8.78538 28.8348 +120.825 9.10711 29.8908 +121.127 9.45933 31.0468 +120.839 9.76705 32.0568 +121.311 10.1383 33.2752 +120.907 10.4381 34.2594 +121.546 10.8305 35.5471 +121.122 11.1304 36.5316 +120.879 11.4471 37.5709 +121.385 11.8373 38.8517 +121.783 12.2215 40.1127 +121.224 12.5113 41.0639 +121.878 12.9288 42.4341 +121.486 13.2383 43.4499 +119.685 13.3901 43.9482 +116.674 13.3949 43.964 +113.58 13.3745 43.897 +109.849 13.2614 43.5257 +107.423 13.2897 43.6187 +103.903 13.1673 43.2169 +101.312 13.1466 43.1488 +98.8218 13.1257 43.0805 +97.0656 13.1918 43.2974 +97.0279 13.4884 44.2707 +97.3394 13.8369 45.4145 +97.0109 14.0969 46.2679 +98.0107 14.5548 47.7709 +98.1034 14.8843 48.8522 +96.2413 14.9143 48.9508 +96.4941 15.2697 50.1174 +96.8204 15.6418 51.3384 +96.2613 15.8731 52.0976 +96.4752 16.2339 53.2818 +96.761 16.6118 54.5221 +96.1742 16.8422 55.2785 +96.5189 17.2384 56.579 +96.5927 17.5914 57.7374 +96.0623 17.8364 58.5415 +96.0278 18.1753 59.6538 +96.3138 18.5797 60.9811 +96.4171 18.9543 62.2107 +96.5876 19.3474 63.5008 +95.9227 19.5756 64.2498 +96.147 19.9881 65.6036 +96.1921 20.3689 66.8536 +96.2217 20.7515 68.1092 +96.3154 21.1533 69.4279 +96.2338 21.5216 70.637 +95.5857 21.7655 71.4375 +96.2608 22.3163 73.2451 +96.2107 22.707 74.5275 +96.2987 23.1362 75.9362 +96.2918 23.5488 77.2906 +96.0393 23.9064 78.4642 +96.0745 24.341 79.8905 +96.0161 24.7582 81.2599 +95.94 25.177 82.6344 +95.9198 25.617 84.0784 +96.3924 26.1979 85.985 +96.1846 26.6025 87.3131 +96.0319 27.0283 88.7108 +95.8609 27.4554 90.1125 +95.813 27.9249 91.6533 +96.1648 28.5209 93.6095 +95.8629 28.9321 94.9592 +95.6125 29.3652 96.3808 +95.9572 29.9907 98.4336 +95.6636 30.427 99.8656 +95.3511 30.8642 101.3 +95.6161 31.4984 103.382 +95.6534 32.0705 105.26 +95.339 32.5342 106.782 +95.1968 33.0655 108.526 +95.4117 33.7338 110.719 +95.4679 34.3601 112.775 +94.8712 34.7612 114.091 +94.4425 35.231 115.633 +94.9668 36.071 118.39 +94.846 36.6836 120.401 +94.7553 37.3216 122.495 +94.4571 37.8914 124.365 +94.9449 38.7946 127.329 +94.5254 39.3448 129.135 +94.8164 40.2084 131.97 +94.7273 40.9312 134.342 +94.4364 41.5838 136.484 +94.9306 42.6044 139.834 +94.0812 43.041 141.267 +94.4316 44.0448 144.561 +94.0497 44.7306 146.812 +94.355 45.7676 150.215 +94.3006 46.6588 153.141 +93.95 47.4268 155.661 +94.3976 48.6279 159.603 +94.2955 49.5801 162.729 +94.0957 50.5095 165.779 +93.8943 51.4675 168.923 +94.012 52.6348 172.755 +94.0214 53.7807 176.516 +93.6569 54.7484 179.692 +93.5046 55.8751 183.39 +93.6792 57.242 187.876 +93.8635 58.6666 192.552 +93.8866 60.0435 197.071 +93.5494 61.2384 200.993 +93.5465 62.7035 205.802 +93.8536 64.4415 211.506 +93.6044 65.8626 216.17 +93.2021 67.233 220.668 +93.5311 69.2032 227.135 +93.4265 70.9347 232.818 +93.1201 72.5893 238.248 +93.0979 74.5487 244.679 +93.032 76.5685 251.308 +92.7869 78.5384 257.774 +92.7164 80.7613 265.07 +92.2416 82.7403 271.565 +92.0761 85.1121 279.35 +92.0971 87.7958 288.158 +92.305 90.8211 298.087 +91.9526 93.4619 306.755 +91.9834 96.6694 317.282 +91.8031 99.8555 327.74 +91.7643 103.415 339.421 +91.7368 107.236 351.962 +91.3939 110.951 364.156 +107.999 136.34 447.486 +104.107 136.865 449.211 +99.8392 136.897 449.314 +95.577 136.917 449.381 +91.2067 136.754 448.847 +90.407 142.168 466.616 +89.8803 148.564 487.606 +89.8189 156.433 513.435 +89.6682 165.003 541.564 +88.5674 172.72 566.89 +86.343 179.057 587.69 +85.2597 188.748 619.496 +79.3491 188.35 618.19 +73.8991 189.037 620.445 +67.9226 188.348 618.184 +62.3093 188.601 619.013 +56.6948 188.868 619.891 +51.0141 188.918 620.055 +45.3626 189.07 620.552 +39.6083 188.741 619.475 +33.7567 187.729 616.152 +28.4835 190.137 624.055 +22.3496 186.532 612.224 +17.3448 193.05 633.616 +11.7001 195.36 641.197 +5.76999 192.701 632.47 +2.94209e-14 195.331 641.104 +-5.7726 192.788 632.757 +-11.6861 195.126 640.432 +-17.2951 192.496 631.8 +-23.3687 195.037 640.139 +-28.8193 192.379 631.414 +-35.0442 194.889 639.651 +-40.3287 192.174 630.742 +-46.7089 194.681 638.969 +-51.7908 191.794 629.495 +-58.4118 194.588 638.664 +-63.402 191.908 629.868 +-70.1491 194.522 638.448 +-74.9179 191.643 628.999 +-81.8231 194.222 637.464 +-86.5258 191.551 628.696 +-93.5104 193.921 636.475 +-98.0715 191.254 627.723 +-105.343 193.847 636.234 +-109.79 191.215 627.594 +-117.629 194.43 638.147 +-121.496 191.057 627.076 +-129.044 193.487 635.052 +-133.497 191.239 627.671 +-142.96 196.023 643.375 +-143.564 188.738 619.463 +-142.619 180.045 590.932 +-142.378 172.845 567.301 +-143.46 167.697 550.405 +-143.969 162.247 532.517 +-145.094 157.821 517.989 +-145.378 152.783 501.456 +-110.779 112.597 369.559 +-112.953 111.137 364.768 +-116.013 110.595 362.988 +-119.47 110.435 362.462 +-123.051 110.376 362.269 +-128.318 111.772 366.852 +-1066.79 902.971 2963.67 +-1093.78 900.222 2954.65 +-1120.7 897.407 2945.41 +-1147.52 894.521 2935.94 +-1174.26 891.569 2926.25 +-474.143 350.815 1151.42 +-467.996 337.598 1108.04 +-159.732 112.392 368.885 +-162.114 111.31 365.336 +-165.202 110.734 363.443 +-167.779 109.83 360.478 +-172.844 110.54 362.806 +-141.662 88.5413 290.605 +-141.983 86.7574 284.75 +-144.093 86.1048 282.608 +-148.316 86.7 284.561 +-433.425 247.922 813.714 +-434.644 243.346 798.694 +-435.904 238.937 784.225 +-437.65 234.925 771.057 +-437.638 230.107 755.242 +-438.06 225.662 740.654 +-424.45 214.266 703.252 +-426.332 210.944 692.346 +-432.683 209.876 688.843 +-435.503 207.128 679.822 +-438.932 204.727 671.942 +-441.875 202.153 663.492 +-444.371 199.432 654.564 +-446.683 196.69 645.565 +-449.311 194.145 637.212 +-451.936 191.65 629.022 +-135.02 56.2001 184.456 +-135.072 55.1902 181.142 +-458.414 183.892 603.56 +-460.631 181.431 595.481 +-461.833 178.623 586.265 +-474.834 180.355 591.95 +-470.735 175.604 576.355 +-471.928 172.917 567.537 +-473.941 170.578 559.86 +-477.186 168.714 553.742 +-479.584 166.578 546.733 +-483.124 164.864 541.108 +-485.746 162.86 534.528 +-488.417 160.897 528.088 +-490.941 158.913 521.573 +-494.262 157.207 515.975 +-496.427 155.155 509.24 +-499.814 153.506 503.828 +-501.752 151.432 497.022 +-505.005 149.776 491.586 +-507.349 147.868 485.323 +-506.836 145.162 476.443 +-526.269 148.119 486.148 +-516.684 142.903 469.028 +-519.115 141.087 463.066 +-523.025 139.682 458.457 +-140.677 36.917 121.167 +-142.901 36.8477 120.939 +-142.112 36.0048 118.173 +-142.044 35.3581 116.05 +-141.488 34.602 113.569 +-142.133 34.1483 112.079 +-145.948 34.4455 113.055 +-150.965 34.9984 114.87 +-156.026 35.5283 116.609 +-156.767 35.059 115.069 +-157.171 34.5187 113.295 +-159.244 34.3429 112.718 +-161.399 34.1765 112.172 +-578.185 120.199 394.51 +-383.035 78.1686 256.56 +-2700.08 540.853 1775.15 +-381.191 74.9372 245.954 +-381.92 73.6753 241.812 +-381.26 72.1615 236.844 +-382.647 71.0481 233.19 +-382.47 69.6553 228.618 +-382.324 68.2837 224.116 +-383.668 67.1887 220.523 +-380.84 65.382 214.593 +-380.532 64.032 210.162 +-380.345 62.7172 205.847 +-381.247 61.5922 202.154 +-380.088 60.1472 197.412 +-381.08 59.0552 193.827 +-380.616 57.7471 189.534 +-380.192 56.4595 185.308 +-378.289 54.9702 180.42 +-381.448 54.2232 177.968 +-379.988 52.8242 173.376 +-379.652 51.5972 169.349 +-380.91 50.5934 166.055 +-379.761 49.2787 161.739 +-380.305 48.1948 158.182 +-380.445 47.0663 154.478 +-380.176 45.8961 150.637 +-379.311 44.6656 146.599 +-379.331 43.5496 142.936 +-114.27 12.7843 41.9599 +-112.494 12.2584 40.2339 +-110.79 11.7526 38.5735 +-109.912 11.3439 37.2321 +-109.207 10.9595 35.9706 +-108.962 10.6258 34.8755 +-108.611 10.2853 33.7576 +-108.438 9.9648 32.7058 +-108.827 9.69716 31.8274 +-108.922 9.40343 30.8634 +-109.584 9.15821 30.0585 +-109.854 8.87914 29.1426 +-109.343 8.53905 28.0263 +-110.466 8.32632 27.3281 +-111.002 8.06619 26.4744 +-111.725 7.81759 25.6584 +-112.345 7.55936 24.8109 +-113.348 7.32378 24.0377 +-115.324 7.1443 23.4486 +-117.395 6.96113 22.8474 +-121.133 6.86247 22.5236 +-159.681 8.62552 28.3101 +-159.539 8.19883 26.9097 +-160.074 7.80718 25.6242 +-164.055 7.57303 24.8557 +-853.323 37.1689 121.993 +-863.019 35.3499 116.023 +-379.426 14.5587 47.7837 +-379.748 13.5896 44.6029 +-381.631 12.6727 41.5937 +-404.572 12.3932 40.6761 +-403.335 11.319 37.1506 +-404.256 10.308 33.8323 +-404.549 9.27945 30.4564 +-404.811 8.25019 27.0783 +-403.147 7.18648 23.587 +-143.303 2.18887 7.18416 +-145.162 1.84719 6.06274 +-404.154 4.11338 13.5007 +-145.75 1.11236 3.6509 +-144.478 0.735004 2.41238 +-146.594 0.372857 1.22377 +119.7 3.55271e-15 -1.13687e-13 +119.695 0.313444 0.996433 +119.782 0.627386 1.99445 +120.359 0.94573 3.00646 +120.327 1.26086 4.00826 +120.385 1.57721 5.01392 +120.235 1.89082 6.01087 +120.076 2.20376 7.0057 +120.905 2.53693 8.06487 +120.527 2.84637 9.04857 +120.54 3.16448 10.0598 +120.642 3.48576 11.0812 +121.133 3.82037 12.1449 +120.123 4.10685 13.0556 +120.793 4.45049 14.148 +120.262 4.75095 15.1032 +120.219 5.06986 16.117 +120.561 5.40666 17.1877 +120.202 5.71276 18.1608 +120.721 6.06195 19.2708 +120.344 6.36742 20.2419 +120.94 6.72607 21.3821 +120.642 7.03676 22.3697 +121.119 7.39429 23.5063 +120.41 7.67996 24.4145 +120.768 8.03395 25.5398 +120.627 8.35662 26.5655 +120.477 8.67919 27.591 +120.996 9.05242 28.7775 +120.728 9.3689 29.7836 +121.031 9.73127 30.9355 +121.032 10.0719 32.0183 +121.407 10.4463 33.2087 +121.099 10.7638 34.2181 +121.546 11.1507 35.4479 +121.217 11.4686 36.4584 +120.974 11.7948 37.4956 +121.385 12.1873 38.7433 +121.499 12.5536 39.9076 +121.978 12.9614 41.2041 +121.972 13.3214 42.3484 +121.486 13.6297 43.3287 +119.498 13.7645 43.7572 +116.767 13.802 43.8763 +113.487 13.7587 43.7388 +110.681 13.7569 43.7328 +107.423 13.6827 43.497 +104.728 13.6643 43.4386 +102.134 13.6451 43.3777 +99.5498 13.6134 43.2767 +96.7937 13.5438 43.0556 +96.8474 13.8614 44.0651 +97.3394 14.246 45.2878 +96.9214 14.5003 46.0963 +98.0107 14.9852 47.6377 +97.3051 15.1997 48.3195 +96.8594 15.4539 49.1277 +96.4941 15.7213 49.9776 +96.6455 16.0752 51.1028 +97.0447 16.4754 52.375 +96.4752 16.7139 53.1332 +96.761 17.103 54.37 +96.9456 17.4793 55.5664 +96.4336 17.7325 56.3714 +96.5927 18.1116 57.5763 +96.0623 18.3638 58.3782 +96.0278 18.7127 59.4874 +96.3138 19.1291 60.811 +96.3342 19.498 61.9838 +95.7635 19.7495 62.7834 +96.0046 20.1717 64.1254 +96.147 20.5791 65.4206 +96.1112 20.9535 66.611 +96.2217 21.3651 67.9192 +96.2356 21.7607 69.1768 +96.2338 22.158 70.4399 +96.2949 22.5754 71.7668 +95.6347 22.8267 72.5657 +96.2107 23.3784 74.3196 +96.2987 23.8203 75.7244 +96.2152 24.2259 77.0136 +96.1153 24.6328 78.3073 +96.0745 25.0607 79.6676 +96.0161 25.4903 81.0333 +95.94 25.9215 82.4039 +95.8461 26.3541 83.7794 +96.3193 26.952 85.6801 +95.6769 27.2445 86.61 +95.9599 27.8067 88.397 +95.7895 28.2462 89.7942 +95.6715 28.7081 91.2627 +96.0947 29.3428 93.2803 +95.9323 29.8092 94.7629 +95.6125 30.2335 96.1119 +96.0254 30.8997 98.2296 +95.6636 31.3267 99.5871 +95.9533 31.9775 101.656 +95.4835 32.385 102.952 +95.719 33.0413 105.038 +95.274 33.4734 106.411 +95.2611 34.0663 108.296 +95.4753 34.7544 110.484 +95.342 35.3296 112.312 +94.9957 35.8361 113.923 +94.9966 36.4855 115.987 +94.845 37.0898 117.908 +94.9664 37.8163 120.217 +94.6958 38.4011 122.077 +94.6334 39.0847 124.25 +94.5965 39.795 126.508 +94.6401 40.5574 128.931 +94.6465 41.3229 131.365 +94.6154 42.0917 133.809 +94.5468 42.8635 136.262 +94.3315 43.5875 138.564 +94.7259 44.6174 141.838 +94.5906 45.4237 144.401 +94.1542 46.1045 146.566 +94.3035 47.0951 149.714 +94.3006 48.0385 152.714 +93.9 48.8034 155.145 +93.8559 49.7786 158.245 +93.8591 50.8096 161.523 +94.0957 52.003 165.317 +93.8474 52.9626 168.367 +94.012 54.1911 172.273 +94.0214 55.371 176.023 +93.6123 56.3402 179.105 +93.5046 57.5273 182.878 +93.7223 58.9616 187.438 +93.8635 60.4014 192.015 +93.5133 61.5731 195.74 +93.5494 63.0492 200.432 +93.5465 64.5576 205.228 +93.8145 66.3193 210.828 +93.6044 67.8101 215.567 +93.5393 69.4716 220.849 +93.5311 71.2495 226.501 +93.2832 72.9203 231.812 +93.4353 74.9887 238.388 +93.0637 76.7249 243.907 +92.6982 78.5499 249.709 +92.9172 80.9742 257.416 +92.7164 83.1494 264.33 +92.427 85.3582 271.352 +92.1663 87.7146 278.843 +92.1263 90.4207 287.446 +92.0494 93.2476 296.433 +92.0077 96.2831 306.082 +92.0102 99.5566 316.489 +91.7772 102.779 326.733 +91.7643 106.473 338.475 +91.4949 110.115 350.055 +91.2071 113.998 362.398 +106.829 138.851 441.404 +104.454 141.381 449.448 +100.006 141.18 448.808 +95.9159 141.466 449.717 +91.4929 141.24 448.999 +90.2613 146.136 464.563 +89.8977 152.986 486.34 +89.6539 160.762 511.061 +89.6213 169.794 539.771 +86.8528 174.384 554.365 +88.027 187.947 597.481 +85.3119 194.448 618.146 +80.8969 197.702 628.49 +73.5934 193.821 616.155 +68.9679 196.902 625.947 +62.1368 193.64 615.577 +57.3485 196.695 625.289 +50.7787 193.607 615.472 +45.7184 196.187 623.674 +39.3519 193.064 613.748 +34.2434 196.067 623.292 +28.0778 192.971 613.452 +22.8033 195.946 622.91 +16.8082 192.609 612.3 +11.3929 195.856 622.623 +5.59458 192.368 611.533 +2.69784e-14 195.706 622.145 +-5.59458 192.368 611.533 +-11.3685 195.436 621.287 +-16.7611 192.069 610.584 +-22.7266 195.286 620.812 +-27.9295 191.952 610.212 +-34.0969 195.228 620.625 +-39.1016 191.836 609.844 +-45.4742 195.139 620.344 +-50.2531 191.602 609.101 +-56.8168 194.871 619.492 +-61.4467 191.489 608.741 +-68.1421 194.544 618.452 +-72.5746 191.138 607.625 +-79.6172 194.574 618.549 +-83.7587 190.907 606.892 +-90.894 194.068 616.94 +-95.1154 190.974 607.103 +-102.605 194.393 617.971 +-106.456 190.891 606.838 +-113.948 193.914 616.451 +-117.651 190.481 605.536 +-125.323 193.465 615.022 +-129.091 190.395 605.261 +-139.093 196.36 624.225 +-139.041 188.196 598.271 +-142.619 185.368 589.283 +-142.378 177.956 565.719 +-142.298 171.258 544.427 +-142.316 165.127 524.936 +-143.774 161.009 511.845 +-144.148 155.971 495.829 +-110.916 116.071 368.987 +-113.237 114.711 364.664 +-116.189 114.037 362.523 +-119.711 113.929 362.179 +-123.545 114.096 362.71 +-129.175 115.846 368.272 +-1066.79 929.67 2955.41 +-1093.78 926.841 2946.41 +-1120.7 923.942 2937.2 +-1147.52 920.971 2927.75 +-1174.26 917.932 2918.09 +-470.698 358.565 1139.87 +-469.007 348.33 1107.34 +-158.622 114.911 365.301 +-162.232 114.685 364.581 +-165.561 114.256 363.216 +-168.918 113.845 361.911 +-173.632 114.327 363.443 +-142.042 91.4043 290.573 +-142.671 89.756 285.333 +-145.189 89.3251 283.963 +-149.253 89.8277 285.561 +-433.788 255.467 812.124 +-434.782 250.621 796.72 +-436.562 246.373 783.217 +-438.079 242.109 769.66 +-439.625 237.987 756.557 +-441.901 234.372 745.064 +-436.5 226.865 721.2 +-430.9 219.508 697.812 +-429.593 214.539 682.016 +-431.061 211.078 671.012 +-438.402 210.526 669.259 +-440.747 207.599 659.952 +-444.861 205.556 653.458 +-447.621 202.932 645.116 +-450.15 200.259 636.621 +-452.785 197.688 628.446 +-454.559 194.799 619.262 +-457.304 192.38 611.572 +-135.72 56.0537 178.194 +-135.382 54.9002 174.527 +-459.546 182.994 581.735 +-477.086 186.569 593.099 +-469.565 180.347 573.32 +-472.489 178.242 566.627 +-474.822 175.948 559.336 +-477.886 173.957 553.007 +-480.741 171.918 546.523 +-483.969 170.036 540.542 +-485.943 167.743 533.252 +-488.815 165.79 527.044 +-491.811 163.901 521.04 +-494.87 162.055 515.169 +-497.109 159.962 508.518 +-500.503 158.263 503.115 +-502.446 156.126 496.321 +-505.636 154.398 490.828 +-508.693 152.643 485.251 +-510.045 150.401 478.122 +-526.053 152.437 484.594 +-517.555 147.377 468.508 +-520.212 145.565 462.75 +-523.467 143.934 457.565 +-140.975 38.0891 121.085 +-142.302 37.7782 120.096 +-142.716 37.227 118.344 +-141.816 36.3451 115.54 +-141.871 35.7215 113.558 +-141.902 35.1007 111.584 +-146.259 35.5397 112.98 +-153.704 36.6871 116.628 +-156.184 36.6157 116.401 +-156.767 36.0957 114.748 +-157.81 35.684 113.439 +-159.968 35.5193 112.915 +-161.561 35.2225 111.972 +-383.367 82.055 260.852 +-2683.95 563.927 1792.72 +-381.488 78.675 250.107 +-2716.34 549.788 1747.77 +-385.005 76.4665 243.086 +-380.421 74.1317 235.663 +-381.044 72.8426 231.565 +-382.385 71.699 227.93 +-382.324 70.3028 223.491 +-383.668 69.1754 219.907 +-380.582 67.2697 213.849 +-381.051 66.0154 209.862 +-381.216 64.7197 205.743 +-380.984 63.3697 201.451 +-380.088 61.9257 196.861 +-380.639 60.7308 193.062 +-379.375 59.2608 188.389 +-380.46 58.1697 184.921 +-381.153 57.0241 181.279 +-381.448 55.8265 177.472 +-380.62 54.4768 173.181 +-380.74 53.275 169.36 +-379.545 51.9028 164.998 +-380.492 50.8336 161.599 +-379.938 49.5721 157.589 +-379.984 48.3995 153.861 +-380.454 47.2877 150.327 +-380.887 46.1772 146.796 +-381.378 45.0792 143.306 +-114.084 13.1408 41.7745 +-112.494 12.6209 40.1217 +-111.166 12.1411 38.5964 +-110.006 11.6893 37.1601 +-109.302 11.2933 35.9013 +-109.057 10.9495 34.8084 +-108.801 10.6079 33.7224 +-108.819 10.2955 32.7294 +-108.732 9.97513 31.7108 +-108.73 9.66444 30.7231 +-109.776 9.44554 30.0272 +-109.372 9.1016 28.9338 +-109.246 8.78377 27.9234 +-109.788 8.51991 27.0847 +-111.002 8.3047 26.4005 +-111.045 7.99971 25.431 +-111.468 7.72212 24.5485 +-113.446 7.54685 23.9913 +-114.443 7.29941 23.2047 +-117.689 7.1849 22.8407 +-120.936 7.05395 22.4244 +-158.304 8.80402 27.9878 +-158.16 8.36832 26.6027 +-159.877 8.02813 25.5213 +-162.87 7.7406 24.6072 +-853.62 38.2811 121.695 +-863.019 36.3952 115.7 +-379.723 15.0009 47.6878 +-379.748 13.9914 44.4785 +-381.631 13.0475 41.4777 +-404.074 12.7439 40.5128 +-404.529 11.6882 37.1567 +-403.558 10.5945 33.6798 +-405.147 9.56797 30.4164 +-404.811 8.49414 27.0027 +-405.043 7.43378 23.6319 +-145.5 2.28814 7.27395 +-145.561 1.90705 6.06247 +-402.755 4.22033 13.4164 +-145.35 1.1421 3.63073 +-146.078 0.765118 2.4323 +-145.194 0.380216 1.2087 +120.5 5.77316e-15 2.84217e-14 +119.695 0.322421 0.993565 +120.582 0.649662 2.00199 +120.359 0.972815 2.99781 +120.327 1.29697 3.99673 +120.385 1.62238 4.99949 +120.235 1.94497 5.99357 +120.974 2.28383 7.03779 +120.905 2.60959 8.04166 +120.627 2.93031 9.02999 +120.739 3.2605 10.0475 +120.443 3.57966 11.031 +121.033 3.92654 12.0999 +120.918 4.25239 13.1041 +120.594 4.57041 14.0841 +120.956 4.91522 15.1466 +121.011 5.24944 16.1766 +120.561 5.5615 17.1382 +120.3 5.88118 18.1233 +119.834 6.18972 19.0741 +120.442 6.55515 20.2002 +120.842 6.91304 21.3031 +120.642 7.23828 22.3053 +120.335 7.55682 23.287 +120.312 7.89348 24.3244 +120.67 8.25733 25.4456 +120.432 8.58208 26.4464 +121.352 8.9926 27.7114 +120.996 9.31167 28.6947 +121.503 9.69904 29.8884 +121.031 10.01 30.8465 +120.936 10.3521 31.9008 +121.407 10.7455 33.1131 +121.195 11.0809 34.1466 +120.686 11.3888 35.0957 +120.454 11.7228 36.1246 +121.735 12.2089 37.6228 +121.291 12.5266 38.6017 +121.499 12.9131 39.7927 +122.261 13.3635 41.1807 +121.596 13.6606 42.0964 +121.205 13.9876 43.104 +120.432 14.2694 43.9722 +116.86 14.2086 43.7849 +114.322 14.2569 43.9337 +110.681 14.1508 43.6069 +107.423 14.0745 43.3718 +104.637 14.0434 43.2757 +102.134 14.0359 43.2528 +99.5498 14.0033 43.1522 +97.6093 14.0491 43.2935 +96.5766 14.2185 43.8154 +97.4293 14.6675 45.1991 +96.9214 14.9156 45.9636 +97.8325 15.3863 47.4142 +97.8373 15.7205 48.444 +97.0359 15.9255 49.0756 +96.4062 16.1568 49.7884 +96.7329 16.5505 51.0017 +96.1743 16.7952 51.7559 +96.4752 17.1926 52.9802 +96.6748 17.5771 54.1652 +96.2599 17.8527 55.0146 +96.4336 18.2403 56.2091 +96.6775 18.6466 57.461 +96.737 19.0224 58.6191 +96.8665 19.4167 59.8342 +96.3138 19.6769 60.6359 +95.7538 19.9356 61.4331 +96.5876 20.4899 63.1414 +95.9227 20.7316 63.8862 +96.0656 21.1505 65.177 +96.1112 21.5536 66.4192 +96.2217 21.9769 67.7237 +96.3154 22.4025 69.035 +96.2338 22.7926 70.2372 +96.2949 23.2219 71.5602 +95.713 23.4996 72.416 +96.2107 24.0479 74.1057 +95.6043 24.3258 74.9619 +96.2152 24.9197 76.792 +96.1153 25.3382 78.0818 +96.0745 25.7784 79.4383 +96.0161 26.2203 80.8 +95.94 26.6638 82.1667 +95.7723 27.0881 83.474 +96.3924 27.745 85.4983 +96.1121 28.1523 86.7535 +96.0319 28.6245 88.2087 +95.8609 29.0768 89.6024 +95.6715 29.5303 91 +96.0947 30.1831 93.0118 +95.3071 30.463 93.8743 +95.6125 31.0994 95.8353 +95.3434 31.5587 97.2506 +95.6636 32.2238 99.3004 +95.8864 32.8705 101.293 +95.4835 33.3125 102.655 +95.1286 33.778 104.09 +95.274 34.432 106.105 +95.2611 35.0419 107.985 +94.8393 35.5114 109.431 +94.9015 36.1735 111.472 +94.9957 36.8624 113.595 +94.8734 37.4816 115.503 +94.845 38.152 117.569 +94.7859 38.8252 119.643 +94.7553 39.5256 121.801 +94.6922 40.229 123.969 +94.9449 41.0856 126.609 +94.5828 41.6936 128.482 +94.9297 42.6338 131.38 +94.1681 43.0925 132.793 +94.5468 44.091 135.87 +94.3859 44.8618 138.245 +94.0274 45.5569 140.387 +94.4846 46.6721 143.824 +94.1542 47.4249 146.144 +94.355 48.4703 149.365 +93.9454 49.2281 151.7 +93.9 50.201 154.699 +93.8067 51.1773 157.707 +93.8591 52.2647 161.058 +94.0957 53.4923 164.841 +93.8943 54.5069 167.967 +93.9197 55.6884 171.608 +94.0668 56.9845 175.602 +93.5677 57.9262 178.504 +93.9429 59.4523 183.207 +93.6792 60.6224 186.813 +93.8635 62.1312 191.462 +93.5548 63.3646 195.263 +93.224 64.6295 199.161 +93.4668 66.35 204.463 +93.4238 67.9347 209.346 +93.5661 69.7237 214.859 +93.2021 71.2034 219.419 +93.5311 73.29 225.849 +93.319 75.0373 231.234 +93.3653 77.0785 237.524 +93.1321 78.9802 243.384 +92.8317 80.9158 249.349 +92.7218 83.1181 256.135 +92.5895 85.4137 263.209 +92.0253 87.4212 269.395 +92.3167 90.3739 278.494 +92.331 93.2167 287.255 +91.5665 95.415 294.029 +91.9526 98.9813 305.019 +92.0369 102.437 315.669 +91.7514 105.693 325.701 +91.8394 109.612 337.777 +91.3013 113.029 348.309 +91.2304 117.293 361.447 +96.1441 128.542 396.111 +104.8 145.912 449.641 +100.338 145.706 449.004 +96.4143 146.273 450.752 +91.8745 145.891 449.574 +90.1337 150.109 462.572 +89.8977 157.367 484.94 +89.5383 165.153 508.934 +88.8704 173.193 533.708 +87.9762 181.698 559.918 +88.7229 194.858 600.471 +82.2837 192.917 594.489 +78.0817 196.286 604.873 +71.0011 192.349 592.74 +66.5533 195.449 602.293 +59.8748 191.934 591.461 +55.3526 195.286 601.79 +48.9036 191.797 591.038 +44.2465 195.308 601.858 +37.9172 191.353 589.671 +33.1287 195.116 601.266 +27.1225 191.744 590.875 +22.039 194.802 600.298 +16.1826 190.75 587.812 +11.0037 194.583 599.622 +5.38689 190.531 587.135 +3.35287e-14 194.026 597.906 +-5.39125 190.685 587.611 +-10.9706 193.996 597.815 +-16.1355 190.195 586.101 +-21.9588 194.093 598.113 +-26.9088 190.233 586.219 +-32.9246 193.914 597.562 +-37.6608 190.059 585.683 +-43.8698 193.646 596.734 +-48.4328 189.951 585.348 +-54.8122 193.38 595.915 +-59.0793 189.384 583.603 +-65.8007 193.239 595.483 +-70.0049 189.651 584.423 +-76.7168 192.855 594.299 +-80.6913 189.183 582.983 +-87.8321 192.902 594.442 +-91.5236 189.025 582.496 +-98.8509 192.643 593.645 +-102.379 188.838 581.92 +-109.954 192.476 593.131 +-113.168 188.47 580.786 +-121.126 192.34 592.71 +-124.326 188.618 581.243 +-132.211 191.99 591.632 +-137.006 190.752 587.819 +-139.965 187.128 576.65 +-142.448 183.142 564.368 +-142.226 176.073 542.583 +-142.291 169.826 523.333 +-143.696 165.531 510.096 +-143.774 160.021 493.119 +-111.054 119.543 368.381 +-113.748 118.529 365.256 +-116.715 117.834 363.116 +-120.493 117.957 363.494 +-124.009 117.804 363.023 +-129.524 119.485 368.204 +-1066.79 956.295 2946.9 +-1093.78 953.384 2937.93 +-1120.7 950.402 2928.74 +-1147.52 947.347 2919.33 +-1174.26 944.22 2909.69 +-465.457 364.726 1123.93 +-465.973 355.988 1097 +-159.732 119.029 366.797 +-162.818 118.395 364.845 +-166.159 117.952 363.48 +-169.894 117.782 362.956 +-424.936 287.809 886.907 +-142.084 94.0501 289.823 +-143.059 92.5771 285.284 +-145.715 92.216 284.171 +-149.209 92.3725 284.653 +-433.788 262.783 809.786 +-435.383 258.155 795.525 +-436.937 253.647 781.634 +-438.7 249.395 768.531 +-440.74 245.424 756.292 +-442.344 241.326 743.665 +-443.8 237.265 731.15 +-446.278 233.853 720.637 +-445.25 228.726 704.838 +-450.133 226.729 698.683 +-433.951 214.357 660.557 +-439.404 212.893 656.048 +-442.138 210.148 647.589 +-443.04 206.607 636.676 +-450.094 205.969 634.709 +-452.219 203.095 625.854 +-455.534 200.807 618.804 +-457.478 197.964 610.043 +-459.707 195.301 601.837 +-462.475 192.914 594.481 +-135.649 55.5631 171.222 +-136.058 54.7303 168.656 +-469.996 185.682 572.193 +-473.36 183.684 566.037 +-475.389 181.203 558.391 +-478.649 179.224 552.295 +-481.576 177.148 545.896 +-484.878 175.234 539.998 +-487.124 172.966 533.01 +-490.008 170.954 526.809 +-492.212 168.733 519.964 +-495.951 167.059 514.807 +-497.722 164.747 507.68 +-501.053 162.974 502.218 +-503.905 161.063 496.33 +-506.477 159.084 490.229 +-2316.69 715.077 2203.57 +-517.677 157.023 483.88 +-521.234 155.365 478.771 +-518.933 152.001 468.403 +-386.886 111.359 343.161 +-524.941 148.473 457.532 +-140.826 39.1385 120.609 +-141.103 38.5329 118.742 +-143.017 38.374 118.252 +-141.816 37.3859 115.208 +-141.718 36.705 113.109 +-143.059 36.4004 112.171 +-146.881 36.713 113.134 +-155.817 38.2567 117.891 +-155.711 37.5504 115.715 +-157.401 37.2798 114.881 +-157.81 36.7059 113.112 +-159.968 36.5365 112.59 +-160.994 36.1041 111.258 +-2667.45 587.285 1809.77 +-384.51 83.1036 256.091 +-383.136 81.2779 250.464 +-385.171 80.1911 247.115 +-382.253 78.0943 240.654 +-380.756 76.322 235.192 +-381.129 74.9453 230.95 +-381.791 73.6378 226.921 +-382.068 72.268 222.7 +-382.125 70.8704 218.393 +-382.133 69.478 214.102 +-380.618 67.8288 209.02 +-381.216 66.5731 205.151 +-379.672 64.9601 200.18 +-380.879 63.8319 196.703 +-380.904 62.5136 192.641 +-381.237 61.2573 188.769 +-380.46 59.8356 184.388 +-379.094 58.3402 179.78 +-379.74 57.1682 176.168 +-381.433 56.1564 173.05 +-380.015 54.6964 168.551 +-379.909 53.4401 164.68 +-380.583 52.3018 161.172 +-380.855 51.1147 157.514 +-379.34 49.701 153.158 +-379.807 48.5592 149.639 +-381.351 47.5576 146.553 +-379.61 46.1554 142.232 +-113.803 13.484 41.552 +-112.307 12.9607 39.9396 +-109.944 12.3516 38.0625 +-110.195 12.0447 37.1166 +-109.302 11.6168 35.798 +-109.057 11.2631 34.7082 +-108.611 10.8926 33.5666 +-109.105 10.6182 32.721 +-108.636 10.2518 31.5916 +-109.401 10.0026 30.8238 +-109.584 9.69904 29.8884 +-109.372 9.36226 28.8505 +-110.019 9.09924 28.0401 +-109.885 8.77163 27.0305 +-110.517 8.50519 26.2094 +-110.947 8.22159 25.3355 +-112.345 8.00577 24.6704 +-114.129 7.80974 24.0663 +-114.835 7.5341 23.217 +-117.199 7.35989 22.6801 +-121.82 7.30896 22.5232 +-160.172 9.16304 28.2367 +-158.751 8.64014 26.6253 +-162.836 8.41089 25.9188 +-164.648 8.0492 24.8043 +-854.51 39.4185 121.471 +-863.019 37.4375 115.367 +-378.435 15.3782 47.3891 +-379.649 14.3883 44.3389 +-382.525 13.4525 41.4551 +-404.87 13.1347 40.4757 +-404.23 12.0141 37.0224 +-403.06 10.8845 33.5413 +-404.549 9.82744 30.2841 +-404.512 8.73095 26.9051 +-404.644 7.63914 23.5406 +-143.203 2.31651 7.13852 +-3273.38 44.1139 135.94 +-403.954 4.35413 13.4176 +-144.95 1.17158 3.61032 +-145.778 0.785413 2.42031 +-146.094 0.39353 1.2127 +119.7 3.55271e-15 -1.13687e-13 +119.695 0.331371 0.990616 +119.782 0.663268 1.98281 +120.459 1.00065 2.99139 +120.227 1.33187 3.98155 +120.385 1.66741 4.98465 +120.335 2.00062 5.98074 +120.076 2.32979 6.9648 +120.007 2.66211 7.95825 +120.428 3.00668 8.98831 +120.739 3.35101 10.0177 +120.343 3.67602 10.9893 +120.238 4.00902 11.9847 +120.62 4.35969 13.0331 +120.594 4.69728 14.0423 +120.857 5.04751 15.0893 +120.912 5.39072 16.1153 +120.561 5.71588 17.0873 +120.004 6.02956 18.0251 +120.721 6.40865 19.1583 +120.344 6.7316 20.1238 +119.957 7.05292 21.0843 +120.74 7.44527 22.2573 +120.335 7.7666 23.2178 +120.214 8.106 24.2325 +120.768 8.49344 25.3907 +120.432 8.82031 26.3679 +120.379 9.16816 27.4077 +120.996 9.57015 28.6095 +120.728 9.90474 29.6097 +121.224 10.3043 30.8041 +120.743 10.6225 31.7554 +121.407 11.0438 33.0148 +121.099 11.3795 34.0183 +120.781 11.7143 35.0192 +121.313 12.1341 36.2741 +121.735 12.5479 37.5111 +121.291 12.8743 38.4871 +121.499 13.2716 39.6746 +121.129 13.6074 40.6786 +121.596 14.0399 41.9714 +121.767 14.4426 43.1754 +121.365 14.7791 44.1814 +117.419 14.6728 43.8635 +114.322 14.6526 43.8032 +111.42 14.6408 43.7678 +108.067 14.552 43.5024 +105.462 14.547 43.4875 +102.134 14.4255 43.1244 +100.278 14.4972 43.3387 +97.7 14.4525 43.205 +96.7571 14.6405 43.767 +97.3394 15.0608 45.0234 +96.9214 15.3297 45.8272 +97.0306 15.6838 46.8859 +97.3938 16.0837 48.0812 +97.5657 16.4569 49.1971 +96.4062 16.6053 49.6406 +96.6455 16.9946 50.8044 +96.2613 17.2771 51.6489 +96.4752 17.6698 52.823 +96.761 18.0811 54.0526 +96.1742 18.332 54.8025 +96.4336 18.7467 56.0422 +95.8294 18.9961 56.7879 +96.5683 19.5164 58.3431 +96.1955 19.8175 59.2434 +96.3138 20.2231 60.456 +96.3342 20.6132 61.6219 +95.8459 20.897 62.4705 +95.9227 21.3071 63.6966 +96.0656 21.7376 64.9836 +96.1112 22.1519 66.2221 +96.2217 22.587 67.5227 +96.2356 23.0052 68.773 +96.3131 23.4446 70.0863 +96.2161 23.847 71.2895 +95.713 24.152 72.2011 +96.2107 24.7155 73.8857 +96.2987 25.1827 75.2823 +96.2152 25.6114 76.564 +96.1153 26.0416 77.8501 +96.0745 26.494 79.2025 +96.0161 26.9482 80.5602 +95.94 27.404 81.9229 +95.8461 27.8614 83.2903 +96.3193 28.4935 85.1799 +96.1121 28.9338 86.496 +96.0319 29.4191 87.9469 +95.8609 29.8839 89.3365 +95.6715 30.35 90.7299 +96.0947 31.021 92.7357 +95.3071 31.3087 93.5957 +95.6813 31.9855 95.6191 +95.3434 32.4347 96.9619 +95.6636 33.1184 99.0056 +95.2842 33.5707 100.358 +95.4173 34.2135 102.279 +95.8502 34.9789 104.568 +95.274 35.3878 105.79 +95.2611 36.0147 107.664 +94.7757 36.4728 109.033 +94.8386 37.1529 111.067 +94.3732 37.6373 112.515 +94.9966 38.5722 115.31 +94.4189 39.0351 116.693 +94.7859 39.903 119.288 +94.5768 40.5464 121.211 +94.751 41.3715 123.678 +94.9449 42.2261 126.233 +94.5828 42.851 128.101 +94.5332 43.6343 130.442 +94.224 44.3151 132.478 +94.6572 45.3676 135.624 +94.3859 46.1071 137.835 +94.1349 46.8748 140.13 +94.4846 47.9677 143.397 +94.0497 48.6872 145.548 +94.3035 49.7886 148.84 +93.8946 50.5671 151.168 +93.9 51.5946 154.239 +93.9052 52.6532 157.404 +93.8591 53.7156 160.58 +94.0003 54.9214 164.185 +93.8474 55.9917 167.384 +93.9658 57.2626 171.183 +94.0668 58.5664 175.081 +93.5677 59.5343 177.975 +93.8553 61.0456 182.493 +93.7223 62.3338 186.344 +93.5254 63.6259 190.206 +93.5548 65.1236 194.684 +93.5494 66.6552 199.262 +93.4668 68.1918 203.856 +93.4238 69.8205 208.725 +93.5278 71.6297 214.133 +93.2021 73.18 218.768 +93.4945 75.295 225.09 +93.319 77.1203 230.547 +93.1552 79.0399 236.286 +92.9269 80.9937 242.127 +92.9652 83.2816 248.966 +92.5916 85.3052 255.016 +92.2405 87.4538 261.439 +92.1489 89.9685 268.956 +91.7153 92.2777 275.859 +90.8399 94.2572 281.777 +87.1643 93.3493 279.063 +91.677 101.424 303.202 +91.93 105.159 314.367 +91.7772 108.657 324.825 +91.8644 112.685 336.866 +91.1562 115.982 346.723 +90.8803 120.086 358.991 +93.0173 127.813 382.091 +105.601 151.109 451.731 +100.712 150.309 449.342 +96.7931 150.924 451.179 +92.2752 150.595 450.195 +90.1701 154.338 461.386 +89.7066 161.392 482.474 +88.5976 167.955 502.091 +86.9776 174.209 520.79 +89.07 189.064 565.197 +85.9116 193.921 579.718 +79.1772 190.786 570.346 +75.1081 194.053 580.11 +68.1483 189.746 567.235 +64.1073 193.492 578.435 +57.4404 189.242 565.728 +53.2957 193.249 577.708 +46.9735 189.341 566.025 +42.5375 192.977 576.894 +36.4948 189.287 565.865 +31.8621 192.866 576.563 +26.0146 189.017 565.056 +21.3376 193.838 579.467 +15.6015 189.005 565.022 +10.5919 192.499 575.465 +5.18443 188.46 563.392 +3.27516e-14 192.052 574.13 +-5.18269 188.397 563.202 +-10.5552 191.833 573.474 +-15.5282 188.118 562.368 +-21.0967 191.65 572.927 +-25.8925 188.13 562.404 +-31.6737 191.726 573.154 +-36.2384 187.958 561.89 +-42.1887 191.395 572.164 +-46.5733 187.728 561.204 +-52.7467 191.258 571.756 +-56.894 187.442 560.348 +-63.3547 191.221 571.645 +-67.3333 187.477 560.452 +-73.865 190.841 570.509 +-77.637 187.075 559.251 +-84.4224 190.56 569.67 +-88.1979 187.213 559.664 +-95.1434 190.565 569.684 +-98.5829 186.884 558.679 +-105.925 190.572 569.704 +-109.05 186.653 557.989 +-116.699 190.454 569.353 +-119.621 186.518 557.586 +-127.221 189.872 567.614 +-130.513 186.756 558.298 +-140.189 192.632 575.863 +-142.635 188.473 563.431 +-142.686 181.545 542.721 +-142.441 174.725 522.33 +-142.195 168.349 503.269 +-118.681 135.759 405.844 +-111.413 123.258 368.473 +-114.515 122.641 366.628 +-117.212 121.621 363.581 +-121.215 121.958 364.586 +-124.812 121.859 364.291 +-1039.71 985.757 2946.87 +-1066.79 982.841 2938.15 +-1093.78 979.85 2929.21 +-1120.7 976.785 2920.05 +-1147.52 973.645 2910.66 +-1174.26 970.431 2901.05 +-464.284 373.905 1117.77 +-456.87 358.723 1072.38 +-160.459 122.89 367.374 +-163.326 122.062 364.897 +-167.076 121.896 364.401 +-170.382 121.4 362.918 +-142.447 99.1578 296.427 +-142.127 96.6894 289.048 +-143.575 95.4906 285.464 +-146.81 95.4887 285.458 +-433.481 275.811 824.521 +-434.378 270.445 808.481 +-436.399 265.94 795.013 +-437.36 260.94 780.067 +-439.272 256.653 767.251 +-440.983 252.375 754.462 +-443.23 248.522 742.942 +-444.9 244.455 730.787 +-447.649 241.083 720.704 +-448.65 236.87 708.111 +-451.857 233.915 699.277 +-452.869 229.911 687.308 +-455.576 226.856 678.175 +-449.382 219.52 656.245 +-459.598 220.278 658.511 +-445.285 209.425 626.064 +-447.631 206.615 617.666 +-455.706 206.46 617.2 +-456.665 203.098 607.151 +-460.941 201.262 601.661 +-464.973 199.341 595.918 +-463.337 195.056 583.11 +-475.382 196.535 587.53 +-135.261 54.9211 164.184 +-135.272 53.9488 161.277 +-476.71 186.751 558.281 +-479.539 184.543 551.681 +-482.219 182.309 545.003 +-486.047 180.533 539.693 +-488.042 178.103 532.429 +-491.399 176.199 526.737 +-493.283 173.794 519.549 +-496.559 171.908 513.909 +-498.95 169.737 507.421 +-501.81 167.752 501.485 +-504.183 165.626 495.13 +-507.598 163.862 489.856 +-505.723 160.431 479.601 +-525.309 163.761 489.556 +-517.493 158.532 473.925 +-519.078 156.264 467.144 +-2396.28 708.877 2119.15 +-140.82 40.935 122.373 +-142.238 40.6285 121.457 +-141.777 39.7917 118.955 +-143.017 39.4392 117.901 +-141.283 38.2794 114.434 +-142.561 37.9482 113.444 +-144.525 37.794 112.983 +-148.279 38.0913 113.872 +-156.052 39.3777 117.717 +-156.657 38.8273 116.072 +-157.243 38.2762 114.425 +-158.369 37.8584 113.176 +-161.173 37.8337 113.102 +-564.775 130.171 389.138 +-571.265 129.265 386.432 +-384.51 85.4105 255.33 +-380.664 82.9951 248.11 +-381.689 81.672 244.154 +-381.503 80.1045 239.468 +-382.937 78.8898 235.837 +-381.044 77.0087 230.213 +-380.519 75.4298 225.493 +-382.921 74.4397 222.534 +-381.697 72.7559 217.5 +-380.582 71.117 212.601 +-380.618 69.7117 208.399 +-380.258 68.2493 204.028 +-380.984 66.994 200.275 +-380.088 65.4674 195.712 +-380.639 64.2042 191.935 +-380.794 62.8845 187.99 +-381.796 61.7127 184.487 +-381.332 60.3137 180.305 +-381.268 58.9915 176.352 +-381.613 57.7425 172.618 +-381.918 56.4961 168.892 +-379.09 54.8053 163.838 +-379.395 53.5862 160.193 +-381.222 52.5843 157.198 +-380.721 51.2666 153.259 +-382.394 50.2473 150.212 +-381.536 48.9016 146.189 +-381.657 47.6923 142.574 +-113.337 13.8015 41.2587 +-111.745 13.2539 39.6217 +-110.226 12.727 38.0468 +-109.252 12.2731 36.6899 +-108.64 11.8669 35.4756 +-109.152 11.5859 34.6354 +-108.801 11.2146 33.5255 +-108.533 10.8558 32.4528 +-108.636 10.5363 31.4979 +-109.018 10.2442 30.6245 +-109.872 9.99448 29.878 +-109.565 9.63909 28.8156 +-109.826 9.3354 27.9077 +-110.853 9.09456 27.1877 +-111.099 8.78735 26.2693 +-111.823 8.51647 25.4595 +-112.247 8.22087 24.5759 +-113.055 7.951 23.7691 +-114.737 7.73665 23.1283 +-118.277 7.63377 22.8208 +-122.998 7.58451 22.6735 +-160.172 9.41741 28.1528 +-161.312 9.02322 26.9744 +-162.441 8.62341 25.7792 +-162.475 8.16349 24.4043 +-856.389 40.6019 121.377 +-864.504 38.543 115.222 +-379.723 15.8589 47.4093 +-379.748 14.7916 44.2188 +-384.413 13.8942 41.536 +-404.572 13.4894 40.3258 +-403.832 12.3354 36.8761 +-403.26 11.1921 33.4583 +-404.25 10.0928 30.1719 +-403.914 8.96002 26.7855 +-403.746 7.83375 23.4186 +-142.005 2.36089 7.05777 +-404.115 5.59724 16.7327 +-403.654 4.47167 13.3678 +-147.15 1.22237 3.65422 +-146.578 0.811644 2.42637 +-145.594 0.403068 1.20495 +119.7 3.55271e-15 -1.13687e-13 +119.695 0.340292 0.987587 +119.782 0.681126 1.97674 +120.459 1.02759 2.98225 +120.227 1.36773 3.96938 +120.385 1.71231 4.96941 +120.235 2.05278 5.9575 +120.175 2.39451 6.94927 +120.107 2.73606 7.94052 +120.527 3.09018 8.96824 +120.54 3.43553 9.97051 +120.343 3.77499 10.9557 +120.337 4.12034 11.9579 +120.62 4.47706 12.9932 +119.701 4.78801 13.8956 +120.857 5.1834 15.0431 +120.714 5.5268 16.0397 +120.462 5.86495 17.0211 +121.091 6.24796 18.1327 +120.721 6.5812 19.0998 +120.442 6.9185 20.0787 +120.055 7.24877 21.0372 +120.74 7.64572 22.1892 +120.531 7.9887 23.1846 +120.214 8.32424 24.1584 +120.084 8.67276 25.1698 +120.53 9.06508 26.3084 +120.379 9.415 27.3239 +120.996 9.82782 28.522 +121.406 10.2285 29.6849 +121.224 10.5817 30.7099 +121.61 10.9868 31.8857 +121.407 11.3411 32.9139 +121.195 11.6951 33.9411 +120.686 12.0201 34.8845 +121.313 12.4607 36.1632 +120.974 12.8052 37.1627 +122.144 13.3139 38.6393 +121.783 13.6607 39.6457 +121.412 14.0064 40.6489 +121.596 14.4179 41.8431 +121.767 14.8315 43.0434 +121.365 15.177 44.0463 +118.535 15.2111 44.1451 +115.064 15.1448 43.9527 +112.159 15.1347 43.9234 +108.804 15.0456 43.665 +106.104 15.0296 43.6185 +103.505 15.0127 43.5694 +100.278 14.8876 43.2062 +98.425 14.9518 43.3926 +95.4935 14.8383 43.0634 +97.3394 15.4663 44.8857 +97.0109 15.7569 45.7292 +97.0306 16.1061 46.7426 +98.1034 16.637 48.2835 +96.6828 16.747 48.6027 +96.4941 17.0679 49.5339 +96.6455 17.4521 50.6491 +96.9576 17.8706 51.8635 +96.4752 18.1455 52.6615 +96.6748 18.5514 53.8393 +96.9456 18.9765 55.0731 +96.4336 19.2514 55.8709 +96.5927 19.6629 57.0652 +96.5683 20.0418 58.1647 +96.0278 20.3156 58.9593 +96.3138 20.7676 60.2711 +96.4171 21.1863 61.4864 +96.5876 21.6257 62.7615 +96.0046 21.8995 63.556 +96.0656 22.3229 64.7848 +96.1112 22.7484 66.0196 +96.2217 23.1951 67.3162 +96.3154 23.6442 68.6196 +96.2338 24.056 69.8145 +96.2949 24.5091 71.1297 +95.6347 24.782 71.9215 +96.2107 25.3809 73.6598 +96.2987 25.8607 75.0521 +96.2152 26.301 76.3299 +96.0393 26.7216 77.5507 +95.9991 27.186 78.8983 +96.0161 27.6737 80.3138 +96.0143 28.1636 81.7356 +95.8461 28.6115 83.0356 +96.3193 29.2606 84.9194 +95.6769 29.5782 85.841 +95.9599 30.1885 87.6122 +95.7895 30.6657 88.997 +95.7423 31.1902 90.5194 +95.4638 31.6471 91.8453 +95.8629 32.3391 93.8536 +95.6125 32.8232 95.2586 +95.4116 33.3318 96.7345 +95.6636 34.01 98.7029 +95.3511 34.4987 100.121 +95.6161 35.2076 102.178 +95.063 35.6255 103.391 +95.274 36.3406 105.467 +95.3254 37.0091 107.407 +94.7757 37.4547 108.7 +94.9015 38.1786 110.801 +94.8712 38.8546 112.763 +94.8734 39.5592 114.808 +94.9668 40.3186 117.011 +94.7257 40.9513 118.848 +94.8148 41.7429 121.145 +94.6922 42.4589 123.223 +95.2353 43.4956 126.232 +94.6401 44.0314 127.787 +94.5898 44.8358 130.121 +94.7273 45.7512 132.778 +94.602 46.5621 135.131 +94.4949 47.4029 137.571 +94.1886 48.1645 139.782 +94.4846 49.2591 142.958 +94.0497 49.998 145.103 +94.355 51.1571 148.467 +94.3514 52.1813 151.439 +93.95 53.0117 153.849 +93.8559 54.0424 156.84 +93.8591 55.1618 160.089 +94.1434 56.4861 163.932 +94.2699 57.7582 167.624 +93.8735 58.7463 170.492 +94.0214 60.1139 174.461 +93.6123 61.1661 177.514 +93.5484 62.4842 181.34 +93.7653 64.0414 185.859 +93.4832 65.3093 189.539 +93.5548 66.8769 194.088 +93.5901 68.4797 198.74 +93.5067 70.0578 203.32 +93.3847 71.6703 208 +93.6044 73.6185 213.653 +93.5018 75.392 218.8 +93.4945 77.3222 224.402 +93.3907 79.2576 230.019 +93.0851 81.1067 235.385 +92.6191 82.8991 240.587 +92.9652 85.5238 248.205 +92.559 87.5713 254.147 +92.6847 90.2407 261.894 +92.2416 92.4836 268.403 +88.197 91.1268 264.465 +87.2145 92.9319 269.704 +87.5903 96.331 279.569 +91.2084 103.622 300.729 +91.7429 107.77 312.767 +91.8031 111.614 323.924 +91.589 115.372 334.829 +91.3739 119.39 346.489 +91.2538 123.826 359.364 +91.6676 129.35 375.396 +104.216 153.142 444.443 +101.274 155.216 450.464 +95.6368 153.136 444.427 +92.5996 155.193 450.396 +90.0243 158.237 459.231 +89.5677 165.481 480.254 +86.7655 168.91 490.205 +87.9787 180.959 525.174 +86.4537 188.451 546.918 +82.6967 191.69 556.318 +76.0707 188.236 546.293 +72.2563 191.711 556.378 +65.7145 187.895 545.304 +61.5986 190.926 554.101 +55.5139 187.819 545.082 +51.2824 190.955 554.185 +45.3101 187.554 544.313 +40.954 190.795 553.721 +35.1762 187.36 543.751 +30.6427 190.479 552.802 +25.0811 187.141 543.115 +20.4337 190.624 553.222 +15.023 186.897 542.406 +10.1887 190.157 551.868 +5.00816 186.954 542.572 +3.16414e-14 189.893 551.102 +-4.99507 186.465 541.154 +-10.187 190.125 551.774 +-14.9758 186.311 540.706 +-20.3115 189.484 549.915 +-24.9939 186.49 541.226 +-30.5014 189.6 550.252 +-34.9442 186.124 540.165 +-40.661 189.43 549.759 +-44.9806 186.19 540.355 +-50.8292 189.268 549.287 +-54.9196 185.808 539.248 +-60.961 188.95 548.365 +-64.9334 185.662 538.823 +-71.1717 188.833 548.026 +-74.9873 185.555 538.513 +-81.3606 188.593 547.33 +-84.9165 185.101 537.194 +-91.5924 188.392 546.745 +-95.1004 185.136 537.296 +-101.897 188.259 546.36 +-105.132 184.791 536.296 +-112.138 187.939 545.431 +-115.534 184.995 536.888 +-122.709 188.07 545.81 +-125.838 184.914 536.653 +-133.666 188.613 547.387 +-137.733 186.895 542.402 +-142.129 185.706 538.952 +-142.216 179.145 519.909 +-142.143 172.818 501.547 +-115.42 135.584 393.488 +-112.019 127.265 369.346 +-114.771 126.224 366.322 +-117.709 125.425 364.005 +-121.666 125.707 364.824 +-125.585 125.914 365.424 +-1039.59 1012.17 2937.5 +-1066.66 1009.18 2928.81 +-1093.65 1006.11 2919.9 +-1120.7 1003.08 2911.12 +-1147.52 999.859 2901.76 +-1174.26 996.558 2892.18 +-466.153 385.519 1118.84 +-1227.4 989.672 2872.2 +-161.148 126.741 367.823 +-164.068 125.918 365.435 +-168.033 125.895 365.367 +-171.521 125.501 364.226 +-141.535 101.175 293.628 +-142.253 99.3812 288.421 +-143.532 98.0322 284.506 +-147.819 98.7329 286.54 +-433.972 283.557 822.93 +-435.195 278.249 807.525 +-436.306 273.042 792.415 +-437.547 268.081 778.016 +-439.797 263.878 765.819 +-441.274 259.341 752.651 +-443.28 255.241 740.753 +-445.5 251.376 729.535 +-447.801 247.657 718.744 +-449.268 243.583 706.918 +-452.014 240.296 697.38 +-454.088 236.736 687.05 +-456.651 233.513 677.695 +-458.477 229.993 667.48 +-461.364 227.078 659.02 +-463.235 223.733 649.31 +-465.756 220.769 640.71 +-451.29 209.963 609.35 +-455.794 208.168 604.14 +-457.297 205.046 595.079 +-459.679 202.377 587.332 +-466.226 201.557 584.952 +-468.929 199.086 577.782 +-471.843 196.744 570.985 +-475.601 194.784 565.296 +-135.304 54.4321 157.971 +-135.294 53.4675 155.172 +-482.733 187.417 543.915 +-486.631 185.616 538.69 +-488.895 183.218 531.729 +-491.995 181.162 525.764 +-494.22 178.812 518.944 +-497.167 176.752 512.964 +-499.018 174.331 505.94 +-502.43 172.481 500.568 +-504.808 170.296 494.227 +-508.44 168.552 489.167 +-506.218 164.912 478.603 +-526.165 168.444 488.854 +-516.918 162.62 471.951 +-520.529 160.92 467.016 +-522.918 158.856 461.028 +-140.673 41.9931 121.871 +-142.609 41.8312 121.401 +-142.676 41.122 119.343 +-142.263 40.2873 116.921 +-141.436 39.3524 114.207 +-142.714 39.0116 113.218 +-145.683 39.1227 113.541 +-149.989 39.568 114.833 +-156.209 40.4786 117.476 +-156.814 39.9127 115.833 +-157.957 39.485 114.592 +-158.769 38.9758 113.114 +-160.852 38.7748 112.531 +-566.959 134.192 389.449 +-567.113 131.781 382.451 +-586.349 133.751 388.169 +-576.888 129.164 374.855 +-380.445 83.5979 242.615 +-381.503 82.2612 238.736 +-381.008 80.606 233.932 +-383.153 79.5195 230.779 +-381.367 77.6333 225.305 +-381.301 76.1204 220.914 +-383.325 75.0336 217.76 +-383.77 73.6435 213.726 +-380.618 71.5886 207.762 +-381.129 70.247 203.869 +-379.672 68.5608 198.975 +-381.67 67.5099 195.925 +-380.815 65.9634 191.437 +-382.036 64.7881 188.026 +-380.371 63.1377 183.236 +-379.721 61.676 178.994 +-381.358 60.5941 175.854 +-379.808 59.0167 171.276 +-381.012 57.8797 167.977 +-380.91 56.5512 164.121 +-380.218 55.1481 160.049 +-380.855 53.948 156.566 +-381.365 52.7361 153.049 +-379.714 51.2385 148.703 +-380.887 50.1325 145.493 +-115.093 14.7693 42.863 +-113.897 14.2431 41.3358 +-111.183 13.5422 39.3019 +-110.602 13.1142 38.0598 +-109.252 12.6036 36.5777 +-108.64 12.1864 35.3671 +-109.247 11.9081 34.5594 +-108.801 11.5166 33.423 +-109.01 11.197 32.4957 +-108.541 10.8105 31.3739 +-109.114 10.5293 30.5577 +-109.872 10.2636 29.7866 +-109.372 9.88121 28.677 +-110.309 9.6289 27.9447 +-110.466 9.30681 27.0099 +-110.808 9.00029 26.1204 +-111.434 8.71533 25.2934 +-112.053 8.42755 24.4582 +-113.641 8.20739 23.8192 +-115.226 7.97883 23.1559 +-117.983 7.81982 22.6944 +-125.452 7.9441 23.0551 +-159.877 9.65314 28.015 +-160.622 9.22654 26.777 +-163.033 8.88786 25.7941 +-165.043 8.51577 24.7142 +-857.675 41.7576 121.188 +-865.989 39.6488 115.068 +-380.616 16.3241 47.3755 +-380.641 15.2256 44.1873 +-899.779 33.3972 96.9245 +-404.174 13.839 40.163 +-402.339 12.6207 36.6275 +-404.754 11.5361 33.4796 +-404.15 10.362 30.0722 +-404.113 9.20578 26.7168 +-403.746 8.04467 23.347 +-144.801 2.4722 7.17473 +-403.516 5.73943 16.6568 +-402.755 4.58183 13.2973 +-147.15 1.25528 3.64305 +-146.878 0.835203 2.4239 +-146.094 0.415344 1.2054 +119.8 1.77636e-15 -1.13687e-13 +119.895 0.34977 0.986116 +119.882 0.699513 1.97216 +119.759 1.04833 2.95559 +120.427 1.40582 3.96346 +120.485 1.75853 4.95787 +120.335 2.10819 5.94367 +120.275 2.45915 6.93314 +120.306 2.81225 7.92866 +120.627 3.17359 8.94739 +120.54 3.52534 9.93911 +120.443 3.87685 10.9301 +120.636 4.23855 11.9499 +120.719 4.59788 12.9629 +120.495 4.94577 13.9438 +120.956 5.32328 15.0081 +120.714 5.67128 15.9892 +120.462 6.01827 16.9675 +120.992 6.40604 18.0608 +120.721 6.75324 19.0396 +120.442 7.09936 20.0154 +121.039 7.49917 21.1426 +120.936 7.85836 22.1553 +120.531 8.19753 23.1115 +121.192 8.61138 24.2783 +120.865 8.95734 25.2537 +120.627 9.30958 26.2468 +120.477 9.66894 27.2599 +121.19 10.1009 28.4777 +120.922 10.454 29.4734 +121.224 10.8583 30.6131 +120.936 11.2115 31.609 +121.503 11.6468 32.8362 +121.291 12.0103 33.861 +120.877 12.3539 34.8298 +121.313 12.7865 36.0493 +121.069 13.1502 37.0748 +121.385 13.5771 38.2784 +121.499 13.9851 39.4287 +121.318 14.3614 40.4894 +121.69 14.8062 41.7435 +121.674 15.2074 42.8748 +121.926 15.6457 44.1104 +119.186 15.6945 44.2479 +115.249 15.5657 43.8848 +113.175 15.671 44.1818 +109.632 15.5565 43.8589 +107.021 15.5558 43.8569 +103.596 15.4187 43.4704 +101.825 15.5124 43.7346 +98.5157 15.3568 43.2958 +96.8474 15.4421 43.5363 +97.3394 15.8706 44.7444 +97.0109 16.1688 45.5852 +97.4761 16.603 46.8093 +98.3695 17.1182 48.2619 +97.8306 17.3888 49.0249 +96.6699 17.546 49.4679 +96.9079 17.957 50.6266 +96.2613 18.206 51.3288 +96.5618 18.6366 52.5427 +96.761 19.0533 53.7176 +97.0313 19.4898 54.9482 +96.5189 19.7721 55.7441 +96.6775 20.1947 56.9354 +96.1466 20.4759 57.7284 +97.1181 21.0833 59.4409 +96.3972 21.3289 60.1333 +96.5 21.7589 61.3455 +95.8459 22.0206 62.0834 +96.0046 22.472 63.3559 +96.147 22.9259 64.6356 +96.1921 23.3627 65.8671 +96.3824 23.8412 67.2163 +96.3154 24.2623 68.4035 +96.3131 24.7052 69.652 +95.6645 24.9852 70.4415 +95.6347 25.4298 71.695 +95.7444 25.9182 73.0719 +95.7586 26.3879 74.3961 +96.2918 27.01 76.1501 +96.2674 27.4853 77.49 +95.6217 27.787 78.3407 +96.091 28.4193 80.1234 +96.0143 28.8998 81.4782 +95.9198 29.3821 82.8378 +95.7342 29.8432 84.1377 +95.6769 30.3514 85.5707 +96.1757 31.0473 87.5327 +95.9322 31.5142 88.8489 +95.813 32.0292 90.3009 +95.604 32.5221 91.6905 +95.9323 33.2085 93.6258 +95.6813 33.7053 95.0265 +96.0936 34.4478 97.1197 +95.7311 34.9238 98.4618 +95.3511 35.4005 99.8058 +95.0197 35.9026 101.221 +95.719 36.8092 103.777 +95.339 37.316 105.206 +95.2611 37.9511 106.997 +94.8393 38.4596 108.43 +95.5938 39.4621 111.257 +94.9335 39.8967 112.482 +95.0581 40.6726 114.669 +94.9668 41.3726 116.643 +94.9062 42.102 118.699 +94.8148 42.8341 120.763 +94.8098 43.6227 122.987 +94.4804 44.2789 124.837 +94.6975 45.2099 127.462 +94.5898 46.0078 129.711 +94.3358 46.7533 131.813 +94.5468 47.7515 134.627 +94.277 48.5301 136.822 +94.1886 49.4236 139.341 +94.4316 50.5184 142.428 +94.1542 51.3621 144.807 +94.355 52.4944 147.999 +93.7931 53.2285 150.069 +93.9 54.3687 153.283 +93.9544 55.5133 156.51 +93.8591 56.6038 159.585 +93.714 57.6983 162.67 +94.2229 59.2387 167.013 +93.9658 60.3415 170.123 +94.0668 61.7154 173.996 +93.6569 62.7952 177.04 +93.5922 64.1477 180.854 +93.4209 65.4742 184.593 +93.5677 67.0774 189.113 +93.5548 68.6252 193.477 +93.6308 70.3003 198.2 +93.5864 71.9503 202.852 +93.4238 73.5746 207.431 +93.5661 75.5122 212.894 +93.5767 77.425 218.287 +93.4578 79.312 223.607 +93.2832 81.2359 229.031 +93.1552 83.2897 234.821 +92.9611 85.3801 240.715 +92.9986 87.7909 247.512 +92.5916 89.892 253.435 +92.7164 92.6314 261.159 +90.7892 93.407 263.345 +88.1369 93.4451 263.453 +87.2437 95.393 268.944 +87.3063 98.5286 277.785 +90.3815 105.367 297.065 +91.9834 110.878 312.601 +91.8549 114.597 323.086 +91.6391 118.453 333.957 +91.3739 122.511 345.398 +91.2304 127.03 358.141 +90.8802 131.591 371 +101.9 153.653 433.197 +98.4462 154.827 436.508 +93.5235 153.667 433.238 +90.6534 155.903 439.541 +90.0426 162.406 457.877 +88.7342 168.227 474.286 +86.815 173.424 488.941 +89.1833 188.232 530.687 +84.4583 188.915 532.613 +80.1637 190.676 537.58 +74.3608 188.815 532.332 +69.8799 190.252 536.385 +64.2315 188.456 531.321 +59.7276 189.966 535.578 +54.287 188.469 531.357 +49.6003 189.52 534.319 +44.2823 188.091 530.291 +39.6217 189.413 534.019 +34.3642 187.82 529.527 +29.6797 189.315 533.743 +24.5272 187.792 529.447 +19.781 189.36 533.867 +14.6905 187.539 528.734 +9.87108 189.045 532.98 +4.89908 187.663 529.083 +3.07532e-14 189.074 533.061 +-4.89384 187.462 528.518 +-9.86585 188.945 532.698 +-14.68 187.405 528.357 +-19.7077 188.658 531.889 +-24.3963 186.79 526.622 +-29.5855 188.714 532.048 +-34.2177 187.02 527.27 +-39.3915 188.313 530.916 +-43.9763 186.791 526.626 +-49.2953 188.354 531.033 +-53.7215 186.506 525.823 +-59.1527 188.138 530.422 +-63.5862 186.563 525.983 +-69.0024 187.864 529.65 +-73.3166 186.164 524.857 +-78.9111 187.697 529.18 +-83.1132 185.906 524.131 +-88.933 187.704 529.198 +-93.1034 185.986 524.357 +-98.719 187.156 527.654 +-102.963 185.711 523.579 +-108.761 187.044 527.338 +-112.862 185.442 522.821 +-118.988 187.133 527.589 +-123.046 185.538 523.094 +-129.122 186.964 527.113 +-133.788 186.287 525.206 +-138.162 185.242 522.257 +-140.714 181.886 512.797 +-142.195 177.4 500.15 +-114.699 138.259 389.796 +-112.377 131.01 369.36 +-115.026 129.812 365.982 +-118.235 129.28 364.482 +-121.906 129.248 364.394 +-126.295 129.937 366.336 +-1039.59 1038.63 2928.25 +-1066.66 1035.56 2919.59 +-1093.65 1032.41 2910.71 +-1120.56 1029.18 2901.59 +-1147.52 1026 2892.62 +-1174.26 1022.61 2883.07 +-467.106 396.406 1117.6 +-159.882 132.285 372.956 +-161.722 130.517 367.97 +-164.498 129.548 365.238 +-168.272 129.369 364.735 +-172.497 129.515 365.146 +-141.784 104.003 293.218 +-142.127 101.888 287.257 +-144.006 100.927 284.546 +-148.476 101.765 286.909 +-434.641 291.418 821.604 +-435.558 285.761 805.654 +-437.23 280.773 791.591 +-438.439 275.65 777.147 +-440.656 271.305 764.898 +-441.855 266.471 751.27 +-443.378 261.971 738.584 +-445.95 258.207 727.972 +-448.207 254.362 717.131 +-450.349 250.552 706.388 +-452.902 247.062 696.55 +-454.989 243.407 686.245 +-457.564 240.097 676.913 +-459.675 236.622 667.117 +-462.247 233.46 658.202 +-463.962 229.941 648.28 +-466.492 226.899 639.702 +-468.669 223.749 630.823 +-471.124 220.795 622.494 +-456.474 210.028 592.138 +-460.155 207.882 586.089 +-463.157 205.464 579.271 +-465.885 202.964 572.224 +-472.459 202.151 569.93 +-475.912 200.006 563.884 +-478.472 197.519 556.872 +-482.02 195.471 551.097 +-135.628 54.0328 152.336 +-135.475 53.0252 149.496 +-489.748 188.335 530.979 +-492.525 186.098 524.672 +-495.224 183.859 518.36 +-497.91 181.644 512.113 +-500.723 179.5 506.069 +-503.531 177.377 500.085 +-506.267 175.253 494.095 +-509.491 173.316 488.635 +-509.046 170.168 479.761 +-523.668 172.028 485.003 +-518.212 167.289 471.642 +-2376.69 753.952 2125.64 +-524.234 163.419 460.732 +-141.041 43.2035 121.805 +-142.312 42.8354 120.767 +-143.125 42.33 119.342 +-141.659 41.165 116.058 +-141.512 40.4028 113.909 +-142.408 39.9455 112.62 +-146.454 40.358 113.783 +-153.02 41.4227 116.784 +-156.365 41.5782 117.223 +-156.42 40.8531 115.178 +-158.274 40.5987 114.461 +-159.567 40.1959 113.325 +-161.093 39.8479 112.344 +-581.441 141.217 398.138 +-568.253 135.498 382.013 +-573.406 134.218 378.406 +-577.3 132.635 373.942 +-579.746 130.722 368.547 +-583.887 129.191 364.233 +-382.182 82.9678 233.914 +-382.731 81.5087 229.8 +-383.063 80.0171 225.594 +-381.045 78.0581 220.072 +-380.239 76.3753 215.327 +-381.616 75.1445 211.857 +-381.917 73.7107 207.815 +-380.607 71.9848 202.949 +-380.11 70.434 198.577 +-381.758 69.2907 195.353 +-379.667 67.4839 190.259 +-380.173 66.1574 186.52 +-381.351 64.955 183.13 +-381.6 63.6015 179.314 +-379.651 61.8996 174.515 +-381.072 60.761 171.305 +-381.012 59.3928 167.448 +-380.91 58.0295 163.604 +-380.674 56.6576 159.737 +-380.121 55.2516 155.772 +-380.905 54.0495 152.383 +-380.269 52.6548 148.451 +-379.404 51.2428 144.47 +-114.348 15.0574 42.4517 +-112.777 14.4716 40.8003 +-111.37 13.9197 39.2442 +-110.978 13.5028 38.0688 +-110.289 13.0558 36.8086 +-108.924 12.5377 35.3478 +-108.488 12.1346 34.2114 +-108.801 11.8176 33.3178 +-109.391 11.53 32.5068 +-109.497 11.1909 31.5507 +-108.922 10.7855 30.408 +-109.776 10.5227 29.6669 +-109.372 10.1395 28.5866 +-109.439 9.80275 27.6372 +-110.659 9.56681 26.972 +-111.584 9.30025 26.2205 +-111.434 8.94316 25.2137 +-113.027 8.72303 24.5931 +-114.422 8.47981 23.9074 +-114.639 8.14572 22.9655 +-118.669 8.0709 22.7545 +-125.157 8.13261 22.9285 +-159.582 9.8872 27.8753 +-160.524 9.46195 26.6763 +-161.06 9.00985 25.4018 +-3236.16 171.342 483.071 +-857.872 42.8592 120.834 +-867.376 40.7505 114.889 +-380.715 16.7553 47.2386 +-382.031 15.6807 44.2089 +-900.673 34.3044 96.7154 +-404.77 14.2217 40.0956 +-403.434 12.9859 36.6115 +-405.053 11.8464 33.3988 +-404.449 10.6407 29.9997 +-404.712 9.46044 26.6721 +-404.744 8.27539 23.331 +-150.394 2.6348 7.42837 +-404.215 5.89966 16.6331 +-403.854 4.71444 13.2916 +-147.849 1.29422 3.64884 +-147.078 0.858203 2.41956 +-145.694 0.425035 1.19831 +119.8 1.77636e-15 -1.13687e-13 +119.795 0.358354 0.982104 +119.982 0.717876 1.96741 +120.559 1.08213 2.96568 +120.327 1.44032 3.94733 +120.485 1.80318 4.9418 +120.335 2.16172 5.92441 +120.275 2.52159 6.91068 +120.306 2.88366 7.90296 +120.627 3.25418 8.9184 +120.54 3.61487 9.9069 +120.443 3.9753 10.8947 +120.636 4.34618 11.9111 +120.719 4.71463 12.9209 +120.594 5.07554 13.91 +120.956 5.45846 14.9595 +120.615 5.81053 15.9243 +120.462 6.1711 16.9125 +120.992 6.56872 18.0022 +120.623 6.91907 18.9624 +120.54 7.28557 19.9668 +121.039 7.6896 21.0741 +120.838 8.05137 22.0656 +120.531 8.4057 23.0367 +120.41 8.77302 24.0433 +120.963 9.19224 25.1922 +120.627 9.54598 26.1617 +121.352 9.98649 27.369 +121.19 10.3574 28.3854 +120.922 10.7195 29.3779 +121.224 11.134 30.5139 +120.936 11.4962 31.5065 +120.35 11.8292 32.4191 +121.195 12.3055 33.7246 +120.781 12.6576 34.6894 +121.408 13.1215 35.9607 +121.165 13.4947 36.9837 +121.385 13.9219 38.1544 +121.31 14.318 39.2398 +121.318 14.726 40.3582 +121.69 15.1822 41.6083 +121.674 15.5936 42.7358 +121.179 15.9447 43.6981 +119.28 16.1056 44.139 +116.176 16.0894 44.0945 +113.175 16.069 44.0386 +109.632 15.9515 43.7168 +107.113 15.9645 43.7523 +103.596 15.8102 43.3296 +101.097 15.7926 43.2812 +98.6063 15.7612 43.1952 +96.6669 15.8047 43.3143 +96.6204 16.1534 44.2699 +97.0109 16.5794 45.4375 +97.2979 16.9935 46.5723 +98.2808 17.5371 48.0621 +97.0359 17.6856 48.4691 +97.2851 18.106 49.6214 +96.8204 18.3963 50.417 +97.1317 18.8372 51.6252 +96.5618 19.1099 52.3725 +96.8471 19.5545 53.5912 +96.2599 19.8259 54.3347 +97.2862 20.4354 56.0053 +96.6775 20.7075 56.7509 +96.9057 21.1616 57.9955 +96.1955 21.4134 58.6854 +96.3972 21.8706 59.9384 +96.5 22.3114 61.1467 +95.9283 22.5992 61.9355 +96.0046 23.0426 63.1506 +96.147 23.508 64.4261 +96.1921 23.9559 65.6537 +96.3021 24.4263 66.9426 +96.3953 24.8991 68.2384 +96.3924 25.3534 69.4835 +96.2949 25.7885 70.6759 +96.3391 26.2676 71.989 +96.3661 26.7489 73.308 +96.3759 27.2324 74.6331 +95.679 27.5196 75.4203 +96.2674 28.1832 77.2389 +96.2255 28.6725 78.5798 +96.091 29.141 79.8637 +96.0143 29.6337 81.2142 +95.9935 30.1513 82.6328 +95.8073 30.6244 83.9292 +95.6769 31.1222 85.2934 +96.1757 31.8358 87.2491 +96.0035 32.3385 88.6268 +95.813 32.8426 90.0083 +95.604 33.348 91.3934 +95.9323 34.0518 93.3224 +95.6813 34.5613 94.7186 +95.4798 35.097 96.1869 +95.7311 35.8107 98.1427 +95.418 36.3248 99.5518 +95.5498 37.0197 101.456 +95.1942 37.5369 102.874 +95.339 38.2636 104.865 +95.2611 38.9149 106.65 +94.7757 39.4098 108.007 +95.0274 40.2246 110.24 +94.9335 40.9098 112.117 +95.0581 41.7054 114.298 +94.9059 42.3961 116.191 +94.485 42.9795 117.79 +94.8148 43.9218 120.372 +94.751 44.703 122.513 +94.7127 45.5147 124.738 +94.6975 46.3579 127.049 +94.5898 47.1762 129.291 +94.3358 47.9406 131.386 +94.4916 48.9353 134.112 +94.277 49.7624 136.379 +94.1886 50.6787 138.89 +94.4846 51.8304 142.046 +94.1542 52.6664 144.338 +94.355 53.8274 147.519 +94.3514 54.9051 150.473 +94.35 56.0164 153.519 +93.9052 56.8932 155.922 +94.2955 58.3113 159.808 +94.0957 59.4044 162.804 +93.8004 60.4704 165.725 +93.9658 61.8738 169.571 +94.0214 63.2517 173.348 +93.6569 64.3898 176.467 +93.5484 65.7458 180.183 +93.464 67.1676 184.08 +93.5254 68.7496 188.415 +93.5548 70.3678 192.85 +93.6308 72.0855 197.557 +93.5465 73.7459 202.108 +93.4629 75.4745 206.845 +93.5278 77.3978 212.116 +93.1272 79.0096 216.534 +93.4578 81.3261 222.882 +93.3549 83.3629 228.464 +93.1201 85.3726 233.972 +92.9953 87.5804 240.023 +92.9652 89.9881 246.621 +92.5916 92.1746 252.614 +92.7164 94.9837 260.312 +90.4802 95.453 261.598 +88.2271 95.9164 262.868 +87.2145 97.7828 267.984 +87.1927 100.899 276.525 +89.6924 107.219 293.845 +91.7429 113.396 310.772 +91.5961 117.175 321.131 +91.7142 121.56 333.147 +91.3255 125.555 344.096 +91.2304 130.256 356.98 +90.8127 134.833 369.522 +101.727 157.287 431.06 +97.3443 156.982 430.224 +93.3441 157.267 431.005 +90.6915 159.929 438.301 +90.0426 166.53 456.393 +88.2827 171.621 470.343 +86.8315 177.862 487.449 +88.9799 192.572 527.761 +84.3696 193.508 530.329 +79.2452 193.278 529.698 +74.2433 193.304 529.769 +69.0634 192.804 528.399 +64.2315 193.242 529.599 +59.0272 192.506 527.583 +54.2104 192.982 528.888 +49.121 192.454 527.44 +44.3059 192.97 528.853 +39.2101 192.206 526.76 +34.3459 192.487 527.53 +29.3709 192.103 526.478 +24.5054 192.389 527.262 +19.5647 192.044 526.316 +14.68 192.164 526.644 +9.76113 191.686 525.336 +4.88861 192.017 526.241 +2.93099e-14 191.818 525.697 +-4.89384 192.223 526.805 +-9.75066 191.481 524.772 +-14.6565 191.855 525.799 +-19.5088 191.496 524.813 +-24.4094 191.636 525.197 +-29.2401 191.247 524.132 +-34.1628 191.461 524.717 +-38.9729 191.043 523.573 +-43.9763 191.535 524.92 +-48.7201 190.884 523.136 +-53.7215 191.243 524.119 +-58.4941 190.767 522.817 +-63.5183 191.096 523.718 +-68.3078 190.695 522.618 +-73.3166 190.891 523.156 +-78.0483 190.359 521.697 +-83.1576 190.728 522.71 +-87.8692 190.168 521.174 +-93.0208 190.54 522.194 +-97.8681 190.255 521.412 +-102.963 190.426 521.883 +-107.578 189.707 519.912 +-112.862 190.151 521.127 +-117.595 189.638 519.723 +-123.046 190.25 521.399 +-127.817 189.774 520.096 +-133.671 190.851 523.047 +-139.008 191.11 523.755 +-140.613 186.372 510.772 +-142.195 181.905 498.53 +-114.699 141.769 388.533 +-112.405 134.37 368.254 +-115.282 133.404 365.607 +-118.469 132.825 364.019 +-122.207 132.858 364.109 +-126.821 133.791 366.667 +-1039.59 1065.01 2918.76 +-1066.66 1061.86 2910.12 +-1093.65 1058.63 2901.28 +-1120.56 1055.31 2892.19 +-1147.52 1052.05 2883.25 +-1174.26 1048.58 2873.73 +-467.399 406.726 1114.67 +-159.133 135.009 370.006 +-161.837 133.926 367.038 +-164.849 133.122 364.833 +-168.711 133.001 364.501 +-172.253 132.616 363.448 +-142.032 106.831 292.78 +-142.127 104.476 286.326 +-144.092 103.551 283.793 +-148.608 104.441 286.232 +-434.507 298.726 818.689 +-435.967 293.292 803.797 +-436.537 287.447 787.776 +-438.862 282.922 775.375 +-439.893 277.712 761.097 +-442.292 273.508 749.575 +-444.068 269.042 737.336 +-446.4 265.031 726.345 +-448.664 261.087 715.535 +-450.607 257.061 704.502 +-452.902 253.336 694.293 +-455.307 249.763 684.499 +-457.081 245.934 674.006 +-459.675 242.631 664.955 +-461.75 239.132 655.364 +-464.466 236.036 646.881 +-466.832 232.83 638.094 +-469.243 229.712 629.548 +-470.95 226.318 620.248 +-465.291 219.521 601.619 +-460.155 213.161 584.189 +-462.856 210.545 577.019 +-465.52 207.955 569.922 +-471.72 206.96 567.195 +-475.726 205.005 561.836 +-479.102 202.801 555.797 +-481.448 200.197 548.66 +-135.821 55.4837 152.059 +-135.215 54.2675 148.726 +-490.404 193.376 529.967 +-493.321 191.132 523.817 +-495.826 188.757 517.309 +-498.18 186.357 510.731 +-501.61 184.384 505.322 +-503.531 181.882 498.465 +-506.267 179.703 492.494 +-509.561 177.742 487.118 +-509.965 174.805 479.07 +-522.813 176.108 482.64 +-518.212 171.537 470.114 +-521.399 169.603 464.813 +-524.527 167.663 459.496 +-140.894 44.2543 121.283 +-142.089 43.8543 120.187 +-143.125 43.4049 118.955 +-141.659 42.2103 115.682 +-141.512 41.4288 113.54 +-142.561 41.0041 112.376 +-146.84 41.4919 113.713 +-153.175 42.5178 116.524 +-155.661 42.4421 116.317 +-156.184 41.8271 114.631 +-158.274 41.6297 114.09 +-159.328 41.1546 112.788 +-161.897 41.0637 112.539 +-581.521 144.824 396.903 +-568.497 138.998 380.938 +-574.881 137.98 378.149 +-576.559 135.828 372.251 +-580.243 134.156 367.668 +-583.887 132.472 363.053 +-381.344 84.8879 232.644 +-382.815 83.5966 229.105 +-383.403 82.1213 225.062 +-382.58 80.3625 220.242 +-380.497 78.3676 214.774 +-381.271 76.9831 210.98 +-381.571 75.5139 206.953 +-380.345 73.762 202.152 +-380.634 72.3223 198.207 +-381.319 70.9684 194.496 +-380.462 69.3422 190.039 +-381.415 68.0592 186.523 +-378.054 66.0286 180.958 +-380.616 65.0482 178.271 +-380.549 63.6216 174.361 +-380.44 62.2004 170.467 +-381.012 60.901 166.905 +-381.183 59.5456 163.191 +-380.309 58.0405 159.066 +-380.947 56.7777 155.605 +-379.8 55.2613 151.449 +-380.546 54.031 148.077 +-380.794 52.7367 144.53 +-114.627 15.4774 42.4175 +-113.057 14.876 40.7692 +-111.37 14.2732 39.117 +-110.79 13.8222 37.8812 +-109.441 13.2844 36.4071 +-108.924 12.8561 35.2333 +-109.247 12.5297 34.339 +-108.42 12.0753 33.0937 +-109.201 11.8021 32.3449 +-108.636 11.3848 31.2012 +-109.018 11.0692 30.3361 +-109.68 10.7804 29.5448 +-110.239 10.4794 28.7199 +-110.309 10.1315 27.7664 +-110.562 9.80118 26.8611 +-110.711 9.4618 25.931 +-112.211 9.2343 25.3075 +-112.929 8.93683 24.4923 +-114.422 8.69514 23.8299 +-115.421 8.40957 23.0473 +-118.179 8.24168 22.5871 +-125.845 8.38493 22.9797 +-159.681 10.1445 27.802 +-160.524 9.70222 26.5899 +-161.455 9.26127 25.3814 +-3236.16 175.693 481.505 +-857.477 43.9273 120.387 +-867.376 41.7853 114.517 +-380.417 17.1673 47.0487 +-381.138 16.0412 43.9626 +-900.673 35.1755 96.402 +-404.074 14.5577 39.8969 +-404.131 13.3386 36.5559 +-404.355 12.1263 33.2333 +-404.15 10.9028 29.8803 +-403.116 9.66242 26.4808 +-403.246 8.45413 23.1694 +-404.046 7.25835 19.8922 +-403.715 6.04201 16.5587 +-404.354 4.84012 13.2648 +-147.649 1.3253 3.6321 +-146.378 0.875807 2.40024 +-146.294 0.437621 1.19934 +119.8 1.77636e-15 -1.13687e-13 +119.895 0.367505 0.979645 +119.882 0.734981 1.95922 +119.759 1.10148 2.93619 +120.327 1.47587 3.93418 +120.485 1.84769 4.92533 +120.235 2.21324 5.89977 +120.275 2.58384 6.88765 +120.206 2.95239 7.8701 +120.627 3.3345 8.88868 +120.54 3.70409 9.87388 +120.443 4.07342 10.8584 +120.636 4.45346 11.8715 +119.825 4.79522 12.7825 +120.495 5.19654 13.8523 +120.956 5.5932 14.9096 +120.615 5.95395 15.8713 +120.561 6.32862 16.87 +120.992 6.73086 17.9422 +120.721 7.09565 18.9147 +120.54 7.4654 19.9003 +120.154 7.82181 20.8503 +120.838 8.25011 21.992 +120.629 8.62017 22.9785 +120.312 8.98226 23.9437 +120.963 9.41913 25.1083 +120.627 9.78161 26.0745 +121.352 10.233 27.2778 +121.19 10.613 28.2908 +120.922 10.9841 29.28 +121.32 11.418 30.4365 +120.936 11.78 31.4015 +121.407 12.2277 32.5949 +121.195 12.6093 33.6122 +120.781 12.97 34.5738 +121.408 13.4453 35.8408 +121.069 13.817 36.8315 +121.385 14.2656 38.0273 +121.405 14.6828 39.1396 +121.318 15.0895 40.2237 +121.69 15.5569 41.4696 +121.674 15.9785 42.5934 +121.926 16.439 43.8209 +119 16.4645 43.8889 +115.342 16.3681 43.632 +113.175 16.4656 43.8919 +109.816 16.3727 43.6442 +107.021 16.3445 43.5691 +103.596 16.2005 43.1852 +101.006 16.1678 43.0981 +98.5157 16.1354 43.0117 +96.3058 16.1343 43.0088 +97.7888 16.7523 44.656 +97.0109 16.9886 45.2861 +97.387 17.4289 46.4596 +97.5712 17.8402 47.5561 +97.654 18.2376 48.6153 +96.6699 18.4356 49.1433 +96.8204 18.8504 50.249 +97.0447 19.2848 51.407 +96.5618 19.5816 52.1979 +96.8471 20.0372 53.4126 +96.2599 20.3152 54.1537 +96.4336 20.7563 55.3294 +96.6775 21.2186 56.5618 +96.1466 21.5141 57.3496 +96.1955 21.9419 58.4899 +96.3972 22.4104 59.7387 +96.0026 22.7443 60.6287 +96.67 23.3361 62.2064 +96.0046 23.6114 62.9401 +96.2285 24.1087 64.2658 +96.1921 24.5473 65.4349 +96.3824 25.0501 66.7753 +95.5967 25.3023 67.4475 +96.3131 25.9578 69.1949 +96.3737 26.4467 70.498 +95.6347 26.7192 71.2245 +95.7444 27.2323 72.5924 +95.6814 27.7035 73.8483 +96.2918 28.3795 75.6504 +96.3434 28.9017 77.0424 +96.2255 29.3802 78.318 +96.091 29.8603 79.5976 +96.0886 30.3887 81.0061 +95.9198 30.8719 82.2942 +96.4656 31.5959 84.2242 +96.3297 32.108 85.5892 +96.1757 32.6216 86.9583 +95.9322 33.1121 88.2658 +95.813 33.6532 89.7084 +96.1648 34.3715 91.6231 +95.9323 34.8923 93.0114 +95.6813 35.4143 94.4029 +96.0254 36.1688 96.414 +95.7311 36.6946 97.8157 +96.0202 37.4565 99.8465 +95.6823 37.9861 101.258 +95.1286 38.4371 102.461 +95.4039 39.2348 104.587 +95.1968 39.8484 106.223 +94.9029 40.4367 107.791 +95.0274 41.2175 109.872 +94.9957 41.947 111.817 +95.0581 42.7349 113.917 +94.9668 43.4704 115.878 +94.9062 44.2368 117.921 +94.8742 45.0341 120.046 +94.8098 45.8345 122.18 +94.7707 46.667 124.399 +94.6975 47.5022 126.625 +94.5898 48.3406 128.86 +94.895 49.4151 131.724 +94.602 50.2019 133.821 +94.3315 51.0202 136.003 +94.1886 51.9296 138.427 +94.4316 53.0799 141.493 +94.102 53.9362 143.776 +93.8914 54.8853 146.306 +93.8946 55.9878 149.245 +93.95 57.1557 152.358 +93.9544 58.3281 155.483 +94.2955 59.7506 159.275 +94.1434 60.9016 162.344 +93.8004 61.9631 165.173 +93.9658 63.4011 169.006 +94.0668 64.8446 172.854 +93.6569 65.9791 175.879 +93.5484 67.3686 179.582 +93.4209 68.794 183.382 +93.5254 70.4465 187.787 +93.5963 72.1367 192.293 +93.6308 73.8648 196.899 +93.5864 75.5985 201.521 +93.4629 77.3375 206.156 +93.5661 79.341 211.497 +93.4643 81.2528 216.593 +93.4578 83.3335 222.139 +93.319 85.3875 227.615 +93.1552 87.5129 233.28 +92.9611 89.7092 239.135 +92.6648 91.9111 245.004 +92.5916 94.4499 251.772 +92.7482 97.3616 259.534 +90.851 98.2102 261.796 +87.8662 97.8818 260.92 +87.1852 100.163 267.001 +87.3063 103.524 275.962 +90.0232 110.271 293.945 +91.7429 116.195 309.736 +91.8808 120.441 321.056 +91.7142 124.56 332.037 +91.3739 128.722 343.131 +91.1838 133.403 355.609 +90.9252 138.332 368.747 +102.289 162.061 432 +97.8848 161.75 431.171 +94.0618 162.388 432.871 +90.7678 164.014 437.208 +90.0426 170.641 454.872 +88.5432 176.376 470.159 +86.4189 181.386 483.516 +89.2459 197.915 527.575 +84.8574 199.431 531.618 +79.7323 199.267 531.178 +74.8568 199.712 532.367 +69.4655 198.714 529.705 +64.5824 199.094 530.718 +59.3617 198.376 528.804 +54.5171 198.865 530.107 +49.3214 198.01 527.828 +44.4942 198.574 529.331 +39.4543 198.177 528.273 +34.5718 198.536 529.23 +29.5384 197.968 527.716 +24.645 198.261 528.498 +19.6554 197.697 526.995 +14.7769 198.206 528.353 +9.8292 197.787 527.236 +4.91217 197.705 527.016 +3.27516e-14 197.502 526.474 +-4.91217 197.705 527.016 +-9.81872 197.577 526.674 +-14.7429 197.75 527.136 +-19.5926 197.065 525.311 +-24.5534 197.524 526.534 +-29.4285 197.231 525.752 +-34.3825 197.449 526.333 +-39.2031 196.915 524.911 +-44.1646 197.103 525.411 +-49.0077 196.75 524.47 +-54.0187 197.047 525.261 +-58.8704 196.734 524.428 +-63.9259 197.07 525.322 +-68.6856 196.483 523.757 +-73.7473 196.752 524.476 +-78.438 196.032 522.555 +-83.6453 196.583 524.024 +-88.4324 196.111 522.766 +-93.648 196.56 523.962 +-98.2675 195.746 521.795 +-103.455 196.059 522.629 +-108.265 195.631 521.488 +-113.48 195.911 522.235 +-118.343 195.556 521.288 +-123.739 196.043 522.586 +-128.47 195.451 521.008 +-134.908 197.373 526.13 +-139.033 195.861 522.1 +-142.116 193.013 514.509 +-142.428 186.701 497.682 +-114.725 145.303 387.329 +-112.432 137.72 367.117 +-114.771 136.091 362.772 +-118.206 135.801 362 +-121.696 135.567 361.377 +-126.512 136.759 364.555 +-1039.59 1091.3 2909.03 +-1066.66 1088.07 2900.43 +-1093.65 1084.76 2891.61 +-1120.56 1081.36 2882.55 +-1147.52 1078.02 2873.64 +-1174.26 1074.46 2864.15 +-466.923 416.341 1109.83 +-159.545 138.7 369.728 +-161.722 137.134 365.555 +-164.693 136.278 363.272 +-168.272 135.929 362.342 +-172.578 136.146 362.92 +-141.908 109.372 291.549 +-142.127 107.054 285.372 +-143.92 105.981 282.509 +-148.345 106.83 284.773 +-434.106 305.817 815.207 +-435.331 300.093 799.95 +-436.814 294.729 785.649 +-438.064 289.378 771.385 +-440.322 284.845 759.302 +-442.098 280.136 746.75 +-443.772 275.499 734.39 +-446.4 271.573 723.924 +-448.055 267.168 712.182 +-450.349 263.256 701.753 +-452.745 259.5 691.74 +-454.989 255.749 681.742 +-457.403 252.182 672.234 +-459.675 248.62 662.739 +-461.75 245.034 653.18 +-464.298 241.775 644.492 +-466.152 238.23 635.042 +-468.899 235.209 626.99 +-470.834 231.847 618.028 +-457.885 221.359 590.07 +-460.512 218.592 582.694 +-462.435 215.545 574.572 +-467.164 213.841 570.029 +-472.335 212.346 566.043 +-475.788 210.092 560.037 +-478.661 207.616 553.436 +-135.103 57.5656 153.451 +-135.757 56.8266 151.481 +-486.826 200.206 533.683 +-490.01 197.991 527.778 +-492.128 195.376 520.808 +-495.224 193.182 514.958 +-497.91 190.854 508.752 +-500.723 188.601 502.748 +-503.531 186.371 496.804 +-506.475 184.215 491.055 +-508.86 181.878 484.828 +-510.248 179.219 477.738 +-523.241 180.602 481.426 +-517.565 175.552 467.962 +-521.617 173.862 463.458 +-523.503 171.466 457.07 +-141.041 45.3941 121.006 +-142.387 45.0306 120.037 +-142.376 44.2434 117.938 +-141.81 43.2983 115.419 +-141.664 42.4971 113.283 +-142.254 41.926 111.761 +-146.84 42.516 113.334 +-152.709 43.4345 115.782 +-156.13 43.621 116.279 +-156.42 42.9245 114.423 +-157.322 42.4005 113.026 +-159.328 42.1704 112.412 +-161.093 41.8684 111.607 +-2650.74 676.444 1803.17 +-567.276 142.123 378.853 +-574.226 141.225 376.459 +-576.559 139.181 371.011 +-579.746 137.35 366.129 +-583.637 135.684 361.688 +-382.434 87.2319 232.531 +-382.984 85.698 228.443 +-383.572 84.1856 224.411 +-382.239 82.2728 219.312 +-381.954 80.6096 214.879 +-381.529 78.9367 210.419 +-380.965 77.255 205.936 +-380.694 75.6519 201.663 +-380.285 74.0394 197.364 +-381.495 72.7538 193.938 +-381.257 71.2024 189.802 +-378.31 69.1716 184.388 +-381.707 68.3124 182.098 +-380.437 66.6226 177.594 +-378.932 64.9149 173.042 +-380.71 63.7814 170.02 +-381.193 62.4337 166.428 +-381.092 61.001 162.609 +-379.852 59.4018 158.346 +-380.947 58.1792 155.086 +-381.089 56.8174 151.456 +-378.606 55.0827 146.832 +-381.073 54.0778 144.153 +-114.348 15.8208 42.1731 +-113.057 15.2432 40.6333 +-111.277 14.6131 38.9538 +-109.944 14.0553 37.4668 +-109.535 13.624 36.317 +-108.829 13.1619 35.0853 +-109.247 12.839 34.2245 +-108.801 12.4168 33.0991 +-108.438 12.0089 32.0118 +-108.636 11.6658 31.0972 +-109.018 11.3424 30.235 +-109.776 11.0562 29.4722 +-109.468 10.663 28.424 +-110.116 10.3634 27.6255 +-110.562 10.0431 26.7716 +-110.614 9.68685 25.8219 +-111.434 9.39662 25.0483 +-113.027 9.16533 24.4317 +-114.422 8.90977 23.7505 +-115.324 8.60985 22.951 +-119.061 8.50813 22.6798 +-126.728 8.6522 23.0639 +-159.386 10.3757 27.6583 +-160.228 9.92341 26.4525 +-161.751 9.50726 25.3432 +-163.561 9.09902 24.255 +-857.477 45.0116 119.986 +-867.376 42.8167 114.135 +-380.814 17.6094 46.9408 +-380.641 16.4158 43.7591 +-900.673 36.0438 96.0807 +-404.87 14.9464 39.8422 +-403.235 13.6376 36.3533 +-402.961 12.3827 33.0083 +-404.051 11.1692 29.7734 +-404.512 9.93524 26.4841 +-403.945 8.67781 23.1322 +-404.445 7.44489 19.8456 +-403.715 6.19114 16.5035 +-403.854 4.95348 13.2043 +-146.25 1.34514 3.58568 +-145.178 0.890071 2.37263 +-145.794 0.446892 1.19126 +119.7 3.55271e-15 -1.13687e-13 +119.795 0.376015 0.975478 +119.882 0.752626 1.95251 +120.559 1.13546 2.94567 +120.327 1.5113 3.92071 +120.385 1.89048 4.90439 +120.235 2.26638 5.87956 +120.175 2.64367 6.85836 +121.104 3.04585 7.90172 +120.627 3.41456 8.85823 +120.44 3.78989 9.83195 +120.443 4.17121 10.8212 +120.636 4.56038 11.8308 +120.818 4.95105 12.8443 +120.594 5.32569 13.8162 +120.956 5.72747 14.8585 +120.714 6.10189 15.8299 +120.264 6.46458 16.7708 +120.992 6.89245 17.8808 +120.721 7.266 18.8499 +120.54 7.64463 19.8321 +120.154 8.00959 20.7789 +120.838 8.44817 21.9167 +120.629 8.82712 22.8998 +120.214 9.19042 23.8423 +120.865 9.63746 25.002 +120.627 10.0164 25.9852 +120.574 10.4115 27.01 +120.317 10.7895 27.9908 +120.922 11.2478 29.1797 +120.354 11.599 30.0908 +120.936 12.0628 31.294 +121.407 12.5212 32.4833 +121.195 12.912 33.4971 +121.642 13.3761 34.7009 +121.408 13.7681 35.7181 +121.069 14.1487 36.7054 +121.385 14.608 37.897 +121.405 15.0353 39.0055 +121.318 15.4518 40.0859 +121.69 15.9304 41.3276 +121.674 16.3621 42.4475 +121.085 16.7176 43.3698 +119.093 16.873 43.7728 +116.176 16.8823 43.7971 +112.251 16.7233 43.3844 +109.816 16.7658 43.4947 +107.113 16.7513 43.4571 +103.596 16.5894 43.0372 +101.006 16.556 42.9505 +98.5157 16.5228 42.8643 +96.8474 16.6146 43.1025 +97.0698 17.0283 44.1758 +97.0109 17.3965 45.131 +97.387 17.8473 46.3005 +98.3695 18.418 47.781 +97.654 18.6754 48.4488 +96.582 18.861 48.9304 +96.1207 19.1635 49.715 +97.0447 19.7478 51.2309 +96.5618 20.0517 52.0192 +96.761 20.5 53.1823 +96.2599 20.8029 53.9682 +96.5189 21.2734 55.1886 +96.6775 21.728 56.3681 +96.737 22.1659 57.5041 +96.9503 22.645 58.7469 +96.3972 22.9484 59.5341 +96.6658 23.4512 60.8385 +96.5876 23.876 61.9404 +96.0046 24.1782 62.7246 +96.147 24.6666 63.9915 +96.1921 25.1366 65.2108 +96.3021 25.6301 66.491 +96.3953 26.1262 67.778 +96.3131 26.581 68.9579 +96.3737 27.0816 70.2566 +95.6347 27.3606 70.9805 +96.3661 28.0672 72.8135 +96.3759 28.5745 74.1296 +95.679 28.8759 74.9115 +96.2674 29.5722 76.7179 +96.2255 30.0856 78.0497 +96.7651 30.7916 79.8814 +96.0886 31.1182 80.7287 +95.8461 31.5887 81.9493 +95.8073 32.1337 83.363 +95.6769 32.656 84.718 +96.1757 33.4047 86.6605 +95.9322 33.907 87.9635 +95.7423 34.4357 89.3351 +95.604 34.9915 90.7768 +96.0018 35.7559 92.76 +95.7501 36.2908 94.1477 +95.548 36.853 95.6061 +95.7311 37.5756 97.4806 +95.3511 38.0885 98.8112 +95.6823 38.8981 100.912 +95.1286 39.3599 102.11 +95.4039 40.1767 104.229 +95.2611 40.8327 105.931 +95.4753 41.6575 108.07 +94.9015 42.1513 109.351 +95.556 43.2073 112.091 +95.0581 43.7608 113.527 +94.9668 44.514 115.481 +94.9664 45.3276 117.591 +94.8148 46.0865 119.56 +94.751 46.9061 121.687 +94.5965 47.6992 123.744 +94.6401 48.6131 126.115 +94.6465 49.5307 128.495 +94.3358 50.3032 130.5 +94.5468 51.3772 133.286 +94.2226 52.1847 135.38 +94.1886 53.1763 137.953 +94.3786 54.3236 140.929 +94.102 55.2311 143.284 +94.4065 56.5112 146.604 +94.3514 57.611 149.458 +93.9 58.4969 151.756 +93.9544 59.7284 154.951 +93.8591 60.9017 157.995 +93.714 62.0792 161.049 +93.8474 63.4823 164.689 +93.9197 64.8911 168.344 +94.0668 66.4014 172.262 +93.6569 67.5631 175.276 +93.5922 69.0184 179.051 +93.4209 70.4455 182.754 +93.5254 72.1378 187.144 +93.5548 73.8358 191.549 +93.6308 75.6381 196.225 +93.5864 77.4135 200.83 +93.4238 79.1611 205.364 +93.5661 81.2458 210.772 +93.1647 82.9369 215.16 +93.4578 85.3341 221.379 +93.2832 87.404 226.748 +93.1552 89.6139 232.481 +92.9953 91.8967 238.404 +92.6648 94.1177 244.165 +92.559 96.6836 250.822 +92.7164 99.6649 258.556 +90.8201 100.534 260.811 +88.0166 100.403 260.472 +87.2145 102.602 266.176 +87.3063 106.01 275.017 +90.3539 113.333 294.015 +91.7697 119.019 308.766 +91.8808 123.333 319.957 +91.6641 127.481 330.72 +91.3739 131.813 341.956 +91.2071 136.641 354.481 +90.8802 141.583 367.303 +101.9 165.319 428.88 +98.2591 166.266 431.337 +93.7029 165.652 429.744 +90.5579 167.564 434.703 +90.0608 174.773 453.406 +88.6995 180.929 469.376 +86.4684 185.847 482.136 +89.2771 202.737 525.952 +84.6357 203.685 528.412 +79.8436 204.335 530.098 +74.5827 203.758 528.601 +69.563 203.77 528.631 +64.4239 203.373 527.602 +59.5499 203.782 528.663 +54.3541 203.03 526.713 +49.4522 203.301 527.415 +44.3765 202.803 526.122 +39.5031 203.186 527.116 +34.4619 202.656 525.741 +29.5855 203.043 526.747 +24.5664 202.374 525.01 +19.7008 202.911 526.402 +14.735 202.389 525.05 +9.83967 202.752 525.99 +4.90431 202.128 524.371 +3.07532e-14 202.351 524.95 +-4.90431 202.128 524.371 +-9.81349 202.212 524.59 +-14.7036 201.958 523.931 +-19.6449 202.336 524.91 +-24.4879 201.727 523.332 +-29.4599 202.182 524.511 +-34.3276 201.866 523.692 +-39.3287 202.289 524.789 +-44.0234 201.189 521.936 +-49.1384 202.011 524.069 +-53.8653 201.205 521.977 +-58.9645 201.779 523.467 +-63.6542 200.943 521.297 +-68.7831 201.485 522.704 +-73.5124 200.834 521.015 +-78.6328 201.236 522.059 +-83.3793 200.662 520.569 +-88.4793 200.926 521.253 +-93.2519 200.427 519.959 +-98.4585 200.835 521.018 +-103.182 200.236 519.463 +-108.589 200.928 521.259 +-112.962 199.698 518.069 +-118.634 200.744 520.78 +-123.371 200.153 519.248 +-128.919 200.844 521.042 +-134.138 200.957 521.334 +-138.96 200.458 520.04 +-141.565 196.881 510.759 +-142.273 190.974 495.436 +-114.725 148.791 386.003 +-112.405 140.992 365.77 +-115.026 139.668 362.335 +-118.235 139.096 360.85 +-121.936 139.096 360.852 +-126.481 140.008 363.217 +-1039.59 1117.49 2899.07 +-1066.66 1114.19 2890.49 +-1093.65 1110.8 2881.7 +-1120.56 1107.32 2872.68 +-1147.38 1103.77 2863.45 +-1174.26 1100.26 2854.35 +-467.619 426.973 1107.68 +-159.77 142.23 368.981 +-161.913 140.593 364.734 +-164.693 139.55 362.028 +-168.033 138.995 360.588 +-172.497 139.349 361.508 +-141.701 111.834 290.126 +-142.127 109.625 284.394 +-144.178 108.72 282.047 +-148.345 109.395 283.798 +-434.775 313.642 813.667 +-435.558 307.458 797.626 +-436.814 301.804 782.958 +-438.439 296.579 769.403 +-440.179 291.589 756.456 +-441.855 286.704 743.784 +-444.265 282.426 732.686 +-446.4 278.093 721.445 +-448.207 273.676 709.985 +-450.195 269.484 699.11 +-452.432 265.546 688.893 +-454.83 261.797 679.17 +-457.081 258.054 669.459 +-459.185 254.317 659.764 +-462.247 251.187 651.643 +-464.466 247.669 642.517 +-466.832 244.305 633.789 +-468.669 240.738 624.537 +-471.24 237.619 616.443 +-457.003 226.237 586.917 +-460.512 223.84 580.698 +-462.856 220.921 573.126 +-465.946 218.404 566.596 +-472.274 217.415 564.03 +-476.037 215.249 558.411 +-479.039 212.768 551.976 +-481.575 210.119 545.102 +-135.435 58.0531 150.605 +-135.865 57.2154 148.431 +-489.748 202.635 525.688 +-492.459 200.202 519.374 +-495.224 197.819 513.194 +-498.18 195.542 507.285 +-500.109 192.892 500.412 +-503.738 190.924 495.305 +-506.267 188.559 489.171 +-509.07 186.322 483.367 +-509.895 183.395 475.772 +-523.027 184.863 479.581 +-517.277 179.666 466.1 +-520.674 177.714 461.035 +-523.503 175.582 455.505 +-140.746 46.3868 120.339 +-142.312 46.0879 119.564 +-143.125 45.5441 118.153 +-141.734 44.3144 114.963 +-141.588 43.4939 112.834 +-142.331 42.9555 111.438 +-146.84 43.5368 112.945 +-153.409 44.6812 115.915 +-156.365 44.7352 116.055 +-157.366 44.2208 114.72 +-158.036 43.6155 113.15 +-159.567 43.2479 112.196 +-161.334 42.9379 111.392 +-581.198 151.877 394.007 +-568.497 145.848 378.368 +-574.226 144.615 375.17 +-576.559 142.523 369.74 +-580.492 140.828 365.344 +-583.887 139.001 360.603 +-382.434 89.3261 231.735 +-382.056 87.5429 227.109 +-382.809 86.0355 223.198 +-383.091 84.436 219.049 +-382.297 82.619 214.335 +-381.529 80.8318 209.698 +-380.445 79.0018 204.951 +-381.216 77.5746 201.248 +-379.935 75.7471 196.507 +-380.616 74.3286 192.827 +-381.522 72.9625 189.284 +-381.149 71.3634 185.135 +-378.856 69.4298 180.119 +-378.468 67.8689 176.069 +-381.808 66.978 173.758 +-380.71 65.3127 169.438 +-381.193 63.9326 165.858 +-380.91 62.4357 161.974 +-380.857 60.9891 158.221 +-381.68 59.6907 154.853 +-381.549 58.2516 151.12 +-381.193 56.7903 147.329 +-381.443 55.43 143.8 +-115.186 16.3193 42.3365 +-113.337 15.6478 40.5944 +-111.37 14.9766 38.8531 +-110.79 14.5035 37.6257 +-109.441 13.9391 36.1615 +-108.829 13.4779 34.9652 +-109.342 13.1586 34.1369 +-108.896 12.726 33.0146 +-109.296 12.3946 32.1547 +-108.732 11.9564 31.0181 +-109.785 11.6964 30.3435 +-109.103 11.2522 29.1912 +-110.239 10.9959 28.5262 +-110.212 10.6216 27.555 +-110.562 10.2842 26.6799 +-110.711 9.92811 25.7561 +-111.434 9.62221 24.9625 +-113.027 9.38537 24.348 +-113.543 9.05361 23.4874 +-115.324 8.81655 22.8724 +-118.669 8.68372 22.5278 +-126.434 8.83935 22.9315 +-156.829 10.4544 27.1214 +-160.425 10.1741 26.3943 +-162.343 9.77111 25.3488 +-166.425 9.48064 24.5952 +-858.466 46.1454 119.713 +-867.079 43.8295 113.705 +-380.417 18.0134 46.7313 +-381.138 16.8318 43.6661 +-900.673 36.9091 95.7516 +-403.776 15.2639 39.5986 +-404.031 13.9926 36.3003 +-404.754 12.7365 33.0416 +-404.649 11.4543 29.7153 +-405.011 10.1863 26.4258 +-403.945 8.88614 23.0529 +-148.296 2.79532 7.25179 +-402.816 6.32564 16.4103 +-404.154 5.07618 13.1689 +-147.649 1.39061 3.6076 +-145.178 0.911439 2.36451 +-144.894 0.454793 1.17985 +119.8 1.77636e-15 -1.13687e-13 +119.895 0.38512 0.972855 +119.982 0.770854 1.94726 +120.559 1.16199 2.93531 +120.327 1.54661 3.90691 +119.686 1.92341 4.85874 +120.335 2.32125 5.86374 +119.477 2.68971 6.7945 +121.104 3.11701 7.87392 +120.627 3.49433 8.82707 +120.44 3.87844 9.79736 +120.443 4.26867 10.7831 +120.636 4.66692 11.7892 +120.818 5.06673 12.7991 +120.594 5.45011 13.7676 +121.055 5.86607 14.8184 +120.714 6.24445 15.7742 +120.462 6.62651 16.7393 +120.992 7.05348 17.8179 +120.721 7.43576 18.7836 +120.54 7.82323 19.7624 +120.154 8.19672 20.7058 +119.955 8.58235 21.68 +120.531 9.02603 22.8007 +120.312 9.4128 23.7778 +120.963 9.87061 24.9343 +120.627 10.2505 25.8938 +121.255 10.7149 27.0669 +121.19 11.1217 28.0947 +120.922 11.5106 29.0771 +120.548 11.889 30.033 +120.165 12.2659 30.9851 +121.215 12.7935 32.3178 +121.195 13.2137 33.3792 +121.738 13.6993 34.606 +121.408 14.0898 35.5924 +121.925 14.5816 36.8348 +121.385 14.9493 37.7637 +121.405 15.3866 38.8683 +121.318 15.8128 39.9449 +121.69 16.3026 41.1822 +121.58 16.7315 42.2657 +121.085 17.1082 43.2172 +119.559 17.3346 43.7891 +116.176 17.2767 43.643 +112.99 17.2267 43.5165 +109.632 17.1287 43.2691 +107.113 17.1427 43.3042 +103.596 16.977 42.8858 +101.825 17.0802 43.1465 +99.3313 17.0488 43.0672 +96.7571 16.9869 42.9108 +96.7102 17.3616 43.8573 +97.0109 17.8029 44.9722 +97.2979 18.2476 46.0954 +97.4825 18.6784 47.1836 +97.654 19.1117 48.2784 +96.582 19.3017 48.7582 +96.8204 19.754 49.9007 +97.0447 20.2092 51.0507 +96.4752 20.5017 51.7897 +96.8471 20.9976 53.0424 +96.2599 21.289 53.7783 +96.5189 21.7704 54.9945 +96.6775 22.2357 56.1697 +96.231 22.5651 57.002 +96.1955 22.9936 58.0845 +96.3972 23.4846 59.3246 +96.5 23.958 60.5205 +96.5876 24.4338 61.7225 +96.0046 24.7431 62.5039 +96.147 25.2429 63.7664 +96.1921 25.7239 64.9813 +96.2217 26.207 66.2018 +96.3953 26.7366 67.5396 +96.3131 27.202 68.7153 +96.3737 27.7143 70.0094 +96.3391 28.2061 71.2518 +95.6667 28.5145 72.0307 +96.3759 29.2421 73.8688 +95.679 29.5505 74.648 +96.2674 30.2631 76.448 +96.2255 30.7885 77.7751 +96.0161 31.2671 78.9843 +96.0143 31.8206 80.3825 +95.9198 32.3516 81.7238 +95.8073 32.8844 83.0697 +95.6769 33.4189 84.4199 +95.5283 33.9551 85.7743 +96.0035 34.725 87.7192 +95.7423 35.2403 89.0208 +95.604 35.809 90.4575 +95.9323 36.5648 92.3667 +95.6813 37.1118 93.7486 +95.4798 37.6871 95.2019 +95.7311 38.4535 97.1377 +95.418 39.0056 98.5324 +95.6823 39.8069 100.557 +95.719 40.5294 102.382 +95.4039 41.1154 103.862 +95.2611 41.7867 105.558 +94.8393 42.3466 106.972 +94.9644 43.1644 109.038 +94.9957 43.9576 111.042 +94.504 44.5223 112.468 +94.9059 45.5249 115.001 +95.0266 46.416 117.252 +94.7553 47.1334 119.064 +94.751 48.002 121.258 +94.7127 48.8736 123.46 +94.7548 49.8093 125.824 +94.6465 50.6879 128.043 +94.3358 51.4785 130.04 +94.5468 52.5776 132.817 +94.3859 53.4966 135.138 +94.1349 54.3874 137.389 +94.4846 55.6554 140.592 +94.102 56.5215 142.78 +94.355 57.7998 146.009 +93.7931 58.6081 148.051 +93.9 59.8636 151.222 +93.9544 61.1239 154.406 +93.9076 62.3569 157.521 +94.0957 63.7884 161.137 +93.8474 64.9655 164.11 +94.012 66.4724 167.917 +93.7036 67.6903 170.993 +93.6569 69.1416 174.659 +93.5922 70.6309 178.421 +93.8084 72.3903 182.866 +93.9058 74.1235 187.244 +93.5548 75.5609 190.875 +93.6308 77.4053 195.534 +93.5864 79.2221 200.124 +93.4238 81.0106 204.642 +93.6044 83.1778 210.116 +93.1647 84.8746 214.403 +93.3845 87.2594 220.427 +93.319 89.4803 226.037 +93.1902 91.7418 231.75 +92.9953 94.0437 237.565 +93.032 96.6983 244.271 +92.6241 99.012 250.115 +90.7491 99.8295 252.18 +90.5729 102.603 259.185 +88.2572 103.03 260.265 +87.1852 104.964 265.15 +87.3915 108.593 274.317 +89.6924 115.132 290.836 +91.7697 121.8 307.68 +91.8549 126.178 318.741 +91.6892 130.496 329.646 +91.3013 134.785 340.482 +91.2538 139.905 353.415 +90.9702 145.034 366.372 +100.558 166.954 421.744 +97.1571 168.242 424.999 +92.2675 166.925 421.671 +90.7297 171.804 433.995 +90.0061 178.748 451.537 +88.1265 183.96 464.703 +87.8053 193.13 487.868 +88.9017 206.601 521.898 +83.5123 205.678 519.565 +79.1199 207.214 523.445 +73.434 205.307 518.628 +69.0268 206.923 522.711 +63.4504 204.979 517.801 +59.0586 206.823 522.457 +53.6065 204.916 517.641 +49.0338 206.291 521.113 +43.7723 204.716 517.134 +39.1822 206.244 520.995 +33.9613 204.378 516.281 +29.35 206.133 520.715 +24.2437 204.381 516.289 +19.5542 206.106 520.648 +14.523 204.138 515.674 +9.76113 205.833 519.956 +4.83363 203.869 514.995 +2.9754e-14 205.643 519.477 +-4.83101 203.758 514.716 +-9.74193 205.428 518.933 +-14.4759 203.476 514.002 +-19.46 205.113 518.138 +-24.1346 203.462 513.966 +-29.2139 205.177 518.301 +-33.7598 203.166 513.219 +-38.9729 205.142 518.212 +-43.3879 202.918 512.592 +-48.6939 204.861 517.5 +-53.0602 202.828 512.365 +-58.4314 204.626 516.909 +-62.7033 202.566 511.703 +-68.125 204.22 515.882 +-72.4942 202.679 511.991 +-77.923 204.079 515.527 +-82.2707 202.62 511.84 +-87.6815 203.766 514.734 +-91.8655 202.061 510.428 +-97.6424 203.824 514.881 +-101.87 202.308 511.052 +-107.578 203.707 514.587 +-111.506 201.731 509.595 +-117.429 203.346 513.673 +-121.574 201.846 509.886 +-127.637 203.493 514.045 +-131.523 201.643 509.373 +-138.863 204.999 517.85 +-138.635 197.311 498.429 +-142.118 195.223 493.155 +-114.138 151.487 382.674 +-112.405 144.286 364.483 +-115.31 143.284 361.952 +-118.469 142.627 360.291 +-122.207 142.662 360.381 +-126.759 143.594 362.735 +-1039.59 1143.6 2888.87 +-1066.66 1140.22 2880.32 +-1093.65 1136.75 2871.56 +-1120.56 1133.19 2862.57 +-1147.52 1129.69 2853.72 +-1174.26 1125.96 2844.3 +-468.059 437.361 1104.82 +-159.32 145.143 366.648 +-162.181 144.116 364.052 +-164.849 142.946 361.097 +-168.631 142.748 360.598 +-172.741 142.807 360.745 +-141.991 114.681 289.698 +-142.084 112.153 283.31 +-144.695 111.659 282.062 +-148.827 112.315 283.719 +-434.507 320.772 810.305 +-435.558 314.642 794.82 +-437.137 309.084 780.781 +-438.862 303.801 767.434 +-440.513 298.627 754.366 +-441.855 293.402 741.167 +-444.166 288.961 729.947 +-446.65 284.75 719.309 +-448.512 280.26 707.967 +-450.195 275.78 696.65 +-453.059 272.126 687.421 +-455.307 268.195 677.49 +-457.994 264.611 668.437 +-459.948 260.691 658.535 +-462.468 257.178 649.661 +-464.466 253.456 640.257 +-466.832 250.013 631.56 +-469.472 246.785 623.406 +-472.17 243.649 615.485 +-468.171 237.18 599.144 +-461.582 229.602 580 +-462.675 225.994 570.887 +-464.728 222.923 563.127 +-470.735 221.77 560.214 +-474.854 219.731 555.064 +-479.479 217.94 550.54 +-481.766 215.113 543.399 +-135.757 59.5504 150.431 +-135.54 58.4123 147.556 +-490.142 207.536 524.26 +-493.519 205.32 518.661 +-495.826 202.687 512.011 +-498.518 200.246 505.844 +-500.723 197.641 499.263 +-503.807 195.411 493.631 +-506.267 192.965 487.45 +-509.281 190.754 481.865 +-509.753 187.627 473.967 +-521.386 188.588 476.395 +-518.212 184.196 465.3 +-521.617 182.195 460.245 +-524.015 179.86 454.347 +-141.041 47.5699 120.167 +-142.089 47.0907 118.956 +-143.2 46.6324 117.799 +-141.81 45.3736 114.619 +-142.044 44.6537 112.8 +-142.331 43.9591 111.046 +-146.609 44.4836 112.371 +-153.875 45.8639 115.857 +-155.896 45.643 115.299 +-157.129 45.1859 114.145 +-158.512 44.7692 113.092 +-160.047 44.3912 112.137 +-161.575 44.0066 111.166 +-581.117 155.403 392.566 +-571.672 150.09 379.143 +-574.062 147.952 373.743 +-577.3 146.04 368.913 +-580.492 144.118 364.059 +-584.721 142.451 359.848 +-2747.9 656.832 1659.23 +-382.141 89.6077 226.359 +-382.809 88.0456 222.413 +-381.471 86.0432 217.355 +-381.525 84.3784 213.149 +-380.926 82.5896 208.631 +-381.571 81.0868 204.834 +-383.392 79.8401 201.685 +-381.422 77.8201 196.582 +-380.704 76.0828 192.194 +-380.727 74.5115 188.224 +-380.794 72.963 184.313 +-381.173 71.4863 180.582 +-380.437 69.816 176.363 +-381.268 68.446 172.902 +-381.613 66.9969 169.242 +-380.559 65.3174 164.999 +-380.546 63.8333 161.25 +-379.852 62.2491 157.248 +-379.663 60.7624 153.493 +-380.445 59.4399 150.152 +-379.437 57.8495 146.134 +-380.238 56.5458 142.841 +-114.162 16.5522 41.8127 +-113.057 15.9738 40.3517 +-111.558 15.3523 38.7815 +-110.884 14.8549 37.5251 +-109.535 14.277 36.0653 +-108.924 13.8048 34.8725 +-109.342 13.4661 34.0168 +-109.276 13.0689 33.0134 +-108.914 12.6399 31.9298 +-108.636 12.225 30.8817 +-109.018 11.886 30.0255 +-109.584 11.5659 29.2167 +-109.372 11.1643 28.2022 +-110.309 10.8792 27.4821 +-110.562 10.5245 26.586 +-111.584 10.2402 25.8679 +-111.434 9.84702 24.8747 +-112.929 9.59636 24.2415 +-114.227 9.32089 23.5456 +-115.324 9.02253 22.7919 +-118.963 8.90861 22.5041 +-126.826 9.07395 22.9218 +-160.271 10.9334 27.619 +-160.031 10.3862 26.2368 +-164.019 10.1027 25.5205 +-167.907 9.78853 24.7269 +-857.872 47.1908 119.209 +-867.079 44.8535 113.305 +-379.823 18.4054 46.4941 +-379.947 17.1713 43.3765 +-899.977 37.742 95.3404 +-404.373 15.6436 39.5176 +-404.429 14.3336 36.2082 +-403.957 13.0084 32.8606 +-404.449 11.7161 29.5963 +-403.714 10.3909 26.2485 +-404.245 9.10053 22.9889 +-3272.01 63.117 159.441 +-403.715 6.4879 16.3891 +-403.454 5.18576 13.0998 +-145.95 1.40672 3.55352 +-146.178 0.939156 2.37241 +-145.494 0.467348 1.18057 +119.8 1.77636e-15 -1.13687e-13 +119.895 0.393881 0.969341 +119.882 0.787731 1.93861 +119.659 1.17955 2.90288 +120.327 1.58179 3.8928 +120.485 1.9803 4.87353 +120.335 2.37406 5.84256 +120.275 2.76928 6.8152 +120.306 3.16691 7.79378 +120.727 3.57678 8.80246 +120.54 3.96994 9.77003 +120.443 4.36577 10.7442 +120.636 4.77309 11.7466 +120.818 5.18199 12.7529 +120.594 5.57409 13.7179 +121.055 5.99952 14.7648 +120.615 6.38127 15.7043 +120.462 6.77726 16.6788 +120.992 7.21394 17.7535 +119.834 7.54901 18.5781 +120.54 8.0012 19.691 +120.154 8.38318 20.631 +120.74 8.83503 21.743 +120.531 9.23136 22.7184 +120.41 9.63476 23.7112 +120.182 10.03 24.6837 +120.627 10.4836 25.8003 +121.255 10.9586 26.9692 +121.19 11.3747 27.9933 +120.825 11.763 28.9488 +121.224 12.2277 30.0924 +120.839 12.6154 31.0465 +121.407 13.1053 32.2521 +121.099 13.5036 33.2323 +120.877 13.9119 34.2373 +121.408 14.4103 35.4639 +121.165 14.8203 36.4728 +121.385 15.2894 37.6273 +121.405 15.7366 38.7279 +121.506 16.1977 39.8625 +121.784 16.6863 41.0651 +121.58 17.1121 42.113 +121.926 17.6188 43.36 +119.466 17.7152 43.5971 +116.269 17.6839 43.5201 +113.822 17.7482 43.6784 +109.632 17.5184 43.1128 +107.755 17.6377 43.4064 +104.418 17.501 43.0701 +101.825 17.4687 42.9906 +99.3313 17.4367 42.9117 +97.2987 17.4706 42.9952 +97.2495 17.8556 43.9426 +97.0109 18.2079 44.8098 +97.2979 18.6627 45.9289 +97.5712 19.1206 47.0559 +97.654 19.5465 48.104 +97.3729 19.9025 48.98 +96.8204 20.2033 49.7204 +96.3484 20.5206 50.5013 +96.5618 20.9869 51.6489 +96.761 21.4562 52.8038 +97.0313 21.9477 54.0135 +96.5189 22.2657 54.7958 +96.6775 22.7415 55.9669 +95.9779 23.0178 56.6468 +96.9503 23.7012 58.3288 +96.3972 24.0188 59.1104 +96.4171 24.4819 60.2501 +96.67 25.011 61.5521 +96.0865 25.3276 62.3312 +96.2285 25.839 63.5899 +96.1112 26.2869 64.6921 +95.659 26.6464 65.5769 +96.3154 27.3221 67.2399 +96.3131 27.8208 68.4671 +96.3737 28.3448 69.7565 +96.3391 28.8478 70.9944 +96.3661 29.3763 72.2952 +96.3759 29.9073 73.602 +96.2918 30.4163 74.8547 +95.583 30.7315 75.6303 +96.15 31.4642 77.4334 +95.5667 31.8287 78.3306 +96.0886 32.5697 80.1541 +95.9198 33.0876 81.4286 +95.7342 33.6068 82.7065 +95.6769 34.1792 84.115 +96.1757 34.9629 86.0437 +95.9322 35.4886 87.3374 +95.813 36.0686 88.7648 +95.604 36.6236 90.1307 +95.3766 37.18 91.5 +95.6125 37.929 93.3433 +96.0936 38.7922 95.4676 +95.7311 39.3282 96.7868 +95.2173 39.8093 97.9708 +95.5498 40.6559 100.054 +95.1942 41.224 101.452 +95.4039 42.0507 103.487 +95.2611 42.7373 105.177 +94.8393 43.3099 106.586 +94.9644 44.1464 108.644 +94.9957 44.9576 110.641 +95.0581 45.802 112.719 +94.845 46.5304 114.511 +94.846 47.3816 116.606 +94.6363 48.1454 118.486 +94.5746 49.0025 120.595 +94.4804 49.8631 122.713 +94.8122 50.9732 125.445 +94.5332 51.7792 127.429 +94.3918 52.6808 129.648 +94.1053 53.5225 131.719 +94.277 54.6504 134.495 +94.1886 55.6566 136.971 +94.3786 56.8575 139.926 +94.5722 58.0964 142.975 +94.252 59.0503 145.323 +94.3514 60.2982 148.394 +93.9 61.2254 150.676 +93.9544 62.5144 153.848 +93.8591 63.7423 156.87 +93.714 64.9748 159.903 +93.8004 66.4102 163.436 +94.012 67.9845 167.31 +93.749 69.2637 170.458 +93.7015 70.748 174.111 +93.5484 72.2037 177.694 +93.8084 74.037 182.205 +93.5677 75.5368 185.896 +93.5963 77.314 190.27 +93.6308 79.1661 194.828 +93.5465 80.9896 199.316 +93.4629 82.8881 203.988 +93.5278 85.0003 209.186 +93.2396 86.875 213.8 +93.2013 89.0693 219.2 +93.4265 91.6213 225.48 +93.2952 93.9345 231.173 +93.0295 96.2185 236.794 +92.7315 98.5788 242.603 +92.0381 100.624 247.635 +87.6713 98.6375 242.747 +87.5445 101.428 249.614 +88.2872 105.409 259.413 +87.2145 107.388 264.281 +87.1927 110.81 272.704 +88.7552 116.52 286.757 +91.7162 124.498 306.39 +91.829 129.012 317.5 +91.4137 133.063 327.469 +91.3013 137.851 339.252 +91.2304 143.051 352.048 +91.0602 148.48 365.41 +97.8307 166.121 408.824 +95.2859 168.756 415.308 +90.6725 167.771 412.886 +90.2527 174.788 430.154 +88.9674 180.704 444.713 +87.1367 186.032 457.824 +89.3568 201.014 494.695 +87.4938 207.955 511.777 +81.3839 204.995 504.494 +77.589 207.827 511.462 +71.5153 204.491 503.253 +67.5766 207.184 509.881 +61.8769 204.443 503.136 +57.8356 207.147 509.79 +52.1497 203.882 501.754 +48.0141 206.596 508.433 +42.6033 203.781 501.505 +38.4707 207.105 509.686 +33.1555 204.067 502.21 +28.7534 206.537 508.287 +23.6155 203.615 501.096 +19.1528 206.469 508.12 +14.1591 203.551 500.939 +9.56217 206.224 507.518 +4.71233 203.274 500.257 +3.08642e-14 206.143 507.317 +-4.70971 203.161 499.979 +-9.54123 205.773 506.407 +-14.1277 203.099 499.827 +-19.09 205.791 506.453 +-23.5283 202.863 499.245 +-28.6278 205.634 506.067 +-32.9479 202.79 499.066 +-38.1359 205.302 505.25 +-42.3679 202.655 498.734 +-47.7003 205.246 505.11 +-51.7567 202.346 497.973 +-57.1771 204.789 503.985 +-61.2995 202.536 498.441 +-66.8819 205.054 504.639 +-70.6669 202.065 497.282 +-76.3782 204.584 503.481 +-80.2309 202.091 497.347 +-85.9451 204.274 502.719 +-89.6374 201.645 496.248 +-95.767 204.456 503.168 +-99.0997 201.284 495.361 +-105.46 204.24 502.634 +-108.755 201.23 495.227 +-115.225 204.068 502.212 +-118.457 201.146 495.021 +-125.073 203.94 501.898 +-128.115 200.886 494.382 +-136.565 206.192 507.44 +-139.261 202.711 498.872 +-142.118 199.664 491.373 +-112.935 153.301 377.273 +-112.653 147.894 363.968 +-115.821 147.194 362.244 +-118.703 146.159 359.699 +-122.959 146.805 361.288 +-127.191 147.362 362.659 +-1039.59 1169.62 2878.43 +-1066.66 1166.16 2869.92 +-1093.65 1162.61 2861.19 +-1120.56 1158.97 2852.23 +-1147.38 1155.25 2843.07 +-1174.12 1151.44 2833.69 +-470.074 449.234 1105.56 +-160.069 149.143 367.042 +-162.87 148.02 364.278 +-165.436 146.717 361.072 +-169.428 146.686 360.995 +-174.327 147.396 362.743 +-142.406 117.633 289.494 +-142.084 114.704 282.287 +-145.9 115.15 283.384 +-149.046 115.039 283.11 +-434.864 328.339 808.042 +-435.967 322.101 792.692 +-437.368 316.282 778.372 +-438.862 310.712 764.662 +-440.942 305.719 752.374 +-442.437 300.472 739.462 +-444.954 296.058 728.6 +-446.85 291.358 717.032 +-448.664 286.732 705.649 +-451.07 282.602 695.483 +-453.581 278.638 685.728 +-455.943 274.679 675.986 +-457.994 270.631 666.023 +-459.948 266.622 656.156 +-463.351 263.531 648.55 +-464.969 259.502 638.635 +-468.078 256.383 630.958 +-469.759 252.553 621.534 +-472.692 249.468 613.941 +-474.813 246.017 605.449 +-477.524 242.935 597.864 +-471.883 235.735 580.145 +-482.322 236.625 582.335 +-468.765 225.865 555.854 +-471.368 223.079 548.999 +-477.151 221.815 545.887 +-479.158 218.816 538.506 +-484.855 217.521 535.321 +-487.995 215.09 529.338 +-135.411 58.64 144.313 +-135.042 57.4598 141.409 +-496.361 207.522 510.713 +-499.194 205.079 504.699 +-501.61 202.495 498.341 +-504.426 200.102 492.452 +-506.892 197.598 486.289 +-505.636 193.697 476.688 +-514.137 193.546 476.316 +-518.39 191.77 471.947 +-518.356 188.439 463.748 +-522.27 186.573 459.157 +-525.112 184.337 453.654 +-142.368 49.1098 120.859 +-142.164 48.1872 118.589 +-143.2 47.6933 117.373 +-141.81 46.4058 114.205 +-141.892 45.6205 112.272 +-142.484 45.0073 110.763 +-147.998 45.9266 113.025 +-155.895 47.5235 116.955 +-156.13 46.7518 115.056 +-157.208 46.2368 113.789 +-158.512 45.7877 112.684 +-159.967 45.3785 111.677 +-162.218 45.1869 111.205 +-581.521 159.049 391.42 +-574.44 154.247 379.602 +-574.717 151.49 372.818 +-577.877 149.511 367.948 +-581.321 147.607 363.262 +-585.388 145.858 358.958 +-588.076 143.766 353.808 +-380.96 91.363 224.845 +-382.046 89.8689 221.168 +-381.045 87.9024 216.328 +-380.839 86.1428 211.998 +-380.754 84.43 207.782 +-379.925 82.5737 203.214 +-381.477 81.2483 199.952 +-380.809 79.4628 195.558 +-380.616 77.7955 191.455 +-381.433 76.3481 187.893 +-380.705 74.6055 183.604 +-381.44 73.1637 180.056 +-381.242 71.5551 176.097 +-380.999 69.9537 172.156 +-381.613 68.521 168.63 +-378.746 66.4851 163.62 +-381.365 65.4258 161.013 +-382.045 64.0326 157.584 +-379.663 62.1447 152.938 +-378.88 60.5422 148.994 +-380.361 59.3097 145.961 +-380.331 57.8464 142.36 +-114.534 16.9839 41.7975 +-112.87 16.3102 40.1395 +-110.902 15.6092 38.4144 +-110.79 15.1799 37.3579 +-109.535 14.6018 35.935 +-108.924 14.1188 34.7465 +-108.488 13.6649 33.6294 +-109.181 13.3545 32.8656 +-108.819 12.9161 31.7866 +-109.114 12.5581 30.9056 +-108.538 12.103 29.7854 +-109.488 11.8186 29.0856 +-109.758 11.4585 28.1994 +-110.019 11.0975 27.3109 +-110.853 10.7922 26.5596 +-110.711 10.3912 25.5727 +-111.92 10.115 24.893 +-112.735 9.79772 24.1122 +-114.422 9.54923 23.5007 +-115.128 9.21212 22.671 +-119.355 9.14127 22.4967 +-132.422 9.68979 23.8466 +-157.124 10.9626 26.979 +-160.918 10.6814 26.2868 +-164.019 10.3325 25.4283 +-161.388 9.62252 23.6811 +-859.158 48.3366 118.956 +-867.574 45.9002 112.961 +-382.103 18.9371 46.6043 +-380.244 17.5756 43.2536 +-900.474 38.622 95.0488 +-405.566 16.0467 39.491 +-403.235 14.6164 35.9709 +-404.355 13.3174 32.7741 +-404.25 11.9767 29.4748 +-404.313 10.643 26.1925 +-404.744 9.31903 22.9342 +-404.445 7.97922 19.6369 +-404.215 6.64369 16.3501 +-403.854 5.309 13.0655 +-145.35 1.43281 3.52614 +-145.278 0.954607 2.34929 +-146.094 0.479952 1.18116 +119.8 1.77636e-15 -1.13687e-13 +119.895 0.40261 0.965749 +119.882 0.805188 1.93142 +119.659 1.20569 2.89212 +120.327 1.61685 3.87837 +120.485 2.02419 4.85546 +120.235 2.42466 5.81608 +120.375 2.833 6.79557 +120.206 3.23441 7.75846 +120.727 3.65604 8.76983 +120.44 4.05457 9.72579 +120.443 4.46252 10.7044 +120.636 4.87887 11.703 +120.818 5.29683 12.7056 +120.495 5.69293 13.6558 +121.055 6.13247 14.7101 +120.714 6.52804 15.659 +120.462 6.92745 16.617 +120.992 7.37381 17.6877 +120.721 7.77345 18.6463 +120.442 8.17186 19.602 +120.154 8.56896 20.5546 +120.642 9.02348 21.6448 +120.433 9.42824 22.6157 +120.312 9.84027 23.6041 +120.963 10.3189 24.7521 +120.627 10.716 25.7047 +121.352 11.2105 26.8908 +121.093 11.6175 27.8672 +120.728 12.0141 28.8184 +121.224 12.4987 29.9808 +121.803 12.9978 31.1781 +120.734 13.3215 31.9545 +121.291 13.8247 33.1616 +120.973 14.2315 34.1373 +121.408 14.7297 35.3324 +121.83 15.2319 36.5372 +122.049 15.7137 37.6928 +121.688 16.1229 38.6744 +121.318 16.5309 39.6531 +121.972 17.0824 40.976 +121.393 17.4644 41.8923 +121.179 17.899 42.9346 +120.954 18.3334 43.9767 +116.454 18.1046 43.4279 +114.653 18.2741 43.8344 +110.369 18.0269 43.2415 +108.58 18.1667 43.5768 +105.149 18.0141 43.2108 +102.553 17.9835 43.1374 +99.9657 17.9369 43.0257 +97.389 17.8743 42.8755 +96.171 18.0488 43.2942 +97.0109 18.6114 44.6437 +97.2979 19.0763 45.7587 +96.7729 19.3845 46.498 +97.654 19.9797 47.9257 +97.5487 20.3802 48.8865 +96.8204 20.6511 49.5362 +96.3484 20.9754 50.3142 +96.5618 21.452 51.4575 +95.9855 21.7559 52.1865 +96.3456 22.2756 53.433 +96.4336 22.739 54.5446 +96.6775 23.2455 55.7594 +96.1466 23.5692 56.536 +96.1955 24.0379 57.6602 +96.3972 24.5511 58.8913 +96.6658 25.089 60.1816 +95.9283 25.3691 60.8534 +96.0865 25.8889 62.1002 +96.147 26.3893 63.3005 +96.1921 26.8921 64.5066 +96.3021 27.4201 65.7731 +95.5967 27.7192 66.4907 +96.3131 28.4374 68.2133 +96.3737 28.9729 69.498 +95.713 29.2954 70.2715 +96.3661 30.0274 72.0273 +95.6814 30.3498 72.8008 +95.6023 30.8678 74.0433 +96.2674 31.6375 75.8895 +95.5462 31.9595 76.6621 +96.091 32.7126 78.4685 +96.0143 33.2657 79.7953 +95.9198 33.8208 81.1268 +96.4656 34.614 83.0294 +95.6769 34.9366 83.8032 +96.1757 35.7377 85.7248 +96.0035 36.302 87.0784 +95.813 36.8679 88.4358 +95.5339 37.4077 89.7308 +96.0018 38.253 91.7584 +95.6813 38.7972 93.0637 +95.4798 39.3986 94.5064 +95.6636 40.1713 96.3598 +95.3511 40.7485 97.7443 +95.6823 41.6146 99.822 +95.1942 42.1376 101.076 +95.339 42.9533 103.033 +95.2611 43.6844 104.787 +95.4117 44.5371 106.832 +94.9644 45.1247 108.242 +94.9957 45.9539 110.231 +95.0581 46.817 112.301 +94.845 47.5616 114.087 +94.846 48.4316 116.174 +94.7553 49.2739 118.194 +94.5746 50.0885 120.148 +94.6546 51.062 122.484 +94.6401 52.0082 124.753 +94.5898 52.9583 127.032 +94.224 53.7525 128.937 +94.6572 55.0292 132 +94.4404 55.9581 134.228 +94.2424 56.9224 136.541 +94.3786 58.1175 139.408 +94.1542 59.1214 141.816 +94.4065 60.4578 145.021 +93.9454 61.3694 147.208 +93.95 62.6153 150.197 +93.9544 63.8998 153.278 +93.8591 65.1549 156.289 +94.048 66.6514 159.878 +93.8004 67.8819 162.83 +94.012 69.4911 166.69 +93.749 70.7987 169.826 +93.6569 72.2816 173.384 +93.5922 73.8385 177.118 +93.7223 75.6085 181.364 +93.5254 77.1758 185.123 +93.6792 79.0974 189.733 +93.224 80.5692 193.263 +93.5864 82.8199 198.662 +93.4629 84.725 203.232 +93.413 86.7774 208.155 +93.3145 88.8715 213.178 +93.128 90.9716 218.216 +93.3549 93.5801 224.473 +93.2952 96.0162 230.316 +92.7559 98.0618 235.223 +89.6939 97.4627 233.786 +88.8801 99.3247 238.252 +87.3857 100.495 241.059 +87.1737 103.236 247.636 +89.0991 108.736 260.828 +87.156 109.694 263.124 +87.1643 113.229 271.605 +87.57 117.512 281.879 +91.7429 127.294 305.343 +91.6219 131.574 315.61 +91.614 136.31 326.97 +91.3497 140.981 338.174 +91.1137 146.034 350.295 +91.0377 151.733 363.966 +94.4326 163.904 393.161 +92.2296 166.963 400.497 +90.214 170.622 409.275 +89.871 177.906 426.747 +87.2179 181.077 434.353 +87.154 190.192 456.218 +87.8218 201.939 484.395 +84.8031 206.027 494.2 +78.4572 202.003 484.55 +75.1535 205.764 493.572 +69.0353 201.774 484 +65.5779 205.512 492.966 +59.6807 201.557 483.48 +56.09 205.347 492.57 +50.4053 201.429 483.173 +46.576 204.849 491.376 +41.1126 201.008 482.164 +37.236 204.901 491.5 +31.9528 201.023 482.2 +27.8532 204.505 490.55 +22.778 200.746 481.534 +18.5735 204.661 490.924 +13.6539 200.638 481.274 +9.26199 204.177 489.764 +4.54827 200.545 481.051 +3.06422e-14 204.131 489.654 +-4.53169 199.814 479.298 +-9.2585 204.1 489.579 +-13.6172 200.099 479.982 +-18.5142 204.007 489.356 +-22.6646 199.746 479.136 +-27.7433 203.698 488.614 +-31.7208 199.564 478.699 +-36.9709 203.442 488.001 +-40.838 199.666 478.942 +-46.2797 203.546 488.25 +-49.9548 199.629 478.855 +-55.5046 203.204 487.43 +-59.0355 199.378 478.253 +-64.7736 202.991 486.92 +-68.1869 199.295 478.052 +-74.0958 202.869 486.625 +-77.3043 199.035 477.429 +-83.3014 202.378 485.449 +-86.3199 198.485 476.11 +-92.6066 202.091 484.76 +-95.6372 198.556 476.281 +-102.216 202.345 485.369 +-104.927 198.449 476.025 +-111.503 201.853 484.19 +-114.237 198.278 475.614 +-121.226 202.049 484.658 +-123.819 198.453 476.035 +-130.831 201.913 484.334 +-134.053 199.454 478.436 +-142.558 204.721 491.068 +-111.171 154.251 370.005 +-112.956 151.578 363.594 +-116.333 151.12 362.494 +-119.492 150.392 360.749 +-123.951 151.269 362.853 +-128.211 151.835 364.211 +-1039.59 1195.54 2867.76 +-1066.66 1192 2859.28 +-1093.65 1188.38 2850.59 +-1120.56 1184.66 2841.66 +-1147.38 1180.85 2832.53 +-200.579 201.062 482.293 +-465.493 454.714 1090.73 +-158.946 151.378 363.114 +-163.214 151.621 363.696 +-166.139 150.606 361.263 +-170.027 150.466 360.926 +-432.239 373.564 896.076 +-142.364 120.205 288.337 +-143.141 118.117 283.331 +-146.89 118.501 284.25 +-149.485 117.934 282.891 +-435.935 336.441 807.03 +-436.512 329.651 790.74 +-437.969 323.735 776.551 +-439.285 317.903 762.562 +-441.754 313.069 750.965 +-443.164 307.636 737.933 +-445.693 303.122 727.105 +-447.35 298.148 715.174 +-449.882 293.883 704.943 +-451.997 289.458 694.33 +-454.522 285.403 684.603 +-456.26 280.962 673.949 +-459.445 277.504 665.656 +-460.601 272.918 654.654 +-464.179 269.852 647.301 +-465.808 265.731 637.416 +-468.928 262.54 629.76 +-471.193 258.938 621.12 +-473.621 255.498 612.868 +-475.695 251.936 604.325 +-479.011 249.092 597.503 +-481.633 245.938 589.936 +-484.27 242.846 582.52 +-486.188 239.452 574.378 +-489.483 236.786 567.984 +-476.962 226.641 543.649 +-488.89 228.208 547.407 +-480.869 220.515 528.953 +-483.904 218.014 522.954 +-491.06 217.368 521.405 +-494.05 214.875 515.425 +-135.767 58.0202 139.174 +-134.848 56.6261 135.83 +-502.906 207.517 497.776 +-505.734 205.067 491.899 +-507.587 202.254 485.151 +-506.898 198.483 476.107 +-525.168 202.079 484.732 +-517.82 195.804 469.68 +-519.939 193.203 463.439 +-523.43 191.132 458.472 +-141.371 50.7269 121.68 +-142.663 50.3024 120.662 +-142.015 49.2035 118.025 +-142.826 48.6228 116.633 +-141.659 47.3838 113.661 +-142.272 46.7566 112.156 +-143.48 46.3264 111.124 +-150.081 47.6051 114.191 +-155.74 48.5282 116.406 +-156.991 48.051 115.261 +-157.681 47.4038 113.709 +-159.226 47.0129 112.771 +-161.404 46.8008 112.262 +-569.05 162.025 388.654 +-572.541 160.063 383.948 +-587.384 161.218 386.718 +-575.864 155.157 372.177 +-579.855 153.348 367.838 +-582.565 151.201 362.69 +-586.972 149.494 358.595 +-2747.9 686.661 1647.11 +-2763.37 677.407 1624.91 +-597.704 143.714 344.73 +-601.708 141.882 340.337 +-381.954 88.3097 211.83 +-380.582 86.2622 206.919 +-380.705 84.5768 202.876 +-381.738 83.1058 199.348 +-380.46 81.1491 194.654 +-382.11 79.832 191.495 +-382.051 78.1662 187.499 +-381.149 76.3473 183.136 +-381.707 74.8378 179.515 +-380.795 73.0551 175.239 +-381.358 71.5713 171.68 +-380.71 69.874 167.608 +-381.465 68.4464 164.184 +-381.365 66.8757 160.416 +-380.035 65.1072 156.174 +-380.672 63.6908 152.777 +-380.261 62.1093 148.983 +-381.377 60.786 145.809 +-382 59.3877 142.455 +-114.348 17.3321 41.5749 +-113.057 16.6993 40.0569 +-110.902 15.9552 38.272 +-110.32 15.4505 37.0616 +-109.912 14.9768 35.9251 +-109.113 14.4568 34.6778 +-109.531 14.1021 33.8269 +-109.371 13.6743 32.8008 +-109.296 13.2602 31.8076 +-109.688 12.9039 30.9529 +-109.977 12.5351 30.0683 +-109.199 12.0487 28.9015 +-109.372 11.6713 27.9962 +-110.116 11.3534 27.2336 +-110.659 11.0121 26.4149 +-110.905 10.6401 25.5226 +-111.92 10.3392 24.8008 +-113.514 10.0841 24.189 +-114.91 9.80248 23.5134 +-115.813 9.47226 22.7213 +-119.061 9.32084 22.3581 +-153.526 11.4831 27.5448 +-159.484 11.3739 27.2827 +-162.296 11.0116 26.4138 +-163.625 10.5361 25.2731 +-166.03 10.1187 24.2719 +-860.642 49.4932 118.72 +-868.069 46.944 112.606 +-381.508 19.3267 46.3593 +-380.344 17.9698 43.1046 +-901.17 39.5083 94.7695 +-404.074 16.342 39.1999 +-403.235 14.9403 35.8376 +-404.455 13.6159 32.6607 +-404.15 12.2391 29.3583 +-403.116 10.8467 26.0182 +-404.245 9.51382 22.821 +-403.546 8.13792 19.5206 +-403.715 6.78254 16.2694 +-3274.5 44 105.544 +-146.45 1.47564 3.53965 +-145.278 0.975762 2.34058 +-145.894 0.489915 1.17517 +119.8 1.77636e-15 -1.13687e-13 +119.895 0.411306 0.962077 +119.882 0.82258 1.92408 +120.559 1.241 2.90279 +120.327 1.65177 3.86363 +119.686 2.05419 4.80491 +120.235 2.47703 5.79397 +120.475 2.89659 6.77536 +120.206 3.30427 7.72896 +120.926 3.74118 8.75092 +120.54 4.14557 9.69681 +120.443 4.55891 10.6637 +120.337 4.9719 11.6297 +120.818 5.41123 12.6573 +120.594 5.82069 13.6151 +121.055 6.26493 14.6542 +120.813 6.6745 15.6122 +120.561 7.0829 16.5675 +120.992 7.53308 17.6205 +120.721 7.94135 18.5755 +120.442 8.34837 19.5275 +120.154 8.75405 20.4764 +120.838 9.2334 21.5977 +120.433 9.63188 22.5297 +120.997 10.1101 23.6482 +119.987 10.4566 24.4589 +120.627 10.9474 25.6069 +121.157 11.4343 26.7456 +121.19 11.8779 27.7835 +120.825 12.2834 28.7318 +120.548 12.6974 29.7002 +121.514 13.247 30.9859 +121.503 13.6959 32.0358 +121.195 14.1121 33.0094 +120.877 14.5274 33.9807 +121.408 15.0478 35.1981 +121.069 15.4638 36.171 +121.385 15.9658 37.3453 +121.594 16.4584 38.4975 +121.318 16.888 39.5023 +121.784 17.4245 40.7574 +121.393 17.8416 41.733 +121.926 18.3983 43.035 +121.606 18.8302 44.0454 +117.567 18.6723 43.6761 +114.838 18.6989 43.7382 +111.105 18.5391 43.3645 +109.314 18.6845 43.7044 +105.88 18.5311 43.3457 +103.19 18.4861 43.2404 +100.6 18.4406 43.1341 +98.8331 18.5312 43.3459 +95.9912 18.4042 43.0489 +96.8319 18.9784 44.3919 +97.2979 19.4883 45.5847 +97.4825 19.9484 46.6609 +98.0955 20.5035 47.9593 +96.7578 20.6516 48.3059 +96.8204 21.0971 49.3478 +96.3484 21.4285 50.1229 +96.5618 21.9154 51.2619 +96.8471 22.4254 52.4547 +96.3456 22.7567 53.2299 +96.5189 23.2507 54.3852 +95.999 23.5809 55.1577 +95.9779 24.0361 56.2223 +96.1955 24.5571 57.441 +96.3972 25.0814 58.6674 +96.5 25.587 59.85 +95.9283 25.917 60.622 +96.0865 26.448 61.8641 +96.0656 26.9364 63.0065 +96.1921 27.4729 64.2614 +96.3021 28.0123 65.523 +96.4752 28.5782 66.8467 +96.3131 29.0516 67.954 +96.3737 29.5987 69.2338 +96.3391 30.124 70.4624 +96.3661 30.6759 71.7535 +96.3759 31.2304 73.0504 +96.3684 31.7872 74.3529 +96.3434 32.3464 75.6608 +96.2255 32.8819 76.9135 +96.091 33.4192 78.1702 +96.0143 33.9843 79.4919 +95.9198 34.5514 80.8184 +95.7342 35.0936 82.0866 +95.6769 35.6912 83.4847 +95.6003 36.2911 84.8879 +96.0035 37.0861 86.7474 +95.813 37.6642 88.0996 +95.604 38.2438 89.4553 +95.9323 39.051 91.3434 +95.6125 39.6069 92.6437 +95.4798 40.2496 94.1471 +95.7311 41.0681 96.0615 +95.3511 41.6286 97.3727 +95.7486 42.543 99.5115 +95.1286 43.0182 100.623 +94.7545 43.6118 102.012 +95.3254 44.6579 104.458 +94.8393 45.2259 105.787 +94.9015 46.0691 107.759 +94.9957 46.9465 109.812 +94.935 47.7661 111.729 +94.4189 48.3707 113.143 +94.3044 49.195 115.071 +94.6363 50.2753 117.598 +94.4571 51.1067 119.543 +94.7127 52.1968 122.092 +94.5828 53.0993 124.204 +94.5898 54.1021 126.549 +94.3358 54.9787 128.6 +94.1604 55.923 130.808 +94.4404 57.1667 133.718 +94.2424 58.1518 136.022 +94.3786 59.3728 138.878 +94.1542 60.3984 141.277 +94.355 61.7299 144.391 +93.9454 62.6949 146.648 +93.95 63.9678 149.626 +93.9544 65.2799 152.695 +93.8107 66.528 155.614 +94.048 68.091 159.27 +93.8474 69.3827 162.292 +94.012 70.9921 166.056 +93.7036 72.2929 169.099 +93.6569 73.8429 172.724 +93.5922 75.4334 176.445 +93.4209 76.9932 180.093 +93.5677 78.8785 184.503 +93.2645 80.4482 188.175 +93.2647 82.3453 192.612 +93.2275 84.2844 197.148 +93.4629 86.555 202.459 +93.1834 88.434 206.854 +93.1647 90.6456 212.027 +93.2379 93.0463 217.643 +93.0682 95.3078 222.933 +92.945 97.7222 228.58 +90.8063 98.074 229.403 +88.3921 98.1224 229.516 +87.3174 99.6857 233.173 +87.2588 102.516 239.794 +87.2355 105.541 246.869 +89.3096 111.347 260.451 +86.8052 111.612 261.07 +87.2495 115.788 270.836 +87.2944 119.673 279.924 +91.4757 129.665 303.296 +91.5702 134.34 314.233 +91.3887 138.912 324.926 +91.3013 143.95 336.71 +90.9503 148.92 348.337 +90.9477 154.857 362.224 +91.1427 161.611 378.021 +90.8158 167.954 392.859 +90.1143 174.115 407.268 +88.7071 179.395 419.619 +87.1086 184.756 432.159 +89.2725 199.023 465.531 +85.3131 200.407 468.769 +81.9717 203.449 475.884 +76.1071 200.184 468.247 +72.537 202.891 474.577 +66.973 199.974 467.756 +63.3233 202.733 474.209 +57.8468 199.583 466.842 +54.1248 202.433 473.506 +48.8334 199.363 466.326 +44.9724 202.068 472.654 +39.8965 199.276 466.122 +35.9176 201.915 472.295 +30.9943 199.205 465.957 +26.9164 201.895 472.248 +22.1063 199.034 465.557 +17.886 201.342 470.954 +13.256 198.998 465.472 +8.92865 201.08 470.342 +4.41388 198.823 465.063 +2.95319e-14 201.111 470.414 +-4.40341 198.351 463.96 +-8.91818 200.844 469.79 +-13.201 198.173 463.542 +-17.8476 200.909 469.943 +-22.0103 198.17 463.536 +-26.7646 200.756 469.585 +-30.8417 198.224 463.663 +-35.7362 200.895 469.91 +-39.6375 197.983 463.097 +-44.6499 200.62 469.265 +-48.5171 198.072 463.306 +-53.6336 200.595 469.208 +-57.3035 197.709 462.456 +-62.5312 200.197 468.276 +-66.0724 197.285 461.466 +-71.535 200.088 468.021 +-74.9985 197.269 461.428 +-80.5481 199.916 467.619 +-83.8442 196.957 460.697 +-89.4983 199.526 466.708 +-92.7761 196.777 460.276 +-98.591 199.384 466.374 +-101.877 196.842 460.43 +-107.677 199.138 465.801 +-110.904 196.65 459.981 +-116.907 199.059 465.614 +-119.968 196.433 459.473 +-126.404 199.294 466.166 +-129.346 196.608 459.881 +-137.407 201.586 471.526 +-111.545 158.113 369.838 +-113.48 155.57 363.891 +-116.844 155.062 362.702 +-120.194 154.543 361.488 +-124.612 155.361 363.403 +-130.189 157.508 368.423 +-1039.59 1221.36 2856.86 +-1066.66 1217.75 2848.41 +-1093.65 1214.05 2839.75 +-1120.56 1210.24 2830.86 +-1147.38 1206.36 2821.77 +-193.555 198.212 463.634 +-456.441 455.502 1065.46 +-160.294 155.96 364.802 +-164.133 155.767 364.352 +-166.998 154.655 361.751 +-171.661 155.194 363.011 +-143.456 126.66 296.268 +-142.737 123.123 287.994 +-143.986 121.381 283.921 +-147.967 121.947 285.245 +-434.689 350.349 819.495 +-436.158 343.884 804.373 +-436.739 336.946 788.144 +-438.984 331.495 775.393 +-440.223 325.464 761.287 +-442.612 320.453 749.564 +-444.037 314.899 736.575 +-446.185 310.011 725.141 +-448.25 305.201 713.889 +-450.491 300.637 703.213 +-452.461 296.013 692.399 +-455.357 292.104 683.255 +-457.055 287.53 672.557 +-459.875 283.764 663.746 +-462.072 279.702 654.247 +-464.4 275.812 645.147 +-466.814 272.058 636.365 +-470.117 268.891 628.958 +-472.111 265.046 619.964 +-474.725 261.624 611.96 +-477.399 258.3 604.186 +-480.319 255.167 596.857 +-482.234 251.564 588.428 +-485.852 248.902 582.201 +-487.111 245.088 573.281 +-490.604 242.454 567.12 +-492.695 239.174 559.447 +-495.251 236.17 552.421 +-497.003 232.836 544.623 +-501.893 231.003 540.334 +-487.517 220.461 515.676 +-490.67 218.015 509.954 +-496.027 216.557 506.543 +-497.842 213.572 499.562 +-134.763 56.809 132.881 +-135.124 55.9741 130.928 +-514.256 209.337 489.656 +-511.243 204.509 478.363 +-525.805 206.695 483.475 +-518.89 200.447 468.861 +-521.737 198.059 463.275 +-524.736 195.747 457.868 +-141.151 51.7423 121.029 +-142.147 51.203 119.768 +-142.758 50.5292 118.192 +-141.927 49.3601 115.457 +-141.734 48.4332 113.289 +-142.652 47.8939 112.028 +-145.778 48.0849 112.474 +-153.167 49.6337 116.097 +-156.595 49.8484 116.599 +-156.6 48.9666 114.537 +-157.917 48.5004 113.446 +-160.178 48.3157 113.014 +-161.804 47.93 112.112 +-581.43 169.126 395.599 +-565.988 161.649 378.11 +-574.44 161.071 376.758 +-576.847 158.779 371.396 +-581.091 156.994 367.222 +-584.057 154.863 362.236 +-588.223 153.048 357.993 +-382.685 97.6931 228.512 +-594.928 148.99 348.499 +-381.537 93.7196 219.218 +-602.731 145.193 339.619 +-605.417 142.999 334.486 +-382.305 88.5244 207.066 +-380.965 86.4626 202.243 +-381.477 84.8426 198.454 +-379.847 82.7686 193.602 +-380.967 81.3122 190.196 +-380.992 79.6333 186.269 +-380.794 77.924 182.271 +-380.905 76.2935 178.457 +-381.242 74.7207 174.778 +-381.268 73.0999 170.987 +-380.981 71.4339 167.09 +-381.012 69.8419 163.366 +-381.365 68.3202 159.806 +-379.852 66.4817 155.506 +-380.947 65.1133 152.305 +-380.169 63.4355 148.381 +-381.193 62.0687 145.184 +-381.351 60.5675 141.672 +-114.534 17.7353 41.4842 +-112.963 17.0458 39.8716 +-111.277 16.3548 38.2552 +-109.85 15.717 36.7634 +-109.252 15.2084 35.5736 +-108.546 14.6922 34.3663 +-108.773 14.3068 33.4648 +-108.991 13.921 32.5624 +-109.201 13.5348 31.659 +-108.923 13.0907 30.6202 +-108.922 12.6831 29.6667 +-109.584 12.3523 28.893 +-110.143 12.0074 28.0863 +-110.212 11.6088 27.1539 +-110.756 11.2598 26.3376 +-110.808 10.8604 25.4034 +-111.823 10.5533 24.685 +-113.319 10.2842 24.0557 +-114.812 10.0057 23.4042 +-115.813 9.67685 22.6349 +-120.041 9.60055 22.4565 +-158.238 12.0912 28.2822 +-159.484 11.6195 27.179 +-161.508 11.1949 26.1857 +-164.611 10.8285 25.3288 +-851.091 52.99 123.948 +-860.642 50.5622 118.269 +-870.248 48.0782 112.459 +-381.607 19.7492 46.195 +-380.542 18.3675 42.9631 +-902.759 40.4328 94.5756 +-404.77 16.7237 39.1182 +-403.534 15.2743 35.7278 +-404.057 13.8963 32.5045 +-404.051 12.5004 29.2395 +-404.712 11.1248 26.0219 +-403.346 9.69769 22.6837 +-405.444 8.35277 19.5378 +-405.114 6.95306 16.2638 +-404.753 5.55621 12.9964 +-148.649 1.53015 3.57914 +-145.278 0.996838 2.33168 +-147.094 0.504612 1.18033 +119.9 5.32907e-15 2.84217e-14 +119.795 0.419617 0.957531 +119.882 0.839901 1.91658 +119.759 1.25872 2.8723 +120.327 1.68655 3.84857 +120.485 2.11145 4.81816 +120.235 2.52919 5.77139 +120.475 2.95758 6.74895 +120.107 3.37105 7.69245 +120.029 3.79162 8.65215 +120.44 4.22937 9.65106 +120.443 4.65491 10.6221 +120.138 5.06821 11.5652 +120.918 5.52971 12.6183 +121.388 5.98239 13.6513 +121.155 6.40211 14.6091 +120.813 6.81505 15.5514 +120.561 7.23204 16.5029 +120.3 7.64775 17.4515 +120.721 8.10857 18.5031 +120.54 8.5311 19.4673 +120.154 8.93838 20.3966 +120.838 9.42783 21.5135 +120.531 9.84273 22.4603 +121.095 10.3313 23.5751 +120.865 10.755 24.542 +120.53 11.1689 25.4865 +121.255 11.6844 26.6628 +120.22 12.031 27.4536 +120.728 12.532 28.597 +121.224 13.0375 29.7505 +120.936 13.4616 30.7182 +121.311 13.9621 31.8604 +121.195 14.4093 32.8808 +121.833 14.9506 34.1161 +121.408 15.3647 35.0609 +121.069 15.7894 36.0301 +121.48 16.3147 37.2288 +121.783 16.8311 38.4071 +121.506 17.2704 39.4096 +120.844 17.6542 40.2853 +121.299 18.2033 41.5384 +121.459 18.7138 42.7032 +122.071 19.3003 44.0416 +118.772 19.261 43.952 +115.67 19.2309 43.8832 +112.762 19.2118 43.8398 +109.314 19.0779 43.5341 +106.702 19.0682 43.5121 +104.009 19.0251 43.4137 +100.6 18.8289 42.966 +98.6526 18.8868 43.0982 +96.3507 18.8622 43.0418 +97.3689 19.4855 44.4641 +97.1197 19.8622 45.3239 +97.4825 20.3684 46.4791 +97.8306 20.8787 47.6434 +97.0214 21.144 48.2487 +96.8204 21.5414 49.1555 +97.0447 22.0378 50.2883 +96.6484 22.3969 51.1079 +96.8471 22.8976 52.2503 +96.3456 23.2359 53.0224 +96.4336 23.7193 54.1255 +95.999 24.0775 54.9427 +96.1466 24.5853 56.1016 +96.3632 25.1179 57.3169 +96.564 25.6538 58.5399 +95.9196 25.9686 59.2582 +95.8459 26.44 60.3339 +96.0046 26.982 61.5705 +96.147 27.527 62.8142 +96.1112 28.0278 63.9571 +96.3021 28.6022 65.2677 +95.6765 28.9384 66.0349 +96.3131 29.6633 67.6892 +95.6645 29.9996 68.4565 +95.713 30.5584 69.7316 +96.3661 31.3219 71.4738 +95.6814 31.6582 72.2414 +95.679 32.2244 73.5333 +96.2674 33.0014 75.3064 +96.2255 33.5743 76.6138 +96.091 34.1229 77.8655 +96.0143 34.6999 79.1822 +95.9935 35.306 80.5653 +95.8073 35.8599 81.8292 +96.3297 36.6914 83.7267 +95.5283 37.0274 84.4934 +96.0035 37.867 86.4094 +95.813 38.4573 87.7563 +96.1648 39.2781 89.6293 +95.3071 39.6134 90.3945 +95.6813 40.4698 92.3487 +95.4798 41.0972 93.7802 +95.7987 41.9625 95.755 +95.418 42.5349 97.061 +95.6161 43.3786 98.9863 +95.2598 43.9847 100.369 +95.274 44.7746 102.172 +95.3254 45.5982 104.051 +94.9029 46.2091 105.445 +94.9644 47.0701 107.41 +94.9957 47.9351 109.384 +94.8734 48.7402 111.221 +94.2971 49.3254 112.556 +94.3646 50.2631 114.696 +94.8148 51.4307 117.36 +94.6334 52.2804 119.299 +94.4223 53.1325 121.244 +94.5254 54.1845 123.644 +94.4766 55.1751 125.905 +94.1681 56.0365 127.87 +94.6572 57.4016 130.986 +94.7127 58.5391 133.581 +94.2424 59.3764 135.492 +94.5906 60.7595 138.648 +94.2065 61.7044 140.804 +94.355 63.0297 143.828 +93.9454 64.0151 146.077 +93.9 65.2802 148.964 +93.8559 66.5847 151.941 +93.8591 67.9639 155.088 +94.0957 69.5601 158.73 +93.8474 70.8438 161.659 +94.012 72.487 165.409 +94.0668 74.1013 169.093 +93.6123 75.3617 171.969 +93.5046 76.9495 175.592 +93.4209 78.6144 179.391 +93.1873 80.2119 183.037 +93.3474 82.2152 187.608 +93.2647 84.0792 191.862 +93.5465 86.3534 197.051 +93.502 88.4145 201.754 +93.1451 90.2588 205.963 +93.2021 92.5913 211.285 +93.2379 95.0056 216.795 +93.0682 97.3147 222.064 +92.0695 98.8399 225.544 +91.1142 100.479 229.284 +88.826 100.681 229.745 +87.4476 101.937 232.611 +87.354 104.79 239.121 +87.1428 107.649 245.646 +88.6481 112.85 257.514 +86.8636 114.039 260.227 +87.3631 118.38 270.133 +87.0738 121.884 278.129 +91.5559 132.511 302.379 +91.5961 137.208 313.096 +91.4388 141.915 323.837 +91.132 146.708 334.775 +90.997 152.135 347.158 +90.8577 157.962 360.455 +90.6666 164.152 374.581 +90.3584 170.627 389.357 +89.2969 176.168 402.001 +87.5432 180.769 412.5 +89.423 193.658 441.912 +88.6648 201.831 460.56 +83.4811 200.233 456.915 +79.7503 202.104 461.184 +74.3777 199.755 455.825 +70.6164 201.678 460.211 +65.5111 199.728 455.763 +61.6903 201.664 460.179 +56.5676 199.28 454.739 +52.651 201.067 458.818 +47.8079 199.286 454.754 +43.8742 201.285 459.315 +38.9863 198.83 453.714 +35.0247 201.041 458.759 +30.335 199.073 454.268 +26.2308 200.895 458.426 +21.5916 198.493 452.945 +17.4602 200.687 457.952 +12.9602 198.654 453.312 +8.71399 200.378 457.245 +4.31265 198.354 452.626 +2.83107e-14 200.408 457.315 +-4.30742 198.113 452.077 +-8.7105 200.298 457.062 +-12.9209 198.053 451.939 +-17.4009 200.005 456.395 +-21.548 198.092 452.03 +-26.0738 199.693 455.682 +-30.158 197.911 451.617 +-34.7806 199.64 455.561 +-38.7588 197.67 451.066 +-43.5779 199.926 456.213 +-47.4341 197.728 451.198 +-52.306 199.75 455.812 +-56.0243 197.366 450.371 +-60.9834 199.353 454.906 +-64.7149 197.301 450.224 +-69.8231 199.412 455.041 +-73.4169 197.175 449.936 +-78.4675 198.853 453.765 +-82.1442 197.026 449.597 +-87.2582 198.629 453.254 +-90.7351 196.5 448.397 +-96.1487 198.539 453.049 +-99.5444 196.385 448.134 +-105.037 198.345 452.607 +-108.35 196.167 447.637 +-114.05 198.284 452.466 +-117.516 196.471 448.331 +-123.162 198.272 452.44 +-126.392 196.162 447.626 +-132.697 198.775 453.587 +-111.679 161.636 368.839 +-114.031 159.618 364.234 +-117.412 159.097 363.046 +-120.75 158.526 361.743 +-125.334 159.552 364.083 +-136.925 169.146 385.977 +-1039.59 1247.08 2845.73 +-1066.66 1243.39 2837.31 +-1093.65 1239.61 2828.68 +-1120.56 1235.73 2819.83 +-1147.38 1231.76 2810.77 +-189.003 197.627 450.968 +-161.187 164.243 374.789 +-161.68 160.621 366.523 +-165.051 159.937 364.963 +-168.64 159.464 363.883 +-172.14 158.904 362.605 +-142.195 128.19 292.519 +-142.447 125.46 286.288 +-143.817 123.792 282.483 +-148.699 125.131 285.538 +-434.864 357.871 816.631 +-436.917 351.736 802.632 +-437.556 344.685 786.541 +-438.892 338.404 772.209 +-440.646 332.637 759.048 +-442.851 327.377 747.045 +-444.522 321.881 734.506 +-447.022 317.133 723.67 +-448.9 312.079 712.138 +-451.252 307.486 701.656 +-453.388 302.866 691.114 +-455.671 298.46 681.06 +-457.585 293.926 670.713 +-460.681 290.247 662.318 +-462.671 285.963 652.543 +-465.448 282.256 644.084 +-468.156 278.585 635.707 +-470.627 274.851 627.186 +-472.627 270.923 618.223 +-475.538 267.591 610.619 +-477.458 263.772 601.905 +-481.093 260.96 595.489 +-483.378 257.47 587.525 +-486.948 254.716 581.241 +-488.281 250.85 572.419 +-491.724 248.125 566.2 +-493.891 244.803 558.618 +-496.586 241.793 551.752 +-499.125 238.754 544.816 +-502.673 236.233 539.064 +-505.1 233.222 532.192 +-508.23 230.572 526.145 +-493.283 219.894 501.779 +-496.491 217.477 496.264 +-500.928 215.612 492.009 +-134.16 56.7449 129.487 +-518.701 215.593 491.965 +-516.5 210.962 481.398 +-522.34 209.656 478.418 +-519.104 204.752 467.227 +-522.456 202.508 462.105 +-526.041 200.366 457.219 +-141.298 52.8865 120.682 +-141.631 52.0913 118.868 +-143.427 51.8349 118.283 +-142.002 50.4264 115.069 +-141.659 49.4266 112.787 +-142.728 48.9285 111.651 +-146.698 49.4073 112.743 +-156.408 51.751 118.091 +-156.129 50.7463 115.799 +-157.461 50.2727 114.718 +-158.784 49.7934 113.624 +-160.733 49.5041 112.964 +-162.123 49.0356 111.895 +-580.706 172.472 393.567 +-571.571 166.681 380.351 +-575.173 164.672 375.769 +-578.158 162.49 370.789 +-582.41 160.663 366.62 +-584.803 158.326 361.286 +-588.974 156.471 357.053 +-382.602 99.7282 227.571 +-596.446 152.515 348.026 +-2778.63 696.906 1590.28 +-602.987 148.314 338.44 +-606.532 146.279 333.796 +-610.464 144.332 329.354 +-382.697 88.6846 202.371 +-380.955 86.5108 197.41 +-381.597 84.9004 193.736 +-380.44 82.9096 189.193 +-379.138 80.9143 184.64 +-381.858 79.7873 182.068 +-380.816 77.8819 177.72 +-380.258 76.097 173.647 +-381.268 74.6392 170.32 +-380.169 72.7824 166.083 +-380.287 71.1769 162.42 +-381.82 69.8419 159.373 +-381.771 68.2244 155.682 +-380.121 66.3403 151.383 +-380.905 64.8969 148.089 +-380.638 63.2838 144.408 +-380.794 61.7525 140.914 +-113.325 17.9175 40.8861 +-112.216 17.2897 39.4536 +-110.527 16.5868 37.8496 +-109.944 16.0617 36.6515 +-108.498 15.4215 35.1904 +-108.451 14.9886 34.2026 +-108.583 14.5827 33.2764 +-108.801 14.1893 32.3789 +-108.914 13.7836 31.453 +-109.401 13.425 30.6348 +-109.305 12.9957 29.6551 +-109.007 12.546 28.6289 +-109.758 12.2174 27.879 +-110.116 11.8428 27.0244 +-110.272 11.4466 26.1203 +-111.681 11.1765 25.5038 +-112.698 10.8598 24.7812 +-113.222 10.4918 23.9413 +-115.105 10.2425 23.3724 +-117.378 10.0142 22.8515 +-120.041 9.80271 22.369 +-158.925 12.3994 28.2944 +-159.779 11.8861 27.1232 +-161.508 11.4306 26.0836 +-163.921 11.0102 25.1243 +-3236.16 205.73 469.458 +-861.136 51.6566 117.876 +-871.238 49.1464 112.148 +-381.706 20.1703 46.027 +-379.748 18.7152 42.7064 +-405.775 18.5566 42.3446 +-404.074 17.0465 38.8987 +-404.031 15.6152 35.6325 +-404.355 14.1994 32.4018 +-404.051 12.7636 29.1255 +-403.315 11.3199 25.831 +-403.546 9.90679 22.6065 +-404.944 8.51814 19.4377 +-403.316 7.06792 16.1284 +-402.555 5.64238 12.8754 +-146.75 1.54241 3.51965 +-145.578 1.01993 2.3274 +-146.094 0.511738 1.16774 +119.9 5.32907e-15 2.84217e-14 +119.895 0.428595 0.9545 +119.882 0.857157 1.90893 +120.559 1.29316 2.87993 +120.327 1.7212 3.8332 +120.485 2.15483 4.79891 +120.335 2.58329 5.75311 +120.475 3.01835 6.722 +120.107 3.44031 7.66173 +120.926 3.89844 8.682 +120.54 4.31983 9.62045 +120.443 4.75055 10.5797 +120.834 5.20232 11.5858 +120.719 5.63407 12.5473 +120.495 6.06037 13.4967 +121.055 6.52828 14.5388 +120.912 6.96076 15.5019 +120.561 7.38063 16.437 +121.189 7.86255 17.5103 +120.721 8.27517 18.4292 +120.54 8.70638 19.3895 +120.154 9.12203 20.3152 +120.838 9.62152 21.4276 +120.433 10.0368 22.3523 +121.192 10.5521 23.4999 +120.963 10.9849 24.4638 +120.53 11.3984 25.3847 +120.379 11.8384 26.3646 +120.996 12.3575 27.5206 +121.503 12.8715 28.6655 +121.224 13.3054 29.6316 +120.839 13.7272 30.5712 +121.407 14.2603 31.7583 +120.811 14.6588 32.6458 +120.877 15.138 33.7131 +121.408 15.6804 34.9209 +120.974 16.1011 35.858 +121.48 16.6499 37.0801 +121.594 17.1502 38.1943 +121.601 17.6389 39.2827 +121.69 18.143 40.4052 +121.299 18.5773 41.3724 +121.365 19.0835 42.4999 +121.419 19.5917 43.6316 +119.05 19.7028 43.879 +115.67 19.626 43.7079 +112.578 19.5745 43.5933 +109.314 19.4699 43.3602 +106.519 19.4267 43.2641 +104.009 19.416 43.2403 +101.235 19.337 43.0643 +98.7428 19.2925 42.9652 +96.8001 19.3395 43.0699 +96.4739 19.703 43.8795 +96.496 20.1401 44.853 +97.4825 20.7869 46.2934 +97.654 21.2692 47.3675 +97.2851 21.637 48.1866 +96.558 21.9244 48.8266 +96.3484 22.3292 49.7281 +96.4752 22.8161 50.8125 +96.761 23.3472 51.9954 +96.3456 23.7133 52.8106 +96.4336 24.2066 53.9093 +96.7623 24.7675 55.1583 +96.1466 25.0905 55.8776 +96.2794 25.6117 57.0383 +96.4806 26.1583 58.2557 +95.9196 26.5022 59.0215 +96.0107 27.0297 60.1963 +96.9057 27.7948 61.9002 +96.147 28.0925 62.5633 +96.3539 28.6759 63.8625 +96.2217 29.1654 64.9527 +95.6765 29.5329 65.7711 +96.3131 30.2728 67.4188 +95.7433 30.6412 68.2392 +95.713 31.1862 69.4531 +95.6667 31.7334 70.6717 +96.3759 32.5432 72.4751 +95.679 32.8864 73.2396 +96.2674 33.6794 75.0056 +95.5462 34.0223 75.7692 +96.091 34.824 77.5545 +96.0143 35.4128 78.8659 +95.9198 36.0037 80.1819 +95.8073 36.5967 81.5024 +95.6769 37.1915 82.8272 +95.6003 37.8166 84.2194 +95.9322 38.6163 86.0003 +95.813 39.2474 87.4058 +95.604 39.8514 88.7508 +95.3071 40.4273 90.0334 +95.6813 41.3013 91.9798 +96.0254 42.1812 93.9393 +95.7311 42.7944 95.305 +95.418 43.4088 96.6734 +94.9535 43.963 97.9076 +95.2598 44.8884 99.9684 +94.6246 45.3828 101.07 +95.2611 46.5039 103.566 +94.9029 47.1585 105.024 +94.9644 48.0372 106.981 +94.9957 48.9199 108.947 +94.8734 49.7416 110.777 +94.9668 50.6965 112.903 +94.7859 51.5247 114.748 +94.1604 52.1252 116.085 +94.751 53.4209 118.971 +94.4223 54.2241 120.76 +94.5828 55.3314 123.225 +94.3633 56.2411 125.252 +94.1681 57.1878 127.36 +94.602 58.5469 130.387 +94.3859 59.5358 132.589 +94.2424 60.5963 134.951 +94.1667 61.7297 137.475 +94.2065 62.9721 140.242 +93.8399 63.9736 142.472 +93.8946 65.2947 145.414 +93.9 66.6215 148.369 +93.9052 67.9884 151.413 +93.8107 69.3246 154.389 +93.6185 70.6292 157.294 +93.8943 72.3357 161.095 +94.012 73.9763 164.748 +94.0214 75.5869 168.335 +93.6569 76.9469 171.364 +93.5484 78.5674 174.973 +93.3779 80.1928 178.593 +93.5254 82.1569 182.967 +93.223 83.7925 186.61 +93.2647 85.8067 191.095 +93.2275 87.8274 195.595 +93.3847 90.118 200.697 +93.5278 92.4918 205.983 +93.2396 94.5317 210.526 +93.3112 97.0337 216.098 +91.8855 98.052 218.366 +88.8826 97.379 216.867 +89.1304 100.311 223.396 +88.9261 102.865 229.085 +87.3499 103.915 231.423 +87.2905 106.865 237.992 +87.2355 109.977 244.925 +88.618 115.129 256.398 +86.7467 116.225 258.839 +87.3915 120.851 269.141 +87.129 124.467 277.193 +91.5559 135.234 301.171 +91.4408 139.79 311.318 +91.3887 144.751 322.367 +91.0836 149.643 333.261 +90.7869 154.902 344.973 +90.7678 161.047 358.66 +90.515 167.245 372.461 +90.2753 173.973 387.445 +88.7387 178.664 397.892 +86.2075 181.668 404.584 +89.5323 197.879 440.685 +87.1888 202.548 451.084 +82.4413 201.802 449.422 +78.2172 202.291 450.511 +73.4169 201.226 448.139 +69.336 202.089 450.062 +64.6235 201.07 447.793 +60.4838 201.782 449.377 +55.8431 200.769 447.122 +51.7834 201.817 449.455 +47.1369 200.526 446.581 +43.0201 201.422 448.575 +38.5626 200.71 446.991 +34.4248 201.658 449.101 +29.9077 200.301 446.079 +25.7179 201.014 447.668 +21.3168 199.993 445.394 +17.1287 200.922 447.461 +12.7744 199.829 445.028 +8.56215 200.931 447.483 +4.25593 199.766 444.889 +2.79776e-14 200.716 447.004 +-4.24895 199.439 444.159 +-8.54295 200.481 446.48 +-12.7456 199.378 444.024 +-17.0973 200.553 446.641 +-21.2165 199.052 443.298 +-25.6185 200.237 445.936 +-29.749 199.238 443.712 +-34.1458 200.023 445.461 +-38.2567 199.118 443.444 +-42.7412 200.116 445.667 +-46.744 198.855 442.858 +-51.2189 199.617 444.556 +-55.3224 198.897 442.953 +-59.8744 199.749 444.85 +-63.8404 198.634 442.366 +-68.501 199.655 444.642 +-72.4118 198.471 442.004 +-77.0596 199.297 443.843 +-81.0054 198.287 441.594 +-85.6259 198.918 442.999 +-89.6963 198.241 441.493 +-94.5268 199.2 443.627 +-98.3482 198.012 440.981 +-103.374 199.215 443.661 +-107.159 197.998 440.951 +-112.003 198.725 442.57 +-115.789 197.56 439.975 +-120.888 198.61 442.313 +-124.965 197.932 440.803 +-129.824 198.467 441.994 +-111.786 165.115 367.718 +-114.307 163.291 363.656 +-117.639 162.68 362.295 +-121.217 162.41 361.694 +-125.665 163.259 363.586 +-1012.43 1276.37 2842.54 +-1039.59 1272.7 2834.36 +-1066.66 1268.94 2825.98 +-1093.65 1265.08 2817.39 +-1120.56 1261.12 2808.57 +-1147.38 1257.07 2799.54 +-186.208 198.704 442.523 +-159.538 165.903 369.473 +-161.83 164.073 365.397 +-164.822 162.996 362.999 +-168.796 162.891 362.765 +-172.818 162.807 362.579 +-142.114 130.75 291.185 +-142.074 127.702 284.398 +-144.324 126.781 282.346 +-148.957 127.924 284.892 +-435.259 365.555 814.107 +-436.56 358.67 798.773 +-437.965 352.095 784.131 +-439.446 345.793 770.096 +-440.975 339.724 756.58 +-443.471 334.571 745.104 +-445.152 328.96 732.609 +-447.268 323.827 721.177 +-449.2 318.704 709.767 +-451.658 314.086 699.483 +-453.852 309.405 689.058 +-453.581 303.195 675.229 +-458.221 300.381 668.962 +-461.164 296.521 660.365 +-462.834 291.941 650.165 +-465.448 288.055 641.512 +-468.324 284.411 633.395 +-470.967 280.7 625.132 +-473.143 276.792 616.427 +-476.118 273.422 608.923 +-479.104 270.119 601.568 +-481.45 266.519 593.551 +-483.919 263.054 585.834 +-486.948 259.949 578.919 +-489.697 256.747 571.786 +-492.285 253.512 564.582 +-494.268 250.023 556.812 +-497.413 247.172 550.463 +-500.282 244.224 543.897 +-503.257 241.367 537.536 +-505.559 238.229 530.548 +-508.296 235.34 524.112 +-508.807 231.474 515.503 +-504.463 225.509 502.219 +-499.223 219.293 488.376 +-502.155 216.758 482.729 +-135.042 57.282 127.57 +-134.715 56.1543 125.058 +-519.158 212.66 473.604 +-519.817 209.246 466 +-523.104 206.925 460.831 +-139.852 54.3634 121.07 +-141.736 54.1406 120.574 +-142.368 53.4381 119.009 +-143.501 52.9273 117.871 +-141.852 51.408 114.488 +-142.338 50.6842 112.876 +-143.108 50.0669 111.501 +-148.076 50.8964 113.348 +-156.1 52.7102 117.388 +-156.362 51.8663 115.509 +-156.991 51.1524 113.919 +-158.548 50.7407 113.002 +-160.971 50.5961 112.68 +-161.804 49.9448 111.229 +-574.758 174.213 387.98 +-575.292 171.213 381.298 +-575.335 168.103 374.373 +-578.567 165.946 369.57 +-582.41 163.964 365.156 +-585.881 161.877 360.506 +-589.724 159.889 356.08 +-382.853 101.844 226.812 +-596.446 155.649 346.636 +-599.316 153.402 341.634 +-603.755 151.554 337.517 +-607.303 149.474 332.885 +-610.981 147.422 328.316 +-614.878 145.417 323.85 +-381.477 88.409 196.891 +-381.684 86.6648 193.006 +-381.495 84.8477 188.96 +-381.168 83.0192 184.887 +-380.528 81.1427 180.708 +-380.103 79.333 176.678 +-378.915 77.3864 172.343 +-381.718 76.2624 169.84 +-381.613 74.56 166.048 +-381.465 72.8641 162.272 +-380.182 70.9713 158.056 +-379.944 69.293 154.319 +-381.497 67.9486 151.325 +-380.721 66.1979 147.426 +-379.437 64.38 143.377 +-114.693 18.9815 42.2727 +-114.069 18.4057 40.9904 +-111.47 17.5275 39.0345 +-110.527 16.9276 37.6984 +-109.944 16.3917 36.5051 +-109.346 15.8613 35.3239 +-109.207 15.4032 34.3036 +-108.678 14.8952 33.1724 +-108.991 14.5062 32.3059 +-108.724 14.0422 31.2725 +-108.827 13.629 30.3524 +-109.977 13.3442 29.7181 +-109.199 12.8264 28.5649 +-109.758 12.4684 27.7676 +-110.695 12.1498 27.0581 +-111.143 11.7741 26.2215 +-111.487 11.3863 25.3577 +-112.6 11.0734 24.661 +-113.806 10.7626 23.9688 +-114.812 10.4263 23.2199 +-117.573 10.2369 22.7981 +-121.315 10.1103 22.5161 +-160.103 12.7479 28.3902 +-159.976 12.1453 27.0481 +-162.395 11.7295 26.122 +-162.934 11.1688 24.8734 +-853.264 55.3584 123.286 +-862.125 52.7782 117.539 +-380.263 21.8914 48.7531 +-380.021 20.4938 45.6407 +-381.138 19.1696 42.6915 +-404.582 18.8822 42.0515 +-405.268 17.4481 38.8577 +-403.733 15.9242 35.4639 +-403.459 14.459 32.2008 +-405.347 13.0677 29.1023 +-404.213 11.5782 25.7851 +-403.845 10.1178 22.5329 +-404.645 8.68672 19.3457 +-405.114 7.24533 16.1357 +-404.054 5.77977 12.8718 +-146.95 1.57624 3.51036 +-143.578 1.02659 2.28626 +-147.094 0.525824 1.17103 +119.9 5.32907e-15 2.84217e-14 +119.795 0.436825 0.949805 +119.882 0.874344 1.90112 +119.759 1.31034 2.84912 +120.327 1.75572 3.81752 +120.485 2.19804 4.77928 +120.335 2.63509 5.72957 +120.475 3.07887 6.69449 +120.107 3.50929 7.63038 +120.029 3.9471 8.58233 +120.54 4.40644 9.58108 +120.443 4.8458 10.5364 +121.033 5.31537 11.5574 +120.719 5.74703 12.496 +120.594 6.18698 13.4526 +121.055 6.65918 14.4793 +120.912 7.10033 15.4385 +120.561 7.52861 16.3697 +120.202 7.95485 17.2965 +120.721 8.44109 18.3538 +120.54 8.88095 19.3102 +120.055 9.29733 20.2155 +120.74 9.80646 21.3225 +120.433 10.238 22.2609 +120.312 10.6854 23.2337 +120.865 11.1961 24.344 +120.432 11.6176 25.2605 +121.255 12.1635 26.4476 +121.093 12.6153 27.43 +120.631 13.0354 28.3434 +121.127 13.5613 29.4869 +120.839 14.0025 30.4461 +121.503 14.5577 31.6534 +120.811 14.9527 32.5123 +121.355 15.5026 33.708 +121.217 15.9697 34.7234 +120.974 16.424 35.7112 +121.48 16.9838 36.9284 +121.877 17.5349 38.1267 +121.506 17.9786 39.0916 +121.596 18.4924 40.2088 +121.205 18.9351 41.1713 +122.112 19.586 42.5865 +121.419 19.9845 43.4531 +119.792 20.2231 43.9717 +116.594 20.1793 43.8767 +112.578 19.967 43.415 +110.047 19.9935 43.4727 +106.702 19.8502 43.1609 +103.918 19.788 43.0258 +102.05 19.8836 43.2336 +99.4649 19.8232 43.1023 +96.8001 19.7272 42.8937 +96.116 20.0235 43.5378 +97.2979 20.7147 45.0407 +97.4825 21.2037 46.104 +97.654 21.6957 47.1737 +97.5487 22.1307 48.1195 +96.9079 22.445 48.8029 +96.3484 22.7769 49.5247 +96.5618 23.2945 50.6501 +96.8471 23.8366 51.8287 +96.3456 24.1888 52.5946 +96.5189 24.7138 53.7361 +96.6775 25.242 54.8845 +96.1466 25.5935 55.6489 +96.2794 26.1252 56.8049 +96.3138 26.6367 57.9171 +95.9196 27.0336 58.7801 +96.7524 27.7846 60.4131 +96.2504 28.1603 61.23 +96.3099 28.7043 62.4129 +96.1112 29.1772 63.441 +96.3021 29.7751 64.741 +96.3154 30.3263 65.9395 +95.6784 30.6763 66.7005 +96.2949 31.4356 68.3515 +95.6347 31.7855 69.1124 +96.3661 32.6063 70.8971 +95.6814 32.9565 71.6584 +95.679 33.5458 72.9399 +96.2674 34.3547 74.6987 +95.5462 34.7045 75.4591 +96.1659 35.5499 77.2974 +96.0143 36.1229 78.5432 +96.5833 36.9797 80.4062 +95.8073 37.3304 81.1689 +95.6769 37.9372 82.4883 +95.5283 38.5459 83.8116 +96.0035 39.4199 85.7121 +95.7423 40.0048 86.9839 +95.604 40.6504 88.3877 +95.3071 41.2379 89.6651 +95.6813 42.1294 91.6035 +95.4116 42.7516 92.9563 +95.7987 43.6833 94.9823 +95.418 44.2792 96.2778 +94.9535 44.8445 97.507 +95.1286 45.7253 99.4222 +95.339 46.6425 101.416 +95.1968 47.4042 103.073 +94.9029 48.1041 104.594 +94.9015 48.9682 106.473 +94.9335 49.8682 108.43 +94.3193 50.4427 109.679 +94.845 51.6465 112.297 +94.3646 52.3242 113.77 +94.8742 53.5732 116.486 +94.8098 54.5254 118.557 +94.6546 55.4476 120.562 +94.6401 56.4751 122.796 +94.4199 57.4035 124.814 +94.1681 58.3344 126.839 +94.6572 59.7555 129.929 +94.4949 60.7993 132.198 +94.2961 61.8464 134.475 +94.1667 62.9674 136.912 +94.2065 64.2347 139.668 +94.3035 65.5785 142.59 +93.8946 66.6039 144.819 +93.85 67.9209 147.683 +93.8559 69.3152 150.715 +93.8107 70.7146 153.757 +93.6185 72.0454 156.651 +93.8474 73.7489 160.355 +94.012 75.4596 164.074 +93.6582 76.805 167 +93.6569 78.4897 170.663 +93.5922 80.1803 174.339 +93.7653 82.14 178.6 +93.5254 83.8042 182.218 +93.2645 85.5107 185.929 +93.3054 87.5652 190.396 +93.2275 89.5883 194.795 +93.4629 92.0018 200.043 +93.2217 94.0375 204.469 +93.2396 96.4271 209.665 +93.018 98.6684 214.538 +91.2046 99.2768 215.861 +88.1822 98.5489 214.278 +88.7542 101.89 221.543 +88.9595 104.967 228.233 +87.3499 105.999 230.476 +87.1953 108.888 236.76 +87.1428 112.063 243.664 +88.4977 117.279 255.003 +87.0975 119.035 258.822 +87.2211 123.034 267.518 +87.2117 127.083 276.32 +91.5559 137.945 299.939 +91.4667 142.633 310.131 +91.4388 147.734 321.224 +91.0352 152.562 331.721 +90.9503 158.292 344.18 +90.7678 164.277 357.192 +90.5367 170.639 371.026 +90.1505 177.216 385.327 +88.3001 181.346 394.306 +86.6464 186.254 404.98 +89.4959 201.764 438.703 +86.4421 204.84 445.391 +81.6821 203.952 443.461 +77.6228 204.779 445.258 +72.8553 203.69 442.891 +68.7515 204.403 444.441 +64.1536 203.611 442.718 +59.9841 204.127 443.841 +55.3677 203.051 441.501 +51.313 203.993 443.55 +46.8398 203.258 441.95 +42.6453 203.67 442.848 +38.1547 202.569 440.452 +34.1318 203.95 443.457 +29.6879 202.816 440.99 +25.5033 203.334 442.116 +21.151 202.417 440.122 +16.9961 203.363 442.18 +12.688 202.457 440.209 +8.47489 202.871 441.111 +4.2219 202.143 439.526 +2.54241e-14 202.693 440.724 +-4.2219 202.143 439.526 +-8.47314 202.83 441.02 +-12.6644 202.081 439.392 +-16.9437 202.737 440.818 +-21.1292 202.208 439.669 +-25.4091 202.583 440.483 +-29.5353 201.773 438.723 +-33.9016 202.575 440.466 +-38.0056 201.777 438.731 +-42.3926 202.463 440.223 +-46.4564 201.594 438.333 +-50.8008 201.957 439.123 +-54.9149 201.391 437.891 +-59.3382 201.929 439.062 +-63.4096 201.249 437.584 +-67.9304 201.962 439.134 +-71.9388 201.128 437.32 +-76.4026 201.56 438.259 +-80.4277 200.82 436.651 +-85.1571 201.795 438.77 +-89.0585 200.779 436.56 +-93.6681 201.348 437.799 +-97.5109 200.262 435.437 +-102.417 201.33 437.758 +-106.25 200.255 435.422 +-111.171 201.203 437.484 +-115.019 200.181 435.261 +-120.066 201.213 437.506 +-123.813 200.04 434.954 +-128.426 200.267 435.447 +-112.08 168.868 367.176 +-114.582 166.967 363.041 +-117.895 166.302 361.597 +-121.451 165.986 360.909 +-125.875 166.812 362.705 +-155.25 199.648 434.101 +-1039.59 1298.22 2822.77 +-1066.66 1294.38 2814.42 +-1093.65 1290.44 2805.86 +-1120.56 1286.4 2797.07 +-1147.38 1282.27 2788.09 +-184.918 201.285 437.66 +-159.538 169.229 367.961 +-162.055 167.595 364.408 +-165.74 167.191 363.528 +-168.288 165.657 360.193 +-172.778 166.033 361.012 +-142.317 133.562 290.409 +-141.949 130.148 282.986 +-144.493 129.474 281.521 +-148.914 130.451 283.644 +-435.478 373.072 811.184 +-436.783 366.048 795.911 +-438.237 359.378 781.409 +-439.308 352.615 766.703 +-441.209 346.72 753.886 +-443.567 341.352 742.215 +-445.395 335.739 730.009 +-447.268 330.32 718.226 +-449.45 325.275 707.257 +-451.861 320.527 696.934 +-453.697 315.501 686.005 +-452.484 308.526 670.839 +-457.108 305.66 664.607 +-461.164 302.466 657.663 +-463.324 298.11 648.191 +-465.614 293.935 639.114 +-468.883 290.46 631.557 +-470.797 286.225 622.35 +-473.717 282.684 614.649 +-476.351 279.041 606.728 +-478.516 275.197 598.371 +-481.806 272.065 591.56 +-484.461 268.629 584.09 +-486.705 265.029 576.262 +-489.451 261.763 569.16 +-492.036 258.464 561.987 +-494.835 255.329 555.17 +-497.413 252.128 548.211 +-500.474 249.216 541.88 +-503.062 246.111 535.128 +-506.215 243.322 529.063 +-509.224 240.496 522.919 +-511.885 237.544 516.5 +-513.584 234.189 509.206 +-499.973 224.026 487.108 +-501.535 220.831 480.161 +-133.791 57.8894 125.871 +-134.645 57.2501 124.481 +-517.036 216.038 469.738 +-519.888 213.471 464.157 +-523.967 211.422 459.702 +-141.013 55.9135 121.575 +-142.102 55.3686 120.39 +-142.295 54.4815 118.461 +-143.427 53.9605 117.328 +-141.852 52.4387 114.019 +-142.489 51.7552 112.533 +-144.021 51.3962 111.753 +-148.766 52.1584 113.41 +-156.1 53.767 116.908 +-156.595 52.9853 115.208 +-157.461 52.3343 113.792 +-159.021 51.9123 112.875 +-160.337 51.4071 111.776 +-565.354 178.01 387.053 +-572.668 177.06 384.988 +-578.771 175.702 382.035 +-576.719 171.886 373.738 +-578.895 169.369 368.265 +-583.152 167.465 364.125 +-586.295 165.239 359.285 +-590.475 163.303 355.075 +-2747.9 745.637 1621.27 +-596.784 158.859 345.413 +-600.164 156.699 340.717 +-604.096 154.68 336.326 +-607.817 152.6 331.804 +-611.326 150.463 327.157 +-614.878 148.333 322.525 +-382.173 90.3463 196.443 +-380.897 88.2203 191.821 +-380.528 86.3296 187.71 +-380.727 84.5856 183.917 +-379.995 82.6539 179.717 +-381.707 81.2654 176.698 +-377.304 78.6025 170.908 +-382.437 77.9382 169.464 +-380.71 75.8753 164.978 +-380.287 74.0957 161.109 +-379.727 72.3074 157.221 +-381.223 70.9202 154.204 +-380.672 69.1611 150.379 +-382.286 67.8031 147.427 +-380.638 65.8789 143.243 +-114.414 19.3152 41.9978 +-113.511 18.6829 40.6228 +-111.656 17.9089 38.9399 +-110.621 17.2816 37.576 +-109.944 16.7204 36.3558 +-108.498 16.0539 34.9065 +-109.302 15.7256 34.1928 +-108.678 15.1939 33.0367 +-108.991 14.797 32.1737 +-108.628 14.3111 31.1172 +-109.019 13.9267 30.2814 +-109.018 13.4931 29.3384 +-109.488 13.1181 28.5231 +-109.758 12.7184 27.654 +-110.019 12.3177 26.7828 +-110.95 11.9893 26.0687 +-111.196 11.5842 25.188 +-113.476 11.3832 24.7509 +-113.709 10.969 23.8503 +-114.715 10.6263 23.1052 +-117.867 10.4683 22.7615 +-120.433 10.238 22.2609 +-159.318 12.9397 28.1354 +-161.352 12.4954 27.1691 +-160.622 11.834 25.7311 +-163.625 11.441 24.8766 +-853.264 56.4684 122.781 +-862.521 53.8615 117.113 +-380.56 22.3478 48.5915 +-381.706 20.9975 45.6556 +-379.947 19.4928 42.384 +-405.775 19.3176 42.0029 +-405.268 17.798 38.6987 +-403.733 16.2435 35.3188 +-404.355 14.7817 32.1403 +-404.051 13.2871 28.8905 +-404.213 11.8103 25.6796 +-403.546 10.313 22.424 +-403.746 8.84121 19.2238 +-404.215 7.37418 16.0339 +-404.354 5.90001 12.8286 +-146.75 1.60566 3.49125 +-145.778 1.06322 2.31179 +-146.394 0.533814 1.16069 +119.8 1.77636e-15 -1.13687e-13 +119.895 0.445747 0.946612 +119.882 0.891459 1.89315 +119.759 1.33599 2.83719 +120.327 1.79008 3.80152 +120.385 2.23921 4.75531 +120.235 2.68444 5.70083 +119.577 3.11573 6.61674 +120.107 3.57799 7.59841 +120.029 4.02437 8.54637 +120.54 4.4927 9.54094 +120.443 4.94066 10.4922 +121.033 5.41941 11.509 +120.719 5.85953 12.4436 +120.495 6.30289 13.3852 +121.055 6.78953 14.4186 +120.912 7.23932 15.3738 +120.561 7.67599 16.3012 +120.202 8.11057 17.2241 +120.623 8.5993 18.2619 +120.54 9.05479 19.2293 +120.94 9.54919 20.2792 +120.74 9.99842 21.2332 +120.433 10.4384 22.1676 +120.312 10.8946 23.1364 +120.865 11.4152 24.242 +120.53 11.8545 25.175 +121.157 12.3917 26.3157 +121.093 12.8623 27.3151 +120.728 13.3013 28.2474 +121.127 13.8268 29.3633 +120.839 14.2766 30.3185 +121.407 14.831 31.4958 +121.003 15.2696 32.4274 +121.546 15.831 33.6196 +121.217 16.2823 34.5779 +120.974 16.7455 35.5616 +121.48 17.3162 36.7737 +121.026 17.7533 37.7019 +121.506 18.3306 38.9278 +121.69 18.869 40.0713 +121.205 19.3058 40.9988 +122.112 19.9694 42.4081 +121.606 20.407 43.3374 +119.514 20.571 43.6858 +116.686 20.5907 43.7275 +113.406 20.5077 43.5513 +109.956 20.3679 43.2544 +107.433 20.3774 43.2745 +103.918 20.1753 42.8455 +102.05 20.2728 43.0525 +99.4649 20.2113 42.9218 +97.4293 20.2441 42.9915 +96.4739 20.4915 43.5169 +97.387 21.1395 44.893 +97.3938 21.5991 45.869 +97.5657 22.1004 46.9335 +97.6366 22.5842 47.961 +97.6076 23.0496 48.9494 +96.2613 23.2018 49.2726 +96.5618 23.7505 50.4379 +96.8471 24.3032 51.6115 +96.2599 24.6404 52.3276 +96.5189 25.1976 53.511 +95.999 25.5555 54.271 +96.1466 26.0945 55.4158 +96.2794 26.6366 56.5669 +96.4806 27.2051 57.7743 +95.9196 27.5628 58.5338 +95.8459 28.0631 59.5963 +96.1684 28.6871 60.9216 +96.147 29.2167 62.0462 +96.1921 29.7734 63.2284 +96.2217 30.3326 64.416 +95.6765 30.7148 65.2276 +96.3131 31.4842 66.8617 +96.3737 32.0772 68.1209 +95.713 32.4342 68.8791 +95.7444 33.0301 70.1446 +95.7586 33.6287 71.4157 +95.679 34.2025 72.6343 +95.583 34.7782 73.8569 +96.2255 35.6353 75.6771 +96.091 36.2176 76.9136 +96.0886 36.8585 78.2747 +95.9198 37.4445 79.5193 +95.8073 38.0612 80.8288 +95.6769 38.6799 82.1427 +95.5283 39.3004 83.4605 +96.0035 40.1915 85.353 +95.7423 40.7879 86.6195 +95.5339 41.4157 87.9528 +95.3071 42.0451 89.2894 +95.6813 42.9541 91.2197 +96.0254 43.8692 93.163 +95.7311 44.5069 94.5174 +95.418 45.146 95.8744 +95.6823 46.0734 97.844 +95.2598 46.6847 99.1423 +95.4039 47.5879 101.06 +95.2611 48.3649 102.71 +94.9665 49.0789 104.227 +94.9644 49.9595 106.097 +94.9957 50.8776 108.046 +94.8734 51.7322 109.861 +94.845 52.6575 111.826 +94.7257 53.5526 113.727 +94.9337 54.6564 116.071 +94.8098 55.5928 118.06 +94.5965 56.498 119.982 +94.5254 57.5107 122.133 +94.3633 58.4918 124.216 +94.2799 59.5471 126.457 +93.9397 60.4634 128.403 +94.4404 61.9536 131.568 +94.2961 63.057 133.911 +94.1137 64.1638 136.262 +94.2065 65.4921 139.083 +94.3035 66.8622 141.992 +93.9454 67.9447 144.291 +93.85 69.2505 147.064 +93.8559 70.6721 150.083 +93.8107 72.0988 153.113 +94.0957 73.8302 156.79 +93.8474 75.1926 159.683 +93.6426 76.6346 162.746 +93.749 78.3843 166.461 +93.6569 80.0262 169.948 +93.5922 81.7498 173.608 +93.4209 83.4403 177.198 +93.5254 85.4447 181.455 +93.223 87.1458 185.068 +93.2647 89.2405 189.516 +93.2275 91.342 193.979 +93.1112 93.4495 198.455 +93.26 95.9175 203.696 +93.2396 98.3147 208.786 +92.2484 99.7674 211.872 +90.1295 100.027 212.423 +87.9021 100.159 212.703 +88.036 103.044 218.83 +89.26 107.383 228.044 +87.3499 108.073 229.511 +87.6713 111.626 237.055 +86.9883 114.054 242.212 +87.9865 118.884 252.468 +87.3607 121.732 258.517 +86.7383 124.748 264.922 +88.5623 131.577 279.424 +91.4757 140.522 298.421 +91.4408 145.384 308.745 +91.4638 150.667 319.965 +91.2529 155.921 331.122 +90.9503 161.39 342.738 +90.7678 167.492 355.696 +90.4068 173.73 368.942 +90.1505 180.685 383.712 +87.682 183.601 389.906 +87.3142 191.364 406.392 +89.0038 204.583 434.464 +85.487 206.542 438.625 +80.5597 205.087 435.535 +76.778 206.515 438.567 +71.9832 205.192 435.757 +67.9582 206 437.473 +63.2138 204.555 434.405 +59.2894 205.713 436.863 +54.5753 204.063 433.359 +50.759 205.741 436.923 +46.121 204.056 433.345 +42.2444 205.705 436.847 +37.7388 204.283 433.826 +33.7342 205.52 436.454 +29.23 203.597 432.37 +25.2626 205.357 436.107 +20.8632 203.57 432.313 +16.8146 205.131 435.627 +12.4943 203.268 431.672 +8.39112 204.798 434.921 +4.16867 203.501 432.166 +2.07612e-14 205 435.349 +-4.16343 203.245 431.623 +-8.3981 204.969 435.283 +-12.4812 203.056 431.221 +-16.7727 204.619 434.541 +-20.7846 202.804 430.686 +-25.137 204.336 433.939 +-29.1263 202.874 430.834 +-33.504 204.118 433.476 +-37.4328 202.626 430.309 +-41.9655 204.347 433.963 +-45.7855 202.572 430.193 +-50.3932 204.258 433.774 +-54.1791 202.581 430.213 +-58.7532 203.852 432.911 +-62.509 202.274 429.561 +-67.2484 203.849 432.904 +-70.8598 201.989 428.956 +-75.7299 203.696 432.58 +-79.2724 201.81 428.575 +-84.1673 203.354 431.853 +-87.6188 201.399 427.703 +-92.7332 203.241 431.613 +-96.3745 201.803 428.56 +-101.523 203.478 432.118 +-104.908 201.596 428.121 +-110.024 203.025 431.155 +-113.454 201.324 427.543 +-118.953 203.251 431.634 +-122.21 201.316 427.526 +-123.923 197.027 418.417 +-112.374 172.625 366.597 +-114.858 170.645 362.391 +-118.15 169.925 360.863 +-121.744 169.642 360.262 +-126.327 170.687 362.479 +-150.553 197.397 419.204 +-157.478 200.507 425.807 +-163.012 201.686 428.311 +-1093.65 1315.7 2794.1 +-1120.56 1311.59 2785.35 +-1147.38 1307.37 2776.41 +-182.839 202.918 430.927 +-159.501 172.502 366.335 +-162.13 170.955 363.048 +-165.664 170.385 361.838 +-168.64 169.253 359.434 +-174.692 171.159 363.482 +-142.276 136.137 289.109 +-142.489 133.2 282.871 +-145.507 132.935 282.309 +-149.473 133.505 283.518 +-436.092 380.911 808.924 +-436.962 373.366 792.9 +-438.328 366.489 778.296 +-439.723 359.857 764.213 +-442.007 354.146 752.085 +-443.996 348.371 739.821 +-445.395 342.311 726.95 +-447.613 337.045 715.768 +-449.45 331.642 704.293 +-452.318 327.132 694.716 +-453.852 321.787 683.364 +-456.455 317.326 673.891 +-454.406 309.801 657.91 +-458.478 306.59 651.092 +-463.597 304.124 645.854 +-465.945 299.902 636.888 +-468.995 296.216 629.061 +-471.477 292.249 620.637 +-474.004 288.391 612.444 +-476.583 284.642 604.481 +-479.104 280.929 596.596 +-482.044 277.528 589.373 +-484.461 273.888 581.643 +-487.861 270.859 575.211 +-489.82 267.088 567.203 +-492.845 263.957 560.553 +-495.401 260.624 553.476 +-498.176 257.458 546.752 +-501.053 254.389 540.234 +-504.037 251.415 533.918 +-506.412 248.181 527.051 +-509.224 245.204 520.729 +-512.086 242.289 514.538 +-515.002 239.433 508.474 +-511.021 233.459 495.786 +-500.64 224.752 477.296 +-506.823 223.587 474.821 +-135.275 58.6443 124.54 +-516.329 219.965 467.13 +-521.101 218.157 463.29 +-524.255 215.679 458.027 +-141.956 57.3893 121.875 +-142.76 56.714 120.441 +-142.737 55.7206 118.331 +-143.501 55.0453 116.897 +-141.852 53.4652 113.542 +-142.187 52.6566 111.825 +-145.161 52.8177 112.167 +-148.996 53.2616 113.109 +-155.945 54.765 116.302 +-156.983 54.1567 115.01 +-157.461 53.3587 113.316 +-158.784 52.8501 112.235 +-160.813 52.5689 111.638 +-565.594 181.571 385.594 +-569.774 179.613 381.437 +-585.486 181.219 384.848 +-576.312 175.127 371.91 +-579.632 172.905 367.19 +-583.893 170.96 363.061 +-586.627 168.569 357.982 +-590.475 166.499 353.587 +-593.863 164.298 348.911 +-598.049 162.312 344.695 +-600.842 159.948 339.673 +-604.948 157.93 335.39 +-607.817 155.587 330.414 +-612.532 153.711 326.429 +-615.224 151.321 321.355 +-380.607 91.7374 194.819 +-381.159 90.009 191.148 +-380.791 88.0804 187.053 +-381.345 86.3815 183.444 +-381.769 84.6655 179.8 +-380.282 82.5465 175.3 +-380.437 80.8066 171.605 +-381.628 79.2955 168.396 +-381.794 77.5804 164.754 +-380.649 75.6181 160.587 +-379.272 73.6346 156.375 +-381.679 72.3953 153.743 +-380.121 70.4126 149.532 +-379.8 68.6809 145.855 +-380.269 67.1033 142.504 +-114.971 19.789 42.0251 +-113.883 19.1111 40.5853 +-111.75 18.2747 38.8092 +-109.684 17.4707 37.1017 +-109.192 16.9311 35.9558 +-109.535 16.5245 35.0924 +-109.207 16.0196 34.0201 +-109.437 15.5995 33.1279 +-108.991 15.0867 32.0389 +-109.296 14.681 31.1773 +-108.636 14.1495 30.0487 +-109.401 13.8056 29.3184 +-109.295 13.3514 28.3538 +-109.854 12.9787 27.5623 +-110.116 12.5698 26.694 +-110.853 12.2133 25.9368 +-111.778 11.8729 25.2139 +-113.087 11.5663 24.5627 +-113.612 11.1741 23.73 +-115.398 10.8989 23.1455 +-117.28 10.62 22.5533 +-122.295 10.5998 22.5103 +-159.318 13.193 28.0175 +-160.172 12.6468 26.8575 +-161.41 12.1248 25.749 +-161.159 11.4892 24.3991 +-853.56 57.5938 122.309 +-863.114 54.9533 116.702 +-381.748 22.8564 48.539 +-381.012 21.3696 45.3816 +-380.542 19.9056 42.2725 +-403.589 19.5896 41.6016 +-404.969 18.133 38.5083 +-404.629 16.5982 35.2489 +-404.455 15.0747 32.0135 +-404.051 13.5472 28.7695 +-404.213 12.0415 25.572 +-404.943 10.5514 22.4074 +-404.645 9.03434 19.1858 +-404.215 7.51853 15.9668 +-403.454 6.00212 12.7464 +-145.65 1.62482 3.45056 +-144.378 1.07362 2.28 +-146.094 0.543151 1.15347 +119.9 5.32907e-15 2.84217e-14 +119.895 0.454268 0.942552 +119.882 0.908502 1.88503 +119.759 1.36153 2.82502 +120.327 1.82431 3.78522 +120.385 2.28202 4.73491 +120.335 2.73804 5.6811 +120.275 3.19385 6.62686 +120.007 3.64336 7.55953 +120.926 4.13196 8.57332 +120.739 4.58619 9.51579 +120.443 5.03511 10.4473 +121.133 5.52758 11.4691 +120.719 5.97155 12.3903 +120.495 6.42339 13.3278 +121.055 6.91933 14.3568 +121.011 7.3838 15.3205 +120.66 7.82912 16.2445 +121.091 8.32675 17.277 +120.623 8.7637 18.1836 +120.344 9.21284 19.1155 +120.055 9.66054 20.0445 +120.642 10.1813 21.1249 +120.335 10.6293 22.0546 +121.192 11.1842 23.2058 +120.865 11.6335 24.138 +120.53 12.0812 25.067 +121.157 12.6286 26.2028 +121.093 13.1082 27.1979 +120.728 13.5556 28.1262 +121.224 14.1024 29.2607 +120.839 14.5495 30.1885 +121.407 15.1145 31.3608 +121.195 15.5862 32.3395 +121.546 16.1336 33.4754 +121.408 16.6196 34.4838 +120.974 17.0656 35.4091 +121.48 17.6473 36.616 +120.743 18.0503 37.4523 +121.506 18.681 38.7608 +121.596 19.2149 39.8686 +121.299 19.6901 40.8546 +122.019 20.3356 42.1939 +121.513 20.7812 43.1185 +119.514 20.9643 43.4984 +116.871 21.0176 43.609 +113.406 20.8997 43.3645 +110.689 20.8958 43.3563 +108.072 20.8905 43.3454 +104.646 20.7051 42.9605 +102.05 20.6604 42.8678 +99.4649 20.5977 42.7377 +97.4293 20.6311 42.8071 +96.6529 20.922 43.4107 +96.4069 21.3268 44.2506 +96.7729 21.8717 45.3812 +96.6828 22.319 46.3093 +97.1972 22.9124 47.5405 +96.7329 23.2797 48.3027 +96.3484 23.6668 49.1057 +96.5618 24.2045 50.2215 +96.761 24.7458 51.3445 +96.1742 25.0891 52.0568 +96.5189 25.6793 53.2815 +95.999 26.044 54.0383 +96.231 26.6167 55.2265 +96.3632 27.1694 56.3733 +96.4806 27.7252 57.5265 +96.5829 28.2839 58.6858 +96.0107 28.6488 59.4427 +96.7419 29.4099 61.022 +96.147 29.7753 61.7801 +96.1112 30.3171 62.9043 +95.4982 30.68 63.6574 +96.3953 31.5372 65.4358 +96.3131 32.0862 66.5749 +96.3737 32.6904 67.8287 +95.713 33.0543 68.5837 +96.3661 33.8802 70.2973 +95.6814 34.244 71.0522 +95.7556 34.8843 72.3807 +95.583 35.4431 73.5402 +96.2255 36.3166 75.3526 +96.091 36.91 76.5837 +96.0886 37.5631 77.939 +95.9198 38.1604 79.1782 +95.8073 38.7888 80.4822 +95.6043 39.3894 81.7283 +96.1757 40.3232 83.6657 +95.9322 40.9295 84.9238 +95.7423 41.5677 86.248 +95.604 42.2385 87.6399 +95.3071 42.849 88.9064 +95.6125 43.744 90.7636 +95.4116 44.4217 92.1698 +95.7311 45.3578 94.112 +95.2842 45.9448 95.3299 +95.6823 46.9542 97.4244 +95.2598 47.5772 98.7171 +95.4039 48.4977 100.627 +95.004 49.1563 101.993 +94.8393 49.9499 103.64 +94.9644 50.9146 105.642 +95.058 51.8841 107.653 +94.935 52.7555 109.461 +94.4189 53.4232 110.847 +94.4248 54.4031 112.88 +94.8742 55.6661 115.501 +94.6922 56.5857 117.408 +94.5965 57.5782 119.468 +94.5828 58.6458 121.683 +94.5898 59.7533 123.981 +94.224 60.6494 125.84 +94.6572 62.09 128.829 +94.3315 63.0655 130.853 +94.2961 64.2625 133.337 +94.0077 65.3171 135.525 +94.2065 66.7442 138.486 +93.8914 67.8431 140.766 +93.9961 69.281 143.75 +93.9 70.6122 146.512 +93.9052 72.061 149.518 +93.8591 73.515 152.535 +94.048 75.2034 156.038 +93.8943 76.6687 159.078 +93.6888 78.1379 162.127 +93.749 79.8828 165.747 +93.6123 81.517 169.138 +93.5484 83.2736 172.783 +93.3779 84.9964 176.357 +93.1451 86.7239 179.942 +93.1401 88.7328 184.11 +93.2647 90.9466 188.703 +93.6263 93.4864 193.973 +93.4238 95.5561 198.267 +93.2217 97.7113 202.739 +93.0523 99.9928 207.473 +90.0494 99.2512 205.934 +88.6244 100.237 207.979 +87.9371 102.114 211.875 +87.6598 104.565 216.96 +89.8608 110.173 228.595 +87.5778 110.427 229.122 +87.8617 114.007 236.551 +87.2355 116.565 241.859 +87.5655 120.576 250.182 +87.5653 124.35 258.011 +87.1075 127.674 264.908 +91.4013 138.391 287.145 +91.3955 143.083 296.881 +91.5961 148.414 307.942 +91.4388 153.506 318.506 +91.1078 158.649 329.177 +90.7869 164.181 340.655 +90.7902 170.737 354.259 +90.2553 176.754 366.743 +89.2149 182.228 378.101 +86.3263 184.218 382.23 +89.6039 200.137 415.26 +87.6188 205.25 425.869 +84.0978 207.07 429.646 +79.0908 205.197 425.76 +75.5109 206.99 429.479 +70.4755 204.735 424.8 +66.8448 206.499 428.46 +62.013 204.506 424.325 +58.3754 206.414 428.284 +53.6357 204.384 424.072 +49.9332 206.263 427.971 +45.3063 204.284 423.864 +41.5559 206.221 427.884 +37.0013 204.12 423.524 +33.1832 206.028 427.483 +28.7905 204.369 424.041 +24.8962 206.248 427.94 +20.4968 203.819 422.9 +16.5528 205.798 427.006 +12.2848 203.682 422.617 +8.25324 205.284 425.94 +4.09449 203.701 422.655 +2.58682e-14 205.619 426.635 +-4.08925 203.441 422.115 +-8.24975 205.197 425.76 +-12.2587 203.249 421.717 +-16.5075 205.234 425.835 +-20.44 203.255 421.729 +-24.7392 204.947 425.241 +-28.589 202.939 421.074 +-32.9948 204.859 425.057 +-36.813 203.081 421.369 +-41.3031 204.967 425.281 +-44.9708 202.771 420.726 +-49.5047 204.493 424.299 +-53.2395 202.874 420.939 +-57.8636 204.604 424.528 +-61.4778 202.741 420.664 +-66.2046 204.521 424.357 +-69.6182 202.244 419.632 +-74.541 204.331 423.963 +-77.8695 202.029 419.185 +-82.8475 203.992 423.259 +-86.3067 202.176 419.492 +-91.0731 203.418 422.069 +-94.7197 202.129 419.394 +-99.86 203.971 423.216 +-103.004 201.72 418.545 +-108.156 203.395 422.02 +-111.33 201.331 417.738 +-116.727 203.261 421.742 +-116.151 194.993 404.586 +-117.814 190.896 396.087 +-112.668 176.386 365.979 +-115.106 174.283 361.616 +-118.576 173.798 360.61 +-122.241 173.592 360.182 +-127.229 175.192 363.503 +-145.887 194.936 404.469 +-151.608 196.723 408.176 +-1066.66 1344.95 2790.61 +-1093.65 1340.86 2782.12 +-165.469 197.38 409.54 +-167.189 194.143 402.824 +-470.322 531.949 1103.73 +-160.381 176.77 366.776 +-162.916 175.068 363.245 +-166.582 174.605 362.284 +-169.616 173.487 359.965 +-432.164 431.518 895.349 +-142.805 139.256 288.939 +-143.277 136.497 283.215 +-146.184 136.106 282.404 +-149.646 136.214 282.627 +-436.135 388.232 805.535 +-437.586 381.048 790.628 +-438.918 373.998 776.002 +-440.231 367.161 761.814 +-442.571 361.377 749.814 +-444.521 355.451 737.519 +-445.831 349.197 724.541 +-448.056 343.829 713.404 +-450.15 338.509 702.365 +-452.826 333.761 692.513 +-454.779 328.608 681.823 +-457.186 323.911 672.077 +-462.461 321.32 666.701 +-465.946 317.542 658.861 +-462.399 309.137 641.422 +-466 305.672 634.233 +-469.442 302.167 626.96 +-471.477 297.837 617.975 +-474.233 294.047 610.113 +-476.641 290.119 601.961 +-479.985 286.826 595.13 +-482.044 282.833 586.845 +-485.063 279.47 579.867 +-488.409 276.347 573.388 +-490.559 272.605 565.622 +-493.405 269.309 558.783 +-496.156 266.012 551.943 +-499.576 263.117 545.936 +-501.696 259.585 538.607 +-505.076 256.75 532.725 +-507.199 253.319 525.606 +-510.615 250.575 519.912 +-513.29 247.501 513.535 +-515.813 244.395 507.09 +-518.796 241.542 501.171 +-521.153 238.434 494.721 +-507.031 227.955 472.98 +-513.206 226.738 470.454 +-134.704 58.4834 121.346 +-134.448 57.362 119.019 +-523.895 219.651 455.75 +-140.65 57.9485 120.236 +-142.833 57.8278 119.986 +-141.262 56.1993 116.607 +-142.832 55.8363 115.854 +-141.777 54.4587 112.995 +-142.338 53.7202 111.463 +-146.986 54.5039 113.089 +-150.451 54.8099 113.724 +-157.026 56.1988 116.606 +-157.217 55.2741 114.687 +-158.087 54.595 113.278 +-159.809 54.2078 112.475 +-161.844 53.9173 111.872 +-570.306 186.584 387.139 +-566.88 182.118 377.872 +-2650.58 836.092 1734.79 +-577.859 178.954 371.309 +-580.042 176.335 365.873 +-584.718 174.475 362.014 +-587.042 171.913 356.698 +-383.337 110.158 228.564 +-594.701 167.675 347.906 +-598.808 165.626 343.653 +-602.453 163.443 339.124 +-605.375 161.063 334.186 +-608.589 158.763 329.415 +-612.877 156.738 325.212 +-616.004 154.41 320.382 +-379.562 93.2346 193.451 +-379.585 91.3508 189.542 +-381.67 89.9714 186.68 +-380.286 87.788 182.15 +-380.262 85.9433 178.322 +-379.391 83.9275 174.139 +-380.884 82.4483 171.07 +-380.729 80.6213 167.28 +-381.252 78.9515 163.815 +-382.281 77.3938 160.583 +-382.184 75.6185 156.899 +-379.944 73.4438 152.387 +-379.296 71.6033 148.568 +-379.34 69.9088 145.052 +-381.193 68.5521 142.237 +-114.693 20.1186 41.7436 +-112.86 19.3014 40.048 +-111.096 18.5152 38.4168 +-109.965 17.8503 37.0372 +-109.286 17.2696 35.8324 +-109.535 16.8405 34.9419 +-108.546 16.2269 33.6689 +-108.583 15.7737 32.7286 +-109.562 15.4557 32.0686 +-109.01 14.9225 30.9623 +-108.732 14.4327 29.9462 +-109.114 14.0325 29.1158 +-109.872 13.6784 28.3811 +-109.95 13.2384 27.4682 +-110.888 12.9 26.766 +-111.434 12.512 25.9609 +-111.293 12.0473 24.9967 +-112.406 11.7164 24.3102 +-113.514 11.378 23.608 +-115.203 11.0885 23.0072 +-117.28 10.8231 22.4565 +-121.511 10.7332 22.2701 +-158.336 13.3624 27.7254 +-160.664 12.9282 26.8244 +-162.493 12.4396 25.8106 +-162.145 11.7805 24.4431 +-854.548 58.7626 121.925 +-864.004 56.0616 116.321 +-381.748 23.2933 48.3309 +-380.417 21.7441 45.1164 +-381.634 20.3443 42.212 +-403.986 19.9838 41.464 +-404.969 18.4797 38.3431 +-405.126 16.9363 35.1408 +-405.949 15.4197 31.994 +-404.35 13.8163 28.6673 +-404.213 12.2717 25.4624 +-403.546 10.7159 22.2343 +-405.643 9.22981 19.1508 +-403.915 7.65658 15.8865 +-404.354 6.1305 12.7201 +-146.75 1.66839 3.46171 +-145.278 1.10096 2.28436 +-145.794 0.552398 1.14616 +119.8 1.77636e-15 -1.13687e-13 +119.895 0.462753 0.938416 +119.882 0.925471 1.87676 +119.759 1.38696 2.81262 +120.327 1.85838 3.76861 +120.385 2.32464 4.71413 +120.335 2.78918 5.65616 +120.275 3.2535 6.59777 +120.007 3.71141 7.52636 +120.826 4.20567 8.52866 +120.54 4.66411 9.45833 +120.343 5.12495 10.3929 +120.238 5.58921 11.3343 +120.719 6.08309 12.3359 +120.594 6.54876 13.2802 +121.055 7.04857 14.2938 +120.219 7.47244 15.1533 +120.759 7.98189 16.1865 +120.202 8.42001 17.0749 +120.524 8.92008 18.089 +121.23 9.45404 19.1718 +120.94 9.91351 20.1036 +120.642 10.3714 21.0322 +120.335 10.8279 21.9578 +121.095 11.3838 23.0853 +120.865 11.8508 24.0321 +120.53 12.3068 24.957 +121.157 12.8645 26.0879 +121.093 13.353 27.0785 +120.728 13.8088 28.0028 +120.451 14.2742 28.9466 +120.936 14.8331 30.08 +121.311 15.3846 31.1984 +121.195 15.8773 32.1976 +121.642 16.4479 33.3547 +121.408 16.9301 34.3324 +121.069 17.398 35.2814 +121.291 17.9488 36.3984 +121.783 18.5459 37.6091 +121.506 19.0299 38.5907 +121.878 19.6192 39.7857 +121.205 20.0423 40.6438 +121.926 20.6996 41.9766 +121.419 21.1531 42.8964 +121.276 21.6706 43.9458 +117.148 21.4609 43.5205 +114.235 21.4456 43.4895 +111.515 21.4448 43.4879 +108.072 21.2807 43.1551 +106.283 21.4219 43.4415 +102.685 21.1771 42.945 +100.187 21.1347 42.859 +98.2382 21.191 42.9732 +96.0265 21.1746 42.94 +97.2979 21.926 44.4636 +96.7729 22.2802 45.182 +96.9476 22.7982 46.2324 +97.9002 23.5092 47.6742 +96.9953 23.7789 48.2212 +96.3484 24.1088 48.8902 +96.5618 24.6566 50.0011 +96.8471 25.2304 51.1647 +96.2599 25.5805 51.8745 +96.5189 26.1589 53.0477 +96.6775 26.718 54.1813 +96.0623 27.0663 54.8877 +96.2794 27.6528 56.0771 +96.4806 28.2431 57.274 +96.5829 28.8122 58.4282 +95.8459 29.1337 59.0803 +96.0046 29.7309 60.2912 +96.3099 30.3828 61.6132 +96.1921 30.9093 62.681 +96.3021 31.5162 63.9116 +96.3953 32.1262 65.1486 +95.7577 32.497 65.9006 +96.2949 33.2738 67.4758 +96.3391 33.892 68.7294 +95.6667 34.2625 69.4808 +95.7586 34.9117 70.7974 +95.6023 35.479 71.9477 +96.2674 36.3636 73.7417 +95.5462 36.7338 74.4924 +96.091 37.5994 76.2476 +96.0143 38.2351 77.5369 +95.9198 38.8731 78.8307 +95.8073 39.5133 80.129 +95.6769 40.1556 81.4314 +96.1757 41.0763 83.2986 +96.0035 41.725 84.6139 +95.813 42.3754 85.9329 +95.5339 42.9959 87.1912 +95.3071 43.6493 88.5163 +95.6813 44.5929 90.4298 +96.0254 45.5429 92.3563 +95.7311 46.205 93.699 +95.418 46.8684 95.0443 +95.6823 47.8312 96.9968 +95.3254 48.499 98.3511 +95.339 49.3699 100.117 +95.3254 50.2438 101.889 +94.712 50.8148 103.047 +94.9015 51.8316 105.109 +95.058 52.8532 107.181 +94.2578 53.3574 108.203 +94.4189 54.4211 110.36 +94.7859 55.6311 112.814 +94.8148 56.6705 114.922 +94.5159 57.5351 116.675 +94.5384 58.6178 118.871 +94.5828 59.7411 121.149 +94.3066 60.6872 123.067 +94.2799 61.8189 125.362 +94.5468 63.1763 128.115 +94.3315 64.2435 130.279 +94.2961 65.4628 132.752 +94.1137 66.6118 135.082 +94.2065 67.9908 137.878 +93.8914 69.1102 140.148 +93.9454 70.537 143.042 +93.85 71.8926 145.791 +93.9052 73.4069 148.862 +93.8107 74.8496 151.787 +94.0957 76.647 155.432 +93.8943 78.1007 158.38 +93.6426 79.5584 161.336 +93.749 81.3749 165.02 +93.6569 83.0794 168.476 +93.5922 84.8688 172.105 +93.4209 86.6237 175.664 +93.5677 88.7449 179.965 +93.5548 90.7926 184.118 +93.2647 92.6453 187.875 +93.2275 94.827 192.299 +93.502 97.4222 197.562 +93.0686 99.3731 201.518 +91.9659 100.672 204.152 +88.4734 99.3355 201.442 +87.9077 101.283 205.392 +87.832 103.897 210.693 +87.7624 106.643 216.26 +90.0611 112.481 228.099 +87.4476 112.322 227.777 +87.2588 115.34 233.897 +87.3591 118.911 241.139 +87.1746 122.281 247.972 +88.0331 127.349 258.251 +90.6577 135.359 274.495 +91.3738 140.933 285.798 +91.4757 145.884 295.837 +91.4925 151.016 306.245 +91.4638 156.415 317.195 +91.1562 161.698 327.906 +90.7636 167.204 339.072 +90.7228 173.796 352.441 +90.1471 179.84 364.696 +88.5704 184.291 373.722 +87.1836 189.523 384.332 +89.5657 203.788 413.261 +86.0152 205.256 416.239 +82.6392 207.279 420.341 +77.5724 205.017 415.753 +74.1812 207.143 420.065 +69.3965 205.366 416.461 +65.6619 206.633 419.03 +60.9296 204.686 415.082 +57.242 206.187 418.125 +52.8093 204.993 415.705 +49.0448 206.377 418.512 +44.5683 204.709 415.13 +40.815 206.328 418.411 +36.3658 204.361 414.423 +32.5902 206.126 418.002 +28.2716 204.434 414.571 +24.3886 205.816 417.374 +20.1609 204.223 414.144 +16.2422 205.708 417.154 +12.0754 203.95 413.59 +8.11362 205.581 416.896 +4.02381 203.923 413.536 +2.38698e-14 205.656 417.05 +-4.01857 203.658 412.998 +-8.09443 205.094 415.91 +-12.0545 203.596 412.872 +-16.1969 205.133 415.989 +-20.1042 203.649 412.979 +-24.2891 204.977 415.672 +-28.1129 203.286 412.243 +-32.374 204.758 415.228 +-36.1618 203.214 412.098 +-40.5274 204.874 415.463 +-44.252 203.256 412.183 +-48.6057 204.53 414.765 +-52.3338 203.148 411.963 +-56.7424 204.386 414.475 +-60.3814 202.844 411.347 +-64.966 204.443 414.59 +-68.4653 202.61 410.872 +-73.1175 204.173 414.042 +-76.6481 202.574 410.799 +-81.3715 204.1 413.894 +-84.7395 202.213 410.067 +-89.5848 203.831 413.349 +-93.0051 202.178 409.996 +-98.0304 203.974 413.639 +-101.359 202.206 410.053 +-106.379 203.79 413.265 +-109.626 201.952 409.538 +-114.671 203.409 412.494 +-116.978 200.048 405.676 +-114.32 188.695 382.653 +-113.015 180.234 365.496 +-115.547 178.218 361.408 +-119.059 177.765 360.49 +-122.65 177.426 359.802 +-128.371 180.067 365.158 +-143.322 195.086 395.614 +-146.563 193.729 392.862 +-1066.66 1370.07 2778.36 +-1093.65 1365.9 2769.91 +-162.22 197.119 399.736 +-166.173 196.568 398.62 +-169.436 195.217 395.881 +-161.114 180.894 366.835 +-163.553 179.035 363.065 +-167.08 178.397 361.771 +-170.085 177.216 359.377 +-142.274 144.714 293.466 +-142.805 141.857 287.671 +-143.733 139.489 282.87 +-147.113 139.53 282.953 +-435.419 403.739 818.74 +-436.486 395.802 802.645 +-438.122 388.64 788.122 +-439.327 381.338 773.315 +-440.739 374.45 759.346 +-442.806 368.322 746.919 +-444.951 362.44 734.991 +-446.898 356.57 723.087 +-448.795 350.828 711.444 +-450.75 345.291 700.215 +-453.232 340.299 690.092 +-455.088 334.973 679.292 +-458.858 331.168 671.575 +-467.76 331.072 671.38 +-478.68 332.313 673.896 +-463.651 315.764 640.337 +-462.799 309.242 627.111 +-469.442 307.811 624.209 +-472.496 304.055 616.593 +-474.52 299.72 607.802 +-477.744 296.221 600.707 +-480.75 292.649 593.462 +-482.937 288.649 585.35 +-486.206 285.362 578.684 +-488.957 281.825 571.512 +-490.928 277.906 563.564 +-494.339 274.858 557.384 +-496.534 271.187 549.939 +-499.767 268.134 543.748 +-502.274 264.738 536.861 +-505.076 261.545 530.387 +-507.79 258.351 523.909 +-511.278 255.586 518.302 +-513.491 252.223 511.482 +-516.624 249.351 505.658 +-519.546 246.409 499.693 +-522.186 243.368 493.526 +-516.965 236.763 480.13 +-528.345 237.786 482.206 +-515.198 227.857 462.071 +-133.592 58.0614 117.743 +-134.373 57.39 116.381 +-139.127 58.3913 118.412 +-141.371 58.3046 118.236 +-140.378 56.8903 115.368 +-141.718 56.4352 114.445 +-141.628 55.4171 112.38 +-142.64 54.8395 111.209 +-147.671 55.7806 113.117 +-153.209 56.8575 115.301 +-156.408 57.0234 115.638 +-156.828 56.1671 113.901 +-158.165 55.6422 112.837 +-159.966 55.2746 112.091 +-161.765 54.8974 111.326 +-583.563 194.487 394.4 +-571.783 187.124 379.468 +-574.807 184.702 374.556 +-578.348 182.451 369.991 +-581.188 179.983 364.988 +-584.8 177.759 360.476 +-588.617 175.594 356.086 +-381.503 111.678 226.472 +-595.792 171.12 347.014 +-599.904 169.028 342.771 +-602.877 166.613 337.873 +-606.568 164.395 333.375 +-609.703 162.025 328.57 +-613.652 159.867 324.195 +-616.437 157.404 319.2 +-380.345 95.172 192.999 +-378.186 92.7143 188.015 +-378.682 90.9346 184.406 +-380.197 89.4069 181.308 +-380.528 87.6096 177.663 +-380.282 85.6958 173.782 +-380.884 83.9882 170.32 +-380.1 81.9914 166.27 +-378.635 79.8738 161.976 +-380.831 78.5403 159.272 +-380.546 76.7009 155.542 +-380.309 74.8872 151.864 +-381.222 73.3109 148.667 +-380.905 71.5087 145.012 +-380.916 69.7816 141.51 +-113.765 20.3287 41.2244 +-112.953 19.6781 39.9051 +-111.376 18.9086 38.3446 +-109.965 18.1837 36.8746 +-109.568 17.6376 35.7672 +-108.781 17.0369 34.549 +-108.451 16.5156 33.492 +-108.678 16.0824 32.6134 +-108.801 15.635 31.7061 +-109.01 15.2012 30.8264 +-109.401 14.7928 29.9983 +-108.922 14.2695 28.9371 +-109.68 13.9095 28.2071 +-109.95 13.4857 27.3476 +-110.695 13.1181 26.6021 +-111.434 12.7457 25.847 +-112.263 12.3794 25.1041 +-113.573 12.0592 24.4547 +-114.294 11.6701 23.6658 +-115.008 11.2764 22.8674 +-117.378 11.0344 22.3766 +-124.548 11.207 22.7267 +-158.336 13.612 27.6038 +-161.45 13.2341 26.8375 +-163.478 12.7487 25.8531 +-164.808 12.1976 24.7355 +-854.548 59.8601 121.39 +-864.894 57.1676 115.93 +-381.55 23.7161 48.0938 +-380.417 22.1502 44.9184 +-380.443 20.6596 41.8956 +-401.403 20.2269 41.0181 +-404.074 18.7832 38.0905 +-404.131 17.2103 34.9007 +-404.057 15.6345 31.7051 +-404.948 14.0952 28.5837 +-404.512 12.5102 25.3695 +-403.546 10.9161 22.1367 +-404.145 9.36749 18.9963 +-403.316 7.788 15.7933 +-404.054 6.24041 12.6549 +-144.55 1.67408 3.39487 +-146.278 1.12925 2.29 +-145.794 0.562715 1.14113 +119.8 1.77636e-15 -1.13687e-13 +119.895 0.4712 0.934203 +119.882 0.942364 1.86833 +120.559 1.42171 2.81869 +120.327 1.8923 3.75169 +120.385 2.36707 4.69297 +120.235 2.83773 5.6261 +120.275 3.31289 6.56815 +120.107 3.7823 7.4988 +120.826 4.28244 8.49037 +120.54 4.74924 9.41587 +120.343 5.2185 10.3462 +121.133 5.73361 11.3675 +120.719 6.19413 12.2805 +120.594 6.6683 13.2206 +121.055 7.17723 14.2296 +121.011 7.65901 15.1848 +119.968 8.07436 16.0083 +120.202 8.57371 16.9983 +120.524 9.08291 18.0078 +120.344 9.55622 18.9462 +120.94 10.0945 20.0133 +120.642 10.5608 20.9378 +120.335 11.0255 21.8592 +120.997 11.5823 22.9631 +119.987 11.9793 23.7503 +120.627 12.5416 24.865 +120.282 13.0047 25.7831 +121.093 13.5968 26.957 +121.503 14.151 28.0559 +121.224 14.628 29.0015 +121.707 15.2001 30.1358 +121.311 15.6654 31.0583 +121.195 16.1671 32.053 +120.877 16.6428 32.9962 +121.408 17.2391 34.1783 +120.974 17.7017 35.0954 +121.101 18.2479 36.1783 +121.594 18.8551 37.3821 +121.601 19.3923 38.4473 +120.844 19.8079 39.2711 +121.955 20.5344 40.7115 +121.459 20.9967 41.6282 +122.071 21.6548 42.9329 +121.554 22.1168 43.8489 +117.517 21.9216 43.4618 +114.327 21.8547 43.3292 +112.34 21.9979 43.6131 +108.895 21.8341 43.2883 +106.101 21.7756 43.1724 +102.685 21.5637 42.7522 +100.999 21.695 43.0126 +98.3281 21.5975 42.8194 +95.6685 21.4808 42.5878 +97.2088 22.3058 44.2235 +96.7729 22.6869 44.9792 +96.7711 23.1721 45.941 +98.076 23.9813 47.5453 +97.6076 24.3658 48.3077 +96.3484 24.5489 48.6707 +96.5618 25.1067 49.7767 +96.8471 25.6909 50.935 +96.2599 26.0474 51.6416 +96.4336 26.6129 52.7629 +96.6775 27.2057 53.9381 +96.1466 27.5846 54.6893 +96.2794 28.1576 55.8254 +96.4806 28.7586 57.0169 +96.5829 29.3382 58.1659 +95.8459 29.6656 58.815 +96.1684 30.3253 60.123 +96.147 30.8851 61.2329 +96.1112 31.4471 62.3471 +96.3021 32.0915 63.6247 +95.6765 32.4687 64.3725 +96.3131 33.2821 65.9852 +95.6645 33.6593 66.7331 +96.4173 34.5386 68.4764 +96.3661 35.143 69.6745 +95.6814 35.5204 70.4228 +96.2918 36.3871 72.1412 +95.6591 36.7934 72.9468 +96.2255 37.6702 74.6851 +95.5667 38.0768 75.4911 +96.0143 38.9331 77.1888 +95.9198 39.5827 78.4768 +95.8073 40.2346 79.7693 +95.6769 40.8886 81.0659 +96.1757 41.8261 82.9246 +96.0035 42.4866 84.2341 +95.813 43.1489 85.5471 +95.604 43.8129 86.8635 +95.9323 44.7376 88.6969 +95.6813 45.4069 90.0239 +95.4798 46.1108 91.4194 +95.7311 47.0484 93.2783 +95.418 47.7239 94.6176 +95.6823 48.7043 96.5614 +95.2598 49.3506 97.8426 +95.5338 50.3738 99.8712 +95.3254 51.161 101.432 +94.7757 51.777 102.653 +94.9015 52.7777 104.637 +94.9335 53.7477 106.56 +95.0581 54.793 108.633 +94.845 55.6644 110.36 +94.9664 56.7547 112.522 +94.2199 57.3428 113.688 +94.6922 58.6948 116.368 +94.5965 59.7243 118.41 +94.5254 60.7947 120.532 +94.3066 61.7949 122.515 +94.224 62.91 124.726 +94.7124 64.4421 127.763 +94.2226 65.3405 129.544 +94.3498 66.696 132.232 +94.1667 67.866 134.551 +94.2065 69.2319 137.259 +94.2005 70.6032 139.978 +93.8946 71.7854 142.322 +93.9 73.2441 145.214 +93.8559 74.7077 148.116 +93.8107 76.2159 151.106 +94.0957 78.0461 154.734 +93.8943 79.5264 157.669 +93.6888 81.0503 160.691 +93.749 82.8603 164.279 +93.6569 84.5959 167.72 +93.5922 86.418 171.333 +93.4209 88.205 174.875 +93.4832 90.2828 178.995 +93.223 92.1221 182.641 +93.2647 94.3364 187.032 +93.2275 96.558 191.436 +93.1894 98.8687 196.017 +91.9588 99.9801 198.221 +90.018 100.338 198.93 +87.6671 100.227 198.71 +87.7643 102.964 204.137 +87.6219 105.541 209.245 +87.6598 108.462 215.038 +90.3281 114.873 227.749 +87.4802 114.415 226.84 +87.4492 117.701 233.355 +87.4209 121.167 240.226 +87.2348 124.598 247.029 +89.2026 131.397 260.507 +91.6518 139.342 276.259 +91.677 143.982 285.46 +91.4757 148.547 294.509 +91.5443 153.859 305.042 +91.4638 159.271 315.771 +90.9142 164.212 325.568 +90.7869 170.3 337.638 +90.7228 176.969 350.859 +89.6493 182.111 361.054 +87.8635 186.157 369.075 +89.3168 197.704 391.969 +89.2604 206.801 410.003 +84.9764 206.479 409.367 +81.4757 208.092 412.563 +76.6481 206.272 408.955 +73.0862 207.811 412.006 +68.3323 205.907 408.233 +64.7155 207.372 411.137 +60.1073 205.609 407.642 +56.4499 207.045 410.487 +52.0169 205.603 407.629 +48.3235 207.054 410.505 +43.9836 205.712 407.844 +40.2137 206.998 410.395 +35.8872 205.353 407.133 +32.1159 206.833 410.069 +27.9053 205.468 407.362 +24.0484 206.65 409.704 +19.9123 205.387 407.201 +16.0154 206.537 409.481 +11.9262 205.107 406.645 +7.98797 206.091 408.597 +3.97057 204.899 406.234 +2.29816e-14 206.123 408.66 +-3.96447 204.584 405.609 +-7.98797 206.091 408.597 +-11.8843 204.386 405.217 +-15.9595 205.817 408.053 +-19.8337 204.577 405.594 +-23.9228 205.571 407.565 +-27.7466 204.3 405.045 +-31.9066 205.486 407.397 +-35.7224 204.41 405.263 +-39.926 205.518 407.461 +-43.6482 204.143 404.734 +-47.8845 205.173 406.776 +-51.6093 203.992 404.436 +-55.9258 205.123 406.677 +-59.546 203.69 403.836 +-63.9918 205.053 406.539 +-67.5785 203.636 403.729 +-72.085 204.964 406.362 +-75.5423 203.296 403.055 +-80.1734 204.765 405.969 +-83.6279 203.203 402.87 +-88.2682 204.502 405.446 +-91.8687 203.353 403.168 +-96.4918 204.438 405.319 +-99.9302 202.996 402.46 +-104.782 204.394 405.233 +-108.225 203.011 402.491 +-113.171 204.413 405.27 +-116.552 202.958 402.386 +-113.415 190.617 377.918 +-113.256 183.915 364.63 +-115.988 182.164 361.159 +-119.514 181.701 360.241 +-123.381 181.742 360.321 +-129.604 185.115 367.01 +-143.106 198.347 393.244 +-144.183 194.062 384.747 +-153.733 201.067 398.636 +-1093.65 1390.84 2757.47 +-164.033 202.96 402.389 +-167.784 202.097 400.678 +-167.501 196.51 389.602 +-160.931 183.987 364.772 +-163.328 182.053 360.938 +-167.424 182.028 360.889 +-171.297 181.736 360.311 +-142.752 147.852 293.131 +-142.805 144.446 286.38 +-143.981 142.281 282.088 +-147.874 142.812 283.139 +-435.548 411.23 815.307 +-437.1 403.593 800.166 +-438.122 395.734 784.584 +-439.327 388.299 769.844 +-441.432 381.884 757.125 +-442.993 375.204 743.881 +-445.237 369.293 732.162 +-446.898 363.079 719.841 +-448.992 357.389 708.561 +-450.9 351.711 697.304 +-453.689 346.86 687.686 +-456.015 341.783 677.62 +-459.955 338.019 670.158 +-469.402 338.299 670.713 +-480.131 339.405 672.904 +-484.402 335.918 665.993 +-479.468 326.228 646.781 +-466.255 311.302 617.188 +-470.23 308.121 610.882 +-475.552 305.856 606.39 +-478.267 301.959 598.664 +-480.75 297.991 590.798 +-484.245 294.715 584.302 +-486.206 290.57 576.086 +-489.505 287.291 569.583 +-492.221 283.724 562.512 +-494.588 280.016 555.161 +-497.1 276.452 548.095 +-500.339 273.341 541.927 +-502.853 269.881 535.067 +-506.245 266.936 529.227 +-508.577 263.475 522.366 +-511.675 260.454 516.377 +-514.428 257.295 510.115 +-517.435 254.301 504.178 +-520.706 251.468 498.56 +-523.149 248.268 492.217 +-525.926 245.263 486.259 +-529.186 242.512 480.806 +-531.603 239.405 474.644 +-133.806 59.2163 117.402 +-133.509 58.0625 115.115 +-136.298 58.2485 115.484 +-141.005 59.2154 117.401 +-140.746 58.081 115.151 +-142.387 57.7364 114.468 +-141.702 56.4588 111.935 +-142.791 55.8995 110.826 +-147.899 56.8866 112.784 +-156.12 58.9952 116.964 +-156.563 58.1215 115.232 +-157.217 57.3343 113.671 +-158.869 56.9101 112.83 +-160.124 56.339 111.698 +-162.161 56.0368 111.099 +-2616.73 888.012 1760.58 +-574.597 191.477 379.623 +-2650.74 867.31 1719.53 +-578.755 185.912 368.59 +-582.335 183.63 364.066 +-585.871 181.335 359.515 +-589.363 179.026 354.937 +-382.003 113.866 225.751 +-596.546 174.464 345.894 +-599.989 172.137 341.28 +-603.641 169.869 336.782 +-606.909 167.489 332.065 +-610.646 165.237 327.6 +-614.514 163.014 323.192 +-617.649 160.593 318.392 +-382.086 97.3528 193.012 +-378.448 94.472 187.3 +-376.309 92.014 182.427 +-382.405 91.5677 181.542 +-381.592 89.4583 177.36 +-381.44 87.5258 173.529 +-379.631 85.2399 168.997 +-380.999 83.6858 165.916 +-382.335 82.1271 162.825 +-380.287 79.8601 158.331 +-381.092 78.2132 155.066 +-380.766 76.346 151.364 +-380.58 74.5235 147.751 +-381.365 72.9018 144.535 +-381.377 71.1418 141.046 +-114.507 20.8347 41.3069 +-112.953 20.0373 39.726 +-110.816 19.1569 37.9805 +-110.153 18.5472 36.7717 +-109.286 17.9133 35.515 +-109.441 17.4531 34.6026 +-108.451 16.8171 33.3416 +-108.583 16.3617 32.4387 +-108.706 15.9064 31.5362 +-109.01 15.4787 30.688 +-109.401 15.0628 29.8636 +-109.497 14.6067 28.9594 +-109.584 14.151 28.0559 +-110.143 13.7559 27.2725 +-110.309 13.3109 26.3902 +-111.337 12.9671 25.7086 +-112.36 12.6162 25.013 +-113.573 12.2793 24.3449 +-114.294 11.8832 23.5596 +-115.886 11.57 22.9387 +-118.16 11.3107 22.4247 +-126.214 11.5642 22.9273 +-159.613 13.9722 27.7013 +-160.762 13.4182 26.6031 +-162.395 12.8954 25.5665 +-160.863 12.123 24.035 +-856.721 61.1077 121.152 +-864.894 58.2111 115.41 +-378.084 23.9297 47.443 +-381.111 22.5957 44.7984 +-379.252 20.9709 41.5769 +-404.284 20.744 41.127 +-403.776 19.112 37.8915 +-403.733 17.5071 34.7097 +-403.957 15.9159 31.555 +-403.054 14.2854 28.3222 +-404.213 12.7291 25.2368 +-403.546 11.1154 22.0374 +-405.643 9.57383 18.9811 +-403.316 7.93016 15.7224 +-402.954 6.33703 12.5638 +-147.349 1.73765 3.44506 +-143.978 1.13178 2.24388 +-146.694 0.576522 1.14301 +119.8 1.77636e-15 -1.13687e-13 +120.695 0.482808 0.936117 +119.882 0.959181 1.85976 +120.459 1.44588 2.80342 +120.327 1.92607 3.73446 +120.385 2.40932 4.67142 +120.335 2.89077 5.60492 +120.175 3.36921 6.53257 +121.005 3.87857 7.52017 +120.826 4.35886 8.45139 +120.54 4.834 9.37264 +120.343 5.31163 10.2987 +120.238 5.79279 11.2316 +120.918 6.31503 12.2442 +120.594 6.7873 13.1599 +121.155 7.31132 14.1759 +121.011 7.79569 15.1151 +120.759 8.27264 16.0398 +120.202 8.72671 16.9202 +120.623 9.25256 17.9398 +120.344 9.72676 18.8592 +120.055 10.1994 19.7757 +120.642 10.7492 20.8417 +120.433 11.2314 21.7766 +120.214 11.7127 22.7098 +120.865 12.2824 23.8144 +121.407 12.8479 24.9108 +121.06 13.3223 25.8307 +121.093 13.8394 26.8332 +120.728 14.3118 27.7491 +121.224 14.889 28.8684 +120.839 15.3611 29.7837 +120.254 15.806 30.6463 +121.003 16.4296 31.8554 +120.877 16.9398 32.8447 +121.408 17.5467 34.0214 +121.069 18.0318 34.9618 +121.006 18.559 35.984 +120.743 19.0572 36.9501 +121.412 19.7078 38.2114 +120.751 20.1457 39.0605 +121.674 20.8526 40.4312 +121.552 21.3878 41.4689 +121.978 22.0244 42.7032 +121.368 22.4772 43.581 +118.626 22.5233 43.6704 +115.247 22.4238 43.4775 +112.34 22.3905 43.4129 +108.803 22.205 43.0534 +106.192 22.1832 43.0111 +103.5 22.1229 42.894 +100.909 22.0624 42.7768 +98.3281 21.983 42.6228 +96.3844 22.0277 42.7096 +97.6543 22.8079 44.2222 +97.4825 23.2611 45.101 +97.0359 23.6501 45.8553 +98.076 24.4092 47.327 +97.0828 24.6673 47.8274 +97.5669 25.303 49.0599 +96.5618 25.5548 49.5481 +95.9855 25.9168 50.2501 +96.2599 26.5122 51.4046 +96.5189 27.1118 52.5671 +96.6775 27.6912 53.6904 +96.1466 28.0769 54.4382 +96.2794 28.6601 55.5691 +96.4806 29.2718 56.7551 +96.4171 29.8104 57.7994 +96.0107 30.2469 58.6457 +96.0046 30.8139 59.745 +96.147 31.4362 60.9518 +95.7067 31.8735 61.7996 +96.2217 32.6369 63.2797 +95.6765 33.0481 64.077 +96.3131 33.876 65.6822 +96.2949 34.4858 66.8645 +96.4173 35.155 68.1621 +95.6667 35.5105 68.8513 +95.6814 36.1542 70.0994 +95.7556 36.8302 71.4102 +96.2674 37.6881 73.0736 +96.2255 38.3424 74.3422 +96.1659 38.9993 75.6157 +96.0143 39.6278 76.8344 +95.9198 40.2891 78.1166 +95.8073 40.9526 79.403 +95.6769 41.6183 80.6937 +95.6003 42.3178 82.05 +95.9322 43.2127 83.785 +95.813 43.9189 85.1543 +95.5339 44.562 86.4013 +95.3766 45.2722 87.7783 +95.6813 46.2172 89.6106 +95.4798 46.9337 90.9997 +95.1231 47.5841 92.2608 +95.3511 48.5417 94.1174 +94.9535 49.1958 95.3857 +95.2598 50.2312 97.3934 +95.339 51.1682 99.21 +94.9397 51.8635 100.558 +94.8393 52.7363 102.25 +94.9015 53.7195 104.157 +94.4355 54.4199 105.515 +94.8734 55.6621 107.923 +94.1754 56.258 109.079 +94.3646 57.4012 111.295 +94.6958 58.6609 113.738 +94.8098 59.816 115.977 +94.5965 60.7901 117.866 +94.468 61.842 119.906 +94.3633 62.9353 122.025 +93.9444 63.8424 123.784 +94.1053 65.1717 126.362 +94.3859 66.622 129.174 +94.3498 67.8863 131.625 +94.1667 69.0771 133.934 +94.2587 70.5064 136.705 +94.3035 71.9416 139.488 +93.8946 73.0664 141.669 +93.95 74.5905 144.624 +93.7082 75.9212 147.204 +93.8591 77.6159 150.489 +93.6663 79.0763 153.321 +93.8943 80.9455 156.945 +93.6888 82.4967 159.953 +93.749 84.3389 163.525 +93.7015 86.1463 167.029 +93.5484 87.9189 170.466 +93.4209 89.779 174.073 +93.1873 91.6034 177.61 +93.1816 93.7243 181.722 +93.224 95.9782 186.092 +93.2275 98.2811 190.557 +93.5801 101.055 195.936 +91.5379 101.299 196.408 +89.044 101.024 195.875 +87.8503 102.229 198.211 +87.6926 104.716 203.034 +87.5518 107.338 208.118 +87.6256 110.355 213.967 +90.1279 116.664 226.2 +87.8383 116.934 226.722 +87.1319 119.367 231.441 +87.1428 122.937 238.362 +87.2348 126.822 245.895 +91.6878 137.467 266.535 +91.6234 141.784 274.905 +91.4565 146.199 283.466 +91.4222 151.109 292.985 +91.3631 156.295 303.041 +91.2385 161.714 313.547 +91.011 167.321 324.418 +90.6935 173.161 335.742 +90.6328 179.949 348.902 +88.7402 183.481 355.752 +86.4705 186.475 361.556 +89.6358 201.951 391.563 +88.3255 208.286 403.846 +83.7372 207.099 401.545 +80.2776 208.69 404.63 +75.4433 206.652 400.679 +71.9286 208.169 403.619 +67.3863 206.68 400.733 +63.6995 207.759 402.825 +59.1806 206.052 399.514 +55.7065 207.964 403.222 +51.2358 206.13 399.665 +47.6859 207.968 403.229 +43.2935 206.097 399.602 +39.5949 207.45 402.225 +35.3301 205.773 398.973 +31.6694 207.598 402.512 +27.4535 205.749 398.928 +23.7082 207.362 402.054 +19.572 205.48 398.405 +15.792 207.291 401.917 +11.7456 205.605 398.648 +7.88151 206.973 401.301 +3.90774 205.255 397.97 +2.43139e-14 206.867 401.095 +-3.89902 204.797 397.081 +-7.88325 207.019 401.39 +-11.6959 204.735 396.96 +-15.7292 206.466 400.318 +-19.5371 205.114 397.695 +-23.6454 206.813 400.99 +-27.3497 204.972 397.42 +-31.523 206.638 400.65 +-35.0712 204.265 396.049 +-39.3682 206.263 399.923 +-42.9485 204.455 396.418 +-47.3096 206.327 400.048 +-50.8056 204.399 396.309 +-55.1459 205.871 399.164 +-58.5932 204.007 395.55 +-63.1289 205.898 399.217 +-66.4847 203.915 395.371 +-70.9274 205.271 398.001 +-74.4035 203.805 395.157 +-79.062 205.53 398.503 +-82.4616 203.944 395.428 +-87.0471 205.271 398.001 +-90.4134 203.703 394.959 +-95.0364 204.947 397.372 +-98.3285 203.306 394.191 +-103.298 205.094 397.657 +-106.498 203.336 394.248 +-111.599 205.17 397.804 +-114.824 203.518 394.601 +-112.586 192.602 373.436 +-113.523 187.638 363.812 +-116.236 185.811 360.27 +-119.968 185.647 359.95 +-123.79 185.598 359.856 +-131.529 191.216 370.75 +-143.353 202.236 392.115 +-142.851 195.699 379.441 +-148.459 197.634 383.192 +-1093.65 1415.66 2744.82 +-162.357 204.471 396.449 +-164.843 202.097 391.845 +-164.455 196.38 380.761 +-162.03 188.55 365.579 +-164.003 186.067 360.765 +-167.998 185.912 360.464 +-172.273 186.034 360.702 +-141.955 149.649 290.155 +-142.724 146.94 284.902 +-144.023 144.862 280.873 +-148.339 145.817 282.726 +-435.548 418.569 811.564 +-436.968 410.672 796.252 +-438.836 403.452 782.254 +-439.69 395.555 766.943 +-441.801 389.024 754.28 +-443.416 382.264 741.172 +-446.048 376.568 730.129 +-448.013 370.48 718.324 +-449.681 364.326 706.391 +-451.55 358.504 695.103 +-454.247 353.484 685.371 +-456.015 347.882 674.509 +-462.202 345.732 670.34 +-471.31 345.736 670.348 +-480.668 345.848 670.564 +-483.204 341.067 661.296 +-488.354 338.204 655.743 +-475.482 323.127 626.511 +-473.516 315.81 612.325 +-475.724 311.426 603.825 +-479.254 307.982 597.146 +-481.631 303.865 589.164 +-484.84 300.342 582.334 +-487.109 296.305 574.506 +-490.053 292.745 567.603 +-493.022 289.256 560.839 +-495.708 285.659 553.865 +-497.415 281.563 545.924 +-501.293 278.749 540.467 +-503.238 274.908 533.019 +-506.894 272.048 527.474 +-509.627 268.73 521.04 +-512.47 265.514 514.805 +-514.829 262.091 508.169 +-518.245 259.244 502.649 +-520.91 256.055 496.466 +-523.631 252.931 490.408 +-526.759 250.035 484.794 +-529.887 247.167 479.232 +-532.027 243.871 472.842 +-535.865 241.38 468.013 +-134.804 59.6716 115.697 +-140.142 60.9601 118.196 +-141.078 60.3033 116.922 +-142.221 59.7367 115.824 +-141.569 58.4294 113.289 +-142.451 57.7698 112.01 +-143.168 57.0474 110.609 +-149.04 58.3483 113.131 +-155.89 59.9595 116.255 +-156.64 59.188 114.76 +-157.683 58.5302 113.484 +-159.182 58.0398 112.533 +-161.069 57.6832 111.842 +-566.613 199.294 386.411 +-576.535 199.144 386.12 +-2633.84 893.357 1732.13 +-384.849 128.168 248.504 +-2667.45 872.148 1691.01 +-582.745 187.039 362.65 +-586.283 184.701 358.116 +-590.109 182.451 353.755 +-593.893 180.185 349.361 +-597.301 177.802 344.741 +-601.169 175.554 340.382 +-603.641 172.9 335.236 +-607.762 170.718 331.005 +-611.332 168.375 326.462 +-614.945 166.039 321.934 +-382.783 101.302 196.415 +-380.258 98.6161 191.207 +-378.973 96.2912 186.699 +-377.276 93.8966 182.056 +-376.842 91.8458 178.08 +-382.39 91.2454 176.916 +-381.974 89.2129 172.975 +-381.242 87.1291 168.935 +-380.01 84.9577 164.725 +-382.064 83.5331 161.962 +-381.465 81.5369 158.092 +-380.546 79.4948 154.132 +-381.131 77.7832 150.814 +-380.672 75.8717 147.108 +-381.549 74.2385 143.941 +-382.486 72.6218 140.806 +-114.414 21.1894 41.0841 +-112.581 20.3276 39.4133 +-110.256 19.4002 37.6151 +-109.497 18.7658 36.3849 +-109.286 18.233 35.3519 +-108.592 17.6269 34.1767 +-108.64 17.147 33.2464 +-109.152 16.7409 32.459 +-108.801 16.2045 31.4188 +-108.819 15.7273 30.4937 +-109.306 15.3182 29.7005 +-109.497 14.8674 28.8264 +-109.488 14.3909 27.9026 +-109.565 13.9279 27.0048 +-110.309 13.5484 26.269 +-111.047 13.1641 25.5238 +-111.972 12.797 24.8121 +-112.795 12.4128 24.0672 +-114.099 12.0746 23.4114 +-115.691 11.7566 22.7949 +-118.16 11.5126 22.3217 +-126.704 11.8163 22.9106 +-158.042 14.0816 27.3028 +-160.664 13.6494 26.4647 +-160.622 12.9823 25.1713 +-165.4 12.6873 24.5994 +-856.326 62.1698 120.541 +-866.279 59.3448 115.064 +-379.174 24.4269 47.3613 +-380.12 22.9391 44.4766 +-381.435 21.468 41.6243 +-403.887 21.0934 40.898 +-405.069 19.5153 37.8382 +-404.728 17.8635 34.6356 +-403.558 16.184 31.3791 +-404.449 14.5907 28.2899 +-404.213 12.9563 25.1209 +-404.544 11.3417 21.9905 +-404.145 9.7087 18.8242 +-404.814 8.1017 15.7084 +-403.854 6.4645 12.534 +-147.15 1.76626 3.4246 +-145.778 1.16638 2.26149 +-145.594 0.58241 1.12924 +119.8 1.77636e-15 -1.13687e-13 +119.795 0.487573 0.92478 +119.882 0.97592 1.85103 +120.459 1.47111 2.79026 +120.327 1.95968 3.71693 +120.385 2.45136 4.6495 +119.436 2.91925 5.53695 +120.175 3.42801 6.50191 +120.107 3.91698 7.42934 +120.826 4.43492 8.41172 +120.54 4.91836 9.32865 +120.343 5.40432 10.2504 +121.133 5.93777 11.2622 +120.918 6.42523 12.1867 +120.793 6.91712 13.1197 +120.361 7.39022 14.017 +120.318 7.88626 14.9579 +120.759 8.417 15.9645 +120.3 8.88627 16.8546 +120.721 9.42173 17.8702 +120.344 9.8965 18.7707 +120.94 10.4539 19.828 +120.642 10.9368 20.7439 +120.335 11.4181 21.6567 +120.214 11.9171 22.6032 +120.865 12.4968 23.7026 +120.53 12.9777 24.6148 +120.866 13.5331 25.6682 +120.899 14.0583 26.6645 +120.728 14.5615 27.6188 +121.224 15.1489 28.7329 +120.839 15.6292 29.6439 +121.407 16.2361 30.795 +121.195 16.7428 31.7561 +120.877 17.2355 32.6905 +121.217 17.8249 33.8085 +120.879 18.3176 34.743 +121.67 18.9864 36.0116 +121.31 19.4809 36.9494 +121.412 20.0517 38.0321 +121.596 20.6408 39.1494 +121.861 21.2492 40.3034 +121.459 21.7444 41.2426 +121.699 22.3575 42.4056 +121.832 22.9568 43.5422 +118.996 22.9877 43.6008 +116.076 22.9791 43.5845 +112.982 22.9114 43.456 +109.717 22.7823 43.2111 +106.92 22.7251 43.1027 +104.225 22.6666 42.9918 +101.631 22.608 42.8807 +99.0471 22.5301 42.7329 +97.0109 22.5578 42.7854 +96.496 22.9306 43.4925 +97.4825 23.667 44.8893 +96.9476 24.041 45.5985 +97.8123 24.7684 46.9783 +96.9079 25.0525 47.5171 +96.6095 25.4919 48.3505 +96.5618 26.0007 49.3156 +96.8471 26.6057 50.4631 +96.3456 26.9989 51.2088 +96.5189 27.5849 52.3203 +95.999 27.9767 53.0635 +96.231 28.5919 54.2302 +96.3632 29.1856 55.3564 +96.564 29.8084 56.5376 +95.7538 30.122 57.1325 +96.5876 30.9596 58.7212 +96.0046 31.3516 59.4646 +96.147 31.9848 60.6657 +96.1921 32.5943 61.8216 +96.3021 33.2342 63.0353 +96.3953 33.8775 64.2554 +95.6784 34.2401 64.9432 +95.6645 34.8579 66.115 +95.713 35.5072 67.3465 +95.6667 36.1302 68.5281 +95.6814 36.7852 69.7704 +95.679 37.443 71.0181 +96.2674 38.3458 72.7306 +96.2255 39.0116 73.9933 +95.4919 39.4017 74.7333 +95.94 40.2882 76.4146 +95.9198 40.9922 77.7499 +95.8073 41.6673 79.0303 +95.6043 42.3124 80.254 +96.1757 43.3155 82.1565 +96.0035 43.9995 83.4538 +95.8837 44.7183 84.8172 +95.5339 45.3396 85.9957 +95.3071 46.0287 87.3026 +95.7501 47.0578 89.2545 +96.0936 48.0596 91.1546 +95.7311 48.7237 92.4143 +95.3511 49.3888 93.6757 +95.6161 50.4036 95.6006 +95.719 51.3541 97.4033 +94.7545 51.7416 98.1384 +95.3254 52.9827 100.492 +94.7757 53.6207 101.702 +94.9015 54.657 103.668 +94.9335 55.6616 105.573 +94.9966 56.7072 107.557 +94.2971 57.3135 108.707 +94.7257 58.6264 111.197 +94.8742 59.797 113.417 +94.6334 60.747 115.219 +94.7127 61.9269 117.457 +94.468 62.9213 119.343 +94.4766 64.1105 121.598 +94.0562 65.034 123.35 +93.9949 66.2312 125.621 +94.3859 67.7847 128.567 +94.2961 69.0313 130.932 +94.0077 70.1641 133.08 +94.2587 71.7368 136.063 +93.8914 72.8775 138.227 +93.9454 74.3821 141.081 +93.9 75.8521 143.869 +93.8067 77.3273 146.667 +93.8591 78.9703 149.783 +93.714 80.4973 152.679 +93.8474 82.3166 156.13 +93.6888 83.9364 159.202 +93.7036 85.7692 162.679 +93.7015 87.6497 166.245 +93.5484 89.4532 169.666 +93.4209 91.3457 173.256 +93.5254 93.5401 177.418 +93.1816 95.3599 180.869 +93.224 97.6531 185.219 +93.387 100.167 189.987 +93.3457 102.561 194.528 +90.1219 101.472 192.463 +89.7183 103.565 196.432 +87.8503 104.013 197.281 +87.8001 106.674 202.328 +87.9721 109.736 208.136 +87.3519 111.93 212.298 +88.8594 117.029 221.97 +88.2941 119.592 226.83 +87.3857 121.804 231.025 +87.3282 125.349 237.749 +87.5355 129.48 245.584 +91.8632 140.134 265.792 +91.5949 144.214 273.53 +91.484 148.795 282.22 +91.4222 153.746 291.61 +91.2855 158.887 301.362 +91.2385 164.536 312.075 +91.011 170.241 322.895 +90.8102 176.409 334.596 +90.6103 183.043 347.178 +88.1126 185.363 351.578 +86.72 190.276 360.897 +89.7355 205.704 390.158 +87.1425 209.083 396.567 +82.2429 206.953 392.528 +79.0099 208.979 396.372 +74.2219 206.855 392.342 +70.9274 208.854 396.133 +66.2038 206.597 391.853 +62.8506 208.568 395.59 +58.3322 206.642 391.939 +54.7559 207.983 394.481 +50.3754 206.205 391.109 +46.8288 207.794 394.123 +42.498 205.841 390.419 +38.9412 207.586 393.728 +34.8123 206.295 391.28 +31.1951 208.057 394.623 +27.014 205.989 390.699 +23.3366 207.674 393.896 +19.2449 205.571 389.907 +15.5407 207.553 393.666 +11.5493 205.697 390.145 +7.76458 207.461 393.491 +3.84317 205.386 389.556 +2.39808e-14 207.12 392.844 +-3.84317 205.386 389.556 +-7.75061 207.088 392.784 +-11.5283 205.324 389.437 +-15.4954 206.947 392.517 +-19.2143 205.245 389.289 +-23.2424 206.836 392.305 +-26.8919 205.057 388.932 +-30.9928 206.708 392.064 +-34.5612 204.807 388.458 +-38.7233 206.424 391.525 +-42.2392 204.588 388.041 +-46.4524 206.124 390.956 +-49.9792 204.583 388.033 +-54.3659 206.502 391.672 +-57.6273 204.145 387.203 +-62.099 206.074 390.861 +-65.4057 204.107 387.129 +-69.8011 205.537 389.842 +-73.1986 204.003 386.933 +-77.7944 205.764 390.273 +-81.113 204.11 387.136 +-85.6351 205.466 389.707 +-88.958 203.921 386.777 +-93.7058 205.604 389.97 +-96.7269 203.485 385.95 +-101.79 205.628 390.015 +-104.77 203.528 386.033 +-109.833 205.447 389.672 +-112.996 203.773 386.497 +-111.965 194.882 369.632 +-113.763 191.317 362.871 +-116.732 189.861 360.109 +-120.678 190.005 360.382 +-124.433 189.818 360.028 +-134.205 198.512 376.518 +-143.291 205.676 390.106 +-143.104 199.468 378.331 +-145.366 196.894 373.448 +-149.312 196.647 372.98 +-1120.56 1435.85 2723.38 +-162.706 202.959 384.952 +-161.337 196.019 371.789 +-161.884 191.666 363.533 +-164.864 190.308 360.958 +-168.802 190.061 360.488 +-173.211 190.311 360.963 +-141.955 152.261 288.793 +-142.643 149.419 283.403 +-144.728 148.111 280.923 +-148.888 148.912 282.441 +-435.936 426.252 808.473 +-437.494 418.341 793.469 +-439.103 410.744 779.058 +-440.098 402.832 764.053 +-442.401 396.351 751.759 +-444.261 389.676 739.099 +-446.048 383.14 726.702 +-447.673 376.66 714.411 +-450.321 371.211 704.076 +-452.15 365.244 692.759 +-454.805 360.095 682.993 +-457.148 354.833 673.011 +-464.553 353.555 670.587 +-474.172 353.905 671.252 +-481.582 352.552 668.686 +-484.838 348.193 660.417 +-490.838 345.856 655.986 +-494.271 341.757 648.211 +-494.02 335.236 635.842 +-476.585 317.434 602.077 +-479.603 313.584 594.775 +-482.395 309.658 587.329 +-485.375 305.921 580.24 +-487.711 301.848 572.515 +-490.662 298.224 565.641 +-493.391 294.525 558.626 +-496.269 290.972 551.888 +-498.548 287.129 544.599 +-501.484 283.722 538.136 +-504.267 280.277 531.602 +-507.479 277.114 525.603 +-510.217 273.736 519.196 +-513.067 270.461 512.985 +-515.632 267.081 506.572 +-518.651 263.975 500.682 +-521.115 260.626 494.33 +-524.389 257.717 488.812 +-527.593 254.802 483.283 +-530.869 251.946 477.867 +-532.876 248.523 471.374 +-537.078 246.149 466.87 +-141.278 63.6288 120.685 +-142.246 62.9548 119.406 +-138.592 60.2745 114.323 +-141.484 60.4644 114.683 +-142.015 59.6365 113.113 +-142.376 58.7472 111.426 +-145.433 58.9612 111.832 +-150.789 60.0633 113.922 +-155.89 61.0058 115.71 +-156.563 60.1911 114.164 +-158.615 59.9038 113.62 +-159.887 59.3143 112.501 +-161.385 58.8045 111.535 +-572.722 204.958 388.744 +-570.146 200.374 380.049 +-2634 909.004 1724.11 +-2650.74 898.193 1703.6 +-2667.45 887.368 1683.07 +-583.072 190.41 361.151 +-587.849 188.426 357.388 +-590.938 185.896 352.589 +-594.394 183.484 348.014 +-597.469 180.956 343.22 +-601.591 178.743 339.022 +-605.252 176.386 334.552 +-609.723 174.258 330.515 +-611.76 171.434 325.158 +-615.806 169.174 320.872 +-380.705 102.51 194.432 +-379.997 100.268 190.179 +-377.486 97.5873 185.094 +-376.397 95.3128 180.78 +-376.224 93.2957 176.954 +-376.536 91.4162 173.389 +-381.173 90.579 171.801 +-380.795 88.5456 167.945 +-381.268 86.7267 164.495 +-381.162 84.7903 160.822 +-381.465 82.9598 157.35 +-380.273 80.8237 153.298 +-380.766 79.0645 149.962 +-381.314 77.3259 146.664 +-380.629 75.3517 142.92 +-114.561 22.131 41.9759 +-113.209 21.332 40.4604 +-111.929 20.5628 39.0014 +-110.536 19.7889 37.5336 +-109.403 19.0769 36.1832 +-109.568 18.599 35.2768 +-108.687 17.95 34.0458 +-108.546 17.4311 33.0615 +-108.678 16.959 32.1662 +-108.801 16.4872 31.2714 +-109.487 16.0999 30.5367 +-109.21 15.5719 29.5352 +-109.401 15.1136 28.666 +-109.776 14.6806 27.8448 +-110.625 14.3081 27.1382 +-110.888 13.8573 26.2831 +-111.918 13.4989 25.6033 +-112.554 13.088 24.824 +-113.476 12.7056 24.0988 +-114.001 12.2748 23.2816 +-116.472 12.0425 22.841 +-118.16 11.7135 22.217 +-142.579 13.5288 25.66 +-159.024 14.4163 27.3435 +-161.45 13.9555 26.4695 +-163.478 13.4437 25.4987 +-163.625 12.7702 24.2212 +-857.313 63.3275 120.113 +-866.872 60.4219 114.602 +-379.174 24.8531 47.139 +-380.913 23.3881 44.3603 +-382.726 21.9165 41.5691 +-403.39 21.4351 40.6559 +-403.378 19.773 37.5035 +-404.131 18.1484 34.4222 +-404.654 16.5111 31.3167 +-404.948 14.8636 28.1918 +-404.512 13.1922 25.0216 +-403.945 11.5225 21.8548 +-403.746 9.86833 18.7173 +-403.915 8.22476 15.5999 +-403.454 6.57079 12.4628 +-145.95 1.78243 3.38073 +-144.878 1.17941 2.23698 +-146.694 0.597051 1.13243 +119.8 1.77636e-15 -1.13687e-13 +119.895 0.496307 0.92111 +119.882 0.992576 1.84215 +120.559 1.49746 2.77919 +120.327 1.99313 3.69911 +120.385 2.4932 4.6272 +120.235 2.98894 5.54725 +120.175 3.48651 6.47072 +120.206 3.98714 7.39985 +120.826 4.51061 8.37138 +120.739 5.0106 9.29931 +120.343 5.49656 10.2012 +121.133 6.03911 11.2082 +120.918 6.53489 12.1283 +120.793 7.03518 13.0568 +120.361 7.51635 13.9498 +120.318 8.02086 14.8861 +120.66 8.55363 15.8749 +120.399 9.04538 16.7876 +120.721 9.58253 17.7845 +120.344 10.0654 18.6807 +120.055 10.5545 19.5885 +120.544 11.1144 20.6275 +120.335 11.613 21.5529 +120.214 12.1205 22.4948 +120.768 12.6998 23.5699 +120.627 13.2099 24.5165 +120.866 13.7641 25.5451 +121.093 14.3212 26.5792 +120.631 14.7981 27.4643 +121.224 15.4074 28.5951 +120.743 15.8833 29.4782 +121.503 16.5263 30.6716 +121.099 17.0151 31.5788 +121.642 17.6406 32.7396 +121.313 18.1434 33.6729 +120.879 18.6302 34.5764 +121.006 19.2051 35.6434 +121.31 19.8134 36.7722 +121.129 20.3464 37.7615 +121.408 20.9606 38.9014 +121.58 21.562 40.0176 +121.272 22.0815 40.9817 +121.14 22.6348 42.0086 +121.832 23.3486 43.3333 +119.55 23.4889 43.5938 +116.168 23.3899 43.4099 +113.807 23.4726 43.5635 +110.265 23.2868 43.2187 +108.558 23.467 43.5531 +104.225 23.0535 42.7856 +102.173 23.1164 42.9025 +99.6763 23.0602 42.7982 +97.7268 23.1121 42.8945 +96.5851 23.3435 43.3239 +96.8616 23.9176 44.3894 +96.9476 24.4513 45.3798 +97.1972 25.0327 46.459 +97.0828 25.5261 47.3746 +96.1743 25.8102 47.9019 +96.5618 26.4445 49.079 +96.1578 26.8672 49.8637 +96.3456 27.4597 50.9632 +96.4336 28.0309 52.0234 +96.6775 28.6553 53.1821 +96.1466 29.0544 53.9229 +96.2794 29.6579 55.043 +96.4806 30.2909 56.2178 +96.0026 30.7157 57.0061 +95.8459 31.2462 57.9907 +96.0046 31.8867 59.1794 +95.5772 32.3379 60.0168 +96.1921 33.1505 61.5251 +95.5786 33.5474 62.2616 +95.5967 34.1702 63.4174 +95.6784 34.8244 64.6317 +95.6645 35.4528 65.7979 +95.6347 36.0837 66.9687 +96.3661 37.0155 68.6981 +96.3759 37.6845 69.9398 +96.3684 38.3564 71.1868 +95.583 38.723 71.8672 +96.2255 39.6774 73.6384 +95.4919 40.0742 74.3749 +96.0143 41.0075 76.107 +95.9198 41.6918 77.377 +95.8073 42.3784 78.6513 +95.6769 43.0672 79.9297 +95.5283 43.7582 81.212 +95.9322 44.7171 82.9918 +95.1766 45.1461 83.7879 +95.5339 46.1135 85.5833 +95.3071 46.8142 86.8839 +95.6813 47.8263 88.7622 +94.866 48.2551 89.558 +95.7311 49.5553 91.971 +95.3511 50.2317 93.2264 +95.6161 51.2638 95.142 +95.3254 52.0157 96.5374 +95.4039 52.9857 98.3377 +95.1326 53.7783 99.8087 +94.712 54.4993 101.147 +94.9015 55.5898 103.171 +94.8712 56.5741 104.997 +94.4425 57.3387 106.417 +94.358 58.3296 108.256 +94.3646 59.3997 110.242 +94.2199 60.3982 112.095 +94.8098 61.8986 114.879 +94.6546 62.9454 116.822 +94.5254 64.034 118.843 +94.4199 65.1658 120.943 +94.224 66.262 122.978 +94.1604 67.4801 125.238 +94.4404 68.9809 128.024 +94.3498 70.2498 130.379 +94.0077 71.3616 132.442 +93.7885 72.5973 134.735 +93.8399 74.0806 137.488 +93.9454 75.6516 140.404 +93.9 77.1467 143.179 +93.9052 78.7296 146.116 +93.8591 80.3181 149.065 +93.6185 81.7876 151.792 +93.4718 83.3866 154.76 +93.6426 85.3272 158.361 +93.7036 87.2331 161.898 +93.6569 89.1034 165.37 +93.5484 90.9799 168.852 +93.3779 92.8621 172.345 +93.2719 94.8785 176.088 +93.223 97.0306 180.082 +93.3054 99.4061 184.491 +91.5129 99.832 185.281 +90.337 100.95 187.355 +88.0937 100.881 187.228 +90.2427 105.948 196.632 +87.7404 105.655 196.089 +87.6926 108.362 201.111 +87.5518 111.075 206.148 +87.4546 113.974 211.528 +87.6243 117.372 217.834 +88.7173 122.216 226.824 +87.4174 123.928 230.001 +87.2355 127.352 236.357 +91.7754 138.068 256.245 +91.7755 142.389 264.264 +91.5665 146.629 272.134 +91.484 151.335 280.867 +91.4757 156.462 290.382 +91.3631 161.737 300.172 +91.2385 167.344 310.578 +90.9868 173.1 321.261 +90.7402 179.282 332.734 +89.5755 184.041 341.567 +86.4027 184.868 343.102 +89.6099 199.973 371.136 +88.3997 206.1 382.508 +85.3298 208.228 386.456 +80.6028 206.288 382.855 +77.4471 208.342 386.667 +72.687 206.034 382.385 +69.4882 208.108 386.233 +64.6962 205.338 381.093 +61.5423 207.712 385.499 +57.1183 205.795 381.941 +53.7688 207.719 385.511 +49.3566 205.483 381.361 +45.9507 207.378 384.878 +41.6066 204.963 380.396 +38.3137 207.726 385.525 +34.0356 205.135 380.715 +30.6022 207.586 385.265 +26.4462 205.101 380.653 +22.9127 207.382 384.885 +18.8697 205.004 380.473 +15.2546 207.208 384.563 +11.3163 204.987 380.441 +7.61972 207.066 384.299 +3.7655 204.67 379.853 +2.10942e-14 206.765 383.741 +-3.76463 204.623 379.765 +-7.6075 206.734 383.683 +-11.2954 204.608 379.737 +-15.2092 206.592 383.42 +-18.7825 204.056 378.714 +-22.8132 206.482 383.215 +-26.2997 203.964 378.543 +-30.4068 206.261 382.806 +-33.808 203.763 378.17 +-37.9999 206.025 382.368 +-41.3766 203.83 378.294 +-45.5744 205.68 381.727 +-48.9491 203.786 378.212 +-53.2569 205.742 381.842 +-56.557 203.773 378.189 +-60.93 205.645 381.662 +-64.0606 203.321 377.349 +-68.6434 205.578 381.538 +-71.6637 203.134 377.002 +-76.3357 205.352 381.118 +-79.4547 203.349 377.402 +-84.2422 205.573 381.529 +-86.9244 202.66 376.123 +-91.9593 205.216 380.867 +-94.7356 202.697 376.192 +-99.7208 204.886 380.253 +-102.856 203.22 377.161 +-107.873 205.226 380.884 +-110.793 203.21 377.143 +-111.887 198.07 367.604 +-114.244 195.405 362.658 +-117.201 193.876 359.82 +-121.388 194.385 360.764 +-124.989 193.92 359.901 +-135.859 204.388 379.33 +-142.148 207.517 385.137 +-143.422 203.322 377.351 +-143.087 197.114 365.83 +-145.139 194.414 360.818 +-155.859 203.121 376.978 +-159.59 202.468 375.767 +-160.047 197.77 367.047 +-162.69 195.908 363.592 +-165.651 194.48 360.941 +-169.414 194.006 360.061 +-175.008 195.568 362.96 +-142.553 155.512 288.619 +-142.358 151.666 281.481 +-146.428 152.409 282.86 +-150.325 152.915 283.799 +-436.71 434.298 806.026 +-437.494 425.481 789.663 +-439.371 418.009 775.794 +-440.916 410.468 761.8 +-442.632 403.326 748.545 +-444.683 396.704 736.254 +-447.432 390.888 725.46 +-449.273 384.457 713.526 +-451.208 378.29 702.079 +-452.75 371.971 690.352 +-455.516 366.813 680.779 +-458.075 361.62 671.142 +-467.95 362.218 672.251 +-476.98 362.077 671.989 +-483.194 359.769 667.706 +-483.639 353.26 655.625 +-490.893 351.798 652.912 +-495.333 348.337 646.489 +-480.652 331.731 615.67 +-477.101 323.202 599.839 +-479.893 319.129 592.281 +-483.277 315.519 585.58 +-486.268 311.714 578.519 +-488.253 307.341 570.402 +-491.818 304.028 564.255 +-494.315 300.112 556.987 +-497.14 296.458 550.206 +-499.366 292.509 542.876 +-502.438 289.113 536.573 +-505.038 285.496 529.861 +-508.648 282.493 524.287 +-511.004 278.838 517.503 +-514.061 275.611 511.514 +-516.903 272.309 505.386 +-520.002 269.18 499.578 +-522.956 266.011 493.697 +-525.765 262.804 487.745 +-528.635 259.662 481.915 +-532.13 256.855 476.705 +-534.361 253.469 470.42 +-537.506 250.549 465.001 +-140.703 64.451 119.616 +-142.536 64.1602 119.077 +-142.102 62.8558 116.656 +-140.378 61.0153 113.24 +-141.718 60.5272 112.334 +-142.526 59.8129 111.008 +-147.017 60.6207 112.508 +-155.427 62.9672 116.863 +-156.12 62.1386 115.325 +-157.257 61.4901 114.121 +-158.382 60.8365 112.908 +-160.278 60.4741 112.236 +-162.173 60.1003 111.542 +-581.449 211.632 392.774 +-567.111 202.709 376.213 +-575.883 202.131 375.141 +-578.528 199.377 370.03 +-581.848 196.864 365.366 +-383.117 127.247 236.162 +-383.466 125.012 232.013 +-383.679 122.756 227.827 +-595.645 187.008 347.074 +-599.398 184.639 342.676 +-603.531 182.38 338.484 +-606.1 179.648 333.414 +-610.149 177.356 329.16 +-613.389 174.823 324.46 +-617.357 172.494 320.137 +-380.445 104.189 193.367 +-377.125 101.209 187.836 +-376.699 99.046 183.822 +-381.143 98.1619 182.181 +-376.224 94.888 176.105 +-375.649 92.7577 172.152 +-378.678 91.522 169.858 +-380.437 89.9724 166.982 +-381.358 88.2278 163.744 +-380.44 86.0738 159.747 +-381.465 84.3756 156.595 +-381.82 82.5376 153.184 +-381.223 80.5102 149.421 +-379.479 78.2671 145.258 +-382.01 76.9157 142.75 +-114.653 22.5269 41.8083 +-113.116 21.6783 40.2334 +-111.371 20.8094 38.6208 +-109.882 20.0076 37.1327 +-110.246 19.552 36.2872 +-109.568 18.9165 35.1076 +-109.346 18.3672 34.0882 +-109.396 17.8675 33.1609 +-109.057 17.3087 32.1237 +-109.467 16.8713 31.3119 +-109.487 16.3747 30.3903 +-109.593 15.8931 29.4966 +-109.401 15.3716 28.5285 +-109.872 14.9442 27.7354 +-110.914 14.5903 27.0785 +-110.599 14.057 26.0887 +-111.627 13.6936 25.4144 +-112.845 13.3458 24.7689 +-112.989 12.8671 23.8805 +-114.586 12.5483 23.2887 +-117.058 12.3097 22.8458 +-119.432 12.0416 22.3484 +-159.336 15.3768 28.5382 +-159.122 14.6714 27.2291 +-162.925 14.3234 26.5831 +-163.872 13.7061 25.4376 +-3231.56 256.513 476.069 +-858.597 64.5046 119.716 +-868.059 61.5371 114.208 +-379.966 25.3301 47.0109 +-380.417 23.7563 44.0901 +-384.115 22.3715 41.5199 +-405.576 21.9191 40.6802 +-404.969 20.1898 37.4709 +-404.131 18.4582 34.2571 +-404.953 16.8053 31.1894 +-403.452 15.0614 27.953 +-404.512 13.4173 24.9016 +-3270.39 94.8804 176.091 +-403.746 10.0368 18.6275 +-404.814 8.38377 15.5597 +-403.454 6.68293 12.403 +-146.85 1.82402 3.38526 +-145.678 1.20616 2.23855 +-146.094 0.60476 1.12239 +119.8 1.77636e-15 -1.13687e-13 +119.895 0.504596 0.916595 +119.882 1.00915 1.83312 +120.559 1.52248 2.76556 +120.427 2.0281 3.68403 +120.385 2.53484 4.60452 +120.335 3.04138 5.52464 +120.175 3.54475 6.43901 +120.206 4.05374 7.36358 +120.826 4.58595 8.33035 +120.739 5.09429 9.25373 +120.343 5.58837 10.1512 +121.133 6.13998 11.1532 +120.918 6.64404 12.0688 +120.594 7.14091 12.9714 +120.361 7.64189 13.8814 +120.318 8.15482 14.8132 +120.66 8.6965 15.7971 +120.399 9.19646 16.7053 +120.721 9.74258 17.6973 +120.442 10.2419 18.6044 +120.055 10.7308 19.4925 +120.74 11.3185 20.5599 +120.335 11.807 21.4472 +121.095 12.4132 22.5485 +120.768 12.9119 23.4544 +120.627 13.4305 24.3964 +120.866 13.994 25.4199 +120.899 14.5371 26.4065 +120.631 15.0453 27.3297 +121.224 15.6648 28.4549 +120.743 16.1486 29.3337 +121.407 16.789 30.4971 +121.099 17.2993 31.424 +120.781 17.8083 32.3486 +121.313 18.4465 33.5078 +121.069 18.9712 34.461 +121.006 19.5259 35.4687 +120.932 20.0815 36.4779 +121.129 20.6863 37.5765 +121.502 21.3272 38.7407 +121.58 21.9222 39.8215 +121.179 22.433 40.7494 +121.14 23.0129 41.8027 +121.554 23.6844 43.0225 +119.55 23.8813 43.3801 +117.641 24.082 43.7447 +113.807 23.8647 43.35 +111.909 24.0288 43.6482 +108.558 23.8589 43.3396 +105.766 23.785 43.2053 +102.173 23.5026 42.6922 +101.204 23.8048 43.2412 +97.7268 23.4982 42.6842 +95.9614 23.5801 42.8331 +96.8616 24.3171 44.1718 +97.1242 24.905 45.2397 +97.1972 25.4508 46.2312 +97.5201 26.0693 47.3548 +96.1743 26.2413 47.6671 +97.0814 27.0308 49.1013 +96.1578 27.316 49.6193 +96.3456 27.9183 50.7134 +96.4336 28.4991 51.7684 +95.999 28.9295 52.5501 +96.1466 29.5397 53.6586 +96.3632 30.1795 54.8209 +96.4806 30.7969 55.9423 +96.5829 31.4175 57.0696 +95.8459 31.7681 57.7065 +96.0046 32.4193 58.8893 +95.5772 32.878 59.7227 +95.5449 33.4774 60.8115 +95.5786 34.1078 61.9565 +96.3953 35.0311 63.6338 +95.6784 35.4061 64.3149 +96.2949 36.2825 65.9068 +95.6347 36.6864 66.6405 +95.7444 37.391 67.9204 +96.3759 38.314 69.597 +95.679 38.7181 70.3311 +95.583 39.3698 71.515 +96.3009 40.3717 73.3349 +95.4919 40.7435 74.0103 +96.0143 41.6924 75.734 +95.9198 42.3882 76.9977 +95.8073 43.0862 78.2658 +95.6769 43.7866 79.538 +95.4564 44.4556 80.7532 +95.9322 45.464 82.585 +95.813 46.2071 83.9347 +95.5339 46.8837 85.1638 +95.3766 47.6309 86.5211 +95.6813 48.6251 88.3271 +95.4116 49.3432 89.6315 +95.7311 50.383 91.5202 +95.418 51.1064 92.8343 +95.6161 52.1201 94.6757 +95.3254 52.8845 96.0642 +95.4039 53.8707 97.8557 +94.9397 54.5656 99.118 +94.712 55.4096 100.651 +94.9015 56.5183 102.665 +94.8712 57.519 104.483 +94.504 58.3345 105.964 +94.358 59.3039 107.725 +94.7859 60.6614 110.191 +94.2199 61.407 111.545 +94.1044 62.4646 113.466 +94.6546 63.9968 116.25 +94.468 65.064 118.188 +94.4199 66.2542 120.35 +93.9444 67.1686 122.011 +94.1604 68.6072 124.624 +94.3315 70.0525 127.25 +94.3498 71.4231 129.74 +94.1137 72.6351 131.941 +93.7885 73.8099 134.075 +93.8399 75.3179 136.814 +93.9454 76.9151 139.716 +94 78.5187 142.629 +93.9052 80.0445 145.4 +93.8107 81.6177 148.258 +93.6185 83.1537 151.048 +93.4248 84.737 153.924 +93.6426 86.7523 157.585 +93.7944 88.7759 161.261 +93.6569 90.5916 164.559 +93.5484 92.4995 168.025 +93.3779 94.4131 171.501 +93.1873 96.3759 175.066 +93.223 98.6512 179.199 +91.3937 98.996 179.825 +91.5129 101.499 184.373 +87.9927 99.9721 181.599 +88.0937 102.566 186.311 +90.0929 107.539 195.343 +87.7404 107.42 195.128 +87.621 110.081 199.962 +87.5518 112.931 205.137 +87.3519 115.742 210.244 +87.6243 119.333 216.767 +89.7266 125.67 228.279 +87.4174 125.997 228.873 +92.1798 136.818 248.529 +91.7754 140.374 254.989 +91.6878 144.629 262.718 +91.5665 149.079 270.8 +91.4565 153.816 279.406 +91.4757 159.075 288.958 +91.1561 164.065 298.023 +91.2385 170.139 309.056 +90.7449 175.523 318.837 +90.7402 182.276 331.103 +87.7984 183.403 333.15 +86.4027 187.956 341.42 +89.6723 203.455 369.574 +88.3997 209.543 380.633 +82.4676 204.604 371.662 +80.6028 209.733 380.979 +74.5124 203.795 370.192 +72.687 209.476 380.511 +66.8288 203.486 369.631 +64.6962 208.768 379.225 +59.3434 203.636 369.902 +57.1183 209.233 380.069 +51.831 203.578 369.797 +49.3566 208.915 379.492 +44.2887 203.215 369.139 +41.6066 208.386 378.532 +36.8233 202.981 368.713 +34.0356 208.561 378.849 +29.5209 203.596 369.831 +26.4462 208.527 378.787 +22.0962 203.332 369.351 +18.8697 208.428 378.608 +14.7101 203.15 369.02 +11.3163 208.411 378.577 +7.34572 202.954 368.664 +3.7655 208.089 377.991 +2.28706e-14 202.502 367.844 +-3.76463 208.04 377.904 +-7.33001 202.52 367.875 +-11.2954 208.025 377.876 +-14.6857 202.813 368.408 +-18.7825 207.465 376.858 +-21.9863 202.321 367.514 +-26.2997 207.371 376.688 +-29.3047 202.105 367.123 +-33.808 207.167 376.316 +-36.6141 201.828 366.618 +-41.3766 207.235 376.44 +-44.0169 201.968 366.874 +-48.9491 207.19 376.359 +-51.3192 201.567 366.145 +-56.557 207.177 376.335 +-58.745 201.582 366.172 +-64.0606 206.717 375.499 +-66.1405 201.391 365.824 +-71.6637 206.527 375.154 +-73.5747 201.23 365.533 +-79.4547 206.746 375.552 +-81.1511 201.338 365.729 +-86.9244 206.045 374.28 +-88.7991 201.474 365.975 +-94.7356 206.083 374.348 +-96.324 201.212 365.5 +-102.856 206.614 375.313 +-104.293 201.728 366.437 +-110.793 206.604 375.294 +-111.862 201.332 365.717 +-114.244 198.669 360.881 +-118.221 198.83 361.173 +-121.388 197.631 358.996 +-126.772 199.972 363.248 +-135.859 207.802 377.47 +-137.018 203.369 369.419 +-143.422 206.718 375.502 +-143.12 200.453 364.12 +-145.139 197.661 359.049 +-145.29 192.51 349.693 +-159.59 205.85 373.925 +-160.441 201.569 366.148 +-162.69 199.18 361.809 +-166.475 198.712 360.959 +-169.414 197.246 358.296 +-141.679 160.967 292.396 +-142.553 158.109 287.204 +-144.066 156.05 283.463 +-146.428 154.954 281.473 +-436.015 450.934 819.118 +-436.71 441.552 802.075 +-438.459 433.542 787.525 +-439.371 424.99 771.991 +-441.733 418.097 759.47 +-442.632 410.063 744.876 +-445.341 403.926 733.728 +-447.432 397.417 721.905 +-449.806 391.343 710.871 +-451.208 384.608 698.637 +-454.15 379.353 689.092 +-455.516 372.94 677.442 +-461.062 370.058 672.207 +-467.95 368.268 668.956 +-481.061 371.274 674.416 +-483.194 365.778 664.433 +-484.184 359.565 653.146 +-490.893 357.674 649.712 +-489.797 350.197 636.13 +-480.652 337.272 612.652 +-478.994 329.904 599.267 +-479.893 324.459 589.378 +-484.1 321.335 583.702 +-486.268 316.921 575.683 +-489.938 313.552 569.565 +-491.818 309.106 561.489 +-495.854 306.075 555.983 +-497.14 301.41 547.509 +-501.128 298.444 542.121 +-502.438 293.942 533.943 +-506.581 291.152 528.875 +-508.648 287.212 521.718 +-512.251 284.186 516.222 +-514.061 280.214 509.006 +-518.108 277.502 504.081 +-520.002 273.676 497.129 +-524.32 271.16 492.559 +-525.765 267.193 485.355 +-529.955 264.658 480.749 +-532.13 261.145 474.368 +-536.199 258.589 469.725 +-537.506 254.734 462.722 +-142.357 66.2981 120.43 +-142.536 65.2318 118.493 +-143.126 64.3662 116.921 +-140.378 62.0344 112.685 +-141.941 61.6351 111.96 +-142.526 60.8119 110.464 +-148.753 62.3609 113.278 +-155.427 64.019 116.29 +-156.35 63.2695 114.929 +-157.257 62.5172 113.562 +-159.626 62.3383 113.237 +-160.278 61.4842 111.685 +-569.968 214.756 390.102 +-581.449 215.167 390.849 +-584.681 212.48 385.968 +-575.883 205.507 373.302 +-2650.74 928.78 1687.12 +-581.848 200.153 363.576 +-2683.95 906.326 1646.33 +-383.466 127.1 230.876 +-383.264 124.672 226.466 +-595.645 190.132 345.373 +-601.495 188.379 342.189 +-603.531 185.426 336.825 +-608.22 183.288 332.941 +-610.149 180.318 327.546 +-615.446 178.339 323.952 +-617.357 175.375 318.568 +-380.791 106.025 192.594 +-377.125 102.899 186.915 +-629.464 168.27 305.661 +-381.143 99.8014 181.288 +-652.233 167.248 303.805 +-375.649 94.307 171.308 +-2919.2 717.323 1303.01 +-380.437 91.4751 166.164 +-379.74 89.3209 162.251 +-380.44 87.5114 158.964 +-380.287 85.5202 155.347 +-381.82 83.9162 152.433 +-380.857 81.7768 148.547 +-379.479 79.5743 144.546 +-382.378 78.2761 142.188 +-114.653 22.9031 41.6034 +-113.395 22.0946 40.1346 +-111.371 21.157 38.4315 +-109.696 20.3072 36.8879 +-110.246 19.8786 36.1093 +-109.756 19.2654 34.9955 +-109.346 18.674 33.9211 +-108.546 18.0247 32.7417 +-109.057 17.5978 31.9662 +-108.516 17.004 30.8876 +-109.487 16.6482 30.2413 +-109.019 16.074 29.1983 +-109.401 15.6283 28.3887 +-109.68 15.1673 27.5512 +-110.914 14.834 26.9458 +-110.792 14.3167 26.0062 +-111.627 13.9224 25.2898 +-112.942 13.5804 24.6686 +-112.989 13.0821 23.7634 +-114.391 12.7362 23.1352 +-117.058 12.5153 22.7339 +-120.214 12.3229 22.3845 +-159.336 15.6336 28.3983 +-158.336 14.8428 26.9619 +-162.925 14.5626 26.4528 +-163.183 13.8764 25.2063 +-3231.56 260.797 473.736 +-860.375 65.718 119.376 +-868.059 62.5649 113.649 +-380.461 25.7867 46.8414 +-380.417 24.1531 43.8739 +-900.736 53.3363 96.885 +-405.576 22.2852 40.4808 +-404.77 20.517 37.2689 +-404.131 18.7665 34.0892 +-404.057 17.0482 30.9679 +-403.452 15.313 27.8159 +-404.213 13.6313 24.7612 +-3270.39 96.4651 175.228 +-404.145 10.2145 18.5546 +-404.814 8.5238 15.4834 +-403.454 6.79455 12.3423 +-146.85 1.85449 3.36866 +-145.978 1.22883 2.23216 +-146.094 0.614861 1.11689 +119.7 3.55271e-15 -1.13687e-13 +119.895 0.512845 0.912006 +119.882 1.02565 1.82394 +120.459 1.54608 2.74943 +119.727 2.04928 3.64429 +120.186 2.572 4.57385 +120.335 3.0911 5.49698 +120.275 3.60569 6.41209 +120.107 4.11658 7.32063 +120.826 4.66092 8.28864 +120.54 5.16899 9.19214 +120.343 5.67972 10.1004 +120.138 6.18908 11.0062 +120.719 6.74157 11.9887 +120.594 7.25765 12.9065 +121.055 7.81156 13.8915 +120.813 8.32224 14.7997 +119.968 8.78798 15.6279 +120.3 9.3391 16.608 +120.721 9.90184 17.6087 +120.344 10.4008 18.496 +120.842 10.9777 19.5219 +120.74 11.5035 20.457 +120.433 12.0097 21.3572 +121.095 12.6161 22.4356 +120.67 13.1123 23.318 +120.53 13.639 24.2546 +120.282 14.1541 25.1705 +120.608 14.7391 26.211 +121.406 15.3895 27.3675 +121.224 15.9208 28.3124 +121.707 16.5435 29.4198 +121.503 17.077 30.3685 +121.962 17.7074 31.4896 +121.642 18.2284 32.416 +121.408 18.7627 33.3662 +120.879 19.251 34.2346 +121.385 19.9073 35.4017 +121.026 20.4257 36.3236 +121.224 21.0408 37.4174 +121.032 21.592 38.3977 +121.018 22.1776 39.4389 +121.272 22.8173 40.5766 +121.419 23.4429 41.6892 +121.461 24.0532 42.7744 +121.213 24.6093 43.7634 +119.758 24.9161 44.309 +117.384 25.017 44.4884 +113.371 24.7406 43.9969 +112.107 25.0417 44.5323 +108.032 24.6917 43.9098 +106.595 24.9207 44.3171 +102.552 24.5162 43.5978 +101.486 24.8008 44.1039 +98.0998 24.4997 43.5684 +96.7729 24.692 43.9104 +97.0359 25.2891 44.9722 +96.4941 25.6797 45.667 +97.3452 26.448 47.0331 +97.6539 27.0805 48.158 +97.3413 27.5462 48.9862 +96.4163 27.8371 49.5035 +96.3456 28.3747 50.4595 +96.4336 28.965 51.5092 +96.7623 29.6361 52.7027 +96.0623 29.9962 53.343 +96.3632 30.6729 54.5464 +96.4806 31.3003 55.6622 +96.5829 31.9311 56.7839 +95.8459 32.2874 57.4176 +96.1684 33.0054 58.6944 +96.147 33.6147 59.778 +96.1112 34.2264 60.8657 +96.3021 34.9277 62.1129 +96.3953 35.6038 63.3152 +95.6784 35.9849 63.9929 +95.6645 36.6342 65.1475 +95.6347 37.2861 66.3068 +95.6667 37.9713 67.5254 +96.3759 38.9403 69.2485 +95.679 39.351 69.9789 +95.507 39.9816 71.1003 +95.5462 40.7101 72.3959 +95.4919 41.4096 73.6397 +96.0143 42.374 75.3548 +95.9198 43.0811 76.6122 +95.8073 43.7906 77.8739 +95.6769 44.5023 79.1397 +95.4564 45.1823 80.3488 +95.3616 45.9324 81.6828 +95.813 46.9624 83.5145 +95.5339 47.6501 84.7374 +95.3071 48.3742 86.0251 +95.6125 49.3847 87.8221 +95.4798 50.1861 89.2472 +95.7311 51.2066 91.062 +95.3511 51.9055 92.3049 +95.0197 52.6417 93.6142 +95.719 53.971 95.978 +94.7545 54.3783 96.7024 +94.8112 55.3826 98.4884 +94.9029 56.4286 100.348 +94.9015 57.4422 102.151 +94.9335 58.498 104.029 +94.8734 59.5195 105.845 +94.4189 60.312 107.254 +94.2442 61.3006 109.013 +94.2794 62.45 111.057 +94.751 63.9219 113.674 +94.7127 65.0826 115.738 +94.3533 66.0477 117.454 +94.4199 67.3373 119.748 +94.2799 68.5107 121.834 +93.9949 69.6062 123.782 +94.4404 71.2795 126.758 +94.4573 72.673 129.236 +94.4316 74.0719 131.724 +93.7885 75.0164 133.404 +94.4065 77.0113 136.951 +93.9454 78.1725 139.016 +94 79.8022 141.914 +93.462 80.9692 143.99 +93.7622 82.9087 147.439 +93.6663 84.5561 150.368 +93.8474 86.5113 153.845 +93.5503 88.0832 156.641 +93.2496 89.7032 159.521 +93.6569 92.0725 163.735 +93.2854 93.7469 166.713 +92.6029 95.16 169.225 +90.0177 94.6198 168.265 +88.8273 95.5364 169.895 +87.9771 96.8529 172.236 +87.5254 98.664 175.457 +88.0317 101.651 180.769 +88.1703 104.334 185.539 +87.5081 106.161 188.789 +90.819 113.007 200.963 +88.0152 112.384 199.856 +87.5518 114.777 204.11 +87.4203 117.726 209.355 +88.7926 122.901 218.558 +92.1683 131.2 233.317 +92.2722 135.169 240.375 +91.8089 138.495 246.29 +91.6251 142.436 253.297 +91.8047 147.181 261.736 +91.5949 151.563 269.528 +91.4013 156.236 277.839 +91.0748 160.967 286.251 +91.0784 166.605 296.278 +90.0366 170.642 303.458 +88.9789 174.921 311.067 +88.4058 180.49 320.969 +90.2504 191.607 340.739 +87.2468 192.895 343.03 +84.9527 195.897 348.369 +79.9266 192.555 342.426 +77.5448 195.536 347.726 +72.8942 192.776 342.818 +70.2581 195.3 347.308 +65.7715 192.645 342.585 +63.0118 195 346.774 +58.6508 192.354 342.067 +55.9337 195.073 346.903 +51.584 192.049 341.525 +48.7721 194.694 346.23 +44.5455 191.633 340.786 +41.8114 194.985 346.746 +37.7057 191.936 341.325 +34.6967 194.385 345.679 +30.8187 191.936 341.325 +27.777 194.701 346.242 +23.9616 192.024 341.481 +20.7931 194.469 345.828 +17.0814 191.758 341.009 +13.8725 194.715 346.266 +10.2326 191.533 340.607 +6.91464 194.167 345.292 +3.40248 191.101 339.839 +2.14273e-14 193.902 344.821 +-3.40335 191.15 339.927 +-6.90766 193.971 344.943 +-10.2116 191.14 339.91 +-13.8411 194.273 345.482 +-17.0116 190.975 339.616 +-20.725 193.832 344.696 +-23.815 190.849 339.392 +-27.6724 193.968 344.938 +-30.6618 190.959 339.587 +-34.5834 193.75 344.551 +-37.4757 190.765 339.242 +-41.4664 193.376 343.886 +-44.2511 190.366 338.534 +-48.4309 193.332 343.808 +-51.1402 190.396 338.587 +-55.3491 193.034 343.278 +-58.03 190.318 338.447 +-62.3235 192.87 342.986 +-64.9957 190.372 338.544 +-69.4072 192.935 343.102 +-71.819 189.932 337.761 +-76.5144 192.938 343.106 +-78.7503 189.721 337.386 +-83.4558 192.445 342.23 +-85.8616 189.832 337.584 +-90.5203 192.18 341.759 +-92.7945 189.45 336.904 +-97.8332 192.328 342.021 +-100.052 189.624 337.213 +-105.546 193.071 343.343 +-107.35 189.731 337.403 +-112.956 193.081 343.361 +-114.6 189.63 337.224 +-119.58 191.71 340.924 +-121.876 189.462 336.925 +-127.5 192.336 342.037 +-129.46 189.645 337.252 +-136.901 194.878 346.556 +-138.63 191.882 341.229 +-143.306 192.986 343.192 +-143.445 188.05 334.414 +-144.064 183.951 327.126 +-146.197 181.915 323.504 +-157.634 191.235 340.078 +-151.122 178.825 318.009 +-142.851 164.952 293.339 +-143.749 162.042 288.164 +-147.645 162.541 289.051 +-436.672 469.653 835.196 +-437.621 459.994 818.019 +-438.992 451.114 802.228 +-192.401 193.353 343.845 +-442.45 434.964 773.508 +-443.821 426.941 759.24 +-446.372 420.287 747.408 +-448.486 413.429 735.211 +-451.058 407.187 724.112 +-452.473 400.098 711.505 +-455.689 394.777 702.043 +-457.25 388.186 690.322 +-463.941 386.047 686.517 +-471.929 384.972 684.605 +-484.147 387.243 688.645 +-485.459 380.793 677.175 +-487.116 374.775 666.473 +-487.67 368.073 654.555 +-492.273 364.543 648.276 +-476.824 346.494 616.18 +-480.312 342.543 609.154 +-482.206 337.545 600.265 +-485.642 333.714 593.452 +-487.862 329.125 585.292 +-491.026 325.253 578.406 +-493.127 320.753 570.403 +-496.506 317.154 564.003 +-498.501 312.739 556.152 +-502.556 309.674 550.702 +-504.589 305.418 543.133 +-508.226 302.189 537.391 +-510.245 298.051 530.032 +-513.584 294.739 524.143 +-516.056 290.978 517.454 +-520.024 288.098 512.333 +-522.256 284.297 505.573 +-526.015 281.366 500.36 +-527.662 277.348 493.216 +-532.167 274.868 488.804 +-534.262 271.171 482.23 +-538.088 268.386 477.277 +-140.714 68.9705 122.652 +-143.292 69.019 122.738 +-142.573 67.4838 120.008 +-142.246 66.1629 117.659 +-141.956 64.8836 115.384 +-142.958 64.2077 114.182 +-144.988 63.9871 113.79 +-153.012 66.3526 117.997 +-156.074 66.4996 118.258 +-157.328 65.8615 117.123 +-145.778 59.9557 106.621 +-142.982 57.7711 102.736 +-161.336 64.0361 113.877 +-582.574 227.134 403.918 +-565.792 216.667 385.304 +-582.321 219.013 389.476 +-570.226 210.614 374.54 +-575.24 208.633 371.018 +-582.492 207.432 368.882 +-584.942 204.506 363.679 +-591.346 202.952 360.916 +-595.843 200.721 356.947 +-384.01 126.957 225.77 +-383.921 124.552 221.494 +-383.021 121.918 216.809 +-382.984 119.59 212.67 +-382.13 117.038 208.132 +-381.727 114.657 203.897 +-379.982 111.908 199.009 +-380.754 109.931 195.492 +-377.933 106.95 190.192 +-630.747 174.913 311.053 +-633.662 172.161 306.159 +-652.873 173.748 308.98 +-636.87 165.978 295.164 +-646.808 165.036 293.487 +-381.529 95.284 169.446 +-378.915 92.5984 164.67 +-381.358 91.1677 162.126 +-379.447 88.7101 157.756 +-666.317 152.293 270.826 +-672.552 150.23 267.158 +-382.319 83.4322 148.37 +-379.388 80.8555 143.788 +-114.879 23.9011 42.504 +-112.159 22.7711 40.4945 +-111.077 21.9967 39.1174 +-110.161 21.2693 37.8237 +-109.976 20.6919 36.7969 +-109.31 20.0319 35.6232 +-108.534 19.3624 34.4327 +-108.498 18.832 33.4895 +-108.924 18.3832 32.6913 +-109.437 17.9477 31.9168 +-108.896 17.3426 30.8407 +-109.105 16.8614 29.985 +-109.114 16.3511 29.0776 +-110.456 16.0369 28.5188 +-110.641 15.5503 27.6536 +-110.818 15.0634 26.7876 +-111.951 14.703 26.1467 +-112.692 14.2849 25.4033 +-113.525 13.8735 24.6717 +-114.934 13.5247 24.0513 +-116.34 13.1649 23.4116 +-118.327 12.8578 22.8653 +-125.888 13.1154 23.3235 +-159.924 15.9478 28.3604 +-159.318 15.179 26.9932 +-161.057 14.631 26.0186 +-162.789 14.0692 25.0196 +-856.49 70.2512 124.93 +-863.24 67.0148 119.174 +-380.672 27.8853 49.5892 +-381.055 26.2492 46.6796 +-379.823 24.5096 43.586 +-903.018 54.346 96.6448 +-404.582 22.5939 40.1794 +-403.676 20.796 36.982 +-405.325 19.1296 34.0187 +-403.758 17.314 30.79 +-404.051 15.5864 27.7177 +-404.313 13.8576 24.6433 +-404.943 12.1397 21.5883 +-403.746 10.3712 18.4434 +-403.915 8.64388 15.3716 +-403.454 6.90562 12.2805 +-147.749 1.89635 3.37233 +-143.178 1.22496 2.17839 +-145.594 0.62277 1.10749 +119.8 1.77636e-15 -1.13687e-13 +119.895 0.521052 0.907342 +119.782 1.0412 1.81311 +120.459 1.57082 2.73537 +120.527 2.09598 3.64987 +120.186 2.61316 4.55046 +120.335 3.14056 5.46887 +120.375 3.66643 6.38459 +120.905 4.21025 7.33158 +120.926 4.73941 8.25306 +120.54 5.2517 9.14514 +120.343 5.77061 10.0487 +120.834 6.32457 11.0134 +120.918 6.86071 11.947 +120.594 7.37379 12.8405 +121.155 7.94309 13.8318 +120.912 8.46234 14.736 +120.66 8.9801 15.6376 +120.3 9.48855 16.523 +120.623 10.0521 17.5043 +120.344 10.5672 18.4014 +120.842 11.1533 19.422 +120.642 11.6781 20.3358 +120.433 12.2019 21.248 +120.214 12.7248 22.1585 +120.67 13.3222 23.1988 +120.432 13.8461 24.1112 +120.185 14.3689 25.0215 +120.608 14.975 26.077 +121.115 15.5983 27.1623 +120.548 16.0854 28.0105 +120.839 16.6885 29.0608 +121.407 17.3365 30.1892 +121.195 17.8776 31.1314 +121.546 18.5055 32.2249 +120.931 18.9881 33.0652 +121.64 19.6822 34.2739 +121.006 20.1627 35.1106 +120.743 20.704 36.0532 +121.412 21.4107 37.2839 +121.408 22.0057 38.3199 +120.643 22.4627 39.1158 +121.085 23.1467 40.3069 +121.419 23.8181 41.476 +121.183 24.3821 42.4582 +121.583 25.0793 43.6723 +121.415 25.6651 44.6923 +119.401 25.8542 45.0216 +115.198 25.5417 44.4774 +113.745 25.8142 44.9519 +109.391 25.4025 44.235 +107.317 25.491 44.3892 +104.71 25.4324 44.2872 +102.738 25.5088 44.4201 +99.4363 25.2308 43.9361 +97.4825 25.2711 44.0062 +95.8881 25.3898 44.213 +96.4062 26.0669 45.3921 +96.7329 26.7022 46.4983 +96.8706 27.2932 47.5274 +96.8216 27.8376 48.4755 +96.9333 28.4343 49.5145 +96.3456 28.8288 50.2015 +95.7515 29.2204 50.8833 +95.9142 29.8465 51.9736 +96.0623 30.4762 53.0702 +96.3632 31.1637 54.2674 +96.4806 31.8012 55.3775 +95.9196 32.2192 56.1055 +95.8459 32.8041 57.1239 +96.1684 33.5336 58.3943 +96.147 34.1526 59.4723 +95.7067 34.6277 60.2996 +95.4982 35.1904 61.2794 +95.5967 35.8738 62.4695 +95.6784 36.5607 63.6656 +96.3737 37.4963 65.2949 +95.713 37.9137 66.0217 +95.7444 38.6103 67.2347 +95.6814 39.2783 68.3979 +95.7556 40.0127 69.6768 +96.2674 40.9448 71.2999 +95.5462 41.3616 72.0257 +95.4919 42.0722 73.2632 +95.4198 42.7855 74.5052 +95.9198 43.7705 76.2204 +95.8805 44.5253 77.5348 +95.6769 45.2145 78.735 +95.5283 45.9399 79.9981 +95.2903 46.6325 81.2043 +95.7423 47.6787 83.0261 +95.604 48.4481 84.366 +95.2377 49.1125 85.5229 +95.0618 49.8856 86.8692 +95.4798 50.9892 88.7909 +95.7311 52.026 90.5963 +95.418 52.773 91.8971 +95.0197 53.4841 93.1354 +95.2598 54.5717 95.0294 +94.7545 55.2485 96.2079 +95.004 56.3829 98.1833 +94.9029 57.3316 99.8353 +94.9644 58.3998 101.695 +94.4977 59.1612 103.021 +94.4425 60.1975 104.826 +94.1754 61.1193 106.431 +94.2442 62.2816 108.455 +94.7553 63.7696 111.046 +94.2808 64.6222 112.531 +94.3642 65.8811 114.723 +94.5828 67.2675 117.137 +94.4199 68.4148 119.135 +94.1681 69.5244 121.067 +93.8845 70.6369 123.005 +94.3859 72.3788 126.038 +93.7051 73.2478 127.551 +94.0077 74.9196 130.462 +93.8407 76.2592 132.795 +93.8914 77.8169 135.508 +93.9454 79.4234 138.305 +93.9 80.9931 141.039 +93.9052 82.6549 143.932 +93.8107 84.2793 146.761 +93.6663 85.9092 149.599 +93.8004 87.8519 152.982 +93.5503 89.4928 155.84 +93.7036 91.5823 159.478 +92.0952 91.9857 160.181 +93.1977 95.1579 165.705 +89.7185 93.6714 163.116 +90.9052 97.0816 169.055 +89.5737 97.8809 170.447 +87.8144 98.2205 171.038 +87.4855 100.197 174.48 +87.641 102.819 179.046 +87.3666 105.037 182.908 +87.6205 107.998 188.064 +87.9236 111.155 193.561 +89.592 116.228 202.396 +87.4818 116.52 202.904 +87.1809 119.283 207.715 +92.3977 129.937 226.268 +92.0056 133.065 231.715 +92.1135 137.096 238.734 +91.7471 140.617 244.866 +91.595 144.667 251.918 +91.5708 149.155 259.734 +91.3961 153.654 267.568 +91.2911 158.545 276.085 +91.155 163.686 285.038 +91.2078 169.512 295.182 +88.7597 170.914 297.624 +86.8983 173.564 302.239 +90.2967 187.3 326.159 +89.3281 192.683 335.532 +84.498 189.807 330.523 +82.2083 192.603 335.392 +77.5541 189.829 330.562 +75.1215 192.457 335.138 +70.4887 189.397 329.81 +68.018 192.099 334.515 +63.5763 189.195 329.458 +61.1815 192.366 334.98 +56.8032 189.275 329.598 +54.194 192.03 334.394 +50.0698 189.395 329.805 +47.3706 192.126 334.562 +43.2436 189.009 329.134 +40.5152 191.964 334.279 +36.5268 188.91 328.961 +33.6595 191.592 333.631 +29.8772 189.05 329.205 +26.8981 191.557 333.571 +23.1923 188.833 328.828 +20.1389 191.364 333.235 +16.5797 189.106 329.302 +13.4363 191.609 333.662 +9.93415 188.922 328.983 +6.71045 191.448 333.381 +3.30561 188.632 328.477 +2.09832e-14 191.328 333.172 +-3.30038 188.333 327.956 +-6.70521 191.298 333.12 +-9.90536 188.375 328.029 +-13.4119 191.261 333.055 +-16.5012 188.21 327.743 +-20.1075 191.065 332.715 +-23.1008 188.088 327.53 +-26.8074 190.911 332.447 +-29.6889 187.859 327.131 +-33.5637 191.046 332.682 +-36.2968 187.721 326.891 +-40.2644 190.775 332.209 +-42.9719 187.822 327.067 +-46.9563 190.445 331.635 +-49.6261 187.716 326.882 +-53.7626 190.502 331.733 +-56.2267 187.355 326.253 +-60.415 189.956 330.783 +-63.0482 187.623 326.721 +-67.1498 189.647 330.245 +-69.6322 187.096 325.802 +-73.9957 189.572 330.115 +-76.338 186.852 325.378 +-80.94 189.631 330.217 +-83.1994 186.89 325.443 +-87.9334 189.675 330.293 +-90.0866 186.865 325.4 +-94.9543 189.655 330.259 +-96.9972 186.776 325.246 +-101.975 189.522 330.028 +-104.17 187.056 325.734 +-109.29 189.804 330.518 +-110.936 186.505 324.773 +-116.452 189.682 330.306 +-118.177 186.652 325.03 +-123.576 189.399 329.814 +-125.272 186.446 324.672 +-131.041 189.521 330.025 +-133.656 187.958 327.304 +-140.502 192.237 334.755 +-142.219 189.427 329.862 +-143.025 185.547 323.105 +-143.082 180.887 314.991 +-148.457 182.983 318.64 +-142.511 171.335 298.357 +-142.929 167.684 291.999 +-145.663 166.828 290.508 +-149.801 167.553 291.771 +-1358.74 1484.75 2585.5 +-438.34 468.121 815.171 +-440.241 459.637 800.396 +-441.527 450.813 785.03 +-443.878 443.351 772.036 +-1487.5 1453.82 2531.64 +-447.619 428.206 745.663 +-449.613 421.1 733.289 +-452.347 414.885 722.467 +-453.539 407.459 709.535 +-456.969 402.221 700.415 +-459.1 395.994 689.571 +-470.793 398.017 693.093 +-478.419 396.511 690.471 +-487.543 396.2 689.93 +-489.221 389.885 678.933 +-486.955 380.647 662.845 +-491.537 376.929 656.371 +-477.37 359.164 625.437 +-478.613 353.36 615.33 +-482.465 349.584 608.755 +-484.041 344.251 599.468 +-487.5 340.351 592.676 +-489.155 335.279 583.843 +-493.406 332.059 578.237 +-495.354 327.357 570.049 +-499.063 323.888 564.008 +-500.841 319.235 555.905 +-504.922 316.111 550.464 +-506.603 311.543 542.511 +-510.326 308.293 536.85 +-512.173 303.965 529.315 +-516.181 300.971 524.1 +-517.827 296.649 516.574 +-522.012 293.827 511.661 +-524.465 290.068 505.114 +-527.906 286.896 499.592 +-529.776 282.916 492.66 +-534.025 280.241 488.003 +-535.998 276.406 481.324 +-140.883 71.3933 124.322 +-142.623 71.0248 123.68 +-142.793 69.8789 121.685 +-143.436 68.9791 120.118 +-142.101 67.1534 116.939 +-141.809 65.8537 114.675 +-145.539 66.4129 115.649 +-147.812 66.2775 115.413 +-155.783 68.6355 119.519 +-156.376 67.6943 117.881 +-158.012 67.2062 117.031 +-158.954 66.4209 115.663 +-161.038 66.1082 115.119 +-135.457 54.625 95.1222 +-134.765 53.383 92.9594 +-587.147 228.442 397.802 +-592 226.216 393.925 +-2616.73 981.961 1709.95 +-2633.84 970.552 1690.09 +-581.683 210.459 366.487 +-591.536 210.121 365.898 +-587.742 204.943 356.881 +-591.475 202.438 352.518 +-385.254 129.406 225.344 +-2732.23 900.575 1568.23 +-383.44 124.004 215.936 +-383.321 121.611 211.769 +-382.554 119.043 207.297 +-383.518 117.038 203.805 +-382.725 114.52 199.422 +-381.185 111.816 194.713 +-377.933 108.661 189.219 +-378.431 106.623 185.669 +-639.784 176.606 307.536 +-637.318 172.322 300.076 +-637.753 168.868 294.061 +-2906.29 753.419 1311.98 +-381.351 96.7634 168.501 +-379.721 94.2804 164.177 +-382.527 92.9105 161.791 +-666.559 158.327 275.705 +-381.193 88.5192 154.144 +-675.464 153.295 266.942 +-381.771 84.6458 147.399 +-114.724 24.8415 43.2581 +-114.419 24.1863 42.1172 +-111.974 23.0974 40.221 +-111.169 22.3674 38.9498 +-110.254 21.6279 37.6621 +-109.416 20.9159 36.4223 +-108.841 20.2652 35.2892 +-109.85 19.9107 34.6719 +-108.31 19.1001 33.2603 +-109.396 18.7584 32.6652 +-108.488 18.0769 31.4785 +-108.801 17.6047 30.6562 +-109.01 17.1163 29.8057 +-110.071 16.7584 29.1824 +-110.264 16.2652 28.3238 +-110.064 15.7168 27.3687 +-111.877 15.4508 26.9056 +-112.434 15.0027 26.1252 +-113.273 14.5884 25.4037 +-113.331 14.0715 24.5036 +-114.351 13.6714 23.8069 +-116.827 13.4316 23.3893 +-121.061 13.3653 23.2739 +-151.515 16.038 27.9281 +-161.296 16.342 28.4575 +-161.576 15.6405 27.2358 +-164.105 15.1464 26.3755 +-163.97 14.3981 25.0723 +-859.153 71.5975 124.677 +-865.709 68.2819 118.904 +-380.771 28.3389 49.3484 +-379.57 26.5653 46.2599 +-379.723 24.8953 43.3518 +-406.845 24.8767 43.3194 +-404.582 22.9555 39.9739 +-404.572 21.1756 36.8745 +-402.538 19.3021 33.612 +-403.758 17.5911 30.6325 +-403.452 15.8124 27.5351 +-403.714 14.0585 24.4809 +-404.245 12.3127 21.4408 +-403.746 10.5372 18.3491 +-403.915 8.7822 15.293 +-403.854 7.0231 12.2298 +-147.05 1.91757 3.3392 +-145.078 1.26108 2.196 +-145.794 0.633607 1.10334 +119.7 3.55271e-15 -1.13687e-13 +119.795 0.528776 0.901854 +119.782 1.05751 1.80364 +120.359 1.59411 2.71883 +119.727 2.1147 3.60673 +120.186 2.6541 4.5267 +120.335 3.18977 5.44032 +120.275 3.72079 6.34599 +120.007 4.24446 7.23914 +119.929 4.77399 8.14228 +119.643 5.29434 9.02975 +120.343 5.86103 9.99627 +121.63 6.46596 11.028 +120.918 6.96821 11.8846 +120.594 7.48933 12.7734 +120.361 8.01474 13.6695 +120.912 8.59494 14.6591 +120.66 9.12081 15.556 +120.3 9.63723 16.4368 +120.524 10.2012 17.3987 +120.245 10.724 18.2904 +119.957 11.2451 19.1791 +120.642 11.861 20.2296 +120.237 12.3729 21.1026 +120.997 13.0083 22.1864 +120.768 13.5419 23.0964 +120.53 14.0744 24.0046 +121.06 14.7003 25.0721 +120.414 15.1852 25.8991 +121.115 15.8427 27.0205 +121.224 16.4291 28.0206 +120.839 16.95 28.909 +121.407 17.6082 30.0316 +121.003 18.129 30.9199 +120.494 18.6328 31.7792 +121.313 19.3465 32.9964 +120.974 19.8812 33.9084 +121.385 20.5428 35.0367 +121.783 21.2095 36.1739 +120.658 21.6112 36.8589 +121.126 22.2986 38.0314 +121.486 22.9741 39.1834 +121.085 23.5094 40.0965 +121.233 24.1542 41.1962 +120.997 24.7263 42.1719 +121.028 25.3562 43.2462 +121.783 26.1463 44.5938 +120.318 26.461 45.1306 +116.386 26.2093 44.7012 +113.745 26.2186 44.7172 +110.841 26.1425 44.5874 +108.762 26.2388 44.7516 +106.148 26.1857 44.661 +104.17 26.2696 44.8041 +100.862 25.9936 44.3333 +98.1921 25.8539 44.0951 +95.7115 25.7402 43.9011 +95.9668 26.3547 44.9492 +96.7329 27.1206 46.2555 +96.8706 27.7208 47.2793 +96.9948 28.3244 48.3087 +97.0194 28.9055 49.2997 +96.6885 29.3847 50.1171 +96.5189 29.916 51.0233 +95.9142 30.3141 51.7023 +96.1466 30.9809 52.8395 +96.2794 31.6245 53.9372 +96.564 32.3274 55.136 +96.4171 32.8938 56.102 +96.0107 33.3754 56.9234 +96.0046 34.001 57.9904 +96.147 34.6878 59.1617 +95.5449 35.1108 59.8833 +95.5786 35.7719 61.0108 +96.2356 36.6794 62.5586 +95.6784 37.1336 63.3332 +95.6645 37.8036 64.476 +95.6347 38.4763 65.6233 +95.7444 39.2153 66.8836 +95.6814 39.8938 68.0408 +95.679 40.6072 69.2576 +95.583 41.2907 70.4234 +95.5462 42.0097 71.6496 +95.4919 42.7315 72.8806 +96.0143 43.7267 74.578 +95.9198 44.4563 75.8225 +95.8073 45.1884 77.0711 +95.6769 45.923 78.3239 +95.5283 46.6597 79.5804 +95.3616 47.3987 80.8408 +95.813 48.4615 82.6536 +95.604 49.2073 83.9255 +95.3071 49.9184 85.1383 +95.6813 50.9976 86.9789 +95.4798 51.7881 88.3272 +95.7311 52.8412 90.1233 +95.418 53.5999 91.4173 +95.086 54.3601 92.7138 +95.3254 55.4647 94.5979 +94.7545 56.1142 95.7055 +94.9397 57.2279 97.6051 +94.8393 58.191 99.2476 +94.461 59.0007 100.629 +94.9957 60.4048 103.023 +94.8734 61.4194 104.754 +94.358 62.1974 106.081 +94.3044 63.298 107.958 +94.2794 64.4436 109.912 +93.9869 65.4304 111.595 +94.5384 67.0368 114.335 +94.468 68.2385 116.384 +94.4199 69.4868 118.513 +94.1681 70.6137 120.435 +93.7189 71.6172 122.147 +94.277 73.428 125.235 +94.1349 74.737 127.468 +94.1137 76.179 129.927 +94.102 77.6696 132.469 +93.7884 78.9492 134.652 +93.9454 80.6679 137.583 +93.95 82.3057 140.376 +93.5112 83.598 142.58 +93.8591 85.6439 146.07 +93.6663 87.2553 148.818 +93.4248 88.8714 151.575 +93.7811 91.1196 155.409 +93.4312 92.7467 158.184 +89.9981 91.2997 155.716 +88.5948 91.8753 156.698 +87.609 92.902 158.449 +91.9617 99.7489 170.127 +90.2787 100.197 170.891 +88.0178 99.9907 170.539 +87.2463 101.489 173.094 +87.5628 104.337 177.953 +87.711 107.103 182.67 +87.2459 109.221 186.283 +87.3739 112.191 191.347 +90.3446 119.041 203.031 +90.2134 122.041 208.147 +92.3112 128.281 218.789 +92.2976 131.83 224.842 +92.3637 135.676 231.402 +92.177 139.34 237.651 +91.6853 142.724 243.422 +91.8957 147.416 251.426 +91.6001 151.541 258.46 +91.3109 155.916 265.923 +91.3462 161.126 274.809 +91.1817 166.3 283.633 +89.5514 169.041 288.308 +86.9069 169.969 289.89 +89.8982 182.37 311.041 +89.5963 188.76 321.939 +86.9886 190.577 325.039 +82.6799 188.633 321.723 +79.8381 189.98 324.021 +75.8994 188.69 321.819 +72.9844 189.911 323.903 +69.0855 188.535 321.556 +66.3162 190.228 324.443 +62.3385 188.418 321.356 +59.4764 189.935 323.943 +55.5763 188.089 320.795 +52.8162 190.081 324.192 +48.9604 188.1 320.814 +46.0301 189.614 323.396 +42.3493 188.001 320.645 +39.3863 189.539 323.268 +35.8559 188.346 321.234 +32.8141 189.706 323.553 +29.1946 187.625 320.004 +26.1936 189.462 323.138 +22.6734 187.501 319.792 +19.6207 189.362 322.966 +16.1566 187.167 319.223 +13.0594 189.152 322.609 +9.70903 187.534 319.849 +6.51847 188.885 322.152 +3.23056 187.237 319.343 +2.03171e-14 189.015 322.374 +-3.23405 187.44 319.688 +-6.51324 188.733 321.894 +-9.69856 187.332 319.504 +-13.0245 188.647 321.747 +-16.1304 186.864 318.706 +-19.5318 188.503 321.502 +-22.6124 186.996 318.931 +-26.0959 188.756 321.933 +-29.0769 186.869 318.715 +-32.605 188.497 321.491 +-35.5396 186.685 318.4 +-39.1982 188.633 321.724 +-42.0663 186.744 318.502 +-45.701 188.259 321.084 +-48.608 186.746 318.504 +-52.2177 187.927 320.519 +-55.0738 186.388 317.894 +-58.8037 187.787 320.28 +-61.6288 186.273 317.698 +-65.5522 188.036 320.705 +-68.1561 185.999 317.23 +-72.2212 187.925 320.516 +-74.763 185.865 317.002 +-79.0064 188.001 320.645 +-81.5328 186.016 317.259 +-85.7288 187.817 320.331 +-88.3357 186.104 317.41 +-92.3658 187.376 319.578 +-95.0192 185.834 316.95 +-99.283 187.411 319.639 +-102.165 186.332 317.799 +-106.231 187.381 319.588 +-108.806 185.79 316.874 +-113.148 187.189 319.26 +-115.682 185.573 316.504 +-120.208 187.124 319.149 +-122.892 185.771 316.841 +-127.46 187.23 319.33 +-130.118 185.85 316.976 +-136.637 189.878 323.847 +-139.032 188.084 320.786 +-143.598 189.21 322.707 +-143.265 183.957 313.748 +-143.474 179.613 306.338 +-142.894 174.487 297.596 +-143.32 170.776 291.268 +-147.737 171.854 293.105 +-152.648 173.413 295.765 +-168.448 186.954 318.86 +-1384.71 1501.96 2561.67 +-1410.57 1495.79 2551.15 +-442.448 458.832 782.56 +-444.725 451.158 769.472 +-446.273 443.003 755.564 +-1512.92 1469.98 2507.13 +-450.927 428.948 731.593 +-453.205 422.185 720.058 +-455.042 415.214 708.169 +-457.855 409.316 698.11 +-462.3 405.002 690.751 +-475.614 408.394 696.536 +-481.561 405.368 691.376 +-486.342 401.416 684.635 +-486.466 393.764 671.584 +-488.728 388.019 661.785 +-490.556 382.071 651.642 +-477.922 365.214 622.89 +-480.403 360.239 614.405 +-483.768 356.021 607.211 +-485.532 350.723 598.175 +-488.894 346.672 591.267 +-491.565 342.21 583.656 +-494.774 338.197 576.813 +-496.437 333.213 568.312 +-500.767 330.087 562.979 +-502.38 325.233 554.702 +-505.855 321.657 548.603 +-508.428 317.565 541.623 +-511.725 313.982 535.512 +-514.166 309.929 528.6 +-517.74 306.61 522.938 +-519.402 302.213 515.44 +-523.602 299.341 510.541 +-525.937 295.44 503.887 +-529.933 292.51 498.891 +-532.3 288.718 492.422 +-535.953 285.66 487.207 +-538.082 281.828 480.672 +-141.794 72.9814 124.473 +-142.623 72.1377 123.034 +-143.007 71.0801 121.231 +-142.501 69.6032 118.712 +-141.956 68.1359 116.209 +-142.248 67.0929 114.43 +-147.603 68.41 116.677 +-151.824 69.1434 117.928 +-156.607 70.0796 119.524 +-157.206 69.1201 117.888 +-159.077 68.7196 117.205 +-160.486 68.1121 116.169 +-161.501 67.3367 114.846 +-582.859 238.729 407.165 +-587.426 236.336 403.083 +-134.513 53.1553 90.659 +-134.473 52.1902 89.013 +-596.421 227.321 387.707 +-2633.84 985.76 1681.26 +-2650.74 974.096 1661.37 +-386.542 139.456 237.849 +-597.244 211.52 360.758 +-597.821 207.816 354.44 +-596.824 203.614 347.273 +-601.732 201.446 343.576 +-382.518 125.644 214.292 +-381.129 122.81 209.458 +-383.572 121.229 206.763 +-383.859 118.977 202.921 +-381.697 116.002 197.846 +-380.582 113.389 193.39 +-376.721 110.01 187.627 +-377.299 107.97 184.147 +-653.428 183.199 312.454 +-637.318 175.023 298.51 +-647.289 174.079 296.9 +-381.237 100.38 171.202 +-380.905 98.1648 167.425 +-381.868 96.2994 164.243 +-381.358 94.078 160.455 +-380.44 91.7812 156.537 +-672.027 158.501 270.331 +-676.829 156.011 266.085 +-680.683 153.285 261.435 +-114.266 25.1299 42.8602 +-114.143 24.506 41.7962 +-110.773 23.2076 39.5818 +-110.798 22.6421 38.6172 +-109.51 21.8185 37.2125 +-109.696 21.298 36.3248 +-108.841 20.5828 35.105 +-108.722 20.0151 34.1367 +-108.781 19.4838 33.2306 +-109.113 19.0029 32.4105 +-109.247 18.4885 31.5331 +-108.801 17.8805 30.4961 +-109.677 17.4909 29.8316 +-110.166 17.0357 29.0553 +-110.552 16.5632 28.2494 +-110.737 16.0606 27.3922 +-111.588 15.6524 26.6959 +-112.627 15.264 26.0335 +-112.886 14.7663 25.1846 +-114.01 14.3776 24.5217 +-115.031 13.9683 23.8236 +-117.314 13.6989 23.3642 +-121.646 13.6404 23.2644 +-159.242 17.1201 29.1991 +-161.982 16.6687 28.4292 +-161.478 15.8759 27.0771 +-162.729 15.2547 26.0177 +-167.417 14.9311 25.4657 +-859.745 72.7694 124.112 +-867.487 69.4939 118.525 +-379.485 28.6858 48.925 +-381.253 27.1012 46.2224 +-380.715 25.3514 43.2381 +-406.051 25.2172 43.0091 +-405.179 23.3496 39.8239 +-404.074 21.481 36.6369 +-403.036 19.6288 33.4778 +-404.057 17.88 30.4952 +-403.752 16.072 27.4116 +-403.714 14.2787 24.3531 +-402.747 12.4592 21.2499 +-404.645 10.7261 18.2939 +-403.316 8.90656 15.1906 +-404.054 7.13669 12.172 +-146.45 1.93968 3.30821 +-144.478 1.27554 2.1755 +-145.194 0.640885 1.09306 +119.7 3.55271e-15 -1.13687e-13 +119.795 0.536891 0.897047 +120.482 1.08001 1.8045 +120.359 1.61857 2.70434 +119.727 2.14715 3.5875 +121.085 2.71499 4.53626 +120.335 3.23872 5.41132 +120.175 3.77475 6.30692 +120.107 4.31318 7.20654 +120.029 4.85128 8.10562 +120.739 5.42483 9.06391 +120.343 5.95097 9.94299 +119.939 6.47392 10.8168 +120.719 7.06353 11.8019 +120.594 7.60426 12.7053 +120.262 8.13101 13.5854 +120.912 8.72684 14.581 +120.759 9.26838 15.4858 +120.3 9.78512 16.3492 +120.524 10.3578 17.306 +120.245 10.8886 18.1929 +120.842 11.5019 19.2176 +120.642 12.0431 20.1218 +120.335 12.5731 21.0073 +120.117 13.1119 21.9076 +120.67 13.7386 22.9547 +121.309 14.3828 24.0311 +120.185 14.818 24.7582 +120.608 15.4431 25.8025 +121.115 16.0858 26.8765 +121.224 16.6812 27.8712 +120.936 17.2238 28.7779 +121.503 17.8926 29.8952 +121.003 18.4072 30.7551 +121.642 19.0989 31.9109 +121.313 19.6434 32.8205 +121.069 20.2022 33.7542 +121.101 20.8091 34.7683 +121.31 21.4514 35.8414 +121.695 22.1314 36.9775 +121.126 22.6408 37.8286 +121.486 23.3266 38.9746 +120.992 23.8518 39.852 +121.14 24.5061 40.9452 +120.719 25.048 41.8507 +120.843 25.706 42.95 +121.599 26.5074 44.2891 +121.602 27.1537 45.369 +117.847 26.9457 45.0214 +115.383 27.0043 45.1193 +111.566 26.7173 44.6398 +109.754 26.8846 44.9194 +106.956 26.7902 44.7616 +104.26 26.6956 44.6035 +101.486 26.5557 44.3697 +99.0791 26.4878 44.2563 +96.2413 26.2798 43.9088 +95.7032 26.6856 44.5869 +95.8583 27.2878 45.5929 +96.6965 28.0957 46.9428 +96.5618 28.6307 47.8367 +96.5886 29.2187 48.8192 +96.0027 29.624 49.4964 +96.6041 30.402 50.7962 +96.6775 31.0243 51.8359 +96.0623 31.4287 52.5117 +96.2794 32.1098 53.6497 +95.7301 32.5401 54.3685 +96.5829 33.456 55.899 +96.0107 33.8876 56.62 +96.1684 34.5817 57.7797 +96.147 35.2201 58.8464 +96.1921 35.8912 59.9676 +96.3021 36.5958 61.145 +95.6765 37.026 61.8637 +95.6784 37.7034 62.9956 +95.6645 38.3837 64.1323 +95.6347 39.0668 65.2735 +95.7444 39.8171 66.5271 +95.6814 40.506 67.6781 +95.679 41.2303 68.8884 +95.6591 41.9577 70.1038 +95.5462 42.6544 71.2677 +95.4919 43.3872 72.4922 +96.0886 44.432 74.2379 +95.9198 45.1385 75.4183 +95.8073 45.8819 76.6603 +95.6043 46.5923 77.8473 +95.5283 47.3757 79.1563 +96.0035 48.45 80.9511 +95.1059 48.8421 81.6063 +95.604 49.9624 83.4781 +95.3766 50.7214 84.7463 +95.6813 51.7802 86.5153 +95.4798 52.5829 87.8564 +95.1231 53.3116 89.074 +94.8158 54.0794 90.3568 +95.0197 55.1558 92.1553 +95.1286 56.1998 93.8997 +94.6895 56.9363 95.1302 +94.9397 58.1061 97.0848 +94.9029 59.1235 98.7847 +94.9644 60.2251 100.625 +94.4977 61.0103 101.937 +94.935 62.4025 104.263 +94.4189 63.1924 105.583 +94.3646 64.3104 107.451 +94.3389 65.4741 109.395 +94.6334 66.8915 111.764 +94.7127 68.1908 113.935 +94.468 69.2857 115.764 +94.3633 70.5106 117.81 +94.0562 71.6121 119.651 +94.2708 73.1446 122.211 +94.3859 74.6411 124.712 +94.1349 75.8839 126.788 +94.0077 77.2612 129.09 +94.0497 78.8178 131.69 +93.7884 80.1608 133.934 +93.8946 81.8611 136.775 +93.55 83.2128 139.034 +93.5605 84.9255 141.895 +93.8107 86.9135 145.217 +93.714 88.6395 148.101 +93.4718 90.2804 150.842 +93.1809 91.9258 153.591 +91.0705 91.7907 153.366 +88.6149 91.2761 152.506 +87.9373 92.5929 154.706 +87.8243 94.5593 157.991 +92.004 101.326 169.297 +91.0252 102.575 171.385 +88.5872 102.182 170.728 +87.5653 103.423 172.801 +87.5628 105.939 177.004 +87.4432 108.414 181.141 +87.3208 110.993 185.449 +87.4472 114.008 190.487 +92.5306 123.792 206.835 +92.6999 127.329 212.744 +92.2086 130.104 217.381 +92.2642 133.805 223.563 +92.0056 137.224 229.276 +92.0818 141.332 236.141 +91.778 145.061 242.37 +91.5649 149.14 249.186 +91.6001 153.866 257.082 +91.2541 158.21 264.341 +91.1808 163.303 272.849 +90.4335 167.467 279.806 +89.189 170.941 285.611 +87.4577 173.671 290.173 +90.503 186.414 311.464 +88.5692 189.459 316.552 +85.5714 190.349 318.039 +81.6194 189.071 315.903 +78.653 190.032 317.509 +74.9025 189.069 315.9 +71.8777 189.902 317.291 +68.1743 188.904 315.624 +65.257 190.062 317.559 +61.5793 188.979 315.75 +58.4908 189.654 316.878 +55.059 189.198 316.115 +51.9672 189.895 317.28 +48.3991 188.797 315.446 +45.2866 189.414 316.477 +41.8739 188.743 315.355 +38.8428 189.791 317.107 +35.3671 188.629 315.165 +32.2999 189.599 316.786 +28.8965 188.559 315.048 +25.7959 189.45 316.536 +22.4781 188.738 315.347 +19.312 189.242 316.189 +15.9996 188.193 314.436 +12.8709 189.283 316.258 +9.61479 188.564 315.056 +6.42947 189.165 316.06 +3.20002 188.313 314.637 +1.9873e-14 189.399 316.451 +-3.19478 188.005 314.123 +-6.42074 188.908 315.631 +-9.586 188 314.113 +-12.843 188.873 315.573 +-15.9778 187.936 314.007 +-19.2544 188.678 315.247 +-22.3987 188.072 314.234 +-25.6774 188.579 315.081 +-28.7945 187.894 313.936 +-32.1605 188.781 315.418 +-35.1754 187.607 313.457 +-38.571 188.464 314.889 +-41.6701 187.824 313.821 +-44.9698 188.089 314.263 +-48.0597 187.473 313.234 +-51.494 188.166 314.391 +-54.5712 187.522 313.315 +-58.0372 188.183 314.419 +-60.9356 187.004 312.45 +-64.3887 187.533 313.334 +-67.5729 187.237 312.84 +-71.0573 187.734 313.67 +-73.9456 186.654 311.864 +-77.6342 187.571 313.397 +-80.5805 186.664 311.882 +-84.1542 187.197 312.772 +-87.0985 186.313 311.295 +-91.1562 187.759 313.712 +-94.0928 186.847 312.187 +-97.9371 187.707 313.625 +-100.776 186.618 311.805 +-104.715 187.541 313.348 +-107.528 186.425 311.482 +-111.452 187.213 312.799 +-114.419 186.363 311.379 +-118.384 187.114 312.633 +-121.337 186.235 311.165 +-125.507 187.189 312.759 +-128.449 186.281 311.241 +-133.388 188.208 314.461 +-137.596 188.998 315.781 +-142.2 190.244 317.863 +-143.412 186.971 312.394 +-143.25 182.083 304.228 +-143.047 177.354 296.326 +-144.063 174.295 291.216 +-149.013 175.998 294.06 +-159.075 183.487 306.573 +-165.877 186.926 312.32 +-169.893 187.106 312.621 +-1410.57 1518.75 2537.55 +-443.237 466.704 779.777 +-445.529 458.908 766.753 +-447.135 450.671 752.989 +-449.42 443.366 740.784 +-451.538 436.12 728.678 +-454.064 429.477 717.577 +-456.157 422.62 706.121 +-458.89 416.536 695.956 +-466.45 414.909 693.237 +-478.101 416.829 696.446 +-484.96 414.495 692.545 +-489.163 409.941 684.937 +-486.307 399.676 667.786 +-488.996 394.19 658.62 +-482.877 381.861 638.021 +-478.695 371.418 620.572 +-481.745 366.789 612.838 +-484.787 362.246 605.248 +-486.565 356.863 596.253 +-489.533 352.452 588.884 +-492.094 347.835 581.17 +-495.012 343.553 574.014 +-497.821 339.27 566.859 +-500.767 335.152 559.978 +-503.55 330.993 553.03 +-506.789 327.197 546.686 +-509.372 323.037 539.737 +-512.933 319.553 533.916 +-515.13 315.275 526.768 +-518.909 312.017 521.324 +-521.239 307.936 514.505 +-524 304.165 508.205 +-526.94 300.546 502.158 +-530.406 297.264 496.674 +-533.323 293.712 490.739 +-536.366 290.267 484.984 +-534.609 284.306 475.024 +-142.144 74.2842 124.115 +-142.553 73.2088 122.319 +-143.435 72.3871 120.946 +-142.07 70.4571 117.721 +-142.609 69.4999 116.122 +-143.418 68.6828 114.757 +-148.783 70.015 116.982 +-156.135 72.1976 120.629 +-156.457 71.0868 118.773 +-157.432 70.282 117.429 +-159.001 69.7407 116.524 +-160.486 69.1573 115.549 +-161.733 68.4681 114.398 +-584.725 243.169 406.291 +-587.974 240.187 401.309 +-135.538 54.3824 90.8631 +-134.632 53.0538 88.6433 +-597.22 231.119 386.157 +-2633.84 1000.89 1672.3 +-2650.74 989.045 1652.51 +-2667.45 977.125 1632.6 +-386.148 138.857 232.005 +-613.892 216.677 362.028 +-597.404 206.939 345.757 +-601.565 204.481 341.65 +-606.527 202.28 337.974 +-381.888 124.942 208.756 +-383.827 123.171 205.797 +-383.006 120.534 201.391 +-381.525 117.729 196.704 +-382.219 115.624 193.186 +-381.224 113.033 188.858 +-376.777 109.474 182.912 +-378.535 107.757 180.043 +-637.406 177.733 296.959 +-647.377 176.774 295.358 +-379.641 101.493 169.576 +-379.391 99.2748 165.87 +-382.405 97.9143 163.597 +-382.886 95.9043 160.239 +-2957.32 724.405 1210.35 +-673.568 161.302 269.507 +-677.921 158.661 265.093 +-682.327 156.014 260.671 +-114.357 25.536 42.666 +-112.578 24.5409 41.0034 +-111.327 23.6818 39.5679 +-110.335 22.8933 38.2506 +-109.603 22.1721 37.0456 +-109.136 21.5145 35.9467 +-108.186 20.7728 34.7075 +-109.474 20.4627 34.1895 +-109.064 19.8343 33.1394 +-108.924 19.2611 32.1819 +-109.152 18.7559 31.3378 +-108.801 18.1549 30.3336 +-109.868 17.7902 29.7242 +-109.497 17.1921 28.7248 +-110.264 16.7736 28.0257 +-111.218 16.3779 27.3645 +-112.359 16.0024 26.7371 +-112.434 15.4716 25.8502 +-113.273 15.0443 25.1363 +-114.301 14.6355 24.4532 +-115.809 14.2785 23.8568 +-118.386 14.0363 23.4521 +-121.744 13.8608 23.159 +-158.362 17.2867 28.883 +-160.512 16.7709 28.0211 +-160.791 16.0509 26.8181 +-163.712 15.5824 26.0353 +-3226.72 292.191 488.198 +-861.126 74.0048 123.649 +-868.968 70.6811 118.095 +-379.485 29.126 48.6643 +-381.649 27.5457 46.0239 +-380.517 25.727 42.9852 +-404.86 25.5291 42.6544 +-404.582 23.673 39.5532 +-404.572 21.8375 36.4865 +-403.434 19.9497 33.3323 +-404.057 18.1544 30.3327 +-404.748 16.359 27.3329 +-404.313 14.5194 24.2592 +-146.227 4.59303 7.67413 +-403.746 10.8665 18.156 +-405.314 9.08807 15.1845 +-403.854 7.24261 12.1011 +-146.65 1.97213 3.29508 +-145.778 1.30677 2.18338 +-145.494 0.652066 1.08948 +119.8 1.77636e-15 -1.13687e-13 +119.995 0.545869 0.893652 +119.982 1.0917 1.78724 +120.459 1.64427 2.69186 +120.726 2.19762 3.59777 +120.285 2.73762 4.4818 +120.634 3.29559 5.39528 +120.375 3.83786 6.28303 +120.406 4.38893 7.1852 +120.129 4.9283 8.06821 +120.739 5.50638 9.0146 +120.642 6.05539 9.91339 +121.033 6.63119 10.856 +120.719 7.16972 11.7377 +120.793 7.73129 12.657 +120.461 8.26684 13.5338 +120.219 8.80725 14.4185 +120.858 9.41542 15.4142 +120.498 9.94853 16.2869 +120.721 10.5307 17.24 +120.344 11.0613 18.1087 +120.94 11.6844 19.1287 +120.74 12.2341 20.0286 +120.433 12.7724 20.91 +120.214 13.3198 21.806 +120.768 13.9564 22.8483 +120.627 14.5169 23.7659 +121.157 15.1625 24.8228 +120.608 15.6752 25.6622 +120.534 16.2493 26.6021 +120.837 16.878 27.6313 +121.032 17.4966 28.6441 +120.734 18.0466 29.5444 +121.099 18.6987 30.612 +120.781 19.2489 31.5127 +121.313 19.9387 32.642 +121.165 20.522 33.5969 +121.101 21.122 34.5791 +121.405 21.7909 35.6742 +121.129 22.3597 36.6054 +121.878 23.1237 37.8563 +121.58 23.6955 38.7924 +121.832 24.3785 39.9104 +121.419 24.9317 40.8162 +120.997 25.4831 41.7189 +121.675 26.2719 43.0103 +121.507 26.8855 44.0148 +121.877 27.6243 45.2243 +118.395 27.478 44.9848 +115.565 27.4535 44.9446 +112.382 27.3172 44.7216 +109.845 27.3113 44.7118 +106.956 27.1929 44.5181 +104.26 27.0969 44.3609 +102.377 27.1915 44.5158 +99.0791 26.8859 44.0155 +97.1242 26.9196 44.0706 +96.4941 27.3106 44.7108 +96.6455 27.9255 45.7173 +96.9576 28.595 46.8135 +97.1681 29.2435 47.8751 +97.1918 29.8431 48.8568 +96.0885 30.0962 49.2711 +96.5189 30.8317 50.4752 +95.999 31.2697 51.1922 +96.231 31.9572 52.3178 +96.3632 32.6209 53.4042 +96.564 33.3169 54.5438 +96.5 33.9298 55.5472 +95.9283 34.3675 56.2637 +96.0865 35.0716 57.4164 +96.2285 35.7798 58.5758 +95.6258 36.2162 59.2902 +96.3021 37.1459 60.8123 +95.6765 37.5826 61.5271 +95.7577 38.302 62.7049 +95.8221 39.0249 63.8884 +95.8695 39.7514 65.0777 +95.7444 40.4156 66.1652 +95.7586 41.148 67.3642 +95.7556 41.8836 68.5685 +95.6591 42.5885 69.7224 +95.6217 43.3298 70.936 +95.5667 44.0739 72.1543 +96.1629 45.1348 73.8911 +95.9935 45.8523 75.0656 +95.8805 46.6072 76.3015 +95.7494 47.3645 77.5413 +95.6003 48.1241 78.7849 +95.4329 48.886 80.0323 +95.813 49.9449 81.7657 +95.6741 50.7506 83.0848 +95.4461 51.5214 84.3467 +95.7501 52.5966 86.1069 +95.4798 53.3733 87.3785 +95.1907 54.1511 88.6517 +95.5519 55.3182 90.5625 +95.6823 56.3753 92.2932 +95.3254 57.1625 93.5818 +94.8844 57.911 94.8072 +95.1326 59.0995 96.753 +94.9665 60.0529 98.3138 +95.0274 61.1711 100.144 +94.56 61.9681 101.449 +94.4425 63.0122 103.159 +94.4189 64.1423 105.009 +94.3044 65.2355 106.798 +94.8742 66.8352 109.417 +94.6922 67.9393 111.225 +94.8869 69.3431 113.523 +94.5828 70.4128 115.274 +94.5332 71.6998 117.381 +93.9444 72.6021 118.858 +93.9397 73.983 121.119 +93.9502 75.4133 123.461 +94.2424 77.1127 126.243 +94.0077 78.4227 128.387 +94.102 80.047 131.046 +93.8399 81.4106 133.279 +93.9961 83.1819 136.179 +93.55 84.4637 138.277 +93.6097 86.2475 141.197 +93.8591 88.2654 144.501 +93.8094 90.0633 147.444 +93.5657 91.7292 150.172 +93.4117 93.5386 153.134 +90.4803 92.5669 151.543 +88.7487 92.788 151.905 +88.2003 94.2658 154.324 +87.566 95.6988 156.67 +91.3278 102.093 167.139 +90.7349 103.786 169.91 +88.872 104.052 170.345 +87.2463 104.595 171.235 +87.5628 107.531 176.041 +87.4432 110.044 180.156 +87.3957 112.758 184.598 +87.5205 115.819 189.609 +91.3838 124.096 203.16 +92.6999 129.243 211.587 +92.448 132.403 216.76 +92.1975 135.718 222.187 +92.0381 139.336 228.109 +92.0818 143.457 234.856 +91.6853 147.092 240.808 +91.5649 151.382 247.83 +91.3662 155.78 255.031 +91.2825 160.639 262.985 +91.2635 165.908 271.611 +90.193 169.532 277.543 +88.8267 172.806 282.904 +87.8583 177.089 289.916 +90.6239 189.469 310.184 +88.5692 192.307 314.83 +85.0315 191.992 314.313 +81.6843 192.066 314.435 +78.154 191.665 313.779 +74.763 191.554 313.597 +71.4198 191.528 313.555 +68.0467 191.384 313.319 +64.8402 191.687 313.814 +61.4802 191.512 313.527 +58.1467 191.372 313.3 +54.8373 191.269 313.13 +51.6332 191.511 313.526 +48.2686 191.118 312.883 +45.0917 191.434 313.4 +41.7833 191.166 312.961 +38.5815 191.349 313.26 +35.3096 191.154 312.941 +32.082 191.151 312.937 +28.8337 190.978 312.654 +25.6216 190.998 312.686 +22.4353 191.211 313.036 +19.2125 191.098 312.85 +16.0127 191.178 312.981 +12.7837 190.827 312.406 +9.59647 191.034 312.745 +6.38758 190.757 312.293 +3.19391 190.779 312.328 +1.88738e-14 190.891 312.511 +-3.19653 190.936 312.584 +-6.37711 190.445 311.781 +-9.56506 190.409 311.722 +-12.7872 190.879 312.491 +-15.9429 190.345 311.617 +-19.1131 190.109 311.231 +-22.3621 190.587 312.013 +-25.5588 190.53 311.92 +-28.7396 190.354 311.633 +-31.9426 190.32 311.577 +-35.1179 190.116 311.242 +-38.3933 190.415 311.733 +-41.5003 189.871 310.841 +-44.8601 190.451 311.791 +-47.9423 189.826 310.768 +-51.2575 190.117 311.245 +-54.453 189.928 310.935 +-57.5992 189.57 310.349 +-60.9521 189.867 310.834 +-64.1109 189.531 310.285 +-67.4089 189.591 310.383 +-70.6184 189.379 310.036 +-73.9854 189.562 310.335 +-77.1352 189.167 309.689 +-80.4506 189.165 309.685 +-83.7943 189.198 309.74 +-87.1452 189.215 309.768 +-90.4788 189.166 309.687 +-93.6922 188.848 309.167 +-97.2642 189.22 309.776 +-100.562 189.022 309.451 +-104.026 189.108 309.592 +-107.585 189.328 309.952 +-110.809 188.931 309.302 +-114.449 189.215 309.767 +-117.674 188.786 309.065 +-121.337 189.035 309.472 +-124.79 188.919 309.283 +-128.282 188.835 309.146 +-131.815 188.784 309.062 +-137.386 191.546 313.583 +-140.874 191.303 313.185 +-143.449 189.83 310.774 +-143.287 184.869 302.653 +-143.085 180.069 294.794 +-144.414 177.348 290.339 +-148.893 178.5 292.226 +-158.465 185.531 303.736 +-165.255 189.025 309.456 +-168.582 188.454 308.522 +-1410.57 1541.58 2523.74 +-1436.32 1535.1 2513.14 +-445.216 465.481 762.047 +-447.498 457.817 749.502 +-449.374 449.985 736.679 +-451.913 443.044 725.317 +-454.303 436.162 714.049 +-456.4 429.2 702.652 +-458.988 422.889 692.319 +-467.45 422.049 690.944 +-478.507 423.454 693.245 +-486.196 421.798 690.533 +-488.693 415.703 680.555 +-486.731 406.038 664.732 +-489.211 400.291 655.324 +-478.574 384.148 628.896 +-479.302 377.479 617.978 +-482.192 372.648 610.07 +-484.391 367.391 601.463 +-487.196 362.697 593.778 +-489.823 357.963 586.027 +-492.564 353.401 578.56 +-495.428 349.01 571.371 +-498.303 344.703 564.32 +-501.437 340.645 557.677 +-504.288 336.462 550.828 +-507.1 332.319 544.047 +-510.127 328.38 537.597 +-513.061 324.437 531.142 +-516.094 320.614 524.883 +-519.039 316.787 518.618 +-521.961 312.998 512.415 +-524.132 308.816 505.568 +-527.676 305.49 500.123 +-530.946 302.04 494.476 +-534.073 298.546 488.755 +-536.504 294.706 482.469 +-142.266 76.7947 125.722 +-142.355 75.5124 123.623 +-142.482 74.2723 121.593 +-143.649 73.5847 120.467 +-142.501 71.7337 117.437 +-142.101 70.2934 115.079 +-144.735 70.3549 115.179 +-149.151 71.2437 116.634 +-156.283 73.3527 120.087 +-156.607 72.2247 118.24 +-157.357 71.3041 116.733 +-159.001 70.7891 115.89 +-161.789 70.7667 115.854 +-161.655 69.464 113.721 +-585.502 247.152 404.617 +-588.052 243.83 399.179 +-590.85 240.632 393.944 +-135.425 54.1688 88.6808 +-598.178 234.969 384.673 +-601.928 232.177 380.102 +-2650.74 1003.91 1643.52 +-2667.45 991.814 1623.72 +-2683.95 979.642 1603.79 +-614.139 220.023 360.204 +-604.285 212.47 347.838 +-601.732 207.612 339.886 +-605.436 204.952 335.531 +-381.803 126.793 207.575 +-382.046 124.443 203.729 +-382.665 122.237 200.117 +-382.639 119.848 196.205 +-381.271 117.071 191.659 +-380.705 114.576 187.575 +-377.038 111.197 182.043 +-376.786 108.871 178.235 +-637.67 180.479 295.465 +-2892.98 801.835 1312.7 +-381.858 103.621 169.639 +-381.529 101.335 165.898 +-383.121 99.5723 163.012 +-2944.9 748.717 1225.74 +-2957.32 735.295 1203.76 +-674.565 163.97 268.438 +-677.557 160.96 263.51 +-682.144 158.316 259.183 +-114.724 26.003 42.57 +-112.67 24.9302 40.8138 +-112.251 24.2372 39.6792 +-110.52 23.2765 38.1065 +-109.789 22.5436 36.9066 +-109.042 21.8192 35.7206 +-109.122 21.2676 34.8176 +-109.192 20.7169 33.916 +-109.346 20.1846 33.0446 +-109.302 19.6185 32.1179 +-109.247 19.0544 31.1944 +-109.752 18.589 30.4324 +-109.964 18.0733 29.5882 +-109.593 17.4657 28.5935 +-111.127 17.159 28.0913 +-111.218 16.6241 27.2156 +-111.588 16.1315 26.4091 +-112.434 15.7042 25.7096 +-113.37 15.2835 25.0209 +-114.301 14.8555 24.3202 +-115.712 14.481 23.7071 +-117.606 14.1534 23.1709 +-123.013 14.2159 23.2731 +-159.732 17.6983 28.9743 +-160.61 17.0334 27.8857 +-162.557 16.4712 26.9654 +-164.597 15.9021 26.0337 +-851.957 78.3075 128.199 +-861.027 75.1089 122.962 +-869.758 71.8087 117.559 +-380.376 29.6332 48.513 +-381.352 27.938 45.7379 +-382.698 26.2634 42.9964 +-403.867 25.8493 42.3184 +-404.086 23.9993 39.2898 +-404.77 22.1766 36.3058 +-405.126 20.3345 33.29 +-403.26 18.3909 30.1081 +-402.655 16.519 27.0436 +-403.814 14.7194 24.0975 +-146.027 4.65571 7.62196 +-403.946 11.0353 18.0662 +-403.815 9.1906 15.0461 +-402.655 7.32964 11.9995 +-146.05 1.99359 3.26374 +-144.978 1.31914 2.15959 +-146.194 0.665053 1.08877 +119.8 1.77636e-15 -1.13687e-13 +119.795 0.552988 0.887214 +119.882 1.10685 1.77584 +120.559 1.66987 2.67914 +120.726 2.22999 3.5778 +120.385 2.78025 4.46063 +120.535 3.34137 5.36089 +120.375 3.89439 6.24815 +120.306 4.44988 7.13939 +120.129 5.00089 8.02342 +120.838 5.59208 8.97194 +120.443 6.13442 9.84207 +121.133 6.73441 10.8047 +120.918 7.28727 11.6917 +120.793 7.84516 12.5868 +120.461 8.3886 13.4587 +121.11 9.00325 14.4448 +120.858 9.5541 15.3286 +120.597 10.1033 16.2098 +120.721 10.6858 17.1443 +120.442 11.2335 18.023 +120.94 11.8565 19.0225 +120.74 12.4142 19.9174 +120.433 12.9606 20.7939 +120.117 13.505 21.6674 +120.768 14.162 22.7215 +120.53 14.7188 23.6149 +121.157 15.3858 24.685 +120.802 15.9317 25.5608 +120.534 16.4887 26.4544 +121.127 17.1676 27.5437 +121.032 17.7543 28.4851 +121.6 18.4436 29.5909 +121.099 18.9741 30.4421 +120.781 19.5324 31.3377 +121.217 20.2164 32.4352 +121.165 20.8242 33.4104 +121.291 21.4666 34.4411 +121.499 22.129 35.5038 +121.129 22.689 36.4022 +120.938 23.2834 37.3559 +121.674 24.063 38.6068 +121.085 24.5859 39.4456 +121.14 25.2408 40.4964 +121.09 25.8783 41.5191 +120.936 26.497 42.5118 +121.599 27.3022 43.8037 +121.786 28.0101 44.9394 +118.304 27.8612 44.7005 +114.837 27.6824 44.4136 +112.382 27.7196 44.4733 +109.845 27.7135 44.4636 +106.867 27.5702 44.2337 +104.349 27.5196 44.1525 +101.664 27.3999 43.9604 +99.1678 27.3064 43.8104 +97.0359 27.2912 43.7861 +95.7911 27.511 44.1386 +96.8204 28.388 45.5458 +96.9576 29.0162 46.5536 +96.3886 29.4362 47.2275 +96.9333 30.2022 48.4564 +96.0885 30.5395 48.9976 +96.6041 31.3135 50.2394 +96.8471 32.0105 51.3577 +96.231 32.4279 52.0273 +96.3632 33.1013 53.1078 +96.564 33.8076 54.241 +96.0026 34.252 54.954 +96.0931 34.9336 56.0475 +96.0865 35.5882 57.0977 +96.2285 36.3068 58.2507 +95.7876 36.8118 59.0609 +95.7394 37.4728 60.1214 +95.7564 38.1679 61.2367 +95.7577 38.8661 62.3568 +95.8221 39.5997 63.5338 +95.8695 40.3369 64.7165 +95.7444 41.0109 65.7979 +95.7586 41.7541 66.9903 +95.7556 42.5005 68.1879 +95.6591 43.2157 69.3353 +95.6217 43.968 70.5422 +95.5667 44.7231 71.7537 +95.4198 45.4457 72.9131 +95.9935 46.5276 74.6489 +95.8073 47.2576 75.8201 +95.6769 48.0257 77.0525 +96.2477 49.1636 78.8782 +95.4329 49.6061 79.588 +95.8837 50.7179 81.3718 +95.6741 51.4981 82.6236 +96.1407 52.6607 84.4889 +95.819 53.4094 85.69 +95.4798 54.1594 86.8934 +95.7987 55.2999 88.7231 +95.5519 56.133 90.0597 +95.1522 56.8888 91.2725 +95.3254 58.0044 93.0623 +95.5338 59.1665 94.9268 +94.9397 59.8483 96.0207 +94.9029 60.8962 97.7019 +94.3981 61.661 98.929 +94.6222 62.9221 100.952 +94.4425 63.9403 102.586 +94.4798 65.1289 104.493 +94.3646 66.2386 106.273 +94.8742 67.8196 108.81 +94.5159 68.8114 110.401 +94.4223 70.0201 112.34 +94.5828 71.4498 114.634 +94.4766 72.7119 116.659 +94.1122 73.8031 118.41 +93.8293 74.9848 120.306 +93.9502 76.5241 122.775 +94.1886 78.204 125.471 +93.9547 79.5328 127.602 +94.102 81.2259 130.319 +93.7884 82.5642 132.466 +93.9961 84.4071 135.423 +94.1 86.2118 138.318 +93.5605 87.4718 140.34 +93.9076 89.6119 143.773 +93.3323 90.9253 145.881 +93.5657 93.0803 149.338 +93.5964 95.1041 152.585 +90.4803 93.9303 150.702 +88.5703 93.9652 150.758 +87.7619 95.1792 152.706 +87.9534 97.5378 156.49 +91.201 103.453 165.98 +90.7349 105.314 168.967 +88.872 105.584 169.399 +87.2463 106.136 170.284 +87.6801 109.261 175.298 +87.4432 111.665 179.155 +87.3957 114.419 183.574 +87.4838 117.476 188.478 +91.3838 125.924 202.033 +92.7349 131.197 210.492 +92.6533 134.652 216.035 +92.3644 137.966 221.353 +92.3311 141.838 227.565 +92.1135 145.62 233.632 +91.6235 149.158 239.31 +91.5649 153.611 246.454 +91.6001 158.479 254.264 +91.3393 163.106 261.687 +91.236 168.301 270.022 +90.4602 172.538 276.821 +88.9043 175.504 281.579 +87.5328 179.031 287.238 +90.5756 192.157 308.297 +88.7793 195.602 313.825 +85.189 195.18 313.147 +81.706 194.946 312.772 +78.154 194.488 312.037 +74.9623 194.894 312.687 +71.5534 194.713 312.397 +68.1743 194.568 312.165 +64.8229 194.458 311.989 +61.6123 194.75 312.457 +58.2875 194.661 312.315 +54.9555 194.504 312.063 +51.6332 194.331 311.785 +48.4122 194.51 312.072 +45.0917 194.254 311.66 +41.8852 194.455 311.983 +38.5919 194.219 311.605 +35.3767 194.338 311.795 +32.1605 194.441 311.961 +28.9043 194.265 311.679 +25.6843 194.286 311.712 +22.4903 194.503 312.06 +19.2649 194.441 311.961 +16.0127 193.994 311.244 +12.8151 194.113 311.435 +9.59385 193.794 310.924 +6.3998 193.937 311.153 +3.19391 193.589 310.595 +2.12053e-14 193.702 310.776 +-3.1974 193.801 310.934 +-6.39282 193.726 310.814 +-9.58862 193.689 310.754 +-12.7872 193.69 310.757 +-15.9909 193.729 310.819 +-19.1654 193.437 310.35 +-22.3621 193.394 310.281 +-25.5657 193.389 310.273 +-28.7317 193.105 309.818 +-31.9426 193.123 309.847 +-35.1946 193.337 310.19 +-38.3933 193.22 310.002 +-41.5909 193.088 309.79 +-44.8723 193.308 310.144 +-48.0597 193.094 309.8 +-51.2575 192.917 309.517 +-54.453 192.725 309.209 +-57.7556 192.885 309.465 +-60.9356 192.611 309.025 +-64.2498 192.739 309.231 +-67.3907 192.331 308.576 +-70.5993 192.117 308.232 +-73.9854 192.354 308.612 +-77.3016 192.367 308.633 +-80.6454 192.416 308.712 +-83.9517 192.346 308.599 +-87.1685 192.054 308.131 +-90.503 192.003 308.05 +-93.9426 192.141 308.272 +-97.523 192.518 308.876 +-100.856 192.366 308.632 +-104.301 192.402 308.689 +-107.841 192.573 308.963 +-111.043 192.118 308.234 +-114.449 192.002 308.048 +-117.952 192.019 308.076 +-121.337 191.819 307.754 +-125.083 192.151 308.288 +-128.482 191.916 307.91 +-132.088 191.962 307.983 +-137.316 194.268 311.683 +-141.197 194.565 312.16 +-143.449 192.626 309.049 +-143.287 187.592 300.973 +-143.085 182.721 293.157 +-144.219 179.716 288.336 +-148.694 180.887 290.215 +-158.831 188.698 302.748 +-164.177 190.557 305.73 +-1384.71 1570.73 2520.09 +-1410.57 1564.28 2509.73 +-443.281 480.744 771.306 +-445.35 472.478 758.044 +-447.498 464.56 745.341 +-449.374 456.612 732.589 +-451.96 449.617 721.366 +-454.16 442.446 709.861 +-456.254 435.383 698.529 +-459.086 429.209 688.624 +-467.5 428.311 687.182 +-478.203 429.418 688.958 +-486.35 428.146 686.918 +-488.85 421.961 676.995 +-487.049 412.287 661.474 +-488.943 405.964 651.328 +-479.5 390.56 626.615 +-478.64 382.51 613.699 +-481.689 377.742 606.05 +-484.9 373.194 598.752 +-487.196 368.039 590.482 +-489.649 363.106 582.567 +-492.74 358.735 575.555 +-495.19 353.981 567.927 +-498.483 349.907 561.391 +-501.437 345.662 554.581 +-503.673 341.001 547.102 +-506.914 337.09 540.827 +-509.687 332.928 534.151 +-512.806 329.053 527.933 +-516.416 325.538 522.294 +-518.779 321.292 515.481 +-521.567 317.368 509.186 +-524.331 313.483 502.952 +-527.476 309.871 497.158 +-530.136 306.021 490.981 +-533.664 302.711 485.67 +-536.091 298.817 479.422 +-141.849 77.6973 124.658 +-142.355 76.6246 122.937 +-142.482 75.3662 120.918 +-142.935 74.2977 119.203 +-142.357 72.7167 116.667 +-142.101 71.3287 114.44 +-143.345 70.7061 113.441 +-148.414 71.9354 115.413 +-156.283 74.4331 119.421 +-156.831 73.3937 117.753 +-157.81 72.5627 116.42 +-159.381 72.0031 115.522 +-161.099 71.5027 114.719 +-161.81 70.5548 113.198 +-583.947 250.126 401.303 +-587.817 247.323 396.805 +-590.929 244.209 391.81 +-134.711 54.6768 87.7234 +-597.379 238.112 382.027 +-601.205 235.314 377.538 +-604.578 232.343 372.772 +-2667.45 1006.42 1614.7 +-385.657 142.838 229.17 +-614.551 223.413 358.444 +-601.301 214.534 344.199 +-601.482 210.582 337.858 +-605.52 207.999 333.714 +-381.888 128.688 206.468 +-383.403 126.724 203.317 +-382.153 123.872 198.741 +-382.639 121.613 195.116 +-381.874 118.983 190.897 +-381.571 116.528 186.958 +-376.429 112.653 180.74 +-377.923 110.808 177.781 +-638.285 183.314 294.109 +-2892.98 813.645 1305.41 +-379.818 104.585 167.796 +-379.48 102.276 164.091 +-380.795 100.425 161.122 +-2944.9 759.745 1218.94 +-381.342 96.2117 154.362 +-673.749 166.183 266.624 +-678.103 163.462 262.258 +-682.967 160.842 258.055 +-114.724 26.386 42.3337 +-112.67 25.2974 40.5872 +-111.42 24.412 39.1666 +-110.52 23.6194 37.8949 +-109.789 22.8757 36.7017 +-109.042 22.1406 35.5223 +-109.122 21.5808 34.6243 +-108.347 20.8592 33.4665 +-109.346 20.4819 32.8611 +-109.302 19.9075 31.9396 +-109.531 19.3854 31.102 +-109.657 18.8464 30.2372 +-109.964 18.3395 29.4239 +-110.358 17.8467 28.6332 +-110.36 17.2916 27.7426 +-111.218 16.8689 27.0645 +-111.492 16.3549 26.2399 +-112.53 15.9492 25.5889 +-113.176 15.4821 24.8395 +-113.428 14.9591 24.0005 +-115.809 14.7066 23.5953 +-118.094 14.4214 23.1377 +-123.306 14.4596 23.199 +-160.025 17.992 28.8664 +-160.022 17.221 27.6294 +-160.594 16.512 26.4918 +-161.745 15.8568 25.4406 +-3226.72 300.952 482.847 +-860.337 76.1538 122.181 +-870.055 72.8912 116.947 +-381.266 30.14 48.3566 +-380.857 28.3127 45.4249 +-381.111 26.5398 42.5805 +-404.264 26.2558 42.1249 +-404.98 24.4067 39.1581 +-405.367 22.5364 36.1575 +-404.429 20.5985 33.0483 +-404.754 18.7309 30.0519 +-404.748 16.8495 27.0333 +-405.41 14.9953 24.0584 +-3270.39 105.804 169.752 +-402.747 11.1647 17.9126 +-405.014 9.35362 15.007 +-403.554 7.45421 11.9595 +-147.25 2.03957 3.27228 +-145.578 1.34411 2.15648 +-146.394 0.675768 1.0842 +119.8 1.77636e-15 -1.13687e-13 +119.895 0.561436 0.882923 +119.882 1.12283 1.76578 +120.559 1.69397 2.66397 +119.927 2.24719 3.53397 +120.385 2.82038 4.43537 +120.535 3.38959 5.33053 +120.375 3.95059 6.21277 +120.306 4.51411 7.09896 +120.129 5.07306 7.97798 +120.838 5.6728 8.92113 +120.443 6.22296 9.78632 +120.238 6.78112 10.6641 +120.918 7.39245 11.6255 +120.892 7.96494 12.5258 +120.659 8.52368 13.4045 +121.11 9.13319 14.363 +120.858 9.69199 15.2418 +120.597 10.2491 16.1179 +120.721 10.84 17.0472 +121.131 11.4608 18.0234 +120.252 11.9591 18.8071 +120.74 12.5934 19.8046 +120.433 13.1476 20.6761 +120.997 13.8003 21.7026 +120.768 14.3664 22.5928 +120.53 14.9313 23.4812 +121.157 15.6079 24.5452 +120.802 16.1616 25.416 +121.309 16.8341 26.4736 +121.031 17.4015 27.3659 +121.032 18.0106 28.3237 +120.734 18.5767 29.214 +121.099 19.248 30.2696 +120.877 19.83 31.185 +121.408 20.5404 32.3022 +121.069 21.1082 33.1951 +121.101 21.7424 34.1924 +121.405 22.4309 35.2753 +121.129 23.0165 36.1961 +120.938 23.6195 37.1444 +120.737 24.2224 38.0926 +120.805 24.883 39.1315 +120.396 25.4478 40.0196 +120.997 26.2317 41.2524 +120.936 26.8794 42.271 +121.599 27.6963 43.5556 +121.052 28.2432 44.4157 +118.395 28.2852 44.4817 +115.565 28.2599 44.4419 +112.292 28.097 44.1858 +109.754 28.0904 44.1754 +107.586 28.1563 44.2791 +104.26 27.8929 43.8648 +102.377 27.9903 44.0179 +99.7887 27.8739 43.835 +97.1242 27.7104 43.5778 +95.5274 27.8313 43.7679 +96.7329 28.7717 45.2469 +96.9576 29.435 46.29 +97.1681 30.1025 47.3397 +97.6226 30.856 48.5245 +96.6885 31.1737 49.0243 +96.6041 31.7655 49.9549 +95.999 32.1882 50.6196 +96.231 32.8959 51.7327 +96.3632 33.5791 52.807 +96.6474 34.3252 53.9803 +96.5 34.9265 54.926 +96.0931 35.4378 55.7301 +96.0865 36.1018 56.7743 +96.3913 36.8931 58.0187 +96.3539 37.5639 59.0735 +95.7394 38.0136 59.7809 +95.7564 38.7188 60.8898 +95.7577 39.4271 62.0036 +95.8221 40.1713 63.174 +95.7912 40.8857 64.2974 +95.7444 41.6028 65.4252 +96.4531 42.6639 67.0939 +95.7556 43.114 67.8017 +95.6591 43.8395 68.9426 +95.6217 44.6026 70.1427 +96.1659 45.653 71.7947 +96.1629 46.4607 73.0647 +95.9935 47.1992 74.2261 +95.8805 47.9762 75.4482 +95.7494 48.7558 76.6741 +95.5283 49.5005 77.8452 +95.3616 50.2844 79.0781 +95.8837 51.4499 80.911 +95.604 52.2032 82.0955 +95.3766 52.9962 83.3427 +95.7501 54.1416 85.144 +95.4798 54.9411 86.4013 +95.7987 56.098 88.2206 +95.5519 56.9431 89.5497 +95.086 57.6697 90.6922 +95.3254 58.8416 92.5352 +94.8844 59.6121 93.747 +94.9397 60.7121 95.4768 +94.9029 61.7751 97.1485 +94.3981 62.551 98.3687 +94.9957 64.0824 100.777 +94.4425 64.8632 102.005 +94.4798 66.0689 103.901 +94.2442 67.1088 105.536 +94.3389 68.4105 107.583 +94.6922 69.935 109.981 +94.7707 71.2931 112.117 +94.5828 72.4811 113.985 +94.5332 73.8059 116.068 +94.1122 74.8684 117.739 +93.9397 76.1562 119.764 +93.9502 77.6286 122.08 +94.2424 79.3778 124.831 +94.0077 80.7263 126.951 +94.102 82.3983 129.581 +93.8399 83.802 131.788 +94.0469 85.6715 134.728 +94.05 87.4095 137.462 +93.6097 88.781 139.618 +93.8591 90.8581 142.885 +93.7617 92.6621 145.722 +93.5657 94.4237 148.492 +92.9962 95.858 150.748 +90.4803 95.286 149.848 +88.1687 94.8895 149.225 +88.2003 97.0348 152.598 +87.6951 98.6553 155.147 +91.0742 104.8 164.811 +91.0252 107.176 168.546 +88.872 107.108 168.44 +87.2463 107.668 169.32 +87.6019 110.739 174.15 +87.4432 113.277 178.141 +87.3583 116.02 182.455 +87.4838 119.171 187.41 +91.4913 127.892 201.125 +92.7699 133.14 209.378 +92.3796 136.192 214.177 +92.2976 139.856 219.94 +92.0381 143.429 225.558 +91.9866 147.518 231.989 +91.5926 151.26 237.874 +91.595 155.88 245.139 +91.6001 160.767 252.824 +91.2825 165.357 260.044 +91.236 170.73 268.493 +90.1395 174.408 274.277 +88.9043 178.037 279.984 +87.9335 182.447 286.918 +90.5756 194.931 306.551 +88.3357 197.434 310.489 +85.2115 198.049 311.456 +81.4895 197.236 310.176 +78.3411 197.768 311.013 +74.6234 196.813 309.511 +71.4198 197.154 310.048 +68.0467 197.006 309.815 +64.8402 197.318 310.305 +61.4637 197.085 309.938 +58.2875 197.471 310.546 +54.8521 196.94 309.711 +51.6332 197.136 310.019 +48.2686 196.732 309.384 +45.0917 197.057 309.895 +41.7833 196.781 309.461 +38.5815 196.969 309.757 +35.3 196.715 309.357 +32.0907 196.82 309.522 +28.7631 196.106 308.4 +25.6216 196.608 309.189 +22.4414 196.881 309.619 +19.1864 196.443 308.93 +15.9734 196.311 308.722 +12.7837 196.432 308.912 +9.57553 196.216 308.573 +6.38409 196.253 308.631 +3.18519 195.847 307.992 +2.06501e-14 196.498 309.016 +-3.1878 196.008 308.245 +-6.39282 196.522 309.053 +-9.56506 196.002 308.235 +-12.7872 196.486 308.997 +-15.9385 195.882 308.047 +-19.1654 196.229 308.592 +-22.2949 195.596 307.598 +-25.5657 196.18 308.516 +-28.669 195.465 307.391 +-31.9426 195.911 308.092 +-35.022 195.166 306.922 +-38.3724 195.902 308.079 +-41.4777 195.342 307.198 +-44.7504 195.566 307.55 +-47.9553 195.456 307.376 +-51.1461 195.277 307.095 +-54.32 195.03 306.706 +-57.5992 195.139 306.879 +-60.8035 194.968 306.609 +-64.0935 195.046 306.732 +-67.2267 194.632 306.082 +-70.5993 194.889 306.486 +-73.7861 194.604 306.037 +-77.1352 194.724 306.225 +-80.429 194.669 306.14 +-83.9967 195.226 307.016 +-86.9584 194.356 305.647 +-90.4788 194.723 306.224 +-93.9175 194.863 306.444 +-97.2901 194.83 306.393 +-100.535 194.522 305.909 +-104.246 195.076 306.779 +-107.386 194.529 305.919 +-111.043 194.891 306.489 +-114.178 194.312 305.578 +-117.921 194.74 306.251 +-121.337 194.587 306.011 +-125.083 194.925 306.542 +-128.015 193.978 305.053 +-131.849 194.38 305.685 +-137.141 196.821 309.523 +-141.233 197.423 310.471 +-143.155 195.007 306.671 +-143.287 190.299 299.268 +-143.085 185.358 291.497 +-144.102 182.162 286.47 +-149.052 183.94 289.268 +-158.831 191.422 301.033 +-164.882 194.138 305.304 +-1384.71 1593.41 2505.81 +-1410.57 1586.86 2495.52 +-443.325 487.731 767.013 +-445.618 479.586 754.204 +-447.362 471.122 740.894 +-449.605 463.44 728.814 +-451.913 456.059 717.205 +-454.16 448.832 705.841 +-456.109 441.526 694.351 +-458.988 435.311 684.577 +-467.65 434.632 683.509 +-478.71 436.078 685.784 +-485.938 433.958 682.449 +-487.073 426.496 670.714 +-487.049 418.238 657.727 +-489.372 412.185 648.209 +-478.901 395.702 622.288 +-479.136 388.433 610.856 +-481.689 383.194 602.618 +-484.73 378.448 595.153 +-486.852 373.087 586.722 +-490.171 368.74 579.886 +-492.74 363.913 572.295 +-495.725 359.478 565.32 +-497.942 354.572 557.605 +-501.437 350.652 551.44 +-504.288 346.345 544.668 +-506.914 341.955 537.764 +-510.316 338.151 531.781 +-513.379 334.175 525.528 +-515.837 329.867 518.755 +-518.779 325.929 512.562 +-521.567 321.949 506.302 +-524.729 318.249 500.483 +-527.877 314.583 494.718 +-530.744 310.794 488.759 +-534.278 307.433 483.474 +-536.504 303.363 477.074 +-142.474 79.1664 124.498 +-142.985 78.075 122.782 +-142.411 76.4159 120.173 +-142.935 75.3701 118.528 +-142.501 73.8408 116.123 +-142.028 72.3212 113.733 +-143.857 71.9826 113.201 +-148.93 73.2275 115.159 +-156.506 75.6153 118.914 +-157.206 74.6307 117.365 +-158.036 73.7158 115.927 +-159.077 72.9034 114.649 +-161.329 72.6383 114.232 +-162.813 72.0169 113.255 +-584.647 254.041 399.508 +-588.287 251.093 394.872 +-591.56 247.998 390.006 +-134.949 55.5636 87.3802 +-597.459 241.581 379.914 +-602.169 239.093 376.002 +-2650.74 1033.4 1625.14 +-2667.45 1020.95 1605.56 +-2683.95 1008.42 1585.85 +-615.128 226.851 356.749 +-604.037 218.621 343.806 +-601.649 213.681 336.038 +-606.191 211.236 332.192 +-384.165 131.324 206.523 +-382.809 128.355 201.853 +-383.944 126.249 198.541 +-382.382 123.285 193.88 +-382.046 120.755 189.901 +-382.61 118.532 186.405 +-376.69 114.358 179.841 +-378.011 112.434 176.815 +-638.373 185.985 292.483 +-2892.98 825.389 1298.02 +-381.415 106.54 167.547 +-380.103 103.922 163.429 +-383.569 102.617 161.377 +-665.737 174.231 273.998 +-381.072 97.5311 153.379 +-673.477 168.514 265.008 +-678.649 165.955 260.983 +-682.967 163.163 256.593 +-113.715 26.5315 41.7238 +-112.67 25.6625 40.3573 +-110.773 24.6206 38.7187 +-110.428 23.9401 37.6487 +-109.789 23.2058 36.4939 +-109.229 22.4986 35.3817 +-109.31 21.9299 34.4873 +-109.192 21.3254 33.5367 +-109.346 20.7775 32.675 +-109.302 20.1948 31.7587 +-109.342 19.6311 30.8722 +-109.752 19.135 30.092 +-109.964 18.6042 29.2573 +-109.593 17.9788 28.2737 +-111.031 17.6478 27.7532 +-111.218 17.1124 26.9112 +-112.456 16.7344 26.3167 +-112.53 16.1794 25.444 +-113.37 15.7325 24.7411 +-114.495 15.3178 24.0891 +-115.809 14.9189 23.4617 +-117.217 14.5209 22.8358 +-123.013 14.6335 23.0128 +-158.46 18.0732 28.4221 +-160.218 17.491 27.5066 +-161.281 16.8219 26.4545 +-161.844 16.0955 25.312 +-3226.72 305.295 480.112 +-860.534 77.2707 121.517 +-869.758 73.9181 116.245 +-381.562 30.5988 48.1202 +-380.857 28.7214 45.1676 +-381.111 26.9229 42.3393 +-403.371 26.5759 41.7937 +-405.278 24.7772 38.9651 +-405.367 22.8617 35.9527 +-403.633 20.8547 32.7965 +-403.957 18.9639 29.8229 +-404.449 17.08 26.8603 +-403.814 15.1518 23.828 +-146.327 4.8023 7.55218 +-404.844 11.3848 17.9039 +-404.415 9.47457 14.8999 +-403.954 7.56931 11.9036 +-145.15 2.03951 3.20736 +-145.078 1.35882 2.1369 +-146.194 0.684588 1.07659 +120.7 5.32907e-15 2.84217e-14 +119.895 0.569377 0.877824 +119.882 1.13871 1.75558 +120.559 1.71793 2.64858 +120.726 2.29417 3.53698 +120.285 2.85789 4.40608 +120.535 3.43754 5.29974 +120.475 4.0098 6.18201 +120.406 4.58175 7.06381 +120.129 5.14482 7.9319 +120.838 5.75303 8.8696 +120.443 6.31098 9.7298 +121.133 6.92824 10.6814 +120.918 7.49701 11.5583 +120.793 8.07095 12.4432 +120.461 8.63004 13.3052 +121.011 9.25481 14.2684 +120.858 9.82908 15.1537 +120.498 10.3856 16.0118 +120.721 10.9933 16.9487 +120.344 11.5473 17.8028 +121.039 12.2076 18.8208 +120.838 12.7819 19.7063 +120.433 13.3336 20.5567 +121.095 14.0068 21.5947 +120.768 14.5696 22.4623 +120.627 15.1547 23.3644 +121.157 15.8286 24.4034 +120.608 16.3639 25.2286 +121.309 17.0722 26.3207 +121.031 17.6476 27.2078 +120.936 18.2508 28.1377 +121.503 18.9594 29.2302 +121.099 19.5202 30.0948 +120.781 20.0945 30.9803 +120.454 20.6673 31.8634 +120.974 21.3899 32.9774 +121.006 22.0327 33.9683 +121.499 22.7659 35.0988 +121.224 23.3602 36.015 +120.938 23.9536 36.9298 +120.737 24.565 37.8726 +120.805 25.235 38.9054 +121.14 25.9673 40.0344 +121.09 26.6231 41.0455 +121.583 27.4053 42.2515 +121.507 28.0667 43.2712 +122.244 28.9248 44.5941 +118.395 28.6852 44.2248 +115.656 28.6822 44.2201 +113.198 28.7244 44.2851 +110.386 28.6517 44.1731 +106.956 28.3876 43.7659 +104.976 28.4816 43.9109 +102.288 28.3614 43.7256 +99.7887 28.2682 43.5818 +97.1242 28.1023 43.326 +95.7911 28.3028 43.6351 +96.7329 29.1787 44.9855 +97.0447 29.8781 46.0639 +96.3886 30.2834 46.6887 +97.2779 31.1819 48.074 +96.9456 31.6987 48.8707 +96.5189 32.1863 49.6224 +96.0838 32.6723 50.3717 +96.1466 33.332 51.3888 +96.3632 34.054 52.502 +96.564 34.7807 53.6222 +96.0026 35.2379 54.3271 +96.0931 35.939 55.4082 +96.0865 36.6125 56.4464 +96.3913 37.415 57.6836 +95.6258 37.8073 58.2885 +95.7394 38.5513 59.4355 +95.7564 39.2665 60.5381 +96.4718 40.2829 62.1052 +95.9009 40.773 62.8607 +95.8695 41.4978 63.9782 +95.8221 42.2255 65.1001 +95.7586 42.9558 66.2261 +95.7556 43.7238 67.41 +95.6591 44.4595 68.5444 +95.6217 45.2334 69.7375 +95.6416 46.0464 70.9909 +95.4198 46.7537 72.0814 +95.9935 47.8667 73.7974 +95.8805 48.6548 75.0124 +95.7494 49.4454 76.2312 +95.6722 50.2762 77.5122 +95.4329 51.0338 78.6801 +95.813 52.1392 80.3843 +95.6741 52.9803 81.6811 +95.3766 53.7458 82.8613 +95.819 54.9466 84.7126 +95.4798 55.7182 85.9022 +95.3258 56.6107 87.2781 +95.4849 57.7083 88.9703 +95.086 58.4854 90.1684 +95.2598 59.633 91.9378 +94.9493 60.4966 93.2692 +94.9397 61.5708 94.9254 +94.9665 62.6913 96.6528 +94.3981 63.4357 97.8005 +94.4977 64.6482 99.6697 +94.504 65.8236 101.482 +94.358 66.9174 103.168 +94.3646 68.145 105.061 +94.6958 69.6404 107.366 +94.1044 70.4839 108.667 +94.7127 72.2568 111.4 +94.0665 73.1052 112.708 +94.5332 74.8498 115.398 +94.224 76.0176 117.198 +93.9949 77.279 119.143 +94.4404 79.1369 122.007 +94.1349 80.4086 123.968 +93.9547 81.8218 126.147 +93.6317 83.1463 128.189 +93.8399 84.9873 131.027 +93.9961 86.8364 133.878 +93.55 88.1745 135.941 +93.5112 89.942 138.666 +93.5198 91.8102 141.546 +93.7617 93.9727 144.88 +93.284 95.4714 147.191 +91.7033 95.8621 147.793 +89.9355 96.0515 148.085 +88.0348 96.0858 148.138 +88.0249 98.2119 151.416 +87.7812 100.149 154.402 +90.4826 105.592 162.794 +91.3155 109.038 168.107 +88.9533 108.722 167.62 +87.4058 109.39 168.65 +87.5628 112.255 173.067 +87.4814 114.93 177.19 +87.2459 117.51 181.168 +87.4838 120.857 186.328 +90.2012 127.872 197.143 +92.805 135.074 208.248 +92.3454 138.067 212.861 +92.4979 142.142 219.144 +92.0381 145.457 224.255 +91.7962 149.295 230.172 +91.7162 153.607 236.82 +91.5649 158.033 243.643 +91.3954 162.677 250.803 +91.3109 167.748 258.622 +91.236 173.145 266.942 +89.5249 175.669 270.833 +88.3867 179.504 276.746 +89.9866 189.347 291.922 +90.5272 197.582 304.618 +87.7054 198.798 306.492 +84.5816 199.366 307.368 +80.7536 198.22 305.6 +77.8006 199.181 307.083 +74.0851 198.156 305.503 +71.0954 199.035 306.857 +67.4271 197.974 305.221 +64.4235 198.822 306.53 +60.9191 198.101 305.417 +57.8808 198.867 306.598 +54.32 197.788 304.935 +51.3688 198.901 306.651 +47.8509 197.789 304.936 +44.7748 198.44 305.94 +41.3871 197.672 304.756 +38.3201 198.402 305.882 +34.9454 197.493 304.48 +31.9164 198.519 306.062 +28.567 197.524 304.528 +25.5099 198.52 306.064 +22.1728 197.276 304.146 +19.0869 198.189 305.553 +15.8208 197.185 304.005 +12.7209 198.231 305.619 +9.50485 197.523 304.526 +6.35442 198.105 305.423 +3.16337 197.256 304.115 +1.93179e-14 198.352 305.805 +-3.15813 196.93 303.612 +-6.34569 197.833 305.004 +-9.49438 197.305 304.191 +-12.6895 197.742 304.864 +-15.8164 197.131 303.921 +-19.0294 197.592 304.632 +-22.1484 197.059 303.811 +-25.3565 197.327 304.223 +-28.4493 196.71 303.273 +-31.7683 197.598 304.641 +-34.7537 196.41 302.811 +-38.1111 197.32 304.213 +-41.1607 196.591 303.089 +-44.5311 197.36 304.275 +-47.4854 196.278 302.607 +-51.0069 197.5 304.49 +-53.8026 195.905 302.031 +-57.3489 197.039 303.78 +-60.3084 196.115 302.356 +-63.7983 196.893 303.555 +-66.5889 195.512 301.426 +-70.275 196.738 303.316 +-73.188 195.757 301.803 +-76.7818 196.573 303.061 +-79.6931 195.616 301.587 +-83.4119 196.609 303.117 +-86.3048 195.623 301.597 +-89.8982 196.209 302.501 +-92.9911 195.67 301.669 +-96.6171 196.219 302.516 +-99.573 195.386 301.232 +-103.557 196.527 302.991 +-106.335 195.35 301.175 +-110.312 196.346 302.712 +-113.186 195.348 301.173 +-117.087 196.097 302.327 +-120.005 195.172 300.902 +-124.237 196.344 302.709 +-127.147 195.388 301.234 +-131.096 196.004 302.184 +-135.951 197.871 305.063 +-140.337 198.945 306.719 +-143.302 197.968 305.212 +-143.324 193.042 297.617 +-142.626 187.376 288.883 +-144.571 185.339 285.743 +-150.009 187.74 289.443 +-158.261 193.433 298.221 +-163.845 195.646 301.632 +-168.878 197.079 303.843 +-442.35 504.672 778.067 +-443.851 495.216 763.488 +-446.421 487.246 751.199 +-447.816 478.271 737.362 +-450.205 470.623 725.572 +-452.336 462.942 713.729 +-454.446 455.467 702.206 +-457.079 448.723 691.808 +-460.121 442.557 682.301 +-469.2 442.24 681.813 +-480.588 443.981 684.497 +-484.187 438.51 676.062 +-488.275 433.595 668.485 +-487.367 424.43 654.355 +-490.178 418.703 645.526 +-477.104 399.793 616.371 +-479.854 394.517 608.237 +-482.528 389.291 600.18 +-485.354 384.294 592.476 +-487.54 378.899 584.158 +-490.52 374.221 576.946 +-493.269 369.456 569.6 +-495.963 364.737 562.325 +-498.844 360.239 555.389 +-501.802 355.87 548.654 +-504.288 351.244 541.522 +-507.536 347.217 535.314 +-510.316 342.933 528.709 +-514.269 339.489 523.399 +-516.994 335.283 516.915 +-519.948 331.284 510.75 +-522.551 327.119 504.327 +-525.524 323.239 498.346 +-528.078 319.154 492.048 +-531.554 315.671 486.679 +-534.278 311.782 480.682 +-537.811 308.404 475.474 +-141.71 79.8552 123.115 +-143.196 79.2958 122.252 +-142.694 77.6507 119.716 +-143.363 76.6652 118.197 +-141.782 74.507 114.869 +-142.754 73.7185 113.654 +-145.247 73.706 113.634 +-151.142 75.3663 116.194 +-156.729 76.7942 118.396 +-157.056 75.6139 116.576 +-158.263 74.8656 115.422 +-159.761 74.2523 114.477 +-161.635 73.8056 113.788 +-582.885 261.473 403.12 +-585.502 258.01 397.781 +-588.678 254.814 392.853 +-592.19 251.774 388.167 +-133.283 55.654 85.8032 +-133.532 54.7567 84.4198 +-602.089 242.443 373.78 +-2650.74 1048.02 1615.76 +-383.855 148.996 229.711 +-384.756 146.606 226.026 +-386.762 144.65 223.01 +-617.301 226.581 349.326 +-608.07 219.016 337.662 +-606.023 214.164 330.182 +-384.924 133.445 205.736 +-383.572 130.429 201.086 +-382.494 127.551 196.649 +-380.154 124.3 191.637 +-381.788 122.38 188.676 +-382.956 120.317 185.496 +-379.475 116.833 180.125 +-375.299 113.206 174.533 +-2879.27 850.722 1311.58 +-2892.98 837.063 1290.52 +-378.665 107.268 165.378 +-380.46 105.491 162.638 +-381.242 103.437 159.472 +-665.737 176.695 272.416 +-670.711 174.089 268.398 +-674.565 171.173 263.902 +-679.468 168.505 259.788 +-682.327 165.316 254.873 +-114.357 27.0586 41.717 +-112.302 25.9405 39.9931 +-110.866 24.9897 38.5272 +-110.613 24.3196 37.4941 +-109.882 23.554 36.3138 +-109.229 22.8168 35.1773 +-109.216 22.221 34.2587 +-109.192 21.627 33.343 +-109.252 21.0532 32.4583 +-109.302 20.4805 31.5753 +-109.057 19.857 30.614 +-109.752 19.4057 29.9182 +-109.296 18.7528 28.9117 +-110.453 18.3762 28.3311 +-111.223 17.9283 27.6406 +-111.314 17.3695 26.7789 +-111.877 16.8838 26.0302 +-112.434 16.3941 25.2753 +-113.757 16.0095 24.6823 +-114.398 15.5213 23.9296 +-116.198 15.1807 23.4045 +-117.801 14.7997 22.8172 +-123.99 14.9582 23.0615 +-160.221 18.5324 28.5719 +-161.394 17.8685 27.5484 +-162.067 17.143 26.4298 +-164.499 16.5908 25.5785 +-853.139 81.861 126.207 +-861.915 78.4893 121.009 +-870.647 75.0403 115.692 +-380.87 30.9753 47.7554 +-382.045 29.2185 45.0469 +-384.383 27.538 42.4561 +-405.257 27.0778 41.7466 +-404.98 25.1092 38.7115 +-405.168 23.1737 35.7275 +-404.828 21.2123 32.7035 +-404.156 19.2416 29.6653 +-404.15 17.3088 26.6854 +-404.811 15.4041 23.7489 +-145.827 4.85361 7.48294 +-403.946 11.5202 17.7609 +-404.115 9.60145 14.8028 +-403.554 7.66875 11.8231 +-147.449 2.10112 3.23935 +-145.478 1.38184 2.13042 +-146.394 0.695218 1.07184 +119.8 1.77636e-15 -1.13687e-13 +119.895 0.577273 0.872651 +119.882 1.1545 1.74524 +120.559 1.74176 2.63297 +120.726 2.32599 3.51614 +120.385 2.89993 4.38376 +120.535 3.48521 5.26851 +120.375 4.06203 6.14049 +120.406 4.64529 7.02219 +120.129 5.21617 7.88516 +120.838 5.83282 8.81734 +120.443 6.3985 9.67247 +120.238 6.9724 10.54 +120.918 7.60098 11.4902 +120.793 8.18288 12.3699 +120.659 8.76412 13.2485 +121.011 9.38315 14.1843 +120.858 9.96539 15.0645 +120.597 10.5382 15.9304 +120.82 11.1549 16.8626 +120.344 11.7075 17.6979 +121.039 12.3769 18.7099 +120.74 12.9487 19.5742 +120.531 13.5295 20.4523 +121.192 14.2125 21.4848 +120.865 14.7835 22.3479 +120.53 15.3525 23.208 +121.157 16.0481 24.2596 +120.608 16.5908 25.08 +121.018 17.2676 26.103 +121.127 17.9067 27.0691 +121.032 18.5186 27.9942 +121.503 19.2224 29.058 +121.291 19.8222 29.9649 +121.738 20.5345 31.0416 +121.217 21.0867 31.8763 +121.355 21.7548 32.8862 +121.291 22.3907 33.8476 +121.688 23.1175 34.9462 +121.224 23.6841 35.8028 +121.032 24.3046 36.7407 +121.674 25.0989 37.9415 +120.712 25.5652 38.6463 +121.14 26.3274 39.7985 +120.812 26.9303 40.7099 +121.675 27.8065 42.0345 +121.23 28.3913 42.9185 +121.51 29.1499 44.0653 +119.126 29.2626 44.2356 +116.839 29.3774 44.4091 +113.288 29.146 44.0594 +110.296 29.0253 43.8769 +107.765 28.9989 43.8371 +105.781 29.0982 43.9871 +103.089 28.9802 43.8087 +100.587 28.8895 43.6716 +97.8306 28.6992 43.3839 +96.0547 28.7743 43.4974 +96.7329 29.5833 44.7205 +96.9576 30.2653 45.7514 +97.2547 30.9792 46.8306 +97.1918 31.5863 47.7483 +97.1171 32.1951 48.6687 +96.4336 32.6038 49.2865 +96.1687 33.1546 50.119 +96.231 33.8239 51.1308 +96.4471 34.5563 52.2381 +96.564 35.263 53.3063 +96.0026 35.7265 54.007 +96.0931 36.4374 55.0817 +96.0865 37.1202 56.1138 +95.4958 37.5814 56.811 +96.3539 38.6235 58.3863 +96.3824 39.3485 59.4823 +95.5967 39.7446 60.0811 +95.8371 40.5728 61.333 +95.8221 41.3044 62.439 +95.8695 42.0733 63.6013 +95.7444 42.7764 64.6641 +95.8358 43.5866 65.8889 +95.7556 44.3301 67.0129 +95.6591 45.0761 68.1405 +95.6217 45.8607 69.3266 +95.5667 46.6483 70.5173 +96.1629 47.7712 72.2147 +95.9935 48.5305 73.3626 +95.8805 49.3296 74.5704 +95.7494 50.1311 75.7821 +95.5283 50.8968 76.9395 +96.0748 52.0895 78.7426 +95.8837 52.9012 79.9696 +95.0433 53.3609 80.6645 +95.4461 54.5308 82.433 +95.819 55.7086 84.2134 +95.548 56.5312 85.457 +95.7987 57.6804 87.1942 +95.4849 58.5086 88.4461 +95.086 59.2964 89.6371 +95.2598 60.46 91.3961 +95.4039 61.6297 93.1642 +95.1326 62.5516 94.5579 +94.9665 63.5607 96.0833 +94.5239 64.401 97.3535 +95.1825 66.0197 99.8006 +94.504 66.7364 100.884 +95.0277 68.3265 103.288 +94.485 69.1783 104.575 +94.1604 70.2073 106.131 +94.4571 71.729 108.431 +94.1319 72.8098 110.065 +94.5828 74.5256 112.659 +94.5898 75.9331 114.786 +94.1681 77.026 116.439 +93.8845 78.2586 118.302 +94.3859 80.1885 121.219 +94.2424 81.6169 123.379 +93.8487 82.8627 125.262 +94.102 84.7226 128.073 +93.8399 86.1659 130.255 +93.9454 87.9932 133.017 +94.05 89.8751 135.862 +93.5112 91.1893 137.849 +93.5198 93.0834 140.712 +94.0003 95.5181 144.393 +93.3309 96.8439 146.397 +90.0872 95.479 144.333 +89.0729 96.4495 145.801 +88.2133 97.6158 147.564 +88.0688 99.6235 150.599 +87.4368 101.139 152.89 +88.8766 105.157 158.963 +92.1034 111.504 168.559 +89.2787 110.633 167.242 +87.8045 111.413 168.421 +87.5238 113.761 171.971 +87.1753 116.116 175.529 +87.5456 119.549 180.72 +87.5571 122.635 185.385 +91.133 130.985 198.006 +92.84 136.999 207.099 +92.3454 139.982 211.607 +92.1641 143.593 217.066 +92.1358 147.631 223.171 +92.2405 152.098 229.923 +91.9017 156.052 235.9 +91.4747 160.066 241.969 +91.5123 165.143 249.644 +91.4245 170.286 257.418 +91.3462 175.758 265.689 +89.418 177.893 268.916 +87.3773 179.915 271.974 +90.7878 193.682 292.785 +90.2853 199.787 302.013 +86.3281 198.39 299.901 +83.6368 199.873 302.144 +79.5632 198.006 299.321 +77.0937 200.108 302.499 +73.0085 197.985 299.289 +70.2559 199.412 301.447 +66.4977 197.953 299.241 +63.781 199.569 301.684 +59.9618 197.692 298.847 +57.3176 199.662 301.825 +53.5661 197.748 298.931 +50.7425 199.201 301.127 +47.2113 197.851 299.087 +44.3483 199.276 301.241 +40.7192 197.179 298.071 +38.017 199.563 301.674 +34.4182 197.212 298.121 +31.5852 199.184 301.101 +28.1668 197.458 298.493 +25.2309 199.072 300.933 +21.8981 197.534 298.608 +18.8985 198.954 300.754 +15.607 197.218 298.131 +12.6057 199.161 301.067 +9.34779 196.953 297.729 +6.28461 198.645 300.287 +3.1145 196.902 297.653 +1.94289e-14 198.841 300.583 +-3.11537 196.957 297.736 +-6.2881 198.755 300.454 +-9.34779 196.953 297.729 +-12.5743 198.665 300.317 +-15.5765 196.833 297.548 +-18.8828 198.789 300.505 +-21.7943 196.598 297.192 +-25.1542 198.467 300.018 +-28.0256 196.468 296.996 +-31.4458 198.304 299.772 +-34.2361 196.168 296.543 +-37.7661 198.246 299.684 +-40.5494 196.357 296.828 +-44.0436 197.906 299.171 +-46.872 196.429 296.937 +-50.3528 197.671 298.815 +-53.0931 196.002 296.292 +-56.7544 197.701 298.86 +-59.4171 195.896 296.132 +-63.1037 197.45 298.481 +-65.7688 195.783 295.96 +-69.4736 197.191 298.09 +-72.0715 195.444 295.448 +-75.8878 196.978 297.768 +-78.6325 195.69 295.82 +-82.4671 197.078 297.918 +-85.0908 195.547 295.604 +-88.9305 196.789 297.482 +-91.6892 195.606 295.693 +-95.8148 197.288 298.237 +-98.2101 195.384 295.357 +-102.427 197.078 297.919 +-104.915 195.414 295.403 +-108.938 196.589 297.18 +-111.562 195.216 295.103 +-115.974 196.928 297.691 +-118.228 194.949 294.699 +-122.804 196.772 297.456 +-125.044 194.821 294.507 +-129.797 196.752 297.425 +-132.483 195.499 295.532 +-138.76 199.438 301.486 +-141.323 197.941 299.223 +-143.399 195.821 296.018 +-142.856 190.28 287.643 +-145.118 188.621 285.134 +-149.292 189.432 286.361 +-157.936 195.713 295.855 +-160.777 194.643 294.238 +-167.61 198.312 299.784 +-169.406 195.954 296.219 +-444.114 502.381 759.439 +-446.822 494.447 747.445 +-448.77 485.936 734.578 +-450.62 477.59 721.962 +-452.618 469.654 709.966 +-455.019 462.366 698.948 +-457.515 455.381 688.389 +-463.026 451.527 682.564 +-472 451.049 681.841 +-483.38 452.753 684.416 +-485.629 445.915 674.08 +-485.924 437.492 661.346 +-488.162 431.018 651.561 +-490.823 425.068 642.566 +-477.431 405.615 613.159 +-480.848 400.816 605.905 +-482.863 394.964 597.059 +-486.203 390.305 590.016 +-488.515 384.922 581.878 +-491.681 380.309 574.905 +-494.092 375.205 567.189 +-497.331 370.816 560.554 +-499.567 365.763 552.916 +-503.141 361.769 546.878 +-505.951 357.289 540.105 +-509.466 353.371 534.184 +-511.512 348.504 526.825 +-514.842 344.58 520.894 +-517.83 340.482 514.699 +-521.442 336.843 509.199 +-523.141 332.03 501.922 +-526.319 328.218 496.16 +-529.282 324.318 490.265 +-532.77 320.781 484.918 +-535.164 316.63 478.642 +-539.119 313.441 473.822 +-141.155 80.6454 121.91 +-142.775 80.1593 121.175 +-143.118 78.9615 119.364 +-142.365 77.1866 116.681 +-141.998 75.6556 114.367 +-143.261 75.0067 113.386 +-147.002 75.6313 114.33 +-155.492 78.6106 118.834 +-156.581 77.7852 117.586 +-157.88 77.0647 116.497 +-158.64 76.0848 115.016 +-160.218 75.4972 114.127 +-162.018 75.0067 113.386 +-583.965 265.591 401.487 +-586.201 261.901 395.909 +-590.321 259.069 391.628 +-593.057 255.639 386.444 +-597.395 252.908 382.316 +-134.89 56.081 84.7764 +-134.485 54.9041 82.9973 +-606.925 243.286 367.769 +-2667.45 1049.75 1586.88 +-385.984 149.114 225.412 +-382.147 144.906 219.051 +-620.535 230.927 349.087 +-625.331 228.357 345.202 +-607.701 217.735 329.145 +-611.29 214.86 324.799 +-383.657 132.267 199.946 +-382.835 129.435 195.665 +-382.039 126.649 191.453 +-381.271 123.909 187.311 +-382.35 121.793 184.112 +-381.129 118.969 179.843 +-376.174 115.044 173.909 +-377.1 112.965 170.766 +-2892.98 848.671 1282.92 +-379.907 109.113 164.943 +-380.103 106.853 161.528 +-383.569 105.512 159.499 +-667.085 179.508 271.358 +-671.794 176.788 267.247 +-676.196 173.967 262.981 +-680.742 171.162 258.742 +-114.285 28.0732 42.4377 +-112.798 27.0599 40.9058 +-111.657 26.1493 39.5293 +-111.235 25.4207 38.4279 +-109.871 24.4915 37.0232 +-109.231 23.7391 35.8859 +-109.416 23.1728 35.0297 +-109.122 22.5099 34.0277 +-109.38 21.9647 33.2035 +-109.723 21.4373 32.4062 +-109.113 20.7286 31.3349 +-109.342 20.1849 30.5131 +-109.847 19.6918 29.7677 +-109.487 19.046 28.7915 +-110.549 18.6472 28.1886 +-110.456 18.0516 27.2882 +-111.314 17.6103 26.6212 +-112.552 17.2212 26.0328 +-112.724 16.6644 25.1911 +-113.37 16.1762 24.4533 +-114.107 15.6965 23.7281 +-116.004 15.3655 23.2277 +-118.678 15.1167 22.8515 +-131.8 16.121 24.3697 +-160.221 18.7894 28.4036 +-162.374 18.2263 27.5523 +-161.38 17.307 26.1626 +-164.4 16.8109 25.4126 +-854.025 83.0829 125.595 +-863.099 79.687 120.461 +-871.931 76.1929 115.179 +-381.562 31.4619 47.5603 +-380.857 29.5315 44.6422 +-3248.47 235.955 356.688 +-405.058 27.4399 41.4803 +-405.278 25.4761 38.5117 +-404.472 23.4547 35.4559 +-403.633 21.443 32.4149 +-405.152 19.5565 29.5631 +-404.051 17.5445 26.5217 +-402.916 15.5446 23.4984 +-142.733 4.81651 7.28101 +-403.346 11.6626 17.6301 +-403.815 9.72743 14.7047 +-404.553 7.79436 11.7826 +-146.85 2.12159 3.20716 +-144.878 1.39522 2.10913 +-147.094 0.70823 1.07062 +119.9 5.32907e-15 2.84217e-14 +119.995 0.585609 0.868129 +119.882 1.1702 1.73475 +119.759 1.75373 2.59979 +119.827 2.34005 3.46898 +120.485 2.9418 4.36104 +120.535 3.53259 5.23685 +120.375 4.11726 6.10359 +120.605 4.71626 6.99156 +121.026 5.32658 7.89632 +120.938 5.91699 8.77157 +120.742 6.5016 9.63822 +121.232 7.12564 10.5633 +121.017 7.7107 11.4306 +120.793 8.29414 12.2956 +121.551 8.94899 13.2663 +121.011 9.51074 14.0991 +120.759 10.0926 14.9617 +120.597 10.6815 15.8347 +121.116 11.3343 16.8023 +120.54 11.886 17.6203 +120.35 12.4738 18.4917 +120.838 13.1354 19.4724 +120.531 13.7135 20.3294 +120.312 14.3011 21.2005 +120.865 14.9845 22.2137 +120.627 15.5738 23.0872 +121.157 16.2663 24.1138 +120.608 16.8164 24.9293 +121.115 17.5163 25.9669 +121.031 18.1357 26.885 +120.936 18.7555 27.8039 +121.6 19.4991 28.9062 +121.099 20.06 29.7377 +120.877 20.6666 30.637 +121.408 21.407 31.7346 +121.735 22.1197 32.7911 +121.48 22.7306 33.6968 +121.972 23.4865 34.8173 +121.129 23.9875 35.56 +121.314 24.6925 36.605 +121.767 25.4598 37.7426 +120.712 25.9128 38.4141 +121.233 26.7058 39.5897 +120.997 27.3384 40.5274 +121.398 28.1204 41.6867 +121.507 28.8429 42.7577 +122.061 29.68 43.9988 +120.405 29.9789 44.4418 +118.477 30.1943 44.7611 +114.195 29.7787 44.145 +112.733 30.07 44.5769 +109.293 29.81 44.1914 +106.676 29.7434 44.0927 +103.802 29.5773 43.8466 +101.918 29.6696 43.9834 +99.4199 29.562 43.8239 +97.3729 29.5658 43.8294 +95.2461 29.5247 43.7686 +97.0447 30.7043 45.5173 +97.1681 31.3725 46.5078 +96.4163 31.7603 47.0827 +96.9456 32.5753 48.2909 +96.7747 33.164 49.1636 +96.0838 33.5758 49.774 +96.231 34.2838 50.8236 +96.3632 34.9957 51.879 +96.564 35.7425 52.986 +96.0026 36.2123 53.6825 +96.0931 36.9329 54.7507 +96.2504 37.6891 55.8717 +96.3913 38.4496 56.9992 +95.7876 38.9186 57.6944 +96.3824 39.8835 59.1248 +95.6765 40.3187 59.7699 +95.8371 41.1245 60.9645 +95.8221 41.866 62.0638 +95.8695 42.6454 63.2191 +95.8221 43.3932 64.3277 +95.8358 44.1793 65.493 +95.8322 44.9688 66.6634 +95.6591 45.689 67.7311 +95.6217 46.4843 68.9101 +95.5667 47.2826 70.0936 +96.2373 48.4582 71.8362 +96.0672 49.2282 72.9778 +95.8073 49.9621 74.0658 +95.7494 50.8127 75.3267 +95.6003 51.6277 76.5348 +96.0748 52.7978 78.2695 +95.8837 53.6205 79.4891 +95.6741 54.4454 80.7119 +95.3766 55.2321 81.8781 +95.819 56.466 83.7074 +95.548 57.2998 84.9435 +95.2582 58.1348 86.1812 +95.6188 59.3869 88.0374 +95.2185 60.1866 89.2229 +95.3254 61.324 90.9091 +94.9493 62.1696 92.1625 +95.1326 63.4021 93.9897 +94.9029 64.3813 95.4413 +95.0903 65.6681 97.3489 +94.6845 66.5673 98.6819 +94.6887 67.7758 100.473 +94.4189 68.812 102.01 +94.4248 70.0742 103.881 +94.3389 71.2967 105.693 +94.1632 72.4783 107.445 +94.6546 74.2097 110.011 +94.5828 75.539 111.982 +94.4766 76.8733 113.96 +94.224 78.1198 115.808 +93.7189 79.1829 117.384 +93.8413 80.8097 119.795 +94.1349 82.6322 122.497 +93.9017 84.0369 124.58 +94.2065 85.9702 127.445 +93.7884 87.2894 129.401 +94.0469 89.2858 132.361 +93.55 90.6129 134.328 +93.5112 92.4292 137.021 +93.5198 94.349 139.867 +92.7119 95.4899 141.558 +91.0775 95.7907 142.004 +87.9631 94.4956 140.084 +88.0288 96.615 143.226 +87.9456 98.6428 146.232 +87.8496 100.726 149.321 +87.7382 102.868 152.495 +87.7356 105.218 155.979 +91.191 111.901 165.886 +90.0922 113.159 167.751 +88.5223 113.851 168.777 +87.094 114.742 170.098 +87.1753 117.694 174.475 +87.5456 121.174 179.634 +92.3217 131.067 194.298 +93.1398 135.689 201.151 +92.805 138.81 205.777 +92.448 142.043 210.569 +92.2642 145.704 215.997 +92.1358 149.638 221.83 +92.2722 154.219 228.62 +91.9635 158.28 234.64 +91.4446 162.189 240.435 +91.5708 167.496 248.303 +91.5949 172.923 256.348 +90.4366 176.374 261.463 +88.1352 177.724 263.465 +87.4808 182.577 270.66 +90.5374 195.775 290.224 +88.8821 199.356 295.533 +84.5773 197.009 292.054 +82.1071 198.885 294.835 +78.1347 197.095 292.181 +75.5551 198.781 294.681 +71.6927 197.06 292.13 +69.1683 198.995 294.997 +65.2585 196.905 291.9 +62.6523 198.703 294.565 +58.8065 196.519 291.328 +56.2851 198.732 294.607 +52.5167 196.51 291.314 +49.8518 198.365 294.064 +46.2976 196.66 291.536 +43.5439 198.322 294 +39.9381 196.026 290.597 +37.2749 198.327 294.008 +33.8144 196.386 291.131 +31.0536 198.493 294.254 +27.6333 196.352 291.079 +24.7915 198.264 293.914 +21.4891 196.48 291.269 +18.5636 198.085 293.649 +15.3017 195.989 290.542 +12.3684 198.068 293.624 +9.16717 195.773 290.222 +6.16768 197.6 292.93 +3.05167 195.554 289.896 +1.9762e-14 197.63 292.974 +-3.05167 195.554 289.896 +-6.16768 197.6 292.93 +-9.15408 195.494 289.807 +-12.3405 197.622 292.962 +-15.2275 195.04 289.134 +-18.506 197.471 292.738 +-21.3548 195.252 289.449 +-24.6589 197.204 292.343 +-27.5156 195.516 289.84 +-30.8967 197.491 292.768 +-33.6131 195.217 289.397 +-37.0762 197.27 292.441 +-39.723 194.97 289.031 +-43.2149 196.823 291.778 +-45.8016 194.553 288.413 +-49.49 196.925 291.929 +-52.0141 194.63 288.527 +-55.6125 196.357 291.087 +-58.1958 194.478 288.302 +-61.8882 196.279 290.972 +-64.4567 194.486 288.313 +-68.1951 196.195 290.847 +-70.7158 194.375 288.149 +-74.4948 195.991 290.545 +-76.9443 194.092 287.729 +-81.0049 196.216 290.878 +-83.1999 193.801 287.298 +-87.3822 195.992 290.546 +-89.6861 193.934 287.494 +-94.1325 196.46 291.239 +-96.1791 193.945 287.512 +-100.663 196.318 291.029 +-102.785 194.049 287.666 +-107.183 196.054 290.637 +-109.186 193.657 287.084 +-113.811 195.882 290.383 +-116.007 193.887 287.426 +-120.525 195.746 290.181 +-122.674 193.727 287.189 +-127.437 195.801 290.263 +-129.577 193.81 287.311 +-136.323 198.6 294.412 +-138.171 196.158 290.791 +-143.399 198.483 294.239 +-143.2 193.333 286.604 +-143.203 188.663 279.681 +-144.547 185.905 275.593 +-153.746 193.111 286.276 +-157.127 192.812 285.831 +-162.581 194.978 289.042 +-165.575 194.126 287.78 +-444.859 510.067 756.142 +-447.626 502.071 744.289 +-449.224 493.041 730.903 +-452.329 485.919 720.345 +-454.026 477.521 707.896 +-456.784 470.471 697.445 +-458.775 462.844 686.138 +-468.541 463.118 686.544 +-476.75 461.783 684.564 +-484.141 459.631 681.375 +-487.896 454.088 673.157 +-487.543 444.919 659.564 +-488.692 437.353 648.349 +-477.444 419.104 621.296 +-478.683 412.209 611.074 +-482.393 407.572 604.2 +-484.597 401.772 595.602 +-488.242 397.272 588.931 +-490.006 391.347 580.147 +-493.249 386.71 573.273 +-495.621 381.482 565.524 +-499.651 377.611 559.785 +-501.252 371.987 551.448 +-504.602 367.752 545.17 +-507.12 362.984 538.101 +-511.209 359.401 532.79 +-512.644 354.024 524.819 +-516.623 350.473 519.555 +-519.694 346.354 513.449 +-522.351 342.019 507.022 +-524.913 337.684 500.596 +-528.705 334.188 495.413 +-530.687 329.6 488.612 +-534.392 326.132 483.471 +-537.006 322.04 477.404 +-141.044 83.117 123.216 +-142.197 82.3453 122.072 +-142.985 81.3689 120.624 +-143.048 79.996 118.589 +-142.008 78.0404 115.69 +-142.285 76.8392 113.909 +-146.018 77.4895 114.873 +-148.904 77.6512 115.113 +-156.598 80.246 118.96 +-156.878 78.9922 117.101 +-158.704 78.5202 116.401 +-158.64 77.1193 114.325 +-161.662 77.2138 114.465 +-161.789 75.9187 112.545 +-585.972 270.127 400.446 +-588.377 266.447 394.991 +-592.904 263.74 390.978 +-594.791 259.872 385.245 +-599.061 257.062 381.079 +-601.293 253.389 375.633 +-134.164 55.5175 82.3013 +-607.814 246.955 366.096 +-612.215 244.207 362.022 +-383.527 150.179 222.631 +-383.301 147.32 218.393 +-383.844 144.787 214.637 +-381.419 141.18 209.29 +-628.919 228.401 338.591 +-634.23 225.954 334.963 +-614.665 214.79 318.413 +-381.812 130.845 193.969 +-382.982 128.688 190.772 +-381.874 125.793 186.48 +-382.35 123.449 183.005 +-382.173 120.917 179.252 +-380.285 117.882 174.752 +-376.749 114.394 169.582 +-380.639 113.181 167.784 +-381.237 110.984 164.527 +-382.42 108.967 161.536 +-666.368 185.796 275.431 +-668.703 182.39 270.382 +-674.231 179.842 266.605 +-677.737 176.734 261.997 +-682.653 173.976 257.909 +-115.015 28.6368 42.4523 +-112.523 27.3609 40.5609 +-111.105 26.3737 39.0974 +-110.588 25.6165 37.9749 +-109.964 24.8454 36.8318 +-109.324 24.0824 35.7007 +-109.416 23.4878 34.8193 +-108.654 22.718 33.678 +-109.004 22.1869 32.8906 +-109.535 21.6914 32.1562 +-108.829 20.9558 31.0656 +-109.057 20.4061 30.2508 +-109.562 19.9077 29.512 +-109.677 19.3387 28.6684 +-110.453 18.8844 27.995 +-110.84 18.3606 27.2184 +-111.314 17.8498 26.4612 +-112.359 17.4254 25.8321 +-112.82 16.9054 25.0612 +-113.854 16.4662 24.4101 +-114.398 15.9505 23.6457 +-117.56 15.7833 23.3977 +-118.776 15.3348 22.7329 +-159.82 19.814 29.373 +-161.101 19.1496 28.3881 +-162.178 18.4518 27.3537 +-160.889 17.489 25.9263 +-164.794 17.0802 25.3204 +-855.601 84.368 125.07 +-865.466 80.992 120.066 +-386.581 34.2404 50.7593 +-381.562 31.8897 47.2746 +-380.857 29.9331 44.3739 +-902.512 66.446 98.502 +-404.165 27.7516 41.1401 +-404.384 25.7656 38.1958 +-403.577 23.721 35.165 +-404.529 21.7828 32.2916 +-403.957 19.764 29.2988 +-403.552 17.7611 26.3297 +-404.313 15.8106 23.4382 +-144.829 4.95369 7.34354 +-404.545 11.8563 17.5762 +-404.115 9.86696 14.6272 +-403.554 7.88082 11.6828 +-146.85 2.15044 3.18789 +-144.278 1.40834 2.08778 +-145.294 0.70908 1.05117 +119.9 5.32907e-15 2.84217e-14 +119.995 0.593417 0.862811 +119.982 1.18679 1.72556 +120.759 1.79195 2.60544 +120.826 2.39103 3.47648 +120.585 2.9835 4.33791 +121.234 3.60046 5.23496 +120.475 4.17562 6.07123 +120.605 4.77914 6.94872 +121.026 5.3976 7.84795 +120.938 5.99588 8.71783 +120.742 6.58829 9.57918 +121.232 7.22065 10.4986 +121.116 7.81991 11.3699 +120.793 8.40473 12.2202 +121.353 9.05352 13.1636 +121.011 9.63754 14.0127 +121.55 10.2942 14.9675 +120.597 10.8239 15.7377 +121.116 11.4854 16.6994 +120.639 12.0544 17.5267 +121.137 12.7228 18.4985 +120.838 13.3105 19.3531 +121.413 13.998 20.3527 +120.312 14.4918 21.0706 +120.865 15.1843 22.0776 +120.627 15.7814 22.9457 +121.352 16.5097 24.0046 +120.802 17.068 24.8164 +120.341 17.6364 25.6427 +121.127 18.3921 26.7416 +120.936 19.0056 27.6335 +121.503 19.7435 28.7065 +121.195 20.3436 29.5789 +120.973 20.9587 30.4733 +121.408 21.6924 31.5402 +121.64 22.3971 32.5647 +121.291 22.9978 33.4381 +121.594 23.7259 34.4967 +121.601 24.4019 35.4796 +121.596 25.0798 36.4653 +121.955 25.839 37.5691 +121.272 26.3801 38.3559 +121.419 27.1034 39.4076 +121.09 27.7241 40.31 +121.49 28.517 41.4629 +121.23 29.161 42.3992 +121.602 29.9627 43.5649 +121.593 30.6782 44.6052 +119.478 30.8553 44.8627 +116.007 30.6547 44.571 +113.455 30.6661 44.5875 +110.552 30.5553 44.4265 +108.108 30.5445 44.4108 +105.495 30.4605 44.2887 +103.425 30.51 44.3607 +100.215 30.1956 43.9035 +98.779 30.3926 44.1899 +96.3831 30.2755 44.0197 +95.7391 30.6952 44.6299 +97.1681 31.7908 46.2229 +96.6748 32.2701 46.9198 +97.5456 33.2139 48.292 +97.1157 33.7247 49.0347 +96.8471 34.2937 49.8621 +96.3996 34.8017 50.6007 +96.4471 35.4932 51.6061 +96.6474 36.2503 52.7069 +96.0855 36.7269 53.3998 +96.0931 37.4253 54.4153 +96.3323 38.2241 55.5767 +96.3913 38.9623 56.65 +96.5157 39.7373 57.7768 +95.9001 40.213 58.4686 +95.7564 40.8903 59.4533 +95.8371 41.6728 60.591 +95.9009 42.4591 61.7343 +96.4956 43.4962 63.2422 +95.8221 43.9717 63.9336 +95.8358 44.7683 65.0918 +95.8322 45.5683 66.255 +95.7351 46.335 67.3696 +95.6972 47.1412 68.5419 +95.5667 47.913 69.6641 +96.1629 49.0664 71.341 +96.0672 49.8846 72.5307 +95.8805 50.6669 73.6682 +95.822 51.5292 74.9219 +95.6003 52.316 76.066 +95.4329 53.1443 77.2702 +95.8837 54.3355 79.0022 +95.7442 55.2117 80.2762 +95.4461 56.0092 81.4357 +95.8878 57.2603 83.2547 +95.6162 58.1052 84.4832 +95.8663 59.2862 86.2003 +95.0165 59.8001 86.9476 +95.1522 60.9465 88.6145 +95.4566 62.2272 90.4766 +95.0142 63.0416 91.6606 +95.1326 64.2475 93.4139 +94.9665 65.2839 94.9209 +94.6498 66.2354 96.3043 +94.6845 67.4549 98.0774 +94.6887 68.6795 99.8579 +94.4189 69.7295 101.385 +94.3044 70.9179 103.112 +94.4579 72.338 105.177 +94.2808 73.5359 106.919 +94.7707 75.2915 109.472 +94.6975 76.6391 111.431 +94.4199 77.8518 113.194 +94.224 79.1614 115.098 +93.8845 80.3803 116.871 +94.3315 82.3149 119.683 +94.1349 83.7339 121.747 +93.9017 85.1574 123.816 +94.0497 86.9714 126.454 +93.9429 88.5989 128.82 +94.0469 90.4763 131.55 +93.5 91.7723 133.434 +93.5605 93.7109 136.253 +93.5198 95.607 139.01 +89.9444 93.8747 136.491 +88.824 94.6663 137.642 +88.194 96.0065 139.591 +87.938 97.8023 142.202 +88.1687 100.211 145.704 +88.7702 103.139 149.962 +87.9534 104.495 151.932 +87.5242 106.364 154.65 +87.4588 108.752 158.123 +91.0683 115.911 168.531 +89.6787 116.876 169.935 +87.4847 116.794 169.814 +87.5962 119.839 174.243 +87.3957 122.58 178.228 +93.018 133.816 194.565 +92.889 137.128 199.38 +92.6649 140.448 204.207 +92.2428 143.617 208.815 +92.331 147.754 214.829 +92.266 151.848 220.782 +91.8914 155.63 226.282 +91.9326 160.336 233.124 +91.5649 164.568 239.277 +91.3954 169.404 246.309 +90.4305 173.001 251.538 +89.2789 176.438 256.535 +87.4938 178.784 259.946 +90.8714 192.182 279.428 +88.935 194.874 283.341 +86.6564 196.956 286.368 +82.6397 195.062 283.615 +80.375 197.285 286.847 +76.295 195.02 283.553 +73.871 196.942 286.348 +69.8984 194.69 283.074 +67.4319 196.586 285.83 +63.746 194.906 283.387 +61.2283 196.776 286.106 +57.4201 194.445 282.717 +55.018 196.848 286.211 +51.3194 194.59 282.929 +48.808 196.801 286.143 +45.2012 194.563 282.888 +42.5446 196.354 285.493 +39.0098 194.023 282.104 +36.4073 196.294 285.405 +32.9518 193.928 281.965 +30.2692 196.059 285.064 +26.9193 193.829 281.821 +24.2334 196.386 285.539 +20.9824 194.405 282.659 +18.1815 196.595 285.844 +14.9484 194.017 282.095 +12.0822 196.065 285.073 +8.95513 193.795 281.773 +6.03853 196.042 285.039 +2.98186 193.628 281.529 +2.0095e-14 196.185 285.247 +-2.98011 193.514 281.364 +-6.04202 196.155 285.203 +-8.9499 193.682 281.608 +-12.0508 195.556 284.333 +-14.9091 193.507 281.354 +-18.1239 195.972 284.938 +-20.8603 193.274 281.015 +-24.1567 195.763 284.634 +-26.8095 193.038 280.672 +-30.1733 195.439 284.162 +-32.8559 193.364 281.146 +-36.2923 195.674 284.504 +-38.7834 192.897 280.467 +-42.313 195.285 283.939 +-44.8619 193.102 280.765 +-48.4322 195.286 283.94 +-50.7873 192.573 279.995 +-54.4548 194.833 283.281 +-56.8424 192.488 279.873 +-60.5685 194.655 283.023 +-62.9442 192.454 279.822 +-66.7831 194.695 283.08 +-69.0611 192.358 279.682 +-72.9562 194.503 282.802 +-75.1695 192.143 279.371 +-79.1378 194.249 282.432 +-81.4958 192.362 279.689 +-85.5436 194.427 282.69 +-87.5829 191.911 279.033 +-92.0102 194.591 282.929 +-93.961 191.998 279.16 +-98.4577 194.577 282.91 +-100.343 191.964 279.11 +-104.815 194.278 282.475 +-106.991 192.293 279.588 +-111.524 194.505 282.805 +-113.468 192.173 279.414 +-118.149 194.445 282.717 +-120.104 192.197 279.448 +-124.803 194.311 282.523 +-126.46 191.67 278.682 +-131.27 193.788 281.763 +-134.726 193.817 281.804 +-140.44 196.979 286.401 +-142.626 195.125 283.706 +-143.008 190.918 277.589 +-142.832 186.15 270.656 +-147.279 187.455 272.554 +-149.58 185.998 270.435 +-159.581 193.931 281.969 +-160.796 191.037 277.762 +-167.326 194.411 282.668 +-449.321 510.692 742.531 +-450.903 501.483 729.142 +-453.576 493.755 717.906 +-455.857 485.839 706.396 +-458.55 478.586 695.851 +-461.151 471.443 685.465 +-475.336 476.099 692.234 +-481.35 472.455 686.935 +-487.744 469.227 682.242 +-486.35 458.685 666.914 +-489.581 452.735 658.263 +-490.917 445.203 647.312 +-478.412 425.552 618.741 +-480.372 419.178 609.472 +-484.325 414.66 602.904 +-486.666 408.867 594.48 +-489.828 403.876 587.223 +-492.186 398.328 579.157 +-495.282 393.48 572.108 +-497.384 387.944 564.059 +-501.257 383.875 558.143 +-503.178 378.395 550.175 +-506.977 374.409 544.38 +-509.583 369.61 537.402 +-513.326 365.701 531.719 +-515.036 360.418 524.037 +-518.785 356.633 518.534 +-521.494 352.188 512.07 +-524.819 348.216 506.296 +-526.75 343.384 499.27 +-531.421 340.384 494.908 +-532.963 335.427 487.701 +-537.094 332.152 482.939 +-538.779 327.411 476.045 +-142.421 85.0475 123.657 +-143.03 83.9322 122.035 +-143.756 82.8986 120.532 +-142.694 80.862 117.571 +-142.507 79.3591 115.386 +-142.933 78.2184 113.727 +-149.5 80.395 116.892 +-154.316 81.5465 118.566 +-157.261 81.6604 118.732 +-157.547 80.3871 116.88 +-158.779 79.6045 115.743 +-160.904 79.2628 115.246 +-162.195 78.5006 114.138 +-583.879 277.636 403.674 +-587.978 274.666 399.356 +-590.398 270.927 393.92 +-595.174 268.279 390.07 +-596.603 264.14 384.051 +-601.997 261.766 380.6 +-603.928 257.893 374.968 +-608.359 255.098 370.905 +-134.459 55.359 80.4904 +-135.713 54.8565 79.7598 +-617.067 244.849 356.003 +-385.279 150.054 218.174 +-382.435 146.179 212.54 +-384.421 144.188 209.645 +-382.685 140.831 204.764 +-385.261 139.085 202.226 +-639.174 226.332 329.081 +-644.681 223.874 325.506 +-382.297 130.171 189.264 +-381.616 127.384 185.212 +-383.996 125.633 182.667 +-382.695 122.697 178.398 +-382.121 120.03 174.521 +-382.198 117.595 170.98 +-380.462 114.637 166.678 +-381.681 112.594 163.708 +-383.133 110.625 160.846 +-668.247 188.804 274.516 +-670.86 185.418 269.592 +-676.578 182.874 265.894 +-2969.52 784.689 1140.91 +-115.019 29.7038 43.1885 +-114.193 28.8112 41.8907 +-111.239 27.4094 39.8524 +-111.197 26.7475 38.8901 +-110.404 25.9147 37.6792 +-109.315 25.0281 36.3901 +-109.603 24.4658 35.5725 +-109.416 23.801 34.6059 +-108.841 23.0606 33.5294 +-109.38 22.5602 32.8019 +-109.158 21.9049 31.8491 +-109.586 21.3827 31.0899 +-109.342 20.7321 30.1439 +-109.752 20.2082 29.3821 +-109.964 19.6476 28.5671 +-110.836 19.2025 27.9199 +-110.935 18.6215 27.0751 +-111.795 18.1659 26.4126 +-112.07 17.6123 25.6078 +-112.82 17.1308 24.9077 +-113.951 16.6999 24.2812 +-114.883 16.2318 23.6005 +-118.629 16.1392 23.466 +-121.017 15.8324 23.0199 +-159.917 20.0904 29.2109 +-161.59 19.4638 28.2998 +-162.276 18.7091 27.2025 +-162.557 17.906 26.0348 +-166.858 17.5248 25.4806 +-857.275 85.6601 124.547 +-867.34 82.2498 119.589 +-380.655 34.1651 49.675 +-380.079 32.1893 46.8023 +-380.362 30.2927 44.0447 +-904.892 67.5093 98.1565 +-404.363 28.1355 40.9082 +-403.788 26.0706 37.9059 +-406.063 24.1854 35.1648 +-404.529 22.0732 32.0938 +-404.854 20.0719 29.1839 +-403.552 17.9979 26.1684 +-403.415 15.9858 23.2429 +-144.33 5.00244 7.27341 +-402.647 11.958 17.3866 +-404.714 10.0134 14.5591 +-404.254 7.99972 11.6314 +-145.85 2.16428 3.1468 +-146.078 1.44492 2.10088 +-145.694 0.720512 1.0476 +120 6.21725e-15 5.68434e-14 +119.895 0.600677 0.85671 +120.182 1.20432 1.71764 +120.559 1.81237 2.58488 +120.826 2.42229 3.45477 +120.585 3.02251 4.31082 +121.034 3.64153 5.19369 +120.375 4.22672 6.02831 +120.506 4.83762 6.89961 +120.228 5.43215 7.74754 +120.938 6.07428 8.66339 +120.443 6.65791 9.49577 +120.536 7.27304 10.3731 +120.719 7.89616 11.2618 +120.991 8.52864 12.1639 +120.461 9.10445 12.9851 +121.11 9.77155 13.9366 +121.451 10.4203 14.8619 +121.486 11.0463 15.7547 +120.919 11.6166 16.5681 +120.639 12.212 17.4173 +120.94 12.8682 18.3532 +120.838 13.4846 19.2323 +121.315 14.1696 20.2092 +121.095 14.7768 21.0753 +120.865 15.3829 21.9397 +120.53 15.9749 22.784 +121.06 16.6853 23.7973 +120.802 17.2912 24.6614 +121.018 17.9676 25.6261 +121.707 18.7218 26.7018 +121.803 19.3922 27.6579 +121.503 20.0017 28.5272 +121.291 20.6259 29.4175 +121.738 21.367 30.4745 +121.217 21.9416 31.294 +120.974 22.5658 32.1842 +121.385 23.3167 33.2552 +121.121 23.9426 34.1479 +121.224 24.6443 35.1488 +121.69 25.4274 36.2656 +121.955 26.1768 37.3344 +121.179 26.7045 38.0871 +121.14 27.3948 39.0715 +120.812 28.0221 39.9662 +120.289 28.6043 40.7966 +121.967 29.7218 42.3904 +121.052 30.2172 43.097 +121.045 30.9393 44.1268 +121.116 31.6874 45.1938 +117.639 31.4923 44.9155 +115.17 31.5367 44.9788 +112.259 31.433 44.831 +109.54 31.3538 44.718 +106.386 31.1195 44.3838 +104.046 31.0945 44.3483 +101.539 30.9947 44.2059 +99.7457 31.0913 44.3437 +97.6076 31.0611 44.3006 +95.7391 31.0966 44.3512 +96.5618 32.0056 45.6476 +96.4163 32.6046 46.502 +96.4313 33.2639 47.4423 +97.6273 34.3456 48.9851 +95.999 34.4379 49.1168 +96.9057 35.4419 50.5487 +96.531 35.9886 51.3284 +96.564 36.6926 52.3325 +96.6658 37.4318 53.3868 +95.9283 37.8496 53.9827 +96.2504 38.691 55.1826 +96.2285 39.4051 56.2011 +96.5157 40.2569 57.416 +95.7394 40.6706 58.006 +96.4752 41.736 59.5256 +95.7577 42.1828 60.1628 +95.8221 42.979 61.2983 +95.8695 43.779 62.4394 +95.8221 44.5467 63.5343 +95.8358 45.3537 64.6853 +95.8322 46.1642 65.8412 +95.6591 46.9036 66.8958 +95.6217 47.72 68.0602 +95.6416 48.5776 69.2834 +96.1629 49.708 70.8955 +96.0672 50.5369 72.0777 +95.9536 51.3686 73.264 +95.7494 52.1635 74.3977 +95.6003 53.0001 75.5909 +95.4329 53.8392 76.7877 +95.9544 55.0866 78.5666 +95.6741 55.8928 79.7165 +95.3766 56.7003 80.8683 +95.819 57.9671 82.675 +95.6162 58.865 83.9556 +95.7987 60.0189 85.6014 +94.9496 60.539 86.3432 +95.2185 61.7865 88.1224 +95.4566 63.0409 89.9115 +94.9493 63.8223 91.0259 +95.1326 65.0876 92.8305 +95.0937 66.226 94.4541 +94.6498 67.1015 95.7028 +94.6222 68.2916 97.4002 +94.4425 69.3967 98.9763 +94.358 70.596 100.687 +94.3044 71.8452 102.468 +94.2199 73.0996 104.258 +94.1632 74.4051 106.119 +94.7707 76.276 108.788 +94.1813 77.2181 110.132 +94.25 78.728 112.285 +94.1122 80.1012 114.244 +93.9949 81.5272 116.277 +94.277 83.3431 118.867 +94.1349 84.8288 120.986 +93.9017 86.271 123.043 +93.5795 87.6683 125.036 +93.8399 89.6592 127.876 +93.9961 91.61 130.658 +93.6 93.0716 132.742 +93.9052 95.2859 135.901 +93.2289 96.5558 137.712 +90.6124 95.8083 136.646 +88.6362 95.7015 136.493 +88.0555 97.1092 138.501 +88.1196 99.2856 141.605 +88.2133 101.573 144.868 +87.8057 103.352 147.405 +87.566 105.395 150.319 +87.9469 108.275 154.427 +87.7906 110.592 157.731 +92.2479 118.947 169.647 +90.4363 119.405 170.3 +88.0317 119.061 169.809 +87.711 121.565 173.382 +93.0523 132.22 188.578 +92.6882 135.085 192.664 +92.9248 138.974 198.211 +92.5948 142.177 202.779 +92.3454 145.657 207.741 +92.1641 149.415 213.101 +91.9079 153.236 218.552 +91.7962 157.502 224.635 +91.7471 162.106 231.201 +91.5348 166.665 237.704 +91.6293 172.059 245.397 +89.2376 172.951 246.67 +88.2315 176.648 251.942 +90.9412 188.258 268.501 +90.7678 194.473 277.366 +87.7832 194.865 277.925 +84.963 195.632 279.018 +81.2156 194.208 276.987 +78.4854 195.167 278.355 +75.0829 194.431 277.306 +72.3325 195.362 278.633 +68.8417 194.254 277.053 +66.2489 195.662 279.061 +62.6344 194.011 276.706 +59.9607 195.222 278.433 +56.5618 194.043 276.752 +53.8917 195.34 278.601 +50.403 193.614 276.141 +47.7085 194.883 277.95 +44.5094 194.09 276.819 +41.6671 194.819 277.859 +38.5231 194.108 276.844 +35.6442 194.693 277.678 +32.5109 193.835 276.455 +29.6242 194.391 277.249 +26.5741 193.845 276.47 +23.7242 194.773 277.793 +20.6649 193.968 276.644 +17.7524 194.465 277.353 +14.7172 193.514 275.997 +11.8379 194.613 277.565 +8.84257 193.861 276.493 +5.89891 194.013 276.71 +2.93561 193.117 275.431 +1.90958e-14 194.215 276.997 +-2.93735 193.232 275.595 +-5.9024 194.128 276.873 +-8.80854 193.116 275.429 +-11.8065 194.097 276.828 +-14.643 192.539 274.606 +-17.7 193.892 276.536 +-20.5428 192.821 275.009 +-23.5986 193.742 276.322 +-26.4015 192.586 274.674 +-29.5632 193.991 276.677 +-32.2713 192.407 274.418 +-35.4665 193.722 276.294 +-38.1948 192.453 274.484 +-41.3625 193.394 275.826 +-44.0917 192.269 274.221 +-47.3606 193.462 275.923 +-49.9152 191.741 273.469 +-53.2346 192.958 275.204 +-56.0172 192.174 274.086 +-59.3703 193.3 275.692 +-61.9783 191.979 273.808 +-65.4093 193.183 275.525 +-68.0044 191.891 273.683 +-71.4592 193.003 275.269 +-74.0223 191.685 273.389 +-77.5181 192.761 274.924 +-80.2352 191.864 273.643 +-83.7776 192.902 275.125 +-86.2559 191.475 273.089 +-89.862 192.532 274.597 +-92.5714 191.633 273.314 +-96.225 192.651 274.767 +-98.8657 191.611 273.284 +-102.798 193.031 275.308 +-105.397 191.906 273.704 +-109.114 192.79 274.965 +-111.755 191.746 273.476 +-115.577 192.699 274.835 +-118.168 191.571 273.227 +-121.999 192.428 274.449 +-124.674 191.434 273.03 +-128.833 192.678 274.804 +-131.317 191.384 272.96 +-137.443 195.297 278.54 +-140.024 194.07 276.791 +-143.125 193.573 276.081 +-143.111 188.952 269.491 +-143.497 185.029 263.896 +-146.428 184.459 263.083 +-154.805 190.587 271.823 +-159.203 191.618 273.293 +-164.389 193.496 275.972 +-1461.97 1683.38 2400.9 +-451.948 509.217 726.266 +-454.453 501.179 714.802 +-456.984 493.409 703.719 +-459.886 486.257 693.52 +-467.017 483.684 689.849 +-479.325 486.372 693.683 +-486.45 483.704 689.878 +-487.034 474.669 676.992 +-487.947 466.208 664.924 +-490.469 459.487 655.339 +-479.577 440.606 628.409 +-480.561 433.053 617.638 +-482.332 426.393 608.139 +-485.815 421.375 600.981 +-488.064 415.403 592.464 +-491.527 410.577 585.581 +-493.39 404.525 576.949 +-497.14 400.121 570.668 +-499.794 394.921 563.252 +-502.625 389.956 556.171 +-504.802 384.581 548.504 +-508.62 380.534 542.733 +-511.061 375.529 535.594 +-514.508 371.337 529.616 +-516.798 366.38 522.546 +-520.821 362.714 517.317 +-523.293 358.024 510.629 +-526.248 353.73 504.504 +-529.177 349.477 498.439 +-532.614 345.609 492.921 +-535.371 341.349 486.845 +-538.445 337.342 481.13 +-141.105 86.8697 123.897 +-142.834 86.4093 123.24 +-143.1 85.0711 121.332 +-143.126 83.6141 119.254 +-142.765 81.9601 116.895 +-142.65 80.4772 114.78 +-145.594 80.7166 115.121 +-152.184 82.9085 118.247 +-156.802 83.9436 119.724 +-157.63 82.9223 118.267 +-158.513 81.9377 116.863 +-160.426 81.4825 116.214 +-162.263 80.9773 115.493 +-583.764 286.231 408.234 +-586.177 282.373 402.732 +-589.29 278.878 397.747 +-592.418 275.409 392.8 +-596.582 272.431 388.552 +-599.282 268.796 383.367 +-603.345 265.783 379.07 +-606.005 262.163 373.907 +-609.967 259.117 369.563 +-612.588 255.511 364.42 +-2667.45 1092.31 1557.89 +-134.832 54.2003 77.3027 +-623.369 245.958 350.795 +-382.932 148.283 211.486 +-383.671 145.788 207.929 +-382.434 142.578 203.351 +-384.924 140.781 200.787 +-641.294 230.053 328.11 +-646.216 227.341 324.243 +-648.961 223.858 319.275 +-382.305 129.282 184.388 +-382.177 126.673 180.666 +-382.434 124.217 177.163 +-382.034 121.572 173.391 +-381.407 118.887 169.561 +-380.021 116.001 165.446 +-2906.29 868.554 1238.77 +-665.582 194.692 277.678 +-670.037 191.785 273.532 +-673.466 188.573 268.95 +-678.654 185.834 265.044 +-682.54 182.718 260.6 +-114.746 30.0208 42.8169 +-113.736 29.0712 41.4625 +-111.698 27.8822 39.7667 +-110.829 27.0075 38.5192 +-109.572 26.0559 37.1619 +-109.5 25.3984 36.2242 +-109.51 24.7647 35.3204 +-108.762 23.9682 34.1845 +-109.591 23.523 33.5494 +-109.474 22.8748 32.625 +-109.064 22.1723 31.623 +-109.396 21.625 30.8424 +-109.626 21.0579 30.0336 +-110.037 20.5256 29.2745 +-109.677 19.8528 28.3148 +-110.74 19.4368 27.7215 +-110.744 18.8324 26.8595 +-112.468 18.5142 26.4057 +-112.263 17.8733 25.4917 +-113.689 17.4885 24.9428 +-114.532 17.0046 24.2526 +-115.853 16.5829 23.6512 +-119.018 16.4039 23.3959 +-124.232 16.4657 23.484 +-160.405 20.4153 29.117 +-160.612 19.599 27.9528 +-161.394 18.8508 26.8858 +-162.852 18.173 25.919 +-852.679 90.7265 129.398 +-860.033 87.0592 124.167 +-869.115 83.4958 119.085 +-380.161 34.5669 49.3007 +-380.474 32.6441 46.5584 +-381.154 30.7527 43.8608 +-405.005 30.6105 43.6579 +-405.257 28.5664 40.7425 +-404.086 26.431 37.6969 +-405.467 24.4656 34.8939 +-404.529 22.3618 31.8933 +-405.152 20.3493 29.023 +-404.549 18.2783 26.0693 +-404.113 16.2228 23.1377 +-403.646 14.1732 20.2143 +-405.144 12.1895 17.3852 +-405.014 10.1518 14.4789 +-403.954 8.09836 11.5502 +-146.65 2.2046 3.14429 +-145.778 1.46081 2.08346 +-146.094 0.731937 1.04392 +120 6.21725e-15 5.68434e-14 +119.995 0.608887 0.851964 +119.982 1.21773 1.70387 +120.759 1.83866 2.57268 +120.726 2.45133 3.42994 +120.685 3.06381 4.28693 +120.934 3.68519 5.15637 +120.475 4.28448 5.99491 +121.204 4.92806 6.89542 +121.026 5.53831 7.74928 +120.838 6.14714 8.60116 +120.542 6.74888 9.44313 +120.337 7.35418 10.2901 +121.017 8.01721 11.2178 +120.892 8.63093 12.0765 +120.758 9.24402 12.9344 +121.209 9.90496 13.8592 +120.66 10.4852 14.671 +121.387 11.1789 15.6417 +121.116 11.7848 16.4895 +120.639 12.3686 17.3064 +121.039 13.0439 18.2512 +120.838 13.6575 19.1098 +121.413 14.3629 20.0968 +121.095 14.9663 20.9411 +120.084 15.4795 21.6592 +120.53 16.1798 22.639 +121.157 16.9129 23.6648 +120.802 17.513 24.5044 +121.115 18.2126 25.4833 +120.741 18.8114 26.3212 +121.707 19.6254 27.4601 +121.503 20.2582 28.3456 +121.291 20.8904 29.2302 +120.877 21.4881 30.0665 +121.313 22.2405 31.1192 +120.974 22.8552 31.9794 +121.48 23.6342 33.0693 +121.972 24.4201 34.1689 +121.224 24.9604 34.925 +121.502 25.7138 35.9791 +121.205 26.3497 36.8688 +121.085 27.0262 37.8154 +121.419 27.81 38.9122 +120.719 28.3597 39.6813 +120.474 29.0157 40.5991 +121.046 29.8758 41.8026 +120.869 30.5584 42.7577 +121.776 31.5253 44.1106 +121.48 32.1902 45.041 +118.183 32.0436 44.8359 +115.441 32.0163 44.7976 +112.169 31.8106 44.5099 +109.54 31.7559 44.4333 +107.099 31.7298 44.3968 +105.022 31.7887 44.4792 +102.245 31.6106 44.2301 +100.537 31.7398 44.4108 +98.3947 31.7132 44.3735 +96.0873 31.61 44.2291 +96.9948 32.5614 45.5604 +96.6748 33.1114 46.3299 +96.6885 33.7803 47.2659 +97.7126 34.8165 48.7157 +96.5927 35.0953 49.1058 +96.484 35.7403 50.0083 +96.531 36.4502 51.0016 +96.6474 37.1953 52.0442 +96.0855 37.6843 52.7285 +96.1755 38.4339 53.7772 +96.2504 39.1872 54.8313 +96.3913 39.978 55.9378 +96.5157 40.7732 57.0504 +95.9001 41.2614 57.7335 +95.8363 41.9914 58.7549 +95.9164 42.7946 59.8788 +95.8221 43.5302 60.9081 +95.8695 44.3405 62.0419 +95.9775 45.1913 63.2323 +95.8358 45.9354 64.2735 +95.9854 46.8311 65.5267 +95.7351 47.5429 66.5227 +95.8481 48.4465 67.787 +95.6416 49.2007 68.8423 +95.5684 50.0343 70.0086 +96.0672 51.1851 71.6189 +95.2954 51.6706 72.2982 +95.822 52.8726 73.98 +95.6722 53.7203 75.1662 +95.5042 54.5705 76.3559 +95.8837 55.752 78.009 +95.7442 56.6511 79.267 +95.4461 57.4694 80.412 +95.9566 58.7949 82.2667 +95.6162 59.62 83.4211 +95.3258 60.4887 84.6366 +95.6857 61.7912 86.459 +95.2848 62.6226 87.6225 +95.5222 63.8937 89.4009 +95.1441 64.7734 90.6319 +95.1326 65.9224 92.2395 +95.1573 67.1202 93.9155 +94.7757 68.0523 95.2197 +94.6845 69.2134 96.8444 +95.1197 70.7909 99.0516 +94.5406 71.6398 100.239 +94.4248 72.8597 101.946 +94.2794 74.0837 103.659 +94.2808 75.453 105.575 +94.2481 76.8281 107.499 +94.6975 78.637 110.03 +94.5332 79.9773 111.905 +94.224 81.2251 113.651 +94.1053 82.67 115.673 +94.3859 84.5097 118.247 +94.1349 85.9169 120.216 +94.0607 87.5257 122.467 +93.684 88.8916 124.378 +93.8914 90.8592 127.131 +94.1484 92.935 130.036 +93.65 94.316 131.968 +93.6097 96.2045 134.611 +93.6652 98.2524 137.476 +91.1373 97.5994 136.562 +89.1526 97.4936 136.414 +88.3325 98.6641 138.052 +88.2104 100.663 140.849 +88.2579 102.928 144.018 +87.9811 104.887 146.76 +87.9104 107.167 149.949 +87.6933 109.348 153.001 +87.7906 112.011 156.727 +90.9463 118.773 166.189 +90.516 121.043 169.365 +88.3052 120.962 169.252 +88.2851 123.931 173.405 +92.8275 133.593 186.925 +92.6882 136.818 191.438 +92.9248 140.757 196.949 +92.6649 144.109 201.64 +92.3796 147.58 206.495 +92.1307 151.276 211.668 +92.0381 155.422 217.468 +91.7962 159.522 223.205 +91.8399 164.35 229.961 +91.2943 168.359 235.57 +91.5123 174.043 243.523 +89.3512 175.393 245.412 +87.3219 177.069 247.758 +90.7274 190.225 266.165 +90.509 196.406 274.814 +87.2825 196.239 274.58 +84.3582 196.73 275.268 +81.2156 196.698 275.223 +78.1255 196.764 275.314 +74.9314 196.528 274.985 +71.8335 196.502 274.949 +68.5427 195.891 274.093 +65.562 196.117 274.41 +62.4703 195.985 274.225 +59.5092 196.237 274.578 +56.4133 196.015 274.267 +53.5006 196.409 274.818 +50.4178 196.155 274.463 +47.3467 195.886 274.086 +44.2875 195.599 273.686 +41.3503 195.817 273.99 +38.3306 195.615 273.707 +35.3724 195.686 273.807 +32.3671 195.453 273.481 +29.4935 196.015 274.267 +26.4329 195.288 273.249 +23.494 195.357 273.346 +20.5611 195.469 273.502 +17.6268 195.565 273.638 +14.6866 195.59 273.672 +11.7507 195.656 273.765 +8.79545 195.302 273.269 +5.85528 195.048 272.914 +2.9295 195.187 273.108 +1.90958e-14 195.252 273.2 +-2.92252 194.722 272.457 +-5.84132 194.583 272.263 +-8.76404 194.604 272.293 +-11.7193 195.133 273.033 +-14.6081 194.544 272.208 +-17.5692 194.927 272.744 +-20.5001 194.888 272.691 +-23.4242 194.777 272.534 +-26.3387 194.592 272.276 +-29.2582 194.452 272.08 +-32.1946 194.412 272.023 +-35.2052 194.761 272.512 +-38.1042 194.459 272.09 +-41.0456 194.374 271.971 +-43.9612 194.159 271.669 +-46.9988 194.446 272.072 +-49.8118 193.798 271.164 +-52.8279 193.939 271.363 +-55.8851 194.18 271.7 +-58.7973 193.889 271.293 +-61.8325 193.984 271.425 +-64.7415 193.663 270.976 +-67.6854 193.441 270.665 +-70.9603 194.114 271.607 +-73.8492 193.689 271.013 +-76.9333 193.761 271.113 +-80.0484 193.872 271.268 +-82.955 193.458 270.689 +-86.331 194.099 271.587 +-89.189 193.542 270.806 +-92.3843 193.698 271.025 +-95.7564 194.172 271.688 +-98.6101 193.567 270.842 +-102.067 194.116 271.61 +-105.127 193.868 271.263 +-108.31 193.825 271.203 +-111.501 193.764 271.118 +-114.763 193.796 271.162 +-117.934 193.645 270.95 +-121.178 193.585 270.867 +-124.394 193.453 270.683 +-127.83 193.629 270.928 +-131.134 193.568 270.843 +-136.432 196.346 274.729 +-140.1 196.666 275.178 +-143.32 196.323 274.698 +-143.071 191.322 267.701 +-143.049 186.818 261.398 +-146.013 186.296 260.668 +-150.748 187.973 263.014 +-158.729 193.498 270.745 +-162.899 194.201 271.729 +-450.66 525.567 735.381 +-452.719 516.629 722.875 +-454.776 507.968 710.756 +-457.5 500.302 700.029 +-460.554 493.209 690.105 +-469.587 492.583 689.229 +-480.458 493.775 690.896 +-485.45 488.901 684.077 +-487.897 481.609 673.874 +-488.102 472.337 660.9 +-490.156 465.083 650.751 +-477.881 444.679 622.201 +-480.185 438.265 613.226 +-483.531 432.935 605.768 +-486.036 426.974 597.427 +-489.35 421.84 590.244 +-491.811 416.082 582.188 +-494.71 410.809 574.809 +-497.43 405.489 567.366 +-500.382 400.457 560.325 +-503.22 395.426 553.285 +-505.464 390.024 545.728 +-509.29 385.922 539.988 +-511.553 380.712 532.697 +-514.571 376.145 526.308 +-517.49 371.577 519.915 +-520.694 367.277 513.899 +-523.743 362.928 507.814 +-526.767 358.621 501.787 +-529.899 354.442 495.941 +-532.747 350.129 489.905 +-535.505 345.814 483.867 +-539.189 342.14 478.727 +-141.174 88.0264 123.168 +-142.834 87.5176 122.456 +-143.725 86.5384 121.086 +-142.775 84.4789 118.204 +-142.482 82.8468 115.92 +-142.793 81.5908 114.163 +-147.033 82.5595 115.518 +-152.764 84.2917 117.942 +-156.729 84.9807 118.906 +-157.704 84.0254 117.569 +-158.216 82.8328 115.901 +-159.827 82.2194 115.043 +-161.885 81.8252 114.491 +-583.764 289.902 405.635 +-587.326 286.555 400.952 +-590.524 283.047 396.043 +-593.351 279.381 390.913 +-596.895 276.07 386.281 +-599.991 272.565 381.377 +-603.663 269.334 376.856 +-606.723 265.84 371.968 +-2633.84 1133.22 1585.62 +-613.639 259.233 362.722 +-617.588 256.143 358.399 +-135.57 55.1957 77.2305 +-624.523 249.574 349.207 +-383.264 150.315 210.322 +-382.754 147.305 206.111 +-382.937 144.597 202.322 +-383.237 141.961 198.635 +-2778.63 1009.57 1412.6 +-646.131 230.226 322.136 +-649.99 227.089 317.746 +-380.409 130.291 182.305 +-382.35 128.356 179.598 +-383.044 126.01 176.316 +-383.171 123.498 172.8 +-381.231 120.356 168.404 +-382.405 118.226 165.423 +-2906.29 879.694 1230.88 +-665.76 197.242 275.984 +-669.948 194.22 271.755 +-674.365 191.246 267.594 +-678.834 188.267 263.426 +-682.903 185.16 259.079 +-114.2 30.2612 42.3419 +-113.736 29.4441 41.1986 +-111.148 28.1008 39.319 +-110.369 27.2404 38.1151 +-109.665 26.4123 36.9564 +-109.686 25.7677 36.0546 +-109.603 25.1036 35.1253 +-109.509 24.4424 34.2001 +-108.935 23.6821 33.1363 +-109.38 23.1483 32.3895 +-109.252 22.4954 31.4759 +-109.586 21.9402 30.699 +-110.006 21.4018 29.9456 +-109.847 20.753 29.0379 +-109.773 20.1248 28.1589 +-110.836 19.7031 27.5689 +-111.702 19.239 26.9195 +-112.564 18.7677 26.26 +-112.359 18.1181 25.3511 +-113.013 17.6075 24.6366 +-115.5 17.3682 24.3018 +-115.853 16.7956 23.5006 +-119.115 16.6279 23.266 +-125.304 16.8207 23.5358 +-160.308 20.6645 28.9141 +-160.612 19.8503 27.7749 +-162.765 19.2549 26.9417 +-164.128 18.5503 25.9559 +-3221.63 347.183 485.784 +-861.116 88.2869 123.532 +-868.72 84.5283 118.273 +-381.84 35.165 49.2033 +-381.958 33.1917 46.4423 +-380.659 31.1067 43.5249 +-406.592 31.1246 43.5499 +-405.058 28.9186 40.4633 +-403.291 26.7174 37.3833 +-405.268 24.7672 34.6546 +-403.733 22.604 31.6279 +-404.057 20.5546 28.7603 +-404.549 18.5128 25.9033 +-404.013 16.4269 22.9847 +-403.945 14.3656 20.1005 +-405.244 12.3489 17.2787 +-404.215 10.2617 14.3584 +-404.354 8.21031 11.488 +-149.149 2.27093 3.17751 +-143.678 1.45824 2.04038 +-145.794 0.739802 1.03514 +120 6.21725e-15 5.68434e-14 +119.995 0.616549 0.846436 +120.882 1.24231 1.70551 +120.659 1.86026 2.55387 +120.726 2.48217 3.40768 +120.685 3.10236 4.25911 +120.934 3.73156 5.12291 +120.475 4.33839 5.95601 +120.406 4.95722 6.80557 +121.026 5.608 7.699 +120.838 6.22448 8.54535 +120.542 6.8338 9.38186 +121.232 7.50211 10.2994 +120.918 8.11137 11.1358 +120.892 8.73953 11.9982 +120.659 9.35262 12.8399 +121.209 10.0296 13.7692 +120.66 10.6171 14.5758 +121.387 11.3196 15.5402 +121.116 11.9331 16.3825 +120.54 12.514 17.18 +121.039 13.208 18.1328 +120.838 13.8294 18.9858 +120.531 14.438 19.8214 +121.095 15.1547 20.8052 +120.865 15.7762 21.6586 +120.53 16.3834 22.4921 +121.06 17.112 23.4924 +121.578 17.8473 24.5018 +121.018 18.427 25.2978 +120.741 19.0481 26.1505 +121.707 19.8723 27.2819 +121.503 20.5131 28.1617 +121.291 21.1533 29.0405 +121.738 21.9134 30.084 +121.217 22.5026 30.893 +121.83 23.3065 31.9966 +121.48 23.9316 32.8547 +121.877 24.7082 33.9209 +121.129 25.2548 34.6714 +121.596 26.0574 35.7733 +121.861 26.8256 36.8278 +121.085 27.3662 37.57 +121.326 28.1384 38.6301 +120.905 28.7607 39.4844 +121.305 29.5835 40.6141 +121.046 30.2517 41.5314 +121.694 31.1542 42.7704 +121.684 31.898 43.7915 +121.662 32.6441 44.8158 +118.364 32.4965 44.6132 +115.441 32.4191 44.507 +113.068 32.469 44.5754 +109.54 32.1555 44.145 +107.723 32.3161 44.3656 +105.022 32.1887 44.1906 +102.157 31.9808 43.9052 +100.537 32.1392 44.1227 +97.695 31.8838 43.772 +95.9132 31.9497 43.8625 +97.1681 33.03 45.3456 +96.6748 33.528 46.0293 +96.517 34.1447 46.876 +96.9452 34.9777 48.0196 +96.3383 35.4433 48.6587 +96.3996 36.1583 49.6404 +95.7762 36.6202 50.2745 +96.7308 37.6958 51.7512 +96.0855 38.1585 52.3863 +96.1755 38.9175 53.4283 +96.2504 39.6803 54.4756 +96.3913 40.481 55.5748 +95.7876 40.9748 56.2527 +95.9001 41.7806 57.3589 +95.8363 42.5197 58.3737 +95.9164 43.3331 59.4903 +96.5313 44.4042 60.9608 +95.8695 44.8985 61.6394 +95.9775 45.7599 62.822 +95.8358 46.5134 63.8565 +95.9854 47.4203 65.1016 +95.7351 48.1411 66.0911 +95.8481 49.0561 67.3472 +95.6416 49.8198 68.3956 +96.2373 51.0184 70.0412 +95.4774 51.5109 70.7173 +95.9536 52.6821 72.3253 +95.822 53.5378 73.5 +95.6722 54.3963 74.6785 +96.1462 55.6286 76.3703 +95.318 56.1204 77.0456 +95.7442 57.3639 78.7527 +95.4461 58.1925 79.8902 +95.2683 59.1078 81.1469 +95.6162 60.3702 82.8799 +95.3258 61.2498 84.0875 +95.6857 62.5686 85.8981 +95.2848 63.4106 87.0539 +95.5222 64.6976 88.8209 +95.0792 65.5437 89.9824 +95.1326 66.7518 91.641 +95.0301 67.874 93.1817 +94.5239 68.7254 94.3505 +94.6845 70.0843 96.216 +94.6887 71.3566 97.9628 +94.5406 72.5412 99.5891 +94.485 73.8236 101.35 +94.2794 75.0158 102.986 +94.3395 76.4501 104.955 +94.7707 78.2264 107.394 +94.2386 79.2408 108.787 +94.5332 80.9836 111.179 +94.224 82.2471 112.914 +94.0501 83.6607 114.855 +94.277 85.4742 117.344 +94.1349 86.9979 119.436 +94.0077 88.577 121.604 +94.0497 90.3615 124.054 +93.8399 91.9518 126.237 +94.0976 94.0537 129.123 +93.65 95.5027 131.112 +93.5605 97.3638 133.667 +93.7137 99.5399 136.654 +91.2328 98.9311 135.819 +89.1526 98.7203 135.529 +88.4249 100.01 137.3 +88.2104 101.93 139.935 +87.8563 103.749 142.433 +87.9811 106.207 145.808 +87.6521 108.196 148.538 +87.6933 110.724 152.008 +87.7491 113.367 155.637 +90.5396 119.729 164.372 +90.4762 122.512 168.192 +88.6569 122.972 168.824 +88.4381 125.708 172.579 +93.0897 135.656 186.236 +93.018 139.032 190.872 +92.9248 142.528 195.671 +92.6649 145.923 200.332 +92.3796 149.436 205.156 +92.1641 153.235 210.371 +92.0381 157.377 216.057 +91.701 161.362 221.528 +91.7162 166.195 228.162 +91.6551 171.151 234.967 +91.3077 175.839 241.402 +89.408 177.712 243.974 +87.129 178.901 245.606 +90.9947 193.185 265.216 +90.4314 198.706 272.797 +87.2825 198.708 272.798 +84.1162 198.635 272.698 +80.8188 198.2 272.101 +77.923 198.723 272.819 +74.7366 198.483 272.49 +71.6672 198.514 272.532 +68.5228 198.298 272.236 +65.562 198.585 272.629 +62.4703 198.451 272.446 +59.3703 198.243 272.16 +56.2647 197.959 271.771 +53.3442 198.299 272.237 +50.4178 198.623 272.683 +47.2214 197.826 271.587 +44.2875 198.061 271.91 +41.3503 198.281 272.212 +38.2287 197.55 271.208 +35.3933 198.265 272.191 +32.2808 197.385 270.982 +29.3976 197.836 271.602 +26.4407 197.804 271.557 +23.501 197.873 271.653 +20.5611 197.928 271.728 +17.6215 197.968 271.782 +14.6518 197.58 271.249 +11.7158 197.53 271.182 +8.77451 197.288 270.849 +5.85528 197.502 271.144 +2.92164 197.113 270.608 +1.75415e-14 197.65 271.346 +-2.92339 197.23 270.77 +-5.84307 197.09 270.578 +-8.76666 197.112 270.607 +-11.6913 197.118 270.616 +-14.6081 196.991 270.442 +-17.5221 196.85 270.248 +-20.4513 196.87 270.275 +-23.3614 196.699 270.04 +-26.3466 197.1 270.591 +-29.1972 196.487 269.75 +-32.1946 196.858 270.258 +-35.1111 196.685 270.021 +-38.1155 196.965 270.406 +-41.0456 196.82 270.207 +-43.9743 196.66 269.987 +-46.8874 196.426 269.666 +-49.797 196.178 269.325 +-52.8279 196.38 269.602 +-55.7531 196.159 269.299 +-58.7799 196.271 269.453 +-61.6685 195.903 268.948 +-64.7415 196.099 269.217 +-67.6854 195.874 268.909 +-70.7731 196.038 269.132 +-73.676 195.667 268.623 +-76.9558 196.256 269.432 +-80.0484 196.311 269.508 +-82.955 195.892 268.933 +-86.0806 195.972 269.042 +-89.2149 196.034 269.128 +-92.1438 195.625 268.566 +-95.4808 196.049 269.149 +-98.6385 196.059 269.162 +-101.775 195.996 269.075 +-104.916 195.915 268.964 +-108.31 196.264 269.443 +-111.215 195.7 268.669 +-114.763 196.234 269.402 +-117.967 196.137 269.269 +-121.178 196.021 269.11 +-124.078 195.391 268.245 +-127.436 195.461 268.34 +-130.804 195.511 268.409 +-136.095 198.325 272.273 +-139.756 198.652 272.721 +-143.281 198.739 272.841 +-143.071 193.73 265.964 +-142.887 188.953 259.407 +-146.096 188.747 259.124 +-150.537 190.071 260.941 +-158.686 195.88 268.916 +-163.775 197.703 271.418 +-450.437 531.916 730.248 +-1487.5 1718.84 2359.74 +-454.961 514.569 706.432 +-457.641 506.753 695.702 +-459.981 498.795 684.776 +-469.732 498.935 684.969 +-480.901 500.448 687.046 +-486.15 495.766 680.619 +-488.049 487.822 669.712 +-488.308 478.482 656.89 +-490.783 471.537 647.356 +-477.881 450.274 618.164 +-480.453 444.028 609.589 +-483.531 438.382 601.838 +-486.201 432.493 593.753 +-489.182 427.001 586.213 +-491.811 421.318 578.411 +-494.71 415.977 571.08 +-497.546 410.687 563.817 +-500.146 405.305 556.428 +-503.042 400.259 549.5 +-505.765 395.167 542.509 +-509.29 390.778 536.484 +-511.738 385.642 529.433 +-514.757 381.016 523.083 +-517.931 376.572 516.982 +-520.948 372.08 510.814 +-523.743 367.495 504.519 +-526.572 362.999 498.347 +-529.636 358.724 492.479 +-532.747 354.534 486.726 +-536.107 350.559 481.268 +-539.189 346.445 475.621 +-141.446 89.3065 122.605 +-143.247 88.8749 122.013 +-143.794 87.6697 120.358 +-142.705 85.5001 117.38 +-141.775 83.4729 114.597 +-142.65 82.535 113.309 +-147.321 83.762 114.994 +-152.836 85.3929 117.233 +-156.729 86.05 118.135 +-157.482 84.9631 116.643 +-159.107 84.3478 115.798 +-160.501 83.6048 114.778 +-162.112 82.9701 113.906 +-583.764 293.55 403.003 +-587.096 290.047 398.195 +-589.984 286.346 393.113 +-593.351 282.896 388.377 +-596.895 279.543 383.775 +-599.991 275.995 378.903 +-603.663 272.723 374.41 +-607.043 269.327 369.749 +-610.288 265.882 365.02 +-2650.74 1133.9 1556.69 +-617.588 259.366 356.073 +-136.061 56.0927 77.0076 +-624.276 252.614 346.804 +-382.518 151.91 208.551 +-383.504 149.451 205.176 +-383.44 146.609 201.274 +-383.49 143.842 197.476 +-384.929 141.617 194.42 +-646.557 233.277 320.257 +-650.247 230.037 315.809 +-383.942 133.156 182.804 +-382.783 130.118 178.634 +-381.477 127.074 174.455 +-382.384 124.795 171.327 +-382.549 122.292 167.89 +-381.963 119.575 164.16 +-2906.29 890.763 1222.89 +-666.206 199.858 274.377 +-670.753 196.9 270.316 +-675.444 193.962 266.283 +-678.834 190.636 261.717 +-682.903 187.49 257.398 +-114.746 30.7885 42.2683 +-112.914 29.599 40.6354 +-111.239 28.4778 39.0961 +-110.369 27.5831 37.8678 +-110.496 26.9474 36.995 +-109.686 26.0919 35.8206 +-109.51 25.3979 34.8678 +-109.509 24.7499 33.9782 +-109.029 24.0007 32.9496 +-109.286 23.4195 32.1517 +-110.006 22.9357 31.4876 +-109.491 22.1971 30.4736 +-109.911 21.6524 29.7257 +-109.752 20.9959 28.8245 +-109.964 20.4135 28.0249 +-110.836 19.951 27.39 +-111.702 19.4811 26.7449 +-111.795 18.874 25.9114 +-113.13 18.472 25.3595 +-113.786 17.951 24.6442 +-114.532 17.4394 23.9419 +-116.727 17.1351 23.5241 +-118.824 16.7959 23.0584 +-125.889 17.1118 23.4922 +-160.015 20.8863 28.674 +-161.786 20.247 27.7963 +-161.884 19.3915 26.6219 +-163.343 18.6938 25.664 +-3221.63 351.552 482.632 +-860.82 89.3671 122.689 +-869.016 85.6208 117.545 +-381.445 35.5706 48.8335 +-383.244 33.7225 46.2963 +-379.867 31.4326 43.1526 +-406.691 31.5238 43.2779 +-404.76 29.2609 40.1712 +-405.874 27.2268 37.3786 +-404.273 25.0173 34.3453 +-403.335 22.8659 31.3917 +-403.957 20.8081 28.5667 +-404.649 18.7503 25.7415 +-405.211 16.6829 22.9033 +-405.043 14.5859 20.0244 +-404.645 12.4858 17.1412 +-403.316 10.3677 14.2334 +-404.354 8.31361 11.4134 +-148.049 2.28255 3.13363 +-144.978 1.48994 2.04548 +-147.494 0.757842 1.04041 +120 6.21725e-15 5.68434e-14 +119.895 0.623641 0.840141 +120.082 1.24931 1.68302 +120.659 1.88322 2.53699 +120.626 2.51073 3.38235 +120.785 3.14326 4.23445 +120.934 3.77762 5.08904 +120.475 4.39195 5.91663 +120.406 5.01841 6.76058 +120.328 5.64449 7.604 +120.838 6.30132 8.48885 +120.542 6.91816 9.31983 +120.337 7.53864 10.1557 +120.918 8.2115 11.0622 +120.892 8.84742 11.9188 +120.758 9.47588 12.7655 +121.209 10.1534 13.6782 +120.759 10.757 14.4913 +121.387 11.4593 15.4375 +120.228 11.9919 16.1549 +121.328 12.7513 17.178 +121.039 13.3711 18.0129 +120.74 13.9887 18.845 +121.511 14.735 19.8504 +121.192 15.3541 20.6844 +120.865 15.971 21.5154 +120.53 16.5856 22.3434 +120.866 17.2954 23.2996 +121.384 18.0387 24.301 +121.115 18.6694 25.1506 +120.837 19.2987 25.9983 +120.839 19.9743 26.9084 +121.6 20.7827 27.9975 +121.195 21.3975 28.8257 +120.877 22.0271 29.6739 +121.313 22.7984 30.7129 +120.974 23.4285 31.5618 +121.48 24.227 32.6375 +121.688 24.9744 33.6443 +121.129 25.5666 34.4421 +121.596 26.3791 35.5367 +121.018 26.9688 36.3312 +121.085 27.704 37.3216 +121.419 28.5076 38.4041 +120.719 29.0711 39.1632 +121.305 29.9487 40.3456 +120.862 30.5786 41.194 +120.869 31.3249 42.1994 +121.684 32.2918 43.502 +121.025 32.874 44.2864 +118.364 32.8977 44.3183 +115.531 32.8449 44.2472 +113.068 32.8698 44.2807 +110.166 32.7386 44.104 +107.634 32.688 44.0358 +104.933 32.5585 43.8614 +102.952 32.6274 43.9541 +101.064 32.7066 44.0608 +98.3947 32.5086 43.7941 +95.5651 32.2267 43.4143 +97.1681 33.4378 45.0458 +96.5025 33.8814 45.6435 +96.6028 34.5969 46.6074 +97.542 35.6275 47.9957 +96.5079 35.944 48.4221 +96.5683 36.6688 49.3985 +96.4471 37.332 50.2919 +96.6474 38.1283 51.3647 +96.0855 38.6296 52.04 +96.1755 39.3979 53.0751 +96.3323 40.2043 54.1615 +96.3913 40.9807 55.2074 +95.7876 41.4806 55.8807 +95.9001 42.2963 56.9797 +96.555 43.3674 58.4226 +95.9164 43.868 59.097 +95.9797 44.6955 60.2117 +95.8695 45.4527 61.2318 +95.8221 46.2497 62.3055 +95.8358 47.0876 63.4342 +95.8322 47.9291 64.5678 +95.7351 48.7354 65.6541 +95.6972 49.5834 66.7965 +96.3157 50.7902 68.4222 +96.2373 51.6482 69.5781 +96.2147 52.5494 70.7922 +95.9536 53.3325 71.847 +95.822 54.1987 73.0141 +95.6003 55.0263 74.129 +96.1462 56.3153 75.8654 +95.9544 57.1925 77.0471 +95.7442 58.072 78.232 +95.5155 58.9537 79.4197 +95.8878 60.2267 81.1347 +95.6162 61.1154 82.3319 +95.3258 62.0059 83.5315 +94.9496 62.8535 84.6733 +95.2848 64.1933 86.4783 +95.5222 65.4963 88.2336 +95.1441 66.3981 89.4485 +95.1326 67.5759 91.0351 +95.1573 68.8037 92.6892 +94.7127 69.7127 93.9137 +94.6222 70.9024 95.5164 +94.6272 72.1904 97.2516 +94.4798 73.389 98.8663 +94.485 74.7349 100.679 +94.2199 75.8942 102.241 +94.2808 77.3455 104.196 +94.3062 78.8034 106.16 +94.1813 80.1702 108.002 +94.4766 81.9338 110.378 +94.1681 83.2129 112.101 +93.9949 84.644 114.029 +93.8958 86.1794 116.097 +94.1886 88.1225 118.715 +94.0077 89.6704 120.8 +93.5795 91.0198 122.618 +93.8399 93.0869 125.402 +93.9961 95.1122 128.131 +93.65 96.6816 130.245 +93.5605 98.5657 132.783 +93.7622 100.821 135.821 +91.5191 100.466 135.344 +89.5752 100.412 135.271 +87.9631 100.716 135.68 +88.5281 103.559 139.51 +88.2579 105.51 142.138 +87.6742 107.143 144.339 +87.6521 109.532 147.556 +87.7356 112.144 151.075 +87.6247 114.603 154.388 +90.2955 120.881 162.845 +90.8749 124.571 167.816 +88.3834 124.106 167.19 +89.8541 129.297 174.183 +92.7526 136.833 184.335 +92.7248 140.305 189.013 +92.9248 144.287 194.377 +92.6649 147.724 199.007 +92.4138 151.337 203.875 +92.1307 155.071 208.904 +92.0056 159.264 214.553 +91.828 163.58 220.367 +91.7162 168.246 226.654 +91.5048 172.98 233.031 +91.1907 177.781 239.498 +89.6068 180.306 242.901 +86.9636 180.765 243.519 +90.9412 195.455 263.308 +90.3278 200.929 270.683 +87.0071 200.526 270.139 +84.1404 201.145 270.973 +80.6554 200.242 269.756 +77.7206 200.653 270.311 +74.5634 200.468 270.061 +71.4385 200.324 269.867 +68.3234 200.162 269.649 +65.3902 200.51 270.118 +62.1241 199.787 269.144 +59.1967 200.103 269.569 +56.0007 199.462 268.707 +53.2034 200.217 269.723 +50.0335 199.543 268.815 +47.2214 200.268 269.792 +44.0656 199.501 268.759 +41.2406 200.196 269.695 +38.1268 199.455 268.697 +35.2993 200.18 269.673 +32.1946 199.288 268.472 +29.3192 199.744 269.087 +26.2446 198.76 267.761 +23.4382 199.781 269.136 +20.4513 199.3 268.488 +17.5796 199.935 269.344 +14.6125 199.483 268.734 +11.7193 200.028 269.468 +8.75357 199.247 268.416 +5.83958 199.404 268.628 +2.91379 199.01 268.097 +1.94289e-14 199.077 268.187 +-2.90768 198.592 267.534 +-5.82736 198.987 268.066 +-8.74572 199.069 268.176 +-11.6634 199.074 268.184 +-14.5776 199.007 268.093 +-17.4802 198.804 267.82 +-20.3841 198.646 267.607 +-23.3545 199.067 268.174 +-26.2289 198.641 267.6 +-29.1972 198.913 267.966 +-32.0221 198.22 267.033 +-35.0275 198.638 267.596 +-37.9231 198.39 267.261 +-40.9359 198.717 267.702 +-43.7524 198.083 266.848 +-46.79 198.438 267.326 +-49.5605 197.657 266.274 +-52.6871 198.274 267.106 +-55.4395 197.463 266.014 +-58.641 198.225 267.039 +-61.3587 197.326 265.828 +-64.5698 197.994 266.728 +-67.3266 197.242 265.715 +-70.5444 197.816 266.489 +-73.4812 197.558 266.141 +-76.7758 198.214 267.025 +-79.6749 197.807 266.477 +-82.9792 198.368 267.233 +-85.8553 197.872 266.564 +-88.982 197.935 266.65 +-91.8766 197.465 266.016 +-95.2878 198.068 266.829 +-98.1557 197.508 266.074 +-101.745 198.358 267.219 +-104.676 197.878 266.573 +-108.032 198.176 266.974 +-110.612 197.042 265.446 +-114.405 198.037 266.786 +-117.366 197.547 266.126 +-120.87 197.937 266.651 +-123.798 197.357 265.87 +-127.507 197.985 266.716 +-130.181 196.981 265.364 +-135.87 200.442 270.026 +-139.105 200.168 269.657 +-143.203 201.083 270.889 +-143.071 196.121 264.205 +-142.927 191.34 257.765 +-144.894 189.504 255.292 +-150.072 191.823 258.415 +-157.007 196.2 264.311 +-161.452 197.304 265.799 +-166.075 198.537 267.461 +-452.856 529.747 713.65 +-455.376 521.397 702.402 +-457.5 512.851 690.889 +-460.554 505.58 681.094 +-470.168 505.563 681.072 +-481.787 507.56 683.762 +-487.6 503.383 678.135 +-487.592 493.381 664.66 +-487.844 483.929 651.927 +-491.358 477.917 643.828 +-477.881 455.832 614.077 +-481.152 450.162 606.438 +-483.531 443.794 597.858 +-486.532 438.13 590.229 +-489.35 432.421 582.537 +-492.547 427.157 575.446 +-494.71 421.113 567.304 +-497.895 416.049 560.482 +-500.734 410.791 553.399 +-503.28 405.391 546.125 +-506.307 400.474 539.5 +-509.655 395.886 533.319 +-512.292 390.825 526.501 +-515.193 386.046 520.064 +-517.931 381.221 513.563 +-521.139 376.811 507.622 +-523.743 372.031 501.183 +-527.352 368.024 495.785 +-529.636 363.153 489.223 +-533.343 359.312 484.049 +-536.107 354.886 478.086 +-540.067 351.293 473.246 +-141.446 90.4089 121.795 +-142.902 89.7562 120.916 +-143.864 88.7948 119.62 +-142.565 86.4703 116.489 +-141.846 84.5457 113.896 +-142.864 83.679 112.729 +-147.537 84.92 114.4 +-155.303 87.8424 118.337 +-156.437 86.9495 117.134 +-157.925 86.2533 116.197 +-158.884 85.2693 114.871 +-160.876 84.8348 114.286 +-162.036 83.9556 113.101 +-584.752 297.677 401.017 +-587.096 293.628 395.562 +-591.605 290.677 391.586 +-593.74 286.576 386.062 +-597.521 283.291 381.637 +-600.307 279.549 376.595 +-604.059 276.27 372.179 +-607.682 272.939 367.69 +-2633.84 1161.64 1564.91 +-2650.74 1147.9 1546.4 +-618.077 262.775 353.999 +-135.815 56.6827 76.3603 +-137.629 56.3792 75.9514 +-386 155.185 209.058 +-383.254 151.197 203.686 +-384.363 148.776 200.424 +-382.225 145.138 195.523 +-381.876 142.228 191.604 +-646.557 236.157 318.14 +-650.419 232.938 313.804 +-649.496 228.034 307.196 +-382.004 131.456 177.092 +-383.914 129.464 174.408 +-382.121 126.249 170.076 +-381.758 123.546 166.435 +-380.197 120.492 162.321 +-381.858 118.482 159.614 +-666.206 202.325 272.563 +-670.753 199.33 268.529 +-674.635 196.121 264.205 +-679.286 193.118 260.16 +-682.903 189.804 255.696 +-114.291 31.045 41.8224 +-113.097 30.0129 40.432 +-111.423 28.8769 38.9016 +-110.369 27.9236 37.6174 +-109.665 27.0748 36.4739 +-109.686 26.414 35.5838 +-109.696 25.7551 34.6961 +-109.509 25.0554 33.7535 +-108.935 24.2761 32.7037 +-109.192 23.6882 31.9116 +-109.346 23.0796 31.0917 +-109.491 22.4711 30.2721 +-109.911 21.9197 29.5292 +-109.847 21.2735 28.6587 +-110.536 20.773 27.9845 +-110.74 20.1798 27.1854 +-111.511 19.6877 26.5224 +-112.66 19.2548 25.9392 +-113.13 18.7 25.1918 +-113.786 18.1726 24.4812 +-114.435 17.6397 23.7634 +-116.727 17.3466 23.3686 +-118.824 17.0032 22.9059 +-127.058 17.484 23.5536 +-160.796 21.2473 28.6234 +-159.732 20.2367 27.262 +-162.08 19.6547 26.4779 +-162.656 18.845 25.3871 +-3221.63 355.892 479.441 +-861.707 90.5633 122.003 +-869.312 86.7075 116.808 +-380.556 35.9257 48.3975 +-381.958 34.0243 45.8359 +-380.164 31.8455 42.9008 +-406.988 31.9363 43.0232 +-404.363 29.5931 39.8664 +-405.874 27.5629 37.1315 +-405.765 25.4196 34.2441 +-404.728 23.2282 31.2919 +-404.854 21.1117 28.4408 +-403.951 18.949 25.5273 +-404.313 16.8514 22.7014 +-404.245 14.7369 19.8528 +-404.245 12.6274 17.0111 +-403.915 10.5113 14.1604 +-405.153 8.43293 11.3605 +-146.95 2.29356 3.08978 +-145.678 1.51562 2.04177 +-146.094 0.759919 1.02373 +120 6.21725e-15 5.68434e-14 +119.995 0.63172 0.835174 +119.982 1.2634 1.67029 +120.659 1.90603 2.51989 +119.827 2.5243 3.33729 +120.685 3.1787 4.20245 +120.934 3.82338 5.05475 +120.575 4.44882 5.88163 +121.104 5.10865 6.75397 +121.026 5.74599 7.59657 +120.838 6.37764 8.43166 +120.542 7.00196 9.25704 +120.337 7.62995 10.0873 +120.918 8.31097 10.9876 +120.892 8.95458 11.8385 +120.659 9.58275 12.669 +121.209 10.2764 13.586 +120.759 10.8873 14.3937 +120.498 11.5132 15.2212 +121.116 12.2267 16.1645 +120.54 12.8219 16.9514 +121.039 13.533 17.8915 +120.838 14.1697 18.7332 +121.315 14.8895 19.6849 +120.214 15.4146 20.3791 +120.768 16.1514 21.3532 +120.53 16.7865 22.1928 +121.06 17.533 23.1798 +121.384 18.2572 24.1373 +121.115 18.8956 24.9811 +121.127 19.5793 25.8851 +121.707 20.3613 26.9189 +121.503 21.0179 27.787 +121.099 21.6395 28.6089 +120.877 22.2939 29.474 +121.313 23.0745 30.506 +121.165 23.7495 31.3984 +121.101 24.4439 32.3164 +121.688 25.2769 33.4177 +121.506 25.9568 34.3166 +121.596 26.6986 35.2973 +120.924 27.2744 36.0585 +121.179 28.0613 37.0988 +121.326 28.8308 38.1162 +120.534 29.378 38.8396 +121.028 30.2422 39.9822 +120.954 30.9725 40.9477 +121.51 31.8727 42.1378 +121.502 32.6338 43.1441 +121.389 33.3723 44.1203 +118.998 33.4747 44.2557 +116.524 33.5285 44.3268 +113.068 33.2679 43.9824 +110.972 33.3774 44.127 +107.544 33.0566 43.7029 +105.643 33.1758 43.8605 +103.57 33.2208 43.9201 +101.064 33.1028 43.764 +98.3073 32.8731 43.4604 +96.1743 32.825 43.3967 +96.5618 33.6316 44.4632 +96.5025 34.2918 45.3359 +96.6028 35.016 46.2934 +96.6894 35.7438 47.2556 +96.5927 36.4113 48.1381 +96.1466 36.9509 48.8514 +96.531 37.817 49.9966 +96.6474 38.5901 51.0186 +96.6658 39.3336 52.0015 +96.0931 39.841 52.6723 +96.2504 40.6567 53.7508 +96.3913 41.4771 54.8354 +96.4348 42.2667 55.8793 +96.4628 43.0598 56.9278 +95.8363 43.566 57.597 +95.9164 44.3994 58.6988 +95.8221 45.1626 59.7078 +95.8695 46.0033 60.8193 +95.8221 46.8099 61.8857 +96.5302 48.0033 63.4634 +95.9854 48.5872 64.2354 +95.7351 49.3257 65.2118 +95.6972 50.184 66.3465 +95.6416 51.0456 67.4856 +95.7171 51.9912 68.7357 +95.6249 52.8599 69.8842 +95.2954 53.6082 70.8734 +95.822 54.8552 72.5221 +95.6722 55.7348 73.685 +96.0748 56.9551 75.2983 +95.9544 57.8853 76.5281 +95.604 58.6894 77.5912 +95.4461 59.6244 78.8273 +95.2683 60.5623 80.0672 +95.6162 61.8557 81.7772 +95.2582 62.7123 82.9097 +94.9496 63.6148 84.1028 +94.6221 64.5191 85.2983 +94.9317 65.8794 87.0968 +95.0142 67.1107 88.7246 +95.1326 68.3944 90.4218 +95.2209 69.6835 92.1261 +94.5239 70.4165 93.0952 +94.6845 71.8088 94.9359 +94.5656 73.0172 96.5334 +94.6015 74.3739 98.3271 +94.3646 75.5436 99.8735 +94.3984 76.9588 101.745 +94.3395 78.3313 103.559 +94.8869 80.249 106.094 +94.2386 81.1907 107.339 +94.5898 83.0258 109.765 +94.1122 84.1708 111.279 +94.5468 86.1724 113.925 +94.4404 87.7288 115.983 +94.1886 89.1899 117.915 +94.0077 90.7566 119.986 +93.684 92.2249 121.927 +93.8399 94.2144 124.558 +93.9454 96.2124 127.199 +93.6 97.8002 129.298 +93.5605 99.7596 131.889 +93.8591 102.147 135.045 +92.3779 102.638 135.694 +89.4813 101.522 134.219 +88.5634 102.632 135.686 +88.1196 104.33 137.931 +88.3918 106.949 141.394 +87.7181 108.495 143.438 +87.5229 110.695 146.347 +87.8201 113.612 150.203 +87.9564 116.431 153.929 +89.116 120.747 159.635 +91.473 126.91 167.783 +88.735 126.109 166.725 +92.9921 135.433 179.051 +92.8275 138.602 183.241 +92.7248 142.005 187.739 +92.889 145.979 192.993 +92.6999 149.57 197.741 +92.2428 152.887 202.126 +92.1641 157.006 207.572 +91.9404 161.078 212.956 +91.701 165.333 218.58 +91.7471 170.341 225.202 +91.5048 175.075 231.461 +90.6645 178.896 236.512 +89.2092 181.68 240.193 +86.8809 182.781 241.648 +90.9145 197.764 261.457 +89.8879 202.373 267.55 +86.3561 201.436 266.312 +83.4872 202 267.057 +80.0017 201.024 265.767 +77.2932 201.967 267.014 +73.9791 201.306 266.14 +71.2513 202.219 267.346 +67.6455 200.576 265.174 +65.0849 201.991 267.045 +61.6685 200.724 265.37 +58.9188 201.576 266.496 +55.588 200.391 264.93 +52.8279 201.212 266.015 +49.6492 200.408 264.953 +46.8735 201.2 265.999 +43.7132 200.303 264.813 +40.9359 201.124 265.899 +37.8325 200.313 264.827 +35.017 200.984 265.714 +31.9454 200.141 264.599 +29.0926 200.601 265.208 +26.1033 200.085 264.525 +23.2708 200.756 265.413 +20.2986 200.209 264.69 +17.4854 201.272 266.095 +14.4947 200.272 264.773 +11.6285 200.883 265.58 +8.66457 199.61 263.898 +5.81165 200.854 265.542 +2.89023 199.791 264.137 +1.90958e-14 200.342 264.865 +-2.88412 199.369 263.579 +-5.79594 200.311 264.824 +-8.6541 199.369 263.579 +-11.6041 200.461 265.022 +-14.4249 199.307 263.497 +-17.3912 200.188 264.662 +-20.1826 199.065 263.177 +-23.2429 200.516 265.095 +-26.017 199.424 263.651 +-29.049 200.301 264.811 +-31.7825 199.119 263.248 +-34.9543 200.624 265.238 +-37.6401 199.294 263.48 +-40.7287 200.106 264.553 +-43.413 198.927 262.995 +-46.5395 199.767 264.104 +-49.1762 198.5 262.429 +-52.296 199.186 263.337 +-55.0269 198.368 262.255 +-58.2242 199.199 263.354 +-60.8849 198.173 261.998 +-64.2645 199.444 263.678 +-66.7883 198.035 261.814 +-70.1702 199.151 263.29 +-72.7454 197.949 261.701 +-76.1909 199.087 263.205 +-78.8812 198.209 262.045 +-82.3018 199.132 263.266 +-85.004 198.282 262.142 +-88.542 199.342 263.544 +-90.9679 197.881 261.611 +-94.7641 199.366 263.575 +-97.3889 198.339 262.216 +-101.102 199.491 263.74 +-103.653 198.319 262.19 +-107.229 199.085 263.204 +-110.01 198.342 262.22 +-113.819 199.409 263.631 +-116.165 197.892 261.626 +-120.22 199.257 263.431 +-122.818 198.165 261.987 +-126.576 198.919 262.984 +-129.192 197.852 261.573 +-134.596 200.968 265.692 +-137.957 200.921 265.63 +-142.304 202.241 267.376 +-143.151 198.608 262.572 +-143.049 193.823 256.247 +-144.147 190.812 252.266 +-148.931 192.67 254.723 +-154.898 195.908 259.003 +-160.532 198.555 262.503 +-1461.97 1768.9 2338.6 +-453.31 536.701 709.553 +-455.838 528.247 698.377 +-458.251 519.915 687.361 +-462.558 513.931 679.449 +-472.35 514.062 679.622 +-483.757 515.808 681.931 +-485.55 507.338 670.734 +-487.034 498.785 659.426 +-489.338 491.29 649.518 +-489.947 482.318 637.655 +-478.888 462.326 611.224 +-481.958 456.378 603.361 +-484.511 450.079 595.034 +-487.526 444.342 587.449 +-489.909 438.158 579.274 +-493.227 432.928 572.358 +-495.57 426.954 564.461 +-498.417 421.53 557.289 +-501.381 416.303 550.379 +-504.588 411.369 543.856 +-507.21 406.047 536.82 +-510.203 401.112 530.296 +-512.846 395.986 523.52 +-516.314 391.572 517.683 +-518.686 386.401 510.847 +-522.284 382.213 505.31 +-524.386 377 498.418 +-527.936 372.894 492.99 +-530.489 368.143 486.709 +-533.939 364.072 481.326 +-536.777 359.633 475.458 +-141.942 93.4459 123.541 +-142.265 92.0331 121.674 +-142.558 90.6244 119.811 +-143.725 89.7835 118.7 +-142.635 87.5605 115.761 +-142.482 85.9534 113.636 +-143.292 84.9466 112.305 +-147.824 86.1163 113.851 +-156.173 89.4047 118.199 +-157.387 88.5378 117.053 +-157.63 87.1352 115.198 +-158.884 86.3021 114.097 +-161.7 86.3021 114.097 +-163.168 85.5661 113.124 +-585.437 301.635 398.781 +-588.399 297.844 393.768 +-592.222 294.505 389.354 +-595.138 290.731 384.365 +-598.226 287.06 379.512 +-601.646 283.566 374.893 +-605.091 280.094 370.302 +-607.362 276.099 365.021 +-612.378 273.358 361.397 +-614.934 269.521 356.324 +-2667.45 1147.8 1517.47 +-134.832 56.954 75.2969 +-135.404 56.1395 74.22 +-629.157 256.005 338.455 +-382.337 152.662 201.829 +-382.685 149.921 198.205 +-384.755 147.868 195.491 +-383.572 144.59 191.157 +-648.092 239.585 316.746 +-651.533 236.163 312.223 +-656.217 233.184 308.284 +-381.917 133.018 175.859 +-382.086 130.409 172.409 +-381.859 127.69 168.815 +-381.758 125.042 165.314 +-382.405 122.659 162.163 +-382.656 120.168 158.87 +-667.275 205.104 271.16 +-671.738 202.041 267.111 +-675.174 198.655 262.635 +-680.188 195.717 258.75 +-115.554 32.5058 42.9748 +-114.291 31.421 41.5406 +-112.366 30.1802 39.9001 +-110.873 29.0823 38.4487 +-110.645 28.3326 37.4575 +-109.942 27.472 36.3197 +-109.779 26.7565 35.3739 +-109.789 26.0892 34.4916 +-109.696 25.4021 33.5832 +-109.122 24.6124 32.5392 +-108.91 23.9132 31.6148 +-109.346 23.3591 30.8823 +-109.586 22.7629 30.094 +-110.1 22.2235 29.3809 +-110.418 21.643 28.6135 +-110.154 20.9521 27.7 +-110.836 20.4419 27.0256 +-111.702 19.9605 26.389 +-111.795 19.3384 25.5666 +-113.13 18.9265 25.022 +-113.786 18.3927 24.3163 +-115.113 17.9591 23.7431 +-116.727 17.5567 23.2111 +-119.504 17.3077 22.8819 +-131.637 18.3336 24.2381 +-159.429 21.3219 28.1889 +-158.558 20.3313 26.8793 +-161.884 19.8687 26.2677 +-163.048 19.1193 25.2769 +-854.94 95.5887 126.374 +-861.707 91.6602 121.181 +-870.496 87.8772 116.179 +-379.964 36.3043 47.9966 +-380.474 34.3026 45.3503 +-380.857 32.29 42.6894 +-405.798 32.2287 42.6084 +-405.058 30.003 39.6659 +-405.477 27.8694 36.8452 +-403.676 25.5951 33.8384 +-405.226 23.5384 31.1193 +-404.555 21.3517 28.2283 +-404.549 19.207 25.3928 +-403.315 17.0134 22.4928 +-405.043 14.9448 19.758 +-404.445 12.7867 16.9049 +-404.515 10.6544 14.0859 +-404.653 8.52452 11.27 +-146.15 2.30871 3.05226 +-145.478 1.53187 2.02523 +-145.594 0.766488 1.01335 +119.9 5.32907e-15 2.84217e-14 +119.895 0.638696 0.828753 +120.082 1.27947 1.66021 +120.659 1.92868 2.5026 +120.726 2.57348 3.33927 +120.785 3.21914 4.17706 +120.934 3.86881 5.02006 +120.575 4.50169 5.84126 +121.104 5.16937 6.70762 +121.026 5.81428 7.54443 +120.838 6.45344 8.37379 +120.443 7.07931 9.1859 +120.238 7.71427 10.0098 +121.017 8.41669 10.9213 +120.793 9.05355 11.7476 +120.659 9.69664 12.5821 +121.209 10.3985 13.4928 +120.759 11.0167 14.2949 +120.498 11.65 15.1167 +121.017 12.3619 16.0405 +120.442 12.9638 16.8214 +120.94 13.6827 17.7543 +120.74 14.3264 18.5895 +120.531 14.9691 19.4234 +120.214 15.5978 20.2393 +120.475 16.3037 21.1551 +121.407 17.1096 22.2009 +121.157 17.7557 23.0392 +120.608 18.3561 23.8183 +121.115 19.1201 24.8097 +120.258 19.6698 25.5229 +121.417 20.5543 26.6707 +121.6 21.2844 27.6181 +121.291 21.9314 28.4575 +120.973 22.5767 29.2948 +121.313 23.3487 30.2966 +121.925 24.1827 31.3787 +121.48 24.8119 32.1951 +121.877 25.617 33.2399 +121.601 26.2857 34.1075 +121.878 27.0786 35.1363 +121.58 27.7481 36.0052 +121.085 28.3728 36.8158 +121.326 29.1734 37.8546 +120.627 29.75 38.6027 +121.121 30.625 39.7381 +121.875 31.5791 40.9761 +121.51 32.2515 41.8486 +122.05 33.1706 43.0412 +121.48 33.7942 43.8503 +119.633 34.053 44.1862 +117.065 34.0846 44.2272 +113.877 33.9041 43.993 +111.777 34.0192 44.1423 +108.97 33.8928 43.9782 +106.175 33.7391 43.7789 +103.393 33.5583 43.5443 +102.47 33.9622 44.0683 +99.2693 33.5893 43.5845 +97.828 33.7862 43.8399 +95.9556 33.8177 43.8808 +96.6748 34.7613 45.1052 +95.7456 35.1178 45.5678 +95.922 35.8816 46.5589 +96.0838 36.65 47.5559 +96.484 37.5212 48.6864 +96.6148 38.2997 49.6965 +96.6474 39.0487 50.6685 +96.0855 39.5621 51.3346 +96.1755 40.349 52.3557 +96.2504 41.1399 53.3819 +96.3913 41.97 54.4591 +96.5157 42.8049 55.5423 +96.4628 43.5715 56.5371 +95.8363 44.0837 57.2017 +95.9164 44.927 58.296 +96.5313 46.0375 59.7369 +96.026 46.626 60.5005 +95.8221 47.3662 61.461 +95.8358 48.2243 62.5744 +95.9854 49.1646 63.7945 +95.7351 49.9119 64.7642 +95.8481 50.8605 65.9951 +96.3157 52.0163 67.4948 +96.2373 52.895 68.635 +96.0672 53.7355 69.7257 +95.9536 54.6199 70.8732 +95.822 55.5071 72.0244 +95.6722 56.3971 73.1792 +96.0748 57.632 74.7815 +95.318 58.1847 75.4988 +95.7442 59.4739 77.1716 +95.5155 60.3769 78.3432 +95.3371 61.326 79.5748 +95.548 62.5462 81.1581 +95.3258 63.5027 82.3993 +95.0165 64.4166 83.585 +95.2848 65.743 85.3062 +94.9317 66.6623 86.4991 +95.1441 68.001 88.2361 +95.1968 69.2536 89.8614 +95.1573 70.4647 91.4329 +95.0274 71.633 92.9489 +94.809 72.7574 94.4079 +94.6887 73.9813 95.996 +94.5406 75.2095 97.5897 +94.3044 76.3925 99.1247 +94.2794 77.7751 100.919 +94.2808 79.2127 102.784 +94.6546 81.0043 105.109 +94.5828 82.4553 106.992 +94.5898 84.0125 109.012 +94.1681 85.2217 110.581 +94.0501 86.738 112.549 +93.7868 88.1573 114.39 +93.7588 89.8378 116.571 +94.0607 91.887 119.23 +93.6317 93.269 121.023 +93.5824 95.0722 123.363 +93.9454 97.3558 126.326 +94 99.3855 128.96 +93.462 100.839 130.846 +93.7137 103.201 133.911 +93.2368 104.823 136.015 +90.3733 103.752 134.626 +88.4249 103.689 134.544 +88.3012 105.788 137.267 +88.1241 107.893 139.999 +87.9811 110.114 142.88 +87.566 112.066 145.413 +87.5665 114.63 148.741 +87.9979 117.87 152.944 +87.6924 120.23 156.007 +92.6693 130.097 168.81 +92.8377 133.508 173.236 +93.0686 137.156 177.969 +92.8275 140.249 181.983 +93.018 144.146 187.04 +92.6023 147.258 191.077 +92.3847 150.833 195.716 +92.4138 154.991 201.111 +92.2976 159.102 206.446 +92.0381 163.166 211.719 +91.7962 167.471 217.305 +91.6544 172.191 223.43 +91.6551 177.447 230.25 +89.9628 179.621 233.071 +87.7323 180.796 234.595 +88.5347 188.474 244.558 +90.8878 200.056 259.587 +89.0079 202.773 263.112 +85.029 200.698 260.42 +82.6889 202.446 262.688 +78.7878 200.327 259.938 +76.3034 201.75 261.785 +72.8103 200.48 260.137 +70.3573 202.054 262.18 +66.7883 200.388 260.018 +64.2263 201.695 261.713 +60.6844 199.869 259.343 +58.12 201.206 261.079 +54.8618 200.123 259.674 +52.2648 201.433 261.374 +48.9988 200.134 259.688 +46.3864 201.475 261.428 +43.0736 199.718 259.148 +40.5216 201.454 261.401 +37.2552 199.6 258.995 +34.6512 201.248 261.134 +31.4662 199.481 258.841 +28.8137 201.039 260.863 +25.766 199.847 259.315 +23.0894 201.559 261.538 +20.03 199.908 259.394 +17.297 201.47 261.421 +14.2679 199.481 258.841 +11.5099 201.196 261.066 +8.57033 199.786 259.236 +5.74882 201.044 260.869 +2.8466 199.114 258.364 +1.5099e-14 200.77 260.513 +-2.84921 199.297 258.602 +-5.73661 200.617 260.315 +-8.53107 198.87 258.048 +-11.4784 200.647 260.354 +-14.2505 199.237 258.524 +-17.2185 200.555 260.235 +-19.9323 198.933 258.129 +-22.9359 200.22 259.799 +-25.6169 198.69 257.815 +-28.7352 200.492 260.152 +-31.3895 198.994 258.209 +-34.463 200.155 259.716 +-37.0627 198.569 257.657 +-40.1925 199.818 259.279 +-42.7604 198.265 257.263 +-46.0663 200.085 259.625 +-48.5258 198.202 257.181 +-51.7955 199.624 259.027 +-54.3337 198.197 257.174 +-57.4428 198.861 258.037 +-60.1195 198.008 256.929 +-63.4058 199.118 258.37 +-65.9509 197.875 256.757 +-69.5257 199.666 259.081 +-71.9878 198.215 257.199 +-75.1786 198.776 257.926 +-77.784 197.775 256.627 +-81.2858 199.011 258.231 +-83.677 197.507 256.279 +-87.4032 199.117 258.368 +-89.7921 197.644 256.457 +-93.5513 199.153 258.415 +-95.8836 197.594 256.392 +-99.7572 199.177 258.446 +-102.15 197.765 256.614 +-106.209 199.535 258.911 +-108.455 197.862 256.74 +-112.386 199.239 258.527 +-114.663 197.654 256.471 +-118.681 199.044 258.273 +-120.997 197.546 256.33 +-125.357 199.345 258.664 +-127.542 197.647 256.461 +-131.824 199.168 258.434 +-136.12 200.601 260.294 +-140.272 201.722 261.749 +-142.872 200.576 260.262 +-143.334 196.517 254.994 +-142.779 191.247 248.156 +-146.775 192.139 249.313 +-149.603 191.459 248.432 +-158.12 197.897 256.786 +-161.211 197.376 256.109 +-454.444 544.439 706.448 +-456.946 535.824 695.27 +-459.378 527.387 684.322 +-467.234 525.296 681.608 +-476.374 524.602 680.708 +-486.318 524.701 680.836 +-487.45 515.376 668.737 +-487.947 505.66 656.129 +-490.316 498.123 646.349 +-477.982 476.13 617.812 +-479.524 468.441 607.836 +-483.032 462.831 600.556 +-485.491 456.35 592.146 +-489.182 451.15 585.399 +-491.251 444.58 576.874 +-494.473 439.179 569.866 +-496.832 433.129 562.015 +-500.508 428.328 555.786 +-502.439 422.14 547.756 +-505.659 417.141 541.27 +-507.872 411.409 533.832 +-511.786 407.138 528.29 +-513.954 401.558 521.05 +-517.808 397.372 515.618 +-519.63 391.704 508.264 +-523.492 387.65 503.003 +-526.186 382.789 496.696 +-529.82 378.672 491.353 +-531.473 373.209 484.265 +-535.53 369.495 479.446 +-538.583 365.131 473.784 +-141.063 93.9716 121.935 +-143.22 93.7519 121.65 +-143.591 92.3656 119.851 +-143.794 90.8944 117.942 +-142.425 88.4704 114.797 +-142.836 87.191 113.136 +-147.215 88.3093 114.588 +-151.205 89.1327 115.656 +-156.971 90.9292 117.987 +-157.68 89.7566 116.466 +-158.515 88.6658 115.05 +-159.553 87.6952 113.791 +-161.924 87.4486 113.471 +-583.089 309.408 401.479 +-587.033 306.052 397.124 +-589.318 301.854 391.677 +-317.369 159.699 207.221 +-595.838 294.531 382.175 +-600.339 291.498 378.239 +-602.355 287.274 372.759 +-606.836 284.241 368.822 +-609.758 280.483 363.946 +-613.986 277.333 359.859 +-616.309 273.334 354.67 +-2667.45 1161.44 1507.05 +-623.784 266.621 345.96 +-133.838 56.1498 72.8583 +-629.654 259.253 336.399 +-635.004 256.563 332.908 +-382.602 151.669 196.801 +-383.996 149.331 193.767 +-384.59 146.697 190.349 +-383.006 143.271 185.904 +-652.647 239.379 310.611 +-657.509 236.42 306.772 +-381.657 134.508 174.533 +-381.39 131.718 170.913 +-382.121 129.296 167.771 +-382.725 126.849 164.595 +-380.904 123.63 160.418 +-382.923 121.681 157.889 +-669.057 208.095 270.018 +-674.691 205.341 266.444 +-677.331 201.658 261.666 +-682.354 198.673 257.793 +-114.92 32.7116 42.4456 +-112.471 31.2881 40.5985 +-111.818 30.3899 39.433 +-110.964 29.4523 38.2164 +-109.908 28.4784 36.9528 +-109.942 27.7984 36.0704 +-109.13 26.9145 34.9234 +-108.952 26.1979 33.9936 +-109.042 25.5509 33.1541 +-109.31 24.9477 32.3714 +-109.38 24.3018 31.5333 +-109.441 23.6571 30.6968 +-109.775 23.0732 29.9391 +-110.1 22.4876 29.1792 +-109.752 21.7682 28.2458 +-110.345 21.2378 27.5575 +-110.644 20.6492 26.7937 +-111.511 20.163 26.1629 +-111.891 19.5851 25.413 +-113.419 19.2004 24.9138 +-114.366 18.7061 24.2724 +-115.694 18.2642 23.6991 +-117.697 17.913 23.2434 +-120.185 17.6131 22.8543 +-157.068 22.1354 28.7222 +-158.55 21.4564 27.8412 +-161.199 20.9156 27.1394 +-161.002 19.9953 25.9453 +-162.656 19.2999 25.043 +-856.71 96.9249 125.767 +-863.184 92.9089 120.556 +-872.666 89.1431 115.669 +-380.655 36.8025 47.7539 +-382.255 34.8727 45.2497 +-382.045 32.7757 42.5287 +-404.906 32.54 42.2229 +-404.066 30.2851 39.2971 +-403.291 28.0486 36.3951 +-404.87 25.9758 33.7055 +-404.33 23.7655 30.8374 +-405.551 21.6586 28.1036 +-404.549 19.4352 25.2186 +-404.612 17.2709 22.4103 +-403.945 15.0814 19.5692 +-404.445 12.9387 16.7888 +-404.814 10.7891 13.9996 +-403.454 8.60025 11.1594 +-145.95 2.33295 3.02717 +-142.778 1.52131 1.974 +-145.594 0.775597 1.00639 +119.9 5.32907e-15 2.84217e-14 +119.895 0.646147 0.822958 +119.982 1.29332 1.64723 +120.659 1.95118 2.4851 +120.626 2.60134 3.31317 +119.886 3.23245 4.11697 +120.834 3.91072 4.98084 +120.475 4.55044 5.79562 +120.306 5.1952 6.61681 +120.926 5.87726 7.48551 +120.639 6.51797 8.30154 +121.239 7.20926 9.18199 +121.133 7.86237 10.0138 +120.023 8.44491 10.7558 +120.793 9.15916 11.6655 +120.659 9.80975 12.4941 +121.11 10.5112 13.3875 +120.66 11.1361 14.1833 +121.288 11.8632 15.1095 +120.82 12.4858 15.9024 +120.54 13.1257 16.7174 +121.825 13.9436 17.7591 +120.838 14.5053 18.4746 +120.433 15.1313 19.2719 +121.095 15.8954 20.245 +120.768 16.534 21.0583 +121.114 17.2675 21.9926 +121.06 17.9484 22.8597 +120.899 18.6151 23.7089 +121.115 19.3431 24.6362 +120.837 19.9952 25.4666 +120.55 20.6456 26.295 +121.407 21.4987 27.3816 +121.195 22.1697 28.2361 +121.642 22.9664 29.2509 +121.313 23.6211 30.0847 +120.974 24.274 30.9163 +121.48 25.1013 31.97 +121.215 25.7751 32.8282 +121.224 26.5099 33.764 +121.408 27.2888 34.7561 +120.831 27.8988 35.5331 +121.272 28.7481 36.6147 +121.14 29.4685 37.5322 +120.348 30.0276 38.2443 +120.843 30.9114 39.3699 +120.954 31.7062 40.3823 +121.602 32.6523 41.5872 +121.502 33.4069 42.5483 +121.844 34.2908 43.6741 +121.627 35.0245 44.6085 +118.419 34.881 44.4258 +115.585 34.814 44.3404 +113.209 34.8569 44.3951 +109.683 34.5124 43.9564 +107.683 34.6175 44.0901 +104.982 34.4717 43.9044 +103.085 34.5646 44.0228 +99.8816 34.1907 43.5466 +97.828 34.1803 43.5334 +96.0422 34.243 43.6133 +95.8993 34.8847 44.4305 +96.6885 35.8773 45.6947 +95.922 36.3002 46.2333 +96.8471 37.372 47.5985 +96.6527 38.0252 48.4304 +96.1955 38.5783 49.1348 +96.6474 39.5042 50.3141 +96.0855 40.0236 50.9756 +96.1755 40.8197 51.9895 +96.3323 41.6552 53.0537 +96.3913 42.4596 54.0782 +96.5157 43.3042 55.1539 +96.4628 44.0798 56.1417 +95.8363 44.598 56.8017 +95.7577 45.3759 57.7925 +96.5313 46.5745 59.3192 +95.8695 47.093 59.9794 +95.8221 47.9188 61.0312 +95.8358 48.7868 62.1368 +96.445 49.9763 63.6518 +95.7351 50.4941 64.3113 +95.6972 51.3728 65.4304 +95.8663 52.3776 66.7101 +96.2373 53.512 68.155 +96.0672 54.3624 69.238 +95.9536 55.2571 70.3776 +95.7494 56.1121 71.4666 +95.8161 57.1408 72.7767 +95.5042 57.958 73.8176 +95.318 58.8634 74.9708 +95.7442 60.1677 76.6319 +95.4461 61.0368 77.7388 +95.3371 62.0413 79.0183 +95.6162 63.3209 80.648 +95.3258 64.2435 81.823 +95.6188 65.5805 83.5259 +95.2185 66.4636 84.6506 +94.9317 67.4399 85.8941 +95.0792 68.7473 87.5592 +95.004 69.9194 89.0521 +95.0301 71.1916 90.6723 +94.5869 72.1327 91.871 +94.6222 73.461 93.5628 +94.6887 74.8444 95.3247 +94.6015 76.1356 96.9693 +94.3646 77.3331 98.4944 +94.4579 78.8312 100.403 +94.3395 80.1868 102.129 +94.19 81.5472 103.862 +94.1239 83.0127 105.728 +94.0234 84.4837 107.602 +94.224 86.2671 109.873 +93.9949 87.6986 111.696 +94.4949 89.8588 114.448 +93.6513 90.7814 115.623 +94.0607 92.9589 118.396 +93.8407 94.5676 120.445 +93.7369 96.34 122.702 +93.9454 98.4915 125.443 +93.95 100.491 127.989 +93.462 102.015 129.931 +94.0046 104.729 133.387 +93.6185 106.48 135.617 +91.4061 106.163 135.213 +89.4869 106.158 135.207 +88.2104 106.912 136.167 +88.1241 109.152 139.02 +88.0688 111.509 142.023 +87.9104 113.819 144.964 +87.6933 116.135 147.915 +87.832 119.02 151.589 +88.2212 122.366 155.85 +88.8413 126.178 160.705 +93.2284 135.633 172.748 +92.9921 138.641 176.579 +92.8275 141.885 180.711 +92.7248 145.368 185.147 +92.5664 148.918 189.668 +92.3847 152.592 194.348 +92.3796 156.74 199.631 +91.9638 160.376 204.261 +92.0056 165.011 210.165 +91.5741 169.014 215.263 +91.6235 174.141 221.793 +90.3621 176.984 225.414 +89.6996 181.185 230.764 +87.1075 181.602 231.296 +91.0155 196.015 249.653 +89.6585 199.652 254.285 +87.2479 201.082 256.106 +83.5518 199.512 254.106 +81.2132 201.153 256.196 +77.4105 199.121 253.608 +75.1112 200.914 255.892 +71.5333 199.262 253.788 +69.297 201.331 256.423 +65.612 199.155 253.651 +63.3104 201.138 256.177 +59.6457 198.739 253.121 +57.3907 200.999 256 +53.9045 198.925 253.359 +51.4669 200.672 255.583 +48.1563 198.987 253.438 +45.6905 200.768 255.706 +42.421 198.986 253.437 +39.9 200.678 255.592 +30.2366 163.887 208.733 +30.4178 178.722 227.627 +25.3512 162.589 207.08 +28.2995 199.755 254.415 +25.0285 196.391 250.131 +22.6639 200.153 254.922 +19.6698 198.603 252.948 +17.004 200.367 255.195 +14.0411 198.6 252.944 +11.3319 200.396 255.232 +8.39233 197.918 252.076 +5.64585 199.747 254.405 +2.80035 198.164 252.389 +1.85407e-14 200.024 254.758 +-2.79511 197.793 251.917 +-5.65283 199.994 254.72 +-8.38186 197.671 251.761 +-11.3039 199.902 254.603 +-14.0018 198.044 252.236 +-16.9464 199.688 254.33 +-19.6088 197.987 252.163 +-22.5802 199.413 253.98 +-25.2011 197.745 251.856 +-28.2472 199.386 253.946 +-30.7952 197.505 251.55 +-33.9613 199.542 254.145 +-36.4628 197.633 251.713 +-39.5953 199.146 253.64 +-42.0555 197.272 251.253 +-45.3565 199.3 253.836 +-47.6538 196.911 250.793 +-50.9663 198.72 253.098 +-53.3434 196.855 250.722 +-56.7135 198.627 252.979 +-59.0261 196.674 250.492 +-62.4709 198.471 252.78 +-64.7946 196.674 250.492 +-68.2574 198.311 252.576 +-70.516 196.428 250.178 +-74.0089 197.966 252.137 +-76.4534 196.659 250.472 +-80.0036 198.157 252.38 +-82.1246 196.104 249.765 +-86.0056 198.219 252.459 +-88.1619 196.32 250.04 +-92.0904 198.33 252.601 +-94.1795 196.346 250.074 +-98.2077 198.371 252.653 +-100.346 196.538 250.318 +-104.324 198.28 252.538 +-106.551 196.656 250.469 +-110.693 198.527 252.852 +-112.727 196.584 250.377 +-116.697 198 252.181 +-118.86 196.323 250.044 +-123.171 198.154 252.376 +-125.343 196.506 250.277 +-129.988 198.686 253.054 +-131.605 196.209 249.899 +-138.475 201.461 256.588 +-140.32 199.291 253.824 +-143.456 198.978 253.426 +-143.235 194.096 247.208 +-143.606 190.182 242.223 +-145.771 188.732 240.376 +-155.315 196.654 250.466 +-159.426 197.467 251.502 +-1487.5 1802.86 2296.19 +-1512.92 1794.77 2285.89 +-1538.22 1786.55 2275.42 +-474.057 539.184 686.726 +-481.561 536.501 683.309 +-487.696 532.326 677.992 +-488.4 522.405 665.355 +-489.622 513.315 653.777 +-491.089 504.728 642.841 +-479.079 482.79 614.901 +-481.22 475.581 605.719 +-485.02 470.157 598.811 +-487.016 463.123 589.852 +-490.838 457.958 583.273 +-492.593 450.995 574.404 +-496.568 446.185 568.279 +-498.208 439.395 559.63 +-502.134 434.733 553.693 +-504.496 428.812 546.152 +-507.919 423.893 539.887 +-509.497 417.54 531.795 +-513.734 413.455 526.593 +-515.986 407.848 519.452 +-520.049 403.747 514.228 +-521.958 398.05 506.972 +-525.782 393.888 501.671 +-527.986 388.579 494.909 +-531.638 384.404 489.592 +-534.229 379.52 483.372 +-537.451 375.147 477.802 +-539.988 370.355 471.698 +-142.82 96.251 122.589 +-142.469 94.349 120.167 +-143.66 93.4881 119.07 +-142.683 91.244 116.212 +-142.214 89.3709 113.826 +-143.118 88.3822 112.567 +-150.282 91.2007 116.157 +-156.241 93.1756 118.672 +-157.769 92.4574 117.757 +-157.899 90.9296 115.812 +-159.768 90.409 115.148 +-161.114 89.5865 114.101 +-583.137 318.603 405.785 +-584.9 313.99 399.91 +-589.619 310.986 396.084 +-591.923 306.725 390.657 +-595.694 303.248 386.229 +-597.858 298.977 380.789 +-602.373 295.898 376.867 +-604.798 291.804 371.653 +-609.613 288.872 367.918 +-611.595 284.609 362.49 +-615.594 281.302 358.278 +-618.089 277.321 353.207 +-384.425 169.337 215.674 +-2683.95 1160.57 1478.15 +-630.457 267.584 340.806 +-135.382 56.3921 71.8232 +-134.506 54.9787 70.023 +-381.595 153.035 194.912 +-384.249 151.172 192.539 +-382.47 147.59 187.977 +-382.068 144.588 184.153 +-383.154 142.173 181.077 +-659.836 240.024 305.704 +-662.423 236.181 300.81 +-667.65 233.271 297.103 +-382.034 130.775 166.56 +-382.285 128.181 163.256 +-382.846 125.71 160.109 +-383.277 123.214 156.931 +-382.064 120.219 153.115 +-675.765 208.067 265.002 +-678.859 204.471 260.423 +-115.35 33.9771 43.2745 +-114.557 32.9887 42.0157 +-112.016 31.525 40.1515 +-111.635 30.6941 39.0932 +-111.056 29.8205 37.9805 +-110.184 28.883 36.7865 +-109.295 27.9573 35.6075 +-109.315 27.2747 34.7381 +-109.324 26.594 33.8712 +-109.322 25.9153 33.0068 +-109.497 25.2819 32.2 +-109.662 24.6487 31.3935 +-109.818 24.0155 30.5871 +-109.964 23.3826 29.781 +-110.385 22.8087 29.0501 +-109.942 22.0603 28.0969 +-110.631 21.5412 27.4358 +-110.644 20.89 26.6064 +-111.607 20.4158 26.0023 +-112.564 19.9327 25.387 +-113.612 19.4573 24.7816 +-114.366 18.9243 24.1027 +-115.887 18.5082 23.5728 +-118.182 18.1967 23.1761 +-122.324 18.1358 23.0984 +-160.868 22.9354 29.2114 +-160.405 21.9606 27.9699 +-162.47 21.3265 27.1622 +-163.745 20.5732 26.2029 +-167.662 20.126 25.6333 +-858.578 98.2692 125.159 +-865.252 94.2174 119.999 +-383.468 39.6284 50.4722 +-380.062 37.1739 47.3462 +-380.474 35.1152 44.7241 +-383.432 33.2783 42.3845 +-406.691 33.0646 42.1124 +-405.058 30.7137 39.1181 +-403.986 28.4247 36.2029 +-404.572 26.2595 33.4451 +-404.23 24.0368 30.6142 +-405.85 21.9274 27.9276 +-404.948 19.6813 25.0669 +-404.213 17.4552 22.2316 +-405.143 15.3026 19.49 +-404.445 13.0896 16.6714 +-405.114 10.923 13.912 +-404.254 8.7178 11.1033 +-146.95 2.37633 3.02659 +-147.877 1.59402 2.03021 +-146.194 0.78788 1.00347 +120 6.21725e-15 5.68434e-14 +119.895 0.653545 0.817095 +120.082 1.30922 1.63685 +120.659 1.97352 2.46739 +120.527 2.62894 3.28684 +120.885 3.29671 4.12171 +120.934 3.95876 4.94944 +120.375 4.59872 5.74956 +120.406 5.25905 6.57513 +121.026 5.94945 7.4383 +120.838 6.60347 8.25599 +120.443 7.24389 9.05668 +120.238 7.89362 9.869 +120.918 8.60525 10.7587 +120.793 9.26403 11.5824 +121.155 9.96285 12.4561 +121.11 10.6316 13.2921 +120.759 11.2728 14.0938 +121.189 11.9892 14.9896 +121.017 12.6493 15.8148 +120.639 13.2868 16.6119 +120.94 14.0008 17.5045 +120.74 14.6595 18.328 +121.217 15.4042 19.2591 +121.095 16.0774 20.1007 +120.67 16.7097 20.8914 +121.407 17.5074 21.8886 +121.06 18.1539 22.6969 +120.996 18.8433 23.5589 +120.534 19.4708 24.3434 +120.644 20.1917 25.2447 +121.225 20.9988 26.2538 +121.407 21.7448 27.1865 +121.962 22.5655 28.2125 +121.738 23.2476 29.0654 +121.408 23.9103 29.8938 +121.069 24.5712 30.7201 +121.385 25.3689 31.7175 +120.837 25.9889 32.4926 +121.318 26.8342 33.5495 +121.69 27.6654 34.5886 +120.737 28.1963 35.2525 +120.992 29.0101 36.2699 +121.047 29.7829 37.2361 +120.627 30.4416 38.0596 +120.843 31.2653 39.0894 +120.862 32.0448 40.064 +120.777 32.802 41.0108 +121.319 33.7385 42.1816 +121.48 34.5798 43.2335 +121.083 35.2671 44.0927 +121.307 36.1409 45.1852 +117.293 35.7328 44.675 +114.999 35.8134 44.7757 +111.019 35.3329 44.175 +109.812 35.706 44.6415 +106.66 35.4235 44.2883 +104.667 35.4968 44.3799 +101.981 35.3089 44.145 +100.091 35.3713 44.223 +98.1207 35.3846 44.2397 +95.9855 35.3158 44.1536 +96.6885 36.288 45.3691 +96.6894 37.0095 46.2711 +96.5927 37.7006 47.1352 +96.9057 38.5613 48.2113 +96.2794 39.054 48.8273 +96.147 39.7497 49.6971 +96.0855 40.4818 50.6125 +96.1755 41.287 51.6192 +96.2504 42.0963 52.6309 +96.3913 42.9458 53.693 +95.7876 43.4696 54.3479 +95.9001 44.3244 55.4167 +96.3953 45.3717 56.726 +95.7577 45.8954 57.3808 +95.8221 46.7617 58.4639 +95.8695 47.6322 59.5522 +95.8221 48.4674 60.5964 +95.8358 49.3454 61.6942 +95.9854 50.3076 62.8971 +95.7351 51.0723 63.8531 +95.6972 51.961 64.9642 +95.6416 52.8531 66.0796 +96.2373 54.1247 67.6695 +96.0672 54.9848 68.7448 +96.0999 55.9749 69.9827 +95.822 56.7976 71.0112 +95.6722 57.7083 72.1498 +96.1462 59.0156 73.7843 +95.2473 59.4932 74.3815 +95.7442 60.8566 76.086 +95.4461 61.7356 77.185 +95.3371 62.7517 78.4553 +95.6844 64.0915 80.1304 +95.3258 64.9791 81.2401 +95.5519 66.2852 82.8731 +95.8149 67.6456 84.5739 +95.4566 68.5894 85.7539 +95.0142 69.4869 86.8761 +95.004 70.7199 88.4177 +94.5212 71.6206 89.5438 +94.7127 73.0554 91.3376 +94.6222 74.3021 92.8963 +94.6887 75.7013 94.6456 +94.6015 77.0074 96.2785 +94.4248 78.2685 97.8552 +94.2199 79.5333 99.4366 +94.5159 81.2566 101.591 +94.0739 82.3791 102.995 +94.0665 83.9119 104.911 +94.4766 85.8626 107.35 +94.224 87.2549 109.09 +94.1053 88.807 111.031 +93.9502 90.3642 112.978 +94.1349 92.2949 115.392 +94.0077 93.9701 117.486 +93.684 95.4904 119.387 +93.8914 97.6042 122.03 +93.8946 99.5648 124.481 +93.95 101.642 127.078 +93.462 103.183 129.005 +93.9076 105.819 132.3 +93.38 107.425 134.308 +92.5798 108.757 135.973 +91.2877 109.534 136.945 +88.5735 108.581 135.753 +88.1241 110.401 138.029 +87.9811 112.674 140.87 +87.9965 115.235 144.072 +87.8623 117.691 147.144 +87.7906 120.326 150.438 +87.4891 122.74 153.456 +93.3472 134.096 167.653 +93.2675 137.244 171.59 +92.9538 140.171 175.248 +92.7526 143.394 179.279 +92.6515 146.917 183.683 +92.4948 150.506 188.171 +92.6299 154.749 193.475 +92.448 158.653 198.355 +91.9972 162.271 202.879 +92.0056 166.901 208.668 +91.6059 171.009 213.804 +91.6235 176.135 220.213 +89.6103 177.522 221.947 +88.1501 180.094 225.162 +91.1689 192.246 240.355 +91.0155 198.26 247.874 +87.7344 197.604 247.055 +85.6691 199.704 249.68 +81.674 197.261 246.625 +79.7616 199.82 249.825 +75.9631 197.635 247.093 +73.5815 199.076 248.895 +70.0399 197.335 246.718 +67.8208 199.298 249.173 +64.336 197.518 246.947 +61.9748 199.149 248.986 +58.5158 197.206 246.558 +56.262 199.302 249.178 +52.8482 197.26 246.625 +50.5283 199.268 249.135 +47.0921 196.817 246.071 +44.7163 198.737 248.471 +41.5465 197.115 246.444 +32.99 167.824 209.822 +30.0781 164.894 206.159 +27.7732 165.052 206.356 +25.1978 163.456 204.362 +23.2183 165.765 207.248 +24.6048 195.276 244.144 +22.2244 198.519 248.198 +19.2791 196.887 246.158 +16.669 198.669 248.386 +13.7314 196.443 245.602 +11.0771 198.133 247.716 +8.22218 196.125 245.206 +5.54987 198.599 248.298 +2.73751 195.935 244.968 +1.73195e-14 197.692 247.164 +-2.73751 195.935 244.968 +-5.52369 197.662 247.127 +-8.21694 196 245.05 +-11.0562 197.759 247.248 +-13.7008 196.006 245.057 +-16.5853 197.671 247.138 +-19.1692 195.764 244.754 +-22.1477 197.834 247.342 +-24.7068 196.086 245.157 +-27.6894 197.686 247.157 +-30.1914 195.849 244.861 +-33.2819 197.789 247.286 +-35.659 195.49 244.412 +-38.8398 197.582 247.027 +-41.2463 195.691 244.663 +-44.3545 197.128 246.46 +-46.7226 195.273 244.141 +-49.9808 197.108 246.435 +-52.3201 195.289 244.16 +-55.6369 197.087 246.408 +-57.8598 194.995 243.793 +-61.326 197.064 246.379 +-63.5186 195.008 243.809 +-67.0307 196.977 246.27 +-69.1525 194.835 243.593 +-72.8616 197.128 246.46 +-74.7726 194.537 243.221 +-78.3827 196.365 245.506 +-80.4721 194.358 242.997 +-84.2974 196.506 245.682 +-86.3447 194.474 243.142 +-90.2437 196.578 245.772 +-92.2766 194.582 243.276 +-96.1903 196.52 245.699 +-98.1804 194.499 243.173 +-102.223 196.511 245.688 +-104.362 194.821 243.575 +-108.284 196.429 245.586 +-110.39 194.714 243.441 +-114.337 196.217 245.321 +-116.689 194.943 243.727 +-120.734 196.457 245.62 +-122.741 194.629 243.335 +-127.179 196.617 245.82 +-129.117 194.704 243.429 +-135.584 199.513 249.441 +-137.409 197.391 246.789 +-142.154 199.431 249.338 +-143.152 196.205 245.305 +-143.014 191.567 239.507 +-142.93 187.172 234.012 +-148.432 190.091 237.662 +-150.681 188.772 236.012 +-160.803 197.127 246.458 +-163.828 196.574 245.767 +-1538.22 1807.01 2259.21 +-481.549 553.976 692.608 +-486.119 547.779 684.861 +-489.223 540.106 675.269 +-488.15 528.116 660.277 +-491.703 521.398 651.878 +-479.552 498.513 623.266 +-481.221 490.502 613.25 +-483.18 482.986 603.854 +-487.062 477.542 597.047 +-489.249 470.574 588.335 +-492.714 464.972 581.332 +-495.109 458.489 573.226 +-499.117 453.611 567.127 +-500.904 446.83 558.65 +-504.747 441.998 552.609 +-506.436 435.39 544.346 +-510.893 431.257 539.18 +-512.626 424.914 531.249 +-516.412 420.37 525.567 +-518.51 414.536 518.274 +-522.477 410.276 512.948 +-523.657 403.918 504.998 +-527.945 400.036 500.145 +-530.043 394.559 493.298 +-534.496 390.895 488.717 +-535.803 384.997 481.343 +-140.807 99.4099 124.287 +-141.387 98.082 122.627 +-142.279 96.9852 121.256 +-143.629 96.2056 120.281 +-142.489 93.7877 117.258 +-142.544 92.1993 115.272 +-143.616 91.2849 114.129 +-147.644 92.2212 115.3 +-156.844 96.2725 120.365 +-156.96 94.6759 118.369 +-157.987 93.6453 117.08 +-158.484 92.3118 115.413 +-161.243 92.2887 115.384 +-162.154 91.1968 114.019 +-586.283 323.989 405.068 +-587.315 318.896 398.7 +-592.66 316.169 395.291 +-594.221 311.441 389.379 +-599.012 308.429 385.614 +-600.501 303.737 379.747 +-604.956 300.569 375.787 +-606.926 296.183 370.303 +-612.231 293.434 366.866 +-613.991 288.995 361.317 +-619.131 286.158 357.77 +-620.678 281.671 352.16 +-626.055 278.93 348.733 +-2683.95 1173.86 1467.62 +-384.702 165.148 206.476 +-634.711 267.41 334.33 +-135.673 56.0908 70.1276 +-642.17 260.485 325.671 +-647.472 257.646 322.122 +-383.742 149.776 187.258 +-383.262 146.7 183.412 +-383.325 143.865 179.868 +-383.511 141.104 176.416 +-665.454 239.978 300.033 +-671.479 237.296 296.679 +-384.22 133.029 166.32 +-381.758 129.47 161.87 +-380.462 126.357 157.978 +-382.302 124.308 155.416 +-381.974 121.567 151.989 +-382.047 118.979 148.753 +-681.376 207.579 259.526 +-114.628 34.151 42.6973 +-113.742 33.1289 41.4194 +-111.197 31.6529 39.574 +-111.453 30.9948 38.7512 +-110.506 30.0125 37.5231 +-109.54 29.0429 36.3109 +-109.665 28.373 35.4734 +-109.686 27.6806 34.6077 +-109.51 26.9443 33.6871 +-109.136 26.1673 32.7157 +-109.216 25.5058 31.8886 +-109.474 24.8881 31.1164 +-109.629 24.2488 30.317 +-109.964 23.6503 29.5688 +-110.29 23.05 28.8183 +-110.037 22.3322 27.9208 +-110.822 21.8254 27.2873 +-110.74 21.1475 26.4396 +-112.853 20.8801 26.1054 +-112.66 20.1781 25.2277 +-114.19 19.7802 24.7303 +-114.752 19.2056 24.0118 +-116.565 18.8296 23.5418 +-118.861 18.5108 23.1432 +-133.798 20.0641 25.0851 +-160.186 23.0996 28.8804 +-162.065 22.4419 28.058 +-160.416 21.2979 26.6278 +-163.745 20.8088 26.0162 +-3216.3 390.503 488.226 +-860.938 99.6673 124.609 +-866.828 95.4698 119.361 +-380.016 39.7212 49.6615 +-381.742 37.7656 47.2165 +-381.167 35.5818 44.4862 +-902.629 79.2366 99.0656 +-405.005 33.3046 41.6391 +-405.058 31.0653 38.8395 +-405.179 28.8351 36.0511 +-404.87 26.5797 33.2313 +-404.529 24.33 30.4185 +-404.555 22.1077 27.6402 +-404.948 19.9067 24.8883 +-404.612 17.6725 22.095 +-403.546 15.4168 19.2748 +-404.245 13.2329 16.5445 +-404.215 11.0235 13.7822 +-403.754 8.80675 11.0106 +-145.95 2.38719 2.98458 +-145.478 1.58611 1.98304 +-145.794 0.794721 0.993601 +120 6.21725e-15 5.68434e-14 +119.895 0.66089 0.811166 +120.082 1.32393 1.62497 +120.659 1.9957 2.44949 +120.527 2.65849 3.26299 +120.685 3.32824 4.08503 +120.335 3.98341 4.88918 +120.275 4.64655 5.70311 +120.406 5.31815 6.52741 +120.926 6.01136 7.37825 +120.838 6.67768 8.19608 +120.542 7.33136 8.9984 +121.232 8.04834 9.8784 +120.918 8.70196 10.6806 +121.488 9.42202 11.5644 +121.254 10.0831 12.3758 +121.011 10.7423 13.1849 +121.649 11.4836 14.0947 +120.992 12.1042 14.8565 +120.82 12.7707 15.6745 +120.54 13.4252 16.4778 +120.842 14.1466 17.3633 +120.642 14.8122 18.1802 +121.119 15.5648 19.104 +121.095 16.2581 19.9549 +120.768 16.9112 20.7566 +121.309 17.6899 21.7123 +121.157 18.3727 22.5503 +120.608 18.9939 23.3129 +121.018 19.7687 24.2638 +120.837 20.4514 25.1017 +120.454 21.0998 25.8975 +121.119 21.937 26.9251 +121.099 22.6576 27.8095 +121.642 23.4904 28.8318 +121.408 24.179 29.6769 +120.974 24.8278 30.4733 +121.385 25.654 31.4873 +121.877 26.5071 32.5345 +121.318 27.1358 33.306 +121.314 27.8899 34.2316 +120.924 28.5575 35.051 +120.619 29.2456 35.8955 +121.14 30.1408 36.9944 +120.441 30.7364 37.7254 +120.843 31.6167 38.8058 +120.494 32.3062 39.6522 +120.685 33.1455 40.6822 +121.136 34.0663 41.8125 +120.843 34.7851 42.6948 +121.355 35.7435 43.8711 +121.127 36.4927 44.7905 +118.641 36.5498 44.8606 +116.341 36.6386 44.9697 +113.425 36.5043 44.8048 +110.433 36.3114 44.5681 +107.72 36.1774 44.4036 +106.073 36.378 44.6498 +103.118 36.1039 44.3133 +101.396 36.2354 44.4748 +98.9001 36.0665 44.2675 +97.5364 36.2897 44.5414 +95.917 36.4031 44.6806 +96.6041 37.3924 45.8949 +95.8294 37.8231 46.4235 +95.7249 38.5195 47.2783 +96.1955 39.4585 48.4308 +95.7301 40.0221 49.1225 +96.0855 40.9368 50.2452 +96.1755 41.751 51.2446 +96.2504 42.5694 52.249 +96.3913 43.4284 53.3034 +95.7876 43.9581 53.9535 +95.9001 44.8226 55.0145 +95.9161 45.6536 56.0345 +95.7577 46.4112 56.9644 +95.9797 47.365 58.1351 +95.8695 48.1675 59.12 +95.9775 49.0916 60.2543 +95.9901 49.9803 61.3451 +95.9854 50.873 62.4407 +95.7351 51.6462 63.3898 +95.8481 52.6278 64.5945 +95.6416 53.4471 65.6001 +95.5684 54.3526 66.7116 +96.0672 55.6027 68.246 +95.9536 56.5179 69.3692 +95.7494 57.3924 70.4426 +95.6003 58.3129 71.5724 +95.5042 59.2804 72.7598 +95.318 60.2065 73.8965 +95.7442 61.5405 75.5339 +95.5155 62.4748 76.6807 +95.2683 63.4114 77.8302 +95.0024 64.3501 78.9823 +95.2582 65.6626 80.5933 +94.9496 66.6075 81.7531 +95.2848 68.0275 83.4958 +95.391 69.3128 85.0735 +94.9493 70.2199 86.1868 +95.004 71.5147 87.7761 +95.1573 72.9132 89.4925 +94.5869 73.7785 90.5546 +94.6845 75.1871 92.2835 +94.6887 76.552 93.9588 +94.6624 77.9227 95.6411 +94.7257 79.4001 97.4545 +94.3389 80.5288 98.8399 +94.2808 81.9652 100.603 +94.3062 83.5102 102.499 +94.2386 85.0103 104.34 +94.0234 86.4113 106.06 +94.1681 88.183 108.234 +94.0501 89.752 110.16 +94.0047 91.4328 112.223 +94.1349 93.3321 114.554 +94.0077 95.0262 116.634 +93.7885 96.6716 118.653 +93.8914 98.7011 121.144 +93.8946 100.684 123.578 +93.95 102.784 126.155 +93.5112 104.398 128.136 +93.4713 106.511 130.73 +93.8094 109.131 133.946 +93.3779 110.927 136.15 +92.2574 111.942 137.396 +89.7085 111.208 136.495 +88.2133 111.755 137.167 +87.5866 113.429 139.221 +88.0395 116.587 143.097 +87.6933 118.785 145.795 +87.8735 121.793 149.487 +91.0683 129.197 158.575 +92.9883 135.081 165.796 +93.2675 138.787 170.345 +92.9538 141.746 173.977 +92.7151 144.947 177.906 +92.6515 148.568 182.35 +92.4948 152.198 186.805 +92.4547 156.192 191.708 +92.4138 160.376 196.843 +92.0639 164.214 201.554 +91.7777 168.358 206.64 +91.8597 173.41 212.841 +90.6038 176.132 216.182 +89.3698 179.035 219.744 +87.1268 180.004 220.934 +91.1121 194.285 238.462 +90.161 198.605 243.765 +87.0128 198.182 243.245 +84.168 198.41 243.525 +81.048 197.949 242.959 +78.3343 198.449 243.574 +75.1227 197.645 242.587 +72.4117 198.113 243.161 +69.2823 197.395 242.279 +66.7397 198.325 243.421 +63.4588 197.014 241.812 +60.9062 197.914 242.917 +57.8598 197.187 242.024 +55.2896 198.058 243.094 +52.2541 197.234 242.082 +49.5272 197.515 242.426 +46.5747 196.843 241.602 +43.9369 197.468 242.369 +40.5414 194.509 238.737 +32.8682 169.083 207.53 +30.0102 166.371 204.201 +27.4596 165.022 202.546 +25.4662 167.054 205.039 +25.6412 185.121 227.214 +24.4635 196.338 240.982 +21.8408 197.284 242.143 +19.0655 196.892 241.663 +16.3812 197.432 242.325 +13.5744 196.379 241.032 +10.8886 196.951 241.735 +8.15412 196.688 241.412 +5.44166 196.915 241.691 +2.71395 196.432 241.098 +1.74305e-14 196.566 241.262 +-2.70959 196.116 240.71 +-5.43293 196.599 241.303 +-8.13056 196.12 240.715 +-10.8677 196.572 241.27 +-13.5482 196 240.567 +-16.3498 197.053 241.86 +-18.9678 195.884 240.425 +-21.778 196.717 241.447 +-24.4479 196.212 240.827 +-27.21 196.447 241.116 +-29.8464 195.786 240.305 +-32.7279 196.683 241.405 +-35.2741 195.553 240.019 +-38.1817 196.417 241.08 +-40.7503 195.51 239.966 +-43.589 195.904 240.449 +-46.2052 195.281 239.685 +-49.1517 196.018 240.589 +-51.6929 195.116 239.483 +-54.5776 195.508 239.963 +-57.2037 194.951 239.28 +-60.1812 195.558 240.025 +-62.8208 195.033 239.381 +-65.8664 195.73 240.236 +-68.4382 194.99 239.328 +-71.4669 195.528 239.988 +-74.0956 194.943 239.269 +-77.0763 195.262 239.662 +-79.7711 194.83 239.131 +-82.9256 195.481 239.931 +-85.6499 195.078 239.435 +-88.5623 195.083 239.442 +-91.2257 194.528 238.76 +-94.6992 195.648 240.135 +-97.0979 194.516 238.746 +-100.554 195.476 239.924 +-103.378 195.154 239.528 +-106.526 195.412 239.846 +-109.188 194.758 239.043 +-112.49 195.217 239.607 +-115.218 194.649 238.909 +-118.799 195.481 239.93 +-121.459 194.759 239.045 +-125.119 195.605 240.083 +-127.472 194.383 238.583 +-131.09 195.068 239.424 +-135.934 197.467 242.367 +-139.958 198.556 243.705 +-143.028 198.237 243.313 +-143.014 193.72 237.769 +-142.714 188.991 231.964 +-144.531 187.175 229.735 +-149.387 189.254 232.287 +-156.672 194.22 238.383 +-160.781 195.086 239.445 +-1538.22 1827.32 2242.82 +-479.258 557.537 684.312 +-486.167 553.99 679.959 +-489.124 546.067 670.234 +-494.15 540.615 663.542 +-488.1 523.394 642.406 +-479.037 503.574 618.079 +-482.423 497.253 610.321 +-484.664 489.914 601.314 +-488.083 483.922 593.958 +-491.319 477.875 586.537 +-494.536 471.936 579.247 +-497.122 465.526 571.38 +-499.967 459.489 563.97 +-502.854 453.612 556.756 +-505.676 447.789 549.609 +-508.493 442.072 542.592 +-511.607 436.713 536.015 +-513.89 430.749 528.695 +-517.691 426.146 523.045 +-519.803 420.24 515.796 +-523.908 416.024 510.622 +-526.489 410.666 504.045 +-529.281 405.555 497.772 +-531.971 400.445 491.5 +-535.665 396.153 486.232 +-538.1 390.992 479.898 +-141.337 100.905 123.85 +-142.792 100.17 122.947 +-142.955 98.5406 120.947 +-143.492 97.1946 119.295 +-142.283 94.7047 116.239 +-143.169 93.6442 114.937 +-146.77 94.3383 115.789 +-151.179 95.4905 117.204 +-156.986 97.4428 119.6 +-157.104 95.8277 117.618 +-158.277 94.8714 116.444 +-159.728 94.0813 115.474 +-162.275 93.9227 115.279 +-583.517 331.863 407.324 +-587.331 328.216 402.848 +-589.806 323.847 397.485 +-593.117 319.968 392.724 +-596.136 315.956 387.8 +-600.478 312.658 383.752 +-603.298 308.581 378.748 +-606.834 304.891 374.218 +-609.842 300.95 369.382 +-613.024 297.116 364.676 +-616.307 293.346 360.049 +-620.577 290.05 356.003 +-623.428 286.099 351.153 +-627.764 282.835 347.147 +-630.911 279.038 342.487 +-385.938 167.541 205.637 +-383.596 163.429 200.591 +-642.259 268.511 329.566 +-135.361 55.524 68.1493 +-648.737 261.05 320.409 +-384.335 151.694 186.186 +-382.835 148.184 181.878 +-382.982 145.352 178.403 +-382.563 142.338 174.703 +-385.121 140.445 172.38 +-672.785 240.429 295.099 +-675.819 236.619 290.423 +-382.285 131.105 160.917 +-381.433 128.104 157.233 +-381.858 125.559 154.109 +-382.42 123.077 151.062 +-382.495 120.457 147.847 +-2944.9 907.235 1113.53 +-114.087 34.3716 42.1872 +-113.017 33.2877 40.8568 +-111.652 32.1396 39.4476 +-110.448 31.0605 38.1232 +-109.68 30.1231 36.9726 +-109.632 29.394 36.0777 +-109.11 28.5468 35.0379 +-108.759 27.7551 34.0661 +-108.859 27.085 33.2438 +-108.949 26.4161 32.4227 +-108.841 25.704 31.5486 +-109.286 25.1246 30.8376 +-109.346 24.458 30.0194 +-110.058 23.9366 29.3795 +-110.29 23.309 28.6091 +-110.323 22.6417 27.7901 +-110.822 22.0707 27.0892 +-112.175 21.6622 26.5878 +-112.182 20.9892 25.7618 +-113.333 20.5267 25.1942 +-114.383 20.0363 24.5923 +-115.138 19.4868 23.9178 +-116.759 19.0728 23.4097 +-120.123 18.9175 23.2191 +-159.469 24.1823 29.681 +-161.258 23.5155 28.8626 +-161.186 22.5711 27.7034 +-161.688 21.708 26.6441 +-163.941 21.0679 25.8584 +-853.917 104.842 128.682 +-861.823 100.891 123.832 +-870.964 97.0032 119.06 +-380.903 40.2615 49.4164 +-382.334 38.2494 46.9467 +-380.474 35.9164 44.0832 +-904.61 80.3033 98.5631 +-405.501 33.7201 41.3876 +-403.47 31.2913 38.4065 +-403.291 29.0233 35.6227 +-403.875 26.8124 32.9091 +-404.23 24.5853 30.1756 +-405.252 22.3947 27.487 +-403.951 20.0808 24.6469 +-403.315 17.8138 21.8644 +-403.546 15.59 19.135 +-404.145 13.3784 16.4204 +-404.115 11.1446 13.6787 +-404.653 8.92556 10.9551 +-146.95 2.43055 2.98322 +-144.578 1.59402 1.95647 +-146.194 0.805857 0.989096 +120.1 6.21725e-15 5.68434e-14 +119.895 0.668181 0.80517 +120.082 1.33854 1.61296 +120.659 2.01772 2.43139 +120.527 2.68782 3.23887 +120.685 3.36496 4.05484 +120.435 4.03071 4.85708 +120.874 4.72121 5.68914 +120.406 5.37682 6.47917 +121.026 6.08268 7.32975 +120.838 6.75135 8.13551 +120.542 7.41224 8.9319 +121.232 8.13713 9.80539 +120.918 8.79796 10.6017 +121.488 9.52597 11.479 +121.254 10.1943 12.2844 +121.11 10.8697 13.0981 +120.759 11.5253 13.8882 +120.992 12.2377 14.7467 +120.82 12.9115 15.5587 +121.328 13.662 16.463 +120.94 14.3144 17.2491 +120.642 14.9756 18.0459 +120.335 15.6346 18.84 +120.214 16.3179 19.6633 +120.768 17.0978 20.6032 +120.432 17.7558 21.3961 +121.157 18.5753 22.3836 +120.608 19.2035 23.1406 +121.115 20.0028 24.1037 +120.837 20.677 24.9162 +120.55 21.3496 25.7267 +121.119 22.179 26.7261 +121.099 22.9075 27.604 +121.642 23.7496 28.6187 +121.408 24.4457 29.4576 +120.974 25.1017 30.248 +121.385 25.937 31.2546 +121.026 26.6125 32.0685 +121.318 27.4351 33.0598 +121.314 28.1975 33.9786 +120.831 28.8502 34.7651 +120.899 29.6368 35.713 +120.954 30.4265 36.6646 +120.534 31.0994 37.4754 +120.936 31.9899 38.5485 +121.415 32.9121 39.6597 +121.419 33.7149 40.6271 +121.227 34.4682 41.5348 +121.025 35.2218 42.443 +121.264 36.1108 43.5143 +121.939 37.1426 44.7576 +120.259 37.4569 45.1363 +116.341 37.0428 44.6373 +113.425 36.907 44.4736 +110.522 36.7415 44.2743 +108.426 36.8164 44.3644 +106.161 36.8098 44.3565 +103.905 36.7808 44.3216 +101.571 36.698 44.2218 +98.8135 36.4325 43.9019 +97.3641 36.6252 44.1341 +95.317 36.5744 44.0729 +96.6894 37.8383 45.5958 +95.9142 38.2742 46.1211 +95.6406 38.9102 46.8875 +96.0278 39.8243 47.989 +95.6467 40.4284 48.717 +96.7487 41.6741 50.2181 +96.1755 42.2116 50.8658 +96.2504 43.039 51.8629 +96.3099 43.8705 52.8648 +96.4348 44.7433 53.9166 +95.9001 45.3171 54.6079 +95.8363 46.1188 55.574 +96.6304 47.3508 57.0587 +95.9797 47.8876 57.7055 +95.8695 48.6989 58.6831 +95.8221 49.5528 59.7121 +95.9901 50.5317 60.8917 +95.8322 51.3521 61.8803 +95.7351 52.216 62.9213 +95.6972 53.1246 64.0162 +95.6416 54.0367 65.1153 +96.2373 55.3368 66.6819 +95.9935 56.173 67.6895 +95.9536 57.1414 68.8565 +95.7494 58.0256 69.922 +95.6003 58.9562 71.0434 +95.6469 60.0239 72.3299 +95.8837 61.232 73.7857 +95.7442 62.2194 74.9756 +95.5155 63.1641 76.1139 +95.8878 64.528 77.7575 +95.6162 65.4802 78.9049 +95.2582 66.387 79.9976 +94.9496 67.3423 81.1488 +95.2848 68.7779 82.8787 +95.3254 70.029 84.3863 +94.9493 70.9945 85.5498 +95.1326 72.402 87.2458 +95.2209 73.7667 88.8903 +94.7127 74.6914 90.0046 +94.6845 76.0165 91.6014 +94.6887 77.3966 93.2644 +94.6624 78.7823 94.9342 +94.485 80.0723 96.4887 +94.3389 81.4172 98.1093 +94.3395 82.9212 99.9216 +93.7835 83.964 101.178 +94.1239 85.8434 103.443 +94.5898 87.8908 105.91 +94.1122 89.1029 107.371 +93.9949 90.6892 109.282 +93.7868 92.2269 111.135 +93.6513 93.8771 113.124 +94.0077 96.0745 115.772 +94.0497 98.0102 118.104 +93.8914 99.79 120.249 +93.7931 101.685 122.532 +93.4 103.31 124.49 +93.4127 105.438 127.055 +93.4228 107.63 129.696 +93.8094 110.335 132.956 +93.3309 112.095 135.076 +91.888 112.724 135.834 +89.8447 112.606 135.692 +88.1687 112.931 136.084 +87.7181 114.853 138.4 +87.566 117.239 141.276 +87.9891 120.501 145.206 +87.9564 123.253 148.522 +92.1258 132.139 159.23 +93.068 136.689 164.712 +93.1894 140.2 168.943 +92.9155 143.251 172.62 +92.6777 146.487 176.519 +92.6515 150.207 181.002 +92.5306 153.936 185.496 +92.2796 157.616 189.931 +92.1402 161.665 194.81 +92.0973 166.086 200.136 +91.7777 170.215 205.113 +91.7645 175.141 211.048 +90.4802 177.832 214.291 +89.3698 181.01 218.12 +87.2145 182.173 219.522 +91.3961 197.041 237.438 +89.8027 199.998 241.002 +86.8257 199.938 240.929 +83.7797 199.673 240.61 +81.048 200.132 241.163 +78.0682 199.957 240.952 +75.1461 199.888 240.869 +72.2318 199.801 240.764 +69.4338 200.009 241.015 +66.5525 199.951 240.945 +63.6582 199.814 240.779 +60.7536 199.597 240.518 +57.9873 199.802 240.765 +55.1159 199.614 240.539 +52.2376 199.347 240.217 +49.402 199.189 240.027 +46.693 199.52 240.425 +43.8395 199.203 240.044 +40.8808 198.301 238.956 +33.0388 171.836 207.065 +29.9989 168.143 202.616 +27.4596 166.843 201.049 +25.3224 167.943 202.375 +26.4256 192.889 232.434 +24.5106 198.886 239.661 +21.7919 199.015 239.817 +19.0655 199.065 239.877 +16.3027 198.653 239.381 +13.618 199.183 240.02 +10.8886 199.124 239.948 +8.15674 198.922 239.704 +5.4277 198.577 239.289 +2.71483 198.663 239.393 +1.79856e-14 198.798 239.556 +-2.71657 198.791 239.546 +-5.41897 198.257 238.904 +-8.15412 198.858 239.627 +-10.8398 198.231 238.872 +-13.5831 198.673 239.405 +-16.2608 198.143 238.766 +-19.0166 198.555 239.263 +-21.7222 198.377 239.049 +-24.44 198.313 238.971 +-27.1403 198.105 238.721 +-29.923 198.455 239.142 +-32.5502 197.773 238.32 +-35.3534 198.155 238.78 +-38.072 198.013 238.61 +-40.8678 198.237 238.879 +-43.4916 197.623 238.139 +-46.3383 198.004 238.598 +-49.0109 197.612 238.127 +-51.7094 197.331 237.788 +-54.5603 197.602 238.114 +-57.2402 197.227 237.663 +-60.1048 197.465 237.95 +-62.9604 197.623 238.14 +-65.7001 197.39 237.859 +-68.5897 197.577 238.084 +-71.2195 197.001 237.39 +-74.1189 197.155 237.576 +-76.8828 196.921 237.293 +-79.9714 197.474 237.96 +-82.6668 197.021 237.414 +-85.6499 197.23 237.666 +-88.5623 197.236 237.673 +-91.4813 197.225 237.66 +-94.4068 197.196 237.625 +-97.3685 197.211 237.643 +-100.245 197.025 237.419 +-103.632 197.791 238.342 +-106.331 197.206 237.637 +-109.489 197.448 237.929 +-112.217 196.891 237.257 +-115.533 197.335 237.792 +-118.512 197.16 237.582 +-121.752 197.384 237.851 +-124.482 196.757 237.096 +-127.816 197.059 237.46 +-130.778 196.75 237.088 +-136.332 200.231 241.282 +-139.511 200.105 241.13 +-143.318 200.831 242.005 +-143.056 195.915 236.081 +-142.801 191.191 230.389 +-144.399 189.068 227.83 +-149.566 191.571 230.846 +-156.672 196.363 236.621 +-162.166 198.937 239.723 +-1538.22 1847.48 2226.24 +-480.165 564.754 680.54 +-486.749 560.772 675.741 +-489.371 552.369 665.615 +-492.9 545.196 656.972 +-490.333 531.589 640.575 +-479.5 509.623 614.105 +-481.953 502.248 605.219 +-485.406 496.077 597.783 +-488.083 489.26 589.568 +-491.646 483.469 582.589 +-493.763 476.397 574.067 +-497.122 470.662 567.157 +-500.137 464.716 559.992 +-502.854 458.616 552.641 +-506.025 453.04 545.922 +-508.787 447.207 538.893 +-511.607 441.531 532.053 +-514.732 436.215 525.647 +-517.691 430.847 519.18 +-520.665 425.581 512.833 +-523.535 420.314 506.486 +-526.301 415.048 500.14 +-529.281 410.03 494.093 +-532.55 405.303 488.398 +-535.665 400.523 482.638 +-538.69 395.739 476.874 +-141.403 102.067 122.992 +-142.926 101.37 122.153 +-142.82 99.5332 119.939 +-143.083 97.9865 118.076 +-142.283 95.7495 115.38 +-142.822 94.4474 113.811 +-146.77 95.3791 114.934 +-151.887 96.996 116.882 +-156.558 98.2496 118.393 +-157.751 97.2847 117.23 +-158.277 95.9181 115.583 +-160.825 95.7725 115.408 +-161.759 94.6568 114.063 +-583.294 335.397 404.16 +-586.657 331.456 399.411 +-590.107 327.588 394.75 +-592.812 323.333 389.622 +-597.055 319.935 385.528 +-599.707 315.702 380.426 +-603.298 311.986 375.949 +-606.365 308.015 371.164 +-609.842 304.271 366.652 +-613.262 300.511 362.122 +-616.866 296.851 357.711 +-620.176 293.06 353.143 +-623.833 289.443 348.784 +-627.032 285.621 344.179 +-630.911 282.117 339.956 +-386.268 169.534 204.292 +-382.518 164.768 198.549 +-641.091 270.979 326.535 +-135.529 56.2061 67.7295 +-648.821 263.965 318.083 +-384.59 153.469 184.933 +-382.835 149.818 180.534 +-385.125 147.778 178.075 +-382.563 143.908 173.412 +-384.429 141.739 170.798 +-671.915 242.767 292.539 +-676.606 239.509 288.613 +-382.11 132.491 159.654 +-380.197 129.097 155.564 +-381.858 126.944 152.97 +-381.974 124.289 149.771 +-382.495 121.785 146.754 +-114.776 35.7492 43.0785 +-113.997 34.7233 41.8423 +-113.017 33.6549 40.5548 +-111.652 32.4942 39.1561 +-110.539 31.4291 37.8727 +-109.68 30.4554 36.6994 +-108.804 29.4937 35.5404 +-109.11 28.8618 34.779 +-109.593 28.2765 34.0738 +-108.766 27.3605 32.9699 +-109.696 26.8906 32.4037 +-109.684 26.1888 31.558 +-109.286 25.4018 30.6097 +-109.535 24.7705 29.849 +-110.058 24.2007 29.1623 +-110.195 23.5459 28.3733 +-110.227 22.8718 27.5609 +-110.822 22.3142 26.889 +-111.314 21.7331 26.1888 +-112.182 21.2208 25.5714 +-113.333 20.7532 25.008 +-113.419 20.0867 24.2049 +-115.235 19.7183 23.761 +-117.436 19.3952 23.3716 +-120.22 19.1417 23.0661 +-156.649 24.0167 28.9406 +-159.894 23.5738 28.4069 +-161.186 22.8201 27.4987 +-161.297 21.8944 26.3831 +-165.215 21.4657 25.8666 +-854.408 106.06 127.804 +-861.233 101.934 122.833 +-869.191 97.8741 117.94 +-380.903 40.7057 49.0511 +-381.84 38.6214 46.5395 +-381.167 36.3787 43.837 +-905.402 81.2601 97.92 +-405.798 34.1172 41.1119 +-405.356 31.7843 38.3008 +-403.986 29.394 35.4204 +-405.268 27.2016 32.7785 +-404.529 24.8748 29.9746 +-404.555 22.6028 27.2368 +-404.848 20.3474 24.519 +-404.512 18.0638 21.7673 +-403.546 15.762 18.9935 +-404.046 13.5226 16.2949 +-404.515 11.2788 13.5911 +-404.354 9.01732 10.866 +-143.551 2.40053 2.89268 +-145.178 1.61829 1.95007 +-145.294 0.809734 0.975745 +120 6.21725e-15 5.68434e-14 +119.895 0.675417 0.79911 +119.982 1.35191 1.59949 +120.659 2.03957 2.41309 +120.626 2.71918 3.21716 +120.685 3.4014 4.02432 +121.234 4.10139 4.8525 +121.074 4.78022 5.65565 +120.406 5.43505 6.4304 +120.228 6.10805 7.22665 +120.838 6.82447 8.07427 +120.542 7.49252 8.86466 +121.232 8.22525 9.73159 +120.719 8.87865 10.5046 +121.488 9.62914 11.3926 +121.254 10.3047 12.1919 +121.011 10.9784 12.9889 +120.759 11.6501 13.7836 +120.992 12.3703 14.6357 +120.82 13.0514 15.4415 +120.54 13.7203 16.2329 +120.94 14.4694 17.1193 +120.642 15.1378 17.91 +121.119 15.9069 18.82 +120.997 16.602 19.6424 +120.67 17.269 20.4315 +120.53 17.9626 21.2522 +121.157 18.7765 22.2152 +120.608 19.4115 22.9664 +121.309 20.2517 23.9605 +120.741 20.8842 24.7088 +120.454 21.5636 25.5126 +121.023 22.4014 26.5039 +121.003 23.1373 27.3745 +120.877 23.8558 28.2247 +121.408 24.7105 29.2358 +121.83 25.5531 30.2328 +121.48 26.2384 31.0435 +121.688 27.0478 32.0012 +121.318 27.7322 32.811 +121.126 28.4588 33.6706 +120.831 29.1627 34.5034 +120.712 29.9116 35.3895 +120.954 30.7561 36.3886 +121.368 31.6539 37.4508 +120.843 32.3117 38.229 +120.494 33.0164 39.0628 +121.419 34.08 40.3212 +121.136 34.8152 41.1911 +120.934 35.5765 42.0918 +121.355 36.5292 43.219 +121.127 37.2948 44.1248 +118.731 37.3815 44.2273 +116.252 37.4152 44.2673 +113.425 37.3067 44.1389 +110.433 37.1096 43.9057 +108.514 37.2455 44.0664 +106.161 37.2085 44.0226 +103.118 36.8975 43.6547 +101.483 37.0637 43.8514 +98.8135 36.8271 43.5714 +96.6748 36.7598 43.4918 +95.4884 37.037 43.8198 +96.6041 38.2144 45.2128 +95.7446 38.6203 45.693 +96.3153 39.609 46.8628 +96.4471 40.4314 47.8358 +96.4806 41.2225 48.7718 +96.7487 42.1254 49.84 +96.1755 42.6688 50.483 +96.2504 43.5052 51.4725 +96.3913 44.3831 52.5112 +95.7876 44.9244 53.1516 +95.9001 45.8079 54.1969 +96.555 46.9679 55.5693 +95.9164 47.51 56.2108 +95.8221 48.3267 57.177 +96.026 49.3067 58.3364 +95.8221 50.0895 59.2626 +95.9901 51.079 60.4334 +95.9854 51.9913 61.5127 +95.7351 52.7815 62.4477 +95.8481 53.7847 63.6345 +95.6416 54.622 64.6252 +95.5684 55.5474 65.7201 +95.9935 56.7814 67.18 +95.9536 57.7602 68.3382 +95.7494 58.654 69.3956 +95.6003 59.5947 70.5086 +95.5042 60.5835 71.6785 +95.2473 61.4843 72.7443 +95.6741 62.8473 74.3568 +95.4461 63.8017 75.4861 +95.3371 64.8518 76.7285 +95.6162 66.1893 78.3109 +95.3258 67.1538 79.452 +95.0165 68.1201 80.5953 +95.2848 69.5228 82.2549 +95.391 70.8365 83.8091 +94.9493 71.7634 84.9058 +95.004 73.0868 86.4715 +95.1573 74.5159 88.1624 +94.5869 75.4003 89.2087 +94.6222 76.7888 90.8516 +94.6272 78.1838 92.502 +94.6015 79.5846 94.1593 +94.485 80.9395 95.7624 +94.3984 82.3507 97.4319 +94.3395 83.8192 99.1695 +94.3642 85.3988 101.038 +94.0092 86.6673 102.539 +94.0234 88.3108 104.484 +94.1122 90.0679 106.562 +94.1053 91.7792 108.587 +93.8958 93.3342 110.427 +93.7051 94.948 112.336 +93.9017 97.0053 114.77 +93.5795 98.5765 116.629 +93.8914 100.871 119.344 +93.7931 102.786 121.61 +93.9 104.988 124.215 +93.4127 106.58 126.098 +93.9076 109.361 129.388 +93.38 111.02 131.352 +93.7535 113.822 134.667 +92.3035 114.46 135.421 +89.7085 113.653 134.467 +88.1687 114.154 135.059 +88.0688 116.561 137.907 +88.0395 119.15 140.971 +88.0314 121.864 144.182 +87.832 124.412 147.196 +91.6378 132.863 157.195 +92.9883 138.05 163.332 +92.8768 141.243 167.11 +92.9155 144.802 171.321 +93.0148 148.612 175.828 +92.6515 151.833 179.639 +92.4948 155.543 184.029 +92.2796 159.323 188.501 +92.1402 163.416 193.343 +92.0306 167.762 198.486 +91.973 172.425 204.002 +91.7645 177.038 209.46 +90.6656 180.127 213.114 +89.3698 182.97 216.479 +87.1268 183.96 217.65 +91.1121 198.556 234.918 +90.1059 202.847 239.995 +87.0663 202.663 239.777 +84.1938 202.834 239.98 +81.048 202.3 239.348 +78.0682 202.122 239.138 +75.0994 201.927 238.907 +72.2093 201.902 238.878 +69.4122 202.112 239.126 +66.5733 202.18 239.206 +63.6582 201.978 238.967 +60.9253 202.329 239.382 +58.0056 202.029 239.028 +55.1159 201.776 238.729 +52.2376 201.506 238.409 +49.5428 201.92 238.899 +46.693 201.681 238.616 +43.9648 201.936 238.918 +40.9852 200.96 237.763 +32.8925 172.928 204.597 +29.9989 169.964 201.091 +27.4596 168.65 199.536 +25.3129 169.698 200.775 +25.9898 191.762 226.881 +24.4714 200.718 237.477 +21.778 201.041 237.859 +19.0655 201.22 238.071 +16.3864 201.836 238.8 +13.6092 201.211 238.06 +10.8886 201.281 238.142 +8.15412 201.011 237.824 +5.4277 200.727 237.488 +2.71395 200.75 237.514 +1.79856e-14 200.887 237.676 +-2.71657 200.944 237.743 +-5.43293 200.921 237.717 +-8.15412 201.011 237.824 +-10.8677 200.893 237.684 +-13.5831 200.825 237.603 +-16.2974 200.74 237.503 +-19.0227 200.77 237.538 +-21.7919 201.17 238.011 +-24.4322 200.396 237.096 +-27.21 200.765 237.533 +-29.923 200.605 237.342 +-32.6338 200.428 237.134 +-35.3534 200.301 236.983 +-38.072 200.158 236.814 +-40.8808 200.448 237.158 +-43.589 200.21 236.876 +-46.3383 200.148 236.802 +-49.0266 199.816 236.41 +-51.8745 200.106 236.752 +-54.5603 199.742 236.322 +-57.4042 199.935 236.55 +-60.2002 199.92 236.533 +-62.9803 199.827 236.422 +-65.6793 199.465 235.994 +-68.5897 199.717 236.292 +-71.422 199.7 236.272 +-74.0956 199.228 235.713 +-77.1005 199.617 236.174 +-79.9964 199.675 236.243 +-82.9515 199.84 236.438 +-85.6499 199.366 235.877 +-88.5347 199.31 235.81 +-91.4813 199.361 235.871 +-94.67 199.887 236.493 +-97.3685 199.347 235.854 +-100.554 199.773 236.358 +-103.346 199.382 235.896 +-106.558 199.769 236.353 +-109.489 199.587 236.138 +-112.525 199.569 236.117 +-115.183 198.867 235.286 +-118.476 199.236 235.722 +-121.788 199.582 236.132 +-124.781 199.367 235.878 +-127.816 199.193 235.672 +-131.09 199.356 235.865 +-136.372 202.459 239.536 +-139.592 202.39 239.455 +-143.277 202.947 240.114 +-143.014 197.979 234.235 +-142.801 193.262 228.655 +-144.575 191.347 226.39 +-149.164 193.126 228.494 +-156.491 198.259 234.568 +-161.012 199.661 236.226 +-1538.22 1867.49 2209.49 +-480.594 571.381 676.021 +-486.167 566.168 669.853 +-489.666 558.689 661.004 +-493.9 552.219 653.35 +-490.485 537.513 635.95 +-479.037 514.644 608.893 +-482.423 508.183 601.25 +-484.929 500.957 592.7 +-488.567 495.049 585.71 +-490.611 487.676 576.986 +-493.763 481.556 569.746 +-496.955 475.599 562.698 +-499.457 469.111 555.021 +-502.854 463.583 548.481 +-505.502 457.474 541.254 +-508.611 451.893 534.651 +-511.607 446.313 528.048 +-513.89 440.218 520.837 +-517.508 435.36 515.09 +-520.296 429.885 508.612 +-523.348 424.715 502.495 +-526.301 419.543 496.376 +-529.281 414.47 490.374 +-531.971 409.247 484.195 +-535.275 404.567 478.657 +-538.887 400.171 473.457 +-141.403 103.172 122.066 +-142.792 102.372 121.119 +-142.82 100.611 119.037 +-143.356 99.2369 117.411 +-142.283 96.7865 114.511 +-142.474 95.2385 112.68 +-147.051 96.5961 114.286 +-151.533 97.818 115.732 +-156.986 99.5848 117.822 +-157.967 98.4726 116.506 +-158.277 96.9569 114.713 +-160.093 96.3695 114.018 +-162.717 96.2494 113.876 +-583.517 339.158 401.27 +-586.657 335.046 396.404 +-589.806 330.966 391.578 +-593.345 327.128 387.036 +-595.829 322.736 381.84 +-599.398 318.957 377.369 +-602.832 315.121 372.831 +-606.365 311.351 368.371 +-609.842 307.566 363.892 +-613.024 303.648 359.256 +-616.547 299.911 354.835 +-619.613 295.965 350.167 +-623.105 292.236 345.755 +-627.032 288.715 341.588 +-630.174 284.838 337.002 +-2700.25 1197.98 1417.37 +-384.01 167.202 197.823 +-641.592 274.128 324.33 +-135.361 56.7445 67.1364 +-648.399 266.65 315.483 +-382.724 154.379 182.651 +-382.068 151.138 178.816 +-382.382 148.314 175.476 +-382.736 145.533 172.185 +-383.822 143.048 169.245 +-671.915 245.396 290.337 +-676.081 241.915 286.218 +-381.846 133.833 158.343 +-383.111 131.496 155.577 +-382.302 128.468 151.995 +-382.242 125.723 148.748 +-382.853 123.219 145.785 +-2944.9 927.178 1096.98 +-114.628 35.2939 41.7575 +-112.835 33.9648 40.185 +-111.561 32.8193 38.8297 +-110.539 31.7695 37.5876 +-109.68 30.7852 36.4231 +-109.632 30.0401 35.5415 +-109.018 29.1496 34.4879 +-108.759 28.3652 33.5598 +-109.603 27.8697 32.9736 +-109.042 27.0199 31.9682 +-108.935 26.2916 31.1065 +-109.286 25.6769 30.3792 +-109.441 25.0172 29.5988 +-110.058 24.4628 28.9428 +-110.195 23.8009 28.1597 +-110.418 23.1594 27.4007 +-111.68 22.7305 26.8933 +-111.314 21.9685 25.9917 +-112.182 21.4506 25.379 +-113.333 20.9779 24.8197 +-114.094 20.425 24.1655 +-115.235 19.9319 23.5821 +-117.146 19.5568 23.1383 +-120.123 19.3333 22.874 +-156.649 24.2768 28.7228 +-161.94 24.1341 28.5539 +-161.968 23.179 27.4239 +-161.297 22.1315 26.1845 +-165.019 21.6725 25.6415 +-854.408 107.208 126.842 +-862.118 103.144 122.034 +-868.699 98.878 116.986 +-380.509 41.1039 48.6315 +-381.742 39.0295 46.1772 +-379.683 36.6296 43.3377 +-904.511 82.0595 97.0875 +-405.005 34.4192 40.7226 +-404.463 32.0578 37.9287 +-404.881 29.7782 35.2316 +-403.378 27.368 32.3801 +-403.733 25.0947 29.6904 +-405.551 22.9039 27.0984 +-404.948 20.5729 24.3405 +-403.315 18.2054 21.5394 +-404.843 15.984 18.9112 +-404.245 13.6758 16.1803 +-404.215 11.3924 13.4788 +-404.653 9.12176 10.7923 +-146.45 2.47553 2.92889 +-146.678 1.65271 1.95538 +-146.194 0.823571 0.974396 +120 6.21725e-15 5.68434e-14 +120.695 0.687153 0.798274 +119.982 1.36629 1.58723 +120.659 2.06126 2.39459 +120.626 2.74809 3.1925 +120.685 3.43757 3.99347 +121.234 4.145 4.8153 +120.874 4.82308 5.60304 +121.204 5.52925 6.4234 +121.026 6.21394 7.21881 +120.639 6.88568 7.99919 +121.438 7.62849 8.86211 +121.133 8.30593 9.6491 +120.918 8.9878 10.4412 +121.488 9.73152 11.3052 +121.254 10.4143 12.0984 +121.011 11.0951 12.8894 +120.759 11.774 13.678 +120.992 12.5018 14.5235 +120.721 13.1794 15.3107 +120.54 13.8662 16.1085 +120.842 14.6113 16.9741 +120.642 15.2987 17.7727 +121.217 16.089 18.6908 +120.312 16.6836 19.3815 +120.67 17.4526 20.2749 +120.432 18.139 21.0723 +121.06 18.9609 22.0271 +120.608 19.6179 22.7903 +121.115 20.4344 23.7389 +120.837 21.1232 24.5391 +120.55 21.8103 25.3373 +121.023 22.6396 26.3007 +121.962 23.5686 27.38 +121.642 24.2621 28.1856 +121.313 24.9537 28.989 +121.735 25.8046 29.9776 +121.385 26.4967 30.7815 +121.026 27.1867 31.5832 +121.129 27.9836 32.5089 +121.126 28.7614 33.4125 +121.58 29.6555 34.4512 +120.712 30.2296 35.1182 +121.047 31.107 36.1374 +120.534 31.7705 36.9082 +120.843 32.6552 37.936 +120.494 33.3674 38.7634 +120.593 34.2082 39.7401 +121.227 35.2119 40.9061 +120.843 35.9278 41.7378 +121.264 36.8901 42.8557 +121.939 37.9441 44.0802 +119.27 37.9506 44.0877 +116.52 37.9004 44.0294 +114.227 37.97 44.1102 +111.32 37.8055 43.9191 +107.808 37.3964 43.4439 +105.37 37.3239 43.3597 +103.118 37.2898 43.3201 +101.483 37.4578 43.5152 +99.5063 37.4796 43.5406 +97.4503 37.4487 43.5046 +95.4884 37.4308 43.4839 +96.5189 38.5866 44.8265 +96.5079 39.3421 45.7042 +95.9779 39.89 46.3407 +96.7826 41.0034 47.6341 +95.9803 41.4448 48.1469 +96.0855 42.2815 49.119 +96.1755 43.1225 50.096 +96.2504 43.9677 51.0779 +95.6586 44.5141 51.7125 +96.5157 45.7472 53.1451 +95.9001 46.2949 53.7814 +95.8363 47.1139 54.7329 +95.9164 48.0152 55.7799 +96.6889 49.2824 57.252 +95.8695 49.7497 57.7949 +96.5215 50.9916 59.2376 +95.8358 51.5391 59.8737 +95.8322 52.4602 60.9437 +95.7351 53.3427 61.9689 +95.6972 54.271 63.0473 +95.6416 55.2028 64.1297 +95.5684 56.138 65.2163 +96.0672 57.4292 66.7163 +95.9536 58.3744 67.8143 +95.822 59.3226 68.9158 +95.6003 60.2284 69.9681 +95.4329 61.1819 71.0759 +95.2473 62.1381 72.1866 +95.1134 63.1433 73.3544 +95.5155 64.5271 74.9619 +95.2683 65.4944 76.0857 +95.0024 66.4639 77.2119 +95.2582 67.8195 78.7868 +94.9496 68.7955 79.9206 +95.2848 70.2621 81.6243 +95.3254 71.5401 83.109 +95.0142 72.5761 84.3126 +94.5541 73.5142 85.4024 +95.0301 75.2078 87.3699 +94.7127 76.3032 88.6424 +94.6222 77.6053 90.1551 +94.6887 79.0667 91.8528 +94.6624 80.4824 93.4974 +94.4248 81.748 94.9677 +94.3389 83.1741 96.6244 +94.3983 84.7633 98.4706 +94.3062 86.2534 100.202 +94.0665 87.6423 101.815 +94.5332 89.7339 104.245 +94.1122 91.0256 105.746 +93.9949 92.6461 107.628 +93.7868 94.2171 109.453 +93.7588 96.0131 111.54 +94.0077 98.1477 114.019 +93.5795 99.6247 115.735 +93.8914 101.943 118.429 +93.8946 103.991 120.808 +93.9 106.104 123.263 +93.462 107.77 125.198 +93.9561 110.58 128.462 +93.38 112.201 130.345 +93.7535 115.032 133.634 +92.165 115.503 134.181 +89.7993 114.977 133.571 +87.8563 114.959 133.549 +87.7181 117.331 136.305 +87.9965 120.358 139.821 +87.9891 123.101 143.008 +87.6247 125.438 145.723 +92.0445 134.871 156.682 +92.9883 139.518 162.08 +92.8377 142.685 165.759 +92.9155 146.342 170.008 +92.6402 149.588 173.778 +92.6882 153.509 178.333 +92.7815 157.685 183.184 +92.5948 161.568 187.695 +92.1402 165.154 191.861 +92.0306 169.546 196.964 +92.0707 174.444 202.653 +91.8914 179.168 208.142 +90.4184 181.546 210.904 +89.039 184.231 214.024 +87.1852 186.041 216.126 +90.8849 200.167 232.536 +89.8027 204.314 237.354 +86.5318 203.56 236.479 +83.7797 203.982 236.968 +80.8227 203.883 236.853 +78.0682 204.271 237.305 +74.9126 203.567 236.486 +72.1868 203.985 236.972 +69.0659 203.242 236.109 +66.3446 203.628 236.557 +63.4588 203.486 236.392 +60.7536 203.904 236.877 +57.6958 203.087 235.929 +55.1333 203.986 236.973 +52.1055 203.134 235.983 +49.4176 203.552 236.469 +46.5747 203.309 236.187 +43.8395 203.502 236.41 +36.8736 182.722 212.271 +33.051 175.609 204.007 +29.8856 171.123 198.796 +27.5642 171.092 198.759 +25.5525 173.126 201.123 +26.26 195.816 227.482 +24.4557 202.722 235.505 +21.778 203.179 236.035 +18.9678 202.318 235.036 +16.2922 202.809 235.606 +13.5787 202.895 235.706 +10.8572 202.834 235.634 +8.13318 202.627 235.395 +5.4277 202.862 235.667 +2.70697 202.363 235.087 +1.77636e-14 203.088 235.93 +-2.70959 202.558 235.315 +-5.43468 203.123 235.97 +-8.10962 202.04 234.713 +-10.8363 202.443 235.18 +-13.5482 202.438 235.175 +-16.2555 202.353 235.077 +-18.9556 202.188 234.885 +-21.7222 202.658 235.431 +-24.3694 202.007 234.674 +-27.1403 202.38 235.108 +-29.7601 201.634 234.241 +-32.6338 202.56 235.316 +-35.2741 201.977 234.639 +-38.0598 202.222 234.923 +-40.6589 201.48 234.062 +-43.4777 201.822 234.46 +-46.0426 200.986 233.488 +-49.0109 201.877 234.523 +-51.6929 201.526 234.115 +-54.5603 201.866 234.51 +-57.0579 200.842 233.321 +-59.914 201.086 233.604 +-62.6215 200.801 233.273 +-65.7001 201.65 234.259 +-68.4166 201.331 233.889 +-71.2195 201.252 233.797 +-73.8621 200.712 233.17 +-77.0763 201.676 234.29 +-79.7711 201.23 233.771 +-82.6668 201.272 233.821 +-85.3292 200.731 233.192 +-88.5898 201.555 234.149 +-91.2541 200.98 233.481 +-94.4068 201.451 234.028 +-97.0678 200.844 233.323 +-100.245 201.276 233.825 +-103.124 201.069 233.584 +-106.298 201.4 233.969 +-108.955 200.725 233.185 +-112.217 201.139 233.666 +-114.903 200.493 232.915 +-118.476 201.354 233.915 +-121.202 200.732 233.193 +-124.519 201.063 233.577 +-127.51 200.829 233.305 +-130.778 200.996 233.499 +-135.615 203.474 236.379 +-139.185 203.946 236.927 +-142.862 204.512 237.584 +-143.056 200.142 232.508 +-142.671 195.14 226.697 +-144.356 193.089 224.314 +-148.628 194.478 225.928 +-155.673 199.321 231.554 +-160.781 201.494 234.078 +-165.301 202.818 235.616 +-477.636 573.902 666.709 +-486.894 573.044 665.713 +-490.897 566.049 657.586 +-493.1 557.187 647.291 +-485.663 537.888 624.872 +-479.243 520.34 604.485 +-482.423 513.587 596.641 +-485.141 506.505 588.414 +-488.567 500.313 581.22 +-491.319 493.573 573.39 +-494.26 487.167 565.948 +-496.675 480.386 558.07 +-499.967 474.583 551.329 +-502.854 468.512 544.277 +-506.025 462.816 537.66 +-509.14 457.174 531.105 +-511.607 451.058 524 +-514.793 445.68 517.752 +-517.508 439.989 511.141 +-520.665 434.764 505.071 +-524.282 429.997 499.533 +-526.489 424.156 492.747 +-529.853 419.33 487.141 +-532.55 414.049 481.006 +-535.665 409.166 475.333 +-538.887 404.426 469.827 +-141.271 104.171 121.017 +-142.926 103.557 120.304 +-143.09 101.873 118.348 +-142.947 100.006 116.178 +-142.558 98.0048 113.853 +-143.308 96.8142 112.47 +-147.611 97.9957 113.843 +-152.594 99.5503 115.649 +-156.986 100.644 116.919 +-157.463 99.2026 115.245 +-158.93 98.3917 114.303 +-159.801 97.2167 112.938 +-162.348 97.0523 112.747 +-583.666 342.852 398.296 +-587.631 339.171 394.019 +-590.787 335.042 389.222 +-593.801 330.861 384.365 +-596.825 326.713 379.546 +-599.707 322.514 374.669 +-603.298 318.718 370.258 +-606.834 314.906 365.83 +-609.842 310.836 361.102 +-613.976 307.352 357.055 +-616.547 303.1 352.115 +-620.015 299.307 347.708 +-623.833 295.688 343.505 +-627.764 292.126 339.366 +-630.911 288.204 334.811 +-2700.25 1210.72 1406.51 +-384.756 169.308 196.687 +-642.009 277.223 322.053 +-135.278 57.3124 66.5805 +-136.123 56.5751 65.724 +-382.215 155.813 181.01 +-382.75 153.017 177.762 +-382.382 149.891 174.13 +-381.788 146.715 170.441 +-383.476 144.438 167.796 +-672.785 248.326 288.484 +-676.606 244.677 284.244 +-382.901 135.63 157.563 +-380.904 132.128 153.495 +-381.503 129.563 150.515 +-381.974 126.971 147.504 +-381.242 124.006 144.059 +-115.046 36.6064 42.5261 +-114.448 35.613 41.3721 +-113.017 34.3811 39.941 +-110.924 32.9789 38.312 +-110.63 32.1338 37.3303 +-109.68 31.1126 36.1439 +-109.632 30.3595 35.2691 +-109.018 29.4596 34.2236 +-109.686 28.9112 33.5865 +-108.952 27.9987 32.5264 +-108.949 27.2838 31.6959 +-109.403 26.6854 31.0007 +-109.286 25.9499 30.1464 +-109.346 25.2615 29.3466 +-109.964 24.7017 28.6963 +-110.195 24.054 27.9439 +-111.179 23.5669 27.378 +-110.727 22.7761 26.4592 +-111.314 22.2021 25.7925 +-112.182 21.6787 25.1844 +-113.333 21.201 24.6295 +-114.19 20.6596 24.0005 +-116.008 20.2789 23.5583 +-117.63 19.8464 23.0558 +-119.637 19.46 22.607 +-159.371 24.9614 28.998 +-159.407 24.0091 27.8917 +-161.968 23.4254 27.2136 +-161.688 22.4211 26.0469 +-163.843 21.7469 25.2636 +-853.917 108.286 125.798 +-861.331 104.146 120.987 +-868.699 99.9294 116.089 +-380.903 41.5841 48.3087 +-380.951 39.3629 45.7284 +-378.892 36.9419 42.9159 +-905.402 83.0136 96.438 +-405.005 34.7852 40.4104 +-403.966 32.3589 37.5918 +-404.881 30.0948 34.9615 +-405.268 27.7886 32.2824 +-405.624 25.4803 29.6008 +-404.555 23.0905 26.8245 +-403.752 20.7302 24.0825 +-404.213 18.4399 21.4219 +-404.843 16.1539 18.7662 +-405.244 13.8553 16.0959 +-405.114 11.5392 13.4053 +-403.754 9.19826 10.6857 +-145.95 2.49331 2.89651 +-144.578 1.64638 1.91262 +-146.794 0.835747 0.970898 +120 6.21725e-15 5.68434e-14 +119.895 0.689725 0.786794 +120.082 1.3817 1.57615 +120.659 2.08277 2.37589 +120.626 2.77678 3.16758 +119.786 3.44758 3.93277 +120.435 4.16067 4.74622 +120.275 4.84929 5.53175 +120.406 5.55019 6.33129 +120.228 6.23744 7.11527 +120.838 6.96904 7.94982 +120.542 7.65124 8.72804 +121.332 8.40642 9.5895 +121.017 9.08915 10.3683 +120.495 9.75276 11.1253 +121.353 10.5316 12.0138 +121.011 11.211 12.7888 +120.759 11.8969 13.5712 +120.992 12.6323 14.4101 +120.721 13.317 15.1911 +120.54 14.0109 15.9827 +120.94 14.7759 16.8554 +120.642 15.4584 17.634 +120.335 16.1387 18.41 +120.997 16.9537 19.3397 +120.768 17.6491 20.1329 +121.309 18.4617 21.06 +121.06 19.1589 21.8552 +120.511 19.8067 22.5942 +120.922 20.6148 23.516 +120.741 21.3266 24.328 +120.454 22.0204 25.1194 +121.119 22.8941 26.1161 +121.099 23.6461 26.974 +120.877 24.3612 27.7896 +121.408 25.2339 28.7853 +120.879 25.8907 29.5344 +121.385 26.7733 30.5413 +120.837 27.4276 31.2877 +121.318 28.3197 32.3053 +121.314 29.1067 33.2031 +121.674 29.9881 34.2085 +121.552 30.7578 35.0865 +121.047 31.4317 35.8553 +120.534 32.1022 36.6201 +121.028 33.0466 37.6974 +121.507 33.9991 38.784 +121.235 34.7493 39.6398 +121.136 35.5527 40.5562 +121.48 36.4942 41.6302 +121.898 37.4702 42.7436 +121.217 38.1132 43.4771 +119.54 38.4335 43.8424 +117.594 38.649 44.0883 +113.514 38.1269 43.4927 +111.852 38.3828 43.7846 +108.514 38.0344 43.3872 +106.864 38.2483 43.6312 +103.905 37.9667 43.31 +101.919 38.0112 43.3607 +99.5063 37.8709 43.2007 +97.5364 37.8731 43.2031 +95.4027 37.7876 43.1057 +96.4336 38.955 44.4374 +95.8294 39.4733 45.0286 +96.231 40.4127 46.1002 +97.0342 41.5391 47.3852 +96.6474 42.1685 48.1031 +96.2513 42.7966 48.8196 +96.0931 43.5354 49.6623 +96.3323 44.4646 50.7223 +95.6586 44.9788 51.3089 +96.5157 46.2248 52.7302 +95.9001 46.7782 53.3616 +95.8363 47.6058 54.3056 +96.6304 48.8776 55.7564 +95.9797 49.4316 56.3884 +96.026 50.3512 57.4373 +96.4438 51.4825 58.7279 +95.8358 52.0772 59.4063 +95.9854 53.0926 60.5646 +95.7351 53.8996 61.4852 +95.6972 54.8375 62.5551 +95.6416 55.7791 63.6291 +95.5684 56.7241 64.7072 +96.0672 58.0288 66.1955 +95.9536 58.9838 67.2849 +95.822 59.9419 68.3778 +95.6722 60.903 69.4742 +95.5042 61.8669 70.5737 +95.2473 62.7868 71.6231 +95.7442 64.2256 73.2644 +95.4461 65.1533 74.3227 +95.2683 66.1782 75.4918 +95.6162 67.5915 77.104 +95.2582 68.5275 78.1718 +95.0165 69.5631 79.3531 +95.2185 70.9461 80.9308 +95.391 72.337 82.5174 +95.0142 73.3337 83.6544 +95.1326 74.7365 85.2546 +95.2845 76.196 86.9194 +94.7127 77.0997 87.9504 +94.6222 78.4155 89.4513 +94.5656 79.788 91.0169 +94.0536 80.7998 92.1712 +94.485 82.6541 94.2865 +94.5173 84.2013 96.0514 +94.3983 85.6482 97.7019 +94.3062 87.1538 99.4194 +94.0665 88.5573 101.02 +94.4199 90.5619 103.307 +93.7207 91.5935 104.484 +94.0501 93.668 106.85 +93.7324 95.1453 108.536 +93.5976 96.8486 110.479 +94.0077 99.1723 113.129 +93.684 100.777 114.96 +93.8399 102.951 117.44 +93.9454 105.134 119.93 +93.9 107.212 122.3 +93.462 108.895 124.221 +93.4713 111.159 126.802 +93.714 113.777 129.79 +93.6126 116.058 132.392 +93.2732 118.112 134.735 +90.4349 117 133.466 +88.481 116.984 133.448 +87.9811 118.911 135.646 +87.9534 121.555 138.662 +87.9469 124.327 141.824 +88.1223 127.467 145.406 +93.0613 137.785 157.176 +93.1079 141.157 161.022 +92.8768 144.235 164.534 +92.9921 147.992 168.819 +93.0148 151.76 173.118 +92.6149 154.989 176.801 +92.8173 159.392 181.824 +92.5948 163.254 186.23 +92.1402 166.878 190.363 +92.0639 171.379 195.498 +91.8428 175.828 200.574 +91.5741 180.413 205.804 +89.9239 182.438 208.113 +88.4376 184.897 210.919 +87.8869 189.496 216.165 +91.0269 202.573 231.082 +89.3065 205.306 234.2 +85.9439 204.288 233.038 +83.3915 205.156 234.029 +80.1466 204.288 233.038 +77.6569 205.317 234.212 +74.2823 203.961 232.665 +71.7819 204.958 233.803 +68.5464 203.819 232.504 +65.9912 204.657 233.46 +62.9405 203.931 232.631 +60.2384 204.285 233.035 +57.386 204.105 232.83 +54.8207 204.947 233.79 +51.6764 203.564 232.213 +49.1517 204.57 233.36 +46.1609 203.606 232.261 +43.6168 204.582 233.374 +35.96 180.055 205.395 +32.8682 176.461 201.295 +29.9536 173.302 197.692 +27.5851 173.009 197.357 +29.5397 202.229 230.69 +27.0008 203.442 232.074 +24.1889 202.604 231.118 +21.6664 204.248 232.993 +18.8518 203.181 231.775 +16.2608 204.532 233.317 +13.4653 203.3 231.912 +10.8014 203.897 232.593 +8.06512 203.029 231.602 +5.39628 203.793 232.474 +2.68515 202.827 231.372 +1.82077e-14 203.956 232.659 +-2.68603 202.893 231.447 +-5.38756 203.463 232.098 +-8.03894 202.37 230.851 +-10.8049 203.963 232.668 +-13.3999 202.313 230.786 +-16.1718 203.413 232.041 +-18.803 202.654 231.175 +-21.6106 203.722 232.393 +-24.2282 202.933 231.492 +-27.0008 203.442 232.074 +-29.6068 202.689 231.214 +-32.3934 203.166 231.759 +-34.9798 202.383 230.865 +-37.8526 203.221 231.821 +-40.3065 201.819 230.222 +-43.2272 202.754 231.289 +-45.7914 201.976 230.401 +-48.6042 202.291 230.761 +-51.2638 201.939 230.358 +-54.074 202.155 230.606 +-56.6206 201.383 229.725 +-59.5706 202.02 230.452 +-62.123 201.283 229.61 +-65.1179 201.949 230.37 +-67.5941 200.987 229.273 +-70.8596 202.326 230.8 +-73.2552 201.141 229.449 +-76.4473 202.119 230.564 +-78.8947 201.097 229.398 +-82.2009 202.227 230.688 +-84.6611 201.239 229.56 +-88.0661 202.455 230.947 +-90.2885 200.929 229.207 +-93.9683 202.608 231.122 +-96.3762 201.494 229.852 +-99.7507 202.374 230.855 +-102.267 201.48 229.836 +-105.452 201.881 230.293 +-108.087 201.205 229.521 +-111.67 202.248 230.712 +-114.098 201.166 229.477 +-117.545 201.856 230.264 +-120.212 201.172 229.484 +-123.845 202.062 230.499 +-126.477 201.281 229.608 +-130.153 202.123 230.569 +-133.342 202.153 230.603 +-138.535 205.112 233.978 +-141.327 204.427 233.197 +-143.479 202.829 231.374 +-143.059 197.712 225.538 +-143.873 194.453 221.819 +-146.71 193.972 221.27 +-154.221 199.523 227.602 +-159.626 202.136 230.584 +-164.221 203.596 232.25 +-1563.41 1898.12 2165.25 +-487.379 579.603 661.173 +-490.749 571.785 652.256 +-494.95 565.116 644.648 +-481.4 538.732 614.551 +-480.428 527.072 601.25 +-483.677 520.297 593.522 +-486.625 513.359 585.606 +-489.587 506.592 577.887 +-492.354 499.776 570.112 +-495.639 493.626 563.097 +-498.185 486.877 555.397 +-501.043 480.57 548.203 +-503.887 474.375 541.136 +-507.128 468.668 534.626 +-509.845 462.586 527.688 +-513.213 457.198 521.542 +-515.515 450.964 514.431 +-518.786 445.681 508.404 +-521.712 440.186 502.135 +-525.029 435.105 496.339 +-527.622 429.506 489.953 +-530.998 424.623 484.383 +-533.707 419.281 478.288 +-536.834 414.34 472.652 +-539.805 409.345 466.954 +-142.331 106.049 120.974 +-143.194 104.834 119.588 +-143.293 103.083 117.591 +-142.401 100.664 114.831 +-142.421 98.9324 112.856 +-143.308 97.8249 111.592 +-148.453 99.5823 113.597 +-154.291 101.708 116.022 +-157.486 102.018 116.376 +-157.751 100.421 114.554 +-159.002 99.4643 113.462 +-160.825 98.8605 112.774 +-161.832 97.7537 111.511 +-585.301 347.402 396.293 +-588.829 343.41 391.74 +-591.466 338.928 386.628 +-595.246 335.128 382.292 +-597.515 330.505 377.018 +-601.867 327.055 373.083 +-604.231 322.543 367.937 +-608.243 318.932 363.817 +-611.26 314.812 359.117 +-615.404 311.284 355.092 +-617.505 306.74 349.909 +-622.105 303.45 346.157 +-624.561 299.124 341.221 +-629.311 295.903 337.546 +-631.648 291.553 332.585 +-636.225 288.245 328.811 +-382.352 170.007 193.933 +-2732.23 1192.11 1359.88 +-135.697 58.0902 66.2655 +-135.955 57.0949 65.1301 +-653.93 269.362 307.271 +-382.835 154.649 176.414 +-382.382 151.456 172.771 +-381.702 148.213 169.072 +-382.87 145.716 166.223 +-384.349 143.345 163.519 +-676.868 247.327 282.135 +-682.226 244.179 278.543 +-383.111 134.281 153.179 +-382.302 131.19 149.653 +-381.44 128.117 146.148 +-381.242 125.3 142.934 +-115.046 36.9886 42.1942 +-113.274 35.6158 40.6283 +-112.382 34.545 39.4068 +-111.197 33.4052 38.1064 +-110.63 32.4693 37.0389 +-109.956 31.5162 35.9517 +-109.54 30.6507 34.9643 +-109.018 29.7671 33.9564 +-108.944 29.0154 33.0989 +-109.324 28.3876 32.3828 +-108.949 27.5686 31.4485 +-109.216 26.9178 30.7061 +-109.662 26.3111 30.014 +-109.346 25.5252 29.1175 +-110.153 25.0025 28.5212 +-109.816 24.2215 27.6303 +-111.179 23.8129 27.1642 +-111.394 23.1526 26.411 +-111.314 22.4339 25.5911 +-112.949 22.0548 25.1587 +-113.333 21.4223 24.4372 +-114.961 21.0162 23.9739 +-115.815 20.4565 23.3354 +-118.308 20.1691 23.0076 +-120.705 19.8386 22.6306 +-160.636 25.4221 28.9999 +-157.653 23.9929 27.3695 +-162.553 23.7556 27.0989 +-162.568 22.7785 25.9842 +-162.668 21.8162 24.8865 +-855.292 109.593 125.016 +-863.101 105.449 120.29 +-871.259 101.271 115.523 +-381.002 42.0291 47.944 +-382.334 39.9182 45.5361 +-381.068 37.542 42.8254 +-906.293 83.9626 95.7791 +-405.204 35.1656 40.1147 +-405.058 32.7851 37.3991 +-404.881 30.409 34.6886 +-404.87 28.0512 31.9989 +-403.335 25.6011 29.204 +-404.057 23.3029 26.5824 +-404.35 20.9776 23.9299 +-404.213 18.6324 21.2547 +-403.246 16.2582 18.5463 +-404.245 13.9655 15.9309 +-404.215 11.6338 13.2711 +-403.654 9.29198 10.5997 +-145.75 2.51589 2.86997 +-146.678 1.68772 1.92525 +-146.794 0.844472 0.963318 +120 6.21725e-15 5.68434e-14 +119.895 0.696795 0.780539 +119.982 1.3947 1.56232 +120.759 2.10587 2.35896 +120.626 2.80525 3.1424 +120.485 3.50325 3.92429 +120.535 4.2068 4.7124 +121.074 4.93152 5.52421 +120.306 5.60243 6.27576 +120.328 6.3066 7.06455 +120.639 7.02888 7.87365 +120.742 7.74245 8.67298 +121.133 8.47867 9.49768 +121.017 9.18231 10.2859 +121.388 9.92579 11.1187 +121.353 10.6396 11.9183 +121.11 11.3351 12.6975 +120.858 12.0287 13.4743 +120.992 12.7618 14.2956 +120.721 13.4535 15.0704 +120.442 14.143 15.8428 +120.842 14.9152 16.7078 +120.642 15.6169 17.4938 +121.217 16.4236 18.3975 +120.997 17.1275 19.186 +120.865 17.8444 19.989 +121.309 18.651 20.8926 +120.866 19.3242 21.6467 +120.802 20.0581 22.4688 +121.115 20.8594 23.3663 +120.644 21.528 24.1153 +121.321 22.4062 25.0991 +121.023 23.1104 25.8879 +121.003 23.8696 26.7384 +120.877 24.6109 27.5687 +121.408 25.4926 28.5564 +120.974 26.1767 29.3227 +121.385 27.0477 30.2985 +121.688 27.9039 31.2575 +121.224 28.5878 32.0237 +120.751 29.2684 32.7861 +121.486 30.2489 33.8844 +120.712 30.8583 34.567 +121.047 31.7539 35.5703 +120.348 32.3813 36.2731 +120.104 33.1304 37.1122 +120.494 34.0614 38.155 +120.96 35.0259 39.2355 +120.771 35.8088 40.1125 +121.298 36.813 41.2374 +121.173 37.6292 42.1516 +121.668 38.6473 43.2921 +120.618 39.1777 43.8863 +118.758 39.4314 44.1705 +115.385 39.1527 43.8582 +112.828 39.1144 43.8154 +109.221 38.6744 43.3225 +108.095 39.0852 43.7827 +104.692 38.6465 43.2912 +103.398 38.9583 43.6405 +100.286 38.5588 43.193 +99.0012 38.8359 43.5034 +96.0027 38.4151 43.032 +95.6662 39.0411 43.7333 +95.9142 39.9133 44.7102 +96.1466 40.7912 45.6937 +96.3632 41.6748 46.6835 +96.3972 42.4905 47.5972 +96.2513 43.2353 48.4315 +96.0931 43.9816 49.2676 +96.3323 44.9204 50.3191 +96.3913 45.7878 51.2908 +95.8685 46.3855 51.9603 +95.9001 47.2577 52.9374 +95.8363 48.0938 53.8739 +95.9164 49.0138 54.9045 +95.9797 49.9383 55.9402 +95.8695 50.7844 56.8879 +95.8221 51.6749 57.8854 +95.8358 52.611 58.9341 +95.8322 53.5512 59.9873 +95.7351 54.4521 60.9964 +95.6972 55.3996 62.0578 +95.6416 56.3508 63.1233 +96.2373 57.7066 64.642 +95.9935 58.5786 65.6188 +95.9536 59.5884 66.75 +95.822 60.5563 67.8343 +95.6722 61.5273 68.9219 +95.5042 62.501 70.0127 +95.9544 63.9013 71.5812 +95.7442 64.884 72.682 +95.4461 65.8212 73.7319 +95.3371 66.9045 74.9454 +95.6162 68.2843 76.4911 +95.2582 69.23 77.5504 +95.6188 70.721 79.2207 +95.2848 71.7233 80.3434 +95.3254 73.0279 81.8048 +95.0142 74.0854 82.9894 +95.1326 75.5026 84.5769 +94.6484 76.4636 85.6533 +94.7127 77.89 87.2513 +94.6222 79.2193 88.7403 +94.6887 80.711 90.4113 +94.6015 82.1035 91.9712 +94.4248 83.4481 93.4773 +93.982 84.5822 94.7477 +94.5159 86.634 97.0461 +94.2481 87.9932 98.5687 +94.1239 89.5196 100.279 +93.9102 90.996 101.932 +93.7207 92.5324 103.653 +94.0501 94.6282 106.001 +93.8958 96.2884 107.861 +93.5976 97.8414 109.6 +94.0607 100.245 112.293 +93.6317 101.753 113.982 +93.8399 104.006 116.506 +93.7931 106.039 118.784 +93.4 107.734 120.682 +93.3635 109.895 123.103 +93.4228 112.239 125.729 +93.714 114.944 128.758 +93.5657 117.189 131.273 +93.5503 119.677 134.061 +91.2521 119.267 133.601 +89.6858 119.793 134.191 +87.5866 119.591 133.965 +88.0395 122.921 137.695 +88.0736 125.782 140.899 +92.8083 135.621 151.921 +93.0613 139.197 155.927 +93.068 142.542 159.674 +92.9159 145.775 163.295 +92.9538 149.447 167.408 +92.9774 153.254 171.673 +92.9081 157.073 175.95 +92.5664 160.591 179.892 +92.6299 164.99 184.82 +92.3112 168.901 189.201 +92.0973 173.198 194.014 +91.8753 177.693 199.049 +90.9395 181 202.753 +89.7694 183.991 206.104 +86.9942 183.744 205.827 +90.7814 197.744 221.51 +83.3869 187.472 210.004 +88.4245 205.362 230.044 +84.768 203.558 228.023 +82.5115 205.072 229.719 +79.2202 203.997 228.514 +76.7376 204.966 229.6 +73.2318 203.137 227.552 +71.017 204.854 229.474 +67.724 203.438 227.888 +65.2635 204.475 229.05 +62.0832 203.215 227.639 +59.7423 204.679 229.278 +56.1285 201.68 225.919 +54.0567 204.162 228.7 +46.4939 185.027 207.264 +46.6957 196.34 219.937 +41.5788 185.275 207.543 +38.7597 183.664 205.737 +35.9991 182.099 203.984 +37.5601 203.718 228.201 +34.6855 202.737 227.102 +32.038 202.997 227.394 +29.3 202.645 227 +26.7655 203.736 228.222 +23.8986 202.224 226.529 +21.4362 204.149 228.685 +18.6076 202.604 226.954 +16.0724 204.234 228.78 +13.269 202.39 226.715 +10.6792 203.658 228.135 +7.95779 202.381 226.704 +5.33695 203.618 228.089 +2.6485 202.109 226.4 +1.73195e-14 203.649 228.124 +-2.64763 202.043 226.325 +-5.32822 203.285 227.717 +-7.95256 202.248 226.555 +-10.6653 203.392 227.836 +-13.2559 202.191 226.491 +-15.9939 203.237 227.663 +-18.5343 201.807 226.061 +-21.3246 203.086 227.494 +-23.8437 201.76 226.008 +-26.6871 203.139 227.554 +-29.2234 202.115 226.406 +-32.0066 202.798 227.172 +-34.5043 201.678 225.917 +-37.4261 202.99 227.387 +-39.7974 201.313 225.508 +-42.754 202.59 226.938 +-45.1558 201.214 225.397 +-48.1818 202.589 226.937 +-50.4385 200.725 224.849 +-53.6226 202.523 226.863 +-55.8005 200.501 224.598 +-59.1317 202.587 226.935 +-61.4053 200.996 225.153 +-64.5566 202.26 226.569 +-66.7283 200.447 224.538 +-70.0947 202.193 226.494 +-72.3214 200.612 224.723 +-75.5522 201.8 226.053 +-77.8431 200.45 224.541 +-81.2433 201.92 226.188 +-83.4585 200.414 224.5 +-87.0738 202.226 226.53 +-89.2376 200.626 224.738 +-92.8865 202.329 226.646 +-95.023 200.702 224.823 +-98.7309 202.359 226.679 +-100.966 200.956 225.108 +-104.279 201.684 225.924 +-106.651 200.568 224.673 +-110.507 202.194 226.494 +-112.522 200.421 224.509 +-116.434 201.997 226.274 +-118.38 200.136 224.189 +-122.571 202.034 226.315 +-124.563 200.268 224.337 +-128.511 201.62 225.852 +-130.71 200.194 224.254 +-137.03 204.963 229.596 +-139.42 203.735 228.221 +-143.099 204.365 228.927 +-143.102 199.799 223.812 +-142.777 194.95 218.38 +-144.434 192.92 216.107 +-149.59 195.516 219.014 +-155.517 198.951 222.861 +-1538.22 1926.59 2158.14 +-1563.41 1917.58 2148.04 +-479.913 576.574 645.87 +-487.499 573.821 642.786 +-495.2 571.197 639.847 +-479.218 541.787 606.902 +-481.973 534.187 598.388 +-485.662 527.788 591.221 +-487.579 519.637 582.09 +-491.414 513.695 575.433 +-493.225 505.793 566.581 +-497.185 500.241 560.363 +-498.968 492.64 551.848 +-502.855 487.252 545.812 +-504.919 480.22 537.935 +-508.928 475.153 532.259 +-511.138 468.513 524.821 +-515.235 463.705 519.435 +-516.899 456.81 511.712 +-521.465 452.573 506.966 +-522.82 445.643 499.202 +-527.208 441.389 494.437 +-529.07 435.099 487.392 +-533.288 430.826 482.605 +-534.864 424.497 475.515 +-539.042 420.309 470.823 +-141.709 108.562 121.609 +-143.192 107.784 120.738 +-142.659 105.513 118.194 +-143.022 103.944 116.436 +-142.401 101.696 113.918 +-142.489 99.9944 112.012 +-144.836 99.8812 111.885 +-151.537 102.694 115.036 +-156.766 104.399 116.946 +-157.771 103.25 115.659 +-158.471 101.913 114.161 +-160.163 101.218 113.383 +-161.263 100.147 112.183 +-584.587 356.735 399.609 +-586.936 351.943 394.241 +-590.851 348.122 389.961 +-592.673 343.102 384.337 +-597.147 339.645 380.465 +-599.66 335.091 375.364 +-604.259 331.721 371.588 +-605.474 326.52 365.763 +-610.434 323.362 362.225 +-613.466 319.187 357.548 +-617.388 315.488 353.405 +-619.262 310.766 348.115 +-624.034 307.512 344.47 +-626.584 303.169 339.606 +-631.265 299.864 335.903 +-633.205 295.268 330.754 +-638.533 292.255 327.38 +-382.352 171.75 192.391 +-384.004 169.264 189.607 +-648.208 280.335 314.027 +-133.425 56.6067 63.4099 +-655.88 272.935 305.737 +-382.409 156.06 174.817 +-381.611 152.7 171.052 +-381.788 149.767 167.766 +-381.917 146.843 164.491 +-381.912 143.896 161.19 +-679.58 250.863 281.013 +-684.686 247.571 277.326 +-382.846 135.564 151.856 +-379.552 131.581 147.395 +-382.42 129.763 145.359 +-120.19 39.9069 44.7031 +-114.866 37.3093 41.7933 +-112.552 35.7516 40.0484 +-111.295 34.5614 38.7151 +-110.924 33.6647 37.7107 +-110.082 32.6396 36.5624 +-109.314 31.6534 35.4577 +-108.896 30.7828 34.4824 +-109.665 30.2507 33.8863 +-109.13 29.3627 32.8917 +-109.324 28.6786 32.1253 +-109.509 27.9945 31.359 +-109.684 27.3103 30.5926 +-109.38 26.5124 29.6988 +-109.723 25.8757 28.9856 +-109.964 25.2154 28.246 +-110.575 24.6388 27.6 +-110.513 23.913 26.7869 +-111.49 23.41 26.2235 +-112.366 22.878 25.6276 +-112.661 22.2241 24.8951 +-113.813 21.7338 24.3458 +-115.347 21.3028 23.8631 +-116.297 20.7523 23.2465 +-119.179 20.5259 22.9928 +-122.548 20.348 22.7936 +-161.511 25.8226 28.9261 +-160.381 24.6582 27.6218 +-161.284 23.8117 26.6736 +-163.448 23.1366 25.9173 +-165.901 22.478 25.1795 +-856.862 110.919 124.25 +-864.871 106.749 119.578 +-872.244 102.424 114.734 +-381.002 42.4599 47.5629 +-381.84 40.2753 45.1158 +-381.661 37.9858 42.5512 +-407.99 38.1854 42.7747 +-405.501 35.5521 39.8249 +-405.356 33.1455 37.1291 +-405.477 30.7659 34.4635 +-405.268 28.3665 31.7758 +-404.728 25.9528 29.072 +-405.252 23.6114 26.4492 +-403.752 21.1613 23.7046 +-404.313 18.8281 21.0909 +-404.444 16.4737 18.4535 +-403.746 14.0912 15.7847 +-403.615 11.7356 13.146 +-404.653 9.41047 10.5415 +-145.45 2.53645 2.8413 +-146.078 1.69805 1.90213 +-146.494 0.851383 0.953706 +120.1 6.21725e-15 5.68434e-14 +119.895 0.703807 0.774223 +120.082 1.40991 1.55097 +120.659 2.1253 2.33793 +120.626 2.83348 3.11697 +120.585 3.54144 3.89576 +120.535 4.24914 4.67426 +121.074 4.98115 5.47951 +121.005 5.69165 6.2611 +121.026 6.407 7.04802 +120.639 7.09962 7.80993 +120.542 7.80745 8.58859 +120.238 8.50069 9.35118 +121.017 9.27472 10.2027 +120.594 9.96009 10.9566 +121.254 10.7379 11.8122 +121.11 11.4492 12.5947 +120.858 12.1497 13.3653 +120.3 12.8166 14.0989 +120.623 13.5778 14.9362 +120.442 14.2853 15.7146 +120.744 15.053 16.5591 +120.642 15.7741 17.3522 +120.531 16.4951 18.1454 +120.117 17.174 18.8922 +120.865 18.024 19.8272 +121.407 18.8538 20.7401 +121.06 19.55 21.506 +120.802 20.2599 22.2869 +121.115 21.0693 23.1772 +120.741 21.762 23.9393 +121.225 22.6138 24.8763 +120.927 23.3245 25.6581 +120.811 24.0716 26.48 +120.877 24.8585 27.3456 +121.408 25.7491 28.3253 +121.83 26.6272 29.2912 +121.385 27.3199 30.0533 +121.877 28.2285 31.0527 +121.224 28.8755 31.7645 +121.126 29.655 32.622 +120.737 30.3648 33.4028 +120.992 31.2412 34.3668 +120.768 31.9995 35.2011 +120.348 32.7072 35.9795 +120.751 33.644 37.0101 +120.218 34.3253 37.7595 +120.869 35.3515 38.8884 +121.045 36.2512 39.8781 +121.298 37.1835 40.9037 +120.811 37.8941 41.6854 +121.127 38.8624 42.7506 +121.427 39.8373 43.823 +120.1 40.2784 44.3083 +116.722 40.0047 44.0072 +114.602 40.1293 44.1442 +110.81 39.632 43.5972 +108.798 39.7353 43.7109 +105.829 39.4594 43.4073 +104.965 39.9466 43.9432 +102.191 39.6867 43.6574 +100.38 39.7729 43.7522 +97.6314 39.4599 43.4078 +95.1546 39.2231 43.1474 +96.3383 40.4931 44.5444 +96.0623 41.1655 45.2841 +95.86 41.8743 46.0638 +95.9803 42.7324 47.0078 +96.6658 43.8585 48.2465 +96.1755 44.4623 48.9107 +96.2504 45.3338 49.8694 +95.6586 45.8971 50.4891 +95.7876 46.8127 51.4963 +95.8197 47.6933 52.465 +95.9161 48.6182 53.4825 +95.9958 49.5479 54.5052 +95.9797 50.4409 55.4875 +95.8695 51.2954 56.4275 +95.8221 52.1949 57.417 +95.8358 53.1404 58.4571 +95.8322 54.0901 59.5018 +96.4195 55.3932 60.9353 +95.6972 55.9571 61.5556 +95.6416 56.9179 62.6125 +96.2373 58.2873 64.1189 +95.4774 58.8499 64.7379 +95.9536 60.1881 66.2099 +95.822 61.1657 67.2853 +95.6722 62.1464 68.3642 +95.3616 63.0357 69.3424 +95.4594 64.2114 70.6357 +95.6741 65.4889 72.0411 +95.4461 66.4835 73.1352 +95.2683 67.5293 74.2856 +95.6162 68.9715 75.872 +95.3258 69.9764 76.9775 +95.0165 70.9834 78.0853 +95.1522 72.3442 79.5822 +95.2598 73.7124 81.0873 +95.0142 74.831 82.3178 +94.6183 75.8501 83.4388 +95.1573 77.6481 85.4167 +94.7127 78.6739 86.5452 +94.6222 80.0165 88.0221 +94.6887 81.5232 89.6796 +94.6015 82.9298 91.2269 +94.5451 84.3955 92.8392 +94.5768 85.9742 94.5759 +94.3983 87.3969 96.1409 +94.0739 88.7146 97.5905 +94.1813 90.4756 99.5277 +94.3066 92.2999 101.534 +94.0562 93.7979 103.182 +93.9397 95.4681 105.02 +93.7868 97.1443 106.864 +93.7051 98.939 108.838 +93.9017 101.083 111.196 +93.5795 102.72 112.997 +93.8399 105.053 115.563 +93.9454 107.281 118.014 +93.5 108.935 119.834 +93.4127 111.06 122.171 +93.7622 113.78 125.164 +93.6663 116.041 127.651 +93.5187 118.309 130.146 +93.6888 121.061 133.173 +93.295 123.165 135.487 +91.2475 123.105 135.422 +88.3318 121.823 134.011 +88.2117 124.401 136.847 +88.0736 127.048 139.759 +93.0986 137.414 151.162 +93.102 140.66 154.733 +93.068 143.977 158.381 +92.994 147.366 162.109 +92.9921 151.013 166.122 +92.6402 154.235 169.667 +92.5416 158.027 173.838 +92.5664 162.207 178.436 +92.4197 166.273 182.908 +92.106 170.222 187.252 +92.0973 174.941 192.444 +91.973 179.673 197.649 +89.4799 179.886 197.884 +89.1205 184.499 202.959 +87.0844 185.785 204.373 +84.8755 186.739 205.423 +83.4153 189.423 208.375 +86.936 203.937 224.341 +83.4585 202.43 222.684 +81.1915 203.822 224.215 +77.743 202.207 222.438 +75.7216 204.288 224.727 +68.4695 191.839 211.032 +69.8698 203.572 223.939 +62.1831 188.673 207.55 +62.5606 197.98 217.787 +59.9499 198.207 218.037 +54.1516 187.393 206.141 +55.673 202.055 222.271 +49.5766 189.126 208.048 +50.1745 201.683 221.862 +47.8377 203.166 223.492 +44.8602 201.909 222.109 +42.5452 203.63 224.003 +39.4711 201.671 221.848 +37.0727 203.097 223.417 +34.1308 201.502 221.662 +31.7976 203.501 223.862 +28.8592 201.604 221.775 +26.3995 202.972 223.279 +23.4436 200.37 220.417 +21.0804 202.782 223.07 +18.284 201.085 221.203 +15.7531 202.192 222.421 +13.016 200.53 220.592 +10.5082 202.414 222.665 +7.82953 201.123 221.245 +5.25143 202.371 222.618 +2.60662 200.915 221.016 +1.82077e-14 202.604 222.875 +-2.60051 200.444 220.499 +-5.25666 202.573 222.84 +-7.80335 200.45 220.505 +-10.5222 202.682 222.96 +-13.0073 200.395 220.444 +-15.7741 202.461 222.717 +-18.2413 200.615 220.686 +-21.0246 202.245 222.479 +-23.4514 200.437 220.491 +-26.2687 201.967 222.174 +-28.6579 200.198 220.228 +-31.5153 201.695 221.874 +-33.961 200.5 220.56 +-36.8411 201.828 222.021 +-39.1056 199.804 219.794 +-42.072 201.365 221.512 +-44.4759 200.179 220.207 +-47.4153 201.372 221.519 +-49.6298 199.494 219.453 +-52.7543 201.249 221.383 +-54.944 199.41 219.36 +-58.1395 201.193 221.322 +-60.4284 199.789 219.778 +-63.5378 201.072 221.189 +-65.6245 199.115 219.036 +-68.9025 200.754 220.84 +-71.1775 199.426 219.379 +-74.5603 201.154 221.28 +-76.5161 199.016 218.928 +-80.1821 201.288 221.427 +-82.1224 199.19 219.118 +-85.6405 200.898 220.998 +-87.7607 199.291 219.23 +-91.3369 200.956 221.062 +-93.4894 199.45 219.405 +-97.0931 201.004 221.115 +-99.0942 199.215 219.146 +-102.88 200.979 221.087 +-104.849 199.163 219.089 +-108.899 201.257 221.393 +-110.911 199.539 219.503 +-114.785 201.142 221.266 +-116.694 199.271 219.208 +-120.586 200.761 220.847 +-122.535 198.989 218.898 +-126.48 200.429 220.482 +-128.716 199.124 219.047 +-133.694 201.987 222.195 +-136.973 202.174 222.401 +-141.45 204.044 224.459 +-143.274 202.052 222.268 +-143.128 197.395 217.144 +-142.739 192.575 211.842 +-146.821 193.827 213.22 +-148.96 192.481 211.738 +-1538.22 1945.98 2140.68 +-1563.41 1936.87 2130.66 +-473.611 574.728 632.23 +-478.98 569.467 626.442 +-482.45 562.09 618.327 +-481.755 550.137 605.178 +-483.312 541.062 595.195 +-487.961 535.623 589.212 +-489.592 527.034 579.764 +-493.402 520.963 573.085 +-495.24 512.97 564.292 +-499.282 507.407 558.173 +-501.596 500.219 550.265 +-505.121 494.373 543.835 +-506.984 487.035 535.763 +-511.193 482.07 530.301 +-513.313 475.242 522.789 +-517.436 470.372 517.432 +-519.788 463.985 510.407 +-523.596 458.996 504.918 +-525.467 452.406 497.669 +-529.2 447.515 492.288 +-530.769 440.889 485 +-535.323 436.822 480.526 +-537.178 430.623 473.707 +-142.099 111.915 123.112 +-142.365 110.162 121.184 +-142.861 108.617 119.484 +-143.529 107.225 117.953 +-142.347 104.493 114.948 +-142.265 102.62 112.888 +-146.551 103.88 114.273 +-148.587 103.5 113.855 +-157.494 107.805 118.59 +-157.402 105.877 116.47 +-158.484 104.761 115.242 +-159.622 103.687 114.06 +-162.266 103.579 113.942 +-162.434 101.889 112.082 +-587.684 362.234 398.475 +-588.645 356.52 392.19 +-593.248 353.051 388.374 +-595.089 347.967 382.781 +-599.884 344.635 379.116 +-602.264 339.934 373.944 +-606.343 336.214 369.852 +-608.35 331.372 364.526 +-613.33 328.165 360.998 +-615.358 323.393 355.748 +-619.768 319.891 351.896 +-622.217 315.391 346.946 +-627.008 312.087 343.311 +-629.011 307.406 338.162 +-633.952 304.17 334.603 +-635.908 299.512 329.478 +-641.005 296.339 325.988 +-643.084 291.775 320.967 +-383.754 170.855 187.949 +-384.279 167.864 184.659 +-655.737 281.002 309.116 +-135.264 56.8543 62.5426 +-135.655 55.9176 61.5121 +-382.211 154.479 169.934 +-381.443 151.137 166.258 +-383.649 148.993 163.9 +-381.738 145.278 159.813 +-384.745 143.456 157.809 +-687.147 250.961 276.07 +-689.494 246.602 271.275 +-381.947 133.744 147.125 +-380.638 130.458 143.511 +-114.373 38.3576 42.1953 +-114.237 37.4784 41.2281 +-111.65 35.8218 39.4057 +-111.204 34.8808 38.3706 +-109.65 33.613 36.9759 +-110.356 33.0502 36.3568 +-109.405 31.9988 35.2003 +-109.816 31.3553 34.4924 +-109.387 30.4778 33.5271 +-109.315 29.7086 32.6809 +-109.324 28.9672 31.8654 +-109.136 28.1797 30.9991 +-109.216 27.4674 30.2155 +-110.414 27.0323 29.7369 +-109.912 26.1811 28.8005 +-109.964 25.4692 28.0174 +-110.48 24.8654 27.3532 +-111.369 24.3407 26.7759 +-111.108 23.5646 25.9223 +-112.175 23.0689 25.3769 +-113.428 22.6006 24.8618 +-114.294 22.0452 24.2508 +-115.828 21.6071 23.7689 +-116.78 21.0482 23.1541 +-120.147 20.9009 22.992 +-127.788 21.4316 23.5758 +-159.663 25.7841 28.3637 +-160.966 24.9972 27.4981 +-161.87 24.1387 26.5538 +-163.351 23.3555 25.6922 +-3210.72 439.399 483.36 +-859.807 112.421 123.669 +-867.821 108.191 119.015 +-382.302 45.3439 49.8805 +-381.298 42.9204 47.2146 +-380.655 40.5543 44.6118 +-385.815 38.7857 42.6662 +-404.425 38.2326 42.0578 +-404.609 35.8308 39.4157 +-403.47 33.3233 36.6573 +-404.881 31.0298 34.1344 +-404.87 28.6239 31.4877 +-405.226 26.2462 28.8722 +-403.459 23.7435 26.119 +-404.848 21.4323 23.5766 +-404.512 19.027 20.9306 +-403.845 16.6147 18.277 +-403.746 14.233 15.657 +-404.115 11.8683 13.0558 +-403.454 9.47699 10.4252 +-146.05 2.57254 2.82992 +-143.678 1.68696 1.85574 +-146.494 0.859951 0.945988 +120.1 6.21725e-15 5.68434e-14 +119.895 0.710763 0.767842 +119.982 1.42266 1.53691 +120.759 2.14808 2.32059 +120.726 2.86385 3.09384 +120.485 3.57348 3.86045 +120.435 4.28758 4.6319 +121.074 5.03038 5.43435 +121.005 5.74791 6.2095 +121.026 6.47033 6.98993 +120.639 7.16978 7.74556 +120.443 7.8781 8.51076 +121.232 8.65569 9.3508 +120.918 9.35864 10.1102 +120.495 10.0502 10.8573 +121.155 10.8351 11.7052 +121.011 11.5529 12.4807 +120.759 12.2597 13.2443 +121.189 13.0389 14.086 +120.623 13.712 14.8131 +121.131 14.5091 15.6742 +120.645 15.1894 16.4093 +120.544 15.917 17.1952 +121.217 16.7529 18.0982 +121.192 17.4991 18.9044 +120.768 18.1874 19.648 +121.309 19.0249 20.5527 +121.06 19.7432 21.3287 +120.608 20.4273 22.0677 +121.115 21.2775 22.9862 +120.837 21.9947 23.761 +121.321 22.8554 24.6908 +120.927 23.555 25.4466 +120.524 24.2516 26.1992 +120.973 25.1241 27.1417 +121.313 25.9833 28.0699 +121.069 26.7224 28.8684 +121.385 27.5899 29.8056 +121.026 28.3084 30.5818 +121.224 29.1609 31.5027 +121.032 29.9248 32.328 +121.393 30.8315 33.3075 +120.712 31.4769 34.0047 +120.675 32.2909 34.884 +120.348 33.0304 35.683 +120.659 33.9506 36.6771 +120.494 34.7442 37.5344 +120.869 35.7009 38.5679 +120.588 36.4713 39.4002 +121.116 37.4947 40.5057 +120.63 38.2112 41.2798 +121.037 39.2173 42.3667 +121.157 40.1417 43.3654 +120.906 40.9493 44.2378 +118.771 41.1094 44.4107 +116.908 41.3414 44.6614 +112.929 40.7891 44.0647 +111.786 41.2301 44.5411 +107.578 40.508 43.7611 +105.574 40.5755 43.834 +103.49 40.5884 43.8479 +101.5 40.6142 43.8758 +99.1743 40.4797 43.7305 +97.1157 40.4272 43.6737 +95.4902 40.5333 43.7884 +95.8093 41.4628 44.7926 +95.9439 42.3252 45.7242 +95.3131 42.8549 46.2964 +96.4171 44.1779 47.7257 +96.2579 44.9402 48.5492 +96.1684 45.7429 49.4164 +96.3099 46.6663 50.4139 +95.7067 47.2354 51.0287 +95.9001 48.2051 52.0762 +95.9161 49.0988 53.0417 +95.9164 49.9963 54.0113 +95.9797 50.9394 55.0302 +96.026 51.887 56.0538 +95.8221 52.7107 56.9438 +95.8358 53.6656 57.9753 +95.9854 54.712 59.1058 +95.7351 55.5437 60.0042 +95.6972 56.5102 61.0483 +95.6416 57.4804 62.0965 +96.1629 58.8179 63.5414 +96.0672 59.7987 64.601 +95.9536 60.7829 65.6642 +96.0396 61.9105 66.8823 +95.4564 62.6191 67.6478 +94.2917 62.9445 67.9993 +93.7624 63.6932 68.8082 +94.9732 65.6516 70.9239 +94.8903 66.7497 72.1101 +95.2683 68.1967 73.6733 +95.6162 69.6531 75.2467 +95.3258 70.668 76.3431 +95.5519 72.0884 77.8776 +95.2185 73.1101 78.9813 +95.391 74.5435 80.5298 +95.0142 75.5706 81.6394 +95.1326 77.0161 83.201 +95.1573 78.4155 84.7128 +94.7127 79.4514 85.8319 +94.6845 80.861 87.3546 +94.6887 82.329 88.9405 +94.6015 83.7494 90.475 +94.6053 85.2839 92.1328 +94.0415 86.3328 93.2659 +93.693 87.601 94.636 +94.1319 89.6464 96.8456 +94.1813 91.3698 98.7074 +93.7969 92.708 100.153 +93.553 94.2181 101.784 +93.8293 96.2989 104.032 +93.6779 97.9903 105.86 +94.0812 100.318 108.374 +94.0077 102.197 110.404 +93.5795 103.735 112.066 +93.8399 106.091 114.611 +93.3871 107.697 116.346 +93.95 110.54 119.418 +93.462 112.217 121.229 +93.3259 114.37 123.555 +93.7617 117.308 126.728 +93.5657 119.538 129.138 +93.6888 122.257 132.075 +93.6582 124.866 134.894 +92.8538 126.511 136.671 +89.7346 124.98 135.017 +89.6755 127.715 137.972 +92.9338 135.383 146.255 +93.0572 138.711 149.85 +92.98 141.863 153.256 +93.068 145.4 157.076 +92.9159 148.697 160.638 +92.6094 151.878 164.075 +92.7151 155.885 168.404 +92.5782 159.652 172.473 +92.5306 163.746 176.896 +92.4197 167.916 181.401 +92.1402 171.968 185.778 +92.0306 176.542 190.719 +91.3219 180.164 194.632 +89.6068 181.922 196.532 +87.3282 182.576 197.238 +88.9788 191.703 207.098 +85.3725 189.69 204.923 +83.9265 192.468 207.924 +85.5027 202.557 218.824 +78.7819 192.975 208.473 +76.1963 193.173 208.686 +76.5662 201.115 217.266 +70.2783 191.476 206.853 +70.944 200.736 216.857 +68.7001 202.143 218.376 +65.4081 200.42 216.515 +63.1844 201.929 218.146 +60.0895 200.632 216.744 +57.8533 202.181 218.417 +54.6342 200.245 216.326 +52.3549 201.699 217.897 +49.3657 200.393 216.486 +47.0868 201.953 218.171 +44.1359 200.612 216.723 +41.7798 201.942 218.159 +38.8185 200.297 216.382 +36.4633 201.733 217.933 +33.5648 200.119 216.19 +31.2017 201.662 217.856 +28.3512 200.013 216.075 +25.9027 201.121 217.272 +23.1376 199.709 215.747 +20.7316 201.397 217.571 +18.0276 200.224 216.304 +15.5071 201.002 217.144 +12.8415 199.797 215.842 +10.3337 201.02 217.163 +7.69341 199.579 215.606 +5.16242 200.908 217.042 +2.56735 199.844 215.893 +1.63203e-14 201.21 217.368 +-2.56909 199.98 216.039 +-5.17115 201.247 217.409 +-7.69079 199.511 215.533 +-10.3163 200.68 216.796 +-12.8241 199.525 215.548 +-15.4705 200.527 216.631 +-17.9422 199.275 215.278 +-20.6688 200.787 216.912 +-23.0591 199.032 215.016 +-25.8242 200.512 216.614 +-28.2362 199.202 215.199 +-31.0659 200.783 216.908 +-33.361 198.904 214.878 +-36.2196 200.385 216.477 +-38.5705 199.017 214.999 +-41.4736 200.463 216.561 +-43.7664 198.933 214.908 +-46.6488 200.075 216.142 +-48.9201 198.584 214.532 +-51.7993 199.558 215.584 +-54.1968 198.642 214.594 +-57.1855 199.847 215.896 +-59.2522 197.836 213.724 +-62.519 199.803 215.849 +-64.6938 198.231 214.15 +-67.8227 199.561 215.587 +-69.9636 197.962 213.86 +-73.3265 199.781 215.825 +-75.4395 198.155 214.068 +-78.6551 199.406 215.42 +-81.0534 198.54 214.484 +-84.3175 199.749 215.791 +-86.5679 198.525 214.468 +-89.9043 199.759 215.801 +-91.9558 198.117 214.027 +-95.5481 199.761 215.803 +-97.5395 198.027 213.93 +-101.121 199.497 215.518 +-103.48 198.506 214.447 +-106.813 199.353 215.362 +-109.02 198.076 213.982 +-112.492 199.071 215.057 +-114.715 197.828 213.714 +-118.675 199.533 215.557 +-120.851 198.194 214.111 +-124.8 199.722 215.76 +-126.962 198.351 214.28 +-130.847 199.639 215.672 +-133.697 199.289 215.293 +-138.915 202.367 218.618 +-141.208 201.107 217.257 +-143.216 199.468 215.487 +-143.274 195.207 210.883 +-144.142 192.172 207.604 +-146.559 191.249 206.608 +-153.376 195.951 211.688 +-156.938 196.348 212.116 +-474.532 581.537 628.239 +-477.651 573.499 619.555 +-479.65 564.351 609.672 +-483.278 557.33 602.088 +-485.99 549.437 593.56 +-489.372 542.481 586.046 +-491.606 534.432 577.35 +-495.928 528.804 571.271 +-497.909 520.831 562.658 +-501.38 514.574 555.898 +-503.385 506.965 547.677 +-507.5 501.61 541.892 +-509.737 494.52 534.233 +-513.632 489.157 528.439 +-516.017 482.466 521.211 +-519.637 477.041 515.35 +-522.014 470.579 508.369 +-525.239 464.987 502.329 +-527.683 458.805 495.65 +-532.063 454.383 490.873 +-533.286 447.358 483.284 +-537.931 443.289 478.888 +-540.263 437.377 472.501 +-142.749 113.537 122.655 +-143.086 111.815 120.794 +-143.524 110.199 119.049 +-142.525 107.527 116.162 +-142.55 105.677 114.163 +-143.015 104.181 112.548 +-150.061 107.42 116.046 +-155.048 109.067 117.826 +-157.074 108.579 117.299 +-157.685 107.116 115.718 +-159.839 106.701 115.27 +-160.772 105.466 113.936 +-161.904 104.369 112.75 +-585.449 370.859 400.642 +-589.38 366.87 396.332 +-591.692 361.907 390.971 +-596.693 358.611 387.41 +-597.805 353.01 381.359 +-603.002 349.85 377.945 +-604.715 344.691 372.371 +-608.966 341.006 368.391 +-610.992 336.101 363.092 +-615.991 332.846 359.576 +-617.958 327.969 354.308 +-622.465 324.459 350.515 +-625.172 320.021 345.721 +-629.983 316.667 342.097 +-631.761 311.802 336.842 +-637.29 308.794 333.592 +-2683.95 1276.63 1379.15 +-2700.25 1260.67 1361.91 +-645.903 295.95 319.717 +-651.181 292.786 316.298 +-383.44 169.153 182.737 +-383.659 166.034 179.368 +-661.138 280.638 303.175 +-134.973 56.1863 60.6984 +-668.933 273.037 294.963 +-382.219 152.941 165.223 +-382.437 149.99 162.036 +-383.827 147.517 159.364 +-382.121 143.885 155.44 +-382.725 141.161 152.498 +-692.761 250.22 270.314 +-697.989 246.825 266.647 +-384.024 132.919 143.594 +-113.746 38.5245 41.6183 +-112.709 37.3425 40.3414 +-110.747 35.8834 38.765 +-111.023 35.1681 37.9923 +-109.832 34.0016 36.7321 +-109.625 33.1558 35.8184 +-109.497 32.3421 34.9394 +-109.54 31.5856 34.1221 +-109.572 30.8311 33.307 +-109.593 30.0786 32.4941 +-109.231 29.2286 31.5758 +-109.509 28.5556 30.8488 +-109.872 27.9053 30.1463 +-109.662 27.1136 29.291 +-109.818 26.4171 28.5386 +-110.247 25.7872 27.8581 +-111.238 25.2836 27.314 +-111.083 24.5183 26.4872 +-112.539 24.104 26.0397 +-112.748 23.416 25.2965 +-113.332 22.8047 24.636 +-114.871 22.3754 24.1723 +-116.021 21.857 23.6122 +-117.94 21.4672 23.1912 +-121.89 21.4136 23.1332 +-159.614 27.0337 29.2047 +-158.788 25.8962 27.9758 +-160.674 25.1984 27.222 +-163.53 24.6272 26.6049 +-163.351 23.5863 25.4805 +-855.768 118.272 127.77 +-861.574 113.765 122.901 +-870.869 109.644 118.449 +-381.416 45.6859 49.3547 +-382.186 43.4455 46.9345 +-380.951 40.987 44.2786 +-903.367 91.7122 99.0773 +-405.02 38.6672 41.7724 +-404.014 36.1318 39.0334 +-405.058 33.7851 36.4983 +-404.185 31.2827 33.7949 +-405.268 28.9352 31.2588 +-404.629 26.4666 28.592 +-404.555 24.0432 25.9741 +-403.951 21.5962 23.3305 +-404.911 19.234 20.7786 +-405.742 16.8578 18.2115 +-403.746 14.3737 15.528 +-404.415 11.9945 12.9578 +-404.653 9.59911 10.37 +-146.05 2.59797 2.8066 +-146.578 1.73801 1.87759 +-145.994 0.865481 0.934985 +120.1 6.21725e-15 5.68434e-14 +119.895 0.717661 0.761398 +119.982 1.43647 1.52401 +120.759 2.16893 2.30111 +119.927 2.8725 3.04756 +120.585 3.61115 3.83123 +120.435 4.32919 4.59303 +120.275 5.0457 5.35321 +121.005 5.80369 6.15739 +120.926 6.52774 6.92557 +120.938 7.25727 7.69956 +120.443 7.95455 8.43934 +121.232 8.7397 9.27234 +120.918 9.44947 10.0254 +120.594 10.1561 10.7751 +120.361 10.8687 11.531 +120.912 11.6554 12.3658 +120.66 12.3686 13.1224 +121.189 13.1655 13.9678 +120.623 13.845 14.6888 +121.033 14.638 15.5301 +120.35 15.2993 16.2318 +120.642 16.0846 17.0648 +120.335 16.7924 17.8158 +120.214 17.5262 18.5944 +120.67 18.3491 19.4673 +120.432 19.0707 20.2329 +120.866 19.9029 21.1158 +120.511 20.6089 21.8649 +121.018 21.4669 22.7751 +120.741 22.1904 23.5428 +121.128 23.0406 24.4448 +120.734 23.7458 25.193 +121.387 24.6623 26.1653 +121.355 25.4482 26.9991 +121.313 26.2354 27.8343 +121.069 26.9818 28.6261 +121.48 27.8795 29.5785 +121.121 28.6055 30.3489 +121.318 29.4668 31.2626 +121.314 30.2856 32.1314 +120.55 30.9145 32.7986 +120.619 31.7578 33.6932 +120.954 32.6797 34.6713 +120.348 33.351 35.3835 +120.751 34.3063 36.3971 +121.138 35.269 37.4184 +121.052 36.1021 38.3023 +120.405 36.7695 39.0104 +120.843 37.7732 40.0753 +120.448 38.5241 40.8719 +120.946 39.5684 41.9798 +121.157 40.5313 43.0015 +121.622 41.5916 44.1264 +120.019 41.9443 44.5006 +117.884 42.091 44.6562 +114.871 41.8934 44.4466 +112.489 41.8921 44.4451 +109.677 41.6992 44.2405 +107.663 41.7799 44.3262 +104.962 41.5654 44.0985 +103.137 41.6698 44.2094 +99.7743 41.1198 43.6258 +98.3947 41.3571 43.8775 +95.3206 40.854 43.3438 +95.1346 41.5704 44.1039 +95.9439 42.736 45.3405 +95.9803 43.5736 46.2292 +96.0855 44.4533 47.1625 +96.2579 45.3763 48.1418 +96.0046 46.1082 48.9182 +96.3913 47.159 50.0331 +95.7876 47.7342 50.6433 +96.5432 48.9993 51.9855 +95.8363 49.534 52.5528 +95.9164 50.4815 53.5581 +95.8221 51.3493 54.4787 +96.026 52.3905 55.5834 +95.3558 52.9633 56.1911 +95.8358 54.1865 57.4888 +95.8322 55.1548 58.5162 +95.8872 56.1718 59.5952 +95.8481 57.1486 60.6315 +95.7914 58.1292 61.6718 +95.5684 59.0216 62.6186 +95.6249 60.101 63.7639 +95.9536 61.3728 65.1132 +95.967 62.4642 66.271 +95.0248 62.9409 66.7768 +93.7924 63.2189 67.0717 +93.3381 64.0203 67.922 +93.7817 65.4571 69.4464 +95.5155 67.8415 71.9761 +95.2683 68.8586 73.0551 +95.6162 70.3291 74.6153 +95.8663 71.7586 76.1318 +94.9496 72.3292 76.7373 +95.2185 73.8197 78.3186 +95.3254 75.2148 79.7987 +95.0792 76.3561 81.0096 +95.1968 77.8157 82.5581 +94.5848 78.7005 83.4969 +94.7127 80.2225 85.1116 +94.6845 81.6458 86.6216 +94.6887 83.128 88.1942 +94.1754 84.1815 89.3119 +94.0637 85.6185 90.8364 +94.4579 87.5561 92.8922 +94.4571 89.1728 94.6074 +94.19 90.5727 96.0926 +94.1813 92.2566 97.8791 +94.4199 94.2299 99.9727 +93.7207 95.3033 101.112 +93.5533 96.9474 102.856 +93.8958 99.1718 105.216 +93.5976 100.771 106.913 +93.9017 103.072 109.354 +93.6317 104.8 111.187 +93.8399 107.121 113.649 +93.8946 109.333 115.996 +93.45 111.019 117.785 +93.5112 113.366 120.275 +93.8591 116.14 123.218 +93.714 118.386 125.601 +93.5657 120.698 128.054 +93.6426 123.383 130.903 +93.3858 125.711 133.373 +93.1661 128.168 135.979 +92.8032 130.509 138.463 +93.1626 133.969 142.133 +92.9338 136.697 145.028 +93.0572 140.057 148.592 +92.98 143.24 151.97 +92.9883 146.685 155.624 +92.8768 150.077 159.223 +92.9538 153.922 163.303 +92.6777 157.335 166.923 +92.5782 161.202 171.026 +92.4948 165.272 175.344 +92.3847 169.481 179.81 +92.3454 174.024 184.629 +91.8636 177.932 188.776 +90.4103 180.097 191.073 +88.6549 181.737 192.812 +87.0501 183.761 194.96 +91.0838 198.143 210.218 +86.4543 193.957 205.778 +86.9371 201.307 213.576 +83.1598 198.919 211.042 +81.2939 201.061 213.315 +78.9398 202.07 214.385 +75.5396 200.344 212.553 +73.2539 201.521 213.802 +70.1503 200.417 212.631 +67.7778 201.364 213.636 +64.8886 200.758 212.993 +62.5606 201.877 214.18 +59.4316 200.362 212.572 +57.071 201.383 213.656 +54.1604 200.435 212.65 +51.7993 201.495 213.775 +48.7881 199.971 212.158 +46.4141 201 213.25 +43.589 200.049 212.241 +41.2927 201.525 213.807 +38.4139 200.132 212.329 +36.049 201.376 213.649 +33.1799 199.744 211.917 +30.8568 201.368 213.64 +28.0541 199.837 212.016 +25.6151 200.818 213.057 +22.9257 199.801 211.978 +20.4386 200.478 212.696 +17.8262 199.908 212.091 +15.3711 201.172 213.432 +12.7325 200.023 212.213 +10.2151 200.64 212.868 +7.63058 199.87 212.051 +5.10657 200.663 212.892 +2.53855 199.52 211.68 +1.70974e-14 200.831 213.07 +-2.54029 199.657 211.825 +-5.11356 200.937 213.183 +-7.62535 199.733 211.906 +-10.2011 200.366 212.577 +-12.6758 199.132 211.268 +-15.2926 200.145 212.342 +-17.7834 199.429 211.583 +-20.4456 200.547 212.769 +-22.8551 199.186 211.325 +-25.5453 200.272 212.477 +-27.987 199.36 211.51 +-30.6268 199.867 212.048 +-33.0667 199.062 211.194 +-35.7199 199.538 211.698 +-38.1398 198.704 210.814 +-40.8891 199.556 211.717 +-43.2786 198.625 210.73 +-46.0543 199.442 211.597 +-48.3094 198.009 210.076 +-51.2609 199.401 211.553 +-53.559 198.21 210.29 +-56.4031 199.026 211.156 +-58.7737 198.143 210.219 +-61.625 198.857 210.977 +-63.9579 197.878 209.937 +-66.8555 198.624 210.729 +-69.2166 197.75 209.801 +-72.2863 198.858 210.977 +-74.5882 197.82 209.876 +-77.801 199.155 211.292 +-80.0646 198.021 210.089 +-83.1047 198.787 210.902 +-85.375 197.69 209.738 +-88.6471 198.877 210.998 +-90.9334 197.815 209.871 +-94.2811 199.025 211.154 +-96.4923 197.802 209.857 +-99.7866 198.774 210.888 +-102.245 198.04 210.109 +-105.65 199.096 211.23 +-107.829 197.813 209.869 +-111.273 198.826 210.943 +-113.469 197.577 209.619 +-116.915 198.481 210.577 +-119.435 197.774 209.827 +-123.041 198.819 210.936 +-125.167 197.446 209.479 +-129.139 198.945 211.07 +-131.209 197.478 209.513 +-137.14 201.72 214.014 +-140.002 201.325 213.595 +-143.26 201.466 213.744 +-142.962 196.672 208.658 +-142.644 192.02 203.722 +-144.066 189.82 201.388 +-149.292 192.584 204.321 +-155.22 196.084 208.034 +-476.277 589.341 625.258 +-479.374 581.154 616.572 +-481.45 571.967 606.825 +-485.613 565.458 599.92 +-487.226 556.18 590.076 +-491.671 550.319 583.857 +-493.832 542.062 575.097 +-497.539 535.672 568.318 +-499.271 527.324 559.461 +-502.925 521.17 552.932 +-504.951 513.477 544.77 +-509.256 508.231 539.204 +-511.286 500.837 531.36 +-515.722 495.915 526.138 +-517.956 488.98 518.781 +-521.481 483.38 512.839 +-523.519 476.515 505.556 +-527.857 471.84 500.596 +-529.838 465.149 493.498 +-533.557 460.081 488.121 +-535.678 453.726 481.378 +-540.158 449.444 476.835 +-141.542 115.699 122.75 +-143.398 115.161 122.179 +-143.218 113.004 119.891 +-143.192 111.012 117.777 +-142.726 108.724 115.35 +-142.887 106.955 113.473 +-147.448 108.453 115.063 +-154.329 111.547 118.345 +-156.993 111.507 118.303 +-158.265 110.465 117.197 +-158.533 108.737 115.364 +-160.481 108.169 114.762 +-162.067 107.348 113.89 +-585.16 380.876 404.088 +-587.35 375.675 398.57 +-592.107 372.144 394.824 +-594.367 367.072 389.443 +-598.041 362.91 385.027 +-600.598 358.101 379.926 +-604.143 353.913 375.482 +-606.401 349.006 370.276 +-611.204 345.581 366.642 +-613.479 340.744 361.51 +-617.791 337.059 357.601 +-620.952 332.757 353.036 +-624.528 328.694 348.726 +-626.849 323.994 343.739 +-631.269 320.392 339.918 +-385.577 192.146 203.856 +-2667.45 1305.04 1384.57 +-385.329 185.062 196.34 +-385.197 181.583 192.649 +-2716.34 1256.7 1333.29 +-653.183 296.535 314.607 +-381.847 170.085 180.45 +-383.912 167.756 177.98 +-381.452 163.489 173.453 +-668.299 280.898 298.017 +-134.232 55.321 58.6925 +-2823.13 1140.61 1210.13 +-382.437 151.446 160.676 +-383.305 148.746 157.811 +-382.121 145.282 154.136 +-381.495 142.073 150.732 +-694.615 253.324 268.763 +-700.65 250.171 265.417 +-114.673 40.076 42.5184 +-113.209 38.7148 41.0742 +-111.72 37.3742 39.6519 +-111.199 36.3793 38.5964 +-110.57 35.3644 37.5197 +-109.923 34.3599 36.454 +-109.717 33.5055 35.5474 +-108.947 32.4919 34.4721 +-108.896 31.7046 33.6368 +-109.203 31.0253 32.9161 +-109.5 30.3448 32.1941 +-109.696 29.638 31.4442 +-109.696 28.8819 30.6421 +-109.872 28.1762 29.8933 +-110.32 27.541 29.2194 +-110.383 26.8109 28.4449 +-110.72 26.1491 27.7428 +-111.333 25.5508 27.1079 +-111.369 24.8198 26.3324 +-112.252 24.276 25.7555 +-112.366 23.5631 24.9991 +-113.908 23.1429 24.5533 +-115.255 22.6681 24.0496 +-116.696 22.1974 23.5502 +-118.616 21.7999 23.1284 +-124.988 22.171 23.5222 +-161.263 27.5781 29.2589 +-161.024 26.5158 28.1318 +-162.33 25.7052 27.2718 +-164.604 25.0296 26.555 +-164.72 24.0148 25.4784 +-856.258 119.489 126.771 +-863.047 115.065 122.078 +-872.245 110.883 117.64 +-380.628 46.034 48.8395 +-382.383 43.8899 46.5647 +-380.853 41.3741 43.8956 +-905.147 92.7847 98.4394 +-405.317 39.0712 41.4523 +-404.609 36.5362 38.7628 +-404.76 34.0879 36.1654 +-405.775 31.7105 33.6431 +-404.87 29.1873 30.9661 +-403.733 26.6642 28.2893 +-404.654 24.2826 25.7625 +-405.347 21.8811 23.2147 +-404.313 19.3919 20.5737 +-405.742 17.0214 18.0587 +-404.645 14.5455 15.4319 +-404.415 12.111 12.849 +-404.354 9.68507 10.2753 +-147.849 2.6555 2.81734 +-143.078 1.71299 1.81738 +-146.294 0.875678 0.929045 +120.1 6.21725e-15 5.68434e-14 +119.895 0.724501 0.754893 +119.982 1.45016 1.51099 +119.759 2.17147 2.26256 +120.826 2.92162 3.04418 +120.585 3.64557 3.7985 +120.335 4.36682 4.55001 +120.275 5.09379 5.30747 +120.206 5.82037 6.06452 +120.727 6.57909 6.85508 +120.838 7.32041 7.6275 +120.542 8.03701 8.37416 +121.133 8.81579 9.18561 +121.017 9.54742 9.94793 +121.388 10.3205 10.7534 +120.361 10.9722 11.4325 +120.12 11.6895 12.1798 +120.66 12.4865 13.0103 +120.399 13.2043 13.7582 +120.721 13.9884 14.5752 +121.131 14.7895 15.4099 +120.449 15.4578 16.1063 +120.642 16.2379 16.919 +121.217 17.0767 17.793 +120.997 17.8085 18.5556 +120.768 18.539 19.3166 +121.309 19.3926 20.2061 +120.866 20.0926 20.9354 +121.287 20.9393 21.8177 +120.244 21.5328 22.436 +120.548 22.366 23.3043 +121.032 23.2416 24.2166 +120.927 24.0103 25.0175 +121.291 24.8777 25.9213 +121.164 25.6502 26.7262 +121.313 26.4855 27.5965 +120.974 27.2175 28.3593 +121.385 28.1232 29.303 +121.877 29.0585 30.2775 +121.789 29.8632 31.1159 +121.314 30.5743 31.8569 +121.018 31.3304 32.6447 +120.619 32.0605 33.4054 +120.768 32.9404 34.3222 +120.441 33.6948 35.1083 +120.659 34.6068 36.0585 +120.218 35.3346 36.8168 +119.86 36.0872 37.6011 +120.223 37.0636 38.6184 +120.752 38.1045 39.703 +120.267 38.8327 40.4617 +120.766 39.8859 41.559 +121.517 41.039 42.7606 +121.174 41.8335 43.5884 +121.533 42.8785 44.6772 +119.569 43.0997 44.9077 +116.108 42.7478 44.541 +113.543 42.6878 44.4785 +110.115 42.2644 44.0374 +109.143 42.7577 44.5514 +105.742 42.2731 44.0464 +104.429 42.5941 44.3809 +100.889 41.9754 43.7362 +99.8442 42.3663 44.1435 +97.1863 42.0506 43.8146 +95.4719 42.1154 43.8821 +95.6923 43.0301 44.8352 +95.2298 43.645 45.4758 +95.9196 44.7995 46.6788 +96.5052 45.9265 47.8531 +96.4961 46.7859 48.7485 +95.9028 47.3672 49.3542 +95.7876 48.1891 50.2106 +96.4628 49.425 51.4984 +96.3953 50.2978 52.4077 +95.9164 50.9627 53.1005 +95.9797 51.924 54.1021 +95.8695 52.8036 55.0187 +95.8221 53.7296 55.9835 +95.8358 54.7029 56.9977 +95.9854 55.7695 58.109 +95.7351 56.6172 58.9923 +95.6217 57.557 59.9715 +95.6416 58.5914 61.0493 +95.7171 59.6767 62.1801 +95.6249 60.6738 63.2191 +95.5148 61.6744 64.2616 +94.6614 62.2016 64.8109 +94.3054 63.0598 65.7051 +93.0079 63.2875 65.9424 +92.9845 64.3856 67.0866 +92.8705 65.439 68.1841 +95.1682 68.2391 71.1017 +95.2683 69.5148 72.4309 +95.6162 70.9994 73.9778 +95.2582 71.9827 75.0023 +94.9496 73.0186 76.0816 +95.1522 74.4713 77.5953 +95.391 75.9843 79.1717 +95.0142 77.0312 80.2626 +95.1326 78.5047 81.7979 +94.5212 79.3966 82.7272 +94.5239 80.8258 84.2163 +94.6845 82.4239 85.8815 +94.5656 83.8108 87.3266 +94.6624 85.4228 89.0062 +94.3646 86.7108 90.3482 +93.982 87.9454 91.6346 +94.3983 89.9666 93.7406 +94.3642 91.6049 95.4476 +94.1239 93.0791 96.9837 +94.0234 94.7285 98.7022 +93.7766 96.2691 100.308 +93.9397 98.2751 102.398 +93.8413 100.059 104.256 +93.5976 101.732 105.999 +93.4248 103.527 107.869 +93.684 105.858 110.299 +93.7369 108.022 112.554 +93.9454 110.435 115.068 +93.4 112.018 116.717 +93.5112 114.446 119.247 +93.3743 116.642 121.535 +93.2845 118.966 123.957 +93.5187 121.787 126.896 +93.5964 124.498 129.72 +93.3858 126.909 132.233 +93.3446 129.638 135.076 +92.9785 132.001 137.539 +93.2057 135.309 140.985 +93.0183 138.125 143.92 +92.9328 141.203 147.126 +92.98 144.605 150.671 +92.9883 148.083 154.295 +92.9159 151.571 157.929 +92.9538 155.389 161.908 +92.7526 158.963 165.631 +92.6149 162.803 169.632 +92.4948 166.847 173.846 +92.3147 170.967 178.139 +92.1402 175.292 182.645 +91.4965 178.91 186.415 +89.6615 180.307 187.871 +87.6713 181.433 189.044 +89.4604 190.649 198.646 +90.8432 199.503 207.872 +89.0564 201.699 210.16 +86.0566 201.167 209.606 +83.6284 201.946 210.418 +80.3586 200.642 209.059 +78.1892 202.056 210.533 +74.9888 200.778 209.201 +72.4798 201.291 209.735 +69.5901 200.711 209.131 +67.2379 201.664 210.123 +64.1743 200.44 208.849 +61.729 201.091 209.527 +58.9531 200.642 209.059 +56.5749 201.534 209.989 +53.7413 200.78 209.202 +51.3651 201.71 210.172 +48.5405 200.852 209.278 +46.023 201.206 209.647 +43.2343 200.312 208.715 +40.8195 201.115 209.551 +38.0745 200.255 208.655 +35.6468 201.027 209.46 +32.9082 199.996 208.386 +30.5641 201.358 209.805 +27.8911 200.57 208.984 +25.3972 201.007 209.439 +22.6825 199.566 207.937 +20.2643 200.662 209.079 +17.6613 199.947 208.335 +15.1984 200.807 209.231 +12.6147 200.062 208.454 +10.1278 200.822 209.246 +7.54158 199.422 207.787 +5.0612 200.775 209.198 +2.51586 199.621 207.995 +1.69864e-14 200.252 208.652 +-2.50888 199.067 207.418 +-5.05247 200.429 208.837 +-7.55467 199.768 208.148 +-10.1034 200.338 208.742 +-12.5624 199.231 207.589 +-15.1565 200.254 208.654 +-17.6247 199.533 207.903 +-20.1945 199.972 208.36 +-22.659 199.359 207.722 +-25.3187 200.387 208.793 +-27.6803 199.054 207.404 +-30.3446 199.913 208.299 +-32.7837 199.24 207.598 +-35.5005 200.203 208.601 +-37.8004 198.813 207.153 +-40.5411 199.743 208.122 +-42.9239 198.874 207.217 +-45.6789 199.701 208.079 +-47.9793 198.53 206.858 +-50.74 199.256 207.614 +-53.1034 198.396 206.719 +-55.907 199.156 207.51 +-58.2952 198.403 206.726 +-61.126 199.127 207.48 +-63.5034 198.344 206.665 +-66.3156 198.898 207.241 +-68.6329 197.951 206.255 +-71.6815 199.074 207.425 +-74.0123 198.164 206.476 +-76.921 198.779 207.118 +-79.2362 197.84 206.139 +-82.1675 198.418 206.742 +-84.665 197.914 206.217 +-87.6823 198.587 206.918 +-90.2117 198.116 206.427 +-93.4467 199.143 207.497 +-95.6674 197.981 206.286 +-98.6797 198.443 206.767 +-101.21 197.904 206.206 +-104.521 198.846 207.188 +-106.673 197.558 205.846 +-110.306 198.975 207.322 +-112.516 197.785 206.082 +-115.941 198.703 207.038 +-118.517 198.123 206.434 +-121.635 198.419 206.743 +-124.051 197.549 205.836 +-127.634 198.501 206.828 +-130.131 197.722 206.016 +-135.703 201.509 209.962 +-138.409 200.931 209.36 +-142.427 202.203 210.685 +-143.096 198.732 207.069 +-143.007 194.343 202.496 +-143.465 190.831 198.836 +-147.085 191.546 199.581 +-150.305 191.684 199.725 +-1588.48 1984.3 2067.54 +-480.753 588.381 613.063 +-483.15 579.457 603.764 +-487.034 572.518 596.534 +-488.565 563.024 586.643 +-492.821 556.862 580.222 +-495.369 548.931 571.958 +-498.936 542.296 565.045 +-501.122 534.324 556.739 +-504.636 527.927 550.073 +-506.573 520.035 541.85 +-510.672 514.501 536.084 +-513.121 507.425 528.711 +-516.768 501.655 522.699 +-519.191 494.817 515.574 +-522.73 489.156 509.675 +-525.565 482.937 503.196 +-528.953 477.326 497.349 +-531.562 471.11 490.873 +-535.425 466.092 485.644 +-537.691 459.772 479.059 +-142.736 119.897 124.927 +-142.699 117.757 122.697 +-142.879 115.837 120.696 +-143.808 114.551 119.356 +-142.596 111.603 116.285 +-142.324 109.451 114.042 +-145.319 109.812 114.418 +-148.812 110.499 115.135 +-157.151 114.669 119.479 +-157.34 112.818 117.551 +-158.265 111.518 116.196 +-159.382 110.362 114.991 +-161.266 109.734 114.337 +-162.93 108.948 113.518 +-586.973 385.698 401.877 +-589.325 380.53 396.493 +-593.14 376.346 392.134 +-595.408 371.219 386.791 +-600.063 367.607 383.028 +-602.636 362.741 377.957 +-606.5 358.681 373.727 +-608.622 353.623 368.457 +-612.593 349.667 364.335 +-615.577 345.168 359.648 +-619.904 341.435 355.758 +-622.056 336.525 350.642 +-627.304 333.302 347.283 +-629.325 328.373 342.148 +-633.118 324.393 338.001 +-636.777 320.352 333.79 +-2667.45 1317.47 1372.74 +-387.295 187.779 195.656 +-382.23 181.902 189.532 +-2716.34 1268.68 1321.9 +-380.502 174.389 181.704 +-381.344 171.479 178.673 +-383.49 169.169 176.265 +-383.063 165.744 172.697 +-387.184 164.292 171.184 +-135.175 56.2405 58.5998 +-137.602 56.1245 58.4789 +-382.956 153.097 159.519 +-381.999 149.652 155.93 +-381.859 146.566 152.714 +-381.495 143.427 149.444 +-383.288 141.117 147.036 +-115.578 41.6609 43.4085 +-113.871 40.175 41.8603 +-112.493 38.8366 40.4658 +-111.54 37.6697 39.2499 +-110.928 36.6366 38.1734 +-110.207 35.5845 37.0772 +-109.286 34.4865 35.9331 +-109.9 33.8811 35.3024 +-108.855 32.7739 34.1488 +-109.816 32.2773 33.6313 +-109.018 31.268 32.5796 +-109.408 30.6081 31.8921 +-109.696 29.9204 31.1756 +-109.322 29.0579 30.2769 +-109.965 28.4689 29.6632 +-110.32 27.8034 28.9698 +-110.195 27.0202 28.1536 +-110.72 26.3984 27.5057 +-111.902 25.926 27.0136 +-111.654 25.1205 26.1743 +-113.206 24.7156 25.7524 +-113.322 23.9901 24.9964 +-115.154 23.6191 24.6099 +-115.64 22.9606 23.9237 +-117.081 22.483 23.4261 +-119.485 22.1689 23.0989 +-147.836 26.4738 27.5844 +-160.972 27.7907 28.9565 +-161.413 26.8331 27.9588 +-162.233 25.9347 27.0226 +-163.725 25.1332 26.1875 +-164.72 24.2437 25.2607 +-859.198 121.042 126.119 +-864.814 116.4 121.283 +-382.879 49.1369 51.1981 +-381.022 46.5208 48.4723 +-382.679 44.3424 46.2026 +-379.667 41.6384 43.3851 +-406.584 42.0753 43.8404 +-405.02 39.4146 41.068 +-406.393 37.0471 38.6012 +-404.76 34.4128 35.8564 +-404.881 31.9422 33.2821 +-404.572 29.4438 30.679 +-404.23 26.9516 28.0822 +-404.654 24.514 25.5424 +-403.752 22.0027 22.9257 +-404.612 19.5912 20.413 +-404.444 17.1287 17.8472 +-404.345 14.6732 15.2888 +-404.415 12.2264 12.7393 +-403.754 9.76291 10.1725 +-147.749 2.67899 2.79137 +-145.778 1.76194 1.83585 +-146.794 0.88705 0.924261 +120.1 6.21725e-15 5.68434e-14 +119.995 0.73189 0.748948 +119.982 1.46373 1.49785 +120.759 2.21009 2.26161 +120.726 2.94653 3.0152 +119.686 3.65225 3.73738 +120.335 4.40769 4.51043 +120.275 5.14146 5.2613 +120.306 5.87971 6.01675 +120.926 6.65163 6.80667 +120.639 7.37677 7.5487 +120.542 8.11223 8.30131 +121.133 8.8983 9.1057 +121.017 9.63678 9.86139 +121.488 10.4256 10.6686 +121.254 11.1571 11.4171 +121.11 11.8962 12.1734 +120.66 12.6033 12.8971 +121.288 13.4263 13.7392 +120.623 14.1078 14.4366 +121.033 14.9158 15.2635 +120.449 15.6025 15.9662 +120.544 16.3765 16.7582 +120.433 17.125 17.5242 +120.997 17.9752 18.3941 +120.67 18.6973 19.1331 +120.432 19.4326 19.8856 +120.866 20.2806 20.7533 +120.608 21.017 21.5069 +120.922 21.8568 22.3662 +120.451 22.5573 23.083 +121.225 23.4965 24.0442 +120.734 24.1965 24.7605 +120.715 24.9914 25.5739 +121.259 25.9107 26.5146 +121.313 26.7333 27.3564 +121.735 27.645 28.2894 +121.196 28.342 29.0026 +121.594 29.2622 29.9443 +121.224 30.0027 30.702 +120.375 30.6214 31.3351 +121.299 31.6971 32.4359 +120.712 32.3856 33.1405 +120.675 33.2231 33.9974 +121.09 34.1934 34.9904 +120.659 34.9307 35.7449 +120.218 35.6653 36.4966 +120.593 36.6479 37.5021 +120.223 37.4105 38.2824 +120.57 38.4032 39.2983 +120.267 39.1961 40.1097 +120.676 40.229 41.1667 +120.259 40.9942 41.9497 +121.174 42.2251 43.2093 +121.088 43.1212 44.1262 +119.569 43.503 44.517 +117.52 43.6729 44.6908 +115.125 43.6876 44.7059 +111.864 43.3377 44.3479 +109.665 43.3644 44.3752 +107.127 43.2279 44.2354 +105.205 43.312 44.3215 +102.517 43.0522 44.0556 +100.526 43.055 44.0585 +97.8648 42.7405 43.7367 +96.231 42.8476 43.8463 +95.3568 43.2806 44.2894 +95.3131 44.092 45.1197 +95.2564 44.9062 45.9528 +95.1042 45.6834 46.7482 +96.4142 47.1837 48.2834 +95.4143 47.567 48.6757 +96.4348 48.9688 50.1101 +96.4628 49.8876 51.0504 +95.8363 50.4741 51.6505 +95.7577 51.3545 52.5515 +95.9797 52.4099 53.6315 +95.8695 53.2978 54.5401 +95.8221 54.2324 55.4965 +95.8358 55.2149 56.5018 +95.8322 56.2016 57.5116 +95.7351 57.1471 58.4791 +95.6972 58.1415 59.4967 +95.6416 59.1398 60.5182 +95.5684 60.1418 61.5435 +96.2147 61.6195 63.0557 +95.5879 62.2993 63.7514 +94.0085 62.3507 63.804 +93.3703 63.0188 64.4877 +92.3659 63.4389 64.9175 +93.2674 65.186 66.7053 +93.5013 66.5001 68.05 +94.0567 68.0733 69.66 +95.3371 70.2158 71.8524 +95.0024 71.204 72.8637 +95.3258 72.7081 74.4028 +95.6188 74.2213 75.9512 +95.2185 75.2207 76.9739 +95.2598 76.5899 78.375 +95.0792 77.8053 79.6188 +95.1326 79.2395 81.0864 +95.1573 80.6792 82.5597 +94.5869 81.6367 83.5395 +94.6845 83.1953 85.1344 +94.6887 84.7057 86.68 +94.1754 85.7792 87.7785 +94.6053 87.746 89.7911 +94.6958 89.4429 91.5276 +93.9281 90.3564 92.4624 +94.3642 92.4622 94.6173 +94.0665 93.8929 96.0814 +94.0801 95.6723 97.9023 +93.8326 97.2281 99.4943 +93.9397 99.1949 101.507 +93.7868 100.937 103.289 +93.5439 102.624 105.016 +93.3718 104.436 106.87 +93.6317 106.789 109.278 +93.7369 109.033 111.575 +93.4378 110.866 113.45 +93.45 113.126 115.763 +93.4127 115.395 118.085 +93.3743 117.734 120.478 +93.2368 120.018 122.816 +93.5187 122.927 125.792 +93.6426 125.725 128.655 +93.3404 128.035 131.019 +93.4338 130.976 134.029 +92.9785 133.237 136.342 +92.7751 135.944 139.112 +92.976 139.355 142.603 +93.0157 142.651 145.976 +92.98 145.959 149.361 +92.9484 149.405 152.887 +92.8768 152.925 156.49 +92.8773 156.715 160.368 +92.5278 160.061 163.792 +92.6882 164.457 168.29 +92.4948 168.408 172.334 +92.1746 172.305 176.321 +92.1402 176.932 181.056 +90.8622 179.332 183.512 +90.0522 182.787 187.048 +87.0367 181.805 186.043 +91.4072 196.621 201.204 +90.5726 200.77 205.45 +88.4132 202.117 206.828 +85.4034 201.509 206.206 +82.8566 201.955 206.662 +79.6905 200.837 205.518 +77.3092 201.652 206.352 +74.2877 200.763 205.442 +71.875 201.48 206.176 +68.9364 200.687 205.365 +66.6755 201.849 206.553 +63.7631 201.02 205.705 +61.2716 201.469 206.165 +58.4547 200.808 205.488 +56.0978 201.705 206.407 +53.2492 200.803 205.483 +50.931 201.877 206.583 +47.9463 200.25 204.918 +45.7258 201.777 206.48 +42.8204 200.252 204.919 +40.4437 201.128 205.816 +37.7351 200.328 204.997 +35.3421 201.174 205.863 +32.7044 200.619 205.295 +30.2192 200.949 205.633 +27.6323 200.57 205.245 +25.1706 201.078 205.765 +22.5491 200.249 204.916 +20.0759 200.658 205.335 +17.5148 200.145 204.81 +15.0518 200.733 205.411 +12.5188 200.398 205.069 +10.0441 201.025 205.711 +7.49708 200.101 204.765 +5.01582 200.837 205.518 +2.49317 199.672 204.326 +1.56541e-14 200.309 204.978 +-2.49492 199.812 204.469 +-5.00186 200.278 204.946 +-7.48922 199.891 204.55 +-10.0162 200.466 205.139 +-12.4795 199.769 204.426 +-15.0204 200.314 204.983 +-17.4721 199.656 204.31 +-20.0271 200.17 204.835 +-22.455 199.413 204.061 +-25.0834 200.382 205.053 +-27.5077 199.665 204.319 +-30.1042 200.185 204.85 +-32.4893 199.299 203.944 +-35.2081 200.412 205.083 +-37.5785 199.496 204.146 +-40.2071 199.951 204.612 +-42.5248 198.869 203.504 +-45.2565 199.707 204.361 +-47.5832 198.734 203.366 +-50.4274 199.881 204.54 +-52.6114 198.398 203.022 +-55.4109 199.236 203.88 +-57.9363 199.027 203.666 +-60.5855 199.213 203.856 +-62.8974 198.291 202.912 +-65.7532 199.057 203.696 +-68.2594 198.716 203.348 +-71.125 199.377 204.024 +-73.3864 198.327 202.949 +-76.3257 199.087 203.728 +-78.8086 198.614 203.243 +-81.7265 199.2 203.843 +-83.9549 198.091 202.708 +-86.9513 198.775 203.408 +-89.5502 198.504 203.13 +-92.4888 198.947 203.584 +-94.9376 198.309 202.931 +-97.9635 198.846 203.481 +-100.643 198.636 203.266 +-103.632 199 203.638 +-105.763 197.706 202.314 +-109.338 199.075 203.715 +-111.6 198.011 202.626 +-114.967 198.878 203.514 +-117.446 198.17 202.789 +-120.619 198.604 203.233 +-123.453 198.437 203.062 +-126.576 198.698 203.329 +-129.094 197.982 202.597 +-133.167 199.595 204.247 +-137.419 201.361 206.054 +-141.156 202.274 206.989 +-143.453 201.092 205.779 +-142.962 196.1 200.671 +-142.542 191.377 195.837 +-145.067 190.686 195.13 +-149.398 192.312 196.794 +-157.757 198.912 203.548 +-1613.43 1993.11 2039.56 +-484.4 586.393 600.061 +-487.947 578.96 592.454 +-490.11 570.091 583.378 +-493.761 563.147 576.273 +-496.322 555.135 568.074 +-500.118 548.668 561.457 +-502.266 540.556 553.155 +-505.629 533.917 546.362 +-508.642 527.047 539.331 +-512.314 520.986 533.13 +-514.498 513.548 525.518 +-518.161 507.716 519.55 +-520.425 500.635 512.304 +-524.158 495.083 506.622 +-527.009 488.797 500.189 +-530.657 483.346 494.611 +-533.471 477.227 488.35 +-537.106 471.931 482.931 +-539.391 465.542 476.392 +-142.1 120.48 123.288 +-143.342 119.394 122.177 +-143.593 117.506 120.245 +-143.546 115.412 118.102 +-142.331 112.439 115.059 +-143.261 111.202 113.794 +-148.157 113.004 115.638 +-152.154 114.038 116.696 +-156.945 115.59 118.284 +-157.618 114.075 116.734 +-159.036 113.11 115.747 +-160.16 111.938 114.547 +-162.621 111.691 114.295 +-584.032 394.183 403.371 +-588.351 390.221 399.316 +-590.714 384.997 393.971 +-594.835 380.955 389.834 +-597.191 375.816 384.575 +-601.486 371.927 380.596 +-603.994 366.961 375.514 +-608.249 363.081 371.544 +-610.997 358.325 366.676 +-614.753 354.185 362.44 +-616.976 349.19 357.329 +-621.313 345.413 353.464 +-623.789 340.622 348.561 +-628.019 336.804 344.654 +-631.162 332.414 340.161 +-634.967 328.386 336.04 +-637.505 323.72 331.265 +-2667.45 1329.8 1360.8 +-384.592 188.214 192.6 +-385.032 184.95 189.261 +-381.855 180.015 184.211 +-381.336 176.407 180.518 +-382.182 173.465 177.508 +-382.731 170.414 174.386 +-383.487 167.48 171.384 +-383.432 164.223 168.05 +-134.147 56.335 57.648 +-135.362 55.7275 57.0264 +-384.429 155.124 158.74 +-383.044 151.466 154.996 +-379.672 147.091 150.519 +-382.549 145.169 148.553 +-383.023 142.339 145.656 +-114.602 41.6958 42.6676 +-113.782 40.5193 41.4637 +-112.135 39.0753 39.9861 +-111.45 37.9916 38.8771 +-110.296 36.7689 37.6259 +-110.388 35.9766 36.8151 +-109.286 34.8092 35.6206 +-109.077 33.9424 34.7335 +-108.947 33.1086 33.8803 +-109.448 32.4701 33.2269 +-109.018 31.5606 32.2962 +-109.315 30.8683 31.5878 +-109.51 30.1492 30.8519 +-109.416 29.3549 30.0391 +-110.059 28.7599 29.4303 +-110.226 28.0398 28.6933 +-110.855 27.4364 28.0759 +-111.666 26.873 27.4993 +-111.238 26.0135 26.6198 +-112.32 25.5068 26.1013 +-113.015 24.9048 25.4853 +-114.278 24.419 24.9881 +-114.771 23.7607 24.3145 +-116.12 23.2718 23.8142 +-117.659 22.8054 23.337 +-120.644 22.5935 23.1201 +-159.938 28.9091 29.5829 +-160.584 27.9832 28.6354 +-162.094 27.1985 27.8324 +-164.084 26.4761 27.0933 +-164.701 25.5198 26.1146 +-164.916 24.4997 25.0707 +-860.668 122.383 125.236 +-866.973 117.783 120.528 +-383.863 49.7241 50.883 +-381.613 47.0291 48.1252 +-380.903 44.5498 45.5882 +-379.766 42.0391 43.0189 +-404.409 42.2419 43.2265 +-404.525 39.7348 40.661 +-405.501 37.3117 38.1814 +-404.463 34.7094 35.5184 +-404.881 32.2411 32.9926 +-405.268 29.7705 30.4644 +-405.624 27.2976 27.9338 +-405.949 24.8227 25.4012 +-404.25 22.2361 22.7544 +-404.911 19.7892 20.2505 +-403.546 17.2505 17.6526 +-404.046 14.7996 15.1445 +-404.215 12.3347 12.6222 +-403.754 9.85428 10.084 +-147.849 2.7059 2.76897 +-143.678 1.75282 1.79367 +-146.294 0.892297 0.913095 +120.1 6.21725e-15 5.68434e-14 +119.995 0.738616 0.742315 +120.882 1.48826 1.49572 +120.759 2.23041 2.24158 +119.827 2.95145 2.96623 +120.585 3.71351 3.7321 +120.335 4.4482 4.47048 +120.076 5.1801 5.20605 +120.406 5.93868 5.96841 +120.926 6.71277 6.74639 +120.639 7.44457 7.48185 +120.443 8.18002 8.22099 +121.232 8.98742 9.03243 +120.918 9.71731 9.76597 +120.594 10.444 10.4963 +121.155 11.2504 11.3067 +121.011 11.9957 12.0558 +121.55 12.813 12.8772 +121.189 13.5386 13.6064 +120.721 14.2491 14.3205 +120.344 14.9671 15.0421 +120.744 15.7844 15.8635 +121.427 16.6482 16.7315 +120.335 17.2684 17.3549 +120.997 18.1404 18.2312 +120.768 18.8845 18.979 +120.432 19.6112 19.7094 +120.866 20.467 20.5695 +121.287 21.3296 21.4364 +121.018 22.0753 22.1859 +120.548 22.7829 22.8969 +121.225 23.7125 23.8312 +120.831 24.4383 24.5607 +120.524 25.1811 25.3072 +121.164 26.1282 26.259 +121.027 26.9154 27.0502 +120.879 27.7029 27.8417 +121.385 28.6473 28.7908 +121.688 29.5541 29.7021 +120.941 30.2078 30.3591 +121.126 31.0958 31.2516 +120.737 31.8402 31.9996 +120.432 32.6074 32.7707 +120.768 33.5543 33.7223 +120.256 34.2699 34.4415 +120.104 35.0897 35.2655 +120.402 36.0482 36.2287 +120.685 37.0129 37.1983 +120.405 37.8117 38.0011 +120.843 38.8439 39.0384 +120.267 39.5564 39.7545 +120.676 40.5988 40.8021 +121.068 41.6493 41.8578 +120.816 42.4873 42.7 +121.711 43.7416 43.9607 +121.254 44.5217 44.7446 +118.138 44.3061 44.5279 +116.355 44.5603 44.7835 +112.738 44.078 44.2987 +110.448 44.0755 44.2963 +107.647 43.8368 44.0563 +106.325 44.1755 44.3967 +103.289 43.7748 43.994 +101.89 44.0403 44.2609 +99.1368 43.694 43.9128 +97.1587 43.6583 43.8769 +95.1891 43.6016 43.8199 +95.063 44.3805 44.6027 +95.4222 45.3978 45.6251 +95.4338 46.263 46.4947 +96.1684 47.496 47.7339 +96.147 48.3728 48.6151 +96.6775 49.5432 49.7913 +96.5432 50.3881 50.6404 +95.8363 50.938 51.1931 +95.9164 51.9124 52.1724 +95.8221 52.8047 53.0692 +95.8695 53.7877 54.0571 +95.8221 54.7309 55.005 +95.8358 55.7224 56.0014 +95.8322 56.7182 57.0022 +95.7351 57.6724 57.9612 +95.6972 58.6759 58.9697 +95.6416 59.6833 59.9822 +95.5684 60.6945 60.9985 +96.2147 62.1858 62.4972 +95.6611 62.92 63.2351 +93.8634 62.8267 63.1413 +93.0826 63.402 63.7195 +93.1505 64.5658 64.8891 +93.0553 65.6355 65.9642 +93.6415 67.2119 67.5485 +93.2926 68.1409 68.4821 +94.7864 70.4521 70.8049 +95.548 72.2711 72.633 +95.1907 73.272 73.6389 +94.9496 74.3794 74.7518 +95.2185 75.9121 76.2922 +95.4566 77.4532 77.8411 +95.0142 78.4668 78.8597 +95.1968 80.0214 80.4221 +95.2209 81.4751 81.8831 +94.7127 82.4964 82.9095 +94.56 83.8492 84.2691 +94.8734 85.6507 86.0796 +94.1145 86.5112 86.9444 +94.5451 88.496 88.9392 +94.5768 90.1514 90.6029 +94.3983 91.6432 92.1021 +94.3062 93.2542 93.7212 +94.1239 94.8137 95.2885 +93.9668 96.436 96.9189 +93.7766 98.0632 98.5543 +93.5533 99.6954 100.195 +93.7324 101.805 102.315 +93.4901 103.508 104.027 +93.4778 105.516 106.044 +93.684 107.831 108.371 +93.7369 110.036 110.587 +93.9454 112.493 113.056 +93.3 113.983 114.553 +93.4127 116.456 117.039 +93.4228 118.877 119.472 +93.2845 121.184 121.79 +93.5187 124.057 124.678 +93.227 126.317 126.95 +93.3858 129.274 129.922 +93.4338 132.18 132.842 +92.9347 134.398 135.071 +93.1626 137.766 138.456 +92.8492 140.444 141.147 +92.9328 143.834 144.554 +92.98 147.3 148.038 +92.9883 150.842 151.598 +92.9159 154.396 155.169 +92.839 158.09 158.881 +92.7526 161.925 162.736 +92.6515 165.903 166.733 +92.4589 169.891 170.741 +92.1746 173.889 174.759 +92.1744 178.625 179.519 +90.0945 179.452 180.35 +89.2382 182.8 183.716 +87.7347 184.948 185.874 +91.2527 198.092 199.084 +90.0012 201.337 202.345 +87.653 202.221 203.233 +84.4946 201.197 202.205 +82.1951 202.184 203.196 +79.2896 201.663 202.672 +76.8175 202.211 203.224 +73.8621 201.448 202.456 +71.4153 202.031 203.043 +68.5862 201.503 202.512 +66.0906 201.917 202.928 +63.222 201.146 202.153 +60.9181 202.148 203.16 +58.036 201.202 202.21 +55.6017 201.759 202.77 +52.9212 201.4 202.409 +50.4448 201.788 202.799 +47.6823 200.978 201.984 +45.3191 201.821 202.831 +42.5839 200.976 201.982 +40.2071 201.789 202.799 +37.4871 200.84 201.846 +35.0009 201.063 202.07 +32.3988 200.57 201.574 +30.1042 202.024 203.036 +27.4406 201.009 202.015 +24.9963 201.522 202.531 +22.3373 200.191 201.193 +19.9434 201.165 202.173 +17.3927 200.576 201.581 +14.9576 201.309 202.317 +12.3923 200.196 201.199 +9.94636 200.899 201.905 +7.44734 200.6 201.605 +4.97219 200.921 201.927 +2.47834 200.308 201.311 +1.64313e-14 200.951 201.957 +-2.48008 200.449 201.453 +-4.96172 200.497 201.501 +-7.44211 200.459 201.463 +-9.92542 200.476 201.48 +-12.4141 200.548 201.552 +-14.9419 201.098 202.105 +-17.3622 200.224 201.227 +-19.9015 200.743 201.748 +-22.3138 199.98 200.981 +-24.8655 200.467 201.471 +-27.3448 200.307 201.31 +-29.8847 200.552 201.556 +-32.2856 199.87 200.871 +-34.8668 200.293 201.296 +-37.2261 199.442 200.44 +-39.9566 200.532 201.536 +-42.2883 199.58 200.58 +-44.8498 199.731 200.731 +-47.1541 198.752 199.747 +-50.0628 200.26 201.263 +-52.2651 198.904 199.9 +-54.9148 199.267 200.264 +-57.418 199.059 200.056 +-60.0657 199.319 200.318 +-62.5294 198.942 199.938 +-65.3708 199.718 200.718 +-67.8626 199.377 200.375 +-70.5202 199.499 200.498 +-72.9858 199.057 200.054 +-75.8599 199.691 200.69 +-78.1405 198.74 199.736 +-81.0374 199.336 200.335 +-83.5005 198.83 199.826 +-86.4836 199.523 200.522 +-88.9488 198.982 199.979 +-91.9326 199.568 200.567 +-94.1126 198.393 199.386 +-97.3774 199.473 200.472 +-99.7415 198.666 199.661 +-102.914 199.437 200.436 +-105.167 198.4 199.393 +-108.478 199.325 200.323 +-110.94 198.649 199.644 +-114.068 199.136 200.133 +-116.527 198.427 199.42 +-119.954 199.325 200.323 +-122.456 198.644 199.639 +-125.56 198.913 199.909 +-128.389 198.711 199.706 +-131.35 198.68 199.675 +-136.386 201.684 202.694 +-140.279 202.865 203.881 +-143.096 202.436 203.449 +-143.007 197.965 198.957 +-142.68 193.323 194.292 +-144.409 191.566 192.526 +-147.967 192.22 193.182 +-155.333 197.656 198.645 +-483.018 602.17 605.186 +-485.25 592.822 595.79 +-489.368 585.983 588.918 +-491.346 576.782 579.67 +-495.329 570.127 572.982 +-497.7 561.793 564.606 +-500.71 554.365 557.141 +-503.846 547.24 549.98 +-507.009 540.295 543.001 +-510.152 533.469 536.141 +-513.107 526.589 529.226 +-516.104 519.886 522.489 +-519.787 513.991 516.565 +-521.483 506.264 508.799 +-525.407 500.824 503.331 +-528.333 494.528 497.005 +-531.814 488.851 491.299 +-534.579 482.614 485.031 +-537.666 476.766 479.153 +-540.523 470.807 473.165 +-142.863 122.24 122.852 +-143.406 120.546 121.15 +-143.463 118.479 119.072 +-142.562 115.674 116.253 +-142.728 113.789 114.359 +-143.261 112.224 112.786 +-149.035 114.718 115.293 +-156.382 118.285 118.877 +-157.151 116.806 117.391 +-157.896 115.327 115.905 +-159.387 114.401 114.974 +-161.079 113.615 114.184 +-162.478 112.619 113.183 +-585.902 399.08 401.078 +-589.294 394.439 396.414 +-592.47 389.69 391.642 +-596.9 385.791 387.722 +-598.529 380.12 382.023 +-603.509 376.608 378.494 +-605.428 371.213 373.072 +-609.694 367.289 369.128 +-612.07 362.253 364.067 +-616.142 358.247 360.041 +-618.453 353.243 355.012 +-622.487 349.247 350.996 +-625.602 344.751 346.478 +-629.843 340.887 342.594 +-631.88 335.851 337.533 +-636.735 332.327 333.991 +-639.366 327.649 329.29 +-643.395 323.701 325.322 +-385.329 190.307 191.26 +-383.548 185.931 186.862 +-384.259 182.814 183.729 +-378.584 176.743 177.628 +-660.537 302.561 304.076 +-381.888 171.601 172.46 +-385.099 169.73 170.58 +-383.603 165.805 166.636 +-2808.51 1190.27 1196.23 +-134.759 55.9891 56.2694 +-2837.53 1155.52 1161.31 +-381.738 152.337 153.1 +-379.672 148.443 149.186 +-380.967 145.898 146.628 +-383.288 143.747 144.466 +-114.868 42.1767 42.3879 +-113.514 40.7957 40.9999 +-111.509 39.2141 39.4105 +-110.821 38.1244 38.3153 +-111.108 37.38 37.5672 +-109.663 36.0688 36.2494 +-109.468 35.1876 35.3639 +-109.169 34.283 34.4547 +-109.13 33.4691 33.6367 +-109.448 32.7685 32.9326 +-110.034 32.1476 32.3086 +-109.408 31.1785 31.3346 +-109.51 30.4263 30.5787 +-109.509 29.65 29.7985 +-110.059 29.0243 29.1696 +-110.038 28.2492 28.3907 +-110.76 27.665 27.8035 +-110.909 26.9362 27.0711 +-111.333 26.275 26.4066 +-111.559 25.5669 25.6949 +-113.111 25.155 25.2809 +-113.513 24.4784 24.601 +-114.867 23.9991 24.1193 +-115.928 23.4468 23.5642 +-118.334 23.147 23.2629 +-121.127 22.8924 23.007 +-161.003 29.369 29.5161 +-159.905 28.1209 28.2618 +-162.386 27.4979 27.6356 +-162.525 26.4656 26.5981 +-162.456 25.4032 25.5304 +-854.216 128.068 128.709 +-861.55 123.635 124.254 +-868.151 119.027 119.623 +-380.913 49.7955 50.0448 +-381.318 47.4246 47.6621 +-380.41 44.9011 45.1259 +-383.322 42.8227 43.0371 +-404.507 42.6405 42.8541 +-405.02 40.1491 40.3502 +-405.005 37.6086 37.7969 +-404.463 35.0284 35.2038 +-404.483 32.5055 32.6683 +-404.373 29.9778 30.1279 +-404.728 27.4877 27.6253 +-405.551 25.0262 25.1515 +-404.848 22.4736 22.5862 +-404.213 19.9366 20.0364 +-405.043 17.4737 17.5612 +-404.645 14.9578 15.0327 +-404.814 12.4666 12.529 +-404.254 9.95712 10.007 +-147.25 2.71969 2.73331 +-145.978 1.79724 1.80624 +-146.794 0.903581 0.908106 +120.3 5.77316e-15 5.68434e-14 +119.995 0.745283 0.735622 +119.982 1.49052 1.47119 +119.859 2.23377 2.20481 +120.726 3.00045 2.96155 +120.585 3.74703 3.69845 +120.335 4.48835 4.43017 +120.076 5.22686 5.1591 +121.104 6.02703 5.9489 +120.926 6.77336 6.68555 +120.639 7.51176 7.41438 +120.542 8.26069 8.1536 +121.232 9.06854 8.95098 +120.918 9.80502 9.67791 +120.594 10.5383 10.4017 +121.155 11.3519 11.2047 +121.011 12.104 11.9471 +121.55 12.9287 12.7611 +121.189 13.6608 13.4837 +120.721 14.3777 14.1913 +121.23 15.2135 15.0163 +120.645 15.9139 15.7076 +121.329 16.7848 16.5673 +120.335 17.4242 17.1984 +120.997 18.3041 18.0668 +120.67 19.0395 18.7926 +120.432 19.7882 19.5317 +120.866 20.6518 20.384 +120.414 21.3672 21.0902 +120.922 22.2568 21.9683 +120.451 22.9701 22.6723 +121.128 23.9075 23.5976 +120.831 24.6589 24.3392 +120.62 25.4286 25.0989 +121.068 26.3433 26.0018 +120.931 27.137 26.7852 +120.879 27.953 27.5906 +121.385 28.9059 28.5312 +121.026 29.6587 29.2742 +121.789 30.6943 30.2964 +121.408 31.4495 31.0418 +121.393 32.3021 31.8833 +120.619 32.9527 32.5255 +120.675 33.831 33.3925 +120.256 34.5792 34.131 +120.659 35.5699 35.1088 +121.046 36.5682 36.0941 +120.777 37.3754 36.8909 +120.405 38.153 37.6584 +120.661 39.1354 38.6281 +120.267 39.9134 39.396 +120.585 40.9346 40.404 +120.888 41.9628 41.4188 +120.727 42.839 42.2837 +121.444 44.0395 43.4686 +121.166 44.8907 44.3088 +119.286 45.1403 44.5551 +116.619 45.0644 44.4802 +113.788 44.8899 44.3079 +111.318 44.8239 44.2428 +108.513 44.5883 44.0103 +106.497 44.6465 44.0677 +103.974 44.4631 43.8867 +101.976 44.475 43.8984 +99.9001 44.4278 43.8519 +97.8334 44.3583 43.7832 +94.9375 43.8788 43.31 +95.4799 44.9775 44.3944 +95.3393 45.7677 45.1744 +95.3514 46.6403 46.0357 +95.9227 47.8022 47.1825 +96.3913 48.9334 48.2991 +94.9786 49.1119 48.4752 +95.9001 50.5043 49.8496 +95.8363 51.3978 50.7315 +95.9958 52.4243 51.7446 +95.9797 53.369 52.6772 +96.026 54.3618 53.6571 +95.8221 55.2249 54.509 +95.8358 56.2253 55.4964 +95.9854 57.3216 56.5785 +95.7351 58.1929 57.4385 +95.6972 59.2055 58.438 +95.5667 60.1749 59.3948 +95.5684 61.2423 60.4484 +95.6986 62.4105 61.6015 +95.6611 63.4879 62.6649 +94.2261 63.6387 62.8137 +93.2264 64.0732 63.2425 +93.1505 65.1485 64.304 +93.126 66.2782 65.419 +92.9406 67.3109 66.4383 +93.0842 68.6023 67.713 +94.9929 71.2431 70.3195 +95.6162 72.9754 72.0293 +95.2582 73.986 73.0269 +95.5519 75.5268 74.5477 +95.2185 76.5972 75.6043 +95.3254 78.0448 77.0331 +95.0792 79.2291 78.202 +94.6183 80.2533 79.2129 +95.1573 82.1557 81.0906 +94.7757 83.2965 82.2167 +94.56 84.6061 83.5093 +94.7503 86.312 85.1931 +94.1145 87.292 86.1604 +93.9433 88.7261 87.5759 +94.3984 90.7936 89.6166 +93.8693 91.9523 90.7602 +94.3642 94.1543 92.9337 +94.0665 95.6111 94.3717 +93.8535 97.189 95.9291 +93.7207 98.8893 97.6073 +94.0501 101.129 99.818 +93.7868 102.784 101.451 +93.5976 104.563 103.207 +93.9017 106.951 105.564 +93.6317 108.744 107.334 +93.8399 111.151 109.71 +93.3871 112.834 111.371 +93.45 115.197 113.703 +93.5112 117.631 116.106 +93.4228 119.95 118.395 +93.3323 122.34 120.754 +93.0493 124.548 122.934 +93.5964 127.962 126.304 +93.3404 130.378 128.688 +93.3446 133.245 131.518 +93.3292 136.187 134.421 +93.0765 138.881 137.081 +93.2296 142.292 140.447 +93.306 145.715 143.826 +92.98 148.63 146.703 +92.9883 152.204 150.231 +92.9159 155.789 153.77 +92.5711 159.056 156.994 +92.7526 163.387 161.269 +92.3583 166.87 164.707 +92.4589 171.424 169.202 +92.2446 175.591 173.315 +92.0034 179.903 177.57 +89.7273 180.333 177.995 +88.9452 183.845 181.461 +88.3376 187.899 185.463 +91.2218 199.813 197.222 +89.881 202.883 200.253 +87.3607 203.365 200.729 +84.381 202.74 200.112 +81.754 202.914 200.284 +78.8888 202.454 199.83 +76.2481 202.524 199.899 +73.4865 202.232 199.61 +71.0041 202.681 200.053 +68.166 202.076 199.456 +65.7082 202.56 199.935 +63.0489 202.405 199.781 +60.5855 202.859 200.229 +57.717 201.902 199.285 +55.2201 202.183 199.562 +52.6114 202.029 199.41 +50.1322 202.348 199.724 +47.5337 202.16 199.539 +45.0375 202.377 199.753 +42.4509 202.156 199.536 +39.9427 202.272 199.649 +37.3827 202.089 199.469 +34.9156 202.383 199.76 +32.3195 201.886 199.269 +29.8638 202.22 199.599 +27.2873 201.689 199.075 +24.8655 202.276 199.654 +22.251 201.217 198.609 +19.8318 201.844 199.228 +17.35 201.889 199.272 +14.8372 201.491 198.879 +12.3574 201.434 198.823 +9.88703 201.503 198.891 +7.40284 201.201 198.593 +4.93903 201.382 198.771 +2.47048 201.476 198.864 +1.60982e-14 201.412 198.801 +-2.46961 201.405 198.794 +-4.94427 201.595 198.982 +-7.40022 201.13 198.523 +-9.89052 201.574 198.961 +-12.3399 201.15 198.542 +-14.8425 201.563 198.95 +-17.2462 200.682 198.08 +-19.776 201.277 198.667 +-22.251 201.217 198.609 +-24.7784 201.568 198.955 +-27.1627 200.768 198.166 +-29.6965 201.088 198.481 +-32.0818 200.4 197.803 +-34.6596 200.9 198.296 +-37.1216 200.677 198.076 +-39.72 201.144 198.537 +-42.1552 200.748 198.146 +-44.5838 200.339 197.741 +-47.0221 199.984 197.392 +-49.6113 200.245 197.649 +-52.1376 200.209 197.614 +-54.7431 200.437 197.838 +-57.099 199.74 197.151 +-59.8994 200.561 197.961 +-62.1615 199.556 196.969 +-64.8309 199.856 197.265 +-67.4891 200.069 197.475 +-70.0848 200.057 197.463 +-72.7855 200.303 197.706 +-75.4716 200.462 197.863 +-77.9534 200.054 197.46 +-80.8169 200.588 197.988 +-83.2449 200.01 197.418 +-86.045 200.302 197.706 +-88.5278 199.828 197.238 +-91.469 200.354 197.757 +-93.827 199.576 196.988 +-96.8565 200.197 197.602 +-99.3743 199.721 197.132 +-102.161 199.766 197.176 +-104.922 199.724 197.134 +-107.94 200.127 197.533 +-110.317 199.317 196.733 +-113.393 199.746 197.157 +-116.221 199.692 197.103 +-119.251 199.945 197.353 +-121.658 199.131 196.55 +-125.194 200.124 197.529 +-127.643 199.339 196.754 +-130.843 199.699 197.111 +-135.611 202.348 199.724 +-139.051 202.905 200.275 +-142.292 203.117 200.484 +-143.143 199.942 197.35 +-143.142 195.7 193.163 +-143.799 192.478 189.983 +-147.013 192.704 190.206 +-150.873 193.713 191.202 +-483.905 608.72 600.829 +-486.35 599.528 591.756 +-489.825 591.824 584.152 +-492.788 583.696 576.129 +-495.799 575.819 568.354 +-498.177 567.407 560.051 +-501.784 560.569 553.302 +-504.336 552.716 545.551 +-508.003 546.24 539.159 +-510.711 538.874 531.889 +-513.9 532.163 525.264 +-516.62 525.103 518.296 +-519.961 518.804 512.078 +-523.07 512.388 505.745 +-526.299 506.202 499.64 +-529.236 499.845 493.365 +-532.91 494.28 487.873 +-535.749 488.035 481.709 +-539.222 482.461 476.207 +-142.101 124.89 123.271 +-142.927 123.398 121.799 +-142.827 121.143 119.572 +-144.048 120.035 118.479 +-142.758 116.88 115.365 +-143.06 115.083 113.591 +-144.666 114.348 112.866 +-150.521 116.908 115.393 +-156.996 119.821 118.268 +-157.564 118.17 116.638 +-158.243 116.624 115.112 +-159.387 115.434 113.937 +-161.786 115.144 113.651 +-583.867 408.351 403.057 +-586.837 403.325 398.096 +-590.382 398.734 393.565 +-592.982 393.547 388.445 +-596.9 389.273 384.226 +-599.941 384.455 379.471 +-603.209 379.818 374.895 +-607.164 375.637 370.767 +-610.378 371.02 366.211 +-613.755 366.529 361.777 +-617.531 362.296 357.599 +-619.852 357.237 352.606 +-624.208 353.374 348.793 +-627.099 348.695 344.174 +-630.637 344.397 339.932 +-633.637 339.825 335.419 +-637.458 335.707 331.355 +-640.822 331.359 327.063 +-644.128 326.994 322.755 +-383.855 191.291 188.811 +-382.724 187.206 184.779 +-382.518 183.628 181.248 +-380.752 179.36 177.034 +-662.382 306.144 302.175 +-381.972 173.188 170.943 +-383.742 170.658 168.446 +-384.029 167.488 165.316 +-387.697 165.793 163.644 +-135.103 56.6389 55.9047 +-685.113 281.515 277.865 +-381.999 153.817 151.823 +-379.935 149.886 147.943 +-382.022 147.623 145.709 +-119.728 45.3073 44.72 +-114.868 42.5574 42.0057 +-113.425 41.1316 40.5983 +-111.24 39.4729 38.9611 +-111.001 38.5308 38.0313 +-110.386 37.4723 36.9866 +-109.663 36.3943 35.9225 +-109.468 35.5052 35.045 +-109.351 34.6503 34.2012 +-108.763 33.6577 33.2213 +-109.54 33.0921 32.6631 +-109.203 32.1927 31.7754 +-109.408 31.4599 31.0521 +-109.696 30.7531 30.3545 +-109.602 29.9431 29.555 +-109.965 29.2612 28.8819 +-110.038 28.5042 28.1347 +-110.478 27.8435 27.4825 +-110.909 27.1794 26.827 +-111.997 26.6702 26.3245 +-112.32 25.9736 25.6369 +-112.825 25.3178 24.9896 +-113.8 24.7618 24.4408 +-114.771 24.1955 23.8819 +-116.697 23.8154 23.5066 +-118.334 23.3559 23.0532 +-122.769 23.4122 23.1087 +-160.713 29.5807 29.1972 +-161.263 28.6158 28.2448 +-161.705 27.6298 27.2716 +-162.817 26.7525 26.4057 +-162.456 25.6325 25.3002 +-854.216 129.224 127.548 +-861.55 124.75 123.133 +-868.544 120.156 118.598 +-379.34 50.0375 49.3888 +-382.499 48.0009 47.3787 +-381.002 45.3768 44.7886 +-384.902 43.3873 42.8249 +-405.793 43.1622 42.6027 +-404.029 40.4125 39.8886 +-404.609 37.9109 37.4194 +-404.76 35.3705 34.912 +-405.179 32.8554 32.4294 +-404.87 30.2855 29.8929 +-403.733 27.6675 27.3089 +-404.654 25.1963 24.8696 +-404.35 22.6486 22.355 +-406.108 20.2109 19.9489 +-405.143 17.6358 17.4071 +-404.046 15.0704 14.8751 +-403.915 12.5511 12.3884 +-403.454 10.0271 9.89715 +-145.35 2.70884 2.67372 +-145.878 1.81222 1.78873 +-146.294 0.908626 0.896847 +120.4 4.44089e-15 5.68434e-14 +120.195 0.753146 0.730086 +119.982 1.50373 1.45769 +119.959 2.25545 2.18639 +120.127 3.01201 2.91979 +120.685 3.78337 3.66753 +121.234 4.56196 4.42229 +120.974 5.31264 5.14998 +120.406 6.04539 5.8603 +121.026 6.83903 6.62963 +120.739 7.58459 7.35237 +120.642 8.3408 8.08542 +120.437 9.0889 8.81062 +121.017 9.90011 9.59699 +120.892 10.658 10.3317 +121.353 11.4713 11.12 +121.11 12.2212 11.847 +121.649 13.0539 12.6542 +121.288 13.7932 13.3709 +120.82 14.517 14.0725 +120.54 15.261 14.7938 +120.94 16.0943 15.6015 +120.642 16.8377 16.3222 +120.629 17.6216 17.0821 +121.095 18.4813 17.9154 +120.865 19.2393 18.6502 +120.627 19.9959 19.3837 +121.06 20.8683 20.2293 +120.802 21.6261 20.9639 +121.115 22.49 21.8014 +120.741 23.2295 22.5182 +121.514 24.1962 23.4554 +121.023 24.917 24.1541 +120.715 25.6744 24.8883 +121.164 26.5977 25.7834 +121.122 27.4206 26.5811 +121.83 28.4226 27.5524 +121.48 29.1849 28.2913 +121.877 30.1319 29.2094 +121.789 30.9663 30.0182 +121.596 31.7774 30.8044 +121.393 32.5884 31.5906 +120.899 33.322 32.3017 +120.954 34.2099 33.1625 +120.534 34.9665 33.8959 +120.751 35.9127 34.8131 +120.31 36.6679 35.5452 +120.869 37.7353 36.5799 +120.405 38.4912 37.3127 +120.752 39.5121 38.3024 +120.267 40.2672 39.0343 +120.676 41.3283 40.063 +120.169 42.0829 40.7944 +120.548 43.1546 41.8333 +121.355 44.3973 43.0379 +121.343 45.3549 43.9662 +119.286 45.5404 44.1461 +116.795 45.5324 44.1383 +114.663 45.6359 44.2386 +111.406 45.2565 43.8709 +108.513 44.9835 43.6062 +106.584 45.0787 43.6985 +104.66 45.1531 43.7706 +102.828 45.2444 43.8591 +99.9849 44.8597 43.4862 +98.0021 44.8286 43.456 +95.273 44.4242 43.064 +95.2298 45.2572 43.8716 +95.4222 46.2136 44.7986 +95.4338 47.0944 45.6524 +95.8408 48.1847 46.7094 +96.5541 49.4506 47.9365 +95.6258 49.8848 48.3575 +95.9001 50.952 49.3919 +95.9161 51.8966 50.3076 +95.9164 52.8453 51.2273 +96.0585 53.8863 52.2364 +96.1043 54.8884 53.2078 +96.0552 55.85 54.1399 +95.9901 56.815 55.0755 +95.9854 57.8297 56.0591 +95.9632 58.8486 57.0468 +95.8481 59.8245 57.9928 +95.7914 60.851 58.9879 +95.7171 61.8813 59.9866 +95.7723 63.0123 61.083 +95.4417 63.9038 61.9472 +93.936 64.0051 62.0454 +93.2264 64.6411 62.6619 +93.0792 65.6757 63.6649 +93.126 66.8657 64.8184 +93.0808 68.01 65.9277 +93.2232 69.3137 67.1915 +95.1994 72.0304 69.825 +95.0706 73.2022 70.9609 +95.3258 74.6949 72.4079 +95.0165 75.7698 73.4499 +95.8811 77.814 75.4315 +95.5222 78.8996 76.4839 +95.1441 79.986 77.537 +95.2611 81.5146 79.0188 +95.1573 82.8839 80.3461 +94.7757 84.0348 81.4619 +94.6222 85.412 82.7969 +94.2578 86.624 83.9718 +94.1145 88.0658 85.3694 +94.0035 89.57 86.8276 +94.5173 91.714 88.9059 +94.4571 93.3482 90.4901 +94.3062 94.93 92.0234 +94.1813 96.5764 93.6194 +94.0801 98.2867 95.2774 +93.8885 99.9439 96.8838 +93.5533 101.487 98.3796 +93.8413 103.755 100.578 +93.7588 105.671 102.436 +93.4778 107.412 104.123 +93.7885 109.891 106.527 +93.8914 112.198 108.763 +93.5393 114.019 110.528 +93.65 116.467 112.901 +93.5605 118.736 115.101 +93.5683 121.202 117.491 +93.38 123.488 119.707 +93.5187 126.286 122.42 +93.3194 128.715 124.774 +93.3404 131.534 127.506 +93.4784 134.62 130.498 +93.0224 136.942 132.749 +93.1626 140.242 135.948 +92.9338 143.098 138.717 +93.0157 146.549 142.062 +93.0613 150.078 145.483 +92.7092 153.092 148.405 +92.9159 157.17 152.358 +92.6477 160.599 155.682 +92.4529 164.302 159.272 +92.4316 168.483 163.324 +92.4948 173.01 167.713 +92.3147 177.283 171.855 +92.0034 181.497 175.94 +89.794 182.067 176.493 +88.6197 184.795 179.137 +88.7818 190.518 184.685 +91.2218 201.584 195.412 +89.6404 204.133 197.883 +87.156 204.687 198.42 +84.1821 204.055 197.807 +81.5611 204.23 197.976 +78.7819 203.972 197.727 +76.0669 203.834 197.593 +73.5116 204.094 197.845 +70.8347 203.99 197.744 +68.2127 204.006 197.76 +65.7307 204.426 198.167 +62.8757 203.639 197.404 +60.3776 203.955 197.71 +57.7768 203.903 197.66 +55.2774 204.186 197.935 +52.6478 203.96 197.715 +49.9933 203.575 197.342 +47.5337 203.952 197.707 +44.8967 203.533 197.301 +42.3326 203.38 197.153 +39.8453 203.567 197.334 +37.3044 203.453 197.223 +34.8181 203.607 197.373 +32.229 203.104 196.886 +29.7802 203.441 197.212 +27.201 202.834 196.623 +24.7871 203.426 197.198 +22.2824 203.288 197.063 +19.7829 203.132 196.913 +17.3073 203.177 196.956 +14.7954 202.705 196.498 +12.3617 203.291 197.067 +9.89052 203.361 197.134 +7.40546 203.056 196.839 +4.9303 202.808 196.598 +2.47135 203.333 197.108 +1.58762e-14 202.695 196.489 +-2.46437 202.759 196.551 +-4.9338 202.951 196.738 +-7.40022 202.913 196.7 +-9.88005 203.146 196.926 +-12.3443 203.005 196.789 +-14.8058 202.847 196.637 +-17.2706 202.747 196.539 +-19.7969 203.276 197.052 +-22.1882 202.428 196.23 +-24.6215 202.067 195.88 +-27.1819 202.691 196.485 +-29.6338 202.442 196.243 +-32.1158 202.391 196.194 +-34.55 202.04 195.854 +-37.0172 201.887 195.705 +-39.4834 201.718 195.542 +-42.0518 202.031 195.845 +-44.6151 202.256 196.064 +-47.0551 201.898 195.716 +-49.5245 201.666 195.492 +-52.1194 201.913 195.731 +-54.6668 201.931 195.749 +-57.1588 201.722 195.545 +-59.6083 201.356 195.191 +-62.2264 201.536 195.365 +-64.8759 201.767 195.59 +-67.349 201.424 195.256 +-69.9638 201.482 195.313 +-72.6352 201.661 195.487 +-75.2646 201.683 195.508 +-77.7396 201.274 195.111 +-80.6239 201.883 195.702 +-83.0745 201.37 195.205 +-85.8403 201.597 195.425 +-88.5579 201.668 195.494 +-91.2218 201.584 195.412 +-93.8587 201.413 195.246 +-96.5635 201.36 195.195 +-99.174 201.086 194.929 +-102.025 201.266 195.104 +-104.677 201.023 194.868 +-107.69 201.432 195.265 +-110.427 201.284 195.121 +-113.169 201.117 194.959 +-115.915 200.931 194.779 +-119.017 201.321 195.157 +-121.818 201.16 195.001 +-124.543 200.848 194.699 +-127.352 200.648 194.505 +-130.547 201.014 194.859 +-135.611 204.141 197.891 +-138.788 204.316 198.061 +-142.069 204.596 198.331 +-143.234 201.843 195.663 +-143.234 197.562 191.513 +-143.799 194.185 188.239 +-146.869 194.223 188.276 +-150.679 195.179 189.203 +-484.102 614.366 595.555 +-486.7 605.277 586.745 +-490.079 597.379 579.089 +-493.2 589.362 571.317 +-496.165 581.352 563.552 +-499.025 573.41 555.854 +-502.214 566.023 548.692 +-505.153 558.519 541.418 +-507.948 551.021 534.15 +-511.438 544.425 527.756 +-514.297 537.294 520.844 +-517.251 530.404 514.165 +-520.6 524.046 508 +-523.717 517.568 501.722 +-526.418 510.804 495.164 +-529.838 504.849 489.391 +-533.032 498.775 483.504 +-535.995 492.587 477.505 +-539.658 487.131 472.216 +-143.296 127.057 123.167 +-143.245 124.769 120.949 +-143.213 122.547 118.795 +-144.177 121.208 117.497 +-142.43 117.644 114.042 +-143.325 116.317 112.756 +-146.54 116.856 113.278 +-150.792 118.156 114.539 +-157.269 121.093 117.385 +-157.289 119.009 115.365 +-158.452 117.812 114.205 +-159.947 116.867 113.289 +-161.857 116.215 112.657 +-584.152 412.172 399.552 +-587.413 407.299 394.828 +-590.89 402.614 390.287 +-594.005 397.721 385.544 +-597.416 393.063 381.028 +-600.758 388.391 376.5 +-603.733 383.518 371.776 +-607.315 379.062 367.455 +-610.53 374.402 362.939 +-613.602 369.686 358.367 +-617.377 365.416 354.227 +-621.095 361.127 350.07 +-624.443 356.64 345.721 +-626.941 351.697 340.929 +-631.192 347.756 337.109 +-634.596 343.355 332.843 +-637.7 338.811 328.437 +-641.065 334.423 324.183 +-645.105 330.393 320.277 +-385.984 194.057 188.115 +-384.29 189.638 183.832 +-383.181 185.577 179.895 +-381.336 181.227 175.678 +-382.35 178.283 172.825 +-382.815 175.109 169.748 +-383.318 171.981 166.716 +-382.921 168.485 163.326 +-385.04 166.116 161.03 +-135.103 57.1409 55.3914 +-134.84 55.8973 54.1859 +-381.651 155.039 150.292 +-380.547 151.458 146.821 +-379.297 147.869 143.342 +-115.225 43.9898 42.6429 +-113.981 42.6031 41.2987 +-112.712 41.2354 39.9728 +-111.419 39.8868 38.6655 +-110.462 38.6835 37.4991 +-109.754 37.5881 36.4372 +-109.754 36.7473 35.6222 +-109.559 35.8498 34.7521 +-109.625 35.0451 33.9721 +-109.68 34.2423 33.1939 +-109.632 33.4135 32.3905 +-109.295 32.5055 31.5103 +-109.5 31.7656 30.793 +-109.882 31.0783 30.1268 +-110.443 30.4401 29.5081 +-110.715 29.7218 28.8118 +-110.884 28.9779 28.0906 +-110.666 28.1382 27.2766 +-110.815 27.3969 26.5581 +-112.187 26.9521 26.1269 +-112.51 26.2482 25.4445 +-113.683 25.7365 24.9485 +-113.8 24.9813 24.2164 +-115.538 24.5731 23.8208 +-116.697 24.0264 23.2908 +-119.683 23.8316 23.1019 +-123.832 23.8241 23.0947 +-159.648 29.6451 28.7375 +-160.778 28.7826 27.9014 +-162.677 28.0423 27.1837 +-163.304 27.0704 26.2416 +-165.58 26.357 25.55 +-855.488 130.564 126.566 +-862.334 125.971 122.114 +-870.114 121.44 117.722 +-379.143 50.4548 48.91 +-382.204 48.389 46.9074 +-380.706 45.7435 44.3429 +-389.149 44.2549 42.8999 +-403.815 43.3325 42.0058 +-405.119 40.8806 39.6289 +-405.204 38.3032 37.1305 +-404.76 35.684 34.5915 +-403.788 33.0328 32.0214 +-405.566 30.6065 29.6694 +-406.321 28.0917 27.2316 +-404.854 25.4321 24.6534 +-404.051 22.8325 22.1334 +-403.714 20.2698 19.6492 +-404.344 17.757 17.2134 +-404.245 15.2115 14.7458 +-405.014 12.6968 12.3081 +-403.554 10.1185 9.80872 +-147.349 2.77044 2.68562 +-146.678 1.83831 1.78202 +-146.794 0.919818 0.891655 +119.5 2.66454e-15 -1.13687e-13 +120.195 0.759702 0.723262 +120.182 1.51935 1.44647 +119.959 2.27508 2.16595 +119.927 3.03317 2.88768 +120.785 3.81946 3.63626 +120.435 4.57135 4.35208 +120.974 5.35888 5.10184 +120.406 6.09801 5.80552 +120.328 6.85878 6.52979 +120.639 7.64431 7.27764 +120.642 8.41341 8.00985 +121.332 9.23617 8.79315 +121.017 9.98629 9.50729 +120.793 10.7419 10.2267 +121.353 11.5711 11.0161 +121.11 12.3276 11.7363 +120.66 13.0604 12.434 +121.189 13.9019 13.2351 +120.82 14.6434 13.941 +120.54 15.3939 14.6555 +120.94 16.2344 15.4557 +120.74 16.9981 16.1828 +121.315 17.8761 17.0187 +121.095 18.6422 17.748 +120.768 19.3911 18.461 +121.407 20.3003 19.3266 +121.06 21.0499 20.0402 +120.511 21.7617 20.7179 +121.115 22.6857 21.5976 +120.741 23.4317 22.3077 +121.321 24.3681 23.1992 +120.831 25.094 23.8903 +120.715 25.8978 24.6556 +121.164 26.8292 25.5424 +121.122 27.6593 26.3326 +120.974 28.4686 27.1031 +120.627 29.2321 27.83 +120.932 30.1585 28.7119 +121.412 31.1392 29.6456 +121.408 32.0045 30.4694 +121.58 32.9228 31.3436 +120.712 33.5602 31.9504 +120.768 34.4546 32.8019 +120.348 35.2165 33.5273 +120.936 36.2807 34.5405 +120.31 36.9871 35.213 +120.96 38.0926 36.2655 +120.497 38.8557 36.992 +120.752 39.8561 37.9443 +120.086 40.5565 38.6112 +120.766 41.7193 39.7182 +120.259 42.481 40.4434 +120.548 43.5303 41.4423 +121.177 44.718 42.573 +121.432 45.7831 43.5871 +119.728 46.1068 43.8953 +117.058 46.0324 43.8244 +114.575 45.998 43.7917 +111.406 45.6505 43.4608 +109.206 45.6648 43.4745 +107.187 45.7284 43.535 +104.574 45.5088 43.3259 +102.573 45.5247 43.3411 +99.9849 45.2502 43.0797 +98.6768 45.5302 43.3463 +95.7762 45.0476 42.8868 +95.3131 45.6912 43.4996 +95.4222 46.6158 44.3799 +95.4338 47.5043 45.2257 +96.2504 48.8119 46.4706 +96.2285 49.7128 47.3283 +95.3831 50.1914 47.7839 +96.5432 51.7401 49.2583 +96.6349 52.7406 50.2108 +95.9958 53.3493 50.7904 +95.9797 54.3108 51.7057 +96.026 55.321 52.6675 +96.0552 56.3361 53.6339 +95.9901 57.3096 54.5607 +95.9854 58.3331 55.5351 +95.9632 59.3608 56.5136 +95.8481 60.3453 57.4508 +95.7914 61.3807 58.4365 +95.7171 62.4199 59.4259 +95.6986 63.5118 60.4654 +95.8073 64.707 61.6033 +93.936 64.5622 61.4654 +93.0826 65.1032 61.9804 +92.8652 66.0951 62.9248 +93.1967 67.499 64.2613 +92.9406 68.4987 65.2131 +93.2232 69.9171 66.5634 +95.7501 73.0782 69.5729 +95.0024 73.7865 70.2473 +95.3933 75.3987 71.7822 +95.6188 76.9131 73.2239 +95.2848 78.0032 74.2617 +94.8661 79.0396 75.2484 +95.2091 80.738 76.8653 +95.2611 82.2242 78.2802 +94.5212 83.0462 79.0628 +94.7127 84.7098 80.6467 +94.8712 86.3822 82.2388 +94.8119 87.8923 83.6764 +94.2363 88.9475 84.6811 +94.0035 90.3497 86.016 +94.5173 92.5123 88.0749 +93.9281 93.6335 89.1423 +94.19 95.639 91.0516 +94.1239 97.3577 92.6878 +93.9668 99.0235 94.2737 +93.7207 100.634 95.8072 +93.9949 102.853 97.9199 +93.7868 104.597 99.5803 +93.7588 106.591 101.479 +94.0077 108.961 103.735 +93.893 110.971 105.648 +93.8914 113.175 107.746 +93.9961 115.574 110.03 +93.65 117.481 111.846 +93.5112 119.707 113.965 +93.5198 122.193 116.332 +93.38 124.562 118.588 +93.5657 127.449 121.336 +93.735 130.413 124.158 +93.3858 132.743 126.376 +93.4338 135.726 129.216 +92.6717 137.614 131.013 +93.2057 141.528 134.74 +92.976 144.409 137.483 +93.0572 147.891 140.797 +93.0613 151.385 144.124 +93.068 155.023 147.587 +92.9159 158.538 150.934 +92.7242 162.131 154.354 +92.5653 165.934 157.975 +92.7248 170.489 162.311 +92.4589 174.449 166.081 +92.2446 178.69 170.119 +92.0034 183.077 174.296 +90.1279 184.334 175.493 +88.5871 186.336 177.398 +89.0357 192.726 183.482 +91.2836 203.476 193.716 +89.3096 205.15 195.31 +86.8636 205.776 195.906 +83.9549 205.276 195.43 +81.3681 205.52 195.662 +78.5414 205.119 195.281 +76.0669 205.608 195.746 +73.3113 205.31 195.462 +70.8589 205.836 195.963 +68.026 205.219 195.376 +65.5507 205.641 195.777 +62.7242 204.917 195.088 +60.2112 205.164 195.323 +57.5575 204.897 195.069 +55.1056 205.324 195.476 +52.4474 204.953 195.122 +49.9759 205.277 195.43 +47.3852 205.085 195.248 +44.928 205.447 195.593 +42.0813 203.933 194.151 +39.72 204.693 194.875 +37.1869 204.578 194.765 +34.7084 204.733 194.912 +32.1497 204.368 194.566 +29.6861 204.564 194.752 +27.2202 204.744 194.923 +24.7087 204.547 194.736 +22.1412 203.757 193.984 +19.8108 205.19 195.348 +17.2523 204.295 194.496 +14.7954 204.469 194.661 +12.2919 203.903 194.123 +9.8626 204.552 194.741 +7.38452 204.244 194.448 +4.92856 204.501 194.692 +2.45739 203.945 194.162 +1.52101e-14 204.46 194.652 +-2.45914 204.089 194.3 +-4.91809 204.066 194.278 +-7.3819 204.172 194.379 +-9.84864 204.263 194.465 +-12.2701 203.541 193.778 +-14.8058 204.613 194.799 +-17.2157 203.861 194.083 +-19.7271 204.323 194.522 +-22.1098 203.468 193.709 +-24.6476 204.042 194.255 +-27.0285 203.302 193.551 +-29.6443 204.276 194.477 +-32.0139 203.505 193.744 +-34.5621 203.87 194.091 +-36.9128 203.07 193.329 +-39.4695 203.402 193.646 +-41.9187 203.145 193.401 +-44.49 203.445 193.686 +-46.7745 202.441 192.731 +-49.3682 202.78 193.053 +-51.7731 202.318 192.614 +-54.495 203.049 193.31 +-56.9395 202.697 192.974 +-59.5875 203.038 193.299 +-61.9667 202.442 192.731 +-64.6734 202.889 193.157 +-67.1155 202.472 192.76 +-69.7461 202.603 192.885 +-72.3598 202.645 192.925 +-75.0834 202.949 193.215 +-77.5259 202.467 192.756 +-80.431 203.153 193.409 +-82.8189 202.498 192.785 +-85.8111 203.283 193.532 +-88.2872 202.802 193.074 +-90.9437 202.718 192.995 +-93.3828 202.136 192.44 +-96.2379 202.428 192.718 +-98.9404 202.358 192.652 +-101.888 202.746 193.021 +-104.362 202.162 192.465 +-107.403 202.645 192.925 +-109.804 201.891 192.207 +-113.131 202.801 193.073 +-115.532 202.011 192.321 +-118.704 202.54 192.825 +-121.379 202.18 192.483 +-124.543 202.597 192.879 +-126.979 201.801 192.122 +-130.251 202.304 192.6 +-134.535 204.284 194.486 +-138.832 206.16 196.271 +-141.802 205.988 196.107 +-143.279 203.664 193.895 +-143.234 199.282 189.723 +-143.424 195.363 185.992 +-145.963 194.704 185.365 +-150.243 196.308 186.892 +-1613.43 2065.4 1966.33 +-487.2 611.173 581.858 +-490.536 603.141 574.211 +-493.355 594.679 566.155 +-496.635 586.968 558.813 +-499.184 578.586 550.833 +-502.859 571.683 544.262 +-504.935 563.137 536.126 +-508.61 556.543 529.848 +-511.662 549.404 523.051 +-514.863 542.568 516.543 +-517.251 535.021 509.359 +-521.181 529.197 503.813 +-524.246 522.601 497.534 +-527.489 516.298 491.534 +-530.62 509.995 485.533 +-533.397 503.462 479.313 +-535.687 496.59 472.77 +-539.907 491.598 468.018 +-141.534 126.587 120.515 +-143.118 125.744 119.712 +-143.984 124.279 118.318 +-143.528 121.712 115.874 +-142.562 118.778 113.08 +-143.258 117.276 111.65 +-147.744 118.841 113.141 +-153.494 121.321 115.501 +-157.678 122.465 116.591 +-157.84 120.465 114.687 +-158.66 118.994 113.287 +-160.368 118.194 112.525 +-161.715 117.124 111.506 +-585.151 416.47 396.494 +-588.06 411.297 391.569 +-591.543 406.567 387.066 +-594.005 401.183 381.94 +-598.522 397.218 378.165 +-601.13 392.015 373.211 +-604.782 387.529 368.941 +-607.994 382.788 364.428 +-611.214 378.084 359.949 +-614.674 373.555 355.638 +-618.457 369.242 351.531 +-621.484 364.499 347.015 +-625.46 360.331 343.048 +-628.045 355.383 338.337 +-631.589 351.003 334.167 +-635.075 346.606 329.98 +-638.504 342.191 325.778 +-641.065 337.334 321.153 +-645.838 333.648 317.644 +-387.787 196.66 187.227 +-384.62 191.453 182.27 +-383.596 187.395 178.407 +-382.837 183.524 174.721 +-382.014 179.677 171.059 +-380.791 175.7 167.272 +-383.827 173.708 165.376 +-383.859 170.368 162.196 +-384.868 167.487 159.454 +-133.897 57.1237 54.3838 +-134.58 56.2753 53.576 +-382.957 156.923 149.396 +-382.559 153.584 146.218 +-382.637 150.469 143.252 +-114.871 44.2368 42.1149 +-114.158 43.0408 40.9763 +-112.089 41.3641 39.3801 +-110.882 40.0401 38.1195 +-110.642 39.0838 37.2091 +-110.476 38.1648 36.3342 +-109.754 37.0671 35.2892 +-109.65 36.1918 34.4558 +-109.534 35.3207 33.6265 +-109.772 34.5693 32.9112 +-109.54 33.6761 32.0608 +-110.034 33.0102 31.4268 +-110.242 32.2592 30.7119 +-109.882 31.3489 29.8452 +-109.696 30.4974 29.0346 +-110.621 29.9552 28.5183 +-110.132 29.032 27.6394 +-110.572 28.3589 26.9986 +-110.815 27.6354 26.3099 +-111.997 27.1408 25.839 +-112.415 26.4543 25.1854 +-113.588 25.9388 24.6947 +-114.47 25.347 24.1312 +-115.346 24.7459 23.5589 +-116.601 24.2156 23.0541 +-119.105 23.9229 22.7754 +-123.928 24.0503 22.8967 +-161.39 30.2295 28.7795 +-161.554 29.1733 27.774 +-162.191 28.2019 26.8491 +-164.961 27.583 26.2599 +-164.408 26.3982 25.132 +-855.879 131.76 125.44 +-863.51 127.241 121.138 +-870.409 122.538 116.66 +-380.028 51.0128 48.5659 +-382.499 48.8479 46.5049 +-381.397 46.2253 44.0081 +-902.451 103.522 98.5563 +-405.595 43.9024 41.7966 +-405.713 41.2969 39.3161 +-405.204 38.6366 36.7834 +-405.554 36.0653 34.3354 +-404.98 33.4187 31.8157 +-405.069 30.8351 29.356 +-405.027 28.246 26.8911 +-404.854 25.6535 24.423 +-404.15 23.0369 21.9319 +-406.009 20.5625 19.5762 +-404.943 17.9381 17.0777 +-404.745 15.3629 14.626 +-405.514 12.8232 12.2081 +-404.354 10.2268 9.73628 +-145.55 2.76043 2.62802 +-146.378 1.85051 1.76175 +-146.994 0.929085 0.884521 +120.4 4.44089e-15 5.68434e-14 +120.895 0.770657 0.720553 +120.182 1.53233 1.43271 +120.859 2.31173 2.16143 +120.826 3.08204 2.88166 +120.685 3.84892 3.59868 +121.234 4.641 4.33927 +120.974 5.40468 5.0533 +120.306 6.14503 5.74551 +121.125 6.96325 6.51053 +120.739 7.716 7.21434 +120.542 8.4783 7.92708 +121.332 9.3151 8.70948 +120.918 10.0633 9.40904 +120.892 10.8426 10.1377 +121.353 11.67 10.9113 +121.011 12.4228 11.6151 +121.55 13.2693 12.4066 +121.288 14.0322 13.1199 +120.82 14.7685 13.8083 +121.427 15.6396 14.6228 +120.94 16.3731 15.3086 +120.642 17.1294 16.0157 +120.531 17.9124 16.7478 +121.192 18.8167 17.5933 +120.768 19.5569 18.2854 +120.53 20.3259 19.0044 +120.768 21.1787 19.8018 +120.705 21.9831 20.5538 +121.018 22.8614 21.375 +120.837 23.6508 22.1132 +120.743 24.4592 22.869 +121.023 25.3487 23.7007 +120.715 26.1192 24.421 +120.973 27.0158 25.2594 +120.931 27.8518 26.041 +121.069 28.7345 26.8663 +121.385 29.6674 27.7385 +121.877 30.654 28.661 +121.224 31.3566 29.318 +121.408 32.278 30.1794 +121.393 33.153 30.9976 +120.619 33.8208 31.6219 +120.768 34.749 32.4898 +120.348 35.5175 33.2083 +120.751 36.5349 34.1595 +121.323 37.6172 35.1715 +120.96 38.4182 35.9204 +120.862 39.3066 36.7511 +120.752 40.1967 37.5833 +120.086 40.9031 38.2438 +120.405 41.9501 39.2227 +120.888 43.0682 40.2681 +120.19 43.772 40.9261 +120.82 44.9675 42.0439 +121.343 46.1407 43.1408 +119.993 46.6038 43.5738 +117.674 46.6698 43.6356 +114.663 46.4265 43.4081 +113.146 46.76 43.7199 +109.899 46.3473 43.334 +107.876 46.4158 43.398 +105.174 46.1611 43.16 +103.255 46.2191 43.2142 +100.748 45.9852 42.9955 +99.4359 46.2725 43.2641 +96.2794 45.6713 42.702 +95.6467 46.2429 43.2365 +95.2564 46.9326 43.8812 +95.5986 47.993 44.8728 +95.3493 48.7682 45.5975 +96.7169 50.3921 47.1159 +96.6775 51.3073 47.9715 +95.9001 51.8347 48.4647 +95.996 52.8397 49.4043 +95.9958 53.8053 50.3071 +96.0585 54.8199 51.2557 +96.1043 55.8393 52.209 +96.0552 56.8176 53.1236 +95.45 57.4742 53.7375 +95.9854 58.8316 55.0067 +96.0393 59.9156 56.0202 +95.8481 60.861 56.9041 +95.7914 61.9053 57.8805 +95.7914 63.0022 58.9062 +95.6986 64.0546 59.8901 +95.6611 65.1604 60.924 +94.5888 65.5665 61.3037 +93.5861 66.0148 61.7228 +92.9365 66.7112 62.374 +93.126 68.0242 63.6016 +92.8705 69.032 64.5439 +93.0842 70.4095 65.8318 +95.4748 73.4902 68.7122 +95.6162 74.8977 70.0283 +96.0014 76.5274 71.552 +95.6857 77.6253 72.5785 +95.2848 78.6698 73.5551 +94.8661 79.7151 74.5324 +95.1441 81.3718 76.0814 +95.1968 82.8706 77.4828 +95.2209 84.3761 78.8904 +94.7127 85.4338 79.8793 +94.8712 87.1204 81.4563 +94.6887 88.528 82.7724 +94.1145 89.5915 83.7667 +94.5451 91.647 85.6886 +94.4579 93.2438 87.1816 +94.2808 94.788 88.6253 +94.3062 96.5747 90.2959 +94.1813 98.2496 91.8619 +93.9668 99.8698 93.3767 +93.6648 101.434 94.8389 +93.5533 103.245 96.5327 +93.8413 105.553 98.6902 +93.8125 107.564 100.57 +94.0077 109.892 102.748 +93.6317 111.608 104.352 +93.8914 114.142 106.721 +93.5393 115.995 108.453 +93.5 118.295 110.604 +93.5112 120.73 112.881 +93.4713 123.174 115.166 +93.38 125.627 117.459 +93.5657 128.539 120.182 +93.6888 131.463 122.916 +93.4766 134.007 125.295 +93.4784 136.952 128.048 +93.0224 139.315 130.257 +93.2057 142.738 133.458 +92.9338 145.577 136.112 +93.0157 149.088 139.395 +93.0613 152.679 142.752 +92.9883 156.213 146.057 +92.994 160.028 149.623 +92.7242 163.516 152.885 +92.7526 167.691 156.788 +92.6149 171.742 160.576 +92.4231 175.871 164.437 +92.2796 180.285 168.564 +91.6614 183.956 171.996 +90.1946 186.048 173.952 +88.0011 186.685 174.548 +91.3837 199.499 186.529 +91.3454 205.354 192.003 +88.8285 205.789 192.41 +86.4543 206.557 193.128 +83.3585 205.56 192.195 +81.2028 206.856 193.407 +78.1405 205.817 192.436 +75.601 206.095 192.696 +72.7104 205.367 192.015 +70.4235 206.319 192.905 +67.6291 205.766 192.388 +65.1683 206.189 192.783 +62.313 205.313 191.964 +59.8578 205.702 192.328 +57.079 204.93 191.607 +54.8003 205.932 192.543 +51.9736 204.837 191.519 +49.6807 205.807 192.427 +46.9395 204.892 191.571 +44.6308 205.832 192.45 +41.9335 204.953 191.628 +39.5947 205.791 192.412 +36.9389 204.95 191.625 +34.6109 205.902 192.516 +31.9459 204.809 191.493 +29.6025 205.731 192.356 +26.9614 204.531 191.233 +24.6302 205.641 192.271 +22.0078 204.26 190.98 +19.6574 205.341 191.99 +17.1546 204.875 191.555 +14.743 205.487 192.127 +12.2091 204.26 190.98 +9.7928 204.84 191.523 +7.31122 203.945 190.686 +4.8954 204.861 191.542 +2.43994 204.227 190.949 +1.70974e-14 204.965 191.639 +-2.44081 204.3 191.017 +-4.90238 205.153 191.815 +-7.32955 204.457 191.164 +-9.81723 205.352 192.001 +-12.1742 203.675 190.433 +-14.7064 204.976 191.65 +-17.0631 203.781 190.532 +-19.5806 204.539 191.241 +-21.9842 204.042 190.776 +-24.4908 204.476 191.182 +-26.9422 204.385 191.097 +-29.4561 204.714 191.404 +-31.7988 203.865 190.611 +-34.3793 204.525 191.228 +-36.6518 203.357 190.135 +-39.219 203.839 190.586 +-41.6527 203.581 190.345 +-44.224 203.956 190.696 +-46.4774 202.875 189.685 +-49.2293 203.937 190.678 +-51.5544 203.185 189.975 +-54.1707 203.566 190.331 +-56.6205 203.284 190.068 +-59.3172 203.845 190.592 +-61.4689 202.531 189.364 +-64.4935 204.054 190.787 +-66.7187 202.995 189.797 +-69.5284 203.696 190.453 +-71.7339 202.609 189.436 +-74.8505 204.049 190.783 +-77.0181 202.86 189.671 +-79.9348 203.626 190.387 +-82.0804 202.408 189.248 +-85.3141 203.833 190.581 +-87.4152 202.515 189.349 +-90.4493 203.339 190.119 +-92.8751 202.755 189.573 +-96.0752 203.813 190.562 +-98.2394 202.642 189.467 +-101.375 203.449 190.222 +-103.731 202.658 189.483 +-106.794 203.217 190.005 +-109.181 202.46 189.297 +-112.607 203.585 190.349 +-114.652 202.185 189.04 +-118.04 203.128 189.922 +-120.462 202.368 189.211 +-123.567 202.726 189.546 +-126.316 202.463 189.3 +-129.406 202.709 189.53 +-132.339 202.668 189.491 +-138.043 206.74 193.299 +-140.508 205.853 192.469 +-143.506 205.73 192.354 +-143.188 200.92 187.857 +-143.048 196.517 183.74 +-144.436 194.314 181.68 +-149.273 196.707 183.918 +-155.409 200.644 187.599 +-488.1 617.535 577.386 +-491.805 609.869 570.219 +-493.819 600.324 561.294 +-498.046 593.666 555.069 +-500.403 584.956 546.925 +-503.611 577.431 539.89 +-506.569 569.788 532.743 +-510.1 562.943 526.344 +-512.444 554.947 518.867 +-516.449 548.89 513.204 +-518.915 541.329 506.135 +-522.807 535.384 500.576 +-524.775 527.599 493.297 +-528.56 521.768 487.845 +-531.463 515.17 481.677 +-535.101 509.387 476.27 +-537.411 502.446 469.779 +-542.086 497.8 465.436 +-142.163 128.236 119.899 +-142.99 126.705 118.467 +-143.856 125.23 117.088 +-142.489 121.864 113.941 +-142.627 119.848 112.056 +-144.054 118.935 111.202 +-148.413 120.401 112.573 +-157.48 125.535 117.373 +-157.473 123.352 115.332 +-158.666 122.131 114.191 +-159.91 120.957 113.093 +-161.279 119.881 112.087 +-162.917 119.003 111.266 +-586.435 420.951 393.583 +-588.995 415.472 388.46 +-592.994 411.048 384.324 +-595.395 405.559 379.191 +-599.48 401.254 375.166 +-601.947 395.903 370.163 +-606.205 391.76 366.29 +-608.749 386.539 361.408 +-613.343 382.644 357.767 +-615.44 377.218 352.693 +-620.232 373.466 349.185 +-622.183 368.027 344.1 +-626.869 364.229 340.548 +-629.463 359.23 335.874 +-633.017 354.804 331.736 +-635.794 349.964 327.211 +-640.674 346.289 323.775 +-643.33 341.419 319.222 +-647.385 337.305 315.375 +-387.787 198.341 185.446 +-384.29 192.924 180.381 +-382.85 188.629 176.365 +-382.837 185.092 173.059 +-379.582 180.06 168.353 +-384.418 178.889 167.258 +-382.724 174.69 163.333 +-383.262 171.556 160.403 +-383.925 168.505 157.55 +-135.448 58.2792 54.4902 +-135.879 57.3041 53.5784 +-2851.72 1178.54 1101.91 +-380.11 153.905 143.899 +-382.637 151.755 141.889 +-115.048 44.6834 41.7783 +-113.892 43.3075 40.4918 +-111.554 41.5187 38.8193 +-111.151 40.4801 37.8483 +-110.731 39.4498 36.885 +-109.935 38.3023 35.812 +-109.754 37.3839 34.9534 +-109.832 36.5617 34.1847 +-109.717 35.682 33.3621 +-109.956 34.923 32.6524 +-109.54 33.9639 31.7557 +-109.11 33.0128 30.8664 +-110.335 32.5623 30.4453 +-109.789 31.59 29.5362 +-109.976 30.8366 28.8318 +-109.965 30.0321 28.0795 +-110.696 29.43 27.5166 +-110.76 28.6501 26.7874 +-111.288 27.9905 26.1707 +-111.807 27.3264 25.5498 +-112.986 26.8158 25.0724 +-113.302 26.0946 24.398 +-114.278 25.5209 23.8616 +-115.825 25.0612 23.4318 +-117.178 24.5434 22.9477 +-119.972 24.3031 22.723 +-127.599 24.9742 23.3505 +-159.648 30.1587 28.198 +-161.457 29.405 27.4932 +-163.358 28.6475 26.785 +-162.915 27.4737 25.6875 +-165.385 26.782 25.0408 +-856.368 132.962 124.318 +-864.392 128.459 120.107 +-871.587 123.753 115.707 +-381.503 51.6484 48.2905 +-382.204 49.2274 46.0268 +-382.186 46.7168 43.6795 +-903.439 104.521 97.7258 +-406.09 44.3316 41.4494 +-405.515 41.6296 38.923 +-405.699 39.0145 36.4779 +-405.157 36.3379 33.9754 +-406.272 33.8118 31.6135 +-404.373 31.0452 29.0268 +-404.429 28.4454 26.596 +-403.957 25.8155 24.1371 +-404.15 23.2337 21.7232 +-405.31 20.7026 19.3566 +-403.945 18.0468 16.8735 +-405.144 15.5095 14.5011 +-404.914 12.9136 12.074 +-404.054 10.3066 9.63654 +-148.249 2.83565 2.65129 +-143.578 1.83064 1.71162 +-145.494 0.927464 0.867165 +120.4 4.44089e-15 5.68434e-14 +120.195 0.772626 0.709439 +120.182 1.54519 1.41882 +119.959 2.31378 2.12456 +120.826 3.10791 2.85374 +120.685 3.88123 3.56381 +121.234 4.67996 4.29722 +120.974 5.45005 5.00433 +120.306 6.19662 5.68984 +121.125 7.0217 6.44745 +120.938 7.79358 7.15621 +120.542 8.54947 7.85027 +121.332 9.3933 8.62509 +120.918 10.1478 9.31787 +121.686 11.0055 10.1054 +120.461 11.6814 10.7261 +120.12 12.4348 11.4179 +121.55 13.3807 12.2864 +121.189 14.1384 12.9821 +120.82 14.8925 13.6746 +121.427 15.7709 14.4811 +121.039 16.524 15.1726 +121.427 17.3857 15.9638 +120.531 18.0628 16.5855 +121.095 18.9593 17.4088 +120.768 19.721 18.1082 +121.407 20.6457 18.9572 +121.06 21.408 19.6572 +120.802 22.1854 20.371 +120.244 22.9057 21.0324 +121.031 23.8874 21.9339 +121.128 24.7433 22.7197 +121.023 25.5615 23.471 +120.62 26.3175 24.1652 +121.068 27.2642 25.0344 +120.931 28.0856 25.7887 +120.594 28.8619 26.5015 +121.48 29.9397 27.4912 +121.877 30.9113 28.3833 +121.412 31.6689 29.079 +121.22 32.4986 29.8408 +121.486 33.4571 30.7209 +120.619 34.1047 31.3155 +120.954 35.0947 32.2246 +120.256 35.7881 32.8612 +120.751 36.8415 33.8286 +120.31 37.6164 34.54 +120.685 38.6526 35.4915 +120.771 39.6066 36.3675 +120.843 40.5647 37.2472 +120.267 41.3087 37.9304 +120.405 42.3022 38.8426 +120.708 43.3651 39.8186 +121.085 44.4681 40.8314 +121.177 45.4787 41.7594 +121.432 46.562 42.7541 +121.317 47.5137 43.6279 +119.255 47.6942 43.7936 +115.887 47.3162 43.4466 +114.017 47.5152 43.6293 +110.851 47.1414 43.2861 +109.513 47.5157 43.6297 +105.86 46.8521 43.0204 +104.789 47.2999 43.4316 +102.02 46.9568 43.1165 +100.701 47.2546 43.39 +97.4535 46.6163 42.8039 +96.3972 46.997 43.1535 +95.0077 47.2029 43.3426 +95.5986 48.3959 44.438 +95.7589 49.3888 45.3497 +95.4143 50.1308 46.031 +96.6775 51.7379 47.5067 +96.2217 52.4451 48.156 +95.996 53.2832 48.9256 +96.0751 54.3018 49.8608 +95.9797 55.2347 50.7175 +96.026 56.2622 51.6609 +96.0552 57.2945 52.6088 +95.9901 58.2846 53.5179 +95.9854 59.3255 54.4737 +95.9632 60.3707 55.4335 +95.9236 61.4202 56.3971 +95.7914 62.4249 57.3196 +96.3859 63.9254 58.6974 +96.2147 64.9406 59.6296 +96.2461 66.1092 60.7027 +95.967 67.0803 61.5943 +93.658 66.62 61.1717 +93.5785 67.7358 62.1962 +93.126 68.5952 62.9853 +93.3611 69.9792 64.2562 +94.4041 72.0073 66.1184 +95.4748 74.1071 68.0464 +95.6162 75.5265 69.3497 +95.3258 76.6269 70.3602 +95.0835 77.7841 71.4227 +95.2185 79.2749 72.7917 +94.9317 80.4395 73.861 +95.1441 82.0548 75.3442 +95.2611 83.623 76.7841 +95.2209 85.0844 78.126 +94.6498 86.0942 79.0533 +94.8712 87.8517 80.667 +94.8734 89.445 82.13 +93.9928 90.2272 82.8482 +94.5451 92.4163 84.8583 +94.5173 94.0862 86.3916 +94.0456 95.3457 87.5482 +94.3062 97.3853 89.421 +94.1813 99.0743 90.9718 +94.1367 100.89 92.639 +93.8326 102.469 94.0884 +93.9397 104.541 95.9916 +93.8413 106.439 97.7339 +93.7588 108.405 99.5391 +93.4778 110.19 101.179 +93.7885 112.734 103.514 +93.8914 115.1 105.687 +93.5393 116.968 107.402 +93.6 119.415 109.649 +93.5112 121.743 111.787 +93.5198 124.272 114.109 +93.38 126.682 116.321 +93.6126 129.683 119.077 +93.6888 132.566 121.725 +93.3858 135.001 123.961 +93.4338 138.035 126.746 +93.0662 140.551 129.056 +92.9043 143.471 131.737 +93.0183 146.932 134.916 +93.0572 150.407 138.106 +93.0613 153.96 141.369 +92.9883 157.525 144.642 +92.9159 161.235 148.049 +92.6094 164.685 151.217 +92.5278 168.688 154.893 +92.6882 173.321 159.146 +92.4589 177.417 162.907 +92.2446 181.729 166.867 +91.0116 184.185 169.121 +89.1598 185.457 170.29 +87.4476 187.067 171.769 +91.5741 201.593 185.106 +90.7583 205.747 188.92 +87.9564 205.479 188.675 +85.6649 206.389 189.51 +82.6485 205.52 188.712 +80.238 206.113 189.257 +77.2853 205.273 188.485 +75.0058 206.188 189.326 +72.1345 205.45 188.648 +69.8912 206.478 189.592 +66.7887 204.914 188.156 +64.6059 206.125 189.268 +61.7719 205.238 188.453 +59.5043 206.204 189.34 +56.5607 204.774 188.027 +54.2852 205.708 188.885 +51.5544 204.891 188.134 +49.2293 205.649 188.831 +46.5104 204.723 187.98 +44.2553 205.814 188.982 +41.5788 204.925 188.166 +39.2746 205.842 189.007 +36.469 204.041 187.354 +34.2818 205.657 188.838 +31.6403 204.552 187.823 +29.3202 205.48 188.675 +26.7122 204.341 187.63 +24.4123 205.532 188.723 +21.7881 203.919 187.242 +19.483 205.227 188.443 +16.9349 203.948 187.268 +14.5965 205.152 188.374 +12.1 204.134 187.44 +9.70904 204.793 188.045 +7.2641 204.332 187.622 +4.84653 204.519 187.793 +2.41551 203.879 187.205 +1.63203e-14 205.213 188.43 +-2.41987 204.247 187.543 +-4.85351 204.813 188.063 +-7.23007 203.375 186.742 +-9.71253 204.866 188.112 +-12.0738 203.693 187.034 +-14.5599 204.637 187.902 +-16.8921 203.433 186.796 +-19.4063 204.418 187.701 +-21.7802 203.845 187.174 +-24.3339 204.872 188.117 +-26.6068 203.535 186.889 +-29.2053 204.674 187.935 +-31.5158 203.747 187.084 +-34.0259 204.122 187.428 +-36.3254 203.238 186.616 +-38.9824 204.309 187.601 +-41.1797 202.959 186.36 +-43.8017 203.705 187.045 +-46.0648 202.761 186.179 +-48.7778 203.763 187.099 +-50.8802 202.211 185.674 +-53.77 203.756 187.093 +-55.8828 202.32 185.774 +-58.7351 203.538 186.892 +-60.9061 202.362 185.812 +-63.8636 203.757 187.093 +-65.9016 202.193 185.657 +-68.8994 203.548 186.901 +-71.0578 202.384 185.833 +-73.9187 203.2 186.582 +-76.1362 202.221 185.682 +-79.1906 203.423 186.786 +-81.3988 202.412 185.858 +-84.5831 203.783 187.117 +-86.483 202.037 185.514 +-89.7076 203.365 186.734 +-92.1453 202.85 186.261 +-95.0008 203.225 186.605 +-97.4382 202.676 186.101 +-100.588 203.566 186.917 +-102.576 202.083 185.556 +-105.826 203.066 186.459 +-108.008 201.967 185.45 +-111.558 203.382 186.749 +-113.58 201.977 185.459 +-117.063 203.138 186.525 +-119.186 201.905 185.392 +-122.916 203.351 186.721 +-125.03 202.084 185.557 +-128.391 202.808 186.222 +-130.832 202.042 185.519 +-136.64 206.357 189.481 +-139.035 205.406 188.607 +-143.007 206.735 189.828 +-143.373 202.868 186.277 +-143.33 198.557 182.318 +-143.625 194.844 178.91 +-147.867 196.491 180.421 +-150.189 195.532 179.541 +-490.2 625.398 574.252 +-493.632 617.274 566.791 +-495.724 607.7 558.001 +-499.561 600.471 551.363 +-502.099 591.865 543.461 +-506.136 585.198 537.339 +-508.039 576.239 529.113 +-512.529 570.371 523.725 +-514.29 561.621 515.69 +-518.318 555.501 510.071 +-520.291 547.322 502.56 +-524.433 541.558 497.268 +-526.773 534.054 490.378 +-531.058 528.634 485.401 +-532.787 520.789 478.198 +-537.293 515.767 473.586 +-539.75 508.869 467.252 +-142.058 131.547 120.789 +-143.233 130.286 119.631 +-144.008 128.678 118.155 +-143.856 126.281 115.953 +-142.359 122.775 112.734 +-143.677 121.743 111.787 +-148.162 123.353 113.265 +-151.023 123.546 113.442 +-157.75 126.806 116.436 +-158.019 124.818 114.61 +-159.561 123.851 113.722 +-160.813 122.661 112.63 +-163.102 122.253 112.255 +-584.07 430.217 395.033 +-589.288 426.55 391.665 +-590.794 420.239 385.87 +-595.968 416.577 382.508 +-596.565 409.767 376.255 +-602.061 406.364 373.131 +-604.028 400.606 367.843 +-608.751 396.708 364.265 +-610.862 391.137 359.149 +-615.092 386.957 355.311 +-617.891 381.899 350.666 +-622.392 377.913 347.006 +-624.437 372.461 342 +-629.06 368.57 338.428 +-631.591 363.47 333.745 +-635.476 359.172 329.798 +-637.95 354.098 325.139 +-643.568 350.773 322.086 +-645.515 345.454 317.202 +-650.315 341.677 313.734 +-652.455 336.512 308.991 +-382.807 193.793 177.944 +-384.176 190.871 175.261 +-382.92 186.687 171.419 +-382.182 182.814 167.863 +-382.056 179.283 164.62 +-383.063 176.313 161.893 +-383.262 172.997 158.848 +-382.382 169.236 155.396 +-382.994 166.174 152.584 +-135.187 57.4904 52.7887 +-135.079 56.2928 51.6891 +-382.296 156.09 143.324 +-114.949 45.972 42.2123 +-114.607 44.8856 41.2147 +-112.562 43.1608 39.6311 +-111.376 41.8003 38.3818 +-111.419 40.9185 37.5721 +-109.923 39.4904 36.2608 +-110.025 38.6555 35.4941 +-109.663 37.6666 34.5861 +-109.377 36.7159 33.7132 +-109.9 36.0414 33.0938 +-109.13 34.9518 32.0933 +-109.724 34.3066 31.5009 +-109.942 33.5436 30.8003 +-109.593 32.6149 29.9476 +-109.882 31.8822 29.2748 +-110.349 31.2011 28.6494 +-110.527 30.439 27.9496 +-111.354 29.8533 27.4119 +-110.478 28.8168 26.4601 +-112.044 28.4173 26.0933 +-112.661 27.7662 25.4954 +-113.081 27.0637 24.8503 +-114.16 26.513 24.3447 +-114.757 25.8428 23.7293 +-116.592 25.4389 23.3585 +-118.139 24.9524 22.9117 +-120.839 24.6842 22.6655 +-158.991 31.3797 28.8134 +-160.228 30.5225 28.0263 +-161.457 29.6518 27.2268 +-162.872 28.802 26.4465 +-164.669 28.0025 25.7124 +-3198.83 522.359 479.64 +-859.009 134.492 123.493 +-866.253 129.816 119.2 +-874.335 125.186 114.948 +-380.225 51.9075 47.6624 +-381.81 49.5894 45.5339 +-381.988 47.0846 43.2339 +-903.834 105.444 96.8208 +-405.595 44.6493 40.9977 +-405.218 41.9482 38.5176 +-405.204 39.2939 36.0804 +-404.86 36.616 33.6215 +-404.682 33.9622 31.1847 +-404.77 31.3366 28.7738 +-405.027 28.7265 26.3772 +-404.455 26.0642 23.9326 +-404.051 23.423 21.5074 +-404.313 20.8249 19.1218 +-403.945 18.1983 16.71 +-406.043 15.6744 14.3925 +-404.615 13.0124 11.9482 +-405.053 10.4188 9.56677 +-3275.38 63.176 58.0093 +-144.578 1.85886 1.70684 +-146.494 0.941679 0.864667 +120.4 4.44089e-15 5.68434e-14 +120.195 0.778995 0.70244 +120.182 1.55793 1.40483 +120.859 2.35035 2.11937 +120.726 3.13094 2.82325 +120.685 3.91322 3.52865 +120.535 4.69132 4.23029 +120.974 5.49497 4.95496 +120.905 6.27877 5.66173 +121.026 7.07375 6.37858 +120.739 7.8449 7.07395 +121.438 8.68403 7.83062 +120.337 9.39304 8.46995 +121.116 10.2483 9.24115 +120.594 10.9966 9.91591 +121.353 11.865 10.699 +121.11 12.6407 11.3984 +120.759 13.4031 12.0859 +121.189 14.2549 12.854 +120.82 15.0153 13.5396 +121.427 15.9009 14.3382 +121.039 16.6602 15.0229 +120.642 17.4156 15.7041 +121.217 18.3152 16.5153 +121.095 19.1156 17.237 +120.768 19.8836 17.9295 +120.432 20.6488 18.6196 +121.06 21.5845 19.4633 +120.705 22.3503 20.1539 +120.922 23.2247 20.9423 +120.741 24.0267 21.6655 +121.032 24.9273 22.4776 +120.831 25.7313 23.2025 +120.715 26.5555 23.9458 +121.164 27.5106 24.807 +120.645 28.2501 25.4739 +121.355 29.2834 26.4056 +121.48 30.1865 27.22 +121.972 31.1903 28.1251 +121.224 31.8805 28.7474 +120.751 32.6395 29.4318 +120.737 33.5248 30.2302 +120.899 34.4656 31.0786 +120.303 35.1934 31.7348 +120.627 36.1943 32.6374 +120.751 37.1452 33.4948 +120.586 38.0135 34.2777 +120.869 39.0304 35.1947 +120.405 39.8123 35.8997 +120.934 40.9298 36.9075 +120.086 41.5865 37.4996 +120.315 42.6189 38.4306 +120.708 43.7226 39.4258 +120.19 44.5032 40.1297 +120.553 45.6176 41.1346 +120.19 46.4657 41.8993 +121.494 47.9751 43.2604 +121.628 49.0441 44.2244 +117.899 48.5343 43.7646 +116.28 48.8577 44.0563 +113.276 48.5697 43.7966 +111.753 48.8874 44.083 +107.489 47.9651 43.2513 +106.068 48.2718 43.5279 +103.377 47.9735 43.259 +101.882 48.2027 43.4656 +99.5502 48.0118 43.2935 +97.5646 47.9582 43.2452 +95.5051 47.8412 43.1396 +94.9393 48.4583 43.6961 +95.595 49.7107 44.8255 +95.5772 50.6302 45.6546 +96.6775 52.1644 47.038 +95.5786 52.5239 47.3622 +96.3154 53.9012 48.6041 +95.9958 54.7041 49.3282 +96.0585 55.7357 50.2583 +96.026 56.726 51.1513 +96.0552 57.7668 52.0898 +95.9901 58.765 52.9899 +95.9854 59.8145 53.9363 +95.9632 60.8683 54.8866 +95.9236 61.9265 55.8407 +95.7914 62.9395 56.7542 +96.3859 64.4523 58.1183 +95.6249 65.0745 58.6794 +96.3193 66.7048 60.1495 +95.6769 67.4287 60.8023 +94.5212 67.7883 61.1264 +93.4358 68.19 61.4887 +92.9845 69.0555 62.2692 +95.6741 72.3041 65.1985 +95.7239 73.6158 66.3813 +95.3371 74.6102 67.278 +95.6844 76.2032 68.7144 +95.3933 77.3135 69.7156 +95.0835 78.4253 70.7181 +95.2848 79.9841 72.1237 +95.5222 81.6075 73.5876 +95.0792 82.6747 74.55 +95.1968 84.2551 75.975 +94.6484 85.2703 76.8905 +94.7757 86.919 78.3771 +94.809 88.518 79.8189 +94.3809 89.7144 80.8978 +94.2971 91.2651 82.2961 +94.1239 92.763 83.6468 +93.982 94.3241 85.0544 +94.3395 96.4317 86.955 +94.3062 98.1881 88.5388 +94.2386 99.9519 90.1292 +94.4199 102.028 92.001 +93.8885 103.374 93.2151 +94.0501 105.527 95.1565 +93.8958 107.378 96.826 +93.7051 109.235 98.5001 +93.9547 111.665 100.691 +93.684 113.536 102.378 +93.8399 115.985 104.587 +93.5901 117.996 106.4 +93.6 120.399 108.567 +93.5112 122.747 110.684 +93.5198 125.297 112.983 +93.38 127.726 115.174 +93.5187 130.621 117.784 +93.8273 133.857 120.702 +93.3858 136.114 122.738 +93.4338 139.173 125.496 +93.3731 142.176 128.204 +92.9043 144.653 130.437 +92.976 148.077 133.525 +92.6425 150.971 136.134 +92.6953 154.619 139.424 +92.9883 158.823 143.215 +92.8768 162.496 146.527 +92.6094 166.042 149.725 +92.5278 170.079 153.364 +92.6882 174.749 157.576 +92.4948 178.948 161.362 +91.6143 181.975 164.092 +90.1565 183.958 165.88 +88.4254 185.446 167.221 +88.1964 190.225 171.531 +91.2885 202.621 182.709 +90.0167 205.748 185.528 +86.8438 204.552 184.45 +84.7001 205.746 185.527 +81.5692 204.508 184.41 +79.4938 205.885 185.652 +76.2164 204.102 184.044 +74.1775 205.593 185.388 +71.0078 203.909 183.87 +68.9961 205.514 185.317 +66.0417 204.292 184.216 +63.7736 205.147 184.986 +60.7979 203.668 183.652 +58.7766 205.361 185.179 +55.843 203.842 183.81 +53.7891 205.509 185.312 +50.8619 203.804 183.776 +48.6215 204.785 184.66 +45.8337 203.408 183.418 +43.7391 205.091 184.935 +41.0023 203.75 183.727 +38.7736 204.891 184.755 +36.0122 203.146 183.182 +33.9528 205.362 185.18 +31.2101 203.434 183.442 +29.0276 205.106 184.95 +26.3576 203.29 183.312 +24.0986 204.563 184.46 +21.4978 202.86 182.924 +19.2946 204.918 184.78 +16.77 203.627 183.616 +14.4395 204.618 184.51 +11.9212 202.775 182.847 +9.62877 204.774 184.65 +7.16463 203.195 183.226 +4.80465 204.422 184.333 +2.38322 202.812 182.881 +1.67644e-14 204.825 184.696 +-2.38147 202.664 182.747 +-4.79243 203.902 183.864 +-7.16201 203.121 183.159 +-9.59038 203.958 183.914 +-11.9386 203.071 183.115 +-14.3924 203.951 183.908 +-16.6968 202.738 182.814 +-19.2319 204.251 184.179 +-21.4978 202.86 182.924 +-24.0114 203.824 183.793 +-26.2713 202.625 182.712 +-28.9439 204.515 184.416 +-31.029 202.254 182.377 +-33.7456 204.109 184.05 +-35.8425 202.189 182.319 +-38.4953 203.42 183.429 +-40.6476 201.987 182.137 +-43.4106 203.55 183.547 +-45.5366 202.089 182.229 +-48.1874 202.956 183.011 +-50.3699 201.833 181.998 +-53.1212 202.957 183.011 +-55.2847 201.804 181.972 +-58.0074 202.673 182.756 +-60.1269 201.42 181.625 +-63.0538 202.831 182.898 +-65.0145 201.115 181.351 +-68.0526 202.704 182.783 +-70.2066 201.608 181.795 +-73.2199 202.938 182.995 +-75.2276 201.454 181.657 +-78.3361 202.887 182.949 +-80.4615 201.731 181.906 +-83.5891 203.048 183.094 +-85.4004 201.153 181.385 +-88.657 202.64 182.726 +-90.7491 201.424 181.629 +-93.8613 202.443 182.548 +-95.9361 201.197 181.424 +-99.3569 202.731 182.808 +-101.315 201.244 181.467 +-104.679 202.522 182.619 +-106.725 201.214 181.44 +-109.984 202.167 182.299 +-111.973 200.76 181.031 +-115.656 202.351 182.465 +-117.711 201.049 181.291 +-121.167 202.11 182.248 +-123.205 200.776 181.045 +-126.955 202.192 182.322 +-128.895 200.691 180.968 +-134.054 204.12 184.06 +-137.295 204.506 184.408 +-141.327 205.991 185.747 +-143.465 204.672 184.558 +-143.33 200.193 180.52 +-142.766 195.276 176.085 +-144.764 193.953 174.892 +-147.924 194.171 175.089 +-157.2 202.209 182.337 +-496.373 625.817 564.315 +-497.939 615.446 554.964 +-502.226 608.65 548.836 +-504.165 599.2 540.314 +-508.823 593.154 534.862 +-509.946 583.169 525.858 +-515.344 578.232 521.406 +-516.806 569.021 513.101 +-521.15 563.141 507.799 +-523.388 555.118 500.564 +-527.685 549.408 495.415 +-529.183 540.92 487.761 +-533.853 535.798 483.143 +-535.134 527.395 475.566 +-539.667 522.316 470.986 +-542.89 516.048 465.334 +-143.303 133.794 120.646 +-142.982 131.129 118.243 +-142.8 128.65 116.007 +-142.57 126.184 113.783 +-142.684 124.069 111.876 +-144.727 123.644 111.493 +-154.39 129.599 116.863 +-157.513 129.917 117.15 +-157.953 128.015 115.435 +-158.701 126.39 113.969 +-160.8 125.841 113.474 +-161.508 124.207 112.001 +-585.54 442.511 399.024 +-587.04 435.969 393.125 +-592.354 432.304 389.82 +-593.671 425.766 383.925 +-598.434 421.749 380.302 +-600.661 415.98 375.1 +-605.747 412.223 371.712 +-606.406 405.499 365.649 +-611.822 401.995 362.49 +-613.428 396.018 357.1 +-618.666 392.413 353.849 +-621.109 387.052 349.015 +-625.247 382.776 345.159 +-627.235 377.213 340.143 +-631.721 373.18 336.506 +-633.876 367.792 331.647 +-639.125 364.212 328.42 +-640.825 358.626 323.382 +-645.899 354.945 320.063 +-648.427 349.873 315.489 +-653.246 346.045 312.038 +-655.076 340.648 307.171 +-660.537 337.147 304.015 +-384.176 192.445 173.532 +-384.672 189.087 170.505 +-384.782 185.575 167.338 +-383.153 181.279 163.464 +-381.791 177.176 159.764 +-382.324 173.995 156.896 +-383.154 170.976 154.173 +-383.08 167.582 151.113 +-134.407 57.6301 51.9666 +-134.644 56.574 51.0143 +-2865.69 1179.69 1063.76 +-114.51 46.1738 41.6361 +-113.547 44.8371 40.4308 +-111.586 43.1394 38.8999 +-111.198 42.0774 37.9423 +-110.256 40.825 36.813 +-110.102 39.881 35.9618 +-109.393 38.7503 34.9421 +-108.938 37.726 34.0185 +-109.286 36.9878 33.3528 +-110.082 36.3989 32.8219 +-109.13 35.2399 31.7767 +-109.632 34.5603 31.164 +-109.942 33.8201 30.4964 +-109.593 32.8837 29.6521 +-109.882 32.145 28.986 +-109.976 31.3518 28.2707 +-110.246 30.6119 27.6035 +-111.354 30.0994 27.1414 +-111.326 29.2774 26.4002 +-112.139 28.6757 25.8577 +-112.661 27.995 25.2438 +-113.556 27.4015 24.7086 +-114.637 26.8432 24.2052 +-115.33 26.1861 23.6127 +-117.168 25.7752 23.2421 +-118.908 25.3218 22.8334 +-129.608 26.6937 24.0704 +-159.185 31.6768 28.5638 +-161.584 31.0344 27.9845 +-161.457 29.8962 26.9582 +-162.289 28.9354 26.0918 +-164.961 28.2835 25.5039 +-855.626 140.873 127.029 +-861.65 136.017 122.65 +-870.369 131.509 118.585 +-381.166 55.0242 49.6168 +-380.815 52.4165 47.2654 +-382.204 50.0498 45.1312 +-381.693 47.436 42.7743 +-406.039 47.7604 43.0668 +-406.288 45.0942 40.6626 +-405.713 42.3457 38.1842 +-405.204 39.6178 35.7244 +-404.562 36.8906 33.2653 +-406.073 34.3599 30.9832 +-405.069 31.6182 28.5109 +-405.027 28.9633 26.117 +-405.75 26.3632 23.7724 +-404.051 23.6161 21.2953 +-404.911 21.0277 18.9612 +-404.344 18.3665 16.5615 +-404.245 15.7336 14.1874 +-404.615 13.1197 11.8304 +-404.354 10.4865 9.45598 +-150.248 2.92191 2.63476 +-144.878 1.87807 1.6935 +-147.394 0.955272 0.861393 +120.5 5.77316e-15 2.84217e-14 +120.295 0.785951 0.69596 +120.282 1.57184 1.39187 +121.059 2.3733 2.10156 +120.826 3.15889 2.7972 +120.685 3.94489 3.49321 +120.634 4.73321 4.19126 +121.273 5.55317 4.91733 +121.104 6.34005 5.61411 +121.026 7.13101 6.31451 +120.739 7.9084 7.00289 +120.642 8.6969 7.70111 +121.332 9.54738 8.45421 +121.116 10.3312 9.14832 +121.686 11.186 9.9052 +121.353 11.961 10.5915 +121.11 12.743 11.2839 +121.649 13.6112 12.0527 +121.189 14.3703 12.7249 +121.017 15.1615 13.4255 +120.639 15.9256 14.1021 +121.137 16.8086 14.8841 +120.74 17.5709 15.559 +121.315 18.4785 16.3627 +121.095 19.2703 17.0639 +120.768 20.0445 17.7494 +120.432 20.816 18.4325 +121.06 21.7592 19.2678 +120.317 22.4588 19.8872 +121.309 23.4877 20.7983 +120.741 24.2212 21.4479 +121.225 25.1692 22.2873 +120.734 25.919 22.9512 +121.387 26.9193 23.8371 +121.068 27.7114 24.5385 +120.931 28.5463 25.2778 +121.355 29.5204 26.1403 +121.101 30.3359 26.8624 +121.972 31.4428 27.8426 +121.506 32.2134 28.525 +121.408 33.0829 29.2949 +120.737 33.7961 29.9265 +121.085 34.7983 30.8139 +120.303 35.4783 31.4161 +120.627 36.4873 32.3095 +120.936 37.5032 33.2091 +120.586 38.3212 33.9334 +121.052 39.406 34.8941 +120.405 40.1345 35.5391 +120.934 41.2611 36.5367 +120.448 42.0497 37.235 +120.405 42.9961 38.0731 +120.618 44.0437 39.0007 +120.19 44.8635 39.7266 +120.464 45.9528 40.6913 +120.013 46.7727 41.4173 +121.14 48.2228 42.7013 +121.453 49.3696 43.7168 +120.26 49.9072 44.1928 +118.542 50.2117 44.4625 +115.181 49.7864 44.0859 +113.477 50.043 44.3131 +110.317 49.6257 43.9436 +109.65 50.3055 44.5455 +105.243 49.2346 43.5973 +104.496 49.8399 44.1332 +100.808 49.012 43.4001 +100.15 49.6274 43.9451 +96.9145 48.9402 43.3365 +95.8459 49.317 43.6702 +95.595 50.1131 44.3752 +95.0073 50.7357 44.9265 +95.7067 52.0586 46.0979 +95.5786 52.9491 46.8864 +96.8745 54.6529 48.3952 +95.6784 54.9646 48.6712 +96.1373 56.233 49.7943 +96.1043 57.2318 50.6787 +96.0552 58.2344 51.5665 +95.9901 59.2407 52.4576 +95.9854 60.2987 53.3945 +96.0393 61.4097 54.3783 +95.9236 62.4277 55.2798 +96.5404 63.945 56.6233 +95.7914 64.5733 57.1796 +96.2884 66.0565 58.4931 +95.5148 66.6831 59.0479 +96.0396 68.2322 60.4196 +96.1757 69.5331 61.5716 +95.2189 70.0539 62.0327 +93.4088 69.9322 61.9249 +95.2536 72.5689 64.2598 +95.7239 74.2117 65.7145 +95.3371 75.2142 66.6022 +95.0706 76.3274 67.588 +95.3933 77.9393 69.0153 +95.0835 79.0601 70.0077 +95.351 80.6877 71.4489 +94.8661 81.7029 72.3479 +95.1441 83.4008 73.8515 +94.6183 84.4213 74.7551 +94.6484 85.9605 76.1181 +94.7127 87.5642 77.5381 +94.8712 89.2928 79.0688 +94.3809 90.4406 80.0851 +94.0536 91.7664 81.2592 +94.0637 93.4539 82.7535 +94.5173 95.6296 84.68 +94.3983 97.2729 86.1352 +94.2481 98.9222 87.5956 +94.0665 100.577 89.0608 +93.9668 102.36 90.6399 +93.7766 104.087 92.1693 +93.7741 106.069 93.9241 +93.8413 108.185 95.7976 +93.7588 110.183 97.567 +93.4248 111.934 99.1176 +93.8407 114.646 101.519 +93.2734 116.218 102.911 +93.5393 118.887 105.274 +93.6 121.374 107.477 +93.5605 123.806 109.63 +93.5198 126.311 111.848 +93.3323 128.694 113.958 +93.6126 131.81 116.718 +93.4117 134.342 118.96 +93.522 137.416 121.682 +93.4338 140.3 124.235 +93.0224 142.789 126.44 +93.1626 146.229 129.486 +92.976 149.275 132.183 +93.0572 152.874 135.37 +92.6953 155.87 138.023 +92.7092 159.628 141.351 +92.8768 163.811 145.055 +92.7242 167.594 148.404 +92.5278 171.455 151.824 +92.6882 176.164 155.993 +92.7098 180.816 160.113 +90.1784 180.573 159.898 +89.7803 184.673 163.528 +87.4574 184.9 163.729 +91.3544 198.631 175.888 +90.6857 202.912 179.679 +88.9042 204.85 181.394 +85.5207 203.066 179.815 +83.3844 204.19 180.81 +80.2911 202.932 179.697 +78.1432 204.025 180.665 +75.2543 203.157 179.896 +73.1164 204.292 180.901 +69.856 202.225 179.07 +68.1736 204.707 181.269 +65.0379 202.816 179.593 +63.0088 204.327 180.932 +59.9321 202.392 179.218 +57.9034 203.948 180.596 +54.9857 202.337 179.17 +52.9686 204.012 180.653 +50.0783 202.289 179.127 +48.0485 204.009 180.65 +45.2561 202.47 179.287 +43.1603 204.014 180.655 +40.3963 202.363 179.193 +38.2726 203.88 180.536 +35.5553 202.193 179.042 +33.4044 203.68 180.359 +30.8366 202.626 179.426 +28.5781 203.564 180.256 +26.0605 202.625 179.425 +23.7935 203.608 180.295 +21.2232 201.89 178.774 +18.9947 203.366 180.081 +16.5075 202.062 178.926 +14.2511 203.583 180.273 +11.786 202.098 178.957 +9.49964 203.663 180.344 +7.05992 201.847 178.735 +4.74705 203.607 180.294 +2.35006 201.609 178.525 +1.52101e-14 203.188 179.923 +-2.35267 201.833 178.723 +-4.73135 202.933 179.697 +-7.06254 201.922 178.802 +-9.46823 202.99 179.748 +-11.7511 201.499 178.428 +-14.2249 203.209 179.942 +-16.4648 201.539 178.463 +-18.9668 203.067 179.816 +-21.129 200.995 177.981 +-23.7325 203.087 179.833 +-25.8784 201.21 178.171 +-28.4526 202.671 179.465 +-30.6441 201.362 178.306 +-33.1972 202.417 179.241 +-35.3726 201.154 178.122 +-38.036 202.619 179.42 +-40.012 200.439 177.488 +-42.8318 202.461 179.28 +-44.926 200.993 177.979 +-47.5275 201.797 178.692 +-49.5681 200.227 177.301 +-52.3007 201.44 178.375 +-54.4873 200.503 177.545 +-57.1757 201.385 178.326 +-59.3694 200.492 177.535 +-62.064 201.264 178.219 +-64.2208 200.268 177.337 +-67.2543 201.947 178.824 +-69.0798 199.978 177.081 +-72.1329 201.544 178.468 +-74.2388 200.416 177.469 +-77.3163 201.866 178.753 +-79.1835 200.133 177.218 +-82.5658 202.185 179.035 +-84.348 200.282 177.35 +-87.5445 201.717 178.62 +-89.6386 200.569 177.604 +-92.559 201.25 178.207 +-94.5675 199.932 177.04 +-97.9888 201.558 178.48 +-99.8441 199.928 177.036 +-103.246 201.365 178.309 +-105.149 199.847 176.965 +-108.673 201.374 178.316 +-110.634 199.965 177.069 +-114.054 201.163 178.13 +-116.156 199.999 177.099 +-119.825 201.489 178.419 +-121.422 199.473 176.633 +-125.18 200.978 177.966 +-126.872 199.14 176.338 +-130.854 200.86 177.862 +-133.859 201.002 177.988 +-139.647 205.19 181.696 +-141.895 204.07 180.704 +-143.424 201.946 178.823 +-143.291 197.58 174.957 +-143.988 194.475 172.208 +-144.083 190.66 168.83 +-150.1 194.639 172.353 +-156.119 198.425 175.705 +-500.617 623.765 552.344 +-505.152 617.151 546.488 +-506.921 607.351 537.81 +-511.832 601.491 532.62 +-513.268 591.719 523.968 +-518.379 586.346 519.21 +-520.105 577.289 511.189 +-524.719 571.586 506.14 +-525.625 562.003 497.654 +-530.763 557.085 493.299 +-532.063 548.266 485.49 +-537.72 544.047 481.754 +-538.624 535.132 473.859 +-141.902 138.452 122.599 +-143.203 137.224 121.512 +-143.739 135.287 119.797 +-143.548 132.714 117.518 +-142.8 129.692 114.842 +-143.085 127.664 113.046 +-148.399 130.083 115.189 +-150.894 129.956 115.076 +-158.3 133.956 118.618 +-157.848 131.247 116.22 +-160.25 130.929 115.937 +-160.542 128.891 114.133 +-161.97 127.783 113.152 +-163.175 126.505 112.02 +-589.605 449.19 397.758 +-590.434 442.039 391.426 +-595.564 438.165 387.995 +-597.412 431.917 382.463 +-602.423 427.997 378.991 +-603.367 421.237 373.006 +-608.917 417.734 369.904 +-610.568 411.586 364.46 +-615.791 407.879 361.177 +-616.975 401.531 355.556 +-622.392 397.972 352.404 +-623.637 391.773 346.915 +-629.646 388.588 344.095 +-630.887 382.481 338.687 +-635.634 378.531 335.189 +-637.816 373.073 330.356 +-643.251 369.53 327.219 +-644.579 363.647 322.009 +-649.597 359.867 318.662 +-651.42 354.333 313.762 +-657.805 351.281 311.059 +-658.434 345.167 305.645 +-664.328 341.827 302.688 +-384.922 194.379 172.123 +-383.921 190.245 168.462 +-383.44 186.425 165.079 +-383.068 182.706 161.786 +-381.791 178.61 158.159 +-383.603 175.991 155.84 +-383.154 172.36 152.625 +-384.373 169.508 150.099 +-381.831 165.044 146.146 +-118.804 50.3223 44.5604 +-118.948 49.3627 43.7107 +-112.928 45.9045 40.6484 +-112.223 44.6729 39.5578 +-110.61 43.1084 38.1725 +-110.841 42.2821 37.4408 +-109.808 40.9884 36.2953 +-109.563 40.0069 35.4261 +-109.303 39.0317 34.5626 +-109.391 38.1895 33.8168 +-109.832 37.4734 33.1827 +-109.717 36.5717 32.3843 +-109.956 35.7938 31.6954 +-109.356 34.7523 30.7732 +-109.295 33.8933 30.0125 +-110.428 33.4023 29.5777 +-110.534 32.5972 28.8648 +-110.723 31.8202 28.1768 +-110.808 31.0169 27.4655 +-111.26 30.3174 26.8461 +-111.703 29.6144 26.2235 +-112.611 29.0297 25.7058 +-113.42 28.4116 25.1585 +-114.127 27.7621 24.5833 +-115.304 27.218 24.1016 +-115.617 26.4637 23.4336 +-119.181 26.4303 23.404 +-120.35 25.8364 22.8781 +-161.215 33.4722 29.6396 +-161.02 32.3013 28.6028 +-162.455 31.4544 27.8529 +-160.875 30.0296 26.5912 +-165.206 29.694 26.294 +-3192.52 551.807 488.625 +-859.433 142.645 126.312 +-864.291 137.538 121.79 +-874.975 133.275 118.015 +-381.853 55.5696 49.2069 +-383.076 53.1547 47.0685 +-381.121 50.3118 44.5511 +-903.931 113.248 100.281 +-404.755 47.9947 42.4993 +-404.705 45.2821 40.0973 +-404.921 42.6051 37.7268 +-405.699 39.9873 35.4088 +-404.165 37.1528 32.8988 +-405.278 34.5702 30.6119 +-405.069 31.8741 28.2245 +-405.027 29.1977 25.8546 +-405.352 26.5505 23.5105 +-405.247 23.8777 21.1437 +-403.714 21.1352 18.7152 +-404.644 18.5289 16.4073 +-403.946 15.8492 14.0345 +-404.914 13.2356 11.7201 +-404.354 10.5714 9.36099 +-3275.38 64.2123 56.86 +-146.078 1.90895 1.69038 +-146.994 0.960391 0.850426 +120.5 5.77316e-15 2.84217e-14 +120.195 0.791541 0.688271 +120.282 1.58434 1.37763 +119.959 2.37043 2.06116 +120.826 3.184 2.76859 +120.585 3.97296 3.45461 +120.535 4.76688 4.14496 +120.475 5.56045 4.83499 +120.905 6.3799 5.54753 +120.826 7.17584 6.23962 +120.639 7.96469 6.92555 +120.542 8.75878 7.61603 +121.332 9.62327 8.36774 +121.116 10.4134 9.05474 +120.793 11.1921 9.7319 +120.461 11.9674 10.406 +121.11 12.8443 11.1685 +120.66 13.6078 11.8324 +121.189 14.4845 12.5947 +120.82 15.2571 13.2665 +121.328 16.1439 14.0377 +121.039 16.9285 14.7199 +120.74 17.7105 15.3999 +120.531 18.505 16.0907 +121.192 19.4392 16.903 +120.768 20.2038 17.5679 +121.212 21.1172 18.362 +120.963 21.9146 19.0554 +120.414 22.6555 19.6997 +121.018 23.6177 20.5363 +121.031 24.4723 21.2794 +121.225 25.3692 22.0593 +120.734 26.1249 22.7165 +121.195 27.0904 23.556 +121.259 27.9757 24.3258 +120.836 28.7505 24.9995 +121.355 29.755 25.873 +120.816 30.5051 26.5252 +120.932 31.4224 27.3228 +121.412 32.4443 28.2113 +121.502 33.3716 29.0177 +120.643 34.0383 29.5974 +120.992 35.0479 30.4752 +121.047 35.9815 31.2871 +120.534 36.7491 31.9545 +120.936 37.8013 32.8694 +120.494 38.5962 33.5606 +121.235 39.7794 34.5894 +120.771 40.5763 35.2824 +120.934 41.589 36.163 +120.448 42.3839 36.8541 +120.585 43.4028 37.7401 +119.899 44.1291 38.3716 +120.816 45.4557 39.5252 +120.375 46.2838 40.2453 +120.545 47.3535 41.1754 +120.169 48.2164 41.9257 +120.486 49.366 42.9253 +121.31 50.7429 44.1225 +120.892 51.6141 44.8801 +117.346 51.1254 44.4551 +116.665 51.8579 45.0921 +112.718 51.1084 44.4404 +111.184 51.415 44.707 +107.363 50.6257 44.0206 +106.773 51.3307 44.6337 +103.24 50.5934 43.9926 +102.068 50.9798 44.3286 +99.4845 50.6372 44.0307 +98.1534 50.9058 44.2642 +94.9397 50.1651 43.6202 +95.4958 51.4019 44.6956 +95.7067 52.4724 45.6264 +95.7394 53.4597 46.4849 +95.996 54.5877 47.4658 +96.1544 55.6771 48.4131 +95.9797 56.587 49.2042 +96.4173 57.8745 50.3237 +96.133 58.7447 51.0804 +95.9901 59.7115 51.921 +95.9854 60.7779 52.8483 +96.0393 61.8978 53.8221 +95.9236 62.9239 54.7143 +95.8663 64.0032 55.6528 +95.7914 65.0865 56.5948 +95.6249 66.1226 57.4957 +96.0999 67.6248 58.8019 +95.967 68.7225 59.7564 +95.888 69.8761 60.7595 +95.6469 70.928 61.6741 +95.318 71.9287 62.5443 +95.2536 73.1456 63.6025 +95.585 74.693 64.9479 +95.3371 75.8119 65.9209 +95.6844 77.4306 67.3284 +95.3258 78.5029 68.2608 +95.6857 80.1933 69.7306 +95.351 81.329 70.7181 +95.5222 82.922 72.1033 +95.1441 84.0637 73.0961 +95.2611 85.6703 74.493 +94.6484 86.6437 75.3395 +94.9644 88.4948 76.9491 +94.809 89.9437 78.2089 +94.6272 91.3971 79.4727 +94.1145 92.5554 80.4799 +94.0035 94.1363 81.8545 +94.4579 96.3285 83.7607 +93.8693 97.4966 84.7764 +94.19 99.6473 86.6465 +94.1239 101.438 88.2036 +93.9102 103.111 89.6583 +93.8326 104.977 91.281 +93.6085 106.723 92.7994 +93.9502 109.171 94.928 +93.7588 111.059 96.569 +93.9017 113.399 98.6044 +93.684 115.364 100.313 +93.7884 117.788 102.421 +93.4886 119.767 104.141 +93.6 122.339 106.377 +93.5112 124.724 108.452 +93.4713 127.249 110.647 +93.4277 129.849 112.908 +93.1901 132.258 115.003 +93.2732 135.209 117.569 +93.3858 138.306 120.262 +93.4338 141.415 122.965 +93.2415 144.263 125.441 +93.1626 147.391 128.161 +92.9338 150.393 130.772 +93.0572 154.089 133.985 +93.102 157.799 137.211 +93.068 161.52 140.447 +92.8768 165.113 143.571 +92.7242 168.926 146.886 +92.7526 173.238 150.636 +92.395 177.002 153.909 +91.8497 180.563 157.005 +90.4586 182.574 158.754 +88.6858 183.872 159.882 +91.0959 194.123 168.796 +91.5172 200.566 174.399 +89.353 201.519 175.227 +87.2973 202.745 176.294 +84.0473 201.154 174.91 +82.2734 203.071 176.576 +78.9563 201.145 174.902 +77.0958 202.89 176.42 +73.8647 200.99 174.767 +71.9517 202.635 176.198 +69.0047 201.348 175.078 +66.9398 202.601 176.168 +64.1041 201.493 175.204 +62.064 202.863 176.396 +59.1097 201.201 174.95 +56.9886 202.321 175.924 +54.2879 201.357 175.086 +52.0909 202.226 175.842 +49.4769 201.448 175.166 +47.3191 202.509 176.088 +44.5298 200.804 174.605 +42.4876 202.431 176.02 +39.8642 201.285 175.024 +37.6881 202.362 175.96 +35.0854 201.106 174.868 +32.9413 202.453 176.039 +30.3385 200.937 174.721 +28.1809 202.33 175.933 +25.6196 200.78 174.585 +23.41 201.919 175.575 +20.8701 200.11 174.002 +18.7157 201.97 175.62 +16.2755 200.806 174.607 +14.0208 201.885 175.546 +11.5897 200.311 174.177 +9.3426 201.888 175.548 +6.96569 200.735 174.546 +4.66677 201.754 175.431 +2.31428 200.117 174.008 +1.46549e-14 201.634 175.327 +-2.31951 200.57 174.402 +-4.67026 201.905 175.563 +-6.93166 199.754 173.693 +-9.33911 201.813 175.483 +-11.5984 200.462 174.308 +-14.0156 201.81 175.48 +-16.2328 200.279 174.149 +-18.6808 201.595 175.293 +-20.8544 199.959 173.871 +-23.3926 201.769 175.445 +-25.495 199.804 173.736 +-28.0973 201.73 175.41 +-30.1913 199.963 173.874 +-32.7341 201.18 174.932 +-34.8374 199.685 173.632 +-37.4097 200.867 174.66 +-39.4503 199.195 173.206 +-42.1434 200.791 174.594 +-44.1997 199.315 173.311 +-46.885 200.651 174.473 +-48.9485 199.296 173.294 +-51.5757 200.226 174.103 +-53.61 198.843 172.901 +-56.4896 200.55 174.384 +-58.3521 198.622 172.708 +-61.3217 200.436 174.286 +-63.1937 198.631 172.716 +-66.1656 200.258 174.13 +-68.0282 198.499 172.601 +-71.0458 200.085 173.98 +-73.0362 198.736 172.807 +-76.0759 200.206 174.086 +-78.1894 199.191 173.203 +-81.2793 200.617 174.443 +-83.0549 198.779 172.845 +-86.1848 200.162 174.048 +-88.2742 199.086 173.112 +-91.387 200.281 174.151 +-93.1655 198.533 172.631 +-96.7917 200.678 174.496 +-98.5133 198.831 172.89 +-101.597 199.725 173.667 +-103.61 198.486 172.59 +-107.025 199.895 173.815 +-108.835 198.277 172.408 +-112.335 199.706 173.651 +-114.401 198.544 172.64 +-117.994 199.989 173.897 +-119.639 198.105 172.259 +-123.447 199.772 173.708 +-125.365 198.339 172.462 +-129.144 199.812 173.742 +-130.914 198.143 172.292 +-137.014 202.921 176.447 +-139.402 202.078 175.714 +-143.283 203.351 176.821 +-143.386 199.283 173.283 +-142.97 194.635 169.241 +-143.541 191.453 166.475 +-147.65 192.984 167.806 +-150.028 192.2 167.124 +-504.171 633.186 550.575 +-508.6 626.303 544.59 +-510.312 616.274 535.87 +-515.109 610.153 530.548 +-516.862 600.599 522.24 +-521.58 594.656 517.072 +-523.237 585.38 509.006 +-528.23 579.984 504.315 +-529.296 570.426 496.004 +-534.537 565.505 491.725 +-536.354 557.08 484.399 +-540.932 551.646 479.674 +-144.917 145.121 126.188 +-143.242 140.869 122.49 +-143.388 138.494 120.425 +-143.116 135.772 118.058 +-142.541 132.831 115.501 +-144.199 132.003 114.781 +-145.977 131.28 114.152 +-158.725 140.24 121.944 +-158.897 137.937 119.941 +-160.288 136.716 118.879 +-160.123 134.197 116.689 +-162.885 134.139 116.638 +-162.861 131.792 114.597 +-586.891 466.697 405.807 +-587.82 459.34 399.411 +-593.53 455.774 396.31 +-594.182 448.38 389.881 +-599.772 444.768 386.74 +-601.296 438.18 381.012 +-606.123 434.048 377.419 +-607.389 427.416 371.652 +-612.972 423.858 368.558 +-614.209 417.331 362.883 +-619.237 413.42 359.482 +-621.277 407.545 354.373 +-626.651 403.879 351.186 +-627.773 397.506 345.644 +-633.041 393.789 342.412 +-634.151 387.515 336.957 +-640.017 384.17 334.048 +-641.914 378.454 329.078 +-646.583 374.397 325.55 +-647.933 368.444 320.374 +-653.616 364.971 317.354 +-655.546 359.411 312.519 +-661.225 355.913 309.478 +-663.431 350.55 304.815 +-668.202 346.552 301.338 +-669.862 340.958 296.473 +-384.338 191.966 166.92 +-384.866 188.605 163.998 +-383.827 184.523 160.449 +-382.554 180.389 156.854 +-378.999 175.261 152.395 +-381.097 172.797 150.252 +-383.08 170.281 148.065 +-383.563 167.11 145.308 +-114.539 48.9014 42.5214 +-113.613 47.5234 41.3231 +-111.258 45.5852 39.6378 +-110.898 44.4965 38.6911 +-110.61 43.451 37.782 +-110.574 42.5153 36.9684 +-109.719 41.2805 35.8948 +-109.743 40.391 35.1213 +-109.754 39.5043 34.3503 +-109.663 38.5887 33.5541 +-109.559 37.6774 32.7617 +-110.265 37.0465 32.2131 +-109.956 36.0783 31.3712 +-110.369 35.3529 30.7404 +-109.849 34.3359 29.8562 +-110.335 33.6395 29.2506 +-110.999 32.9946 28.6899 +-110.443 31.992 27.818 +-111.464 31.4485 27.3455 +-111.542 30.6358 26.6388 +-112.269 30.0009 26.0867 +-112.328 29.1867 25.3788 +-114.368 28.8769 25.1094 +-114.412 28.0527 24.3927 +-115.59 27.5024 23.9142 +-117.625 27.1373 23.5968 +-121.099 27.069 23.5373 +-127.079 27.4978 23.9102 +-160.926 33.6777 29.2838 +-161.213 32.5972 28.3443 +-161.197 31.4587 27.3544 +-163.107 30.6881 26.6843 +-162.483 29.4367 25.5961 +-854.328 148.839 129.42 +-862.655 144.318 125.489 +-868.204 139.259 121.09 +-381.779 58.614 50.9667 +-381.362 55.9393 48.641 +-382.093 53.4396 46.4674 +-381.416 50.751 44.1296 +-3231.56 408.081 354.839 +-404.063 48.2935 41.9927 +-404.112 45.5751 39.629 +-405.515 43.0067 37.3957 +-405.402 40.2756 35.0209 +-402.974 37.3377 32.4664 +-405.179 34.8364 30.2914 +-404.671 32.0959 27.9084 +-405.027 29.4298 25.5901 +-404.455 26.7023 23.2185 +-403.851 23.9846 20.8554 +-404.612 21.3506 18.565 +-403.446 18.6208 16.1914 +-404.545 15.9989 13.9115 +-404.615 13.331 11.5917 +-403.454 10.6317 9.24463 +-146.85 2.9018 2.52321 +-144.878 1.90832 1.65934 +-146.794 0.966711 0.840586 +120.5 5.77316e-15 2.84217e-14 +120.295 0.79838 0.681667 +120.182 1.59538 1.36215 +120.859 2.40684 2.05499 +119.927 3.18496 2.71935 +120.485 4.00065 3.4158 +120.435 4.80011 4.09839 +120.375 5.59919 4.78066 +120.905 6.42969 5.48975 +120.826 7.23184 6.17463 +120.739 8.03346 6.85907 +120.642 8.83443 7.54294 +121.232 9.69038 8.27376 +121.017 10.486 8.95309 +121.488 11.3443 9.68592 +121.353 12.1502 10.374 +121.011 12.9339 11.0432 +121.451 13.804 11.786 +121.189 14.5975 12.4636 +120.82 15.3762 13.1283 +120.344 16.1378 13.7787 +121.039 17.0606 14.5665 +120.74 17.8487 15.2394 +121.217 18.7555 16.0136 +120.997 19.5592 16.6999 +120.67 20.345 17.3708 +121.309 21.2991 18.1854 +120.963 22.0856 18.8569 +120.511 22.8507 19.5102 +120.825 23.7639 20.2899 +121.513 24.7616 21.1418 +121.128 25.5469 21.8122 +120.927 26.3707 22.5156 +121.291 27.3234 23.3291 +121.068 28.1496 24.0345 +120.645 28.9291 24.7001 +121.26 29.9637 25.5834 +120.722 30.7191 26.2283 +121.405 31.7915 27.1439 +121.035 32.5959 27.8308 +121.22 33.554 28.6488 +120.831 34.3573 29.3346 +120.992 35.3214 30.1578 +120.954 36.2345 30.9375 +121.368 37.2922 31.8405 +120.474 37.9507 32.4028 +120.678 38.9569 33.2619 +121.052 40.0292 34.1774 +120.588 40.831 34.862 +120.843 41.8821 35.7594 +120.358 42.6825 36.4428 +120.405 43.6761 37.2911 +120.618 44.7402 38.1997 +119.742 45.4032 38.7658 +120.286 46.6105 39.7966 +120.545 47.723 40.7465 +119.993 48.5212 41.428 +120.222 49.6423 42.3852 +120.698 50.8807 43.4426 +121.066 52.0918 44.4766 +119.858 52.6271 44.9336 +118.819 53.2275 45.4463 +114.775 52.4473 44.7801 +113.742 53.0083 45.2591 +109.737 52.1492 44.5256 +109.051 52.8345 45.1108 +105.505 52.1066 44.4892 +104.152 52.427 44.7628 +101.972 52.3082 44.6614 +100.131 52.3369 44.6858 +97.561 51.9525 44.3577 +95.74 51.9355 44.3432 +95.6258 52.8371 45.113 +95.659 53.8316 45.9621 +95.6765 54.8306 46.815 +94.9644 55.4171 47.3158 +95.9797 57.0286 48.6917 +96.1043 58.1368 49.6379 +96.0552 59.1553 50.5075 +95.9901 60.1775 51.3802 +95.9854 61.2522 52.2979 +95.9632 62.3314 53.2193 +95.9236 63.4149 54.1444 +95.8663 64.5027 55.0732 +95.7914 65.5944 56.0053 +95.6249 66.6387 56.8969 +96.0999 68.1525 58.1894 +95.3142 68.7877 58.7318 +95.8161 70.3686 60.0815 +96.1462 71.8547 61.3504 +95.318 72.49 61.8928 +95.8844 74.2047 63.3569 +95.7239 75.3852 64.3648 +94.7176 75.9073 64.8106 +95.6162 77.9793 66.5797 +95.3258 79.1155 67.5498 +95.0835 80.3103 68.5699 +95.2185 81.8495 69.8841 +94.8661 82.9949 70.862 +95.1441 84.7197 72.3347 +95.2611 86.3388 73.7171 +94.5848 87.2613 74.5048 +94.8386 89.0675 76.0469 +94.6222 90.4669 77.2417 +94.5656 92.0502 78.5936 +94.0536 93.2176 79.5903 +94.0637 94.9318 81.0539 +94.2794 96.8969 82.7318 +94.3983 98.8111 84.3661 +94.3062 100.548 85.8492 +94.0092 102.105 87.1784 +94.0234 104.041 88.8316 +93.8885 105.859 90.3835 +93.5533 107.493 91.7789 +93.9502 110.023 93.9392 +93.7051 111.861 95.508 +93.4248 113.704 97.082 +93.7885 116.395 99.3793 +93.8399 118.773 101.41 +93.9961 121.357 103.616 +93.6 123.293 105.269 +93.5605 125.763 107.378 +93.5198 128.308 109.551 +93.4277 130.862 111.731 +93.1432 133.223 113.748 +93.3194 136.332 116.402 +93.3858 139.386 119.009 +93.4338 142.518 121.684 +93.0224 145.047 123.843 +93.2057 148.611 126.886 +92.976 151.636 129.469 +93.0157 155.222 132.531 +92.6953 158.335 135.189 +92.7092 162.152 138.448 +92.6424 165.982 141.718 +92.7242 170.244 145.356 +92.6777 174.449 148.947 +92.285 178.171 152.124 +91.0971 180.48 154.096 +89.3379 181.719 155.154 +87.7624 183.377 156.57 +91.7635 197.072 168.262 +91.3544 201.772 172.276 +88.4963 201.144 171.739 +86.3393 202.086 172.543 +83.2955 200.911 171.54 +81.0162 201.528 172.067 +78.2462 200.892 171.524 +75.9932 201.55 172.085 +73.1431 200.581 171.258 +71.1235 201.866 172.356 +68.1534 200.416 171.118 +66.2624 202.115 172.569 +63.3104 200.551 171.233 +61.2542 201.778 172.281 +58.4387 200.47 171.163 +56.4064 201.816 172.313 +53.6698 200.619 171.291 +51.4421 201.266 171.843 +48.8756 200.552 171.234 +46.7287 201.543 172.08 +44.1172 200.495 171.185 +41.9244 201.306 171.878 +39.3321 200.148 170.889 +37.1731 201.155 171.748 +34.72 200.564 171.244 +32.4294 200.863 171.499 +29.9989 200.239 170.967 +27.815 201.262 171.84 +25.3416 200.152 170.893 +23.1311 201.07 171.676 +20.6818 199.851 170.635 +18.4645 200.816 171.459 +16.1168 200.4 171.104 +13.8167 200.499 171.188 +11.4719 199.823 170.611 +9.21347 200.651 171.319 +6.88977 200.097 170.845 +4.60744 200.743 171.397 +2.29072 199.625 170.443 +1.60982e-14 200.546 171.228 +-2.29333 199.854 170.637 +-4.60569 200.667 171.332 +-6.88716 200.021 170.78 +-9.21347 200.651 171.319 +-11.4763 199.899 170.676 +-13.8167 200.499 171.188 +-16.0619 199.716 170.52 +-18.4087 200.209 170.941 +-20.6426 199.473 170.312 +-23.0963 200.768 171.418 +-25.217 199.168 170.052 +-27.7209 200.581 171.259 +-29.9083 199.635 170.45 +-32.3076 200.108 170.854 +-34.4589 199.056 169.956 +-37.0061 200.251 170.976 +-39.0217 198.568 169.54 +-41.5646 199.579 170.403 +-43.6716 198.47 169.456 +-46.2946 199.671 170.482 +-48.4564 198.832 169.765 +-50.8888 199.101 169.995 +-53.0518 198.308 169.318 +-55.7619 199.511 170.345 +-57.8543 198.465 169.452 +-60.5118 199.333 170.193 +-62.5867 198.258 169.275 +-65.3189 199.238 170.111 +-67.3773 198.134 169.169 +-70.3211 199.589 170.411 +-72.3414 198.382 169.381 +-75.1663 199.356 170.213 +-77.2238 198.266 169.282 +-79.9929 198.983 169.894 +-82.3032 198.517 169.496 +-85.1651 199.337 170.197 +-87.1636 198.116 169.154 +-90.28 199.399 170.249 +-92.2976 198.219 169.241 +-95.4578 199.457 170.298 +-97.2876 197.89 168.961 +-100.486 199.082 169.979 +-102.437 197.771 168.86 +-105.602 198.776 169.717 +-107.496 197.365 168.513 +-111.046 198.954 169.869 +-112.886 197.443 168.579 +-116.327 198.701 169.653 +-118.602 197.921 168.987 +-121.587 198.298 169.31 +-123.944 197.621 168.731 +-127.259 198.431 169.423 +-129.576 197.647 168.754 +-134.063 200.1 170.848 +-137.832 201.362 171.925 +-141.358 202.185 172.628 +-143.434 200.905 171.535 +-142.97 196.154 167.478 +-143.246 192.55 164.401 +-144.35 190.143 162.347 +-148.1 191.209 163.256 +-156.211 197.716 168.812 +-511.787 635.146 542.295 +-513.333 624.759 533.427 +-518.064 618.443 528.034 +-519.64 608.539 519.578 +-524.285 602.404 514.339 +-526.48 593.605 506.827 +-530.496 587.018 501.203 +-532.853 578.74 494.135 +-537.208 572.767 489.035 +-539.175 564.38 481.875 +-142.044 145.988 124.646 +-143.112 144.432 123.318 +-143.85 142.571 121.729 +-144.249 140.413 119.886 +-143.054 136.772 116.777 +-142.919 134.222 114.6 +-148.651 137.141 117.093 +-153.241 138.888 118.584 +-159.764 142.26 121.464 +-159.882 139.875 119.427 +-161.746 139.036 118.71 +-161.729 136.601 116.631 +-163.223 135.466 115.663 +-585.632 477.608 407.788 +-589.92 472.766 403.653 +-592.266 466.426 398.24 +-596.193 461.393 393.943 +-597.717 454.568 388.116 +-602.483 450.264 384.441 +-604.893 444.241 379.298 +-609.967 440.209 375.856 +-611.339 433.551 370.171 +-616.29 429.478 366.693 +-617.851 423.081 361.232 +-622.457 418.814 357.589 +-624.749 413.021 352.642 +-630.148 409.303 349.468 +-631.297 402.856 343.964 +-636.359 398.942 340.622 +-638.503 393.22 335.736 +-642.991 388.967 332.105 +-645.223 383.375 327.33 +-650.391 379.541 324.057 +-651.687 373.47 318.874 +-656.43 369.403 315.4 +-658.378 363.781 310.6 +-663.504 359.927 307.31 +-665.807 354.551 302.72 +-672.981 351.755 300.333 +-684.619 351.188 299.848 +-700.047 352.382 300.868 +-384.195 189.746 162.007 +-384.84 186.453 159.196 +-382.809 181.918 155.324 +-381.556 177.82 151.825 +-382.125 174.615 149.089 +-122.524 54.8873 46.8634 +-115.441 50.6878 43.2778 +-113.059 48.6464 41.5349 +-112.476 47.4149 40.4834 +-111.082 45.8684 39.163 +-110.633 44.7367 38.1967 +-110.255 43.6496 37.2686 +-109.861 42.5709 36.3475 +-109.898 41.6705 35.5788 +-109.833 40.7396 34.784 +-109.213 39.6162 33.8248 +-109.754 38.9221 33.2321 +-109.559 37.9714 32.4205 +-109.443 37.0572 31.6399 +-110.047 36.3902 31.0704 +-110.276 35.599 30.3949 +-110.219 34.7203 29.6446 +-110.613 33.9875 29.0189 +-110.72 33.1684 28.3196 +-111.096 32.4324 27.6912 +-111.745 31.7737 27.1288 +-111.917 30.9789 26.4502 +-112.834 30.3873 25.9451 +-113.746 29.7859 25.4315 +-114.937 29.247 24.9715 +-115.744 28.6007 24.4196 +-117.403 28.1516 24.0362 +-118.582 27.5715 23.5409 +-123.784 27.885 23.8086 +-160.627 35.0282 29.9075 +-160.926 33.9405 28.9788 +-161.503 32.9106 28.0994 +-163.907 32.2374 27.5246 +-163.98 31.0932 26.5477 +-3185.97 581.7 496.662 +-857.446 150.548 128.539 +-866.56 146.102 124.744 +-872.41 141.025 120.409 +-382.367 59.1624 50.5136 +-382.442 56.5355 48.2707 +-381.601 53.7873 45.9242 +-383.287 51.398 43.8842 +-407.139 51.8146 44.24 +-404.755 48.7537 41.6265 +-406.189 46.1668 39.4178 +-404.227 43.2048 36.8888 +-403.915 40.441 34.529 +-403.371 37.6662 32.1598 +-403.788 34.9877 29.8729 +-405.069 32.3781 27.6448 +-405.923 29.7251 25.3796 +-404.355 26.9041 22.971 +-405.745 24.2852 20.735 +-405.31 21.5544 18.4034 +-405.143 18.8451 16.0901 +-403.846 16.0959 13.7429 +-405.813 13.4748 11.505 +-404.054 10.7307 9.16198 +-148.749 2.96227 2.52922 +-144.878 1.92321 1.64206 +-146.294 0.970931 0.828993 +119.6 2.66454e-15 -1.13687e-13 +120.395 0.805164 0.674995 +120.182 1.6076 1.3477 +119.959 2.40723 2.01806 +121.026 3.23878 2.71517 +120.485 4.0313 3.37957 +120.435 4.83688 4.05492 +120.375 5.64209 4.72995 +120.905 6.47895 5.43152 +120.826 7.28725 6.10914 +120.739 8.09501 6.78631 +120.642 8.90212 7.46293 +121.232 9.76463 8.186 +121.017 10.5664 8.85813 +121.686 11.4499 9.59886 +121.353 12.2433 10.2639 +121.011 13.033 10.926 +120.66 13.8191 11.585 +121.189 14.7094 12.3314 +120.82 15.494 12.9891 +120.442 16.2748 13.6437 +121.137 17.2053 14.4237 +120.74 17.9855 15.0778 +120.433 18.7769 15.7413 +120.606 19.6454 16.4693 +121.451 20.6336 17.2978 +120.53 21.3243 17.8769 +121.06 22.2726 18.6719 +121.384 23.1926 19.4431 +120.922 23.9652 20.0908 +120.548 24.753 20.7513 +120.261 25.5582 21.4263 +120.927 26.5728 22.2768 +120.524 27.3587 22.9357 +121.164 28.3877 23.7983 +120.836 29.1969 24.4767 +121.26 30.1933 25.312 +120.722 30.9544 25.9501 +121.405 32.0351 26.856 +120.847 32.7945 27.4927 +121.22 33.8111 28.345 +120.737 34.5936 29.001 +120.712 35.5096 29.7689 +120.954 36.5121 30.6093 +120.627 37.3483 31.3103 +120.289 38.1829 32.01 +120.586 39.2254 32.8839 +120.135 40.0303 33.5587 +120.771 41.2062 34.5445 +120.752 42.1712 35.3535 +121.083 43.2686 36.2735 +120.315 43.9777 36.8679 +119.899 44.8142 37.5692 +120.816 46.1614 38.6986 +120.108 46.898 39.3161 +120.545 48.0887 40.3143 +119.904 48.857 40.9584 +120.222 50.0227 41.9356 +120.523 51.1963 42.9195 +121.066 52.4909 44.0048 +121.33 53.6817 45.0031 +119.422 53.9076 45.1925 +116.403 53.5991 44.9338 +114.595 53.8149 45.1148 +112.112 53.6857 45.0065 +109.641 53.5276 44.8739 +107.014 53.2571 44.6471 +104.903 53.2094 44.6072 +102.801 53.1375 44.5469 +100.873 53.1285 44.5393 +98.6259 52.9219 44.3662 +96.9612 53.0009 44.4324 +94.8977 52.8366 44.2946 +95.659 54.2441 45.4746 +95.0376 54.8818 46.0092 +94.9644 55.8417 46.814 +95.9797 57.4655 48.1752 +96.6521 58.9162 49.3914 +95.589 59.3191 49.7292 +96.0673 60.6873 50.8761 +95.9854 61.7215 51.7432 +95.9632 62.8089 52.6548 +95.9236 63.9008 53.5701 +95.8663 64.9969 54.489 +95.7171 66.0457 55.3683 +95.6249 67.1492 56.2934 +96.0999 68.6747 57.5722 +95.967 69.7895 58.5068 +95.8161 70.9077 59.4443 +95.6469 72.0292 60.3844 +95.8837 73.4789 61.5998 +95.6741 74.6093 62.5474 +95.585 75.8526 63.5897 +95.4748 77.1001 64.6355 +95.6162 78.5768 65.8735 +95.3258 79.7217 66.8333 +95.0165 80.8689 67.795 +95.1522 82.4192 69.0947 +94.8661 83.6308 70.1104 +95.0792 85.3106 71.5186 +95.1968 86.9413 72.8858 +94.5848 87.9299 73.7145 +94.7757 89.6902 75.1902 +94.6222 91.16 76.4224 +94.8119 92.9977 77.963 +94.0536 93.9318 78.7461 +94.6053 96.2101 80.6561 +93.982 97.3313 81.596 +93.8105 98.9483 82.9515 +94.19 101.194 84.8345 +94.1239 103.013 86.3591 +93.9102 104.712 87.7834 +93.7207 106.48 89.2655 +93.6085 108.38 90.8587 +93.5145 110.352 92.5117 +93.8125 112.847 94.6035 +94.0077 115.29 96.6516 +93.684 117.156 98.2153 +93.8914 119.749 100.389 +93.5393 121.692 102.019 +93.6 124.238 104.153 +93.5605 126.727 106.239 +93.5683 129.359 108.446 +93.4277 131.865 110.546 +93.1901 134.311 112.598 +93.2732 137.309 115.11 +93.4766 140.59 117.861 +93.4784 143.679 120.451 +93.0224 146.158 122.529 +92.8612 149.196 125.076 +92.6379 152.242 127.63 +93.0572 156.482 131.184 +92.6953 159.548 133.755 +92.749 163.465 137.038 +92.6424 167.254 140.214 +92.6094 171.336 143.637 +92.6777 175.785 147.367 +91.9552 178.894 149.973 +89.9862 179.646 150.603 +88.9177 182.25 152.786 +87.8308 184.926 155.03 +91.7301 198.51 166.417 +90.4428 201.289 168.747 +87.8934 201.305 168.761 +85.3814 201.375 168.819 +83.085 201.938 169.291 +80.4899 201.753 169.137 +77.7918 201.255 168.719 +75.4419 201.62 169.025 +72.9828 201.674 169.07 +70.5023 201.636 169.038 +67.9031 201.21 168.681 +65.6334 201.73 169.117 +63.1236 201.491 168.917 +60.5568 201.009 168.513 +58.3088 201.557 168.971 +55.9698 201.789 169.166 +53.4705 201.405 168.844 +51.175 201.754 169.137 +48.7298 201.486 168.912 +46.4162 201.729 169.116 +43.8201 200.671 168.229 +41.6429 201.487 168.913 +39.2434 201.227 168.695 +36.9087 201.254 168.718 +34.4981 200.809 168.345 +32.2101 201.032 168.532 +29.9196 201.24 168.706 +27.5537 200.899 168.42 +25.2554 200.999 168.504 +22.9481 201.008 168.511 +20.6426 201.001 168.506 +18.346 201.055 168.551 +16.0436 201.017 168.519 +13.7225 200.658 168.218 +11.4326 200.665 168.224 +9.14018 200.58 168.153 +6.84265 200.251 167.877 +4.56031 200.212 167.845 +2.28112 200.312 167.928 +1.58762e-14 200.626 168.191 +-2.28635 200.772 168.314 +-4.56904 200.596 168.166 +-6.83742 200.097 167.748 +-9.15763 200.963 168.474 +-11.4021 200.129 167.775 +-13.733 200.81 168.346 +-15.952 199.87 167.557 +-18.2832 200.367 167.974 +-20.5877 200.466 168.057 +-22.8522 200.168 167.807 +-25.1499 200.16 167.801 +-27.5119 200.594 168.164 +-29.7158 199.87 167.557 +-32.0882 200.271 167.894 +-34.3414 199.897 167.581 +-36.5886 199.508 167.254 +-38.9182 199.559 167.297 +-41.2987 199.822 167.517 +-43.5065 199.235 167.025 +-45.8084 199.087 166.901 +-48.1284 199 166.828 +-50.5262 199.197 166.993 +-52.8524 199.077 166.892 +-55.3669 199.615 167.344 +-57.6595 199.312 167.09 +-59.927 198.919 166.76 +-62.4233 199.256 167.043 +-64.8593 199.351 167.122 +-67.1018 198.836 166.691 +-69.6482 199.194 166.991 +-72.1009 199.237 167.027 +-74.615 199.411 167.173 +-76.9398 199.051 166.871 +-79.4082 199.041 166.863 +-82.0626 199.453 167.208 +-84.5161 199.334 167.108 +-86.7828 198.762 166.628 +-89.3685 198.898 166.743 +-91.9304 198.943 166.78 +-94.5344 199.041 166.862 +-97.0074 198.831 166.687 +-99.6263 198.89 166.736 +-102.254 198.93 166.77 +-104.89 198.949 166.785 +-107.19 198.311 166.251 +-110.108 198.785 166.648 +-112.647 198.533 166.437 +-115.269 198.403 166.328 +-117.939 198.322 166.26 +-120.573 198.151 166.116 +-123.212 197.959 165.956 +-126.251 198.368 166.298 +-128.862 198.064 166.044 +-131.93 198.424 166.345 +-137.093 201.817 169.19 +-140.466 202.449 169.719 +-143.243 202.175 169.49 +-143.455 198.327 166.264 +-143.246 194.025 162.657 +-144.4 191.666 160.68 +-147.44 191.816 160.805 +-150.803 192.334 161.24 +-512.728 641.188 537.529 +-515.241 631.886 529.731 +-519.085 624.409 523.462 +-522.145 616.158 516.545 +-525.996 609 510.545 +-528.605 600.567 503.475 +-531.799 592.968 497.104 +-534.688 585.183 490.578 +-538.254 578.279 484.79 +-541.115 570.751 478.479 +-142.757 147.846 123.944 +-142.991 145.416 121.907 +-143.546 143.36 120.184 +-142.649 139.919 117.298 +-142.992 137.76 115.489 +-144.429 136.679 114.583 +-151.641 140.971 118.181 +-159.54 145.705 122.149 +-160.868 144.341 121.006 +-160.538 141.524 118.644 +-162.143 140.445 117.74 +-163.469 139.128 116.635 +-162.479 135.882 113.915 +-587.678 482.949 404.872 +-591.297 477.5 400.304 +-593.863 471.268 395.079 +-597.385 465.857 390.543 +-600.616 460.272 385.861 +-604.194 455.003 381.444 +-607.051 449.242 376.614 +-610.62 444.057 372.268 +-613.971 438.755 367.823 +-618.281 434.166 363.976 +-620.526 428.169 358.948 +-624.03 423.089 354.689 +-627.239 417.844 350.292 +-630.833 412.887 346.137 +-634.132 407.766 341.844 +-637.285 402.583 337.499 +-640.446 397.438 333.186 +-644.243 392.711 329.222 +-647.43 387.632 324.965 +-651.819 383.288 321.323 +-653.923 377.623 316.574 +-657.957 373.099 312.781 +-661.614 368.37 308.816 +-665.051 363.53 304.759 +-668.182 358.542 300.577 +-677.844 357.011 299.294 +-696.226 359.878 301.697 +-700.881 355.505 298.031 +-384.027 191.116 160.219 +-383.237 187.1 156.852 +-382.809 183.312 153.676 +-382.75 179.744 150.685 +-379.382 174.69 146.449 +-115.889 52.3129 43.8556 +-114.229 50.5397 42.3691 +-113.407 49.1701 41.2209 +-111.601 47.4067 39.7426 +-110.643 46.037 38.5943 +-110.28 44.9355 37.6709 +-110.078 43.9132 36.8139 +-109.95 42.9319 35.9912 +-109.719 41.9214 35.1441 +-109.923 41.0853 34.4431 +-109.123 39.8868 33.4384 +-109.935 39.285 32.9339 +-109.65 38.2941 32.1032 +-110.265 37.6217 31.5395 +-110.139 36.6996 30.7664 +-110.092 35.8119 30.0222 +-110.219 34.9863 29.3301 +-110.52 34.2192 28.6871 +-110.72 33.4226 28.0192 +-111.376 32.7633 27.4665 +-112.401 32.2051 26.9986 +-112.763 31.4522 26.3674 +-112.834 30.6202 25.6699 +-114.219 30.1388 25.2664 +-114.557 29.3739 24.6251 +-115.363 28.7251 24.0812 +-118.166 28.5516 23.9357 +-119.634 28.0292 23.4978 +-126.085 28.621 23.9939 +-160.435 35.2543 29.5549 +-161.504 34.3235 28.7745 +-162.855 33.4404 28.0342 +-163.907 32.4844 27.2327 +-163.398 31.2201 26.1729 +-853.449 157.018 131.633 +-860.174 152.184 127.581 +-866.56 147.222 123.421 +-874.268 142.409 119.386 +-381.681 59.5087 49.8881 +-382.736 57.0125 47.7954 +-381.011 54.1157 45.3669 +-3226.72 436.012 365.523 +-405.758 52.0345 43.6222 +-405.347 49.1992 41.2453 +-405.497 46.4413 38.9332 +-405.218 43.6424 36.5868 +-405.204 40.8809 34.2718 +-404.165 38.0295 31.8813 +-404.98 35.3599 29.6433 +-405.069 32.6262 27.3516 +-404.429 29.8426 25.0181 +-404.854 27.1436 22.7554 +-405.745 24.4713 20.5151 +-405.31 21.7195 18.2082 +-405.542 19.0081 15.9351 +-149.195 5.99196 5.02325 +-405.913 13.5814 11.3858 +-403.454 10.7968 9.05131 +-148.249 2.97494 2.49399 +-145.778 1.94998 1.63473 +-145.994 0.976363 0.818517 +120.5 5.77316e-15 2.84217e-14 +120.295 0.810549 0.667151 +120.282 1.62104 1.33425 +120.859 2.44353 2.01123 +120.127 3.23889 2.66588 +120.485 4.06162 3.34306 +120.435 4.87327 4.01112 +120.375 5.68454 4.67886 +120.905 6.52769 5.37285 +120.727 7.33602 6.03817 +120.739 8.15591 6.71301 +120.642 8.96908 7.38232 +121.332 9.84619 8.10425 +121.017 10.6458 8.76244 +121.686 11.5361 9.49518 +121.353 12.3354 10.153 +121.011 13.1311 10.808 +120.66 13.923 11.4598 +121.189 14.82 12.1982 +120.82 15.6105 12.8488 +120.442 16.3972 13.4963 +121.039 17.3206 14.2564 +120.642 18.106 14.9028 +120.433 18.9182 15.5713 +120.606 19.7931 16.2914 +120.67 20.6551 17.0009 +121.407 21.6411 17.8124 +120.963 22.4222 18.4554 +120.414 23.1803 19.0794 +120.922 24.1454 19.8738 +120.644 24.9592 20.5436 +121.225 25.9569 21.3647 +120.734 26.7301 22.0012 +120.524 27.5645 22.6879 +121.164 28.6012 23.5413 +120.836 29.4165 24.2123 +121.165 30.3966 25.019 +120.722 31.1873 25.6698 +121.31 32.2509 26.5452 +120.941 33.067 27.2169 +121.408 34.1183 28.0822 +120.831 34.8809 28.71 +120.712 35.7767 29.4473 +121.047 36.815 30.3019 +120.719 37.6582 30.9959 +120.474 38.5292 31.7128 +120.586 39.5205 32.5287 +120.96 40.6085 33.4243 +120.771 41.5162 34.1714 +120.752 42.4884 34.9716 +120.901 43.5288 35.8279 +120.405 44.3418 36.4971 +120.888 45.5236 37.4698 +119.921 46.1642 37.997 +120.197 47.2859 38.9203 +120.545 48.4504 39.8788 +120.611 49.5145 40.7547 +120.222 50.399 41.4826 +120.523 51.5814 42.4559 +121.066 52.8857 43.5295 +121.417 54.1241 44.5488 +119.249 54.2347 44.6398 +117.346 54.4397 44.8085 +114.68 54.2601 44.6607 +112.112 54.0896 44.5204 +109.641 53.9302 44.3892 +107.685 53.9942 44.4418 +104.903 53.6097 44.1253 +102.801 53.5372 44.0657 +100.873 53.5281 44.0582 +99.2812 53.6744 44.1786 +96.9612 53.3996 43.9525 +95.3831 53.5063 44.0403 +94.9355 54.2388 44.6432 +94.9578 55.2481 45.4739 +94.9644 56.2618 46.3083 +95.9009 57.8502 47.6157 +96.8086 59.4555 48.937 +95.2004 59.5224 48.992 +96.0673 61.1438 50.3266 +95.9854 62.1858 51.1842 +95.9632 63.2814 52.086 +95.8481 64.3309 52.9498 +95.7914 65.4346 53.8583 +96.4602 67.0592 55.1955 +95.6249 67.6544 55.6853 +95.9536 69.086 56.8637 +95.967 70.3145 57.8748 +95.6722 71.3339 58.7139 +95.5042 72.4628 59.6431 +95.318 73.5949 60.5749 +95.6741 75.1705 61.8717 +95.585 76.4232 62.9028 +95.9566 78.0723 64.2602 +95.6844 79.2242 65.2083 +95.3258 80.3214 66.1114 +95.0165 81.4772 67.0627 +95.1522 83.0392 68.3483 +94.9317 84.3178 69.4007 +95.0792 85.9523 70.7461 +95.2611 87.6548 72.1474 +94.6484 88.6508 72.9672 +94.7757 90.3649 74.378 +94.6222 91.8457 75.5969 +94.8119 93.6972 77.1208 +94.2363 94.8222 78.0468 +94.3646 96.6868 79.5815 +94.4579 98.5599 81.1232 +93.8105 99.6926 82.0555 +93.7255 101.452 83.5038 +94.2386 103.914 85.5304 +94.0234 105.627 86.94 +93.7207 107.281 88.3012 +93.6085 109.196 89.8773 +93.9502 111.7 91.9388 +93.8125 113.696 93.5816 +93.4778 115.503 95.0687 +93.684 118.037 97.1544 +93.3249 119.922 98.7057 +93.9961 123.207 101.41 +93.55 125.105 102.972 +93.5605 127.68 105.092 +93.6167 130.399 107.329 +93.5231 132.992 109.464 +93.284 135.458 111.494 +93.735 139.026 114.431 +93.3858 141.51 116.475 +93.4784 144.76 119.15 +93.0224 147.258 121.206 +92.8612 150.318 123.725 +92.976 153.947 126.712 +93.0157 157.588 129.709 +92.6953 160.749 132.31 +92.749 164.695 135.558 +92.6424 168.512 138.7 +92.6094 172.625 142.085 +92.7151 177.18 145.834 +91.9918 180.312 148.412 +90.2012 181.429 149.332 +88.9177 183.621 151.136 +87.9334 186.535 153.534 +91.3629 199.202 163.96 +90.3452 202.584 166.744 +87.8934 202.819 166.938 +85.4741 203.11 167.177 +83.085 203.457 167.463 +80.4899 203.271 167.31 +78.019 203.361 167.384 +75.4419 203.137 167.199 +72.9561 203.117 167.182 +70.4505 203.004 167.09 +67.9281 202.798 166.92 +65.6334 203.248 167.29 +62.9369 202.406 166.598 +60.6918 202.973 167.064 +58.2872 202.998 167.085 +55.7619 202.552 166.717 +53.4705 202.92 167.02 +51.0032 202.59 166.749 +48.7298 203.002 167.088 +46.3467 202.942 167.039 +43.9522 202.79 166.914 +41.5334 202.468 166.649 +39.2286 202.664 166.81 +36.7974 202.156 166.392 +34.5111 202.396 166.589 +32.2101 202.545 166.711 +29.9083 202.677 166.821 +27.5642 202.487 166.664 +25.2554 202.511 166.684 +22.9394 202.443 166.628 +20.6269 202.359 166.559 +18.2971 202.028 166.286 +16.0497 202.606 166.762 +13.7173 202.09 166.337 +11.4283 202.098 166.344 +9.14716 202.243 166.464 +6.84265 201.757 166.063 +4.56555 201.95 166.222 +2.28112 201.819 166.114 +1.52101e-14 202.135 166.375 +-2.28548 202.205 166.432 +-4.56904 202.104 166.349 +-6.86098 202.298 166.508 +-9.15065 202.321 166.527 +-11.437 202.251 166.47 +-13.6806 201.55 165.893 +-16.0069 202.067 166.318 +-18.2762 201.797 166.096 +-20.5877 201.974 166.242 +-22.8522 201.674 165.995 +-25.1308 201.512 165.862 +-27.4283 201.489 165.843 +-29.7498 201.603 165.937 +-32.0882 201.778 166.08 +-34.3414 201.401 165.77 +-36.6164 201.163 165.574 +-38.8887 200.908 165.364 +-41.1579 200.638 165.142 +-43.49 200.658 165.158 +-45.8258 200.661 165.162 +-48.2924 201.18 165.589 +-50.5262 200.695 165.189 +-52.8724 200.65 165.152 +-55.3461 201.041 165.474 +-57.6812 200.887 165.347 +-59.927 200.415 164.959 +-62.3999 200.679 165.176 +-64.6173 200.102 164.701 +-67.1519 200.481 165.013 +-69.6741 200.766 165.248 +-72.1009 200.736 165.223 +-74.367 200.242 164.816 +-76.9398 200.548 165.068 +-79.4082 200.539 165.06 +-82.0025 200.807 165.281 +-84.2689 200.246 164.82 +-86.8146 200.329 164.888 +-89.4661 200.614 165.122 +-91.9638 200.512 165.039 +-94.5686 200.61 165.12 +-97.0425 200.4 164.946 +-99.5546 200.243 164.817 +-102.254 200.427 164.968 +-104.553 199.801 164.454 +-107.496 200.373 164.924 +-110.069 200.21 164.79 +-112.607 199.957 164.581 +-115.31 199.966 164.589 +-117.939 199.814 164.464 +-120.573 199.641 164.322 +-123.212 199.448 164.163 +-126.295 199.929 164.559 +-128.907 199.624 164.307 +-131.975 199.986 164.605 +-137.463 203.883 167.813 +-140.137 203.494 167.493 +-143.577 204.171 168.05 +-143.067 199.279 164.023 +-143.197 195.417 160.845 +-144.45 193.175 159 +-147.237 192.993 158.85 +-150.443 193.317 159.117 +-512.571 645.814 531.56 +-515.717 637.228 524.493 +-518.655 628.585 517.379 +-522.309 620.987 511.126 +-525.002 612.422 504.076 +-528.605 605.085 498.037 +-531.289 596.855 491.263 +-535.204 590.154 485.747 +-538.254 582.629 479.553 +-541.468 575.419 473.619 +-142.52 148.709 122.4 +-143.413 146.942 120.946 +-143.546 144.439 118.885 +-143.203 141.519 116.482 +-142.992 138.796 114.241 +-144.744 138.008 113.592 +-151.196 141.614 116.561 +-159.09 146.387 120.489 +-159.699 144.37 118.829 +-160.341 142.414 117.219 +-162.342 141.675 116.611 +-163.87 140.519 115.659 +-162.885 137.247 112.966 +-588.292 487.091 400.917 +-591.09 480.924 395.841 +-594.28 475.146 391.085 +-597.385 469.361 386.324 +-600.829 463.899 381.829 +-603.767 458.101 377.057 +-607.411 452.89 372.767 +-609.967 446.919 367.853 +-614.337 442.319 364.066 +-616.954 436.493 359.271 +-620.526 431.39 355.071 +-624.03 426.272 350.858 +-627.466 421.139 346.633 +-630.833 415.993 342.398 +-634.132 410.834 338.151 +-636.59 405.17 333.49 +-640.679 400.574 329.707 +-644.243 395.665 325.666 +-648.139 390.977 321.807 +-651.502 385.984 317.697 +-654.482 380.789 313.422 +-657.957 375.905 309.402 +-661.938 371.322 305.63 +-664.562 365.996 301.246 +-669.165 361.771 297.768 +-677.514 359.522 295.918 +-696.723 362.845 298.652 +-701.048 358.264 294.882 +-382.937 192.007 158.038 +-383.827 188.797 155.396 +-382.724 184.65 151.982 +-381.556 180.531 148.592 +-380.497 176.521 145.292 +-115.717 52.6281 43.3174 +-114.229 50.9199 41.9114 +-112.537 49.1598 40.4627 +-111.601 47.7633 39.3133 +-110.643 46.3833 38.1774 +-110.28 45.2735 37.264 +-110.078 44.2436 36.4162 +-109.861 43.2198 35.5735 +-109.719 42.2368 34.7645 +-109.923 41.3944 34.0711 +-109.845 40.4527 33.296 +-109.845 39.5479 32.5513 +-109.559 38.5502 31.7301 +-109.534 37.6535 30.992 +-110.139 36.9756 30.4341 +-110.092 36.0812 29.6979 +-110.219 35.2495 29.0133 +-110.52 34.4766 28.3772 +-110.72 33.674 27.7166 +-112.216 33.2588 27.3748 +-111.745 32.258 26.5511 +-112.763 31.6888 26.0826 +-112.834 30.8505 25.3926 +-114.124 30.3405 24.9728 +-114.842 29.6683 24.4196 +-116.124 29.132 23.9782 +-117.307 28.5575 23.5052 +-120.208 28.3755 23.3554 +-125.51 28.7048 23.6265 +-161.396 35.7323 29.4108 +-160.444 34.3547 28.2768 +-163.241 33.7719 27.7972 +-164.779 32.9027 27.0818 +-162.816 31.3429 25.7979 +-166.761 30.9117 25.4429 +-860.369 153.363 126.231 +-867.048 148.413 122.156 +-874.268 143.48 118.096 +-381.681 59.9564 49.3492 +-382.344 57.3824 47.2306 +-382.781 54.776 45.0853 +-3226.72 439.292 361.574 +-404.377 52.2475 43.0042 +-404.36 49.4485 40.7003 +-405.497 46.7906 38.5127 +-405.515 44.003 36.2182 +-405.204 41.1884 33.9016 +-404.76 38.372 31.5834 +-404.284 35.5647 29.2728 +-405.069 32.8716 27.0562 +-405.126 30.1189 24.7905 +-404.754 27.3411 22.504 +-404.051 24.5523 20.2087 +-404.412 21.8344 17.9716 +-405.542 19.1511 15.763 +-148.197 5.99663 4.93574 +-404.115 13.6229 11.2128 +-404.054 10.8942 8.96688 +-148.749 3.00742 2.47537 +-144.878 1.95252 1.60709 +-145.494 0.980341 0.806904 +119.6 2.66454e-15 -1.13687e-13 +120.295 0.816535 0.659812 +120.182 1.63165 1.31848 +119.959 2.44325 1.9743 +121.026 3.28724 2.6563 +120.485 4.09162 3.30629 +121.234 4.94182 3.99331 +120.375 5.72651 4.62739 +120.905 6.5759 5.31374 +120.826 7.39629 5.97667 +120.739 8.21614 6.63916 +120.642 9.03532 7.30111 +121.232 9.91073 8.0085 +121.017 10.7245 8.66604 +121.686 11.6213 9.39072 +121.353 12.4264 10.0414 +120.912 13.2172 10.6803 +120.66 14.0258 11.3338 +121.189 14.9295 12.064 +120.721 15.713 12.6971 +121.23 16.6263 13.4351 +120.94 17.4344 14.0881 +120.642 18.2397 14.7388 +120.433 19.0579 15.4 +120.801 19.9717 16.1384 +120.67 20.8076 16.8139 +121.407 21.8009 17.6165 +121.06 22.6059 18.267 +120.414 23.3515 18.8695 +121.115 24.3626 19.6866 +121.32 25.2845 20.4315 +121.128 26.1278 21.1129 +120.831 26.9489 21.7764 +120.428 27.7459 22.4205 +121.068 28.7897 23.2639 +120.741 29.6104 23.9271 +121.165 30.6211 24.7437 +121.575 31.6397 25.5669 +121.31 32.489 26.2532 +120.941 33.3112 26.9175 +121.408 34.3702 27.7733 +120.737 35.1112 28.3721 +120.899 36.0966 29.1683 +120.768 37.0014 29.8995 +120.627 37.9071 30.6313 +121.028 38.9923 31.5082 +120.586 39.8123 32.1709 +121.052 40.9394 33.0816 +120.771 41.8228 33.7954 +120.024 42.5441 34.3783 +120.086 43.5544 35.1947 +120.405 44.6692 36.0955 +120.888 45.8598 37.0576 +119.832 46.4704 37.551 +120.108 47.5997 38.4636 +119.746 48.485 39.179 +119.816 49.5515 40.0408 +120.222 50.7711 41.0263 +119.735 51.6229 41.7146 +120.979 53.238 43.0197 +121.33 54.4849 44.0272 +119.422 54.7142 44.2125 +117.346 54.8417 44.3155 +113.913 54.295 43.8738 +112.112 54.489 44.0306 +109.641 54.3285 43.9008 +107.014 54.0539 43.679 +104.819 53.9626 43.6052 +102.801 53.9326 43.5809 +101.532 54.2758 43.8583 +98.6259 53.7138 43.4041 +96.9612 53.794 43.4689 +95.3831 53.9015 43.5558 +95.659 55.0557 44.4885 +95.6765 56.0774 45.3141 +94.9644 56.6773 45.7988 +95.9009 58.2775 47.0919 +96.7304 59.8461 48.3594 +95.2004 59.9619 48.453 +95.9901 61.5459 49.7329 +95.9854 62.645 50.6211 +95.9632 63.7487 51.513 +95.8481 64.8059 52.3673 +95.7914 65.9179 53.2658 +95.7914 67.086 54.2097 +95.6986 68.2065 55.1152 +96.0999 69.7023 56.3238 +95.967 70.8337 57.2381 +95.8161 71.9687 58.1552 +95.5042 72.9979 58.9869 +95.318 74.1384 59.9085 +95.6741 75.7256 61.1911 +95.585 76.9876 62.2108 +95.4748 78.2537 63.2339 +95.6844 79.8093 64.491 +95.3258 80.9146 65.3841 +95.6188 82.5985 66.7448 +95.1522 83.6524 67.5964 +94.8005 84.8238 68.543 +95.1441 86.6462 70.0156 +94.6826 87.7654 70.92 +94.6484 89.3055 72.1644 +94.7127 90.9715 73.5107 +94.6222 92.524 74.7652 +94.8119 94.3892 76.2724 +93.9928 95.2759 76.9889 +94.3044 97.3386 78.6557 +93.9225 98.7254 79.7764 +93.8105 100.429 81.1528 +94.2481 102.772 83.0459 +94.2386 104.682 84.5895 +93.9668 106.343 85.932 +93.7207 108.073 87.3298 +93.6637 110.067 88.9407 +93.5145 112.003 90.5057 +93.7588 114.47 92.4993 +93.4248 116.29 93.9694 +93.684 118.909 96.0856 +93.8399 121.474 98.1584 +93.4886 123.446 99.7523 +93.6 126.097 101.894 +93.5605 128.623 103.936 +93.0834 130.614 105.544 +93.5231 133.975 108.26 +93.1901 136.321 110.156 +93.6888 139.984 113.116 +93.3858 142.555 115.194 +93.1215 145.272 117.389 +93.0224 148.345 119.872 +93.2057 151.99 122.817 +92.976 155.084 125.318 +93.0572 158.823 128.339 +92.6953 161.936 130.854 +92.749 165.911 134.067 +92.6424 169.756 137.174 +92.6477 173.971 140.58 +92.6777 178.416 144.171 +91.9552 181.571 146.721 +90.2012 182.769 147.689 +88.9177 184.977 149.473 +87.9676 187.986 151.904 +91.7301 201.48 162.808 +90.3452 204.08 164.91 +87.8299 204.169 164.982 +85.4432 204.536 165.278 +82.7843 204.218 165.021 +80.2853 204.251 165.048 +77.735 204.117 164.94 +75.4419 204.637 165.36 +72.9828 204.691 165.404 +70.4505 204.503 165.251 +67.9281 204.295 165.084 +65.3915 203.994 164.84 +63.147 204.582 165.315 +60.5118 203.866 164.737 +58.2655 204.421 165.185 +55.9282 204.656 165.375 +53.4705 204.418 165.183 +51.0032 204.086 164.915 +48.7298 204.501 165.25 +46.3641 204.518 165.263 +43.9192 204.134 164.954 +41.6585 204.578 165.312 +39.0956 203.469 164.416 +36.7974 203.649 164.561 +34.485 203.737 164.632 +32.2223 204.117 164.94 +29.9309 204.328 165.11 +27.5642 203.982 164.83 +25.2554 204.007 164.85 +22.8871 203.473 164.419 +20.5406 203 164.037 +18.2971 203.52 164.457 +16.0558 204.18 164.99 +13.7225 203.66 164.57 +11.4283 203.59 164.514 +9.14018 203.581 164.507 +6.84527 203.325 164.299 +4.56555 203.441 164.394 +2.28199 203.387 164.35 +1.60982e-14 203.628 164.544 +-2.27675 202.92 163.972 +-4.57079 203.675 164.582 +-6.83742 203.091 164.111 +-9.11924 203.116 164.13 +-11.4021 203.123 164.136 +-13.6806 203.039 164.068 +-15.9459 202.783 163.861 +-18.2762 203.287 164.269 +-20.5877 203.466 164.413 +-22.8522 203.163 164.168 +-25.2362 203.852 164.725 +-27.4283 202.977 164.018 +-29.7272 202.937 163.986 +-32.0882 203.268 164.253 +-34.3414 202.888 163.947 +-36.6164 202.648 163.752 +-38.8887 202.391 163.545 +-41.2831 202.734 163.822 +-43.49 202.139 163.341 +-45.8084 202.066 163.282 +-48.1284 201.978 163.211 +-50.5262 202.177 163.372 +-52.673 201.369 162.719 +-55.159 201.841 163.101 +-57.4647 201.611 162.915 +-59.927 201.895 163.144 +-62.3999 202.161 163.359 +-64.6657 201.73 163.011 +-67.1519 201.961 163.197 +-69.6482 202.174 163.37 +-72.1276 202.293 163.466 +-74.367 201.721 163.003 +-76.9398 202.029 163.252 +-79.4666 202.169 163.365 +-81.9724 202.215 163.402 +-84.547 202.391 163.544 +-86.7828 201.736 163.015 +-89.401 201.947 163.186 +-92.0306 202.139 163.341 +-94.5344 202.019 163.244 +-96.9724 201.734 163.014 +-99.5546 201.722 163.004 +-101.924 201.255 162.627 +-104.553 201.277 162.644 +-107.151 201.206 162.587 +-110.108 201.76 163.035 +-112.607 201.433 162.771 +-115.269 201.372 162.721 +-117.939 201.289 162.654 +-120.615 201.186 162.571 +-123.212 200.921 162.357 +-126.295 201.406 162.749 +-128.817 200.959 162.387 +-131.93 201.393 162.738 +-137.001 204.698 165.409 +-140.513 205.546 166.094 +-143.195 205.132 165.759 +-143.455 201.295 162.659 +-143.246 196.928 159.13 +-144.45 194.602 157.25 +-147.237 194.418 157.102 +-150.752 195.145 157.689 +-513.041 651.18 526.194 +-515.717 641.934 518.723 +-518.924 633.555 511.952 +-521.982 625.182 505.186 +-525.499 617.529 499.002 +-528.437 609.361 492.402 +-532.309 602.417 486.791 +-535.204 594.512 480.404 +-538.486 587.184 474.482 +-541.644 579.857 468.561 +-142.46 149.745 121.004 +-142.871 147.468 119.163 +-143.607 145.567 117.627 +-142.587 141.951 114.705 +-142.929 139.761 112.935 +-144.807 139.087 112.391 +-151.45 142.901 115.473 +-159.283 147.647 119.308 +-160.089 145.791 117.808 +-161.128 144.171 116.499 +-162.143 142.547 115.187 +-163.268 141.036 113.966 +-161.736 137.285 110.935 +-587.678 490.175 396.092 +-591.09 484.475 391.487 +-593.863 478.319 386.512 +-598.016 473.326 382.478 +-600.192 466.829 377.228 +-604.194 461.811 373.173 +-607.051 455.964 368.447 +-610.62 450.702 364.195 +-613.752 445.161 359.718 +-617.617 440.19 355.701 +-620.526 434.576 351.165 +-624.03 429.42 346.998 +-627.466 424.249 342.82 +-630.833 419.065 338.631 +-634.361 414.017 334.552 +-637.979 409.052 330.54 +-640.679 403.532 326.079 +-644.243 398.587 322.083 +-647.193 393.289 317.803 +-651.105 388.598 314.011 +-654.482 383.601 309.974 +-657.957 378.681 305.998 +-661.371 373.744 302.009 +-665.051 368.97 298.151 +-668.182 363.906 294.059 +-678.668 362.794 293.16 +-696.474 365.393 295.261 +-701.882 361.339 291.985 +-382.937 193.425 156.3 +-383.49 190.024 153.552 +-383.148 186.219 150.477 +-382.75 182.433 147.417 +-380.239 177.705 143.597 +-116.061 53.1746 42.9684 +-114.489 51.4126 41.5446 +-112.537 49.5228 40.0176 +-111.601 48.116 38.8808 +-110.643 46.7258 37.7574 +-110.987 45.9 37.0901 +-110.167 44.6062 36.0446 +-109.95 43.5742 35.2107 +-109.719 42.5487 34.382 +-109.833 41.666 33.6687 +-109.845 40.7514 32.9297 +-109.845 39.8399 32.1932 +-109.559 38.8349 31.381 +-109.534 37.9315 30.6511 +-110.047 37.2177 30.0742 +-110.092 36.3477 29.3712 +-110.219 35.5098 28.6941 +-110.52 34.7312 28.065 +-110.627 33.8942 27.3887 +-111.376 33.2535 26.8709 +-111.745 32.4963 26.259 +-111.917 31.6834 25.6022 +-112.834 31.0783 25.1133 +-114.219 30.5898 24.7185 +-114.747 29.8628 24.131 +-116.124 29.3472 23.7144 +-117.307 28.7683 23.2466 +-119.634 28.4486 22.9883 +-125.51 28.9167 23.3666 +-160.242 35.7389 28.8793 +-160.541 34.6291 27.9825 +-161.889 33.7395 27.2636 +-162.746 32.7368 26.4534 +-167.958 32.5717 26.32 +-3185.97 594.927 480.738 +-860.076 154.443 124.8 +-867.146 149.526 120.826 +-874.268 144.539 116.797 +-381.681 60.3991 48.8063 +-381.46 57.6726 46.6031 +-382.683 55.1663 44.5779 +-903.266 123.88 100.103 +-405.067 52.7233 42.6037 +-405.644 49.9718 40.3804 +-405.497 47.1362 38.089 +-404.326 44.198 35.7148 +-405.6 41.5332 33.5615 +-403.272 38.5132 31.1211 +-404.384 35.8361 28.9579 +-405.069 33.1144 26.7585 +-405.126 30.3414 24.5177 +-404.854 27.5498 22.2619 +-403.452 24.697 19.9568 +-405.011 22.0282 17.8001 +-405.842 19.3068 15.6011 +-146.998 5.99206 4.84196 +-404.115 13.7235 11.0895 +-404.154 10.9774 8.87044 +-149.349 3.04185 2.45801 +-144.878 1.96694 1.58941 +-146.694 0.995724 0.804608 +119.6 2.66454e-15 -1.13687e-13 +120.295 0.822453 0.65242 +120.282 1.64484 1.30479 +119.959 2.46096 1.95218 +120.127 3.28646 2.60702 +120.485 4.12127 3.26925 +120.435 4.94484 3.92255 +120.375 5.76802 4.57555 +120.905 6.62356 5.25421 +119.929 7.39458 5.86583 +120.739 8.27569 6.56478 +120.542 9.09328 7.21335 +121.232 9.98256 7.91878 +121.017 10.8022 8.56896 +121.686 11.7055 9.28552 +121.353 12.5165 9.92886 +121.011 13.3239 10.5693 +121.451 14.2202 11.2803 +121.189 15.0377 11.9288 +120.623 15.8139 12.5446 +120.442 16.638 13.1983 +120.94 17.5608 13.9303 +120.642 18.3719 14.5737 +120.237 19.1648 15.2027 +120.606 20.0838 15.9317 +120.67 20.9584 16.6255 +120.432 21.7827 17.2794 +120.963 22.7515 18.0479 +120.414 23.5208 18.6581 +121.018 24.5196 19.4505 +120.451 25.2852 20.0578 +121.128 26.3172 20.8764 +120.734 27.1227 21.5154 +120.524 27.9693 22.1869 +120.973 28.9754 22.9851 +120.836 29.8485 23.6777 +121.165 30.843 24.4665 +120.722 31.6453 25.103 +120.365 32.4694 25.7567 +120.941 33.5526 26.616 +121.314 34.5925 27.4409 +121.58 35.6126 28.2501 +120.712 36.3021 28.7971 +120.954 37.327 29.6101 +120.627 38.1818 30.2882 +120.566 39.125 31.0364 +120.862 40.1927 31.8833 +120.96 41.2049 32.6862 +120.588 42.0621 33.3663 +120.843 43.1449 34.2252 +120.086 43.8701 34.8004 +120.405 44.993 35.6912 +120.708 46.1235 36.588 +120.816 47.1917 37.4353 +120.108 47.9447 38.0327 +120.545 49.162 38.9983 +119.816 49.9107 39.5922 +120.222 51.1391 40.5667 +120.435 52.301 41.4883 +120.718 53.5081 42.4459 +121.417 54.919 43.5651 +120.111 55.4288 43.9695 +117.432 55.2795 43.8511 +114.936 55.1797 43.7719 +112.112 54.884 43.5373 +110.4 55.1011 43.7096 +107.685 54.7871 43.4605 +105.653 54.7861 43.4597 +103.464 54.674 43.3707 +101.45 54.6249 43.3318 +99.4451 54.5525 43.2744 +97.4496 54.4568 43.1985 +95.0595 54.108 42.9217 +95.3374 55.2684 43.8423 +94.9578 56.0595 44.4698 +94.9644 57.0881 45.2857 +95.9797 58.7481 46.6026 +96.026 59.8409 47.4695 +95.6667 60.6924 48.1449 +95.9901 61.9919 49.1758 +95.9854 63.0991 50.054 +96.0393 64.2617 50.9763 +95.8481 65.2756 51.7806 +95.8663 66.4476 52.7103 +95.7171 67.5198 53.5608 +95.6986 68.7009 54.4977 +95.4417 69.7266 55.3114 +95.967 71.3471 56.5969 +95.6722 72.3815 57.4174 +95.5042 73.527 58.3261 +95.318 74.6757 59.2373 +95.7442 76.3303 60.5499 +94.8903 76.982 61.0668 +95.9566 79.2189 62.8412 +95.0706 79.8722 63.3595 +95.3258 81.501 64.6516 +95.0165 82.6738 65.5819 +95.1522 84.2587 66.8392 +94.8661 85.4973 67.8217 +95.1441 87.2742 69.2312 +94.6826 88.4015 70.1255 +94.712 90.0131 71.4039 +94.7757 91.692 72.7357 +94.6222 93.1946 73.9276 +94.3193 94.5789 75.0258 +94.0536 96.0283 76.1755 +94.1239 97.8568 77.626 +94.5768 100.134 79.432 +94.3395 101.727 80.6961 +94.2481 103.516 82.1155 +94.1813 105.376 83.5909 +94.0234 107.178 85.0203 +93.7207 108.856 86.3515 +93.5533 110.734 87.8411 +93.3511 112.618 89.3351 +93.7051 115.233 91.4102 +93.4778 117.199 92.9695 +93.266 119.236 94.5853 +93.7884 122.287 97.0053 +93.5393 124.408 98.6883 +93.6 127.011 100.753 +93.6097 129.624 102.825 +93.6167 132.314 104.96 +93.4277 134.808 106.938 +93.284 137.448 109.032 +93.4117 140.582 111.518 +93.3858 143.588 113.903 +93.1215 146.325 116.074 +93.0662 149.491 118.585 +92.8612 152.526 120.993 +92.976 156.208 123.914 +93.0157 159.903 126.845 +93.0613 163.753 129.899 +92.7889 167.186 132.622 +92.6424 170.987 135.637 +92.6094 175.16 138.948 +92.6777 179.709 142.556 +91.662 182.304 144.614 +90.3087 184.313 146.208 +88.4974 185.437 147.1 +88.4122 190.306 150.962 +91.3296 202.054 160.282 +90.3126 205.485 163.004 +87.5761 205.055 162.662 +85.3505 205.795 163.249 +82.4836 204.951 162.58 +80.3437 205.882 163.318 +77.5362 205.071 162.675 +75.4419 206.12 163.507 +72.5285 204.892 162.533 +70.2694 205.456 162.98 +67.6777 205.018 162.633 +65.198 204.865 162.511 +62.7735 204.845 162.496 +60.5568 205.496 163.012 +58.0707 205.214 162.788 +55.7619 205.526 163.036 +53.291 205.209 162.784 +51.0223 205.642 163.128 +48.5111 205.059 162.665 +46.1383 204.997 162.616 +43.7871 204.996 162.615 +41.5177 205.364 162.907 +39.0808 204.866 162.512 +36.7695 204.97 162.595 +34.485 205.214 162.788 +32.1126 204.897 162.537 +29.7272 204.408 162.149 +27.5537 205.383 162.922 +25.1883 204.939 162.57 +22.8871 204.948 162.577 +20.5641 204.706 162.385 +18.2901 204.917 162.552 +16.0008 204.956 162.584 +13.7173 205.058 162.664 +11.3977 204.517 162.236 +9.11226 204.431 162.167 +6.8191 204.016 161.838 +4.54984 204.211 161.993 +2.27239 203.999 161.825 +1.42109e-14 204.947 162.577 +-2.26977 203.764 161.638 +-4.55333 204.368 162.117 +-6.83218 204.407 162.148 +-9.11575 204.509 162.229 +-11.3629 203.891 161.739 +-13.6806 204.51 162.23 +-15.952 204.331 162.088 +-18.2971 204.995 162.615 +-20.5092 204.159 161.951 +-22.7738 203.933 161.773 +-25.0445 203.77 161.643 +-27.4178 204.37 162.119 +-29.614 203.63 161.531 +-31.9663 203.964 161.797 +-34.224 203.66 161.556 +-36.6164 204.117 161.918 +-38.7408 203.083 161.098 +-41.1423 203.507 161.434 +-43.3415 202.91 160.96 +-45.8431 203.685 161.575 +-47.9644 202.748 160.832 +-50.5644 203.796 161.664 +-52.6331 202.675 160.774 +-55.1174 203.151 161.152 +-57.4214 202.919 160.968 +-59.9045 203.282 161.256 +-62.1898 202.941 160.985 +-64.6415 203.116 161.124 +-66.9015 202.667 160.768 +-69.6482 203.64 161.539 +-71.8871 203.08 161.096 +-74.367 203.183 161.177 +-76.6557 202.742 160.827 +-79.4374 203.559 161.475 +-81.7018 203.008 161.039 +-84.2998 203.261 161.239 +-86.5607 202.678 160.776 +-89.108 202.744 160.829 +-91.6967 202.866 160.926 +-94.2265 202.82 160.889 +-96.6923 202.609 160.722 +-99.2321 202.525 160.655 +-101.777 202.422 160.574 +-104.216 202.082 160.304 +-106.807 202.013 160.249 +-109.717 202.501 160.636 +-112.288 202.318 160.491 +-114.944 202.259 160.444 +-117.607 202.178 160.38 +-120.235 202.005 160.243 +-122.825 201.741 160.034 +-125.856 202.161 160.367 +-128.505 201.924 160.178 +-131.612 202.364 160.528 +-136.955 206.112 163.501 +-140.09 206.414 163.74 +-142.766 205.999 163.411 +-143.019 202.137 160.347 +-143.295 198.424 157.402 +-144.25 195.74 155.273 +-146.628 195.017 154.7 +-150.494 196.223 155.656 +-1711.97 2188.67 1736.19 +-516.406 647.451 513.598 +-520.213 639.733 507.475 +-522.527 630.37 500.048 +-526.272 622.919 494.137 +-529.164 614.621 487.555 +-532.818 607.365 481.799 +-535.204 598.821 475.022 +-539.473 592.524 470.026 +-542.114 584.567 463.714 +-142.817 151.208 119.948 +-142.871 148.537 117.828 +-143.789 146.808 116.457 +-142.649 143.042 113.469 +-143.241 141.08 111.913 +-145.121 140.4 111.374 +-153.74 146.113 115.905 +-159.54 148.957 118.161 +-160.284 147.026 116.63 +-161.128 145.216 115.194 +-162.342 143.756 114.036 +-164.272 142.932 113.382 +-585.669 500.731 397.21 +-588.906 494.76 392.474 +-592.536 489.18 388.047 +-594.489 482.293 382.584 +-598.997 477.54 378.814 +-601.465 471.21 373.793 +-604.765 465.598 369.341 +-607.411 459.541 364.536 +-612.506 455.371 361.228 +-614.995 449.295 356.408 +-618.723 444.174 352.346 +-620.972 438.04 347.48 +-624.479 432.844 343.358 +-627.466 427.324 338.979 +-632.202 423.018 335.564 +-634.132 416.867 330.684 +-637.979 412.017 326.837 +-641.379 406.9 322.778 +-645.182 402.061 318.939 +-648.139 396.719 314.701 +-652.533 392.272 311.174 +-655.44 386.948 306.951 +-659.002 382.032 303.051 +-662.18 376.913 298.991 +-666.109 372.235 295.28 +-669.165 367.084 291.193 +-683.695 368.13 292.023 +-696.723 368.173 292.058 +-702.632 364.347 289.022 +-384.195 195.467 155.056 +-384.333 191.822 152.165 +-383.148 187.569 148.791 +-382.75 183.755 145.766 +-379.811 178.791 141.828 +-115.2 53.1624 42.1717 +-113.882 51.511 40.8617 +-112.624 49.9203 39.5999 +-111.689 48.5028 38.4754 +-110.907 47.1766 37.4233 +-110.368 45.9752 36.4703 +-110.167 44.9295 35.6408 +-109.861 43.8545 34.7881 +-109.719 42.8571 33.9969 +-109.923 42.0023 33.3188 +-110.025 41.1143 32.6143 +-109.935 40.1618 31.8588 +-109.559 39.1163 31.0295 +-109.534 38.2064 30.3077 +-110.047 37.4874 29.7373 +-110 36.5806 29.018 +-110.219 35.7671 28.3727 +-110.428 34.9535 27.7273 +-111.278 34.3408 27.2412 +-111.563 33.5507 26.6145 +-112.588 32.9787 26.1607 +-112.763 32.1542 25.5066 +-112.74 31.2774 24.8112 +-114.03 30.7605 24.4011 +-115.221 30.2035 23.9592 +-115.839 29.4873 23.3911 +-117.593 29.0475 23.0423 +-119.921 28.7235 22.7852 +-135.098 31.3514 24.8699 +-160.531 36.0627 28.6072 +-161.504 35.0895 27.8352 +-161.406 33.8827 26.8778 +-163.907 33.2094 26.3437 +-163.98 32.0307 25.4087 +-3185.97 599.239 475.353 +-860.466 155.633 123.458 +-868.025 150.762 119.593 +-875.149 145.734 115.605 +-381.681 60.8369 48.2595 +-381.853 58.1504 46.1285 +-381.503 55.3948 43.9426 +-903.955 124.874 99.0574 +-405.067 53.1054 42.1264 +-405.94 50.3708 39.9572 +-407.573 47.721 37.8552 +-403.93 44.4747 35.2801 +-404.708 41.7422 33.1124 +-404.562 38.9164 30.8709 +-405.576 36.2023 28.7179 +-404.074 33.2725 26.3938 +-404.031 30.4787 24.1776 +-405.352 27.7836 22.0396 +-405.048 24.9743 19.8112 +-405.011 22.1878 17.6007 +-403.945 19.3558 15.3542 +-147.697 6.06419 4.81049 +-404.115 13.823 10.9652 +-403.454 11.0378 8.75584 +-145.95 2.99417 2.37515 +-145.078 1.98393 1.57377 +-146.794 1.00363 0.796141 +119.6 2.66454e-15 -1.13687e-13 +120.395 0.828991 0.645508 +120.182 1.65517 1.28883 +120.859 2.49706 1.94438 +119.927 3.30434 2.57298 +120.585 4.15404 3.23461 +120.435 4.98002 3.87778 +120.375 5.80906 4.52332 +120.107 6.62666 5.15996 +120.727 7.49672 5.83745 +120.739 8.33457 6.48985 +120.542 9.15799 7.13102 +121.332 10.0619 7.83485 +121.017 10.8791 8.47116 +121.686 11.7888 9.17954 +121.353 12.6056 9.81554 +120.912 13.4077 10.4401 +120.66 14.228 11.0789 +121.189 15.1447 11.7927 +120.82 15.9525 12.4217 +121.23 16.866 13.133 +121.039 17.7001 13.7825 +120.74 18.5177 14.4191 +120.237 19.3011 15.0291 +120.606 20.2267 15.7499 +120.768 21.1247 16.4491 +120.432 21.9377 17.0822 +120.768 22.8765 17.8132 +121.384 23.879 18.5938 +121.018 24.6941 19.2285 +121.32 25.649 19.972 +121.128 26.5044 20.6381 +120.638 27.2939 21.2529 +120.62 28.1907 21.9512 +121.068 29.2047 22.7408 +120.931 30.0846 23.4259 +121.069 31.0381 24.1683 +121.575 32.0958 24.992 +121.121 32.906 25.6228 +120.941 33.7913 26.3122 +120.751 34.6768 27.0016 +120.737 35.6174 27.734 +120.619 36.5321 28.4464 +121.047 37.6215 29.2946 +119.792 38.1876 29.7354 +121.028 39.5544 30.7997 +120.678 40.4171 31.4714 +120.227 41.2464 32.1172 +120.588 42.3614 32.9854 +120.934 43.4846 33.86 +120.901 44.4824 34.6369 +120.315 45.2791 35.2573 +120.708 46.4517 36.1704 +120.011 47.2106 36.7613 +120.108 48.2859 37.5986 +119.835 49.2203 38.3262 +120.787 50.6733 39.4576 +120.925 51.8042 40.3382 +120.523 52.7114 41.0446 +120.109 53.6169 41.7497 +121.33 55.2703 43.0371 +120.887 56.1837 43.7483 +118.118 55.9979 43.6037 +116.13 56.1495 43.7217 +113.045 55.7344 43.3985 +111.412 56.002 43.6069 +108.356 55.5207 43.2321 +106.404 55.5679 43.2689 +104.293 55.5042 43.2193 +102.933 55.818 43.4636 +100.264 55.3932 43.1329 +98.7522 55.5775 43.2763 +95.0595 54.493 42.4319 +95.257 55.6147 43.3053 +95.0376 56.5059 43.9993 +94.9644 57.4943 44.7689 +95.4281 58.8261 45.8059 +95.8695 60.1685 46.8512 +95.8221 61.2236 47.6727 +95.6814 62.2323 48.4582 +95.9854 63.5481 49.4828 +95.9632 64.6677 50.3546 +95.8481 65.7401 51.1896 +95.8663 66.9204 52.1087 +95.7914 68.053 52.9906 +95.6986 69.1897 53.8757 +96.0999 70.707 55.0572 +95.967 71.8548 55.9509 +95.8161 73.0061 56.8474 +95.5042 74.0502 57.6604 +95.4594 75.3186 58.6481 +95.8844 76.9861 59.9465 +95.585 78.0974 60.8118 +95.3371 79.2673 61.7228 +95.6162 80.9022 62.9958 +95.3258 82.0809 63.9137 +95.0165 83.2621 64.8334 +95.2185 84.9174 66.1224 +94.8661 86.1057 67.0476 +95.1441 87.8952 68.441 +94.6183 88.9706 69.2784 +94.5212 90.4705 70.4464 +94.7757 92.3444 71.9055 +94.809 94.0432 73.2283 +94.2578 95.1896 74.121 +94.0536 96.7116 75.3061 +94.0035 98.4269 76.6417 +94.3984 100.656 78.3774 +94.3395 102.451 79.7751 +94.4223 104.445 81.3282 +94.1813 106.126 82.6368 +93.6836 107.55 83.7458 +93.6089 109.5 85.2639 +93.7741 111.785 87.0432 +93.5145 113.618 88.4704 +93.7051 116.053 90.3669 +93.4248 117.966 91.8562 +93.8407 120.825 94.0821 +93.8914 123.293 96.0039 +93.5393 125.294 97.5619 +93.6 127.915 99.6029 +93.5112 130.409 101.545 +93.5683 133.187 103.708 +93.4277 135.767 105.717 +93.284 138.426 107.788 +93.3194 141.442 110.136 +93.3858 144.61 112.603 +93.4338 147.86 115.134 +93.0662 150.555 117.232 +93.1626 154.109 120 +92.9338 157.248 122.444 +93.0157 161.041 125.397 +92.6953 164.27 127.912 +92.749 168.303 131.052 +92.6424 172.204 134.089 +92.6477 176.479 137.418 +92.7901 181.207 141.1 +91.6253 183.527 142.907 +90.7746 186.582 145.286 +87.9371 185.574 144.5 +89.4383 193.884 150.971 +91.7301 204.384 159.147 +90.1498 206.574 160.853 +87.2588 205.766 160.223 +84.9488 206.283 160.626 +82.243 205.808 160.255 +80.0514 206.592 160.866 +77.3658 206.076 160.464 +75.0009 206.373 160.696 +72.2078 205.437 159.967 +69.9588 206.003 160.408 +67.3021 205.331 159.884 +65.2221 206.399 160.716 +62.5634 205.613 160.104 +60.3319 206.189 160.553 +57.8543 205.904 160.33 +55.5956 206.372 160.695 +52.9322 205.277 159.843 +50.6598 205.634 160.12 +48.1831 205.122 159.722 +46.0168 205.912 160.337 +43.5065 205.131 159.729 +41.3613 206.047 160.442 +38.8148 204.919 159.564 +36.6721 205.882 160.313 +34.3023 205.579 160.077 +32.1126 206.355 160.682 +29.614 205.078 159.688 +27.376 205.51 160.024 +24.9966 204.827 159.492 +22.8087 205.699 160.171 +20.4151 204.668 159.368 +18.2204 205.588 160.085 +15.8848 204.918 159.563 +13.6283 205.177 159.765 +11.3192 204.554 159.279 +9.11226 205.886 160.316 +6.80077 204.915 159.561 +4.55159 205.743 160.205 +2.26541 204.82 159.486 +1.46549e-14 204.985 159.615 +-2.26192 204.504 159.24 +-4.52366 204.481 159.223 +-6.77983 204.284 159.069 +-9.05293 204.545 159.272 +-11.3149 204.475 159.218 +-13.6283 205.177 159.765 +-15.8482 204.446 159.195 +-18.1716 205.037 159.655 +-20.368 204.196 159.001 +-22.7041 204.756 159.436 +-24.872 203.806 158.697 +-27.3237 205.118 159.718 +-29.4894 204.216 159.016 +-31.8323 204.554 159.279 +-33.989 203.701 158.615 +-36.4912 204.865 159.522 +-38.46 203.046 158.105 +-41.0015 204.254 159.046 +-43.0774 203.108 158.154 +-45.5306 203.736 158.643 +-47.8186 203.57 158.513 +-50.24 203.93 158.793 +-52.3341 202.958 158.036 +-54.9511 203.979 158.831 +-57.0318 202.977 158.051 +-59.4771 203.268 158.278 +-61.793 203.081 158.132 +-64.4238 203.873 158.749 +-66.6762 203.422 158.398 +-69.1306 203.564 158.509 +-71.4328 203.232 158.25 +-73.8984 203.34 158.334 +-76.1729 202.898 157.99 +-78.9111 203.65 158.575 +-81.1906 203.174 158.205 +-83.8981 203.732 158.64 +-86.2751 203.446 158.417 +-88.815 203.515 158.471 +-90.9957 202.748 157.873 +-93.8845 203.523 158.476 +-96.1669 202.942 158.024 +-99.1246 203.745 158.649 +-101.118 202.541 157.712 +-104.253 203.593 158.531 +-106.195 202.285 157.512 +-109.366 203.288 158.294 +-111.65 202.6 157.758 +-114.618 203.121 158.163 +-116.861 202.324 157.543 +-119.855 202.799 157.913 +-122.093 201.966 157.264 +-125.067 202.323 157.542 +-127.746 202.161 157.416 +-130.976 202.82 157.929 +-135.523 205.41 159.946 +-139.668 207.255 161.383 +-142.146 206.563 160.844 +-143.213 203.852 158.732 +-143.64 200.317 155.98 +-143.4 195.972 152.597 +-144.496 193.549 150.71 +-149.619 196.47 152.984 +-157.847 203.236 158.253 +-517.625 653.596 508.934 +-521.396 645.749 502.823 +-524.161 636.841 495.887 +-527.983 629.391 490.086 +-530.562 620.63 483.264 +-534.291 613.377 477.616 +-536.695 604.763 470.909 +-541.331 598.796 466.262 +-142.362 154.602 120.384 +-143.769 153.299 119.369 +-144.135 150.917 117.514 +-142.755 146.789 114.299 +-142.71 144.122 112.223 +-143.988 142.825 111.213 +-148.268 144.465 112.49 +-159.21 152.388 118.66 +-159.733 150.198 116.954 +-160.738 148.492 115.626 +-161.325 146.427 114.018 +-163.866 146.138 113.793 +-164.74 144.359 112.408 +-587.696 506.039 394.036 +-589.315 498.627 388.264 +-593.981 493.863 384.555 +-596.086 487.03 379.234 +-600.259 481.951 375.279 +-602.879 475.679 370.395 +-606.691 470.404 366.288 +-609.353 464.29 361.527 +-613.812 459.589 357.866 +-616.312 453.461 353.095 +-619.755 448.081 348.906 +-622.532 442.266 344.378 +-627.176 437.806 340.905 +-629.277 431.607 336.078 +-633.342 426.796 332.332 +-635.51 420.746 327.621 +-639.908 416.204 324.084 +-643.321 411.037 320.061 +-647.06 406.101 316.217 +-650.109 400.756 312.055 +-654.517 396.264 308.558 +-657.277 390.793 304.297 +-660.931 385.877 300.469 +-663.96 380.616 296.373 +-668.145 376.03 292.802 +-671.295 370.872 288.786 +-696.057 377.453 293.91 +-699.376 372.205 289.823 +-703.216 367.244 285.961 +-383.943 196.729 153.186 +-383.827 192.933 150.231 +-384.42 189.53 147.581 +-382.75 185.063 144.102 +-379.982 180.144 140.272 +-114.252 53.1002 41.3474 +-114.315 52.0748 40.5489 +-112.189 50.0813 38.9966 +-111.864 48.9244 38.0958 +-110.379 47.2864 36.8203 +-110.457 46.3394 36.0829 +-110.344 45.322 35.2908 +-109.416 43.9874 34.2515 +-109.987 43.2676 33.691 +-110.012 42.3357 32.9654 +-110.025 41.4068 32.2421 +-110.116 40.5143 31.5471 +-110.196 39.6237 30.8537 +-110.082 38.6709 30.1117 +-109.956 37.7227 29.3734 +-110.553 37.0258 28.8308 +-110.773 36.2028 28.1899 +-110.613 35.2614 27.4569 +-110.999 34.4985 26.8628 +-111.376 33.7329 26.2667 +-111.745 32.9647 25.6685 +-112.857 32.4099 25.2365 +-113.4 31.6844 24.6716 +-114.691 31.1592 24.2626 +-115.885 30.5936 23.8222 +-116.504 29.8677 23.257 +-118.929 29.5864 23.0379 +-120.781 29.1355 22.6868 +-159.548 37.2889 29.0356 +-160.819 36.3846 28.3315 +-161.119 35.2549 27.4518 +-161.116 34.0624 26.5233 +-165.069 33.6828 26.2277 +-163.398 32.144 25.0295 +-3185.97 603.503 469.927 +-862.123 157.043 122.284 +-869.587 152.108 118.442 +-382.358 64.1252 49.9321 +-380.701 61.1125 47.5862 +-380.97 58.4287 45.4965 +-381.208 55.7458 43.4074 +-903.463 125.694 97.8734 +-406.35 53.6525 41.7774 +-405.051 50.6181 39.4146 +-404.013 47.6406 37.0962 +-406.109 45.0328 35.0655 +-404.708 42.0392 32.7345 +-405.554 39.2895 30.5934 +-403.788 36.2991 28.2649 +-404.174 33.5176 26.099 +-405.425 30.8015 23.9841 +-404.355 27.9125 21.7345 +-405.048 25.1521 19.5851 +-405.809 22.3897 17.4341 +-405.143 19.5514 15.224 +-147.597 6.10321 4.75236 +-404.115 13.9213 10.8401 +-405.053 11.1604 8.69025 +-146.55 3.02787 2.3577 +-145.478 2.00356 1.56011 +-146.694 1.01008 0.786514 +120.5 5.77316e-15 2.84217e-14 +120.395 0.834781 0.638003 +120.182 1.66673 1.27384 +119.959 2.49578 1.90746 +120.826 3.35237 2.56213 +120.685 4.18652 3.19965 +120.235 5.00649 3.82634 +120.375 5.84963 4.47073 +120.805 6.71174 5.12962 +120.826 7.55531 5.77434 +120.639 8.38587 6.40912 +120.542 9.22195 7.04811 +121.332 10.1322 7.74376 +121.017 10.955 8.37267 +121.488 11.8517 9.05799 +120.461 12.6003 9.63007 +121.011 13.5124 10.3272 +121.451 14.4214 11.0219 +121.189 15.2505 11.6556 +120.721 16.0508 12.2672 +121.23 16.9838 12.9803 +121.039 17.8237 13.6222 +120.74 18.6471 14.2515 +120.433 19.4676 14.8786 +120.801 20.401 15.592 +120.865 21.2894 16.271 +120.53 22.1087 16.8971 +120.768 23.0363 17.6061 +120.414 23.8536 18.2307 +121.018 24.8666 19.0049 +120.644 25.6841 19.6298 +121.225 26.7107 20.4144 +120.927 27.5502 21.056 +120.715 28.4101 21.7132 +121.164 29.4319 22.4941 +120.741 30.247 23.1171 +121.069 31.2549 23.8873 +121.385 32.2695 24.6628 +121.026 33.1099 25.3051 +121.318 34.1334 26.0873 +121.408 35.1092 26.8331 +121.299 36.0331 27.5392 +120.712 36.8158 28.1374 +120.303 37.6513 28.776 +120.627 38.7221 29.5944 +120.104 39.5266 30.2092 +120.678 40.6993 31.1055 +120.96 41.7879 31.9375 +120.771 42.722 32.6514 +120.752 43.7224 33.416 +120.086 44.4908 34.0032 +120.405 45.6296 34.8736 +120.528 46.7065 35.6966 +119.832 47.4695 36.2798 +120.108 48.6231 37.1615 +120.367 49.7842 38.0489 +119.993 50.6915 38.7423 +119.959 51.749 39.5505 +120.435 53.041 40.5379 +119.848 53.874 41.1746 +121.07 55.5371 42.4457 +120.714 56.4954 43.1781 +118.889 56.7574 43.3783 +118.176 57.538 43.9749 +114.826 57.0079 43.5697 +113.014 57.2041 43.7197 +109.782 56.6441 43.2917 +108.405 57.0084 43.5702 +105.785 56.6916 43.328 +104.252 56.9279 43.5086 +101.493 56.4636 43.1538 +100.136 56.75 43.3726 +97.5674 56.3213 43.045 +95.659 56.2394 42.9824 +94.9578 56.8527 43.4511 +95.6784 58.3312 44.5811 +95.0341 58.9924 45.0864 +95.4782 60.3415 46.1175 +96.5215 62.1012 47.4624 +95.9129 62.8185 48.0107 +95.9854 63.9919 48.9074 +96.0393 65.171 49.8086 +95.8481 66.1992 50.5945 +95.7914 67.3351 51.4626 +95.7171 68.4751 52.3339 +95.6986 69.673 53.2494 +95.4417 70.7132 54.0443 +95.967 72.3566 55.3004 +95.6722 73.4056 56.1021 +95.4329 74.5117 56.9475 +95.318 75.7323 57.8804 +95.7442 77.4103 59.1628 +95.585 78.6428 60.1048 +95.2683 79.7637 60.9615 +95.6162 81.4672 62.2634 +95.3258 82.6542 63.1706 +95.0835 83.9024 64.1246 +95.2848 85.5701 65.3991 +94.8661 86.7071 66.2681 +95.1441 88.509 67.6453 +94.6183 89.592 68.473 +95.2845 91.8381 70.1896 +94.6498 92.8662 70.9754 +94.6222 94.5132 72.2342 +94.6272 96.2302 73.5464 +94.0536 97.387 74.4305 +94.1239 99.2414 75.8478 +94.5173 101.487 77.5639 +94.3395 103.166 78.8476 +94.19 104.917 80.1853 +94.1813 106.867 81.6761 +94.1367 108.826 83.1729 +94.1681 110.923 84.776 +93.6637 112.433 85.9297 +93.2967 114.144 87.2377 +93.6513 116.797 89.2653 +93.4778 118.857 90.8398 +93.8407 121.668 92.9882 +93.4279 123.54 94.4189 +93.4886 126.1 96.3754 +93.6 128.808 98.4448 +93.5112 131.32 100.364 +93.5198 134.047 102.449 +93.4277 136.715 104.488 +93.1432 139.182 106.374 +93.3194 142.43 108.856 +93.3858 145.62 111.294 +93.4338 148.893 113.795 +93.0224 151.535 115.814 +93.2057 155.258 118.66 +93.2296 158.85 121.405 +93.0157 162.165 123.939 +92.736 165.49 126.48 +93.1079 170.134 130.03 +92.994 174.064 133.033 +92.6094 177.639 135.765 +92.7526 182.399 139.403 +90.929 183.405 140.172 +90.1654 186.625 142.633 +87.797 186.573 142.593 +91.7298 200.24 153.039 +91.6634 205.661 157.182 +89.3685 206.214 157.605 +86.4338 205.243 156.863 +84.4852 206.591 157.892 +81.6116 205.653 157.176 +79.4959 206.591 157.892 +76.5137 205.23 156.852 +74.2567 205.753 157.252 +71.4863 204.805 156.527 +69.4929 206.06 157.487 +66.576 204.534 156.32 +64.8351 206.607 157.905 +61.9097 204.886 156.589 +59.8595 206.004 157.444 +57.2266 205.093 156.747 +55.2006 206.336 157.698 +52.3939 204.609 156.377 +50.3163 205.666 157.186 +47.9462 205.538 157.088 +45.6868 205.863 157.336 +43.1765 204.996 156.674 +41.0953 206.152 157.557 +38.5487 204.935 156.627 +36.4494 206.06 157.487 +33.9238 204.73 156.47 +31.8201 205.904 157.367 +29.3083 204.38 156.203 +27.1879 205.523 157.076 +24.8432 204.992 156.671 +22.6605 205.79 157.28 +20.266 204.593 156.365 +18.0948 205.597 157.133 +15.7261 204.288 156.132 +13.5236 205.023 156.694 +11.232 204.395 156.214 +9.02501 205.338 156.935 +6.72748 204.122 156.006 +4.50447 205.035 156.704 +2.24359 204.264 156.114 +1.54321e-14 205.066 156.727 +-2.23748 203.708 155.689 +-4.50621 205.115 156.764 +-6.74056 204.52 156.309 +-9.01803 205.18 156.814 +-11.232 204.395 156.214 +-13.5236 205.023 156.694 +-15.6773 203.653 155.647 +-18.039 204.963 156.648 +-20.2346 204.276 156.123 +-22.5472 204.761 156.494 +-24.7186 203.964 155.885 +-27.146 205.207 156.835 +-29.2744 204.143 156.022 +-31.6373 204.721 156.463 +-33.6758 203.233 155.326 +-36.185 204.566 156.345 +-38.2235 203.207 155.306 +-40.7199 204.268 156.117 +-42.8133 203.272 155.356 +-45.3395 204.298 156.14 +-47.3266 202.882 155.058 +-49.8775 203.872 155.815 +-51.9353 202.818 155.009 +-54.5768 204.005 155.916 +-56.6206 202.92 155.087 +-59.2296 203.836 155.787 +-61.3261 202.954 155.113 +-63.819 203.369 155.43 +-66.0002 202.765 154.969 +-68.7165 203.758 155.727 +-70.6578 202.432 154.714 +-73.4298 203.461 155.501 +-75.6333 202.869 155.048 +-78.1802 203.172 155.28 +-80.4087 202.622 154.859 +-83.2183 203.493 155.525 +-85.4184 202.833 155.02 +-88.1639 203.434 155.48 +-90.3949 202.815 155.007 +-93.3031 203.674 155.663 +-95.1864 202.276 154.595 +-98.3362 203.536 155.558 +-100.238 202.181 154.522 +-103.354 203.247 155.337 +-105.506 202.376 154.671 +-108.428 202.953 155.112 +-110.653 202.193 154.531 +-113.561 202.653 154.882 +-115.824 201.93 154.33 +-119.178 203.063 155.196 +-121.447 202.301 154.613 +-124.322 202.522 154.783 +-126.542 201.652 154.118 +-129.932 202.608 154.848 +-132.476 202.193 154.531 +-138.353 206.739 158.005 +-140.762 205.981 157.426 +-143.552 205.762 157.259 +-143.344 201.301 153.85 +-142.9 196.652 150.297 +-144.75 195.244 149.22 +-148.794 196.752 150.373 +-150.793 195.51 149.423 +-519.851 660.991 505.18 +-523.706 653.141 499.179 +-526.012 643.554 491.853 +-530.687 637.033 486.869 +-532.687 627.467 479.558 +-537.236 621.066 474.665 +-538.703 611.264 467.175 +-142.388 158.603 121.217 +-142.832 156.196 119.377 +-144.066 154.689 118.225 +-144.195 152.034 116.196 +-142.633 147.688 112.875 +-142.957 145.379 111.109 +-149.155 148.983 113.864 +-152.799 149.919 114.58 +-160.164 154.372 117.983 +-160.054 151.551 115.827 +-161.907 150.617 115.113 +-162.375 148.41 113.426 +-165.324 148.468 113.47 +-585.155 516.344 394.63 +-590.263 511.799 391.156 +-591.838 504.259 385.393 +-596.941 499.791 381.978 +-598.587 492.489 376.397 +-603.343 487.81 372.821 +-605.142 480.799 367.463 +-609.758 476.084 363.859 +-611.655 469.299 358.674 +-616.133 464.548 355.043 +-618.433 458.2 350.191 +-623.221 453.733 346.777 +-625.133 447.215 341.796 +-629.797 442.706 338.349 +-631.767 436.342 333.485 +-636.308 431.79 330.006 +-638.038 425.37 325.1 +-642.686 420.93 321.707 +-645.653 415.407 317.486 +-649.956 410.767 313.939 +-651.527 404.435 309.1 +-656.738 400.386 306.005 +-658.874 394.478 301.49 +-663.905 390.32 298.312 +-665.983 384.442 293.819 +-671.645 380.64 290.914 +-680.306 378.475 289.259 +-699.353 381.889 291.868 +-701.78 376.093 287.439 +-707.469 372.046 284.345 +-384.027 198.146 151.438 +-382.562 193.64 147.995 +-382.809 190.055 145.254 +-385.734 187.808 143.537 +-115.803 55.2842 42.2523 +-113.821 53.2694 40.7125 +-112.67 51.6837 39.5006 +-111.231 50.0007 38.2143 +-110.989 48.8809 37.3585 +-110.116 47.5029 36.3053 +-110.015 46.4766 35.5209 +-109.901 45.4552 34.7403 +-110.128 44.5832 34.0739 +-109.719 43.4635 33.2181 +-109.653 42.4921 32.4757 +-109.393 41.4565 31.6842 +-109.935 40.7301 31.129 +-109.286 39.571 30.2431 +-109.9 38.8763 29.7122 +-110.047 38.0178 29.0561 +-110.553 37.2844 28.4956 +-110.958 36.5165 27.9087 +-110.984 35.6267 27.2286 +-112.022 35.0597 26.7953 +-112.03 34.1678 26.1136 +-112.869 33.5289 25.6253 +-113.421 32.7993 25.0677 +-113.683 31.9852 24.4455 +-115.07 31.4803 24.0596 +-115.885 30.8073 23.5453 +-116.409 30.0518 22.9679 +-119.31 29.8886 22.8431 +-122.694 29.8036 22.7782 +-159.643 37.5719 28.7153 +-160.819 36.6387 28.0021 +-161.119 35.5011 27.1326 +-163.531 34.8145 26.6079 +-162.746 33.4406 25.5578 +-3179.17 629.784 481.329 +-859.478 163.943 125.298 +-863.974 158.479 121.121 +-872.32 153.652 117.432 +-381.967 64.5069 49.3011 +-382.073 61.7611 47.2025 +-381.755 58.958 45.0602 +-382.191 56.2799 43.0134 +-903.463 126.571 96.7355 +-406.547 54.0534 41.3117 +-402.285 50.6237 38.6904 +-405.299 48.1261 36.7816 +-405.218 45.2478 34.5818 +-402.229 42.0736 32.1558 +-405.257 39.5349 30.2156 +-406.57 36.8045 28.1288 +-405.964 33.9011 25.9098 +-405.923 31.0546 23.7343 +-405.352 28.1767 21.5348 +-403.652 25.2405 19.2907 +-404.113 22.4519 17.1594 +-404.943 19.6783 15.0396 +-147.098 6.12505 4.68122 +-404.115 14.0186 10.714 +-404.054 11.2106 8.56802 +-147.449 3.06773 2.34459 +-145.878 2.0231 1.54621 +-146.294 1.01436 0.77525 +120.5 5.77316e-15 2.84217e-14 +120.295 0.839807 0.629924 +119.982 1.67537 1.25666 +120.859 2.53173 1.89901 +120.726 3.37256 2.52969 +120.685 4.21521 3.16175 +120.235 5.0408 3.78101 +120.974 5.91903 4.43976 +120.805 6.75774 5.06886 +120.826 7.60709 5.70594 +120.739 8.45031 6.33842 +120.542 9.28516 6.96463 +121.232 10.1932 7.64573 +121.017 11.0301 8.2735 +121.488 11.933 8.9507 +121.254 12.7702 9.57871 +120.912 13.5939 10.1965 +121.451 14.5202 10.8914 +121.189 15.355 11.5175 +120.721 16.1608 12.1219 +120.54 17.0029 12.7536 +121.039 17.9459 13.4609 +120.642 18.7596 14.0712 +120.531 19.6171 14.7144 +120.899 20.5575 15.4198 +120.865 21.4353 16.0782 +121.407 22.4222 16.8185 +120.963 23.2316 17.4256 +120.705 24.0751 18.0583 +120.922 25.017 18.7648 +120.548 25.8395 19.3817 +120.454 26.7228 20.0443 +120.831 27.717 20.79 +120.62 28.5822 21.439 +120.973 29.5868 22.1925 +120.645 30.4302 22.8252 +121.165 31.4938 23.6229 +120.911 32.3638 24.2755 +121.215 33.3889 25.0444 +120.658 34.1805 25.6382 +120.938 35.213 26.4126 +121.393 36.3081 27.234 +120.712 37.0681 27.8041 +120.21 37.8801 28.4132 +120.627 38.9875 29.2438 +120.936 40.0731 30.0581 +120.586 40.947 30.7136 +120.502 41.9148 31.4396 +120.588 42.9497 32.2158 +120.752 44.0221 33.0202 +120.086 44.7958 33.6005 +120.315 45.9079 34.4347 +120.618 47.0617 35.3001 +119.921 47.8305 35.8768 +120.108 48.9564 36.7213 +120.279 50.0885 37.5705 +119.816 50.9638 38.227 +119.871 52.0656 39.0534 +120.173 53.2881 39.9705 +120.544 54.5584 40.9233 +120.204 55.5178 41.6429 +121.059 57.045 42.7884 +120.775 58.0528 43.5444 +119.796 58.7265 44.0497 +117.37 58.6703 44.0076 +115.123 58.6708 44.0079 +111.543 57.9473 43.4652 +110.907 58.7238 44.0476 +107.029 57.7512 43.3181 +106.395 58.4961 43.8769 +102.804 57.5848 43.1933 +102.09 58.2539 43.6952 +98.781 57.4126 43.0642 +97.9902 58.0048 43.5084 +95.1974 57.3869 43.0448 +94.7264 58.1466 43.6147 +95.0341 59.3967 44.5524 +95.0869 60.506 45.3845 +95.9775 62.1744 46.6359 +96.0673 63.3509 47.5183 +95.8322 64.3276 48.251 +95.7351 65.4098 49.0627 +95.6972 66.548 49.9165 +96.4655 68.2737 51.2109 +95.7171 68.9445 51.714 +96.2147 70.5288 52.9024 +96.0999 71.6889 53.7725 +95.967 72.8526 54.6454 +95.6722 73.9088 55.4376 +95.6469 75.1906 56.3991 +95.318 76.2514 57.1948 +95.2536 77.5415 58.1625 +95.7239 79.2969 59.4792 +95.3371 80.368 60.2826 +95.0706 81.5576 61.1749 +95.2582 83.1615 62.378 +95.0835 84.4775 63.365 +95.351 86.2166 64.6695 +94.8661 87.3014 65.4832 +95.0142 88.9941 66.7529 +94.6826 90.2669 67.7075 +94.5212 91.7268 68.8026 +94.6498 93.5027 70.1347 +94.8712 95.4115 71.5664 +94.2578 96.5114 72.3915 +94.1145 98.1177 73.5963 +94.0035 99.7937 74.8534 +93.982 101.603 76.2107 +94.3395 103.874 77.9136 +94.3062 105.765 79.3327 +94.2386 107.665 80.7578 +94.1367 109.572 82.1877 +93.6648 111.087 83.3242 +93.6085 113.137 84.8621 +93.9502 115.732 86.8087 +93.8125 117.8 88.3598 +93.4778 119.672 89.7639 +93.7885 122.434 91.8358 +93.3764 124.318 93.2489 +93.5901 127.102 95.3371 +93.6 129.691 97.2788 +93.5605 132.289 99.2277 +93.5198 134.966 101.235 +93.3323 137.512 103.145 +93.1901 140.206 105.166 +93.3194 143.406 107.567 +93.3858 146.618 109.976 +93.1215 149.413 112.072 +92.9785 152.501 114.388 +92.8612 155.744 116.821 +92.9338 159.431 119.587 +93.0157 163.277 122.471 +92.736 166.624 124.982 +92.749 170.64 127.994 +92.6814 174.668 131.016 +92.6094 178.856 134.157 +92.0783 182.314 136.751 +90.3059 183.397 137.563 +89.1619 185.813 139.375 +88.4624 189.275 141.972 +91.7298 201.613 151.226 +90.4283 204.282 153.228 +88.4894 205.586 154.206 +85.5771 204.602 153.469 +83.5891 205.801 154.367 +80.7395 204.85 153.655 +78.6772 205.866 154.416 +75.6901 204.412 153.326 +73.7606 205.779 154.351 +70.8983 204.513 153.401 +68.9753 205.927 154.462 +66.0753 204.387 153.307 +64.1335 205.772 154.346 +61.5362 205.046 153.801 +59.4546 206.013 154.526 +56.6206 204.311 153.25 +54.6392 205.638 154.245 +52.0151 204.522 153.408 +49.9729 205.662 154.264 +47.2537 203.958 152.985 +45.3222 205.62 154.232 +42.7143 204.193 153.161 +40.6886 205.51 154.15 +38.12 204.046 153.051 +36.0319 205.096 153.839 +33.5974 204.15 153.129 +31.5398 205.489 154.133 +29.1272 204.509 153.398 +26.9579 205.182 153.903 +24.5461 203.929 152.963 +22.3816 204.65 153.505 +20.0306 203.602 152.718 +17.9204 205.011 153.775 +15.6284 204.41 153.325 +13.4346 205.07 153.82 +11.1186 203.718 152.805 +8.92729 204.507 153.397 +6.6568 203.362 152.538 +4.4748 205.081 153.827 +2.2209 203.584 152.705 +1.38778e-14 204.312 153.251 +-2.22265 203.744 152.825 +-4.45734 204.281 153.227 +-6.64894 203.122 152.358 +-8.9238 204.427 153.337 +-11.088 203.158 152.385 +-13.4032 204.591 153.46 +-15.5735 203.691 152.785 +-17.8646 204.373 153.296 +-20.0228 203.522 152.658 +-22.399 204.81 153.624 +-24.4598 203.212 152.426 +-26.7697 203.75 152.829 +-28.9008 202.919 152.206 +-31.3204 204.059 153.061 +-33.4408 203.198 152.415 +-35.7675 203.591 152.71 +-37.8392 202.542 151.923 +-40.2819 203.456 152.609 +-42.4172 202.772 152.096 +-44.8707 203.571 152.695 +-46.8345 202.15 151.629 +-49.3814 203.228 152.438 +-51.4369 202.249 151.703 +-53.9947 203.212 152.426 +-56.0362 202.202 151.668 +-58.4648 202.583 151.954 +-60.7191 202.322 151.758 +-63.2868 203.055 152.308 +-65.3742 202.218 151.68 +-68.2247 203.686 152.781 +-70.0432 202.046 151.551 +-72.9336 203.472 152.621 +-74.9516 202.418 151.83 +-77.7124 203.341 152.522 +-79.6269 202.027 151.537 +-82.3221 202.681 152.027 +-84.53 202.098 151.59 +-87.2848 202.787 152.107 +-89.2933 201.718 151.305 +-92.3454 202.966 152.241 +-94.3459 201.863 151.414 +-97.4761 203.139 152.371 +-99.2119 201.483 151.129 +-102.605 203.157 152.384 +-104.511 201.842 151.398 +-107.451 202.503 151.894 +-109.536 201.525 151.16 +-112.869 202.799 152.116 +-114.704 201.348 151.028 +-117.995 202.425 151.835 +-119.897 201.088 150.833 +-123.182 202.041 151.547 +-125.337 201.102 150.843 +-128.752 202.143 151.624 +-130.86 201.095 150.838 +-137.133 206.319 154.756 +-139.235 205.143 153.874 +-142.922 206.262 154.714 +-143.443 202.82 152.132 +-143.3 198.555 148.932 +-142.974 194.169 145.643 +-146.58 195.152 146.38 +-149.487 195.144 146.374 +-1736.28 2222.82 1667.29 +-526.93 661.665 496.303 +-528.845 651.454 488.644 +-533.557 644.868 483.704 +-535.483 635.084 476.365 +-540.068 628.619 471.515 +-542.317 619.582 464.737 +-143.376 160.798 120.611 +-143.655 158.173 118.643 +-143.233 154.849 116.15 +-142.751 151.543 113.67 +-143.363 149.462 112.109 +-144.804 148.266 111.212 +-156.251 157.142 117.869 +-159.344 157.412 118.072 +-160.355 155.615 116.724 +-160.825 153.325 115.006 +-163.726 153.352 115.027 +-164.671 151.54 113.667 +-587.015 530.779 398.128 +-588.5 522.856 392.185 +-593.236 517.902 388.469 +-595.316 510.699 383.066 +-600.108 505.885 379.455 +-601.574 498.339 373.795 +-607.198 494.292 370.759 +-608.678 486.923 365.232 +-613.324 482.151 361.652 +-614.748 474.905 356.218 +-619.905 470.596 352.985 +-622.089 464.068 348.089 +-626.465 459.221 344.453 +-627.734 452.154 339.153 +-633.092 448.073 336.091 +-635.088 441.642 331.268 +-640.11 437.347 328.046 +-642.405 431.217 323.448 +-646.853 426.562 319.957 +-647.984 419.765 314.858 +-654.182 416.272 312.238 +-655.152 409.473 307.138 +-660.546 405.468 304.134 +-661.829 398.964 299.255 +-668.085 395.47 296.635 +-668.895 388.77 291.609 +-698.918 398.811 299.141 +-697.59 390.751 293.095 +-702.98 386.501 289.907 +-705.511 380.683 285.544 +-711.555 376.76 282.601 +-713.793 370.819 278.145 +-383.237 195.312 146.5 +-384.844 192.374 144.296 +-115.192 56.4695 42.3567 +-113.918 54.7567 41.072 +-112.356 52.9443 39.7126 +-111.631 51.558 38.6727 +-110.535 50.0283 37.5253 +-110.115 48.8281 36.6251 +-110.379 47.943 35.9612 +-110.104 46.8326 35.1283 +-109.102 45.4343 34.0794 +-109.861 44.7798 33.5885 +-109.898 43.8328 32.8782 +-109.563 42.7482 32.0647 +-109.484 41.7752 31.3348 +-109.935 41.0093 30.7603 +-110.014 40.1075 30.0839 +-109.717 39.0777 29.3115 +-110.781 38.5336 28.9034 +-110.461 37.5087 28.1346 +-111.143 36.828 27.624 +-111.355 35.9908 26.9961 +-111.371 35.0948 26.324 +-112.59 34.574 25.9333 +-112.869 33.7587 25.3218 +-113.985 33.1883 24.8939 +-114.531 32.4447 24.3362 +-115.921 31.9305 23.9505 +-116.833 31.2723 23.4568 +-118.502 30.8016 23.1037 +-122.362 30.8633 23.15 +-149.184 36.4866 27.3679 +-160.027 37.9203 28.4433 +-160.723 36.8678 27.6539 +-163.528 36.2789 27.2121 +-162.179 34.7632 26.0752 +-167.877 34.7314 26.0514 +-853.957 170.325 127.758 +-862.2 165.59 124.206 +-867.287 160.177 120.146 +-384.856 68.2537 51.1959 +-380.304 64.6663 48.505 +-381.975 62.1684 46.6314 +-382.442 59.469 44.6066 +-903.808 134.004 100.514 +-405.051 57.135 42.8559 +-404.772 54.1863 40.6441 +-405.94 51.4337 38.5795 +-405.101 48.4323 36.3282 +-406.604 45.7138 34.2891 +-404.807 42.6334 31.9785 +-402.974 39.5816 29.6895 +-405.576 36.9662 27.7277 +-404.671 34.0247 25.5213 +-404.529 31.1601 23.3727 +-403.359 28.2304 21.1751 +-405.745 25.5453 19.1611 +-405.31 22.6728 17.0064 +-405.542 19.8424 14.8834 +-145.101 6.08329 4.56296 +-403.915 14.1077 10.5819 +-403.454 11.2707 8.45393 +-146.45 3.06782 2.30111 +-146.278 2.04255 1.53208 +-146.294 1.02131 0.766067 +119.6 2.66454e-15 -1.13687e-13 +120.395 0.846156 0.622838 +119.982 1.68663 1.2415 +121.059 2.55298 1.8792 +120.726 3.39524 2.49916 +120.685 4.24356 3.1236 +121.234 5.11686 3.76641 +120.375 5.92934 4.36446 +120.007 6.75825 4.9746 +120.826 7.65826 5.63708 +120.938 8.52116 6.27225 +120.642 9.35534 6.88627 +121.133 10.2534 7.5473 +120.918 11.0951 8.1669 +121.488 12.0132 8.84269 +121.254 12.8561 9.46311 +121.803 13.7862 10.1477 +121.451 14.6179 10.7599 +121.189 15.4583 11.3785 +120.721 16.2695 11.9756 +120.442 17.1034 12.5894 +121.039 18.0666 13.2984 +120.74 18.9011 13.9127 +121.315 19.8775 14.6314 +120.997 20.7125 15.2461 +120.768 21.5621 15.8714 +121.309 22.5549 16.6022 +121.157 23.4254 17.243 +120.511 24.1981 17.8117 +120.922 25.1853 18.5384 +120.644 26.0341 19.1632 +121.032 27.0316 19.8974 +120.734 27.8813 20.5228 +120.524 28.7515 21.1634 +121.164 29.833 21.9594 +120.645 30.6349 22.5497 +121.26 31.7305 23.3562 +121.575 32.7604 24.1142 +121.121 33.5873 24.7229 +121.412 34.6254 25.487 +120.844 35.4223 26.0736 +121.393 36.5523 26.9054 +120.712 37.3175 27.4686 +120.954 38.371 28.2441 +120.627 39.2497 28.8909 +120.197 40.096 29.5138 +120.586 41.2224 30.343 +120.41 42.1647 31.0365 +120.497 43.2059 31.8029 +120.843 44.3516 32.6463 +120.086 45.0971 33.195 +120.315 46.2167 34.0191 +120.528 47.3429 34.8481 +119.921 48.1522 35.4438 +120.108 49.2857 36.2782 +120.19 50.3882 37.0897 +120.522 51.6091 37.9884 +119.959 52.4542 38.6104 +120.26 53.6856 39.5169 +120.718 55.0046 40.4877 +120.291 55.9315 41.17 +119.249 56.5704 41.6403 +120.946 58.5263 43.0799 +120.99 59.7106 43.9517 +119.151 59.9612 44.1362 +117.653 60.3636 44.4324 +114.227 59.7406 43.9738 +112.575 60.0078 44.1705 +109.35 59.4005 43.7235 +108.62 60.1212 44.2539 +105.671 59.5889 43.8621 +104.37 59.9551 44.1317 +100.884 59.0295 43.4504 +100.321 59.7842 44.0059 +97.5134 59.1784 43.5599 +96.0751 59.3712 43.7019 +94.7977 59.6475 43.9052 +94.9304 60.8127 44.763 +95.045 61.9844 45.6254 +94.9098 63.0086 46.3793 +95.7556 64.7086 47.6306 +96.0393 66.059 48.6246 +95.8481 67.1013 49.3918 +95.7914 68.2526 50.2393 +95.7914 69.4621 51.1296 +95.6249 70.5679 51.9436 +96.0999 72.1711 53.1236 +95.967 73.3426 53.9859 +95.8161 74.5178 54.8509 +95.5042 75.5835 55.6354 +95.4594 76.8782 56.5884 +95.2536 78.0631 57.4606 +95.585 79.7144 58.6761 +95.3371 80.9086 59.5551 +95.0024 82.0474 60.3933 +95.2582 83.7209 61.6252 +95.6188 85.5241 62.9525 +95.2848 86.7361 63.8446 +94.8661 87.8886 64.6929 +95.0792 89.6539 65.9923 +94.5541 90.7508 66.7997 +94.6484 92.4686 68.0642 +94.6498 94.1316 69.2883 +94.6222 95.8011 70.5172 +94.3809 97.2878 71.6115 +94.2363 98.9058 72.8024 +93.8831 100.336 73.8552 +94.3389 102.676 75.5773 +93.8693 104.051 76.5898 +94.4223 106.608 78.472 +94.1813 108.324 79.7346 +94.0234 110.176 81.0981 +93.6648 111.834 82.3187 +93.4429 113.697 83.6898 +93.7324 116.24 85.5619 +93.6513 118.389 87.1435 +93.4248 120.409 88.6302 +93.7885 123.258 90.7275 +93.9429 125.914 92.6826 +93.5393 127.888 94.1355 +93.6 130.563 96.1048 +93.5605 133.179 98.0302 +93.5683 135.945 100.066 +93.38 138.508 101.953 +92.7206 140.438 103.374 +93.3194 144.371 106.268 +93.0227 147.03 108.226 +93.0769 150.345 110.666 +92.6278 152.948 112.582 +92.8182 156.719 115.357 +92.8492 160.358 118.036 +93.0157 164.375 120.993 +92.98 168.186 123.798 +92.6294 171.566 126.286 +92.7205 175.917 129.489 +92.6094 180.059 132.538 +91.6288 182.644 134.441 +89.9394 183.881 135.351 +88.5169 185.709 136.696 +91.9294 198.016 145.755 +91.8666 203.271 149.623 +89.8608 204.365 150.428 +87.7406 205.217 151.056 +84.8155 204.146 150.267 +82.4766 204.427 150.475 +79.8675 204.001 150.161 +77.6539 204.555 150.568 +74.8948 203.625 149.884 +72.9888 204.995 150.893 +70.3104 204.181 150.293 +68.0435 204.512 150.537 +65.3492 203.501 149.793 +63.2384 204.265 150.355 +60.6491 203.449 149.754 +58.5997 204.416 150.466 +56.231 204.27 150.359 +53.9947 204.579 150.586 +51.4369 203.609 149.872 +49.4768 204.99 150.889 +46.8528 203.588 149.857 +44.8533 204.862 150.794 +42.3182 203.66 149.91 +40.2193 204.506 150.533 +37.7357 203.347 149.68 +35.6422 204.243 150.339 +33.245 203.368 149.695 +31.1132 204.073 150.214 +28.7083 202.924 149.368 +26.6652 204.32 150.395 +24.3065 203.296 149.642 +22.1376 203.78 149.998 +19.8266 202.884 149.339 +17.7251 204.141 150.264 +15.4453 203.373 149.699 +13.2986 204.359 150.424 +11.0008 202.916 149.362 +8.83655 203.79 150.006 +6.60968 203.281 149.631 +4.41371 203.641 149.896 +2.19996 203.021 149.439 +1.75415e-14 203.673 149.919 +-2.19385 202.457 149.024 +-4.41371 203.641 149.896 +-6.60183 203.04 149.453 +-8.84004 203.871 150.065 +-10.9746 202.433 149.007 +-13.2619 203.796 150.01 +-15.3598 202.248 148.871 +-17.6833 203.658 149.909 +-19.7638 202.242 148.866 +-22.1724 204.101 150.235 +-24.2011 202.415 148.993 +-26.6025 203.839 150.041 +-28.6857 202.764 149.25 +-31.0279 203.513 149.802 +-33.0623 202.25 148.872 +-35.517 203.525 149.81 +-37.4401 201.754 148.507 +-39.9064 202.915 149.361 +-41.9221 201.754 148.507 +-44.4366 202.958 149.393 +-46.3425 201.371 148.225 +-48.8853 202.54 149.085 +-50.8986 201.478 148.304 +-53.4541 202.531 149.079 +-55.5384 201.754 148.507 +-58.1274 202.768 149.254 +-60.1122 201.647 148.428 +-62.6336 202.312 148.917 +-64.7483 201.63 148.415 +-67.3706 202.489 149.048 +-69.2682 201.155 148.066 +-71.9689 202.131 148.784 +-74.1564 201.618 148.406 +-76.923 202.629 149.151 +-78.7849 201.236 148.125 +-81.5805 202.206 148.84 +-83.6732 201.396 148.243 +-86.5035 202.323 148.926 +-88.3921 201.024 147.97 +-91.5246 202.515 149.067 +-93.2952 200.958 147.921 +-96.5802 202.626 149.149 +-98.2956 200.965 147.926 +-101.294 201.91 148.622 +-103.516 201.264 148.146 +-106.24 201.567 148.369 +-108.5 200.96 147.923 +-111.364 201.441 148.277 +-113.543 200.65 147.694 +-116.558 201.305 148.176 +-118.692 200.406 147.514 +-122.043 201.518 148.333 +-123.82 200.004 147.218 +-127.208 201.064 147.999 +-129.382 200.162 147.335 +-133.987 202.942 149.382 +-137.66 204.187 150.298 +-141.904 206.17 151.758 +-143.492 204.254 150.347 +-143.25 199.82 147.083 +-143.278 195.892 144.192 +-144.365 193.496 142.429 +-147.345 193.642 142.536 +-153.253 197.517 145.388 +-530.53 670.667 493.664 +-532.439 660.293 486.028 +-537.421 653.907 481.327 +-539.174 643.762 473.86 +-142.338 166.79 122.771 +-143.279 164.794 121.301 +-144.247 162.863 119.88 +-143.713 159.302 117.259 +-142.936 155.567 114.51 +-143.112 152.949 112.582 +-149.816 157.24 115.741 +-152.068 156.752 115.382 +-159.551 161.539 118.905 +-159.847 158.972 117.016 +-161.373 157.656 116.047 +-162.69 156.146 114.936 +-167.363 157.814 116.163 +-585.795 542.709 399.476 +-591.123 538.088 396.076 +-592.114 529.605 389.831 +-596.884 524.592 386.141 +-598.59 516.961 380.524 +-603.48 512.151 376.983 +-605.186 504.704 371.502 +-610.842 500.604 368.484 +-611.647 492.589 362.585 +-616.962 488.273 359.407 +-618.992 481.401 354.349 +-624.62 477.364 351.378 +-625.454 469.716 345.748 +-630.52 465.303 342.499 +-631.673 458.051 337.162 +-637.212 454.021 334.195 +-638.409 446.937 328.981 +-643.912 442.904 326.012 +-644.856 435.774 320.764 +-650.711 431.993 317.981 +-652.181 425.326 313.073 +-658.095 421.579 310.315 +-658.698 414.458 305.074 +-664.592 410.695 302.304 +-666.142 404.264 297.57 +-671.703 400.286 294.642 +-679.089 397.349 292.48 +-700.384 402.336 296.151 +-702.013 395.873 291.394 +-710.644 393.342 289.531 +-710.236 385.811 283.988 +-716.641 382.005 281.186 +-717.65 375.331 276.274 +-722.786 370.836 272.965 +-115.335 58.0407 42.7225 +-112.975 55.7552 41.0402 +-113.232 54.7931 40.3321 +-110.978 52.6464 38.7519 +-111.284 51.7437 38.0874 +-110.535 50.3648 37.0724 +-109.765 49.0003 36.0681 +-109.676 47.9581 35.3009 +-109.486 46.883 34.5096 +-109.28 45.8142 33.7229 +-109.327 44.8617 33.0217 +-109.898 44.1276 32.4814 +-109.833 43.1418 31.7557 +-109.393 42.0214 30.9311 +-109.663 41.183 30.3139 +-110.014 40.3773 29.7209 +-110.174 39.5043 29.0783 +-111.056 38.8891 28.6255 +-111.013 37.9498 27.9341 +-111.143 37.0757 27.2906 +-111.726 36.3535 26.7591 +-112.115 35.567 26.1801 +-113.15 34.9797 25.7478 +-113.712 34.2396 25.203 +-114.642 33.6044 24.7355 +-115.379 32.905 24.2206 +-116.393 32.2763 23.7579 +-118.635 31.9682 23.5311 +-119.738 31.3323 23.063 +-153.644 39.0141 28.7175 +-159.894 39.3691 28.9788 +-162.232 38.7014 28.4873 +-162.165 37.4487 27.5652 +-163.721 36.5659 26.9154 +-163.048 35.1847 25.8987 +-166.909 34.7633 25.5885 +-858.227 172.329 126.847 +-865.506 167.344 123.178 +-870.6 161.87 119.149 +-381.732 68.155 50.1675 +-381.478 65.3022 48.0676 +-382.073 62.6027 46.0805 +-379.301 59.3773 43.7064 +-904.693 135.037 99.3978 +-405.445 57.5752 42.3799 +-405.363 54.6305 40.2124 +-405.644 51.7418 38.086 +-405.892 48.8533 35.9599 +-403.93 45.7186 33.6525 +-405.104 42.9517 31.6158 +-404.264 39.9754 29.4251 +-404.284 37.0963 27.3058 +-404.671 34.2536 25.2134 +-404.23 31.3466 23.0736 +-405.352 28.5607 21.0229 +-403.452 25.5718 18.8228 +-404.911 22.8028 16.7847 +-404.544 19.9268 14.6677 +-145.001 6.11999 4.5048 +-404.914 14.2377 10.4801 +-404.054 11.3634 8.36436 +-145.15 3.06104 2.25317 +-145.378 2.04364 1.50428 +-145.394 1.02186 0.752169 +119.6 2.66454e-15 -1.13687e-13 +120.495 0.852454 0.615694 +119.982 1.69777 1.22623 +120.159 2.55073 1.84229 +119.927 3.39501 2.45209 +120.585 4.26803 3.08263 +120.435 5.11669 3.69558 +120.475 5.97343 4.31437 +120.905 6.85375 4.95019 +120.727 7.70245 5.56317 +120.739 8.56329 6.18493 +120.642 9.41708 6.80159 +121.232 10.3295 7.46058 +121.017 11.1776 8.07314 +121.388 12.0826 8.72681 +120.461 12.8562 9.28556 +121.011 13.787 9.95779 +121.55 14.7264 10.6363 +120.992 15.5349 11.2203 +120.721 16.3769 11.8284 +121.23 17.3288 12.5159 +121.039 18.1858 13.1349 +120.74 19.0259 13.7417 +120.433 19.8631 14.3464 +121.095 20.8661 15.0708 +120.768 21.7044 15.6762 +120.432 22.5397 16.2795 +120.963 23.5422 17.0036 +120.511 24.3578 17.5927 +120.825 25.3312 18.2957 +121.32 26.3528 19.0336 +121.032 27.21 19.6527 +120.734 28.0653 20.2705 +120.524 28.9413 20.9032 +121.068 30.0062 21.6723 +120.836 30.8858 22.3076 +121.165 31.9149 23.0509 +121.575 32.9766 23.8177 +121.215 33.8354 24.4379 +121.412 34.854 25.1736 +120.844 35.6561 25.753 +120.924 36.6516 26.472 +120.619 37.5347 27.1098 +121.047 38.6539 27.9182 +120.719 39.5392 28.5576 +121.028 40.6398 29.3525 +120.862 41.5895 30.0385 +120.96 42.6369 30.795 +120.588 43.5239 31.4356 +120.934 44.6779 32.2691 +120.086 45.3947 32.7868 +120.224 46.4868 33.5756 +120.438 47.6198 34.3939 +119.921 48.47 35.008 +120.108 49.611 35.832 +120.19 50.7208 36.6336 +119.639 51.5691 37.2463 +119.871 52.7617 38.1077 +120.173 54.0006 39.0025 +120.022 55.0483 39.7592 +118.559 55.49 40.0782 +119.939 57.2729 41.3659 +119.403 58.161 42.0074 +119.711 59.4694 42.9524 +120.847 61.2161 44.214 +119.762 61.8509 44.6724 +116.995 61.5919 44.4854 +115.41 61.9251 44.7261 +111.754 61.1072 44.1354 +110.927 61.8037 44.6384 +107.145 60.8191 43.9273 +106.568 61.6218 44.507 +102.988 60.658 43.8109 +102.411 61.4325 44.3703 +99.2704 60.6422 43.7995 +98.3758 61.1941 44.1981 +95.3493 60.3904 43.6176 +94.9304 61.2141 44.2125 +94.8118 62.2405 44.9538 +95.6814 63.9401 46.1814 +95.7556 65.1357 47.0449 +95.8872 66.3897 47.9507 +95.6217 67.3846 48.6693 +95.5667 68.5419 49.5051 +95.7171 69.8663 50.4617 +95.6986 71.0885 51.3444 +96.0999 72.6474 52.4703 +95.967 73.8266 53.3221 +95.8161 75.0096 54.1765 +95.005 75.6845 54.664 +95.4594 77.3855 55.8925 +95.2536 78.5783 56.754 +95.585 80.2405 57.9546 +95.8878 81.9136 59.163 +95.6844 83.1815 60.0787 +96.0014 84.9309 61.3422 +95.0165 85.547 61.7872 +95.351 87.3694 63.1035 +94.8661 88.4686 63.8974 +95.1441 90.3072 65.2253 +95.1968 91.9707 66.4268 +94.6484 93.0789 67.2272 +94.7127 94.8153 68.4814 +94.1865 95.99 69.3298 +94.6272 98.1852 70.9153 +94.1145 99.4296 71.8141 +94.0035 101.128 73.0407 +93.9225 102.897 74.3183 +93.8693 104.738 75.648 +94.3642 107.246 77.4596 +94.0092 108.839 78.6101 +94.0234 110.903 80.1008 +93.7766 112.707 81.4036 +93.6085 114.65 82.8071 +93.8413 117.143 84.6081 +93.7588 119.307 86.1708 +93.4778 121.272 87.5901 +93.4227 123.587 89.2623 +93.3249 125.912 90.941 +93.4378 128.592 92.8773 +93.6 131.425 94.923 +93.5605 134.058 96.8248 +93.5683 136.842 98.8354 +93.38 139.422 100.699 +93.0962 141.938 102.517 +93.2732 145.252 104.91 +93.3404 148.506 107.26 +93.0769 151.337 109.305 +92.9785 154.54 111.618 +93.1626 158.338 114.361 +92.976 161.637 116.744 +93.0157 165.46 119.505 +92.6139 168.63 121.794 +92.9484 173.293 125.163 +92.5251 176.705 127.627 +92.1502 180.349 130.259 +90.8046 182.196 131.593 +89.5729 184.34 133.142 +87.5851 184.967 133.594 +91.9294 199.323 143.963 +91.764 204.385 147.619 +88.9261 203.574 147.034 +86.9267 204.655 147.814 +83.8319 203.11 146.698 +81.8277 204.158 147.455 +79.2059 203.646 147.086 +77.1861 204.664 147.82 +74.3552 203.492 146.974 +72.217 204.167 147.462 +69.6156 203.498 146.978 +67.4482 204.06 147.385 +64.7983 203.118 146.704 +62.8271 204.276 147.541 +60.2056 203.294 146.831 +58.1498 204.186 147.476 +55.6899 203.64 147.081 +53.4749 203.947 147.303 +51.0382 203.364 146.882 +48.8662 203.797 147.195 +46.543 203.576 147.035 +44.3324 203.818 147.21 +41.9881 203.405 146.911 +39.8282 203.854 147.236 +37.514 203.487 146.97 +35.3221 203.744 147.156 +33.0231 203.344 146.867 +30.9183 204.133 147.437 +28.5159 202.894 146.542 +26.4562 204.055 147.381 +24.1531 203.347 146.87 +21.9284 203.187 146.754 +19.6932 202.849 146.51 +17.5507 203.466 146.956 +15.2927 202.693 146.397 +13.1468 203.36 146.879 +10.9267 202.879 146.531 +8.73534 202.786 146.464 +6.54424 202.596 146.327 +4.3823 203.527 147 +2.17727 202.253 146.079 +1.4766e-14 203.558 147.022 +-2.17814 202.334 146.138 +-4.37008 202.96 146.59 +-6.54424 202.596 146.327 +-8.75279 203.191 146.757 +-10.9048 202.473 146.238 +-13.1311 203.117 146.703 +-15.2682 202.369 146.163 +-17.4879 202.738 146.43 +-19.6618 202.526 146.276 +-21.9371 203.268 146.812 +-23.9519 201.653 145.646 +-26.3203 203.007 146.624 +-28.414 202.169 146.019 +-30.6623 202.443 146.217 +-32.8534 202.299 146.113 +-35.0299 202.058 145.939 +-37.1888 201.722 145.696 +-39.4841 202.093 145.964 +-41.658 201.805 145.756 +-43.9851 202.222 146.057 +-46.0145 201.265 145.366 +-48.351 201.648 145.642 +-50.5398 201.378 145.447 +-52.9551 201.964 145.871 +-55.1055 201.503 145.538 +-57.475 201.817 145.764 +-59.5052 200.929 145.123 +-62.0046 201.602 145.609 +-64.2225 201.312 145.4 +-66.6459 201.633 145.632 +-68.8139 201.154 145.286 +-71.4452 201.984 145.885 +-73.3612 200.772 145.009 +-76.1044 201.795 145.749 +-78.0933 200.785 145.019 +-80.9006 201.845 145.785 +-83.1338 201.418 145.477 +-85.5593 201.436 145.489 +-87.7912 200.976 145.157 +-90.5669 201.718 145.693 +-92.7699 201.145 145.279 +-95.5767 201.844 145.784 +-97.6359 200.934 145.127 +-100.245 201.137 145.273 +-102.597 200.795 145.026 +-105.302 201.106 145.251 +-107.423 200.28 144.654 +-110.307 200.845 145.063 +-112.797 200.647 144.919 +-115.375 200.576 144.868 +-117.874 200.338 144.696 +-120.815 200.808 145.036 +-123.017 200.018 144.465 +-125.982 200.44 144.77 +-128.505 200.117 144.536 +-131.828 200.99 145.167 +-136.086 203.184 146.752 +-139.819 204.482 147.689 +-142.803 204.614 147.785 +-143.35 201.279 145.376 +-143.227 197.115 142.368 +-143.953 194.217 140.276 +-144.889 191.671 138.436 +-149.702 194.214 140.273 +-157.429 200.327 144.688 +-535.925 669.002 483.194 +-540.402 661.873 478.045 +-539.006 647.809 467.887 +-143.584 169.361 122.323 +-143.05 165.616 119.618 +-143.492 163.08 117.786 +-142.949 159.501 115.201 +-143.888 157.636 113.854 +-145.699 156.742 113.209 +-155.539 164.323 118.684 +-158.779 164.75 118.992 +-160.235 163.303 117.947 +-160.414 160.589 115.987 +-163.027 160.323 115.795 +-164.746 159.163 114.957 +-587.101 557.256 402.484 +-589.207 549.472 396.862 +-593.641 543.947 392.871 +-595.392 536.052 387.169 +-600.532 531.282 383.724 +-602.273 523.574 378.157 +-606.096 517.765 373.961 +-608.66 510.95 369.039 +-614.067 506.567 365.874 +-615.607 499.051 360.445 +-620.243 494.109 356.875 +-622.445 487.281 351.944 +-627.666 482.858 348.75 +-628.891 475.414 343.373 +-633.985 470.947 340.147 +-635.092 463.57 334.818 +-639.833 458.898 331.444 +-642.333 452.652 326.933 +-647.182 448.091 323.638 +-648.686 441.255 318.701 +-653.643 436.804 315.486 +-655.989 430.632 311.029 +-660.834 426.127 307.774 +-663.347 420.138 303.449 +-667.845 415.429 300.048 +-669.736 409.128 295.497 +-695.336 417.105 301.258 +-698.343 411.312 297.074 +-702.989 406.497 293.597 +-706.191 400.857 289.523 +-718.308 400.209 289.055 +-720.019 393.706 284.359 +-719.56 386.092 278.859 +-720.67 379.397 274.024 +-114.027 58.889 42.5332 +-114.062 57.7794 41.7318 +-112.207 55.7419 40.2602 +-111.946 54.5285 39.3838 +-111.15 53.0761 38.3348 +-110.505 51.7204 37.3556 +-110.013 50.4576 36.4436 +-109.94 49.4024 35.6814 +-109.852 48.3519 34.9227 +-109.839 47.3447 34.1952 +-109.812 46.3412 33.4704 +-110.039 45.4522 32.8283 +-109.987 44.455 32.1081 +-110.552 43.7108 31.5706 +-110.206 42.6129 30.7776 +-109.935 41.5576 30.0154 +-110.287 40.7446 29.4283 +-109.991 39.6991 28.6731 +-111.056 39.1458 28.2734 +-111.473 38.3586 27.7049 +-112.344 37.7237 27.2463 +-112.653 36.8971 26.6494 +-112.953 36.0691 26.0513 +-113.337 35.2687 25.4732 +-113.993 34.5507 24.9546 +-114.079 33.6598 24.3111 +-116.228 33.3657 24.0987 +-117.15 32.7005 23.6183 +-119.299 32.3592 23.3718 +-122.401 32.2405 23.2861 +-160.701 41.0755 29.6672 +-160.85 39.866 28.7936 +-162.136 38.9338 28.1203 +-160.627 37.3384 26.9681 +-163.432 36.7422 26.5375 +-165.077 35.8575 25.8984 +-856.714 179.612 129.726 +-860.943 174.015 125.684 +-868.813 169.091 122.128 +-874.205 163.613 118.171 +-382.122 68.675 49.6013 +-382.749 65.9523 47.6347 +-382.073 63.0159 45.5139 +-383.325 60.4033 43.627 +-406.478 61.0724 44.1102 +-406.036 58.0396 41.9197 +-405.955 55.0714 39.7759 +-405.15 52.0199 37.5719 +-405.595 49.1397 35.4917 +-404.921 46.1332 33.3202 +-403.915 43.1082 31.1354 +-404.86 40.2985 29.106 +-405.179 37.4238 27.0297 +-403.776 34.4035 24.8483 +-405.425 31.6467 22.8572 +-405.352 28.7492 20.7644 +-405.048 25.8423 18.6649 +-404.911 22.9533 16.5783 +-405.542 20.1077 14.523 +-3272.01 139.012 100.403 +-404.714 14.3246 10.3461 +-404.154 11.4412 8.26355 +-146.65 3.11308 2.24846 +-145.878 2.0642 1.49089 +-145.894 1.03214 0.745473 +119.7 3.55271e-15 -1.13687e-13 +120.495 0.857974 0.607979 +120.882 1.72158 1.21995 +120.159 2.56725 1.81921 +120.826 3.44263 2.43952 +120.685 4.29923 3.04653 +121.234 5.18398 3.67348 +120.475 6.01211 4.26031 +120.905 6.89813 4.88816 +120.826 7.75872 5.49799 +120.739 8.61874 6.10742 +120.642 9.47806 6.71636 +121.332 10.4049 7.37316 +121.017 11.25 7.97198 +120.594 12.0813 8.56108 +120.461 12.9395 9.1692 +121.011 13.8762 9.833 +121.55 14.8217 10.503 +121.189 15.6611 11.0978 +120.721 16.4829 11.6802 +121.328 17.4552 12.3692 +121.039 18.3036 12.9703 +120.74 19.1491 13.5695 +120.433 19.9918 14.1666 +120.997 20.9842 14.8699 +120.768 21.8449 15.4798 +120.432 22.6857 16.0755 +120.963 23.6946 16.7905 +120.317 24.476 17.3442 +121.018 25.5361 18.0954 +121.32 26.5235 18.7951 +121.032 27.3862 19.4065 +120.927 28.292 20.0483 +120.332 29.0823 20.6084 +121.164 30.2243 21.4176 +120.931 31.1104 22.0455 +121.165 32.1215 22.762 +120.816 32.983 23.3724 +121.215 34.0544 24.1317 +121.506 35.1069 24.8775 +120.657 35.8312 25.3907 +120.924 36.8889 26.1403 +120.899 37.8654 26.8322 +121.14 38.9342 27.5896 +120.627 39.7646 28.1781 +121.305 40.9966 29.0511 +120.678 41.7951 29.6169 +120.96 42.913 30.4091 +120.497 43.7726 31.0182 +121.116 45.0349 31.9127 +120.267 45.7576 32.4248 +120.315 46.8229 33.1797 +120.438 47.9282 33.9629 +120.816 49.1479 34.8273 +120.108 49.9322 35.383 +120.19 51.0492 36.1745 +120.434 52.2478 37.0239 +119.695 53.0254 37.5749 +120.173 54.3503 38.5138 +118.542 54.7218 38.777 +119.771 56.4204 39.9807 +121.145 58.2235 41.2584 +120.089 58.8737 41.7192 +119.966 59.9823 42.5047 +120.762 61.5692 43.6293 +121.027 62.909 44.5786 +118.001 62.524 44.3059 +117.161 63.2717 44.8357 +113.495 62.461 44.2612 +111.834 62.7122 44.4392 +109.357 62.4765 44.2722 +108.033 62.8737 44.5537 +105.091 62.2977 44.1455 +103.698 62.6068 44.3645 +101.107 62.1643 44.0509 +99.0105 61.9877 43.9258 +96.9253 61.7862 43.783 +95.1652 61.7629 43.7665 +94.7341 62.5922 44.3541 +94.987 63.887 45.2717 +94.9895 65.033 46.0837 +95.507 66.5546 47.162 +95.7726 67.928 48.1352 +95.6416 69.0398 48.9231 +95.7171 70.3187 49.8293 +95.6986 71.5488 50.701 +96.0999 73.1178 51.8128 +95.967 74.3047 52.6539 +95.1687 74.9852 53.1361 +95.6469 76.6893 54.3437 +95.4594 77.8866 55.1921 +95.7442 79.4945 56.3315 +95.7239 80.8774 57.3115 +95.3371 81.9699 58.0857 +95.0706 83.1832 58.9454 +95.3258 84.8795 60.1474 +95.0835 86.1613 61.0557 +95.2185 87.8127 62.226 +94.8005 88.9803 63.0533 +95.0792 90.83 64.364 +95.1968 92.5662 65.5944 +94.5848 93.6187 66.3402 +94.7127 95.4293 67.6232 +94.809 97.2496 68.9131 +94.3193 98.4995 69.7989 +93.9928 99.9445 70.8228 +94.0637 101.848 72.1717 +94.3984 104.088 73.7588 +93.8693 105.416 74.7001 +93.7255 107.209 75.9709 +94.1813 109.744 77.7673 +93.9102 111.486 79.0017 +93.7207 113.369 80.3355 +93.7189 115.528 81.8659 +93.8413 117.902 83.5479 +93.6513 119.942 84.9933 +93.5837 122.195 86.5902 +93.8407 124.944 88.5381 +93.3249 126.727 89.8014 +93.4886 129.495 91.7631 +93.6 132.276 93.7335 +93.5605 134.926 95.6114 +93.035 136.943 97.0407 +93.3323 140.253 99.3863 +93.1432 142.929 101.283 +93.3194 146.265 103.646 +93.3858 149.541 105.968 +92.9876 152.171 107.832 +92.9785 155.541 110.22 +92.8182 158.774 112.511 +92.9338 162.609 115.228 +93.0157 166.531 118.008 +92.6953 169.871 120.374 +92.5098 173.592 123.011 +92.5642 177.925 126.081 +91.691 180.612 127.986 +90.2053 182.166 129.087 +88.9132 184.167 130.505 +88.0152 187.078 132.568 +92.1396 201.072 142.484 +91.2168 204.481 144.9 +88.4254 203.739 144.373 +86.243 204.36 144.814 +83.6415 203.96 144.531 +81.5805 204.859 145.167 +78.8451 204.031 144.581 +76.3675 203.805 144.42 +73.9008 203.558 144.246 +71.8311 204.39 144.835 +69.2682 203.793 144.412 +66.9306 203.805 144.421 +64.5229 203.564 144.25 +62.3917 204.173 144.682 +59.9721 203.817 144.429 +57.7674 204.156 144.669 +55.4302 204.002 144.56 +53.267 204.469 144.891 +50.6993 203.322 144.078 +48.7708 204.716 145.066 +46.2696 203.691 144.34 +44.0545 203.853 144.454 +41.7405 203.515 144.215 +39.7031 204.529 144.934 +37.2923 203.594 144.271 +35.0995 203.771 144.397 +32.8012 203.285 144.052 +30.7233 204.159 144.671 +28.3348 202.91 143.787 +26.2471 203.753 144.384 +24.0094 203.446 144.166 +21.7977 203.283 144.051 +19.5599 202.78 143.694 +17.474 203.889 144.48 +15.2011 202.784 143.697 +13.0683 203.455 144.172 +10.8525 202.806 143.713 +8.71091 203.528 144.224 +6.52068 203.175 143.974 +4.35438 203.539 144.232 +2.16942 202.829 143.729 +1.29896e-14 202.999 143.85 +-2.17203 203.074 143.902 +-4.33867 202.805 143.712 +-6.49188 202.277 143.338 +-8.69695 203.202 143.993 +-10.8307 202.399 143.424 +-13.0264 202.803 143.71 +-15.1584 202.214 143.293 +-17.3484 202.423 143.441 +-19.5285 202.455 143.464 +-21.7802 203.121 143.936 +-23.8848 202.39 143.418 +-26.1321 202.861 143.751 +-28.2216 202.099 143.212 +-30.443 202.296 143.351 +-32.6315 202.233 143.307 +-34.8768 202.478 143.48 +-36.9228 201.576 142.841 +-39.2181 202.031 143.163 +-41.3114 201.422 142.732 +-43.551 201.523 142.803 +-45.7047 201.204 142.578 +-48.0266 201.593 142.853 +-50.161 201.163 142.548 +-52.5601 201.756 142.969 +-54.7809 201.613 142.867 +-57.1376 201.93 143.092 +-59.2951 201.516 142.799 +-61.6417 201.719 142.942 +-63.8219 201.352 142.682 +-66.3871 202.151 143.248 +-68.3596 201.12 142.518 +-70.9766 201.959 143.112 +-73.1908 201.602 142.86 +-75.6073 201.775 142.982 +-77.7625 201.23 142.596 +-80.4371 201.988 143.133 +-82.5944 201.407 142.722 +-85.0384 201.505 142.791 +-87.4574 201.508 142.793 +-89.9513 201.644 142.889 +-92.1396 201.072 142.484 +-94.8958 201.704 142.932 +-96.9762 200.868 142.339 +-99.7952 201.532 142.81 +-101.947 200.814 142.301 +-104.599 201.057 142.473 +-107.104 200.977 142.417 +-109.575 200.804 142.294 +-112.092 200.685 142.209 +-114.952 201.136 142.529 +-117.056 200.236 141.891 +-119.982 200.715 142.231 +-122.571 200.583 142.137 +-125.211 200.503 142.08 +-127.673 200.109 141.802 +-130.513 200.273 141.918 +-134.272 201.775 142.982 +-138.946 204.522 144.929 +-142.113 204.945 145.229 +-143.2 202.371 143.404 +-143.227 198.391 140.584 +-142.769 193.867 137.378 +-144.471 192.356 136.307 +-148.96 194.502 137.829 +-153.775 196.944 139.559 +-538.321 676.345 479.273 +-542.775 669.084 474.127 +-142.818 172.758 122.42 +-143.301 170.121 120.552 +-143.738 167.491 118.688 +-142.795 163.339 115.745 +-143.243 160.863 113.991 +-145.791 160.755 113.915 +-150.093 162.514 115.161 +-158.765 168.818 119.628 +-159.764 166.845 118.23 +-160.671 164.807 116.786 +-161.924 163.15 115.612 +-164.999 163.312 115.727 +-168.089 163.445 115.82 +-589.374 563.036 398.979 +-591.634 555.308 393.503 +-596.027 549.67 389.508 +-598.404 542.251 384.251 +-603.302 537.189 380.663 +-604.728 529.113 374.941 +-608.781 523.426 370.911 +-611.577 516.724 366.162 +-615.819 511.302 362.32 +-618.223 504.417 357.44 +-622.24 498.909 353.538 +-625.106 492.533 349.019 +-629.697 487.558 345.494 +-631.597 480.552 340.529 +-635.975 475.485 336.939 +-638.361 468.973 332.324 +-642.454 463.761 328.631 +-644.748 457.296 324.05 +-649.843 452.847 320.897 +-651.368 445.947 316.008 +-655.881 441.137 312.599 +-657.854 434.654 308.005 +-662.947 430.257 304.89 +-665.396 424.165 300.572 +-670.384 419.708 297.414 +-674.128 414.478 293.708 +-697.346 421.019 298.343 +-700.609 415.318 294.303 +-706.652 411.261 291.429 +-708.321 404.67 286.758 +-713.693 400.212 283.599 +-716.62 394.385 279.47 +-727.399 392.826 278.365 +-121.607 64.4349 45.6599 +-114.195 59.358 42.0624 +-113.554 57.8941 41.025 +-112.207 56.1029 39.7557 +-111.26 54.5454 38.652 +-110.719 53.2128 37.7077 +-110.158 51.8921 36.7719 +-110.013 50.7843 35.9869 +-109.94 49.7223 35.2343 +-109.94 48.704 34.5127 +-109.839 47.6512 33.7667 +-109.635 46.5659 32.9976 +-109.683 45.5983 32.3119 +-109.361 44.488 31.5252 +-109.563 43.6003 30.8961 +-110.296 42.924 30.4169 +-110.026 41.8612 29.6637 +-110.196 40.9747 29.0355 +-110.813 40.2549 28.5255 +-111.148 39.4318 27.9422 +-112.117 38.8302 27.5159 +-111.605 37.7182 26.7279 +-112.653 37.1361 26.3154 +-112.86 36.2727 25.7036 +-113.99 35.7017 25.299 +-114.368 34.8887 24.7229 +-114.83 34.101 24.1647 +-116.51 33.6634 23.8546 +-117.906 33.1247 23.4729 +-120.911 33.0088 23.3908 +-127.822 33.8864 24.0127 +-158.031 40.6545 28.8087 +-161.137 40.1957 28.4835 +-161.657 39.07 27.6859 +-163.607 38.2774 27.1242 +-163.528 37.002 26.2204 +-166.332 36.3641 25.7684 +-857.876 181.02 128.275 +-863.66 175.695 124.501 +-871.535 170.719 120.975 +-385.266 72.5719 51.426 +-381.048 68.9254 48.842 +-382.847 66.3963 47.0498 +-380.603 63.1799 44.7706 +-3216.3 510.098 361.466 +-405.691 61.3489 43.4731 +-405.15 58.288 41.3041 +-406.448 55.4953 39.3251 +-405.347 52.3822 37.1192 +-404.409 49.3132 34.9444 +-403.039 46.2162 32.7498 +-404.113 43.4086 30.7603 +-403.966 40.47 28.6779 +-405.179 37.6661 26.691 +-405.665 34.7883 24.6517 +-406.321 31.922 22.6206 +-404.555 28.8784 20.4638 +-404.748 25.9904 18.4174 +-405.31 23.1247 16.3867 +-404.245 20.1732 14.2952 +-404.844 17.3112 12.2671 +-404.415 14.4067 10.2089 +-403.154 11.4868 8.13982 +-149.349 3.19091 2.26115 +-145.878 2.07757 1.47221 +-145.494 1.03597 0.734113 +120.5 5.77316e-15 2.84217e-14 +120.595 0.864138 0.60071 +120.782 1.73108 1.20337 +120.259 2.58571 1.79747 +120.826 3.46449 2.40836 +120.685 4.32654 3.00762 +121.234 5.21691 3.62656 +121.273 6.0904 4.23377 +120.905 6.94194 4.82573 +121.026 7.82089 5.43673 +120.639 8.66634 6.02446 +120.642 9.53827 6.63058 +121.332 10.471 7.27899 +121.116 11.3307 7.87661 +120.793 12.1781 8.46567 +121.353 13.1182 9.11916 +121.011 13.9644 9.70742 +121.55 14.9159 10.3688 +121.189 15.7605 10.956 +120.721 16.5876 11.531 +121.328 17.5661 12.2112 +121.039 18.4198 12.8046 +120.838 19.2864 13.407 +120.433 20.1188 13.9857 +121.095 21.1346 14.6918 +120.67 21.9659 15.2697 +121.309 22.996 15.9858 +120.963 23.8451 16.5761 +120.511 24.6712 17.1503 +120.922 25.6777 17.85 +121.513 26.7344 18.5846 +121.128 27.5822 19.1739 +120.734 28.4264 19.7608 +121.291 29.5003 20.5073 +121.164 30.4163 21.144 +120.741 31.2586 21.7296 +120.404 32.1226 22.3302 +120.816 33.1925 23.0739 +121.215 34.2708 23.8235 +120.752 35.1107 24.4074 +120.938 36.143 25.125 +120.924 37.1232 25.8064 +120.525 37.9883 26.4077 +121.047 39.1514 27.2163 +120.534 39.9865 27.7968 +120.474 40.9743 28.4835 +120.862 42.1247 29.2832 +121.052 43.2183 30.0435 +120.588 44.084 30.6452 +120.934 45.2528 31.4578 +120.267 46.0482 32.0107 +120.405 47.1557 32.7806 +120.438 48.2326 33.5291 +119.832 49.0571 34.1023 +120.197 50.2867 34.957 +120.367 51.4493 35.7653 +119.728 52.2712 36.3366 +120.398 53.6757 37.313 +120.348 54.7752 38.0773 +119.5 55.5142 38.591 +119.858 56.8199 39.4986 +120.111 58.0932 40.3838 +120.089 59.2477 41.1863 +119.455 60.1059 41.7829 +120.423 61.7863 42.9511 +121.111 63.3527 44.04 +118.84 63.3684 44.0509 +118.162 64.2175 44.6412 +115.319 63.8679 44.3981 +113.4 63.9942 44.4859 +110.176 63.3443 44.0341 +108.766 63.7022 44.2829 +105.9 63.1761 43.9172 +104.501 63.4929 44.1374 +101.746 62.9544 43.7631 +100.359 63.2312 43.9555 +98.2649 63.038 43.8212 +96.9652 63.3308 44.0248 +95.1227 63.2481 43.9672 +94.9098 64.2406 44.6572 +94.9895 65.4461 45.4952 +95.507 66.9774 46.5597 +96.3764 68.7904 47.82 +96.3906 70.0224 48.6765 +95.94 70.9302 49.3075 +95.6986 72.0033 50.0534 +96.0999 73.5822 51.1511 +95.967 74.7767 51.9814 +95.8161 75.9748 52.8143 +95.7182 77.234 53.6896 +95.4594 78.3814 54.4872 +95.7442 79.9994 55.612 +95.7239 81.3912 56.5795 +95.3371 82.4906 57.3438 +95.0706 83.7116 58.1926 +95.3258 85.4187 59.3792 +95.0165 86.6478 60.2337 +95.2848 88.4321 61.474 +95.4566 90.1646 62.6784 +95.0792 91.4069 63.542 +94.6183 92.5885 64.3634 +94.5848 94.2134 65.493 +94.6498 95.9722 66.7156 +94.809 97.8673 68.033 +94.0731 98.8666 68.7276 +93.9928 100.579 69.9183 +93.9433 102.364 71.1586 +94.0415 104.353 72.5416 +94.3395 106.617 74.1153 +94.2481 108.492 75.419 +94.1239 110.374 76.7272 +93.8535 112.127 77.9459 +93.7207 114.089 79.3095 +93.6637 116.193 80.7724 +93.8413 118.651 82.4808 +93.7051 120.773 83.9557 +93.6367 123.041 85.5328 +93.4227 125.178 87.018 +93.3764 127.602 88.703 +93.4886 130.318 90.5912 +93.6 133.116 92.5364 +93.6097 135.855 94.44 +92.9865 137.741 95.7511 +93.3323 141.144 98.117 +93.1432 143.837 99.9892 +93.2732 147.121 102.272 +93.3858 150.491 104.614 +93.0769 153.285 106.557 +92.8908 156.381 108.709 +92.8182 159.783 111.074 +92.976 163.717 113.809 +92.9328 167.44 116.397 +92.6139 170.8 118.732 +92.5098 174.695 121.44 +92.5642 179.055 124.471 +91.6527 181.683 126.298 +90.7672 184.465 128.232 +88.6933 184.879 128.52 +89.0186 190.413 132.367 +91.9294 201.888 140.343 +90.7037 204.622 142.244 +87.9581 203.949 141.776 +85.8523 204.726 142.317 +83.4829 204.867 142.414 +81.1479 205.066 142.553 +78.1534 203.526 141.482 +76.1628 204.549 142.193 +73.7304 204.379 142.075 +71.5555 204.9 142.437 +68.7872 203.663 141.577 +66.7235 204.466 142.136 +64.3477 204.3 142.02 +62.1739 204.754 142.336 +59.5519 203.675 141.585 +57.5875 204.813 142.377 +54.9973 203.695 141.6 +52.8719 204.242 141.98 +50.5398 203.969 141.79 +48.4082 204.485 142.149 +46.0509 204.017 141.824 +43.8635 204.258 141.991 +41.592 204.079 141.866 +39.4215 204.368 142.068 +37.1297 203.994 141.808 +34.9464 204.171 141.93 +32.6577 203.681 141.59 +30.4917 203.907 141.747 +28.2442 203.547 141.496 +26.0589 203.578 141.518 +23.8177 203.103 141.188 +21.7192 203.839 141.7 +19.4186 202.595 140.835 +17.3694 203.955 141.78 +15.1522 203.416 141.406 +12.9793 203.353 141.362 +10.8176 203.438 141.421 +8.65508 203.508 141.47 +6.47879 203.152 141.222 +4.32296 203.354 141.363 +2.15545 202.803 140.98 +1.29896e-14 203.55 141.499 +-2.15545 202.803 140.98 +-4.32645 203.519 141.477 +-6.47356 202.987 141.108 +-8.62367 202.769 140.956 +-10.7914 202.946 141.079 +-12.9898 203.517 141.476 +-15.1095 202.842 141.007 +-17.2996 203.136 141.211 +-19.4029 202.431 140.721 +-21.6233 202.939 141.074 +-23.7027 202.122 140.506 +-25.9544 202.762 140.951 +-28.1197 202.649 140.873 +-30.3698 203.092 141.181 +-32.4097 202.134 140.515 +-34.6541 202.463 140.744 +-36.7898 202.126 140.509 +-39.0773 202.585 140.828 +-41.1629 201.973 140.403 +-43.4468 202.317 140.642 +-45.5771 201.917 140.364 +-47.8167 201.986 140.412 +-50.0613 202.038 140.448 +-52.373 202.314 140.64 +-54.5211 201.931 140.374 +-56.9126 202.413 140.709 +-59.085 202.078 140.475 +-61.3998 202.204 140.563 +-63.6216 201.995 140.418 +-65.973 202.165 140.536 +-68.1458 201.765 140.258 +-70.4805 201.821 140.297 +-72.6511 201.387 139.995 +-75.315 202.272 140.611 +-77.552 201.96 140.394 +-79.9427 202.021 140.436 +-82.3406 202.064 140.466 +-84.4198 201.311 139.942 +-87.157 202.092 140.485 +-89.3015 201.459 140.045 +-91.7543 201.504 140.076 +-94.1791 201.452 140.04 +-96.6097 201.38 139.991 +-99.5704 202.355 140.668 +-101.411 201.027 139.745 +-104.247 201.654 140.181 +-106.386 200.899 139.656 +-109.249 201.479 140.059 +-111.345 200.614 139.458 +-114.149 200.999 139.726 +-116.669 200.841 139.616 +-119.631 201.399 140.004 +-121.857 200.682 139.505 +-124.757 201.045 139.757 +-127.166 200.58 139.434 +-130.138 200.966 139.702 +-132.698 200.675 139.5 +-138.51 205.175 142.628 +-141.129 204.818 142.38 +-143.45 204.012 141.82 +-143.329 199.792 138.887 +-142.975 195.38 135.819 +-144.419 193.508 134.518 +-147.953 194.415 135.149 +-150.175 193.555 134.551 +-539.846 682.569 474.492 +-142.786 177.132 123.134 +-143.601 174.809 121.519 +-144.604 172.758 120.094 +-144.025 168.89 117.405 +-143.085 164.71 114.499 +-143.184 161.819 112.489 +-149.36 165.737 115.213 +-154.727 168.595 117.2 +-158.765 169.891 118.1 +-159.764 167.905 116.72 +-161.045 166.24 115.563 +-162.491 164.76 114.534 +-167.861 167.202 116.231 +-586.672 574.085 399.078 +-590.998 568.173 394.969 +-593.209 560.323 389.511 +-597.551 554.575 385.516 +-600.277 547.404 380.531 +-604.18 541.387 376.348 +-606.842 534.336 371.446 +-610.639 528.359 367.292 +-613.105 521.305 362.388 +-617.992 516.365 358.954 +-620.274 509.305 354.046 +-624.451 503.863 350.263 +-627.336 497.43 345.791 +-631.511 492.067 342.063 +-633.352 484.949 337.115 +-637.745 479.837 333.561 +-640.145 473.271 328.997 +-644.102 467.904 325.266 +-647.239 461.978 321.147 +-651.212 456.683 317.466 +-653.972 450.575 313.22 +-658.35 445.611 309.769 +-659.875 438.758 305.005 +-665.217 434.472 302.026 +-667.524 428.224 297.682 +-671.812 423.274 294.241 +-687.545 425.413 295.728 +-700.722 425.744 295.958 +-703.683 419.79 291.82 +-708.036 414.684 288.27 +-710.123 408.276 283.815 +-715.918 404.01 280.85 +-725.408 401.758 279.284 +-724.146 393.553 273.581 +-114.982 61.3113 42.6209 +-113.267 59.2497 41.1878 +-112.79 57.8703 40.2288 +-110.928 55.8158 38.8006 +-110.317 54.4267 37.835 +-110.202 53.3008 37.0523 +-110.245 52.2628 36.3308 +-109.491 50.8644 35.3586 +-109.94 50.0381 34.7843 +-110.204 49.1309 34.1536 +-109.927 47.9924 33.3622 +-109.723 46.8996 32.6025 +-109.594 45.8507 31.8733 +-110.166 45.1004 31.3518 +-109.833 43.9853 30.5766 +-110.206 43.1613 30.0038 +-110.116 42.1617 29.309 +-110.833 41.4733 28.8304 +-110.265 40.3102 28.0218 +-110.964 39.6168 27.5398 +-111.565 38.8843 27.0307 +-112.159 38.1463 26.5176 +-112.838 37.4335 26.0221 +-113.976 36.8643 25.6264 +-113.617 35.8108 24.8941 +-115.023 35.3117 24.5471 +-115.864 34.6265 24.0708 +-117.642 34.2061 23.7786 +-118.473 33.4956 23.2846 +-123.092 33.8178 23.5086 +-159.777 42.6271 29.6325 +-159.557 41.3078 28.7153 +-161.233 40.475 28.1364 +-161.465 39.2716 27.2998 +-163.126 38.4074 26.6991 +-165.166 37.6101 26.1448 +-3164.86 696.307 484.042 +-859.909 182.602 126.937 +-865.116 177.109 123.118 +-873.383 172.168 119.684 +-381.758 72.368 50.307 +-381.927 69.5232 48.3294 +-384.021 67.0229 46.5913 +-381.191 63.6794 44.2671 +-904.275 144.327 100.329 +-404.216 61.5141 42.7618 +-402.885 58.3303 40.5486 +-932.632 128.148 89.0826 +-404.755 52.6379 36.5915 +-404.409 49.6265 34.4981 +-404.822 46.7155 32.4745 +-405.997 43.888 30.509 +-405.257 40.8572 28.4021 +-404.98 37.8867 26.3371 +-403.478 34.8204 24.2056 +-405.923 32.0933 22.3098 +-404.754 29.0762 20.2125 +-405.048 26.1748 18.1956 +-403.814 23.1856 16.1176 +-403.945 20.2863 14.1021 +-405.144 17.4341 12.1194 +-403.915 14.4803 10.066 +-403.154 11.5598 8.03586 +-147.649 3.17464 2.20687 +-145.078 2.0793 1.44543 +-145.694 1.04399 0.725736 +120.7 5.32907e-15 2.84217e-14 +120.695 0.870241 0.59338 +121.082 1.74619 1.19065 +120.359 2.60397 1.77554 +121.026 3.49185 2.38094 +120.785 4.3571 2.97092 +121.234 5.24941 3.57935 +120.475 6.088 4.15114 +121.104 6.99673 4.77077 +120.826 7.85665 5.35711 +120.639 8.72034 5.94603 +120.642 9.5977 6.54426 +121.332 10.5363 7.18423 +121.216 11.4107 7.78044 +121.785 12.3547 8.42413 +121.254 13.1892 8.99312 +121.11 14.0629 9.58887 +121.55 15.0088 10.2339 +121.189 15.8587 10.8134 +120.82 16.7046 11.3902 +120.54 17.5607 11.9739 +121.137 18.5496 12.6482 +120.936 19.4224 13.2433 +121.315 20.3924 13.9047 +120.997 21.2491 14.4889 +120.865 22.1385 15.0953 +121.309 23.1392 15.7777 +121.06 24.013 16.3734 +121.578 25.0448 17.077 +120.922 25.8377 17.6176 +120.644 26.7086 18.2114 +121.225 27.7761 18.9393 +120.734 28.6036 19.5035 +121.482 29.731 20.2723 +121.164 30.6058 20.8688 +120.931 31.5031 21.4806 +120.499 32.3483 22.0569 +121.006 33.4518 22.8093 +121.31 34.5112 23.5317 +120.847 35.3569 24.1084 +120.938 36.3682 24.7979 +120.924 37.3545 25.4705 +121.365 38.4914 26.2456 +120.954 39.3651 26.8413 +120.719 40.2975 27.4771 +121.121 41.4509 28.2636 +120.954 42.4195 28.924 +120.96 43.4546 29.6299 +120.497 44.3251 30.2234 +121.207 45.6376 31.1183 +120.267 46.3351 31.5939 +120.585 47.5207 32.4023 +120.708 48.6418 33.1667 +120.1 49.4733 33.7338 +120.286 50.6375 34.5275 +120.367 51.7699 35.2997 +120.522 52.9461 36.1017 +119.783 53.7341 36.639 +120.435 55.1565 37.6089 +119.239 55.7379 38.0053 +119.252 56.8847 38.7873 +119.853 58.3294 39.7723 +120.775 59.9573 40.8823 +119.455 60.4804 41.239 +120.084 61.9962 42.2725 +120.436 63.3923 43.2245 +120.098 64.4382 43.9376 +118.829 64.9824 44.3087 +116.065 64.6817 44.1037 +114.306 64.9077 44.2577 +111.814 64.6868 44.1072 +110.313 65.0108 44.3281 +107.437 64.4924 43.9746 +105.948 64.7731 44.166 +103.104 64.192 43.7698 +100.994 64.0276 43.6577 +98.8953 63.8377 43.5282 +97.6695 64.1883 43.7672 +94.8895 63.4862 43.2885 +94.524 64.3781 43.8967 +95.5257 66.2255 45.1564 +94.9747 67.0191 45.6975 +95.6972 68.7312 46.8649 +96.3157 70.404 48.0054 +95.6427 71.151 48.5148 +95.6249 72.396 49.3637 +95.5148 73.5899 50.1778 +96.0396 75.2994 51.3434 +95.2406 75.9891 51.8137 +95.6469 77.6573 52.9512 +95.4594 78.8697 53.7779 +95.8844 80.6158 54.9684 +95.585 81.7795 55.7619 +95.9566 83.5441 56.9651 +95.6162 84.7165 57.7646 +95.3258 85.9509 58.6062 +95.0165 87.1877 59.4496 +95.2848 88.9831 60.6737 +95.4566 90.7264 61.8624 +95.0142 91.9136 62.672 +94.6826 93.2282 63.5683 +94.6484 94.8641 64.6837 +94.7127 96.6338 65.8904 +94.809 98.4771 67.1473 +94.8119 100.264 68.3658 +94.2971 101.533 69.2312 +94.485 103.595 70.6373 +94.101 105.069 71.6423 +94.5159 107.482 73.2873 +94.3062 109.235 74.4828 +94.1239 111.062 75.7284 +93.9102 112.894 76.9773 +93.6648 114.731 78.2303 +93.7189 116.987 79.7682 +93.8413 119.39 81.407 +93.8125 121.665 82.958 +93.5837 123.738 84.3714 +93.8407 126.521 86.2694 +93.4794 128.539 87.6451 +93.5393 131.201 89.4602 +93.6 133.946 91.3317 +93.1665 136.053 92.7689 +93.5198 139.394 95.0465 +93.38 142.096 96.8893 +93.1432 144.733 98.6875 +93.2732 148.037 100.94 +93.4766 151.575 103.353 +93.3446 154.683 105.472 +92.8908 157.355 107.294 +92.8612 160.854 109.679 +92.976 164.737 112.327 +93.0986 168.784 115.086 +92.6953 172.015 117.29 +92.6294 176.011 120.014 +92.6814 180.399 123.006 +91.3083 182.129 124.186 +90.5424 185.154 126.249 +88.2901 185.186 126.27 +90.9896 195.842 133.536 +91.8944 203.069 138.464 +90.4985 205.432 140.075 +87.6911 204.597 139.506 +85.4942 205.143 139.878 +82.9117 204.733 139.599 +80.7461 205.323 140.001 +78.0031 204.4 139.372 +75.7827 204.797 139.642 +73.4748 204.94 139.739 +71.0593 204.746 139.608 +68.6268 204.455 139.409 +66.5165 205.101 139.85 +64.1223 204.854 139.681 +61.7143 204.506 139.444 +59.3885 204.381 139.359 +57.295 205.043 139.81 +54.7809 204.158 139.207 +52.6432 204.626 139.525 +50.3404 204.431 139.392 +48.2174 204.948 139.745 +45.9051 204.638 139.534 +43.7246 204.88 139.699 +41.3279 204.046 139.13 +39.2963 204.989 139.773 +36.8784 203.875 139.014 +34.8768 205.034 139.804 +32.5663 204.376 139.355 +30.4064 204.603 139.51 +28.1423 204.076 139.151 +25.9858 204.271 139.284 +23.7506 203.793 138.958 +21.6408 204.368 139.35 +19.4186 203.857 139.001 +17.2368 203.66 138.867 +15.079 203.694 138.89 +12.9374 203.96 139.071 +10.7696 203.798 138.961 +8.62367 204.032 139.121 +6.45524 203.674 138.876 +4.30725 203.878 139.016 +2.14847 203.406 138.694 +1.59872e-14 204.24 139.262 +-2.15022 203.571 138.807 +-4.31598 204.291 139.297 +-6.45 203.509 138.764 +-8.60622 203.62 138.84 +-10.7522 203.467 138.736 +-12.906 203.465 138.734 +-15.0485 203.281 138.609 +-17.2368 203.66 138.867 +-19.3402 203.033 138.44 +-21.5449 203.462 138.732 +-23.7027 203.381 138.677 +-25.8499 203.203 138.555 +-28.0065 203.091 138.479 +-30.2602 203.619 138.839 +-32.2791 202.574 138.127 +-34.5149 202.906 138.353 +-36.642 202.568 138.123 +-38.7957 202.378 137.993 +-41.0308 202.58 138.13 +-43.221 202.52 138.09 +-45.3584 202.201 137.872 +-47.6641 202.596 138.141 +-49.842 202.406 138.012 +-52.165 202.767 138.258 +-54.1748 201.899 137.666 +-56.6877 202.869 138.328 +-58.6648 201.891 137.661 +-60.9885 202.101 137.804 +-63.3461 202.373 137.99 +-65.74 202.707 138.217 +-67.8785 202.225 137.889 +-70.2875 202.523 138.092 +-72.4523 202.087 137.795 +-75.1103 202.98 138.403 +-77.3115 202.588 138.136 +-79.6955 202.651 138.179 +-81.8011 201.991 137.729 +-84.4524 202.643 138.174 +-86.5227 201.871 137.647 +-89.0962 202.249 137.905 +-91.194 201.521 137.408 +-93.9282 202.167 137.849 +-96.0233 201.405 137.329 +-98.7838 202.007 137.74 +-101.143 201.745 137.562 +-103.934 202.301 137.941 +-106.107 201.621 137.476 +-108.924 202.13 137.824 +-111.055 201.338 137.284 +-113.853 201.727 137.549 +-115.98 200.898 136.984 +-119.193 201.911 137.675 +-121.41 201.193 137.185 +-124.348 201.635 137.486 +-126.796 201.243 137.219 +-129.433 201.124 137.138 +-131.982 200.837 136.942 +-137.686 205.225 139.934 +-140.735 205.519 140.134 +-143.15 204.854 139.681 +-143.38 201.108 137.127 +-143.129 196.81 134.196 +-144.419 194.713 132.767 +-147.212 194.646 132.721 +-150.122 194.692 132.752 +-1784.51 2270.35 1548.05 +-142.676 178.098 121.437 +-143.768 176.104 120.078 +-143.98 173.086 118.02 +-143.05 168.793 115.093 +-143.724 166.477 113.513 +-144.478 164.297 112.027 +-151.561 169.227 115.389 +-158.277 173.538 118.328 +-159.069 171.276 116.786 +-160.318 169.537 115.6 +-162.476 168.763 115.072 +-163.938 167.264 114.05 +-585.701 587.034 400.273 +-588.536 579.497 395.134 +-592.816 573.473 391.027 +-595.374 565.872 385.844 +-599.406 559.763 381.678 +-602.485 552.842 376.959 +-606.072 546.466 372.612 +-609.297 539.84 368.094 +-612.842 533.569 363.818 +-615.328 526.455 358.967 +-619.253 520.644 355.004 +-621.547 513.53 350.154 +-626.02 508.276 346.572 +-628.919 501.792 342.15 +-633.542 496.726 338.696 +-635.985 489.998 334.109 +-639.809 484.389 330.284 +-642.82 478.21 326.071 +-646.124 472.298 322.04 +-648.748 465.941 317.705 +-653.189 460.924 314.284 +-655.811 454.656 310.011 +-660.125 449.596 306.56 +-662.128 442.999 302.062 +-667.017 438.363 298.901 +-669.336 432.062 294.605 +-678.793 430.338 293.429 +-697.608 434.327 296.149 +-701.687 428.987 292.508 +-704.33 422.794 288.285 +-709.176 417.94 284.975 +-712.662 412.289 281.122 +-716.907 407.089 277.576 +-722.423 402.598 274.514 +-114.993 62.8848 42.8784 +-114.562 61.4683 41.9126 +-113.942 59.9741 40.8938 +-112.875 58.2747 39.735 +-111.355 56.3793 38.4426 +-110.832 55.0211 37.5165 +-110.547 53.8006 36.6843 +-109.639 52.2992 35.6606 +-109.578 51.2219 34.926 +-109.94 50.3499 34.3314 +-109.94 49.3188 33.6283 +-110.104 48.369 32.9808 +-109.989 47.3063 32.2561 +-110.396 46.474 31.6886 +-110.166 45.3814 30.9436 +-109.743 44.2231 30.1538 +-109.845 43.2879 29.5162 +-110.751 42.6689 29.0941 +-110.924 41.7659 28.4784 +-111.635 41.0654 28.0007 +-111.698 40.1272 27.361 +-111.657 39.1589 26.7008 +-112.436 38.4789 26.2371 +-113.58 37.9143 25.8521 +-113.79 37.0334 25.2515 +-114.364 36.2708 24.7315 +-115.492 35.6763 24.3262 +-116.24 34.9553 23.8345 +-117.924 34.502 23.5254 +-119.703 34.0539 23.2199 +-126.222 34.8936 23.7924 +-159.682 42.8672 29.2293 +-159.175 41.4658 28.2737 +-161.998 40.9205 27.9019 +-162.52 39.7744 27.1204 +-163.703 38.7832 26.4446 +-163.721 37.5132 25.5786 +-167.492 37.0798 25.2831 +-861.748 184.132 125.552 +-867.25 178.652 121.815 +-875.23 173.607 118.375 +-380.686 72.6145 49.5127 +-381.536 69.8848 47.6515 +-381.38 66.9767 45.6686 +-382.563 64.3068 43.848 +-904.373 145.242 99.034 +-406.478 62.2437 42.4413 +-405.544 59.081 40.2848 +-933.519 129.069 88.0068 +-404.458 52.9271 36.0887 +-403.42 49.8136 33.9657 +-405.317 47.064 32.0909 +-405.402 44.0968 30.0677 +-405.257 41.1117 28.0323 +-405.179 38.1415 26.0071 +-404.969 35.1669 23.9788 +-404.429 32.1744 21.9384 +-404.754 29.2573 19.9493 +-405.945 26.3962 17.9985 +-404.113 23.3474 15.9196 +-405.542 20.4934 13.9736 +-403.746 17.4822 11.9203 +-405.014 14.6102 9.96204 +-404.354 11.6664 7.95479 +-147.25 3.18576 2.17223 +-145.078 2.09225 1.42662 +-146.594 1.05698 0.720711 +120.7 5.32907e-15 2.84217e-14 +120.695 0.875558 0.585507 +121.082 1.75686 1.17485 +120.359 2.61988 1.75198 +121.026 3.51318 2.34935 +120.785 4.38372 2.9315 +121.333 5.28583 3.53476 +121.174 6.16071 4.11981 +121.104 7.03948 4.70747 +120.826 7.90465 5.28603 +120.739 8.78085 5.87197 +121.538 9.72807 6.50539 +121.332 10.6006 7.08891 +121.216 11.4804 7.6772 +121.785 12.4302 8.31235 +121.353 13.2805 8.88102 +121.11 14.1488 9.46164 +121.649 15.1128 10.1063 +121.189 15.9556 10.6699 +121.609 16.9165 11.3125 +121.328 17.7836 11.8923 +121.137 18.663 12.4804 +120.838 19.5251 13.0569 +120.531 20.3844 13.6315 +121.095 21.3962 14.3082 +120.865 22.2738 14.895 +121.407 23.2993 15.5808 +120.963 24.1403 16.1432 +120.705 25.0169 16.7294 +121.018 26.0164 17.3978 +120.741 26.8933 17.9842 +121.128 27.9236 18.6732 +120.831 28.8012 19.26 +121.387 29.889 19.9875 +121.164 30.7928 20.5919 +121.79 31.9205 21.346 +121.26 32.7514 21.9016 +121.006 33.6561 22.5067 +121.405 34.7492 23.2376 +121.601 35.795 23.937 +121.032 36.6188 24.4879 +121.299 37.6992 25.2104 +120.525 38.4585 25.7181 +121.047 39.636 26.5055 +120.905 40.606 27.1542 +120.474 41.4815 27.7396 +120.954 42.6786 28.5402 +121.235 43.8195 29.3032 +120.771 44.6974 29.8902 +120.388 45.6062 30.4979 +120.358 46.6534 31.1982 +120.585 47.811 31.9724 +120.618 48.9025 32.7023 +119.921 49.7015 33.2366 +120.108 50.8714 34.0189 +120.367 52.0862 34.8313 +120.522 53.2696 35.6226 +120.574 54.4194 36.3916 +120.523 55.5338 37.1368 +119.5 56.2013 37.5832 +120.118 57.6479 38.5505 +118.991 58.2639 38.9624 +120.518 60.1952 40.254 +119.966 61.1105 40.8661 +119.914 62.2868 41.6527 +120.521 63.8242 42.6808 +121.356 65.511 43.8088 +119.412 65.7006 43.9356 +117.392 65.8206 44.0158 +115.13 65.7751 43.9854 +112.797 65.6542 43.9045 +111.127 65.8907 44.0627 +108.166 65.3262 43.6852 +106.591 65.5644 43.8445 +104.382 65.3846 43.7243 +102.343 65.279 43.6537 +100.314 65.1489 43.5667 +98.9217 65.4085 43.7402 +95.4335 64.2402 42.959 +94.987 65.0887 43.5264 +94.9129 66.2027 44.2714 +94.8987 67.3745 45.055 +95.4708 68.9875 46.1336 +95.8663 70.5037 47.1475 +95.7914 71.6969 47.9455 +95.6986 72.8945 48.7463 +95.5148 74.0395 49.512 +96.0396 75.7595 50.6622 +95.8161 76.9153 51.4351 +95.7182 78.19 52.2875 +95.4594 79.3516 53.0643 +95.8844 81.1083 54.2391 +95.7239 82.3987 55.102 +95.4748 83.6322 55.9269 +95.6844 85.2948 57.0387 +95.3933 86.5375 57.8697 +95.0835 87.7819 58.7019 +95.2185 89.4644 59.827 +95.5878 91.4062 61.1255 +95.0792 92.5384 61.8826 +94.7469 93.8617 62.7676 +94.5848 95.3796 63.7826 +94.2093 96.708 64.6709 +94.7467 99.0139 66.213 +94.8734 100.942 67.5021 +94.1145 101.956 68.1802 +94.6655 104.427 69.8329 +94.6363 106.313 71.0942 +94.0456 107.601 71.9552 +94.3062 109.903 73.4945 +94.0092 111.604 74.6324 +94.0801 113.789 76.0932 +94.224 116.121 77.6531 +93.6637 117.632 78.6631 +93.5145 119.701 80.0472 +93.7588 122.338 81.8105 +93.5837 124.494 83.2519 +93.893 127.365 85.1719 +93.4279 129.253 86.4343 +93.5393 132.002 88.2732 +93.6 134.764 90.1199 +93.5605 137.464 91.9254 +93.5198 140.245 93.7854 +93.38 142.964 95.6036 +93.1432 145.618 97.378 +93.2732 148.942 99.601 +93.3858 152.353 101.882 +93.4338 155.777 104.172 +93.2415 158.914 106.27 +92.8182 161.761 108.173 +92.976 165.743 110.837 +92.7669 169.21 113.155 +92.736 173.142 115.784 +92.7092 177.238 118.523 +92.447 181.041 121.066 +90.9256 182.473 122.024 +90.3926 185.977 124.367 +87.9236 185.543 124.077 +92.1722 199.6 133.477 +91.9645 204.465 136.731 +90.1223 205.827 137.642 +87.3239 204.985 137.078 +85.2989 205.925 137.707 +82.7531 205.59 137.483 +80.4062 205.708 137.562 +78.0332 205.729 137.576 +75.5488 205.412 137.364 +73.1624 205.315 137.299 +71.0869 206.077 137.809 +68.3596 204.903 137.024 +66.2836 205.632 137.511 +63.6716 204.656 136.859 +61.5207 205.11 137.162 +59.1551 204.822 136.969 +57.0476 205.404 137.359 +54.7809 205.405 137.359 +52.6432 205.876 137.674 +50.2008 205.109 137.162 +48.0457 205.466 137.4 +45.7958 205.398 137.354 +43.5857 205.477 137.407 +41.3279 205.293 137.284 +39.1086 205.256 137.26 +36.8637 205.039 137.115 +34.7376 205.463 137.398 +32.3574 204.306 136.625 +30.3211 205.276 137.273 +28.0631 204.744 136.917 +25.8917 204.775 136.938 +23.6643 204.293 136.616 +21.5623 204.872 137.003 +19.2774 203.611 136.16 +17.188 204.324 136.636 +15.024 204.192 136.548 +12.8851 204.376 136.671 +10.7391 204.462 136.728 +8.59226 204.532 136.775 +6.43168 204.171 136.534 +4.29155 204.376 136.671 +2.13975 203.818 136.298 +1.4766e-14 204.157 136.525 +-2.14149 203.984 136.409 +-4.30027 204.791 136.949 +-6.41859 203.755 136.256 +-8.57132 204.033 136.442 +-10.7129 203.963 136.395 +-12.8537 203.877 136.338 +-14.9996 203.86 136.326 +-17.181 204.241 136.581 +-19.2696 203.528 136.104 +-21.4577 203.877 136.338 +-23.6164 203.88 136.339 +-25.7767 203.866 136.33 +-27.882 203.423 136.034 +-30.1505 204.121 136.501 +-32.2922 203.894 136.349 +-34.4314 203.652 136.187 +-36.5237 203.148 135.85 +-38.8114 203.696 136.217 +-40.7668 202.506 135.42 +-43.0647 203.02 135.765 +-45.1944 202.7 135.551 +-47.4351 202.855 135.654 +-49.6626 202.91 135.691 +-51.7908 202.542 135.445 +-54.1315 202.97 135.731 +-56.3277 202.813 135.626 +-58.6181 202.962 135.726 +-61.0127 203.417 136.03 +-63.1458 202.966 135.728 +-65.5071 203.223 135.9 +-67.638 202.74 135.577 +-70.0395 203.041 135.778 +-72.4807 203.402 136.02 +-74.8179 203.424 136.035 +-76.9506 202.874 135.667 +-79.4174 203.178 135.87 +-81.4521 202.358 135.322 +-84.1919 203.252 135.92 +-86.2557 202.478 135.402 +-88.9936 203.25 135.918 +-91.124 202.596 135.481 +-93.6774 202.859 135.657 +-95.9134 202.404 135.352 +-98.5215 202.702 135.552 +-100.761 202.21 135.223 +-103.309 202.313 135.292 +-105.708 202.09 135.143 +-108.233 202.074 135.132 +-110.64 201.812 134.956 +-113.473 202.282 135.271 +-115.592 201.451 134.715 +-118.404 201.8 134.949 +-120.964 201.678 134.867 +-123.939 202.2 135.216 +-126.334 201.735 134.905 +-128.964 201.619 134.827 +-131.696 201.625 134.832 +-137.298 205.896 137.688 +-140.242 206.05 137.791 +-143.05 205.961 137.731 +-143.38 202.337 135.308 +-143.181 198.083 132.463 +-143.844 195.123 130.484 +-146.682 195.13 130.488 +-149.477 195.04 130.428 +-154.242 197.434 132.029 +-143.393 180.088 120.429 +-143.545 176.904 118.3 +-144.094 174.28 116.545 +-143.107 169.891 113.61 +-143.724 167.494 112.007 +-147.71 169 113.014 +-156.26 175.54 117.388 +-158.458 174.798 116.892 +-159.252 172.521 115.369 +-160.318 170.573 114.066 +-162.725 170.054 113.719 +-165.511 169.9 113.616 +-587.418 592.352 396.12 +-589.501 583.993 390.53 +-593.79 577.924 386.472 +-596.554 570.458 381.479 +-600.4 564.117 377.239 +-603.757 557.393 372.742 +-607.693 551.276 368.651 +-610.389 544.111 363.86 +-614.15 537.974 359.756 +-616.857 530.987 355.084 +-620.515 524.892 351.008 +-623.173 518.019 346.412 +-627.518 512.605 342.791 +-630.429 506.07 338.421 +-635.283 501.134 335.121 +-637.375 494.069 330.396 +-641.136 488.36 326.578 +-643.786 481.855 322.228 +-647.397 476.12 318.393 +-650.107 469.769 314.146 +-654.329 464.55 310.656 +-657.343 458.503 306.612 +-661.514 453.294 303.129 +-664.149 447.066 298.964 +-668.817 442.231 295.731 +-671.149 435.879 291.483 +-695.454 443.594 296.642 +-698.646 437.632 292.655 +-703.937 432.992 289.552 +-707.081 427.038 285.571 +-711.456 421.845 282.098 +-713.891 415.524 277.871 +-719.38 410.988 274.838 +-723.252 405.522 271.182 +-115.076 63.3148 42.3402 +-114.982 62.0702 41.5078 +-112.846 59.7599 39.9629 +-111.942 58.1461 38.8837 +-111.27 56.6804 37.9035 +-110.232 55.0576 36.8183 +-109.858 53.7918 35.9718 +-110.418 52.9928 35.4376 +-109.578 51.5349 34.4626 +-109.94 50.6575 33.8759 +-109.94 49.6201 33.1821 +-109.839 48.5475 32.4649 +-109.812 47.5186 31.7768 +-109.95 46.5692 31.1419 +-110.166 45.6586 30.533 +-110.552 44.8213 29.9731 +-110.206 43.6955 29.2202 +-110.479 42.8242 28.6376 +-111.015 42.0556 28.1236 +-111.453 41.2487 27.584 +-111.515 40.3061 26.9536 +-112.302 39.6255 26.4985 +-113.175 38.9684 26.0591 +-113.673 38.1771 25.53 +-113.976 37.3206 24.9572 +-114.177 36.4328 24.3635 +-115.211 35.8069 23.945 +-116.898 35.3679 23.6513 +-118.113 34.7683 23.2504 +-119.797 34.2891 22.9299 +-133.808 37.2169 24.8879 +-157.59 42.5639 28.4635 +-161.846 42.419 28.3666 +-161.137 40.9517 27.3854 +-162.52 40.0174 26.7606 +-164.183 39.1348 26.1704 +-3157.34 727.857 486.736 +-856.197 190.705 127.529 +-863.2 185.57 124.095 +-869.967 180.306 120.575 +-3185.97 635.818 425.186 +-381.076 73.1329 48.9058 +-382.122 70.4198 47.0914 +-381.869 67.4723 45.1204 +-383.053 64.7825 43.3216 +-905.944 146.383 97.89 +-405.986 62.5482 41.8275 +-405.051 59.3698 39.702 +-935.788 130.173 87.0497 +-405.347 53.3675 35.6881 +-403.123 50.081 33.4904 +-404.624 47.2705 31.6109 +-403.915 44.2034 29.5599 +-405.654 41.4034 27.6875 +-403.39 38.2051 25.5487 +-405.069 35.3904 23.6664 +-403.832 32.3232 21.6153 +-405.352 29.4796 19.7137 +-405.048 26.4988 17.7204 +-404.712 23.5248 15.7316 +-404.943 20.5882 13.7678 +-404.844 17.6368 11.7942 +-404.415 14.6776 9.81529 +-404.054 11.729 7.84346 +-148.149 3.22481 2.15651 +-145.878 2.11665 1.41545 +-146.594 1.06344 0.711147 +120.5 5.77316e-15 2.84217e-14 +120.495 0.879349 0.57663 +120.882 1.76447 1.15704 +120.159 2.63121 1.7254 +120.726 3.52548 2.31182 +120.685 4.40634 2.88944 +121.234 5.31313 3.48407 +120.974 6.18742 4.05737 +120.905 7.06998 4.63611 +120.727 7.94546 5.21021 +120.54 8.81883 5.78291 +121.339 9.77031 6.40684 +121.232 10.6554 6.98723 +121.116 11.5397 7.56712 +121.686 12.4944 8.19318 +121.254 13.3493 8.75372 +121.209 14.2452 9.34123 +120.66 15.0797 9.88844 +121.189 16.0512 10.5255 +120.721 16.8936 11.0779 +120.344 17.7449 11.6361 +121.039 18.7596 12.3015 +120.74 19.6262 12.8698 +120.531 20.5066 13.4471 +120.899 21.4896 14.0917 +120.67 22.371 14.6697 +121.407 23.4389 15.37 +120.963 24.2849 15.9248 +121.578 25.3488 16.6224 +121.018 26.1723 17.1624 +120.741 27.0544 17.7408 +121.032 28.0685 18.4058 +120.927 28.9968 19.0146 +121.387 30.0681 19.7171 +121.068 30.9529 20.2972 +121.599 32.0615 21.0242 +120.974 32.8701 21.5545 +121.006 33.8578 22.2021 +121.215 34.9029 22.8874 +121.506 35.9815 23.5947 +121.032 36.8383 24.1565 +120.924 37.808 24.7924 +120.339 38.629 25.3308 +120.954 39.8429 26.1268 +120.627 40.7553 26.7251 +121.305 42.018 27.5532 +120.678 42.8364 28.0898 +120.96 43.9821 28.8411 +120.497 44.8632 29.4188 +120.752 46.0182 30.1762 +120.358 46.9329 30.7761 +120.585 48.0975 31.5397 +120.618 49.1956 32.2598 +119.921 49.9993 32.7868 +120.197 51.2142 33.5835 +120.456 52.4369 34.3853 +119.816 53.2747 34.9347 +120.486 54.7056 35.873 +120.523 55.8666 36.6343 +120.022 56.7851 37.2366 +119.945 57.9097 37.9741 +118.216 58.2311 38.1848 +119.575 60.0821 39.3986 +119.455 61.2145 40.1412 +119.66 62.5271 41.0019 +120.015 63.9371 41.9265 +121.188 65.8124 43.1562 +120.08 66.4635 43.5832 +118.304 66.7294 43.7575 +117.108 67.306 44.1356 +114.026 66.767 43.7822 +111.859 66.7225 43.753 +109.541 66.5532 43.642 +107.476 66.5044 43.61 +105.18 66.2796 43.4626 +103.691 66.5356 43.6305 +100.314 65.5393 42.9771 +99.626 66.2689 43.4555 +96.8324 65.5724 42.9989 +95.45 65.7979 43.1467 +94.6831 66.4381 43.5665 +94.8226 67.724 44.4097 +95.3953 69.3461 45.4734 +95.1174 70.372 46.1461 +95.7171 72.0706 47.26 +96.0672 73.6138 48.272 +95.5148 74.4832 48.842 +95.822 76.0407 49.8634 +95.8161 77.3761 50.7391 +95.6469 78.5999 51.5416 +95.4594 79.8271 52.3463 +95.1134 80.9382 53.0749 +95.585 82.7722 54.2775 +95.3371 84.0121 55.0906 +95.0706 85.2556 55.906 +95.3258 86.9942 57.0461 +95.0165 88.246 57.867 +95.2185 90.0005 59.0174 +95.3254 91.7014 60.1328 +95.0142 93.0293 61.0036 +95.2611 94.9368 62.2544 +95.1573 96.5315 63.3001 +94.7127 97.8068 64.1364 +94.8712 99.7376 65.4026 +94.3193 100.954 66.1999 +93.9928 102.435 67.171 +94.0035 104.319 68.4065 +94.4579 106.748 69.9995 +94.3983 108.651 71.2476 +94.2481 110.493 72.4556 +93.9518 112.204 73.5775 +94.0801 114.471 75.0636 +93.7207 116.193 76.1932 +93.5533 118.198 77.5077 +93.2422 120.068 78.7338 +93.7588 123.071 80.7035 +93.4248 125.027 81.9861 +93.4227 127.487 83.5989 +93.4279 130.027 85.2648 +93.5901 132.865 87.1259 +93.6 135.571 88.9004 +93.5112 138.215 90.6338 +93.4713 141.013 92.4686 +93.3323 143.747 94.2618 +93.1432 146.49 96.0604 +93.3194 149.909 98.3021 +93.3404 153.192 100.455 +92.9876 155.962 102.272 +92.8908 159.265 104.438 +92.8612 162.806 106.759 +92.9338 166.66 109.287 +92.6839 170.071 111.524 +92.0852 172.957 113.416 +92.5895 178.07 116.769 +92.6033 182.434 119.631 +90.6194 182.949 119.968 +89.6059 185.463 121.617 +87.6671 186.11 122.041 +92.1722 200.796 131.671 +91.5442 204.75 134.264 +89.5409 205.725 134.904 +87.0568 205.582 134.81 +84.9733 206.368 135.325 +82.0233 204.998 134.427 +80.159 206.304 135.283 +77.552 205.685 134.877 +75.4319 206.323 135.296 +72.7079 205.262 134.6 +70.5632 205.785 134.943 +68.1725 205.566 134.799 +66.0506 206.137 135.173 +63.4213 205.073 134.476 +61.303 205.609 134.827 +59.085 205.805 134.956 +56.8451 205.902 135.019 +54.4562 205.411 134.697 +52.3106 205.801 134.953 +49.8819 205.027 134.446 +47.8931 206.04 135.11 +45.4313 204.984 134.417 +43.4641 206.131 135.17 +41.0308 205.039 134.453 +38.9991 205.909 135.024 +36.6124 204.862 134.337 +34.5706 205.701 134.888 +32.2269 204.702 134.232 +30.1017 205.012 134.436 +27.9159 204.892 134.357 +25.8917 206.002 135.085 +23.5781 204.768 134.276 +21.4142 204.683 134.22 +19.2068 204.08 133.825 +17.1113 204.63 134.185 +14.9264 204.08 133.824 +12.8432 204.933 134.384 +10.6606 204.182 133.892 +8.56085 205.005 134.431 +6.40288 204.474 134.083 +4.26188 204.179 133.89 +2.13277 204.37 134.015 +1.36557e-14 204.377 134.02 +-2.13538 204.621 134.179 +-4.26537 204.346 133.999 +-6.40288 204.474 134.083 +-8.53642 204.42 134.048 +-10.6693 204.35 134.002 +-12.7909 204.097 133.836 +-14.9386 204.247 133.934 +-17.0694 204.13 133.857 +-19.1754 203.748 133.607 +-21.388 204.433 134.056 +-23.4439 203.603 133.512 +-25.6722 204.256 133.94 +-27.7121 203.396 133.376 +-30.0408 204.597 134.164 +-32.0572 203.624 133.526 +-34.2783 203.962 133.747 +-36.2576 202.877 133.036 +-38.655 204.091 133.832 +-40.6347 203.059 133.155 +-42.9432 203.661 133.55 +-44.9757 202.928 133.069 +-47.3206 203.578 133.495 +-49.4831 203.388 133.371 +-51.6245 203.101 133.183 +-53.8285 203.044 133.145 +-56.0578 203.05 133.149 +-58.408 203.447 133.409 +-60.7466 203.743 133.603 +-62.6952 202.725 132.936 +-65.2742 203.713 133.584 +-67.3441 203.069 133.161 +-69.8189 203.615 133.52 +-71.8843 202.937 133.075 +-74.584 204.004 133.775 +-76.71 203.452 133.413 +-79.1084 203.6 133.51 +-81.23 203.015 133.126 +-83.964 203.917 133.717 +-85.9553 202.981 133.104 +-88.6516 203.682 133.563 +-90.7738 203.027 133.134 +-93.2473 203.138 133.207 +-95.6935 203.15 133.215 +-98.0345 202.909 133.057 +-100.416 202.727 132.937 +-102.997 202.91 133.057 +-105.35 202.61 132.861 +-107.826 202.522 132.803 +-110.267 202.336 132.681 +-113.093 202.812 132.993 +-115.205 201.979 132.447 +-118.053 202.408 132.728 +-120.161 201.539 132.158 +-123.531 202.741 132.946 +-125.549 201.683 132.253 +-128.635 202.31 132.664 +-130.885 201.584 132.188 +-137.153 206.911 135.681 +-139.356 205.975 135.068 +-142.85 206.905 135.677 +-143.633 203.91 133.713 +-143.181 199.27 130.671 +-143.008 195.152 127.97 +-144.827 193.817 127.095 +-148.563 195.01 127.877 +-142.532 183.538 120.354 +-143.228 180.957 118.662 +-144.16 178.726 117.199 +-143.301 174.36 114.336 +-142.935 170.704 111.939 +-145.815 170.948 112.098 +-149.826 172.448 113.082 +-158.282 178.877 117.298 +-158.638 176.045 115.441 +-159.983 174.35 114.33 +-160.934 172.254 112.955 +-164.406 172.84 113.339 +-169.665 175.208 114.892 +-589.708 598.224 392.283 +-591.686 589.67 386.674 +-595.804 583.359 382.535 +-598.195 575.454 377.352 +-602.52 569.501 373.448 +-605.095 561.976 368.513 +-609.45 556.182 364.714 +-611.616 548.472 359.658 +-616.284 543.078 356.122 +-618.732 535.793 351.344 +-623.038 530.184 347.666 +-625.082 522.719 342.771 +-629.871 517.611 339.421 +-632.3 510.613 334.832 +-636.879 505.403 331.416 +-638.984 498.284 326.748 +-643.201 492.868 323.196 +-645.57 486.085 318.748 +-650.243 481.079 315.465 +-652.145 474.066 310.867 +-657.295 469.452 307.841 +-659.411 462.702 303.415 +-663.52 457.394 299.934 +-666.247 451.165 295.85 +-670.93 446.287 292.651 +-675.325 441.219 289.328 +-698.468 448.187 293.897 +-701.521 442.066 289.883 +-706.188 436.98 286.548 +-708.537 430.482 282.287 +-714.061 425.927 279.3 +-715.775 419.117 274.834 +-724.325 416.293 272.982 +-728.558 410.945 269.475 +-113.909 63.0481 41.3435 +-113.556 61.6679 40.4384 +-112.424 59.8933 39.2748 +-111.434 58.2286 38.1832 +-111.014 56.8889 37.3047 +-110.66 55.6028 36.4613 +-109.858 54.1141 35.4851 +-109.899 53.0595 34.7936 +-109.665 51.8849 34.0233 +-109.765 50.8799 33.3643 +-109.764 49.8375 32.6808 +-109.927 48.8776 32.0513 +-109.901 47.8419 31.3722 +-109.683 46.7343 30.6459 +-110.077 45.8948 30.0954 +-110.282 44.9798 29.4953 +-111.108 44.3174 29.0609 +-110.57 43.1161 28.2732 +-111.47 42.481 27.8567 +-111.361 41.4618 27.1884 +-111.973 40.7143 26.6983 +-112.762 40.0263 26.2471 +-113.268 39.2339 25.7275 +-113.58 38.3745 25.1639 +-114.534 37.7281 24.7401 +-114.457 36.741 24.0928 +-115.773 36.1972 23.7362 +-117.462 35.7514 23.4438 +-119.244 35.3116 23.1555 +-121.688 35.039 22.9767 +-160.931 45.0287 29.5274 +-160.348 43.5684 28.5698 +-161.178 42.4972 27.8674 +-163.146 41.7105 27.3515 +-161.849 40.0909 26.2895 +-163.895 39.3002 25.7709 +-3157.34 732.219 480.149 +-858.515 192.367 126.144 +-865.33 187.142 122.718 +-870.064 181.407 118.957 +-382.433 76.7787 50.3473 +-381.174 73.59 48.2563 +-381.732 70.7693 46.4067 +-381.869 67.8766 44.5098 +-387.364 65.9043 43.2165 +-404.136 65.6918 43.0772 +-406.478 62.9992 41.3115 +-404.658 59.6675 39.1267 +-938.845 131.381 86.1526 +-403.866 53.4911 35.0766 +-404.804 50.5913 33.175 +-405.515 47.6586 31.2519 +-404.708 44.5556 29.2172 +-405.554 41.6413 27.3061 +-405.179 38.6045 25.3147 +-404.671 35.5675 23.3233 +-405.425 32.6452 21.4069 +-404.754 29.6125 19.4183 +-404.649 26.6314 17.4634 +-404.412 23.6483 15.5073 +-405.143 20.7217 13.5882 +-404.844 17.7425 11.6346 +-403.915 14.7474 9.67053 +-405.053 11.8285 7.75647 +-148.149 3.24413 2.12733 +-145.678 2.12641 1.39439 +-146.394 1.06835 0.700565 +120.5 5.77316e-15 2.84217e-14 +120.495 0.884516 0.568673 +120.882 1.77484 1.14108 +121.059 2.66648 1.71434 +120.726 3.54619 2.27992 +120.685 4.43223 2.84957 +121.234 5.34435 3.43599 +120.974 6.22377 4.00139 +120.905 7.11152 4.57214 +121.524 8.04493 5.17225 +120.54 8.87064 5.70312 +121.438 9.83578 6.32363 +121.232 10.718 6.89081 +121.116 11.6075 7.46271 +120.793 12.4756 8.02081 +121.155 13.4167 8.62585 +121.11 14.3172 9.20482 +121.55 15.2802 9.82398 +121.189 16.1455 10.3803 +120.721 16.9928 10.925 +121.131 17.966 11.5507 +121.039 18.8698 12.1318 +120.838 19.7575 12.7025 +121.119 20.7276 13.3262 +120.899 21.6159 13.8973 +120.67 22.5025 14.4673 +121.407 23.5766 15.1579 +121.06 24.4472 15.7176 +120.705 25.3146 16.2753 +121.309 26.3892 16.9662 +120.548 27.1698 17.468 +121.128 28.256 18.1663 +120.734 29.1208 18.7224 +121.291 30.2209 19.4296 +120.973 31.1101 20.0013 +120.741 32.0222 20.5878 +121.165 33.1152 21.2905 +120.911 34.03 21.8786 +121.215 35.1079 22.5716 +120.658 35.9402 23.1067 +121.032 37.0547 23.8232 +121.018 38.0595 24.4693 +120.525 38.9163 25.0201 +120.768 40.0153 25.7267 +120.534 40.9633 26.3361 +121.121 42.2005 27.1316 +120.678 43.088 27.7022 +121.235 44.3411 28.5078 +120.497 45.1267 29.0129 +120.752 46.2885 29.7599 +120.358 47.2087 30.3514 +120.405 48.3077 31.058 +120.618 49.4846 31.8147 +120.816 50.6684 32.5757 +120.197 51.5151 33.1201 +120.279 52.6673 33.8609 +119.816 53.5877 34.4526 +120.046 54.8263 35.249 +119.735 55.8277 35.8928 +119.413 56.8288 36.5364 +120.204 58.3761 37.5312 +119.939 59.427 38.2068 +120.003 60.6517 38.9942 +119.54 61.6182 39.6156 +119.744 62.939 40.4648 +120.268 64.4483 41.4351 +119.93 65.5119 42.119 +120.33 66.9933 43.0714 +119.216 67.6388 43.4864 +118.345 68.416 43.9861 +115.091 67.7865 43.5813 +113.895 68.3356 43.9344 +111.159 67.933 43.6756 +109.566 68.196 43.8446 +106.618 67.5803 43.4487 +105.199 67.8995 43.654 +102.363 67.2708 43.2498 +101.583 67.9673 43.6976 +98.1535 66.8576 42.9841 +97.4562 67.5756 43.4457 +94.6831 66.8284 42.9654 +95.2789 68.4496 44.0077 +94.9425 69.4223 44.633 +95.3421 70.9526 45.6169 +95.7914 72.5503 46.6441 +96.0672 74.0463 47.6059 +95.3685 74.806 48.0943 +95.7494 76.4296 49.1382 +95.888 77.8892 50.0766 +95.7182 79.1206 50.8683 +95.4594 80.2961 51.624 +95.8844 82.0737 52.7669 +95.5155 83.1979 53.4896 +95.3371 84.5057 54.3305 +95.6844 86.31 55.4905 +95.3933 87.5675 56.299 +94.9496 88.7014 57.028 +95.2185 90.5292 58.2031 +94.8005 91.7329 58.977 +95.0792 93.6398 60.203 +94.5541 94.7855 60.9395 +94.9665 96.9043 62.3018 +94.7127 98.3814 63.2514 +94.809 100.258 64.4579 +94.8734 102.143 65.6699 +94.1145 103.169 66.3296 +94.0035 104.931 67.4626 +94.0415 106.902 68.7297 +93.7517 108.541 69.7832 +94.1319 111.005 71.3677 +94.0092 112.933 72.6066 +93.9668 115.005 73.9392 +93.7207 116.876 75.1419 +93.5533 118.892 76.4382 +93.3511 120.914 77.7383 +93.6513 123.652 79.4985 +93.6897 126.118 81.0842 +93.893 128.881 82.8601 +93.4279 130.791 84.0883 +93.5901 133.646 85.9237 +93.1 135.639 87.2054 +93.3635 138.806 89.2415 +93.4228 141.767 91.1451 +93.38 144.666 93.0087 +93.1432 147.351 94.7349 +93.3194 150.79 96.9457 +93.3404 154.092 99.0688 +93.0769 157.029 100.957 +92.8908 160.201 102.997 +92.8612 163.763 105.286 +92.9338 167.64 107.779 +92.0619 169.922 109.247 +90.8243 171.591 110.32 +89.6787 173.486 111.537 +91.939 182.19 117.134 +90.6577 184.101 118.362 +89.2313 185.773 119.437 +87.8137 187.517 120.558 +92.1006 201.818 129.753 +91.229 205.244 131.956 +89.2673 206.301 132.635 +86.3225 205.046 131.828 +84.3873 206.148 132.537 +81.8329 205.724 132.264 +79.6337 206.156 132.542 +77.0709 205.61 132.191 +74.9056 206.087 132.498 +72.2535 205.178 131.913 +70.1221 205.7 132.249 +67.6915 205.316 132.002 +65.5589 205.804 132.316 +63.221 205.626 132.201 +61.0853 206.083 132.495 +58.5014 204.969 131.779 +56.5752 206.128 132.524 +54.0666 205.14 131.889 +51.9363 205.528 132.138 +49.5429 204.83 131.69 +47.5496 205.764 132.29 +45.1397 204.865 131.712 +43.1342 205.768 132.293 +40.6842 204.501 131.478 +38.7175 205.623 132.199 +36.3168 204.401 131.414 +34.3479 205.576 132.169 +32.005 204.486 131.468 +29.9677 205.298 131.99 +27.7008 204.507 131.482 +25.6826 205.539 132.146 +23.3959 204.38 131.4 +21.3357 205.131 131.883 +19.0891 204.022 131.17 +17.0415 204.993 131.795 +14.847 204.187 131.276 +12.7961 205.38 132.043 +10.5777 203.786 131.018 +8.52246 205.285 131.982 +6.35838 204.247 131.314 +4.24617 204.622 131.556 +2.11706 204.056 131.192 +1.38778e-14 204.989 131.792 +-2.11968 204.309 131.354 +-4.24966 204.79 131.664 +-6.34529 203.826 131.044 +-8.50152 204.781 131.658 +-10.5908 204.038 131.18 +-12.749 204.624 131.557 +-14.8226 203.851 131.06 +-16.9787 204.238 131.309 +-19.0891 204.022 131.17 +-21.2573 204.377 131.398 +-23.348 203.962 131.132 +-25.5677 204.619 131.554 +-27.6103 203.839 131.052 +-29.8336 204.379 131.4 +-31.7962 203.152 130.611 +-34.0417 203.744 130.991 +-36.1098 203.237 130.665 +-38.389 203.878 131.077 +-40.3376 202.759 130.358 +-42.7348 203.863 131.068 +-44.757 203.128 130.595 +-47.0535 203.617 130.91 +-49.0046 202.605 130.259 +-51.4581 203.637 130.922 +-53.374 202.512 130.199 +-55.8778 203.588 130.891 +-57.9878 203.17 130.622 +-60.3111 203.471 130.816 +-62.4448 203.102 130.578 +-64.8083 203.448 130.801 +-66.8898 202.884 130.438 +-69.5433 204.002 131.157 +-71.4299 202.838 130.409 +-74.0285 203.674 130.946 +-76.1387 203.123 130.592 +-78.8302 204.077 131.205 +-80.881 203.331 130.725 +-83.2152 203.286 130.697 +-85.3544 202.746 130.35 +-88.0702 203.535 130.857 +-90.1784 202.88 130.436 +-92.889 203.546 130.864 +-95.0338 202.934 130.471 +-97.8098 203.633 130.92 +-99.8038 202.674 130.304 +-102.332 202.785 130.375 +-104.592 202.335 130.086 +-107.419 202.943 130.476 +-109.52 202.147 129.964 +-112.332 202.632 130.276 +-114.387 201.723 129.692 +-117.308 202.312 130.07 +-119.715 201.97 129.851 +-122.714 202.583 130.245 +-124.764 201.599 129.612 +-128.119 202.681 130.308 +-130.169 201.659 129.651 +-135.31 205.331 132.011 +-138.519 205.941 132.403 +-142.05 206.956 133.056 +-143.329 204.673 131.588 +-143.232 200.513 128.914 +-143.165 196.513 126.342 +-145.039 195.241 125.525 +-143.137 188.99 121.505 +-143.403 185.745 119.42 +-144.056 183.072 117.701 +-144.272 179.916 115.672 +-143.584 175.731 112.981 +-143.853 172.809 111.103 +-150.634 177.637 114.206 +-155.234 179.722 115.547 +-158.818 180.537 116.071 +-159.722 178.289 114.626 +-161.017 176.509 113.482 +-162.288 174.725 112.334 +-176.794 186.956 120.198 +-587.471 610.229 392.329 +-592.316 604.4 388.581 +-594.193 595.647 382.954 +-598.791 589.728 379.148 +-600.491 581.058 373.574 +-605.436 575.619 370.078 +-607.035 567.09 364.594 +-612.017 561.807 361.197 +-614.412 554.217 356.318 +-619.45 549.075 353.012 +-621.233 541.12 347.897 +-625.562 535.459 344.257 +-627.699 527.992 339.457 +-632.083 522.48 335.913 +-634.242 515.19 331.226 +-639.49 510.457 328.183 +-641.178 502.933 323.346 +-646.371 498.207 320.308 +-647.651 490.517 315.363 +-653.014 485.967 312.438 +-655.163 479.058 307.996 +-659.5 473.794 304.612 +-661.939 467.205 300.376 +-666.761 462.328 297.24 +-668.035 455.034 292.551 +-678.678 454.093 291.946 +-694.159 456.188 293.293 +-701.721 452.919 291.191 +-703.678 446.03 286.762 +-709.484 441.598 283.913 +-710.802 434.396 279.282 +-716.584 429.943 276.419 +-718.642 423.268 272.128 +-115.46 66.7485 42.914 +-114.573 65.0048 41.7929 +-113.158 63.0006 40.5044 +-113.472 61.9844 39.851 +-111.581 59.7932 38.4423 +-110.585 58.125 37.3698 +-110.758 57.0913 36.7052 +-109.975 55.583 35.7354 +-109.858 54.432 34.9955 +-109.899 53.3712 34.3135 +-109.839 52.2726 33.6071 +-110.115 51.3419 33.0088 +-110.028 50.2508 32.3073 +-109.927 49.1648 31.6091 +-109.812 48.0842 30.9143 +-110.307 47.2762 30.3949 +-110.166 46.2021 29.7043 +-110.731 45.4285 29.2069 +-110.747 44.4329 28.5668 +-111.295 43.6538 28.0659 +-111.561 42.7655 27.4948 +-111.635 41.8081 26.8793 +-112.89 41.2889 26.5455 +-112.486 40.1628 25.8215 +-113.175 39.4322 25.3518 +-113.765 38.663 24.8572 +-115 38.1039 24.4978 +-115.671 37.3488 24.0123 +-116.99 36.7928 23.6549 +-117.556 35.9902 23.1388 +-120.847 35.9964 23.1428 +-124.998 36.2034 23.2759 +-159.508 44.8929 28.8626 +-160.729 43.9284 28.2424 +-161.369 42.7974 27.5153 +-162.381 41.7588 26.8476 +-162.041 40.3742 25.9574 +-163.607 39.4615 25.3706 +-856.475 199.792 128.45 +-860.64 193.977 124.712 +-868.622 188.958 121.485 +-872.393 182.961 117.629 +-381.752 77.0923 49.5642 +-381.174 74.0223 47.5905 +-382.903 71.4036 45.9068 +-381.184 68.153 43.817 +-904.177 154.736 99.4831 +-405.608 66.3185 42.6376 +-405.593 63.2314 40.6528 +-404.165 59.945 38.5399 +-404.969 57.0038 36.6489 +-405.051 53.9632 34.6941 +-405.595 50.9879 32.7812 +-405.119 47.8917 30.7906 +-403.915 44.7296 28.7576 +-403.669 41.6912 26.8041 +-405.576 38.8694 24.9899 +-405.069 35.8116 23.024 +-405.126 32.8128 21.096 +-404.854 29.7938 19.155 +-405.347 26.8341 17.2522 +-405.31 23.8401 15.3273 +-405.542 20.864 13.4139 +-404.445 17.8292 11.4628 +-404.415 14.8523 9.54888 +-404.054 11.8686 7.63057 +-147.649 3.25219 2.0909 +-146.378 2.14917 1.38175 +-146.594 1.0761 0.691845 +120.5 5.77316e-15 2.84217e-14 +120.495 0.88961 0.560671 +121.082 1.78801 1.12688 +120.859 2.67741 1.68742 +120.726 3.56661 2.24783 +120.685 4.45775 2.80947 +120.435 5.33971 3.36531 +120.874 6.25445 3.94183 +120.905 7.15248 4.5078 +120.727 8.03817 5.066 +120.639 8.92918 5.62755 +120.443 9.8113 6.18351 +120.437 10.709 6.74927 +121.116 11.6744 7.35769 +120.892 12.5578 7.91444 +121.254 13.505 8.51144 +120.912 14.3761 9.06041 +121.55 15.3682 9.68573 +120.992 16.212 10.2175 +120.623 17.0767 10.7625 +121.131 18.0694 11.3881 +120.94 18.9631 11.9513 +120.74 19.8552 12.5136 +121.217 20.8639 13.1493 +121.095 21.7756 13.7239 +120.768 22.6504 14.2753 +121.407 23.7124 14.9446 +121.06 24.588 15.4964 +120.705 25.4604 16.0463 +120.922 26.4565 16.674 +120.644 27.3482 17.236 +121.321 28.4639 17.9392 +120.542 29.2419 18.4295 +120.524 30.2027 19.0351 +121.164 31.3388 19.751 +120.741 32.2067 20.298 +121.165 33.306 20.9909 +120.911 34.226 21.5707 +121.215 35.3101 22.254 +120.847 36.2037 22.8171 +120.938 37.2392 23.4697 +121.112 38.3083 24.1436 +120.525 39.1404 24.668 +120.675 40.2147 25.3451 +120.348 41.1358 25.9255 +120.936 42.3789 26.709 +120.678 43.3362 27.3123 +120.227 44.2254 27.8728 +120.497 45.3866 28.6046 +120.752 46.5551 29.3411 +120.267 47.4448 29.9018 +120.405 48.5859 30.6209 +120.708 49.8067 31.3903 +119.921 50.5827 31.8794 +120.286 51.8502 32.6782 +119.569 52.6581 33.1874 +120.611 54.2537 34.193 +119.871 55.0614 34.7021 +120.26 56.3954 35.5428 +120.196 57.531 36.2585 +119.252 58.247 36.7098 +119.853 59.7263 37.6421 +120.089 61.0446 38.4729 +120.137 62.2824 39.2531 +119.575 63.2118 39.8388 +118.328 63.774 40.1931 +119.091 65.4284 41.2358 +118.662 66.4452 41.8767 +121.205 69.1638 43.59 +119.581 69.5288 43.8201 +117.303 69.487 43.7937 +116.337 70.2031 44.245 +113.101 69.5177 43.8131 +111.495 69.7965 43.9888 +108.854 69.3951 43.7358 +107.42 69.7325 43.9485 +103.781 68.5958 43.232 +103.069 69.3594 43.7133 +100.174 68.6269 43.2516 +99.5396 69.4177 43.75 +96.2918 68.3553 43.0805 +95.0507 68.679 43.2845 +94.7161 69.6556 43.9 +95.3421 71.3613 44.9749 +94.528 72.0058 45.3812 +94.9613 73.6154 46.3956 +96.0999 75.8138 47.7812 +95.6043 76.7533 48.3733 +95.8161 78.279 49.3348 +95.7182 79.5763 50.1524 +95.4594 80.7585 50.8975 +95.8844 82.5464 52.0243 +95.585 83.738 52.7753 +95.3371 84.9924 53.5659 +95.8208 86.9306 54.7874 +95.3933 88.0719 55.5067 +95.0165 89.2757 56.2654 +95.1522 90.9872 57.344 +94.8005 92.2612 58.147 +95.0792 94.1791 59.3557 +94.9397 95.7205 60.3272 +95.2209 97.723 61.5893 +94.5239 98.7509 62.2371 +94.8712 100.901 63.5924 +94.2578 102.065 64.3256 +94.6015 104.301 65.7348 +94.485 106.076 66.8539 +93.8036 107.246 67.5908 +94.2808 109.782 69.1893 +94.19 111.714 70.4071 +93.9518 113.514 71.5412 +94.0234 115.737 72.9424 +93.8326 117.689 74.173 +93.3877 119.364 75.2287 +93.8958 122.32 77.0916 +93.7051 124.435 78.4246 +93.4248 126.486 79.717 +93.1615 128.614 81.058 +93.4279 131.544 82.9049 +93.4886 134.27 84.6228 +93.6 137.153 86.4399 +93.4127 139.679 88.032 +93.4228 142.584 89.8625 +93.38 145.499 91.6998 +93.1432 148.2 93.4017 +93.2732 151.583 95.5339 +93.4766 155.205 97.817 +93.0769 157.934 99.5366 +92.9785 161.276 101.643 +92.8612 164.706 103.805 +92.976 168.682 106.311 +91.6887 170.208 107.273 +90.7429 172.425 108.669 +89.5989 174.329 109.87 +91.7046 182.771 115.19 +90.696 185.239 116.746 +88.7068 185.745 117.064 +90.3426 194.028 122.285 +92.1364 203.06 127.977 +90.4936 204.762 129.05 +88.5832 205.899 129.767 +85.6882 204.711 129.018 +83.8338 205.976 129.815 +81.1665 205.223 129.341 +79.0774 205.895 129.764 +76.4695 205.18 129.313 +74.3501 205.737 129.664 +71.9411 205.467 129.494 +69.8465 206.072 129.875 +67.2105 205.03 129.219 +65.1189 205.601 129.578 +62.595 204.763 129.05 +60.674 205.874 129.751 +58.0812 204.669 128.991 +56.1928 205.914 129.776 +53.677 204.834 129.095 +51.5621 205.223 129.341 +49.1243 204.269 128.739 +47.2252 205.538 129.539 +44.9211 205.046 129.229 +42.8216 205.454 129.486 +40.4037 204.26 128.734 +38.4672 205.47 129.496 +36.1837 204.826 129.09 +34.0974 205.253 129.359 +31.8614 204.742 129.037 +29.7239 204.801 129.074 +27.5197 204.34 128.784 +25.4109 204.535 128.907 +23.1947 203.789 128.437 +21.1527 204.542 128.911 +18.9165 203.342 128.155 +16.902 204.486 128.876 +14.7493 204.012 128.577 +12.6915 204.874 129.12 +10.4992 203.438 128.216 +8.46313 205.029 129.218 +6.31126 203.9 128.507 +4.21476 204.277 128.744 +2.10135 203.709 128.386 +1.4988e-14 204.478 128.871 +-2.10222 203.793 128.439 +-4.22174 204.616 128.958 +-6.30864 203.815 128.453 +-8.44219 204.523 128.899 +-10.5123 203.692 128.375 +-12.6653 204.451 128.854 +-14.731 203.759 128.418 +-16.8671 204.064 128.61 +-18.9557 203.763 128.42 +-21.1353 204.374 128.805 +-23.1947 203.789 128.437 +-25.3795 204.283 128.748 +-27.3952 203.415 128.201 +-29.6021 203.961 128.545 +-31.5612 202.812 127.821 +-33.9165 204.163 128.672 +-35.8881 203.152 128.035 +-38.0761 203.381 128.179 +-40.0405 202.425 127.577 +-42.2833 202.871 127.858 +-44.4108 202.717 127.761 +-46.71 203.295 128.125 +-48.6657 202.363 127.538 +-51.1255 203.485 128.245 +-52.9844 202.191 127.43 +-55.4729 203.277 128.114 +-57.4509 202.447 127.591 +-59.8757 203.165 128.043 +-61.7938 202.142 127.399 +-64.3424 203.149 128.033 +-66.4355 202.667 127.729 +-68.8542 203.144 128.03 +-70.9186 202.546 127.654 +-73.473 203.31 128.134 +-75.6275 202.921 127.89 +-78.3049 203.884 128.497 +-80.1194 202.576 127.672 +-82.6943 203.177 128.051 +-84.8203 202.638 127.711 +-87.4546 203.276 128.113 +-89.583 202.702 127.752 +-92.3514 203.534 128.276 +-94.1542 202.214 127.444 +-97.098 203.315 128.138 +-99.0385 202.278 127.485 +-102.02 203.331 128.148 +-103.914 202.182 127.424 +-106.606 202.566 127.666 +-108.774 201.926 127.262 +-111.867 202.955 127.911 +-113.569 201.434 126.952 +-116.914 202.793 127.809 +-118.956 201.847 127.213 +-121.896 202.393 127.556 +-124.026 201.56 127.032 +-126.804 201.757 127.156 +-129.262 201.409 126.936 +-132.886 202.814 127.822 +-137.288 205.286 129.38 +-141.05 206.683 130.26 +-142.872 205.196 129.323 +-143.129 201.523 127.008 +-143.269 197.789 124.655 +-144.509 195.648 123.306 +-143.513 190.578 120.111 +-143.295 186.673 117.649 +-143.448 183.351 115.556 +-143.433 179.9 113.381 +-144.773 178.207 112.314 +-148.327 179.21 112.946 +-158.183 187.613 118.242 +-158.232 184.248 116.121 +-159.472 182.325 114.909 +-160.324 179.991 113.438 +-163.148 179.875 113.365 +-164.566 178.197 112.307 +-588.712 626.135 394.617 +-590.24 616.636 388.63 +-595.687 611.341 385.293 +-597.085 601.995 379.403 +-602.103 596.405 375.88 +-603.706 587.533 370.288 +-608.882 582.229 366.946 +-610.582 573.689 361.563 +-615.8 568.535 358.315 +-617.209 559.945 352.902 +-622.686 555.122 349.862 +-624.498 547.096 344.803 +-629.276 541.74 341.428 +-631.093 533.904 336.489 +-635.934 528.691 333.204 +-637.839 521.096 328.417 +-643.189 516.367 325.437 +-644.176 508.195 320.286 +-649.763 503.706 317.457 +-651.143 496.002 312.602 +-656.609 491.457 309.737 +-658.031 483.926 304.991 +-662.998 479.05 301.918 +-664.773 471.907 297.416 +-669.924 467.197 294.448 +-672.231 460.53 290.246 +-697.617 469.453 295.87 +-699.675 462.462 291.463 +-706.243 458.463 288.943 +-707.272 450.889 284.17 +-713.101 446.406 281.344 +-714.2 438.986 276.668 +-722.69 436.104 274.852 +-725.769 429.927 270.959 +-114.554 66.6059 41.9779 +-114.656 65.4265 41.2346 +-112.575 63.0366 39.7284 +-111.963 61.512 38.7675 +-110.99 59.8194 37.7008 +-110.585 58.4598 36.8439 +-109.905 56.9781 35.9101 +-109.289 55.5545 35.0129 +-109.427 54.5309 34.3677 +-109.899 53.6786 33.8306 +-110.1 52.6986 33.2129 +-109.677 51.4326 32.415 +-110.204 50.6209 31.9035 +-110.192 49.5671 31.2394 +-110.344 48.5954 30.6269 +-110.128 47.4717 29.9187 +-110.614 46.6568 29.4051 +-111.001 45.8014 28.866 +-110.657 44.6524 28.1419 +-111.295 43.9052 27.671 +-111.743 43.0819 27.1521 +-112.549 42.393 26.7179 +-112.615 41.4255 26.1081 +-113.406 40.7248 25.6665 +-113.545 39.7888 25.0766 +-114.229 39.0441 24.6073 +-115.372 38.4474 24.2312 +-116.137 37.7155 23.7699 +-118.114 37.3603 23.5461 +-118.871 36.6026 23.0685 +-124.052 37.1639 23.4223 +-158.847 46.2722 29.1628 +-162.448 45.9837 28.9809 +-161.585 44.4166 27.9933 +-162.037 43.222 27.2404 +-162.763 42.0983 26.5322 +-162.999 40.847 25.7436 +-168.798 40.9479 25.8072 +-859.462 201.644 127.085 +-864.89 196.058 123.564 +-872.301 190.851 120.282 +-384.431 81.0886 51.1055 +-381.752 77.5363 48.8667 +-382.148 74.6389 47.0407 +-381.146 71.4852 45.0531 +-381.771 68.651 43.2668 +-3210.53 552.597 348.271 +-405.019 66.6036 41.9765 +-404.216 63.3797 39.9446 +-402.885 60.0993 37.8772 +-404.969 57.3321 36.1331 +-404.755 54.2343 34.1808 +-404.409 51.1316 32.2253 +-403.93 48.0262 30.2682 +-405.699 45.1859 28.4781 +-404.264 41.9932 26.4659 +-403.092 38.8538 24.4873 +-405.566 36.0621 22.7279 +-406.321 33.099 20.8604 +-405.451 30.0096 18.9133 +-404.748 26.9488 16.9843 +-405.31 23.9774 15.1116 +-404.943 20.9532 13.2056 +-404.445 17.9319 11.3014 +-404.914 14.9563 9.42612 +-3274.5 96.7383 60.9686 +-148.149 3.28198 2.06845 +-146.878 2.16894 1.36696 +-147.094 1.08598 0.684434 +120.4 4.44089e-15 5.68434e-14 +119.495 0.887205 0.548034 +119.982 1.78177 1.10061 +120.159 2.67694 1.65357 +120.626 3.58378 2.21373 +120.685 4.48292 2.76914 +120.535 5.3743 3.31975 +120.974 6.29495 3.88845 +120.905 7.19286 4.44309 +120.727 8.08355 4.99328 +121.436 9.03888 5.5834 +121.339 9.94011 6.14009 +121.232 10.8406 6.69632 +121.116 11.7403 7.25207 +121.785 12.722 7.85848 +121.254 13.5813 8.38926 +121.011 14.4691 8.93771 +121.55 15.455 9.54669 +121.189 16.3302 10.0873 +120.721 17.1872 10.6167 +121.23 18.1862 11.2338 +120.94 19.0701 11.7798 +120.74 19.9673 12.334 +121.021 20.9477 12.9396 +121.095 21.8985 13.5269 +120.768 22.7783 14.0704 +120.335 23.6358 14.6 +121.06 24.7268 15.274 +120.802 25.6247 15.8286 +121.018 26.6271 16.4478 +120.644 27.5026 16.9886 +121.032 28.5563 17.6395 +120.734 29.4539 18.1939 +121.482 30.6149 18.9111 +121.068 31.4908 19.4522 +120.836 32.414 20.0224 +121.165 33.494 20.6895 +120.816 34.3922 21.2444 +121.215 35.5095 21.9345 +121.035 36.4649 22.5247 +120.844 37.4203 23.1149 +120.924 38.465 23.7602 +120.525 39.3613 24.3139 +120.768 40.473 25.0005 +120.256 41.3362 25.5337 +120.751 42.5529 26.2853 +120.494 43.5143 26.8792 +120.96 44.7465 27.6403 +120.588 45.6774 28.2153 +120.934 46.8885 28.9634 +120.267 47.7126 29.4725 +120.585 48.9334 30.2266 +119.899 49.7522 30.7324 +119.921 50.8682 31.4218 +120.197 52.1042 32.1853 +120.367 53.3089 32.9294 +120.434 54.4801 33.6529 +119.871 55.3722 34.2039 +120.26 56.7137 35.0326 +119.761 57.6463 35.6087 +119.252 58.5758 36.1828 +119.68 59.9771 37.0484 +119.489 61.0825 37.7312 +119.455 62.2784 38.4699 +119.66 63.6138 39.2948 +118.75 64.3626 39.7574 +120.181 66.4002 41.016 +119.746 67.4309 41.6526 +119.796 68.7455 42.4647 +120.405 70.4033 43.4887 +118.777 70.7577 43.7077 +117.965 71.5875 44.2202 +114.961 71.0603 43.8946 +113.987 71.7593 44.3264 +110.771 71.0156 43.867 +109.562 71.5246 44.1814 +105.909 70.3972 43.485 +105.183 71.1809 43.9691 +103.05 70.9953 43.8545 +101.623 71.2707 44.0245 +98.8197 70.5459 43.5768 +98.0924 71.2769 44.0284 +95.0934 70.3279 43.4422 +94.5931 71.2004 43.9811 +95.1969 72.9246 45.0462 +95.1088 74.1459 45.8006 +95.5148 75.7776 46.8085 +95.6043 77.1866 47.6789 +95.0967 78.1298 48.2615 +95.1476 79.5485 49.1378 +95.4594 81.2144 50.1669 +95.7442 82.891 51.2025 +95.585 84.2107 52.0177 +95.3371 85.4722 52.7969 +95.207 86.8615 53.6551 +96.0014 89.1331 55.0583 +95.0165 89.7797 55.4577 +95.1522 91.5008 56.5209 +95.391 93.3597 57.6691 +95.1441 94.7754 58.5436 +95.0683 96.391 59.5416 +95.1573 98.2091 60.6647 +94.6498 99.4411 61.4256 +94.9957 101.605 62.7621 +94.8734 103.311 63.8163 +93.9928 104.215 64.3744 +93.9433 106.063 65.5164 +93.863 107.92 66.6631 +94.222 110.333 68.1535 +94.1319 112.275 69.3533 +94.0092 114.224 70.5573 +93.9668 116.32 71.8522 +93.6089 118.071 72.9337 +93.4981 120.18 74.2365 +93.8413 122.939 75.9408 +93.7051 125.138 77.2988 +93.3718 127.128 78.528 +93.684 130.065 80.3421 +93.3249 132.141 81.625 +93.5901 135.174 83.4985 +93.6 137.928 85.1991 +93.5112 140.617 86.8603 +93.4228 143.389 88.5725 +93.3323 146.246 90.3372 +93.1432 149.036 92.0609 +93.2732 152.438 94.1625 +93.3858 155.93 96.3193 +93.1215 158.902 98.155 +92.6278 161.575 99.8062 +92.8182 165.558 102.267 +92.9338 169.557 104.737 +92.7669 173.182 106.976 +90.7023 173.321 107.062 +91.4332 178.903 110.51 +91.0794 182.551 112.763 +89.8923 184.634 114.05 +88.4821 186.32 115.092 +92.0285 198.765 122.779 +92.4589 204.921 126.582 +90.1434 205.121 126.705 +88.0018 205.703 127.064 +85.1875 204.664 126.423 +83.1501 205.449 126.908 +80.5954 204.929 126.587 +78.583 205.763 127.102 +75.9282 204.878 126.555 +73.7946 205.352 126.848 +71.1742 204.424 126.275 +69.3228 205.681 127.051 +66.7561 204.794 126.503 +64.653 205.282 126.804 +62.1193 204.353 126.231 +60.2386 205.551 126.97 +57.661 204.335 126.219 +55.5854 204.838 126.531 +53.1359 203.914 125.96 +51.1879 204.883 126.558 +48.7853 204.006 126.016 +46.8818 205.195 126.751 +44.4108 203.862 125.927 +42.4917 205.021 126.644 +40.0736 203.735 125.849 +38.1544 204.949 126.599 +35.7994 203.795 125.886 +33.8191 204.726 126.461 +31.6004 204.211 126.143 +29.6021 205.112 126.7 +27.3046 203.888 125.944 +25.2018 203.998 126.011 +23.0413 203.584 125.756 +20.9958 204.171 126.119 +18.7674 202.878 125.32 +16.7904 204.283 126.187 +14.6089 203.211 125.525 +12.5973 204.501 126.322 +10.4207 203.057 125.43 +8.3689 203.891 125.946 +6.27461 203.861 125.927 +4.18509 203.984 126.003 +2.08651 203.413 125.65 +1.37668e-14 204.271 126.18 +-2.07953 202.732 125.229 +-4.19207 204.325 126.213 +-6.23535 202.585 125.138 +-8.38635 204.317 126.208 +-10.4338 203.311 125.587 +-12.5711 204.076 126.06 +-14.6333 203.55 125.735 +-16.7555 203.858 125.925 +-18.7674 202.878 125.32 +-20.9261 203.493 125.7 +-22.9551 202.822 125.285 +-25.1182 203.321 125.594 +-27.2141 203.212 125.526 +-29.4071 203.761 125.865 +-31.3785 202.776 125.257 +-33.6799 203.884 125.941 +-35.5038 202.112 124.846 +-37.8415 203.269 125.561 +-39.793 202.308 124.968 +-41.9881 202.592 125.143 +-43.9734 201.854 124.687 +-46.3475 202.856 125.306 +-48.3069 202.004 124.78 +-50.7305 203.053 125.427 +-52.6381 202.004 124.779 +-55.1355 203.18 125.506 +-57.0074 202.019 124.789 +-59.4886 202.991 125.39 +-61.3681 201.883 124.705 +-63.8765 202.816 125.281 +-66.0079 202.499 125.085 +-68.3305 202.737 125.232 +-70.3506 202.059 124.814 +-72.9467 202.993 125.391 +-74.8156 201.876 124.701 +-77.4397 202.769 125.252 +-79.4848 202.106 124.843 +-82.1408 202.956 125.368 +-83.8857 201.537 124.491 +-86.9415 203.224 125.534 +-88.9527 202.412 125.032 +-91.5988 203.014 125.404 +-93.4578 201.851 124.685 +-96.4987 203.202 125.519 +-98.2348 201.77 124.635 +-101.278 202.991 125.389 +-103.037 201.606 124.534 +-105.955 202.466 125.065 +-107.945 201.517 124.479 +-110.726 202.019 124.789 +-112.837 201.266 124.324 +-115.73 201.873 124.699 +-118.198 201.691 124.587 +-120.671 201.489 124.462 +-123.102 201.189 124.276 +-125.959 201.544 124.496 +-128.308 201.05 124.19 +-131.577 201.95 124.746 +-136.352 205.037 126.654 +-139.65 205.786 127.116 +-142.365 205.621 127.014 +-143.387 203.025 125.41 +-143.321 198.978 122.911 +-143.184 194.949 120.422 +-143.566 191.725 118.431 +-144.111 188.797 116.622 +-143.283 184.173 113.765 +-143.88 181.48 112.102 +-150.721 186.575 115.249 +-155.095 188.446 116.405 +-158.532 189.088 116.801 +-158.996 186.183 115.007 +-161.494 185.679 114.696 +-162.55 183.521 113.363 +-586.116 649.856 401.422 +-587.464 639.714 395.157 +-593.132 634.396 391.872 +-594.078 624.15 385.543 +-599.313 618.534 382.074 +-601.392 609.759 376.654 +-606.13 603.784 372.963 +-607.642 594.702 367.352 +-613.122 589.594 364.198 +-614.262 580.404 358.521 +-619.584 575.257 355.341 +-621.028 566.591 349.988 +-626.403 561.589 346.898 +-628.18 553.428 341.857 +-633.201 548.197 338.626 +-634.345 539.685 333.368 +-639.643 534.776 330.336 +-641.363 526.933 325.491 +-646.744 522.152 322.538 +-647.833 513.965 317.481 +-654.039 509.883 314.959 +-655.231 501.933 310.049 +-660.354 497.05 307.032 +-662.409 489.895 302.613 +-666.8 484.517 299.29 +-668.68 477.36 294.87 +-681.653 478.06 295.302 +-696.556 479.888 296.431 +-703.017 475.757 293.88 +-703.851 467.849 288.994 +-709.417 463.122 286.075 +-711.345 456.047 281.704 +-717.603 451.76 279.056 +-719.216 444.565 274.612 +-115.279 69.9571 43.2131 +-114.845 68.4154 42.2608 +-113.153 66.1627 40.8693 +-112.583 64.6064 39.908 +-111.157 62.5942 38.665 +-111.375 61.5349 38.0107 +-110.147 59.6999 36.8772 +-110.161 58.5643 36.1757 +-110.161 57.4331 35.4769 +-110.146 56.3063 34.7809 +-109.772 55.0114 33.981 +-109.985 54.0242 33.3712 +-109.926 52.9123 32.6844 +-109.852 51.8054 32.0007 +-110.116 50.8661 31.4204 +-109.927 49.7271 30.7169 +-110.433 48.9091 30.2116 +-110.307 47.8169 29.5369 +-110.524 46.8823 28.9596 +-111.091 46.0973 28.4747 +-111.018 45.051 27.8284 +-111.204 44.1172 27.2516 +-111.925 43.3957 26.8059 +-113.28 42.9091 26.5053 +-113.349 41.9308 25.901 +-113.959 41.1541 25.4212 +-114.284 40.2739 24.8775 +-114.971 39.5195 24.4115 +-116.395 39.0074 24.0952 +-117.351 38.3248 23.6735 +-119.332 37.9585 23.4473 +-121.22 37.5367 23.1867 +-160.438 48.3358 29.8575 +-160.171 46.9212 28.9837 +-162.069 46.1353 28.4982 +-161.585 44.6674 27.5914 +-161.655 43.3636 26.7861 +-162.476 42.2614 26.1052 +-165.013 41.585 25.6874 +-3149.57 768.357 474.621 +-863.22 203.669 125.808 +-867.595 197.78 122.171 +-875.205 192.568 118.951 +-381.714 80.97 50.0159 +-382.725 78.1726 48.2879 +-381.271 74.888 46.259 +-381.146 71.8887 44.4063 +-386.662 69.923 43.1921 +-405.591 70.2045 43.366 +-406.59 67.2393 41.5343 +-403.823 63.6754 39.3329 +-404.461 60.6749 37.4795 +-404.673 57.6136 35.5884 +-404.458 54.5005 33.6655 +-404.409 51.4202 31.7627 +-404.624 48.3802 29.8849 +-404.41 45.2966 27.9801 +-405.654 42.3754 26.1756 +-404.682 39.2273 24.231 +-405.665 36.2746 22.4072 +-404.131 33.1065 20.4502 +-404.754 30.1271 18.6098 +-405.546 27.1543 16.7735 +-405.31 24.1127 14.8947 +-404.843 21.0663 13.0128 +-405.344 18.0732 11.164 +-403.915 15.0037 9.2679 +-148.21 4.40327 2.71994 +-147.25 3.28047 2.02637 +-146.578 2.17672 1.34458 +-145.894 1.08321 0.669106 +119.5 2.66454e-15 -1.13687e-13 +119.495 0.892113 0.540008 +120.182 1.79461 1.0863 +119.959 2.68726 1.62664 +120.626 3.6036 2.18131 +120.585 4.50399 2.72633 +120.535 5.40403 3.27113 +120.974 6.32977 3.8315 +121.104 7.24459 4.38525 +120.727 8.12827 4.92015 +120.54 9.02173 5.46098 +120.443 9.92127 6.00548 +121.232 10.9005 6.59825 +121.116 11.8052 7.14586 +120.892 12.6985 7.68658 +121.254 13.6564 8.2664 +121.011 14.5492 8.80681 +120.759 15.4393 9.34562 +121.189 16.4205 9.93957 +120.721 17.2823 10.4612 +121.23 18.2868 11.0693 +120.842 19.1599 11.5978 +120.642 20.0614 12.1434 +121.119 21.0807 12.7604 +120.997 22.0019 13.318 +120.768 22.9043 13.8643 +121.212 23.9397 14.491 +120.671 24.7838 15.002 +120.705 25.7458 15.5843 +120.922 26.753 16.194 +120.548 27.6325 16.7264 +121.032 28.7143 17.3812 +120.734 29.6168 17.9275 +121.578 30.8085 18.6488 +121.068 31.665 19.1673 +120.836 32.5933 19.7292 +121.355 33.7321 20.4185 +121.48 34.7725 21.0483 +121.215 35.7059 21.6133 +120.658 36.5524 22.1257 +120.844 37.6273 22.7763 +121.018 38.7078 23.4303 +120.525 39.5791 23.9578 +119.931 40.4146 24.4635 +121.183 41.8853 25.3537 +120.751 42.7883 25.9004 +120.494 43.755 26.4855 +120.96 44.994 27.2355 +120.497 45.8954 27.7811 +120.934 47.1479 28.5393 +120.448 48.0489 29.0847 +120.585 49.2041 29.7839 +120.708 50.3649 30.4866 +119.921 51.1496 30.9616 +120.286 52.4313 31.7374 +120.367 53.6038 32.4471 +119.728 54.4602 32.9655 +119.871 55.6785 33.703 +120.085 56.9446 34.4693 +119.413 57.7967 34.9852 +119.598 59.071 35.7565 +119.68 60.3089 36.5058 +120.003 61.6847 37.3386 +120.222 63.0252 38.1501 +118.388 63.2857 38.3077 +118.75 64.7187 39.1751 +117.078 65.0436 39.3718 +116.577 66.0096 39.9565 +117.723 67.9298 41.1188 +119.993 70.5504 42.7051 +120.17 71.9833 43.5725 +119.105 72.6789 43.9936 +117.55 73.0625 44.2258 +116.72 73.8864 44.7245 +113.007 72.85 44.0971 +111.545 73.2222 44.3224 +108.824 72.7354 44.0277 +107.374 73.0658 44.2277 +105.148 72.8416 44.092 +104.401 73.6239 44.5656 +100.888 72.4208 43.8373 +99.3851 72.6157 43.9553 +97.2821 72.3446 43.7912 +95.7165 72.4445 43.8517 +95.0482 73.2136 44.3172 +95.035 74.4984 45.0949 +94.9297 75.7301 45.8405 +94.6614 76.8481 46.5172 +95.7441 79.0969 47.8785 +95.6469 80.4083 48.6722 +95.9544 82.0872 49.6885 +95.8844 83.4716 50.5265 +94.8903 84.0611 50.8833 +95.3371 85.945 52.0237 +95.0024 87.1547 52.7559 +95.2582 88.9324 53.832 +95.0165 90.2763 54.6455 +95.2185 92.0711 55.7319 +94.8005 93.2953 56.4729 +95.5338 95.6907 57.9229 +94.5541 96.3999 58.3522 +95.1573 98.7524 59.7762 +94.5239 99.8577 60.4453 +94.7467 101.899 61.6808 +94.6272 103.613 62.7185 +93.9928 104.791 63.4316 +93.9433 106.65 64.5569 +94.3389 109.067 66.0197 +94.3983 111.151 67.2812 +94.19 112.966 68.38 +94.1813 115.066 69.6513 +94.0234 117.034 70.8423 +93.7766 118.938 71.9945 +93.6085 120.988 73.2358 +93.8413 123.62 74.8286 +93.7588 125.903 76.2107 +93.3188 127.758 77.3339 +93.7885 130.93 79.254 +93.3249 132.872 80.4295 +93.5901 135.922 82.2756 +93.6 138.691 83.9513 +93.5112 141.395 85.5882 +93.4228 144.182 87.2753 +93.2845 146.979 88.9686 +93.1432 149.861 90.7127 +93.2732 153.282 92.7835 +93.0227 156.183 94.5395 +93.1215 159.781 96.7175 +92.6278 162.469 98.3445 +92.8182 166.474 100.769 +92.976 170.573 103.25 +92.6425 173.906 105.268 +92.1258 177.014 107.149 +91.8319 180.677 109.366 +90.7278 182.851 110.682 +89.1652 184.154 111.471 +87.6954 185.686 112.398 +92.3217 200.501 121.366 +91.9214 204.856 124.002 +89.513 204.813 123.976 +87.3177 205.233 124.231 +84.7536 204.748 123.937 +82.5641 205.131 124.168 +80.1512 204.928 124.046 +77.9959 205.356 124.305 +75.3869 204.543 123.813 +73.2099 204.853 124 +70.7766 204.407 123.73 +68.6061 204.681 123.896 +66.3018 204.526 123.802 +64.1871 204.93 124.047 +61.7437 204.242 123.63 +59.7789 205.11 124.156 +57.2641 204.051 123.515 +55.1805 204.471 123.769 +52.9628 204.374 123.711 +50.876 204.762 123.945 +48.5262 204.044 123.511 +46.5002 204.651 123.878 +44.2468 204.232 123.625 +42.1444 204.471 123.769 +39.826 203.597 123.24 +37.8884 204.646 123.875 +35.5334 203.398 123.12 +33.5825 204.419 123.738 +31.3915 203.983 123.473 +29.2852 204.04 123.508 +27.0895 203.401 123.121 +25.1286 204.531 123.805 +22.9646 204.03 123.502 +20.8564 203.937 123.446 +18.7125 203.403 123.123 +16.6927 204.218 123.616 +14.5479 203.481 123.17 +12.5135 204.265 123.644 +10.3901 203.581 123.231 +8.31306 203.651 123.273 +6.22226 203.279 123.047 +4.15367 203.574 123.226 +2.07342 203.255 123.033 +1.58762e-14 203.861 123.4 +-2.07517 203.426 123.136 +-4.15716 203.745 123.33 +-6.21964 203.193 122.996 +-8.31655 203.737 123.325 +-10.3683 203.154 122.972 +-12.4717 203.581 123.231 +-14.5051 202.883 122.808 +-16.616 203.279 123.048 +-18.6419 202.636 122.658 +-20.7866 203.255 123.033 +-22.8592 203.093 122.935 +-25.0241 203.681 123.291 +-27.0216 202.891 122.813 +-29.1633 203.19 122.994 +-31.1435 202.372 122.498 +-33.3041 202.724 122.712 +-35.3856 202.552 122.608 +-37.5599 202.872 122.801 +-39.4959 201.909 122.218 +-41.6929 202.28 122.443 +-43.7547 201.962 122.25 +-46.0422 202.635 122.658 +-48.0676 202.116 122.344 +-50.3562 202.669 122.679 +-52.4 202.202 122.396 +-54.6631 202.554 122.609 +-56.5638 201.556 122.004 +-59.1015 202.786 122.749 +-61.1178 202.172 122.377 +-63.4365 202.533 122.596 +-65.5001 202.053 122.305 +-67.8344 202.379 122.503 +-69.8962 201.864 122.191 +-72.4789 202.807 122.762 +-74.3044 201.605 122.034 +-76.9143 202.508 122.581 +-78.9454 201.845 122.179 +-81.6199 202.785 122.749 +-83.652 202.087 122.326 +-86.3259 202.901 122.819 +-88.4274 202.33 122.473 +-91.0613 202.94 122.842 +-93.018 202.013 122.281 +-95.7494 202.739 122.721 +-97.7756 201.937 122.235 +-100.418 202.381 122.504 +-102.518 201.702 122.093 +-105.223 202.179 122.382 +-107.281 201.386 121.902 +-110.388 202.516 122.586 +-112.062 200.989 121.662 +-114.897 201.529 121.988 +-117.35 201.353 121.882 +-119.808 201.155 121.762 +-122.317 201.011 121.675 +-125.114 201.3 121.85 +-127.64 201.11 121.735 +-130.414 201.272 121.832 +-133.595 202.003 122.275 +-138.85 205.739 124.537 +-141.502 205.505 124.395 +-143.799 204.735 123.929 +-143.269 200.006 121.067 +-143.502 196.462 118.921 +-143.459 192.642 116.609 +-143.131 188.551 114.132 +-144.773 187.118 113.265 +-148.633 188.512 114.109 +-157.687 196.279 118.81 +-158.479 193.623 117.202 +-159.693 191.527 115.934 +-160.289 188.735 114.244 +-163.219 188.7 114.223 +-163.694 185.835 112.489 +-589.464 657.184 397.802 +-591.22 647.365 391.859 +-596.307 641.32 388.2 +-597.917 631.658 382.351 +-602.621 625.388 378.556 +-603.963 615.754 372.724 +-608.987 609.986 369.233 +-611.709 601.994 364.395 +-616.038 595.675 360.57 +-618.076 587.239 355.464 +-623.097 581.719 352.123 +-624.438 572.853 346.756 +-630.051 567.984 343.808 +-631.444 559.382 338.602 +-636.496 554.098 335.403 +-638.305 546.058 330.536 +-642.995 540.553 327.204 +-645.32 533.117 322.703 +-650.733 528.279 319.775 +-652.514 520.542 315.091 +-656.693 514.784 311.606 +-659.021 507.63 307.275 +-663.725 502.35 304.08 +-665.427 494.85 299.54 +-670.222 489.698 296.421 +-672.664 482.861 292.282 +-699.246 493.111 298.487 +-700.986 485.611 293.947 +-705.913 480.359 290.768 +-708.973 473.86 286.834 +-714.097 468.757 283.745 +-715.657 461.349 279.261 +-721.863 456.956 276.602 +-727.549 452.203 273.725 +-114.139 69.6486 42.1593 +-113.698 68.1069 41.226 +-112.74 66.2864 40.1241 +-111.506 64.3419 38.9471 +-110.573 62.6099 37.8986 +-110.705 61.5026 37.2284 +-110.4 60.1681 36.4206 +-110.246 58.9336 35.6734 +-109.65 57.4826 34.795 +-109.803 56.4415 34.1648 +-110.116 55.4894 33.5885 +-110.245 54.4514 32.9602 +-110.187 53.3314 32.2822 +-109.94 52.1335 31.5571 +-110.116 51.1475 30.9603 +-110.015 50.0424 30.2913 +-110.61 49.2587 29.817 +-110.574 48.198 29.1749 +-110.614 47.1798 28.5586 +-111.72 46.6147 28.2165 +-111.289 45.4106 27.4877 +-111.929 44.6505 27.0275 +-112.835 43.9905 26.6281 +-113.462 43.2161 26.1593 +-113.165 42.0944 25.4804 +-113.406 41.1812 24.9276 +-114.838 40.6932 24.6321 +-115.527 39.9304 24.1704 +-117.884 39.7249 24.046 +-118.191 38.8127 23.4938 +-120.831 38.6479 23.3941 +-125.073 38.944 23.5733 +-160.061 48.489 29.3511 +-160.738 47.348 28.6604 +-161.12 46.1191 27.9165 +-162.44 45.1524 27.3314 +-162.132 43.7322 26.4717 +-164.771 43.0954 26.0862 +-167.793 42.5197 25.7378 +-856.869 210.194 127.233 +-866.4 205.55 124.422 +-871.265 199.716 120.891 +-382.031 84.5214 51.162 +-381.811 81.4386 49.2959 +-382.628 78.5852 47.5687 +-382.148 75.4755 45.6864 +-380.463 72.1568 43.6775 +-904.493 164.471 99.5568 +-406.767 70.7975 42.8547 +-405.019 67.3501 40.768 +-404.511 64.1369 38.8229 +-404.461 61.0106 36.9306 +-405.265 58.0171 35.1185 +-406.335 55.0563 33.3263 +-403.42 51.5782 31.221 +-404.921 48.6836 29.4689 +-405.402 45.6589 27.638 +-404.562 42.4951 25.7229 +-405.576 39.5314 23.9289 +-405.069 36.4216 22.0465 +-405.425 33.3963 20.2152 +-405.352 30.3385 18.3643 +-404.35 27.224 16.479 +-405.809 24.2759 14.6945 +-404.344 21.1567 12.8065 +-404.245 18.1239 10.9706 +-404.914 15.124 9.15474 +-148.509 4.43658 2.68553 +-146.25 3.27623 1.98315 +-145.578 2.17384 1.31585 +-145.794 1.08845 0.658856 +119.6 2.66454e-15 -1.13687e-13 +120.395 0.9037 0.535942 +120.182 1.80434 1.07007 +119.959 2.70183 1.60233 +120.626 3.62313 2.14871 +120.585 4.5284 2.68558 +120.535 5.43332 3.22225 +120.974 6.36408 3.77424 +120.107 7.22385 4.28413 +120.727 8.17232 4.84662 +121.436 9.13815 5.41941 +120.443 9.97504 5.91573 +121.232 10.9596 6.49964 +121.017 11.8595 7.0333 +120.892 12.7673 7.57171 +121.254 13.7304 8.14286 +121.011 14.628 8.6752 +121.649 15.6375 9.27384 +121.189 16.5095 9.79103 +120.82 17.3901 10.3133 +121.328 18.4009 10.9127 +120.94 19.2795 11.4338 +120.74 20.1865 11.9717 +121.217 21.2121 12.5799 +121.095 22.139 13.1296 +120.768 23.0284 13.6571 +121.212 24.0694 14.2745 +120.768 24.9382 14.7897 +120.705 25.8853 15.3514 +121.115 26.941 15.9775 +121.417 27.9827 16.5952 +120.936 28.847 17.1078 +120.831 29.801 17.6736 +120.62 30.7312 18.2253 +121.259 31.8869 18.9106 +120.836 32.77 19.4343 +121.069 33.8352 20.0661 +121.575 34.9883 20.7499 +120.175 35.5914 21.1076 +120.564 36.7218 21.778 +120.844 37.8312 22.4359 +120.269 38.6766 22.9373 +120.525 39.7936 23.5997 +120.768 40.9174 24.2662 +120.348 41.8223 24.8028 +119.92 42.724 25.3376 +121.138 44.2274 26.2292 +119.86 44.8263 26.5844 +120.588 46.179 27.3866 +120.843 47.3678 28.0916 +120.358 48.273 28.6285 +120.405 49.3967 29.2949 +120.708 50.6379 30.031 +120.011 51.4652 30.5216 +120.286 52.7155 31.2631 +120.367 53.8944 31.9622 +119.639 54.715 32.4489 +119.871 55.9803 33.1993 +120.085 57.2532 33.9542 +119.5 58.1524 34.4875 +119.598 59.3911 35.2221 +119.594 60.5921 35.9344 +119.832 61.9305 36.7281 +120.819 63.6814 37.7665 +118.727 63.811 37.8433 +117.906 64.6073 38.3156 +117.33 65.5367 38.8667 +115.577 65.7977 39.0216 +115.817 67.1917 39.8483 +119.746 70.7867 41.9803 +119.678 72.0774 42.7458 +120.001 73.6223 43.6619 +119.168 74.4697 44.1645 +117.604 74.8497 44.3898 +114.844 74.4354 44.1442 +113.688 75.0328 44.4984 +110.794 74.4535 44.1549 +108.548 74.265 44.0431 +106.547 74.2108 44.0109 +105.095 74.5153 44.1916 +102.19 73.7533 43.7396 +100.83 74.0706 43.9278 +98.6405 73.7524 43.7391 +97.1396 73.9201 43.8385 +94.9739 73.5529 43.6208 +94.5927 74.5535 44.2142 +94.8566 76.0819 45.1206 +94.8064 77.383 45.8922 +95.6003 79.4062 47.0921 +95.8609 81.025 48.0521 +95.318 81.9847 48.6213 +95.7442 83.8013 49.6986 +95.7239 85.2592 50.5632 +95.3371 86.4109 51.2462 +95.6162 88.193 52.3032 +95.3258 89.478 53.0652 +95.5519 91.2765 54.1319 +95.1522 92.5057 54.8608 +94.8005 93.801 55.629 +94.9493 95.6201 56.7078 +94.6826 97.054 57.5582 +94.6484 98.757 58.5682 +94.461 100.333 59.5027 +94.1865 101.846 60.3999 +94.5656 104.107 61.741 +93.9928 105.359 62.4837 +93.9433 107.228 63.5921 +93.9225 109.174 64.7459 +94.222 111.544 66.1518 +94.19 113.579 67.3581 +94.1813 115.69 68.6104 +94.0234 117.668 69.7836 +93.7207 119.511 70.8763 +93.4429 121.429 72.0138 +93.6779 124.073 73.5818 +93.7051 126.512 75.0284 +93.4778 128.67 76.3083 +93.684 131.493 77.9824 +93.3764 133.666 79.2709 +93.5393 136.585 81.0022 +93.15 138.772 82.2993 +93.462 142.086 84.2647 +93.4228 144.963 85.971 +93.2845 147.776 87.639 +93.1432 150.673 89.357 +92.9962 153.655 91.1255 +93.0227 157.029 93.1266 +93.0769 160.569 95.2262 +93.0224 164.045 97.2875 +92.8182 167.376 99.2631 +92.8492 171.263 101.568 +92.6425 174.849 103.695 +92.6953 179.074 106.2 +91.792 181.577 107.685 +90.5324 183.447 108.794 +88.706 184.199 109.24 +87.7329 186.771 110.765 +92.3583 201.667 119.6 +91.4913 205.003 121.578 +89.1978 205.198 121.694 +86.7705 205.052 121.607 +84.2529 204.642 121.363 +82.4013 205.836 122.071 +79.8339 205.222 121.708 +77.5015 205.16 121.671 +75.1764 205.077 121.622 +73.0052 205.387 121.805 +70.5494 204.855 121.49 +68.2202 204.632 121.358 +65.901 204.391 121.215 +63.8248 204.877 121.503 +61.5184 204.6 121.338 +59.3918 204.887 121.509 +57.0774 204.488 121.272 +54.8206 204.238 121.124 +52.7247 204.558 121.314 +50.481 204.273 121.145 +48.3866 204.56 121.315 +46.1567 204.24 121.125 +43.937 203.902 120.925 +41.7971 203.885 120.915 +39.6774 203.936 120.945 +37.6225 204.311 121.168 +35.5186 204.416 121.23 +33.485 204.93 121.534 +31.261 204.236 121.123 +29.1877 204.463 121.257 +26.9763 203.648 120.774 +24.9509 204.185 121.093 +22.8592 204.194 121.098 +20.7169 203.672 120.788 +18.6419 203.734 120.825 +16.5462 203.523 120.7 +14.499 203.897 120.922 +12.4141 203.74 120.829 +10.3509 203.912 120.93 +8.27816 203.896 120.921 +6.18823 203.262 120.545 +4.14495 204.247 121.129 +2.06644 203.668 120.786 +1.4877e-14 203.504 120.689 +-2.06644 203.668 120.786 +-4.13098 203.559 120.721 +-6.19347 203.434 120.647 +-8.26071 203.466 120.666 +-10.3247 203.396 120.625 +-12.3879 203.311 120.574 +-14.4563 203.296 120.565 +-16.5323 203.352 120.598 +-18.6262 203.562 120.723 +-20.7082 203.586 120.738 +-22.7921 203.594 120.742 +-24.8673 203.501 120.687 +-26.8631 202.794 120.268 +-28.9927 203.097 120.447 +-31.0522 202.872 120.314 +-33.151 202.886 120.322 +-35.223 202.714 120.22 +-37.294 202.528 120.11 +-39.3308 202.155 119.889 +-41.554 202.699 120.211 +-43.5907 202.295 119.972 +-45.8323 202.805 120.274 +-47.7486 201.863 119.715 +-49.9404 202.086 119.847 +-52.0321 201.871 119.72 +-54.3257 202.394 120.031 +-56.3304 201.812 119.685 +-58.6419 202.3 119.974 +-60.7172 201.935 119.758 +-62.9966 202.219 119.927 +-65.2596 202.402 120.035 +-67.5863 202.731 120.23 +-69.669 202.298 119.973 +-72.0112 202.59 120.147 +-74.0638 202.042 119.821 +-76.6053 202.787 120.264 +-78.6598 202.204 119.918 +-80.9688 202.257 119.949 +-83.3516 202.453 120.065 +-85.6418 202.385 120.025 +-87.7269 201.815 119.687 +-90.3804 202.514 120.102 +-92.7615 202.548 120.122 +-95.0752 202.402 120.035 +-97.5077 202.476 120.079 +-99.7537 202.132 119.875 +-102.399 202.559 120.128 +-104.857 202.568 120.134 +-106.908 201.773 119.662 +-109.712 202.367 120.014 +-112.019 202.001 119.797 +-114.503 201.926 119.753 +-116.948 201.751 119.649 +-119.4 201.556 119.533 +-121.809 201.262 119.359 +-124.739 201.783 119.668 +-126.781 200.839 119.108 +-129.638 201.158 119.298 +-132.413 201.301 119.382 +-138 205.588 121.925 +-140.943 205.804 122.053 +-143.593 205.549 121.902 +-143.374 201.237 119.344 +-143.767 197.892 117.36 +-142.975 193.033 114.479 +-143.403 189.933 112.64 +-148.526 193.01 114.465 +-151.485 193.17 114.56 +-158.537 198.406 117.665 +-158.479 194.672 115.451 +-160.274 193.265 114.616 +-161.406 191.08 113.321 +-164.052 190.692 113.09 +-587.071 670.091 397.4 +-590.925 662.384 392.829 +-594.236 654.195 387.973 +-597.988 646.613 383.476 +-599.931 637.221 377.906 +-604.91 631.167 374.316 +-607.049 622.254 369.03 +-611.65 615.973 365.305 +-613.809 607.334 360.182 +-618.225 601.03 356.443 +-620.953 593.17 351.781 +-625.326 586.965 348.102 +-627.37 578.663 343.178 +-631.29 572.186 339.337 +-634.084 564.764 334.935 +-638.458 558.818 331.409 +-640.78 551.146 326.859 +-644.992 545.17 323.315 +-648.269 538.456 319.333 +-651.676 531.912 315.452 +-654.781 525.182 311.461 +-659.347 519.666 308.19 +-661.696 512.453 303.912 +-666.196 506.954 300.651 +-668.597 499.903 296.469 +-672.731 494.195 293.084 +-686.529 495.485 293.849 +-700.635 496.769 294.61 +-703.861 490.246 290.742 +-707.947 484.355 287.249 +-711.889 478.388 283.71 +-715.684 472.346 280.126 +-718.932 465.972 276.346 +-724.034 460.814 273.287 +-115.689 72.2957 42.8752 +-113.976 69.9262 41.47 +-113.453 68.328 40.5222 +-111.752 66.0611 39.1777 +-111.34 64.5945 38.308 +-111.657 63.5665 37.6983 +-110.285 61.6016 36.533 +-109.641 60.0783 35.6296 +-109.907 59.0707 35.0321 +-109.65 57.7941 34.275 +-109.46 56.5703 33.5492 +-110.116 55.7902 33.0865 +-109.466 54.3594 32.238 +-110.1 53.5781 31.7747 +-109.765 52.3327 31.0361 +-109.94 51.3427 30.4489 +-109.927 50.2732 29.8147 +-109.989 49.2476 29.2064 +-110.396 48.3811 28.6926 +-111.24 47.7042 28.2911 +-111.091 46.6035 27.6384 +-111.921 45.916 27.2306 +-112.382 45.0742 26.7314 +-112.562 44.122 26.1667 +-113.097 43.3104 25.6854 +-113.624 42.4941 25.2013 +-114.143 41.6733 24.7145 +-115.485 41.1441 24.4006 +-116.176 40.3724 23.943 +-118.163 40.0348 23.7428 +-119.218 39.3621 23.3438 +-122.236 39.3092 23.3124 +-159.278 49.8631 29.5715 +-157.327 47.9192 28.4187 +-160.738 47.6046 28.2321 +-162.827 46.8602 27.7906 +-164.343 45.9287 27.2381 +-162.895 44.1762 26.1988 +-163.146 42.9015 25.4429 +-3141.57 800.405 474.683 +-857.926 211.594 125.487 +-868.231 207.101 122.822 +-873.197 201.243 119.348 +-380.385 84.6135 50.1803 +-380.744 81.6511 48.4235 +-382.239 78.9308 46.8102 +-381.076 75.6718 44.8774 +-385.246 73.4602 43.5658 +-3204.7 585.896 347.467 +-407.845 71.3699 42.3262 +-405.707 67.8301 40.2269 +-405.691 64.6726 38.3543 +-404.461 61.3413 36.3786 +-405.659 58.3883 34.6274 +-405.347 55.2202 32.7485 +-405.497 52.1248 30.9128 +-404.723 48.9235 29.0142 +-405.699 45.94 27.2449 +-404.562 42.7254 25.3384 +-406.073 39.7944 23.6002 +-405.069 36.619 21.717 +-404.529 33.503 19.8691 +-404.355 30.428 18.0454 +-404.35 27.3715 16.2328 +-403.714 24.2815 14.4002 +-404.544 21.2819 12.6213 +-404.445 18.2311 10.812 +-405.314 15.221 9.02686 +-148.41 4.45763 2.64361 +-147.15 3.31425 1.96553 +-146.378 2.19763 1.30331 +-146.094 1.09661 0.650346 +120.4 4.44089e-15 5.68434e-14 +120.395 0.908498 0.527768 +119.982 1.8109 1.05199 +119.959 2.71617 1.57789 +120.626 3.64237 2.11594 +120.585 4.55244 2.64462 +120.535 5.46217 3.1731 +120.974 6.39787 3.71667 +120.905 7.31046 4.24682 +120.627 8.20893 4.76876 +121.337 9.17914 5.33238 +121.239 10.0943 5.86403 +121.232 11.0178 6.4005 +121.017 11.9224 6.92602 +120.892 12.8351 7.45622 +121.353 13.8145 8.02519 +120.912 14.6936 8.53584 +121.55 15.7077 9.12496 +121.288 16.6108 9.64958 +120.721 17.4682 10.1477 +121.328 18.4986 10.7463 +121.039 19.3976 11.2685 +120.642 20.2772 11.7795 +121.217 21.3247 12.388 +120.997 22.2386 12.9189 +120.768 23.1507 13.4488 +121.212 24.1972 14.0567 +120.671 25.0504 14.5524 +120.705 26.0228 15.1172 +121.115 27.0841 15.7338 +120.741 27.9746 16.2511 +121.032 29.0232 16.8603 +120.734 29.9355 17.3902 +121.482 31.1154 18.0757 +121.068 32.0057 18.5929 +121.694 33.178 19.2739 +121.165 34.0416 19.7756 +120.627 34.8997 20.2741 +121.121 36.0619 20.9492 +120.658 36.9456 21.4626 +120.938 38.0617 22.1109 +121.112 39.1545 22.7457 +120.339 39.9429 23.2038 +120.768 41.1347 23.8961 +120.348 42.0443 24.4245 +120.659 43.2156 25.105 +120.126 44.0906 25.6133 +120.685 45.3747 26.3592 +120.405 46.3539 26.9281 +120.843 47.6193 27.6632 +120.267 48.4927 28.1705 +120.585 49.7335 28.8913 +120.618 50.8689 29.5509 +119.921 51.6999 30.0337 +120.286 52.9954 30.7863 +120.367 54.1805 31.4747 +119.728 55.0461 31.9775 +119.871 56.2776 32.6929 +119.998 57.5153 33.412 +120.196 58.8017 34.1593 +120.378 60.0956 34.9109 +119.68 60.9577 35.4118 +119.832 62.2593 36.1679 +120.649 63.9292 37.1379 +118.727 64.1498 37.2661 +117.99 64.9968 37.7581 +116.491 65.4137 38.0004 +115.493 66.0993 38.3986 +114.656 66.8716 38.8473 +118.509 70.4279 40.9132 +119.35 72.2618 41.9785 +119.838 73.9128 42.9377 +119.249 74.9158 43.5204 +118.489 75.8129 44.0415 +116.201 75.7153 43.9848 +113.767 75.4838 43.8503 +111.582 75.3812 43.7907 +109.409 75.2513 43.7152 +107.324 75.149 43.6558 +105.172 74.966 43.5495 +103.646 75.2009 43.686 +101.514 74.9693 43.5514 +99.3953 74.7113 43.4016 +97.8885 74.8855 43.5027 +94.751 73.7699 42.8546 +94.9613 75.2414 43.7095 +94.9297 76.5448 44.4667 +94.8064 77.7938 45.1923 +94.3774 78.8067 45.7806 +96.1462 81.6976 47.4601 +95.4594 82.5423 47.9507 +94.9732 83.5678 48.5465 +95.7239 85.7119 49.792 +95.4748 86.995 50.5374 +95.6844 88.7244 51.5421 +95.3258 89.9531 52.2559 +94.9496 91.1827 52.9702 +95.2185 93.0617 54.0617 +94.8661 94.3639 54.8182 +95.0792 96.2593 55.9193 +95.2611 98.1659 57.0269 +94.5212 99.1473 57.597 +94.461 100.865 58.5951 +94.56 102.792 59.7142 +94.5656 104.66 60.7992 +94.0536 105.987 61.5703 +94.5451 108.489 63.0235 +94.3984 110.31 64.0814 +93.8105 111.647 64.8585 +94.2481 114.252 66.3714 +93.493 115.454 67.0702 +94.0234 118.293 68.7193 +93.553 119.93 69.6701 +93.4981 122.145 70.9571 +93.8413 124.95 72.5861 +93.7588 127.257 73.9268 +93.3718 129.206 75.059 +93.8407 132.413 76.9216 +93.3764 134.375 78.0618 +93.5393 137.31 79.7667 +93.05 139.359 80.9567 +93.5112 142.916 83.0232 +93.4713 145.809 84.7039 +93.3323 148.637 86.3465 +93.1432 151.473 87.9941 +93.2732 154.931 90.0029 +93.0227 157.863 91.7062 +93.0769 161.422 93.7737 +93.0224 164.916 95.8036 +92.7321 168.109 97.6586 +92.8492 172.173 100.019 +92.6425 175.777 102.113 +92.736 180.103 104.626 +91.8319 182.621 106.089 +89.8291 182.988 106.302 +88.6295 185.017 107.48 +88.3322 189.046 109.821 +92.285 202.577 117.682 +91.0613 205.123 119.161 +88.8126 205.397 119.32 +86.4285 205.328 119.28 +84.2862 205.81 119.56 +82.1734 206.356 119.877 +79.58 205.657 119.471 +77.2852 205.673 119.48 +74.8757 205.342 119.288 +72.8298 205.982 119.66 +70.2654 205.114 119.155 +68.2202 205.719 119.507 +65.901 205.476 119.366 +63.8507 206.049 119.699 +61.293 204.933 119.05 +59.1257 205.051 119.119 +57.1007 205.658 119.472 +54.8206 205.323 119.277 +52.5515 204.969 119.071 +50.5017 205.442 119.346 +48.247 205.053 119.12 +46.1567 205.325 119.278 +43.937 204.985 119.08 +41.8492 205.223 119.219 +39.6774 205.019 119.1 +37.4973 204.713 118.923 +35.4151 204.903 119.033 +33.332 205.076 119.134 +31.1435 204.549 118.827 +29.0537 204.604 118.859 +26.9537 204.558 118.832 +24.8987 204.839 118.996 +22.8017 204.762 118.951 +20.7082 204.667 118.896 +18.6105 204.471 118.782 +16.5462 204.603 118.859 +14.4502 204.289 118.677 +12.3827 204.304 118.685 +10.3203 204.39 118.735 +8.2642 204.633 118.876 +6.18561 204.255 118.656 +4.12749 204.467 118.779 +2.05859 203.971 118.492 +1.4877e-14 204.671 118.898 +-2.05772 203.885 118.441 +-4.13098 204.64 118.88 +-6.1987 204.687 118.908 +-8.25722 204.46 118.775 +-10.3203 204.39 118.735 +-12.3879 204.391 118.735 +-14.4502 204.289 118.677 +-16.5393 204.517 118.809 +-18.5477 203.781 118.381 +-20.6385 203.978 118.496 +-22.7059 203.9 118.45 +-24.7628 203.721 118.347 +-26.8518 203.785 118.383 +-29.0049 204.261 118.66 +-30.9217 203.091 117.98 +-33.0814 203.535 118.239 +-35.1491 203.363 118.139 +-37.1845 203.005 117.931 +-39.2318 202.717 117.763 +-41.3804 202.924 117.883 +-43.5725 203.284 118.092 +-45.6606 203.117 117.995 +-47.7885 203.104 117.988 +-49.8156 202.651 117.725 +-52.0754 203.112 117.992 +-54.1232 202.711 117.759 +-56.3771 203.051 117.957 +-58.6177 203.29 118.096 +-60.7172 203.007 117.932 +-62.9707 203.21 118.049 +-65.0191 202.726 117.768 +-67.3658 203.142 118.01 +-69.6406 203.29 118.096 +-71.7188 202.839 117.834 +-74.0638 203.114 117.994 +-76.3272 203.124 117.999 +-78.6916 203.36 118.137 +-80.7083 202.677 117.74 +-82.9844 202.631 117.713 +-85.4024 202.89 117.864 +-87.7269 202.886 117.861 +-90.4162 203.67 118.316 +-92.4316 202.899 117.869 +-95.1126 203.557 118.251 +-97.2016 202.911 117.876 +-99.7537 203.205 118.047 +-102.08 202.999 117.927 +-104.491 202.933 117.888 +-106.908 202.845 117.837 +-109.289 202.657 117.728 +-111.632 202.371 117.562 +-114.108 202.298 117.52 +-116.547 202.126 117.42 +-118.991 201.932 117.307 +-121.394 201.64 117.137 +-124.269 202.091 117.399 +-126.781 201.906 117.292 +-129.687 202.302 117.522 +-132.117 201.918 117.299 +-137.5 205.931 119.63 +-140.436 206.152 119.759 +-143.181 206.048 119.698 +-143.792 202.896 117.867 +-143.661 198.796 115.485 +-143.352 194.569 113.029 +-144.003 191.739 111.385 +-149.189 194.899 113.221 +-155.567 199.429 115.853 +-158.537 199.459 115.871 +-158.995 196.343 114.06 +-160.797 194.925 113.236 +-161.935 192.724 111.958 +-165.48 193.372 112.334 +-588.334 675.099 392.181 +-592.812 668.027 388.072 +-595.406 658.963 382.807 +-599.668 651.874 378.689 +-601.441 642.217 373.079 +-605.483 635.119 368.955 +-608.72 627.28 364.402 +-612.494 620.099 360.23 +-614.99 611.734 355.371 +-619.02 604.997 351.457 +-622.091 597.412 347.051 +-626.34 591.038 343.348 +-628.598 582.874 338.605 +-631.91 575.788 334.489 +-635.335 568.883 330.477 +-640.211 563.327 327.25 +-642.548 555.601 322.762 +-646.847 549.641 319.299 +-649.348 542.216 314.986 +-653.055 535.867 311.298 +-656.609 529.445 307.567 +-659.863 522.834 303.726 +-663.257 516.389 299.982 +-667.544 510.677 296.664 +-669.956 503.578 292.54 +-677.065 500.02 290.473 +-696.947 505.674 293.758 +-702.41 500.671 290.852 +-706.037 494.373 287.193 +-709.2 487.788 283.368 +-712.835 481.566 279.753 +-717.271 475.906 276.465 +-719.97 469.122 272.524 +-729.018 466.45 270.972 +-114.8 72.1205 41.8965 +-113.569 70.0464 40.6916 +-112.797 68.2941 39.6736 +-111.257 66.1179 38.4094 +-111.008 64.744 37.6113 +-110.907 63.4744 36.8738 +-110.369 61.9758 36.0032 +-109.725 60.4438 35.1132 +-109.822 59.3385 34.4711 +-109.735 58.1462 33.7785 +-109.975 57.1378 33.1927 +-110.116 56.0864 32.5819 +-109.639 54.7345 31.7966 +-110.1 53.8626 31.29 +-110.377 52.904 30.7332 +-109.852 51.5739 29.9605 +-109.927 50.5401 29.3599 +-110.965 49.9483 29.0161 +-110.841 48.8343 28.369 +-110.614 47.6874 27.7027 +-111.091 46.8509 27.2168 +-111.83 46.1225 26.7937 +-112.473 45.35 26.3449 +-113.199 44.6072 25.9133 +-113.097 43.5403 25.2936 +-114.174 42.9267 24.9371 +-114.787 42.1311 24.4749 +-115.3 41.2964 23.99 +-116.083 40.5543 23.5589 +-119 40.5325 23.5463 +-119.965 39.819 23.1318 +-124.296 40.1841 23.3439 +-160.03 50.3644 29.2579 +-160.438 49.1261 28.5385 +-161.116 47.9699 27.8668 +-162.448 46.9993 27.303 +-161.204 45.2908 26.3105 +-162.323 44.2546 25.7086 +-163.624 43.2557 25.1282 +-3141.57 804.655 467.443 +-857.253 212.551 123.476 +-869.484 208.501 121.123 +-874.356 202.581 117.684 +-381.934 85.4091 49.6161 +-381.52 82.252 47.7821 +-382.336 79.37 46.1079 +-382.148 76.2875 44.3172 +-3198.83 613.203 356.224 +-407.496 74.8955 43.5085 +-405.885 71.4041 41.4803 +-404.725 68.0252 39.5174 +-404.806 64.8742 37.6869 +-404.165 61.6219 35.7976 +-402.306 58.2131 33.8173 +-403.965 55.324 32.139 +-405.299 52.3759 30.4264 +-403.93 49.087 28.5158 +-404.708 46.0711 26.7638 +-403.966 42.889 24.9152 +-406.073 40.0057 23.2402 +-403.776 36.696 21.3176 +-404.429 33.6726 19.5612 +-405.75 30.695 17.8314 +-404.449 27.5237 15.9891 +-405.31 24.507 14.2367 +-404.544 21.3949 12.4288 +-405.044 18.3551 10.6629 +-403.416 15.2301 8.84753 +-147.31 4.4481 2.58401 +-146.55 3.31826 1.92766 +-145.978 2.20326 1.27992 +-146.994 1.10922 0.64437 +120.3 5.77316e-15 5.68434e-14 +120.295 0.912466 0.51912 +120.182 1.82335 1.03734 +120.859 2.75078 1.56497 +120.626 3.66131 2.08299 +120.485 4.57233 2.60129 +120.535 5.49057 3.12369 +120.175 6.38869 3.63465 +120.905 7.34847 4.18069 +120.727 8.25844 4.69839 +120.54 9.16621 5.21484 +121.239 10.1468 5.77272 +121.232 11.0751 6.30084 +121.017 11.9844 6.81818 +120.793 12.8913 7.33409 +121.254 13.8751 7.89381 +120.912 14.77 8.40294 +121.55 15.7894 8.98288 +121.288 16.6971 9.49933 +120.82 17.5734 9.99783 +121.328 18.5948 10.579 +120.94 19.4827 11.0841 +120.642 20.3826 11.5961 +121.119 21.4183 12.1853 +120.997 22.3542 12.7177 +120.768 23.2711 13.2394 +121.309 24.3426 13.849 +120.768 25.2009 14.3373 +120.511 26.116 14.8579 +121.018 27.2032 15.4764 +120.741 28.1201 15.9981 +121.128 29.1974 16.611 +120.831 30.115 17.133 +120.62 31.0551 17.6678 +121.068 32.1721 18.3034 +120.836 33.1153 18.8399 +120.404 34.0038 19.3454 +120.627 35.0812 19.9584 +121.215 36.2777 20.6391 +121.318 37.3408 21.2439 +120.844 38.2299 21.7497 +120.175 39.0537 22.2184 +120.525 40.2129 22.8779 +120.768 41.3486 23.524 +120.534 42.3282 24.0813 +120.751 43.4736 24.733 +120.218 44.3539 25.2338 +120.869 45.6799 25.9882 +120.588 46.6656 26.549 +120.934 47.9029 27.2529 +120.086 48.6714 27.6901 +120.585 49.9921 28.4415 +120.708 51.1715 29.1125 +120.906 52.3954 29.8087 +120.286 53.271 30.3069 +120.367 54.4623 30.9847 +119.816 55.3732 31.5029 +119.959 56.6117 32.2075 +119.298 57.4772 32.6999 +119.326 58.6795 33.3839 +119.512 59.9735 34.1201 +119.594 61.2306 34.8353 +119.746 62.5383 35.5792 +120.052 63.9437 36.3788 +119.066 64.6677 36.7907 +118.581 65.6617 37.3562 +117.749 66.4639 37.8126 +115.994 66.7308 37.9645 +114.407 67.0735 38.1594 +119.333 71.2864 40.5562 +119.269 72.5876 41.2965 +120.163 74.4991 42.384 +120.382 76.0207 43.2496 +119.292 76.7241 43.6498 +117 76.6321 43.5975 +114.878 76.6172 43.589 +112.213 76.2013 43.3524 +110.739 76.5625 43.5579 +107.712 75.8133 43.1317 +106.561 76.3509 43.4376 +104.335 76.0948 43.2918 +102.959 76.4317 43.4835 +100.074 75.613 43.0177 +98.6375 75.8509 43.1531 +96.0886 75.2003 42.7829 +94.6664 75.3978 42.8953 +94.9297 76.9429 43.7743 +94.6614 78.0788 44.4206 +94.5212 79.3372 45.1365 +95.2903 81.3914 46.3052 +95.9544 83.4017 47.4489 +95.0433 84.0644 47.8259 +95.7239 86.1576 49.0167 +95.3371 87.3214 49.6789 +95.6844 89.1858 50.7395 +95.3258 90.4209 51.4422 +95.0165 91.7221 52.1825 +95.2185 93.5456 53.2199 +94.8661 94.8546 53.9646 +95.0792 96.7598 55.0486 +95.0683 98.4765 56.0252 +94.5212 99.6629 56.7002 +94.5239 101.457 57.7208 +94.56 103.326 58.7845 +94.0115 104.588 59.502 +94.0536 106.538 60.6116 +94.0035 108.428 61.6867 +94.4579 110.953 63.1232 +93.8693 112.298 63.8886 +94.19 114.775 65.298 +93.9518 116.624 66.3497 +93.9668 118.837 67.6087 +93.6648 120.698 68.6674 +93.4981 122.781 69.8522 +93.7324 125.453 71.3728 +93.5976 127.699 72.6506 +93.4778 130.026 73.9743 +93.7885 133.027 75.6818 +93.3249 135 76.8043 +93.5393 138.024 78.5247 +93.6 140.912 80.1674 +93.0188 142.902 81.2998 +92.9865 145.807 82.9524 +93.3323 149.41 85.0021 +93.1432 152.261 86.624 +93.3194 155.814 88.6455 +93.0227 158.684 90.2783 +93.0769 162.261 92.3136 +92.9785 165.695 94.2674 +92.8182 169.14 96.2271 +92.5534 172.516 98.1477 +92.6425 176.691 100.523 +92.8173 181.199 103.088 +91.5528 183.012 104.119 +89.2039 182.659 103.918 +88.7826 186.3 105.99 +88.8941 191.238 108.799 +92.285 203.631 115.85 +91.2405 206.596 117.536 +88.4974 205.733 117.045 +86.3943 206.314 117.376 +84.0192 206.224 117.325 +81.8804 206.689 117.59 +79.3579 206.149 117.282 +77.2233 206.577 117.526 +74.6352 205.746 117.053 +72.6251 206.47 117.465 +70.095 205.68 117.016 +67.9997 206.12 117.266 +65.6872 205.874 117.126 +63.6695 206.533 117.501 +61.3431 206.166 117.292 +59.1015 206.033 117.216 +56.6338 205.037 116.65 +54.8206 206.39 117.42 +52.2918 205.016 116.638 +50.2938 205.66 117.004 +48.0875 205.438 116.878 +46.0422 205.88 117.129 +43.7547 205.196 116.74 +41.7103 205.606 116.973 +39.5124 205.228 116.758 +37.4661 205.606 116.973 +35.2525 205.022 116.641 +33.2206 205.454 116.887 +31.0783 205.181 116.732 +28.9927 205.237 116.763 +26.8518 204.844 116.54 +24.8882 205.819 117.094 +22.6963 204.875 116.557 +20.6559 205.212 116.749 +18.5556 204.928 116.587 +16.5183 205.321 116.811 +14.4441 205.265 116.779 +12.3461 204.759 116.491 +10.2811 204.671 116.442 +8.25722 205.523 116.926 +6.16205 204.535 116.364 +4.12924 205.617 116.98 +2.05859 205.032 116.647 +1.26565e-14 205.127 116.701 +-2.05161 204.337 116.251 +-4.11528 204.922 116.584 +-6.17252 204.882 116.562 +-8.2293 204.828 116.531 +-10.2811 204.671 116.442 +-12.3356 204.585 116.393 +-14.3891 204.484 116.335 +-16.4695 204.714 116.466 +-18.5085 204.408 116.292 +-20.6298 204.952 116.601 +-22.6196 204.183 116.164 +-24.7732 204.868 116.553 +-26.7499 204.067 116.098 +-28.8587 204.288 116.223 +-30.9478 204.32 116.242 +-32.9562 203.819 115.956 +-35.0013 203.561 115.81 +-37.1845 204.061 116.094 +-39.0668 202.914 115.442 +-41.3804 203.979 116.048 +-43.4085 203.572 115.816 +-45.5079 203.491 115.77 +-47.5493 203.138 115.569 +-49.8156 203.705 115.892 +-51.9022 203.489 115.769 +-54.1457 203.85 115.974 +-56.1436 203.262 115.64 +-58.3758 203.503 115.777 +-60.4167 203.053 115.521 +-62.7895 203.679 115.877 +-64.832 203.195 115.601 +-67.3658 204.198 116.172 +-69.3849 203.597 115.83 +-71.7188 203.894 115.999 +-73.7932 203.425 115.732 +-76.0491 203.436 115.739 +-78.1521 203.016 115.5 +-80.7409 203.813 115.953 +-82.7841 203.193 115.6 +-85.1972 203.455 115.75 +-87.4468 203.29 115.656 +-90.1295 204.079 116.105 +-92.1018 203.227 115.62 +-94.8129 203.971 116.043 +-96.8189 203.164 115.584 +-99.3629 203.461 115.753 +-101.96 203.816 115.955 +-104.125 203.274 115.646 +-106.535 203.188 115.597 +-108.909 203.002 115.492 +-111.201 202.639 115.285 +-114.108 203.35 115.69 +-116.145 202.477 115.193 +-118.946 202.905 115.437 +-121.024 202.072 114.963 +-123.894 202.528 115.222 +-126.399 202.344 115.118 +-129.25 202.67 115.303 +-131.428 201.909 114.87 +-137.4 206.851 117.682 +-140.081 206.7 117.596 +-143.593 207.715 118.173 +-143.739 203.876 115.989 +-142.866 198.724 113.058 +-143.083 195.214 111.061 +-144.711 193.684 110.191 +-148.913 195.55 111.252 +-157.413 202.844 115.402 +-158.99 201.069 114.392 +-159.34 197.791 112.527 +-161.784 197.142 112.158 +-162.993 194.992 110.935 +-587.328 689.893 392.494 +-589.959 680.484 387.14 +-594.212 673.087 382.932 +-596.145 663.212 377.314 +-600.851 656.556 373.528 +-603.644 647.921 368.615 +-607.518 640.568 364.432 +-610.134 632.007 359.561 +-614.508 625.372 355.787 +-616.761 616.686 350.845 +-621.339 610.422 347.281 +-623.697 602.069 342.529 +-628.096 595.777 338.95 +-630.439 587.621 334.309 +-634.456 581.115 330.608 +-637.28 573.592 326.328 +-641.753 567.62 322.93 +-643.891 559.658 318.4 +-649.058 554.387 315.402 +-650.499 546.002 310.631 +-655.086 540.329 307.404 +-657.926 533.265 303.385 +-662.149 527.374 300.033 +-664.371 519.947 295.808 +-668.892 514.369 292.635 +-671.314 507.224 288.569 +-689.308 511.709 291.121 +-699.475 510.148 290.233 +-704.185 504.547 287.046 +-706.737 497.436 283.001 +-711.704 492.056 279.941 +-714.017 484.873 275.854 +-719.175 479.651 272.883 +-723.723 474.021 269.68 +-115.193 74.0873 42.1497 +-113.667 71.7803 40.8372 +-112.999 70.0574 39.857 +-112.797 68.6492 39.0559 +-111.669 66.7079 37.9514 +-110.759 64.9349 36.9428 +-110.406 63.5167 36.1359 +-110.453 62.3455 35.4696 +-109.894 60.8514 34.6196 +-109.907 59.6932 33.9606 +-109.735 58.4486 33.2526 +-109.803 57.3454 32.6249 +-110.375 56.5104 32.1499 +-109.899 55.1495 31.3757 +-110.013 54.0998 30.7785 +-110.29 53.1369 30.2307 +-109.94 51.8837 29.5176 +-109.75 50.7213 28.8564 +-110.876 50.1679 28.5415 +-110.752 49.0488 27.9048 +-110.703 47.9742 27.2935 +-111.091 47.0946 26.793 +-112.282 46.5495 26.4829 +-112.473 45.5858 25.9347 +-113.199 44.8391 25.5099 +-113.919 44.0849 25.0808 +-114.174 43.1499 24.5488 +-115.339 42.5539 24.2097 +-115.947 41.744 23.749 +-117.474 41.2537 23.47 +-119.093 40.7752 23.1978 +-120.992 40.3687 22.9665 +-143.405 46.6027 26.5132 +-159.466 50.448 28.7008 +-161.757 49.7878 28.3253 +-161.022 48.1911 27.4169 +-161.594 46.9955 26.7367 +-163.677 46.2246 26.2981 +-162.704 44.5893 25.3677 +-167.545 44.5225 25.3297 +-845.2 217.608 123.802 +-855.907 213.321 121.363 +-871.893 210.165 119.567 +-3164.86 737.084 419.341 +-380.966 85.6356 48.7198 +-382.685 82.932 47.1817 +-383.114 79.9451 45.4823 +-381.661 76.5864 43.5715 +-905.319 174.448 99.247 +-406.127 75.032 42.6872 +-406.179 71.8274 40.864 +-404.725 68.3789 38.9021 +-402.938 64.9105 36.9289 +-404.461 61.9876 35.266 +-401.221 58.358 33.201 +-405.644 55.8428 31.7701 +-405.2 52.6354 29.9453 +-404.624 49.4269 28.12 +-403.221 46.1405 26.2502 +-403.371 43.0485 24.4912 +-405.278 40.135 22.8336 +-403.776 36.8868 20.9856 +-405.027 33.8977 19.2851 +-405.451 30.8319 17.5409 +-404.449 27.6668 15.7402 +-405.31 24.6344 14.015 +-404.245 21.4902 12.2262 +-404.245 18.4141 10.4762 +-405.314 15.3814 8.75077 +-146.311 4.4409 2.52651 +-147.15 3.34917 1.90541 +-145.978 2.21472 1.26 +-146.294 1.10967 0.631316 +120.4 4.44089e-15 5.68434e-14 +120.295 0.917111 0.510869 +120.182 1.83263 1.02085 +121.059 2.76936 1.54265 +119.827 3.65556 2.0363 +120.585 4.59941 2.56206 +120.535 5.51852 3.07404 +120.974 6.46388 3.60065 +120.905 7.38588 4.11424 +120.627 8.29362 4.61989 +121.337 9.27385 5.16591 +121.239 10.1985 5.68097 +121.232 11.1315 6.20069 +121.017 12.0455 6.70981 +120.892 12.9675 7.22345 +120.361 13.8431 7.71116 +120.912 14.8452 8.26938 +121.55 15.8697 8.8401 +121.288 16.7821 9.34834 +120.82 17.6628 9.83892 +120.442 18.5529 10.3347 +120.94 19.5819 10.9079 +120.642 20.4864 11.4118 +121.217 21.5447 12.0013 +120.997 22.468 12.5156 +120.768 23.3896 13.029 +121.407 24.4862 13.6398 +120.963 25.37 14.1322 +120.414 26.2278 14.61 +120.922 27.3198 15.2183 +121.031 28.331 15.7815 +121.032 29.3227 16.3339 +120.734 30.2443 16.8473 +120.428 31.1635 17.3594 +121.068 32.3359 18.0124 +120.741 33.2576 18.5259 +121.069 34.3658 19.1432 +121.575 35.537 19.7956 +121.215 36.4624 20.311 +120.281 37.2102 20.7276 +120.657 38.3647 21.3707 +120.924 39.4973 22.0016 +120.339 40.355 22.4794 +120.768 41.5591 23.1501 +120.348 42.4781 23.6621 +120.659 43.6615 24.3212 +120.31 44.6138 24.8517 +120.685 45.8428 25.5363 +120.223 46.7611 26.0478 +120.934 48.1468 26.8197 +120.267 48.993 27.2911 +120.585 50.2466 27.9894 +119.899 51.0873 28.4577 +120.011 52.2723 29.1178 +120.286 53.5422 29.8252 +119.658 54.4168 30.3124 +119.816 55.6551 31.0022 +119.871 56.8582 31.6723 +119.91 58.0663 32.3453 +120.196 59.4084 33.0929 +119.512 60.2788 33.5778 +119.594 61.5423 34.2816 +119.746 62.8566 35.0137 +119.455 63.9497 35.6226 +119.32 65.1357 36.2833 +118.496 65.949 36.7363 +118.672 67.3257 37.5031 +115.326 66.6849 37.1462 +113.661 66.9753 37.308 +119.086 71.5009 39.8289 +119.432 73.0574 40.696 +119.838 74.6754 41.5973 +119.654 75.9455 42.3048 +119.694 77.3745 43.1008 +117.719 77.4954 43.1681 +116.861 78.3368 43.6368 +113.631 77.5573 43.2026 +112.148 77.9311 43.4108 +109.189 77.2438 43.028 +107.796 77.6287 43.2424 +105.101 77.0437 42.9165 +103.643 77.3314 43.0768 +101.357 76.9723 42.8767 +100.06 77.3368 43.0798 +98.0208 77.103 42.9495 +96.3621 77.139 42.9696 +94.2715 76.7983 42.7798 +94.6614 78.4763 43.7145 +94.5932 79.8018 44.4529 +95.005 81.5608 45.4327 +95.6008 83.5174 46.5226 +95.6741 85.0531 47.3781 +95.7934 86.6591 48.2727 +95.2683 87.703 48.8542 +95.207 89.1925 49.6839 +95.3258 90.8812 50.6246 +94.9496 92.1235 51.3166 +95.2185 94.0218 52.374 +94.8005 95.272 53.0704 +95.0792 97.2524 54.1736 +94.4898 98.3759 54.7994 +94.5212 100.17 55.7989 +94.7127 102.177 56.9167 +94.56 103.853 57.8501 +94.6272 105.809 58.9397 +93.9928 107.011 59.6098 +94.485 109.538 61.0171 +94.5173 111.588 62.1593 +93.8693 112.87 62.8731 +94.2481 115.43 64.2995 +93.8945 117.146 65.2552 +93.9668 119.442 66.5341 +93.6089 121.24 67.5356 +93.4981 123.406 68.742 +93.2967 125.506 69.9118 +93.7588 128.57 71.6189 +93.5837 130.836 72.8808 +93.7885 133.704 74.4789 +93.4279 135.837 75.6668 +93.5901 138.802 77.3184 +93 140.721 78.3875 +93.462 144.314 80.3891 +92.938 146.473 81.5915 +93.38 150.247 83.6938 +93.1901 153.113 85.2899 +92.9038 155.91 86.8482 +93.0227 159.492 88.8434 +93.0769 163.087 90.8463 +93.3292 167.167 93.1189 +92.8612 170.081 94.7418 +92.8492 173.949 96.8967 +92.6425 177.591 98.9254 +92.4512 181.403 101.049 +91.2338 183.303 102.107 +88.8913 182.946 101.909 +88.3616 186.361 103.811 +90.3176 195.289 108.784 +92.285 204.667 114.008 +90.7746 206.587 115.077 +88.0772 205.798 114.638 +86.1207 206.708 115.145 +83.4517 205.874 114.68 +81.3269 206.338 114.939 +78.755 205.624 114.541 +76.9452 206.881 115.241 +74.3645 206.043 114.775 +72.3328 206.686 115.133 +69.7826 205.806 114.642 +67.7517 206.414 114.981 +65.1794 205.323 114.373 +63.333 206.487 115.022 +60.8674 205.609 114.533 +58.7628 205.896 114.692 +56.4938 205.572 114.512 +54.4382 205.995 114.747 +52.1619 205.548 114.499 +50.1275 206.023 114.763 +47.8882 205.628 114.543 +45.8323 205.985 114.742 +43.609 205.553 114.502 +41.554 205.877 114.682 +39.4959 206.187 114.854 +37.3096 205.79 114.634 +35.1786 205.635 114.547 +33.1649 206.154 114.836 +30.9608 205.447 114.442 +28.8952 205.588 114.521 +26.7726 205.28 114.349 +24.7942 206.084 114.798 +22.6484 205.483 114.462 +20.5775 205.474 114.457 +18.4222 204.49 113.909 +16.4276 205.233 114.323 +14.3525 205.001 114.194 +12.3408 205.714 114.591 +10.2462 205.014 114.201 +8.1944 204.998 114.192 +6.14111 204.878 114.125 +4.09957 205.179 114.293 +2.04725 204.94 114.16 +1.4988e-14 205.297 114.359 +-2.04201 204.416 113.868 +-4.10132 205.266 114.342 +-6.12279 204.267 113.785 +-8.1944 204.998 114.192 +-10.2462 205.014 114.201 +-12.2937 204.929 114.154 +-14.3403 204.827 114.097 +-16.3997 204.884 114.129 +-18.43 204.578 113.958 +-20.5426 205.125 114.263 +-22.5429 204.526 113.929 +-24.6792 205.129 114.265 +-26.6367 204.238 113.769 +-28.7855 204.807 114.086 +-30.6998 203.714 113.477 +-32.8588 204.251 113.776 +-34.9717 204.425 113.873 +-37.075 204.495 113.912 +-38.9677 203.43 113.319 +-41.1373 203.813 113.532 +-43.1534 203.406 113.305 +-45.3553 203.841 113.548 +-47.4496 203.744 113.494 +-49.5869 203.802 113.526 +-51.6208 203.416 113.311 +-53.9208 204.037 113.657 +-55.9802 203.702 113.47 +-58.1822 203.861 113.559 +-60.2915 203.664 113.449 +-62.5307 203.872 113.565 +-64.5381 203.303 113.248 +-66.8421 203.643 113.437 +-69.0441 203.628 113.429 +-71.4264 204.096 113.69 +-73.4624 203.544 113.382 +-75.8328 203.89 113.575 +-77.93 203.47 113.341 +-80.4804 204.19 113.742 +-82.4503 203.403 113.304 +-84.8552 203.671 113.453 +-87.0616 203.425 113.316 +-89.4128 203.487 113.351 +-91.7719 203.53 113.375 +-94.4758 204.28 113.793 +-96.5128 203.552 113.387 +-99.1676 204.095 113.689 +-101.242 203.412 113.309 +-103.799 203.67 113.452 +-105.747 202.711 112.919 +-108.655 203.561 113.392 +-110.9 203.119 113.145 +-113.713 203.679 113.457 +-115.699 202.725 112.926 +-118.537 203.237 113.212 +-120.655 202.481 112.79 +-123.471 202.864 113.004 +-125.874 202.53 112.817 +-128.911 203.167 113.172 +-131.182 202.557 112.832 +-136.5 206.542 115.052 +-139.066 206.246 114.888 +-142.82 207.649 115.669 +-143.687 204.84 114.104 +-143.449 200.551 111.715 +-142.868 195.913 109.132 +-144.983 195.036 108.643 +-147.864 195.162 108.713 +-157.86 204.456 113.89 +-159.557 202.813 112.975 +-160.544 200.301 111.576 +-163.236 199.923 111.365 +-164.227 197.469 109.998 +-590.243 696.847 388.172 +-591.765 686.041 382.153 +-597.195 679.91 378.738 +-599.1 669.892 373.157 +-603.341 662.634 369.114 +-605.406 653.12 363.815 +-610.126 646.592 360.178 +-612.191 637.366 355.039 +-617.625 631.745 351.908 +-619.32 622.397 346.701 +-623.791 615.951 343.11 +-626.239 607.601 338.458 +-630.934 601.515 335.069 +-632.894 592.913 330.277 +-637.554 586.925 326.941 +-639.641 578.649 322.331 +-644.276 572.753 319.047 +-646.508 564.793 314.613 +-650.841 558.741 311.242 +-653.232 551.087 306.978 +-658.06 545.545 303.891 +-659.754 537.469 299.392 +-664.877 532.242 296.48 +-667.047 524.698 292.278 +-671.663 519.13 289.177 +-675.314 512.843 285.675 +-699.193 521.689 290.602 +-701.62 514.317 286.496 +-707.657 509.615 283.877 +-709.69 502.057 279.666 +-715.226 497.008 276.854 +-716.932 489.332 272.578 +-721.872 483.901 269.553 +-725.321 477.485 265.979 +-113.826 73.5811 40.9877 +-113.343 71.9403 40.0737 +-112.104 69.856 38.9126 +-111.814 68.3974 38.1002 +-110.763 66.5032 37.045 +-111.008 65.412 36.4372 +-110.49 63.8883 35.5884 +-109.866 62.3298 34.7202 +-109.725 61.0674 34.017 +-110.161 60.136 33.4982 +-109.735 58.7461 32.724 +-110.317 57.9073 32.2567 +-109.685 56.4433 31.4412 +-109.206 55.0808 30.6823 +-110.709 54.7194 30.481 +-110.202 53.3651 29.7265 +-110.731 52.5229 29.2574 +-110.28 51.2256 28.5348 +-110.522 50.2619 27.998 +-110.841 49.3381 27.4833 +-111.688 48.6472 27.0985 +-111.54 47.5258 26.4738 +-112.011 46.6736 25.9991 +-112.292 45.7441 25.4813 +-114.109 45.4297 25.3062 +-113.919 44.3094 24.6821 +-114.724 43.5785 24.275 +-114.879 42.5998 23.7298 +-116.316 42.0902 23.4459 +-118.123 41.6928 23.2246 +-120.396 41.431 23.0788 +-122.299 41.0125 22.8456 +-160.452 52.408 29.1934 +-160.312 50.9737 28.3944 +-162.134 50.1579 27.94 +-161.967 48.7208 27.1395 +-162.069 47.3734 26.3889 +-164.533 46.7029 26.0154 +-165.375 45.5519 25.3743 +-167.545 44.7491 24.9271 +-851.432 220.329 122.732 +-856.1 214.455 119.46 +-871.893 211.235 117.667 +-381.058 89.1986 49.6873 +-380.772 86.0279 47.9211 +-382.685 83.3542 46.4317 +-382.725 80.2705 44.7139 +-382.148 77.0746 42.9337 +-3198.64 619.492 345.083 +-405.638 75.3232 41.9581 +-406.179 72.193 40.2145 +-403.841 68.577 38.2002 +-403.528 65.3365 36.3951 +-406.036 62.5459 34.8406 +-403.292 58.9579 32.842 +-404.063 55.9084 31.1433 +-405.002 52.8776 29.455 +-404.921 49.7151 27.6933 +-403.716 46.4324 25.8648 +-403.669 43.2997 24.1197 +-405.278 40.3393 22.4706 +-404.472 37.1385 20.6876 +-404.529 34.0284 18.9552 +-405.352 30.9813 17.2579 +-405.247 27.8624 15.5205 +-403.415 24.644 13.7277 +-404.045 21.5889 12.0259 +-404.245 18.5079 10.3096 +-404.415 15.4253 8.59255 +-148.509 4.53058 2.52372 +-147.549 3.37537 1.88022 +-145.878 2.22447 1.23912 +-146.794 1.11914 0.623408 +120.3 5.77316e-15 5.68434e-14 +120.295 0.921683 0.502574 +120.182 1.84177 1.00428 +120.159 2.76248 1.50632 +120.726 3.70136 2.01827 +120.585 4.62234 2.52046 +120.535 5.54603 3.02413 +120.974 6.4961 3.54219 +120.905 7.4227 4.04744 +120.627 8.33496 4.54488 +121.337 9.32008 5.08204 +121.14 10.2409 5.58414 +121.232 11.187 6.10002 +120.918 12.0955 6.59541 +120.594 13 7.08865 +121.254 14.0152 7.64221 +120.912 14.9192 8.13511 +121.55 15.9489 8.69657 +121.288 16.8658 9.19656 +120.82 17.7509 9.67917 +121.427 18.7978 10.2501 +120.94 19.6795 10.7308 +120.74 20.6053 11.2356 +121.217 21.6521 11.8064 +121.095 22.5983 12.3224 +120.865 23.5251 12.8278 +120.53 24.4305 13.3214 +121.06 25.517 13.9139 +121.19 26.5285 14.4654 +120.728 27.412 14.9472 +121.417 28.5632 15.5749 +121.128 29.4924 16.0816 +120.831 30.4192 16.587 +120.62 31.3687 17.1047 +121.164 32.5227 17.734 +120.645 33.397 18.2107 +121.26 34.5914 18.8619 +120.911 35.519 19.3678 +121.31 36.6728 19.9969 +120.187 37.3663 20.3751 +120.563 38.526 21.0074 +121.018 39.7249 21.6611 +120.339 40.5562 22.1144 +120.768 41.7662 22.7742 +120.256 42.657 23.26 +120.751 43.9127 23.9447 +120.31 44.8362 24.4482 +120.685 46.0713 25.1217 +120.405 47.0656 25.6639 +120.752 48.314 26.3446 +120.267 49.2372 26.848 +120.405 50.4214 27.4937 +120.708 51.6883 28.1846 +119.921 52.4937 28.6237 +120.286 53.8091 29.3409 +120.545 55.0934 30.0413 +119.904 55.9737 30.5213 +119.871 57.1416 31.1581 +119.298 58.0578 31.6577 +120.196 59.7046 32.5556 +120.204 60.9305 33.2241 +119.68 61.8937 33.7493 +119.746 63.17 34.4452 +120.052 64.5896 35.2193 +119.066 65.3209 35.6181 +118.918 66.5136 36.2684 +119.427 68.0916 37.1289 +113.992 66.2419 36.1203 +112.749 66.7691 36.4078 +119.416 72.0562 39.2907 +119.514 73.4719 40.0627 +119.512 74.8437 40.8107 +119.249 76.0661 41.4772 +119.775 77.8124 42.4295 +118.757 78.5686 42.8418 +118.686 79.9565 43.5986 +114.971 78.8628 43.0022 +114.417 79.9046 43.5703 +111.365 79.1759 43.1729 +109.802 79.4676 43.332 +106.25 78.2742 42.6813 +106.229 79.6555 43.4345 +102.867 78.5079 42.8087 +101.409 78.7696 42.9514 +99.2841 78.486 42.7967 +98.4265 79.1844 43.1776 +94.7834 77.6003 42.3138 +94.8064 78.9883 43.0706 +94.5212 80.1386 43.6979 +95.0763 82.0289 44.7286 +94.6109 83.0646 45.2934 +95.7442 85.5397 46.643 +95.3766 86.7121 47.2823 +95.1306 88.0129 47.9916 +95.6844 90.0866 49.1223 +95.3258 91.3342 49.8026 +95.0165 92.6485 50.5193 +95.2185 94.4905 51.5237 +95.391 96.343 52.5338 +95.1441 97.8039 53.3304 +95.1326 99.5388 54.2764 +94.4576 100.602 54.8561 +94.7757 102.755 56.03 +94.062 103.821 56.6112 +94.5656 106.267 57.9449 +94.2363 107.823 58.7937 +94.0637 109.593 59.7588 +93.9225 111.439 60.7651 +93.8105 113.361 61.8136 +94.1319 115.863 63.1775 +94.0665 117.946 64.3135 +93.8535 119.893 65.3749 +93.6089 121.844 66.4391 +93.3877 123.874 67.5459 +93.7868 126.794 69.1382 +93.6513 129.063 70.3752 +93.6367 131.562 71.7382 +93.3182 133.698 72.9025 +93.3764 136.439 74.3971 +93.5393 139.418 76.0219 +93.15 141.651 77.2393 +93.1173 144.498 78.7918 +93.4713 148.048 80.7273 +93.3323 150.919 82.2928 +93.1432 153.798 83.863 +92.9038 156.687 85.4381 +93.0227 160.287 87.4009 +92.9876 163.743 89.2857 +92.9785 167.369 91.2628 +92.8182 170.848 93.16 +92.9338 174.975 95.4101 +92.9328 179.035 97.6242 +92.5733 182.548 99.5396 +90.6357 183.009 99.791 +89.6337 185.394 101.091 +86.0272 182.342 99.4271 +92.0783 200.089 109.104 +92.3583 205.851 112.246 +90.4162 206.797 112.762 +87.6919 205.919 112.284 +85.5392 206.336 112.51 +83.1847 206.238 112.457 +81.1641 206.951 112.846 +78.5329 206.066 112.363 +76.389 206.409 112.551 +74.0638 206.233 112.454 +71.8357 206.289 112.485 +69.5838 206.243 112.46 +67.5312 206.768 112.746 +65.126 206.178 112.424 +62.893 206.075 112.368 +60.642 205.869 112.256 +58.5451 206.156 112.412 +56.2603 205.742 112.187 +54.2132 206.165 112.418 +51.9672 205.802 112.219 +49.7741 205.591 112.104 +47.5293 205.104 111.839 +45.6988 206.408 112.55 +43.3903 205.542 112.078 +41.3109 205.694 112.16 +39.1493 205.396 111.998 +37.2158 206.295 112.488 +34.9274 205.183 111.882 +33.0258 206.313 112.498 +30.8564 205.775 112.205 +28.7977 205.916 112.282 +26.648 205.344 111.969 +24.606 205.539 112.076 +22.4662 204.847 111.699 +20.4903 205.623 112.122 +18.3045 204.197 111.344 +16.4067 205.993 112.324 +14.3037 205.322 111.958 +12.2571 205.337 111.966 +10.1764 204.633 111.582 +8.16997 205.405 112.003 +6.11494 205.021 111.794 +4.08212 205.323 111.958 +2.03328 204.557 111.541 +1.40998e-14 205.355 111.976 +-2.03416 204.645 111.588 +-4.0699 204.709 111.623 +-6.10446 204.67 111.602 +-8.16648 205.317 111.955 +-10.1677 204.458 111.486 +-12.2466 205.161 111.87 +-14.2304 204.271 111.384 +-16.3509 205.293 111.942 +-18.3045 204.197 111.344 +-20.3857 204.574 111.55 +-22.4567 204.759 111.651 +-24.5955 205.452 112.029 +-26.5348 204.471 111.494 +-28.5905 204.434 111.474 +-30.5953 204.034 111.255 +-32.7335 204.487 111.502 +-34.7352 204.055 111.267 +-36.9185 204.647 111.59 +-38.8192 203.664 111.054 +-40.9983 204.137 111.312 +-43.0076 203.729 111.089 +-45.0691 203.564 110.999 +-47.1106 203.297 110.854 +-49.2959 203.616 111.027 +-51.3611 203.401 110.911 +-53.5384 203.599 111.018 +-55.63 203.437 110.93 +-57.7951 203.515 110.972 +-59.7907 202.979 110.68 +-62.2719 204.04 111.259 +-64.351 203.724 111.086 +-66.5113 203.645 111.043 +-68.6465 203.465 110.945 +-70.9001 203.603 111.02 +-73.1617 203.721 111.085 +-75.4929 203.988 111.23 +-77.581 203.568 111.001 +-79.8944 203.713 111.08 +-81.8494 202.928 110.652 +-84.479 203.778 111.116 +-86.5012 203.123 110.759 +-89.0903 203.764 111.108 +-91.1122 203.074 110.732 +-93.9888 204.24 111.368 +-95.8239 203.106 110.75 +-98.8159 204.386 111.447 +-100.565 203.057 110.723 +-103.23 203.562 110.998 +-105.332 202.923 110.65 +-108.317 203.939 111.204 +-110.168 202.784 110.574 +-112.881 203.194 110.798 +-114.851 202.243 110.279 +-117.72 202.842 110.606 +-120.239 202.79 110.577 +-123.002 203.1 110.746 +-125.063 202.228 110.27 +-127.941 202.644 110.497 +-130.246 202.114 110.209 +-135.45 205.975 112.314 +-138.659 206.669 112.692 +-141.687 207.029 112.889 +-143.426 205.487 112.048 +-143.396 201.476 109.861 +-143.083 197.186 107.521 +-144.983 196.008 106.879 +-147.478 195.622 106.668 +-154.114 200.599 109.382 +-160.236 204.692 111.614 +-161.347 202.306 110.313 +-166.197 204.565 111.545 +-588.314 710.924 387.652 +-593.038 703.637 383.678 +-594.894 693.107 377.936 +-600.3 686.851 374.525 +-601.44 675.861 368.533 +-606.205 669.097 364.845 +-608.301 659.514 359.619 +-613.625 653.541 356.362 +-615.148 643.637 350.962 +-620.288 637.631 347.687 +-622.469 628.679 342.806 +-626.64 621.848 339.081 +-628.715 613.044 334.28 +-633.298 606.78 330.864 +-635.691 598.501 326.35 +-640.583 592.652 323.161 +-642.559 584.185 318.544 +-647.71 578.677 315.54 +-648.912 569.719 310.656 +-654.122 564.356 307.732 +-656.398 556.518 303.457 +-661.179 550.863 300.374 +-662.533 542.423 295.772 +-667.9 537.327 292.993 +-669.722 529.429 288.686 +-680.726 528.756 288.319 +-697.276 532.161 290.176 +-703.528 527.539 287.656 +-704.991 519.364 283.198 +-709.972 513.832 280.181 +-712.798 506.77 276.331 +-718.2 501.563 273.492 +-719.533 493.554 269.125 +-115.195 77.6049 42.3163 +-114.764 75.9267 41.4012 +-113.746 73.8956 40.2937 +-113.262 72.2473 39.3949 +-111.371 69.7454 38.0307 +-110.913 68.1843 37.1795 +-110.598 66.7353 36.3893 +-110.511 65.4435 35.685 +-109.99 63.916 34.852 +-109.95 62.6883 34.1826 +-109.472 61.2303 33.3876 +-109.907 60.2961 32.8782 +-109.479 58.9013 32.1176 +-110.146 58.1055 31.6837 +-110.116 56.9475 31.0523 +-109.639 55.5749 30.3038 +-109.752 54.5166 29.7267 +-110.202 53.6311 29.2439 +-110.731 52.7847 28.7824 +-110.545 51.6046 28.1389 +-110.965 50.7152 27.6539 +-111.554 49.9029 27.211 +-111.688 48.8897 26.6585 +-111.99 47.9551 26.1489 +-113.365 47.4733 25.8862 +-113.742 46.5658 25.3913 +-114.382 45.7654 24.9549 +-113.919 44.5302 24.2814 +-114.541 43.7258 23.8427 +-115.431 43.018 23.4568 +-116.963 42.5352 23.1935 +-118.958 42.1965 23.0089 +-122.908 42.5063 23.1778 +-130.608 44.0172 24.0016 +-161.201 52.9153 28.8536 +-162.379 51.8884 28.2937 +-161.757 50.2907 27.4225 +-162.818 49.2209 26.8391 +-165.008 48.4731 26.4313 +-163.867 46.7458 25.4895 +-164.23 45.4621 24.7895 +-3133.33 841.047 458.605 +-874.156 227.336 123.962 +-856.196 215.548 117.534 +-384.585 93.6389 51.0593 +-380.382 89.4844 48.7939 +-382.225 86.7864 47.3228 +-382.102 83.6422 45.6083 +-381.363 80.3837 43.8315 +-383.122 77.6563 42.3443 +-409.556 79.7156 43.4673 +-406.029 75.7716 41.3166 +-405.885 72.5004 39.5329 +-404.725 69.0696 37.6622 +-405.003 65.9022 35.9351 +-405.15 62.7205 34.2002 +-404.377 59.4111 32.3956 +-401.001 55.7614 30.4055 +-404.804 53.1152 28.9626 +-403.93 49.8407 27.1771 +-405.699 46.893 25.5698 +-406.745 43.8472 23.9089 +-403.092 40.3216 21.9865 +-403.279 37.2135 20.2917 +-405.027 34.2401 18.6704 +-405.352 31.1357 16.9777 +-405.247 28.0013 15.2685 +-404.612 24.8403 13.5449 +-404.045 21.6965 11.8306 +-405.044 18.6369 10.1623 +-406.713 15.5904 8.50111 +-148.21 4.54397 2.47773 +-145.95 3.35542 1.82964 +-145.878 2.23556 1.219 +-146.794 1.12472 0.613286 +120.3 5.77316e-15 5.68434e-14 +120.295 0.926179 0.494239 +120.182 1.85075 0.987621 +119.959 2.77133 1.47887 +119.827 3.6917 1.97001 +120.585 4.64489 2.47866 +120.535 5.57309 2.97398 +121.174 6.53856 3.48919 +120.805 7.45276 3.97703 +120.627 8.37562 4.4695 +121.337 9.36554 4.99775 +121.14 10.2908 5.49152 +121.133 11.2324 5.99395 +121.613 12.2245 6.52336 +120.793 13.085 6.98257 +121.254 14.0836 7.51546 +121.011 15.0043 8.00678 +120.66 15.9092 8.48967 +121.288 16.9481 9.04403 +120.82 17.8375 9.51864 +120.442 18.7364 9.99833 +121.039 19.7915 10.5614 +120.74 20.7058 11.0493 +120.433 21.617 11.5355 +120.997 22.6902 12.1082 +120.768 23.6208 12.6048 +120.53 24.5497 13.1005 +121.06 25.6414 13.6831 +120.414 26.4872 14.1344 +120.825 27.5678 14.7111 +120.741 28.5427 15.2313 +121.321 29.6833 15.84 +121.023 30.6162 16.3378 +121.482 31.7473 16.9414 +121.068 32.6556 17.4261 +120.836 33.613 17.9369 +121.26 34.7601 18.5491 +121.67 35.9163 19.1661 +121.215 36.8229 19.6499 +121.224 37.8726 20.21 +120.657 38.7441 20.6751 +120.081 39.6097 21.137 +120.339 40.754 21.7476 +120.768 41.97 22.3965 +120.256 42.8651 22.8742 +120.566 44.0594 23.5115 +120.31 45.0549 24.0428 +120.869 46.3664 24.7426 +120.223 47.2234 25.1999 +120.57 48.4765 25.8686 +120.086 49.4029 26.363 +120.405 50.6674 27.0378 +119.899 51.5925 27.5314 +120.1 52.8285 28.191 +120.197 54.0315 28.8329 +119.569 54.9141 29.3039 +119.816 56.2054 29.993 +120.046 57.5045 30.6863 +120.085 58.726 31.3381 +119.413 59.6048 31.807 +119.512 60.8748 32.4847 +119.766 62.2403 33.2134 +119.746 63.4781 33.874 +119.114 64.3976 34.3646 +119.829 66.0603 35.2519 +119.424 67.1225 35.8187 +118.923 68.1355 36.3593 +113.242 66.1268 35.2874 +116.148 69.1175 36.8833 +119.251 72.3078 38.5857 +119.187 73.628 39.2902 +119.268 75.0551 40.0518 +118.845 76.1779 40.651 +118.89 77.6148 41.4177 +119.795 79.6422 42.4996 +119.796 81.0985 43.2767 +117.414 80.9314 43.1876 +116.843 81.997 43.7562 +112.764 80.5615 42.9902 +111.963 81.4266 43.4518 +109.085 80.7544 43.0931 +108.206 81.5339 43.5091 +104.603 80.2222 42.8091 +103.805 81.0245 43.2372 +100.622 79.9315 42.654 +100.491 81.2395 43.352 +97.6357 80.3255 42.8642 +96.1846 80.5275 42.972 +94.7371 80.7134 43.0712 +94.2204 81.687 43.5908 +94.823 83.657 44.642 +94.6928 85.0131 45.3657 +95.5155 87.262 46.5658 +95.819 89.0819 47.5369 +95.548 90.3973 48.2389 +95.3258 91.7798 48.9766 +94.9496 93.0343 49.6461 +95.1522 94.8853 50.6338 +94.9317 96.3463 51.4134 +95.0142 98.147 52.3743 +95.1968 100.091 53.412 +94.5212 101.161 53.9826 +94.7757 103.256 55.1007 +94.56 104.879 55.967 +94.5656 106.785 56.9839 +94.2363 108.349 57.8186 +94.2442 110.339 58.8802 +93.9225 111.982 59.7573 +93.8105 113.914 60.7884 +94.0739 116.356 62.0915 +94.0665 118.521 63.2468 +93.9668 120.623 64.3683 +93.6648 122.512 65.3762 +93.5533 124.7 66.5438 +93.2422 126.673 67.5965 +93.7588 129.842 69.2876 +93.4778 131.98 70.4288 +93.7885 135.026 72.0544 +93.3764 137.104 73.1632 +93.5901 140.174 74.8015 +93.15 142.342 75.9583 +93.5112 145.818 77.8132 +93.4713 148.77 79.3885 +93.3323 151.655 80.9279 +93.1432 154.549 82.4721 +93.3194 158.155 84.3968 +93.0227 161.069 85.9513 +92.9876 164.542 87.8048 +92.584 167.472 89.3683 +92.8612 171.762 91.6578 +92.9338 175.828 93.8277 +92.6425 179.347 95.7052 +92.3292 182.955 97.6307 +90.6357 183.902 98.1359 +89.6337 186.298 99.4146 +85.1471 181.357 96.7777 +92.378 201.72 107.644 +91.8452 205.707 109.772 +90.022 206.899 110.408 +87.2717 205.932 109.892 +85.1288 206.347 110.113 +82.5838 205.748 109.794 +80.6432 206.626 110.262 +78.1839 206.151 110.009 +76.1418 206.745 110.326 +73.4925 205.64 109.736 +71.5726 206.536 110.214 +69.0441 205.641 109.737 +67.228 206.844 110.378 +64.7251 205.908 109.879 +62.6083 206.142 110.004 +60.1663 205.25 109.528 +58.3274 206.39 110.136 +55.8401 205.202 109.502 +53.8083 205.624 109.727 +51.5559 205.169 109.485 +49.5869 205.817 109.83 +47.4296 205.672 109.753 +45.4125 206.116 109.99 +43.1898 205.59 109.709 +41.0331 205.307 109.558 +39.0338 205.789 109.816 +36.9655 205.908 109.879 +34.8239 205.573 109.7 +32.7613 205.659 109.746 +30.6214 205.204 109.503 +28.5784 205.344 109.578 +26.5348 205.468 109.644 +24.5015 205.665 109.749 +22.38 205.055 109.424 +20.4119 205.835 109.84 +18.2182 204.225 108.981 +16.2533 205.062 109.427 +14.2426 205.444 109.631 +12.21 205.545 109.685 +10.1328 204.75 109.261 +8.13507 205.526 109.675 +6.07567 204.698 109.233 +4.06816 205.619 109.725 +2.01932 204.143 108.937 +1.4766e-14 205.21 109.507 +-2.02107 204.32 109.031 +-4.05594 205.003 109.396 +-6.08352 204.963 109.375 +-8.10715 204.82 109.298 +-10.1371 204.838 109.308 +-12.1681 204.84 109.309 +-14.1999 204.827 109.302 +-16.2881 205.502 109.662 +-18.2417 204.489 109.122 +-20.3334 205.044 109.418 +-22.2746 204.089 108.909 +-24.4074 204.875 109.328 +-26.3537 204.066 108.896 +-28.4565 204.469 109.111 +-30.3865 203.629 108.663 +-32.6361 204.873 109.327 +-34.4987 203.654 108.676 +-36.637 204.078 108.902 +-38.6707 203.875 108.794 +-40.8594 204.438 109.095 +-42.6796 203.161 108.413 +-44.9164 203.864 108.789 +-46.9511 203.597 108.646 +-49.1503 204.005 108.863 +-50.9499 202.757 108.198 +-53.4034 204.076 108.902 +-55.4666 203.829 108.77 +-57.65 203.993 108.857 +-59.6405 203.457 108.571 +-61.8578 203.671 108.685 +-63.9501 203.443 108.564 +-66.3183 204.045 108.885 +-68.1921 203.104 108.383 +-70.6955 204.005 108.863 +-72.7407 203.537 108.614 +-74.9366 203.473 108.58 +-77.0416 203.139 108.402 +-79.7316 204.29 109.015 +-81.6158 203.336 108.507 +-84.1712 204.026 108.875 +-86.186 203.37 108.525 +-88.481 203.358 108.518 +-90.8557 203.49 108.589 +-93.5393 204.255 108.997 +-95.2116 202.793 108.217 +-97.8391 203.352 108.515 +-100.126 203.158 108.411 +-102.864 203.83 108.77 +-105.083 203.431 108.557 +-107.472 203.334 108.506 +-109.737 202.977 108.315 +-112.135 202.838 108.241 +-114.539 202.678 108.155 +-117.357 203.203 108.435 +-119.408 202.37 107.991 +-122.25 202.845 108.245 +-124.682 202.594 108.111 +-127.408 202.784 108.212 +-129.409 201.795 107.684 +-133.5 204 108.861 +-137.746 206.309 110.093 +-141.12 207.207 110.572 +-143.53 206.639 110.269 +-143.502 202.608 108.118 +-143.513 198.743 106.056 +-144.003 195.632 104.396 +-146.043 194.664 103.879 +-150.479 196.823 105.031 +-161.822 207.727 110.85 +-167.255 210.737 112.456 +-177.056 218.994 116.862 +-591.9 718.746 383.546 +-596.786 711.538 379.699 +-598.866 701.138 374.15 +-603.526 693.912 370.293 +-605.38 683.607 364.795 +-610.438 677.057 361.299 +-611.888 666.64 355.74 +-617.314 660.679 352.559 +-618.94 650.764 347.268 +-623.535 644.096 343.71 +-625.093 634.41 338.541 +-630.483 628.714 335.502 +-631.927 619.181 330.415 +-637.419 613.707 327.494 +-638.691 604.26 322.452 +-644.851 599.512 319.919 +-646.241 590.399 315.056 +-651.425 584.835 312.086 +-652.801 575.929 307.334 +-658.045 570.511 304.443 +-659.922 562.236 300.027 +-665.241 556.952 297.207 +-666.629 548.44 292.665 +-672.028 543.286 289.914 +-673.438 534.963 285.473 +-700.274 546.594 291.68 +-701.276 537.825 287 +-707.102 532.806 284.322 +-709.357 525.13 280.226 +-714.37 519.536 277.241 +-716.373 511.797 273.111 +-724.069 508.129 271.154 +-723.079 498.407 265.966 +-114.798 77.7149 41.4711 +-114.045 75.8193 40.4596 +-112.058 73.1541 39.0374 +-111.806 71.6663 38.2434 +-110.883 69.7781 37.2358 +-110.258 68.1122 36.3468 +-110.021 66.711 35.5991 +-109.93 65.4175 34.9088 +-110.156 64.3252 34.326 +-110.034 63.0421 33.6413 +-109.978 61.8134 32.9856 +-110.331 60.8241 32.4577 +-109.991 59.4652 31.7325 +-109.889 58.2527 31.0855 +-109.858 57.091 30.4655 +-110.158 56.1107 29.9425 +-110.709 55.2605 29.4887 +-110.027 53.8072 28.7133 +-110.731 53.0422 28.305 +-111.075 52.1049 27.8048 +-110.699 50.8403 27.13 +-111.465 50.1063 26.7383 +-111.509 49.0494 26.1743 +-112.619 48.4598 25.8597 +-113.274 47.6668 25.4365 +-113.56 46.7184 24.9304 +-114.2 45.9155 24.502 +-114.467 44.9627 23.9936 +-116.467 44.6778 23.8415 +-116.996 43.8139 23.3805 +-119.458 43.6543 23.2953 +-119.792 42.6999 22.786 +-147.936 51.4116 27.4349 +-161.696 54.7602 29.2218 +-161.67 53.3279 28.4575 +-161.063 51.7191 27.599 +-160.815 50.2416 26.8105 +-161.967 49.2025 26.256 +-163.586 48.2897 25.7689 +-163.106 46.7557 24.9503 +-883.905 245.876 131.207 +-887.929 239.5 127.805 +-894.771 233.832 124.78 +-858.311 217.135 115.87 +-382.369 93.5531 49.9229 +-380.768 90.0118 48.0332 +-383.677 87.5411 46.7147 +-381.423 83.9009 44.7722 +-383.114 81.1466 43.3024 +-909.964 185.343 98.9052 +-405.553 79.3216 42.3285 +-404.855 75.9211 40.5139 +-405.493 72.7838 38.8397 +-405.608 69.5581 37.1184 +-405.396 66.288 35.3734 +-404.165 62.8733 33.5512 +-403.292 59.5409 31.7729 +-401.199 56.061 29.9159 +-405.299 53.4395 28.517 +-405.119 50.2312 26.8049 +-404.41 46.9721 25.0658 +-403.371 43.6955 23.3173 +-404.98 40.7081 21.7232 +-405.964 37.644 20.088 +-405.425 34.441 18.3788 +-404.754 31.2415 16.6714 +-404.649 28.0964 14.9931 +-405.31 25.0046 13.3433 +-403.746 21.7862 11.6258 +-405.144 18.7324 9.99621 +-404.415 15.5779 8.31284 +-150.109 4.62463 2.46785 +-148.149 3.42259 1.8264 +-146.278 2.25262 1.20207 +-146.694 1.12943 0.6027 +120.4 4.44089e-15 5.68434e-14 +120.295 0.9306 0.485863 +120.182 1.85959 0.970884 +120.159 2.7892 1.45623 +120.726 3.73717 1.95116 +120.685 4.67093 2.43867 +120.535 5.59969 2.92358 +120.375 6.52648 3.40745 +120.805 7.48834 3.90963 +120.727 8.42256 4.39739 +120.54 9.34838 4.88075 +120.343 10.2721 5.36301 +121.133 11.286 5.89237 +121.613 12.2828 6.41281 +120.793 13.1475 6.86424 +121.254 14.1508 7.3881 +121.011 15.0759 7.87109 +120.66 15.9852 8.3458 +121.189 17.0151 8.8835 +120.82 17.9226 9.35733 +120.442 18.8258 9.82889 +120.94 19.8699 10.374 +120.74 20.8047 10.862 +120.433 21.7202 11.34 +120.997 22.7985 11.903 +120.865 23.7527 12.4012 +120.432 24.647 12.8681 +120.963 25.7432 13.4404 +121.384 26.828 14.0068 +120.922 27.7217 14.4734 +120.548 28.633 14.9492 +121.128 29.7777 15.5468 +120.927 30.738 16.0482 +120.524 31.6471 16.5228 +121.259 32.8633 17.1578 +120.741 33.7468 17.6191 +121.165 34.8987 18.2205 +120.816 35.8346 18.7091 +121.026 36.941 19.2867 +121.224 38.0534 19.8675 +120.469 38.8684 20.293 +120.737 40.0161 20.8923 +120.152 40.8851 21.346 +120.675 42.1378 22 +120.348 43.1029 22.5039 +120.751 44.3375 23.1485 +120.494 45.3392 23.6715 +120.96 46.6231 24.3418 +120.223 47.4488 24.7729 +120.479 48.6712 25.411 +120.901 49.9759 26.0923 +120.405 50.9093 26.5796 +119.809 51.7999 27.0445 +120.011 53.0411 27.6926 +120.286 54.3297 28.3653 +119.569 55.1762 28.8073 +119.816 56.4736 29.4847 +119.871 57.6945 30.1221 +120.173 59.0492 30.8294 +120.196 60.2822 31.4731 +119.598 61.2097 31.9574 +119.68 62.4925 32.6271 +119.746 63.7811 33.2999 +119.029 64.6587 33.7581 +119.999 66.4696 34.7035 +119.256 67.3477 35.162 +118.42 68.171 35.5919 +113.575 66.6382 34.7916 +117.64 70.3398 36.7241 +119.251 72.653 37.9319 +118.777 73.7252 38.4917 +119.349 75.4649 39.3999 +118.602 76.3852 39.8804 +118.649 77.827 40.6332 +118.997 79.4888 41.5008 +119.241 81.1078 42.3461 +118.832 82.3001 42.9686 +118.722 83.7128 43.7062 +115.872 83.1776 43.4267 +114.509 83.676 43.687 +111.076 82.6213 43.1363 +110.943 83.9956 43.8538 +107.395 82.7569 43.2071 +106.576 83.5845 43.6392 +103 82.2112 42.9222 +102.998 83.6636 43.6805 +99.6104 82.3412 42.99 +98.8685 83.1696 43.4225 +95.6722 81.8992 42.7593 +94.577 82.3877 43.0143 +94.6816 83.931 43.8201 +94.5527 85.2925 44.5309 +94.1957 86.467 45.1441 +94.6488 88.4141 46.1607 +95.2752 90.5691 47.2858 +94.8529 91.7605 47.9078 +95.0165 93.5449 48.8395 +95.1522 95.3382 49.7757 +94.8661 96.7397 50.5075 +95.0142 98.6155 51.4868 +95.1968 100.569 52.5068 +94.6484 101.781 53.1395 +94.7757 103.749 54.1669 +93.9997 104.756 54.6927 +94.504 107.226 55.9821 +94.0536 108.655 56.7286 +93.9433 110.512 57.6978 +94.0415 112.66 58.8192 +93.9281 114.602 59.8332 +94.1319 116.984 61.0768 +94.1239 119.16 62.213 +93.9102 121.125 63.239 +93.6089 123.023 64.2299 +93.4981 125.221 65.3772 +93.4056 127.501 66.5676 +93.8125 130.536 68.1523 +93.4778 132.61 69.2353 +93.4227 135.142 70.5571 +93.3764 137.759 71.9233 +93.4886 140.691 73.4543 +93.05 142.867 74.5905 +93.1173 145.896 76.1719 +93.4713 149.48 78.0431 +93.3323 152.379 79.5565 +93.0962 155.209 81.0338 +93.2732 158.831 82.9253 +93.4766 162.627 84.9071 +92.9876 165.327 86.3168 +92.9785 168.988 88.2283 +92.8612 172.582 90.1045 +92.5534 175.944 91.86 +92.6839 180.284 94.1255 +91.9225 183.018 95.5532 +90.7154 184.942 96.5575 +89.1648 186.208 97.2184 +85.3001 182.55 95.3089 +92.378 202.683 105.82 +91.1489 205.121 107.093 +89.2695 206.15 107.63 +86.9565 206.168 107.64 +84.7184 206.333 107.726 +82.3168 206.061 107.584 +80.2526 206.606 107.868 +77.6127 205.622 107.355 +75.6165 206.299 107.708 +73.2219 205.861 107.48 +71.0463 205.996 107.55 +68.8169 205.943 107.522 +66.7318 206.297 107.707 +64.2441 205.353 107.214 +62.1942 205.757 107.425 +59.9159 205.372 107.224 +57.8677 205.742 107.417 +55.5133 204.975 107.017 +53.6283 205.915 107.507 +51.2529 204.937 106.997 +49.4414 206.192 107.652 +47.0708 205.09 107.077 +45.0882 205.621 107.354 +42.8618 205.003 107.032 +40.9115 205.676 107.383 +38.7202 205.111 107.088 +36.7152 205.489 107.285 +34.5578 204.977 107.018 +32.6639 206.026 107.566 +30.4126 204.777 106.913 +28.4809 205.62 107.354 +26.3311 204.864 106.959 +24.3342 205.236 107.153 +22.217 204.534 106.787 +20.2724 205.405 107.241 +18.077 203.61 106.304 +16.1975 205.333 107.204 +14.1327 204.831 106.942 +12.1524 205.553 107.318 +10.0455 203.956 106.485 +8.07574 205.001 107.03 +6.04688 204.701 106.874 +4.035 204.917 106.987 +2.01147 204.32 106.675 +1.38778e-14 205.392 107.234 +-2.01234 204.409 106.721 +-4.04023 205.183 107.125 +-6.04164 204.524 106.781 +-8.08272 205.178 107.123 +-10.0761 204.576 106.808 +-12.1262 205.11 107.087 +-14.0961 204.3 106.664 +-16.1556 204.803 106.927 +-18.0927 203.786 106.396 +-20.1678 204.345 106.688 +-22.2266 204.622 106.833 +-24.2192 204.267 106.647 +-26.2405 204.159 106.591 +-28.2493 203.948 106.481 +-30.256 203.722 106.363 +-32.2742 203.568 106.282 +-34.3509 203.749 106.377 +-36.4962 204.264 106.646 +-38.3736 203.274 106.129 +-40.5121 203.668 106.335 +-42.388 202.737 105.848 +-44.7256 203.967 106.49 +-46.5923 203.005 105.988 +-48.7761 203.417 106.204 +-50.7334 202.86 105.912 +-53.1559 204.101 106.56 +-54.953 202.906 105.936 +-57.2145 203.419 106.204 +-59.2149 202.969 105.969 +-61.4954 203.445 106.218 +-63.4424 202.791 105.876 +-65.9049 203.741 106.372 +-67.7377 202.714 105.836 +-70.1692 203.453 106.222 +-72.1393 202.818 105.891 +-74.6894 203.769 106.387 +-76.4704 202.596 105.775 +-79.1131 203.673 106.337 +-81.1151 203.053 106.013 +-83.6239 203.667 106.334 +-85.6607 203.096 106.036 +-87.9077 203.004 105.988 +-90.196 202.977 105.974 +-92.865 203.751 106.378 +-94.9055 203.106 106.041 +-97.3702 203.344 106.165 +-99.6474 203.152 106.065 +-102.213 203.507 106.25 +-104.047 202.386 105.665 +-107.176 203.743 106.373 +-109.048 202.666 105.811 +-111.697 203.01 105.991 +-113.691 202.137 105.535 +-116.539 202.751 105.855 +-118.993 202.629 105.792 +-121.405 202.404 105.675 +-123.727 202.003 105.465 +-126.535 202.356 105.65 +-129.064 202.218 105.577 +-131.45 201.826 105.373 +-136.782 205.843 107.47 +-140.245 206.905 108.024 +-142.851 206.643 107.888 +-143.661 203.801 106.404 +-143.62 199.842 104.337 +-143.295 195.6 102.122 +-144.883 194.041 101.308 +-149.36 196.293 102.484 +-167.486 216.024 112.785 +-172.474 218.351 114 +-176.185 218.957 114.317 +-595.368 726.408 379.255 +-601.128 720.136 375.981 +-601.875 708.025 369.657 +-607.666 702.006 366.515 +-608.766 690.712 360.618 +-614.671 685.005 357.639 +-615.916 674.231 352.014 +-621.13 667.936 348.727 +-622.604 657.742 343.405 +-628.081 651.889 340.349 +-629.292 641.72 335.04 +-635.254 636.496 332.312 +-636.009 626.155 326.914 +-641.54 620.624 324.026 +-642.579 610.839 318.917 +-648.568 605.846 316.31 +-649.645 596.342 311.348 +-655.771 591.546 308.844 +-657.397 582.753 304.253 +-662.324 576.962 301.23 +-663.663 568.122 296.614 +-669.013 562.783 293.827 +-670.724 554.443 289.473 +-691.566 561.75 293.288 +-699.894 558.632 291.66 +-709.261 556.251 290.417 +-705.653 543.765 283.898 +-711.588 538.746 281.277 +-713.111 530.429 276.935 +-718.46 525.005 274.103 +-719.793 516.694 269.764 +-115.278 81.2847 42.4385 +-115.05 79.6804 41.6009 +-112.974 76.8446 40.1203 +-112.528 75.1676 39.2447 +-111.415 73.0815 38.1556 +-111.321 71.6959 37.4321 +-110.801 70.0598 36.578 +-110.176 68.3865 35.7043 +-110.186 67.1299 35.0483 +-110.096 65.8289 34.369 +-110.073 64.5833 33.7187 +-109.363 62.9568 32.8695 +-109.978 62.1085 32.4266 +-109.907 60.8795 31.785 +-110.076 59.7955 31.219 +-109.889 58.5308 30.5587 +-110.719 57.8134 30.1842 +-110.591 56.6001 29.5507 +-110.622 55.4806 28.9662 +-110.639 54.3649 28.3837 +-110.907 53.38 27.8695 +-111.781 52.6865 27.5075 +-112.118 51.7379 27.0122 +-112 50.587 26.4113 +-112.672 49.7978 25.9992 +-112.978 48.8466 25.5026 +-113.635 48.047 25.0852 +-114.104 47.1661 24.6253 +-115.292 46.5758 24.317 +-115.472 45.574 23.794 +-117.842 45.4213 23.7143 +-118.101 44.4387 23.2013 +-122.137 44.8464 23.4141 +-122.203 43.767 22.8506 +-159.008 55.5232 28.9885 +-159.922 54.418 28.4115 +-161.576 53.5515 27.959 +-161.909 52.2389 27.2737 +-163.831 51.4282 26.8505 +-162.629 49.6394 25.9166 +-3107.18 921.603 481.166 +-3116.14 897.527 468.596 +-888.101 248.222 129.596 +-891.372 241.577 126.126 +-899.661 236.233 123.336 +-3149.57 800.58 417.98 +-381.309 93.7391 48.9408 +-382.12 90.7632 47.3872 +-382.709 87.7371 45.8072 +-380.938 84.1942 43.9575 +-911.305 193.943 101.257 +-912.887 186.827 97.5415 +-405.553 79.7003 41.6112 +-405.442 76.3942 39.8851 +-404.905 73.0251 38.1261 +-405.608 69.8901 36.4894 +-404.806 66.5075 34.7233 +-405.445 63.3735 33.0871 +-404.476 60.0006 31.3261 +-401.397 56.3564 29.4235 +-405.595 53.7339 28.0543 +-403.93 50.3229 26.2734 +-405.303 47.3004 24.6954 +-404.562 44.0337 22.9898 +-403.092 40.7118 21.2555 +-404.77 37.7125 19.6896 +-405.923 34.6479 18.0895 +-404.754 31.3906 16.3889 +-404.748 28.2375 14.7427 +-403.116 24.9879 13.0461 +-404.644 21.939 11.4543 +-404.445 18.7894 9.80987 +-404.615 15.66 8.17604 +-148.509 4.59722 2.40019 +-150.348 3.48998 1.82211 +-145.978 2.25873 1.17928 +-146.594 1.13405 0.592084 +119.5 2.66454e-15 -1.13687e-13 +120.295 0.934946 0.477448 +120.182 1.86827 0.954068 +119.959 2.79756 1.42863 +121.026 3.76394 1.92213 +120.685 4.69274 2.39644 +120.535 5.62584 2.87294 +120.375 6.55695 3.34843 +120.805 7.5233 3.84192 +120.627 8.4549 4.31766 +120.54 9.39203 4.79622 +121.239 10.3968 5.30932 +121.033 11.3293 5.78554 +120.719 12.2494 6.2554 +120.793 13.2088 6.74535 +121.254 14.2169 7.26014 +121.011 15.1463 7.73477 +120.66 16.0598 8.20125 +121.189 17.0945 8.72964 +120.82 18.0063 9.19526 +121.23 19.0374 9.72183 +120.94 19.9627 10.1943 +120.74 20.9018 10.6739 +121.413 21.9992 11.2343 +121.095 22.9234 11.7063 +120.865 23.8636 12.1864 +120.53 24.782 12.6554 +121.157 25.905 13.2289 +120.414 26.7379 13.6542 +121.309 27.9403 14.2682 +121.513 28.9972 14.808 +121.032 29.8929 15.2654 +120.734 30.8325 15.7452 +121.387 32.0225 16.3529 +121.164 32.9907 16.8473 +120.836 33.9311 17.3276 +121.165 35.0616 17.9049 +120.722 35.9737 18.3706 +121.121 37.1425 18.9675 +121.224 38.2311 19.5234 +120.563 39.0803 19.9571 +120.55 40.1406 20.4986 +120.245 41.1079 20.9925 +120.675 42.3346 21.619 +120.163 43.2375 22.08 +120.751 44.5446 22.7475 +120.494 45.551 23.2615 +119.86 46.4146 23.7025 +120.405 47.7429 24.3808 +119.751 48.6029 24.82 +119.995 49.8329 25.4481 +120.224 51.0703 26.08 +119.899 52.0808 26.5961 +119.921 53.2491 27.1927 +120.286 54.5834 27.874 +120.367 55.804 28.4974 +120.611 57.1136 29.1662 +119.959 58.0064 29.6221 +120.173 59.325 30.2954 +119.5 60.2129 30.7489 +119.512 61.451 31.3811 +119.766 62.8295 32.0851 +119.918 64.1707 32.77 +119.881 65.426 33.411 +120.084 66.8272 34.1266 +119.171 67.6143 34.5285 +116.156 67.1797 34.3066 +114.743 67.6375 34.5404 +118.718 71.3156 36.4187 +119.251 72.9922 37.2749 +119.105 74.2738 37.9293 +119.105 75.662 38.6383 +119.168 77.1084 39.3769 +119.212 78.5613 40.1188 +119.236 80.0208 40.8641 +119.241 81.4865 41.6126 +119.62 83.2326 42.5043 +119.269 84.4917 43.1473 +118.204 85.2473 43.5332 +117.441 86.2194 44.0296 +114.064 85.2397 43.5293 +113.833 86.5857 44.2166 +110.112 85.2468 43.5329 +109.273 86.0993 43.9683 +105.824 84.8596 43.3352 +105.578 86.1601 43.9993 +102.097 84.7908 43.3 +101.262 85.581 43.7036 +97.9741 84.2613 43.0297 +97.7866 85.5814 43.7038 +94.6816 84.3229 43.0611 +94.4125 85.5637 43.6947 +94.3346 86.9988 44.4276 +94.7176 88.8915 45.3942 +95.4116 91.122 46.5332 +94.988 92.3199 47.1449 +94.5482 93.5177 47.7566 +94.6884 95.3167 48.6753 +94.8661 97.1914 49.6327 +95.0142 99.0759 50.595 +94.6826 100.493 51.3186 +94.7757 102.393 52.2891 +94.7757 104.233 53.2288 +94.6222 105.942 54.1011 +94.6272 107.866 55.0839 +93.9928 109.092 55.7101 +94.2442 111.383 56.8799 +94.0415 113.186 57.8004 +93.9869 115.209 58.8337 +93.7835 117.095 59.797 +94.1813 119.789 61.1727 +93.9668 121.765 62.1815 +93.6089 123.598 63.1175 +93.6085 125.954 64.3208 +93.4056 128.096 65.4146 +93.5976 130.845 66.8186 +93.4248 133.154 67.9974 +93.3705 135.697 69.2963 +93.3764 138.402 70.6776 +93.5901 141.501 72.2603 +93.55 144.306 73.6924 +93.0681 146.5 74.8131 +93.4713 150.178 76.6914 +93.3323 153.09 78.1786 +93.1432 156.012 79.6703 +92.9038 158.942 81.1666 +93.0227 162.593 83.0313 +92.9876 166.099 84.8218 +92.9785 169.778 86.7001 +92.8182 173.307 88.5025 +92.5957 176.847 90.3103 +92.5181 180.801 92.3296 +91.5971 183.222 93.5658 +90.3964 185.153 94.5518 +88.5787 185.847 94.9065 +88.8208 190.972 97.5234 +92.0408 202.885 103.607 +90.7457 205.167 104.772 +88.5527 205.449 104.917 +86.2911 205.546 104.966 +84.4106 206.543 105.475 +81.6492 205.344 104.863 +79.7316 206.223 105.312 +77.0733 205.147 104.762 +75.0293 205.653 105.021 +72.8009 205.634 105.011 +70.8124 206.277 105.339 +68.2489 205.196 104.787 +66.2908 205.89 105.142 +63.9769 205.454 104.919 +61.9354 205.857 105.125 +59.4653 204.779 104.574 +57.5048 205.406 104.894 +55.2799 205.066 104.721 +53.2684 205.488 104.936 +51.0365 205.025 104.7 +49.0464 205.5 104.943 +46.6521 204.215 104.286 +44.9546 205.969 105.182 +42.6796 205.084 104.73 +40.5468 204.795 104.582 +38.4396 204.575 104.47 +36.4649 205.041 104.708 +34.3952 204.965 104.669 +32.4273 205.489 104.937 +30.256 204.674 104.521 +28.2493 204.901 104.637 +26.2405 205.113 104.745 +24.2297 205.309 104.845 +22.1308 204.691 104.53 +20.0981 204.589 104.477 +18.0377 204.116 104.236 +16.0858 204.87 104.621 +14.0167 204.099 104.227 +12.053 204.822 104.596 +10.015 204.285 104.322 +8.04433 205.157 104.767 +5.99714 203.965 104.159 +4.01754 204.984 104.679 +2.00449 204.561 104.463 +1.54321e-14 204.48 104.422 +-1.99663 203.76 104.054 +-4.01056 204.627 104.497 +-5.9919 203.788 104.068 +-8.0548 205.424 104.903 +-10.0281 204.553 104.459 +-12.0216 204.289 104.324 +-14.0351 204.366 104.363 +-16.051 204.426 104.394 +-18.0299 204.028 104.191 +-20.1155 204.767 104.568 +-22.0445 203.894 104.122 +-24.1565 204.689 104.528 +-26.0594 203.697 104.022 +-28.1396 204.105 104.23 +-30.0471 203.261 103.799 +-32.1212 203.549 103.946 +-34.1292 203.38 103.86 +-36.2146 203.634 103.99 +-38.0435 202.467 103.394 +-40.2169 203.128 103.731 +-42.1693 202.632 103.478 +-44.3631 203.259 103.798 +-46.2135 202.296 103.306 +-48.5682 203.496 103.919 +-50.3871 202.416 103.368 +-52.7735 203.578 103.961 +-54.5795 202.468 103.394 +-56.7791 202.813 103.57 +-58.7642 202.364 103.341 +-61.2366 203.535 103.939 +-62.9881 202.279 103.298 +-65.3261 202.894 103.612 +-67.482 202.892 103.61 +-69.9061 203.636 103.991 +-71.7484 202.661 103.493 +-74.1332 203.196 103.766 +-76.1848 202.782 103.555 +-78.4619 202.94 103.635 +-80.5142 202.49 103.405 +-83.0425 203.195 103.766 +-85.3455 203.293 103.816 +-87.621 203.287 103.812 +-89.8661 203.178 103.757 +-92.1907 203.216 103.776 +-94.1784 202.492 103.406 +-96.706 202.9 103.615 +-99.0493 202.876 103.602 +-101.562 203.155 103.745 +-103.715 202.682 103.504 +-106.331 203.08 103.706 +-108.274 202.165 103.239 +-111.039 202.757 103.542 +-112.977 201.806 103.056 +-116.131 202.983 103.657 +-118.115 202.073 103.193 +-120.936 202.563 103.443 +-122.916 201.615 102.959 +-126.147 202.678 103.501 +-128.03 201.534 102.917 +-130.8 201.766 103.036 +-135.411 204.732 104.551 +-139.266 206.42 105.412 +-141.963 206.317 105.36 +-143.502 204.526 104.445 +-143.029 199.948 102.107 +-142.968 196.065 100.124 +-144.939 195.021 99.591 +-147.907 195.289 99.7283 +-152.59 197.73 100.974 +-171.729 218.422 111.541 +-174.734 218.166 111.411 +-599.776 735.204 375.446 +-605.47 728.725 372.137 +-606.75 717.092 366.197 +-611.866 710.159 362.656 +-613.691 699.552 357.24 +-618.904 692.944 353.865 +-620.573 682.501 348.532 +-625.265 675.522 344.968 +-626.718 665.179 339.686 +-632.627 659.673 336.875 +-633.884 649.421 331.639 +-638.965 643.203 328.464 +-640.358 633.382 323.448 +-646.134 627.986 320.693 +-647.08 617.99 315.589 +-652.835 612.68 312.877 +-653.951 603.098 307.983 +-659.836 597.993 305.377 +-661.569 589.189 300.881 +-666.747 583.526 297.989 +-668.554 574.981 293.625 +-673.873 569.518 290.835 +-680.744 565.353 288.708 +-704.911 575.263 293.769 +-706.211 566.307 289.195 +-713.231 561.976 286.984 +-714.484 553.14 282.472 +-716.911 545.311 278.473 +-717.554 536.226 273.834 +-725.25 532.442 271.902 +-116.883 84.2946 43.0466 +-114.026 80.7772 41.2504 +-113.868 79.23 40.4603 +-111.704 76.336 38.9825 +-111.969 75.1434 38.3734 +-111.013 73.1579 37.3595 +-110.35 71.4024 36.463 +-110.801 70.387 35.9444 +-109.439 68.2461 34.8512 +-110.103 67.393 34.4155 +-110.096 66.1362 33.7737 +-110.073 64.8849 33.1347 +-109.614 63.3963 32.3745 +-110.147 62.4941 31.9138 +-109.907 61.1638 31.2345 +-109.82 59.935 30.607 +-110.317 59.0334 30.1465 +-110.116 57.767 29.4998 +-110.678 56.909 29.0617 +-110.361 55.6081 28.3973 +-110.814 54.7051 27.9362 +-111.786 54.0543 27.6038 +-111.428 52.7653 26.9456 +-112.562 52.1852 26.6494 +-112.801 51.1871 26.1397 +-113.388 50.3482 25.7113 +-114.057 49.5431 25.3001 +-114.719 48.7315 24.8857 +-114.467 47.537 24.2757 +-116.384 47.2365 24.1222 +-116.842 46.3301 23.6594 +-118.576 45.9175 23.4487 +-120.034 45.3769 23.1726 +-129.805 47.8846 24.4532 +-840.863 302.562 154.509 +-3048.51 1069.46 546.141 +-160.949 55.0232 28.0987 +-162.7 54.1757 27.6659 +-163.507 53.0006 27.0658 +-164.585 51.9062 26.5069 +-163.197 50.0452 25.5566 +-3107.18 925.906 472.832 +-884.768 256.027 130.745 +-892.011 250.48 127.912 +-896.344 244.058 124.633 +-384.678 101.481 51.823 +-381.525 97.431 49.755 +-381.309 94.1768 48.0932 +-382.796 91.3482 46.6487 +-382.128 88.013 44.9455 +-381.423 84.6951 43.2512 +-941.838 201.377 102.837 +-405.046 83.2814 42.5292 +-405.749 80.111 40.9102 +-404.464 76.5657 39.0997 +-406.375 73.6325 37.6018 +-405.608 70.2165 35.8574 +-406.773 67.1426 34.2877 +-404.461 63.5148 32.435 +-403.785 60.1779 30.731 +-400.903 56.5498 28.8782 +-405.299 53.9453 27.5482 +-405.515 50.7562 25.9196 +-404.708 47.4516 24.2321 +-404.562 44.2393 22.5916 +-405.278 41.1237 21.0006 +-404.671 37.8793 19.3438 +-405.923 34.8097 17.7762 +-405.949 31.6303 16.1526 +-403.153 28.2576 14.4303 +-405.31 25.2413 12.89 +-404.544 22.036 11.2531 +-404.445 18.8771 9.63996 +-404.415 15.7253 8.03043 +-149.009 4.63422 2.36655 +-148.549 3.46431 1.76912 +-144.578 2.24752 1.14774 +-146.594 1.13935 0.581829 +120.4 4.44089e-15 5.68434e-14 +120.295 0.939215 0.468994 +120.182 1.8768 0.937175 +120.159 2.81502 1.40567 +120.127 3.75303 1.87406 +120.685 4.71416 2.354 +120.535 5.65153 2.82207 +120.375 6.5869 3.28914 +120.805 7.55766 3.77389 +120.627 8.49351 4.24121 +120.54 9.43491 4.71129 +121.239 10.4443 5.21531 +120.834 11.3624 5.67376 +120.719 12.3053 6.14463 +121.488 13.3455 6.66402 +121.254 14.2818 7.13158 +121.011 15.2155 7.59781 +120.759 16.1464 8.06265 +121.288 17.1866 8.58208 +120.82 18.0885 9.03244 +121.23 19.1244 9.54969 +120.055 19.9071 9.94054 +120.936 21.0314 10.502 +120.531 21.9391 10.9552 +120.997 23.0095 11.4897 +120.084 23.8178 11.8933 +120.53 24.8952 12.4313 +121.06 26.0023 12.9842 +120.511 26.8816 13.4232 +121.018 28.0006 13.982 +121.031 29.0139 14.488 +120.839 29.9816 14.9712 +120.831 30.9979 15.4787 +121.482 32.1941 16.076 +121.068 33.1152 16.536 +121.408 34.2474 17.1013 +120.879 35.1388 17.5464 +120.722 36.1379 18.0454 +121.215 37.3412 18.6462 +121.035 38.3459 19.1479 +120.281 39.167 19.5579 +120.737 40.3865 20.1669 +120.152 41.2635 20.6048 +120.675 42.5279 21.2362 +120.256 43.4684 21.7058 +120.751 44.748 22.3448 +120.31 45.6891 22.8147 +120.685 46.9477 23.4432 +120.223 47.8881 23.9127 +119.933 48.8991 24.4176 +120.086 50.0982 25.0164 +120.315 51.342 25.6375 +120.528 52.5932 26.2622 +120.011 53.5321 26.7311 +120.197 54.792 27.3602 +120.367 56.0588 27.9928 +119.728 56.9544 28.44 +119.871 58.2286 29.0762 +120.26 59.6393 29.7807 +120.37 60.9284 30.4244 +119.771 61.8658 30.8925 +119.939 63.2072 31.5623 +119.746 64.3716 32.1437 +119.881 65.7247 32.8194 +119.151 66.6108 33.2619 +118.834 67.7307 33.8211 +113.975 66.2196 33.0665 +117.578 69.6253 34.7672 +118.718 71.6412 35.7738 +119.416 73.4269 36.6655 +119.023 74.5617 37.2321 +118.942 75.9037 37.9022 +119.087 77.4078 38.6534 +119.051 78.8136 39.3553 +119.077 80.2785 40.0868 +119.162 81.8042 40.8487 +119.226 83.3373 41.6142 +119.348 84.9333 42.4112 +119.292 86.4249 43.156 +118.599 87.4667 43.6762 +116.592 87.5267 43.7062 +115.734 88.4336 44.1591 +112.905 87.8077 43.8465 +111.969 88.6266 44.2554 +108.425 87.3423 43.6141 +107.569 88.1855 44.0351 +104.73 87.3745 43.6302 +103.874 88.1889 44.0368 +100.42 86.7591 43.3229 +99.6411 87.6025 43.744 +96.9443 86.7323 43.3095 +95.604 87.0392 43.4628 +94.3346 87.3961 43.641 +94.1669 88.7783 44.3311 +94.3886 90.5567 45.2192 +94.0422 91.8181 45.8491 +95.1504 94.5433 47.2099 +95.4835 96.5563 48.2151 +95.063 97.8374 48.8548 +95.2091 99.7332 49.8015 +94.7469 101.021 50.4443 +94.7757 102.861 51.3633 +94.3981 104.292 52.0781 +94.4355 106.216 53.0386 +94.5656 108.288 54.0732 +93.871 109.448 54.6527 +94.1239 111.749 55.8017 +94.0415 113.702 56.7769 +94.3395 116.169 58.0086 +93.8416 117.702 58.7743 +94.1239 120.263 60.0529 +93.9668 122.321 61.0804 +93.7766 124.385 62.1111 +93.6637 126.603 63.219 +93.2967 128.531 64.1813 +93.7051 131.593 65.7105 +93.3718 133.686 66.7555 +93.7885 136.927 68.374 +93.3764 139.034 69.4261 +93.5393 142.07 70.9424 +93.05 144.19 72.0007 +93.0681 147.169 73.4884 +93.5198 150.942 75.3723 +93.3323 153.79 76.7943 +93.1432 156.724 78.2596 +93.2732 160.302 80.0462 +93.0227 163.336 81.5611 +92.9876 166.858 83.3199 +92.584 169.829 84.8036 +92.8612 174.18 86.9761 +92.5534 177.573 88.6706 +92.3107 181.22 90.4915 +90.7836 182.424 91.0928 +90.0774 185.342 92.5497 +88.1489 185.791 92.7739 +90.1602 194.737 97.2414 +91.9659 203.646 101.69 +90.2326 204.939 102.336 +88.3019 205.802 102.767 +85.8008 205.311 102.521 +83.5555 205.385 102.558 +81.1818 205.101 102.417 +79.0805 205.473 102.602 +76.7877 205.319 102.526 +74.504 205.146 102.439 +71.989 204.269 102.001 +70.2862 205.679 102.705 +68.0217 205.447 102.589 +65.7119 205.025 102.379 +63.576 205.099 102.416 +61.4954 205.328 102.53 +59.0646 204.328 102.031 +57.2629 205.476 102.604 +54.9063 204.61 102.171 +53.0435 205.554 102.643 +50.6252 204.301 102.017 +48.6513 204.776 102.254 +46.5325 204.621 102.177 +44.5539 205.065 102.399 +42.388 204.613 102.173 +40.3906 204.936 102.334 +38.159 204.009 101.871 +36.2928 205.006 102.369 +34.1144 204.22 101.976 +32.2882 205.541 102.636 +30.0471 204.189 101.961 +28.1396 205.037 102.385 +26.1273 205.16 102.446 +24.052 204.733 102.233 +22.0637 205.003 102.367 +20.0545 205.078 102.405 +17.9593 204.156 101.945 +15.9533 204.111 101.922 +13.9435 203.959 101.846 +11.9588 204.15 101.942 +9.9365 203.61 101.672 +7.985 204.574 102.153 +5.97358 204.092 101.913 +3.98787 204.399 102.066 +1.9879 203.796 101.765 +1.45439e-14 204.788 102.26 +-1.9879 203.796 101.765 +-3.9774 203.862 101.798 +-5.96573 203.823 101.779 +-7.99198 204.752 102.242 +-9.94086 203.699 101.716 +-11.9849 204.596 102.165 +-13.9191 203.602 101.668 +-15.9812 204.468 102.1 +-17.8808 203.264 101.499 +-19.9499 204.009 101.871 +-21.9583 204.023 101.878 +-23.9684 204.022 101.878 +-25.9575 203.827 101.78 +-27.9446 203.617 101.675 +-29.9427 203.479 101.607 +-32.0516 204.035 101.884 +-33.9814 203.424 101.579 +-36.0894 203.857 101.796 +-37.9279 202.773 101.254 +-40.0085 202.999 101.367 +-42.0053 202.766 101.251 +-44.1532 203.221 101.478 +-46.0341 202.43 101.083 +-48.1939 202.851 101.293 +-50.1707 202.466 101.101 +-52.3686 202.939 101.337 +-54.4395 202.871 101.303 +-56.5855 203.045 101.39 +-58.5388 202.509 101.122 +-60.7448 202.822 101.279 +-62.7208 202.34 101.038 +-65.1882 203.39 101.562 +-66.9708 202.274 101.005 +-69.4968 203.369 101.552 +-71.4176 202.648 101.192 +-73.8551 203.359 101.547 +-75.6772 202.35 101.043 +-78.1038 202.936 101.335 +-80.2138 202.656 101.196 +-82.7347 203.367 101.551 +-84.6451 202.546 101.141 +-87.3343 203.548 101.641 +-89.243 202.692 101.213 +-91.5913 202.816 101.276 +-93.834 202.672 101.204 +-96.4324 203.25 101.492 +-98.4113 202.489 101.112 +-101.237 203.429 101.582 +-102.927 202.061 100.898 +-105.612 202.628 101.182 +-107.585 201.796 100.766 +-110.207 202.155 100.945 +-112.531 201.927 100.831 +-115.268 202.396 101.066 +-117.33 201.647 100.692 +-120.091 202.066 100.901 +-122.439 201.75 100.743 +-125.372 202.352 101.044 +-127.242 201.209 100.473 +-130.55 202.3 101.018 +-133.33 202.506 101.121 +-138.391 206.059 102.895 +-140.866 205.657 102.694 +-143.873 205.991 102.861 +-143.513 201.54 100.638 +-143.512 197.711 98.7264 +-144.332 195.091 97.4179 +-146.564 194.402 97.0739 +-149.758 194.946 97.3455 +-171.098 218.613 109.164 +-173.514 217.633 108.675 +-603.362 742.976 371.003 +-608.861 736.152 367.595 +-610.963 725.369 362.21 +-616.006 718.228 358.645 +-617.693 707.329 353.202 +-623.013 700.729 349.907 +-624.663 690.137 344.618 +-630.163 683.922 341.514 +-631.924 673.767 336.443 +-636.524 666.767 332.948 +-638.214 656.843 327.992 +-643.205 650.428 324.789 +-644.64 640.529 319.846 +-650.256 634.877 317.024 +-651.649 625.196 312.19 +-656.828 619.241 309.216 +-658.814 610.357 304.78 +-663.481 604.042 301.626 +-665.387 595.296 297.259 +-670.812 589.765 294.497 +-672.439 580.963 290.102 +-678.08 575.691 287.469 +-690.398 575.988 287.618 +-700.635 574.384 286.817 +-709.406 571.466 285.36 +-717.799 568.159 283.708 +-717.653 558.131 278.701 +-726.416 555.064 277.169 +-724.984 544.253 271.771 +-114.278 84.2799 42.0849 +-114.784 83.1593 41.5253 +-112.539 80.0879 39.9916 +-112.134 78.38 39.1388 +-110.831 76.0855 37.9931 +-110.771 74.6789 37.2906 +-110.048 72.8533 36.3791 +-110.026 71.5181 35.7123 +-110.068 70.2407 35.0745 +-110.34 69.1221 34.5159 +-110.268 67.8021 33.8567 +-110.096 66.4382 33.1757 +-110.156 65.2305 32.5727 +-109.53 63.6371 31.777 +-109.894 62.6353 31.2767 +-110.501 61.775 30.8471 +-110.076 60.349 30.1351 +-110.146 59.2108 29.5667 +-110.892 58.4394 29.1815 +-110.505 57.0794 28.5024 +-110.622 55.9941 27.9605 +-111.339 55.2152 27.5715 +-111.698 54.2584 27.0938 +-112.046 53.3002 26.6153 +-112.916 52.5887 26.26 +-112.891 51.4614 25.6971 +-114.283 50.9773 25.4554 +-114.147 49.8085 24.8717 +-115.17 49.1466 24.5412 +-116.732 48.6993 24.3178 +-118.022 48.12 24.0285 +-118.121 47.0511 23.4948 +-120.593 46.912 23.4253 +-124.452 47.2621 23.6002 +-161.309 59.7781 29.85 +-163.184 58.9857 29.4543 +-3048.51 1074.34 536.47 +-161.043 55.3066 27.6172 +-163.449 54.6738 27.3012 +-162.567 52.9366 26.4337 +-3088.56 978.508 488.615 +-166.789 51.3806 25.6567 +-884.501 264.775 132.214 +-888.953 258.412 129.037 +-896.208 252.807 126.238 +-900.839 246.402 123.04 +-382.569 101.385 50.6261 +-381.525 97.8759 48.874 +-383.621 95.1812 47.5284 +-382.893 91.7886 45.8343 +-382.902 88.5941 44.2392 +-3179.17 709.159 354.116 +-405.187 87.0297 43.458 +-405.533 83.7623 41.8264 +-406.725 80.6704 40.2825 +-407.496 77.4919 38.6953 +-405.395 73.7903 36.8469 +-406.688 70.7249 35.3163 +-406.183 67.3514 33.6317 +-406.824 64.1777 32.0469 +-405.265 60.6742 30.2975 +-401.397 56.8781 28.4019 +-406.387 54.3371 27.1331 +-404.425 50.851 25.3923 +-404.51 47.6449 23.7913 +-405.257 44.5177 22.2298 +-405.675 41.352 20.649 +-404.87 38.071 19.0106 +-404.529 34.8486 17.4015 +-404.156 31.6344 15.7965 +-404.449 28.4779 14.2203 +-404.512 25.3066 12.6368 +-404.744 22.1475 11.0593 +-404.645 18.9726 9.47392 +-405.314 15.8323 7.9058 +-148.21 4.63041 2.31218 +-148.449 3.4778 1.73663 +-146.478 2.28745 1.14223 +-146.894 1.14689 0.572697 +120.3 5.77316e-15 5.68434e-14 +120.195 0.942626 0.46012 +120.182 1.88518 0.920205 +120.859 2.84405 1.38826 +121.026 3.79801 1.85391 +119.886 4.70386 2.29607 +120.435 5.67206 2.76868 +120.974 6.64922 3.24566 +120.805 7.5914 3.70556 +120.627 8.53142 4.16441 +121.337 9.53976 4.6566 +121.339 10.4995 5.12509 +121.033 11.4319 5.58019 +120.918 12.3806 6.04328 +120.594 13.3065 6.49523 +121.254 14.3456 7.00245 +121.011 15.2834 7.46023 +120.759 16.2185 7.91666 +121.288 17.2633 8.42668 +120.82 18.1693 8.86889 +120.344 19.0693 9.30821 +120.252 20.0287 9.77652 +120.74 21.091 10.2951 +120.531 22.0371 10.7569 +121.095 23.1309 11.2908 +120.768 24.0602 11.7444 +121.212 25.1479 12.2753 +121.06 26.1184 12.7491 +120.705 27.0451 13.2014 +121.018 28.1256 13.7289 +121.031 29.1434 14.2256 +121.032 30.1634 14.7236 +120.734 31.1115 15.1863 +120.428 32.0571 15.6479 +120.973 33.2367 16.2237 +120.836 34.2382 16.7126 +121.069 35.3512 17.2558 +120.722 36.2993 17.7186 +121.31 37.5372 18.3229 +120.47 38.3371 18.7133 +120.469 39.4033 19.2338 +120.737 40.5668 19.8017 +120.992 41.7376 20.3732 +120.582 42.6848 20.8356 +120.07 43.5952 21.2799 +119.92 44.6382 21.7891 +120.31 45.893 22.4016 +120.043 46.9065 22.8963 +120.223 48.1018 23.4798 +120.388 49.3037 24.0664 +119.995 50.284 24.5449 +120.315 51.5712 25.1732 +120.528 52.828 25.7867 +119.921 53.731 26.2275 +120.286 55.0774 26.8847 +119.658 55.9771 27.3239 +119.904 57.293 27.9662 +119.871 58.4885 28.5497 +120.173 59.8619 29.2201 +120.283 61.1561 29.8519 +119.685 62.097 30.3112 +119.853 63.4438 30.9685 +119.146 64.335 31.4036 +119.711 65.9242 32.1793 +119.151 66.9082 32.6596 +117.484 67.2605 32.8316 +112.13 65.4384 31.9422 +118.912 70.7297 34.525 +119.216 72.2625 35.2732 +119.333 73.7037 35.9767 +119.023 74.8945 36.558 +118.942 76.2425 37.2159 +119.006 77.7006 37.9277 +118.971 79.112 38.6166 +118.997 80.5827 39.3345 +119.003 82.0599 40.0556 +119.068 83.5986 40.8066 +119.113 85.1446 41.5613 +118.903 86.5279 42.2365 +119.216 88.3145 43.1086 +118.354 89.246 43.5633 +117.787 90.4047 44.1289 +115.395 90.145 44.0021 +114.216 90.8091 44.3263 +111.1 89.8969 43.881 +109.633 90.2789 44.0674 +106.046 88.8678 43.3787 +105.832 90.2528 44.0547 +103.009 89.3938 43.6354 +101.496 89.6313 43.7513 +99.3485 89.28 43.5799 +97.8469 89.4789 43.677 +94.6819 88.1095 43.0085 +94.5111 89.5005 43.6875 +94.3204 90.8953 44.3684 +94.6502 92.8247 45.3102 +94.0798 93.8968 45.8335 +94.9535 96.4481 47.0788 +94.9317 98.1385 47.9039 +94.6895 99.6312 48.6325 +94.6826 101.402 49.4971 +95.2209 103.805 50.6701 +94.6498 105.037 51.2715 +95.1202 107.464 52.4559 +94.504 108.701 53.0599 +93.9928 110.08 53.7328 +93.9433 112.033 54.686 +93.863 113.993 55.6432 +93.693 115.888 56.5678 +94.19 118.667 57.9246 +94.0665 120.726 58.9296 +93.7969 122.644 59.8657 +93.7766 124.94 60.9864 +93.4981 126.944 61.9646 +93.8413 129.858 63.3872 +93.8125 132.332 64.5948 +93.3718 134.282 65.5467 +93.266 136.772 66.7618 +93.4279 139.732 68.2067 +93.4886 142.627 69.6201 +93.1 144.912 70.7351 +93.1173 147.904 72.1959 +93.5198 151.616 74.0075 +93.2845 154.397 75.3652 +93.1432 157.424 76.8426 +93.227 160.937 78.5577 +93.3404 164.625 80.3579 +92.9876 167.603 81.8112 +92.6278 170.668 83.3075 +92.9043 175.038 85.4407 +92.9338 179.099 87.4229 +91.9375 181.293 88.4937 +90.9056 183.485 89.5636 +89.3597 184.685 90.1496 +88.0317 186.372 90.973 +89.3948 193.946 94.67 +92.0034 204.638 99.8891 +89.9028 205.101 100.115 +87.5851 205.043 100.087 +85.4156 205.301 100.213 +83.4187 205.964 100.536 +80.7479 204.916 100.025 +78.7549 205.541 100.33 +76.28 204.873 100.004 +74.2877 205.463 100.292 +72.0792 205.438 100.28 +69.9938 205.737 100.426 +67.5104 204.813 99.9747 +65.4914 205.249 100.187 +63.0683 204.369 99.758 +61.2883 205.55 100.334 +58.8393 204.457 99.801 +57.021 205.521 100.32 +54.6262 204.475 99.8097 +52.6385 204.896 100.015 +50.4954 204.687 99.9128 +48.5058 205.075 100.102 +46.353 204.742 99.94 +44.4013 205.275 100.2 +42.2422 204.82 99.9777 +40.2169 204.966 100.049 +38.0105 204.122 99.6373 +36.0894 204.767 99.9523 +33.9223 203.976 99.5658 +32.1212 205.391 100.257 +30.021 204.922 100.028 +28.0178 205.06 100.095 +25.9462 204.648 99.894 +23.9684 204.933 100.033 +21.8816 204.218 99.6843 +19.9499 204.919 100.026 +17.873 204.083 99.618 +15.8905 204.215 99.6825 +13.9191 204.511 99.8273 +11.9326 204.613 99.8768 +9.89724 203.711 99.4364 +7.9536 204.679 99.9089 +5.95264 204.284 99.7163 +3.97217 204.502 99.8229 +1.97831 203.717 99.4395 +1.33227e-14 203.995 99.5751 +-1.98005 203.897 99.5272 +-3.9617 203.963 99.5597 +-5.93693 203.745 99.4531 +-7.94313 204.409 99.7773 +-9.88415 203.441 99.3048 +-11.8907 203.895 99.5264 +-13.8519 203.525 99.3456 +-15.9045 204.395 99.7703 +-17.7945 203.187 99.1807 +-19.8889 204.293 99.7207 +-21.8624 204.04 99.597 +-23.8534 203.95 99.5531 +-25.8217 203.666 99.4145 +-27.9203 204.347 99.747 +-29.8905 204.031 99.593 +-31.7593 203.077 99.1272 +-33.804 203.265 99.2189 +-35.7766 202.992 99.0855 +-37.7794 202.881 99.0316 +-39.9044 203.374 99.2719 +-41.8231 202.788 98.9859 +-44.0196 203.51 99.3386 +-45.9942 203.158 99.1667 +-47.9652 202.79 98.9868 +-49.9759 202.581 98.885 +-52.0987 202.794 98.989 +-54.1126 202.552 98.871 +-56.3436 203.08 99.1285 +-58.2885 202.543 98.8666 +-60.486 202.86 99.021 +-62.4002 202.205 98.7012 +-64.9402 203.521 99.3439 +-66.6868 202.315 98.7552 +-69.2044 203.417 99.293 +-70.8162 201.838 98.5223 +-73.3606 202.899 99.0403 +-75.4233 202.572 98.8807 +-77.6806 202.737 98.9614 +-79.5796 201.951 98.5775 +-82.3585 203.346 99.2583 +-84.0848 202.103 98.6517 +-86.6892 202.946 99.0631 +-88.8399 202.676 98.9315 +-91.1418 202.722 98.9539 +-93.4896 202.83 99.0066 +-95.8073 202.834 99.0083 +-97.8131 202.157 98.678 +-100.22 202.285 98.7407 +-102.554 202.227 98.7122 +-105.274 202.881 99.0316 +-106.853 201.318 98.2687 +-109.9 202.492 98.8416 +-112.263 202.346 98.7701 +-114.95 202.739 98.9623 +-116.915 201.83 98.5183 +-119.621 202.175 98.6868 +-121.532 201.15 98.1867 +-124.79 202.311 98.7535 +-126.75 201.326 98.2722 +-130 202.347 98.771 +-132.011 201.398 98.3073 +-137.927 206.285 100.693 +-140.343 205.809 100.461 +-143.979 207.064 101.073 +-143.19 201.985 98.5942 +-143.621 198.744 97.012 +-143.062 194.238 94.8126 +-145.111 193.332 94.3704 +-148.852 194.631 95.0043 +-170.295 218.558 106.684 +-170.262 214.508 104.707 +-607.123 750.946 366.556 +-612.251 743.556 362.949 +-614.393 732.697 357.649 +-619.658 725.712 354.239 +-621.264 714.594 348.812 +-627.059 708.428 345.802 +-627.999 696.919 340.184 +-633.598 690.72 337.158 +-634.817 679.873 331.863 +-640.421 673.844 328.921 +-642.085 663.777 324.007 +-647.247 657.438 320.912 +-648.521 647.261 315.945 +-653.769 641.157 312.965 +-655.128 631.339 308.173 +-660.889 625.852 305.495 +-662.218 616.25 300.807 +-667.546 610.456 297.979 +-669.064 601.258 293.489 +-674.236 595.422 290.641 +-675.892 586.553 286.312 +-681.562 581.23 283.713 +-686.522 575.312 280.824 +-696.727 573.731 280.053 +-712.825 576.784 281.543 +-720.421 572.779 279.588 +-720.521 562.863 274.748 +-729.001 559.526 273.119 +-115.06 86.7622 42.3508 +-113.583 84.1417 41.0717 +-113.23 82.3995 40.2213 +-111.13 79.4385 38.776 +-111.425 78.2319 38.187 +-110.673 76.3157 37.2517 +-110.611 74.9041 36.5626 +-110.048 73.1785 35.7203 +-110.026 71.8374 35.0657 +-109.417 70.1369 34.2356 +-109.521 68.9153 33.6393 +-109.774 67.7993 33.0946 +-110.262 66.8354 32.6241 +-110.323 65.6209 32.0313 +-110.201 64.3128 31.3927 +-110.4 63.2046 30.8518 +-110.501 62.0508 30.2886 +-110.587 60.9001 29.7269 +-110.317 59.5677 29.0765 +-110.892 58.7003 28.6531 +-111.024 57.6038 28.1179 +-111.144 56.5097 27.5838 +-111.951 55.7666 27.2211 +-112.401 54.8436 26.7706 +-112.752 53.8757 26.2981 +-113.36 53.031 25.8858 +-113.782 52.0991 25.4309 +-114.552 51.3251 25.0531 +-114.956 50.3855 24.5945 +-116.163 49.7916 24.3046 +-117.276 49.1446 23.9887 +-118.75 48.6329 23.739 +-118.761 47.5171 23.1943 +-127.013 49.6297 24.2256 +-148.938 56.8132 27.732 +-160.847 59.8731 29.2256 +-162.072 58.845 28.7238 +-847.052 299.848 146.363 +-162.35 56.0043 27.3372 +-164.667 55.327 27.0066 +-166.044 54.3102 26.5102 +-3088.56 982.877 479.768 +-3097.99 958.613 467.924 +-889.433 267.44 130.544 +-892.376 260.566 127.189 +-900.309 255.098 124.52 +-385.2 105.832 51.6593 +-381.802 101.633 49.6099 +-382.582 98.586 48.1224 +-383.91 95.678 46.7029 +-382.313 92.0591 44.9364 +-3172.14 737.229 359.861 +-928.961 208.143 101.6 +-405.964 87.5859 42.753 +-404.948 84.015 41.0099 +-406.042 80.8944 39.4866 +-406.127 77.5763 37.867 +-405.983 74.2272 36.2322 +-406.099 70.9377 34.6265 +-405.593 67.5539 32.9748 +-405.642 64.2769 31.3752 +-404.673 60.856 29.7054 +-402.384 57.2725 27.9562 +-404.606 54.3406 26.525 +-404.723 51.1155 24.9508 +-403.32 47.7169 23.2918 +-404.76 44.6616 21.8005 +-403.291 41.2925 20.1559 +-403.975 38.1564 18.6251 +-406.42 35.1678 17.1663 +-405.152 31.8539 15.5487 +-403.951 28.5697 13.9456 +-405.011 25.4509 12.4232 +-404.444 22.2299 10.851 +-403.946 19.0244 9.28632 +-405.314 15.903 7.76264 +-148.609 4.66362 2.27643 +-147.25 3.46509 1.6914 +-145.478 2.28198 1.11389 +-145.494 1.14103 0.556967 +119.4 4.88498e-15 0 +120.295 0.947524 0.451972 +120.182 1.8934 0.90316 +120.859 2.85646 1.36254 +120.127 3.78623 1.80605 +120.685 4.75587 2.26857 +120.435 5.6968 2.71739 +120.974 6.67823 3.18554 +120.805 7.62452 3.63692 +120.527 8.56156 4.08389 +121.337 9.58138 4.57035 +121.239 10.5367 5.02603 +121.033 11.4818 5.47683 +121.613 12.5062 5.96549 +121.388 13.4525 6.4169 +121.254 14.4082 6.87275 +121.011 15.3501 7.32205 +120.759 16.2892 7.77002 +121.288 17.3387 8.2706 +120.82 18.2485 8.70462 +120.442 19.1682 9.14328 +121.039 20.2477 9.6582 +120.74 21.183 10.1044 +120.433 22.1152 10.549 +121.095 23.2318 11.0817 +120.67 24.1456 11.5175 +120.53 25.1154 11.9801 +121.06 26.2324 12.5129 +120.511 27.1194 12.9361 +121.018 28.2484 13.4746 +120.837 29.2239 13.9399 +120.454 30.1504 14.3818 +120.831 31.2721 14.9169 +120.332 32.1713 15.3458 +121.068 33.4082 15.9358 +120.741 34.3605 16.3901 +121.165 35.5333 16.9495 +120.722 36.4576 17.3904 +121.121 37.6422 17.9554 +121.035 38.6851 18.4529 +120.281 39.5135 18.8481 +120.737 40.7438 19.4349 +120.152 41.6286 19.857 +120.489 42.8379 20.4338 +120.07 43.7854 20.8858 +120.566 45.0748 21.5008 +120.31 46.0933 21.9866 +119.86 47.0391 22.4378 +120.223 48.3117 23.0448 +120.57 49.5937 23.6564 +120.086 50.5414 24.1084 +120.134 51.7185 24.6699 +119.719 52.7023 25.1392 +119.832 53.9252 25.7225 +120.197 55.2767 26.3672 +119.658 56.2213 26.8178 +119.904 57.543 27.4482 +119.871 58.7437 28.0209 +120.173 60.1231 28.6789 +119.5 61.023 29.1082 +119.858 62.4582 29.7928 +119.853 63.7206 30.3949 +119.146 64.6157 30.8219 +119.966 66.3533 31.6507 +119.405 67.3435 32.1231 +115.713 66.5356 31.7377 +112.55 65.9698 31.4678 +118.912 71.0383 33.8855 +119.299 72.6284 34.644 +118.592 73.5652 35.0909 +118.613 74.9624 35.7573 +119.105 76.6799 36.5766 +119.006 78.0396 37.2251 +118.81 79.3497 37.8501 +118.757 80.7714 38.5282 +118.924 82.363 39.2874 +119.62 84.3524 40.2364 +118.252 84.8981 40.4967 +118.282 86.451 41.2374 +119.062 88.585 42.2553 +119.656 90.6213 43.2267 +119.308 91.9706 43.8703 +117.206 91.9598 43.8651 +116.538 93.0591 44.3895 +113.33 92.1006 43.9323 +112.287 92.8678 44.2983 +108.752 91.5329 43.6615 +108.443 92.8831 44.3056 +105.455 91.9156 43.844 +104.634 92.8055 44.2685 +101.258 91.393 43.5948 +100.3 92.1223 43.9426 +97.5995 91.2206 43.5125 +96.7138 91.986 43.8776 +94.0476 91.0284 43.4208 +94.2448 92.8299 44.2802 +94.2805 94.5078 45.0805 +93.9595 95.8553 45.7233 +94.9973 98.6353 47.0493 +94.7545 100.134 47.7645 +94.5541 101.707 48.5144 +94.4576 103.423 49.3329 +94.7757 105.636 50.3885 +94.6222 107.367 51.2143 +94.0115 108.606 51.8054 +93.9928 110.56 52.7375 +93.9433 112.521 53.6731 +93.9225 114.563 54.6469 +94.4571 117.343 55.973 +93.7255 118.597 56.571 +94.1239 121.327 57.8733 +94.0234 123.477 58.8989 +93.3852 124.961 59.6067 +93.5533 127.574 60.853 +93.4056 129.819 61.9242 +93.7051 132.757 63.3256 +93.3718 134.868 64.3326 +93.7885 138.138 65.8924 +93.3764 140.264 66.9063 +93.5393 143.327 68.3675 +93.1 145.544 69.4249 +93.1173 148.549 70.8586 +93.035 151.488 72.2604 +93.3323 155.15 74.0071 +93.1432 158.11 75.4192 +93.227 161.64 77.1026 +93.0227 164.781 78.6008 +92.9876 168.334 80.2959 +92.584 171.331 81.7256 +92.8182 175.638 83.7801 +92.9338 179.881 85.8036 +91.896 182.002 86.8154 +90.7836 184.038 87.7867 +89.0008 184.746 88.1246 +88.0317 187.185 89.2879 +86.7543 189.038 90.1718 +92.0034 205.531 98.0389 +89.2797 204.569 97.58 +87.2626 205.18 97.8714 +84.7852 204.675 97.6308 +82.9741 205.759 98.1478 +80.4141 204.959 97.766 +78.4945 205.756 98.1461 +75.8675 204.654 97.6204 +73.9478 205.415 97.9838 +71.6582 205.129 97.8473 +69.526 205.254 97.9067 +67.2264 204.842 97.7104 +65.2434 205.364 97.9593 +63.0148 205.087 97.8271 +60.8484 204.965 97.769 +58.5639 204.388 97.4939 +56.6581 205.104 97.8353 +54.3461 204.314 97.4586 +52.4361 204.998 97.7849 +50.3222 204.875 97.7259 +48.3603 205.351 97.9532 +46.2135 205.017 97.7939 +44.2104 205.284 97.9214 +42.0782 204.915 97.7453 +39.9738 204.617 97.6028 +37.7299 203.499 97.0698 +35.933 204.769 97.6755 +33.9075 204.776 97.679 +31.8846 204.767 97.6747 +29.773 204.117 97.3643 +27.8228 204.522 97.5576 +25.7198 203.747 97.1882 +23.8743 205.019 97.7948 +21.757 203.941 97.2808 +19.8715 205.004 97.7875 +17.7396 203.443 97.0431 +15.8487 204.566 97.5787 +13.7909 203.512 97.0758 +11.8803 204.604 97.5968 +9.84053 203.427 97.0353 +7.90474 204.309 97.456 +5.92123 204.092 97.3527 +3.9425 203.861 97.2424 +1.96783 203.523 97.081 +1.38778e-14 203.802 97.214 +-1.97045 203.793 97.2101 +-3.95821 204.673 97.6295 +-5.90814 203.642 97.1378 +-7.88729 203.858 97.2407 +-9.85362 203.698 97.1645 +-11.8698 204.423 97.5107 +-13.797 203.601 97.1184 +-15.8347 204.386 97.4926 +-17.7396 203.443 97.0431 +-19.8018 204.284 97.4444 +-21.6803 203.223 96.938 +-23.7489 203.941 97.2808 +-25.6971 203.568 97.1025 +-27.6643 203.357 97.0022 +-29.6033 202.953 96.8093 +-31.7315 203.784 97.2058 +-33.6414 203.17 96.9126 +-35.6201 202.987 96.8252 +-37.5978 202.787 96.7301 +-39.7654 203.55 97.0939 +-41.5315 202.253 96.4752 +-43.638 202.626 96.6535 +-45.6154 202.364 96.5282 +-47.7781 202.879 96.774 +-49.6512 202.143 96.4227 +-51.9412 203.063 96.8618 +-53.8558 202.471 96.5794 +-56.0775 203.003 96.833 +-57.988 202.378 96.5351 +-60.279 203.047 96.8541 +-62.1596 202.303 96.4993 +-64.4991 203.021 96.8416 +-66.4596 202.505 96.5958 +-68.912 203.441 97.0422 +-70.9966 203.236 96.9441 +-73.0516 202.926 96.7964 +-75.2329 202.942 96.8042 +-77.3224 202.683 96.6806 +-79.446 202.492 96.5893 +-81.777 202.792 96.7323 +-83.7696 202.224 96.4614 +-86.2233 202.736 96.7056 +-88.2535 202.218 96.4584 +-90.8421 202.937 96.8016 +-92.9155 202.464 96.576 +-95.4947 203.053 96.8571 +-97.534 202.459 96.5738 +-100.098 202.921 96.7938 +-101.932 201.877 96.2961 +-104.513 202.294 96.495 +-106.853 202.197 96.4485 +-109.111 201.915 96.3142 +-111.46 201.775 96.2475 +-114.179 202.256 96.4769 +-116.592 202.15 96.4261 +-118.917 201.862 96.2888 +-121.055 201.235 95.9896 +-123.966 201.852 96.2841 +-126.307 201.496 96.1144 +-129.1 201.823 96.2703 +-131.351 201.265 96.0042 +-137.464 206.489 98.4961 +-139.455 205.399 97.9761 +-142.972 206.512 98.5069 +-143.459 203.247 96.9497 +-143.186 199.005 94.9262 +-143.448 195.612 93.3078 +-145.334 194.475 92.7653 +-147.662 193.918 92.4997 +-167.828 216.333 103.192 +-609.215 770.88 367.712 +-611.591 759.772 362.414 +-616.712 752.242 358.822 +-617.944 740.147 353.053 +-623.615 733.533 349.898 +-625.266 722.335 344.556 +-630.919 715.899 341.486 +-632.719 705.221 336.393 +-637.414 697.912 332.906 +-639.059 687.402 327.893 +-644.577 681.176 324.923 +-645.956 670.692 319.922 +-651.554 664.7 317.064 +-652.737 654.311 312.109 +-657.957 648.08 309.136 +-659.356 638.187 304.417 +-664.262 631.79 301.366 +-666.942 623.353 297.341 +-671.892 617.111 294.364 +-673.236 607.646 289.849 +-677.873 601.245 286.796 +-680.567 593.187 282.952 +-685.189 586.873 279.94 +-687.18 578.376 275.887 +-694.884 574.71 274.138 +-705.913 573.683 273.649 +-719.447 574.501 274.039 +-726.408 569.938 271.862 +-114.441 88.2194 42.081 +-114.677 86.8506 41.428 +-112.349 83.5902 39.8728 +-112.064 81.9069 39.0699 +-110.583 79.3917 37.8701 +-110.794 78.1287 37.2677 +-110.276 76.374 36.4306 +-110.212 74.9593 35.7559 +-109.566 73.1757 34.905 +-110.026 72.1508 34.4162 +-109.499 70.4952 33.6264 +-109.521 69.216 33.0163 +-109.691 68.044 32.4572 +-109.516 66.6727 31.8031 +-110.24 65.8574 31.4142 +-110.034 64.495 30.7643 +-111.159 63.9169 30.4886 +-110.161 62.1301 29.6363 +-111.27 61.5431 29.3563 +-110.66 60.0135 28.6266 +-111.322 59.1855 28.2317 +-111.631 58.171 27.7478 +-111.841 57.1117 27.2425 +-111.864 55.9662 26.6961 +-112.928 55.3413 26.398 +-113.282 54.365 25.9323 +-113.892 53.5123 25.5256 +-113.782 52.3265 24.9599 +-115.089 51.7907 24.7043 +-115.405 50.8032 24.2333 +-117.065 50.3974 24.0397 +-118.454 49.8548 23.7809 +-119.933 49.3317 23.5314 +-121.227 48.7156 23.2375 +-161.953 63.5586 30.3176 +-160.812 61.6104 29.3884 +-161.032 60.2033 28.7172 +-161.33 58.8312 28.0627 +-852.728 303.173 144.615 +-163.563 56.6692 27.0314 +-165.697 55.9161 26.6722 +-166.044 54.5472 26.0192 +-3088.56 987.165 470.881 +-885.194 275.102 131.225 +-893.036 269.695 128.645 +-896.941 263.041 125.472 +-383.776 109.215 52.096 +-383.861 105.924 50.5263 +-382.377 102.23 48.7642 +-383.543 99.2644 47.3494 +-382.369 95.7091 45.6536 +-381.734 92.3199 44.0369 +-902.217 210.597 100.455 +-408.009 91.8172 43.7971 +-406.159 88.0102 41.9812 +-407.092 84.8282 40.4633 +-405.163 81.0715 38.6714 +-406.127 77.9147 37.1656 +-405.689 74.4971 35.5353 +-404.332 70.9372 33.8373 +-407.068 68.0953 32.4817 +-404.658 64.4006 30.7193 +-405.955 61.3152 29.2476 +-3236.16 462.622 220.672 +-405.991 54.7645 26.1228 +-404.425 51.3009 24.4707 +-404.311 48.0428 22.9166 +-403.768 44.7464 21.3442 +-405.179 41.6668 19.8752 +-405.168 38.4361 18.3341 +-403.832 35.0963 16.741 +-403.957 31.8986 15.2157 +-404.449 28.7298 13.7042 +-405.709 25.6061 12.2142 +-405.343 22.3765 10.6737 +-405.244 19.1688 9.14359 +-405.314 15.9723 7.61886 +-146.411 4.61467 2.20121 +-148.149 3.50147 1.67021 +-145.578 2.29351 1.09401 +-146.994 1.15782 0.552286 +120.3 5.77316e-15 5.68434e-14 +120.295 0.951563 0.443406 +120.182 1.90148 0.886042 +120.859 2.86864 1.33672 +120.227 3.80553 1.77329 +120.685 4.77614 2.22557 +121.034 5.74955 2.67915 +120.974 6.7067 3.12516 +120.805 7.65702 3.56799 +120.627 8.60517 4.0098 +120.54 9.55895 4.45424 +121.239 10.5816 4.93076 +121.033 11.5307 5.37303 +120.719 12.4671 5.80938 +120.495 13.4104 6.24894 +121.254 14.4696 6.74248 +121.011 15.4155 7.18327 +120.759 16.3587 7.62275 +121.189 17.3983 8.10721 +120.82 18.3263 8.53963 +121.328 19.3916 9.036 +120.252 20.2018 9.41356 +120.74 21.2733 9.91285 +120.531 22.2276 10.3575 +121.095 23.3309 10.8716 +120.67 24.2485 11.2992 +120.53 25.2225 11.7531 +121.06 26.3442 12.2758 +120.705 27.2789 12.7113 +120.631 28.2779 13.1768 +120.837 29.3484 13.6757 +121.225 30.4727 14.1995 +120.734 31.3804 14.6225 +121.291 32.5659 15.1749 +120.781 33.471 15.5967 +120.645 34.4797 16.0667 +121.069 35.6568 16.6152 +120.627 36.5843 17.0474 +121.121 37.8026 17.6151 +120.941 38.8197 18.0891 +120.469 39.7439 18.5197 +120.737 40.9175 19.0666 +120.152 41.806 19.4806 +120.489 43.0205 20.0466 +120.163 44.0059 20.5057 +120.474 45.2322 21.0771 +120.218 46.2543 21.5534 +120.685 47.5649 22.1641 +120.131 48.4808 22.5909 +120.57 49.8051 23.208 +119.905 50.6803 23.6158 +120.315 52.017 24.2387 +120.528 53.2846 24.8294 +119.832 54.155 25.235 +120.108 55.4712 25.8482 +119.569 56.4191 26.29 +119.993 57.8309 26.9478 +120.046 59.0805 27.5301 +120.085 60.3355 28.1149 +120.283 61.6847 28.7436 +119.685 62.6338 29.1859 +119.766 63.9461 29.7974 +119.918 65.3112 30.4335 +119.284 66.2572 30.8743 +119.32 67.5825 31.4918 +113.942 65.7965 30.6596 +113.472 66.794 31.1244 +119.246 71.5412 33.3365 +119.381 72.9886 34.011 +119.251 74.2895 34.6171 +119.105 75.5939 35.2249 +119.187 77.0594 35.9079 +119.087 78.4255 36.5444 +118.81 79.688 37.1327 +118.917 81.2248 37.8488 +119.003 82.7693 38.5685 +118.911 84.2097 39.2397 +118.8 85.6549 39.9131 +118.204 86.7624 40.4292 +118.907 88.8473 41.4007 +119.12 90.6001 42.2175 +119.156 92.2457 42.9843 +118.414 93.3035 43.4772 +118.185 94.7765 44.1636 +115.41 94.1918 43.8912 +114.352 94.9786 44.2578 +111.97 94.6432 44.1015 +110.475 95.0257 44.2797 +107.469 94.0704 43.8346 +105.989 94.4085 43.9921 +103.733 94.026 43.8139 +102.263 94.3251 43.9532 +99.9613 93.8265 43.7209 +98.0217 93.6271 43.628 +95.0706 92.4107 43.0612 +93.8395 92.8249 43.2542 +94.0798 94.7085 44.1319 +94.5559 96.8748 45.1414 +94.0789 98.0976 45.7112 +94.3648 100.148 46.6666 +94.7469 102.349 47.6921 +94.2668 103.654 48.3003 +94.8386 106.157 49.4665 +94.809 108.037 50.3429 +94.8119 109.998 51.2565 +94.4798 111.606 52.0058 +93.9433 113.001 52.6558 +93.8036 114.905 53.5432 +94.222 117.549 54.7752 +94.1319 119.619 55.7395 +94.0092 121.695 56.7072 +94.0234 124.003 57.7825 +93.7207 125.945 58.6872 +93.6085 128.193 59.7347 +93.7868 130.905 60.9985 +93.7051 133.323 62.1253 +93.4248 135.52 63.1492 +93.684 138.572 64.5713 +92.9644 140.241 65.3489 +93.0825 143.236 66.7444 +93.05 146.085 68.0723 +93.0681 149.104 69.4788 +92.938 151.975 70.8169 +92.9505 155.174 72.3075 +93.1432 158.784 73.9898 +93.2732 162.409 75.6788 +92.9319 165.322 77.0359 +92.9876 169.051 78.774 +92.6278 172.143 80.2147 +92.8182 176.387 82.1922 +92.5957 179.99 83.8711 +91.5643 182.118 84.8624 +90.7836 184.822 86.1228 +88.8014 185.118 86.2605 +88.6569 189.318 88.2178 +85.3001 186.662 86.9802 +91.4415 205.147 95.5936 +88.9498 204.681 95.3765 +86.8684 205.123 95.5827 +84.7502 205.463 95.741 +82.5295 205.53 95.7719 +80.2805 205.491 95.7537 +77.7782 204.746 95.407 +75.582 204.753 95.4099 +73.6078 205.343 95.6849 +71.2673 204.88 95.469 +69.2044 205.175 95.6067 +67.056 205.193 95.6152 +65.078 205.716 95.8589 +62.614 204.651 95.3626 +60.7966 205.664 95.8344 +58.4137 204.733 95.4006 +56.4162 205.099 95.5713 +54.2294 204.745 95.4061 +52.2111 204.988 95.5197 +50.0408 204.598 95.3377 +48.1523 205.34 95.6836 +46.0141 205.003 95.5265 +43.9433 204.914 95.4851 +41.8413 204.629 95.3525 +39.9738 205.489 95.7529 +37.7299 204.367 95.23 +35.8391 205.104 95.5738 +33.7745 204.842 95.4517 +31.8289 205.281 95.6562 +29.7469 204.806 95.4348 +27.7253 204.674 95.3732 +25.6632 204.165 95.1362 +23.7175 204.541 95.3111 +21.6516 203.818 94.9744 +19.6972 204.072 95.0927 +17.7082 203.949 95.0353 +15.7859 204.624 95.3499 +13.8336 205.012 95.5307 +11.7965 204.028 95.072 +9.80564 203.57 94.8587 +7.86984 204.274 95.1869 +5.8872 203.785 94.9588 +3.93726 204.458 95.2726 +1.96434 204.028 95.072 +1.46549e-14 204.308 95.2025 +-1.96347 203.937 95.0298 +-3.9233 203.733 94.9347 +-5.86887 203.15 94.6632 +-7.85239 203.821 94.9757 +-9.79691 203.389 94.7742 +-11.7913 203.937 95.0298 +-13.742 203.655 94.8984 +-15.744 204.081 95.0969 +-17.6611 203.407 94.7827 +-19.7059 204.163 95.1349 +-21.6707 203.999 95.0585 +-23.6757 204.18 95.143 +-25.6066 203.715 94.9263 +-27.579 203.594 94.8701 +-29.5642 203.548 94.8486 +-31.4392 202.769 94.4853 +-33.4936 203.139 94.6581 +-35.4793 203.046 94.6146 +-37.4493 202.847 94.5217 +-39.5571 203.346 94.7544 +-41.4404 202.669 94.4389 +-43.5235 202.956 94.5728 +-45.3761 202.16 94.2019 +-47.5286 202.681 94.4444 +-49.5214 202.474 94.3481 +-51.6488 202.78 94.4908 +-53.6224 202.452 94.3379 +-55.7388 202.636 94.4237 +-57.8127 202.626 94.419 +-59.8648 202.512 94.3658 +-61.9191 202.38 94.3041 +-64.3613 203.451 94.8034 +-66.3176 202.934 94.5622 +-68.3857 202.749 94.476 +-70.6057 202.978 94.5829 +-72.7735 203.015 94.6002 +-74.9156 202.947 94.5685 +-76.9969 202.69 94.4486 +-79.2124 202.757 94.4798 +-81.264 202.378 94.3033 +-83.5945 202.662 94.4355 +-85.865 202.754 94.4786 +-87.8137 202.067 94.1584 +-90.3926 202.793 94.4967 +-92.5711 202.573 94.3941 +-94.8304 202.501 94.3607 +-96.9359 202.075 94.1622 +-99.6505 202.875 94.5348 +-101.724 202.325 94.2788 +-104.133 202.417 94.3215 +-106.465 202.322 94.2771 +-108.716 202.043 94.147 +-111.103 201.986 94.1208 +-113.725 202.311 94.272 +-116.084 202.128 94.1867 +-118.87 202.642 94.4262 +-120.817 201.694 93.9844 +-123.433 201.84 94.0528 +-126.011 201.882 94.0723 +-128.6 201.898 94.0799 +-130.945 201.498 93.8932 +-136.743 206.282 96.1225 +-139.455 206.275 96.1191 +-142.071 206.086 96.0312 +-143.781 204.572 95.3259 +-143.621 200.462 93.4104 +-143.448 196.446 91.5393 +-145.278 195.229 90.9721 +-146.982 193.848 90.3288 +-151.195 195.722 91.2018 +-611.887 777.56 362.325 +-614.471 766.603 357.219 +-618.794 757.998 353.209 +-621.494 747.573 348.351 +-626.537 740.111 344.874 +-628.467 729.127 339.756 +-633.533 721.93 336.402 +-635.488 711.326 331.461 +-640.404 704.175 328.129 +-642.98 694.568 323.652 +-647.045 686.699 319.985 +-648.842 676.561 315.261 +-654.139 670.181 312.288 +-656.083 660.469 307.763 +-660.592 653.449 304.492 +-662.766 644.222 300.192 +-667.016 637.114 296.88 +-669.512 628.423 292.83 +-673.854 621.551 289.628 +-677.196 613.826 286.028 +-681.083 606.667 282.692 +-683.661 598.423 278.851 +-687.873 591.683 275.71 +-690.252 583.437 271.868 +-694.884 577.159 268.942 +-704.13 574.673 267.784 +-715.627 573.886 267.417 +-115.169 90.7465 42.2857 +-114.061 88.3012 41.1462 +-112.762 85.7642 39.9641 +-111.268 83.1394 38.741 +-111.287 81.6856 38.0636 +-110.739 79.843 37.2049 +-110.716 78.4059 36.5353 +-110.276 76.6995 35.7401 +-110.371 75.3879 35.129 +-109.566 73.4876 34.2435 +-110.269 72.6182 33.8383 +-109.987 71.1116 33.1363 +-109.521 69.511 32.3905 +-109.774 68.3853 31.8659 +-110.345 67.4638 31.4365 +-110.156 66.0881 30.7955 +-110.117 64.8193 30.2042 +-110.569 63.8484 29.7518 +-110.331 62.4911 29.1193 +-110.502 61.3791 28.6012 +-111.346 60.6428 28.2581 +-111.667 59.6218 27.7823 +-111.371 58.283 27.1585 +-111.928 57.3999 26.747 +-112.389 56.4683 26.3129 +-113.367 55.7935 25.9984 +-113.635 54.767 25.5201 +-114.424 53.9916 25.1588 +-115.385 53.2902 24.832 +-115.983 52.4159 24.4246 +-115.855 51.2183 23.8665 +-117.878 50.9634 23.7477 +-118.817 50.2206 23.4016 +-124.665 51.4966 23.9962 +-127.44 51.4303 23.9653 +-160.394 63.215 29.4567 +-162.101 62.369 29.0625 +-161.864 60.7721 28.3184 +-161.237 59.0481 27.515 +-865.94 309.184 144.072 +-163.19 56.7808 26.4585 +-165.51 56.0909 26.137 +-3078.9 1015.76 473.322 +-3088.56 991.373 461.956 +-888.598 277.337 129.233 +-895.502 271.592 126.556 +-899.795 265.003 123.485 +-381.487 109.026 50.8037 +-381.948 105.846 49.3216 +-383.24 102.898 47.948 +-383.543 99.6875 46.452 +-381.887 95.9965 44.7321 +-382.796 92.9718 43.3226 +-903.475 211.79 98.6892 +-406.457 91.8578 42.8035 +-406.84 88.5335 41.2545 +-406.41 85.047 39.6299 +-406.725 81.731 38.0847 +-406.518 78.3223 36.4963 +-406.669 74.9953 34.946 +-403.94 71.1704 33.1637 +-405.494 68.1212 31.7429 +-406.726 65.0057 30.2911 +-405.265 61.4719 28.6444 +-407.323 58.4766 27.2487 +-406.09 55.0113 25.6339 +-404.128 51.4816 23.9892 +-403.32 48.1293 22.4271 +-406.15 45.2023 21.0632 +-404.185 41.7418 19.4507 +-404.572 38.5431 17.9602 +-406.42 35.4718 16.529 +-404.854 32.1056 14.9604 +-405.147 28.902 13.4677 +-404.412 25.633 11.9444 +-404.744 22.4387 10.4559 +-405.543 19.2647 8.97691 +-405.314 16.0404 7.47445 +-148.41 4.69761 2.18897 +-146.05 3.46657 1.61534 +-145.978 2.30961 1.07622 +-146.394 1.15801 0.539605 +120.3 5.77316e-15 5.68434e-14 +120.295 0.955523 0.434805 +120.282 1.91097 0.869576 +120.859 2.88058 1.31079 +120.127 3.8182 1.73745 +120.685 4.79602 2.1824 +121.034 5.77348 2.62718 +120.974 6.73461 3.06454 +120.805 7.68889 3.49878 +120.527 8.63384 3.92877 +121.337 9.66227 4.39675 +121.14 10.6169 4.83114 +121.033 11.5787 5.26881 +120.719 12.519 5.69669 +120.495 13.4663 6.12773 +121.254 14.5298 6.6117 +120.219 15.3783 6.9978 +120.858 16.4402 7.48102 +121.288 17.485 7.95645 +121.017 18.4326 8.38765 +121.328 19.4723 8.86073 +121.137 20.4352 9.29889 +120.838 21.3792 9.72847 +120.531 22.3201 10.1566 +120.312 23.2765 10.5918 +120.768 24.3692 11.0891 +120.53 25.3275 11.5251 +121.06 26.4538 12.0376 +120.511 27.3484 12.4447 +121.309 28.5552 12.9939 +120.837 29.4706 13.4104 +121.321 30.6238 13.9352 +120.734 31.5111 14.3389 +121.099 32.6497 14.857 +121.068 33.6903 15.3305 +121.504 34.8695 15.8671 +121.069 35.8052 16.2929 +121.385 36.9676 16.8219 +120.837 37.8711 17.233 +121.224 39.0725 17.7797 +120.469 39.9093 18.1605 +120.643 41.0559 18.6822 +120.899 42.2409 19.2214 +120.582 43.233 19.6729 +120.348 44.2573 20.139 +119.735 45.1419 20.5415 +120.218 46.4468 21.1353 +120.685 47.7629 21.7342 +120.131 48.6826 22.1527 +120.479 49.9747 22.7406 +119.905 50.8912 23.1577 +120.224 52.1944 23.7507 +119.719 53.1472 24.1843 +119.832 54.3805 24.7455 +120.286 55.7847 25.3845 +119.569 56.6539 25.78 +119.816 57.9861 26.3862 +120.046 59.3265 26.9961 +120.173 60.6307 27.5896 +119.5 61.5381 28.0025 +119.685 62.8945 28.6197 +119.853 64.2585 29.2404 +119.318 65.2549 29.6938 +119.199 66.4855 30.2538 +119.066 67.7192 30.8152 +113.436 65.7769 29.9314 +115.569 68.3114 31.0846 +119.246 71.839 32.6899 +119.464 73.3433 33.3744 +119.333 74.6502 33.9691 +119.023 75.8563 34.5179 +118.372 76.8516 34.9708 +118.44 78.324 35.6408 +118.89 80.0738 36.4371 +118.757 81.4533 37.0648 +118.844 83.003 37.77 +118.832 84.5042 38.4531 +118.8 86.0114 39.1389 +118.826 87.5818 39.8535 +118.83 89.1591 40.5713 +118.737 90.6847 41.2655 +119.08 92.5705 42.1236 +119.395 94.4683 42.9872 +118.035 95.0508 43.2523 +117.194 96.0457 43.705 +115.531 96.3579 43.847 +112.775 95.7198 43.5567 +110.547 95.4841 43.4494 +108.908 95.7262 43.5596 +107.344 96.0138 43.6905 +105.076 95.6397 43.5202 +103.524 95.8864 43.6325 +101.351 95.5269 43.4689 +99.2607 95.2056 43.3227 +97.0484 94.7259 43.1044 +94.7177 94.0833 42.812 +94.3474 95.373 43.3989 +93.827 96.5281 43.9245 +94.0789 98.5059 44.8245 +93.5855 99.7338 45.3832 +94.6826 102.705 46.7351 +94.7757 104.647 47.6189 +94.3351 106.032 48.2493 +94.7467 108.416 49.3341 +94.504 110.097 50.099 +93.9928 111.494 50.7344 +94.4248 114.053 51.8991 +93.863 115.457 52.5381 +94.222 118.039 53.7127 +94.0739 120.043 54.6248 +94.1239 122.351 55.6751 +93.9668 124.445 56.6277 +93.9444 126.77 57.686 +93.6085 128.726 58.576 +93.4056 130.915 59.5721 +93.7051 133.878 60.9203 +93.4778 136.162 61.9595 +93.3705 138.684 63.1071 +93.3764 141.448 64.365 +93.5901 144.616 65.8063 +93.05 146.694 66.7519 +93.0681 149.724 68.1311 +92.9865 152.687 69.4793 +93.38 156.54 71.2325 +93.1432 159.445 72.5546 +93.2732 163.085 74.2109 +93.0227 166.172 75.6153 +92.943 169.674 77.2091 +92.584 172.778 78.6214 +92.8182 177.121 80.5979 +92.6379 180.822 82.282 +91.6057 182.958 83.254 +90.6209 185.259 84.3011 +88.7615 185.806 84.5496 +89.2039 191.279 87.04 +84.1521 184.916 84.1449 +91.5164 206.169 93.816 +88.8765 205.364 93.4495 +86.9042 206.062 93.7671 +84.2949 205.21 93.3795 +82.29 205.786 93.6416 +80.1804 206.088 93.7791 +77.8433 205.771 93.6346 +75.6137 205.691 93.5986 +73.3915 205.591 93.553 +71.147 205.385 93.459 +69.1751 205.943 93.7129 +66.8572 205.437 93.4826 +64.7472 205.522 93.5215 +62.5872 205.415 93.4726 +60.486 205.465 93.4954 +58.4137 205.585 93.5501 +56.3436 205.688 93.5969 +54.2294 205.597 93.5555 +52.0762 205.31 93.425 +49.9543 205.093 93.3264 +47.9029 205.126 93.3414 +45.9144 205.41 93.4706 +43.9433 205.767 93.6329 +41.7684 205.124 93.3401 +39.8696 205.806 93.6507 +37.6639 204.858 93.2192 +35.714 205.239 93.3927 +33.7005 205.245 93.3956 +31.6897 205.235 93.3906 +29.5772 204.485 93.0498 +27.7131 205.436 93.4822 +25.5386 204.02 92.8381 +23.5921 204.306 92.9682 +21.7091 205.21 93.3795 +19.6885 204.83 93.2067 +17.7004 204.708 93.1508 +15.7022 204.386 93.0046 +13.7787 205.048 93.3057 +11.7494 204.059 92.8555 +9.79691 204.235 92.9359 +7.83145 204.123 92.8849 +5.86887 203.996 92.8269 +3.91457 204.126 92.8862 +1.95823 204.24 92.9379 +1.45439e-14 203.884 92.776 +-1.95911 204.331 92.9794 +-3.91283 204.035 92.8448 +-5.87934 204.36 92.9926 +-7.83843 204.305 92.9678 +-9.76638 203.599 92.6464 +-11.7494 204.059 92.8555 +-13.681 203.594 92.6443 +-15.7092 204.476 93.0456 +-17.7004 204.708 93.1508 +-19.6013 203.924 92.7942 +-21.6132 204.304 92.9674 +-23.6339 204.668 93.1326 +-25.5726 204.292 92.9616 +-27.5303 204.08 92.8655 +-29.4467 203.583 92.6393 +-31.481 203.883 92.7756 +-33.4641 203.805 92.74 +-35.495 203.98 92.8199 +-37.3998 203.421 92.5656 +-39.366 203.207 92.4679 +-41.2217 202.438 92.1183 +-43.4472 203.444 92.576 +-45.416 203.18 92.4558 +-47.4662 203.257 92.4906 +-49.4348 202.961 92.356 +-51.5138 203.093 92.4161 +-53.6457 203.384 92.5486 +-55.5453 202.773 92.2707 +-57.7627 203.294 92.5076 +-59.7613 203.003 92.3751 +-61.8657 203.046 92.395 +-64.1132 203.51 92.6058 +-66.062 202.993 92.3705 +-68.298 203.331 92.5246 +-70.5757 203.735 92.7085 +-72.6808 203.6 92.6468 +-74.5666 202.843 92.3022 +-76.9318 203.361 92.5383 +-79.0455 203.172 92.4521 +-81.4008 203.563 92.6298 +-83.5945 203.505 92.6037 +-85.7575 203.343 92.53 +-87.7037 202.654 92.2164 +-90.1678 203.131 92.4335 +-92.6094 203.501 92.6016 +-94.6351 202.924 92.3395 +-96.6966 202.416 92.1079 +-99.081 202.555 92.1713 +-101.6 202.92 92.3374 +-103.753 202.518 92.1543 +-106.422 203.082 92.4111 +-108.716 202.884 92.3208 +-111.059 202.745 92.2579 +-113.452 202.667 92.2222 +-116.084 202.969 92.3598 +-118.448 202.762 92.2657 +-120.769 202.454 92.1253 +-123.433 202.681 92.2285 +-126.011 202.722 92.2475 +-128.25 202.187 92.004 +-130.945 202.336 92.0719 +-135.919 205.892 93.6897 +-139.037 206.512 93.9721 +-142.018 206.867 94.1333 +-143.781 205.424 93.4768 +-143.621 201.296 91.5985 +-143.448 197.264 89.7637 +-144.831 195.438 88.9328 +-146.982 194.655 88.5766 +-150.392 195.494 88.9581 +-614.035 783.538 356.544 +-616.939 772.887 351.697 +-620.757 763.568 347.456 +-623.42 753.011 342.653 +-628.12 745.07 339.039 +-630.991 735.103 334.504 +-634.654 726.217 330.46 +-637.627 716.692 326.126 +-642.312 709.213 322.723 +-644.587 699.202 318.167 +-648.864 691.496 314.661 +-651.729 682.399 310.521 +-655.132 673.994 306.696 +-658.692 665.855 302.993 +-662.619 658.182 299.502 +-664.607 648.7 295.187 +-668.736 641.416 291.872 +-671.457 632.872 287.984 +-675.747 625.891 284.808 +-678.469 617.54 281.007 +-683.08 610.979 278.022 +-685.603 602.621 274.219 +-689.613 595.649 271.046 +-692.446 587.728 267.442 +-696.432 580.853 264.313 +-702.643 575.847 262.035 +-115.04 92.6379 42.1543 +-114.565 90.6462 41.248 +-113.072 87.9002 39.9984 +-112.762 86.1212 39.1889 +-111.654 83.7749 38.1212 +-110.976 81.7966 37.221 +-110.739 80.1753 36.4833 +-110.164 78.3401 35.6481 +-109.641 76.5755 34.8452 +-110.371 75.7017 34.4476 +-109.566 73.7935 33.5792 +-110.269 72.9204 33.182 +-110.068 71.4604 32.5176 +-110.258 70.2702 31.976 +-109.691 68.6185 31.2244 +-110.262 67.6937 30.8036 +-110.073 66.3129 30.1753 +-110.034 65.0395 29.5958 +-110.484 64.0652 29.1525 +-110.585 62.8959 28.6204 +-111.27 62.0627 28.2412 +-111.775 61.1296 27.8166 +-111.409 59.7313 27.1803 +-111.371 58.5256 26.6317 +-112.537 57.9525 26.3709 +-113.088 57.0564 25.9632 +-113.28 55.9823 25.4744 +-114.077 55.2086 25.1223 +-114.158 54.0902 24.6134 +-115.296 53.4707 24.3315 +-116.341 52.7965 24.0247 +-117.383 52.1099 23.7123 +-118.148 51.2931 23.3406 +-119.542 50.7373 23.0877 +-129.033 53.5227 24.3551 +-154.206 62.4914 28.4363 +-161.586 63.95 29.1 +-161.365 62.344 28.3692 +-163.157 61.5128 27.991 +-162.906 59.9076 27.2606 +-879.338 315.274 143.463 +-3058.88 1068.74 486.324 +-166.353 56.6113 25.7606 +-3078.9 1019.99 464.141 +-885.612 285.448 129.891 +-890.395 279.055 126.982 +-896.64 273.07 124.259 +-902.267 266.837 121.422 +-381.964 109.618 49.8808 +-382.522 106.446 48.4378 +-382.857 103.223 46.9707 +-383.351 100.052 45.5282 +-381.405 96.2741 43.8089 +-3164.86 771.865 351.232 +-3172.14 746.697 339.78 +-405.972 92.13 41.9232 +-406.451 88.8171 40.4156 +-406.41 85.401 38.8612 +-407.799 82.2879 37.4446 +-407.105 78.7618 35.84 +-405.395 75.0716 34.1608 +-405.707 71.7793 32.6627 +-405.003 68.3218 31.0894 +-406.233 65.1972 29.6676 +-404.377 61.5925 28.0273 +-406.137 58.5492 26.6424 +-405.497 55.1596 25.1 +-405.713 51.8986 23.6161 +-405.204 48.5554 22.0948 +-405.654 45.335 20.6294 +-403.887 41.8846 19.0593 +-406.461 38.8843 17.694 +-405.524 35.541 16.1727 +-404.555 32.2154 14.6594 +-404.449 28.9723 13.1837 +-404.512 25.7461 11.7156 +-405.343 22.5654 10.2682 +-405.743 19.3545 8.80713 +-404.315 16.0675 7.31141 +-148.709 4.72669 2.15085 +-3275.38 78.0664 35.5236 +-145.878 2.31764 1.05463 +-145.894 1.15886 0.527332 +120.3 5.77316e-15 5.68434e-14 +120.295 0.959407 0.426167 +120.282 1.91874 0.852301 +119.959 2.87075 1.27518 +120.127 3.83372 1.70293 +120.685 4.81551 2.13904 +120.435 5.76825 2.56225 +120.175 6.71735 2.98383 +120.805 7.72014 3.42927 +120.627 8.67611 3.85391 +121.337 9.70154 4.30941 +121.14 10.66 4.73517 +121.033 11.6258 5.16414 +121.613 12.663 5.62489 +121.388 13.6212 6.05053 +121.254 14.5889 6.48035 +121.011 15.5426 6.904 +120.759 16.4935 7.32639 +120.498 17.4417 7.74756 +121.017 18.5076 8.22102 +121.328 19.5514 8.6847 +120.154 20.3517 9.04019 +120.936 21.4836 9.54296 +120.629 22.429 9.96292 +120.41 23.3901 10.3899 +120.768 24.4683 10.8688 +120.432 25.4099 11.287 +120.963 26.5401 11.789 +120.705 27.5038 12.2171 +120.438 28.4654 12.6443 +120.741 29.5667 13.1335 +121.225 30.7239 13.6475 +120.831 31.6643 14.0652 +120.332 32.5748 14.4697 +120.208 33.5867 14.9191 +120.55 34.7364 15.4299 +121.165 35.979 15.9818 +120.532 36.8568 16.3717 +120.932 38.0548 16.9039 +120.187 38.8957 17.2774 +120.469 40.0716 17.7997 +120.924 41.3188 18.3537 +120.152 42.1507 18.7232 +120.582 43.4087 19.2821 +120.256 44.403 19.7237 +120.566 45.6401 20.2732 +120.218 46.6356 20.7154 +120.685 47.957 21.3024 +120.131 48.8805 21.7126 +120.479 50.1778 22.2889 +119.995 51.1367 22.7148 +120.315 52.4458 23.2963 +120.528 53.7239 23.864 +119.832 54.6015 24.2539 +120.108 55.9285 24.8433 +120.367 57.264 25.4366 +120.522 58.565 26.0145 +120.046 59.5676 26.4598 +120.173 60.8771 27.0415 +119.413 61.7432 27.4262 +119.685 63.1502 28.0512 +119.939 64.566 28.6801 +119.318 65.5202 29.1039 +119.284 66.8034 29.674 +118.896 67.8976 30.16 +112.171 65.3077 29.0095 +116.407 69.0867 30.6882 +119.246 72.131 32.0404 +119.299 73.5392 32.666 +118.592 74.4878 33.0874 +119.023 76.1647 33.8322 +119.187 77.6947 34.5118 +118.602 78.7497 34.9805 +119.132 80.5623 35.7856 +118.997 81.9493 36.4017 +118.686 83.2291 36.9702 +118.832 84.8477 37.6892 +118.722 86.3041 38.3361 +118.67 87.8228 39.0107 +118.676 89.4053 39.7136 +118.737 91.0533 40.4457 +118.699 92.6498 41.1548 +119.923 95.2717 42.3195 +118.784 96.0431 42.6621 +117.788 96.925 43.0539 +116.195 97.3052 43.2228 +113.433 96.67 42.9406 +112.433 97.508 43.3129 +109.555 96.6864 42.9479 +107.986 96.9807 43.0786 +105.783 96.6746 42.9427 +103.594 96.341 42.7945 +101.351 95.9151 42.6053 +99.8802 96.1893 42.7271 +98.276 96.3136 42.7823 +96.204 95.948 42.6199 +93.8121 95.2178 42.2956 +94.4234 97.5364 43.3255 +94.0789 98.9063 43.934 +93.9751 100.557 44.6671 +94.8112 103.263 45.8691 +94.8393 105.143 46.7042 +94.3981 106.535 47.3225 +94.7467 108.857 48.354 +94.5656 110.616 49.1354 +93.9928 111.947 49.7265 +93.8831 113.859 50.5761 +93.7441 115.78 51.429 +94.2808 118.593 52.6786 +94.1319 120.605 53.5725 +93.9518 122.624 54.4692 +93.9102 124.875 55.4691 +93.8885 127.21 56.5063 +93.5533 129.174 57.3787 +93.2422 131.217 58.2864 +93.5976 134.269 59.6418 +93.4778 136.715 60.7286 +93.7885 139.871 62.1303 +93.3249 141.945 63.0518 +93.4886 145.046 64.4292 +93.1 147.369 65.4611 +93.1173 150.413 66.8129 +92.9865 153.308 68.099 +93.38 157.176 69.8174 +93.0962 160.013 71.0775 +92.8576 163.019 72.4126 +93.0227 166.847 74.1131 +92.943 170.364 75.6752 +92.9785 174.219 77.388 +92.8612 177.924 79.0337 +92.6802 181.639 80.6839 +91.2325 182.954 81.2676 +90.3769 185.512 82.4039 +88.2432 185.47 82.3856 +90.0245 193.823 86.0956 +83.9607 185.246 82.2857 +91.5539 207.092 91.99 +88.9132 206.283 91.6307 +86.51 205.961 91.4874 +84.435 206.387 91.6766 +82.0506 206.021 91.5142 +79.88 206.151 91.5719 +77.6154 206.003 91.5061 +75.455 206.093 91.5463 +73.1134 205.645 91.347 +71.2973 206.655 91.7959 +68.8535 205.818 91.4241 +66.8572 206.272 91.6254 +64.6921 206.182 91.5857 +62.6407 206.426 91.6941 +60.486 206.3 91.638 +58.1883 205.625 91.338 +56.2468 206.169 91.58 +53.9492 205.366 91.2231 +52.0762 206.145 91.569 +50.0192 206.195 91.5913 +47.8821 205.87 91.4472 +45.8945 206.156 91.5739 +43.8479 206.155 91.5735 +41.8048 206.137 91.5658 +39.7133 205.833 91.4306 +37.6474 205.601 91.3275 +35.6514 205.712 91.377 +33.5971 205.446 91.2589 +31.6201 205.616 91.3344 +29.5772 205.317 91.2012 +27.6765 205.998 91.5041 +25.5613 205.031 91.0746 +23.6443 205.591 91.323 +21.6324 205.317 91.2012 +19.61 204.844 90.9914 +17.6533 204.992 91.0571 +15.7022 205.217 91.157 +13.7603 205.608 91.3307 +11.7494 204.888 91.0108 +9.78819 204.882 91.0084 +7.85239 205.501 91.2832 +5.86364 204.642 90.9016 +3.91108 204.773 90.9597 +1.95911 205.161 91.1322 +1.44329e-14 204.895 91.0141 +-1.95387 204.613 90.8886 +-3.91108 204.773 90.9597 +-5.86625 204.734 90.9422 +-7.84192 205.227 91.1614 +-9.77947 204.701 90.9276 +-11.7442 204.797 90.9702 +-13.6932 204.605 90.885 +-15.6534 204.578 90.8732 +-17.6219 204.628 90.8955 +-19.6275 205.026 91.0721 +-21.6228 205.225 91.1606 +-23.5398 204.681 90.9191 +-25.5613 205.031 91.0746 +-27.5303 204.91 91.0206 +-29.512 204.864 91.0003 +-31.467 204.621 90.8923 +-33.4493 204.543 90.8574 +-35.3385 203.907 90.5753 +-37.3338 203.888 90.5667 +-39.4181 204.302 90.7506 +-41.3675 203.98 90.6077 +-43.2373 203.284 90.2984 +-45.4559 204.185 90.6987 +-47.2791 203.279 90.296 +-49.5863 204.41 90.7985 +-51.4688 203.74 90.501 +-53.4123 203.322 90.315 +-55.642 203.952 90.5951 +-57.8628 204.474 90.8269 +-59.7872 203.917 90.5793 +-61.7588 203.52 90.4031 +-63.8652 203.546 90.4149 +-65.8348 203.117 90.2241 +-68.0934 203.545 90.4145 +-70.3351 203.866 90.557 +-72.4954 203.906 90.5748 +-74.4397 203.321 90.3146 +-76.7039 203.583 90.4311 +-79.0455 203.998 90.6154 +-81.0246 203.445 90.3698 +-83.5245 204.161 90.6877 +-85.5424 203.658 90.4644 +-87.887 203.903 90.5732 +-89.9805 203.534 90.4092 +-92.1502 203.314 90.3118 +-94.6351 203.749 90.505 +-97.0156 203.909 90.5761 +-99.2437 203.712 90.4884 +-101.31 203.163 90.2444 +-103.837 203.506 90.397 +-106.121 203.33 90.3187 +-108.322 202.969 90.1583 +-111.059 203.569 90.425 +-113.407 203.408 90.3536 +-115.76 203.227 90.2728 +-118.025 202.86 90.11 +-120.817 203.356 90.3305 +-123.045 202.865 90.1121 +-125.519 202.751 90.0617 +-127.9 202.454 89.9298 +-130.539 202.529 89.9631 +-135.352 205.868 91.446 +-138.932 207.196 92.0359 +-141.541 207.01 91.9535 +-143.996 206.567 91.7566 +-143.621 202.114 89.7788 +-143.448 198.066 87.9804 +-144.775 196.157 87.1324 +-146.982 195.447 86.817 +-150.162 195.988 87.0577 +-615.197 788.211 350.122 +-618.291 777.729 345.466 +-622.898 769.316 341.729 +-625.406 758.48 336.915 +-629.764 750.056 333.173 +-632.838 740.251 328.818 +-636.832 731.672 325.007 +-639.641 721.878 320.657 +-643.33 713.223 316.812 +-646.13 703.725 312.593 +-650.097 695.626 308.996 +-653.172 686.691 305.027 +-657.054 678.717 301.485 +-659.763 669.648 297.457 +-664.24 662.474 294.27 +-666.176 652.874 290.005 +-669.494 644.752 286.398 +-672.916 636.824 282.876 +-677.709 630.26 279.96 +-679.812 621.277 275.97 +-684.364 614.615 273.011 +-686.898 606.213 269.279 +-691.354 599.58 266.332 +-693.762 591.239 262.627 +-697.833 584.387 259.583 +-702.346 577.943 256.721 +-115.264 93.1963 41.3976 +-114.263 90.7747 40.322 +-112.464 87.7827 38.9929 +-112.455 86.2362 38.306 +-110.96 83.5922 37.1315 +-110.432 81.7263 36.3027 +-109.956 79.9323 35.5058 +-109.691 78.3209 34.79 +-109.324 76.6642 34.0541 +-110.292 75.9545 33.7388 +-109.244 73.876 32.8156 +-110.269 73.2168 32.5228 +-109.743 71.5386 31.7773 +-110.176 70.5034 31.3175 +-109.362 68.6903 30.5121 +-110.096 67.8666 30.1462 +-109.489 66.2293 29.4189 +-110.117 65.3536 29.03 +-110.231 64.1784 28.5079 +-110.501 63.1031 28.0303 +-110.928 62.1239 27.5953 +-111.175 61.0486 27.1177 +-111.839 60.206 26.7434 +-111.804 58.9919 26.2041 +-112.276 58.053 25.787 +-112.564 57.0225 25.3293 +-113.104 56.1226 24.9295 +-113.812 55.3043 24.566 +-114.957 54.6899 24.2931 +-115.831 53.937 23.9587 +-116.968 53.2966 23.6743 +-116.933 52.1214 23.1522 +-118.87 51.8163 23.0167 +-120.176 51.214 22.7491 +-131.216 54.6498 24.2753 +-158.043 64.3066 28.5649 +-161.953 64.3557 28.5867 +-161.733 62.7403 27.8691 +-162.326 61.448 27.2951 +-163.555 60.3907 26.8254 +-899.249 323.723 143.797 +-3058.88 1073.09 476.663 +-165.791 56.6493 25.1635 +-3078.9 1024.14 454.92 +-886.837 287.004 127.487 +-891.151 280.427 124.565 +-898.347 274.701 122.022 +-3116.14 925.31 411.021 +-382.917 110.337 49.0116 +-381.948 106.718 47.404 +-384.295 104.031 46.2106 +-382.967 100.358 44.579 +-381.983 96.8116 43.0035 +-893.868 218.888 97.2296 +-407.59 96.3337 42.7912 +-407.718 92.9029 41.2673 +-405.964 89.0713 39.5653 +-406.41 85.7481 38.0892 +-406.725 82.4047 36.604 +-406.127 78.8919 35.0436 +-405.395 75.3767 33.4822 +-405.707 72.071 32.0138 +-406.773 68.8993 30.6049 +-404.953 65.2559 28.9865 +-404.673 61.8881 27.4906 +-406.039 58.7728 26.1068 +-405.398 55.3703 24.5954 +-405.317 52.0588 23.1244 +-404.906 48.7169 21.64 +-405.654 45.5193 20.2196 +-406.073 42.2825 18.7818 +-404.273 38.8321 17.2492 +-405.226 35.6591 15.8397 +-404.754 32.3623 14.3753 +-403.951 29.0542 12.9058 +-404.213 25.8315 11.4743 +-404.943 22.6348 10.0543 +-404.645 19.3805 8.60879 +-403.815 16.1129 7.15731 +-3274.5 104.502 46.4196 +-3275.38 78.3837 34.8179 +-145.878 2.32706 1.03368 +-146.894 1.17155 0.5204 +120.4 4.44089e-15 5.68434e-14 +120.295 0.963213 0.417494 +120.282 1.92635 0.834956 +120.859 2.90376 1.2586 +121.026 3.87774 1.68077 +120.685 4.83462 2.09551 +121.234 5.82955 2.52675 +120.974 6.78881 2.94253 +120.905 7.75716 3.36226 +120.527 8.70332 3.77236 +120.44 9.668 4.19049 +121.14 10.7023 4.63881 +120.138 11.5855 5.02162 +120.719 12.6198 5.4699 +121.388 13.6753 5.9274 +121.155 14.6347 6.34326 +121.902 15.7191 6.81329 +120.759 16.5589 7.1773 +121.288 17.6257 7.63969 +121.017 18.581 8.05372 +121.427 19.6448 8.51484 +121.039 20.5829 8.92144 +120.838 21.5513 9.34116 +120.629 22.518 9.76017 +120.41 23.4829 10.1784 +120.768 24.5653 10.6476 +120.627 25.5519 11.0752 +120.963 26.6453 11.5491 +120.511 27.5685 11.9492 +120.438 28.5783 12.3869 +120.741 29.684 12.8662 +120.454 30.6496 13.2847 +120.734 31.7646 13.768 +121.291 32.9646 14.2881 +120.112 33.6931 14.6039 +120.55 34.8742 15.1158 +121.069 36.0933 15.6443 +121.291 37.236 16.1395 +120.837 38.1758 16.5469 +120.47 39.1419 16.9656 +120.469 40.2305 17.4375 +120.924 41.4827 17.9802 +120.899 42.5808 18.4562 +120.675 43.6145 18.9042 +120.256 44.5791 19.3223 +119.735 45.5051 19.7237 +120.954 47.1074 20.4182 +120.043 47.8912 20.7579 +120.131 49.0744 21.2708 +120.57 50.4149 21.8518 +119.995 51.3396 22.2526 +120.405 52.6934 22.8394 +120.438 53.8967 23.3609 +119.921 54.859 23.778 +120.108 56.1503 24.3377 +119.569 57.1099 24.7536 +119.816 58.4527 25.3357 +119.959 59.7601 25.9024 +120.085 61.0742 26.4719 +120.283 62.4399 27.0639 +119.598 63.3548 27.4604 +119.939 64.8222 28.0965 +120.089 66.2053 28.696 +119.284 67.0684 29.0701 +119.066 68.2641 29.5884 +112.424 65.7146 28.4833 +117.246 69.8604 30.2803 +119.412 72.5184 31.4323 +119.464 73.9335 32.0457 +118.592 74.7833 32.414 +119.023 76.4668 33.1437 +119.187 78.0029 33.8095 +119.249 79.4935 34.4556 +119.051 80.8274 35.0338 +118.917 82.2193 35.6371 +118.844 83.671 36.2663 +118.832 85.1842 36.9222 +118.643 86.5893 37.5312 +118.748 88.2289 38.2419 +118.676 89.7599 38.9055 +118.584 91.2965 39.5715 +118.547 92.898 40.2656 +119.169 95.0478 41.1974 +119.833 97.2746 42.1626 +118.755 98.1077 42.5237 +116.932 98.3114 42.612 +115.042 98.4297 42.6633 +113.811 99.0949 42.9516 +110.85 98.2178 42.5714 +109.27 98.5224 42.7035 +106.42 97.6425 42.3221 +104.786 97.8361 42.406 +102.601 97.4828 42.2529 +101.05 97.7021 42.3479 +98.8898 97.2993 42.1734 +97.4201 97.5462 42.2803 +94.0129 95.8001 41.5235 +93.4957 96.9617 42.027 +94.0133 99.2298 43.0101 +93.6504 100.607 43.607 +94.1041 102.899 44.6004 +94.6484 105.348 45.6619 +94.5869 107.171 46.4521 +93.813 108.211 46.9031 +94.4425 110.911 48.0731 +94.0536 112.463 48.746 +93.823 114.238 49.5151 +94.2794 116.902 50.67 +93.693 118.321 51.2848 +93.7255 120.56 52.2556 +94.0665 123.261 53.426 +93.7969 125.219 54.2746 +93.7207 127.487 55.2577 +93.5533 129.686 56.211 +93.8958 132.661 57.5007 +93.7051 134.955 58.4949 +93.6367 137.49 59.5937 +93.3705 139.8 60.5947 +93.3764 142.586 61.8025 +93.4886 145.621 63.1181 +93.1 147.954 64.129 +93.1173 151.009 65.4533 +92.9865 153.916 66.7132 +93.2845 157.638 68.3266 +93.0962 160.648 69.631 +93.2732 164.398 71.2564 +93.0227 167.509 72.6049 +92.943 171.04 74.1352 +92.9785 174.911 75.8131 +92.8612 178.63 77.4253 +92.7224 182.443 79.0781 +91.191 183.596 79.5776 +90.0922 185.66 80.4724 +88.7615 187.301 81.1835 +90.8841 196.449 85.1488 +84.1904 186.489 80.8315 +91.2916 207.318 89.8599 +88.5467 206.248 89.3962 +86.5817 206.949 89.7 +84.2249 206.69 89.5875 +82.0164 206.752 89.6145 +79.7465 206.623 89.5584 +77.4852 206.472 89.4932 +75.2647 206.389 89.457 +73.3297 207.071 89.7529 +71.147 207.038 89.7382 +68.9412 206.898 89.6777 +66.7436 206.738 89.6085 +64.4716 206.294 89.416 +62.5605 206.98 89.7131 +60.3307 206.586 89.5425 +58.1132 206.173 89.3636 +56.2226 206.898 89.6777 +53.9025 206.002 89.2892 +52.0312 206.783 89.628 +49.911 206.565 89.5334 +47.9029 206.777 89.6252 +45.7749 206.434 89.4765 +43.8097 206.793 89.632 +41.7137 206.504 89.5067 +39.7133 206.649 89.57 +37.6309 206.326 89.4296 +35.6358 206.437 89.4781 +33.5675 206.081 89.3234 +31.6062 206.341 89.4363 +29.512 205.677 89.1484 +27.5303 205.723 89.1683 +25.5047 205.389 89.0235 +23.6339 206.315 89.4248 +21.6036 205.857 89.2263 +19.5839 205.382 89.0207 +17.567 204.8 88.7682 +15.6464 205.299 88.9846 +13.7359 206.057 89.313 +11.7756 206.159 89.3576 +9.76638 205.237 88.9579 +7.84192 206.041 89.3063 +5.87411 205.821 89.2108 +3.90585 205.31 88.9893 +1.953 205.333 88.9993 +1.44329e-14 205.433 89.0426 +-1.95649 205.7 89.1583 +-3.91108 205.585 89.1086 +-5.85317 205.087 88.8927 +-7.80353 205.033 88.8692 +-9.80128 205.97 89.2757 +-11.7494 205.701 89.1587 +-13.7054 205.599 89.1146 +-15.6603 205.481 89.0637 +-17.6219 205.44 89.0458 +-19.5839 205.382 89.0207 +-21.5365 205.218 88.9496 +-23.4771 204.946 88.8318 +-25.4481 204.933 88.8259 +-27.4572 205.177 88.9317 +-29.4467 205.222 88.9511 +-31.3696 204.796 88.7666 +-33.4493 205.354 89.0084 +-35.2603 204.263 88.5356 +-37.2017 203.973 88.4099 +-39.1403 203.667 88.2775 +-41.2399 204.158 88.4902 +-43.2564 204.18 88.4998 +-45.2565 204.096 88.4632 +-47.4247 204.713 88.7304 +-49.1751 203.519 88.213 +-51.5363 204.816 88.7754 +-53.529 204.574 88.6704 +-55.5211 204.316 88.5586 +-57.6375 204.486 88.6322 +-59.606 204.105 88.4672 +-61.839 204.592 88.6783 +-63.6998 203.825 88.3459 +-65.9484 204.275 88.5407 +-68.1811 204.616 88.6887 +-70.0645 203.888 88.3729 +-72.2173 203.93 88.3912 +-74.4714 204.214 88.5145 +-76.769 204.564 88.666 +-78.7784 204.114 88.4711 +-81.0246 204.252 88.5308 +-83.2093 204.197 88.5069 +-85.3991 204.123 88.4747 +-87.6304 204.114 88.4711 +-89.8681 204.085 88.4584 +-92.1502 204.121 88.4739 +-94.5179 204.304 88.5535 +-96.896 204.466 88.6235 +-98.9997 204.017 88.429 +-101.227 203.801 88.3355 +-103.499 203.648 88.2691 +-105.777 203.474 88.1935 +-108.453 204.022 88.431 +-110.345 203.063 88.0154 +-112.998 203.48 88.1963 +-115.345 203.3 88.118 +-118.072 203.745 88.3113 +-120.339 203.357 88.143 +-123.045 203.669 88.2783 +-125.47 203.476 88.1943 +-127.95 203.337 88.1343 +-130.133 202.7 87.8583 +-134.682 205.661 89.1416 +-138.462 207.314 89.8579 +-141.541 207.831 90.0822 +-143.996 207.386 89.8893 +-143.621 202.916 87.9518 +-143.448 198.851 86.19 +-144.216 196.174 85.0295 +-146.02 194.936 84.4931 +-150.22 196.841 85.3187 +-617.229 793.951 344.13 +-619.878 782.818 339.304 +-624.564 774.433 335.67 +-627.151 763.614 330.98 +-631.346 754.924 327.214 +-634.439 745.068 322.942 +-638.264 736.226 319.109 +-641.026 726.31 314.811 +-645.238 718.176 311.286 +-647.351 707.851 306.81 +-651.656 700.06 303.433 +-654.222 690.522 299.299 +-658.247 682.647 295.886 +-661.302 673.873 292.083 +-665.051 665.914 288.633 +-668.086 657.343 284.918 +-672.041 649.772 281.637 +-674.235 640.604 277.663 +-679.391 634.331 274.944 +-681.51 625.299 271.029 +-686.361 618.854 268.235 +-688.912 610.402 264.572 +-692.66 603.095 261.405 +-695.737 595.273 258.015 +-699.75 588.317 255 +-114.667 94.7312 41.0602 +-114.141 92.6539 40.1599 +-113.659 90.6533 39.2927 +-111.932 87.7138 38.0186 +-111.306 85.6936 37.143 +-110.651 83.6903 36.2747 +-110.355 81.9928 35.5389 +-110.113 80.3636 34.8327 +-109.849 78.7445 34.131 +-109.324 76.9683 33.3611 +-109.892 75.9796 32.9325 +-109.968 74.6603 32.3607 +-109.784 73.1837 31.7207 +-109.173 71.4494 30.969 +-109.766 70.5199 30.5661 +-109.197 68.8588 29.8461 +-109.599 67.828 29.3993 +-109.489 66.492 28.8203 +-109.698 65.363 28.3309 +-110.484 64.5808 27.9918 +-110.585 63.402 27.4809 +-111.525 62.7059 27.1792 +-111.775 61.6216 26.7092 +-111.839 60.4449 26.1992 +-111.717 59.1801 25.651 +-112.276 58.2833 25.2623 +-113.088 57.5156 24.9295 +-113.895 56.7393 24.593 +-114.695 55.9544 24.2528 +-114.868 54.8644 23.7804 +-115.653 54.0676 23.435 +-116.699 53.3852 23.1392 +-117.562 52.6096 22.8031 +-119.773 52.4168 22.7195 +-120.901 51.7273 22.4206 +-134.856 56.3885 24.441 +-153.293 62.6211 27.1424 +-161.494 64.428 27.9256 +-160.904 62.6664 27.1621 +-163.157 62.0078 26.8766 +-162.628 60.2866 26.1306 +-3048.51 1101.79 477.561 +-3058.88 1077.34 466.963 +-3069.01 1052.81 456.328 +-3078.9 1028.2 445.662 +-889.288 288.939 125.238 +-893.61 282.315 122.367 +-899.675 276.198 119.715 +-383.656 114.375 49.5747 +-382.059 110.527 47.9068 +-381.948 107.142 46.4394 +-382.857 104.053 45.1007 +-383.543 100.908 43.7375 +-383.814 97.6618 42.3304 +-897.828 220.73 95.6729 +-405.17 96.1414 41.6715 +-407.136 93.1375 40.3694 +-404.7 89.1463 38.6395 +-406.41 86.0883 37.314 +-407.799 82.9501 35.9538 +-407.105 79.3956 34.4132 +-407.257 76.0232 32.9515 +-405.216 72.2694 31.3244 +-404.314 68.7546 29.8009 +-404.362 65.4191 28.3552 +-406.152 62.3607 27.0296 +-404.952 58.848 25.507 +-404.507 55.4678 24.0419 +-404.425 52.1503 22.604 +-403.815 48.7784 21.1425 +-406.249 45.7669 19.8372 +-405.377 42.3774 18.368 +-404.572 39.015 16.9106 +-403.832 35.6774 15.464 +-404.854 32.4987 14.0862 +-404.748 29.2271 12.6682 +-405.111 25.9916 11.2658 +-405.542 22.7582 9.86428 +-405.244 19.4862 8.44608 +-405.314 16.2368 7.03767 +-147.21 4.7167 2.0444 +-3275.38 78.6946 34.1093 +-145.078 2.32347 1.00708 +-145.894 1.16819 0.506338 +120.4 4.44089e-15 5.68434e-14 +120.295 0.96694 0.408788 +120.282 1.93381 0.817544 +120.859 2.91499 1.23236 +120.127 3.86382 1.63348 +120.685 4.85332 2.05181 +121.034 5.84246 2.46998 +120.874 6.80946 2.87879 +120.905 7.78717 3.29214 +121.425 8.80205 3.72119 +121.337 9.77772 4.13367 +121.14 10.7437 4.54207 +121.033 11.717 4.95354 +120.719 12.6686 5.35583 +121.289 13.717 5.79904 +121.155 14.6914 6.21098 +121.011 15.6646 6.62245 +120.759 16.623 7.02762 +121.288 17.694 7.48037 +120.82 18.6225 7.87292 +120.54 19.5769 8.27641 +121.039 20.6626 8.73539 +120.936 21.6523 9.1538 +120.727 22.6234 9.56438 +120.41 23.5738 9.96615 +121.646 24.8398 10.5014 +120.53 25.6301 10.8355 +120.963 26.7484 11.3083 +120.705 27.7197 11.7189 +121.406 28.9195 12.2261 +120.837 29.8227 12.608 +120.55 30.7928 13.0181 +120.831 31.9129 13.4916 +121.387 33.1183 14.0012 +120.781 34.0119 14.379 +120.645 35.0369 14.8123 +121.26 36.2899 15.3421 +120.627 37.1755 15.7165 +120.932 38.3536 16.2145 +120.187 39.2011 16.5728 +120.469 40.3862 17.0738 +120.924 41.6433 17.6053 +120.152 42.4816 17.9597 +120.768 43.8171 18.5243 +120.348 44.786 18.9339 +119.827 45.7164 19.3273 +120.218 47.0018 19.8707 +120.685 48.3335 20.4337 +120.223 49.3017 20.843 +120.57 50.61 21.3961 +119.995 51.5382 21.7885 +120.315 52.8576 22.3463 +120.438 54.1053 22.8738 +119.832 55.0302 23.2648 +120.108 56.3676 23.8302 +119.569 57.3308 24.2374 +119.816 58.6789 24.8073 +119.959 59.9914 25.3622 +120.085 61.3105 25.9199 +119.5 62.2734 26.327 +119.771 63.692 26.9267 +120.025 65.1198 27.5303 +119.489 66.1295 27.9572 +119.37 67.3761 28.4842 +118.303 68.0889 28.7856 +111.665 65.5236 27.701 +117.665 70.3817 29.7549 +119.579 72.9007 30.8198 +119.299 74.1166 31.3339 +119.663 75.7509 32.0248 +119.105 76.8154 32.4748 +119.431 78.4652 33.1723 +119.087 79.6929 33.6913 +119.373 81.3593 34.3958 +118.997 82.5928 34.9173 +119.003 84.1068 35.5574 +118.596 85.3437 36.0803 +119.035 87.2111 36.8697 +118.748 88.5703 37.4444 +119.139 90.4588 38.2427 +118.584 91.6497 38.7462 +118.547 93.2575 39.4259 +118.716 95.0526 40.1849 +119.234 97.1628 41.077 +118.977 98.6724 41.7152 +118.702 100.185 42.3546 +115.773 99.4388 42.0392 +114.682 100.239 42.3775 +112.073 99.6856 42.1435 +110.482 100.002 42.2771 +107.692 99.1919 41.9348 +106.678 99.9887 42.2716 +104.477 99.6497 42.1283 +102.909 99.8837 42.2272 +99.5718 98.3501 41.5789 +98.5686 99.0786 41.8869 +95.8864 98.0876 41.4679 +94.1583 98.0268 41.4422 +94.2101 99.8219 42.2011 +93.7154 101.066 42.7272 +93.7184 102.873 43.4912 +94.5212 105.613 44.6493 +95.0274 108.087 45.6952 +94.7467 109.711 46.3821 +94.6272 111.557 47.1624 +94.0536 112.898 47.7294 +94.0637 114.974 48.6071 +93.863 116.837 49.3944 +94.4571 119.747 50.6249 +93.7255 121.027 51.1658 +94.0665 123.738 52.3118 +93.9102 125.855 53.207 +93.6648 127.904 54.073 +93.3877 129.957 54.941 +93.2967 132.325 55.9421 +93.6513 135.4 57.2423 +93.6367 138.022 58.3509 +93.3705 140.341 59.331 +93.3249 143.06 60.4805 +93.4886 146.185 61.8018 +93.55 149.244 63.0949 +93.1665 151.674 64.1222 +92.9865 154.511 65.3219 +93.2845 158.248 66.9017 +93.0962 161.269 68.1789 +93.2732 165.034 69.7704 +93.0227 168.157 71.0908 +92.9876 171.783 72.6238 +92.8908 175.422 74.162 +92.8612 179.321 75.8107 +92.4266 182.565 77.1821 +91.0666 184.055 77.8118 +90.0922 186.379 78.7942 +88.0837 186.59 78.8834 +91.7046 198.99 84.1258 +83.9225 186.615 78.8943 +91.0669 207.607 87.769 +88.4734 206.875 87.4594 +86.3667 207.234 87.6113 +84.0498 207.058 87.5365 +81.9138 207.292 87.6358 +79.6129 207.075 87.5439 +77.4852 207.271 87.6269 +75.2329 207.101 87.5548 +73.0516 207.084 87.5478 +70.7861 206.785 87.4213 +68.7658 207.17 87.584 +66.5732 207.008 87.5155 +64.5267 207.269 87.6261 +62.3734 207.159 87.5794 +60.3307 207.385 87.6752 +57.963 206.436 87.2737 +56.1259 207.341 87.6565 +54.0193 207.246 87.6164 +51.8287 206.776 87.4174 +49.8028 206.915 87.4762 +47.7989 207.127 87.5657 +45.8546 207.594 87.7632 +43.638 206.779 87.4185 +41.5861 206.669 87.3722 +39.5744 206.723 87.3952 +37.4823 206.306 87.2188 +35.5419 206.691 87.3816 +33.4493 206.148 87.1522 +31.4949 206.41 87.2628 +29.5381 206.655 87.3664 +27.579 206.884 87.4633 +25.516 206.275 87.2055 +23.5398 206.288 87.2114 +21.527 205.92 87.0556 +19.5316 205.626 86.9314 +17.5905 205.868 87.0334 +15.6673 206.369 87.2453 +13.7176 206.579 87.334 +11.7442 206.405 87.2605 +9.76202 205.939 87.0638 +7.82098 206.286 87.2102 +5.86364 206.249 87.1946 +3.90934 206.288 87.2114 +1.95649 206.496 87.299 +1.56541e-14 205.583 86.9131 +-1.95125 205.943 87.0654 +-3.90236 205.92 87.0556 +-5.85578 205.973 87.0778 +-7.80702 205.918 87.0549 +-9.73149 205.296 86.7916 +-11.7076 205.761 86.9883 +-13.6505 205.567 86.9065 +-15.6743 206.461 87.2842 +-17.6062 206.051 87.1109 +-19.5665 205.994 87.0868 +-21.5174 205.828 87.0167 +-23.4771 205.74 86.9793 +-25.4481 205.726 86.9735 +-27.3962 205.513 86.8835 +-29.3423 205.285 86.7873 +-31.2722 204.95 86.6456 +-33.3015 205.238 86.7671 +-35.229 204.871 86.6121 +-37.2347 204.944 86.6429 +-39.3139 205.362 86.8197 +-41.1306 204.405 86.4151 +-43.0847 204.156 86.3099 +-45.117 204.254 86.3512 +-47.2375 204.694 86.5373 +-49.2184 204.487 86.4497 +-51.3788 204.981 86.6584 +-53.3423 204.65 86.5187 +-55.4727 204.928 86.6363 +-57.4372 204.563 86.482 +-59.6319 204.983 86.6596 +-61.5717 204.496 86.4536 +-63.7549 204.791 86.5782 +-65.7212 204.359 86.3956 +-67.9179 204.616 86.5042 +-69.8239 203.974 86.2328 +-72.31 204.981 86.6588 +-74.281 204.48 86.447 +-76.5411 204.746 86.5591 +-78.5114 204.21 86.3325 +-81.093 205.215 86.7577 +-82.9641 204.384 86.4061 +-85.4708 205.085 86.7024 +-87.4472 204.476 86.4451 +-89.5684 204.192 86.3251 +-91.9206 204.4 86.4131 +-94.4397 204.925 86.6351 +-96.6169 204.666 86.5253 +-98.9997 204.806 86.5849 +-100.729 203.584 86.0681 +-103.668 204.77 86.5693 +-105.82 204.344 86.3894 +-108.19 204.314 86.3765 +-110.434 204.013 86.2496 +-112.998 204.268 86.3571 +-115.068 203.596 86.0732 +-117.743 203.965 86.2289 +-120.244 203.982 86.2363 +-122.414 203.41 85.9945 +-124.928 203.381 85.9821 +-127.9 204.044 86.2624 +-130.285 203.722 86.1265 +-133.498 204.642 86.5151 +-138.096 207.566 87.7515 +-140.906 207.698 87.8072 +-143.674 207.723 87.8177 +-143.676 203.779 86.1503 +-143.504 199.697 84.4249 +-144.048 196.704 83.1593 +-145.113 194.476 82.2174 +-149.703 196.924 83.2524 +-1902.67 2456.91 1038.69 +-621.877 788.381 333.299 +-627.479 781.058 330.203 +-628.776 768.554 324.917 +-634.025 761.06 321.749 +-636.348 750.201 317.158 +-640.941 742.174 313.765 +-642.662 730.981 309.033 +-647.082 723.016 305.665 +-649.473 712.919 301.397 +-654.319 705.64 298.32 +-656.715 695.836 294.174 +-661.096 688.254 290.969 +-663.711 678.944 287.033 +-667.551 671.004 283.676 +-669.927 661.705 279.745 +-672.385 652.621 275.905 +-676.945 645.668 272.965 +-681.494 638.756 270.043 +-683.914 629.933 266.313 +-688.073 622.798 263.296 +-690.854 614.492 259.785 +-695.779 608.155 257.106 +-698.15 599.65 253.511 +-115.974 97.8822 41.3811 +-114.965 95.3446 40.3083 +-114.216 93.0742 39.3484 +-112.754 90.2789 38.1667 +-111.171 87.455 36.9728 +-110.847 85.6701 36.2182 +-110.265 83.7213 35.3944 +-110.666 82.5419 34.8958 +-109.643 80.3305 33.9609 +-109.928 79.106 33.4432 +-109.324 77.2661 32.6654 +-109.892 76.2736 32.2457 +-109.405 74.5656 31.5237 +-109.784 73.4669 31.0592 +-109.173 71.7259 30.3231 +-109.684 70.74 29.9063 +-109.856 69.5427 29.4002 +-109.765 68.1934 28.8297 +-110.406 67.3086 28.4557 +-109.866 65.7163 27.7825 +-110.906 65.0782 27.5127 +-110.755 63.745 26.9491 +-111.525 62.9485 26.6124 +-111.603 61.7652 26.1121 +-111.839 60.6787 25.6528 +-111.89 59.5012 25.155 +-112.276 58.5088 24.7354 +-113.176 57.7828 24.4285 +-113.631 56.8269 24.0244 +-114.607 56.1276 23.7288 +-115.311 55.2894 23.3744 +-116.365 54.6114 23.0877 +-117.594 54.0027 22.8304 +-118.191 53.0959 22.447 +-120.315 52.8576 22.3463 +-122.986 52.8228 22.3316 +-135.402 56.8359 24.0282 +-145.254 59.5666 25.1826 +-162.595 65.118 27.5296 +-162.101 63.3768 26.7935 +-162.048 61.8247 26.1373 +-164.39 61.1754 25.8628 +-3048.51 1106.06 467.602 +-867.856 306.845 129.723 +-3069.01 1056.88 446.812 +-3078.9 1032.18 436.368 +-891.268 290.703 122.899 +-896.541 284.338 120.208 +-3107.18 957.591 404.835 +-382.135 114.363 48.3485 +-382.059 110.955 46.9078 +-384.53 108.284 45.7785 +-381.994 104.221 44.0609 +-381.236 100.69 42.568 +-3157.34 806.496 340.958 +-905.555 223.491 94.4841 +-406.041 96.7207 40.89 +-406.263 93.298 39.4431 +-407.423 90.0932 38.0882 +-404.948 86.1106 36.4045 +-405.749 82.8524 35.027 +-406.518 79.588 33.6469 +-406.375 76.1522 32.1944 +-406.099 72.7072 30.738 +-405.494 69.222 29.2646 +-404.658 65.7202 27.7842 +-405.265 62.4653 26.4081 +-405.841 59.2054 25.0299 +-403.914 55.6008 23.506 +-405.416 52.4803 22.1868 +-405.798 49.2076 20.8032 +-405.654 45.8767 19.395 +-406.073 42.6144 18.0159 +-405.168 39.2237 16.5824 +-405.524 35.9656 15.205 +-405.152 32.6485 13.8026 +-403.552 29.2534 12.3673 +-405.011 26.0857 11.0281 +-403.845 22.7506 9.61815 +-404.944 19.5471 8.26383 +-403.815 16.2394 6.86543 +-3274.5 105.323 44.5266 +-3275.38 78.9991 33.398 +-144.278 2.31961 0.980646 +-146.194 1.17512 0.496799 +119.4 4.88498e-15 0 +120.295 0.970588 0.400048 +120.282 1.9411 0.800065 +120.159 2.90906 1.19903 +120.127 3.8784 1.59856 +120.685 4.87164 2.00794 +121.034 5.86451 2.41718 +120.774 6.8295 2.81492 +120.805 7.81011 3.2191 +120.527 8.76997 3.61472 +120.54 9.75008 4.01869 +121.14 10.7843 4.44496 +121.033 11.7612 4.84763 +120.719 12.7164 5.24132 +121.388 13.78 5.6797 +121.155 14.7468 6.07819 +121.011 15.7238 6.48086 +120.759 16.6857 6.87737 +121.288 17.7607 7.32044 +120.82 18.6927 7.7046 +120.442 19.6348 8.09287 +121.137 20.7574 8.55556 +120.936 21.734 8.95809 +120.629 22.6904 9.35231 +121.192 23.8166 9.81649 +120.865 24.7734 10.2109 +120.53 25.7268 10.6038 +121.06 26.8709 11.0754 +121.772 28.0703 11.5698 +120.534 28.8202 11.8788 +121.031 29.983 12.3581 +121.225 31.0819 12.8111 +120.927 32.0588 13.2137 +120.907 33.112 13.6478 +120.877 34.1673 14.0828 +121.122 35.308 14.5529 +121.165 36.3983 15.0023 +121.101 37.4624 15.4409 +120.837 38.4681 15.8554 +121.601 39.812 16.4093 +120.563 40.5702 16.7218 +121.486 41.9946 17.3089 +120.899 42.9069 17.6849 +121.326 44.1857 18.212 +121.09 45.2321 18.6433 +120.474 46.1366 19.0161 +120.218 47.1791 19.4458 +120.502 48.4421 19.9664 +120.223 49.4877 20.3974 +121.298 51.1076 21.065 +119.995 51.7327 21.3227 +120.946 53.3357 21.9834 +121.068 54.5931 22.5017 +120.548 55.5678 22.9034 +120.731 56.8741 23.4418 +120.101 57.8034 23.8248 +120.434 59.2041 24.4022 +120.574 60.5265 24.9472 +119.998 61.497 25.3472 +119.935 62.736 25.8579 +120.118 64.1173 26.4272 +120.887 65.8347 27.1351 +120.261 66.8075 27.5361 +119.881 67.9202 27.9947 +116.861 67.513 27.8269 +112.761 66.4166 27.375 +118.588 71.2011 29.347 +119.746 73.2779 30.203 +119.713 74.6548 30.7705 +119.581 75.9843 31.3185 +119.35 77.2644 31.8461 +119.431 78.7612 32.463 +119.411 80.2109 33.0606 +119.212 81.5562 33.6151 +119.077 82.9601 34.1937 +119.162 84.5368 34.8436 +118.911 85.8934 35.4027 +118.8 87.3675 36.0103 +118.903 89.0208 36.6917 +118.83 90.5648 37.3281 +118.813 92.1739 37.9913 +118.623 93.6695 38.6078 +119.32 95.8967 39.5258 +119.309 97.5905 40.2239 +119.498 99.4775 41.0017 +119.513 101.25 41.7322 +117.09 100.949 41.6083 +115.987 101.763 41.9437 +113.512 101.346 41.7718 +112.551 102.258 42.1475 +109.46 101.201 41.712 +109.132 102.674 42.319 +105.727 101.223 41.7211 +104.768 102.072 42.0709 +101.413 100.546 41.4422 +100.393 101.292 41.7497 +97.6931 100.312 41.3458 +96.7425 101.097 41.6693 +93.7508 99.7104 41.0977 +93.3906 101.095 41.6685 +94.2327 103.828 42.795 +93.8215 105.227 43.3715 +94.7127 108.135 44.57 +94.311 109.619 45.1816 +93.9499 111.177 45.8237 +93.9319 113.177 46.6484 +94.1239 115.482 47.5984 +94.2199 117.723 48.5221 +93.8693 119.451 49.2343 +93.8997 121.709 50.1649 +94.2386 124.432 51.2871 +94.25 126.788 52.2581 +93.7207 128.463 52.9486 +93.7741 130.987 53.9889 +93.2967 132.824 54.7461 +93.92 136.301 56.1793 +93.5837 138.465 57.071 +93.8407 141.579 58.3548 +93.3249 143.6 59.1875 +93.5393 146.816 60.5132 +93.05 149.006 61.416 +93.1173 152.165 62.7181 +92.9865 155.094 63.9253 +93.38 159.008 65.5384 +93.1901 162.041 66.7883 +93.2732 165.656 68.2787 +93.0227 168.792 69.5709 +92.9876 172.432 71.0712 +92.9785 176.25 72.645 +92.7321 179.747 74.0866 +92.5534 183.505 75.6352 +90.8593 184.33 75.9751 +89.7261 186.322 76.7964 +88.4824 188.141 77.5463 +92.2125 200.847 82.7834 +83.8459 187.148 77.137 +90.8421 207.877 85.6806 +88.1802 206.967 85.3057 +86.295 207.843 85.6669 +83.9447 207.579 85.5579 +81.8112 207.814 85.6547 +79.446 207.421 85.4928 +77.1922 207.267 85.4291 +74.9474 207.093 85.3575 +72.9898 207.69 85.6037 +70.4854 206.683 85.1887 +68.4442 206.979 85.3106 +66.3176 206.991 85.3156 +64.3613 207.519 85.5332 +62.2398 207.496 85.5236 +60.0719 207.275 85.4326 +57.9379 207.125 85.3708 +55.9807 207.585 85.5602 +53.6457 206.591 85.1506 +51.7162 207.106 85.3628 +49.7811 207.605 85.5686 +47.6742 207.366 85.4699 +45.5556 207.018 85.3266 +43.638 207.559 85.5495 +41.495 206.994 85.3167 +39.5223 207.23 85.4139 +37.4328 206.812 85.2416 +35.5263 207.379 85.4756 +33.4197 206.743 85.2134 +31.467 207.006 85.3217 +29.3684 206.243 85.0073 +27.4937 207.022 85.3285 +25.516 207.053 85.3411 +23.5294 206.975 85.3091 +21.4886 206.329 85.0427 +19.5316 206.402 85.0728 +17.4885 205.446 84.6788 +15.6394 206.778 85.2279 +13.6505 206.343 85.0484 +11.6919 206.261 85.0145 +9.7184 205.793 84.8217 +7.80353 206.603 85.1555 +5.82437 205.641 84.7592 +3.90236 206.697 85.1944 +1.9434 205.889 84.8613 +1.44329e-14 206.913 85.2836 +-1.94165 205.704 84.7851 +-3.89887 206.512 85.1182 +-5.82437 205.641 84.7592 +-7.79655 206.418 85.0793 +-9.75766 206.624 85.1643 +-11.6762 205.983 84.9002 +-13.6443 206.251 85.0103 +-15.5836 206.041 84.9238 +-17.5278 205.907 84.8686 +-19.5316 206.402 85.0728 +-21.4119 205.593 84.7394 +-23.4248 206.055 84.9299 +-25.4028 206.135 84.9627 +-27.3597 206.014 84.9128 +-29.3162 205.877 84.8564 +-31.3975 206.547 85.1327 +-33.2719 205.829 84.8366 +-35.1665 205.279 84.6098 +-37.1687 205.353 84.6403 +-39.2619 205.864 84.851 +-41.2399 205.722 84.7924 +-43.1038 205.018 84.5024 +-45.117 205.025 84.505 +-47.1752 205.196 84.5755 +-49.0669 204.626 84.3408 +-51.3788 205.754 84.8057 +-53.3189 205.332 84.6315 +-55.4727 205.701 84.784 +-57.4121 205.246 84.5961 +-59.5543 205.49 84.6967 +-61.4114 204.733 84.385 +-63.6722 205.296 84.6171 +-65.6927 205.041 84.5119 +-67.8595 205.21 84.5816 +-69.7938 204.656 84.353 +-72.2482 205.579 84.7337 +-74.2176 205.076 84.5264 +-76.5736 205.606 84.7447 +-78.5114 204.98 84.4867 +-80.8536 205.381 84.6521 +-82.6139 204.289 84.2017 +-85.1841 205.168 84.5641 +-87.2273 204.731 84.3838 +-89.6434 205.134 84.55 +-91.8823 205.086 84.5302 +-94.4006 205.613 84.7478 +-96.3776 204.928 84.4654 +-98.837 205.242 84.5946 +-100.605 204.1 84.124 +-102.992 204.202 84.1659 +-104.916 203.363 83.8202 +-108.015 204.753 84.393 +-109.899 203.79 83.9963 +-112.453 204.049 84.103 +-114.698 203.708 83.9624 +-117.65 204.572 84.3183 +-119.671 203.776 83.9906 +-122.221 203.855 84.023 +-124.731 203.826 84.0112 +-127.3 203.853 84.0222 +-129.422 203.137 83.7269 +-132.519 203.908 84.0447 +-137.574 207.561 85.5503 +-140.535 207.932 85.7035 +-143.352 208.039 85.7473 +-144.003 205.013 84.5001 +-144 201.145 82.9061 +-143.713 196.987 81.192 +-145.227 195.362 80.5225 +-148.614 196.227 80.8791 +-157.312 203.903 84.0428 +-625.345 795.769 327.992 +-630.929 788.315 324.92 +-631.906 775.294 319.553 +-638.286 769.066 316.986 +-639.241 756.456 311.789 +-644.863 749.533 308.935 +-645.494 736.973 303.758 +-651.28 730.452 301.071 +-652.622 719.08 296.383 +-658.475 712.803 293.796 +-659.733 701.671 289.208 +-664.873 694.798 286.375 +-666.387 684.255 282.029 +-672.01 678.034 279.466 +-673.269 667.515 275.13 +-676.377 658.973 271.609 +-679.445 650.498 268.116 +-685.559 644.991 265.846 +-687.379 635.514 261.94 +-692.495 629.166 259.323 +-693.947 619.572 255.369 +-699.769 613.95 253.052 +-701.149 604.498 249.156 +-114.352 96.8776 39.9301 +-114.742 95.5185 39.3699 +-112.493 92.0159 37.9262 +-112.15 90.1344 37.1507 +-110.715 87.4247 36.0339 +-110.617 85.815 35.3704 +-110.342 84.096 34.6619 +-110.044 82.388 33.9579 +-109.8 80.7487 33.2822 +-109.849 79.3475 32.7047 +-109.324 77.5577 31.967 +-109.892 76.5614 31.5563 +-109.405 74.847 30.8497 +-109.945 73.8527 30.4399 +-109.173 71.9965 29.6748 +-109.684 71.0069 29.2669 +-109.609 69.6479 28.7068 +-110.345 68.8127 28.3625 +-110.49 67.6136 27.8683 +-110.537 66.3671 27.3545 +-110.653 65.1747 26.8631 +-111.264 64.2794 26.4941 +-111.952 63.4276 26.143 +-112.46 62.4743 25.7501 +-112.443 61.2362 25.2397 +-112.583 60.0955 24.7696 +-112.972 59.0938 24.3567 +-113.176 58.0008 23.9062 +-114.774 57.6148 23.7471 +-115.048 56.5564 23.3109 +-116.819 56.2238 23.1738 +-116.811 55.0273 22.6806 +-118.758 54.7427 22.5633 +-119.09 53.7015 22.1342 +-127.716 56.3208 23.2138 +-159.51 68.7685 28.3443 +-135.22 56.9737 23.4829 +-136.484 56.1814 23.1563 +-162.32 65.2532 26.8954 +-161.549 63.3992 26.1313 +-163.342 62.5533 25.7826 +-164.019 61.2677 25.2527 +-3048.51 1110.23 457.605 +-886.061 314.463 129.612 +-874.29 302.219 124.566 +-887.728 298.726 123.126 +-894.755 292.941 120.742 +-898.715 286.104 117.923 +-381.226 117.931 48.6078 +-381.849 114.708 47.2794 +-383.776 111.874 46.111 +-383.574 108.422 44.6881 +-382.377 104.719 43.1619 +-381.621 101.171 41.6998 +-941.274 241.342 99.4739 +-409.07 101.339 41.7691 +-406.041 97.0857 40.0158 +-406.942 93.8063 38.6642 +-406.451 90.2174 37.1849 +-406.117 86.6851 35.729 +-406.725 83.3651 34.3606 +-406.127 79.8113 32.8959 +-405.689 76.3105 31.4529 +-405.412 72.858 30.0299 +-404.609 69.3316 28.5764 +-406.43 66.2572 27.3093 +-405.462 62.7315 25.856 +-404.656 59.2553 24.4233 +-403.914 55.8106 23.0035 +-405.317 52.6655 21.7071 +-405.898 49.4053 20.3634 +-405.356 46.0159 18.9664 +-403.887 42.5449 17.5358 +-404.87 39.3427 16.2159 +-405.823 36.1278 14.8908 +-405.85 32.828 13.5307 +-405.446 29.5016 12.1597 +-405.31 26.2036 10.8003 +-404.444 22.8704 9.4265 +-406.143 19.679 8.11108 +-404.515 16.3289 6.73027 +-3274.5 105.72 43.5746 +-146.65 3.5504 1.46337 +-145.878 2.35418 0.970323 +-145.894 1.17713 0.485179 diff --git a/dat/scan001.pose b/dat/scan001.pose new file mode 100644 index 0000000..147e3d2 --- /dev/null +++ b/dat/scan001.pose @@ -0,0 +1,3 @@ +-3.10605 -7.50803 156.917 +1.35694 -0.852409 -0.56224 + diff --git a/dat/scan002.3d b/dat/scan002.3d new file mode 100644 index 0000000..efa84f4 --- /dev/null +++ b/dat/scan002.3d @@ -0,0 +1,81361 @@ +360 x 225 +10.1 3.55271e-15 1.13687e-13 +10.0996 -0.0662149 0.0581712 +10.9983 -0.144225 0.126704 +10.9962 -0.216324 0.190045 +10.9933 -0.288406 0.253371 +11.2892 -0.370297 0.325314 +12.6826 -0.49934 0.438681 +12.6763 -0.582467 0.51171 +12.5693 -0.66031 0.580097 +13.8572 -0.819314 0.719785 +14.146 -0.929772 0.816825 +14.4332 -1.04408 0.917244 +14.1222 -1.1151 0.97964 +14.6055 -1.25017 1.0983 +18.4614 -1.70294 1.49607 +31.0322 -3.06927 2.69642 +33.174 -3.50262 3.07713 +38.8683 -4.36403 3.83389 +40.6928 -4.84197 4.25378 +41.8185 -5.25736 4.6187 +50.2252 -6.65324 5.84501 +63.9116 -8.89895 7.81792 +88.6409 -12.9444 11.3719 +86.0374 -13.1505 11.553 +91.5546 -14.62 12.844 +93.2363 -15.5286 13.6422 +93.9293 -16.2914 14.3123 +94.6116 -17.0644 14.9914 +94.6038 -17.7204 15.5677 +94.3944 -18.3399 16.112 +95.0471 -19.133 16.8088 +94.6285 -19.7153 17.3203 +94.5882 -20.3763 17.901 +95.019 -21.145 18.5763 +94.9611 -21.8111 19.1615 +95.4671 -22.6136 19.8665 +95.2008 -23.2386 20.4156 +95.7807 -24.0764 21.1516 +95.4974 -24.7034 21.7024 +95.9609 -25.5291 22.4278 +95.6607 -26.1573 22.9797 +96.1962 -27.0202 23.7378 +95.7854 -27.6229 24.2673 +96.4843 -28.5527 25.0842 +96.149 -29.1841 25.6389 +96.453 -30.0147 26.3685 +96.4689 -30.7632 27.0261 +94.9157 -31.005 27.2386 +95.2828 -31.8706 27.999 +94.818 -32.4629 28.5193 +94.8904 -33.242 29.2038 +95.0422 -34.0569 29.9197 +94.7329 -34.7116 30.4949 +94.9525 -35.566 31.2455 +95.3377 -36.4942 32.0609 +94.9989 -37.1525 32.6393 +94.8286 -37.8796 33.2781 +94.0334 -38.3565 33.697 +93.4968 -38.9351 34.2053 +91.0392 -38.6957 33.995 +89.8068 -38.953 34.2211 +88.2308 -39.0446 34.3015 +86.4882 -39.0412 34.2985 +85.264 -39.2535 34.485 +83.6175 -39.2536 34.4851 +81.8933 -39.1948 34.4335 +79.9253 -38.9937 34.2568 +78.969 -39.2674 34.4972 +77.4321 -39.2375 34.471 +75.49 -38.9777 34.2427 +74.2971 -39.0833 34.3355 +72.9448 -39.089 34.3405 +71.7598 -39.1684 34.4102 +69.614 -38.6989 33.9978 +68.6827 -38.8825 34.1591 +67.197 -38.7368 34.0311 +66.7445 -39.1758 34.4168 +65.6608 -39.2378 34.4712 +63.726 -38.7685 34.0589 +63.2732 -39.1847 34.4246 +61.5134 -38.7771 34.0665 +61.0606 -39.179 34.4195 +59.8485 -39.0849 34.3369 +58.6432 -38.9779 34.2429 +57.5937 -38.9588 34.2261 +56.2543 -38.7258 34.0214 +55.1441 -38.632 33.9391 +54.6207 -38.9403 34.2099 +53.6627 -38.9316 34.2023 +52.4952 -38.7554 34.0474 +51.4067 -38.62 33.9285 +50.4655 -38.5804 33.8937 +49.3207 -38.3694 33.7083 +48.942 -38.7458 34.039 +47.8763 -38.5707 33.8851 +46.886 -38.4399 33.7703 +47.0399 -39.2484 34.4805 +45.3895 -38.5425 33.8604 +45.0713 -38.9519 34.2201 +43.578 -38.3319 33.6754 +43.0025 -38.5011 33.824 +42.2992 -38.5496 33.8667 +41.8498 -38.8255 34.109 +41.086 -38.8044 34.0905 +40.018 -38.4803 33.8057 +39.5086 -38.6815 33.9826 +38.6967 -38.5791 33.8926 +38.6635 -39.2541 34.4855 +37.4419 -38.7159 34.0128 +36.9908 -38.96 34.2272 +35.9059 -38.524 33.8442 +35.457 -38.7579 34.0497 +35.0055 -38.989 34.2526 +33.9441 -38.5278 33.8475 +33.4408 -38.6859 33.9864 +32.9902 -38.9036 34.1777 +32.4841 -39.0547 34.3104 +32.0814 -39.3303 34.5525 +31.1083 -38.8951 34.1702 +30.6553 -39.0976 34.3481 +30.2 -39.297 34.5233 +29.2992 -38.9051 34.179 +28.4583 -38.5701 33.8846 +28.0569 -38.8211 34.1052 +27.6519 -39.0699 34.3238 +26.7352 -38.5833 33.8963 +26.3768 -38.8911 34.1666 +25.9241 -39.0625 34.3172 +25.0748 -38.6232 33.9313 +24.6683 -38.854 34.134 +24.2583 -39.0823 34.3347 +23.4716 -38.693 33.9926 +23.0213 -38.8454 34.1265 +22.5692 -38.9948 34.2578 +21.7637 -38.5189 33.8397 +21.3537 -38.7295 34.0247 +20.903 -38.8681 34.1464 +20.4508 -39.0036 34.2655 +19.6744 -38.505 33.8275 +19.2264 -38.6325 33.9395 +18.7085 -38.6159 33.9249 +18.326 -38.8787 34.1557 +17.6132 -38.4291 33.7608 +17.3883 -39.0418 34.299 +17.1195 -39.583 34.7745 +16.3283 -38.9056 34.1794 +15.7296 -38.6519 33.9566 +15.3368 -38.8977 34.1724 +14.912 -39.069 34.3229 +14.2438 -38.5861 33.8987 +13.8209 -38.7505 34.0431 +13.17 -38.2578 33.6103 +12.9428 -38.9987 34.2612 +12.466 -39.0091 34.2703 +11.7874 -38.3573 33.6977 +11.4929 -38.9465 34.2153 +10.9777 -38.7999 34.0866 +10.5864 -39.0913 34.3425 +10.151 -39.233 34.467 +9.56737 -38.7809 34.0699 +9.0818 -38.6942 33.9936 +8.665 -38.9005 34.1749 +8.22845 -39.03 34.2887 +7.65653 -38.488 33.8125 +7.34834 -39.2807 34.509 +6.76126 -38.5825 33.8956 +6.39814 -39.1474 34.3918 +5.84129 -38.516 33.8372 +5.40412 -38.6276 33.9352 +4.96481 -38.7363 34.0307 +4.51467 -38.7674 34.058 +4.05634 -38.7206 34.0169 +3.59943 -38.6708 33.9731 +3.15621 -38.7679 34.0585 +2.70054 -38.7121 34.0094 +2.25948 -38.8784 34.1555 +1.80779 -38.8917 34.1672 +1.33502 -38.3013 33.6485 +0.90578 -38.9847 34.2489 +0.452907 -38.9891 34.2528 +9.76996e-15 -38.9155 34.1881 +-0.452035 -38.914 34.1868 +-0.902289 -38.8344 34.1169 +-1.35597 -38.9021 34.1763 +-1.80081 -38.7416 34.0354 +-2.25512 -38.8034 34.0896 +-2.711 -38.8621 34.1412 +-3.16231 -38.8429 34.1243 +-3.61339 -38.8207 34.1048 +-4.11126 -39.2449 34.4775 +-4.54953 -39.0668 34.321 +-5.00315 -39.0355 34.2935 +-5.44593 -38.9265 34.1977 +-5.92053 -39.0385 34.2962 +-6.39814 -39.1474 34.3918 +-6.7221 -38.3591 33.6993 +-7.18133 -38.3879 33.7246 +-7.73043 -38.8595 34.1389 +-8.18152 -38.8074 34.0931 +-8.71451 -39.1228 34.3702 +-9.18599 -39.1381 34.3836 +-9.34868 -37.8945 33.2911 +-9.96023 -38.4955 33.8191 +-10.407 -38.4287 33.7605 +-10.853 -38.359 33.6992 +-11.3198 -38.3598 33.6999 +-11.7649 -38.2841 33.6334 +-12.1858 -38.1324 33.5002 +-12.8461 -38.7072 34.0051 +-13.2952 -38.6214 33.9298 +-13.9503 -39.1134 34.3619 +-14.1904 -38.4413 33.7715 +-14.912 -39.069 34.3229 +-15.3652 -38.9696 34.2357 +-15.8465 -38.9393 34.209 +-16.0878 -38.3324 33.6759 +-16.8105 -38.8685 34.1468 +-17.2931 -38.828 34.1113 +-17.776 -38.7842 34.0728 +-18.5263 -39.3036 34.529 +-18.9821 -39.1806 34.421 +-19.4015 -38.9843 34.2485 +-19.8536 -38.8557 34.1355 +-20.5974 -39.2832 34.5112 +-21.0904 -39.2164 34.4524 +-21.5068 -39.0071 34.2686 +-22.0372 -39.003 34.265 +-22.7686 -39.3393 34.5604 +-23.306 -39.3258 34.5486 +-23.8034 -39.2399 34.4731 +-24.6809 -39.7632 34.9328 +-24.7974 -39.0574 34.3128 +-25.557 -39.366 34.5839 +-26.058 -39.2642 34.4945 +-26.9216 -39.6943 34.8723 +-27.3355 -39.4496 34.6573 +-27.8397 -39.3353 34.5569 +-28.5818 -39.5474 34.7432 +-29.0401 -39.3585 34.5773 +-30.0378 -39.8859 35.0406 +-30.4 -39.5573 34.7519 +-31.2644 -39.8744 35.0305 +-31.7778 -39.7323 34.9056 +-32.1859 -39.4583 34.665 +-33.12 -39.8193 34.9821 +-33.635 -39.664 34.8456 +-34.2578 -39.631 34.8167 +-34.8824 -39.5928 34.7831 +-35.341 -39.3626 34.5809 +-36.0801 -39.439 34.648 +-36.9957 -39.6933 34.8714 +-37.5715 -39.5716 34.7645 +-38.4412 -39.7492 34.9205 +-38.9609 -39.556 34.7508 +-39.9003 -39.7791 34.9468 +-40.4826 -39.6352 34.8204 +-41.4956 -39.9011 35.0539 +-41.833 -39.51 34.7103 +-42.7938 -39.7012 34.8784 +-43.2533 -39.4192 34.6306 +-44.4166 -39.7672 34.9363 +-45.5263 -40.0458 35.1811 +-46.449 -40.1426 35.2661 +-46.9135 -39.8366 34.9973 +-48.0436 -40.0858 35.2162 +-48.3723 -39.6586 34.8409 +-49.5131 -39.8893 35.0436 +-49.8369 -39.4542 34.6614 +-50.9879 -39.6664 34.8478 +-52.1476 -39.8664 35.0235 +-53.2451 -40.0011 35.1419 +-54.421 -40.1772 35.2965 +-54.8137 -39.7667 34.9359 +-56.2165 -40.0781 35.2094 +-57.1919 -40.0666 35.1994 +-58.4661 -40.2485 35.3591 +-59.5259 -40.2658 35.3744 +-60.2909 -40.0731 35.2051 +-61.5843 -40.2185 35.3328 +-63.0377 -40.4475 35.534 +-64.1945 -40.4673 35.5514 +-65.3566 -40.475 35.5581 +-66.446 -40.4232 35.5126 +-68.4 -40.8746 35.9092 +-69.5813 -40.8409 35.8796 +-71.3225 -41.115 36.1204 +-72.6758 -41.1431 36.1451 +-73.8744 -41.0673 36.0785 +-75.5622 -41.2437 36.2335 +-77.0967 -41.314 36.2952 +-78.0652 -41.0655 36.0769 +-80.0227 -41.318 36.2988 +-81.9918 -41.5481 36.5009 +-83.3886 -41.465 36.4279 +-84.6219 -41.285 36.2698 +-86.3633 -41.3342 36.313 +-88.0274 -41.3237 36.3038 +-90.0388 -41.4516 36.4161 +-92.1455 -41.5949 36.542 +-94.0899 -41.6375 36.5794 +-96.1288 -41.6952 36.6301 +-98.8724 -42.0252 36.92 +-100.669 -41.9217 36.8291 +-102.909 -41.9771 36.8778 +-105.512 -42.1473 37.0273 +-107.861 -42.1824 37.0582 +-109.95 -42.0876 36.9749 +-113.03 -42.3373 37.1943 +-115.225 -42.2204 37.0916 +-118.419 -42.4337 37.2789 +-121.355 -42.513 37.3486 +-124.665 -42.6816 37.4967 +-97.0185 -32.4512 28.509 +-98.0337 -32.0236 28.1334 +-97.9417 -31.2329 27.4388 +-94.9748 -29.5547 25.9644 +-62.8631 -19.0808 16.7629 +-49.4982 -14.6481 12.8686 +-44.4384 -12.8153 11.2585 +-39.0592 -10.9712 9.6384 +-36.3661 -9.94388 8.73591 +-18.193 -4.84 4.25204 +-14.9392 -3.86449 3.39504 +-15.3628 -3.86175 3.39263 +-14.7414 -3.59837 3.16125 +-15.0687 -3.56937 3.13577 +-14.9184 -3.42652 3.01027 +-15.3411 -3.41393 2.99921 +-15.0918 -3.2511 2.85616 +-13.009 -2.71035 2.3811 +-13.7161 -2.76107 2.42566 +-12.8764 -2.50175 2.19784 +-13.2931 -2.48994 2.18746 +-12.5436 -2.26239 1.98756 +-13.4463 -2.33216 2.04886 +-12.9847 -2.16263 1.89991 +-12.9115 -2.06179 1.81133 +-12.2491 -1.87223 1.64479 +-13.5465 -1.9782 1.73789 +-12.979 -1.80717 1.58764 +-13.1964 -1.74811 1.53575 +-13.4135 -1.68633 1.48147 +-13.0375 -1.55131 1.36286 +-14.3407 -1.61014 1.41454 +-13.4676 -1.42196 1.24922 +-13.4837 -1.33361 1.17161 +-13.8956 -1.28178 1.12608 +-12.7177 -1.08858 0.956342 +-12.9288 -1.02087 0.896856 +-11.9448 -0.864066 0.759101 +-11.6555 -0.766079 0.673017 +-11.3649 -0.671956 0.590328 +-11.1727 -0.586942 0.515641 +-10.8797 -0.499913 0.439184 +-11.1847 -0.440363 0.386869 +-10.6898 -0.350635 0.308041 +-10.6935 -0.280541 0.246461 +-10.9962 -0.216324 0.190045 +-10.3984 -0.136358 0.119794 +-10.8996 -0.0714596 0.0627788 +11 -1.77636e-15 -1.7053e-13 +10.0996 -0.0656873 0.0587663 +10.9983 -0.143076 0.128001 +10.9962 -0.2146 0.191989 +11.8928 -0.309517 0.276905 +11.2892 -0.367347 0.328642 +11.8837 -0.464158 0.415253 +11.8778 -0.541428 0.484382 +12.9683 -0.675844 0.604635 +13.5581 -0.795242 0.711453 +13.8471 -0.902875 0.807745 +13.6369 -0.978617 0.875508 +13.6249 -1.06727 0.954818 +14.0094 -1.18959 1.06425 +18.7591 -1.71662 1.53575 +32.6185 -3.20046 2.86325 +33.9662 -3.55769 3.18284 +38.6705 -4.30722 3.8534 +39.7051 -4.68681 4.19299 +41.5226 -5.17857 4.63294 +48.3541 -6.35434 5.68483 +55.9472 -7.72794 6.9137 +76.1743 -11.0352 9.87249 +84.3715 -12.7931 11.4452 +92.3371 -14.6275 13.0863 +91.3813 -15.0984 13.5076 +93.9293 -16.1616 14.4588 +94.6116 -16.9284 15.1448 +94.6038 -17.5792 15.727 +94.3944 -18.1938 16.2769 +95.0471 -18.9806 16.9807 +94.8212 -19.5981 17.5332 +95.4533 -20.3989 18.2496 +95.019 -20.9765 18.7664 +94.7698 -21.5937 19.3185 +95.4671 -22.4334 20.0698 +96.0567 -23.2607 20.8098 +95.7807 -23.8845 21.368 +95.4974 -24.5065 21.9245 +96.0552 -25.3506 22.6796 +95.7547 -25.9744 23.2376 +96.1962 -26.8049 23.9807 +95.8787 -27.4295 24.5395 +96.4843 -28.3252 25.3408 +96.149 -28.9516 25.9012 +96.915 -29.9181 26.7658 +96.0087 -30.3725 27.1724 +94.3655 -30.5797 27.3578 +94.9174 -31.4954 28.1769 +95.4549 -32.4206 29.0047 +94.9811 -33.0087 29.5308 +95.1325 -33.8177 30.2545 +95.0025 -34.5331 30.8946 +94.9525 -35.2827 31.5652 +94.6249 -35.9327 32.1467 +95.265 -36.9597 33.0655 +95.0935 -37.6828 33.7125 +94.1213 -38.0865 34.0736 +93.4968 -38.6249 34.5552 +91.0392 -38.3874 34.3428 +89.547 -38.5309 34.4712 +86.9384 -38.1661 34.1449 +86.4882 -38.7301 34.6494 +83.8145 -38.2787 34.2455 +82.8543 -38.5854 34.5199 +81.1343 -38.5221 34.4633 +80.1769 -38.8048 34.7162 +78.6354 -38.79 34.703 +76.9347 -38.6748 34.5999 +75.49 -38.6671 34.593 +74.2971 -38.7719 34.6868 +72.9448 -38.7776 34.6919 +70.7081 -38.2867 34.2527 +69.614 -38.3905 34.3456 +68.4431 -38.4381 34.3882 +67.2764 -38.4735 34.4198 +66.1141 -38.4966 34.4405 +64.8782 -38.4612 34.4088 +63.726 -38.4596 34.4074 +62.6559 -38.4933 34.4376 +61.59 -38.5161 34.4579 +60.3002 -38.3827 34.3386 +59.1692 -38.3334 34.2945 +58.0441 -38.2723 34.2399 +57.5194 -38.5985 34.5316 +56.328 -38.4676 34.4146 +55.0709 -38.2734 34.2408 +54.0404 -38.2197 34.1927 +53.5908 -38.5696 34.5058 +52.4952 -38.4466 34.3958 +51.5481 -38.4177 34.3699 +50.3253 -38.1667 34.1454 +49.1818 -37.9565 33.9573 +48.8732 -38.383 34.3389 +47.9445 -38.3179 34.2806 +46.8184 -38.0787 34.0666 +46.4377 -38.4372 34.3874 +45.4557 -38.2912 34.2567 +44.4152 -38.0791 34.067 +43.578 -38.0265 34.0199 +43.581 -38.7081 34.6297 +42.2356 -38.185 34.1617 +41.4093 -38.1107 34.0952 +40.4635 -37.9119 33.9174 +40.0796 -38.2324 34.2041 +39.5695 -38.4325 34.3832 +39.118 -38.6884 34.612 +37.4738 -37.7431 33.7664 +37.5595 -38.5281 34.4686 +36.4101 -38.0427 34.0344 +35.9059 -38.217 34.1904 +35.457 -38.4491 34.398 +34.9496 -38.6164 34.5477 +33.9441 -38.2208 34.1938 +33.8765 -38.8777 34.7814 +32.5604 -38.0908 34.0774 +32.537 -38.8068 34.718 +31.5589 -38.3815 34.3375 +31.1083 -38.5852 34.5198 +30.2493 -38.2723 34.2399 +29.75 -38.4031 34.3568 +29.3977 -38.7248 34.6447 +28.5068 -38.3279 34.2895 +28.1047 -38.5773 34.5127 +27.6519 -38.7586 34.6749 +26.8276 -38.4081 34.3613 +26.3314 -38.5148 34.4568 +25.9687 -38.818 34.728 +25.031 -38.2485 34.2185 +24.6252 -38.4771 34.4231 +23.8779 -38.163 34.1421 +23.4302 -38.3168 34.2797 +22.9806 -38.4678 34.4147 +22.5293 -38.6158 34.5471 +21.7637 -38.212 34.1859 +21.3155 -38.3521 34.3112 +20.8656 -38.4892 34.4339 +20.0843 -37.9994 33.9957 +19.9611 -38.7548 34.6715 +19.1914 -38.2548 34.2242 +18.7769 -38.4482 34.3972 +18.0256 -37.9366 33.9395 +17.6132 -38.1229 34.1062 +17.3883 -38.7307 34.6499 +17.0886 -39.1967 35.0668 +16.1178 -38.098 34.0839 +15.7004 -38.2727 34.2402 +15.3368 -38.5877 34.522 +14.912 -38.7577 34.6741 +14.2438 -38.2786 34.2455 +13.8209 -38.4417 34.3914 +13.3953 -38.6024 34.5351 +12.7251 -38.0372 34.0295 +12.2559 -38.046 34.0374 +11.8099 -38.1243 34.1074 +11.2981 -37.9814 33.9796 +10.9569 -38.4179 34.3701 +10.407 -38.1225 34.1058 +9.97931 -38.2619 34.2305 +9.56737 -38.4719 34.4184 +9.11653 -38.5327 34.4728 +8.53296 -38.0025 33.9984 +8.19717 -38.5718 34.5078 +7.64175 -38.1076 34.0925 +7.20917 -38.2297 34.2017 +6.76126 -38.2751 34.2423 +6.28846 -38.1697 34.1481 +5.85261 -38.2832 34.2496 +5.41457 -38.3939 34.3486 +4.96481 -38.4277 34.3788 +4.51467 -38.4585 34.4064 +4.04064 -38.2635 34.2319 +3.60641 -38.4371 34.3872 +3.15621 -38.459 34.4069 +2.711 -38.5525 34.4905 +2.21586 -37.8241 33.8388 +1.77289 -37.8371 33.8505 +1.33241 -37.9217 33.9262 +0.886582 -37.8544 33.866 +0.446799 -38.1568 34.1365 +6.21725e-15 -37.9347 33.9378 +-0.443308 -37.8587 33.8698 +-0.902289 -38.525 34.4659 +-1.35597 -38.5921 34.526 +-1.80081 -38.433 34.3836 +-2.22459 -37.973 33.9721 +-2.71624 -38.6269 34.5571 +-3.15621 -38.459 34.4069 +-3.59943 -38.3627 34.3207 +-4.0328 -38.1892 34.1655 +-4.47981 -38.1615 34.1407 +-4.99356 -38.6502 34.5779 +-5.36231 -38.0233 34.0171 +-5.92053 -38.7275 34.6471 +-6.27627 -38.0957 34.0818 +-6.7221 -38.0535 34.044 +-7.30659 -38.7463 34.6639 +-7.61218 -37.9602 33.9606 +-8.18152 -38.4982 34.4419 +-8.54947 -38.076 34.0642 +-9.16862 -38.7528 34.6697 +-9.49447 -38.1788 34.1562 +-9.96023 -38.1887 34.1651 +-10.3871 -38.0495 34.0405 +-10.6867 -37.4702 33.5222 +-11.3414 -38.1269 34.1097 +-11.7649 -37.9791 33.9775 +-12.2092 -37.901 33.9077 +-12.8219 -38.3265 34.2883 +-13.2952 -38.3137 34.2769 +-13.7174 -38.1538 34.1339 +-14.1904 -38.135 34.117 +-14.6639 -38.1129 34.0972 +-15.0812 -37.9446 33.9466 +-15.8173 -38.5578 34.4952 +-16.3283 -38.5956 34.529 +-16.8105 -38.5588 34.4962 +-17.2614 -38.448 34.397 +-17.7435 -38.4048 34.3583 +-18.2259 -38.3581 34.3166 +-18.9821 -38.8684 34.7731 +-19.1213 -38.1152 34.0993 +-19.8536 -38.5461 34.4848 +-20.3042 -38.4154 34.3679 +-21.0904 -38.9039 34.8049 +-21.5451 -38.7652 34.6808 +-22.0372 -38.6922 34.6155 +-22.4894 -38.5474 34.486 +-23.2653 -38.9444 34.8411 +-23.7619 -38.8594 34.7651 +-24.2583 -38.7709 34.6859 +-24.8405 -38.8135 34.724 +-25.6447 -39.1864 35.0576 +-25.701 -38.4177 34.37 +-26.8762 -39.3116 35.1697 +-26.9661 -38.6065 34.5388 +-27.8866 -39.0877 34.9693 +-28.2955 -38.8394 34.7471 +-29.0886 -39.1101 34.9894 +-29.9394 -39.4383 35.283 +-30.35 -39.1776 35.0497 +-31.2136 -39.4924 35.3314 +-31.2628 -38.7769 34.6913 +-32.2382 -39.2075 35.0765 +-32.696 -38.9964 34.8876 +-33.1514 -38.7823 34.6961 +-34.3123 -39.3777 35.2287 +-35.1584 -39.5881 35.417 +-35.341 -39.049 34.9347 +-35.627 -38.6334 34.5628 +-37.1678 -39.5602 35.392 +-37.4553 -39.1349 35.0116 +-38.4412 -39.4324 35.2777 +-38.8419 -39.1211 34.9992 +-39.9003 -39.4621 35.3043 +-40.3609 -39.2011 35.0708 +-41.434 -39.5244 35.36 +-41.8952 -39.2534 35.1176 +-42.9197 -39.5008 35.3389 +-43.3805 -39.2201 35.0878 +-44.4166 -39.4503 35.2937 +-44.8769 -39.16 35.034 +-45.9897 -39.429 35.2747 +-46.3171 -39.0168 34.9059 +-47.3744 -39.2126 35.081 +-47.8318 -38.9029 34.804 +-48.8993 -39.081 34.9633 +-49.355 -38.7614 34.6774 +-50.9879 -39.3503 35.2043 +-51.5168 -39.0704 34.9538 +-52.6087 -39.2081 35.077 +-53.7078 -39.3347 35.1903 +-54.7418 -39.398 35.2469 +-56.144 -39.7074 35.5237 +-57.1919 -39.7474 35.5595 +-57.8025 -39.4746 35.3155 +-58.9314 -39.546 35.3793 +-60.1411 -39.6551 35.4769 +-61.4334 -39.8002 35.6068 +-62.5814 -39.8348 35.6377 +-64.2711 -40.1928 35.958 +-65.3566 -40.1525 35.9219 +-66.5237 -40.148 35.9179 +-67.6956 -40.1314 35.903 +-69.5813 -40.5155 36.2467 +-70.7671 -40.4697 36.2057 +-72.4362 -40.6807 36.3945 +-73.6333 -40.6071 36.3286 +-75.1577 -40.6961 36.4082 +-76.364 -40.5952 36.318 +-78.3109 -40.8665 36.5607 +-79.2809 -40.6089 36.3303 +-80.997 -40.7169 36.4268 +-82.6381 -40.7645 36.4694 +-84.6219 -40.9561 36.6408 +-85.8572 -40.7646 36.4695 +-87.773 -40.876 36.5692 +-88.9304 -40.6151 36.3358 +-91.374 -40.9181 36.6068 +-93.4006 -41.0031 36.6829 +-96.1288 -41.3629 37.0048 +-97.828 -41.25 36.9037 +-100.931 -41.6961 37.3029 +-102.119 -41.3225 36.9687 +-104.718 -41.4966 37.1244 +-107.062 -41.5367 37.1602 +-109.683 -41.6508 37.2623 +-112.404 -41.7672 37.3665 +-114.776 -41.7207 37.3249 +-117.246 -41.6785 37.2871 +-121.627 -42.2688 37.8152 +-123.846 -42.0634 37.6314 +-97.9321 -32.4958 29.0719 +-97.8503 -31.709 28.368 +-97.7576 -30.9258 27.6673 +-90.9097 -28.0642 25.1073 +-59.5252 -17.9237 16.0352 +-47.2652 -13.8758 12.4138 +-42.8513 -12.2592 10.9675 +-38.0289 -10.5967 9.48017 +-35.8023 -9.71172 8.68847 +-15.7421 -4.15461 3.71686 +-16.0738 -4.12486 3.69025 +-15.5525 -3.87828 3.46965 +-14.7414 -3.5697 3.19359 +-15.7363 -3.69781 3.3082 +-15.1096 -3.44279 3.08005 +-14.4782 -3.19622 2.85946 +-15.1879 -3.24574 2.90376 +-12.3345 -2.54934 2.28073 +-13.1366 -2.62333 2.34693 +-12.6827 -2.4445 2.18694 +-11.5465 -2.14556 1.9195 +-12.2519 -2.19217 1.9612 +-13.2514 -2.28005 2.03982 +-12.5942 -2.08087 1.86162 +-12.8137 -2.02987 1.816 +-13.033 -1.97617 1.76796 +-13.8409 -2.0051 1.79384 +-13.7656 -1.90143 1.70109 +-13.9843 -1.83771 1.64408 +-13.6107 -1.69749 1.51864 +-13.0375 -1.53895 1.3768 +-13.1539 -1.46512 1.31075 +-12.8735 -1.34839 1.20632 +-13.5828 -1.33271 1.1923 +-13.5979 -1.24432 1.11322 +-12.7177 -1.07991 0.966126 +-11.7354 -0.919256 0.822401 +-12.2434 -0.878608 0.786036 +-12.1536 -0.792454 0.708959 +-11.2652 -0.660755 0.591136 +-10.6739 -0.556271 0.497661 +-10.0812 -0.459531 0.411114 +-11.9836 -0.468058 0.418742 +-10.6898 -0.347841 0.311192 +-10.9933 -0.286108 0.255963 +-10.3964 -0.202895 0.181517 +-10.8983 -0.141775 0.126837 +-11.7996 -0.0767435 0.0686576 +10.6 1.77636e-15 -1.7053e-13 +11.0996 -0.0716053 0.0652335 +10.1984 -0.131594 0.119884 +10.1965 -0.197379 0.179815 +11.0932 -0.286366 0.260884 +11.4891 -0.370816 0.337819 +11.4842 -0.444916 0.405325 +12.3769 -0.5596 0.509804 +12.6691 -0.65489 0.596615 +12.6609 -0.736593 0.671048 +13.0502 -0.84401 0.768906 +13.3383 -0.949417 0.864934 +13.6249 -1.05861 0.964409 +14.4068 -1.21341 1.10544 +15.4837 -1.4054 1.28034 +35.1963 -3.42536 3.12056 +36.4419 -3.78603 3.44913 +38.7694 -4.2832 3.90206 +40.1001 -4.69504 4.27725 +38.5638 -4.77053 4.34602 +41.7558 -5.44273 4.95841 +44.9347 -6.15644 5.60861 +72.2478 -10.3814 9.45761 +67.8108 -10.1987 9.29114 +83.0447 -13.0487 11.8876 +82.497 -13.5199 12.3168 +92.3703 -15.7644 14.3616 +94.0282 -16.6876 15.2026 +95.5741 -17.6154 16.0479 +95.3625 -18.2312 16.6089 +95.1437 -18.8457 17.1688 +94.9176 -19.4588 17.7273 +95.5494 -20.2538 18.4515 +95.3067 -20.8693 19.0123 +95.9174 -21.6779 19.7489 +95.6578 -22.2958 20.3118 +95.391 -22.912 20.8732 +95.9704 -23.7376 21.6253 +95.5919 -24.3317 22.1666 +96.1494 -25.1696 22.9299 +95.7547 -25.7636 23.4711 +96.2899 -26.6133 24.2451 +95.8787 -27.207 24.786 +96.5773 -28.1224 25.62 +96.2417 -28.7444 26.1866 +96.3606 -29.5056 26.8801 +95.2723 -29.895 27.2348 +95.0074 -30.538 27.8205 +95.1001 -31.3 28.5148 +95.5459 -32.1882 29.324 +95.7061 -32.9908 30.0551 +95.4033 -33.6387 30.6454 +94.8228 -34.1881 31.1459 +95.3105 -35.1284 32.0025 +95.1595 -35.8425 32.6531 +95.9746 -36.9329 33.6464 +94.0339 -36.9606 33.6717 +93.6819 -37.6011 34.2552 +92.0975 -37.7381 34.38 +90.43 -37.8212 34.4557 +89.0274 -37.9965 34.6154 +86.2491 -37.5564 34.2144 +85.8024 -38.1113 34.72 +83.3882 -37.775 34.4136 +82.1759 -37.959 34.5812 +80.4595 -37.8918 34.52 +79.1705 -38.0068 34.6248 +77.2178 -37.7817 34.4197 +76.7689 -38.2784 34.8722 +73.9241 -37.5578 34.2158 +73.4779 -38.0333 34.6489 +71.0723 -37.4756 34.1409 +70.3845 -37.8023 34.4385 +68.569 -37.5074 34.1698 +67.9639 -37.8594 34.4905 +66.721 -37.8463 34.4786 +66.2717 -38.2753 34.8694 +64.3304 -37.827 34.461 +63.182 -37.8218 34.4563 +62.0386 -37.8048 34.4408 +61.6666 -38.2511 34.8473 +59.6919 -37.6873 34.3337 +58.5655 -37.6344 34.2855 +57.2951 -37.4719 34.1375 +56.7763 -37.7907 34.4279 +55.5907 -37.6561 34.3053 +54.4859 -37.5595 34.2173 +53.4601 -37.5025 34.1653 +53.0153 -37.8459 34.4782 +51.9246 -37.7202 34.3637 +50.841 -37.5833 34.2389 +49.7646 -37.4353 34.1041 +49.4597 -37.8612 34.4922 +48.3913 -37.6962 34.3418 +47.8763 -37.9529 34.5757 +46.2779 -37.3338 34.0116 +45.9024 -37.6858 34.3323 +44.3955 -37.0946 33.7938 +44.5464 -37.8818 34.5109 +43.4481 -37.6056 34.2593 +42.6811 -37.6013 34.2554 +41.9176 -37.59 34.2451 +41.5351 -37.9164 34.5424 +40.0899 -37.2573 33.9419 +39.587 -37.4562 34.1232 +39.2042 -37.7688 34.408 +38.6967 -37.9612 34.5833 +37.5928 -37.5558 34.2139 +37.0892 -37.737 34.379 +36.0036 -37.3129 33.9926 +36.078 -38.0887 34.6994 +35.0039 -37.6498 34.2995 +34.5022 -37.8129 34.4481 +33.9993 -37.9724 34.5934 +33.4408 -38.0663 34.679 +32.6141 -37.8441 34.4766 +32.0601 -37.9277 34.5527 +31.6112 -38.133 34.7398 +30.7478 -37.8286 34.4625 +29.894 -37.516 34.1777 +29.45 -37.7074 34.352 +29.0037 -37.896 34.5238 +28.1674 -37.5643 34.2217 +27.7706 -37.8096 34.4451 +27.3702 -38.0525 34.6664 +26.4582 -37.572 34.2286 +26.0137 -37.7412 34.3829 +25.2102 -37.3784 34.0523 +25.2063 -38.204 34.8044 +24.3239 -37.6979 34.3434 +23.8779 -37.8534 34.485 +23.4716 -38.0732 34.6853 +22.6552 -37.6154 34.2682 +22.2901 -37.8957 34.5236 +21.8028 -37.97 34.5913 +21.0093 -37.4946 34.1581 +20.6408 -37.7657 34.4051 +19.8277 -37.2097 33.8986 +19.7102 -37.9573 34.5796 +18.9112 -37.3906 34.0634 +18.4691 -37.5111 34.1732 +17.7585 -37.0714 33.7726 +17.5807 -37.7437 34.3851 +17.1345 -37.8557 34.4871 +16.8723 -38.3866 34.9708 +16.208 -38.0004 34.619 +15.5542 -37.6087 34.2621 +14.8824 -37.1406 33.8357 +14.719 -37.9458 34.5692 +14.03 -37.3982 34.0703 +13.8468 -38.2013 34.8019 +12.9697 -37.0725 33.7736 +12.7735 -37.872 34.502 +12.2792 -37.8093 34.4448 +11.8099 -37.8149 34.45 +11.2981 -37.6732 34.3209 +10.7282 -37.3108 33.9907 +10.4269 -37.8857 34.5144 +9.82666 -37.371 34.0455 +9.4398 -37.651 34.3006 +8.97761 -37.6377 34.2885 +8.56597 -37.8399 34.4728 +8.08766 -37.7478 34.3888 +7.64175 -37.7985 34.435 +7.22308 -37.9927 34.612 +6.77431 -38.0379 34.6531 +6.31283 -38.0068 34.6248 +5.76204 -37.385 34.0583 +5.3205 -37.4208 34.0909 +4.97439 -38.1895 34.7912 +4.50595 -38.0729 34.685 +3.96218 -37.2161 33.9044 +3.53665 -37.3877 34.0608 +3.11348 -37.6305 34.282 +2.6639 -37.5753 34.2317 +2.22023 -37.5911 34.2461 +1.77638 -37.604 34.2578 +1.33502 -37.6879 34.3342 +0.890073 -37.695 34.3408 +0.437199 -37.0341 33.7386 +8.88178e-15 -37.9226 34.5481 +-0.445053 -37.6994 34.3447 +-0.888327 -37.6211 34.2734 +-1.32979 -37.5401 34.1996 +-1.77638 -37.604 34.2578 +-2.25948 -38.2558 34.8516 +-2.6639 -37.5753 34.2317 +-3.10127 -37.4829 34.1475 +-3.60641 -38.1252 34.7326 +-3.96218 -37.2161 33.9044 +-4.47981 -37.8519 34.4837 +-4.93606 -37.8952 34.5231 +-5.36231 -37.7149 34.3588 +-5.81865 -37.7523 34.3929 +-6.27627 -37.7866 34.4242 +-6.7221 -37.7447 34.386 +-7.16741 -37.6999 34.3452 +-7.62697 -37.7254 34.3684 +-8.05637 -37.6017 34.2557 +-8.51646 -37.6212 34.2735 +-9.06443 -38.0017 34.6201 +-9.34868 -37.2876 33.9696 +-9.80758 -37.2984 33.9794 +-10.2475 -37.2337 33.9205 +-10.7075 -37.2385 33.9248 +-11.125 -37.0958 33.7949 +-11.7649 -37.6709 34.3188 +-12.2092 -37.5935 34.2483 +-12.6525 -37.5134 34.1753 +-13.0949 -37.4303 34.0996 +-13.7433 -37.9157 34.5418 +-14.2171 -37.8968 34.5245 +-14.6363 -37.7326 34.375 +-15.1096 -37.7076 34.3522 +-15.6126 -37.7501 34.3909 +-16.0878 -37.7185 34.3621 +-16.8414 -38.3163 34.9067 +-17.0075 -37.5752 34.2316 +-17.5156 -37.6039 34.2577 +-17.9922 -37.5592 34.217 +-18.7427 -38.0669 34.6795 +-19.1213 -37.806 34.4418 +-19.8894 -38.3023 34.894 +-20.0476 -37.6223 34.2745 +-20.7532 -37.9714 34.5925 +-21.2772 -37.9726 34.5936 +-22.0763 -38.4463 35.0252 +-22.5293 -38.3025 34.8941 +-23.0213 -38.2232 34.8219 +-23.4302 -38.006 34.624 +-24.3428 -38.5903 35.1564 +-24.8405 -38.4986 35.0728 +-25.294 -38.3368 34.9255 +-25.7902 -38.2384 34.8357 +-26.2407 -38.0706 34.6829 +-26.6429 -37.8342 34.4676 +-27.558 -38.3136 34.9043 +-28.3432 -38.5891 35.1553 +-28.7007 -38.2756 34.8696 +-29.4962 -38.5393 35.1099 +-30 -38.4116 34.9935 +-30.8076 -38.6625 35.2221 +-31.2628 -38.4623 35.0397 +-31.8202 -38.3852 34.9695 +-32.696 -38.68 35.2381 +-33.2051 -38.5299 35.1014 +-33.5498 -38.1903 34.7919 +-34.3305 -38.3422 34.9304 +-35.1732 -38.5483 35.1181 +-35.457 -38.1372 34.7436 +-36.5368 -38.5731 35.1407 +-36.9908 -38.336 34.9246 +-38.0297 -38.6939 35.2507 +-38.5445 -38.5065 35.08 +-39.5392 -38.7878 35.3363 +-39.8739 -38.4139 34.9956 +-40.8799 -38.6795 35.2376 +-41.335 -38.4143 34.996 +-42.4162 -38.7207 35.2751 +-42.8717 -38.4456 35.0245 +-44.031 -38.7904 35.3387 +-44.4222 -38.4488 35.0274 +-45.9897 -39.1091 35.629 +-45.9196 -38.368 34.9539 +-47.5083 -39.0043 35.5335 +-47.8318 -38.5873 35.1536 +-48.9675 -38.8179 35.3637 +-49.4239 -38.5006 35.0746 +-50.4322 -38.6057 35.1704 +-50.9561 -38.3316 34.9207 +-52.1138 -38.5242 35.0961 +-53.2085 -38.6528 35.2133 +-54.1663 -38.6676 35.2268 +-54.6932 -38.3675 34.9534 +-56.6799 -39.072 35.5952 +-57.2127 -38.7548 35.3062 +-59.0057 -39.2746 35.7798 +-59.3173 -38.7945 35.3424 +-60.7541 -39.0409 35.5668 +-61.9731 -39.1275 35.6458 +-63.6583 -39.4866 35.9729 +-64.0448 -39.0274 35.5545 +-65.902 -39.4501 35.9397 +-67.1478 -39.4837 35.9702 +-69.0297 -39.8682 36.3205 +-69.4978 -39.4214 35.9135 +-71.6376 -39.9058 36.3548 +-72.9902 -39.9258 36.373 +-74.915 -40.2356 36.6552 +-75.1429 -39.622 36.0962 +-77.8194 -40.2806 36.6962 +-78.6216 -39.9445 36.3901 +-81.0799 -40.4279 36.8304 +-81.554 -39.9033 36.3525 +-83.9509 -40.3017 36.7155 +-84.4235 -39.7586 36.2207 +-87.349 -40.3485 36.7581 +-88.3335 -40.0153 36.4545 +-90.8597 -40.3576 36.7664 +-92.3666 -40.2202 36.6412 +-95.1762 -40.6208 37.0061 +-96.3484 -40.2965 36.7107 +-99.6192 -40.8202 37.1878 +-101.24 -40.6346 37.0187 +-104.011 -40.8823 37.2444 +-106.53 -40.9948 37.3469 +-109.416 -41.2122 37.5449 +-110.793 -40.8346 37.201 +-114.057 -41.1229 37.4636 +-115.621 -40.7675 37.1398 +-119.542 -41.2072 37.5404 +-122.208 -41.1702 37.5067 +-106.154 -34.9382 31.8292 +-97.942 -31.4812 28.6799 +-98.2179 -30.8193 28.0769 +-66.7965 -20.4531 18.6331 +-55.5383 -16.5875 15.1115 +-42.9853 -12.517 11.4031 +-40.7041 -11.5503 10.5225 +-35.5935 -9.83762 8.96222 +-32.8892 -8.84912 8.06168 +-15.8364 -4.14558 3.77669 +-15.6956 -3.99513 3.63962 +-15.837 -3.91718 3.56861 +-15.0267 -3.60928 3.28811 +-15.0687 -3.5122 3.19967 +-14.7271 -3.32841 3.03223 +-15.2452 -3.33825 3.0412 +-13.4577 -2.85264 2.59879 +-12.9126 -2.64718 2.41162 +-12.9434 -2.56379 2.33565 +-13.5541 -2.59124 2.36066 +-11.8376 -2.18181 1.98766 +-12.3491 -2.19164 1.99662 +-12.3745 -2.1119 1.92397 +-12.9847 -2.12799 1.93863 +-13.8897 -2.18247 1.98826 +-13.327 -2.00435 1.826 +-13.1538 -1.8901 1.72191 +-14.2572 -1.95336 1.77954 +-14.2797 -1.86131 1.69568 +-13.019 -1.61051 1.4672 +-13.8276 -1.61898 1.47491 +-13.1539 -1.45323 1.32392 +-12.8735 -1.33745 1.21844 +-13.5828 -1.3219 1.20427 +-13.2009 -1.19819 1.09157 +-12.9164 -1.08788 0.991078 +-12.531 -0.973612 0.886976 +-12.2434 -0.87148 0.793932 +-11.6555 -0.753809 0.686732 +-10.9661 -0.637994 0.581222 +-10.9732 -0.567228 0.516753 +-10.9795 -0.496419 0.452245 +-11.2845 -0.437179 0.398276 +-10.5899 -0.341796 0.311381 +-11.0932 -0.286366 0.260884 +-10.5964 -0.205119 0.186867 +-11.2983 -0.145785 0.132813 +-10.5996 -0.0683799 0.0622951 +11 -1.77636e-15 -1.7053e-13 +10.1996 -0.0652559 0.0605357 +10.1984 -0.130507 0.121067 +10.1965 -0.195748 0.181589 +11.0932 -0.284001 0.263458 +10.5899 -0.338972 0.314452 +11.4842 -0.441241 0.409324 +11.9776 -0.537074 0.498225 +11.6715 -0.598341 0.55506 +12.6609 -0.730508 0.677667 +13.349 -0.856209 0.794275 +13.1392 -0.92752 0.860428 +14.0228 -1.08052 1.00236 +14.1087 -1.17849 1.09324 +15.0867 -1.35805 1.25981 +35.5929 -3.43534 3.18685 +38.8185 -3.99963 3.71031 +40.3518 -4.4212 4.10139 +39.8038 -4.62185 4.28752 +36.3939 -4.46492 4.14195 +36.2409 -4.68485 4.34597 +41.1001 -5.58453 5.18058 +63.1186 -8.99471 8.34408 +63.8911 -9.52974 8.84041 +78.5453 -12.2397 11.3544 +78.9823 -12.837 11.9084 +85.4523 -14.4632 13.417 +93.0558 -16.3785 15.1938 +94.7009 -17.3102 16.0581 +94.4912 -17.9154 16.6195 +95.1437 -18.6901 17.3381 +94.9176 -19.298 17.9021 +94.6843 -19.9046 18.4648 +95.4026 -20.7177 19.2191 +95.1523 -21.3273 19.7846 +95.6578 -22.1116 20.5122 +95.4861 -22.7454 21.1001 +95.8755 -23.5183 21.8171 +95.6865 -24.1546 22.4074 +96.1494 -24.9617 23.1561 +95.7547 -25.5508 23.7026 +96.1962 -26.3678 24.4605 +95.9721 -27.0085 25.0548 +96.5773 -27.8901 25.8727 +96.0562 -28.452 26.3939 +95.6215 -29.0374 26.937 +94.7199 -29.4762 27.344 +94.3655 -30.0811 27.9051 +95.1001 -31.0415 28.7961 +94.636 -31.6183 29.3312 +94.8904 -32.4394 30.0929 +95.2227 -33.2977 30.8891 +95.6317 -34.1949 31.7214 +95.579 -34.9363 32.4091 +95.6941 -35.7461 33.1604 +95.265 -36.357 33.7271 +93.8573 -36.5864 33.94 +92.9789 -37.0106 34.3335 +91.1354 -37.0354 34.3565 +89.4726 -37.1116 34.4271 +87.7284 -37.1328 34.4468 +86.5076 -37.3578 34.6555 +84.6024 -37.2679 34.5721 +82.6208 -37.1182 34.4332 +81.667 -37.4122 34.706 +78.9414 -36.8697 34.2028 +78.9189 -37.573 34.8552 +76.4673 -37.1054 34.4213 +75.774 -37.4702 34.7597 +73.9241 -37.2476 34.5533 +72.495 -37.2145 34.5226 +70.0953 -36.6551 34.0037 +69.4946 -37.0161 34.3385 +68.1671 -36.9795 34.3046 +67.7243 -37.4142 34.7079 +65.8483 -37.0427 34.3633 +64.7745 -37.1015 34.4178 +63.626 -37.1037 34.4198 +63.2597 -37.5556 34.839 +61.3442 -37.0728 34.3911 +60.8239 -37.4167 34.7102 +59.0075 -36.9474 34.2748 +58.5655 -37.3235 34.6237 +57.2951 -37.1624 34.4742 +56.0331 -36.9879 34.3124 +54.9272 -36.8993 34.2302 +54.4859 -37.2493 34.5548 +52.7347 -36.6881 34.0342 +52.296 -37.024 34.3459 +50.5695 -36.4323 33.7969 +50.9117 -37.3246 34.6248 +49.2739 -36.76 34.1009 +48.765 -37.0211 34.3432 +47.8406 -36.9594 34.2859 +47.1943 -37.1032 34.4194 +46.2779 -37.0254 34.3471 +45.3001 -36.8842 34.2161 +44.3955 -36.7882 34.1271 +43.6935 -36.8496 34.184 +42.5388 -36.5145 33.8732 +42.0383 -36.729 34.0722 +41.3451 -36.7703 34.1105 +40.4653 -36.6346 33.9846 +40.0899 -36.9495 34.2767 +39.587 -37.1468 34.4598 +38.4737 -36.7588 34.0999 +38.6967 -37.6476 34.9244 +36.9385 -36.5972 33.95 +36.5015 -36.8322 34.1679 +35.9455 -36.9449 34.2725 +35.5044 -37.1735 34.4845 +35.0039 -37.3388 34.6379 +34.0548 -37.0143 34.3369 +33.5026 -37.1085 34.4243 +33.0051 -37.2599 34.5647 +32.0768 -36.9132 34.2431 +31.5832 -37.0548 34.3745 +30.7229 -36.7554 34.0967 +30.2842 -36.9505 34.2777 +29.7417 -37.0166 34.339 +29.4 -37.3324 34.632 +28.5113 -36.9448 34.2724 +28.119 -37.1899 34.4997 +27.3412 -36.9174 34.247 +26.9007 -37.0909 34.4079 +26.0426 -36.6763 34.0233 +25.6505 -36.9069 34.2372 +24.8978 -36.6103 33.9621 +24.3734 -36.6364 33.9863 +23.9795 -36.8571 34.1911 +23.4553 -36.8762 34.2088 +23.0569 -37.0916 34.4085 +22.6146 -37.2377 34.5441 +21.9312 -36.9776 34.3028 +21.4902 -37.1165 34.4317 +20.7032 -36.643 33.9924 +20.6034 -37.3858 34.6815 +19.8277 -36.9023 34.2329 +19.3519 -36.9592 34.2858 +18.9462 -37.1504 34.4631 +18.5033 -37.2702 34.5742 +17.7585 -36.7651 34.1057 +17.4505 -37.1546 34.467 +17.0393 -37.3344 34.6338 +16.4088 -37.0236 34.3455 +15.6968 -36.4979 33.8578 +15.5249 -37.2279 34.535 +15.1096 -37.3961 34.6911 +14.471 -36.998 34.3218 +14.03 -37.0892 34.4064 +13.3809 -36.6111 33.9628 +12.9446 -36.6952 34.0409 +12.5557 -36.9189 34.2484 +12.0691 -36.8553 34.1894 +11.585 -36.7883 34.1272 +11.1034 -36.7178 34.0618 +10.749 -37.0743 34.3925 +10.2475 -36.9261 34.2551 +9.80758 -36.9903 34.3146 +9.25756 -36.6191 33.9702 +8.97761 -37.3268 34.6267 +8.53296 -37.3828 34.6787 +8.11895 -37.5807 34.8623 +7.5235 -36.9062 34.2366 +7.09783 -37.0255 34.3473 +6.64378 -36.9968 34.3206 +6.20315 -37.0379 34.3588 +5.75072 -37.0034 34.3267 +5.31005 -37.0387 34.3595 +4.87855 -37.1443 34.4574 +4.43623 -37.174 34.4851 +3.97788 -37.0548 34.3745 +3.54363 -37.1521 34.4647 +3.10737 -37.2465 34.5523 +2.6639 -37.2649 34.5693 +2.18097 -36.6213 33.9723 +1.77289 -37.2201 34.5278 +1.31147 -36.7169 34.061 +0.890073 -37.3836 34.6795 +0.438072 -36.8015 34.1394 +2.66454e-15 -36.8029 34.1407 +-0.437199 -36.7282 34.0714 +-0.888327 -37.3103 34.6115 +-1.33241 -37.3033 34.605 +-1.7694 -37.1468 34.4598 +-2.18097 -36.6213 33.9723 +-2.6639 -37.2649 34.5693 +-3.10127 -37.1732 34.4843 +-3.53665 -37.0789 34.3968 +-3.96218 -36.9087 34.2389 +-4.47981 -37.5392 34.8238 +-4.83063 -36.7794 34.119 +-5.37276 -37.4762 34.7653 +-5.80732 -37.3675 34.6645 +-6.27627 -37.4745 34.7638 +-6.61768 -36.8515 34.1858 +-7.1535 -37.3159 34.6167 +-7.46438 -36.6161 33.9675 +-7.89994 -36.567 33.9219 +-8.46694 -37.0935 34.4104 +-9.01234 -37.4711 34.7606 +-9.33046 -36.9075 34.2378 +-9.80758 -36.9903 34.3146 +-10.0481 -36.2077 33.5886 +-10.6867 -36.8592 34.193 +-11.125 -36.7894 34.1282 +-11.5625 -36.7168 34.0609 +-11.9991 -36.6414 33.991 +-12.4348 -36.5633 33.9185 +-13.0698 -37.0501 34.3701 +-13.5104 -36.9651 34.2912 +-13.9498 -36.8773 34.2098 +-14.4158 -36.8571 34.1911 +-14.8824 -36.8338 34.1694 +-15.6126 -37.4383 34.7302 +-16.0577 -37.3369 34.6362 +-16.5942 -37.4419 34.7336 +-16.7537 -36.7087 34.0533 +-17.5156 -37.2933 34.5956 +-17.9588 -37.1798 34.4904 +-18.4007 -37.0635 34.3825 +-18.8412 -36.9444 34.272 +-19.6027 -37.4383 34.7302 +-20.011 -37.2433 34.5493 +-20.491 -37.1819 34.4923 +-21.2389 -37.5912 34.872 +-21.7247 -37.5214 34.8073 +-22.2103 -37.4482 34.7393 +-22.6146 -37.2377 34.5441 +-23.0984 -37.1583 34.4704 +-23.9202 -37.6071 34.8868 +-24.41 -37.5188 34.8049 +-25.294 -38.0201 35.27 +-25.2994 -37.2008 34.5099 +-26.2407 -37.7561 35.025 +-26.6429 -37.5217 34.8076 +-27.511 -37.9324 35.1885 +-27.9138 -37.6905 34.9642 +-28.6038 -37.8311 35.0946 +-29.5454 -38.2847 35.5154 +-29.55 -37.5229 34.8086 +-29.9955 -37.3324 34.632 +-30.8508 -37.6418 34.919 +-31.3499 -37.5055 34.7925 +-32.2721 -37.863 35.1242 +-32.7753 -37.717 34.9887 +-33.223 -37.5059 34.7929 +-33.8889 -37.5364 34.8212 +-34.7259 -37.7436 35.0134 +-35.7969 -38.1847 35.4226 +-36.1927 -37.8941 35.153 +-36.5262 -37.5418 34.8262 +-37.4419 -37.7811 35.0482 +-37.8902 -37.5402 34.8247 +-38.9976 -37.9404 35.196 +-39.4477 -37.6894 34.9632 +-40.449 -37.9556 35.21 +-40.8992 -37.6954 34.9687 +-41.8498 -37.888 35.1474 +-42.2992 -37.6188 34.8977 +-43.4524 -37.9646 35.2184 +-43.8377 -37.6294 34.9075 +-44.8088 -37.7902 35.0566 +-45.8533 -37.9962 35.2477 +-46.2369 -37.6469 34.9237 +-47.2913 -37.8361 35.0993 +-48.2855 -37.9611 35.2151 +-48.7355 -37.6507 34.9273 +-49.807 -37.8122 35.077 +-50.9561 -38.0149 35.2651 +-52.1138 -38.2059 35.4423 +-52.5666 -37.871 35.1316 +-53.5908 -37.9407 35.1962 +-54.6932 -38.0506 35.2982 +-55.8023 -38.1492 35.3897 +-57.2127 -38.4347 35.6545 +-57.5937 -38.0181 35.2681 +-58.793 -38.134 35.3756 +-60.7541 -38.7184 35.9177 +-61.745 -38.6615 35.8649 +-62.356 -38.3592 35.5845 +-63.3504 -38.2852 35.5159 +-65.2025 -38.709 35.909 +-66.3652 -38.7011 35.9016 +-67.5325 -38.6813 35.8833 +-69.4978 -39.0957 36.2677 +-70.6792 -39.0467 36.2222 +-71.7844 -38.9419 36.125 +-73.4587 -39.1275 36.2972 +-75.3871 -39.4224 36.5708 +-76.345 -39.1909 36.356 +-77.1382 -38.867 36.0556 +-79.8363 -39.479 36.6233 +-80.8035 -39.2095 36.3733 +-82.7768 -39.4098 36.5591 +-83.7488 -39.1151 36.2857 +-86.1617 -39.4713 36.6161 +-87.3104 -39.225 36.3877 +-89.7454 -39.5334 36.6737 +-91.5912 -39.553 36.692 +-93.6173 -39.6254 36.7591 +-95.6521 -39.6747 36.8049 +-98.1323 -39.8788 36.9941 +-100.361 -39.9491 37.0594 +-102.863 -40.0971 37.1967 +-104.49 -39.8776 36.993 +-108.168 -40.4057 37.483 +-109.45 -40.0066 37.1127 +-113.428 -40.5582 37.6244 +-114.809 -40.1466 37.2426 +-118.364 -40.464 37.537 +-121.662 -40.6477 37.7075 +-125.247 -40.8817 37.9245 +-97.8503 -31.1919 28.9356 +-97.7576 -30.4215 28.2209 +-59.0359 -17.9275 16.6307 +-49.6043 -14.6929 13.6301 +-41.4036 -11.9568 11.0919 +-37.7166 -10.6143 9.84647 +-32.7835 -8.98613 8.33612 +-30.3521 -8.09905 7.5132 +-15.6478 -4.06238 3.76853 +-16.0738 -4.0576 3.76409 +-15.268 -3.74524 3.47433 +-15.5973 -3.71539 3.44664 +-14.5919 -3.37296 3.12898 +-15.1096 -3.38665 3.14167 +-14.4782 -3.1441 2.91667 +-13.6499 -2.86949 2.66192 +-12.2381 -2.48817 2.30819 +-3164.66 -621.667 576.699 +-14.2318 -2.69833 2.50315 +-13.4871 -2.46529 2.28696 +-12.9325 -2.27622 2.11157 +-13.8361 -2.34182 2.17242 +-13.4729 -2.18975 2.03135 +-13.9875 -2.17968 2.02202 +-13.131 -1.95856 1.81689 +-13.7428 -1.95842 1.81676 +-13.6672 -1.85706 1.72273 +-13.5903 -1.75682 1.62974 +-14.1039 -1.73031 1.60514 +-13.1363 -1.52532 1.41499 +-12.6594 -1.38704 1.28671 +-13.5667 -1.39783 1.29672 +-13.5828 -1.31098 1.21615 +-13.4986 -1.2151 1.1272 +-12.519 -1.0457 0.970059 +-12.3321 -0.95024 0.881504 +-12.542 -0.885365 0.821323 +-10.7589 -0.690077 0.64016 +-10.667 -0.615467 0.570947 +-10.9732 -0.562542 0.521851 +-10.9795 -0.492318 0.456706 +-11.0848 -0.425893 0.395086 +-11.4891 -0.367752 0.341151 +-10.1938 -0.260974 0.242097 +-10.5964 -0.203425 0.18871 +-10.9983 -0.140742 0.130562 +-10.1996 -0.0652559 0.0605357 +11.9 0 -1.7053e-13 +10.1996 -0.0647071 0.061122 +10.1984 -0.129409 0.12224 +10.5964 -0.201713 0.190538 +11.0932 -0.281612 0.266009 +11.0894 -0.351975 0.332474 +11.9836 -0.456552 0.431257 +11.4786 -0.510367 0.48209 +11.6715 -0.593308 0.560436 +11.7636 -0.67303 0.635742 +12.4524 -0.791985 0.748105 +13.6369 -0.954562 0.901675 +13.7244 -1.04863 0.990531 +13.6119 -1.12743 1.06496 +15.3845 -1.3732 1.29712 +34.7006 -3.32105 3.13705 +39.6107 -4.04692 3.8227 +40.2529 -4.37326 4.13097 +38.8162 -4.46925 4.22163 +36.5912 -4.45136 4.20474 +34.7637 -4.45609 4.20921 +39.5268 -5.3256 5.03054 +56.0509 -7.92036 7.48153 +61.3433 -9.07273 8.57006 +69.4485 -10.7311 10.1366 +77.0298 -12.4143 11.7265 +85.2574 -14.3089 13.5161 +92.1807 -16.088 15.1967 +94.6038 -17.1471 16.197 +94.4912 -17.7648 16.7805 +95.1437 -18.5329 17.5061 +94.9176 -19.1357 18.0755 +94.6843 -19.7371 18.6436 +95.4026 -20.5435 19.4053 +95.1523 -21.1479 19.9763 +95.6578 -21.9256 20.7109 +95.391 -22.5316 21.2833 +95.1169 -23.136 21.8541 +95.5919 -23.9278 22.6021 +96.1494 -24.7517 23.3803 +96.6004 -25.5596 24.1435 +96.2899 -26.1714 24.7214 +95.9721 -26.7813 25.2975 +96.5773 -27.6555 26.1233 +96.8907 -28.4578 26.8811 +95.9911 -28.9044 27.303 +94.7199 -29.2282 27.6089 +94.4572 -29.857 28.2028 +95.1001 -30.7804 29.075 +95.4549 -31.6236 29.8715 +95.1623 -32.2587 30.4714 +95.4033 -33.0802 31.2474 +94.643 -33.5568 31.6976 +95.579 -34.6424 32.7231 +95.8723 -35.5115 33.544 +94.9102 -35.9169 33.9269 +94.4754 -36.5177 34.4944 +92.2758 -36.4218 34.4039 +90.873 -36.6181 34.5893 +88.9504 -36.5847 34.5577 +87.4686 -36.7114 34.6774 +85.8183 -36.7483 34.7123 +83.831 -36.6174 34.5886 +82.8766 -36.92 34.8744 +80.6494 -36.6353 34.6055 +79.3631 -36.7549 34.7186 +78.1641 -36.9007 34.8562 +76.4673 -36.7932 34.7547 +75.2766 -36.9111 34.8661 +73.9241 -36.9343 34.888 +72.0035 -36.6513 34.6207 +70.0953 -36.3468 34.3331 +69.4946 -36.7047 34.6711 +68.0867 -36.6252 34.596 +67.0854 -36.7496 34.7135 +65.9277 -36.7754 34.7379 +64.7745 -36.7895 34.7512 +63.7043 -36.8369 34.796 +62.5602 -36.8279 34.7875 +61.3442 -36.761 34.7243 +60.1345 -36.6814 34.6491 +59.0075 -36.6367 34.6068 +57.7353 -36.4849 34.4635 +56.4713 -36.32 34.3077 +55.4386 -36.2877 34.2772 +55.0009 -36.638 34.6081 +53.8276 -36.4897 34.4681 +52.7347 -36.3795 34.3639 +51.6486 -36.2581 34.2493 +50.7121 -36.2277 34.2205 +50.2753 -36.548 34.5231 +49.2739 -36.4508 34.4312 +48.765 -36.7097 34.6758 +47.7718 -36.5958 34.5682 +46.7169 -36.4189 34.4012 +45.7375 -36.2852 34.2748 +45.3001 -36.5739 34.5476 +44.3955 -36.4788 34.4577 +43.4311 -36.3201 34.3078 +42.7337 -36.3731 34.3579 +42.1026 -36.4758 34.4549 +41.3451 -36.461 34.4409 +40.4653 -36.3265 34.3138 +40.0277 -36.5818 34.555 +38.9714 -36.2615 34.2524 +38.5346 -36.5073 34.4847 +37.4329 -36.1117 34.111 +36.9385 -36.2894 34.2788 +36.619 -36.64 34.61 +35.9455 -36.6342 34.6045 +35.447 -36.8012 34.7623 +34.4375 -36.4256 34.4075 +33.4957 -36.1003 34.1002 +33.4474 -36.7357 34.7004 +33.0051 -36.9465 34.8995 +32.0231 -36.5414 34.5168 +31.5832 -36.7432 34.7074 +31.1409 -36.9421 34.8954 +30.2327 -36.5774 34.5509 +29.7925 -36.7678 34.7307 +28.9 -36.3888 34.3727 +28.5113 -36.634 34.6044 +27.7311 -36.3684 34.3534 +27.2935 -36.543 34.5183 +26.9007 -36.7789 34.7412 +26.0888 -36.4323 34.4138 +25.6505 -36.5965 34.5689 +25.2548 -36.8228 34.7827 +24.5049 -36.5243 34.5007 +24.3239 -37.072 35.0181 +23.4976 -36.6319 34.6024 +22.6837 -36.1843 34.1795 +22.3298 -36.4596 34.4396 +21.9312 -36.6665 34.6351 +21.1386 -36.202 34.1963 +21.0476 -36.9392 34.8926 +20.2288 -36.3973 34.3807 +19.7911 -36.5242 34.5006 +19.3877 -36.7163 34.682 +18.9112 -36.7698 34.7326 +18.2297 -36.4101 34.3929 +17.7919 -36.5244 34.5008 +17.3528 -36.6359 34.6061 +17.0393 -37.0204 34.9693 +16.5015 -36.9196 34.8741 +15.9374 -36.7456 34.7097 +15.5834 -37.0538 35.0008 +14.8256 -36.3846 34.3687 +14.471 -36.6868 34.6542 +14.03 -36.7773 34.7396 +13.4327 -36.4436 34.4244 +12.9697 -36.457 34.4371 +12.5557 -36.6084 34.5801 +12.0691 -36.5453 34.5205 +11.585 -36.4788 34.4578 +11.125 -36.4799 34.4588 +10.7906 -36.9047 34.86 +10.2475 -36.6155 34.5868 +9.80758 -36.6791 34.6469 +9.40335 -36.883 34.8395 +8.96025 -36.9412 34.8945 +8.49995 -36.9249 34.8791 +7.93123 -36.403 34.3861 +7.49394 -36.4519 34.4323 +7.08391 -36.642 34.6119 +6.64378 -36.6856 34.653 +6.23971 -36.9429 34.8961 +5.7394 -36.6199 34.591 +5.31005 -36.7272 34.6923 +4.87855 -36.8319 34.7912 +4.35779 -36.2096 34.2034 +3.98572 -36.8156 34.7759 +3.48085 -36.1868 34.1819 +3.05243 -36.2801 34.27 +2.6168 -36.2981 34.287 +2.14607 -35.7323 33.7526 +1.74497 -36.3257 34.3131 +1.31147 -36.4081 34.3909 +0.876111 -36.4878 34.4662 +0.438072 -36.4919 34.4701 +6.21725e-15 -36.4206 34.4027 +-0.437199 -36.4192 34.4014 +-0.87262 -36.3424 34.3289 +-1.32979 -36.9168 34.8715 +-1.74148 -36.2531 34.2445 +-2.22023 -36.967 34.9189 +-2.65343 -36.8063 34.767 +-3.10737 -36.9332 34.8869 +-3.52968 -36.6945 34.6614 +-3.96218 -36.5982 34.5705 +-4.47109 -37.1511 35.0927 +-4.83063 -36.47 34.4494 +-5.37276 -37.1609 35.1021 +-5.70544 -36.4032 34.3863 +-6.27627 -37.1593 35.1005 +-6.60463 -36.4694 34.4488 +-7.04216 -36.4261 34.408 +-7.44959 -36.2363 34.2286 +-7.8843 -36.1876 34.1827 +-8.54947 -37.14 35.0823 +-8.99498 -37.0843 35.0297 +-9.33046 -36.597 34.5694 +-9.61677 -35.9655 33.9729 +-10.0481 -35.9032 33.914 +-10.7075 -36.6202 34.5913 +-11.1466 -36.5509 34.5258 +-11.5625 -36.408 34.3908 +-11.9991 -36.3332 34.3202 +-12.4348 -36.2557 34.247 +-12.8695 -36.1755 34.1712 +-13.5104 -36.6542 34.6234 +-13.9231 -36.497 34.4749 +-14.3883 -36.4772 34.4562 +-14.8256 -36.3846 34.3687 +-15.3203 -36.4282 34.4099 +-15.7871 -36.3989 34.3822 +-16.5633 -37.0579 35.0047 +-16.7537 -36.3999 34.3832 +-17.483 -36.9108 34.8658 +-17.9922 -36.9356 34.8892 +-18.4349 -36.82 34.78 +-18.8762 -36.7017 34.6682 +-19.316 -36.5805 34.5538 +-20.011 -36.9301 34.884 +-20.491 -36.8691 34.8264 +-20.9328 -36.7377 34.7023 +-21.4511 -36.7373 34.7019 +-22.1704 -37.0665 35.0129 +-22.6552 -36.9909 34.9415 +-23.1399 -36.9119 34.8668 +-23.5821 -36.7637 34.7269 +-24.453 -37.2688 35.204 +-24.5049 -36.5243 34.5007 +-25.344 -36.953 34.9056 +-25.8775 -36.9203 34.8748 +-26.6429 -37.2061 35.1447 +-27.0416 -36.9715 34.9231 +-27.9138 -37.3735 35.3029 +-28.5553 -37.4493 35.3745 +-29.2007 -37.5198 35.4411 +-29.6 -37.2702 35.2053 +-30.0463 -37.081 35.0265 +-30.9538 -37.4498 35.375 +-31.3499 -37.19 35.1295 +-31.9011 -37.113 35.0568 +-32.7215 -37.3384 35.2697 +-33.1685 -37.1294 35.0723 +-33.9441 -37.2813 35.2158 +-34.8377 -37.5467 35.4664 +-35.0605 -37.0846 35.03 +-35.6191 -36.9799 34.931 +-36.352 -37.0484 34.9958 +-37.4419 -37.4634 35.3877 +-37.8902 -37.2244 35.162 +-38.9976 -37.6213 35.5369 +-39.4477 -37.3724 35.3018 +-39.9564 -37.178 35.1182 +-40.8992 -37.3783 35.3074 +-41.3463 -37.1174 35.0609 +-42.2356 -37.2464 35.1828 +-42.7454 -37.0327 34.9809 +-43.7728 -37.2576 35.1934 +-44.8744 -37.5271 35.4479 +-45.3895 -37.2955 35.2292 +-46.3708 -37.4383 35.364 +-47.2238 -37.4643 35.3886 +-47.6717 -37.1633 35.1043 +-48.8043 -37.3867 35.3153 +-49.8765 -37.5464 35.4661 +-50.3253 -37.2286 35.1659 +-51.4774 -37.4219 35.3486 +-53.2085 -38.0111 35.9051 +-53.6627 -37.6721 35.5849 +-54.6932 -37.7305 35.6401 +-55.8754 -37.8779 35.7793 +-56.328 -37.522 35.4431 +-57.668 -37.7469 35.6556 +-58.793 -37.8132 35.7182 +-59.9239 -37.8681 35.77 +-61.2127 -38.0058 35.9001 +-62.2028 -37.9432 35.8409 +-63.4275 -38.0095 35.9036 +-64.5031 -37.9716 35.8679 +-66.3652 -38.3755 36.2494 +-67.5325 -38.3559 36.2308 +-68.7044 -38.3243 36.201 +-70.6792 -38.7182 36.5731 +-71.3825 -38.3982 36.2707 +-73.7014 -38.9266 36.7699 +-74.8986 -38.8375 36.6858 +-76.345 -38.8612 36.7081 +-77.5503 -38.746 36.5993 +-78.8415 -38.6591 36.5172 +-80.8035 -38.8797 36.7256 +-82.022 -38.7219 36.5766 +-83.7488 -38.7861 36.6371 +-85.3984 -38.7926 36.6433 +-87.5661 -39.009 36.8477 +-89.1454 -38.9388 36.7814 +-91.5912 -39.2203 37.0474 +-93.8772 -39.4011 37.2181 +-95.6521 -39.341 37.1614 +-97.3452 -39.2262 37.0529 +-100.097 -39.509 37.32 +-102.157 -39.4868 37.2991 +-104.933 -39.71 37.5099 +-107.366 -39.7689 37.5655 +-109.45 -39.6701 37.4722 +-112.439 -39.8665 37.6578 +-114.809 -39.809 37.6034 +-118.001 -40.0008 37.7846 +-120.57 -39.9441 37.731 +-123.603 -40.0056 37.7891 +-98.0337 -30.9875 29.2707 +-93.7994 -28.9442 27.3406 +-57.8349 -17.415 16.4501 +-48.5844 -14.2698 13.4791 +-40.6592 -11.643 10.998 +-36.503 -10.1863 9.62192 +-32.5025 -8.83414 8.34469 +-18.8878 -4.99755 4.72066 +-15.0823 -3.88262 3.6675 +-15.5065 -3.88146 3.66641 +-14.9835 -3.64454 3.44262 +-15.2169 -3.59428 3.39514 +-15.9271 -3.65063 3.44837 +-14.2489 -3.16688 2.99142 +-14.2864 -3.07636 2.90592 +-13.0732 -2.72513 2.57414 +-12.5272 -2.52553 2.3856 +-13.1366 -2.55885 2.41708 +-12.9732 -2.43901 2.30388 +-13.7782 -2.49731 2.35895 +-11.5712 -2.01949 1.9076 +-13.8361 -2.32212 2.19347 +-12.399 -1.99825 1.88754 +-13.6941 -2.116 1.99877 +-13.131 -1.94209 1.83449 +-14.0373 -1.98356 1.87366 +-13.3723 -1.80169 1.70187 +-14.6736 -1.8809 1.77669 +-13.5121 -1.64376 1.55269 +-13.5313 -1.55798 1.47166 +-13.055 -1.41835 1.33977 +-13.9628 -1.42654 1.3475 +-13.0871 -1.25251 1.18312 +-12.9031 -1.15172 1.08791 +-12.8171 -1.06159 1.00277 +-13.1277 -1.00304 0.94747 +-11.7457 -0.822175 0.776623 +-11.8547 -0.753965 0.712192 +-10.667 -0.61029 0.576477 +-10.9732 -0.55781 0.526905 +-10.9795 -0.488177 0.46113 +-11.4842 -0.437529 0.413288 +-11.8887 -0.377343 0.356437 +-10.5935 -0.268927 0.254028 +-10.9962 -0.209325 0.197727 +-10.1984 -0.129409 0.12224 +-10.9996 -0.0697821 0.0659159 +11 -1.77636e-15 -1.7053e-13 +10.9996 -0.0691845 0.0665428 +10.5984 -0.133333 0.128242 +10.5964 -0.199986 0.19235 +11.0932 -0.2792 0.26854 +11.0894 -0.348961 0.335636 +11.8837 -0.448871 0.431732 +11.9776 -0.527996 0.507835 +11.9708 -0.603309 0.580273 +11.7636 -0.667267 0.641789 +12.7513 -0.804042 0.773342 +13.1392 -0.911842 0.877026 +14.2217 -1.07732 1.03619 +14.5061 -1.19121 1.14572 +15.3845 -1.36144 1.30946 +36.2869 -3.44313 3.31166 +39.7097 -4.02229 3.86871 +40.3518 -4.34646 4.18051 +38.9149 -4.44225 4.27263 +35.1118 -4.2348 4.07311 +32.9911 -4.19265 4.03257 +41.0017 -5.47701 5.26788 +57.4252 -8.04503 7.73785 +63.2051 -9.26805 8.91417 +67.1009 -10.2796 9.88709 +75.8582 -12.1208 11.658 +84.6728 -14.089 13.5511 +93.153 -16.1185 15.5031 +94.7009 -17.0177 16.3679 +95.5562 -17.8111 17.131 +95.3369 -18.4114 17.7084 +94.9176 -18.9718 18.2474 +94.6843 -19.5681 18.8209 +95.4026 -20.3675 19.5899 +96.013 -21.1565 20.3486 +95.7532 -21.7596 20.9287 +95.4861 -22.3609 21.5071 +96.0652 -23.1665 22.282 +95.6865 -23.7463 22.8396 +96.2437 -24.5638 23.6259 +96.6944 -25.3654 24.3969 +96.2899 -25.9473 24.9566 +95.9721 -26.5519 25.5381 +96.5773 -27.4187 26.3718 +96.8907 -28.2141 27.1368 +95.7139 -28.5742 27.4831 +94.812 -29.0061 27.8986 +94.7323 -29.6876 28.554 +95.1001 -30.5168 29.3515 +95.5459 -31.3827 30.1844 +95.7967 -32.1957 30.9664 +95.4935 -32.828 31.5745 +94.8228 -33.3326 32.0599 +95.579 -34.3457 33.0343 +96.2287 -35.3382 33.9889 +94.378 -35.4097 34.0576 +94.4754 -36.2049 34.8225 +93.2425 -36.4882 35.095 +91.1354 -36.4094 35.0192 +89.4726 -36.4843 35.0912 +87.7284 -36.5051 35.1112 +86.2491 -36.6165 35.2184 +84.0881 -36.4152 35.0247 +82.8766 -36.6038 35.2061 +80.9038 -36.4361 35.0449 +80.3752 -36.9049 35.4958 +78.1641 -36.5847 35.1878 +77.2178 -36.8362 35.4297 +75.2766 -36.595 35.1977 +74.1714 -36.7405 35.3376 +72.7407 -36.7095 35.3078 +70.0953 -36.0356 34.6596 +69.5755 -36.4327 35.0416 +69.0513 -36.8261 35.4199 +67.0854 -36.4348 35.0437 +65.9277 -36.4605 35.0683 +64.7745 -36.4744 35.0817 +63.7043 -36.5215 35.127 +62.5602 -36.5125 35.1184 +61.3442 -36.4462 35.0545 +60.1345 -36.3673 34.9787 +59.0075 -36.3229 34.936 +57.7353 -36.1725 34.7913 +56.5462 -36.0567 34.6799 +55.4386 -35.9769 34.6032 +54.9272 -36.2756 34.8905 +53.9008 -36.2264 34.8432 +53.4601 -36.564 35.1679 +51.6486 -35.9476 34.575 +51.354 -36.3721 34.9833 +50.2753 -36.235 34.8515 +49.2038 -36.0872 34.7093 +48.2093 -35.9806 34.6067 +47.7718 -36.2824 34.897 +46.7851 -36.1598 34.7791 +46.3455 -36.4526 35.0608 +44.631 -35.7251 34.3611 +44.3955 -36.1664 34.7854 +43.4967 -36.0634 34.6864 +43.2532 -36.5001 35.1064 +42.1026 -36.1634 34.7826 +41.2815 -36.0931 34.715 +41.0317 -36.5195 35.125 +40.0899 -36.3249 34.9379 +38.9714 -35.9509 34.5782 +38.4737 -36.1375 34.7576 +38.0347 -36.3781 34.9891 +36.998 -36.0366 34.6606 +36.5015 -36.2096 34.827 +36.0036 -36.3791 34.9901 +35.447 -36.4861 35.0929 +34.4941 -36.1731 34.7919 +34.0548 -36.3886 34.9992 +33.613 -36.6014 35.2039 +32.5694 -36.1465 34.7664 +32.5604 -36.8363 35.4298 +31.2122 -36.0006 34.626 +31.1932 -36.6872 35.2864 +30.2842 -36.3259 34.9389 +29.7925 -36.4529 35.0611 +28.95 -36.1396 34.7597 +28.5606 -36.383 34.9938 +27.7796 -36.12 34.7409 +27.3412 -36.2934 34.9076 +26.9007 -36.464 35.0717 +26.4582 -36.6317 35.233 +25.6505 -36.2831 34.8977 +25.2994 -36.572 35.1756 +24.4173 -36.0819 34.7042 +24.3239 -36.7546 35.3512 +23.4976 -36.3182 34.9315 +23.0569 -36.4646 35.0723 +22.3298 -36.1473 34.7671 +21.9312 -36.3525 34.9645 +21.4902 -36.4891 35.0959 +20.7414 -36.0902 34.7122 +20.2662 -36.1524 34.772 +19.8277 -36.2785 34.8933 +19.3877 -36.4018 35.0119 +18.6661 -35.9823 34.6084 +18.2639 -36.1661 34.7852 +17.8253 -36.2796 34.8943 +17.3853 -36.3903 35.0008 +17.1027 -36.84 35.4333 +16.5324 -36.672 35.2717 +15.9675 -36.4996 35.106 +15.3788 -36.254 34.8697 +14.854 -36.1421 34.7621 +14.471 -36.3726 34.9838 +14.0567 -36.5318 35.1369 +13.4327 -36.1315 34.7519 +12.9697 -36.1447 34.7646 +12.5557 -36.2949 34.909 +12.1158 -36.3725 34.9837 +11.6075 -36.2366 34.853 +11.1034 -36.0972 34.7189 +10.7906 -36.5886 35.1916 +10.4269 -36.9376 35.5272 +9.80758 -36.365 34.9765 +9.4398 -36.7088 35.3071 +8.97761 -36.6958 35.2947 +8.54947 -36.8219 35.416 +8.08766 -36.8031 35.3979 +7.5235 -36.2823 34.897 +7.08391 -36.3282 34.9411 +6.64378 -36.3714 34.9827 +6.21534 -36.4834 35.0904 +5.75072 -36.3779 34.9889 +5.3205 -36.4844 35.0913 +4.87855 -36.5164 35.1221 +4.43623 -36.5457 35.1503 +3.97788 -36.4285 35.0376 +3.5506 -36.5959 35.1986 +3.10127 -36.5449 35.1495 +2.6639 -36.635 35.2362 +2.18097 -36.0023 34.6277 +1.74846 -36.0867 34.7088 +1.31147 -36.0963 34.7181 +0.877856 -36.2473 34.8633 +0.438072 -36.1794 34.798 +1.06581e-14 -36.1087 34.73 +-0.437199 -36.1073 34.7287 +-0.888327 -36.6797 35.2791 +-1.33241 -36.6728 35.2725 +-1.77289 -36.5909 35.1938 +-2.22023 -36.6504 35.251 +-2.65343 -36.4911 35.0977 +-3.10127 -36.5449 35.1495 +-3.53665 -36.4521 35.0603 +-3.96218 -36.2848 34.8993 +-4.39265 -36.1867 34.805 +-4.92647 -36.8751 35.4671 +-5.26823 -36.1259 34.7465 +-5.81865 -36.8075 35.4021 +-6.1544 -36.1257 34.7463 +-6.61768 -36.2286 34.8453 +-7.16741 -36.7565 35.353 +-7.62697 -36.7813 35.3769 +-7.89994 -35.9489 34.5763 +-8.51646 -36.6797 35.2792 +-8.99498 -36.7667 35.3629 +-9.33046 -36.2836 34.8982 +-9.80758 -36.365 34.9765 +-10.2475 -36.3019 34.9158 +-10.4787 -35.5311 34.1744 +-10.9086 -35.4639 34.1098 +-11.585 -36.1664 34.7855 +-11.9991 -36.0221 34.6467 +-12.4106 -35.8753 34.5055 +-13.0698 -36.4239 35.0331 +-13.5104 -36.3403 34.9527 +-13.9498 -36.2539 34.8697 +-14.4158 -36.2341 34.8506 +-14.8824 -36.2112 34.8286 +-15.3203 -36.1162 34.7372 +-16.3283 -37.3244 35.8993 +-16.5633 -36.7405 35.3376 +-17.071 -36.7716 35.3676 +-17.5156 -36.6629 35.263 +-17.9922 -36.6193 35.2211 +-18.4349 -36.5047 35.1108 +-18.8412 -36.3199 34.9331 +-19.316 -36.2673 34.8825 +-20.0476 -36.6808 35.2803 +-20.5284 -36.6202 35.222 +-21.2772 -37.0224 35.6088 +-21.7247 -36.8872 35.4787 +-22.1704 -36.7491 35.3459 +-22.6146 -36.6082 35.2104 +-23.1399 -36.5958 35.1985 +-23.6244 -36.5142 35.12 +-24.41 -36.8846 35.4763 +-24.8995 -36.7945 35.3896 +-25.2994 -36.572 35.1756 +-25.7867 -36.4757 35.083 +-26.6429 -36.8875 35.479 +-27.4641 -37.2276 35.8061 +-27.8184 -36.9267 35.5168 +-28.6038 -37.1917 35.7716 +-29.1022 -37.073 35.6575 +-29.65 -37.0134 35.6002 +-30.4523 -37.2602 35.8375 +-30.9538 -37.1291 35.7114 +-31.3499 -36.8715 35.4637 +-31.9011 -36.7952 35.3903 +-32.829 -37.1402 35.7221 +-33.2774 -36.9324 35.5222 +-33.9441 -36.9621 35.5507 +-34.7818 -37.1654 35.7463 +-35.7402 -37.4798 36.0487 +-35.6765 -36.7223 35.3201 +-36.5262 -36.9072 35.498 +-37.4419 -37.1425 35.7243 +-37.8902 -36.9056 35.4965 +-38.9374 -37.2415 35.8195 +-39.4477 -37.0524 35.6376 +-40.018 -36.9164 35.5069 +-40.9615 -37.1146 35.6974 +-41.3463 -36.7995 35.3944 +-42.2992 -36.983 35.5708 +-43.3239 -37.2124 35.7916 +-44.4222 -37.4866 36.0553 +-44.284 -36.7162 35.3143 +-45.9196 -37.4079 35.9796 +-46.3038 -37.0641 35.6489 +-47.2913 -37.1966 35.7763 +-47.6717 -36.845 35.4382 +-48.8043 -37.0666 35.6513 +-49.8765 -37.2248 35.8035 +-50.3954 -36.9611 35.5498 +-51.4774 -37.1014 35.6848 +-52.5666 -37.2309 35.8093 +-53.6627 -37.3494 35.9233 +-54.6932 -37.4074 35.9791 +-55.8754 -37.5536 36.1197 +-57.2127 -37.785 36.3423 +-57.668 -37.4237 35.9947 +-58.793 -37.4894 36.058 +-60.6787 -38.0166 36.565 +-61.745 -38.008 36.5567 +-62.0496 -37.5255 36.0927 +-64.0448 -38.0507 36.5978 +-65.2803 -38.1 36.6453 +-66.3652 -38.0469 36.5942 +-67.5325 -38.0274 36.5755 +-68.7044 -37.9961 36.5453 +-70.5994 -38.3433 36.8792 +-72.106 -38.4551 36.9868 +-73.4587 -38.4661 36.9974 +-74.8986 -38.5049 37.0347 +-77.0822 -38.9005 37.4151 +-77.5503 -38.4142 36.9474 +-79.0902 -38.4489 36.9808 +-81.0537 -38.6661 37.1897 +-82.5252 -38.6259 37.151 +-84.6765 -38.8799 37.3953 +-85.3984 -38.4604 36.9919 +-87.8219 -38.788 37.3069 +-89.1454 -38.6053 37.1313 +-92.1943 -39.1405 37.646 +-93.3575 -38.8475 37.3642 +-95.6521 -39.0041 37.5148 +-98.3947 -39.3096 37.8086 +-100.361 -39.2738 37.7742 +-102.157 -39.1487 37.6539 +-105.732 -39.6694 38.1547 +-106.564 -39.1338 37.6396 +-110.345 -39.652 38.138 +-112.439 -39.5251 38.0159 +-115.08 -39.5612 38.0506 +-118.001 -39.6582 38.144 +-121.662 -39.9607 38.4349 +-124.151 -39.8389 38.3177 +-97.3001 -30.4923 29.328 +-95.3643 -29.175 28.0611 +-59.0359 -17.6244 16.9515 +-47.2864 -13.7695 13.2438 +-42.334 -12.0188 11.5599 +-36.5964 -10.1249 9.73826 +-34.1885 -9.21284 8.86107 +-21.8009 -5.71892 5.50056 +-15.6478 -3.99372 3.84123 +-15.7902 -3.91862 3.76899 +-15.268 -3.68193 3.54135 +-15.5973 -3.65259 3.51312 +-14.5919 -3.31595 3.18934 +-14.9184 -3.28726 3.16175 +-14.6699 -3.13189 3.01231 +-14.5151 -2.99978 2.88524 +-3157.14 -631.04 606.945 +-3164.66 -611.159 587.823 +-11.2305 -2.0933 2.01338 +-12.0317 -2.16208 2.07952 +-13.3215 -2.30505 2.21703 +-12.0822 -2.0104 1.93364 +-13.18 -2.10593 2.02552 +-13.5963 -2.0829 2.00337 +-14.5029 -2.12663 2.04543 +-13.1538 -1.8428 1.77244 +-13.7656 -1.83881 1.76859 +-12.9995 -1.65203 1.58896 +-13.3149 -1.60589 1.54458 +-13.5313 -1.54464 1.48566 +-13.055 -1.40621 1.35251 +-13.9628 -1.41432 1.36032 +-13.9794 -1.32645 1.2758 +-13.7964 -1.22091 1.17429 +-12.519 -1.02802 0.988771 +-12.7299 -0.964311 0.927491 +-12.542 -0.8704 0.837166 +-12.7513 -0.804042 0.773342 +-11.5642 -0.655958 0.630911 +-11.472 -0.578171 0.556095 +-11.2789 -0.497196 0.478212 +-11.0848 -0.418694 0.402708 +-10.9895 -0.345817 0.332613 +-11.493 -0.289262 0.278217 +-10.5964 -0.199986 0.19235 +-10.9983 -0.138363 0.13308 +-10.4996 -0.0660397 0.0635181 +11 -1.77636e-15 -1.7053e-13 +10.1996 -0.0635935 0.0622797 +10.1984 -0.127183 0.124555 +10.5964 -0.198242 0.194147 +11.0932 -0.276766 0.271048 +10.1903 -0.317871 0.311304 +11.4842 -0.43 0.421116 +11.9776 -0.523392 0.512579 +12.4696 -0.622967 0.610097 +12.3618 -0.695082 0.680722 +11.8547 -0.74099 0.725682 +13.9355 -0.958675 0.93887 +13.426 -1.00818 0.987351 +14.6055 -1.18891 1.16434 +14.5904 -1.27992 1.25348 +35.7912 -3.36648 3.29693 +38.7195 -3.88779 3.80747 +40.4507 -4.31913 4.2299 +39.6063 -4.48175 4.38916 +36.5912 -4.37476 4.28438 +34.9607 -4.40422 4.31324 +42.6733 -5.65059 5.53385 +60.1737 -8.35662 8.18397 +66.7329 -9.70006 9.49967 +73.2633 -11.1258 10.896 +81.3255 -12.8811 12.615 +87.0112 -14.3519 14.0554 +93.0558 -15.9613 15.6315 +94.7009 -16.8693 16.5208 +94.4912 -17.459 17.0984 +95.1437 -18.2139 17.8376 +94.9176 -18.8064 18.4179 +95.6455 -19.5944 19.1896 +95.3067 -20.1697 19.753 +95.1523 -20.784 20.3546 +95.6578 -21.5483 21.1032 +95.391 -22.1439 21.6864 +95.9704 -22.9418 22.4678 +95.6865 -23.5393 23.053 +95.3011 -24.1111 23.613 +95.7547 -24.8999 24.3855 +96.1962 -25.6961 25.1652 +96.999 -26.6021 26.0525 +96.5773 -27.1796 26.6181 +96.8907 -27.9681 27.3903 +96.1759 -28.4617 27.8737 +94.2597 -28.5857 27.9952 +94.9157 -29.4856 28.8765 +95.1001 -30.2507 29.6257 +95.4549 -31.0794 30.4373 +94.9811 -31.6432 30.9895 +95.5838 -32.5725 31.8996 +95.7216 -33.3551 32.666 +95.4 -33.9825 33.2805 +95.8723 -34.9004 34.1794 +94.9989 -35.3318 34.6019 +93.9456 -35.688 34.9507 +93.2425 -36.17 35.4228 +91.1354 -36.0919 35.3463 +89.2115 -36.0606 35.3156 +87.2088 -35.9725 35.2293 +86.5076 -36.4061 35.6539 +84.6024 -36.3185 35.5682 +83.1324 -36.3966 35.6446 +80.9038 -36.1184 35.3723 +79.7005 -36.276 35.5265 +78.4157 -36.3823 35.6307 +76.9677 -36.3967 35.6448 +75.5253 -36.3958 35.6439 +74.8307 -36.7439 35.9848 +72.7407 -36.3894 35.6376 +71.3165 -36.3437 35.5929 +69.4946 -36.0731 35.3278 +68.3278 -36.1224 35.3762 +67.0854 -36.1171 35.371 +65.9277 -36.1426 35.3959 +64.7745 -36.1564 35.4094 +64.3304 -36.5588 35.8035 +63.182 -36.5538 35.7986 +62.0386 -36.5374 35.7825 +60.0579 -36.0043 35.2604 +59.0835 -36.0526 35.3077 +57.6598 -35.8102 35.0704 +57.2202 -36.1684 35.4212 +56.1074 -36.0935 35.3478 +55.0009 -36.0075 35.2636 +54.4859 -36.3003 35.5504 +53.4601 -36.2452 35.4964 +51.7205 -35.6838 34.9466 +51.8533 -36.4055 35.6534 +50.2753 -35.9191 35.177 +49.8346 -36.2312 35.4827 +48.765 -36.078 35.3326 +47.703 -35.9142 35.1722 +47.2625 -36.2102 35.4622 +46.9535 -36.6089 35.8526 +45.3671 -35.9976 35.2539 +45.0582 -36.3861 35.6344 +44.0216 -36.1804 35.4329 +43.2532 -36.1818 35.4343 +42.1669 -35.9028 35.1611 +41.2815 -35.7784 35.0393 +41.0317 -36.201 35.4531 +40.6502 -36.5114 35.7571 +38.9714 -35.6375 34.9012 +38.4737 -35.8224 35.0823 +37.4931 -35.5474 34.813 +37.5333 -36.2392 35.4906 +36.5015 -35.8939 35.1523 +36.0036 -36.0619 35.3169 +35.447 -36.1679 35.4207 +34.9473 -36.3287 35.5782 +34.5022 -36.5452 35.7902 +33.5578 -36.2227 35.4744 +33.0051 -36.3107 35.5605 +32.5604 -36.5151 35.7607 +31.5832 -36.1109 35.3648 +31.1409 -36.3064 35.5563 +30.6963 -36.4992 35.7451 +29.8433 -36.1967 35.4489 +29.35 -36.3195 35.5691 +29.0037 -36.6255 35.8688 +27.7311 -35.7426 35.0041 +27.3889 -36.0397 35.2951 +26.5251 -35.6413 34.905 +26.0888 -35.8054 35.0656 +25.7413 -36.094 35.3483 +25.2548 -36.1892 35.4415 +24.8118 -36.3452 35.5943 +24.3669 -36.4985 35.7445 +23.4976 -36.0015 35.2578 +23.0569 -36.1467 35.3999 +22.6552 -36.3543 35.6033 +21.8913 -35.97 35.2269 +21.4902 -36.1709 35.4237 +21.0859 -36.3696 35.6182 +20.2662 -35.8372 35.0968 +19.7911 -35.8957 35.1541 +19.3877 -36.0844 35.3389 +18.9112 -36.137 35.3904 +18.5033 -36.3207 35.5703 +17.7919 -35.8959 35.1543 +17.4179 -36.1405 35.3939 +17.1027 -36.5187 35.7643 +16.4397 -36.1484 35.4016 +15.9374 -36.1132 35.3671 +15.5542 -36.3478 35.5969 +15.0812 -36.3749 35.6234 +14.4434 -35.9868 35.2434 +14.03 -36.1444 35.3977 +13.6139 -36.2995 35.5496 +13.17 -36.383 35.6313 +12.5557 -35.9784 35.2351 +12.2792 -36.5417 35.7867 +11.8099 -36.5472 35.7921 +11.3198 -36.4799 35.7263 +10.7698 -36.1997 35.4518 +10.2674 -36.0554 35.3105 +9.82666 -36.1181 35.3719 +9.42158 -36.3185 35.5682 +8.99498 -36.4461 35.6932 +8.36791 -35.7258 34.9877 +8.10331 -36.5528 35.7977 +7.67131 -36.6726 35.9149 +7.09783 -36.0823 35.3368 +6.63073 -35.9835 35.2401 +6.19096 -36.0234 35.2792 +5.76204 -36.1316 35.3852 +5.3205 -36.1662 35.4191 +4.87855 -36.198 35.4502 +4.42751 -36.1559 35.4089 +3.97788 -36.1109 35.3648 +3.53665 -36.1343 35.3878 +3.10737 -36.2976 35.5477 +2.6168 -35.6735 34.9365 +2.18533 -35.7598 35.021 +1.77289 -36.2719 35.5225 +1.33241 -36.353 35.602 +0.874366 -35.7884 35.0491 +0.437199 -35.7925 35.0531 +1.77636e-15 -36.4369 35.6841 +-0.437199 -35.7925 35.0531 +-0.86913 -35.5741 34.8392 +-1.32717 -36.2101 35.462 +-1.77289 -36.2719 35.5225 +-2.21586 -36.2594 35.5103 +-2.65867 -36.2442 35.4955 +-3.09516 -36.1549 35.408 +-3.53665 -36.1343 35.3878 +-4.04064 -36.6806 35.9228 +-4.47109 -36.5117 35.7574 +-4.92647 -36.5536 35.7984 +-5.36231 -36.4504 35.6974 +-5.81865 -36.4866 35.7328 +-6.27627 -36.5198 35.7653 +-6.61768 -35.9127 35.1707 +-7.16741 -36.436 35.6833 +-7.61218 -36.3899 35.6381 +-8.05637 -36.3411 35.5903 +-8.56597 -36.5713 35.8158 +-9.02971 -36.5869 35.831 +-9.36691 -36.1077 35.3618 +-9.80758 -36.0479 35.3032 +-10.2674 -36.0554 35.3105 +-10.6867 -35.9202 35.1781 +-11.1466 -35.9219 35.1798 +-11.5625 -35.7814 35.0422 +-12.1858 -36.2637 35.5146 +-12.6283 -36.1864 35.4388 +-12.8695 -35.5529 34.8184 +-13.5104 -36.0234 35.2792 +-13.9498 -35.9378 35.1954 +-14.4158 -35.9182 35.1761 +-15.138 -36.5119 35.7576 +-15.3203 -35.8013 35.0617 +-16.0878 -36.4539 35.7008 +-16.5942 -36.4881 35.7343 +-17.0393 -36.3833 35.6316 +-17.483 -36.2756 35.5262 +-17.9254 -36.1652 35.4181 +-18.7427 -36.7907 36.0306 +-19.1563 -36.6055 35.8492 +-19.6027 -36.4846 35.7308 +-20.0476 -36.361 35.6098 +-20.7907 -36.7646 36.005 +-21.2772 -36.6996 35.9414 +-21.7247 -36.5655 35.8101 +-22.5293 -37.0184 36.2536 +-23.0213 -36.9418 36.1786 +-23.0984 -36.2117 35.4636 +-23.9625 -36.7139 35.9554 +-24.41 -36.563 35.8077 +-24.9433 -36.5379 35.783 +-25.7456 -36.8925 36.1303 +-26.1045 -36.6033 35.8471 +-26.6429 -36.5658 35.8104 +-27.0885 -36.3984 35.6464 +-27.9138 -36.7304 35.9715 +-28.6522 -36.9298 36.1669 +-29.2007 -36.8742 36.1124 +-29.55 -36.567 35.8115 +-30.8076 -37.3663 36.5943 +-30.9023 -36.7441 35.985 +-31.8202 -37.0983 36.3319 +-32.2721 -36.8985 36.1362 +-33.2051 -37.2382 36.4689 +-33.7132 -37.0897 36.3234 +-34.3305 -37.0568 36.2912 +-35.2292 -37.3152 36.5443 +-35.4004 -36.7997 36.0395 +-36.1927 -36.9288 36.1658 +-36.9908 -37.0507 36.2853 +-37.3831 -36.7609 36.0014 +-38.5445 -37.2155 36.4467 +-38.8773 -36.8597 36.0982 +-39.9956 -37.2394 36.4701 +-40.449 -36.9886 36.2245 +-41.3972 -37.1823 36.4142 +-41.8498 -36.9228 36.16 +-42.8717 -37.1567 36.389 +-43.4524 -36.9974 36.2331 +-44.4222 -37.1597 36.392 +-44.8088 -36.8274 36.0666 +-45.9196 -37.0817 36.3156 +-46.8391 -37.1657 36.3979 +-47.8318 -37.2936 36.5232 +-48.2855 -36.994 36.2297 +-49.4239 -37.2098 36.4411 +-50.4322 -37.3114 36.5406 +-50.9561 -37.0465 36.2811 +-52.1845 -37.2831 36.5129 +-52.5666 -36.9063 36.1438 +-53.6627 -37.0238 36.2589 +-55.4186 -37.573 36.7968 +-55.8754 -37.2261 36.457 +-57.139 -37.4072 36.6344 +-58.3369 -37.5277 36.7524 +-58.793 -37.1625 36.3948 +-59.9994 -37.2633 36.4934 +-61.9731 -37.8157 37.0345 +-63.0455 -37.7953 37.0145 +-63.9677 -37.6735 36.8952 +-65.2025 -37.7229 36.9435 +-66.4434 -37.7597 36.9796 +-68.2417 -38.0917 37.3048 +-69.4184 -38.0562 37.27 +-70.5994 -38.0089 37.2237 +-72.106 -38.1198 37.3323 +-73.4587 -38.1307 37.343 +-75.1429 -38.2936 37.5025 +-76.5907 -38.3154 37.5239 +-78.6216 -38.6054 37.8078 +-79.8363 -38.4733 37.6784 +-81.3039 -38.4472 37.653 +-82.7768 -38.4058 37.6124 +-84.1705 -38.3105 37.519 +-86.1617 -38.4658 37.6711 +-88.3335 -38.6737 37.8748 +-89.3168 -38.3423 37.5502 +-92.3666 -38.8718 38.0687 +-93.8772 -38.7231 37.9231 +-96.8706 -39.1566 38.3476 +-98.832 -39.14 38.3314 +-100.888 -39.1359 38.3274 +-102.422 -38.9079 38.1041 +-105.288 -39.1586 38.3496 +-108.168 -39.3764 38.5629 +-110.345 -39.3062 38.4942 +-112.978 -39.3685 38.5551 +-115.08 -39.2162 38.406 +-118.092 -39.3427 38.5299 +-121.935 -39.7011 38.8809 +-124.425 -39.5786 38.761 +-97.7586 -30.3688 29.7414 +-97.2053 -29.479 28.87 +-66.7041 -19.74 19.3322 +-49.3262 -14.2383 13.9442 +-42.9853 -12.0973 11.8474 +-37.81 -10.3694 10.1552 +-35.2189 -9.40771 9.21336 +-29.3184 -7.62388 7.46637 +-16.0249 -4.05429 3.97054 +-15.412 -3.79141 3.71308 +-15.5525 -3.71785 3.64104 +-15.2169 -3.53243 3.45945 +-15.9271 -3.58781 3.51369 +-15.5878 -3.40482 3.33448 +-14.6699 -3.10458 3.04045 +-13.6499 -2.79639 2.73861 +-12.5272 -2.48206 2.43079 +-3164.66 -605.83 593.314 +-13.8445 -2.55803 2.50518 +-13.196 -2.35063 2.30207 +-12.4463 -2.13484 2.09074 +-12.2771 -2.02502 1.98318 +-13.7658 -2.18035 2.13531 +-12.8137 -1.9459 1.9057 +-13.327 -1.93715 1.89713 +-13.7428 -1.90853 1.8691 +-13.7656 -1.82277 1.78511 +-13.5903 -1.71206 1.67669 +-14.1039 -1.68623 1.65139 +-13.5313 -1.53117 1.49954 +-14.5385 -1.55235 1.52028 +-13.9628 -1.40199 1.37303 +-13.5828 -1.27758 1.25119 +-13.4986 -1.18414 1.15968 +-13.4132 -1.09185 1.06929 +-12.7299 -0.955903 0.936155 +-12.542 -0.862811 0.844986 +-11.0578 -0.691178 0.676899 +-11.2652 -0.633421 0.620335 +-10.9732 -0.548211 0.536886 +-11.2789 -0.492861 0.482679 +-10.7852 -0.403826 0.395483 +-10.5899 -0.330337 0.323512 +-10.5935 -0.264299 0.258839 +-10.9962 -0.205723 0.201472 +-12.1981 -0.15212 0.148977 +-10.9996 -0.0685812 0.0671644 +10.6 1.77636e-15 -1.7053e-13 +10.1996 -0.063029 0.062851 +11.0983 -0.137176 0.136788 +11.0962 -0.20575 0.205169 +11.0932 -0.274309 0.273534 +11.4891 -0.355202 0.354199 +11.9836 -0.444712 0.443457 +11.6782 -0.505777 0.504349 +12.0705 -0.597679 0.595991 +12.6609 -0.705579 0.703586 +13.349 -0.82699 0.824655 +13.6369 -0.929807 0.927181 +14.3211 -1.06585 1.06284 +13.8106 -1.11422 1.11107 +16.377 -1.42389 1.41987 +35.2954 -3.29038 3.28109 +38.0263 -3.78429 3.77361 +39.5606 -4.18659 4.17477 +39.0137 -4.3755 4.36314 +38.5638 -4.56966 4.55676 +37.1273 -4.63564 4.62255 +45.3281 -5.94884 5.93204 +67.7323 -9.32278 9.29646 +73.8863 -10.6445 10.6144 +79.5234 -11.9693 11.9355 +78.3966 -12.3069 12.2722 +89.7395 -14.6705 14.6291 +93.9309 -15.9684 15.9233 +94.7009 -16.7195 16.6723 +94.4912 -17.3041 17.2552 +95.1437 -18.0522 18.0013 +94.9176 -18.6395 18.5868 +94.6843 -19.2253 19.171 +95.4026 -20.0107 19.9542 +95.1523 -20.5995 20.5413 +95.6578 -21.357 21.2967 +96.2469 -22.1442 22.0817 +95.9704 -22.7381 22.6739 +96.4429 -23.5148 23.4484 +96.1494 -24.1098 24.0417 +96.5064 -24.8726 24.8023 +96.1962 -25.4679 25.396 +95.8787 -26.0614 25.9878 +96.5773 -26.9383 26.8623 +96.149 -27.5076 27.4299 +96.6378 -28.3446 28.2645 +94.6279 -28.4426 28.3623 +95.0991 -29.2804 29.1977 +95.1001 -29.9821 29.8975 +95.6369 -30.8623 30.7752 +94.7998 -31.3025 31.2141 +95.313 -32.1919 32.101 +94.8228 -32.7486 32.6562 +95.221 -33.6176 33.5227 +95.605 -34.4941 34.3967 +95.3537 -35.149 35.0497 +94.1222 -35.4376 35.3376 +93.6819 -36.0179 35.9162 +91.8351 -36.0461 35.9443 +90.6911 -36.3333 36.2307 +88.5078 -36.1842 36.082 +87.0245 -36.2985 36.196 +84.6024 -35.9961 35.8944 +84.1556 -36.5174 36.4143 +81.667 -36.1355 36.0335 +80.8812 -36.4866 36.3835 +78.9189 -36.2908 36.1883 +77.7182 -36.4253 36.3225 +76.0227 -36.3102 36.2077 +74.5834 -36.2974 36.1949 +72.7407 -36.0664 35.9645 +71.5608 -36.1444 36.0424 +70.2227 -36.1274 36.0254 +68.6494 -35.9703 35.8687 +67.7243 -36.1374 36.0354 +66.721 -36.2527 36.1504 +64.7745 -35.8354 35.7342 +64.3304 -36.2343 36.132 +63.182 -36.2293 36.127 +62.0386 -36.213 36.1108 +60.8239 -36.1398 36.0378 +59.6919 -36.1004 35.9985 +58.5655 -36.0498 35.948 +57.2202 -35.8473 35.7461 +56.1074 -35.7731 35.6721 +55.5907 -36.0706 35.9687 +54.559 -36.0264 35.9246 +53.4601 -35.9234 35.822 +52.3679 -35.8097 35.7086 +51.2827 -35.6853 35.5845 +50.346 -35.6503 35.5496 +49.9047 -35.96 35.8585 +48.765 -35.7577 35.6567 +48.3225 -36.0577 35.9559 +47.3307 -35.9405 35.8391 +46.886 -36.2316 36.1293 +45.9024 -36.099 35.9971 +44.9919 -36.0101 35.9084 +43.6935 -35.592 35.4915 +43.513 -36.076 35.9741 +42.6811 -36.0181 35.9164 +41.7903 -35.8979 35.7966 +40.4653 -35.3844 35.2845 +40.1522 -35.7439 35.643 +40.1411 -36.3813 36.2785 +39.1434 -36.1223 36.0203 +38.0347 -35.7408 35.6399 +37.5928 -35.9745 35.8729 +37.0305 -36.0908 35.9889 +36.6424 -36.3759 36.2732 +35.447 -35.8469 35.7456 +35.0039 -36.0645 35.9627 +34.5581 -36.2794 36.177 +33.5578 -35.9012 35.7998 +32.9507 -35.929 35.8276 +32.6141 -36.2507 36.1483 +32.0601 -36.3307 36.2281 +31.6634 -36.5878 36.4845 +30.6448 -36.1145 36.0125 +30.3 -36.4245 36.3216 +29.4 -36.0584 35.9566 +29.0037 -36.3003 36.1978 +28.1674 -35.9827 35.8811 +27.3889 -35.7198 35.6189 +26.9477 -35.8876 35.7863 +26.5044 -36.0528 35.951 +26.0137 -36.1521 36.0501 +25.6118 -36.3748 36.2721 +24.8118 -36.0225 35.9208 +24.3239 -36.1106 36.0087 +23.8357 -36.1954 36.0932 +23.4716 -36.4701 36.3672 +22.6959 -36.0963 35.9943 +22.2901 -36.3001 36.1976 +21.4121 -35.7195 35.6186 +21.0476 -35.9813 35.8797 +20.6408 -36.1756 36.0734 +19.8277 -35.6429 35.5423 +19.4235 -35.8302 35.7291 +18.9462 -35.8826 35.7812 +18.4691 -35.9317 35.8302 +18.1257 -36.2447 36.1423 +17.4505 -35.8867 35.7853 +17.3883 -36.7989 36.695 +16.9341 -36.905 36.8008 +16.2381 -36.4679 36.365 +15.5542 -36.0252 35.9234 +15.138 -36.1878 36.0856 +14.471 -35.7354 35.6345 +14.03 -35.8235 35.7223 +13.6139 -35.9772 35.8756 +13.17 -36.06 35.9582 +12.5557 -35.659 35.5583 +12.2559 -36.1484 36.0463 +11.7874 -36.1538 36.0517 +11.2981 -36.087 35.9851 +10.749 -35.809 35.7079 +10.4269 -36.2905 36.188 +9.99839 -36.423 36.3202 +9.42158 -35.9961 35.8944 +8.97761 -36.0529 35.9511 +8.56597 -36.2467 36.1443 +7.97816 -35.6688 35.5681 +7.62697 -36.1369 36.0349 +7.22308 -36.393 36.2903 +6.77431 -36.4363 36.3334 +6.19096 -35.7036 35.6028 +5.87525 -36.5145 36.4114 +5.33095 -35.9155 35.8141 +4.87855 -35.8767 35.7754 +4.4188 -35.7644 35.6634 +4.04064 -36.355 36.2524 +3.54363 -35.8842 35.7829 +3.10737 -35.9754 35.8738 +2.61156 -35.286 35.1864 +2.18533 -35.4423 35.3422 +1.77638 -36.0206 35.9189 +1.33241 -36.0303 35.9285 +0.876111 -35.5415 35.4412 +0.447671 -36.3244 36.2218 +1.06581e-14 -36.1134 36.0114 +-0.445053 -36.112 36.0101 +-0.886582 -35.9663 35.8648 +-1.32717 -35.8886 35.7873 +-1.7694 -35.8791 35.7778 +-2.22023 -36.0083 35.9066 +-2.6639 -35.9932 35.8915 +-3.09516 -35.834 35.7328 +-3.52968 -35.7428 35.6419 +-4.04064 -36.355 36.2524 +-4.47981 -36.2581 36.1558 +-4.92647 -36.2291 36.1268 +-5.37276 -36.1972 36.095 +-5.81865 -36.1627 36.0606 +-6.27627 -36.1956 36.0934 +-6.7482 -36.2959 36.1934 +-7.16741 -36.1125 36.0106 +-7.62697 -36.1369 36.0349 +-8.05637 -36.0184 35.9167 +-8.56597 -36.2467 36.1443 +-8.92552 -35.8437 35.7425 +-9.36691 -35.7872 35.6861 +-9.82666 -35.7974 35.6964 +-10.2475 -35.6659 35.5652 +-10.6867 -35.6013 35.5008 +-11.1034 -35.4648 35.3646 +-11.5625 -35.4638 35.3636 +-12.1858 -35.9418 35.8403 +-12.6525 -35.9339 35.8324 +-13.0698 -35.7858 35.6847 +-13.5104 -35.7036 35.6028 +-14.2171 -36.3011 36.1986 +-14.4158 -35.5993 35.4988 +-15.1096 -36.1199 36.0179 +-15.5542 -36.0252 35.9234 +-16.1178 -36.1978 36.0956 +-16.5942 -36.1642 36.0621 +-17.3248 -36.6647 36.5611 +-17.483 -35.9536 35.8521 +-18.2592 -36.5117 36.4086 +-18.4691 -35.9317 35.8302 +-19.1563 -36.2805 36.1781 +-19.5669 -36.0946 35.9927 +-20.3775 -36.6312 36.5277 +-20.5284 -35.9786 35.8771 +-21.2389 -36.3083 36.2058 +-21.6856 -36.1757 36.0736 +-22.5293 -36.6897 36.5861 +-22.9399 -36.4844 36.3814 +-23.4716 -36.4701 36.3672 +-24.0892 -36.5804 36.4771 +-24.8405 -36.8776 36.7735 +-25.294 -36.7226 36.619 +-25.7456 -36.565 36.4617 +-26.1953 -36.4045 36.3017 +-27.0123 -36.7437 36.6399 +-27.4641 -36.5754 36.4721 +-28.3432 -36.9643 36.86 +-28.7977 -36.7878 36.6839 +-29.5454 -36.9782 36.8738 +-30 -36.7942 36.6903 +-30.5031 -36.6685 36.5649 +-31.2628 -36.8428 36.7388 +-31.7679 -36.7086 36.6049 +-32.643 -36.9913 36.8869 +-33.2051 -36.9076 36.8034 +-33.6587 -36.701 36.5974 +-34.8272 -37.2592 37.154 +-35.5647 -37.3361 37.2307 +-35.8535 -36.9399 36.8356 +-36.5942 -37.007 36.9025 +-37.0488 -36.7794 36.6756 +-38.0297 -37.0647 36.96 +-38.5445 -36.8852 36.781 +-39.4189 -37.0414 36.9368 +-39.9347 -36.8527 36.7486 +-40.3874 -36.6045 36.5011 +-41.4595 -36.9077 36.8035 +-41.8498 -36.595 36.4917 +-42.9353 -36.8815 36.7773 +-44.031 -37.1571 37.0522 +-45.0067 -37.3144 37.2091 +-45.5305 -37.0883 36.9836 +-46.3834 -37.1238 37.019 +-46.8391 -36.8357 36.7317 +-47.8318 -36.9626 36.8582 +-48.3537 -36.7174 36.6137 +-49.355 -36.8281 36.7241 +-49.8765 -36.5727 36.4694 +-51.657 -37.2227 37.1176 +-52.0431 -36.852 36.748 +-53.1372 -36.9757 36.8713 +-54.2382 -37.0886 36.9839 +-55.3461 -37.1908 37.0858 +-55.8754 -36.8956 36.7915 +-57.139 -37.0751 36.9705 +-57.668 -36.768 36.6642 +-59.4671 -37.2549 37.1497 +-60.0749 -36.9789 36.8745 +-62.0491 -37.5261 37.4201 +-62.9689 -37.4143 37.3086 +-64.7393 -37.7895 37.6828 +-65.902 -37.7891 37.6824 +-66.9913 -37.733 37.6265 +-68.2417 -37.7536 37.647 +-70.2118 -38.1495 38.0418 +-71.1584 -37.9698 37.8626 +-72.9902 -38.2447 38.1367 +-74.4296 -38.2917 38.1836 +-75.8756 -38.3237 38.2155 +-76.6726 -38.0159 37.9086 +-79.3634 -38.6236 38.5145 +-79.5876 -38.0129 37.9056 +-81.554 -38.2231 38.1152 +-83.28 -38.2963 38.1881 +-84.9295 -38.3128 38.2047 +-86.5857 -38.3119 38.2037 +-88.6746 -38.4784 38.3698 +-89.9168 -38.2572 38.1492 +-93.4006 -38.958 38.848 +-94.3968 -38.5918 38.4828 +-97.6539 -39.1228 39.0123 +-99.0944 -38.8955 38.7856 +-101.943 -39.1939 39.0833 +-103.658 -39.028 38.9178 +-106.086 -39.1052 38.9948 +-108.168 -39.0268 38.9166 +-110.793 -39.1153 39.0048 +-114.057 -39.3914 39.2802 +-116.975 -39.5082 39.3966 +-119.814 -39.5619 39.4502 +-123.118 -39.7304 39.6182 +-124.151 -39.1409 39.0304 +-97.6669 -30.071 29.9861 +-98.402 -29.577 29.4935 +-76.7744 -22.5185 22.4549 +-52.9422 -15.1464 15.1036 +-45.9626 -12.8204 12.7842 +-39.7705 -10.8103 10.7798 +-36.7175 -9.72095 9.6935 +-33.2651 -8.57339 8.54918 +-16.0249 -4.0183 4.00696 +-15.6956 -3.82691 3.8161 +-15.4577 -3.66237 3.65203 +-15.5973 -3.58859 3.57846 +-15.4502 -3.44949 3.43975 +-16.0659 -3.4781 3.46828 +-14.0947 -2.95636 2.94802 +-15.0918 -3.06433 3.05568 +-12.3345 -2.42218 2.41534 +-3164.66 -600.452 598.756 +-14.135 -2.58852 2.58121 +-11.2554 -1.98715 1.98154 +-13.5159 -2.29773 2.29124 +-13.6412 -2.23004 2.22375 +-12.8871 -2.02306 2.01735 +-13.205 -1.98752 1.98191 +-12.837 -1.84937 1.84415 +-13.5465 -1.86456 1.85929 +-14.3555 -1.88401 1.87869 +-13.6888 -1.70916 1.70434 +-13.9066 -1.64788 1.64323 +-14.519 -1.62835 1.62376 +-13.8462 -1.4653 1.46117 +-13.9628 -1.38954 1.38562 +-13.8802 -1.29397 1.29032 +-13.1016 -1.13912 1.1359 +-13.1151 -1.05811 1.05512 +-12.8293 -0.954824 0.952128 +-11.8452 -0.807637 0.805357 +-11.6555 -0.72207 0.720031 +-11.8633 -0.661132 0.659265 +-10.9732 -0.543344 0.54181 +-10.9795 -0.475517 0.474174 +-11.0848 -0.411359 0.410198 +-11.4891 -0.355202 0.354199 +-10.5935 -0.261953 0.261213 +-10.5964 -0.196482 0.195928 +-10.5984 -0.130997 0.130627 +-10.1996 -0.063029 0.062851 +11 -1.77636e-15 -1.7053e-13 +10.5996 -0.0649087 0.0659041 +10.1984 -0.124914 0.12683 +10.5964 -0.194706 0.197693 +10.7934 -0.264483 0.26854 +11.4891 -0.351992 0.35739 +11.8837 -0.437021 0.443723 +12.4767 -0.535476 0.543689 +12.9683 -0.63633 0.646089 +12.3618 -0.682684 0.693154 +13.0502 -0.801165 0.813452 +13.7365 -0.928125 0.942359 +14.0228 -1.03421 1.05007 +15.4004 -1.23125 1.25013 +15.6822 -1.35116 1.37188 +34.6014 -3.19652 3.24554 +37.5312 -3.70126 3.75802 +39.7584 -4.16949 4.23344 +40.1989 -4.46767 4.53619 +40.635 -4.77157 4.84475 +40.6726 -5.0324 5.10958 +54.4723 -7.08428 7.19293 +74.5055 -10.1624 10.3182 +75.1602 -10.7301 10.8947 +78.154 -11.6568 11.8356 +91.6742 -14.2613 14.48 +92.3703 -14.9642 15.1936 +94.8061 -15.9714 16.2164 +94.7009 -16.5684 16.8225 +94.4912 -17.1476 17.4106 +94.2744 -17.7256 17.9974 +94.9176 -18.471 18.7543 +95.5494 -19.2256 19.5205 +95.3067 -19.8099 20.1137 +95.0567 -20.3928 20.7055 +95.6578 -21.164 21.4886 +95.4861 -21.7706 22.1045 +95.8755 -22.5104 22.8556 +95.5919 -23.0966 23.4508 +96.1494 -23.8919 24.2583 +96.6004 -24.6718 25.0501 +96.2899 -25.2623 25.6497 +95.8787 -25.8259 26.2219 +96.5773 -26.6948 27.1042 +96.2417 -27.2853 27.7037 +96.7302 -28.1152 28.5464 +95.8246 -28.5419 28.9797 +94.9157 -28.9597 29.4039 +95.1914 -29.7397 30.1958 +94.727 -30.2923 30.7569 +95.1623 -31.1381 31.6157 +95.313 -31.9009 32.3902 +94.8228 -32.4526 32.9503 +95.1315 -33.2825 33.7929 +95.4268 -34.1186 34.6419 +95.5311 -34.896 35.4312 +93.9456 -35.0515 35.589 +93.9455 -35.7928 36.3417 +92.0975 -35.8224 36.3718 +90.43 -35.9012 36.4518 +88.7676 -35.9624 36.5139 +86.7661 -35.8635 36.4136 +85.8024 -36.1766 36.7315 +84.1556 -36.1874 36.7424 +82.1759 -36.032 36.5846 +80.4595 -35.9683 36.5199 +79.1705 -36.0774 36.6307 +77.9683 -36.2123 36.7676 +76.0227 -35.9821 36.5339 +75.5724 -36.4462 37.0052 +73.4779 -36.1026 36.6563 +72.2935 -36.1844 36.7394 +70.3036 -35.8421 36.3918 +69.1317 -35.8956 36.4461 +68.2035 -36.0642 36.6172 +67.3557 -36.2668 36.823 +65.4049 -35.8571 36.407 +64.2521 -35.8631 36.4131 +63.182 -35.9019 36.4525 +62.7331 -36.2874 36.844 +60.8239 -35.8132 36.3624 +60.4523 -36.2298 36.7855 +59.2447 -36.1383 36.6925 +58.119 -36.0812 36.6346 +56.7763 -35.8723 36.4225 +55.5907 -35.7445 36.2927 +54.559 -35.7007 36.2483 +54.1129 -36.0335 36.5861 +53.0153 -35.9247 36.4757 +51.9246 -35.8054 36.3545 +50.9117 -35.725 36.2729 +49.8346 -35.585 36.1307 +49.3902 -35.8888 36.4392 +48.3225 -35.7318 36.2798 +47.8763 -36.0263 36.5788 +46.9535 -35.956 36.5074 +45.9024 -35.7727 36.3214 +44.8594 -35.5795 36.1251 +44.0216 -35.5351 36.08 +43.578 -35.8033 36.3524 +42.8097 -35.8 36.3491 +41.7903 -35.5735 36.119 +41.0317 -35.5553 36.1006 +40.588 -35.8053 36.3544 +40.1411 -36.0524 36.6053 +39.6912 -36.2968 36.8535 +38.6967 -36.0342 36.5868 +38.2471 -36.2698 36.826 +37.0892 -35.8214 36.3707 +36.5262 -35.9329 36.4839 +35.5044 -35.5803 36.126 +34.9473 -35.6807 36.228 +34.5581 -35.9515 36.5029 +34.0545 -36.1033 36.657 +33.4408 -36.1339 36.6881 +32.5604 -35.8638 36.4138 +32.0601 -36.0023 36.5545 +31.6112 -36.1973 36.7524 +30.6963 -35.8482 36.3979 +30.2493 -36.0348 36.5874 +29.85 -36.2794 36.8358 +28.9545 -35.9111 36.4619 +28.1674 -35.6574 36.2043 +27.7706 -35.8903 36.4407 +27.3702 -36.1209 36.6748 +26.8738 -36.2248 36.7804 +26.0137 -35.8254 36.3748 +25.6118 -36.0461 36.5989 +24.8118 -35.697 36.2444 +24.2808 -35.7209 36.2687 +23.8779 -35.9318 36.4829 +23.4716 -36.1405 36.6948 +22.6959 -35.77 36.3186 +22.2901 -35.972 36.5237 +21.8028 -36.0425 36.5953 +21.3537 -36.1747 36.7295 +20.903 -36.3041 36.8608 +20.4141 -36.3654 36.9231 +19.7102 -36.0304 36.583 +19.1914 -36.0183 36.5707 +18.7769 -36.2004 36.7555 +18.3594 -36.3801 36.9381 +17.6132 -35.8941 36.4445 +17.42 -36.5329 37.0932 +16.8723 -36.438 36.9968 +16.1479 -35.9376 36.4887 +15.5542 -35.6995 36.247 +15.1096 -35.7934 36.3424 +14.719 -36.0195 36.5719 +14.2705 -36.1083 36.6621 +13.6139 -35.652 36.1988 +13.2201 -35.8699 36.42 +12.7493 -35.8814 36.4317 +12.3259 -36.0263 36.5788 +11.8099 -35.8953 36.4458 +11.3198 -35.8293 36.3788 +10.9569 -36.1718 36.7265 +10.4269 -35.9625 36.514 +9.97931 -36.0249 36.5774 +9.58559 -36.2916 36.8482 +9.13389 -36.349 36.9064 +8.54947 -35.8499 36.3997 +8.11895 -35.9701 36.5218 +7.65653 -35.9491 36.5004 +7.20917 -35.9946 36.5466 +6.77431 -36.107 36.6607 +6.31283 -36.0774 36.6307 +5.87525 -36.1844 36.7394 +5.42503 -36.219 36.7745 +4.97439 -36.2509 36.8068 +4.50595 -36.1402 36.6944 +4.0328 -35.9565 36.508 +3.61339 -36.2598 36.8159 +3.16842 -36.3506 36.9081 +2.6639 -35.6678 36.2148 +2.22023 -35.6828 36.2301 +1.77638 -35.6951 36.2425 +1.33502 -35.7747 36.3234 +0.890073 -35.7815 36.3303 +0.445053 -35.7856 36.3345 +1.06581e-14 -35.9273 36.4783 +-0.444181 -35.7155 36.2632 +-0.888327 -35.7113 36.259 +-1.33241 -35.7046 36.2522 +-1.77638 -35.6951 36.2425 +-2.26385 -36.3839 36.9418 +-2.71624 -36.3686 36.9264 +-3.15621 -36.2105 36.7659 +-3.60641 -36.1898 36.7448 +-4.04064 -36.0264 36.5789 +-4.47981 -35.9304 36.4814 +-4.92647 -35.9016 36.4522 +-5.45639 -36.4283 36.987 +-5.92053 -36.4633 37.0225 +-6.30065 -36.0077 36.56 +-6.7221 -35.8287 36.3781 +-7.18133 -35.8556 36.4055 +-7.61218 -35.7409 36.289 +-8.07202 -35.7622 36.3107 +-8.56597 -35.919 36.4699 +-9.06443 -36.0726 36.6258 +-9.36691 -35.4637 36.0076 +-9.80758 -35.405 35.948 +-10.2276 -35.2748 35.8158 +-10.6867 -35.2795 35.8206 +-11.3414 -35.8978 36.4483 +-11.7649 -35.7586 36.307 +-12.3959 -36.231 36.7867 +-12.6525 -35.6091 36.1552 +-13.2952 -36.0737 36.6269 +-13.7433 -35.991 36.5429 +-14.2171 -35.973 36.5247 +-14.912 -36.4917 37.0514 +-15.3936 -36.4662 37.0255 +-15.5542 -35.6995 36.247 +-16.3584 -36.406 36.9644 +-16.5633 -35.7706 36.3191 +-17.3248 -36.3333 36.8905 +-17.8086 -36.2921 36.8487 +-18.2926 -36.2479 36.8038 +-18.7085 -36.0685 36.6217 +-19.4365 -36.4784 37.0378 +-19.8894 -36.358 36.9156 +-20.3408 -36.2348 36.7905 +-20.7907 -36.1089 36.6626 +-21.5833 -36.5636 37.1244 +-22.0372 -36.4301 36.9888 +-22.4894 -36.2938 36.8504 +-22.9806 -36.2187 36.7742 +-23.4302 -36.0766 36.6299 +-24.3006 -36.5678 37.1286 +-24.8405 -36.5443 37.1047 +-25.3379 -36.4538 37.0129 +-26.1026 -36.7369 37.3003 +-26.5584 -36.5756 37.1366 +-27.0585 -36.4738 37.0332 +-27.511 -36.3067 36.8635 +-28.3432 -36.6302 37.192 +-28.7007 -36.3326 36.8898 +-29.9886 -37.1937 37.7641 +-30.05 -36.5224 37.0826 +-30.9091 -36.8207 37.3854 +-31.6748 -36.991 37.5583 +-32.1859 -36.8554 37.4206 +-32.696 -36.7165 37.2796 +-33.2051 -36.574 37.1349 +-33.9855 -36.7224 37.2855 +-34.772 -36.864 37.4293 +-35.2851 -36.7078 37.2708 +-36.4199 -37.1843 37.7546 +-36.5368 -36.615 37.1765 +-37.6296 -37.0183 37.586 +-38.0885 -36.7864 37.3506 +-39.0204 -37.003 37.5705 +-39.5392 -36.8188 37.3834 +-40.4826 -37.0206 37.5883 +-40.8799 -36.716 37.2791 +-41.335 -36.4643 37.0235 +-42.4162 -36.7551 37.3187 +-43.3805 -36.9271 37.4934 +-44.6095 -37.3051 37.8772 +-45.0717 -37.0305 37.5985 +-45.3337 -36.5942 37.1554 +-46.4497 -36.8408 37.4058 +-47.4414 -36.9722 37.5392 +-48.5749 -37.1976 37.768 +-49.0357 -36.8987 37.4646 +-49.9745 -36.9534 37.5201 +-51.1269 -37.1507 37.7204 +-51.657 -36.8863 37.452 +-52.6795 -36.9655 37.5324 +-53.7791 -37.0842 37.6529 +-54.2382 -36.7534 37.317 +-56.2165 -37.4342 38.0083 +-56.6799 -37.0886 37.6574 +-58.6135 -37.6882 38.2662 +-59.08 -37.3279 37.9003 +-60.216 -37.3832 37.9565 +-60.7541 -37.059 37.6274 +-62.6575 -37.5514 38.1273 +-63.5817 -37.437 38.0111 +-64.8165 -37.4925 38.0675 +-65.902 -37.4475 38.0218 +-67.7739 -37.8288 38.409 +-69.0297 -37.8443 38.4247 +-70.1324 -37.7619 38.3411 +-71.8772 -38.0068 38.5896 +-73.9548 -38.3999 38.9888 +-74.6723 -38.0693 38.6532 +-76.1198 -38.0996 38.6839 +-77.4099 -38.0345 38.6179 +-79.1161 -38.1552 38.7404 +-81.3286 -38.4933 39.0837 +-82.5547 -38.3425 38.9305 +-83.5316 -38.0647 38.6485 +-85.9416 -38.4189 39.0081 +-87.2641 -38.2631 38.8499 +-89.0156 -38.2773 38.8643 +-91.1169 -38.4173 39.0065 +-93.9176 -38.8195 39.4149 +-95.1762 -38.5587 39.1501 +-97.915 -38.8729 39.469 +-99.8816 -38.8501 39.446 +-102.382 -39.0071 39.6053 +-104.453 -38.9717 39.5694 +-106.885 -39.0434 39.6422 +-108.97 -38.9608 39.5583 +-112.493 -39.3566 39.9602 +-114.866 -39.3122 39.9151 +-117.065 -39.1813 39.7822 +-120.086 -39.2933 39.8959 +-123.937 -39.6332 40.241 +-101.495 -31.7089 32.1952 +-97.7586 -29.8272 30.2846 +-98.1258 -29.2274 29.6756 +-92.7575 -26.9605 27.374 +-56.7437 -16.0872 16.3339 +-49.126 -13.5789 13.7872 +-41.0775 -11.0646 11.2343 +-38.7782 -10.1737 10.3298 +-33.0772 -8.4479 8.57746 +-15.8364 -3.93514 3.99549 +-15.1283 -3.65525 3.71131 +-14.5094 -3.40661 3.45886 +-16.3582 -3.72963 3.78683 +-15.7363 -3.48162 3.53501 +-15.014 -3.221 3.27039 +-15.2452 -3.16879 3.21739 +-13.4577 -2.70783 2.74935 +-12.4308 -2.41905 2.45614 +-3164.66 -595.025 604.15 +-12.2955 -2.2313 2.26552 +-12.1287 -2.12197 2.15451 +-12.9325 -2.17867 2.21208 +-11.8873 -1.92576 1.95529 +-14.2539 -2.2174 2.25141 +-13.205 -1.96955 1.99976 +-14.0129 -2.00053 2.03122 +-13.3501 -1.82093 1.84885 +-13.8639 -1.80305 1.8307 +-13.3934 -1.65716 1.68258 +-13.7094 -1.60982 1.63451 +-14.2227 -1.5807 1.60495 +-13.3517 -1.4002 1.42168 +-13.8638 -1.36722 1.38819 +-14.2768 -1.31891 1.33914 +-14.1934 -1.22288 1.24164 +-13.1151 -1.04854 1.06463 +-12.0337 -0.88751 0.901121 +-11.9448 -0.807067 0.819444 +-12.054 -0.740005 0.751354 +-11.0658 -0.611113 0.620485 +-11.5717 -0.567803 0.576511 +-11.778 -0.50549 0.513242 +-11.0848 -0.407641 0.413893 +-11.0894 -0.339748 0.344959 +-11.0932 -0.271829 0.275998 +-11.4961 -0.211238 0.214478 +-10.9983 -0.134711 0.136777 +-10.9996 -0.067358 0.0683911 +10.6 1.77636e-15 -1.7053e-13 +10.5996 -0.0643125 0.066486 +10.1984 -0.123767 0.12795 +11.0962 -0.202018 0.208845 +11.493 -0.279039 0.288469 +11.9886 -0.363922 0.376221 +12.383 -0.451201 0.466449 +12.7761 -0.543291 0.561652 +12.3698 -0.601387 0.621711 +12.4615 -0.681869 0.704914 +13.6479 -0.830162 0.858218 +14.2342 -0.952917 0.985122 +14.6195 -1.06832 1.10442 +14.3074 -1.13337 1.17167 +17.4688 -1.49126 1.54166 +31.0322 -2.84047 2.93646 +34.8574 -3.40601 3.52111 +37.9782 -3.94622 4.07958 +40.3965 -4.4484 4.59873 +41.9171 -4.87692 5.04174 +45.6951 -5.60191 5.79123 +64.6982 -8.33694 8.61869 +83.0457 -11.2232 11.6025 +85.3514 -12.0731 12.4812 +90.6743 -13.4 13.8529 +92.4552 -14.2506 14.7322 +94.2216 -15.1239 15.635 +94.8061 -15.8248 16.3596 +94.7009 -16.4162 16.971 +94.4912 -16.9902 17.5644 +95.1437 -17.7248 18.3238 +94.8212 -18.2828 18.9007 +94.6843 -18.8765 19.5145 +95.4026 -19.6477 20.3117 +95.1523 -20.2258 20.9094 +95.6578 -20.9696 21.6783 +95.391 -21.5492 22.2775 +95.8755 -22.3036 23.0574 +95.4974 -22.8618 23.6345 +95.3011 -23.4636 24.2566 +96.6004 -24.4452 25.2713 +96.2899 -25.0303 25.8762 +95.8787 -25.5887 26.4534 +96.5773 -26.4497 27.3436 +96.2417 -27.0347 27.9483 +96.5454 -27.8038 28.7434 +96.4689 -28.47 29.4321 +95.2825 -28.8047 29.7781 +95.1001 -29.4382 30.4331 +94.909 -30.0718 31.0881 +95.0717 -30.8228 31.8645 +94.4104 -31.3086 32.3667 +94.8228 -32.1546 33.2412 +95.221 -33.0078 34.1233 +95.6941 -33.8999 35.0456 +95.265 -34.4792 35.6445 +94.7403 -35.0233 36.2069 +93.8577 -35.4309 36.6283 +92.8846 -35.7968 37.0065 +91.3873 -35.9481 37.163 +89.98 -36.1188 37.3395 +88.317 -36.1693 37.3917 +86.0596 -35.9518 37.1668 +84.6672 -36.073 37.2921 +82.6847 -35.9221 37.1361 +81.7246 -36.1983 37.4216 +79.6737 -35.9733 37.189 +79.2192 -36.4553 37.6873 +77.515 -36.3514 37.5799 +76.3141 -36.4659 37.6983 +74.379 -36.2097 37.4334 +72.3749 -35.8925 37.1055 +70.4654 -35.5946 36.7976 +69.7748 -35.8967 37.1099 +68.5229 -35.9003 37.1136 +67.9904 -36.2724 37.4982 +66.1929 -35.9558 37.171 +65.0347 -35.9665 37.182 +63.182 -35.5721 36.7743 +62.7331 -35.9542 37.1693 +61.59 -35.9311 37.1455 +61.1366 -36.3035 37.5304 +59.2447 -35.8063 37.0164 +58.793 -36.1645 37.3867 +57.5937 -36.0546 37.273 +56.328 -35.886 37.0987 +55.1441 -35.7522 36.9605 +54.7658 -36.1333 37.3544 +53.0153 -35.5948 36.7977 +52.5666 -35.9151 37.1289 +51.4774 -35.7902 36.9998 +50.5356 -35.7541 36.9624 +49.3207 -35.5091 36.7092 +48.942 -35.8574 37.0693 +47.8763 -35.6954 36.9017 +47.0211 -35.677 36.8827 +45.9693 -35.4958 36.6954 +45.5883 -35.8255 37.0363 +44.612 -35.681 36.8869 +43.7728 -35.6331 36.8373 +42.8739 -35.5245 36.7251 +42.4264 -35.7833 36.9926 +41.5351 -35.661 36.8662 +41.086 -35.9117 37.1253 +40.1411 -35.7213 36.9285 +39.6304 -35.9083 37.1219 +38.6967 -35.7032 36.9099 +38.1876 -35.8807 37.0934 +37.0305 -35.4361 36.6337 +36.5843 -35.6594 36.8646 +36.0206 -35.7661 36.9748 +35.457 -35.8687 37.0809 +34.5022 -35.5637 36.7656 +33.9993 -35.7137 36.9207 +33.4953 -35.8603 37.0722 +32.9902 -36.0035 37.2203 +32.1131 -35.7306 36.9382 +31.6112 -35.8648 37.0769 +31.1598 -36.0552 37.2738 +30.7568 -36.3028 37.5297 +29.4 -35.4043 36.6008 +29.3484 -36.0654 37.2843 +28.5553 -35.8164 37.0269 +28.1047 -35.9883 37.2045 +27.7458 -36.2802 37.5064 +26.7814 -35.7688 36.9776 +26.4222 -36.0539 37.2723 +25.9687 -36.2128 37.4366 +24.8118 -35.3691 36.5644 +24.7113 -36.0203 37.2377 +23.8779 -35.6018 36.805 +23.5131 -35.8718 37.0842 +23.062 -36.0131 37.2302 +22.6091 -36.1517 37.3735 +21.8028 -35.7115 36.9184 +21.3537 -35.8424 37.0538 +20.9405 -36.0351 37.2529 +20.4874 -36.1607 37.3828 +19.6744 -35.6346 36.8389 +19.1914 -35.6875 36.8935 +18.7769 -35.8679 37.0801 +18.3594 -36.046 37.2642 +17.8737 -36.0903 37.31 +17.4518 -36.2633 37.4888 +17.1195 -36.6322 37.8703 +16.2983 -35.9391 37.1537 +15.7881 -35.9036 37.117 +15.3652 -36.0646 37.2835 +14.719 -35.6887 36.8948 +14.2973 -35.8436 37.055 +13.8468 -35.929 37.1432 +13.2201 -35.5405 36.7416 +12.7735 -35.6193 36.8231 +12.3259 -35.6955 36.9018 +11.8099 -35.5656 36.7676 +11.4929 -36.0432 37.2613 +10.9569 -35.8396 37.0508 +10.6263 -36.3135 37.5407 +9.99839 -35.7623 36.9709 +9.60381 -36.0267 37.2442 +9.15126 -36.0836 37.3031 +8.665 -36.0006 37.2173 +8.10331 -35.5711 36.7733 +7.80434 -36.3065 37.5335 +7.22308 -35.7329 36.9405 +6.77431 -35.7753 36.9844 +6.32502 -35.815 37.0254 +5.86393 -35.783 36.9923 +5.41457 -35.8172 37.0277 +4.98398 -35.9871 37.2033 +4.52338 -35.9467 37.1616 +4.05634 -35.8342 37.0452 +3.60641 -35.8574 37.0693 +3.16231 -35.9473 37.1622 +2.70577 -35.8957 37.1088 +2.26385 -36.0497 37.268 +1.77638 -35.3672 36.5625 +1.35858 -36.0717 37.2907 +0.890073 -35.4529 36.651 +0.454652 -36.2217 37.4458 +7.99361e-15 -35.3888 36.5848 +-0.452035 -36.0131 37.2302 +-0.90578 -36.0785 37.2978 +-1.3612 -36.1412 37.3626 +-1.80779 -35.9925 37.2089 +-2.26385 -36.0497 37.268 +-2.711 -35.9651 37.1806 +-3.16842 -36.0167 37.2339 +-3.60641 -35.8574 37.0693 +-4.05634 -35.8342 37.0452 +-4.47981 -35.6004 36.8036 +-5.01273 -36.1947 37.4179 +-5.45639 -36.0938 37.3136 +-5.93185 -36.1975 37.4208 +-6.28846 -35.6081 36.8115 +-6.83957 -36.12 37.3407 +-7.16741 -35.4575 36.6558 +-7.62697 -35.4814 36.6805 +-8.04073 -35.2964 36.4893 +-8.59898 -35.7263 36.9337 +-9.06443 -35.7413 36.9492 +-9.38513 -35.2063 36.3962 +-9.96023 -35.6258 36.8298 +-10.4269 -35.6322 36.8364 +-10.8738 -35.5675 36.7696 +-11.3414 -35.5681 36.7701 +-11.7424 -35.3624 36.5575 +-12.3959 -35.8983 37.1115 +-12.6525 -35.2821 36.4744 +-13.2952 -35.7424 36.9503 +-13.7433 -35.6604 36.8656 +-14.4309 -36.1786 37.4013 +-14.6639 -35.555 36.7566 +-15.3652 -36.0646 37.2835 +-15.8173 -35.9701 37.1857 +-16.3584 -36.0717 37.2907 +-16.8723 -36.1033 37.3234 +-17.3566 -36.0655 37.2843 +-17.8086 -35.9588 37.1741 +-18.2592 -35.8494 37.0609 +-18.9821 -36.2599 37.4853 +-19.4365 -36.1433 37.3648 +-19.8894 -36.024 37.2415 +-20.7073 -36.5489 37.7841 +-21.0529 -36.2284 37.4528 +-21.5451 -36.1636 37.3857 +-22.0763 -36.1595 37.3815 +-22.4894 -35.9604 37.1757 +-23.2653 -36.3307 37.5585 +-23.8034 -36.3147 37.542 +-24.3428 -36.2949 37.5215 +-25.1849 -36.7106 37.9513 +-25.6447 -36.5565 37.7919 +-26.1472 -36.4617 37.6939 +-26.74 -36.4875 37.7206 +-27.474 -36.6938 37.9339 +-27.9336 -36.5258 37.7602 +-28.6772 -36.7215 37.9625 +-29.1371 -36.5461 37.7812 +-30.0378 -36.9126 38.1601 +-30 -36.1268 37.3477 +-31.2644 -36.9019 38.1491 +-31.2628 -36.1745 37.397 +-32.2904 -36.6355 37.8736 +-33.2789 -37.0278 38.2792 +-33.6887 -36.7658 38.0083 +-34.4212 -36.8516 38.097 +-34.9376 -36.6993 37.9396 +-35.3969 -36.486 37.719 +-36.8164 -37.2439 38.5026 +-36.5368 -36.2787 37.5048 +-37.978 -37.0179 38.269 +-38.4999 -36.8423 38.0874 +-39.4962 -37.1103 38.3645 +-39.9605 -36.8693 38.1153 +-40.4826 -36.6806 37.9202 +-40.8799 -36.3788 37.6082 +-41.9575 -36.6735 37.9129 +-42.9197 -36.8498 38.0952 +-43.953 -37.0708 38.3237 +-44.5452 -36.9092 38.1566 +-45.5263 -37.0605 38.313 +-46.0553 -36.8353 38.0802 +-46.9135 -36.867 38.1129 +-47.3744 -36.5809 37.8172 +-48.5074 -36.8047 38.0485 +-49.5813 -36.9666 38.2159 +-50.6629 -37.1183 38.3727 +-51.1269 -36.8095 38.0535 +-52.2878 -36.9938 38.244 +-52.6795 -36.626 37.8638 +-53.7078 -36.6948 37.9349 +-54.9576 -36.8988 38.1458 +-56.2165 -37.0904 38.3439 +-56.6799 -36.7479 37.9899 +-58.5398 -37.2951 38.5555 +-59.7488 -37.4037 38.6678 +-60.4407 -37.178 38.4344 +-61.4334 -37.1291 38.384 +-63.1137 -37.4775 38.7441 +-64.3477 -37.54 38.8087 +-66.1282 -37.9 39.1808 +-66.6014 -37.4974 38.7646 +-68.4782 -37.8709 39.1507 +-69.6602 -37.8392 39.118 +-71.4018 -38.0923 39.3797 +-71.8772 -37.6577 38.9304 +-74.4371 -38.2954 39.5896 +-75.4004 -38.0875 39.3747 +-77.341 -38.3553 39.6516 +-78.5567 -38.2435 39.536 +-80.5995 -38.5136 39.8152 +-81.0799 -38.0232 39.3082 +-83.055 -38.2205 39.5122 +-84.4541 -38.1317 39.4204 +-86.6163 -38.365 39.6615 +-87.8578 -38.1695 39.4595 +-89.9535 -38.3253 39.6205 +-91.6312 -38.2794 39.5731 +-94.693 -38.7806 40.0912 +-95.869 -38.4827 39.7832 +-98.3502 -38.687 39.9945 +-101.194 -38.9989 40.3169 +-103.964 -39.246 40.5724 +-104.806 -38.7443 40.0537 +-108.481 -39.2627 40.5896 +-109.594 -38.8239 40.136 +-113.299 -39.2743 40.6016 +-114.596 -38.8597 40.173 +-118.329 -39.2405 40.5667 +-121.173 -39.2851 40.6128 +-124.756 -39.5286 40.8645 +-98.0234 -30.3431 31.3686 +-98.4005 -29.7473 30.7526 +-98.2179 -28.9861 29.9657 +-94.8824 -27.3249 28.2483 +-59.1543 -16.6167 17.1782 +-51.266 -14.0402 14.5147 +-43.1314 -11.5112 11.9002 +-39.1529 -10.1777 10.5217 +-35.0505 -8.86972 9.16948 +-18.0987 -4.45599 4.60658 +-16.1684 -3.87067 4.00148 +-15.0783 -3.50769 3.62623 +-15.7875 -3.56647 3.687 +-15.7363 -3.44964 3.56622 +-15.779 -3.35403 3.46738 +-15.3411 -3.15944 3.26621 +-13.9383 -2.77878 2.87269 +-13.9726 -2.69411 2.78516 +-12.9434 -2.41129 2.49278 +-3171.94 -570.336 589.611 +-11.5465 -2.00157 2.06921 +-13.8077 -2.30473 2.38262 +-13.8361 -2.22087 2.29593 +-13.0824 -2.01646 2.08461 +-12.9115 -1.90809 1.97258 +-13.229 -1.87127 1.93451 +-13.3501 -1.8042 1.86518 +-13.8639 -1.78649 1.84686 +-13.4919 -1.65401 1.70991 +-14.3011 -1.66389 1.72012 +-14.0252 -1.54443 1.59663 +-13.9451 -1.449 1.49797 +-13.9628 -1.36434 1.41045 +-13.9794 -1.27957 1.32282 +-13.6971 -1.16929 1.20881 +-13.2145 -1.04678 1.08216 +-12.6304 -0.922966 0.954158 +-12.0443 -0.806315 0.833565 +-12.5521 -0.763508 0.789311 +-12.5612 -0.687324 0.710553 +-11.2725 -0.548038 0.566559 +-10.9795 -0.466891 0.48267 +-11.684 -0.42573 0.440118 +-11.2892 -0.342693 0.354275 +-10.7934 -0.262054 0.270911 +-10.7963 -0.196558 0.203201 +-10.9983 -0.133473 0.137984 +-10.5996 -0.0643125 0.066486 +10.2 1.77636e-15 -2.27374e-13 +10.5996 -0.06371 0.0670636 +10.5984 -0.127415 0.134122 +10.1965 -0.183899 0.193579 +12.3924 -0.298058 0.313747 +11.4891 -0.345491 0.363678 +11.0848 -0.400113 0.421175 +12.4767 -0.525588 0.553254 +12.6691 -0.610166 0.642284 +13.0596 -0.707901 0.745164 +13.9467 -0.840395 0.884633 +14.2342 -0.94399 0.99368 +14.6195 -1.05831 1.11402 +15.4997 -1.21631 1.28033 +18.2628 -1.54445 1.62574 +29.2476 -2.65203 2.79163 +33.273 -3.22073 3.39027 +38.0771 -3.91942 4.12574 +40.8903 -4.46059 4.69539 +45.665 -5.2632 5.54025 +51.6039 -6.26702 6.59691 +79.6436 -10.1667 10.7018 +90.506 -12.1168 12.7547 +91.623 -12.8389 13.5147 +91.6524 -13.4177 14.124 +93.3339 -14.2513 15.0014 +94.1241 -14.9667 15.7545 +94.7088 -15.6605 16.4848 +94.7009 -16.2624 17.1185 +94.4912 -16.831 17.7169 +95.1437 -17.5587 18.483 +94.8212 -18.1115 19.0649 +95.6455 -18.8895 19.8838 +95.4026 -19.4636 20.4882 +95.9174 -20.1974 21.2606 +95.6578 -20.7732 21.8666 +95.391 -21.3473 22.471 +95.8755 -22.0947 23.2577 +95.5919 -22.67 23.8634 +96.1494 -23.4507 24.6851 +95.7547 -24.0041 25.2677 +96.2899 -24.7958 26.101 +95.9721 -25.3736 26.7092 +96.5773 -26.2019 27.5811 +96.2417 -26.7814 28.1911 +96.6378 -27.5696 29.0209 +96.653 -28.2571 29.7445 +95.0991 -28.4799 29.979 +95.2828 -29.2184 30.7565 +94.909 -29.79 31.3581 +94.8904 -30.4757 32.08 +94.5909 -31.0746 32.7103 +95.6317 -32.125 33.816 +95.1315 -32.6678 34.3874 +95.5159 -33.5198 35.2842 +95.7085 -34.3152 36.1215 +95.27 -34.8892 36.7257 +94.1213 -35.1975 37.0503 +93.8467 -35.8287 37.7147 +92.4318 -36.0183 37.9143 +90.4131 -35.9526 37.8451 +88.317 -35.8305 37.7166 +86.5739 -35.8278 37.7137 +85.3493 -36.0229 37.9191 +83.7023 -36.0235 37.9198 +82.2307 -36.0812 37.9805 +80.764 -36.1239 38.0254 +79.2192 -36.1138 38.0147 +77.515 -36.0108 37.9064 +76.0668 -36.0072 37.9026 +75.1162 -36.226 38.1329 +73.9217 -36.3161 38.2278 +71.3553 -35.7065 37.5861 +69.8552 -35.6014 37.4754 +69.4014 -36.0199 37.9159 +67.7524 -35.8067 37.6915 +66.8233 -35.9582 37.851 +65.7391 -36.0154 37.9112 +64.5808 -36.0191 37.9151 +63.4275 -36.0115 37.9072 +62.2794 -35.9929 37.8876 +61.1366 -35.9633 37.8564 +59.9994 -35.9228 37.8137 +59.4671 -36.2364 38.1438 +57.5937 -35.7168 37.5969 +57.139 -36.0615 37.9598 +55.8754 -35.887 37.776 +54.6932 -35.7473 37.629 +53.7347 -35.7398 37.6211 +53.2085 -36.0131 37.9088 +51.4774 -35.4549 37.3212 +51.0262 -35.7629 37.6454 +50.0154 -35.6719 37.5497 +49.6304 -36.0211 37.9172 +48.0127 -35.4617 37.3284 +47.5616 -35.7489 37.6307 +46.5046 -35.5728 37.4453 +46.1184 -35.9025 37.7924 +45.1369 -35.7625 37.645 +44.2274 -35.6658 37.5432 +43.7738 -35.9303 37.8216 +43.0625 -35.9795 37.8734 +41.9127 -35.6481 37.5246 +41.086 -35.5752 37.4479 +40.7568 -35.9294 37.8207 +40.2391 -36.1184 38.0196 +39.2383 -35.8637 37.7516 +38.723 -36.0429 37.9401 +37.5595 -35.6056 37.4798 +37.0488 -35.7739 37.657 +36.5368 -35.9388 37.8306 +36.0801 -36.157 38.0603 +35.0614 -35.8015 37.6861 +34.4961 -35.896 37.7856 +33.4953 -35.5243 37.3943 +32.9902 -35.6662 37.5436 +32.537 -35.8632 37.751 +32.1337 -36.1161 38.0172 +31.1598 -35.7175 37.5976 +30.7061 -35.9034 37.7933 +30.25 -36.0866 37.9861 +29.4469 -35.8474 37.7344 +28.9916 -36.023 37.9193 +28.0569 -35.5906 37.464 +27.7458 -35.9403 37.8322 +27.2893 -36.1057 38.0063 +26.4676 -35.7774 37.6607 +25.9687 -35.8735 37.7619 +25.1625 -35.533 37.4034 +24.6683 -35.6207 37.4957 +24.2583 -35.8301 37.7161 +23.8863 -36.0998 38.0001 +23.3467 -36.1162 38.0173 +22.6091 -35.813 37.6981 +22.1545 -35.9475 37.8397 +21.6982 -36.0793 37.9785 +20.9405 -35.6975 37.5766 +20.5241 -35.8861 37.7751 +20.0328 -35.9437 37.8357 +19.2614 -35.4822 37.3499 +18.7769 -35.5318 37.4022 +18.2926 -35.5785 37.4513 +17.9388 -35.8824 37.7712 +17.5152 -36.0542 37.952 +17.1504 -36.3545 38.2682 +16.5087 -36.0622 37.9604 +15.9927 -36.0283 37.9248 +15.3368 -35.6608 37.5379 +14.9395 -35.884 37.7729 +14.5378 -36.1051 38.0057 +13.8727 -35.6589 37.536 +13.3953 -35.6743 37.5521 +12.9912 -35.8871 37.7761 +12.5127 -35.8968 37.7864 +12.0124 -35.8365 37.7229 +11.4929 -35.7055 37.585 +10.9985 -35.6385 37.5145 +10.6263 -35.9733 37.8668 +10.1892 -36.1034 38.0038 +9.60381 -35.6891 37.5678 +9.13389 -35.6777 37.5557 +8.6815 -35.7312 37.6121 +8.11895 -35.3059 37.1643 +7.80434 -35.9664 37.8596 +7.22308 -35.3981 37.2614 +6.89178 -36.0547 37.9526 +6.32502 -35.4795 37.3471 +5.96581 -36.0636 37.962 +5.50865 -36.0981 37.9983 +4.97439 -35.5814 37.4544 +4.60182 -36.2275 38.1344 +4.12695 -36.1164 38.0176 +3.61339 -35.5902 37.4636 +3.15621 -35.5418 37.4127 +2.71624 -35.697 37.576 +2.25948 -35.6431 37.5194 +1.81128 -35.7242 37.6047 +1.35858 -35.7337 37.6147 +0.904035 -35.6716 37.5494 +0.45378 -35.8135 37.6986 +8.88178e-15 -35.746 37.6276 +-0.45378 -35.8135 37.6986 +-0.904035 -35.6716 37.5494 +-1.3612 -35.8026 37.6872 +-1.8043 -35.5865 37.4598 +-2.30747 -36.4001 38.3161 +-2.72147 -35.7657 37.6484 +-3.16842 -35.6793 37.5574 +-3.61339 -35.5902 37.4636 +-4.14264 -36.2537 38.1621 +-4.57568 -36.0216 37.9177 +-5.09899 -36.4727 38.3925 +-5.46684 -35.8241 37.7099 +-5.92053 -35.7899 37.6739 +-6.39814 -35.8897 37.7789 +-6.86568 -35.9182 37.8088 +-7.29267 -35.7391 37.6203 +-7.74521 -35.6939 37.5728 +-8.16588 -35.5099 37.3791 +-8.86306 -36.4784 38.3986 +-9.18599 -35.8812 37.7699 +-9.56737 -35.5537 37.4252 +-9.97931 -35.3596 37.2209 +-10.4269 -35.2983 37.1564 +-10.8946 -35.3017 37.1599 +-11.5362 -35.84 37.7266 +-11.9899 -35.7693 37.6522 +-12.4426 -35.6959 37.5749 +-12.8702 -35.5529 37.4244 +-13.5456 -36.0744 37.9733 +-13.9762 -35.925 37.8161 +-14.4576 -35.906 37.7961 +-14.9395 -35.884 37.7729 +-15.422 -35.8589 37.7464 +-15.8465 -35.6989 37.5781 +-16.3584 -35.7337 37.6147 +-17.1504 -36.3545 38.2682 +-17.6104 -36.2501 38.1583 +-18.069 -36.1429 38.0454 +-18.593 -36.1627 38.0663 +-19.0163 -35.9849 37.8791 +-19.7517 -36.3853 38.3006 +-20.212 -36.2652 38.1742 +-20.6707 -36.1424 38.0449 +-21.1278 -36.0168 37.9127 +-21.8895 -36.3975 38.3134 +-22.3107 -36.2011 38.1067 +-22.8882 -36.2551 38.1635 +-23.306 -36.0533 37.9511 +-24.1351 -36.4758 38.3959 +-24.7232 -36.5167 38.4389 +-25.1849 -36.3667 38.281 +-26.0831 -36.8329 38.7718 +-26.4149 -36.4899 38.4107 +-26.8762 -36.3297 38.2421 +-27.474 -36.3501 38.2635 +-27.7927 -36.0011 37.8962 +-28.6772 -36.3775 38.2924 +-29.1371 -36.2037 38.1094 +-29.9886 -36.5068 38.4285 +-30.5 -36.3848 38.3 +-31.3659 -36.6749 38.6054 +-31.6748 -36.3078 38.2191 +-32.2904 -36.2923 38.2027 +-33.2789 -36.6809 38.6117 +-34.0111 -36.7699 38.7055 +-34.8024 -36.9106 38.8536 +-35.2136 -36.6426 38.5715 +-36.012 -36.7722 38.7078 +-36.7598 -36.8382 38.7773 +-37.1104 -36.503 38.4244 +-38.0941 -36.7832 38.7194 +-38.6175 -36.6086 38.5356 +-39.6152 -36.8734 38.8144 +-40.0207 -36.5789 38.5043 +-41.0305 -36.8287 38.7673 +-41.4956 -36.5807 38.5062 +-42.3932 -36.7072 38.6394 +-42.9197 -36.5046 38.4261 +-43.4441 -36.2983 38.209 +-45.0594 -36.9855 38.9324 +-46.0459 -37.1323 39.0869 +-45.9897 -36.4382 38.3563 +-47.5761 -37.0374 38.987 +-48.0436 -36.75 38.6845 +-49.1154 -36.9169 38.8602 +-49.5131 -36.5699 38.4949 +-50.6629 -36.7705 38.7061 +-51.8215 -36.96 38.9056 +-52.8486 -37.0402 38.9899 +-54.023 -37.2082 39.1668 +-54.421 -36.8338 38.7727 +-55.7488 -37.0794 39.0312 +-56.8694 -37.1696 39.1262 +-58.0695 -37.2961 39.2594 +-59.2771 -37.411 39.3803 +-59.7488 -37.0533 39.0037 +-61.6391 -37.5598 39.537 +-61.7352 -36.962 38.9077 +-63.7981 -37.5289 39.5044 +-64.2711 -37.1441 39.0993 +-66.7455 -37.8954 39.8902 +-67.2231 -37.4928 39.4663 +-69.1826 -37.9019 39.8971 +-70.3694 -37.8663 39.8596 +-72.2745 -38.1967 40.2073 +-73.4745 -38.1339 40.1412 +-74.4371 -37.9366 39.9335 +-76.3712 -38.2164 40.2281 +-77.6666 -38.156 40.1645 +-78.8843 -38.0432 40.0458 +-81.094 -38.3869 40.4075 +-82.5721 -38.3602 40.3794 +-84.2225 -38.3946 40.4157 +-85.2089 -38.112 40.1182 +-87.3754 -38.3385 40.3566 +-88.7906 -38.2134 40.2249 +-91.1472 -38.47 40.4951 +-93.1741 -38.5592 40.5889 +-95.8993 -38.9066 40.9546 +-97.4279 -38.742 40.7814 +-100.265 -39.0707 41.1273 +-101.893 -38.9006 40.9483 +-104.316 -39.0097 41.0632 +-106.395 -38.9633 41.0143 +-109.102 -39.1175 41.1766 +-110.663 -38.8354 40.8797 +-113.836 -39.0908 41.1485 +-115.675 -38.858 40.9034 +-119.593 -39.288 41.3561 +-121.989 -39.179 41.2413 +-108.103 -33.9315 35.7177 +-97.2012 -29.8068 31.3758 +-97.942 -29.3313 30.8752 +-97.8497 -28.6069 30.1127 +-96.3606 -27.4906 28.9377 +-62.6776 -17.4414 18.3595 +-51.8243 -14.0601 14.8003 +-44.9052 -11.8723 12.4972 +-39.1529 -10.0824 10.6131 +-36.648 -9.18706 9.67065 +-32.1441 -7.83987 8.25255 +-16.1684 -3.83441 4.03624 +-16.2163 -3.73708 3.93379 +-14.8365 -3.32022 3.49499 +-15.0687 -3.27234 3.44459 +-15.8747 -3.34274 3.5187 +-14.8617 -3.03203 3.19163 +-14.9957 -2.96157 3.11746 +-15.4181 -2.94495 3.09997 +-12.9434 -2.3887 2.51444 +-3171.94 -564.993 594.734 +-12.0317 -2.06612 2.17488 +-12.738 -2.10628 2.21715 +-12.6668 -2.01414 2.12017 +-13.2776 -2.02738 2.1341 +-13.4984 -1.97614 2.08016 +-13.9149 -1.94986 2.05249 +-13.1538 -1.76102 1.85371 +-13.7656 -1.7572 1.8497 +-13.7873 -1.67439 1.76253 +-14.3998 -1.65967 1.74704 +-13.1363 -1.43299 1.50842 +-13.6484 -1.40489 1.47884 +-14.0618 -1.36114 1.43279 +-13.6819 -1.24061 1.30592 +-13.9949 -1.18352 1.24581 +-13.4132 -1.05257 1.10798 +-12.3321 -0.892719 0.939711 +-12.9402 -0.858172 0.903345 +-12.3528 -0.744349 0.783531 +-12.5612 -0.680885 0.716726 +-11.871 -0.57173 0.601825 +-10.9795 -0.462517 0.486863 +-11.2845 -0.407322 0.428763 +-11.2892 -0.339483 0.357353 +-10.7934 -0.259599 0.273264 +-11.0962 -0.200125 0.210659 +-10.9983 -0.132223 0.139183 +-10.5996 -0.06371 0.0670636 +10.2 1.77636e-15 -2.27374e-13 +10.1996 -0.0607211 0.0650835 +10.7984 -0.128581 0.137819 +11.0962 -0.198216 0.212457 +11.0932 -0.264264 0.28325 +11.4891 -0.342196 0.36678 +12.383 -0.44271 0.474516 +12.9758 -0.541397 0.580293 +12.7688 -0.609104 0.652864 +13.3587 -0.717207 0.768733 +14.4448 -0.862108 0.924045 +14.3337 -0.941527 1.00917 +14.4206 -1.03395 1.10823 +15.7978 -1.22787 1.31609 +18.1636 -1.5214 1.6307 +31.1314 -2.79592 2.99678 +33.075 -3.17102 3.39884 +38.2749 -3.9022 4.18255 +42.4706 -4.58879 4.91846 +49.3143 -5.62958 6.03403 +56.4295 -6.78769 7.27534 +90.7544 -11.4744 12.2988 +92.4693 -12.2616 13.1425 +94.1708 -13.07 14.009 +94.1956 -13.6585 14.6398 +94.9936 -14.3664 15.3985 +94.9036 -14.9466 16.0205 +94.8061 -15.527 16.6425 +94.7009 -16.1073 17.2645 +95.3625 -16.8241 18.0328 +95.0471 -17.3735 18.6217 +94.9176 -17.9569 19.247 +95.5494 -18.6906 20.0334 +95.3067 -19.2586 20.6422 +95.1523 -19.8452 21.271 +95.6578 -20.575 22.0532 +95.391 -21.1437 22.6627 +95.9704 -21.9055 23.4793 +95.6865 -22.476 24.0908 +96.1494 -23.227 24.8957 +96.6004 -23.9851 25.7083 +96.2899 -24.5593 26.3237 +95.9721 -25.1315 26.9371 +96.6704 -25.977 27.8432 +96.2417 -26.5259 28.4316 +96.7302 -27.3328 29.2965 +96.9292 -28.0675 30.084 +96.1079 -28.5074 30.5555 +95.3741 -28.9675 31.0486 +94.909 -29.5059 31.6257 +95.1623 -30.2715 32.4464 +94.5909 -30.7782 32.9894 +94.9127 -31.5793 33.8481 +95.1315 -32.3562 34.6808 +94.6249 -32.8903 35.2533 +95.1763 -33.7989 36.2271 +95.6232 -34.6845 37.1763 +94.2971 -34.9269 37.4361 +94.1091 -35.5861 38.1427 +92.4318 -35.6747 38.2377 +90.6729 -35.712 38.2776 +88.7478 -35.6618 38.2239 +88.1168 -36.1185 38.7134 +86.1167 -36.0001 38.5865 +84.2112 -35.8968 38.4758 +83.2427 -36.1769 38.7759 +81.5188 -36.1137 38.7082 +79.9697 -36.1082 38.7023 +78.0124 -35.8962 38.4751 +77.0558 -36.1274 38.7229 +75.1162 -35.8805 38.4582 +74.1659 -36.0885 38.6813 +72.5688 -35.9673 38.5513 +71.0609 -35.8704 38.4475 +69.3216 -35.6352 38.1954 +68.7837 -36.005 38.5918 +67.5325 -35.9932 38.579 +66.4434 -36.0541 38.6443 +64.5808 -35.6755 38.2385 +64.122 -36.0586 38.6492 +62.2794 -35.6496 38.2108 +61.745 -35.9747 38.5593 +60.6787 -35.9829 38.568 +59.4671 -35.8907 38.4692 +58.3369 -35.8326 38.4069 +57.8763 -36.1784 38.7776 +55.8754 -35.5446 38.0983 +55.4186 -35.8759 38.4533 +54.3102 -35.7779 38.3483 +53.2085 -35.6695 38.2322 +52.1845 -35.5991 38.1566 +51.7972 -35.957 38.5403 +50.7101 -35.8223 38.3959 +49.6304 -35.6775 38.2407 +49.1721 -35.9716 38.5559 +48.1696 -35.8606 38.437 +47.1068 -35.6897 38.2538 +46.1184 -35.56 38.1148 +45.6617 -35.8333 38.4076 +44.5521 -35.5849 38.1415 +43.8381 -35.6398 38.2003 +43.0625 -35.6362 38.1965 +42.4162 -35.7322 38.2993 +41.4595 -35.5562 38.1107 +40.6952 -35.5329 38.0857 +40.2391 -35.7738 38.344 +39.6596 -35.903 38.4824 +38.6635 -35.6442 38.205 +38.0885 -35.7627 38.332 +37.6296 -35.988 38.5736 +36.5368 -35.596 38.1533 +36.0234 -35.7559 38.3247 +35.5087 -35.9125 38.4925 +34.5513 -35.6105 38.1689 +34.0944 -35.8148 38.3879 +33.5275 -35.9013 38.4806 +33.067 -36.0996 38.6931 +32.0814 -35.7134 38.2792 +31.6233 -35.903 38.4824 +31.1121 -36.0312 38.6198 +30.3 -35.8014 38.3735 +29.8901 -36.0398 38.629 +28.9916 -35.6794 38.2428 +28.5341 -35.8507 38.4263 +28.1213 -36.0794 38.6715 +27.2432 -35.7008 38.2656 +26.8762 -35.9832 38.5684 +26.3703 -36.0808 38.6729 +25.557 -35.7459 38.314 +25.0988 -35.8966 38.4756 +24.2583 -35.4883 38.0379 +23.8863 -35.7555 38.3243 +23.3467 -35.7717 38.3416 +22.8882 -35.9093 38.4891 +22.1545 -35.6046 38.1626 +21.6982 -35.7352 38.3025 +21.2402 -35.8629 38.4395 +20.7806 -35.988 38.5736 +20.0328 -35.6008 38.1585 +19.5766 -35.7188 38.285 +19.0847 -35.7698 38.3396 +18.6264 -35.8821 38.46 +18.1667 -35.9916 38.5774 +17.3883 -35.4514 37.9984 +17.1813 -36.0726 38.6642 +16.6892 -36.1085 38.7027 +16.022 -35.7498 38.3182 +15.6208 -35.9747 38.5592 +14.912 -35.4761 38.0249 +14.511 -35.695 38.2594 +14.0539 -35.78 38.3506 +13.6207 -35.9284 38.5096 +12.967 -35.4786 38.0275 +12.536 -35.6208 38.1799 +12.1923 -36.0264 38.6146 +11.6877 -35.9644 38.5482 +10.9777 -35.2319 37.763 +10.8057 -36.2317 38.8347 +10.2083 -35.826 38.3998 +9.76782 -35.9524 38.5354 +9.29018 -35.942 38.5242 +8.84655 -36.0632 38.6541 +8.25974 -35.5755 38.1313 +7.93737 -36.2306 38.8335 +7.36226 -35.736 38.3034 +6.89178 -35.7108 38.2764 +6.4347 -35.7504 38.3189 +5.97713 -35.7874 38.3585 +5.50865 -35.7538 38.3225 +5.04149 -35.7173 38.2833 +4.59311 -35.814 38.387 +4.12695 -35.7719 38.3419 +3.66919 -35.7951 38.3668 +3.21115 -35.8156 38.3887 +2.711 -35.2883 37.8236 +2.26385 -35.3713 37.9125 +1.81128 -35.3834 37.9255 +1.35858 -35.3928 37.9356 +0.90578 -35.3996 37.9428 +0.455525 -35.6083 38.1665 +7.10543e-15 -35.5414 38.0948 +-0.454652 -35.5401 38.0934 +-0.902289 -35.2632 37.7966 +-1.37953 -35.9384 38.5203 +-1.84269 -35.997 38.5831 +-2.30747 -36.0529 38.643 +-2.72147 -35.4246 37.9696 +-3.21726 -35.8837 38.4617 +-3.66919 -35.7951 38.3668 +-4.12695 -35.7719 38.3419 +-4.65412 -36.2896 38.8968 +-5.09899 -36.1248 38.7201 +-5.56091 -36.093 38.6861 +-5.93185 -35.5163 38.0679 +-6.49564 -36.089 38.6818 +-6.83957 -35.4403 37.9864 +-7.41793 -36.0062 38.593 +-7.87824 -35.9606 38.5442 +-8.30667 -35.7777 38.3481 +-8.86306 -36.1305 38.7262 +-9.32491 -36.0764 38.6682 +-9.71315 -35.7512 38.3197 +-10.151 -35.6251 38.1845 +-10.6064 -35.5633 38.1182 +-11.0817 -35.5655 38.1207 +-11.5579 -35.5648 38.1199 +-11.9674 -35.3617 37.9022 +-12.6294 -35.8861 38.4642 +-13.0638 -35.7433 38.3113 +-13.5205 -35.6642 38.2265 +-14.2092 -36.1754 38.7743 +-14.4576 -35.5635 38.1185 +-15.1876 -36.1318 38.7277 +-15.6208 -35.9747 38.5592 +-16.1097 -35.9455 38.528 +-16.629 -35.9784 38.5632 +-17.1195 -35.9429 38.5251 +-17.5469 -35.7749 38.3451 +-18.1016 -35.8626 38.4391 +-18.8601 -36.3322 38.9424 +-19.3583 -36.2827 38.8894 +-19.7517 -36.0383 38.6274 +-20.1761 -35.8556 38.4316 +-21.0372 -36.4323 39.0498 +-21.4275 -36.1792 38.7784 +-21.966 -36.1763 38.7754 +-22.3889 -35.9814 38.5664 +-23.1673 -36.3472 38.9585 +-24.0381 -36.8311 39.4772 +-24.5084 -36.6866 39.3223 +-24.7232 -36.1683 38.7668 +-25.5724 -36.574 39.2016 +-26.0392 -36.4203 39.0369 +-26.9503 -36.8744 39.5236 +-26.8762 -35.9832 38.5684 +-27.7973 -36.427 39.044 +-28.3091 -36.3203 38.9296 +-29.059 -36.5101 39.1331 +-29.5734 -36.3954 39.0101 +-30.3825 -36.6335 39.2654 +-30.85 -36.4513 39.0701 +-31.7719 -36.7953 39.4388 +-31.8294 -36.1369 38.7331 +-32.8129 -36.5277 39.152 +-33.2789 -36.331 38.9411 +-34.4946 -36.937 39.5906 +-35.4015 -37.1879 39.8596 +-35.6551 -36.7482 39.3883 +-35.7324 -36.1387 38.735 +-37.2129 -36.9365 39.5902 +-37.6266 -36.6577 39.2914 +-38.5587 -36.8766 39.526 +-39.0289 -36.6457 39.2784 +-40.21 -37.07 39.7332 +-40.5623 -36.7202 39.3583 +-40.9696 -36.4233 39.0401 +-41.434 -36.178 38.7771 +-43.0158 -36.8909 39.5413 +-43.6119 -36.7395 39.379 +-44.5891 -36.8996 39.5506 +-45.0594 -36.6327 39.2645 +-46.0459 -36.7781 39.4203 +-46.5802 -36.554 39.1802 +-47.6424 -36.7352 39.3743 +-48.0436 -36.3995 39.0145 +-49.7234 -37.0174 39.6768 +-50.1951 -36.72 39.358 +-51.2824 -36.8651 39.5136 +-51.8215 -36.6075 39.2375 +-53.5495 -37.1734 39.8441 +-54.023 -36.8533 39.5009 +-55.2769 -37.0562 39.7184 +-56.3962 -37.1522 39.8213 +-57.5947 -37.2847 39.9633 +-58.0695 -36.9404 39.5943 +-59.7932 -37.3768 40.062 +-60.6406 -37.2476 39.9236 +-61.714 -37.2468 39.9227 +-62.7164 -37.1913 39.8632 +-64.4824 -37.5697 40.2688 +-65.65 -37.579 40.2788 +-66.7455 -37.5339 40.2305 +-68.0003 -37.5644 40.2632 +-69.8869 -37.9226 40.6471 +-70.921 -37.7991 40.5147 +-72.9885 -38.2061 40.9509 +-73.9536 -38.0164 40.7477 +-75.6429 -38.1834 40.9266 +-76.4521 -37.892 40.6143 +-78.3993 -38.1485 40.8892 +-79.6216 -38.0325 40.7648 +-81.5885 -38.2525 41.0007 +-82.0747 -37.7654 40.4786 +-84.973 -38.3673 41.1237 +-85.9637 -38.0829 40.8189 +-87.8814 -38.1928 40.9367 +-89.2995 -38.0658 40.8006 +-92.682 -38.7447 41.5282 +-93.4312 -38.2969 41.0483 +-96.6748 -38.8471 41.638 +-98.2073 -38.6794 41.4583 +-100.7 -38.8659 41.6582 +-102.68 -38.8272 41.6167 +-105.107 -38.9306 41.7275 +-106.925 -38.7838 41.5702 +-110.167 -39.1223 41.933 +-112.178 -38.9915 41.7927 +-114.104 -38.8092 41.5974 +-117.023 -38.9359 41.7332 +-121.217 -39.4418 42.2755 +-123.439 -39.2665 42.0876 +-97.6388 -30.3546 32.5353 +-97.2926 -29.5502 31.6732 +-98.1254 -29.1059 31.197 +-97.6656 -28.2807 30.3125 +-96.6378 -27.3067 29.2685 +-65.6446 -18.0928 19.3926 +-51.5451 -13.8511 14.8462 +-45.7454 -11.979 12.8396 +-39.7149 -10.1295 10.8573 +-37.8696 -9.40272 10.0782 +-34.7835 -8.40272 9.0064 +-15.8847 -3.73119 3.99926 +-15.5525 -3.54991 3.80495 +-15.8826 -3.52043 3.77335 +-15.0687 -3.24113 3.47398 +-16.0659 -3.35074 3.59147 +-16.1082 -3.25498 3.48883 +-14.4189 -2.8205 3.02314 +-13.9726 -2.64341 2.83332 +-13.2332 -2.41888 2.59266 +-3171.94 -559.603 599.807 +-12.4198 -2.11243 2.26419 +-11.2795 -1.84731 1.98003 +-13.2514 -2.087 2.23694 +-13.8634 -2.09663 2.24726 +-13.0094 -1.88638 2.0219 +-14.1109 -1.95846 2.09916 +-13.4483 -1.78327 1.91138 +-13.1756 -1.66585 1.78553 +-13.2949 -1.59919 1.71409 +-14.6957 -1.67762 1.79814 +-13.4326 -1.45134 1.55561 +-14.6374 -1.49232 1.59953 +-14.0618 -1.34816 1.44502 +-13.1862 -1.18426 1.26934 +-13.6971 -1.14729 1.22971 +-13.7113 -1.0657 1.14226 +-12.4315 -0.891339 0.955376 +-12.7411 -0.836915 0.897042 +-11.6555 -0.69563 0.745606 +-12.3618 -0.663685 0.711367 +-11.9708 -0.571035 0.612061 +-12.1772 -0.50808 0.544582 +-11.7838 -0.421288 0.451555 +-11.2892 -0.336244 0.360401 +-10.7934 -0.257123 0.275595 +-10.7963 -0.192859 0.206715 +-11.4982 -0.136915 0.146751 +-10.9996 -0.0654835 0.070188 +11.8 3.55271e-15 -1.7053e-13 +10.1996 -0.0601313 0.0656287 +10.7984 -0.127332 0.138973 +11.0962 -0.196291 0.214237 +13.192 -0.311208 0.33966 +11.4891 -0.338872 0.369853 +13.5814 -0.480837 0.524796 +12.9758 -0.536139 0.585154 +17.5571 -0.829381 0.905206 +13.3587 -0.710241 0.775174 +22.6136 -1.33654 1.45873 +14.3337 -0.932383 1.01762 +19.9899 -1.41935 1.54911 +15.7978 -1.21595 1.32711 +21.9353 -1.81947 1.98581 +31.1314 -2.76876 3.02189 +33.7681 -3.20603 3.49914 +38.2749 -3.8643 4.21759 +47.7053 -5.10432 5.57097 +49.3143 -5.57491 6.08458 +58.5961 -6.97987 7.61799 +90.7544 -11.363 12.4018 +93.4509 -12.2714 13.3933 +94.1708 -12.9431 14.1264 +95.1738 -13.6663 14.9157 +94.9936 -14.2268 15.5275 +95.0985 -14.8319 16.1878 +94.8061 -15.3762 16.7819 +94.7979 -15.9672 17.427 +95.3625 -16.6607 18.1839 +95.3369 -17.2572 18.8349 +94.9176 -17.7825 19.4083 +95.7417 -18.5463 20.2418 +95.3067 -19.0716 20.8151 +95.248 -19.6722 21.4707 +95.6578 -20.3752 22.2379 +95.5812 -20.9801 22.8981 +95.9704 -21.6928 23.676 +95.781 -22.2798 24.3166 +96.1494 -23.0014 25.1042 +95.9426 -23.5905 25.7472 +96.2899 -24.3207 26.5442 +96.0654 -24.9117 27.1892 +96.6704 -25.7247 28.0765 +96.4271 -26.3189 28.725 +96.7302 -27.0673 29.5419 +96.653 -27.7157 30.2496 +96.1079 -28.2306 30.8115 +96.7445 -29.0983 31.7586 +94.909 -29.2193 31.8906 +95.7061 -30.1489 32.9052 +94.5909 -30.4793 33.2658 +95.1823 -31.3615 34.2286 +95.1315 -32.042 34.9713 +95.5159 -32.8776 35.8834 +95.1763 -33.4706 36.5306 +94.652 -33.9988 37.107 +94.2971 -34.5876 37.7497 +94.7213 -35.4698 38.7125 +92.4318 -35.3282 38.5581 +94.2236 -36.75 40.1098 +88.7478 -35.3155 38.5441 +93.2598 -37.8553 41.3161 +86.1167 -35.6505 38.9098 +89.8083 -37.9109 41.3769 +83.2427 -35.8255 39.1008 +86.2992 -37.8602 41.3215 +79.9697 -35.7575 39.0266 +83.0696 -37.8519 41.3124 +77.0558 -35.7765 39.0473 +80.6046 -38.1281 41.6139 +74.1659 -35.738 39.0053 +77.6656 -38.1196 41.6046 +71.0609 -35.5221 38.7696 +74.5127 -37.9318 41.3996 +68.7837 -35.6553 38.9151 +71.8666 -37.9311 41.3989 +66.4434 -35.7039 38.9681 +69.0106 -37.7523 41.2038 +64.122 -35.7084 38.9729 +66.5693 -37.7351 41.185 +61.745 -35.6254 38.8823 +64.1503 -37.6721 41.1162 +59.4671 -35.5421 38.7915 +61.8296 -37.6091 41.0475 +57.8763 -35.8271 39.1025 +60.1904 -37.9177 41.3843 +55.4186 -35.5275 38.7755 +58.5543 -38.1992 41.6915 +53.2085 -35.3231 38.5525 +55.72 -37.6417 41.0831 +51.7972 -35.6078 38.8632 +54.1139 -37.8556 41.3165 +49.6304 -35.331 38.5611 +51.6955 -37.4503 40.8741 +48.1696 -35.5123 38.759 +50.1179 -37.6022 41.0399 +46.1184 -35.2147 38.4341 +48.0235 -37.3206 40.7326 +44.5521 -35.2393 38.461 +46.5378 -37.4672 40.8925 +43.0625 -35.2901 38.5165 +44.9335 -37.4851 40.9122 +41.4595 -35.2109 38.43 +43.5888 -37.6898 41.1356 +40.2391 -35.4264 38.6652 +41.7058 -37.3887 40.8069 +38.6635 -35.298 38.5251 +40.3221 -37.4922 40.9198 +37.6296 -35.6385 38.8967 +38.7164 -37.3531 40.7681 +36.0234 -35.4086 38.6458 +37.6337 -37.6919 41.1378 +34.5513 -35.2647 38.4887 +36.1096 -37.5633 40.9975 +33.5275 -35.5527 38.803 +35.0807 -37.926 41.3933 +32.0814 -35.3665 38.5999 +33.5805 -37.7548 41.2064 +31.1121 -35.6812 38.9433 +32.25 -37.7354 41.1853 +29.8901 -35.6898 38.9527 +30.7854 -37.5191 40.9492 +28.5341 -35.5025 38.7482 +29.8584 -37.9359 41.4042 +27.2432 -35.354 38.5862 +28.5106 -37.8006 41.2565 +26.3703 -35.7303 38.9969 +27.0913 -37.5239 40.9544 +25.0988 -35.548 38.7979 +26.1601 -37.8988 41.3636 +23.8863 -35.4082 38.6454 +24.8923 -37.7694 41.2224 +22.8882 -35.5605 38.8116 +23.9127 -38.0571 41.5364 +21.6982 -35.3881 38.6234 +22.6637 -37.8948 41.3593 +20.7806 -35.6385 38.8967 +21.3587 -37.5886 41.0251 +19.5766 -35.3719 38.6057 +20.316 -37.7077 41.1551 +18.6264 -35.5336 38.7822 +19.3713 -38.0055 41.48 +17.3883 -35.1071 38.3167 +18.1084 -37.6498 41.0918 +16.6892 -35.7578 39.0269 +17.3084 -38.2451 41.7416 +15.6208 -35.6253 38.8823 +15.9318 -37.5343 40.9658 +14.511 -35.3483 38.58 +14.9597 -37.7164 41.1645 +13.6207 -35.5794 38.8322 +13.8379 -37.4937 40.9215 +12.536 -35.2748 38.4997 +12.8222 -37.5195 40.9497 +11.6877 -35.6151 38.8711 +11.9341 -37.9293 41.3969 +10.8057 -35.8798 39.1601 +10.8952 -37.8653 41.327 +9.76782 -35.6033 38.8582 +9.81112 -37.5888 41.0253 +8.84655 -35.713 38.978 +8.83855 -37.6988 41.1453 +7.93737 -35.8787 39.1588 +7.77978 -37.3958 40.8147 +6.89178 -35.364 38.5971 +6.88562 -37.8842 41.3477 +5.97713 -35.4398 38.6799 +5.92676 -38.094 41.5766 +5.04149 -35.3704 38.6041 +4.84586 -37.4177 40.8386 +4.12695 -35.4245 38.6631 +3.92729 -37.9409 41.4096 +3.21115 -35.4677 38.7103 +2.90988 -37.5092 40.9384 +2.26385 -35.0278 38.2301 +1.94041 -37.5378 40.9696 +1.35858 -35.0491 38.2534 +0.958137 -37.0821 40.4723 +0.455525 -35.2624 38.4862 +7.99361e-15 -37.2229 40.6259 +-0.454652 -35.1949 38.4125 +-0.986061 -38.1629 41.6518 +-1.37953 -35.5893 38.843 +-1.9439 -37.6053 41.0433 +-2.30747 -35.7027 38.9668 +-2.92035 -37.6441 41.0856 +-3.21726 -35.5352 38.7839 +-3.92729 -37.9409 41.4096 +-4.12695 -35.4245 38.6631 +-4.88944 -37.7542 41.2058 +-5.09899 -35.7739 39.0445 +-5.85359 -37.6236 41.0633 +-5.93185 -35.1714 38.3869 +-6.86124 -37.75 41.2013 +-6.83957 -35.0961 38.3046 +-7.84936 -37.7303 41.1797 +-7.87824 -35.6114 38.8671 +-8.85419 -37.7655 41.2181 +-8.86306 -35.7796 39.0507 +-9.91531 -37.988 41.4609 +-9.71315 -35.404 38.6407 +-10.8761 -37.7989 41.2546 +-10.6064 -35.2179 38.4376 +-11.6846 -37.1364 40.5315 +-11.5579 -35.2193 38.4392 +-12.6198 -36.9271 40.3031 +-12.6294 -35.5375 38.7865 +-13.7412 -37.2315 40.6354 +-13.5205 -35.3178 38.5467 +-14.9597 -37.7164 41.1645 +-14.4576 -35.2181 38.4379 +-16.1799 -38.1187 41.6037 +-15.6208 -35.6253 38.8823 +-17.2207 -38.0514 41.5302 +-16.629 -35.6289 38.8862 +-18.232 -37.9068 41.3723 +-17.5469 -35.4275 38.6664 +-19.5666 -38.3887 41.8983 +-18.8601 -35.9793 39.2687 +-20.3844 -37.8347 41.2937 +-19.7517 -35.6882 38.951 +-21.8963 -38.5347 42.0576 +-21.0372 -36.0785 39.3769 +-22.7761 -38.0827 41.5644 +-21.966 -35.825 39.1002 +-24.1081 -38.368 41.8757 +-23.1673 -35.9942 39.2849 +-25.1363 -38.1397 41.6265 +-24.5084 -36.3303 39.6517 +-26.6672 -38.6334 42.1654 +-25.5724 -36.2188 39.53 +-27.5735 -38.1917 41.6833 +-26.9503 -36.5163 39.8547 +-29.01 -38.4627 41.9791 +-27.7973 -36.0732 39.3711 +-30.3748 -38.592 42.1202 +-29.059 -36.1555 39.461 +-31.8035 -38.7598 42.3034 +-30.3825 -36.2777 39.5944 +-32.8 -38.379 41.8877 +-31.7719 -36.4379 39.7692 +-34.5591 -38.855 42.4072 +-32.8129 -36.173 39.48 +-35.4516 -38.327 41.831 +-34.4946 -36.5782 39.9223 +-36.8721 -38.3565 41.8631 +-35.6551 -36.3913 39.7183 +-38.808 -38.868 42.4214 +-37.2129 -36.5778 39.9219 +-40.2651 -38.8473 42.3988 +-38.5587 -36.5185 39.8571 +-41.7328 -38.8038 42.3514 +-40.21 -36.7099 40.0661 +-43.3909 -38.8993 42.4556 +-40.9696 -36.0695 39.3671 +-44.8817 -38.8077 42.3557 +-43.0158 -36.5326 39.8725 +-46.4438 -38.7452 42.2874 +-44.5891 -36.5412 39.8819 +-48.1448 -38.7609 42.3046 +-46.0459 -36.4209 39.7506 +-49.5981 -38.5443 42.0681 +-47.6424 -36.3784 39.7042 +-51.9914 -39.008 42.5742 +-49.7234 -36.6579 40.0092 +-54.1507 -39.2289 42.8154 +-51.2824 -36.5071 39.8447 +-55.8505 -39.0705 42.6424 +-53.5495 -36.8124 40.1779 +-58.1242 -39.2659 42.8557 +-55.2769 -36.6963 40.0512 +-59.7052 -38.95 42.5109 +-57.5947 -36.9225 40.2981 +-61.6531 -38.8392 42.3899 +-59.7932 -37.0137 40.3977 +-64.9509 -39.5076 43.1195 +-61.714 -36.8851 40.2572 +-67.0937 -39.4006 43.0027 +-64.4824 -37.2048 40.6062 +-70.5527 -39.9931 43.6494 +-66.7455 -37.1694 40.5675 +-73.4403 -40.1756 43.8486 +-69.8869 -37.5543 40.9877 +-75.8854 -40.0522 43.7139 +-72.9885 -37.835 41.294 +-79.5441 -40.4931 44.1951 +-75.6429 -37.8125 41.2695 +-81.8725 -40.1844 43.8582 +-78.3993 -37.778 41.2318 +-84.2907 -39.8717 43.5169 +-81.5885 -37.881 41.3442 +-88.3754 -40.2696 43.9512 +-84.973 -37.9946 41.4682 +-92.4215 -40.5461 44.2529 +-87.8814 -37.8218 41.2796 +-95.999 -40.5242 44.2291 +-92.682 -38.3684 41.8761 +-100.46 -40.778 44.506 +-96.6748 -38.4698 41.9869 +-104.962 -40.9384 44.6811 +-100.7 -38.4885 42.0072 +-109.24 -40.9065 44.6463 +-105.107 -38.5525 42.0771 +-114.077 -40.9761 44.7222 +-110.167 -38.7423 42.2843 +-119.662 -41.189 44.9546 +-114.104 -38.4323 41.9459 +-123.764 -40.7788 44.5069 +-121.217 -39.0588 42.6297 +-98.6063 -31.0625 33.9023 +-97.6388 -30.0598 32.8079 +-98.0234 -29.483 32.1784 +-98.1254 -28.8232 31.4583 +-96.9292 -27.7949 30.336 +-96.6378 -27.0415 29.5137 +-83.0757 -22.6748 24.7478 +-51.5451 -13.7165 14.9705 +-47.2392 -12.25 13.37 +-39.7149 -10.0311 10.9482 +-38.8093 -9.54244 10.4148 +-34.7835 -8.32111 9.08185 +-16.7357 -3.89291 4.24881 +-15.5525 -3.51544 3.83683 +-15.6924 -3.44449 3.7594 +-15.0687 -3.20965 3.50308 +-15.8747 -3.2787 3.57845 +-16.1082 -3.22337 3.51806 +-15.3802 -2.97932 3.2517 +-13.9726 -2.61774 2.85706 +-14.8753 -2.69262 2.93879 +-3171.94 -554.169 604.832 +-13.6812 -2.30437 2.51505 +-11.2795 -1.82937 1.99662 +-3192.33 -497.886 543.405 +-13.8634 -2.07627 2.26609 +-12.8137 -1.83996 2.00817 +-14.1109 -1.93944 2.11675 +-13.4483 -1.76595 1.92739 +-13.1756 -1.64967 1.80049 +-13.1964 -1.57193 1.71565 +-14.6957 -1.66132 1.81321 +-14.7166 -1.57462 1.71858 +-14.6374 -1.47782 1.61293 +-14.5569 -1.38207 1.50842 +-13.1862 -1.17276 1.27997 +-14.4912 -1.202 1.31189 +-13.7113 -1.05535 1.15183 +-13.6249 -0.967417 1.05586 +-12.7411 -0.828787 0.904557 +-13.6479 -0.806629 0.880373 +-12.3618 -0.657239 0.717326 +-13.1678 -0.622038 0.678906 +-12.1772 -0.503145 0.549145 +-11.2845 -0.399519 0.436044 +-11.2892 -0.332979 0.363421 +-11.1932 -0.264056 0.288196 +-10.7963 -0.190986 0.208446 +-11.5982 -0.136764 0.149267 +-10.9996 -0.0648475 0.070776 +10.5 -3.55271e-15 -1.7053e-13 +11.2996 -0.0659573 0.0733045 +11.5982 -0.135412 0.150495 +12.5957 -0.220614 0.245188 +11.7928 -0.275451 0.306134 +13.0875 -0.382202 0.424777 +17.2763 -0.605604 0.673064 +27.1493 -1.11067 1.23439 +31.124 -1.45573 1.61789 +29.11 -1.53239 1.70309 +31.679 -1.85381 2.06031 +23.2923 -1.50014 1.66724 +21.3822 -1.50319 1.67064 +19.7721 -1.50679 1.67464 +21.9353 -1.80148 2.00215 +24.9844 -2.20009 2.44516 +34.8574 -3.27673 3.64173 +41.4398 -4.14246 4.6039 +48.1004 -5.0957 5.66332 +54.2457 -6.07176 6.74811 +59.5809 -7.02696 7.80971 +76.4972 -9.48319 10.5395 +94.4325 -12.2777 13.6453 +95.2487 -12.9618 14.4056 +95.0759 -13.5172 15.0229 +95.0912 -14.1006 15.6713 +95.0985 -14.6852 16.321 +95.0005 -15.2553 16.9547 +94.7979 -15.8093 17.5703 +95.5562 -16.5295 18.3707 +95.5301 -17.1212 19.0284 +95.1103 -17.6424 19.6076 +95.7417 -18.3629 20.4083 +95.4984 -18.921 21.0286 +95.248 -19.4777 21.6473 +95.8486 -20.2139 22.4656 +95.5812 -20.7726 23.0865 +96.16 -21.5207 23.918 +95.781 -22.0594 24.5167 +96.1494 -22.7739 25.3108 +95.9426 -23.3572 25.959 +96.4772 -24.1271 26.8147 +96.1588 -24.6893 27.4395 +96.8565 -25.5193 28.362 +96.5198 -26.0836 28.9892 +96.1759 -26.646 29.6142 +96.653 -27.4416 30.4984 +96.383 -28.0314 31.1539 +96.8358 -28.8378 32.0501 +97.2749 -29.6515 32.9545 +96.3405 -30.0486 33.3958 +94.952 -30.293 33.6675 +95.4519 -31.1393 34.608 +94.5051 -31.5162 35.0269 +95.0704 -32.4007 36.0098 +95.0876 -33.1088 36.7969 +94.5637 -33.6311 37.3774 +94.9122 -34.469 38.3086 +95.3335 -35.346 39.2832 +95.1299 -35.9999 40.01 +95.003 -36.6876 40.7743 +93.6591 -36.9012 41.0117 +93.8598 -37.7221 41.9241 +91.3178 -37.4298 41.5992 +90.4019 -37.7841 41.993 +88.1344 -37.5556 41.7391 +86.9701 -37.7772 41.9853 +85.0564 -37.6558 41.8504 +83.8986 -37.8516 42.068 +82.2478 -37.8095 42.0212 +81.0141 -37.9429 42.1694 +79.6205 -37.987 42.2185 +78.6365 -38.2144 42.4712 +76.6879 -37.9558 42.1838 +75.2315 -37.919 42.1429 +74.0199 -37.9901 42.222 +73.0486 -38.1737 42.4259 +70.2 -37.3495 41.51 +69.6323 -37.7157 41.9169 +68.1345 -37.5676 41.7524 +67.1821 -37.7059 41.9061 +66.0793 -37.7491 41.954 +64.1503 -37.2996 41.4545 +63.7361 -37.717 41.9184 +62.4985 -37.64 41.8328 +61.2677 -37.5514 41.7344 +60.8486 -37.9533 42.181 +59.118 -37.5243 41.7042 +58.5543 -37.8215 42.0345 +57.488 -37.7867 41.9959 +56.2857 -37.6479 41.8416 +55.2317 -37.5933 41.7809 +54.0444 -37.4331 41.6029 +52.728 -37.165 41.3049 +52.3093 -37.5202 41.6997 +51.2097 -37.3803 41.5441 +50.1848 -37.2801 41.4329 +49.1001 -37.1207 41.2557 +48.6796 -37.4565 41.6288 +47.5396 -37.2305 41.3777 +47.1806 -37.6091 41.7985 +46.0521 -37.3669 41.5293 +45.6257 -37.6863 41.8842 +44.074 -37.0613 41.1896 +43.712 -37.4225 41.5911 +42.9786 -37.4639 41.6371 +42.2474 -37.4997 41.6769 +41.3997 -37.4223 41.5908 +40.9099 -37.6625 41.8579 +40.2427 -37.7365 41.9401 +39.29 -37.5316 41.7124 +38.1758 -37.1532 41.2918 +38.137 -37.8182 42.0309 +37.0902 -37.4816 41.6568 +36.7087 -37.8089 42.0205 +35.623 -37.4012 41.5674 +35.0807 -37.551 41.7339 +34.5894 -37.7543 41.9598 +34.044 -37.8974 42.1189 +33.1423 -37.6336 41.8257 +32.3 -37.4201 41.5885 +31.7613 -37.549 41.7317 +31.3187 -37.7915 42.0012 +30.2519 -37.2675 41.4188 +29.8584 -37.5608 41.7448 +29.4134 -37.793 42.0028 +28.9646 -38.0228 42.2582 +27.9766 -37.532 41.7127 +27.5735 -37.814 42.0262 +26.6917 -37.4302 41.5997 +26.0755 -37.4027 41.5691 +25.6695 -37.6752 41.872 +24.8923 -37.3959 41.5615 +24.4433 -37.6011 41.7896 +23.6002 -37.1882 41.3307 +23.1141 -37.3245 41.4822 +22.6262 -37.4581 41.6306 +22.1367 -37.5887 41.7758 +21.6813 -37.7789 41.9872 +21.1525 -37.8414 42.0566 +20.3844 -37.4606 41.6334 +19.8949 -37.5781 41.764 +19.3387 -37.5663 41.751 +18.8796 -37.7413 41.9453 +18.3865 -37.85 42.0662 +17.5913 -37.3179 41.4749 +17.63 -38.5706 42.8671 +16.8705 -38.0948 42.3383 +16.1523 -37.6774 41.8744 +15.4731 -37.3191 41.4762 +15.0115 -37.4726 41.6468 +14.522 -37.5589 41.7426 +14.0557 -37.7071 41.9074 +13.3764 -37.2674 41.4187 +13.0472 -37.8002 42.0109 +12.4886 -37.6791 41.8762 +11.8925 -37.4233 41.592 +11.364 -37.3603 41.5219 +10.9143 -37.5565 41.74 +10.4421 -37.6845 41.8823 +9.81112 -37.2171 41.3628 +9.44072 -37.7347 41.9381 +8.97934 -37.9205 42.1446 +8.35123 -37.3761 41.5395 +7.89111 -37.5559 41.7394 +7.37473 -37.4679 41.6415 +6.8978 -37.5759 41.7616 +6.41862 -37.6812 41.8786 +5.92676 -37.7172 41.9187 +5.42487 -37.6838 41.8815 +4.9243 -37.6474 41.8411 +4.43294 -37.6747 41.8714 +3.92729 -37.5657 41.7503 +3.38819 -37.0531 41.1806 +2.95175 -37.6726 41.8691 +2.42524 -37.1539 41.2925 +1.94041 -37.1666 41.3066 +1.45544 -37.1765 41.3176 +0.973844 -37.3173 41.4742 +0.486068 -37.2547 41.4046 +8.88178e-15 -37.323 41.4805 +-0.486068 -37.2547 41.4046 +-0.986061 -37.7855 41.9945 +-1.45544 -37.1765 41.3176 +-1.97531 -37.835 42.0496 +-2.46886 -37.8221 42.0351 +-2.96222 -37.8062 42.0175 +-3.44314 -37.654 41.8483 +-3.93427 -37.6324 41.8244 +-4.34663 -36.9412 41.0562 +-4.89815 -37.4475 41.6189 +-5.45362 -37.8835 42.1035 +-5.94767 -37.8503 42.0665 +-6.4639 -37.9471 42.1741 +-6.87343 -37.4431 41.614 +-7.37473 -37.4679 41.6415 +-7.86328 -37.4234 41.5921 +-8.39557 -37.5746 41.7601 +-8.99498 -37.9866 42.218 +-9.3747 -37.4708 41.6448 +-9.88058 -37.4806 41.6557 +-10.3692 -37.4215 41.5899 +-10.6853 -36.7686 40.8643 +-11.344 -37.2947 41.4491 +-11.851 -37.2925 41.4466 +-12.3587 -37.2872 41.4407 +-12.8447 -37.2136 41.359 +-13.4931 -37.5926 41.7801 +-14.1766 -38.0315 42.268 +-14.472 -37.4293 41.5986 +-15.1927 -37.9249 42.1494 +-15.6869 -37.8348 42.0493 +-16.2075 -37.8061 42.0174 +-16.7285 -37.7742 41.9819 +-17.2207 -37.6751 41.8718 +-17.7416 -37.6369 41.8294 +-18.5101 -38.1045 42.349 +-19.0065 -37.995 42.2273 +-19.5341 -37.9458 42.1727 +-20.1286 -38.0195 42.2546 +-20.829 -38.2777 42.5415 +-21.3627 -38.2173 42.4744 +-21.8604 -38.0911 42.3342 +-22.3566 -37.9621 42.1908 +-23.1507 -38.3263 42.5956 +-23.6116 -38.1279 42.3751 +-24.2253 -38.1733 42.4256 +-24.6028 -37.8465 42.0623 +-25.5837 -38.4347 42.716 +-25.6695 -37.6752 41.872 +-26.5827 -38.1302 42.3776 +-27.0361 -37.9132 42.1365 +-28.1434 -38.5956 42.8949 +-28.4674 -38.1904 42.4445 +-28.9646 -38.0228 42.2582 +-30.0137 -38.5642 42.86 +-30.3279 -38.1513 42.4011 +-31.3016 -38.5607 42.8561 +-31.8035 -38.3765 42.6514 +-32.303 -38.1894 42.4434 +-33.2 -38.4628 42.7473 +-33.6498 -38.2099 42.4662 +-34.5591 -38.4707 42.7561 +-35.1119 -38.3246 42.5936 +-35.4516 -37.948 42.1751 +-36.3752 -38.1909 42.4451 +-37.2533 -38.3699 42.644 +-38.2492 -38.6529 42.9586 +-39.2553 -38.9272 43.2634 +-39.252 -38.2005 42.4558 +-40.3224 -38.5179 42.8085 +-41.1718 -38.6078 42.9084 +-41.7915 -38.4742 42.7599 +-42.7678 -38.6589 42.9653 +-43.2705 -38.4079 42.6862 +-44.3787 -38.6845 42.9937 +-44.8817 -38.424 42.7041 +-45.4436 -38.2129 42.4695 +-47.0102 -38.8298 43.1552 +-47.5787 -38.6056 42.9059 +-48.0162 -38.2751 42.5387 +-49.0983 -38.4512 42.7344 +-50.2541 -38.668 42.9753 +-50.7567 -38.3731 42.6476 +-51.9914 -38.6222 42.9245 +-53.1014 -38.7611 43.0788 +-54.2189 -38.8899 43.222 +-54.7242 -38.572 42.8686 +-56.5452 -39.1653 43.528 +-57.054 -38.8337 43.1595 +-58.1242 -38.8776 43.2083 +-59.1998 -38.9119 43.2464 +-60.4965 -39.076 43.4288 +-61.1491 -38.8135 43.137 +-62.3845 -38.9112 43.2457 +-63.7745 -39.0879 43.442 +-65.3967 -39.3855 43.7727 +-66.8069 -39.5341 43.9379 +-68.9805 -40.1081 44.5758 +-69.349 -39.617 44.0301 +-70.5527 -39.5976 44.0085 +-71.5296 -39.4397 43.8329 +-73.4403 -39.7783 44.2093 +-74.8956 -39.8478 44.2865 +-76.5946 -40.0268 44.4855 +-77.59 -39.8225 44.2584 +-79.3045 -39.9719 44.4244 +-80.5465 -39.8655 44.3062 +-82.8433 -40.2588 44.7433 +-83.7725 -39.9679 44.4201 +-85.8471 -40.2064 44.6851 +-86.6981 -39.8553 44.2949 +-89.0386 -40.1706 44.6453 +-89.9763 -39.834 44.2712 +-93.1763 -40.473 44.9814 +-95.1346 -40.5385 45.0542 +-96.6775 -40.407 44.9081 +-98.821 -40.5052 45.0172 +-101.231 -40.6848 45.2167 +-102.534 -40.3979 44.8979 +-105.828 -40.868 45.4204 +-106.793 -40.4135 44.9152 +-110.464 -40.956 45.5182 +-112.928 -41.0118 45.5802 +-115.313 -41.0105 45.5788 +-116.731 -40.6447 45.1722 +-120.464 -41.055 45.6282 +-123.859 -41.3053 45.9064 +-100.216 -32.6934 36.3351 +-98.2013 -31.3297 34.8195 +-98.5157 -30.727 34.1498 +-98.2758 -29.9567 33.2936 +-98.7543 -29.4091 32.685 +-98.3088 -28.5915 31.7764 +-97.0212 -27.5462 30.6146 +-94.6053 -26.2109 29.1306 +-93.0893 -25.1566 27.9588 +-66.5249 -17.5276 19.4801 +-48.5462 -12.4645 13.8529 +-40.9326 -10.2365 11.3767 +-38.5274 -9.37945 10.4242 +-33.7466 -7.99321 8.88359 +-17.7757 -4.09395 4.54998 +-17.2595 -3.86269 4.29297 +-16.8337 -3.65846 4.06598 +-16.8808 -3.56006 3.95662 +-16.5441 -3.38317 3.76003 +-16.3958 -3.24848 3.61034 +-15.9569 -3.06047 3.40139 +-16.0926 -2.98509 3.31761 +-14.6821 -2.63137 2.92449 +-14.4254 -2.49533 2.77329 +-12.2257 -2.03887 2.26598 +-13.5159 -2.17041 2.41218 +-3192.33 -492.963 547.875 +-13.4729 -1.99783 2.22037 +-11.8356 -1.6827 1.87014 +-12.837 -1.7469 1.9415 +-13.4483 -1.74848 1.94325 +-13.5689 -1.68211 1.86949 +-14.4767 -1.70738 1.89757 +-14.3998 -1.61178 1.79132 +-14.3215 -1.5172 1.68621 +-13.9451 -1.394 1.54928 +-15.0521 -1.41495 1.57256 +-14.4751 -1.27465 1.41664 +-13.8956 -1.14121 1.26833 +-13.91 -1.06005 1.17814 +-14.52 -1.02078 1.13448 +-13.7365 -0.884696 0.983244 +-14.6441 -0.856951 0.952409 +-13.6578 -0.718963 0.79905 +-12.9683 -0.606555 0.674121 +-11.2789 -0.461419 0.512818 +-12.383 -0.434075 0.482427 +-11.589 -0.338439 0.376138 +-11.7928 -0.275451 0.306134 +-10.4964 -0.183845 0.204323 +-10.4984 -0.122571 0.136224 +-10.4996 -0.0612877 0.0681147 +11.1 0 -1.7053e-13 +11.5996 -0.0670267 0.0758586 +11.6982 -0.135204 0.153019 +11.4961 -0.199326 0.225591 +13.092 -0.302717 0.342605 +14.1865 -0.410124 0.464164 +28.5608 -0.991092 1.12168 +33.0383 -1.33799 1.51429 +33.5182 -1.55193 1.75642 +32.7986 -1.70917 1.93438 +34.1695 -1.97942 2.24024 +29.5633 -1.88485 2.13321 +24.863 -1.7303 1.9583 +19.0766 -1.43915 1.62878 +20.5457 -1.67037 1.89047 +27.5622 -2.40265 2.71924 +34.0652 -3.17001 3.58771 +41.0442 -4.0616 4.59679 +48.3967 -5.07547 5.74424 +55.4293 -6.14176 6.95104 +61.3535 -7.16319 8.10705 +83.5767 -10.2565 11.6079 +94.2362 -12.1288 13.727 +95.1507 -12.818 14.507 +95.0759 -13.3811 15.1443 +95.1889 -13.973 15.8142 +95.0011 -14.5224 16.436 +95.0005 -15.1017 17.0916 +94.7979 -15.6501 17.7123 +94.7817 -16.2304 18.369 +95.3369 -16.9145 19.1433 +95.1103 -17.4648 19.766 +95.6455 -18.1597 20.5525 +95.4984 -18.7304 21.1985 +96.1086 -19.4558 22.0194 +95.8486 -20.0104 22.647 +96.342 -20.7271 23.4582 +96.16 -21.304 24.1112 +95.6865 -21.8157 24.6903 +96.2437 -22.5667 25.5403 +96.7883 -23.3258 26.3994 +96.7582 -23.9537 27.11 +97.0924 -24.678 27.9297 +96.8565 -25.2624 28.5911 +96.3344 -25.7714 29.1672 +96.0835 -26.3524 29.8248 +95.7325 -26.9066 30.4519 +96.2913 -27.7228 31.3757 +95.9223 -28.2781 32.0041 +96.9109 -29.2431 33.0964 +96.8843 -29.9139 33.8556 +95.4935 -30.159 34.133 +95.2722 -30.7677 34.8218 +95.579 -31.5534 35.711 +95.4268 -32.1947 36.4368 +95.265 -32.8365 37.1633 +94.4754 -33.2614 37.6442 +95.0001 -34.1536 38.6539 +94.4589 -34.6691 39.2373 +95.478 -35.7679 40.4809 +95.2628 -36.4175 41.2161 +94.3484 -36.7986 41.6474 +94.717 -37.6833 42.6487 +92.4262 -37.5026 42.4442 +91.0804 -37.6844 42.6499 +88.8935 -37.4977 42.4386 +87.6411 -37.6854 42.651 +85.5567 -37.4959 42.4366 +84.3131 -37.6556 42.6174 +82.9071 -37.7289 42.7002 +82.079 -38.0546 43.0689 +80.3532 -37.9506 42.9512 +79.1219 -38.0632 43.0786 +77.4114 -37.9281 42.9257 +76.1898 -38.0154 43.0245 +74.0199 -37.6076 42.563 +73.0486 -37.7893 42.7687 +70.2 -36.9734 41.8453 +70.3317 -37.711 42.68 +68.8289 -37.5684 42.5187 +68.3312 -37.9647 42.9672 +66.0032 -37.326 42.2443 +65.5088 -37.7059 42.6743 +63.6612 -37.2933 42.2073 +63.1673 -37.6597 42.622 +62.005 -37.6207 42.5778 +61.5068 -37.9776 42.9817 +59.6983 -37.5111 42.4538 +59.2017 -37.8546 42.8426 +58.0586 -37.7775 42.7553 +56.9928 -37.737 42.7095 +55.2317 -37.2148 42.1184 +55.2948 -37.9135 42.9092 +53.554 -37.3671 42.2908 +53.0595 -37.6751 42.6394 +51.8178 -37.4433 42.377 +51.2554 -37.692 42.6586 +49.6965 -37.1933 42.0941 +49.2044 -37.479 42.4175 +48.0592 -37.2584 42.1678 +47.6306 -37.5854 42.5379 +46.6245 -37.4505 42.3852 +45.5628 -37.2554 42.1644 +45.0078 -37.4654 42.4021 +44.1429 -37.411 42.3405 +43.4656 -37.507 42.4491 +42.9696 -37.7567 42.7318 +41.7566 -37.3649 42.2883 +41.2625 -37.6047 42.5597 +40.3008 -37.4104 42.3399 +39.7488 -37.5876 42.5404 +39.252 -37.8159 42.7987 +38.6961 -37.9864 42.9917 +37.2006 -37.2146 42.1183 +37.0899 -37.8169 42.7999 +36.1065 -37.5272 42.472 +35.5576 -37.6782 42.6429 +34.5372 -37.3177 42.2349 +34.044 -37.5158 42.4592 +33.599 -37.7682 42.7448 +32.65 -37.4448 42.3788 +32.2537 -37.7473 42.7211 +31.2702 -37.3531 42.275 +30.7767 -37.5323 42.4778 +30.3279 -37.7672 42.7436 +29.3672 -37.3537 42.2756 +28.8738 -37.5219 42.4661 +27.932 -37.0948 41.9826 +27.4859 -37.3143 42.2311 +27.0361 -37.5315 42.4769 +26.4982 -37.6262 42.5841 +25.711 -37.3561 42.2784 +25.2583 -37.5638 42.5134 +24.7623 -37.7083 42.6769 +23.9127 -37.3014 42.2164 +23.4202 -37.4381 42.3712 +22.851 -37.4492 42.3838 +22.1367 -37.2102 42.1133 +22.0038 -37.9548 42.956 +21.1525 -37.4604 42.3964 +20.658 -37.5811 42.5331 +19.8615 -37.1374 42.0308 +19.6643 -37.8141 42.7968 +18.9114 -37.424 42.3552 +18.3865 -37.4689 42.406 +17.6514 -37.0685 41.9529 +17.6885 -38.3088 43.3566 +17.0977 -38.2191 43.2551 +16.3453 -37.7436 42.717 +15.7403 -37.5814 42.5334 +15.4256 -38.1187 43.1414 +14.7223 -37.6935 42.6602 +14.2492 -37.8414 42.8276 +13.5398 -37.3428 42.2634 +13.2271 -37.9358 42.9344 +12.6834 -37.8814 42.8729 +12.246 -38.1476 43.1742 +11.5235 -37.5031 42.4448 +11.0669 -37.6983 42.6657 +10.4603 -37.3702 42.2943 +9.96741 -37.4292 42.3611 +9.47373 -37.4854 42.4247 +8.97934 -37.5387 42.485 +8.36601 -37.0653 41.9492 +8.01637 -37.7679 42.7444 +7.40084 -37.2219 42.1265 +6.97093 -37.5919 42.5452 +6.39598 -37.1702 42.068 +5.99993 -37.7984 42.779 +5.50155 -37.8316 42.8165 +5.00274 -37.862 42.8509 +4.43294 -37.2954 42.2096 +3.99705 -37.848 42.8351 +3.43703 -37.2087 42.1116 +2.94651 -37.2272 42.1324 +2.42088 -36.7136 41.5512 +1.96484 -37.2556 42.1646 +1.479 -37.3979 42.3256 +0.986061 -37.405 42.3337 +0.486941 -36.9458 41.814 +4.44089e-15 -37.5431 42.49 +-0.494795 -37.5417 42.4884 +-0.984316 -37.3388 42.2588 +-1.479 -37.3979 42.3256 +-1.97182 -37.3879 42.3144 +-2.46886 -37.4412 42.3747 +-2.95698 -37.3595 42.2822 +-3.45535 -37.407 42.336 +-3.99007 -37.782 42.7603 +-4.41725 -37.1633 42.0602 +-4.97659 -37.6641 42.627 +-5.46321 -37.568 42.5182 +-5.94767 -37.4692 42.4063 +-6.45258 -37.4992 42.4403 +-6.97093 -37.5919 42.5452 +-7.47915 -37.6158 42.5723 +-8.07204 -38.0301 43.0412 +-8.49904 -37.6546 42.6162 +-8.99498 -37.6041 42.5591 +-9.52325 -37.6813 42.6464 +-10.0369 -37.6901 42.6563 +-10.3692 -37.0447 41.9259 +-11.0478 -37.6333 42.5921 +-11.5235 -37.5031 42.4448 +-12.0381 -37.4999 42.4411 +-12.3587 -36.9118 41.7755 +-13.0472 -37.4196 42.3503 +-13.6799 -37.7291 42.7005 +-14.2008 -37.7129 42.6822 +-14.6723 -37.5653 42.5151 +-15.3997 -38.0547 43.069 +-15.6869 -37.4538 42.3889 +-16.4831 -38.0618 43.0771 +-16.7285 -37.3938 42.3211 +-17.4254 -37.739 42.7117 +-17.7416 -37.2579 42.1673 +-18.4792 -37.6578 42.6198 +-19.0383 -37.6752 42.6395 +-19.5015 -37.5011 42.4425 +-20.0952 -37.5742 42.5253 +-20.8632 -37.9544 42.9556 +-21.3627 -37.8325 42.8175 +-22.1471 -38.2022 43.2359 +-22.6131 -38.0111 43.0197 +-23.4504 -38.4315 43.4955 +-23.6881 -37.8663 42.8558 +-24.4988 -38.2157 43.2512 +-25.0016 -38.0726 43.0893 +-25.9091 -38.5316 43.6087 +-26.0427 -37.8382 42.824 +-26.963 -38.2863 43.3311 +-27.4236 -38.0693 43.0856 +-27.9681 -37.9689 42.972 +-28.9582 -38.4577 43.5251 +-29.5094 -38.3479 43.4008 +-29.8751 -37.9997 43.0068 +-30.7973 -38.3519 43.4053 +-31.3016 -38.1724 43.2023 +-32.1429 -38.3955 43.4547 +-32.6969 -38.2659 43.3081 +-33.65 -38.5916 43.6767 +-34.1066 -38.3387 43.3904 +-35.0226 -38.5942 43.6796 +-35.4254 -38.2774 43.3211 +-36.1935 -38.3521 43.4056 +-37.2886 -38.7558 43.8625 +-37.7979 -38.5388 43.6169 +-38.2492 -38.2637 43.3056 +-39.2553 -38.5353 43.6129 +-39.8184 -38.3616 43.4164 +-40.7813 -38.5639 43.6454 +-41.2299 -38.2729 43.316 +-42.2618 -38.5153 43.5904 +-42.7678 -38.2697 43.3123 +-43.8723 -38.5499 43.6295 +-44.3178 -38.2424 43.2815 +-45.3743 -38.4545 43.5215 +-45.9416 -38.2427 43.2818 +-47.0732 -38.4903 43.562 +-47.515 -38.1658 43.1948 +-48.5947 -38.3463 43.399 +-49.7477 -38.5675 43.6494 +-50.9758 -38.8283 43.9445 +-51.4856 -38.5323 43.6095 +-53.2628 -39.1682 44.3293 +-53.7094 -38.8101 43.924 +-55.4465 -39.37 44.5577 +-56.0321 -39.0962 44.2477 +-57.1009 -39.1519 44.3108 +-58.2456 -39.2455 44.4168 +-58.7606 -38.9075 44.0342 +-60.4836 -39.3555 44.5412 +-61.2158 -39.1425 44.3001 +-61.8019 -38.8328 43.9497 +-63.9203 -39.4678 44.6683 +-64.438 -39.0969 44.2485 +-66.0656 -39.3876 44.5776 +-66.8069 -39.136 44.2928 +-69.5088 -40.0083 45.28 +-70.0334 -39.6052 44.8238 +-71.9316 -39.9651 45.2311 +-72.9185 -39.8006 45.045 +-74.1397 -39.7528 44.9909 +-75.3652 -39.6939 44.9242 +-77.7767 -40.2352 45.5369 +-78.304 -39.7843 45.0266 +-80.6622 -40.2468 45.55 +-80.868 -39.6217 44.8425 +-83.0051 -39.9313 45.1929 +-84.4238 -39.8731 45.127 +-86.011 -39.8775 45.132 +-87.8519 -39.9791 45.2469 +-89.8677 -40.1364 45.425 +-91.4773 -40.0907 45.3733 +-93.5118 -40.2097 45.508 +-95.8936 -40.4506 45.7806 +-98.7128 -40.8423 46.2239 +-99.2473 -40.2703 45.5766 +-102.774 -40.889 46.2768 +-104.085 -40.596 45.9451 +-106.608 -40.7545 46.1246 +-108.707 -40.7238 46.0899 +-111.252 -40.8325 46.2128 +-113.104 -40.662 46.0199 +-115.401 -40.6286 45.9821 +-118.061 -40.694 46.0561 +-122.157 -41.2128 46.6432 +-125.112 -41.3031 46.7454 +-97.7888 -31.5805 35.7417 +-98.111 -30.9857 35.0686 +-97.8812 -30.2218 34.204 +-98.3668 -29.6824 33.5936 +-97.9321 -28.8706 32.6748 +-97.4835 -28.066 31.7641 +-98.5861 -27.7086 31.3597 +-94.5129 -25.9216 29.3372 +-93.831 -25.1017 28.4093 +-78.062 -20.3604 23.0432 +-53.6809 -13.6441 15.4419 +-41.2136 -10.2029 11.5473 +-38.0576 -9.17178 10.3803 +-34.4064 -8.06747 9.13049 +-31.3912 -7.15696 8.10001 +-17.6388 -3.90784 4.42276 +-16.5484 -3.56024 4.02936 +-16.8808 -3.52421 3.98859 +-16.6397 -3.36847 3.81232 +-16.5876 -3.25339 3.68207 +-14.9957 -2.84715 3.2223 +-15.9963 -2.93734 3.32438 +-15.0684 -2.67343 3.0257 +-15.0063 -2.56968 2.90827 +-13.4871 -2.22657 2.51996 +-14.5855 -2.31859 2.6241 +-13.7386 -2.10017 2.3769 +-12.3013 -1.80574 2.04367 +-13.1072 -1.84472 2.0878 +-14.6009 -1.96693 2.2261 +-13.3501 -1.71824 1.94465 +-12.684 -1.55658 1.76168 +-13.1964 -1.54072 1.74373 +-13.5121 -1.49719 1.69447 +-14.0252 -1.47085 1.66466 +-14.4396 -1.4289 1.61718 +-14.5569 -1.35462 1.53312 +-14.4751 -1.26182 1.42809 +-14.4912 -1.17813 1.33337 +-13.6119 -1.02689 1.1622 +-13.7244 -0.955125 1.08098 +-14.2342 -0.907517 1.0271 +-14.3452 -0.831008 0.940506 +-13.7575 -0.716921 0.811387 +-13.6666 -0.63278 0.716159 +-11.778 -0.476985 0.539836 +-11.8837 -0.412377 0.466715 +-12.8877 -0.372577 0.421671 +-10.9933 -0.25419 0.287684 +-11.4961 -0.199326 0.225591 +-11.6982 -0.135204 0.153019 +-11.8995 -0.0687602 0.0778205 +11.7 -1.77636e-15 -1.7053e-13 +10.7996 -0.0617643 0.0711871 +11.1983 -0.128099 0.147642 +11.9959 -0.20586 0.237266 +14.5911 -0.333921 0.384864 +25.9753 -0.74323 0.856617 +35.4513 -1.21759 1.40335 +34.7351 -1.39228 1.60469 +36.7104 -1.6823 1.93896 +33.3967 -1.7225 1.98529 +34.4683 -1.97626 2.27776 +32.3504 -2.0414 2.35284 +27.3494 -1.88382 2.17121 +20.0702 -1.49858 1.72721 +21.6375 -1.74109 2.00672 +28.851 -2.48921 2.86897 +35.1545 -3.23784 3.73181 +41.4398 -4.0587 4.6779 +49.6807 -5.1567 5.94341 +56.5142 -6.19777 7.14331 +63.914 -7.38563 8.51239 +87.8047 -10.6649 12.2919 +94.4325 -12.0294 13.8646 +95.1507 -12.6866 14.6221 +95.2716 -13.2712 15.2958 +95.0912 -13.8155 15.9232 +95.196 -14.403 16.6004 +95.0005 -14.9469 17.2272 +94.8949 -15.5055 17.8711 +94.588 -16.0312 18.4769 +95.4335 -16.7581 19.3147 +95.1103 -17.2857 19.9228 +95.7417 -17.9916 20.7364 +95.4984 -18.5384 21.3666 +96.1086 -19.2563 22.1941 +95.7532 -19.7855 22.804 +95.5812 -20.3526 23.4576 +96.0652 -21.0648 24.2785 +95.781 -21.6134 24.9108 +96.338 -22.3572 25.7681 +96.0366 -22.9073 26.4021 +95.6342 -23.4327 27.0076 +96.1588 -24.1901 27.8806 +96.7634 -24.9793 28.7901 +96.5198 -25.5563 29.4551 +96.0835 -26.0822 30.0614 +96.653 -26.8868 30.9887 +96.2913 -27.4385 31.6246 +96.8358 -28.2547 32.5653 +96.3649 -28.7802 33.171 +96.9749 -29.6349 34.1561 +95.674 -29.9063 34.4688 +95.362 -30.481 35.1312 +95.4895 -31.2006 35.9606 +94.9813 -31.7158 36.5544 +94.9989 -32.4091 37.3534 +94.7403 -33.0127 38.0491 +94.8244 -33.7408 38.8883 +95.1586 -34.5678 39.8415 +94.8688 -35.1752 40.5416 +95.1762 -36.0113 41.5053 +94.7792 -36.5875 42.1693 +94.4598 -37.1957 42.8703 +93.7904 -37.666 43.4123 +92.4372 -37.8537 43.6286 +90.3272 -37.7118 43.4652 +89.2345 -37.9771 43.7709 +86.8075 -37.654 43.3986 +86.0541 -38.0391 43.8424 +83.4016 -37.5647 43.2956 +82.9801 -38.0778 43.887 +80.516 -37.6376 43.3796 +80.0927 -38.1351 43.953 +78.6172 -38.124 43.9402 +76.7489 -37.9016 43.6839 +74.7339 -37.5811 43.3145 +74.073 -37.9264 43.7125 +71.8434 -37.451 43.1646 +70.6426 -37.4893 43.2087 +69.2147 -37.3916 43.0961 +68.8674 -37.8703 43.6478 +66.6116 -37.2838 42.9718 +66.8673 -38.0932 43.9048 +65.0094 -37.6926 43.443 +63.8361 -37.6683 43.4149 +62.6686 -37.6335 43.3748 +62.2382 -38.0351 43.8378 +60.2786 -37.4874 43.2065 +60.5684 -38.3314 44.1793 +58.7005 -37.8036 43.5709 +57.6999 -37.8135 43.5823 +55.7924 -37.2072 42.8835 +55.3643 -37.572 43.304 +54.1735 -37.4118 43.1194 +53.8097 -37.816 43.5853 +51.8853 -37.1077 42.7688 +51.3223 -37.3543 43.0531 +50.1603 -37.1555 42.824 +49.8605 -37.5894 43.324 +48.6437 -37.3249 43.0192 +48.2733 -37.7021 43.4539 +46.5609 -37.0159 42.6631 +46.4438 -37.5864 43.3206 +44.9456 -37.0299 42.6793 +44.6355 -37.4405 43.1525 +43.7699 -37.3824 43.0855 +43.09 -37.4743 43.1914 +42.2324 -37.4032 43.1094 +41.8503 -37.7493 43.5084 +40.7653 -37.4537 43.1677 +39.8062 -37.256 42.9398 +39.252 -37.4281 43.1382 +38.6961 -37.5969 43.3327 +38.1388 -37.7621 43.5231 +37.6346 -37.9788 43.7728 +36.5901 -37.6399 43.3822 +35.6106 -37.3475 43.0452 +35.0074 -37.438 43.1495 +34.6106 -37.7491 43.5081 +33.599 -37.381 43.0838 +33.2 -37.6852 43.4344 +32.5984 -37.7595 43.5201 +31.8035 -37.6006 43.337 +31.1585 -37.6083 43.3458 +30.7973 -37.9586 43.7496 +29.829 -37.552 43.2809 +29.3732 -37.7795 43.5432 +28.3782 -37.3009 42.9916 +27.9242 -37.5207 43.2449 +27.4236 -37.679 43.4273 +26.8785 -37.775 43.538 +26.1257 -37.5695 43.3011 +25.5837 -37.6576 43.4026 +24.7623 -37.3216 43.0155 +24.6942 -38.1254 43.9419 +23.7646 -37.5992 43.3353 +23.2256 -37.6729 43.4203 +22.4299 -37.3165 43.0096 +21.968 -37.5046 43.2263 +21.4327 -37.5673 43.2986 +21 -37.8116 43.5802 +20.429 -37.8068 43.5746 +19.9899 -38.0461 43.8504 +19.1335 -37.4753 43.1926 +18.6337 -37.5833 43.3171 +17.8619 -37.126 42.7899 +17.6008 -37.728 43.4838 +17.3533 -38.3928 44.25 +16.5382 -37.7976 43.564 +15.9274 -37.6382 43.3803 +15.4774 -37.8544 43.6295 +14.9727 -37.9415 43.7298 +14.2492 -37.4534 43.1673 +13.7499 -37.5335 43.2596 +13.2271 -37.5468 43.275 +12.6184 -37.3011 42.9918 +12.2668 -37.8206 43.5905 +11.7228 -37.7609 43.5217 +11.1051 -37.4405 43.1524 +10.6243 -37.567 43.2982 +10.1063 -37.5618 43.2922 +9.60577 -37.6181 43.3572 +9.13577 -37.8011 43.568 +8.49904 -37.2686 42.9543 +8.00245 -37.3157 43.0087 +7.50526 -37.3601 43.0598 +7.01967 -37.4667 43.1826 +6.49786 -37.3751 43.0771 +6.03129 -37.6064 43.3436 +5.50155 -37.4437 43.1562 +5.02889 -37.6696 43.4165 +4.50355 -37.501 43.2222 +3.99705 -37.4599 43.1748 +3.49808 -37.4814 43.1995 +2.99885 -37.5 43.221 +2.4645 -36.9919 42.6354 +1.99625 -37.4631 43.1785 +1.479 -37.0144 42.6614 +0.989551 -37.1526 42.8206 +0.500903 -37.6155 43.3541 +6.21725e-15 -37.8135 43.5824 +-0.493922 -37.0912 42.7499 +-1.00351 -37.6767 43.4247 +-1.479 -37.0144 42.6614 +-2.00672 -37.6595 43.4049 +-2.51248 -37.7121 43.4655 +-3.01978 -37.7617 43.5227 +-3.49808 -37.4814 43.1995 +-4.08773 -38.3098 44.1544 +-4.48001 -37.305 42.9963 +-5.04632 -37.8002 43.5671 +-5.54947 -37.7699 43.5321 +-6.0731 -37.8671 43.6441 +-6.55447 -37.7007 43.4523 +-6.98311 -37.2715 42.9577 +-7.59662 -37.8149 43.584 +-8.09987 -37.77 43.5322 +-8.57295 -37.5926 43.3278 +-9.15142 -37.8658 43.6427 +-9.53975 -37.3596 43.0592 +-10.1931 -37.8845 43.6641 +-10.5332 -37.2448 42.9269 +-11.0669 -37.3118 43.0041 +-11.5235 -37.1186 42.7815 +-12.2252 -37.6924 43.4427 +-12.7266 -37.621 43.3605 +-13.2496 -37.6107 43.3486 +-13.7032 -37.406 43.1127 +-14.225 -37.3898 43.094 +-14.6723 -37.1802 42.8524 +-15.4256 -37.7278 43.4836 +-15.9274 -37.6382 43.3803 +-16.7036 -38.1756 43.9997 +-17.1545 -37.9529 43.7431 +-17.747 -38.0414 43.845 +-18.2228 -37.8759 43.6543 +-18.8191 -37.9573 43.748 +-19.3239 -37.8482 43.6224 +-20.1201 -38.2939 44.1361 +-20.3622 -37.6832 43.4322 +-21.2052 -38.1811 44.0061 +-21.6078 -37.8743 43.6524 +-22.1113 -37.7493 43.5083 +-22.6131 -37.6214 43.3609 +-23.1881 -37.6122 43.3503 +-23.956 -37.902 43.6843 +-24.5379 -37.8841 43.6637 +-25.3604 -38.2231 44.0545 +-26.2752 -38.6753 44.5757 +-26.4574 -38.0465 43.8509 +-27.5124 -38.6659 44.5648 +-27.9832 -38.4479 44.3136 +-28.8887 -38.8166 44.7384 +-28.869 -37.9461 43.7352 +-29.8726 -38.4218 44.2835 +-30.2445 -38.0752 43.8839 +-31.2668 -38.5372 44.4165 +-31.7311 -38.2994 44.1423 +-32.6277 -38.575 44.46 +-33.1893 -38.444 44.309 +-34.05 -38.65 44.5464 +-34.5126 -38.3973 44.2552 +-35.7436 -38.9849 44.9325 +-35.8957 -38.3879 44.2444 +-36.7234 -38.5146 44.3904 +-37.2349 -38.3031 44.1466 +-38.2337 -38.5834 44.4697 +-38.6908 -38.3086 44.153 +-39.8145 -38.6835 44.5851 +-40.2148 -38.3463 44.1965 +-41.4122 -38.7591 44.6722 +-41.8106 -38.414 44.2745 +-42.9083 -38.7036 44.6083 +-43.3031 -38.3515 44.2024 +-44.4139 -38.6257 44.5185 +-44.9875 -38.4222 44.2839 +-46.113 -38.6799 44.5809 +-46.5018 -38.3121 44.1571 +-47.5766 -38.5031 44.3772 +-48.0875 -38.2296 44.0619 +-49.3018 -38.5053 44.3797 +-49.7477 -38.1721 43.9956 +-51.6975 -38.9742 44.9202 +-52.7446 -39.0698 45.0303 +-53.2628 -38.7666 44.6809 +-54.385 -38.8954 44.8293 +-55.5147 -39.0143 44.9663 +-56.5827 -39.0756 45.037 +-57.7956 -39.222 45.2057 +-58.2456 -38.8432 44.7691 +-59.8919 -39.25 45.238 +-60.555 -38.9979 44.9474 +-62.0071 -39.2419 45.2287 +-62.092 -38.6152 44.5063 +-64.4323 -39.376 45.3832 +-65.1016 -39.0945 45.0588 +-66.8087 -39.4223 45.4366 +-68.4546 -39.6901 45.7453 +-70.037 -39.8991 45.9861 +-70.4896 -39.4544 45.4736 +-73.1572 -40.2293 46.3667 +-73.613 -39.7677 45.8347 +-75.3832 -40.0051 46.1083 +-76.5391 -39.8988 45.9858 +-78.3283 -40.1052 46.2236 +-78.78 -39.6158 45.6596 +-80.9018 -39.9525 46.0477 +-82.3149 -39.9171 46.0069 +-83.976 -39.9841 46.0841 +-84.7494 -39.6165 45.6605 +-87.4035 -40.1077 46.2265 +-88.5112 -39.8661 45.9481 +-91.0283 -40.2379 46.3767 +-92.2278 -40.0052 46.1084 +-94.7698 -40.3328 46.486 +-96.6527 -40.3527 46.5089 +-99.1368 -40.5972 46.7907 +-100.697 -40.4396 46.6091 +-103.203 -40.6385 46.8383 +-104.429 -40.3128 46.4629 +-108.253 -40.9592 47.208 +-110.274 -40.8872 47.125 +-113.351 -41.1763 47.4582 +-114.422 -40.7142 46.9256 +-117.609 -40.9812 47.2334 +-120.013 -40.9426 47.1888 +-124.652 -41.6233 47.9733 +-119.563 -39.0666 45.0266 +-98.0584 -31.3428 36.1245 +-98.2013 -30.6962 35.3792 +-98.7875 -30.1888 34.7945 +-98.3668 -29.3781 33.8601 +-98.8456 -28.8411 33.2411 +-98.3088 -28.0134 32.2872 +-98.6781 -27.4501 31.638 +-97.3769 -26.4333 30.466 +-96.0562 -25.4335 29.3137 +-92.5765 -23.8985 27.5445 +-61.3362 -15.43 17.784 +-44.7729 -10.9705 12.6441 +-40.5947 -9.68295 11.1602 +-35.6318 -8.26911 9.53065 +-33.2823 -7.51028 8.65605 +-23.4236 -5.13624 5.91983 +-17.975 -3.8275 4.41143 +-16.8808 -3.48808 4.02022 +-16.1616 -3.23812 3.73213 +-15.6288 -3.0339 3.49675 +-15.6686 -2.9444 3.3936 +-15.4181 -2.80214 3.22964 +-16.0344 -2.81563 3.24519 +-14.0381 -2.37925 2.74222 +-14.3604 -2.34643 2.70441 +-13.4187 -2.11123 2.43333 +-13.0566 -1.97544 2.27681 +-12.8871 -1.87233 2.15797 +-14.9657 -2.08469 2.40273 +-13.523 -1.80304 2.07812 +-12.7612 -1.6256 1.87361 +-13.6672 -1.66004 1.9133 +-14.0828 -1.62734 1.87561 +-14.3998 -1.57919 1.82011 +-14.1239 -1.46602 1.68968 +-13.1539 -1.28833 1.48488 +-13.4676 -1.24041 1.42965 +-14.1777 -1.22322 1.40983 +-13.6971 -1.10216 1.27031 +-14.2081 -1.06088 1.22273 +-14.7189 -1.01384 1.16851 +-14.2342 -0.898213 1.03524 +-14.3452 -0.822487 0.947966 +-13.6578 -0.704426 0.811894 +-14.3649 -0.65829 0.758719 +-11.9776 -0.480096 0.553339 +-11.3844 -0.391 0.450651 +-11.4891 -0.328737 0.37889 +-11.6929 -0.267594 0.308418 +-10.8963 -0.18699 0.215517 +-11.4982 -0.13153 0.151597 +-10.4996 -0.0600486 0.0692096 +11.7 -1.77636e-15 -1.7053e-13 +11.7996 -0.0667785 0.0783841 +12.4981 -0.141475 0.166062 +12.3958 -0.210501 0.247084 +26.8836 -0.608814 0.714621 +32.2693 -0.913686 1.07248 +37.4486 -1.27276 1.49395 +37.2304 -1.47672 1.73336 +36.9099 -1.67379 1.96468 +35.9887 -1.83681 2.15603 +31.3801 -1.78041 2.08983 +30.1605 -1.88334 2.21065 +25.062 -1.70824 2.00512 +20.7657 -1.53433 1.80099 +21.042 -1.6755 1.96669 +30.3382 -2.59019 3.04035 +35.9467 -3.27624 3.84562 +43.0222 -4.1697 4.89436 +48.7918 -5.01156 5.88253 +56.9087 -6.17588 7.24919 +64.5049 -7.3761 8.658 +90.7544 -10.9081 12.8038 +94.4325 -11.9038 13.9726 +95.2487 -12.5671 14.7512 +95.3694 -13.1461 15.4308 +95.2865 -13.6993 16.0802 +95.2934 -14.2672 16.7468 +95.0978 -14.806 17.3792 +95.8652 -15.5005 18.1944 +95.653 -16.0424 18.8304 +95.4335 -16.5831 19.4651 +95.2067 -17.1226 20.0984 +95.8378 -17.8216 20.9188 +95.5943 -18.3633 21.5547 +96.2043 -19.0742 22.3892 +95.8486 -19.5984 23.0045 +95.5812 -20.1401 23.6403 +96.0652 -20.8449 24.4676 +95.781 -21.3878 25.1048 +96.338 -22.1238 25.9688 +95.9426 -22.646 26.5817 +96.4772 -23.3925 27.4579 +96.1588 -23.9376 28.0977 +96.7634 -24.7185 29.0144 +96.5198 -25.2894 29.6845 +96.1759 -25.8347 30.3246 +96.653 -26.6061 31.23 +96.383 -27.1779 31.9012 +96.0136 -27.7223 32.5402 +96.4559 -28.5067 33.4609 +96.703 -29.2433 34.3256 +96.1253 -29.7336 34.901 +95.362 -30.1628 35.4048 +94.7735 -30.6434 35.9689 +94.9813 -31.3847 36.8391 +95.3537 -32.1905 37.7849 +94.9169 -32.7289 38.4169 +94.7365 -33.3576 39.1549 +94.9837 -34.144 40.0779 +94.8688 -34.808 40.8573 +95.1762 -35.6354 41.8285 +95.3823 -36.4359 42.7682 +93.8598 -36.5736 42.9297 +94.2167 -37.4422 43.9493 +92.6917 -37.5616 44.0894 +90.9176 -37.562 44.09 +89.4023 -37.6512 44.1947 +87.7248 -37.6547 44.1988 +86.7173 -37.9321 44.5244 +84.6378 -37.7235 44.2795 +82.7344 -37.5687 44.0978 +82.0628 -37.9602 44.5574 +81.1444 -38.2326 44.8771 +79.1799 -37.9959 44.5993 +77.9468 -38.0913 44.7113 +76.2413 -37.9389 44.5323 +75.0186 -38.0095 44.6153 +73.7999 -38.0693 44.6854 +72.1191 -37.8733 44.4554 +70.6808 -37.785 44.3518 +69.5568 -37.8501 44.4281 +67.9043 -37.6105 44.1469 +66.8673 -37.6955 44.2467 +65.1591 -37.385 43.8822 +64.5793 -37.7089 44.2624 +63.3321 -37.6348 44.1755 +62.2382 -37.638 44.1792 +61.1491 -37.6317 44.1717 +60.5684 -37.9312 44.5233 +58.7718 -37.4544 43.9636 +58.3363 -37.8314 44.4062 +57.1942 -37.7438 44.3033 +56.6841 -38.066 44.6816 +54.8619 -37.4916 44.0073 +53.8097 -37.4212 43.9247 +53.3041 -37.7243 44.2805 +52.326 -37.6872 44.2369 +51.6181 -37.8362 44.4118 +50.4509 -37.6374 44.1785 +49.3581 -37.4777 43.991 +48.2733 -37.3084 43.7923 +47.6423 -37.4802 43.9939 +46.6326 -37.3451 43.8354 +45.6303 -37.2016 43.667 +45.128 -37.4584 43.9684 +44.3787 -37.5066 44.025 +43.2705 -37.2384 43.7101 +42.8867 -37.5861 44.1183 +42.2618 -37.7224 44.2783 +41.3461 -37.5906 44.1235 +40.7239 -37.7169 44.2718 +39.7051 -37.4649 43.976 +39.1994 -37.6882 44.2381 +38.6356 -37.8546 44.4334 +38.0703 -38.0174 44.6245 +37.1274 -37.7938 44.362 +36.6174 -38.0025 44.607 +35.5299 -37.6 44.1346 +34.5591 -37.2994 43.7817 +34.0558 -37.4935 44.0096 +33.6 -37.741 44.3001 +33.1893 -38.0426 44.6541 +32.1914 -37.6617 44.2071 +31.2539 -37.3296 43.8172 +31.2199 -38.0776 44.6952 +29.8751 -37.2175 43.6855 +29.7818 -37.9051 44.4927 +28.869 -37.5499 44.0758 +28.3626 -37.7119 44.2659 +27.3805 -37.2271 43.6968 +27.3857 -38.0859 44.7049 +26.416 -37.5903 44.1232 +25.9498 -37.7976 44.3665 +25.4801 -38.0025 44.607 +24.6161 -37.608 44.1439 +24.1856 -37.8657 44.4465 +23.6377 -37.941 44.5348 +22.7964 -37.5303 44.0528 +22.2905 -37.6579 44.2025 +21.7829 -37.7826 44.3489 +21.0342 -37.4778 43.9912 +20.4624 -37.4732 43.9857 +19.9573 -37.5876 44.12 +19.4508 -37.699 44.2508 +18.8809 -37.6844 44.2336 +18.4333 -37.9134 44.5025 +17.7177 -37.5822 44.1137 +17.2397 -37.7433 44.3027 +16.7036 -37.7771 44.3424 +15.9541 -37.3077 43.7914 +15.4774 -37.4592 43.9693 +14.9727 -37.5453 44.0704 +14.4427 -37.5658 44.0944 +13.7733 -37.2046 43.6705 +13.4296 -37.7235 44.2795 +12.8349 -37.5448 44.0698 +12.4539 -37.9966 44.6001 +11.9023 -37.9385 44.5319 +11.4295 -38.1318 44.7588 +10.7883 -37.7486 44.3091 +10.2626 -37.7444 44.304 +9.77082 -37.865 44.4456 +9.27656 -37.9829 44.584 +8.64685 -37.5208 44.0416 +8.25296 -38.0821 44.7005 +7.60968 -37.4844 43.9989 +7.21467 -38.1053 44.7277 +6.53183 -37.1782 43.6395 +6.12537 -37.7942 44.3626 +5.5303 -37.2465 43.7196 +5.0899 -37.7286 44.2855 +4.50355 -37.1095 43.5588 +3.99705 -37.0688 43.5111 +3.56523 -37.8021 44.3718 +2.99885 -37.1084 43.5576 +2.50375 -37.1888 43.6519 +1.99974 -37.1367 43.5908 +1.48685 -36.8225 43.2219 +1.007 -37.413 43.9151 +0.503521 -37.4173 43.9202 +8.88178e-15 -37.4836 43.9979 +-0.502648 -37.3525 43.844 +-1.00351 -37.2833 43.7629 +-1.50517 -37.2763 43.7546 +-2.00672 -37.2664 43.7429 +-2.50811 -37.2536 43.7279 +-3.00932 -37.238 43.7096 +-3.51029 -37.2195 43.688 +-4.07378 -37.7804 44.3464 +-4.56632 -37.6267 44.1659 +-5.07246 -37.5994 44.1338 +-5.54947 -37.3756 43.8711 +-6.15673 -37.9877 44.5896 +-6.65635 -37.887 44.4714 +-7.21467 -38.1053 44.7277 +-7.60968 -37.4844 43.9989 +-8.21121 -37.8894 44.4743 +-8.75032 -37.9698 44.5686 +-9.27656 -37.9829 44.584 +-9.73781 -37.7371 44.2955 +-10.1931 -37.4889 44.0042 +-10.7154 -37.4936 44.0097 +-11.2196 -37.4315 43.9368 +-11.7228 -37.3666 43.8606 +-12.2252 -37.2988 43.7811 +-12.7266 -37.2282 43.6982 +-13.4296 -37.7235 44.2795 +-13.9133 -37.583 44.1146 +-14.4427 -37.5658 44.0944 +-14.9477 -37.4826 43.9967 +-15.6586 -37.8977 44.484 +-16.1946 -37.8701 44.4516 +-16.7036 -37.7771 44.3424 +-17.2397 -37.7433 44.3027 +-17.7762 -37.7062 44.2593 +-18.5535 -38.1608 44.7929 +-19.0354 -37.9927 44.5956 +-19.3239 -37.4531 43.9621 +-20.1201 -37.8941 44.4798 +-20.5959 -37.7177 44.2727 +-21.5131 -38.331 44.9926 +-21.888 -37.9648 44.5628 +-22.4697 -37.9606 44.5578 +-22.9796 -37.832 44.4069 +-23.8624 -38.3018 44.9583 +-24.3387 -38.1053 44.7277 +-24.8114 -37.9065 44.4943 +-25.7991 -38.4783 45.1655 +-26.3565 -38.39 45.0619 +-26.8721 -38.2394 44.8851 +-27.4702 -38.2034 44.8429 +-28.0263 -38.1051 44.7274 +-28.7571 -38.2365 44.8816 +-29.7614 -38.7106 45.4382 +-30.2358 -38.483 45.171 +-30.7525 -38.3104 44.9684 +-31.6424 -38.593 45.3001 +-31.7788 -37.9565 44.553 +-33.064 -38.6828 45.4055 +-33.6325 -38.5506 45.2504 +-34.05 -38.2464 44.8934 +-35.0709 -38.6111 45.3214 +-35.8982 -38.7447 45.4782 +-36.3137 -38.4295 45.1082 +-37.2533 -38.6625 45.3817 +-37.7184 -38.3955 45.0683 +-38.7238 -38.67 45.3906 +-39.1875 -38.3953 45.0681 +-40.3737 -38.8173 45.5634 +-40.8379 -38.5339 45.2307 +-41.3549 -38.3013 44.9578 +-42.3913 -38.5409 45.239 +-43.3786 -38.7193 45.4484 +-43.8979 -38.4723 45.1585 +-44.9556 -38.6886 45.4124 +-45.5354 -38.4841 45.1723 +-46.6056 -38.6849 45.408 +-47.1244 -38.4197 45.0967 +-48.2689 -38.6555 45.3735 +-48.7236 -38.3308 44.9924 +-50.0732 -38.6995 45.4251 +-50.6569 -38.464 45.1487 +-52.2879 -39.0079 45.7871 +-52.7446 -38.6619 45.381 +-53.9319 -38.8438 45.5946 +-54.993 -38.9197 45.6836 +-56.1285 -39.0338 45.8175 +-56.6516 -38.7147 45.443 +-58.3513 -39.1856 45.9957 +-58.8764 -38.8539 45.6064 +-60.7405 -39.3905 46.2363 +-60.8403 -38.7726 45.5109 +-62.2948 -39.0124 45.7924 +-63.4703 -39.0601 45.8484 +-65.0905 -39.3629 46.2039 +-66.2812 -39.3874 46.2326 +-68.295 -39.8786 46.8092 +-69.0537 -39.6195 46.5051 +-70.7163 -39.8654 46.7936 +-71.7063 -39.7164 46.6188 +-73.6169 -40.0594 47.0214 +-74.3846 -39.765 46.6758 +-76.0826 -39.9547 46.8985 +-77.3217 -39.8859 46.8178 +-79.0375 -40.0457 47.0053 +-80.2874 -39.9523 46.8956 +-81.8601 -40.0037 46.956 +-82.7973 -39.7318 46.6368 +-84.6232 -39.8716 46.801 +-85.645 -39.6172 46.5023 +-88.6323 -40.2469 47.2415 +-89.7473 -40.0008 46.9527 +-91.7745 -40.1442 47.121 +-93.7288 -40.2318 47.2237 +-96.2794 -40.5475 47.5944 +-98.2551 -40.5934 47.6483 +-99.9001 -40.4826 47.5182 +-102.317 -40.6612 47.7277 +-104.06 -40.5482 47.5951 +-106.584 -40.7148 47.7907 +-109.033 -40.8234 47.9182 +-110.883 -40.6838 47.7544 +-113.613 -40.8408 47.9386 +-115.652 -40.7223 47.7995 +-119.551 -41.2231 48.3874 +-121.698 -41.084 48.2241 +-124.919 -41.277 48.4506 +-98.4428 -31.8298 37.3616 +-99.0471 -31.3283 36.7729 +-98.3818 -30.4316 35.7203 +-98.7875 -29.8737 35.0655 +-98.3668 -29.0714 34.1238 +-98.8456 -28.54 33.5 +-98.3088 -27.7209 32.5386 +-98.7702 -27.1889 31.9141 +-98.2084 -26.3807 30.9654 +-97.5397 -25.5567 29.9982 +-76.8525 -19.6322 23.0441 +-72.3525 -18.0113 21.1415 +-50.7676 -12.3094 14.4487 +-44.5414 -10.5134 12.3406 +-36.9515 -8.48582 9.96059 +-34.3223 -7.6641 8.99606 +-31.9585 -6.9346 8.13977 +-30.1485 -6.35265 7.45669 +-16.69 -3.41266 4.00575 +-16.1616 -3.20432 3.7612 +-16.4917 -3.16799 3.71856 +-16.0531 -2.98516 3.50396 +-16.4781 -2.96353 3.47856 +-15.5514 -2.70232 3.17196 +-14.3286 -2.40311 2.82076 +-14.7485 -2.38469 2.79913 +-15.7524 -2.45252 2.87875 +-13.5437 -2.02776 2.38017 +-13.6681 -1.96507 2.30658 +-13.205 -1.82023 2.13657 +-13.327 -1.75836 2.06395 +-13.6446 -1.72 2.01892 +-14.5522 -1.74908 2.05305 +-13.6888 -1.5653 1.83734 +-14.9915 -1.62692 1.90966 +-14.2227 -1.46086 1.71475 +-14.044 -1.36114 1.5977 +-14.3589 -1.30869 1.53613 +-13.4837 -1.1512 1.35127 +-13.7964 -1.09855 1.28947 +-14.6055 -1.07917 1.26672 +-14.6195 -0.996474 1.16965 +-13.836 -0.863978 1.01413 +-14.0463 -0.796948 0.935451 +-14.0565 -0.717422 0.842104 +-13.1678 -0.597134 0.700911 +-12.4767 -0.494879 0.580885 +-12.0834 -0.410676 0.482048 +-12.2883 -0.347935 0.408403 +-11.9927 -0.27159 0.31879 +-12.3958 -0.210501 0.247084 +-11.5982 -0.131289 0.154105 +-12.2995 -0.069608 0.0817053 +11.2 -1.77636e-15 -1.7053e-13 +11.7996 -0.0660685 0.0789835 +11.2983 -0.126533 0.151268 +14.595 -0.245213 0.293146 +29.9817 -0.671753 0.803066 +35.666 -0.999122 1.19443 +39.6456 -1.3331 1.59369 +36.6315 -1.43751 1.71852 +37.5084 -1.68284 2.0118 +37.0853 -1.87266 2.23872 +24.0083 -1.34767 1.61111 +26.0794 -1.61119 1.92614 +23.6696 -1.59619 1.9082 +20.3682 -1.48897 1.78003 +21.3397 -1.68114 2.00977 +32.5194 -2.7469 3.28386 +36.937 -3.3307 3.98178 +45.0002 -4.31504 5.15854 +49.4832 -5.02854 6.0115 +54.7389 -5.87724 7.02611 +61.8459 -6.99682 8.36455 +92.6226 -11.0143 13.1673 +95.4142 -11.8997 14.2258 +95.3467 -12.4463 14.8792 +94.5869 -12.8996 15.4212 +94.5055 -13.4426 16.0704 +95.2934 -14.1156 16.8748 +95.0978 -14.6486 17.5121 +94.8949 -15.1805 18.1479 +94.6848 -15.7112 18.7824 +95.4335 -16.4068 19.614 +95.2067 -16.9406 20.2521 +95.8378 -17.6321 21.0788 +95.5943 -18.168 21.7195 +95.248 -18.6838 22.3361 +95.8486 -19.39 23.1804 +95.5812 -19.926 23.8211 +96.0652 -20.6233 24.6547 +95.781 -21.1604 25.2968 +96.338 -21.8886 26.1673 +95.9426 -22.4052 26.7849 +96.4772 -23.1438 27.6679 +96.1588 -23.6831 28.3126 +95.833 -24.2205 28.9551 +96.5198 -25.0206 29.9115 +96.1759 -25.56 30.5564 +96.653 -26.3232 31.4688 +96.383 -26.8889 32.1451 +96.8358 -27.6624 33.0698 +96.4559 -28.2036 33.7168 +96.8843 -28.9866 34.6528 +96.5766 -29.5556 35.333 +95.0025 -29.7295 35.541 +95.4 -30.518 36.4836 +95.1595 -31.1092 37.1904 +94.5554 -31.5816 37.7551 +95.4466 -32.5617 38.9267 +95.4395 -33.2479 39.7471 +95.1586 -33.8432 40.4588 +94.6947 -34.3747 41.0942 +95.1762 -35.2565 42.1483 +95.4685 -36.0811 43.1342 +94.6313 -36.4821 43.6135 +94.302 -37.0776 44.3254 +93.6245 -37.5362 44.8737 +91.5923 -37.4384 44.7568 +90.4087 -37.6703 45.034 +88.1417 -37.4314 44.7483 +86.3857 -37.3853 44.6933 +85.5443 -37.7222 45.096 +84.1269 -37.7949 45.1829 +82.2257 -37.6311 44.9871 +82.277 -38.3541 45.8514 +79.5818 -37.7828 45.1685 +78.9052 -38.1497 45.6071 +76.9553 -37.887 45.2931 +75.7278 -37.9609 45.3815 +73.7999 -37.6645 45.0271 +73.0517 -37.9552 45.3746 +70.758 -37.4241 44.7397 +70.1697 -37.7776 45.1622 +69.1969 -37.919 45.3314 +68.2257 -38.0524 45.4908 +65.7583 -37.3276 44.6243 +65.1738 -37.6515 45.0115 +64.0694 -37.6682 45.0315 +62.8233 -37.5879 44.9355 +61.7294 -37.5849 44.9319 +60.5684 -37.5279 44.8638 +59.4851 -37.5058 44.8374 +58.2656 -37.3838 44.6915 +57.7549 -37.7086 45.0798 +56.6841 -37.6613 45.0233 +55.5502 -37.5584 44.9002 +54.3553 -37.3988 44.7094 +53.8445 -37.7017 45.0715 +52.7944 -37.6202 44.9742 +51.8169 -37.578 44.9237 +50.4509 -37.2373 44.5163 +49.8776 -37.4695 44.794 +49.4304 -37.7965 45.1849 +47.7059 -37.1311 44.3895 +47.1361 -37.347 44.6475 +46.2528 -37.3082 44.6012 +45.6205 -37.4647 44.7882 +44.744 -37.4133 44.7267 +43.9325 -37.4061 44.7182 +42.9462 -37.2381 44.5173 +42.2618 -37.3214 44.6169 +41.288 -37.1387 44.3985 +41.1828 -37.7364 45.113 +40.2148 -37.5425 44.8813 +39.5909 -37.6599 45.0216 +38.5804 -37.3986 44.7092 +38.1247 -37.667 45.03 +37.0737 -37.3379 44.6366 +36.6174 -37.5984 44.9481 +36.0524 -37.7473 45.1261 +35.5891 -38.0028 45.4315 +34.5634 -37.6477 45.007 +34.05 -37.8398 45.2366 +33.0909 -37.5264 44.862 +32.6277 -37.7664 45.1489 +31.6833 -37.4402 44.7589 +31.1729 -37.6161 44.9693 +30.7525 -37.9031 45.3123 +29.7364 -37.445 44.7646 +29.3152 -37.7249 45.0993 +28.7571 -37.8299 45.2248 +27.8971 -37.5262 44.8617 +27.3434 -37.6228 44.9772 +26.416 -37.1906 44.4606 +25.9905 -37.4544 44.7759 +25.4801 -37.5984 44.9481 +24.6942 -37.3263 44.6227 +24.1856 -37.4631 44.7863 +23.3005 -37.0022 44.2353 +22.833 -37.1909 44.4609 +22.2905 -37.2575 44.5405 +21.7829 -37.3809 44.688 +21.2737 -37.5014 44.8321 +20.4957 -37.1352 44.3944 +20.2178 -37.6732 45.0375 +19.3873 -37.1766 44.4438 +19.1591 -37.8329 45.2284 +18.4333 -37.5103 44.8428 +17.9809 -37.7348 45.1112 +17.5237 -37.9572 45.3769 +16.9241 -37.8688 45.2713 +16.1679 -37.4056 44.7176 +15.6586 -37.4947 44.8241 +15.1981 -37.7053 45.0758 +14.6847 -37.7889 45.1758 +13.96 -37.3082 44.6011 +13.632 -37.885 45.2907 +12.9864 -37.5841 44.931 +12.5994 -38.0319 45.4663 +11.8823 -37.4723 44.7973 +11.4104 -37.6634 45.0257 +10.7701 -37.2842 44.5725 +10.2626 -37.3431 44.6428 +9.77082 -37.4624 44.7855 +9.24528 -37.4523 44.7734 +8.77988 -37.693 45.0611 +8.25296 -37.6772 45.0423 +7.7402 -37.722 45.0958 +7.22685 -37.7639 45.1459 +6.63371 -37.3567 44.6591 +6.21944 -37.9667 45.3884 +5.52072 -36.7866 43.9776 +5.09861 -37.3914 44.7006 +4.5114 -36.7788 43.9683 +4.12958 -37.8908 45.2976 +3.55913 -37.3361 44.6345 +3.04595 -37.2905 44.58 +2.53865 -37.3062 44.5987 +2.03464 -37.3831 44.6907 +1.52873 -37.4572 44.7793 +1.007 -37.0153 44.2509 +0.502648 -36.9553 44.1793 +9.76996e-15 -37.5342 44.8713 +-0.501776 -36.8912 44.1026 +-1.00351 -36.8869 44.0975 +-1.53135 -37.5214 44.856 +-2.06605 -37.9602 45.3805 +-2.54737 -37.4344 44.752 +-3.10352 -37.9953 45.4226 +-3.56523 -37.4002 44.7111 +-4.12958 -37.8908 45.2976 +-4.63693 -37.8023 45.1918 +-5.14219 -37.711 45.0826 +-5.63573 -37.553 44.8938 +-6.14627 -37.52 44.8544 +-6.65635 -37.4842 44.8115 +-7.20248 -37.6365 44.9936 +-7.62273 -37.1495 44.4114 +-8.18338 -37.3596 44.6625 +-8.85378 -38.0103 45.4405 +-9.41735 -38.1494 45.6067 +-9.73781 -37.3359 44.6342 +-10.3842 -37.7854 45.1716 +-10.7154 -37.095 44.3462 +-11.3722 -37.5374 44.8751 +-11.9023 -37.5352 44.8725 +-12.4331 -37.5298 44.8661 +-12.9214 -37.3962 44.7063 +-13.4296 -37.3224 44.6181 +-13.9133 -37.1834 44.4519 +-14.6121 -37.6021 44.9525 +-15.148 -37.581 44.9272 +-15.6586 -37.4947 44.8241 +-16.2214 -37.5293 44.8655 +-16.9241 -37.8688 45.2713 +-17.4669 -37.8341 45.2298 +-17.9809 -37.7348 45.1112 +-18.5235 -37.694 45.0623 +-19.0973 -37.7108 45.0825 +-19.5777 -37.5416 44.8802 +-20.4131 -38.0372 45.4727 +-20.9631 -37.982 45.4066 +-21.7183 -38.2852 45.7691 +-21.993 -37.7414 45.1191 +-22.7205 -37.9763 45.3998 +-23.3095 -37.967 45.3887 +-24.237 -38.4894 46.0133 +-24.7213 -38.293 45.7784 +-25.2412 -38.1531 45.6112 +-25.8389 -38.128 45.5812 +-26.6819 -38.4508 45.9671 +-27.2039 -38.3 45.7868 +-27.7238 -38.1462 45.6029 +-28.3276 -38.1053 45.554 +-29.1955 -38.4066 45.9142 +-29.7168 -38.2416 45.717 +-30.2358 -38.0738 45.5164 +-31.168 -38.4153 45.9246 +-31.5954 -38.126 45.5788 +-32.1128 -37.9477 45.3656 +-33.064 -38.2715 45.7527 +-33.5833 -38.0849 45.5296 +-34.55 -38.3955 45.901 +-35.5277 -38.6981 46.2627 +-35.8982 -38.3327 45.8259 +-36.7316 -38.4585 45.9763 +-37.6773 -38.6867 46.249 +-38.202 -38.4742 45.9951 +-38.7238 -38.2589 45.7377 +-39.7395 -38.5222 46.0524 +-40.3178 -38.3514 45.8482 +-40.8379 -38.1242 45.5766 +-41.8711 -38.3671 45.867 +-42.8559 -38.549 46.0845 +-43.3786 -38.3077 45.796 +-44.4333 -38.5275 46.0587 +-44.9556 -38.2772 45.7596 +-46.0224 -38.4822 46.0046 +-47.1597 -38.7286 46.2992 +-47.6846 -38.4631 45.9818 +-49.0241 -38.8429 46.4358 +-48.7236 -37.9233 45.3364 +-50.7159 -38.7795 46.36 +-51.1765 -38.4453 45.9605 +-52.2879 -38.5931 46.1372 +-53.4734 -38.7794 46.3599 +-55.0694 -39.2414 46.9122 +-55.6011 -38.9316 46.5418 +-56.7423 -39.0411 46.6728 +-57.8218 -39.0942 46.7363 +-58.9765 -39.1844 46.844 +-59.367 -38.7612 46.3381 +-60.3869 -38.7449 46.3186 +-62.0528 -39.1248 46.7728 +-63.158 -39.1325 46.782 +-64.5583 -39.3074 46.9911 +-65.7487 -39.3382 47.028 +-67.0922 -39.4454 47.1561 +-68.295 -39.4546 47.1671 +-69.5031 -39.4533 47.1656 +-71.3955 -39.8204 47.6044 +-71.7063 -39.2941 46.9753 +-73.6169 -39.6335 47.381 +-75.7735 -40.0768 47.911 +-77.2483 -40.1355 47.9812 +-78.4956 -40.061 47.892 +-80.1407 -40.173 48.0259 +-81.0014 -39.879 47.6744 +-82.2595 -39.7714 47.5459 +-84.0834 -39.92 47.7235 +-85.5131 -39.8625 47.6548 +-86.5405 -39.6058 47.3478 +-88.6323 -39.819 47.6027 +-90.9011 -40.0843 47.9199 +-93.1838 -40.3273 48.2104 +-94.4793 -40.1228 47.9659 +-96.531 -40.2213 48.0836 +-98.5925 -40.2997 48.1774 +-101.003 -40.4942 48.4099 +-102.658 -40.3629 48.253 +-106.032 -40.8771 48.8677 +-106.928 -40.4121 48.3118 +-110.332 -40.8706 48.8599 +-111.667 -40.5356 48.4594 +-114.4 -40.6865 48.6398 +-116.795 -40.6873 48.6408 +-120.346 -41.056 49.0815 +-122.496 -40.9139 48.9116 +-114.583 -37.4593 44.7817 +-97.8163 -31.2909 37.4076 +-98.8673 -30.939 36.9868 +-98.4721 -30.1357 36.0265 +-97.9719 -29.312 35.0418 +-98.4578 -28.7889 34.4165 +-98.0234 -28.0017 33.4754 +-98.3088 -27.4262 32.7874 +-98.6781 -26.8747 32.1282 +-98.116 -26.0757 31.1729 +-98.3742 -25.5013 30.4863 +-87.7384 -22.1748 26.5094 +-67.4979 -16.6241 19.8738 +-61.5394 -14.7626 17.6483 +-49.1459 -11.4769 13.7204 +-37.9885 -8.6312 10.3184 +-35.5515 -7.85421 9.38953 +-33.95 -7.28837 8.71309 +-32.5261 -6.78079 8.10629 +-18.5021 -3.74296 4.47462 +-16.4484 -3.22652 3.85724 +-16.3958 -3.11608 3.72521 +-16.0531 -2.95342 3.53075 +-16.0926 -2.86343 3.42317 +-16.3241 -2.80643 3.35502 +-15.5872 -2.58641 3.09199 +-15.3307 -2.45247 2.93188 +-14.3911 -2.21676 2.65008 +-14.1284 -2.0928 2.50189 +-13.8634 -1.97195 2.35742 +-13.205 -1.80088 2.15291 +-14.0129 -1.82921 2.18677 +-14.1354 -1.76292 2.10753 +-14.0605 -1.67202 1.99886 +-15.166 -1.71578 2.05118 +-14.9915 -1.60962 1.92427 +-14.2227 -1.44533 1.72786 +-13.6484 -1.30874 1.56457 +-14.0618 -1.26799 1.51585 +-15.1691 -1.28133 1.5318 +-13.7964 -1.08687 1.29933 +-14.3074 -1.04591 1.25036 +-14.6195 -0.985879 1.1786 +-14.4332 -0.891684 1.06599 +-14.7437 -0.827613 0.989393 +-13.7575 -0.694697 0.830495 +-14.2652 -0.640018 0.765127 +-13.7743 -0.540537 0.6462 +-12.4829 -0.419741 0.501791 +-13.2873 -0.372223 0.444984 +-11.5929 -0.259746 0.31052 +-11.9959 -0.201545 0.240942 +-11.2983 -0.126533 0.151268 +-10.8996 -0.0610295 0.0729594 +12.3 0 -1.7053e-13 +12.2995 -0.0681236 0.0829469 +12.998 -0.143996 0.175329 +25.6912 -0.426977 0.519885 +32.78 -0.726514 0.884599 +36.8649 -1.02155 1.24383 +41.4431 -1.37848 1.67843 +37.5299 -1.45686 1.77386 +39.703 -1.76206 2.14547 +37.4841 -1.87233 2.27974 +19.8243 -1.10078 1.34031 +23.5909 -1.44169 1.7554 +19.8904 -1.32684 1.61555 +20.3682 -1.47287 1.79336 +20.5457 -1.6011 1.94949 +33.5108 -2.80006 3.40933 +38.6205 -3.44487 4.19445 +45.4947 -4.31531 5.25429 +47.9029 -4.81534 5.86312 +54.6402 -5.80325 7.066 +60.7626 -6.79999 8.27962 +92.8193 -10.9183 13.2941 +94.6289 -11.6742 14.2145 +94.5627 -12.2105 14.8675 +94.5869 -12.7602 15.5368 +94.6031 -13.3111 16.2075 +95.2934 -13.963 17.0013 +95.0978 -14.4903 17.6433 +94.8949 -15.0164 18.2839 +95.653 -15.7003 19.1166 +95.4335 -16.2295 19.7609 +95.2067 -16.7575 20.4038 +95.8378 -17.4415 21.2367 +95.5943 -17.9717 21.8822 +95.3436 -18.5005 22.5261 +95.8486 -19.1805 23.354 +96.4371 -19.8871 24.2145 +96.16 -20.4205 24.8639 +95.781 -20.9317 25.4863 +96.338 -21.6521 26.3634 +96.0366 -22.1848 27.0121 +96.4772 -22.8937 27.8752 +96.1588 -23.4271 28.5247 +96.7634 -24.1914 29.4553 +96.4271 -24.7264 30.1067 +96.915 -25.4781 31.022 +96.653 -26.0387 31.7046 +96.4747 -26.6237 32.4168 +96.105 -27.157 33.0662 +96.5469 -27.9251 34.0015 +96.1593 -28.4588 34.6512 +97.2084 -29.4274 35.8306 +96.3507 -29.8256 36.3155 +95.3105 -30.1599 36.7225 +95.0704 -30.7442 37.434 +95.4424 -31.5334 38.3949 +94.8286 -32.0012 38.9644 +94.9122 -32.7069 39.8236 +95.2461 -33.5083 40.7994 +94.5206 -33.9407 41.326 +95.003 -34.812 42.3869 +95.3823 -35.659 43.4181 +95.7456 -36.5128 44.4578 +94.1315 -36.6106 44.5768 +94.3878 -37.4332 45.5784 +92.6887 -37.4771 45.6319 +90.828 -37.436 45.5818 +89.4759 -37.5873 45.7661 +87.878 -37.6201 45.8059 +86.6981 -37.8178 46.0467 +85.028 -37.7869 46.009 +82.877 -37.5193 45.6832 +81.9534 -37.7903 46.0132 +80.3053 -37.7143 45.9206 +79.7837 -38.1576 46.4604 +77.6693 -37.8253 46.0558 +77.1463 -38.2541 46.5779 +74.2695 -37.4945 45.6531 +73.0517 -37.545 45.7145 +71.1438 -37.2215 45.3206 +70.9357 -37.7773 45.9974 +68.9688 -37.3856 45.5204 +68.6786 -37.8911 46.1359 +66.8817 -37.5551 45.7268 +65.9169 -37.6693 45.8658 +64.0694 -37.2611 45.3689 +63.6278 -37.6578 45.8519 +62.3097 -37.5282 45.6941 +61.8632 -37.916 46.1662 +59.4851 -37.1005 45.1733 +59.6091 -37.8325 46.0646 +57.7549 -37.3011 45.4175 +57.3093 -37.6652 45.8609 +56.1697 -37.5668 45.7411 +55.6511 -37.8765 46.1182 +53.9121 -37.341 45.4662 +53.3966 -37.6382 45.828 +52.347 -37.5522 45.7233 +51.2382 -37.4096 45.5497 +50.7868 -37.7402 45.9522 +49.3661 -37.3394 45.4642 +48.1511 -37.0727 45.1395 +47.6396 -37.338 45.4624 +46.6886 -37.2527 45.3587 +46.1746 -37.5099 45.6718 +45.1092 -37.311 45.4297 +44.1732 -37.2046 45.3001 +43.6005 -37.3969 45.5342 +43.0259 -37.5855 45.7639 +41.7525 -37.1507 45.2345 +41.2401 -37.3805 45.5143 +40.1582 -37.0845 45.1538 +40.206 -37.8317 46.0636 +39.1323 -37.5237 45.6886 +38.5604 -37.6858 45.8859 +37.611 -37.4697 45.6228 +37.0943 -37.6766 45.8747 +36.1047 -37.3935 45.5301 +35.5891 -37.5921 45.7719 +34.5634 -37.2409 45.3442 +34.5 -37.9256 46.178 +33.1401 -37.1761 45.2654 +32.6277 -37.3583 45.4872 +31.6833 -37.0356 45.0943 +31.2199 -37.2657 45.3744 +30.6601 -37.3809 45.5147 +30.2358 -37.6623 45.8574 +29.2706 -37.2604 45.368 +28.7571 -37.4211 45.5637 +27.8541 -37.0634 45.1281 +27.766 -37.7914 46.0146 +26.9136 -37.4818 45.6376 +26.3972 -37.6294 45.8173 +25.4801 -37.1921 45.2849 +24.9677 -37.3319 45.455 +24.1091 -36.941 44.9791 +23.6751 -37.1908 45.2832 +23.0896 -37.2024 45.2974 +22.6489 -37.4474 45.5957 +22.1331 -37.5714 45.7467 +21.5815 -37.6329 45.8216 +20.696 -37.0929 45.1641 +20.2503 -37.3262 45.4481 +19.4825 -36.9554 44.9966 +19.19 -37.4844 45.6407 +18.4633 -37.1655 45.2525 +18.2148 -37.8126 46.0404 +17.6658 -37.8512 46.0874 +16.9517 -37.5206 45.6848 +16.3817 -37.4907 45.6484 +15.8915 -37.6413 45.8318 +15.173 -37.2363 45.3386 +14.8782 -37.8732 46.1141 +14.1701 -37.4605 45.6116 +13.6095 -37.4138 45.5548 +13.0297 -37.3018 45.4185 +12.641 -37.7451 45.9582 +11.9023 -37.1295 45.2087 +11.5821 -37.8171 46.0458 +10.9341 -37.4429 45.5903 +10.4189 -37.5021 45.6623 +9.88635 -37.4957 45.6546 +9.40171 -37.6745 45.8722 +8.77988 -37.2857 45.3988 +8.3643 -37.7728 45.992 +7.7402 -37.3143 45.4337 +7.23904 -37.4188 45.5608 +6.71295 -37.3944 45.5311 +6.20899 -37.4933 45.6515 +5.69324 -37.5262 45.6917 +5.16834 -37.4931 45.6513 +4.58986 -37.0141 45.0682 +4.12261 -37.418 45.5599 +3.60797 -37.4394 45.586 +3.05119 -36.9509 44.9912 +2.58227 -37.5371 45.7049 +2.06256 -37.4865 45.6434 +1.52612 -36.989 45.0375 +1.02097 -37.1229 45.2006 +0.50963 -37.0637 45.1285 +9.76996e-15 -37.6998 45.903 +-0.517484 -37.6349 45.824 +-1.03493 -37.6306 45.8188 +-1.54706 -37.4965 45.6555 +-2.06605 -37.5499 45.7206 +-2.58663 -37.6005 45.7821 +-3.06689 -37.1411 45.2227 +-3.62018 -37.5661 45.7403 +-4.13656 -37.5446 45.7141 +-4.62909 -37.3305 45.4533 +-5.2032 -37.746 45.9593 +-5.72199 -37.7158 45.9225 +-6.24035 -37.6827 45.8821 +-6.76955 -37.7097 45.9151 +-7.31216 -37.7968 46.0211 +-7.72715 -37.2514 45.357 +-8.2808 -37.3958 45.5328 +-8.94247 -37.9762 46.2396 +-9.44864 -37.8625 46.1011 +-9.85334 -37.3706 45.5022 +-10.3494 -37.252 45.3578 +-10.8795 -37.2557 45.3623 +-11.5439 -37.6924 45.894 +-11.9023 -37.1295 45.2087 +-12.5994 -37.6209 45.807 +-13.0946 -37.4877 45.6448 +-13.632 -37.4756 45.6301 +-14.1468 -37.3987 45.5364 +-14.8298 -37.75 45.9641 +-15.3733 -37.7279 45.9372 +-15.8915 -37.6413 45.8318 +-16.4352 -37.613 45.7974 +-16.9517 -37.5206 45.6848 +-17.4669 -37.4252 45.5687 +-18.244 -37.8733 46.1143 +-18.8543 -37.9525 46.2106 +-19.3754 -37.8465 46.0817 +-19.9267 -37.798 46.0226 +-20.7061 -38.1663 46.471 +-20.9297 -37.5117 45.674 +-21.7867 -37.9907 46.2572 +-22.2382 -37.7497 45.9638 +-23.1506 -38.2769 46.6057 +-23.7126 -38.2063 46.5197 +-24.2745 -38.1323 46.4297 +-25.0275 -38.3482 46.6926 +-25.5929 -38.2666 46.5932 +-26.1579 -38.1816 46.4896 +-27.0073 -38.4991 46.8762 +-27.2039 -37.8861 46.1298 +-28.1464 -38.3091 46.645 +-28.7151 -38.2091 46.5231 +-29.2394 -38.0486 46.3277 +-30.0737 -38.2828 46.6129 +-30.5536 -38.0582 46.3394 +-31.1219 -37.9438 46.2001 +-32.018 -38.2183 46.5344 +-32.5422 -38.0395 46.3167 +-33.5488 -38.413 46.7714 +-34.0265 -38.1705 46.4761 +-35 -38.4752 46.8472 +-35.5784 -38.3346 46.6759 +-36.6707 -38.7345 47.1629 +-37.1496 -38.4758 46.8479 +-37.6773 -38.2686 46.5956 +-38.2557 -38.112 46.4049 +-39.3229 -38.4309 46.7932 +-39.7947 -38.1588 46.4619 +-40.8211 -38.4104 46.7683 +-41.3477 -38.1829 46.4912 +-42.3873 -38.4203 46.7803 +-42.8559 -38.1324 46.4298 +-43.9663 -38.4071 46.7643 +-44.4333 -38.1111 46.4038 +-45.5574 -38.3705 46.7196 +-46.0832 -38.1166 46.4106 +-47.8985 -38.9102 47.3768 +-47.7469 -38.0971 46.3868 +-49.5904 -38.867 47.3242 +-50.123 -38.5909 46.988 +-51.2302 -38.7494 47.1809 +-51.761 -38.4642 46.8337 +-53.4688 -39.0382 47.5326 +-53.9373 -38.6931 47.1124 +-55.0694 -38.8173 47.2637 +-55.5335 -38.4641 46.8336 +-57.2879 -38.9905 47.4746 +-57.8906 -38.7178 47.1425 +-59.046 -38.8066 47.2507 +-60.4885 -39.0666 47.5672 +-61.5183 -39.0442 47.54 +-62.1954 -38.791 47.2316 +-63.5896 -38.9741 47.4546 +-64.5583 -38.8826 47.3432 +-66.5532 -39.3892 47.9601 +-67.5346 -39.2764 47.8227 +-68.9638 -39.4104 47.9859 +-70.6265 -39.6578 48.2871 +-71.8484 -39.6399 48.2652 +-72.6188 -39.3641 47.9295 +-74.7659 -39.8171 48.4811 +-75.542 -39.5226 48.1225 +-77.9477 -40.0613 48.7784 +-79.1999 -39.9837 48.6838 +-80.4559 -39.8951 48.576 +-81.3187 -39.6025 48.2198 +-82.8984 -39.6472 48.2742 +-84.0834 -39.4886 48.0811 +-86.4839 -39.8794 48.5569 +-87.0289 -39.3989 47.9718 +-89.6971 -39.8619 48.5356 +-91.9725 -40.1185 48.848 +-93.6812 -40.1045 48.8309 +-95.9803 -40.3197 49.093 +-98.0406 -40.4088 49.2015 +-99.7732 -40.3416 49.1197 +-101.342 -40.1911 48.9365 +-103.511 -40.2584 49.0183 +-106.032 -40.4354 49.2338 +-108.134 -40.4264 49.2229 +-110.851 -40.6193 49.4578 +-113.407 -40.7226 49.5836 +-115.362 -40.5853 49.4164 +-117.586 -40.5202 49.3371 +-121.405 -40.9698 49.8846 +-123.827 -40.9113 49.8133 +-98.0107 -31.6951 38.5918 +-97.8163 -30.9528 37.6879 +-98.8673 -30.6046 37.264 +-98.4721 -29.81 36.2964 +-98.7875 -29.2366 35.5983 +-98.3668 -28.4515 34.6423 +-98.0234 -27.6991 33.7262 +-98.4005 -27.1551 33.0639 +-98.5861 -26.5595 32.3387 +-98.8551 -25.9882 31.643 +-98.2815 -25.2019 30.6857 +-98.3451 -24.5869 29.9368 +-95.8787 -23.3589 28.4416 +-68.2834 -16.2034 19.7291 +-59.2006 -13.6756 16.6513 +-42.7017 -9.59726 11.6856 +-36.8752 -8.05862 9.81212 +-34.519 -7.33045 8.92551 +-33.287 -6.86441 8.35806 +-29.4699 -5.89729 7.18051 +-20.3693 -3.95246 4.81249 +-16.3958 -3.08241 3.75312 +-15.6686 -2.85153 3.47201 +-15.7072 -2.76464 3.36621 +-15.0684 -2.56256 3.12015 +-15.1999 -2.49489 3.03777 +-15.0396 -2.3799 2.89775 +-14.78 -2.25207 2.7421 +-14.5181 -2.12729 2.59017 +-13.0824 -1.84075 2.24128 +-13.3028 -1.79461 2.18511 +-14.3069 -1.8474 2.24938 +-13.3501 -1.64699 2.00536 +-14.1589 -1.66551 2.02792 +-14.0828 -1.57601 1.91894 +-14.7943 -1.57128 1.91317 +-13.9264 -1.39993 1.70454 +-14.3407 -1.36026 1.65625 +-14.656 -1.30728 1.59174 +-12.8888 -1.07694 1.31128 +-14.5904 -1.13701 1.38442 +-14.6055 -1.05616 1.28597 +-15.7134 -1.0482 1.27628 +-14.1346 -0.863801 1.05176 +-14.2456 -0.791016 0.963136 +-14.3556 -0.717064 0.873092 +-14.8637 -0.659664 0.803202 +-12.6763 -0.492075 0.599147 +-12.8823 -0.428492 0.521729 +-12.2883 -0.340515 0.414609 +-12.0926 -0.268014 0.326332 +-12.0959 -0.201028 0.24477 +-11.8982 -0.131812 0.160494 +-11.1996 -0.0620315 0.0755291 +11.7 -1.77636e-15 -1.7053e-13 +13.5995 -0.0744934 0.09239 +25.8961 -0.283721 0.351883 +29.4899 -0.484705 0.601153 +33.7794 -0.740409 0.918287 +38.1636 -1.04587 1.29714 +40.9438 -1.34685 1.67042 +39.626 -1.52126 1.88673 +40.0023 -1.75576 2.17757 +31.9014 -1.5759 1.9545 +18.9277 -1.03941 1.28912 +18.9125 -1.14305 1.41765 +18.3987 -1.21379 1.5054 +21.2624 -1.52058 1.88589 +21.836 -1.68289 2.08719 +35.3946 -2.92485 3.62752 +40.9971 -3.61654 4.48538 +45.9892 -4.31412 5.35056 +51.4586 -5.11572 6.34474 +55.4293 -5.82214 7.22087 +64.2095 -7.10651 8.8138 +93.8025 -10.9124 13.534 +94.9233 -11.5814 14.3638 +94.7587 -12.1009 15.0081 +94.7825 -12.6456 15.6836 +94.6031 -13.1643 16.3269 +95.3908 -13.8232 17.1441 +95.0978 -14.3305 17.7733 +94.8949 -14.8509 18.4187 +95.653 -15.5272 19.2575 +95.4335 -16.0505 19.9066 +95.2067 -16.5727 20.5542 +95.8378 -17.2492 21.3932 +95.5943 -17.7735 22.0435 +96.1086 -18.4433 22.8742 +95.8486 -18.969 23.5262 +95.5812 -19.4933 24.1764 +96.0652 -20.1754 25.0225 +95.8756 -20.7213 25.6994 +96.338 -21.4133 26.5577 +95.9426 -21.9187 27.1845 +96.3836 -22.6192 28.0533 +96.0654 -23.1463 28.7071 +96.8565 -23.9477 29.7009 +96.4271 -24.4538 30.3286 +96.0835 -24.981 30.9825 +96.653 -25.7516 31.9383 +96.383 -26.305 32.6246 +96.0136 -26.832 33.2782 +96.4559 -27.5911 34.2197 +96.0686 -28.1184 34.8737 +96.9377 -29.0219 35.9942 +96.5305 -29.5518 36.6514 +95.4 -29.8553 37.0278 +94.9813 -30.3767 37.6745 +95.3537 -31.1567 38.6419 +94.7403 -31.6188 39.215 +95.088 -32.4061 40.1915 +95.1586 -33.1083 41.0624 +94.5206 -33.5665 41.6306 +94.9164 -34.3967 42.6603 +94.8654 -35.0746 43.5011 +94.6313 -35.6899 44.2641 +94.1315 -36.2068 44.9053 +94.6422 -37.1202 46.0381 +93.7008 -37.4686 46.4702 +91.8344 -37.4334 46.4266 +90.2264 -37.4847 46.4901 +89.3703 -37.837 46.9271 +86.4508 -37.2941 46.2538 +85.3556 -37.5142 46.5268 +83.284 -37.2878 46.2459 +82.3579 -37.558 46.5811 +81.0288 -37.6344 46.6758 +80.5025 -38.0768 47.2245 +78.3833 -37.7521 46.8217 +77.1463 -37.8322 46.9212 +75.2086 -37.55 46.5711 +74.4506 -37.842 46.9333 +72.5327 -37.5297 46.546 +70.8591 -37.3204 46.2864 +69.6532 -37.3402 46.3109 +69.1314 -37.7203 46.7823 +67.7056 -37.5985 46.6312 +66.5858 -37.6319 46.6727 +65.3228 -37.5711 46.5973 +64.2129 -37.585 46.6146 +63.035 -37.5464 46.5667 +62.5106 -37.8903 46.9932 +60.6976 -37.4393 46.4339 +60.2455 -37.8148 46.8995 +58.5259 -37.3822 46.3631 +57.9345 -37.6562 46.7029 +56.1697 -37.1526 46.0782 +55.6511 -37.4589 46.4581 +54.5201 -37.3458 46.3178 +54.0658 -37.6896 46.7443 +52.2807 -37.0911 46.002 +52.3535 -37.8024 46.8842 +50.592 -37.1809 46.1133 +50.1374 -37.5047 46.5149 +48.7872 -37.1482 46.0728 +48.2689 -37.4141 46.4025 +47.2489 -37.2841 46.2413 +46.6671 -37.4919 46.4991 +45.6571 -37.3478 46.3203 +45.1361 -37.5965 46.6288 +43.7195 -37.0854 45.9949 +43.5549 -37.6282 46.6681 +42.3332 -37.252 46.2016 +41.7564 -37.4311 46.4237 +40.7246 -37.1929 46.1282 +40.7652 -37.9348 47.0484 +39.1323 -37.1099 46.0253 +38.5604 -37.2702 46.2241 +38.0408 -37.48 46.4843 +37.5183 -37.6869 46.7409 +36.5749 -37.4628 46.463 +36.0012 -37.6079 46.643 +35.0201 -37.317 46.2821 +34.55 -37.5617 46.5857 +33.5833 -37.2579 46.2088 +33.064 -37.4404 46.4352 +32.4945 -37.5649 46.5896 +31.6893 -37.409 46.3962 +31.1219 -37.5254 46.5406 +30.6444 -37.7504 46.8196 +29.7168 -37.4112 46.399 +29.2394 -37.629 46.6692 +28.2846 -37.2212 46.1634 +27.8083 -37.4316 46.4243 +26.9136 -37.0685 45.9739 +26.7226 -37.6732 46.7239 +25.9187 -37.4152 46.4039 +25.3975 -37.5557 46.5782 +24.6065 -37.2875 46.2456 +24.0497 -37.3626 46.3388 +23.4194 -37.3178 46.2831 +22.8997 -37.4446 46.4404 +22.1331 -37.1571 46.0838 +21.8551 -37.6898 46.7445 +21.0632 -37.3347 46.3041 +20.5108 -37.3893 46.3719 +19.7681 -37.0836 45.9927 +19.499 -37.668 46.7175 +18.6438 -37.1149 46.0315 +18.4487 -37.8758 46.9753 +17.6658 -37.4338 46.4271 +17.2273 -37.7102 46.7698 +16.5688 -37.5007 46.51 +16.1244 -37.7719 46.8463 +15.4234 -37.4334 46.4265 +14.8782 -37.4555 46.454 +14.1468 -36.9863 45.872 +13.812 -37.5516 46.5732 +13.2245 -37.442 46.4373 +12.7866 -37.7586 46.8299 +12.0817 -37.2736 46.2284 +11.7348 -37.893 46.9965 +11.1164 -37.6472 46.6917 +10.5752 -37.6449 46.6888 +10.0514 -37.7013 46.7588 +9.52686 -37.7549 46.8253 +8.86856 -37.247 46.1954 +8.48956 -37.9158 47.0248 +7.83157 -37.3385 46.3088 +7.33653 -37.5046 46.5148 +6.80351 -37.481 46.4855 +6.27171 -37.4544 46.4525 +5.68365 -37.0499 45.9509 +5.23806 -37.5799 46.6082 +4.63693 -36.9814 45.8659 +4.18539 -37.5689 46.5946 +3.60797 -37.0266 45.922 +3.14539 -37.6717 46.7221 +2.57354 -36.9977 45.8862 +2.09048 -37.575 46.6021 +1.54444 -37.0203 45.9142 +1.03144 -37.0901 46.0008 +0.516611 -37.1571 46.0838 +7.99361e-15 -37.2841 46.2413 +-0.517484 -37.2198 46.1617 +-1.04714 -37.655 46.7013 +-1.54968 -37.1458 46.0698 +-2.10095 -37.7632 46.8355 +-2.59099 -37.2486 46.1973 +-3.15586 -37.7971 46.8776 +-3.60797 -37.0266 45.922 +-4.19236 -37.6315 46.6723 +-4.63693 -36.9814 45.8659 +-5.29035 -37.955 47.0735 +-5.72199 -37.2999 46.2609 +-6.33442 -37.8289 46.917 +-6.75823 -37.2315 46.1761 +-7.31216 -37.38 46.3603 +-7.83157 -37.3385 46.3088 +-8.51739 -38.04 47.1789 +-8.94247 -37.5574 46.5803 +-9.46429 -37.5069 46.5177 +-9.86985 -37.0204 45.9143 +-10.5057 -37.3976 46.3821 +-11.0252 -37.3386 46.309 +-11.5439 -37.2768 46.2323 +-12.1016 -37.3352 46.3047 +-12.7658 -37.6973 46.7538 +-13.2894 -37.6259 46.6653 +-13.812 -37.5516 46.5732 +-14.1701 -37.0474 45.9477 +-14.9024 -37.5164 46.5295 +-15.3984 -37.3726 46.3512 +-16.1244 -37.7719 46.8463 +-16.6757 -37.7426 46.81 +-17.1998 -37.6498 46.6949 +-17.751 -37.6143 46.6509 +-18.5364 -38.0559 47.1986 +-18.8543 -37.5339 46.5512 +-19.5917 -37.8471 46.9396 +-20.1806 -37.8574 46.9524 +-20.9991 -38.2795 47.4759 +-21.2635 -37.6897 46.7444 +-22.0945 -38.1026 47.2565 +-22.6584 -38.039 47.1776 +-23.1864 -37.9134 47.0219 +-24.0425 -38.3106 47.5144 +-24.4993 -38.061 47.2049 +-25.0275 -37.9254 47.0367 +-25.9445 -38.3646 47.5815 +-26.5567 -38.3362 47.5462 +-27.0073 -38.0746 47.2217 +-27.5356 -37.9252 47.0364 +-28.5267 -38.3987 47.6237 +-29.0595 -38.241 47.4281 +-29.4585 -37.9111 47.019 +-30.0291 -37.8045 46.8867 +-30.9168 -38.0859 47.2358 +-31.5374 -38.0265 47.1621 +-32.4874 -38.3511 47.5647 +-33.0194 -38.1717 47.3421 +-33.9367 -38.4286 47.6608 +-34.4204 -38.1866 47.3607 +-35.5 -38.5945 47.8666 +-35.8322 -38.1823 47.3553 +-37.0827 -38.7378 48.0443 +-37.5676 -38.4797 47.7241 +-38.1542 -38.3257 47.5332 +-38.793 -38.2211 47.4035 +-39.8131 -38.4809 47.7257 +-40.4018 -38.3137 47.5183 +-41.4362 -38.5593 47.8229 +-41.9141 -38.2791 47.4754 +-42.9035 -38.4595 47.6991 +-43.4366 -38.2229 47.4058 +-45.0244 -38.8976 48.2425 +-45.0281 -38.1954 47.3717 +-46.9416 -39.1003 48.4939 +-46.6311 -38.1445 47.3085 +-48.4526 -38.9263 48.2781 +-48.4316 -38.2174 47.3988 +-50.1568 -38.8774 48.2175 +-50.6954 -38.6012 47.8749 +-51.8087 -38.7548 48.0654 +-52.3455 -38.4696 47.7116 +-53.9937 -38.9867 48.353 +-54.5999 -38.7365 48.0427 +-56.3408 -39.2756 48.7113 +-56.8171 -38.9192 48.2692 +-57.9699 -39.0197 48.3939 +-58.9232 -38.9738 48.337 +-60.1574 -39.1011 48.4948 +-60.909 -38.9044 48.2509 +-62.2961 -39.1019 48.4958 +-63.2653 -39.0232 48.3982 +-65.4599 -39.678 49.2103 +-66.0091 -39.3179 48.7638 +-67.2114 -39.3401 48.7913 +-68.4193 -39.3521 48.8062 +-70.0786 -39.6058 49.1209 +-70.8512 -39.3453 48.7977 +-72.5276 -39.5734 49.0806 +-73.7594 -39.5415 49.0411 +-75.4554 -39.7412 49.2887 +-76.6995 -39.6857 49.2199 +-78.6472 -39.975 49.5788 +-79.5912 -39.7381 49.2849 +-81.4015 -39.9189 49.5092 +-82.3501 -39.6626 49.1913 +-84.0165 -39.7388 49.2858 +-84.9677 -39.4639 48.9448 +-88.1829 -40.2144 49.8757 +-89.1456 -39.9121 49.5008 +-91.5812 -40.2503 49.9202 +-92.3845 -39.8538 49.4285 +-95.588 -40.4695 50.192 +-96.7308 -40.1869 49.8415 +-99.2147 -40.4418 50.1577 +-100.448 -40.1666 49.8164 +-103.038 -40.4132 50.1222 +-104.704 -40.2736 49.949 +-107.317 -40.4744 50.1981 +-109.168 -40.3629 50.0598 +-112.583 -40.7991 50.6008 +-113.843 -40.4281 50.1407 +-117.549 -40.8985 50.7241 +-118.992 -40.5526 50.2951 +-122.73 -40.9601 50.8004 +-124.359 -40.6341 50.3962 +-98.0998 -31.3741 38.9115 +-98.9797 -30.9756 38.4173 +-98.8673 -30.2671 37.5386 +-98.3818 -29.4542 36.5304 +-98.0625 -28.702 35.5975 +-98.4578 -28.1638 34.9299 +-98.7543 -27.5979 34.2281 +-98.3088 -26.8307 33.2765 +-98.5861 -26.2666 32.577 +-98.7627 -25.6776 31.8465 +-99.0232 -25.1121 31.1452 +-98.2521 -24.2927 30.1289 +-97.6525 -23.5287 29.1813 +-88.1409 -20.6848 25.6542 +-75.6453 -17.2816 21.4334 +-47.9805 -10.6647 13.2269 +-41.981 -9.07321 11.253 +-34.8983 -7.32927 9.09008 +-34.8087 -7.09904 8.80453 +-31.1865 -6.17201 7.65479 +-29.7411 -5.70732 7.07847 +-16.3958 -3.04842 3.78078 +-16.0531 -2.88929 3.58342 +-15.3217 -2.66706 3.3078 +-14.8753 -2.5018 3.10285 +-15.2967 -2.48309 3.07964 +-15.1366 -2.36884 2.93794 +-13.7104 -2.06605 2.56241 +-14.5181 -2.10383 2.60926 +-13.5705 -1.88837 2.34204 +-14.6722 -1.95753 2.42781 +-13.8169 -1.76446 2.18836 +-14.9207 -1.82045 2.25781 +-13.2739 -1.5442 1.91518 +-14.5752 -1.61313 2.00067 +-13.9066 -1.46071 1.81164 +-14.3215 -1.42376 1.76581 +-15.033 -1.4102 1.749 +-14.0618 -1.24045 1.53847 +-13.7811 -1.1388 1.41239 +-14.2927 -1.10152 1.36616 +-13.5126 -0.966348 1.19851 +-12.8293 -0.846373 1.04971 +-13.3383 -0.806145 0.999817 +-13.4486 -0.738526 0.915952 +-13.5581 -0.669757 0.830662 +-13.6666 -0.599849 0.743959 +-12.0774 -0.463657 0.575048 +-13.1819 -0.433622 0.537797 +-12.588 -0.344974 0.427852 +-12.2925 -0.269439 0.334171 +-11.9959 -0.197168 0.244536 +-12.3981 -0.135836 0.168469 +-12.0995 -0.0662771 0.0821998 +13.2 0 -2.27374e-13 +12.8995 -0.0698653 0.0882683 +28.7956 -0.311946 0.394114 +31.3892 -0.510129 0.6445 +35.6783 -0.773246 0.976925 +39.2626 -1.06391 1.34414 +41.2434 -1.34147 1.69482 +40.2248 -1.52691 1.9291 +41.0996 -1.78367 2.25349 +26.518 -1.29526 1.63644 +21.8167 -1.1846 1.49663 +15.9263 -0.951751 1.20245 +17.2052 -1.12231 1.41793 +20.3682 -1.44027 1.81965 +21.5383 -1.64129 2.07361 +36.386 -2.973 3.75611 +39.2146 -3.42044 4.3214 +45.0002 -4.17393 5.27337 +51.8536 -5.0971 6.43971 +61.0511 -6.34058 8.01073 +73.1712 -8.0074 10.1166 +93.9992 -10.8124 13.6604 +95.0215 -11.4632 14.4827 +94.9547 -11.9898 15.148 +94.7825 -12.5035 15.7971 +95.4817 -13.1373 16.5978 +95.2934 -13.6539 17.2505 +95.195 -14.184 17.9202 +94.992 -14.6991 18.5709 +95.653 -15.3528 19.3968 +95.4335 -15.8703 20.0506 +95.2067 -16.3866 20.7029 +95.8378 -17.0555 21.548 +95.5943 -17.5739 22.203 +96.2043 -18.2543 23.0626 +95.8486 -18.7559 23.6964 +95.5812 -19.2743 24.3513 +96.0652 -19.9488 25.2035 +95.781 -20.4684 25.8599 +96.2437 -21.1521 26.7236 +96.0366 -21.6937 27.408 +96.4772 -22.3869 28.2838 +96.1588 -22.9086 28.9428 +96.8565 -23.6787 29.9158 +96.4271 -24.1791 30.548 +96.1759 -24.7241 31.2366 +95.8246 -25.2441 31.8936 +96.383 -26.0096 32.8607 +96.0136 -26.5306 33.5189 +96.5469 -27.307 34.4998 +96.0686 -27.8026 35.126 +96.3058 -28.5089 36.0183 +96.6204 -29.247 36.9509 +95.6685 -29.603 37.4006 +94.9813 -30.0355 37.9471 +95.1763 -30.7494 38.849 +94.8286 -31.2928 39.5355 +95.0001 -32.0125 40.4449 +95.0712 -32.7063 41.3214 +94.6077 -33.22 41.9703 +94.7432 -33.9483 42.8906 +94.4346 -34.5232 43.6168 +94.8027 -35.3529 44.6651 +94.8989 -36.0921 45.5989 +94.3029 -36.5717 46.205 +94.3755 -37.3145 47.1434 +93.8472 -37.8242 47.7874 +91.0603 -37.4062 47.2592 +90.5309 -37.898 47.8805 +88.0991 -37.5783 47.4766 +87.3216 -37.9472 47.9427 +85.1565 -37.6979 47.6277 +83.976 -37.8658 47.8399 +81.8326 -37.5809 47.4799 +80.9816 -37.8732 47.8492 +79.256 -37.7437 47.6856 +78.7223 -38.1715 48.2261 +76.7739 -37.9009 47.8843 +75.8494 -38.12 48.1611 +73.4587 -37.5819 47.4812 +72.6976 -37.8586 47.8308 +70.3376 -37.2835 47.1043 +69.5842 -37.5409 47.4294 +68.829 -37.793 47.7479 +68.0721 -38.0398 48.0597 +66.06 -37.5684 47.4642 +65.3099 -37.7978 47.754 +63.6879 -37.5092 47.3894 +63.158 -37.8527 47.8234 +61.3395 -37.4103 47.2645 +60.8112 -37.7411 47.6824 +59.0867 -37.3165 47.1459 +59.1154 -37.9922 47.9996 +57.4088 -37.5456 47.4354 +56.9469 -37.9005 47.8837 +55.7362 -37.7499 47.6935 +54.668 -37.6814 47.6069 +53.4734 -37.5112 47.3919 +52.944 -37.7994 47.756 +51.2415 -37.2352 47.0432 +51.2302 -37.8916 47.8725 +49.5505 -37.3057 47.1323 +49.087 -37.6208 47.5304 +47.7469 -37.2538 47.0667 +47.2212 -37.511 47.3916 +45.6571 -36.9283 46.6554 +45.6778 -37.6202 47.5296 +44.1359 -37.0181 46.7689 +43.8488 -37.4566 47.3229 +42.7978 -37.2379 47.0466 +42.7314 -37.8749 47.8514 +41.291 -37.2866 47.1081 +40.7092 -37.4573 47.3238 +40.181 -37.6764 47.6006 +39.1595 -37.4241 47.2819 +38.5781 -37.5824 47.4819 +38.0482 -37.79 47.7441 +36.9929 -37.4654 47.334 +36.4647 -37.6643 47.5853 +35.4769 -37.3791 47.225 +34.95 -37.5698 47.466 +34.0265 -37.3256 47.1573 +33.5003 -37.5084 47.3883 +32.5422 -37.1975 46.9956 +32.4874 -37.9204 47.9088 +31.0757 -37.0489 46.8078 +30.9622 -37.7134 47.6474 +30.1184 -37.491 47.3663 +29.5024 -37.541 47.4296 +28.672 -37.3073 47.1343 +28.5267 -37.9674 47.9683 +27.66 -37.6686 47.5908 +27.17 -37.8737 47.8499 +26.2377 -37.4503 47.3149 +25.7492 -37.6481 47.5648 +24.8744 -37.2701 47.0872 +24.3869 -37.4609 47.3284 +23.8959 -37.6493 47.5663 +23.2939 -37.6614 47.5816 +22.7635 -37.7861 47.7392 +22.2313 -37.908 47.8931 +21.4638 -37.6174 47.526 +20.934 -37.7322 47.6711 +20.0537 -37.1968 46.9946 +19.7462 -37.7171 47.652 +19.0046 -37.4083 47.2619 +18.4487 -37.4504 47.3151 +17.6942 -37.0729 46.8381 +17.31 -37.4656 47.3342 +16.7024 -37.3785 47.2242 +16.3315 -37.8272 47.7911 +15.6237 -37.4936 47.3697 +15.0959 -37.5768 47.4748 +14.5436 -37.5968 47.5 +13.947 -37.4927 47.3685 +13.4193 -37.5669 47.4622 +12.9737 -37.8809 47.859 +12.4206 -37.8889 47.8691 +11.7538 -37.5283 47.4134 +11.2622 -37.7126 47.6463 +10.7141 -37.711 47.6443 +10.1999 -37.8288 47.7932 +9.66765 -37.8826 47.8611 +9.00159 -37.3811 47.2275 +8.6009 -37.9816 47.9861 +7.9621 -37.5344 47.4212 +7.43403 -37.5761 47.4739 +6.89408 -37.5533 47.445 +6.36578 -37.5892 47.4904 +5.84659 -37.684 47.6102 +5.38622 -38.2088 48.2733 +4.786 -37.7416 47.683 +4.24119 -37.6423 47.5575 +3.71786 -37.7257 47.6629 +3.18203 -37.6825 47.6083 +2.65206 -37.6982 47.6282 +2.11491 -37.5871 47.4878 +1.57062 -37.2249 47.0302 +1.06634 -37.9146 47.9015 +0.525337 -37.3604 47.2013 +8.88178e-15 -37.9204 47.9088 +-0.524465 -37.2983 47.1229 +-1.0646 -37.8525 47.8231 +-1.57585 -37.349 47.187 +-2.12538 -37.7732 47.7229 +-2.62589 -37.3262 47.1582 +-3.15062 -37.3106 47.1384 +-3.67512 -37.2921 47.1151 +-4.24817 -37.7042 47.6357 +-4.76247 -37.556 47.4485 +-5.29907 -37.5906 47.4922 +-5.89451 -37.9929 48.0005 +-6.41805 -37.8978 47.8803 +-6.87144 -37.4299 47.2892 +-7.49496 -37.8841 47.863 +-7.9621 -37.5344 47.4212 +-8.64265 -38.1659 48.219 +-9.03116 -37.5039 47.3826 +-9.65201 -37.8213 47.7837 +-10.1504 -37.6452 47.5612 +-10.662 -37.5276 47.4126 +-11.2075 -37.5295 47.415 +-11.7348 -37.4674 47.3365 +-12.2412 -37.3416 47.1776 +-12.7866 -37.3346 47.1687 +-13.311 -37.2639 47.0794 +-14.0145 -37.6742 47.5978 +-14.3335 -37.0537 46.8138 +-15.2895 -38.0586 48.0835 +-15.6488 -37.5537 47.4456 +-16.3574 -37.8872 47.8669 +-16.8895 -37.7971 47.7531 +-17.4754 -37.8235 47.7865 +-18.0066 -37.7275 47.6651 +-18.8287 -38.222 48.2899 +-19.0647 -37.5267 47.4115 +-19.9934 -38.1893 48.2487 +-20.1488 -37.3733 47.2177 +-21.0643 -37.967 47.9677 +-21.5305 -37.7344 47.6739 +-22.3681 -38.1412 48.1879 +-22.9736 -38.1349 48.1799 +-23.7956 -38.4725 48.6064 +-24.3357 -38.3422 48.4418 +-25.1736 -38.6693 48.8551 +-25.3719 -38.0154 48.029 +-26.2571 -38.3907 48.5031 +-26.8358 -38.304 48.3935 +-27.414 -38.2139 48.2797 +-27.9089 -38.0075 48.0189 +-28.9071 -38.4737 48.6079 +-29.3178 -38.1476 48.1959 +-30.423 -38.7125 48.9096 +-30.8769 -38.4352 48.5592 +-31.4161 -38.2665 48.3461 +-31.953 -38.0948 48.1292 +-32.9569 -38.4683 48.6011 +-33.4488 -38.2338 48.3049 +-34.7608 -38.9197 49.1714 +-35.3068 -38.73 48.9317 +-36.2 -38.9135 49.1636 +-36.6443 -38.609 48.7789 +-37.1857 -38.4091 48.5263 +-37.6721 -38.1533 48.2032 +-38.7901 -38.5268 48.675 +-39.3303 -38.3153 48.4078 +-40.3033 -38.5172 48.6628 +-40.8985 -38.3492 48.4506 +-41.8835 -38.5378 48.6889 +-42.4238 -38.3096 48.4005 +-43.4197 -38.485 48.6222 +-43.9011 -38.1978 48.2594 +-45.0244 -38.4607 48.5916 +-45.6229 -38.2653 48.3446 +-46.8814 -38.6116 48.7821 +-47.9704 -38.7993 49.0193 +-49.0067 -38.9293 49.1836 +-49.5522 -38.6624 48.8463 +-51.2896 -39.309 49.6632 +-51.2679 -38.5986 48.7658 +-52.9657 -39.1753 49.4944 +-53.4496 -38.8398 49.0704 +-55.1746 -39.3919 49.768 +-55.7263 -39.0916 49.3886 +-56.8761 -39.2034 49.5298 +-57.4252 -38.8939 49.1388 +-59.0611 -39.3076 49.6615 +-59.405 -38.8512 49.0848 +-60.4353 -38.8405 49.0713 +-61.5398 -38.8658 49.1033 +-63.3568 -39.321 49.6784 +-63.9072 -38.9764 49.243 +-65.8915 -39.491 49.8932 +-66.6619 -39.2608 49.6023 +-68.9667 -39.9141 50.4277 +-69.5253 -39.5391 49.9539 +-71.4162 -39.9085 50.4207 +-71.9746 -39.5202 49.9301 +-74.3389 -40.1061 50.6703 +-74.9 -39.7019 50.1597 +-77.2173 -40.2123 50.8045 +-77.7798 -39.7926 50.2742 +-79.1135 -39.7604 50.2335 +-80.2173 -39.6009 50.032 +-82.4259 -39.9673 50.495 +-83.7781 -39.8972 50.4064 +-85.1345 -39.8155 50.3031 +-86.4146 -39.6851 50.1384 +-88.911 -40.0911 50.6513 +-89.8784 -39.7882 50.2687 +-93.2195 -40.5102 51.1809 +-93.7856 -40.0038 50.5411 +-96.9145 -40.5703 51.2567 +-98.1484 -40.3178 50.9378 +-100.892 -40.6636 51.3747 +-102.303 -40.449 51.1036 +-104.564 -40.5512 51.2327 +-106.154 -40.3725 51.0069 +-109.117 -40.691 51.4093 +-110.978 -40.571 51.2577 +-113.449 -40.6511 51.3589 +-115.844 -40.6769 51.3915 +-118.773 -40.8603 51.6232 +-120.749 -40.6894 51.4072 +-124.319 -41.0245 51.8306 +-98.5469 -31.8384 40.2248 +-99.3472 -31.4161 39.6913 +-98.3533 -30.4338 38.4502 +-98.8673 -29.9272 37.8102 +-98.3818 -29.1234 36.7947 +-98.8782 -28.6157 36.1533 +-98.3668 -27.8217 35.1501 +-98.8456 -27.3131 34.5076 +-98.3088 -26.5293 33.5173 +-98.5861 -25.9716 32.8127 +-98.8551 -25.4129 32.1068 +-98.8378 -24.7836 31.3118 +-98.5312 -24.0881 30.4331 +-98.1193 -23.3756 29.5329 +-97.6949 -22.6694 28.6407 +-95.5667 -21.5875 27.2738 +-60.1405 -13.2174 16.699 +-50.8689 -10.8707 13.7341 +-38.7864 -8.05438 10.176 +-35.9499 -7.24943 9.15898 +-32.6171 -6.3826 8.06382 +-31.9406 -6.06056 7.65695 +-22.2446 -4.08942 5.16659 +-16.5337 -2.94237 3.71741 +-15.8035 -2.72003 3.43651 +-15.9378 -2.6504 3.34853 +-16.0713 -2.57952 3.25898 +-14.4574 -2.23714 2.82642 +-15.5579 -2.31813 2.92874 +-14.1284 -2.02436 2.55759 +-15.1326 -2.08209 2.63052 +-14.4766 -1.90973 2.41276 +-14.2089 -1.79414 2.26672 +-14.5281 -1.75263 2.21429 +-13.9622 -1.60602 2.02906 +-13.9843 -1.53034 1.93345 +-15.2874 -1.58772 2.00593 +-13.9264 -1.36894 1.72952 +-14.044 -1.30263 1.64575 +-14.854 -1.29562 1.6369 +-14.8717 -1.21512 1.53519 +-14.3919 -1.09672 1.3856 +-15.1023 -1.06791 1.3492 +-14.2217 -0.92769 1.17205 +-14.3337 -0.856578 1.08221 +-13.9467 -0.757278 0.95675 +-14.4553 -0.706064 0.892045 +-15.562 -0.675367 0.853263 +-13.8741 -0.526649 0.665372 +-12.8823 -0.419007 0.529376 +-13.2873 -0.36005 0.454889 +-11.9927 -0.259915 0.328379 +-11.596 -0.188456 0.238096 +-11.6982 -0.126728 0.160109 +-10.9996 -0.0595752 0.0752678 +24.9 0 -2.27374e-13 +26.999 -0.144557 0.18606 +30.7953 -0.329792 0.424476 +32.9887 -0.529989 0.682151 +36.9775 -0.792236 1.01969 +40.5614 -1.08653 1.39847 +39.5457 -1.27154 1.6366 +40.4245 -1.51693 1.95244 +39.5035 -1.69478 2.18136 +30.9044 -1.49224 1.92067 +23.6098 -1.2673 1.63114 +15.13 -0.893824 1.15044 +16.708 -1.0774 1.38673 +17.7849 -1.24322 1.60015 +28.9823 -2.18329 2.81012 +35.692 -2.88293 3.71063 +40.9971 -3.535 4.54992 +45.9892 -4.21686 5.42754 +55.2118 -5.36511 6.90545 +63.5168 -6.52124 8.39352 +84.9889 -9.1942 11.8339 +95.0807 -10.8117 13.9158 +95.1197 -11.3438 14.6006 +94.9547 -11.8526 15.2555 +94.7825 -12.3605 15.9092 +94.7007 -12.8808 16.5789 +95.2934 -13.4977 17.373 +95.0978 -14.0074 18.029 +94.992 -14.5309 18.7028 +94.7817 -15.0389 19.3566 +95.4335 -15.6887 20.193 +95.2067 -16.1991 20.8499 +95.8378 -16.8603 21.701 +95.4984 -17.3554 22.3382 +95.3436 -17.884 23.0186 +95.8486 -18.5414 23.8646 +95.5812 -19.0538 24.5243 +96.16 -19.7401 25.4075 +95.6865 -20.2142 26.0178 +96.338 -20.9306 26.9398 +96.0366 -21.4455 27.6026 +96.3836 -22.1093 28.4569 +96.1588 -22.6465 29.1483 +96.6704 -23.3628 30.0704 +96.4271 -23.9025 30.765 +96.0835 -24.4178 31.4283 +95.9166 -24.9793 32.1509 +96.2913 -25.6876 33.0626 +96.0136 -26.2271 33.757 +96.5469 -26.9946 34.7448 +96.0686 -27.4845 35.3754 +96.4864 -28.2355 36.342 +96.0811 -28.7511 37.0056 +97.1004 -29.7024 38.2301 +95.3377 -29.8033 38.36 +95.3537 -30.4543 39.1978 +94.8286 -30.9348 39.8163 +95.0001 -31.6463 40.7321 +95.1586 -32.3619 41.6531 +94.5206 -32.8097 42.2295 +94.8298 -33.5906 43.2346 +94.3484 -34.0971 43.8865 +94.4598 -34.8221 44.8196 +94.6431 -35.5829 45.7989 +94.8118 -36.3484 46.7842 +94.2912 -36.8547 47.4358 +94.3504 -37.592 48.3848 +92.7281 -37.6555 48.4665 +90.7796 -37.5673 48.353 +89.5001 -37.7391 48.5742 +87.8131 -37.7242 48.555 +86.2962 -37.7654 48.608 +85.1086 -37.9375 48.8295 +83.0384 -37.6983 48.5216 +82.499 -38.1415 49.092 +80.684 -37.9841 48.8895 +79.7467 -38.2258 49.2005 +77.7913 -37.9639 48.8634 +76.5489 -38.0314 48.9504 +74.8476 -37.8544 48.7225 +74.0765 -38.1354 49.0842 +71.9344 -37.6938 48.5158 +70.5653 -37.6347 48.4397 +69.2784 -37.6046 48.401 +68.7409 -37.974 48.8765 +67.3134 -37.8432 48.7082 +66.7726 -38.2022 49.1702 +64.9935 -37.8403 48.7044 +63.8054 -37.8032 48.6567 +62.6234 -37.7564 48.5963 +61.5183 -37.7432 48.5794 +60.2782 -37.6335 48.4382 +59.7406 -37.9548 48.8517 +58.6478 -37.9172 48.8033 +58.0381 -38.1848 49.1478 +56.3442 -37.7251 48.5561 +55.8724 -38.071 49.0013 +54.5999 -37.8632 48.7339 +54.0593 -38.1541 49.1083 +52.4105 -37.649 48.4581 +51.873 -37.9281 48.8175 +50.6318 -37.6837 48.5028 +50.1568 -38.001 48.9112 +48.4939 -37.4038 48.1426 +48.5141 -38.0971 49.0349 +46.7529 -37.3819 48.1144 +46.1592 -37.5818 48.3717 +44.6117 -36.9891 47.6089 +44.6129 -37.6733 48.4894 +43.4947 -37.4112 48.1522 +42.8462 -37.5422 48.3207 +42.1973 -37.669 48.4839 +41.2125 -37.4866 48.2491 +40.2914 -37.3477 48.0703 +40.1399 -37.9221 48.8097 +39.1154 -37.6699 48.4851 +38.4721 -37.7738 48.6188 +37.5154 -37.5599 48.3435 +36.9282 -37.7067 48.5325 +35.9337 -37.4272 48.1727 +35.4 -37.6182 48.4185 +34.8636 -37.8063 48.6606 +34.373 -38.0451 48.968 +33.4488 -37.7964 48.6479 +32.91 -37.974 48.8765 +31.953 -37.659 48.471 +31.4615 -37.8834 48.7598 +30.5199 -37.5562 48.3387 +29.8969 -37.6079 48.4052 +29.447 -37.8772 48.7519 +28.569 -37.5886 48.3804 +28.0333 -37.7402 48.5755 +27.4954 -37.8888 48.7668 +26.6763 -37.6407 48.4475 +26.1399 -37.7821 48.6295 +25.2954 -37.4671 48.2241 +25.0237 -37.9994 48.9091 +23.8226 -37.1044 47.7572 +23.6164 -37.7461 48.5831 +22.7985 -37.4113 48.1522 +22.5049 -37.9355 48.8269 +21.6974 -37.5919 48.3846 +21.1294 -37.6486 48.4577 +20.5931 -37.7603 48.6014 +20.117 -37.9858 48.8917 +19.5459 -38.0335 48.9531 +19.0626 -38.2541 49.237 +17.9498 -37.1782 47.8522 +17.6959 -37.8626 48.7331 +16.9429 -37.483 48.2445 +16.4609 -37.6908 48.5119 +15.8741 -37.6587 48.4706 +15.3378 -37.7422 48.5781 +14.7771 -37.7632 48.6052 +14.3294 -38.0801 49.013 +13.5924 -37.6162 48.416 +13.1608 -37.9876 48.894 +12.62 -38.0566 48.9828 +11.9256 -37.641 48.4478 +11.2804 -37.3414 48.0623 +10.8877 -37.8837 48.7603 +10.3485 -37.9406 48.8335 +9.80844 -37.9946 48.903 +9.13462 -37.4995 48.2658 +8.58698 -37.4862 48.2486 +8.06652 -37.5916 48.3843 +7.53153 -37.6334 48.4381 +6.98464 -37.6113 48.4097 +6.47031 -37.7693 48.613 +5.85618 -37.3139 48.0269 +5.30778 -37.2217 47.9081 +4.84093 -37.738 48.5727 +4.30397 -37.7624 48.6042 +3.76669 -37.784 48.632 +3.21866 -37.6802 48.4983 +2.64333 -37.1444 47.8086 +2.14632 -37.7089 48.5353 +1.59418 -37.351 48.0746 +1.0646 -37.4195 48.1627 +0.52621 -36.9943 47.6155 +6.21725e-15 -37.4252 48.1701 +-0.532319 -37.4238 48.1683 +-1.07856 -37.9102 48.7944 +-1.61512 -37.8417 48.7062 +-2.15679 -37.8929 48.7721 +-2.70004 -37.9412 48.8343 +-3.2396 -37.9253 48.8138 +-3.73007 -37.4166 48.159 +-4.31095 -37.8237 48.683 +-4.83308 -37.6768 48.4939 +-5.35136 -37.5273 48.3015 +-5.89451 -37.5582 48.3414 +-6.4285 -37.5252 48.2989 +-6.962 -37.4894 48.2528 +-7.53153 -37.6334 48.4381 +-8.06652 -37.5916 48.3843 +-8.72615 -38.0938 49.0307 +-9.19375 -37.7422 48.5782 +-9.63636 -37.328 48.045 +-10.2825 -37.6986 48.522 +-10.853 -37.7629 48.6048 +-11.1893 -37.0398 47.6741 +-11.9065 -37.5807 48.3703 +-12.4406 -37.5155 48.2864 +-12.9737 -37.4475 48.1988 +-13.5058 -37.3766 48.1076 +-14.2169 -37.7811 48.6282 +-14.7537 -37.7036 48.5284 +-15.5556 -38.278 49.2677 +-15.8741 -37.6587 48.4706 +-16.6421 -38.1056 49.0458 +-17.2102 -38.0742 49.0054 +-17.751 -37.9806 48.885 +-18.2906 -37.8841 48.7608 +-18.858 -37.8434 48.7084 +-19.3955 -37.741 48.5765 +-20.2406 -38.2192 49.1921 +-20.7517 -38.0512 48.9759 +-21.6503 -38.5768 49.6523 +-21.9645 -38.0545 48.9801 +-22.7101 -38.2814 49.2721 +-23.2538 -38.1583 49.1137 +-24.0823 -38.4906 49.5414 +-24.299 -37.8465 48.7123 +-25.5107 -38.7389 49.8609 +-25.7163 -38.0907 49.0266 +-26.5697 -38.4033 49.4291 +-27.1548 -38.3159 49.3165 +-28.1055 -38.7295 49.8489 +-28.2821 -38.0751 49.0067 +-29.2029 -38.4227 49.454 +-29.7914 -38.3203 49.3221 +-30.7298 -38.6556 49.7538 +-30.9661 -38.1052 49.0454 +-32.2787 -38.8673 50.0263 +-32.3686 -38.1488 49.1015 +-33.4264 -38.57 49.6435 +-33.8306 -38.2277 49.203 +-35.3426 -39.1184 50.3494 +-35.4053 -38.3937 49.4167 +-36.2 -38.4683 49.5127 +-37.1518 -38.696 49.8057 +-37.7008 -38.4955 49.5477 +-38.2469 -38.2923 49.2861 +-39.267 -38.5543 49.6234 +-39.8139 -38.3426 49.3509 +-40.8479 -38.5911 49.6707 +-41.3953 -38.3709 49.3873 +-42.3309 -38.5038 49.5584 +-42.877 -38.2758 49.2649 +-43.936 -38.497 49.5496 +-44.4818 -38.2603 49.245 +-45.7297 -38.6163 49.7032 +-46.2772 -38.3701 49.3863 +-47.3628 -38.5618 49.633 +-48.4574 -38.7448 49.8686 +-49.5607 -38.9191 50.0929 +-50.1124 -38.6522 49.7494 +-51.7301 -39.193 50.4454 +-52.3492 -38.9619 50.148 +-53.4799 -39.1031 50.3298 +-54.099 -38.8619 50.0193 +-55.765 -39.358 50.6578 +-56.3227 -39.0579 50.2716 +-57.2776 -39.0284 50.2337 +-58.7088 -39.3083 50.5939 +-60.0841 -39.531 50.8805 +-59.818 -38.6737 49.7771 +-61.8246 -39.2788 50.5558 +-62.2407 -38.8587 50.0152 +-64.276 -39.4351 50.757 +-65.3337 -39.3905 50.6996 +-66.6828 -39.508 50.8509 +-67.5324 -39.3184 50.6069 +-69.7711 -39.9177 51.3782 +-70.3363 -39.5426 50.8955 +-72.2337 -39.9035 51.36 +-73.4726 -39.8811 51.3311 +-75.3955 -40.2108 51.7554 +-75.9646 -39.8056 51.2339 +-77.6769 -39.9889 51.4699 +-79.0915 -40.0008 51.4851 +-80.5123 -40.0005 51.4848 +-81.5478 -39.7971 51.223 +-83.7655 -40.1522 51.68 +-84.4128 -39.7395 51.1489 +-87.3707 -40.3938 51.991 +-87.6204 -39.7785 51.199 +-90.2863 -40.2454 51.8 +-91.9136 -40.2237 51.7721 +-93.8748 -40.3283 51.9067 +-95.1866 -40.1369 51.6604 +-97.6606 -40.4148 52.0181 +-99.566 -40.4323 52.0405 +-101.731 -40.5325 52.1695 +-103.231 -40.3489 51.9333 +-106.006 -40.64 52.3079 +-107.177 -40.2953 51.8642 +-110.746 -40.8259 52.5472 +-112.615 -40.6985 52.3832 +-115.614 -40.953 52.7107 +-117.411 -40.7553 52.4563 +-121.31 -41.2555 53.1001 +-122.947 -40.9557 52.7143 +-98.7135 -32.2022 41.4475 +-98.3695 -31.4175 40.4375 +-98.7235 -30.8617 39.7222 +-99.2482 -30.3594 39.0756 +-98.0584 -29.3427 37.7672 +-98.4721 -28.8166 37.09 +-98.8782 -28.2883 36.41 +-98.4578 -27.5289 35.4325 +-98.1148 -26.801 34.4957 +-98.4005 -26.2503 33.7868 +-98.6781 -25.6985 33.0766 +-98.7627 -25.0987 32.3047 +-98.7451 -24.477 31.5045 +-98.2521 -23.745 30.5623 +-97.8392 -23.0423 29.6578 +-97.6012 -22.3886 28.8164 +-96.0366 -21.4455 27.6026 +-63.0627 -13.7011 17.6347 +-51.3417 -10.8462 13.9602 +-43.6229 -8.95505 11.5261 +-38.9933 -7.77321 10.0049 +-35.0014 -6.77083 8.71476 +-33.5663 -6.29614 8.10379 +-28.5728 -5.19269 6.68353 +-15.8608 -2.79034 3.59145 +-15.5145 -2.63973 3.3976 +-16.2276 -2.66772 3.43363 +-14.8127 -2.35031 3.02509 +-14.9426 -2.28576 2.94201 +-14.78 -2.17702 2.80205 +-14.6156 -2.07021 2.66457 +-15.1326 -2.05827 2.6492 +-13.8897 -1.81135 2.33139 +-14.2089 -1.77361 2.28282 +-13.9391 -1.66235 2.13961 +-14.7488 -1.6771 2.1586 +-13.8858 -1.50219 1.93347 +-14.2025 -1.45816 1.87681 +-14.519 -1.41086 1.81593 +-14.2418 -1.30587 1.68079 +-14.3589 -1.2381 1.59357 +-14.376 -1.16118 1.49456 +-13.3001 -1.00192 1.28958 +-13.6119 -0.951507 1.22469 +-12.531 -0.808052 1.04005 +-13.836 -0.817378 1.05205 +-12.9505 -0.695139 0.894716 +-13.8572 -0.669101 0.861202 +-13.3674 -0.573487 0.738137 +-14.6726 -0.550588 0.708664 +-14.58 -0.468799 0.603393 +-13.3872 -0.358607 0.461564 +-12.6923 -0.27193 0.350002 +-12.5957 -0.20236 0.260458 +-11.9982 -0.12849 0.165381 +-12.3995 -0.0663892 0.0854498 +28.3 0 -2.27374e-13 +28.4989 -0.15081 0.197765 +32.1951 -0.340764 0.446863 +34.1883 -0.54286 0.711884 +37.1773 -0.787235 1.03235 +38.7631 -1.02625 1.34578 +37.9479 -1.20594 1.58142 +37.8293 -1.403 1.83983 +36.2116 -1.53544 2.01352 +33.3967 -1.59379 2.09003 +23.5102 -1.24724 1.63558 +15.0305 -0.877591 1.15084 +16.3102 -1.03949 1.36315 +22.3554 -1.54448 2.02537 +33.9451 -2.52734 3.31424 +37.5758 -2.99971 3.93369 +45.1562 -3.84824 5.04643 +49.1541 -4.45452 5.84148 +66.7677 -6.41244 8.409 +72.5906 -7.36597 9.65942 +93.5567 -10.0032 13.1177 +94.3925 -10.6083 13.9113 +95.1197 -11.2115 14.7024 +94.9547 -11.7145 15.3619 +94.7825 -12.2164 16.0201 +94.6031 -12.7175 16.6773 +95.3908 -13.3541 17.512 +95.0978 -13.8442 18.1547 +94.992 -14.3616 18.8331 +95.7498 -15.0155 19.6907 +95.5301 -15.5216 20.3543 +95.2067 -16.0103 20.9952 +95.7417 -16.6472 21.8304 +95.4984 -17.1531 22.4939 +96.2043 -17.8351 23.3882 +95.8486 -18.3253 24.031 +96.4371 -19.0004 24.9163 +96.0652 -19.4908 25.5594 +95.8756 -20.0181 26.2509 +96.338 -20.6866 27.1276 +95.9426 -21.1749 27.7678 +96.4772 -21.8729 28.6832 +96.1588 -22.3825 29.3515 +96.7634 -23.1127 30.3091 +96.3344 -23.6012 30.9496 +96.0835 -24.1333 31.6473 +95.8246 -24.6644 32.3439 +96.2913 -25.3882 33.293 +96.0136 -25.9214 33.9922 +96.4559 -26.6548 34.954 +96.1593 -27.1898 35.6556 +96.5766 -27.9326 36.6296 +96.0811 -28.416 37.2635 +96.9214 -29.3021 38.4255 +96.496 -29.8139 39.0966 +95.265 -30.0713 39.4343 +94.9169 -30.6028 40.1312 +95.2638 -31.3642 41.1297 +94.4589 -31.7495 41.635 +94.6077 -32.4572 42.563 +94.8298 -33.1991 43.536 +94.2622 -33.6689 44.152 +94.4598 -34.4163 45.132 +94.8989 -35.2633 46.2428 +94.6422 -35.8605 47.026 +93.8695 -36.2622 47.5527 +93.9311 -36.9888 48.5055 +93.562 -37.5513 49.2432 +92.5206 -37.8415 49.6238 +89.9946 -37.5054 49.183 +89.4514 -37.9801 49.8055 +87.7617 -37.9591 49.7779 +85.5131 -37.6735 49.4035 +84.405 -37.8721 49.6639 +83.5373 -38.1714 50.0563 +81.9534 -38.1321 50.0048 +80.7711 -38.2656 50.1799 +78.8869 -38.0499 49.897 +77.9477 -38.275 50.1922 +75.6964 -37.8375 49.6185 +75.149 -38.2366 50.1419 +72.8469 -37.727 49.4736 +71.8484 -37.8724 49.6642 +70.4018 -37.769 49.5286 +69.1868 -37.7749 49.5364 +67.7558 -37.648 49.3699 +67.6502 -38.2532 50.1636 +65.5738 -37.7332 49.4817 +65.0283 -38.0787 49.9348 +63.2653 -37.6989 49.4367 +62.7204 -38.0322 49.8738 +61.6099 -38.0166 49.8534 +60.3658 -37.905 49.707 +59.1985 -37.8271 49.6049 +58.0381 -37.7398 49.4904 +56.8847 -37.6432 49.3636 +56.3408 -37.9427 49.7565 +54.5999 -37.422 49.0736 +54.0593 -37.7094 49.4506 +53.5145 -37.9941 49.8238 +52.3872 -37.8577 49.645 +51.3315 -37.7592 49.5158 +50.7232 -37.9822 49.8083 +49.0542 -37.395 49.0382 +49.0682 -38.0832 49.9407 +47.4225 -37.4754 49.1437 +46.8814 -37.725 49.4709 +45.5039 -37.2892 48.8994 +45.0244 -37.5776 49.2777 +43.7269 -37.1727 48.7467 +43.4197 -37.6013 49.3088 +42.1406 -37.18 48.7563 +42.1631 -37.9043 49.7061 +40.6778 -37.2664 48.8695 +40.5756 -37.887 49.6835 +39.5453 -37.64 49.3595 +39.0021 -37.8478 49.632 +38.4559 -38.0528 49.9008 +37.3918 -37.735 49.4841 +36.3905 -37.4612 49.1251 +35.85 -37.6524 49.3757 +34.9128 -37.4184 49.069 +34.8093 -38.0791 49.9353 +33.8306 -37.7822 49.546 +33.2855 -37.9598 49.7789 +32.3224 -37.6504 49.3732 +31.4161 -37.3878 49.0288 +31.2338 -37.9867 49.8142 +30.2914 -37.6601 49.3858 +29.3609 -37.3263 48.9482 +28.8226 -37.4803 49.1501 +27.9918 -37.2451 48.8417 +27.4954 -37.4472 49.1067 +26.9554 -37.5913 49.2957 +26.4134 -37.7325 49.4808 +25.6015 -37.4786 49.1479 +25.3609 -38.0625 49.9135 +24.5189 -37.7439 49.4957 +23.939 -37.8156 49.5898 +23.0436 -37.3728 49.0092 +22.7785 -37.9492 49.765 +22.0646 -37.7825 49.5464 +21.4549 -37.7832 49.5473 +20.6248 -37.3777 49.0155 +20.3642 -38.0044 49.8374 +19.5459 -37.5903 49.2943 +19.0042 -37.6923 49.4281 +18.2906 -37.4426 49.1006 +17.8062 -37.6545 49.3785 +17.2636 -37.7473 49.5002 +16.9009 -38.2472 50.1558 +16.0994 -37.7481 49.5013 +15.5314 -37.773 49.534 +14.7537 -37.2642 48.8667 +14.3744 -37.7544 49.5095 +13.7656 -37.6514 49.3745 +13.3895 -38.1973 50.0904 +12.62 -37.6131 49.3242 +12.2881 -38.3332 50.2686 +11.6084 -37.9794 49.8046 +11.044 -37.9797 49.805 +10.3485 -37.4984 49.1738 +9.91795 -37.971 49.7935 +9.26765 -37.6022 49.31 +8.85141 -38.1902 50.0811 +8.07957 -37.2136 48.8003 +7.75089 -38.2781 50.1963 +7.09784 -37.7755 49.5372 +6.57484 -37.9322 49.7426 +6.00953 -37.8448 49.628 +5.46467 -37.8752 49.6679 +4.84093 -37.2981 48.9112 +4.36676 -37.8667 49.6568 +3.76059 -37.2832 48.8916 +3.271 -37.8466 49.6304 +2.67823 -37.1961 48.7774 +2.14981 -37.3301 48.9531 +1.61512 -37.4007 49.0457 +1.07681 -37.4078 49.055 +0.5393 -37.4726 49.14 +7.10543e-15 -37.4741 49.142 +-0.538427 -37.4121 49.0606 +-1.09601 -38.0747 49.9295 +-1.61512 -37.4007 49.0457 +-2.1882 -37.9967 49.8272 +-2.70004 -37.499 49.1746 +-3.27623 -37.9072 49.7099 +-3.76669 -37.3437 48.9709 +-4.37373 -37.9272 49.7362 +-4.91154 -37.8422 49.6246 +-5.43852 -37.6939 49.4302 +-5.99036 -37.7241 49.4698 +-6.61665 -38.1734 50.059 +-7.0752 -37.6549 49.3791 +-7.64121 -37.7364 49.4859 +-8.18399 -37.6946 49.4311 +-8.89316 -38.3704 50.3173 +-9.31199 -37.7821 49.5459 +-9.80844 -37.5518 49.2438 +-10.299 -37.319 48.9385 +-11.0093 -37.8602 49.6483 +-11.5173 -37.6813 49.4137 +-12.269 -38.2737 50.1905 +-12.62 -37.6131 49.3242 +-13.1608 -37.5449 49.2348 +-13.7006 -37.4738 49.1416 +-14.4644 -37.9907 49.8194 +-14.7771 -37.3231 48.944 +-15.5556 -37.8319 49.6111 +-16.1245 -37.8068 49.5783 +-16.8491 -38.1301 50.0022 +-17.1834 -37.572 49.2703 +-17.9716 -38.0043 49.8372 +-18.5462 -37.9658 49.7868 +-19.3842 -38.4461 50.4166 +-19.6361 -37.7638 49.5218 +-20.4878 -38.2351 50.1399 +-20.8152 -37.7227 49.468 +-21.8782 -38.5285 50.5246 +-22.1314 -37.8968 49.6963 +-22.9838 -38.2911 50.2133 +-23.5339 -38.168 50.052 +-24.4049 -38.5515 50.5548 +-24.9221 -38.3645 50.3096 +-25.8479 -38.7934 50.872 +-26.4434 -38.7112 50.7642 +-26.9604 -38.5139 50.5055 +-27.5536 -38.4254 50.3895 +-28.1055 -38.2782 50.1964 +-28.6968 -38.1831 50.0718 +-29.9636 -38.9641 51.0959 +-30.2649 -38.4757 50.4553 +-31.0805 -38.6411 50.6723 +-31.68 -38.5294 50.5258 +-32.6873 -38.9006 51.0126 +-32.7842 -38.1883 50.0785 +-33.7081 -38.4416 50.4107 +-34.2123 -38.2085 50.1051 +-35.682 -39.0337 51.1872 +-35.7007 -38.2629 50.1763 +-36.6 -38.4401 50.4088 +-37.6086 -38.7152 50.7694 +-38.2158 -38.5667 50.5747 +-39.1351 -38.7249 50.7822 +-39.691 -38.5163 50.5087 +-40.2437 -38.3048 50.2313 +-41.3381 -38.599 50.6171 +-42.2784 -38.7328 50.7925 +-43.5611 -39.161 51.3541 +-44.0664 -38.8791 50.9844 +-45.1978 -39.1412 51.3281 +-45.7013 -38.8511 50.9477 +-46.8465 -39.0984 51.272 +-47.8238 -39.1902 51.3924 +-48.9877 -39.4199 51.6936 +-49.5532 -39.1592 51.3518 +-50.6074 -39.2778 51.5072 +-51.1707 -39.0085 51.1541 +-52.3595 -39.2074 51.415 +-52.9217 -38.9289 51.0497 +-54.1227 -39.1119 51.2896 +-54.6186 -38.7779 50.8517 +-56.4211 -39.3569 51.611 +-57.1841 -39.1931 51.3962 +-58.2144 -39.2045 51.4111 +-59.3168 -39.2526 51.4742 +-60.4933 -39.3363 51.584 +-61.2636 -39.1467 51.3353 +-62.7277 -39.3881 51.6519 +-63.5725 -39.2276 51.4414 +-64.9831 -39.4043 51.6731 +-65.9757 -39.3139 51.5546 +-67.4021 -39.4688 51.7577 +-68.838 -39.6115 51.9448 +-70.2831 -39.742 52.1159 +-70.6312 -39.2456 51.4651 +-72.7539 -39.7225 52.0904 +-73.7721 -39.5771 51.8997 +-75.471 -39.7819 52.1683 +-76.2687 -39.4992 51.7975 +-78.443 -39.9126 52.3398 +-79.4002 -39.6888 52.0463 +-81.5226 -40.0304 52.4942 +-82.7217 -39.8995 52.3225 +-84.396 -39.9829 52.4318 +-85.6822 -39.867 52.2799 +-87.6103 -40.0325 52.4969 +-88.9066 -39.892 52.3126 +-90.9335 -40.0616 52.5351 +-92.6463 -40.0718 52.5485 +-95.4312 -40.5191 53.1351 +-96.7524 -40.3217 52.8762 +-99.4845 -40.6898 53.3589 +-100.316 -40.2622 52.7982 +-103.492 -40.7537 53.4427 +-104.328 -40.3022 52.8507 +-107.787 -40.8411 53.5573 +-109.394 -40.6495 53.306 +-112.889 -41.1309 53.9373 +-113.735 -40.6243 53.273 +-116.394 -40.7485 53.4359 +-119.152 -40.8776 53.6051 +-123.146 -41.392 54.2798 +-124.265 -40.9124 53.6508 +-98.4487 -31.7415 41.6244 +-98.6356 -31.1353 40.8295 +-98.8126 -30.5296 40.0352 +-98.5323 -29.7891 39.0642 +-98.0584 -29.0008 38.0304 +-98.4721 -28.4808 37.3485 +-98.8782 -27.9587 36.6638 +-98.4578 -27.208 35.6794 +-98.8456 -26.686 34.9949 +-98.4005 -25.9443 34.0223 +-98.7702 -25.4227 33.3382 +-98.8551 -24.8294 32.5602 +-98.3742 -24.1009 31.605 +-98.066 -23.4239 30.7171 +-98.306 -22.8823 30.0069 +-97.9759 -22.2126 29.1287 +-96.5064 -21.2993 27.931 +-61.9315 -13.2985 17.4391 +-51.2471 -10.7 14.0315 +-44.097 -8.94691 11.7326 +-39.1835 -7.72009 10.1238 +-36.7181 -7.02015 9.20593 +-34.5226 -6.40007 8.39278 +-28.7646 -5.16661 6.77528 +-16.1492 -2.80796 3.68224 +-15.9963 -2.68999 3.52753 +-15.5514 -2.52677 3.3135 +-14.8127 -2.32292 3.04617 +-14.6515 -2.21511 2.9048 +-14.4883 -2.10919 2.7659 +-14.8104 -2.07336 2.71892 +-14.0587 -1.88991 2.47835 +-14.1831 -1.82806 2.39724 +-14.9928 -1.84965 2.42555 +-13.9391 -1.64297 2.15452 +-14.7488 -1.65755 2.17364 +-13.5903 -1.45309 1.90552 +-14.4984 -1.47119 1.92926 +-13.9264 -1.3375 1.75395 +-13.9451 -1.26376 1.65724 +-14.854 -1.26587 1.66001 +-14.0785 -1.1239 1.47384 +-13.3994 -0.997636 1.30826 +-13.5126 -0.933554 1.22422 +-14.2217 -0.906388 1.1886 +-13.0397 -0.761355 0.998409 +-13.6479 -0.724032 0.949465 +-13.3587 -0.637515 0.83601 +-13.0681 -0.554113 0.726641 +-13.0756 -0.484942 0.635932 +-13.3816 -0.425253 0.557659 +-12.588 -0.333267 0.437033 +-12.8921 -0.272993 0.357992 +-11.9959 -0.190477 0.249783 +-11.5982 -0.12276 0.160982 +-11.6996 -0.0619111 0.0811876 +28.8 -1.77636e-15 1.13687e-13 +30.3988 -0.158954 0.212393 +33.2949 -0.348221 0.46529 +35.3879 -0.555236 0.741902 +37.4772 -0.784161 1.04779 +38.0637 -0.995773 1.33054 +36.2503 -1.13832 1.52101 +36.1325 -1.32416 1.76933 +33.5182 -1.40436 1.8765 +31.6023 -1.49024 1.99125 +27.3954 -1.4361 1.9189 +15.5282 -0.895884 1.19707 +16.9069 -1.06473 1.42268 +27.3232 -1.86529 2.49239 +35.8309 -2.63607 3.5223 +40.8475 -3.22218 4.30546 +48.5231 -4.08608 5.45979 +54.5937 -4.88874 6.53229 +70.0271 -6.6456 8.8798 +85.9055 -8.61353 11.5093 +94.4431 -9.97804 13.3326 +94.3925 -10.4824 14.0065 +94.2362 -10.9756 14.6654 +94.9547 -11.5754 15.4669 +94.7825 -12.0714 16.1297 +95.4817 -12.6833 16.9473 +95.196 -13.1685 17.5957 +95.0978 -13.6798 18.2789 +94.8949 -14.1765 18.9426 +95.653 -14.8221 19.8052 +95.4335 -15.3217 20.4728 +95.2067 -15.8202 21.1388 +95.8378 -16.466 22.0017 +95.5943 -16.9665 22.6705 +95.3436 -17.4657 23.3376 +95.9439 -18.1257 24.2194 +95.5812 -18.6082 24.8641 +96.16 -19.2784 25.7596 +95.8756 -19.7804 26.4304 +96.338 -20.441 27.3131 +96.0366 -20.9439 27.9851 +96.4772 -21.6132 28.8794 +96.1588 -22.1168 29.5523 +96.6704 -22.8164 30.4871 +96.4271 -23.3434 31.1913 +96.0835 -23.8467 31.8638 +96.561 -24.5589 32.8154 +96.383 -25.1106 33.5526 +96.0136 -25.6136 34.2247 +96.5469 -26.3632 35.2263 +96.1593 -26.867 35.8995 +95.7643 -27.3687 36.5699 +96.0811 -28.0786 37.5184 +97.1004 -29.0077 38.7598 +96.8524 -29.5687 39.5095 +95.3537 -29.742 39.741 +94.9169 -30.2394 40.4057 +95.088 -30.9347 41.3347 +94.3715 -31.3436 41.881 +94.6077 -32.0718 42.8541 +94.9164 -32.8349 43.8738 +95.1239 -33.5732 44.8603 +94.5456 -34.0385 45.482 +95.4957 -35.0637 46.8519 +94.2181 -35.276 47.1355 +94.9659 -36.2502 48.4372 +93.9311 -36.5496 48.8373 +94.3959 -37.4362 50.0219 +93.6812 -37.8613 50.59 +90.7363 -37.3655 49.9275 +90.1886 -37.8385 50.5596 +88.1687 -37.6823 50.3508 +87.3738 -38.0363 50.8238 +84.5657 -37.4938 50.0989 +83.7769 -37.8263 50.5432 +82.3501 -37.8617 50.5905 +82.1107 -38.4384 51.3611 +80.2173 -38.2322 51.0856 +79.0357 -38.3485 51.241 +77.3939 -38.2267 51.0782 +76.1448 -38.2833 51.1539 +73.9115 -37.8239 50.54 +72.6785 -37.8551 50.5817 +70.6265 -37.4397 50.0266 +70.0786 -37.8075 50.5181 +68.8617 -37.8081 50.519 +68.3084 -38.1668 50.9981 +66.6619 -37.9038 50.6468 +65.6757 -38.0012 50.7769 +64.6918 -38.0912 50.8972 +63.1446 -37.8348 50.5546 +62.1707 -37.9071 50.6512 +61.6162 -38.2307 51.0836 +59.818 -37.7691 50.4669 +58.5837 -37.6423 50.2974 +57.4927 -37.5938 50.2325 +56.943 -37.8929 50.6323 +55.7926 -37.7854 50.4885 +54.7153 -37.7139 50.393 +53.4496 -37.4974 50.1037 +52.9014 -37.7754 50.4753 +51.8404 -37.6807 50.3487 +51.2896 -37.9503 50.709 +50.1747 -37.795 50.5014 +49.6223 -38.056 50.8501 +48.5183 -37.8862 50.6232 +47.9045 -38.0905 50.8963 +46.3962 -37.5689 50.1993 +45.7885 -37.7616 50.4568 +44.0754 -37.024 49.4712 +43.5918 -37.3021 49.8429 +43.2734 -37.7261 50.4094 +42.6664 -37.9013 50.6435 +41.1745 -37.2736 49.8047 +41.0658 -37.8895 50.6276 +40.0288 -37.6479 50.3049 +39.426 -37.805 50.5147 +38.4559 -37.601 50.2421 +37.8553 -37.7493 50.4403 +36.898 -37.5327 50.1509 +36.35 -37.7242 50.4068 +35.356 -37.4435 50.0317 +34.7608 -37.5745 50.2068 +34.26 -37.8076 50.5182 +33.7081 -37.9852 50.7556 +32.6918 -37.6286 50.279 +32.1879 -37.8515 50.5769 +31.1892 -37.4821 50.0833 +30.7298 -37.7515 50.4432 +29.7914 -37.424 50.0056 +29.2452 -37.5783 50.2119 +28.6968 -37.7298 50.4143 +28.1868 -37.9331 50.686 +27.2346 -37.5296 50.1468 +26.6869 -37.6706 50.3351 +25.8694 -37.4212 50.0019 +25.2859 -37.4995 50.1065 +24.8488 -37.7975 50.5047 +23.9031 -37.3107 49.8542 +23.4289 -37.5465 50.1693 +22.7785 -37.4986 50.1054 +21.9979 -37.221 49.7344 +21.7805 -37.9011 50.6431 +20.9104 -37.4453 50.0341 +20.3024 -37.4392 50.026 +19.8165 -37.6582 50.3187 +19.2381 -37.7032 50.3787 +18.461 -37.3427 49.8971 +17.9716 -37.553 50.1781 +17.5308 -37.8765 50.6103 +17.1338 -38.314 51.1949 +16.2747 -37.706 50.3825 +15.7249 -37.7896 50.4942 +15.1739 -37.8704 50.6022 +14.7343 -38.2402 51.0963 +13.9604 -37.7309 50.4157 +13.5558 -38.2127 51.0595 +12.8194 -37.7537 50.4462 +12.2881 -37.8781 50.6124 +11.5537 -37.3518 49.9091 +11.2177 -38.1188 50.9341 +10.464 -37.4669 50.0629 +10.09 -38.1711 51.004 +9.40068 -37.6891 50.3599 +8.82357 -37.6182 50.2651 +8.28841 -37.7222 50.4042 +7.7387 -37.7642 50.4602 +7.1884 -37.8032 50.5123 +6.64801 -37.8989 50.6403 +5.99036 -37.2762 49.8082 +5.52567 -37.8433 50.5659 +4.89585 -37.2734 49.8044 +4.41558 -37.8355 50.5556 +3.80943 -37.3189 49.8653 +3.31287 -37.8759 50.6095 +2.72185 -37.3531 49.9109 +2.20914 -37.9048 50.6481 +1.64129 -37.5555 50.1814 +1.09252 -37.5028 50.111 +0.538427 -36.9679 49.3962 +7.99361e-15 -36.9692 49.398 +-0.547154 -37.567 50.1967 +-1.09427 -37.5627 50.191 +-1.64129 -37.5555 50.1814 +-2.21612 -38.0246 50.8082 +-2.7393 -37.5925 50.2308 +-3.28146 -37.5169 50.1299 +-3.82774 -37.4984 50.1051 +-4.42256 -37.8953 50.6355 +-4.97431 -37.8708 50.6026 +-5.51696 -37.7836 50.4861 +-6.06704 -37.7533 50.4457 +-6.6062 -37.6606 50.3218 +-7.17708 -37.7437 50.4328 +-7.71433 -37.6452 50.3013 +-8.2362 -37.4847 50.0867 +-9.01842 -38.4488 51.3751 +-9.44502 -37.8669 50.5974 +-9.9023 -37.461 50.0551 +-10.4475 -37.4078 49.984 +-10.9919 -37.3517 49.9091 +-11.7177 -37.882 50.6176 +-12.269 -37.8192 50.5338 +-12.7994 -37.695 50.3677 +-13.2856 -37.4507 50.0414 +-13.9171 -37.6138 50.2593 +-14.6218 -37.9484 50.7063 +-15.1739 -37.8704 50.6022 +-15.7491 -37.8478 50.572 +-16.2997 -37.764 50.46 +-17.0821 -38.1982 51.0402 +-17.6645 -38.1652 50.9961 +-18.4401 -38.5321 51.4864 +-18.8018 -38.0321 50.8182 +-19.3258 -37.875 50.6083 +-19.8767 -37.7726 50.4714 +-20.7041 -38.1801 51.0159 +-21.2911 -38.1272 50.9452 +-22.1386 -38.5243 51.4759 +-22.6655 -38.3506 51.2438 +-23.2232 -38.2306 51.0834 +-23.7791 -38.1077 50.9192 +-24.6916 -38.5413 51.4986 +-25.2519 -38.4107 51.3242 +-25.8104 -38.2772 51.1458 +-26.3669 -38.1408 50.9635 +-27.3121 -38.553 51.5143 +-28.2314 -38.9033 51.9823 +-28.4716 -38.3163 51.198 +-29.0285 -38.166 50.9971 +-29.9636 -38.5015 51.4454 +-30.4802 -38.2892 51.1618 +-31.6066 -38.8285 51.8824 +-32.0816 -38.5545 51.5163 +-32.6873 -38.4387 51.3615 +-33.6153 -38.6915 51.6993 +-34.7878 -39.202 52.3814 +-34.928 -38.5447 51.5032 +-35.9244 -38.8323 51.8874 +-36.1439 -38.2779 51.1467 +-37.3 -38.7102 51.7242 +-37.6593 -38.3071 51.1857 +-38.9369 -38.8278 51.8814 +-39.2919 -38.4184 51.3343 +-40.0089 -38.3639 51.2615 +-40.8348 -38.4059 51.3177 +-42.3185 -39.0452 52.1719 +-42.7751 -38.7226 51.7408 +-43.9526 -39.0438 52.1701 +-44.4062 -38.7137 51.729 +-45.3699 -38.8236 51.8759 +-45.9917 -38.6337 51.6221 +-46.964 -38.7311 51.7522 +-47.5263 -38.4841 51.4221 +-49.0479 -38.9997 52.1112 +-49.6749 -38.7893 51.83 +-50.7921 -38.9531 52.0488 +-51.9177 -39.108 52.2558 +-53.0517 -39.2541 52.4511 +-53.5578 -38.929 52.0167 +-54.7655 -39.1065 52.2538 +-55.333 -38.8187 51.8692 +-56.4867 -38.9348 52.0245 +-57.7805 -39.1316 52.2874 +-58.8835 -39.1842 52.3577 +-59.9249 -39.1841 52.3575 +-60.6979 -39.0008 52.1125 +-61.4701 -38.8123 51.8606 +-63.1444 -39.179 52.3507 +-64.3435 -39.232 52.4215 +-65.4074 -39.1906 52.3662 +-66.6176 -39.2251 52.4123 +-67.8337 -39.2499 52.4454 +-69.0556 -39.2649 52.4655 +-70.7219 -39.5153 52.8 +-71.7371 -39.3869 52.6284 +-73.4227 -39.6117 52.9288 +-74.2215 -39.3453 52.573 +-76.1502 -39.6634 52.9979 +-77.1812 -39.4972 52.7758 +-79.209 -39.8238 53.2123 +-80.0175 -39.5225 52.8097 +-81.8335 -39.7059 53.0548 +-83.1912 -39.6495 52.9794 +-85.2628 -39.914 53.3327 +-86.7135 -39.8678 53.2711 +-88.8083 -40.098 53.5787 +-90.3535 -40.0599 53.5277 +-93.2797 -40.6072 54.2591 +-93.8675 -40.118 53.6053 +-96.6599 -40.5535 54.1873 +-97.9062 -40.3181 53.8728 +-99.9819 -40.4077 53.9925 +-102.151 -40.5118 54.1315 +-104.247 -40.5635 54.2006 +-106.352 -40.5964 54.2446 +-108.805 -40.7372 54.4328 +-110.673 -40.6364 54.298 +-113.146 -40.7351 54.4299 +-115.286 -40.6893 54.3687 +-118.039 -40.8339 54.562 +-121.241 -41.1003 54.918 +-124.196 -41.2492 55.1168 +-101.855 -33.1361 44.2762 +-98.537 -31.3927 41.9467 +-98.3695 -30.6826 40.9979 +-98.8126 -30.1671 40.309 +-98.4428 -29.4087 39.2957 +-98.8673 -28.8928 38.6064 +-98.3818 -28.1168 37.5695 +-98.8782 -27.6267 36.9146 +-98.4578 -26.885 35.9235 +-98.8456 -26.3691 35.2342 +-98.4005 -25.6363 34.255 +-97.9417 -24.9101 33.2847 +-98.116 -24.3512 32.5378 +-98.0033 -23.725 31.7011 +-98.1591 -23.1677 30.9566 +-98.2127 -22.5892 30.1835 +-97.2266 -21.781 29.1036 +-97.0702 -21.1694 28.2863 +-62.5914 -13.2806 17.7455 +-50.5852 -10.4364 13.9451 +-44.9505 -9.01175 12.0414 +-39.8493 -7.75803 10.3662 +-37.5764 -7.09893 9.48554 +-36.244 -6.63942 8.87155 +-30.4905 -5.41158 7.23092 +-15.8608 -2.72507 3.64122 +-16.4781 -2.73811 3.65864 +-15.5514 -2.49677 3.33616 +-16.5553 -2.56538 3.42784 +-15.4277 -2.30477 3.07962 +-15.2662 -2.19604 2.93433 +-15.1027 -2.08918 2.79154 +-14.6444 -1.94528 2.59927 +-13.8897 -1.76898 2.3637 +-14.2089 -1.73213 2.31445 +-14.5281 -1.69206 2.26092 +-14.1589 -1.57236 2.10097 +-13.8858 -1.46705 1.96026 +-13.9066 -1.39439 1.86317 +-13.4326 -1.27476 1.70332 +-15.033 -1.34617 1.79874 +-14.4579 -1.21749 1.6268 +-13.6819 -1.07927 1.44212 +-12.8038 -0.941973 1.25866 +-14.4068 -0.98352 1.31417 +-14.7189 -0.926939 1.23857 +-14.0351 -0.809746 1.08198 +-13.7475 -0.720661 0.962941 +-13.9568 -0.658154 0.879421 +-13.0681 -0.547534 0.731611 +-13.9739 -0.512105 0.684271 +-14.2804 -0.448427 0.599184 +-13.5871 -0.355446 0.474945 +-13.4918 -0.282298 0.377205 +-12.7956 -0.200763 0.268259 +-11.2983 -0.118165 0.157891 +-12.0995 -0.0632677 0.0845379 +29.3 8.88178e-15 1.13687e-13 +31.5988 -0.16323 0.222259 +34.5947 -0.357438 0.4867 +36.4875 -0.565564 0.770091 +37.9769 -0.785004 1.06889 +36.5652 -0.944997 1.28674 +36.2503 -1.12455 1.53122 +36.1325 -1.30814 1.78121 +32.1216 -1.32957 1.81038 +32.998 -1.53724 2.09316 +27.6942 -1.4342 1.95286 +16.225 -0.924764 1.25919 +18.5976 -1.15703 1.57545 +29.6084 -1.99685 2.71898 +36.4264 -2.64746 3.60487 +42.4338 -3.30682 4.50268 +50.1076 -4.16846 5.67591 +59.341 -5.24956 7.14797 +74.1754 -6.9541 9.46894 +90.2451 -8.93925 12.172 +94.5415 -9.86757 13.436 +94.2941 -10.3448 14.0858 +95.1197 -10.9444 14.9023 +94.9547 -11.4354 15.5708 +94.7825 -11.9254 16.238 +94.6031 -12.4145 16.904 +95.196 -13.0092 17.7138 +95.0978 -13.5143 18.4016 +94.8949 -14.005 19.0697 +95.653 -14.6428 19.9382 +95.5301 -15.1517 20.6311 +95.2067 -15.6288 21.2807 +95.7417 -16.2505 22.1273 +95.5943 -16.7612 22.8227 +95.248 -17.2371 23.4706 +95.8486 -17.8886 24.3578 +95.5812 -18.3831 25.031 +96.0652 -19.0264 25.9069 +95.8756 -19.5411 26.6078 +96.338 -20.1937 27.4964 +96.0366 -20.6906 28.173 +96.7582 -21.4139 29.1578 +96.0654 -21.828 29.7218 +96.7634 -22.562 30.7212 +96.4271 -23.061 31.4007 +96.0835 -23.5582 32.0777 +96.653 -24.2849 33.0672 +96.2913 -24.7833 33.7458 +96.0136 -25.3038 34.4545 +96.3649 -25.9951 35.3959 +96.0686 -26.5169 36.1063 +96.5766 -27.267 37.1277 +96.8001 -27.9465 38.0529 +96.3844 -28.4454 38.7323 +96.496 -29.1035 39.6283 +95.7085 -29.4915 40.1566 +94.5637 -29.7624 40.5255 +94.2092 -30.278 41.2275 +94.4589 -30.993 42.2012 +94.6077 -31.6838 43.1418 +95.003 -32.4673 44.2086 +94.3484 -32.8967 44.7933 +94.4598 -33.5962 45.7458 +94.4725 -34.2684 46.661 +95.0662 -35.1629 47.879 +95.1346 -35.8753 48.849 +94.5182 -36.3331 49.4723 +94.2291 -36.9179 50.2687 +93.93 -37.5026 51.0648 +92.3845 -37.584 51.1756 +90.844 -37.6524 51.2687 +88.6572 -37.4327 50.9697 +87.6165 -37.6805 51.307 +85.2088 -37.3218 50.8187 +84.6554 -37.7606 51.4161 +82.6674 -37.5478 51.1263 +81.4803 -37.6818 51.3089 +79.9826 -37.6591 51.2779 +79.0357 -37.8846 51.5849 +77.0853 -37.6136 51.216 +76.5278 -38.0104 51.7563 +74.9 -37.866 51.5597 +73.3578 -37.7466 51.3971 +71.5253 -37.4574 51.0032 +70.7474 -37.7066 51.3425 +69.3041 -37.5907 51.1848 +68.089 -37.5839 51.1755 +66.6619 -37.4453 50.9868 +66.1073 -37.7882 51.4537 +65.1198 -37.8793 51.5777 +64.1346 -37.9631 51.6919 +62.8015 -37.8285 51.5086 +61.6162 -37.7683 51.4265 +60.4375 -37.6987 51.3318 +59.2657 -37.6198 51.2244 +58.0332 -37.4881 51.0451 +56.8761 -37.3905 50.9122 +56.389 -37.7272 51.3707 +55.2402 -37.615 51.2179 +54.164 -37.5389 51.1142 +53.5442 -37.7719 51.4314 +52.3492 -37.5903 51.1842 +51.7931 -37.8592 51.5504 +50.6727 -37.7084 51.345 +49.6223 -37.5956 51.1914 +48.4574 -37.3808 50.899 +47.9647 -37.677 51.3023 +46.872 -37.4951 51.0546 +46.3175 -37.7358 51.3823 +45.2368 -37.5399 51.1156 +44.108 -37.2873 50.7716 +43.3301 -37.3186 50.8142 +43.4493 -38.1298 51.9188 +42.1128 -37.6618 51.2815 +41.6104 -37.9275 51.6433 +40.0288 -37.1925 50.6425 +39.9029 -37.7994 51.4689 +38.8739 -37.5498 51.1291 +38.3188 -37.7492 51.4006 +37.3041 -37.4867 51.0431 +36.75 -37.678 51.3036 +35.7992 -37.4542 50.999 +35.2457 -37.6377 51.2488 +34.26 -37.3502 50.8573 +34.1306 -37.9961 51.7368 +33.1536 -37.6984 51.3314 +32.5965 -37.8682 51.5627 +32.037 -38.0352 51.79 +31.0367 -37.6671 51.2889 +30.1788 -37.452 50.996 +29.541 -37.4992 51.0602 +28.7382 -37.3272 50.826 +28.4716 -37.8528 51.5416 +27.5934 -37.5642 51.1486 +27.0386 -37.7052 51.3407 +26.1373 -37.3513 50.8588 +25.211 -36.9361 50.2934 +24.7755 -37.2301 50.6937 +24.1898 -37.3014 50.7908 +23.674 -37.4803 51.0345 +23.0522 -37.49 51.0476 +22.532 -37.6634 51.2838 +21.7154 -37.3306 50.8307 +21.2277 -37.5537 51.1344 +20.6114 -37.5493 51.1284 +19.8165 -37.2027 50.6564 +19.5012 -37.7565 51.4105 +18.6882 -37.345 50.8502 +18.1645 -37.497 51.0571 +17.5843 -37.5324 51.1053 +17.1338 -37.8505 51.5385 +16.4249 -37.5937 51.1888 +15.8943 -37.7345 51.3806 +15.1039 -37.2396 50.7067 +14.5543 -37.3162 50.811 +14.1335 -37.7367 51.3836 +13.5558 -37.7504 51.4022 +12.9988 -37.819 51.4956 +12.4598 -37.9428 51.6642 +11.7724 -37.5983 51.1951 +11.2003 -37.5994 51.1966 +10.6456 -37.6558 51.2734 +10.0744 -37.6509 51.2667 +9.53371 -37.76 51.4153 +8.96275 -37.7493 51.4007 +8.28841 -37.2659 50.7425 +7.72652 -37.2485 50.7189 +7.17708 -37.2871 50.7713 +6.75254 -38.0291 51.7817 +6.17247 -37.9447 51.6668 +5.51696 -37.3265 50.825 +4.97431 -37.4126 50.9423 +4.40861 -37.3187 50.8145 +3.86437 -37.3992 50.924 +3.31287 -37.4177 50.9492 +2.76111 -37.4335 50.9707 +2.20565 -37.3871 50.9076 +1.63344 -36.9237 50.2765 +1.10648 -37.5225 51.092 +0.546281 -37.0533 50.4531 +7.10543e-15 -37.5283 51.0998 +-0.555008 -37.6452 51.259 +-1.10474 -37.4634 51.0114 +-1.63606 -36.9829 50.3571 +-2.20914 -37.4462 50.9881 +-2.76547 -37.4926 51.0512 +-3.3181 -37.4768 51.0297 +-3.87048 -37.4583 51.0044 +-4.49232 -38.0273 51.7793 +-4.97431 -37.4126 50.9423 +-5.5954 -37.8572 51.5477 +-6.05745 -37.2376 50.704 +-6.79435 -38.2646 52.1024 +-7.27897 -37.8164 51.4921 +-7.82401 -37.7186 51.3589 +-8.4842 -38.1462 51.9412 +-8.96275 -37.7493 51.4007 +-9.50415 -37.6429 51.2559 +-10.0587 -37.5924 51.1872 +-10.6126 -37.5391 51.1145 +-11.3045 -37.9491 51.6728 +-11.8635 -37.8893 51.5914 +-12.1927 -37.1293 50.5565 +-12.9789 -37.761 51.4166 +-13.5351 -37.6925 51.3234 +-14.0902 -37.6212 51.2262 +-14.6218 -37.4893 51.0467 +-15.4074 -37.9879 51.7256 +-15.9668 -37.9068 51.6152 +-16.5501 -37.8802 51.579 +-17.0821 -37.7361 51.3828 +-17.6377 -37.6464 51.2607 +-18.4401 -38.066 51.8319 +-19.0006 -37.9693 51.7002 +-19.6181 -37.9829 51.7188 +-20.1473 -37.8237 51.502 +-20.7041 -37.7182 51.3583 +-21.2911 -37.6659 51.2872 +-22.2037 -38.1702 51.9738 +-22.6989 -37.9424 51.6637 +-23.6336 -38.4356 52.3352 +-24.1993 -38.312 52.1669 +-24.7632 -38.1856 51.9948 +-25.3252 -38.0562 51.8186 +-26.2225 -38.4179 52.3111 +-26.7878 -38.281 52.1247 +-27.5075 -38.3591 52.231 +-28.0321 -38.1612 51.9616 +-28.9596 -38.5017 52.4252 +-29.1944 -37.9197 51.6328 +-30.5976 -38.8404 52.8864 +-30.7815 -38.2 52.0144 +-31.6942 -38.4652 52.3755 +-32.2155 -38.2471 52.0785 +-33.2775 -38.6593 52.6399 +-34.077 -38.7485 52.7613 +-34.9287 -38.8846 52.9465 +-35.5483 -38.7547 52.7697 +-35.7789 -38.2072 52.0242 +-36.5378 -38.227 52.0512 +-37.55 -38.4982 52.4204 +-38.2684 -38.4557 52.3626 +-38.9884 -38.4088 52.2988 +-39.7621 -38.4078 52.2974 +-40.6448 -38.5022 52.4259 +-41.5333 -38.5903 52.5459 +-42.4274 -38.6721 52.6573 +-42.9959 -38.4515 52.3569 +-44.1762 -38.7678 52.7875 +-44.4629 -38.2942 52.1427 +-45.8288 -38.7419 52.7522 +-46.6304 -38.6965 52.6904 +-47.3167 -38.5499 52.4908 +-48.3591 -38.6847 52.6744 +-49.2887 -38.717 52.7184 +-50.2228 -38.7427 52.7534 +-50.8536 -38.5285 52.4617 +-51.98 -38.6812 52.6697 +-53.1146 -38.8253 52.8658 +-53.6214 -38.5038 52.4281 +-54.8298 -38.6788 52.6663 +-55.9175 -38.7542 52.769 +-56.5523 -38.5085 52.4345 +-57.913 -38.7469 52.7591 +-59.0173 -38.7982 52.829 +-59.9924 -38.7537 52.7683 +-61.6527 -39.135 53.2876 +-62.2273 -38.815 52.8518 +-63.4223 -38.8753 52.934 +-64.4136 -38.7996 52.8308 +-65.6195 -38.8421 52.8887 +-66.7602 -38.8335 52.8771 +-68.4811 -39.1451 53.3013 +-69.0556 -38.7899 52.8177 +-70.9413 -39.1583 53.3193 +-72.4006 -39.2703 53.4718 +-73.4227 -39.1325 53.2841 +-75.3449 -39.4577 53.727 +-77.0558 -39.6495 53.9881 +-77.6374 -39.25 53.4441 +-79.8218 -39.6465 53.984 +-81.0206 -39.5339 53.8306 +-83.3878 -39.9706 54.4254 +-83.6608 -39.391 53.6361 +-85.8144 -39.6862 54.038 +-87.1895 -39.6018 53.9231 +-89.1277 -39.7555 54.1324 +-91.4789 -40.0681 54.5581 +-94.0078 -40.4291 55.0496 +-94.9259 -40.0795 54.5736 +-97.3153 -40.3346 54.9209 +-98.6479 -40.1321 54.6452 +-100.811 -40.2499 54.8056 +-102.902 -40.3157 54.8952 +-104.582 -40.2017 54.74 +-106.773 -40.2642 54.8252 +-109.313 -40.4326 55.0545 +-111.525 -40.4541 55.0836 +-113.918 -40.5167 55.1689 +-115.803 -40.3774 54.9792 +-119.165 -40.7247 55.4521 +-122.024 -40.8655 55.6438 +-124.983 -41.0084 55.8384 +-97.5487 -31.3513 42.689 +-98.7135 -31.0685 42.3039 +-98.3695 -30.3114 41.2731 +-98.8126 -29.8021 40.5796 +-98.4428 -29.0529 39.5595 +-98.8673 -28.5433 38.8655 +-98.4721 -27.8022 37.8564 +-98.0625 -27.0673 36.8558 +-98.4578 -26.5597 36.1646 +-98.8456 -26.0501 35.4707 +-98.4923 -25.3498 34.5171 +-98.7702 -24.8169 33.7915 +-98.9475 -24.2604 33.0338 +-98.9305 -23.6597 32.2158 +-98.3451 -22.9308 31.2234 +-98.4927 -22.3795 30.4727 +-97.0392 -21.4761 29.2425 +-96.6944 -20.8323 28.3659 +-67.1161 -14.0684 19.156 +-49.9234 -10.1753 13.855 +-44.1919 -8.7525 11.9177 +-40.2297 -7.73734 10.5354 +-36.9088 -6.88845 9.37955 +-35.4789 -6.42065 8.74258 +-31.9287 -5.59829 7.62282 +-16.5337 -2.80631 3.82117 +-15.6108 -2.56261 3.48934 +-15.9378 -2.52784 3.44199 +-15.1999 -2.32685 3.16832 +-14.7485 -2.17665 2.9638 +-15.2662 -2.16947 2.95403 +-13.9335 -1.90412 2.59271 +-14.9373 -1.96019 2.66906 +-14.1831 -1.7845 2.42984 +-14.2089 -1.71117 2.32999 +-14.2336 -1.63771 2.22996 +-13.8639 -1.52097 2.07101 +-14.2797 -1.49042 2.0294 +-13.4135 -1.32867 1.80917 +-15.0129 -1.40749 1.91648 +-13.5495 -1.19865 1.63212 +-13.9628 -1.16157 1.58163 +-13.4837 -1.05077 1.43076 +-14.1934 -1.03157 1.40462 +-14.4068 -0.971621 1.32299 +-12.8293 -0.798169 1.08681 +-13.3383 -0.760232 1.03516 +-13.0502 -0.675829 0.920231 +-13.7575 -0.640905 0.872678 +-13.4671 -0.557426 0.759011 +-14.473 -0.523978 0.713466 +-12.7825 -0.396533 0.539933 +-13.2873 -0.3434 0.467586 +-13.3918 -0.276817 0.376924 +-12.7956 -0.198335 0.270059 +-12.4981 -0.129132 0.175831 +-12.7995 -0.0661184 0.0900291 +31.1 1.77636e-15 -1.7053e-13 +32.1988 -0.164278 0.22797 +35.7945 -0.365276 0.506896 +36.7874 -0.563183 0.781534 +39.0762 -0.797771 1.10707 +36.6651 -0.935897 1.29875 +34.4527 -1.05561 1.46487 +34.4357 -1.23133 1.70873 +31.922 -1.30502 1.81099 +32.998 -1.51829 2.10694 +26.698 -1.36557 1.89501 +15.8268 -0.89095 1.23638 +22.1778 -1.36277 1.89112 +32.6885 -2.1774 3.02159 +37.419 -2.68607 3.72749 +42.2356 -3.2508 4.51116 +50.8008 -4.17403 5.79233 +62.6047 -5.47002 7.59079 +75.6569 -7.00559 9.72171 +92.0204 -9.00269 12.4931 +94.5415 -9.74593 13.5245 +94.3925 -10.2279 14.1933 +95.1197 -10.8095 15.0004 +94.9547 -11.2944 15.6733 +94.7825 -11.7783 16.3449 +95.4817 -12.3754 17.1734 +95.196 -12.8489 17.8305 +95.0978 -13.3477 18.5228 +94.8949 -13.8324 19.1953 +95.653 -14.4623 20.0695 +95.5301 -14.9649 20.767 +95.3031 -15.4518 21.4425 +95.8378 -16.0663 22.2953 +95.5943 -16.5546 22.973 +96.013 -17.1613 23.8149 +95.8486 -17.6681 24.5182 +95.5812 -18.1564 25.1959 +96.0652 -18.7918 26.0776 +95.8756 -19.3002 26.7831 +96.338 -19.9448 27.6775 +96.0366 -20.4355 28.3585 +96.4772 -21.0885 29.2647 +96.0654 -21.559 29.9175 +96.6704 -22.2625 30.8938 +96.3344 -22.7548 31.577 +96.0835 -23.2678 32.289 +96.653 -23.9856 33.285 +96.2913 -24.4778 33.968 +96.8358 -25.2059 34.9784 +96.4559 -25.699 35.6627 +96.1593 -26.2148 36.3785 +96.4864 -26.9057 37.3373 +96.0811 -27.397 38.019 +96.3844 -28.0948 38.9874 +96.5851 -28.7713 39.9261 +95.7972 -29.155 40.4586 +95.1818 -29.5876 41.059 +95.088 -30.1837 41.8862 +94.4589 -30.611 42.4791 +94.5206 -31.2645 43.386 +94.9164 -32.0378 44.4592 +94.2622 -32.4615 45.0471 +94.2884 -33.1219 45.9635 +94.4725 -33.846 46.9683 +94.8966 -34.6675 48.1084 +93.9538 -34.9933 48.5604 +95.1052 -36.1081 50.1075 +93.9789 -36.366 50.4654 +94.4274 -37.2364 51.6733 +92.3845 -37.1207 51.5127 +90.844 -37.1882 51.6064 +88.9014 -37.0732 51.4467 +88.102 -37.4222 51.9311 +85.6911 -37.0704 51.4429 +84.4158 -37.1895 51.6082 +83.4608 -37.4408 51.9569 +82.1107 -37.5053 52.0463 +80.3739 -37.3769 51.8682 +79.4243 -37.6015 52.1799 +77.7798 -37.4847 52.0178 +76.298 -37.4291 51.9406 +75.2802 -37.5892 52.1628 +73.8106 -37.5115 52.055 +71.9746 -37.2281 51.6617 +70.7474 -37.2418 51.6807 +69.5253 -37.2459 51.6864 +68.7472 -37.4795 52.0106 +67.3147 -37.3459 51.8252 +66.1073 -37.3224 51.7926 +64.9058 -37.2894 51.7468 +63.9225 -37.3711 51.8602 +62.5912 -37.2371 51.6743 +62.033 -37.555 52.1154 +60.4375 -37.234 51.6699 +59.6749 -37.4126 51.9178 +58.7088 -37.457 51.9794 +58.1474 -37.7551 52.3931 +56.3227 -37.2184 51.6482 +55.765 -37.5043 52.045 +54.6835 -37.4318 51.9444 +54.0584 -37.6645 52.2673 +52.3492 -37.1269 51.5213 +51.7301 -37.3471 51.8269 +50.6727 -37.2436 51.6832 +50.1148 -37.5007 52.04 +48.5183 -36.9665 51.2987 +48.4461 -37.5861 52.1585 +46.872 -37.0329 51.3908 +46.3175 -37.2706 51.7207 +45.1787 -37.0295 51.3862 +44.6242 -37.2586 51.7041 +43.3301 -36.8585 51.1489 +43.3934 -37.6113 52.1935 +42.1128 -37.1975 51.6193 +41.6104 -37.4599 51.9835 +40.5124 -37.1777 51.5919 +39.9029 -37.3334 51.8079 +38.8739 -37.087 51.4659 +38.3188 -37.2839 51.7391 +37.7609 -37.478 52.0085 +37.2 -37.6692 52.2738 +36.1931 -37.3996 51.8997 +35.6335 -37.5828 52.1539 +34.6894 -37.3521 51.8339 +34.0836 -37.4761 52.0059 +33.1074 -37.1818 51.5975 +32.5511 -37.3493 51.83 +31.9924 -37.514 52.0584 +31.0367 -37.2028 51.6267 +30.4371 -37.307 51.7712 +29.8791 -37.4609 51.9848 +28.9871 -37.1863 51.6037 +28.4309 -37.3327 51.8069 +27.9124 -37.53 52.0807 +26.9604 -37.1328 51.5295 +26.4817 -37.377 51.8683 +25.8104 -37.348 51.8282 +24.9954 -37.0975 51.4805 +24.4407 -37.2236 51.6555 +23.604 -36.9088 51.2187 +23.2916 -37.4124 51.9175 +22.4652 -37.0889 51.4686 +21.9107 -37.2021 51.6257 +21.4181 -37.4233 51.9327 +20.7968 -37.42 51.9281 +20.027 -37.1344 51.5317 +19.4135 -37.1233 51.5163 +18.9154 -37.3331 51.8074 +18.0818 -36.8662 51.1595 +17.7446 -37.4077 51.911 +17.3409 -37.8356 52.5048 +16.3749 -37.0171 51.3689 +15.8459 -37.1559 51.5616 +15.2673 -37.1785 51.5929 +14.9368 -37.8246 52.4896 +14.1335 -37.2715 51.722 +13.7638 -37.8569 52.5343 +12.9988 -37.3528 51.8348 +12.4407 -37.4177 51.9248 +11.9 -37.5372 52.0906 +11.3392 -37.5965 52.1729 +10.6291 -37.134 51.5311 +10.1995 -37.6487 52.2454 +9.50415 -37.1789 51.5935 +9.088 -37.8049 52.4622 +8.41894 -37.3862 51.8811 +7.94588 -37.8339 52.5024 +7.29029 -37.4083 51.9118 +6.74209 -37.5022 52.0421 +6.1533 -37.3606 51.8455 +5.60411 -37.4488 51.968 +5.04492 -37.476 52.0057 +4.47837 -37.4419 51.9585 +3.92542 -37.5217 52.0692 +3.37044 -37.5987 52.176 +2.75675 -36.9136 51.2252 +2.20565 -36.9262 51.2428 +1.657 -36.9945 51.3376 +1.12219 -37.5861 52.1585 +0.553262 -37.0643 51.4344 +7.99361e-15 -37.0072 51.3552 +-0.553262 -37.0643 51.4344 +-1.10299 -36.9431 51.2663 +-1.6858 -37.6374 52.2297 +-2.24404 -37.5689 52.1347 +-2.80909 -37.6145 52.1979 +-3.37044 -37.5987 52.176 +-3.92542 -37.5217 52.0692 +-4.48534 -37.5003 52.0394 +-5.03707 -37.4177 51.9248 +-5.67384 -37.9147 52.6146 +-6.1533 -37.3606 51.8455 +-6.79435 -37.7929 52.4455 +-7.35821 -37.7568 52.3954 +-7.92151 -37.7178 52.3413 +-8.49726 -37.734 52.3637 +-9.10192 -37.8628 52.5425 +-9.51893 -37.2367 51.6737 +-10.1213 -37.36 51.8447 +-10.5961 -37.0186 51.371 +-11.2003 -37.1359 51.5338 +-11.8635 -37.4222 51.9311 +-12.4217 -37.3603 51.8451 +-12.9789 -37.2955 51.7553 +-13.5351 -37.2278 51.6614 +-14.0686 -37.1003 51.4844 +-14.8918 -37.7107 52.3314 +-15.2206 -37.0648 51.4351 +-15.991 -37.4963 52.0339 +-16.5501 -37.4133 51.9187 +-17.3409 -37.8356 52.5048 +-17.7179 -37.3514 51.8328 +-18.4677 -37.6529 52.2513 +-19.0574 -37.6134 52.1964 +-19.6474 -37.5706 52.137 +-20.448 -37.915 52.615 +-20.7659 -37.3644 51.8509 +-21.3546 -37.3125 51.7789 +-22.2689 -37.8102 52.4695 +-22.7322 -37.5298 52.0804 +-23.6678 -38.0167 52.7561 +-24.3044 -38.004 52.7385 +-24.8707 -37.8786 52.5644 +-25.5085 -37.8591 52.5373 +-26.3723 -38.1611 52.9565 +-26.9026 -37.9711 52.6928 +-27.5856 -37.9938 52.7243 +-28.3112 -38.0662 52.8247 +-29.163 -38.2941 53.141 +-29.9409 -38.4099 53.3017 +-30.3863 -38.0967 52.8671 +-30.8676 -37.8347 52.5035 +-31.6504 -37.9385 52.6475 +-32.4832 -38.0895 52.8571 +-33.1413 -38.0265 52.7697 +-33.8923 -38.0634 52.8209 +-34.9287 -38.4052 53.2953 +-34.9757 -37.6604 52.2617 +-35.8759 -37.8385 52.5088 +-36.9318 -38.1629 52.9589 +-37.6 -38.0742 52.8359 +-38.2176 -37.9313 52.6376 +-39.0914 -38.0356 52.7823 +-39.5531 -37.735 52.3652 +-40.6448 -38.0276 52.7712 +-41.8019 -38.3612 53.2341 +-42.4274 -38.1954 53.0041 +-42.9959 -37.9775 52.7017 +-44.1203 -38.2414 53.0679 +-44.6895 -38.0149 52.7536 +-45.7714 -38.2164 53.0332 +-46.6885 -38.267 53.1035 +-47.2579 -38.0274 52.7709 +-48.3591 -38.2078 53.0213 +-49.409 -38.3332 53.1952 +-50.4054 -38.4043 53.294 +-51.0999 -38.2378 53.0629 +-52.0422 -38.2501 53.08 +-52.8629 -38.165 52.9618 +-54.2575 -38.4802 53.3993 +-55.0226 -38.3363 53.1996 +-55.9824 -38.3209 53.1782 +-56.8147 -38.2103 53.0247 +-57.913 -38.2693 53.1065 +-58.6158 -38.0593 52.8151 +-59.5871 -38.0174 52.757 +-61.3117 -38.4388 53.3418 +-62.2273 -38.3365 53.1999 +-63.8391 -38.6484 53.6328 +-64.4837 -38.363 53.2366 +-66.2559 -38.7353 53.7533 +-67.3308 -38.6826 53.6802 +-68.697 -38.7844 53.8215 +-69.4909 -38.5532 53.5006 +-71.3801 -38.9149 54.0025 +-72.1795 -38.6677 53.6595 +-74.6861 -39.3151 54.5579 +-76.1688 -39.3975 54.6722 +-77.5087 -39.3909 54.6631 +-78.5499 -39.2218 54.4284 +-80.1282 -39.3081 54.5481 +-81.4836 -39.2697 54.4948 +-83.5432 -39.5515 54.8859 +-84.7565 -39.4149 54.6964 +-86.0508 -39.3049 54.5438 +-87.9036 -39.4339 54.7227 +-89.527 -39.4413 54.733 +-91.4789 -39.5742 54.9174 +-93.5224 -39.7246 55.1261 +-95.6586 -39.891 55.357 +-98.0525 -40.1391 55.7014 +-98.9776 -39.7698 55.1889 +-101.806 -40.146 55.711 +-104.403 -40.3995 56.0628 +-106.008 -40.2475 55.8517 +-107.532 -40.0506 55.5786 +-110.077 -40.213 55.804 +-112.293 -40.2303 55.828 +-115.203 -40.4689 56.159 +-116.837 -40.2357 55.8354 +-119.771 -40.4273 56.1013 +-122.807 -40.6208 56.3698 +-124.109 -40.2195 55.8129 +-97.8123 -31.0485 43.0863 +-98.537 -30.6306 42.5064 +-99.0791 -30.1537 41.8446 +-98.8126 -29.4348 40.8469 +-98.4428 -28.6948 39.82 +-98.8673 -28.1914 39.1215 +-98.3818 -27.4343 38.0708 +-98.8782 -26.956 37.4071 +-98.4578 -26.2323 36.4028 +-98.8456 -25.729 35.7044 +-98.4005 -25.014 34.7121 +-97.9417 -24.3054 33.7288 +-98.9475 -23.9614 33.2514 +-98.3742 -23.2367 32.2457 +-97.8799 -22.541 31.2803 +-98.5861 -22.1246 30.7025 +-97.9759 -21.4161 29.7192 +-96.6944 -20.5755 28.5528 +-73.4318 -15.2025 21.0967 +-50.3016 -10.1259 14.0519 +-44.3815 -8.68173 12.0477 +-40.2297 -7.64196 10.6048 +-36.8135 -6.78594 9.4169 +-36.3396 -6.49532 9.01361 +-32.2163 -5.5791 7.74216 +-16.4376 -2.7556 3.82397 +-16.189 -2.62476 3.64241 +-15.9378 -2.49668 3.46466 +-15.1999 -2.29817 3.18919 +-15.6218 -2.27711 3.15996 +-15.2662 -2.14273 2.97348 +-14.3232 -1.93325 2.68279 +-14.1563 -1.83479 2.54616 +-14.6722 -1.82328 2.53018 +-13.425 -1.59683 2.21593 +-14.3318 -1.62867 2.26012 +-14.5522 -1.57681 2.18815 +-13.8858 -1.43144 1.98642 +-14.597 -1.42808 1.98176 +-14.8153 -1.37185 1.90373 +-14.2418 -1.24437 1.72682 +-13.7647 -1.13098 1.56947 +-14.6734 -1.12939 1.56726 +-13.7964 -0.990355 1.37432 +-15.1023 -1.00597 1.39599 +-13.426 -0.824992 1.14485 +-13.4378 -0.756467 1.04976 +-13.7475 -0.703166 0.975789 +-12.8602 -0.591718 0.821132 +-13.2676 -0.542399 0.752691 +-13.6744 -0.488966 0.678542 +-13.9808 -0.428362 0.594441 +-12.6879 -0.323866 0.449432 +-13.6917 -0.279526 0.387901 +-13.3954 -0.205072 0.28458 +-12.1981 -0.124479 0.172741 +-12.2995 -0.0627521 0.0870815 +31.1 1.77636e-15 -1.7053e-13 +32.7988 -0.165237 0.233718 +35.7945 -0.360687 0.510171 +37.0873 -0.560642 0.792996 +39.0762 -0.787749 1.11423 +35.1665 -0.886368 1.25372 +34.4527 -1.04234 1.47434 +32.7388 -1.15596 1.63503 +31.922 -1.28863 1.82269 +31.0041 -1.40863 1.99242 +26.698 -1.34841 1.90725 +17.3199 -0.962754 1.36176 +22.1778 -1.34565 1.90334 +33.1853 -2.18272 3.08733 +37.419 -2.65233 3.75157 +43.227 -3.28531 4.64688 +50.8008 -4.12159 5.82976 +64.0882 -5.52929 7.82087 +75.6569 -6.91758 9.78453 +93.7958 -9.06111 12.8164 +94.5415 -9.6235 13.6119 +95.2774 -10.1941 14.419 +95.1197 -10.6737 15.0973 +94.9547 -11.1525 15.7746 +94.7825 -11.6304 16.4505 +95.4817 -12.2199 17.2844 +95.196 -12.6875 17.9457 +95.0978 -13.1801 18.6424 +94.8949 -13.6586 19.3194 +94.6848 -14.1362 19.9948 +95.5301 -14.7769 20.9012 +95.2067 -15.2422 21.5593 +95.8378 -15.8644 22.4394 +95.4984 -16.3303 23.0982 +96.013 -16.9458 23.9688 +95.8486 -17.4462 24.6766 +95.5812 -17.9284 25.3587 +96.0652 -18.5558 26.2461 +95.8756 -19.0578 26.9561 +96.338 -19.6942 27.8564 +96.0366 -20.1788 28.5418 +96.4772 -20.8236 29.4538 +96.0654 -21.2881 30.1108 +96.7634 -22.004 31.1234 +96.3344 -22.469 31.7811 +96.1759 -22.9976 32.5288 +96.653 -23.6843 33.5001 +96.1996 -24.1473 34.1549 +96.8358 -24.8892 35.2044 +96.4559 -25.3761 35.8931 +96.1593 -25.8855 36.6135 +96.4864 -26.5677 37.5785 +96.0811 -27.0528 38.2647 +96.4739 -27.7676 39.2757 +96.5851 -28.4098 40.1841 +97.2164 -29.2151 41.3232 +95.1818 -29.216 41.3243 +94.2971 -29.5566 41.8062 +94.4589 -30.2264 42.7536 +94.6077 -30.9001 43.7065 +94.9164 -31.6354 44.7464 +94.3484 -32.0831 45.3797 +94.2884 -32.7058 46.2605 +94.4725 -33.4208 47.2718 +94.8966 -34.232 48.4192 +94.5442 -34.7708 49.1813 +95.1052 -35.6545 50.4313 +93.9789 -35.9092 50.7915 +94.4274 -36.7687 52.0072 +93.6207 -37.1448 52.5393 +90.844 -36.721 51.9398 +89.6341 -36.9091 52.2059 +88.102 -36.9521 52.2666 +87.0577 -37.1885 52.601 +84.4158 -36.7223 51.9416 +83.8574 -37.1462 52.5412 +82.1107 -37.0341 52.3826 +81.2347 -37.3026 52.7624 +79.4243 -37.1291 52.517 +78.86 -37.5279 53.081 +76.298 -36.9589 52.2763 +75.9646 -37.4544 52.9771 +73.8106 -37.0403 52.3914 +73.0981 -37.3342 52.8071 +70.7474 -36.7739 52.0146 +69.7464 -36.8949 52.1858 +68.7472 -37.0086 52.3466 +67.75 -37.1152 52.4973 +66.1073 -36.8535 52.1272 +65.9757 -37.4279 52.9397 +63.9225 -36.9017 52.1953 +62.8015 -36.8928 52.1828 +62.033 -37.0832 52.4521 +61.4701 -37.3943 52.8922 +59.6749 -36.9426 52.2532 +58.9115 -37.1142 52.4959 +58.1474 -37.2808 52.7316 +57.3829 -37.4426 52.9605 +55.765 -37.0332 52.3813 +55.2031 -37.3127 52.7767 +54.0584 -37.1914 52.6051 +53.3034 -37.3286 52.7992 +51.7301 -36.8779 52.1618 +51.7932 -37.5889 53.1674 +50.1148 -37.0296 52.3763 +49.4923 -37.2348 52.6666 +48.4461 -37.1139 52.4956 +47.3479 -36.9389 52.248 +46.3175 -36.8024 52.0549 +45.7013 -36.9873 52.3165 +44.6242 -36.7905 52.0381 +44.1797 -37.1091 52.4887 +43.3934 -37.1388 52.5308 +42.8303 -37.356 52.8379 +41.6104 -36.9894 52.3194 +41.2109 -37.3436 52.8205 +39.9029 -36.8644 52.1427 +39.3964 -37.1133 52.4947 +38.3188 -36.8155 52.0734 +38.0654 -37.3056 52.7667 +37.2 -37.196 52.6116 +36.6363 -37.382 52.8747 +35.6335 -37.1107 52.4909 +35.0712 -37.2888 52.7429 +34.0836 -37.0053 52.3419 +33.5229 -37.1756 52.5828 +32.5511 -36.8801 52.1649 +31.9924 -37.0427 52.3948 +31.0367 -36.7355 51.9602 +30.9107 -37.4115 52.9164 +29.8791 -36.9903 52.3207 +29.692 -37.6121 53.2002 +28.4309 -36.8637 52.1417 +28.5504 -37.9056 53.6153 +26.9604 -36.6663 51.8624 +26.7496 -37.2808 52.7316 +25.8104 -36.8789 52.1631 +25.3252 -37.1149 52.497 +24.4407 -36.756 51.9893 +24.1993 -37.3644 52.8498 +23.2916 -36.9424 52.253 +23.0327 -37.5481 53.1097 +21.9107 -36.7348 51.9593 +21.6084 -37.2817 52.7329 +20.7968 -36.9499 52.2636 +20.2074 -36.9983 52.3319 +19.4135 -36.657 51.8492 +19.0858 -37.1962 52.6119 +18.0818 -36.4031 51.4901 +17.905 -37.2715 52.7185 +17.3409 -37.3603 52.8441 +16.8005 -37.5022 53.0447 +15.8459 -36.6892 51.8948 +15.5241 -37.3289 52.7997 +14.9368 -37.3495 52.8287 +14.3716 -37.4233 52.9332 +13.7638 -37.3813 52.8738 +13.1982 -37.4492 52.9698 +12.4407 -36.9476 52.2603 +11.9 -37.0656 52.4272 +11.3392 -37.1242 52.51 +10.7941 -37.2368 52.6694 +10.1995 -37.1758 52.583 +9.78498 -37.7967 53.4613 +9.088 -37.33 52.8012 +8.53641 -37.4316 52.9449 +7.94588 -37.3586 52.8416 +7.38085 -37.3972 52.8962 +6.74209 -37.0311 52.3784 +6.32582 -37.9255 53.6435 +5.60411 -36.9783 52.3038 +5.10769 -37.4656 52.9929 +4.47837 -36.9716 52.2942 +3.97426 -37.5113 53.0577 +3.37044 -37.1264 52.5131 +2.83526 -37.488 53.0246 +2.20565 -36.4624 51.5739 +1.70412 -37.5686 53.1386 +1.12219 -37.1139 52.4956 +0.553262 -36.5987 51.7667 +7.99361e-15 -36.5423 51.687 +-0.561989 -37.1759 52.5832 +-1.10299 -36.479 51.5975 +-1.70412 -37.5686 53.1386 +-2.24404 -37.097 52.4716 +-2.84398 -37.6033 53.1878 +-3.37044 -37.1264 52.5131 +-3.98036 -37.569 53.1392 +-4.48534 -37.0292 52.3757 +-5.10769 -37.4656 52.9929 +-5.67384 -37.4384 52.9546 +-6.26831 -37.5808 53.1559 +-6.79435 -37.3181 52.7844 +-7.47141 -37.856 53.5452 +-7.92151 -37.244 52.6795 +-8.57557 -37.6033 53.1878 +-9.10192 -37.3872 52.882 +-9.63717 -37.2257 52.6537 +-10.1213 -36.8906 52.1797 +-10.7611 -37.1229 52.5083 +-11.2003 -36.6694 51.8668 +-11.8453 -36.8954 52.1864 +-12.4217 -36.8909 52.1801 +-12.9589 -36.7704 52.0096 +-13.5351 -36.7602 51.9952 +-14.2201 -37.0287 52.3751 +-14.8918 -37.237 52.6696 +-15.3374 -36.8799 52.1645 +-15.991 -37.0252 52.3701 +-16.7003 -37.2786 52.7285 +-17.3409 -37.3603 52.8441 +-17.8248 -37.1047 52.4825 +-18.4677 -37.1799 52.5889 +-19.2562 -37.5283 53.0817 +-19.6474 -37.0986 52.4739 +-20.3879 -37.3286 52.7992 +-20.7659 -36.895 52.1859 +-21.6084 -37.2817 52.7329 +-22.2689 -37.3352 52.8086 +-23.0327 -37.5481 53.1097 +-23.6678 -37.5391 53.097 +-24.1993 -37.3644 52.8498 +-24.8707 -37.4028 52.9041 +-25.4718 -37.3297 52.8008 +-26.3723 -37.6817 53.2986 +-26.8644 -37.4407 52.9578 +-27.5856 -37.5165 53.065 +-28.3909 -37.6938 53.3158 +-29.163 -37.813 53.4844 +-29.692 -37.6121 53.2002 +-30.3863 -37.6181 53.2087 +-31.2551 -37.8283 53.506 +-31.6504 -37.4619 52.9877 +-32.3493 -37.456 52.9794 +-33.1413 -37.5488 53.1107 +-34.1694 -37.8925 53.5968 +-34.9287 -37.9228 53.6396 +-35.4529 -37.6946 53.3169 +-35.8759 -37.3632 52.8481 +-37.0795 -37.8342 53.5143 +-37.6 -37.5959 53.1773 +-38.6237 -37.8528 53.5406 +-39.0914 -37.5578 53.1233 +-40.0234 -37.7039 53.3301 +-40.6448 -37.5499 53.1121 +-41.8019 -37.8793 53.5781 +-42.4274 -37.7156 53.3466 +-43.4374 -37.8855 53.587 +-44.1203 -37.761 53.4108 +-45.3691 -38.1082 53.9019 +-45.7714 -37.7363 53.3759 +-46.9789 -38.0213 53.7789 +-47.2579 -37.5497 53.1119 +-48.716 -38.0063 53.7577 +-49.409 -37.8516 53.5389 +-50.8316 -38.2424 54.0917 +-51.0999 -37.7574 53.4058 +-52.976 -38.4474 54.3816 +-52.8629 -37.6855 53.304 +-54.7027 -38.3086 54.1854 +-55.0226 -37.8547 53.5434 +-56.502 -38.1906 54.0185 +-56.8147 -37.7303 53.3673 +-58.7744 -38.3506 54.2448 +-58.6158 -37.5811 53.1564 +-61.0058 -38.4336 54.3621 +-61.3117 -37.9559 53.6865 +-63.0533 -38.3575 54.2545 +-63.8391 -38.1629 53.9793 +-66.0957 -38.8281 54.9201 +-66.2559 -38.2487 54.1006 +-68.3294 -38.7632 54.8283 +-68.697 -38.2972 54.1692 +-70.9416 -38.8636 54.9704 +-71.3801 -38.426 54.3514 +-73.654 -38.962 55.1096 +-74.6861 -38.8212 54.9104 +-76.9178 -39.2851 55.5665 +-77.5087 -38.8961 55.0163 +-79.5385 -39.2165 55.4695 +-80.1282 -38.8143 54.9006 +-82.4867 -39.2537 55.5222 +-83.5432 -39.0546 55.2405 +-85.4608 -39.2432 55.5073 +-86.0508 -38.8112 54.8962 +-88.6969 -39.2899 55.5734 +-89.527 -38.9458 55.0867 +-92.6847 -39.5922 56.0009 +-93.5224 -39.2255 55.4823 +-97.0426 -39.9597 56.5208 +-98.0525 -39.6349 56.0613 +-99.8017 -39.5972 56.008 +-101.806 -39.6417 56.071 +-103.986 -39.7327 56.1996 +-106.008 -39.7419 56.2126 +-109.472 -40.2609 56.9468 +-110.077 -39.7079 56.1645 +-113.657 -40.2076 56.8713 +-115.203 -39.9605 56.5219 +-117.699 -40.0232 56.6105 +-119.771 -39.9194 56.4638 +-124.896 -40.7928 57.6991 +-124.109 -39.7142 56.1735 +-98.4275 -30.8513 43.6374 +-98.537 -30.2458 42.781 +-98.3695 -29.5617 41.8133 +-98.8126 -29.065 41.1108 +-99.1587 -28.5404 40.3687 +-98.8673 -27.8373 39.3743 +-98.4721 -27.1145 38.3519 +-98.8782 -26.6174 37.6488 +-98.4578 -25.9028 36.638 +-98.8456 -25.4058 35.9351 +-98.4005 -24.6997 34.9364 +-97.9417 -24 33.9467 +-98.8551 -23.6383 33.435 +-98.3742 -22.9448 32.4541 +-98.6243 -22.4271 31.7219 +-98.5861 -21.8467 30.9009 +-97.6949 -21.0864 29.8255 +-96.6944 -20.317 28.7373 +-91.8133 -18.7692 26.548 +-50.3016 -9.99874 14.1427 +-44.9505 -8.68252 12.2809 +-40.2297 -7.54596 10.6733 +-37.0042 -6.73545 9.52691 +-36.3396 -6.41372 9.07185 +-32.7916 -5.60738 7.93132 +-16.4376 -2.72099 3.84868 +-16.0926 -2.57637 3.64412 +-15.9378 -2.46531 3.48705 +-15.684 -2.34157 3.31202 +-15.6218 -2.2485 3.18038 +-15.6552 -2.16972 3.06894 +-14.3232 -1.90896 2.70012 +-14.6444 -1.87422 2.65097 +-14.6722 -1.80038 2.54653 +-14.0129 -1.64582 2.32793 +-14.3318 -1.60821 2.27473 +-12.1924 -1.30451 1.84515 +-13.8858 -1.41345 1.99925 +-14.1039 -1.3625 1.92718 +-14.8153 -1.35462 1.91603 +-15.2308 -1.31406 1.85866 +-13.7647 -1.11677 1.57961 +-14.376 -1.09259 1.54541 +-13.7964 -0.977914 1.3832 +-12.9164 -0.84956 1.20165 +-13.426 -0.814628 1.15225 +-14.3337 -0.796761 1.12697 +-13.7475 -0.694333 0.982094 +-13.4584 -0.611463 0.86488 +-13.2676 -0.535585 0.757555 +-14.6726 -0.518066 0.732775 +-13.9808 -0.42298 0.598282 +-14.0866 -0.355051 0.5022 +-13.6917 -0.276015 0.390407 +-12.5957 -0.190407 0.26932 +-12.1981 -0.122916 0.173857 +-12.4995 -0.0629717 0.0890699 +32.8 0 -1.7053e-13 +53.298 -0.265079 0.382195 +37.2943 -0.370998 0.53491 +47.0839 -0.70266 1.01311 +37.9769 -0.755804 1.08973 +39.6622 -0.986909 1.42294 +33.7537 -1.00815 1.45357 +34.6353 -1.20729 1.74069 +29.3284 -1.1688 1.68519 +25.7205 -1.15364 1.66333 +28.79 -1.43549 2.06971 +32.9476 -1.80804 2.60686 +28.145 -1.68589 2.43074 +37.3583 -2.42579 3.49754 +37.9153 -2.65317 3.82538 +46.4988 -3.48881 5.03023 +51.1969 -4.10065 5.91238 +93.8576 -7.99419 11.5262 +68.2493 -6.16051 8.88232 +94.782 -9.03941 13.0332 +94.7385 -9.52036 13.7266 +95.2774 -10.0638 14.5102 +95.1197 -10.5373 15.1929 +94.9547 -11.01 15.8744 +94.8803 -11.4936 16.5717 +95.677 -12.0884 17.4293 +95.3908 -12.551 18.0962 +95.195 -13.0249 18.7795 +95.186 -13.5254 19.5012 +95.8466 -14.1267 20.3681 +95.6267 -14.6029 21.0547 +96.1703 -15.1997 21.9152 +95.9339 -15.6774 22.604 +95.5943 -16.1378 23.2677 +96.2043 -16.7626 24.1685 +95.9439 -17.2404 24.8574 +95.5812 -17.6993 25.5191 +96.2549 -18.3548 26.4642 +95.9701 -18.8328 27.1535 +96.4322 -19.4615 28.06 +96.0366 -19.9209 28.7223 +95.8216 -20.4177 29.4386 +96.1588 -21.0365 30.3308 +95.833 -21.5139 31.0191 +96.5198 -22.2245 32.0437 +96.2682 -22.7255 32.766 +95.8246 -23.1812 33.423 +96.4747 -23.9068 34.4693 +96.1963 -24.4089 35.1932 +95.8189 -24.8864 35.8816 +96.3405 -25.6028 36.9146 +95.8546 -26.0565 37.5687 +96.171 -26.7321 38.5427 +96.5634 -27.4382 39.5608 +96.9415 -28.1503 40.5875 +96.5955 -28.6576 41.319 +95.7115 -29.0032 41.8172 +96.4062 -29.8316 43.0117 +94.6339 -29.8955 43.1038 +96.9576 -31.263 45.0755 +95.0896 -31.2881 45.1117 +94.693 -31.7888 45.8336 +94.6313 -32.4052 46.7224 +94.7283 -33.0831 47.6997 +94.1333 -33.5227 48.3336 +94.3755 -34.2652 49.4041 +94.6859 -35.0436 50.5265 +94.3959 -35.6076 51.3397 +94.6761 -36.3944 52.474 +94.1152 -36.8639 53.1509 +91.9908 -36.7094 52.9283 +94.6002 -38.4563 55.4469 +89.1537 -36.9153 53.2251 +94.0513 -39.6625 57.1861 +85.454 -36.6989 52.9131 +90.6803 -39.6552 57.1755 +83.6079 -37.2275 53.6753 +87.8086 -39.806 57.393 +80.046 -36.9416 53.263 +85.496 -40.1659 57.9118 +77.0641 -36.8529 53.1352 +82.6561 -40.2328 58.0084 +73.8861 -36.6043 52.7767 +80.1383 -40.4068 58.2592 +71.7878 -36.8379 53.1135 +76.6768 -40.0427 57.7343 +69.2592 -36.8078 53.0701 +74.7136 -40.407 58.2594 +67.3302 -37.0556 53.4274 +70.6118 -39.5461 57.0182 +65.0538 -37.0749 53.4551 +68.3387 -39.6327 57.143 +62.2414 -36.7323 52.9613 +66.7016 -40.0583 57.7568 +60.4933 -36.9707 53.305 +64.5864 -40.1694 57.9169 +58.1474 -36.8044 53.0652 +62.5513 -40.2935 58.0958 +56.4867 -37.0331 53.3949 +60.3987 -40.3028 58.1093 +54.3156 -36.8908 53.1897 +58.2648 -40.2817 58.0789 +52.9258 -37.2482 53.7051 +56.4621 -40.4537 58.3269 +50.7305 -37.0055 53.3551 +54.058 -40.1501 57.8891 +49.1081 -37.1403 53.5496 +52.2254 -40.2235 57.9949 +47.3755 -37.1621 53.5809 +50.4631 -40.3192 58.133 +45.6567 -37.1607 53.579 +48.4277 -40.1575 57.8997 +43.9526 -37.1367 53.5444 +46.6387 -40.1578 57.9002 +42.3185 -37.1381 53.5463 +44.3809 -39.7023 57.2435 +40.4328 -36.8767 53.1694 +43.0539 -40.0405 57.7311 +39.0399 -37.029 53.389 +41.3644 -40.0207 57.7025 +37.65 -37.1648 53.5849 +39.7386 -40.0292 57.7148 +35.682 -36.6863 52.8949 +38.0296 -39.9175 57.5537 +34.5531 -37.0356 53.3985 +36.8014 -40.2897 58.0904 +33.0959 -37.0182 53.3735 +34.8034 -39.7826 57.3591 +31.5627 -36.8807 53.1753 +33.5368 -40.0712 57.7753 +30.0059 -36.6726 52.8751 +31.7655 -39.7245 57.2754 +28.797 -36.8613 53.1472 +30.2252 -39.6163 57.1195 +27.6638 -37.142 53.552 +29.0457 -39.9636 57.6201 +26.2225 -36.9889 53.3311 +27.4876 -39.7691 57.3398 +24.7632 -36.7652 53.0086 +26.2656 -40.0365 57.7252 +23.6336 -37.0059 53.3557 +24.7351 -39.8081 57.396 +22.2037 -36.7504 52.9873 +23.5123 -40.0481 57.742 +21.0441 -36.9113 53.2194 +22.0417 -39.841 57.4435 +19.9105 -37.1151 53.5132 +20.5059 -39.4531 56.8841 +18.4953 -36.7596 53.0007 +19.3481 -39.7608 57.3278 +17.2891 -36.7728 53.0196 +18.1776 -40.0576 57.7557 +16.0878 -36.7733 53.0204 +16.7847 -39.8444 57.4483 +15.0267 -37.0943 53.4832 +15.5404 -39.9497 57.6001 +13.8469 -37.1266 53.5297 +14.3146 -40.0981 57.8141 +12.498 -36.6433 52.8329 +13.121 -40.3465 58.1722 +11.565 -37.3794 53.8943 +11.7514 -40.0211 57.7031 +10.3872 -37.3762 53.8896 +10.5092 -40.0756 57.7816 +9.11584 -36.9659 53.298 +9.26736 -40.1175 57.8421 +7.97026 -36.9943 53.339 +8.03743 -40.2036 57.9661 +6.81526 -36.9546 53.2818 +6.80505 -40.2774 58.0726 +5.71742 -37.2439 53.6989 +5.49998 -39.8276 57.4241 +4.54812 -37.0677 53.4448 +4.32834 -40.3313 58.1504 +3.37567 -36.7089 52.9274 +3.05336 -39.8558 57.4647 +2.27545 -37.1356 53.5427 +1.835 -39.9371 57.5819 +1.12219 -36.6397 52.8277 +0.612603 -40.0062 57.6816 +8.88178e-15 -37.2152 53.6574 +-0.61173 -39.9492 57.5994 +-1.13964 -37.2095 53.6493 +-1.85856 -40.4498 58.3212 +-2.27545 -37.1356 53.5427 +-3.05772 -39.9127 57.5468 +-3.41754 -37.1642 53.5839 +-4.33445 -40.3882 58.2324 +-4.61788 -37.6362 54.2644 +-5.56275 -40.2821 58.0794 +-5.76099 -37.5278 54.1081 +-6.78588 -40.1639 57.909 +-6.84661 -37.1247 53.527 +-8.13931 -40.7132 58.7009 +-8.06775 -37.4469 53.9915 +-9.41094 -40.739 58.7382 +-9.11584 -36.9659 53.298 +-10.4501 -39.8501 57.4565 +-10.1213 -36.4192 52.5098 +-11.6854 -39.7963 57.379 +-11.3566 -36.7059 52.9232 +-13.0663 -40.1784 57.9298 +-12.4407 -36.4755 52.5909 +-14.2947 -40.0423 57.7336 +-13.743 -36.8479 53.1279 +-15.5404 -39.9497 57.6001 +-14.8693 -36.7056 52.9228 +-16.7614 -39.789 57.3684 +-16.233 -37.1051 53.4987 +-18.2277 -40.1679 57.9148 +-17.1338 -36.4425 52.5435 +-19.455 -39.9805 57.6446 +-18.4953 -36.7596 53.0007 +-20.9319 -40.2727 58.0659 +-19.9105 -37.1151 53.5132 +-22.1921 -40.1128 57.8352 +-21.075 -36.9656 53.2976 +-23.7344 -40.4264 58.2874 +-22.3665 -37.0197 53.3757 +-25.2358 -40.6139 58.5579 +-23.7704 -37.2201 53.6645 +-26.4757 -40.3567 58.187 +-25.0141 -37.1376 53.5456 +-28.074 -40.6175 58.563 +-26.5596 -37.4644 54.0168 +-29.7728 -40.9639 59.0625 +-27.4293 -36.8273 53.0982 +-31.0227 -40.6616 58.6265 +-29.0003 -37.1216 53.5225 +-32.6364 -40.8136 58.8457 +-30.4708 -37.2407 53.6943 +-34.2687 -40.9457 59.0362 +-31.8696 -37.2393 53.6922 +-36.0528 -41.2106 59.4182 +-33.3229 -37.2721 53.7395 +-37.6325 -41.1996 59.4023 +-35.1165 -37.6395 54.2692 +-39.3179 -41.2698 59.5035 +-36.2638 -37.2845 53.7574 +-41.0189 -41.3189 59.5742 +-37.85 -37.3623 53.8695 +-42.7347 -41.3466 59.6142 +-39.4004 -37.3709 53.882 +-44.4646 -41.3526 59.6228 +-41.0158 -37.4083 53.9359 +-46.2615 -41.3846 59.669 +-42.5908 -37.377 53.8908 +-47.9633 -41.2984 59.5447 +-44.7914 -37.8454 54.5662 +-49.7871 -41.2847 59.525 +-46.345 -37.721 54.3867 +-51.7406 -41.34 59.6047 +-48.5511 -38.0842 54.9104 +-53.5341 -41.2314 59.4481 +-50.1312 -37.9141 54.6651 +-56.0061 -41.5969 59.9751 +-52.3928 -38.218 55.1034 +-57.7071 -41.3458 59.613 +-54.1845 -38.134 54.9823 +-60.0458 -41.5131 59.8543 +-56.4368 -38.3315 55.2669 +-61.8924 -41.2995 59.5464 +-57.6676 -37.8073 54.5112 +-64.738 -41.7021 60.1267 +-59.6195 -37.7362 54.4086 +-67.8293 -42.1863 60.8249 +-62.2665 -38.0544 54.8675 +-70.0745 -42.084 60.6774 +-64.8116 -38.2492 55.1483 +-73.1048 -42.3968 61.1284 +-67.8823 -38.6868 55.7793 +-75.6759 -42.3823 61.1074 +-69.9918 -38.5204 55.5394 +-78.2679 -42.3293 61.031 +-72.916 -38.7512 55.8721 +-81.248 -42.4299 61.1761 +-75.4292 -38.7065 55.8077 +-84.0328 -42.3706 61.0906 +-79.169 -39.2216 56.5503 +-87.1425 -42.4166 61.1569 +-81.2773 -38.8678 56.0402 +-91.1289 -42.8121 61.7273 +-84.0095 -38.7707 55.9003 +-94.7738 -42.9636 61.9456 +-87.4692 -38.9468 56.1541 +-98.3758 -43.0205 62.0277 +-91.4438 -39.2713 56.622 +-101.929 -42.9847 61.976 +-95.2213 -39.4277 56.8476 +-105.509 -42.891 61.8409 +-98.9536 -39.488 56.9344 +-110.186 -43.1585 62.2266 +-102.801 -39.5176 56.9771 +-114.242 -43.094 62.1337 +-107.434 -39.7617 57.3291 +-119.34 -43.3291 62.4726 +-112.027 -39.8951 57.5214 +-125.253 -43.7435 63.0701 +-115.718 -39.6259 57.1333 +-98.4842 -33.0614 47.6685 +-121.936 -40.1217 57.8481 +-98.8724 -31.8804 45.9657 +-97.8699 -30.9178 44.5777 +-98.9548 -30.6202 44.1487 +-98.7135 -29.9128 43.1288 +-98.4582 -29.2103 42.1158 +-98.9017 -28.7195 41.4082 +-98.5323 -27.9977 40.3675 +-98.9572 -27.5066 39.6594 +-98.6526 -26.8171 38.6653 +-99.0594 -26.3254 37.9564 +-98.4578 -25.5718 36.8698 +-99.0283 -25.1275 36.2293 +-98.4005 -24.3841 35.1574 +-98.8622 -23.916 34.4825 +-98.3932 -23.2272 33.4893 +-98.5596 -22.6942 32.7209 +-99.0895 -22.245 32.0732 +-98.8662 -21.6288 31.1848 +-98.9126 -21.0764 30.3883 +-96.0366 -19.9209 28.7223 +-97.7519 -19.7279 28.444 +-50.7743 -9.96375 14.3659 +-94.1685 -17.957 25.8907 +-38.6129 -7.15016 10.3092 +-45.3016 -8.14032 11.7368 +-34.9051 -6.08186 8.76892 +-38.5446 -6.5069 9.38175 +-16.8221 -2.74905 3.96363 +-22.9344 -3.62479 5.22628 +-15.9378 -2.43381 3.50911 +-16.2649 -2.39726 3.45641 +-15.4277 -2.1922 3.16074 +-17.7944 -2.43469 3.51037 +-15.1027 -1.98713 2.86508 +-16.7923 -2.12164 3.05902 +-13.1072 -1.58778 2.28929 +-15.5808 -1.80659 2.60477 +-14.5281 -1.60941 2.32047 +-3221.44 -340.27 490.607 +-14.9691 -1.50425 2.16885 +-3231.37 -308.176 444.334 +-14.4202 -1.30164 1.87673 +-3240.31 -275.99 397.926 +-12.6754 -1.01525 1.4638 +-14.6734 -1.10095 1.58736 +-13.4986 -0.944581 1.36191 +-14.8042 -0.961285 1.386 +-13.1277 -0.786351 1.13377 +-13.3383 -0.731953 1.05534 +-14.0463 -0.700363 1.0098 +-14.9538 -0.670722 0.967058 +-11.9708 -0.47706 0.687833 +-14.5728 -0.507967 0.732395 +-14.58 -0.435472 0.62787 +-14.2864 -0.355486 0.512545 +-14.0914 -0.280443 0.404348 +-12.9955 -0.193941 0.279627 +-12.3981 -0.123334 0.177826 +-14.3995 -0.0716161 0.103257 +53.1 3.55271e-15 -2.27374e-13 +54.1979 -0.266037 0.391066 +52.292 -0.513403 0.754685 +47.7836 -0.7038 1.03456 +42.2742 -0.830351 1.22059 +40.6613 -0.998564 1.46785 +38.2475 -1.12746 1.65733 +34.8349 -1.1984 1.76161 +24.6398 -0.96913 1.42459 +26.1192 -1.15624 1.69963 +29.4874 -1.45107 2.13303 +33.3458 -1.80601 2.65476 +36.5984 -2.16364 3.18047 +37.9544 -2.43234 3.57545 +41.4884 -2.86532 4.21191 +45.7056 -3.38455 4.97516 +65.5557 -5.18221 7.61767 +93.8576 -7.88987 11.5978 +94.9168 -8.45588 12.4298 +94.782 -8.92144 13.1142 +95.4279 -9.46445 13.9124 +95.2774 -9.93249 14.6004 +95.2178 -10.4105 15.3031 +95.0527 -10.8775 15.9895 +95.8585 -11.4606 16.8466 +95.677 -11.9307 17.5377 +95.4883 -12.3998 18.2273 +95.2923 -12.868 18.9156 +95.089 -13.3353 19.6024 +95.7498 -13.9283 20.4741 +95.5301 -14.3977 21.1642 +96.1703 -15.0014 22.0515 +95.9339 -15.4728 22.7445 +95.5943 -15.9272 23.4124 +95.3436 -16.3958 24.1013 +95.8486 -16.9984 24.9871 +95.5812 -17.4683 25.6778 +96.16 -18.0974 26.6025 +95.8756 -18.5687 27.2953 +96.4322 -19.2076 28.2344 +96.0366 -19.661 28.9009 +95.7279 -20.1316 29.5927 +96.4389 -20.8224 30.6082 +96.8565 -21.4599 31.5453 +96.6126 -21.9556 32.2739 +96.2682 -22.429 32.9698 +95.9166 -22.9006 33.6631 +96.4747 -23.5948 34.6836 +96.105 -24.0675 35.3784 +96.6379 -24.7715 36.4133 +96.2499 -25.245 37.1092 +96.5766 -25.9102 38.087 +96.171 -26.3832 38.7824 +96.5634 -27.0801 39.8068 +96.2287 -27.5786 40.5396 +96.5068 -28.2576 41.5377 +96.0647 -28.7303 42.2325 +96.4062 -29.4423 43.2791 +96.4706 -30.078 44.2136 +97.2187 -30.9381 45.4779 +96.1288 -31.2173 45.8883 +94.3484 -31.2597 45.9507 +94.717 -32.0113 47.0555 +93.9609 -32.3868 47.6075 +94.1333 -33.0852 48.6341 +94.2912 -33.7878 49.6669 +94.1827 -34.4025 50.5705 +94.2291 -35.0808 51.5676 +94.3445 -35.7936 52.6154 +94.1152 -36.3828 53.4814 +94.5301 -37.2305 54.7275 +94.1932 -37.791 55.5515 +94.1696 -38.4834 56.5692 +93.9709 -39.1115 57.4925 +92.8014 -39.3342 57.82 +91.315 -39.4116 57.9336 +89.8332 -39.4774 58.0304 +88.7478 -39.7068 58.3676 +87.4289 -39.8223 58.5373 +85.496 -39.6417 58.2719 +83.4988 -39.409 57.9298 +82.8843 -39.8174 58.5301 +80.7539 -39.4847 58.041 +79.4642 -39.5441 58.1284 +78.6247 -39.8197 58.5336 +77.5616 -39.9761 58.7635 +76.2802 -40.0101 58.8134 +75.0762 -40.0732 58.9062 +72.7972 -39.5415 58.1246 +71.3964 -39.4637 58.0102 +70.145 -39.4547 57.997 +69.2498 -39.637 58.265 +67.8681 -39.5303 58.1082 +66.9081 -39.658 58.2958 +66.2902 -39.9849 58.7763 +64.5864 -39.6452 58.277 +63.1659 -39.4591 58.0035 +62.7501 -39.894 58.6428 +61.6039 -39.8609 58.5941 +60.3987 -39.7769 58.4706 +59.4579 -39.8563 58.5874 +58.5192 -39.9297 58.6952 +57.0794 -39.6471 58.2798 +56.4621 -39.9258 58.6895 +55.8405 -40.2014 59.0947 +54.2406 -39.76 58.4458 +53.4412 -39.8899 58.6368 +52.2254 -39.6986 58.3555 +51.6663 -39.9989 58.797 +50.4631 -39.7931 58.4944 +49.0408 -39.3942 57.9081 +49.2207 -40.2824 59.2137 +47.5314 -39.6365 58.2642 +46.4731 -39.493 58.0534 +45.5318 -39.4366 57.9704 +45.1869 -39.8958 58.6454 +43.7183 -39.3529 57.8473 +43.1061 -39.5659 58.1605 +42.1301 -39.4385 57.9733 +41.3644 -39.4984 58.0613 +40.75 -39.7 58.3576 +40.1325 -39.8985 58.6493 +39.1241 -39.7004 58.3581 +38.459 -39.8415 58.5656 +37.4169 -39.5817 58.1838 +36.7552 -39.714 58.3782 +35.8199 -39.5421 58.1255 +35.1604 -39.6661 58.3077 +34.1491 -39.3822 57.8904 +33.5368 -39.5483 58.1346 +32.9642 -39.7623 58.4492 +31.7655 -39.2061 57.6315 +31.156 -39.3605 57.8586 +30.5442 -39.5119 58.0811 +29.5783 -39.1944 57.6143 +29.0457 -39.442 57.9784 +28.133 -39.1658 57.5724 +27.4876 -39.2501 57.6963 +26.9134 -39.4361 57.9696 +26.2305 -39.4613 58.0067 +25.3437 -39.1657 57.5722 +24.7351 -39.2886 57.7528 +24.1572 -39.4617 58.0073 +23.544 -39.5788 58.1794 +22.6509 -39.2113 57.6393 +22.2823 -39.7502 58.4314 +21.4016 -39.374 57.8783 +20.8183 -39.5315 58.1098 +20.2042 -39.6321 58.2578 +19.5618 -39.6756 58.3217 +18.7385 -39.3354 57.8217 +18.1275 -39.4259 57.9547 +17.5393 -39.568 58.1635 +16.9948 -39.8166 58.529 +16.3764 -39.8985 58.6494 +15.7568 -39.9774 58.7653 +14.9281 -39.503 58.0681 +14.3146 -39.5748 58.1736 +13.7192 -39.6988 58.3558 +13.121 -39.8199 58.5339 +12.329 -39.3289 57.8121 +11.7184 -39.3879 57.8988 +11.1225 -39.4994 58.0628 +10.5092 -39.5525 58.1408 +9.88129 -39.5469 58.1326 +9.26736 -39.5939 58.2017 +8.65272 -39.6379 58.2664 +8.03743 -39.6789 58.3265 +7.42152 -39.7168 58.3824 +6.80505 -39.7517 58.4336 +6.10962 -39.2793 57.7392 +5.56275 -39.7564 58.4405 +4.88993 -39.3333 57.8186 +4.32224 -39.7488 58.4293 +3.66352 -39.3192 57.7978 +3.05772 -39.3918 57.9046 +2.44296 -39.3492 57.8419 +1.85595 -39.8657 58.6011 +1.22341 -39.4233 57.9509 +0.61173 -39.4278 57.9575 +8.88178e-15 -39.4294 57.9598 +-0.61173 -39.4278 57.9575 +-1.22341 -39.4233 57.9509 +-1.85595 -39.8657 58.6011 +-2.44296 -39.3492 57.8419 +-3.09261 -39.8414 58.5654 +-3.71062 -39.8247 58.5409 +-4.33445 -39.8611 58.5944 +-4.95271 -39.8383 58.5609 +-5.56275 -39.7564 58.4405 +-6.17063 -39.6716 58.3158 +-6.78588 -39.6398 58.2691 +-7.50514 -40.1643 59.0402 +-8.12799 -40.126 58.9838 +-8.75022 -40.0845 58.9228 +-9.41094 -40.2074 59.1034 +-9.86737 -39.4912 58.0507 +-10.5979 -39.8863 58.6315 +-11.0599 -39.2773 57.7362 +-11.8504 -39.8317 58.5512 +-12.2943 -39.2181 57.6492 +-13.0663 -39.654 58.29 +-13.681 -39.5884 58.1935 +-14.3146 -39.5748 58.1736 +-14.9281 -39.503 58.0681 +-15.7352 -39.9225 58.6846 +-16.174 -39.4053 57.9244 +-16.7614 -39.2697 57.7251 +-17.6119 -39.7317 58.4042 +-18.2277 -39.6437 58.2749 +-18.842 -39.5528 58.1412 +-19.6955 -39.9466 58.7201 +-20.3145 -39.8484 58.5758 +-21.1875 -40.2326 59.1405 +-21.8109 -40.127 58.9853 +-22.4627 -40.0721 58.9046 +-23.0836 -39.9603 58.7402 +-23.7027 -39.8455 58.5715 +-24.5804 -40.1531 59.0236 +-25.2358 -40.0839 58.9219 +-25.8567 -39.9585 58.7376 +-26.7909 -40.3042 59.2458 +-27.451 -40.2237 59.1275 +-28.0373 -40.0351 58.8502 +-28.6949 -39.9481 58.7223 +-29.811 -40.4813 59.5061 +-30.3989 -40.2817 59.2126 +-31.3816 -40.5951 59.6734 +-32.0102 -40.4396 59.4447 +-33.0096 -40.7416 59.8887 +-33.6404 -40.578 59.6482 +-34.6992 -40.919 60.1495 +-35.3327 -40.7471 59.8968 +-36.0528 -40.6728 59.7876 +-36.637 -40.4442 59.4515 +-37.6325 -40.662 59.7717 +-38.3089 -40.5253 59.5708 +-39.3179 -40.7312 59.8734 +-39.9483 -40.5367 59.5875 +-41.0189 -40.7796 59.9446 +-41.65 -40.5768 59.6464 +-43.1915 -41.2431 60.6259 +-43.8297 -41.0295 60.312 +-44.9349 -41.2445 60.628 +-45.5731 -41.0223 60.3014 +-45.7779 -40.4176 59.4125 +-47.3291 -40.9933 60.2587 +-47.9633 -40.7594 59.9149 +-48.8175 -40.709 59.8408 +-49.957 -40.885 60.0995 +-50.5894 -40.6382 59.7368 +-52.2633 -41.2126 60.5811 +-52.9007 -40.9545 60.2017 +-53.5341 -40.6933 59.8177 +-55.367 -41.3274 60.7499 +-55.8234 -40.9202 60.1512 +-56.6409 -40.7776 59.9417 +-58.4541 -41.3344 60.7601 +-58.9044 -40.9148 60.1433 +-59.6005 -40.6675 59.7798 +-60.872 -40.8043 59.9808 +-62.4769 -41.1455 60.4825 +-63.3753 -41.007 60.2789 +-65.3343 -41.5369 61.0579 +-66.3108 -41.4237 60.8914 +-67.559 -41.4698 60.9592 +-68.8136 -41.5069 61.0137 +-70.6252 -41.8612 61.5344 +-71.8971 -41.8771 61.5578 +-73.1048 -41.8435 61.5085 +-74.3876 -41.841 61.5048 +-76.0325 -42.0262 61.7771 +-76.9694 -41.8077 61.4559 +-78.8482 -42.0865 61.8657 +-79.937 -41.9281 61.6328 +-81.0268 -41.7622 61.3889 +-82.7863 -41.9274 61.6317 +-84.7069 -42.153 61.9635 +-86.0369 -42.0678 61.8381 +-87.7508 -42.1553 61.9668 +-89.091 -42.0484 61.8096 +-91.5147 -42.4324 62.3741 +-93.3352 -42.5125 62.4919 +-95.2434 -42.613 62.6395 +-96.2949 -42.317 62.2045 +-99.0898 -42.7672 62.8663 +-100.309 -42.5162 62.4973 +-102.653 -42.7248 62.804 +-104.363 -42.6491 62.6927 +-106.242 -42.6252 62.6575 +-107.964 -42.5215 62.5051 +-110.433 -42.6908 62.754 +-112.832 -42.8077 62.9258 +-114.493 -42.6247 62.6568 +-117.078 -42.7657 62.8641 +-120.352 -43.1263 63.3942 +-122.204 -42.9512 63.1368 +-125.509 -43.2608 63.5919 +-97.6314 -32.9962 48.5033 +-98.6565 -32.6871 48.0488 +-99.0733 -32.1735 47.2939 +-98.7854 -31.4367 46.2108 +-98.5696 -30.7324 45.1756 +-99.0427 -30.2474 44.4627 +-98.8018 -29.5489 43.4358 +-99.2565 -29.0628 42.7213 +-98.9017 -28.3446 41.6656 +-98.5323 -27.6323 40.6185 +-98.3281 -26.975 39.6523 +-98.6526 -26.4671 38.9057 +-98.2438 -25.7679 37.8779 +-98.4578 -25.2381 37.0991 +-98.937 -24.7767 36.4209 +-98.4005 -24.0659 35.376 +-98.8622 -23.6039 34.6969 +-98.3932 -22.924 33.6975 +-98.7451 -22.4402 32.9863 +-99.0895 -21.9547 32.2726 +-98.6795 -21.3062 31.3194 +-98.9126 -20.8013 30.5772 +-98.3858 -20.1419 29.6079 +-97.7519 -19.4705 28.6209 +-63.9171 -12.3791 18.1969 +-95.1169 -17.9011 26.314 +-64.7669 -11.8367 17.3996 +-47.4951 -8.42309 12.3816 +-42.3643 -7.28521 10.709 +-37.4899 -6.24626 9.18179 +-36.2396 -5.84494 8.59185 +-30.258 -4.71987 6.93805 +-16.4207 -2.47484 3.63792 +-16.749 -2.43639 3.58141 +-17.0772 -2.39491 3.52044 +-16.6275 -2.24535 3.30058 +-15.9797 -2.07508 3.05029 +-16.4994 -2.05743 3.02435 +-16.0416 -1.91789 2.81923 +-15.2868 -1.74937 2.57151 +-14.4299 -1.57768 2.31913 +-3221.44 -335.829 493.657 +-3226.53 -320.004 470.395 +-3231.37 -304.155 447.096 +-3235.96 -288.282 423.764 +-3240.31 -272.388 400.4 +-3244.42 -256.473 377.006 +-14.2768 -1.05721 1.55407 +-3251.88 -224.585 330.132 +-13.3139 -0.853227 1.25421 +-12.1332 -0.717294 1.0544 +-13.836 -0.74936 1.10153 +-14.6441 -0.720635 1.05931 +-13.5581 -0.600181 0.882245 +-13.0681 -0.513994 0.755552 +-14.2733 -0.491036 0.721805 +-14.1805 -0.418014 0.614465 +-14.686 -0.360661 0.530158 +-14.5911 -0.286599 0.42129 +-14.8949 -0.219385 0.322489 +-13.7979 -0.135468 0.199133 +-14.7994 -0.0726451 0.106786 +53.3 0 -1.7053e-13 +56.7978 -0.27509 0.412324 +51.9921 -0.503667 0.754931 +48.9832 -0.711869 1.067 +42.9738 -0.832862 1.24835 +41.96 -1.01675 1.52397 +37.3487 -1.08631 1.62824 +33.8368 -1.14858 1.72157 +24.5401 -0.952368 1.42748 +27.0165 -1.18004 1.76873 +30.4836 -1.48014 2.21854 +35.5356 -1.899 2.84636 +36.499 -2.12905 3.19116 +39.5442 -2.5005 3.74792 +41.9847 -2.86101 4.28828 +48.4817 -3.54235 5.30952 +68.7246 -5.36043 8.03459 +93.8576 -7.78489 11.6685 +95.707 -8.41281 12.6097 +95.6697 -8.88516 13.3177 +94.64 -9.26144 13.8817 +95.2774 -9.80034 14.6894 +95.2178 -10.272 15.3964 +95.0527 -10.7328 16.087 +94.8803 -11.1927 16.7764 +95.677 -11.7719 17.6446 +94.6113 -12.1225 18.17 +95.2923 -12.6968 19.0309 +95.9622 -13.2787 19.9031 +95.7498 -13.743 20.5989 +95.5301 -14.2062 21.2932 +95.3031 -14.6683 21.9859 +95.9339 -15.267 22.8832 +95.6902 -15.731 23.5787 +95.248 -16.1614 24.2239 +95.9439 -16.789 25.1645 +95.6763 -17.253 25.86 +96.2549 -17.8742 26.7911 +95.8756 -18.3216 27.4618 +96.4322 -18.952 28.4066 +96.1306 -19.4184 29.1056 +95.7279 -19.8637 29.7732 +96.4389 -20.5454 30.7949 +95.833 -20.9506 31.4023 +96.6126 -21.6635 32.4707 +96.2682 -22.1305 33.1708 +95.9166 -22.596 33.8684 +96.4747 -23.2809 34.8951 +96.1963 -23.7699 35.6279 +96.5469 -24.419 36.6009 +96.2499 -24.9091 37.3355 +96.5766 -25.5654 38.3193 +96.171 -26.0322 39.0188 +96.5634 -26.7198 40.0495 +96.1396 -27.1865 40.749 +96.5068 -27.8817 41.791 +96.0647 -28.348 42.49 +96.4062 -29.0505 43.543 +96.558 -29.7047 44.5235 +96.7836 -30.3898 45.5504 +96.9082 -31.0517 46.5424 +95.0377 -31.0692 46.5686 +94.8884 -31.6426 47.4281 +94.0462 -31.9849 47.9413 +94.1333 -32.645 48.9307 +94.2912 -33.3383 49.9697 +94.4343 -34.0355 51.0148 +94.5627 -34.7366 52.0657 +94.4274 -35.3485 52.9827 +94.1152 -35.8987 53.8075 +94.4482 -36.7033 55.0136 +94.9259 -37.5783 56.3251 +94.4123 -38.0692 57.0608 +94.4532 -38.7892 58.1399 +93.5202 -39.1115 58.6231 +91.791 -39.09 58.5908 +89.8332 -38.9522 58.3842 +89.2173 -39.3858 59.0342 +87.4289 -39.2924 58.8942 +86.1905 -39.432 59.1034 +84.1883 -39.2058 58.7644 +82.8843 -39.2876 58.887 +81.8105 -39.4691 59.159 +80.1383 -39.3489 58.9789 +78.6247 -39.2899 58.8905 +77.7828 -39.5568 59.2905 +76.2802 -39.4777 59.172 +75.6565 -39.8457 59.7235 +73.5885 -39.4396 59.1148 +72.3949 -39.4832 59.1802 +70.4985 -39.1259 58.6447 +69.3199 -39.1492 58.6796 +68.2155 -39.204 58.7617 +67.4587 -39.4524 59.134 +66.2902 -39.4529 59.1347 +65.0593 -39.4042 59.0617 +63.7681 -39.3053 58.9135 +62.7501 -39.3632 59.0004 +61.6039 -39.3306 58.9514 +60.9832 -39.6274 59.3964 +59.4579 -39.3261 58.9447 +58.8372 -39.6125 59.3741 +57.6457 -39.5078 59.2171 +57.0223 -39.7855 59.6333 +55.9021 -39.7103 59.5206 +54.545 -39.4512 59.1322 +53.381 -39.3149 58.9279 +52.8203 -39.6165 59.3801 +51.6075 -39.4219 59.0882 +51.0438 -39.7155 59.5284 +49.8438 -39.5065 59.2152 +48.9375 -39.5178 59.232 +47.811 -39.3392 58.9643 +47.4666 -39.8006 59.656 +46.2943 -39.5635 59.3006 +44.9182 -39.1309 58.6522 +43.8243 -38.9234 58.3411 +43.9944 -39.844 59.7209 +42.4391 -39.1992 58.7546 +41.8212 -39.4033 59.0604 +40.75 -39.1718 58.7134 +40.1325 -39.3676 59.007 +39.1241 -39.1722 58.714 +38.5067 -39.3601 58.9957 +37.3699 -39.0061 58.4651 +36.8014 -39.2349 58.808 +35.7291 -38.9171 58.3317 +35.562 -39.5854 59.3333 +34.1929 -38.908 58.3181 +33.5799 -39.0722 58.5642 +32.922 -39.183 58.7303 +32.3046 -39.341 58.967 +31.1967 -38.8875 58.2873 +30.5841 -39.0371 58.5116 +29.6565 -38.7751 58.1188 +29.3901 -39.3787 59.0235 +28.4326 -39.0565 58.5405 +27.7808 -39.141 58.6673 +27.1643 -39.2741 58.8667 +26.2656 -38.9882 58.4383 +25.3437 -38.6446 57.9232 +25.0355 -39.2367 58.8107 +24.4176 -39.3565 58.9902 +23.544 -39.0522 58.5341 +22.8982 -39.1119 58.6237 +22.2522 -39.1684 58.7084 +21.3724 -38.797 58.1517 +21.0455 -39.4312 59.1022 +20.2042 -39.1048 58.6131 +19.5886 -39.2012 58.7575 +18.7126 -38.7585 58.0939 +18.1275 -38.9014 58.3081 +17.5635 -39.0954 58.5989 +17.2283 -39.8266 59.6948 +16.3764 -39.3677 59.007 +15.93 -39.879 59.7734 +15.136 -39.5203 59.2358 +14.494 -39.5377 59.2619 +13.7001 -39.1161 58.63 +13.1027 -39.2355 58.809 +12.4853 -39.2975 58.9019 +11.8834 -39.4113 59.0723 +11.1068 -38.9191 58.3347 +10.6423 -39.5203 59.2358 +9.88129 -39.0208 58.4871 +9.39789 -39.6174 59.3813 +8.77459 -39.6614 59.4473 +8.15063 -39.7024 59.5087 +7.41107 -39.1332 58.6556 +6.80505 -39.2228 58.7899 +6.18806 -39.2543 58.8371 +5.56275 -39.2274 58.7968 +4.94573 -39.2529 58.835 +4.32224 -39.22 58.7856 +3.66352 -38.796 58.1502 +3.08825 -39.2559 58.8394 +2.47437 -39.3248 58.9427 +1.85595 -39.3353 58.9585 +1.22341 -38.8988 58.3043 +0.619584 -39.4028 59.0596 +1.15463e-14 -38.9048 58.3132 +-0.618711 -39.3473 58.9764 +-1.23738 -39.3428 58.9697 +-1.85595 -39.3353 58.9585 +-2.47786 -39.3802 59.0258 +-3.13623 -39.8658 59.7536 +-3.71062 -39.2948 58.8978 +-4.32834 -39.2754 58.8687 +-4.94573 -39.2529 58.835 +-5.63336 -39.7254 59.5433 +-6.17934 -39.199 58.7542 +-6.88173 -39.6648 59.4523 +-7.50514 -39.63 59.4002 +-8.12799 -39.5921 59.3435 +-8.77459 -39.6614 59.4473 +-9.4762 -39.9475 59.8762 +-9.86737 -38.9658 58.4047 +-10.6127 -39.4105 59.0713 +-11.232 -39.3576 58.992 +-11.8339 -39.247 58.8262 +-12.4853 -39.2975 58.9019 +-13.0845 -39.181 58.7272 +-13.681 -39.0617 58.5484 +-14.494 -39.5377 59.2619 +-14.9281 -38.9775 58.4222 +-15.7568 -39.4455 59.1237 +-16.3539 -39.3136 58.926 +-16.9715 -39.2329 58.8051 +-17.6119 -39.2031 58.7603 +-18.453 -39.5999 59.3551 +-19.075 -39.509 59.2188 +-19.6955 -39.4151 59.0782 +-20.3145 -39.3182 58.9329 +-21.1875 -39.6973 59.5011 +-21.8109 -39.5931 59.3449 +-22.4327 -39.486 59.1844 +-23.0836 -39.4286 59.0984 +-23.9882 -39.789 59.6386 +-24.6455 -39.7238 59.5409 +-25.5696 -40.0737 60.0653 +-26.1645 -39.8963 59.7993 +-26.8259 -39.82 59.685 +-27.451 -39.6886 59.488 +-28.5138 -40.1738 60.2152 +-29.1819 -40.0856 60.0831 +-30.0789 -40.3016 60.4069 +-30.3989 -39.7457 59.5737 +-31.7404 -40.5131 60.7239 +-32.3762 -40.3578 60.4912 +-33.0096 -40.1995 60.2538 +-33.6827 -40.0884 60.0873 +-34.6992 -40.3746 60.5163 +-35.3766 -40.2549 60.3369 +-36.1866 -40.2807 60.3755 +-37.0456 -40.3511 60.4811 +-38.0943 -40.6133 60.874 +-38.7314 -40.4272 60.5951 +-39.795 -40.677 60.9696 +-40.3846 -40.4342 60.6056 +-41.4128 -40.6235 60.8894 +-42.1 -40.4695 60.6585 +-43.1408 -40.6466 60.924 +-43.7782 -40.4361 60.6085 +-44.9349 -40.6958 60.9977 +-45.5731 -40.4766 60.6691 +-46.6913 -40.6756 60.9674 +-47.0568 -40.2152 60.2773 +-48.4601 -40.6337 60.9046 +-49.3208 -40.5815 60.8263 +-50.4668 -40.7527 61.0829 +-51.3924 -40.734 61.055 +-52.0891 -40.5288 60.7474 +-53.3709 -40.7688 61.1072 +-54.7237 -41.0441 61.5198 +-55.1864 -40.6446 60.921 +-56.4322 -40.8161 61.178 +-57.0718 -40.5412 60.766 +-58.2674 -40.6542 60.9353 +-59.0932 -40.4998 60.704 +-60.2366 -40.5546 60.7861 +-61.3862 -40.6015 60.8563 +-62.5418 -40.6403 60.9145 +-63.7689 -40.7128 61.0232 +-65.6656 -41.1922 61.7417 +-66.5785 -41.0375 61.5099 +-68.1671 -41.2864 61.8829 +-69.4274 -41.32 61.9333 +-70.6252 -41.3042 61.9096 +-71.8971 -41.3199 61.9332 +-73.9459 -41.7618 62.5955 +-74.4583 -41.3236 61.9387 +-76.6744 -41.8172 62.6785 +-77.6168 -41.5985 62.3507 +-79.501 -41.8705 62.7584 +-79.7176 -41.2567 61.8384 +-81.9115 -41.6565 62.4376 +-83.3808 -41.6667 62.4529 +-85.381 -41.9232 62.8374 +-86.1124 -41.5445 62.2698 +-88.4352 -41.9188 62.8308 +-89.5506 -41.703 62.5073 +-92.2091 -42.1855 63.2306 +-93.5684 -42.0517 63.03 +-95.4782 -42.1497 63.1769 +-97.3193 -42.1982 63.2496 +-99.8832 -42.5361 63.7561 +-101.027 -42.2511 63.329 +-103.376 -42.4535 63.6323 +-104.606 -42.1795 63.2217 +-106.242 -42.0581 63.0396 +-108.374 -42.1149 63.1248 +-110.927 -42.3115 63.4194 +-112.998 -42.3002 63.4025 +-115.66 -42.4865 63.6818 +-118.001 -42.5292 63.7458 +-121.111 -42.8209 64.1829 +-123.052 -42.6739 63.9626 +-107.944 -36.7116 55.0259 +-97.7171 -32.5858 48.8419 +-99.0874 -32.393 48.5529 +-98.2939 -31.4957 47.2079 +-98.7854 -31.0184 46.4926 +-99.2693 -30.5388 45.7737 +-98.2518 -29.6066 44.3765 +-98.7135 -29.1297 43.6616 +-98.4582 -28.4455 42.6361 +-98.9017 -27.9675 41.9197 +-98.5323 -27.2646 40.8662 +-98.2382 -26.5918 39.8576 +-98.6526 -26.115 39.143 +-99.0594 -25.6362 38.4253 +-98.4578 -24.9023 37.3253 +-98.937 -24.4471 36.643 +-98.4923 -23.7678 35.6249 +-98.8622 -23.2899 34.9085 +-98.4856 -22.6403 33.9349 +-98.8378 -22.1625 33.2186 +-98.3451 -21.4999 32.2255 +-98.6795 -21.0227 31.5103 +-99.0063 -20.544 30.7928 +-98.3858 -19.8739 29.7884 +-98.6946 -19.3967 29.0731 +-60.3241 -11.5278 17.2787 +-73.5899 -13.6654 20.4827 +-71.5195 -12.8969 19.3308 +-53.885 -9.42922 14.1332 +-40.8342 -6.92866 10.3852 +-37.7775 -6.21044 9.30865 +-37.7776 -6.01192 9.01109 +-36.7143 -5.65079 8.4698 +-16.9037 -2.51373 3.76776 +-16.9426 -2.43177 3.64491 +-16.2039 -2.24221 3.36079 +-17.1137 -2.28025 3.4178 +-15.1027 -1.9351 2.90047 +-16.6947 -2.05408 3.0788 +-16.0416 -1.89238 2.83643 +-15.3848 -1.73716 2.60378 +-14.7244 -1.58845 2.38088 +-13.5689 -1.39572 2.092 +-3226.53 -315.747 473.264 +-3231.37 -300.108 449.823 +-3235.96 -284.447 426.348 +-3240.31 -268.764 402.842 +-3244.42 -253.06 379.304 +-3248.27 -237.337 355.738 +-13.2009 -0.89956 1.34832 +-13.3139 -0.841875 1.26186 +-13.6249 -0.794767 1.19125 +-13.3383 -0.71279 1.06838 +-13.5482 -0.65784 0.986017 +-13.8572 -0.605261 0.907207 +-13.4671 -0.52264 0.78337 +-14.5728 -0.494667 0.741442 +-14.1805 -0.412452 0.618212 +-14.686 -0.355862 0.533391 +-14.2913 -0.276975 0.415149 +-15.2948 -0.222277 0.333165 +-14.2978 -0.138508 0.207606 +-15.2994 -0.0741 0.111066 +56.9 0 -2.27374e-13 +64.9975 -0.310534 0.474672 +55.4915 -0.530276 0.810562 +52.382 -0.750936 1.14786 +43.3736 -0.829206 1.2675 +42.2597 -1.01012 1.54404 +39.0464 -1.12029 1.71244 +36.2323 -1.21321 1.85447 +27.832 -1.06547 1.62865 +27.3155 -1.17692 1.799 +32.1771 -1.54117 2.35579 +39.4177 -2.07788 3.17618 +39.4825 -2.27184 3.47267 +41.73 -2.60292 3.97874 +43.7713 -2.9423 4.4975 +52.2491 -3.76584 5.75634 +69.6158 -5.35629 8.18745 +93.9565 -7.68739 11.7507 +94.8181 -8.22161 12.5673 +95.5711 -8.7556 13.3835 +95.5264 -9.22138 14.0955 +95.3757 -9.67736 14.7925 +95.2178 -10.1327 15.4885 +95.0527 -10.5872 16.1832 +94.8803 -11.0409 16.8767 +94.7007 -11.4937 17.5689 +95.4883 -12.0689 18.4481 +95.2923 -12.5246 19.1447 +95.186 -12.9926 19.8601 +95.653 -13.5428 20.7011 +95.5301 -14.0135 21.4205 +95.3031 -14.4693 22.1174 +95.9339 -15.0599 23.0201 +95.5943 -15.5021 23.696 +95.3436 -15.9582 24.3932 +95.9439 -16.5612 25.315 +95.6763 -17.019 26.0147 +96.3497 -17.6492 26.9779 +95.8756 -18.0731 27.626 +96.4322 -18.6949 28.5764 +96.0366 -19.1362 29.251 +96.7582 -19.8052 30.2735 +96.4389 -20.2667 30.979 +96.1121 -20.7267 31.6821 +96.6126 -21.3696 32.6649 +96.2682 -21.8303 33.3691 +96.0087 -22.3108 34.1036 +96.5664 -22.987 35.1371 +96.1963 -23.4474 35.841 +95.8189 -23.9061 36.5421 +96.2499 -24.5712 37.5587 +96.5766 -25.2186 38.5484 +96.171 -25.679 39.2522 +95.758 -26.1375 39.953 +96.1396 -26.8177 40.9927 +96.5955 -27.5287 42.0796 +96.9476 -28.2205 43.137 +96.4062 -28.6565 43.8033 +96.558 -29.3018 44.7897 +96.0873 -29.762 45.4932 +96.9948 -30.6578 46.8625 +96.0717 -30.9811 47.3567 +95.1456 -31.2979 47.841 +95.0694 -31.8943 48.7526 +94.1333 -32.2022 49.2232 +94.5442 -32.9743 50.4034 +94.3504 -33.544 51.2742 +94.3125 -34.1748 52.2384 +93.8471 -34.6546 52.9719 +94.7745 -35.6598 54.5084 +94.2844 -36.1426 55.2464 +94.6002 -36.9414 56.4674 +94.4123 -37.5528 57.402 +94.3728 -38.2304 58.4378 +93.6001 -38.6139 59.024 +92.505 -38.8597 59.3996 +90.4636 -38.6934 59.1455 +89.8434 -39.1241 59.8039 +87.8952 -38.9661 59.5624 +87.2707 -39.3846 60.202 +85.5672 -39.3074 60.084 +84.253 -39.3946 60.2174 +82.0369 -39.0414 59.6774 +81.4115 -39.4319 60.2743 +79.5165 -39.1966 59.9146 +78.8149 -39.538 60.4365 +76.719 -39.1662 59.8682 +76.527 -39.7574 60.7719 +74.4517 -39.3609 60.1657 +73.1795 -39.3697 60.1793 +70.7814 -38.7501 59.2321 +70.5115 -39.282 60.0451 +68.7017 -38.9479 59.5344 +68.0783 -39.2746 60.0339 +66.8358 -39.238 59.978 +66.2078 -39.5558 60.4637 +64.4373 -39.1789 59.8877 +64.0091 -39.6083 60.544 +62.4568 -39.3342 60.125 +61.5027 -39.4229 60.2605 +60.3578 -39.3797 60.1946 +59.7277 -39.6666 60.633 +58.2121 -39.3548 60.1564 +57.6449 -39.6742 60.6447 +56.0868 -39.301 60.0743 +55.7625 -39.7846 60.8135 +53.9226 -39.1751 59.8817 +53.9504 -39.9153 61.0132 +52.1953 -39.33 60.1185 +51.5084 -39.5333 60.4293 +50.4174 -39.4191 60.2548 +49.4473 -39.3877 60.2068 +48.3143 -39.214 59.9412 +47.6874 -39.4433 60.2918 +46.839 -39.486 60.357 +45.7779 -39.3389 60.1322 +44.6722 -39.1383 59.8255 +44.0466 -39.3502 60.1494 +42.4391 -38.6675 59.1059 +42.4302 -39.4348 60.2788 +41.65 -39.4938 60.3689 +40.5757 -39.2624 60.0153 +39.512 -39.0238 59.6506 +38.8884 -39.2111 59.9369 +37.8394 -38.9604 59.5536 +37.6325 -39.5767 60.4957 +36.183 -38.877 59.4261 +35.5173 -38.9994 59.6132 +34.5436 -38.7739 59.2686 +34.2687 -39.3328 60.1228 +33.3023 -39.0981 59.7641 +32.6778 -39.2556 60.0049 +31.6848 -38.9602 59.5533 +31.0626 -39.1101 59.7824 +29.9691 -38.6522 59.0825 +29.8493 -39.4515 60.3042 +28.4326 -38.5266 58.8906 +28.1473 -39.1194 59.7967 +27.2001 -38.7924 59.2969 +26.5457 -38.8696 59.4148 +25.9593 -39.0464 59.6851 +25.3026 -39.1173 59.7934 +24.4176 -38.8226 59.343 +24.1152 -39.4569 60.3126 +23.1145 -38.9458 59.5313 +22.5229 -39.107 59.7777 +21.6647 -38.7943 59.2997 +21.0739 -38.9488 59.5359 +20.4247 -38.9954 59.6071 +19.8291 -39.1442 59.8346 +18.9714 -38.7616 59.2497 +18.5782 -39.3277 60.1151 +17.5877 -38.6182 59.0305 +17.2516 -39.3395 60.1331 +16.5564 -39.2604 60.0122 +15.93 -39.338 60.1308 +15.1152 -38.9307 59.5082 +14.6934 -39.5379 60.4364 +13.8909 -39.1229 59.802 +13.285 -39.2416 59.9835 +12.659 -39.3036 60.0782 +12.032 -39.3626 60.1683 +11.4197 -39.4726 60.3365 +10.7901 -39.5257 60.4177 +10.0205 -39.0336 59.6655 +9.39789 -39.08 59.7364 +8.77459 -39.1234 59.8027 +8.15063 -39.1638 59.8646 +7.52605 -39.2013 59.9218 +6.90089 -39.2357 59.9744 +6.27521 -39.2672 60.0226 +5.64121 -39.2411 59.9827 +5.01549 -39.2666 60.0216 +4.38939 -39.289 60.0559 +3.76296 -39.3085 60.0857 +3.08825 -38.7233 59.1912 +2.47088 -38.7366 59.2116 +1.88212 -39.349 60.1476 +1.23563 -38.7543 59.2386 +0.627438 -39.361 60.1659 +7.99361e-15 -39.3624 60.1682 +-0.628311 -39.4157 60.2496 +-1.23738 -38.8091 59.3223 +-1.88212 -39.349 60.1476 +-2.50927 -39.3385 60.1315 +-3.13623 -39.325 60.1109 +-3.76819 -39.3632 60.1693 +-4.45044 -39.8355 60.8912 +-5.01549 -39.2666 60.0216 +-5.71967 -39.7869 60.817 +-6.25778 -39.1581 59.8559 +-6.98716 -39.7262 60.7242 +-7.59922 -39.5824 60.5043 +-8.22987 -39.5446 60.4466 +-8.88428 -39.6124 60.5503 +-9.60673 -39.9484 61.0638 +-9.99263 -38.9251 59.4997 +-10.7605 -39.4174 60.2522 +-11.3728 -39.3104 60.0886 +-12.0155 -39.3086 60.0858 +-12.4506 -38.6566 59.0892 +-13.2667 -39.1878 59.9012 +-13.8718 -39.0692 59.7199 +-14.6735 -39.4843 60.3544 +-15.3023 -39.4126 60.2449 +-15.93 -39.338 60.1308 +-16.5564 -39.2604 60.0122 +-17.3917 -39.659 60.6214 +-17.8055 -39.0963 59.7613 +-18.6533 -39.4867 60.3581 +-19.075 -38.973 59.5729 +-19.936 -39.3552 60.1571 +-20.5625 -39.2585 60.0092 +-21.4148 -39.5787 60.4987 +-22.0741 -39.5272 60.42 +-23.004 -39.9424 61.0546 +-23.3617 -39.3624 60.1681 +-23.9882 -39.2493 59.9952 +-24.906 -39.5991 60.5298 +-25.9702 -40.1494 61.3711 +-26.1645 -39.3551 60.1569 +-27.5263 -40.3054 61.6095 +-27.881 -39.7635 60.7812 +-29.1735 -40.5456 61.9767 +-29.4815 -39.9479 61.0631 +-30.4233 -40.2101 61.4639 +-31.0631 -40.0633 61.2394 +-32.0993 -40.4154 61.7776 +-32.3762 -39.8104 60.8529 +-33.7975 -40.6007 62.0609 +-34.4434 -40.4377 61.8118 +-35.1297 -40.3211 61.6335 +-35.8149 -40.2009 61.4498 +-36.8559 -40.4692 61.8599 +-37.4542 -40.2428 61.5138 +-38.4637 -40.4508 61.8318 +-39.107 -40.2655 61.5485 +-40.1291 -40.462 61.8489 +-40.3846 -39.8857 60.968 +-41.856 -40.5013 61.9089 +-42.25 -40.0627 61.2386 +-43.3945 -40.3311 61.6488 +-44.2933 -40.3569 61.6882 +-45.4051 -40.5638 62.0045 +-46.05 -40.3454 61.6706 +-46.7451 -40.17 61.4026 +-47.3836 -39.9451 61.0588 +-49.012 -40.539 61.9666 +-49.6563 -40.3033 61.6063 +-50.8066 -40.4706 61.862 +-51.4498 -40.2263 61.4886 +-53.2505 -40.8704 62.4731 +-53.5472 -40.3486 61.6756 +-55.1401 -40.7954 62.3586 +-55.9688 -40.6616 62.154 +-57.1627 -40.7836 62.3405 +-57.6259 -40.3795 61.7228 +-59.3256 -40.8311 62.413 +-59.9742 -40.5461 61.9774 +-61.3179 -40.7227 62.2474 +-62.4147 -40.7217 62.2459 +-63.8407 -40.9216 62.5514 +-64.425 -40.5737 62.0197 +-66.8584 -41.3714 63.239 +-67.5153 -41.0504 62.7484 +-69.3156 -41.4125 63.3018 +-69.973 -41.0798 62.7932 +-72.0019 -41.5382 63.4939 +-73.2865 -41.547 63.5074 +-74.7169 -41.6248 63.6264 +-75.5897 -41.3824 63.2558 +-77.8869 -41.9023 64.0505 +-78.1922 -41.3385 63.1886 +-80.3715 -41.7547 63.8249 +-81.2534 -41.4811 63.4067 +-83.1649 -41.7201 63.7721 +-84.0497 -41.4311 63.3303 +-86.4295 -41.8624 63.9895 +-87.0935 -41.4478 63.3558 +-89.3477 -41.7768 63.8587 +-90.4698 -41.5595 63.5265 +-93.9067 -42.3793 64.7797 +-94.9672 -42.1014 64.3548 +-97.5912 -42.4981 64.9612 +-98.4225 -42.0976 64.3491 +-101.311 -42.559 65.0543 +-101.986 -42.0734 64.312 +-104.662 -42.3986 64.8091 +-105.577 -41.9935 64.19 +-109.01 -42.5684 65.0687 +-109.521 -41.9833 64.1742 +-113.07 -42.5437 65.0309 +-114.324 -42.2162 64.5303 +-117.328 -42.5145 64.9862 +-119.175 -42.3698 64.765 +-122.629 -42.7695 65.3761 +-124.578 -42.6172 65.1432 +-98.2241 -32.9527 50.3704 +-97.9742 -32.2284 49.2633 +-98.5704 -31.7869 48.5884 +-99.0733 -31.3148 47.8667 +-98.8724 -30.6246 46.8118 +-98.5696 -29.9122 45.7228 +-99.0427 -29.4402 45.0013 +-98.8018 -28.7603 43.962 +-98.4582 -28.0596 42.891 +-98.9017 -27.5881 42.1704 +-99.3377 -27.1146 41.4466 +-98.2382 -26.231 40.0959 +-98.6526 -25.7607 39.377 +-99.0594 -25.2884 38.6551 +-98.6398 -24.6099 37.6178 +-98.8456 -24.0932 36.828 +-98.584 -23.4672 35.8712 +-98.7702 -22.9526 35.0846 +-98.3932 -22.3122 34.1057 +-98.7451 -21.8413 33.3859 +-98.3451 -21.2082 32.4182 +-98.6795 -20.7375 31.6987 +-98.9126 -20.2461 30.9476 +-98.4798 -19.623 29.9951 +-98.6003 -19.1153 29.219 +-95.4028 -17.984 27.4897 +-62.21 -11.3955 17.4188 +-86.451 -15.378 23.5063 +-59.5119 -10.2726 15.7023 +-44.1813 -7.39488 11.3036 +-40.1745 -6.5149 9.95846 +-37.6815 -5.91532 9.04196 +-37.3889 -5.67651 8.67694 +-34.6767 -5.08679 7.7755 +-17.5235 -2.48103 3.79242 +-17.5624 -2.39722 3.66431 +-15.3634 -2.01928 3.0866 +-16.5643 -2.09358 3.20018 +-16.3041 -1.97882 3.02476 +-16.6285 -1.935 2.95778 +-16.6587 -1.85548 2.83623 +-14.9207 -1.5878 2.42706 +-14.0605 -1.42667 2.18076 +-14.1812 -1.36894 2.09252 +-3231.37 -296.037 452.512 +-3235.96 -280.588 428.898 +-3240.31 -265.118 405.251 +-3244.42 -249.627 381.572 +-3248.27 -234.118 357.865 +-3251.88 -218.591 334.131 +-3255.24 -203.047 310.371 +-13.3266 -0.766818 1.17213 +-13.0397 -0.687381 1.05071 +-13.7475 -0.658459 1.0065 +-14.2559 -0.614235 0.938899 +-14.1654 -0.542283 0.828916 +-14.3731 -0.481272 0.735657 +-15.0793 -0.432644 0.661325 +-14.2864 -0.341483 0.521979 +-14.2913 -0.273218 0.417631 +-15.0948 -0.216396 0.330776 +-15.0977 -0.144273 0.220531 +-12.9995 -0.0621067 0.0949343 +66.5 1.77636e-15 -2.27374e-13 +82.4969 -0.388686 0.605999 +68.0896 -0.641662 1.00041 +55.0811 -0.778707 1.21408 +47.2712 -0.89122 1.3895 +44.9572 -1.05973 1.65222 +43.1408 -1.22064 1.90309 +38.9273 -1.28541 2.00408 +27.832 -1.05073 1.6382 +31.3032 -1.33008 2.07372 +33.3725 -1.57632 2.45764 +40.3135 -2.09571 3.26741 +44.1568 -2.50565 3.90655 +45.6049 -2.80527 4.37369 +46.8482 -3.10556 4.84186 +55.9175 -3.97448 6.1966 +82.9845 -6.29655 9.81693 +94.9455 -7.66085 11.944 +95.707 -8.18389 12.7595 +94.782 -8.56321 13.3509 +94.64 -9.00943 14.0466 +95.2774 -9.53366 14.8639 +95.2178 -9.99251 15.5793 +95.0527 -10.4407 16.2781 +94.8803 -10.8881 16.9756 +95.677 -11.4516 17.8542 +95.4883 -11.9019 18.5563 +96.1674 -12.4648 19.4338 +95.186 -12.8129 19.9765 +95.7498 -13.369 20.8436 +95.5301 -13.8196 21.5461 +95.3031 -14.2692 22.247 +95.9339 -14.8516 23.155 +95.5943 -15.2876 23.8349 +96.2999 -15.8953 24.7823 +95.9439 -16.3321 25.4634 +95.5812 -16.7669 26.1412 +96.2549 -17.3878 27.1093 +95.8756 -17.8231 27.7879 +95.5838 -18.2741 28.4911 +96.0366 -18.8715 29.4225 +96.7582 -19.5312 30.451 +96.1588 -19.9283 31.0701 +96.8565 -20.5982 32.1146 +96.6126 -21.074 32.8564 +96.2682 -21.5283 33.5648 +96.0087 -22.0022 34.3036 +95.7411 -22.4752 35.041 +96.2877 -23.145 36.0853 +96.6379 -23.7769 37.0704 +96.8843 -24.391 38.0279 +95.8546 -24.6838 38.4845 +96.171 -25.3238 39.4823 +96.4739 -25.9687 40.4876 +96.1396 -26.4467 41.233 +96.5068 -27.123 42.2874 +96.0647 -27.5767 42.9947 +96.4062 -28.26 44.0601 +95.8583 -28.687 44.7258 +96.0873 -29.3502 45.7599 +96.302 -30.0178 46.8006 +96.8471 -30.7991 48.0188 +94.717 -30.7259 47.9047 +94.4725 -31.2556 48.7305 +94.0485 -31.7281 49.4672 +94.3755 -32.4601 50.6084 +94.2666 -33.0505 51.529 +94.5627 -33.7914 52.6841 +94.2616 -34.3262 53.5178 +94.0328 -34.8913 54.3989 +94.1206 -35.5807 55.4738 +94.2746 -36.305 56.6029 +94.8977 -37.2237 58.0354 +94.7747 -37.8621 59.0307 +94.798 -38.5671 60.1298 +93.695 -38.8151 60.5164 +92.8277 -39.1553 61.0469 +91.2521 -39.1879 61.0976 +89.4495 -39.1067 60.9711 +88.5825 -39.4236 61.4652 +85.9502 -38.9371 60.7067 +85.5457 -39.4458 61.4997 +83.169 -39.0326 60.8557 +82.9843 -39.6376 61.7989 +80.7798 -39.2685 61.2233 +80.5107 -39.8299 62.0987 +78.4011 -39.4713 61.5396 +78.1954 -40.0622 62.4608 +75.6745 -39.454 61.5125 +75.0339 -39.809 62.0661 +72.5492 -39.1684 61.0673 +71.0021 -39.0081 60.8174 +70.5078 -39.4188 61.4577 +69.9368 -39.7886 62.0343 +67.8588 -39.2875 61.253 +67.2212 -39.6057 61.7491 +65.0395 -38.9981 60.8018 +64.9368 -39.6265 61.7816 +63.3753 -39.3605 61.3668 +62.7367 -39.6576 61.83 +61.4505 -39.538 61.6436 +60.8091 -39.8261 62.0927 +58.5268 -39.0202 60.8362 +58.4541 -39.6747 61.8566 +56.6409 -39.1402 61.0234 +56.3713 -39.6626 61.8378 +55.1864 -39.5386 61.6445 +54.4858 -39.7537 61.9799 +52.9007 -39.31 61.2881 +52.2633 -39.5578 61.6744 +51.3924 -39.6256 61.7801 +50.75 -39.8662 62.1553 +49.0971 -39.2982 61.2696 +48.6808 -39.708 61.9087 +46.5666 -38.7134 60.3578 +46.7451 -39.6143 61.7625 +45.626 -39.4209 61.461 +44.4646 -39.1741 61.0762 +43.5207 -39.1044 60.9675 +43.09 -39.494 61.575 +42.05 -39.3215 61.306 +41.1666 -39.2832 61.2462 +39.9968 -38.9562 60.7365 +39.7473 -39.5228 61.6198 +38.7784 -39.3748 61.3891 +38.0943 -39.5081 61.597 +37.0002 -39.205 61.1244 +36.4097 -39.4262 61.4692 +35.3327 -39.111 60.9778 +34.6992 -39.276 61.235 +33.6404 -38.9486 60.7247 +33.4243 -39.5969 61.7354 +32.0508 -38.8651 60.5945 +31.7803 -39.4602 61.5223 +30.7896 -39.1612 61.0561 +30.232 -39.4045 61.4354 +29.2568 -39.0949 60.9528 +28.5871 -39.1811 61.087 +27.4868 -38.659 60.2731 +26.8609 -38.787 60.4727 +26.2671 -38.9628 60.7468 +25.603 -39.0342 60.8581 +24.6455 -38.6429 60.248 +24.4007 -39.3719 61.3846 +23.3926 -38.8692 60.6009 +23.0942 -39.5443 61.6534 +22.1618 -39.1353 61.0157 +21.5568 -39.29 61.2569 +20.6452 -38.8711 60.6038 +20.0162 -38.9669 60.7531 +19.1785 -38.6425 60.2474 +18.7785 -39.2018 61.1195 +17.9748 -38.9221 60.6833 +17.4851 -39.3203 61.3041 +16.9388 -39.6116 61.7583 +16.2979 -39.6899 61.8804 +15.4894 -39.3427 61.3391 +14.8529 -39.4142 61.4505 +14.2344 -39.5357 61.6399 +13.449 -39.1765 61.08 +12.8152 -39.2384 61.1764 +12.1805 -39.2973 61.2683 +11.5449 -39.3532 61.3554 +10.9231 -39.4595 61.5211 +10.2571 -39.4025 61.4323 +9.63283 -39.5028 61.5887 +8.88428 -39.0644 60.9052 +8.34308 -39.5339 61.6372 +7.63058 -39.1959 61.1102 +7.07342 -39.6603 61.8342 +6.35365 -39.2081 61.1291 +5.71182 -39.1827 61.0896 +5.07827 -39.2081 61.1292 +4.44433 -39.2305 61.1641 +3.75772 -38.7108 60.3539 +3.21475 -39.7519 61.977 +2.50578 -38.7403 60.3999 +1.90568 -39.2904 61.2575 +1.25308 -38.7581 60.4275 +0.636164 -39.3563 61.3603 +1.15463e-14 -39.3578 61.3626 +-0.636164 -39.3563 61.3603 +-1.27228 -39.3518 61.3533 +-1.92924 -39.7761 62.0147 +-2.54417 -39.3338 61.3253 +-3.21475 -39.7519 61.977 +-3.81529 -39.3039 61.2785 +-4.50538 -39.7694 62.0043 +-5.07827 -39.2081 61.1292 +-5.78244 -39.6671 61.8448 +-6.41466 -39.5845 61.7161 +-7.06383 -39.6065 61.7504 +-7.69329 -39.5181 61.6125 +-8.42232 -39.9094 62.2226 +-8.99396 -39.5467 61.6572 +-9.61978 -39.4493 61.5053 +-10.1179 -38.8679 60.5988 +-10.8936 -39.3527 61.3546 +-11.3728 -38.7666 60.4408 +-12.296 -39.67 61.8494 +-12.7805 -39.1321 61.0107 +-13.5765 -39.5481 61.6593 +-14.2153 -39.4826 61.5572 +-14.8529 -39.4142 61.4505 +-15.4686 -39.2899 61.2567 +-16.3195 -39.7426 61.9625 +-16.7589 -39.1908 61.1022 +-17.6018 -39.5828 61.7134 +-18.0474 -39.0793 60.9284 +-18.8787 -39.4109 61.4454 +-19.515 -39.3205 61.3044 +-20.417 -39.7473 61.9699 +-21.0587 -39.6496 61.8175 +-22.068 -40.2218 62.7097 +-22.3664 -39.4967 61.5792 +-23.3648 -40.0077 62.3759 +-24.0106 -39.8961 62.2019 +-24.718 -39.8839 62.1828 +-25.3292 -39.7148 61.9193 +-26.5376 -40.4592 63.0798 +-26.917 -39.9268 62.2497 +-27.8415 -40.203 62.6803 +-28.4903 -40.0703 62.4734 +-29.5033 -40.4368 63.0449 +-30.1558 -40.2963 62.8258 +-31.1504 -40.6016 63.3018 +-31.4539 -40.006 62.3732 +-32.8569 -40.7971 63.6065 +-33.1084 -40.1475 62.5938 +-34.1707 -40.4812 63.1141 +-34.866 -40.3676 62.937 +-35.6894 -40.3967 62.9824 +-36.2971 -40.1785 62.6422 +-37.2129 -40.2959 62.8251 +-37.8174 -40.0709 62.4744 +-39.2948 -40.7532 63.5382 +-39.9051 -40.5188 63.1728 +-41.0357 -40.8038 63.6171 +-41.2088 -40.1367 62.577 +-42.5454 -40.5989 63.2975 +-43.05 -40.2566 62.764 +-44.1558 -40.4709 63.098 +-44.4993 -39.9837 62.3385 +-46.0844 -40.6011 63.3011 +-46.5799 -40.2451 62.7459 +-48.0346 -40.7071 63.4663 +-49.0175 -40.7509 63.5346 +-50.1159 -40.8786 63.7336 +-50.3274 -40.2829 62.8049 +-52.6758 -41.379 64.5138 +-52.1955 -40.2447 62.7454 +-53.8312 -40.7445 63.5246 +-54.4877 -40.4894 63.1268 +-56.1513 -40.9689 63.8745 +-56.5104 -40.4872 63.1235 +-58.015 -40.8191 63.6409 +-58.8572 -40.6718 63.4112 +-60.3217 -40.9422 63.8329 +-61.1699 -40.7824 63.5836 +-62.3993 -40.8676 63.7165 +-62.6718 -40.3238 62.8687 +-64.9448 -41.0534 64.0062 +-66.1964 -41.1126 64.0984 +-68.2499 -41.6482 64.9336 +-68.6528 -41.1647 64.1797 +-70.4641 -41.5163 64.7279 +-71.1324 -41.1827 64.2079 +-73.3786 -41.7468 65.0872 +-74.0506 -41.3995 64.5457 +-76.1888 -41.8577 65.2601 +-76.8625 -41.4971 64.698 +-79.2421 -42.0416 65.5469 +-79.7028 -41.5541 64.7869 +-82.2575 -42.1433 65.7055 +-82.0579 -41.3123 64.4099 +-84.4183 -41.7631 65.1127 +-85.0901 -41.3638 64.4901 +-87.9274 -41.9987 65.4801 +-88.452 -41.512 64.7212 +-91.3248 -42.1105 65.6544 +-92.6914 -41.991 65.468 +-95.6814 -42.5829 66.3909 +-96.677 -42.2665 65.8975 +-99.5478 -42.7504 66.652 +-99.9198 -42.1468 65.711 +-102.025 -42.266 65.8968 +-103.503 -42.1087 65.6514 +-106.35 -42.4865 66.2406 +-107.842 -42.3012 65.9516 +-110.068 -42.3871 66.0856 +-111.732 -42.2386 65.854 +-115.13 -42.7197 66.6041 +-115.485 -42.0549 65.5676 +-119.996 -42.8799 66.8539 +-121.691 -42.6658 66.52 +-125.412 -43.1351 67.2518 +-102.953 -34.7322 54.1508 +-98.0536 -32.4404 50.5777 +-98.5742 -31.9772 49.8556 +-98.5704 -31.3472 48.8733 +-98.2939 -30.6386 47.7686 +-98.7854 -30.1744 47.0448 +-98.5696 -29.4984 45.9908 +-99.0427 -29.0329 45.2651 +-98.8018 -28.3624 44.2197 +-98.4582 -27.6715 43.1425 +-98.9017 -27.2065 42.4176 +-98.6218 -26.5468 41.3891 +-98.9572 -26.0575 40.6262 +-98.6526 -25.4044 39.6079 +-98.8782 -24.893 38.8106 +-99.2768 -24.4261 38.0827 +-99.0283 -23.8038 37.1124 +-98.584 -23.1426 36.0815 +-98.8622 -22.6561 35.3231 +-98.3932 -22.0036 34.3057 +-98.7451 -21.5391 33.5816 +-99.0895 -21.0731 32.855 +-98.6795 -20.4507 31.8846 +-98.9126 -19.9661 31.129 +-98.3858 -19.3331 30.1422 +-98.6003 -18.8508 29.3903 +-97.9557 -18.2098 28.3909 +-97.5825 -17.6277 27.4832 +-64.1012 -11.2446 17.5314 +-55.6971 -9.48108 14.7819 +-47.4327 -7.82924 12.2065 +-43.051 -6.88481 10.7341 +-36.8163 -5.69954 8.88613 +-37.967 -5.68459 8.86282 +-37.4779 -5.42166 8.45289 +-17.3298 -2.41967 3.7725 +-17.6594 -2.37712 3.70615 +-16.5303 -2.14258 3.34049 +-16.5643 -2.06462 3.21895 +-16.2065 -1.93976 3.02428 +-16.1394 -1.85211 2.88761 +-16.0708 -1.76523 2.75217 +-14.7244 -1.54523 2.40916 +-14.7488 -1.4758 2.30091 +-3226.53 -307.155 478.884 +-3231.37 -291.942 455.165 +-3235.96 -276.707 431.412 +-3240.31 -261.45 407.626 +-3244.42 -246.174 383.809 +-3248.27 -230.879 359.963 +-3251.88 -215.567 336.09 +-3255.24 -200.238 312.19 +-13.9233 -0.790072 1.2318 +-14.6323 -0.760664 1.18595 +-13.8471 -0.654052 1.01973 +-13.6578 -0.58032 0.904775 +-14.3649 -0.542312 0.845516 +-14.7724 -0.487798 0.760525 +-15.279 -0.43231 0.674012 +-14.686 -0.346179 0.539726 +-15.0908 -0.284511 0.44358 +-15.0948 -0.213403 0.332715 +-14.4978 -0.136624 0.21301 +-14.7994 -0.0697281 0.108713 +74.2 7.10543e-15 -1.7053e-13 +91.2965 -0.424078 0.674494 +74.0887 -0.688343 1.09481 +56.5806 -0.788623 1.2543 +47.7709 -0.887934 1.41226 +47.4548 -1.10282 1.75403 +47.7345 -1.33156 2.11784 +42.9198 -1.39726 2.22233 +28.5303 -1.0619 1.68895 +34.3936 -1.44077 2.29154 +31.0813 -1.44738 2.30206 +41.9062 -2.14777 3.41602 +46.2453 -2.58714 4.11483 +47.0953 -2.85607 4.54257 +50.6199 -3.30824 5.26175 +56.8098 -3.98093 6.33166 +92.392 -6.91148 10.9927 +94.8466 -7.54488 12.0001 +94.9168 -8.00184 12.7269 +94.782 -8.4424 13.4276 +95.4279 -8.95625 14.2449 +95.3757 -9.40884 14.9647 +95.1197 -9.84136 15.6527 +95.0527 -10.2934 16.3716 +94.8803 -10.7345 17.0732 +95.677 -11.29 17.9568 +95.4883 -11.734 18.6629 +95.195 -12.1647 19.3479 +95.186 -12.6321 20.0913 +95.7498 -13.1804 20.9634 +95.6267 -13.6384 21.6919 +96.074 -14.1817 22.5559 +95.8378 -14.6273 23.2647 +95.6902 -15.0871 23.9959 +95.3436 -15.5154 24.6772 +96.0393 -16.1177 25.6352 +95.6763 -16.5468 26.3175 +96.2549 -17.1425 27.2651 +95.9701 -17.589 27.9752 +95.5838 -18.0163 28.6548 +96.1306 -18.6235 29.6205 +95.7279 -19.0506 30.2999 +96.1588 -19.6471 31.2487 +95.833 -20.093 31.9578 +96.5198 -20.7567 33.0134 +96.2682 -21.2246 33.7577 +96.0087 -21.6918 34.5007 +96.5664 -22.3491 35.5462 +96.1963 -22.7968 36.2583 +96.6379 -23.4414 37.2835 +96.2499 -23.8894 37.996 +96.5766 -24.5189 38.9972 +96.171 -24.9665 39.7092 +96.5634 -25.626 40.7581 +96.0505 -26.0494 41.4315 +96.5068 -26.7403 42.5304 +96.8594 -27.4125 43.5994 +96.4941 -27.8867 44.3537 +96.558 -28.4887 45.3112 +96.8706 -29.172 46.3979 +96.4752 -29.6475 47.1542 +96.5886 -30.2836 48.1659 +96.0027 -30.7037 48.834 +94.8136 -30.9259 49.1875 +94.2181 -31.3369 49.8412 +94.3755 -32.0021 50.8993 +94.1827 -32.5553 51.779 +94.3125 -33.2265 52.8466 +94.1787 -33.8121 53.778 +94.28 -34.4895 54.8554 +94.2025 -35.1093 55.8411 +94.2746 -35.7928 56.9282 +93.7651 -36.2606 57.6723 +94.1316 -37.0746 58.967 +94.6383 -37.9589 60.3735 +94.171 -38.4619 61.1735 +93.4581 -38.8651 61.8147 +92.6608 -39.2314 62.3973 +90.6152 -39.0574 62.1206 +89.5085 -39.2736 62.4646 +87.5589 -39.1062 62.1983 +86.6863 -39.4078 62.6779 +84.9048 -39.2851 62.4828 +83.6584 -39.3959 62.6589 +81.8946 -39.2487 62.4249 +81.248 -39.6275 63.0275 +79.2787 -39.35 62.5861 +78.8482 -39.8267 63.3442 +76.8974 -39.5259 62.8658 +76.2465 -39.8815 63.4314 +73.7512 -39.2556 62.4359 +73.1048 -39.5967 62.9784 +71.133 -39.2073 62.359 +70.1433 -39.3431 62.575 +68.6772 -39.2003 62.3479 +68.4373 -39.7533 63.2274 +66.5785 -39.3576 62.5982 +66.1295 -39.785 63.2779 +64.6874 -39.6086 62.9973 +63.8407 -39.7861 63.2796 +62.4147 -39.5918 62.9706 +61.4452 -39.6749 63.1027 +60.4777 -39.7519 63.2253 +59.8237 -40.0313 63.6697 +57.8106 -39.3849 62.6416 +57.4671 -39.8631 63.4021 +55.7281 -39.3633 62.6072 +55.6159 -40.0058 63.629 +53.5472 -39.2291 62.3937 +53.1924 -39.693 63.1316 +52.0234 -39.5462 62.898 +51.5996 -39.9618 63.559 +50.1037 -39.538 62.8851 +49.5087 -39.8136 63.3234 +47.8738 -39.2385 62.4087 +47.2286 -39.4594 62.76 +45.785 -39.0002 62.0297 +45.4574 -39.4837 62.7986 +44.0358 -39.0089 62.0436 +43.3945 -39.212 62.3665 +42.5 -39.1816 62.3182 +41.9545 -39.4702 62.7771 +40.7725 -39.1514 62.2702 +40.2245 -39.4329 62.7179 +39.1539 -39.1952 62.3399 +38.4637 -39.3284 62.5517 +37.4542 -39.1261 62.23 +36.8113 -39.2987 62.5044 +35.7272 -38.9897 62.013 +35.5172 -39.6346 63.0387 +34.4434 -39.3157 62.5314 +33.7975 -39.4741 62.7835 +32.8236 -39.2406 62.4121 +32.179 -39.3916 62.6522 +31.1413 -39.0496 62.1082 +30.4999 -39.1928 62.336 +29.5565 -38.9382 61.931 +29.2468 -39.5197 62.8559 +27.9527 -38.7596 61.6469 +27.6314 -39.3366 62.5647 +26.7118 -39.0633 62.1301 +26.0369 -39.1357 62.2452 +25.4269 -39.3055 62.5153 +24.7498 -39.3716 62.6204 +23.7016 -38.827 61.7542 +23.0641 -38.9356 61.927 +22.1618 -38.5832 61.3664 +21.784 -39.144 62.2583 +21.1689 -39.2948 62.4983 +20.5239 -39.3916 62.6523 +19.6444 -39.0228 62.0656 +18.9538 -39.0095 62.0444 +18.1441 -38.7345 61.6071 +17.5317 -38.8691 61.8211 +16.9388 -39.0527 62.1132 +16.5576 -39.7535 63.2278 +15.5518 -38.9438 61.9399 +15.2118 -39.797 63.2969 +14.387 -39.3959 62.6589 +13.7588 -39.5135 62.846 +12.9542 -39.1042 62.195 +12.4776 -39.6878 63.1233 +11.6857 -39.2711 62.4605 +11.0414 -39.3239 62.5445 +10.3823 -39.321 62.5398 +9.73725 -39.3677 62.6142 +9.09145 -39.4114 62.6837 +8.54684 -39.9281 63.5055 +7.79782 -39.4898 62.8084 +7.15009 -39.5246 62.8637 +6.42338 -39.079 62.1551 +5.85305 -39.585 62.9597 +5.14105 -39.1328 62.2406 +4.54812 -39.5802 62.9521 +3.85193 -39.1214 62.2224 +3.21475 -39.191 62.3332 +2.57209 -39.2044 62.3545 +1.9528 -39.6938 63.1328 +1.28799 -39.2756 62.4677 +0.643146 -39.2269 62.3902 +1.24345e-14 -39.2816 62.4772 +-0.643146 -39.2269 62.3902 +-1.28799 -39.2756 62.4677 +-1.9528 -39.6938 63.1328 +-2.57558 -39.2576 62.4391 +-3.21475 -39.191 62.3332 +-3.85716 -39.1746 62.307 +-4.55422 -39.6333 63.0367 +-5.13408 -39.0797 62.1561 +-5.8452 -39.5319 62.8753 +-6.4931 -39.5033 62.8298 +-7.22677 -39.9485 63.5379 +-7.77692 -39.384 62.6401 +-8.39968 -39.2406 62.412 +-9.16457 -39.7284 63.1879 +-9.7242 -39.3149 62.5302 +-10.3684 -39.2683 62.456 +-11.1448 -39.6924 63.1306 +-11.6544 -39.166 62.2933 +-12.296 -39.1103 62.2048 +-12.9368 -39.0517 62.1116 +-13.7406 -39.4612 62.7628 +-14.387 -39.3959 62.6589 +-15.2118 -39.797 63.2969 +-15.6558 -39.2041 62.354 +-16.536 -39.7015 63.1451 +-16.9613 -39.1046 62.1957 +-17.8119 -39.4901 62.8089 +-18.2409 -38.9411 61.9356 +-19.129 -39.3702 62.6181 +-19.7738 -39.2798 62.4744 +-20.7644 -39.8533 63.3865 +-21.417 -39.7553 63.2306 +-22.3236 -40.1136 63.8005 +-22.7173 -39.5503 62.9046 +-23.9061 -40.357 64.1877 +-24.2887 -39.7888 63.284 +-25.2575 -40.1793 63.905 +-25.8827 -40.0101 63.6359 +-26.8715 -40.3901 64.2403 +-27.5326 -40.2638 64.0394 +-28.5069 -40.583 64.5471 +-28.8486 -40.0018 63.6228 +-29.8332 -40.312 64.1161 +-30.493 -40.172 63.8933 +-31.4948 -40.4714 64.3695 +-32.1962 -40.3725 64.2123 +-33.1759 -40.6119 64.5931 +-33.8812 -40.5049 64.4229 +-34.9172 -40.7819 64.8634 +-35.2886 -40.2805 64.0659 +-36.0338 -40.2111 63.9556 +-36.9109 -40.2814 64.0675 +-37.9268 -40.4895 64.3984 +-38.6346 -40.3593 64.1912 +-39.7104 -40.6031 64.5791 +-40.1398 -40.1822 63.9096 +-41.2265 -40.4152 64.2802 +-41.8876 -40.2221 63.9732 +-42.9886 -40.443 64.3245 +-43.65 -40.2418 64.0044 +-44.6126 -40.3127 64.1172 +-45.5809 -40.3777 64.2205 +-46.3979 -40.3006 64.0979 +-47.0568 -40.0835 63.7527 +-48.7868 -40.7612 64.8306 +-49.4532 -40.5331 64.4677 +-50.6126 -40.7013 64.7352 +-51.278 -40.4646 64.3589 +-52.8457 -40.9268 65.0939 +-53.5147 -40.6798 64.701 +-54.6441 -40.7763 64.8546 +-55.0167 -40.3057 64.106 +-56.6866 -40.776 64.854 +-57.1724 -40.3836 64.2299 +-59.1716 -41.0455 65.2826 +-59.8423 -40.7691 64.843 +-61.1932 -40.9478 65.1273 +-61.7363 -40.5792 64.5411 +-63.6714 -41.1124 65.3891 +-64.5359 -40.9374 65.1108 +-66.3736 -41.3646 65.7902 +-67.3117 -41.2154 65.553 +-69.5751 -41.858 66.5749 +-69.9911 -41.3749 65.8067 +-71.6801 -41.6369 66.2234 +-72.36 -41.3024 65.6913 +-74.2046 -41.6211 66.1982 +-74.9536 -41.3131 65.7084 +-77.4505 -41.9505 66.7221 +-77.4989 -41.2504 65.6086 +-80.2407 -41.9708 66.7543 +-80.9257 -41.5965 66.159 +-82.9103 -41.8785 66.6075 +-83.3743 -41.3829 65.8193 +-85.7454 -41.8211 66.5163 +-86.8736 -41.635 66.2202 +-89.1257 -41.9705 66.7539 +-89.735 -41.52 66.0374 +-92.3893 -42.0004 66.8014 +-93.7638 -41.8776 66.6061 +-97.1475 -42.6254 67.7955 +-98.3867 -42.4071 67.4483 +-100.487 -42.5449 67.6674 +-101.89 -42.3714 67.3915 +-103.85 -42.415 67.4609 +-105.42 -42.2834 67.2515 +-107.636 -42.3937 67.4269 +-109.379 -42.2988 67.2761 +-111.778 -42.4382 67.4978 +-113.616 -42.3448 67.3493 +-115.542 -42.2677 67.2266 +-118.552 -42.5628 67.696 +-121.497 -42.8037 68.0791 +-123.452 -42.6726 67.8706 +-99.7732 -33.8325 53.8104 +-97.6103 -32.4652 51.6357 +-98.9063 -32.2608 51.3107 +-98.7457 -31.5809 50.2293 +-98.5704 -30.9049 49.1541 +-99.0733 -30.4459 48.424 +-98.8724 -29.7748 47.3568 +-98.5696 -29.0822 46.2551 +-99.0427 -28.6233 45.5252 +-98.8018 -27.9623 44.4738 +-98.4582 -27.2811 43.3904 +-98.9017 -26.8227 42.6613 +-98.5323 -26.1485 41.5891 +-98.9572 -25.6899 40.8597 +-98.4721 -25.0001 39.7626 +-98.9688 -24.5642 39.0693 +-98.6398 -23.927 38.0558 +-99.0283 -23.468 37.3257 +-98.584 -22.816 36.2888 +-98.0338 -22.1493 35.2284 +-98.4856 -21.7135 34.5352 +-98.7451 -21.2353 33.7746 +-98.3451 -20.6197 32.7956 +-98.6795 -20.1621 32.0678 +-98.8189 -19.6657 31.2783 +-98.2918 -19.0421 30.2864 +-98.6003 -18.5849 29.5592 +-98.8067 -18.1089 28.8021 +-98.8153 -17.5985 27.9904 +-96.5322 -16.6948 26.553 +-88.9818 -14.9333 23.7514 +-50.6842 -8.24791 13.1183 +-45.5439 -7.1807 11.4209 +-38.1621 -5.82453 9.26389 +-36.907 -5.4479 8.66486 +-36.512 -5.2074 8.28234 +-34.3692 -4.73108 7.52477 +-16.7861 -2.22769 3.54312 +-16.2386 -2.07508 3.3004 +-17.831 -2.19115 3.48501 +-16.8899 -1.99304 3.16992 +-16.922 -1.91451 3.04502 +-16.5607 -1.79339 2.85238 +-15.5097 -1.60468 2.55224 +-14.8471 -1.46468 2.32957 +-14.0828 -1.32172 2.10219 +-3231.37 -287.823 457.781 +-3235.96 -272.803 433.891 +-3240.31 -257.762 409.969 +-3244.42 -242.701 386.015 +-3248.27 -227.622 362.032 +-3251.88 -212.526 338.021 +-14.6055 -0.885746 1.40878 +-12.4315 -0.69547 1.10614 +-13.836 -0.709123 1.12786 +-14.4448 -0.672662 1.06987 +-13.9568 -0.584662 0.929903 +-13.7664 -0.512384 0.814945 +-15.2715 -0.497164 0.790737 +-15.4788 -0.431782 0.686747 +-14.8858 -0.345938 0.550213 +-14.4912 -0.269352 0.428403 +-14.495 -0.202032 0.321331 +-13.8979 -0.129122 0.205369 +-14.4994 -0.0673509 0.107121 +77.4 3.55271e-15 -1.7053e-13 +91.6965 -0.419805 0.681264 +75.3885 -0.69034 1.12029 +56.7805 -0.780017 1.26582 +50.0695 -0.91726 1.48854 +47.9543 -1.09839 1.78248 +51.2297 -1.40849 2.28571 +45.8144 -1.47003 2.38557 +32.8199 -1.20397 1.95382 +34.9918 -1.44473 2.34452 +30.882 -1.41741 2.30018 +42.4039 -2.142 3.47606 +46.7425 -2.57733 4.18251 +49.1818 -2.93968 4.77055 +53.5975 -3.45243 5.60263 +63.7499 -4.40296 7.14517 +95.0657 -7.00911 11.3744 +96.1323 -7.53713 12.2313 +95.0156 -7.89486 12.8119 +94.9793 -8.33821 13.5313 +95.7233 -8.85468 14.3695 +95.5724 -9.29258 15.0801 +95.4142 -9.72973 15.7895 +95.2487 -10.1662 16.4978 +95.8585 -10.6891 17.3464 +95.7746 -11.1389 18.0763 +95.5857 -11.5769 18.7872 +95.4867 -12.0263 19.5164 +95.283 -12.463 20.2251 +95.9434 -13.017 21.1241 +95.6267 -13.4421 21.814 +95.4958 -13.8934 22.5464 +95.9339 -14.4313 23.4192 +95.7861 -14.8848 24.1552 +95.5348 -15.3228 24.8659 +96.0393 -15.8858 25.7796 +95.7714 -16.3248 26.4921 +96.3497 -16.9125 27.4458 +95.9701 -17.3358 28.1328 +95.7724 -17.792 28.8731 +96.2245 -18.3734 29.8165 +97.0392 -19.0336 30.888 +96.6256 -19.4584 31.5772 +96.2982 -19.9 32.2939 +96.798 -20.5169 33.2951 +96.5454 -20.9794 34.0455 +96.1007 -21.4001 34.7282 +96.6581 -22.0484 35.7804 +96.2877 -22.49 36.4971 +96.8199 -23.1476 37.5641 +96.4311 -23.5899 38.282 +96.7571 -24.2112 39.2901 +96.3507 -24.6532 40.0075 +96.7424 -25.304 41.0637 +96.3178 -25.746 41.7808 +96.6842 -26.4039 42.8486 +96.9476 -27.0426 43.885 +96.4941 -27.4854 44.6035 +96.8204 -28.155 45.6902 +96.3484 -28.5972 46.4078 +96.5618 -29.247 47.4624 +96.761 -29.901 48.5236 +97.0313 -30.586 49.6352 +96.7747 -31.1113 50.4877 +94.8118 -31.0805 50.4378 +94.6285 -31.6261 51.3232 +93.7634 -31.9438 51.8388 +94.646 -32.8641 53.3322 +94.9248 -33.5895 54.5094 +95.0217 -34.2605 55.5983 +95.0216 -34.9049 56.644 +94.4374 -35.3385 57.3477 +94.4932 -36.0162 58.4475 +94.614 -36.7283 59.603 +94.3987 -37.3179 60.5598 +93.933 -37.8125 61.3626 +94.1673 -38.5964 62.6346 +93.5999 -39.0587 63.3848 +91.3924 -38.8254 63.0062 +90.5116 -39.1422 63.5204 +88.4015 -38.9144 63.1506 +88.055 -39.4539 64.0262 +85.8105 -39.1327 63.505 +84.4822 -39.2112 63.6323 +83.0093 -39.2104 63.631 +82.3539 -39.5889 64.2452 +80.4489 -39.3561 63.8676 +79.2834 -39.4702 64.0526 +78.2642 -39.6494 64.3435 +76.9597 -39.6753 64.3854 +74.8826 -39.2842 63.7507 +73.5955 -39.2887 63.7582 +72.175 -39.209 63.6288 +71.107 -39.3097 63.7921 +69.973 -39.3651 63.8821 +68.5048 -39.2198 63.6463 +67.7829 -39.493 64.0896 +66.7921 -39.6053 64.2719 +65.8683 -39.7512 64.5086 +64.6201 -39.6922 64.4129 +63.4431 -39.665 64.3688 +62.2084 -39.5896 64.2465 +61.5475 -39.8729 64.7062 +60.5084 -39.9068 64.7612 +59.2882 -39.8102 64.6045 +58.1367 -39.7472 64.5021 +56.8715 -39.5929 64.2518 +56.2108 -39.8517 64.6718 +54.4877 -39.3436 63.8472 +54.4119 -40.0186 64.9426 +52.9985 -39.7075 64.4378 +52.3359 -39.9487 64.8291 +51.1662 -39.7953 64.5802 +49.9503 -39.5906 64.248 +48.6907 -39.3337 63.8312 +48.2495 -39.7322 64.4778 +46.6329 -39.1507 63.5342 +45.9799 -39.3627 63.8782 +44.8598 -39.167 63.5606 +44.1558 -39.3257 63.8181 +43.05 -39.1174 63.4802 +42.2992 -39.2217 63.6494 +41.3058 -39.0927 63.44 +40.7016 -39.3264 63.8193 +39.5765 -39.048 63.3676 +38.9254 -39.2277 63.6591 +37.9082 -39.0305 63.339 +37.2575 -39.2025 63.6183 +36.1656 -38.9001 63.1275 +35.5602 -39.1115 63.4706 +34.866 -39.2253 63.6552 +34.2122 -39.3834 63.9118 +33.1897 -39.1072 63.4636 +32.5379 -39.2577 63.7078 +31.5711 -39.0188 63.3201 +30.9208 -39.1619 63.5523 +29.9311 -38.8642 63.0692 +29.2468 -38.9509 63.2099 +28.3111 -38.6915 62.789 +27.6664 -38.8196 62.9969 +27.0196 -38.9448 63.2 +26.6712 -39.5121 64.1207 +25.7199 -39.1863 63.5919 +24.7815 -38.8548 63.0539 +24.1342 -38.9667 63.2356 +23.4851 -39.0757 63.4125 +22.8342 -39.1818 63.5846 +22.1816 -39.2848 63.7518 +21.1414 -38.6789 62.7685 +20.898 -39.5325 64.1537 +19.9032 -38.9679 63.2375 +19.2542 -39.0575 63.383 +18.3861 -38.6861 62.7801 +17.7418 -38.7687 62.9143 +17.2313 -39.1552 63.5414 +16.5793 -39.2326 63.6671 +15.8845 -39.2044 63.6213 +15.2516 -39.327 63.8202 +14.4442 -38.9834 63.2626 +13.9592 -39.5122 64.1208 +13.3015 -39.5746 64.2221 +12.6426 -39.634 64.3185 +11.8577 -39.2759 63.7373 +11.1892 -39.2768 63.7387 +10.5354 -39.3265 63.8195 +9.88083 -39.3732 63.8953 +9.22551 -39.4169 63.9662 +8.56948 -39.4577 64.0324 +7.92326 -39.5476 64.1783 +7.25552 -39.5302 64.1499 +6.51925 -39.0915 63.4381 +5.86089 -39.0676 63.3992 +5.21081 -39.0929 63.4403 +4.56643 -39.1677 63.5617 +3.9095 -39.1347 63.5081 +3.26273 -39.2035 63.6198 +2.60699 -39.1645 63.5566 +1.95542 -39.1749 63.5735 +1.30544 -39.2349 63.6707 +0.652745 -39.2394 63.678 +1.06581e-14 -39.2408 63.6804 +-0.652745 -39.2394 63.678 +-1.30544 -39.2349 63.6707 +-1.95804 -39.2274 63.6586 +-2.61397 -39.2694 63.7267 +-3.26709 -39.2559 63.7049 +-3.91473 -39.1871 63.5932 +-4.62137 -39.6389 64.3264 +-5.21778 -39.1453 63.5253 +-5.93935 -39.5905 64.2479 +-6.58897 -39.5096 64.1166 +-7.24594 -39.478 64.0652 +-7.90235 -39.4433 64.009 +-8.55816 -39.4056 63.9477 +-9.21332 -39.3649 63.8818 +-9.86778 -39.3212 63.8109 +-10.5215 -39.2746 63.7352 +-11.3074 -39.6918 64.4123 +-11.8108 -39.1204 63.485 +-12.6261 -39.5823 64.2345 +-13.1278 -39.058 63.3837 +-13.9228 -39.4091 63.9535 +-14.4061 -38.8804 63.0955 +-15.2317 -39.2756 63.7368 +-15.9052 -39.2557 63.7045 +-16.839 -39.8472 64.6644 +-17.2088 -39.1041 63.4585 +-18.162 -39.687 64.4044 +-18.7248 -39.3987 63.9366 +-19.6048 -39.7686 64.5369 +-20.3432 -39.8293 64.6355 +-21.0317 -39.7852 64.5639 +-21.6927 -39.6874 64.4052 +-22.6076 -40.0393 64.9763 +-23.2728 -39.9343 64.8058 +-24.2369 -40.3266 65.4424 +-24.5978 -39.7151 64.4501 +-25.5748 -40.0985 65.0723 +-26.2408 -39.9799 64.8798 +-27.1719 -40.2539 65.3244 +-27.8746 -40.1772 65.2 +-28.5069 -39.999 64.9107 +-29.207 -39.9159 64.7759 +-30.4196 -40.5129 65.7447 +-30.8676 -40.0802 65.0425 +-31.7627 -40.2282 65.2827 +-32.5479 -40.2261 65.2793 +-33.6145 -40.5567 65.8158 +-33.9218 -39.9699 64.8635 +-35.3733 -40.7201 66.081 +-35.4999 -39.9385 64.8126 +-36.3782 -40.0112 64.9306 +-37.3931 -40.2203 65.27 +-38.4623 -40.4702 65.6754 +-39.134 -40.2926 65.3872 +-40.0336 -40.3445 65.4715 +-40.7032 -40.1597 65.1716 +-41.7991 -40.3868 65.5401 +-42.2269 -39.9645 64.8548 +-43.7765 -40.5915 65.8723 +-44.3 -40.2533 65.3234 +-45.1202 -40.1845 65.2118 +-46.0959 -40.2463 65.312 +-47.5474 -40.7047 66.0559 +-48.0637 -40.352 65.4836 +-49.2166 -40.5286 65.7702 +-50.0523 -40.4337 65.6162 +-51.2198 -40.5967 65.8808 +-51.8931 -40.3607 65.4978 +-53.582 -40.8998 66.3726 +-54.0883 -40.524 65.7628 +-55.4571 -40.7874 66.1902 +-56.4862 -40.7866 66.1889 +-57.6978 -40.906 66.3827 +-58.015 -40.3889 65.5436 +-59.5977 -40.7461 66.1232 +-60.7658 -40.8024 66.2146 +-61.9402 -40.8511 66.2936 +-62.8691 -40.7291 66.0956 +-64.8164 -41.2493 66.9398 +-65.5001 -40.951 66.4557 +-67.4777 -41.4475 67.2613 +-68.1645 -41.1369 66.7574 +-69.9727 -41.4913 67.3324 +-70.6602 -41.1694 66.81 +-72.8962 -41.7339 67.7262 +-73.5876 -41.3986 67.1821 +-75.9255 -41.9734 68.1149 +-76.9681 -41.8129 67.8544 +-78.2916 -41.7957 67.8266 +-79.4081 -41.6583 67.6035 +-81.0966 -41.808 67.8464 +-82.4363 -41.7631 67.7735 +-83.7807 -41.7091 67.686 +-85.349 -41.7533 67.7577 +-87.3674 -41.9989 68.1563 +-87.3195 -41.2463 66.9349 +-89.7998 -41.6793 67.6376 +-91.1689 -41.5763 67.4705 +-93.606 -41.9411 68.0624 +-94.9895 -41.8144 67.8569 +-98.8451 -42.7461 69.3688 +-99.1638 -42.1269 68.3639 +-102.443 -42.749 69.3735 +-102.914 -42.1815 68.4525 +-105.357 -42.4113 68.8255 +-106.538 -42.1168 68.3476 +-108.923 -42.2828 68.6169 +-110.593 -42.1525 68.4055 +-113.243 -42.3758 68.7679 +-115.009 -42.2469 68.5587 +-118.839 -42.848 69.5341 +-119.547 -42.3023 68.6485 +-123.498 -42.8826 69.5904 +-126.052 -42.9442 69.6902 +-98.0021 -32.7536 53.1529 +-97.7799 -32.0535 52.0168 +-99.0768 -31.8513 51.6887 +-98.9171 -31.1804 50.5999 +-98.6565 -30.4867 49.4742 +-99.1599 -30.0339 48.7394 +-98.9594 -29.3722 47.6655 +-98.7446 -28.7145 46.5982 +-99.2185 -28.2614 45.8628 +-98.8018 -27.5598 44.7243 +-98.5469 -26.9127 43.6741 +-98.9908 -26.4604 42.9403 +-98.7113 -25.819 41.8993 +-99.137 -25.3661 41.1644 +-99.4649 -24.8887 40.3897 +-98.9688 -24.2107 39.2894 +-98.7308 -23.6044 38.3055 +-99.1197 -23.1515 37.5705 +-98.7674 -22.5295 36.5612 +-99.0463 -22.056 35.7927 +-98.5779 -21.421 34.7623 +-99.0232 -20.9886 34.0605 +-98.4382 -20.3422 33.0115 +-98.8662 -19.9096 32.3095 +-99.0063 -19.4194 31.5141 +-98.3858 -18.786 30.4862 +-98.6946 -18.3349 29.7541 +-98.7121 -17.8311 28.9365 +-98.7205 -17.3286 28.121 +-98.6246 -16.8112 27.2814 +-97.0884 -16.0593 26.0612 +-56.9958 -9.14154 14.835 +-47.4616 -7.37539 11.9689 +-39.7962 -5.98654 9.71501 +-37.2925 -5.42557 8.80467 +-35.7393 -5.02382 8.15271 +-33.7884 -4.58418 7.43925 +-17.0772 -2.2337 3.62487 +-17.1137 -2.15543 3.49786 +-15.9797 -1.93539 3.14077 +-17.1828 -1.99842 3.24305 +-17.0198 -1.89786 3.07987 +-15.6788 -1.67345 2.71569 +-15.3134 -1.56156 2.53412 +-15.3388 -1.4914 2.42026 +-14.9691 -1.38468 2.24708 +-15.0902 -1.32476 2.14984 +-3235.96 -268.876 436.335 +-3240.31 -254.052 412.278 +-3244.42 -239.208 388.189 +-3248.27 -224.346 364.071 +-3251.88 -209.467 339.925 +-14.5061 -0.86706 1.40707 +-13.9233 -0.767714 1.24585 +-14.1346 -0.714 1.15869 +-14.146 -0.649263 1.05363 +-15.0535 -0.621521 1.00861 +-14.5644 -0.534284 0.867041 +-13.8741 -0.445171 0.722428 +-15.5786 -0.428313 0.695071 +-14.686 -0.336383 0.545885 +-14.2913 -0.261813 0.424874 +-14.1951 -0.195004 0.316455 +-13.6979 -0.125433 0.203554 +-15.0994 -0.0691284 0.112182 +84.6 0 -1.7053e-13 +91.7965 -0.414092 0.685772 +75.7885 -0.683811 1.13245 +59.5796 -0.806452 1.33555 +52.468 -0.947087 1.56846 +54.3482 -1.22656 2.03129 +55.1244 -1.49331 2.47305 +49.8069 -1.57466 2.60778 +37.3089 -1.34855 2.23332 +36.6866 -1.49246 2.47164 +33.8706 -1.53175 2.53671 +49.7698 -2.47717 4.1024 +51.8146 -2.81504 4.66194 +51.0696 -3.0077 4.98101 +57.9647 -3.67891 6.09259 +72.6729 -4.94554 8.19024 +95.1648 -6.91337 11.4491 +96.0334 -7.4188 12.2862 +96.1021 -7.86789 13.0299 +94.9793 -8.21577 13.606 +95.8218 -8.73366 14.4637 +95.5724 -9.15613 15.1633 +95.4142 -9.58687 15.8767 +95.2487 -10.0169 16.5889 +95.0759 -10.4462 17.2997 +94.896 -10.8746 18.0093 +95.6831 -11.4186 18.9101 +95.3895 -11.8377 19.6042 +95.283 -12.28 20.3367 +95.8466 -12.8129 21.2192 +95.7232 -13.2581 21.9566 +95.4958 -13.6894 22.6708 +96.1262 -14.2479 23.5957 +95.7861 -14.6663 24.2886 +96.3955 -15.2338 25.2285 +96.1347 -15.668 25.9476 +95.8665 -16.1011 26.6648 +96.3497 -16.6641 27.5972 +96.1592 -17.1149 28.3438 +95.7724 -17.5308 29.0325 +96.2245 -18.1036 29.9811 +95.9152 -18.5369 30.6987 +96.6256 -19.1726 31.7515 +97.1356 -19.7783 32.7545 +96.8907 -20.235 33.5109 +96.453 -20.6516 34.2007 +96.2848 -21.1262 34.9868 +96.6581 -21.7247 35.9779 +96.2877 -22.1598 36.6985 +96.7289 -22.7862 37.7359 +96.4311 -23.2435 38.4933 +96.7571 -23.8557 39.507 +96.2608 -24.2685 40.1907 +95.8475 -24.7018 40.9083 +96.2287 -25.3445 41.9726 +96.6842 -26.0162 43.0851 +97.0359 -26.6698 44.1674 +96.4941 -27.0818 44.8497 +96.9079 -27.7666 45.9839 +96.3484 -28.1773 46.6639 +96.5618 -28.8176 47.7243 +96.0717 -29.252 48.4438 +96.8599 -30.0836 49.821 +96.8599 -30.6814 50.811 +94.4726 -30.5146 50.5347 +94.7972 -31.2173 51.6985 +94.1827 -31.6156 52.3581 +94.3125 -32.2674 53.4376 +94.3445 -32.894 54.4752 +95.0217 -33.7574 55.9052 +94.2025 -34.0959 56.4656 +94.4374 -34.8196 57.6642 +94.4932 -35.4874 58.7701 +94.4532 -36.1275 59.8302 +94.3189 -36.7388 60.8426 +94.409 -37.4461 62.0139 +94.1673 -38.0296 62.9803 +94.3043 -38.7747 64.2143 +93.1798 -39.0035 64.593 +91.8233 -39.1264 64.7966 +89.7804 -38.941 64.4896 +88.7394 -39.1767 64.8799 +86.7161 -38.9651 64.5294 +85.8303 -39.252 65.0046 +84.0497 -39.1188 64.7841 +83.3861 -39.4965 65.4095 +81.9116 -39.4833 65.3877 +80.5891 -39.5311 65.4668 +78.8396 -39.3545 65.1744 +78.1722 -39.7086 65.7609 +75.6604 -39.1094 64.7685 +75.6281 -39.781 65.8807 +72.9391 -39.0423 64.6574 +72.3461 -39.4073 65.2619 +70.655 -39.1651 64.8607 +69.3156 -39.1013 64.755 +68.4521 -39.2972 65.0795 +67.786 -39.6045 65.5884 +66.0651 -39.2846 65.0586 +65.9839 -39.9348 66.1354 +63.9574 -39.3994 65.2487 +63.5442 -39.8459 65.9882 +62.3657 -39.8097 65.9282 +61.0687 -39.685 65.7217 +59.6576 -39.4701 65.3658 +58.6237 -39.4916 65.4015 +57.4132 -39.383 65.2216 +56.5676 -39.5159 65.4416 +55.6045 -39.5604 65.5154 +54.8764 -39.7677 65.8586 +53.6868 -39.6326 65.6349 +53.0156 -39.8733 66.0335 +51.8372 -39.7252 65.7883 +50.723 -39.6127 65.602 +49.2898 -39.2331 64.9733 +48.6256 -39.4539 65.339 +47.5867 -39.3649 65.1916 +46.7636 -39.4458 65.3256 +45.3234 -38.9906 64.5718 +44.6634 -39.1936 64.908 +43.55 -38.9907 64.5719 +42.8408 -39.1407 64.8202 +41.7906 -38.9707 64.5389 +41.1311 -39.1578 64.8486 +40.0459 -38.931 64.4731 +39.3872 -39.1102 64.7698 +38.3168 -38.8719 64.3752 +38.0607 -39.4596 65.3484 +36.604 -38.7935 64.2453 +36.2921 -39.3304 65.1344 +35.2464 -39.071 64.7048 +34.5854 -39.2285 64.9657 +33.5964 -39.0052 64.596 +32.9367 -39.1553 64.8445 +31.8837 -38.8265 64.3 +31.6479 -39.4942 65.4057 +30.6054 -39.1562 64.8459 +30.273 -39.7256 65.7889 +28.9561 -38.992 64.574 +28.6119 -39.5569 65.5095 +27.3274 -38.8101 64.2728 +26.9382 -39.3217 65.1201 +25.9803 -39.0019 64.5904 +25.3209 -39.1175 64.782 +24.4123 -38.837 64.3174 +23.9963 -39.34 65.1504 +23.0681 -39.0019 64.5904 +22.4656 -39.2036 64.9244 +21.5824 -38.9059 64.4315 +21.1118 -39.3505 65.1677 +20.2138 -38.9948 64.5788 +19.6048 -39.1846 64.8931 +18.7006 -38.77 64.2065 +18.2087 -39.2048 64.9264 +17.2762 -38.681 64.059 +17.142 -39.9686 66.1914 +16.1755 -39.3366 65.1447 +15.6703 -39.8133 65.9341 +14.5969 -38.8169 64.284 +14.1779 -39.5419 65.4848 +13.3015 -38.9935 64.5766 +12.6426 -39.0521 64.6735 +11.8421 -38.6481 64.0045 +11.3222 -39.1601 64.8525 +10.6607 -39.2097 64.9346 +9.99831 -39.2563 65.0118 +9.22551 -38.8382 64.3193 +8.67137 -39.3405 65.1513 +7.9128 -38.9155 64.4474 +7.3322 -39.3613 65.1857 +6.60641 -39.0325 64.6411 +6.00212 -39.4215 65.2853 +5.27359 -38.9829 64.5591 +4.67021 -39.4696 65.365 +3.96183 -39.0762 64.7136 +3.29763 -39.0409 64.6551 +2.61048 -38.6411 63.9929 +2.00254 -39.5298 65.4648 +1.30544 -38.6587 64.0222 +0.660599 -39.1284 64.7999 +1.06581e-14 -39.1299 64.8024 +-0.659726 -39.0767 64.7143 +-1.32115 -39.1239 64.7925 +-1.98159 -39.1165 64.7802 +-2.64189 -39.106 64.7629 +-3.33688 -39.5057 65.4249 +-3.96707 -39.1278 64.799 +-4.67632 -39.5212 65.4505 +-5.28057 -39.0345 64.6445 +-6.00212 -39.4215 65.2853 +-6.66741 -39.3929 65.238 +-7.41846 -39.8244 65.9526 +-7.98597 -39.2754 65.0433 +-8.66005 -39.2892 65.0662 +-9.43269 -39.7104 65.7638 +-10.1549 -39.8713 66.0303 +-10.6328 -39.1074 64.7651 +-11.2926 -39.0579 64.6832 +-11.9516 -39.0055 64.5964 +-12.8242 -39.6128 65.6022 +-13.2841 -38.9426 64.4923 +-14.105 -39.3386 65.1481 +-14.5969 -38.8169 64.284 +-15.4311 -39.2054 64.9275 +-16.1755 -39.3366 65.1447 +-17.0122 -39.6658 65.69 +-17.4787 -39.1343 64.8097 +-18.4889 -39.8079 65.9252 +-19.0151 -39.422 65.2862 +-19.8301 -39.635 65.639 +-20.602 -39.7438 65.8191 +-21.5127 -40.0977 66.4051 +-21.9132 -39.5022 65.419 +-23.0336 -40.1948 66.5661 +-23.5652 -39.8423 65.9821 +-24.5075 -40.1781 66.5383 +-24.9068 -39.6236 65.62 +-25.8603 -39.9509 66.1621 +-26.5338 -39.8327 65.9664 +-27.5057 -40.1501 66.4919 +-28.1825 -40.0245 66.2839 +-29.0672 -40.1863 66.5519 +-29.8879 -40.2467 66.6519 +-30.7495 -40.3508 66.8243 +-31.2422 -39.9709 66.1952 +-32.1071 -40.0673 66.3548 +-32.9386 -40.1113 66.4276 +-34.0133 -40.4351 66.964 +-34.5319 -40.0913 66.3946 +-35.788 -40.5925 67.2247 +-35.7535 -39.6331 65.6358 +-37.4545 -40.5901 67.2206 +-37.7876 -40.0479 66.3227 +-39.0869 -40.5236 67.1105 +-39.4972 -40.0694 66.3583 +-40.8648 -40.5774 67.1997 +-41.5482 -40.3916 66.8919 +-42.4194 -40.3843 66.8798 +-43.0996 -40.1914 66.5604 +-44.2196 -40.4004 66.9064 +-44.75 -40.0651 66.3512 +-46.2875 -40.6189 67.2683 +-46.8685 -40.3199 66.7731 +-48.0176 -40.5036 67.0774 +-48.6996 -40.2854 66.7161 +-50.345 -40.849 67.6494 +-50.3791 -40.1001 66.4091 +-52.3236 -40.8627 67.6721 +-52.8996 -40.5395 67.1368 +-54.6016 -41.0661 68.0089 +-54.6045 -40.3101 66.757 +-56.0959 -40.6514 67.3222 +-57.1915 -40.6896 67.3854 +-58.4116 -40.804 67.5748 +-59.3991 -40.7453 67.4777 +-60.3891 -40.6809 67.3711 +-61.3199 -40.5699 67.1872 +-63.0607 -40.9794 67.8654 +-63.4355 -40.4926 67.0591 +-66.0885 -41.4414 68.6304 +-66.7856 -41.1417 68.1341 +-68.3869 -41.3891 68.5439 +-69.2798 -41.1961 68.2242 +-71.0991 -41.5401 68.794 +-71.597 -41.1026 68.0694 +-73.5042 -41.4641 68.6681 +-74.747 -41.4334 68.6172 +-76.2697 -41.5446 68.8013 +-77.5933 -41.5336 68.7832 +-79.0626 -41.5876 68.8726 +-79.7616 -41.2293 68.2792 +-82.5231 -41.9187 69.4209 +-83.2995 -41.5807 68.8612 +-85.304 -41.8439 69.297 +-86.0072 -41.4575 68.6571 +-87.9572 -41.6616 68.9952 +-89.1031 -41.4708 68.6792 +-90.7734 -41.5125 68.7483 +-92.5274 -41.5763 68.8538 +-94.9747 -41.9295 69.4388 +-96.7514 -41.9646 69.497 +-99.6939 -42.4801 70.3506 +-101.962 -42.6793 70.6806 +-103.852 -42.7005 70.7156 +-104.175 -42.0713 69.6736 +-106.865 -42.3865 70.1956 +-107.736 -41.965 69.4976 +-110.45 -42.2461 69.9632 +-112.13 -42.1109 69.7391 +-114.302 -42.1438 69.7937 +-116.074 -42.012 69.5755 +-120.322 -42.7458 70.7906 +-122.117 -42.5772 70.5114 +-125.583 -42.9662 71.1556 +-104.834 -35.191 58.2792 +-97.8334 -32.2172 53.3543 +-98.7976 -31.9116 52.8482 +-99.1621 -31.4107 52.0187 +-98.8314 -30.6959 50.8351 +-98.6565 -30.0391 49.7472 +-99.1599 -29.5929 49.0084 +-98.8724 -28.9154 47.8864 +-98.7446 -28.2929 46.8554 +-99.2185 -27.8464 46.116 +-98.8901 -27.1794 45.0114 +-98.5469 -26.5175 43.9152 +-98.9908 -26.0719 43.1773 +-98.7113 -25.4399 42.1306 +-99.0471 -24.971 41.3541 +-98.6526 -24.323 40.281 +-99.0594 -23.8771 39.5424 +-98.7308 -23.2578 38.5169 +-99.1197 -22.8116 37.7779 +-98.6757 -22.1781 36.7288 +-98.3099 -21.5706 35.7227 +-98.6703 -21.1263 34.9869 +-99.0232 -20.6804 34.2485 +-98.5312 -20.0624 33.2251 +-98.7728 -19.5987 32.4571 +-99.0999 -19.1524 31.718 +-98.4798 -18.5279 30.6837 +-98.6946 -18.0657 29.9183 +-98.7121 -17.5693 29.0963 +-98.7205 -17.0742 28.2763 +-98.2441 -16.5004 27.3261 +-98.2328 -16.01 26.5139 +-72.4879 -11.4556 18.9714 +-53.598 -8.20667 13.5909 +-42.0071 -6.22635 10.3114 +-37.678 -5.40116 8.94478 +-35.2563 -4.88317 8.08694 +-32.8202 -4.38744 7.26598 +-17.2713 -2.22591 3.68629 +-17.6971 -2.19619 3.63707 +-17.4412 -2.08139 3.44695 +-18.2567 -2.09214 3.46476 +-18.0957 -1.98822 3.29265 +-16.0708 -1.69009 2.79894 +-17.3748 -1.74576 2.89113 +-15.5354 -1.48834 2.46482 +-15.166 -1.3823 2.28921 +-15.4847 -1.33943 2.21822 +-3235.96 -264.928 438.744 +-13.4506 -1.03909 1.72082 +-3244.42 -235.696 390.332 +-14.1777 -0.964817 1.59782 +-14.3919 -0.913431 1.51272 +-14.8042 -0.871882 1.44391 +-13.0282 -0.707811 1.17219 +-14.8314 -0.738195 1.22251 +-15.6403 -0.70731 1.17136 +-14.9538 -0.608343 1.00747 +-14.5644 -0.526439 0.871827 +-14.0737 -0.444945 0.736867 +-14.9794 -0.405792 0.672026 +-15.2854 -0.344972 0.571302 +-14.5911 -0.263381 0.436181 +-14.1951 -0.192141 0.318202 +-15.0977 -0.136221 0.225594 +-14.7994 -0.0667601 0.11056 +91.6 3.55271e-15 5.68434e-14 +91.8965 -0.408332 0.690231 +75.0886 -0.667348 1.12806 +63.0784 -0.841018 1.42163 +56.4656 -1.00398 1.69709 +58.744 -1.30591 2.20747 +59.4185 -1.58552 2.68012 +54.1987 -1.68784 2.85307 +43.5935 -1.55211 2.62363 +42.2693 -1.69381 2.86317 +39.6485 -1.76618 2.9855 +48.1772 -2.36196 3.99259 +51.1184 -2.7356 4.62418 +52.2619 -3.0318 5.12486 +60.2476 -3.76651 6.36679 +92.7001 -6.21391 10.5038 +96.056 -6.87358 11.6189 +96.0334 -7.30764 12.3526 +96.0033 -7.74201 13.0868 +94.8807 -8.08426 13.6654 +94.7385 -8.50554 14.3775 +95.5724 -9.01893 15.2453 +95.4142 -9.44322 15.9625 +95.2487 -9.86684 16.6786 +94.9781 -10.2791 17.3754 +95.7746 -10.8109 18.2744 +95.5857 -11.236 18.993 +95.3895 -11.6603 19.7102 +95.186 -12.0837 20.4259 +95.8466 -12.6209 21.334 +95.7232 -13.0595 22.0753 +95.3994 -13.4707 22.7704 +96.03 -14.0204 23.6996 +95.6902 -14.432 24.3955 +95.4392 -14.8567 25.1133 +96.1347 -15.4332 26.0879 +95.8665 -15.8598 26.809 +96.2549 -16.3983 27.7191 +96.1592 -16.8585 28.4971 +95.6781 -17.2511 29.1607 +96.2245 -17.8323 30.1432 +96.9456 -18.4553 31.1963 +96.6256 -18.8854 31.9232 +96.2982 -19.314 32.6477 +96.798 -19.9127 33.6599 +96.5454 -20.3616 34.4186 +96.1928 -20.7898 35.1424 +96.6581 -21.3991 36.1725 +96.2877 -21.8278 36.897 +96.7289 -22.4448 37.94 +96.3405 -22.8737 38.665 +96.7571 -23.4982 39.7207 +96.3507 -23.9272 40.4459 +96.6529 -24.5362 41.4752 +96.2287 -24.9647 42.1996 +96.5955 -25.6029 43.2783 +96.153 -26.0311 44.0022 +96.4941 -26.676 45.0923 +96.8204 -27.3259 46.1908 +96.3484 -27.7551 46.9163 +96.5618 -28.3858 47.9824 +96.761 -29.0205 49.0553 +96.9456 -29.6591 50.1348 +97.0305 -30.2749 51.1758 +96.0838 -30.57 51.6746 +95.5563 -30.9957 52.3942 +94.7698 -31.3359 52.9693 +94.7294 -31.9244 53.9641 +94.9248 -32.6004 55.1067 +94.1976 -32.9632 55.72 +94.2844 -33.6141 56.8203 +94.4374 -34.2979 57.9761 +94.4932 -34.9556 59.0879 +94.614 -35.6467 60.2561 +94.5584 -36.2803 61.327 +94.171 -36.792 62.1921 +94.2461 -37.4911 63.3739 +94.5391 -38.2888 64.7223 +94.1901 -38.8356 65.6465 +92.7493 -38.9288 65.804 +90.7763 -38.783 65.5576 +90.1081 -39.1849 66.2369 +88.452 -39.1495 66.1771 +87.7776 -39.541 66.8389 +85.1644 -39.0437 65.9983 +84.1233 -39.2486 66.3446 +82.4967 -39.1695 66.2109 +82.0398 -39.6397 67.0057 +79.9187 -39.2953 66.4236 +79.2421 -39.6489 67.0213 +77.4989 -39.4595 66.7011 +76.6094 -39.6934 67.0964 +74.3284 -39.1899 66.2453 +73.6539 -39.5186 66.8011 +71.2688 -38.9134 65.7781 +70.6667 -39.2661 66.3743 +69.1881 -39.1246 66.135 +68.8462 -39.6212 66.9744 +67.3117 -39.426 66.6445 +66.6334 -39.7236 67.1476 +64.793 -39.3161 66.4587 +64.4347 -39.7989 67.2749 +62.8691 -39.5297 66.8198 +62.5005 -40.0068 67.6263 +60.9505 -39.7213 67.1436 +60.3283 -40.0309 67.6671 +58.3159 -39.4029 66.6054 +57.8168 -39.7833 67.2484 +56.6625 -39.7091 67.123 +55.9217 -39.9179 67.476 +54.5471 -39.6644 67.0475 +54.0352 -40.0311 67.6673 +52.1727 -39.3832 66.5722 +51.9925 -39.9957 67.6074 +50.5425 -39.6273 66.9848 +49.3778 -39.4639 66.7086 +48.4876 -39.5091 66.785 +47.3906 -39.3758 66.5596 +46.0959 -39.0611 66.0277 +45.4247 -39.2644 66.3713 +44 -38.8033 65.5919 +43.8257 -39.4405 66.669 +42.2269 -38.7876 65.5654 +42.0854 -39.466 66.7121 +40.4684 -38.7523 65.5058 +40.2183 -39.3371 66.4942 +39.134 -39.1061 66.1037 +38.4176 -39.2328 66.318 +37.3931 -39.0359 65.9851 +36.9379 -39.4304 66.6519 +35.6267 -38.9008 65.7567 +35.3733 -39.521 66.805 +33.9625 -38.8394 65.6528 +33.6145 -39.3624 66.5369 +32.2744 -38.7134 65.44 +31.9158 -39.2317 66.3161 +30.9425 -38.9943 65.9148 +30.6029 -39.5567 66.8654 +29.2428 -38.788 65.5661 +28.6119 -38.9642 65.8638 +27.943 -39.0898 66.0762 +27.272 -39.2125 66.2835 +26.2734 -38.8507 65.672 +25.9238 -39.4488 66.6831 +24.9686 -39.1267 66.1386 +24.297 -39.2361 66.3236 +23.302 -38.807 65.5982 +22.9484 -39.4461 66.6784 +22.0234 -39.1061 66.1037 +21.3256 -39.1534 66.1836 +20.4208 -38.804 65.593 +20.0054 -39.3862 66.5772 +19.1118 -39.029 65.9734 +18.4188 -39.0629 66.0307 +17.7486 -39.1432 66.1665 +17.2286 -39.5686 66.8855 +16.3627 -39.1954 66.2546 +15.6903 -39.2666 66.375 +15.0167 -39.3348 66.4904 +14.4877 -39.8006 67.2776 +13.6661 -39.4623 66.7058 +13.1543 -40.0237 67.6548 +12.327 -39.6279 66.9858 +11.6326 -39.6308 66.9908 +10.8416 -39.2777 66.3938 +10.2724 -39.7282 67.1553 +9.49362 -39.368 66.5465 +8.80721 -39.3581 66.5298 +8.14277 -39.4464 66.679 +7.54306 -39.8865 67.423 +6.67613 -38.8534 65.6765 +6.09627 -39.4399 66.668 +5.42705 -39.5163 66.7971 +4.80452 -39.9963 67.6085 +4.07174 -39.5585 66.8685 +3.33688 -38.9138 65.7787 +2.66981 -38.9271 65.8012 +2.03395 -39.5483 66.8512 +1.3194 -38.4868 65.0568 +0.678924 -39.6112 66.9576 +9.76996e-15 -38.9509 65.8413 +-0.678924 -39.6112 66.9576 +-1.33511 -38.9449 65.8313 +-2.03657 -39.5992 66.9372 +-2.6733 -38.978 65.8872 +-3.39795 -39.626 66.9825 +-4.00893 -38.9483 65.837 +-4.75568 -39.5897 66.9212 +-5.42705 -39.5163 66.7971 +-6.10412 -39.4907 66.7538 +-6.772 -39.4113 66.6196 +-7.59098 -40.14 67.8513 +-8.13231 -39.3958 66.5934 +-9.01098 -40.2687 68.069 +-9.54237 -39.5702 66.8882 +-10.2202 -39.5263 66.814 +-10.8973 -39.4794 66.7347 +-11.7065 -39.8827 67.4164 +-12.2488 -39.3765 66.5608 +-13.0718 -39.7725 67.2303 +-13.4925 -38.9608 65.8582 +-14.4331 -39.6503 67.0237 +-14.8449 -38.885 65.73 +-15.6903 -39.2666 66.375 +-16.4666 -39.4444 66.6756 +-17.142 -39.3697 66.5493 +-17.6812 -38.9944 65.9149 +-18.6056 -39.459 66.7002 +-19.4021 -39.6218 66.9754 +-20.3058 -39.9777 67.5771 +-20.7573 -39.4434 66.6739 +-21.673 -39.7912 67.2618 +-22.3542 -39.6934 67.0964 +-23.3177 -40.0807 67.7512 +-23.7991 -39.6348 66.9974 +-24.6879 -39.8675 67.3907 +-25.463 -39.9015 67.4483 +-26.1776 -39.8351 67.3361 +-26.8268 -39.6691 67.0555 +-28.0064 -40.2684 68.0684 +-28.3877 -39.7118 67.1276 +-29.4875 -40.1565 67.8792 +-30.1746 -40.0239 67.6552 +-31.2626 -40.4094 68.3068 +-31.8041 -40.0801 67.7502 +-32.8342 -40.3607 68.2244 +-33.3294 -39.9789 67.5791 +-34.2525 -40.1095 67.7998 +-34.898 -39.9092 67.4613 +-36.1613 -40.4013 68.293 +-36.8523 -40.239 68.0188 +-37.885 -40.4414 68.3609 +-38.4013 -40.0885 67.7644 +-39.667 -40.5087 68.4747 +-40.1782 -40.1495 67.8674 +-41.3265 -40.4211 68.3265 +-42.0177 -40.2359 68.0135 +-43.2783 -40.5846 68.603 +-43.9722 -40.3908 68.2753 +-44.909 -40.4154 68.317 +-45.8 -40.3907 68.2752 +-46.9473 -40.5805 68.5961 +-46.9715 -39.803 67.2818 +-49.0626 -40.765 68.9078 +-49.4945 -40.3295 68.1718 +-51.1509 -40.881 69.104 +-51.5229 -40.396 68.2841 +-52.8204 -40.6326 68.684 +-53.7384 -40.5652 68.5701 +-54.7148 -40.5347 68.5185 +-55.6369 -40.4568 68.3869 +-57.3154 -40.9128 69.1577 +-57.5442 -40.327 68.1675 +-59.7797 -41.1339 69.5315 +-59.9408 -40.5008 68.4613 +-61.3632 -40.7177 68.8279 +-62.0587 -40.4435 68.3644 +-63.9945 -40.9631 69.2428 +-65.1976 -40.9938 69.2946 +-66.979 -41.3704 69.9313 +-67.6855 -41.0713 69.4256 +-69.4909 -41.4271 70.0271 +-70.1983 -41.1168 69.5025 +-72.8219 -41.9092 70.842 +-73.136 -41.357 69.9086 +-75.0581 -41.7062 70.4988 +-76.3838 -41.7062 70.4989 +-78.2659 -41.9932 70.9839 +-78.7743 -41.5339 70.2076 +-80.5345 -41.7271 70.5341 +-81.6001 -41.5476 70.2308 +-83.8783 -41.9686 70.9424 +-84.5944 -41.5943 70.3098 +-86.7548 -41.9178 70.8566 +-87.9087 -41.7391 70.5545 +-89.2843 -41.6565 70.4149 +-90.4407 -41.4627 70.0872 +-93.3199 -42.0377 71.0591 +-94.2632 -41.7216 70.5249 +-96.7236 -42.0617 71.0999 +-98.2069 -41.9577 70.9239 +-101.083 -42.4265 71.7164 +-103.594 -42.7128 72.2003 +-106.278 -43.0432 72.759 +-106.381 -42.3186 71.5341 +-108.451 -42.3713 71.6231 +-109.493 -42.0103 71.0129 +-112.379 -42.3399 71.5701 +-113.586 -42.0186 71.0269 +-116.174 -42.1923 71.3206 +-119.187 -42.4923 71.8276 +-122.63 -42.9127 72.5384 +-124.356 -42.7079 72.1921 +-99.7327 -33.6106 56.8144 +-97.789 -32.3343 54.6568 +-98.4238 -31.9259 53.9666 +-98.4584 -31.3255 52.9516 +-99.0768 -30.9134 52.255 +-98.9171 -30.2622 51.1543 +-99.432 -29.8215 50.4094 +-98.3805 -28.9204 48.8861 +-98.9594 -28.5072 48.1878 +-98.6571 -27.8443 47.0671 +-99.1306 -27.4049 46.3243 +-98.8901 -26.7721 45.2548 +-98.5469 -26.1201 44.1527 +-98.9908 -25.6812 43.4108 +-99.2482 -25.195 42.5888 +-99.0471 -24.5968 41.5777 +-98.6526 -23.9585 40.4988 +-99.1501 -23.5408 39.7926 +-99.5498 -23.0993 39.0464 +-99.1197 -22.4698 37.9822 +-98.6757 -21.8458 36.9274 +-99.0463 -21.4065 36.1849 +-98.5779 -20.7902 35.1432 +-98.9305 -20.3514 34.4014 +-99.2756 -19.9111 33.6571 +-98.7728 -19.305 32.6326 +-99.0999 -18.8654 31.8895 +-99.2315 -18.3895 31.0851 +-98.6946 -17.795 30.0801 +-98.6176 -17.2895 29.2256 +-98.8153 -16.8345 28.4564 +-98.7197 -16.3319 27.6069 +-97.756 -15.6935 26.5279 +-96.3955 -15.0056 25.3649 +-57.4333 -8.66211 14.6422 +-44.6025 -6.51197 11.0076 +-38.6416 -5.45633 9.22321 +-35.3529 -4.82318 8.15295 +-32.1425 -4.23247 7.15443 +-18.0475 -2.2911 3.8728 +-17.1137 -2.09196 3.53619 +-17.9284 -2.10747 3.5624 +-17.3781 -1.96161 3.31585 +-17.7045 -1.91608 3.23888 +-15.3848 -1.59372 2.69397 +-16.9822 -1.68074 2.84107 +-15.1421 -1.42893 2.41541 +-15.2645 -1.37043 2.31654 +-14.597 -1.24373 2.10236 +-13.4326 -1.08325 1.83109 +-15.1319 -1.15146 1.94639 +-3244.42 -232.164 392.443 +-13.5828 -0.910488 1.53906 +-14.4912 -0.905946 1.53138 +-15.0029 -0.870346 1.47121 +-15.9124 -0.851552 1.43944 +-16.0259 -0.785697 1.32812 +-15.8395 -0.705586 1.1927 +-14.555 -0.583245 0.985899 +-13.9659 -0.497243 0.840523 +-15.2715 -0.475579 0.803904 +-14.3803 -0.383724 0.648634 +-15.2854 -0.339803 0.574392 +-15.0908 -0.268319 0.453558 +-14.495 -0.19326 0.326681 +-13.8979 -0.123516 0.208788 +-14.2995 -0.0635378 0.107402 +92.5 -1.77636e-15 -2.27374e-13 +92.0965 -0.402974 0.695391 +72.6889 -0.636159 1.09778 +67.3769 -0.884617 1.52654 +60.663 -1.06214 1.83289 +66.2369 -1.45 2.50219 +64.6113 -1.69778 2.92976 +61.7845 -1.8947 3.26959 +50.2772 -1.76275 3.04188 +46.556 -1.83711 3.17021 +42.6371 -1.87032 3.22751 +51.1634 -2.47008 4.26249 +55.4943 -2.92445 5.04657 +61.9989 -3.54176 6.11182 +75.235 -4.63169 7.99266 +95.1787 -6.28267 10.8417 +95.1648 -6.70584 11.5719 +95.1433 -7.12941 12.3028 +95.1144 -7.55324 13.0342 +94.9793 -7.96914 13.7519 +94.7385 -8.37572 14.4535 +95.4741 -8.87214 15.3102 +95.4142 -9.29908 16.0469 +95.2487 -9.71623 16.7668 +95.8585 -10.216 17.6291 +95.7746 -10.6459 18.371 +95.5857 -11.0645 19.0934 +95.3895 -11.4823 19.8144 +96.1563 -12.0206 20.7433 +95.8466 -12.4283 21.4468 +95.6267 -12.8472 22.1697 +96.1703 -13.3723 23.0758 +96.03 -13.8064 23.8249 +95.6902 -14.2117 24.5244 +96.2999 -14.7618 25.4737 +96.0393 -15.1826 26.1999 +95.8665 -15.6177 26.9507 +96.3497 -16.1639 27.8932 +96.1592 -16.6012 28.6477 +95.6781 -16.9878 29.3149 +96.1306 -17.543 30.273 +95.9152 -17.9804 31.0279 +96.6256 -18.5971 32.092 +96.2982 -19.0192 32.8204 +96.798 -19.6088 33.8379 +96.453 -20.0316 34.5675 +96.1928 -20.4725 35.3282 +96.5664 -21.0525 36.3292 +96.2877 -21.4946 37.092 +96.7289 -22.1022 38.1406 +96.3405 -22.5246 38.8695 +96.7571 -23.1395 39.9307 +96.2608 -23.54 40.6217 +95.937 -23.9827 41.3856 +96.2287 -24.5836 42.4227 +96.5955 -25.2121 43.5071 +96.153 -25.6338 44.2349 +96.4941 -26.2688 45.3307 +96.8204 -26.9088 46.4351 +96.3484 -27.3314 47.1643 +96.5618 -27.9525 48.2361 +96.8471 -28.6029 49.3585 +96.3456 -29.0256 50.0879 +96.4336 -29.6294 51.1299 +96.9319 -30.3691 52.4063 +96.3996 -30.792 53.1361 +94.6859 -30.8303 53.2022 +94.8962 -31.4925 54.3449 +94.9248 -32.1028 55.3981 +94.1976 -32.4601 56.0146 +94.2025 -33.0723 57.0711 +94.4374 -33.7744 58.2826 +94.4932 -34.4221 59.4003 +94.614 -35.1026 60.5747 +94.7182 -35.7869 61.7554 +94.4884 -36.3525 62.7316 +95.3493 -37.351 64.4547 +94.6956 -37.7668 65.1722 +94.4232 -38.3375 66.1569 +94.2154 -38.9405 67.1976 +92.768 -39.029 67.3502 +91.1727 -39.0426 67.3738 +89.2067 -38.8809 67.0946 +88.5266 -39.2697 67.7656 +86.725 -39.1523 67.563 +85.1555 -39.1238 67.5138 +84.0325 -39.2897 67.8001 +82.6927 -39.3453 67.896 +81.5731 -39.4966 68.1572 +80.312 -39.5709 68.2854 +78.206 -39.2117 67.6655 +77.5206 -39.5524 68.2534 +75.3704 -39.1327 67.5291 +74.893 -39.57 68.2839 +72.6328 -39.0529 67.3914 +71.545 -39.1474 67.5545 +69.9911 -38.9745 67.2562 +69.6414 -39.467 68.1061 +68.0333 -39.2405 67.7152 +67.7374 -39.7654 68.621 +66.6571 -39.8298 68.7322 +65.2616 -39.6944 68.4985 +64.3165 -39.8225 68.7196 +63.621 -40.1025 69.2027 +61.8124 -39.6681 68.4531 +60.7544 -39.6984 68.5054 +59.5797 -39.6423 68.4086 +58.4116 -39.5791 68.2995 +57.1915 -39.4681 68.108 +56.4443 -39.676 68.4667 +55.5796 -39.7982 68.6776 +54.5449 -39.792 68.6669 +53.1792 -39.5303 68.2154 +52.71 -39.9287 68.9029 +51.305 -39.6112 68.3549 +50.345 -39.6227 68.3748 +49.1765 -39.4588 68.092 +48.4879 -39.6725 68.4606 +47.1775 -39.3674 67.9342 +46.1352 -39.2699 67.766 +44.7 -38.819 66.9878 +44.1704 -39.144 67.5486 +42.9541 -38.8534 67.0471 +42.3717 -39.128 67.521 +41.4074 -39.0462 67.38 +40.8648 -39.3594 67.9203 +39.5426 -38.9112 67.147 +38.8192 -39.0379 67.3655 +37.7876 -38.8457 67.0339 +37.4545 -39.3716 67.9414 +36.4297 -39.1704 67.5943 +35.7051 -39.2827 67.7881 +34.654 -39.0252 67.3437 +34.0133 -39.2213 67.6821 +32.9386 -38.9072 67.14 +32.2985 -39.0961 67.466 +31.2422 -38.771 66.9051 +30.9327 -39.3727 67.9434 +29.8879 -39.0385 67.3667 +29.2073 -39.1678 67.5898 +28.2509 -38.9172 67.1573 +27.5391 -38.992 67.2865 +26.8919 -39.1585 67.5736 +26.2094 -39.2746 67.7741 +25.2467 -38.9586 67.2288 +24.5376 -39.0198 67.3344 +23.8868 -39.1736 67.5998 +23.1757 -39.2286 67.6947 +22.2715 -38.9429 67.2017 +21.5929 -39.0389 67.3673 +20.9126 -39.1319 67.5278 +20.2557 -39.2704 67.7668 +19.3054 -38.8224 66.9938 +18.839 -39.3442 67.8942 +18.1311 -39.3763 67.9495 +17.4667 -39.5031 68.1683 +16.7577 -39.5289 68.2129 +16.0691 -39.6007 68.3368 +15.1693 -39.1282 67.5214 +14.67 -39.686 68.484 +13.8224 -39.3043 67.8253 +13.1378 -39.3633 67.9271 +12.3114 -38.9736 67.2546 +11.7656 -39.4723 68.1152 +10.9668 -39.125 67.5159 +10.4029 -39.6189 68.3682 +9.7008 -39.6132 68.3583 +9.01098 -39.6541 68.4289 +8.22639 -39.2432 67.7199 +7.62932 -39.7269 68.5545 +6.85916 -39.3092 67.8338 +6.21396 -39.5877 68.3143 +5.48286 -39.3132 67.8407 +4.83504 -39.636 68.3977 +4.11361 -39.3552 67.9132 +3.42848 -39.3717 67.9417 +2.71169 -38.9343 67.1868 +2.06013 -39.4458 68.0696 +1.3578 -39.0022 67.304 +0.686778 -39.4579 68.0903 +1.06581e-14 -39.0081 67.3142 +-0.686778 -39.4579 68.0903 +-1.3735 -39.4534 68.0825 +-2.08369 -39.8969 68.848 +-2.74659 -39.4354 68.0515 +-3.43285 -39.4218 68.0281 +-4.11884 -39.4053 67.9996 +-4.85946 -39.8362 68.7431 +-5.48983 -39.3633 67.9271 +-6.2375 -39.7376 68.573 +-6.82429 -39.1094 67.489 +-7.54306 -39.2777 67.7795 +-8.19503 -39.0936 67.4617 +-8.94305 -39.3552 67.9131 +-9.68861 -39.5634 68.2724 +-10.3638 -39.4698 68.1108 +-11.0225 -39.3236 67.8586 +-11.7804 -39.5219 68.2007 +-12.3896 -39.2212 67.6819 +-13.2368 -39.66 68.4391 +-13.9266 -39.6006 68.3366 +-14.6153 -39.5381 68.2288 +-15.1502 -39.0789 67.4364 +-16.0092 -39.4534 68.0825 +-16.7577 -39.5289 68.2129 +-17.3585 -39.2583 67.7459 +-18.2435 -39.6205 68.371 +-18.7457 -39.1492 67.5576 +-19.6199 -39.4549 68.0851 +-20.431 -39.6102 68.3532 +-20.9902 -39.2772 67.7785 +-21.9403 -39.667 68.4512 +-22.492 -39.3285 67.8671 +-23.4313 -39.6612 68.4413 +-24.2669 -39.797 68.6755 +-25.0789 -39.8806 68.8197 +-25.772 -39.7693 68.6277 +-26.6219 -39.8928 68.8408 +-27.478 -40.0118 69.0462 +-28.0732 -39.7482 68.5914 +-28.8665 -39.7653 68.6208 +-29.8727 -40.0601 69.1295 +-30.5688 -39.9279 68.9014 +-31.4825 -40.0725 69.151 +-32.2911 -40.0727 69.1513 +-32.9873 -39.9299 68.9049 +-33.681 -39.784 68.6532 +-35.0899 -40.4628 69.8245 +-35.7522 -40.2619 69.4778 +-36.8662 -40.5602 69.9926 +-37.1904 -39.9884 69.0058 +-38.1433 -40.0957 69.191 +-38.9712 -40.0625 69.1336 +-39.9347 -40.1596 69.3013 +-40.7683 -40.1174 69.2284 +-41.6959 -40.1599 69.3017 +-42.3933 -39.9759 68.9843 +-44.1372 -40.7583 70.3344 +-44.2146 -39.9935 69.0146 +-45.7954 -40.5841 70.0337 +-46.7 -40.5558 69.985 +-47.6579 -40.566 70.0025 +-48.3621 -40.3559 69.6399 +-49.8464 -40.784 70.3788 +-50.2363 -40.3092 69.5595 +-51.4196 -40.4685 69.8343 +-52.3398 -40.4101 69.7336 +-53.8139 -40.765 70.3459 +-54.5213 -40.5279 69.9369 +-55.6777 -40.6184 70.093 +-56.3826 -40.3732 69.6699 +-57.9542 -40.7373 70.2981 +-58.3083 -40.2388 69.4379 +-60.0771 -40.7076 70.2469 +-60.7833 -40.4432 69.7907 +-61.911 -40.4541 69.8095 +-62.9206 -40.3793 69.6803 +-65.364 -41.2012 71.0986 +-65.701 -40.6798 70.1989 +-68.2512 -41.5127 71.6363 +-68.4569 -40.9052 70.588 +-70.6599 -41.4811 71.5817 +-71.9041 -41.4731 71.5678 +-73.2858 -41.5324 71.6702 +-74.3404 -41.3965 71.4356 +-76.0715 -41.6241 71.8284 +-77.3386 -41.583 71.7576 +-79.0919 -41.7886 72.1123 +-80.1636 -41.6213 71.8236 +-81.7961 -41.7338 72.0178 +-82.9436 -41.5871 71.7646 +-84.9481 -41.8552 72.2272 +-86.033 -41.656 71.8835 +-88.0604 -41.8993 72.3033 +-88.7863 -41.5124 71.6357 +-90.0216 -41.3595 71.3718 +-91.927 -41.5008 71.6157 +-94.8927 -42.0937 72.6388 +-95.6217 -41.6769 71.9195 +-98.2445 -42.071 72.5996 +-99.6624 -41.9296 72.3556 +-101.932 -42.1297 72.701 +-104.604 -42.471 73.2899 +-107.217 -42.7608 73.79 +-107.957 -42.29 72.9776 +-109.8 -42.2434 72.8972 +-111.01 -41.9424 72.3778 +-114.228 -42.3796 73.1322 +-115.204 -41.9666 72.4196 +-118.454 -42.3636 73.1045 +-120.333 -42.2463 72.9022 +-124.855 -43.0245 74.2451 +-126.097 -42.6448 73.5899 +-98.2317 -32.5995 56.2551 +-97.8729 -31.868 54.993 +-98.5081 -31.4655 54.2984 +-99.2216 -31.0865 53.6442 +-99.0768 -30.4415 52.5313 +-98.9171 -29.8003 51.4248 +-98.6565 -29.1373 50.2807 +-99.1599 -28.7046 49.5339 +-98.8724 -28.0474 48.3999 +-98.6571 -27.4193 47.3159 +-99.1306 -26.9866 46.5692 +-98.8901 -26.3635 45.494 +-98.5469 -25.7215 44.3861 +-98.9908 -25.2893 43.6403 +-98.6218 -24.6538 42.5438 +-98.9572 -24.1994 41.7597 +-98.7428 -23.6144 40.7501 +-99.1501 -23.1815 40.003 +-98.7308 -22.5596 38.9299 +-99.1197 -22.1268 38.183 +-98.584 -21.4923 37.0881 +-99.1384 -21.0993 36.41 +-98.5779 -20.4729 35.329 +-98.9305 -20.0408 34.5833 +-98.5312 -19.4602 33.5814 +-98.7728 -19.0103 32.8051 +-98.2569 -18.4195 31.7855 +-98.4798 -17.9717 31.0127 +-98.6946 -17.5234 30.2391 +-99.5631 -17.1888 29.6618 +-99.005 -16.6093 28.6618 +-97.4833 -15.8811 27.4052 +-97.6606 -15.4389 26.6422 +-96.9693 -14.8645 25.6508 +-71.528 -10.6232 18.3319 +-47.967 -6.89627 11.9005 +-40.5688 -5.64099 9.73435 +-36.4154 -4.8923 8.44238 +-32.4329 -4.20552 7.25724 +-17.5624 -2.19548 3.78862 +-17.0165 -2.04832 3.53468 +-18.0258 -2.08658 3.6007 +-18.1591 -2.01849 3.48319 +-17.1176 -1.82428 3.14806 +-16.9527 -1.72933 2.98421 +-16.4913 -1.60725 2.77355 +-16.5187 -1.53504 2.64893 +-16.5448 -1.4627 2.5241 +-15.6819 -1.31578 2.27057 +-15.803 -1.25495 2.16561 +-14.9341 -1.11906 1.93111 +-14.2599 -1.00483 1.73398 +-15.8631 -1.04711 1.80695 +-15.0867 -0.92878 1.60274 +-15.0029 -0.857061 1.47898 +-15.0173 -0.791384 1.36565 +-14.0351 -0.677593 1.16929 +-14.9429 -0.655487 1.13114 +-15.2528 -0.601878 1.03863 +-14.4647 -0.507141 0.875146 +-15.5709 -0.477502 0.824 +-15.4788 -0.406731 0.701874 +-14.5861 -0.319307 0.55101 +-15.0908 -0.264223 0.455956 +-14.3951 -0.188998 0.326143 +-14.4978 -0.126882 0.218953 +-13.2995 -0.0581928 0.10042 +93.4 1.77636e-15 -2.27374e-13 +92.4965 -0.398406 0.702035 +73.7888 -0.635703 1.12018 +70.1759 -0.90698 1.5982 +62.6618 -1.08001 1.9031 +70.9324 -1.52855 2.69348 +70.4034 -1.82109 3.20895 +65.5775 -1.97962 3.48831 +53.7687 -1.85573 3.27 +50.1449 -1.94784 3.4323 +47.0204 -2.03039 3.57777 +56.439 -2.68224 4.7264 +61.1631 -3.17287 5.59093 +64.6815 -3.63732 6.40936 +91.9098 -5.5699 9.81477 +95.1787 -6.18458 10.8979 +95.2638 -6.60806 11.6441 +95.2422 -7.02537 12.3795 +95.1144 -7.43532 13.1018 +94.9793 -7.84473 13.8233 +95.7233 -8.33064 14.6795 +95.4741 -8.73364 15.3896 +95.4142 -9.15391 16.1302 +95.2487 -9.56455 16.8538 +95.0759 -9.9744 17.576 +95.7746 -10.4797 18.4663 +95.4883 -10.8807 19.1729 +95.4867 -11.3146 19.9375 +95.283 -11.7254 20.6614 +95.8466 -12.2342 21.558 +95.6267 -12.6466 22.2847 +95.3994 -13.058 23.0096 +96.03 -13.5908 23.9485 +95.7861 -14.0039 24.6764 +96.2999 -14.5314 25.6058 +96.1347 -14.9604 26.3619 +95.7714 -15.3587 27.0636 +96.3497 -15.9116 28.0379 +96.0647 -16.3259 28.768 +96.5265 -16.8709 29.7283 +96.2245 -17.286 30.4598 +95.8216 -17.6825 31.1584 +96.6256 -18.3068 32.2585 +97.1356 -18.885 33.2775 +96.798 -19.3027 34.0134 +96.453 -19.7189 34.7468 +96.1007 -20.1335 35.4775 +96.6581 -20.7435 36.5524 +96.1963 -21.139 37.2492 +96.8199 -21.7777 38.3746 +96.4311 -22.1938 39.1079 +96.0351 -22.6083 39.8383 +96.3507 -23.1942 40.8706 +96.7424 -23.8065 41.9496 +96.2287 -24.1999 42.6428 +96.5955 -24.8185 43.7329 +96.9476 -25.4422 44.8318 +96.4941 -25.8587 45.5659 +96.8204 -26.4887 46.676 +96.3484 -26.9047 47.409 +96.5618 -27.5161 48.4864 +96.8471 -28.1564 49.6146 +96.2599 -28.5471 50.303 +96.5189 -29.1926 51.4406 +96.5927 -29.7903 52.4938 +96.1466 -30.2318 53.2717 +94.602 -30.3222 53.4309 +94.4793 -30.8647 54.3869 +94.0958 -31.3256 55.1991 +94.1976 -31.9533 56.3052 +94.2025 -32.556 57.3672 +94.4374 -33.2471 58.585 +94.4932 -33.8847 59.7085 +94.6943 -34.584 60.9407 +94.7182 -35.2282 62.0758 +94.409 -35.7549 63.0041 +94.2461 -36.3425 64.0395 +94.6956 -37.1772 65.5103 +94.5787 -37.8011 66.6096 +94.6012 -38.4896 67.8228 +93.4574 -38.7052 68.2028 +91.4768 -38.5613 67.9493 +90.4897 -38.8244 68.4127 +89.2006 -38.951 68.6358 +87.3938 -38.8383 68.4373 +86.4826 -39.1132 68.9217 +84.6908 -38.9793 68.6857 +83.1279 -38.9349 68.6074 +82.0047 -39.0858 68.8733 +80.526 -39.0569 68.8225 +79.4081 -39.1929 69.062 +78.5018 -39.4278 69.476 +76.8292 -39.2673 69.1933 +75.4437 -39.2387 69.1428 +73.7922 -39.0568 68.8224 +72.2882 -38.9365 68.6103 +70.5264 -38.6595 68.1222 +70.1715 -39.1466 68.9806 +68.6894 -39.0004 68.7229 +68.4518 -39.5575 69.7045 +67.0427 -39.4348 69.4885 +66.2794 -39.684 69.9276 +64.3165 -39.2009 69.0761 +64.3058 -39.9013 70.3103 +62.3665 -39.3989 69.4251 +61.1196 -39.3136 69.2748 +59.8806 -39.2205 69.1108 +59.3633 -39.596 69.7724 +58.1907 -39.5307 69.6575 +57.5477 -39.82 70.1672 +56.3252 -39.7025 69.9601 +54.8848 -39.4148 69.4532 +54.1858 -39.6497 69.8671 +52.986 -39.5112 69.6229 +51.7952 -39.3654 69.366 +50.6136 -39.2123 69.0963 +49.9184 -39.4288 69.4778 +48.4879 -39.0531 68.8158 +47.435 -38.9643 68.6594 +46.2875 -38.7844 68.3424 +45.5 -38.8968 68.5404 +44.7121 -39.0054 68.7317 +43.5359 -38.7648 68.3077 +42.7057 -38.8207 68.4063 +41.5482 -38.5674 67.96 +40.6339 -38.526 67.887 +39.9058 -38.6556 68.1153 +39.6224 -39.2235 69.1161 +38.4013 -38.8603 68.4761 +37.7128 -39.0243 68.765 +36.7678 -38.9168 68.5756 +36.0783 -39.0737 68.852 +34.898 -38.6865 68.1698 +34.3323 -38.9711 68.6714 +33.3294 -38.7541 68.2889 +32.6429 -38.8961 68.5392 +31.5793 -38.5776 67.978 +30.8961 -38.7122 68.215 +30.2463 -38.8899 68.5281 +29.5225 -38.9724 68.6736 +28.8323 -39.0981 68.8951 +27.8395 -38.8021 68.3734 +27.1849 -38.9671 68.6643 +26.4632 -39.036 68.7856 +25.5248 -38.7729 68.3221 +24.8082 -38.8343 68.4302 +24.1207 -38.9397 68.6159 +23.4597 -39.0894 68.8798 +22.492 -38.7145 68.2192 +22.0739 -39.2855 69.2254 +20.9126 -38.521 67.8781 +20.456 -39.0397 68.7921 +19.5231 -38.6474 68.1008 +19.0258 -39.1139 68.9229 +18.311 -39.1463 68.9799 +17.4883 -38.9345 68.6068 +16.6953 -38.767 68.3117 +16.0092 -38.8374 68.4358 +15.3601 -39.0018 68.7254 +14.67 -39.0665 68.8393 +13.996 -39.1768 69.0337 +13.2863 -39.1869 69.0515 +12.6086 -39.2914 69.2356 +12.0317 -39.7347 70.0168 +11.2174 -39.394 69.4165 +10.5204 -39.4408 69.499 +9.81048 -39.4356 69.4899 +9.11286 -39.4764 69.5616 +8.32047 -39.0723 68.8497 +7.62932 -39.1067 68.9102 +6.9376 -39.1381 68.9655 +6.21396 -38.9697 68.6688 +5.54564 -39.1426 68.9735 +4.89609 -39.5099 69.6207 +4.14501 -39.0366 68.7867 +3.45466 -39.0529 68.8155 +2.7431 -38.7704 68.3176 +2.08107 -39.2248 69.1183 +1.37176 -38.7881 68.3488 +0.694632 -39.2861 69.2263 +9.76996e-15 -39.2382 69.142 +-0.694632 -39.2861 69.2263 +-1.38921 -39.2816 69.2184 +-2.08107 -39.2248 69.1183 +-2.78149 -39.3129 69.2736 +-3.46774 -39.2009 69.0761 +-4.16594 -39.2337 69.1341 +-4.85336 -39.165 69.013 +-5.55262 -39.1919 69.0603 +-6.2375 -39.1172 68.9288 +-6.94631 -39.1872 69.0521 +-7.68683 -39.4015 69.4297 +-8.33092 -39.1214 68.9362 +-9.12418 -39.5254 69.6481 +-9.81048 -39.4356 69.4899 +-10.5204 -39.4408 69.499 +-11.1617 -39.1985 69.072 +-11.8691 -39.1977 69.0707 +-12.546 -39.0964 68.892 +-13.3028 -39.2355 69.1373 +-13.9266 -38.9824 68.6911 +-14.6335 -38.9694 68.6683 +-15.322 -38.9049 68.5547 +-16.0691 -38.9825 68.6914 +-16.7577 -38.9118 68.5668 +-17.5965 -39.1755 69.0314 +-18.356 -39.2425 69.1495 +-18.9791 -39.0179 68.7538 +-19.7408 -39.0783 68.8603 +-20.6564 -39.4219 69.4657 +-21.1196 -38.9023 68.5501 +-22.0472 -39.238 69.1415 +-22.6574 -38.9992 68.7208 +-23.6869 -39.468 69.5469 +-24.3838 -39.3645 69.3644 +-25.3796 -39.7287 70.0062 +-25.9265 -39.3831 69.3973 +-26.7805 -39.504 69.6103 +-27.3152 -39.1538 68.9933 +-28.4737 -39.686 69.9311 +-29.0717 -39.4228 69.4672 +-30.0828 -39.7121 69.977 +-30.8913 -39.7192 69.9896 +-31.5924 -39.5847 69.7525 +-32.6282 -39.859 70.2358 +-33.3317 -39.7169 69.9855 +-34.0327 -39.5719 69.7299 +-35.2893 -40.0574 70.5855 +-35.7928 -39.6785 69.9178 +-37.0736 -40.1516 70.7514 +-37.5708 -39.7667 70.0733 +-38.5307 -39.8707 70.2564 +-39.2342 -39.7032 69.9613 +-40.4701 -40.0627 70.5948 +-41.3131 -40.0188 70.5175 +-41.9729 -39.7956 70.1241 +-42.8158 -39.744 70.0333 +-43.8032 -39.8183 70.1642 +-45.0873 -40.1462 70.7419 +-45.9924 -40.1223 70.6998 +-46.95 -40.1364 70.7247 +-47.9624 -40.1878 70.8153 +-48.6711 -39.9797 70.4485 +-50.0031 -40.2736 70.9664 +-50.5543 -39.9311 70.3629 +-51.9031 -40.2113 70.8567 +-52.6121 -39.9863 70.4601 +-54.2554 -40.4578 71.291 +-55.6956 -40.7545 71.8138 +-56.1875 -40.3504 71.1017 +-57.415 -40.4707 71.3137 +-58.1284 -40.2219 70.8753 +-58.8373 -39.97 70.4314 +-60.2555 -40.1911 70.8211 +-61.686 -40.4031 71.1946 +-62.8851 -40.4491 71.2757 +-63.9672 -40.4101 71.2069 +-65.9243 -40.9056 72.08 +-66.8338 -40.7351 71.7797 +-68.442 -40.9789 72.2093 +-69.3568 -40.796 71.887 +-71.829 -41.509 73.1434 +-72.3633 -41.0864 72.3986 +-74.2134 -41.4015 72.9539 +-75.5448 -41.4104 72.9697 +-77.22 -41.5929 73.2912 +-78.3616 -41.4753 73.0839 +-79.4361 -41.3152 72.8019 +-80.4414 -41.1135 72.4464 +-82.3568 -41.3639 72.8877 +-83.58 -41.2519 72.6904 +-85.3048 -41.3747 72.9067 +-86.9682 -41.4514 73.0419 +-88.9309 -41.6529 73.3969 +-89.0057 -40.9653 72.1853 +-92.0859 -41.6474 73.3872 +-93.2647 -41.4474 73.0347 +-95.6416 -41.7636 73.5919 +-97.0557 -41.6415 73.3768 +-98.8528 -41.6706 73.4281 +-100.582 -41.6557 73.4018 +-102.703 -41.786 73.6314 +-105.303 -42.0875 74.1627 +-107.922 -42.3698 74.6601 +-108.036 -41.6602 73.4098 +-110.673 -41.9144 73.8577 +-112.368 -41.7926 73.6431 +-114.791 -41.9235 73.8738 +-116.013 -41.6016 73.3065 +-119.675 -42.1321 74.2413 +-121.89 -42.1247 74.2282 +-125.185 -42.4647 74.8274 +-101.474 -33.782 59.5275 +-98.3985 -32.145 56.643 +-98.4599 -31.5587 55.6098 +-98.5081 -30.9743 54.5801 +-98.4584 -30.3657 53.5077 +-99.0768 -29.9663 52.8039 +-98.9171 -29.3351 51.6916 +-98.6565 -28.6824 50.5416 +-99.1599 -28.2564 49.7909 +-98.8724 -27.6095 48.651 +-98.6571 -26.9912 47.5614 +-99.1306 -26.5653 46.8109 +-98.8901 -25.9519 45.7301 +-99.3452 -25.525 44.9778 +-98.9017 -24.872 43.8272 +-99.2482 -24.4231 43.0361 +-98.9572 -23.8216 41.9763 +-98.7428 -23.2458 40.9615 +-99.1501 -22.8196 40.2105 +-98.7308 -22.2074 39.1319 +-99.0283 -21.7613 38.3458 +-98.6757 -21.1765 37.3153 +-98.3099 -20.5964 36.2931 +-98.5779 -20.1533 35.5123 +-98.9305 -19.7279 34.7628 +-98.4382 -19.1383 33.7237 +-98.8662 -18.7313 33.0066 +-98.2569 -18.1319 31.9504 +-99.3255 -17.843 31.4413 +-98.6946 -17.2498 30.396 +-98.7121 -16.7758 29.5608 +-98.9102 -16.3344 28.783 +-98.4343 -15.7858 27.8162 +-97.6606 -15.1979 26.7804 +-96.1086 -14.5025 25.555 +-89.5538 -13.0927 23.0708 +-52.1965 -7.3872 13.017 +-41.8216 -5.72439 10.087 +-36.3188 -4.80315 8.46367 +-32.1425 -4.1028 7.22957 +-18.1445 -2.23285 3.93452 +-17.3082 -2.05091 3.61393 +-17.0515 -1.94298 3.42374 +-16.2065 -1.77332 3.12478 +-17.7045 -1.85737 3.27289 +-16.3647 -1.64329 2.89565 +-16.884 -1.61983 2.85431 +-16.2237 -1.48409 2.61512 +-16.0524 -1.39701 2.46169 +-15.9778 -1.31967 2.32541 +-16.2969 -1.27397 2.24487 +-14.9341 -1.10159 1.94112 +-14.0618 -0.975408 1.71877 +-15.5657 -1.01144 1.78226 +-15.583 -0.944358 1.66406 +-13.91 -0.782218 1.37835 +-14.8184 -0.768709 1.35455 +-14.1346 -0.671743 1.18368 +-14.8433 -0.64095 1.12942 +-15.0535 -0.584738 1.03037 +-14.9635 -0.516439 0.910021 +-15.4711 -0.467034 0.822965 +-15.279 -0.395215 0.696412 +-14.5861 -0.314322 0.553869 +-14.4912 -0.249764 0.440111 +-15.2948 -0.197675 0.348325 +-13.8979 -0.119732 0.210981 +-14.5994 -0.0628833 0.110807 +93.5 1.77636e-15 1.13687e-13 +91.5965 -0.388241 0.698735 +77.5882 -0.657781 1.18384 +74.0746 -0.942107 1.69556 +67.1591 -1.13908 2.05005 +72.5309 -1.53808 2.76816 +73.7987 -1.87849 3.38081 +71.167 -2.11411 3.80487 +59.7541 -2.02943 3.65247 +55.4286 -2.11876 3.81324 +52.2006 -2.21815 3.99211 +64.7008 -3.02586 5.44579 +64.6439 -3.29998 5.93913 +73.5243 -4.06868 7.32261 +93.5971 -5.58175 10.0457 +95.2779 -6.09236 10.9647 +95.2638 -6.50272 11.7033 +95.2422 -6.91338 12.4423 +95.1144 -7.3168 13.1684 +95.9656 -7.79982 14.0377 +94.7385 -8.11353 14.6023 +95.5724 -8.60326 15.4837 +95.4142 -9.00799 16.2121 +95.2487 -9.41208 16.9394 +95.9563 -9.90628 17.8288 +94.9936 -10.2285 18.4088 +95.4883 -10.7072 19.2703 +95.4867 -11.1342 20.0388 +95.283 -11.5385 20.7664 +95.9434 -12.0514 21.6895 +95.6267 -12.445 22.3979 +95.3031 -12.8369 23.1031 +96.03 -13.3742 24.0702 +95.7861 -13.7807 24.8017 +96.2999 -14.2997 25.7359 +96.0393 -14.7074 26.4696 +95.8665 -15.1289 27.2281 +96.3497 -15.6579 28.1803 +96.0647 -16.0657 28.9142 +95.6781 -16.456 29.6167 +96.2245 -17.0104 30.6145 +96.9456 -17.6047 31.6841 +96.6256 -18.015 32.4224 +96.2982 -18.4238 33.1582 +96.798 -18.995 34.1862 +96.453 -19.4046 34.9234 +96.1928 -19.8316 35.6919 +95.8328 -20.2386 36.4243 +96.2877 -20.8217 37.4739 +96.0009 -21.2492 38.2432 +96.4311 -21.84 39.3066 +96.8474 -22.4361 40.3793 +96.3507 -22.8244 41.0783 +96.7424 -23.427 42.1627 +96.3178 -23.8361 42.8991 +96.5955 -24.4229 43.955 +96.9476 -25.0366 45.0596 +96.4941 -25.4465 45.7973 +96.0332 -25.8546 46.5317 +96.3484 -26.4759 47.6499 +96.5618 -27.0775 48.7327 +96.8471 -27.7076 49.8667 +96.2599 -28.092 50.5585 +96.5189 -28.7273 51.7019 +96.5927 -29.3155 52.7605 +96.5683 -29.8803 53.7771 +95.7762 -30.2091 54.3689 +95.1464 -30.5871 55.0491 +94.1787 -30.8534 55.5284 +95.1042 -31.7466 57.1359 +94.2844 -32.0649 57.7087 +94.5188 -32.7453 58.9334 +94.4932 -33.3445 60.0118 +94.614 -34.0038 61.1983 +94.5584 -34.6081 62.2859 +94.3297 -35.1554 63.2709 +94.6401 -35.9127 64.6338 +94.5391 -36.5241 65.7343 +94.1124 -37.0151 66.6179 +94.4468 -37.8143 68.0561 +93.9937 -38.3067 68.9425 +92.5414 -38.3882 69.0892 +91.1689 -38.4922 69.2763 +89.7998 -38.5875 69.4478 +88.0627 -38.5117 69.3114 +87.1462 -38.7851 69.8034 +85.349 -38.6561 69.5712 +83.9984 -38.7155 69.6781 +82.0047 -38.4627 69.2232 +81.5245 -38.9109 70.0298 +80.398 -39.0489 70.2782 +79.1327 -39.1111 70.3901 +77.5933 -39.0257 70.2365 +76.132 -38.9655 70.1282 +74.747 -38.9315 70.067 +74.0447 -39.2469 70.6345 +70.8609 -38.2237 68.793 +70.2377 -38.559 69.3964 +68.9518 -38.5253 69.3359 +68.8415 -39.1485 70.4574 +67.7498 -39.2155 70.5781 +66.5338 -39.2013 70.5526 +65.0088 -38.9912 70.1743 +64.866 -39.6073 71.2833 +63.1053 -39.2301 70.6043 +62.398 -39.4961 71.083 +61.1444 -39.41 70.928 +59.7202 -39.1991 70.5485 +58.661 -39.2149 70.577 +57.7799 -39.3435 70.8083 +56.7841 -39.388 70.8884 +55.9043 -39.507 71.1027 +54.6891 -39.3801 70.8743 +53.9794 -39.6103 71.2887 +52.2853 -39.1044 70.3782 +52.0643 -39.6932 71.4378 +50.3953 -39.171 70.4979 +49.2716 -39.0518 70.2834 +47.8985 -38.7179 69.6826 +47.2011 -38.9194 70.0452 +45.8 -38.5291 69.3428 +44.8105 -38.4682 69.2331 +43.8753 -38.4442 69.19 +43.1829 -38.6287 69.522 +42.0177 -38.3814 69.077 +41.3265 -38.5581 69.3949 +39.9512 -38.0826 68.5392 +39.4885 -38.4678 69.2325 +38.4013 -38.2409 68.824 +37.8419 -38.5337 69.3509 +37.1481 -38.6926 69.637 +36.0783 -38.4508 69.2018 +35.3861 -38.6023 69.4744 +34.6912 -38.7508 69.7416 +33.681 -38.5387 69.3599 +32.9873 -38.68 69.6142 +31.9539 -38.413 69.1338 +31.2626 -38.547 69.3749 +30.5688 -38.678 69.6107 +29.9077 -38.8516 69.9231 +28.8323 -38.4748 69.245 +28.1399 -38.5956 69.4624 +27.1524 -38.3 68.9305 +26.4632 -38.4137 69.135 +25.8029 -38.5706 69.4173 +25.0789 -38.6322 69.5282 +24.1207 -38.3189 68.9645 +23.6869 -38.8389 69.9002 +22.7676 -38.5643 69.406 +22.0739 -38.6593 69.577 +21.1196 -38.2822 68.8984 +20.6814 -38.8405 69.9032 +19.765 -38.5026 69.295 +19.0258 -38.4904 69.273 +18.3335 -38.5696 69.4156 +17.6615 -38.6933 69.6381 +16.9656 -38.7666 69.7701 +16.388 -39.1226 70.4109 +15.5319 -38.8092 69.8468 +14.834 -38.8735 69.9625 +14.1523 -38.9827 70.1591 +13.4514 -39.0413 70.2645 +12.6086 -38.665 69.5874 +11.9134 -38.717 69.6809 +11.2174 -38.766 69.7691 +10.6379 -39.2455 70.632 +9.92016 -39.2409 70.6237 +9.21474 -39.2814 70.6966 +8.41454 -38.8842 69.9819 +7.72517 -38.9668 70.1304 +7.01604 -38.9497 70.0996 +6.29242 -38.8327 69.889 +5.59447 -38.8578 69.9343 +4.89609 -38.8801 69.9743 +4.14501 -38.4143 69.1361 +3.49827 -38.9157 70.0384 +2.76404 -38.4436 69.1888 +2.08107 -38.5995 69.4694 +1.38747 -38.6069 69.4826 +0.69376 -38.6113 69.4906 +8.88178e-15 -38.6127 69.4932 +-0.702486 -39.0969 70.3646 +-1.39968 -38.9468 70.0944 +-2.10986 -39.1336 70.4306 +-2.77451 -38.5892 69.4509 +-3.49827 -38.9157 70.0384 +-4.21304 -39.0449 70.2709 +-4.91441 -39.0255 70.2361 +-5.59447 -38.8578 69.9343 +-6.3238 -39.0263 70.2375 +-6.98989 -38.8045 69.8383 +-7.77309 -39.2085 70.5654 +-8.42499 -38.9326 70.0688 +-9.12418 -38.8954 70.0019 +-9.82267 -38.8552 69.9296 +-10.6509 -39.2936 70.7187 +-11.1756 -38.6217 69.5094 +-12.0169 -39.0533 70.286 +-12.5617 -38.5211 69.3284 +-13.4184 -38.9454 70.092 +-13.996 -38.5523 69.3844 +-14.8157 -38.8258 69.8766 +-15.5128 -38.7615 69.761 +-16.2684 -38.8371 69.897 +-16.9032 -38.6241 69.5137 +-17.7913 -38.9777 70.1501 +-18.356 -38.6169 69.5007 +-19.3059 -39.0571 70.293 +-19.9586 -38.8796 69.9735 +-20.8066 -39.0756 70.3263 +-21.5079 -38.9859 70.1649 +-22.2075 -38.8933 69.9982 +-22.9055 -38.7977 69.8261 +-23.9709 -39.3046 70.7383 +-24.5885 -39.0621 70.302 +-25.3796 -39.0954 70.3618 +-26.081 -38.9863 70.1656 +-26.9709 -39.1506 70.4613 +-27.771 -39.1726 70.5008 +-28.7742 -39.4655 71.0279 +-29.4821 -39.342 70.8057 +-30.398 -39.4885 71.0694 +-30.8913 -39.0861 70.3451 +-31.8123 -39.2248 70.5948 +-32.853 -39.4938 71.0789 +-33.6761 -39.4877 71.0679 +-34.3843 -39.3434 70.8083 +-35.6482 -39.8198 71.6656 +-36.4843 -39.8003 71.6305 +-37.115 -39.5557 71.1903 +-37.8243 -39.3969 70.9045 +-39.1765 -39.8927 71.7968 +-39.7603 -39.5941 71.2595 +-40.6932 -39.6414 71.3446 +-41.5855 -39.6406 71.343 +-42.9426 -40.0659 72.1086 +-43.52 -39.7537 71.5467 +-44.8052 -40.08 72.1339 +-45.0873 -39.5062 71.1013 +-46.6818 -40.0745 72.1241 +-47.4 -39.8752 71.7652 +-49.0282 -40.426 72.7567 +-49.2891 -39.842 71.7055 +-50.7869 -40.2527 72.4448 +-51.1902 -39.7888 71.6098 +-53.0315 -40.4305 72.7648 +-53.1023 -39.7155 71.4778 +-54.7521 -40.1774 72.3092 +-55.4719 -39.9438 71.8888 +-57.207 -40.4276 72.7596 +-57.9312 -40.1837 72.3205 +-59.1736 -40.2925 72.5163 +-59.8953 -40.0401 72.0621 +-61.5047 -40.3704 72.6565 +-62.2277 -40.1081 72.1846 +-63.4938 -40.1897 72.3313 +-64.8292 -40.3017 72.533 +-66.6091 -40.6716 73.1987 +-67.7149 -40.6142 73.0954 +-69.5233 -40.9628 73.7228 +-70.4495 -40.7782 73.3905 +-72.1537 -41.032 73.8473 +-72.8882 -40.7246 73.2941 +-74.8098 -41.0689 73.9138 +-75.8794 -40.9308 73.6651 +-77.6253 -41.1448 74.0502 +-78.7026 -40.9918 73.7749 +-80.6752 -41.2908 74.3131 +-81.6918 -41.0871 73.9464 +-83.1979 -41.1203 74.0062 +-84.2164 -40.9035 73.616 +-86.5886 -41.328 74.3799 +-87.112 -40.8581 73.5344 +-89.1485 -41.0892 73.9502 +-89.664 -40.6104 73.0885 +-93.1919 -41.4757 74.6459 +-93.9335 -41.0791 73.9321 +-96.091 -41.291 74.3133 +-98.1122 -41.4238 74.5524 +-99.8413 -41.4164 74.5391 +-101.348 -41.3039 74.3366 +-103.166 -41.3053 74.3391 +-106.469 -41.8751 75.3646 +-108.704 -41.9967 75.5835 +-109.061 -41.3848 74.4823 +-112.101 -41.7785 75.1908 +-113.326 -41.4772 74.6485 +-115.514 -41.5152 74.717 +-117.469 -41.4523 74.6037 +-121.873 -42.222 75.989 +-122.955 -41.8153 75.257 +-109.526 -36.5609 65.8004 +-98.7384 -32.3472 58.2169 +-98.3985 -31.6326 56.9308 +-98.6277 -31.1086 55.9876 +-99.3515 -30.7415 55.327 +-99.1368 -30.0876 54.1502 +-99.0768 -29.4886 53.0721 +-98.9171 -28.8675 51.9542 +-98.6565 -28.2252 50.7983 +-98.3805 -27.5875 49.6505 +-98.9594 -27.1934 48.9412 +-98.5696 -26.5374 47.7606 +-99.2185 -26.165 47.0904 +-98.8901 -25.5382 45.9624 +-98.4582 -24.8938 44.8027 +-98.8126 -24.4535 44.0102 +-98.5323 -23.8604 42.9428 +-99.0471 -23.4632 42.2278 +-98.7428 -22.8752 41.1696 +-99.1501 -22.4558 40.4148 +-98.7308 -21.8534 39.3307 +-99.1197 -21.4341 38.5761 +-98.6757 -20.8389 37.5048 +-99.0463 -20.4199 36.7507 +-98.6703 -19.8506 35.7262 +-98.9305 -19.4135 34.9394 +-99.2756 -18.9934 34.1834 +-98.8662 -18.4327 33.1742 +-98.2569 -17.8429 32.1127 +-98.4798 -17.4091 31.332 +-98.6946 -16.9748 30.5504 +-98.7121 -16.5084 29.711 +-98.436 -15.9969 28.7905 +-98.2441 -15.5041 27.9035 +-98.9004 -15.1455 27.2581 +-96.8737 -14.385 25.8893 +-95.882 -13.7945 24.8266 +-58.4447 -8.13966 14.6493 +-48.2779 -6.50277 11.7034 +-38.0575 -4.95287 8.91393 +-35.0469 -4.40222 7.92289 +-20.3762 -2.4675 4.44089 +-18.6695 -2.17696 3.91797 +-17.6361 -1.97756 3.55911 +-16.8899 -1.81864 3.2731 +-17.0198 -1.75708 3.1623 +-16.4627 -1.62678 2.92779 +-16.9822 -1.60328 2.8855 +-16.1254 -1.45158 2.61247 +-16.1508 -1.38318 2.48937 +-15.6819 -1.27459 2.29394 +-15.7042 -1.20807 2.17423 +-15.4286 -1.11993 2.01559 +-14.755 -1.00718 1.81266 +-15.5657 -0.995315 1.79132 +-16.2778 -0.970739 1.74709 +-15.4997 -0.857722 1.54368 +-14.6195 -0.746304 1.34316 +-14.6323 -0.68431 1.23159 +-15.2418 -0.647664 1.16563 +-14.4553 -0.552555 0.994461 +-14.9635 -0.508207 0.914644 +-14.972 -0.444764 0.800464 +-14.8796 -0.378748 0.681651 +-15.0856 -0.319904 0.575747 +-13.8915 -0.235612 0.424042 +-14.695 -0.186896 0.336366 +-14.4978 -0.12291 0.221207 +-14.0995 -0.0597618 0.107556 +93.8 7.10543e-15 -1.7053e-13 +91.2965 -0.380669 0.69991 +83.0873 -0.69293 1.27404 +81.2721 -1.01682 1.86956 +73.855 -1.23225 2.26565 +82.4215 -1.71937 3.16128 +80.19 -2.00794 3.69186 +76.5569 -2.2372 4.11339 +69.4305 -2.31968 4.26504 +67.0925 -2.52286 4.63861 +62.0629 -2.59429 4.76995 +71.1708 -3.27426 6.02017 +69.716 -3.50096 6.43698 +94.4887 -5.14367 9.45732 +95.2844 -5.58987 10.2777 +95.377 -5.99939 11.0307 +95.2638 -6.39686 11.7615 +95.2422 -6.80083 12.5042 +95.3119 -7.21263 13.2614 +94.8807 -7.58612 13.9481 +95.7233 -8.06438 14.8274 +95.4741 -8.4545 15.5447 +95.4142 -8.86133 16.2927 +95.2487 -9.25885 17.0236 +95.0759 -9.65561 17.7531 +95.7746 -10.1447 18.6524 +95.5857 -10.5437 19.3859 +95.3895 -10.9418 20.118 +95.186 -11.3391 20.8484 +95.9434 -11.8552 21.7973 +95.6267 -12.2424 22.5093 +96.2667 -12.7555 23.4527 +95.9339 -13.1433 24.1656 +95.7861 -13.5563 24.9251 +96.2043 -14.053 25.8382 +96.1347 -14.4823 26.6276 +95.7714 -14.8678 27.3364 +96.3497 -15.403 28.3205 +96.0647 -15.8041 29.0579 +95.7724 -16.2041 29.7933 +96.1306 -16.7172 30.7367 +96.9456 -17.3181 31.8417 +96.6256 -17.7217 32.5836 +96.2982 -18.1239 33.3231 +95.9635 -18.5247 34.0601 +96.453 -19.0887 35.097 +96.1928 -19.5087 35.8694 +95.8328 -19.9091 36.6055 +96.379 -20.5022 37.696 +96.0009 -20.9033 38.4334 +96.4311 -21.4845 39.5021 +95.9448 -21.8651 40.2019 +96.4406 -22.4738 41.321 +96.6529 -23.0243 42.3332 +96.3178 -23.4481 43.1124 +96.5955 -24.0253 44.1736 +96.153 -24.4271 44.9125 +96.4941 -25.0322 46.0251 +96.8204 -25.6421 47.1464 +96.3484 -26.0448 47.8868 +96.5618 -26.6367 48.975 +96.761 -27.2323 50.0701 +96.2599 -27.6347 50.81 +96.5189 -28.2596 51.959 +96.6775 -28.8635 53.0694 +96.9057 -29.4965 54.2333 +96.7826 -30.0296 55.2133 +95.6467 -30.2474 55.6138 +94.3445 -30.4046 55.9028 +94.28 -30.9591 56.9225 +94.2844 -31.5429 57.9957 +94.4374 -32.1845 59.1754 +94.4932 -32.8017 60.3102 +94.614 -33.4502 61.5026 +94.7182 -34.1022 62.7014 +94.5677 -34.6704 63.746 +94.5613 -35.2987 64.9012 +94.6173 -35.9592 66.1158 +94.5009 -36.5629 67.2257 +94.4468 -37.1986 68.3946 +94.6065 -37.9288 69.7372 +93.9101 -38.3218 70.4597 +91.8482 -38.1477 70.1396 +90.5487 -38.2759 70.3754 +88.7315 -38.1725 70.1851 +88.0309 -38.541 70.8627 +86.446 -38.5155 70.8158 +85.0864 -38.5785 70.9316 +83.6592 -38.5999 70.971 +82.3091 -38.6458 71.0554 +81.4587 -38.9199 71.5595 +79.6934 -38.7469 71.2414 +78.4269 -38.8028 71.3441 +77.7152 -39.1283 71.9426 +75.9746 -38.9267 71.5719 +74.7203 -38.9602 71.6334 +72.8014 -38.6311 71.0284 +71.563 -38.6469 71.0574 +69.7391 -38.3308 70.4762 +69.1662 -38.6928 71.1418 +67.7498 -38.5771 70.9291 +67.6151 -39.1899 72.0558 +66.1416 -39.0247 71.7521 +65.9243 -39.5982 72.8065 +64.1519 -39.2315 72.1322 +62.8851 -39.1563 71.994 +61.5055 -38.9973 71.7016 +61.0288 -39.4059 72.4529 +59.719 -39.2723 72.2073 +58.9994 -39.5198 72.6623 +57.2429 -39.0598 71.8166 +57.0371 -39.6513 72.9042 +55.6397 -39.4123 72.4647 +54.2002 -39.1249 71.9362 +53.2657 -39.1891 72.0543 +52.7091 -39.5306 72.6822 +51.0842 -39.06 71.8169 +50.3689 -39.2715 72.2058 +48.5681 -38.62 71.008 +48.1146 -39.0268 71.756 +46.7 -38.6467 71.0571 +45.5492 -38.4657 70.7242 +44.3601 -38.2362 70.3024 +43.8509 -38.5877 70.9486 +43.0036 -38.6425 71.0493 +42.25 -38.778 71.2984 +40.4506 -37.9309 69.741 +40.3809 -38.6968 71.1491 +39.1904 -38.3913 70.5874 +38.6599 -38.7257 71.2024 +37.4017 -38.3225 70.4609 +36.8662 -38.6509 71.0648 +35.6301 -38.2357 70.3014 +34.9304 -38.3828 70.5719 +33.9936 -38.2631 70.3517 +33.3317 -38.4475 70.6908 +32.2911 -38.1863 70.2106 +31.8856 -38.6751 71.1093 +30.8913 -38.4498 70.695 +30.1879 -38.5771 70.9291 +29.1743 -38.2974 70.4149 +28.7742 -38.823 71.3811 +27.771 -38.5349 70.8514 +27.0661 -38.6492 71.0616 +26.0501 -38.3062 70.431 +25.6201 -38.8234 71.382 +24.6469 -38.5176 70.8196 +23.9425 -38.6188 71.0059 +23.0157 -38.3498 70.5112 +22.2877 -38.3983 70.6003 +21.5855 -38.4897 70.7684 +20.9067 -38.6245 71.0162 +19.9827 -38.2929 70.4066 +19.4693 -38.7465 71.2406 +18.536 -38.3607 70.5311 +17.9645 -38.7164 71.1851 +17.1319 -38.5094 70.8046 +16.6871 -39.188 72.0523 +15.57 -38.2712 70.3666 +15.1255 -38.9923 71.6926 +14.2565 -38.6304 71.0271 +13.6164 -38.8769 71.4803 +12.8433 -38.7434 71.2349 +12.1795 -38.9372 71.5913 +11.3426 -38.5607 70.8989 +10.7684 -39.0802 71.8542 +9.92016 -38.602 70.9749 +9.29398 -38.9742 71.6592 +8.58179 -39.0114 71.7277 +7.86894 -39.0458 71.7908 +7.10319 -38.7915 71.3233 +6.44149 -39.1054 71.9005 +5.67818 -38.7972 71.3337 +4.98156 -38.9147 71.5499 +4.24445 -38.6955 71.1468 +3.53753 -38.7117 71.1765 +2.80941 -38.4385 70.6742 +2.13604 -38.9741 71.659 +1.42063 -38.886 71.497 +0.71034 -38.8904 71.5052 +8.88178e-15 -38.7486 71.2444 +-0.712085 -38.986 71.6809 +-1.41539 -38.7426 71.2335 +-2.1308 -38.8786 71.4834 +-2.84082 -38.8682 71.4643 +-3.58115 -39.189 72.0542 +-4.24445 -38.6955 71.1468 +-4.98156 -38.9147 71.5499 +-5.72701 -39.1308 71.9471 +-6.44149 -39.1054 71.9005 +-7.11191 -38.8391 71.4108 +-7.79226 -38.6653 71.0912 +-8.49816 -38.6313 71.0288 +-9.26002 -38.8318 71.3974 +-9.94454 -38.6969 71.1493 +-10.7293 -38.9382 71.5929 +-11.3148 -38.4661 70.725 +-12.1499 -38.8427 71.4175 +-12.8589 -38.7906 71.3217 +-13.5669 -38.7355 71.2204 +-14.1176 -38.254 70.335 +-14.9798 -38.6165 71.0015 +-15.6845 -38.5526 70.884 +-16.5675 -38.907 71.5357 +-17.2775 -38.8365 71.4061 +-17.9861 -38.763 71.2709 +-18.491 -38.2675 70.3599 +-19.6328 -39.0717 71.8385 +-20.1037 -38.5248 70.8329 +-21.2823 -39.3183 72.2919 +-21.7667 -38.8128 71.3624 +-22.6084 -38.9507 71.616 +-23.1811 -38.6253 71.0178 +-24.2833 -39.1686 72.0166 +-24.8516 -38.8374 71.4077 +-25.8306 -39.1424 71.9685 +-26.5446 -39.0332 71.7678 +-27.4151 -39.1476 71.9781 +-27.9663 -38.8059 71.3498 +-29.2749 -39.4986 72.6233 +-29.79 -39.1056 71.9008 +-31.0284 -39.6512 72.904 +-31.1063 -38.7174 71.1871 +-32.472 -39.3864 72.4171 +-33.3025 -39.3824 72.4097 +-34.5563 -39.86 73.288 +-34.8141 -39.1867 72.0499 +-36.2862 -39.8726 73.311 +-36.3623 -39.0214 71.746 +-37.82 -39.6509 72.9034 +-38.3315 -39.2751 72.2125 +-39.8223 -39.89 73.3431 +-40.374 -39.5507 72.7192 +-41.3625 -39.6374 72.8787 +-42.4027 -39.7615 73.1067 +-43.4967 -39.9222 73.4022 +-43.9425 -39.4862 72.6006 +-45.5209 -40.0573 73.6507 +-46.2508 -39.866 73.2988 +-47.4204 -40.0459 73.6297 +-47.7 -39.4742 72.5786 +-49.3327 -40.0149 73.5727 +-49.5982 -39.4391 72.5139 +-51.3616 -40.0455 73.629 +-51.9321 -39.7083 73.009 +-53.6225 -40.2156 73.9417 +-54.4094 -40.0306 73.6015 +-55.7456 -40.2405 73.9874 +-56.4785 -40.0065 73.5572 +-58.0566 -40.3601 74.2074 +-58.6769 -40.0383 73.6156 +-59.3478 -39.7532 73.0914 +-60.8946 -40.0454 73.6287 +-62.5159 -40.3661 74.2183 +-63.4313 -40.2183 73.9467 +-65.5027 -40.7862 74.9909 +-65.5064 -40.0598 73.6552 +-67.8541 -40.7573 74.9377 +-68.5959 -40.4729 74.4147 +-70.4775 -40.8489 75.1061 +-71.2209 -40.5535 74.563 +-73.6474 -41.1996 75.7509 +-74.0691 -40.7107 74.852 +-76.3338 -41.2234 75.7946 +-76.8831 -40.797 75.0106 +-79.1792 -41.2851 75.9081 +-79.3164 -40.6389 74.72 +-81.9142 -41.2424 75.8296 +-82.1086 -40.6244 74.6933 +-84.8801 -41.2687 75.878 +-85.4892 -40.8457 75.1002 +-87.4445 -41.057 75.4887 +-88.1911 -40.6908 74.8154 +-90.2366 -40.9136 75.225 +-92.0043 -40.992 75.3692 +-94.8139 -41.5106 76.3227 +-95.1225 -40.9219 75.2403 +-98.3379 -41.5685 76.4291 +-99.0934 -41.1569 75.6724 +-101.894 -41.5799 76.4502 +-102.65 -41.1535 75.6662 +-105.018 -41.3622 76.0498 +-106.78 -41.3136 75.9605 +-110.113 -41.8484 76.9437 +-110.873 -41.3877 76.0967 +-113.767 -41.7091 76.6877 +-114.524 -41.2332 75.8127 +-117.926 -41.692 76.6562 +-119.411 -41.4515 76.214 +-123.094 -41.9508 77.1322 +-125.085 -41.8471 76.9414 +-98.5655 -32.3664 59.5099 +-98.4897 -31.7404 58.359 +-98.8155 -31.2495 57.4562 +-98.7115 -30.6281 56.3138 +-98.5925 -30.01 55.1773 +-99.1368 -29.5978 54.4194 +-99.0768 -29.0085 53.336 +-98.9171 -28.3975 52.2125 +-98.6565 -27.7657 51.0509 +-99.1599 -27.3533 50.2927 +-98.8724 -26.7271 49.1413 +-98.6571 -26.1285 48.0407 +-99.1306 -25.7162 47.2826 +-98.8901 -25.1224 46.1909 +-98.3695 -24.4665 44.9849 +-98.9017 -24.0771 44.2689 +-98.7113 -23.5146 43.2347 +-98.4179 -22.9346 42.1682 +-98.7428 -22.5028 41.3743 +-99.1501 -22.0902 40.6158 +-98.6398 -21.4778 39.4898 +-98.2975 -20.9103 38.4464 +-98.7674 -20.5187 37.7264 +-99.1384 -20.1061 36.9677 +-98.6703 -19.5275 35.9038 +-99.0232 -19.1153 35.146 +-98.5312 -18.5441 34.0958 +-98.8662 -18.1326 33.3392 +-99.0999 -17.7029 32.5492 +-98.6677 -17.1584 31.5479 +-98.7888 -16.7144 30.7317 +-99.4686 -16.3641 30.0876 +-99.1947 -15.8578 29.1567 +-98.8148 -15.3403 28.2051 +-97.4699 -14.6834 26.9974 +-97.1606 -14.1927 26.0951 +-95.5943 -13.5292 24.8752 +-69.9799 -9.58748 17.6278 +-55.5051 -7.35454 13.5223 +-41.5348 -5.31739 9.77673 +-37.1769 -4.59373 8.44618 +-30.1762 -3.59476 6.60945 +-27.0319 -3.10074 5.70111 +-16.7592 -1.84864 3.39896 +-17.3781 -1.84074 3.38444 +-16.0416 -1.62914 2.99538 +-15.7768 -1.53361 2.81975 +-16.3932 -1.52247 2.79927 +-17.5019 -1.54984 2.84959 +-16.5448 -1.39384 2.56277 +-17.0627 -1.36424 2.50833 +-16.0006 -1.21083 2.22627 +-15.5275 -1.10876 2.0386 +-15.8443 -1.06392 1.95616 +-15.2683 -0.960401 1.76582 +-13.8956 -0.815187 1.49883 +-14.9036 -0.811307 1.4917 +-14.6195 -0.734154 1.34984 +-15.9263 -0.732701 1.34717 +-15.3414 -0.641286 1.17909 +-14.9538 -0.562303 1.03387 +-14.9635 -0.499933 0.919193 +-15.2715 -0.446274 0.820534 +-15.0793 -0.377583 0.694235 +-14.7859 -0.308444 0.567115 +-14.3912 -0.240114 0.44148 +-14.695 -0.183853 0.338038 +-14.4978 -0.120909 0.222307 +-11.2996 -0.0471146 0.0866264 +93.8 7.10543e-15 -1.7053e-13 +92.4965 -0.379258 0.712561 +81.9875 -0.67239 1.2633 +89.9692 -1.10691 2.0797 +85.1481 -1.39705 2.62481 +91.1132 -1.86907 3.51166 +86.4813 -2.12946 4.00088 +88.0355 -2.52985 4.75315 +79.1068 -2.59902 4.8831 +92.813 -3.43198 6.44809 +80.2933 -3.30052 6.2011 +93.6668 -4.23754 7.96161 +93.684 -4.62633 8.69208 +95.3829 -5.106 9.59329 +95.3837 -5.50259 10.3384 +95.377 -5.89961 11.0843 +95.3628 -6.297 11.831 +95.44 -6.70163 12.5912 +95.1144 -7.07797 13.2983 +95.9656 -7.54523 14.1762 +95.7233 -7.93026 14.8996 +95.4741 -8.31389 15.6204 +95.4142 -8.71396 16.372 +95.1507 -9.09547 17.0888 +95.0759 -9.49502 17.8395 +95.7746 -9.976 18.7432 +95.5857 -10.3683 19.4803 +95.3895 -10.7598 20.2159 +95.283 -11.1619 20.9712 +94.9753 -11.5404 21.6824 +95.7232 -12.051 22.6417 +95.3994 -12.4304 23.3546 +95.1649 -12.8211 24.0886 +95.7861 -13.3309 25.0464 +96.2999 -13.833 25.9898 +96.0393 -14.2273 26.7307 +95.8665 -14.635 27.4967 +96.3497 -15.1468 28.4583 +96.0647 -15.5413 29.1994 +96.5265 -16.06 30.174 +96.1306 -16.4391 30.8863 +96.9456 -17.0301 31.9966 +96.6256 -17.4269 32.7422 +97.1356 -17.9774 33.7764 +96.798 -18.375 34.5234 +96.5454 -18.7891 35.3016 +96.1928 -19.1843 36.044 +95.8328 -19.578 36.7836 +96.379 -20.1612 37.8795 +96.0009 -20.5556 38.6204 +96.3405 -21.1073 39.657 +95.9448 -21.5015 40.3976 +96.4406 -22.1 41.5221 +96.7424 -22.6623 42.5786 +96.3178 -23.0581 43.3222 +96.6842 -23.6474 44.4294 +96.153 -24.0209 45.1311 +96.4941 -24.6159 46.2491 +96.0332 -25.0106 46.9907 +96.3484 -25.6117 48.1199 +96.5618 -26.1937 49.2134 +96.8471 -26.8032 50.3586 +96.2599 -27.1751 51.0573 +96.5189 -27.7896 52.2119 +96.6775 -28.3835 53.3277 +96.1466 -28.7788 54.0704 +96.7826 -29.5301 55.482 +96.8141 -30.1074 56.5666 +94.4274 -29.9252 56.2243 +94.3624 -30.4709 57.2495 +94.2844 -31.0183 58.278 +94.5188 -31.6765 59.5147 +94.5741 -32.2838 60.6557 +94.614 -32.8939 61.8019 +94.5584 -33.4785 62.9003 +94.4884 -34.0651 64.0025 +94.4825 -34.6827 65.1627 +94.5391 -35.332 66.3827 +94.2678 -35.8661 67.3862 +94.8327 -36.7294 69.0082 +94.6831 -37.3282 70.1332 +94.2143 -37.8065 71.032 +93.433 -38.1606 71.6971 +92.496 -38.4488 72.2387 +89.8462 -38.0092 71.4127 +89.1368 -38.3761 72.1021 +87.1042 -38.1633 71.7023 +87.0449 -38.8101 72.9174 +84.5944 -38.3822 72.1135 +84.2349 -38.8922 73.0718 +81.6001 -38.3391 72.0326 +81.726 -39.0744 73.414 +79.6078 -38.732 72.7707 +78.8854 -39.0569 73.3812 +76.9976 -38.7947 72.8886 +76.2741 -39.1089 73.4789 +74.5411 -38.8964 73.0797 +73.6171 -39.095 73.4528 +70.6576 -38.1897 71.7519 +70.1404 -38.5852 72.4949 +69.5496 -38.9433 73.1677 +68.5056 -39.0457 73.3601 +67.2114 -38.9965 73.2676 +66.1733 -39.0867 73.4371 +65.1986 -39.2084 73.6658 +64.1635 -39.2879 73.8151 +62.7091 -39.0992 73.4606 +61.9805 -39.3548 73.9409 +60.248 -38.9612 73.2014 +60.1608 -39.6275 74.4533 +58.2754 -39.1029 73.4676 +58.1133 -39.7276 74.6413 +56.143 -39.1074 73.4761 +55.4145 -39.3361 73.9058 +54.355 -39.3254 73.8856 +53.6762 -39.5864 74.376 +52.0381 -39.1276 73.514 +51.1526 -39.2193 73.6863 +49.9587 -39.0651 73.3965 +49.2312 -39.2684 73.7786 +47.4 -38.5736 72.4731 +46.6818 -38.7665 72.8355 +44.9903 -38.1345 71.6482 +44.2803 -38.3175 71.992 +43.1444 -38.1243 71.629 +42.9426 -38.7582 72.8199 +41.5855 -38.3467 72.0468 +40.961 -38.5998 72.5224 +39.6726 -38.2173 71.8037 +39.1765 -38.5906 72.505 +37.9511 -38.2387 71.8439 +37.2395 -38.3929 72.1335 +36.1589 -38.1578 71.6919 +35.4488 -38.3046 71.9677 +34.228 -37.8862 71.1817 +33.8675 -38.4158 72.1766 +32.9279 -38.2918 71.9438 +32.1055 -38.2942 71.9483 +31.178 -38.1612 71.6983 +30.6782 -38.5517 72.4319 +29.6531 -38.2786 71.9189 +28.9411 -38.3987 72.1446 +28.2268 -38.516 72.3648 +27.5103 -38.6302 72.5795 +26.5137 -38.3393 72.033 +25.8006 -38.4466 72.2345 +24.9101 -38.2814 71.9241 +24.4537 -38.7875 72.875 +23.2362 -38.0733 71.5332 +22.7954 -38.6199 72.5601 +21.8184 -38.258 71.8802 +21.3574 -38.8009 72.9002 +20.394 -38.4311 72.2054 +19.6794 -38.5133 72.3598 +18.9859 -38.6383 72.5946 +18.1593 -38.4853 72.3072 +17.5062 -38.6961 72.7034 +16.9861 -39.2269 73.7005 +15.9135 -38.4648 72.2688 +15.1984 -38.5286 72.3887 +14.4128 -38.4044 72.1552 +13.8475 -38.8791 73.0471 +12.9841 -38.5167 72.3662 +12.4012 -38.9867 73.2493 +11.5514 -38.6173 72.5552 +10.8337 -38.6632 72.6415 +10.0055 -38.2864 71.9336 +9.49775 -39.1663 73.5867 +8.61315 -38.5028 72.3402 +7.9552 -38.8173 72.931 +7.15549 -38.4272 72.1981 +6.47288 -38.6424 72.6025 +5.69213 -38.2457 71.857 +5.01819 -38.5489 72.4268 +4.27061 -38.2865 71.9338 +3.5986 -38.725 72.7577 +2.86525 -38.5505 72.4297 +2.1596 -38.7486 72.802 +1.43284 -38.5681 72.4628 +0.716449 -38.5725 72.4711 +9.76996e-15 -38.3391 72.0325 +-0.724302 -38.9953 73.2655 +-1.43284 -38.5681 72.4628 +-2.17269 -38.9835 73.2433 +-2.8478 -38.3157 71.9886 +-3.58551 -38.5842 72.4931 +-4.29678 -38.5211 72.3745 +-5.07313 -38.971 73.2198 +-5.72701 -38.48 72.2973 +-6.51995 -38.9234 73.1304 +-7.11191 -38.1932 71.7584 +-7.96478 -38.8641 73.0189 +-8.59224 -38.4094 72.1646 +-9.40719 -38.7928 72.885 +-10.1273 -38.7528 72.8098 +-10.925 -38.9893 73.2541 +-11.5653 -38.6639 72.6427 +-12.4308 -39.0796 73.4239 +-12.9997 -38.5631 72.4535 +-13.7155 -38.5083 72.3505 +-14.4302 -38.4506 72.2421 +-15.2531 -38.6672 72.649 +-15.8562 -38.3265 72.0088 +-16.7668 -38.7204 72.749 +-17.4854 -38.6502 72.617 +-18.3974 -38.9899 73.2553 +-18.8284 -38.3178 71.9926 +-19.7495 -38.6503 72.6173 +-20.5634 -38.7502 72.805 +-21.4075 -38.8919 73.0711 +-21.9996 -38.5757 72.4771 +-22.8489 -38.7104 72.7302 +-23.6772 -38.7959 72.8909 +-24.5389 -38.9226 73.1288 +-25.1147 -38.5959 72.515 +-26.2516 -39.1188 73.4974 +-26.8227 -38.7862 72.8726 +-27.9863 -39.2985 73.8351 +-28.5523 -38.9602 73.1995 +-29.5753 -39.2402 73.7256 +-30.1662 -38.9409 73.1632 +-31.2035 -39.2118 73.6722 +-31.9306 -39.0823 73.429 +-33.0951 -39.4745 74.1658 +-33.5273 -38.9888 73.2533 +-34.9007 -39.5878 74.3786 +-35.791 -39.6162 74.432 +-36.8444 -39.8127 74.8011 +-37.0944 -39.145 73.5467 +-38.5665 -39.761 74.704 +-38.9231 -39.2181 73.684 +-40.425 -39.8204 74.8156 +-41.0315 -39.5264 74.2633 +-42.2996 -39.8612 74.8924 +-42.9021 -39.5607 74.3277 +-44.3279 -40.0084 75.1689 +-44.3651 -39.2029 73.6554 +-46.0935 -39.8866 74.94 +-46.5417 -39.4495 74.1189 +-48.1098 -39.9524 75.0637 +-48.75 -39.6722 74.5373 +-49.891 -39.7947 74.7673 +-50.7828 -39.7094 74.6072 +-52.6156 -40.341 75.7938 +-52.8859 -39.7651 74.7118 +-54.1061 -39.9034 74.9716 +-54.8452 -39.68 74.5519 +-56.7391 -40.2764 75.6725 +-57.3173 -39.9254 75.013 +-58.8496 -40.231 75.587 +-59.4225 -39.8727 74.9139 +-60.9738 -40.163 75.4594 +-61.9526 -40.0636 75.2725 +-62.6943 -39.808 74.7924 +-63.9128 -39.8496 74.8706 +-66.355 -40.6298 76.3363 +-66.6146 -40.06 75.2658 +-69.1614 -40.8517 76.7532 +-69.5399 -40.3474 75.8059 +-71.9404 -41.0034 77.0383 +-73.085 -40.9229 76.887 +-74.0371 -40.7288 76.5224 +-74.9875 -40.5301 76.149 +-77.0627 -40.9249 76.8908 +-78.0206 -40.7121 76.491 +-79.4494 -40.737 76.5379 +-81.4306 -41.0282 77.085 +-82.9467 -41.0677 77.1591 +-83.359 -40.5571 76.1998 +-85.7212 -40.9845 77.0028 +-86.762 -40.7644 76.5892 +-88.7284 -40.9669 76.9698 +-89.2701 -40.5037 76.0994 +-92.4852 -41.2357 77.4748 +-93.7595 -41.0793 77.1808 +-95.9198 -41.2964 77.5888 +-96.8318 -40.9644 76.965 +-99.0119 -41.1574 77.3276 +-99.9235 -40.8115 76.6777 +-102.503 -41.1325 77.281 +-104.488 -41.1939 77.3962 +-106.793 -41.3616 77.7114 +-107.868 -41.0405 77.108 +-110.348 -41.2401 77.4831 +-111.898 -41.0754 77.1735 +-114.719 -41.3587 77.7058 +-115.722 -40.9716 76.9785 +-119.935 -41.6973 78.342 +-120.786 -41.2315 77.4669 +-123.827 -41.4987 77.9689 +-101.903 -33.5245 62.9868 +-97.9062 -31.6152 59.3995 +-98.3239 -31.16 58.5443 +-98.8155 -30.7297 57.7359 +-98.7115 -30.1187 56.5879 +-98.5925 -29.5109 55.4458 +-99.1368 -29.1055 54.6843 +-98.9915 -28.5016 53.5495 +-98.9171 -27.9252 52.4667 +-98.6565 -27.3039 51.2994 +-99.1599 -26.8984 50.5375 +-98.8724 -26.2826 49.3805 +-98.5696 -25.6712 48.2317 +-99.2185 -25.3109 47.5548 +-98.8018 -24.6826 46.3743 +-99.2565 -24.2766 45.6115 +-98.8126 -23.6553 44.4443 +-98.7113 -23.1235 43.4451 +-99.137 -22.7179 42.683 +-98.7428 -22.1285 41.5757 +-99.1501 -21.7228 40.8135 +-98.7308 -21.1401 39.7187 +-99.1197 -20.7345 38.9566 +-98.6757 -20.1587 37.8748 +-99.0463 -19.7534 37.1132 +-98.5779 -19.1847 36.0447 +-98.9305 -18.7798 35.284 +-98.4382 -18.2185 34.2294 +-98.8662 -17.831 33.5015 +-98.3506 -17.2769 32.4603 +-98.6677 -16.873 31.7014 +-98.6946 -16.4208 30.8518 +-98.1448 -15.8778 29.8317 +-98.9102 -15.5494 29.2146 +-98.6246 -15.0561 28.2878 +-98.0421 -14.524 27.2881 +-97.5431 -14.0116 26.3253 +-96.3614 -13.4109 25.1968 +-94.2998 -12.7045 23.8696 +-73.1396 -9.52998 17.9052 +-47.5236 -5.98291 11.2409 +-41.4367 -5.03496 9.45982 +-33.0871 -3.87598 7.28229 +-32.0882 -3.61952 6.80045 +-20.7541 -2.25123 4.22967 +-16.4994 -1.7186 3.22895 +-16.922 -1.68996 3.17514 +-16.3647 -1.56431 2.93907 +-18.0619 -1.64956 3.09924 +-24.778 -2.15767 4.05389 +-16.4463 -1.3625 2.55991 +-16.6682 -1.31053 2.46226 +-15.5067 -1.15394 2.16805 +-15.9232 -1.1181 2.10071 +-15.5472 -1.02661 1.92883 +-15.764 -0.975095 1.83203 +-14.9874 -0.864616 1.62446 +-15.7978 -0.845682 1.58889 +-14.4206 -0.71212 1.33795 +-16.424 -0.743031 1.39603 +-15.2418 -0.626524 1.17713 +-15.5519 -0.575067 1.08045 +-15.2627 -0.501448 0.942134 +-14.5728 -0.418774 0.786804 +-14.58 -0.359008 0.674514 +-14.4862 -0.297166 0.558323 +-14.3912 -0.23612 0.443629 +-14.3951 -0.177106 0.332751 +-14.2978 -0.117258 0.220307 +-14.5994 -0.0598611 0.112469 +94.2 5.32907e-15 1.13687e-13 +92.4965 -0.372813 0.715954 +92.086 -0.742375 1.42566 +89.9692 -1.0881 2.0896 +92.2438 -1.48774 2.85708 +91.1132 -1.83731 3.52838 +92.8725 -2.24797 4.31702 +88.0355 -2.48686 4.77579 +93.771 -3.02845 5.81586 +92.813 -3.37365 6.47879 +94.4393 -3.81603 7.32834 +93.6668 -4.16553 7.99952 +95.3746 -4.62979 8.8911 +95.3829 -5.01923 9.63898 +95.4829 -5.41472 10.3985 +95.377 -5.79935 11.1371 +95.5609 -6.20283 11.912 +95.44 -6.58774 12.6512 +95.1144 -6.95769 13.3616 +95.9656 -7.41701 14.2437 +95.7233 -7.7955 14.9705 +95.4741 -8.17261 15.6947 +95.316 -8.5571 16.4331 +95.1507 -8.9409 17.1702 +95.9563 -9.42008 18.0904 +95.7746 -9.80647 18.8324 +95.5857 -10.1921 19.573 +95.3895 -10.577 20.3121 +95.283 -10.9722 21.0711 +94.9753 -11.3443 21.7856 +95.6267 -11.8342 22.7265 +95.3994 -12.2192 23.4658 +95.1649 -12.6032 24.2033 +95.7861 -13.1043 25.1656 +95.4392 -13.4764 25.8802 +96.0393 -13.9855 26.858 +95.7714 -14.3721 27.6002 +96.3497 -14.8894 28.5938 +96.0647 -15.2772 29.3384 +96.5265 -15.7871 30.3177 +96.2245 -16.1756 31.0637 +96.9456 -16.7407 32.149 +96.6256 -17.1308 32.8981 +97.1356 -17.6719 33.9373 +96.798 -18.0627 34.6878 +96.5454 -18.4698 35.4697 +96.1928 -18.8583 36.2156 +95.8328 -19.2453 36.9588 +96.379 -19.8186 38.0598 +96.0009 -20.2063 38.8043 +96.4311 -20.7681 39.8833 +95.9448 -21.1361 40.59 +96.4406 -21.7245 41.7199 +96.7424 -22.2772 42.7814 +96.3178 -22.6663 43.5285 +96.6842 -23.2455 44.6409 +96.153 -23.6127 45.346 +96.4941 -24.1976 46.4693 +96.0332 -24.5856 47.2144 +96.3484 -25.1764 48.349 +96.5618 -25.7485 49.4477 +96.8471 -26.3477 50.5984 +96.3456 -26.737 51.3461 +96.5189 -27.3174 52.4605 +96.6775 -27.9011 53.5816 +96.1466 -28.2898 54.3279 +96.2794 -28.8774 55.4565 +96.8141 -29.5957 56.836 +96.5829 -30.0881 57.7815 +94.3624 -29.953 57.5221 +94.2025 -30.4647 58.5047 +94.5188 -31.1382 59.7981 +94.655 -31.7623 60.9967 +94.614 -32.3349 62.0962 +94.5584 -32.9096 63.1998 +94.4884 -33.4862 64.3073 +94.4825 -34.0933 65.473 +94.5391 -34.7316 66.6988 +94.4232 -35.3147 67.8187 +94.8327 -36.1052 69.3368 +94.6065 -36.6642 70.4103 +94.2143 -37.1641 71.3702 +94.4142 -37.906 72.795 +92.496 -37.7954 72.5827 +92.2243 -38.3522 73.6519 +89.1368 -37.724 72.4455 +89.9565 -38.7432 74.4029 +87.0449 -38.1505 73.2647 +86.9682 -38.7887 74.4902 +84.2349 -38.2313 73.4198 +84.1457 -38.8633 74.6334 +81.726 -38.4103 73.7636 +81.6224 -39.0373 74.9675 +78.8854 -38.3932 73.7307 +79.3164 -39.2839 75.4411 +76.2741 -38.4443 73.8288 +76.4816 -39.2308 75.3392 +73.6171 -38.4307 73.8026 +73.4786 -39.0396 74.972 +70.1404 -37.9295 72.8401 +70.6424 -38.883 74.6712 +68.5056 -38.3822 73.7095 +69.414 -39.59 76.029 +66.1733 -38.4224 73.7868 +66.7993 -39.4884 75.8339 +64.1635 -38.6202 74.1666 +64.8155 -39.7257 76.2896 +61.9805 -38.686 74.293 +62.4228 -39.6816 76.205 +60.1608 -38.9541 74.8079 +59.7667 -39.4221 75.7065 +58.1133 -39.0525 74.9967 +58.2679 -39.8978 76.6202 +55.4145 -38.6676 74.2577 +55.6621 -39.5867 76.0227 +53.6762 -38.9137 74.7302 +53.6808 -39.6769 76.1959 +51.1526 -38.5528 74.0372 +50.9888 -39.193 75.2666 +49.2312 -38.6011 74.1299 +49.15 -39.318 75.5067 +46.6818 -38.1077 73.1823 +46.8326 -39.0215 74.9373 +44.2803 -37.6664 72.3349 +44.6937 -38.8221 74.5544 +42.9426 -38.0995 73.1666 +42.6297 -38.6415 74.2075 +40.961 -37.9439 72.8677 +40.637 -38.4811 73.8994 +39.1765 -37.9348 72.8503 +39.219 -38.8447 74.5977 +37.2395 -37.7404 72.477 +37.0944 -38.4798 73.8969 +35.4488 -37.6536 72.3104 +35.4393 -38.5603 74.0516 +33.8675 -37.763 72.5203 +33.6397 -38.4547 73.8488 +32.1055 -37.6435 72.2909 +32.1814 -38.72 74.3583 +30.6782 -37.8965 72.7768 +30.4056 -38.5829 74.095 +28.9411 -37.7462 72.4881 +28.8128 -38.6475 74.2189 +27.5103 -37.9737 72.9251 +27.0699 -38.4785 73.8945 +25.8006 -37.7932 72.5785 +25.4656 -38.47 73.8781 +24.4537 -38.1283 73.222 +23.9804 -38.625 74.1758 +22.7954 -37.9636 72.9056 +22.5173 -38.8124 74.5357 +21.3574 -38.1415 73.2474 +20.8295 -38.5847 74.0984 +19.6794 -37.8588 72.7044 +19.3233 -38.6567 74.2367 +18.1593 -37.8313 72.6515 +17.8596 -38.8066 74.5245 +16.9861 -38.5603 74.0515 +16.4477 -39.0806 75.0508 +15.1984 -37.8739 72.7334 +14.9164 -39.0708 75.0319 +13.8475 -38.2184 73.3949 +13.3439 -38.9114 74.7257 +12.4012 -38.3242 73.5981 +11.8715 -39.013 74.921 +10.8337 -38.0062 72.9874 +10.3589 -38.9652 74.8292 +9.49775 -38.5007 73.9371 +8.79084 -38.6294 74.1842 +7.9552 -38.1577 73.2783 +7.39952 -39.0624 75.0159 +6.47288 -37.9858 72.9482 +5.88745 -38.8858 74.6766 +5.01819 -37.8938 72.7717 +4.40145 -38.7889 74.4906 +3.5986 -38.0669 73.1041 +2.93505 -38.8185 74.5475 +2.1596 -38.0901 73.1486 +1.47298 -38.9748 74.8475 +0.716449 -37.917 72.8162 +7.10543e-15 -38.9807 74.859 +-0.724302 -38.3327 73.6144 +-1.46775 -38.8363 74.5815 +-2.17269 -38.321 73.592 +-2.94552 -38.957 74.8134 +-3.58551 -37.9285 72.8383 +-4.40145 -38.7889 74.4906 +-5.07313 -38.3087 73.5684 +-5.95023 -39.3004 75.4729 +-6.51995 -38.262 73.4787 +-7.40824 -39.1084 75.1042 +-7.96478 -38.2036 73.3666 +-8.87447 -38.9968 74.8899 +-9.40719 -38.1336 73.2321 +-10.3467 -38.9194 74.7412 +-10.925 -38.3267 73.6029 +-11.8575 -38.9672 74.8331 +-12.4308 -38.4155 73.7735 +-13.2969 -38.7745 74.4629 +-13.7155 -37.8539 72.695 +-14.7948 -38.7524 74.4204 +-15.2531 -38.0101 72.9949 +-16.3142 -38.7632 74.4413 +-16.7668 -38.0624 73.0954 +-17.9636 -39.0325 74.9583 +-18.3974 -38.3273 73.6041 +-19.5033 -39.0167 74.928 +-19.7495 -37.9935 72.9631 +-20.9746 -38.8535 74.6147 +-21.4075 -38.231 73.4191 +-22.7502 -39.2139 75.3068 +-22.8489 -38.0526 73.0765 +-24.2285 -39.0246 74.9431 +-24.5389 -38.2612 73.4771 +-25.9626 -39.2208 75.3201 +-26.2516 -38.454 73.8474 +-27.7497 -39.4448 75.7503 +-27.9863 -38.6307 74.1867 +-29.236 -39.2152 75.3092 +-29.5753 -38.5734 74.0767 +-31.0896 -39.4509 75.762 +-31.2035 -38.5454 74.023 +-33.0057 -39.7118 76.2628 +-33.0951 -38.8037 74.519 +-34.726 -39.6966 76.2336 +-34.9007 -38.9151 74.7328 +-36.6115 -39.8358 76.501 +-36.8444 -39.1361 75.1573 +-38.3146 -39.7456 76.3277 +-38.5665 -39.0853 75.0598 +-40.191 -39.8074 76.4465 +-40.425 -39.1437 75.1719 +-42.2151 -39.9755 76.7694 +-42.2996 -39.1839 75.249 +-44.2187 -40.0818 76.9735 +-44.3279 -39.3285 75.5268 +-46.2899 -40.2086 77.217 +-46.0935 -39.2087 75.2968 +-48.0931 -40.0718 76.9542 +-48.1098 -39.2735 75.4211 +-50.2 -40.158 77.1198 +-49.891 -39.1184 75.1234 +-52.6369 -40.4598 77.6994 +-52.6156 -39.6555 76.1547 +-54.1577 -40.0294 76.8728 +-54.1061 -39.2253 75.3286 +-56.8603 -40.4389 77.6592 +-56.7391 -39.592 76.0328 +-58.7153 -40.2041 77.2084 +-58.8496 -39.5473 75.947 +-61.2006 -40.3679 77.5229 +-60.9738 -39.4805 75.8187 +-63.3045 -40.2421 77.2813 +-62.6943 -39.1315 75.1485 +-66.3802 -40.6848 78.1314 +-66.355 -39.9393 76.6998 +-68.5231 -40.5074 77.7909 +-69.1614 -40.1574 77.1187 +-71.0503 -40.5232 77.8212 +-71.9404 -40.3066 77.4051 +-74.4348 -40.9704 78.6799 +-74.0371 -40.0367 76.8868 +-77.2838 -41.0613 78.8545 +-77.0627 -40.2294 77.2569 +-80.028 -41.0499 78.8326 +-79.4494 -40.0448 76.9023 +-83.4084 -41.3106 79.3333 +-82.9467 -40.3698 77.5266 +-85.9987 -41.1303 78.9871 +-85.7212 -40.288 77.3695 +-89.0247 -41.1167 78.9609 +-88.7284 -40.2707 77.3363 +-92.1474 -41.0987 78.9263 +-92.4852 -40.535 77.8437 +-95.7342 -41.2316 79.1816 +-95.9198 -40.5946 77.9582 +-98.8383 -41.1027 78.934 +-99.0119 -40.4579 77.6958 +-102.49 -41.1481 79.0213 +-102.503 -40.4335 77.649 +-105.178 -40.761 78.2779 +-106.793 -40.6587 78.0814 +-108.8 -40.6919 78.145 +-110.348 -40.5393 77.8521 +-114.813 -41.4294 79.5615 +-114.719 -40.6558 78.0758 +-120.514 -41.943 80.5478 +-119.935 -40.9887 78.7151 +-124.912 -41.9154 80.4947 +-123.827 -40.7935 78.3402 +-97.9706 -31.6833 60.8448 +-97.9062 -31.0779 59.6824 +-98.9042 -30.8113 59.1702 +-98.8155 -30.2075 58.0108 +-98.7115 -29.6069 56.8573 +-98.5925 -29.0094 55.7099 +-98.7976 -28.513 54.7567 +-98.9915 -28.0172 53.8045 +-98.9171 -27.4507 52.7165 +-98.6565 -26.8399 51.5437 +-99.1599 -26.4413 50.7781 +-98.8724 -25.836 49.6156 +-98.5696 -25.2349 48.4614 +-99.2185 -24.8808 47.7813 +-98.7135 -24.2414 46.5535 +-99.2565 -23.864 45.8287 +-98.9908 -23.2953 44.7365 +-98.7113 -22.7306 43.652 +-99.137 -22.3318 42.8863 +-98.7428 -21.7525 41.7737 +-99.1501 -21.3537 41.0078 +-98.7308 -20.7809 39.9078 +-98.3888 -20.2319 38.8535 +-98.6757 -19.8162 38.0551 +-99.0463 -19.4177 37.29 +-98.5779 -18.8587 36.2164 +-99.0232 -18.478 35.4853 +-98.4382 -17.9089 34.3924 +-98.8662 -17.528 33.661 +-98.3506 -16.9833 32.6149 +-99.3255 -16.6968 32.0647 +-98.6946 -16.1417 30.9987 +-98.9958 -15.7433 30.2336 +-98.9102 -15.2851 29.3537 +-98.7197 -14.8145 28.4499 +-98.0421 -14.2772 27.4181 +-98.7863 -13.949 26.7878 +-96.3614 -13.183 25.3168 +-96.7029 -12.8069 24.5944 +-73.1396 -9.36803 17.9905 +-63.7511 -7.88949 15.151 +-41.4367 -4.9494 9.50487 +-42.3049 -4.87158 9.35542 +-32.0882 -3.55801 6.83283 +-34.0055 -3.62594 6.96329 +-16.4994 -1.68939 3.24433 +-17.7045 -1.73806 3.33779 +-16.3647 -1.53773 2.95306 +-28.958 -2.59973 4.99255 +-24.778 -2.121 4.0732 +-31.1199 -2.53434 4.86697 +-16.6682 -1.28826 2.47398 +-16.4944 -1.20658 2.31713 +-15.9232 -1.09909 2.11071 +-16.0423 -1.0413 1.99973 +-15.764 -0.958524 1.84076 +-14.9874 -0.849923 1.6322 +-15.7978 -0.83131 1.59646 +-15.0173 -0.728986 1.39995 +-16.424 -0.730404 1.40267 +-15.0425 -0.607827 1.16728 +-15.5519 -0.565294 1.0856 +-14.4647 -0.467154 0.897128 +-14.5728 -0.411657 0.79055 +-14.7797 -0.357741 0.68701 +-14.4862 -0.292116 0.560982 +-13.8915 -0.224048 0.430264 +-14.3951 -0.174096 0.334336 +-13.8979 -0.112041 0.215164 +-14.5994 -0.0588438 0.113004 +94.2 5.32907e-15 1.13687e-13 +95.0964 -0.376635 0.739507 +92.086 -0.729481 1.4323 +94.2677 -1.12029 2.19964 +92.2438 -1.4619 2.87038 +95.8087 -1.89844 3.7275 +92.8725 -2.20892 4.33713 +95.7211 -2.657 5.21691 +93.771 -2.97585 5.84295 +95.5047 -3.4112 6.69774 +94.4393 -3.74975 7.36247 +95.558 -4.17582 8.19905 +95.3746 -4.54938 8.93251 +95.681 -4.94748 9.71417 +95.4829 -5.32067 10.4469 +95.8727 -5.72826 11.2472 +95.5609 -6.09509 11.9675 +95.6378 -6.48675 12.7365 +95.1144 -6.83684 13.4239 +96.1628 -7.30316 14.3394 +95.7233 -7.6601 15.0403 +95.6707 -8.04717 15.8003 +95.316 -8.40847 16.5097 +95.3467 -8.80372 17.2857 +95.9563 -9.25646 18.1747 +95.8723 -9.64599 18.9395 +95.5857 -10.0151 19.6642 +95.4867 -10.4038 20.4275 +95.283 -10.7816 21.1693 +96.1371 -11.2836 22.1548 +95.6267 -11.6287 22.8324 +95.4958 -12.019 23.5989 +95.1649 -12.3843 24.316 +95.7861 -12.8767 25.2829 +95.4392 -13.2423 26.0007 +96.23 -13.7699 27.0366 +95.7714 -14.1224 27.7288 +96.4445 -14.6452 28.7552 +96.0647 -15.0118 29.4751 +96.8093 -15.5584 30.5482 +96.2245 -15.8946 31.2084 +97.0392 -16.4658 32.3299 +96.6256 -16.8332 33.0514 +96.3913 -17.2319 33.8341 +96.798 -17.749 34.8494 +96.5454 -18.149 35.6349 +96.1928 -18.5307 36.3843 +96.8415 -19.11 37.5217 +96.379 -19.4744 38.2371 +96.0919 -19.8742 39.0221 +96.4311 -20.4074 40.0691 +96.2156 -20.8276 40.8942 +96.4406 -21.3471 41.9142 +96.9214 -21.9308 43.0601 +96.3178 -22.2726 43.7313 +96.7729 -22.8628 44.89 +96.153 -23.2025 45.5572 +96.6699 -23.8207 46.7709 +96.0332 -24.1586 47.4344 +97.1317 -24.9403 48.9692 +96.5618 -25.3013 49.678 +96.1578 -25.7058 50.4723 +96.3456 -26.2726 51.5852 +96.6041 -26.8666 52.7515 +96.6775 -27.4165 53.8312 +96.231 -27.8228 54.6288 +96.2794 -28.3759 55.7148 +96.564 -29.0065 56.9531 +96.5829 -29.5655 58.0507 +96.1755 -29.9983 58.9004 +94.2025 -29.9355 58.7772 +96.3099 -31.1772 61.2151 +94.655 -31.2106 61.2808 +96.3824 -32.3672 63.5516 +94.5584 -32.338 63.4942 +94.6471 -32.9599 64.7153 +94.4825 -33.5011 65.778 +94.8521 -34.2413 67.2314 +94.4232 -34.7013 68.1346 +94.7555 -35.4492 69.6031 +94.6065 -36.0274 70.7382 +94.7466 -36.7249 72.1077 +94.4142 -37.2476 73.1341 +94.5182 -37.9509 74.515 +92.2243 -37.686 73.995 +94.8139 -39.4296 77.4183 +89.9565 -38.0703 74.7494 +94.7339 -40.7994 80.1078 +86.9682 -38.115 74.8371 +94.2204 -42.0206 82.5057 +84.1457 -38.1883 74.981 +91.1883 -42.1131 82.6873 +81.6224 -38.3592 75.3167 +88.3159 -42.2364 82.9293 +79.3164 -38.6016 75.7925 +85.4622 -42.3272 83.1076 +76.4816 -38.5494 75.6902 +82.6287 -42.3858 83.2228 +73.4786 -38.3615 75.3213 +79.7522 -42.3782 83.2077 +70.6424 -38.2076 75.019 +77.2199 -42.5131 83.4726 +69.414 -38.9024 76.3832 +74.8885 -42.7276 83.8938 +66.7993 -38.8025 76.1871 +72.1382 -42.6661 83.7731 +64.8155 -39.0357 76.645 +69.9512 -42.9027 84.2375 +62.4228 -38.9924 76.5599 +68.4649 -43.561 85.5302 +59.7667 -38.7374 76.0592 +66.666 -44.0219 86.4351 +58.2679 -39.2049 76.9771 +63.8039 -43.7484 85.8982 +55.6621 -38.8991 76.3768 +61.682 -43.9409 86.2761 +53.6808 -38.9877 76.5508 +59.1991 -43.8423 86.0825 +50.9888 -38.5123 75.6172 +57.1488 -44.0308 86.4526 +49.15 -38.6351 75.8584 +55.0037 -44.1212 86.6302 +46.8326 -38.3437 75.2863 +52.2489 -43.6728 85.7496 +44.6937 -38.1478 74.9016 +49.4533 -43.1138 84.6522 +42.6297 -37.9703 74.5531 +46.7615 -42.5648 83.5741 +40.637 -37.8127 74.2437 +44.644 -42.4781 83.4039 +39.219 -38.17 74.9451 +42.6719 -42.4948 83.4368 +37.0944 -37.8114 74.2411 +40.5528 -42.3269 83.1071 +35.4393 -37.8906 74.3966 +38.6893 -42.3901 83.2312 +33.6397 -37.7868 74.1928 +36.7234 -42.31 83.074 +32.1814 -38.0475 74.7046 +35.0908 -42.5945 83.6325 +30.4056 -37.9128 74.4401 +33.0469 -42.3526 83.1575 +28.8128 -37.9762 74.5646 +31.318 -42.4787 83.4052 +27.0699 -37.8102 74.2387 +29.409 -42.3308 83.1147 +25.4656 -37.8018 74.2222 +27.7767 -42.5573 83.5594 +23.9804 -37.9541 74.5213 +25.9221 -42.421 83.2917 +22.5173 -38.1382 74.8828 +24.2117 -42.488 83.4234 +20.8295 -37.9145 74.4435 +22.3641 -42.2761 83.0073 +19.3233 -37.9853 74.5825 +20.7998 -42.5797 83.6034 +17.8596 -38.1325 74.8716 +19.0994 -42.6046 83.6523 +16.4477 -38.4018 75.4004 +17.3306 -42.437 83.3232 +14.9164 -38.3922 75.3814 +15.6135 -42.344 83.1406 +13.3439 -38.2355 75.0738 +14.0715 -42.7305 83.8996 +11.8715 -38.3354 75.2699 +12.3086 -42.4305 83.3105 +10.3589 -38.2884 75.1777 +10.6751 -42.5215 83.4892 +8.79084 -37.9584 74.5298 +9.03825 -42.5996 83.6426 +7.39952 -38.384 75.3653 +7.37515 -42.529 83.5038 +5.88745 -38.2104 75.0244 +5.73856 -42.5809 83.6059 +4.40145 -38.1152 74.8376 +4.10022 -42.6199 83.6823 +2.93505 -38.1443 74.8947 +2.46849 -42.782 84.0006 +1.47298 -38.2978 75.1961 +0.822912 -42.795 84.0262 +1.15463e-14 -38.3037 75.2076 +-0.822912 -42.795 84.0262 +-1.46775 -38.1617 74.9289 +-2.46063 -42.6459 83.7334 +-2.94552 -38.2803 75.1618 +-4.10022 -42.6199 83.6823 +-4.40145 -38.1152 74.8376 +-5.75688 -42.7168 83.8726 +-5.95023 -38.6178 75.8244 +-7.46931 -43.0719 84.5698 +-7.40824 -38.4292 75.454 +-9.12452 -43.0062 84.4408 +-8.87447 -38.3195 75.2387 +-10.8109 -43.0626 84.5517 +-10.3467 -38.2434 75.0893 +-12.5436 -43.2404 84.9008 +-11.8575 -38.2904 75.1816 +-14.1158 -42.8652 84.1639 +-13.2969 -38.101 74.8098 +-15.762 -42.7469 83.9316 +-14.7948 -38.0793 74.7671 +-17.3488 -42.4816 83.4109 +-16.3142 -38.09 74.788 +-19.1593 -42.738 83.9143 +-17.9636 -38.3545 75.3074 +-20.8864 -42.757 83.9515 +-19.5033 -38.339 75.2771 +-22.7376 -42.9822 84.3937 +-20.9746 -38.1787 74.9622 +-24.5623 -43.1031 84.6311 +-22.7502 -38.5328 75.6575 +-26.4566 -43.2956 85.009 +-24.2285 -38.3467 75.2922 +-28.2879 -43.3405 85.0973 +-25.9626 -38.5396 75.6709 +-30.2209 -43.4994 85.4093 +-27.7497 -38.7597 76.1031 +-31.8891 -43.2534 84.9263 +-29.236 -38.534 75.66 +-33.9482 -43.5076 85.4254 +-31.0896 -38.7657 76.1149 +-36.1764 -43.9123 86.2199 +-33.0057 -39.022 76.618 +-37.8962 -43.6613 85.7271 +-34.726 -39.0071 76.5887 +-39.7608 -43.5641 85.5363 +-36.6115 -39.1439 76.8573 +-41.7889 -43.6171 85.6404 +-38.3146 -39.0552 76.6833 +-43.9575 -43.7751 85.9505 +-40.191 -39.116 76.8026 +-46.1077 -43.8708 86.1385 +-42.2151 -39.2812 77.1269 +-48.0555 -43.7426 85.8868 +-44.2187 -39.3856 77.332 +-50.1459 -43.7177 85.8378 +-46.2899 -39.5102 77.5767 +-52.6306 -43.9918 86.3761 +-48.0931 -39.3758 77.3126 +-54.7575 -43.9238 86.2425 +-50.2 -39.4605 77.479 +-57.6056 -44.3827 87.1436 +-52.6369 -39.7571 78.0613 +-59.7738 -44.268 86.9183 +-54.1577 -39.3341 77.2308 +-62.1118 -44.2471 86.8774 +-56.8603 -39.7365 78.021 +-65.5701 -44.9594 88.2759 +-58.7153 -39.5058 77.568 +-68.4785 -45.2187 88.785 +-61.2006 -39.6668 77.884 +-71.4265 -45.4452 89.2298 +-63.3045 -39.5431 77.6413 +-74.0554 -45.4198 89.1799 +-66.3802 -39.9781 78.4953 +-77.1301 -45.6186 89.5702 +-68.5231 -39.8039 78.1532 +-79.9931 -45.6399 89.612 +-71.0503 -39.8194 78.1837 +-82.2449 -45.2796 88.9046 +-74.4348 -40.2587 79.0463 +-85.5323 -45.4493 89.2378 +-77.2838 -40.3481 79.2218 +-88.4598 -45.377 89.0957 +-80.028 -40.3369 79.1998 +-91.002 -45.0709 88.4949 +-83.4084 -40.5931 79.7028 +-95.0618 -45.4625 89.2636 +-85.9987 -40.416 79.355 +-98.688 -45.5768 89.4882 +-89.0247 -40.4025 79.3286 +-101.923 -45.4561 89.2511 +-92.1474 -40.3848 79.2939 +-106.485 -45.86 90.0442 +-95.7342 -40.5155 79.5504 +-109.781 -45.6535 89.6388 +-98.8383 -40.3888 79.3016 +-114.216 -45.86 90.0442 +-102.49 -40.4334 79.3893 +-118.015 -45.7438 89.8161 +-105.178 -40.0531 78.6425 +-109.725 -41.0495 80.599 +-108.8 -39.9851 78.509 +-98.6869 -35.6256 69.9494 +-114.813 -40.7099 79.9321 +-99.3278 -34.5899 67.9158 +-120.514 -41.2145 80.923 +-98.794 -33.177 65.1417 +-124.912 -41.1873 80.8696 +-99.3221 -32.1523 63.1297 +-97.9706 -31.1329 61.1282 +-99.1424 -30.9237 60.7174 +-98.9042 -30.2761 59.4458 +-98.9822 -29.733 58.3794 +-98.7115 -29.0926 57.1222 +-99.4359 -28.7494 56.4481 +-98.7976 -28.0178 55.0117 +-99.2473 -27.6017 54.1948 +-98.9171 -26.9739 52.962 +-99.5182 -26.6041 52.2361 +-99.1599 -25.9821 51.0147 +-98.9594 -25.4096 49.8906 +-98.5696 -24.7966 48.6871 +-99.3063 -24.4703 48.0464 +-98.7135 -23.8204 46.7703 +-99.4339 -23.4914 46.1244 +-98.9908 -22.8907 44.9449 +-99.5167 -22.518 44.2132 +-99.137 -21.944 43.086 +-98.8331 -21.3942 42.0067 +-99.1501 -20.9828 41.1988 +-98.8218 -20.4388 40.1307 +-98.3888 -19.8805 39.0345 +-98.7674 -19.4901 38.2679 +-99.0463 -19.0804 37.4637 +-99.5942 -18.7222 36.7602 +-99.0232 -18.157 35.6506 +-99.3686 -17.7641 34.8791 +-98.8662 -17.2236 33.8178 +-98.4442 -16.7042 32.798 +-99.3255 -16.4068 32.2141 +-99.0716 -15.9219 31.2621 +-98.9958 -15.4699 30.3744 +-98.8153 -15.0052 29.4621 +-98.7197 -14.5572 28.5825 +-98.6143 -14.1111 27.7065 +-98.7863 -13.7067 26.9126 +-98.5667 -13.2505 26.0169 +-96.7029 -12.5844 24.709 +-99.2539 -12.4921 24.5277 +-63.7511 -7.75245 15.2216 +-98.6542 -11.579 22.7349 +-42.3049 -4.78696 9.39899 +-97.5287 -10.6264 20.8644 +-34.0055 -3.56296 6.99573 +-68.4384 -6.88577 13.5199 +-17.7045 -1.70787 3.35333 +-53.3079 -4.92211 9.66436 +-28.958 -2.55458 5.01581 +-56.3405 -4.73899 9.30481 +-31.1199 -2.49032 4.88964 +-16.7669 -1.27337 2.50022 +-16.4944 -1.18563 2.32793 +-16.4177 -1.11355 2.1864 +-16.0423 -1.02322 2.00904 +-17.0529 -1.01888 2.00053 +-14.9874 -0.835161 1.6398 +-14.5061 -0.750085 1.47276 +-15.0173 -0.716324 1.40647 +-15.6277 -0.682922 1.34089 +-15.0425 -0.59727 1.17271 +-15.5519 -0.555476 1.09065 +-14.4647 -0.45904 0.901307 +-15.6707 -0.434984 0.854072 +-14.7797 -0.351528 0.69021 +-11.0894 -0.219736 0.431441 +-13.8915 -0.220157 0.432268 +-3275.18 -38.9225 76.4226 +-13.8979 -0.110095 0.216167 +-3276.58 -12.977 25.4799 +95 -1.77636e-15 -1.7053e-13 +95.0964 -0.369947 0.742875 +94.2856 -0.73364 1.47319 +95.0674 -1.10973 2.2284 +95.0421 -1.4795 2.97093 +95.8087 -1.86473 3.74448 +95.7686 -2.23736 4.49275 +95.6213 -2.6071 5.23521 +95.5666 -2.97897 5.98196 +95.405 -3.34713 6.72123 +95.4355 -3.72202 7.47403 +95.558 -4.10167 8.23639 +95.673 -4.48255 9.00122 +95.8797 -4.8697 9.77865 +95.88 -5.24794 10.5382 +95.8727 -5.62654 11.2984 +95.7589 -5.99925 12.0469 +95.7367 -6.37816 12.8077 +96.3984 -6.80611 13.6671 +96.1628 -7.17347 14.4048 +95.8218 -7.53183 15.1244 +95.6707 -7.90428 15.8723 +95.5123 -8.27614 16.619 +95.3467 -8.64739 17.3645 +95.1738 -9.01796 18.1086 +94.9936 -9.38786 18.8514 +95.6831 -9.84728 19.7739 +95.4867 -10.2191 20.5206 +95.4771 -10.6117 21.309 +95.9434 -11.0609 22.211 +95.7232 -11.4337 22.9596 +95.4958 -11.8056 23.7064 +96.1262 -12.2872 24.6735 +95.7861 -12.648 25.398 +95.5348 -13.0202 26.1453 +96.1347 -13.512 27.1328 +95.8665 -13.8854 27.8828 +96.3497 -14.371 28.8578 +96.0647 -14.7452 29.6093 +95.8666 -15.1333 30.3885 +96.3185 -15.6276 31.3812 +97.0392 -16.1734 32.4772 +96.7189 -16.5503 33.2339 +97.2286 -17.073 34.2835 +96.0562 -17.3002 34.7398 +96.5454 -17.8268 35.7972 +96.2848 -18.2191 36.585 +96.7498 -18.7529 37.6569 +96.379 -19.1286 38.4113 +96.1829 -19.5397 39.237 +96.6124 -20.0827 40.3272 +96.9377 -20.6113 41.3887 +96.5305 -20.9876 42.1444 +96.0265 -21.3424 42.8568 +96.4069 -21.8973 43.9711 +96.7729 -22.4568 45.0945 +96.2413 -22.8114 45.8067 +96.582 -23.3764 46.9411 +96.2082 -23.7728 47.7373 +97.1317 -24.4974 49.1922 +96.6484 -24.8743 49.9491 +96.9333 -25.453 51.1111 +96.3456 -25.8061 51.8202 +96.6894 -26.4128 53.0385 +96.0838 -26.7643 53.7444 +96.3153 -27.3526 54.9257 +96.4471 -27.9205 56.066 +96.564 -28.4915 57.2125 +96.7487 -29.0904 58.4152 +96.2579 -29.4908 59.2194 +96.2504 -30.0432 60.3284 +96.3913 -30.6494 61.5458 +96.4348 -31.2329 62.7174 +96.5432 -31.8454 63.9475 +96.555 -32.4344 65.1302 +95.7577 -32.7545 65.773 +94.9553 -33.0709 66.4083 +94.8521 -33.6333 67.5376 +94.8118 -34.2254 68.7266 +94.7555 -34.8197 69.9201 +94.7597 -35.4449 71.1754 +94.6705 -36.0438 72.3781 +94.5651 -36.6447 73.5846 +94.3684 -37.2179 74.7357 +94.3794 -37.8819 76.069 +94.6664 -38.6692 77.65 +94.7834 -39.4008 79.1191 +94.5163 -39.9828 80.2878 +94.8809 -40.8444 82.018 +94.2917 -41.3057 82.9443 +93.1967 -41.5449 83.4245 +92.6602 -42.033 84.4047 +90.0972 -41.5902 83.5156 +89.2796 -41.9391 84.2162 +87.2276 -41.6979 83.7319 +86.0702 -41.8713 84.0801 +84.645 -41.9064 84.1506 +83.2251 -41.9336 84.2052 +81.8106 -41.953 84.2441 +81.246 -42.4052 85.1522 +79.4485 -42.2075 84.7551 +78.8101 -42.6181 85.5797 +76.6512 -42.1956 84.7312 +76.009 -42.5968 85.5369 +74.0641 -42.2585 84.8576 +73.4166 -42.6511 85.646 +71.616 -42.3655 85.0724 +70.9624 -42.75 85.8445 +70.1228 -43.0244 86.3955 +69.4521 -43.4044 87.1586 +67.6247 -43.0522 86.4513 +67.2891 -43.6442 87.6402 +65.6492 -43.3869 87.1235 +65.0182 -43.7893 87.9316 +63.1781 -43.3677 87.0849 +62.273 -43.5742 87.4996 +60.6228 -43.2477 86.844 +60.1396 -43.748 87.8485 +58.4053 -43.3307 87.0106 +58.0116 -43.9019 88.1576 +56.3 -43.4696 87.2896 +55.8408 -43.9973 88.3492 +53.7654 -43.2382 86.8248 +53.2509 -43.7199 87.7922 +51.2193 -42.9414 86.2289 +50.1921 -42.9809 86.3081 +48.6678 -42.5787 85.5005 +47.8324 -42.7664 85.8775 +46.0728 -42.1095 84.5583 +45.3759 -42.4078 85.1573 +44.0368 -42.0979 84.535 +43.211 -42.2676 84.8758 +41.6092 -41.6603 83.6564 +41.3104 -42.352 85.0454 +39.7374 -41.7315 83.7992 +39.2633 -42.2551 84.8508 +37.9851 -41.9103 84.1583 +37.1632 -42.0564 84.4518 +36.231 -42.0746 84.4882 +35.3009 -42.0887 84.5165 +34.2704 -41.973 84.2843 +33.5476 -42.2308 84.802 +32.3289 -41.8539 84.0451 +31.7939 -42.3585 85.0584 +30.7781 -42.2262 84.7927 +29.8601 -42.2168 84.7739 +28.7694 -41.9477 84.2335 +28.2027 -42.4427 85.2274 +27.04 -42.0366 84.412 +26.2963 -42.269 84.8787 +25.3125 -42.1113 84.5621 +24.4872 -42.2082 84.7566 +23.4664 -41.9559 84.2498 +22.901 -42.5224 85.3874 +21.7528 -42.0017 84.3419 +21.0379 -42.3024 84.9456 +20.209 -42.3826 85.1067 +19.3786 -42.4596 85.2614 +18.3367 -42.052 84.4429 +17.6586 -42.4724 85.287 +16.5313 -41.7932 83.9231 +15.8116 -42.1197 84.5788 +14.9395 -42.0475 84.4338 +14.1601 -42.2363 84.8129 +13.2075 -41.8924 84.1225 +12.5436 -42.4726 85.2875 +11.602 -42.1216 84.5826 +10.8449 -42.4308 85.2036 +9.95111 -42.2054 84.7509 +9.21078 -42.6419 85.6274 +8.21879 -41.8767 84.091 +7.44577 -42.1738 84.6874 +6.64082 -42.3345 85.0102 +5.79351 -42.2252 84.7908 +4.96668 -42.2461 84.8328 +4.15257 -42.3975 85.1367 +3.31196 -42.2784 84.8975 +2.49205 -42.4233 85.1886 +1.64576 -42.0303 84.3992 +0.828148 -42.3025 84.946 +8.88178e-15 -42.0367 84.4121 +-0.828148 -42.3025 84.946 +-1.65623 -42.2977 84.9362 +-2.50775 -42.6907 85.7255 +-3.31196 -42.2784 84.8975 +-4.19182 -42.7983 85.9415 +-4.96668 -42.2461 84.8328 +-5.86676 -42.7592 85.863 +-6.64082 -42.3345 85.0102 +-7.51638 -42.5737 85.4905 +-8.29723 -42.2764 84.8934 +-9.23953 -42.775 85.8947 +-10.0765 -42.7374 85.8192 +-10.8788 -42.5637 85.4705 +-11.7482 -42.6525 85.6487 +-12.648 -42.8261 85.9974 +-13.3745 -42.4222 85.1863 +-14.2636 -42.5449 85.4326 +-15.0334 -42.3116 84.9643 +-16.0756 -42.8231 85.9913 +-16.7397 -42.32 84.981 +-17.6586 -42.4724 85.287 +-18.4131 -42.227 84.7944 +-19.5979 -42.9401 86.2262 +-20.1466 -42.2518 84.844 +-21.1894 -42.607 85.5574 +-22.1127 -42.6967 85.7375 +-23.0411 -42.7824 85.9096 +-23.7809 -42.5182 85.379 +-24.8377 -42.8124 85.9699 +-25.5454 -42.4989 85.3403 +-26.7506 -42.9993 86.3451 +-27.4535 -42.6794 85.7027 +-28.5435 -42.9556 86.2574 +-29.4711 -42.9708 86.2879 +-30.3713 -42.9396 86.2252 +-31.2107 -42.8198 85.9846 +-32.3333 -43.0772 86.5016 +-33.1754 -42.9498 86.2457 +-34.282 -43.1553 86.6583 +-35.1255 -43.0202 86.3872 +-36.2815 -43.2577 86.8641 +-36.7686 -42.6988 85.7418 +-38.2994 -43.3422 87.0336 +-38.8092 -42.8196 85.9842 +-40.6792 -43.779 87.9107 +-41.1831 -43.2497 86.848 +-42.387 -43.4558 87.2618 +-42.748 -42.8006 85.946 +-44.4966 -43.525 87.4008 +-45.1356 -43.1483 86.6444 +-46.9688 -43.8965 88.1468 +-47.4318 -43.3515 87.0524 +-48.8587 -43.684 87.72 +-49.3034 -43.1348 86.6171 +-51.1617 -43.8112 87.9755 +-51.7827 -43.4137 87.1773 +-53.2986 -43.7591 87.8709 +-54.1532 -43.5501 87.4511 +-56.0378 -44.1526 88.6609 +-56.6 -43.7013 87.7547 +-58.2147 -44.0556 88.4661 +-58.9204 -43.7128 87.7778 +-60.5576 -44.052 88.4591 +-61.0997 -43.5879 87.5271 +-63.079 -44.1382 88.632 +-63.8862 -43.8537 88.0608 +-66.7292 -44.9418 90.2458 +-66.9354 -44.2369 88.8304 +-69.668 -45.1874 90.739 +-70.3778 -44.8049 89.971 +-72.2975 -45.1825 90.7292 +-73.1793 -44.8999 90.1616 +-75.7209 -45.6167 91.601 +-76.25 -45.1067 90.577 +-78.0432 -45.339 91.0434 +-78.5584 -44.8228 90.0068 +-80.9892 -45.3876 91.1409 +-81.6229 -44.9324 90.227 +-83.3899 -45.0947 90.5528 +-84.6551 -44.9735 90.3093 +-86.7013 -45.2525 90.8697 +-86.9934 -44.6106 89.5807 +-88.9899 -44.8384 90.0381 +-89.5297 -44.3248 89.0067 +-92.691 -45.092 90.5474 +-94.184 -45.0234 90.4096 +-96.9203 -45.5284 91.4238 +-97.3911 -44.957 90.2762 +-99.7394 -45.2445 90.8536 +-101.682 -45.3274 91.0201 +-104.063 -45.5864 91.5402 +-104.736 -45.0867 90.5367 +-108.008 -45.6903 91.7487 +-108.679 -45.1772 90.7184 +-111.329 -45.4754 91.3173 +-112.661 -45.2195 90.8035 +-115.639 -45.6069 91.5813 +-115.999 -44.9503 90.2628 +-119.384 -45.4527 91.2716 +-120.729 -45.1584 90.6808 +-110.034 -40.434 81.1939 +-107.402 -38.7701 77.8526 +-98.2956 -34.8542 69.9894 +-98.5801 -34.3334 68.9434 +-98.6932 -33.7586 67.7892 +-99.51 -33.4271 67.1235 +-98.7136 -32.5614 65.3851 +-98.781 -31.9927 64.2433 +-98.508 -31.3225 62.8974 +-98.4621 -30.7335 61.7148 +-99.1424 -30.3746 60.994 +-99.07 -29.7884 59.8168 +-98.8989 -29.1804 58.5959 +-98.7115 -28.576 57.3823 +-98.6768 -28.0233 56.2725 +-98.628 -27.473 55.1674 +-98.9915 -27.0417 54.3013 +-99.5171 -26.6556 53.526 +-99.1735 -26.0412 52.2923 +-99.2465 -25.543 51.2918 +-98.9594 -24.9584 50.1179 +-99.4443 -24.5725 49.343 +-99.3063 -24.0358 48.2652 +-98.9784 -23.4602 47.1095 +-99.4339 -23.0743 46.3345 +-99.0799 -22.5044 45.1902 +-99.5167 -22.1182 44.4146 +-99.2269 -21.5739 43.3216 +-98.8331 -21.0143 42.198 +-99.2407 -20.629 41.4243 +-98.8218 -20.0758 40.3135 +-99.3024 -19.7088 39.5764 +-98.8591 -19.1617 38.4779 +-99.2304 -18.7764 37.7042 +-99.5018 -18.3727 36.8934 +-99.6723 -17.9515 36.0476 +-99.1825 -17.416 34.9724 +-98.8662 -16.9177 33.9718 +-99.1936 -16.5325 33.1982 +-98.7617 -16.024 32.1771 +-98.3175 -15.5202 31.1654 +-99.374 -15.2532 30.6293 +-98.9102 -14.7529 29.6247 +-99.1952 -14.3676 28.851 +-99.4727 -13.9811 28.075 +-98.4994 -13.4242 26.9567 +-98.7584 -13.0406 26.1862 +-99.5867 -12.7296 25.5617 +-99.2539 -12.2703 24.6394 +-98.9108 -11.8144 23.7241 +-98.4606 -11.3511 22.7936 +-98.6791 -10.9677 22.0237 +-97.9177 -10.4793 21.043 +-96.6575 -9.94754 19.9752 +-90.9908 -8.99228 18.057 +-62.0146 -5.87604 11.7994 +-56.0517 -5.08354 10.208 +-52.2226 -4.52507 9.08661 +-57.1271 -4.71983 9.4777 +-57.1188 -4.48968 9.01554 +-17.4573 -1.30226 2.61502 +-17.5809 -1.24128 2.49256 +-17.0111 -1.13331 2.27574 +-14.854 -0.930602 1.8687 +-10.311 -0.605128 1.21513 +-12.9031 -0.706243 1.41818 +-12.2209 -0.620699 1.2464 +-14.9178 -0.698946 1.40352 +-14.1346 -0.606706 1.2183 +-13.1498 -0.512847 1.02983 +-15.0535 -0.528124 1.0605 +-15.6618 -0.488205 0.980344 +-16.07 -0.438145 0.879821 +-15.1792 -0.354618 0.712094 +-3273.18 -63.7059 127.925 +-3274.3 -50.9705 102.352 +-3275.18 -38.2313 76.7707 +-3276.2 -25.4923 51.19 +-3276.58 -12.7466 25.5959 +95 -1.77636e-15 -1.7053e-13 +94.9964 -0.362847 0.745398 +95.0855 -0.726428 1.4923 +95.0674 -1.08958 2.23832 +95.0421 -1.45264 2.98416 +94.9096 -1.81368 3.72585 +95.7686 -2.19673 4.51275 +95.6213 -2.55975 5.25852 +95.6664 -2.92793 6.01487 +95.6044 -3.29321 6.76526 +95.5351 -3.65824 7.51515 +95.558 -4.02718 8.27307 +95.673 -4.40114 9.0413 +95.8797 -4.78127 9.82219 +95.88 -5.15264 10.5851 +95.9719 -5.53005 11.3604 +95.7589 -5.89031 12.1005 +95.6378 -6.25586 12.8515 +95.4107 -6.61406 13.5873 +95.1766 -6.97099 14.3205 +94.837 -7.31903 15.0355 +95.6707 -7.76074 15.9429 +95.5123 -8.12585 16.693 +95.3467 -8.49035 17.4418 +96.0541 -8.93608 18.3575 +95.8723 -9.30264 19.1105 +95.6831 -9.66846 19.862 +95.4867 -10.0335 20.6119 +96.1563 -10.4932 21.5562 +95.9434 -10.86 22.3099 +95.7232 -11.2261 23.0618 +95.4958 -11.5912 23.8119 +96.1262 -12.0641 24.7834 +95.882 -12.4308 25.5367 +96.3955 -12.8989 26.4984 +96.23 -13.2798 27.2807 +95.8665 -13.6333 28.0069 +96.4445 -14.1239 29.0148 +96.1592 -14.4917 29.7705 +95.7724 -14.8439 30.4938 +96.4125 -15.3588 31.5517 +97.0392 -15.8797 32.6218 +96.7189 -16.2497 33.3819 +97.2286 -16.7629 34.4362 +96.8907 -17.1336 35.1977 +96.6378 -17.5198 35.991 +96.2848 -17.8882 36.7479 +96.7498 -18.4124 37.8246 +96.4704 -18.799 38.6189 +96.1829 -19.1849 39.4117 +96.5218 -19.6995 40.4688 +96.2156 -20.0863 41.2633 +96.4406 -20.5873 42.2926 +96.0265 -20.9548 43.0477 +96.4069 -21.4997 44.1669 +96.7729 -22.049 45.2953 +96.3296 -22.4177 46.0528 +96.582 -22.9518 47.1501 +96.9079 -23.5109 48.2985 +96.4354 -23.8801 49.057 +96.6484 -24.4226 50.1715 +96.1578 -24.7908 50.9279 +96.3456 -25.3375 52.0509 +96.6041 -25.9103 53.2277 +96.8471 -26.487 54.4125 +96.231 -26.8324 55.122 +96.4471 -27.4135 56.3157 +96.6474 -27.9982 57.5169 +96.8316 -28.5866 58.7255 +96.1755 -28.9305 59.4322 +96.1684 -29.4725 60.5456 +96.3099 -30.0674 61.7677 +96.4348 -30.6657 62.9967 +96.5432 -31.2671 64.2323 +96.3953 -31.7927 65.312 +96.3131 -32.3462 66.449 +95.4281 -32.632 67.0361 +94.6173 -32.9407 67.6704 +94.8118 -33.6039 69.0326 +94.8327 -34.2153 70.2886 +94.7597 -34.8012 71.4924 +94.7466 -35.4177 72.7587 +94.5651 -35.9792 73.9123 +94.5182 -36.6 75.1877 +94.3051 -37.1647 76.3476 +94.9613 -38.0852 78.2387 +94.4178 -38.536 79.1648 +94.8064 -39.3772 80.8929 +94.5932 -39.9811 82.1334 +94.4344 -40.617 83.4397 +94.328 -41.2856 84.8132 +93.8518 -41.8004 85.8707 +91.6254 -41.5275 85.3103 +90.9316 -41.9394 86.1565 +88.5234 -41.5489 85.3542 +87.9618 -42.0145 86.3107 +85.8495 -41.7309 85.728 +84.7491 -41.9261 86.129 +82.9915 -41.7857 85.8407 +82.415 -42.2342 86.762 +81.2484 -42.3798 87.061 +79.8278 -42.3845 87.0708 +78.1616 -42.2456 86.7854 +77.6898 -42.7481 87.8176 +75.357 -42.2154 86.7234 +75.0603 -42.8142 87.9534 +72.3983 -42.0506 86.3848 +71.9141 -42.5366 87.3832 +69.8289 -42.066 86.4165 +70.1489 -43.0438 88.4252 +69.5175 -43.4535 89.2667 +68.9883 -43.934 90.2538 +66.8795 -43.3973 89.1514 +65.9565 -43.6146 89.5978 +64.5942 -43.5345 89.4332 +63.7775 -43.8167 90.0128 +61.8946 -43.3532 89.0607 +61.5503 -43.9611 90.3096 +59.3324 -43.2191 88.7853 +58.8745 -43.7458 89.8672 +57.15 -43.3246 89.002 +56.3333 -43.5793 89.5252 +55.0259 -43.4483 89.256 +54.5392 -43.9646 90.3168 +52.8625 -43.5142 89.3915 +51.9467 -43.6756 89.7231 +50.0752 -43.0144 88.3647 +48.8587 -42.8907 88.1106 +47.0811 -42.2495 86.7935 +46.1077 -42.3092 86.9162 +44.4172 -41.6904 85.6448 +43.7087 -41.9779 86.2355 +42.5853 -41.8634 86.0002 +41.749 -42.0244 86.3311 +40.3625 -41.6183 85.4967 +39.646 -41.8921 86.0593 +38.4346 -41.6362 85.5335 +37.9695 -42.1886 86.6684 +36.7686 -41.9234 86.1236 +36.1764 -42.3492 86.9982 +34.6808 -41.7043 85.6735 +34.2486 -42.3303 86.9594 +32.5243 -41.3421 84.9294 +32.1747 -42.0874 86.4604 +30.8708 -41.5843 85.4268 +30.4014 -42.2015 86.6949 +29.2956 -41.9393 86.1562 +28.6287 -42.3014 86.9001 +27.4535 -41.9043 86.0843 +26.6971 -42.1341 86.5563 +25.7007 -41.9808 86.2414 +25.013 -42.3316 86.962 +23.8051 -41.7885 85.8464 +23.2512 -42.3885 87.079 +22.2702 -42.2198 86.7325 +21.4708 -42.3888 87.0795 +20.3338 -41.8698 86.0133 +19.6776 -42.3319 86.9626 +18.6611 -42.0187 86.3193 +17.8226 -42.0884 86.4625 +16.896 -41.9394 86.1563 +16.2407 -42.4771 87.2611 +15.2211 -42.062 86.4083 +14.5444 -42.5947 87.5027 +13.458 -41.9118 86.0997 +12.7263 -42.3088 86.9153 +11.7848 -42.0083 86.2978 +11.0373 -42.3996 87.1017 +10.0452 -41.8307 85.9331 +9.31621 -42.3467 86.9931 +8.40181 -42.0319 86.3464 +7.64976 -42.5423 87.3949 +6.74545 -42.2206 86.7341 +5.93392 -42.4632 87.2325 +5.04519 -42.1346 86.5574 +4.2398 -42.5021 87.3123 +3.37478 -42.298 86.893 +2.55225 -42.6593 87.6352 +1.67194 -41.9234 86.1236 +0.850837 -42.6723 87.6619 +7.99361e-15 -41.9298 86.1367 +-0.843856 -42.3221 86.9426 +-1.68241 -42.186 86.663 +-2.5444 -42.528 87.3655 +-3.37478 -42.298 86.893 +-4.25289 -42.6333 87.5818 +-5.06089 -42.2657 86.8268 +-5.95223 -42.5943 87.5017 +-6.78033 -42.4389 87.1826 +-7.62622 -42.4114 87.1261 +-8.45411 -42.2935 86.8838 +-9.45998 -43.0002 88.3356 +-10.1288 -42.1789 86.6485 +-11.0826 -42.5735 87.459 +-11.8701 -42.3124 86.9225 +-12.7785 -42.4824 87.2718 +-13.5555 -42.2152 86.723 +-14.6627 -42.941 88.214 +-15.2367 -42.1052 86.4971 +-16.3727 -42.8225 87.9705 +-17.1391 -42.5428 87.3959 +-18.0049 -42.5188 87.3466 +-18.7565 -42.2336 86.7607 +-19.877 -42.7608 87.8437 +-20.5417 -42.2979 86.8929 +-21.579 -42.6024 87.5184 +-22.4276 -42.5184 87.3458 +-23.578 -42.9844 88.3031 +-24.1196 -42.3406 86.9805 +-25.4136 -43.0096 88.3549 +-25.9078 -42.319 86.9362 +-27.3385 -43.1463 88.6357 +-27.8394 -42.4933 87.2942 +-29.1684 -43.0988 88.5381 +-29.7927 -42.6509 87.618 +-31.093 -43.1616 88.6671 +-31.9524 -43.0412 88.4198 +-32.968 -43.125 88.592 +-33.6637 -42.7906 87.9049 +-34.8161 -43.0317 88.4003 +-35.9463 -43.2261 88.7996 +-37.0169 -43.3332 89.0196 +-37.4495 -42.6998 87.7184 +-38.8491 -43.166 88.6761 +-39.5585 -42.8536 88.0344 +-41.0619 -43.3883 89.1329 +-41.7301 -43.0284 88.3934 +-43.1446 -43.4293 89.217 +-43.8055 -43.0629 88.4644 +-45.4089 -43.6109 89.5901 +-46.2767 -43.4357 89.2303 +-47.7006 -43.7707 89.9184 +-48.0016 -43.0756 88.4905 +-49.6618 -43.5957 89.559 +-50.1206 -43.0534 88.4449 +-52.1776 -43.8696 90.1216 +-52.2522 -43.0118 88.3594 +-54.1098 -43.6183 89.6055 +-54.9774 -43.41 89.1775 +-56.7272 -43.8841 90.1513 +-57.95 -43.9309 90.2475 +-59.6865 -44.3493 91.1071 +-59.5384 -43.3691 89.0935 +-61.7593 -44.1103 90.6162 +-62.3185 -43.6501 89.6707 +-65.1207 -44.7393 91.9082 +-65.8469 -44.3786 91.1673 +-68.2194 -45.1109 92.6716 +-68.7807 -44.6312 91.6861 +-71.0273 -45.2321 92.9206 +-72.0986 -45.0667 92.5808 +-74.4461 -45.6807 93.8422 +-74.8251 -45.0759 92.5996 +-76.9701 -45.5271 93.5266 +-77.5138 -45.0216 92.4882 +-79.7477 -45.4877 93.4457 +-80.4054 -45.0435 92.5331 +-82.2342 -45.2488 92.9548 +-82.5039 -44.5927 91.607 +-84.7256 -44.9848 92.4126 +-85.6193 -44.6596 91.7446 +-87.8054 -44.9966 92.4369 +-88.9616 -44.7918 92.0161 +-90.9115 -44.9748 92.3919 +-91.8047 -44.6255 91.6744 +-94.9204 -45.338 93.1382 +-96.0254 -45.0702 92.588 +-98.7789 -45.5586 93.5914 +-99.4751 -45.0851 92.6185 +-102.263 -45.5464 93.5662 +-103.379 -45.247 92.9512 +-105.989 -45.5866 93.6489 +-107.325 -45.3625 93.1886 +-109.314 -45.4028 93.2713 +-110.873 -45.2523 92.962 +-113.983 -45.714 93.9106 +-114.444 -45.1013 92.6518 +-107.85 -41.7623 85.7926 +-112.527 -42.8132 87.9515 +-110.183 -41.188 84.6127 +-113.758 -41.7784 85.8256 +-100.851 -36.3868 74.7496 +-99.0084 -35.0912 72.0881 +-98.8434 -34.412 70.6929 +-98.7377 -33.7637 69.3611 +-98.7725 -33.1722 68.1458 +-99.4301 -32.7937 67.3682 +-99.4371 -32.2044 66.1577 +-98.7001 -31.386 64.4765 +-99.4035 -31.0332 63.7518 +-98.4621 -30.1754 61.9896 +-99.06 -29.7982 61.2146 +-99.07 -29.2474 60.0831 +-98.8989 -28.6505 58.8568 +-98.7954 -28.0809 57.6869 +-98.5925 -27.4909 56.4747 +-99.2216 -27.1365 55.7466 +-99.6736 -26.7336 54.919 +-98.9171 -26.0137 53.4402 +-99.5182 -25.6572 52.7077 +-99.2465 -25.0791 51.5202 +-98.9594 -24.5051 50.3411 +-99.6192 -24.1686 49.6498 +-99.3063 -23.5993 48.4801 +-98.9784 -23.0342 47.3193 +-98.6356 -22.4733 46.1671 +-99.0799 -22.0957 45.3914 +-98.8008 -21.5602 44.2913 +-99.2269 -21.1821 43.5145 +-99.6454 -20.8023 42.7342 +-99.2407 -20.2544 41.6088 +-98.8218 -19.7113 40.493 +-99.211 -19.3331 39.716 +-98.8591 -18.8138 38.6492 +-99.2304 -18.4355 37.8721 +-99.317 -18.0055 36.9889 +-99.0232 -17.5107 35.9724 +-99.1825 -17.0998 35.1281 +-98.9595 -16.6262 34.1553 +-99.2873 -16.2476 33.3775 +-98.7617 -15.733 32.3204 +-99.0716 -15.3552 31.5443 +-98.523 -14.848 30.5023 +-98.9102 -14.485 29.7566 +-99.1952 -14.1067 28.9794 +-98.6143 -13.6088 27.9567 +-98.4994 -13.1805 27.0767 +-98.7584 -12.8037 26.3028 +-98.6255 -12.3778 25.4278 +-99.0612 -12.024 24.701 +-98.5244 -11.5546 23.7366 +-98.4606 -11.1449 22.8951 +-98.485 -10.7473 22.0782 +-98.6955 -10.3707 21.3046 +-97.6319 -9.86537 20.2665 +-96.7509 -9.3879 19.2856 +-90.4787 -8.41739 17.2919 +-76.5321 -6.81495 14 +-59.1921 -5.03587 10.3452 +-62.1417 -5.0409 10.3556 +-62.9292 -4.85655 9.97684 +-18.9367 -1.38697 2.84926 +-17.9759 -1.24613 2.55992 +-18.2968 -1.19682 2.45865 +-649.319 -39.9409 82.0509 +-653.164 -37.6365 77.3169 +-3251.88 -174.758 359.006 +-3255.24 -162.331 333.477 +-15.614 -0.718278 1.47556 +-14.1346 -0.595688 1.22373 +-12.054 -0.461569 0.948205 +-13.9568 -0.480762 0.987632 +-11.7713 -0.360266 0.740098 +-3270.19 -87.5418 179.838 +-12.9822 -0.297784 0.611739 +-3273.18 -62.549 128.495 +-3274.3 -50.0449 102.807 +-3275.58 -37.5416 77.122 +-3276.2 -25.0293 51.4179 +-3276.58 -12.5151 25.7099 +94.1 0 -2.27374e-13 +94.9964 -0.356119 0.748635 +94.9855 -0.712211 1.49721 +94.9674 -1.06825 2.24568 +94.9421 -1.4242 2.99397 +94.9096 -1.78005 3.74204 +95.7686 -2.156 4.53235 +96.6194 -2.53852 5.33649 +95.5666 -2.87065 6.03469 +96.6013 -3.26585 6.8655 +95.6347 -3.59415 7.55565 +95.6576 -3.95664 8.31766 +95.7725 -4.32405 9.09005 +95.979 -4.69747 9.87506 +95.88 -5.0571 10.6311 +95.8727 -5.42194 11.398 +95.7589 -5.78109 12.1531 +95.6378 -6.13987 12.9073 +96.3984 -6.55861 13.7875 +96.1628 -6.91261 14.5317 +95.8218 -7.25794 15.2577 +95.5724 -7.60903 15.9957 +95.5123 -7.97519 16.7655 +95.3467 -8.33293 17.5175 +95.1738 -8.69003 18.2682 +95.8723 -9.13016 19.1935 +95.878 -9.50852 19.9889 +95.6812 -9.86755 20.7436 +95.4771 -10.2259 21.4969 +95.9434 -10.6587 22.4068 +95.7232 -11.0179 23.162 +96.363 -11.4796 24.1325 +96.1262 -11.8404 24.891 +95.882 -12.2003 25.6476 +96.3955 -12.6598 26.6135 +96.1347 -13.0206 27.372 +96.8176 -13.5132 28.4076 +96.5393 -13.8757 29.1695 +96.2538 -14.237 29.9291 +95.8666 -14.583 30.6564 +96.4125 -15.074 31.6887 +97.0392 -15.5853 32.7635 +96.7189 -15.9484 33.5269 +96.3913 -16.3104 34.2878 +96.8907 -16.816 35.3506 +96.5454 -17.1785 36.1128 +96.2848 -17.5566 36.9075 +96.8415 -18.0881 38.0249 +96.4704 -18.4504 38.7866 +96.1829 -18.8292 39.5829 +96.6124 -19.3524 40.6827 +96.2156 -19.7138 41.4426 +96.5305 -20.2244 42.5159 +96.0265 -20.5663 43.2346 +96.4069 -21.101 44.3587 +96.8616 -21.6599 45.5337 +97.1242 -22.1836 46.6345 +96.582 -22.5263 47.3549 +96.9079 -23.0749 48.5083 +97.1317 -23.6066 49.6259 +96.6484 -23.9698 50.3894 +96.9333 -24.5274 51.5616 +97.1171 -25.0668 52.6956 +96.6041 -25.4299 53.4589 +95.999 -25.7683 54.1703 +96.231 -26.3349 55.3614 +96.4471 -26.9052 56.5603 +96.564 -27.4554 57.7169 +96.0855 -27.8404 58.5262 +96.1755 -28.3941 59.6903 +96.1684 -28.9261 60.8085 +96.3099 -29.51 62.036 +96.4348 -30.0971 63.2703 +95.8197 -30.4575 64.0278 +96.555 -31.2549 65.7043 +96.4718 -31.7988 66.8476 +96.7677 -32.4765 68.2724 +96.026 -32.8113 68.9761 +94.9672 -33.0349 69.4461 +94.2925 -33.3896 70.1919 +94.6831 -34.1283 71.7448 +94.7466 -34.761 73.0747 +94.7161 -35.3685 74.3518 +94.5931 -35.9499 75.5741 +94.3051 -36.4756 76.6792 +94.4452 -37.1759 78.1515 +94.1984 -37.7337 79.3239 +94.0085 -38.3219 80.5605 +94.1616 -39.0608 82.1138 +95.005 -40.1047 84.3084 +94.5402 -40.6112 85.3732 +94.7629 -41.4237 87.0811 +93.1537 -41.4374 87.11 +92.5149 -41.8785 88.0372 +90.3648 -41.6268 87.5081 +89.8535 -42.1223 88.5498 +87.4554 -41.7233 87.7109 +86.6044 -42.0495 88.3968 +84.566 -41.7891 87.8492 +83.7139 -42.1044 88.5122 +81.8911 -41.9231 88.1309 +81.6088 -42.5267 89.4 +79.1685 -41.9965 88.2853 +79.4329 -42.8968 90.1779 +77.0193 -42.3466 89.0213 +76.5822 -42.8723 90.1265 +74.926 -42.7118 89.7889 +73.877 -42.8874 90.1582 +70.6518 -41.7726 87.8146 +71.1942 -42.8752 90.1325 +70.3778 -43.1756 90.7641 +70.0078 -43.7564 91.985 +68.3334 -43.5184 91.4847 +67.3915 -43.7371 91.9444 +65.629 -43.4119 91.2608 +65.1744 -43.9459 92.3833 +63.3783 -43.5696 91.5922 +62.9088 -44.0984 92.7038 +61.135 -43.7066 91.8803 +60.7523 -44.3041 93.1364 +58.5 -43.5257 91.5001 +57.6628 -43.7809 92.0365 +56.2864 -43.6194 91.6969 +55.3981 -43.829 92.1376 +53.6137 -43.3144 91.0558 +53.3781 -44.0468 92.5955 +50.7561 -42.791 89.9554 +50.5096 -43.518 91.4838 +48.0016 -42.277 88.8749 +47.2701 -42.5716 89.4944 +45.3469 -41.7739 87.8173 +44.7869 -42.2159 88.7465 +43.3581 -41.8328 87.9411 +42.9453 -42.4271 89.1905 +41.4175 -41.9142 88.1123 +40.5644 -42.0679 88.4354 +39.2213 -41.7006 87.6632 +38.8491 -42.3656 89.0613 +37.1986 -41.6273 87.5092 +36.6667 -42.1273 88.5603 +35.4333 -41.8192 87.9125 +34.7827 -42.1933 88.699 +33.3056 -41.5504 87.3476 +32.9362 -42.2847 88.8912 +31.7051 -41.9163 88.1168 +31.0629 -42.3204 88.9662 +29.7342 -41.7779 87.8258 +29.14 -42.2585 88.836 +27.9496 -41.8706 88.0206 +27.4187 -42.4705 89.2818 +26.089 -41.8248 87.9243 +25.4636 -42.2953 88.9134 +24.3132 -41.889 88.0592 +23.578 -42.1874 88.6866 +22.5176 -41.8974 88.077 +21.8604 -42.3577 89.0446 +20.708 -41.8498 87.9769 +20.0365 -42.3047 88.9331 +18.8901 -41.7457 87.758 +18.2053 -42.195 88.7027 +17.1912 -41.8809 88.0424 +16.4883 -42.3251 88.976 +15.5339 -42.1307 88.5675 +14.7662 -42.4422 89.2224 +13.7781 -42.1131 88.5305 +13.0396 -42.5465 89.4414 +11.9919 -41.9542 88.1963 +11.2071 -42.2536 88.8258 +10.2542 -41.9095 88.1025 +9.48873 -42.3312 88.9889 +8.57613 -42.1084 88.5206 +7.79099 -42.5244 89.395 +6.86404 -42.1663 88.6422 +6.04381 -42.4477 89.2337 +5.18126 -42.4687 89.278 +4.30523 -42.3578 89.0448 +3.39223 -41.7284 87.7216 +2.59152 -42.5124 89.3699 +1.70161 -41.8763 88.0326 +0.863927 -42.5254 89.3971 +1.24345e-14 -42.1404 88.5878 +-0.863927 -42.5254 89.3971 +-1.71732 -42.2628 88.8452 +-2.58366 -42.3836 89.0991 +-3.43411 -42.2435 88.8046 +-4.35758 -42.8728 90.1274 +-5.18126 -42.4687 89.278 +-6.08043 -42.7049 89.7746 +-6.90589 -42.4234 89.1827 +-7.81453 -42.6529 89.6651 +-8.62842 -42.3652 89.0604 +-9.69001 -43.2293 90.877 +-10.3274 -42.2086 88.7312 +-11.343 -42.7658 89.9025 +-12.0407 -42.1248 88.5549 +-13.1962 -43.0575 90.5158 +-13.8199 -42.2407 88.7987 +-14.8696 -42.7396 89.8475 +-15.5965 -42.3004 88.9242 +-16.6038 -42.6216 89.5995 +-17.3127 -42.177 88.6648 +-18.4969 -42.8708 90.1233 +-19.1954 -42.4203 89.1763 +-20.1561 -42.5572 89.4641 +-21.0199 -42.4801 89.3018 +-22.0552 -42.7352 89.8381 +-22.7426 -42.316 88.957 +-23.7881 -42.5633 89.4768 +-24.5551 -42.3058 88.9355 +-25.8893 -43.0021 90.3993 +-26.7619 -42.9036 90.1922 +-27.873 -43.1744 90.7614 +-28.5009 -42.6965 89.7568 +-29.5092 -42.7939 89.9617 +-30.4944 -42.846 90.0711 +-31.7545 -43.2628 90.9474 +-32.385 -42.8151 90.0062 +-33.9199 -43.5477 91.5461 +-34.5102 -43.0532 90.5067 +-35.8509 -43.4892 91.4233 +-36.2541 -42.7879 89.949 +-37.7524 -43.3745 91.1822 +-38.2737 -42.8304 90.0384 +-39.9853 -43.6048 91.6662 +-40.5324 -43.0945 90.5934 +-42.0569 -43.6155 91.6888 +-42.6288 -43.14 90.6892 +-44.0219 -43.4905 91.426 +-44.9037 -43.3238 91.0757 +-46.3212 -43.6623 91.7872 +-47.0374 -43.3311 91.091 +-48.82 -43.9673 92.4284 +-48.9661 -43.1262 90.6603 +-50.5096 -43.518 91.4838 +-51.3009 -43.2504 90.9212 +-53.2396 -43.9325 92.3553 +-53.7075 -43.39 91.2147 +-55.3981 -43.829 92.1376 +-56.2864 -43.6194 91.6969 +-58.2537 -44.2294 92.9793 +-58.65 -43.6374 91.7349 +-60.7016 -44.2672 93.0587 +-61.4955 -43.9643 92.4221 +-63.1701 -44.2813 93.0885 +-63.5903 -43.7152 91.8983 +-66.8938 -45.1053 94.8205 +-67.8076 -44.8527 94.2896 +-69.9304 -45.3849 95.4084 +-70.8497 -45.1211 94.854 +-73.293 -45.8097 96.3015 +-73.7046 -45.2165 95.0544 +-76.2463 -45.9176 96.5282 +-76.4121 -45.1783 94.9741 +-78.2787 -45.4429 95.5303 +-78.8378 -44.9416 94.4765 +-80.9653 -45.3261 95.2847 +-81.5751 -44.8514 94.2869 +-84.0395 -45.3845 95.4075 +-84.5807 -44.8673 94.3203 +-86.6975 -45.1783 94.9741 +-87.2263 -44.6542 93.8724 +-89.1043 -44.8157 94.2119 +-89.7489 -44.3501 93.233 +-93.6945 -45.4919 95.6333 +-94.0129 -44.8518 94.2878 +-97.3525 -45.6379 95.9403 +-97.8668 -45.0825 94.7727 +-100.637 -45.5554 95.7669 +-100.934 -44.8982 94.3853 +-104.365 -45.6212 95.9051 +-105.076 -45.137 94.8874 +-108.343 -45.735 96.1444 +-109.052 -45.2376 95.0987 +-112.143 -45.7144 96.1011 +-112.702 -45.1456 94.9054 +-115.753 -45.5632 95.7832 +-116.674 -45.1276 94.8675 +-104.404 -39.6786 83.4127 +-103.999 -38.8348 81.6388 +-101.362 -37.1881 78.1771 +-106.25 -38.2978 80.5098 +-98.305 -34.8105 73.1788 +-98.2312 -34.1703 71.833 +-99.3912 -33.9612 71.3935 +-98.7377 -33.1377 69.6623 +-99.4865 -32.7925 68.9366 +-99.51 -32.2115 67.7152 +-98.794 -31.4028 66.0152 +-99.4282 -31.0313 65.2342 +-98.6708 -30.2333 63.5567 +-98.4621 -29.6159 62.2588 +-99.06 -29.2457 61.4805 +-99.07 -28.7051 60.3441 +-98.8989 -28.1192 59.1124 +-98.7954 -27.5603 57.9374 +-99.2672 -27.1658 57.1082 +-99.052 -26.5878 55.893 +-98.9063 -26.0359 54.7328 +-99.5171 -25.6863 53.9978 +-98.7427 -24.9852 52.5241 +-99.2465 -24.6141 51.7439 +-98.9594 -24.0508 50.5597 +-99.4443 -23.6789 49.7779 +-99.3063 -23.1617 48.6907 +-98.9784 -22.6071 47.5248 +-98.6356 -22.0567 46.3676 +-99.0799 -21.6861 45.5886 +-99.5167 -21.3138 44.8061 +-99.2269 -20.7893 43.7035 +-99.6454 -20.4166 42.9198 +-99.2407 -19.8789 41.7895 +-98.8218 -19.3458 40.6688 +-99.3024 -18.9921 39.9253 +-98.8591 -18.4649 38.8171 +-99.1384 -18.0769 38.0013 +-99.5018 -17.7045 37.2186 +-99.6723 -17.2987 36.3654 +-99.3686 -16.8142 35.3469 +-98.8662 -16.3025 34.2713 +-99.1936 -15.9313 33.4909 +-98.7617 -15.4413 32.4608 +-98.2232 -14.9415 31.41 +-98.6176 -14.5867 30.6642 +-98.9102 -14.2164 29.8859 +-99.1952 -13.8451 29.1053 +-99.4727 -13.4727 28.3224 +-98.8819 -12.9863 27.2999 +-98.7584 -12.5663 26.417 +-98.7216 -12.1601 25.5631 +-98.6758 -11.7552 24.7118 +-98.9108 -11.3848 23.9332 +-98.6542 -10.9598 23.0398 +-98.582 -10.5584 22.196 +-98.5011 -10.1584 21.355 +-97.8268 -9.70178 20.3951 +-97.532 -9.2882 19.5257 +-97.5213 -8.90438 18.7188 +-99.6583 -8.70974 18.3097 +-78.5302 -6.55719 13.7846 +-71.581 -5.69892 11.9803 +-18.4159 -1.39489 2.93236 +-3231.56 -232.3 488.342 +-18.2722 -1.24318 2.61342 +-16.5166 -1.06035 2.22907 +-648.031 -39.1227 82.2439 +-654.056 -36.9891 77.7587 +-659.646 -34.7924 73.1408 +-3255.24 -159.321 334.925 +-3258.35 -147.112 309.26 +-3261.61 -134.909 283.606 +-3263.83 -122.662 257.86 +-3266.2 -110.422 232.131 +-3268.32 -98.1742 206.382 +-3270.59 -85.9295 180.641 +-3271.81 -73.6568 154.842 +-3273.58 -61.397 129.069 +-3274.7 -49.123 103.267 +-3275.58 -36.8456 77.457 +-3276.2 -24.5653 51.6413 +-3276.58 -12.2831 25.8216 +95.1 -1.77636e-15 -1.7053e-13 +94.9964 -0.349349 0.751818 +94.9855 -0.698673 1.50358 +94.9674 -1.04794 2.25523 +95.7416 -1.4089 3.03202 +95.8087 -1.76276 3.79355 +95.7686 -2.11501 4.55162 +95.7211 -2.46711 5.30934 +95.6664 -2.81902 6.06668 +95.7041 -3.17401 6.83065 +95.6347 -3.52583 7.58778 +95.7571 -3.88546 8.36171 +95.9714 -4.25066 9.14765 +96.0784 -4.61298 9.92738 +95.9792 -4.96611 10.6873 +95.8727 -5.31887 11.4465 +95.7589 -5.6712 12.2047 +95.6378 -6.02315 12.9621 +96.3984 -6.43393 13.8462 +96.1628 -6.78121 14.5935 +96.0188 -7.1346 15.354 +95.6707 -7.47205 16.0803 +95.5123 -7.82358 16.8368 +95.3467 -8.17453 17.592 +95.1738 -8.52484 18.3459 +95.8723 -8.9566 19.2751 +95.6831 -9.30881 20.033 +95.6812 -9.67998 20.8318 +95.4771 -10.0315 21.5882 +95.2657 -10.3822 22.343 +95.6267 -10.7976 23.2369 +95.4958 -11.1601 24.017 +96.03 -11.6038 24.9719 +95.882 -11.9684 25.7566 +95.5348 -12.3082 26.4879 +96.1347 -12.7731 27.4884 +96.7224 -13.2433 28.5004 +96.4445 -13.5985 29.2648 +96.0647 -13.9389 29.9973 +96.715 -14.4324 31.0592 +96.4125 -14.7875 31.8234 +97.0392 -15.289 32.9028 +96.7189 -15.6453 33.6695 +97.2286 -16.1394 34.7328 +96.8907 -16.4963 35.5009 +96.5454 -16.852 36.2663 +96.2848 -17.2228 37.0644 +96.8415 -17.7443 38.1866 +96.4704 -18.0997 38.9515 +96.0919 -18.4538 39.7135 +96.5218 -18.9667 40.8174 +96.1253 -19.3209 41.5797 +96.5305 -19.84 42.6967 +96.0265 -20.1754 43.4185 +96.3178 -20.6808 44.5062 +96.8616 -21.2482 45.7273 +96.3296 -21.5838 46.4495 +96.582 -22.0981 47.5562 +96.9079 -22.6363 48.7145 +96.4354 -22.9918 49.4795 +96.6484 -23.5141 50.6036 +96.9333 -24.0611 51.7808 +96.3456 -24.395 52.4993 +96.6041 -24.9465 53.6862 +96.8471 -25.5018 54.8812 +96.9057 -26.0154 55.9866 +96.4471 -26.3938 56.8008 +96.564 -26.9335 57.9623 +96.7487 -27.4996 59.1807 +96.1755 -27.8544 59.9441 +96.2504 -28.4003 61.119 +96.3913 -28.9734 62.3524 +96.4348 -29.525 63.5393 +95.8197 -29.8785 64.3001 +96.555 -30.6608 65.9837 +96.6304 -31.2456 67.2421 +96.5313 -31.7813 68.3951 +96.5738 -32.3712 69.6646 +95.045 -32.4334 69.7984 +95.8358 -33.291 71.6439 +94.2235 -33.3171 71.7002 +94.8226 -34.1276 73.4444 +94.7161 -34.6961 74.6679 +94.5182 -35.2386 75.8353 +94.3794 -35.8104 77.0659 +94.5927 -36.5262 78.6063 +94.2715 -37.0451 79.723 +94.0085 -37.5934 80.903 +94.5932 -38.4939 82.8408 +94.4344 -39.1061 84.1584 +94.328 -39.7498 85.5437 +94.833 -40.6663 87.516 +93.6399 -40.8619 87.9369 +94.3046 -41.8772 90.1219 +92.0698 -41.6059 89.5382 +91.7452 -42.1914 90.7981 +88.9944 -41.6504 89.634 +88.7248 -42.2601 90.946 +86.6654 -42.0123 90.4128 +86.3766 -42.6179 91.7159 +83.4338 -41.9009 90.1729 +83.1354 -42.4986 91.4592 +80.9935 -42.148 90.7047 +81.5494 -43.2028 92.9746 +78.5584 -42.3718 91.1863 +78.9564 -43.3612 93.3156 +76.25 -42.6402 91.764 +76.0778 -43.3254 93.2385 +73.7083 -42.7514 92.0034 +72.9944 -43.1235 92.8041 +69.9763 -42.1132 90.6299 +70.1211 -42.9942 92.5257 +69.7873 -43.5997 93.8289 +69.4337 -44.2061 95.1339 +67.5352 -43.8235 94.3105 +67.1087 -44.3903 95.5302 +64.8091 -43.7059 94.0574 +64.3196 -44.2301 95.1856 +62.4741 -43.8146 94.2914 +62.0212 -44.3696 95.4858 +59.85 -43.6836 94.0094 +59.337 -44.1956 95.1112 +57.5469 -43.7485 94.149 +57.1159 -44.3287 95.3978 +55.3507 -43.8677 94.4057 +54.3478 -43.9946 94.6786 +52.0273 -43.0287 92.6001 +52.2051 -44.1235 94.9562 +49.5359 -42.7991 92.1058 +49.1213 -43.3979 93.3945 +46.9952 -42.4691 91.3958 +46.3212 -42.8323 92.1775 +44.2936 -41.923 90.2205 +43.7826 -42.432 91.316 +42.2771 -41.9708 90.3235 +41.5977 -42.3195 91.0738 +40.0454 -41.7675 89.8858 +39.9853 -42.7759 92.056 +38.1303 -41.8589 90.0826 +37.7524 -42.55 91.5699 +35.9805 -41.6578 89.6498 +35.951 -42.7814 92.0678 +34.5102 -42.2348 90.8915 +33.7612 -42.5201 91.5055 +32.4777 -42.1214 90.6476 +31.9951 -42.7616 92.0251 +30.3482 -41.83 90.0204 +29.6228 -42.1421 90.692 +28.4733 -41.8443 90.0511 +27.8462 -42.3128 91.0593 +26.8137 -42.1695 90.751 +26.0896 -42.5112 91.4864 +24.9905 -42.2378 90.8979 +24.3484 -42.7375 91.9734 +22.9225 -41.8401 90.0421 +22.3799 -42.5399 91.5481 +21.1862 -42.0023 90.3911 +20.6944 -42.8631 92.2437 +19.348 -41.9449 90.2676 +18.7156 -42.553 91.5762 +17.5558 -41.9563 90.2922 +17.0494 -42.9335 92.3951 +15.7686 -41.9542 90.2876 +15.0618 -42.4691 91.3958 +14.1122 -42.314 91.062 +13.3006 -42.5732 91.6198 +12.2479 -42.035 90.4616 +11.6146 -42.9575 92.4468 +10.5365 -42.2445 90.9124 +9.80502 -42.9107 92.3462 +8.68071 -41.8117 89.981 +7.95575 -42.5981 91.6733 +7.01053 -42.2474 90.9187 +6.22085 -42.8606 92.2382 +5.25976 -42.2925 91.0158 +4.44482 -42.8998 92.3226 +3.49344 -42.1564 90.7229 +2.65434 -42.7152 91.9254 +1.73826 -41.965 90.311 +0.889234 -42.939 92.4069 +9.76996e-15 -41.9714 90.3247 +-0.889234 -42.939 92.4069 +-1.75397 -42.3444 91.1273 +-2.66743 -42.9259 92.3788 +-3.48646 -42.0722 90.5416 +-4.46226 -43.0683 92.6853 +-5.27546 -42.419 91.2878 +-6.19643 -42.6924 91.8764 +-7.0454 -42.4577 91.3713 +-8.02637 -42.9765 92.4876 +-8.7853 -42.3153 91.0648 +-9.80502 -42.9107 92.3462 +-10.6515 -42.7055 91.9045 +-11.7279 -43.3764 93.3483 +-12.4185 -42.6204 91.7213 +-13.4834 -43.1581 92.8785 +-14.14 -42.3975 91.2416 +-15.3131 -43.1775 92.9202 +-15.8937 -42.2871 91.004 +-17.1484 -43.183 92.932 +-17.6947 -42.2883 91.0067 +-18.8796 -42.9259 92.3788 +-19.5579 -42.4 91.247 +-20.6545 -42.7805 92.0659 +-21.3733 -42.3734 91.1899 +-22.7262 -43.1981 92.9647 +-23.3049 -42.5382 91.5445 +-24.5818 -43.1476 92.8558 +-25.1357 -42.483 91.4257 +-26.6655 -43.4497 93.5061 +-27.3313 -42.9836 92.5031 +-28.7014 -43.6124 93.8561 +-29.1073 -42.7759 92.056 +-30.6737 -43.6372 93.9096 +-31.1376 -42.9179 92.3616 +-32.7168 -43.7261 94.101 +-33.1884 -43.043 92.6309 +-34.6179 -43.5989 93.8271 +-35.2265 -43.1113 92.7778 +-36.5519 -43.4965 93.6067 +-37.3144 -43.2019 92.9728 +-38.6629 -43.5765 93.779 +-39.2413 -43.0784 92.7071 +-40.9382 -43.7952 94.2497 +-41.6937 -43.4868 93.5859 +-43.4346 -44.188 95.0949 +-43.6447 -43.3283 93.2449 +-45.6169 -44.2099 95.1421 +-45.9206 -43.4628 93.5342 +-47.7727 -44.1745 95.0659 +-48.2207 -43.577 93.7799 +-49.8532 -44.0443 94.7857 +-50.1497 -43.3292 93.2467 +-52.339 -44.2369 95.2001 +-52.9807 -43.8172 94.2969 +-54.5787 -44.1817 95.0813 +-55.2099 -43.7561 94.1654 +-57.1159 -44.3287 95.3978 +-57.7893 -43.933 94.5462 +-59.8295 -44.5622 95.9002 +-60.05 -43.8298 94.3241 +-62.275 -44.5512 95.8766 +-62.5771 -43.8871 94.4474 +-65.8871 -45.3081 97.5054 +-66.4519 -44.8138 96.4416 +-68.8818 -45.563 98.054 +-70.2584 -45.5908 98.1139 +-72.8005 -46.3498 99.7472 +-72.8628 -45.5213 97.9643 +-75.2187 -46.1197 99.252 +-75.4827 -45.4269 97.7611 +-78.2207 -46.2111 99.4488 +-77.8815 -45.172 97.2125 +-80.658 -45.9339 98.8521 +-80.8238 -45.1981 97.2687 +-83.1568 -45.6679 98.2798 +-83.9762 -45.2942 97.4755 +-86.156 -45.6431 98.2263 +-86.5316 -45.03 96.9068 +-89.3054 -45.6528 98.2472 +-89.4118 -44.9031 96.6339 +-92.4165 -45.598 98.1293 +-92.7667 -44.9701 96.7781 +-96.4775 -45.9528 98.8929 +-96.8232 -45.3144 97.519 +-100.393 -46.1682 99.3563 +-100.322 -45.335 97.5634 +-103.529 -45.973 98.9364 +-104.06 -45.4088 97.7221 +-107.379 -46.0464 99.0942 +-107.692 -45.3814 97.6632 +-110.696 -45.8403 98.6508 +-111.857 -45.5192 97.9597 +-114.972 -45.9764 98.9437 +-114.969 -45.1783 97.2261 +-120.176 -46.405 99.866 +-120.612 -45.764 98.4866 +-104.704 -39.0361 84.0077 +-99.3953 -36.4102 78.3567 +-97.5601 -35.1128 75.5646 +-97.3642 -34.4277 74.0901 +-99.2309 -34.4704 74.1821 +-98.5421 -33.6268 72.3666 +-99.3912 -33.3156 71.697 +-99.3682 -32.7153 70.4051 +-98.6932 -31.9126 68.6775 +-98.7113 -31.3455 67.4573 +-98.7136 -30.7808 66.242 +-98.7001 -30.2185 65.0318 +-99.4035 -29.8789 64.3009 +-99.1993 -29.2705 62.9916 +-99.1424 -28.7136 61.7933 +-99.07 -28.1595 60.6006 +-98.8989 -27.5847 59.3638 +-98.7954 -27.0364 58.1837 +-99.2672 -26.6494 57.351 +-99.052 -26.0824 56.1307 +-99.2473 -25.629 55.155 +-99.0028 -25.0678 53.9472 +-98.7427 -24.5103 52.7474 +-99.2465 -24.1462 51.9639 +-98.9594 -23.5936 50.7747 +-99.4443 -23.2288 49.9896 +-99.3063 -22.7214 48.8977 +-98.9784 -22.1773 47.7268 +-99.4339 -21.8125 46.9417 +-99.0799 -21.2738 45.7824 +-99.5167 -20.9087 44.9966 +-99.2269 -20.3942 43.8893 +-98.8331 -19.8652 42.751 +-99.2407 -19.501 41.9672 +-99.6408 -19.1353 41.1802 +-98.4802 -18.4768 39.763 +-99.4093 -18.2148 39.1991 +-99.1384 -17.7332 38.1628 +-99.317 -17.3358 37.3075 +-99.0232 -16.8594 36.2823 +-99.3686 -16.4946 35.4972 +-98.8662 -15.9926 34.417 +-99.2873 -15.6432 33.665 +-98.7617 -15.1478 32.5988 +-99.0716 -14.784 31.816 +-98.6176 -14.3094 30.7946 +-98.9102 -13.9462 30.0129 +-99.1952 -13.5819 29.229 +-98.7097 -13.1153 28.2248 +-98.8819 -12.7394 27.4159 +-99.142 -12.3753 26.6324 +-99.01 -11.9638 25.7467 +-99.0612 -11.5767 24.9138 +-98.4278 -11.1139 23.9176 +-99.2351 -10.8148 23.274 +-98.582 -10.3577 22.2904 +-97.8204 -9.89641 21.2976 +-97.9242 -9.52684 20.5023 +-97.7272 -9.12988 19.648 +-98.5973 -8.83149 19.0058 +-105.538 -9.04826 19.4723 +-109.157 -8.94126 19.2421 +-120.645 -9.42263 20.278 +-159.046 -11.8178 25.4326 +-165.301 -11.6568 25.086 +-17.9759 -1.19977 2.58197 +-3240.51 -204.083 439.198 +-647.14 -38.3262 82.4799 +-653.759 -36.2695 78.0538 +-659.944 -34.1464 73.4849 +-664.998 -31.9282 68.7111 +-3258.35 -144.316 310.575 +-3261.61 -132.344 284.811 +-3264.23 -120.345 258.988 +-3266.6 -108.336 233.146 +-3268.72 -96.3198 207.285 +-3270.59 -84.296 181.409 +-3272.21 -72.2654 155.519 +-3273.58 -60.2298 129.618 +-3274.7 -48.1892 103.706 +-3275.58 -36.1452 77.7863 +-3276.2 -24.0983 51.8608 +-3276.58 -12.0496 25.9314 +95.2 5.32907e-15 -1.7053e-13 +95.0964 -0.342912 0.755735 +95.8854 -0.691568 1.52413 +95.0674 -1.02863 2.26698 +95.9415 -1.38436 3.05096 +95.8087 -1.72846 3.8093 +95.8684 -2.07602 4.57529 +95.8209 -2.42162 5.33695 +94.9681 -2.74399 6.0474 +95.9034 -3.11874 6.8733 +94.9374 -3.43201 7.56372 +94.9608 -3.77817 8.3266 +96.0708 -4.17224 9.1951 +96.0784 -4.52322 9.9686 +95.9792 -4.86948 10.7317 +95.8727 -5.21537 11.494 +95.8579 -5.56663 12.2681 +95.5389 -5.89983 13.0025 +96.3984 -6.30873 13.9037 +96.1628 -6.64925 14.6541 +96.0188 -6.99576 15.4178 +95.6707 -7.32665 16.147 +95.5123 -7.67134 16.9067 +95.5427 -8.03194 17.7014 +95.1738 -8.35895 18.4221 +95.8723 -8.78231 19.3551 +95.878 -9.14626 20.1572 +95.6812 -9.49161 20.9183 +95.4771 -9.83626 21.6779 +95.9434 -10.2526 22.5954 +95.7232 -10.5982 23.357 +96.363 -11.0423 24.3358 +95.261 -11.2868 24.8748 +95.7861 -11.7238 25.8377 +95.6305 -12.0808 26.6246 +96.1347 -12.5245 27.6025 +95.8665 -12.8707 28.3654 +96.4445 -13.3339 29.3863 +96.1592 -13.6812 30.1516 +96.715 -14.1515 31.1882 +96.4125 -14.4997 31.9556 +96.0089 -14.8323 32.6886 +96.7189 -15.3408 33.8093 +96.3913 -15.689 34.5766 +96.8907 -16.1753 35.6483 +96.5454 -16.524 36.4169 +96.1928 -16.8715 37.1827 +96.8415 -17.399 38.3452 +96.379 -17.7307 39.0762 +96.0919 -18.0947 39.8784 +96.5218 -18.5976 40.9868 +96.0351 -18.9272 41.7132 +96.5305 -19.4539 42.874 +96.0265 -19.7828 43.5987 +96.4069 -20.2971 44.7323 +95.9746 -20.644 45.4967 +96.3296 -21.1638 46.6424 +96.582 -21.6681 47.7537 +96.2082 -22.0356 48.5636 +96.4354 -22.5444 49.685 +96.6484 -23.0565 50.8137 +96.1578 -23.4042 51.5799 +96.4313 -23.9415 52.7641 +96.6041 -24.4611 53.9091 +96.7623 -24.9836 55.0608 +96.231 -25.3316 55.8276 +96.4471 -25.8801 57.0366 +96.6474 -26.4322 58.2532 +96.7487 -26.9645 59.4264 +96.1755 -27.3123 60.193 +96.2504 -27.8477 61.3728 +96.3099 -28.3857 62.5584 +96.5157 -28.9747 63.8567 +96.5432 -29.5182 65.0545 +96.555 -30.0642 66.2576 +96.4718 -30.5873 67.4105 +96.5313 -31.1629 68.6791 +95.8695 -31.5098 69.4436 +96.5215 -32.2964 71.1771 +96.3759 -32.8272 72.3469 +95.4491 -33.0937 72.9344 +95.583 -33.7318 74.3407 +94.0368 -33.777 74.4403 +94.5182 -34.5529 76.1502 +94.0078 -34.9753 77.0812 +94.3715 -35.7317 78.7481 +94.4178 -36.3806 80.1782 +94.6614 -37.1179 81.8031 +93.8738 -37.4578 82.5522 +94.4344 -38.3451 84.5078 +94.328 -38.9763 85.8989 +94.2022 -39.6097 87.2948 +94.6125 -40.4829 89.2192 +94.6488 -41.2121 90.8264 +94.184 -41.7332 91.9747 +94.1097 -42.4369 93.5255 +91.5371 -42.0067 92.5775 +91.2428 -42.6137 93.9153 +88.568 -42.0993 92.7815 +88.3249 -42.7311 94.1739 +85.4265 -42.0666 92.7096 +85.4889 -42.8513 94.4389 +83.1332 -42.4195 93.4873 +83.3547 -43.2996 95.4269 +80.6517 -42.6542 94.0045 +80.9044 -43.5665 96.0152 +78.4767 -43.0315 94.8359 +78.1002 -43.6116 96.1145 +75.7067 -43.0558 94.8896 +75.143 -43.5294 95.9332 +72.3853 -42.7154 94.1393 +71.6504 -43.0769 94.9361 +70.4024 -43.1281 95.049 +70.4272 -43.9661 96.8958 +69.4959 -44.2182 97.4513 +69.634 -45.1644 99.5366 +66.7168 -44.1169 97.2282 +66.7231 -44.99 99.1523 +63.8647 -43.9186 96.7911 +63.8991 -44.8235 98.7854 +61.15 -43.7641 96.4505 +61.6022 -44.9896 99.1514 +59.2922 -44.1983 97.4076 +59.2154 -45.064 99.3154 +56.5713 -43.9624 96.8876 +56.4257 -44.788 98.707 +54.2519 -43.9954 96.9604 +54.1238 -44.8553 98.8555 +51.5524 -43.6744 96.2529 +50.2837 -43.5603 96.0015 +47.7559 -42.317 93.2614 +47.5653 -43.1269 95.0463 +45.4325 -42.1641 92.9245 +45.258 -43.0083 94.7849 +43.6447 -42.4852 93.632 +43.205 -43.0992 94.9853 +41.3566 -42.2955 93.2141 +40.645 -42.6352 93.9626 +39.0979 -42.0861 92.7524 +38.838 -42.922 94.5946 +37.0408 -42.0509 92.675 +36.7188 -42.8451 94.4252 +35.3893 -42.4678 93.5938 +34.6179 -42.7505 94.2167 +33.4356 -42.5199 93.7085 +32.5664 -42.6786 94.0582 +31.2545 -42.241 93.0939 +30.7305 -42.867 94.4735 +29.4656 -42.46 93.5765 +28.9152 -43.0823 94.9479 +27.5383 -42.4666 93.5911 +26.7656 -42.7641 94.2467 +25.6437 -42.498 93.6603 +25.072 -43.1517 95.1009 +23.6873 -42.3947 93.4326 +23.0508 -42.9629 94.6847 +21.7891 -42.3571 93.3497 +21.2127 -43.0819 94.947 +19.9777 -42.467 93.592 +19.317 -43.0657 94.9115 +18.0941 -42.4013 93.4472 +17.495 -43.1984 95.2038 +16.2535 -42.403 93.4508 +15.4165 -42.6232 93.9362 +14.3905 -42.3092 93.2441 +13.7314 -43.0967 94.9798 +12.65 -42.5703 93.8196 +11.9543 -43.3533 95.5453 +10.8919 -42.8195 94.3688 +9.99671 -42.8984 94.5427 +9.04677 -42.7269 94.1648 +8.22251 -43.1699 95.141 +7.16399 -42.3323 93.2951 +6.39789 -43.2228 95.2575 +5.41154 -42.6662 94.0309 +4.5495 -43.0558 94.8896 +3.62257 -42.8641 94.4671 +2.73026 -43.0819 94.947 +1.79236 -42.429 93.5082 +0.910178 -43.0951 94.9762 +4.44089e-15 -42.7249 94.1602 +-0.910178 -43.0951 94.9762 +-1.81156 -42.8835 94.5099 +-2.76429 -43.619 96.1308 +-3.60861 -42.6988 94.1028 +-4.57131 -43.262 95.344 +-5.45864 -43.0377 94.8496 +-6.44673 -43.5525 95.9842 +-7.24072 -42.7856 94.2941 +-8.2539 -43.3347 95.5043 +-9.13392 -43.1385 95.0718 +-10.083 -43.2686 95.3586 +-10.9232 -42.943 94.641 +-12.0901 -43.8459 96.6308 +-12.8328 -43.1856 95.1756 +-13.901 -43.6294 96.1536 +-14.6132 -42.9637 94.6866 +-15.8304 -43.7678 96.4587 +-16.4725 -42.9744 94.7102 +-17.4785 -43.1579 95.1146 +-18.3372 -42.9711 94.703 +-19.4628 -43.3909 95.6282 +-20.2067 -42.9538 94.6647 +-21.4719 -43.6083 96.1072 +-22.205 -43.1653 95.131 +-23.3755 -43.5678 96.0179 +-24.0248 -42.9988 94.764 +-25.3989 -43.7141 96.3403 +-26.1276 -43.3 95.4278 +-27.4667 -43.8843 96.7155 +-27.9525 -43.105 94.998 +-29.3962 -43.7988 96.527 +-29.9893 -43.2145 95.2393 +-31.5541 -44.0161 97.006 +-31.8978 -43.1104 95.0098 +-33.7693 -44.2545 97.5314 +-34.1773 -43.4632 95.7875 +-35.9189 -44.357 97.7572 +-36.2032 -43.4447 95.7466 +-37.7869 -44.0913 97.1717 +-38.3405 -43.5265 95.9269 +-39.9587 -44.1603 97.3238 +-40.6748 -43.7831 96.4924 +-42.4408 -44.519 98.1142 +-42.7426 -43.7132 96.3385 +-44.4678 -44.3591 97.7618 +-45.0122 -43.8165 96.5661 +-47.1321 -44.7896 98.7107 +-47.3441 -43.9384 96.8348 +-49.2656 -44.6681 98.443 +-49.4463 -43.8149 96.5625 +-51.6613 -44.7537 98.6315 +-52.21 -44.2314 97.4804 +-54.213 -44.9293 99.0185 +-54.3427 -44.069 97.1225 +-56.6566 -44.971 99.1105 +-56.7591 -44.1083 97.209 +-59.1677 -45.0276 99.2352 +-59.4861 -44.3429 97.7263 +-61.6022 -44.9896 99.1514 +-62.1 -44.4438 97.9485 +-65.0664 -45.6425 100.59 +-65.8734 -45.2999 99.8353 +-68.4473 -46.1528 101.715 +-68.7305 -45.4487 100.163 +-71.3534 -46.2792 101.994 +-72.2736 -45.9858 101.347 +-74.8427 -46.7226 102.971 +-74.9878 -45.9371 101.24 +-77.6543 -46.6866 102.891 +-77.6049 -45.7953 100.927 +-79.9628 -46.3213 102.086 +-80.6441 -45.8639 101.078 +-82.3235 -45.9701 101.312 +-82.7496 -45.3743 99.9992 +-85.7136 -46.1561 101.722 +-85.7616 -45.3569 99.961 +-88.3971 -45.9189 101.199 +-88.6712 -45.2454 99.7151 +-91.8497 -46.04 101.466 +-92.6257 -45.6119 100.523 +-95.339 -46.1247 101.653 +-96.3095 -45.7788 100.891 +-99.3267 -46.3891 102.236 +-99.4328 -45.6301 100.563 +-102.419 -46.1838 101.783 +-102.777 -45.5408 100.366 +-106.282 -46.2776 101.99 +-107.255 -45.8924 101.141 +-110.463 -46.447 102.363 +-110.662 -45.7255 100.773 +-114.405 -46.4544 102.38 +-114.735 -45.7817 100.897 +-119.106 -46.7031 102.928 +-120.088 -46.2718 101.977 +-123.199 -46.6465 102.803 +-124.105 -46.173 101.76 +-98.7873 -36.1135 79.5896 +-97.1311 -34.8884 76.8897 +-98.7767 -34.8589 76.8246 +-99.0495 -34.342 75.6855 +-99.2309 -33.7996 74.4901 +-99.2415 -33.2065 73.1829 +-99.313 -32.6416 71.938 +-98.8953 -31.9261 70.3611 +-98.6932 -31.2916 68.9627 +-98.7113 -30.7356 67.7373 +-98.7136 -30.1818 66.517 +-98.7001 -29.6305 65.3018 +-98.5894 -29.0575 64.0391 +-99.1993 -28.7009 63.2532 +-99.1424 -28.1549 62.0499 +-99.07 -27.6115 60.8523 +-98.8155 -27.0251 59.56 +-98.7115 -26.4878 58.3757 +-99.4359 -26.1752 57.6869 +-99.3064 -25.6405 56.5084 +-99.0768 -25.0871 55.2889 +-99.0028 -24.58 54.1712 +-98.7427 -24.0333 52.9664 +-99.2465 -23.6763 52.1797 +-98.9594 -23.1345 50.9855 +-99.4443 -22.7768 50.1971 +-98.5154 -22.1019 48.7097 +-98.9784 -21.7458 47.925 +-99.4339 -21.388 47.1366 +-99.0799 -20.8599 45.9725 +-98.8008 -20.3543 44.8583 +-99.2269 -19.9973 44.0715 +-99.6454 -19.6387 43.2813 +-99.2407 -19.1215 42.1414 +-99.6408 -18.7629 41.3512 +-99.211 -18.2517 40.2244 +-99.4093 -17.8603 39.3619 +-98.9543 -17.3559 38.2502 +-98.6703 -16.8877 37.2184 +-99.116 -16.5468 36.467 +-99.3686 -16.1736 35.6446 +-98.9595 -15.6962 34.5925 +-99.2873 -15.3388 33.8048 +-98.7617 -14.853 32.7342 +-99.0716 -14.4963 31.9481 +-98.6176 -14.0309 30.9224 +-98.9102 -13.6748 30.1376 +-99.1952 -13.3176 29.3504 +-99.568 -12.9719 28.5884 +-98.8819 -12.4915 27.5298 +-99.142 -12.1345 26.743 +-99.3945 -11.7766 25.9541 +-99.543 -11.4067 25.1389 +-99.2006 -10.9831 24.2055 +-98.4606 -10.5216 23.1882 +-98.388 -10.1362 22.3388 +-98.2094 -9.74242 21.4711 +-98.4114 -9.38794 20.6898 +-99.2893 -9.09531 20.0449 +-101.63 -8.92594 19.6717 +-110.144 -9.25939 20.4065 +-114.654 -9.20878 20.295 +-154.764 -11.8522 26.1207 +-163.478 -11.9107 26.2498 +-166.288 -11.4981 25.3404 +-167.808 -10.9821 24.2032 +-642.366 -39.6681 87.4235 +-647.338 -37.5919 82.8478 +-653.858 -35.5691 78.3897 +-659.944 -33.482 73.79 +-664.998 -31.3069 68.9964 +-669.413 -29.072 64.0709 +-673.585 -26.7996 59.063 +-3263.83 -117.988 260.032 +-3266.6 -106.228 234.114 +-3268.72 -94.4455 208.146 +-3270.59 -82.6557 182.163 +-3272.21 -70.8592 156.165 +-3273.58 -59.0578 130.156 +-3274.7 -47.2515 104.136 +-3275.58 -35.4418 78.1093 +-3276.2 -23.6294 52.0762 +-3276.58 -11.8151 26.039 +94.3 1.77636e-15 -2.27374e-13 +95.1964 -0.336432 0.759596 +95.0855 -0.67213 1.51753 +95.0674 -1.00813 2.27616 +95.9415 -1.35678 3.06333 +95.9086 -1.69578 3.82873 +95.8684 -2.03465 4.59383 +95.2221 -2.35853 5.3251 +95.9657 -2.71755 6.13569 +95.3053 -3.03752 6.85812 +95.2362 -3.37421 7.61829 +95.2594 -3.71453 8.38665 +96.0708 -4.0891 9.23237 +96.0784 -4.43308 10.009 +95.9792 -4.77244 10.7752 +95.8727 -5.11144 11.5406 +95.7589 -5.45003 12.3051 +95.6378 -5.78826 13.0687 +96.3984 -6.18302 13.96 +96.1628 -6.51675 14.7135 +95.8218 -6.84231 15.4485 +95.5724 -7.17329 16.1958 +95.5123 -7.51848 16.9752 +95.3467 -7.85573 17.7367 +95.9563 -8.25973 18.6488 +95.8723 -8.60731 19.4336 +95.5857 -8.93667 20.1772 +95.4867 -9.28356 20.9604 +95.283 -9.62066 21.7215 +95.8466 -10.0381 22.6641 +95.7232 -10.387 23.4517 +95.3994 -10.714 24.1901 +96.03 -11.1512 25.1772 +95.882 -11.5016 25.9684 +95.6305 -11.8401 26.7325 +96.0393 -12.2628 27.687 +96.7224 -12.7269 28.7347 +96.4445 -13.0682 29.5054 +96.0647 -13.3953 30.244 +95.7724 -13.7343 31.0094 +96.4125 -14.2108 32.0851 +96.0089 -14.5368 32.8211 +96.7189 -15.0351 33.9463 +96.3913 -15.3764 34.7167 +96.8907 -15.853 35.7928 +96.5454 -16.1948 36.5645 +96.2848 -16.5512 37.3692 +95.9245 -16.8908 38.136 +96.4704 -17.3939 39.2718 +96.0919 -17.7341 40.04 +96.6124 -18.2442 41.1916 +96.8474 -18.7069 42.2365 +96.4406 -19.0485 43.0076 +96.116 -19.4066 43.8162 +96.4069 -19.8927 44.9136 +96.7729 -20.4009 46.0611 +96.2413 -20.7231 46.7885 +96.582 -21.2363 47.9473 +96.1207 -21.5768 48.7161 +96.4354 -22.0952 49.8864 +96.6484 -22.5971 51.0197 +96.8471 -23.1022 52.1602 +97.2028 -23.6522 53.4018 +96.5189 -23.9524 54.0798 +96.8471 -24.5072 55.3324 +96.3153 -24.8486 56.103 +96.3632 -25.3424 57.218 +96.6474 -25.9055 58.4893 +96.8316 -26.4498 59.7184 +96.1755 -26.7681 60.437 +96.2504 -27.2928 61.6216 +96.3099 -27.82 62.812 +96.4348 -28.3735 64.0617 +96.5432 -28.93 65.3182 +95.9161 -29.2701 66.0861 +95.9164 -29.8052 67.2942 +96.5313 -30.5419 68.9575 +95.8695 -30.8819 69.7251 +95.8998 -31.4489 71.0053 +96.5302 -32.2245 72.7565 +96.9046 -32.9288 74.3467 +96.4955 -33.3753 75.3546 +95.0179 -33.4493 75.5218 +94.7429 -33.9448 76.6406 +94.8996 -34.6035 78.1278 +94.519 -35.0744 79.1909 +95.0028 -35.8766 81.0021 +94.1536 -36.1831 81.6941 +93.8738 -36.7113 82.8868 +94.5057 -37.6094 84.9144 +94.2573 -38.171 86.1824 +94.6928 -39.0226 88.1051 +93.9873 -39.414 88.9889 +93.8227 -40.0384 90.3986 +94.0476 -40.8424 92.214 +94.2448 -41.6508 94.039 +94.2136 -42.3736 95.6711 +92.8331 -42.4927 95.9399 +91.2578 -42.5133 95.9865 +90.0784 -42.711 96.4327 +87.612 -42.2833 95.4672 +88.224 -43.3411 97.8554 +84.9583 -42.487 95.9271 +85.2223 -43.3877 97.9606 +82.7449 -42.8895 96.836 +83.0351 -43.8226 98.9426 +80.5229 -43.2735 97.7027 +80.1226 -43.8497 99.0038 +77.8815 -43.4103 98.0118 +77.3496 -43.9145 99.1501 +75.6547 -43.755 98.7899 +74.709 -44.0206 99.3897 +71.8004 -43.1078 97.3288 +71.2551 -43.5966 98.4324 +70.4763 -43.9485 99.2269 +70.6012 -44.8791 101.328 +68.6245 -44.4742 100.414 +68.6041 -45.3368 102.361 +66.2854 -44.6746 100.866 +65.777 -45.2213 102.101 +63.45 -44.5054 100.484 +62.9317 -45.0448 101.702 +60.9891 -44.5572 100.601 +60.5514 -45.1626 101.968 +58.6839 -44.6953 100.913 +58.1342 -45.2246 102.108 +55.8862 -44.4179 100.287 +55.7747 -45.3023 102.284 +53.3936 -44.3328 100.095 +52.3071 -44.4102 100.269 +49.4463 -42.9418 96.9539 +48.6435 -43.2253 97.5939 +46.9781 -42.73 96.4757 +46.4144 -43.2285 97.6013 +44.5043 -42.4591 95.864 +44.5826 -43.5873 98.4114 +42.5178 -42.6166 96.2197 +42.1476 -43.3306 97.8317 +40.6748 -42.9106 96.8835 +39.8536 -43.1665 97.4614 +38.4089 -42.7349 96.4867 +37.7869 -43.2127 97.5656 +36.2683 -42.6555 96.3075 +35.9189 -43.4731 98.1535 +34.3936 -42.8669 96.7848 +33.5888 -43.141 97.4038 +32.3363 -42.832 96.7061 +31.4973 -43.0613 97.2236 +30.3201 -42.8207 96.6805 +29.7704 -43.4723 98.1517 +28.3407 -42.8329 96.708 +27.692 -43.3626 97.9039 +26.3937 -42.8693 96.7902 +25.8191 -43.5517 98.3309 +24.4747 -42.9309 96.9292 +23.7434 -43.3719 97.9249 +22.5168 -42.8993 96.8579 +21.751 -43.2949 97.7512 +20.5692 -42.8531 96.7537 +19.809 -43.2828 97.7238 +18.563 -42.6332 96.2572 +17.9407 -43.416 98.0246 +16.7072 -42.7178 96.4483 +16.126 -43.6966 98.6582 +14.9472 -43.0702 97.2438 +14.0577 -43.2419 97.6314 +12.9791 -42.8073 96.6503 +12.158 -43.2139 97.5683 +11.08 -42.6911 96.3879 +10.2938 -43.2933 97.7475 +9.23851 -42.7632 96.5507 +8.42651 -43.3593 97.8966 +7.36628 -42.6603 96.3184 +6.55661 -43.4124 98.0164 +5.57378 -43.0698 97.2428 +4.67164 -43.3306 97.8317 +3.70633 -42.9811 97.0426 +2.8114 -43.4784 98.1654 +1.85868 -43.1224 97.3617 +0.942466 -43.7347 98.7442 +1.06581e-14 -43.1289 97.3763 +-0.93723 -43.4917 98.1956 +-1.84996 -42.9199 96.9045 +-2.83496 -43.8428 98.9883 +-3.7168 -43.1026 97.3169 +-4.71089 -43.6946 98.6536 +-5.62088 -43.4338 98.0648 +-6.61156 -43.776 98.8374 +-7.42906 -43.024 97.1395 +-8.55989 -44.0457 99.4464 +-9.38667 -43.4488 98.0987 +-10.4855 -44.0992 99.5671 +-11.2577 -43.3759 97.9341 +-12.4524 -44.26 99.9301 +-13.1863 -43.4905 98.1928 +-14.3579 -44.1652 99.7161 +-15.0307 -43.3107 97.7869 +-16.259 -44.0571 99.472 +-16.8949 -43.1977 97.5318 +-18.2543 -44.1749 99.738 +-18.8929 -43.3909 97.9679 +-20.0459 -43.8003 98.8923 +-20.8745 -43.4893 98.1901 +-22.1498 -44.0887 99.5433 +-22.8079 -43.4541 98.1105 +-24.0464 -43.925 99.1739 +-24.8121 -43.5229 98.266 +-26.1459 -44.1028 99.5753 +-26.8775 -43.6553 98.565 +-28.2679 -44.2644 99.9401 +-28.8324 -43.576 98.3858 +-30.2514 -44.1749 99.738 +-31.0368 -43.8327 98.9654 +-32.3209 -44.1875 99.7664 +-33.0965 -43.8392 98.9801 +-34.6714 -44.5317 100.544 +-35.197 -43.8679 99.045 +-36.6804 -44.3948 100.235 +-37.4403 -44.034 99.4199 +-39.0554 -44.6633 100.841 +-39.5033 -43.9526 99.2361 +-41.3945 -44.8358 101.23 +-41.714 -44.0073 99.3595 +-43.8702 -45.1015 101.83 +-44.1661 -44.2689 99.9502 +-46.1516 -45.1213 101.875 +-46.4189 -44.2855 99.9877 +-48.5676 -45.2339 102.129 +-48.6864 -44.2834 99.9831 +-50.634 -44.9942 101.588 +-51.0945 -44.3733 100.186 +-52.9529 -44.9585 101.507 +-53.6566 -44.5511 100.587 +-55.4624 -45.0484 101.71 +-56.0678 -44.5621 100.612 +-58.2265 -45.2963 102.27 +-58.637 -44.6597 100.833 +-60.5992 -45.1983 102.049 +-61.4254 -44.8759 101.321 +-63.1287 -45.1861 102.021 +-64.25 -45.0662 101.75 +-66.792 -45.9191 103.676 +-67.779 -45.6814 103.139 +-69.5446 -45.958 103.764 +-70.9032 -45.9511 103.748 +-72.5354 -46.1086 104.104 +-73.5263 -45.8507 103.522 +-75.505 -46.1969 104.303 +-76.4976 -45.928 103.696 +-78.3906 -46.19 104.288 +-79.0388 -45.7122 103.209 +-81.2403 -46.1236 104.138 +-81.7022 -45.5396 102.819 +-83.9295 -45.9329 103.707 +-84.9161 -45.6344 103.033 +-87.1746 -46.0074 103.875 +-87.978 -45.602 102.96 +-89.8911 -45.7648 103.328 +-91.1885 -45.6024 102.961 +-93.3127 -45.8409 103.5 +-95.1326 -45.913 103.662 +-97.4822 -46.2216 104.359 +-98.8681 -46.0588 103.992 +-101.646 -46.5265 105.048 +-102.377 -46.045 103.96 +-105.189 -46.4877 104.96 +-105.573 -45.8478 103.515 +-109.173 -46.5889 105.188 +-109.061 -45.7352 103.261 +-113.127 -46.6193 105.257 +-113.632 -46.0171 103.897 +-118.257 -47.0615 106.255 +-118.331 -46.2759 104.482 +-122.806 -47.1939 106.554 +-122.941 -46.4269 104.823 +-115.089 -42.7077 96.4254 +-101.439 -36.9881 83.5117 +-98.4877 -35.2865 79.6698 +-98.716 -34.7511 78.4611 +-98.7767 -34.1643 77.136 +-99.1262 -33.6837 76.0511 +-99.2309 -33.1261 74.7921 +-98.5421 -32.3154 72.9617 +-98.6086 -31.7642 71.7173 +-98.8953 -31.2899 70.6463 +-98.7725 -30.6927 69.2979 +-98.6315 -30.0988 67.957 +-98.794 -29.6045 66.841 +-98.6192 -29.0162 65.5128 +-99.2407 -28.6666 64.7234 +-98.544 -27.9431 63.09 +-98.7303 -27.4792 62.0424 +-98.7384 -26.9707 60.8944 +-98.5653 -26.4196 59.6501 +-98.6277 -25.9379 58.5626 +-98.6768 -25.4578 57.4786 +-99.3064 -25.1296 56.7375 +-99.1621 -24.6084 55.5608 +-99.0028 -24.0902 54.3908 +-99.5182 -23.7394 53.5988 +-99.2465 -23.2046 52.3912 +-99.1335 -22.7133 51.2821 +-99.4443 -22.3229 50.4006 +-99.3063 -21.8353 49.2998 +-98.9784 -21.3125 48.1193 +-99.4339 -20.9619 47.3276 +-99.0799 -20.4442 46.1588 +-99.5167 -20.0933 45.3666 +-99.2269 -19.5988 44.2502 +-98.8331 -19.0905 43.1025 +-99.2407 -18.7405 42.3123 +-99.4588 -18.3555 41.443 +-99.211 -17.888 40.3875 +-99.5927 -17.5367 39.5943 +-99.1384 -17.0417 38.4766 +-99.5018 -16.6907 37.6842 +-99.0232 -16.2019 36.5806 +-99.3686 -15.8513 35.789 +-98.9595 -15.3834 34.7327 +-99.2873 -15.0331 33.9418 +-98.7617 -14.557 32.8668 +-99.0716 -14.2075 32.0776 +-98.6176 -13.7514 31.0478 +-98.9102 -13.4023 30.2597 +-98.3392 -12.9396 29.2151 +-99.4727 -12.7012 28.6767 +-98.8819 -12.2426 27.6413 +-99.142 -11.8927 26.8514 +-99.3945 -11.5419 26.0593 +-98.5794 -11.0712 24.9965 +-98.7176 -10.7119 24.1853 +-98.8479 -10.3525 23.3738 +-99.3583 -10.0321 22.6506 +-99.6679 -9.69007 21.8782 +-98.8011 -9.23728 20.8559 +-101.73 -9.1332 20.6209 +-106.129 -9.13539 20.6259 +-113.671 -9.36553 21.1455 +-119.759 -9.42708 21.2845 +-163.417 -12.2654 27.6928 +-163.084 -11.6452 26.2926 +-166.978 -11.3158 25.5488 +-171.166 -10.9787 24.7876 +-642.663 -38.8956 87.8185 +-648.13 -36.8879 83.2854 +-380.021 -20.2607 45.7447 +-3252.08 -161.705 365.097 +-3255.44 -150.206 339.135 +-669.711 -28.5054 64.3594 +-675.177 -26.3277 59.4427 +-683.688 -24.223 54.6908 +-3266.2 -104.099 235.034 +-3268.72 -92.5635 208.99 +-3270.59 -81.0086 182.901 +-3272.21 -69.4472 156.798 +-3273.58 -57.881 130.684 +-3274.7 -46.3099 104.558 +-3275.58 -34.7356 78.4259 +-3276.2 -23.1585 52.2872 +-3276.58 -11.5797 26.1446 +94.5 1.77636e-15 -1.7053e-13 +95.1964 -0.329564 0.7626 +95.0855 -0.65841 1.52354 +95.0674 -0.987555 2.28517 +95.9415 -1.32908 3.07545 +95.9086 -1.66116 3.84387 +95.1694 -1.97859 4.57838 +95.4217 -2.31523 5.35737 +96.2649 -2.67038 6.17917 +96.3022 -3.00664 6.95727 +96.2324 -3.33991 7.72843 +96.1553 -3.67292 8.49901 +96.1703 -4.0098 9.27853 +95.2835 -4.30665 9.96543 +95.9792 -4.67502 10.8178 +95.8727 -5.0071 11.5863 +95.7589 -5.33878 12.3538 +95.5389 -5.66423 13.1068 +96.2996 -6.05062 14.0009 +95.1766 -6.31827 14.6203 +95.8218 -6.70263 15.5097 +95.6707 -7.03407 16.2766 +95.5123 -7.365 17.0424 +95.5427 -7.7112 17.8435 +95.1738 -8.02515 18.5699 +95.8723 -8.43161 19.5104 +95.6831 -8.76317 20.2777 +95.6812 -9.11258 21.0862 +95.4771 -9.44347 21.8519 +95.9434 -9.84318 22.7768 +95.7232 -10.1749 23.5445 +96.363 -10.6013 24.5311 +96.1262 -10.9345 25.3021 +95.7861 -11.2556 26.045 +95.6305 -11.5984 26.8382 +96.1347 -12.0244 27.824 +95.8665 -12.3567 28.5931 +96.4445 -12.8014 29.6221 +96.1592 -13.1348 30.3936 +95.7724 -13.454 31.132 +96.4125 -13.9207 32.212 +96.0089 -14.24 32.951 +96.7189 -14.7282 34.0806 +97.2286 -15.1933 35.1569 +96.8907 -15.5294 35.9344 +96.5454 -15.8642 36.7091 +96.2848 -16.2133 37.517 +96.7498 -16.6883 38.6163 +96.379 -17.0226 39.3898 +96.0919 -17.3721 40.1984 +96.6124 -17.8717 41.3546 +96.1253 -18.1884 42.0874 +96.5305 -18.677 43.218 +96.116 -19.0105 43.9896 +96.4069 -19.4866 45.0913 +96.7729 -19.9844 46.2433 +96.2413 -20.3001 46.9736 +96.582 -20.8028 48.1369 +96.9079 -21.3095 49.3094 +96.4354 -21.6441 50.0837 +96.6484 -22.1358 51.2215 +96.0717 -22.4494 51.9472 +96.4313 -22.9855 53.1876 +96.6041 -23.4842 54.3417 +96.7623 -23.9859 55.5027 +96.3153 -24.3413 56.325 +96.4471 -24.8467 57.4943 +96.6474 -25.3767 58.7207 +96.0026 -25.6881 59.4413 +96.8348 -26.4014 61.092 +96.2504 -26.7356 61.8653 +96.3099 -27.2521 63.0605 +96.4348 -27.7943 64.3152 +96.5432 -28.3395 65.5766 +96.555 -28.8636 66.7894 +96.4718 -29.3658 67.9515 +95.9797 -29.7475 68.8348 +95.8695 -30.2515 70.0009 +95.8998 -30.8069 71.2861 +96.5302 -31.5667 73.0443 +96.5216 -32.1292 74.3458 +96.4195 -32.6682 75.5931 +96.15 -33.1569 76.7239 +95.5667 -33.541 77.6128 +94.528 -33.7644 78.1297 +94.5927 -34.3852 79.5661 +94.3446 -34.9007 80.7591 +94.1536 -35.4445 82.0172 +94.6651 -36.2651 83.9161 +94.4344 -36.8139 85.186 +94.3988 -37.4479 86.6532 +94.062 -37.9713 87.8644 +94.543 -38.8377 89.8691 +94.1669 -39.365 91.0891 +94.2522 -40.0956 92.7798 +94.4475 -40.8882 94.6139 +94.2136 -41.5086 96.0496 +93.827 -42.0708 97.3503 +93.1604 -42.5139 98.3756 +92.0268 -42.7444 98.909 +90.1188 -42.6051 98.5868 +89.1782 -42.9157 99.3055 +86.9091 -42.5754 98.5179 +86.7163 -43.247 100.072 +84.6535 -42.9828 99.4606 +83.3394 -43.0855 99.6984 +81.7265 -43.024 99.5561 +81.3718 -43.6242 100.945 +79.1747 -43.2303 100.033 +78.7433 -43.7932 101.336 +76.7445 -43.4794 100.61 +75.7852 -43.7432 101.22 +74.3167 -43.7079 101.139 +72.9661 -43.7321 101.195 +70.8031 -43.2509 100.081 +70.1176 -43.6619 101.032 +69.8434 -44.3403 102.602 +69.5446 -45.0198 104.174 +67.6245 -44.6469 103.311 +66.7413 -44.9476 104.007 +65.3 -44.8679 103.823 +64.7537 -45.403 105.061 +62.4435 -44.6886 103.408 +61.9352 -45.2515 104.71 +59.9985 -44.764 103.582 +59.3809 -45.2515 104.71 +57.4752 -44.7481 103.546 +57.0241 -45.3717 104.989 +55.1033 -44.8183 103.708 +53.082 -44.1483 102.158 +50.4606 -42.928 99.334 +49.6388 -43.2093 99.9848 +47.9543 -42.7273 98.8695 +47.3714 -43.2192 100.008 +45.8328 -42.8336 99.1155 +45.0036 -43.1006 99.7333 +43.7915 -42.9974 99.4946 +42.7707 -43.0736 99.6709 +41.284 -42.6642 98.7235 +40.449 -42.9173 99.3092 +39.3323 -42.8693 99.1981 +38.2876 -42.8915 99.2495 +37.0497 -42.6848 98.7713 +36.49 -43.2628 100.109 +35.2588 -43.0482 99.6121 +34.3105 -43.1684 99.8902 +33.0965 -42.9443 99.3716 +32.1505 -43.057 99.6323 +31.0368 -42.9379 99.3569 +30.0109 -42.9292 99.3367 +28.8324 -42.6864 98.7749 +28.1177 -43.1303 99.8021 +26.9501 -42.8796 99.222 +26.1459 -43.2025 99.9692 +24.9921 -42.9439 99.3707 +24.2412 -43.3771 100.373 +22.9327 -42.7999 99.0375 +22.2096 -43.3053 100.207 +21.1035 -43.0689 99.6598 +20.2099 -43.2573 100.096 +19.0492 -42.8566 99.1687 +18.1552 -43.0383 99.5892 +17.1296 -42.9038 99.278 +16.3182 -43.3144 100.228 +15.142 -42.7408 98.9007 +14.397 -43.3815 100.383 +13.2594 -42.8392 99.1284 +12.3844 -43.12 99.7783 +11.4041 -43.0427 99.5993 +10.543 -43.4362 100.51 +9.48254 -42.9967 99.4928 +8.58343 -43.2652 100.114 +7.5895 -43.0558 99.6296 +6.67871 -43.318 100.236 +5.65228 -42.7848 99.0026 +4.7327 -43.001 99.5029 +3.79707 -43.1347 99.8122 +2.87161 -43.5028 100.664 +1.89882 -43.1541 99.8572 +0.959919 -43.6353 100.971 +1.24345e-14 -43.1609 99.8728 +-0.954683 -43.3973 100.42 +-1.90406 -43.2732 100.133 +-2.86376 -43.3842 100.39 +-3.7866 -43.0157 99.5368 +-4.8243 -43.8333 101.429 +-5.70985 -43.2204 100.011 +-6.69702 -43.4366 100.511 +-7.65229 -43.412 100.454 +-8.66188 -43.6607 101.029 +-9.61328 -43.5893 100.864 +-10.6485 -43.8706 101.515 +-11.5295 -43.5163 100.695 +-12.5542 -43.7111 101.146 +-13.4422 -43.4299 100.495 +-14.5406 -43.8143 101.385 +-15.4621 -43.6445 100.992 +-16.5547 -43.9424 101.681 +-17.3799 -43.5306 100.728 +-18.4358 -43.7036 101.129 +-19.2923 -43.4037 100.435 +-20.465 -43.8035 101.36 +-21.3134 -43.4973 100.651 +-22.5685 -44.0047 101.825 +-23.2237 -43.343 100.294 +-24.501 -43.842 101.449 +-25.3295 -43.5235 100.712 +-26.7061 -44.1284 102.112 +-27.313 -43.4568 100.558 +-28.7436 -44.0904 102.024 +-29.4536 -43.606 100.903 +-30.7859 -44.0376 101.901 +-31.6156 -43.7389 101.21 +-33.0878 -44.3121 102.537 +-34.0321 -44.1582 102.181 +-35.3029 -44.4168 102.779 +-36.1241 -44.1046 102.057 +-37.4102 -44.3538 102.633 +-38.2217 -44.0352 101.896 +-39.7564 -44.537 103.057 +-40.9398 -44.6211 103.252 +-42.0249 -44.5894 103.178 +-42.7891 -44.2201 102.324 +-44.3466 -44.6608 103.344 +-45.4023 -44.5791 103.154 +-46.6491 -44.6767 103.38 +-47.8255 -44.6961 103.425 +-49.1259 -44.8199 103.712 +-50.1506 -44.6842 103.398 +-51.2976 -44.6533 103.326 +-52.4469 -44.618 103.244 +-53.9 -44.8286 103.732 +-54.8402 -44.6045 103.213 +-56.2655 -44.7679 103.591 +-57.6114 -44.8544 103.792 +-58.8268 -44.829 103.733 +-59.8107 -44.6239 103.258 +-61.7443 -45.1123 104.388 +-62.5889 -44.7925 103.648 +-64.8029 -45.4375 105.141 +-65.65 -45.1083 104.379 +-67.7564 -45.6311 105.589 +-69.3241 -45.7692 105.908 +-70.3283 -45.5272 105.348 +-71.5391 -45.4165 105.092 +-73.2877 -45.6359 105.6 +-74.5066 -45.5133 105.316 +-76.2777 -45.7168 105.787 +-77.3923 -45.5169 105.325 +-78.9004 -45.5415 105.381 +-80.4154 -45.5589 105.422 +-81.4146 -45.2789 104.774 +-83.2304 -45.4447 105.157 +-85.1191 -45.6331 105.593 +-85.8188 -45.1781 104.541 +-88.6357 -45.8235 106.034 +-89.2709 -45.3277 104.887 +-92.3189 -46.0413 106.538 +-93.1394 -45.6276 105.581 +-96.6203 -46.4971 107.593 +-97.2538 -45.9786 106.393 +-100.275 -46.5753 107.774 +-101.099 -46.1365 106.758 +-103.899 -46.5868 107.8 +-104.719 -46.1369 106.759 +-107.622 -46.5915 107.811 +-108.642 -46.2175 106.946 +-111.169 -46.4725 107.536 +-112.535 -46.2286 106.971 +-115.72 -46.7145 108.096 +-116.319 -46.1437 106.775 +-120.254 -46.8792 108.477 +-121.784 -46.6542 107.956 +-125.345 -47.1866 109.188 +-125.793 -46.5344 107.679 +-98.7952 -35.9128 83.1011 +-98.0208 -35.012 81.0166 +-98.3379 -34.5136 79.8634 +-98.6405 -34.0157 78.7112 +-98.8528 -33.4926 77.5007 +-99.1262 -32.9961 76.3519 +-99.1538 -32.4247 75.0295 +-98.4644 -31.6308 73.1925 +-99.313 -31.3381 72.5153 +-98.8953 -30.6512 70.9258 +-98.7725 -30.0662 69.5721 +-98.7113 -29.5082 68.281 +-98.7136 -28.9766 67.0508 +-98.6192 -28.4239 65.7719 +-98.5894 -27.8971 64.553 +-99.0355 -27.5093 63.6555 +-98.8127 -26.9407 62.3398 +-98.6555 -26.398 61.084 +-98.8989 -25.9678 60.0886 +-98.7954 -25.4516 58.8942 +-98.7611 -24.9594 57.7553 +-99.3064 -24.6166 56.9619 +-99.1621 -24.1061 55.7806 +-99.0028 -23.5984 54.6059 +-99.5182 -23.2548 53.8108 +-99.2465 -22.7309 52.5985 +-98.9594 -22.2106 51.3947 +-98.832 -21.7326 50.2884 +-99.3063 -21.3896 49.4948 +-99.7731 -21.045 48.6974 +-99.4339 -20.534 47.5149 +-99.0799 -20.0269 46.3414 +-98.8008 -19.5415 45.2183 +-99.2269 -19.1987 44.4252 +-99.6454 -18.8545 43.6286 +-99.0594 -18.3244 42.4021 +-99.4588 -17.9808 41.6069 +-99.0283 -17.4906 40.4726 +-99.5927 -17.1787 39.7509 +-99.2304 -16.7093 38.6647 +-98.6703 -16.2133 37.5171 +-99.0232 -15.8711 36.7253 +-99.3686 -15.5277 35.9306 +-98.8662 -15.0552 34.8373 +-99.2873 -14.7263 34.0761 +-98.7617 -14.2599 32.9969 +-99.0716 -13.9174 32.2045 +-99.374 -13.5739 31.4096 +-98.9102 -13.1287 30.3794 +-99.1952 -12.7858 29.5859 +-99.4727 -12.4419 28.7902 +-98.8819 -11.9927 27.7507 +-99.142 -11.6499 26.9576 +-98.4332 -11.197 25.9094 +-98.5794 -10.8452 25.0953 +-98.8142 -10.5035 24.3047 +-98.0734 -10.0617 23.2824 +-98.8731 -9.77935 22.6291 +-99.3762 -9.46449 21.9005 +-99.0934 -9.07549 21.0004 +-104.561 -9.19577 21.2787 +-109.553 -9.23758 21.3754 +-117.297 -9.46695 21.9062 +-128.986 -9.94616 23.0151 +-163.22 -12.0006 27.769 +-164.857 -11.5315 26.6836 +-167.866 -11.1437 25.7862 +-3236.16 -203.331 470.502 +-642.069 -38.0664 88.0844 +-3244.61 -180.895 418.585 +-380.913 -19.8938 46.0335 +-378.557 -18.439 42.6672 +-3255.44 -147.14 340.476 +-670.606 -27.9608 64.7002 +-675.078 -25.7865 59.669 +-680.999 -23.6352 54.6911 +-685.281 -21.3951 49.5075 +-3268.32 -90.6629 209.791 +-3270.59 -79.3549 183.625 +-3272.21 -68.0296 157.418 +-3273.58 -56.6994 131.201 +-3274.7 -45.3646 104.972 +-3275.58 -34.0265 78.7361 +-3276.2 -22.6858 52.4941 +-3276.58 -11.3433 26.248 +94.5 1.77636e-15 -1.7053e-13 +95.1964 -0.32267 0.765543 +95.1855 -0.645315 1.53103 +95.0674 -0.966895 2.29399 +95.0421 -1.28908 3.05837 +95.1094 -1.61286 3.82655 +95.1694 -1.93719 4.59605 +95.5215 -2.26917 5.38367 +95.3671 -2.59013 6.14516 +95.405 -2.91632 6.91905 +96.2324 -3.27004 7.75825 +95.359 -3.5663 8.46115 +96.2697 -3.92999 9.32401 +96.1778 -4.25613 10.0978 +95.9792 -4.57722 10.8596 +95.8727 -4.90235 11.631 +95.7589 -5.22709 12.4014 +95.5389 -5.54574 13.1574 +96.3984 -5.9301 14.0693 +96.1628 -6.25018 14.8287 +95.8218 -6.56241 15.5695 +95.6707 -6.88692 16.3394 +95.4142 -7.20351 17.0905 +95.3467 -7.53438 17.8755 +95.9563 -7.92185 18.7948 +95.1889 -8.19637 19.4461 +95.6831 -8.57984 20.3559 +94.8061 -8.84034 20.974 +96.3504 -9.33046 22.1368 +95.9434 -9.63726 22.8647 +95.7232 -9.96208 23.6353 +96.363 -10.3795 24.6257 +96.3184 -10.7272 25.4506 +95.882 -11.0312 26.1717 +95.5348 -11.3444 26.9148 +96.23 -11.7845 27.9591 +96.7224 -12.2063 28.9597 +96.5393 -12.546 29.7656 +96.1592 -12.8601 30.5108 +96.715 -13.3022 31.5598 +96.3185 -13.6162 32.3048 +96.0089 -13.9421 33.0781 +96.7189 -14.4201 34.2121 +96.3913 -14.7474 34.9885 +96.0562 -15.0735 35.7623 +96.5454 -15.5323 36.8508 +96.2848 -15.8741 37.6618 +96.7498 -16.3392 38.7653 +96.4704 -16.6823 39.5793 +96.0919 -17.0087 40.3536 +96.4311 -17.465 41.4363 +96.1253 -17.8079 42.2498 +96.5305 -18.2863 43.3848 +96.8319 -18.7514 44.4883 +96.4069 -19.0789 45.2653 +95.9746 -19.4049 46.0388 +96.3296 -19.8936 47.1981 +96.6699 -20.3862 48.3667 +96.9079 -20.8637 49.4996 +96.4354 -21.1913 50.277 +96.6484 -21.6727 51.4192 +96.1578 -21.9995 52.1944 +96.4313 -22.5046 53.3928 +96.6041 -22.9929 54.5514 +96.8471 -23.5047 55.7657 +96.231 -23.8112 56.4928 +96.4471 -24.3269 57.7162 +96.6474 -24.8458 58.9473 +96.8316 -25.3679 60.186 +96.7524 -25.8271 61.2755 +96.2504 -26.1763 62.1041 +96.3913 -26.7045 63.3573 +96.4348 -27.2129 64.5633 +95.8197 -27.5387 65.3364 +95.9161 -28.0728 66.6035 +96.4718 -28.7515 68.2137 +95.9797 -29.1252 69.1004 +96.5738 -29.8363 70.7874 +95.8998 -30.1624 71.5612 +95.8358 -30.684 72.7986 +95.8322 -31.2323 74.0996 +96.4195 -31.9848 75.8848 +96.0745 -32.4378 76.9595 +95.9412 -32.968 78.2176 +94.751 -33.1361 78.6162 +94.3715 -33.5871 79.6864 +94.2715 -34.1441 81.0079 +94.2987 -34.7564 82.4606 +94.0177 -35.2636 83.6638 +94.577 -36.0982 85.6439 +94.2573 -36.6096 86.8572 +94.062 -37.177 88.2034 +94.4041 -37.9694 90.0834 +94.1669 -38.5414 91.4406 +94.0476 -39.1717 92.936 +93.9746 -39.8324 94.5035 +94.2805 -40.669 96.4884 +94.3571 -41.4233 98.2779 +93.8164 -41.9173 99.45 +92.8061 -42.2044 100.131 +90.8902 -42.0711 99.815 +89.7506 -42.2875 100.328 +88.2307 -42.3185 100.402 +87.2766 -42.6161 101.108 +85.3922 -42.451 100.716 +84.2526 -42.6464 101.18 +83.1708 -42.8681 101.706 +82.2045 -43.1486 102.371 +80.409 -42.9858 101.985 +79.4402 -43.2565 102.627 +77.777 -43.1423 102.356 +76.5781 -43.2763 102.674 +75.3233 -43.3731 102.904 +74.6771 -43.8213 103.967 +70.9665 -42.444 100.7 +71.031 -43.3051 102.743 +70.5323 -43.8407 104.013 +70.3283 -44.5748 105.755 +68.6546 -44.3786 105.29 +67.6549 -44.6097 105.838 +66.2 -44.5348 105.66 +65.2461 -44.7911 106.268 +63.8009 -44.7049 106.064 +62.7464 -44.8851 106.491 +60.8905 -44.4788 105.527 +59.7964 -44.6148 105.85 +57.9292 -44.158 104.766 +57.8719 -45.0828 106.96 +55.5855 -44.2648 105.02 +53.5986 -43.6453 103.55 +51.6017 -42.9804 101.972 +50.2608 -42.8355 101.628 +48.6864 -42.472 100.766 +47.7303 -42.6355 101.154 +46.6533 -42.6883 101.279 +45.5776 -42.7372 101.395 +44.1287 -42.4219 100.647 +43.4304 -42.8227 101.598 +41.9291 -42.4246 100.654 +40.9743 -42.5652 100.987 +40.0164 -42.7023 101.312 +39.1555 -42.9462 101.891 +37.6031 -42.416 100.633 +37.0295 -42.9839 101.98 +35.6915 -42.6646 101.223 +34.7315 -42.7838 101.506 +33.6227 -42.7143 101.341 +32.5766 -42.7151 101.343 +31.3675 -42.4879 100.804 +30.4919 -42.7046 101.318 +29.2207 -42.3562 100.491 +28.4181 -42.6794 101.258 +27.2404 -42.4347 100.677 +26.496 -42.8654 101.699 +25.3295 -42.613 101.1 +24.501 -42.9248 101.84 +23.4109 -42.778 101.492 +22.389 -42.7419 101.406 +21.2561 -42.4727 100.768 +20.4104 -42.7726 101.479 +19.3444 -42.6106 101.095 +18.3863 -42.6743 101.246 +17.4112 -42.6968 101.299 +16.5103 -42.9077 101.8 +15.4343 -42.6545 101.199 +14.5015 -42.7823 101.502 +13.4422 -42.5213 100.883 +12.5203 -42.6809 101.262 +11.4668 -42.3741 100.534 +10.6485 -42.9528 101.907 +9.61328 -42.6774 101.253 +8.69327 -42.9019 101.786 +7.69414 -42.7361 101.393 +6.78249 -43.0709 102.187 +5.77266 -42.7819 101.501 +4.81122 -42.7998 101.544 +3.84941 -42.8145 101.579 +2.90041 -43.02 102.066 +1.925 -42.834 101.625 +0.969518 -43.1497 102.374 +6.21725e-15 -42.724 101.364 +-0.969518 -43.1497 102.374 +-1.925 -42.834 101.625 +-2.91611 -43.253 102.619 +-3.85988 -42.9311 101.855 +-4.8592 -43.2266 102.556 +-5.81452 -43.0922 102.238 +-6.84354 -43.4585 103.107 +-7.72902 -42.9299 101.852 +-8.79526 -43.4053 102.98 +-9.77016 -43.3738 102.906 +-10.7731 -43.4554 103.099 +-11.7385 -43.3785 102.917 +-12.792 -43.6073 103.459 +-13.6616 -43.215 102.529 +-14.7756 -43.5909 103.421 +-15.7126 -43.4235 103.024 +-16.7468 -43.5222 103.258 +-17.5989 -43.1571 102.391 +-18.7329 -43.4787 103.154 +-19.5354 -43.0313 102.093 +-20.6655 -43.307 102.747 +-21.6377 -43.2356 102.578 +-22.708 -43.3505 102.85 +-23.598 -43.1202 102.304 +-24.7607 -43.3797 102.919 +-25.6669 -43.1808 102.448 +-26.9163 -43.5451 103.312 +-27.821 -43.3393 102.824 +-29.0691 -43.657 103.577 +-29.9195 -43.3692 102.895 +-31.1333 -43.603 103.449 +-32.222 -43.6449 103.549 +-33.3434 -43.7203 103.728 +-34.1783 -43.42 103.015 +-35.8441 -44.1545 104.758 +-36.6185 -43.7727 103.852 +-37.9496 -44.0524 104.515 +-38.938 -43.9219 104.206 +-40.2237 -44.1176 104.67 +-41.3502 -44.1258 104.69 +-42.3401 -43.984 104.353 +-43.5059 -44.0201 104.439 +-45.0064 -44.3767 105.285 +-45.6645 -43.8986 104.151 +-47.1466 -44.2085 104.886 +-48.1381 -44.0469 104.503 +-49.5246 -44.2384 104.957 +-50.476 -44.0333 104.47 +-51.8781 -44.2139 104.899 +-53.0809 -44.2124 104.895 +-54.5458 -44.4167 105.38 +-55.6293 -44.2998 105.102 +-56.801 -44.2485 104.981 +-58.2016 -44.3658 105.259 +-59.427 -44.339 105.196 +-60.6088 -44.2734 105.04 +-62.2215 -44.5099 105.601 +-62.7344 -43.9576 104.291 +-64.8029 -44.487 105.547 +-66.1 -44.4676 105.501 +-68.3654 -45.0781 106.949 +-69.3241 -44.8117 106.317 +-72.0003 -45.6347 108.27 +-72.7579 -45.2242 107.296 +-75.3294 -45.9256 108.96 +-75.7048 -45.2778 107.423 +-78.2095 -45.8942 108.885 +-78.7344 -45.3372 107.564 +-81.0527 -45.8048 108.673 +-81.3331 -45.115 107.037 +-82.8663 -45.122 107.053 +-84.1708 -44.9966 106.756 +-86.6062 -45.4592 107.853 +-87.6243 -45.1636 107.152 +-89.0009 -45.0498 106.882 +-90.3791 -44.9301 106.598 +-93.813 -45.8075 108.68 +-94.8386 -45.4879 107.921 +-97.638 -46.0037 109.145 +-99.2464 -45.9388 108.991 +-101.444 -46.1322 109.45 +-102.476 -45.787 108.631 +-104.893 -46.0487 109.252 +-106.593 -45.98 109.089 +-109.108 -46.2468 109.722 +-109.938 -45.7901 108.638 +-113.234 -46.3455 109.956 +-114.271 -45.9598 109.041 +-116.842 -46.1804 109.564 +-119.289 -46.3319 109.924 +-121.681 -46.443 110.187 +-123.439 -46.2985 109.844 +-126.941 -46.7875 111.005 +-102.682 -37.1903 88.2351 +-97.9842 -34.8729 82.7369 +-98.6896 -34.5134 81.8841 +-98.4877 -33.8431 80.2936 +-99.3953 -33.559 79.6196 +-98.8528 -32.7919 77.7998 +-99.0495 -32.2809 76.5873 +-98.5365 -31.5487 74.8501 +-99.3193 -31.2379 74.1128 +-99.313 -30.6825 72.7951 +-99.3682 -30.1534 71.5398 +-98.7725 -29.4372 69.8405 +-98.7912 -28.9143 68.5999 +-98.794 -28.3935 67.3644 +-98.6192 -27.8293 66.0257 +-99.0779 -27.4488 65.1231 +-98.8717 -26.8892 63.7954 +-98.7303 -26.3551 62.5282 +-98.6555 -25.8457 61.3197 +-98.8989 -25.4246 60.3205 +-99.5502 -25.1096 59.5732 +-99.4359 -24.6042 58.3742 +-99.2216 -24.0811 57.133 +-99.1621 -23.6018 55.9959 +-99.0028 -23.1047 54.8166 +-98.7427 -22.5909 53.5975 +-99.2465 -22.2553 52.8014 +-98.9594 -21.746 51.593 +-99.6192 -21.4474 50.8845 +-99.3063 -20.9421 49.6858 +-98.9784 -20.4407 48.496 +-99.4339 -20.1044 47.6982 +-99.0799 -19.6079 46.5203 +-99.5167 -19.2713 45.7218 +-99.2269 -18.7971 44.5967 +-98.6526 -18.2761 43.3607 +-99.0594 -17.9411 42.5657 +-98.6398 -17.4596 41.4235 +-99.211 -17.1563 40.7037 +-98.7674 -16.68 39.5737 +-99.1384 -16.3445 38.7779 +-98.8551 -15.9039 37.7324 +-99.116 -15.5536 36.9015 +-99.3686 -15.2029 36.0693 +-98.8662 -14.7403 34.9717 +-99.2873 -14.4182 34.2076 +-98.7617 -13.9616 33.1242 +-99.0716 -13.6263 32.3288 +-99.374 -13.29 31.5308 +-98.9102 -12.8541 30.4966 +-99.1952 -12.5183 29.7001 +-98.7097 -12.0882 28.6796 +-98.8819 -11.7418 27.8578 +-99.142 -11.4062 27.0616 +-98.4332 -10.9627 26.0094 +-98.6758 -10.6287 25.2168 +-98.9108 -10.2938 24.4224 +-99.0415 -9.94845 23.603 +-99.0672 -9.59357 22.761 +-99.1817 -9.24836 21.942 +-100.263 -8.9905 21.3302 +-106.416 -9.1631 21.7397 +-111.509 -9.20583 21.8411 +-121.021 -9.56315 22.6889 +-149.404 -11.2796 26.7611 +-164.204 -11.8203 28.044 +-164.364 -11.2566 26.7066 +-168.26 -10.9362 25.9465 +-3236.16 -199.078 472.317 +-642.366 -37.2873 88.4651 +-3244.61 -177.111 420.201 +-381.111 -19.4877 46.2352 +-380.244 -18.1337 43.0227 +-381.333 -16.875 40.0364 +-670.208 -27.3596 64.9114 +-675.078 -25.247 59.8993 +-680.003 -23.1069 54.8218 +-687.275 -21.0085 49.8432 +-690.115 -18.7432 44.4688 +-3270.19 -77.6851 184.31 +-3271.81 -66.5982 158.006 +-3273.58 -55.5133 131.707 +-3274.7 -44.4155 105.377 +-3275.58 -33.3146 79.0399 +-3276.2 -22.2112 52.6966 +-3276.58 -11.106 26.3493 +94.7 3.55271e-15 -1.7053e-13 +95.2964 -0.316081 0.769231 +95.1855 -0.631474 1.53679 +95.1674 -0.947153 2.30504 +95.0421 -1.26143 3.06988 +96.0085 -1.59318 3.87726 +95.2693 -1.89763 4.61818 +95.5215 -2.2205 5.40393 +95.5666 -2.53988 6.18119 +95.5047 -2.85675 6.95233 +95.4355 -3.1734 7.72295 +95.359 -3.48981 8.49298 +95.3746 -3.80993 9.27206 +96.0784 -4.16055 10.1253 +96.0785 -4.48368 10.9117 +95.9719 -4.80214 11.6867 +95.7589 -5.11498 12.4481 +95.5389 -5.42679 13.2069 +96.2996 -5.79697 14.1078 +96.1628 -6.11612 14.8845 +95.8218 -6.42166 15.6281 +95.6707 -6.73921 16.4009 +95.5123 -7.05626 17.1725 +95.2487 -7.36522 17.9244 +95.9563 -7.75194 18.8655 +95.8723 -8.07815 19.6594 +95.6831 -8.39582 20.4325 +95.4867 -8.71283 21.204 +95.4771 -9.0476 22.0187 +95.9434 -9.43056 22.9507 +95.7232 -9.74841 23.7242 +95.4958 -10.0655 24.4959 +96.1262 -10.4761 25.4953 +95.882 -10.7945 26.2702 +95.5348 -11.101 27.0161 +96.1347 -11.5203 28.0365 +95.9616 -11.8505 28.84 +96.4445 -12.2648 29.8483 +96.1592 -12.5842 30.6256 +95.8666 -12.9027 31.4007 +96.4125 -13.3371 32.458 +97.1329 -13.8028 33.5912 +96.7189 -14.1108 34.3408 +97.2286 -14.5564 35.4253 +96.8907 -14.8784 36.2088 +96.5454 -15.1991 36.9894 +96.2848 -15.5336 37.8035 +96.7498 -15.9888 38.9111 +96.379 -16.3091 39.6906 +96.0919 -16.6439 40.5054 +96.5218 -17.1065 41.6312 +96.1253 -17.426 42.4088 +96.5305 -17.8941 43.548 +96.0265 -18.1966 44.2842 +96.4069 -18.6697 45.4356 +96.7729 -19.1467 46.5964 +96.3296 -19.4669 47.3757 +96.6699 -19.9489 48.5487 +96.9079 -20.4162 49.6859 +96.4354 -20.7368 50.4662 +96.6484 -21.2079 51.6126 +96.9333 -21.7013 52.8133 +96.3456 -22.0023 53.5461 +96.6041 -22.4998 54.7567 +96.8471 -23.0006 55.9755 +96.3153 -23.3209 56.755 +96.4471 -23.8051 57.9333 +95.8969 -24.1241 58.7097 +96.7487 -24.8025 60.3607 +96.1755 -25.1225 61.1393 +96.2504 -25.6149 62.3377 +96.3099 -26.1097 63.542 +96.4348 -26.6292 64.8062 +95.8197 -26.948 65.5822 +95.9161 -27.4707 66.8541 +95.9164 -27.9729 68.0763 +96.6889 -28.7111 69.8729 +96.026 -29.0307 70.6506 +96.0552 -29.5633 71.9469 +96.5302 -30.2434 73.602 +96.5216 -30.7823 74.9134 +96.4195 -31.2987 76.1703 +96.9802 -32.0412 77.9773 +96.6902 -32.5128 79.1248 +94.751 -32.4253 78.912 +94.8876 -33.0465 80.4237 +94.3446 -33.4377 81.3758 +94.2261 -33.9848 82.7072 +93.8738 -34.4544 83.8501 +94.5057 -35.2973 85.9013 +94.8937 -36.0662 87.7727 +94.062 -36.3796 88.5353 +94.543 -37.2096 90.5553 +94.1669 -37.7148 91.7847 +93.9112 -38.2757 93.1497 +94.4475 -39.1742 95.3363 +94.5482 -39.9096 97.1261 +94.2246 -40.4782 98.5099 +93.8164 -41.0183 99.8242 +94.105 -41.8772 101.915 +91.9829 -41.6636 101.395 +91.0864 -41.9966 102.205 +88.9859 -41.7651 101.642 +87.8368 -41.9696 102.139 +86.3157 -41.9897 102.188 +85.3484 -42.2744 102.881 +83.8328 -42.2828 102.902 +83.5726 -42.9258 104.467 +80.9968 -42.3713 103.117 +80.2531 -42.762 104.068 +78.2358 -42.4659 103.347 +77.2578 -42.724 103.975 +75.7147 -42.6636 103.828 +74.8427 -42.9764 104.59 +72.5459 -42.458 103.328 +71.031 -42.3762 103.129 +70.3203 -42.7715 104.091 +70.7986 -43.9106 106.863 +70.0452 -44.3066 107.827 +68.5177 -44.2097 107.591 +67.15 -44.2048 107.579 +66.0832 -44.3929 108.037 +64.7221 -44.3777 108 +63.653 -44.5571 108.437 +61.7355 -44.1291 107.395 +60.4429 -44.1299 107.397 +59.2004 -44.1592 107.468 +58.1842 -44.3538 107.942 +56.4184 -43.9646 106.994 +54.0722 -43.0866 104.858 +51.8553 -42.2653 102.859 +51.0487 -42.5739 103.61 +49.2965 -42.0821 102.413 +48.8069 -42.6621 103.825 +47.005 -42.0878 102.427 +46.2664 -42.4526 103.315 +44.728 -42.076 102.398 +44.0168 -42.4701 103.358 +42.5741 -42.1531 102.586 +41.8148 -42.5066 103.446 +40.5294 -42.3223 102.998 +39.7564 -42.67 103.844 +38.3845 -42.369 103.112 +37.315 -42.3865 103.154 +35.9696 -42.0749 102.396 +35.0924 -42.3014 102.947 +34.0321 -42.3071 102.961 +33.1446 -42.5275 103.497 +31.8361 -42.1976 102.694 +30.9462 -42.4112 103.214 +29.8936 -42.4021 103.192 +28.8438 -42.3896 103.161 +27.6759 -42.1885 102.672 +26.9163 -42.6111 103.701 +25.7344 -42.3656 103.103 +24.7607 -42.4492 103.307 +23.598 -42.1953 102.689 +22.708 -42.4207 103.237 +21.5996 -42.2333 102.781 +20.8295 -42.7145 103.952 +19.6049 -42.258 102.841 +18.7824 -42.6586 103.816 +17.6615 -42.3816 103.142 +16.8207 -42.7768 104.104 +15.5874 -42.1535 102.587 +14.7756 -42.656 103.81 +13.6494 -42.2504 102.823 +12.7806 -42.6339 103.756 +11.6758 -42.2212 102.752 +10.7635 -42.4853 103.395 +9.77016 -42.4435 103.293 +8.85803 -42.7776 104.106 +7.7918 -42.3504 103.066 +6.85575 -42.6024 103.679 +5.84593 -42.3956 103.176 +4.89846 -42.6412 103.774 +3.91223 -42.58 103.625 +2.93967 -42.6674 103.838 +1.94594 -42.3713 103.117 +0.982608 -42.7943 104.147 +1.15463e-14 -42.6058 103.688 +-0.986099 -42.9464 104.517 +-1.94594 -42.3713 103.117 +-2.958 -42.9331 104.484 +-3.9227 -42.694 103.902 +-4.92899 -42.9068 104.42 +-5.87733 -42.6233 103.73 +-6.91069 -42.9437 104.51 +-7.89643 -42.919 104.45 +-8.85803 -42.7776 104.106 +-9.91832 -43.0874 104.86 +-10.9648 -43.2797 105.328 +-11.8326 -42.7882 104.132 +-12.8825 -42.9737 104.583 +-13.8687 -42.9296 104.476 +-14.9714 -43.2211 105.185 +-15.8379 -42.8312 104.236 +-16.8651 -42.8897 104.379 +-17.8022 -42.7195 103.964 +-18.9805 -43.1086 104.911 +-19.9174 -42.9315 104.48 +-20.9571 -42.976 104.589 +-21.7331 -42.4945 103.417 +-23.1466 -43.2401 105.232 +-23.9722 -42.8643 104.317 +-25.0421 -42.9315 104.48 +-25.9369 -42.6989 103.914 +-27.2898 -43.2025 105.14 +-27.9904 -42.6678 103.839 +-29.3696 -43.1622 105.042 +-30.2559 -42.9163 104.443 +-31.4272 -43.0706 104.819 +-32.5803 -43.1839 105.095 +-33.6558 -43.1835 105.094 +-34.9677 -43.4701 105.791 +-36.0847 -43.4975 105.858 +-37.1747 -43.4845 105.826 +-38.2352 -43.4317 105.698 +-39.1658 -43.2314 105.21 +-40.4574 -43.4222 105.675 +-41.6581 -43.5009 105.866 +-43.2156 -43.9304 106.911 +-44.0793 -43.6434 106.213 +-45.5561 -43.9554 106.972 +-46.0766 -43.3447 105.486 +-47.5676 -43.6464 106.22 +-48.2944 -43.242 105.236 +-50.7608 -44.3701 107.981 +-50.9234 -43.4709 105.793 +-52.666 -43.9228 106.893 +-53.5457 -43.643 106.212 +-55.1054 -43.9098 106.861 +-56.243 -43.8277 106.662 +-57.7826 -44.0478 107.197 +-59.0642 -44.0577 107.221 +-60.3967 -44.0961 107.315 +-61.313 -43.827 106.66 +-62.9372 -44.0562 107.217 +-63.5585 -43.5799 106.058 +-66.4772 -44.6574 108.681 +-67.4 -44.3693 107.98 +-70.091 -45.2249 110.062 +-71.4358 -45.1861 109.967 +-73.2543 -45.4335 110.569 +-74.1357 -45.0922 109.739 +-76.2965 -45.5179 110.775 +-77.1754 -45.1675 109.922 +-79.4789 -45.6388 111.069 +-80.0764 -45.1211 109.809 +-82.1289 -45.4176 110.531 +-82.6524 -44.8634 109.182 +-84.3761 -44.9588 109.414 +-85.0525 -44.4929 108.28 +-87.9743 -45.1865 109.968 +-89.0686 -44.9235 109.328 +-90.949 -45.0485 109.632 +-92.9649 -45.2245 110.061 +-95.556 -45.6578 111.115 +-96.7895 -45.4278 110.556 +-98.9102 -45.6038 110.984 +-100.403 -45.4776 110.677 +-102.808 -45.7497 111.339 +-103.854 -45.4073 110.506 +-106.814 -45.8866 111.672 +-107.864 -45.5304 110.805 +-110.324 -45.7593 111.362 +-111.643 -45.5031 110.739 +-114.749 -45.958 111.846 +-115.591 -45.4936 110.716 +-119.155 -46.0846 112.154 +-120.208 -45.6874 111.187 +-124.106 -46.3525 112.806 +-124.949 -45.86 111.607 +-100.464 -36.2347 88.1828 +-99.8298 -35.3818 86.1069 +-98.2053 -34.2019 83.2357 +-98.9126 -33.8495 82.3779 +-98.4128 -33.092 80.5345 +-98.716 -32.6147 79.3729 +-98.8528 -32.0886 78.0925 +-99.0495 -31.5885 76.8755 +-99.2309 -31.0896 75.6613 +-98.5421 -30.3287 73.8096 +-98.5304 -29.7878 72.4932 +-98.7377 -29.3195 71.3535 +-98.7725 -28.8058 70.1033 +-98.7113 -28.2712 68.8023 +-98.794 -27.7845 67.6178 +-99.3473 -27.4334 66.7635 +-98.915 -26.816 65.2608 +-99.0355 -26.3561 64.1416 +-98.8127 -25.8113 62.8158 +-99.07 -25.3976 61.809 +-98.8989 -24.8792 60.5475 +-98.7954 -24.3847 59.3439 +-99.3515 -24.0561 58.5442 +-99.2216 -23.5645 57.3479 +-99.1621 -23.0955 56.2065 +-99.0028 -22.6092 55.0229 +-98.7427 -22.1063 53.7992 +-99.2465 -21.778 53.0001 +-98.9594 -21.2796 51.7871 +-98.832 -20.8215 50.6724 +-99.3063 -20.4929 49.8727 +-98.9784 -20.0022 48.6785 +-99.4339 -19.6732 47.8777 +-99.0799 -19.1873 46.6953 +-99.5167 -18.858 45.8938 +-99.2269 -18.3939 44.7644 +-99.4649 -18.0314 43.8821 +-99.0594 -17.5563 42.7258 +-98.6398 -17.0852 41.5794 +-99.211 -16.7883 40.8569 +-98.7674 -16.3222 39.7226 +-99.2304 -16.0088 38.96 +-98.7627 -15.5482 37.839 +-99.116 -15.22 37.0403 +-99.3686 -14.8768 36.205 +-98.9595 -14.4377 35.1364 +-98.4442 -13.9891 34.0447 +-98.7617 -13.6621 33.2488 +-99.1659 -13.3467 32.4813 +-99.4686 -13.0173 31.6796 +-98.9102 -12.5784 30.6114 +-99.2903 -12.2616 29.8404 +-98.7097 -11.8289 28.7876 +-98.8819 -11.49 27.9626 +-99.2378 -11.1724 27.1897 +-98.4332 -10.7276 26.1072 +-98.6758 -10.4007 25.3117 +-98.8142 -10.0632 24.4903 +-99.1383 -9.74457 23.7149 +-98.8731 -9.3694 22.8019 +-99.6679 -9.09435 22.1325 +-101.14 -8.87459 21.5977 +-108.466 -9.13931 22.2419 +-113.074 -9.13482 22.231 +-123.471 -9.5475 23.2353 +-159.907 -11.8136 28.7503 +-164.204 -11.5668 28.1495 +-165.054 -11.0613 26.9194 +-170.529 -10.8459 26.3952 +-637.948 -38.4026 93.4587 +-642.069 -36.4707 88.757 +-3244.61 -173.312 421.782 +-380.616 -19.0449 46.3487 +-383.52 -17.8976 43.5565 +-383.022 -16.5862 40.365 +-3258.55 -130.169 316.787 +-673.983 -24.6655 60.0272 +-680.202 -22.6179 55.0441 +-686.876 -20.5459 50.0016 +-693.307 -18.426 44.8426 +-696.299 -16.1862 39.3916 +-702.636 -13.9955 34.0603 +-3273.18 -54.3158 132.186 +-3274.7 -43.4629 105.774 +-3275.58 -32.6001 79.3373 +-3276.2 -21.7348 52.8949 +-3276.58 -10.8678 26.4484 +94.7 3.55271e-15 -1.7053e-13 +95.2964 -0.309127 0.772052 +95.1855 -0.617582 1.54243 +95.1674 -0.926315 2.31349 +95.142 -1.23497 3.08438 +95.2093 -1.54516 3.85908 +95.469 -1.85977 4.64483 +95.6213 -2.17392 5.42941 +95.5666 -2.484 6.20385 +95.5047 -2.7939 6.97783 +95.3358 -3.10034 7.74318 +95.359 -3.41303 8.52413 +95.3746 -3.72611 9.30606 +96.0784 -4.06901 10.1625 +95.9792 -4.38051 10.9404 +95.8727 -4.69166 11.7175 +95.7589 -5.00245 12.4937 +95.6378 -5.3129 13.2691 +95.4107 -5.6171 14.0288 +96.1628 -5.98156 14.9391 +95.8218 -6.28038 15.6854 +95.6707 -6.59094 16.461 +95.4142 -6.89392 17.2177 +95.2487 -7.20318 17.9901 +95.0759 -7.51185 18.761 +94.9936 -7.82802 19.5507 +95.878 -8.22783 20.5492 +95.4867 -8.52115 21.2818 +95.4771 -8.84855 22.0995 +95.0721 -9.1393 22.8256 +95.7232 -9.53394 23.8112 +95.4958 -9.84406 24.5858 +96.1262 -10.2457 25.5888 +95.882 -10.5571 26.3665 +96.3955 -10.9546 27.3595 +96.1347 -11.2669 28.1393 +95.8665 -11.5783 28.9171 +96.4445 -11.995 29.9578 +96.0647 -12.2952 30.7077 +96.715 -12.7305 31.7947 +96.4125 -13.0437 32.577 +96.1026 -13.356 33.3568 +96.7189 -13.8004 34.4667 +97.2286 -14.2362 35.5552 +96.8907 -14.551 36.3415 +96.5454 -14.8648 37.1251 +96.2848 -15.1919 37.9421 +96.7498 -15.637 39.0538 +96.379 -15.9503 39.8361 +96.0919 -16.2777 40.6539 +96.5218 -16.7301 41.7839 +96.9377 -17.1866 42.924 +96.5305 -17.5004 43.7077 +96.8319 -17.9455 44.8194 +96.496 -18.2758 45.6444 +96.7729 -18.7255 46.7673 +96.3296 -19.0386 47.5494 +96.6699 -19.51 48.7268 +96.2082 -19.8229 49.5081 +96.4354 -20.2806 50.6512 +96.6484 -20.7413 51.8019 +96.0717 -21.0351 52.5358 +96.4313 -21.5374 53.7903 +96.6041 -22.0048 54.9575 +96.0838 -22.3173 55.738 +96.231 -22.7879 56.9133 +96.4471 -23.2814 58.1458 +96.564 -23.7575 59.3348 +96.8316 -24.2776 60.634 +96.0931 -24.5487 61.311 +96.2504 -25.0513 62.5663 +96.3913 -25.5569 63.8289 +95.7067 -25.8467 64.5528 +95.8197 -26.3552 65.8227 +95.9161 -26.8663 67.0993 +96.6304 -27.5611 68.8344 +96.6889 -28.0795 70.1291 +95.8695 -28.3457 70.7941 +95.8998 -28.8661 72.0939 +95.8358 -29.3653 73.3405 +96.5216 -30.1051 75.1882 +95.8112 -30.4171 75.9673 +96.3764 -31.1412 77.7759 +96.3157 -31.6743 79.1074 +95.6427 -32.0104 79.9468 +95.6249 -32.5706 81.3457 +94.9297 -32.9049 82.1807 +94.0811 -33.186 82.8827 +94.5932 -33.9546 84.8025 +94.5057 -34.5207 86.2163 +94.328 -35.0625 87.5694 +94.062 -35.5792 88.86 +93.8483 -36.1236 90.2196 +94.3046 -36.939 92.256 +93.9112 -37.4336 93.4913 +94.3124 -38.2577 95.5495 +94.1467 -38.8658 97.0682 +93.8933 -39.4483 98.523 +94.1445 -40.2564 100.541 +94.0401 -40.9277 102.218 +93.397 -41.3733 103.331 +92.4222 -41.6748 104.084 +90.1187 -41.3663 103.313 +88.7706 -41.4826 103.604 +87.4239 -41.5934 103.88 +86.2615 -41.7867 104.363 +84.3745 -41.6198 103.946 +83.0373 -41.7123 104.178 +81.7609 -41.8298 104.471 +80.7758 -42.0933 105.129 +79.2683 -42.08 105.096 +77.9941 -42.1822 105.351 +76.4976 -42.1562 105.286 +75.505 -42.403 105.902 +73.8531 -42.2721 105.576 +72.2131 -42.1339 105.23 +70.9032 -42.1773 105.339 +70.1193 -42.5323 106.225 +69.6331 -43.0769 107.586 +68.3147 -43.1088 107.665 +67.3 -43.3289 108.215 +65.837 -43.2546 108.029 +64.3827 -43.1735 107.827 +63.5098 -43.4791 108.59 +61.8764 -43.2564 108.034 +60.8585 -43.4557 108.532 +59.0188 -43.0553 107.532 +58.5412 -43.6441 109.002 +55.7608 -42.4963 106.135 +54.6319 -42.5747 106.331 +52.8695 -42.1439 105.255 +51.6708 -42.1446 105.257 +50.1506 -41.8692 104.569 +49.4449 -42.2688 105.567 +47.8255 -41.8804 104.597 +46.8405 -42.0339 104.981 +45.3274 -41.7016 104.151 +44.5299 -42.0201 104.946 +43.2192 -41.8506 104.523 +42.2 -41.9543 104.782 +40.8372 -41.7053 104.16 +40.2571 -42.2569 105.538 +38.7752 -41.8584 104.542 +37.8862 -42.0885 105.117 +36.5258 -41.7856 104.36 +35.9043 -42.3279 105.715 +34.3829 -41.8027 104.403 +33.4854 -42.0197 104.945 +32.222 -41.7692 104.32 +31.4272 -42.1231 105.203 +30.2559 -41.9722 104.826 +29.4447 -42.3205 105.696 +28.1839 -42.0175 104.94 +27.2431 -42.1799 105.345 +26.1168 -42.0491 105.019 +24.9988 -41.9145 104.683 +24.0554 -42.0669 105.063 +23.1466 -42.2889 105.617 +21.8858 -41.8517 104.526 +20.9935 -42.1037 105.155 +19.8654 -41.8774 104.59 +18.931 -42.0502 105.021 +17.724 -41.596 103.887 +17.1015 -42.5342 106.23 +15.9632 -42.2201 105.446 +15.0366 -42.4543 106.031 +13.8687 -41.9852 104.859 +13.0184 -42.4717 106.074 +11.8326 -41.8469 104.514 +11.0223 -42.5498 106.269 +9.89218 -42.0283 104.967 +8.99926 -42.5033 106.153 +7.89643 -41.9748 104.833 +6.94732 -42.2216 105.449 +5.97153 -42.3539 105.78 +4.97697 -42.3714 105.824 +3.95062 -42.0517 105.025 +2.98679 -42.3974 105.888 +1.97561 -42.071 105.073 +0.990462 -42.1874 105.364 +1.06581e-14 -42.0774 105.089 +-0.993952 -42.3361 105.735 +-1.97212 -41.9967 104.888 +-2.97894 -42.2859 105.61 +-3.9576 -42.1261 105.211 +-5.00314 -42.5944 106.381 +-5.92443 -42.0197 104.945 +-6.92901 -42.1101 105.171 +-7.95921 -42.3086 105.667 +-8.99141 -42.4665 106.061 +-9.94447 -42.2506 105.522 +-10.936 -42.2167 105.437 +-11.9581 -42.2903 105.621 +-13.075 -42.6565 106.536 +-14.015 -42.4279 105.965 +-14.9714 -42.2703 105.571 +-15.9632 -42.2201 105.446 +-17.1607 -42.6814 106.598 +-17.943 -42.1101 105.171 +-19.162 -42.5636 106.303 +-20.0216 -42.2067 105.412 +-21.2669 -42.652 106.524 +-21.943 -41.961 104.799 +-23.346 -42.6531 106.527 +-24.1593 -42.2487 105.517 +-25.4533 -42.6766 106.586 +-26.2068 -42.1941 105.381 +-27.7567 -42.975 107.331 +-28.3774 -42.3063 105.661 +-29.8954 -42.9683 107.314 +-30.5148 -42.3312 105.723 +-32.1488 -43.0903 107.619 +-32.9938 -42.7698 106.819 +-34.2523 -42.9821 107.349 +-35.3477 -42.9758 107.333 +-36.4455 -42.9657 107.308 +-37.5456 -42.952 107.274 +-38.9016 -43.2163 107.934 +-39.8495 -43.0182 107.439 +-41.4922 -43.553 108.775 +-42.4105 -43.3122 108.173 +-43.5308 -43.2772 108.086 +-44.5451 -43.1345 107.729 +-46.2158 -43.611 108.92 +-47.0131 -43.2527 108.025 +-48.7156 -43.7166 109.183 +-49.6229 -43.4542 108.528 +-51.1595 -43.7348 109.229 +-51.6556 -43.1256 107.707 +-53.8272 -43.9036 109.65 +-54.0951 -43.1207 107.695 +-56.3109 -43.8831 109.599 +-56.9006 -43.3646 108.304 +-59.032 -44.0102 109.917 +-59.6544 -43.5188 108.689 +-61.8281 -44.1481 110.261 +-62.6275 -43.7816 109.346 +-63.7007 -43.6095 108.916 +-65.1584 -43.6939 109.127 +-67.2651 -44.1927 110.372 +-68.65 -44.198 110.385 +-71.1569 -44.9023 112.145 +-72.8264 -45.0521 112.519 +-74.8218 -45.3848 113.35 +-75.5665 -44.9514 112.267 +-77.5861 -45.2688 113.06 +-78.6459 -45.0153 112.427 +-80.9692 -45.4714 113.566 +-81.3066 -44.8064 111.905 +-83.4883 -45.1536 112.772 +-83.8569 -44.5158 111.179 +-86.0021 -44.8172 111.932 +-86.7571 -44.386 110.855 +-89.1045 -44.7603 111.79 +-89.6103 -44.2024 110.397 +-93.2623 -45.1781 112.833 +-94.504 -44.9618 112.293 +-97.2368 -45.4387 113.484 +-97.6705 -44.8328 111.971 +-100.946 -45.5183 113.683 +-101.56 -44.9897 112.363 +-104.886 -45.648 114.007 +-105.757 -45.2216 112.942 +-107.808 -45.2945 113.124 +-109.269 -45.109 112.661 +-111.878 -45.383 113.345 +-113.075 -45.0726 112.57 +-115.231 -45.1358 112.728 +-117.606 -45.2681 113.058 +-120.697 -45.6539 114.022 +-122.612 -45.5759 113.827 +-126.103 -46.0624 115.042 +-126.316 -45.3417 113.242 +-98.2882 -34.67 86.589 +-98.1477 -34.0203 84.9665 +-98.7214 -33.6253 83.9799 +-98.9869 -33.1297 82.7421 +-98.4128 -32.364 80.8298 +-98.5651 -31.8484 79.5422 +-98.8528 -31.3826 78.3789 +-99.0495 -30.8936 77.1574 +-98.4593 -30.1692 75.3482 +-98.6198 -29.6849 74.1387 +-98.5304 -29.1325 72.759 +-98.6589 -28.6516 71.5579 +-98.7725 -28.1721 70.3604 +-99.3503 -27.8282 69.5016 +-98.7136 -27.1511 67.8106 +-98.4574 -26.5896 66.4081 +-99.1593 -26.2908 65.6618 +-98.8717 -25.7336 64.2703 +-99.1424 -25.3277 63.2565 +-99.07 -24.8389 62.0357 +-98.8989 -24.3319 60.7695 +-98.7954 -23.8482 59.5615 +-98.6768 -23.3671 58.3599 +-99.3064 -23.0658 57.6073 +-99.2473 -22.6068 56.4611 +-99.0028 -22.1118 55.2246 +-99.5182 -21.7898 54.4205 +-98.4671 -21.1316 52.7767 +-99.1335 -20.848 52.0683 +-99.6192 -20.5256 51.2633 +-99.3063 -20.0421 50.0556 +-99.7731 -19.7192 49.2492 +-99.4339 -19.2404 48.0532 +-99.0799 -18.7652 46.8665 +-99.5167 -18.4431 46.0621 +-99.0471 -17.9567 44.8472 +-99.4649 -17.6347 44.043 +-99.0594 -17.17 42.8825 +-99.6408 -16.8789 42.1553 +-99.3024 -16.4341 41.0445 +-98.8591 -15.9779 39.9052 +-99.1384 -15.6421 39.0665 +-99.5018 -15.3199 38.2619 +-99.0232 -14.8713 37.1414 +-98.5312 -14.4269 36.0316 +-98.9595 -14.1201 35.2652 +-99.1936 -13.7855 34.4297 +-98.6677 -13.3488 33.339 +-99.0716 -13.0407 32.5694 +-98.6176 -12.622 31.5238 +-98.9102 -12.3016 30.7236 +-99.2903 -11.9918 29.9499 +-98.6143 -11.5575 28.8652 +-98.8819 -11.2372 28.0651 +-99.2378 -10.9266 27.2894 +-99.4906 -10.6043 26.4844 +-98.6758 -10.1719 25.4045 +-98.9108 -9.85142 24.6041 +-99.0415 -9.52089 23.7787 +-99.7464 -9.24423 23.0877 +-100.446 -8.9637 22.3871 +-104.16 -8.93858 22.3243 +-110.224 -9.08306 22.6852 +-116.008 -9.16569 22.8915 +-138.267 -10.4564 26.1152 +-163.637 -11.8233 29.5289 +-165.187 -11.3801 28.422 +-167.023 -10.9471 27.3405 +-173.488 -10.7914 26.9518 +-640.121 -37.6856 94.1207 +-642.168 -35.6738 89.0962 +-381.154 -19.9115 49.7296 +-379.723 -18.5822 46.4096 +-382.627 -17.4631 43.6144 +-380.538 -16.1161 40.2503 +-379.51 -14.8267 37.0301 +-675.078 -24.162 60.3451 +-680.102 -22.1171 55.2379 +-685.879 -20.0648 50.1122 +-692.309 -17.9948 44.9423 +-696.798 -15.8415 39.5644 +-703.934 -13.7129 34.2483 +-3273.18 -53.1208 132.67 +-3274.7 -42.5067 106.161 +-3275.58 -31.8829 79.6283 +-3276.2 -21.2566 53.0889 +-3276.58 -10.6287 26.5454 +94.7 3.55271e-15 -1.7053e-13 +95.3964 -0.302465 0.775622 +95.2855 -0.604271 1.54956 +95.1674 -0.905402 2.32176 +95.142 -1.20709 3.09539 +95.3092 -1.51186 3.87693 +95.5688 -1.81969 4.6663 +95.6213 -2.12484 5.4488 +95.5666 -2.42792 6.22602 +95.5047 -2.73082 7.00275 +95.4355 -3.03352 7.77896 +95.359 -3.33598 8.55457 +96.1703 -3.67236 9.41719 +96.0784 -3.97715 10.1988 +95.9792 -4.28161 10.9795 +95.9719 -4.59046 11.7715 +95.7589 -4.88951 12.5384 +95.5389 -5.18758 13.3027 +95.4107 -5.49029 14.079 +96.1628 -5.84652 14.9925 +95.8218 -6.13859 15.7414 +95.5724 -6.43553 16.5029 +95.5123 -6.74522 17.297 +96.0326 -7.09851 18.203 +95.1738 -7.34982 18.8474 +95.8723 -7.72207 19.802 +95.6831 -8.02573 20.5807 +95.4867 -8.32877 21.3578 +95.283 -8.6312 22.1333 +96.1371 -9.03302 23.1637 +95.7232 -9.3187 23.8963 +95.4958 -9.62181 24.6736 +96.1262 -10.0143 25.6802 +95.7861 -10.3084 26.4342 +95.4392 -10.6011 27.1848 +96.1347 -11.0125 28.2398 +95.8665 -11.3169 29.0204 +96.4445 -11.7242 30.0648 +96.1592 -12.0295 30.8477 +95.7724 -12.3218 31.5973 +96.3185 -12.7368 32.6615 +96.0089 -13.0417 33.4434 +96.7189 -13.4888 34.5899 +96.3913 -13.7949 35.3749 +96.8907 -14.2225 36.4714 +95.7139 -14.404 36.9368 +97.0212 -14.9625 38.3689 +95.9245 -15.1536 38.859 +96.4704 -15.6049 40.0164 +96.0919 -15.9102 40.7991 +96.5218 -16.3524 41.9332 +96.1253 -16.6578 42.7163 +96.5305 -17.1053 43.8639 +96.116 -17.4107 44.6469 +96.4069 -17.8468 45.7651 +95.9746 -18.1517 46.5471 +96.3296 -18.6088 47.7193 +96.6699 -19.0696 48.9008 +96.1207 -19.3577 49.6397 +96.4354 -19.8227 50.8322 +96.6484 -20.273 51.987 +96.0717 -20.5603 52.7234 +96.4313 -21.0512 53.9824 +96.6894 -21.527 55.2024 +96.7623 -21.9675 56.3321 +96.231 -22.2734 57.1166 +96.4471 -22.7558 58.3535 +96.564 -23.2211 59.5468 +96.0026 -23.5264 60.3296 +96.1755 -24.0151 61.5827 +96.2504 -24.4858 62.7898 +96.3913 -24.9799 64.0569 +96.4348 -25.4554 65.2762 +95.8197 -25.7602 66.0578 +96.555 -26.4347 67.7874 +95.9164 -26.7398 68.57 +96.6889 -27.4455 70.3796 +96.5738 -27.9093 71.569 +95.8998 -28.2145 72.3514 +96.6846 -28.9565 74.2543 +96.5216 -29.4254 75.4567 +95.8112 -29.7304 76.2387 +96.3764 -30.4382 78.0538 +96.3157 -30.9592 79.3899 +96.0886 -31.4336 80.6064 +96.141 -32.0071 82.077 +94.7103 -32.0877 82.2836 +94.5888 -32.6118 83.6276 +94.0177 -32.9861 84.5876 +93.8638 -33.5122 85.9366 +94.2573 -34.2452 87.8163 +94.062 -34.776 89.1774 +93.8483 -35.3081 90.5419 +94.3046 -36.105 92.5855 +93.9112 -36.5885 93.8253 +94.3124 -37.394 95.8908 +94.5482 -38.1504 97.8305 +94.092 -38.6394 99.0845 +94.2101 -39.3748 100.97 +93.9751 -39.9761 102.512 +93.7827 -40.6064 104.129 +93.1855 -41.0704 105.318 +91.3773 -40.9973 105.131 +89.8911 -41.058 105.287 +88.3474 -41.0838 105.353 +87.1746 -41.2756 105.845 +85.4577 -41.2022 105.656 +84.5838 -41.53 106.497 +82.525 -41.2676 105.824 +81.9372 -41.7349 107.022 +79.8992 -41.4573 106.311 +78.9004 -41.7091 106.956 +77.0568 -41.5056 106.434 +76.5537 -42.0212 107.756 +74.1798 -41.5005 106.421 +73.5026 -41.918 107.492 +70.9562 -41.256 105.794 +70.3283 -41.696 106.923 +69.3241 -41.9176 107.491 +68.9237 -42.5113 109.013 +67.45 -42.4452 108.844 +65.7878 -42.2464 108.334 +65.2554 -42.771 109.679 +63.6053 -42.561 109.141 +62.5806 -42.7612 109.654 +60.997 -42.5712 109.167 +59.382 -42.3423 108.58 +58.5858 -42.6915 109.475 +56.9444 -42.4183 108.775 +55.0624 -41.9416 107.552 +53.2922 -41.5216 106.475 +52.2513 -41.656 106.82 +50.8014 -41.4551 106.305 +49.9234 -41.7145 106.97 +48.6851 -41.6706 106.857 +47.5676 -41.7225 106.991 +46.0766 -41.434 106.251 +45.4462 -41.9165 107.488 +43.9717 -41.6179 106.722 +42.9354 -41.7218 106.989 +41.2476 -41.1735 105.583 +40.5242 -41.5768 106.617 +38.9705 -41.1198 105.445 +38.3621 -41.6549 106.817 +37.1129 -41.4987 106.417 +36.0847 -41.5801 106.625 +34.7338 -41.276 105.846 +33.8262 -41.4889 106.392 +32.663 -41.3854 106.126 +31.7212 -41.5572 106.567 +30.5924 -41.4805 106.37 +29.4948 -41.4355 106.255 +28.45 -41.4569 106.31 +27.5932 -41.7574 107.08 +26.2068 -41.2415 105.757 +25.3018 -41.4649 106.33 +24.3257 -41.579 106.623 +23.4058 -41.797 107.182 +22.1529 -41.4061 106.179 +21.1211 -41.4032 106.172 +20.1258 -41.4686 106.339 +19.1125 -41.4951 106.407 +18.1151 -41.5539 106.558 +17.338 -42.149 108.084 +16.1023 -41.6266 106.745 +15.2716 -42.1443 108.072 +14.1003 -41.7225 106.991 +13.1542 -41.946 107.564 +12.0417 -41.6248 106.74 +11.1852 -42.2039 108.225 +10.0403 -41.6949 106.92 +9.04633 -41.7614 107.09 +8.00804 -41.607 106.694 +7.12436 -42.3198 108.522 +5.98723 -41.5063 106.436 +5.02932 -41.8504 107.319 +4.00646 -41.6833 106.89 +3.0182 -41.8758 107.384 +2.00179 -41.6662 106.846 +1.01053 -42.0706 107.883 +1.06581e-14 -41.7087 106.955 +-1.01402 -42.2159 108.256 +-2.00354 -41.7025 106.939 +-3.03914 -42.1665 108.129 +-4.00646 -41.6833 106.89 +-5.09038 -42.3587 108.622 +-6.00817 -41.6517 106.809 +-7.06942 -41.9935 107.686 +-7.98014 -41.462 106.323 +-9.14048 -42.1959 108.205 +-10.0926 -41.9118 107.476 +-11.214 -42.3122 108.503 +-12.1358 -41.95 107.574 +-13.3127 -42.4513 108.86 +-14.2222 -42.0829 107.915 +-15.4021 -42.5044 108.996 +-16.2972 -42.1302 108.036 +-17.4415 -42.4005 108.729 +-18.3185 -42.0204 107.755 +-19.4756 -42.2835 108.429 +-20.421 -42.0767 107.899 +-21.5038 -42.1534 108.096 +-22.3437 -41.7628 107.094 +-23.645 -42.2243 108.277 +-24.6583 -42.1476 108.081 +-25.7996 -42.2806 108.422 +-26.6792 -41.9848 107.663 +-28.0368 -42.4288 108.802 +-28.9822 -42.2322 108.298 +-30.4462 -42.7721 109.682 +-31.2395 -42.358 108.62 +-32.4962 -42.5723 109.17 +-33.2694 -42.1534 108.096 +-34.9623 -42.8826 109.965 +-35.9032 -42.6657 109.409 +-37.1372 -42.7928 109.735 +-38.1636 -42.6733 109.429 +-39.3775 -42.7576 109.645 +-40.5007 -42.7344 109.585 +-41.826 -42.9124 110.042 +-42.8551 -42.7779 109.697 +-44.3713 -43.1169 110.566 +-45.0827 -42.6693 109.419 +-47.1321 -43.4715 111.476 +-47.575 -42.7812 109.706 +-49.2131 -43.166 110.692 +-50.0136 -42.8077 109.774 +-51.7576 -43.247 110.9 +-52.6724 -42.9818 110.22 +-54.4907 -43.4414 111.398 +-55.2785 -43.0693 110.444 +-56.7414 -43.2205 110.832 +-57.602 -42.9084 110.032 +-59.4782 -43.3418 111.143 +-60.5169 -43.1514 110.655 +-62.5208 -43.6346 111.894 +-63.05 -43.082 110.477 +-65.323 -43.7106 112.089 +-66.0796 -43.3113 111.065 +-68.7423 -44.1437 113.199 +-69.95 -44.0183 112.878 +-72.5272 -44.734 114.713 +-73.7535 -44.5956 114.358 +-76.0758 -45.1035 115.661 +-76.9973 -44.7682 114.801 +-79.0368 -45.0741 115.585 +-80.1164 -44.8216 114.938 +-82.2386 -45.1417 115.759 +-82.5928 -44.4877 114.082 +-84.8477 -44.8528 115.018 +-85.5776 -44.4034 113.865 +-87.5119 -44.5742 114.303 +-88.2266 -44.1186 113.135 +-89.8182 -44.1001 113.087 +-92.1981 -44.4521 113.99 +-94.7233 -44.8499 115.01 +-96.1663 -44.7195 114.676 +-99.1666 -45.2943 116.15 +-100.062 -44.8935 115.122 +-102.536 -45.1915 115.886 +-103.617 -44.8645 115.048 +-105.86 -45.0316 115.476 +-107.134 -44.7766 114.822 +-110.127 -45.2242 115.97 +-110.54 -44.6036 114.379 +-113.567 -45.028 115.467 +-115.053 -44.8256 114.948 +-118.741 -45.4607 116.577 +-119.829 -45.0825 115.607 +-122.869 -45.4265 116.489 +-125.016 -45.4203 116.473 +-108.699 -38.8091 99.5196 +-98.8373 -34.6771 88.9239 +-97.853 -33.7372 86.5136 +-98.3671 -33.3266 85.4606 +-98.7952 -32.8907 84.3429 +-98.2437 -32.1386 82.4143 +-98.4128 -31.6333 81.1186 +-98.716 -31.1771 79.9486 +-98.8528 -30.6741 78.6589 +-98.9729 -30.1728 77.3732 +-99.2309 -29.7192 76.21 +-98.5421 -28.9918 74.3449 +-99.313 -28.7009 73.5989 +-98.8953 -28.0718 71.9856 +-98.6932 -27.5139 70.555 +-98.6315 -27.0032 69.2453 +-98.9548 -26.603 68.2191 +-99.1046 -26.1601 67.0834 +-98.8336 -25.6128 65.6799 +-99.0355 -25.1943 64.6067 +-99.1424 -24.7559 63.4825 +-99.07 -24.2781 62.2573 +-98.8989 -23.7826 60.9866 +-98.7954 -23.3098 59.7743 +-99.4359 -23.0152 59.0188 +-99.3064 -22.545 57.8131 +-99.1621 -22.0775 56.6142 +-99.0028 -21.6126 55.4219 +-98.7427 -21.1319 54.1893 +-99.2465 -20.818 53.3845 +-99.1335 -20.3773 52.2543 +-99.4443 -20.027 51.3561 +-99.3063 -19.5896 50.2344 +-98.9784 -19.1205 49.0315 +-98.6356 -18.655 47.8377 +-99.0799 -18.3416 47.0339 +-99.3377 -17.9943 46.1435 +-99.0471 -17.5513 45.0074 +-99.3746 -17.2209 44.1603 +-99.2407 -16.8131 43.1144 +-98.8218 -16.3622 41.9582 +-100.033 -16.1813 41.4943 +-98.7674 -15.6027 40.0107 +-99.2304 -15.3032 39.2425 +-99.5942 -14.988 38.4343 +-99.0232 -14.5356 37.2741 +-98.6243 -14.1145 36.1944 +-98.8662 -13.7883 35.3578 +-99.2873 -13.487 34.5853 +-98.7617 -13.0599 33.4899 +-99.0716 -12.7463 32.6857 +-98.6176 -12.3371 31.6364 +-98.9102 -12.0239 30.8334 +-99.1952 -11.7099 30.0281 +-98.6143 -11.2966 28.9683 +-98.9775 -10.9941 28.1927 +-98.0873 -10.5561 27.0694 +-99.4906 -10.3649 26.579 +-98.5794 -9.93252 25.4703 +-98.9108 -9.62901 24.692 +-99.0415 -9.30595 23.8636 +-100.523 -9.10583 23.3504 +-102.488 -8.93943 22.9237 +-106.596 -8.94107 22.9279 +-112.665 -9.07459 23.2703 +-117.867 -9.10231 23.3414 +-160.806 -11.8864 30.4807 +-163.441 -11.5424 29.5987 +-165.187 -11.1231 28.5235 +-167.91 -10.7567 27.5838 +-3231.56 -196.473 503.824 +-642.689 -36.9827 94.8361 +-3240.51 -175.953 451.204 +-382.045 -19.5075 50.0239 +-379.327 -18.1438 46.5267 +-381.038 -16.998 43.5885 +-379.246 -15.6988 40.257 +-381.797 -14.5793 37.3864 +-382.033 -13.3648 34.2719 +-680.6 -21.6336 55.4759 +-685.68 -19.6061 50.2766 +-689.915 -17.5277 44.9469 +-696.798 -15.4838 39.7057 +-703.235 -13.39 34.3365 +-709.624 -11.2566 28.8657 +-3274.3 -41.5419 106.528 +-3275.58 -31.1631 79.9127 +-3276.2 -20.7767 53.2785 +-3276.58 -10.3887 26.6402 +94.7 3.55271e-15 -1.7053e-13 +94.4964 -0.29268 0.770973 +95.2855 -0.590292 1.55494 +95.2673 -0.885383 2.33226 +95.2419 -1.18041 3.1094 +95.3092 -1.47689 3.89039 +95.469 -1.77573 4.6776 +95.6213 -2.07568 5.46772 +95.5666 -2.37175 6.24763 +95.5047 -2.66765 7.02706 +95.4355 -2.96334 7.80597 +95.359 -3.2588 8.58427 +96.1703 -3.58741 9.44988 +96.0784 -3.88514 10.2342 +95.9792 -4.18256 11.0176 +95.8727 -4.47965 11.8002 +95.8579 -4.78136 12.595 +95.5389 -5.06756 13.3489 +95.4107 -5.36328 14.1278 +96.1628 -5.71127 15.0445 +95.8218 -5.99658 15.7961 +95.6707 -6.29311 16.5772 +95.5123 -6.58917 17.3571 +95.2487 -6.87768 18.1171 +95.1738 -7.17978 18.9128 +95.8723 -7.54342 19.8707 +95.6831 -7.84006 20.6521 +95.4867 -8.13609 21.4319 +95.4771 -8.4487 22.2554 +96.1371 -8.82405 23.2441 +95.7232 -9.10312 23.9793 +95.4958 -9.39922 24.7592 +96.1262 -9.78266 25.7693 +95.882 -10.08 26.5526 +96.3955 -10.4596 27.5525 +96.1347 -10.7577 28.3378 +95.9616 -11.0661 29.15 +95.591 -11.3516 29.9021 +96.1592 -11.7512 30.9548 +96.715 -12.1552 32.019 +96.4125 -12.4543 32.8069 +96.0089 -12.74 33.5595 +96.7189 -13.1768 34.7099 +96.3913 -13.4758 35.4977 +96.8907 -13.8935 36.598 +96.5454 -14.193 37.387 +96.2848 -14.5054 38.2098 +95.9245 -14.8031 38.9939 +96.4704 -15.2439 40.1553 +96.0919 -15.5421 40.9408 +96.6124 -15.9891 42.1183 +96.2156 -16.2878 42.9049 +96.4406 -16.694 43.9751 +96.0265 -16.9921 44.7602 +96.496 -17.45 45.9664 +95.9746 -17.7318 46.7087 +96.2413 -18.1617 47.8411 +96.582 -18.6114 49.0259 +96.1207 -18.9099 49.812 +96.4354 -19.3641 51.0086 +96.6484 -19.804 52.1674 +96.1578 -20.1026 52.954 +96.4313 -20.5642 54.1698 +96.6894 -21.0289 55.394 +95.999 -21.29 56.0818 +96.231 -21.7581 57.3149 +95.6923 -22.0554 58.0978 +96.564 -22.6839 59.7535 +96.7487 -23.1607 61.0095 +96.1755 -23.4595 61.7965 +96.2504 -23.9193 63.0078 +96.3913 -24.402 64.2792 +95.7067 -24.6787 65.0083 +96.5432 -25.3542 66.7876 +95.9161 -25.6523 67.5727 +95.9164 -26.1212 68.808 +95.8221 -26.5702 69.9907 +96.026 -27.109 71.41 +96.0552 -27.6064 72.7203 +95.9901 -28.0834 73.9769 +96.5216 -28.7447 75.7187 +95.8112 -29.0426 76.5033 +96.5274 -29.7806 78.4474 +95.6416 -30.0314 79.1081 +96.2373 -30.7539 81.0113 +96.6571 -31.4344 82.804 +95.5879 -31.6358 83.3344 +95.822 -32.2726 85.012 +93.9458 -32.1984 84.8164 +94.577 -32.9857 86.8902 +94.328 -33.4781 88.1872 +94.062 -33.9715 89.4869 +94.543 -34.7465 91.5287 +94.1669 -35.2183 92.7713 +93.9112 -35.742 94.151 +94.3124 -36.5289 96.2237 +93.9459 -37.0307 97.5456 +94.0258 -37.7189 99.3584 +93.8164 -38.3031 100.897 +94.17 -39.1322 103.081 +94.2327 -39.8572 104.991 +93.5671 -40.2845 106.117 +92.573 -40.5727 106.876 +91.1984 -40.6913 107.188 +88.9015 -40.385 106.381 +87.9052 -40.6586 107.102 +85.879 -40.4475 106.546 +85.4166 -40.9688 107.919 +83.2892 -40.6863 107.175 +82.576 -41.087 108.231 +80.5875 -40.8471 107.599 +80.4297 -41.5338 109.408 +78.2311 -41.1633 108.432 +78.7062 -42.2032 111.171 +75.2147 -41.1058 108.28 +75.6518 -42.1457 111.019 +72.7579 -41.3248 108.857 +72.0526 -41.7301 109.925 +69.6331 -41.1303 108.345 +69.4312 -41.8337 110.198 +67.95 -41.7706 110.031 +68.1022 -42.7207 112.534 +65.7402 -42.0918 110.877 +65.5616 -42.8552 112.888 +63.3787 -42.3047 111.438 +63.0287 -42.9716 113.195 +60.8347 -42.3746 111.622 +60.5044 -43.0695 113.453 +58.3034 -42.4261 111.758 +56.44 -41.9963 110.626 +54.2219 -41.2687 108.709 +53.1222 -41.3706 108.978 +51.5335 -41.0795 108.211 +51.0798 -41.6932 109.827 +49.154 -41.0987 108.261 +48.486 -41.5445 109.436 +46.9382 -41.2322 108.613 +46.1425 -41.5743 109.514 +44.3301 -40.9866 107.966 +43.5308 -41.3216 108.849 +42.2053 -41.1548 108.409 +41.2251 -41.3173 108.837 +39.9147 -41.1417 108.375 +38.9967 -41.3645 108.962 +37.7001 -41.18 108.476 +36.8665 -41.4983 109.314 +35.4647 -41.1697 108.448 +34.6499 -41.5161 109.361 +33.3521 -41.2808 108.741 +32.6031 -41.7244 109.91 +31.0842 -41.1725 108.456 +30.3711 -41.6793 109.791 +28.9822 -41.2552 108.674 +28.2235 -41.7234 109.907 +26.8592 -41.2904 108.766 +25.9511 -41.5452 109.438 +24.6375 -41.1378 108.364 +23.8843 -41.6648 109.753 +22.5155 -41.1101 108.291 +21.7771 -41.7017 109.85 +20.4905 -41.2432 108.642 +19.5746 -41.515 109.358 +18.4123 -41.2588 108.683 +17.4711 -41.4898 109.292 +16.4085 -41.4369 109.152 +15.4674 -41.6971 109.838 +14.344 -41.4618 109.218 +13.4146 -41.7865 110.073 +12.2925 -41.509 109.342 +11.281 -41.5807 109.531 +10.2495 -41.5786 109.525 +9.25817 -41.7503 109.978 +8.16848 -41.4589 109.21 +7.23425 -41.9785 110.579 +6.11284 -41.3968 109.047 +5.134 -41.7333 109.933 +4.05532 -41.2155 108.569 +3.08888 -41.8653 110.281 +2.0524 -41.7312 109.927 +1.02624 -41.7361 109.941 +1.24345e-14 -41.2407 108.635 +-1.02973 -41.8781 110.314 +-2.05764 -41.8376 110.208 +-3.08888 -41.8653 110.281 +-4.10418 -41.712 109.877 +-5.14709 -41.8398 110.213 +-6.15471 -41.6804 109.794 +-7.20373 -41.8014 110.113 +-8.16848 -41.4589 109.21 +-9.34448 -42.1397 111.003 +-10.328 -41.8969 110.364 +-11.3961 -42.0048 110.648 +-12.3344 -41.6502 109.714 +-13.5617 -42.2451 111.281 +-14.4537 -41.7787 110.053 +-15.637 -42.1546 111.043 +-16.5477 -41.7883 110.078 +-17.7963 -42.2621 111.326 +-18.7408 -41.9949 110.622 +-19.8717 -42.1453 111.018 +-20.8031 -41.8724 110.3 +-21.9958 -42.1205 110.953 +-22.8017 -41.6325 109.668 +-24.2631 -42.3256 111.493 +-24.9702 -41.6935 109.828 +-26.3407 -42.1688 111.08 +-27.2866 -41.9473 110.497 +-28.6904 -42.4133 111.724 +-29.3451 -41.772 110.035 +-30.8468 -42.3324 111.511 +-31.6536 -41.9267 110.443 +-33.1643 -42.4428 111.802 +-33.9585 -42.0311 110.717 +-35.6723 -42.7412 112.588 +-36.3418 -42.1879 111.131 +-37.9491 -42.7168 112.524 +-38.5344 -42.0914 110.876 +-39.9487 -42.3743 111.621 +-41.0867 -42.3494 111.556 +-42.6605 -42.7561 112.627 +-43.505 -42.4222 111.748 +-44.8616 -42.5851 112.177 +-45.9069 -42.4445 111.807 +-47.6452 -42.9279 113.08 +-48.3243 -42.4499 111.821 +-50.0933 -42.9215 113.063 +-50.5997 -42.3072 111.445 +-52.914 -43.1906 113.772 +-53.2418 -42.4413 111.798 +-55.1542 -42.9531 113.146 +-56.2928 -42.8449 112.861 +-57.8176 -43.0213 113.326 +-58.8732 -42.8406 112.85 +-60.3259 -42.9425 113.118 +-61.2887 -42.6908 112.455 +-62.9825 -42.94 113.112 +-63.8481 -42.6181 112.264 +-66.4682 -43.4479 114.45 +-67.3885 -43.1473 113.658 +-70.712 -44.3579 116.847 +-71.3 -43.8298 115.455 +-74.6589 -44.9836 118.495 +-75.2986 -44.4768 117.16 +-77.8 -45.0588 118.693 +-78.2691 -44.4551 117.103 +-80.7561 -44.9892 118.51 +-81.3691 -44.4693 117.14 +-83.5081 -44.7781 117.954 +-84.1026 -44.2528 116.57 +-86.6035 -44.722 117.806 +-86.7821 -43.987 115.87 +-88.5572 -44.0633 116.071 +-89.2846 -43.615 114.89 +-92.257 -44.2496 116.561 +-93.823 -44.1889 116.402 +-96.7931 -44.7696 117.931 +-97.8902 -44.4682 117.137 +-100.723 -44.941 118.383 +-101.446 -44.4619 117.121 +-104.317 -44.9126 118.308 +-105.417 -44.5878 117.452 +-107.743 -44.7724 117.939 +-108.381 -44.2496 116.561 +-112.115 -44.9754 118.473 +-112.28 -44.2574 116.582 +-115.458 -44.7192 117.798 +-116.554 -44.3596 116.851 +-120.462 -45.0528 118.677 +-121.774 -44.7543 117.891 +-124.972 -45.1351 118.894 +-126.572 -44.9218 118.332 +-98.4999 -34.3538 90.4942 +-98.4776 -33.7516 88.9078 +-98.4333 -33.1521 87.3287 +-98.5865 -32.6282 85.9485 +-98.7952 -32.1298 84.6357 +-99.0612 -31.6563 83.3885 +-98.4877 -30.925 81.462 +-98.6405 -30.4325 80.1648 +-98.7767 -29.9415 78.8713 +-98.9729 -29.4747 77.6418 +-98.5365 -28.8284 75.9393 +-98.5421 -28.3211 74.603 +-98.6086 -27.8381 73.3306 +-98.8165 -27.4005 72.1779 +-98.6932 -26.8774 70.7999 +-98.7113 -26.3998 69.5419 +-99.1156 -26.0298 68.5671 +-99.1046 -25.5549 67.3163 +-99.3221 -25.144 66.2337 +-99.1993 -24.6522 64.9382 +-99.1424 -24.1832 63.7029 +-99.07 -23.7164 62.4734 +-98.8989 -23.2324 61.1983 +-98.7954 -22.7706 59.9818 +-99.4359 -22.4828 59.2237 +-99.3064 -22.0235 58.0138 +-99.2473 -21.5853 56.8595 +-99.0028 -21.1126 55.6143 +-99.5182 -20.8051 54.8045 +-99.2465 -20.3364 53.5698 +-99.1335 -19.9059 52.4357 +-99.6192 -19.5981 51.625 +-99.3063 -19.1364 50.4088 +-98.9784 -18.6782 49.2017 +-99.4339 -18.3709 48.3923 +-99.0799 -17.9172 47.1972 +-99.3377 -17.578 46.3037 +-99.0471 -17.1452 45.1636 +-99.4649 -16.8378 44.3538 +-99.2407 -16.4241 43.2641 +-98.8218 -15.9837 42.1039 +-99.211 -15.677 41.296 +-99.6844 -15.3833 40.5223 +-99.1384 -14.9353 39.3422 +-98.7627 -14.519 38.2457 +-99.0232 -14.1993 37.4035 +-99.3686 -13.892 36.5941 +-99.7064 -13.5838 35.7821 +-99.1936 -13.1626 34.6726 +-98.6677 -12.7456 33.5742 +-99.0716 -12.4514 32.7992 +-98.6176 -12.0516 31.7462 +-98.9102 -11.7457 30.9404 +-99.1952 -11.439 30.1323 +-99.3773 -11.1206 29.2937 +-98.9775 -10.7398 28.2905 +-99.142 -10.4227 27.4554 +-99.4906 -10.1251 26.6713 +-98.6758 -9.71222 25.5837 +-98.9108 -9.40625 24.7777 +-99.5256 -9.13509 24.0635 +-99.9405 -8.84368 23.2958 +-105.016 -8.94806 23.5708 +-108.35 -8.87796 23.3862 +-115.008 -9.04903 23.8368 +-122.171 -9.2164 24.2777 +-162.178 -11.7104 30.8474 +-163.932 -11.3093 29.7907 +-165.777 -10.9046 28.7247 +-168.501 -10.5448 27.777 +-3231.56 -191.928 505.573 +-649.998 -36.5381 96.248 +-379.584 -20.1339 53.0362 +-382.045 -19.0562 50.1976 +-380.417 -17.775 46.8225 +-380.443 -16.5788 43.6715 +-378.75 -15.3155 40.3438 +-379.609 -14.1604 37.3011 +-381.237 -13.0284 34.3192 +-3264.03 -101.351 266.976 +-3266.4 -91.2374 240.336 +-691.811 -17.1692 45.2268 +-696.299 -15.1148 39.8151 +-704.234 -13.0988 34.5046 +-707.226 -10.959 28.868 +-3274.5 -40.5834 106.904 +-3275.58 -30.4422 80.1901 +-3275.8 -20.2936 53.4569 +-3276.18 -10.1472 26.7294 +94.7 3.55271e-15 -1.7053e-13 +95.2964 -0.28813 0.780131 +95.3855 -0.576844 1.56184 +95.3673 -0.86521 2.34261 +95.3419 -1.15351 3.1232 +94.7098 -1.43266 3.87901 +95.5688 -1.73527 4.69834 +94.723 -2.00722 5.43469 +95.5666 -2.31528 6.26877 +95.5047 -2.60413 7.05085 +95.4355 -2.89278 7.83239 +96.2548 -3.2111 8.69424 +96.1703 -3.50199 9.48186 +96.0784 -3.79264 10.2688 +96.0785 -4.0872 11.0663 +95.9719 -4.3775 11.8524 +95.7589 -4.66267 12.6245 +96.5279 -4.99811 13.5327 +95.4107 -5.23558 14.1757 +96.1628 -5.57528 15.0954 +95.8218 -5.8538 15.8495 +95.8674 -6.15592 16.6675 +95.4142 -6.42567 17.3979 +95.2487 -6.71393 18.1784 +95.1738 -7.00883 18.9769 +95.1889 -7.31133 19.7959 +95.878 -7.66898 20.7642 +95.6812 -7.95855 21.5483 +95.283 -8.23077 22.2853 +96.1371 -8.61395 23.3228 +95.7232 -8.88638 24.0604 +96.363 -9.25875 25.0686 +96.1262 -9.54974 25.8565 +95.882 -9.84001 26.6424 +96.3955 -10.2106 27.6458 +96.23 -10.512 28.462 +95.9616 -10.8026 29.2487 +96.4445 -11.1803 30.2712 +96.1592 -11.4714 31.0596 +96.8093 -11.8774 32.1587 +96.4125 -12.1578 32.9179 +96.0089 -12.4367 33.673 +96.7189 -12.863 34.8274 +96.3913 -13.1549 35.6178 +96.8907 -13.5627 36.7218 +96.5454 -13.8551 37.5136 +96.1928 -14.1465 38.3025 +95.9245 -14.4506 39.1259 +96.379 -14.8669 40.253 +96.0919 -15.1721 41.0793 +96.5218 -15.5938 42.2212 +96.1253 -15.885 43.0097 +96.5305 -16.3118 44.1651 +96.116 -16.603 44.9535 +96.4069 -17.0188 46.0794 +95.9746 -17.3096 46.8668 +96.3296 -17.7455 48.047 +96.582 -18.1683 49.1918 +96.2082 -18.4764 50.0261 +96.4354 -18.9031 51.1813 +96.6484 -19.3325 52.344 +96.0717 -19.6064 53.0855 +96.3456 -20.0567 54.3048 +96.6041 -20.5102 55.5326 +96.0838 -20.8015 56.3213 +96.231 -21.2401 57.5089 +96.4471 -21.7001 58.7543 +96.6474 -22.1629 60.0075 +96.7487 -22.6093 61.216 +96.0931 -22.8813 61.9526 +96.2504 -23.3498 63.221 +96.3913 -23.821 64.4968 +95.7876 -24.1115 65.2835 +95.8197 -24.5651 66.5115 +96.555 -25.2083 68.253 +96.6304 -25.6891 69.5548 +96.5313 -26.1296 70.7474 +95.8695 -26.4204 71.5349 +95.8998 -26.9055 72.8483 +95.8358 -27.3707 74.1079 +96.5216 -28.0603 75.975 +95.8112 -28.3511 76.7623 +95.6972 -28.8215 78.036 +96.3157 -29.5229 79.9352 +96.2373 -30.0217 81.2855 +96.141 -30.5222 82.6407 +96.3193 -31.1188 84.2562 +96.1846 -31.6235 85.6226 +95.0967 -31.8168 86.146 +94.8623 -32.2974 87.4472 +94.3988 -32.7055 88.5522 +94.1321 -33.1873 89.8567 +93.8483 -33.67 91.1637 +94.3046 -34.43 93.2214 +94.5932 -35.1446 95.1563 +94.4475 -35.7101 96.6872 +93.9459 -36.149 97.8758 +93.6282 -36.6649 99.2725 +93.6852 -37.3391 101.098 +94.2999 -38.2531 103.573 +94.1041 -38.8552 105.203 +94.2032 -39.5929 107.2 +94.0205 -40.2262 108.915 +94.1242 -40.9967 111.001 +91.7336 -40.6794 110.142 +91.1925 -41.1748 111.483 +88.527 -40.7019 110.203 +88.2122 -41.3023 111.829 +85.9342 -40.9787 110.952 +85.944 -41.7447 113.026 +83.5127 -41.322 111.882 +83.375 -42.0295 113.798 +80.9152 -41.5621 112.532 +81.1899 -42.4986 115.068 +78.6459 -41.9578 113.603 +78.2308 -42.5447 115.192 +75.5665 -41.8982 113.442 +75.8668 -42.8929 116.135 +71.2813 -41.1013 111.284 +71.4614 -42.0316 113.803 +69.8 -41.8861 113.409 +70.0226 -42.8797 116.1 +67.8249 -42.3926 114.781 +67.3271 -42.9615 116.321 +65.8669 -42.9189 116.206 +65.1989 -43.3928 117.489 +62.9231 -42.7858 115.845 +62.1554 -43.1912 116.943 +59.3993 -42.1944 114.244 +57.6454 -41.8719 113.371 +55.2785 -41.0712 111.203 +54.1589 -41.1738 111.481 +52.469 -40.8294 110.548 +52.1963 -41.5902 112.608 +50.2871 -41.0449 111.132 +49.634 -41.5154 112.405 +47.5376 -40.7646 110.373 +47.1687 -41.487 112.329 +45.3694 -40.9486 110.871 +44.8616 -41.5712 112.556 +43.1287 -41.0539 111.156 +42.2933 -41.3789 112.036 +40.5983 -40.8498 110.603 +40.1708 -41.5954 112.622 +38.5344 -41.0892 111.252 +37.7686 -41.5015 112.368 +36.4588 -41.3158 111.865 +35.3315 -41.3248 111.89 +34.0412 -41.1305 111.363 +33.5651 -41.9329 113.536 +31.8089 -41.1291 111.36 +31.2224 -41.8275 113.251 +29.5629 -41.0799 111.226 +28.9472 -41.7742 113.106 +27.489 -41.2524 111.693 +26.8385 -41.9429 113.563 +25.4068 -41.4125 112.127 +24.5422 -41.7932 113.158 +23.0879 -41.1516 111.42 +22.3421 -41.7648 113.081 +20.9593 -41.1824 111.504 +20.2844 -41.9963 113.707 +18.7408 -40.995 110.996 +17.8849 -41.4613 112.259 +16.6451 -41.0334 111.101 +15.8328 -41.6661 112.814 +14.6365 -41.2999 111.822 +13.6976 -41.6522 112.776 +12.4912 -41.1751 111.484 +11.6261 -41.8324 113.264 +10.4413 -41.348 111.952 +9.54063 -41.9997 113.717 +8.39868 -41.6124 112.668 +7.38687 -41.8435 113.294 +6.25415 -41.3453 111.945 +5.27795 -41.8819 113.398 +4.16002 -41.2728 111.749 +3.15956 -41.8036 113.186 +2.08556 -41.3958 112.082 +1.05853 -42.024 113.783 +9.76996e-15 -41.4021 112.099 +-1.05591 -41.92 113.501 +-2.08556 -41.3958 112.082 +-3.19359 -42.2537 114.404 +-4.17049 -41.3768 112.03 +-5.29103 -41.9859 113.679 +-6.28555 -41.5528 112.507 +-7.42961 -42.0856 113.949 +-8.39868 -41.6124 112.668 +-9.52493 -41.9308 113.53 +-10.4936 -41.5552 112.513 +-11.7219 -42.1771 114.197 +-12.5539 -41.382 112.044 +-13.8787 -42.2031 114.268 +-14.7096 -41.506 112.38 +-16.0025 -42.1127 114.023 +-16.8399 -41.5136 112.401 +-18.1658 -42.1123 114.022 +-18.9755 -41.5084 112.387 +-20.3339 -42.0985 113.984 +-21.0635 -41.3872 112.058 +-22.5608 -42.1736 114.188 +-23.4504 -41.7977 113.17 +-24.8014 -42.2346 114.353 +-25.49 -41.5479 112.494 +-27.1199 -42.3826 114.753 +-27.7815 -41.6914 112.882 +-29.3207 -42.3133 114.566 +-30.1677 -41.9204 113.502 +-31.8483 -42.666 115.521 +-32.43 -41.9325 113.535 +-34.0729 -42.5672 115.253 +-34.7027 -41.9297 113.527 +-36.4392 -42.6206 115.398 +-37.0435 -41.9786 113.66 +-38.9113 -42.7571 115.767 +-39.4924 -42.1106 114.017 +-41.44 -42.9095 116.18 +-41.9006 -42.1601 114.151 +-43.8956 -42.9463 116.28 +-44.36 -42.226 114.329 +-46.0523 -42.6743 115.543 +-46.8029 -42.2426 114.374 +-48.8546 -42.9698 116.343 +-49.3731 -42.3386 114.634 +-51.2796 -42.8919 116.132 +-51.7328 -42.2249 114.327 +-53.7912 -42.861 116.049 +-54.218 -42.1906 114.234 +-56.6886 -43.097 116.688 +-57.138 -42.4529 114.944 +-59.2383 -43.0291 116.504 +-60.0568 -42.6615 115.509 +-62.1554 -43.1912 116.943 +-62.8323 -42.7238 115.677 +-65.1989 -43.3928 117.489 +-65.4443 -42.6434 115.46 +-68.6631 -43.8141 118.63 +-69.1339 -43.2109 116.996 +-73.3219 -44.8999 121.569 +-73.35 -44.0165 119.177 +-76.6383 -45.0766 122.048 +-77.5647 -44.7243 121.094 +-80.308 -45.404 122.934 +-80.6537 -44.7187 121.079 +-83.3889 -45.3497 122.787 +-83.3298 -44.4568 120.37 +-85.6606 -44.8386 121.403 +-86.0039 -44.1758 119.609 +-88.416 -44.5708 120.678 +-88.6749 -43.8762 118.797 +-91.4026 -44.3962 120.205 +-92.2235 -43.978 119.073 +-95.3501 -44.6443 120.877 +-96.4108 -44.3266 120.017 +-99.6542 -44.9956 121.828 +-99.9834 -44.3376 120.047 +-103.275 -44.9828 121.794 +-103.775 -44.3993 120.214 +-106.289 -44.672 120.952 +-106.831 -44.1104 119.432 +-110.861 -44.971 121.762 +-110.349 -43.9804 119.08 +-115.097 -45.0725 122.037 +-115.425 -44.4135 120.252 +-119.85 -45.3147 122.692 +-120.373 -44.7226 121.089 +-125.349 -45.7644 123.91 +-125.247 -44.9349 121.664 +-98.9684 -34.8924 94.4734 +-98.5707 -34.1509 92.4657 +-98.2859 -33.463 90.6032 +-98.9812 -33.1165 89.6649 +-98.5058 -32.3867 87.6889 +-98.6596 -31.875 86.3034 +-98.7952 -31.3648 84.9221 +-98.9869 -30.8794 83.608 +-99.0868 -30.3724 82.235 +-99.3953 -29.9353 81.0516 +-98.7767 -29.2286 79.1382 +-99.1262 -28.8175 78.0251 +-99.0766 -28.2963 76.614 +-98.6198 -27.6686 74.9146 +-98.6086 -27.1753 73.5788 +-98.6589 -26.7055 72.3068 +-98.2965 -26.132 70.754 +-99.1905 -25.8964 70.116 +-98.3117 -25.2039 68.2412 +-99.1855 -24.9668 67.5993 +-99.4035 -24.5654 66.5123 +-99.2812 -24.0851 65.2119 +-99.06 -23.5878 63.8653 +-99.07 -23.1518 62.6848 +-98.8989 -22.6792 61.4054 +-98.7954 -22.2284 60.1848 +-99.4359 -21.9475 59.4241 +-99.2216 -21.4808 58.1606 +-99.2473 -21.0713 57.052 +-99.0028 -20.6099 55.8025 +-99.5182 -20.3098 54.99 +-99.2465 -19.8522 53.7511 +-99.1335 -19.432 52.6132 +-98.832 -18.9803 51.3905 +-99.3063 -18.6808 50.5794 +-98.9784 -18.2335 49.3683 +-99.2565 -17.9015 48.4695 +-98.9017 -17.4592 47.2718 +-99.2482 -17.144 46.4185 +-99.7661 -16.8585 45.6455 +-99.6454 -16.4667 44.5847 +-99.2407 -16.0331 43.4105 +-98.8218 -15.6031 42.2464 +-99.211 -15.3037 41.4358 +-98.7674 -14.8789 40.2855 +-99.2304 -14.5932 39.512 +-98.7627 -14.1733 38.3752 +-99.116 -13.8742 37.5652 +-99.4616 -13.574 36.7524 +-99.7064 -13.2603 35.9032 +-99.1936 -12.8492 34.79 +-98.7617 -12.454 33.7199 +-99.0716 -12.1549 32.9102 +-98.6176 -11.7647 31.8537 +-98.9102 -11.4661 31.0451 +-99.2903 -11.1773 30.2633 +-98.7097 -10.7829 29.1955 +-98.8819 -10.4739 28.3588 +-99.2378 -10.1844 27.575 +-99.4906 -9.88401 26.7616 +-98.6758 -9.48097 25.6703 +-98.7176 -9.16434 24.813 +-100.591 -9.01301 24.4033 +-102.366 -8.84265 23.942 +-108.322 -9.00999 24.3951 +-111.37 -8.90817 24.1194 +-122.037 -9.3735 25.3793 +-142.712 -10.5096 28.4555 +-163.157 -11.5007 31.1389 +-163.932 -11.04 29.8915 +-164.695 -10.5755 28.6339 +-171.652 -10.4863 28.3923 +-632.604 -36.677 99.3054 +-665.109 -36.4972 98.8185 +-381.562 -19.7569 53.493 +-380.956 -18.5495 50.2239 +-380.021 -17.3337 46.932 +-378.557 -16.1038 43.6022 +-379.048 -14.9626 40.5122 +-379.112 -13.8052 37.3784 +-380.44 -12.6916 34.3634 +-382.24 -11.5862 31.3705 +-381.421 -10.4002 28.1593 +-692.708 -16.7822 45.4388 +-697.497 -14.7803 40.0185 +-702.236 -12.7507 34.5232 +-709.025 -10.7253 29.0394 +-145.112 -1.75566 4.75356 +-3275.18 -29.7137 80.4517 +-729.489 -4.41159 11.9447 +-737.372 -2.22946 6.0364 +95.6 3.55271e-15 1.13687e-13 +95.2964 -0.281079 0.782699 +95.3855 -0.562727 1.56698 +95.3673 -0.844037 2.35032 +95.5418 -1.12764 3.14005 +94.7098 -1.3976 3.89178 +95.6687 -1.69457 4.71873 +94.723 -1.9581 5.45258 +95.5666 -2.25862 6.28941 +95.5047 -2.5404 7.07406 +95.4355 -2.82199 7.85817 +96.2548 -3.13252 8.72286 +95.2752 -3.38449 9.42451 +96.0784 -3.69983 10.3026 +95.9792 -3.98306 11.0913 +95.9719 -4.27037 11.8914 +95.7589 -4.54857 12.666 +96.5279 -4.8758 13.5773 +96.2996 -5.15504 14.3548 +96.1628 -5.43885 15.1451 +95.8218 -5.71055 15.9017 +95.8674 -6.00527 16.7224 +95.5123 -6.27488 17.4732 +95.2487 -6.54963 18.2382 +95.1738 -6.83732 19.0393 +95.1889 -7.13241 19.861 +95.6831 -7.4661 20.7902 +95.6812 -7.76379 21.6192 +95.283 -8.02935 22.3587 +96.1371 -8.40316 23.3996 +95.9164 -8.68638 24.1883 +96.363 -9.03217 25.1512 +96.03 -9.30675 25.9158 +95.882 -9.59921 26.7301 +95.5348 -9.87176 27.4891 +96.23 -10.2548 28.5557 +95.9616 -10.5382 29.3449 +96.4445 -10.9067 30.3709 +96.0647 -11.1797 31.1312 +96.8093 -11.5867 32.2646 +96.3185 -11.8487 32.9941 +96.0089 -12.1323 33.7839 +96.7189 -12.5482 34.9421 +96.3913 -12.833 35.7351 +96.8907 -13.2308 36.8427 +96.5454 -13.5161 37.6371 +96.2848 -13.8135 38.4654 +95.9245 -14.097 39.2547 +96.4704 -14.5168 40.4238 +96.0919 -14.8008 41.2146 +96.5218 -15.2122 42.3601 +96.1253 -15.4963 43.1513 +96.5305 -15.9126 44.3105 +96.116 -16.1967 45.1015 +96.4069 -16.6023 46.2311 +95.9746 -16.886 47.0211 +96.3296 -17.3112 48.2052 +96.582 -17.7237 49.3538 +96.1207 -18.0079 50.1452 +96.4354 -18.4405 51.3497 +96.6484 -18.8594 52.5163 +96.0717 -19.1266 53.2603 +96.3456 -19.5659 54.4836 +96.6041 -20.0083 55.7154 +96.0838 -20.2924 56.5067 +96.231 -20.7203 57.6982 +96.4471 -21.169 58.9477 +96.6474 -21.6206 60.205 +96.0026 -21.8859 60.9439 +96.0931 -22.3214 62.1565 +96.2504 -22.7784 63.4292 +96.3913 -23.238 64.7091 +96.5157 -23.7003 65.9962 +95.8197 -23.9639 66.7304 +96.555 -24.5914 68.4777 +96.6304 -25.0604 69.7837 +96.5313 -25.4901 70.9803 +95.8695 -25.7739 71.7704 +96.0552 -26.2896 73.2066 +95.8358 -26.7009 74.3519 +95.8322 -27.1781 75.6806 +95.8112 -27.6573 77.015 +96.3764 -28.3157 78.8485 +96.3157 -28.8005 80.1983 +96.2373 -29.287 81.5531 +96.141 -29.7752 82.9127 +96.5387 -30.4265 84.7261 +96.1846 -30.8496 85.9044 +95.9599 -31.32 87.2141 +94.8623 -31.507 87.7351 +96.0251 -32.4548 90.3743 +94.1321 -32.3752 90.1525 +94.4041 -33.0406 92.0055 +94.3046 -33.5874 93.5282 +94.0476 -34.0869 94.919 +94.4475 -34.8362 97.0055 +94.0129 -35.2894 98.2676 +93.6282 -35.7677 99.5993 +93.6852 -36.4254 101.431 +94.2999 -37.317 103.914 +94.1041 -37.9044 105.549 +94.2032 -38.624 107.553 +93.9575 -39.2154 109.2 +94.1242 -39.9935 111.367 +93.7652 -40.5626 112.951 +91.1925 -40.1672 111.85 +93.2211 -41.8115 116.429 +88.2122 -40.2916 112.197 +90.754 -42.2181 117.561 +85.944 -40.7232 113.399 +87.3557 -42.1657 117.415 +83.375 -41.001 114.172 +84.7736 -42.4783 118.286 +81.1899 -41.4586 115.446 +82.5673 -42.9718 119.66 +78.2308 -41.5036 115.572 +80.0178 -43.2803 120.519 +75.8668 -41.8432 116.517 +77.6162 -43.6589 121.573 +71.4614 -41.003 114.178 +73.1 -42.793 119.162 +70.0226 -41.8304 116.482 +69.958 -42.6561 118.781 +67.3271 -41.9102 116.704 +68.8715 -43.7782 121.906 +65.1989 -42.3309 117.876 +66.2372 -43.937 122.348 +62.1554 -42.1342 117.328 +63.0816 -43.7133 121.725 +57.6454 -40.8472 113.744 +57.8987 -41.9652 116.857 +54.1589 -40.1662 111.847 +54.9908 -41.7445 116.243 +52.1963 -40.5724 112.979 +52.6706 -41.9382 116.782 +49.634 -40.4994 112.775 +50.3097 -42.0859 117.193 +47.1687 -40.4717 112.698 +47.6629 -41.9659 116.859 +44.8616 -40.5538 112.927 +45.2835 -42.0501 117.093 +42.2933 -40.3663 112.405 +43.0727 -42.2789 117.731 +40.1708 -40.5775 112.993 +40.6357 -42.2694 117.704 +37.7686 -40.4859 112.738 +38.096 -42.115 117.274 +35.3315 -40.3135 112.258 +35.9155 -42.333 117.881 +33.5651 -40.9067 113.91 +33.7241 -42.5385 118.453 +31.2224 -40.8039 113.623 +31.2321 -42.3374 117.893 +28.9472 -40.7519 113.479 +29.1537 -42.6797 118.847 +26.8385 -40.9165 113.937 +26.8414 -42.6801 118.848 +24.5422 -40.7705 113.53 +24.4999 -42.5996 118.624 +22.3421 -40.7428 113.453 +22.088 -42.3384 117.896 +20.2844 -40.9685 114.082 +19.8046 -42.2617 117.683 +17.8849 -40.4467 112.629 +17.6611 -42.4726 118.27 +15.8328 -40.6464 113.185 +15.3921 -42.3691 117.982 +13.6976 -40.6329 113.147 +13.2019 -42.4533 118.216 +11.6261 -40.8087 113.637 +11.0165 -42.5584 118.509 +9.54063 -40.9719 114.091 +8.78234 -42.4482 118.202 +7.38687 -40.8195 113.667 +6.61003 -42.6287 118.705 +5.27795 -40.857 113.771 +4.42526 -42.8301 119.266 +3.15956 -40.7806 113.559 +2.21297 -42.8497 119.32 +1.05853 -40.9956 114.157 +1.24345e-14 -42.552 118.491 +-1.05591 -40.8942 113.875 +-2.20424 -42.6808 118.85 +-3.19359 -41.2197 114.781 +-4.42526 -42.8301 119.266 +-5.29103 -40.9584 114.054 +-6.61526 -42.6625 118.799 +-7.42961 -41.0557 114.325 +-8.87302 -42.8866 119.423 +-9.52493 -40.9047 113.904 +-11.1124 -42.9288 119.54 +-11.7219 -41.145 114.573 +-13.3483 -42.9238 119.526 +-13.8787 -41.1703 114.644 +-15.5018 -42.671 118.822 +-16.0025 -41.0821 114.398 +-17.9116 -43.0752 119.948 +-18.1658 -41.0818 114.397 +-20.0393 -42.7625 119.077 +-20.3339 -41.0682 114.359 +-22.2443 -42.6378 118.73 +-22.5608 -41.1416 114.564 +-24.6334 -42.8318 119.27 +-24.8014 -41.2011 114.729 +-26.8622 -42.7132 118.94 +-27.1199 -41.3454 115.131 +-29.3561 -42.9762 119.672 +-29.3207 -41.2778 114.943 +-31.8853 -43.2229 120.359 +-31.8483 -41.6219 115.901 +-34.1124 -43.0282 119.817 +-34.0729 -41.5255 115.633 +-36.2187 -42.6906 118.877 +-36.4392 -41.5776 115.778 +-39.2655 -43.4078 120.874 +-38.9113 -41.7107 116.149 +-41.5937 -43.2658 120.479 +-41.44 -41.8595 116.563 +-44.1145 -43.3016 120.579 +-43.8956 -41.8953 116.662 +-46.7542 -43.4159 120.897 +-46.0523 -41.63 115.924 +-49.4189 -43.5122 121.165 +-48.8546 -41.9183 116.726 +-51.883 -43.402 120.858 +-51.2796 -41.8422 116.515 +-54.8196 -43.6494 121.547 +-53.7912 -41.8121 116.431 +-57.5532 -43.69 121.66 +-56.6886 -42.0423 117.072 +-60.4344 -43.8032 121.975 +-59.2383 -41.9761 116.887 +-63.1693 -43.7741 121.894 +-62.1554 -42.1342 117.328 +-66.6912 -44.2382 123.186 +-65.1989 -42.3309 117.876 +-69.8104 -44.3751 123.568 +-68.6631 -42.7419 119.02 +-73.4971 -44.8138 124.789 +-73.3219 -43.8012 121.97 +-78.35 -45.8662 127.72 +-76.6383 -43.9735 122.45 +-81.8396 -46.0346 128.189 +-80.308 -44.2929 123.339 +-84.6811 -45.8027 127.543 +-83.3889 -44.2399 123.191 +-87.4146 -45.4948 126.686 +-85.6606 -43.7413 121.803 +-89.6945 -44.9442 125.153 +-88.416 -43.4801 121.075 +-95.902 -46.2907 128.902 +-91.4026 -43.3097 120.601 +-97.6899 -45.4448 126.546 +-95.3501 -43.5517 121.275 +-101.586 -45.5634 126.877 +-99.6542 -43.8945 122.229 +-105.832 -45.7828 127.488 +-103.275 -43.8819 122.195 +-109.313 -45.6242 127.046 +-106.289 -43.5788 121.35 +-113.388 -45.6716 127.178 +-110.861 -43.8705 122.163 +-117.238 -45.5827 126.93 +-115.097 -43.9695 122.438 +-122.384 -45.9389 127.922 +-119.85 -44.2057 123.096 +-125.965 -45.655 127.132 +-125.349 -44.6444 124.318 +-98.2942 -34.4022 95.7971 +-98.9684 -34.0385 94.7844 +-98.6414 -33.3391 92.8366 +-98.2859 -32.6441 90.9015 +-98.3338 -32.0947 89.3716 +-98.5058 -31.5941 87.9776 +-98.5133 -31.0488 86.4592 +-98.7952 -30.5972 85.2017 +-98.3181 -29.9202 83.3165 +-99.0868 -29.6291 82.5058 +-98.6405 -28.9809 80.7009 +-98.7767 -28.5133 79.3987 +-99.0495 -28.0905 78.2214 +-99.0766 -27.6038 76.8662 +-98.5421 -26.9703 75.1019 +-98.6086 -26.5103 73.821 +-98.5801 -26.0312 72.4869 +-98.2965 -25.4925 70.9869 +-98.7113 -25.1406 70.007 +-98.3117 -24.5871 68.4658 +-99.4282 -24.4154 67.9877 +-99.4035 -23.9642 66.7313 +-99.1993 -23.4763 65.3725 +-99.06 -23.0105 64.0755 +-99.07 -22.5852 62.8912 +-98.8989 -22.1242 61.6076 +-98.7954 -21.6844 60.3829 +-99.4359 -21.4104 59.6197 +-99.3912 -20.9909 58.4517 +-99.2473 -20.5557 57.2398 +-99.0028 -20.1055 55.9862 +-99.5182 -19.8128 55.171 +-99.2465 -19.3664 53.928 +-99.1335 -18.9564 52.7864 +-98.832 -18.5159 51.5596 +-99.3063 -18.2236 50.7459 +-98.8018 -17.7555 49.4424 +-99.2565 -17.4635 48.6291 +-99.8818 -17.2007 47.8974 +-99.2482 -16.7245 46.5713 +-99.2269 -16.3571 45.5482 +-99.6454 -16.0638 44.7315 +-99.2407 -15.6407 43.5534 +-98.8218 -15.2213 42.3855 +-99.211 -14.9292 41.5722 +-98.7674 -14.5148 40.4181 +-99.1384 -14.2229 39.6053 +-98.7627 -13.8265 38.5015 +-99.116 -13.5346 37.6888 +-99.4616 -13.2418 36.8734 +-98.9595 -12.8389 35.7516 +-99.1936 -12.5348 34.9045 +-98.7617 -12.1492 33.8309 +-99.0716 -11.8575 33.0185 +-98.6176 -11.4768 31.9585 +-98.9102 -11.1855 31.1473 +-99.2903 -10.9038 30.3629 +-98.7097 -10.5191 29.2916 +-98.9775 -10.2275 28.4797 +-99.2378 -9.9352 27.6657 +-99.3945 -9.6328 26.8237 +-98.6758 -9.24896 25.7548 +-100.939 -9.14128 25.455 +-100.591 -8.79244 24.4836 +-110.226 -9.28853 25.865 +-108.322 -8.7895 24.4754 +-121.407 -9.47328 26.3795 +-122.037 -9.14411 25.4629 +-163.351 -11.7352 32.678 +-163.157 -11.2193 31.2414 +-165.11 -10.8472 30.2054 +-164.695 -10.3167 28.7282 +-628.209 -37.4383 104.251 +-632.604 -35.7795 99.6323 +-381.643 -20.4298 56.8892 +-381.562 -19.2734 53.6691 +-379.57 -18.0297 50.2058 +-380.021 -16.9095 47.0865 +-380.244 -15.7798 43.9406 +-379.048 -14.5964 40.6455 +-379.41 -13.4779 37.5309 +-380.44 -12.381 34.4765 +-379.451 -11.2202 31.244 +-381.421 -10.1457 28.252 +-382.965 -9.051 25.2036 +-697.497 -14.4186 40.1502 +-3272.01 -57.9569 161.388 +-709.025 -10.4628 29.135 +-145.411 -1.71623 4.77906 +-3275.18 -28.9866 80.7165 +-729.389 -4.30302 11.9823 +-737.372 -2.1749 6.05627 +95.7 0 -1.7053e-13 +95.6964 -0.275155 0.788499 +95.6854 -0.550292 1.57694 +95.6672 -0.825381 2.36525 +95.7416 -1.10156 3.15669 +95.6089 -1.37536 3.9413 +95.6687 -1.65192 4.73383 +95.6213 -1.92693 5.52189 +95.5666 -2.20178 6.30954 +95.5047 -2.47647 7.09669 +95.4355 -2.75097 7.88331 +95.359 -3.02526 8.66933 +96.1703 -3.33031 9.54351 +96.0784 -3.60671 10.3356 +95.9792 -3.88281 11.1268 +95.8727 -4.15862 11.9171 +95.7589 -4.43409 12.7066 +95.5389 -4.7044 13.4811 +95.4107 -4.97892 14.2678 +95.1766 -5.2476 15.0378 +96.0188 -5.57827 15.9854 +95.6707 -5.84211 16.7414 +95.5123 -6.11696 17.5291 +95.2487 -6.38479 18.2966 +95.1738 -6.66524 19.1002 +96.0675 -7.01709 20.1085 +95.878 -7.29303 20.8993 +95.6812 -7.5684 21.6884 +95.283 -7.82727 22.4302 +95.9434 -8.1752 23.4273 +95.7232 -8.45074 24.2169 +95.4958 -8.72562 25.0046 +96.1262 -9.08159 26.0246 +95.882 -9.35762 26.8157 +95.5348 -9.62331 27.577 +95.3717 -9.90755 28.3916 +95.8665 -10.2628 29.4097 +96.4445 -10.6322 30.4681 +96.1592 -10.9091 31.2615 +96.715 -11.2841 32.3363 +96.4125 -11.5618 33.1319 +96.0089 -11.827 33.892 +96.7189 -12.2324 35.0539 +96.3913 -12.5101 35.8494 +96.0562 -12.7867 36.6422 +96.5454 -13.1759 37.7575 +96.1928 -13.453 38.5515 +95.9245 -13.7422 39.3803 +96.379 -14.1381 40.5147 +96.0919 -14.4283 41.3464 +95.7967 -14.718 42.1766 +96.1253 -15.1063 43.2893 +96.5305 -15.5121 44.4523 +96.116 -15.789 45.2458 +96.496 -16.1994 46.4219 +95.9746 -16.461 47.1716 +96.2413 -16.8601 48.3151 +96.6699 -17.2934 49.5568 +96.1207 -17.5547 50.3056 +96.4354 -17.9764 51.514 +95.9556 -18.253 52.3067 +96.9333 -18.8125 53.91 +96.4313 -19.0905 54.7066 +96.6041 -19.5047 55.8936 +96.8471 -19.9389 57.1378 +96.231 -20.1988 57.8828 +96.4471 -20.6363 59.1363 +96.6474 -21.0764 60.3977 +96.7487 -21.5009 61.6141 +96.1755 -21.7783 62.4088 +96.2504 -22.2051 63.6321 +96.3099 -22.6341 64.8614 +96.5157 -23.1038 66.2074 +95.8197 -23.3608 66.944 +95.9161 -23.8139 68.2423 +95.9164 -24.2492 69.4898 +95.9797 -24.7066 70.8006 +95.8695 -25.1252 72 +96.0552 -25.628 73.4408 +95.9901 -26.0708 74.7099 +95.9854 -26.5365 76.0442 +95.8112 -26.9612 77.2614 +95.8481 -27.4518 78.6673 +95.7914 -27.9228 80.017 +95.5684 -28.3515 81.2455 +96.2884 -29.0704 83.3056 +95.9536 -29.481 84.4821 +96.4748 -30.164 86.4393 +95.6722 -30.4402 87.2309 +96.1462 -31.1298 89.2071 +95.9544 -31.6147 90.5967 +95.7442 -32.1009 91.9899 +95.5155 -32.5882 93.3865 +95.9566 -33.3157 95.471 +95.6162 -33.7832 96.8108 +95.8663 -34.4698 98.7784 +95.9533 -35.1113 100.617 +95.5498 -35.5831 101.969 +95.1942 -36.0803 103.393 +94.8844 -36.6032 104.892 +94.1684 -36.9758 105.96 +93.9488 -37.5501 107.605 +93.7687 -38.1517 109.329 +93.8752 -38.8838 111.427 +93.9499 -39.6195 113.536 +93.9928 -40.3589 115.654 +94.4248 -41.2854 118.309 +93.863 -41.7938 119.766 +94.3395 -42.7815 122.597 +94.19 -43.5074 124.677 +93.7224 -44.1001 126.375 +94.0801 -45.101 129.244 +93.553 -45.6977 130.954 +93.8293 -46.7069 133.846 +92.9154 -47.1405 135.088 +92.4155 -47.7948 136.963 +89.8213 -47.3603 135.718 +89.1905 -47.954 137.419 +86.8354 -47.6153 136.449 +86.2308 -48.2324 138.217 +84.4 -48.1645 138.023 +83.6135 -48.692 139.534 +82.3692 -48.9595 140.301 +81.6896 -49.5707 142.052 +79.7632 -49.4257 141.637 +79.0514 -50.033 143.377 +76.452 -49.4363 141.667 +75.1397 -49.6544 142.292 +71.0161 -47.9734 137.475 +69.872 -48.265 138.311 +67.2808 -47.5382 136.228 +66.268 -47.9098 137.293 +63.695 -47.1352 135.073 +63.2017 -47.8907 137.238 +61.0322 -47.3731 135.755 +60.1196 -47.8205 137.037 +58.1389 -47.4113 135.864 +57.2475 -47.8831 137.216 +55.4754 -47.6153 136.449 +54.7724 -48.267 138.316 +52.5685 -47.5866 136.367 +51.6733 -48.0775 137.773 +49.6491 -47.5079 136.141 +48.8649 -48.1174 137.888 +46.8161 -47.4726 136.04 +46.0381 -48.1082 137.861 +44.1481 -47.5771 136.339 +43.2555 -48.1128 137.874 +41.511 -47.697 136.683 +40.4866 -48.1003 137.838 +38.6676 -47.5464 136.251 +37.7323 -48.0706 137.753 +35.9496 -47.5059 136.135 +35.2969 -48.4403 138.813 +33.4952 -47.8018 136.983 +32.5309 -48.3464 138.544 +30.8749 -47.8581 137.145 +29.9052 -48.4294 138.782 +28.2588 -47.899 137.262 +27.226 -48.3994 138.696 +25.561 -47.7622 136.87 +24.5096 -48.2561 138.285 +23.0272 -47.9019 137.27 +22.0384 -48.5853 139.228 +20.4863 -48.0268 137.628 +19.3831 -48.5088 139.009 +17.9392 -48.1375 137.945 +16.8446 -48.7108 139.588 +15.3866 -48.2334 138.22 +14.1948 -48.5708 139.187 +12.8293 -48.3144 138.452 +11.6512 -48.7763 139.776 +10.2263 -48.1836 138.077 +9.0596 -48.803 139.852 +7.65675 -48.1365 137.942 +6.43386 -48.5516 139.132 +5.09533 -48.0742 137.764 +3.86895 -48.6798 139.499 +2.54282 -47.9975 137.544 +1.28978 -48.6946 139.542 +1.24345e-14 -48.0047 137.565 +-1.28978 -48.6946 139.542 +-2.54805 -48.0963 137.827 +-3.86895 -48.6798 139.499 +-5.11627 -48.2719 138.33 +-6.47312 -48.8478 139.981 +-7.67245 -48.235 138.225 +-9.07792 -48.9019 140.136 +-10.2472 -48.2821 138.36 +-11.6747 -48.8749 140.058 +-12.8293 -48.3144 138.452 +-14.3481 -49.0956 140.691 +-15.4493 -48.4297 138.783 +-16.9126 -48.9075 140.152 +-18.0367 -48.3991 138.695 +-19.5398 -48.9006 140.132 +-20.6672 -48.4512 138.844 +-22.1714 -48.8785 140.069 +-23.3713 -48.6179 139.322 +-24.8067 -48.8413 139.962 +-25.943 -48.4759 138.915 +-27.6634 -49.177 140.924 +-28.5641 -48.4166 138.745 +-30.4036 -49.2366 141.095 +-31.3739 -48.6314 139.36 +-33.072 -49.1506 140.848 +-34.1926 -48.7968 139.834 +-35.9039 -49.2732 141.2 +-36.8689 -48.7207 139.616 +-38.859 -49.5061 141.867 +-39.6252 -48.724 139.626 +-41.7426 -49.5925 142.115 +-42.4482 -48.7737 139.768 +-44.704 -49.7239 142.491 +-45.6392 -49.1839 140.944 +-47.6919 -49.8366 142.814 +-48.732 -49.4155 141.608 +-50.9274 -50.1483 143.707 +-51.6351 -49.408 141.586 +-54.0099 -50.2514 144.003 +-54.689 -49.5061 141.867 +-57.1538 -50.3654 144.33 +-57.8048 -49.6149 142.179 +-60.2895 -50.4277 144.508 +-61.2107 -49.9163 143.043 +-62.8749 -50.0122 143.317 +-64.0799 -49.7387 142.534 +-66.5911 -50.459 144.598 +-67.2742 -49.7839 142.663 +-69.9173 -50.5479 144.853 +-70.704 -49.9569 143.159 +-73.4021 -50.7035 145.298 +-74.1286 -50.0758 143.5 +-77.103 -50.9519 146.01 +-78.041 -50.4639 144.612 +-80.6213 -51.0267 146.225 +-81.5003 -50.5021 144.721 +-84.314 -51.1634 146.616 +-85.3265 -50.7173 145.338 +-88.4393 -51.5024 147.588 +-89.15 -50.8751 145.79 +-93.6916 -52.4055 150.176 +-94.87 -52.021 149.074 +-99.6927 -53.6005 153.6 +-99.6248 -52.5294 150.531 +-102.356 -52.9357 151.695 +-102.447 -51.9762 148.946 +-105.089 -52.3116 149.907 +-105.24 -51.4066 147.313 +-108.92 -52.2151 149.63 +-109.438 -51.4952 147.567 +-108.359 -50.0521 143.432 +-107.036 -48.5391 139.096 +-114.622 -51.0369 146.254 +-118.196 -51.679 148.094 +-122.3 -52.5136 150.486 +-122.886 -51.8224 148.505 +-127.553 -52.8335 151.402 +-120.074 -48.8544 140 +-98.0833 -39.2028 112.341 +-98.3465 -38.6163 110.661 +-98.5862 -38.0315 108.985 +-98.4745 -37.3237 106.957 +-98.9292 -36.8417 105.575 +-98.8306 -36.164 103.633 +-98.6362 -35.4655 101.632 +-98.958 -34.9637 100.194 +-98.5724 -34.224 98.0741 +-98.2247 -33.5127 96.0356 +-98.4778 -33.0175 94.6165 +-98.7121 -32.5233 93.2004 +-98.2146 -31.7995 91.1262 +-98.4057 -31.3099 89.7232 +-98.5058 -30.799 88.2591 +-98.5865 -30.2899 86.8002 +-98.7952 -29.8272 85.4743 +-98.8383 -29.3216 84.0253 +-98.6375 -28.7525 82.3944 +-98.7915 -28.2948 81.083 +-98.8528 -27.8171 79.7141 +-98.5133 -27.2353 78.0469 +-98.5365 -26.7624 76.6918 +-98.6198 -26.3123 75.4017 +-98.6869 -25.8636 74.116 +-99.3682 -25.5789 73.3001 +-98.7725 -24.9713 71.5589 +-99.4301 -24.6864 70.7424 +-99.4371 -24.2427 69.4712 +-99.4282 -23.801 68.2053 +-98.6708 -23.1889 66.4514 +-99.2812 -22.9044 65.6359 +-99.1424 -22.4501 64.3341 +-99.07 -22.0168 63.0924 +-98.8989 -21.5674 61.8047 +-98.7954 -21.1387 60.5761 +-98.4238 -20.6591 59.2018 +-99.052 -20.3928 58.4386 +-98.9063 -19.9695 57.2256 +-99.4314 -19.6844 56.4085 +-98.7427 -19.1636 54.9162 +-99.2465 -18.879 54.1006 +-99.1335 -18.4793 52.9553 +-98.832 -18.0499 51.7246 +-99.3063 -17.765 50.9083 +-99.7731 -17.4788 50.0882 +-99.4339 -17.0544 48.8718 +-99.0799 -16.6332 47.6649 +-99.5167 -16.3477 46.8468 +-98.4179 -15.8154 45.3214 +-98.8331 -15.5318 44.5088 +-99.2407 -15.2471 43.6928 +-99.6408 -14.9612 42.8734 +-99.211 -14.5535 41.7052 +-99.5927 -14.2677 40.8862 +-99.2304 -13.8778 39.7689 +-98.6703 -13.4659 38.5885 +-99.0232 -13.1817 37.7741 +-99.3686 -12.8965 36.9567 +-98.9595 -12.5158 35.866 +-99.2873 -12.2308 35.0492 +-98.6677 -11.8322 33.9069 +-99.0716 -11.5591 33.1242 +-98.6176 -11.188 32.0608 +-99.574 -10.9772 31.4567 +-99.6707 -10.6701 30.5767 +-101.762 -10.5713 30.2938 +-103.95 -10.471 30.0063 +-109.305 -10.6677 30.5699 +-111.41 -10.5256 30.1626 +-118.237 -10.8036 30.9592 +-124.218 -10.9663 31.4256 +-161.874 -13.793 39.526 +-163.883 -13.4626 38.5791 +-164.136 -12.9832 37.2053 +-163.499 -12.4367 35.6392 +-169.387 -12.3726 35.4555 +-172.545 -12.0837 34.6278 +-616.569 -41.3302 118.438 +-3216.3 -205.984 590.278 +-379.831 -23.1943 66.4669 +-378.856 -22.0098 63.0725 +-379.621 -20.9306 59.9797 +-379.174 -19.7868 56.7019 +-380.376 -18.7299 53.6734 +-380.461 -17.6172 50.4847 +-380.219 -16.4925 47.2618 +-379.748 -15.3626 44.0237 +-380.141 -14.2701 40.8932 +-379.311 -13.1353 37.6412 +-380.142 -12.06 34.5597 +-378.753 -10.9177 31.2864 +-378.729 -9.82057 28.1423 +-380.271 -8.76117 25.1064 +-380.988 -7.67753 22.0011 +-380.578 -6.57147 18.8315 +-146.261 -2.104 6.02932 +-145.811 -1.67764 4.80753 +-3275.38 -28.2588 80.9798 +-144.378 -0.830323 2.37942 +-146.694 -0.421789 1.2087 +94.8 3.55271e-15 -2.27374e-13 +95.7964 -0.268309 0.791776 +95.6854 -0.53604 1.58184 +95.6672 -0.804005 2.3726 +95.6417 -1.07191 3.16319 +95.7088 -1.34114 3.95768 +95.6687 -1.60914 4.74854 +96.5196 -1.89466 5.59109 +96.3647 -2.16267 6.382 +95.5047 -2.41233 7.11875 +95.4355 -2.67972 7.90782 +96.2548 -2.9746 8.77797 +96.2697 -3.24744 9.58312 +96.0784 -3.51331 10.3677 +95.9792 -3.78226 11.1614 +95.7736 -4.04671 11.9418 +95.7589 -4.31926 12.746 +95.6378 -4.58731 13.5371 +95.4107 -4.84997 14.3122 +95.1766 -5.1117 15.0845 +95.8218 -5.42266 16.0022 +95.5724 -5.68497 16.7762 +95.5123 -5.95854 17.5835 +95.3467 -6.22582 18.3723 +95.1738 -6.49262 19.1596 +95.8723 -6.82146 20.13 +95.878 -7.10415 20.9642 +95.4867 -7.35741 21.7116 +96.1563 -7.69446 22.7062 +95.9434 -7.96348 23.5001 +95.7232 -8.23188 24.2921 +95.4958 -8.49965 25.0823 +96.1262 -8.84639 26.1055 +95.882 -9.11528 26.899 +96.3955 -9.45856 27.912 +96.23 -9.73781 28.7361 +95.8665 -9.99704 29.5011 +96.4445 -10.3568 30.5628 +96.0647 -10.6161 31.3278 +95.7724 -10.8847 32.1206 +96.3185 -11.2514 33.2025 +96.0089 -11.5207 33.9973 +96.7189 -11.9156 35.1628 +96.3913 -12.1861 35.9608 +96.8907 -12.5638 37.0755 +96.5454 -12.8347 37.8748 +96.1928 -13.1046 38.6713 +95.9245 -13.3863 39.5027 +96.379 -13.7719 40.6407 +96.0919 -14.0546 41.475 +96.5218 -14.4453 42.6278 +96.1253 -14.7151 43.4239 +96.5305 -15.1104 44.5904 +96.0265 -15.3658 45.3442 +96.4069 -15.7653 46.5232 +96.0633 -16.0496 47.3619 +96.3296 -16.4385 48.5097 +96.6699 -16.8455 49.7108 +96.2082 -17.1156 50.5079 +96.4354 -17.5108 51.6742 +96.6484 -17.9087 52.8481 +96.1578 -18.1787 53.6449 +96.4313 -18.596 54.8766 +95.8368 -18.8486 55.6219 +96.0838 -19.2694 56.8637 +96.3153 -19.693 58.1136 +96.4471 -20.1018 59.3201 +96.6474 -20.5306 60.5854 +96.0026 -20.7825 61.3289 +96.1755 -21.2142 62.6028 +96.2504 -21.6301 63.8299 +96.3913 -22.0665 65.1179 +96.4348 -22.4866 66.3575 +95.8197 -22.7558 67.152 +95.9161 -23.1972 68.4544 +95.9164 -23.6212 69.7058 +95.9797 -24.0668 71.0206 +96.026 -24.5145 72.3417 +95.8998 -24.9239 73.5499 +95.8358 -25.3548 74.8216 +95.9854 -25.8492 76.2805 +95.9632 -26.3046 77.6245 +96.3764 -26.8882 79.3467 +95.7914 -27.1997 80.2657 +96.3859 -27.8535 82.1951 +96.2884 -28.3175 83.5645 +95.9536 -28.7175 84.7447 +95.967 -29.2281 86.2516 +96.3196 -29.8525 88.0942 +95.5042 -30.1211 88.8869 +96.5908 -31.0002 91.481 +95.7442 -31.2695 92.2758 +95.5155 -31.7443 93.6767 +95.9566 -32.4529 95.7677 +95.6162 -32.9083 97.1117 +95.9338 -33.6005 99.1546 +95.4849 -34.0351 100.437 +95.7486 -34.7338 102.499 +94.9973 -35.0734 103.501 +95.339 -35.8263 105.723 +94.5541 -36.1655 106.724 +94.4576 -36.7756 108.524 +93.8317 -37.1884 109.742 +94.311 -38.0527 112.293 +93.9499 -38.5935 113.889 +94.4189 -39.4918 116.539 +94.4248 -40.2162 118.677 +93.863 -40.7114 120.138 +93.8105 -41.4399 122.288 +93.6674 -42.1454 124.37 +94.0665 -43.1159 127.234 +93.627 -43.7215 129.021 +93.8885 -44.6737 131.831 +93.7741 -45.4703 134.182 +93.4056 -46.162 136.223 +93.4901 -47.0985 138.987 +92.153 -47.3315 139.674 +91.3327 -47.8341 141.157 +89.0501 -47.5651 140.364 +88.0579 -47.9788 141.585 +85.95 -47.7789 140.995 +85.2878 -48.381 142.771 +83.5812 -48.3932 142.807 +82.5962 -48.8229 144.075 +81.0777 -48.9391 144.418 +80.8522 -49.8477 147.1 +78.1318 -49.2141 145.23 +77.683 -50.0056 147.565 +73.6902 -48.4904 143.094 +71.2926 -47.9708 141.561 +68.8023 -47.3543 139.742 +68.4659 -48.217 142.287 +65.7693 -47.4098 139.905 +65.0758 -48.0337 141.747 +62.7905 -47.4756 140.1 +62.2243 -48.2131 142.276 +60.0494 -47.7012 140.765 +59.3732 -48.3752 142.754 +56.8013 -47.4907 140.144 +56.6285 -48.6101 143.448 +54.0734 -47.681 140.706 +53.6428 -48.6172 143.468 +51.2444 -47.7644 140.952 +50.3245 -48.2712 142.447 +47.7431 -47.1588 139.165 +47.2409 -48.0867 141.903 +45.1422 -47.3883 139.842 +44.4768 -48.19 142.208 +42.5033 -47.5725 140.386 +41.9564 -48.5556 143.287 +39.7287 -47.5863 140.426 +38.7839 -48.1306 142.033 +37.135 -47.8013 141.061 +36.044 -48.1845 142.192 +34.2376 -47.5956 140.454 +33.2235 -48.0969 141.933 +31.4986 -47.5603 140.35 +30.583 -48.2442 142.368 +28.8503 -47.6351 140.57 +28.0096 -48.5029 143.131 +26.2556 -47.7895 141.026 +25.2193 -48.3675 142.732 +23.6529 -47.9291 141.438 +22.5853 -48.5016 143.127 +21.0012 -47.9589 141.526 +19.9444 -48.6207 143.479 +18.3535 -47.9737 141.569 +17.2635 -48.6294 143.504 +15.7943 -48.2288 142.322 +14.6452 -48.8146 144.051 +13.1257 -48.1502 142.09 +11.9022 -48.5369 143.232 +10.4844 -48.1204 142.002 +9.26717 -48.6284 143.501 +7.85039 -48.0754 141.87 +6.62142 -48.673 143.633 +5.24539 -48.2083 142.262 +3.98413 -48.8309 144.099 +2.61263 -48.0379 141.759 +1.32818 -48.8457 144.143 +1.15463e-14 -47.949 141.496 +-1.32818 -48.8457 144.143 +-2.60739 -47.9416 141.475 +-3.99198 -48.9272 144.383 +-5.24539 -48.2083 142.262 +-6.65196 -48.8974 144.295 +-7.85039 -48.0754 141.87 +-9.38927 -49.269 145.392 +-10.5053 -48.2163 142.285 +-12.0121 -48.985 144.554 +-13.2041 -48.4378 142.939 +-14.7027 -49.0062 144.616 +-15.8047 -48.2609 142.417 +-17.4786 -49.235 145.292 +-18.4876 -48.3242 142.604 +-20.2577 -49.3842 145.732 +-21.2239 -48.4676 143.027 +-22.94 -49.2632 145.375 +-23.9032 -48.4365 142.935 +-25.7639 -49.4122 145.814 +-26.6376 -48.4849 143.078 +-28.3923 -49.1657 145.087 +-29.3273 -48.4227 142.894 +-31.1811 -49.1878 145.152 +-32.1847 -48.5963 143.407 +-34.0892 -49.3505 145.632 +-35.0924 -48.7841 143.961 +-37.0711 -49.5575 146.243 +-38.0543 -48.985 144.554 +-39.9356 -49.5601 146.251 +-41.0487 -49.1673 145.092 +-42.9987 -49.7617 146.846 +-43.7161 -48.9298 144.391 +-46.0389 -49.8827 147.203 +-46.6333 -48.9538 144.462 +-49.1053 -49.9844 147.503 +-50.1844 -49.5704 146.281 +-52.3235 -50.1888 148.106 +-53.1653 -49.5547 146.235 +-55.4787 -50.2813 148.379 +-55.9887 -49.3701 145.69 +-58.5197 -50.2335 148.238 +-59.3816 -49.648 146.51 +-62.122 -50.6147 149.363 +-62.6342 -49.7543 146.824 +-65.2475 -50.5554 149.188 +-65.8773 -49.8095 146.987 +-68.9836 -50.918 150.258 +-69.5113 -50.1073 147.866 +-72.1152 -50.7868 149.871 +-72.8171 -50.1176 147.896 +-76.2866 -51.3311 151.477 +-76.3643 -50.2501 148.287 +-80.3602 -51.729 152.651 +-80.3109 -50.5868 149.281 +-83.6688 -51.584 152.223 +-83.6598 -50.4976 149.017 +-86.986 -51.4177 151.733 +-87.8475 -50.8635 150.097 +-90.8521 -51.5374 152.086 +-92.3 -51.3086 151.411 +-96.2293 -52.431 154.723 +-97.4967 -52.077 153.678 +-100.79 -52.7869 155.773 +-101.215 -51.9855 153.408 +-104.397 -52.5933 155.202 +-104.353 -51.5721 152.188 +-107.793 -52.2682 154.243 +-108.204 -51.4855 151.933 +-110.789 -51.7358 152.671 +-112.822 -51.7127 152.603 +-112.656 -50.6892 149.583 +-107.036 -47.2821 139.528 +-111.589 -48.3996 142.826 +-121.266 -51.6478 152.412 +-125.648 -52.5539 155.085 +-125.964 -51.7448 152.698 +-99.1666 -40.0117 118.074 +-98.2998 -38.9593 114.968 +-98.2741 -38.2616 112.909 +-98.2179 -37.5671 110.86 +-98.5862 -37.0465 109.324 +-98.4745 -36.3571 107.289 +-98.3328 -35.6713 105.265 +-98.2953 -35.0368 103.393 +-98.5686 -34.5236 101.878 +-98.3442 -33.847 99.8819 +-98.5724 -33.3377 98.3789 +-98.8499 -32.8524 96.9469 +-98.4077 -32.1393 94.8424 +-98.7121 -31.681 93.4901 +-98.9278 -31.2009 92.0732 +-98.4057 -30.499 90.0021 +-99.1587 -30.2002 89.1202 +-98.6596 -29.5273 87.1346 +-98.8689 -29.0764 85.8039 +-98.3924 -28.4333 83.9062 +-98.5626 -27.9865 82.5877 +-98.716 -27.541 81.2729 +-98.8528 -27.0967 79.9618 +-99.2028 -26.7157 78.8374 +-99.2309 -26.2531 77.4724 +-98.5421 -25.6106 75.5764 +-98.6869 -25.1938 74.3464 +-98.7377 -24.7584 73.0614 +-98.9312 -24.3637 71.8967 +-98.7113 -23.8732 70.4492 +-98.794 -23.4622 69.2364 +-99.4282 -23.1846 68.4172 +-99.4035 -22.7561 67.1529 +-99.1993 -22.2928 65.7855 +-99.1424 -21.8687 64.534 +-99.1529 -21.4645 63.3415 +-98.8155 -20.9912 61.9445 +-99.3825 -20.7136 61.1254 +-99.2672 -20.2965 59.8947 +-99.052 -19.8647 58.6203 +-99.0768 -19.4859 57.5024 +-99.0028 -19.0919 56.3399 +-99.5182 -18.8139 55.5196 +-99.2465 -18.3901 54.2687 +-98.9594 -17.9692 53.0267 +-98.832 -17.5824 51.8854 +-99.3063 -17.3049 51.0665 +-98.9784 -16.8906 49.8437 +-99.4339 -16.6127 49.0237 +-99.0799 -16.2024 47.813 +-99.5167 -15.9243 46.9924 +-99.2269 -15.5325 45.836 +-98.8331 -15.1296 44.6472 +-99.2407 -14.8522 43.8286 +-98.8218 -14.4539 42.6532 +-99.211 -14.1766 41.8348 +-98.8591 -13.7958 40.7111 +-99.2304 -13.5184 39.8925 +-99.5018 -13.2277 39.0347 +-99.0232 -12.8403 37.8915 +-99.4616 -12.5742 37.1064 +-98.8662 -12.1802 35.9435 +-99.2873 -11.9141 35.1582 +-98.7617 -11.5367 34.0447 +-99.0716 -11.2597 33.2271 +-99.374 -10.9818 32.4071 +-100.807 -10.8253 31.9452 +-101.383 -10.5723 31.1986 +-105.672 -10.6933 31.5556 +-107.584 -10.5564 31.1518 +-112.374 -10.6831 31.5257 +-113.333 -10.4299 30.7784 +-129.705 -11.5444 34.0674 +-158.605 -13.6395 40.2499 +-162.165 -13.46 39.7201 +-164.659 -13.1761 38.8823 +-165.303 -12.7369 37.5863 +-167.007 -12.3745 36.5169 +-172.219 -12.2536 36.1601 +-175.773 -11.991 35.3852 +-3210.72 -209.65 618.672 +-382.147 -23.8403 70.3523 +-379.93 -22.5995 66.6907 +-380.234 -21.5179 63.4988 +-378.241 -20.3144 59.9473 +-378.285 -19.2291 56.7448 +-377.211 -18.093 53.3922 +-378.877 -17.0895 50.4307 +-380.318 -16.0696 47.421 +-381.038 -15.0155 44.3106 +-380.141 -13.9005 41.0202 +-379.112 -12.7884 37.7384 +-380.839 -11.7692 34.7307 +-380.646 -10.6881 31.5405 +-380.523 -9.61155 28.3635 +-379.872 -8.52532 25.1581 +-380.489 -7.4689 22.0406 +-379.779 -6.38787 18.8505 +-146.061 -2.04671 6.03979 +-146.611 -1.64315 4.84892 +-148.449 -1.2476 3.68164 +-145.978 -0.81778 2.41325 +-146.394 -0.410025 1.20997 +94.8 3.55271e-15 -2.27374e-13 +94.7964 -0.258428 0.785876 +95.6854 -0.521745 1.58662 +95.6672 -0.782564 2.37976 +95.7416 -1.04442 3.17605 +95.7088 -1.30537 3.96962 +95.6687 -1.56623 4.76287 +95.6213 -1.82697 5.55577 +96.4644 -2.10717 6.40788 +95.5047 -2.348 7.14023 +96.332 -2.63277 8.00619 +96.3544 -2.89826 8.81357 +96.1703 -3.15755 9.60206 +96.0784 -3.41961 10.399 +95.9792 -3.68139 11.195 +95.8727 -3.94289 11.9902 +95.7589 -4.20407 12.7845 +95.5389 -4.46035 13.5638 +95.4107 -4.72063 14.3554 +96.1628 -5.02692 15.2868 +95.8218 -5.27805 16.0505 +95.6707 -5.53905 16.8441 +95.5123 -5.79964 17.6366 +95.3467 -6.05979 18.4277 +96.2497 -6.39092 19.4347 +95.8723 -6.63955 20.1907 +95.878 -6.9147 21.0275 +95.4867 -7.1612 21.7771 +96.1563 -7.48927 22.7747 +95.2657 -7.69635 23.4044 +95.7232 -8.01235 24.3654 +95.3994 -8.26464 25.1326 +96.1262 -8.61048 26.1843 +95.882 -8.87219 26.9802 +96.3955 -9.20632 27.9962 +96.23 -9.47812 28.8228 +95.9616 -9.74009 29.6194 +96.4445 -10.0806 30.655 +96.1592 -10.3431 31.4533 +95.7724 -10.5945 32.2176 +96.4125 -10.962 33.3352 +96.0089 -11.2135 34.0999 +96.7189 -11.5979 35.2689 +96.3913 -11.8611 36.0693 +96.8907 -12.2287 37.1873 +96.5454 -12.4924 37.9891 +96.1928 -12.7551 38.788 +96.7498 -13.1414 39.9627 +96.4704 -13.4174 40.8019 +96.0919 -13.6798 41.6001 +96.5218 -14.0601 42.7564 +96.1253 -14.3226 43.5549 +96.4406 -14.6937 44.6833 +96.0265 -14.956 45.481 +96.4069 -15.3449 46.6635 +96.6842 -15.7225 47.8118 +96.3296 -16.0001 48.6561 +96.6699 -16.3963 49.8608 +96.2082 -16.6592 50.6603 +96.4354 -17.0439 51.8301 +96.6484 -17.4311 53.0075 +96.1578 -17.6939 53.8067 +96.3456 -18.084 54.9932 +96.6041 -18.4929 56.2365 +96.1687 -18.7721 57.0855 +96.231 -19.151 58.2379 +96.4471 -19.5657 59.4991 +96.564 -19.9658 60.7158 +96.0026 -20.2283 61.5139 +96.0931 -20.6308 62.7379 +96.2504 -21.0532 64.0225 +96.3913 -21.4781 65.3144 +95.7876 -21.74 66.111 +95.8197 -22.149 67.3546 +95.9161 -22.5785 68.6609 +95.9164 -22.9913 69.9161 +95.9797 -23.425 71.2349 +95.8695 -23.8218 72.4417 +95.8998 -24.2592 73.7718 +95.8358 -24.6787 75.0474 +95.8322 -25.1197 76.3885 +95.8112 -25.5626 77.7354 +95.6972 -25.9867 79.0252 +95.6416 -26.4329 80.382 +95.7171 -26.9226 81.871 +96.141 -27.5201 83.6882 +95.9536 -27.9516 85.0003 +95.822 -28.4056 86.381 +95.8161 -28.9045 87.898 +95.6469 -29.3616 89.2881 +95.9544 -29.9747 91.1524 +95.7442 -30.4356 92.5542 +95.5155 -30.8977 93.9594 +95.8878 -31.5649 95.9883 +95.6844 -32.0535 97.474 +95.9338 -32.7045 99.4537 +95.5519 -33.1506 100.81 +95.7486 -33.8075 102.808 +95.2598 -34.2324 104.1 +95.4039 -34.8946 106.114 +95.5182 -35.56 108.137 +95.4117 -36.1566 109.952 +94.5239 -36.4637 110.885 +94.56 -37.1357 112.929 +94.0115 -37.5889 114.307 +93.9928 -38.2652 116.364 +94.4248 -39.1437 119.035 +93.863 -39.6257 120.501 +93.8693 -40.3601 122.734 +93.7255 -41.0467 124.822 +94.1239 -41.9917 127.696 +93.627 -42.5555 129.411 +93.7207 -43.4049 131.993 +93.5533 -44.1537 134.271 +93.569 -45.0096 136.873 +93.3289 -45.7634 139.166 +93.4778 -46.7315 142.11 +93.3182 -47.5706 144.661 +90.7497 -47.1804 143.475 +90.5448 -48.0182 146.022 +87.8 -47.5056 144.464 +87.2575 -48.1781 146.509 +84.9871 -47.8951 145.648 +84.7434 -48.7564 148.267 +82.7209 -48.5992 147.789 +81.9142 -49.1556 149.481 +80.0839 -49.0987 149.308 +79.6909 -49.93 151.836 +76.1012 -48.7417 148.223 +73.8757 -48.3834 147.133 +70.3237 -47.1107 143.263 +69.5855 -47.6986 145.051 +67.8437 -47.6009 144.753 +66.9101 -48.0707 146.182 +64.6269 -47.5612 144.633 +64.3291 -48.5146 147.532 +61.8475 -47.8192 145.417 +61.2057 -48.5383 147.604 +58.629 -47.7118 145.091 +58.1344 -48.5721 147.707 +55.8177 -47.9067 145.683 +58.3494 -51.4729 156.528 +53.0351 -48.115 146.317 +51.6572 -48.2281 146.661 +49.4118 -47.5056 144.464 +48.6542 -48.2044 146.589 +46.2824 -47.2897 143.807 +45.8401 -48.3428 147.009 +43.7712 -47.6849 145.009 +42.8383 -48.2541 146.74 +40.8158 -47.5846 144.704 +39.8355 -48.1172 146.324 +38.0301 -47.648 144.897 +37.2579 -48.479 147.424 +35.1598 -47.5743 144.673 +34.3273 -48.37 147.092 +32.455 -47.6977 145.048 +31.5001 -48.3659 147.08 +29.7853 -47.8673 145.564 +28.9026 -48.7145 148.14 +27.1065 -48.0223 146.035 +25.9785 -48.4949 147.472 +24.3256 -47.9779 145.9 +23.2652 -48.6292 147.881 +21.4744 -47.7317 145.151 +20.5057 -48.6558 147.961 +18.8288 -47.9036 145.674 +17.7842 -48.7601 148.279 +16.2124 -48.1853 146.531 +14.9615 -48.5386 147.605 +13.4656 -48.0797 146.21 +12.2632 -48.6752 148.02 +10.7564 -48.0523 146.126 +9.52968 -48.6723 148.012 +8.05974 -48.0413 146.093 +6.83952 -48.9354 148.812 +5.38499 -48.1716 146.489 +4.10455 -48.965 148.902 +2.69291 -48.1935 146.555 +1.36832 -48.98 148.947 +1.33227e-14 -48.3884 147.148 +-1.36221 -48.7614 148.282 +-2.69291 -48.1935 146.555 +-4.09407 -48.8401 148.522 +-5.39197 -48.2341 146.679 +-6.7959 -48.6233 147.863 +-8.08591 -48.1972 146.567 +-9.57241 -48.8907 148.676 +-10.8541 -48.4887 147.453 +-12.3259 -48.9244 148.778 +-13.5789 -48.4843 147.44 +-15.1149 -49.0363 149.118 +-16.2855 -48.4031 147.193 +-17.8974 -49.0706 149.223 +-19.1091 -48.6167 147.843 +-20.6362 -48.9654 148.903 +-21.8641 -48.598 147.786 +-23.4721 -49.0619 149.196 +-24.5915 -48.5024 147.495 +-26.4076 -49.2962 149.909 +-27.4364 -48.6071 147.813 +-29.3035 -49.3902 150.195 +-30.1478 -48.4499 147.335 +-32.0584 -49.2231 149.686 +-33.1619 -48.7367 148.207 +-35.2147 -49.6201 150.894 +-36.0597 -48.792 148.375 +-38.3551 -49.9066 151.765 +-38.9252 -48.7698 148.308 +-41.3377 -49.9319 151.842 +-42.1875 -49.1837 149.567 +-44.4685 -50.0903 152.323 +-45.2597 -49.3065 149.94 +-47.6578 -50.2596 152.838 +-48.5045 -49.5601 150.711 +-50.6689 -50.2005 152.659 +-51.2659 -49.288 149.884 +-53.9735 -50.3908 153.237 +-54.8908 -49.7985 151.436 +-57.1811 -50.442 153.393 +-58.0066 -49.7854 151.396 +-60.5509 -50.591 153.846 +-61.4959 -50.0446 152.185 +-63.3681 -50.253 152.818 +-64.9568 -50.2233 152.728 +-67.0844 -50.5926 153.851 +-68.2607 -50.2352 152.764 +-70.8976 -50.9353 154.893 +-71.667 -50.2836 152.912 +-73.8569 -50.6263 153.954 +-75.0147 -50.2533 152.819 +-77.7073 -50.8928 154.764 +-78.9068 -50.5385 153.687 +-81.1188 -50.8247 154.557 +-82.5809 -50.6294 153.963 +-85.0541 -51.0396 155.21 +-86.4767 -50.8059 154.5 +-89.5627 -51.5291 156.699 +-89.7383 -50.5726 153.79 +-93.5605 -51.6584 157.092 +-94.5 -51.1308 155.488 +-98.4117 -52.1901 158.709 +-98.9903 -51.4647 156.503 +-103.141 -52.5778 159.888 +-103.069 -51.5263 156.69 +-106.332 -52.1392 158.554 +-106.15 -51.0615 155.277 +-110.167 -51.9945 158.114 +-110.217 -51.0446 155.226 +-115.15 -52.3385 159.16 +-115.002 -51.3061 156.021 +-116.257 -50.9143 154.829 +-106.624 -45.8443 139.412 +-113.373 -47.862 145.547 +-125.478 -52.017 158.183 +-99.0455 -40.3223 122.619 +-98.7521 -39.4845 120.072 +-98.4818 -38.676 117.613 +-98.4257 -37.9691 115.463 +-98.3377 -37.2653 113.323 +-98.7965 -36.7805 111.849 +-98.7161 -36.106 109.798 +-98.4745 -35.3876 107.613 +-98.2666 -34.6966 105.512 +-98.2953 -34.1024 103.705 +-98.6362 -33.6257 102.255 +-98.2078 -32.8988 100.045 +-98.7789 -32.5164 98.8818 +-98.9194 -31.9988 97.3078 +-98.4778 -31.3047 95.197 +-98.6414 -30.8141 93.705 +-98.1433 -30.128 91.6186 +-98.3338 -29.664 90.2076 +-98.4333 -29.1798 88.7351 +-98.7327 -28.7612 87.4622 +-98.8689 -28.301 86.0628 +-99.0612 -27.8632 84.7314 +-99.2366 -27.4265 83.4035 +-98.7915 -26.827 81.5804 +-98.8528 -26.3741 80.203 +-99.1262 -25.9831 79.0142 +-99.2309 -25.553 77.7061 +-98.6975 -24.9669 75.924 +-99.3912 -24.6969 75.1029 +-99.447 -24.2712 73.8082 +-99.5658 -23.8661 72.5762 +-98.7912 -23.2553 70.719 +-98.794 -22.8365 69.4453 +-99.4282 -22.5663 68.6237 +-98.6708 -21.986 66.859 +-99.2812 -21.7162 66.0385 +-99.1424 -21.2855 64.7287 +-99.07 -20.8747 63.4795 +-98.8155 -20.4314 62.1314 +-98.6277 -20.0081 60.8443 +-99.0142 -19.7049 59.9223 +-99.1368 -19.3515 58.8475 +-99.1621 -18.9826 57.7256 +-99.0028 -18.5828 56.5099 +-98.7427 -18.1695 55.2531 +-99.2465 -17.8996 54.4325 +-99.1335 -17.5207 53.2802 +-99.6192 -17.2498 52.4564 +-99.3063 -16.8434 51.2206 +-98.9784 -16.4401 49.9941 +-99.4339 -16.1697 49.1716 +-99.0799 -15.7703 47.9573 +-99.5167 -15.4997 47.1341 +-99.2269 -15.1182 45.9742 +-99.6454 -14.8471 45.1499 +-99.2407 -14.4561 43.9608 +-98.9128 -14.0814 42.8213 +-99.3024 -13.8112 41.9997 +-98.7674 -13.4155 40.7961 +-99.2304 -13.1579 40.0129 +-99.5942 -12.8869 39.1888 +-99.0232 -12.4979 38.0058 +-99.4616 -12.2389 37.2183 +-98.9595 -11.8666 36.086 +-99.2873 -11.5963 35.2643 +-98.7617 -11.2291 34.1474 +-99.8257 -11.0428 33.581 +-99.9413 -10.75 32.6904 +-102.04 -10.6654 32.4334 +-103.19 -10.4737 31.8504 +-109.677 -10.8026 32.8506 +-110.358 -10.5398 32.0512 +-117.168 -10.8418 32.9698 +-121.119 -10.8492 32.9922 +-160.348 -13.8913 42.2431 +-162.276 -13.583 41.3056 +-163.617 -13.2183 40.1966 +-164.271 -12.7945 38.9077 +-166.664 -12.4993 38.0101 +-169.833 -12.2483 37.2468 +-177.393 -12.2852 37.359 +-3204.9 -212.804 647.132 +-380.995 -24.2143 73.6352 +-380.773 -23.1211 70.3108 +-377.078 -21.8317 66.3898 +-377.674 -20.803 63.2614 +-378.635 -19.7933 60.1909 +-380.556 -18.8287 57.2578 +-377.507 -17.6244 53.5955 +-378.282 -16.6076 50.5035 +-380.517 -15.6492 47.589 +-379.748 -14.5656 44.2938 +-378.65 -13.4768 40.9827 +-380.504 -12.4931 37.9912 +-379.345 -11.4104 34.6988 +-381.144 -10.4167 31.677 +-380.523 -9.35523 28.4491 +-380.77 -8.31755 25.2935 +-380.988 -7.27925 22.1361 +-379.379 -6.21096 18.8874 +-145.162 -1.97986 6.02072 +-145.711 -1.58952 4.83371 +-3275.38 -26.7929 81.4766 +-146.178 -0.797062 2.42385 +-144.894 -0.395001 1.20119 +94.8 3.55271e-15 -2.27374e-13 +95.7964 -0.253978 0.796489 +95.6854 -0.507407 1.59126 +95.6672 -0.761059 2.38673 +95.7416 -1.01572 3.18535 +95.6089 -1.26818 3.97708 +95.6687 -1.52319 4.77681 +95.6213 -1.77676 5.57203 +95.5666 -2.0302 6.36682 +95.5047 -2.28348 7.16112 +96.332 -2.56042 8.02962 +96.2548 -2.81571 8.83022 +96.1703 -3.07078 9.63016 +96.0784 -3.32564 10.4294 +96.0785 -3.58393 11.2394 +95.8727 -3.83454 12.0253 +95.7589 -4.08854 12.8219 +95.5389 -4.33778 13.6035 +95.3119 -4.58614 14.3824 +96.1628 -4.88878 15.3315 +96.0188 -5.14355 16.1305 +95.6707 -5.38683 16.8934 +95.5123 -5.64026 17.6882 +95.3467 -5.89327 18.4816 +95.1738 -6.14582 19.2737 +94.9936 -6.39791 20.0642 +95.878 -6.72468 21.089 +95.4867 -6.96441 21.8408 +95.4771 -7.232 22.68 +95.9434 -7.53811 23.6399 +95.7232 -7.79217 24.4367 +95.6885 -8.06189 25.2826 +96.3184 -8.39063 26.3135 +95.7861 -8.61976 27.0321 +95.6305 -8.88227 27.8553 +96.23 -9.21767 28.9071 +95.8665 -9.46304 29.6767 +96.4445 -9.8036 30.7447 +96.0647 -10.049 31.5143 +96.715 -10.4047 32.6299 +96.4125 -10.6607 33.4327 +97.0392 -11.0223 34.5667 +96.7189 -11.2792 35.3721 +96.3913 -11.5351 36.1749 +96.0562 -11.7902 36.9749 +96.5454 -12.1491 38.1003 +96.1928 -12.4046 38.9015 +95.9245 -12.6713 39.7378 +96.379 -13.0363 40.8826 +96.0919 -13.3039 41.7218 +96.5218 -13.6737 42.8815 +96.1253 -13.9291 43.6824 +96.5305 -14.3033 44.8558 +96.0265 -14.545 45.6141 +96.496 -14.937 46.8433 +96.7729 -15.3045 47.9958 +96.2413 -15.5462 48.7538 +96.582 -15.9312 49.9612 +96.1207 -16.1867 50.7623 +96.4354 -16.5755 51.9817 +96.6484 -16.9521 53.1627 +96.9333 -17.3464 54.3994 +96.3456 -17.5871 55.1542 +96.6894 -18.0006 56.4508 +96.0838 -18.2401 57.2022 +96.3153 -18.6411 58.4595 +95.6923 -18.8792 59.2061 +96.564 -19.4172 60.8934 +96.0026 -19.6724 61.6939 +96.1755 -20.0811 62.9755 +96.2504 -20.4747 64.2098 +96.3913 -20.8878 65.5055 +95.7067 -21.1248 66.2485 +95.8197 -21.5403 67.5517 +95.9161 -21.9581 68.8618 +95.9164 -22.3595 70.1207 +95.9797 -22.7813 71.4434 +96.7304 -23.3752 73.3062 +96.0552 -23.6308 74.1076 +95.8358 -24.0005 75.267 +96.5216 -24.6051 77.1632 +95.8112 -24.8601 77.9628 +96.3764 -25.452 79.819 +95.6416 -25.7065 80.6173 +95.7171 -26.1827 82.1106 +96.2884 -26.8049 84.0619 +96.0999 -27.2249 85.379 +95.967 -27.6669 86.765 +95.8161 -28.1102 88.1552 +96.1462 -28.7038 90.0169 +95.9544 -29.151 91.4192 +96.375 -29.7943 93.4366 +96.1407 -30.2453 94.8511 +95.9566 -30.7194 96.3378 +95.6162 -31.1505 97.6897 +96.0014 -31.8282 99.8153 +95.5519 -32.2396 101.105 +95.2848 -32.7193 102.61 +95.2598 -33.2917 104.405 +95.4689 -33.9588 106.497 +95.5825 -34.6062 108.527 +95.5389 -35.2098 110.42 +95.405 -35.7922 112.247 +94.9335 -36.258 113.707 +94.4425 -36.7237 115.168 +93.9928 -37.2137 116.704 +93.9433 -37.8739 118.775 +93.863 -38.5368 120.854 +93.8693 -39.251 123.093 +93.7835 -39.9437 125.266 +93.665 -40.6388 127.446 +94.0234 -41.5614 130.339 +93.7766 -42.2374 132.459 +93.5533 -42.9403 134.663 +93.8958 -43.9256 137.753 +93.6513 -44.6596 140.055 +93.4778 -45.4473 142.525 +93.4227 -46.315 145.246 +92.6553 -46.8472 146.916 +92.2705 -47.5885 149.24 +89.8 -47.2525 148.187 +89.2271 -47.9117 150.254 +87.0718 -47.7216 149.658 +86.4612 -48.3778 151.716 +84.1763 -48.0955 150.83 +83.2533 -48.5862 152.369 +81.6729 -48.6968 152.716 +81.5203 -49.6729 155.777 +78.1177 -48.6582 152.595 +77.0615 -49.0829 153.927 +73.5778 -47.936 150.33 +72.8201 -48.5439 152.237 +69.5926 -47.4864 148.92 +68.7842 -48.0591 150.716 +66.6978 -47.7361 149.703 +66.2808 -48.6129 152.453 +64.732 -48.674 152.644 +63.5147 -48.9851 153.62 +61.3168 -48.5278 152.186 +60.5158 -49.1722 154.207 +60.4692 -50.4728 158.286 +59.3842 -50.9461 159.77 +57.5604 -50.7857 159.267 +53.4341 -48.5163 152.15 +51.1732 -47.847 150.051 +50.2179 -48.3866 151.743 +47.8612 -47.559 149.148 +46.9761 -48.1794 151.093 +45.0943 -47.7762 149.829 +43.9073 -48.0989 150.841 +42.1616 -47.8027 149.912 +41.2877 -48.5011 152.102 +38.8768 -47.3707 148.557 +38.4251 -48.6238 152.487 +36.2171 -47.6584 149.459 +35.2147 -48.2565 151.335 +33.4322 -47.7835 149.852 +32.5568 -48.6147 152.459 +30.5104 -47.6851 149.543 +29.7408 -48.7499 152.883 +27.7663 -47.8397 150.028 +26.9688 -48.9602 153.542 +25.0608 -48.0697 150.749 +24.0042 -48.7952 153.025 +22.1981 -47.9846 150.483 +21.1975 -48.9152 153.401 +19.365 -47.9142 150.262 +18.3502 -48.9295 153.446 +16.6723 -48.1906 151.129 +15.527 -48.989 153.632 +13.8403 -48.06 150.719 +12.6555 -48.852 153.203 +11.0634 -48.0655 150.736 +9.83492 -48.8511 153.2 +8.30048 -48.1168 150.897 +7.05762 -49.1081 154.006 +5.53506 -48.1533 151.011 +4.20925 -48.8344 153.148 +2.76795 -48.1754 151.081 +1.40934 -49.0619 153.861 +1.59872e-14 -48.0308 150.628 +-1.41195 -49.1531 154.147 +-2.76795 -48.1754 151.081 +-4.24328 -49.229 154.385 +-5.556 -48.3355 151.583 +-7.05762 -49.1081 154.006 +-8.33188 -48.2988 151.468 +-9.89597 -49.1543 154.151 +-11.2099 -48.7019 152.732 +-12.8045 -49.4274 155.007 +-14.0582 -48.8165 153.091 +-15.642 -49.3521 154.771 +-16.965 -49.0367 153.782 +-18.52 -49.3821 154.865 +-19.8281 -49.0598 153.854 +-21.3541 -49.2764 154.534 +-22.8383 -49.3685 154.822 +-24.2703 -49.336 154.72 +-25.6709 -49.24 154.419 +-27.1503 -49.2898 154.576 +-28.4262 -48.9766 153.593 +-29.996 -49.1683 154.195 +-31.1782 -48.729 152.817 +-32.8758 -49.0911 153.953 +-34.1599 -48.8237 153.114 +-36.0588 -49.4134 154.963 +-37.1619 -48.9015 153.358 +-39.1721 -49.5693 155.452 +-40.28 -49.0802 153.918 +-42.0138 -49.3539 154.777 +-43.3781 -49.1819 154.237 +-45.0029 -49.2992 154.605 +-46.4725 -49.2366 154.409 +-48.2826 -49.5191 155.295 +-49.557 -49.2442 154.433 +-52.0221 -50.1249 157.195 +-52.7801 -49.3493 154.762 +-55.211 -50.1295 157.209 +-56.2907 -49.6653 155.753 +-58.7834 -50.4305 158.153 +-59.3405 -49.5307 155.331 +-62.3719 -50.6803 158.936 +-62.8219 -49.719 155.922 +-65.9336 -50.8507 159.471 +-66.1181 -49.7163 155.913 +-68.8447 -50.4934 158.35 +-69.3938 -49.6659 155.755 +-72.8116 -50.8729 159.54 +-73.0499 -49.8454 156.318 +-76.3036 -50.8662 159.519 +-77.1278 -50.2489 157.583 +-80.1612 -51.057 160.118 +-81.1863 -50.5697 158.59 +-84.8222 -51.6846 162.086 +-85.1686 -50.7811 159.253 +-88.7943 -51.8198 162.51 +-89.1526 -50.9388 159.747 +-92.3302 -51.6615 162.014 +-93.0834 -51.0163 159.99 +-97.0074 -52.0896 163.356 +-97.7 -51.4094 161.223 +-101.812 -52.5098 164.674 +-102.235 -51.691 162.106 +-105.701 -52.4022 164.336 +-106.249 -51.6564 161.997 +-110.093 -52.5 164.643 +-109.69 -51.3143 160.925 +-114.085 -52.3642 164.217 +-114.243 -51.4553 161.367 +-118.152 -52.2272 163.788 +-117.813 -51.1156 160.302 +-118.638 -50.5293 158.463 +-106.565 -44.5599 139.743 +-99.5139 -40.8566 128.129 +-99.0588 -39.9361 125.242 +-98.2541 -38.9007 121.995 +-98.0749 -38.136 119.597 +-98.2951 -37.5418 117.733 +-98.3628 -36.902 115.727 +-98.3377 -36.2412 113.655 +-98.2179 -35.5604 111.52 +-98.7161 -35.1138 110.119 +-98.4745 -34.4151 107.928 +-98.3328 -33.7659 105.892 +-98.8975 -33.3685 104.646 +-98.6362 -32.7017 102.554 +-98.3442 -32.0391 100.476 +-98.5724 -31.557 98.9645 +-98.2247 -30.901 96.9075 +-98.9684 -30.596 95.951 +-98.5707 -29.9458 93.9118 +-98.4999 -29.4065 92.2206 +-98.7654 -28.9754 90.8687 +-98.5784 -28.4197 89.126 +-98.7327 -27.9708 87.7182 +-98.8689 -27.5233 86.3146 +-99.1355 -27.1178 85.0431 +-99.2366 -26.6728 83.6475 +-99.3953 -26.2493 82.3192 +-98.8528 -25.6493 80.4378 +-99.0495 -25.2496 79.1842 +-99.2309 -24.8508 77.9335 +-98.6975 -24.2808 76.1462 +-99.3912 -24.0183 75.3227 +-98.8165 -23.4546 73.5549 +-98.8518 -23.0438 72.2666 +-98.7912 -22.6163 70.9259 +-99.4371 -22.3535 70.1019 +-99.4282 -21.9462 68.8245 +-99.3221 -21.523 67.4973 +-99.2812 -21.1194 66.2318 +-98.7303 -20.6145 64.6484 +-98.8213 -20.2501 63.5054 +-99.2324 -19.9538 62.5762 +-99.1309 -19.5575 61.3336 +-99.4359 -19.245 60.3535 +-99.2216 -18.8358 59.0702 +-99.1621 -18.4609 57.8945 +-99.0028 -18.0721 56.6753 +-99.5182 -17.809 55.85 +-99.2465 -17.4078 54.5918 +-98.9594 -17.0094 53.3423 +-98.832 -16.6432 52.1942 +-99.3063 -16.3806 51.3705 +-98.9784 -15.9883 50.1404 +-99.4339 -15.7253 49.3155 +-99.0799 -15.337 48.0976 +-99.5167 -15.0737 47.2721 +-99.2269 -14.7028 46.1088 +-98.8331 -14.3214 44.9129 +-99.2407 -14.0589 44.0895 +-99.6408 -13.7952 43.2627 +-99.3024 -13.4317 42.1226 +-99.5927 -13.1558 41.2574 +-98.402 -12.6895 39.795 +-99.5942 -12.5328 39.3035 +-98.1888 -12.052 37.7958 +-99.4616 -11.9026 37.3272 +-98.9595 -11.5405 36.1916 +-99.1936 -11.267 35.3341 +-99.5134 -11.0036 34.508 +-99.92 -10.7495 33.7111 +-100.698 -10.5337 33.0342 +-105.643 -10.7386 33.677 +-107.66 -10.6271 33.3274 +-111.871 -10.7159 33.6057 +-112.653 -10.4633 32.8136 +-125.222 -11.2687 35.3393 +-141.978 -12.3682 38.7874 +-162.179 -13.6638 42.8504 +-163.531 -13.312 41.7471 +-164.004 -12.8855 40.4097 +-166.018 -12.5751 39.4364 +-170.943 -12.4679 39.1 +-173.048 -12.1372 38.063 +-3198.83 -215.444 675.646 +-3204.9 -206.956 649.025 +-381.289 -23.567 73.9076 +-378.515 -22.3524 70.0984 +-378.946 -21.337 66.9141 +-379.545 -20.3315 63.7609 +-379.523 -19.2944 60.5085 +-379.964 -18.2828 57.3359 +-376.617 -17.0996 53.6255 +-379.867 -16.2189 50.8635 +-379.723 -15.1874 47.6287 +-380.145 -14.1802 44.4699 +-379.942 -13.1512 41.2429 +-380.504 -12.1498 38.1024 +-379.047 -11.0881 34.773 +-379.351 -10.0828 31.6203 +-379.427 -9.07193 28.4501 +-380.271 -8.07841 25.3344 +-378.293 -7.02915 22.0438 +-379.379 -6.04028 18.9427 +-146.361 -1.94136 6.08821 +-146.611 -1.55538 4.87778 +-3275.38 -26.0566 81.715 +-145.278 -0.770386 2.41598 +-145.394 -0.385474 1.20887 +94.9 0 1.13687e-13 +95.8963 -0.247038 0.799582 +94.9855 -0.489421 1.5841 +95.8671 -0.741039 2.3985 +95.8416 -0.987963 3.19772 +95.8087 -1.23481 3.99669 +95.7686 -1.48157 4.79536 +95.7211 -1.72821 5.59366 +95.5666 -1.97267 6.38488 +95.6044 -2.22109 7.18894 +96.4316 -2.49043 8.06073 +95.4585 -2.71328 8.78202 +96.1703 -2.98376 9.65747 +96.1778 -3.23473 10.4698 +96.0785 -3.48237 11.2713 +95.9719 -3.72971 12.0719 +95.7589 -3.97268 12.8583 +96.6268 -4.26286 13.7975 +95.5095 -4.46542 14.4531 +95.3738 -4.71128 15.2489 +95.0339 -4.94652 16.0103 +95.8674 -5.24496 16.9762 +95.7087 -5.49171 17.7749 +95.5427 -5.73804 18.5722 +95.3694 -5.98394 19.3681 +96.1652 -6.29327 20.3693 +95.878 -6.53412 21.1488 +95.6812 -6.78084 21.9474 +95.5741 -7.0342 22.7674 +96.1371 -7.33925 23.7548 +95.7232 -7.57136 24.506 +95.6885 -7.83343 25.3543 +96.1262 -8.13656 26.3354 +95.882 -8.38387 27.1359 +95.8217 -8.6478 27.9901 +96.4208 -8.97422 29.0467 +95.9616 -9.204 29.7904 +96.5393 -9.53515 30.8622 +96.1592 -9.77387 31.6348 +95.8666 -10.0212 32.4354 +96.5064 -10.3687 33.5602 +97.1329 -10.7203 34.6982 +96.7189 -10.9595 35.4725 +96.4843 -11.2191 36.3126 +96.149 -11.4672 37.1156 +96.5454 -11.8048 38.2084 +96.2848 -12.0646 39.0492 +96.8415 -12.4299 40.2315 +96.4704 -12.6789 41.0374 +96.1829 -12.9391 41.8798 +96.5218 -13.2862 43.0031 +96.3961 -13.5725 43.9297 +95.8114 -13.7944 44.648 +96.3844 -14.1856 45.9141 +96.5851 -14.5271 47.0196 +96.0633 -14.7617 47.779 +96.3296 -15.1195 48.9369 +96.6699 -15.4938 50.1486 +96.2082 -15.7423 50.9527 +96.4354 -16.1058 52.1292 +96.0422 -16.3683 52.979 +96.1578 -16.72 54.1173 +96.4313 -17.1039 55.3598 +96.6894 -17.4905 56.611 +96.8471 -17.864 57.8201 +96.231 -18.097 58.574 +96.4471 -18.4889 59.8424 +95.9803 -18.7529 60.697 +96.0855 -19.1315 61.9224 +96.2579 -19.5287 63.2082 +95.677 -19.7759 64.0083 +96.4727 -20.3131 65.7469 +95.7876 -20.5435 66.4926 +95.9001 -20.9475 67.8002 +95.996 -21.3536 69.1147 +95.9958 -21.7438 70.3777 +95.9797 -22.1357 71.646 +96.026 -22.5474 72.9788 +96.0552 -22.9611 74.3178 +95.9901 -23.3579 75.602 +95.9854 -23.7751 76.9522 +95.9632 -24.194 78.308 +95.8481 -24.5952 79.6066 +95.7914 -25.0172 80.9725 +95.7171 -25.4408 82.3435 +96.2884 -26.0453 84.3003 +96.0999 -26.4534 85.6212 +95.967 -26.8829 87.0111 +95.8161 -27.3136 88.4053 +96.1462 -27.8904 90.2723 +96.0958 -28.3666 91.8136 +95.7442 -28.7605 93.0883 +96.1407 -29.3882 95.1202 +95.9566 -29.8488 96.611 +95.6844 -30.2893 98.0366 +96.0014 -30.9263 100.098 +95.5519 -31.326 101.392 +95.8811 -31.991 103.545 +95.391 -32.3928 104.845 +95.5988 -33.0413 106.944 +95.6468 -33.648 108.908 +95.5389 -34.2121 110.733 +95.6567 -34.8698 112.862 +95.1202 -35.2998 114.254 +94.9966 -35.8923 116.172 +94.7233 -36.4402 117.945 +94.485 -37.0128 119.799 +94.101 -37.5395 121.503 +93.9281 -38.1626 123.52 +93.7835 -38.8117 125.621 +93.665 -39.4871 127.807 +94.0801 -40.4078 130.787 +93.7766 -41.0404 132.835 +93.5533 -41.7235 135.045 +93.4601 -42.4827 137.503 +93.7051 -43.4188 140.533 +93.4248 -44.1343 142.849 +93.5795 -45.0781 145.903 +92.9129 -45.6463 147.742 +93.2856 -46.7485 151.31 +91.8 -46.936 151.917 +90.9999 -47.4791 153.675 +88.6232 -47.1952 152.755 +88.0358 -47.8629 154.917 +85.8194 -47.6447 154.211 +84.777 -48.0734 155.598 +83.0803 -48.1321 155.788 +82.145 -48.6348 157.415 +79.8274 -48.3139 156.377 +78.6113 -48.651 157.468 +75.5219 -47.8083 154.74 +74.4789 -48.2428 156.146 +71.667 -47.516 153.794 +70.3792 -47.7799 154.648 +68.4952 -47.6335 154.174 +67.888 -48.3807 156.593 +65.5562 -47.8968 155.027 +64.5775 -48.3936 156.635 +62.571 -48.117 155.739 +61.7065 -48.7189 157.687 +59.5115 -48.2658 156.221 +59.0171 -49.1963 159.232 +56.3558 -48.3136 156.376 +54.7351 -48.2891 156.296 +52.5329 -47.7265 154.475 +51.3305 -48.0568 155.544 +49.1769 -47.4815 153.682 +48.1406 -47.9745 155.278 +46.0866 -47.444 153.561 +45.2969 -48.215 156.057 +43.2228 -47.6173 154.122 +42.189 -48.1554 155.864 +40.3526 -47.7752 154.633 +39.2422 -48.2505 156.171 +37.3419 -47.7457 154.537 +36.2536 -48.2726 156.243 +34.3886 -47.7578 154.577 +33.3343 -48.365 156.542 +31.4835 -47.8115 154.75 +30.324 -48.2974 156.323 +28.6172 -47.9083 155.064 +27.3979 -48.3296 156.427 +25.6709 -47.8446 154.857 +24.4477 -48.2883 156.293 +22.7687 -47.8233 154.789 +21.589 -48.4069 156.678 +20.0475 -48.197 155.998 +18.6785 -48.3933 156.634 +17.1322 -48.1167 155.738 +15.9296 -48.8349 158.063 +14.2325 -48.0214 155.43 +12.9065 -48.4093 156.685 +11.3564 -47.9399 155.166 +10.0181 -48.3505 156.495 +8.56216 -48.2272 156.096 +7.21465 -48.7783 157.879 +5.66768 -47.9098 155.069 +4.3349 -48.8668 158.166 +2.84998 -48.1973 155.999 +1.43639 -48.5867 157.259 +1.33227e-14 -48.2638 156.214 +-1.44511 -48.8819 158.215 +-2.86045 -48.3745 156.572 +-4.35061 -49.0439 158.739 +-5.72003 -48.3523 156.501 +-7.26699 -49.1319 159.024 +-8.57786 -48.3154 156.381 +-10.1463 -48.9693 158.498 +-11.461 -48.3818 156.596 +-13.1184 -49.2039 159.257 +-14.3197 -48.3154 156.381 +-16.0254 -49.1287 159.014 +-17.1322 -48.1167 155.738 +-18.9389 -49.0682 158.818 +-20.0841 -48.285 156.283 +-21.9676 -49.2556 159.424 +-22.9357 -48.174 155.924 +-24.832 -49.0475 158.751 +-25.8899 -48.2525 156.178 +-27.86 -49.1449 159.066 +-28.8603 -48.3154 156.381 +-31.0347 -49.4292 159.986 +-31.9605 -48.5362 157.096 +-33.8327 -49.0882 158.883 +-35.241 -48.9415 158.408 +-36.903 -49.1369 159.04 +-37.8818 -48.4361 156.772 +-40.3394 -49.5998 160.538 +-41.1267 -48.6918 157.6 +-43.4159 -49.5558 160.396 +-44.4651 -48.9858 158.551 +-46.8202 -49.8365 161.305 +-47.7128 -49.118 158.979 +-50.1003 -49.9275 161.599 +-50.9604 -49.2036 159.256 +-53.2249 -49.8306 161.286 +-54.6033 -49.6075 160.563 +-56.9245 -50.2206 162.548 +-57.9186 -49.6535 160.712 +-60.2188 -50.1981 162.475 +-61.461 -49.8469 161.338 +-63.7027 -50.295 162.789 +-64.7929 -49.8256 161.269 +-67.4362 -50.5358 163.568 +-68.553 -50.0866 162.114 +-71.2174 -50.7534 164.272 +-71.7773 -49.9159 161.562 +-74.7655 -50.7578 164.287 +-75.7344 -50.2126 162.522 +-78.5014 -50.8484 164.58 +-79.8749 -50.5639 163.659 +-82.6151 -51.1289 165.488 +-83.7289 -50.6755 164.02 +-87.901 -52.0428 168.446 +-88.6643 -51.3674 166.26 +-92.6268 -52.5245 170.005 +-92.0634 -51.1112 165.43 +-95.0023 -51.6502 167.175 +-96.0893 -51.1714 165.625 +-99.568 -51.9495 168.144 +-100.55 -51.4099 166.397 +-104.502 -52.3696 169.503 +-105.222 -51.6936 167.315 +-108.889 -52.4525 169.772 +-109.057 -51.5191 166.751 +-112.725 -52.2323 169.059 +-113.122 -51.4199 166.43 +-104.868 -46.7695 151.378 +-105.799 -46.3019 149.864 +-104.785 -45.0057 145.669 +-105.825 -44.6134 144.399 +-112.134 -46.4058 150.201 +-103.215 -41.9357 135.732 +-98.3242 -39.2244 126.957 +-97.8551 -38.3329 124.071 +-98.5585 -37.9155 122.72 +-98.4443 -37.195 120.388 +-98.4818 -36.5473 118.292 +-98.3628 -35.8563 116.055 +-98.3377 -35.2142 113.977 +-98.2822 -34.5752 111.909 +-98.1965 -33.939 109.85 +-98.5401 -33.462 108.306 +-98.3328 -32.809 106.192 +-98.2953 -32.2254 104.303 +-98.6362 -31.775 102.845 +-98.4124 -31.1527 100.831 +-98.297 -30.5768 98.9672 +-98.572 -30.1313 97.5254 +-98.9684 -29.729 96.2231 +-98.3586 -29.0346 93.9756 +-98.8565 -28.6766 92.817 +-98.4057 -28.0518 90.7946 +-98.7235 -27.655 89.5103 +-98.7327 -27.1782 87.967 +-98.8689 -26.7433 86.5595 +-98.4667 -26.1716 84.709 +-98.6375 -25.7605 83.3783 +-98.7915 -25.3505 82.0512 +-98.9288 -24.9416 80.728 +-99.2028 -24.572 79.5316 +-99.2309 -24.1465 78.1546 +-99.397 -23.76 76.9033 +-98.7651 -23.1906 75.0605 +-98.8165 -22.7899 73.7636 +-99.5658 -22.5525 72.9951 +-98.7113 -21.9576 71.0696 +-98.8744 -21.5971 69.9029 +-98.7001 -21.1681 68.5143 +-98.9964 -20.8445 67.4668 +-98.8717 -20.4363 66.1457 +-98.9776 -20.0805 64.9941 +-98.6555 -19.6432 63.5787 +-98.9822 -19.3394 62.5954 +-98.8793 -18.9551 61.3515 +-99.4359 -18.6997 60.5247 +-99.3064 -18.3176 59.2883 +-99.2473 -17.9532 58.1086 +-99.0028 -17.56 56.8361 +-99.5182 -17.3043 56.0085 +-99.2465 -16.9145 54.7466 +-99.1335 -16.5564 53.5877 +-99.6192 -16.3004 52.7591 +-99.3063 -15.9164 51.5162 +-98.9784 -15.5353 50.2826 +-99.4339 -15.2797 49.4554 +-99.169 -14.9157 48.2774 +-99.5167 -14.6466 47.4062 +-99.2269 -14.2861 46.2396 +-98.8331 -13.9156 45.0403 +-99.2407 -13.6605 44.2145 +-98.9128 -13.3064 43.0685 +-99.3024 -13.0511 42.2421 +-98.8591 -12.6888 41.0696 +-99.1384 -12.4221 40.2065 +-99.5942 -12.1776 39.415 +-99.116 -11.821 38.2609 +-99.3686 -11.5545 37.398 +-99.7064 -11.2981 36.5682 +-99.8493 -11.0201 35.6685 +-99.9833 -10.7423 34.7693 +-101.334 -10.5927 34.2851 +-103.44 -10.5139 34.03 +-109.247 -10.7903 34.9246 +-110.988 -10.6453 34.4553 +-114.732 -10.6785 34.5629 +-120.208 -10.8486 35.1134 +-153.986 -13.4645 43.5803 +-161.492 -13.6694 44.2436 +-162.95 -13.3397 43.1763 +-163.918 -12.9653 41.9644 +-164.972 -12.5943 40.7636 +-168.637 -12.4116 40.1724 +-172.985 -12.2593 39.6793 +-177.92 -12.1253 39.2457 +-3198.83 -209.339 677.562 +-380.499 -23.8744 77.2735 +-379.329 -22.7815 73.7362 +-379.497 -21.7753 70.4796 +-379.241 -20.7485 67.156 +-379.545 -19.7554 63.9417 +-379.227 -18.7331 60.6329 +-379.964 -17.7647 57.4986 +-380.474 -16.7852 54.3284 +-378.381 -15.6977 50.8083 +-377.245 -14.6607 47.452 +-379.748 -13.7639 44.5494 +-379.246 -12.7551 41.2842 +-380.007 -11.79 38.1605 +-380.241 -10.8079 34.9816 +-377.757 -9.75592 31.5768 +-379.925 -8.82645 28.5684 +-377.578 -7.79387 25.2262 +-380.988 -6.8786 22.2638 +-380.278 -5.88301 19.0414 +-146.76 -1.89149 6.12215 +-146.111 -1.50616 4.87494 +-3275.38 -25.3182 81.9468 +-145.278 -0.748555 2.42283 +-146.394 -0.377124 1.22063 +95.7 0 -1.7053e-13 +95.7964 -0.239563 0.800942 +95.6854 -0.478609 1.60016 +95.7672 -0.718616 2.40258 +95.7416 -0.958069 3.20316 +95.7088 -1.19745 4.0035 +95.6687 -1.43674 4.80352 +95.6213 -1.67592 5.60318 +95.5666 -1.91497 6.40242 +96.4019 -2.17411 7.26881 +96.332 -2.4151 8.07452 +96.2548 -2.6559 8.8796 +96.1703 -2.8965 9.684 +96.0784 -3.13689 10.4877 +95.9792 -3.37703 11.2906 +95.8727 -3.61691 12.0926 +95.7589 -3.8565 12.8936 +95.5389 -4.09159 13.6796 +96.3984 -4.37517 14.6277 +96.1628 -4.61132 15.4172 +95.0339 -4.80185 16.0543 +95.6707 -5.0811 16.9879 +95.5123 -5.32015 17.7871 +95.3467 -5.5588 18.585 +95.1738 -5.79701 19.3814 +95.1889 -6.0472 20.2179 +95.878 -6.34302 21.2069 +95.4867 -6.56914 21.9629 +95.4771 -6.82154 22.8068 +96.1371 -7.12461 23.82 +95.7232 -7.34993 24.5734 +95.4958 -7.589 25.3727 +96.1262 -7.8986 26.4078 +95.7861 -8.13054 27.1832 +95.6305 -8.37815 28.0111 +96.23 -8.69451 29.0688 +95.8665 -8.92597 29.8426 +96.4445 -9.2472 30.9166 +96.1592 -9.48802 31.7217 +95.7724 -9.71856 32.4925 +96.4125 -10.0557 33.6197 +96.0089 -10.2864 34.3909 +96.7189 -10.639 35.5699 +96.3913 -10.8805 36.3772 +96.8907 -11.2177 37.5047 +96.5454 -11.4596 38.3133 +96.2848 -11.7118 39.1565 +96.0162 -11.9635 39.9982 +96.379 -12.2964 41.1111 +96.9109 -12.6558 42.3127 +96.5218 -12.8976 43.1213 +96.1253 -13.1385 43.9266 +96.5305 -13.4915 45.1067 +96.116 -13.7323 45.9119 +96.4069 -14.0762 47.0618 +95.9746 -14.3168 47.866 +96.3296 -14.6773 49.0713 +95.7911 -14.904 49.8291 +96.1207 -15.268 51.0462 +96.4354 -15.6347 52.2724 +96.6484 -15.9899 53.4599 +96.9333 -16.3619 54.7036 +96.4313 -16.6037 55.5119 +96.6041 -16.964 56.7165 +96.0838 -17.2049 57.522 +96.3153 -17.5831 58.7864 +96.4471 -17.9481 60.0068 +95.8969 -18.1886 60.8109 +96.0855 -18.572 62.0925 +96.2579 -18.9576 63.3818 +96.3323 -19.3291 64.6238 +96.3913 -19.7024 65.8718 +95.7876 -19.9427 66.6752 +95.8197 -20.3178 67.9294 +95.9161 -20.7118 69.2469 +95.9164 -21.0905 70.5128 +95.9797 -21.4883 71.8428 +96.026 -21.888 73.1792 +96.0552 -22.2896 74.522 +95.8358 -22.6383 75.6878 +95.8322 -23.0429 77.0404 +95.9632 -23.4864 78.5231 +95.8481 -23.8759 79.8253 +95.7914 -24.2855 81.195 +95.7171 -24.6967 82.5697 +96.2884 -25.2836 84.5319 +96.0999 -25.6798 85.8564 +95.967 -26.0966 87.2501 +95.6722 -26.475 88.515 +96.2888 -27.1149 90.6546 +95.9544 -27.4965 91.9304 +95.7442 -27.9193 93.3441 +95.5155 -28.3432 94.7612 +95.9566 -28.9759 96.8764 +95.6844 -29.4034 98.3059 +96.0014 -30.0218 100.373 +95.6188 -30.431 101.741 +95.8811 -31.0554 103.829 +96.047 -31.6615 105.855 +95.6637 -32.0968 107.311 +95.7111 -32.686 109.28 +95.6026 -33.2336 111.111 +95.0274 -33.6273 112.428 +95.058 -34.2448 114.492 +95.0581 -34.8652 116.567 +94.7842 -35.3971 118.345 +95.0266 -36.1364 120.817 +94.3984 -36.5568 122.222 +94.1044 -37.1161 124.092 +93.7255 -37.6531 125.888 +93.6077 -38.3088 128.08 +94.0801 -39.2261 131.146 +93.8326 -39.8639 133.279 +93.6085 -40.527 135.496 +93.4601 -41.2403 137.881 +93.7051 -42.149 140.919 +93.4778 -42.8679 143.322 +93.5795 -43.7597 146.304 +93.3249 -44.5079 148.805 +93.3363 -45.4063 151.809 +92.8 -46.0596 153.993 +92.034 -46.6141 155.847 +89.8837 -46.4665 155.354 +88.9424 -46.9416 156.942 +87.087 -46.9345 156.918 +86.0699 -47.3792 158.405 +83.7612 -47.1076 157.497 +83.5282 -48.0076 160.506 +81.2302 -47.7254 159.563 +80.4625 -48.3403 161.619 +78.1421 -48.0202 160.548 +77.2574 -48.579 162.417 +73.3346 -47.1995 157.804 +73.8085 -48.6426 162.629 +70.1753 -47.3746 158.39 +68.883 -47.654 159.324 +66.8298 -47.3996 158.473 +66.0435 -48.0446 160.63 +64.6137 -48.2349 161.266 +64.0529 -49.0923 164.132 +61.5636 -48.4699 162.052 +60.4858 -48.9461 163.644 +58.0488 -48.3097 161.516 +55.9091 -47.8824 160.088 +53.3054 -47.0118 157.177 +52.0822 -47.3348 158.257 +49.9078 -46.778 156.395 +48.7938 -47.2033 157.817 +46.8032 -46.7726 156.377 +46.0719 -47.6059 159.163 +43.8957 -46.9442 156.951 +42.8901 -47.5239 158.889 +40.9332 -47.0454 157.289 +39.9192 -47.6474 159.302 +37.7693 -46.88 156.736 +36.8597 -47.644 159.29 +34.9707 -47.1457 157.624 +34.072 -47.9896 160.446 +31.9605 -47.1167 157.528 +30.7614 -47.5609 159.013 +28.9124 -46.9869 157.094 +28.0581 -48.0469 160.637 +26.0463 -47.1245 157.553 +25.0833 -48.0947 160.797 +23.2141 -47.3328 158.25 +22.1111 -48.1277 160.908 +20.3766 -47.5554 158.994 +19.1766 -48.2309 161.253 +17.4249 -47.5076 158.834 +16.2171 -48.2624 161.358 +14.555 -47.6732 159.388 +13.2988 -48.4217 161.891 +11.6772 -47.8529 159.989 +10.2928 -48.2237 161.229 +8.73487 -47.7609 159.681 +7.35423 -48.2678 161.376 +5.82473 -47.7973 159.803 +4.41343 -48.2971 161.474 +2.91281 -47.8194 159.877 +1.47129 -48.312 161.524 +1.77636e-14 -47.9698 160.38 +-1.47653 -48.4839 162.098 +-2.90757 -47.7334 159.589 +-4.44485 -48.6409 162.624 +-5.85265 -48.0265 160.569 +-7.39349 -48.5254 162.237 +-8.79767 -48.1045 160.83 +-10.4027 -48.7384 162.949 +-11.6842 -47.8815 160.085 +-13.3851 -48.7361 162.942 +-14.6683 -48.0443 160.629 +-16.3513 -48.6618 162.693 +-17.6862 -48.22 161.216 +-19.4144 -48.8289 163.252 +-20.7178 -48.3518 161.657 +-22.4113 -48.7811 163.092 +-23.6316 -48.1842 161.096 +-25.4232 -48.7467 162.977 +-26.6877 -48.285 161.434 +-28.4707 -48.7533 162.999 +-29.6244 -48.144 160.962 +-31.4903 -48.6879 162.781 +-32.8382 -48.4105 161.853 +-34.7897 -49.0006 163.826 +-35.8856 -48.379 161.748 +-37.6605 -48.6793 162.752 +-39.074 -48.4994 162.15 +-40.9697 -48.9014 163.494 +-42.2396 -48.5469 162.309 +-44.3173 -49.1052 164.176 +-45.6557 -48.8263 163.243 +-47.7822 -49.3731 165.071 +-48.8705 -48.8387 163.285 +-51.0376 -49.3739 165.074 +-52.2761 -48.9977 163.816 +-54.518 -49.5485 165.658 +-55.5304 -48.9742 163.738 +-57.8129 -49.5129 165.539 +-59.1557 -49.231 164.596 +-61.7876 -49.9995 167.166 +-62.4871 -49.1969 164.482 +-65.3837 -50.1124 167.543 +-66.5848 -49.7061 166.185 +-68.719 -49.9909 167.137 +-70.2387 -49.8172 166.556 +-72.7864 -50.3545 168.353 +-73.8091 -49.8276 166.591 +-76.5199 -50.4296 168.604 +-77.8901 -50.1316 167.607 +-80.6993 -50.7431 169.652 +-81.1004 -49.8382 166.626 +-84.3802 -50.6941 169.488 +-85.7454 -50.378 168.431 +-89.5073 -51.444 171.995 +-90.1171 -50.6821 169.448 +-96.3669 -53.0473 177.356 +-94.4107 -50.8815 170.115 +-97.0541 -51.2225 171.255 +-97.9315 -50.6271 169.264 +-101.932 -51.6274 172.608 +-102.95 -51.0976 170.837 +-106.431 -51.7764 173.107 +-107.54 -51.2873 171.471 +-109.986 -51.4317 171.954 +-111.177 -50.9844 170.459 +-113.424 -51.0188 170.574 +-114.701 -50.613 169.217 +-104.151 -45.091 150.755 +-100.487 -42.6908 142.73 +-100.48 -41.8948 140.069 +-103.014 -42.1584 140.95 +-98.6034 -39.6129 132.44 +-98.8067 -38.9707 130.293 +-99.038 -38.3535 128.229 +-99.0588 -37.6695 125.942 +-98.5585 -36.8067 123.057 +-98.5674 -36.1524 120.87 +-98.4818 -35.4785 118.617 +-98.9921 -35.0303 117.118 +-98.4013 -34.2064 114.364 +-98.8607 -33.7617 112.877 +-98.781 -33.1427 110.808 +-97.9496 -32.2888 107.953 +-98.3328 -31.8495 106.484 +-98.8975 -31.4747 105.231 +-98.7037 -30.8669 103.199 +-98.958 -30.4092 101.669 +-98.5035 -29.745 99.4479 +-98.8499 -29.3327 98.0692 +-99.0385 -28.8799 96.5555 +-98.7121 -28.2867 94.5724 +-98.8565 -27.838 93.072 +-98.4776 -27.2513 91.1105 +-98.5784 -26.8068 89.6243 +-98.8059 -26.4029 88.274 +-98.2791 -25.8063 86.2795 +-98.4667 -25.4062 84.9417 +-99.3115 -25.178 84.1787 +-98.716 -24.5903 82.2138 +-99.0049 -24.2308 81.012 +-99.2028 -23.8534 79.7501 +-99.2309 -23.4404 78.3693 +-98.6975 -22.9028 76.5719 +-99.4695 -22.6729 75.8035 +-98.7377 -22.1058 73.9073 +-99.5658 -21.8929 73.1956 +-98.7912 -21.3327 71.3225 +-98.794 -20.9485 70.0379 +-99.2664 -20.6669 69.0967 +-98.9964 -20.2349 67.6522 +-99.0355 -19.8715 66.4373 +-98.7303 -19.4445 65.0098 +-98.9871 -19.1328 63.9676 +-98.9822 -18.7738 62.7674 +-99.5502 -18.5256 61.9375 +-99.4359 -18.1528 60.691 +-99.3064 -17.7819 59.4512 +-99.2473 -17.4281 58.2682 +-99.0028 -17.0464 56.9922 +-98.7427 -16.6673 55.7247 +-99.2465 -16.4198 54.897 +-98.9594 -16.044 53.6406 +-98.832 -15.6987 52.486 +-99.3063 -15.4509 51.6577 +-98.9784 -15.0809 50.4207 +-99.4339 -14.8328 49.5913 +-99.0799 -14.4665 48.3666 +-99.5167 -14.2182 47.5364 +-99.2269 -13.8683 46.3666 +-99.6454 -13.6196 45.5352 +-99.2407 -13.261 44.336 +-99.6408 -13.0123 43.5046 +-99.211 -12.6577 42.3192 +-98.8591 -12.3177 41.1824 +-99.1384 -12.0588 40.3169 +-98.7627 -11.7228 39.1933 +-99.116 -11.4753 38.366 +-99.4616 -11.2271 37.5359 +-99.7064 -10.9676 36.6686 +-100.318 -10.748 35.9343 +-100.923 -10.5261 35.1925 +-104.539 -10.6081 35.4667 +-106.654 -10.5236 35.184 +-110.764 -10.6202 35.507 +-112.13 -10.4402 34.9052 +-121.408 -10.9694 36.6745 +-126.615 -11.0927 37.0866 +-161.945 -13.7462 45.9585 +-162.549 -13.3566 44.6556 +-163.528 -12.9955 43.4485 +-164.497 -12.6306 42.2284 +-167.683 -12.4268 41.5472 +-170.578 -12.1873 40.7463 +-177.458 -12.2085 40.8171 +-180.258 -11.9254 39.8706 +-380.951 -24.2012 80.9129 +-379.423 -23.1106 77.2667 +-379.231 -22.1095 73.9197 +-379.89 -21.1603 70.7463 +-378.75 -20.1155 67.2532 +-378.462 -19.1229 63.9344 +-377.846 -18.119 60.578 +-380.062 -17.2496 57.6716 +-376.321 -16.1165 53.8829 +-380.164 -15.3104 51.188 +-379.327 -14.3105 47.845 +-378.954 -13.3335 44.5784 +-379.544 -12.3918 41.4301 +-380.007 -11.4452 38.2653 +-379.047 -10.4588 34.9675 +-376.362 -9.43561 31.5465 +-379.925 -8.56831 28.6468 +-379.374 -7.60193 25.4159 +-380.788 -6.67394 22.3133 +-380.278 -5.71096 19.0937 +-146.361 -1.83117 6.12225 +-144.812 -1.44911 4.84487 +-3275.38 -24.5777 82.1719 +-144.478 -0.722662 2.41611 +-145.894 -0.364846 1.21981 +94.9 0 1.13687e-13 +94.7964 -0.229915 0.794685 +94.8855 -0.460297 1.59098 +95.7672 -0.69695 2.40896 +95.7416 -0.929184 3.21166 +95.6089 -1.16014 4.00993 +95.6687 -1.39342 4.81626 +95.6213 -1.62539 5.61805 +95.5666 -1.85724 6.4194 +95.5047 -2.08894 7.22027 +96.332 -2.34228 8.09594 +96.2548 -2.57582 8.90315 +96.1703 -2.80917 9.7097 +96.0784 -3.04232 10.5155 +95.9792 -3.27521 11.3205 +95.8727 -3.50786 12.1247 +95.6599 -3.73636 12.9145 +96.5279 -4.0093 13.8579 +95.4107 -4.19979 14.5163 +96.1628 -4.47229 15.4581 +95.8218 -4.69571 16.2304 +95.6707 -4.92791 17.033 +95.5123 -5.15975 17.8343 +95.3467 -5.3912 18.6343 +96.0541 -5.67423 19.6126 +94.9936 -5.85285 20.23 +95.6831 -6.13927 21.22 +95.6812 -6.38406 22.0661 +95.283 -6.60242 22.8208 +95.0721 -6.83326 23.6187 +95.9164 -7.14269 24.6882 +95.4958 -7.36019 25.44 +95.261 -7.59153 26.2396 +95.882 -7.8933 27.2826 +95.5348 -8.11741 28.0572 +96.23 -8.43237 29.1459 +95.8665 -8.65685 29.9218 +96.3497 -8.95958 30.9682 +96.1592 -9.20196 31.8059 +96.6208 -9.50903 32.8673 +95.4728 -9.65744 33.3802 +96.0089 -9.97624 34.4822 +95.692 -10.2087 35.2856 +96.3913 -10.5524 36.4737 +96.0562 -10.7858 37.2803 +96.5454 -11.1141 38.415 +96.2848 -11.3587 39.2604 +96.0162 -11.6028 40.1043 +96.4704 -11.937 41.2593 +96.1829 -12.182 42.1063 +96.6124 -12.5205 43.2763 +96.1253 -12.7424 44.0432 +96.5305 -13.0847 45.2263 +96.0265 -13.3059 45.9909 +95.605 -13.5383 46.7941 +95.9746 -13.8851 47.993 +96.3296 -14.2348 49.2015 +96.6699 -14.5872 50.4197 +96.1207 -14.8077 51.1816 +96.5224 -15.1771 52.4584 +96.6484 -15.5078 53.6017 +96.1578 -15.7417 54.4099 +96.4313 -16.1031 55.6592 +96.6041 -16.4525 56.8669 +96.0838 -16.6862 57.6746 +96.3153 -17.053 58.9423 +96.4471 -17.407 60.166 +96.6474 -17.7783 61.4494 +96.0026 -17.9965 62.2035 +96.1755 -18.3703 63.4956 +96.2504 -18.7304 64.7401 +96.4727 -19.1245 66.1024 +95.7067 -19.325 66.7956 +95.9805 -19.7383 68.2239 +95.9161 -20.0874 69.4306 +95.9164 -20.4546 70.6998 +95.9797 -20.8404 72.0334 +96.026 -21.2281 73.3734 +96.0552 -21.6176 74.7197 +95.9901 -21.9911 76.0108 +96.5216 -22.5089 77.8005 +95.9632 -22.7783 78.7315 +95.8481 -23.156 80.0371 +96.4655 -23.7191 81.9833 +95.7171 -23.9521 82.7888 +96.2884 -24.5213 84.7562 +96.0999 -24.9055 86.0842 +95.967 -25.3098 87.4816 +95.6722 -25.6768 88.7499 +95.6469 -26.1221 90.2891 +96.0958 -26.7068 92.3101 +95.7442 -27.0776 93.5917 +96.1407 -27.6686 95.6345 +95.9566 -28.1023 97.1335 +95.6844 -28.5169 98.5667 +95.8663 -29.0758 100.498 +95.6188 -29.5135 102.011 +95.2848 -29.9318 103.457 +95.5222 -30.5393 105.557 +95.0792 -30.9387 106.937 +95.7111 -31.7005 109.57 +95.0937 -32.0601 110.813 +95.2162 -32.6782 112.95 +95.1825 -33.256 114.947 +94.9966 -33.7921 116.8 +95.3929 -34.5502 119.42 +94.9062 -35.0024 120.983 +95.4691 -35.8567 123.936 +94.3983 -36.1094 124.809 +94.7127 -36.9025 127.551 +93.7797 -37.2219 128.655 +93.6836 -37.883 130.94 +93.7766 -38.639 133.553 +93.6085 -39.3051 135.855 +93.4601 -39.9969 138.246 +93.7051 -40.8782 141.292 +93.4778 -41.5755 143.703 +93.5795 -42.4403 146.692 +93.5824 -43.2849 149.611 +93.2856 -44.0131 152.128 +93.1 -44.8154 154.901 +93.1665 -45.7651 158.184 +92.1623 -46.2081 159.715 +92.5211 -47.3581 163.69 +89.2935 -46.6728 161.321 +89.3484 -47.7011 164.875 +86.2582 -47.0491 162.622 +87.9456 -49.0226 169.443 +84.8687 -48.3597 167.152 +85.112 -49.592 171.411 +82.157 -48.9653 169.245 +81.9019 -49.9466 172.637 +78.1748 -48.7977 168.666 +78.5934 -50.2346 173.632 +74.4343 -48.7346 168.448 +72.6716 -48.7594 168.533 +68.6654 -47.233 163.258 +69.6352 -49.1301 169.815 +67.8391 -49.1157 169.765 +67.1348 -49.903 172.486 +64.676 -49.385 170.696 +64.0909 -50.2996 173.857 +61.1091 -49.3233 170.482 +60.5417 -50.2865 173.812 +55.3449 -47.3389 163.624 +53.8564 -47.4715 164.082 +51.3112 -46.6433 161.219 +50.2707 -47.1658 163.025 +47.8782 -46.4043 160.393 +46.9271 -47.0277 162.548 +45.0345 -46.71 161.45 +43.8165 -47.0866 162.751 +42.2638 -47.1102 162.833 +40.993 -47.454 164.021 +38.8041 -46.7122 161.457 +37.7254 -47.2928 163.464 +35.7608 -46.7572 161.613 +34.8096 -47.5504 164.355 +32.8191 -46.9237 162.189 +31.7637 -47.6299 164.629 +29.8328 -47.021 162.525 +28.7678 -47.7769 165.138 +26.8285 -47.0763 162.716 +25.6302 -47.6616 164.739 +23.7847 -47.0341 162.57 +22.5158 -47.5307 164.286 +20.7909 -47.0593 162.657 +19.5615 -47.7155 164.925 +17.8744 -47.2636 163.363 +16.6005 -47.9139 165.611 +14.8775 -47.26 163.351 +13.5656 -47.9039 165.577 +11.8795 -47.2141 163.192 +10.5187 -47.7961 165.204 +8.91805 -47.2922 163.462 +7.52871 -47.9231 165.643 +5.98177 -47.6063 164.548 +4.5417 -48.2024 166.608 +2.99134 -47.628 164.623 +1.51405 -48.2169 166.658 +1.24345e-14 -47.4406 163.975 +-1.50882 -48.0501 166.082 +-2.97913 -47.4334 163.95 +-4.5417 -48.2024 166.608 +-5.99224 -47.6894 164.835 +-7.58105 -48.2563 166.795 +-9.05412 -48.014 165.957 +-10.653 -48.4064 167.313 +-11.9842 -47.6302 164.63 +-13.7225 -48.4581 167.492 +-15.0344 -47.7586 165.074 +-16.7922 -48.467 167.523 +-18.073 -47.7889 165.179 +-19.7766 -48.2402 166.739 +-21.2418 -48.0801 166.186 +-22.9987 -48.5504 167.811 +-24.0213 -47.5018 164.187 +-26.044 -48.4314 167.4 +-27.2665 -47.8447 165.372 +-29.2629 -48.599 167.979 +-30.319 -47.7872 165.173 +-32.2557 -48.3678 167.18 +-33.3725 -47.715 164.923 +-35.4476 -48.422 167.367 +-36.6548 -47.9262 165.653 +-38.786 -48.6224 168.06 +-39.9063 -48.039 166.043 +-42.1836 -48.8322 168.785 +-43.2556 -48.2158 166.654 +-45.6192 -49.0239 169.448 +-46.5615 -48.2939 166.924 +-49.0115 -49.1165 169.768 +-50.0833 -48.5415 167.78 +-52.4292 -49.191 170.025 +-53.5333 -48.6632 168.201 +-55.8711 -49.2474 170.22 +-56.9827 -48.7399 168.466 +-59.4946 -49.4169 170.806 +-61.044 -49.2707 170.301 +-62.8892 -49.3566 170.598 +-64.1288 -48.967 169.251 +-66.7145 -49.5906 171.406 +-67.9824 -49.2193 170.123 +-70.6614 -49.8544 172.318 +-71.5873 -49.2429 170.205 +-74.6233 -50.0689 173.06 +-75.6065 -49.5022 171.101 +-78.3143 -50.0561 173.015 +-79.4357 -49.5848 171.386 +-82.524 -50.326 173.948 +-83.6362 -49.8469 172.292 +-88.0395 -51.2979 177.307 +-88.1564 -50.2329 173.626 +-92.4522 -51.5344 178.125 +-95.7466 -52.2245 180.51 +-98.9989 -52.8531 182.683 +-97.1806 -50.7951 175.57 +-100.012 -51.1925 176.943 +-100.792 -50.5347 174.67 +-104.542 -51.3529 177.498 +-105.3 -50.6881 175.2 +-107.192 -50.5745 174.807 +-108.364 -50.122 173.243 +-110.247 -49.9994 172.82 +-111.707 -49.6832 171.726 +-113.155 -49.3633 170.621 +-115.137 -49.2735 170.31 +-105.53 -44.311 153.158 +-99.2008 -40.8737 141.277 +-100.141 -40.4944 139.966 +-99.5155 -39.4986 136.524 +-98.2549 -38.2827 132.321 +-98.1601 -37.5484 129.783 +-98.5027 -36.9962 127.875 +-98.5171 -36.3342 125.587 +-98.5585 -35.6969 123.384 +-98.3827 -34.9966 120.963 +-98.5441 -34.4305 119.006 +-98.4257 -33.7799 116.758 +-98.3377 -33.1537 114.593 +-98.2822 -32.552 112.514 +-98.7161 -32.1223 111.029 +-98.6057 -31.5251 108.964 +-98.3328 -30.8892 106.766 +-98.3622 -30.3603 104.938 +-98.5011 -29.8748 103.26 +-98.958 -29.4924 101.938 +-98.297 -28.7876 99.5023 +-98.6415 -28.3882 98.1219 +-98.4778 -27.8507 96.2641 +-98.6414 -27.4142 94.7554 +-98.9278 -27.0181 93.3862 +-98.4776 -26.4297 91.3523 +-98.6509 -26.0177 89.9282 +-98.7327 -25.5879 88.4427 +-98.9426 -25.1972 87.0925 +-98.3924 -24.6216 85.1028 +-98.6375 -24.2531 83.8292 +-98.716 -23.8489 82.4319 +-98.8528 -23.4641 81.1021 +-99.2028 -23.1342 79.9617 +-99.2309 -22.7336 78.5772 +-99.3193 -22.3522 77.2587 +-98.6869 -21.8163 75.4066 +-98.8953 -21.4735 74.2216 +-98.7725 -21.0636 72.805 +-99.5898 -20.8567 72.0898 +-99.0352 -20.3665 70.3952 +-99.1046 -20.0111 69.1671 +-99.6477 -19.7539 68.2779 +-98.8717 -19.2405 66.5033 +-99.1424 -18.937 65.4544 +-99.1529 -18.587 64.2448 +-98.8989 -18.1924 62.8809 +-98.7954 -17.8308 61.631 +-98.6768 -17.4711 60.3876 +-99.3064 -17.2458 59.6089 +-99.2473 -16.9027 58.4228 +-99.0028 -16.5325 57.1434 +-99.5182 -16.2918 56.3113 +-99.2465 -15.9247 55.0427 +-99.1335 -15.5876 53.8774 +-99.4443 -15.3197 52.9513 +-99.3063 -14.985 51.7948 +-99.7731 -14.7436 50.9604 +-98.6356 -14.2701 49.3236 +-99.169 -14.043 48.5385 +-98.8902 -13.7027 47.3625 +-99.2269 -13.4502 46.4896 +-98.8331 -13.1013 45.2839 +-99.2407 -12.8611 44.4536 +-98.8218 -12.5162 43.2615 +-100.033 -12.3778 42.7831 +-99.5927 -12.035 41.5981 +-99.2304 -11.7061 40.4614 +-99.5018 -11.4544 39.5913 +-99.0232 -11.119 38.4319 +-100.02 -10.9497 37.8468 +-100.267 -10.6967 36.9724 +-100.88 -10.4823 36.2314 +-102.333 -10.3513 35.7787 +-107.178 -10.5481 36.4586 +-109.207 -10.4506 36.1217 +-113.799 -10.5822 36.5766 +-115.648 -10.4432 36.0962 +-128.656 -11.2738 38.9671 +-159.894 -13.5859 46.9587 +-162.328 -13.3634 46.1895 +-163.414 -13.0228 45.0124 +-163.817 -12.626 43.6408 +-166.719 -12.4152 42.9123 +-172.718 -12.414 42.9081 +-174.071 -12.0619 41.691 +-181.153 -12.0869 41.7776 +-3192.52 -204.84 708.016 +-377.534 -23.261 80.3999 +-378.445 -22.356 77.272 +-377.761 -21.3598 73.8285 +-377.73 -20.4057 70.5308 +-377.865 -19.4635 67.2741 +-379.348 -18.5898 64.2542 +-379.621 -17.6553 61.0241 +-379.865 -16.7209 57.7945 +-381.167 -15.8318 54.7215 +-377.688 -14.7521 50.9895 +-377.542 -13.8138 47.7463 +-380.443 -12.9823 44.8722 +-379.544 -12.0182 41.54 +-380.305 -11.1089 38.397 +-379.744 -10.1621 35.1247 +-380.248 -9.24559 31.9567 +-379.726 -8.30562 28.7078 +-379.872 -7.38243 25.5168 +-379.191 -6.44556 22.2786 +-380.278 -5.53877 19.1444 +-146.361 -1.77596 6.13849 +-145.711 -1.41415 4.88789 +-378.67 -2.75579 9.52519 +-145.078 -0.703784 2.43258 +-145.894 -0.353846 1.22304 +94.9 0 1.13687e-13 +94.8964 -0.22297 0.797567 +95.6854 -0.449683 1.60853 +95.7672 -0.675185 2.41515 +95.7416 -0.900166 3.21991 +95.7088 -1.12508 4.02443 +95.6687 -1.34991 4.82864 +96.5196 -1.58942 5.6854 +95.5666 -1.79924 6.4359 +95.5047 -2.0237 7.23883 +96.332 -2.26914 8.11674 +96.1553 -2.49281 8.91681 +96.0708 -2.71862 9.72454 +96.0784 -2.94731 10.5426 +95.9792 -3.17293 11.3496 +95.8727 -3.39831 12.1558 +95.7589 -3.62342 12.961 +95.5389 -3.84431 13.7511 +95.4107 -4.06864 14.5536 +95.1766 -4.2882 15.339 +95.8218 -4.54907 16.2721 +94.6874 -4.72496 16.9013 +95.5123 -4.99861 17.8801 +95.3467 -5.22284 18.6822 +95.0759 -5.44106 19.4627 +95.1889 -5.68173 20.3236 +95.6831 -5.94755 21.2745 +95.6812 -6.18469 22.1228 +95.283 -6.39624 22.8794 +95.9434 -6.68055 23.8964 +95.9164 -6.91964 24.7517 +95.4958 -7.13034 25.5054 +96.1262 -7.42123 26.5459 +95.7861 -7.63915 27.3254 +95.6305 -7.8718 28.1576 +96.1347 -8.16094 29.1918 +95.8665 -8.38651 29.9987 +96.4445 -8.68832 31.0783 +96.0647 -8.90581 31.8563 +95.7724 -9.13119 32.6624 +96.4125 -9.44795 33.7955 +96.0089 -9.66469 34.5708 +96.7189 -9.99602 35.7559 +96.3913 -10.2229 36.5674 +96.0562 -10.449 37.3761 +96.5454 -10.767 38.5137 +96.1928 -10.9934 39.3236 +95.9245 -11.2298 40.169 +96.379 -11.5532 41.3262 +96.0919 -11.7904 42.1745 +96.5218 -12.1181 43.3468 +96.0351 -12.3329 44.1149 +96.5305 -12.6761 45.3426 +96.116 -12.9024 46.152 +96.496 -13.2377 47.3516 +96.7729 -13.5634 48.5166 +96.2413 -13.7776 49.2828 +95.8789 -14.0161 50.1357 +96.1207 -14.3452 51.3131 +96.4354 -14.6898 52.5458 +96.6484 -15.0235 53.7395 +96.1578 -15.2501 54.5497 +96.4313 -15.6002 55.8022 +96.6041 -15.9387 57.0131 +96.8471 -16.2935 58.2821 +96.3153 -16.5204 59.0938 +96.531 -16.8781 60.3731 +95.8969 -17.0894 61.129 +96.0855 -17.4495 62.4173 +96.2579 -17.8118 63.7133 +96.2504 -18.1454 64.9065 +95.6586 -18.3709 65.713 +95.7876 -18.7374 67.0239 +95.8197 -19.0898 68.2847 +95.9161 -19.4601 69.609 +95.9164 -19.8158 70.8815 +95.9797 -20.1896 72.2186 +95.8695 -20.5316 73.442 +96.0552 -20.9425 74.9117 +95.8358 -21.2701 76.0837 +95.8322 -21.6503 77.4433 +95.8112 -22.032 78.8088 +95.8481 -22.4329 80.2428 +95.7914 -22.8178 81.6196 +96.3859 -23.3662 83.5815 +96.2884 -23.7555 84.974 +96.0999 -24.1278 86.3054 +95.822 -24.4824 87.5738 +95.6722 -24.8749 88.978 +96.1462 -25.4384 90.9937 +96.0958 -25.8728 92.5473 +95.7442 -26.232 93.8322 +96.1407 -26.8045 95.8803 +95.2683 -27.0295 96.6849 +95.6844 -27.6264 98.82 +95.9338 -28.1875 100.827 +95.5519 -28.5719 102.202 +95.8811 -29.1785 104.372 +94.9973 -29.423 105.247 +95.6637 -30.1569 107.872 +95.7754 -30.7312 109.926 +95.7934 -31.2875 111.916 +95.7826 -31.8462 113.914 +95.307 -32.2594 115.393 +95.1813 -32.8003 117.327 +94.9668 -33.3219 119.193 +94.9062 -33.9093 121.294 +94.9932 -34.5639 123.636 +95.2212 -35.2868 126.221 +95.3514 -35.9914 128.742 +93.8945 -36.1036 129.143 +93.7402 -36.7223 131.356 +93.4411 -37.2982 133.416 +93.5533 -38.0553 136.125 +93.4056 -38.7252 138.521 +93.2215 -39.3972 140.925 +93.5308 -40.2997 144.153 +93.6317 -41.1379 147.151 +93.1189 -41.7256 149.253 +93.184 -42.5923 152.353 +93.3 -43.5091 155.633 +93.1665 -44.3359 158.59 +92.9865 -45.1654 161.557 +93.5231 -46.3759 165.887 +91.7347 -46.4513 166.157 +90.5951 -46.8562 167.606 +88.6189 -46.8272 167.502 +89.5073 -48.3349 172.895 +87.192 -48.1319 172.169 +86.9202 -49.064 175.503 +84.4391 -48.7538 174.393 +83.0216 -49.0484 175.447 +80.9406 -48.9466 175.083 +80.5074 -49.8507 178.317 +78.029 -49.4929 177.037 +77.0342 -50.0723 179.109 +71.6248 -47.7302 170.732 +71.4311 -48.8233 174.642 +69.1292 -48.4868 173.438 +68.7457 -49.5047 177.079 +66.6255 -49.2848 176.293 +65.4261 -49.7441 177.936 +62.737 -49.0557 175.473 +62.3504 -50.1716 179.465 +59.2077 -49.0613 175.493 +58.8782 -50.2772 179.842 +52.5684 -46.2941 165.595 +51.492 -46.8029 167.415 +49.1461 -46.1457 165.064 +48.2365 -46.8301 167.512 +46.0439 -46.2655 165.493 +45.0183 -46.8673 167.645 +42.8686 -46.2919 165.587 +42.0902 -47.2025 168.844 +39.8163 -46.4341 166.095 +38.5912 -46.8675 167.646 +36.8004 -46.6139 166.739 +35.647 -47.1737 168.741 +33.6015 -46.542 166.482 +32.3286 -46.9631 167.988 +30.5794 -46.6928 167.021 +29.362 -47.2407 168.981 +27.4542 -46.6697 166.938 +26.2066 -47.2119 168.878 +24.4388 -46.8183 167.47 +23.1031 -47.2477 169.006 +21.3515 -46.8191 167.473 +20.003 -47.2687 169.081 +18.3134 -46.9122 167.806 +16.9839 -47.4895 169.871 +15.2697 -46.9911 168.088 +13.848 -47.3743 169.459 +12.2144 -47.0288 168.223 +10.7934 -47.5126 169.954 +9.17449 -47.133 168.596 +7.71191 -47.5563 170.11 +6.08647 -46.9268 167.858 +4.62808 -47.5851 170.213 +3.04894 -47.0288 168.223 +1.54547 -47.6804 170.554 +1.33227e-14 -47.1976 168.827 +-1.54547 -47.6804 170.554 +-3.06464 -47.2711 169.09 +-4.64379 -47.7466 170.79 +-6.12835 -47.2496 169.013 +-7.75989 -47.8522 171.168 +-9.24253 -47.4825 169.846 +-10.8544 -47.7813 170.915 +-12.305 -47.378 169.472 +-14.0285 -47.9916 171.667 +-15.383 -47.3398 169.335 +-17.1756 -48.0255 171.788 +-18.4806 -47.3406 169.338 +-20.3313 -48.0447 171.857 +-21.5831 -47.3269 169.289 +-23.5208 -48.1017 172.061 +-24.6893 -47.2983 169.187 +-26.5466 -47.8242 171.068 +-28.0174 -47.6271 170.363 +-29.8241 -47.9844 171.641 +-30.892 -47.1699 168.728 +-33.0393 -47.9957 171.681 +-34.2693 -47.4669 169.79 +-36.3647 -48.1233 172.138 +-37.5073 -47.5094 169.942 +-39.8249 -48.3656 173.005 +-40.8736 -47.6669 170.505 +-43.164 -48.4068 173.152 +-44.5136 -48.0684 171.941 +-46.7459 -48.6658 174.078 +-47.9333 -48.1639 172.283 +-50.1072 -48.6464 174.009 +-51.5166 -48.3715 173.026 +-53.6789 -48.7907 174.525 +-55.0244 -48.4569 173.331 +-57.4348 -49.0446 175.433 +-58.4969 -48.4725 173.387 +-61.5888 -49.5589 177.273 +-62.2161 -48.6486 174.017 +-65.3594 -49.6932 177.753 +-65.6337 -48.5511 173.668 +-69.166 -49.8074 178.162 +-69.7384 -48.914 174.966 +-73.0803 -49.9506 178.674 +-74.1346 -49.4027 176.714 +-76.8428 -49.9479 178.665 +-77.7946 -49.3443 176.505 +-81.2252 -50.2952 179.907 +-82.1201 -49.6598 177.634 +-85.0951 -50.2734 179.829 +-86.5522 -49.974 178.758 +-89.1158 -50.3033 179.936 +-90.2606 -49.8259 178.228 +-95.1294 -51.3708 183.754 +-97.4718 -51.5052 184.235 +-101.215 -52.349 187.253 +-99.528 -50.3975 180.273 +-102.064 -50.6113 181.038 +-103.652 -50.3461 180.089 +-105.28 -50.1006 179.211 +-106.15 -49.5015 177.068 +-107.395 -49.088 175.588 +-108.673 -48.6951 174.183 +-110.613 -48.5988 173.839 +-112.025 -48.2684 172.657 +-113.854 -48.1171 172.116 +-115.681 -47.9607 171.556 +-105.862 -43.0619 154.033 +-98.7535 -39.4188 141.002 +-98.5547 -38.6084 138.103 +-98.7125 -37.9563 135.77 +-98.6614 -37.2406 133.21 +-98.8067 -36.6155 130.974 +-99.038 -36.0355 128.9 +-99.1189 -35.4144 126.678 +-98.5585 -34.5822 123.701 +-98.5674 -33.9675 121.502 +-98.4818 -33.3342 119.237 +-98.4257 -32.7249 117.058 +-98.4013 -32.1391 114.962 +-98.2822 -31.5355 112.803 +-98.1965 -30.9552 110.727 +-98.5401 -30.5201 109.171 +-98.0678 -29.8438 106.752 +-98.5629 -29.4723 105.423 +-98.5686 -28.9618 103.597 +-98.0714 -28.3156 101.285 +-98.6412 -27.9863 100.108 +-98.9888 -27.5986 98.7208 +-98.4778 -26.981 96.5115 +-98.6414 -26.5581 94.9989 +-98.9278 -26.1744 93.6262 +-98.4057 -25.5856 91.5202 +-98.5784 -25.1866 90.093 +-98.8059 -24.8072 88.7357 +-99.0163 -24.4286 87.3814 +-99.1355 -24.0328 85.9659 +-99.1617 -23.6206 84.4913 +-98.867 -23.1394 82.7701 +-98.9288 -22.7489 81.3731 +-99.2028 -22.4117 80.1672 +-99.2309 -22.0237 78.7791 +-99.3193 -21.6541 77.4572 +-98.6869 -21.135 75.6004 +-98.8165 -20.7863 74.353 +-99.2485 -20.5042 73.3439 +-99.1905 -20.1244 71.9853 +-99.2763 -19.7785 70.7479 +-99.1855 -19.4021 69.4015 +-99.0779 -19.0275 68.0618 +-99.1993 -18.7014 66.8952 +-99.1424 -18.3456 65.6226 +-99.07 -17.9915 64.356 +-98.9822 -17.6392 63.0957 +-98.8793 -17.2886 61.8417 +-99.4359 -17.0557 61.0084 +-99.3064 -16.7072 59.7621 +-99.1621 -16.3608 58.5227 +-99.7743 -16.141 57.7366 +-99.5182 -15.783 56.456 +-99.2465 -15.4274 55.1841 +-99.1335 -15.1008 54.0159 +-99.4443 -14.8412 53.0874 +-99.3063 -14.5171 51.9279 +-98.9784 -14.1695 50.6844 +-99.4339 -13.9364 49.8506 +-99.0799 -13.5922 48.6195 +-99.5167 -13.3589 47.785 +-99.2269 -13.0302 46.6091 +-99.6454 -12.7965 45.7733 +-99.2407 -12.4595 44.5679 +-99.6408 -12.2259 43.7321 +-99.211 -11.8927 42.5405 +-99.5927 -11.6592 41.705 +-99.2304 -11.3406 40.5654 +-99.5018 -11.0967 39.6931 +-99.0232 -10.7717 38.5306 +-100.485 -10.6571 38.1205 +-100.173 -10.353 37.033 +-103.128 -10.3813 37.134 +-105.527 -10.3412 36.9906 +-110.006 -10.4883 37.5168 +-112.139 -10.396 37.1866 +-118.446 -10.6703 38.1679 +-121.925 -10.6662 38.1531 +-159.461 -13.5368 48.4214 +-161.711 -13.3112 47.6144 +-163.191 -13.0149 46.5544 +-163.414 -12.6161 45.1281 +-165.552 -12.3612 44.2162 +-167.202 -12.0623 43.1472 +-173.783 -12.1005 43.2836 +-176.982 -11.8806 42.4972 +-601.216 -38.8617 139.009 +-381.368 -23.7054 84.7946 +-378.705 -22.6045 80.8567 +-379.619 -21.725 77.7109 +-378.937 -20.7572 74.2487 +-379.693 -19.8712 71.0795 +-379.438 -18.9342 67.7278 +-379.053 -17.9952 64.3691 +-379.917 -17.1172 61.2286 +-380.458 -16.224 58.0335 +-380.079 -15.2936 54.7056 +-378.778 -14.3326 51.268 +-379.228 -13.4421 48.0827 +-377.664 -12.485 44.659 +-378.452 -11.6094 41.5269 +-379.907 -10.7507 38.4554 +-381.137 -9.88089 35.3441 +-380.646 -8.96626 32.0725 +-376.934 -7.98709 28.57 +-148.837 -2.80216 10.0234 +-378.393 -6.23114 22.2889 +-378.181 -5.33621 19.0877 +-146.96 -1.72755 6.17947 +-144.412 -1.35777 4.85676 +-380.07 -2.6796 9.58497 +-144.978 -0.681337 2.43715 +-146.394 -0.343969 1.23038 +94.8 3.55271e-15 -2.27374e-13 +94.7964 -0.215537 0.798705 +95.7854 -0.435604 1.6142 +95.6672 -0.652682 2.41861 +95.7416 -0.871076 3.2279 +95.7088 -1.08872 4.03442 +95.6687 -1.30628 4.84062 +95.6213 -1.52374 5.64647 +96.4644 -1.75745 6.51249 +95.5047 -1.9583 7.25679 +96.332 -2.19581 8.13689 +96.1553 -2.41225 8.93894 +96.1703 -2.63349 9.75881 +96.1778 -2.855 10.5796 +95.9792 -3.07039 11.3778 +95.8727 -3.28849 12.186 +95.7589 -3.50632 12.9932 +95.5389 -3.72007 13.7853 +95.4107 -3.93715 14.5897 +96.1628 -4.19261 15.5363 +95.7233 -4.39752 16.2957 +95.6707 -4.61973 17.1191 +95.5123 -4.83707 17.9245 +95.3467 -5.05405 18.7285 +95.1738 -5.27064 19.5311 +95.1889 -5.49811 20.3741 +95.6831 -5.75534 21.3273 +95.4867 -5.97266 22.1326 +96.1563 -6.24627 23.1465 +95.0721 -6.40593 23.7381 +95.9164 -6.69601 24.8131 +95.4958 -6.89991 25.5687 +95.1649 -7.10959 26.3457 +95.7861 -7.39228 27.3932 +95.6305 -7.61741 28.2275 +96.1347 -7.8972 29.2643 +96.7224 -8.18793 30.3416 +96.3497 -8.39928 31.1248 +96.1592 -8.6265 31.9668 +96.715 -8.92307 33.0658 +95.4728 -9.05349 33.5491 +97.0392 -9.45272 35.0285 +95.692 -9.57027 35.4641 +96.3913 -9.89251 36.6582 +96.0562 -10.1113 37.4689 +96.5454 -10.419 38.6093 +96.2848 -10.6483 39.459 +96.7498 -10.9603 40.6151 +97.2012 -11.2753 41.7822 +96.0919 -11.4094 42.2792 +96.5218 -11.7265 43.4544 +96.1253 -11.9455 44.2659 +96.5305 -12.2664 45.4551 +96.8319 -12.5784 46.6112 +96.4069 -12.7981 47.4253 +95.9746 -13.0168 48.2357 +96.3296 -13.3446 49.4504 +95.8789 -13.5631 50.2601 +96.1207 -13.8816 51.4405 +96.4354 -14.2151 52.6762 +96.6484 -14.538 53.8729 +96.1578 -14.7572 54.6851 +96.4313 -15.0961 55.9407 +95.922 -15.3147 56.751 +96.0838 -15.6427 57.9663 +96.231 -15.9725 59.1886 +96.3632 -16.3042 60.4177 +96.564 -16.6521 61.7069 +96.0026 -16.871 62.5181 +96.1755 -17.2215 63.8168 +96.1684 -17.5441 65.0123 +96.3913 -17.9134 66.3806 +95.7067 -18.1165 67.1335 +95.9001 -18.4884 68.5116 +96.555 -18.9566 70.2465 +95.9164 -19.1754 71.0574 +95.9797 -19.5371 72.3978 +96.026 -19.9006 73.7445 +95.8998 -20.2329 74.9761 +95.8358 -20.5828 76.2725 +95.9854 -20.9841 77.7597 +95.8112 -21.32 79.0044 +95.8481 -21.7079 80.4419 +96.3157 -22.2012 82.2699 +95.5684 -22.4194 83.0783 +96.141 -22.9526 85.0544 +96.0999 -23.348 86.5196 +95.967 -23.727 87.9241 +95.6722 -24.071 89.1988 +95.6469 -24.4885 90.7458 +96.0958 -25.0366 92.777 +95.7442 -25.3842 94.0651 +95.5155 -25.7696 95.4932 +96.0943 -26.3826 97.7648 +95.6844 -26.7336 99.0652 +96.0014 -27.2958 101.149 +95.5519 -27.6486 102.456 +95.8149 -28.216 104.559 +95.6534 -28.6688 106.237 +95.7286 -29.2022 108.213 +95.8396 -29.7579 110.272 +95.0937 -30.0552 111.374 +95.2791 -30.6549 113.596 +95.307 -31.2169 115.679 +95.1813 -31.7403 117.619 +95.1494 -32.307 119.718 +95.0868 -32.8758 121.826 +94.9337 -33.426 123.865 +95.4563 -34.2306 126.846 +95.3514 -34.8282 129.061 +94.7548 -35.2571 130.65 +94.4199 -35.7933 132.637 +93.3293 -36.0496 133.587 +93.7189 -36.8906 136.704 +93.3511 -37.4518 138.783 +93.6513 -38.2999 141.926 +93.4778 -38.9755 144.429 +93.5795 -39.7863 147.434 +93.5824 -40.578 150.368 +93.1333 -41.1934 152.648 +92.9 -41.9227 155.351 +93.1173 -42.8804 158.9 +93.035 -43.7287 162.043 +93.2368 -44.7399 165.79 +92.7676 -45.4561 168.444 +92.3497 -46.22 171.275 +90.2533 -46.1497 171.014 +90.712 -47.4023 175.656 +88.6825 -47.3726 175.546 +88.47 -48.3249 179.075 +85.876 -47.9812 177.802 +84.7633 -48.4591 179.572 +82.7302 -48.4119 179.398 +81.8233 -49.0283 181.682 +79.8264 -48.9966 181.564 +78.3736 -49.2967 182.676 +75.5581 -48.724 180.554 +72.6039 -48.0214 177.95 +69.2367 -46.9928 174.139 +70.1816 -48.9054 181.226 +68.1646 -48.7939 180.813 +66.8281 -49.168 182.199 +64.2672 -48.6282 180.199 +63.334 -49.316 182.748 +61.1854 -49.0617 181.805 +60.3517 -49.8699 184.8 +54.3227 -46.2927 171.545 +52.5428 -46.2148 171.256 +50.5795 -45.9569 170.3 +49.3589 -46.3714 171.836 +46.9498 -45.6512 169.168 +45.8446 -46.1851 171.146 +43.9088 -45.8831 170.027 +42.6505 -46.2851 171.517 +40.7161 -45.9488 170.27 +39.4353 -46.3448 171.738 +37.5281 -45.9996 170.458 +36.3248 -46.517 172.376 +34.4792 -46.2143 171.254 +33.0393 -46.4446 172.107 +31.2046 -46.1074 170.858 +29.9726 -46.6647 172.923 +27.8766 -45.8563 169.927 +26.7092 -46.5621 172.543 +25.0094 -46.363 171.805 +23.5469 -46.5991 172.68 +21.8634 -46.3922 171.913 +20.4898 -46.8544 173.626 +18.6897 -46.3292 171.68 +17.281 -46.7588 173.272 +15.6532 -46.6147 172.738 +14.0913 -46.6483 172.862 +12.4027 -46.2109 171.241 +11.0193 -46.9393 173.941 +9.3472 -46.4683 172.195 +7.86021 -46.9042 173.81 +6.23305 -46.5037 172.327 +4.72232 -46.9849 174.11 +3.13271 -46.7596 173.275 +1.57252 -46.9472 173.97 +1.5099e-14 -46.6103 172.721 +-1.57514 -47.0253 174.259 +-3.12224 -46.6033 172.695 +-4.72494 -47.011 174.206 +-6.25399 -46.66 172.906 +-7.90819 -47.1905 174.872 +-9.40477 -46.7546 173.256 +-11.0376 -47.0175 174.23 +-12.5841 -46.8867 173.746 +-14.3188 -47.4015 175.654 +-15.8013 -47.0558 174.372 +-17.5302 -47.4331 175.77 +-18.9928 -47.0806 174.464 +-20.7388 -47.4237 175.736 +-22.1802 -47.0644 174.404 +-24.0299 -47.5547 176.221 +-25.413 -47.1113 174.578 +-27.123 -47.2835 175.216 +-28.5649 -46.9886 174.123 +-30.6658 -47.7441 176.923 +-31.7082 -46.8515 173.615 +-34.0598 -47.8791 177.423 +-35.2615 -47.2629 175.14 +-37.4413 -47.9468 177.674 +-38.63 -47.3502 175.463 +-41.0153 -48.2017 178.618 +-42.1783 -47.5988 176.384 +-44.448 -48.2358 178.745 +-45.8684 -47.9307 177.614 +-47.8226 -48.1777 178.53 +-49.6156 -48.2433 178.773 +-51.3899 -48.2793 178.906 +-53.0051 -48.1607 178.467 +-54.815 -48.2131 178.661 +-56.6032 -48.2363 178.747 +-58.6978 -48.5034 179.736 +-60.2583 -48.3184 179.051 +-62.4138 -48.5995 180.093 +-63.5509 -48.0862 178.191 +-66.4609 -48.8978 181.198 +-67.7884 -48.5245 179.815 +-70.1465 -48.8809 181.135 +-71.4586 -48.5008 179.727 +-74.3264 -49.1607 182.172 +-75.6705 -48.7965 180.823 +-78.1822 -49.1763 182.23 +-79.8264 -48.9966 181.564 +-82.3018 -49.3149 182.744 +-83.6251 -48.9356 181.338 +-86.8368 -49.6445 183.965 +-88.1582 -49.2563 182.527 +-90.7948 -49.5948 183.781 +-92.9347 -49.644 183.963 +-98.8328 -51.646 191.382 +-99.4239 -50.8388 188.391 +-103.94 -52.0206 192.77 +-102.767 -50.356 186.602 +-104.45 -50.1205 185.729 +-104.816 -49.266 182.562 +-105.97 -48.7991 180.832 +-106.55 -48.0823 178.176 +-108.156 -47.8382 177.272 +-109.085 -47.3002 175.278 +-110.926 -47.1616 174.764 +-112.449 -46.8854 173.741 +-114.499 -46.8258 173.52 +-116.553 -46.7604 173.278 +-100.232 -39.4543 146.204 +-98.0824 -37.8856 140.391 +-98.1016 -37.189 137.809 +-98.4257 -36.6228 135.711 +-98.6614 -36.0371 133.541 +-98.8067 -35.4322 131.299 +-98.4432 -34.6615 128.443 +-98.5171 -34.062 126.222 +-98.5585 -33.4646 124.008 +-98.5674 -32.8698 121.804 +-98.4818 -32.257 119.533 +-98.4886 -31.6874 117.423 +-98.3377 -31.0804 115.173 +-98.2822 -30.5163 113.083 +-98.781 -30.1333 111.664 +-98.5401 -29.5338 109.442 +-98.0678 -28.8794 107.017 +-98.2284 -28.4232 105.326 +-98.3659 -27.9683 103.641 +-98.4124 -27.4956 101.889 +-98.5724 -27.0631 100.287 +-99.0583 -26.7255 99.0353 +-98.4778 -26.1091 96.751 +-98.6414 -25.6999 95.2347 +-98.8565 -25.3102 93.7909 +-99.0531 -24.9217 92.3509 +-98.5784 -24.3727 90.3166 +-98.7327 -23.9877 88.89 +-98.9426 -23.6215 87.533 +-99.1355 -23.2562 86.1792 +-99.2366 -22.8745 84.765 +-99.4707 -22.5284 83.4823 +-99.0049 -22.0306 81.6378 +-99.2028 -21.6875 80.3662 +-99.3081 -21.3285 79.036 +-98.6975 -20.8232 77.1634 +-98.7651 -20.4682 75.8481 +-98.7377 -20.0985 74.4782 +-98.5345 -19.6988 72.997 +-99.1905 -19.474 72.164 +-98.9548 -19.0773 70.6938 +-99.1046 -18.7597 69.5169 +-99.2407 -18.4429 68.3429 +-98.544 -17.9774 66.6181 +-99.06 -17.738 65.7307 +-99.7332 -17.5266 64.9476 +-98.8989 -17.0548 63.199 +-99.5502 -16.8435 62.416 +-99.4359 -16.5045 61.1598 +-99.3064 -16.1673 59.9104 +-99.1621 -15.832 58.6679 +-99.0028 -15.4986 57.4324 +-99.5182 -15.2729 56.5961 +-99.2465 -14.9288 55.3211 +-99.9168 -14.7283 54.5778 +-99.6192 -14.3869 53.3127 +-99.3063 -14.0479 52.0567 +-98.9784 -13.7116 50.8102 +-99.4339 -13.486 49.9743 +-99.0799 -13.1529 48.7402 +-99.5167 -12.9272 47.9036 +-99.2269 -12.6091 46.7248 +-98.8331 -12.282 45.5129 +-99.2407 -12.0568 44.6785 +-98.9128 -11.7443 43.5204 +-99.211 -11.5084 42.6461 +-99.5927 -11.2824 41.8085 +-99.1384 -10.9639 40.6283 +-99.317 -10.7182 39.7177 +-99.5795 -10.4822 38.8432 +-101.322 -10.3986 38.5336 +-101.667 -10.1678 37.6785 +-106.125 -10.3378 38.3081 +-108.816 -10.3189 38.2381 +-112.174 -10.3494 38.3511 +-114.502 -10.2721 38.0647 +-123.472 -10.7636 39.8863 +-134.574 -11.3923 42.2158 +-161.941 -13.303 49.2964 +-162.285 -12.9267 47.902 +-162.808 -12.5647 46.5603 +-164.472 -12.2874 45.5328 +-167.479 -12.101 44.8419 +-170.1 -11.8748 44.0039 +-173.492 -11.6899 43.3185 +-182.998 -11.8874 44.0507 +-383.405 -23.9819 88.8685 +-380.589 -22.8924 84.8313 +-379.584 -21.9247 81.2454 +-377.272 -20.893 77.422 +-378.153 -20.0448 74.279 +-379.693 -19.229 71.2559 +-378.553 -18.2795 67.7376 +-378.462 -17.3865 64.4283 +-378.438 -16.4996 61.1416 +-378.186 -15.6059 57.8301 +-380.573 -14.8187 54.9128 +-380.758 -13.9419 51.664 +-378.633 -12.9873 48.1264 +-379.351 -12.1355 44.9698 +-379.346 -11.2607 41.7283 +-376.924 -10.3216 38.2481 +-379.445 -9.51913 35.2746 +-378.454 -8.62655 31.967 +-376.635 -7.72282 28.6181 +-147.041 -2.67888 9.92699 +-379.591 -6.04886 22.415 +-378.481 -5.16785 19.1503 +-141.765 -1.61262 5.97582 +-145.311 -1.32207 4.89914 +-378.27 -2.58072 9.56326 +-144.678 -0.657953 2.43814 +-146.094 -0.332173 1.23092 +94.8 3.55271e-15 -2.27374e-13 +95.6964 -0.210299 0.808217 +95.7854 -0.421021 1.61806 +95.6672 -0.630832 2.4244 +95.7416 -0.841914 3.23563 +95.7088 -1.05227 4.04408 +95.6687 -1.26255 4.85221 +95.5215 -1.4712 5.65408 +95.5666 -1.6828 6.46732 +96.4019 -1.91053 7.3425 +96.332 -2.1223 8.15637 +95.2594 -2.30977 8.87686 +96.1703 -2.54533 9.78217 +96.0784 -2.75658 10.594 +95.9792 -2.9676 11.405 +95.8727 -3.1784 12.2152 +95.7589 -3.38894 13.0243 +95.5389 -3.59553 13.8183 +95.4107 -3.80534 14.6246 +95.1766 -4.0107 15.4139 +95.7233 -4.2503 16.3347 +95.6707 -4.46508 17.1601 +95.5123 -4.67514 17.9674 +95.3467 -4.88485 18.7734 +95.1738 -5.09419 19.5779 +95.8723 -5.3522 20.5695 +95.6831 -5.56267 21.3783 +95.6812 -5.78447 22.2308 +95.4771 -5.99451 23.038 +95.9434 -6.24823 24.0131 +95.9164 -6.47185 24.8725 +95.4958 -6.66892 25.6299 +95.261 -6.87853 26.4355 +95.882 -7.15195 27.4863 +95.5348 -7.35502 28.2667 +96.1347 -7.63282 29.3343 +95.9616 -7.85157 30.175 +96.3497 -8.11809 31.1993 +96.0647 -8.32949 32.0118 +95.7724 -8.54029 32.8219 +96.4125 -8.83655 33.9605 +96.1026 -9.04808 34.7734 +96.7189 -9.34915 35.9305 +96.3913 -9.56133 36.7459 +96.8907 -9.85769 37.8849 +96.5454 -10.0702 38.7017 +96.2848 -10.2918 39.5535 +95.9245 -10.503 40.3651 +96.4704 -10.8158 41.5673 +96.1829 -11.0379 42.4206 +96.6124 -11.3446 43.5993 +96.1253 -11.5456 44.3719 +96.5305 -11.8558 45.5639 +96.0265 -12.0562 46.3342 +96.4069 -12.3697 47.5389 +96.7729 -12.6857 48.7534 +96.3296 -12.8978 49.5688 +95.8789 -13.109 50.3804 +96.9079 -13.5268 51.9859 +96.4354 -13.7392 52.8023 +96.6484 -14.0513 54.0019 +96.1578 -14.2632 54.816 +96.4313 -14.5907 56.0746 +95.8368 -14.7889 56.8363 +96.0838 -15.119 58.1051 +96.231 -15.4378 59.3303 +96.4471 -15.7721 60.6151 +96.6474 -16.1085 61.9081 +96.7487 -16.433 63.1549 +96.1755 -16.6449 63.9695 +96.2504 -16.9712 65.2234 +95.6586 -17.1821 66.0338 +95.7067 -17.51 67.2942 +95.9001 -17.8695 68.6756 +96.555 -18.322 70.4147 +95.9164 -18.5335 71.2276 +95.9797 -18.8831 72.5711 +96.026 -19.2343 73.9211 +95.8998 -19.5556 75.1556 +95.9901 -19.9257 76.5782 +95.8322 -20.2492 77.8214 +95.8112 -20.6062 79.1935 +95.6972 -20.9481 80.5076 +95.7914 -21.3412 82.0181 +96.2373 -21.8205 83.86 +96.141 -22.1842 85.2581 +96.0999 -22.5664 86.7268 +95.967 -22.9327 88.1346 +95.6722 -23.2652 89.4124 +95.5042 -23.6334 90.8274 +96.0958 -24.1985 92.9991 +95.7442 -24.5344 94.2903 +95.5155 -24.9069 95.7219 +95.4059 -25.3168 97.2972 +95.6844 -25.8386 99.3024 +95.9338 -26.3634 101.319 +95.5519 -26.723 102.701 +95.9474 -27.3092 104.954 +95.6534 -27.7091 106.491 +95.7286 -28.2245 108.472 +95.3254 -28.6073 109.943 +95.2209 -29.0878 111.79 +95.405 -29.6677 114.018 +95.4937 -30.231 116.183 +95.3044 -30.7175 118.053 +95.2712 -31.2655 120.159 +95.147 -31.7953 122.195 +95.2906 -32.4284 124.628 +94.8685 -32.8809 126.367 +94.9449 -33.5187 128.819 +95.1563 -34.221 131.518 +94.8164 -34.7403 133.513 +94.0562 -35.1142 134.95 +94.1604 -35.8236 137.677 +93.4056 -36.2192 139.197 +93.2215 -36.8477 141.613 +93.4778 -37.6707 144.775 +93.1615 -38.2826 147.127 +93.1189 -39.0254 149.982 +93.184 -39.836 153.097 +93.35 -40.7154 156.477 +93.1173 -41.4449 159.28 +93.4713 -42.463 163.193 +93.38 -43.3086 166.443 +93.1432 -44.1124 169.532 +92.9962 -44.9854 172.887 +91.8423 -45.3901 174.442 +91.5598 -46.2437 177.723 +89.6907 -46.3072 177.967 +90.2351 -47.6391 183.086 +86.9748 -46.9682 180.507 +86.5465 -47.8221 183.789 +84.0725 -47.5504 182.745 +83.5379 -48.3799 185.933 +80.8032 -47.9357 184.226 +80.0191 -48.6466 186.958 +77.0191 -48.0034 184.486 +76.159 -48.6864 187.111 +71.4586 -46.8771 180.157 +70.6018 -47.5512 182.748 +69.2591 -47.9176 184.156 +68.2301 -48.5189 186.467 +65.7322 -48.0717 184.748 +64.984 -48.9069 187.958 +62.2978 -48.2814 185.554 +61.6447 -49.2331 189.212 +59.3807 -48.909 187.966 +53.7925 -45.7298 175.748 +51.4064 -45.1443 173.498 +50.4546 -45.8136 176.07 +48.0109 -45.1201 173.405 +47.0464 -45.8091 176.053 +44.6104 -45.0557 173.157 +43.5609 -45.6905 175.597 +41.7734 -45.5638 175.11 +40.5824 -46.0964 177.157 +38.2765 -45.3463 174.274 +37.2619 -46.1196 177.246 +35.1089 -45.4828 174.799 +33.8594 -46.004 176.802 +31.8644 -45.5062 174.889 +30.7649 -46.2949 177.92 +28.6901 -45.6145 175.305 +27.3891 -46.1491 177.359 +25.4408 -45.584 175.188 +24.1865 -46.2624 177.795 +22.2777 -45.6887 175.59 +20.9992 -46.4117 178.369 +19.0869 -45.7298 175.748 +17.741 -46.3966 178.311 +15.8972 -45.7565 175.851 +14.5699 -46.6182 179.162 +12.7375 -45.8695 176.285 +11.2879 -46.4739 178.608 +9.52514 -45.7678 175.894 +8.06522 -46.5165 178.771 +6.34124 -45.727 175.737 +4.86106 -46.7461 179.654 +3.19205 -46.0501 176.979 +1.62052 -46.7605 179.709 +1.15463e-14 -45.9816 176.716 +-1.62401 -46.8612 180.096 +-3.19728 -46.1256 177.269 +-4.88724 -46.9979 180.622 +-6.3901 -46.0793 177.091 +-8.11757 -46.8184 179.932 +-9.61412 -46.1951 177.536 +-11.3917 -46.9012 180.25 +-12.8561 -46.2966 177.926 +-14.664 -46.9194 180.32 +-16.1935 -46.6094 179.128 +-17.8369 -46.6472 179.274 +-19.39 -46.456 178.539 +-21.2369 -46.937 180.387 +-22.6799 -46.5137 178.761 +-24.5911 -47.0362 180.769 +-25.9419 -46.4817 178.638 +-27.7734 -46.7965 179.847 +-29.0186 -46.1367 177.312 +-31.2435 -47.0151 180.687 +-32.5069 -46.4238 178.415 +-34.7341 -47.1923 181.369 +-35.8912 -46.4963 178.694 +-38.0992 -47.1561 181.229 +-39.4408 -46.7257 179.576 +-41.4915 -47.1289 181.125 +-42.7407 -46.6187 179.164 +-45.1016 -47.3067 181.808 +-46.1103 -46.5703 178.978 +-48.6739 -47.3938 182.143 +-49.9262 -46.9201 180.323 +-52.1115 -47.3182 181.853 +-53.7217 -47.1777 181.313 +-55.5534 -47.2268 181.501 +-57.1587 -47.079 180.933 +-59.3293 -47.3837 182.104 +-61.1545 -47.3953 182.149 +-63.6196 -47.88 184.012 +-64.7229 -47.3336 181.912 +-68.0966 -48.424 186.102 +-68.6776 -47.5152 182.609 +-72.0377 -48.5181 186.464 +-72.892 -47.8173 183.771 +-76.159 -48.6864 187.111 +-77.0191 -48.0034 184.486 +-80.3635 -48.8561 187.763 +-81.1939 -48.1676 185.117 +-84.6146 -49.0034 188.329 +-85.9028 -48.5856 186.724 +-88.7029 -49.0137 188.369 +-89.257 -48.2006 185.244 +-93.9375 -49.5937 190.598 +-95.6087 -49.3627 189.71 +-101.599 -51.3143 197.21 +-102.874 -50.8422 195.396 +-106.156 -51.3513 197.353 +-106.148 -50.271 193.201 +-106.263 -49.2837 189.406 +-105.301 -47.8367 183.845 +-106.019 -47.1873 181.349 +-107.15 -46.7343 179.608 +-109.273 -46.7141 179.531 +-109.755 -45.9972 176.776 +-111.919 -45.9907 176.751 +-113.191 -45.6147 175.306 +-115.036 -45.4704 174.751 +-116.063 -45.0048 172.962 +-98.9071 -37.6294 144.617 +-98.3061 -36.7009 141.048 +-98.7812 -36.193 139.096 +-98.4831 -35.4174 136.116 +-98.7195 -34.8513 133.94 +-98.2777 -34.0626 130.909 +-98.4432 -33.5011 128.751 +-98.5773 -32.9416 126.6 +-98.6194 -32.3641 124.381 +-98.5674 -31.7694 122.095 +-98.6063 -31.2164 119.97 +-98.4886 -30.6266 117.704 +-98.2741 -30.0205 115.374 +-98.3465 -29.5141 113.428 +-98.3914 -29.0097 111.49 +-98.3432 -28.4882 109.485 +-98.6641 -28.0825 107.926 +-98.5629 -27.565 105.938 +-98.6362 -27.106 104.173 +-98.3442 -26.5568 102.063 +-98.6412 -26.1753 100.596 +-98.9888 -25.8127 99.2028 +-98.5478 -25.2529 97.0514 +-98.6414 -24.8395 95.4627 +-98.8565 -24.4629 94.0155 +-98.4057 -23.9299 91.967 +-98.5784 -23.5567 90.5328 +-98.6596 -23.1675 89.0369 +-98.8689 -22.8137 87.6771 +-98.9869 -22.4439 86.2561 +-98.6375 -21.9753 84.4549 +-99.3953 -21.7577 83.6187 +-98.8528 -21.2604 81.7075 +-99.2028 -20.9614 80.5586 +-99.2309 -20.5985 79.1637 +-98.6975 -20.1261 77.3482 +-99.0782 -19.8457 76.2707 +-99.1318 -19.5032 74.9544 +-99.2485 -19.1773 73.702 +-99.1107 -18.8069 72.2785 +-99.4371 -18.5285 71.2085 +-99.4282 -18.1909 69.9109 +-99.3221 -17.8401 68.5628 +-99.1993 -17.4912 67.2218 +-99.1424 -17.1584 65.9429 +-99.07 -16.8273 64.6702 +-98.9822 -16.4977 63.4037 +-99.4663 -16.2659 62.5127 +-99.4359 -15.9519 61.3062 +-99.2216 -15.6127 60.0026 +-99.1621 -15.302 58.8084 +-99.7743 -15.0965 58.0185 +-99.5182 -14.7616 56.7317 +-99.2465 -14.4291 55.4535 +-98.9594 -14.0988 54.1844 +-99.6192 -13.9052 53.4403 +-99.3063 -13.5776 52.1814 +-98.9784 -13.2525 50.9319 +-99.4339 -13.0345 50.094 +-99.0799 -12.7126 48.8569 +-99.5167 -12.4944 48.0183 +-99.2269 -12.1869 46.8366 +-98.8331 -11.8709 45.6219 +-99.2407 -11.6532 44.7854 +-98.8218 -11.3407 43.5844 +-99.211 -11.1231 42.7482 +-99.5927 -10.9047 41.9086 +-99.1384 -10.5968 40.7256 +-99.779 -10.4075 39.998 +-100.692 -10.2445 39.3713 +-101.881 -10.1059 38.8387 +-103.441 -9.99891 38.4276 +-109.872 -10.3444 39.7555 +-110.884 -10.1629 39.0579 +-114.154 -10.1794 39.1213 +-118.852 -10.3053 39.6051 +-145.473 -12.257 47.106 +-160.443 -13.1275 50.4513 +-162.704 -12.9183 49.6473 +-163.146 -12.5602 48.2713 +-164.342 -12.2585 47.1115 +-164.76 -11.8968 45.7218 +-171.333 -11.965 45.9838 +-172.031 -11.6076 44.6103 +-178.914 -11.6516 44.7791 +-598.964 -37.6057 144.526 +-380.391 -22.9968 88.3809 +-378.835 -22.0241 84.6426 +-378.998 -21.1581 81.3143 +-379.815 -20.3296 78.1305 +-378.153 -19.3737 74.4568 +-377.141 -18.4603 70.9464 +-378.553 -17.6676 67.8998 +-379.151 -16.835 64.7001 +-380.213 -16.022 61.5756 +-379.272 -15.1268 58.135 +-379.782 -14.2928 54.9298 +-378.48 -13.3946 51.4779 +-379.823 -12.592 48.3932 +-379.252 -11.7261 45.0657 +-380.538 -10.9179 41.9596 +-380.504 -10.0708 38.7038 +-379.146 -9.1932 35.3311 +-377.259 -8.31141 31.9423 +-377.632 -7.48405 28.7626 +-144.248 -2.54002 9.76175 +-378.293 -5.82637 22.3918 +-380.977 -5.02781 19.3228 +-145.461 -1.59928 6.14632 +-146.111 -1.28484 4.93789 +-380.07 -2.50619 9.63176 +-145.778 -0.640761 2.46256 +-145.494 -0.319733 1.22879 +95 -1.77636e-15 -1.7053e-13 +95.7964 -0.20321 0.810929 +95.7854 -0.406404 1.6218 +95.7672 -0.609567 2.43254 +95.8416 -0.813532 3.24648 +95.8087 -1.0168 4.05764 +95.7686 -1.21999 4.86849 +95.7211 -1.42308 5.67896 +95.6664 -1.62608 6.48901 +95.6044 -1.82894 7.29856 +95.5351 -2.03166 8.10756 +96.2548 -2.25287 8.99031 +96.2697 -2.45951 9.81493 +96.1778 -2.66362 10.6294 +96.1777 -2.87048 11.4549 +95.9719 -3.07121 12.256 +95.8579 -3.27468 13.0679 +96.6268 -3.51022 14.0079 +95.5095 -3.67702 14.6735 +96.2615 -3.91557 15.6255 +95.9203 -4.11117 16.406 +95.769 -4.31448 17.2173 +95.6105 -4.51747 18.0274 +95.4447 -4.72009 18.836 +96.1519 -4.96786 19.8247 +95.0912 -5.12428 20.4489 +95.7806 -5.37501 21.4495 +95.7784 -5.58932 22.3048 +95.5741 -5.79227 23.1146 +95.1689 -5.98262 23.8742 +95.8198 -6.24086 24.9048 +95.5921 -6.44387 25.7149 +96.1262 -6.7 26.737 +95.882 -6.90365 27.5497 +95.6305 -7.10678 28.3603 +96.23 -7.37514 29.4312 +95.9616 -7.57898 30.2447 +95.6859 -7.78223 31.0558 +96.2538 -8.05613 32.1488 +95.9609 -8.26 32.9623 +96.5064 -8.53807 34.072 +96.1962 -8.74245 34.8876 +96.9056 -9.04199 36.0829 +96.5773 -9.24719 36.9018 +97.0761 -9.53365 38.045 +96.7302 -9.73922 38.8653 +96.3769 -9.94401 39.6825 +96.0162 -10.1481 40.4969 +96.5618 -10.4502 41.7027 +96.1829 -10.6547 42.5185 +95.7967 -10.8583 43.331 +96.1253 -11.1448 44.4743 +96.6204 -11.4548 45.7115 +96.116 -11.6485 46.4843 +96.496 -11.9512 47.6926 +96.0633 -12.1555 48.5076 +96.4179 -12.4615 49.7287 +95.9668 -12.6655 50.5429 +96.2956 -12.9746 51.7766 +96.6095 -13.2861 53.0197 +96.8216 -13.5878 54.2234 +96.244 -13.7803 54.9917 +96.6028 -14.1091 56.3039 +96.6894 -14.4024 57.4742 +96.9319 -14.7229 58.7532 +96.3996 -14.9279 59.5714 +96.531 -15.2378 60.8079 +95.8969 -15.4285 61.5691 +96.0855 -15.7537 62.8667 +96.2579 -16.0808 64.172 +95.7589 -16.2983 65.0401 +96.4727 -16.7267 66.7494 +95.7876 -16.9164 67.5065 +95.9001 -17.2491 68.8341 +95.996 -17.5835 70.1686 +95.9958 -17.9048 71.4509 +96.0585 -18.2424 72.7982 +96.1043 -18.5817 74.1521 +96.0552 -18.9072 75.4511 +96.1444 -19.2648 76.8783 +96.062 -19.5931 78.1881 +95.9632 -19.9224 79.5021 +95.9991 -20.2846 80.9478 +95.8663 -20.6164 82.2716 +95.7914 -20.9653 83.6641 +96.3621 -21.4633 85.6513 +96.173 -21.7995 86.993 +95.967 -22.1365 88.3379 +95.8161 -22.4912 89.7534 +96.3601 -23.0173 91.8528 +96.0958 -23.3583 93.2137 +95.8143 -23.7 94.577 +96.3491 -24.252 96.78 +96.0255 -24.5966 98.1551 +95.7526 -24.9593 99.6024 +96.0689 -25.484 101.697 +95.6857 -25.8314 103.083 +95.9474 -26.3611 105.196 +95.5878 -26.7286 106.663 +95.8585 -27.2816 108.87 +95.454 -27.6515 110.346 +95.4117 -28.1343 112.273 +95.0274 -28.5244 113.829 +95.556 -29.2004 116.527 +94.8119 -29.4979 117.714 +95.3929 -30.2184 120.589 +95.3275 -30.7497 122.71 +95.3501 -31.3219 124.993 +94.9861 -31.7787 126.816 +95.4676 -32.5332 129.827 +95.271 -33.0728 131.98 +94.9863 -33.5942 134.061 +94.6154 -34.0966 136.066 +94.4364 -34.6812 138.399 +94.0592 -35.2062 140.494 +94.0274 -35.8762 143.167 +93.5837 -36.4039 145.273 +93.2137 -36.9741 147.549 +93.6854 -37.8997 151.243 +93.2348 -38.4739 153.534 +93.35 -39.3018 156.838 +92.7234 -39.8368 158.973 +93.035 -40.7974 162.806 +93.38 -41.805 166.827 +93.2371 -42.6236 170.094 +93.3194 -43.5745 173.888 +92.7049 -44.2257 176.487 +93.3446 -45.5082 181.605 +91.4004 -45.5517 181.779 +92.3446 -47.0602 187.798 +89.8486 -46.8356 186.902 +89.2835 -47.6217 190.039 +85.6994 -46.7877 186.711 +85.6912 -47.9039 191.165 +82.2098 -47.077 187.865 +81.7412 -47.9683 191.422 +78.3677 -47.1482 188.15 +77.9182 -48.0816 191.874 +74.0388 -46.8835 187.093 +73.7187 -47.9265 191.255 +69.4643 -46.391 185.128 +68.4972 -47.0177 187.629 +66.9694 -47.2761 188.66 +66.3167 -48.1771 192.256 +63.4721 -47.4836 189.488 +62.5167 -48.1961 192.331 +60.1409 -47.8154 190.812 +59.2172 -48.5938 193.918 +53.391 -45.2593 180.612 +52.4589 -45.98 183.488 +50.0556 -45.4085 181.207 +48.749 -45.8188 182.845 +46.449 -45.2838 180.71 +45.4285 -45.9951 183.548 +42.9432 -45.2133 180.428 +42.0109 -46.0621 183.816 +39.628 -45.3174 180.843 +38.4381 -45.9236 183.263 +36.1392 -45.1922 180.344 +35.135 -46.0799 183.886 +32.8369 -45.2668 180.642 +31.8212 -46.2218 184.453 +29.4879 -45.2551 180.595 +28.5272 -46.3978 185.155 +26.2759 -45.4457 181.356 +25.1524 -46.4394 185.321 +23.0089 -45.5502 181.773 +21.7463 -46.3942 185.141 +19.6827 -45.5198 181.651 +18.5078 -46.7214 186.446 +16.4027 -45.5724 181.861 +15.072 -46.5505 185.764 +13.1909 -45.8531 182.981 +11.7518 -46.7043 186.378 +9.84963 -45.6837 182.305 +8.37492 -46.6256 186.064 +6.56809 -45.7184 182.444 +5.04692 -46.8485 186.954 +3.28629 -45.7637 182.624 +1.67637 -46.6927 186.332 +1.24345e-14 -45.6005 181.973 +-1.68248 -46.8628 187.011 +-3.29676 -45.9095 183.206 +-5.05477 -46.9214 187.245 +-6.58902 -45.8643 183.026 +-8.46216 -47.1113 188.002 +-9.95953 -46.1934 184.339 +-11.8739 -47.1895 188.314 +-13.2747 -46.1441 184.142 +-15.2838 -47.2046 188.375 +-16.5857 -46.0809 183.89 +-18.7187 -47.2537 188.571 +-20.0172 -46.2936 184.739 +-22.1199 -47.1912 188.321 +-23.2649 -46.0568 183.794 +-25.544 -47.1625 188.207 +-26.6099 -46.0233 183.66 +-29.0593 -47.2634 188.609 +-30.0511 -46.1195 184.044 +-32.7454 -47.5643 189.81 +-33.6183 -46.3441 184.941 +-36.192 -47.4659 189.417 +-36.8452 -46.075 183.867 +-39.6543 -47.3767 189.061 +-40.6052 -46.4348 185.303 +-43.2879 -47.4622 189.403 +-44.1354 -46.4686 185.437 +-47.0392 -47.6261 190.057 +-47.7554 -46.5573 185.791 +-50.8772 -47.8193 190.828 +-51.5568 -46.7702 186.641 +-54.7037 -47.9474 191.339 +-55.2929 -46.8716 187.046 +-58.564 -48.0578 191.779 +-59.2053 -47.0716 187.844 +-62.3664 -48.0801 191.869 +-62.9468 -47.0906 187.92 +-66.6974 -48.4537 193.359 +-67.4252 -47.5979 189.944 +-70.7671 -48.5758 193.846 +-71.448 -47.7158 190.414 +-74.9794 -48.7464 194.527 +-75.6515 -47.9046 191.168 +-79.6041 -49.122 196.026 +-79.7537 -47.9819 191.477 +-83.6929 -49.1134 195.992 +-84.0853 -48.1511 192.152 +-88.2432 -49.3305 196.858 +-88.3839 -48.2532 192.559 +-93.2645 -49.7449 198.512 +-93.2296 -48.5979 193.935 +-99.1037 -50.5046 201.543 +-100.475 -50.0741 199.826 +-105.392 -51.3816 205.043 +-106.098 -50.6147 201.983 +-109.942 -51.3364 204.863 +-109.575 -50.0925 199.899 +-108.983 -48.7902 194.702 +-106.028 -46.4948 185.542 +-108.284 -46.522 185.651 +-108.65 -45.7432 182.543 +-109.121 -45.0293 179.694 +-110.424 -44.6713 178.265 +-112.18 -44.4975 177.572 +-113.615 -44.1961 176.369 +-99.9377 -38.1312 152.166 +-99.5056 -37.2449 148.629 +-98.7967 -36.2826 144.789 +-98.5857 -35.5273 141.775 +-98.9512 -34.9965 139.657 +-98.5978 -34.2276 136.589 +-98.7776 -33.661 134.328 +-98.3365 -32.8997 131.29 +-98.6216 -32.3966 129.282 +-98.6375 -31.8173 126.97 +-98.1932 -31.1056 124.13 +-98.629 -30.6853 122.453 +-98.6063 -30.1326 120.247 +-98.5516 -29.5823 118.051 +-98.2105 -28.9595 115.566 +-98.6036 -28.5638 113.987 +-98.4563 -28.021 111.821 +-98.3432 -27.4991 109.738 +-98.5316 -27.0711 108.03 +-98.3622 -26.5538 105.966 +-98.7713 -26.2009 104.557 +-98.5488 -25.6882 102.511 +-98.8477 -25.3195 101.04 +-98.3636 -24.7592 98.804 +-98.6179 -24.3934 97.3442 +-98.7828 -24.0115 95.8201 +-98.9992 -23.6477 94.3684 +-98.5496 -23.1328 92.3139 +-98.6509 -22.7556 90.8085 +-98.879 -22.4129 89.4407 +-99.0163 -22.0545 88.0106 +-99.2098 -21.7135 86.6497 +-98.7124 -21.2284 84.714 +-98.7915 -20.8747 83.3024 +-99.0049 -20.5538 82.022 +-99.2028 -20.2337 80.7444 +-98.9994 -19.8369 79.1612 +-99.0861 -19.5038 77.8318 +-99.1565 -19.1718 76.507 +-99.3682 -18.871 75.3065 +-99.5658 -18.5707 74.1082 +-99.4301 -18.2125 72.6788 +-99.5979 -17.9141 71.4881 +-99.4282 -17.5593 70.0722 +-99.4035 -17.2348 68.7772 +-99.3631 -16.9118 67.4881 +-99.2248 -16.5765 66.15 +-99.1529 -16.2566 64.8736 +-98.9822 -15.9249 63.55 +-98.9631 -15.6217 62.3399 +-99.5202 -15.4112 61.4999 +-99.3064 -15.0835 60.1924 +-99.2473 -14.7834 58.9947 +-99.0885 -14.4722 57.7527 +-99.6905 -14.2738 56.961 +-99.4197 -13.9524 55.6785 +-99.1335 -13.6333 54.4048 +-99.7066 -13.4342 53.6107 +-99.3942 -13.1179 52.3481 +-99.155 -12.8152 51.1405 +-99.6113 -12.6044 50.2992 +-99.169 -12.2823 49.0136 +-99.6062 -12.0715 48.1723 +-99.4066 -11.7851 47.0297 +-98.9233 -11.4692 45.7689 +-99.3313 -11.2589 44.9298 +-99.7318 -11.0478 44.0872 +-99.3024 -10.7468 42.8863 +-100.143 -10.5842 42.2374 +-100.519 -10.3714 41.3881 +-102.458 -10.3159 41.1667 +-101.99 -10.0162 39.9708 +-108.021 -10.343 41.2746 +-108.389 -10.1134 40.3586 +-113.337 -10.3003 41.1042 +-113.421 -10.0345 40.0437 +-127.257 -10.9538 43.7123 +-129.347 -10.8259 43.2019 +-162.732 -13.2352 52.8164 +-163.487 -12.9121 51.5268 +-163.467 -12.5282 49.9952 +-163.911 -12.181 48.6095 +-167.026 -12.0262 47.9916 +-168.029 -11.7116 46.7363 +-174.803 -11.7835 47.0231 +-177.537 -11.5632 46.1441 +-380.676 -23.9304 95.4967 +-380.744 -23.075 92.083 +-379.03 -22.1189 88.2678 +-379.42 -21.2922 84.9687 +-377.924 -20.3656 81.2709 +-380.499 -19.6592 78.4519 +-379.721 -18.7787 74.9381 +-379.203 -17.9168 71.4988 +-379.831 -17.1118 68.2862 +-378.56 -16.2252 64.7484 +-379.424 -15.4336 61.5895 +-379.667 -14.6168 58.3299 +-379.98 -13.8037 55.0852 +-380.362 -12.9938 51.8531 +-379.029 -12.1294 48.4036 +-377.168 -11.2568 44.9215 +-379.843 -10.5196 41.9796 +-377.918 -9.65507 38.5295 +-378.35 -8.8554 35.3384 +-379.55 -8.07156 32.2104 +-378.928 -7.249 28.9279 +-147.141 -2.50101 9.98051 +-146.726 -2.18137 8.70499 +-377.382 -4.80745 19.1846 +-146.261 -1.55224 6.19435 +-145.811 -1.23769 4.93913 +-379.27 -2.41409 9.63366 +-144.078 -0.611303 2.43946 +-146.094 -0.309906 1.23671 +95 -1.77636e-15 -1.7053e-13 +94.9964 -0.194249 0.805943 +95.7854 -0.391754 1.6254 +95.7672 -0.587593 2.43794 +95.7416 -0.783388 3.2503 +95.8087 -0.980145 4.06665 +95.7686 -1.17601 4.8793 +95.7211 -1.37178 5.69157 +95.6664 -1.56746 6.50342 +95.6044 -1.76301 7.31477 +95.5351 -1.95843 8.12556 +96.2548 -2.17166 9.01027 +95.3746 -2.3488 9.74524 +96.1778 -2.5676 10.653 +96.0785 -2.76416 11.4686 +95.9719 -2.96049 12.2832 +95.8579 -3.15663 13.097 +95.6378 -3.34905 13.8953 +95.4107 -3.54081 14.6909 +96.2615 -3.77442 15.6602 +95.8218 -3.95892 16.4256 +95.769 -4.15895 17.2556 +95.6105 -4.35462 18.0674 +95.4447 -4.54994 18.8778 +95.2716 -4.74493 19.6869 +95.9699 -4.9852 20.6837 +95.7806 -5.18124 21.4971 +95.584 -5.37689 22.3089 +95.3801 -5.57212 23.1189 +95.3625 -5.77867 23.9758 +95.8198 -6.01588 24.9601 +95.5921 -6.21158 25.772 +96.1262 -6.45847 26.7964 +95.882 -6.65478 27.6109 +96.4911 -6.91224 28.6791 +96.23 -7.10927 29.4966 +95.9616 -7.30576 30.3118 +96.6342 -7.57604 31.4332 +96.3483 -7.77335 32.2519 +95.9609 -7.96223 33.0355 +96.5064 -8.23028 34.1477 +96.1962 -8.42729 34.9651 +96.9056 -8.71603 36.1631 +97.3217 -8.98254 37.2688 +96.2417 -9.11099 37.8017 +96.7302 -9.38813 38.9516 +96.3769 -9.58554 39.7707 +96.8415 -9.86634 40.9357 +96.5618 -10.0735 41.7953 +96.1829 -10.2706 42.6129 +96.6124 -10.556 43.797 +96.2156 -10.7531 44.6149 +96.6204 -11.0419 45.813 +96.116 -11.2285 46.5875 +96.496 -11.5204 47.7985 +96.0633 -11.7173 48.6153 +96.4179 -12.0122 49.8391 +95.9668 -12.2089 50.6552 +96.2956 -12.5069 51.8916 +96.6095 -12.8072 53.1374 +96.1288 -13.0042 53.955 +97.1056 -13.4025 55.6073 +96.517 -13.5885 56.3789 +96.6894 -13.8832 57.6018 +96.1687 -14.0804 58.4199 +96.3996 -14.3898 59.7037 +96.531 -14.6885 60.9429 +95.9803 -14.8853 61.7594 +96.0855 -15.1858 63.0063 +96.2579 -15.5011 64.3145 +96.3323 -15.8049 65.5748 +96.3913 -16.1101 66.8412 +95.8685 -16.3204 67.7136 +95.1767 -16.5018 68.4664 +95.996 -16.9496 70.3244 +95.9958 -17.2594 71.6095 +96.0585 -17.5848 72.9599 +96.1043 -17.9118 74.3167 +96.133 -18.2404 75.6798 +96.1444 -18.5704 77.049 +95.9854 -18.8717 78.2992 +96.0393 -19.2194 79.7419 +95.9991 -19.5534 81.1276 +95.8663 -19.8732 82.4543 +95.7171 -20.1938 83.7848 +95.6986 -20.5471 85.2504 +96.173 -21.0136 87.1862 +96.0396 -21.3546 88.601 +95.888 -21.6967 90.0202 +96.2888 -22.1711 91.9887 +96.0958 -22.5163 93.4207 +95.9545 -22.879 94.9258 +96.3491 -23.3777 96.9949 +96.0255 -23.7099 98.373 +95.8208 -24.0766 99.8945 +96.0689 -24.5654 101.922 +95.8195 -24.9349 103.456 +95.9474 -25.4108 105.43 +95.5222 -25.7475 106.827 +95.8585 -26.2981 109.112 +95.454 -26.6547 110.591 +95.3481 -27.102 112.447 +95.4679 -27.6236 114.611 +95.556 -28.1478 116.786 +95.4275 -28.6192 118.742 +95.0277 -29.0175 120.394 +95.3877 -29.66 123.06 +95.4691 -30.2305 125.427 +95.1624 -30.69 127.334 +95.0611 -31.2268 129.561 +94.9269 -31.7655 131.796 +95.043 -32.4024 134.438 +94.7832 -32.9258 136.61 +94.9884 -33.6264 139.517 +94.8761 -34.2319 142.029 +94.9408 -34.9186 144.878 +94.3256 -35.3699 146.751 +94.0497 -35.9608 149.203 +93.2219 -36.3526 150.828 +93.3363 -37.1275 154.043 +92.85 -37.6821 156.344 +93.1173 -38.5638 160.002 +93.035 -39.3267 163.168 +93.38 -40.2979 167.197 +93.1901 -41.0665 170.386 +93.2732 -41.9829 174.188 +93.3858 -42.9445 178.178 +94.5493 -44.434 184.358 +92.321 -44.3518 184.017 +96.6497 -47.4784 196.989 +92.2998 -46.379 192.428 +94.0524 -48.3568 200.634 +90.0108 -47.3701 196.54 +90.6755 -48.8629 202.734 +86.6642 -47.8388 198.484 +87.2136 -49.3346 204.691 +82.6382 -47.9252 198.843 +83.1958 -49.4876 205.325 +78.7693 -48.0808 199.489 +79.0418 -49.5349 205.522 +74.0132 -47.6469 197.688 +74.272 -49.1439 203.899 +68.9879 -46.9453 194.777 +68.9186 -48.2624 200.242 +66.5623 -48.0004 199.155 +66.3658 -49.3189 204.625 +63.1815 -48.422 200.904 +63.2786 -50.0546 207.678 +56.2576 -45.9704 190.732 +55.639 -47.0093 195.043 +51.945 -45.4237 188.464 +51.6784 -46.8214 194.263 +48.5537 -45.6292 189.317 +48.1598 -47.0027 195.016 +44.9227 -45.5927 189.165 +44.3052 -46.8265 194.285 +41.7071 -45.9755 190.754 +40.9103 -47.1154 195.483 +37.8183 -45.5873 189.143 +37.2672 -47.1143 195.478 +34.4865 -45.8272 190.138 +33.7027 -47.1902 195.793 +31.1617 -46.1002 191.271 +30.0349 -47.089 195.373 +27.431 -45.7332 189.748 +26.536 -47.2279 195.95 +24.1179 -46.0245 190.957 +23.0029 -47.3059 196.274 +20.6339 -45.9997 190.854 +19.4759 -47.3929 196.634 +17.1958 -46.0536 191.077 +15.9194 -47.3952 196.644 +13.7699 -46.1402 191.437 +12.3379 -47.2659 196.107 +10.3311 -46.1895 191.641 +8.83729 -47.4261 196.772 +6.88916 -46.2248 191.788 +5.32701 -47.6658 197.767 +3.43463 -46.1053 191.292 +1.76887 -47.4929 197.049 +1.24345e-14 -46.417 192.585 +-1.7741 -47.6335 197.633 +-3.44511 -46.2459 191.876 +-5.34272 -47.8064 198.35 +-6.92755 -46.4823 192.856 +-8.92453 -47.8943 198.715 +-10.3939 -46.4704 192.807 +-12.515 -47.9442 198.922 +-13.8536 -46.4207 192.601 +-16.0841 -47.8856 198.679 +-17.405 -46.6138 193.402 +-19.658 -47.836 198.473 +-20.9475 -46.6986 193.754 +-23.4331 -48.1905 199.944 +-24.3739 -46.5128 192.983 +-27.045 -48.1338 199.708 +-28.0851 -46.8237 194.273 +-30.5965 -47.9695 199.027 +-31.7093 -46.91 194.631 +-34.4454 -48.2301 200.108 +-35.4763 -47.1424 195.595 +-38.0326 -48.0817 199.492 +-38.7915 -46.7602 194.009 +-42.0866 -48.47 201.103 +-42.5179 -46.8694 194.462 +-45.9501 -48.5651 201.498 +-46.2274 -46.9168 194.659 +-49.8172 -48.6204 201.727 +-50.2714 -47.2434 196.014 +-54.1322 -49.0445 203.487 +-54.0932 -47.3022 196.258 +-57.5631 -48.635 201.788 +-57.7736 -47.2089 195.871 +-62.0574 -49.0886 203.67 +-62.129 -47.6155 197.558 +-66.4259 -49.3637 204.811 +-66.2532 -47.7776 198.231 +-70.5368 -49.3955 204.943 +-70.8111 -48.186 199.925 +-75.0064 -49.6298 205.916 +-74.9024 -48.2195 200.064 +-79.1469 -49.6008 205.795 +-79.6652 -48.6277 201.758 +-83.8188 -49.8581 206.862 +-83.9493 -48.6856 201.998 +-88.706 -50.1788 208.193 +-88.735 -48.982 203.227 +-93.0282 -50.1308 207.994 +-93.1427 -49.0183 203.378 +-98.3238 -50.553 209.746 +-98.6814 -49.5856 205.732 +-104.743 -51.4544 213.486 +-104.683 -50.2906 208.657 +-111.192 -52.2555 216.81 +-110.32 -50.7318 210.488 +-114.883 -51.7096 214.544 +-113.753 -50.128 207.982 +-118.86 -51.2937 212.819 +-111.555 -47.155 195.648 +-108.973 -45.1306 187.248 +-109 -44.2365 183.538 +-109.121 -43.4061 180.093 +-110.012 -42.9002 177.994 +-99.327 -37.9787 157.575 +-100.685 -37.7543 156.643 +-98.6482 -36.2823 150.536 +-98.4707 -35.529 147.411 +-98.3 -34.7987 144.381 +-98.6416 -34.2661 142.171 +-98.4414 -33.561 139.246 +-98.5978 -32.9938 136.892 +-98.7195 -32.4286 134.547 +-98.3953 -31.7325 131.659 +-98.7406 -31.2664 129.725 +-98.6375 -30.6703 127.252 +-98.6802 -30.1331 125.023 +-98.6905 -29.5977 122.802 +-98.4818 -29.0098 120.362 +-98.3628 -28.4613 118.087 +-98.4013 -27.9697 116.047 +-98.6036 -27.5341 114.24 +-98.781 -27.0999 112.438 +-98.6713 -26.5961 110.348 +-98.4653 -26.0776 108.197 +-98.3622 -25.5966 106.201 +-98.7713 -25.2564 104.789 +-98.4124 -24.7278 102.596 +-98.71 -24.3728 101.123 +-99.0583 -24.0351 99.7224 +-98.5478 -23.4974 97.4913 +-98.7828 -23.1459 96.0329 +-98.9992 -22.7952 94.5779 +-98.5496 -22.2989 92.5189 +-98.7235 -21.9514 91.0771 +-98.879 -21.6049 89.6393 +-99.0901 -21.2753 88.2716 +-99.2841 -20.9464 86.9072 +-99.3864 -20.6029 85.4819 +-99.5462 -20.2759 84.1252 +-98.7007 -19.752 81.9517 +-98.8963 -19.444 80.6738 +-98.8451 -19.092 79.2133 +-99.0084 -18.786 77.9435 +-99.3912 -18.5245 76.8585 +-99.6046 -18.234 75.6532 +-99.5658 -17.9013 74.2728 +-98.9509 -17.4714 72.4891 +-98.8744 -17.1429 71.1265 +-99.5091 -16.9401 70.285 +-99.4035 -16.6135 68.93 +-99.3631 -16.3021 67.638 +-99.2248 -15.9789 66.2969 +-99.1529 -15.6706 65.0177 +-99.149 -15.3767 63.7984 +-98.8793 -15.0458 62.4253 +-99.6045 -14.8682 61.6886 +-99.3912 -14.5522 60.3776 +-99.8442 -14.3362 59.4813 +-99.0885 -13.9505 57.881 +-99.6905 -13.7592 57.0875 +-99.4197 -13.4494 55.8021 +-100.004 -13.2572 55.0044 +-99.6192 -12.9386 53.6826 +-99.3942 -12.645 52.4644 +-99.155 -12.3533 51.254 +-99.6113 -12.15 50.4109 +-99.169 -11.8395 49.1225 +-99.6062 -11.6363 48.2793 +-99.3167 -11.35 47.0915 +-99.7357 -11.1465 46.2472 +-99.3313 -10.853 45.0296 +-100.005 -10.6787 44.3061 +-100.673 -10.5024 43.5746 +-102.16 -10.4082 43.184 +-101.992 -10.144 42.0878 +-109.572 -10.6345 44.1228 +-108.481 -10.2696 42.6089 +-114.162 -10.5369 43.7178 +-113.897 -10.2443 42.5038 +-125.795 -11.0203 45.7236 +-124.697 -10.6345 44.1226 +-162.417 -13.4764 55.9138 +-162.251 -13.0904 54.3122 +-164.344 -12.8845 53.4581 +-164.057 -12.49 51.8215 +-166.71 -12.3162 51.1001 +-166.971 -11.9611 49.627 +-172.588 -11.9786 49.6996 +-173.027 -11.6253 48.2335 +-3157.34 -205.164 851.232 +-3164.86 -198.7 824.414 +-379.514 -22.9974 95.4167 +-379.774 -22.1865 92.0522 +-379.03 -21.3216 88.4638 +-379.809 -20.5458 85.2449 +-378.315 -19.6517 81.5356 +-379.032 -18.8774 78.323 +-378.839 -18.0596 74.9299 +-379.203 -17.2709 71.6576 +-379.831 -16.4949 68.4379 +-378.856 -15.6525 64.9428 +-380.312 -14.9121 61.8707 +-379.667 -14.0899 58.4594 +-378.892 -13.268 55.0494 +-378.579 -12.4667 51.7247 +-379.029 -11.6922 48.5111 +-380.244 -10.9395 45.3884 +-379.843 -10.1404 42.0728 +-378.913 -9.3315 38.7166 +-378.947 -8.54965 35.4727 +-379.55 -7.78059 32.2819 +-379.925 -7.00608 29.0684 +-144.348 -2.36509 9.81281 +-148.522 -2.12848 8.83114 +-380.178 -4.66848 19.3696 +-146.86 -1.50241 6.23355 +-147.61 -1.20779 5.01116 +-3275.38 -20.0966 83.3811 +-145.278 -0.594172 2.46524 +-145.294 -0.297099 1.23267 +94.9 0 1.13687e-13 +95.7964 -0.188543 0.814464 +95.8854 -0.377466 1.63057 +95.7672 -0.565571 2.44314 +95.8416 -0.754815 3.26063 +95.7088 -0.942428 4.07108 +95.7686 -1.13194 4.88971 +95.7211 -1.32037 5.70372 +95.6664 -1.50871 6.5173 +96.5016 -1.71286 7.39917 +96.4316 -1.90272 8.21932 +96.3544 -2.09243 9.03884 +96.2697 -2.28199 9.85771 +96.1778 -2.47137 10.6758 +96.0785 -2.66057 11.4931 +95.9719 -2.84954 12.3094 +95.8579 -3.03833 13.1249 +95.6378 -3.22353 13.925 +95.4107 -3.40811 14.7223 +95.0779 -3.58831 15.5007 +95.9203 -3.81444 16.4776 +95.769 -4.00308 17.2924 +95.6105 -4.19142 18.106 +95.4447 -4.37942 18.9181 +95.2716 -4.5671 19.7289 +95.0912 -4.75443 20.5381 +95.7806 -4.98706 21.543 +95.584 -5.17538 22.3565 +95.5741 -5.3742 23.2154 +96.0402 -5.60163 24.1978 +96.013 -5.8021 25.0638 +95.5921 -5.97878 25.827 +96.1262 -6.21642 26.8536 +95.882 -6.40537 27.6698 +95.7261 -6.60043 28.5124 +96.23 -6.84283 29.5595 +95.9616 -7.03196 30.3765 +96.5393 -7.28495 31.4694 +96.3483 -7.48202 32.3207 +96.0552 -7.67135 33.1386 +96.5064 -7.92183 34.2205 +96.1962 -8.11145 35.0397 +96.8123 -8.3813 36.2054 +96.4843 -8.57151 37.027 +96.9834 -8.83709 38.1743 +96.7302 -9.03628 39.0347 +96.3769 -9.22629 39.8555 +96.0162 -9.41562 40.6734 +96.5618 -9.69597 41.8845 +96.1829 -9.88565 42.7038 +96.6124 -10.1603 43.8904 +96.2156 -10.3501 44.7101 +96.6204 -10.628 45.9108 +96.116 -10.8077 46.687 +96.496 -11.0886 47.9005 +96.0633 -11.2781 48.719 +96.4179 -11.562 49.9455 +96.7578 -11.8482 51.1817 +96.2956 -12.0382 52.0023 +96.6095 -12.3272 53.2508 +96.8216 -12.6071 54.4598 +96.244 -12.7857 55.2314 +96.6028 -13.0908 56.5494 +96.6894 -13.3629 57.7248 +96.2535 -13.5646 58.5962 +96.3153 -13.8384 59.7788 +95.7762 -14.0274 60.5954 +95.8969 -14.315 61.8375 +96.1684 -14.6293 63.1952 +96.2579 -14.9202 64.4518 +96.3323 -15.2125 65.7148 +95.8214 -15.4146 66.5878 +95.8685 -15.7087 67.8581 +95.9001 -16.0041 69.1342 +96.6349 -16.4229 70.9435 +95.9958 -16.6125 71.7624 +96.0585 -16.9258 73.1156 +96.1043 -17.2405 74.4753 +96.133 -17.5568 75.8413 +96.0673 -17.86 77.1514 +95.9854 -18.1644 78.4663 +96.0393 -18.4991 79.912 +95.9236 -18.8058 81.2368 +95.8663 -19.1284 82.6303 +95.7914 -19.4521 84.0288 +95.6986 -19.777 85.4323 +95.5879 -20.103 86.8407 +95.967 -20.5388 88.723 +95.8161 -20.8679 90.1446 +95.7182 -21.2137 91.6386 +96.0958 -21.6724 93.62 +95.9545 -22.0216 95.1283 +95.6545 -22.3394 96.5011 +96.0943 -22.8375 98.6531 +95.8208 -23.1743 100.108 +96.0689 -23.6447 102.14 +95.7526 -23.9837 103.604 +95.351 -24.3064 104.998 +95.5878 -24.7994 107.128 +95.8585 -25.3125 109.344 +95.454 -25.6558 110.827 +95.4117 -26.1037 112.762 +96.0343 -26.746 115.537 +95.4315 -27.0576 116.883 +95.0581 -27.4399 118.534 +94.9668 -27.9122 120.574 +95.0266 -28.4404 122.856 +94.8742 -28.9162 124.912 +95.1037 -29.5215 127.527 +95.0611 -30.0565 129.837 +94.9269 -30.575 132.077 +95.0996 -31.2067 134.806 +94.7832 -31.6918 136.902 +94.602 -32.2344 139.246 +94.7127 -32.8923 142.088 +94.6722 -33.515 144.777 +94.4316 -34.0824 147.229 +94.52 -34.7863 150.269 +93.9944 -35.2802 152.403 +93.8946 -35.9496 155.294 +93.3 -36.4455 157.437 +93.4127 -37.2362 160.852 +93.035 -37.8528 163.516 +93.4277 -38.8073 167.639 +93.1432 -39.5075 170.664 +93.2732 -40.4094 174.56 +92.8865 -41.114 177.603 +94.5047 -42.7484 184.664 +93.2854 -43.1354 186.335 +102.031 -48.2436 208.402 +97.5403 -47.1753 203.787 +97.1212 -48.0632 207.622 +94.3222 -47.7786 206.393 +94.2643 -48.8932 211.208 +91.1185 -48.4126 209.132 +90.275 -49.1525 212.328 +86.9462 -48.5337 209.655 +86.1278 -49.3115 213.015 +83.1772 -48.8686 211.101 +81.7034 -49.284 212.896 +78.6646 -48.7434 210.561 +77.51 -49.3641 213.242 +74.6202 -48.8751 211.13 +73.0753 -49.2554 212.772 +68.8181 -47.7671 206.343 +68.7413 -49.1699 212.403 +66.9531 -49.3895 213.352 +65.5223 -49.8871 215.501 +62.9556 -49.5154 213.896 +59.7812 -48.616 210.01 +55.3096 -46.5533 201.1 +54.7581 -47.7522 206.279 +51.4568 -46.5452 201.065 +50.8911 -47.807 206.516 +47.4422 -46.3451 200.201 +46.9241 -47.7357 206.208 +43.7654 -46.4365 200.595 +42.8442 -47.4933 205.161 +40.1653 -46.6018 201.309 +39.2171 -47.7211 206.145 +36.3967 -46.5528 201.098 +35.4357 -47.7572 206.3 +32.7887 -46.6888 201.685 +31.6312 -47.733 206.196 +29.1707 -46.8108 202.213 +27.9457 -47.8726 206.799 +25.4707 -46.7842 202.098 +24.067 -47.6392 205.791 +21.7524 -46.6755 201.628 +20.4056 -47.7942 206.46 +18.2417 -47.0237 203.132 +16.6726 -47.7772 206.387 +14.5791 -47.0208 203.12 +13.0339 -48.0607 207.612 +10.9434 -47.0934 203.433 +9.29965 -48.037 207.509 +7.3254 -47.3097 204.368 +5.58878 -48.134 207.928 +3.65802 -47.2637 204.169 +1.86312 -48.1487 207.992 +9.76996e-15 -47.316 204.395 +-1.85526 -47.9457 207.115 +-3.66675 -47.3765 204.656 +-5.57307 -47.9987 207.344 +-7.3603 -47.5352 205.342 +-9.33455 -48.2172 208.288 +-11.0377 -47.4989 205.185 +-13.0827 -48.2407 208.389 +-14.7814 -47.6733 205.938 +-16.9158 -48.4741 209.398 +-18.4944 -47.6753 205.947 +-20.6931 -48.4676 209.369 +-22.1287 -47.4829 205.116 +-24.5764 -48.6476 210.147 +-26.0191 -47.7917 206.449 +-28.4156 -48.6778 210.277 +-29.7135 -47.6818 205.975 +-32.2372 -48.6476 210.147 +-33.4457 -47.6246 205.728 +-36.2775 -48.8916 211.201 +-37.2649 -47.6633 205.895 +-39.8367 -48.4753 209.402 +-41.1003 -47.6864 205.994 +-44.1799 -48.9739 211.556 +-45.2208 -47.9807 207.266 +-48.2877 -49.123 212.2 +-49.1968 -48.0592 207.605 +-52.3851 -49.2105 212.578 +-53.1986 -48.1207 207.871 +-56.7611 -49.4989 213.824 +-57.1731 -48.1218 207.876 +-61.0372 -49.6374 214.423 +-61.6601 -48.4965 209.494 +-65.0111 -49.4978 213.82 +-65.2281 -48.1171 207.855 +-69.5232 -49.729 214.818 +-69.5288 -48.2605 208.475 +-74.1224 -49.961 215.821 +-73.904 -48.406 209.103 +-78.8786 -50.2357 217.007 +-79.1777 -49.0614 211.934 +-83.6295 -50.4457 217.914 +-83.8223 -49.2475 212.738 +-88.6933 -50.7804 219.36 +-88.9316 -49.6419 214.442 +-93.7192 -51.0278 220.429 +-93.8536 -49.8656 215.409 +-99.0891 -51.3956 222.018 +-99.9352 -50.6218 218.675 +-106.576 -52.7423 227.835 +-106.331 -51.4268 222.152 +-111.459 -52.7014 227.659 +-112.004 -51.791 223.726 +-115.565 -52.275 225.816 +-115.404 -51.081 220.659 +-121.163 -52.4924 226.755 +-120.138 -50.9574 220.125 +-125.111 -51.9678 224.489 +-124.79 -50.7727 219.327 +-109.22 -43.5373 188.071 +-108.9 -42.5393 183.76 +-109.425 -41.8959 180.981 +-109.961 -41.273 178.29 +-98.8045 -36.363 157.08 +-98.3 -35.4787 153.26 +-98.7019 -34.9415 150.939 +-98.4707 -34.1974 147.725 +-98.9071 -33.7013 145.582 +-98.5857 -32.9631 142.393 +-98.8945 -32.4519 140.185 +-98.5978 -31.7572 137.184 +-98.7195 -31.2132 134.834 +-98.3953 -30.5432 131.94 +-98.8595 -30.1309 130.159 +-98.5773 -29.5028 127.446 +-98.9846 -29.093 125.676 +-98.5674 -28.453 122.911 +-98.5441 -27.9401 120.695 +-98.5516 -27.4471 118.566 +-98.3377 -26.9041 116.22 +-98.925 -26.5885 114.857 +-98.781 -26.0843 112.678 +-98.6713 -25.5994 110.584 +-98.4653 -25.1003 108.428 +-99.0313 -24.8048 107.151 +-98.7713 -24.3098 105.013 +-99.1626 -23.9826 103.599 +-98.7789 -23.4756 101.409 +-98.9888 -23.1181 99.8651 +-99.2488 -22.7775 98.394 +-98.7828 -22.2784 96.2378 +-98.9992 -21.9409 94.7798 +-99.2689 -21.6199 93.3931 +-99.3763 -21.2684 91.875 +-98.879 -20.7952 89.8306 +-98.7214 -20.4017 88.1309 +-98.9126 -20.0859 86.7668 +-98.4877 -19.6514 84.8896 +-99.2443 -19.4568 84.0491 +-98.8528 -19.041 82.253 +-98.9729 -18.7298 80.9086 +-99.3081 -18.4626 79.7542 +-99.3193 -18.1387 78.355 +-98.9217 -17.746 76.6587 +-99.5258 -17.5367 75.7547 +-99.5658 -17.2303 74.4313 +-98.9509 -16.8166 72.6438 +-98.8744 -16.5004 71.2783 +-99.59 -16.3185 70.4922 +-99.4035 -15.9909 69.0771 +-99.3631 -15.6912 67.7823 +-99.2248 -15.38 66.4383 +-99.1529 -15.0833 65.1564 +-98.9822 -14.7755 63.827 +-99.6341 -14.5924 63.0361 +-99.5202 -14.2989 61.768 +-99.3912 -14.0068 60.5064 +-99.3326 -13.7282 59.3028 +-99.0885 -13.4276 58.0045 +-98.915 -13.1406 56.7643 +-99.4197 -12.9454 55.9212 +-99.1335 -12.6493 54.642 +-99.7066 -12.4646 53.8444 +-99.3942 -12.1711 52.5763 +-99.155 -11.8903 51.3634 +-99.6113 -11.6947 50.5184 +-99.169 -11.3958 49.2273 +-99.6062 -11.2002 48.3823 +-99.3167 -10.9246 47.192 +-100.819 -10.8453 46.8492 +-100.238 -10.5416 45.5374 +-102.189 -10.5029 45.3703 +-101.769 -10.2188 44.1431 +-108.763 -10.6656 46.0732 +-108.896 -10.4248 45.0326 +-113.545 -10.607 45.8201 +-113.765 -10.3663 44.78 +-124.304 -11.0429 47.7031 +-125.66 -10.8787 46.9936 +-162.325 -13.6876 59.1273 +-162.849 -13.3676 57.745 +-163.077 -13.024 56.2608 +-164.709 -12.7907 55.2528 +-165.767 -12.509 54.0359 +-165.674 -12.1404 52.4439 +-172.337 -12.2547 52.9376 +-173.856 -11.9876 51.7838 +-181.792 -12.1446 52.4619 +-182.832 -11.8236 51.0755 +-377.936 -23.6379 102.111 +-380.768 -23.0098 99.3974 +-379.708 -22.1467 95.669 +-378.512 -21.284 91.9423 +-378.349 -20.4856 88.4934 +-379.322 -19.7504 85.3172 +-379.193 -18.9591 81.8993 +-379.913 -18.2121 78.6724 +-380.015 -17.4368 75.323 +-379.497 -16.6366 71.8663 +-379.831 -15.8767 68.5839 +-380.727 -15.1403 65.4028 +-379.128 -14.3085 61.8097 +-379.964 -13.5724 58.6298 +-379.386 -12.7874 55.2389 +-379.867 -12.0403 52.0114 +-378.435 -11.2363 48.5382 +-378.557 -10.4828 45.2835 +-379.843 -9.76036 42.1626 +-379.907 -9.00536 38.9012 +-379.545 -8.24219 35.6044 +-380.845 -7.51454 32.4612 +-379.227 -6.7311 29.0769 +-147.44 -2.32521 10.0444 +-147.524 -2.03494 8.79051 +-380.478 -4.49705 19.4263 +-146.46 -1.44217 6.22985 +-146.511 -1.15387 4.98446 +-3275.38 -19.3434 83.5591 +-146.378 -0.576234 2.4892 +-145.794 -0.286948 1.23955 +95.9 3.55271e-15 -1.7053e-13 +95.8963 -0.181375 0.816984 +94.9855 -0.359333 1.61857 +95.7672 -0.543503 2.44815 +95.7416 -0.724606 3.2639 +95.8087 -0.9066 4.08368 +95.6687 -1.08663 4.89461 +95.7211 -1.26885 5.7154 +95.6664 -1.44984 6.53065 +96.5016 -1.64602 7.41432 +96.4316 -1.82848 8.23615 +96.3544 -2.01079 9.05735 +96.2697 -2.19295 9.8779 +96.1778 -2.37494 10.6976 +96.0785 -2.55676 11.5166 +95.9719 -2.73835 12.3346 +95.8579 -2.91978 13.1518 +95.6378 -3.09775 13.9535 +95.5095 -3.27851 14.7677 +96.2615 -3.49121 15.7257 +95.8218 -3.66186 16.4944 +95.6707 -3.84294 17.3101 +95.8068 -4.03615 18.1804 +95.4447 -4.20854 18.9569 +95.2716 -4.3889 19.7693 +95.0912 -4.56891 20.5801 +95.7806 -4.79247 21.5871 +95.584 -4.97344 22.4023 +95.5741 -5.16451 23.2629 +95.3625 -5.34506 24.0762 +95.8198 -5.56448 25.0646 +95.7849 -5.75709 25.9321 +96.2223 -5.97984 26.9355 +95.9779 -6.16159 27.7542 +95.7261 -6.34289 28.5708 +96.23 -6.57583 29.62 +95.9616 -6.75758 30.4387 +95.6859 -6.9388 31.255 +96.2538 -7.18302 32.3551 +95.9609 -7.36479 33.1738 +96.5064 -7.61272 34.2906 +96.1962 -7.79495 35.1114 +96.9056 -8.06203 36.3145 +96.5773 -8.24499 37.1386 +96.9834 -8.49228 38.2525 +96.7302 -8.68369 39.1147 +96.3769 -8.86629 39.9372 +96.8415 -9.12601 41.1071 +96.5618 -9.31765 41.9703 +96.1829 -9.49992 42.7913 +95.8874 -9.69062 43.6502 +96.2156 -9.94625 44.8017 +96.6204 -10.2133 46.0048 +96.116 -10.386 46.7826 +96.496 -10.656 47.9986 +96.0633 -10.8381 48.8188 +96.4179 -11.1109 50.0478 +96.7578 -11.3859 51.2865 +96.2956 -11.5685 52.1088 +96.6095 -11.8462 53.3599 +96.8216 -12.1152 54.5714 +96.244 -12.2868 55.3445 +96.6028 -12.58 56.6652 +96.6894 -12.8415 57.843 +96.1687 -13.0239 58.6645 +96.231 -13.2868 59.8488 +96.531 -13.5863 61.198 +96.7308 -13.876 62.5029 +96.7487 -14.1433 63.7067 +96.3404 -14.3503 64.6391 +96.3323 -14.619 65.8494 +96.4727 -14.9139 67.1777 +95.7876 -15.083 67.9397 +95.9001 -15.3796 69.2757 +95.996 -15.6778 70.6188 +95.9958 -15.9643 71.9093 +96.0585 -16.2653 73.2653 +96.1043 -16.5678 74.6278 +96.0552 -16.8581 75.9352 +96.0673 -17.1632 77.3095 +95.9854 -17.4557 78.627 +96.0393 -17.7773 80.0757 +95.9236 -18.072 81.4032 +95.8663 -18.382 82.7995 +95.7914 -18.6931 84.2009 +96.3621 -19.1371 86.2009 +96.173 -19.4369 87.5512 +95.967 -19.7374 88.9047 +95.7441 -20.0386 90.2614 +96.2888 -20.5075 92.3738 +95.5301 -20.7042 93.2595 +95.8844 -21.1469 95.2536 +95.7239 -21.4833 96.769 +96.0943 -21.9464 98.8552 +95.8208 -22.27 100.313 +96.0014 -22.7061 102.277 +95.6857 -23.0318 103.744 +95.9474 -23.5041 105.871 +95.6534 -23.8482 107.422 +95.339 -24.1931 108.975 +95.9682 -24.7873 111.652 +95.4117 -25.0851 112.993 +95.4679 -25.5509 115.091 +95.4315 -26.0019 117.122 +95.5507 -26.5058 119.392 +95.5755 -26.9949 121.596 +95.0868 -27.3478 123.185 +95.3501 -27.9273 125.795 +95.28 -28.4223 128.025 +95.1191 -28.9013 130.182 +94.8122 -29.3464 132.188 +94.9863 -29.9533 134.921 +94.7832 -30.4552 137.182 +94.5468 -30.9587 139.45 +94.8217 -31.6453 142.543 +94.7797 -32.2437 145.238 +94.5376 -32.7894 147.696 +94.5722 -33.4474 150.66 +94.8185 -34.201 154.054 +94.3006 -34.6964 156.286 +94.2 -35.3613 159.281 +94.0529 -36.0286 162.287 +93.3743 -36.5085 164.448 +93.4754 -37.3121 168.068 +92.9554 -37.8895 170.669 +93.1809 -38.7943 174.745 +92.8865 -39.5097 177.967 +94.4155 -41.0416 184.867 +94.0744 -41.803 188.297 +105.045 -47.7305 214.996 +101.936 -47.3772 213.405 +100.48 -47.7853 215.243 +96.4373 -46.944 211.454 +95.4207 -47.5617 214.236 +93.8927 -47.9399 215.94 +92.1884 -48.2359 217.273 +89.3811 -47.9462 215.968 +87.9603 -48.3956 217.993 +85.4708 -48.2567 217.367 +83.1392 -48.1932 217.081 +80.922 -48.1856 217.047 +78.9453 -48.3165 217.636 +76.476 -48.136 216.823 +74.5031 -48.2582 217.374 +71.1357 -47.4492 213.729 +69.6134 -47.8506 215.537 +67.9179 -48.1464 216.87 +65.7496 -48.1067 216.691 +64.0581 -48.4167 218.087 +61.1441 -47.7843 215.239 +57.5355 -46.5372 209.621 +55.9599 -46.8961 211.238 +53.5857 -46.5797 209.813 +51.8949 -46.8478 211.02 +49.6017 -46.5641 209.742 +47.7899 -46.7195 210.442 +45.5119 -46.4054 209.028 +43.8809 -46.7444 210.555 +41.6345 -46.4215 209.1 +39.7456 -46.4772 209.351 +37.7337 -46.3798 208.913 +36.0794 -46.7273 210.478 +33.8055 -46.2585 208.366 +32.2816 -46.8137 210.867 +30.0892 -46.4009 209.007 +28.5983 -47.0792 212.063 +26.4335 -46.6581 210.166 +24.8821 -47.3309 213.196 +22.5363 -46.4709 209.323 +20.9998 -47.2667 212.907 +18.8169 -46.6137 209.966 +17.1747 -47.2957 213.038 +15.0674 -46.6995 210.353 +13.4368 -47.613 214.467 +11.2522 -46.5329 209.602 +9.57009 -47.5051 213.981 +7.5348 -46.7632 210.64 +5.73275 -47.4475 213.722 +3.76274 -46.7197 210.443 +1.9242 -47.7871 215.251 +1.86517e-14 -46.5751 209.792 +-1.92071 -47.7004 214.861 +-3.77321 -46.8497 211.029 +-5.76678 -47.7292 214.991 +-7.54876 -46.8499 211.03 +-9.67478 -48.0248 216.322 +-11.4145 -47.2039 212.624 +-13.4978 -47.8296 215.443 +-15.2627 -47.3048 213.079 +-17.3473 -47.771 215.179 +-19.0784 -47.2615 212.884 +-21.2778 -47.8924 215.726 +-23.0067 -47.4407 213.691 +-25.3009 -48.1276 216.785 +-27.0184 -47.6906 214.817 +-29.2118 -48.089 216.611 +-30.8964 -47.6458 214.615 +-33.3015 -48.2927 217.529 +-34.9944 -47.8855 215.694 +-37.2182 -48.2021 217.121 +-38.6541 -47.511 214.008 +-41.3128 -48.3098 217.606 +-42.7603 -47.6768 214.754 +-45.3961 -48.3586 217.826 +-46.8425 -47.7621 215.139 +-49.543 -48.4334 218.162 +-51.1089 -47.9789 216.115 +-53.7858 -48.5547 218.709 +-55.3759 -48.1358 216.822 +-58.2634 -48.8265 219.933 +-59.606 -48.2121 217.166 +-62.2398 -48.6406 219.096 +-63.5344 -48.0209 216.305 +-66.9424 -48.9795 220.623 +-68.3857 -48.478 218.364 +-71.5379 -49.1735 221.496 +-73.0207 -48.7067 219.393 +-76.0897 -49.286 222.003 +-77.7457 -48.9353 220.423 +-81.0483 -49.6035 223.433 +-82.9399 -49.3872 222.459 +-86.8514 -50.3451 226.774 +-88.1944 -49.7944 224.293 +-90.9656 -50.0493 225.441 +-92.5653 -49.6542 223.662 +-96.972 -50.7387 228.547 +-98.2298 -50.1544 225.915 +-102.997 -51.3382 231.247 +-104.857 -51.0423 229.914 +-108.567 -51.631 232.566 +-110.515 -51.3646 231.366 +-113.354 -51.5059 232.002 +-114.459 -50.8609 229.097 +-117.662 -51.1468 230.385 +-119.536 -50.8451 229.026 +-124.349 -51.7706 233.194 +-124.926 -50.921 229.368 +-128.69 -51.3685 231.384 +-129.929 -50.8009 228.827 +-109.17 -41.8196 188.372 +-109.05 -40.9358 184.391 +-108.918 -40.0745 180.511 +-110.218 -39.7555 179.074 +-98.8567 -34.9628 157.486 +-98.353 -34.1128 153.657 +-98.7557 -33.5963 151.331 +-98.4707 -32.8631 148.028 +-98.8519 -32.3683 145.799 +-98.6416 -31.6949 142.766 +-98.9512 -31.2036 140.553 +-98.0242 -30.3406 136.666 +-98.2549 -29.854 134.474 +-98.7479 -29.4568 132.685 +-98.6216 -28.8855 130.111 +-98.5171 -28.3345 127.63 +-98.7411 -27.8892 125.623 +-98.6905 -27.3768 123.316 +-98.1083 -26.7312 120.407 +-98.5516 -26.3762 118.808 +-98.4649 -25.8877 116.608 +-98.925 -25.5511 115.092 +-98.781 -25.0665 112.909 +-98.6057 -24.5843 110.737 +-98.5316 -24.1371 108.723 +-99.0313 -23.837 107.371 +-98.8388 -23.3773 105.3 +-98.4124 -22.8723 103.026 +-98.71 -22.544 101.547 +-98.9888 -22.2161 100.07 +-99.2488 -21.8888 98.5955 +-98.7828 -21.4091 96.4349 +-98.9992 -21.0848 94.9739 +-99.197 -20.7612 93.5166 +-99.3038 -20.4236 91.9959 +-98.5865 -19.9247 89.7483 +-98.8689 -19.6349 88.4433 +-98.9869 -19.3167 87.0098 +-98.8622 -18.9564 85.3869 +-98.6405 -18.5839 83.7088 +-98.9288 -18.3122 82.4849 +-99.2794 -18.0547 81.3253 +-98.6136 -17.6181 79.3587 +-98.7753 -17.3354 78.0855 +-99.3912 -17.1345 77.1803 +-99.6834 -16.8791 76.0301 +-99.5658 -16.558 74.5837 +-99.0308 -16.1734 72.8514 +-98.9548 -15.8695 71.4823 +-99.4282 -15.6563 70.5218 +-99.4849 -15.3795 69.2753 +-99.3631 -15.0789 67.9211 +-99.2248 -14.7799 66.5744 +-99.1529 -14.4947 65.2899 +-99.149 -14.2229 64.0655 +-99.6341 -14.0231 63.1652 +-99.5202 -13.7409 61.8945 +-99.476 -13.4718 60.6821 +-99.3326 -13.1925 59.4243 +-99.1743 -12.9149 58.1736 +-98.915 -12.6278 56.8805 +-99.4197 -12.4403 56.0357 +-99.2205 -12.1664 54.802 +-99.7066 -11.9783 53.9547 +-99.3942 -11.6962 52.684 +-99.155 -11.4263 51.4686 +-99.6113 -11.2384 50.6219 +-99.169 -10.9511 49.3281 +-100.322 -10.8405 48.8299 +-100.575 -10.6314 47.8878 +-101.36 -10.4781 47.1973 +-101.235 -10.231 46.0845 +-105.101 -10.3807 46.7587 +-108.072 -10.4283 46.9732 +-110.873 -10.4483 47.063 +-112.762 -10.3737 46.7269 +-118.903 -10.6742 48.0808 +-121.461 -10.6357 47.9071 +-148.588 -12.6852 57.139 +-160.763 -13.3746 60.2442 +-163.262 -13.2294 59.5903 +-162.849 -12.846 57.8633 +-165.339 -12.6894 57.1581 +-165.749 -12.3692 55.7156 +-168.233 -12.1996 54.9519 +-172.427 -12.1422 54.6932 +-176.533 -12.0633 54.3376 +-179.69 -11.9064 53.6309 +-580.757 -37.2835 167.939 +-381.236 -23.6924 106.72 +-379.574 -22.814 102.763 +-377.87 -21.9438 98.8435 +-379.417 -21.2663 95.7917 +-379.386 -20.5007 92.3432 +-380.002 -19.7723 89.062 +-380.297 -19.0285 85.7116 +-380.365 -18.2757 82.3206 +-379.326 -17.4745 78.7118 +-380.015 -16.7564 75.4773 +-379.792 -15.9998 72.0693 +-378.946 -15.2217 68.5643 +-379.249 -14.4931 65.2825 +-379.128 -13.7502 61.9363 +-380.359 -13.0564 58.811 +-379.288 -12.2853 55.3376 +-379.372 -11.5554 52.0499 +-379.029 -10.8148 48.7142 +-380.145 -10.1161 45.5666 +-379.346 -9.36726 42.1937 +-379.211 -8.63811 38.9094 +-379.644 -7.92267 35.6867 +-380.546 -7.21568 32.5022 +-378.729 -6.45996 29.0981 +-147.24 -2.23147 10.0514 +-147.524 -1.95554 8.80851 +-380.378 -4.32045 19.461 +-148.758 -1.40764 6.34056 +-145.112 -1.09826 4.94697 +-146.85 -0.833409 3.75399 +-145.578 -0.550724 2.48067 +-145.194 -0.274616 1.23697 +95 -1.77636e-15 -1.7053e-13 +95.8963 -0.173996 0.818587 +94.9855 -0.344713 1.62175 +95.7672 -0.521391 2.45295 +95.8416 -0.695851 3.27372 +95.7088 -0.868809 4.08742 +95.7686 -1.04351 4.90934 +95.6213 -1.21596 5.72065 +96.5642 -1.40391 6.60487 +96.5016 -1.57906 7.42887 +95.5351 -1.73778 8.17559 +96.3544 -1.92898 9.07513 +96.2697 -2.10373 9.89729 +96.1778 -2.27832 10.7186 +96.1777 -2.45525 11.551 +95.9719 -2.62694 12.3588 +95.8579 -2.80099 13.1776 +95.6378 -2.97172 13.9809 +95.4107 -3.14188 14.7814 +96.0642 -3.34231 15.7243 +95.9203 -3.51647 16.5437 +95.6707 -3.68659 17.344 +95.6105 -3.864 18.1787 +95.3467 -4.03317 18.9746 +95.2716 -4.21034 19.8081 +95.0912 -4.38303 20.6205 +95.7806 -4.59749 21.6295 +95.584 -4.7711 22.4462 +95.3801 -4.94433 23.2612 +96.0402 -5.16405 24.2949 +95.8198 -5.33809 25.1137 +95.7849 -5.52286 25.983 +96.1262 -5.73082 26.9614 +95.9779 -5.91091 27.8086 +95.6305 -6.07876 28.5983 +96.3254 -6.31455 29.7076 +95.9616 -6.48264 30.4984 +96.6342 -6.72247 31.6267 +96.3483 -6.89755 32.4504 +95.9609 -7.06515 33.2389 +96.5064 -7.303 34.3579 +96.1962 -7.47781 35.1804 +96.9056 -7.73402 36.3857 +96.5773 -7.90954 37.2115 +97.0761 -8.15457 38.3642 +96.7302 -8.3304 39.1914 +97.2053 -8.57869 40.3595 +96.0162 -8.68011 40.8367 +95.7396 -8.86244 41.6945 +96.1829 -9.11341 42.8752 +95.8874 -9.29636 43.7359 +96.2156 -9.54159 44.8896 +96.6204 -9.79782 46.0951 +96.2949 -9.98203 46.9617 +96.5851 -10.2319 48.1372 +96.8616 -10.4835 49.321 +96.4179 -10.6589 50.146 +95.9668 -10.8334 50.9671 +96.2956 -11.0978 52.2111 +95.8262 -11.2721 53.0311 +96.8216 -11.6223 54.6785 +96.244 -11.7869 55.4531 +96.6028 -12.0682 56.7764 +96.6894 -12.319 57.9565 +96.1687 -12.494 58.7796 +96.3153 -12.7574 60.0187 +96.4471 -13.0222 61.2648 +96.7308 -13.3115 62.6256 +96.0855 -13.4749 63.3942 +96.3404 -13.7664 64.766 +95.677 -13.9288 65.5297 +96.3913 -14.295 67.2527 +95.7876 -14.4694 68.073 +95.9001 -14.7539 69.4117 +95.996 -15.04 70.7574 +95.9958 -15.3148 72.0505 +96.0585 -15.6036 73.4091 +96.026 -15.8808 74.7134 +96.133 -16.1853 76.1458 +96.1444 -16.4781 77.5234 +96.062 -16.7588 78.8442 +95.9632 -17.0405 80.1693 +95.9991 -17.3504 81.6271 +95.8663 -17.6341 82.962 +95.7914 -17.9326 84.3661 +96.3621 -18.3585 86.37 +96.173 -18.6461 87.723 +95.967 -18.9344 89.0792 +95.8161 -19.2378 90.5065 +96.2888 -19.6732 92.5551 +96.1665 -19.9941 94.065 +95.9545 -20.3013 95.5102 +95.6545 -20.5943 96.8886 +96.0943 -21.0536 99.0492 +95.8208 -21.364 100.51 +96.0014 -21.7823 102.478 +95.6857 -22.0948 103.948 +95.8811 -22.5322 106.006 +95.5878 -22.8622 107.558 +95.9235 -23.351 109.858 +95.3897 -23.6356 111.197 +95.3481 -24.0485 113.139 +95.4679 -24.5113 115.317 +95.556 -24.9764 117.505 +95.6122 -25.4438 119.704 +95.0277 -25.7482 121.136 +95.5682 -26.368 124.052 +95.4096 -26.8079 126.121 +95.28 -27.266 128.276 +95.1772 -27.7425 130.518 +94.9269 -28.1866 132.607 +94.9863 -28.7346 135.186 +94.8391 -29.2334 137.532 +95.1539 -29.8898 140.62 +94.8761 -30.3751 142.903 +94.7259 -30.9144 145.441 +94.5906 -31.473 148.069 +94.6245 -32.1043 151.039 +94.8185 -32.8095 154.357 +94.3514 -33.3027 156.677 +94.35 -33.9767 159.848 +94.5453 -34.7437 163.456 +94.0531 -35.2776 165.968 +93.714 -35.8856 168.828 +93.5187 -36.5681 172.04 +92.9962 -37.1422 174.74 +92.9319 -37.9208 178.403 +94.4601 -39.3905 185.318 +94.1183 -40.1209 188.754 +106.379 -46.3703 218.155 +103.541 -46.1658 217.193 +102.056 -46.56 219.047 +97.8608 -45.6988 214.996 +96.0985 -45.9508 216.181 +94.3225 -46.2001 217.354 +93.2217 -46.792 220.139 +90.5799 -46.6123 219.294 +88.9498 -46.949 220.877 +86.3308 -46.7593 219.985 +84.4 -46.9336 220.805 +81.5718 -46.5965 219.22 +80.4475 -47.2328 222.213 +77.3876 -46.7282 219.839 +76.2166 -47.3596 222.809 +73.1134 -46.7843 220.103 +70.8463 -46.7169 219.786 +68.2396 -46.4063 218.325 +67.482 -47.3656 222.838 +64.9402 -47.0864 221.524 +63.2553 -47.4228 223.107 +58.8037 -45.6279 214.662 +56.5859 -45.4913 214.02 +54.2389 -45.2291 212.786 +52.6886 -45.6291 214.668 +50.3216 -45.3179 213.204 +48.569 -45.5495 214.294 +46.4475 -45.4324 213.743 +44.5986 -45.5761 214.419 +42.3405 -45.2879 213.063 +40.8754 -45.8537 215.725 +38.5499 -45.4551 213.849 +36.8386 -45.7695 215.328 +34.6659 -45.506 214.089 +32.8285 -45.6699 214.86 +30.7851 -45.5424 214.26 +28.9899 -45.7822 215.388 +26.9331 -45.6061 214.56 +25.0406 -45.6944 214.975 +23.1426 -45.7795 215.375 +21.2011 -45.7784 215.37 +19.2614 -45.7736 215.348 +17.3316 -45.7861 215.407 +15.4859 -46.0439 216.62 +13.5528 -46.0703 216.744 +11.5872 -45.9687 216.266 +9.67478 -46.0709 216.747 +7.71628 -45.9412 216.136 +5.80605 -46.099 216.879 +3.85524 -45.9206 216.04 +1.93991 -46.2171 217.434 +1.06581e-14 -46.0524 216.66 +-1.94165 -46.2587 217.63 +-3.87618 -46.1701 217.213 +-5.84793 -46.4315 218.443 +-7.76863 -46.2529 217.603 +-9.7751 -46.5487 218.995 +-11.6081 -46.0516 216.656 +-13.6749 -46.4853 218.696 +-15.5627 -46.2722 217.694 +-17.6455 -46.6153 219.308 +-19.5229 -46.3951 218.272 +-21.479 -46.3784 218.193 +-23.4562 -46.3999 218.294 +-25.5047 -46.5414 218.96 +-27.4572 -46.4934 218.734 +-29.6164 -46.7716 220.043 +-31.5366 -46.6543 219.491 +-33.8188 -47.0477 221.342 +-35.7296 -46.9024 220.658 +-37.4658 -46.5487 218.995 +-39.4876 -46.5608 219.051 +-41.7137 -46.7941 220.149 +-43.5999 -46.635 219.4 +-45.8746 -46.8801 220.554 +-47.9444 -46.8968 220.632 +-50.1058 -46.9907 221.074 +-52.0312 -46.8575 220.447 +-54.3461 -47.0646 221.421 +-56.3194 -46.9641 220.949 +-58.639 -47.1419 221.785 +-61.0036 -47.335 222.694 +-62.8812 -47.1423 221.787 +-65.0504 -47.1664 221.901 +-67.7377 -47.545 223.682 +-69.8476 -47.4997 223.469 +-72.44 -47.7677 224.729 +-74.6894 -47.7927 224.847 +-77.4541 -48.1286 226.427 +-79.4712 -47.9862 225.757 +-82.5838 -48.4871 228.114 +-84.6158 -48.3353 227.4 +-87.9721 -48.92 230.15 +-89.6995 -48.5838 228.569 +-92.6149 -48.8836 229.979 +-95.2625 -49.022 230.631 +-97.7756 -49.0778 230.893 +-100.613 -49.2813 231.85 +-104.113 -49.7832 234.212 +-106.728 -49.8393 234.476 +-109.769 -50.0791 235.603 +-112.332 -50.0853 235.633 +-114.43 -49.8795 234.664 +-116.431 -49.6327 233.503 +-119.715 -49.9219 234.864 +-121.806 -49.7027 233.833 +-124.995 -49.9225 234.867 +-127.086 -49.6938 233.791 +-130.026 -49.7903 234.245 +-132.111 -49.5524 233.126 +-109.367 -40.1906 189.082 +-108.6 -39.1084 183.991 +-109.375 -38.6053 181.623 +-110.682 -38.2984 180.18 +-98.8567 -33.5403 157.795 +-98.8299 -32.8835 154.705 +-98.7019 -32.212 151.545 +-98.4707 -31.5261 148.318 +-98.3 -30.878 145.27 +-98.6975 -30.4227 143.127 +-98.8945 -29.9168 140.748 +-98.5978 -29.2765 137.735 +-98.5453 -28.724 135.136 +-98.8067 -28.2752 133.024 +-98.9785 -27.8107 130.839 +-98.8782 -27.2813 128.349 +-98.6802 -26.7381 125.793 +-98.6905 -26.263 123.558 +-98.6063 -25.7738 121.256 +-98.5516 -25.3031 119.042 +-98.5285 -24.8506 116.913 +-98.4108 -24.3841 114.718 +-98.781 -24.0467 113.131 +-98.6713 -23.5996 111.028 +-98.5316 -23.1551 108.936 +-99.0313 -22.8672 107.582 +-98.8388 -22.4262 105.507 +-98.4124 -21.9418 103.228 +-98.9166 -21.6719 101.958 +-99.0583 -21.3272 100.336 +-98.5478 -20.85 98.0916 +-98.8535 -20.5528 96.6933 +-98.9992 -20.2269 95.1603 +-99.2689 -19.931 93.7681 +-99.0861 -19.5498 91.9744 +-98.5865 -19.114 89.9244 +-98.7952 -18.8221 88.5508 +-98.8383 -18.503 87.0497 +-99.1617 -18.2403 85.8138 +-98.9424 -17.8823 84.1298 +-99.6892 -17.7021 83.282 +-99.2794 -17.3201 81.4849 +-99.3081 -17.0203 80.0744 +-99.397 -16.7348 78.7312 +-99.4695 -16.4503 77.3926 +-99.6046 -16.1796 76.1191 +-98.8518 -15.7705 74.1942 +-99.5898 -15.603 73.4064 +-98.8744 -15.2115 71.5644 +-99.5091 -15.0315 70.7177 +-99.4849 -14.7538 69.4112 +-99.3631 -14.4654 68.0544 +-99.2248 -14.1786 66.7051 +-99.1529 -13.905 65.418 +-99.0656 -13.6328 64.1372 +-98.9631 -13.3619 62.863 +-98.8455 -13.0925 61.5954 +-99.3912 -12.9127 60.7493 +-99.3326 -12.6558 59.5409 +-99.86 -12.4751 58.6907 +-99.6905 -12.209 57.439 +-99.4197 -11.9341 56.1457 +-99.1335 -11.6611 54.8614 +-99.7066 -11.4909 54.0606 +-99.3942 -11.2203 52.7874 +-99.8614 -11.0395 51.9369 +-99.6113 -10.7811 50.7213 +-100.06 -10.6 49.869 +-100.143 -10.3809 48.8384 +-100.665 -10.208 48.0247 +-101.721 -10.0876 47.4584 +-103.047 -9.99051 47.0017 +-106.92 -10.1308 47.6617 +-110.356 -10.2155 48.0601 +-112.523 -10.1724 47.8573 +-114.051 -10.0653 47.3537 +-121.583 -10.4707 49.2606 +-127.395 -10.7014 50.3461 +-160.311 -13.1292 61.7683 +-162.07 -12.9347 60.8532 +-164.011 -12.7494 59.9813 +-164.728 -12.4656 58.6459 +-165.528 -12.1871 57.3356 +-165.939 -11.8795 55.8886 +-168.991 -11.7561 55.3081 +-171.761 -11.6032 54.589 +-177.296 -11.6225 54.6796 +-182.559 -11.6043 54.5941 +-3141.57 -193.478 910.241 +-378.833 -22.5852 106.255 +-378.418 -21.8193 102.652 +-378.836 -21.1049 99.2908 +-380.869 -20.4792 96.347 +-378.9 -19.6415 92.4061 +-380.294 -18.9824 89.3054 +-380.199 -18.2496 85.8578 +-378.608 -17.4511 82.1011 +-379.032 -16.7506 78.8052 +-380.015 -16.0747 75.6254 +-379.792 -15.3489 72.2108 +-379.241 -14.6137 68.7522 +-378.659 -13.8818 65.3087 +-380.608 -13.2423 62.3001 +-379.766 -12.5057 58.8347 +-380.178 -11.8131 55.5763 +-380.461 -11.1171 52.3018 +-379.426 -10.3857 48.8608 +-380.145 -9.70449 45.656 +-379.346 -8.98615 42.2765 +-380.206 -8.3084 39.088 +-379.644 -7.60034 35.7568 +-380.148 -6.91485 32.5318 +-379.327 -6.20693 29.2013 +-148.837 -2.16388 10.1803 +-147.025 -1.86964 8.79594 +-381.277 -4.15447 19.5452 +-3273.38 -29.7145 139.796 +-146.91 -1.06663 5.01812 +-3275.38 -17.8323 83.8945 +-144.578 -0.52469 2.46847 +-147.394 -0.267435 1.25818 +95.8 -1.77636e-15 -1.7053e-13 +95.8963 -0.166617 0.820121 +95.8854 -0.333222 1.64018 +95.8671 -0.4998 2.46011 +95.7416 -0.665646 3.27644 +95.8087 -0.832831 4.09936 +95.7686 -0.999258 4.91854 +95.7211 -1.16561 5.73734 +95.6664 -1.33187 6.55573 +96.5016 -1.51209 7.44279 +95.5351 -1.66408 8.19091 +96.3544 -1.84717 9.09213 +96.2697 -2.01452 9.91583 +96.2771 -2.18394 10.7498 +96.0785 -2.34872 11.5608 +96.071 -2.51814 12.3948 +95.8579 -2.6822 13.2023 +95.6378 -2.84569 14.0071 +95.4107 -3.00863 14.8091 +95.2752 -3.17428 15.6244 +95.9203 -3.36734 16.5747 +95.9657 -3.54113 17.4301 +95.6105 -3.70013 18.2127 +95.4447 -3.86609 19.0297 +95.2716 -4.03178 19.8452 +95.9699 -4.23593 20.8501 +95.7806 -4.40251 21.67 +95.584 -4.56876 22.4883 +95.5741 -4.74428 23.3522 +96.0402 -4.94504 24.3405 +95.8198 -5.11171 25.1608 +95.5921 -5.27799 25.9793 +96.1262 -5.48778 27.0119 +95.9779 -5.66023 27.8607 +95.7261 -5.82677 28.6805 +96.3254 -6.04675 29.7633 +95.9616 -6.20772 30.5556 +95.7807 -6.38053 31.4062 +96.2538 -6.59854 32.4793 +96.1494 -6.77882 33.3667 +96.5064 -6.99329 34.4223 +96.1962 -7.16068 35.2463 +96.8123 -7.3989 36.4188 +96.5773 -7.5741 37.2812 +96.2417 -7.74162 38.1058 +96.7302 -7.97711 39.2649 +96.3769 -8.14485 40.0905 +96.0162 -8.31199 40.9132 +96.5618 -8.55948 42.1314 +96.2739 -8.73516 42.9961 +95.8874 -8.9021 43.8179 +96.3058 -9.1455 45.0159 +96.6204 -9.3823 46.1815 +96.2949 -9.5587 47.0497 +96.5851 -9.79795 48.2274 +96.0633 -9.95619 49.0063 +96.4179 -10.2068 50.24 +96.7578 -10.4595 51.4835 +96.2956 -10.6272 52.3089 +96.6095 -10.8823 53.5647 +96.735 -11.1194 54.7319 +96.3301 -11.2972 55.6068 +96.6885 -11.5666 56.9332 +96.6894 -11.7966 58.0651 +96.0838 -11.9536 58.8379 +96.3153 -12.2163 60.1312 +96.4471 -12.47 61.3796 +95.9803 -12.648 62.2561 +96.0855 -12.9034 63.513 +96.3404 -13.1826 64.8873 +96.3323 -13.4294 66.1022 +95.74 -13.5963 66.9235 +95.8685 -13.8674 68.2582 +95.9001 -14.1282 69.5418 +96.0759 -14.4141 70.9489 +95.9958 -14.6653 72.1854 +96.0585 -14.9418 73.5466 +96.1043 -15.2197 74.9144 +96.133 -15.4989 76.2884 +96.1444 -15.7793 77.6686 +96.062 -16.0481 78.9919 +96.0393 -16.3308 80.3832 +95.9991 -16.6146 81.78 +95.8663 -16.8863 83.1174 +95.7914 -17.1721 84.5242 +95.6249 -17.4454 85.8698 +96.173 -17.8553 87.8874 +95.967 -18.1314 89.2461 +95.888 -18.4357 90.7442 +95.7182 -18.7272 92.1789 +96.1665 -19.1462 94.2413 +95.8844 -19.4262 95.6193 +95.6545 -19.7209 97.0701 +96.0255 -20.1464 99.1642 +95.8208 -20.4579 100.698 +96.0689 -20.8732 102.742 +95.7526 -21.1725 104.215 +95.4835 -21.4873 105.764 +95.6534 -21.9077 107.834 +95.8585 -22.3455 109.989 +95.454 -22.6486 111.481 +95.4117 -23.044 113.427 +95.4679 -23.4718 115.533 +95.4937 -23.9017 117.649 +95.5507 -24.349 119.851 +95.0277 -24.6562 121.363 +95.0266 -25.1068 123.58 +95.4096 -25.671 126.358 +95.809 -26.2546 129.23 +95.2353 -26.5821 130.842 +94.9269 -26.9912 132.856 +94.9863 -27.516 135.439 +94.7832 -27.9771 137.709 +95.0435 -28.5889 140.72 +94.8761 -29.0869 143.171 +95.1558 -29.7377 146.375 +94.5376 -30.1214 148.263 +94.4677 -30.6918 151.071 +94.767 -31.401 154.562 +94.6052 -31.9761 157.393 +94.5 -32.5876 160.402 +94.2991 -33.1836 163.336 +94.2955 -33.8687 166.708 +94.382 -34.6086 170.35 +93.4248 -34.9823 172.189 +94.2891 -36.0615 177.502 +92.9319 -36.3126 178.738 +93.6569 -37.3993 184.086 +94.5128 -38.5805 189.901 +117.271 -48.9501 240.942 +104.598 -44.659 219.82 +117.275 -51.2343 252.185 +99.4064 -44.452 218.801 +116.275 -53.2408 262.061 +94.9477 -44.534 219.205 +110.596 -53.1584 261.656 +91.891 -45.2816 222.885 +105.186 -53.1641 261.684 +87.6568 -45.464 223.782 +99.599 -53.0367 261.057 +83.3503 -45.5932 224.418 +94.6009 -53.187 261.797 +78.7875 -45.5558 224.234 +92.3991 -54.9803 270.624 +74.2259 -45.4819 223.871 +92.3768 -58.331 287.117 +69.4383 -45.2187 222.575 +92.3902 -62.0983 305.66 +65.9325 -45.7785 225.331 +90.8076 -65.1918 320.887 +59.2178 -44.0006 216.58 +86.3561 -66.4804 327.229 +54.6985 -43.6781 214.992 +81.2156 -67.351 331.515 +50.8614 -43.8615 215.895 +75.6889 -67.973 334.576 +46.8425 -43.8758 215.965 +69.1807 -67.6988 333.227 +42.7031 -43.7386 215.29 +60.7209 -65.2275 321.062 +38.793 -43.8019 215.602 +54.7298 -65.1142 320.505 +34.8067 -43.7532 215.361 +48.9545 -65.2157 321.004 +30.9382 -43.828 215.73 +43.0606 -65.1194 320.53 +27.1769 -44.0671 216.907 +37.5721 -65.6545 323.164 +23.2576 -44.0558 216.851 +31.7249 -65.5968 322.88 +19.3573 -44.0506 216.826 +25.9543 -65.6573 323.178 +15.5487 -44.27 217.905 +20.1216 -65.499 322.399 +11.6814 -44.3769 218.432 +14.4642 -65.9568 324.652 +7.78957 -44.4108 218.598 +8.72478 -66.3354 326.516 +3.88665 -44.3315 218.208 +2.92601 -66.7537 328.575 +1.68754e-14 -44.5573 219.32 +-2.92426 -66.7139 328.379 +-3.90236 -44.5107 219.09 +-8.75357 -66.5542 327.593 +-7.81749 -44.57 219.382 +-14.6692 -66.8917 329.254 +-11.7076 -44.4763 218.921 +-20.5489 -66.8901 329.246 +-15.6255 -44.4884 218.981 +-26.5035 -67.0468 330.017 +-19.7146 -44.8637 220.828 +-32.4534 -67.1029 330.294 +-23.613 -44.7289 220.164 +-38.1495 -66.6635 328.131 +-27.7862 -45.0552 221.771 +-44.2614 -66.9353 329.468 +-31.6897 -44.8926 220.97 +-50.5213 -67.303 331.278 +-35.9643 -45.2083 222.524 +-56.6608 -67.4117 331.814 +-39.8523 -44.9979 221.488 +-62.8348 -67.4981 332.239 +-44.0196 -45.0871 221.927 +-69.1209 -67.6403 332.939 +-48.0484 -45.0053 221.525 +-75.8621 -68.1285 335.341 +-52.4811 -45.2583 222.77 +-82.1728 -68.1448 335.422 +-56.9 -45.4361 223.645 +-89.1353 -68.62 337.761 +-61.5213 -45.7122 225.004 +-95.8851 -68.837 338.829 +-65.9876 -45.8168 225.519 +-102.53 -68.9133 339.205 +-70.5785 -45.9613 226.23 +-114.118 -72.0594 354.69 +-75.431 -46.2203 227.505 +-119.909 -71.3498 351.198 +-80.4479 -46.516 228.961 +-127.614 -71.748 353.157 +-85.4708 -46.7531 230.128 +-134.199 -71.4615 351.747 +-90.237 -46.8023 230.37 +-140.883 -71.2067 350.493 +-95.2999 -46.9616 231.154 +-143.085 -68.7749 338.523 +-101.238 -47.4846 233.728 +-143.271 -65.6016 322.904 +-107.663 -48.144 236.974 +-143.65 -62.7567 308.901 +-112.67 -48.1056 236.785 +-143.36 -59.84 294.544 +-117.264 -47.8676 235.614 +-143.542 -57.3192 282.136 +-122.577 -47.8965 235.756 +-141.249 -54.0216 265.905 +-127.931 -47.9027 235.786 +-144.675 -53.0501 261.123 +-132.692 -47.6598 234.591 +-116.507 -40.9987 201.803 +-108.8 -37.5187 184.674 +-109.222 -36.9167 181.711 +-110.63 -36.6572 180.434 +-105.179 -34.1717 168.2 +-98.3 -31.3201 154.164 +-98.7557 -30.8626 151.912 +-98.5797 -30.2223 148.76 +-98.9623 -29.7678 146.523 +-98.6416 -29.1159 143.314 +-99.0078 -28.6809 141.173 +-98.6551 -28.0512 138.073 +-98.6034 -27.5222 135.47 +-98.8067 -27.076 133.273 +-99.038 -26.6472 131.163 +-98.8782 -26.1244 128.589 +-98.8629 -25.6515 126.262 +-98.6905 -25.1492 123.789 +-98.6686 -24.6963 121.56 +-98.4886 -24.2144 119.188 +-98.5285 -23.7967 117.132 +-98.3465 -23.3348 114.859 +-98.9109 -23.0571 113.492 +-98.6713 -22.5988 111.236 +-98.5316 -22.1731 109.14 +-98.4291 -21.7644 107.129 +-98.7713 -21.4604 105.632 +-98.4806 -21.0258 103.493 +-98.8477 -20.7385 102.079 +-98.5026 -20.308 99.96 +-99.3889 -20.1362 99.1142 +-98.7828 -19.6671 96.8052 +-99.1418 -19.397 95.476 +-99.0531 -19.0443 93.7395 +-98.796 -18.6659 91.877 +-98.5865 -18.3034 90.0929 +-99.1638 -18.0911 89.0478 +-98.8383 -17.7183 87.2128 +-99.3864 -17.5063 86.1694 +-98.867 -17.1109 84.2231 +-99.7653 -16.9643 83.5018 +-99.1262 -16.56 81.5115 +-99.5396 -16.3365 80.4114 +-99.4747 -16.0376 78.9404 +-99.5478 -15.7651 77.5987 +-98.8953 -15.3831 75.7187 +-99.4865 -15.1986 74.8104 +-98.8711 -14.8335 73.0131 +-100.241 -14.7677 72.6895 +-99.59 -14.4057 70.9078 +-100.625 -14.29 70.338 +-99.2812 -13.8405 68.1258 +-103.263 -14.1299 69.5499 +-99.2358 -13.3265 65.5954 +-108.489 -14.2964 70.3694 +-98.9631 -12.7953 62.9808 +-112.677 -14.2916 70.3461 +-99.3912 -12.365 60.8631 +-117.92 -14.3869 70.8149 +-99.0885 -11.8538 58.3465 +-130.02 -15.2481 75.0542 +-99.4197 -11.428 56.2509 +-161.886 -18.2352 89.7572 +-99.7066 -11.0036 54.1618 +-162.23 -17.5369 86.3201 +-99.155 -10.4966 51.6662 +-165.605 -17.1636 84.4826 +-99.9709 -10.1414 49.9179 +-168.069 -16.6833 82.1183 +-100.395 -9.74887 47.9858 +-173.748 -16.4996 81.2143 +-104.316 -9.68462 47.6696 +-182.538 -16.5622 81.5221 +-110.63 -9.80655 48.2697 +-540.332 -46.7758 230.24 +-115.892 -9.79405 48.2082 +-379.807 -31.3217 154.171 +-131.011 -10.5384 51.8722 +-379.983 -29.8002 146.682 +-163.283 -12.479 61.4238 +-378.884 -28.2035 138.823 +-163.788 -11.8688 58.4206 +-379.696 -26.7696 131.765 +-166.695 -11.4276 56.2486 +-379.993 -25.3136 124.599 +-174.138 -11.265 55.4483 +-379.675 -23.8338 117.314 +-180.646 -10.9958 54.1233 +-379.884 -22.4035 110.274 +-379.41 -21.6603 106.616 +-379.959 -20.979 103.262 +-379.512 -20.2459 99.6542 +-379.32 -19.5309 96.135 +-380.55 -18.8904 92.9823 +-378.544 -18.0937 89.0609 +-379.615 -17.4488 85.8864 +-379.193 -16.7369 82.3821 +-379.326 -16.0526 79.0141 +-379.427 -15.3691 75.6499 +-379.497 -14.6865 72.29 +-380.618 -14.0448 69.1311 +-379.545 -13.3242 65.5842 +-379.917 -12.6577 62.3035 +-378.877 -11.9473 58.807 +-379.98 -11.3062 55.6515 +-379.273 -10.6124 52.2362 +-379.723 -9.95302 48.9907 +-377.664 -9.23226 45.443 +-380.538 -8.63209 42.4888 +-378.416 -7.9186 38.9769 +-378.748 -7.26083 35.7392 +-379.251 -6.60599 32.5159 +-379.327 -5.9437 29.256 +-149.435 -2.08044 10.2403 +-146.726 -1.7867 8.79448 +-378.58 -3.95015 19.4434 +-379.838 -3.3018 16.2521 +-146.511 -1.01862 5.01384 +-147.349 -0.768201 3.78123 +-144.578 -0.502438 2.4731 +-146.394 -0.254355 1.25198 +95.1 -1.77636e-15 -1.7053e-13 +95.8963 -0.15921 0.821591 +95.8854 -0.318409 1.64312 +95.7672 -0.477083 2.46195 +95.7416 -0.636055 3.28231 +95.8087 -0.795808 4.1067 +95.7686 -0.954836 4.92736 +95.7211 -1.11379 5.74763 +96.5642 -1.28461 6.62911 +96.5016 -1.44487 7.45613 +96.4316 -1.60502 8.2826 +96.3544 -1.76506 9.10843 +96.3692 -1.92694 9.94382 +96.2771 -2.08686 10.7691 +96.1777 -2.24661 11.5934 +95.9719 -2.40371 12.4041 +95.7589 -2.5603 13.2122 +95.7367 -2.72201 14.0467 +95.5095 -2.87785 14.8509 +95.0779 -3.02689 15.62 +96.1172 -3.22427 16.6386 +95.769 -3.37677 17.4255 +95.8068 -3.54291 18.2829 +95.6407 -3.70182 19.1029 +95.2716 -3.85255 19.8808 +95.0912 -4.01056 20.6962 +95.9755 -4.21536 21.753 +95.584 -4.36565 22.5286 +95.5741 -4.53337 23.3941 +95.3625 -4.69186 24.212 +95.8198 -4.88447 25.2059 +95.7849 -5.05354 26.0784 +96.2223 -5.24907 27.0874 +95.9779 -5.40861 27.9107 +95.7261 -5.56774 28.7319 +96.3254 -5.77795 29.8166 +96.0567 -5.93764 30.6407 +96.729 -6.15725 31.774 +96.4429 -6.31761 32.6015 +96.1494 -6.47747 33.4265 +96.5064 -6.6824 34.484 +96.1962 -6.84236 35.3094 +96.9056 -7.0768 36.5192 +96.5773 -7.2374 37.348 +96.9834 -7.45447 38.4682 +96.7302 -7.62249 39.3353 +96.3769 -7.78277 40.1624 +96.0162 -7.94248 40.9865 +96.6531 -8.1867 42.2468 +96.2739 -8.34684 43.0732 +96.703 -8.57873 44.2699 +96.3058 -8.73893 45.0966 +96.7102 -8.97354 46.3073 +96.2949 -9.13377 47.1341 +96.6742 -9.37102 48.3584 +96.0633 -9.51359 49.0941 +96.4179 -9.75308 50.33 +95.9668 -9.91278 51.1541 +96.2956 -10.1547 52.4027 +96.6095 -10.3985 53.6608 +96.8216 -10.6346 54.8791 +96.3301 -10.795 55.7065 +96.6028 -11.0427 56.9847 +96.6894 -11.2722 58.1692 +96.9319 -11.523 59.4636 +96.3996 -11.6835 60.2917 +96.531 -11.926 61.5431 +96.7308 -12.1803 62.8554 +96.0855 -12.3298 63.6269 +96.2579 -12.5858 64.948 +96.3323 -12.8324 66.2207 +95.74 -12.9919 67.0435 +95.7876 -13.2398 68.3228 +95.1767 -13.3983 69.1408 +95.996 -13.7619 71.0171 +95.9958 -14.0134 72.3148 +96.0585 -14.2776 73.6785 +96.1043 -14.5431 75.0487 +96.0552 -14.7979 76.3634 +96.1444 -15.0778 77.8079 +95.9854 -15.3225 79.0704 +95.9632 -15.5924 80.4635 +95.9236 -15.8635 81.8622 +95.7914 -16.123 83.2013 +95.7914 -16.4087 84.6757 +96.2884 -16.7856 86.6207 +96.0999 -17.0486 87.978 +95.967 -17.3254 89.4061 +95.8161 -17.603 90.8386 +95.7182 -17.8947 92.3441 +96.0958 -18.2816 94.3408 +95.8844 -18.5626 95.7907 +95.585 -18.8305 97.1735 +95.4748 -19.1402 98.7716 +95.7526 -19.5346 100.807 +96.0689 -19.9453 102.926 +95.7526 -20.2313 104.402 +95.9474 -20.6317 106.468 +95.5878 -20.9194 107.953 +95.274 -21.2221 109.515 +95.3897 -21.6271 111.605 +95.4117 -22.0196 113.63 +95.5308 -22.4432 115.816 +95.4937 -22.8391 117.859 +95.4275 -23.2367 119.911 +95.0277 -23.5601 121.58 +95.0266 -23.9907 123.802 +95.3501 -24.5144 126.505 +95.3975 -24.9796 128.905 +95.1772 -25.385 130.997 +95.0416 -25.8223 133.254 +94.9863 -26.2928 135.682 +94.7832 -26.7334 137.956 +94.6572 -27.2069 140.399 +94.8217 -27.778 143.346 +94.6722 -28.2713 145.892 +94.8555 -28.8792 149.029 +94.4155 -29.3112 151.258 +94.6125 -29.9561 154.586 +94.1991 -30.4234 156.997 +94.7 -31.2047 161.029 +94.2991 -31.7085 163.629 +94.1985 -32.3298 166.835 +94.4297 -33.0868 170.742 +94.176 -33.6958 173.884 +94.3352 -34.4752 177.906 +94.3846 -35.2407 181.857 +93.6569 -35.7367 184.416 +115.774 -45.1585 233.037 +117.185 -46.7398 241.197 +117.108 -47.7774 246.551 +116.902 -48.8009 251.833 +117.303 -50.1229 258.655 +115.956 -50.7344 261.811 +113.273 -50.7673 261.98 +110.596 -50.7952 262.125 +107.924 -50.8182 262.244 +105.186 -50.8007 262.153 +102.529 -50.8135 262.219 +99.634 -50.6967 261.616 +96.9969 -50.6993 261.63 +94.6009 -50.8226 262.266 +92.5916 -51.1575 263.994 +92.2405 -52.446 270.643 +92.3343 -54.0627 278.986 +92.3468 -55.7197 287.537 +92.4187 -57.5084 296.767 +92.3902 -59.3377 306.208 +92.2834 -61.2261 315.952 +92.3309 -63.3386 326.854 +90.3537 -64.1511 331.047 +89.5109 -65.8458 339.792 +85.471 -65.2165 336.544 +84.4138 -66.8914 345.188 +80.5325 -66.3615 342.453 +79.1953 -67.9601 350.703 +74.5987 -66.7677 344.549 +72.1911 -67.5043 348.351 +66.2298 -64.8204 334.5 +63.5091 -65.1896 336.406 +59.1793 -63.8499 329.493 +57.4036 -65.2593 336.765 +53.2972 -64.0179 330.359 +51.216 -65.1953 336.435 +47.3745 -64.1286 330.931 +45.2665 -65.412 337.554 +41.204 -63.8419 329.451 +39.0891 -65.2688 336.814 +35.6338 -64.4989 332.841 +33.0189 -65.2372 336.651 +29.5545 -64.2662 331.641 +27.037 -65.3559 337.264 +23.6405 -64.3164 331.9 +20.9885 -65.2838 336.892 +17.7053 -64.2711 331.666 +15.0574 -65.6095 338.573 +11.8379 -64.4912 332.802 +9.02581 -65.5735 338.387 +5.90415 -64.3495 332.071 +3.01065 -65.6316 338.686 +2.30926e-14 -64.7209 333.987 +-3.01676 -65.7647 339.374 +-5.92684 -64.5968 333.347 +-9.07031 -65.8968 340.055 +-11.9356 -65.0237 335.55 +-15.1752 -66.1228 341.221 +-17.9198 -65.0502 335.686 +-21.3853 -66.5181 343.261 +-23.9613 -65.1894 336.405 +-27.6961 -66.949 345.485 +-29.9641 -65.1569 336.237 +-33.9677 -67.1118 346.325 +-36.3655 -65.8231 339.675 +-40.2664 -67.2347 346.96 +-42.0815 -65.2014 336.467 +-46.9242 -67.8074 349.915 +-48.3348 -65.4286 337.639 +-53.2409 -67.7731 349.738 +-54.5956 -65.5775 338.408 +-59.8958 -68.0926 351.386 +-61.3673 -66.2107 341.675 +-66.1879 -67.9394 350.596 +-66.8213 -65.3993 337.488 +-73.4073 -68.6414 354.219 +-73.9542 -66.1909 341.573 +-80.1909 -68.8145 355.112 +-82.3096 -67.826 350.011 +-87.7521 -69.5367 358.839 +-88.9305 -67.8563 350.167 +-93.8174 -69.0137 356.14 +-95.8666 -68.0652 351.245 +-101.417 -69.5717 359.019 +-102.923 -68.2851 352.38 +-109.119 -70.0817 361.651 +-110.663 -68.8608 355.35 +-117.877 -71.1239 367.029 +-119.497 -69.9666 361.057 +-126.541 -71.9484 371.284 +-127.199 -70.2786 362.667 +-132.922 -71.4098 368.505 +-133.696 -69.8814 360.617 +-139.663 -71.0645 366.723 +-140.337 -69.5512 358.913 +-142.972 -69.0501 356.327 +-143.212 -67.4341 347.988 +-143.889 -66.0866 341.035 +-143.476 -64.304 331.836 +-143.191 -62.6503 323.302 +-143.578 -61.3501 316.592 +-143.152 -59.7591 308.382 +-143.014 -58.3468 301.094 +-143.36 -57.1798 295.072 +-143.304 -55.8966 288.45 +-143.542 -54.7711 282.642 +-142.144 -53.073 273.879 +-141.295 -51.6369 266.468 +-143.189 -51.2324 264.381 +-146.631 -51.3772 265.128 +-147.528 -50.6328 261.286 +-108.53 -36.4937 188.323 +-108.95 -35.9003 185.261 +-109.172 -35.259 181.951 +-110.218 -34.8971 180.084 +-105.91 -32.8798 169.674 +-98.8299 -30.0891 155.272 +-98.8094 -29.5068 152.267 +-98.6886 -28.9107 149.192 +-98.4656 -28.3016 146.048 +-98.7535 -27.8532 143.734 +-98.668 -27.3119 140.941 +-98.8846 -26.8666 138.643 +-98.6614 -26.3141 135.792 +-98.8067 -25.8724 133.512 +-98.8595 -25.4167 131.161 +-98.8782 -24.963 128.82 +-99.2281 -24.6017 126.955 +-98.6905 -24.0312 124.011 +-98.6686 -23.5984 121.778 +-98.5516 -23.1528 119.478 +-98.4649 -22.724 117.266 +-98.9893 -22.4432 115.816 +-98.9109 -22.0321 113.695 +-98.7369 -21.6086 111.51 +-98.5316 -21.1874 109.336 +-99.0313 -20.9239 107.976 +-98.7713 -20.5064 105.821 +-99.0944 -20.2164 104.325 +-98.9166 -19.8302 102.332 +-99.1277 -19.5285 100.775 +-99.2488 -19.2138 99.1515 +-98.9242 -18.8197 97.1175 +-99.1418 -18.5347 95.6471 +-99.3408 -18.2505 94.1803 +-98.8685 -17.8492 92.1092 +-98.9522 -17.5546 90.5892 +-99.1638 -17.2868 89.2074 +-99.2098 -16.9943 87.6975 +-99.3864 -16.7281 86.3238 +-98.9424 -16.3627 84.4385 +-99.0809 -16.099 83.0776 +-99.2794 -15.8483 81.7839 +-99.4624 -15.5982 80.4931 +-99.4747 -15.3247 79.0819 +-99.313 -15.0287 77.5544 +-99.5258 -14.793 76.3379 +-99.2485 -14.4882 74.7653 +-99.3503 -14.2427 73.4985 +-100.482 -14.1451 72.9949 +-100.642 -13.9107 71.7851 +-103.881 -14.0966 72.7444 +-103.95 -13.8472 71.4575 +-109.609 -14.3314 73.9562 +-108.77 -13.9574 72.0262 +-112.575 -14.1753 73.1507 +-112.633 -13.9154 71.8091 +-118.665 -14.3821 74.2174 +-118.557 -14.0938 72.7297 +-130.028 -15.1588 78.2258 +-130.718 -14.9424 77.1089 +-162.848 -18.2491 94.1729 +-162.726 -17.8734 92.2342 +-164.323 -17.6869 91.2717 +-164.341 -17.3304 89.432 +-164.515 -16.9933 87.6928 +-164.846 -16.6749 86.0495 +-168 -16.6378 85.858 +-168.133 -16.2978 84.1034 +-172.812 -16.3915 84.5872 +-175.894 -16.3208 84.2224 +-182.683 -16.577 85.544 +-184.071 -16.3293 84.2662 +-534.784 -46.3652 239.264 +-537.439 -45.5221 234.913 +-382.047 -31.6031 163.085 +-379.892 -30.6777 158.31 +-379.53 -29.9074 154.335 +-380.053 -29.2121 150.747 +-379.703 -28.4545 146.837 +-378.567 -27.6458 142.664 +-379.54 -26.9963 139.312 +-379.072 -26.2481 135.451 +-380.262 -25.6178 132.199 +-379.437 -24.8555 128.265 +-379.329 -24.1461 124.604 +-380.423 -23.5154 121.35 +-379.77 -22.78 117.554 +-380.514 -22.132 114.21 +-379.788 -21.402 110.443 +-379.025 -20.6764 106.699 +-379.092 -20.0007 103.212 +-379.512 -19.3459 99.8328 +-379.514 -18.6722 96.3565 +-379.58 -18.0046 92.9114 +-380.294 -17.3693 89.6331 +-379.322 -16.6603 85.974 +-379.193 -15.9928 82.5298 +-379.913 -15.3627 79.2781 +-379.721 -14.6973 75.8442 +-379.497 -14.0337 72.4196 +-379.536 -13.3823 69.0582 +-379.84 -12.7418 65.7529 +-379.819 -12.0918 62.399 +-379.667 -11.44 59.0352 +-379.584 -10.7924 55.6932 +-378.679 -10.1247 52.2478 +-379.129 -9.49567 49.0016 +-380.046 -8.87749 45.8116 +-380.439 -8.2462 42.5539 +-380.007 -7.59839 39.2109 +-379.644 -6.95447 35.888 +-379.052 -6.30901 32.5571 +-380.523 -5.69738 29.4009 +-378.077 -5.0296 25.9549 +-146.227 -1.70146 8.78027 +-379.979 -3.78847 19.5501 +-380.937 -3.16415 16.3283 +-376.371 -2.50041 12.9032 +-146.75 -0.731064 3.7726 +-145.978 -0.48475 2.50151 +-146.694 -0.243546 1.2568 +95.9 3.55271e-15 -1.7053e-13 +95.8963 -0.15179 0.822994 +95.7854 -0.303252 1.64421 +95.7672 -0.454849 2.46616 +95.7416 -0.606412 3.28792 +96.7079 -0.765841 4.15233 +95.7686 -0.910337 4.93577 +96.6194 -1.07185 5.81148 +96.5642 -1.22474 6.64043 +95.5047 -1.3633 7.39171 +96.4316 -1.53022 8.29675 +95.4585 -1.66715 9.03915 +96.2697 -1.83525 9.95057 +96.2771 -1.9896 10.7875 +96.1777 -2.1419 11.6132 +95.8727 -2.28933 12.4125 +95.7589 -2.44098 13.2348 +95.6378 -2.59246 14.0561 +95.5095 -2.74373 14.8763 +96.2615 -2.92174 15.8414 +95.9203 -3.06769 16.6328 +95.769 -3.21939 17.4553 +95.6105 -3.37086 18.2765 +95.4447 -3.52206 19.0963 +95.4672 -3.68055 19.9556 +95.0912 -3.82365 20.7315 +95.7806 -4.01074 21.7459 +95.584 -4.16219 22.5671 +95.5741 -4.3221 23.4341 +95.1689 -4.46413 24.2042 +95.8198 -4.65683 25.2489 +95.7849 -4.81802 26.1229 +96.2223 -5.00444 27.1337 +95.9779 -5.15654 27.9583 +95.7261 -5.30826 28.781 +96.3254 -5.50867 29.8675 +96.0567 -5.66092 30.693 +96.5393 -5.85878 31.7658 +96.2538 -6.01135 32.5931 +95.9609 -6.16348 33.4179 +96.5064 -6.37097 34.5429 +97.2266 -6.59334 35.7486 +96.9056 -6.74699 36.5816 +96.4843 -6.89347 37.3758 +96.9834 -7.10706 38.5339 +96.7302 -7.26725 39.4024 +96.3769 -7.42006 40.231 +96.8415 -7.63742 41.4095 +96.6531 -7.80516 42.3189 +96.2739 -7.95784 43.1468 +96.703 -8.17892 44.3455 +96.3058 -8.33166 45.1736 +96.5305 -8.53945 46.3002 +96.116 -8.6919 47.1268 +95.8723 -8.86018 48.0392 +96.0633 -9.07021 49.178 +96.4179 -9.29855 50.416 +96.7578 -9.5287 51.6638 +96.2956 -9.68147 52.4922 +96.5224 -9.90498 53.704 +96.8216 -10.139 54.9728 +96.244 -10.2826 55.7517 +96.6028 -10.528 57.082 +96.0073 -10.671 57.8575 +96.1687 -10.8995 59.0961 +96.3153 -11.1292 60.3419 +95.7762 -11.2813 61.1662 +95.9803 -11.5225 62.4742 +96.0855 -11.7552 63.7355 +96.3404 -12.0095 65.1147 +96.4142 -12.2448 66.3902 +96.4727 -12.4812 67.6719 +95.7876 -12.6227 68.4395 +96.0609 -12.8925 69.9023 +95.996 -13.1205 71.1384 +95.9958 -13.3603 72.4383 +96.0585 -13.6122 73.8043 +96.1043 -13.8654 75.1769 +96.0552 -14.1083 76.4938 +96.1444 -14.3751 77.9407 +95.9854 -14.6084 79.2054 +96.0393 -14.8775 80.6648 +95.9236 -15.1242 82.002 +95.8663 -15.3836 83.4086 +95.7914 -15.644 84.8203 +95.6986 -15.9053 86.2371 +96.0999 -16.2541 88.1282 +95.967 -16.5179 89.5588 +95.8161 -16.7826 90.9938 +95.6469 -17.048 92.4329 +96.0958 -17.4296 94.5019 +95.8844 -17.6975 95.9543 +96.2797 -18.0834 98.0468 +95.4748 -18.2482 98.9403 +95.7526 -18.6242 100.979 +96.0689 -19.0158 103.102 +95.7526 -19.2884 104.58 +95.351 -19.5479 105.987 +95.5222 -19.9308 108.063 +95.7936 -20.3433 110.3 +95.3897 -20.6192 111.795 +95.4117 -20.9933 113.824 +95.5308 -21.3973 116.014 +94.8712 -21.6327 117.291 +95.0581 -22.068 119.651 +94.9668 -22.4478 121.71 +94.9664 -22.8581 123.935 +95.4096 -23.3866 126.8 +94.8685 -23.6834 128.409 +95.1772 -24.2019 131.221 +95.0416 -24.6189 133.482 +94.9863 -25.0674 135.914 +95.2865 -25.6228 138.925 +94.602 -25.9239 140.557 +94.8217 -26.4835 143.591 +94.6185 -26.9384 146.058 +94.8555 -27.5333 149.283 +94.4155 -27.9452 151.516 +94.6125 -28.56 154.85 +94.6559 -29.1463 158.029 +94.25 -29.6091 160.538 +94.2499 -30.2149 163.823 +94.1985 -30.8231 167.12 +94.382 -31.5288 170.947 +94.129 -32.1094 174.095 +94.2891 -32.8525 178.124 +94.43 -33.6145 182.255 +93.5231 -34.0224 184.467 +116.212 -43.2168 234.318 +117.314 -44.6105 241.874 +117.15 -45.5673 247.062 +116.861 -46.5101 252.174 +117.344 -47.8035 259.187 +115.996 -48.3866 262.348 +113.312 -48.418 262.518 +110.557 -48.4113 262.482 +107.924 -48.4499 262.691 +105.223 -48.4501 262.692 +102.207 -48.293 261.841 +99.634 -48.334 262.063 +96.9969 -48.3365 262.077 +94.6009 -48.4541 262.714 +92.7869 -48.8763 265.003 +92.6212 -50.2082 272.225 +92.1798 -51.4568 278.994 +92.437 -53.175 288.31 +92.1556 -54.672 296.427 +92.4186 -56.5897 306.825 +92.4763 -58.4948 317.154 +92.3041 -60.3693 327.317 +91.8808 -62.195 337.216 +91.7142 -64.3222 348.75 +88.1805 -64.1483 347.807 +87.3786 -66.0138 357.921 +83.0069 -65.213 353.579 +82.2254 -67.272 364.743 +77.3016 -65.9624 357.643 +75.9193 -67.6819 366.966 +70.3322 -65.6274 355.827 +66.9898 -65.558 355.45 +61.8708 -63.643 345.067 +60.1764 -65.2233 353.636 +55.5655 -63.6321 345.008 +53.9061 -65.4217 354.711 +49.3508 -63.6905 345.325 +47.4332 -65.3486 354.315 +43.3611 -64.0531 347.291 +40.7984 -64.9482 352.144 +36.585 -63.1344 342.31 +34.4374 -64.8689 351.714 +30.7224 -63.6923 345.335 +28.261 -65.1308 353.134 +24.5682 -63.7255 345.514 +22.0263 -65.3189 354.154 +18.4432 -63.8298 346.08 +15.5983 -64.7989 351.334 +12.3684 -64.241 348.309 +9.42894 -65.3098 354.105 +6.18164 -64.2341 348.272 +3.15901 -65.6561 355.982 +2.13163e-14 -64.5522 349.997 +-3.15813 -65.6379 355.884 +-6.24098 -64.8508 351.616 +-9.49961 -65.7994 356.759 +-12.4521 -64.6761 350.669 +-15.9167 -66.1217 358.506 +-18.7572 -64.9166 351.973 +-22.2949 -66.1155 358.473 +-25.2239 -65.4263 354.736 +-28.7788 -66.3241 359.604 +-31.5068 -65.3184 354.151 +-35.3958 -66.6743 361.503 +-37.8393 -65.2989 354.046 +-41.8852 -66.6783 361.524 +-44.4945 -65.7274 356.368 +-48.4122 -66.6974 361.628 +-51.0904 -65.9356 357.497 +-55.1477 -66.9286 362.882 +-57.8338 -66.2296 359.091 +-62.52 -67.7635 367.408 +-64.0935 -65.9294 357.464 +-68.5388 -67.0737 363.668 +-71.1336 -66.3752 359.881 +-75.3611 -67.1844 364.268 +-77.9877 -66.5479 360.817 +-82.3769 -67.3959 365.415 +-85.1665 -66.9096 362.778 +-89.8298 -67.8656 367.962 +-92.0755 -66.9818 363.17 +-98.6247 -69.1688 375.028 +-99.4642 -67.3282 365.048 +-106.361 -69.5628 377.164 +-107.14 -67.7702 367.445 +-114.685 -70.2241 380.749 +-115.867 -68.7391 372.698 +-123.229 -70.8883 384.35 +-126.264 -70.4836 382.156 +-131.428 -71.2443 386.281 +-132.604 -69.8503 378.722 +-138.263 -70.8174 383.966 +-139.339 -69.4369 376.481 +-142.639 -69.1967 375.179 +-142.917 -67.529 366.137 +-144.182 -66.3888 359.955 +-143.474 -64.4091 349.221 +-143.583 -62.8727 340.89 +-143.633 -61.3741 332.766 +-143.231 -59.7472 323.944 +-143.334 -58.3914 316.593 +-143.401 -57.0731 309.446 +-143.563 -55.8412 302.766 +-143.317 -54.4986 295.487 +-143.347 -53.3079 289.031 +-143.453 -52.1861 282.949 +-141.963 -50.535 273.997 +-141.295 -49.2304 266.923 +-143.564 -48.9728 265.527 +-146.535 -48.951 265.409 +-148.643 -48.6378 263.71 +-112.026 -35.9138 194.722 +-108.95 -34.2272 185.577 +-109.172 -33.6158 182.262 +-109.755 -33.1308 179.632 +-107.635 -31.8579 172.731 +-98.8299 -28.6868 155.538 +-98.7557 -28.1162 152.444 +-98.6341 -27.5481 149.364 +-98.7967 -27.0735 146.79 +-98.4739 -26.48 143.572 +-98.8379 -26.0839 141.425 +-98.4831 -25.5104 138.315 +-98.4872 -25.0435 135.784 +-98.5716 -24.6078 133.422 +-99.2759 -24.3343 131.939 +-99.2995 -23.901 129.589 +-99.2281 -23.4552 127.172 +-98.6905 -22.9112 124.223 +-98.6686 -22.4986 121.986 +-98.6145 -22.088 119.759 +-98.5285 -21.6791 117.543 +-98.9893 -21.3973 116.014 +-98.9109 -21.0053 113.889 +-98.7369 -20.6016 111.7 +-99.128 -20.3222 110.186 +-99.1652 -19.9758 108.307 +-98.9064 -19.5773 106.147 +-99.0944 -19.2743 104.503 +-98.8477 -18.893 102.436 +-99.1277 -18.6184 100.947 +-99.3889 -18.3443 99.4615 +-98.7828 -17.917 97.1443 +-99.1418 -17.6709 95.8104 +-99.197 -17.3748 94.2045 +-98.796 -17.0048 92.1989 +-98.9522 -16.7365 90.7439 +-99.0901 -16.4689 89.2933 +-99.2841 -16.2144 87.913 +-99.3864 -15.9485 86.4713 +-99.4707 -15.6834 85.0344 +-99.0049 -15.3369 83.1556 +-99.2794 -15.1097 81.9236 +-99.1538 -14.8251 80.3804 +-99.1638 -14.5648 78.9694 +-99.8608 -14.4073 78.1154 +-99.841 -14.1482 76.7105 +-100.518 -13.9897 75.8508 +-100.548 -13.7427 74.5118 +-103.376 -13.8743 75.2254 +-103.878 -13.6888 74.2198 +-109.906 -14.2191 77.0946 +-110.749 -14.0654 76.2613 +-113.977 -14.208 77.0347 +-114.407 -13.9966 75.8886 +-117.995 -14.1654 76.8037 +-119.343 -14.0571 76.2166 +-128.449 -14.8422 80.4734 +-130.091 -14.7441 79.9413 +-162.002 -18.0062 97.6281 +-162.347 -17.693 95.9302 +-164.054 -17.5275 95.0325 +-157.01 -16.4419 89.1464 +-164.497 -16.8805 91.5244 +-164.079 -16.4963 89.4418 +-165.833 -16.3312 88.5465 +-168.025 -16.2043 87.8586 +-172.878 -16.323 88.5021 +-173.746 -16.057 87.0597 +-180.061 -16.2832 88.286 +-183.264 -16.2122 87.9013 +-529.637 -45.8203 248.434 +-532.365 -45.0262 244.128 +-380.637 -31.4628 170.589 +-379.487 -30.6452 166.156 +-379.388 -29.9204 162.226 +-378.143 -29.1132 157.85 +-378.513 -28.4373 154.184 +-379.867 -27.8371 150.93 +-379.703 -27.1284 147.088 +-379.5 -26.4225 143.261 +-380.476 -25.8017 139.895 +-379.918 -25.0807 135.985 +-379.413 -24.3693 132.128 +-380.855 -23.7857 128.964 +-380.183 -23.0725 125.097 +-380.423 -22.4195 121.557 +-380.152 -21.7401 117.873 +-379.653 -21.0528 114.147 +-380.172 -20.4253 110.744 +-380.275 -19.7778 107.233 +-380.345 -19.1315 103.729 +-379.995 -18.4677 100.13 +-379.514 -17.802 96.5211 +-380.356 -17.2006 93.2605 +-379.419 -16.5217 89.5795 +-379.03 -15.8716 86.0546 +-379.779 -15.2711 82.7985 +-379.326 -14.6241 79.2909 +-379.133 -13.9906 75.8561 +-380.381 -13.4108 72.7121 +-379.831 -12.7685 69.23 +-378.856 -12.1165 65.6945 +-380.114 -11.5373 62.5542 +-378.877 -10.8841 59.013 +-379.386 -10.284 55.7593 +-379.57 -9.67558 52.4602 +-379.426 -9.06024 49.1239 +-381.435 -8.4947 46.0576 +-379.246 -7.83726 42.493 +-381.2 -7.26703 39.4013 +-379.644 -6.63036 35.9493 +-378.753 -6.01023 32.587 +-379.925 -5.42333 29.4049 +-378.376 -4.79899 26.0197 +-146.127 -1.62106 8.78927 +-378.68 -3.59958 19.5166 +-379.538 -3.0056 16.2961 +-380.768 -2.41172 13.0762 +-146.75 -0.696993 3.77904 +-146.078 -0.462476 2.50751 +-145.594 -0.230454 1.24951 +95.8 -1.77636e-15 -1.7053e-13 +94.9964 -0.143007 0.816593 +95.7854 -0.288412 1.64688 +95.8671 -0.433043 2.47274 +95.7416 -0.576737 3.29325 +95.9086 -0.722344 4.12469 +95.7686 -0.865789 4.94378 +95.7211 -1.00992 5.76679 +95.6664 -1.15398 6.58937 +95.5047 -1.29659 7.4037 +96.4316 -1.45534 8.31021 +96.3544 -1.60045 9.13879 +96.2697 -1.74544 9.96672 +96.1778 -1.89029 10.7938 +96.0785 -2.035 11.6202 +95.9719 -2.17954 12.4455 +96.7492 -2.34554 13.3934 +95.6378 -2.4656 14.0789 +95.5095 -2.60947 14.9004 +95.2752 -2.7503 15.7046 +94.9355 -2.88763 16.4888 +95.769 -3.06185 17.4836 +95.6105 -3.20591 18.3062 +95.6407 -3.35659 19.1666 +96.1519 -3.52554 20.1313 +95.0912 -3.63654 20.7652 +95.7806 -3.81448 21.7812 +95.584 -3.95852 22.6037 +95.5741 -4.11059 23.4721 +95.1689 -4.24568 24.2434 +95.8198 -4.42894 25.2899 +95.7849 -4.58225 26.1653 +95.3572 -4.71675 26.9333 +95.9779 -4.9042 28.0037 +95.7261 -5.0485 28.8277 +96.3254 -5.2391 29.916 +96.0567 -5.3839 30.7428 +96.5393 -5.57208 31.8174 +95.4974 -5.67227 32.3895 +95.9609 -5.86186 33.4721 +96.5064 -6.05921 34.5989 +96.1962 -6.20424 35.4271 +96.9056 -6.41682 36.641 +97.3217 -6.61302 37.7613 +96.9834 -6.75927 38.5964 +96.7302 -6.91162 39.4664 +96.3769 -7.05695 40.2962 +96.8415 -7.26368 41.4767 +96.6531 -7.42321 42.3876 +96.2739 -7.56842 43.2168 +96.703 -7.77868 44.4174 +96.3058 -7.92395 45.2469 +96.7102 -8.13668 46.4616 +96.116 -8.26655 47.2032 +96.496 -8.48142 48.4301 +96.0633 -8.62636 49.2578 +96.4179 -8.84352 50.4978 +96.7578 -9.06241 51.7477 +96.2082 -9.19936 52.5297 +96.6095 -9.42877 53.8396 +96.735 -9.63422 55.0128 +96.3301 -9.78822 55.8922 +96.517 -10.0039 57.1239 +96.0073 -10.1488 57.9513 +96.1687 -10.3661 59.192 +96.3153 -10.5846 60.4398 +96.4471 -10.8044 61.6946 +95.9803 -10.9587 62.5756 +96.1684 -11.1896 63.894 +96.2579 -11.4121 65.1645 +96.3323 -11.6357 66.4414 +95.74 -11.7803 67.267 +95.7876 -12.005 68.5505 +95.9805 -12.2514 69.9571 +95.996 -12.4785 71.2538 +95.9958 -12.7065 72.5559 +96.0585 -12.9461 73.9241 +96.026 -13.1761 75.2375 +96.0552 -13.4179 76.618 +96.1444 -13.6717 78.0672 +95.9854 -13.8935 79.3339 +95.9632 -14.1383 80.7317 +95.9991 -14.3954 82.1997 +95.8663 -14.6308 83.544 +95.7914 -14.8784 84.9579 +96.3621 -15.2318 86.9759 +95.5148 -15.3645 87.7338 +95.967 -15.7096 89.7041 +95.7441 -15.9493 91.073 +95.6469 -16.2138 92.5829 +96.0251 -16.5645 94.5856 +95.8844 -16.8314 96.11 +95.6545 -17.0868 97.5682 +96.0255 -17.4554 99.6731 +95.7526 -17.7128 101.143 +96.0014 -18.0725 103.196 +95.8195 -18.3573 104.823 +95.4173 -18.6043 106.233 +95.6534 -18.9816 108.387 +95.8585 -19.3609 110.553 +95.3897 -19.6102 111.977 +95.3481 -19.9527 113.933 +95.5308 -20.3502 116.203 +95.058 -20.6146 117.713 +95.5507 -21.0968 120.466 +94.845 -21.3219 121.751 +94.9664 -21.7395 124.136 +95.0527 -22.1589 126.53 +95.3975 -22.65 129.335 +95.1772 -23.0176 131.434 +95.0416 -23.4142 133.698 +94.873 -23.8123 135.972 +94.7832 -24.2403 138.415 +95.0987 -24.7849 141.525 +94.8761 -25.2018 143.906 +94.6722 -25.6348 146.378 +94.8555 -26.1859 149.525 +94.4155 -26.5777 151.762 +94.6125 -27.1624 155.102 +94.6559 -27.72 158.285 +94.7 -28.2946 161.566 +94.6931 -28.8714 164.86 +94.1985 -29.3148 167.391 +94.382 -29.986 171.224 +94.176 -30.5533 174.464 +94.3352 -31.2601 178.499 +94.4754 -31.9849 182.638 +93.4784 -32.3422 184.678 +116.125 -41.0711 234.522 +117.271 -42.4119 242.178 +117.192 -43.3529 247.552 +116.902 -44.2498 252.673 +117.018 -45.3381 258.887 +115.996 -46.0188 262.774 +113.312 -46.0486 262.944 +110.596 -46.0581 262.998 +107.887 -46.0629 263.026 +104.893 -45.9348 262.294 +102.207 -45.9298 262.266 +99.634 -45.9687 262.488 +96.9627 -45.9549 262.409 +94.2671 -45.9203 262.211 +93.0474 -46.6149 266.178 +92.7799 -47.833 273.133 +92.0871 -48.8895 279.166 +92.3167 -50.5069 288.402 +92.4479 -52.1617 297.851 +92.4186 -53.8205 307.323 +92.4763 -55.6323 317.668 +92.4645 -57.5148 328.418 +92.1396 -59.3181 338.715 +92.1649 -61.4753 351.033 +90.6239 -62.6997 358.024 +88.966 -63.9239 365.015 +85.2789 -63.7193 363.847 +83.4158 -64.9061 370.624 +79.9213 -64.8606 370.363 +77.4345 -65.6546 374.897 +73.4996 -65.2268 372.455 +70.4887 -65.6063 374.622 +64.3193 -62.9239 359.305 +61.5297 -63.4266 362.175 +57.521 -62.6479 357.729 +54.8669 -63.3293 361.62 +51.1461 -62.7775 358.469 +48.4905 -63.5361 362.801 +44.5432 -62.5794 357.338 +41.7946 -63.2782 361.328 +38.1111 -62.5496 357.167 +35.3575 -63.3429 361.697 +31.716 -62.5344 357.081 +29.0063 -63.5772 363.035 +25.482 -62.8613 358.947 +22.5391 -63.5687 362.987 +19.0137 -62.5839 357.363 +16.0694 -63.489 362.532 +12.7174 -62.8213 358.719 +9.66191 -63.6486 363.443 +6.36664 -62.9189 359.276 +3.22969 -63.8404 364.538 +2.13163e-14 -63.1183 360.415 +-3.23144 -63.8749 364.735 +-6.37885 -63.0397 359.966 +-9.74044 -64.1658 366.396 +-12.836 -63.4075 362.066 +-16.27 -64.2819 367.059 +-19.3329 -63.6348 363.364 +-22.8077 -64.3264 367.313 +-25.8308 -63.7218 363.86 +-29.532 -64.7295 369.615 +-32.4655 -64.0124 365.52 +-36.4214 -65.2489 372.581 +-39.0205 -64.0421 365.69 +-43.2097 -65.4205 373.561 +-45.5426 -63.9833 365.354 +-50.344 -65.9646 376.668 +-52.3013 -64.1953 366.564 +-56.951 -65.7348 375.355 +-59.273 -64.5561 368.625 +-63.989 -65.9617 376.651 +-66.1426 -64.7076 369.49 +-71.163 -66.2339 378.205 +-73.7668 -65.4638 373.808 +-78.212 -66.3138 378.661 +-81.3766 -66.0417 377.108 +-85.8832 -66.8261 381.587 +-88.1808 -65.8875 376.227 +-93.6349 -67.2787 384.171 +-95.8978 -66.3484 378.859 +-100.903 -67.3037 384.314 +-103.553 -66.6662 380.674 +-108.819 -67.6879 386.508 +-112.019 -67.389 384.801 +-116.958 -68.1109 388.923 +-118.674 -66.9589 382.345 +-126.687 -69.3113 395.778 +-130.282 -69.1671 394.954 +-134.061 -69.1157 394.661 +-135.957 -68.1121 388.93 +-140.967 -68.6691 392.111 +-141.938 -67.2708 384.126 +-143.445 -66.1821 377.91 +-143.849 -64.6431 369.121 +-143.962 -63.0438 359.989 +-143.849 -61.4173 350.702 +-143.162 -59.6205 340.442 +-143.125 -58.1643 332.126 +-143.231 -56.8234 324.47 +-143.09 -55.4394 316.567 +-143.359 -54.2645 309.858 +-143.183 -52.9678 302.454 +-143.231 -51.8005 295.788 +-143.347 -50.6993 289.5 +-143.765 -49.7405 284.025 +-142.008 -48.0774 274.529 +-141.249 -46.8061 267.269 +-143.377 -46.5154 265.61 +-146.726 -46.6161 266.185 +-148.934 -46.3483 264.655 +-242.962 -74.0781 422.996 +-108.9 -32.5373 185.792 +-109.172 -31.9708 182.558 +-110.218 -31.6427 180.684 +-107.635 -30.2989 173.011 +-98.8299 -27.283 155.79 +-98.7019 -26.7258 152.608 +-98.5252 -26.1713 149.442 +-98.9071 -25.7773 147.192 +-98.6416 -25.227 144.05 +-98.6113 -24.7505 141.329 +-98.7125 -24.3186 138.863 +-98.7776 -23.8882 136.405 +-98.9243 -23.4875 134.117 +-99.157 -23.1157 131.994 +-98.7578 -22.6074 129.091 +-98.802 -22.2115 126.831 +-98.6905 -21.7901 124.424 +-98.6686 -21.3976 122.184 +-98.6145 -21.0071 119.953 +-98.4649 -20.6048 117.656 +-98.4751 -20.2444 115.599 +-98.9109 -19.9774 114.074 +-98.7369 -19.5934 111.881 +-98.5316 -19.2115 109.7 +-98.4291 -18.8574 107.678 +-98.9064 -18.6193 106.319 +-98.5488 -18.2301 104.097 +-98.8477 -17.9685 102.603 +-99.1972 -17.7197 101.182 +-99.3889 -17.4466 99.6228 +-98.7828 -17.0402 97.302 +-99.1418 -16.8062 95.9659 +-99.197 -16.5245 94.3574 +-98.796 -16.1727 92.3485 +-98.9522 -15.9175 90.8911 +-98.9426 -15.6397 89.3051 +-99.953 -15.5248 88.649 +-99.1617 -15.1337 86.4157 +-99.6217 -14.9386 85.3016 +-99.6892 -14.6872 83.8662 +-99.2028 -14.3592 81.9932 +-99.9254 -14.2093 81.1373 +-100.019 -13.9715 79.7793 +-100.722 -13.8204 78.9166 +-100.156 -13.4984 77.0776 +-102.184 -13.5256 77.2331 +-102.864 -13.3713 76.3518 +-107.636 -13.7392 78.4528 +-108.489 -13.5969 77.6404 +-114.872 -14.1343 80.7089 +-115.992 -14.0103 80.0009 +-118.427 -14.0404 80.1725 +-117.972 -13.7265 78.3803 +-124.999 -14.272 81.4951 +-125.717 -14.0833 80.4175 +-150.883 -16.5814 94.6819 +-160.281 -17.2769 98.6536 +-163.11 -17.2422 98.4556 +-162.605 -16.8539 96.2381 +-163.451 -16.6085 94.8367 +-156.751 -15.6114 89.1433 +-165.89 -16.1903 92.4489 +-167.227 -15.9901 91.306 +-168.381 -15.7707 90.0531 +-170.85 -15.6705 89.4809 +-176.16 -15.819 90.3286 +-177.488 -15.6002 89.0792 +-2932.25 -252.192 1440.05 +-526.514 -44.2981 252.948 +-529.637 -43.578 248.837 +-2969.52 -238.865 1363.95 +-379.545 -29.8374 170.376 +-381.497 -29.2999 167.307 +-378.838 -28.415 162.254 +-379.892 -27.8167 158.838 +-379.622 -27.125 154.888 +-378.94 -26.4103 150.807 +-381.006 -25.8894 147.832 +-380.994 -25.2284 144.058 +-379.821 -24.4968 139.88 +-379.918 -23.8534 136.206 +-379.13 -23.1595 132.244 +-379.909 -22.5655 128.852 +-379.993 -21.9325 125.238 +-380.803 -21.3436 121.875 +-381.01 -20.723 118.331 +-379.94 -20.0376 114.418 +-380.172 -19.4258 110.924 +-379.891 -18.7909 107.299 +-380.345 -18.1953 103.898 +-379.512 -17.5417 100.166 +-379.804 -16.9438 96.7516 +-378.609 -16.2838 92.9828 +-379.516 -15.7173 89.7478 +-379.322 -15.1066 86.2606 +-379.486 -14.5126 82.8689 +-378.445 -13.8762 79.2351 +-379.133 -13.306 75.9792 +-379.497 -12.7249 72.661 +-379.536 -12.1343 69.2884 +-380.727 -11.5804 66.126 +-379.128 -10.9442 62.4932 +-379.174 -10.3596 59.1549 +-379.98 -9.79609 55.9371 +-380.659 -9.22851 52.6961 +-380.021 -8.63038 49.2807 +-380.145 -8.05169 45.9763 +-379.942 -7.46741 42.64 +-380.305 -6.89518 39.3725 +-379.744 -6.30756 36.0171 +-379.949 -5.73416 32.7429 +-379.526 -5.15252 29.4216 +-381.668 -4.60386 26.2887 +-145.628 -1.53647 8.77346 +-379.08 -3.42704 19.5689 +-379.139 -2.85552 16.3054 +-380.268 -2.2907 13.0802 +-146.75 -0.662886 3.78517 +-145.578 -0.438339 2.50298 +-145.894 -0.219629 1.25411 +96 1.77636e-15 -2.27374e-13 +95.9963 -0.137062 0.826459 +95.8854 -0.27383 1.65114 +95.8671 -0.410717 2.47654 +95.8416 -0.547574 3.30176 +95.9086 -0.685103 4.13104 +95.8684 -0.822009 4.95655 +95.8209 -0.958853 5.78169 +95.7661 -1.09562 6.60639 +95.7041 -1.23231 7.43058 +96.5313 -1.38174 8.33159 +96.4539 -1.5195 9.16231 +96.4686 -1.65887 10.0027 +96.4758 -1.79838 10.8439 +96.277 -1.93406 11.662 +96.071 -2.06932 12.4776 +95.957 -2.20641 13.3042 +95.8356 -2.34331 14.1297 +95.707 -2.48006 14.9542 +96.3601 -2.63822 15.9079 +96.0188 -2.77 16.7026 +95.8674 -2.90699 17.5286 +95.7087 -3.04375 18.3532 +95.5427 -3.18028 19.1765 +95.3694 -3.31657 19.9983 +95.1889 -3.45261 20.8185 +96.0729 -3.62887 21.8813 +95.6812 -3.75825 22.6615 +95.6712 -3.90263 23.5321 +96.1371 -4.06775 24.5277 +95.9164 -4.20485 25.3544 +95.6885 -4.34164 26.1792 +95.4533 -4.47809 27.002 +96.0737 -4.65602 28.0748 +96.778 -4.84084 29.1893 +96.5162 -4.97883 30.0213 +96.2469 -5.11644 30.8511 +95.9704 -5.25366 31.6785 +96.5374 -5.43842 32.7926 +96.2437 -5.57605 33.6225 +96.6004 -5.75242 34.6859 +96.2899 -5.89011 35.5162 +96.999 -6.09186 36.7327 +96.5773 -6.22412 37.5302 +96.2417 -6.36178 38.3602 +96.8226 -6.56155 39.5648 +96.4689 -6.69953 40.3968 +96.9332 -6.89573 41.5799 +96.7445 -7.04717 42.493 +96.3649 -7.18502 43.3242 +96.7937 -7.38456 44.5274 +96.3961 -7.52248 45.3591 +96.8001 -7.72438 46.5764 +96.2054 -7.84769 47.32 +96.5851 -8.05159 48.5495 +96.152 -8.18917 49.379 +96.5062 -8.39527 50.6218 +96.8456 -8.603 51.8744 +96.3831 -8.74094 52.7061 +96.6965 -8.95073 53.9711 +96.2154 -9.08844 54.8015 +96.4163 -9.29189 56.0282 +96.6028 -9.49661 57.2627 +96.1778 -9.64272 58.1436 +96.3383 -9.84903 59.3876 +96.3996 -10.0477 60.5858 +96.531 -10.2563 61.8433 +96.0636 -10.4027 62.7263 +96.1684 -10.6127 63.9923 +96.3404 -10.833 65.3207 +96.4961 -11.0546 66.6569 +96.4727 -11.2584 67.8861 +95.8685 -11.3957 68.7141 +95.257 -11.5322 69.5367 +96.0759 -11.845 71.4228 +96.0751 -12.0614 72.7276 +96.1373 -12.2887 74.0986 +96.1043 -12.507 75.4147 +96.2107 -12.7467 76.8601 +96.2216 -12.9773 78.2502 +96.062 -13.1877 79.5195 +96.0393 -13.42 80.92 +95.9991 -13.6532 82.3262 +95.8663 -13.8765 83.6725 +95.8657 -14.1223 85.1547 +96.4359 -14.4576 87.1765 +96.3193 -14.6952 88.6089 +96.0396 -14.911 89.91 +95.888 -15.1498 91.3503 +96.4315 -15.504 93.486 +96.1665 -15.7336 94.8707 +95.9545 -15.9754 96.3283 +95.7239 -16.2177 97.7893 +95.5436 -16.4724 99.3253 +95.889 -16.8235 101.442 +96.1365 -17.165 103.501 +95.8195 -17.4109 104.984 +95.4835 -17.6574 106.471 +95.719 -18.0152 108.628 +95.8585 -18.3627 110.724 +95.454 -18.6118 112.225 +95.4753 -18.9493 114.26 +95.5938 -19.3136 116.457 +95.6182 -19.6672 118.589 +95.0581 -19.9061 120.03 +94.9668 -20.2487 122.095 +95.0868 -20.6448 124.484 +95.4691 -21.1086 127.281 +95.3975 -21.4823 129.534 +95.2353 -21.8442 131.716 +95.1563 -22.2339 134.066 +95.043 -22.6251 136.425 +94.7832 -22.9906 138.629 +94.7124 -23.4115 141.167 +94.9306 -23.9163 144.21 +94.7259 -24.3269 146.686 +94.9085 -24.8497 149.838 +94.4677 -25.2214 152.08 +94.664 -25.776 155.424 +94.7574 -26.319 158.698 +94.25 -26.7084 161.046 +94.2499 -27.2549 164.341 +94.6833 -27.9464 168.511 +94.5252 -28.4832 171.748 +94.2699 -29.0071 174.907 +94.3814 -29.663 178.862 +94.4754 -30.3359 182.92 +93.5677 -30.7041 185.139 +116.694 -39.1448 236.035 +116.798 -40.0629 241.571 +117.277 -41.1475 248.111 +116.943 -41.9834 253.151 +117.059 -43.0156 259.375 +116.036 -43.6612 263.268 +113.351 -43.6896 263.44 +110.634 -43.6988 263.495 +107.587 -43.5668 262.699 +104.929 -43.5818 262.79 +102.242 -43.5771 262.761 +99.634 -43.5988 262.892 +96.9969 -43.6011 262.906 +94.3338 -43.5836 262.8 +93.0799 -44.2273 266.681 +93.0337 -45.491 274.301 +92.3652 -46.5091 280.441 +92.1062 -47.7939 288.188 +92.2725 -49.3786 297.743 +92.3334 -50.9987 307.512 +92.2558 -52.6384 317.399 +92.3843 -54.5024 328.638 +92.1655 -56.2757 339.331 +92.1148 -58.2743 351.383 +91.2529 -59.88 361.064 +90.7169 -61.8215 372.771 +86.5162 -61.3111 369.693 +84.3465 -62.2469 375.336 +81.6261 -62.829 378.846 +78.9896 -63.5203 383.015 +75.1787 -63.2773 381.55 +72.8213 -64.2832 387.615 +65.6564 -60.9205 367.339 +62.8501 -61.4477 370.517 +58.8506 -60.7916 366.561 +56.1232 -61.4397 370.469 +52.2873 -60.8695 367.031 +49.7174 -61.7852 372.552 +45.6279 -60.7983 366.602 +42.9719 -61.7065 372.078 +39.5222 -61.5215 370.962 +36.6993 -62.3572 376.001 +32.6398 -61.0382 368.048 +30.0263 -62.4199 376.379 +26.1447 -61.171 368.849 +23.2351 -62.1532 374.771 +19.626 -61.269 369.44 +16.5885 -62.161 374.818 +13.1571 -61.6427 371.693 +10.031 -62.6733 377.907 +6.55163 -61.4092 370.285 +3.34837 -62.7741 378.515 +1.86517e-14 -61.3531 369.947 +-3.34401 -62.6923 378.022 +-6.54814 -61.3765 370.088 +-10.0755 -62.9513 379.583 +-13.2583 -62.117 374.553 +-16.7978 -62.9455 379.549 +-20.0342 -62.5434 377.124 +-23.6319 -63.2147 381.172 +-26.7307 -62.5421 377.116 +-30.4343 -63.268 381.493 +-33.4417 -62.5377 377.089 +-37.2648 -63.3181 381.795 +-40.4421 -62.9534 379.596 +-44.4549 -63.836 384.919 +-47.4559 -63.2341 381.289 +-51.5448 -64.0563 386.246 +-54.4028 -63.3321 381.88 +-58.636 -64.1906 387.056 +-61.9011 -63.9427 385.562 +-65.1608 -63.7068 384.139 +-68.3827 -63.4501 382.591 +-72.5844 -64.0739 386.353 +-75.5413 -63.5825 383.389 +-79.7671 -64.1456 386.785 +-82.5825 -63.5651 383.285 +-88.3074 -65.1699 392.962 +-91.0827 -64.5471 389.206 +-95.9927 -65.417 394.451 +-98.8493 -64.8647 391.121 +-103.632 -65.5605 395.317 +-106.323 -64.9201 391.455 +-112.213 -66.2005 399.176 +-114.968 -65.5975 395.539 +-120.593 -66.6074 401.629 +-123.439 -66.0572 398.312 +-130.236 -67.5792 407.489 +-132.754 -66.8461 403.069 +-137.615 -67.2901 405.746 +-139.115 -66.101 398.576 +-142.702 -65.9307 397.549 +-143.375 -64.4484 388.611 +-143.97 -63 379.877 +-144.458 -61.5701 371.255 +-144.475 -60.0068 361.829 +-143.549 -58.1296 350.51 +-143.391 -56.6376 341.513 +-143.203 -55.1957 332.819 +-143.31 -53.9238 325.15 +-143.171 -52.6112 317.235 +-143.318 -51.452 310.245 +-143.225 -50.252 303.009 +-143.188 -49.1152 296.155 +-143.391 -48.1002 290.035 +-143.408 -47.059 283.756 +-142.235 -45.6716 275.391 +-141.757 -44.5525 268.643 +-143.424 -44.1317 266.105 +-146.058 -44.0116 265.381 +-148.061 -43.7013 263.51 +-250.397 -72.4091 436.612 +-109.4 -31.0015 186.933 +-109.222 -30.3368 182.924 +-110.218 -30.0113 180.962 +-109.045 -29.1135 175.548 +-98.8829 -25.8904 156.114 +-98.5407 -25.3066 152.594 +-99.0698 -24.9591 150.498 +-98.9071 -24.4483 147.418 +-98.5298 -23.8993 144.108 +-98.3281 -23.4071 141.14 +-98.6551 -23.0514 138.996 +-98.8937 -22.6833 136.776 +-99.0418 -22.3029 134.482 +-99.2164 -21.9371 132.276 +-98.6977 -21.4288 129.211 +-98.7411 -21.0534 126.948 +-98.7521 -20.6796 124.694 +-98.7308 -20.3074 122.45 +-98.6145 -19.9241 120.138 +-98.5921 -19.5679 117.99 +-99.1178 -19.3261 116.532 +-98.9759 -18.9599 114.324 +-98.8025 -18.5956 112.127 +-99.1942 -18.3436 110.608 +-99.0982 -18.0067 108.577 +-98.974 -17.6715 106.556 +-99.299 -17.4218 105.05 +-98.9166 -17.0539 102.831 +-99.1972 -16.8062 101.338 +-99.3188 -16.5356 99.7061 +-99.6313 -16.3005 98.2888 +-99.2131 -15.9512 96.1828 +-99.4128 -15.7067 94.7082 +-98.9411 -15.3614 92.6264 +-99.0984 -15.1192 91.1656 +-99.2375 -14.8776 89.7091 +-99.3585 -14.6369 88.2573 +-99.4613 -14.3969 86.8102 +-99.5462 -14.1577 85.3682 +-99.233 -13.8663 83.611 +-99.4326 -13.6505 82.3096 +-100.003 -13.4872 81.3249 +-100.796 -13.3542 80.5231 +-101.739 -13.2403 79.8364 +-102.441 -13.0946 78.9575 +-105.516 -13.2466 79.8743 +-106.298 -13.1053 79.0223 +-112.862 -13.6634 82.3878 +-114.233 -13.5787 81.877 +-118.861 -13.8711 83.6402 +-120.497 -13.8041 83.2362 +-125.514 -14.1135 85.1013 +-125.019 -13.7965 83.19 +-136.757 -14.8095 89.298 +-138.213 -14.6849 88.5471 +-161.931 -16.8782 101.772 +-161.468 -16.5076 99.5375 +-163.195 -16.3618 98.6585 +-163.719 -16.0945 97.0468 +-165.433 -15.9432 96.1343 +-157.963 -14.9211 89.9711 +-169.023 -15.6457 94.3401 +-169.414 -15.3641 92.6422 +-171.721 -15.2543 91.9805 +-175.53 -15.2697 92.0733 +-182.281 -15.5247 93.6107 +-2919.38 -243.367 1467.46 +-523.895 -42.7352 257.684 +-527.502 -42.0932 253.813 +-381.252 -29.7519 179.398 +-380.377 -29.0197 174.983 +-380.455 -28.3669 171.047 +-378.939 -27.603 166.441 +-378.471 -26.924 162.347 +-379.432 -26.3506 158.889 +-379.437 -25.714 155.05 +-380.794 -25.1713 151.778 +-378.959 -24.4228 147.265 +-380.247 -23.8808 143.996 +-379.446 -23.211 139.957 +-380.012 -22.6292 136.449 +-380.356 -22.0366 132.876 +-380.477 -21.4342 129.244 +-380.088 -20.8071 125.462 +-379.947 -20.1978 121.789 +-379.389 -19.571 118.009 +-379.844 -18.9998 114.565 +-380.364 -18.4336 111.151 +-380.467 -17.8492 107.627 +-380.152 -17.2486 104.005 +-378.836 -16.6077 100.141 +-380.192 -16.0867 96.9993 +-380.162 -15.5076 93.5078 +-380.975 -14.9643 90.2315 +-380.394 -14.3682 86.6375 +-381.146 -13.8246 83.3594 +-379.228 -13.188 79.5212 +-378.937 -12.6135 76.0568 +-380.871 -12.1126 73.0363 +-379.831 -11.5176 69.449 +-379.053 -10.9351 65.9366 +-379.917 -10.4016 62.7196 +-379.371 -9.83065 59.2769 +-380.376 -9.30073 56.0815 +-379.768 -8.73225 52.6537 +-379.823 -8.18117 49.3308 +-380.641 -7.64655 46.1071 +-380.637 -7.0954 42.7838 +-380.802 -6.54824 39.4846 +-380.142 -5.98864 36.1103 +-377.956 -5.41002 32.6213 +-379.227 -4.88302 29.4436 +-380.97 -4.35853 26.281 +-147.624 -1.47723 8.90742 +-379.479 -3.25379 19.6197 +-380.238 -2.71614 16.3778 +-379.069 -2.16575 13.059 +-146.05 -0.625712 3.77292 +-145.978 -0.416882 2.51372 +-146.694 -0.209448 1.26293 +95.9 3.55271e-15 -1.7053e-13 +95.9963 -0.129601 0.827662 +95.8854 -0.258923 1.65354 +95.8671 -0.388359 2.48015 +95.8416 -0.517765 3.30657 +95.9086 -0.647807 4.13705 +95.8684 -0.77726 4.96376 +96.8191 -0.916099 5.85042 +95.7661 -1.03598 6.616 +96.701 -1.17736 7.51891 +96.6309 -1.30787 8.35233 +96.5534 -1.43827 9.18511 +96.4686 -1.56857 10.0172 +96.3765 -1.69873 10.8485 +96.277 -1.82878 11.679 +96.071 -1.95667 12.4957 +95.957 -2.08629 13.3235 +95.9345 -2.21804 14.1649 +95.707 -2.34505 14.976 +96.3601 -2.4946 15.9311 +96.2157 -2.62458 16.7612 +95.8674 -2.74874 17.5541 +95.7087 -2.87806 18.3799 +94.6607 -2.97939 19.027 +95.3694 -3.13602 20.0274 +95.1889 -3.26466 20.8488 +95.196 -3.39999 21.7131 +95.6812 -3.55365 22.6945 +95.6712 -3.69018 23.5663 +96.1371 -3.8463 24.5634 +95.9164 -3.97594 25.3913 +95.6885 -4.10529 26.2173 +96.3184 -4.27269 27.2864 +96.0737 -4.40255 28.1157 +95.8217 -4.53208 28.9429 +96.5162 -4.70779 30.065 +96.2469 -4.83791 30.896 +95.9704 -4.96766 31.7246 +96.3483 -5.13229 32.776 +96.0552 -5.26216 33.6054 +96.6004 -5.43927 34.7364 +96.2899 -5.56946 35.5679 +95.9721 -5.69924 36.3967 +96.5773 -5.88529 37.5848 +97.0761 -6.0676 38.7491 +96.7302 -6.19844 39.5846 +96.4689 -6.33482 40.4556 +96.1079 -6.46482 41.2858 +95.7396 -6.59432 42.1128 +96.3649 -6.79388 43.3873 +96.7937 -6.98256 44.5922 +96.2156 -7.09965 45.34 +96.8001 -7.30387 46.6442 +96.2054 -7.42047 47.3888 +96.5851 -7.61328 48.6201 +96.152 -7.74336 49.4509 +96.5062 -7.93824 50.6955 +96.8456 -8.13467 51.9499 +96.3831 -8.2651 52.7828 +96.6095 -8.45584 54.001 +96.9948 -8.6633 55.3258 +96.4163 -8.78605 56.1098 +96.6028 -8.97963 57.346 +96.8599 -9.18245 58.6412 +96.3383 -9.31286 59.4741 +96.3996 -9.50075 60.674 +96.6148 -9.70636 61.9871 +96.8141 -9.91327 63.3085 +96.2513 -10.0436 64.1407 +96.3404 -10.2433 65.4158 +95.7589 -10.3729 66.2439 +96.5541 -10.6545 68.0423 +95.9494 -10.7845 68.8721 +95.9805 -10.9872 70.1668 +96.0759 -11.2001 71.5267 +96.0751 -11.4048 72.8335 +96.1373 -11.6198 74.2065 +96.1043 -11.8261 75.5245 +96.2107 -12.0528 76.972 +96.1444 -12.2609 78.3012 +96.1386 -12.4798 79.6986 +96.0393 -12.6895 81.0378 +96.0745 -12.9201 82.5109 +95.9412 -13.1313 83.8597 +95.8657 -13.3535 85.2786 +95.7723 -13.5765 86.7027 +96.3193 -13.8952 88.7379 +96.1121 -14.1099 90.109 +95.888 -14.3251 91.4832 +95.7895 -14.5624 92.9989 +96.1665 -14.8771 95.0088 +95.9545 -15.1057 96.4685 +95.7239 -15.3348 97.9317 +96.1631 -15.6767 100.115 +95.8208 -15.8964 101.518 +95.5285 -16.1278 102.996 +95.8195 -16.4631 105.137 +95.351 -16.673 106.478 +95.719 -17.0345 108.786 +95.274 -17.2573 110.209 +95.3897 -17.5867 112.312 +95.4753 -17.9177 114.427 +95.5308 -18.2503 116.551 +95.556 -18.5843 118.684 +95.0581 -18.8224 120.204 +95.0277 -19.1586 122.351 +95.0266 -19.5087 124.587 +94.7553 -19.8102 126.512 +94.8685 -20.2002 129.003 +95.3514 -20.6802 132.069 +95.2137 -21.0362 134.342 +95.043 -21.3934 136.623 +94.895 -21.7647 138.994 +95.1539 -22.2402 142.031 +94.9306 -22.6143 144.42 +94.6185 -22.9765 146.733 +94.8555 -23.4839 149.974 +94.938 -23.9672 153.06 +94.664 -24.3728 155.65 +94.8082 -24.8996 159.014 +94.3 -25.2677 161.366 +94.7915 -25.9192 165.526 +94.247 -26.3033 167.979 +94.4774 -26.919 171.911 +94.2699 -27.428 175.162 +94.3352 -28.0344 179.034 +94.4754 -28.6845 183.186 +93.5677 -29.0326 185.409 +116.651 -36.9999 236.29 +116.755 -37.8681 241.834 +117.192 -38.8795 248.293 +116.943 -39.6979 253.52 +117.099 -40.6881 259.844 +116.036 -41.2843 263.651 +113.351 -41.3112 263.823 +110.328 -41.2054 263.147 +107.962 -41.3385 263.997 +105.296 -41.3532 264.091 +102.278 -41.2194 263.236 +99.669 -41.2399 263.368 +97.0311 -41.2421 263.382 +94.3338 -41.211 263.183 +93.4055 -41.9658 268.003 +93.0337 -43.0145 274.701 +92.6742 -44.1243 281.788 +92.5572 -45.4133 290.02 +92.2725 -46.6905 298.177 +92.3618 -48.2372 308.054 +92.2558 -49.7728 317.861 +92.5179 -51.6099 329.593 +92.1655 -53.2121 339.825 +92.4403 -55.2966 353.137 +91.64 -56.8603 363.123 +91.8374 -59.1781 377.925 +89.3731 -59.8877 382.457 +87.8745 -61.3201 391.604 +84.329 -61.3759 391.961 +82.4785 -62.7153 400.515 +77.8882 -61.989 395.876 +76.0469 -63.476 405.372 +67.6012 -59.3105 378.77 +65.953 -60.9711 389.375 +61.2754 -59.8507 382.22 +58.6508 -60.7113 387.716 +54.2914 -59.7619 381.653 +51.8842 -60.9678 389.355 +47.3462 -59.6536 380.962 +44.919 -60.991 389.503 +40.4525 -59.5416 380.247 +37.9453 -60.9644 389.333 +33.7467 -59.6726 381.083 +31.1718 -61.2735 391.307 +27.0585 -59.8626 382.297 +24.2546 -61.3484 391.785 +20.2697 -59.8338 382.113 +17.282 -61.2345 391.058 +13.5375 -59.9723 382.997 +10.3922 -61.3956 392.086 +6.77328 -60.0306 383.369 +3.46269 -61.3833 392.008 +2.13163e-14 -59.9624 382.934 +-3.46443 -61.4143 392.206 +-6.79422 -60.2163 384.555 +-10.4472 -61.7203 394.16 +-13.5619 -60.0804 383.688 +-17.3605 -61.5127 392.834 +-20.4372 -60.3283 385.27 +-24.3584 -61.6109 393.461 +-27.3794 -60.5725 386.83 +-31.7053 -62.3222 398.004 +-34.2522 -60.5665 386.792 +-38.9996 -62.6584 400.151 +-41.5814 -61.2033 390.858 +-46.5152 -63.1584 403.344 +-48.5649 -61.1892 390.768 +-53.9334 -63.3759 404.733 +-55.7945 -61.4163 392.219 +-61.6809 -63.8479 407.747 +-63.1213 -61.6536 393.734 +-68.6103 -63.4276 405.063 +-69.9976 -61.4129 392.197 +-76.302 -63.689 406.733 +-77.4303 -61.6245 393.548 +-84.1133 -63.9583 408.453 +-85.722 -62.3897 398.435 +-94.3893 -65.8663 420.637 +-96.9989 -64.9976 415.09 +-104.047 -67.0454 428.168 +-101.68 -63.0897 402.905 +-108.565 -64.9421 414.735 +-109.972 -63.493 405.481 +-117.131 -65.3397 417.274 +-117.78 -63.5433 405.802 +-126.387 -66.0074 421.538 +-127.913 -64.7246 413.346 +-135.288 -66.379 423.911 +-137.234 -65.3405 417.279 +-141.835 -65.5782 418.798 +-142.11 -63.8484 407.75 +-143.938 -62.8812 401.574 +-144.161 -61.2743 391.312 +-144.531 -59.8023 381.911 +-144.243 -58.1317 371.242 +-144.365 -56.6968 362.079 +-143.212 -54.8359 350.195 +-143.353 -53.54 341.919 +-143.164 -52.1767 333.213 +-143.271 -50.9742 325.533 +-143.578 -49.8885 318.6 +-143.318 -48.6511 310.697 +-143.521 -47.6144 304.077 +-143.231 -46.4554 296.675 +-143.742 -45.5929 291.167 +-143.81 -44.6217 284.965 +-142.144 -43.1578 275.615 +-141.249 -41.9763 268.07 +-143.658 -41.7976 266.929 +-145.963 -41.5885 265.594 +-148.546 -41.4574 264.757 +-263.151 -71.9546 459.519 +-108.9 -29.1798 186.349 +-109.222 -28.6853 183.191 +-110.27 -28.3909 181.311 +-110.247 -27.8319 177.741 +-98.565 -24.4022 155.838 +-98.5407 -23.929 152.816 +-98.4707 -23.4577 149.807 +-98.9623 -23.1304 147.716 +-98.5857 -22.6111 144.399 +-99.0078 -22.2859 142.323 +-98.7125 -21.8092 139.279 +-98.8356 -21.4358 136.894 +-99.0418 -21.0888 134.678 +-99.2164 -20.7429 132.469 +-99.4198 -20.4106 130.347 +-98.8629 -19.9319 127.29 +-98.7521 -19.5538 124.875 +-98.7308 -19.2019 122.628 +-99.2438 -18.9596 121.081 +-98.5921 -18.5026 118.162 +-99.0536 -18.2621 116.626 +-98.9759 -17.9278 114.491 +-98.8025 -17.5832 112.291 +-98.7304 -17.2638 110.251 +-99.0982 -17.0265 108.735 +-98.8388 -16.6868 106.565 +-99.1626 -16.4508 105.059 +-98.9854 -16.1368 103.053 +-99.1972 -15.8913 101.485 +-99.5291 -15.6685 100.063 +-99.4899 -15.3913 98.2922 +-99.8551 -15.1805 96.946 +-99.2689 -14.8302 94.7088 +-99.5939 -14.621 93.3733 +-99.0253 -14.2856 91.2309 +-99.0163 -14.0364 89.6395 +-99.3585 -13.8401 88.3858 +-99.3864 -13.6029 86.8711 +-99.6971 -13.4073 85.6221 +-100.374 -13.2621 84.695 +-100.045 -12.9869 82.9375 +-101.7 -12.9694 82.8258 +-101.184 -12.6759 80.9511 +-105.73 -13.0107 83.0892 +-104.963 -12.6865 81.0188 +-110.911 -13.1659 84.0802 +-112.448 -13.1087 83.7155 +-119.855 -13.7202 87.6204 +-119.087 -13.3851 85.4804 +-129.526 -14.2929 91.2775 +-128.279 -13.8956 88.7408 +-139.36 -14.8172 94.6262 +-138.118 -14.4122 92.0399 +-148.015 -15.1559 96.7894 +-161.276 -16.2025 103.473 +-163.365 -16.1006 102.822 +-162.316 -15.6909 100.206 +-164.815 -15.6247 99.7831 +-165.176 -15.3538 98.053 +-168.965 -15.3972 98.3301 +-161.947 -14.4646 92.3744 +-175.203 -15.3348 97.9316 +-173 -14.8352 94.7408 +-2879.44 -241.862 1544.59 +-181.357 -14.9178 95.2686 +-518.99 -41.7956 266.916 +-521.328 -41.0934 262.432 +-523.895 -40.4087 258.059 +-527.502 -39.8017 254.183 +-379.718 -28.019 178.936 +-378.927 -27.3353 174.57 +-378.908 -26.7136 170.599 +-380.4 -26.2011 167.326 +-380.488 -25.594 163.449 +-378.051 -24.8255 158.541 +-379.068 -24.2905 155.125 +-379.96 -23.7489 151.666 +-380.634 -23.1954 148.131 +-380.247 -22.5807 144.206 +-379.446 -21.9474 140.161 +-379.166 -21.3496 136.344 +-378.942 -20.7594 132.575 +-380.098 -20.2471 129.302 +-380.088 -19.6744 125.645 +-380.518 -19.127 122.15 +-380.819 -18.5754 118.626 +-380.036 -17.9746 114.79 +-380.364 -17.4301 111.313 +-379.602 -16.8391 107.539 +-379.67 -16.2889 104.024 +-379.705 -15.7397 100.517 +-378.836 -15.1567 96.7942 +-380.162 -14.6634 93.6439 +-380.975 -14.1496 90.3628 +-379.517 -13.5547 86.5636 +-379.974 -13.0318 83.2242 +-379.228 -12.4701 79.637 +-378.643 -11.9176 76.1084 +-379.89 -11.4237 72.9541 +-378.75 -10.8596 69.352 +-380.431 -10.3774 66.2727 +-379.325 -9.82005 62.7131 +-379.569 -9.30033 59.3941 +-378.892 -8.76011 55.9441 +-379.075 -8.24181 52.6341 +-381.012 -7.76003 49.5573 +-379.649 -7.21142 46.0538 +-379.147 -6.68285 42.6782 +-380.504 -6.18693 39.5111 +-381.734 -5.68634 36.3143 +-380.148 -5.14516 32.8582 +-380.125 -4.62814 29.5563 +-381.269 -4.12449 26.3399 +-147.225 -1.39304 8.89625 +-379.479 -3.07666 19.6483 +-379.638 -2.56424 16.3759 +-380.368 -2.05486 13.1228 +-146.45 -0.593269 3.78875 +-144.378 -0.389869 2.48979 +-145.994 -0.197101 1.25873 +95.1 -1.77636e-15 -1.7053e-13 +95.9963 -0.122129 0.828797 +95.9854 -0.244249 1.65753 +95.8671 -0.365968 2.48355 +95.8416 -0.487914 3.3111 +95.9086 -0.610459 4.14272 +95.8684 -0.732448 4.97057 +96.8191 -0.863282 5.85845 +95.7661 -0.976251 6.62508 +95.7041 -1.09804 7.4516 +96.5313 -1.23119 8.35516 +96.5534 -1.35535 9.19772 +96.4686 -1.47813 10.031 +96.3765 -1.60079 10.8634 +96.277 -1.72334 11.695 +96.1702 -1.84575 12.5257 +95.957 -1.96601 13.3418 +95.9345 -2.09016 14.1843 +95.707 -2.20985 14.9966 +95.4724 -2.32911 15.8059 +96.0188 -2.4682 16.7498 +95.8674 -2.59027 17.5782 +95.7087 -2.71212 18.4051 +95.5427 -2.83378 19.2307 +95.3694 -2.95522 20.0548 +96.0675 -3.10483 21.0702 +95.878 -3.22693 21.8987 +95.8757 -3.35558 22.7718 +95.6712 -3.47742 23.5987 +95.2657 -3.5917 24.3742 +95.9164 -3.74671 25.4261 +95.6885 -3.8686 26.2533 +96.3184 -4.02635 27.3238 +96.2655 -4.15701 28.2105 +96.778 -4.31342 29.2719 +96.5162 -4.43637 30.1063 +96.2469 -4.55899 30.9384 +95.9704 -4.68125 31.7681 +96.3483 -4.8364 32.821 +96.0552 -4.95878 33.6515 +96.6004 -5.12567 34.7841 +97.3202 -5.30452 35.9978 +96.9056 -5.42291 36.8012 +96.6704 -5.55133 37.6727 +97.1689 -5.72325 38.8394 +96.8226 -5.84664 39.6767 +96.4689 -5.96959 40.5111 +96.1079 -6.09209 41.3425 +96.7445 -6.27935 42.6132 +96.3649 -6.40219 43.4468 +96.7937 -6.57998 44.6534 +96.3961 -6.70288 45.4874 +96.6204 -6.86999 46.6214 +96.2054 -6.99265 47.4539 +95.7832 -7.11477 48.2826 +96.9503 -7.35752 49.9299 +96.5062 -7.48057 50.765 +96.0547 -7.60307 51.5963 +96.3831 -7.78858 52.8552 +96.6965 -7.97552 54.1238 +96.2154 -8.09822 54.9565 +96.4163 -8.2795 56.1868 +96.6885 -8.46943 57.4756 +96.1778 -8.59211 58.3081 +96.3383 -8.77594 59.5557 +96.3996 -8.95299 60.7572 +96.6148 -9.14675 62.0721 +95.9803 -9.26126 62.8492 +96.0855 -9.44824 64.1181 +96.3404 -9.65269 65.5055 +95.8408 -9.78324 66.3915 +96.5541 -10.0403 68.1356 +95.9494 -10.1627 68.9665 +95.9805 -10.3537 70.263 +96.0759 -10.5544 71.6248 +96.0751 -10.7472 72.9334 +96.0585 -10.9409 74.2473 +96.1825 -11.1534 75.6896 +96.133 -11.3487 77.0152 +96.1444 -11.554 78.4086 +96.1386 -11.7603 79.808 +96.0393 -11.9579 81.149 +95.9991 -12.1657 82.5592 +95.8663 -12.3646 83.9093 +95.7914 -12.5739 85.3295 +95.7723 -12.7938 86.8216 +96.2461 -13.0841 88.7922 +96.0396 -13.2863 90.1644 +95.888 -13.4992 91.6087 +95.7182 -13.7126 93.0571 +96.0958 -14.0091 95.0692 +95.9545 -14.2348 96.6008 +95.7934 -14.4612 98.1372 +95.5436 -14.6777 99.6064 +95.889 -14.9905 101.729 +96.0689 -15.284 103.721 +95.8195 -15.5139 105.281 +95.4173 -15.7227 106.698 +95.7846 -16.0635 109.011 +95.8585 -16.3621 111.037 +95.454 -16.5839 112.543 +95.0301 -16.806 114.049 +95.5308 -17.1981 116.711 +95.6805 -17.5358 119.002 +95.5507 -17.8291 120.992 +95.0277 -18.054 122.519 +94.9664 -18.3723 124.679 +94.9337 -18.7033 126.925 +95.5739 -19.1771 130.141 +95.3514 -19.4879 132.25 +95.2137 -19.8234 134.526 +95.043 -20.16 136.811 +94.7273 -20.4736 138.939 +94.7124 -20.8608 141.566 +94.9306 -21.3105 144.618 +94.6722 -21.6642 147.018 +94.4316 -22.031 149.508 +94.4677 -22.4734 152.51 +94.7155 -22.9801 155.949 +94.3006 -23.3385 158.381 +94.35 -23.8236 161.673 +94.2991 -24.298 164.892 +94.247 -24.7868 168.21 +94.0957 -25.2646 171.452 +94.2229 -25.8338 175.315 +94.3352 -26.4181 179.28 +94.4754 -27.0307 183.437 +93.5231 -27.3456 185.574 +116.694 -34.8798 236.703 +117.228 -35.8296 243.148 +117.277 -36.6643 248.813 +116.943 -37.4091 253.868 +117.14 -38.3555 260.29 +116.036 -38.9041 264.013 +112.999 -38.8088 263.366 +110.289 -38.8164 263.417 +107.662 -38.8471 263.626 +105.003 -38.8605 263.717 +102.278 -38.8429 263.597 +99.3538 -38.7394 262.895 +97.0311 -38.8643 263.743 +94.3672 -38.8489 263.638 +93.1776 -39.4498 267.716 +93.1289 -40.5761 275.359 +93.045 -41.7467 283.304 +92.4971 -42.7672 290.229 +92.5941 -44.152 299.626 +92.5606 -45.554 309.141 +92.1456 -46.8472 317.917 +91.9033 -48.3113 327.853 +92.269 -50.2007 340.674 +92.1148 -51.9251 352.377 +92.0997 -53.8509 365.446 +91.7907 -55.7379 378.251 +91.5776 -57.827 392.428 +91.554 -60.2043 408.561 +87.1566 -59.7765 405.658 +87.2633 -62.528 424.331 +81.8571 -61.3917 416.619 +80.9308 -63.658 431.999 +75.1028 -62.093 421.379 +74.4695 -64.875 440.258 +65.2645 -60.0718 407.662 +64.4597 -62.8775 426.702 +57.9795 -60.142 408.139 +57.0008 -63.1186 428.338 +50.5636 -60.0343 407.408 +49.4585 -63.2831 429.454 +43.0971 -59.7768 405.66 +41.6833 -63.109 428.273 +35.7426 -59.5579 404.174 +34.3494 -63.6268 431.787 +28.7815 -60.0034 407.198 +26.7515 -63.7628 432.71 +21.5833 -60.0384 407.435 +19.1271 -63.8649 433.403 +14.424 -60.2152 408.635 +11.4838 -63.933 433.865 +7.24449 -60.5052 410.603 +3.82833 -63.9523 433.996 +2.75335e-14 -60.5289 410.764 +-3.83357 -64.0398 434.59 +-7.25147 -60.5635 410.999 +-11.5257 -64.1661 435.447 +-14.5322 -60.6668 411.7 +-19.319 -64.5056 437.751 +-21.8869 -60.8827 413.165 +-27.1056 -64.6068 438.437 +-29.2698 -61.0214 414.106 +-35.0163 -64.8622 440.171 +-36.9105 -61.5039 417.381 +-42.7855 -64.7778 439.598 +-44.226 -61.3427 416.287 +-50.8735 -65.0935 441.741 +-51.7092 -61.3944 416.638 +-58.9978 -65.33 443.345 +-59.413 -61.6289 418.229 +-67.3272 -65.6746 445.684 +-67.3138 -61.9579 420.462 +-75.7403 -65.9821 447.771 +-75.1897 -62.1649 421.866 +-84.6848 -66.6108 452.038 +-83.8606 -62.8943 426.816 +-92.9055 -66.5709 451.767 +-93.1444 -63.8834 433.528 +-106.099 -69.7686 473.467 +-104.715 -66.1225 448.723 +-113.898 -69.162 469.351 +-109.639 -64.1061 435.04 +-120.358 -67.8456 460.417 +-117.607 -63.9865 434.228 +-131.027 -68.8776 467.42 +-127.124 -64.6304 438.598 +-139.963 -68.8831 467.458 +-136.216 -64.9523 440.782 +-140.61 -65.0129 441.194 +-141.653 -63.556 431.306 +-144.342 -62.8894 426.783 +-144.357 -61.1183 414.764 +-144.572 -59.5169 403.896 +-144.572 -57.906 392.964 +-144.391 -56.2998 382.064 +-144.53 -54.889 372.491 +-144.218 -53.3738 362.208 +-143.25 -51.6879 350.767 +-143.468 -50.4935 342.662 +-143.476 -49.2758 334.398 +-143.151 -47.9953 325.708 +-143.456 -46.9722 318.765 +-143.401 -45.8727 311.303 +-143.563 -44.8825 304.584 +-143.575 -43.8823 297.796 +-143.435 -42.8725 290.943 +-143.81 -42.0491 285.356 +-142.598 -40.7994 276.875 +-141.572 -39.6467 269.053 +-143.377 -39.3106 266.771 +-145.963 -39.1907 265.958 +-149.321 -39.2714 266.505 +-296.094 -76.2946 517.754 +-109.2 -27.5733 187.119 +-109.121 -27.0062 183.271 +-110.27 -26.754 181.559 +-111.24 -26.4635 179.588 +-98.618 -23.0077 156.136 +-98.7557 -22.5985 153.359 +-98.5797 -22.1297 150.177 +-98.9623 -21.7968 147.919 +-98.6975 -21.3316 144.762 +-99.0078 -21.001 142.518 +-98.7125 -20.5518 139.47 +-98.8937 -20.2119 137.163 +-99.0418 -19.8729 134.863 +-99.3354 -19.5704 132.81 +-99.4198 -19.2338 130.525 +-99.4107 -18.8869 128.171 +-98.7521 -18.4265 125.047 +-99.2911 -18.1975 123.492 +-98.6774 -17.7645 120.554 +-98.5921 -17.4359 118.324 +-99.0536 -17.2092 116.786 +-98.9109 -16.8831 114.573 +-98.7369 -16.5586 112.371 +-99.1942 -16.345 110.921 +-99.2321 -16.0664 109.031 +-98.974 -15.7461 106.857 +-99.299 -15.5237 105.347 +-99.6049 -15.3016 103.841 +-99.2667 -14.9856 101.696 +-99.459 -14.7547 100.129 +-99.7021 -14.5348 98.6369 +-99.2845 -14.2235 96.5243 +-99.4128 -13.9954 94.9762 +-99.739 -13.7981 93.6376 +-99.2447 -13.4918 91.5585 +-101.081 -13.5029 91.6339 +-100.176 -13.1494 89.2352 +-103.805 -13.3885 90.858 +-101.433 -12.8543 87.2323 +-109.727 -13.6621 92.7142 +-104.105 -12.7348 86.4216 +-112.812 -13.557 92.0011 +-109.034 -12.8717 87.3504 +-118.565 -13.7489 93.3034 +-112.607 -12.8257 87.0381 +-126.778 -14.1817 96.2408 +-126.105 -13.8532 94.0114 +-141.64 -15.2792 103.688 +-138.018 -14.6185 99.2047 +-142.389 -14.8064 100.48 +-141.795 -14.4742 98.2254 +-142.079 -14.2354 96.6052 +-144.667 -14.2253 96.5367 +-148.348 -14.3143 97.1406 +-162.87 -15.4193 104.639 +-170.449 -15.8302 107.428 +-165.454 -15.072 102.282 +-177.264 -15.8359 107.466 +-171.348 -15.0092 101.856 +-510.343 -43.8244 297.403 +-176.236 -14.8334 100.663 +-511.682 -42.2035 286.403 +-547.687 -44.2578 300.345 +-513.141 -40.6169 275.636 +-515.818 -39.9831 271.335 +-518.192 -39.3254 266.872 +-521.061 -38.7044 262.658 +-2932.25 -213.13 1446.35 +-386.302 -27.4672 186.399 +-377.1 -26.2216 177.946 +-379.924 -25.8271 175.269 +-379.363 -25.2038 171.039 +-379.121 -24.6075 166.993 +-380.58 -24.1242 163.713 +-378.512 -23.4227 158.953 +-379.53 -22.9179 155.527 +-380.238 -22.396 151.985 +-378.959 -21.7618 147.681 +-378.94 -21.2058 143.908 +-379.352 -20.6769 140.319 +-380.294 -20.1786 136.937 +-379.13 -19.5723 132.823 +-380.098 -19.0797 129.48 +-380.278 -18.5492 125.88 +-380.613 -18.0288 122.348 +-380.438 -17.4869 118.671 +-379.366 -16.9084 114.745 +-380.076 -16.4128 111.381 +-380.467 -15.9044 107.931 +-378.418 -15.2992 103.824 +-379.705 -14.8322 100.655 +-380.192 -14.334 97.2738 +-379.677 -13.8004 93.6527 +-380.099 -13.3032 90.2789 +-379.809 -12.7831 86.7491 +-379.389 -12.2615 83.2098 +-380.108 -11.7784 79.9313 +-380.015 -11.2712 76.4889 +-379.89 -10.765 73.0542 +-379.34 -10.2495 69.5554 +-379.643 -9.75889 66.2262 +-379.917 -9.26832 62.8971 +-380.161 -8.7778 59.5683 +-380.079 -8.28092 56.1964 +-380.065 -7.78692 52.844 +-380.814 -7.30882 49.5995 +-380.244 -6.80631 46.1893 +-381.035 -6.32892 42.9496 +-381.001 -5.83785 39.6171 +-379.843 -5.33195 36.184 +-380.148 -4.84852 32.9033 +-379.227 -4.351 29.5269 +-380.371 -3.87754 26.3139 +-147.524 -1.31539 8.92657 +-378.181 -2.88935 19.6079 +-379.638 -2.4164 16.3983 +-379.369 -1.9313 13.1063 +-144.95 -0.553341 3.75511 +-143.778 -0.365865 2.48285 +-146.394 -0.186246 1.26391 +95 -1.77636e-15 -1.7053e-13 +95.9963 -0.114647 0.829865 +95.9854 -0.229285 1.65967 +95.8671 -0.343548 2.48675 +95.8416 -0.458023 3.31537 +95.9086 -0.57306 4.14806 +95.8684 -0.687576 4.97698 +96.8191 -0.810395 5.866 +95.7661 -0.916443 6.63362 +96.701 -1.04151 7.53893 +96.5313 -1.15576 8.36593 +96.4539 -1.271 9.20007 +96.4686 -1.38758 10.0439 +96.4758 -1.50427 10.8886 +96.277 -1.61776 11.7101 +96.1702 -1.73268 12.5419 +96.056 -1.84747 13.3728 +95.8356 -1.96008 14.1879 +95.707 -2.07446 15.0159 +95.4724 -2.18642 15.8263 +96.0188 -2.31699 16.7714 +95.8674 -2.43158 17.6008 +95.7087 -2.54597 18.4289 +95.7386 -2.66562 19.2949 +95.3694 -2.77417 20.0807 +95.1889 -2.88796 20.9044 +95.878 -3.02924 21.9269 +95.6812 -3.14362 22.7549 +95.4771 -3.25776 23.5811 +96.1371 -3.4025 24.6288 +96.1096 -3.52427 25.5102 +95.6885 -3.6316 26.2871 +95.4533 -3.74574 27.1133 +96.0737 -3.89456 28.1906 +95.8217 -4.00915 29.02 +96.5162 -4.16458 30.1451 +96.2469 -4.27969 30.9783 +95.9704 -4.39447 31.8091 +96.5374 -4.54901 32.9278 +96.0552 -4.65499 33.6949 +96.6004 -4.81166 34.8289 +96.2899 -4.92683 35.6626 +96.999 -5.09559 36.8841 +96.5773 -5.20622 37.6849 +96.3344 -5.32648 38.5554 +96.8226 -5.48846 39.7279 +96.4689 -5.60388 40.5633 +96.1079 -5.71888 41.3957 +95.9223 -5.84456 42.3055 +96.3649 -6.00997 43.5028 +95.978 -6.12483 44.3342 +96.3961 -6.29224 45.546 +96.6204 -6.44912 46.6815 +96.2054 -6.56426 47.515 +96.5851 -6.73482 48.7496 +96.152 -6.8499 49.5826 +96.5062 -7.02229 50.8304 +96.0547 -7.13729 51.6628 +96.3831 -7.31143 52.9233 +96.6965 -7.48692 54.1936 +96.9948 -7.66369 55.4731 +96.4163 -7.77228 56.2592 +96.6885 -7.95057 57.5497 +96.8599 -8.12293 58.7974 +96.4231 -8.24555 59.6849 +96.3996 -8.40451 60.8355 +95.86 -8.51931 61.6665 +95.9803 -8.69389 62.9302 +96.1684 -8.87707 64.2561 +96.3404 -9.06134 65.5899 +96.4961 -9.24669 66.9316 +95.9028 -9.36158 67.7632 +95.9494 -9.5401 69.0554 +96.0609 -9.72759 70.4125 +96.1557 -9.91606 71.7768 +96.0751 -10.0888 73.0274 +95.4281 -10.2032 73.8551 +96.1825 -10.4701 75.7872 +96.133 -10.6535 77.1145 +96.1444 -10.8462 78.5096 +96.062 -11.031 79.8472 +96.0393 -11.2253 81.2536 +96.0745 -11.4293 82.7305 +95.9412 -11.6162 84.083 +95.8657 -11.8127 85.5057 +96.3621 -12.0839 87.4688 +96.3193 -12.2919 88.9741 +95.4593 -12.397 89.7352 +95.888 -12.6722 91.7268 +95.7182 -12.8725 93.177 +96.1665 -13.1605 95.2617 +95.3237 -13.2749 96.0895 +95.7934 -13.5753 98.2637 +96.1631 -13.8679 100.382 +96.5028 -14.1624 102.513 +95.596 -14.277 103.343 +95.8195 -14.5635 105.417 +95.4835 -14.7697 106.91 +95.719 -15.069 109.076 +95.8585 -15.3597 111.18 +95.454 -15.568 112.688 +95.4753 -15.8503 114.731 +95.5938 -16.1551 116.937 +95.6182 -16.4508 119.078 +95.1197 -16.6614 120.603 +94.6015 -16.872 122.127 +95.0868 -17.2685 124.997 +95.0527 -17.5794 127.247 +94.9861 -17.8916 129.507 +95.2353 -18.2717 132.259 +95.2137 -18.6089 134.7 +95.043 -18.9249 136.987 +94.895 -19.2534 139.364 +94.6572 -19.5713 141.665 +94.985 -20.0165 144.888 +94.6722 -20.337 147.208 +94.8555 -20.7742 150.373 +94.52 -21.1084 152.792 +94.6125 -21.5489 155.981 +94.3006 -21.9087 158.585 +94.75 -22.459 162.568 +94.2499 -22.7976 165.019 +94.5864 -23.3521 169.033 +94.4774 -23.813 172.369 +94.2699 -24.2632 175.628 +94.3352 -24.7997 179.511 +94.4754 -25.3747 183.674 +93.4338 -25.6458 185.636 +116.694 -32.743 237.008 +116.841 -33.5234 242.657 +116.854 -34.2942 248.236 +117.068 -35.1547 254.465 +117.181 -36.0182 260.716 +115.677 -36.4078 263.536 +112.999 -36.4313 263.705 +110.328 -36.451 263.848 +107.662 -36.4672 263.966 +104.636 -36.3524 263.135 +102.314 -36.476 264.029 +99.3538 -36.3661 263.234 +96.7233 -36.3676 263.245 +94.3672 -36.4689 263.978 +93.145 -37.0201 267.968 +93.0337 -38.0513 275.432 +92.9214 -39.1372 283.292 +92.5272 -40.1603 290.698 +92.6526 -41.4733 300.202 +92.4186 -42.6977 309.065 +92.3385 -44.0693 318.993 +92.2774 -45.5363 329.611 +92.1913 -47.0856 340.826 +92.1148 -48.7441 352.831 +91.9303 -50.4588 365.243 +91.4405 -52.1236 377.294 +91.5776 -54.2844 392.934 +91.554 -56.516 409.088 +91.3148 -58.7917 425.56 +91.0314 -61.232 443.224 +89.9855 -63.3534 458.58 +90.3524 -66.7149 482.911 +83.7158 -64.9738 470.309 +84.9995 -69.512 503.158 +76.2931 -65.9208 477.164 +74.3186 -68.0531 492.598 +65.3279 -63.613 460.459 +65.3284 -67.9082 491.549 +57.0958 -63.6371 460.633 +56.6356 -68.0267 492.407 +48.8984 -63.6684 460.86 +48.1721 -68.4649 495.579 +40.5187 -63.3802 458.774 +39.5983 -68.856 498.41 +32.7297 -64.0543 463.653 +31.0798 -69.5411 503.369 +24.4828 -63.9314 462.764 +22.054 -69.1263 500.367 +16.2841 -63.8161 461.929 +13.3764 -69.9072 506.019 +8.15027 -63.9 462.536 +4.44093 -69.6412 504.093 +3.10862e-14 -64.2381 464.984 +-4.43744 -69.5864 503.697 +-8.18867 -64.201 464.715 +-13.2612 -69.3052 501.661 +-16.4551 -64.4862 466.78 +-22.1805 -69.5228 503.236 +-24.8282 -64.8334 469.293 +-31.1287 -69.6505 504.161 +-33.3087 -65.1875 471.855 +-40.4849 -70.3977 509.569 +-41.8783 -65.507 474.168 +-49.9644 -71.0123 514.018 +-50.3723 -65.5875 474.751 +-59.2506 -71.1677 515.143 +-59.0335 -65.7967 476.266 +-68.709 -71.4224 516.987 +-68.2227 -66.4317 480.862 +-78.5164 -71.897 520.422 +-77.1378 -66.6507 482.447 +-88.482 -72.36 523.773 +-86.9977 -67.521 488.747 +-97.9698 -72.3395 523.625 +-95.6716 -67.3567 487.557 +-106.742 -71.7994 519.716 +-106.825 -68.7778 497.844 +-114.626 -70.7585 512.181 +-116.097 -68.8188 498.141 +-123.889 -70.6205 511.182 +-125.437 -68.8497 498.365 +-139.086 -73.5996 532.746 +-135.906 -69.4122 502.436 +-140.942 -69.5506 503.437 +-140.851 -67.2222 486.584 +-142.064 -65.6343 475.09 +-141.537 -63.355 458.591 +-142.174 -61.7087 446.675 +-141.993 -59.8055 432.898 +-144.152 -58.9588 426.77 +-144.227 -57.3223 414.924 +-144.271 -55.7547 403.577 +-144.606 -54.3714 393.564 +-144.671 -52.9532 383.299 +-144.566 -51.5391 373.063 +-144.585 -50.2314 363.597 +-143.399 -48.5722 351.587 +-143.43 -47.3876 343.012 +-143.555 -46.2822 335.011 +-143.151 -45.055 326.128 +-143.375 -44.0696 318.995 +-143.65 -43.1371 312.245 +-143.606 -42.1452 305.066 +-143.619 -41.2063 298.269 +-143.435 -40.246 291.318 +-143.274 -39.3261 284.659 +-142.78 -38.3488 277.586 +-141.988 -37.3271 270.19 +-143.048 -36.8177 266.503 +-145.724 -36.7297 265.866 +-148.546 -36.6739 265.462 +-353.609 -85.5325 619.122 +-109.1 -25.8604 187.189 +-109.019 -25.3282 183.337 +-110.27 -25.115 181.793 +-111.344 -24.8657 179.989 +-98.8299 -21.6446 156.673 +-98.7557 -21.214 153.557 +-98.6341 -20.7854 150.454 +-98.9623 -20.4615 148.109 +-98.7535 -20.0362 145.031 +-99.0078 -19.7144 142.702 +-98.7699 -19.304 139.731 +-99.0099 -18.996 137.501 +-99.0418 -18.6555 135.036 +-99.3354 -18.3715 132.981 +-99.2995 -18.0336 130.535 +-99.289 -17.708 128.179 +-98.7521 -17.2976 125.208 +-99.2288 -17.072 123.574 +-98.6774 -16.6762 120.71 +-98.5285 -16.3572 118.4 +-99.0536 -16.1549 116.936 +-98.9759 -15.8592 114.796 +-98.8025 -15.5544 112.59 +-99.2605 -15.3539 111.138 +-99.0982 -15.0619 109.025 +-99.582 -14.8723 107.653 +-99.0262 -14.5327 105.194 +-101.119 -14.5825 105.554 +-99.7529 -14.1364 102.325 +-103.104 -14.3583 103.932 +-100.48 -13.7508 99.5346 +-108.057 -14.532 105.189 +-101.93 -13.4707 97.507 +-111.998 -14.5449 105.282 +-105.827 -13.5052 97.7567 +-116.416 -14.5988 105.672 +-110.654 -13.635 98.6961 +-123.353 -14.9352 108.107 +-113.886 -13.5482 98.0679 +-157.252 -18.38 133.042 +-121.878 -13.9955 101.306 +-162.89 -18.3759 133.013 +-130.25 -14.4343 104.482 +-163.8 -17.8307 129.066 +-163.039 -17.4322 126.182 +-165.494 -17.3785 125.793 +-141.678 -14.6105 105.758 +-141.881 -14.3675 103.998 +-142.711 -14.1895 102.709 +-142.145 -13.8755 100.437 +-141.959 -13.6032 98.4656 +-142.327 -13.3866 96.8981 +-144.418 -13.3309 96.4949 +-147.681 -13.377 96.8283 +-2747.9 -244.213 1767.72 +-494.227 -43.0888 311.896 +-496.702 -42.4752 307.454 +-498.112 -41.7731 302.372 +-500.757 -41.1766 298.054 +-508.878 -41.0215 296.932 +-527.756 -41.6987 301.833 +-2851.72 -220.8 1598.25 +-2865.69 -217.386 1573.53 +-404.607 -30.0641 217.617 +-2892.98 -210.508 1523.75 +-404.832 -28.8404 208.759 +-404.25 -28.188 204.037 +-404.063 -27.5698 199.563 +-387.111 -25.8384 187.03 +-378.183 -24.6858 178.687 +-379.471 -24.2159 175.285 +-379.363 -23.6597 171.259 +-378.482 -23.061 166.926 +-378.471 -22.5208 163.016 +-379.8 -22.0627 159.699 +-379.53 -21.5139 155.727 +-380.331 -21.0292 152.218 +-380.634 -20.519 148.525 +-380.714 -19.9998 144.767 +-379.727 -19.4294 140.638 +-380.951 -18.9752 137.35 +-380.073 -18.419 133.325 +-379.248 -17.8708 129.356 +-379.804 -17.3912 125.885 +-379.662 -16.882 122.199 +-379.865 -16.3908 118.644 +-380.322 -15.9126 115.182 +-380.364 -15.4189 111.609 +-380.083 -14.915 107.962 +-380.152 -14.4277 104.434 +-378.45 -13.8774 100.451 +-379.32 -13.425 97.1759 +-381.035 -13.0013 94.1089 +-379.613 -12.4723 90.2796 +-379.127 -11.9784 86.705 +-380.56 -11.5459 83.5744 +-378.543 -11.0113 79.7048 +-379.231 -10.5588 76.4295 +-379.89 -10.1055 73.1484 +-379.831 -9.63402 69.7353 +-378.757 -9.13964 66.1568 +-379.917 -8.70052 62.9781 +-379.766 -8.2315 59.5832 +-379.584 -7.76349 56.1956 +-380.263 -7.31369 52.9397 +-379.525 -6.83784 49.4953 +-379.947 -6.38434 46.2127 +-379.445 -5.91641 42.8256 +-379.112 -5.45303 39.4714 +-3261.42 -42.9767 311.084 +-380.148 -4.55149 32.9457 +-379.526 -4.08767 29.5884 +-380.371 -3.63999 26.3479 +-149.321 -1.24985 9.04693 +-379.879 -2.72452 19.7213 +-380.038 -2.27075 16.4367 +-380.368 -1.81776 13.1577 +-146.75 -0.52589 3.80663 +-145.978 -0.348705 2.52408 +-146.094 -0.174479 1.26295 +96 1.77636e-15 -2.27374e-13 +95.9963 -0.107156 0.830866 +95.8854 -0.214081 1.65994 +95.8671 -0.3211 2.48975 +95.9415 -0.428541 3.32283 +96.9077 -0.541195 4.19633 +95.8684 -0.642649 4.98298 +95.8209 -0.749633 5.81252 +96.7637 -0.865483 6.7108 +95.7041 -0.963422 7.4702 +96.6309 -1.08136 8.38467 +96.5534 -1.18918 9.22067 +96.4686 -1.29691 10.056 +96.3765 -1.40453 10.8905 +96.277 -1.51206 11.7242 +97.0625 -1.63449 12.6735 +96.056 -1.72675 13.3889 +95.8356 -1.83201 14.2051 +96.5959 -1.95692 15.1736 +95.4724 -2.04356 15.8454 +96.2157 -2.17003 16.826 +95.8674 -2.27269 17.6221 +95.7087 -2.37961 18.4511 +95.5427 -2.48635 19.2787 +95.3694 -2.5929 20.1049 +95.1889 -2.69926 20.9296 +95.878 -2.8313 21.9534 +95.6812 -2.93821 22.7823 +95.4771 -3.0449 23.6096 +96.1371 -3.18017 24.6585 +95.9164 -3.28736 25.4896 +95.6885 -3.39431 26.3188 +95.4533 -3.50098 27.146 +96.0737 -3.64008 28.2245 +95.8217 -3.74718 29.055 +95.5624 -3.854 29.8832 +96.2469 -4.00005 31.0156 +95.9704 -4.10732 31.8474 +96.5374 -4.25177 32.9675 +96.2437 -4.35937 33.8017 +96.6004 -4.49726 34.8709 +96.2899 -4.6049 35.7056 +96.999 -4.76263 36.9286 +96.5773 -4.86603 37.7303 +97.0761 -5.01677 38.8991 +96.8226 -5.12983 39.7758 +96.4689 -5.23771 40.6122 +96.2913 -5.3554 41.5248 +96.7445 -5.50949 42.7196 +96.1829 -5.60666 43.473 +96.7937 -5.77327 44.7648 +96.3961 -5.88109 45.6009 +96.8001 -6.03893 46.8248 +96.2054 -6.13534 47.5723 +96.5851 -6.29475 48.8084 +96.9503 -6.45547 50.0545 +96.5062 -6.56344 50.8917 +96.0547 -6.67092 51.7251 +96.3831 -6.83369 52.9872 +96.6095 -6.9914 54.21 +96.9082 -7.15653 55.4904 +96.4163 -7.26442 56.327 +96.6028 -7.42447 57.568 +96.8599 -7.59216 58.8682 +96.3383 -7.69999 59.7043 +96.3996 -7.85534 60.9088 +96.6148 -8.02534 62.227 +96.0636 -8.13288 63.0608 +96.1684 -8.29702 64.3336 +96.3404 -8.46925 65.669 +96.4961 -8.64249 67.0123 +95.9842 -8.7573 67.9025 +95.9494 -8.91673 69.1387 +96.0609 -9.09197 70.4974 +96.0759 -9.26042 71.8036 +96.0751 -9.42961 73.1154 +95.4281 -9.53649 73.9442 +96.1825 -9.78596 75.8786 +96.2107 -9.96541 77.2699 +96.1444 -10.1375 78.6043 +96.062 -10.3102 79.9435 +96.1153 -10.5001 81.4159 +96.0745 -10.6825 82.8303 +95.9412 -10.8572 84.1844 +95.8657 -11.0409 85.6088 +95.7723 -11.2252 87.0383 +96.2461 -11.48 89.0138 +96.0396 -11.6574 90.3895 +95.9599 -11.853 91.9062 +95.7182 -12.0314 93.2894 +95.6008 -12.2282 94.8155 +95.9545 -12.4896 96.8419 +95.7934 -12.6882 98.3822 +95.5436 -12.8782 99.855 +95.889 -13.1527 101.983 +95.5285 -13.3347 103.395 +95.7526 -13.6024 105.47 +95.4835 -13.8046 107.038 +95.719 -14.0844 109.208 +95.9235 -14.3658 111.389 +95.5182 -14.5604 112.899 +95.4753 -14.8146 114.87 +95.5938 -15.0994 117.078 +95.1202 -15.2958 118.601 +95.0581 -15.5626 120.67 +95.0885 -15.8508 122.904 +95.6284 -16.2321 125.861 +94.9932 -16.4205 127.322 +94.8685 -16.7018 129.502 +95.2934 -17.0882 132.499 +95.2137 -17.393 134.862 +95.3828 -17.7516 137.643 +94.951 -18.0059 139.615 +95.1539 -18.3885 142.581 +94.985 -18.7085 145.063 +94.7259 -19.0188 147.469 +94.9085 -19.4275 150.637 +94.52 -19.7291 152.976 +94.6125 -20.1409 156.169 +94.3006 -20.4771 158.776 +94.25 -20.8807 161.905 +94.2006 -21.2968 165.131 +94.247 -21.7479 168.629 +94.0003 -22.1446 171.705 +94.2699 -22.6778 175.84 +94.012 -23.0998 179.112 +94.5208 -23.7282 183.984 +93.5231 -23.993 186.037 +116.738 -30.615 237.383 +117.185 -31.4253 243.666 +117.023 -32.0998 248.896 +116.985 -32.8343 254.591 +116.855 -33.5714 260.306 +115.677 -34.0289 263.854 +112.999 -34.0508 264.023 +109.983 -33.9629 263.342 +107.662 -34.0844 264.284 +104.636 -33.9771 263.452 +102.278 -34.0807 264.255 +99.3538 -33.9899 263.551 +96.7233 -33.9913 263.562 +94.0334 -33.9653 263.361 +93.4381 -34.71 269.135 +93.0655 -35.5771 275.858 +92.8596 -36.5555 283.444 +92.5272 -37.5362 291.048 +92.4772 -38.6899 299.994 +92.3618 -39.8832 309.247 +92.2834 -41.1651 319.186 +92.1171 -42.4868 329.435 +92.1913 -44.0089 341.237 +92.0647 -45.5342 353.064 +91.761 -47.0749 365.01 +91.604 -48.8048 378.424 +91.4651 -50.675 392.925 +91.3808 -52.7232 408.806 +91.0861 -54.8125 425.006 +90.8121 -57.0931 442.69 +91.1304 -59.9671 464.974 +90.7351 -62.6197 485.542 +90.6964 -65.7921 510.14 +90.6276 -69.2718 537.12 +86.2267 -69.6357 539.942 +88.4787 -75.7256 587.162 +75.0143 -68.2721 529.37 +78.7856 -76.5456 593.52 +65.6388 -68.3784 530.194 +65.4088 -73.431 569.37 +56.3617 -68.5909 531.841 +55.4659 -73.6804 571.304 +46.7765 -68.3878 530.266 +45.3964 -73.7802 572.078 +37.4523 -68.5072 531.193 +35.109 -73.4234 569.312 +28.3504 -69.1936 536.514 +25.2164 -73.8741 572.806 +18.8632 -69.0929 535.734 +15.0517 -73.5227 570.081 +9.48713 -69.5209 539.052 +5.05005 -74.0183 573.925 +2.84217e-14 -69.7106 540.523 +-5.09891 -74.7346 579.479 +-9.54821 -69.9686 542.524 +-15.3004 -74.7375 579.5 +-19.2087 -70.3585 545.547 +-25.6351 -75.1008 582.318 +-28.8842 -70.4965 546.617 +-36.159 -75.6194 586.339 +-38.5823 -70.5744 547.221 +-46.3536 -75.3359 584.141 +-48.6329 -71.1019 551.311 +-56.9324 -75.6283 586.408 +-58.9227 -71.7075 556.007 +-67.8993 -76.2268 591.049 +-68.7343 -71.6032 555.198 +-79.5296 -77.2684 599.125 +-79.2869 -72.1608 559.522 +-90.4594 -77.4207 600.306 +-91.2326 -73.6784 571.288 +-101.768 -77.7873 603.149 +-101.827 -73.8665 572.747 +-114.061 -78.7179 610.364 +-112.73 -74.1804 575.181 +-125.103 -78.6519 609.852 +-111.212 -66.9236 518.913 +-115.016 -66.3599 514.542 +-119.269 -66.0794 512.367 +-124.31 -66.2298 513.534 +-134.654 -69.0796 535.631 +-142.241 -70.3508 545.487 +-141.781 -67.6812 524.788 +-142.144 -65.5606 508.345 +-142.339 -63.4937 492.319 +-142.633 -61.5908 477.564 +-142.18 -59.4844 461.231 +-147.135 -59.6894 462.821 +-142.024 -55.91 433.516 +-144.247 -55.1428 427.567 +-144.52 -53.6856 416.268 +-144.305 -52.1236 404.157 +-144.606 -50.8187 394.039 +-144.741 -49.5172 383.947 +-144.566 -48.1714 373.513 +-144.621 -46.961 364.127 +-143.437 -45.4103 352.103 +-143.698 -44.3739 344.067 +-143.437 -43.2228 335.141 +-143.59 -42.2399 327.52 +-143.497 -41.2251 319.652 +-143.401 -40.2486 312.08 +-143.268 -39.2986 304.714 +-143.188 -38.3984 297.734 +-143.654 -37.6738 292.116 +-143.051 -36.6992 284.559 +-143.007 -35.8999 278.362 +-141.572 -34.786 269.724 +-142.766 -34.3442 266.298 +-145.152 -34.1948 265.14 +-148.061 -34.1657 264.915 +-404.674 -91.4882 709.383 +-109.3 -24.2149 187.758 +-108.918 -23.6512 183.387 +-110.218 -23.4629 181.927 +-111.24 -23.219 180.036 +-98.8299 -20.2303 156.862 +-98.7557 -19.8279 153.742 +-98.5797 -19.4165 150.552 +-99.0175 -19.1351 148.37 +-98.7535 -18.727 145.205 +-99.0645 -18.4369 142.956 +-99.2861 -18.1369 140.63 +-98.8937 -17.7339 137.505 +-99.1594 -17.4572 135.36 +-99.3354 -17.1711 133.141 +-99.4198 -16.8757 130.851 +-99.1672 -16.5306 128.175 +-99.3062 -16.258 126.062 +-99.7891 -16.0465 124.422 +-99.118 -15.6561 121.395 +-100.564 -15.6042 120.992 +-99.0536 -15.0993 117.077 +-102.093 -15.2898 118.554 +-100.246 -14.7505 114.373 +-104.826 -15.1553 117.512 +-101.641 -14.4389 111.957 +-109.513 -15.2868 118.531 +-103.937 -14.2565 110.542 +-112.89 -15.2162 117.984 +-108.992 -14.4364 111.937 +-117.753 -15.3269 118.842 +-112.784 -14.4261 111.858 +-125.746 -15.8058 122.555 +-118.691 -14.6608 113.678 +-165.53 -20.0924 155.793 +-128.791 -15.3619 119.113 +-165.298 -19.3741 150.223 +-164.309 -18.9236 146.73 +-166.718 -18.8665 146.287 +-165.13 -18.3609 142.367 +-168.354 -18.3918 142.607 +-166.155 -17.8333 138.276 +-2528.23 -266.577 2066.99 +-167.63 -17.3629 134.629 +-468.548 -47.6718 369.639 +-173.441 -17.3326 134.394 +-473.315 -46.455 360.204 +-142.157 -13.702 106.243 +-142.685 -13.5048 104.714 +-142.711 -13.2623 102.833 +-142.145 -12.9689 100.558 +-141.795 -12.6996 98.4705 +-142.739 -12.5481 97.2958 +-144.75 -12.4884 96.8331 +-147.681 -12.5029 96.9451 +-491.209 -40.8025 316.375 +-2763.37 -225.179 1746 +-496.447 -39.6794 307.667 +-497.857 -39.0235 302.581 +-499.471 -38.3873 297.648 +-2823.13 -212.707 1649.29 +-2837.53 -209.548 1624.79 +-2851.72 -206.373 1600.18 +-404.599 -28.6866 222.431 +-404.871 -28.1179 218.021 +-404.655 -27.5209 213.392 +-2906.29 -193.517 1500.49 +-405.764 -26.4449 205.049 +-403.794 -25.7512 199.67 +-386.661 -24.122 187.038 +-377.1 -23.0068 178.391 +-380.74 -22.7093 176.084 +-378.908 -22.0871 171.26 +-378.665 -21.5645 167.207 +-378.471 -21.0493 163.212 +-379.248 -20.591 159.659 +-380.269 -20.1474 156.219 +-380.053 -19.6406 152.29 +-382.122 -19.2532 149.286 +-379.874 -18.6517 144.622 +-381.132 -18.227 141.328 +-380.576 -17.7178 137.38 +-379.79 -17.2027 133.386 +-380.098 -16.7405 129.803 +-380.562 -16.2872 126.288 +-380.518 -15.8145 122.622 +-378.626 -15.2698 118.399 +-380.609 -14.884 115.408 +-381.323 -14.4477 112.025 +-380.467 -13.9545 108.201 +-379.67 -13.4678 104.427 +-380.188 -13.0303 101.034 +-379.998 -12.5702 97.467 +-380.55 -12.1363 94.1024 +-379.613 -11.6573 90.3885 +-380.686 -11.2418 87.1665 +-378.803 -10.7417 83.2888 +-380.402 -10.3424 80.1927 +-378.937 -9.86125 76.4623 +-380.086 -9.4501 73.2743 +-379.635 -8.99984 69.7831 +-379.643 -8.56243 66.3915 +-379.621 -8.12567 63.005 +-379.569 -7.68963 59.624 +-379.386 -7.25242 56.234 +-379.075 -6.81444 52.8379 +-379.525 -6.39104 49.555 +-379.351 -5.95783 46.1959 +-379.445 -5.52982 42.8772 +-379.51 -5.10206 39.5605 +-146.821 -1.80828 14.0211 +-380.646 -4.25966 33.0287 +-379.427 -3.81957 29.6162 +-380.172 -3.40037 26.3658 +-3270.39 -25.5852 198.383 +-380.178 -2.5485 19.7606 +-380.637 -2.12573 16.4825 +-379.369 -1.69452 13.139 +-146.95 -0.492197 3.8164 +-144.678 -0.323017 2.50462 +-145.694 -0.162632 1.26102 +95.9 3.55271e-15 -1.7053e-13 +95.8963 -0.0995534 0.830933 +95.8854 -0.1991 1.66181 +95.8671 -0.29863 2.49254 +95.9415 -0.398553 3.32656 +95.8087 -0.497615 4.1534 +95.7686 -0.597055 4.98338 +95.8209 -0.697175 5.81904 +95.6664 -0.795791 6.64215 +95.7041 -0.896004 7.47859 +95.6347 -0.99532 8.30754 +96.4539 -1.10482 9.2215 +96.4686 -1.20616 10.0673 +96.3765 -1.30625 10.9027 +96.277 -1.40624 11.7374 +96.1702 -1.50613 12.5711 +95.957 -1.60426 13.3901 +95.8356 -1.70381 14.221 +96.4972 -1.81811 15.1751 +95.4724 -1.90055 15.8632 +96.0188 -2.01405 16.8105 +95.8674 -2.11366 17.6418 +95.7087 -2.21309 18.4718 +95.7386 -2.3171 19.3399 +95.3694 -2.41146 20.1275 +95.1889 -2.51037 20.9531 +95.878 -2.63317 21.978 +95.6812 -2.7326 22.8079 +95.6712 -2.83758 23.6841 +95.4594 -2.93679 24.5122 +96.1096 -3.06348 25.5696 +95.6885 -3.15678 26.3484 +95.4533 -3.25599 27.1764 +96.0737 -3.38536 28.2562 +95.8217 -3.48496 29.0876 +95.5624 -3.5843 29.9167 +96.2469 -3.72013 31.0504 +96.8238 -3.85388 32.1668 +96.5374 -3.95424 33.0045 +96.0552 -4.04636 33.7734 +96.6004 -4.18255 34.91 +96.2899 -4.28266 35.7457 +95.8787 -4.3782 36.5431 +96.6704 -4.52988 37.8091 +96.2417 -4.62561 38.6081 +96.8226 -4.77086 39.8204 +96.4689 -4.87118 40.6578 +96.1079 -4.97115 41.4922 +96.5618 -5.11428 42.6868 +96.3649 -5.22418 43.6042 +96.7937 -5.36926 44.8151 +96.3961 -5.46955 45.6521 +96.8001 -5.61634 46.8774 +96.2054 -5.706 47.6257 +96.5851 -5.85426 48.8632 +96.152 -5.95429 49.6981 +96.5062 -6.10414 50.9488 +96.0547 -6.2041 51.7832 +96.3831 -6.35548 53.0466 +96.6965 -6.50802 54.3198 +96.9948 -6.66168 55.6024 +96.4163 -6.75607 56.3902 +96.6028 -6.90492 57.6326 +96.1778 -7.01115 58.5193 +96.3383 -7.16116 59.7713 +96.3996 -7.30564 60.9772 +96.531 -7.45727 62.2429 +95.9803 -7.55719 63.0768 +96.1684 -7.71641 64.4058 +96.3404 -7.87659 65.7427 +96.4961 -8.03771 67.0875 +96.5541 -8.19284 68.3824 +95.9494 -8.29275 69.2163 +95.9805 -8.44865 70.5175 +96.0759 -8.61239 71.8842 +96.0751 -8.76974 73.1975 +96.1373 -8.93506 74.5774 +96.1825 -9.10116 75.9637 +96.2107 -9.26805 77.3567 +96.1444 -9.42809 78.6925 +96.062 -9.58872 80.0332 +96.0393 -9.75761 81.4429 +96.0745 -9.93498 82.9233 +95.9412 -10.0974 84.2789 +95.8657 -10.2682 85.7049 +95.7723 -10.4397 87.136 +96.3193 -10.6848 89.1814 +96.0396 -10.8417 90.4909 +95.888 -11.0153 91.9405 +95.7182 -11.1895 93.3941 +95.5301 -11.3641 94.8518 +95.9545 -11.6156 96.9507 +95.7934 -11.8003 98.4926 +95.5436 -11.977 99.9671 +95.8208 -12.2236 102.025 +96.1365 -12.4805 104.17 +95.9533 -12.6771 105.81 +95.4173 -12.8297 107.084 +95.719 -13.0988 109.33 +95.9235 -13.3605 111.514 +95.5182 -13.5415 113.026 +95.4117 -13.7687 114.922 +95.0274 -13.9597 116.516 +95.6805 -14.3092 119.433 +95.4891 -14.5391 121.352 +95.0885 -14.7416 123.042 +95.0266 -15.0013 125.21 +94.8742 -15.2523 127.305 +95.3388 -15.6101 130.291 +95.2934 -15.8924 132.647 +95.1563 -16.1661 134.932 +94.9297 -16.431 137.143 +94.7832 -16.7163 139.524 +94.7124 -17.0224 142.079 +94.4404 -17.2995 144.392 +94.7259 -17.6879 147.634 +94.4316 -17.9772 150.049 +94.4677 -18.3383 153.062 +94.6125 -18.7314 156.344 +94.7574 -19.1364 159.724 +94.3 -19.4297 162.172 +94.2006 -19.8065 165.317 +94.15 -20.2052 168.645 +94.048 -20.6054 171.985 +94.2699 -21.0909 176.037 +94.3814 -21.5678 180.018 +94.4754 -22.0571 184.101 +93.5231 -22.314 186.246 +116.651 -28.4512 237.471 +116.884 -29.151 243.312 +116.938 -29.8318 248.994 +116.736 -30.4717 254.335 +117.344 -31.3525 261.687 +115.677 -31.6476 264.15 +112.648 -31.5695 263.498 +109.983 -31.5862 263.638 +107.325 -31.5999 263.752 +104.636 -31.5994 263.748 +101.992 -31.6069 263.81 +99.3538 -31.6113 263.847 +96.7233 -31.6126 263.858 +94.0668 -31.5997 263.75 +93.145 -32.1798 268.592 +92.9703 -33.0537 275.886 +92.736 -33.9522 283.385 +92.5572 -34.9208 291.47 +92.5356 -36.0052 300.521 +92.589 -37.1835 310.355 +92.2834 -38.2844 319.545 +92.3843 -39.6283 330.762 +91.9843 -40.8373 340.852 +91.8394 -42.2442 352.595 +91.7126 -43.7576 365.227 +91.5573 -45.3664 378.655 +91.5326 -47.1636 393.656 +91.3592 -49.0222 409.169 +90.9822 -50.9186 424.998 +90.7523 -53.0629 442.895 +90.6152 -55.4555 462.865 +90.5528 -58.1206 485.11 +90.8006 -61.2584 511.299 +90.4791 -64.3187 536.843 +90.4035 -67.8997 566.732 +94.938 -75.5678 630.734 +87.6095 -74.1557 618.948 +84.3982 -76.2605 636.516 +75.0471 -72.7086 606.87 +71.8501 -75.0176 626.142 +64.2118 -72.6759 606.597 +61.0633 -75.4396 629.664 +53.2609 -72.419 604.452 +49.8372 -75.3295 628.745 +42.398 -72.1268 602.014 +38.7719 -75.4096 629.414 +31.8935 -72.394 604.244 +27.7507 -75.6093 631.081 +21.341 -72.6988 606.788 +16.6983 -75.8576 633.153 +10.6896 -72.851 608.058 +5.57015 -75.9284 633.744 +3.10862e-14 -72.8978 608.449 +-5.59196 -76.2258 636.226 +-10.6303 -72.4466 604.683 +-16.8658 -76.6187 639.506 +-21.5644 -73.4597 613.139 +-28.1868 -76.7978 641.001 +-32.6158 -74.0334 617.927 +-39.6266 -77.0719 643.288 +-43.7303 -74.3934 620.932 +-51.4299 -77.7369 648.839 +-55.0301 -74.8246 624.531 +-63.4115 -78.3406 653.878 +-65.7902 -74.4623 621.507 +-75.0877 -78.3979 654.356 +-77.7405 -75.318 628.649 +-87.7658 -79.3035 661.914 +-89.3352 -75.6163 631.139 +-100.008 -79.6032 664.416 +-102.449 -76.9468 642.244 +-113.206 -80.4746 671.689 +-115.025 -77.601 647.705 +-127.966 -82.134 685.539 +-125.896 -77.0468 643.079 +-139.059 -81.3078 678.644 +-111.42 -62.3567 520.467 +-114.929 -61.6696 514.732 +-119.157 -61.3973 512.459 +-124.356 -61.6183 514.303 +-134.412 -64.1301 535.268 +-142.742 -65.6581 548.022 +-142.454 -63.2438 527.871 +-142.652 -61.1906 510.733 +-142.697 -59.1991 494.111 +-144.45 -58.0108 484.193 +-148.349 -57.7221 481.783 +-162.231 -61.2077 510.876 +-142.179 -52.054 434.474 +-144.183 -51.2614 427.858 +-144.52 -49.9288 416.736 +-144.371 -48.4984 404.797 +-144.606 -47.2625 394.481 +-144.811 -46.0743 384.564 +-144.601 -44.8117 374.025 +-144.621 -43.6748 364.536 +-143.474 -42.2435 352.589 +-143.506 -41.2138 343.995 +-143.203 -40.1324 334.969 +-143.111 -39.1532 326.796 +-143.131 -38.2424 319.194 +-143.525 -37.4646 312.702 +-142.972 -36.4732 304.427 +-143.575 -35.8079 298.875 +-143.479 -34.9946 292.086 +-143.274 -34.1843 285.322 +-143.098 -33.4089 278.851 +-141.988 -32.4467 270.819 +-142.813 -31.9514 266.686 +-145.056 -31.781 265.263 +-149.079 -31.9934 267.036 +-416.787 -87.6331 731.438 +-109.65 -22.5925 188.57 +-108.867 -21.9858 183.507 +-110.27 -21.8313 182.217 +-111.24 -21.5942 180.238 +-98.8299 -18.8146 157.038 +-98.8094 -18.4505 153.999 +-98.6886 -18.0778 150.888 +-98.9623 -17.7862 148.454 +-98.7535 -17.4165 145.368 +-98.9512 -17.1271 142.953 +-99.2287 -16.858 140.707 +-99.0099 -16.5123 137.821 +-98.9243 -16.1972 135.191 +-100.109 -16.0938 134.328 +-99.2995 -15.6758 130.839 +-101.054 -15.6665 130.762 +-100.23 -15.261 127.377 +-102.777 -15.3705 128.292 +-101.446 -14.9026 124.386 +-106.416 -15.3567 128.176 +-103.746 -14.708 122.762 +-110.926 -15.45 128.955 +-108.84 -14.8943 124.317 +-113.573 -15.2708 127.459 +-112.28 -14.8341 123.815 +-120.796 -15.6817 130.889 +-116.963 -14.9206 124.536 +-438.207 -54.9318 458.494 +-120.662 -14.8637 124.062 +-441.433 -53.4368 446.015 +-441.659 -52.5391 438.523 +-444.64 -51.9786 433.844 +-447.142 -51.3663 428.734 +-449.152 -50.7036 423.202 +-2396.28 -265.821 2218.7 +-452.836 -49.3616 412.002 +-2434.91 -260.806 2176.84 +-455.515 -47.941 400.144 +-477.958 -49.4251 412.532 +-457.46 -46.478 387.934 +-476.709 -47.5842 397.167 +-463.283 -45.4304 379.189 +-466.21 -44.9103 374.848 +-468 -44.284 369.621 +-470.206 -43.7012 364.756 +-382.634 -34.9269 291.521 +-141.838 -12.7145 106.123 +-141.961 -12.4961 104.3 +-142.63 -12.3273 102.891 +-143.04 -12.1373 101.306 +-141.631 -11.7973 98.4672 +-142.244 -11.6296 97.0675 +-144.667 -11.6079 96.8863 +-147.097 -11.582 96.6704 +-2747.9 -212.283 1771.84 +-2763.37 -209.422 1747.96 +-494.751 -36.7766 306.96 +-497.601 -36.274 302.765 +-2808.51 -200.745 1675.54 +-2823.13 -197.822 1651.14 +-2837.53 -194.884 1626.62 +-2851.72 -191.931 1601.97 +-405.036 -26.708 222.921 +-405.662 -26.2013 218.692 +-405.096 -25.623 213.865 +-403.767 -25.0037 208.696 +-404.695 -24.5295 204.738 +-405.674 -24.0607 200.825 +-385.673 -22.3767 186.769 +-380.259 -21.576 180.086 +-379.471 -21.0497 175.694 +-378.908 -20.5415 171.452 +-381.679 -20.2152 168.728 +-378.929 -19.6 163.593 +-378.972 -19.1361 159.722 +-378.236 -18.6374 155.559 +-379.404 -18.235 152.201 +-379.796 -17.7969 148.544 +-378.94 -17.3039 144.429 +-380.57 -16.9265 141.279 +-380.012 -16.4535 137.331 +-379.507 -15.987 133.437 +-380.382 -15.5807 130.046 +-379.804 -15.1174 126.179 +-380.328 -14.7004 122.699 +-379.865 -14.2478 118.921 +-380.992 -13.8564 115.654 +-380.747 -13.4164 111.981 +-380.083 -12.9649 108.213 +-380.538 -12.5539 104.783 +-380.188 -12.1184 101.148 +-380.192 -11.6965 97.626 +-380.55 -11.287 94.2081 +-379.613 -10.8415 90.49 +-378.933 -10.4069 86.8623 +-380.56 -10.0363 83.7691 +-379.815 -9.60377 80.1588 +-380.015 -9.19727 76.7659 +-379.595 -8.77745 73.2619 +-379.045 -8.35705 69.753 +-379.939 -7.96945 66.5178 +-379.621 -7.55705 63.0757 +-380.161 -7.16268 59.7841 +-379.584 -6.74843 56.3265 +-379.867 -6.35081 53.0077 +-380.616 -5.96089 49.7532 +-379.351 -5.54091 46.2478 +-379.147 -5.13881 42.8916 +-379.808 -4.74875 39.6359 +-145.826 -1.67034 13.9417 +-379.749 -3.95225 32.9879 +-379.526 -3.55322 29.6573 +-379.972 -3.16075 26.3815 +-378.992 -2.75747 23.0155 +-379.879 -2.3683 19.7672 +-380.038 -1.97385 16.475 +-380.668 -1.58134 13.1988 +-146.05 -0.454951 3.79729 +-143.778 -0.298545 2.49184 +-146.694 -0.152288 1.27109 +95 -1.77636e-15 -1.7053e-13 +95.8963 -0.0920531 0.831797 +95.8854 -0.1841 1.66353 +95.8671 -0.276131 2.49514 +95.9415 -0.368526 3.33002 +95.9086 -0.460605 4.16205 +95.8684 -0.552649 4.99376 +95.7211 -0.643979 5.81902 +96.664 -0.743509 6.71838 +96.701 -0.83713 7.56435 +96.6309 -0.929921 8.40281 +96.5534 -1.02264 9.24063 +96.4686 -1.11529 10.0778 +96.3765 -1.20784 10.9141 +96.277 -1.3003 11.7496 +96.1702 -1.39266 12.5842 +95.957 -1.4834 13.4041 +95.8356 -1.57544 14.2358 +95.707 -1.66738 15.0665 +95.4724 -1.75737 15.8797 +96.0188 -1.86231 16.828 +94.9824 -1.93637 17.4972 +95.7087 -2.04636 18.491 +95.5427 -2.13815 19.3204 +95.3694 -2.22978 20.1484 +95.1889 -2.32124 20.9748 +95.878 -2.43479 22.0009 +95.6812 -2.52672 22.8316 +95.6712 -2.6238 23.7088 +95.4594 -2.71553 24.5377 +95.9164 -2.82698 25.5447 +95.6885 -2.91895 26.3758 +96.3184 -3.03798 27.4513 +96.0737 -3.13031 28.2856 +95.8217 -3.22241 29.1178 +96.5162 -3.34734 30.2467 +96.2469 -3.43986 31.0827 +95.9704 -3.53211 31.9163 +96.5374 -3.65633 33.0388 +96.9035 -3.77455 34.1071 +96.6004 -3.86744 34.9464 +96.2899 -3.96001 35.7828 +96.999 -4.09564 37.0085 +96.5773 -4.18457 37.812 +97.0761 -4.3142 38.9833 +96.8226 -4.41142 39.8618 +96.4689 -4.50419 40.7001 +96.2913 -4.6054 41.6146 +96.5618 -4.72897 42.7312 +96.3649 -4.8306 43.6495 +96.7937 -4.96475 44.8617 +96.3961 -5.05747 45.6996 +96.6204 -5.18356 46.8389 +96.2054 -5.27611 47.6752 +96.5851 -5.4132 48.914 +96.152 -5.5057 49.7498 +96.5062 -5.64426 51.0018 +96.8456 -5.78392 52.2638 +96.3831 -5.87666 53.1018 +95.9132 -5.96896 53.9358 +96.9948 -6.15979 55.6602 +96.4163 -6.24707 56.4489 +96.6028 -6.38471 57.6926 +96.0925 -6.4772 58.5283 +96.3383 -6.62164 59.8335 +96.484 -6.76115 61.0941 +96.6148 -6.90143 62.3617 +95.9803 -6.98783 63.1424 +96.2513 -7.14121 64.5284 +96.4228 -7.2894 65.8674 +96.4142 -7.42584 67.1002 +96.4727 -7.56921 68.3957 +95.9494 -7.66798 69.2883 +95.9805 -7.81213 70.5908 +96.0759 -7.96354 71.959 +96.0751 -8.10903 73.2737 +96.1373 -8.2619 74.6549 +96.1825 -8.41548 76.0428 +96.133 -8.56287 77.3745 +95.45 -8.65483 78.2055 +96.062 -8.86631 80.1165 +96.1153 -9.02962 81.5921 +96.0745 -9.18648 83.0095 +95.3421 -9.27835 83.8397 +95.8657 -9.49464 85.794 +95.7723 -9.65318 87.2267 +96.2461 -9.87227 89.2064 +96.0396 -10.0249 90.5851 +95.888 -10.1854 92.0361 +95.7895 -10.3542 93.5609 +95.5301 -10.508 94.9504 +95.9545 -10.7405 97.0515 +95.7239 -10.9034 98.5235 +95.6125 -11.0827 100.144 +95.889 -11.3107 102.204 +96.204 -11.5483 104.351 +95.8864 -11.7138 105.847 +96.0136 -11.9372 107.865 +95.719 -12.1119 109.444 +95.9235 -12.3539 111.63 +95.454 -12.513 113.068 +95.3481 -12.7229 114.965 +95.5308 -12.9764 117.255 +95.6805 -13.2311 119.557 +95.0581 -13.3831 120.931 +95.0277 -13.6222 123.091 +95.0266 -13.8711 125.34 +94.9337 -14.1121 127.517 +94.8098 -14.3539 129.702 +94.8288 -14.6235 132.138 +95.1563 -14.9482 135.072 +94.9863 -15.2021 137.367 +94.7832 -15.4569 139.669 +94.9884 -15.7858 142.641 +94.9306 -16.0793 145.293 +94.6722 -16.3461 147.704 +94.4316 -16.6229 150.205 +94.6245 -16.9849 153.476 +94.664 -17.3296 156.591 +94.2499 -17.6 159.034 +94.35 -17.9755 162.427 +94.1514 -18.3047 165.402 +94.5379 -18.76 169.516 +94.4297 -19.1303 172.863 +94.2229 -19.4922 176.133 +94.012 -19.8648 179.499 +94.1122 -20.317 183.585 +93.7015 -20.6723 186.796 +117.089 -26.4066 238.611 +117.185 -27.0243 244.193 +116.938 -27.5843 249.253 +117.068 -28.2561 255.323 +117.344 -28.9904 261.959 +115.677 -29.2633 264.425 +112.648 -29.191 263.772 +109.983 -29.2065 263.912 +107.325 -29.2192 264.026 +104.636 -29.2187 264.022 +101.992 -29.2257 264.085 +99.0386 -29.137 263.284 +96.7233 -29.231 264.132 +94.0668 -29.219 264.024 +93.145 -29.7554 268.872 +92.7482 -30.4904 275.513 +92.736 -31.3943 283.68 +92.5272 -32.2794 291.678 +92.4772 -33.2716 300.644 +92.447 -34.3294 310.202 +92.1456 -35.3473 319.4 +92.2774 -36.6004 330.723 +92.0619 -37.7925 341.495 +91.9395 -39.1041 353.347 +91.6158 -40.4182 365.221 +91.604 -41.97 379.243 +91.4201 -43.5568 393.581 +91.2942 -45.2967 409.303 +91.0029 -47.0933 425.537 +90.8121 -49.0975 443.648 +90.4435 -51.1803 462.468 +90.4982 -53.7094 485.321 +90.436 -56.4158 509.776 +90.5451 -59.5163 537.793 +90.1845 -62.6321 565.947 +98.5889 -72.5617 655.671 +92.2022 -72.1634 652.072 +87.0349 -72.718 657.083 +81.0675 -72.6242 656.236 +74.5443 -71.9669 650.297 +67.5254 -70.6683 638.563 +63.5649 -72.6137 656.141 +57.1132 -71.8062 648.845 +52.1204 -72.8452 658.233 +45.7463 -71.9599 650.233 +40.2859 -72.4511 654.672 +34.3272 -72.0477 651.026 +29.1945 -73.5504 664.606 +23.0232 -72.5203 655.297 +17.5804 -73.8482 667.296 +11.5168 -72.5754 655.795 +5.83805 -73.5848 664.916 +3.4639e-14 -72.5535 655.598 +-5.8686 -73.9696 668.393 +-11.5465 -72.7624 657.485 +-17.5386 -73.6722 665.706 +-23.2291 -73.169 661.159 +-29.4518 -74.1987 670.464 +-35.0128 -73.4866 664.029 +-41.4092 -74.4713 672.927 +-47.0926 -74.0775 669.368 +-54.1839 -75.7292 684.293 +-59.0742 -74.2718 671.124 +-66.2198 -75.6465 683.546 +-71.0794 -74.3877 672.171 +-79.0045 -76.2729 689.206 +-83.2977 -74.622 674.288 +-90.9898 -76.0224 686.942 +-96.2382 -75.3221 680.615 +-104.339 -76.7935 693.91 +-109.895 -76.321 689.641 +-116.606 -76.6466 692.583 +-122.005 -76.1093 687.727 +-133.378 -79.1582 715.277 +-136.867 -77.4507 699.848 +-141.551 -76.5296 691.525 +-111.358 -57.6266 520.717 +-114.908 -57.0128 515.171 +-119.247 -56.8146 513.38 +-124.123 -56.8691 513.872 +-133.783 -59.0211 533.318 +-143.142 -60.8818 550.131 +-142.972 -58.6915 530.339 +-143.614 -56.9621 514.713 +-144.765 -55.5322 501.792 +-930.633 -345.582 3122.7 +-159.43 -57.3601 518.309 +-160.908 -56.1348 507.237 +-141.839 -48.0172 433.886 +-144.183 -47.3994 428.303 +-144.52 -46.1672 417.169 +-144.639 -44.9276 405.969 +-144.64 -43.7121 394.985 +-144.811 -42.6031 384.964 +-144.601 -41.4356 374.414 +-144.585 -40.3741 364.823 +-143.437 -39.0508 352.865 +-143.047 -37.9868 343.25 +-143.086 -37.0785 335.044 +-143.111 -36.2034 327.136 +-143.619 -35.4818 320.616 +-143.94 -34.7421 313.931 +-144.197 -34.0144 307.356 +-144.867 -33.4081 301.877 +-145.495 -32.813 296.5 +-143.586 -31.6778 286.242 +-143.461 -30.9703 279.85 +-141.434 -29.885 270.042 +-142.813 -29.5442 266.963 +-144.865 -29.348 265.19 +-148.691 -29.5061 266.618 +-1613.33 -313.66 2834.25 +-109.15 -20.7951 187.906 +-108.918 -20.339 183.784 +-109.755 -20.0921 181.554 +-111.135 -19.9486 180.257 +-98.777 -17.3878 157.117 +-98.8631 -17.0697 154.242 +-99.1243 -16.7896 151.712 +-98.9623 -16.4462 148.609 +-98.6975 -16.0952 145.437 +-99.1777 -15.8729 143.428 +-99.2861 -15.5969 140.935 +-99.939 -15.4115 139.259 +-99.9823 -15.137 136.779 +-100.941 -15.0051 135.587 +-101.225 -14.7758 133.515 +-102.089 -14.6345 132.238 +-102.877 -14.484 130.878 +-106.886 -14.7806 133.559 +-107.236 -14.5664 131.622 +-110.487 -14.7429 133.218 +-110.881 -14.5352 131.341 +-113.783 -14.654 132.415 +-115.073 -14.5609 131.573 +-119.139 -14.8123 133.845 +-121.983 -14.9017 134.653 +-2213.57 -265.717 2401.03 +-436.615 -51.5017 465.372 +-438.069 -50.7774 458.827 +-440.413 -50.165 453.294 +-441.222 -49.3873 446.267 +-441.305 -48.5419 438.627 +-443.642 -47.9546 433.321 +-446.638 -47.4428 428.696 +-448.572 -46.823 423.095 +-450.441 -46.2032 417.494 +-453.204 -45.6798 412.765 +-454.433 -45.0075 406.69 +-455.515 -44.3292 400.561 +-477.958 -45.7015 412.961 +-456.244 -42.8621 387.304 +-475.943 -43.9285 396.941 +-462.82 -41.9658 379.205 +-2546.32 -226.809 2049.46 +-381.991 -33.4223 302.005 +-383.21 -32.9324 297.579 +-380.254 -32.0946 290.008 +-141.758 -11.75 106.174 +-142.604 -11.607 104.882 +-142.63 -11.3986 102.998 +-142.063 -11.1463 100.718 +-142.205 -10.9526 98.9687 +-142.244 -10.7534 97.1685 +-144.501 -10.721 96.8759 +-147.348 -10.7276 96.9355 +-2747.9 -196.289 1773.68 +-2763.37 -193.644 1749.78 +-495.939 -34.0875 308.017 +-497.857 -33.5584 303.236 +-500.5 -33.0793 298.906 +-2823.13 -182.918 1652.86 +-402.875 -25.5851 231.189 +-404.889 -25.1974 227.685 +-404.861 -24.6851 223.056 +-403.816 -24.1171 217.924 +-405.45 -23.7131 214.273 +-404.033 -23.1351 209.05 +-2919.38 -163.619 1478.47 +-404.063 -22.1596 200.236 +-386.841 -20.7535 187.53 +-377.1 -19.7848 178.777 +-380.015 -19.4918 176.129 +-379.454 -19.0213 171.878 +-379.304 -18.5758 167.852 +-379.021 -18.1277 163.803 +-378.972 -17.6944 159.888 +-378.606 -17.2501 155.872 +-379.125 -16.8489 152.248 +-377.75 -16.3673 147.896 +-379.314 -16.016 144.721 +-379.914 -15.6243 141.182 +-380.576 -15.2365 137.677 +-379.79 -14.7935 133.675 +-380.382 -14.4069 130.181 +-380.562 -14.0063 126.561 +-379.662 -13.5691 122.611 +-380.247 -13.1876 119.164 +-380.036 -12.7804 115.484 +-380.843 -12.4088 112.126 +-381.717 -12.0398 108.792 +-379.67 -11.5817 104.653 +-380.575 -11.2169 101.356 +-380.288 -10.8181 97.7525 +-379.677 -10.4127 94.0896 +-380.488 -10.0479 90.7929 +-379.809 -9.64512 87.1538 +-378.803 -9.23733 83.469 +-379.717 -8.87794 80.2215 +-380.799 -8.52189 77.0043 +-380.086 -8.12666 73.4329 +-378.16 -7.7094 69.6625 +-379.053 -7.35184 66.4316 +-380.41 -7.00224 63.2726 +-380.161 -6.62305 59.8462 +-378.595 -6.22374 56.2381 +-378.976 -5.85857 52.9383 +-379.426 -5.49458 49.6493 +-379.053 -5.11944 46.2595 +-379.445 -4.75539 42.97 +-379.808 -4.39098 39.6772 +-147.518 -1.56242 14.1181 +-380.646 -3.66312 33.1001 +-379.526 -3.28552 29.6882 +-380.371 -2.92569 26.4367 +-380.389 -2.55913 23.1244 +-380.777 -2.19505 19.8346 +-380.937 -1.82947 16.5312 +-378.869 -1.45529 13.1501 +-147.449 -0.424707 3.83767 +-144.978 -0.278357 2.51524 +-146.094 -0.14024 1.26721 +95.9 3.55271e-15 -1.7053e-13 +95.8963 -0.0845453 0.832593 +95.8854 -0.169085 1.66513 +95.8671 -0.25361 2.49753 +95.9415 -0.338469 3.33321 +95.8087 -0.422598 4.1617 +95.7686 -0.507047 4.99334 +95.7211 -0.591456 5.8246 +96.7637 -0.683574 6.73176 +96.701 -0.768854 7.57159 +96.6309 -0.854077 8.41086 +96.5534 -0.939234 9.24948 +96.4686 -1.02432 10.0874 +96.4758 -1.11047 10.9358 +96.1777 -1.19301 11.7487 +96.1702 -1.27908 12.5962 +96.9472 -1.37647 13.5553 +95.8356 -1.44695 14.2494 +96.4972 -1.54403 15.2054 +95.4724 -1.61404 15.8949 +96.0188 -1.71042 16.8441 +95.8674 -1.79501 17.6771 +95.7087 -1.87946 18.5087 +95.5427 -1.96377 19.339 +95.3694 -2.04792 20.1677 +95.1889 -2.13192 20.9949 +95.878 -2.23621 22.022 +95.8757 -2.32536 22.8999 +95.6712 -2.4098 23.7315 +96.3307 -2.51682 24.7853 +95.9164 -2.59641 25.5692 +95.6885 -2.68088 26.401 +96.3184 -2.7902 27.4776 +96.0737 -2.875 28.3127 +95.8217 -2.95959 29.1457 +95.5624 -3.04396 29.9765 +96.2469 -3.15931 31.1125 +95.9704 -3.24404 31.9469 +96.5374 -3.35812 33.0704 +96.9035 -3.4667 34.1397 +96.6004 -3.55201 34.9798 +96.2899 -3.63703 35.8171 +96.999 -3.76161 37.0439 +96.5773 -3.84328 37.8482 +97.1689 -3.96612 39.0579 +96.8226 -4.05163 39.9 +96.4689 -4.13683 40.7391 +96.1079 -4.22173 41.5751 +96.7445 -4.35149 42.853 +96.3649 -4.43662 43.6913 +96.6124 -4.55129 44.8206 +96.3961 -4.64499 45.7434 +96.6204 -4.7608 46.8838 +96.2054 -4.8458 47.7209 +96.5851 -4.97171 48.9608 +96.3294 -5.06599 49.8893 +96.5062 -5.18392 51.0507 +96.0547 -5.26881 51.8867 +96.3831 -5.39736 53.1527 +96.6965 -5.52691 54.4284 +96.2154 -5.61194 55.2658 +96.4163 -5.73757 56.5029 +96.6028 -5.86398 57.7478 +96.8599 -5.99642 59.0521 +96.3383 -6.08159 59.8908 +96.3996 -6.20428 61.0991 +95.86 -6.28903 61.9337 +96.0636 -6.42349 63.2578 +96.2513 -6.55878 64.5901 +96.4228 -6.69488 65.9305 +96.4142 -6.82019 67.1645 +95.8214 -6.90493 67.999 +95.9494 -7.04259 69.3546 +95.9805 -7.17498 70.6584 +96.0759 -7.31404 72.0279 +96.0751 -7.44767 73.3438 +96.1373 -7.58806 74.7264 +96.1825 -7.72912 76.1156 +96.2107 -7.87085 77.5113 +96.1444 -8.00677 78.8498 +96.1386 -8.14967 80.2571 +96.1153 -8.29317 81.6702 +96.0745 -8.43724 83.089 +95.9412 -8.57517 84.4473 +95.8657 -8.72026 85.8762 +96.3621 -8.92047 87.8478 +96.3193 -9.07399 89.3597 +96.1121 -9.21419 90.7404 +95.9599 -9.36173 92.1933 +95.7895 -9.5097 93.6505 +95.5301 -9.65093 95.0414 +95.9545 -9.86449 97.1444 +95.7934 -10.0214 98.6895 +95.6125 -10.1788 100.24 +95.889 -10.3882 102.302 +95.5285 -10.532 103.718 +95.9533 -10.7659 106.022 +96.0136 -10.9636 107.969 +95.6534 -11.1165 109.474 +95.274 -11.2695 110.981 +95.5182 -11.5001 113.252 +95.4117 -11.693 115.152 +95.5938 -11.9258 117.444 +95.6182 -12.1441 119.594 +95.5507 -12.3553 121.673 +94.9059 -12.4952 123.051 +95.0266 -12.7398 125.46 +94.9337 -12.9611 127.64 +94.8685 -13.1913 129.907 +94.7707 -13.4226 132.184 +95.2137 -13.7373 135.283 +94.9863 -13.9623 137.499 +94.7273 -14.1879 139.72 +94.9884 -14.4983 142.778 +94.985 -14.7763 145.516 +94.6185 -15.0043 147.761 +94.8555 -15.3357 151.024 +94.5722 -15.591 153.538 +94.664 -15.9162 156.741 +94.7574 -16.2515 160.043 +94.35 -16.5094 162.583 +94.6438 -16.8997 166.426 +94.15 -17.1592 168.982 +94.4297 -17.5701 173.028 +94.2229 -17.9024 176.301 +94.012 -18.2446 179.671 +94.1122 -18.6599 183.761 +93.7462 -18.9953 187.064 +117.089 -24.2529 238.84 +116.755 -24.729 243.529 +116.558 -25.2522 248.681 +117.109 -25.9607 255.658 +116.977 -26.5429 261.392 +115.677 -26.8766 264.678 +112.648 -26.8102 264.024 +109.983 -26.8245 264.165 +107.325 -26.8361 264.279 +104.636 -26.8357 264.275 +101.992 -26.8421 264.338 +99.3538 -26.8458 264.374 +96.7233 -26.8469 264.385 +94.0668 -26.8359 264.277 +93.2753 -27.3668 269.505 +93.0655 -28.0994 276.72 +92.6742 -28.8146 283.763 +92.5873 -29.6659 292.147 +92.7403 -30.6449 301.788 +92.3902 -31.5101 310.308 +92.2007 -32.4838 319.897 +92.2774 -33.6153 331.04 +92.0878 -34.7199 341.918 +91.9395 -35.9148 353.685 +91.7126 -37.161 365.957 +91.4172 -38.4683 378.832 +91.4651 -40.024 394.152 +91.2942 -41.6023 409.695 +91.1277 -43.3117 426.529 +90.832 -45.103 444.17 +90.5007 -47.0358 463.204 +90.407 -49.2793 485.297 +90.1929 -51.6752 508.892 +90.6276 -54.712 538.798 +90.3253 -57.6137 567.373 +98.781 -66.7734 657.577 +92.7032 -66.6379 656.243 +87.5048 -67.1478 661.264 +82.5787 -67.9443 669.108 +74.9179 -66.4286 654.182 +69.0724 -66.3916 653.818 +63.862 -67.003 659.839 +58.098 -67.087 660.666 +52.3558 -67.2062 661.84 +46.5136 -67.1994 661.773 +40.4141 -66.7538 657.384 +34.9657 -67.4023 663.771 +29.3777 -67.9756 669.417 +23.4734 -67.908 668.751 +17.7087 -68.32 672.808 +11.6792 -67.5957 665.675 +5.86074 -67.8458 668.138 +3.4639e-14 -68.1111 670.751 +-5.87819 -68.0478 670.128 +-11.7036 -67.7371 667.068 +-17.6302 -68.017 669.824 +-23.5083 -68.009 669.746 +-29.6263 -68.5509 675.082 +-35.7036 -68.8248 677.78 +-41.6717 -68.8311 677.841 +-47.8948 -69.1948 681.423 +-54.7331 -70.2579 691.892 +-61.0962 -70.549 694.759 +-66.4115 -69.678 686.181 +-72.8668 -70.0387 689.734 +-79.5026 -70.4939 694.216 +-85.857 -70.6417 695.672 +-91.538 -70.2427 691.743 +-97.9639 -70.4195 693.484 +-104.708 -70.7801 697.035 +-111.194 -70.9245 698.457 +-117.827 -71.1326 700.507 +-124.454 -71.3047 702.201 +-134.235 -73.169 720.561 +-139.176 -72.3338 712.336 +-141.731 -70.3769 693.064 +-111.42 -52.9562 521.507 +-114.735 -52.284 514.887 +-119.269 -52.1906 513.968 +-124.146 -52.2407 514.46 +-134.218 -54.3838 535.566 +-143.192 -55.936 550.851 +-142.868 -53.8656 530.463 +-143.828 -52.3942 515.973 +-903.181 -318.206 3133.66 +-930.633 -317.396 3125.69 +-159.255 -52.6238 518.234 +-157.089 -50.3329 495.673 +-142.148 -44.197 435.248 +-144.183 -43.5335 428.713 +-144.487 -42.3922 417.474 +-144.338 -41.1776 405.513 +-144.606 -40.1375 395.269 +-144.426 -39.0244 384.308 +-144.601 -38.0561 374.773 +-144.328 -37.0154 364.523 +-143.399 -35.8564 353.11 +-143.085 -34.898 343.672 +-143.047 -34.0451 335.273 +-143.47 -33.334 328.27 +-143.537 -32.5695 320.741 +-143.774 -31.8718 313.87 +-144.324 -31.2677 307.921 +-145.211 -30.7563 302.884 +-145.758 -30.1912 297.32 +-143.586 -29.0942 286.517 +-143.143 -28.3814 279.497 +-141.48 -27.4566 270.39 +-142.813 -27.1346 267.219 +-145.152 -27.0076 265.968 +-148.303 -27.0288 266.177 +-1613.33 -288.078 2836.96 +-109.55 -19.1691 188.775 +-108.918 -18.6801 183.96 +-110.218 -18.5314 182.496 +-111.135 -18.3216 180.429 +-98.8299 -15.9782 157.352 +-98.8631 -15.6775 154.39 +-98.5797 -15.3355 151.022 +-99.0175 -15.1132 148.834 +-99.2008 -14.8579 146.319 +-99.2344 -14.5867 143.648 +-99.2287 -14.3166 140.988 +-100.055 -14.171 139.554 +-100.629 -13.9924 137.795 +-100.822 -13.7651 135.557 +-101.947 -13.6676 134.597 +-102.455 -13.489 132.838 +-104.662 -13.5335 133.277 +-107.197 -13.6146 134.076 +-108.935 -13.5903 133.836 +-110.932 -13.595 133.883 +-112.488 -13.5432 133.372 +-114.757 -13.5741 133.677 +-117.303 -13.6325 134.252 +-120.067 -13.7102 135.017 +-127.202 -14.272 140.549 +-2213.57 -244.045 2403.33 +-436.752 -47.316 465.963 +-438.069 -46.636 459.266 +-440.969 -46.1318 454.301 +-441.713 -45.4097 447.19 +-441.305 -44.5829 439.047 +-443.856 -44.0647 433.944 +-446.638 -43.5734 429.106 +-449.224 -43.0668 424.117 +-450.66 -42.4555 418.097 +-453.204 -41.9542 413.16 +-454.805 -41.3706 407.413 +-455.515 -40.7137 400.944 +-477.958 -41.9741 413.356 +-456.244 -39.3663 387.675 +-476.173 -40.3653 397.513 +-462.589 -38.5238 379.378 +-2546.32 -208.311 2051.42 +-380.348 -30.5643 300.994 +-381.24 -30.091 296.333 +-382.158 -29.6246 291.74 +-141.758 -10.7917 106.275 +-142.685 -10.6663 105.041 +-142.63 -10.4689 103.097 +-142.063 -10.2372 100.815 +-142.369 -10.0709 99.1776 +-142.327 -9.88211 97.3179 +-144.584 -9.85229 97.0243 +-147.598 -9.86942 97.193 +-490.455 -32.177 316.875 +-493.215 -31.7434 312.605 +-495.515 -31.2806 308.048 +-497.857 -30.8214 303.526 +-500.071 -30.3553 298.936 +-2823.13 -168 1654.44 +-2837.53 -165.504 1629.87 +-2851.72 -162.997 1605.18 +-405.561 -22.711 223.656 +-2879.44 -157.944 1555.41 +-405.626 -21.7886 214.572 +-405.63 -21.3322 210.078 +-404.517 -20.8225 205.058 +-406.032 -20.4515 201.404 +-387.65 -19.1007 188.102 +-380.169 -18.319 180.403 +-379.018 -17.8551 175.835 +-378.908 -17.4448 171.795 +-379.487 -17.069 168.094 +-380.121 -16.6975 164.435 +-379.892 -16.2908 160.43 +-380.638 -15.9282 156.859 +-379.404 -15.486 152.505 +-378.866 -15.0769 148.475 +-378.847 -14.6917 144.682 +-381.226 -14.3995 141.805 +-380.012 -13.9731 137.605 +-379.507 -13.5769 133.703 +-379.248 -13.1924 129.917 +-380.088 -12.848 126.525 +-379.757 -12.4655 122.759 +-380.438 -12.1182 119.338 +-379.557 -11.7231 115.448 +-380.364 -11.3824 112.093 +-380.083 -11.0104 108.429 +-380.538 -10.6614 104.992 +-379.319 -10.268 101.118 +-379.708 -9.92056 97.6966 +-380.55 -9.58544 94.3964 +-379.905 -9.2142 90.7405 +-378.64 -8.83121 86.9688 +-380.267 -8.51673 83.8719 +-380.108 -8.16227 80.3811 +-380.015 -7.81074 76.9193 +-379.89 -7.46 73.4653 +-379.045 -7.09719 69.8924 +-379.545 -6.761 66.5816 +-380.114 -6.42613 63.2839 +-379.371 -6.07024 59.7791 +-378.595 -5.71614 56.2919 +-379.075 -5.38216 53.0029 +-379.525 -5.04776 49.7098 +-380.741 -4.72283 46.5099 +-379.743 -4.37098 43.0449 +-378.217 -4.01597 39.5488 +-146.323 -1.42337 14.0172 +-378.853 -3.34851 32.9757 +-379.526 -3.01756 29.7166 +-380.97 -2.69131 26.5037 +-380.888 -2.35349 23.1769 +-380.378 -2.01391 19.8328 +-380.038 -1.67629 16.5079 +-381.068 -1.34436 13.2391 +-147.749 -0.390861 3.84916 +-143.778 -0.253539 2.49682 +-146.694 -0.12933 1.27363 +95.9 3.55271e-15 -1.7053e-13 +95.8963 -0.0770307 0.833322 +95.8854 -0.154056 1.66658 +95.8671 -0.231069 2.49971 +95.8416 -0.308064 3.33265 +95.9086 -0.385437 4.16968 +95.8684 -0.46246 5.00292 +95.7211 -0.538886 5.8297 +95.6664 -0.615753 6.66125 +95.7041 -0.693294 7.50009 +96.6309 -0.778164 8.41822 +96.4539 -0.854869 9.24802 +96.4686 -0.933278 10.0963 +95.4823 -1.00135 10.8326 +96.277 -1.0881 11.7711 +96.1702 -1.16539 12.6073 +95.957 -1.24132 13.4286 +95.8356 -1.31834 14.2619 +95.707 -1.39527 15.0941 +95.4724 -1.47058 15.9088 +96.2157 -1.56159 16.8934 +95.8674 -1.63547 17.6926 +95.7087 -1.71241 18.5249 +95.7386 -1.79288 19.3955 +95.3694 -1.86589 20.1853 +96.0675 -1.96036 21.2073 +95.878 -2.03745 22.0412 +95.6812 -2.11438 22.8735 +95.4771 -2.19115 23.704 +95.4594 -2.27238 24.5827 +95.9164 -2.36564 25.5916 +95.6885 -2.4426 26.4241 +95.4533 -2.51936 27.2546 +96.0737 -2.61946 28.3375 +95.8217 -2.69653 29.1712 +96.5162 -2.80108 30.3022 +96.0567 -2.87281 31.0782 +95.9704 -2.95569 31.9749 +96.5374 -3.05964 33.0994 +96.0552 -3.13092 33.8705 +96.6004 -3.2363 35.0104 +96.2899 -3.31376 35.8485 +96.999 -3.42726 37.0763 +96.6704 -3.50505 37.9178 +97.0761 -3.61015 39.0548 +96.8226 -3.69151 39.9349 +96.4689 -3.76914 40.7748 +96.1079 -3.84648 41.6115 +96.5618 -3.95723 42.8096 +96.3649 -4.04227 43.7296 +96.7937 -4.15453 44.944 +96.3961 -4.23213 45.7834 +96.6204 -4.33764 46.9248 +96.3844 -4.4233 47.8515 +96.5851 -4.5298 49.0037 +96.152 -4.6072 49.841 +96.5062 -4.72315 51.0954 +96.0547 -4.8005 51.9321 +95.5959 -4.87747 52.7647 +96.6095 -5.03112 54.427 +96.2154 -5.11313 55.3142 +96.4163 -5.22759 56.5524 +96.6028 -5.34277 57.7984 +96.8599 -5.46344 59.1038 +96.3383 -5.54103 59.9432 +96.484 -5.65778 61.2062 +95.86 -5.73004 61.9879 +95.9803 -5.84746 63.2582 +96.2513 -5.97581 64.6467 +96.3404 -6.09461 65.9318 +96.4961 -6.21927 67.2805 +95.9028 -6.29655 68.1164 +95.9494 -6.41662 69.4154 +96.0609 -6.54272 70.7795 +96.1557 -6.66949 72.1509 +96.1544 -6.7913 73.4687 +96.2161 -6.91928 74.8532 +96.1825 -7.04213 76.1822 +96.2107 -7.17126 77.5792 +96.2216 -7.30097 78.9823 +96.1386 -7.4253 80.3273 +96.1914 -7.56202 81.8064 +96.0745 -7.68731 83.1618 +95.9412 -7.81298 84.5213 +95.94 -7.95134 86.0181 +95.7723 -8.07785 87.3866 +96.3193 -8.26746 89.4379 +96.1121 -8.3952 90.8198 +95.888 -8.52324 92.2049 +95.7895 -8.66445 93.7325 +95.5301 -8.79313 95.1246 +95.9545 -8.9877 97.2295 +95.7934 -9.13065 98.7759 +96.1631 -9.32744 100.905 +95.8208 -9.45815 102.319 +95.596 -9.60266 103.882 +95.8195 -9.79531 105.966 +95.4173 -9.92712 107.392 +95.719 -10.1353 109.645 +95.339 -10.2749 111.154 +95.454 -10.4709 113.275 +95.4753 -10.6608 115.329 +95.5938 -10.8658 117.547 +95.1202 -11.0071 119.075 +95.0581 -11.1991 121.152 +94.9668 -11.3918 123.238 +95.0868 -11.6147 125.648 +94.9337 -11.8091 127.751 +94.9861 -12.0338 130.182 +94.7707 -12.2295 132.3 +95.1563 -12.5087 135.32 +95.043 -12.7288 137.701 +94.7832 -12.9344 139.925 +94.6572 -13.1635 142.404 +94.4949 -13.3935 144.891 +94.5647 -13.663 147.807 +94.6966 -13.9491 150.903 +94.4677 -14.1895 153.503 +94.664 -14.5015 156.878 +94.1991 -14.7197 159.239 +94.3 -15.034 162.639 +94.2499 -15.3335 165.879 +94.15 -15.634 169.13 +94.382 -16.0003 173.092 +94.2229 -16.3112 176.456 +94.012 -16.623 179.828 +94.5208 -17.0752 184.72 +93.3446 -17.2328 186.425 +116.694 -22.0227 238.243 +117.185 -22.6141 244.641 +116.938 -23.0827 249.71 +117.192 -23.67 256.063 +117.059 -24.2004 261.802 +115.677 -24.4877 264.91 +112.648 -24.4272 264.255 +109.983 -24.4402 264.396 +107.325 -24.4508 264.51 +104.636 -24.4504 264.506 +101.992 -24.4562 264.569 +99.3538 -24.4596 264.606 +96.7233 -24.4607 264.617 +94.0668 -24.4506 264.508 +93.1776 -24.9082 269.458 +93.002 -25.5844 276.774 +92.9214 -26.3235 284.769 +92.4971 -27.0028 292.118 +92.5064 -27.8507 301.291 +92.3618 -28.7006 310.484 +92.2007 -29.5965 320.177 +92.2774 -30.6274 331.329 +92.1396 -31.6517 342.41 +92.0147 -32.7493 354.284 +91.761 -33.8758 366.471 +91.3939 -35.0402 379.067 +91.3976 -36.4397 394.206 +91.2077 -37.8686 409.664 +90.9198 -39.372 425.928 +90.6127 -40.9949 443.485 +90.5198 -42.8642 463.707 +90.5164 -44.9535 486.31 +90.1755 -47.0731 509.24 +90.182 -49.6039 536.618 +90.2314 -52.4383 567.281 +99.0766 -61.0204 660.123 +92.9259 -60.8607 658.395 +89.1233 -62.3111 674.085 +83.8095 -62.8279 679.676 +82.4233 -66.5876 720.349 +70.4208 -61.6714 667.165 +67.0633 -64.1078 693.522 +58.9434 -62.0135 670.866 +257.056 -300.639 3252.33 +47.4344 -62.4386 675.464 +43.6009 -65.6164 709.842 +35.6827 -62.6707 677.976 +142.91 -301.282 3259.28 +114.341 -301.385 3260.4 +85.7635 -301.466 3261.28 +11.9532 -63.0325 681.889 +6.34855 -66.9606 724.384 +3.10862e-14 -63.6403 688.465 +-6.33634 -66.8317 722.99 +-12.016 -63.3637 685.473 +-18.8762 -66.3513 717.793 +-24.1854 -63.7488 689.638 +-31.816 -67.0742 725.612 +-36.5933 -64.2701 695.278 +-44.5288 -67.0129 724.949 +-49.1155 -64.6515 699.403 +-57.6517 -67.4266 729.425 +-62.2292 -65.4705 708.263 +-71.1463 -68.0109 735.746 +-75.2709 -65.9189 713.115 +-84.6534 -68.3892 739.839 +-88.9646 -66.6925 721.483 +-98.717 -69.0186 746.647 +-101.499 -66.4756 719.137 +-115.572 -71.18 770.029 +-115.198 -66.9479 724.246 +-127.813 -70.3026 760.538 +-128.031 -66.8342 723.017 +-140.686 -69.8693 755.851 +-140.683 -66.6184 720.682 +-142.887 -64.6447 699.331 +-111.378 -48.2313 521.77 +-114.908 -47.7087 516.116 +-119.269 -47.5518 514.418 +-124.123 -47.5884 514.814 +-133.541 -49.2999 533.329 +-144.094 -51.285 554.804 +-143.386 -49.2557 532.851 +-875.553 -290.601 3143.74 +-903.181 -289.922 3136.4 +-930.519 -289.15 3128.04 +-158.962 -47.8585 517.736 +-163.193 -47.6411 515.385 +-142.148 -40.2687 435.629 +-144.215 -39.6729 429.183 +-144.52 -38.633 417.934 +-144.405 -37.535 406.056 +-144.606 -36.5699 395.615 +-144.391 -35.5471 384.551 +-144.566 -34.6649 375.007 +-144.621 -33.7939 365.584 +-143.399 -32.6694 353.419 +-143.124 -31.8046 344.064 +-143.164 -31.0445 335.841 +-144.467 -30.5822 330.841 +-144.066 -29.7839 322.204 +-145.474 -29.3822 317.859 +-144.789 -28.5803 309.183 +-147.149 -28.3964 307.194 +-146.504 -27.6484 299.102 +-143.274 -26.4505 286.143 +-143.098 -25.8505 279.653 +-141.48 -25.0162 270.626 +-142.813 -24.7228 267.453 +-144.913 -24.5667 265.764 +-148.4 -24.6425 266.584 +-430.772 -70.0823 758.155 +-109.55 -17.4653 188.94 +-108.918 -17.0198 184.121 +-110.167 -16.8764 182.57 +-111.24 -16.7088 180.756 +-98.777 -14.5502 157.405 +-98.9706 -14.2996 154.693 +-99.0698 -14.0419 151.906 +-99.735 -13.8697 150.043 +-99.8159 -13.6212 147.355 +-100.027 -13.3964 144.923 +-100.376 -13.1949 142.743 +-100.636 -12.9863 140.487 +-100.923 -12.7859 138.318 +-103.797 -12.9115 139.678 +-103.572 -12.6512 136.862 +-109.394 -13.1226 141.961 +-107.187 -12.628 136.611 +-113.235 -13.1032 141.752 +-111.579 -12.6828 137.203 +-117.102 -13.0756 141.453 +-114.609 -12.5721 136.006 +-119.888 -12.9205 139.775 +-119.337 -12.6362 136.699 +-431.299 -44.8718 485.425 +-159.186 -16.2731 176.043 +-434.945 -43.6903 472.644 +-436.82 -43.1171 466.443 +-438.964 -42.5776 460.607 +-440.483 -41.985 454.197 +-441.292 -41.3342 447.156 +-441.517 -40.6397 439.643 +-442.929 -40.0642 433.417 +-446.278 -39.6685 429.136 +-447.556 -39.0931 422.912 +-450.66 -38.6819 418.463 +-452.172 -38.1381 412.58 +-453.913 -37.6195 406.97 +-455.065 -37.0583 400.899 +-477.203 -38.1829 413.065 +-2491.47 -195.866 2118.89 +-475.943 -36.7597 397.669 +-382.494 -29.0223 313.965 +-382.978 -28.546 308.812 +-381.913 -27.9623 302.497 +-381.24 -27.4164 296.593 +-380.175 -26.8514 290.48 +-141.678 -9.82697 106.309 +-142.685 -9.71827 105.133 +-142.63 -9.53841 103.187 +-142.877 -9.38064 101.48 +-142.369 -9.17581 99.2644 +-142.574 -9.01939 97.5723 +-144.501 -8.97144 97.0535 +-147.348 -8.97696 97.1133 +-490.79 -29.3371 317.37 +-2763.37 -162.043 1752.99 +-495.515 -28.5003 308.318 +-497.43 -28.0579 303.532 +-2808.51 -155.329 1680.36 +-506.983 -27.4881 297.368 +-2837.53 -150.794 1631.3 +-404.977 -21.0899 228.152 +-404.249 -20.6255 223.128 +-405.31 -20.2561 219.132 +-404.92 -19.8174 214.386 +-404.566 -19.3852 209.71 +-2919.38 -136.918 1481.19 +-404.063 -18.5433 200.603 +-385.313 -17.2981 187.132 +-377.1 -16.5561 179.104 +-380.377 -16.3264 176.62 +-379.909 -15.9362 172.399 +-380.035 -15.5743 168.484 +-378.196 -15.1363 163.746 +-379.156 -14.814 160.259 +-378.883 -14.4455 156.272 +-379.867 -14.1268 152.824 +-379.796 -13.7706 148.971 +-380.247 -13.4353 145.343 +-379.071 -13.0455 141.127 +-380.012 -12.7311 137.726 +-379.319 -12.3639 133.754 +-380.382 -12.0558 130.42 +-378.95 -11.6709 126.257 +-379.662 -11.3547 122.836 +-380.056 -11.0299 119.322 +-380.418 -10.7054 115.811 +-380.747 -10.3811 112.303 +-379.794 -10.0241 108.442 +-378.803 -9.66948 104.605 +-379.126 -9.35054 101.155 +-380.579 -9.05953 98.0066 +-380.841 -8.74013 94.5512 +-378.738 -8.36943 90.541 +-380.004 -8.07524 87.3585 +-380.17 -7.75775 83.9238 +-380.108 -7.43678 80.4515 +-379.231 -7.10182 76.8279 +-379.792 -6.79517 73.5106 +-379.536 -6.47475 70.0443 +-379.545 -6.16006 66.6399 +-379.523 -5.84584 63.2407 +-379.075 -5.52637 59.7846 +-377.705 -5.19583 56.2088 +-379.57 -4.91017 53.1185 +-379.129 -4.59429 49.7013 +-379.55 -4.28958 46.405 +-380.339 -3.98872 43.1502 +-380.305 -3.67922 39.802 +-146.423 -1.29774 14.039 +-379.749 -3.0581 33.0828 +-380.025 -2.75296 29.7816 +-380.87 -2.45145 26.5199 +-379.391 -2.13587 23.106 +-379.579 -1.83105 19.8085 +-379.039 -1.52328 16.4789 +-379.469 -1.21972 13.195 +-146.45 -0.352988 3.81864 +-144.078 -0.231485 2.50421 +-146.194 -0.117434 1.2704 +95.1 -1.77636e-15 -1.7053e-13 +95.8963 -0.0695097 0.833983 +95.9854 -0.139159 1.66964 +95.8671 -0.208508 2.5017 +95.9415 -0.278276 3.33877 +95.9086 -0.347805 4.17299 +95.9683 -0.417743 5.01211 +95.7211 -0.486271 5.83432 +96.7637 -0.562007 6.743 +95.7041 -0.625604 7.50604 +96.7305 -0.702911 8.43358 +96.4539 -0.771403 9.25536 +96.5681 -0.843021 10.1146 +95.4823 -0.903579 10.8412 +96.3762 -0.982875 11.7926 +96.1702 -1.05161 12.6173 +96.155 -1.12243 13.467 +95.8356 -1.18962 14.2732 +95.707 -1.25904 15.1061 +95.4724 -1.327 15.9214 +96.1172 -1.40769 16.8895 +95.8674 -1.47579 17.7066 +95.8068 -1.5468 18.5587 +95.7386 -1.61783 19.4109 +96.3475 -1.70098 20.4085 +96.0675 -1.76896 21.2241 +96.1703 -1.84413 22.126 +95.6812 -1.90794 22.8916 +95.7682 -1.98325 23.7952 +95.4594 -2.05051 24.6022 +96.013 -2.13682 25.6377 +95.6885 -2.20411 26.4451 +96.5107 -2.29857 27.5784 +96.0737 -2.36371 28.36 +96.013 -2.43811 29.2527 +96.5162 -2.52759 30.3262 +96.342 -2.60002 31.1952 +95.9704 -2.66711 32.0002 +96.632 -2.76362 33.1581 +96.0552 -2.82523 33.8974 +96.0366 -2.90327 34.8337 +96.2899 -2.99022 35.8769 +97.0924 -3.09562 37.1415 +96.6704 -3.16283 37.9479 +96.4271 -3.23589 38.8245 +96.8226 -3.33108 39.9666 +96.561 -3.40438 40.8461 +96.1079 -3.47093 41.6445 +96.8358 -3.581 42.9651 +96.3649 -3.6476 43.7643 +96.8843 -3.75242 45.0218 +96.3961 -3.81892 45.8197 +96.0811 -3.89229 46.7 +96.3844 -3.99143 47.8895 +95.8723 -4.05737 48.6806 +96.152 -4.15738 49.8805 +96.5945 -4.26591 51.1827 +96.0547 -4.3318 51.9733 +96.4706 -4.44152 53.2897 +96.6095 -4.5399 54.4701 +96.2154 -4.61391 55.3581 +96.4163 -4.71719 56.5973 +96.6885 -4.8254 57.8956 +96.8599 -4.93001 59.1507 +96.4231 -5.00443 60.0436 +96.484 -5.10538 61.2547 +95.9439 -5.17511 62.0914 +95.9803 -5.27654 63.3084 +96.2513 -5.39236 64.698 +96.3404 -5.49956 65.9841 +96.578 -5.61682 67.391 +95.9028 -5.68178 68.1704 +96.0303 -5.79501 69.529 +96.0609 -5.90392 70.8357 +96.2356 -6.02331 72.2681 +96.1544 -6.12823 73.527 +95.6645 -6.20791 74.483 +96.1825 -6.35457 76.2426 +96.2107 -6.47109 77.6407 +96.2216 -6.58813 79.0449 +96.2152 -6.70567 80.4551 +96.1914 -6.8237 81.8713 +96.0745 -6.93675 83.2277 +95.9412 -7.05015 84.5883 +95.94 -7.17501 86.0863 +95.7723 -7.28916 87.456 +96.3193 -7.46026 89.5088 +96.1121 -7.57553 90.8918 +96.1038 -7.70838 92.4857 +95.7895 -7.81849 93.8068 +95.6008 -7.94048 95.2705 +95.9545 -8.11018 97.3066 +95.8629 -8.24514 98.9259 +96.1631 -8.41675 100.985 +96.0254 -8.55297 102.619 +95.596 -8.6651 103.965 +95.9533 -8.85131 106.199 +95.4173 -8.95788 107.477 +95.7846 -9.15207 109.807 +95.339 -9.27167 111.242 +95.6468 -9.46761 113.593 +95.4753 -9.61994 115.421 +95.0903 -9.75333 117.021 +95.1202 -9.9324 119.17 +95.1813 -10.1187 121.405 +94.9668 -10.2796 123.335 +95.147 -10.4873 125.828 +94.9337 -10.6561 127.853 +94.9273 -10.8521 130.205 +94.7707 -11.0355 132.405 +95.3284 -11.3079 135.673 +95.043 -11.486 137.81 +94.951 -11.6923 140.285 +94.6572 -11.8783 142.517 +94.985 -12.1485 145.759 +94.5647 -12.329 147.924 +94.4846 -12.5591 150.685 +94.4677 -12.8041 153.624 +94.2005 -13.0216 156.234 +94.1991 -13.2826 159.365 +94.3 -13.5661 162.768 +94.2499 -13.8364 166.01 +94.6348 -14.1803 170.136 +94.382 -14.4381 173.229 +94.2699 -14.726 176.683 +94.012 -15 179.971 +94.203 -15.3562 184.245 +93.3446 -15.5502 186.573 +116.651 -19.8651 238.343 +117.185 -20.4062 244.835 +116.981 -20.8366 249.999 +117.192 -21.359 256.266 +117.303 -21.8832 262.557 +115.677 -22.0968 265.12 +112.687 -22.0499 264.557 +109.983 -22.054 264.606 +107.025 -22.0019 263.981 +104.636 -22.0632 264.716 +101.705 -22.0064 264.035 +99.3538 -22.0715 264.816 +96.4497 -22.01 264.077 +94.0668 -22.0634 264.718 +93.0474 -22.4449 269.295 +93.002 -23.0865 276.994 +92.7051 -23.6981 284.331 +92.4971 -24.3663 292.349 +92.2725 -25.0679 300.767 +92.3618 -25.8984 310.731 +92.311 -26.7388 320.815 +92.2774 -27.6371 331.592 +91.9584 -28.5052 342.007 +92.0147 -29.5518 354.565 +91.4223 -30.4555 365.408 +91.3939 -31.619 379.368 +91.1052 -32.7766 393.256 +91.2077 -34.1713 409.989 +90.6495 -35.4222 424.998 +90.6127 -36.9923 443.837 +90.2908 -38.5813 462.901 +90.5164 -40.5644 486.695 +90.0366 -42.4117 508.859 +90.182 -44.7608 537.044 +89.9342 -47.1625 565.86 +99.0766 -55.0627 660.646 +93.2042 -55.0831 660.891 +89.1233 -56.2273 674.62 +88.4893 -59.8594 718.198 +82.4233 -60.0863 720.92 +89.675 -70.8657 850.252 +67.0633 -57.8486 694.072 +86.7025 -82.3123 987.59 +257.056 -271.286 3254.91 +83.9868 -99.7593 1196.92 +43.6009 -59.2099 710.405 +81.2202 -128.722 1544.42 +142.91 -271.866 3261.87 +60.5402 -143.994 1727.65 +85.7635 -272.032 3263.86 +54.277 -258.273 3098.79 +6.34855 -60.4229 724.958 +1.46549e-13 -258.213 3098.06 +-6.33634 -60.3066 723.563 +-54.2665 -258.224 3098.19 +-18.8762 -59.8731 718.362 +-108.534 -258.147 3097.27 +-31.816 -60.5254 726.188 +-133.373 -211.377 2536.12 +-44.5288 -60.47 725.524 +-130.738 -155.289 1863.17 +-57.6517 -60.8434 730.004 +-134.185 -127.39 1528.44 +-71.1463 -61.3706 736.33 +-125.361 -99.0666 1188.61 +-84.6534 -61.712 740.426 +-157.76 -106.718 1280.41 +-98.717 -62.2799 747.239 +-120.232 -71.0561 852.537 +-115.572 -64.2303 770.64 +-149.692 -78.5003 941.853 +-127.813 -63.4386 761.141 +-568.924 -267.991 3215.38 +-140.686 -63.0476 756.45 +-150.835 -64.4515 773.295 +-142.887 -58.3331 699.885 +-111.399 -43.5303 522.28 +-114.908 -43.0506 516.525 +-119.494 -42.9899 515.797 +-124.123 -42.9421 515.223 +-130.154 -43.3582 520.215 +-144.094 -46.2777 555.244 +-391.774 -121.442 1457.07 +-875.553 -262.228 3146.23 +-903.071 -261.583 3138.5 +-930.519 -260.919 3130.53 +-957.897 -260.234 3122.31 +-163.193 -42.9897 515.794 +-142.642 -36.4634 437.491 +-144.215 -35.7994 429.524 +-147.645 -35.615 427.311 +-144.405 -33.8702 406.378 +-1120.56 -255.714 3068.07 +-144.391 -32.0764 384.856 +-1174.26 -254.081 3048.49 +-144.621 -30.4944 365.874 +-143.362 -29.472 353.607 +-143.124 -28.6993 344.337 +-146.798 -28.7245 344.639 +-144.467 -27.5963 331.103 +-1332.75 -248.629 2983.07 +-145.474 -26.5135 318.111 +-490.533 -87.3736 1048.32 +-147.149 -25.6239 307.438 +-1436.32 -244.599 2934.72 +-143.274 -23.868 286.37 +-143.915 -23.4598 281.473 +-141.48 -22.5737 270.841 +-142.532 -22.265 267.137 +-144.913 -22.1681 265.975 +-148.691 -22.2802 267.319 +-430.772 -63.2398 758.756 +-109.5 -15.7529 189.005 +-108.918 -15.358 184.267 +-110.115 -15.2215 182.629 +-111.24 -15.0774 180.9 +-112.661 -14.9751 179.672 +-98.9706 -12.9034 154.816 +-115.845 -14.8164 177.769 +-99.735 -12.5155 150.162 +-119.052 -14.66 175.892 +-100.027 -12.0884 145.038 +-125.957 -14.9411 179.264 +-100.636 -11.7184 140.598 +-414.976 -47.4403 569.192 +-103.797 -11.6509 139.788 +-417.118 -45.9758 551.621 +-109.394 -11.8413 142.073 +-420.251 -44.6769 536.037 +-113.235 -11.8239 141.864 +-421.959 -43.2799 519.276 +-117.102 -11.799 141.565 +-431.503 -42.7126 512.469 +-119.888 -11.659 139.886 +-434.377 -41.5038 497.966 +-431.299 -40.4907 485.811 +-161.729 -14.9188 178.997 +-434.945 -39.4245 473.019 +-437.707 -38.9863 467.761 +-438.964 -38.4205 460.973 +-441.386 -37.9635 455.49 +-441.292 -37.2985 447.51 +-441.517 -36.6718 439.991 +-442.929 -36.1525 433.761 +-2356.92 -189.046 2268.19 +-447.556 -35.2763 423.247 +-2396.28 -185.6 2226.85 +-452.172 -34.4144 412.907 +-381.828 -28.5555 342.611 +-455.065 -33.4401 401.217 +-381.732 -27.5618 330.688 +-2491.47 -176.742 2120.57 +-383.635 -26.7373 320.796 +-382.494 -26.1887 314.215 +-418.26 -28.132 337.53 +-381.913 -25.2321 302.737 +-382.106 -24.7958 297.502 +-380.175 -24.2297 290.71 +-140.72 -8.80754 105.674 +-142.685 -8.76942 105.216 +-142.711 -8.61194 103.327 +-142.877 -8.46476 101.561 +-142.369 -8.27992 99.3431 +-142.574 -8.13878 97.6497 +-144.667 -8.1048 97.242 +-147.348 -8.10049 97.1903 +-491.377 -26.5044 318.001 +-2763.37 -146.221 1754.38 +-495.345 -25.7088 308.456 +-497.43 -25.3184 303.773 +-2808.51 -140.163 1681.69 +-506.983 -24.8043 297.604 +-2837.53 -136.071 1632.59 +-404.977 -19.0308 228.333 +-405.824 -18.6842 224.175 +-405.31 -18.2784 219.306 +-406.509 -17.9527 215.398 +-404.566 -17.4925 209.876 +-406.477 -17.2023 206.394 +-404.063 -16.7328 200.762 +-385.313 -15.6092 187.281 +-377.1 -14.9396 179.246 +-378.927 -14.6762 176.086 +-379.909 -14.3803 172.536 +-379.304 -14.0267 168.293 +-378.196 -13.6585 163.876 +-380.721 -13.4228 161.048 +-378.883 -13.0351 156.396 +-379.682 -12.7413 152.871 +-379.796 -12.4261 149.089 +-380.154 -12.1205 145.423 +-379.071 -11.7718 141.239 +-379.166 -11.4625 137.528 +-379.319 -11.1568 133.86 +-380.193 -10.8733 130.459 +-378.95 -10.5314 126.357 +-380.137 -10.2589 123.087 +-380.056 -9.953 119.417 +-379.653 -9.64079 115.671 +-380.747 -9.36752 112.392 +-379.314 -9.03404 108.391 +-378.803 -8.7254 104.688 +-379.802 -8.45271 101.416 +-380.579 -8.175 98.0843 +-378.803 -7.84458 94.12 +-378.738 -7.55228 90.6128 +-381.856 -7.32231 87.8537 +-380.17 -7.00032 83.9904 +-380.988 -6.72622 80.7018 +-379.231 -6.40842 76.8888 +-379.792 -6.13172 73.5689 +-379.536 -5.84259 70.0998 +-380.037 -5.56583 66.7793 +-379.523 -5.27508 63.2909 +-379.569 -4.9933 59.9101 +-377.705 -4.68853 56.2534 +-380.659 -4.44348 53.3132 +-379.129 -4.14572 49.7407 +-379.649 -3.87178 46.4539 +-380.339 -3.59928 43.1845 +-380.405 -3.32086 39.8439 +-146.423 -1.17104 14.0502 +-379.65 -2.7588 33.1003 +-380.025 -2.48417 29.8053 +-379.274 -2.20283 26.4298 +-379.391 -1.92733 23.1243 +-380.777 -1.65749 19.8867 +-379.039 -1.37455 16.492 +-379.868 -1.1018 13.2195 +-146.45 -0.318523 3.82167 +-145.978 -0.211638 2.53925 +-146.194 -0.105968 1.27141 +96 1.77636e-15 -2.27374e-13 +95.1964 -0.0615307 0.828484 +96.0854 -0.12422 1.67257 +95.9671 -0.186125 2.50609 +96.0415 -0.248402 3.34463 +95.9086 -0.310144 4.17596 +95.9683 -0.372509 5.01568 +96.8191 -0.438591 5.90545 +96.7637 -0.501152 6.7478 +96.8007 -0.564255 7.59746 +96.7305 -0.626799 8.43958 +96.653 -0.689295 9.28106 +96.5681 -0.751737 10.1218 +96.4758 -0.814122 10.9618 +96.3762 -0.876448 11.801 +96.2693 -0.938707 12.6393 +96.155 -1.00089 13.4766 +95.9345 -1.06191 14.2981 +96.5959 -1.13314 15.2573 +96.2615 -1.19308 16.0644 +96.1172 -1.25526 16.9016 +95.9657 -1.31733 17.7373 +95.8068 -1.37931 18.5719 +95.6407 -1.44118 19.4049 +95.4672 -1.50294 20.2365 +95.2865 -1.56459 21.0665 +96.1703 -1.64444 22.1417 +95.7784 -1.70308 22.9312 +95.7682 -1.7685 23.8121 +96.4275 -1.84702 24.8693 +96.013 -1.90544 25.6559 +96.7485 -1.98722 26.757 +95.5494 -2.02926 27.3231 +96.2655 -2.11197 28.4368 +96.013 -2.17411 29.2735 +95.7532 -2.23609 30.108 +96.342 -2.31849 31.2174 +96.0652 -2.38067 32.0547 +96.632 -2.46437 33.1817 +96.338 -2.52673 34.0214 +96.7883 -2.60917 35.1313 +96.3836 -2.66903 35.9373 +96.999 -2.75776 37.1321 +96.7634 -2.82307 38.0114 +96.4271 -2.8855 38.8521 +96.915 -2.97323 40.0332 +96.561 -3.03575 40.8751 +96.1996 -3.09805 41.7139 +96.0136 -3.16613 42.6306 +96.4559 -3.25571 43.8368 +96.0686 -3.31793 44.6745 +96.4864 -3.40859 45.8952 +96.0811 -3.47083 46.7332 +96.2949 -3.55593 47.879 +96.7633 -3.65166 49.168 +96.2407 -3.71063 49.9621 +96.5945 -3.80399 51.2191 +96.1426 -3.86628 52.0578 +96.4706 -3.96059 53.3276 +96.7836 -4.05561 54.6071 +96.302 -4.11801 55.4473 +96.5886 -4.21393 56.7388 +96.7742 -4.30672 57.9881 +96.9452 -4.40006 59.2449 +96.4231 -4.46255 60.0863 +96.3996 -4.54857 61.2446 +95.9439 -4.61474 62.1356 +96.2304 -4.71746 63.5186 +96.2513 -4.80847 64.744 +96.4228 -4.90825 66.0875 +95.8408 -4.97038 66.9241 +95.9842 -5.07085 68.2769 +96.0303 -5.16752 69.5785 +96.1413 -5.26904 70.9454 +96.2356 -5.3711 72.3195 +96.3131 -5.47367 73.7006 +96.3737 -5.57675 75.0886 +96.3391 -5.67572 76.4211 +96.2884 -5.77505 77.7586 +95.6814 -5.84178 78.6571 +96.2152 -5.97957 80.5124 +96.1153 -6.08001 81.8647 +96.15 -6.19049 83.3523 +96.0161 -6.29166 84.7146 +95.94 -6.39809 86.1475 +95.7723 -6.49988 87.5182 +95.7342 -6.61205 89.0284 +96.1846 -6.76034 91.0251 +96.1038 -6.8737 92.5515 +95.7895 -6.97189 93.8736 +95.6715 -7.08591 95.4087 +96.1648 -7.24785 97.5892 +95.8629 -7.35235 98.9962 +96.232 -7.51071 101.128 +95.9572 -7.62136 102.618 +95.7311 -7.73772 104.185 +95.8864 -7.8874 106.201 +95.5498 -7.99894 107.702 +95.8502 -8.16663 109.96 +95.4039 -8.27335 111.397 +95.7111 -8.44815 113.751 +95.5389 -8.58398 115.58 +95.2162 -8.70871 117.259 +95.1202 -8.85691 119.255 +95.1813 -9.02304 121.491 +95.0885 -9.17828 123.582 +95.2071 -9.35767 125.997 +95.1122 -9.52009 128.184 +94.8685 -9.67103 130.216 +94.8869 -9.85257 132.661 +95.271 -10.0774 135.687 +95.043 -10.2423 137.908 +94.8391 -10.4139 140.219 +94.6572 -10.5921 142.618 +95.0395 -10.8393 145.946 +94.7797 -11.0189 148.365 +94.4846 -11.1991 150.792 +94.6245 -11.4366 153.989 +94.252 -11.618 156.431 +94.3006 -11.8571 159.651 +94.3 -12.0972 162.883 +94.2006 -12.3317 166.042 +94.247 -12.593 169.559 +94.4297 -12.8812 173.44 +94.2699 -13.1314 176.809 +94.3814 -13.4284 180.807 +94.203 -13.6934 184.376 +93.9246 -13.9527 187.867 +116.738 -17.7274 238.692 +116.669 -18.1164 243.929 +116.938 -18.5736 250.086 +116.861 -18.9923 255.723 +117.222 -19.5001 262.561 +115.358 -19.6498 264.576 +112.687 -19.6623 264.745 +109.677 -19.6112 264.057 +107.4 -19.6882 265.094 +104.38 -19.626 264.255 +101.705 -19.6235 264.222 +99.0737 -19.6261 264.257 +96.4839 -19.6337 264.359 +93.7997 -19.6185 264.154 +93.2753 -20.0635 270.147 +92.8433 -20.5515 276.718 +92.7051 -21.132 284.533 +92.437 -21.7139 292.368 +92.5649 -22.4244 301.934 +92.3618 -23.0941 310.952 +92.2007 -23.815 320.659 +92.0369 -24.5802 330.962 +92.0102 -25.4329 342.444 +91.7893 -26.2874 353.948 +91.3013 -27.1219 365.184 +91.2071 -28.1377 378.862 +91.1502 -29.242 393.731 +91.0129 -30.406 409.404 +90.6911 -31.6012 425.496 +90.5928 -32.9795 444.055 +90.4816 -34.4764 464.209 +90.0243 -35.9754 484.394 +89.8629 -37.7463 508.238 +89.984 -39.8264 536.246 +89.9342 -42.0557 566.262 +98.8845 -49.0052 659.835 +93.2181 -49.126 661.46 +88.7448 -49.9259 672.232 +88.3796 -53.3115 717.817 +87.8457 -57.105 768.894 +89.6645 -63.1849 850.758 +86.8746 -66.8234 899.749 +86.7112 -73.4068 988.392 +85.2615 -80.2383 1080.37 +83.8543 -88.8165 1195.88 +83.2702 -100.837 1357.72 +81.3144 -114.917 1547.31 +71.213 -120.804 1626.57 +60.5053 -128.328 1727.88 +81.3867 -230.196 3099.49 +54.277 -230.307 3100.99 +27.1369 -230.311 3101.04 +1.52767e-13 -230.275 3100.56 +-27.1264 -230.222 3099.84 +-54.2543 -230.211 3099.69 +-81.371 -230.152 3098.9 +-108.523 -230.172 3099.17 +-126.243 -214.155 2883.51 +-133.362 -188.474 2537.72 +-134.942 -163.408 2200.22 +-130.682 -138.416 1863.71 +-120.741 -113.628 1529.95 +-134.29 -113.685 1530.72 +-115.37 -88.7417 1194.87 +-125.34 -88.3247 1189.25 +-140.123 -91.0881 1226.46 +-157.735 -95.1476 1281.12 +-113.584 -63.8999 860.385 +-120.232 -63.3621 853.143 +-127.87 -63.3698 853.248 +-149.661 -69.9856 942.326 +-379.081 -167.779 2259.08 +-568.924 -238.973 3217.67 +-144.221 -57.6335 776.011 +-151.674 -57.7925 778.152 +-173.63 -63.2082 851.072 +-111.15 -38.7299 521.482 +-114.778 -38.3457 516.308 +-119.269 -38.2628 515.192 +-123.913 -38.2275 514.716 +-130.033 -38.6274 520.102 +-820.32 -234.93 3163.23 +-391.671 -108.264 1457.73 +-875.553 -233.833 3148.47 +-903.071 -233.259 3140.73 +-930.519 -232.666 3132.75 +-159.81 -38.7149 521.28 +-163.404 -38.3842 516.827 +-142.642 -32.5151 437.802 +-144.691 -32.0284 431.248 +-147.385 -31.7025 426.86 +-151.482 -31.6828 426.596 +-1120.56 -228.025 3070.25 +-398.886 -79.0177 1063.94 +-1174.26 -226.569 3050.66 +-144.548 -27.1787 365.949 +-143.437 -26.2945 354.044 +-143.391 -25.6397 345.227 +-146.72 -25.6006 344.701 +-150.328 -25.6066 344.782 +-1332.75 -221.707 2985.19 +-1358.49 -220.783 2972.75 +-491.125 -78.0067 1050.33 +-452.037 -70.1925 945.112 +-508.774 -77.2601 1040.27 +-143.006 -21.2438 286.038 +-143.597 -20.8734 281.051 +-142.08 -20.2148 272.183 +-142.907 -19.9064 268.031 +-146.106 -19.9304 268.355 +-148.982 -19.9065 268.033 +-409.007 -53.5428 720.931 +-109.95 -14.1049 189.916 +-108.765 -13.6759 184.14 +-110.115 -13.5733 182.759 +-111.24 -13.4448 181.028 +-112.714 -13.3598 179.885 +-114.015 -13.2553 178.476 +-115.736 -13.1996 177.728 +-117.121 -13.1059 176.465 +-119.052 -13.0726 176.017 +-121.607 -13.1051 176.454 +-125.556 -13.2807 178.82 +-414.041 -42.9921 578.87 +-415.212 -42.3274 569.92 +-416.019 -41.6406 560.673 +-417.238 -41.0093 552.173 +-418.158 -40.362 543.457 +-420.435 -39.8568 536.655 +-420.446 -39.1488 527.122 +-421.771 -38.5762 519.412 +-424.073 -38.1021 513.029 +-431.503 -38.0876 512.834 +-426.428 -36.9794 497.912 +-432.015 -36.8085 495.611 +-432.227 -36.184 487.202 +-162.331 -13.353 179.792 +-162.952 -13.171 177.343 +-437.707 -34.7648 468.094 +-439.583 -34.3087 461.952 +-441.386 -33.8528 455.814 +-441.433 -33.2704 447.971 +-441.376 -32.6905 440.164 +-443.499 -32.2794 434.628 +-444.768 -31.8114 428.327 +-446.178 -31.3596 422.244 +-424.185 -29.2971 394.473 +-2415.69 -163.948 2207.49 +-2434.91 -162.381 2186.39 +-422.111 -27.6598 372.427 +-382.336 -24.6162 331.447 +-419.364 -26.5279 357.187 +-380.724 -23.6612 318.588 +-418.683 -25.5625 344.188 +-416.783 -24.9973 336.578 +-382.461 -22.5323 303.387 +-382.816 -22.1519 298.267 +-381.603 -21.6873 292.01 +-140.72 -7.85385 105.749 +-142.283 -7.79786 104.995 +-142.63 -7.67513 103.342 +-142.959 -7.55248 101.691 +-142.369 -7.38336 99.4138 +-142.327 -7.24492 97.5497 +-144.253 -7.20649 97.0324 +-147.431 -7.22745 97.3145 +-491.377 -23.6344 318.228 +-2763.37 -130.388 1755.62 +-496.023 -22.9564 309.099 +-2793.68 -126.797 1707.27 +-500.329 -22.266 299.802 +-502.847 -21.938 295.385 +-2837.53 -121.337 1633.75 +-2851.72 -119.499 1609 +-406.698 -16.6969 224.817 +-404.959 -16.285 219.271 +-404.743 -15.9392 214.615 +-2906.29 -112.054 1508.76 +-405.853 -15.3161 206.225 +-404.421 -14.9342 201.083 +-387.56 -14.0002 188.507 +-380.891 -13.4558 181.177 +-381.918 -13.1903 177.602 +-380.728 -12.8509 173.031 +-380.766 -12.5561 169.062 +-378.746 -12.1972 164.231 +-379.248 -11.9231 160.539 +-378.329 -11.6066 156.279 +-379.496 -11.3561 152.905 +-380.82 -11.1104 149.597 +-379.967 -10.8028 145.455 +-381.6 -10.5671 142.282 +-381.045 -10.272 138.308 +-380.544 -9.98085 134.388 +-380.855 -9.71281 130.779 +-380.467 -9.42869 126.953 +-380.993 -9.16865 123.452 +-379.102 -8.85306 119.203 +-379.94 -8.60331 115.84 +-380.076 -8.33853 112.275 +-380.179 -8.07419 108.716 +-380.249 -7.8103 105.162 +-378.933 -7.52019 101.256 +-379.32 -7.26569 97.8295 +-380.647 -7.02921 94.6453 +-380.002 -6.75698 90.9798 +-379.809 -6.49445 87.4451 +-378.9 -6.22147 83.7695 +-380.108 -5.98404 80.5726 +-379.427 -5.71747 76.9833 +-379.693 -5.46636 73.6022 +-380.716 -5.22614 70.3678 +-380.037 -4.96315 66.8267 +-380.608 -4.71734 63.517 +-380.458 -4.46305 60.0931 +-379.288 -4.19837 56.5292 +-380.263 -3.95822 53.2957 +-379.922 -3.70455 49.8802 +-379.847 -3.45435 46.5113 +-379.743 -3.20452 43.1475 +-380.106 -2.95896 39.8411 +-379.345 -2.70536 36.4265 +-379.849 -2.46136 33.1412 +-380.224 -2.21634 29.8421 +-379.473 -1.96534 26.4625 +-379.191 -1.71774 23.1286 +-379.379 -1.47259 19.8278 +-381.636 -1.23412 16.6168 +-380.768 -0.98482 13.2602 +-144.85 -0.280931 3.78262 +-145.278 -0.187816 2.52887 +-145.594 -0.0941055 1.26709 +95.1 -1.77636e-15 -1.7053e-13 +95.9963 -0.0545082 0.835972 +95.9854 -0.109012 1.67188 +95.9671 -0.163508 2.50767 +96.0415 -0.218218 3.34673 +95.9086 -0.272458 4.17859 +95.9683 -0.327245 5.01883 +96.8191 -0.385298 5.90916 +95.8659 -0.436171 6.6894 +95.8038 -0.490587 7.52394 +96.7305 -0.550636 8.44489 +96.653 -0.605538 9.2869 +96.5681 -0.660393 10.1282 +96.4758 -0.715197 10.9687 +96.3762 -0.76995 11.8084 +96.2693 -0.824644 12.6472 +96.155 -0.879272 13.4851 +95.9345 -0.932873 14.3071 +95.707 -0.986292 15.1264 +95.3738 -1.03845 15.9263 +96.1172 -1.10273 16.9122 +95.9657 -1.15726 17.7485 +95.8068 -1.21171 18.5835 +95.6407 -1.26606 19.4171 +95.4672 -1.32032 20.2492 +95.2865 -1.37447 21.0797 +95.9755 -1.4417 22.1107 +95.7784 -1.49614 22.9457 +95.5741 -1.55046 23.7788 +95.5562 -1.60793 24.6601 +96.013 -1.67391 25.6721 +95.7849 -1.72836 26.5072 +96.5107 -1.80062 27.6154 +96.2655 -1.85534 28.4547 +96.013 -1.90993 29.2919 +95.7532 -1.96438 30.1269 +96.342 -2.03676 31.2371 +96.9187 -2.10997 32.3598 +96.632 -2.16492 33.2026 +96.338 -2.21971 34.0428 +96.7883 -2.29213 35.1535 +96.3836 -2.34471 35.9599 +97.0924 -2.425 37.1913 +96.7634 -2.48003 38.0353 +96.3344 -2.53244 38.8391 +96.915 -2.61195 40.0584 +96.561 -2.66688 40.9008 +96.2913 -2.7242 41.78 +96.7445 -2.80258 42.9821 +96.4559 -2.86011 43.8644 +96.0686 -2.91476 44.7026 +96.3961 -2.99161 45.8812 +96.89 -3.07475 47.1563 +96.4739 -3.12965 47.9982 +96.0505 -3.18431 48.8365 +96.3294 -3.26276 50.0396 +96.6828 -3.34482 51.2982 +96.9335 -3.42442 52.5191 +96.4706 -3.47933 53.3612 +96.6965 -3.55961 54.5924 +96.9082 -3.6404 55.8314 +96.5025 -3.69859 56.7238 +96.6885 -3.78005 57.9732 +96.2631 -3.83821 58.8651 +96.4231 -3.9203 60.1241 +96.484 -3.99937 61.3369 +96.7826 -4.08944 62.7181 +96.147 -4.14064 63.5035 +96.2513 -4.22419 64.7847 +96.4228 -4.31184 66.1291 +96.578 -4.40002 67.4814 +95.9842 -4.45469 68.3198 +96.0303 -4.53961 69.6223 +95.4178 -4.59397 70.4559 +96.1557 -4.71453 72.305 +95.5991 -4.77291 73.2004 +96.3737 -4.89911 75.1358 +96.2608 -4.982 76.4071 +96.2884 -5.07332 77.8076 +96.2987 -5.16505 79.2144 +96.2152 -5.25299 80.563 +96.1914 -5.34545 81.9811 +96.15 -5.43828 83.4048 +96.0161 -5.52716 84.7679 +95.94 -5.62065 86.2018 +95.8461 -5.71447 87.6406 +96.3924 -5.84855 89.6969 +96.1846 -5.93888 91.0824 +96.0319 -6.03395 92.5404 +95.7895 -6.12473 93.9326 +96.2372 -6.2617 96.0333 +95.4638 -6.32075 96.9389 +95.8629 -6.45896 99.0586 +95.6813 -6.56033 100.613 +96.0254 -6.7001 102.757 +95.7311 -6.7975 104.251 +95.8864 -6.92899 106.267 +95.6161 -7.03186 107.845 +95.1942 -7.12517 109.276 +95.4689 -7.27299 111.543 +95.7111 -7.4216 113.822 +95.2845 -7.52083 115.344 +95.0903 -7.64042 117.178 +95.1202 -7.7807 119.33 +95.1813 -7.92664 121.568 +95.2103 -8.0733 123.817 +95.2071 -8.22061 126.076 +95.0527 -8.35802 128.184 +94.9273 -8.50117 130.379 +94.8288 -8.6501 132.663 +94.8695 -8.81556 135.201 +95.1562 -9.00848 138.16 +94.895 -9.1539 140.39 +94.6572 -9.30505 142.708 +94.9306 -9.51124 145.87 +94.7797 -9.68002 148.459 +94.5906 -9.84938 151.056 +94.6767 -10.0525 154.171 +94.252 -10.2063 156.53 +94.3006 -10.4164 159.752 +94.3 -10.6272 162.986 +94.2499 -10.839 166.233 +94.247 -11.0628 169.666 +94.048 -11.2703 172.848 +94.3168 -11.5415 177.008 +94.012 -11.7505 180.212 +94.6116 -12.0817 185.293 +93.9693 -12.263 188.074 +116.738 -15.5733 238.842 +116.755 -15.9267 244.262 +116.938 -16.3167 250.244 +116.861 -16.6845 255.884 +117.262 -17.1366 262.817 +115.438 -17.2741 264.926 +112.687 -17.2731 264.911 +110.021 -17.2823 265.052 +107.063 -17.2416 264.427 +104.416 -17.2472 264.514 +101.705 -17.239 264.389 +99.1087 -17.2474 264.516 +96.4839 -17.248 264.525 +93.7997 -17.2346 264.321 +93.0474 -17.5825 269.656 +92.8433 -18.0543 276.892 +92.7051 -18.5642 284.712 +92.437 -19.0754 292.552 +92.5064 -19.6871 301.934 +92.447 -20.3066 311.435 +92.1731 -20.915 320.765 +91.7964 -21.5371 330.306 +91.9325 -22.3237 342.37 +91.5389 -23.0302 353.205 +91.6158 -23.9083 366.672 +91.2538 -24.7312 379.294 +91.1502 -25.6887 393.978 +91.0129 -26.7114 409.662 +90.7535 -27.7803 426.056 +90.513 -28.9466 443.943 +90.4816 -30.2871 464.502 +90.2248 -31.6744 485.778 +89.8977 -33.1725 508.755 +89.8684 -34.9422 535.895 +89.6839 -36.8427 565.042 +98.8845 -43.0506 660.25 +93.2321 -43.1631 661.975 +88.7709 -43.8723 672.853 +88.2578 -46.769 717.279 +88.0495 -50.2824 771.162 +89.6436 -55.4943 851.095 +86.7979 -58.6518 899.521 +86.6067 -64.4093 987.821 +85.1909 -70.4299 1080.16 +83.8473 -78.0178 1196.53 +83.2092 -88.5187 1357.58 +81.2202 -100.836 1546.49 +71.1301 -106.001 1625.7 +60.5332 -112.787 1729.77 +81.3737 -202.192 3100.95 +54.277 -202.322 3102.94 +27.1395 -202.345 3103.29 +1.51879e-13 -202.327 3103.01 +-27.1238 -202.228 3101.49 +-54.27 -202.296 3102.54 +-81.3998 -202.257 3101.94 +-108.565 -202.281 3102.31 +-142.919 -212.983 3266.44 +-133.383 -165.598 2539.72 +-134.929 -143.539 2201.41 +-130.661 -121.577 1864.58 +-120.803 -99.8719 1531.7 +-134.263 -99.8517 1531.39 +-115.408 -77.9846 1196.02 +-125.392 -77.6248 1190.5 +-139.851 -79.865 1224.86 +-157.675 -83.5542 1281.44 +-113.44 -56.0645 859.839 +-120.232 -55.6629 853.68 +-127.914 -55.689 854.08 +-149.723 -61.5073 943.314 +-379.23 -147.45 2261.39 +-568.924 -209.935 3219.69 +-144.294 -50.656 776.891 +-152.018 -50.8851 780.405 +-173.63 -55.5277 851.608 +-111.399 -34.1001 522.98 +-114.713 -33.6672 516.341 +-119.382 -33.6451 516.002 +-123.913 -33.5824 515.04 +-129.791 -33.8706 519.461 +-820.32 -206.383 3165.22 +-392.085 -95.2087 1460.18 +-875.553 -205.42 3150.45 +-903.071 -204.915 3142.71 +-930.633 -204.419 3135.1 +-957.897 -203.859 3126.5 +-163.343 -33.7076 516.961 +-142.673 -28.5704 438.173 +-144.691 -28.1366 431.52 +-146.994 -27.7765 425.997 +-151.448 -27.8268 426.77 +-1120.56 -200.317 3072.19 +-399.517 -69.5261 1066.3 +-1174.26 -199.039 3052.58 +-144.511 -23.8701 366.087 +-143.774 -23.1537 355.099 +-143.659 -22.5662 346.089 +-146.329 -22.4299 343.999 +-150.448 -22.513 345.274 +-1332.75 -194.767 2987.07 +-1358.83 -194.003 2975.35 +-490.829 -68.487 1050.36 +-1410.66 -192.431 2951.23 +-508.511 -67.837 1040.39 +-143.185 -18.6857 286.575 +-144.051 -18.395 282.117 +-142.126 -17.7642 272.443 +-142.813 -17.4761 268.024 +-146.249 -17.5258 268.786 +-149.127 -17.5047 268.463 +-408.416 -46.9689 720.343 +-110.1 -12.4079 190.295 +-109.273 -12.0702 185.116 +-110.012 -11.9129 182.703 +-110.717 -11.7556 180.291 +-112.237 -11.6868 179.236 +-114.23 -11.6665 178.925 +-115.79 -11.6012 177.923 +-117.563 -11.5568 177.242 +-119.611 -11.5381 176.955 +-121.664 -11.518 176.647 +-125.957 -11.7043 179.505 +-414.041 -37.768 579.234 +-415.447 -37.2052 570.601 +-415.781 -36.5599 560.705 +-417.599 -36.0574 552.999 +-418.706 -35.504 544.512 +-420.251 -34.9983 536.756 +-421.38 -34.4681 528.624 +-422.085 -33.9141 520.128 +-423.564 -33.4322 512.736 +-432.018 -33.4994 513.767 +-427.077 -32.5354 498.983 +-429.456 -32.1444 492.986 +-431.829 -31.758 487.06 +-161.796 -11.6917 179.311 +-163.223 -11.5898 177.749 +-437.093 -30.4977 467.732 +-439.927 -30.1634 462.605 +-441.386 -29.7393 456.1 +-441.783 -29.2509 448.609 +-441.376 -28.7182 440.441 +-442.786 -28.3115 434.202 +-428.151 -26.9019 412.585 +-430.437 -26.5772 407.604 +-2396.28 -145.393 2229.83 +-421.28 -25.1173 385.214 +-420.248 -24.6202 377.591 +-420.763 -24.2212 371.471 +-383.091 -21.6678 332.31 +-419.972 -23.3383 357.93 +-381.414 -20.8237 319.366 +-381.337 -20.4533 313.684 +-382.511 -20.154 309.095 +-383.556 -19.851 304.448 +-381.161 -19.3761 297.164 +-380.651 -19.0045 291.465 +-140.48 -6.88774 105.635 +-143.006 -6.88514 105.595 +-142.63 -6.74252 103.407 +-142.959 -6.63477 101.755 +-142.369 -6.4862 99.4764 +-143.151 -6.40143 98.1763 +-144.501 -6.34174 97.2608 +-147.681 -6.36 97.5409 +-492.132 -20.7945 318.917 +-2763.37 -114.545 1756.73 +-496.108 -20.1704 309.346 +-2793.68 -111.39 1708.34 +-2808.51 -109.799 1683.94 +-2823.13 -108.2 1659.43 +-2837.53 -106.593 1634.78 +-404.28 -14.8824 228.246 +-405.124 -14.6113 224.088 +-404.695 -14.2969 219.266 +-2892.98 -100.085 1534.96 +-2906.29 -98.4385 1509.71 +-406.121 -13.4639 206.491 +-404.421 -13.1196 201.21 +-385.493 -12.2334 187.619 +-380.169 -11.7983 180.947 +-379.38 -11.5106 176.533 +-379.181 -11.2435 172.437 +-378.116 -10.9536 167.991 +-380.03 -10.7515 164.892 +-380.721 -10.5149 161.264 +-378.975 -10.2137 156.644 +-377.92 -9.93481 152.366 +-380.82 -9.76037 149.691 +-380.341 -9.49946 145.69 +-381.6 -9.28312 142.372 +-380.106 -9.00158 138.054 +-379.507 -8.74419 134.106 +-379.815 -8.5093 130.504 +-381.321 -8.30155 127.318 +-380.042 -8.03445 123.221 +-380.533 -7.80666 119.728 +-380.418 -7.56741 116.059 +-379.788 -7.31971 112.26 +-380.467 -7.09842 108.866 +-380.249 -6.86126 105.229 +-379.416 -6.61479 101.449 +-379.03 -6.37794 97.8161 +-381.132 -6.18295 94.8255 +-379.71 -5.93138 90.9672 +-380.589 -5.71702 87.6797 +-380.365 -5.48662 84.1462 +-379.913 -5.25421 80.5818 +-380.603 -5.0383 77.2704 +-380.282 -4.80958 73.7628 +-380.421 -4.58755 70.3575 +-380.431 -4.3646 66.9382 +-379.621 -4.13339 63.3922 +-379.371 -3.90954 59.9592 +-381.167 -3.70649 56.845 +-379.075 -3.46638 53.1626 +-380.219 -3.25696 49.9507 +-379.053 -3.02826 46.4433 +-379.743 -2.81513 43.1746 +-381.499 -2.60893 40.0121 +-380.54 -2.38411 36.5642 +-379.052 -2.15775 33.0925 +-380.224 -1.94703 29.8609 +-380.072 -1.72925 26.5209 +-380.09 -1.51259 23.198 +-378.98 -1.29229 19.8194 +-380.637 -1.08132 16.5838 +-380.168 -0.863793 13.2477 +-146.05 -0.248839 3.81635 +-144.778 -0.164427 2.52176 +-145.894 -0.0828411 1.2705 +96.1 1.77636e-15 1.13687e-13 +96.0963 -0.0470132 0.837301 +96.0854 -0.0940231 1.67454 +97.0667 -0.142493 2.53778 +96.2413 -0.188408 3.35553 +96.0085 -0.234994 4.18523 +96.2679 -0.282835 5.03726 +96.9189 -0.332314 5.91849 +97.063 -0.380498 6.77663 +96.8007 -0.427088 7.6064 +96.9297 -0.475405 8.46691 +96.8521 -0.522806 9.31112 +96.8664 -0.570755 10.1651 +95.7803 -0.611774 10.8956 +96.5747 -0.664757 11.8393 +96.4676 -0.711976 12.6802 +96.3531 -0.75914 13.5202 +96.0334 -0.804593 14.3297 +96.6947 -0.858557 15.2908 +96.4587 -0.904908 16.1163 +96.3142 -0.95206 16.9561 +96.1623 -0.999139 17.7946 +96.0031 -1.04615 18.6318 +96.7186 -1.10313 19.6467 +95.6628 -1.13992 20.3018 +95.4817 -1.18667 21.1345 +96.1703 -1.24469 22.1678 +95.9729 -1.29169 23.0049 +95.8652 -1.33995 23.8643 +95.5562 -1.38539 24.6736 +96.3028 -1.4466 25.7637 +95.7849 -1.48916 26.5217 +95.7417 -1.53905 27.4103 +96.4573 -1.60175 28.527 +96.2043 -1.64888 29.3663 +96.6115 -1.70768 30.4136 +96.342 -1.75488 31.2542 +96.0652 -1.80194 32.0925 +96.632 -1.8653 33.2208 +96.338 -1.9125 34.0615 +97.0702 -1.98065 35.2751 +96.4772 -2.02217 36.0147 +97.1857 -2.09139 37.2474 +96.7634 -2.1368 38.0562 +97.2616 -2.20295 39.2344 +97.0074 -2.2526 40.1186 +96.7451 -2.30216 41.0012 +96.383 -2.3494 41.8426 +96.8358 -2.41699 43.0463 +96.4559 -2.46427 43.8884 +96.8843 -2.53268 45.1069 +96.4864 -2.57998 45.9492 +96.89 -2.64921 47.1821 +96.4739 -2.6965 48.0245 +96.8524 -2.76651 49.2712 +96.4181 -2.81378 50.1132 +96.7711 -2.88453 51.3732 +96.2305 -2.92909 52.1667 +96.558 -3.00051 53.4388 +96.7836 -3.06972 54.6714 +96.302 -3.11695 55.5126 +96.5025 -3.18671 56.7549 +96.7742 -3.25978 58.0564 +97.0305 -3.33336 59.3668 +96.4231 -3.37773 60.157 +96.5683 -3.44887 61.4241 +96.0278 -3.49598 62.2631 +96.2304 -3.57067 63.5933 +96.3342 -3.64269 64.876 +96.5052 -3.71826 66.2219 +95.9227 -3.76533 67.0602 +96.0656 -3.84141 68.4151 +96.0303 -3.91133 69.6604 +96.1413 -3.98817 71.0289 +95.5168 -4.03505 71.8639 +96.3131 -4.14305 73.7874 +96.2949 -4.21763 75.1155 +96.3391 -4.29599 76.5111 +96.2884 -4.37117 77.8502 +96.2987 -4.45021 79.2578 +96.2152 -4.52597 80.6071 +95.583 -4.57651 81.5072 +96.15 -4.68562 83.4505 +96.091 -4.76592 84.8805 +96.0143 -4.8465 86.3157 +95.8461 -4.92359 87.6886 +96.3193 -5.03529 89.6779 +96.2572 -5.12081 91.2011 +96.1038 -5.20275 92.6605 +95.7895 -5.27707 93.9841 +95.7423 -5.36734 95.5917 +95.5339 -5.44995 97.0631 +95.9323 -5.56907 99.1846 +95.6813 -5.65239 100.668 +96.0254 -5.7728 102.813 +95.7311 -5.85673 104.308 +96.0202 -5.97832 106.473 +95.6161 -6.05865 107.904 +95.8502 -6.18137 110.09 +95.4689 -6.26641 111.604 +95.7111 -6.39446 113.885 +95.6662 -6.5059 115.869 +95.6567 -6.62217 117.94 +95.1825 -6.70822 119.473 +95.1813 -6.8296 121.634 +95.2103 -6.95595 123.885 +94.6053 -7.03814 125.349 +95.0527 -7.20127 128.254 +94.9273 -7.32461 130.451 +94.9449 -7.46207 132.899 +95.3284 -7.63221 135.929 +95.1562 -7.76171 138.235 +94.951 -7.89166 140.55 +94.5468 -8.00793 142.62 +94.985 -8.1996 146.034 +94.7797 -8.34031 148.54 +94.9615 -8.51947 151.731 +94.6767 -8.6612 154.255 +94.767 -8.84177 157.471 +94.3006 -8.97474 159.839 +94.3 -9.15643 163.075 +94.2499 -9.33885 166.324 +94.247 -9.5317 169.759 +94.0957 -9.71541 173.03 +94.2699 -9.93926 177.017 +94.0582 -10.1292 180.4 +94.203 -10.3646 184.593 +93.6569 -10.5307 187.552 +116.694 -13.4129 238.883 +116.755 -13.7225 244.396 +116.896 -14.0535 250.291 +116.861 -14.3754 256.024 +117.222 -14.7598 262.87 +115.398 -14.8782 264.98 +112.726 -14.8877 265.148 +110.06 -14.8957 265.29 +107.063 -14.8553 264.572 +104.783 -14.9124 265.588 +102.099 -14.9107 265.559 +99.1087 -14.8603 264.661 +96.4839 -14.8608 264.67 +93.8331 -14.8547 264.56 +92.9823 -15.1385 269.615 +92.8751 -15.5609 277.137 +92.736 -16.0003 284.963 +92.467 -16.4407 292.807 +92.5356 -16.9678 302.194 +92.3902 -17.4854 311.413 +92.1456 -18.015 320.845 +91.9834 -18.5942 331.16 +91.9584 -19.2395 342.653 +91.564 -19.8482 353.495 +91.5191 -20.5776 366.486 +91.2771 -21.3139 379.599 +90.9477 -22.0843 393.318 +91.1211 -23.0419 410.375 +90.6079 -23.8972 425.607 +90.513 -24.9404 444.186 +90.5198 -26.1064 464.952 +90.1701 -27.2741 485.75 +89.7587 -28.5373 508.246 +89.8189 -30.0896 535.893 +89.6995 -31.7492 565.449 +98.9288 -37.109 660.907 +93.2181 -37.1837 662.239 +88.6534 -37.7504 672.33 +88.3553 -40.3407 718.464 +87.6532 -43.1284 768.113 +89.7168 -47.8529 852.256 +86.8842 -50.5847 900.908 +86.6241 -55.5063 988.561 +85.1203 -60.6325 1079.86 +83.6938 -67.0974 1195 +83.0626 -76.1332 1355.92 +81.0422 -86.6904 1543.95 +71.1868 -91.4034 1627.89 +60.5053 -97.1322 1729.92 +81.3867 -174.237 3103.14 +54.2892 -174.36 3105.34 +27.1395 -174.341 3104.99 +1.48326e-13 -174.297 3104.21 +-27.136 -174.318 3104.59 +-54.2752 -174.315 3104.54 +-81.3867 -174.237 3103.14 +-108.537 -174.241 3103.22 +-135.648 -174.17 3101.95 +-133.41 -142.708 2541.61 +-134.966 -123.707 2203.21 +-130.717 -104.796 1866.4 +-120.788 -86.0385 1532.34 +-134.263 -86.0323 1532.23 +-115.389 -67.1804 1196.48 +-125.361 -66.8647 1190.85 +-139.591 -68.6833 1223.24 +-157.65 -71.9791 1281.94 +-113.453 -48.3107 860.409 +-120.232 -47.9591 854.148 +-127.781 -47.9317 853.659 +-149.77 -53.0113 944.126 +-379.362 -127.087 2263.41 +-568.924 -180.88 3221.46 +-144.294 -43.6452 777.317 +-152.17 -43.8866 781.617 +-173.729 -47.8702 852.563 +-111.524 -29.4136 523.853 +-114.886 -29.0514 517.403 +-119.359 -28.9832 516.188 +-123.913 -28.9346 515.322 +-130.13 -29.2591 521.101 +-820.32 -177.82 3166.95 +-391.852 -81.9831 1460.11 +-405 -81.8693 1458.08 +-903.071 -176.555 3144.43 +-930.633 -176.128 3136.82 +-957.897 -175.645 3128.21 +-163.163 -29.0104 516.673 +-142.982 -24.6695 439.362 +-144.691 -24.2425 431.756 +-147.254 -23.9746 426.985 +-151.682 -24.0126 427.662 +-1120.56 -172.593 3073.87 +-398.886 -59.809 1065.19 +-1174.26 -171.492 3054.25 +-144.695 -20.5926 366.751 +-143.399 -19.8972 354.368 +-143.698 -19.4483 346.371 +-146.29 -19.3204 344.095 +-150.568 -19.4127 345.737 +-1332.75 -167.811 2988.7 +-1358.83 -167.153 2976.98 +-491.082 -59.0387 1051.47 +-1410.66 -165.798 2952.85 +-508.686 -58.4686 1041.32 +-141.712 -15.9341 283.784 +-144.097 -15.8541 282.36 +-142.08 -15.3007 272.504 +-142.766 -15.0524 268.082 +-146.154 -15.0904 268.759 +-149.127 -15.0821 268.61 +-408.613 -40.4879 721.085 +-109.8 -10.6615 189.88 +-108.867 -10.361 184.528 +-110.115 -10.2737 182.974 +-111.24 -10.1764 181.242 +-112.767 -10.1169 180.181 +-114.284 -10.0566 179.107 +-115.899 -10.005 178.188 +-117.563 -9.95731 177.339 +-119.108 -9.8994 176.307 +-121.664 -9.9239 176.744 +-125.613 -10.0569 179.112 +-413.925 -32.5319 579.389 +-415.741 -32.0787 571.318 +-416.316 -31.5406 561.734 +-417.599 -31.0671 553.302 +-419.132 -30.6214 545.365 +-420.251 -30.1546 537.05 +-421.567 -29.7109 529.149 +-421.771 -29.1986 520.024 +-423.819 -28.8224 513.324 +-431.31 -28.8159 513.208 +-426.168 -27.9728 498.193 +-430.572 -27.7675 494.537 +-431.829 -27.3627 487.326 +-161.863 -10.0778 179.484 +-164.101 -10.0395 178.803 +-437.707 -26.3137 468.645 +-439.927 -25.9888 462.858 +-441.386 -25.6234 456.35 +-442.624 -25.2505 449.71 +-441.588 -24.7555 440.894 +-430.375 -23.7095 422.264 +-429.446 -23.2488 414.059 +-2376.69 -126.438 2251.84 +-2396.28 -125.271 2231.06 +-423.713 -21.7661 387.651 +-423.295 -21.3666 380.538 +-420.239 -20.843 371.211 +-382.864 -18.6579 332.296 +-420.657 -20.141 358.71 +-381.49 -17.9453 319.605 +-419.378 -19.3805 345.165 +-382.589 -17.3682 309.327 +-383.165 -17.0862 304.304 +-382.579 -16.7566 298.434 +-381.841 -16.4255 292.536 +-140.56 -5.93784 105.752 +-142.202 -5.89888 105.059 +-143.52 -5.84557 104.109 +-142.959 -5.71652 101.811 +-142.369 -5.58851 99.5308 +-142.574 -5.49325 97.8342 +-143.589 -5.42956 96.6999 +-147.431 -5.4705 97.429 +-491.88 -17.9074 318.929 +-2763.37 -98.6918 1757.69 +-2778.63 -97.3363 1733.55 +-2793.68 -95.9735 1709.28 +-500.329 -16.8533 300.155 +-2823.13 -93.2254 1660.33 +-2837.53 -91.8407 1635.67 +-2851.72 -90.4493 1610.89 +-2865.69 -89.0506 1585.98 +-404.607 -12.3155 219.339 +-407.215 -12.1382 216.179 +-405.187 -11.8246 210.595 +-406.388 -11.6081 206.739 +-404.868 -11.3163 201.543 +-385.942 -10.5526 187.941 +-380.169 -10.1655 181.046 +-380.196 -9.93881 177.009 +-380.091 -9.71059 172.945 +-379.852 -9.48096 168.855 +-378.746 -9.23217 164.424 +-379.248 -9.02463 160.728 +-379.622 -8.81519 156.998 +-381.165 -8.63333 153.759 +-381.006 -8.41363 149.846 +-379.967 -8.17672 145.627 +-380.383 -7.97283 141.995 +-379.636 -7.74618 137.959 +-380.544 -7.55457 134.546 +-379.909 -7.33341 130.607 +-380.467 -7.13664 127.103 +-380.137 -6.92422 123.32 +-380.533 -6.72622 119.793 +-382.235 -6.55126 116.677 +-380.651 -6.32102 112.577 +-379.314 -6.0975 108.596 +-379.767 -5.90421 105.153 +-381.154 -5.72543 101.969 +-379.514 -5.50226 97.9946 +-379.871 -5.3096 94.5635 +-379.03 -5.10131 90.8539 +-379.809 -4.91569 87.548 +-379.486 -4.71635 83.9978 +-380.402 -4.53286 80.7297 +-379.623 -4.32982 77.1136 +-379.104 -4.1311 73.5745 +-379.831 -3.94651 70.2869 +-379.151 -3.74788 66.7494 +-379.72 -3.56225 63.4434 +-380.161 -3.37548 60.1169 +-380.771 -3.1902 56.8171 +-379.867 -2.99288 53.3028 +-379.922 -2.804 49.9389 +-379.45 -2.61188 46.5173 +-380.339 -2.42933 43.2661 +-380.604 -2.24258 39.9401 +-379.644 -2.04932 36.4981 +-379.55 -1.86155 33.1541 +-380.224 -1.67756 29.8772 +-379.872 -1.48915 26.5215 +-380.589 -1.30496 23.2412 +-379.579 -1.1152 19.8616 +-379.139 -0.927999 16.5276 +-3274.5 -6.41038 114.168 +-145.75 -0.21396 3.8106 +-145.178 -0.142062 2.5301 +-145.194 -0.0710334 1.2651 +96 1.77636e-15 -2.27374e-13 +95.9963 -0.0394166 0.836819 +95.8854 -0.0787482 1.67184 +95.9671 -0.118238 2.51021 +96.0415 -0.1578 3.35013 +96.0085 -0.197228 4.18718 +95.9683 -0.236641 5.02392 +95.9208 -0.276035 5.86026 +96.7637 -0.318363 6.75889 +96.701 -0.35808 7.6021 +96.7305 -0.398181 8.45345 +96.653 -0.437883 9.29631 +96.5681 -0.47755 10.1385 +96.6745 -0.518249 11.0025 +96.3762 -0.556774 11.8204 +96.2693 -0.596325 12.6601 +96.155 -0.635829 13.4987 +95.9345 -0.674589 14.3216 +95.707 -0.713217 15.1417 +95.5711 -0.752486 15.9754 +96.1172 -0.797419 16.9293 +95.9657 -0.836852 17.7665 +95.8068 -0.876224 18.6024 +95.6407 -0.915526 19.4368 +95.4672 -0.954761 20.2697 +95.4817 -0.995959 21.1444 +95.9755 -1.04253 22.1332 +95.0978 -1.07421 22.8057 +95.7682 -1.12346 23.8513 +96.4275 -1.17334 24.9102 +96.013 -1.21045 25.6981 +95.7849 -1.24983 26.5341 +96.5107 -1.30208 27.6434 +96.4573 -1.34433 28.5403 +96.013 -1.38113 29.3216 +95.7532 -1.4205 30.1575 +96.342 -1.47285 31.2687 +96.9187 -1.52578 32.3926 +96.632 -1.56552 33.2363 +96.338 -1.60514 34.0773 +96.7883 -1.65751 35.1891 +96.4772 -1.69718 36.0315 +97.0924 -1.75359 37.229 +96.7634 -1.79339 38.0739 +96.3344 -1.83129 38.8785 +96.915 -1.88878 40.099 +96.561 -1.9285 40.9423 +96.383 -1.97182 41.8621 +96.8358 -2.02855 43.0664 +96.4559 -2.06823 43.9088 +96.8843 -2.12565 45.1279 +96.4864 -2.16535 45.9706 +96.0811 -2.20488 46.81 +96.4739 -2.26314 48.0468 +96.7633 -2.31976 49.2488 +96.3294 -2.3594 50.0904 +96.6828 -2.41874 51.3502 +96.9335 -2.4763 52.5723 +96.4706 -2.51601 53.4153 +96.7836 -2.57638 54.6969 +97.0814 -2.63719 55.9879 +96.5025 -2.67456 56.7813 +96.7742 -2.73589 58.0834 +96.1778 -2.77306 58.8725 +96.4231 -2.83489 60.1851 +95.8936 -2.87437 61.0233 +96.6987 -2.95464 62.7274 +96.2304 -2.99682 63.623 +96.2513 -3.05464 64.8504 +96.5052 -3.12069 66.2527 +96.578 -3.18179 67.5498 +95.9842 -3.22132 68.3891 +96.0303 -3.28273 69.6928 +96.1413 -3.34722 71.062 +96.2356 -3.41205 72.4384 +96.3131 -3.47721 73.8218 +96.2949 -3.5398 75.1505 +96.2608 -3.60264 76.4845 +96.2884 -3.66867 77.8864 +96.2987 -3.735 79.2947 +95.6023 -3.7744 80.1311 +96.1914 -3.86546 82.0642 +95.4708 -3.90481 82.8996 +96.0161 -3.99685 84.8538 +95.94 -4.06446 86.2891 +96.5096 -4.16092 88.3369 +95.7342 -4.20038 89.1747 +96.1846 -4.29459 91.1747 +96.1038 -4.3666 92.7036 +95.8609 -4.43228 94.0979 +95.6715 -4.50141 95.5655 +96.1648 -4.60428 97.7496 +95.8629 -4.67067 99.159 +95.6813 -4.74398 100.715 +96.0254 -4.84504 102.861 +95.7311 -4.91548 104.356 +95.9533 -5.01405 106.449 +95.5498 -5.08142 107.879 +95.8502 -5.18795 110.141 +95.4689 -5.25932 111.656 +95.7111 -5.36679 113.938 +95.2845 -5.43854 115.461 +95.0903 -5.52502 117.297 +95.1825 -5.63013 119.528 +95.1813 -5.73199 121.691 +95.1494 -5.83433 123.864 +95.2071 -5.94457 126.204 +94.9932 -6.04018 128.234 +95.0449 -6.15507 130.673 +95.4095 -6.29345 133.611 +95.3858 -6.40948 136.074 +94.6465 -6.47939 137.558 +94.951 -6.62337 140.615 +94.7124 -6.73271 142.937 +95.0395 -6.88577 146.186 +94.7797 -6.99992 148.609 +94.4316 -7.11039 150.955 +94.6245 -7.26523 154.242 +94.252 -7.38046 156.688 +94.3006 -7.53239 159.914 +94.35 -7.68897 163.238 +94.2991 -7.84207 166.488 +94.2955 -8.00398 169.926 +94.0957 -8.15402 173.111 +94.3168 -8.34603 177.188 +94.4276 -8.53471 181.193 +94.203 -8.69891 184.679 +93.6123 -8.83409 187.549 +116.651 -11.2531 238.904 +116.712 -11.5129 244.42 +116.896 -11.7949 250.407 +116.819 -12.0608 256.052 +117.181 -12.3834 262.901 +115.438 -12.4914 265.195 +112.687 -12.4907 265.18 +110.021 -12.4974 265.321 +107.025 -12.4635 264.603 +104.416 -12.472 264.782 +101.705 -12.4661 264.657 +99.1087 -12.4721 264.784 +96.4497 -12.4681 264.7 +93.7997 -12.4629 264.589 +92.9823 -12.7056 269.741 +93.0655 -13.0868 277.835 +92.4579 -13.3885 284.241 +92.5272 -13.8074 293.134 +92.3017 -14.2048 301.571 +92.3902 -14.6753 311.559 +92.0629 -15.1061 320.705 +91.9567 -15.6013 331.218 +91.9843 -16.152 342.91 +91.7643 -16.6948 354.433 +91.4465 -17.2569 366.366 +91.1604 -17.8656 379.289 +90.9252 -18.5304 393.404 +91.1211 -19.3388 410.566 +90.6703 -20.0704 426.098 +90.533 -20.9368 444.491 +90.4053 -21.883 464.58 +90.079 -22.8677 485.485 +89.724 -23.9417 508.286 +89.8189 -25.2538 536.143 +89.6839 -26.6421 565.615 +98.8845 -31.1312 660.919 +93.2181 -31.2079 662.547 +88.7709 -31.7254 673.535 +88.0993 -33.7594 716.717 +87.857 -36.2813 770.257 +89.6959 -40.153 852.454 +86.7979 -42.4129 900.433 +86.5457 -46.5435 988.125 +85.0497 -50.8458 1079.46 +83.7636 -56.3606 1196.54 +83.1481 -63.9635 1357.95 +81.126 -72.8335 1546.27 +71.1607 -76.6855 1628.04 +60.5192 -81.5407 1731.12 +71.9264 -129.237 2743.72 +54.2892 -146.338 3106.79 +27.1439 -146.345 3106.94 +1.51879e-13 -146.252 3104.96 +-27.136 -146.303 3106.04 +-54.2386 -146.202 3103.89 +-81.3946 -146.249 3104.89 +-108.527 -146.225 3104.37 +-135.669 -146.202 3103.9 +-133.425 -119.787 2543.09 +-134.984 -103.84 2204.54 +-130.661 -87.916 1866.47 +-120.858 -72.2533 1533.95 +-134.211 -72.1776 1532.34 +-115.398 -56.3883 1197.13 +-125.424 -56.147 1192.01 +-139.489 -57.6032 1222.92 +-157.748 -60.4483 1283.33 +-113.532 -40.5746 861.404 +-120.315 -40.2795 855.139 +-127.87 -40.2565 854.65 +-149.692 -44.4685 944.072 +-379.329 -106.653 2264.27 +-568.924 -151.81 3222.96 +-144.258 -36.6216 777.483 +-152.151 -36.8289 781.883 +-173.789 -40.1907 853.254 +-111.358 -24.6497 523.316 +-114.713 -24.3458 516.864 +-119.314 -24.3161 516.234 +-123.889 -24.2799 515.465 +-129.936 -24.5203 520.569 +-820.32 -149.242 3168.43 +-391.645 -68.7711 1460.02 +-875.553 -148.546 3153.64 +-903.071 -148.18 3145.89 +-930.519 -147.804 3137.9 +-957.897 -147.416 3129.67 +-163.404 -24.384 517.676 +-142.982 -20.7048 439.567 +-144.691 -20.3464 431.957 +-147.092 -20.0993 426.712 +-151.715 -20.158 427.957 +-1120.56 -144.855 3075.3 +-398.571 -50.1574 1064.85 +-1174.26 -143.931 3055.67 +-144.328 -17.2393 365.992 +-143.774 -16.7431 355.459 +-143.736 -16.327 346.625 +-146.133 -16.1981 343.888 +-150.568 -16.2928 345.898 +-1332.75 -140.842 2990.09 +-1358.83 -140.29 2978.37 +-491.125 -49.5547 1052.05 +-1410.48 -139.135 2953.86 +-508.817 -49.0847 1042.07 +-143.319 -13.5249 287.135 +-143.96 -13.2936 282.225 +-141.988 -12.8334 272.454 +-142.719 -12.6292 268.119 +-145.772 -12.6321 268.182 +-148.837 -12.6335 268.211 +-408.958 -34.0096 722.029 +-110.05 -8.96842 190.401 +-108.867 -8.69586 184.614 +-110.064 -8.6186 182.974 +-111.24 -8.54097 181.326 +-112.82 -8.49495 180.349 +-114.284 -8.44037 179.19 +-115.681 -8.38132 177.937 +-117.176 -8.32957 176.838 +-119.108 -8.30844 176.389 +-121.664 -8.329 176.826 +-125.613 -8.44061 179.195 +-414.041 -27.3112 579.821 +-415.212 -26.889 570.857 +-416.316 -26.4716 561.996 +-417.599 -26.0742 553.559 +-418.523 -25.6628 544.826 +-420.251 -25.3084 537.3 +-420.633 -24.8808 528.222 +-422.274 -24.5353 520.887 +-423.946 -24.1976 513.718 +-431.118 -24.174 513.217 +-426.752 -23.5095 499.11 +-430.375 -23.2943 494.541 +-432.426 -22.9969 488.228 +-161.461 -8.43717 179.122 +-163.831 -8.41219 178.592 +-437.502 -22.0744 468.643 +-440.203 -21.8257 463.363 +-442.011 -21.5358 457.209 +-442.204 -21.1723 449.492 +-441.376 -20.767 440.887 +-427.736 -19.777 419.869 +-444.624 -20.202 428.892 +-427.391 -19.0828 405.13 +-422.942 -18.5568 393.963 +-381.836 -16.4625 349.501 +-2434.91 -103.154 2189.98 +-420.838 -17.5182 371.914 +-381.732 -15.6131 331.467 +-418.68 -16.8247 357.19 +-381.72 -15.0704 319.946 +-381.568 -14.7994 314.193 +-383.055 -14.5947 309.848 +-383.556 -14.3549 304.756 +-382.343 -14.0549 298.388 +-381.603 -13.7771 292.49 +-140.32 -4.97509 105.622 +-143.006 -4.97885 105.702 +-142.63 -4.87572 103.512 +-142.226 -4.77324 101.337 +-142.369 -4.69037 99.5772 +-143.316 -4.6344 98.3889 +-144.087 -4.57275 97.0801 +-147.097 -4.58093 97.2539 +-491.377 -15.0141 318.751 +-2763.37 -82.8308 1758.51 +-496.108 -14.5858 309.66 +-498.453 -14.3718 305.115 +-2808.51 -79.3989 1685.65 +-2823.13 -78.2429 1661.11 +-2837.53 -77.0807 1636.44 +-2851.72 -75.9129 1611.64 +-2865.69 -74.739 1586.72 +-406.014 -10.3722 220.203 +-405.008 -10.1322 215.109 +-407.049 -9.96985 211.661 +-407.546 -9.77031 207.425 +-405.763 -9.51863 202.082 +-386.751 -8.87521 188.422 +-378.003 -8.48314 180.098 +-380.196 -8.34152 177.092 +-378.817 -8.12269 172.446 +-379.852 -7.95726 168.934 +-379.663 -7.76722 164.899 +-379.34 -7.5761 160.842 +-380.084 -7.40747 157.262 +-379.682 -7.21762 153.231 +-380.82 -7.05802 149.843 +-379.967 -6.86262 145.694 +-380.102 -6.68656 141.957 +-380.2 -6.51092 138.228 +-380.167 -6.33415 134.475 +-379.342 -6.14566 130.473 +-381.131 -6.00014 127.384 +-381.849 -5.83758 123.933 +-380.247 -5.64095 119.758 +-380.418 -5.47223 116.176 +-379.213 -5.28511 112.204 +-380.179 -5.12923 108.894 +-380.827 -4.96916 105.496 +-379.802 -4.78825 101.655 +-380.579 -4.63093 98.3154 +-380.356 -4.46197 94.7284 +-379.03 -4.28147 90.8962 +-379.225 -4.11933 87.454 +-379.389 -3.95736 84.0153 +-379.815 -3.7985 80.6427 +-379.623 -3.63396 77.1496 +-380.871 -3.48334 73.9519 +-380.421 -3.3174 70.4288 +-379.643 -3.14964 66.8673 +-379.72 -2.98975 63.4729 +-380.161 -2.833 60.1449 +-380.079 -2.67263 56.7403 +-380.461 -2.51581 53.4111 +-379.525 -2.35091 49.9101 +-380.741 -2.19958 46.6973 +-379.843 -2.03624 43.2297 +-379.311 -1.87578 39.823 +-379.644 -1.71997 36.5151 +-380.148 -1.56484 33.2218 +-380.424 -1.4087 29.9068 +-379.473 -1.24851 26.506 +-380.589 -1.09524 23.252 +-380.278 -0.937696 19.9074 +-379.538 -0.779677 16.5526 +-3274.5 -5.38015 114.221 +-146.35 -0.180313 3.82807 +-145.478 -0.119477 2.53652 +-145.294 -0.0596588 1.26657 +96.1 1.77636e-15 1.13687e-13 +95.9963 -0.0318671 0.837141 +96.0854 -0.0637982 1.67597 +95.9671 -0.0955916 2.51117 +96.9409 -0.128772 3.3828 +96.9077 -0.160946 4.22802 +95.9683 -0.191317 5.02585 +95.8209 -0.222934 5.85642 +96.7637 -0.257386 6.76148 +96.701 -0.289497 7.60502 +96.7305 -0.321917 8.4567 +96.653 -0.354015 9.29988 +96.5681 -0.386084 10.1424 +96.4758 -0.418125 10.984 +96.3762 -0.450134 11.8249 +96.2693 -0.48211 12.6649 +96.155 -0.514048 13.5039 +96.8247 -0.550443 14.46 +95.707 -0.576614 15.1475 +96.4587 -0.614014 16.13 +96.3142 -0.646009 16.9705 +95.9657 -0.676569 17.7733 +95.8068 -0.7084 18.6095 +95.6407 -0.740174 19.4442 +95.4672 -0.771895 20.2775 +95.4817 -0.805202 21.1525 +95.9755 -0.842857 22.1417 +95.7784 -0.874684 22.9778 +95.7682 -0.908284 23.8604 +95.5562 -0.940039 24.6946 +96.013 -0.978614 25.708 +95.7849 -1.01045 26.5443 +95.5494 -1.04221 27.3786 +96.2655 -1.08469 28.4945 +96.013 -1.1166 29.3329 +96.6115 -1.15872 30.4395 +96.342 -1.19075 31.2807 +96.9187 -1.23355 32.405 +96.632 -1.26568 33.249 +96.2437 -1.29643 34.057 +96.7883 -1.34004 35.2026 +96.3836 -1.37078 36.0102 +96.999 -1.41636 37.2075 +96.7634 -1.4499 38.0885 +97.1689 -1.49337 39.2304 +96.915 -1.52702 40.1144 +96.561 -1.55913 40.958 +96.2913 -1.59264 41.8384 +96.8358 -1.64002 43.0829 +96.4559 -1.6721 43.9257 +96.0686 -1.70405 44.7651 +96.4864 -1.75062 45.9883 +96.0811 -1.78258 46.828 +96.3844 -1.82798 48.0207 +96.6742 -1.87373 49.2223 +97.2164 -1.92506 50.571 +96.6828 -1.95547 51.3699 +96.1426 -1.98568 52.1634 +96.4706 -2.03412 53.4358 +96.6965 -2.08105 54.6687 +96.2154 -2.11307 55.5098 +96.4163 -2.16037 56.7524 +96.7742 -2.21188 58.1057 +97.0305 -2.26181 59.4173 +96.4231 -2.29192 60.2082 +96.5683 -2.34019 61.4763 +96.6987 -2.38873 62.7515 +96.147 -2.42074 63.5922 +96.2513 -2.46958 64.8753 +96.4228 -2.52083 66.2215 +95.9227 -2.55492 67.1172 +95.9842 -2.60434 68.4153 +96.0303 -2.65398 69.7196 +96.1413 -2.70612 71.0893 +96.2356 -2.75854 72.4662 +95.5991 -2.79038 73.3027 +96.3737 -2.86416 75.2409 +96.3391 -2.91499 76.5761 +96.2107 -2.96361 77.8535 +96.2987 -3.01963 79.3251 +96.1386 -3.0686 80.6114 +96.1914 -3.1251 82.0957 +96.15 -3.17937 83.5214 +96.0161 -3.23133 84.8864 +96.0143 -3.28854 86.3891 +95.8461 -3.34084 87.7631 +96.3193 -3.41663 89.7542 +96.1846 -3.47204 91.2097 +95.4564 -3.50648 92.1145 +95.7895 -3.58069 94.064 +96.3079 -3.66346 96.2382 +96.0947 -3.7197 97.7158 +95.9323 -3.77882 99.2689 +95.6813 -3.83536 100.754 +95.3434 -3.88922 102.169 +95.6636 -3.9712 104.322 +95.8864 -4.05089 106.416 +95.5498 -4.10817 107.921 +95.1942 -4.16557 109.429 +96.0534 -4.27802 112.383 +95.7111 -4.33888 113.981 +95.5389 -4.40864 115.814 +95.5938 -4.49043 117.963 +95.1825 -4.55178 119.574 +95.1197 -4.63117 121.66 +95.1494 -4.71687 123.911 +95.0868 -4.79991 126.093 +95.1716 -4.89246 128.524 +94.9861 -4.9731 130.642 +95.4676 -5.09118 133.744 +94.9269 -5.15695 135.472 +95.1562 -5.26661 138.353 +94.895 -5.35163 140.586 +94.6572 -5.44 142.907 +95.0395 -5.56693 146.242 +94.7797 -5.65921 148.666 +95.0145 -5.78402 151.945 +94.6245 -5.87372 154.301 +94.767 -5.99947 157.605 +94.3006 -6.0897 159.975 +93.85 -6.18335 162.435 +94.2499 -6.33676 166.465 +94.247 -6.46762 169.903 +94.0957 -6.59227 173.178 +94.2699 -6.74416 177.168 +94.012 -6.86965 180.464 +94.1576 -7.02942 184.661 +93.5677 -7.1387 187.532 +116.651 -9.09775 238.996 +116.798 -9.31465 244.694 +116.812 -9.52888 250.322 +116.819 -9.75076 256.15 +117.181 -10.0116 263.002 +115.438 -10.0989 265.297 +112.687 -10.0984 265.282 +109.677 -10.0721 264.592 +107.025 -10.0764 264.704 +104.416 -10.0832 264.884 +101.705 -10.0784 264.758 +99.1087 -10.0833 264.886 +96.4497 -10.0801 264.801 +93.8331 -10.0795 264.785 +92.9823 -10.2721 269.845 +92.7799 -10.5478 277.089 +92.5506 -10.8351 284.635 +92.6475 -11.1774 293.627 +92.3602 -11.4915 301.878 +92.163 -11.8353 310.912 +92.0077 -12.2055 320.637 +91.7162 -12.5802 330.479 +91.7772 -13.029 342.269 +91.7142 -13.4898 354.375 +91.4223 -13.948 366.41 +91.3238 -14.4697 380.116 +90.9477 -14.985 393.653 +90.9479 -15.6051 409.943 +90.5871 -16.2114 425.871 +90.4931 -16.9193 444.466 +90.2145 -17.6544 463.777 +89.915 -18.4542 484.787 +89.724 -19.3561 508.482 +89.6869 -20.3869 535.56 +89.6682 -21.5355 565.733 +98.781 -25.1422 660.481 +93.3156 -25.2569 663.494 +88.5229 -25.5773 671.911 +88.0019 -27.2632 716.199 +87.4608 -29.2 767.078 +89.6959 -32.4624 852.781 +86.6925 -34.2479 899.684 +86.4672 -37.5949 987.61 +84.979 -41.073 1078.98 +83.7078 -45.5357 1196.21 +83.0382 -51.644 1356.68 +81.0318 -58.8151 1545.06 +71.1694 -62.0055 1628.87 +60.4983 -65.9003 1731.19 +71.1699 -103.385 2715.9 +54.2892 -118.31 3107.98 +27.1395 -118.297 3107.63 +1.38556e-13 -118.199 3105.05 +-27.1133 -118.183 3104.63 +-54.2299 -118.181 3104.58 +-81.3606 -118.188 3104.78 +-108.537 -118.229 3105.86 +-135.687 -118.215 3105.49 +-133.399 -96.8248 2543.57 +-135.027 -83.9776 2206.07 +-130.717 -71.1078 1867.99 +-120.827 -58.3994 1534.14 +-134.185 -58.3419 1532.63 +-115.427 -45.5996 1197.89 +-125.361 -45.3703 1191.87 +-139.364 -46.5289 1222.3 +-157.784 -48.882 1284.12 +-113.493 -32.7919 861.437 +-120.315 -32.5647 855.467 +-127.87 -32.5461 854.979 +-149.692 -35.9514 944.435 +-379.296 -86.2184 2264.94 +-398.575 -85.9845 2258.79 +-144.367 -29.6299 778.371 +-152.323 -29.8086 783.066 +-173.729 -32.4817 853.288 +-111.524 -19.9582 524.298 +-114.908 -19.7162 517.941 +-119.247 -19.6477 516.14 +-123.936 -19.6369 515.857 +-130.033 -19.8386 521.157 +-820.32 -120.657 3169.64 +-392.085 -55.6617 1462.22 +-405.588 -55.632 1461.44 +-903.071 -119.799 3147.1 +-930.519 -119.495 3139.11 +-957.897 -119.182 3130.87 +-163.404 -19.7137 517.875 +-142.982 -16.7392 439.736 +-144.754 -16.4566 432.312 +-146.701 -16.2066 425.743 +-151.482 -16.272 427.461 +-1120.56 -117.111 3076.48 +-398.991 -40.5933 1066.38 +-1174.26 -116.364 3056.85 +-144.255 -13.9303 365.947 +-143.774 -13.5363 355.595 +-143.659 -13.1928 346.573 +-146.094 -13.0921 343.928 +-150.568 -13.1722 346.031 +-1332.75 -113.866 2991.24 +-1358.83 -113.42 2979.51 +-490.829 -40.0395 1051.83 +-1410.48 -112.487 2955 +-508.686 -39.6732 1042.21 +-141.936 -10.8289 284.473 +-144.006 -10.7508 282.422 +-141.988 -10.3754 272.559 +-142.719 -10.2103 268.222 +-145.629 -10.2026 268.021 +-149.127 -10.2337 268.838 +-408.367 -27.456 721.264 +-109.8 -7.23422 190.041 +-108.816 -7.02706 184.599 +-110.064 -6.96787 183.044 +-111.24 -6.90511 181.396 +-112.237 -6.83245 179.487 +-114.122 -6.81415 179.006 +-116.063 -6.79837 178.592 +-117.121 -6.73104 176.823 +-119.108 -6.71712 176.457 +-121.607 -6.73062 176.812 +-125.785 -6.83333 179.51 +-414.448 -22.102 580.613 +-414.682 -21.7112 570.348 +-416.852 -21.429 562.935 +-417.961 -21.0984 554.251 +-418.523 -20.7476 545.035 +-420.251 -20.461 537.507 +-420.82 -20.1243 528.66 +-422.463 -19.8449 521.32 +-423.628 -19.5483 513.53 +-430.925 -19.5352 513.184 +-426.493 -18.9951 498.998 +-430.244 -18.827 494.581 +-432.426 -18.5923 488.415 +-161.194 -6.80989 178.894 +-163.966 -6.80658 178.807 +-437.979 -17.866 469.335 +-439.583 -17.6206 462.889 +-441.386 -17.3864 456.738 +-442.204 -17.1172 449.664 +-441.588 -16.7976 441.268 +-443.499 -16.5783 435.51 +-428.151 -15.7276 413.162 +-426.738 -15.4042 404.666 +-2396.28 -85.0008 2232.95 +-420.69 -14.6637 385.213 +-422.701 -14.4777 380.326 +-421.512 -14.1856 372.653 +-382.638 -12.6526 332.381 +-419.364 -13.6245 357.912 +-382.869 -12.2206 321.032 +-420.072 -13.1722 346.03 +-417.561 -12.8623 337.889 +-382.148 -11.5629 303.754 +-381.082 -11.3255 297.519 +-381.365 -11.1314 292.42 +-140.4 -4.02449 105.722 +-142.926 -4.02297 105.682 +-143.439 -3.9642 104.139 +-142.959 -3.87887 101.897 +-142.369 -3.79202 99.6155 +-142.656 -3.72953 97.9739 +-144.087 -3.69692 97.1174 +-147.431 -3.71194 97.5119 +-491.88 -12.1508 319.2 +-2763.37 -66.9661 1759.19 +-496.532 -11.8023 310.043 +-2793.68 -65.1216 1710.73 +-2808.51 -64.1916 1686.3 +-2823.13 -63.257 1661.75 +-2837.53 -62.3174 1637.06 +-404.28 -8.7007 228.565 +-2865.69 -60.4242 1587.33 +-403.992 -8.34385 219.191 +-404.478 -8.18086 214.909 +-404.92 -8.01816 210.635 +-405.943 -7.86791 206.688 +-405.226 -7.68532 201.892 +-386.302 -7.167 188.276 +-378.273 -6.86326 180.296 +-379.652 -6.73423 176.907 +-380.091 -6.589 173.092 +-380.126 -6.43783 169.121 +-378.471 -6.25985 164.445 +-379.248 -6.12356 160.864 +-380.269 -5.99164 157.399 +-380.331 -5.84522 153.553 +-381.006 -5.70897 149.973 +-380.247 -5.55229 145.857 +-380.102 -5.40587 142.011 +-380.106 -5.26258 138.247 +-381.393 -5.13747 134.96 +-379.342 -4.96858 130.523 +-380.467 -4.84248 127.211 +-380.423 -4.70189 123.518 +-380.342 -4.56167 119.834 +-380.705 -4.42747 116.309 +-380.076 -4.28258 112.503 +-380.179 -4.14682 108.936 +-379.381 -4.00216 105.136 +-379.416 -3.8672 101.59 +-379.804 -3.73635 98.153 +-380.647 -3.61013 94.8373 +-378.446 -3.45611 90.7911 +-380.102 -3.33805 87.6899 +-379.974 -3.20434 84.1773 +-379.815 -3.07097 80.6737 +-379.917 -2.94022 77.239 +-380.184 -2.81109 73.8468 +-379.438 -2.67508 70.2738 +-380.628 -2.55299 67.0664 +-380.608 -2.42278 63.6458 +-380.26 -2.29099 60.1837 +-380.079 -2.16074 56.7621 +-379.669 -2.02972 53.3204 +-379.922 -1.90262 49.9814 +-379.847 -1.77412 46.6056 +-380.637 -1.64968 43.3368 +-379.311 -1.51651 39.8383 +-379.843 -1.39126 36.5482 +-379.949 -1.26446 33.2171 +-380.424 -1.13889 29.9183 +-379.773 -1.01018 26.5371 +-380.09 -0.884304 23.2305 +-379.879 -0.757303 19.8942 +-379.538 -0.630344 16.559 +-379.269 -0.503804 13.2348 +-142.951 -0.142391 3.74059 +-144.578 -0.095996 2.52179 +-144.994 -0.0481326 1.26443 +96 1.77636e-15 -2.27374e-13 +95.9963 -0.0243135 0.837394 +95.9854 -0.0486252 1.67472 +95.9671 -0.0729332 2.51193 +95.9415 -0.0972355 3.34894 +96.0085 -0.121657 4.19005 +95.9683 -0.145968 5.02737 +95.9208 -0.170268 5.86429 +95.8659 -0.194555 6.70078 +96.701 -0.220877 7.60732 +95.7343 -0.243083 8.37214 +96.653 -0.270101 9.3027 +96.767 -0.295176 10.1663 +95.681 -0.316389 10.8969 +96.3762 -0.343438 11.8285 +96.2693 -0.367834 12.6688 +96.155 -0.392201 13.508 +96.0334 -0.41654 14.3463 +95.707 -0.439937 15.1521 +96.4587 -0.468472 16.1349 +96.1172 -0.491876 16.941 +95.9657 -0.5162 17.7787 +95.8068 -0.540486 18.6152 +95.6407 -0.564728 19.4501 +95.4672 -0.58893 20.2837 +95.4817 -0.614342 21.1589 +95.9755 -0.643072 22.1484 +95.7784 -0.667355 22.9847 +95.7682 -0.69299 23.8676 +96.2339 -0.722306 24.8773 +96.013 -0.74665 25.7158 +95.7849 -0.770939 26.5523 +96.5107 -0.803169 27.6623 +96.2655 -0.827579 28.5031 +96.8737 -0.859568 29.6048 +96.6115 -0.884069 30.4487 +96.342 -0.908503 31.2902 +96.0652 -0.93287 32.1295 +96.5374 -0.964722 33.2265 +96.338 -0.990105 34.1007 +95.8486 -1.01248 34.8714 +96.3836 -1.04586 36.0211 +97.0924 -1.08168 37.2546 +96.6704 -1.10516 38.0635 +97.1689 -1.13939 39.2423 +96.915 -1.16506 40.1266 +96.561 -1.18957 40.9704 +96.2913 -1.21513 41.8511 +96.8358 -1.25128 43.0959 +96.4559 -1.27576 43.939 +96.0686 -1.30014 44.7786 +96.4864 -1.33566 46.0022 +96.0811 -1.36005 46.8422 +96.3844 -1.39469 48.0353 +96.7633 -1.43091 49.2826 +96.3294 -1.45536 50.1248 +96.6828 -1.49196 51.3854 +96.1426 -1.51501 52.1792 +96.4706 -1.55196 53.452 +96.0002 -1.57634 54.2914 +96.302 -1.61365 55.5766 +96.5025 -1.64976 56.8204 +96.7742 -1.68759 58.1233 +96.1778 -1.71052 58.913 +96.4231 -1.74866 60.2264 +96.484 -1.78393 61.4412 +96.7826 -1.8241 62.8248 +96.2304 -1.84854 63.6667 +96.3342 -1.88583 64.9508 +96.4228 -1.92331 66.2416 +95.8408 -1.94765 67.0801 +95.9842 -1.98702 68.4361 +96.0303 -2.0249 69.7407 +95.4178 -2.04915 70.5758 +96.2356 -2.10467 72.4882 +96.3131 -2.14487 73.8725 +96.3737 -2.18526 75.2637 +96.2608 -2.22223 76.537 +96.2884 -2.26297 77.94 +95.6814 -2.28911 78.8405 +96.2152 -2.34311 80.7001 +96.1914 -2.38435 82.1206 +96.15 -2.42576 83.5467 +96.0161 -2.4654 84.9121 +95.94 -2.5071 86.3484 +95.8461 -2.54895 87.7897 +96.3193 -2.60678 89.7814 +96.1121 -2.64705 91.1686 +95.3125 -2.67129 92.0034 +95.7895 -2.73195 94.0924 +95.7423 -2.77868 95.702 +96.0947 -2.83801 97.7454 +95.8629 -2.88103 99.2271 +95.6125 -2.92416 100.713 +95.9572 -2.98644 102.858 +95.7311 -3.03204 104.428 +95.8864 -3.09069 106.448 +95.5498 -3.1344 107.954 +95.8502 -3.20011 110.217 +95.5338 -3.24634 111.809 +95.1326 -3.29043 113.327 +95.1573 -3.35021 115.386 +95.0903 -3.40802 117.378 +95.1825 -3.47286 119.611 +95.1813 -3.53569 121.775 +95.1494 -3.59882 123.949 +95.147 -3.6645 126.211 +95.0527 -3.72811 128.402 +95.0449 -3.79666 130.763 +94.9449 -3.86313 133.052 +94.9269 -3.93458 135.513 +95.0996 -4.01587 138.313 +94.951 -4.08553 140.712 +94.7124 -4.15297 143.035 +94.4949 -4.22303 145.448 +94.7797 -4.31779 148.711 +94.5906 -4.39334 151.313 +94.6245 -4.48145 154.348 +94.252 -4.55253 156.796 +94.3006 -4.64624 160.024 +94.3 -4.7403 163.263 +94.2991 -4.83727 166.603 +94.1985 -4.93205 169.867 +94.0957 -5.02969 173.23 +94.2699 -5.14557 177.221 +94.0582 -5.2439 180.608 +94.1122 -5.36063 184.628 +93.6123 -5.44918 187.678 +116.256 -6.9178 238.26 +116.841 -7.10941 244.859 +116.558 -7.25446 249.855 +116.902 -7.44479 256.41 +117.222 -7.64116 263.173 +115.398 -7.70248 265.285 +113.039 -7.72875 266.19 +110.021 -7.70881 265.503 +107.025 -7.68794 264.784 +104.709 -7.71476 265.708 +101.705 -7.68951 264.838 +99.4239 -7.71769 265.809 +96.4839 -7.69349 264.975 +93.8331 -7.69029 264.865 +93.2427 -7.8592 270.683 +92.7799 -8.04765 277.173 +92.4579 -8.25853 284.436 +92.437 -8.50861 293.05 +92.331 -8.76482 301.874 +92.3334 -9.04666 311.581 +92.118 -9.32359 321.119 +91.9834 -9.62624 331.542 +92.0102 -9.96595 343.242 +91.6391 -10.2839 354.193 +91.3255 -10.6306 366.133 +91.3472 -11.0427 380.328 +91.0827 -11.45 394.356 +90.9046 -11.9005 409.871 +90.8158 -12.4 427.075 +90.3336 -12.8861 443.817 +90.3862 -13.4954 464.801 +90.0061 -14.0942 485.425 +89.724 -14.7681 508.636 +89.7034 -15.5574 535.82 +89.5431 -16.408 565.115 +98.7958 -19.1856 660.78 +93.2042 -19.2472 662.904 +88.6142 -19.5348 672.808 +88.014 -20.8038 716.515 +87.8457 -22.3767 770.687 +89.6959 -24.7678 853.04 +86.6254 -26.1098 899.26 +86.3975 -28.6605 987.112 +84.9163 -31.3141 1078.51 +83.631 -34.7103 1195.48 +83.081 -39.423 1357.79 +80.9951 -44.8537 1544.83 +71.1694 -47.3081 1629.36 +60.5262 -50.3029 1732.51 +71.8426 -79.625 2742.4 +54.3084 -90.2986 3110.02 +27.1483 -90.2855 3109.57 +1.58984e-13 -90.1961 3106.49 +-27.1011 -90.1288 3104.17 +-54.2002 -90.1186 3103.82 +-81.3422 -90.1537 3105.03 +-108.548 -90.2138 3107.1 +-135.709 -90.2089 3106.93 +-133.415 -73.8829 2544.64 +-134.984 -64.0521 2206.05 +-130.717 -54.2529 1868.55 +-120.827 -44.5568 1534.6 +-134.333 -44.562 1534.78 +-115.398 -34.7823 1197.96 +-125.486 -34.6505 1193.42 +-139.466 -35.5259 1223.56 +-157.87 -37.3154 1285.2 +-113.466 -25.0134 861.5 +-120.315 -24.8458 855.726 +-127.781 -24.8143 854.644 +-149.786 -27.4469 945.314 +-379.444 -65.8076 2266.51 +-398.87 -65.6518 2261.15 +-144.422 -22.6152 778.902 +-152.495 -22.7686 784.186 +-173.789 -24.791 853.84 +-111.524 -15.2275 524.457 +-114.886 -15.04 518 +-119.224 -14.9877 516.198 +-123.913 -14.9795 515.917 +-129.864 -15.1165 520.636 +-820.32 -92.0576 3170.6 +-392.007 -42.4596 1462.37 +-405.775 -42.4651 1462.56 +-903.071 -91.4029 3148.05 +-930.519 -91.1707 3140.06 +-957.897 -90.9315 3131.82 +-163.434 -15.0437 518.127 +-142.982 -12.7715 439.869 +-145.008 -12.5779 433.201 +-146.766 -12.3705 426.06 +-151.882 -12.4478 428.721 +-1120.56 -89.3518 3077.41 +-399.201 -30.9876 1067.26 +-1174.26 -88.7816 3057.77 +-144.658 -10.6581 367.081 +-143.774 -10.3277 355.703 +-143.659 -10.0657 346.678 +-145.704 -9.96215 343.111 +-150.408 -10.0393 345.769 +-1332.75 -86.8762 2992.15 +-1358.83 -86.5355 2980.41 +-491.505 -30.5909 1053.6 +-1410.66 -85.834 2956.25 +-508.73 -30.2719 1042.61 +-143.14 -8.33221 286.974 +-144.097 -8.20771 282.686 +-141.988 -7.91606 272.641 +-142.813 -7.79524 268.48 +-145.39 -7.77153 267.663 +-148.982 -7.80041 268.658 +-408.318 -20.9455 721.395 +-109.8 -5.51947 190.099 +-108.867 -5.36391 184.741 +-110.115 -5.31872 183.185 +-111.24 -5.26837 181.451 +-112.767 -5.23754 180.389 +-114.337 -5.20878 179.398 +-116.008 -5.18449 178.562 +-117.231 -5.14038 177.042 +-119.611 -5.14659 177.256 +-121.098 -5.11371 176.124 +-125.613 -5.20646 179.318 +-414.215 -16.8536 580.464 +-415.447 -16.5954 571.572 +-416.316 -16.3286 562.382 +-417.419 -16.0765 553.701 +-418.889 -15.8436 545.676 +-419.327 -15.5768 536.488 +-421.193 -15.3678 529.29 +-421.519 -15.1071 520.313 +-423.819 -14.9214 513.916 +-430.925 -14.9047 513.34 +-427.077 -14.5125 499.832 +-430.178 -14.3622 494.655 +-433.022 -14.2049 489.237 +-160.658 -5.17845 178.354 +-163.763 -5.18678 178.641 +-437.707 -13.6227 469.185 +-439.927 -13.4545 463.392 +-441.386 -13.2653 456.876 +-442.204 -13.0598 449.8 +-441.588 -12.816 441.402 +-428.378 -12.2175 420.789 +-427.576 -11.9835 412.731 +-423.691 -11.669 401.899 +-2396.28 -64.8528 2233.63 +-381.836 -10.1546 349.741 +-420.248 -10.9819 378.234 +-422.786 -10.8558 373.891 +-382.336 -9.64592 332.22 +-420.048 -10.412 358.604 +-381.72 -9.29593 320.166 +-382.957 -9.162 315.553 +-383.055 -9.00255 310.061 +-382.774 -8.83654 304.344 +-382.422 -8.67137 298.655 +-382 -8.50704 292.996 +-140.4 -3.07055 105.754 +-142.926 -3.06939 105.714 +-143.196 -3.01944 103.994 +-143.04 -2.96117 101.987 +-142.369 -2.89318 99.6456 +-143.233 -2.85702 98.3999 +-143.755 -2.81414 96.9232 +-148.348 -2.84971 98.1482 +-2747.9 -51.7909 1783.76 +-2763.37 -51.0929 1759.72 +-496.532 -9.00475 310.137 +-498.794 -8.87107 305.533 +-2808.51 -48.976 1686.81 +-2823.13 -48.263 1662.25 +-2837.53 -47.5461 1637.56 +-2851.72 -46.8258 1612.75 +-2865.69 -46.1017 1587.81 +-405.223 -6.38547 219.925 +-2892.98 -44.643 1537.57 +-405.541 -6.12697 211.022 +-405.943 -6.00295 206.751 +-406.032 -5.87531 202.355 +-385.223 -5.45292 187.807 +-379.988 -5.26018 181.169 +-379.834 -5.14044 177.044 +-379.181 -5.01517 172.73 +-379.03 -4.89769 168.684 +-379.663 -4.79109 165.012 +-378.42 -4.66188 160.562 +-381.008 -4.5803 157.753 +-378.291 -4.43577 152.775 +-380.448 -4.34937 149.799 +-379.967 -4.23311 145.795 +-379.821 -4.12146 141.949 +-380.2 -4.01616 138.323 +-380.167 -3.90712 134.567 +-379.342 -3.79086 130.563 +-380.278 -3.69279 127.185 +-380.993 -3.59275 123.74 +-380.247 -3.47954 119.84 +-381.566 -3.38565 116.607 +-379.788 -3.26497 112.451 +-379.314 -3.15669 108.721 +-380.249 -3.06048 105.408 +-379.995 -2.95504 101.776 +-379.804 -2.85071 98.1827 +-379.386 -2.74528 94.5517 +-379.613 -2.64503 91.0987 +-379.615 -2.54356 87.604 +-379.389 -2.44104 84.073 +-378.934 -2.33762 80.5111 +-380.505 -2.24676 77.382 +-379.792 -2.14256 73.7929 +-379.831 -2.04311 70.3679 +-379.348 -1.94129 66.8611 +-379.72 -1.84419 63.5165 +-379.47 -1.74431 60.0768 +-380.672 -1.65114 56.8678 +-379.867 -1.54942 53.3643 +-380.517 -1.45391 50.0749 +-379.649 -1.35288 46.5954 +-380.339 -1.25767 43.3159 +-379.808 -1.15856 39.9026 +-379.246 -1.05982 36.5018 +-380.148 -0.965248 33.2446 +-379.526 -0.866885 29.8568 +-380.072 -0.771337 26.566 +-380.289 -0.675049 23.2497 +-379.879 -0.577797 19.9002 +-379.139 -0.480427 16.5466 +-3274.5 -3.31866 114.3 +-145.25 -0.110387 3.80191 +-146.678 -0.0743054 2.55919 +-145.594 -0.0368754 1.27004 +96 1.77636e-15 -2.27374e-13 +95.9963 -0.016758 0.837579 +95.9854 -0.0335147 1.67509 +95.9671 -0.0502689 2.51249 +95.9415 -0.0670192 3.34968 +95.9086 -0.0837644 4.18662 +96.8671 -0.10155 5.07557 +95.8209 -0.117234 5.85949 +96.7637 -0.135352 6.76503 +95.7041 -0.150669 7.53056 +96.7305 -0.169287 8.46113 +95.8567 -0.184632 9.2281 +96.5681 -0.203031 10.1477 +96.4758 -0.21988 10.9898 +96.3762 -0.236713 11.8311 +96.2693 -0.253528 12.6716 +96.155 -0.270323 13.511 +96.0334 -0.287098 14.3494 +95.707 -0.303225 15.1555 +95.5711 -0.31992 15.9899 +95.4279 -0.336591 16.8231 +95.9657 -0.355789 17.7826 +95.8068 -0.372528 18.6193 +95.6407 -0.389237 19.4544 +95.4672 -0.405918 20.2881 +95.2865 -0.422567 21.1203 +95.9755 -0.443234 22.1533 +95.9729 -0.460906 23.0365 +95.7682 -0.477641 23.8729 +96.2339 -0.497846 24.8828 +96.2062 -0.515662 25.7732 +95.7849 -0.531366 26.5582 +96.5107 -0.55358 27.6685 +96.2655 -0.570405 28.5094 +96.013 -0.587189 29.3482 +95.7532 -0.603928 30.1849 +96.342 -0.626182 31.2971 +96.9187 -0.648688 32.422 +96.5374 -0.664931 33.2338 +96.2437 -0.681758 34.0749 +95.9426 -0.698533 34.9133 +96.3836 -0.720857 36.0291 +97.0924 -0.745541 37.2628 +96.7634 -0.76246 38.1085 +97.1689 -0.785318 39.2509 +96.915 -0.803016 40.1355 +96.653 -0.820685 41.0186 +96.2913 -0.837526 41.8603 +96.7445 -0.861624 43.0648 +96.4559 -0.87931 43.9487 +96.8843 -0.903722 45.1689 +96.4864 -0.920599 46.0124 +96.0811 -0.937408 46.8525 +96.4739 -0.962177 48.0905 +96.7633 -0.986247 49.2935 +96.3294 -1.0031 50.1359 +96.5945 -1.02739 51.3499 +96.1426 -1.04421 52.1908 +96.4706 -1.06968 53.4638 +96.6965 -1.09436 54.6974 +96.2154 -1.1112 55.5389 +96.5025 -1.13709 56.8329 +95.917 -1.15287 57.6213 +96.9452 -1.18838 59.3962 +96.3383 -1.20419 60.1868 +95.8936 -1.22204 61.0788 +95.9439 -1.24636 62.2942 +96.147 -1.273 63.6256 +96.2513 -1.29868 64.9093 +95.6811 -1.31543 65.7466 +96.578 -1.35274 67.6112 +95.9842 -1.36955 68.4512 +96.0303 -1.39566 69.7561 +96.8648 -1.43378 71.6618 +96.2356 -1.45064 72.5042 +96.3131 -1.47834 73.8888 +96.3737 -1.50618 75.2803 +96.2608 -1.53166 76.554 +96.3661 -1.561 78.0201 +96.2987 -1.58794 79.3667 +96.2152 -1.61497 80.7179 +96.1914 -1.6434 82.1388 +96.15 -1.67194 83.5652 +96.0161 -1.69927 84.9309 +95.3455 -1.7173 85.8323 +95.8461 -1.75685 87.8091 +95.7342 -1.7858 89.2557 +96.1846 -1.82585 91.2575 +96.1038 -1.85646 92.7878 +95.7895 -1.88298 94.1133 +96.2372 -1.92509 96.2179 +96.0947 -1.95609 97.767 +95.8629 -1.98574 99.249 +95.6813 -2.01691 100.807 +95.4116 -2.04669 102.296 +95.6636 -2.08834 104.377 +95.2842 -2.11686 105.803 +95.5498 -2.16037 107.977 +95.8502 -2.20566 110.241 +95.4689 -2.23601 111.758 +95.7111 -2.28169 114.041 +95.5389 -2.31838 115.875 +95.0903 -2.34897 117.404 +95.1202 -2.39209 119.559 +95.1813 -2.43696 121.802 +95.0885 -2.47889 123.897 +95.2071 -2.52734 126.319 +95.1122 -2.57121 128.511 +95.1037 -2.61845 130.873 +95.003 -2.66426 133.162 +95.271 -2.72171 136.034 +94.6465 -2.75472 137.683 +94.895 -2.81427 140.66 +94.6572 -2.86074 142.982 +94.5493 -2.91239 145.564 +94.7259 -2.97434 148.66 +94.4846 -3.02469 151.177 +94.52 -3.08542 154.212 +94.3035 -3.13951 156.916 +94.1991 -3.19894 159.886 +94.3 -3.26723 163.299 +94.2991 -3.33406 166.64 +94.247 -3.40114 169.992 +94.4297 -3.47899 173.883 +94.2699 -3.54656 177.261 +94.0582 -3.61434 180.648 +94.1122 -3.69479 184.669 +93.6569 -3.75762 187.809 +116.256 -4.76806 238.312 +116.927 -4.90373 245.093 +116.558 -5.00011 249.91 +116.861 -5.12947 256.376 +117.14 -5.26297 263.048 +115.398 -5.3089 265.344 +112.687 -5.31044 265.421 +109.983 -5.31142 265.47 +107.063 -5.30074 264.936 +104.746 -5.31922 265.86 +101.705 -5.29996 264.897 +99.1087 -5.30252 265.025 +96.4839 -5.3027 265.034 +93.8331 -5.3005 264.924 +92.8846 -5.3961 269.702 +92.6847 -5.54111 276.95 +92.4888 -5.69405 284.594 +92.4971 -5.86832 293.304 +92.4479 -6.04878 302.323 +92.2482 -6.22963 311.363 +92.0629 -6.42238 320.997 +91.7429 -6.61748 330.748 +91.829 -6.85544 342.641 +91.6641 -7.09007 354.368 +91.1078 -7.30959 365.34 +91.2771 -7.60532 380.121 +90.9477 -7.88019 393.859 +90.7964 -8.19261 409.474 +90.6287 -8.52905 426.29 +90.2937 -8.87777 443.719 +90.1 -9.27216 463.431 +89.7874 -9.69076 484.353 +89.6893 -10.1749 508.551 +89.6704 -10.7189 535.742 +89.5431 -11.3091 565.24 +98.6628 -13.2058 660.036 +93.3156 -13.2819 663.842 +88.3923 -13.4306 671.272 +88.2212 -14.3727 718.36 +87.5514 -15.3713 768.274 +89.675 -17.0671 853.029 +86.6158 -17.9941 899.36 +86.3888 -19.7521 987.23 +85.0497 -21.6171 1080.44 +83.5683 -23.9059 1194.84 +82.91 -27.1163 1355.3 +81.126 -30.9652 1547.67 +71.1868 -32.6149 1630.12 +60.5157 -34.6651 1732.59 +71.9657 -54.9752 2747.71 +54.3171 -62.2479 3111.21 +27.1483 -62.2289 3110.26 +1.43885e-13 -62.1513 3106.38 +-27.1186 -62.1609 3106.86 +-54.2334 -62.1519 3106.41 +-81.3475 -62.1421 3105.92 +-108.537 -62.1735 3107.49 +-135.735 -62.1881 3108.22 +-133.436 -50.9314 2545.6 +-135.052 -44.1694 2207.63 +-130.752 -37.4034 1869.46 +-120.772 -30.6966 1534.24 +-134.29 -30.7044 1534.63 +-115.542 -24.0034 1199.71 +-125.455 -23.8769 1193.39 +-139.557 -24.502 1224.63 +-157.809 -25.7097 1284.99 +-113.649 -17.2682 863.078 +-120.44 -17.1427 856.807 +-127.914 -17.121 855.723 +-149.692 -18.9058 944.93 +-379.461 -45.3596 2267.12 +-399.287 -45.2976 2264.02 +-144.531 -15.5992 779.663 +-152.495 -15.6932 784.359 +-173.729 -17.0812 853.735 +-111.358 -10.4798 523.791 +-114.886 -10.3662 518.114 +-119.224 -10.3302 516.313 +-123.913 -10.3246 516.031 +-129.791 -10.4132 520.46 +-820.32 -63.4503 3171.31 +-392.163 -29.2767 1463.28 +-405.721 -29.2649 1462.69 +-903.071 -62.999 3148.75 +-930.519 -62.839 3140.75 +-957.897 -62.6742 3132.51 +-163.674 -10.384 519.004 +-142.982 -8.80268 439.966 +-144.945 -8.66545 433.107 +-146.864 -8.53201 426.438 +-151.515 -8.55885 427.779 +-1120.56 -61.5854 3078.09 +-398.886 -21.3413 1066.66 +-1174.26 -61.1923 3058.45 +-144.621 -7.34419 367.07 +-143.699 -7.11465 355.597 +-143.621 -6.9359 346.663 +-145.899 -6.87559 343.648 +-150.647 -6.93056 346.396 +-1332.75 -59.8791 2992.81 +-1358.83 -59.6442 2981.07 +-491.336 -21.0772 1053.46 +-1410.48 -59.1535 2956.55 +-508.993 -20.8756 1043.38 +-142.248 -5.70714 285.248 +-144.051 -5.65535 282.659 +-141.988 -5.45611 272.701 +-142.86 -5.37459 268.627 +-145.104 -5.34593 267.195 +-149.127 -5.38164 268.979 +-408.367 -14.4383 721.642 +-109.95 -3.80947 190.401 +-109.273 -3.71085 185.472 +-110.167 -3.66763 183.311 +-111.292 -3.6329 181.576 +-112.82 -3.61164 180.513 +-114.069 -3.58169 179.016 +-115.627 -3.56165 178.014 +-117.563 -3.553 177.582 +-119.108 -3.53234 176.55 +-121.551 -3.53778 176.822 +-125.613 -3.58853 179.358 +-414.041 -11.6114 580.348 +-415.447 -11.4383 571.699 +-416.614 -11.2625 562.908 +-417.961 -11.0951 554.541 +-419.315 -10.9312 546.353 +-420.435 -10.7646 538.025 +-420.82 -10.5828 528.937 +-421.959 -10.4234 520.972 +-424.201 -10.2938 514.493 +-431.118 -10.2776 513.683 +-427.077 -10.0027 499.943 +-430.244 -9.90058 494.84 +-432.426 -9.77715 488.671 +-162.063 -3.60045 179.954 +-165.79 -3.61922 180.892 +-437.707 -9.38936 469.289 +-440.203 -9.27922 463.784 +-442.011 -9.15598 457.624 +-442.204 -9.00143 449.9 +-441.588 -8.83336 441.5 +-442.572 -8.69986 434.827 +-444.192 -8.5806 428.866 +-424.344 -8.0552 402.606 +-2396.28 -44.6995 2234.12 +-421.28 -7.72204 385.955 +-382.199 -6.88393 344.065 +-422.186 -7.47174 373.444 +-383.317 -6.66545 333.145 +-420.048 -7.1764 358.683 +-380.954 -6.39432 319.594 +-383.034 -6.31613 315.686 +-382.356 -6.19364 309.564 +-381.052 -6.06314 303.041 +-382.579 -5.97916 298.844 +-382 -5.86344 293.06 +-140.4 -2.11636 105.778 +-143.006 -2.11676 105.798 +-143.196 -2.08114 104.017 +-142.959 -2.03979 101.951 +-142.942 -2.00214 100.069 +-143.233 -1.96919 98.4217 +-143.589 -1.9374 96.8328 +-147.181 -1.94869 97.3974 +-491.88 -6.38978 319.367 +-493.806 -6.29292 314.526 +-496.023 -6.20012 309.888 +-498.027 -6.10493 305.13 +-501.1 -6.02291 301.031 +-503.708 -5.93522 296.648 +-2837.53 -32.7709 1637.92 +-2851.72 -32.2745 1613.11 +-403.287 -4.47173 223.501 +-405.574 -4.40498 220.165 +-406.597 -4.32462 216.149 +-405.719 -4.22485 211.162 +-406.21 -4.14023 206.933 +-404.689 -4.03615 201.731 +-387.56 -3.78121 188.988 +-379.808 -3.62384 181.123 +-380.196 -3.5464 177.253 +-378.453 -3.45005 172.436 +-379.852 -3.38303 169.087 +-378.104 -3.28868 164.371 +-379.248 -3.2202 160.949 +-378.606 -3.13705 156.793 +-380.331 -3.07384 153.633 +-379.983 -2.99412 149.649 +-379.967 -2.91765 145.827 +-380.195 -2.8435 142.121 +-380.2 -2.76812 138.353 +-379.979 -2.69165 134.531 +-380.193 -2.6187 130.885 +-381.131 -2.55096 127.499 +-381.849 -2.48185 124.045 +-379.389 -2.39285 119.597 +-380.418 -2.32652 116.282 +-379.597 -2.24925 112.42 +-379.698 -2.17794 108.855 +-381.116 -2.11424 105.672 +-380.285 -2.03831 101.877 +-380.288 -1.96734 98.3296 +-380.647 -1.89846 94.887 +-379.71 -1.82354 91.1422 +-380.394 -1.75674 87.8033 +-379.974 -1.68507 84.2214 +-379.913 -1.61535 80.7367 +-380.211 -1.54738 77.3393 +-379.104 -1.47408 73.6757 +-380.225 -1.40967 70.4564 +-379.545 -1.33872 66.9106 +-380.114 -1.27242 63.5966 +-380.161 -1.20445 60.1996 +-380.277 -1.13686 56.8213 +-381.154 -1.07155 53.557 +-379.823 -1.00027 49.9946 +-380.344 -0.934175 46.691 +-380.24 -0.866615 43.3142 +-379.708 -0.798325 39.901 +-380.042 -0.732011 36.5866 +-379.849 -0.664771 33.2259 +-380.125 -0.598439 29.9105 +-379.174 -0.530384 26.5091 +-380.19 -0.465152 23.2487 +-379.379 -0.39772 19.8784 +-378.639 -0.330694 16.5284 +-3274.5 -2.28737 114.325 +-144.95 -0.075927 3.7949 +-145.178 -0.050691 2.53358 +-145.994 -0.025486 1.27382 +96 1.77636e-15 -2.27374e-13 +95.9963 -0.00920109 0.837696 +95.9854 -0.0184015 1.67533 +95.9671 -0.0276005 2.51284 +95.9415 -0.0367974 3.35015 +95.9086 -0.0459914 4.18721 +95.9683 -0.0552396 5.02919 +95.9208 -0.0644354 5.86641 +95.7661 -0.0735499 6.69622 +95.8038 -0.082812 7.53947 +96.6309 -0.0928526 8.4536 +96.653 -0.102216 9.30606 +96.5681 -0.111476 10.1491 +96.4758 -0.120727 10.9913 +96.3762 -0.129969 11.8328 +96.2693 -0.139201 12.6733 +96.3531 -0.148728 13.5407 +95.9345 -0.157471 14.3366 +95.707 -0.166488 15.1576 +95.5711 -0.175654 15.9921 +95.2309 -0.184427 16.7908 +95.9657 -0.195348 17.7851 +95.8068 -0.204539 18.6219 +95.6407 -0.213713 19.4571 +95.4672 -0.222872 20.291 +96.1652 -0.234153 21.318 +96.1703 -0.243855 22.2014 +95.9729 -0.253064 23.0397 +95.5741 -0.26172 23.8279 +95.3625 -0.27087 24.6609 +96.013 -0.282559 25.725 +95.7849 -0.291751 26.5619 +96.5107 -0.303947 27.6723 +96.2655 -0.313185 28.5134 +96.013 -0.3224 29.3523 +96.6115 -0.334563 30.4597 +96.342 -0.34381 31.3015 +96.0652 -0.353031 32.1411 +96.632 -0.365443 33.2711 +96.2437 -0.374324 34.0796 +96.6944 -0.386539 35.1918 +96.3836 -0.395792 36.0341 +97.0924 -0.409345 37.2681 +96.6704 -0.418232 38.0772 +96.4271 -0.427893 38.9568 +96.915 -0.440902 40.1411 +96.561 -0.450173 40.9852 +96.2913 -0.45985 41.8662 +96.7445 -0.473081 43.0708 +96.4559 -0.482791 43.9548 +96.8843 -0.496195 45.1752 +96.4864 -0.505461 46.0188 +96.8001 -0.518542 47.2098 +96.4739 -0.52829 48.0972 +96.0505 -0.537517 48.9372 +96.3294 -0.550759 50.1429 +96.6828 -0.564611 51.404 +96.1426 -0.573333 52.1981 +96.3831 -0.586785 53.4228 +96.7836 -0.601409 54.7542 +96.2154 -0.610113 55.5466 +96.5025 -0.624329 56.8409 +96.6885 -0.63808 58.0928 +96.1778 -0.647322 58.9342 +96.4231 -0.661754 60.2482 +96.484 -0.675102 61.4634 +95.9439 -0.684323 62.3029 +96.2304 -0.699554 63.6897 +96.3342 -0.713664 64.9743 +96.4228 -0.727847 66.2655 +95.8408 -0.737061 67.1044 +95.9842 -0.751959 68.4608 +96.0303 -0.766295 69.7659 +96.1413 -0.781349 71.1365 +96.2356 -0.796483 72.5143 +96.2338 -0.811026 73.8383 +96.2949 -0.826303 75.2293 +96.2608 -0.840971 76.5647 +96.2107 -0.855695 77.9052 +96.2987 -0.87187 79.3778 +95.6023 -0.881066 80.2151 +95.507 -0.895902 81.5658 +96.15 -0.917991 83.5769 +96.091 -0.933723 85.0091 +96.0143 -0.949511 86.4465 +95.7723 -0.963871 87.7539 +95.7342 -0.980504 89.2682 +96.1121 -1.00174 91.2015 +96.1757 -1.02007 92.8702 +95.8609 -1.03464 94.1965 +95.6715 -1.05077 95.6657 +96.0947 -1.074 97.7807 +95.8629 -1.09028 99.2629 +95.6125 -1.10661 100.749 +95.9572 -1.13018 102.895 +95.7311 -1.14743 104.466 +95.8864 -1.16963 106.487 +95.5498 -1.18617 107.992 +95.1942 -1.20274 109.501 +95.4689 -1.22769 111.773 +95.0683 -1.24437 113.291 +95.1573 -1.26784 115.428 +95.0903 -1.28972 117.42 +95.1202 -1.3134 119.576 +95.0581 -1.33631 121.662 +95.2103 -1.36279 124.073 +95.2071 -1.38765 126.336 +95.1122 -1.41174 128.529 +94.9273 -1.43501 130.648 +94.8869 -1.46104 133.018 +94.7548 -1.48628 135.316 +94.6465 -1.5125 137.703 +94.951 -1.54611 140.763 +94.6572 -1.57071 143.002 +94.5493 -1.59907 145.584 +94.4035 -1.62753 148.175 +94.4846 -1.66073 151.198 +94.1542 -1.68751 153.637 +94.3035 -1.72377 156.938 +94.3006 -1.7583 160.081 +94.3 -1.7939 163.322 +94.2499 -1.82964 166.576 +94.1985 -1.86646 169.929 +94.048 -1.90244 173.205 +93.8474 -1.93853 176.49 +94.012 -1.9835 180.584 +94.1576 -2.02963 184.784 +93.6123 -2.06216 187.746 +116.738 -2.6288 239.335 +116.97 -2.69342 245.217 +116.6 -2.74633 250.035 +116.819 -2.81537 256.321 +117.14 -2.88967 263.085 +115.398 -2.91489 265.381 +112.687 -2.91574 265.458 +109.983 -2.91628 265.507 +107.362 -2.91856 265.715 +104.709 -2.91954 265.804 +102.063 -2.92024 265.868 +99.1087 -2.91139 265.062 +96.4839 -2.91149 265.071 +94.1335 -2.91959 265.809 +93.2102 -2.97316 270.686 +92.7482 -3.04447 277.178 +92.5197 -3.1274 284.729 +92.4971 -3.22205 293.345 +92.3895 -3.31902 302.174 +91.9642 -3.40989 310.447 +92.0904 -3.52732 321.139 +91.8231 -3.63655 331.083 +91.7514 -3.76086 342.4 +91.614 -3.89072 354.224 +91.3739 -4.02511 366.459 +91.1371 -4.16934 379.59 +90.9477 -4.32667 393.914 +90.9696 -4.50679 410.312 +90.5871 -4.68078 426.153 +90.3535 -4.87763 444.075 +90.2145 -5.09742 464.085 +89.9515 -5.3305 485.306 +89.6893 -5.58661 508.622 +89.6539 -5.88422 535.718 +89.6682 -6.21803 566.109 +98.3819 -7.23008 658.249 +93.3016 -7.29144 663.836 +88.5229 -7.38504 672.357 +88.0993 -7.88053 717.469 +87.8457 -8.46813 770.965 +89.6854 -9.37191 853.249 +86.5295 -9.86993 898.59 +86.3975 -10.8462 987.468 +84.9006 -11.8482 1078.69 +83.4287 -13.1039 1193.02 +82.7879 -14.8664 1353.49 +80.5189 -16.8744 1536.3 +71.2086 -17.9129 1630.85 +60.5122 -19.032 1732.74 +85.7635 -35.9717 3274.98 +54.3241 -34.182 3112.04 +27.1552 -34.176 3111.49 +1.47438e-13 -34.1279 3107.11 +-27.109 -34.1178 3106.19 +-54.2351 -34.126 3106.94 +-81.3422 -34.1174 3106.15 +-108.593 -34.1543 3109.51 +-135.722 -34.1415 3108.35 +-133.446 -27.9665 2546.16 +-135.07 -24.2548 2208.24 +-130.779 -20.541 1870.12 +-120.858 -16.8663 1535.56 +-134.263 -16.8552 1534.55 +-115.561 -13.1814 1200.08 +-125.424 -13.1065 1193.26 +-139.364 -13.4345 1223.12 +-157.894 -14.1237 1285.86 +-113.545 -9.47249 862.406 +-120.357 -9.40578 856.332 +-127.87 -9.39715 855.546 +-149.833 -10.3901 945.951 +-379.411 -24.9017 2267.13 +-399.269 -24.8699 2264.23 +-144.476 -8.56162 779.477 +-152.647 -8.62508 785.255 +-173.689 -9.37641 853.659 +-111.441 -5.75832 524.255 +-114.886 -5.69166 518.187 +-119.179 -5.66973 516.19 +-123.913 -5.66877 516.103 +-129.936 -5.72382 521.115 +-820.42 -34.8421 3172.14 +-392.007 -16.0682 1462.9 +-875.553 -34.6753 3156.95 +-903.071 -34.5901 3149.19 +-930.519 -34.5022 3141.19 +-957.897 -34.4117 3132.95 +-163.494 -5.69515 518.505 +-142.982 -4.83317 440.027 +-144.976 -4.75887 433.263 +-146.896 -4.6856 426.592 +-151.715 -4.70552 428.405 +-1120.56 -33.8139 3078.52 +-398.886 -11.7176 1066.81 +-1174.26 -33.5981 3058.88 +-144.475 -4.0283 366.749 +-143.774 -3.90838 355.832 +-144.042 -3.81936 347.727 +-145.977 -3.77711 343.88 +-150.767 -3.80829 346.719 +-1332.75 -32.877 2993.23 +-1358.83 -32.7481 2981.49 +-491.632 -11.5796 1054.25 +-1410.48 -32.4787 2956.96 +-508.817 -11.4579 1043.17 +-142.516 -3.13944 285.825 +-144.006 -3.10413 282.61 +-142.08 -2.99766 272.917 +-142.813 -2.94999 268.577 +-145.199 -2.93715 267.408 +-149.467 -2.96155 269.629 +-408.515 -7.93034 722.003 +-109.8 -2.08876 190.168 +-109.324 -2.03842 185.584 +-110.167 -2.01374 183.337 +-111.292 -1.99467 181.601 +-112.661 -1.9802 180.284 +-114.66 -1.97674 179.969 +-116.172 -1.96475 178.877 +-117.121 -1.94348 176.94 +-119.052 -1.93855 176.491 +-121.211 -1.93702 176.352 +-125.613 -1.97031 179.383 +-414.215 -6.37801 580.674 +-415.212 -6.27675 571.456 +-416.852 -6.18727 563.309 +-417.961 -6.09182 554.619 +-419.315 -6.00187 546.429 +-420.989 -5.91818 538.809 +-420.82 -5.81055 529.011 +-422.148 -5.72562 521.279 +-423.819 -5.64679 514.102 +-431.632 -5.64971 514.368 +-427.077 -5.49204 500.013 +-430.834 -5.44344 495.588 +-432.426 -5.36822 488.74 +-161.595 -1.97113 179.458 +-164.439 -1.97096 179.442 +-438.32 -5.16252 470.013 +-440.203 -5.09482 463.849 +-441.664 -5.0232 457.328 +-441.993 -4.93995 449.749 +-442.437 -4.85935 442.41 +-424.027 -4.57657 416.666 +-424.482 -4.50219 409.893 +-381.474 -3.97596 361.984 +-2396.28 -24.5426 2234.44 +-420.69 -4.23391 385.469 +-420.248 -4.15594 378.37 +-421.437 -4.09513 372.834 +-382.411 -3.65107 332.405 +-419.364 -3.93384 358.149 +-381.414 -3.51509 320.025 +-383.034 -3.46791 315.73 +-381.346 -3.39168 308.789 +-382.069 -3.33791 303.894 +-382.343 -3.28087 298.701 +-381.365 -3.21402 292.614 +-140.4 -1.162 105.793 +-142.845 -1.16092 105.694 +-143.358 -1.14396 104.15 +-142.877 -1.11932 101.907 +-142.205 -1.09362 99.5669 +-143.151 -1.08057 98.3789 +-144.17 -1.06804 97.2377 +-146.931 -1.06812 97.2454 +-492.635 -3.51374 319.902 +-2763.37 -19.3354 1760.35 +-496.532 -3.40772 310.249 +-498.027 -3.35195 305.173 +-2808.51 -18.5343 1687.42 +-2823.13 -18.2644 1662.85 +-2837.53 -17.9931 1638.15 +-2851.72 -17.7205 1613.33 +-2865.69 -17.4465 1588.38 +-407.068 -2.42749 221.007 +-405.273 -2.36672 215.474 +-406.783 -2.32577 211.745 +-405.497 -2.26924 206.599 +-404.421 -2.21461 201.625 +-385.223 -2.06358 187.875 +-378.003 -1.98024 180.287 +-380.196 -1.94718 177.277 +-378.635 -1.89518 172.544 +-379.852 -1.85748 169.111 +-379.021 -1.81005 164.793 +-379.064 -1.76722 160.893 +-380.084 -1.72914 157.427 +-379.404 -1.68359 153.28 +-381.006 -1.64837 150.073 +-381.741 -1.60944 146.528 +-380.757 -1.56355 142.35 +-379.636 -1.51761 138.168 +-380.827 -1.48116 134.85 +-380.855 -1.44032 131.131 +-380.467 -1.39819 127.295 +-380.423 -1.35759 123.6 +-381.487 -1.32107 120.275 +-380.705 -1.27836 116.386 +-379.788 -1.23558 112.491 +-380.179 -1.19733 109.008 +-379.767 -1.15673 105.313 +-378.933 -1.11517 101.529 +-380.288 -1.08018 98.3434 +-380.647 -1.04237 94.9003 +-380.197 -1.00251 91.2716 +-379.615 -0.962572 87.6356 +-379.096 -0.923061 84.0384 +-380.402 -0.888062 80.852 +-379.917 -0.84894 77.2902 +-379.104 -0.809352 73.686 +-380.913 -0.775387 70.5937 +-380.037 -0.735989 67.0068 +-380.114 -0.69863 63.6055 +-380.655 -0.662171 60.2862 +-380.277 -0.624201 56.8293 +-379.471 -0.585743 53.3279 +-381.31 -0.551358 50.1974 +-380.244 -0.512782 46.6853 +-380.24 -0.475821 43.3203 +-380.206 -0.438899 39.9588 +-379.545 -0.40139 36.5438 +-379.949 -0.365093 33.2392 +-379.726 -0.328232 29.8833 +-380.072 -0.291901 26.5756 +-378.892 -0.254523 23.1726 +-378.98 -0.218142 19.8603 +-379.139 -0.18181 16.5526 +-3274.5 -1.2559 114.341 +-144.251 -0.0414869 3.7771 +-145.778 -0.0279472 2.54441 +-145.994 -0.0139933 1.27399 +96.1 1.77636e-15 1.13687e-13 +95.9963 -0.00164345 0.837745 +95.9854 -0.00328677 1.67543 +95.9671 -0.00492986 2.51299 +95.9415 -0.00657255 3.35034 +95.9086 -0.00821474 4.18745 +95.9683 -0.0098666 5.02948 +95.8209 -0.0114971 5.86065 +96.7637 -0.0132739 6.76637 +96.8007 -0.0149453 7.61837 +96.7305 -0.0166019 8.4628 +96.653 -0.0182573 9.3066 +96.4686 -0.0198908 10.1393 +96.4758 -0.0215635 10.992 +96.3762 -0.0232144 11.8335 +96.2693 -0.0248634 12.6741 +96.155 -0.0265105 13.5137 +95.9345 -0.0281266 14.3375 +95.8058 -0.0297678 15.1741 +95.5711 -0.0313744 15.9931 +95.4279 -0.0330094 16.8265 +95.9657 -0.0348921 17.7862 +95.8068 -0.0365336 18.623 +95.6407 -0.0381723 19.4583 +95.4672 -0.0398082 20.2922 +95.2865 -0.041441 21.1245 +95.9755 -0.0434678 22.1577 +95.9729 -0.0452009 23.0411 +95.5741 -0.0467471 23.8293 +95.3625 -0.0483814 24.6624 +96.013 -0.0504691 25.7266 +95.7849 -0.0521109 26.5634 +95.5494 -0.0537488 27.3983 +96.2655 -0.0559395 28.515 +96.013 -0.0575854 29.354 +96.6115 -0.0597578 30.4614 +96.342 -0.0614094 31.3033 +96.8238 -0.0635544 32.3967 +96.632 -0.0652735 33.273 +96.1494 -0.0667942 34.0482 +95.9426 -0.0685049 34.9202 +96.3836 -0.0706942 36.0362 +96.0654 -0.0723416 36.876 +96.7634 -0.0747742 38.116 +96.4271 -0.076428 38.959 +96.915 -0.0787515 40.1434 +96.561 -0.0804076 40.9876 +96.2913 -0.0821359 41.8686 +95.9223 -0.083781 42.7072 +96.4559 -0.0862336 43.9574 +96.0686 -0.0878814 44.7974 +96.4864 -0.0902828 46.0215 +95.9912 -0.0918452 46.8179 +96.4739 -0.0943603 48.1 +96.8524 -0.09681 49.3487 +96.4181 -0.0984643 50.192 +96.6828 -0.100848 51.407 +96.9335 -0.103248 52.6305 +96.4706 -0.104904 53.4744 +96.0002 -0.106551 54.3142 +96.302 -0.109073 55.5999 +96.5025 -0.111514 56.8442 +96.7742 -0.114071 58.1477 +96.9452 -0.116544 59.408 +96.4231 -0.118199 60.2517 +96.484 -0.120583 61.467 +95.9439 -0.12223 62.3066 +96.2304 -0.124951 63.6934 +96.2513 -0.127361 64.9222 +96.4228 -0.130004 66.2694 +95.8408 -0.13165 67.1083 +95.9842 -0.134311 68.4648 +96.0303 -0.136871 69.77 +95.4178 -0.13851 70.6054 +95.5168 -0.141201 71.977 +96.1544 -0.144742 73.7818 +96.2161 -0.147469 75.1722 +96.2608 -0.15021 76.5692 +96.2884 -0.152963 77.9726 +96.2216 -0.155604 79.3188 +95.6023 -0.157371 80.2197 +96.1153 -0.16104 82.09 +96.15 -0.163967 83.5817 +96.091 -0.166777 85.014 +95.94 -0.169465 86.3846 +95.8461 -0.172294 87.8265 +96.3193 -0.176203 89.819 +96.1121 -0.178925 91.2068 +96.0319 -0.181927 92.7367 +95.8609 -0.184801 94.202 +95.6715 -0.187683 95.6713 +95.3237 -0.190294 97.0019 +95.8629 -0.194741 99.2687 +95.6125 -0.197656 100.755 +95.9572 -0.201866 102.901 +95.7311 -0.204948 104.472 +95.8864 -0.208913 106.493 +95.5498 -0.211867 107.999 +95.1942 -0.214827 109.508 +95.4689 -0.219284 111.78 +95.5825 -0.223465 113.911 +95.5389 -0.227363 115.898 +95.0903 -0.230362 117.427 +95.1825 -0.234745 119.661 +95.1813 -0.238992 121.826 +95.2103 -0.243414 124.08 +95.147 -0.247698 126.264 +95.0527 -0.251998 128.456 +94.9273 -0.256314 130.656 +94.8288 -0.260805 132.945 +95.3858 -0.267239 136.225 +94.6465 -0.270154 137.711 +94.895 -0.275995 140.688 +94.7124 -0.280716 143.095 +94.4404 -0.285287 145.425 +94.7797 -0.291857 148.774 +94.4316 -0.296463 151.122 +94.6245 -0.30292 154.413 +94.252 -0.307724 156.862 +94.3006 -0.314058 160.091 +94.3 -0.320416 163.332 +94.2499 -0.3268 166.586 +94.247 -0.333548 170.026 +94.048 -0.339804 173.215 +94.2699 -0.34781 177.296 +94.0582 -0.354457 180.684 +94.1576 -0.362521 184.795 +93.6123 -0.368332 187.757 +116.782 -0.469719 239.439 +116.884 -0.48073 245.052 +116.6 -0.490535 250.05 +116.861 -0.503045 256.427 +117.099 -0.51596 263.009 +115.398 -0.520642 265.396 +112.687 -0.520793 265.473 +110.021 -0.52107 265.614 +107.362 -0.521297 265.73 +104.416 -0.520013 265.075 +102.063 -0.521598 265.883 +99.4239 -0.52167 265.92 +96.4839 -0.520034 265.086 +93.8331 -0.519818 264.976 +93.1776 -0.530863 270.606 +93.0655 -0.545647 278.142 +92.5197 -0.5586 284.745 +92.5272 -0.575693 293.458 +92.3017 -0.592262 301.904 +92.2482 -0.610938 311.424 +92.0077 -0.629464 320.868 +92.0903 -0.651432 332.066 +91.7255 -0.671554 342.323 +91.4137 -0.693421 353.47 +91.3497 -0.718753 366.383 +91.1371 -0.744705 379.612 +90.9027 -0.772425 393.742 +90.7531 -0.803063 409.36 +90.6287 -0.836441 426.374 +90.3735 -0.871409 444.199 +90.2336 -0.910665 464.21 +89.9332 -0.951911 485.235 +89.6719 -0.997657 508.554 +89.6374 -1.05081 535.651 +89.6526 -1.11044 566.043 +98.5002 -1.29295 659.079 +93.3016 -1.30236 663.875 +88.5229 -1.31908 672.397 +88.209 -1.40933 718.404 +87.8457 -1.51253 771.011 +89.7586 -1.67533 853.994 +86.4337 -1.76096 897.646 +86.3888 -1.93709 987.426 +84.9712 -2.11802 1079.66 +83.3729 -2.33897 1192.29 +82.7452 -2.65399 1352.87 +80.1473 -3.0001 1529.3 +71.1912 -3.19873 1630.55 +60.5367 -3.40077 1733.54 +85.7635 -6.42508 3275.17 +54.3328 -6.10639 3112.72 +27.1526 -6.10375 3111.37 +1.55431e-13 -6.09515 3106.99 +-27.1099 -6.09413 3106.47 +-54.2456 -6.09659 3107.72 +-81.3292 -6.09288 3105.83 +-108.59 -6.10025 3109.59 +-135.787 -6.10112 3110.03 +-133.404 -4.99365 2545.51 +-135.1 -4.33325 2208.87 +-130.8 -3.66951 1870.53 +-120.811 -3.01138 1535.05 +-134.229 -3.00979 1534.24 +-115.437 -2.35186 1198.86 +-125.518 -2.34276 1194.22 +-139.478 -2.40153 1224.18 +-158.101 -2.52601 1287.63 +-113.701 -1.69426 863.646 +-120.44 -1.68118 856.976 +-127.914 -1.67905 855.892 +-149.833 -1.85583 946.006 +-379.461 -4.4484 2267.57 +-399.373 -4.44328 2264.96 +-144.531 -1.52981 779.817 +-152.666 -1.54076 785.398 +-173.929 -1.67707 854.884 +-111.358 -1.02775 523.895 +-114.929 -1.017 518.412 +-119.157 -1.01251 516.123 +-123.913 -1.01253 516.133 +-129.815 -1.02141 520.66 +-820.42 -6.22331 3172.32 +-392.188 -2.87135 1463.67 +-405.374 -2.86755 1461.73 +-903.071 -6.17829 3149.37 +-930.519 -6.1626 3141.37 +-957.897 -6.14643 3133.13 +-163.404 -1.01668 518.249 +-142.982 -0.863275 440.053 +-144.976 -0.850004 433.288 +-146.766 -0.836176 426.239 +-152.016 -0.842138 429.278 +-1120.56 -6.03966 3078.7 +-398.886 -2.09293 1066.87 +-1174.26 -6.00111 3059.05 +-144.438 -0.71933 366.677 +-143.774 -0.698094 355.852 +-143.659 -0.680382 346.823 +-146.251 -0.675911 344.544 +-150.647 -0.679677 346.464 +-1332.75 -5.87232 2993.4 +-1358.83 -5.84929 2981.66 +-491.209 -2.06651 1053.4 +-1410.48 -5.80117 2957.13 +-508.817 -2.04656 1043.23 +-141.132 -0.555308 283.067 +-144.097 -0.554792 282.804 +-142.034 -0.535253 272.844 +-142.813 -0.526912 268.592 +-145.343 -0.525137 267.687 +-148.982 -0.527261 268.77 +-408.662 -1.41699 722.307 +-109.8 -0.373083 190.179 +-109.324 -0.364091 185.595 +-110.218 -0.359851 183.434 +-111.292 -0.356277 181.612 +-112.661 -0.353694 180.295 +-114.499 -0.352579 179.727 +-115.518 -0.34896 177.882 +-117.176 -0.347296 177.034 +-119.555 -0.347716 177.248 +-121.551 -0.346949 176.857 +-125.613 -0.351926 179.394 +-414.448 -1.13984 581.033 +-415.153 -1.12096 571.408 +-415.96 -1.10277 562.136 +-417.599 -1.08715 554.172 +-419.315 -1.07202 546.461 +-419.696 -1.05383 537.186 +-421.567 -1.03969 529.981 +-422.777 -1.0242 522.086 +-423.564 -1.008 513.824 +-430.925 -1.00747 513.555 +-427.337 -0.981555 500.346 +-430.244 -0.970946 494.938 +-432.823 -0.959723 489.217 +-162.197 -0.353386 180.138 +-2213.57 -4.73898 2415.69 +-438.593 -0.922677 470.333 +-439.721 -0.909014 463.368 +-442.289 -0.898489 458.003 +-442.624 -0.883607 450.417 +-441.588 -0.866285 441.587 +-442.572 -0.853192 434.913 +-423.331 -0.801975 408.805 +-427.391 -0.795644 405.578 +-386.374 -0.706818 360.299 +-2415.69 -4.34247 2213.57 +-421.512 -0.744545 379.53 +-422.186 -0.73275 373.518 +-382.638 -0.652521 332.621 +-419.288 -0.702514 358.105 +-381.643 -0.628225 320.236 +-419.378 -0.678194 345.708 +-381.89 -0.606667 309.247 +-381.913 -0.595954 303.786 +-381.87 -0.585288 298.349 +-381.365 -0.57407 292.631 +-140.48 -0.207669 105.859 +-142.845 -0.207357 105.7 +-143.196 -0.204096 104.038 +-142.226 -0.199017 101.449 +-142.287 -0.195449 99.63 +-143.398 -0.19334 98.5545 +-144.087 -0.190658 97.1875 +-147.431 -0.191432 97.5823 +-491.88 -0.626643 319.43 +-2763.37 -3.45358 1760.46 +-496.023 -0.608044 309.949 +-498.453 -0.599222 305.452 +-2808.51 -3.31049 1687.52 +-2823.13 -3.26229 1662.95 +-2837.53 -3.21384 1638.25 +-2851.72 -3.16514 1613.43 +-403.812 -0.439112 223.837 +-405.047 -0.431432 219.922 +-406.244 -0.423746 216.004 +-405.719 -0.414329 211.204 +-406.21 -0.406031 206.974 +-407.285 -0.398363 203.065 +-386.751 -0.370047 188.631 +-380.259 -0.35581 181.374 +-379.652 -0.347298 177.035 +-379.181 -0.338996 172.803 +-379.852 -0.331773 169.121 +-378.746 -0.323067 164.683 +-379.524 -0.316034 161.098 +-379.899 -0.308699 157.359 +-380.331 -0.30145 153.664 +-379.61 -0.293346 149.533 +-380.621 -0.286625 146.107 +-378.978 -0.277968 141.694 +-379.354 -0.270867 138.074 +-380.167 -0.264098 134.624 +-381.044 -0.257389 131.204 +-380.752 -0.249923 127.398 +-380.708 -0.242668 123.7 +-380.247 -0.235196 119.891 +-380.705 -0.228334 116.393 +-380.076 -0.220862 112.584 +-380.179 -0.21386 109.015 +-379.67 -0.206556 105.292 +-379.802 -0.199643 101.768 +-380.288 -0.192937 98.3491 +-379.968 -0.185849 94.7364 +-380.197 -0.179063 91.2769 +-379.615 -0.171929 87.6407 +-379.096 -0.164872 84.0433 +-380.108 -0.158499 80.7943 +-379.329 -0.151399 77.1752 +-379.988 -0.144899 73.8621 +-380.225 -0.138245 70.4704 +-379.643 -0.131322 66.9413 +-380.608 -0.124948 63.6918 +-380.161 -0.11812 60.2115 +-379.98 -0.111405 56.7883 +-380.263 -0.104841 53.4424 +-381.211 -0.0984549 50.1872 +-379.351 -0.0913753 46.5784 +-380.24 -0.0849887 43.3228 +-379.311 -0.0782094 39.8671 +-380.938 -0.0719573 36.6801 +-380.447 -0.0652964 33.2847 +-380.224 -0.058704 29.9242 +-380.471 -0.0521925 26.605 +-379.79 -0.0455695 23.229 +-379.579 -0.0390249 19.8929 +-379.139 -0.032474 16.5536 +-3274.5 -0.224322 114.348 +-145.15 -0.00745639 3.80088 +-146.178 -0.00500548 2.55154 +-145.494 -0.00249085 1.26971 +95.9 3.55271e-15 -1.7053e-13 +95.9963 0.00591345 0.837726 +95.9854 0.0118264 1.67539 +95.9671 0.0177386 2.51293 +95.9415 0.0236493 3.35027 +95.9086 0.0295582 4.18736 +95.8684 0.0354649 5.02412 +95.8209 0.0413689 5.86051 +95.7661 0.0472698 6.69645 +96.701 0.0537208 7.61034 +96.7305 0.0597369 8.46261 +96.653 0.0656931 9.30639 +96.5681 0.0716442 10.1494 +96.4758 0.0775898 10.9917 +96.3762 0.0835297 11.8332 +96.4676 0.0896475 12.6999 +96.155 0.0953898 13.5134 +95.9345 0.101205 14.3371 +95.8058 0.10711 15.1737 +95.5711 0.112891 15.9927 +96.1172 0.119632 16.9477 +95.9657 0.125548 17.7858 +95.8068 0.131455 18.6225 +95.6407 0.137351 19.4578 +95.4672 0.143238 20.2917 +95.2865 0.149113 21.124 +95.9755 0.156406 22.1571 +95.7784 0.162312 22.9938 +96.4474 0.169742 24.0464 +95.5562 0.174439 24.7119 +96.013 0.181598 25.726 +95.1103 0.186184 26.3757 +95.7417 0.193787 27.4528 +96.2655 0.201281 28.5144 +96.013 0.207203 29.3534 +96.6115 0.21502 30.4607 +96.342 0.220963 31.3026 +96.0652 0.226889 32.1422 +96.5374 0.234636 33.2397 +96.2437 0.240574 34.0809 +95.9426 0.246494 34.9194 +96.3836 0.254371 36.0354 +96.999 0.262828 37.2335 +96.7634 0.269052 38.1152 +96.4271 0.275003 38.9581 +96.915 0.283363 40.1425 +96.653 0.289598 41.0258 +96.2913 0.295541 41.8677 +96.8358 0.304332 43.113 +96.4559 0.310285 43.9564 +96.0686 0.316214 44.7964 +96.4864 0.324855 46.0205 +96.0811 0.330786 46.8607 +96.4739 0.339527 48.0989 +96.6742 0.3477 49.2568 +96.3294 0.353967 50.1447 +96.6828 0.36287 51.4058 +96.9335 0.371506 52.6293 +96.558 0.377806 53.5217 +96.6965 0.386172 54.7069 +96.302 0.392467 55.5986 +96.5025 0.40125 56.8429 +96.6885 0.410087 58.0949 +96.1778 0.416027 58.9363 +96.4231 0.425302 60.2503 +95.8093 0.430846 61.0357 +96.7826 0.443652 62.8497 +96.2304 0.449597 63.6919 +96.2513 0.45827 64.9207 +96.5052 0.46818 66.3245 +96.578 0.477346 67.623 +95.9842 0.483277 68.4632 +96.0303 0.49249 69.7684 +96.1413 0.502165 71.139 +95.5168 0.508068 71.9753 +96.1544 0.520808 73.7801 +96.2161 0.530623 75.1704 +95.6347 0.536968 76.0694 +95.589 0.546392 77.4045 +96.2987 0.560342 79.3806 +96.1386 0.569428 80.6678 +96.1914 0.579913 82.1532 +95.4708 0.585816 82.9894 +96.0161 0.599626 84.9458 +95.94 0.609769 86.3826 +95.8461 0.619947 87.8245 +95.6611 0.629679 89.2032 +96.1121 0.643807 91.2047 +96.1038 0.655097 92.8041 +95.8609 0.66495 94.1999 +96.2372 0.679314 96.2348 +95.3938 0.685217 97.071 +95.2377 0.696145 98.619 +95.6125 0.711204 100.752 +96.0254 0.726875 102.972 +95.6636 0.736919 104.395 +95.3511 0.747508 105.895 +95.5498 0.762338 107.996 +95.1942 0.77299 109.505 +95.339 0.787954 111.625 +95.5825 0.804069 113.908 +95.2845 0.815914 115.586 +95.0903 0.828888 117.424 +95.1825 0.844657 119.658 +95.1813 0.859939 121.823 +95.2103 0.87585 124.077 +95.147 0.891266 126.261 +95.0527 0.906739 128.453 +94.8685 0.921696 130.572 +94.8869 0.938997 133.023 +94.8695 0.956376 135.485 +95.1562 0.977305 138.45 +94.895 0.993082 140.684 +94.6572 1.00948 143.007 +94.5493 1.0277 145.589 +94.7797 1.05016 148.77 +94.4846 1.06733 151.203 +94.1542 1.08455 153.642 +94.252 1.10725 156.858 +94.3006 1.13004 160.087 +94.3 1.15292 163.328 +94.2499 1.17589 166.582 +94.1985 1.19956 169.935 +94.0957 1.2233 173.299 +93.8943 1.2465 176.586 +94.0582 1.2754 180.679 +94.1576 1.30442 184.79 +93.6569 1.32597 187.842 +116.431 1.68506 238.714 +116.841 1.72913 244.956 +116.6 1.76504 250.044 +116.861 1.81005 256.421 +116.733 1.85072 262.181 +115.398 1.87337 265.39 +112.687 1.87391 265.467 +110.021 1.87491 265.608 +107.4 1.87639 265.817 +104.709 1.87636 265.813 +101.705 1.87022 264.943 +99.1087 1.87112 265.071 +96.4839 1.87118 265.08 +94.1002 1.87573 265.724 +93.1125 1.90881 270.411 +92.6847 1.95531 276.998 +92.427 2.00794 284.454 +92.4069 2.06876 293.07 +92.331 2.13175 301.993 +92.2482 2.19827 311.417 +91.8148 2.26018 320.188 +91.93 2.3399 331.481 +91.7772 2.41774 342.508 +91.4137 2.49506 353.462 +91.1804 2.58141 365.695 +91.067 2.67754 379.313 +90.6553 2.77177 392.661 +90.7748 2.89027 409.449 +90.4416 3.00346 425.483 +90.3934 3.13619 444.287 +90.1954 3.27537 464.003 +89.9515 3.42586 485.323 +89.724 3.59185 508.837 +89.5383 3.77686 535.047 +89.5431 3.99069 565.339 +95.204 4.4966 637.009 +93.3016 4.68614 663.859 +88.3923 4.73929 671.389 +87.9775 5.05773 716.501 +87.7438 5.43607 770.099 +89.7272 6.02604 853.677 +86.357 6.33065 896.83 +86.2232 6.95665 985.51 +84.8221 7.60771 1077.74 +82.9614 8.3745 1186.37 +82.7147 9.54604 1352.34 +80.7544 10.8768 1540.85 +71.1738 11.5068 1630.11 +60.589 12.2472 1735 +85.7635 23.1187 3275.1 +54.3485 21.9783 3113.55 +27.1605 21.9688 3112.2 +1.64313e-13 21.9718 3112.62 +-27.1526 21.9625 3111.3 +-54.3224 21.9678 3112.05 +-81.4574 21.9579 3110.65 +-108.649 21.9619 3111.22 +-135.822 21.9586 3110.76 +-133.546 17.9871 2548.14 +-135.1 15.5919 2208.81 +-130.842 13.2078 1871.08 +-120.905 10.844 1536.21 +-134.229 10.8298 1534.2 +-115.475 8.46521 1199.22 +-125.622 8.43676 1195.19 +-139.285 8.62925 1222.46 +-157.906 9.07784 1286.01 +-113.584 6.08997 862.734 +-120.44 6.04919 856.957 +-128.003 6.04574 856.467 +-149.88 6.67972 946.28 +-379.692 16.016 2268.89 +-399.564 15.9954 2265.98 +-144.586 5.50663 780.095 +-152.666 5.54394 785.38 +-173.809 6.03028 854.277 +-111.358 3.69805 523.883 +-114.951 3.66004 518.498 +-119.112 3.64181 515.916 +-123.936 3.64395 516.218 +-129.815 3.67522 520.648 +-820.42 22.3927 3172.25 +-392.24 10.333 1463.82 +-875.553 22.2855 3157.06 +-903.071 22.2307 3149.3 +-930.633 22.1769 3141.68 +-957.897 22.1161 3133.06 +-163.133 3.65213 517.378 +-142.982 3.10623 440.043 +-144.976 3.05848 433.278 +-146.668 3.00672 425.945 +-151.515 3.02019 427.854 +-1120.56 21.7318 3078.63 +-399.201 7.5367 1067.68 +-1174.26 21.5931 3058.98 +-144.365 2.58697 366.482 +-144.074 2.51712 356.586 +-143.851 2.45141 347.277 +-146.133 2.43011 344.26 +-150.448 2.44238 345.998 +-1332.75 21.1297 2993.34 +-1358.83 21.0469 2981.6 +-491.251 7.43632 1053.46 +-1410.48 20.8737 2957.07 +-509.08 7.36771 1043.74 +-143.542 2.03221 287.893 +-144.006 1.99499 282.62 +-142.034 1.92594 272.838 +-142.813 1.89593 268.586 +-145.486 1.8914 267.944 +-149.127 1.89904 269.026 +-408.367 5.09491 721.768 +-109.8 1.34243 190.174 +-109.324 1.31007 185.59 +-110.167 1.29421 183.343 +-111.292 1.28195 181.607 +-112.661 1.27266 180.291 +-114.337 1.26686 179.47 +-116.008 1.26095 178.633 +-117.618 1.25435 177.697 +-119.164 1.24706 176.664 +-121.664 1.24955 177.018 +-125.957 1.26977 179.882 +-414.622 4.1031 581.264 +-416.034 4.042 572.608 +-416.852 3.9765 563.329 +-417.961 3.91515 554.638 +-419.315 3.85734 546.448 +-419.881 3.79354 537.41 +-421.567 3.74101 529.969 +-422.463 3.68254 521.685 +-423.819 3.62914 514.12 +-431.31 3.62831 514.003 +-426.752 3.527 499.651 +-430.834 3.49844 495.606 +-432.426 3.4501 488.757 +-162.733 1.27575 180.728 +-2213.57 17.0518 2415.63 +-438.32 3.3179 470.029 +-440.203 3.27439 463.865 +-441.803 3.22938 457.489 +-442.414 3.17788 450.193 +-443.002 3.12704 442.991 +-424.099 2.94181 416.751 +-425.777 2.90233 411.158 +-2376.69 15.9202 2255.33 +-422.942 2.78397 394.39 +-2415.69 15.625 2213.51 +-420.843 2.67477 378.92 +-421.512 2.63237 372.914 +-382.864 2.34929 332.811 +-420.048 2.53236 358.746 +-380.954 2.25639 319.65 +-418.761 2.43668 345.191 +-418.26 2.3908 338.692 +-382.148 2.14568 303.966 +-382.343 2.10858 298.712 +-381.127 2.06432 292.442 +-140.48 0.747232 105.856 +-142.202 0.74275 105.221 +-143.196 0.734378 104.035 +-142.959 0.719788 101.968 +-142.123 0.702455 99.513 +-143.151 0.694474 98.3823 +-144.087 0.686024 97.1853 +-147.681 0.689979 97.7456 +-491.88 2.25478 319.423 +-2763.37 12.4266 1760.42 +-496.108 2.18823 309.995 +-2793.68 12.0844 1711.93 +-500.329 2.12206 300.621 +-503.536 2.09366 296.598 +-2837.53 11.564 1638.21 +-406.021 1.62151 229.71 +-2865.69 11.2127 1588.44 +-406.277 1.55709 220.585 +-2892.98 10.8579 1538.18 +-404.92 1.4879 210.783 +-405.675 1.45906 206.697 +-406.927 1.43212 202.881 +-385.852 1.32841 188.188 +-378.273 1.27359 180.423 +-379.562 1.24935 176.989 +-379.181 1.21977 172.799 +-378.391 1.18919 168.466 +-379.388 1.16443 164.958 +-379.34 1.1366 161.016 +-380.731 1.11319 157.7 +-380.609 1.08547 153.772 +-380.262 1.05732 149.785 +-380.901 1.03209 146.21 +-380.102 1.00315 142.11 +-380.106 0.976557 138.344 +-380.827 0.951929 134.855 +-380.004 0.923609 130.843 +-380.752 0.899271 127.395 +-380.423 0.872511 123.604 +-380.056 0.845857 119.828 +-379.844 0.819733 116.127 +-380.076 0.794702 112.581 +-380.179 0.76951 109.012 +-380.249 0.744359 105.449 +-379.995 0.718715 101.816 +-379.417 0.692632 98.1215 +-380.356 0.669405 94.831 +-380.197 0.644302 91.2748 +-378.933 0.617524 87.4813 +-379.974 0.594617 84.2362 +-380.108 0.570308 80.7925 +-379.623 0.545183 77.2332 +-380.184 0.521644 73.8985 +-380.421 0.497691 70.5051 +-381.121 0.474361 67.2001 +-379.917 0.448769 63.5747 +-380.26 0.425129 60.2258 +-380.277 0.401168 56.8313 +-380.758 0.377729 53.5108 +-380.318 0.35343 50.0686 +-380.344 0.329646 46.6991 +-379.843 0.305486 43.2765 +-379.51 0.28156 39.8871 +-379.644 0.258037 36.5547 +-380.347 0.234888 33.2753 +-379.726 0.210951 29.8844 +-381.269 0.188193 26.6602 +-380.289 0.164183 23.2589 +-379.879 0.14053 19.9081 +-380.038 0.117124 16.5924 +-3274.5 0.807154 114.345 +-145.85 0.0269589 3.81912 +-144.778 0.0178382 2.52705 +-145.194 0.00894407 1.26706 +95.9 3.55271e-15 -1.7053e-13 +96.0963 0.0134846 0.838512 +95.9854 0.0269402 1.67521 +95.9671 0.0404077 2.51267 +95.9415 0.0538721 3.34992 +96.8078 0.0679637 4.22617 +95.8684 0.0807877 5.0236 +95.8209 0.0942368 5.8599 +95.7661 0.107679 6.69575 +95.8038 0.121239 7.53895 +96.7305 0.136078 8.46173 +96.653 0.149646 9.30542 +96.5681 0.163203 10.1484 +96.6745 0.177111 11.0133 +96.3762 0.190277 11.832 +96.2693 0.203794 12.6725 +96.155 0.217294 13.512 +95.9345 0.230541 14.3356 +95.8058 0.243993 15.1721 +96.4587 0.259551 16.1396 +96.1172 0.272518 16.9459 +95.9657 0.285994 17.7839 +95.8068 0.299449 18.6206 +95.6407 0.312881 19.4558 +95.4672 0.326289 20.2896 +96.1652 0.342805 21.3165 +95.9755 0.356286 22.1548 +95.7784 0.36974 22.9914 +96.4474 0.386665 24.0439 +95.3625 0.39656 24.6592 +96.013 0.413672 25.7233 +95.7849 0.427129 26.5601 +95.7417 0.44144 27.45 +96.2655 0.45851 28.5114 +96.013 0.472001 29.3503 +96.6115 0.489807 30.4576 +96.342 0.503345 31.2994 +96.0652 0.516845 32.1388 +96.5374 0.534492 33.2362 +96.2437 0.548018 34.0773 +95.9426 0.561503 34.9158 +96.3836 0.579447 36.0316 +96.999 0.598712 37.2296 +96.6704 0.612301 38.0746 +96.4271 0.626445 38.9541 +96.915 0.645489 40.1383 +96.653 0.659692 41.0215 +96.2913 0.67323 41.8633 +96.8358 0.693255 43.1085 +96.4559 0.706817 43.9518 +96.0686 0.720324 44.7917 +96.4864 0.740007 46.0157 +96.0811 0.753518 46.8558 +96.4739 0.773428 48.0939 +96.6742 0.792046 49.2516 +96.2407 0.805581 50.0932 +96.6828 0.826603 51.4005 +96.1426 0.839372 52.1945 +96.558 0.860626 53.5161 +96.7836 0.880476 54.7504 +96.302 0.894023 55.5928 +96.5025 0.914031 56.837 +96.6885 0.934162 58.0888 +96.9452 0.955255 59.4004 +96.4231 0.968822 60.244 +96.484 0.988363 61.4592 +96.7826 1.01062 62.8432 +96.147 1.02328 63.6301 +96.2513 1.04392 64.9139 +96.4228 1.06558 66.2609 +96.578 1.08737 67.616 +95.9842 1.10088 68.456 +96.0303 1.12187 69.7611 +96.1413 1.14391 71.1316 +95.5168 1.15736 71.9678 +96.0751 1.1854 73.7115 +96.2161 1.20874 75.1626 +96.1825 1.2302 76.4971 +95.589 1.24466 77.3964 +95.6043 1.26723 78.7999 +96.1386 1.29713 80.6594 +96.1914 1.32102 82.1446 +95.4708 1.33447 82.9808 +96.0161 1.36592 84.9369 +95.94 1.38903 86.3736 +95.8461 1.41221 87.8153 +95.6611 1.43438 89.1939 +95.6043 1.45882 90.7134 +96.1038 1.49229 92.7944 +95.7895 1.5136 94.1199 +96.2372 1.54745 96.2248 +95.3938 1.5609 97.0608 +95.2377 1.58579 98.6087 +95.6125 1.62009 100.742 +96.0254 1.65579 102.962 +95.6636 1.67867 104.385 +95.3511 1.70279 105.884 +95.5498 1.73658 107.985 +95.1942 1.76084 109.494 +95.339 1.79493 111.614 +95.5825 1.83164 113.896 +95.5389 1.86359 115.883 +95.0903 1.88817 117.412 +95.1825 1.92409 119.646 +95.1813 1.95891 121.81 +95.2103 1.99515 124.064 +95.147 2.03027 126.248 +94.9932 2.06423 128.359 +94.8685 2.09959 130.558 +94.8288 2.1377 132.928 +94.8695 2.17859 135.47 +94.5898 2.21301 137.611 +94.895 2.2622 140.67 +94.5468 2.29688 142.827 +94.5493 2.34107 145.574 +94.7797 2.39222 148.755 +94.4846 2.43134 151.187 +94.1542 2.47056 153.626 +94.252 2.52227 156.842 +94.3006 2.57419 160.07 +94.3 2.6263 163.311 +94.2499 2.67863 166.564 +94.1985 2.73254 169.917 +94.0003 2.7838 173.105 +93.8943 2.83949 176.567 +94.012 2.90389 180.572 +94.1576 2.97142 184.771 +93.3 3.00898 187.107 +116.431 3.83851 238.689 +116.927 3.94177 245.11 +116.6 4.02069 250.018 +116.861 4.12323 256.394 +116.733 4.21586 262.154 +115.717 4.27927 266.097 +112.687 4.2687 265.44 +110.06 4.27246 265.674 +107.4 4.27433 265.79 +104.709 4.27427 265.786 +101.705 4.26028 264.916 +99.0737 4.26084 264.951 +96.4839 4.26248 265.053 +94.1002 4.27283 265.697 +93.1125 4.3482 270.383 +92.7164 4.45564 277.064 +92.427 4.574 284.424 +92.467 4.71562 293.23 +92.331 4.85604 301.962 +92.1914 5.00449 311.193 +91.8148 5.14861 320.155 +91.636 5.31315 330.386 +91.7772 5.50752 342.473 +91.3136 5.67742 353.037 +91.1804 5.88036 365.657 +90.997 6.09463 378.981 +90.6553 6.31397 392.62 +90.6449 6.57449 408.82 +90.4416 6.84175 425.439 +90.2539 7.13308 443.555 +90.1954 7.46115 463.955 +89.751 7.78657 484.19 +89.724 8.18208 508.784 +89.3568 8.58608 533.906 +89.5431 9.09062 565.28 +95.0119 10.2224 635.657 +93.3016 10.6748 663.79 +88.2096 10.7736 669.931 +87.9775 11.5213 716.426 +87.54 12.3544 768.23 +89.7272 13.7271 853.588 +86.3474 14.4194 896.636 +86.2232 15.847 985.408 +84.8143 17.3284 1077.53 +82.9614 19.0768 1186.25 +84.2714 22.1549 1377.65 +80.7544 24.7768 1540.69 +71.2392 26.2362 1631.44 +60.589 27.8987 1734.82 +85.7635 52.6634 3274.76 +54.3485 50.0658 3113.23 +27.1675 50.0569 3112.68 +1.58096e-13 50.0508 3112.3 +-27.164 50.0505 3112.28 +-54.3224 50.0416 3111.73 +-81.5124 50.0529 3112.43 +-108.649 50.0283 3110.9 +-135.887 50.0449 3111.93 +-133.546 40.9739 2547.87 +-135.216 35.5482 2210.48 +-130.842 30.0869 1870.89 +-120.984 24.7183 1537.05 +-134.229 24.6699 1534.04 +-115.762 19.3315 1202.08 +-125.622 19.2186 1195.07 +-139.432 19.6778 1223.62 +-157.906 20.6789 1285.87 +-113.714 13.8887 863.635 +-120.44 13.7798 856.867 +-128.003 13.7719 856.377 +-149.88 15.2161 946.182 +-379.824 36.4964 2269.45 +-399.564 36.4369 2265.75 +-144.677 12.5518 780.505 +-152.666 12.6289 785.298 +-173.869 13.7415 854.482 +-111.358 8.42401 523.828 +-115.146 8.35154 519.322 +-119.112 8.29591 515.862 +-124.146 8.31483 517.039 +-129.815 8.37199 520.594 +-820.32 51.0034 3171.53 +-392.24 23.5382 1463.67 +-405.721 23.5241 1462.79 +-903.071 50.6406 3148.97 +-930.633 50.5181 3141.35 +-957.897 50.3795 3132.73 +-163.674 8.34702 519.041 +-142.982 7.07587 439.997 +-145.294 6.98233 434.181 +-146.668 6.84918 425.901 +-151.749 6.89049 428.47 +-1120.56 49.5043 3078.31 +-1147.38 49.3452 3068.42 +-1174.26 49.1883 3058.66 +-144.951 5.91695 367.932 +-144.074 5.73389 356.549 +-143.659 5.57677 346.779 +-146.133 5.53569 344.224 +-150.807 5.5769 346.787 +-1332.75 48.1327 2993.02 +-1358.83 47.9439 2981.28 +-491.251 16.9396 1053.35 +-1410.66 47.5553 2957.12 +-509.08 16.7834 1043.64 +-143.14 4.61636 287.058 +-144.006 4.54451 282.59 +-142.034 4.38722 272.81 +-142.813 4.31885 268.558 +-145.486 4.30853 267.916 +-149.127 4.32593 268.998 +-409.155 11.6284 723.086 +-109.8 3.05799 190.154 +-108.867 2.97181 184.795 +-110.167 2.94815 183.324 +-111.292 2.92024 181.589 +-112.661 2.89906 180.272 +-114.928 2.90077 180.378 +-116.008 2.8724 178.614 +-117.618 2.85735 177.678 +-119.164 2.84074 176.645 +-121.494 2.84246 176.752 +-125.957 2.89249 179.863 +-414.796 9.35063 581.448 +-416.034 9.2075 572.548 +-417.149 9.06477 563.672 +-417.961 8.91855 554.58 +-419.071 8.78175 546.073 +-419.881 8.64152 537.354 +-421.567 8.52187 529.913 +-422.463 8.38867 521.631 +-423.819 8.26703 514.067 +-431.31 8.26515 513.95 +-427.337 8.04535 500.282 +-430.834 7.96931 495.554 +-433.022 7.87002 489.38 +-162.733 2.90611 180.71 +-436.229 7.65483 475.998 +-438.32 7.55805 469.98 +-440.547 7.46477 464.18 +-441.803 7.35639 457.441 +-442.414 7.23908 450.146 +-443.002 7.12327 442.945 +-426.024 6.73175 418.599 +-425.777 6.6114 411.115 +-427.971 6.53037 406.076 +-422.942 6.34177 394.349 +-381.172 5.61626 349.235 +-420.843 6.09301 378.88 +-422.186 6.00602 373.471 +-382.864 5.35158 332.776 +-420.124 5.76966 358.774 +-380.954 5.13996 319.617 +-380.797 5.04745 313.864 +-418.26 5.44614 338.656 +-382.774 4.89577 304.433 +-382.343 4.80327 298.68 +-381.206 4.70343 292.472 +-140.48 1.70216 105.845 +-142.926 1.70056 105.745 +-143.196 1.67288 104.025 +-142.796 1.63778 101.842 +-142.123 1.60016 99.5026 +-143.068 1.58107 98.3154 +-144.087 1.56273 97.1751 +-147.431 1.56908 97.5699 +-491.88 5.13631 319.39 +-494.565 5.06622 315.031 +-496.108 4.98471 309.963 +-498.794 4.91491 305.622 +-500.329 4.83396 300.589 +-503.536 4.76927 296.567 +-2837.53 26.3423 1638.04 +-2851.72 25.9432 1613.22 +-2865.69 25.542 1588.27 +-405.838 3.54316 220.324 +-2892.98 24.7339 1538.02 +-405.719 3.39606 211.177 +-405.675 3.32367 206.675 +-404.868 3.24582 201.834 +-385.852 3.02606 188.169 +-379.176 2.90811 180.835 +-379.562 2.84597 176.97 +-379.818 2.78326 173.071 +-378.391 2.70892 168.448 +-380.121 2.65764 165.26 +-379.34 2.58913 160.999 +-380.361 2.53335 157.531 +-380.609 2.47265 153.756 +-379.61 2.40442 149.514 +-380.901 2.35106 146.195 +-379.446 2.28119 141.851 +-380.106 2.22456 138.329 +-380.827 2.16846 134.841 +-380.004 2.10394 130.829 +-380.752 2.0485 127.382 +-380.423 1.98754 123.591 +-382.345 1.93844 120.537 +-379.844 1.86732 116.115 +-380.076 1.8103 112.569 +-380.179 1.75291 109.001 +-379.767 1.69348 105.305 +-379.995 1.6372 101.806 +-379.804 1.5794 98.2114 +-380.356 1.52488 94.8211 +-379.613 1.46544 91.1253 +-378.933 1.4067 87.4722 +-380.951 1.35799 84.4438 +-380.108 1.29914 80.7841 +-380.211 1.24383 77.3448 +-380.184 1.18828 73.8907 +-379.635 1.13137 70.352 +-381.121 1.08057 67.1931 +-379.621 1.02148 63.5186 +-380.26 0.968428 60.2195 +-380.079 0.91337 56.7959 +-380.758 0.86045 53.5052 +-381.607 0.807828 50.233 +-380.344 0.75092 46.6943 +-380.935 0.697886 43.3965 +-379.51 0.641383 39.8829 +-380.44 0.589029 36.6275 +-380.347 0.535065 33.2718 +-379.526 0.480286 29.8655 +-381.269 0.428695 26.6575 +-379.391 0.373118 23.2015 +-379.879 0.320121 19.906 +-379.738 0.266594 16.5776 +-3274.5 1.83866 114.333 +-143.851 0.0605694 3.76637 +-144.778 0.0406348 2.52678 +-146.294 0.0205286 1.27652 +95.2 5.32907e-15 -1.7053e-13 +96.1963 0.0210705 0.839229 +95.9854 0.0420517 1.6749 +96.0671 0.0631391 2.51481 +95.9415 0.0840906 3.34929 +96.1084 0.10532 4.19487 +95.8684 0.126104 5.02267 +96.0206 0.147403 5.87102 +95.7661 0.168079 6.69451 +96.9004 0.191411 7.62382 +96.7305 0.212409 8.46015 +96.653 0.233587 9.30369 +96.4686 0.254487 10.1361 +96.7739 0.276742 11.0225 +96.3762 0.297009 11.8298 +96.3684 0.318434 12.6831 +96.155 0.339181 13.5094 +96.0334 0.360229 14.3478 +96.5959 0.383998 15.2945 +95.6697 0.401826 16.0046 +95.4279 0.422329 16.8212 +96.064 0.446873 17.7988 +95.8068 0.467419 18.6171 +95.7386 0.488884 19.4721 +95.4672 0.509315 20.2858 +96.2628 0.535636 21.3342 +96.1703 0.557266 22.1957 +96.0701 0.578894 23.0571 +95.5741 0.598093 23.8218 +96.4275 0.625915 24.9299 +96.013 0.645713 25.7185 +95.9776 0.668059 26.6085 +96.5107 0.694591 27.6653 +96.3614 0.716414 28.5345 +96.013 0.73676 29.3449 +96.7069 0.76531 30.482 +96.342 0.785685 31.2935 +96.16 0.807554 32.1646 +96.5374 0.834305 33.23 +96.338 0.856256 34.1044 +96.6944 0.883333 35.1828 +96.4772 0.905357 36.06 +96.999 0.934548 37.2227 +96.8565 0.957599 38.1408 +96.4271 0.977836 38.9468 +97.0074 1.00852 40.1691 +96.561 1.02875 40.9748 +97.2084 1.06087 42.2541 +96.8358 1.08212 43.1005 +96.5469 1.10433 43.9851 +96.0686 1.12437 44.7834 +96.5766 1.15618 46.0502 +96.0811 1.17619 46.8471 +96.4739 1.20727 48.0849 +95.9614 1.22721 48.8794 +96.4181 1.25977 50.1763 +96.6828 1.29027 51.3909 +96.3184 1.31259 52.2801 +96.4706 1.34216 53.4577 +96.0873 1.36447 54.3465 +96.302 1.39551 55.5825 +96.5886 1.42801 56.8772 +96.0027 1.44782 57.6661 +96.9452 1.49109 59.3894 +96.4231 1.51226 60.2328 +96.6527 1.54546 61.5551 +95.9439 1.56384 62.2871 +96.3138 1.60003 63.7286 +96.2513 1.62949 64.9018 +96.5052 1.66472 66.3053 +95.8408 1.68436 67.0873 +96.0656 1.71986 68.5013 +96.0303 1.75116 69.7481 +96.3021 1.78855 71.2374 +95.5168 1.80656 71.9544 +96.3924 1.85644 73.9412 +96.2949 1.8883 75.2101 +96.3391 1.92338 76.6075 +96.2884 1.95704 77.9482 +95.6814 1.97965 78.8489 +95.6023 2.01344 80.1946 +96.3434 2.06528 82.2592 +96.2255 2.09947 83.6211 +96.091 2.13377 84.9874 +96.0143 2.16985 86.4245 +95.9198 2.20606 87.8666 +95.7342 2.24068 89.2455 +96.3297 2.29439 91.3847 +96.0319 2.32761 92.7077 +96.0748 2.36966 94.3828 +95.6715 2.40126 95.6414 +95.5339 2.44003 97.1854 +95.8629 2.49155 99.2376 +95.7501 2.53249 100.868 +95.3434 2.5662 102.211 +95.7987 2.624 104.513 +95.9533 2.67473 106.533 +95.6823 2.71444 108.115 +95.8502 2.7675 110.228 +95.5338 2.80748 111.821 +95.5825 2.85906 113.875 +95.6026 2.91086 115.938 +95.2162 2.9512 117.545 +95.307 3.00729 119.779 +95.0581 3.05377 121.631 +95.1494 3.11231 123.962 +95.147 3.16911 126.224 +95.1716 3.22816 128.576 +94.9861 3.28137 130.696 +94.9449 3.34088 133.066 +94.6975 3.39444 135.199 +94.5898 3.45436 137.586 +95.0069 3.53527 140.809 +94.8228 3.59574 143.217 +94.4949 3.65214 145.463 +94.8334 3.73622 148.812 +94.5906 3.79942 151.329 +94.2065 3.8585 153.683 +94.252 3.93709 156.813 +94.4529 4.02461 160.298 +94.35 4.10166 163.368 +94.3484 4.18552 166.707 +94.1985 4.26531 169.885 +94.1434 4.35195 173.336 +94.3168 4.45217 177.328 +94.1044 4.53723 180.716 +94.203 4.64041 184.826 +93.5677 4.71029 187.609 +116.388 5.98938 238.555 +116.582 6.13471 244.343 +116.643 6.2783 250.062 +116.736 6.42922 256.073 +117.018 6.59671 262.744 +115.996 6.69575 266.689 +113.039 6.68392 266.218 +110.787 6.71306 267.379 +107.362 6.66959 265.647 +105.039 6.69286 266.574 +102.027 6.67107 265.706 +99.7391 6.69552 266.68 +96.4839 6.65343 265.003 +94.4006 6.69088 266.495 +93.0148 6.78013 270.05 +92.5578 6.94305 276.539 +92.427 7.1397 284.371 +92.3167 7.34877 292.699 +92.2725 7.57514 301.715 +92.1346 7.80683 310.943 +91.8975 8.04387 320.384 +91.6093 8.29104 330.229 +91.7514 8.59444 342.313 +91.3637 8.86691 353.166 +91.2046 9.18125 365.686 +90.8102 9.49376 378.133 +90.7902 9.87035 393.132 +90.3852 10.2329 407.573 +90.3376 10.6672 424.871 +90.0346 11.1072 442.395 +90.0237 11.6242 462.986 +87.9469 11.91 474.37 +89.6372 12.7593 508.198 +89.3898 13.4072 534.004 +89.4179 14.17 564.385 +90.6959 15.2316 606.669 +93.3852 16.6776 664.261 +88.301 16.8342 670.501 +87.8678 17.9615 715.401 +87.257 19.222 765.604 +89.7481 21.432 853.627 +85.619 22.3177 888.907 +86.0663 24.691 983.432 +84.7515 27.0284 1076.53 +80.4153 28.8636 1149.63 +76.854 31.5382 1256.15 +79.2419 37.9502 1511.54 +71.466 41.0831 1636.32 +60.6309 43.578 1735.69 +85.774 82.2139 3274.55 +54.3765 78.1893 3114.25 +28.5942 82.239 3275.55 +1.49214e-13 78.1935 3114.42 +-28.5942 82.239 3275.55 +-52.3328 75.2504 2997.2 +-85.774 82.2139 3274.55 +-108.754 78.1659 3113.32 +-142.928 82.1637 3272.55 +-133.624 63.995 2548.9 +-200.038 82.0887 3269.56 +-130.968 47.0087 1872.34 +-121.494 38.7461 1543.24 +-134.394 38.5554 1535.65 +-314.039 81.8585 3260.39 +-125.633 30.0014 1194.94 +-139.863 30.8106 1227.17 +-158.113 32.3208 1287.32 +-113.975 21.729 865.457 +-120.566 21.5317 857.599 +-128.565 21.5913 859.975 +-149.974 23.7662 946.599 +-540.745 81.1043 3230.35 +-399.825 56.9126 2266.81 +-145.132 19.6542 782.817 +-152.838 19.7349 786.035 +-174.646 21.5454 858.144 +-111.565 13.1738 524.709 +-115.341 13.0582 520.104 +-119.292 12.9689 516.545 +-124.59 13.0252 518.791 +-129.936 13.0803 520.982 +-820.42 79.6224 3171.33 +-392.577 36.7731 1464.66 +-875.66 79.251 3156.54 +-903.071 79.0464 3148.39 +-930.633 78.8552 3140.77 +-957.897 78.6388 3132.15 +-164.065 13.0602 520.184 +-142.982 11.0449 439.915 +-145.262 10.8966 434.006 +-146.961 10.7124 426.673 +-152.383 10.8005 430.18 +-1120.56 77.2727 3077.74 +-1147.38 77.0244 3067.85 +-1174.26 76.7795 3058.1 +-145.648 9.28032 369.632 +-144.074 8.95019 356.483 +-144.004 8.72583 347.546 +-146.29 8.65006 344.528 +-151.206 8.72817 347.639 +-1332.59 75.1227 2992.11 +-1358.83 74.8371 2980.73 +-492.266 26.4963 1055.34 +-1410.66 74.2304 2956.57 +-509.387 26.2134 1044.07 +-143.676 7.23276 288.078 +-144.187 7.10263 282.895 +-142.68 6.8793 274 +-142.813 6.74143 268.508 +-145.867 6.74296 268.569 +-149.224 6.75686 269.123 +-409.45 18.1642 723.473 +-109.95 4.77984 190.379 +-109.527 4.66692 185.881 +-110.167 4.60186 183.29 +-111.762 4.57756 182.323 +-112.767 4.5295 180.408 +-114.821 4.52368 180.176 +-115.572 4.46678 177.91 +-118.115 4.47897 178.396 +-119.555 4.44875 177.192 +-121.947 4.45342 177.378 +-125.556 4.50056 179.256 +-416.422 14.6529 583.618 +-415.976 14.3702 572.361 +-418.339 14.1898 565.175 +-417.961 13.9212 554.477 +-421.628 13.7913 549.304 +-420.62 13.5125 538.199 +-425.613 13.4297 534.9 +-422.463 13.0941 521.534 +-426.872 12.9972 517.674 +-432.275 12.9301 515.003 +-429.35 12.6174 502.546 +-429.915 12.413 494.405 +-434.149 12.3165 490.561 +-2192.41 61.1139 2434.14 +-437.377 11.9801 477.163 +-438.73 11.8086 470.332 +-441.029 11.6647 464.601 +-442.289 11.4955 457.86 +-443.886 11.3373 451.56 +-441.8 11.0888 441.661 +-426.096 10.5095 418.591 +-445.271 10.7924 429.859 +-2376.69 56.6081 2254.68 +-423.015 9.90077 394.344 +-2415.69 55.5585 2212.87 +-423.295 9.56617 381.017 +-423.01 9.39327 374.13 +-381.506 8.3238 331.534 +-421.721 9.04027 360.071 +-381.72 8.03925 320.2 +-382.88 7.92181 315.523 +-383.211 7.78868 310.22 +-382.539 7.63726 304.189 +-383.052 7.51146 299.179 +-382.555 7.3677 293.453 +-141.039 2.66755 106.248 +-142.765 2.65149 105.608 +-143.358 2.61422 104.123 +-142.877 2.55792 101.881 +-142.205 2.49918 99.5415 +-142.821 2.46368 98.1273 +-144.335 2.44353 97.3248 +-148.515 2.46724 98.269 +-492.132 8.0215 319.493 +-495.83 7.92823 315.778 +-496.871 7.79275 310.382 +-2793.68 42.9688 1711.43 +-501.1 7.55709 300.996 +-505.087 7.46744 297.425 +-2837.53 41.1185 1637.73 +-2851.72 40.4955 1612.92 +-405.211 5.63755 224.541 +-404.959 5.51865 219.806 +-406.332 5.42267 215.983 +-406.074 5.30566 211.322 +-406.744 5.2017 207.182 +-405.137 5.06986 201.93 +-386.212 4.72786 188.309 +-380.71 4.55773 181.533 +-379.018 4.43598 176.683 +-380.455 4.35175 173.328 +-379.03 4.23559 168.702 +-380.03 4.14742 165.19 +-378.42 4.03166 160.579 +-381.193 3.96301 157.845 +-379.682 3.85022 153.353 +-380.541 3.76232 149.852 +-380.341 3.66443 145.953 +-381.413 3.57922 142.559 +-380.2 3.47323 138.337 +-380.544 3.3823 134.716 +-381.044 3.29309 131.163 +-381.131 3.20075 127.485 +-380.518 3.10319 123.599 +-380.819 3.01369 120.034 +-379.844 2.91475 116.093 +-380.747 2.83072 112.746 +-381.044 2.7424 109.229 +-379.574 2.64205 105.232 +-379.705 2.55363 101.71 +-379.901 2.46596 98.2181 +-380.647 2.38205 94.8761 +-380.877 2.29507 91.4117 +-380.394 2.20422 87.7932 +-380.658 2.1181 84.3632 +-379.913 2.02682 80.7275 +-380.015 1.94053 77.2905 +-380.282 1.85531 73.8961 +-381.011 1.7724 70.5941 +-380.037 1.68191 66.9897 +-381.199 1.60109 63.7708 +-379.569 1.5089 60.0989 +-380.178 1.42607 56.8 +-379.867 1.33996 53.37 +-380.616 1.25769 50.0932 +-379.847 1.1706 46.6247 +-379.544 1.08537 43.23 +-380.604 1.00404 39.9904 +-380.241 0.918954 36.6016 +-380.347 0.835198 33.2656 +-380.224 0.751071 29.9149 +-380.67 0.668114 26.6107 +-379.79 0.583026 23.2217 +-379.879 0.499687 19.9023 +-380.537 0.41701 16.6094 +-3274.5 2.87002 114.312 +-147.449 0.0969099 3.85988 +-146.378 0.0641288 2.55423 +-146.694 0.0321313 1.27978 +96.1 1.77636e-15 1.13687e-13 +95.2964 0.0283726 0.831155 +97.0852 0.0578148 1.69364 +96.167 0.0859128 2.51675 +96.0415 0.114421 3.35189 +96.1084 0.143159 4.19375 +96.0682 0.171767 5.03179 +96.0206 0.200362 5.86945 +96.9632 0.231321 6.77638 +96.9004 0.26018 7.62178 +96.8301 0.289019 8.46661 +96.7525 0.317836 9.31079 +96.6675 0.34663 10.1543 +96.5752 0.375397 10.997 +96.674 0.404966 11.8632 +96.3684 0.432839 12.6797 +96.2541 0.461514 13.5197 +96.0334 0.48965 14.3439 +96.7935 0.523026 15.3217 +95.6697 0.546191 16.0003 +96.4127 0.579987 16.9903 +96.064 0.607424 17.794 +96.1013 0.637303 18.6693 +95.7386 0.664528 19.4669 +95.565 0.693008 20.3012 +95.3841 0.721434 21.1339 +96.2678 0.758246 22.2123 +95.8757 0.785283 23.0043 +95.8652 0.815449 23.888 +95.4594 0.842251 24.6731 +96.3994 0.881232 25.8151 +95.9776 0.908075 26.6014 +96.6068 0.945081 27.6855 +96.3614 0.973804 28.5269 +96.1086 1.00246 29.3663 +96.7069 1.04027 30.4738 +96.4371 1.06902 31.3161 +96.16 1.09769 32.156 +96.7266 1.13627 33.2862 +96.338 1.16389 34.0952 +97.0702 1.20536 35.3101 +96.4772 1.23063 36.0504 +96.1588 1.2593 36.8904 +96.8565 1.30164 38.1306 +97.3543 1.34193 39.3108 +97.0074 1.37086 40.1584 +96.653 1.39969 41.0029 +96.383 1.42977 41.8841 +96.9272 1.47229 43.1297 +97.3659 1.51382 44.3464 +96.9749 1.54275 45.1939 +96.5766 1.57157 46.0379 +96.89 1.61222 47.2289 +96.5634 1.64253 48.1167 +96.8524 1.68361 49.3201 +96.4181 1.71238 50.1629 +96.6828 1.75383 51.3772 +96.3184 1.78418 52.2662 +96.558 1.82602 53.4918 +96.8706 1.86981 54.7748 +96.3886 1.89858 55.6176 +96.5886 1.94106 56.862 +96.8599 1.98556 58.1654 +96.9452 2.0268 59.3735 +96.5079 2.05739 60.2697 +96.737 2.10254 61.5924 +96.1116 2.1294 62.3793 +96.3138 2.17488 63.7116 +96.3342 2.21683 64.9404 +96.5052 2.26282 66.2876 +95.9227 2.29146 67.1267 +96.0656 2.33776 68.483 +96.1112 2.38232 69.7883 +96.3021 2.43113 71.2183 +96.3154 2.47614 72.5366 +96.3924 2.52341 73.9214 +95.6645 2.54991 74.6978 +96.3391 2.6144 76.587 +95.7444 2.64513 77.4872 +95.6814 2.69089 78.8278 +95.7556 2.74121 80.3017 +96.3434 2.80728 82.2372 +96.3009 2.856 83.6644 +96.091 2.90039 84.9647 +96.0886 2.95171 86.4682 +95.9198 2.99864 87.8431 +96.4656 3.06897 89.9032 +95.6769 3.09757 90.7411 +95.6003 3.14964 92.2664 +96.0035 3.21863 94.2875 +95.813 3.2688 95.7572 +95.604 3.3191 97.2308 +95.8629 3.38671 99.2111 +95.6813 3.43986 100.768 +96.1618 3.51813 103.061 +95.7311 3.56422 104.411 +95.9533 3.63569 106.505 +95.6823 3.68966 108.086 +95.3254 3.74118 109.595 +95.5338 3.81613 111.791 +95.6468 3.88884 113.921 +95.7298 3.96191 116.061 +95.1532 4.00882 117.436 +95.307 4.08773 119.747 +95.0581 4.15092 121.598 +95.2712 4.2359 124.088 +95.147 4.30768 126.19 +94.9932 4.37974 128.301 +95.1037 4.46581 130.823 +94.8869 4.53838 132.949 +94.8695 4.62237 135.409 +94.5898 4.69542 137.549 +94.951 4.80261 140.689 +94.7124 4.8819 143.012 +94.5493 4.96712 145.508 +94.7797 5.07565 148.687 +94.5376 5.16155 151.204 +94.6245 5.26803 154.323 +94.3035 5.35448 156.856 +94.4021 5.46761 160.17 +94.4 5.57825 163.411 +93.9052 5.66255 165.88 +94.2955 5.80369 170.015 +94.1434 5.91549 173.29 +93.9413 6.02763 176.575 +94.1505 6.17038 180.757 +94.1576 6.30456 184.687 +93.7015 6.41172 187.827 +108.891 7.61685 223.13 +116.496 8.33261 244.098 +116.6 8.53083 249.904 +116.695 8.73597 255.914 +116.774 8.94804 262.126 +116.355 9.1295 267.442 +113.429 9.11671 267.067 +110.749 9.12176 267.215 +108.037 9.12275 267.244 +105.039 9.09743 266.503 +102.708 9.12834 267.408 +99.7741 9.10426 266.703 +97.0995 9.10156 266.624 +94.434 9.09795 266.518 +92.4939 9.16444 268.466 +92.5895 9.44075 276.56 +92.427 9.70481 284.295 +92.2265 9.97924 292.335 +92.0678 10.2738 300.965 +92.1914 10.6182 311.052 +91.8424 10.9272 320.106 +91.6093 11.2698 330.141 +91.4667 11.6459 341.159 +91.0882 12.0162 352.007 +90.9868 12.4501 364.716 +90.8336 12.9079 378.129 +90.6553 13.3966 392.442 +90.4068 13.9127 407.562 +90.3168 14.4963 424.66 +89.5959 15.0241 440.122 +88.6308 15.556 455.701 +87.6371 16.1319 472.572 +87.5187 16.9335 496.054 +89.3898 18.2241 533.861 +89.2771 19.2306 563.346 +90.5776 20.6769 605.716 +93.7331 22.7539 666.558 +88.1835 22.8519 669.43 +87.7581 24.3841 714.316 +87.257 26.1279 765.399 +89.445 29.0335 850.517 +85.619 30.3359 888.669 +85.5695 33.3681 977.495 +84.8535 36.7834 1077.54 +81.1547 39.5946 1159.89 +76.3778 42.6036 1248.04 +79.9484 52.045 1524.62 +71.5096 55.8773 1636.89 +114.341 111.708 3272.39 +85.774 111.751 3273.67 +57.1863 111.772 3274.29 +28.5942 111.785 3274.67 +1.51879e-13 111.789 3274.79 +-28.5942 111.785 3274.67 +-32.8768 64.2587 1882.41 +-85.774 111.751 3273.67 +-114.355 111.721 3272.79 +-142.928 111.683 3271.67 +-171.489 111.636 3270.31 +-200.038 111.581 3268.69 +-130.305 63.5744 1862.37 +-121.431 52.6393 1542.03 +-134.856 52.5875 1540.51 +-157.35 55.7511 1633.19 +-126.124 40.9394 1199.29 +-139.885 41.8869 1227.05 +-158.747 44.1089 1292.14 +-114.315 29.6236 867.802 +-121.053 29.3857 860.834 +-128.52 29.3384 859.448 +-150.693 32.4598 950.886 +-540.745 110.243 3229.49 +-568.993 110.091 3225.04 +-145.132 26.7154 782.608 +-154.059 27.0396 792.105 +-175.125 29.3663 860.265 +-112.002 17.9769 526.621 +-115.514 17.7764 520.746 +-119.494 17.6582 517.284 +-124.566 17.7016 518.555 +-130.517 17.8591 523.17 +-820.42 108.229 3170.48 +-394.518 50.2317 1471.5 +-875.66 107.724 3155.69 +-903.181 107.459 3147.94 +-930.633 107.186 3139.93 +-957.897 106.892 3131.32 +-164.336 17.7817 520.903 +-143.291 15.0455 440.748 +-145.23 14.8082 433.795 +-147.417 14.6063 427.882 +-152.316 14.6744 429.877 +-1120.56 105.035 3076.92 +-401.513 36.6374 1073.26 +-1174.26 104.364 3057.28 +-145.354 12.5891 368.789 +-144.373 12.1911 357.129 +-144.08 11.8671 347.639 +-146.837 11.8018 345.725 +-151.405 11.8796 348.005 +-1332.75 102.125 2991.67 +-1358.83 101.724 2979.93 +-1384.71 101.31 2967.79 +-1410.66 100.9 2955.78 +-511.623 35.7875 1048.37 +-143.274 9.80382 287.196 +-144.142 9.65138 282.73 +-142.68 9.35085 273.926 +-143.705 9.22066 270.113 +-146.058 9.17754 268.849 +-149.661 9.21128 269.838 +-409.598 24.699 723.541 +-110.1 6.50598 190.588 +-109.578 6.34655 185.918 +-110.321 6.26396 183.498 +-111.919 6.2309 182.53 +-113.297 6.18576 181.207 +-115.036 6.16041 180.465 +-116.008 6.09447 178.533 +-118.115 6.08815 178.348 +-120.171 6.07819 178.056 +-122.344 6.07311 177.907 +-126.416 6.15942 180.436 +-415.609 19.8784 582.323 +-417.151 19.5883 573.825 +-418.577 19.2988 565.345 +-420.067 19.0182 557.123 +-421.993 18.7625 549.633 +-423.637 18.499 541.914 +-425.053 18.2307 534.054 +-426.239 17.9576 526.055 +-427.445 17.6905 518.23 +-437.738 17.7978 521.372 +-430.194 17.1842 503.4 +-431.949 16.9525 496.612 +-434.347 16.7491 490.654 +-2192.41 83.0706 2433.49 +-437.985 16.3069 477.699 +-439.957 16.096 471.521 +-441.235 15.863 464.694 +-442.775 15.6426 458.24 +-444.096 15.4178 451.652 +-443.497 15.1306 443.239 +-428.592 14.369 420.931 +-426.569 14.0537 411.692 +-2376.69 76.946 2254.08 +-423.746 13.4811 394.92 +-424.008 13.2553 388.306 +-422.255 12.9711 379.979 +-421.587 12.7251 372.772 +-383.619 11.377 333.281 +-421.189 12.2727 359.52 +-382.256 10.9429 320.564 +-383.806 10.7939 316.201 +-383.444 10.5934 310.326 +-382.93 10.3917 304.419 +-383.052 10.2101 299.099 +-382.872 10.023 293.617 +-141.678 3.64234 106.7 +-142.765 3.6041 105.58 +-142.872 3.54139 103.743 +-142.959 3.47889 101.912 +-142.451 3.40295 99.6868 +-142.574 3.34302 97.9313 +-145.33 3.34432 97.9694 +-148.015 3.34235 97.9118 +-493.809 10.9406 320.496 +-495.745 10.7748 315.641 +-497.465 10.6051 310.67 +-2793.68 58.4064 1710.97 +-501.871 10.288 301.379 +-505.432 10.1572 297.549 +-2837.53 55.8913 1637.3 +-403.845 7.7951 228.352 +-405.649 7.67126 224.724 +-2879.44 53.3381 1562.5 +-2892.98 52.4787 1537.32 +-2906.29 51.6155 1512.04 +-405.764 7.05348 206.627 +-406.39 6.91261 202.5 +-387.74 6.45187 189.003 +-380.169 6.18638 181.225 +-379.562 6.03838 176.89 +-380.182 5.91099 173.158 +-379.121 5.75873 168.698 +-380.672 5.64699 165.425 +-380.813 5.51476 161.551 +-380.361 5.37509 157.459 +-381.443 5.25779 154.023 +-380.355 5.11154 149.739 +-379.874 4.97487 145.735 +-381.788 4.86996 142.662 +-380.576 4.72575 138.437 +-380.639 4.5986 134.713 +-380.666 4.47178 130.998 +-379.993 4.33771 127.07 +-379.757 4.20963 123.318 +-380.819 4.09643 120.002 +-380.036 3.96396 116.121 +-379.788 3.83804 112.433 +-380.371 3.72108 109.007 +-379.574 3.59127 105.204 +-380.575 3.47903 101.916 +-380.772 3.3596 98.4172 +-380.453 3.23621 94.8024 +-380.099 3.11326 91.2007 +-380.394 2.99614 87.7698 +-380.755 2.87982 84.3623 +-380.01 2.75571 80.7267 +-380.309 2.63975 77.3297 +-380.675 2.52447 73.9526 +-379.831 2.40172 70.3566 +-380.431 2.28854 67.0413 +-381.002 2.1752 63.7208 +-380.062 2.05368 60.161 +-380.376 1.93944 56.8144 +-380.659 1.82517 53.467 +-380.021 1.70687 50.0016 +-380.443 1.59367 46.6853 +-380.836 1.48034 43.3655 +-380.902 1.36583 40.0111 +-379.943 1.24813 36.563 +-379.949 1.13407 33.2218 +-380.523 1.02171 29.9304 +-381.468 0.910054 26.6594 +-380.09 0.793116 23.2338 +-380.877 0.680996 19.9493 +-379.538 0.565344 16.5614 +-3274.5 3.90115 114.281 +-147.649 0.131906 3.86409 +-146.778 0.0874068 2.56052 +-146.394 0.0435859 1.27682 +96.2 -1.77636e-15 -2.27374e-13 +96.1963 0.0362083 0.838712 +96.0854 0.0723387 1.67562 +96.0671 0.108501 2.51326 +96.0415 0.144655 3.35072 +96.0085 0.180798 4.18792 +95.9683 0.216928 5.02481 +96.0206 0.253304 5.8674 +95.9657 0.289435 6.70433 +96.8007 0.32859 7.61129 +96.8301 0.365387 8.46366 +96.653 0.401405 9.29796 +96.6675 0.438221 10.1507 +96.7739 0.475564 11.0157 +96.4755 0.510919 11.8347 +96.3684 0.547209 12.6753 +96.2541 0.583461 13.515 +96.1323 0.61967 14.3537 +95.9045 0.655154 15.1757 +96.5574 0.696922 16.1432 +96.4127 0.733238 16.9844 +96.064 0.767924 17.7878 +95.905 0.804051 18.6247 +95.7386 0.840117 19.4601 +96.4454 0.884193 20.481 +95.3841 0.91206 21.1265 +95.3908 0.949864 22.0022 +96.0701 0.994794 23.0429 +95.8652 1.03092 23.8797 +95.4594 1.0648 24.6645 +96.3994 1.11408 25.8061 +96.1703 1.15033 26.6456 +95.7417 1.1841 27.428 +96.3614 1.23111 28.5169 +96.1086 1.26734 29.3561 +96.7069 1.31514 30.4632 +96.4371 1.35148 31.3051 +96.16 1.38773 32.1448 +96.7266 1.43651 33.2746 +96.4322 1.47286 34.1166 +96.7883 1.51943 35.1953 +96.4772 1.5558 36.0378 +97.0924 1.60751 37.2356 +96.7634 1.64399 38.0806 +97.3543 1.69651 39.2971 +97.0074 1.73309 40.1444 +96.7451 1.77122 41.0276 +97.2084 1.82304 42.2281 +96.9272 1.86132 43.1146 +95.7279 1.88163 43.5851 +96.9749 1.9504 45.1781 +95.7643 1.97011 45.6347 +96.171 2.0231 46.8621 +96.5634 2.07654 48.0999 +96.1396 2.11281 48.94 +97.2164 2.18276 50.5605 +96.7711 2.21927 51.4062 +97.1093 2.27413 52.6769 +96.558 2.30851 53.4732 +96.9576 2.366 54.805 +96.3886 2.40025 55.5982 +96.5886 2.45395 56.8422 +96.0885 2.49021 57.6821 +96.2631 2.54431 58.9352 +96.4231 2.59873 60.1957 +96.6527 2.65578 61.5172 +96.1116 2.69206 62.3575 +96.2304 2.74717 63.6342 +96.3342 2.80258 64.9177 +96.5052 2.86073 66.2645 +95.9227 2.89694 67.1033 +96.0656 2.95547 68.4591 +96.1112 3.0118 69.7639 +96.3021 3.07352 71.1935 +96.3154 3.13041 72.5114 +96.3924 3.19017 73.8957 +96.4525 3.25023 75.2869 +95.713 3.28373 76.0627 +96.2884 3.36306 77.9002 +96.2987 3.42386 79.3087 +96.2152 3.48215 80.659 +95.507 3.51824 81.4948 +96.2255 3.60781 83.5697 +96.091 3.66676 84.9351 +96.1629 3.73453 86.5049 +95.9198 3.79098 87.8125 +95.8073 3.85341 89.2587 +96.2572 3.9398 91.2597 +96.1757 4.00584 92.7894 +96.0035 4.0691 94.2546 +95.7423 4.12948 95.6532 +96.0947 4.21765 97.6956 +95.8629 4.28158 99.1765 +95.6813 4.34878 100.733 +96.0936 4.44458 102.952 +96.3392 4.53464 105.038 +95.4849 4.57393 105.948 +95.6823 4.66459 108.048 +95.3254 4.72972 109.557 +95.5338 4.82448 111.752 +95.6468 4.91639 113.881 +95.3481 4.98885 115.559 +95.1532 5.06808 117.395 +95.4315 5.17462 119.862 +95.2428 5.2579 121.792 +95.2103 5.35171 123.965 +95.147 5.44591 126.147 +94.9932 5.537 128.257 +94.9273 5.63534 130.534 +94.8869 5.73756 132.902 +94.8122 5.84022 135.28 +94.9863 5.96098 138.077 +94.3358 6.03228 139.729 +94.7676 6.17543 143.045 +94.5493 6.27959 145.458 +94.8334 6.42046 148.72 +94.5376 6.5254 151.151 +94.6245 6.66001 154.269 +94.3035 6.76931 156.801 +94.4021 6.91233 160.114 +94 7.02231 162.661 +94.3484 7.19255 166.605 +94.2955 7.33721 169.956 +94.0957 7.47476 173.142 +94.3168 7.65078 177.219 +94.1044 7.79695 180.605 +93.8398 7.94351 184 +93.7462 8.10978 187.851 +104.639 9.25344 214.342 +116.539 10.5382 244.103 +116.558 10.7811 249.727 +116.321 11.009 255.006 +116.652 11.3006 261.761 +116.275 11.5339 267.166 +113.429 11.5256 266.974 +110.749 11.532 267.122 +108.074 11.5373 267.244 +105.003 11.4973 266.317 +102.35 11.5001 266.383 +99.7391 11.5058 266.516 +97.0995 11.5065 266.531 +94.4006 11.4979 266.331 +92.5265 11.59 268.466 +92.7482 11.9557 276.937 +92.3343 12.2568 283.912 +92.1363 12.6037 291.947 +92.3602 13.0298 301.816 +91.9074 13.3825 309.985 +91.6494 13.7856 319.323 +91.6895 14.2601 330.314 +91.4667 14.7232 341.04 +91.2134 15.2122 352.368 +90.9626 15.7356 364.491 +90.8336 16.3186 377.997 +90.5428 16.9153 391.819 +90.3852 17.5846 407.322 +90.1297 18.2888 423.632 +89.4165 18.956 439.087 +88.0393 19.5351 452.502 +87.7464 20.4199 472.996 +87.4666 21.3951 495.586 +89.2082 22.9927 532.591 +89.1676 24.2821 562.458 +90.2672 26.0509 603.43 +93.8027 28.7875 666.82 +88.301 28.9286 670.088 +87.6484 30.7887 713.175 +87.1552 32.9932 764.239 +89.5391 36.7437 851.114 +85.5807 38.3345 887.962 +85.5434 42.1721 976.855 +84.8064 46.4768 1076.57 +81.2175 50.0951 1160.38 +81.9943 57.8212 1339.34 +79.8019 65.6762 1521.29 +71.5271 70.6592 1636.72 +114.355 141.242 3271.65 +85.7635 141.262 3272.13 +57.1863 141.306 3273.15 +14.2888 70.6204 1635.82 +1.53655e-13 141.328 3273.65 +-14.2888 70.6204 1635.82 +-32.8193 81.0956 1878.46 +-42.8438 70.5686 1634.62 +-114.355 141.242 3271.65 +-71.4965 70.629 1636.02 +-171.489 141.134 3269.16 +-100.113 70.5988 1635.32 +-129.698 79.9984 1853.04 +-123.581 67.7263 1568.78 +-134.943 66.5259 1540.97 +-157.455 70.5298 1633.72 +-126.187 51.7828 1199.47 +-140.066 53.0233 1228.21 +-159.003 55.8535 1293.76 +-114.432 37.4896 868.391 +-121.053 37.1504 860.533 +-128.668 37.1332 860.137 +-150.725 41.0452 950.752 +-540.745 139.373 3228.36 +-568.993 139.181 3223.92 +-145.351 33.8253 783.514 +-154.231 34.2224 792.711 +-174.985 37.0962 859.28 +-112.002 22.727 526.438 +-115.492 22.4693 520.467 +-119.674 22.3577 517.883 +-124.566 22.3789 518.374 +-130.735 22.6157 523.86 +-820.42 136.826 3169.38 +-848.072 136.512 3162.1 +-875.66 136.188 3154.59 +-903.071 135.836 3146.45 +-930.633 135.508 3138.84 +-957.897 135.136 3130.22 +-164.215 22.4638 520.34 +-143.26 19.017 440.5 +-145.516 18.7578 434.496 +-147.775 18.5106 428.772 +-152.683 18.5966 430.763 +-1120.56 132.788 3075.85 +-1147.38 132.362 3065.96 +-1174.26 131.941 3056.21 +-145.244 15.9035 368.381 +-144.074 15.3804 356.263 +-144.425 15.0386 348.348 +-147.032 14.94 346.064 +-151.525 15.0305 348.159 +-1332.75 129.109 2990.62 +-1358.83 128.603 2978.9 +-1384.62 128.071 2966.58 +-1410.66 127.56 2954.75 +-511.623 45.2437 1048 +-143.765 12.4368 288.08 +-143.733 12.167 281.83 +-142.68 11.8216 273.831 +-143.705 11.6571 270.018 +-146.011 11.5987 268.668 +-149.418 11.6263 269.307 +-409.45 31.2141 723.028 +-110.1 8.22507 190.522 +-109.578 8.02352 185.853 +-110.27 7.91543 183.349 +-111.762 7.86626 182.21 +-112.767 7.78366 180.297 +-114.928 7.7809 180.233 +-116.389 7.73014 179.057 +-118.059 7.69322 178.202 +-120.059 7.67709 177.828 +-122.287 7.67428 177.763 +-126.76 7.80816 180.865 +-415.319 25.1133 581.713 +-417.151 24.7641 573.625 +-418.22 24.3774 564.666 +-420.428 24.064 557.408 +-421.993 23.7201 549.441 +-423.637 23.387 541.725 +-424.866 23.0376 533.633 +-425.672 22.6724 525.173 +-426.872 22.3349 517.355 +-438.895 22.56 522.568 +-430.519 21.7412 503.604 +-431.949 21.4319 496.439 +-434.679 21.191 490.858 +-436.608 20.9144 484.451 +-437.985 20.6157 477.532 +-439.957 20.3491 471.357 +-441.648 20.0732 464.967 +-443.748 19.8194 459.086 +-444.096 19.4916 451.494 +-442.649 19.092 442.237 +-426.809 18.0902 419.034 +-427.863 17.8211 412.798 +-2376.69 97.2776 2253.29 +-2396.28 96.3796 2232.49 +-422.681 16.7054 386.956 +-422.255 16.3985 379.846 +-2453.95 93.6408 2169.05 +-384.298 14.4086 333.754 +-420.504 15.4903 358.811 +-382.486 13.8427 320.645 +-384.038 13.6543 316.281 +-382.978 13.3762 309.84 +-382.93 13.1376 304.313 +-382.658 12.8947 298.687 +-382.079 12.6452 292.907 +-141.997 4.61516 106.903 +-142.685 4.55383 105.483 +-143.601 4.49996 104.235 +-142.959 4.39813 101.876 +-142.451 4.30211 99.6521 +-142.986 4.23856 98.1801 +-145.994 4.24729 98.3823 +-147.848 4.22075 97.7673 +-493.474 13.8221 320.168 +-495.83 13.6242 315.584 +-498.313 13.4302 311.091 +-2793.68 73.8392 1710.38 +-2808.51 72.7847 1685.95 +-506.81 12.8761 298.256 +-2837.53 70.6596 1636.73 +-2851.72 69.5891 1611.93 +-2865.69 68.513 1587 +-2879.44 67.4317 1561.96 +-2892.98 66.3452 1536.79 +-2906.29 65.254 1511.51 +-406.121 8.92509 206.736 +-2932.25 63.0565 1460.61 +-388.279 8.16801 189.2 +-379.627 7.80989 180.904 +-379.562 7.63391 176.828 +-379.363 7.45677 172.725 +-380.035 7.29788 169.045 +-381.038 7.14597 165.526 +-379.984 6.9568 161.144 +-380.916 6.80523 157.633 +-379.867 6.6196 153.333 +-380.541 6.46532 149.76 +-381.368 6.3141 146.257 +-380.008 6.12803 141.947 +-379.73 5.96116 138.081 +-380.733 5.81516 134.7 +-380.666 5.65337 130.952 +-379.993 5.48387 127.026 +-381.088 5.34063 123.708 +-381.964 5.19441 120.321 +-380.896 5.02271 116.344 +-379.788 4.85217 112.393 +-380.756 4.70906 109.078 +-379.574 4.5402 105.167 +-380.478 4.39718 101.854 +-380.192 4.24084 98.2327 +-380.55 4.09236 94.7935 +-379.127 3.92581 90.9356 +-380.004 3.78393 87.6493 +-379.096 3.62489 83.9653 +-379.326 3.47759 80.5532 +-379.623 3.33124 77.1632 +-379.89 3.18494 73.7744 +-380.126 3.03869 70.3867 +-380.234 2.89175 66.9832 +-380.706 2.74782 63.6491 +-381.248 2.60442 60.3275 +-381.76 2.46082 57.0013 +-380.461 2.30624 53.4205 +-381.012 2.16351 50.1145 +-380.145 2.01319 46.6326 +-380.439 1.86954 43.3052 +-380.604 1.72538 39.9658 +-379.843 1.57751 36.5407 +-380.945 1.43749 33.2974 +-381.819 1.29608 30.0218 +-379.872 1.14571 26.5386 +-380.289 1.00321 23.2379 +-380.178 0.859358 19.9058 +-380.438 0.716421 16.5948 +-3274.5 4.93196 114.242 +-148.049 0.167211 3.8732 +-144.278 0.108621 2.51604 +-146.094 0.0549901 1.27376 +96.2 -1.77636e-15 -2.27374e-13 +96.0963 0.0437276 0.837479 +96.0854 0.087452 1.6749 +96.0671 0.131169 2.51218 +96.0415 0.174877 3.34928 +96.1084 0.218799 4.19048 +96.0682 0.262522 5.02787 +96.0206 0.306225 5.86488 +95.8659 0.349541 6.69448 +96.8007 0.39724 7.60802 +95.8339 0.437181 8.37297 +96.653 0.485269 9.29396 +96.6675 0.529776 10.1464 +96.5752 0.573743 10.9884 +96.674 0.618934 11.854 +96.3684 0.661535 12.6698 +96.2541 0.70536 13.5092 +96.9236 0.755297 14.4656 +95.9045 0.792031 15.1691 +96.5574 0.842526 16.1362 +96.2157 0.884615 16.9423 +96.064 0.928363 17.7802 +95.905 0.972037 18.6166 +95.7386 1.01564 19.4517 +95.565 1.05917 20.2854 +95.5794 1.10486 21.1606 +95.196 1.14597 21.9478 +96.0701 1.20263 23.033 +95.6712 1.24378 23.8211 +95.653 1.28987 24.7038 +96.2062 1.34415 25.7433 +96.1703 1.39066 26.6341 +96.6068 1.44443 27.6639 +96.3614 1.48832 28.5047 +96.1086 1.53212 29.3434 +95.8486 1.57579 30.1798 +96.4371 1.63384 31.2917 +96.16 1.67766 32.1309 +96.7266 1.73663 33.2603 +96.338 1.77884 34.0687 +96.7883 1.83687 35.1802 +96.3836 1.87902 35.9873 +97.1857 1.94523 37.2554 +96.7634 1.98746 38.0642 +96.5198 2.03337 38.9435 +97.0074 2.09517 40.1271 +96.653 2.13923 40.971 +96.383 2.18521 41.8515 +96.9272 2.25019 43.0961 +96.5469 2.29421 43.9391 +96.0686 2.33585 44.7366 +96.5766 2.40192 46.002 +96.171 2.44577 46.8419 +96.5634 2.51038 48.0792 +96.9415 2.57553 49.327 +96.4181 2.61713 50.1238 +96.6828 2.68049 51.3372 +96.3184 2.72687 52.2255 +96.6455 2.79334 53.4986 +96.8706 2.85775 54.7321 +96.3886 2.90172 55.5743 +96.5886 2.96664 56.8177 +96.8599 3.03465 58.1201 +97.0305 3.1004 59.3794 +96.4231 3.14167 60.1698 +96.6527 3.21064 61.4907 +96.1116 3.25449 62.3307 +96.2304 3.32113 63.6069 +96.4171 3.39103 64.9456 +95.8459 3.43477 65.7834 +95.9227 3.50218 67.0744 +96.0656 3.57294 68.4297 +96.1112 3.64104 69.7339 +96.3021 3.71565 71.1629 +96.3154 3.78443 72.4802 +96.3131 3.8535 73.8031 +95.6645 3.89718 74.6396 +96.3391 3.99575 76.5274 +96.3661 4.06896 77.9295 +95.6043 4.10934 78.7029 +96.2918 4.21302 80.6885 +96.3434 4.29054 82.1732 +96.2255 4.36157 83.5337 +96.1659 4.43629 84.9647 +96.0886 4.51128 86.4009 +95.9198 4.58301 87.7747 +95.8073 4.65849 89.2203 +96.2572 4.76292 91.2204 +96.1757 4.84276 92.7495 +96.0035 4.91923 94.2141 +95.8837 4.9996 95.7533 +95.604 5.07279 97.1551 +95.3766 5.14986 98.631 +95.6125 5.2536 100.618 +96.0936 5.37316 102.908 +95.8663 5.45513 104.478 +96.0202 5.56051 106.496 +95.6823 5.63914 108.002 +95.1942 5.71 109.359 +95.4039 5.82451 111.552 +95.1326 5.91163 113.221 +95.2209 6.02306 115.355 +95.7196 6.16343 118.043 +94.809 6.21489 119.029 +95.3044 6.36053 121.818 +95.2103 6.46982 123.911 +95.0868 6.57953 126.012 +94.5768 6.66447 127.639 +94.4571 6.77897 129.832 +94.8869 6.93628 132.845 +94.8695 7.06466 135.304 +94.6465 7.18057 137.524 +94.5595 7.30983 139.999 +94.326 7.43085 142.317 +94.3859 7.57847 145.144 +94.7797 7.75742 148.572 +95.0675 7.93293 151.933 +94.6245 8.05145 154.203 +94.3035 8.18358 156.733 +94.4021 8.35648 160.045 +94.45 8.53007 163.369 +94.3976 8.69979 166.62 +94.2955 8.87014 169.883 +94.1434 9.04101 173.155 +94.3168 9.24921 177.143 +93.6888 9.38426 179.729 +93.8398 9.6031 183.92 +93.5231 9.78075 187.323 +101.877 10.8915 208.596 +116.539 12.7399 243.998 +116.643 13.0429 249.801 +116.28 13.3043 254.806 +116.53 13.6473 261.375 +116.554 13.9771 267.692 +113.429 13.9336 266.859 +110.749 13.9413 267.007 +107.662 13.8945 266.111 +105.369 13.9478 267.131 +102.672 13.9466 267.107 +99.7391 13.9097 266.401 +97.0995 13.9105 266.416 +94.7344 13.9492 267.158 +92.4288 13.9967 268.068 +92.4308 14.4042 275.871 +92.4579 14.8374 284.169 +92.1062 15.232 291.727 +91.7462 15.6473 299.68 +91.9642 16.1884 310.044 +91.5943 16.6557 318.992 +91.449 17.1941 329.305 +91.4667 17.7992 340.894 +91.3136 18.4106 352.603 +90.8175 18.9928 363.753 +90.8336 19.728 377.834 +90.4303 20.424 391.164 +90.3852 21.2585 407.146 +90.1921 22.125 423.743 +89.576 22.9572 439.681 +87.9248 23.5857 451.719 +87.5277 24.6246 471.615 +87.3624 25.8343 494.783 +89.2082 27.7964 532.362 +89.152 29.3501 562.118 +90.1046 31.4368 602.084 +93.8166 34.8071 666.632 +88.2096 34.9363 669.107 +87.6484 37.2212 712.868 +86.8721 39.7568 761.43 +89.2359 44.27 847.868 +85.6669 46.3902 888.475 +85.3342 50.8583 974.047 +84.83 56.2026 1076.4 +81.1547 60.5148 1158.99 +81.5364 69.5114 1331.3 +79.6501 79.2464 1517.74 +71.5271 85.4216 1636.01 +57.2003 85.4091 1635.77 +42.9093 85.4425 1636.41 +28.5853 85.3909 1635.42 +14.3028 85.4581 1636.71 +7.81597e-14 85.3778 1635.17 +-14.3045 85.4686 1636.91 +-28.5923 85.4117 1635.82 +-42.9171 85.4581 1636.71 +-57.1689 85.3622 1634.87 +-71.5402 85.4373 1636.31 +-85.8048 85.37 1635.02 +-100.205 85.4268 1636.11 +-114.568 85.43 1636.17 +-123.793 82.0167 1570.8 +-135.022 80.4712 1541.2 +-157.072 85.0577 1629.04 +-126.375 62.6949 1200.74 +-140.146 64.1371 1228.37 +-159.064 67.5488 1293.71 +-114.432 45.3221 868.018 +-121.192 44.9636 861.152 +-128.801 44.9377 860.656 +-150.897 49.6772 951.428 +-273.847 85.3283 1634.22 +-288.343 85.2668 1633.05 +-145.296 40.8769 782.883 +-154.403 41.4184 793.252 +-175.185 44.8977 859.889 +-112.168 27.5161 526.993 +-115.687 27.2094 521.12 +-119.831 27.0643 518.341 +-124.777 27.1 519.025 +-130.71 27.3357 523.538 +-820.42 165.413 3168.01 +-848.072 165.033 3160.74 +-875.66 164.641 3153.23 +-903.071 164.216 3145.1 +-930.519 163.799 3137.11 +-957.897 163.369 3128.88 +-164.065 27.1321 519.64 +-143.291 22.995 440.405 +-145.23 22.6323 433.458 +-147.808 22.3829 428.681 +-152.45 22.4475 429.918 +-1120.56 160.531 3074.52 +-401.198 55.9513 1071.59 +-1174.26 159.506 3054.9 +-145.391 19.2456 368.595 +-144.411 18.6372 356.943 +-144.272 18.1613 347.829 +-146.993 18.0566 345.823 +-151.166 18.1276 347.184 +-1332.75 156.083 2989.34 +-1358.83 155.471 2977.61 +-1384.62 154.828 2965.3 +-1410.66 154.211 2953.48 +-511.93 54.7291 1048.18 +-143.72 15.0304 287.866 +-143.733 14.709 281.709 +-142.634 14.2869 273.625 +-143.752 14.0971 269.991 +-146.631 14.0816 269.693 +-149.661 14.0782 269.628 +-409.696 37.7581 723.151 +-110.2 9.95251 190.612 +-109.578 9.69983 185.773 +-110.27 9.56916 183.27 +-111.919 9.52306 182.388 +-113.403 9.46289 181.235 +-115.304 9.43734 180.746 +-116.389 9.34515 178.98 +-118.115 9.3049 178.209 +-120.059 9.28102 177.752 +-122.23 9.2733 177.604 +-127.047 9.46081 181.195 +-415.609 30.3813 581.869 +-417.151 29.938 573.378 +-418.22 29.4704 564.423 +-420.609 29.1041 557.407 +-422.176 28.6882 549.443 +-423.821 28.2855 541.729 +-425.427 27.8875 534.106 +-425.924 27.4254 525.257 +-426.872 27.0012 517.133 +-439.667 27.3212 523.261 +-430.779 26.2994 503.691 +-432.409 25.9371 496.752 +-434.679 25.6183 490.647 +-436.206 25.2607 483.797 +-438.593 24.9574 477.989 +-440.298 24.6196 471.52 +-441.648 24.267 464.767 +-443.47 23.9452 458.602 +-443.465 23.5305 450.66 +-442.154 23.0549 441.553 +-445.068 22.8053 436.772 +-428.439 21.5733 413.176 +-2376.69 117.601 2252.32 +-2396.28 116.516 2231.53 +-2415.69 115.421 2210.56 +-383.017 17.9823 344.401 +-424.209 19.5694 374.797 +-383.921 17.4018 333.283 +-423.318 18.8519 361.056 +-383.788 16.7918 321.599 +-382.88 16.4573 315.193 +-381.89 16.1249 308.827 +-381.521 15.8239 303.063 +-382.737 15.592 298.62 +-383.269 15.3347 293.693 +-142.157 5.58564 106.977 +-142.685 5.50524 105.437 +-143.601 5.44011 104.19 +-143.04 5.32008 101.891 +-142.451 5.20093 99.6092 +-142.739 5.11524 97.9681 +-145.911 5.13174 98.2841 +-148.432 5.12271 98.1112 +-493.558 16.7127 320.084 +-495.071 16.4454 314.966 +-498.567 16.2444 311.116 +-500.244 15.9842 306.133 +-2808.51 87.9912 1685.22 +-505.259 15.5186 297.215 +-2837.53 85.4221 1636.02 +-2851.72 84.128 1611.24 +-405.649 11.7245 224.549 +-2879.44 81.5198 1561.28 +-2892.98 80.2063 1536.13 +-405.896 11.0175 211.009 +-405.408 10.7708 206.285 +-405.674 10.5464 201.986 +-385.852 9.81282 187.937 +-378.996 9.42587 180.526 +-379.834 9.23539 176.878 +-380 9.0298 172.94 +-380.309 8.82895 169.094 +-380.03 8.6161 165.017 +-380.537 8.42244 161.308 +-380.546 8.21904 157.413 +-380.794 8.02215 153.642 +-380.541 7.81608 149.695 +-379.594 7.59776 145.514 +-380.851 7.42475 142.2 +-379.448 7.20127 137.92 +-379.225 7.00219 134.107 +-380.666 6.8345 130.896 +-380.847 6.6445 127.257 +-380.232 6.44192 123.377 +-381.582 6.27335 120.148 +-380.896 6.07208 116.294 +-379.788 5.86591 112.345 +-380.371 5.68716 108.922 +-381.598 5.51801 105.682 +-379.995 5.30908 101.68 +-380.482 5.13077 98.2654 +-381.423 4.95871 94.9701 +-378.933 4.74358 90.8499 +-381.661 4.59443 87.9934 +-380.072 4.39351 84.1453 +-380.402 4.21607 80.7469 +-381.191 4.04385 77.4486 +-380.282 3.85433 73.8188 +-379.536 3.66784 70.2472 +-380.136 3.49501 66.937 +-380.312 3.31846 63.5558 +-380.26 3.14039 60.1454 +-380.474 2.96493 56.7849 +-379.57 2.78153 53.2724 +-381.31 2.61757 50.1321 +-380.443 2.4357 46.649 +-380.439 2.26013 43.2865 +-379.51 2.07986 39.8338 +-380.64 1.91109 36.6015 +-379.949 1.73327 33.196 +-380.822 1.56278 29.9306 +-381.768 1.39198 26.6595 +-380.689 1.21408 23.2522 +-379.979 1.03835 19.8867 +-381.037 0.86746 16.6138 +-3274.5 5.96237 114.192 +-146.85 0.200508 3.84016 +-144.378 0.131405 2.5167 +-146.994 0.0668882 1.28105 +95.3 -1.77636e-15 -2.27374e-13 +96.0963 0.051281 0.837051 +96.1853 0.102665 1.67578 +95.9671 0.153667 2.50829 +96.0415 0.205085 3.34756 +96.0085 0.256327 4.18398 +96.0682 0.307869 5.0253 +97.0187 0.362855 5.92282 +95.9657 0.410346 6.69801 +95.8038 0.46106 7.52581 +96.8301 0.518028 8.45569 +95.6576 0.563232 9.19354 +96.6675 0.621288 10.1412 +96.5752 0.672849 10.9828 +96.4755 0.724355 11.8235 +96.3684 0.775806 12.6634 +96.2541 0.827202 13.5023 +96.0334 0.877632 14.3254 +96.7935 0.937454 15.3019 +96.5574 0.988062 16.128 +96.2157 1.03742 16.9337 +96.064 1.08873 17.7711 +95.905 1.13994 18.6071 +95.7386 1.19108 19.4417 +95.565 1.24212 20.275 +95.5794 1.29572 21.1497 +95.196 1.34392 21.9366 +95.8757 1.40751 22.9746 +95.6712 1.45862 23.8089 +95.653 1.51268 24.6912 +96.3994 1.57949 25.7818 +95.9776 1.6276 26.5671 +96.7991 1.6973 27.7048 +96.3614 1.74541 28.4901 +96.1086 1.79677 29.3284 +95.7532 1.84615 30.1344 +97.2931 1.93307 31.5532 +97.0135 1.98492 32.3996 +96.7266 2.03661 33.2433 +97.4691 2.1106 34.451 +96.7883 2.15417 35.1622 +96.4772 2.20574 36.0039 +96.1588 2.25713 36.8428 +96.7634 2.33077 38.0448 +96.5198 2.38461 38.9235 +96.915 2.45474 40.0684 +96.653 2.50876 40.95 +96.383 2.56267 41.8301 +96.8358 2.63639 43.0334 +96.5469 2.69051 43.9167 +96.1593 2.74192 44.7559 +96.5766 2.81682 45.9785 +96.171 2.86825 46.8179 +96.4739 2.94128 48.0101 +96.0505 2.99266 48.8486 +96.4181 3.06921 50.0982 +96.7711 3.14638 51.3578 +96.3184 3.1979 52.1987 +96.558 3.27289 53.4228 +96.0873 3.32429 54.2619 +96.302 3.3999 55.496 +96.5886 3.47909 56.7886 +96.7742 3.55569 58.039 +97.0305 3.63595 59.349 +96.5079 3.68759 60.1919 +96.6527 3.76523 61.4593 +96.1116 3.81667 62.2988 +96.3138 3.89818 63.6294 +96.3342 3.97337 64.8566 +96.5052 4.0558 66.2021 +96.0046 4.11065 67.0974 +96.0656 4.19012 68.3947 +96.1112 4.26998 69.6982 +96.3021 4.35748 71.1264 +96.3154 4.43814 72.4431 +96.3924 4.52287 73.8261 +96.3737 4.60426 75.1545 +96.3391 4.68596 76.4882 +96.2884 4.76798 77.8269 +95.6043 4.81918 78.6626 +95.6023 4.90539 80.0698 +96.2674 5.0277 82.0662 +96.15 5.11097 83.4255 +96.091 5.19855 84.8551 +96.1629 5.29464 86.4235 +95.9198 5.37467 87.7298 +95.7342 5.45901 89.1065 +96.2572 5.58566 91.1738 +96.1757 5.67928 92.702 +96.0035 5.76897 94.1659 +95.7423 5.85457 95.5631 +95.5339 5.94468 97.0341 +95.9323 6.07461 99.1549 +95.6813 6.16549 100.638 +95.4116 6.25654 102.125 +95.7311 6.38838 104.276 +95.418 6.48011 105.774 +95.7486 6.61781 108.021 +95.3254 6.70556 109.454 +95.4039 6.83061 111.495 +95.004 6.92338 113.009 +95.2209 7.06347 115.296 +95.1532 7.18528 117.284 +95.4315 7.33632 119.749 +95.2428 7.4544 121.677 +95.0885 7.57773 123.69 +95.0266 7.71122 125.869 +95.0527 7.85499 128.216 +94.9273 7.98951 130.411 +94.8869 8.13444 132.777 +94.7548 8.27496 135.071 +94.5898 8.41591 137.371 +94.4477 8.56236 139.762 +94.8228 8.76036 142.994 +94.4949 8.89776 145.237 +94.7797 9.09742 148.496 +94.5376 9.25139 151.009 +94.729 9.45269 154.295 +94.3035 9.59719 156.653 +94.4529 9.80522 160.049 +94 9.95589 162.508 +94.3484 10.1972 166.448 +94.2955 10.4023 169.796 +94.0957 10.5973 172.979 +93.9413 10.8037 176.347 +93.6888 11.0053 179.637 +93.8398 11.2619 183.826 +93.6569 11.4867 187.495 +100.387 12.586 205.439 +116.539 14.9406 243.873 +116.643 15.2959 249.673 +116.653 15.6525 255.493 +116.489 15.999 261.149 +116.475 16.3802 267.372 +113.742 16.3855 267.458 +110.749 16.3495 266.871 +108.037 16.3513 266.9 +105.332 16.3514 266.902 +102.672 16.3556 266.97 +100.019 16.3583 267.013 +97.3731 16.3593 267.029 +94.7344 16.3588 267.021 +92.5265 16.4318 268.213 +92.526 16.9097 276.014 +92.1489 17.3422 283.074 +92.1363 17.869 291.672 +92.0386 18.4087 300.482 +91.737 18.9379 309.119 +91.7321 19.5621 319.309 +91.6895 20.2173 330.003 +91.2078 20.8147 339.755 +91.2385 21.573 352.133 +90.8175 22.2735 363.567 +90.8102 23.1298 377.544 +90.4753 23.9639 391.159 +90.3635 24.9247 406.841 +90.0258 25.899 422.745 +89.7355 26.9707 440.239 +87.7531 27.6058 450.605 +87.2179 28.776 469.705 +87.3103 30.2787 494.234 +89.2082 32.5979 532.089 +89.1676 34.4259 561.928 +89.8977 36.7824 600.393 +93.9558 40.8801 667.279 +88.2096 40.9711 668.764 +87.6484 43.6507 712.503 +86.8721 46.6243 761.04 +89.2359 51.9171 847.434 +85.5232 54.3123 886.53 +85.247 59.5825 972.555 +84.9006 65.9653 1076.74 +81.929 71.6449 1169.45 +81.4204 81.4025 1328.72 +79.1267 92.3249 1507 +71.5271 100.177 1635.17 +57.2282 100.211 1635.73 +42.8805 100.134 1634.48 +28.6115 100.233 1636.08 +14.301 100.208 1635.67 +7.99361e-14 100.236 1636.13 +-14.2914 100.14 1634.58 +-28.6115 100.233 1636.08 +-42.8805 100.134 1634.48 +-57.2352 100.224 1635.93 +-71.3831 99.9753 1631.88 +-85.9252 100.257 1636.48 +-100.065 100.043 1632.98 +-114.631 100.242 1636.23 +-123.722 96.129 1569.1 +-135.1 94.4266 1541.31 +-156.267 99.2385 1619.85 +-126.375 73.5246 1200.13 +-140.247 75.271 1228.64 +-159.174 79.2714 1293.93 +-114.354 53.1145 866.98 +-121.317 52.7851 861.602 +-128.89 52.7364 860.808 +-150.818 58.2281 950.448 +-540.811 197.62 3225.71 +-288.36 100.002 1632.31 +-145.187 47.9018 781.893 +-154.593 48.6328 793.826 +-175.205 52.6591 859.546 +-112.231 32.287 527.016 +-115.687 31.9095 520.853 +-120.034 31.793 518.951 +-124.963 31.8288 519.536 +-130.759 32.0694 523.464 +-820.42 193.986 3166.39 +-848.072 193.54 3159.13 +-875.66 193.081 3151.62 +-903.181 192.606 3143.88 +-930.633 192.116 3135.88 +-957.897 191.589 3127.28 +-164.516 31.9064 520.803 +-143.322 26.9729 440.275 +-145.262 26.5475 433.331 +-148.003 26.284 429.029 +-152.216 26.2847 429.041 +-1120.56 188.261 3072.95 +-401.758 65.7079 1072.54 +-1174.26 187.059 3053.34 +-145.721 22.6212 369.242 +-143.999 21.7941 355.742 +-144.348 21.3097 347.835 +-147.462 21.2432 346.749 +-151.405 21.2927 347.556 +-1332.75 183.045 2987.81 +-1358.83 182.327 2976.09 +-445.566 58.4293 953.732 +-1410.66 180.849 2951.97 +-512.105 64.2049 1048.01 +-143.542 17.6049 287.361 +-143.779 17.2552 281.654 +-142.588 16.7493 273.396 +-143.705 16.5268 269.764 +-146.535 16.5033 269.38 +-150.291 16.5795 270.625 +-410.189 44.3336 723.649 +-109.8 11.6293 189.823 +-109.679 11.3859 185.85 +-110.321 11.2273 183.261 +-111.867 11.1628 182.208 +-113.35 11.0923 181.058 +-114.875 11.0262 179.98 +-116.389 10.9594 178.889 +-118.556 10.953 178.784 +-120.338 10.9096 178.075 +-122.684 10.9155 178.172 +-127.162 11.1051 181.266 +-415.958 35.6592 582.06 +-417.151 35.1094 573.085 +-417.506 34.502 563.171 +-420.609 34.1314 557.121 +-422.541 33.6729 549.637 +-423.821 33.1714 541.452 +-425.053 32.676 533.365 +-425.672 32.1438 524.678 +-427.445 31.7078 517.562 +-441.788 32.1952 525.517 +-431.363 30.8842 504.117 +-431.949 30.3851 495.971 +-434.679 30.0435 490.396 +-436.206 29.6241 483.549 +-437.782 29.2144 476.862 +-440.298 28.8723 471.278 +-441.648 28.4589 464.529 +-443.053 28.055 457.936 +-445.428 27.7172 452.423 +-443.992 27.1498 443.161 +-445.568 26.7747 437.039 +-2356.92 139.179 2271.79 +-2376.69 137.915 2251.17 +-2396.28 136.642 2230.39 +-2415.69 135.358 2209.43 +-2434.91 134.064 2188.31 +-421.662 22.812 372.357 +-382.713 20.3436 332.065 +-423.47 22.1163 361.001 +-382.256 19.6137 320.151 +-381.646 19.2378 314.015 +-382.9 18.9603 309.486 +-382.226 18.5916 303.467 +-382.658 18.2815 298.406 +-382.555 17.9501 292.996 +-142.477 6.56523 107.163 +-142.685 6.4562 105.383 +-142.872 6.34747 103.609 +-143.04 6.23906 101.839 +-142.369 6.09582 99.501 +-142.162 5.97459 97.5223 +-145.828 6.01476 98.1779 +-147.598 5.97384 97.51 +-493.558 19.5996 319.92 +-495.83 19.3157 315.287 +-497.804 19.0213 310.481 +-500.5 18.7549 306.133 +-502.814 18.4745 301.556 +-2823.13 101.688 1659.84 +-518.23 18.2958 298.64 +-2851.72 98.66 1610.41 +-406.173 13.7675 224.725 +-406.101 13.4831 220.082 +-405.979 13.1999 215.459 +-405.896 12.9206 210.901 +-403.626 12.5758 205.273 +-405.405 12.36 201.75 +-388.549 11.5883 189.153 +-381.613 11.1304 181.679 +-380.377 10.8462 177.041 +-379.636 10.5794 172.686 +-381.405 10.3839 169.495 +-380.03 10.1044 164.933 +-378.512 9.82479 160.368 +-379.992 9.62477 157.103 +-380.794 9.40787 153.563 +-380.076 9.15502 149.436 +-380.527 8.93213 145.798 +-380.008 8.68802 141.813 +-379.73 8.45144 137.951 +-380.073 8.23014 134.339 +-380.382 8.00908 130.731 +-380.847 7.79225 127.192 +-380.518 7.56037 123.407 +-379.865 7.3239 119.547 +-380.418 7.11196 116.087 +-379.405 6.87226 112.175 +-380.371 6.66955 108.866 +-379.574 6.43687 105.068 +-379.995 6.22615 101.628 +-379.32 5.99867 97.9153 +-379.871 5.79159 94.5352 +-380.488 5.58581 91.1763 +-380.394 5.37018 87.6566 +-379.877 5.14979 84.0591 +-380.01 4.93925 80.6225 +-380.015 4.72775 77.1702 +-379.497 4.51078 73.6288 +-380.028 4.30698 70.3022 +-380.628 4.10403 66.9894 +-380.41 3.89269 63.5398 +-380.853 3.68859 60.2082 +-380.376 3.47618 56.7411 +-379.867 3.26456 53.2869 +-380.12 3.06013 49.95 +-379.252 2.84749 46.4792 +-380.041 2.64777 43.2192 +-380.405 2.44487 39.9073 +-380.64 2.2412 36.5828 +-380.248 2.03427 33.205 +-380.224 1.82985 29.8683 +-380.77 1.62816 26.5762 +-380.689 1.42379 23.2403 +-380.078 1.21804 19.8818 +-379.738 1.01384 16.5487 +-3274.5 6.99229 114.134 +-148.349 0.237544 3.87739 +-145.778 0.155598 2.5398 +-146.094 0.0779622 1.27256 +96.1 1.77636e-15 1.13687e-13 +96.0963 0.0588302 0.836554 +95.9854 0.117533 1.6713 +96.0671 0.176472 2.5094 +96.0415 0.235276 3.34558 +96.0085 0.294061 4.18149 +95.9683 0.352825 5.0171 +96.9189 0.415843 5.91321 +96.8635 0.475158 6.75666 +96.8007 0.534438 7.59961 +96.8301 0.594288 8.45067 +96.5534 0.652198 9.27414 +96.6675 0.71275 10.1352 +96.5752 0.771901 10.9763 +96.4755 0.83099 11.8165 +96.3684 0.890015 12.6558 +96.2541 0.948977 13.4943 +96.0334 1.00683 14.3169 +95.9045 1.06558 15.1524 +95.6697 1.12309 15.9702 +95.5264 1.18162 16.8024 +96.064 1.249 17.7605 +95.905 1.30776 18.5961 +95.7386 1.36642 19.4302 +95.565 1.42498 20.263 +95.5794 1.48646 21.1372 +96.0729 1.55597 22.1256 +96.0701 1.61799 23.0076 +95.6712 1.67335 23.7947 +95.653 1.73536 24.6766 +96.2062 1.80838 25.7149 +95.9776 1.86721 26.5513 +95.7417 1.9259 27.3859 +96.3614 2.00236 28.4732 +96.1086 2.06128 29.311 +96.6115 2.13691 30.3865 +96.4371 2.19814 31.2571 +96.0652 2.25487 32.0638 +96.7266 2.33643 33.2235 +96.338 2.39321 34.0311 +96.7883 2.47129 35.1413 +96.4772 2.53045 35.9825 +96.1588 2.58941 36.821 +96.7634 2.67389 38.0222 +96.5198 2.73565 38.9004 +97.0074 2.8188 40.0828 +96.653 2.87808 40.9257 +96.383 2.93993 41.8053 +96.8358 3.0245 43.0079 +96.5469 3.08658 43.8906 +96.1593 3.14556 44.7293 +96.5766 3.23149 45.9512 +96.171 3.29049 46.7901 +96.5634 3.37741 48.0261 +96.8524 3.46188 49.2272 +96.4181 3.52103 50.0684 +96.7711 3.60957 51.3273 +96.3184 3.66867 52.1678 +96.558 3.7547 53.3911 +96.8706 3.84475 54.6717 +96.302 3.9004 55.463 +96.5886 3.99126 56.7549 +96.0885 4.05023 57.5936 +96.2631 4.13822 58.8448 +96.5079 4.23045 60.1562 +96.6527 4.31952 61.4228 +96.1116 4.37853 62.2618 +96.2304 4.46817 63.5366 +96.4171 4.56222 64.8739 +96.5052 4.65286 66.1628 +96.6599 4.74797 67.5153 +96.0656 4.80696 68.3541 +96.1112 4.89858 69.6569 +96.3021 4.99896 71.0842 +96.2356 5.08727 72.34 +96.3131 5.18442 73.7215 +96.3737 5.28206 75.1099 +95.713 5.34085 75.9459 +96.2884 5.46988 77.7807 +95.6043 5.52862 78.6159 +96.2152 5.66359 80.5352 +96.2674 5.76784 82.0175 +96.2255 5.86797 83.4414 +96.091 5.96385 84.8048 +96.0886 6.06938 86.3055 +95.9198 6.16589 87.6778 +95.8073 6.26743 89.1217 +95.6769 6.36931 90.5703 +96.1757 6.51535 92.647 +95.9322 6.61331 94.04 +95.7423 6.71643 95.5064 +96.2348 6.86985 97.688 +95.9323 6.96887 99.0961 +95.6813 7.07313 100.579 +96.0936 7.22894 102.794 +95.7987 7.33402 104.288 +95.418 7.43406 105.711 +95.6823 7.58678 107.883 +95.3254 7.69271 109.389 +95.4039 7.83617 111.429 +95.6468 7.99632 113.706 +95.6026 8.13578 115.689 +95.1532 8.24304 117.215 +95.4315 8.41632 119.678 +95.1813 8.54624 121.526 +95.1494 8.69881 123.696 +95.0266 8.84641 125.794 +94.9932 9.00573 128.06 +94.9273 9.16567 130.334 +94.7707 9.32056 132.537 +94.7548 9.49314 134.991 +95.0996 9.70689 138.03 +95.0069 9.881 140.506 +94.8228 10.05 142.909 +94.3859 10.1959 144.984 +94.7259 10.4308 148.324 +94.5376 10.6133 150.919 +94.6245 10.8323 154.033 +94.3035 11.01 156.56 +94.4021 11.2426 159.868 +94.4 11.4701 163.103 +93.9544 11.6496 165.655 +94.344 11.9398 169.782 +94.0957 12.1574 172.876 +93.8943 12.388 176.155 +94.0582 12.6752 180.239 +93.7944 12.9136 183.628 +93.7015 13.1839 187.473 +99.9048 14.3694 204.33 +116.539 17.14 243.728 +116.643 17.5477 249.525 +116.239 17.8929 254.434 +116.449 18.3479 260.904 +116.634 18.8173 267.579 +113.742 18.7976 267.299 +111.093 18.8147 267.541 +107.999 18.7519 266.648 +105.332 18.7586 266.743 +102.637 18.7568 266.718 +100.019 18.7664 266.855 +97.4073 18.7741 266.965 +94.7678 18.7736 266.957 +92.2009 18.7844 267.111 +92.5578 19.4056 275.944 +92.3652 19.9419 283.571 +92.1062 20.4928 291.404 +92.0678 21.1253 300.398 +91.8222 21.7459 309.222 +91.484 22.3812 318.257 +91.5559 23.1597 329.327 +91.4408 23.9399 340.421 +91.2385 24.7488 351.924 +90.8901 25.5729 363.642 +90.7869 26.528 377.223 +90.2954 27.437 390.148 +90.212 28.5459 405.918 +90.0466 29.7186 422.592 +89.6757 30.9205 439.684 +87.6958 31.6491 450.045 +87.4913 33.1156 470.898 +87.2061 34.6947 493.352 +89.1917 37.3898 531.676 +89.1364 39.48 561.399 +89.5725 42.0447 597.867 +93.9279 46.8843 666.685 +88.3271 47.0652 669.258 +87.6362 50.0697 711.982 +86.8495 53.474 760.39 +89.0687 59.4483 845.344 +85.4944 62.2867 885.706 +85.1424 68.2699 970.785 +84.9712 75.7394 1077 +82.487 82.7517 1176.71 +81.2678 93.2113 1325.45 +81.7121 109.377 1555.32 +142.91 229.617 3265.12 +56.9839 114.473 1627.79 +85.7635 229.758 3267.11 +21.5712 86.6935 1232.77 +28.5907 229.828 3268.11 +8.26006e-14 114.641 1630.17 +-28.5907 229.828 3268.11 +-28.4719 114.427 1627.13 +-85.774 229.786 3267.51 +-56.8966 114.298 1625.3 +-142.91 229.617 3265.12 +-85.3181 114.204 1623.96 +-200.013 229.408 3262.13 +-112.754 113.116 1608.49 +-121.918 108.672 1545.29 +-133.967 107.419 1527.48 +-314.019 228.778 3253.19 +-126.385 84.3554 1199.52 +-140.349 86.4143 1228.8 +-159.259 90.9903 1293.86 +-114.602 61.0658 868.344 +-121.275 60.5348 860.794 +-129.067 60.5832 861.481 +-151.006 66.8832 951.067 +-540.811 226.712 3223.8 +-568.993 226.372 3218.97 +-145.351 55.0156 782.312 +-154.918 55.9093 795.02 +-175.444 60.4937 860.21 +-112.106 36.9989 526.118 +-115.73 36.6207 520.739 +-120.034 36.4733 518.643 +-124.963 36.5144 519.228 +-130.904 36.8313 523.734 +-820.42 222.543 3164.51 +-847.969 222.005 3156.86 +-875.66 221.504 3149.75 +-903.181 220.96 3142.01 +-930.633 220.398 3134.02 +-957.897 219.793 3125.42 +-142.083 31.6123 449.521 +-143.477 30.9771 440.488 +-145.262 30.4556 433.073 +-148.199 30.1931 429.34 +-153.918 30.4913 433.581 +-1120.56 215.975 3071.13 +-1147.38 215.281 3061.26 +-1174.26 214.597 3051.52 +-145.721 25.9513 369.023 +-144.036 25.009 355.624 +-144.501 24.4727 347.998 +-147.384 24.3575 346.359 +-151.684 24.4722 347.991 +-1332.75 209.991 2986.04 +-1358.83 209.168 2974.32 +-446.454 67.1644 955.065 +-1410.66 207.472 2950.21 +-1436.32 206.588 2937.64 +-143.765 20.2279 287.638 +-143.643 19.7766 281.219 +-142.634 19.2213 273.323 +-143.705 18.9598 269.604 +-146.917 18.9821 269.921 +-149.03 18.8607 268.196 +-409.795 50.8112 722.526 +-109.85 13.3474 189.797 +-109.73 13.068 185.825 +-110.733 12.9282 183.837 +-111.971 12.8181 182.271 +-113.35 12.7252 180.95 +-114.821 12.6436 179.789 +-116.389 12.5728 178.782 +-118.004 12.5069 177.846 +-119.891 12.4691 177.308 +-122.57 12.5108 177.902 +-127.047 12.7284 180.995 +-415.958 40.9087 581.714 +-417.445 40.3063 573.148 +-418.755 39.6996 564.521 +-420.849 39.1784 557.11 +-421.993 38.5798 548.598 +-424.375 38.1044 541.838 +-424.866 37.4698 532.814 +-425.484 36.8594 524.134 +-427.445 36.3756 517.255 +-443.009 37.0369 526.657 +-431.818 35.468 504.348 +-432.146 34.874 495.902 +-434.878 34.4821 490.329 +-436.608 34.0164 483.707 +-437.985 33.5306 476.799 +-440.094 33.1074 470.78 +-441.648 32.6484 464.253 +-443.47 32.2153 458.096 +-445.498 31.8025 452.225 +-446.962 31.3549 445.861 +-447.636 30.8589 438.807 +-447.357 30.3059 430.944 +-2376.69 158.218 2249.83 +-2396.28 156.758 2229.06 +-2415.69 155.285 2208.12 +-423.593 26.7559 380.464 +-383.99 23.8321 338.888 +-382.713 23.3385 331.868 +-383.245 22.962 326.516 +-383.558 22.5777 321.051 +-383.883 22.1993 315.669 +-381.656 21.6808 308.298 +-382.382 21.3372 303.412 +-383.446 21.016 298.843 +-383.269 20.631 293.368 +-141.918 7.50218 106.68 +-142.604 7.40249 105.262 +-143.601 7.31901 104.075 +-143.122 7.16159 101.836 +-142.369 6.9932 99.442 +-142.574 6.87399 97.7469 +-145.911 6.90414 98.1755 +-147.765 6.86101 97.5622 +-493.809 22.4963 319.893 +-496.252 22.1781 315.368 +-498.228 21.84 310.561 +-500.5 21.5159 305.951 +-502.814 21.1941 301.377 +-2823.13 116.658 1658.85 +-2837.53 114.925 1634.21 +-2851.72 113.184 1609.46 +-2865.69 111.434 1584.57 +-2879.44 109.675 1559.56 +-2892.98 107.908 1534.43 +-405.807 14.8194 210.73 +-406.032 14.5131 206.373 +-406.748 14.2264 202.297 +-388.998 13.3096 189.26 +-380.44 12.7296 181.013 +-380.831 12.4577 177.146 +-379.818 12.1427 172.667 +-379.213 11.844 168.42 +-381.222 11.6283 165.352 +-379.708 11.3068 160.78 +-379.992 11.0417 157.01 +-380.794 10.7928 153.472 +-381.192 10.5336 149.786 +-379.594 10.2219 145.353 +-380.851 9.98911 142.043 +-381.233 9.73404 138.416 +-380.356 9.44873 134.359 +-380.666 9.19499 130.751 +-381.7 8.95936 127.4 +-379.947 8.6603 123.148 +-382.154 8.45272 120.196 +-381.757 8.18769 116.427 +-379.405 7.88394 112.108 +-380.756 7.6591 108.911 +-379.574 7.38446 105.006 +-379.899 7.14097 101.543 +-380.192 6.89756 98.082 +-380.55 6.65607 94.648 +-379.808 6.39665 90.9592 +-380.589 6.1639 87.6494 +-380.17 5.91245 84.074 +-380.402 5.67221 80.6577 +-380.015 5.42373 77.1244 +-379.89 5.18018 73.6612 +-381.798 4.96404 70.5878 +-379.742 4.69723 66.7937 +-380.706 4.46922 63.5514 +-380.458 4.22721 60.1101 +-380.178 3.98584 56.6779 +-380.461 3.751 53.3386 +-381.012 3.51887 50.0376 +-379.847 3.27181 46.5245 +-379.942 3.03677 43.1823 +-381.499 2.81286 39.9983 +-380.739 2.57181 36.5707 +-380.248 2.33374 33.1853 +-380.224 2.09922 29.8506 +-380.471 1.86638 26.5396 +-381.287 1.63596 23.263 +-380.078 1.39735 19.87 +-381.037 1.16706 16.5954 +-3274.5 8.02165 114.066 +-148.349 0.272513 3.87509 +-145.578 0.178259 2.53481 +-145.494 0.0890716 1.26658 +95.2 5.32907e-15 -1.7053e-13 +96.0963 0.0663746 0.835989 +96.0854 0.132744 1.67192 +96.0671 0.199103 2.50771 +96.0415 0.265448 3.34332 +96.1084 0.332118 4.18303 +96.0682 0.398485 5.01893 +95.9208 0.464339 5.84836 +95.8659 0.530572 6.68257 +95.9034 0.597386 7.52409 +96.8301 0.6705 8.44496 +96.653 0.736595 9.27742 +96.6675 0.804153 10.1283 +96.5752 0.87089 10.9689 +96.4755 0.937556 11.8085 +96.3684 1.00415 12.6473 +96.155 1.06957 13.4713 +96.0334 1.13595 14.3073 +95.9045 1.20223 15.1421 +95.6697 1.26712 15.9594 +96.2157 1.34277 16.9122 +96.064 1.40917 17.7485 +95.905 1.47547 18.5835 +95.7386 1.54165 19.4171 +95.565 1.60772 20.2493 +95.3841 1.67367 21.0799 +96.0729 1.75551 22.1106 +96.0701 1.82549 22.992 +95.6712 1.88794 23.7787 +95.4594 1.95395 24.6101 +96.3994 2.04439 25.7491 +95.9776 2.10666 26.5334 +95.7417 2.17287 27.3674 +96.3614 2.25914 28.454 +96.1086 2.32562 29.2912 +95.8486 2.39191 30.1261 +96.4371 2.48003 31.236 +96.16 2.54654 32.0738 +96.632 2.63348 33.1687 +96.4322 2.70276 34.0413 +96.7883 2.78821 35.1176 +96.4772 2.85496 35.9582 +97.0924 2.94985 37.1534 +96.7634 3.01679 37.9965 +96.5198 3.08647 38.8742 +97.0074 3.18028 40.0557 +96.7451 3.25025 40.937 +96.383 3.31695 41.777 +96.9272 3.41559 43.0194 +96.5469 3.48241 43.861 +96.1593 3.54895 44.6991 +96.5766 3.6459 45.9202 +96.171 3.71246 46.7586 +96.5634 3.81053 47.9937 +96.8524 3.90583 49.194 +96.4181 3.97257 50.0346 +96.6828 4.06874 51.2458 +96.3184 4.13914 52.1325 +96.558 4.23621 53.3551 +96.7836 4.33391 54.5857 +96.3886 4.40455 55.4754 +96.5886 4.5031 56.7166 +96.7742 4.60225 57.9654 +97.0305 4.70613 59.2738 +96.5079 4.77297 60.1156 +96.6527 4.87346 61.3813 +96.1116 4.94003 62.2198 +96.3138 5.04554 63.5487 +96.4171 5.14728 64.8301 +96.5052 5.24955 66.1181 +95.9227 5.316 66.9551 +96.0656 5.42341 68.3079 +96.1112 5.52678 69.6098 +95.4982 5.59294 70.4432 +96.3154 5.74443 72.3512 +96.3924 5.8541 73.7325 +96.3737 5.95943 75.0592 +96.3391 6.06519 76.3912 +95.6667 6.13149 77.2263 +95.6814 6.24265 78.6263 +95.6023 6.3492 79.9682 +95.583 6.46125 81.3795 +95.6217 6.57895 82.8619 +96.091 6.72865 84.7475 +96.1629 6.85302 86.3139 +95.9935 6.96195 87.6859 +95.7342 7.06577 88.9935 +95.6769 7.18611 90.5092 +95.4564 7.2959 91.892 +95.9322 7.46141 93.9766 +95.2473 7.53858 94.9485 +96.1648 7.74521 97.551 +95.9323 7.86257 99.0292 +95.7501 7.98597 100.583 +96.0936 8.15598 102.725 +95.7987 8.27454 104.218 +96.0202 8.44036 106.306 +95.6823 8.55971 107.81 +95.9158 8.73304 109.993 +95.5338 8.85311 111.505 +95.6468 9.02177 113.629 +95.6026 9.17912 115.611 +95.6567 9.34937 117.755 +95.307 9.4832 119.441 +95.1813 9.64221 121.444 +95.2103 9.82061 123.691 +94.6053 9.93664 125.152 +94.9932 10.1606 127.973 +94.9273 10.3411 130.246 +94.8869 10.5287 132.609 +94.7548 10.7105 134.899 +94.5898 10.893 137.197 +95.0069 11.1481 140.411 +94.8228 11.3388 142.813 +94.4949 11.5167 145.053 +94.7797 11.7751 148.307 +94.4846 11.9676 150.733 +94.6245 12.2214 153.929 +94.3035 12.4219 156.455 +94.4021 12.6844 159.76 +94.4 12.9411 162.993 +93.9052 13.1366 165.456 +94.2955 13.4641 169.58 +94.1434 13.7234 172.847 +93.8474 13.9696 175.947 +94.5199 14.3709 181.001 +93.7944 14.5696 183.505 +93.7462 14.8818 187.436 +98.6773 16.013 201.684 +116.582 19.3452 243.653 +116.6 19.7908 249.266 +116.156 20.1731 254.08 +116.367 20.6864 260.545 +116.395 21.187 266.85 +113.781 21.2155 267.21 +110.749 21.1617 266.532 +107.999 21.1567 266.468 +105.332 21.1642 266.563 +102.637 21.1622 266.538 +100.019 21.173 266.675 +97.4073 21.1817 266.784 +94.7344 21.1737 266.683 +92.2009 21.1934 266.931 +92.6212 21.9093 275.948 +92.3034 22.4843 283.19 +91.8656 23.0605 290.447 +91.9509 23.8042 299.814 +91.8506 24.5422 309.109 +91.7321 25.3199 318.904 +91.2886 26.0534 328.143 +91.3372 26.9794 339.806 +91.1634 27.8997 351.397 +90.6723 28.7833 362.526 +90.5768 29.8607 376.096 +90.4528 31.0095 390.565 +90.1904 32.199 405.547 +90.0881 33.5451 422.501 +89.7156 34.9013 439.583 +87.6386 35.6845 449.447 +87.309 37.2845 469.599 +87.0498 39.0738 492.135 +89.0597 42.1222 530.53 +89.1207 44.5351 560.921 +89.5282 47.413 597.168 +94.0671 52.9751 667.222 +88.3401 53.1087 668.905 +87.4047 56.3414 709.621 +87.1438 60.536 762.453 +88.8492 66.9068 842.692 +85.504 70.2823 885.207 +84.9943 76.8908 968.441 +84.9712 85.4523 1076.27 +82.2847 93.1351 1173.04 +80.9748 104.786 1319.78 +79.9275 120.708 1520.33 +142.928 259.095 3263.31 +114.355 259.184 3264.43 +85.774 259.254 3265.3 +21.5223 97.5895 1229.14 +28.5907 259.301 3265.9 +1.67866e-13 259.342 3266.42 +-28.5942 259.333 3266.3 +-57.1793 259.271 3265.52 +-85.774 259.254 3265.3 +-114.355 259.184 3264.43 +-142.928 259.095 3263.31 +-171.489 258.987 3261.94 +-200.038 258.859 3260.33 +-228.543 258.679 3258.07 +-120.929 121.614 1531.73 +-133.479 120.753 1520.88 +-314.019 258.117 3250.99 +-126.511 95.2673 1199.89 +-140.44 97.5595 1228.76 +-159.344 102.714 1293.68 +-114.393 68.7713 866.176 +-121.401 68.3684 861.101 +-129.067 68.3524 860.9 +-151.163 75.5385 951.409 +-540.811 255.785 3221.62 +-568.993 255.402 3216.8 +-145.46 62.1176 782.372 +-154.746 63.0092 793.603 +-175.384 68.2282 859.336 +-112.168 41.767 526.056 +-115.73 41.3169 520.387 +-120.034 41.1506 518.293 +-125.173 41.2663 519.749 +-131.049 41.6006 523.96 +-820.42 251.082 3162.38 +-330.641 97.6655 1230.1 +-875.553 249.879 3147.24 +-903.181 249.296 3139.89 +-930.633 248.662 3131.9 +-136.216 35.2635 444.144 +-142.144 35.6814 449.408 +-143.6 34.9797 440.57 +-145.008 34.3012 432.024 +-148.427 34.1174 429.71 +-152.783 34.1479 430.094 +-1120.56 243.672 3069.05 +-402.353 85.1737 1072.76 +-1174.26 242.117 3049.46 +-145.684 29.272 368.681 +-144.336 28.2749 356.123 +-144.616 27.633 348.039 +-147.579 27.5176 346.584 +-151.804 27.6323 348.03 +-1332.75 236.921 2984.02 +-1358.83 235.991 2972.32 +-446.116 75.7202 953.697 +-1410.66 234.078 2948.22 +-512.807 83.2164 1048.11 +-143.943 22.8503 287.8 +-143.733 22.3269 281.208 +-142.588 21.6792 273.05 +-144.034 21.4401 270.038 +-146.917 21.4163 269.739 +-149.564 21.3556 268.974 +-409.549 57.2928 721.604 +-109.9 15.0659 189.755 +-109.73 14.7439 185.7 +-110.785 14.593 183.799 +-111.919 14.4552 182.063 +-113.827 14.4176 181.59 +-114.821 14.265 179.668 +-116.335 14.1785 178.578 +-118.501 14.1702 178.473 +-120.282 14.114 177.767 +-122.627 14.1217 177.863 +-126.76 14.3283 180.465 +-416.596 46.2257 582.214 +-417.034 45.4304 572.197 +-418.577 44.7716 563.899 +-420.609 44.1774 556.415 +-422.176 43.5462 548.465 +-424.191 42.9722 541.236 +-425.053 42.2936 532.689 +-426.616 41.697 525.174 +-427.445 41.0405 516.905 +-444.231 41.9017 527.752 +-433.052 40.1308 505.448 +-432.54 39.3822 496.019 +-434.679 38.8863 489.774 +-436.608 38.3787 483.381 +-438.255 37.854 476.772 +-440.094 37.3531 470.462 +-441.855 36.8525 464.157 +-443.748 36.3693 458.072 +-445.778 35.9034 452.204 +-446.679 35.3535 445.278 +-448.492 34.8828 439.349 +-449.012 34.3188 432.246 +-451.183 33.8875 426.814 +-2396.28 176.86 2227.56 +-421.575 30.5748 385.09 +-2434.91 173.524 2185.53 +-2453.95 171.835 2164.26 +-383.921 26.4144 332.69 +-385.146 26.0351 327.913 +-382.486 25.4019 319.937 +-382.88 24.9807 314.632 +-382.2 24.4961 308.529 +-382.93 24.108 303.64 +-382.422 23.6477 297.844 +-384.221 23.3345 293.898 +-142.077 8.47376 106.727 +-142.524 8.34704 105.131 +-143.601 8.25761 104.005 +-142.063 8.02024 101.015 +-142.287 7.88547 99.3177 +-142.574 7.75552 97.6809 +-145.828 7.7851 98.0534 +-148.598 7.78456 98.0467 +-493.809 25.3812 319.677 +-496.336 25.0265 315.209 +-498.567 24.6576 310.563 +-500.5 24.2751 305.745 +-2808.51 133.563 1682.23 +-506.724 23.6242 297.547 +-2837.53 129.663 1633.11 +-2851.72 127.699 1608.37 +-403.724 17.7122 223.086 +-2879.44 123.74 1558.51 +-2892.98 121.746 1533.39 +-2906.29 119.744 1508.17 +-405.497 16.3527 205.963 +-2932.25 115.711 1457.38 +-389.178 15.0234 189.22 +-377.371 14.2463 179.432 +-380.377 14.0386 176.817 +-380.182 13.713 172.715 +-380.857 13.4209 169.037 +-379.571 13.0626 164.524 +-380.721 12.7907 161.099 +-380.916 12.4879 157.285 +-381.073 12.1858 153.48 +-379.238 11.8235 148.917 +-379.874 11.5413 145.363 +-380.851 11.2701 141.947 +-381.703 10.9959 138.493 +-380.921 10.6763 134.468 +-381.233 10.3896 130.857 +-380.183 10.0681 126.808 +-381.374 9.80763 123.527 +-380.819 9.50339 119.695 +-380.896 9.21687 116.087 +-380.651 8.92419 112.4 +-380.948 8.64567 108.892 +-380.441 8.35053 105.175 +-379.995 8.05871 101.5 +-381.063 7.79994 98.2404 +-380.065 7.50007 94.4635 +-380.683 7.23359 91.1072 +-380.297 6.94901 87.523 +-380.267 6.67238 84.0387 +-380.402 6.39961 80.6032 +-380.505 6.12716 77.1717 +-380.086 5.8475 73.6494 +-380.028 5.57467 70.213 +-379.84 5.30098 66.766 +-380.312 5.03713 63.4427 +-380.062 4.76436 60.0072 +-379.584 4.48998 56.5513 +-380.659 4.23424 53.3303 +-380.021 3.9598 49.8737 +-379.847 3.69139 46.4931 +-380.836 3.43427 43.2547 +-379.112 3.15373 39.7213 +-379.644 2.89328 36.4409 +-379.65 2.62889 33.1109 +-381.52 2.3765 29.9321 +-379.174 2.09855 26.4312 +-380.988 1.84431 23.2291 +-380.278 1.57737 19.867 +-379.538 1.31155 16.519 +-3274.5 9.05035 113.989 +-147.449 0.305596 3.84899 +-145.478 0.200981 2.53136 +-146.394 0.101116 1.27355 +96.1 1.77636e-15 1.13687e-13 +96.0963 0.0739136 0.835356 +96.0854 0.147822 1.67065 +96.0671 0.221718 2.50581 +96.0415 0.295598 3.34079 +96.1084 0.36984 4.17986 +96.0682 0.443746 5.01513 +96.0206 0.517618 5.85001 +95.9657 0.591451 6.68445 +95.8038 0.664547 7.51058 +96.8301 0.746658 8.43857 +96.653 0.820259 9.2704 +96.5681 0.894566 10.1102 +96.7739 0.971801 10.9831 +96.4755 1.04405 11.7996 +96.3684 1.11821 12.6377 +96.2541 1.19228 13.475 +96.1323 1.26628 14.3112 +95.8058 1.3374 15.115 +95.4724 1.40813 15.9144 +95.5264 1.48457 16.7783 +96.064 1.56923 17.7351 +95.905 1.64305 18.5695 +95.7386 1.71675 19.4024 +95.565 1.79033 20.2339 +95.3841 1.86377 21.0639 +96.0729 1.9549 22.0939 +96.0701 2.03283 22.9746 +95.8652 2.10665 23.8089 +96.4275 2.19795 24.8408 +96.3994 2.27659 25.7296 +96.1703 2.35065 26.5666 +96.6068 2.44154 27.5938 +96.3614 2.51574 28.4324 +96.9693 2.61296 29.5311 +95.8486 2.66359 30.1033 +96.342 2.75899 31.1816 +96.16 2.83579 32.0495 +96.7266 2.93546 33.176 +96.4322 3.00974 34.0155 +97.0702 3.11395 35.1932 +96.4772 3.17923 35.931 +97.1857 3.28805 37.1609 +96.7634 3.35945 37.9678 +96.4271 3.43375 38.8075 +97.0074 3.54151 40.0254 +96.653 3.61599 40.8671 +96.383 3.6937 41.7454 +96.8358 3.79996 42.9463 +96.5469 3.87795 43.8278 +96.1593 3.95205 44.6653 +96.5766 4.06001 45.8854 +96.89 4.16505 47.0725 +96.4739 4.23941 47.9129 +96.8524 4.34946 49.1568 +97.2164 4.46041 50.4107 +96.6828 4.53088 51.207 +96.3184 4.60928 52.0931 +96.558 4.71737 53.3147 +96.0873 4.79145 54.152 +96.3886 4.90483 55.4334 +96.5886 5.01457 56.6737 +96.0885 5.08867 57.5111 +97.0305 5.24066 59.2289 +96.4231 5.31042 60.0173 +96.737 5.43175 61.3885 +96.1116 5.50114 62.1727 +96.3138 5.61863 63.5006 +96.4171 5.73192 64.781 +96.5876 5.85079 66.1245 +95.9227 5.9198 66.9044 +96.0656 6.03942 68.2562 +96.1112 6.15452 69.5572 +96.3021 6.28064 70.9825 +96.2356 6.39159 72.2365 +96.3924 6.51902 73.6767 +95.6645 6.58749 74.4504 +95.713 6.71019 75.8372 +95.6667 6.82793 77.1678 +96.3759 7.00216 79.137 +96.2918 7.12134 80.484 +96.2674 7.24665 81.9001 +95.6217 7.3262 82.7992 +95.5667 7.45203 84.2213 +96.1629 7.6314 86.2485 +95.9198 7.74676 87.5522 +95.8073 7.87433 88.9941 +96.3297 8.05693 91.0578 +96.1038 8.1797 92.4452 +96.0035 8.31507 93.9753 +95.7423 8.43846 95.3697 +95.5339 8.56834 96.8377 +95.8629 8.74928 98.8826 +95.7501 8.89304 100.507 +95.4798 9.02437 101.992 +95.7987 9.21439 104.139 +95.3511 9.33355 105.486 +95.6823 9.53195 107.728 +95.3254 9.66504 109.232 +95.5338 9.85867 111.421 +95.1326 9.99255 112.934 +95.6026 10.2217 115.524 +95.2791 10.3702 117.202 +95.307 10.5603 119.351 +95.3044 10.7513 121.509 +95.1494 10.9291 123.518 +95.0868 11.1215 125.693 +94.9337 11.3076 127.797 +94.8685 11.5085 130.067 +94.9449 11.7318 132.59 +94.8122 11.9343 134.879 +95.043 12.1883 137.75 +94.5595 12.356 139.644 +94.7676 12.6193 142.621 +94.3859 12.81 144.776 +94.7259 13.1051 148.111 +94.5376 13.3345 150.703 +94.102 13.5343 152.962 +94.355 13.8404 156.422 +94.4021 14.1251 159.639 +94.4 14.411 162.87 +94.3976 14.7054 166.198 +93.9076 14.9317 168.755 +94.1434 15.2822 172.716 +93.8943 15.5641 175.903 +94.1044 15.9328 180.069 +93.7944 16.2245 183.366 +93.88 16.5957 187.561 +98.4143 17.7842 200.994 +116.496 21.5266 243.29 +116.6 22.0387 249.077 +116.57 22.5446 254.795 +116.327 23.028 260.257 +116.355 23.5853 266.557 +113.742 23.6172 266.916 +111.093 23.6386 267.158 +108.336 23.6333 267.098 +105.662 23.6418 267.195 +102.672 23.5741 266.43 +99.9842 23.5696 266.379 +97.4073 23.5876 266.582 +94.7344 23.5786 266.481 +92.2986 23.6256 267.012 +92.3991 24.3393 275.077 +92.3034 25.0381 282.975 +92.0761 25.7385 290.892 +92.0971 26.5501 300.064 +91.8222 27.3213 308.78 +91.484 28.1196 317.801 +91.6093 29.1146 329.047 +91.3372 30.0438 339.548 +91.1634 31.0686 351.131 +90.7207 32.0697 362.445 +90.5301 33.2352 375.618 +90.2279 34.4458 389.299 +90.1687 35.8476 405.142 +90.0881 37.3553 422.182 +89.5959 38.8137 438.664 +87.5241 39.6857 448.52 +87.2361 41.4848 468.852 +87.1019 43.538 492.058 +89.0597 46.9066 530.129 +88.9643 49.5065 559.512 +89.5282 52.7983 596.716 +94.0532 58.9834 666.619 +88.2357 59.071 667.609 +87.5266 62.8283 710.073 +86.8495 67.1842 759.302 +88.6819 74.3659 840.468 +85.5136 78.2739 884.636 +85.1773 85.8087 969.792 +84.8614 95.0357 1074.07 +82.2917 103.722 1172.25 +80.4986 116.001 1311.02 +78.7813 132.491 1497.39 +142.928 288.524 3260.84 +114.355 288.623 3261.96 +85.774 288.7 3262.83 +21.5415 108.771 1229.31 +28.5942 288.789 3263.83 +1.63425e-13 288.799 3263.95 +-28.5942 288.789 3263.83 +-57.1863 288.755 3263.45 +-85.774 288.7 3262.83 +-114.355 288.623 3261.96 +-142.928 288.524 3260.84 +-171.489 288.403 3259.48 +-200.038 288.261 3257.86 +-228.571 288.096 3256 +-257.087 287.909 3253.89 +-132.817 133.801 1512.19 +-314.019 287.435 3248.53 +-126.511 106.088 1198.99 +-140.53 108.71 1228.62 +-159.405 114.424 1293.2 +-114.719 76.8011 867.99 +-121.526 76.2124 861.337 +-129.067 76.1161 860.248 +-151.21 84.1446 950.985 +-540.811 284.838 3219.18 +-568.993 284.412 3214.36 +-145.552 69.2164 782.27 +-154.918 70.2438 793.881 +-175.504 76.0296 859.271 +-112.418 46.6143 526.826 +-115.925 46.0873 520.869 +-120.034 45.8246 517.901 +-124.987 45.8848 518.581 +-130.928 46.283 523.08 +-820.42 279.6 3159.98 +-847.969 278.924 3152.34 +-875.553 278.261 3144.85 +-903.181 277.612 3137.51 +-930.633 276.906 3129.53 +-141.83 40.8871 462.098 +-164.246 45.9124 518.893 +-143.384 38.8941 439.573 +-145.294 38.2724 432.547 +-148.427 37.9926 429.384 +-152.917 38.0598 430.143 +-1120.56 271.349 3066.73 +-1147.38 270.477 3056.88 +-1174.26 269.617 3047.16 +-145.684 32.5967 368.402 +-144.336 31.4865 355.854 +-144.693 30.788 347.96 +-147.775 30.6836 346.78 +-152.043 30.8194 348.314 +-1332.75 263.831 2981.76 +-1358.83 262.796 2970.07 +-446.454 84.3847 953.698 +-1410.66 260.666 2945.99 +-1436.32 259.555 2933.44 +-143.765 25.4142 287.226 +-143.688 24.855 280.907 +-142.68 24.1572 273.019 +-144.081 23.8832 269.922 +-147.347 23.9186 270.323 +-150.097 23.866 269.728 +-409.401 63.7773 720.798 +-109.5 16.7161 188.922 +-109.73 16.4185 185.559 +-110.785 16.2505 183.659 +-111.815 16.082 181.755 +-113.35 15.9878 180.691 +-114.713 15.8703 179.363 +-116.335 15.7889 178.443 +-118.059 15.7209 177.674 +-120.282 15.7172 177.632 +-123.08 15.7839 178.386 +-126.646 15.9413 180.165 +-416.19 51.426 581.206 +-417.445 50.6405 572.328 +-419.41 49.9561 564.593 +-420.849 49.2234 556.313 +-422.176 48.4923 548.05 +-424.375 47.874 541.062 +-425.613 47.1595 532.987 +-426.616 46.4331 524.777 +-427.826 45.7428 516.975 +-443.845 46.6205 526.895 +-432.662 44.6487 504.611 +-432.868 43.8885 496.019 +-435.275 43.3625 490.074 +-437.21 42.7969 483.681 +-438.39 42.1665 476.557 +-440.571 41.6408 470.615 +-441.855 41.0383 463.806 +-443.47 40.475 457.44 +-445.778 39.9814 451.862 +-447.033 39.4002 445.293 +-448.492 38.8449 439.017 +-449.012 38.2168 431.919 +-452.561 37.8517 427.793 +-452.415 37.1837 420.242 +-453.426 36.6199 413.871 +-382.348 30.3428 342.928 +-423.01 32.9852 372.792 +-382.864 29.3337 331.524 +-382.56 28.7977 325.465 +-382.869 28.3154 320.015 +-383.112 27.8349 314.584 +-382.667 27.3117 308.671 +-382.774 26.8353 303.287 +-383.21 26.3879 298.231 +-382.555 25.8722 292.403 +-142.636 9.47334 107.066 +-142.685 9.30561 105.17 +-143.601 9.19553 103.926 +-142.877 8.98233 101.516 +-143.188 8.83672 99.8708 +-142.491 8.63142 97.5505 +-145.745 8.66442 97.9235 +-147.931 8.62983 97.5326 +-493.809 28.2641 319.435 +-496.252 27.8643 314.917 +-498.567 27.4583 310.328 +-500.244 27.0185 305.357 +-502.043 26.5873 300.484 +-505.862 26.2628 296.816 +-2837.53 144.391 1631.87 +-2851.72 142.203 1607.15 +-405.649 19.8181 223.98 +-2879.44 137.795 1557.33 +-2892.98 135.574 1532.23 +-2906.29 133.345 1507.03 +-404.606 18.1701 205.355 +-403.973 17.7521 200.63 +-387.38 16.6525 188.203 +-379.627 15.9593 180.368 +-380.015 15.6183 176.514 +-380.273 15.2742 172.626 +-380.309 14.9237 168.665 +-381.222 14.6096 165.115 +-380.353 14.2297 160.822 +-380.546 13.8928 157.014 +-380.145 13.5369 152.991 +-380.541 13.2117 149.316 +-380.527 12.8743 145.503 +-379.352 12.5008 141.282 +-379.73 12.1814 137.672 +-380.639 11.8801 134.266 +-380.571 11.5496 130.531 +-381.131 11.2397 127.029 +-380.898 10.9079 123.279 +-381.105 10.5907 119.694 +-380.609 10.256 115.911 +-380.651 9.93782 112.315 +-380.371 9.61312 108.646 +-379.574 9.27776 104.855 +-380.478 8.9855 101.552 +-380.579 8.67485 98.0414 +-380.162 8.35408 94.4161 +-380.099 8.04285 90.8987 +-381.174 7.75615 87.6584 +-381.341 7.45123 84.2123 +-380.597 7.13016 80.5836 +-380.015 6.81432 77.014 +-379.399 6.49991 73.4607 +-380.028 6.20785 70.1599 +-379.742 5.90155 66.6981 +-379.523 5.59762 63.2631 +-379.569 5.29861 59.8838 +-380.771 5.01559 56.6851 +-380.857 4.71763 53.3177 +-380.913 4.41992 49.953 +-380.443 4.11711 46.5307 +-381.333 3.82933 43.2783 +-380.405 3.52391 39.8265 +-379.644 3.22191 36.4133 +-379.949 2.92979 33.1118 +-381.52 2.64643 29.9094 +-380.471 2.3449 26.5016 +-380.289 2.05003 23.169 +-381.476 1.76207 19.9145 +-380.637 1.46475 16.5543 +-3274.5 10.0783 113.903 +-147.749 0.340998 3.85389 +-145.778 0.22427 2.53466 +-146.094 0.112371 1.26999 +95.2 5.32907e-15 -1.7053e-13 +96.1963 0.0815312 0.835524 +96.1853 0.163056 1.67098 +96.0671 0.244314 2.50371 +96.0415 0.325724 3.33799 +96.0085 0.407108 4.172 +96.0682 0.48897 5.01092 +95.9208 0.569778 5.83903 +96.8635 0.657825 6.74133 +96.8007 0.739894 7.58237 +96.7305 0.821906 8.42281 +96.653 0.903855 9.26262 +96.6675 0.986755 10.1122 +95.5816 1.05764 10.8386 +96.4755 1.15045 11.7897 +96.3684 1.23217 12.6271 +96.2541 1.3138 13.4637 +96.0334 1.39389 14.2845 +95.8058 1.4737 15.1024 +96.5574 1.56928 16.0818 +95.5264 1.63587 16.7643 +95.1791 1.71323 17.557 +95.905 1.8105 18.5539 +95.7386 1.89172 19.3861 +95.565 1.97279 20.217 +95.3841 2.05371 21.0462 +96.0729 2.15413 22.0753 +96.0701 2.24001 22.9554 +95.6712 2.31664 23.7407 +95.4594 2.39764 24.5708 +96.3994 2.50861 25.708 +96.1703 2.59022 26.5443 +95.7417 2.66627 27.3237 +96.3614 2.77213 28.4086 +96.1086 2.8537 29.2445 +96.7069 2.96133 30.3475 +96.4371 3.04318 31.1862 +96.16 3.12479 32.0226 +96.7266 3.23463 33.1482 +96.4322 3.31648 33.987 +96.7883 3.42134 35.0616 +96.4772 3.50324 35.9009 +97.1857 3.62315 37.1297 +96.7634 3.70182 37.9359 +97.3543 3.82007 39.1478 +97.0074 3.90244 39.9918 +96.653 3.98451 40.8329 +96.383 4.07014 41.7104 +96.9272 4.19118 42.9508 +96.5469 4.27317 43.791 +96.1593 4.35482 44.6278 +96.5766 4.47379 45.8469 +96.89 4.58952 47.033 +96.4739 4.67146 47.8727 +96.8524 4.79274 49.1155 +96.4181 4.87464 49.9548 +96.7711 4.9972 51.2109 +96.4062 5.08366 52.0969 +96.558 5.19813 53.27 +96.8706 5.32281 54.5476 +96.3886 5.40471 55.3869 +96.5886 5.52563 56.6261 +96.8599 5.65229 57.9242 +96.3483 5.73417 58.7632 +96.5079 5.85678 60.0197 +96.737 5.98532 61.337 +96.0278 6.0565 62.0664 +96.2304 6.18589 63.3924 +96.3342 6.31066 64.671 +95.7635 6.39206 65.5053 +95.9227 6.52312 66.8483 +96.0656 6.65492 68.199 +96.1112 6.78176 69.4988 +96.3021 6.92073 70.9229 +96.3154 7.04884 72.2358 +95.6784 7.13019 73.0695 +96.4525 7.31864 75.0008 +96.3391 7.44243 76.2693 +96.3661 7.5788 77.6668 +96.2987 7.70961 79.0073 +96.2152 7.84087 80.3524 +96.2674 7.98519 81.8314 +96.2255 8.12381 83.2521 +96.091 8.25655 84.6123 +96.0886 8.40265 86.1096 +96.5833 8.59531 88.0839 +95.7342 8.67022 88.8516 +96.3297 8.87805 90.9814 +96.1757 9.02006 92.4367 +95.9322 9.15569 93.8266 +95.7423 9.29846 95.2897 +95.4638 9.43466 96.6855 +95.8629 9.64096 98.7996 +95.7501 9.79937 100.423 +95.4798 9.94408 101.906 +95.7987 10.1535 104.052 +95.418 10.292 105.471 +95.7486 10.5107 107.712 +95.3254 10.65 109.141 +95.5338 10.8634 111.327 +95.7754 11.0853 113.601 +95.3481 11.2335 115.12 +95.2791 11.4271 117.104 +95.2447 11.629 119.173 +95.2428 11.8394 121.329 +95.1494 12.0429 123.415 +95.0266 12.2473 125.509 +94.9932 12.4678 127.769 +94.9861 12.6971 130.119 +94.8288 12.9116 132.317 +94.6975 13.1347 134.603 +95.043 13.4305 137.634 +94.5595 13.6152 139.527 +94.7676 13.9054 142.501 +94.4404 14.1236 144.738 +94.7259 14.4407 147.987 +94.5376 14.6934 150.577 +94.102 14.9137 152.834 +94.3035 15.2426 156.205 +94.4529 15.573 159.591 +94.4 15.8796 162.733 +94.3484 16.1957 165.972 +94.2955 16.5214 169.31 +94.1434 16.8397 172.571 +93.8943 17.1504 175.755 +94.1044 17.5566 179.918 +93.8398 17.8866 183.3 +93.9693 18.3044 187.582 +97.6253 19.4396 199.215 +116.496 23.7205 243.085 +116.6 24.2848 248.868 +116.529 24.8334 254.49 +116.693 25.4547 260.857 +116.514 26.0247 266.698 +113.742 26.0241 266.692 +111.093 26.0477 266.934 +108.336 26.0419 266.874 +105.699 26.0603 267.064 +102.959 26.0492 266.95 +100.019 25.9809 266.249 +97.4073 25.9915 266.359 +94.7344 25.9816 266.257 +92.1032 25.9782 266.223 +92.4626 26.8382 275.036 +92.3652 27.6083 282.927 +91.9258 28.3153 290.173 +91.9217 29.2002 299.241 +91.8222 30.1057 308.521 +91.4565 30.976 317.439 +91.2886 31.9695 327.62 +91.3372 33.1057 339.264 +91.1884 34.2443 350.932 +90.7207 35.338 362.141 +90.5301 36.6224 375.302 +90.3178 37.9942 389.361 +88.9567 38.97 399.361 +90.0466 41.1434 421.633 +89.5959 42.7693 438.296 +87.4859 43.7112 447.948 +87.1268 45.6554 467.872 +86.9283 47.8795 490.664 +89.0432 51.6775 529.586 +89.0894 54.6287 559.83 +89.3508 58.0639 595.034 +94.1784 65.0812 666.946 +88.2488 65.1008 667.147 +87.5266 69.2314 709.477 +86.7476 73.9444 757.775 +87.7935 81.1239 831.35 +85.4177 86.1545 882.903 +85.0291 94.3894 967.294 +84.932 104.808 1074.06 +82.2778 114.274 1171.07 +79.8942 126.863 1300.08 +77.8445 144.258 1478.34 +142.928 317.929 3258.1 +114.355 318.038 3259.22 +32.428 120.271 1232.53 +21.5502 119.905 1228.77 +28.5942 318.22 3261.09 +1.69642e-13 318.232 3261.21 +-28.5942 318.22 3261.09 +-57.1863 318.183 3260.71 +-85.774 318.123 3260.1 +-114.355 318.038 3259.22 +-142.928 317.929 3258.1 +-171.468 317.757 3256.34 +-200.013 317.6 3254.73 +-228.571 317.457 3253.27 +-257.056 317.212 3250.76 +-285.548 316.982 3248.4 +-314.019 316.728 3245.8 +-126.605 116.986 1198.87 +-140.734 119.963 1229.37 +-159.478 126.144 1292.71 +-114.719 84.6282 867.262 +-121.526 83.9795 860.614 +-129.156 83.931 860.117 +-151.35 92.8064 951.071 +-540.811 313.867 3216.48 +-568.993 313.397 3211.67 +-145.624 76.3087 782.005 +-155.109 77.4981 794.193 +-175.683 83.8638 859.428 +-112.231 51.2796 525.508 +-115.925 50.7842 520.432 +-120.214 50.5705 518.241 +-125.197 50.6461 519.017 +-131.17 51.0941 523.607 +-820.42 308.096 3157.33 +-848.072 307.388 3150.09 +-875.66 306.658 3142.6 +-903.071 305.867 3134.49 +-930.633 305.127 3126.91 +-957.897 304.289 3118.33 +-164.666 50.7212 519.786 +-143.631 42.9318 439.961 +-145.294 42.1729 432.184 +-148.687 41.938 429.777 +-152.45 41.8104 428.469 +-1120.56 299.003 3064.16 +-402.283 104.497 1070.87 +-1174.26 297.095 3044.6 +-145.611 35.9008 367.908 +-144.336 34.6954 355.555 +-144.348 33.8449 346.84 +-147.618 33.775 346.123 +-151.724 33.889 347.291 +-1332.75 290.719 2979.26 +-1358.83 289.579 2967.57 +-446.496 92.9934 952.988 +-1410.66 287.231 2943.52 +-1436.32 286.008 2930.98 +-143.631 27.9781 286.717 +-143.643 27.3794 280.581 +-142.634 26.6106 272.703 +-144.034 26.3085 269.607 +-147.299 26.3477 270.009 +-408.016 71.4878 732.6 +-409.696 70.3278 720.713 +-110.1 18.5206 189.798 +-109.679 18.0835 185.318 +-110.785 17.9066 183.505 +-111.919 17.7375 181.773 +-113.297 17.6091 180.456 +-115.251 17.5696 180.052 +-116.771 17.4632 178.961 +-118.556 17.396 178.272 +-120.282 17.319 177.483 +-123.023 17.3844 178.154 +-126.818 17.5898 180.259 +-416.712 56.7382 581.447 +-417.386 55.7936 571.767 +-418.934 54.9849 563.48 +-420.609 54.2089 555.527 +-422.541 53.4806 548.064 +-423.821 52.6842 539.903 +-426.049 52.0189 533.085 +-427.057 51.2181 524.878 +-428.271 50.457 517.079 +-443.009 51.2751 525.462 +-433.831 49.332 505.55 +-433.065 48.3834 495.829 +-434.878 47.7382 489.216 +-436.608 47.0935 482.61 +-438.863 46.514 476.671 +-440.094 45.8349 469.712 +-441.648 45.1995 463.2 +-443.748 44.6278 457.342 +-445.778 44.0561 451.483 +-447.316 43.4432 445.201 +-448.492 42.8037 438.649 +-449.228 42.1319 431.763 +-452.996 41.7495 427.845 +-454.024 41.119 421.384 +-454.974 40.4899 414.936 +-2434.91 212.926 2182.05 +-2453.95 210.854 2160.81 +-382.411 32.285 330.854 +-385.146 31.947 327.39 +-383.022 31.2137 319.875 +-384.115 30.752 315.143 +-381.19 29.9791 307.223 +-382.695 29.5642 302.971 +-381.791 28.9696 296.878 +-384.221 28.6331 293.429 +-141.997 10.3921 106.497 +-142.524 10.2424 104.963 +-143.601 10.1327 103.839 +-142.877 9.89775 101.431 +-142.369 9.68162 99.2163 +-142.162 9.48908 97.2432 +-145.662 9.54202 97.7857 +-148.182 9.52542 97.6156 +-494.312 31.1764 319.492 +-495.83 30.678 314.385 +-498.567 30.2566 310.067 +-501.267 29.8329 305.725 +-502.3 29.3119 300.385 +-507.327 29.0231 297.426 +-2837.53 159.106 1630.51 +-2851.72 156.696 1605.8 +-2865.69 154.273 1580.97 +-2879.44 151.838 1556.02 +-2892.98 149.391 1530.95 +-2906.29 146.934 1505.77 +-405.497 20.066 205.634 +-404.6 19.5916 200.772 +-2944.9 139.495 1429.53 +-379.808 17.5941 180.303 +-380.377 17.2264 176.535 +-380.728 16.851 172.688 +-379.395 16.4053 168.119 +-379.755 16.0366 164.341 +-380.537 15.6875 160.764 +-380.916 15.3235 157.034 +-381.443 14.9674 153.384 +-380.262 14.5475 149.081 +-378.754 14.1202 144.703 +-380.008 13.7987 141.407 +-380.294 13.4429 137.762 +-382.335 13.1492 134.752 +-380.382 12.7203 130.357 +-381.226 12.3882 126.953 +-381.088 12.0256 123.238 +-380.247 11.6438 119.324 +-380.418 11.2955 115.755 +-380.268 10.9396 112.108 +-380.756 10.6035 108.664 +-379.959 10.2337 104.874 +-380.478 9.90125 101.467 +-381.45 9.58082 98.1834 +-379.871 9.19843 94.2647 +-379.808 8.85574 90.7527 +-380.784 8.53787 87.4953 +-379.291 8.16648 83.6893 +-379.815 7.84067 80.3505 +-380.309 7.5146 77.0089 +-380.282 7.17902 73.57 +-380.126 6.8423 70.1193 +-379.84 6.50469 66.6595 +-380.016 6.17611 63.2922 +-379.865 5.84317 59.8803 +-380.178 5.51813 56.5493 +-379.867 5.18491 53.1344 +-379.723 4.85516 49.7552 +-381.336 4.54735 46.6009 +-379.942 4.2042 43.0843 +-379.609 3.87493 39.7099 +-379.843 3.55212 36.4018 +-380.546 3.23345 33.1361 +-379.626 2.90166 29.736 +-381.069 2.58795 26.521 +-380.489 2.26014 23.1617 +-379.979 1.93402 19.8197 +-379.838 1.61064 16.5057 +-3274.5 11.1054 113.807 +-146.25 0.371938 3.81159 +-145.778 0.247127 2.53253 +-145.794 0.123568 1.26632 +96.1 1.77636e-15 1.13687e-13 +95.1964 0.0881396 0.826077 +96.0854 0.177939 1.66771 +96.0671 0.266891 2.5014 +96.0415 0.355823 3.33491 +96.0085 0.444728 4.16816 +96.0682 0.534155 5.0063 +95.9208 0.62243 5.83365 +96.8635 0.718614 6.73512 +95.9034 0.800776 7.50517 +96.8301 0.898782 8.42373 +96.653 0.98738 9.25409 +96.6675 1.07794 10.1029 +96.7739 1.1698 10.9638 +96.4755 1.25676 11.7788 +96.3684 1.34603 12.6155 +96.2541 1.4352 13.4513 +96.9236 1.53681 14.4035 +95.8058 1.60989 15.0885 +95.6697 1.69853 15.9192 +96.2157 1.79993 16.8696 +96.064 1.88895 17.7039 +95.905 1.97781 18.5368 +95.7386 2.06653 19.3683 +95.565 2.15509 20.1984 +95.3841 2.24349 21.0269 +96.0729 2.35319 22.055 +96.0701 2.447 22.9342 +95.6712 2.53072 23.7189 +96.4275 2.64576 24.7971 +96.2062 2.73494 25.6329 +95.9776 2.8239 26.4667 +95.7417 2.91266 27.2986 +95.4984 3.00119 28.1282 +96.1086 3.11741 29.2176 +96.7069 3.23499 30.3195 +96.4371 3.32439 31.1575 +96.16 3.41355 31.9931 +96.7266 3.53354 33.1176 +96.4322 3.62295 33.9557 +97.0702 3.74839 35.1313 +96.4772 3.82697 35.8678 +97.0924 3.95417 37.0599 +96.7634 4.0439 37.901 +96.5198 4.13731 38.7764 +97.0074 4.26306 39.955 +96.653 4.35271 40.7952 +96.383 4.44625 41.672 +96.105 4.53964 42.5472 +96.5469 4.66804 43.7507 +96.1593 4.75725 44.5867 +96.4864 4.88263 45.7619 +96.0811 4.97178 46.5974 +96.4739 5.10315 47.8286 +96.0505 5.19228 48.664 +96.4181 5.3251 49.9088 +96.7711 5.45899 51.1637 +96.3184 5.54837 52.0014 +96.558 5.67849 53.2209 +96.0873 5.76767 54.0568 +96.302 5.89885 55.2862 +96.5886 6.03625 56.574 +96.8599 6.17462 57.8708 +96.2631 6.25852 58.6572 +96.4231 6.39238 59.9117 +96.737 6.53841 61.2805 +96.1116 6.62194 62.0633 +96.3138 6.76338 63.3889 +96.4171 6.89975 64.6671 +95.7635 6.98275 65.4449 +95.9227 7.12591 66.7867 +96.0656 7.26989 68.1362 +96.1112 7.40845 69.4348 +96.3021 7.56026 70.8576 +96.3154 7.70021 72.1693 +95.6784 7.78909 73.0022 +96.3737 7.98842 74.8704 +96.2608 8.12357 76.1371 +96.3661 8.27915 77.5953 +95.6043 8.36131 78.3653 +96.2152 8.56543 80.2784 +96.1914 8.7162 81.6915 +96.15 8.86757 83.1102 +95.5667 8.97031 84.0731 +96.0886 9.17913 86.0303 +95.9198 9.32509 87.3982 +95.8073 9.47866 88.8376 +96.2572 9.69116 90.8292 +96.1757 9.8536 92.3516 +95.9322 10.0018 93.7402 +95.7423 10.1577 95.2019 +95.5339 10.3141 96.6673 +95.9323 10.5395 98.7801 +95.6813 10.6972 100.258 +95.4116 10.8551 101.739 +95.7311 11.0839 103.882 +95.418 11.243 105.374 +95.6823 11.474 107.539 +95.391 11.6423 109.116 +95.5338 11.8673 111.225 +95.6468 12.0934 113.344 +95.2209 12.2552 114.86 +95.2791 12.4831 116.996 +95.307 12.7119 119.141 +95.3044 12.9418 121.296 +95.1494 13.1558 123.301 +95.0266 13.379 125.393 +94.8148 13.5944 127.412 +94.9273 13.8619 129.919 +94.8869 14.1133 132.275 +94.8122 14.3658 134.642 +94.5898 14.6017 136.852 +94.951 14.935 139.976 +94.7676 15.1904 142.37 +94.4404 15.4288 144.604 +94.7259 15.7752 147.851 +94.6436 16.0692 150.606 +94.2065 16.31 152.863 +94.3035 16.6512 156.061 +94.4021 17.003 159.358 +94.4 17.3471 162.583 +94.2991 17.6831 165.732 +94.2955 18.0481 169.154 +94.0957 18.3865 172.325 +93.8474 18.7258 175.505 +93.6426 19.0849 178.871 +93.8398 19.5395 183.132 +94.0585 20.0149 187.587 +97.3184 21.1692 198.406 +116.496 25.9125 242.862 +116.22 26.4424 247.828 +116.114 27.0317 253.351 +116.327 27.7197 259.799 +116.674 28.4685 266.818 +113.742 28.4289 266.447 +111.055 28.445 266.597 +108.336 28.4483 266.629 +105.699 28.4685 266.818 +102.637 28.3672 265.868 +100.019 28.3817 266.004 +97.3731 28.3834 266.02 +95.0014 28.4626 266.762 +92.3637 28.4592 266.73 +92.6847 29.3887 275.442 +92.1489 30.0889 282.004 +91.9258 30.9319 289.906 +91.6878 31.8174 298.204 +91.6234 32.8166 307.569 +91.484 33.8487 317.242 +91.3955 34.9647 327.702 +91.2078 36.1137 338.471 +91.1133 37.378 350.321 +90.7933 38.6345 362.097 +90.6235 40.0479 375.344 +90.0254 41.3707 387.742 +88.1775 42.1983 395.498 +89.9426 44.8935 420.759 +89.8352 46.8464 439.062 +87.4668 47.7401 447.438 +87.1633 49.8952 467.637 +86.9804 52.3353 490.506 +88.8781 56.3483 528.117 +88.9643 59.593 558.528 +89.3212 63.4086 594.289 +94.1645 71.0848 666.233 +88.3662 71.2114 667.42 +87.2828 75.4184 706.85 +86.0684 80.145 751.15 +87.6994 88.5255 829.695 +85.4177 94.116 882.09 +84.942 103.006 965.411 +84.9712 114.546 1073.57 +82.0894 124.547 1167.3 +81.2007 140.853 1320.13 +171.468 347.121 3253.34 +142.91 347.266 3254.71 +114.341 347.385 3255.82 +32.4647 131.534 1232.78 +57.1793 347.544 3257.31 +28.5907 347.584 3257.69 +1.59872e-13 347.639 3258.21 +-28.5942 347.627 3258.09 +-57.1863 347.586 3257.71 +-85.7635 347.478 3256.7 +-114.355 347.427 3256.22 +-142.91 347.266 3254.71 +-171.468 347.121 3253.34 +-200.013 346.949 3251.73 +-228.543 346.75 3249.87 +-109.584 147.725 1384.53 +-285.583 346.316 3245.81 +-314.019 345.997 3242.81 +-126.574 127.766 1197.47 +-140.836 131.143 1229.12 +-159.698 137.989 1293.29 +-114.719 92.4486 866.463 +-121.651 91.8345 860.708 +-129.156 91.6869 859.325 +-151.413 101.424 950.588 +-540.811 342.871 3213.52 +-568.993 342.358 3208.71 +-145.716 83.4125 781.774 +-155.624 84.9407 796.096 +-175.563 91.5511 858.052 +-112.397 56.1013 525.803 +-115.903 55.4669 519.856 +-120.214 55.2436 517.764 +-125.15 55.3057 518.346 +-131.17 55.8156 523.125 +-820.42 336.566 3154.43 +-848.072 335.794 3147.19 +-875.66 334.996 3139.71 +-903.181 334.173 3131.99 +-930.633 333.323 3124.03 +-161.097 55.9037 523.95 +-164.606 55.3881 519.119 +-143.353 46.8083 438.705 +-145.04 45.9897 431.032 +-148.589 45.7834 429.099 +-152.55 45.7041 428.356 +-1120.56 326.634 3061.33 +-402.178 114.123 1069.6 +-1174.26 324.549 3041.79 +-145.428 39.169 367.106 +-144.336 37.9016 355.228 +-144.54 37.0215 346.98 +-147.97 36.984 346.628 +-151.525 36.9721 346.516 +-1332.75 317.584 2976.52 +-1358.83 316.338 2964.84 +-446.919 101.683 953.011 +-1410.66 313.774 2940.81 +-1436.32 312.437 2928.28 +-143.497 30.5351 286.187 +-143.688 29.919 280.412 +-142.588 29.0602 272.363 +-144.034 28.7397 269.359 +-147.49 28.8197 270.109 +-408.307 78.1496 732.448 +-408.909 76.6789 718.664 +-109.6 20.1402 188.762 +-109.679 19.7546 185.147 +-110.836 19.5704 183.421 +-111.919 19.3766 181.605 +-113.35 19.2452 180.373 +-115.036 19.1575 179.551 +-116.716 19.068 178.713 +-118.501 18.9946 178.025 +-120.226 18.9106 177.237 +-123.023 18.9909 177.99 +-126.76 19.2066 180.011 +-416.48 61.9468 580.589 +-417.974 61.0352 572.045 +-418.934 60.0659 562.961 +-420.97 59.2692 555.493 +-422.907 58.4732 548.032 +-424.745 57.6781 540.581 +-426.236 56.8509 532.828 +-427.246 55.9758 524.626 +-428.017 55.0869 516.296 +-442.238 55.9159 524.064 +-433.182 53.8101 504.328 +-433.065 52.8545 495.372 +-435.076 52.1734 488.989 +-436.608 51.4454 482.165 +-438.593 50.781 475.939 +-440.912 50.1635 470.151 +-442.543 49.4764 463.711 +-444.373 48.8206 457.565 +-446.059 48.1576 451.351 +-447.033 47.4277 444.51 +-449.205 46.8335 438.942 +-450.594 46.1653 432.678 +-452.996 45.6075 427.451 +-453.586 44.8753 420.588 +-456.006 44.3318 415.495 +-456.885 43.6452 409.059 +-458.885 43.0729 403.696 +-383.242 35.345 331.267 +-384.233 34.8166 326.314 +-384.248 34.2072 320.602 +-382.88 33.4857 313.841 +-383.444 32.943 308.755 +-382.93 32.3159 302.877 +-382.5 31.7054 297.155 +-136.853 11.1411 104.418 +-141.918 11.346 106.339 +-142.443 11.1827 104.808 +-143.601 11.069 103.743 +-142.877 10.8124 101.338 +-142.369 10.5763 99.125 +-142.739 10.408 97.5479 +-146.242 10.4653 98.0849 +-147.765 10.3764 97.2512 +-494.312 34.0573 319.198 +-496.252 33.5414 314.363 +-498.991 33.0806 310.044 +-500.244 32.5232 304.82 +-502.3 32.0205 300.109 +-2823.13 176.43 1653.56 +-2837.53 173.809 1629 +-2851.72 171.176 1604.32 +-2865.69 168.529 1579.51 +-2879.44 165.869 1554.59 +-2892.98 163.196 1529.54 +-2906.29 160.512 1504.38 +-404.25 21.8528 204.812 +-402.989 21.3168 199.789 +-2944.9 152.385 1428.21 +-378.183 19.1377 179.366 +-381.193 18.8586 176.75 +-379.363 18.3422 171.91 +-379.121 17.9083 167.843 +-378.929 17.4804 163.833 +-380.537 17.1372 160.616 +-380.916 16.7396 156.89 +-380.516 16.3108 152.871 +-380.541 15.9034 149.053 +-379.594 15.4592 144.89 +-380.195 15.0812 141.347 +-379.73 14.6633 137.43 +-380.544 14.2971 133.997 +-381.044 13.92 130.463 +-380.657 13.5128 126.647 +-381.374 13.1468 123.217 +-380.438 12.7262 119.275 +-380.896 12.3549 115.795 +-379.788 11.9354 111.863 +-381.621 11.6097 108.81 +-379.574 11.168 104.671 +-380.478 10.8162 101.374 +-379.901 10.4237 97.6946 +-380.55 10.0664 94.3463 +-379.224 9.65922 90.5299 +-380.784 9.32685 87.4147 +-380.267 8.94409 83.8274 +-381.086 8.5939 80.5452 +-379.721 8.19633 76.8191 +-380.675 7.85053 73.5781 +-380.028 7.47265 70.0365 +-379.742 7.10394 66.5808 +-380.41 6.75385 63.2996 +-380.26 6.38978 59.8874 +-380.376 6.0312 56.5267 +-380.56 5.67437 53.1823 +-381.012 5.32182 49.8781 +-380.443 4.95593 46.4489 +-380.836 4.60352 43.1459 +-380.305 4.24077 39.7461 +-380.64 3.88851 36.4445 +-380.546 3.53225 33.1056 +-379.626 3.1698 29.7086 +-380.471 2.82265 26.4549 +-380.09 2.46641 23.1161 +-380.877 2.11774 19.8482 +-379.339 1.75717 16.4688 +-3274.5 12.1317 113.703 +-146.25 0.406308 3.80808 +-145.178 0.268853 2.51979 +-146.394 0.135542 1.27035 +96.2 -1.77636e-15 -2.27374e-13 +96.0963 0.096492 0.83305 +96.1853 0.193177 1.66777 +96.0671 0.289446 2.49889 +96.0415 0.385894 3.33157 +96.1084 0.482815 4.16832 +96.0682 0.579297 5.00128 +95.9208 0.675032 5.8278 +96.8635 0.779344 6.72836 +96.8007 0.876574 7.56778 +96.7305 0.973736 8.40661 +96.653 1.07082 9.24481 +96.6675 1.16904 10.0927 +96.5752 1.26606 10.9303 +96.4755 1.36297 11.767 +96.3684 1.45978 12.6028 +96.2541 1.55649 13.4378 +96.1323 1.65308 14.2717 +96.7935 1.76395 15.2288 +95.6697 1.84207 15.9033 +96.2157 1.95205 16.8527 +96.064 2.04858 17.6862 +95.905 2.14496 18.5182 +95.7386 2.24117 19.3488 +95.565 2.33722 20.1781 +96.2628 2.45549 21.1992 +96.0729 2.55206 22.0329 +96.0701 2.6538 22.9112 +95.8652 2.75016 23.7432 +95.653 2.84631 24.5732 +96.2062 2.96607 25.6072 +95.9776 3.06255 26.4401 +95.7417 3.15881 27.2712 +96.3614 3.28423 28.3539 +96.1086 3.38087 29.1883 +95.8486 3.47723 30.0202 +96.4371 3.60534 31.1262 +96.16 3.70203 31.961 +96.632 3.82842 33.0521 +96.4322 3.92913 33.9216 +96.7883 4.05336 34.9941 +96.4772 4.15039 35.8318 +97.0924 4.28834 37.0228 +96.7634 4.38565 37.863 +97.3543 4.52575 39.0725 +96.915 4.61893 39.8769 +96.7451 4.72505 40.7931 +96.383 4.82201 41.6302 +96.105 4.92329 42.5045 +96.5469 5.06254 43.7068 +96.9749 5.20306 44.9199 +96.5766 5.30022 45.7588 +96.89 5.43734 46.9425 +95.6685 5.48821 47.3817 +96.0505 5.63108 48.6152 +96.4181 5.77512 49.8587 +96.8594 5.92573 51.159 +96.2305 6.01178 51.9019 +96.558 6.15838 53.1675 +96.7836 6.30042 54.3938 +96.302 6.39736 55.2307 +96.5886 6.54637 56.5172 +96.7742 6.69051 57.7616 +96.3483 6.79343 58.6502 +96.4231 6.9326 59.8516 +96.737 7.09098 61.219 +96.0278 7.17531 61.947 +96.8975 7.37941 63.7091 +96.3342 7.47642 64.5466 +96.5052 7.63152 65.8857 +95.9227 7.72813 66.7197 +96.0656 7.88427 68.0678 +96.1112 8.03454 69.3651 +96.3021 8.19918 70.7865 +96.3154 8.35096 72.0969 +96.3924 8.51039 73.4733 +96.2949 8.65643 74.7341 +96.2608 8.8101 76.0608 +96.2884 8.97158 77.4549 +95.6814 9.07524 78.3499 +95.679 9.23753 79.751 +96.2674 9.46028 81.674 +95.6217 9.56413 82.5706 +96.091 9.78177 84.4496 +96.0886 9.95487 85.944 +95.8461 10.1054 87.2434 +95.8073 10.2797 88.7484 +95.6043 10.4389 90.1225 +96.1757 10.6863 92.259 +96.0035 10.8551 93.7158 +95.6715 11.008 95.0361 +95.5339 11.1857 96.5703 +95.9323 11.4302 98.681 +95.6813 11.6012 100.157 +95.4116 11.7725 101.636 +95.1907 11.9527 103.192 +95.9533 12.2616 105.859 +95.7486 12.4523 107.505 +95.3254 12.6174 108.931 +95.5338 12.8702 111.113 +94.9397 13.0185 112.394 +95.2209 13.2909 114.745 +95.1532 13.5201 116.724 +95.2447 13.7772 118.944 +95.1813 14.0174 121.017 +95.1494 14.2676 123.177 +95.0266 14.5097 125.267 +95.0527 14.7802 127.603 +94.9273 15.0333 129.788 +94.8869 15.306 132.143 +94.7548 15.5704 134.425 +95.043 15.9115 137.37 +95.0069 16.2066 139.918 +94.878 16.4933 142.393 +94.4404 16.7327 144.459 +94.8334 17.1278 147.87 +94.5376 17.4077 150.287 +94.2065 17.6884 152.71 +94.3035 18.0584 155.905 +94.4529 18.4498 159.284 +94.4 18.8131 162.42 +94.2991 19.1775 165.566 +94.247 19.5633 168.897 +94.0957 19.9403 172.152 +93.8943 20.3185 175.417 +94.012 20.7793 179.396 +94.1576 21.2626 183.568 +94.0139 21.6961 187.311 +96.7485 22.8238 197.047 +116.453 28.0919 242.527 +116.6 28.7709 248.389 +116.529 29.4208 254.001 +116.327 30.0623 259.539 +116.475 30.8216 266.094 +113.742 30.8315 266.179 +111.399 30.9445 267.155 +108.336 30.8525 266.361 +105.699 30.8744 266.55 +102.959 30.8613 266.437 +100.334 30.8773 266.575 +97.681 30.8795 266.594 +95.0014 30.8679 266.494 +92.266 30.8316 266.18 +92.3991 31.7742 274.318 +92.1489 32.6317 281.721 +92.1964 33.6448 290.468 +91.8924 34.5834 298.571 +91.5381 35.5569 306.976 +91.484 36.7092 316.924 +91.3955 37.9195 327.373 +91.3631 39.2324 338.707 +91.0632 40.5145 349.776 +90.7691 41.8883 361.637 +89.8064 43.0408 371.587 +88.8107 44.2616 382.126 +88.2641 45.8095 395.49 +89.7971 48.6087 419.656 +89.7156 50.7377 438.037 +87.3142 51.6843 446.21 +86.9081 53.9534 465.8 +86.772 56.6222 488.84 +88.6801 60.9741 526.411 +88.9486 64.6179 557.87 +89.3064 68.7559 593.594 +94.2619 77.1721 666.254 +88.4707 77.3207 667.538 +87.1853 81.7007 705.352 +85.1628 86.0035 742.5 +87.3231 95.595 825.306 +85.3986 102.047 881.008 +84.9943 111.78 965.037 +85.0497 124.341 1073.48 +82.1941 135.245 1167.62 +77.0982 145.038 1252.17 +171.468 376.456 3250.08 +54.3105 143.125 1235.65 +43.3522 142.841 1233.19 +85.7635 376.844 3253.43 +57.1793 376.915 3254.04 +28.5907 376.959 3254.42 +1.66089e-13 376.972 3254.54 +-28.5907 376.959 3254.42 +-57.1793 376.915 3254.04 +-85.7635 376.844 3253.43 +-114.341 376.742 3252.55 +-58.8077 154.977 1337.97 +-71.8625 157.773 1362.11 +-82.2995 154.824 1336.65 +-228.543 376.054 3246.61 +-105.708 154.543 1334.23 +-285.548 375.538 3242.15 +-314.019 375.237 3239.56 +-126.793 138.804 1198.35 +-141.04 142.432 1229.67 +-160.234 150.154 1296.33 +-114.654 100.204 865.101 +-121.651 99.5955 859.844 +-129.259 99.5151 859.15 +-151.538 110.087 950.42 +-540.811 371.848 3210.3 +-568.993 371.291 3205.49 +-145.861 90.5522 781.77 +-155.776 92.2094 796.077 +-175.823 99.4348 858.456 +-112.397 60.8425 525.275 +-116.12 60.2667 520.304 +-120.214 59.9123 517.245 +-125.384 60.0915 518.791 +-131.364 60.622 523.372 +-820.42 365.01 3151.26 +-848.072 364.172 3144.03 +-875.66 363.307 3136.56 +-903.181 362.414 3128.85 +-930.633 361.492 3120.89 +-161.038 60.6061 523.235 +-154.954 56.5464 488.186 +-143.415 50.7859 438.454 +-145.04 49.8763 430.6 +-148.785 49.7178 429.232 +-152.75 49.6317 428.488 +-1120.56 354.238 3058.26 +-1147.52 353.142 3048.81 +-1174.26 351.977 3038.74 +-145.391 42.4685 366.646 +-144.373 41.1153 354.964 +-144.731 40.2034 347.09 +-148.282 40.1943 347.012 +-151.764 40.1599 346.715 +-1332.75 344.423 2973.53 +-1358.83 343.072 2961.87 +-446.834 110.255 951.875 +-1410.66 340.291 2937.86 +-513.026 121.027 1044.87 +-143.72 33.1671 286.344 +-143.37 32.3757 279.511 +-142.634 31.5263 272.178 +-144.409 31.2498 269.791 +-147.537 31.2654 269.925 +-408.452 84.7842 731.973 +-407.579 82.8887 715.609 +-109.3 21.7824 188.056 +-109.73 21.4339 185.047 +-110.836 21.2243 183.237 +-112.337 21.0926 182.1 +-113.35 20.8716 180.192 +-115.143 20.7959 179.539 +-116.335 20.6119 177.95 +-118.556 20.6095 177.929 +-120.226 20.5087 177.059 +-122.967 20.5864 177.73 +-127.506 20.9522 180.888 +-417.351 67.3224 581.219 +-417.034 66.0445 570.186 +-419.41 65.2161 563.035 +-421.511 64.3607 555.649 +-422.907 63.4147 547.483 +-424.375 62.4981 539.568 +-425.862 61.6013 531.826 +-427.057 60.6795 523.868 +-428.017 59.7424 515.778 +-439.86 60.3151 520.722 +-435.26 58.6376 506.239 +-433.065 57.3213 494.875 +-435.275 56.6085 488.721 +-437.21 55.87 482.346 +-438.593 55.0725 475.461 +-440.571 54.3608 469.316 +-442.13 53.6076 462.814 +-444.095 52.9133 456.82 +-446.339 52.2602 451.181 +-447.669 51.509 444.696 +-448.777 50.743 438.083 +-450.019 50.0027 431.692 +-451.908 49.3431 425.997 +-454.024 48.7149 420.573 +-456.743 48.156 415.748 +-457.629 47.4108 409.314 +-458.361 46.6596 402.83 +-383.845 38.3924 331.456 +-383.777 37.714 325.599 +-382.256 36.9057 318.621 +-382.34 36.2644 313.084 +-382.978 35.6836 308.069 +-382.382 34.9969 302.141 +-382.264 34.3636 296.673 +-139.63 12.3278 106.43 +-142.716 12.3741 106.83 +-142.524 12.1345 104.762 +-143.601 12.0045 103.639 +-142.877 11.7262 101.236 +-142.205 11.4569 98.9116 +-142.409 11.2615 97.225 +-146.491 11.3691 98.1532 +-147.931 11.266 97.2633 +-494.564 36.9544 319.041 +-496.589 36.4007 314.261 +-499.076 35.8824 309.786 +-500.5 35.2898 304.67 +-503.071 34.78 300.268 +-511.205 34.6473 299.123 +-2837.53 188.498 1627.37 +-2851.72 185.642 1602.71 +-405.386 25.8551 223.217 +-2879.44 179.887 1553.03 +-2892.98 176.988 1528 +-407.848 24.4287 210.902 +-2919.38 171.152 1477.62 +-2932.25 168.215 1452.26 +-383.336 21.5123 185.723 +-380.079 20.8591 180.084 +-380.649 20.4232 176.321 +-380.273 19.94 172.149 +-379.761 19.4544 167.957 +-379.296 18.9761 163.828 +-379.432 18.5315 159.989 +-380.084 18.1147 156.39 +-379.589 17.6461 152.345 +-380.913 17.2644 149.049 +-380.527 16.807 145.101 +-379.352 16.3195 140.892 +-379.73 15.9025 137.292 +-380.073 15.4861 133.697 +-381.044 15.0964 130.333 +-380.183 14.6365 126.362 +-380.518 14.2258 122.817 +-379.865 13.7809 118.976 +-380.131 13.3721 115.446 +-380.651 12.9735 112.005 +-381.236 12.5782 108.592 +-381.309 12.1672 105.044 +-379.995 11.7153 101.143 +-379.901 11.3046 97.5966 +-379.58 10.8893 94.0112 +-379.808 10.4916 90.5782 +-380.004 10.0944 87.1482 +-380.658 9.70993 83.8293 +-380.793 9.31299 80.4024 +-379.721 8.889 76.742 +-380.97 8.52057 73.5612 +-380.716 8.11885 70.093 +-381.318 7.73627 66.79 +-380.312 7.32272 63.2197 +-380.853 6.94057 59.9205 +-380.376 6.5409 56.4699 +-380.461 6.15232 53.1152 +-380.021 5.75655 49.6984 +-379.847 5.36635 46.3296 +-380.935 4.99386 43.1138 +-380.604 4.60276 39.7373 +-381.535 4.22706 36.4937 +-380.248 3.82775 33.0464 +-380.224 3.4431 29.7256 +-379.274 3.05156 26.3453 +-380.289 2.67625 23.105 +-380.078 2.2919 19.7868 +-380.737 1.91268 16.5129 +-381.168 1.53153 13.2223 +-147.749 0.445163 3.84325 +-144.678 0.290569 2.50859 +-145.494 0.146093 1.26128 +95.2 5.32907e-15 -1.7053e-13 +96.0963 0.104003 0.832146 +96.0854 0.207999 1.66423 +96.0671 0.311978 2.49618 +96.0415 0.415934 3.32795 +96.0085 0.519858 4.15946 +95.9683 0.623743 4.99066 +95.9208 0.727579 5.82147 +96.8635 0.840011 6.72106 +95.8038 0.935079 7.48171 +95.7343 1.03873 8.31101 +96.7525 1.15537 9.24429 +96.6675 1.26004 10.0818 +96.5752 1.36461 10.9185 +96.4755 1.46907 11.7543 +96.3684 1.57342 12.5892 +96.2541 1.67765 13.4232 +96.1323 1.78177 14.2562 +95.8058 1.88185 15.057 +95.6697 1.98546 15.886 +95.3294 2.08462 16.6793 +96.064 2.20805 17.667 +95.905 2.31193 18.4981 +95.7386 2.41563 19.3278 +95.565 2.51916 20.1562 +95.3841 2.62249 20.983 +95.196 2.72561 21.808 +96.0701 2.86038 22.8863 +95.8652 2.96425 23.7174 +95.653 3.06787 24.5465 +96.2062 3.19696 25.5794 +95.9776 3.30095 26.4114 +96.6068 3.43547 27.4877 +96.3614 3.53988 28.3231 +96.1086 3.64405 29.1566 +96.7069 3.78148 30.2562 +96.4371 3.88599 31.0924 +96.16 3.99021 31.9263 +96.632 4.12643 33.0162 +96.338 4.23086 33.8517 +97.0702 4.38161 35.0579 +96.4772 4.47347 35.7929 +97.0924 4.62216 36.9826 +96.7634 4.72705 37.8218 +97.3543 4.87805 39.03 +97.0074 4.98323 39.8716 +96.7451 5.09286 40.7488 +96.383 5.19737 41.585 +96.8358 5.34689 42.7813 +96.5469 5.45663 43.6593 +96.9749 5.60808 44.8711 +96.5766 5.71281 45.7091 +96.9799 5.86604 46.935 +96.4739 5.96524 47.7288 +96.9415 6.12573 49.0129 +96.4181 6.22468 49.8046 +96.6828 6.37536 51.0102 +96.2305 6.47976 51.8455 +96.558 6.63777 53.1098 +96.8706 6.79697 54.3836 +96.302 6.89535 55.1708 +96.5886 7.05597 56.4559 +96.8599 7.21771 57.75 +96.2631 7.31578 58.5347 +96.5079 7.47883 59.8393 +96.6527 7.63629 61.0991 +96.0278 7.73386 61.8798 +96.3138 7.90593 63.2566 +96.4171 8.06534 64.532 +96.5052 8.22559 65.8142 +95.9227 8.32971 66.6473 +96.0656 8.49801 67.9939 +96.1112 8.65998 69.2898 +96.3021 8.83744 70.7097 +95.6765 8.94131 71.5408 +96.3131 9.16531 73.3331 +96.3737 9.33792 74.7141 +96.2608 9.49591 75.9782 +96.3661 9.67776 77.4333 +95.6814 9.78169 78.2648 +96.2152 10.0124 80.1108 +96.2674 10.1967 81.5854 +96.2255 10.3737 83.0017 +95.4919 10.4775 83.8319 +96.0143 10.7215 85.7843 +96.5833 10.9758 87.8191 +95.8073 11.0799 88.6521 +96.2572 11.3283 90.6395 +96.1757 11.5182 92.1588 +95.3616 11.6218 92.9882 +95.7423 11.8737 95.0032 +95.5339 12.0564 96.4655 +95.9323 12.32 98.5739 +95.6125 12.4953 99.9772 +95.3434 12.6799 101.454 +95.1231 12.8741 103.008 +95.418 13.1423 105.154 +95.6823 13.4123 107.314 +95.3254 13.5996 108.812 +95.4039 13.8532 110.842 +95.004 14.0413 112.347 +95.2209 14.3255 114.62 +95.2791 14.5919 116.752 +95.307 14.8594 118.892 +95.2428 15.1183 120.964 +95.2103 15.388 123.122 +95.0868 15.649 125.21 +94.9932 15.9208 127.385 +94.8098 16.1835 129.487 +94.9449 16.5077 132.08 +94.7548 16.7825 134.279 +94.7031 17.0888 136.73 +94.8391 17.4374 139.52 +94.7676 17.7565 142.073 +94.5493 18.056 144.469 +94.7259 18.4401 147.542 +94.5376 18.7628 150.124 +94.2065 19.0653 152.544 +94.2005 19.4429 155.566 +94.4021 19.8754 159.026 +94.4 20.2775 162.244 +93.8559 20.5732 164.609 +94.247 21.0861 168.713 +94.0957 21.4925 171.965 +93.8474 21.8891 175.138 +94.012 22.3969 179.201 +94.1576 22.9177 183.368 +94.1031 23.4072 187.285 +96.617 24.5671 196.565 +116.453 30.2787 242.264 +116.685 31.0331 248.3 +116.156 31.6095 252.912 +116.327 32.4025 259.257 +116.395 33.1981 265.623 +113.742 33.2315 265.89 +111.399 33.3533 266.865 +108.336 33.2542 266.072 +105.699 33.2778 266.26 +102.959 33.2636 266.147 +100.334 33.2809 266.285 +97.681 33.2832 266.304 +95.0014 33.2708 266.205 +92.2986 33.2434 265.986 +92.4626 34.2711 274.209 +92.118 35.1601 281.321 +91.9558 36.1692 289.396 +91.8632 37.2636 298.151 +91.7938 38.4318 307.499 +91.484 39.5668 316.58 +91.3154 40.8355 326.731 +91.1819 42.2025 337.669 +90.9631 43.6203 349.013 +90.7933 45.1611 361.341 +88.7092 45.8245 366.648 +88.3158 47.4413 379.585 +88.0693 49.2664 394.188 +89.6515 52.3076 418.521 +89.7355 54.6995 437.659 +87.4859 55.8171 446.601 +86.6894 58.007 464.123 +86.8241 61.0665 488.603 +88.3665 65.4881 523.98 +88.933 69.6357 557.166 +89.1586 73.9854 591.968 +94.4011 83.3022 666.514 +88.4968 83.3643 667.011 +87.4291 88.3068 706.556 +84.6647 92.1561 737.355 +87.1454 102.827 822.732 +85.3219 109.892 879.261 +84.9943 120.481 963.989 +85.034 133.996 1072.12 +81.6848 144.871 1159.13 +76.213 154.534 1236.45 +66.4457 157.236 1258.07 +142.91 405.93 3247.91 +114.341 406.069 3249.02 +85.7635 406.178 3249.9 +57.1793 406.255 3250.51 +28.5907 406.302 3250.89 +7.28306e-14 164.819 1318.74 +-28.5907 406.302 3250.89 +-57.1793 406.255 3250.51 +-85.7635 406.178 3249.9 +-46.3151 164.483 1316.05 +-56.6921 161.031 1288.44 +-69.5074 164.481 1316.04 +-200.013 405.56 3244.94 +-92.6366 164.294 1314.54 +-257.056 405.065 3240.99 +-285.548 404.771 3238.63 +-314.019 404.447 3236.04 +-126.835 149.658 1197.43 +-140.836 153.298 1226.56 +-399.281 403.289 3226.78 +-114.915 108.251 866.13 +-121.832 107.508 860.189 +-129.392 107.372 859.1 +-151.569 118.681 949.583 +-540.811 400.794 3206.81 +-568.993 400.193 3202.01 +-145.825 97.5768 780.727 +-155.967 99.5091 796.188 +-175.743 107.126 857.135 +-112.584 65.6878 525.578 +-116.12 64.9581 519.739 +-120.416 64.6849 517.553 +-125.36 64.7572 518.132 +-131.654 65.4854 523.959 +-820.42 393.423 3147.84 +-848.072 392.52 3140.62 +-875.66 391.588 3133.15 +-903.181 390.625 3125.45 +-930.633 389.632 3117.51 +-161.594 65.5493 524.47 +-153.781 60.487 483.966 +-143.415 54.7393 437.978 +-145.389 53.8882 431.168 +-148.785 53.5881 428.766 +-1093.65 383.012 3064.54 +-1120.7 381.86 3055.32 +-1147.52 380.632 3045.5 +-1174.26 379.376 3035.44 +-145.281 45.7398 365.971 +-144.336 44.3044 354.486 +-144.884 43.3788 347.081 +-148.243 43.3117 346.544 +-151.963 43.343 346.794 +-1332.75 371.234 2970.3 +-1358.83 369.778 2958.65 +-447.384 118.984 952.01 +-1410.66 366.781 2934.67 +-1436.32 365.218 2922.17 +-143.72 35.7489 286.033 +-143.234 34.8628 278.943 +-142.634 33.9804 271.883 +-144.363 33.6714 269.41 +-147.537 33.6992 269.632 +-408.355 91.3624 731.005 +-409.499 89.7621 718.2 +-109.8 23.5855 188.711 +-109.781 23.1131 184.931 +-110.836 22.8764 183.038 +-111.919 22.65 181.226 +-113.774 22.5805 180.67 +-115.519 22.4879 179.929 +-116.825 22.3101 178.506 +-118.556 22.2138 177.736 +-120.618 22.1771 177.443 +-123.42 22.2706 178.191 +-127.908 22.6543 181.261 +-416.596 72.4317 579.537 +-418.209 71.3862 571.172 +-419.112 70.2431 562.025 +-421.331 69.3411 554.809 +-422.907 68.3512 546.888 +-425.114 67.4803 539.92 +-426.049 66.4257 531.482 +-426.49 65.3164 522.606 +-428.844 64.5173 516.213 +-437.995 64.7348 517.953 +-434.741 63.1267 505.086 +-433.196 61.8021 494.488 +-435.474 61.043 488.414 +-437.411 60.2468 482.044 +-438.863 59.3961 475.238 +-440.912 58.6378 469.17 +-442.543 57.8345 462.743 +-444.373 57.068 456.61 +-446.059 56.293 450.409 +-447.599 55.5099 444.144 +-449.205 54.7453 438.025 +-450.954 54.0071 432.119 +-452.996 53.3121 426.558 +-454.829 52.6 420.861 +-455.711 51.7873 414.358 +-457.926 51.1345 409.135 +-459.185 50.3822 403.116 +-383.242 41.3159 330.575 +-382.864 40.5532 324.473 +-382.486 39.8026 318.466 +-382.417 39.0952 312.806 +-382.2 38.3833 307.111 +-382.461 37.7289 301.874 +-382.658 37.0768 296.657 +-142.09 13.5215 108.187 +-142.636 13.3299 106.654 +-142.604 13.0865 104.707 +-142.872 12.8734 103.002 +-142.877 12.639 101.126 +-142.942 12.4128 99.3163 +-143.068 12.1944 97.569 +-147.071 12.3026 98.435 +-146.681 12.0403 96.3362 +-494.564 39.8311 318.695 +-496.336 39.2143 313.76 +-498.567 38.6363 309.135 +-501.267 38.0952 304.806 +-503.071 37.4874 299.942 +-824.665 60.2432 482.015 +-2837.53 203.171 1625.6 +-405.412 28.4459 227.6 +-2865.69 196.999 1576.22 +-2879.44 193.89 1551.34 +-405.096 26.7125 213.731 +-2906.29 187.628 1501.24 +-403.893 25.522 204.205 +-2932.25 181.309 1450.68 +-2944.9 178.128 1425.23 +-379.988 22.4775 179.846 +-379.199 21.9291 175.458 +-381.911 21.5848 172.703 +-379.669 20.9639 167.735 +-380.213 20.5026 164.045 +-380.721 20.0419 160.358 +-380.361 19.539 156.335 +-380.516 19.0663 152.552 +-380.076 18.5673 148.56 +-379.594 18.0708 144.587 +-380.851 17.6593 141.295 +-380.857 17.1914 137.551 +-381.393 16.7495 134.015 +-381.517 16.2918 130.353 +-382.649 15.8782 127.044 +-381.374 15.3677 122.959 +-380.724 14.8873 119.115 +-380.036 14.4094 115.292 +-380.747 13.9869 111.911 +-380.371 13.5265 108.228 +-380.441 13.0846 104.692 +-379.899 12.6242 101.008 +-380.482 12.2032 97.6397 +-380.938 11.779 94.2453 +-379.808 11.3084 90.4799 +-380.589 10.8969 87.1876 +-380.267 10.455 83.6524 +-380.206 10.0225 80.1914 +-381.093 9.61557 76.9356 +-380.282 9.16727 73.3487 +-381.306 8.7644 70.1253 +-380.234 8.3148 66.528 +-379.819 7.8825 63.0691 +-380.26 7.46922 59.7623 +-380.573 7.05373 56.438 +-381.253 6.64504 53.168 +-381.409 6.22732 49.8258 +-380.542 5.79466 46.364 +-380.24 5.37278 42.9885 +-379.907 4.95199 39.6216 +-380.938 4.54897 36.397 +-381.244 4.13653 33.097 +-380.424 3.71307 29.7089 +-381.069 3.30468 26.4413 +-379.89 2.88155 23.0557 +-381.177 2.47744 19.8224 +-380.737 2.06157 16.495 +-3274.5 14.1811 113.465 +-145.35 0.472025 3.77675 +-145.178 0.314271 2.51453 +-145.594 0.157574 1.26077 +95.3 -1.77636e-15 -2.27374e-13 +96.0963 0.111506 0.831174 +95.9854 0.222771 1.66055 +96.0671 0.334484 2.49326 +96.0415 0.445939 3.32406 +96.0085 0.55736 4.1546 +96.0682 0.669435 4.99002 +95.9208 0.780066 5.81467 +96.8635 0.90061 6.71321 +95.8038 1.00254 7.47297 +96.7305 1.12525 8.38768 +96.7525 1.23872 9.23349 +95.673 1.33703 9.96632 +96.5752 1.46305 10.9057 +96.4755 1.57505 11.7405 +96.3684 1.68692 12.5744 +96.2541 1.79868 13.4075 +96.1323 1.9103 14.2395 +95.9045 2.01969 15.0549 +95.6697 2.1287 15.8674 +96.2157 2.25578 16.8148 +96.064 2.36734 17.6463 +95.905 2.47871 18.4765 +95.7386 2.58989 19.3053 +95.565 2.70089 20.1326 +95.3841 2.81168 20.9584 +95.196 2.92224 21.7826 +96.0701 3.06673 22.8596 +95.6712 3.17165 23.6417 +95.653 3.28919 24.5179 +96.2062 3.42759 25.5495 +95.9776 3.53908 26.3806 +95.7417 3.65032 27.2097 +96.3614 3.79525 28.2901 +96.1086 3.90693 29.1225 +96.7069 4.05428 30.2209 +96.4371 4.16633 31.0561 +96.16 4.27807 31.889 +96.632 4.42412 32.9777 +96.338 4.53607 33.8122 +96.7883 4.68406 34.9153 +96.4772 4.79619 35.7511 +96.1588 4.90794 36.5842 +96.7634 5.06806 37.7777 +96.5198 5.18512 38.6502 +97.0074 5.34272 39.825 +96.653 5.45508 40.6625 +96.383 5.57231 41.5364 +96.9272 5.73802 42.7716 +96.5469 5.85027 43.6083 +96.1593 5.96207 44.4417 +96.5766 6.12494 45.6557 +96.171 6.23676 46.4892 +96.4739 6.39557 47.673 +96.1396 6.51331 48.5507 +96.4181 6.67373 49.7464 +96.7711 6.84153 50.9972 +96.2305 6.94721 51.785 +96.558 7.11662 53.0478 +96.8706 7.2873 54.3201 +96.3886 7.39943 55.1559 +96.5886 7.56499 56.3899 +96.8599 7.7384 57.6825 +96.2631 7.84355 58.4663 +96.5079 8.01835 59.7693 +96.6527 8.18718 61.0278 +96.0278 8.29178 61.8075 +96.3138 8.47627 63.1827 +96.3342 8.63975 64.4013 +96.5052 8.81898 65.7373 +95.9227 8.93062 66.5694 +96.0656 9.11106 67.9145 +96.1112 9.28471 69.2089 +96.3021 9.47497 70.6271 +96.3154 9.65036 71.9345 +96.3131 9.8265 73.2474 +95.6645 9.93788 74.0777 +96.2608 10.1809 75.8894 +95.6667 10.3006 76.7814 +95.6814 10.4873 78.1734 +95.679 10.6749 79.5713 +96.2674 10.9323 81.4901 +96.15 11.1134 82.8398 +95.4919 11.2333 83.734 +96.0143 11.4949 85.6841 +96.5833 11.7676 87.7165 +95.8073 11.8792 88.5485 +96.2572 12.1455 90.5336 +95.4564 12.2568 91.3627 +95.3616 12.4602 92.8795 +95.7423 12.7303 94.8922 +95.5339 12.9262 96.3528 +95.3071 13.1226 97.8171 +95.6125 13.3968 99.8604 +95.4116 13.6043 101.408 +95.1231 13.8028 102.887 +95.3511 14.0806 104.958 +95.6823 14.3799 107.189 +95.3254 14.5807 108.685 +95.4039 14.8526 110.712 +95.6468 15.1561 112.975 +95.2209 15.3589 114.486 +95.2791 15.6445 116.615 +95.307 15.9313 118.753 +95.0581 16.1776 120.589 +95.2103 16.4981 122.978 +95.0266 16.7674 124.985 +94.9932 17.0694 127.236 +94.8685 17.3617 129.416 +94.9449 17.6985 131.926 +94.8122 18.0041 134.204 +94.7031 18.3216 136.571 +94.4477 18.6181 138.781 +94.7676 19.0375 141.907 +94.3859 19.3252 144.051 +94.7259 19.7704 147.37 +94.5376 20.1164 149.949 +94.2065 20.4407 152.366 +94.3035 20.8683 155.553 +94.4021 21.3092 158.84 +94.4 21.7404 162.054 +93.8559 22.0574 164.417 +93.9076 22.5259 167.91 +94.0957 23.043 171.764 +93.8943 23.4801 175.022 +94.012 24.0126 178.991 +94.1576 24.571 183.154 +94.1031 25.0958 187.066 +95.9594 26.1601 194.999 +116.453 32.463 241.981 +116.558 33.2356 247.741 +116.156 33.8898 252.617 +116.245 34.7156 258.773 +116.395 35.5931 265.313 +114.406 35.8369 267.131 +111.399 35.7594 266.553 +108.673 35.7641 266.588 +105.699 35.6784 265.949 +103.317 35.7873 266.761 +100.334 35.6818 265.974 +97.9888 35.7968 266.832 +95.0014 35.671 265.894 +92.6893 35.7924 266.799 +92.4626 36.7435 273.888 +92.118 37.6966 280.993 +91.9558 38.7785 289.057 +91.7755 39.9136 297.519 +91.7938 41.2043 307.139 +91.3738 42.37 315.829 +91.3154 43.7814 326.349 +91.4667 45.3882 338.327 +90.9631 46.7671 348.605 +88.6886 47.2965 352.552 +88.7092 49.1302 366.22 +88.2483 50.8247 378.851 +88.0693 52.8205 393.728 +89.402 55.925 416.868 +89.7355 58.6455 437.148 +87.2379 59.6741 444.815 +86.6894 62.1917 463.581 +86.6852 65.3671 487.251 +88.3665 70.2124 523.368 +88.8548 74.5936 556.026 +89.1586 79.3227 591.277 +94.6238 89.5222 667.305 +88.4968 89.3782 666.231 +87.295 94.532 704.648 +84.6647 98.8043 736.494 +86.4659 109.385 815.364 +85.3219 117.819 878.234 +84.698 128.722 959.506 +85.034 143.662 1070.87 +81.9918 155.905 1162.13 +76.213 165.682 1235.01 +171.468 435.032 3242.76 +142.91 435.214 3244.12 +114.341 435.363 3245.23 +85.7635 435.48 3246.1 +57.1793 435.563 3246.71 +28.5907 435.613 3247.09 +1.82077e-13 435.629 3247.21 +-28.5907 435.613 3247.09 +-57.1793 435.563 3246.71 +-85.7635 435.48 3246.1 +-42.8322 163.087 1215.66 +-56.6921 172.648 1286.93 +-64.0854 162.591 1211.96 +-200.013 434.817 3241.15 +-85.647 162.855 1213.93 +-257.056 434.286 3237.2 +-107.036 162.672 1212.57 +-314.019 433.624 3232.26 +-125.852 159.211 1186.77 +-140.836 164.356 1225.12 +-150.094 162.538 1211.57 +-114.915 116.06 865.118 +-122.041 115.461 860.656 +-129.392 115.118 858.097 +-151.96 127.571 950.921 +-540.811 429.707 3203.06 +-568.993 429.063 3198.27 +-145.825 104.616 779.815 +-156.864 107.301 799.831 +-175.743 114.855 856.134 +-112.647 70.4655 525.254 +-116.12 69.6442 519.132 +-120.619 69.4678 517.818 +-125.36 69.4288 517.527 +-131.63 70.1966 523.25 +-820.42 421.805 3144.16 +-848.072 420.837 3136.95 +-875.66 419.837 3129.49 +-903.181 418.805 3121.8 +-930.633 417.74 3113.86 +-161.623 70.2906 523.951 +-153.781 64.8505 483.4 +-143.538 58.7389 437.844 +-145.389 57.7757 430.664 +-148.915 57.5042 428.64 +-1093.65 410.643 3060.96 +-1120.7 409.407 3051.75 +-1147.52 408.091 3041.94 +-1174.26 406.744 3031.9 +-145.281 49.0394 365.543 +-144.336 47.5005 354.072 +-144.884 46.5082 346.675 +-148.712 46.5831 347.233 +-151.963 46.4698 346.389 +-1332.59 397.967 2966.47 +-1358.83 396.454 2955.2 +-448.694 127.941 953.683 +-1410.66 393.24 2931.24 +-1436.32 391.565 2918.75 +-143.72 38.3279 285.699 +-142.871 37.283 277.91 +-142.634 36.4318 271.565 +-144.691 36.1826 269.708 +-147.537 36.1302 269.317 +-408.452 97.9766 730.324 +-409.499 96.2376 717.361 +-109.6 25.2409 188.147 +-109.781 24.7805 184.715 +-111.197 24.6065 183.419 +-111.919 24.284 181.014 +-113.774 24.2095 180.459 +-115.519 24.1102 179.719 +-116.825 23.9195 178.298 +-118.556 23.8163 177.529 +-120.506 23.755 177.072 +-123.42 23.8772 177.983 +-129.227 24.5391 182.916 +-416.596 77.6569 578.86 +-419.032 76.6866 571.627 +-419.112 75.3104 561.369 +-421.511 74.3751 554.397 +-422.907 73.282 546.249 +-425.668 72.4428 539.993 +-426.049 71.2176 530.861 +-426.805 70.0799 522.38 +-428.844 69.1716 515.61 +-433.303 68.6613 511.806 +-434.741 67.6807 504.496 +-433.721 66.3408 494.509 +-435.474 65.4466 487.844 +-437.812 64.6523 481.923 +-438.863 63.681 474.682 +-440.707 62.8388 468.405 +-442.543 62.0067 462.202 +-444.929 61.2613 456.646 +-446.059 60.354 449.883 +-447.599 59.5144 443.625 +-449.205 58.6946 437.513 +-451.026 57.9125 431.684 +-452.996 57.1581 426.06 +-454.39 56.3402 419.964 +-455.711 55.5233 413.874 +-458.149 54.8501 408.856 +-459.185 54.0168 402.645 +-384.525 44.4447 331.294 +-382.864 43.4787 324.094 +-382.792 42.7081 318.349 +-382.417 41.9155 312.441 +-382.2 41.1523 306.752 +-382.461 40.4506 301.522 +-382.658 39.7515 296.31 +-142.09 14.4969 108.061 +-142.716 14.2995 106.589 +-142.604 14.0306 104.585 +-143.601 13.8724 103.406 +-142.877 13.5507 101.008 +-142.205 13.2396 98.6888 +-143.068 13.0741 97.455 +-147.071 13.1901 98.32 +-146.681 12.9089 96.2237 +-495.067 42.7478 318.645 +-496.336 42.0433 313.393 +-499.076 41.4657 309.088 +-501.267 40.8434 304.45 +-503.071 40.1918 299.592 +-824.665 64.5891 481.452 +-506.798 38.9052 290.002 +-405.412 30.498 227.334 +-2865.69 211.21 1574.38 +-2879.44 207.877 1549.53 +-2892.98 204.528 1524.56 +-2906.29 201.164 1499.49 +-405.141 27.4476 204.596 +-2932.25 194.389 1448.99 +-385.673 25.0111 186.435 +-379.988 24.099 179.636 +-378.655 23.4774 175.002 +-381.911 23.1419 172.502 +-380.492 22.5249 167.902 +-380.213 21.9817 163.853 +-379.432 21.415 159.629 +-380.361 20.9486 156.152 +-380.794 20.4566 152.485 +-380.076 19.9068 148.387 +-381.274 19.4602 145.057 +-380.851 18.9332 141.13 +-380.294 18.4043 137.187 +-381.393 17.9578 133.859 +-380.855 17.4367 129.975 +-382.649 17.0236 126.895 +-381.088 16.464 122.724 +-380.724 15.9612 118.976 +-380.896 15.4839 115.418 +-380.747 14.9959 111.781 +-382.005 14.5646 108.565 +-380.441 14.0285 104.569 +-380.768 13.5658 101.12 +-380.482 13.0835 97.5256 +-379.58 12.5837 93.7995 +-379.808 12.1241 90.3742 +-380.784 11.689 87.1303 +-380.267 11.2093 83.5547 +-380.402 10.751 80.139 +-381.093 10.3092 76.8458 +-380.675 9.83875 73.3387 +-381.306 9.39667 70.0434 +-380.136 8.91232 66.433 +-379.819 8.45115 62.9954 +-380.26 8.00805 59.6925 +-380.573 7.56259 56.3721 +-380.857 7.11702 53.0507 +-381.409 6.67656 49.7676 +-380.145 6.20622 46.2616 +-380.24 5.76038 42.9382 +-379.311 5.30089 39.5132 +-380.938 4.87714 36.3545 +-380.945 4.43147 33.0325 +-380.424 3.98093 29.6742 +-380.77 3.54029 26.3896 +-379.89 3.08943 23.0288 +-379.979 2.64781 19.737 +-380.737 2.2103 16.4757 +-3274.5 15.2041 113.333 +-145.35 0.506077 3.77233 +-144.878 0.336245 2.5064 +-145.594 0.168941 1.2593 +95.2 5.32907e-15 -1.7053e-13 +95.9963 0.118876 0.82927 +96.0854 0.237991 1.66021 +96.0671 0.356962 2.49014 +96.0415 0.475908 3.3199 +96.0085 0.594817 4.1494 +95.9683 0.713682 4.9786 +95.9208 0.832491 5.80739 +95.8659 0.951238 6.63577 +95.8038 1.06991 7.46362 +95.7343 1.1885 8.29092 +96.7525 1.32197 9.22194 +96.6675 1.44173 10.0574 +96.5752 1.56138 10.8921 +96.4755 1.6809 11.7258 +96.3684 1.80029 12.5587 +96.2541 1.91956 13.3907 +96.1323 2.03868 14.2217 +95.9045 2.15543 15.0361 +95.6697 2.27175 15.8476 +96.2157 2.40738 16.7937 +96.064 2.52644 17.6242 +95.905 2.64529 18.4534 +95.7386 2.76395 19.2811 +95.565 2.88241 20.1075 +96.2628 3.02826 21.125 +96.0729 3.14736 21.9558 +96.0701 3.27283 22.831 +95.8652 3.39167 23.66 +95.653 3.51024 24.4872 +96.2062 3.65794 25.5175 +95.9776 3.77693 26.3476 +96.6068 3.93084 27.4213 +96.3614 4.05031 28.2547 +96.1086 4.16949 29.0861 +95.8486 4.28833 29.9151 +96.4371 4.44632 31.0172 +96.16 4.56558 31.8491 +96.7266 4.72605 32.9686 +96.338 4.84092 33.7699 +97.0702 5.01341 34.9732 +96.4772 5.11852 35.7064 +97.1857 5.29372 36.9286 +96.8565 5.41386 37.7667 +96.5198 5.53359 38.6019 +97.0074 5.70178 39.7752 +96.7451 5.82722 40.6503 +96.4747 5.95246 41.5239 +96.8358 6.11787 42.6778 +96.5469 6.24344 43.5538 +96.0686 6.35674 44.3442 +96.4864 6.53044 45.5559 +96.0811 6.64968 46.3877 +96.4739 6.82538 47.6134 +96.0505 6.94459 48.445 +96.4181 7.12224 49.6842 +96.7711 7.30131 50.9334 +96.3184 7.42086 51.7674 +96.558 7.59489 52.9814 +96.8706 7.77705 54.2521 +96.3886 7.89671 55.0869 +96.5886 8.07339 56.3194 +96.7742 8.25115 57.5594 +96.2631 8.37067 58.3932 +96.5079 8.55722 59.6946 +96.6527 8.73739 60.9514 +96.1116 8.85675 61.784 +96.2304 9.03808 63.049 +96.3342 9.22038 64.3207 +96.5876 9.41969 65.7111 +95.9227 9.5308 66.4862 +96.0656 9.72337 67.8295 +96.1112 9.90869 69.1223 +95.4982 10.0273 69.9498 +95.6765 10.2306 71.3679 +95.6784 10.4178 72.6737 +96.3737 10.6844 74.5335 +96.3391 10.874 75.8562 +95.6667 10.9929 76.6854 +95.6043 11.1831 78.0126 +95.6023 11.3832 79.4082 +95.507 11.5748 80.7453 +96.15 11.8602 82.7361 +96.0161 12.0541 84.0883 +95.3455 12.182 84.9808 +95.9198 12.4722 87.0049 +95.7342 12.6679 88.3702 +95.6769 12.8836 89.8753 +96.1038 13.1692 91.8673 +95.9322 13.3772 93.3184 +95.7423 13.5858 94.7735 +96.1648 13.886 96.8678 +95.2377 13.9943 97.6236 +95.6813 14.3073 99.8067 +95.3434 14.5082 101.208 +95.7311 14.8245 103.415 +95.418 15.0374 104.9 +95.6823 15.3463 107.055 +95.3254 15.5606 108.549 +95.4039 15.8507 110.574 +95.1326 16.0879 112.228 +95.2209 16.3911 114.343 +95.1532 16.6738 116.315 +95.307 17.002 118.605 +95.1197 17.276 120.516 +95.2712 17.6182 122.904 +95.0868 17.9055 124.907 +94.4579 18.1138 126.36 +94.9861 18.5515 129.414 +94.8869 18.8763 131.68 +94.7548 19.2024 133.955 +94.5898 19.5295 136.236 +94.3918 19.8577 138.526 +94.6572 20.2932 141.564 +94.6038 20.6715 144.203 +94.8871 21.1349 147.436 +94.5376 21.4683 149.761 +94.6245 21.9111 152.851 +94.3035 22.2707 155.359 +94.4021 22.7412 158.641 +93.9 23.0785 160.994 +93.8559 23.5397 164.211 +93.8591 24.0273 167.613 +93.714 24.4919 170.853 +93.8943 25.058 174.803 +94.012 25.6263 178.768 +93.749 26.1085 182.131 +94.1477 26.795 186.92 +93.1539 27.102 189.061 +116.496 34.6575 241.769 +116.431 35.4306 247.161 +116.487 36.2707 253.022 +116.083 36.9969 258.088 +116.475 38.0111 265.162 +115.422 38.5849 269.165 +111.705 38.2675 266.951 +109.984 38.628 269.466 +105.992 38.1819 266.354 +104.249 38.5369 268.831 +100.65 38.1994 266.476 +98.9122 38.5625 269.009 +95.3019 38.1886 266.401 +93.5032 38.5332 268.805 +92.3674 39.1724 273.264 +92.0562 40.203 280.453 +92.016 41.4115 288.884 +90.5768 42.0396 293.265 +91.5665 43.8644 305.995 +91.3462 45.2038 315.338 +91.1817 46.6553 325.464 +91.0008 48.1919 336.183 +88.5093 48.5637 338.777 +87.7693 49.9519 348.461 +88.1023 52.0732 363.259 +87.7084 53.9086 376.063 +87.8528 56.2318 392.269 +87.011 58.0873 405.213 +89.6956 62.559 436.407 +86.9326 63.4616 442.704 +86.6894 66.3712 463.001 +85.9906 69.2011 482.742 +87.8053 74.4553 519.395 +88.495 79.2842 553.081 +88.9665 84.4712 589.265 +95.5423 96.466 672.94 +88.6273 95.5255 666.379 +86.7222 100.223 699.149 +85.5816 106.586 743.539 +85.5043 115.438 805.287 +85.0823 125.384 874.672 +82.0571 133.09 928.426 +83.1588 149.935 1045.94 +65.3827 132.678 925.556 +74.4609 172.753 1205.11 +48.976 132.608 925.062 +142.91 464.463 3240.06 +32.5682 132.34 923.195 +31.3731 170.008 1185.97 +16.2604 132.188 922.132 +10.4334 169.648 1183.45 +4.88498e-14 132.094 921.48 +-10.4361 169.691 1183.75 +-16.2238 131.89 920.053 +-85.7635 464.747 3242.04 +-32.3902 131.617 918.149 +-52.147 169.479 1182.27 +-48.5468 131.446 916.956 +-72.8431 168.998 1178.92 +-64.7549 131.405 916.668 +-93.79 169.103 1179.65 +-80.8544 131.139 914.818 +-114.756 169.114 1179.73 +-97.2115 131.244 915.546 +-135.493 168.748 1177.18 +-113.302 130.941 913.433 +-115.137 124.099 865.704 +-123.321 124.514 868.598 +-129.718 123.163 859.177 +-147.455 132.108 921.574 +-540.811 458.585 3199.06 +-568.924 457.843 3193.88 +-146.08 111.842 780.201 +-161.31 117.758 821.471 +-176.341 122.99 857.972 +-113.707 75.909 529.536 +-116.271 74.4215 519.159 +-122.013 74.9936 523.15 +-125.78 74.343 518.612 +-792.705 451.151 3147.2 +-820.42 450.152 3140.23 +-848.072 449.119 3133.02 +-875.66 448.052 3125.58 +-903.181 446.951 3117.9 +-930.633 445.814 3109.97 +-162.91 75.6116 527.461 +-150.353 67.6659 472.033 +-145.145 63.3881 442.191 +-145.103 61.5373 429.28 +-150.771 62.1336 433.439 +-1093.65 438.24 3057.13 +-1120.7 436.921 3047.93 +-140.433 53.2983 371.805 +-144.745 53.5065 373.257 +-145.977 52.5858 366.835 +-144.973 50.9164 355.189 +-145.381 49.8042 347.43 +-150.392 50.2753 350.717 +-151.365 49.3975 344.593 +-1332.75 424.764 2963.12 +-1358.66 423.047 2951.14 +-447.341 136.128 949.62 +-1410.48 419.617 2927.22 +-469.715 136.657 953.313 +-144.925 41.2467 287.734 +-142.281 39.6242 276.415 +-142.403 38.8172 270.786 +-146.24 39.0278 272.255 +-148.206 38.733 270.199 +-409.567 104.847 731.402 +-108.776 27.2819 190.317 +-109.35 26.8758 187.483 +-109.882 26.4704 184.655 +-111.506 26.3333 183.699 +-112.389 26.0248 181.547 +-114.251 25.9448 180.989 +-115.412 25.7065 179.327 +-117.914 25.765 179.735 +-118.942 25.4996 177.884 +-121.848 25.6337 178.819 +-123.646 25.5287 178.087 +-417.047 84.5161 589.578 +-416.829 82.9221 578.459 +-420.09 82.0469 572.353 +-419.647 80.4742 561.382 +-424.34 79.9062 557.42 +-423.82 78.3758 546.744 +-426.407 77.4454 540.253 +-426.236 76.0372 530.43 +-428.253 75.0433 523.497 +-429.098 73.8641 515.271 +-429.896 72.6995 507.147 +-2128.05 353.56 2466.41 +-435.558 71.0991 495.982 +-435.673 69.8767 487.455 +-439.15 69.2081 482.791 +-439.809 68.1072 475.111 +-442.549 67.342 469.773 +-442.818 66.215 461.911 +-446.457 65.603 457.642 +-445.428 64.3189 448.684 +-449.72 63.8151 445.169 +-449.562 62.6888 437.313 +-452.321 61.9819 432.381 +-453.432 61.058 425.936 +-456.072 60.349 420.99 +-456.006 59.2932 413.625 +-458.595 58.5932 408.742 +-462.555 58.0701 405.093 +-383.392 47.292 329.906 +-382.484 46.3546 323.366 +-383.022 45.6057 318.142 +-383.343 44.8408 312.806 +-382.978 44.0072 306.991 +-381.443 43.0543 300.344 +-382.973 42.4579 296.183 +-141.455 15.4021 107.444 +-142.556 15.2434 106.337 +-142.443 14.9566 104.336 +-142.549 14.6963 102.52 +-142.714 14.4449 100.767 +-143.27 14.2352 99.3039 +-142.327 13.8804 96.8286 +-147.817 14.148 98.6952 +-2732.23 256.614 1790.12 +-496.577 45.7599 319.218 +-496.589 44.8916 313.161 +-500.857 44.4103 309.803 +-501.267 43.5883 304.069 +-505.557 43.1047 300.695 +-845.861 70.7014 493.208 +-513.12 42.0377 293.252 +-2851.72 228.945 1597.1 +-2865.69 225.405 1572.41 +-406.98 31.3558 218.736 +-2892.98 218.273 1522.65 +-2906.29 214.683 1497.61 +-405.319 29.3051 204.43 +-2932.25 207.453 1447.18 +-381.179 26.381 184.032 +-381.433 25.8164 180.093 +-381.193 25.2231 175.954 +-379.454 24.5383 171.177 +-379.395 23.9694 167.209 +-378.929 23.3798 163.096 +-379.708 22.8709 159.546 +-380.546 22.3672 156.032 +-380.794 21.8314 152.294 +-380.913 21.2915 148.528 +-381.368 20.7731 144.912 +-379.071 20.1113 140.295 +-380.294 19.6412 137.015 +-380.921 19.141 133.526 +-380.666 18.5993 129.748 +-380.562 18.0686 126.046 +-381.088 17.5704 122.57 +-380.724 17.0339 118.827 +-380.896 16.5245 115.274 +-380.651 15.9997 111.613 +-379.891 15.4574 107.83 +-380.441 14.9713 104.438 +-379.995 14.4481 100.789 +-380.192 13.9522 97.3293 +-380.938 13.4774 94.0174 +-380.975 12.9787 90.5384 +-380.394 12.4617 86.9322 +-379.682 11.9442 83.3217 +-380.206 11.4677 79.9975 +-381.681 11.019 76.868 +-380.282 10.4891 73.1714 +-379.831 9.98939 69.6853 +-380.431 9.51866 66.4015 +-381.199 9.0519 63.1454 +-380.458 8.55067 59.6488 +-380.573 8.07083 56.3016 +-379.669 7.57162 52.8191 +-380.517 7.1086 49.5891 +-380.741 6.63368 46.276 +-380.836 6.15713 42.9517 +-380.802 5.67937 39.6189 +-380.938 5.2049 36.309 +-380.546 4.72433 32.9566 +-380.822 4.25293 29.6681 +-381.069 3.7812 26.3774 +-381.287 3.30917 23.0845 +-380.078 2.82651 19.7175 +-380.438 2.35699 16.4422 +-3274.5 16.2259 113.191 +-145.45 0.54046 3.77021 +-146.578 0.363053 2.53263 +-144.794 0.179304 1.25081 +95.3 -1.77636e-15 -2.27374e-13 +95.9963 0.126352 0.828164 +96.0854 0.252959 1.65799 +95.9671 0.379019 2.48424 +96.0415 0.505839 3.31547 +96.0085 0.632226 4.14387 +95.9683 0.758567 4.97196 +96.9189 0.894055 5.86 +95.9657 1.01211 6.63381 +95.9034 1.13838 7.46143 +96.7305 1.27639 8.36601 +96.653 1.40366 9.20016 +96.5681 1.53082 10.0336 +96.5752 1.65957 10.8775 +96.4755 1.78661 11.7102 +96.3684 1.91352 12.542 +96.155 2.03819 13.3591 +96.1323 2.1669 14.2027 +95.8058 2.28862 15.0005 +95.6697 2.41463 15.8265 +96.2157 2.55879 16.7713 +96.064 2.68533 17.6007 +95.905 2.81166 18.4287 +95.7386 2.93778 19.2554 +95.565 3.06368 20.0806 +95.3841 3.18935 20.9043 +95.196 3.31476 21.7263 +96.0701 3.47866 22.8006 +95.8652 3.60498 23.6285 +96.4275 3.76121 24.6525 +96.2062 3.888 25.4835 +95.9776 4.01446 26.3124 +96.6068 4.17806 27.3847 +96.3614 4.30504 28.217 +96.9693 4.4714 29.3074 +96.7069 4.59886 30.1428 +96.4371 4.72596 30.9759 +96.16 4.85271 31.8066 +96.7266 5.02328 32.9246 +96.338 5.14537 33.7248 +95.9426 5.26681 34.5208 +96.4772 5.44043 35.6588 +96.0654 5.56179 36.4543 +96.8565 5.75435 37.7164 +96.5198 5.8816 38.5504 +96.915 6.0546 39.6843 +96.7451 6.1937 40.596 +96.4747 6.32682 41.4685 +96.8358 6.50263 42.6209 +96.5469 6.6361 43.4957 +96.1593 6.76291 44.3269 +96.5766 6.94765 45.5378 +96.171 7.0745 46.3691 +96.5634 7.26137 47.594 +96.8524 7.44297 48.7843 +96.4181 7.57016 49.6179 +95.9764 7.69678 50.4478 +96.3184 7.88757 51.6984 +96.558 8.07254 52.9107 +96.0873 8.19932 53.7417 +96.3886 8.39334 55.0134 +96.6748 8.58878 56.2944 +96.0027 8.70017 57.0244 +96.2631 8.89711 58.3153 +96.5079 9.0954 59.615 +95.9779 9.22208 60.4452 +96.0278 9.40555 61.6478 +96.3138 9.61482 63.0195 +96.3342 9.80026 64.2349 +95.7635 9.92668 65.0635 +95.9227 10.1302 66.3975 +96.0656 10.3349 67.739 +96.1112 10.5319 69.0301 +96.3021 10.7477 70.4446 +95.6765 10.874 71.2727 +95.5991 11.0638 72.5167 +95.6645 11.2728 73.8863 +96.3391 11.5579 75.755 +95.6667 11.6842 76.5831 +95.6814 11.896 77.9714 +95.679 12.1088 79.3658 +95.507 12.3028 80.6376 +96.15 12.6061 82.6258 +96.0161 12.8122 83.9762 +96.0143 13.039 85.4627 +95.8461 13.2464 86.822 +95.8073 13.4749 88.3198 +95.5318 13.6731 89.6193 +95.4564 13.9031 91.1267 +95.2903 14.1234 92.5703 +95.7423 14.4402 94.6471 +95.604 14.6733 96.1745 +95.3071 14.8853 97.5644 +95.6125 15.1963 99.6024 +95.4116 15.4317 101.146 +95.7311 15.7569 103.277 +95.3511 15.9719 104.687 +95.0197 16.1985 106.171 +95.3254 16.5392 108.405 +95.4039 16.8476 110.426 +95.1326 17.0996 112.078 +95.2209 17.422 114.191 +95.0903 17.7108 116.084 +95.2447 18.0595 118.369 +95.1813 18.3743 120.432 +94.5406 18.5827 121.799 +94.6053 18.9353 124.11 +95.0527 19.3742 126.987 +94.4571 19.6085 128.522 +94.9449 20.0759 131.585 +94.7548 20.4101 133.776 +94.5898 20.7577 136.055 +94.3918 21.1066 138.341 +94.1053 21.4438 140.552 +94.1136 21.8577 143.264 +94.3498 22.337 146.406 +94.1667 22.7288 148.974 +94.2065 23.1863 151.972 +93.8399 23.5551 154.389 +94.3006 24.1455 158.26 +94.4 24.6606 161.636 +93.8559 25.0202 163.992 +93.8107 25.5253 167.303 +93.7617 26.0455 170.713 +93.8943 26.634 174.57 +93.5964 27.1177 177.74 +93.7944 27.7639 181.976 +93.7462 28.3588 185.875 +92.9785 28.7521 188.453 +110.727 35.013 229.489 +116.051 37.5358 246.025 +116.031 38.4008 251.694 +116.53 39.4753 258.737 +115.478 40.0559 262.543 +115.735 41.1227 269.535 +112.7 41.0366 268.971 +109.984 41.0574 269.107 +107.275 41.0743 269.218 +104.572 41.0873 269.303 +101.875 41.0962 269.361 +99.1858 41.1011 269.394 +96.2365 40.9885 268.655 +93.8287 41.0992 269.381 +92.526 41.7075 273.368 +92.1798 42.7887 280.455 +91.3544 43.6995 286.425 +90.1967 44.496 291.645 +91.1405 46.4062 304.165 +91.2084 47.9742 314.442 +90.9145 49.4441 324.077 +90.7678 51.0916 334.875 +89.1854 52.0122 340.909 +87.6483 53.0203 347.517 +87.472 54.9522 360.179 +87.2585 57.0051 373.634 +87.2468 59.356 389.043 +86.9071 61.6667 404.189 +89.3966 66.2717 434.372 +87.0852 67.5713 442.89 +86.1063 70.0709 459.273 +85.6433 73.2562 480.151 +85.3461 76.9213 504.174 +88.5263 84.3004 552.539 +88.5378 89.3512 585.644 +95.6537 102.652 672.825 +89.5801 102.625 672.645 +86.8441 106.676 699.197 +86.0571 113.919 746.673 +84.7203 121.573 796.839 +83.9896 131.558 862.288 +80.2879 138.41 907.197 +72.5433 139.022 911.206 +63.4505 136.855 897.004 +56.299 138.83 909.95 +47.4478 136.55 895.001 +40.108 138.551 908.117 +31.612 136.533 894.893 +24.0252 138.379 906.99 +15.7525 136.113 892.139 +7.99351 138.149 905.487 +4.9738e-14 136.164 892.473 +-7.98827 138.059 904.894 +-15.7438 136.037 891.645 +-23.9336 137.851 903.532 +-31.4759 135.945 891.04 +-39.8899 137.797 903.179 +-47.1809 135.781 889.967 +-55.8167 137.641 902.156 +-62.8994 135.667 889.214 +-71.7744 137.548 901.548 +-78.7452 135.751 889.766 +-87.6989 137.369 900.369 +-94.4415 135.523 888.272 +-103.921 137.566 901.665 +-110.267 135.448 887.783 +-117.474 134.58 882.093 +-123.28 132.299 867.145 +-131.196 132.401 867.808 +-144.123 137.243 899.548 +-147.553 132.987 871.652 +-150.379 128.629 843.088 +-147.501 120.033 786.743 +-162.684 126.23 827.361 +-178.693 132.47 868.26 +-113.811 80.7568 529.313 +-117.375 79.8529 523.388 +-122.216 79.8424 523.319 +-127.158 79.8838 523.591 +-792.705 479.525 3143 +-820.42 478.463 3136.04 +-848.072 477.365 3128.84 +-875.66 476.231 3121.41 +-903.181 475.06 3113.74 +-930.633 473.852 3105.82 +-163.436 80.6265 528.459 +-143.527 68.6564 450.002 +-145.392 67.4894 442.353 +-146.5 66.0368 432.832 +-150.933 66.1124 433.328 +-1093.78 465.857 3053.42 +-1120.7 464.4 3043.87 +-1147.52 462.907 3034.08 +-144.709 56.8576 372.668 +-145.208 55.5983 364.414 +-144.935 54.1046 354.623 +-146.759 53.4381 350.255 +-150.627 53.5206 350.796 +-1306.58 453.215 2970.56 +-1332.75 451.477 2959.17 +-453.799 150.186 984.38 +-451.863 146.152 957.939 +-435.634 137.751 902.878 +-419.653 129.771 850.573 +-144.613 43.7461 286.73 +-142.825 42.2776 277.104 +-141.988 41.1381 269.636 +-145.348 41.2293 270.234 +-149.78 41.6064 272.705 +-410.488 111.691 732.07 +-110.254 29.3915 192.644 +-109.35 28.566 187.233 +-110.745 28.3559 185.856 +-112.021 28.1187 184.301 +-112.912 27.7902 182.148 +-114.781 27.7044 181.586 +-116.11 27.4887 180.172 +-117.914 27.3854 179.495 +-119.936 27.3297 179.13 +-122.407 27.3709 179.4 +-126.139 27.6811 181.434 +-417.392 89.9056 589.278 +-418.455 88.4811 579.941 +-420.09 87.2069 571.59 +-422.384 86.0931 564.289 +-424.099 84.8833 556.36 +-426.255 83.7835 549.151 +-426.961 82.4229 540.234 +-427.73 81.1025 531.579 +-428.567 79.8214 523.182 +-436.477 79.8595 523.432 +-430.796 77.4334 507.53 +-433.766 76.5996 502.065 +-435.951 75.6389 495.768 +-437.594 74.599 488.952 +-439.552 73.628 482.588 +-441.025 72.5907 475.789 +-442.753 71.6104 469.364 +-444.402 70.6311 462.945 +-446.387 69.718 456.96 +-448.372 68.8158 451.047 +-449.72 67.8285 444.576 +-451.202 66.8745 438.323 +-453.4 66.0371 432.834 +-454.447 65.0434 426.321 +-456.072 64.1445 420.429 +-457.407 63.2157 414.341 +-459.264 62.3691 408.793 +-382.941 51.0988 334.922 +-383.77 50.3157 329.79 +-382.864 49.3189 323.256 +-383.252 48.503 317.908 +-383.652 47.6992 312.64 +-381.967 46.6515 305.773 +-381.678 45.7901 300.127 +-383.367 45.1746 296.093 +-141.217 16.3433 107.12 +-142.477 16.193 106.136 +-143.167 15.978 104.726 +-142.468 15.6116 102.325 +-142.796 15.3622 100.69 +-143.106 15.1131 99.0577 +-146.694 15.2061 99.6667 +-148.481 15.1052 99.0053 +-495.578 49.4726 324.264 +-496.912 48.6707 319.008 +-498.36 47.885 313.858 +-501.366 47.2513 309.704 +-503.569 46.5424 305.058 +-506.414 45.8933 300.803 +-520.079 46.2049 302.846 +-2837.53 247.087 1619.51 +-2851.72 243.344 1594.97 +-2865.69 239.581 1570.31 +-2879.44 235.799 1545.53 +-2892.98 232 1520.62 +-2906.29 228.184 1495.61 +-2919.38 224.35 1470.48 +-386.522 29.0657 190.508 +-380.46 27.9873 183.44 +-380.259 27.3555 179.299 +-381.646 26.8414 175.929 +-379.454 26.0815 170.949 +-380.674 25.5627 167.548 +-380.58 24.9585 163.588 +-380.353 24.3505 159.603 +-380.823 23.7912 155.938 +-380.794 23.2044 152.091 +-380.541 22.6083 148.184 +-380.807 22.0471 144.506 +-380.008 21.4289 140.454 +-379.354 20.8248 136.495 +-381.581 20.3801 133.579 +-380.949 19.7837 129.67 +-380.847 19.2195 125.972 +-380.518 18.6476 122.224 +-381.105 18.1233 118.787 +-380.418 17.5416 114.975 +-380.651 17.006 111.464 +-380.371 16.4504 107.822 +-379.092 15.8564 103.929 +-380.575 15.3803 100.808 +-379.611 14.807 97.051 +-381.326 14.3396 93.9877 +-380.975 13.7949 90.4176 +-380.784 13.2591 86.9053 +-380.658 12.728 83.4244 +-380.01 12.1826 79.8497 +-380.211 11.6669 76.4699 +-380.773 11.1632 73.1681 +-380.716 10.6424 69.7544 +-380.727 10.1252 66.3644 +-380.805 9.61123 62.9959 +-380.458 9.08843 59.5693 +-381.068 8.58957 56.2995 +-380.164 8.0583 52.8174 +-380.318 7.55172 49.497 +-380.741 7.05088 46.2143 +-380.24 6.53412 42.8273 +-380.902 6.03814 39.5764 +-380.241 5.52213 36.1943 +-380.945 5.02672 32.9471 +-380.224 4.5133 29.582 +-379.872 4.00638 26.2594 +-380.389 3.50901 22.9995 +-380.877 3.01058 19.7326 +-380.138 2.50325 16.4073 +-3274.5 17.2464 113.04 +-145.25 0.57366 3.76 +-145.578 0.383254 2.512 +-146.194 0.192424 1.26123 +96.1 1.77636e-15 1.13687e-13 +95.9963 0.133818 0.82699 +96.0854 0.267906 1.65564 +96.0671 0.401831 2.4833 +96.0415 0.535728 3.31078 +96.0085 0.669584 4.138 +96.0682 0.804225 4.97007 +95.9208 0.937131 5.79143 +95.9657 1.07192 6.6244 +95.8038 1.20439 7.44311 +96.7305 1.35182 8.35416 +96.653 1.4866 9.18712 +96.6675 1.62295 10.0297 +96.5752 1.75764 10.8621 +96.4755 1.89218 11.6936 +96.3684 2.02658 12.5242 +96.2541 2.16084 13.3539 +96.1323 2.29494 14.1826 +95.6082 2.41886 14.9485 +95.6697 2.55731 15.804 +96.2157 2.70998 16.7476 +96.064 2.844 17.5758 +95.905 2.97779 18.4026 +95.7386 3.11137 19.2281 +95.565 3.24471 20.0522 +95.3841 3.3778 20.8747 +95.196 3.51062 21.6955 +95.8757 3.67675 22.7221 +95.8652 3.81799 23.595 +95.653 3.95146 24.4199 +96.2062 4.11773 25.4474 +96.1703 4.26022 26.3279 +95.7417 4.38531 27.101 +95.4984 4.51859 27.9247 +96.1086 4.69358 29.0061 +95.8486 4.82736 29.8329 +96.4371 5.00521 30.932 +96.16 5.13945 31.7616 +96.7266 5.3201 32.8779 +96.338 5.4494 33.6771 +96.7883 5.62719 34.7758 +96.7582 5.77867 35.7119 +97.0924 5.9534 36.7917 +96.8565 6.09437 37.6629 +97.2616 6.27701 38.7916 +96.915 6.41235 39.628 +96.7451 6.55968 40.5385 +96.383 6.69429 41.3704 +96.105 6.83489 42.2393 +96.5469 7.02821 43.434 +96.0686 7.15576 44.2223 +96.4864 7.3513 45.4307 +96.171 7.49252 46.3034 +96.5634 7.69043 47.5265 +96.0505 7.8175 48.3118 +96.4181 8.01747 49.5476 +95.9764 8.15157 50.3763 +96.2305 8.34602 51.578 +96.558 8.54954 52.8358 +96.0873 8.68381 53.6656 +96.3886 8.8893 54.9354 +96.6748 9.09628 56.2146 +96.0885 9.22247 56.9945 +96.2631 9.42283 58.2327 +96.5079 9.63283 59.5305 +96.6527 9.83565 60.7839 +96.1116 9.97 61.6142 +96.2304 10.1741 62.8757 +96.3342 10.3793 64.1439 +96.5052 10.5947 65.4746 +95.9227 10.7288 66.3034 +96.0656 10.9456 67.6431 +96.1112 11.1542 68.9323 +95.4982 11.2877 69.7575 +96.3154 11.5934 71.647 +96.3131 11.805 72.9547 +95.7433 11.9487 73.8424 +95.713 12.1612 75.1559 +95.589 12.3646 76.4125 +95.6814 12.599 77.8609 +95.6023 12.814 79.1899 +95.507 13.0298 80.5233 +95.6217 13.2777 82.0554 +96.0161 13.5692 83.8572 +95.2712 13.7025 84.681 +95.9198 14.0399 86.7657 +95.7342 14.2602 88.1273 +95.6043 14.492 89.5602 +96.1038 14.8245 91.6147 +95.9322 15.0587 93.0618 +95.7423 15.2935 94.513 +95.5339 15.5289 95.9677 +95.3071 15.7649 97.4262 +95.6125 16.0942 99.4613 +95.4116 16.3435 101.002 +95.7987 16.6997 103.204 +95.418 16.9275 104.611 +95.6823 17.2753 106.76 +95.3254 17.5165 108.251 +95.5338 17.8674 110.42 +95.1326 18.11 111.919 +95.2209 18.4514 114.029 +95.0903 18.7573 115.919 +95.307 19.1391 118.279 +95.1197 19.4475 120.185 +95.0885 19.7948 122.331 +95.0266 20.1435 124.486 +94.9932 20.5062 126.728 +94.5159 20.78 128.42 +94.8869 21.249 131.318 +94.7548 21.6161 133.586 +94.5898 21.9843 135.862 +94.3358 22.3405 138.063 +94.7124 22.8574 141.258 +94.6038 23.2698 143.806 +94.3498 23.6569 146.198 +94.0607 24.0449 148.596 +94.2065 24.5563 151.757 +94.3035 25.0701 154.932 +94.3006 25.5723 158.035 +93.9 25.9794 160.552 +93.8559 26.4986 163.76 +93.8107 27.0335 167.066 +93.714 27.5704 170.384 +93.5187 28.0948 173.625 +93.6426 28.7342 177.576 +93.749 29.3903 181.63 +93.7015 30.0201 185.523 +93.3731 30.5803 188.985 +101.773 34.083 210.631 +116.009 39.7392 245.587 +116.114 40.6989 251.517 +116.286 41.7203 257.829 +115.757 42.5253 262.805 +115.969 43.6408 269.698 +113.006 43.5794 269.319 +110.322 43.6168 269.55 +107.275 43.5013 268.836 +104.572 43.5151 268.921 +101.875 43.5245 268.979 +99.22 43.5448 269.105 +96.5369 43.5459 269.112 +93.8287 43.5277 268.999 +92.7482 44.278 273.636 +91.9326 45.1955 279.306 +91.5048 46.3579 286.49 +90.0212 47.0336 290.665 +91.2257 49.1943 304.019 +91.236 50.8244 314.093 +91.0481 52.4427 324.093 +90.7937 54.126 334.496 +89.4357 55.2401 341.382 +87.5031 56.0602 346.45 +87.542 58.2459 359.957 +87.2585 60.3734 373.105 +87.0953 62.7541 387.818 +86.6576 65.123 402.457 +89.3368 70.1406 433.466 +87.1997 71.6581 442.844 +85.7236 73.8815 456.584 +85.5565 77.5062 478.985 +85.6597 81.7659 505.309 +88.4011 89.1554 550.976 +88.257 94.3305 582.958 +95.7928 108.876 672.85 +89.6845 108.816 672.475 +86.7222 112.821 697.227 +85.1967 119.444 738.161 +83.8841 127.486 787.856 +84.7852 140.652 869.221 +78.4053 143.152 884.67 +70.7544 143.606 887.476 +62.2856 142.281 879.288 +54.8948 143.367 885.999 +46.5738 141.954 877.269 +39.0132 142.732 882.076 +30.9349 141.504 874.485 +23.4074 142.787 882.416 +15.4489 141.377 873.701 +7.79105 142.607 881.303 +4.44089e-14 141.398 873.834 +-7.78232 142.447 880.316 +-15.4157 141.073 871.825 +-23.3158 142.228 878.962 +-30.8442 141.089 871.921 +-38.8605 142.173 878.624 +-46.2755 141.045 871.65 +-54.4248 142.139 878.411 +-61.7484 141.054 871.706 +-69.9306 141.934 877.143 +-77.159 140.876 870.607 +-85.4752 141.796 876.296 +-92.5809 140.703 869.538 +-101.17 141.838 876.553 +-108.244 140.82 870.259 +-116.743 141.645 875.362 +-122.556 139.294 860.833 +-128.166 136.986 846.565 +-140.212 141.408 873.898 +-147.949 141.223 872.754 +-147.879 133.964 827.893 +-147.775 127.361 787.083 +-161.692 132.873 821.15 +-173.929 136.556 843.909 +-113.936 85.6224 529.142 +-117.548 84.6961 523.418 +-122.193 84.5446 522.482 +-127.555 84.8681 524.481 +-792.705 507.859 3138.55 +-820.42 506.735 3131.6 +-848.072 505.572 3124.41 +-875.66 504.37 3116.99 +-903.181 503.131 3109.33 +-930.633 501.851 3101.42 +-163.173 85.2532 526.861 +-143.647 72.7742 449.741 +-145.609 71.5837 442.384 +-146.626 69.9994 432.593 +-151.129 70.1096 433.274 +-1093.78 493.384 3049.09 +-1120.7 491.841 3039.55 +-1147.52 490.259 3029.78 +-144.888 60.2918 372.601 +-145.208 58.8836 363.898 +-144.935 57.3015 354.121 +-146.759 56.5957 349.759 +-150.627 56.683 350.299 +-1306.58 479.995 2966.35 +-1332.75 478.155 2954.97 +-1358.66 476.222 2943.03 +-446.623 152.993 945.488 +-1410.57 472.39 2919.35 +-1436.32 470.406 2907.09 +-144.791 46.3882 286.677 +-142.825 44.7757 276.712 +-143.604 44.0647 272.318 +-144.597 43.4398 268.456 +-149.208 43.8963 271.277 +-411.119 118.473 732.155 +-110.303 31.1421 192.457 +-109.5 30.2955 187.225 +-110.745 30.0314 185.593 +-112.021 29.7802 184.04 +-113.33 29.5412 182.563 +-114.728 29.3278 181.245 +-116.54 29.2208 180.583 +-117.86 28.9901 179.158 +-119.936 28.9446 178.876 +-122.295 28.9619 178.983 +-126.762 29.4615 182.071 +-417.392 95.218 588.443 +-418.687 93.7612 579.44 +-420.09 92.3599 570.78 +-422.562 91.2187 563.727 +-424.099 89.899 555.572 +-425.707 88.6201 547.668 +-426.777 87.2555 539.235 +-427.356 85.8196 530.361 +-428.756 84.5753 522.672 +-439.212 85.1083 525.966 +-431.632 82.1679 507.794 +-433.701 81.1137 501.279 +-435.558 80.0359 494.618 +-437.594 79.0069 488.259 +-439.351 77.9429 481.684 +-441.228 76.9153 475.333 +-443.163 75.9119 469.132 +-444.402 74.8046 462.289 +-446.179 73.803 456.099 +-448.091 72.8365 450.126 +-449.72 71.8364 443.946 +-451.559 70.8821 438.048 +-453.688 69.9836 432.495 +-455.463 69.0407 426.668 +-456.072 67.9347 419.833 +-457.702 66.9941 414.021 +-459.709 66.1185 408.609 +-383.241 54.1605 334.709 +-421.958 58.5916 362.093 +-383.016 52.2539 322.927 +-383.558 51.41 317.711 +-382.88 50.4161 311.569 +-383.444 49.5991 306.52 +-382.695 48.6252 300.501 +-383.84 47.903 296.038 +-142.169 17.4256 107.689 +-142.317 17.1305 105.866 +-143.087 16.9125 104.519 +-142.468 16.5341 102.18 +-142.796 16.2699 100.547 +-142.205 15.9054 98.2944 +-146.118 16.0413 99.1345 +-148.398 15.9889 98.8107 +-495.328 52.3695 323.641 +-497.416 51.5986 318.877 +-499.119 50.7918 313.891 +-501.366 50.0433 309.265 +-502.802 49.2173 304.161 +-505.986 48.564 300.123 +-516.461 48.5945 300.312 +-2837.53 261.687 1617.21 +-2851.72 257.722 1592.71 +-2865.69 253.737 1568.08 +-2879.44 249.733 1543.34 +-2892.98 245.709 1518.47 +-404.477 33.6335 207.853 +-2919.38 237.607 1468.4 +-386.433 30.776 190.194 +-379.83 29.592 182.877 +-380.44 28.9857 179.13 +-380.831 28.3665 175.304 +-379.818 27.6491 170.87 +-379.121 26.9628 166.629 +-380.58 26.4332 163.356 +-378.512 25.6646 158.606 +-378.513 25.0442 154.772 +-381.629 24.6293 152.208 +-380.262 23.9267 147.866 +-380.527 23.3328 144.195 +-380.851 22.7454 140.566 +-380.294 22.11 136.639 +-380.544 21.5257 133.028 +-381.233 20.9684 129.583 +-380.847 20.3551 125.794 +-381.088 19.779 122.233 +-379.961 19.1365 118.263 +-380.896 18.6016 114.957 +-380.651 18.0108 111.306 +-380.756 17.44 107.778 +-381.019 16.8786 104.309 +-380.768 16.2972 100.716 +-379.901 15.6939 96.9876 +-379.58 15.1174 93.4246 +-380.488 14.5914 90.1743 +-380.394 14.0281 86.6933 +-380.267 13.4662 83.2207 +-380.402 12.9157 79.8187 +-381.191 12.3882 76.5583 +-379.89 11.7954 72.8949 +-380.52 11.2654 69.6195 +-380.628 10.7207 66.2532 +-379.917 10.1554 62.76 +-380.853 9.63544 59.5466 +-380.771 9.09002 56.1759 +-381.55 8.56558 52.9349 +-380.913 8.01046 49.5043 +-379.847 7.44998 46.0405 +-380.538 6.92563 42.8001 +-380.305 6.38491 39.4585 +-380.241 5.84842 36.143 +-380.546 5.31816 32.866 +-380.523 4.78373 29.5633 +-381.069 4.25648 26.3048 +-378.992 3.70269 22.8825 +-380.278 3.18345 19.6736 +-380.637 2.65465 16.4056 +-3274.5 18.2655 112.88 +-146.85 0.614246 3.79601 +-145.578 0.4059 2.50844 +-145.194 0.2024 1.25082 +95.3 -1.77636e-15 -2.27374e-13 +96.0963 0.14142 0.82661 +96.0854 0.282831 1.65316 +95.9671 0.423777 2.477 +96.0415 0.565574 3.30581 +96.1084 0.707623 4.13609 +95.9683 0.848147 4.95746 +96.0206 0.99037 5.78876 +96.8635 1.14222 6.67635 +95.9034 1.27282 7.43968 +96.7305 1.42713 8.34162 +96.653 1.56942 9.17334 +96.6675 1.71336 10.0147 +96.5752 1.85556 10.8458 +96.4755 1.9976 11.6761 +96.3684 2.13949 12.5054 +96.2541 2.28122 13.3339 +96.0334 2.4203 14.1468 +95.8058 2.55888 14.9568 +95.6697 2.69977 15.7803 +95.3294 2.8346 16.5684 +96.064 3.00244 17.5494 +95.905 3.14369 18.375 +95.7386 3.2847 19.1992 +95.565 3.42548 20.0221 +95.3841 3.56598 20.8434 +96.0729 3.74035 21.8625 +96.0701 3.88946 22.7341 +95.8652 4.03069 23.5596 +95.653 4.1716 24.3832 +96.2062 4.34713 25.4092 +95.9776 4.48853 26.2357 +95.7417 4.62961 27.0603 +96.3614 4.81343 28.1347 +96.1086 4.95506 28.9626 +95.8486 5.09629 29.7881 +96.4371 5.28405 30.8855 +96.16 5.42577 31.7139 +96.632 5.611 32.7966 +96.338 5.75299 33.6265 +97.0702 5.95798 34.8247 +96.3836 6.07697 35.5202 +96.1588 6.22463 36.3833 +96.7634 6.4277 37.5702 +96.4271 6.56986 38.4012 +97.0074 6.77605 39.6063 +96.653 6.91854 40.4392 +96.383 7.06723 41.3083 +96.105 7.21566 42.1759 +96.5469 7.41976 43.3689 +96.1593 7.56155 44.1976 +96.5766 7.76811 45.405 +96.0811 7.90255 46.1908 +96.5634 8.11887 47.4552 +96.0505 8.25302 48.2393 +96.5068 8.47191 49.5187 +96.7711 8.67695 50.7172 +96.2305 8.81098 51.5006 +96.558 9.02584 52.7565 +96.0873 9.16759 53.585 +96.302 9.37609 54.8037 +96.5886 9.59449 56.0803 +96.8599 9.81442 57.3658 +96.2631 9.94778 58.1453 +96.4231 10.1605 59.3889 +96.6527 10.3836 60.6927 +96.1116 10.5254 61.5217 +96.2304 10.7409 62.7813 +95.7538 10.8916 63.6618 +95.7635 11.0989 64.8738 +95.9227 11.3265 66.2039 +96.0656 11.5553 67.5416 +96.1112 11.7756 68.8289 +95.4982 11.9166 69.6529 +95.6765 12.1581 71.0649 +95.6784 12.3806 72.3652 +95.6645 12.604 73.6709 +95.713 12.8388 75.0432 +95.6667 13.064 76.3598 +95.7586 13.3116 77.8068 +95.679 13.5387 79.1344 +95.583 13.7666 80.4665 +95.6217 14.0174 81.9323 +95.4919 14.247 83.2742 +96.0143 14.5788 85.2136 +95.8461 14.8106 86.5689 +95.8073 15.0661 88.0623 +95.6043 15.2994 89.4258 +95.4564 15.545 90.861 +96.0035 15.9094 92.9913 +95.813 16.1574 94.4408 +95.604 16.406 95.8941 +95.9323 16.7523 97.9181 +95.6813 17.0029 99.383 +95.4116 17.254 100.851 +95.7987 17.6301 103.049 +95.418 17.8706 104.454 +95.7486 18.2503 106.674 +95.3254 18.4923 108.089 +94.9493 18.7473 109.579 +95.1326 19.119 111.751 +95.2209 19.4793 113.858 +95.0903 19.8023 115.745 +94.6845 20.0734 117.33 +95.1197 20.5309 120.004 +94.4798 20.7637 121.365 +94.5451 21.1579 123.669 +94.5173 21.5402 125.904 +95.0449 22.0605 128.945 +94.9449 22.4466 131.202 +94.7548 22.8203 133.386 +94.5898 23.209 135.658 +94.3918 23.5991 137.938 +94.1604 23.9901 140.224 +94.6038 24.5662 143.591 +94.4573 25.0031 146.145 +94.5376 25.5131 149.125 +94.2065 25.9244 151.529 +94.3035 26.4667 154.699 +94.4021 27.0259 157.968 +93.9 27.4268 160.311 +93.8559 27.9748 163.514 +94.247 28.6723 167.591 +93.714 29.1064 170.128 +93.9413 29.7941 174.148 +93.5964 30.32 177.222 +93.7944 31.0426 181.446 +93.7015 31.6925 185.244 +93.3292 32.2688 188.613 +100.955 35.6926 208.625 +115.966 41.9379 245.129 +116.156 42.9816 251.23 +116.164 43.9983 257.172 +115.797 44.9098 262.5 +116.008 46.0875 269.384 +113.006 46.0073 268.915 +110.322 46.0467 269.145 +107.275 45.9248 268.433 +104.572 45.9393 268.518 +101.875 45.9493 268.576 +99.22 45.9707 268.701 +96.5369 45.9719 268.708 +93.8287 45.9526 268.595 +92.3357 46.5368 272.01 +91.9635 47.7294 278.981 +91.4747 48.9245 285.966 +90.2551 49.7828 290.983 +91.3677 52.0157 304.035 +91.3462 53.7206 314 +91.0214 55.3481 323.513 +90.742 57.1088 333.804 +89.4357 58.3176 340.869 +87.479 59.167 345.834 +87.6821 61.5891 359.992 +87.326 63.7861 372.833 +87.2468 66.3654 387.909 +86.8239 68.8829 402.624 +89.2969 74.0151 432.622 +87.1806 75.6335 442.082 +85.9423 78.1964 457.062 +85.6086 81.8739 478.557 +85.8248 86.4875 505.524 +88.4011 94.1223 550.15 +88.257 99.5857 582.084 +95.9042 115.075 672.621 +89.8151 115.045 672.443 +86.7344 119.123 696.278 +85.4797 126.518 739.501 +83.4973 133.967 783.047 +84.4976 147.984 864.973 +77.9172 150.186 877.843 +70.0954 150.194 877.891 +62.0135 149.551 874.133 +54.205 149.452 873.552 +46.3121 149.02 871.031 +38.5944 149.066 871.298 +30.7848 148.662 868.938 +23.1273 148.938 870.548 +15.3773 148.561 868.349 +7.70117 148.814 869.828 +4.88498e-14 148.348 867.101 +-7.6968 148.73 869.335 +-15.3581 148.376 867.265 +-23.0593 148.499 867.987 +-30.6836 148.173 866.08 +-38.433 148.443 867.654 +-46.019 148.077 865.519 +-53.7899 148.307 866.862 +-61.4066 148.088 865.58 +-69.1852 148.244 866.492 +-76.6796 147.8 863.9 +-84.5839 148.135 865.857 +-92.1 147.77 863.724 +-100.14 148.215 866.327 +-107.684 147.895 864.454 +-115.933 148.5 867.99 +-122.444 146.921 858.761 +-128.239 144.7 845.781 +-139.305 148.32 866.94 +-147.52 148.659 868.917 +-147.618 141.178 825.195 +-147.775 134.456 785.902 +-162.149 140.673 822.24 +-174.347 144.511 844.671 +-113.936 90.3924 528.348 +-117.765 89.5793 523.595 +-122.373 89.386 522.466 +-127.765 89.7437 524.556 +-792.705 536.152 3133.84 +-820.42 534.965 3126.9 +-848.072 533.737 3119.72 +-875.66 532.469 3112.31 +-903.181 531.161 3104.66 +-930.633 529.81 3096.77 +-163.173 90.0027 526.07 +-143.527 76.7641 448.69 +-145.516 75.5236 441.439 +-146.849 74.0111 432.599 +-151.324 74.1111 433.183 +-1093.78 520.871 3044.51 +-1120.7 519.242 3034.99 +-1147.52 517.572 3025.23 +-144.673 63.5561 371.488 +-145.208 62.164 363.352 +-144.935 60.4938 353.59 +-146.453 59.624 348.505 +-150.51 59.7942 349.5 +-1306.58 506.736 2961.9 +-1332.75 504.793 2950.54 +-1358.66 502.752 2938.61 +-444.13 160.614 938.799 +-1410.57 498.707 2914.97 +-143.523 49.6233 290.051 +-144.657 48.9274 285.983 +-142.825 47.2702 276.297 +-143.65 46.5346 271.997 +-145.583 46.1725 269.881 +-144.961 45.023 263.161 +-411.07 125.058 730.969 +-110.007 32.7888 191.652 +-109.85 32.0855 187.541 +-110.745 31.7045 185.314 +-112.072 31.4538 183.849 +-113.382 31.2013 182.373 +-114.728 30.9617 180.973 +-116.54 30.8487 180.312 +-117.86 30.6052 178.889 +-119.826 30.5291 178.444 +-122.295 30.5753 178.714 +-127.158 31.2001 182.366 +-417.219 100.481 587.318 +-418.455 98.9299 578.25 +-419.032 97.2598 568.488 +-422.384 96.2599 562.644 +-424.4 94.9748 555.132 +-426.255 93.6776 547.55 +-427.515 92.2761 539.358 +-427.045 90.5348 529.18 +-429.511 89.4442 522.806 +-439.784 89.9668 525.861 +-431.632 86.7455 507.032 +-433.831 85.6582 500.676 +-435.951 84.5712 494.323 +-437.594 83.4084 487.526 +-439.552 82.3228 481.181 +-442.039 81.3496 475.492 +-443.367 80.1779 468.644 +-445.021 79.0821 462.239 +-446.596 77.9875 455.841 +-448.652 76.9905 450.014 +-449.72 75.8384 443.279 +-450.917 74.7246 436.769 +-453.688 73.8824 431.846 +-455.172 72.8404 425.756 +-456.072 71.7193 419.203 +-458.365 70.829 413.999 +-459.041 69.7005 407.403 +-382.267 57.0324 333.357 +-386.109 56.6006 330.833 +-384.233 55.3402 323.466 +-384.937 54.4692 318.375 +-384.809 53.493 312.669 +-382.744 52.2667 305.501 +-383.4 51.4285 300.602 +-383.604 50.5405 295.412 +-142.566 18.4476 107.827 +-142.956 18.1662 106.182 +-143.087 17.8547 104.362 +-142.63 17.4751 102.143 +-142.877 17.1861 100.453 +-142.205 16.7915 98.1469 +-146.118 16.935 98.9858 +-148.398 16.8797 98.6625 +-496.162 55.3802 323.7 +-497.416 54.4732 318.399 +-499.962 53.712 313.949 +-501.366 52.8312 308.801 +-503.228 52.0034 303.963 +-506.072 51.2781 299.723 +-515.168 51.1734 299.111 +-2837.53 276.266 1614.79 +-2851.72 272.08 1590.32 +-2865.69 267.873 1565.73 +-2879.44 263.645 1541.02 +-404.92 36.3071 212.217 +-406.162 35.6553 208.407 +-2919.38 250.844 1466.2 +-387.775 32.6035 190.569 +-380.46 31.2924 182.905 +-380.981 30.6441 179.117 +-380.015 29.8828 174.666 +-380.182 29.2175 170.778 +-380.857 28.5952 167.141 +-379.296 27.8117 162.561 +-381.181 27.2854 159.485 +-381.193 26.6266 155.634 +-380.516 25.9257 151.537 +-380.076 25.2473 147.572 +-380.527 24.6326 143.979 +-380.289 23.9772 140.148 +-380.294 23.3417 136.434 +-381.204 22.7642 133.058 +-380.855 22.1146 129.261 +-381.226 21.5104 125.729 +-380.518 20.8497 121.867 +-381.678 20.2938 118.619 +-380.036 19.5935 114.525 +-380.651 19.0142 111.139 +-380.371 18.393 107.508 +-380.73 17.8055 104.074 +-379.899 17.166 100.336 +-380.772 16.6062 97.0642 +-380.162 15.984 93.4275 +-380.683 15.4122 90.085 +-380.784 14.8248 86.6519 +-380.072 14.2091 83.0532 +-380.597 13.6423 79.7398 +-380.701 13.0615 76.3451 +-380.282 12.4654 72.8608 +-381.011 11.9084 69.605 +-380.431 11.3121 66.1196 +-380.41 10.7351 62.7472 +-379.865 10.1459 59.3031 +-381.859 9.62385 56.2519 +-380.857 9.02634 52.7594 +-381.706 8.47433 49.5329 +-380.145 7.8712 46.0075 +-379.942 7.30001 42.6689 +-380.604 6.7459 39.4301 +-380.241 6.17424 36.0887 +-380.945 5.62033 32.8511 +-379.826 5.04098 29.4648 +-380.471 4.48654 26.2241 +-379.79 3.91722 22.8963 +-380.877 3.3661 19.675 +-378.839 2.7893 16.3036 +-3274.5 19.283 112.71 +-145.45 0.642288 3.7542 +-145.578 0.428513 2.50468 +-146.394 0.215441 1.25926 +95.2 5.32907e-15 -1.7053e-13 +95.9963 0.148716 0.824441 +96.0854 0.297732 1.65054 +96.0671 0.446568 2.47565 +96.0415 0.595371 3.30057 +96.0085 0.744129 4.12524 +96.0682 0.89376 4.95476 +96.0206 1.04255 5.77959 +95.8659 1.19002 6.59713 +96.8007 1.35241 7.49738 +95.7343 1.48684 8.24264 +96.653 1.6521 9.15881 +96.6675 1.80363 9.99883 +96.5752 1.95332 10.8286 +96.4755 2.10284 11.6576 +96.3684 2.25221 12.4856 +96.2541 2.40141 13.3127 +96.1323 2.55044 14.1389 +96.6947 2.71869 15.0717 +95.6697 2.84201 15.7553 +95.3294 2.98394 16.5421 +95.1791 3.13151 17.3602 +95.905 3.30931 18.3459 +95.7386 3.45776 19.1688 +95.565 3.60595 19.9904 +95.3841 3.75386 20.8103 +96.2678 3.9454 21.8722 +96.0701 4.09438 22.6981 +95.6712 4.23446 23.4746 +95.4594 4.38251 24.2954 +96.3994 4.58534 25.4198 +95.9776 4.72501 26.1942 +95.7417 4.87353 27.0175 +96.3614 5.06702 28.0902 +96.1086 5.21612 28.9167 +96.7069 5.41285 30.0073 +97.2931 5.61181 31.1103 +96.16 5.71163 31.6637 +96.632 5.90662 32.7446 +96.338 6.05609 33.5733 +96.0366 6.2051 34.3993 +96.4772 6.40337 35.4985 +96.1588 6.55258 36.3256 +96.8565 6.77286 37.5468 +96.5198 6.92263 38.3771 +96.915 7.12625 39.5059 +96.653 7.28305 40.3752 +96.383 7.43957 41.2429 +96.105 7.59582 42.1091 +96.5469 7.81067 43.3002 +96.1593 7.95993 44.1276 +96.4864 8.16972 45.2907 +96.9799 8.3967 46.5489 +96.5634 8.54661 47.38 +96.9415 8.76842 48.6097 +96.4181 8.91007 49.3949 +96.7711 9.1341 50.6369 +96.2305 9.27519 51.419 +96.558 9.50137 52.6729 +96.8706 9.72925 53.9362 +96.302 9.87007 54.7169 +96.5025 10.091 55.9415 +96.0885 10.2492 56.8188 +96.2631 10.4719 58.0532 +96.5079 10.7053 59.347 +96.737 10.9402 60.6495 +96.1116 11.08 61.4243 +96.3138 11.3166 62.7362 +96.3342 11.5349 63.9462 +95.7635 11.6837 64.7711 +95.9227 11.9232 66.099 +96.0656 12.1641 67.4346 +96.1112 12.396 68.7198 +95.4982 12.5444 69.5426 +95.6765 12.7987 70.9523 +95.6784 13.0329 72.2505 +95.7433 13.279 73.6148 +95.713 13.5152 74.9243 +95.6667 13.7523 76.2389 +95.6814 14.0016 77.621 +95.679 14.252 79.0091 +96.2674 14.5957 80.9142 +96.2255 14.849 82.319 +95.4919 14.9976 83.1423 +95.3455 15.2399 84.486 +95.8461 15.5909 86.4318 +95.8073 15.8599 87.9228 +95.5318 16.0932 89.2164 +96.1038 16.4749 91.3324 +95.9322 16.7352 92.775 +95.7423 16.9961 94.2217 +95.5339 17.2577 95.6719 +95.3071 17.52 97.1259 +95.6813 17.8987 99.2256 +95.3434 18.1501 100.619 +95.7311 18.5458 102.813 +95.418 18.8121 104.289 +95.0197 19.0656 105.694 +95.3254 19.4666 107.917 +94.9493 19.735 109.405 +95.1326 20.1263 111.574 +95.3481 20.5331 113.83 +95.1532 20.8592 115.638 +95.2447 21.256 117.837 +95.2428 21.6405 119.969 +95.0885 21.9985 121.954 +94.5451 22.2726 123.473 +94.5768 22.6893 125.783 +94.5746 23.1079 128.104 +94.9449 23.6292 130.994 +94.8122 24.0372 133.255 +94.6465 24.4464 135.524 +94.3918 24.8424 137.719 +94.1604 25.2541 140.002 +94.6038 25.8605 143.363 +94.3498 26.2906 145.748 +94.0607 26.7218 148.138 +94.2065 27.2902 151.289 +93.8399 27.7243 153.696 +94.4021 28.4498 157.718 +93.8 28.8409 159.886 +93.8559 29.4487 163.255 +93.8107 30.0432 166.551 +94.1434 30.7803 170.637 +93.9413 31.3638 173.872 +93.6426 31.9332 177.029 +93.7944 32.6781 181.158 +93.7462 33.3782 185.04 +93.3731 33.9848 188.402 +100.137 37.2686 206.607 +116.051 44.1796 244.919 +116.114 45.23 250.742 +116.205 46.3325 256.855 +115.797 47.2759 262.084 +115.93 48.483 268.776 +113.006 48.4312 268.489 +110.322 48.4727 268.719 +107.605 48.4931 268.832 +104.572 48.3596 268.092 +101.875 48.3701 268.15 +99.1858 48.376 268.183 +96.5369 48.3939 268.282 +93.8287 48.3737 268.17 +92.526 49.0896 272.139 +91.9635 50.244 278.539 +91.5048 51.5189 285.607 +90.2259 52.3888 290.429 +91.3961 54.7732 303.647 +91.2911 56.5168 313.313 +91.0481 58.2812 323.095 +90.7161 60.1004 333.18 +89.4608 61.4073 340.425 +87.5031 62.3015 345.382 +87.7054 64.8512 359.517 +87.236 67.0776 371.86 +87.2901 69.8965 387.486 +86.72 72.4252 401.505 +89.2969 77.9146 431.937 +87.3333 79.7578 442.155 +85.8329 82.2115 455.758 +85.296 85.8728 476.055 +85.7422 90.9565 504.237 +88.2603 98.9233 548.403 +88.2718 104.85 581.259 +95.9042 121.138 671.556 +89.8151 121.106 671.378 +86.6247 125.24 694.297 +85.5816 133.342 739.21 +83.3092 140.708 780.045 +84.4209 155.639 862.82 +77.281 156.807 869.296 +69.8443 157.541 873.361 +61.7484 156.757 869.019 +54.0402 156.847 869.516 +46.0609 156.021 864.935 +38.4723 156.423 867.166 +30.6522 155.82 863.824 +23.0383 156.181 865.824 +15.304 155.643 862.841 +7.67412 156.105 865.4 +5.06262e-14 155.294 860.906 +-7.67673 156.158 865.696 +-15.2674 155.27 860.775 +-22.9991 155.915 864.349 +-30.5161 155.128 859.988 +-38.3327 155.856 864.02 +-45.773 155.046 859.529 +-53.625 155.642 862.837 +-61.016 154.898 858.71 +-68.9891 155.611 862.666 +-76.3571 154.933 858.904 +-84.258 155.339 861.155 +-91.6506 154.796 858.147 +-99.7207 155.371 861.336 +-107.099 154.841 858.396 +-115.477 155.708 863.2 +-122.528 154.767 857.985 +-128.166 152.236 843.955 +-139.023 155.819 863.818 +-147.47 156.438 867.249 +-147.306 148.302 822.143 +-147.921 141.68 785.432 +-161.94 147.893 819.875 +-174.108 151.915 842.176 +-113.936 95.1548 527.511 +-117.765 94.2988 522.766 +-122.396 94.1127 521.735 +-127.788 94.4891 523.821 +-792.705 564.4 3128.87 +-820.42 563.15 3121.94 +-848.072 561.857 3114.78 +-875.66 560.523 3107.38 +-903.181 559.145 3099.74 +-930.633 557.723 3091.86 +-163.699 95.0501 526.931 +-143.707 80.9099 448.542 +-145.578 79.5363 440.927 +-146.849 77.9104 431.913 +-151.422 78.0661 432.776 +-1093.78 548.313 3039.69 +-1120.7 546.598 3030.19 +-1147.52 544.84 3020.44 +-144.781 66.9542 371.176 +-145.501 65.5714 363.509 +-144.935 63.681 353.029 +-146.759 62.8965 348.681 +-150.744 63.0426 349.491 +-1306.58 533.433 2957.2 +-1332.75 531.388 2945.87 +-1358.66 529.24 2933.96 +-441.425 168.047 931.603 +-440.025 163.767 907.88 +-142.558 51.8868 287.646 +-144.747 51.5369 285.706 +-142.825 49.7606 275.859 +-143.696 49.0021 271.654 +-146.193 48.8089 270.583 +-142.384 46.5525 258.074 +-411.943 131.926 731.361 +-110.451 34.6555 192.12 +-109.9 33.7912 187.329 +-110.745 33.3749 185.021 +-112.072 33.1109 183.558 +-113.382 32.8452 182.084 +-114.728 32.5929 180.686 +-116.594 32.4889 180.109 +-118.296 32.3367 179.266 +-120.377 32.2854 178.981 +-122.24 32.1715 178.35 +-127.158 32.8439 182.077 +-418.137 106.008 587.677 +-418.338 104.113 577.174 +-419.855 102.585 568.703 +-422.8 101.431 562.306 +-424.701 100.049 554.646 +-426.255 98.613 546.683 +-426.961 97.0116 537.805 +-427.917 95.4992 529.421 +-429.322 94.1152 521.748 +-439.912 94.7342 525.18 +-431.889 91.3701 506.53 +-434.026 90.2116 500.108 +-435.951 89.0268 493.54 +-437.395 87.7631 486.534 +-439.552 86.66 480.419 +-442.647 85.7532 475.392 +-443.367 84.4021 467.902 +-445.021 83.2486 461.507 +-446.874 82.1472 455.401 +-448.372 80.996 449.019 +-450.356 79.9469 443.203 +-451.559 78.7735 436.698 +-453.4 77.7256 430.889 +-454.447 76.5559 424.405 +-455.633 75.4253 418.137 +-457.407 74.4047 412.479 +-459.264 73.4083 406.955 +-382.641 60.0961 333.156 +-384.6 59.3497 329.018 +-384.461 58.2904 323.146 +-384.248 57.2361 317.301 +-384.346 56.2436 311.799 +-383.91 55.1879 305.946 +-383.165 54.1049 299.942 +-384.155 53.2798 295.368 +-141.852 19.3224 107.118 +-142.317 19.0377 105.54 +-143.89 18.901 104.782 +-142.63 18.3958 101.981 +-142.877 18.0915 100.294 +-141.877 17.6354 97.7656 +-146.942 17.9277 99.386 +-148.149 17.7391 98.3407 +-495.578 58.2292 322.806 +-497.416 57.3432 317.894 +-499.962 56.5419 313.452 +-501.366 55.6147 308.312 +-502.802 54.6967 303.223 +-506.072 53.9797 299.248 +-515.168 53.8695 298.637 +-2837.53 290.821 1612.23 +-2851.72 286.415 1587.8 +-2865.69 281.986 1563.25 +-404.08 38.9474 215.913 +-2892.98 273.064 1513.79 +-2906.29 268.573 1488.89 +-405.853 36.7098 203.509 +-388.223 34.3608 190.487 +-380.46 32.941 182.616 +-382.155 32.3579 179.383 +-380.831 31.5246 174.763 +-380.455 30.7788 170.629 +-379.395 29.9862 166.235 +-379.755 29.3123 162.499 +-379.064 28.5634 158.347 +-379.53 27.9071 154.709 +-381.443 27.358 151.665 +-381.192 26.6556 147.771 +-381.368 25.9876 144.068 +-379.821 25.2093 139.754 +-380.576 24.5896 136.318 +-380.921 23.9458 132.749 +-381.233 23.3028 129.184 +-380.562 22.6042 125.312 +-381.374 21.9975 121.948 +-381.296 21.3417 118.313 +-380.896 20.6725 114.602 +-380.268 19.9958 110.851 +-380.371 19.362 107.338 +-379.574 18.6866 103.593 +-379.995 18.0748 100.202 +-379.611 17.4278 96.6147 +-380.744 16.8519 93.4225 +-380.488 16.2159 89.8964 +-380.881 15.6099 86.5368 +-381.048 14.9962 83.1347 +-379.619 14.3241 79.4089 +-381.093 13.7638 76.3027 +-380.773 13.1391 72.8392 +-380.421 12.5163 69.3871 +-380.628 11.9142 66.049 +-380.41 11.3007 62.6478 +-379.569 10.6721 59.163 +-380.771 10.102 56.0028 +-380.164 9.48461 52.58 +-379.723 8.87446 49.1975 +-380.145 8.28589 45.9347 +-379.942 7.68462 42.6014 +-380.604 7.1013 39.3676 +-379.943 6.49442 36.0032 +-380.248 5.90559 32.7389 +-380.822 5.3205 29.4954 +-380.471 4.72292 26.1825 +-381.287 4.13984 22.9501 +-380.278 3.53787 19.613 +-379.738 2.94322 16.3164 +-3274.5 20.299 112.532 +-145.95 0.678449 3.76113 +-145.178 0.44985 2.49384 +-146.394 0.226792 1.25727 +96.2 -1.77636e-15 -2.27374e-13 +95.9963 0.156148 0.823066 +96.0854 0.31261 1.64779 +96.0671 0.468883 2.47152 +96.1414 0.625774 3.2985 +96.0085 0.781315 4.11836 +95.9683 0.937448 4.94135 +96.0206 1.09465 5.76995 +96.9632 1.26379 6.66151 +95.9034 1.40683 7.4155 +96.7305 1.57739 8.31452 +96.653 1.73466 9.14353 +96.8664 1.89766 10.0027 +96.5752 2.05093 10.8106 +96.4755 2.20792 11.6381 +96.3684 2.36475 12.4648 +96.2541 2.52141 13.2905 +96.1323 2.67789 14.1153 +95.9045 2.83123 14.9236 +95.6697 2.98403 15.729 +95.5264 3.13954 16.5487 +96.064 3.31857 17.4924 +95.905 3.47469 18.3153 +95.7386 3.63055 19.1369 +95.7607 3.7939 19.9979 +95.3841 3.94145 20.7756 +96.0729 4.13417 21.7915 +95.195 4.25982 22.4538 +95.8652 4.45508 23.483 +95.653 4.61083 24.304 +96.2062 4.80484 25.3267 +96.1703 4.9711 26.203 +95.7417 5.11707 26.9724 +96.3614 5.32023 28.0433 +96.1086 5.47678 28.8685 +95.8486 5.63288 29.6913 +96.4371 5.84041 30.7852 +97.0135 6.05028 31.8915 +96.632 6.20178 32.69 +96.338 6.35872 33.5173 +96.1306 6.52155 34.3756 +96.4772 6.72336 35.4393 +97.1857 6.95349 36.6523 +96.7634 7.10447 37.4481 +96.5198 7.26857 38.3131 +97.0074 7.4895 39.4776 +96.7451 7.65427 40.3462 +96.383 7.81134 41.1741 +96.105 7.9754 42.0389 +96.5469 8.20099 43.228 +96.1593 8.3577 44.054 +96.5766 8.58601 45.2575 +96.171 8.74277 46.0837 +96.5634 8.9737 47.301 +96.1396 9.13044 48.1272 +96.4181 9.35532 49.3125 +96.8594 9.59929 50.5985 +96.2305 9.73869 51.3333 +96.558 9.97617 52.5851 +96.0873 10.1328 53.4109 +96.3886 10.3726 54.6748 +95.8132 10.5196 55.4493 +96.7742 10.8382 57.1288 +96.3483 11.0049 58.0076 +96.5079 11.2402 59.248 +95.9779 11.3968 60.0732 +96.1116 11.6337 61.3218 +96.3138 11.8821 62.6316 +96.3342 12.1113 63.8395 +96.5052 12.3626 65.1639 +95.9227 12.5191 65.9888 +96.0656 12.772 67.3221 +96.1112 13.0154 68.6052 +95.4982 13.1713 69.4266 +96.2356 13.5168 71.2479 +96.3131 13.7749 72.6085 +95.6645 13.9311 73.4315 +95.713 14.1905 74.7993 +95.7444 14.4513 76.1736 +95.6814 14.7013 77.4915 +95.679 14.9642 78.8773 +95.583 15.2161 80.205 +95.6217 15.4933 81.666 +96.091 15.8458 83.5244 +96.1629 16.1387 85.0682 +95.9198 16.3826 86.354 +95.7342 16.6397 87.7091 +95.6043 16.9103 89.1352 +95.4564 17.1817 90.5658 +95.3616 17.4669 92.0694 +95.7423 17.8454 94.0645 +95.4638 18.1068 95.4423 +96.0018 18.5296 97.6707 +95.6813 18.7932 99.0601 +96.0936 19.2071 101.242 +95.7987 19.4864 102.714 +95.418 19.7522 104.115 +95.0197 20.0183 105.518 +95.391 20.4535 107.812 +95.5338 20.8489 109.896 +95.004 21.1033 111.237 +95.2209 21.5303 113.488 +95.2791 21.9307 115.598 +94.809 22.216 117.102 +95.2428 22.7219 119.769 +95.0885 23.0979 121.75 +94.485 23.3707 123.189 +94.9932 23.928 126.126 +94.8098 24.3228 128.207 +94.8869 24.7948 130.695 +94.8695 25.2536 133.114 +94.5898 25.6527 135.217 +94.3918 26.0838 137.49 +94.1604 26.5161 139.768 +94.6038 27.1528 143.124 +94.4573 27.6357 145.67 +94.0607 28.0571 147.891 +94.2065 28.654 151.037 +94.3035 29.2534 154.197 +94.3006 29.8394 157.286 +93.9 30.3145 159.79 +93.8559 30.9203 162.983 +93.8591 31.5607 166.359 +93.714 32.171 169.575 +93.9413 32.9311 173.582 +94.012 33.6612 177.43 +93.749 34.2945 180.769 +93.7462 35.0462 184.731 +93.6799 35.8004 188.706 +99.4911 38.8786 204.932 +116.051 46.3873 244.511 +116.156 47.5072 250.413 +116.123 48.6138 256.246 +116.156 49.7923 262.459 +116.125 50.9915 268.78 +113.006 50.8514 268.041 +110.621 51.0331 268.999 +107.605 50.9164 268.384 +104.894 50.9328 268.47 +101.875 50.7873 267.703 +99.4937 50.9511 268.567 +96.5369 50.8122 267.835 +94.1218 50.9496 268.559 +92.0184 51.2599 270.195 +91.9635 52.7548 278.074 +91.5048 54.0934 285.13 +90.5475 55.2028 290.978 +91.1973 57.3853 302.482 +91.043 59.1798 311.941 +91.0481 61.1936 322.556 +90.7678 63.1397 332.814 +89.4357 64.4579 339.762 +87.5515 65.4509 344.996 +87.8688 68.2188 359.586 +87.1235 70.3388 370.761 +87.0953 73.2257 385.977 +86.6992 76.0264 400.74 +89.2969 81.8082 431.216 +87.4668 83.8715 442.092 +85.9423 86.4297 455.577 +85.296 90.1641 475.261 +85.3791 95.0974 501.265 +88.2603 103.867 547.489 +88.2274 110.034 579.999 +96.0434 127.376 671.408 +89.9325 127.324 671.135 +86.4176 131.184 691.48 +85.7741 140.32 739.636 +83.581 148.221 781.284 +84.1238 162.842 858.349 +75.8691 161.635 851.99 +69.0597 163.555 862.11 +60.4649 161.17 849.536 +53.5884 163.308 860.809 +45.2287 160.858 847.892 +38.0623 162.489 856.492 +30.0729 160.515 846.084 +22.8001 162.29 855.444 +14.9969 160.141 844.113 +7.59558 162.228 855.114 +4.79616e-14 159.997 843.357 +-7.57463 161.781 852.757 +-14.9654 159.805 842.344 +-22.719 161.713 852.399 +-29.9193 159.695 841.764 +-37.8398 161.54 851.486 +-44.9095 159.722 841.907 +-53.0084 161.541 851.492 +-59.8301 159.478 840.617 +-68.2123 161.548 851.531 +-74.7796 159.314 839.756 +-83.2037 161.06 848.96 +-89.8422 159.325 839.812 +-98.5434 161.21 849.747 +-104.966 159.341 839.899 +-113.975 161.364 850.559 +-120.524 159.843 842.544 +-128.062 159.715 841.867 +-135.394 159.335 839.864 +-146.463 163.134 859.892 +-147.514 155.933 821.933 +-147.921 148.76 784.122 +-160.547 153.947 811.467 +-174.148 159.543 840.964 +-114.123 100.074 527.496 +-117.786 99.0292 521.989 +-122.396 98.8157 520.864 +-127.975 99.3559 523.712 +-792.705 592.604 3123.65 +-820.42 591.291 3116.74 +-848.072 589.935 3109.58 +-875.66 588.533 3102.2 +-903.181 587.087 3094.57 +-930.633 585.594 3086.7 +-163.523 99.6929 525.488 +-143.527 84.8465 447.232 +-145.454 83.4398 439.817 +-146.753 81.7508 430.914 +-151.585 82.0552 432.518 +-1093.78 575.713 3034.62 +-1120.7 573.912 3025.13 +-1147.52 572.067 3015.4 +-144.996 70.4046 371.108 +-145.501 68.8481 362.903 +-144.935 66.8632 352.441 +-146.912 66.1083 348.462 +-150.979 66.2959 349.45 +-1306.58 560.09 2952.27 +-1332.75 557.943 2940.95 +-1358.83 555.754 2929.42 +-1384.62 553.456 2917.3 +-1410.57 551.216 2905.5 +-144.093 55.066 290.257 +-144.657 54.0789 285.054 +-142.78 52.2307 275.311 +-143.696 51.4508 271.201 +-146.71 51.429 271.086 +-142.527 48.928 257.903 +-135.698 45.6295 240.516 +-110.254 36.3224 191.458 +-109.95 35.496 187.102 +-110.796 35.0589 184.798 +-112.072 34.7655 183.251 +-113.487 34.5182 181.948 +-114.728 34.2216 180.385 +-116.54 34.0967 179.726 +-118.296 33.9527 178.967 +-120.377 33.8988 178.683 +-122.631 33.8872 178.622 +-126.988 34.4391 181.531 +-417.908 111.244 586.375 +-418.455 109.346 576.371 +-420.09 107.772 568.071 +-423.157 106.59 561.843 +-424.701 105.049 553.72 +-426.255 103.541 545.771 +-427.515 101.992 537.606 +-427.356 100.14 527.845 +-429.7 98.9052 521.336 +-440.675 99.6409 525.214 +-432.789 96.136 506.739 +-434.805 94.8898 500.171 +-436.148 93.5178 492.939 +-437.992 92.2744 486.384 +-440.154 91.1152 480.274 +-442.241 89.9561 474.164 +-443.163 88.579 466.906 +-445.297 87.4627 461.022 +-447.221 86.3194 454.995 +-448.372 85.0436 448.27 +-449.72 83.8234 441.839 +-451.844 82.7621 436.245 +-454.119 81.7392 430.853 +-455.535 80.5741 424.712 +-456.072 79.2707 417.841 +-458.07 78.2362 412.388 +-459.041 77.0392 406.079 +-381.818 62.9634 331.884 +-2472.81 400.661 2111.91 +-383.929 61.1185 322.16 +-384.248 60.0963 316.772 +-383.42 58.9118 310.528 +-382.2 57.6878 304.076 +-383.948 56.9247 300.054 +-384.155 55.9422 294.875 +-142.169 20.3333 107.178 +-142.157 19.9667 105.246 +-143.89 19.8455 104.607 +-142.63 19.3151 101.811 +-142.063 18.8875 99.5572 +-142.041 18.538 97.7153 +-146.118 18.7181 98.6641 +-148.066 18.6152 98.1217 +-495.078 61.0773 321.943 +-497.919 60.2697 317.686 +-500.468 59.4276 313.247 +-501.366 58.3938 307.798 +-502.802 57.43 302.717 +-507.1 56.7926 299.357 +-513.531 56.3818 297.192 +-2837.53 305.354 1609.54 +-2851.72 300.728 1585.16 +-2865.69 296.077 1560.64 +-2879.44 291.404 1536.01 +-404.655 40.1035 211.389 +-405.364 39.3319 207.321 +-2919.38 277.256 1461.43 +-2932.25 272.497 1436.35 +-379.83 34.5299 182.01 +-380.44 33.8224 178.28 +-380.377 33.0606 174.265 +-379.363 32.2243 169.856 +-379.669 31.5074 166.078 +-380.672 30.8515 162.62 +-380.629 30.1145 158.736 +-381.1 29.423 155.091 +-380.794 28.6763 151.155 +-380.355 27.9261 147.2 +-380.527 27.2262 143.511 +-380.289 26.5017 139.692 +-380.294 25.7994 135.99 +-381.393 25.1735 132.691 +-381.044 24.4552 128.905 +-380.847 23.7517 125.197 +-381.944 23.1312 121.926 +-381.678 22.4306 118.233 +-380.896 21.7055 114.411 +-381.035 21.0375 110.89 +-380.756 20.3501 107.267 +-379.574 19.6204 103.42 +-379.899 18.9734 100.01 +-380.482 18.3407 96.6749 +-381.423 17.7256 93.433 +-380.877 17.0436 89.8381 +-380.881 16.3899 86.3924 +-381.048 15.7456 82.996 +-380.402 15.0709 79.4399 +-380.309 14.4219 76.0188 +-379.497 13.7494 72.4741 +-380.421 13.1418 69.2713 +-380.727 12.5128 65.956 +-381.594 11.9023 62.7379 +-380.556 11.2345 59.2179 +-380.771 10.6068 55.9094 +-381.253 9.98709 52.6426 +-380.913 9.34714 49.2694 +-379.847 8.69313 45.8221 +-380.041 8.07074 42.5414 +-379.609 7.43669 39.1993 +-380.64 6.83146 36.0091 +-380.945 6.21209 32.7443 +-379.327 5.56444 29.3305 +-381.069 4.96674 26.18 +-380.689 4.33989 22.8759 +-380.478 3.71662 19.5906 +-381.037 3.10086 16.3449 +-148.31 0.965332 5.08833 +-145.05 0.707962 3.73172 +-147.078 0.47851 2.52226 +-144.794 0.235523 1.24146 +95.3 -1.77636e-15 -2.27374e-13 +96.1963 0.163908 0.823336 +96.3853 0.328484 1.65003 +96.167 0.491673 2.46976 +96.3413 0.656868 3.29956 +96.3082 0.820992 4.12398 +96.2679 0.985054 4.94809 +97.0187 1.15857 5.81972 +97.1627 1.32656 6.66352 +95.9034 1.47367 7.40251 +96.8301 1.65404 8.3085 +96.9516 1.8227 9.15571 +96.8664 1.98782 9.98516 +96.7739 2.15278 10.8138 +96.674 2.31759 11.6417 +96.6659 2.48476 12.4814 +96.4521 2.64666 13.2946 +96.3301 2.81088 14.1195 +96.0033 2.96879 14.9128 +95.7683 3.12903 15.7177 +96.5112 3.3226 16.69 +96.2607 3.48337 17.4975 +96.1013 3.64724 18.3207 +95.9346 3.81083 19.1425 +95.8585 3.9782 19.9832 +95.5794 4.13715 20.7816 +96.2678 4.33938 21.7975 +96.1674 4.50778 22.6434 +96.0593 4.6762 23.4894 +96.4275 4.86901 24.4579 +96.496 5.04828 25.3584 +96.1703 5.20729 26.1571 +95.9339 5.37095 26.9792 +96.3614 5.57301 27.9942 +96.1086 5.73699 28.8179 +95.8486 5.90051 29.6393 +96.6273 6.12997 30.7919 +96.16 6.28198 31.5555 +96.7266 6.50279 32.6646 +96.4322 6.66734 33.4912 +97.0702 6.89818 34.6507 +96.7582 7.0633 35.4802 +96.4389 7.22789 36.3069 +96.8565 7.44919 37.4185 +96.6126 7.62124 38.2828 +97.0074 7.84534 39.4085 +96.7451 8.01794 40.2755 +96.383 8.18247 41.1019 +96.105 8.35433 41.9652 +96.5469 8.59063 43.1522 +96.1593 8.7548 43.9768 +96.5766 8.99395 45.1782 +96.171 9.15815 46.003 +96.5634 9.40006 47.2181 +96.1396 9.56425 48.0428 +96.4181 9.79981 49.2261 +96.8594 10.0554 50.5098 +96.3184 10.2107 51.2901 +96.7329 10.4691 52.5879 +96.0873 10.6143 53.3173 +96.3886 10.8654 54.579 +96.6748 11.1184 55.8498 +96.8599 11.3632 57.0792 +96.3483 11.5278 57.906 +96.5927 11.7846 59.1962 +96.737 12.0327 60.4422 +96.1955 12.197 61.2678 +96.3138 12.4467 62.5218 +96.3342 12.6867 63.7276 +96.5876 12.961 65.1052 +95.9227 13.1139 65.8731 +96.147 13.3902 67.2611 +96.1112 13.6338 68.485 +96.3021 13.9132 69.8884 +95.6765 14.0767 70.7098 +95.6784 14.3343 72.0036 +96.4525 14.7132 73.9067 +95.7912 14.8769 74.7294 +95.7444 15.1379 76.0401 +95.6814 15.3998 77.3557 +95.679 15.6752 78.7391 +95.6591 15.9517 80.1282 +95.6217 16.2294 81.5229 +95.4919 16.4952 82.8581 +95.4198 16.7748 84.2629 +95.9198 17.161 86.2027 +95.8073 17.4436 87.6224 +95.6769 17.7272 89.0466 +96.1757 18.1336 91.0883 +95.9322 18.4063 92.458 +95.813 18.7071 93.969 +95.5339 18.981 95.345 +95.3071 19.2695 96.794 +95.7501 19.7003 98.9581 +95.4116 19.9768 100.347 +95.7987 20.4122 102.534 +95.4849 20.7053 104.006 +95.6823 21.1157 106.068 +95.391 21.4253 107.623 +95.5338 21.8394 109.703 +95.1326 22.136 111.193 +95.1573 22.5382 113.213 +95.1532 22.9422 115.243 +95.307 23.3938 117.511 +94.7503 23.6785 118.941 +94.6015 24.0713 120.914 +94.6655 24.5278 123.207 +94.5173 24.9394 125.275 +94.9861 25.5259 128.221 +95.003 26.0046 130.626 +94.7548 26.4215 132.72 +94.5898 26.8715 134.98 +94.5036 27.3553 137.411 +94.2708 27.8085 139.687 +94.2226 28.3283 142.298 +94.3498 28.9159 145.25 +94.5376 29.5392 148.38 +94.2065 30.0154 150.772 +94.3035 30.6433 153.926 +93.9454 31.1394 156.419 +93.9 31.7548 159.51 +93.8559 32.3894 162.697 +93.8591 33.0602 166.067 +93.714 33.6995 169.278 +93.5187 34.3405 172.498 +93.6426 35.122 176.424 +94.1576 36.0805 181.238 +93.7015 36.6938 184.319 +93.8553 37.5716 188.729 +97.1664 39.7742 199.792 +116.051 48.5913 244.082 +116.197 49.7821 250.064 +116.123 50.9235 255.797 +116.156 52.158 261.999 +116.047 53.3783 268.128 +113.351 53.4297 268.386 +110.958 53.6208 269.347 +107.605 53.3356 267.914 +105.217 53.5168 268.824 +102.191 53.3649 268.061 +99.4937 53.3719 268.096 +96.8374 53.392 268.197 +94.1218 53.3703 268.088 +92.2405 53.8251 270.372 +91.9326 55.2427 277.494 +91.595 56.7194 284.911 +91.4539 58.4044 293.375 +91.1973 60.1118 301.952 +91.0155 61.9729 311.3 +91.0748 64.1198 322.085 +90.742 66.1209 332.136 +89.636 67.6717 339.926 +87.3096 68.3713 343.441 +87.542 71.1943 357.621 +87.2585 73.7948 370.684 +87.052 76.6665 385.109 +86.5952 79.5429 399.557 +89.3168 85.7142 430.557 +87.5813 87.9714 441.896 +85.6507 90.2291 453.236 +85.1397 94.2748 473.558 +85.2141 99.423 499.419 +88.4011 108.975 547.401 +88.0796 115.069 578.012 +95.7928 133.08 668.484 +90.0761 133.587 671.028 +86.4054 137.398 690.172 +85.5137 146.541 736.099 +84.3858 156.759 787.426 +82.1877 166.653 837.125 +73.0975 163.13 819.428 +66.9727 166.148 834.591 +58.2048 162.516 816.348 +51.9218 165.747 832.576 +43.5802 162.359 815.555 +37.0459 165.665 832.162 +29.0154 162.229 814.903 +22.1326 165.024 828.943 +14.4733 161.893 813.216 +7.36956 164.879 828.216 +3.90799e-14 161.82 812.849 +-7.36171 164.703 827.333 +-14.4506 161.639 811.941 +-22.0776 164.614 826.885 +-28.9177 161.682 812.158 +-36.745 164.319 825.401 +-43.376 161.598 811.735 +-51.4456 164.227 824.94 +-57.7863 161.348 810.478 +-66.2352 164.319 825.401 +-72.1998 161.126 809.366 +-80.913 164.068 824.141 +-86.7064 161.069 809.079 +-95.7133 164.019 823.897 +-101.347 161.156 809.516 +-110.608 164.036 823.981 +-116.446 161.773 812.611 +-126.614 165.411 830.886 +-130.372 160.715 807.297 +-142.304 166.032 834.009 +-146.854 162.611 816.823 +-148.212 156.135 784.291 +-156.139 156.835 787.807 +-653.189 626.843 3148.74 +-114.164 104.867 526.764 +-117.981 103.906 521.937 +-122.778 103.834 521.576 +-128.045 104.134 523.08 +-792.705 620.76 3118.18 +-820.42 619.385 3111.28 +-848.072 617.964 3104.14 +-875.66 616.495 3096.76 +-903.181 614.98 3089.15 +-930.633 613.416 3081.29 +-163.904 104.672 525.786 +-143.828 89.064 447.384 +-145.732 87.5714 439.886 +-147.071 85.82 431.089 +-151.975 86.1754 432.874 +-1093.78 603.066 3029.3 +-1120.7 601.18 3019.83 +-1147.52 599.247 3010.12 +-145.103 73.8044 370.732 +-145.208 71.9738 361.536 +-144.973 70.0582 351.914 +-146.989 69.2854 348.032 +-151.565 69.7154 350.192 +-1306.58 586.701 2947.1 +-1332.75 584.452 2935.8 +-1358.83 582.159 2924.29 +-1384.79 579.822 2912.55 +-435.247 178.165 894.952 +-144.136 57.6997 289.835 +-144.613 56.6307 284.466 +-142.825 54.7296 274.916 +-144.019 54.0166 271.334 +-147.038 53.9932 271.217 +-150.687 54.1866 272.189 +-412.137 145.168 729.205 +-110.303 38.0652 191.208 +-110.15 37.25 187.113 +-110.796 36.7246 184.474 +-112.124 36.4339 183.014 +-113.434 36.1416 181.545 +-115.151 35.9801 180.734 +-116.54 35.7168 179.411 +-118.405 35.5986 178.818 +-120.267 35.477 178.207 +-122.967 35.5943 178.796 +-127.498 36.2203 181.941 +-417.564 116.434 584.866 +-418.687 114.605 575.68 +-420.619 113.034 567.791 +-423.871 111.842 561.804 +-425.242 110.18 553.455 +-426.803 108.6 545.515 +-428.069 106.976 537.359 +-428.166 105.097 527.918 +-429.889 103.65 520.651 +-438.958 103.968 522.25 +-433.239 100.808 506.377 +-434.741 99.3834 499.22 +-436.738 98.0936 492.741 +-438.191 96.7023 485.752 +-440.355 95.4878 479.652 +-442.039 94.1869 473.117 +-443.367 92.8303 466.303 +-445.641 91.6889 460.569 +-447.846 90.5469 454.833 +-448.932 89.1956 448.045 +-450.356 87.9302 441.689 +-451.844 86.6943 435.48 +-454.407 85.6771 430.371 +-456.115 84.5097 424.507 +-456.73 83.1569 417.711 +-458.365 82.0061 411.931 +-459.412 80.7649 405.696 +-383.84 66.3042 333.057 +-382.713 64.956 326.285 +-383.929 64.0224 321.595 +-384.018 62.914 316.027 +-382.88 61.624 309.548 +-382.744 60.5146 303.975 +-382.461 59.3984 298.368 +-140.818 21.4808 107.902 +-142.486 21.347 107.23 +-142.237 20.9271 105.12 +-143.89 20.7884 104.424 +-142.711 20.2441 101.69 +-142.714 19.8755 99.8378 +-142.123 19.43 97.6003 +-146.694 19.6847 98.8796 +-147.9 19.4778 97.84 +-495.829 64.0763 321.866 +-497.919 63.1332 317.129 +-499.625 62.1461 312.17 +-501.366 61.1683 307.259 +-503.996 60.3016 302.905 +-509.072 59.7221 299.994 +-2823.13 324.684 1630.95 +-2837.53 319.862 1606.72 +-513.597 56.7344 284.987 +-2865.69 310.145 1557.91 +-2879.44 305.25 1533.32 +-2892.98 300.331 1508.62 +-2906.29 295.392 1483.8 +-2919.38 290.429 1458.87 +-2932.25 285.444 1433.83 +-379.561 36.1447 181.561 +-380.44 35.4294 177.968 +-380.377 34.6314 173.959 +-379.363 33.7553 169.559 +-380.035 33.036 165.946 +-380.855 32.3328 162.413 +-380.353 31.5225 158.343 +-380.361 30.7612 154.519 +-379.404 29.9291 150.339 +-379.424 29.1813 146.583 +-380.527 28.5198 143.26 +-380.851 27.8019 139.654 +-379.918 26.9984 135.618 +-381.393 26.3695 132.459 +-380.855 25.6044 128.615 +-381.131 24.8988 125.071 +-379.186 24.0553 120.834 +-380.819 23.4436 117.761 +-380.418 22.7081 114.067 +-380.268 21.9925 110.472 +-380.371 21.2955 106.971 +-379.574 20.5526 103.239 +-380.478 19.9051 99.9869 +-379.32 19.1534 96.2109 +-379.871 18.4922 92.8896 +-380.099 17.8169 89.4976 +-380.297 17.1423 86.1087 +-381.341 16.5064 82.9142 +-380.793 15.8032 79.3823 +-381.093 15.1382 76.042 +-380.773 14.4511 72.5903 +-380.028 13.752 69.0784 +-380.628 13.1039 65.8233 +-379.819 12.4098 62.3365 +-380.853 11.7775 59.1602 +-379.98 11.0877 55.6955 +-380.956 10.4535 52.5095 +-379.723 9.76065 49.0294 +-381.336 9.14185 45.9211 +-380.041 8.45419 42.4669 +-380.604 7.81043 39.2331 +-379.943 7.14294 35.8802 +-380.546 6.50043 32.6527 +-380.523 5.84719 29.3714 +-380.471 5.19454 26.0931 +-380.09 4.53894 22.7999 +-381.177 3.90035 19.5921 +-380.138 3.24054 16.2778 +-3274.5 22.326 112.147 +-145.95 0.746197 3.74828 +-144.678 0.493067 2.47676 +-145.794 0.248417 1.24784 +96 1.77636e-15 -2.27374e-13 +96.0963 0.171151 0.82097 +96.0854 0.342289 1.64188 +96.0671 0.513399 2.46265 +95.9415 0.68376 3.27984 +96.1084 0.856384 4.10787 +96.0682 1.02752 4.92875 +95.9208 1.19732 5.74328 +95.9657 1.36953 6.56933 +95.9034 1.54039 7.38891 +95.8339 1.71113 8.20791 +95.7571 1.88175 9.0263 +96.6675 2.07355 9.94636 +96.5752 2.24564 10.7718 +96.674 2.42252 11.6203 +96.3684 2.58926 12.4201 +96.2541 2.76079 13.2429 +96.1323 2.93212 14.0647 +95.9045 3.10003 14.8701 +95.6697 3.26734 15.6726 +96.2157 3.4624 16.6083 +96.064 3.63363 17.4297 +95.905 3.80457 18.2496 +95.7386 3.97523 19.0682 +95.565 4.1456 19.8855 +95.3841 4.31564 20.7011 +96.0729 4.52667 21.7134 +95.195 4.66424 22.3733 +95.6712 4.86817 23.3515 +95.653 5.04858 24.2168 +96.2062 5.26101 25.2358 +95.9776 5.43214 26.0567 +96.6068 5.65351 27.1186 +96.3614 5.82533 27.9427 +96.1086 5.99674 28.765 +96.7069 6.22291 29.8498 +96.342 6.38859 30.6446 +97.0135 6.62469 31.7771 +96.632 6.79057 32.5728 +96.338 6.96241 33.3971 +96.0366 7.13372 34.2188 +96.4772 7.36167 35.3122 +96.1588 7.5332 36.135 +96.8565 7.78645 37.3498 +97.2616 8.0198 38.4691 +97.0074 8.20054 39.3361 +96.653 8.373 40.1633 +96.383 8.55294 41.0265 +96.105 8.73257 41.8881 +96.5469 8.97958 43.073 +96.1593 9.15118 43.8961 +96.5766 9.40116 45.0952 +96.89 9.64437 46.2618 +96.4739 9.81656 47.0877 +96.8524 10.0714 48.3102 +96.4181 10.2435 49.1357 +96.7711 10.5011 50.3711 +96.2305 10.6633 51.1492 +96.558 10.9233 52.3965 +96.0873 11.0949 53.2194 +96.302 11.3472 54.4298 +95.8993 11.5286 55.3001 +96.7742 11.8672 56.924 +96.2631 12.0391 57.7485 +96.5079 12.3074 59.0356 +95.9779 12.4788 59.8578 +96.1116 12.7382 61.1019 +96.3138 13.0102 62.407 +96.3342 13.2611 63.6106 +95.8459 13.4438 64.4866 +95.9227 13.7076 65.7522 +96.0656 13.9846 67.0807 +96.1112 14.2511 68.3592 +96.3021 14.5431 69.76 +96.2356 14.8001 70.9924 +95.5991 14.9709 71.8119 +95.6645 15.2537 73.1682 +95.7912 15.5505 74.5921 +96.2884 15.9132 76.3317 +95.6814 16.097 77.2136 +95.679 16.3849 78.5945 +95.583 16.6607 79.9174 +96.15 17.0579 81.8227 +96.0161 17.3367 83.16 +96.0143 17.6436 84.6321 +95.8461 17.9242 85.9782 +95.7342 18.2195 87.3947 +95.6043 18.5157 88.8156 +95.4564 18.8129 90.2411 +95.8609 19.2254 92.2195 +95.6715 19.5252 93.6579 +95.5339 19.8404 95.1699 +95.8629 20.2594 97.1796 +95.6125 20.5627 98.6344 +95.3434 20.8664 100.091 +95.6636 21.3062 102.201 +95.3511 21.6123 103.669 +95.0197 21.9188 105.14 +95.3254 22.3799 107.351 +95.5338 22.8282 109.502 +95.1326 23.1383 110.989 +94.7757 23.4642 112.552 +95.1532 23.9809 115.031 +95.307 24.453 117.295 +94.7503 24.7505 118.723 +95.1494 25.3069 121.391 +95.0266 25.7363 123.451 +95.1716 26.2489 125.91 +94.9273 26.6651 127.906 +94.5965 27.0657 129.828 +94.8695 27.6512 132.636 +94.7031 28.1218 134.894 +94.3918 28.5602 136.997 +94.7676 29.2206 140.165 +94.6038 29.7306 142.611 +94.3498 30.2251 144.983 +94.0607 30.7209 147.361 +94.2065 31.3743 150.495 +94.2005 31.9958 153.476 +94.3006 32.6723 156.722 +93.9 33.1925 159.217 +93.8559 33.8558 162.399 +94.2955 34.7179 166.534 +93.714 35.2252 168.967 +93.5187 35.8953 172.181 +93.6426 36.7122 176.1 +93.749 37.5504 180.12 +93.7462 38.3735 184.069 +93.5484 39.1443 187.766 +96.2623 41.1882 197.57 +116.009 50.7727 243.545 +116.197 52.036 249.605 +116.083 53.2105 255.238 +115.199 54.0703 259.363 +112.843 54.2546 260.247 +113.313 55.83 267.803 +110.958 56.0485 268.852 +107.935 55.9212 268.241 +105.504 56.0922 269.061 +102.471 55.9339 268.302 +99.8015 55.9608 268.431 +97.1044 55.9632 268.443 +94.4148 55.9604 268.429 +91.9866 56.1071 269.133 +91.9326 57.7439 276.984 +91.6251 59.307 284.482 +91.5123 61.0876 293.023 +91.2825 62.8922 301.679 +91.043 64.7983 310.822 +91.155 67.0818 321.776 +90.7678 69.1341 331.62 +90.0366 71.0517 340.819 +87.2612 71.4272 342.62 +87.542 74.4177 356.964 +87.326 77.1955 370.289 +86.8572 79.9584 383.542 +86.4497 83.0046 398.154 +89.2371 89.515 429.382 +87.9629 92.355 443.006 +85.4685 94.1137 451.441 +84.9487 98.3221 471.628 +85.0655 103.743 497.633 +88.4011 113.909 546.396 +88.1831 120.42 577.628 +92.6475 134.538 645.346 +88.1704 136.681 655.625 +86.4419 143.679 689.196 +83.9062 150.296 720.935 +84.6367 164.343 788.316 +79.0344 167.515 803.529 +70.4567 164.355 788.374 +64.4071 167.018 801.145 +56.2098 164.052 786.919 +49.9988 166.835 800.267 +42.099 163.942 786.391 +35.6414 166.6 799.141 +27.9894 163.577 784.642 +21.3499 166.396 798.161 +13.9829 163.489 784.218 +7.10864 166.242 797.425 +4.52971e-14 163.371 783.652 +-7.10165 166.079 796.642 +-13.9741 163.387 783.728 +-21.2897 165.926 795.909 +-27.9231 163.19 782.784 +-35.4756 165.825 795.425 +-41.8897 163.127 782.48 +-49.6264 165.592 794.307 +-55.8122 162.891 781.352 +-63.8422 165.553 794.119 +-69.7159 162.627 780.085 +-78.0089 165.341 793.102 +-83.8214 162.76 780.722 +-92.2946 165.322 793.01 +-97.7758 162.518 779.56 +-106.849 165.636 794.515 +-112.229 162.973 781.745 +-121.632 166.098 796.732 +-125.961 162.307 778.549 +-135.471 165.216 792.505 +-142.009 164.366 788.425 +-147.356 162.261 778.326 +-147.858 155.241 744.653 +-653.189 655.224 3142.96 +-114.559 109.994 527.616 +-118.176 108.79 521.839 +-123.093 108.814 521.953 +-128.278 109.047 523.071 +-792.705 648.865 3112.45 +-820.42 647.428 3105.56 +-848.072 645.942 3098.44 +-875.66 644.408 3091.07 +-903.181 642.824 3083.48 +-930.633 641.189 3075.64 +-164.079 109.528 525.383 +-143.918 93.1549 446.842 +-145.949 91.6722 439.73 +-147.325 89.8605 431.04 +-152.398 90.3279 433.282 +-1093.78 630.371 3023.74 +-1120.7 628.399 3014.28 +-1147.52 626.379 3004.59 +-145.354 77.2792 370.69 +-145.244 75.2514 360.963 +-145.01 73.2491 351.359 +-146.644 72.2528 346.58 +-151.877 73.022 350.269 +-1306.58 613.264 2941.69 +-1332.75 610.913 2930.41 +-1358.83 608.517 2918.91 +-1384.79 606.074 2907.2 +-1410.48 603.511 2894.9 +-143.873 60.2021 288.775 +-144.211 59.0304 283.155 +-142.735 57.171 274.236 +-144.481 56.6433 271.704 +-147.743 56.7082 272.016 +-150.496 56.5684 271.345 +-414.561 152.633 732.146 +-109.761 39.5931 189.919 +-109.75 38.7953 186.092 +-110.846 38.4049 184.219 +-112.072 38.0661 182.594 +-113.539 37.8129 181.379 +-114.992 37.5571 180.153 +-116.916 37.4543 179.659 +-118.786 37.3302 179.064 +-120.653 37.2022 178.45 +-123.302 37.3075 178.956 +-127.611 37.8939 181.768 +-419.17 122.173 586.036 +-418.919 119.86 574.942 +-420.913 118.235 567.144 +-423.573 116.824 560.378 +-424.701 115.022 551.735 +-426.559 113.452 544.203 +-428.069 111.82 536.372 +-427.605 109.711 526.26 +-430.518 108.502 520.456 +-434.696 107.62 516.229 +-2105.97 512.213 2456.97 +-435.26 104.007 498.898 +-437.263 102.658 492.427 +-438.787 101.218 485.52 +-440.957 99.9474 479.425 +-442.647 98.5866 472.897 +-444.595 97.3019 466.734 +-445.434 95.7959 459.511 +-447.846 94.6465 453.997 +-449.283 93.3069 447.571 +-450.993 92.0414 441.501 +-452.557 90.7626 435.367 +-454.767 89.627 429.92 +-455.825 88.2799 423.458 +-456.73 86.9219 416.944 +-458.365 85.719 411.174 +-462.385 84.9677 407.57 +-385.188 69.5495 333.612 +-384.449 68.2047 327.162 +-384.917 67.0935 321.832 +-384.401 65.8281 315.762 +-382.88 64.414 308.979 +-383.444 63.3701 303.972 +-382.226 62.0495 297.637 +-141.527 22.5664 108.246 +-142.486 22.3135 107.033 +-142.796 21.9607 105.34 +-143.167 21.6205 103.708 +-142.468 21.1247 101.33 +-142.552 20.7517 99.5409 +-141.877 20.2746 97.2525 +-146.777 20.5876 98.7538 +-148.564 20.4508 98.0979 +-496.079 67.011 321.436 +-498.17 66.0251 316.707 +-500.215 65.0365 311.965 +-502.129 64.035 307.161 +-503.996 63.0318 302.349 +-2808.34 344.379 1651.9 +-2823.13 339.385 1627.95 +-527.496 62.1544 298.14 +-2851.72 329.278 1579.47 +-2865.69 324.187 1555.05 +-2879.44 319.07 1530.5 +-2892.98 313.929 1505.85 +-2906.29 308.766 1481.08 +-2919.38 303.578 1456.19 +-2932.25 298.368 1431.2 +-379.92 37.8169 181.399 +-379.988 36.9896 177.43 +-379.834 36.1475 173.391 +-380.182 35.3597 169.612 +-380.035 34.5318 165.641 +-379.755 33.6991 161.647 +-380.261 32.9417 158.014 +-380.546 32.1695 154.309 +-381.351 31.4448 150.833 +-381.471 30.6672 147.103 +-380.807 29.8329 143.101 +-379.633 28.9678 138.952 +-380.294 28.2488 135.503 +-381.581 27.5771 132.281 +-381.517 26.8102 128.602 +-380.847 26.0067 124.748 +-381.469 25.2958 121.338 +-380.247 24.4681 117.368 +-380.036 23.7125 113.744 +-380.651 23.0115 110.381 +-380.756 22.2821 106.882 +-380.827 21.5541 103.39 +-380.478 20.8064 99.8033 +-380.482 20.0819 96.3283 +-380.162 19.3443 92.7901 +-380.488 18.6427 89.4246 +-380.394 17.923 85.9725 +-380.267 17.2051 82.5289 +-380.597 16.5102 79.1957 +-380.701 15.8074 75.8242 +-379.89 15.0703 72.2889 +-380.913 14.4081 69.1121 +-381.022 13.7114 65.7705 +-380.805 13.0054 62.3837 +-380.26 12.2915 58.9597 +-380.771 11.6138 55.7089 +-381.253 10.9353 52.4539 +-380.219 10.2159 49.0033 +-379.847 9.51845 45.6578 +-380.24 8.8416 42.4111 +-380.604 8.16405 39.1611 +-380.938 7.48592 35.9082 +-379.949 6.78406 32.5416 +-380.523 6.11193 29.3175 +-380.471 5.42973 26.0451 +-380.988 4.75565 22.8118 +-380.278 4.06733 19.51 +-380.637 3.39171 16.2692 +-3274.5 23.3368 111.941 +-147.15 0.786394 3.77215 +-144.678 0.515391 2.47221 +-145.194 0.258595 1.24042 +96.1 1.77636e-15 1.13687e-13 +96.0963 0.17855 0.819392 +96.0854 0.357087 1.63873 +96.0671 0.535595 2.45792 +96.0415 0.714064 3.27694 +96.0085 0.892478 4.09571 +96.0682 1.07194 4.91928 +96.0206 1.25039 5.73822 +95.8659 1.42726 6.5499 +95.9034 1.60699 7.37471 +95.8339 1.78511 8.19214 +96.7525 1.98351 9.10261 +95.8719 2.14538 9.84547 +96.5752 2.34273 10.7511 +96.4755 2.52206 11.5741 +96.3684 2.7012 12.3962 +96.155 2.87719 13.2039 +96.0334 3.05574 14.0232 +95.8058 3.23071 14.8262 +95.6697 3.40859 15.6425 +96.2157 3.61209 16.5764 +95.9657 3.78685 17.3784 +95.905 3.96906 18.2146 +95.7386 4.14709 19.0316 +95.565 4.32483 19.8473 +95.3841 4.50222 20.6614 +95.196 4.67926 21.4738 +95.8757 4.90068 22.4899 +95.8652 5.08894 23.3539 +96.4275 5.30949 24.366 +96.2062 5.48846 25.1874 +95.9776 5.66699 26.0066 +96.6068 5.89793 27.0665 +96.3614 6.07718 27.8891 +96.1086 6.256 28.7097 +95.8486 6.43431 29.528 +96.4371 6.67136 30.6159 +96.16 6.85029 31.437 +96.7266 7.09107 32.542 +96.338 7.26342 33.3329 +95.9426 7.43486 34.1196 +96.4772 7.67994 35.2444 +97.0924 7.93519 36.4158 +96.7634 8.11527 37.2422 +96.5198 8.30272 38.1024 +97.0074 8.55508 39.2605 +96.7451 8.74329 40.1242 +96.383 8.92271 40.9476 +96.105 9.11011 41.8076 +96.5469 9.3678 42.9902 +96.1593 9.54681 43.8117 +96.5766 9.8076 45.0085 +96.171 9.98666 45.8302 +96.5634 10.2505 47.0408 +96.8524 10.5068 48.2173 +96.4181 10.6864 49.0413 +96.7711 10.9551 50.2744 +96.2305 11.1243 51.0509 +96.4706 11.3852 52.2484 +96.8706 11.6689 53.5501 +96.3886 11.8484 54.3741 +96.5886 12.1135 55.5906 +96.7742 12.3802 56.8146 +97.0305 12.6597 58.097 +96.5079 12.8395 58.9221 +95.9779 13.0183 59.7428 +96.1116 13.2889 60.9845 +96.2304 13.5609 62.2331 +96.3342 13.8345 63.4884 +96.5052 14.1215 64.8055 +96.6599 14.4101 66.1302 +96.0656 14.5892 66.9518 +96.1112 14.8672 68.2279 +95.4982 15.0452 69.0447 +96.3154 15.4527 70.9148 +95.5991 15.6181 71.6739 +95.6645 15.9131 73.0276 +95.713 16.2095 74.3879 +95.6667 16.4939 75.6931 +95.6814 16.7929 77.0653 +95.679 17.0933 78.4434 +95.507 17.3672 79.7004 +95.5462 17.6836 81.1528 +95.4919 17.9875 82.547 +96.0886 18.4206 84.5349 +95.9198 18.7135 85.8791 +95.7342 19.0072 87.2267 +96.1846 19.4335 89.183 +95.4564 19.6262 90.0677 +95.9322 20.0715 92.1108 +95.7423 20.3844 93.5471 +95.4638 20.683 94.9174 +95.8629 21.1353 96.9929 +95.6125 21.4517 98.4449 +96.0254 21.9243 100.614 +95.7311 22.2431 102.077 +95.418 22.5624 103.542 +95.6823 23.0259 105.669 +95.9158 23.4922 107.809 +95.5338 23.8152 109.291 +95.1326 24.1386 110.776 +95.1573 24.5772 112.788 +95.0903 25.0013 114.735 +94.6845 25.3437 116.306 +94.8119 25.8374 118.572 +95.0885 26.3841 121.081 +94.5451 26.7129 122.589 +94.6363 27.2298 124.962 +94.5159 27.6974 127.107 +95.1191 28.3919 130.295 +94.8695 28.8467 132.382 +94.6465 29.32 134.554 +94.3918 29.795 136.733 +94.7124 30.4663 139.814 +94.0592 30.8374 141.517 +94.2961 31.5138 144.621 +94.0607 32.049 147.078 +94.2065 32.7308 150.206 +93.8399 33.2513 152.595 +94.4021 34.1215 156.588 +93.9 34.6276 158.911 +93.8559 35.3195 162.086 +93.8107 36.0326 165.359 +94.0957 36.8978 169.33 +93.8943 37.5977 172.541 +93.5964 38.2805 175.675 +93.7944 39.1928 179.861 +93.7462 40.0325 183.715 +93.6361 40.8748 187.58 +95.4013 42.5846 195.427 +116.051 52.9872 243.166 +116.156 54.2663 249.036 +114.903 54.947 252.16 +115.518 56.564 259.581 +110.616 55.4831 254.62 +112.203 57.6731 264.67 +110.958 58.4717 268.335 +108.191 58.4775 268.362 +105.504 58.5173 268.544 +102.821 58.5516 268.702 +100.075 58.5403 268.65 +97.1044 58.3827 267.927 +94.7078 58.5609 268.745 +91.701 58.3512 267.782 +92.2416 60.4428 277.381 +91.6551 61.8912 284.028 +91.5123 63.7287 292.46 +91.2825 65.6112 301.099 +91.043 67.5998 310.225 +91.0748 69.9205 320.875 +90.7161 72.0819 330.795 +90.4122 74.4327 341.582 +87.2612 74.5153 341.962 +87.0051 77.1588 354.093 +86.9886 80.2219 368.15 +86.7923 83.3529 382.519 +86.3873 86.5306 397.102 +89.277 93.4267 428.749 +88.1538 96.5569 443.114 +85.6325 98.3707 451.438 +85.0876 102.741 471.492 +84.983 108.123 496.194 +88.2916 118.687 544.67 +88.1831 125.627 576.518 +90.2677 136.749 627.562 +87.5439 141.577 649.716 +85.601 148.433 681.179 +84.0987 157.154 721.201 +82.6925 167.51 768.727 +76.6574 169.501 777.865 +68.6526 167.071 766.711 +62.375 168.741 774.377 +54.8704 167.067 766.693 +48.4481 168.65 773.958 +41.0262 166.671 764.877 +34.5553 168.506 773.3 +27.3054 166.479 763.995 +20.6772 168.119 771.524 +13.6164 166.087 762.195 +6.88611 168 770.978 +3.81917e-14 165.878 761.237 +-6.87215 167.66 769.415 +-13.6059 165.959 761.609 +-20.6353 167.779 769.962 +-27.1902 165.777 760.773 +-34.3808 167.655 769.395 +-40.7906 165.714 760.486 +-48.1795 167.715 769.667 +-54.3752 165.558 759.772 +-61.7708 167.107 766.877 +-68.0076 165.501 759.508 +-75.6127 167.191 767.263 +-81.6158 165.329 758.719 +-89.4305 167.117 766.925 +-95.2653 165.191 758.084 +-103.494 167.372 768.093 +-108.903 164.98 757.118 +-117.523 167.425 768.337 +-122.66 164.887 756.689 +-131.031 166.711 765.059 +-137.443 165.957 761.603 +-146.736 168.564 773.564 +-147.056 161.074 739.194 +-156.105 163.361 749.689 +-114.643 114.833 526.985 +-118.544 113.846 522.457 +-123.296 113.705 521.807 +-128.722 114.155 523.872 +-792.705 676.917 3106.47 +-820.42 675.419 3099.59 +-848.072 673.869 3092.48 +-875.66 672.268 3085.13 +-903.181 670.615 3077.55 +-930.633 668.91 3069.73 +-164.254 114.386 524.934 +-143.858 97.1416 445.797 +-146.196 95.7975 439.629 +-147.325 93.7455 430.212 +-152.398 94.233 432.449 +-1093.78 657.624 3017.93 +-1120.7 655.567 3008.49 +-1147.52 653.459 2998.82 +-145.426 80.6601 370.161 +-144.915 78.3266 359.452 +-144.86 76.3369 350.321 +-147.371 75.7502 347.629 +-151.994 76.2377 349.866 +-1306.58 639.778 2936.03 +-1332.75 637.325 2924.78 +-1358.83 634.825 2913.31 +-1384.79 632.277 2901.61 +-417.467 186.346 855.17 +-144.093 62.9006 288.66 +-144.167 61.5634 282.523 +-142.78 59.6619 273.797 +-144.804 59.2243 271.789 +-147.743 59.1598 271.493 +-409.593 160.614 737.081 +-415.046 159.418 731.594 +-110.007 41.3974 189.979 +-109.8 40.4909 185.819 +-110.948 40.1019 184.033 +-112.587 39.8943 183.081 +-113.957 39.5928 181.697 +-115.522 39.3614 180.635 +-116.916 39.0735 179.314 +-119.113 39.0512 179.212 +-120.874 38.8817 178.434 +-123.638 39.0263 179.097 +-129.367 40.0759 183.914 +-420.317 127.804 586.512 +-419.674 125.268 574.871 +-420.795 123.312 565.896 +-423.871 121.96 559.694 +-425.363 120.182 551.534 +-426.62 118.374 543.234 +-428.069 116.654 535.342 +-427.294 114.371 524.865 +-430.896 113.292 519.912 +-431.261 111.386 511.166 +-704.11 178.658 819.886 +-435.26 108.504 497.939 +-437.067 107.048 491.26 +-438.787 105.594 484.587 +-441.359 104.363 478.939 +-442.647 102.849 471.988 +-444.39 101.462 465.624 +-446.26 100.123 459.478 +-447.429 98.6466 452.704 +-449.563 97.4015 446.99 +-450.993 96.0206 440.653 +-453.271 94.8358 435.215 +-454.767 93.5019 429.094 +-456.115 92.155 422.913 +-457.169 90.7669 416.542 +-458.365 89.4249 410.384 +-2434.91 466.785 2142.14 +-2453.95 462.241 2121.29 +-382.713 70.8324 325.06 +-383.016 69.6484 319.627 +-382.792 68.3867 313.836 +-384.809 67.5374 309.939 +-383.444 66.1098 303.388 +-381.913 64.6791 296.822 +-141.763 23.5812 108.218 +-142.566 23.291 106.886 +-142.716 22.8971 105.078 +-144.051 22.6944 104.148 +-142.306 22.0129 101.02 +-142.47 21.6365 99.293 +-142.451 21.2366 97.4579 +-147.024 21.5138 98.7302 +-494.604 71.0295 325.965 +-496.079 69.9081 320.819 +-498.674 68.949 316.417 +-499.962 67.814 311.208 +-501.875 66.7696 306.416 +-503.996 65.7568 301.768 +-2808.34 359.267 1648.73 +-506.983 63.5824 291.789 +-2837.53 348.799 1600.69 +-2851.72 343.514 1576.44 +-2865.69 338.202 1552.06 +-2879.44 332.865 1527.56 +-2892.98 327.501 1502.95 +-2906.29 322.115 1478.23 +-2919.38 316.703 1453.39 +-384.106 40.7738 187.117 +-381.538 39.6201 181.822 +-381.523 38.7446 177.805 +-380.015 37.7284 173.141 +-380.182 36.8885 169.287 +-380.035 36.0247 165.323 +-379.755 35.156 161.336 +-379.432 34.291 157.366 +-380.916 33.5928 154.162 +-380.794 32.7563 150.323 +-381.471 31.993 146.821 +-380.154 31.0692 142.581 +-381.788 30.3917 139.472 +-380.576 29.4918 135.342 +-381.487 28.7623 131.995 +-381.233 27.9484 128.259 +-381.7 27.1917 124.787 +-381.469 26.3895 121.105 +-380.247 25.5259 117.142 +-380.036 24.7377 113.525 +-381.418 24.0547 110.391 +-380.371 23.222 106.569 +-380.152 22.4462 103.009 +-379.609 21.6563 99.3839 +-379.901 20.9181 95.9964 +-380.453 20.1961 92.6827 +-379.613 19.4039 89.0475 +-379.907 18.6739 85.6974 +-381.927 18.0273 82.7299 +-380.988 17.2417 79.1249 +-380.505 16.4823 75.6396 +-380.97 15.7666 72.3551 +-380.421 15.0116 68.8903 +-381.121 14.3079 65.661 +-380.41 13.5536 62.1993 +-380.853 12.8429 58.9381 +-379.683 12.0813 55.443 +-380.659 11.3902 52.2715 +-380.021 10.652 48.8836 +-380.443 9.94553 45.6415 +-380.836 9.23831 42.3959 +-380.902 8.5237 39.1165 +-379.943 7.78914 35.7455 +-380.248 7.08292 32.5045 +-381.221 6.38788 29.3149 +-381.069 5.67339 26.036 +-380.689 4.95736 22.75 +-381.077 4.2521 19.5135 +-381.037 3.54204 16.255 +-3274.5 24.3458 111.726 +-148.849 0.829867 3.80838 +-146.178 0.543247 2.49304 +-146.694 0.272562 1.25083 +95.3 -1.77636e-15 -2.27374e-13 +95.9963 0.185741 0.816897 +95.9854 0.371468 1.63373 +96.0671 0.557747 2.45299 +95.9415 0.742824 3.26696 +96.0085 0.929391 4.08749 +95.9683 1.11511 4.90431 +96.0206 1.30211 5.7267 +95.9657 1.48784 6.54355 +95.8038 1.67172 7.35226 +95.8339 1.85895 8.1757 +96.7525 2.06555 9.08434 +95.673 2.22948 9.80533 +96.5752 2.43962 10.7295 +95.4829 2.59935 11.432 +96.3684 2.81292 12.3713 +96.155 2.99619 13.1774 +96.0334 3.18212 13.9951 +95.8058 3.36433 14.7964 +95.6697 3.54957 15.6111 +96.2157 3.76149 16.5432 +96.064 3.94751 17.3613 +95.905 4.13322 18.178 +95.7386 4.31861 18.9934 +95.565 4.5037 19.8074 +95.3841 4.68844 20.6199 +96.0729 4.91769 21.6282 +95.8757 5.10338 22.4448 +95.8652 5.29942 23.307 +95.653 5.48468 24.1218 +96.2062 5.71547 25.1368 +95.9776 5.90137 25.9544 +95.7417 6.08686 26.7702 +96.3614 6.32853 27.8331 +96.1086 6.51475 28.6521 +95.8486 6.70044 29.4687 +96.4371 6.94729 30.5544 +96.16 7.13362 31.3739 +96.632 7.37715 32.445 +96.2437 7.55643 33.2335 +96.0366 7.74995 34.0845 +96.4772 7.99758 35.1736 +96.1588 8.18393 35.9932 +96.7634 8.45092 37.1674 +96.4271 8.63783 37.9895 +97.0074 8.90892 39.1817 +96.653 9.09627 40.0057 +96.383 9.29176 40.8655 +96.9272 9.56808 42.0807 +96.5469 9.75525 42.9039 +96.1593 9.94167 43.7238 +96.5766 10.2132 44.9182 +96.171 10.3997 45.7383 +96.5634 10.6744 46.9464 +96.0505 10.8508 47.7221 +96.5068 11.1386 48.9878 +96.7711 11.4082 50.1735 +96.2305 11.5844 50.9485 +96.558 11.8669 52.1909 +96.0873 12.0532 53.0106 +96.3886 12.3385 54.265 +96.5886 12.6145 55.4791 +96.0885 12.8009 56.2988 +96.2631 13.079 57.5219 +96.4231 13.3587 58.7522 +95.8936 13.5448 59.5705 +96.1116 13.8385 60.8622 +96.2304 14.1218 62.1083 +96.3342 14.4067 63.361 +96.5052 14.7055 64.6754 +95.9227 14.8917 65.4941 +96.0656 15.1926 66.8175 +96.1112 15.4821 68.091 +96.3021 15.7994 69.4862 +96.2356 16.0785 70.7138 +96.3924 16.3991 72.1236 +95.7433 16.5849 72.9412 +95.713 16.88 74.2386 +95.6667 17.1761 75.5412 +95.6043 17.4734 76.8486 +95.679 17.8002 78.286 +95.583 18.0999 79.6038 +96.2255 18.5459 81.5656 +96.0161 18.8342 82.8337 +95.2712 19.0193 83.6475 +95.9198 19.4875 85.7067 +95.7342 19.7933 87.0517 +95.5318 20.0999 88.4 +95.4564 20.438 89.8869 +95.7895 20.8705 91.7893 +95.7423 21.2275 93.3594 +95.5339 21.5543 94.7964 +95.2377 21.8659 96.167 +95.6125 22.3389 98.2474 +95.4116 22.685 99.7695 +95.7311 23.163 101.872 +95.3511 23.4792 103.262 +95.6823 23.9783 105.457 +95.1942 24.2796 106.783 +95.4039 24.7665 108.924 +95.004 25.1028 110.403 +95.2209 25.6108 112.637 +95.1532 26.0524 114.579 +94.6845 26.3919 116.072 +95.1813 27.0107 118.794 +94.5406 27.3171 120.142 +95.0266 27.9594 122.966 +94.5768 28.3381 124.632 +95.0449 29.0044 127.562 +94.4223 29.3496 129.08 +94.7548 30.0034 131.956 +94.6465 30.5326 134.284 +94.5036 31.0639 136.62 +94.8228 31.7634 139.696 +94.5493 32.2802 141.969 +94.7259 32.9668 144.989 +94.0607 33.3746 146.783 +94.102 34.0466 149.738 +93.7369 34.5885 152.121 +93.9454 35.3609 155.519 +93.9 36.0598 158.592 +93.8559 36.7803 161.761 +94.247 37.6974 165.794 +94.048 38.4044 168.904 +93.8474 39.133 172.108 +93.5964 39.8637 175.322 +93.749 40.7941 179.414 +93.7462 41.6882 183.346 +93.6361 42.5653 187.204 +94.7124 44.0258 193.627 +115.502 54.9175 241.529 +115.948 56.4099 248.093 +114.171 56.8549 250.05 +111.45 56.8296 249.939 +115.227 60.1862 264.701 +114.001 61.0214 268.374 +111.595 61.2395 269.334 +108.521 61.0819 268.64 +105.79 61.1032 268.734 +102.786 60.9524 268.071 +100.109 60.9823 268.202 +97.1044 60.7974 267.389 +94.7078 60.983 268.205 +91.7645 60.8065 267.429 +91.8399 62.6687 275.619 +91.6251 64.43 283.365 +91.6585 66.4707 292.34 +91.2257 68.2823 300.308 +91.2084 70.5234 310.164 +90.7809 72.5774 319.198 +90.7161 75.0633 330.131 +90.5875 77.6615 341.558 +86.9467 77.3174 340.045 +86.9817 80.3286 353.288 +87.0561 83.6046 367.696 +86.6624 86.6705 381.18 +86.2418 89.9579 395.638 +89.1573 97.1605 427.315 +88.4972 100.942 443.948 +85.5778 102.374 450.245 +84.8792 106.728 469.393 +84.95 112.552 495.007 +88.1195 123.355 542.518 +88.0205 130.581 574.301 +88.1522 139.068 611.625 +86.9957 146.509 644.352 +84.6626 152.878 672.361 +85.9665 167.288 735.739 +80.9468 170.756 750.99 +74.8268 172.296 757.765 +67.0053 169.806 746.813 +60.9706 171.764 755.423 +53.6009 169.951 747.45 +47.3615 171.686 755.08 +40.0998 169.645 746.107 +33.7483 171.378 753.726 +26.6911 169.465 745.311 +20.2374 171.349 753.6 +13.3354 169.387 744.97 +6.74125 171.269 753.245 +3.9968e-14 169.169 744.01 +-6.73078 171.003 752.075 +-13.3057 169.01 743.312 +-20.2008 171.039 752.236 +-26.5725 168.711 741.997 +-33.6044 170.647 750.511 +-39.8695 168.671 741.822 +-47.0684 170.624 750.409 +-53.2521 168.845 742.586 +-60.4998 170.438 749.591 +-66.4737 168.459 740.888 +-74.0408 170.487 749.806 +-79.8702 168.485 741.001 +-87.5174 170.306 749.012 +-93.1326 168.172 739.626 +-101.053 170.184 748.473 +-106.662 168.269 740.052 +-114.641 170.074 747.989 +-119.985 167.962 738.703 +-128.209 169.867 747.079 +-133.605 167.996 738.853 +-144.094 172.375 758.11 +-147.247 167.954 738.668 +-148.908 162.275 713.69 +-114.663 119.604 526.022 +-118.609 118.62 521.694 +-123.566 118.667 521.9 +-128.979 119.113 523.863 +-792.705 704.915 3100.24 +-820.42 703.354 3093.38 +-848.072 701.74 3086.28 +-875.66 700.073 3078.94 +-903.181 698.352 3071.38 +-930.633 696.576 3063.57 +-164.781 119.499 525.559 +-144.068 101.307 445.554 +-146.134 99.7176 438.561 +-147.547 97.7698 429.995 +-152.626 98.2773 432.227 +-1093.78 684.823 3011.88 +-1120.7 682.681 3002.46 +-1147.52 680.486 2992.8 +-145.569 84.0789 369.782 +-144.915 81.5662 358.731 +-145.085 79.6175 350.161 +-147.869 79.1495 348.102 +-152.229 79.5135 349.703 +-1306.58 666.239 2930.14 +-1332.75 663.685 2918.91 +-1358.83 661.082 2907.46 +-1384.79 658.428 2895.79 +-480.321 223.27 981.947 +-143.873 65.4025 287.642 +-143.765 63.9312 281.171 +-142.825 62.1492 273.334 +-144.943 61.7329 271.503 +-148.165 61.7827 271.723 +-408.83 166.945 734.231 +-1588.38 635.33 2794.2 +-109.761 43.0132 189.174 +-109.95 42.2232 185.699 +-111.049 41.7987 183.832 +-112.536 41.5253 182.63 +-113.905 41.2116 181.25 +-115.522 40.9894 180.273 +-117.024 40.7271 179.119 +-119.167 40.685 178.934 +-120.764 40.4528 177.913 +-123.973 40.7508 179.224 +-418.631 135.049 593.952 +-419.973 132.981 584.855 +-421.416 130.99 576.1 +-422.97 129.076 567.68 +-423.335 126.844 557.866 +-425.543 125.206 550.66 +-427.107 123.41 542.764 +-428.624 121.636 534.959 +-428.166 119.344 524.881 +-430.896 117.977 518.869 +-429.734 115.582 508.335 +-2105.97 556.459 2447.32 +-435.52 113.059 497.237 +-437.591 111.609 490.862 +-438.92 109.995 483.761 +-441.158 108.631 477.761 +-442.647 107.103 471.041 +-444.595 105.707 464.903 +-446.26 104.264 458.556 +-448.471 102.966 452.848 +-449.283 101.367 445.815 +-451.7 100.149 440.458 +-452.985 98.6959 434.068 +-454.767 97.3692 428.233 +-456.115 95.9666 422.064 +-456.95 94.4758 415.508 +-459.103 93.2734 410.22 +-2434.91 486.091 2137.84 +-382.192 74.9697 329.719 +-384.223 74.0529 325.687 +-383.777 72.673 319.618 +-384.248 71.4859 314.397 +-383.883 70.1616 308.573 +-384.143 68.9696 303.331 +-382.695 67.4924 296.834 +-140.896 24.4064 107.34 +-142.566 24.2543 106.671 +-142.157 23.7508 104.457 +-142.926 23.4484 103.127 +-142.225 22.9105 100.761 +-142.633 22.5571 99.2069 +-142.532 22.1277 97.3184 +-148.095 22.5668 99.2498 +-494.189 73.9055 325.039 +-496.079 72.7995 320.175 +-498.925 71.8371 315.942 +-500.722 70.7261 311.056 +-502.129 69.5665 305.956 +-504.337 68.5229 301.366 +-2808.34 374.127 1645.42 +-505.69 66.0432 290.46 +-2837.53 363.225 1597.48 +-2851.72 357.722 1573.27 +-2865.69 352.19 1548.95 +-2879.44 346.632 1524.5 +-2892.98 341.047 1499.94 +-2906.29 335.437 1475.27 +-527.565 59.5988 262.118 +-384.464 42.4999 186.916 +-380.729 41.1712 181.072 +-380.44 40.2325 176.944 +-380.831 39.3731 173.164 +-379.636 38.359 168.704 +-380.309 37.5417 165.11 +-379.755 36.6101 161.012 +-379.708 35.7354 157.166 +-381.377 35.0248 154.04 +-380.887 34.1193 150.058 +-381.192 33.2919 146.419 +-380.154 32.3542 142.295 +-380.195 31.5166 138.611 +-379.448 30.6207 134.671 +-381.204 29.9296 131.631 +-381.517 29.1261 128.097 +-380.373 28.2179 124.103 +-380.518 27.4124 120.561 +-382.154 26.7151 117.494 +-380.896 25.8192 113.554 +-381.035 25.0246 110.059 +-380.371 24.1825 106.355 +-379.959 23.3626 102.749 +-379.609 22.552 99.1844 +-381.063 21.85 96.0968 +-379.871 20.9992 92.3551 +-380.975 20.2789 89.1875 +-381.661 19.5361 85.9203 +-380.658 18.7105 82.2895 +-379.326 17.8765 78.6215 +-380.897 17.1817 75.5656 +-381.558 16.4441 72.3216 +-380.421 15.6325 68.7521 +-381.022 14.8958 65.5124 +-380.016 14.0995 62.0101 +-381.248 13.388 58.8808 +-381.365 12.6367 55.5768 +-379.867 11.8367 52.0581 +-381.111 11.1244 48.9255 +-380.542 10.3596 45.5618 +-380.836 9.6204 42.3109 +-380.305 8.86234 38.9769 +-380.938 8.13256 35.7673 +-379.65 7.3643 32.3884 +-380.523 6.63989 29.2024 +-381.468 5.91423 26.011 +-379.79 5.15022 22.6509 +-380.478 4.421 19.4437 +-380.438 3.68276 16.1969 +-146.711 1.1359 4.99574 +-146.55 0.850841 3.74203 +-145.878 0.564556 2.48294 +-146.294 0.283062 1.24492 +96.1 1.77636e-15 1.13687e-13 +96.0963 0.193305 0.816037 +95.9854 0.386192 1.63031 +95.9671 0.579252 2.44532 +96.0415 0.773071 3.26353 +96.0085 0.966228 4.07894 +96.0682 1.16052 4.89914 +95.9208 1.35231 5.70878 +96.8635 1.56128 6.59095 +95.8038 1.73798 7.33688 +96.7305 1.95071 8.23493 +96.653 2.14521 9.05601 +96.6675 2.34196 9.8866 +96.5752 2.53632 10.7071 +96.4755 2.73047 11.5267 +96.3684 2.92442 12.3455 +96.2541 3.11816 13.1633 +96.0334 3.30825 13.9658 +95.8058 3.49768 14.7655 +95.6697 3.69026 15.5785 +96.2157 3.91058 16.5085 +96.064 4.10397 17.325 +95.905 4.29704 18.14 +95.7386 4.48979 18.9537 +95.565 4.68221 19.766 +95.3841 4.87427 20.5768 +96.0729 5.11261 21.5829 +95.8757 5.30565 22.3979 +95.6712 5.49831 23.2112 +95.4594 5.69055 24.0227 +96.2062 5.942 25.0842 +95.9776 6.13528 25.9001 +96.6068 6.38531 26.9556 +96.3614 6.57937 27.7749 +96.1086 6.77297 28.5922 +96.7069 7.02841 29.6705 +96.4371 7.22266 30.4905 +96.16 7.41637 31.3083 +96.632 7.66956 32.3771 +96.338 7.86364 33.1964 +96.0366 8.05712 34.0132 +96.4772 8.31457 35.1001 +97.0924 8.59092 36.2667 +96.7634 8.78588 37.0897 +96.4271 8.9802 37.91 +97.0074 9.26203 39.0998 +96.7451 9.4658 39.96 +96.383 9.66004 40.78 +96.105 9.86293 41.6365 +96.5469 10.1419 42.8142 +96.1593 10.3357 43.6323 +96.5766 10.6181 44.8242 +96.0811 10.8018 45.6 +96.5634 11.0975 46.8482 +96.8524 11.3751 48.0199 +96.4181 11.5694 48.8405 +95.8881 11.7521 49.6117 +96.3184 12.0545 50.8883 +96.558 12.3372 52.0817 +96.0873 12.531 52.8997 +96.302 12.816 54.1028 +96.5886 13.1145 55.363 +96.0027 13.2964 56.131 +96.1778 13.5854 57.3507 +96.4231 13.8882 58.6293 +95.8936 14.0817 59.4459 +96.0278 14.3745 60.6819 +96.3138 14.6943 62.032 +96.4171 14.9906 63.2828 +96.5052 15.2884 64.5401 +95.9227 15.4819 65.3571 +96.0656 15.7947 66.6777 +96.1112 16.0958 67.9485 +95.4982 16.2885 68.762 +95.6765 16.6187 70.1559 +95.6784 16.9228 71.4396 +96.3737 17.3558 73.2678 +96.3391 17.6638 74.568 +95.6667 17.8569 75.3832 +95.6043 18.166 76.6879 +95.679 18.5058 78.1223 +96.2674 18.952 80.006 +95.6217 19.1601 80.8843 +96.0161 19.5808 82.6604 +95.2712 19.7731 83.4725 +95.9198 20.2599 85.5274 +95.8073 20.5936 86.936 +95.6043 20.9124 88.282 +95.4564 21.2481 89.6989 +95.2903 21.5847 91.1199 +95.7423 22.0689 93.1641 +95.4638 22.3922 94.5287 +95.3071 22.7491 96.0357 +95.6813 23.2409 98.1119 +95.3434 23.5673 99.4898 +95.7311 24.0811 101.659 +95.3511 24.4098 103.046 +95.0197 24.756 104.508 +95.3254 25.2768 106.706 +94.8194 25.5902 108.029 +95.004 26.0978 110.172 +95.1573 26.6081 112.327 +95.1532 27.0851 114.34 +94.6845 27.438 115.83 +95.1197 28.0633 118.47 +95.1494 28.5826 120.662 +94.6053 28.9388 122.165 +95.1716 29.6466 125.154 +94.5746 30.0048 126.666 +94.8869 30.6629 129.444 +94.9269 31.2493 131.919 +94.6465 31.7428 134.003 +94.5036 32.2951 136.334 +94.2156 32.8108 138.511 +94.5493 33.5597 141.672 +94.1886 34.0792 143.866 +94.0607 34.6974 146.475 +94.2065 35.4355 149.591 +93.7369 35.9594 151.803 +94.4021 36.9411 155.947 +93.9 37.489 158.26 +93.9052 38.2582 161.507 +93.9076 39.0505 164.852 +94.0957 39.9469 168.636 +93.9413 40.7248 171.92 +93.5964 41.4438 174.955 +93.7944 42.4315 179.125 +93.7462 43.3406 182.963 +93.6361 44.2525 186.812 +93.9375 45.3962 191.641 +115.924 57.3031 241.906 +115.865 58.6038 247.397 +116.001 60.056 253.527 +113.484 60.1602 253.967 +116.203 63.1021 266.386 +114.001 63.44 267.813 +111.558 63.6454 268.68 +108.484 63.4815 267.988 +105.79 63.5251 268.172 +103.136 63.5843 268.422 +100.383 63.5728 268.373 +97.4048 63.4029 267.656 +94.7078 63.4001 267.644 +91.828 63.2605 267.055 +92.118 65.35 275.876 +91.5649 66.9397 282.587 +91.3369 68.8628 290.705 +91.2825 71.033 299.867 +91.1808 73.2966 309.422 +91.0481 75.6763 319.468 +90.8714 78.1722 330.005 +90.7628 80.896 341.503 +87.0677 80.4938 339.805 +86.9117 83.4452 352.265 +87.0561 86.9184 366.927 +86.5326 89.9707 379.812 +86.2834 93.5684 395 +88.7187 100.515 424.323 +88.5735 105.034 443.4 +85.5596 106.409 449.207 +84.9313 111.026 468.698 +84.8345 116.854 493.3 +88.1352 128.267 541.479 +88.1683 135.985 574.062 +87.9852 144.306 609.189 +86.9696 152.27 642.811 +83.8461 157.404 664.483 +85.8307 173.644 733.04 +79.3371 173.994 734.515 +73.2645 175.386 740.392 +65.7154 173.138 730.904 +59.778 175.079 739.097 +52.5476 173.215 731.229 +46.3114 174.534 736.795 +39.3723 173.17 731.038 +33.0809 174.647 737.275 +26.1537 172.634 728.775 +19.8343 174.592 737.043 +13.0561 172.413 727.844 +6.59901 174.3 735.808 +3.90799e-14 172.439 727.955 +-6.59639 174.231 735.517 +-13.0474 172.298 727.357 +-19.7793 174.109 735.001 +-26.1013 172.288 727.317 +-32.9108 173.749 733.484 +-39.1996 172.41 727.832 +-46.1405 173.889 734.075 +-52.2057 172.088 726.473 +-59.2523 173.539 732.598 +-65.2274 171.852 725.475 +-72.5265 173.619 732.933 +-78.2918 171.701 724.838 +-85.6948 173.369 731.88 +-91.5239 171.818 725.329 +-98.9258 173.204 731.182 +-104.644 171.629 724.533 +-112.128 172.939 730.063 +-117.826 171.478 723.894 +-125.618 173.03 730.448 +-130.948 171.182 722.646 +-140.868 175.195 739.589 +-146.37 173.57 732.729 +-146.854 166.38 702.376 +-114.871 124.57 525.874 +-118.912 123.637 521.933 +-123.746 123.55 521.567 +-129.189 124.036 523.62 +-792.705 732.855 3093.75 +-820.32 731.142 3086.52 +-847.969 729.464 3079.44 +-875.66 727.821 3072.5 +-903.181 726.032 3064.95 +-930.633 724.186 3057.16 +-164.488 124.015 523.529 +-144.038 105.301 444.528 +-146.32 103.801 438.198 +-147.547 101.645 429.095 +-152.919 102.369 432.151 +-1093.78 711.967 3005.57 +-1120.7 709.74 2996.17 +-1147.52 707.458 2986.54 +-145.927 87.6267 369.917 +-144.915 84.7991 357.98 +-144.973 82.7092 349.158 +-147.907 82.3079 347.463 +-152.229 82.6651 348.972 +-1306.58 692.646 2924.01 +-1332.75 689.991 2912.8 +-1358.83 687.285 2901.38 +-523.962 259.003 1093.38 +-478.642 231.308 976.468 +-144.487 68.285 288.266 +-143.319 66.2588 279.712 +-142.916 64.6536 272.936 +-144.62 64.0366 270.331 +-148.306 64.2926 271.412 +-409.307 173.765 733.549 +-110.537 45.9653 194.043 +-109.86 44.7582 188.947 +-110.35 44.0565 185.985 +-111.455 43.6144 184.119 +-112.639 43.2106 182.414 +-113.905 42.845 180.871 +-115.522 42.6141 179.896 +-117.4 42.4774 179.319 +-119.167 42.2976 178.56 +-121.205 42.21 178.19 +-124.868 42.6717 180.139 +-418.064 140.212 591.908 +-417.908 137.572 580.762 +-421.765 136.295 575.369 +-423.617 134.397 567.358 +-424.406 132.206 558.107 +-425.784 130.242 549.819 +-427.716 128.485 542.4 +-427.515 126.13 532.46 +-428.539 124.183 524.239 +-431.084 122.707 518.01 +-428.59 119.843 505.92 +-2105.97 578.515 2442.21 +-436.234 117.733 497.011 +-437.788 116.086 490.056 +-439.317 114.458 483.186 +-441.158 112.936 476.761 +-443.187 111.484 470.63 +-444.39 109.846 463.717 +-446.26 108.396 457.597 +-448.471 107.047 451.9 +-449.914 105.532 445.506 +-451.7 104.118 439.536 +-452.985 102.608 433.16 +-455.702 101.437 428.216 +-456.115 99.7703 421.181 +-457.827 98.409 415.434 +-459.324 97.0172 409.559 +-383.686 79.6324 336.169 +-2453.95 500.439 2112.61 +-2472.81 495.485 2091.7 +-382.56 75.3139 317.938 +-384.248 74.3193 313.74 +-385.118 73.1772 308.918 +-383.444 71.5729 302.146 +-383.4 70.2966 296.758 +-140.818 25.3597 107.056 +-142.566 25.2157 106.448 +-143.195 24.8724 104.999 +-142.765 24.3506 102.796 +-142.225 23.8186 100.55 +-142.633 23.4512 98.9993 +-142.614 23.018 97.1706 +-147.848 23.4221 98.8767 +-494.77 76.9249 324.739 +-496.913 75.8123 320.042 +-498.925 74.6844 315.281 +-500.722 73.5294 310.405 +-502.384 72.3605 305.471 +-504.337 71.2389 300.736 +-525.015 72.7148 306.966 +-506.035 68.7077 290.05 +-2837.53 377.622 1594.13 +-2851.72 371.901 1569.98 +-517.075 66.0666 278.901 +-2879.44 360.371 1521.31 +-2892.98 354.565 1496.8 +-2906.29 348.733 1472.18 +-2919.38 342.874 1447.44 +-384.195 44.1536 186.395 +-380.37 42.7627 180.523 +-380.71 41.8571 176.7 +-380.377 40.885 172.597 +-381.092 40.0324 168.997 +-380.035 39.0016 164.646 +-381.589 38.2449 161.451 +-380.353 37.2147 157.102 +-380.823 36.36 153.494 +-380.516 35.4373 149.599 +-380.541 34.5522 145.862 +-381.648 33.769 142.556 +-380.851 32.8223 138.56 +-380.576 31.9288 134.788 +-381.77 31.1622 131.551 +-381.895 30.3105 127.956 +-381.7 29.4387 124.276 +-380.518 28.499 120.309 +-380.438 27.6493 116.722 +-381.279 26.8695 113.43 +-380.268 25.9639 109.607 +-380.083 25.1219 106.052 +-379.959 24.2886 102.534 +-380.478 23.4996 99.2037 +-380.966 22.7102 95.8714 +-381.035 21.8984 92.4444 +-380.877 21.0773 88.9782 +-380.881 20.2689 85.5655 +-380.755 19.4571 82.1383 +-380.206 18.6282 78.6391 +-379.721 17.8075 75.1747 +-380.381 17.0431 71.9475 +-381.306 16.2899 68.7678 +-380.234 15.4542 65.2402 +-381.002 14.6964 62.041 +-380.853 13.9042 58.6967 +-380.771 13.1172 55.3742 +-380.659 12.3315 52.0575 +-380.913 11.5593 48.7978 +-380.641 10.773 45.4783 +-380.538 9.99388 42.1893 +-380.604 9.22082 38.9258 +-380.938 8.4549 35.6925 +-380.248 7.66822 32.3715 +-379.327 6.88137 29.0498 +-379.673 6.1197 25.8344 +-380.389 5.3628 22.6391 +-380.278 4.59381 19.3928 +-380.138 3.82571 16.1503 +-3274.5 26.3576 111.269 +-148.049 0.893617 3.77241 +-146.078 0.587737 2.48114 +-147.194 0.296093 1.24996 +95.3 -1.77636e-15 -2.27374e-13 +95.9963 0.20045 0.813413 +95.9854 0.400884 1.62676 +95.9671 0.601289 2.43999 +96.0415 0.802481 3.25642 +96.0085 1.00299 4.07006 +95.9683 1.20342 4.8834 +96.9189 1.41836 5.75562 +96.9632 1.62235 6.58338 +95.9034 1.80597 7.32853 +95.8339 2.00615 8.14083 +96.653 2.22682 9.03629 +96.5681 2.42854 9.85488 +96.5752 2.63281 10.6838 +96.4755 2.83435 11.5016 +96.5667 3.04194 12.344 +96.2541 3.23678 13.1347 +96.0334 3.43411 13.9354 +95.8058 3.63074 14.7333 +95.4724 3.82276 15.5125 +95.5264 4.03028 16.3546 +96.064 4.2601 17.2872 +95.905 4.46052 18.1005 +95.7386 4.6606 18.9124 +95.565 4.86034 19.723 +95.3841 5.0597 20.532 +96.0729 5.30711 21.5359 +95.8757 5.5075 22.3491 +95.6712 5.70748 23.1606 +95.4594 5.90704 23.9704 +96.2062 6.16806 25.0296 +95.9776 6.36869 25.8437 +95.7417 6.56886 26.656 +96.3614 6.82967 27.7144 +96.1086 7.03064 28.5299 +95.8486 7.23103 29.3431 +96.342 7.49004 30.3941 +96.16 7.69852 31.2401 +96.5374 7.95353 32.2749 +96.4322 8.17077 33.1565 +96.0366 8.36365 33.9392 +96.4772 8.63089 35.0236 +97.0924 8.91775 36.1877 +96.8565 9.12891 37.0446 +97.2616 9.4025 38.1547 +97.0074 9.6144 39.0146 +96.653 9.81658 39.8351 +96.383 10.0275 40.6912 +96.105 10.2382 41.5458 +96.5469 10.5277 42.7209 +96.1593 10.7289 43.5373 +96.5766 11.022 44.7266 +96.171 11.2232 45.5432 +96.5634 11.5197 46.7462 +96.0505 11.71 47.5186 +96.4181 12.0096 48.7341 +96.6828 12.3003 49.9139 +96.2305 12.5017 50.7312 +95.7709 12.7022 51.5447 +96.8706 13.1137 53.2147 +96.302 13.3035 53.985 +96.5886 13.6134 55.2424 +96.0885 13.8146 56.0587 +96.3483 14.1272 57.3273 +96.5079 14.4293 58.5531 +95.8936 14.6174 59.3165 +96.0278 14.9213 60.5498 +96.3138 15.2533 61.897 +96.3342 15.5475 63.0907 +95.7635 15.748 63.9046 +96.6599 16.1944 65.716 +95.3329 16.2706 66.0251 +96.0303 16.6941 67.7435 +96.3021 17.0505 69.1899 +95.6765 17.2509 70.0031 +96.3131 17.6831 71.7569 +95.6645 17.8835 72.5703 +96.3391 18.3358 74.4056 +95.6667 18.5363 75.219 +95.6814 18.8723 76.5826 +95.6023 19.1944 77.8897 +96.2674 19.673 79.8318 +95.5462 19.8733 80.6445 +96.0161 20.3257 82.4804 +95.2712 20.5254 83.2907 +95.33 20.9014 84.8164 +95.8073 21.377 86.7466 +95.6769 21.7245 88.1567 +95.5283 22.073 89.5709 +95.9322 22.5568 91.5339 +95.7423 22.9085 92.9612 +95.5339 23.2611 94.3921 +95.8629 23.7523 96.3854 +95.5436 24.0904 97.7574 +95.4116 24.4814 99.344 +95.7311 24.9973 101.437 +95.3511 25.3385 102.822 +95.0197 25.6979 104.28 +95.1942 26.2022 106.327 +95.4039 26.7277 108.459 +95.004 27.0907 109.932 +95.1573 27.6204 112.082 +95.0903 28.097 114.016 +95.2447 28.6502 116.261 +94.7503 29.0178 117.752 +94.4798 29.4611 119.551 +94.6655 30.0586 121.976 +94.5768 30.5821 124.1 +94.5746 31.1463 126.39 +94.9449 31.8491 129.242 +94.8695 32.4185 131.552 +94.6465 32.9504 133.711 +94.4477 33.5039 135.957 +94.2156 34.059 138.209 +94.4949 34.8163 141.282 +94.2424 35.3958 143.634 +94.0607 36.0174 146.157 +94.2065 36.7836 149.265 +94.2005 37.5122 152.222 +94.3006 38.3054 155.441 +93.9 38.9153 157.916 +93.9052 39.7137 161.156 +93.8107 40.4942 164.323 +94.0957 41.4666 168.269 +93.8943 42.2531 171.46 +93.5964 43.0205 174.574 +93.749 44.0244 178.648 +93.7462 44.9894 182.564 +93.6799 45.9575 186.493 +93.464 46.8857 190.259 +116.051 59.5482 241.643 +115.99 60.8987 247.123 +116.001 62.3407 252.975 +116.116 63.8972 259.291 +116.243 65.5247 265.895 +114.384 66.0746 268.127 +111.558 66.0667 268.095 +108.851 66.1191 268.307 +106.113 66.1428 268.403 +103.101 65.9808 267.746 +100.691 66.1937 268.61 +97.7053 66.0179 267.896 +94.9682 65.9932 267.796 +92.4308 66.0983 268.223 +92.0562 67.7907 275.09 +91.5348 69.4634 281.878 +91.3369 71.4826 290.072 +91.2257 73.6894 299.027 +90.9603 75.901 308.002 +90.8343 78.3708 318.024 +90.9231 81.1923 329.473 +90.8379 84.043 341.041 +86.8983 83.3936 338.406 +86.725 86.4336 350.742 +86.8536 90.0152 365.276 +86.5326 93.3935 378.985 +86.1378 96.9644 393.476 +88.2402 103.776 421.117 +88.8597 109.382 443.865 +85.3773 110.222 447.274 +84.775 115.038 466.817 +84.7519 121.181 491.747 +87.3061 131.894 535.217 +87.8875 140.709 570.987 +87.4981 148.967 604.498 +86.565 157.328 638.427 +84.4189 164.509 667.566 +84.9137 178.324 723.63 +77.6856 176.853 717.659 +71.7597 178.318 723.605 +64.2948 175.84 713.546 +58.6403 178.281 723.453 +51.3198 175.604 712.59 +45.5056 178.021 722.398 +38.4355 175.481 712.091 +32.4397 177.777 721.41 +25.5604 175.136 710.693 +19.4416 177.647 720.879 +12.7664 175.001 710.144 +6.47771 177.605 720.711 +3.81917e-14 174.908 709.766 +-6.47073 177.414 719.934 +-12.7525 174.81 709.367 +-19.4024 177.288 719.423 +-25.4627 174.467 707.976 +-32.3002 177.013 718.306 +-38.2471 174.621 708.599 +-45.2553 177.042 718.424 +-50.978 174.434 707.844 +-58.1774 176.874 717.742 +-63.8067 174.505 708.129 +-71.0984 176.675 716.937 +-76.5253 174.212 706.94 +-83.9968 176.399 715.815 +-89.4399 174.293 707.271 +-97.1115 176.496 716.209 +-102.306 174.177 706.801 +-109.985 176.087 714.55 +-115.245 174.102 706.494 +-123.192 176.144 714.78 +-128.135 173.877 705.581 +-137.351 177.32 719.552 +-143.412 176.533 716.36 +-147.074 172.968 701.892 +-114.996 129.449 525.298 +-119.107 128.551 521.65 +-123.971 128.483 521.377 +-129.329 128.894 523.045 +-792.609 760.642 3086.64 +-820.32 758.958 3079.8 +-847.969 757.216 3072.73 +-875.553 755.416 3065.43 +-903.071 753.56 3057.9 +-930.633 751.736 3050.5 +-165.219 129.305 524.71 +-143.948 109.238 443.283 +-146.35 107.773 437.336 +-147.959 105.807 429.358 +-153.017 106.331 431.485 +-1093.78 739.053 2999.03 +-1120.7 736.741 2989.65 +-1147.52 734.372 2980.04 +-145.641 90.7816 368.386 +-145.281 88.248 358.105 +-145.085 85.9222 348.667 +-148.558 85.815 348.232 +-152.737 86.0962 349.373 +-1306.58 718.997 2917.64 +-1332.75 716.24 2906.46 +-1358.83 713.431 2895.06 +-517.581 265.583 1077.72 +-476.016 238.791 969 +-145.101 71.1838 288.859 +-143.453 68.8437 279.363 +-142.78 67.0494 272.082 +-144.804 66.5577 270.087 +-148.588 66.8654 271.336 +-409.116 180.291 731.611 +-110.44 47.6722 193.451 +-109.958 46.5026 188.705 +-110.45 45.774 185.748 +-111.506 45.2943 183.801 +-112.639 44.8545 182.017 +-113.957 44.4953 180.559 +-115.522 44.2352 179.504 +-117.293 44.0529 178.764 +-119.548 44.0472 178.741 +-121.15 43.7959 177.721 +-124.924 44.3149 179.827 +-417.838 145.468 590.298 +-418.367 142.963 580.134 +-421.126 141.266 573.247 +-422.382 139.103 564.473 +-425.06 137.447 557.75 +-425.784 135.197 548.622 +-427.168 133.202 540.525 +-427.7 130.985 531.529 +-428.539 128.907 523.098 +-431.651 127.543 517.56 +-428.971 124.514 505.268 +-2105.97 600.523 2436.89 +-436.429 122.267 496.15 +-438.182 120.61 489.429 +-439.715 118.92 482.57 +-441.894 117.428 476.517 +-442.984 115.672 469.39 +-445.004 114.183 463.346 +-446.88 112.676 457.234 +-448.471 111.12 450.916 +-450.194 109.616 444.814 +-451.417 108.012 438.304 +-453.913 106.73 433.102 +-455.126 105.163 426.743 +-456.406 103.632 420.532 +-458.486 102.3 415.126 +-459.766 100.805 409.06 +-2434.91 524.583 2128.73 +-2453.95 519.477 2108.01 +-2472.81 514.335 2087.14 +-382.636 78.1947 317.309 +-382.563 76.8084 311.684 +-384.809 75.9001 307.998 +-382.978 74.2053 301.121 +-382.695 72.8369 295.568 +-140.108 26.192 106.285 +-142.566 26.175 106.216 +-143.355 25.8476 104.888 +-143.328 25.3765 102.976 +-142.225 24.7247 100.331 +-142.877 24.385 98.9527 +-143.597 24.0584 97.6273 +-148.095 24.3539 98.8265 +-494.77 79.8514 324.032 +-497.413 78.7756 319.667 +-499.261 77.5779 314.806 +-500.722 76.3267 309.729 +-503.486 75.2782 305.474 +-505.104 74.0615 300.537 +-524.501 75.4072 305.998 +-506.466 71.3824 289.665 +-2837.53 391.988 1590.66 +-2851.72 386.049 1566.56 +-2865.69 380.079 1542.34 +-2879.44 374.081 1518 +-2892.98 368.054 1493.54 +-2906.29 362 1468.97 +-2919.38 355.918 1444.29 +-383.121 45.7051 185.468 +-378.662 44.1903 179.321 +-381.342 43.5215 176.608 +-379.562 42.3495 171.852 +-381.365 41.5851 168.75 +-379.669 40.4466 164.13 +-380.03 39.5378 160.442 +-380.353 38.6305 156.76 +-380.916 37.7524 153.197 +-380.516 36.7855 149.273 +-381.843 35.9894 146.043 +-380.527 34.9508 141.828 +-380.289 34.0207 138.054 +-381.421 33.2172 134.793 +-382.053 32.3716 131.362 +-381.895 31.4636 127.677 +-381.131 30.5132 123.821 +-380.613 29.5906 120.077 +-380.724 28.7227 116.555 +-380.896 27.8637 113.069 +-381.035 27.0062 109.589 +-381.236 26.1568 106.143 +-380.441 25.2447 102.441 +-380.188 24.3749 98.9119 +-380.579 23.5502 95.5654 +-380.162 22.6794 92.0317 +-380.488 21.8569 88.6938 +-380.394 21.0131 85.2699 +-380.267 20.1714 81.8544 +-380.402 19.3468 78.5082 +-380.309 18.5136 75.1272 +-379.497 17.6504 71.6241 +-380.028 16.8529 68.3881 +-380.628 16.0588 65.1655 +-379.128 15.1805 61.6014 +-381.248 14.4482 58.6297 +-380.376 13.602 55.1962 +-380.956 12.8106 51.9847 +-380.318 11.9803 48.6154 +-380.939 11.1916 45.4148 +-379.942 10.3578 42.0315 +-380.902 9.57913 38.8715 +-380.938 8.77656 35.6147 +-380.248 7.95995 32.301 +-380.224 7.16006 29.0551 +-381.069 6.37589 25.873 +-381.287 5.57995 22.6431 +-379.579 4.75982 19.3151 +-379.538 3.96498 16.0897 +-145.211 1.21333 4.9236 +-146.95 0.920723 3.73623 +-145.778 0.608843 2.47065 +-145.794 0.304433 1.23537 +96.1 1.77636e-15 1.13687e-13 +96.0963 0.207995 0.812417 +96.0854 0.415975 1.62478 +96.0671 0.62392 2.437 +96.0415 0.831821 3.24905 +96.0085 1.03966 4.06085 +95.9683 1.24742 4.87234 +95.9208 1.45508 5.68345 +95.8659 1.66263 6.49414 +95.9034 1.872 7.31194 +95.8339 2.0795 8.12241 +96.653 2.30823 9.01583 +95.673 2.49399 9.74141 +96.5752 2.72907 10.6596 +96.674 2.94403 11.4992 +96.3684 3.14666 12.2907 +97.1453 3.3862 13.2263 +95.9345 3.55599 13.8895 +96.6947 3.79841 14.8364 +95.6697 3.97071 15.5094 +96.2157 4.20777 16.4353 +96.064 4.41585 17.2481 +95.905 4.6236 18.0595 +95.7386 4.83099 18.8696 +95.565 5.03804 19.6783 +95.3841 5.24469 20.4855 +95.196 5.45092 21.291 +95.8757 5.70886 22.2985 +95.6712 5.91615 23.1082 +95.4594 6.123 23.9161 +96.2062 6.39357 24.9729 +95.9776 6.60153 25.7852 +95.7417 6.80903 26.5957 +95.4984 7.01598 27.404 +96.1086 7.28768 28.4653 +95.8486 7.4954 29.2766 +96.4371 7.77155 30.3553 +96.16 7.97998 31.1694 +96.7266 8.26047 32.265 +96.338 8.46124 33.0492 +97.0702 8.76273 34.2268 +96.4772 8.94644 34.9443 +96.1588 9.1549 35.7586 +96.8565 9.46267 36.9607 +96.5198 9.67193 37.778 +96.915 9.95641 38.8892 +96.653 10.1755 39.7449 +96.2913 10.3843 40.5605 +96.0136 10.6024 41.4123 +96.5469 10.9126 42.6242 +96.1593 11.1212 43.4388 +96.5766 11.425 44.6254 +96.0811 11.6227 45.3977 +96.4739 11.9298 46.5972 +96.0505 12.1382 47.4111 +96.4181 12.4487 48.6238 +96.6828 12.75 49.8009 +96.3184 12.9706 50.6626 +95.7709 13.1666 51.428 +96.0873 13.4833 52.665 +96.3886 13.8023 53.9112 +96.5025 14.0985 55.0682 +96.0885 14.3197 55.9318 +96.2631 14.6307 57.1469 +96.5079 14.9568 58.4206 +96.6527 15.2717 59.6506 +96.0278 15.4668 60.4127 +96.3138 15.811 61.7569 +95.6709 16.005 62.5146 +95.7635 16.3238 63.76 +95.9227 16.6585 65.0672 +96.0656 16.9951 66.3819 +96.1112 17.319 67.6471 +95.4982 17.5263 68.457 +95.6765 17.8816 69.8447 +96.3131 18.3296 71.5945 +96.3737 18.6748 72.9428 +95.713 18.8827 73.7547 +95.6667 19.214 75.0488 +95.6814 19.5623 76.4093 +95.7556 19.9281 77.838 +95.507 20.2312 79.022 +95.5462 20.5999 80.462 +95.4919 20.9538 81.8444 +95.3455 21.2924 83.1671 +95.33 21.6655 84.6244 +95.7342 22.1417 86.4842 +95.6769 22.5188 87.9571 +95.5283 22.88 89.3682 +95.9322 23.3815 91.3267 +95.7423 23.746 92.7508 +95.604 24.1293 94.2476 +95.3071 24.478 95.6097 +95.6813 25.0072 97.6766 +95.3434 25.3583 99.0484 +95.1231 25.7467 100.565 +95.3511 26.2649 102.589 +95.5498 26.786 104.625 +95.3254 27.1977 106.233 +95.4039 27.7049 108.214 +95.004 28.0811 109.683 +95.2209 28.6493 111.903 +95.1532 29.1434 113.833 +95.2447 29.6977 115.998 +94.6887 30.0591 117.409 +94.5406 30.5581 119.358 +94.6053 31.138 121.623 +94.5173 31.6804 123.742 +94.5746 32.2851 126.104 +94.4804 32.852 128.318 +94.9269 33.6241 131.334 +94.6465 34.1551 133.408 +94.5036 34.7494 135.729 +94.2156 35.3042 137.896 +94.4949 36.0892 140.963 +94.2961 36.7107 143.39 +94.0607 37.3343 145.826 +94.102 38.086 148.762 +93.8399 38.7348 151.296 +94.3006 39.7058 155.089 +93.9 40.338 157.558 +93.8559 41.1441 160.707 +93.4228 41.8011 163.273 +93.714 42.8083 167.207 +93.8943 43.7979 171.072 +93.5964 44.5933 174.179 +93.7944 45.6561 178.33 +93.3446 46.4344 181.37 +93.6361 47.6155 185.983 +92.9043 48.3089 188.692 +115.544 61.4557 240.043 +115.907 63.08 246.387 +115.513 64.3481 251.341 +115.757 66.0287 257.905 +116.086 67.8291 264.937 +114.69 68.6736 268.236 +111.932 68.7123 268.387 +109.107 68.6979 268.331 +106.399 68.7463 268.519 +103.346 68.5558 267.775 +100.691 68.6139 268.002 +97.7053 68.4316 267.29 +95.2612 68.6171 268.015 +92.3674 68.4678 267.432 +92.1489 70.3398 274.744 +91.6251 72.0742 281.518 +91.3077 74.0723 289.322 +91.3961 76.5262 298.907 +91.1257 78.8191 307.863 +90.7542 81.1644 317.024 +90.7161 83.969 327.979 +90.6626 86.9475 339.612 +87.1887 86.7315 338.769 +86.7716 89.642 350.137 +86.8536 93.3063 364.449 +86.4893 96.7597 377.938 +86.1586 100.534 392.679 +87.6222 106.817 417.22 +88.8788 113.405 442.955 +84.6484 113.276 442.452 +84.8098 119.293 465.952 +84.5209 125.269 489.296 +88.1352 138.014 539.077 +87.9023 145.878 569.791 +87.1224 153.75 600.539 +85.5208 161.113 629.298 +86.3322 174.388 681.151 +82.9553 180.581 705.34 +75.3755 177.868 694.743 +70.0632 180.468 704.9 +62.482 177.129 691.858 +57.283 180.521 705.107 +49.8759 176.903 690.972 +44.5044 180.47 704.905 +37.3731 176.869 690.839 +31.659 179.842 702.453 +24.8833 176.731 690.302 +18.9914 179.877 702.59 +12.4209 176.489 689.358 +6.32499 179.758 702.126 +3.55271e-14 176.343 688.785 +-6.31888 179.585 701.448 +-12.4087 176.316 688.68 +-18.9495 179.48 701.041 +-24.8066 176.186 688.171 +-31.6197 179.619 701.582 +-37.1952 176.027 687.55 +-44.2663 179.504 701.134 +-49.5759 175.839 686.817 +-56.8907 179.285 700.279 +-61.9677 175.671 686.163 +-69.584 179.234 700.078 +-74.3511 175.45 685.3 +-82.2874 179.127 699.661 +-86.8563 175.447 685.286 +-94.8795 178.744 698.163 +-99.2583 175.167 684.192 +-107.768 178.845 698.56 +-111.757 175.004 683.558 +-120.518 178.621 697.684 +-124.245 174.763 682.614 +-133.797 179.047 699.35 +-138.298 176.462 689.253 +-653.229 796.324 3110.4 +-115.225 134.449 525.151 +-119.302 133.468 521.32 +-124.42 133.664 522.085 +-129.889 134.186 524.123 +-792.609 788.452 3079.65 +-820.32 786.706 3072.83 +-847.969 784.9 3065.78 +-875.66 783.132 3058.87 +-903.181 781.207 3051.35 +-930.633 779.221 3043.6 +-165.395 134.175 524.079 +-144.158 113.398 442.926 +-146.258 111.643 436.07 +-148.245 109.887 429.214 +-153.636 110.664 432.249 +-1093.78 766.073 2992.24 +-1120.7 763.677 2982.88 +-1147.52 761.222 2973.29 +-145.641 94.1007 367.552 +-144.951 91.2665 356.482 +-145.685 89.4317 349.316 +-148.787 89.0899 347.981 +-152.229 88.9473 347.424 +-1306.58 745.284 2911.04 +-1332.75 742.427 2899.88 +-1358.83 739.515 2888.51 +-1384.79 736.546 2876.91 +-474.983 246.984 964.707 +-145.189 73.831 288.38 +-143.14 71.2054 278.125 +-142.916 69.567 271.725 +-144.666 68.9249 269.217 +-149.057 69.529 271.577 +-410.786 187.646 732.935 +-110.876 49.6105 193.776 +-109.663 48.0733 187.772 +-110.5 47.4691 185.412 +-111.557 46.9716 183.469 +-113.102 46.6859 182.353 +-113.957 46.1221 180.151 +-115.893 45.9998 179.673 +-117.83 45.8729 179.177 +-119.821 45.7617 178.743 +-121.978 45.7074 178.531 +-126.042 46.3463 181.026 +-418.518 151.031 589.92 +-418.94 148.393 579.615 +-419.616 145.905 569.899 +-421.148 143.768 561.549 +-424.406 142.253 555.631 +-426.266 140.299 547.999 +-427.107 138.052 539.225 +-428.254 135.95 531.013 +-428.913 133.737 522.369 +-433.035 132.63 518.046 +-429.544 129.238 504.797 +-433.625 128.17 500.627 +-436.429 126.737 495.027 +-438.182 125.02 488.321 +-439.913 123.324 481.696 +-442.295 121.832 475.871 +-443.795 120.12 469.184 +-445.618 118.521 462.936 +-446.88 116.796 456.199 +-449.097 115.343 450.522 +-449.914 113.552 443.53 +-452.619 112.259 438.477 +-453.627 110.562 431.85 +-455.414 109.076 426.047 +-456.406 107.421 419.58 +-458.12 105.955 413.856 +-459.987 104.541 408.331 +-2434.91 543.762 2123.91 +-2453.95 538.47 2103.23 +-2472.81 533.14 2082.42 +-381.496 80.812 315.647 +-383.482 79.8078 311.725 +-383.883 78.4858 306.561 +-383.91 77.1056 301.17 +-383.165 75.5924 295.26 +-140.739 27.2716 106.521 +-142.486 27.1171 105.918 +-142.956 26.718 104.359 +-143.006 26.2453 102.513 +-142.306 25.6431 100.161 +-142.877 25.2765 98.7287 +-145.399 25.251 98.6289 +-148.013 25.2304 98.5485 +-495.516 82.8959 323.787 +-496.662 81.5327 318.463 +-499.512 80.4546 314.251 +-501.481 79.2371 309.496 +-502.977 77.9516 304.475 +-505.189 76.7822 299.907 +-524.415 78.1512 305.255 +-509.74 74.4706 290.878 +-2837.53 406.319 1587.06 +-515.251 72.3017 282.407 +-2865.69 393.975 1538.85 +-2879.44 387.758 1514.56 +-2892.98 381.51 1490.16 +-2906.29 375.235 1465.65 +-2919.38 368.93 1441.02 +-381.063 47.1216 184.055 +-379.201 45.8711 179.17 +-381.072 45.0807 176.083 +-381.646 44.1389 172.404 +-380.455 43.0025 167.966 +-380.035 41.9655 163.915 +-379.755 40.9536 159.963 +-379.984 40.0042 156.254 +-379.992 39.0379 152.48 +-381.073 38.186 149.152 +-380.913 37.2145 145.358 +-381.368 36.3084 141.819 +-381.975 35.421 138.353 +-380.294 34.33 134.091 +-381.393 33.4971 130.838 +-380.666 32.509 126.979 +-380.373 31.5658 123.294 +-381.469 30.7414 120.074 +-381.296 29.8175 116.466 +-380.418 28.846 112.671 +-379.788 27.9018 108.983 +-379.025 26.9558 105.288 +-380.441 26.1676 102.209 +-381.83 25.3752 99.1143 +-379.127 24.3181 94.9852 +-379.677 23.4786 91.7062 +-380.683 22.6676 88.5383 +-380.004 21.7591 84.9897 +-381.048 20.9519 81.8369 +-380.206 20.0438 78.2902 +-380.309 19.1905 74.9571 +-380.086 18.324 71.5728 +-380.126 17.4736 68.251 +-380.727 16.6502 65.0348 +-380.805 15.8051 61.7338 +-380.853 14.9609 58.4364 +-380.079 14.0884 55.0284 +-380.956 13.279 51.867 +-380.318 12.4183 48.5054 +-379.847 11.5675 45.1821 +-380.836 10.7618 42.035 +-379.609 9.89564 38.6519 +-381.137 9.10217 35.5526 +-380.248 8.25097 32.2279 +-380.424 7.42573 29.0045 +-380.77 6.60379 25.7941 +-380.389 5.77034 22.5387 +-379.979 4.93903 19.2916 +-380.138 4.11644 16.0786 +-148.709 1.28798 5.03079 +-145.75 0.946595 3.69735 +-145.178 0.628506 2.45491 +-145.594 0.31513 1.23088 +96.1 1.77636e-15 1.13687e-13 +95.9963 0.215091 0.809664 +96.0854 0.430616 1.62096 +96.0671 0.64588 2.43127 +96.1414 0.861994 3.24479 +96.0085 1.07625 4.0513 +95.9683 1.29132 4.86089 +95.9208 1.50629 5.67009 +95.9657 1.72294 6.48562 +95.8038 1.93587 7.28717 +96.8301 2.17507 8.18756 +96.653 2.38947 8.99464 +96.6675 2.60863 9.81961 +96.5752 2.82512 10.6345 +96.4755 3.04138 11.4486 +96.3684 3.25741 12.2618 +96.2541 3.47321 13.0741 +96.0334 3.68495 13.8712 +95.8058 3.89595 14.6654 +95.6697 4.11046 15.4729 +96.4127 4.3648 16.4303 +96.064 4.57128 17.2076 +95.905 4.78633 18.0171 +95.7386 5.00103 18.8252 +95.565 5.21536 19.6321 +95.3841 5.42928 20.4373 +96.0729 5.69476 21.4367 +95.8757 5.90979 22.2461 +95.6712 6.12438 23.0539 +95.653 6.35135 23.9082 +96.3994 6.63188 24.9642 +95.9776 6.83389 25.7246 +95.7417 7.04868 26.5332 +96.3614 7.32854 27.5867 +96.1086 7.54419 28.3984 +96.7069 7.82872 29.4695 +96.4371 8.04508 30.2839 +96.16 8.26085 31.0961 +95.8756 8.47598 31.9059 +96.338 8.75905 32.9715 +97.0702 9.07115 34.1463 +96.4772 9.26133 34.8622 +97.1857 9.57834 36.0555 +96.7634 9.78631 36.8384 +96.4271 10.0027 37.6531 +96.915 10.3068 38.7978 +96.7451 10.5436 39.6892 +96.383 10.76 40.5036 +96.9272 11.08 41.7082 +96.5469 11.2967 42.5241 +96.1593 11.5126 43.3367 +96.5766 11.8271 44.5205 +96.171 12.043 45.3333 +96.4739 12.3497 46.4877 +96.0505 12.5654 47.2996 +96.4181 12.8868 48.5096 +95.9764 13.1024 49.3209 +96.2305 13.4149 50.4974 +96.558 13.742 51.7288 +96.0873 13.9578 52.5412 +96.3886 14.2881 53.7845 +96.5886 14.6078 54.9879 +96.7742 14.9294 56.1986 +96.2631 15.1457 57.0126 +96.5079 15.4833 58.2833 +95.9779 15.6989 59.095 +96.1116 16.0252 60.3233 +96.2304 16.3533 61.5584 +96.3342 16.6831 62.8 +96.5052 17.0292 64.1028 +95.9227 17.2448 64.9143 +96.0656 17.5932 66.2259 +96.1112 17.9286 67.4881 +96.3021 18.2959 68.871 +95.6765 18.511 69.6805 +95.6784 18.8497 70.9555 +95.7433 19.2056 72.2953 +96.2608 19.6592 74.0025 +95.589 19.8741 74.8116 +95.6043 20.2345 76.1682 +95.679 20.613 77.5929 +95.583 20.9599 78.899 +95.6217 21.3417 80.3363 +95.417 21.6743 81.5879 +95.2712 22.0246 82.9069 +95.9198 22.5669 84.9479 +95.8073 22.9385 86.3469 +95.6769 23.3114 87.7504 +95.4564 23.6675 89.0911 +95.8609 24.1864 91.0443 +95.7423 24.5818 92.5328 +95.3938 24.9236 93.8193 +95.2377 25.3211 95.3155 +95.0618 25.7197 96.816 +95.4116 26.2696 98.8862 +95.6636 26.8042 100.898 +95.3511 27.1893 102.348 +95.6823 27.7672 104.524 +95.3254 28.1549 105.983 +94.9493 28.5431 107.444 +95.004 29.0695 109.426 +95.2209 29.6577 111.64 +95.0903 30.1494 113.491 +95.1825 30.723 115.65 +94.8119 31.1576 117.286 +94.6015 31.6539 119.154 +94.7257 32.2747 121.491 +95.2311 33.0429 124.383 +94.6922 33.463 125.964 +95.0611 34.2173 128.803 +94.8122 34.7655 130.867 +94.7031 35.3786 133.175 +94.3918 35.9301 135.251 +94.1604 36.5255 137.492 +94.4949 37.3594 140.631 +94.3498 38.0247 143.135 +94.0607 38.6483 145.483 +94.2065 39.4704 148.578 +93.8399 40.0982 150.941 +93.9454 40.9485 154.142 +93.9 41.7578 157.188 +93.8559 42.5922 160.329 +93.8591 43.4744 163.65 +94.1434 44.5181 167.579 +93.4718 45.1354 169.902 +93.6426 46.1857 173.856 +93.7944 47.263 177.911 +93.7462 48.2757 181.723 +93.2415 49.0837 184.764 +92.7321 49.9165 187.9 +109.331 60.1981 226.602 +115.575 65.1133 245.105 +115.717 66.7303 251.191 +116.036 68.5173 257.918 +116.203 70.2873 264.581 +115.035 71.3041 268.408 +112.232 71.321 268.472 +109.474 71.3549 268.6 +106.686 71.3577 268.61 +103.661 71.1852 267.961 +101.238 71.4147 268.825 +98.0057 71.0581 267.482 +95.5543 71.2507 268.207 +92.7482 71.1698 267.903 +92.1489 72.8156 274.098 +91.5649 74.562 280.672 +91.3077 76.6794 288.642 +91.1973 79.0474 297.556 +91.0981 81.5687 307.047 +90.7809 84.0458 316.372 +90.6125 86.8254 326.835 +90.5875 89.9333 338.534 +87.5515 90.1577 339.379 +86.5149 92.5224 348.28 +86.6511 96.3652 362.745 +86.2945 99.9396 376.201 +85.9507 103.821 390.811 +87.5823 110.526 416.05 +89.1269 117.724 443.148 +84.7577 117.415 441.982 +84.393 122.885 462.573 +86.1549 132.185 497.582 +88.1352 142.872 537.81 +87.9466 151.088 568.737 +86.3012 157.661 593.48 +84.2547 164.314 618.525 +84.9307 177.595 668.518 +80.4196 181.223 682.172 +72.6995 177.591 668.503 +67.6383 180.354 678.903 +60.3031 176.969 666.161 +55.1803 180.016 677.629 +48.111 176.649 664.956 +42.9171 180.159 678.167 +36.0019 176.376 663.929 +30.5816 179.836 676.953 +23.9969 176.434 664.145 +18.337 179.792 676.786 +11.9881 176.335 663.772 +6.0981 179.41 675.349 +3.81917e-14 176.002 662.521 +-6.09112 179.205 674.575 +-11.9584 175.898 662.13 +-18.2846 179.278 674.854 +-23.9271 175.92 662.213 +-30.442 179.015 673.863 +-35.8344 175.556 660.841 +-42.6607 179.082 674.115 +-47.7413 175.292 659.846 +-54.7801 178.71 672.715 +-59.754 175.358 660.096 +-66.977 178.591 672.266 +-71.7274 175.217 659.564 +-79.2649 178.621 672.378 +-83.6633 174.945 658.542 +-91.4467 178.34 671.321 +-95.6815 174.798 657.987 +-103.762 178.259 671.015 +-107.783 174.723 657.705 +-116.045 178.045 670.211 +-119.852 174.517 656.929 +-128.348 177.801 669.292 +-132.135 174.533 656.989 +-111.746 141.019 530.836 +-115.62 139.659 525.714 +-119.691 138.617 521.794 +-124.78 138.769 522.365 +-130.309 139.358 524.582 +-792.609 816.203 3072.41 +-820.32 814.395 3065.61 +-847.969 812.526 3058.57 +-875.553 810.595 3051.31 +-903.071 808.603 3043.81 +-930.633 806.647 3036.44 +-165.395 138.897 522.847 +-144.008 117.267 441.424 +-146.196 115.523 434.862 +-149.101 114.412 430.679 +-1066.66 795.36 2993.96 +-1093.65 792.941 2984.85 +-1120.7 790.556 2975.87 +-1147.52 788.014 2966.3 +-145.927 97.6045 367.41 +-144.988 94.5027 355.734 +-146.059 92.8174 349.39 +-149.208 92.4867 348.146 +-1280.31 774.414 2915.11 +-1306.58 771.516 2904.2 +-1332.75 768.558 2893.06 +-1358.83 765.544 2881.72 +-496.45 273.346 1028.95 +-472.873 254.542 958.166 +-145.364 76.5217 288.049 +-143.229 73.7576 277.644 +-143.37 72.2443 271.948 +-145.22 71.6242 269.614 +-149.48 72.1804 271.707 +-410.118 193.934 730.022 +-110.682 51.2668 192.982 +-109.663 49.7653 187.33 +-110.7 49.2287 185.311 +-111.557 48.6248 183.037 +-113.102 48.3291 181.924 +-114.375 47.9206 180.386 +-116.317 47.7932 179.907 +-117.776 47.4656 178.674 +-120.202 47.5231 178.89 +-122.309 47.4446 178.594 +-126.601 48.1904 181.402 +-135.428 50.5923 190.443 +-135.593 49.7191 187.157 +-420.313 151.292 569.504 +-422.147 149.181 561.558 +-422.919 146.743 552.383 +-423.497 144.293 543.161 +-427.655 143.095 538.648 +-428.993 140.978 530.679 +-430.593 138.986 523.183 +-437.504 138.715 522.161 +-431.388 134.361 505.773 +-434.974 133.095 501.005 +-436.624 131.256 494.084 +-439.297 129.75 488.413 +-441.106 128.01 481.867 +-442.496 126.178 474.968 +-444.201 124.462 468.51 +-446.436 122.917 462.695 +-447.293 121.019 455.547 +-448.888 119.347 449.255 +-450.895 117.806 443.453 +-452.69 116.228 437.515 +-453.984 114.544 431.174 +-456.133 113.094 425.717 +-457.131 111.378 419.259 +-458.778 109.842 413.477 +-460.43 108.324 407.763 +-2434.91 562.901 2118.92 +-2453.95 557.422 2098.29 +-384.449 85.8048 322.993 +-383.777 84.1565 316.788 +-383.252 82.5674 310.807 +-384.115 81.2973 306.026 +-382.744 79.5771 299.55 +-383.087 78.2371 294.506 +-142.709 28.6266 107.758 +-142.804 28.1339 105.904 +-142.876 27.643 104.056 +-142.845 27.1385 102.157 +-142.63 26.6062 100.153 +-142.959 26.181 98.5527 +-146.219 26.2868 98.9509 +-147.766 26.0748 98.1526 +-496.013 85.8995 323.35 +-497.413 84.5298 318.194 +-499.512 83.2863 313.513 +-501.734 82.0675 308.925 +-503.741 80.8177 304.22 +-506.042 79.6189 299.708 +-516.872 79.7383 300.157 +-514.479 77.8083 292.892 +-513.986 76.1905 286.802 +-2851.72 414.248 1559.34 +-2865.69 407.842 1535.23 +-2879.44 401.405 1511 +-2892.98 394.938 1486.66 +-2906.29 388.442 1462.2 +-386.34 50.5412 190.251 +-381.868 48.8834 184.011 +-381.898 47.8233 180.02 +-379.357 46.4574 174.878 +-381.646 45.6925 171.999 +-380.182 44.4842 167.451 +-379.761 43.4113 163.412 +-378.929 42.3029 159.24 +-381.181 41.5426 156.378 +-379.899 40.4019 152.084 +-380.516 39.4725 148.585 +-380.076 38.4396 144.697 +-380.527 37.5037 141.174 +-380.008 36.4788 137.316 +-380.012 35.5119 133.676 +-381.77 34.7105 130.66 +-380.666 33.6532 126.68 +-380.847 32.7176 123.158 +-381.374 31.8154 119.762 +-381.105 30.8516 116.134 +-380.896 29.899 112.548 +-380.556 28.9424 108.947 +-380.371 28.0037 105.414 +-381.309 27.1503 102.201 +-380.575 26.1821 98.5566 +-379.901 25.2254 94.9556 +-380.453 24.3547 91.6778 +-380.099 23.4294 88.1948 +-379.907 22.5191 84.7682 +-380.072 21.6337 81.4353 +-380.793 20.7813 78.2267 +-380.113 19.8557 74.7424 +-379.203 18.9249 71.2386 +-380.913 18.126 68.2314 +-380.628 17.2318 64.8652 +-380.312 16.3402 61.509 +-380.853 15.4874 58.299 +-381.068 14.6222 55.0419 +-380.659 13.7356 51.7047 +-380.616 12.8655 48.4292 +-380.741 12.0028 45.182 +-380.439 11.129 41.8925 +-380.604 10.2708 38.662 +-380.739 9.41271 35.432 +-379.949 8.53468 32.1269 +-381.221 7.70322 28.997 +-381.069 6.84161 25.7537 +-379.79 5.96404 22.4503 +-379.679 5.10884 19.2311 +-380.438 4.26469 16.0535 +-146.511 1.3136 4.94476 +-3275.38 22.0211 82.8936 +-143.778 0.644355 2.42553 +-145.594 0.326221 1.22799 +96.1 1.77636e-15 1.13687e-13 +96.0963 0.222619 0.808532 +96.0854 0.445222 1.61701 +96.0671 0.667787 2.42535 +96.1414 0.891232 3.23688 +96.0085 1.11275 4.04143 +95.9683 1.33512 4.84904 +95.9208 1.55738 5.65627 +95.9657 1.78138 6.46981 +95.9034 2.00362 7.27697 +96.7305 2.24653 8.15919 +96.653 2.47052 8.97272 +95.673 2.66934 9.69483 +96.5752 2.92095 10.6086 +96.4755 3.14454 11.4207 +96.3684 3.3679 12.2319 +96.2541 3.59102 13.0423 +96.1323 3.81387 13.8516 +95.9045 4.03226 14.6448 +95.6697 4.24988 15.4352 +96.2157 4.50361 16.3567 +96.064 4.72633 17.1656 +95.905 4.94868 17.9732 +95.7386 5.17065 18.7794 +95.565 5.39226 19.5842 +95.3841 5.61344 20.3875 +95.196 5.83417 21.1892 +95.8757 6.11024 22.1919 +95.6712 6.33211 22.9977 +95.4594 6.55351 23.8018 +96.2062 6.8431 24.8535 +95.9776 7.06568 25.6619 +95.7417 7.28777 26.4685 +95.4984 7.50926 27.273 +96.1086 7.80007 28.3292 +95.8486 8.0224 29.1366 +96.4371 8.31796 30.2101 +96.16 8.54105 31.0203 +96.7266 8.84126 32.1107 +96.4322 9.06498 32.9232 +96.0366 9.27897 33.7004 +96.4772 9.57546 34.7772 +97.1857 9.90322 35.9676 +96.8565 10.128 36.784 +96.4271 10.342 37.5613 +96.1759 10.5752 38.408 +96.653 10.8909 39.5549 +96.383 11.125 40.4049 +96.0136 11.3478 41.2143 +96.5469 11.6799 42.4204 +96.1593 11.9031 43.2311 +96.5766 12.2283 44.412 +96.171 12.4515 45.2228 +96.4739 12.7686 46.3744 +96.0505 12.9916 47.1843 +96.4181 13.3239 48.3913 +95.9764 13.5468 49.2007 +96.3184 13.8826 50.4203 +96.558 14.2081 51.6027 +96.8706 14.5489 52.8404 +96.302 14.7595 53.6052 +96.5886 15.1033 54.8538 +96.7742 15.4358 56.0616 +96.2631 15.6594 56.8737 +96.4231 15.9944 58.0901 +95.8936 16.2171 58.8992 +96.1116 16.5688 60.1763 +96.2304 16.908 61.4083 +96.3342 17.249 62.6469 +95.7635 17.4715 63.4551 +95.9227 17.8297 64.756 +96.0656 18.19 66.0645 +96.1112 18.5367 67.3236 +95.4982 18.7586 68.1296 +95.6765 19.1389 69.5107 +96.3131 19.6183 71.2521 +96.3737 19.9878 72.594 +95.713 20.2103 73.402 +95.6667 20.5649 74.6899 +95.6043 20.9208 75.9826 +95.6023 21.2951 77.3418 +95.507 21.6536 78.6441 +95.6217 22.0656 80.1404 +95.417 22.4094 81.3891 +96.0143 22.9493 83.35 +95.9198 23.3323 84.7409 +95.8073 23.7165 86.1364 +95.6769 24.102 87.5365 +95.4564 24.4703 88.8739 +95.3616 24.8765 90.3494 +95.813 25.4344 92.3754 +95.5339 25.8068 93.7281 +95.3766 26.2181 95.2219 +95.6125 26.7463 97.1401 +95.2752 27.1219 98.5044 +95.7311 27.733 100.724 +95.3511 28.1115 102.099 +95.0197 28.5102 103.547 +95.3254 29.1099 105.725 +94.8194 29.4709 107.036 +95.6468 30.2588 109.897 +94.7757 30.5203 110.847 +95.0274 31.1513 113.139 +95.2447 31.7857 115.443 +94.7503 32.1935 116.924 +94.4798 32.6854 118.71 +94.6053 33.3273 121.042 +94.4579 33.8863 123.072 +94.4571 34.512 125.345 +94.8869 35.3129 128.253 +94.9269 35.9882 130.706 +94.5898 36.5348 132.691 +94.5036 37.1926 135.08 +94.2156 37.7864 137.237 +94.5493 38.6489 140.369 +94.3498 39.3144 142.787 +94.0607 39.9592 145.128 +94.102 40.7638 148.051 +93.8399 41.4583 150.573 +94.3006 42.4975 154.347 +93.9 43.1742 156.805 +93.8559 44.0369 159.938 +93.8591 44.949 163.251 +93.6185 45.7714 166.238 +93.5187 46.6896 169.573 +93.5964 47.7286 173.346 +93.749 48.8425 177.392 +93.7015 49.8892 181.193 +93.2415 50.7485 184.314 +92.9904 51.7533 187.963 +98.2587 55.9366 203.157 +115.699 67.3943 244.77 +115.717 68.9937 250.579 +115.916 70.7683 257.024 +115.852 72.4516 263.138 +115.341 73.9188 268.467 +112.532 73.9371 268.533 +109.767 73.9727 268.662 +107.295 74.1994 269.486 +104.257 74.0223 268.843 +101.546 74.0616 268.985 +98.5398 73.8686 268.284 +95.8473 73.8933 268.374 +93.0972 73.8606 268.255 +92.0562 75.2097 273.155 +91.5048 77.0403 279.804 +91.3077 79.2803 287.939 +91.1405 81.6776 296.646 +91.0706 84.3099 306.206 +90.7809 86.8965 315.601 +90.7678 89.9241 326.596 +90.6626 93.0607 337.988 +88.1563 93.8598 340.89 +86.5382 95.6866 347.526 +86.4712 99.427 361.11 +86.2728 103.304 375.19 +85.8052 107.161 389.199 +86.7849 113.234 411.257 +88.9933 121.535 441.405 +84.5573 121.11 439.862 +85.4175 128.595 467.047 +88.3335 140.125 508.922 +88.1352 147.718 536.499 +87.7544 155.872 566.112 +84.5198 159.644 579.813 +86.5389 174.493 633.745 +82.1034 177.506 644.687 +77.5216 180.617 655.987 +70.0863 177.015 642.903 +65.1559 179.628 652.393 +58.1329 176.387 640.623 +53.1403 179.241 650.987 +46.4718 176.418 640.733 +41.2627 179.089 650.434 +34.7929 176.235 640.07 +29.4256 178.908 649.778 +23.1837 176.237 640.076 +17.6433 178.858 649.596 +11.5587 175.786 638.441 +5.8747 178.7 649.022 +3.81917e-14 175.734 638.249 +-5.8747 178.7 649.022 +-11.5448 175.574 637.67 +-17.6066 178.486 648.247 +-23.0616 175.308 636.703 +-29.3166 178.245 647.37 +-34.5941 175.228 636.411 +-41.0429 178.135 646.97 +-46.0742 174.908 635.251 +-52.7794 178.023 646.565 +-57.671 174.985 635.532 +-64.4659 177.725 645.483 +-69.1978 174.771 634.752 +-76.3103 177.795 645.737 +-80.8725 174.845 635.023 +-87.8833 177.204 643.59 +-92.3553 174.444 633.565 +-99.8453 177.348 644.111 +-104.013 174.33 633.153 +-111.704 177.198 643.569 +-115.789 174.319 633.11 +-123.647 177.097 643.203 +-127.46 174.068 632.201 +-117.807 153.711 558.263 +-116.098 144.993 526.602 +-120.016 143.708 521.933 +-125.185 143.941 522.783 +-132.27 146.253 531.178 +-792.609 843.887 3064.93 +-820.32 842.019 3058.14 +-847.969 840.086 3051.12 +-875.553 838.09 3043.87 +-903.181 836.133 3036.76 +-930.519 833.906 3028.67 +-149.811 130.078 472.431 +-144.369 121.548 441.452 +-145.578 118.937 431.968 +-149.926 118.947 432.007 +-1066.66 822.337 2986.66 +-148.21 111.103 403.517 +-1120.7 817.371 2968.62 +-1147.52 814.743 2959.07 +-145.999 100.965 366.695 +-145.244 97.8809 355.495 +-146.621 96.3349 349.88 +-150.203 96.2614 349.613 +-1280.31 800.681 2908 +-1306.58 797.684 2897.12 +-1332.75 794.626 2886.01 +-1358.83 791.51 2874.69 +-492.9 280.598 1019.11 +-468.353 260.66 946.694 +-141.199 76.8508 279.115 +-142.828 76.0454 276.19 +-143.87 74.9549 272.23 +-146.097 74.5009 270.581 +-150.278 75.0271 272.492 +-408.639 199.789 725.617 +-110.537 52.9359 192.259 +-109.81 51.5226 187.126 +-110.8 50.9444 185.026 +-112.014 50.4801 183.339 +-113.566 50.173 182.224 +-114.793 49.727 180.604 +-116.794 49.6169 180.204 +-118.421 49.3442 179.214 +-120.474 49.2463 178.858 +-122.53 49.1425 178.481 +-127.496 50.1772 182.239 +-419.48 162.022 588.45 +-419.801 159.152 578.027 +-135.884 50.5706 183.668 +-135.72 49.5882 180.1 +-423.454 151.913 551.734 +-423.497 149.188 541.837 +-425.098 147.064 534.123 +-425.73 144.651 525.359 +-430.407 143.638 521.682 +-436.874 143.214 520.139 +-434.632 139.963 508.334 +-435.874 137.894 500.818 +-437.728 136.051 494.126 +-439.1 134.09 487.004 +-440.907 132.293 480.475 +-442.898 130.576 474.24 +-444.403 128.742 467.581 +-446.709 127.164 461.85 +-447.912 125.297 455.067 +-449.722 123.624 448.993 +-451.245 121.896 442.716 +-453.538 120.396 437.266 +-454.911 118.671 431.001 +-456.853 117.114 425.35 +-457.203 115.174 418.304 +-459.583 113.767 413.192 +-460.872 112.106 407.159 +-2434.91 581.994 2113.75 +-2453.95 576.329 2093.18 +-2472.81 570.624 2072.46 +-2491.47 564.875 2051.58 +-384.248 85.5897 310.854 +-383.652 83.9534 304.911 +-384.687 82.694 300.338 +-2564.22 541.448 1966.49 +-142.236 29.4996 107.14 +-142.486 29.0236 105.411 +-143.435 28.6924 104.208 +-142.926 28.0746 101.965 +-142.63 27.5087 99.9091 +-142.226 26.9305 97.8092 +-146.137 27.1633 98.6548 +-147.601 26.9289 97.8035 +-496.511 88.9023 322.886 +-498.163 87.5288 317.897 +-500.267 86.2414 313.221 +-502.324 84.951 308.535 +-503.995 83.6011 303.632 +-506.809 82.4443 299.43 +-510.186 81.3766 295.553 +-522.406 81.6872 296.681 +-513.986 78.7748 286.103 +-516.904 77.6333 281.958 +-518.999 76.3687 277.364 +-2879.44 415.021 1507.32 +-2892.98 408.334 1483.03 +-2906.29 401.618 1458.64 +-2919.38 394.87 1434.13 +-381.153 50.4467 183.218 +-378.213 48.9683 177.849 +-381.794 48.3416 175.572 +-380.015 47.0403 170.846 +-380.182 45.9931 167.043 +-379.395 44.8407 162.858 +-379.204 43.7696 158.967 +-380.076 42.8272 155.545 +-379.345 41.7115 151.493 +-381.073 40.8708 148.439 +-381.843 39.9281 145.016 +-380.807 38.8042 140.933 +-380.195 37.7347 137.049 +-381.421 36.8525 133.845 +-380.733 35.7904 129.988 +-380.666 34.7947 126.371 +-380.847 33.8274 122.858 +-381.374 32.8946 119.47 +-379.865 31.7942 115.474 +-379.653 30.8123 111.908 +-379.788 29.8636 108.462 +-381.621 29.0486 105.502 +-380.827 28.0359 101.824 +-380.478 27.0632 98.2913 +-380.192 26.101 94.7966 +-380.744 25.2 91.5243 +-381.363 24.3047 88.2724 +-380.394 23.3128 84.6701 +-379.877 22.356 81.1952 +-380.01 21.4421 77.8757 +-380.309 20.5398 74.5987 +-380.773 19.6479 71.3593 +-380.028 18.6973 67.907 +-381.318 17.8485 64.8243 +-381.002 16.9251 61.4704 +-380.458 15.9962 58.0967 +-380.969 15.1142 54.8935 +-380.461 14.1941 51.5519 +-381.012 13.3157 48.3615 +-381.038 12.4196 45.107 +-379.544 11.4794 41.6921 +-381.2 10.6358 38.6283 +-381.137 9.74214 35.3826 +-381.244 8.85424 32.1578 +-380.822 7.95616 28.8961 +-379.573 7.04588 25.59 +-381.287 6.19063 22.4838 +-380.278 5.29046 19.2145 +-380.637 4.41166 16.0227 +-146.511 1.35816 4.93271 +-3275.38 22.7681 82.6916 +-144.778 0.670843 2.43644 +-145.594 0.337286 1.22499 +96.1 1.77636e-15 1.13687e-13 +96.0963 0.229904 0.806491 +95.9854 0.459312 1.61124 +95.9671 0.688925 2.41671 +96.0415 0.91944 3.22535 +96.1084 1.15037 4.03543 +95.9683 1.37881 4.8368 +95.9208 1.60835 5.64199 +96.8635 1.85688 6.51385 +95.8038 2.06704 7.25105 +95.8339 2.29854 8.06316 +96.7525 2.554 8.95929 +96.6675 2.78537 9.77094 +96.5752 3.01653 10.5818 +96.4755 3.24745 11.3919 +96.3684 3.47811 12.201 +96.2541 3.70853 13.0093 +96.0334 3.93462 13.8024 +95.8058 4.15991 14.5928 +95.6697 4.38896 15.3962 +96.4127 4.66053 16.3489 +96.064 4.881 17.1223 +95.905 5.11062 17.9278 +95.7386 5.33986 18.732 +95.565 5.56872 19.5348 +95.3841 5.79714 20.3361 +95.196 6.02509 21.1357 +96.0701 6.323 22.1808 +95.8652 6.5526 22.9862 +95.4594 6.76797 23.7417 +96.3994 7.08121 24.8405 +96.1703 7.31157 25.6486 +95.7417 7.52625 26.4017 +96.3614 7.82507 27.4499 +96.1086 8.05533 28.2577 +95.8486 8.28492 29.0631 +96.4371 8.59016 30.1338 +96.16 8.82055 30.942 +95.8756 9.05026 31.7478 +96.338 9.3525 32.8081 +97.0702 9.68575 33.9771 +96.4772 9.88881 34.6894 +96.0654 10.1094 35.4633 +96.8565 10.4594 36.6911 +96.4271 10.6805 37.4665 +97.0074 11.0157 38.6424 +96.7451 11.258 39.4925 +96.4747 11.5 40.3413 +96.105 11.7303 41.1494 +95.7279 11.9598 41.9543 +96.0686 12.281 43.0812 +95.7643 12.5222 43.9272 +96.171 12.859 45.1087 +96.4739 13.1864 46.2573 +96.0505 13.4167 47.0652 +96.3294 13.7473 48.2247 +96.6828 14.093 49.4376 +96.3184 14.3369 50.293 +95.8583 14.5668 51.0994 +96.0873 14.9035 52.2808 +96.3886 15.2562 53.5179 +96.5025 15.5836 54.6665 +96.0027 15.8139 55.4743 +96.2631 16.1719 56.7301 +96.5079 16.5323 57.9944 +96.6527 16.8804 59.2155 +96.1955 17.1259 60.0768 +96.3138 17.4764 61.3064 +96.3342 17.8135 62.4888 +95.7635 18.0433 63.2949 +95.9227 18.4132 64.5926 +96.0656 18.7852 65.8977 +95.464 19.0144 66.7014 +95.4982 19.3725 67.9576 +95.6765 19.7652 69.3352 +95.5991 20.1102 70.5454 +96.2949 20.625 72.3515 +95.713 20.8717 73.2167 +96.3661 21.3931 75.046 +95.6814 21.6229 75.8519 +95.6023 21.9919 77.1465 +95.6591 22.3979 78.5705 +95.6217 22.7877 79.9381 +95.4919 23.1609 81.2474 +96.0143 23.7003 83.1396 +95.4037 23.9662 84.0721 +95.8073 24.4927 85.919 +95.6769 24.8908 87.3155 +95.5283 25.2901 88.7163 +95.2903 25.6714 90.0539 +95.7423 26.2473 92.0742 +95.5339 26.6513 93.4915 +95.3071 27.0564 94.9123 +95.6813 27.6413 96.9641 +95.2752 28.0094 98.2557 +95.1231 28.4588 99.8319 +95.3511 29.0315 101.841 +95.0197 29.4432 103.285 +95.3254 30.0625 105.458 +95.4039 30.6232 107.424 +95.1326 31.0813 109.031 +95.1573 31.646 111.012 +95.1532 32.2132 113.002 +94.6222 32.6113 114.399 +94.5656 33.182 116.401 +94.6624 33.8202 118.64 +94.5451 34.3959 120.659 +94.4579 34.9952 122.761 +94.5746 35.6858 125.184 +94.3642 36.2678 127.226 +94.9269 37.1659 130.376 +94.5898 37.7304 132.356 +94.5036 38.4097 134.739 +94.2156 39.023 136.891 +94.4404 39.8676 139.854 +94.2961 40.5777 142.344 +94.0607 41.2669 144.762 +94.102 42.0978 147.677 +93.8399 42.815 150.193 +94.4021 43.9354 154.123 +93.9 44.587 156.409 +93.8559 45.478 159.534 +93.9076 46.4441 162.923 +93.6663 47.2934 165.903 +93.4718 48.1934 169.06 +93.5964 49.2905 172.909 +93.749 50.4409 176.944 +93.3446 51.3255 180.047 +93.2415 52.4092 183.849 +93.464 53.7191 188.444 +96.2302 56.5743 198.46 +115.741 69.6247 244.24 +115.473 71.1013 249.42 +115.837 73.034 256.2 +115.774 74.7721 262.297 +115.723 76.5911 268.677 +112.906 76.6108 268.747 +110.06 76.5974 268.7 +107.295 76.6275 268.805 +104.572 76.6758 268.975 +101.785 76.6656 268.939 +98.8068 76.4926 268.332 +96.1077 76.5187 268.424 +93.351 76.4858 268.308 +92.0562 77.6709 272.466 +91.5348 79.5875 279.189 +91.2784 81.8483 287.12 +91.1121 84.3242 295.805 +90.9879 86.9897 305.155 +90.8076 89.7668 314.897 +90.509 92.602 324.843 +90.5875 96.0266 336.856 +88.5676 97.3833 341.616 +86.5149 98.7911 346.554 +86.2912 102.467 359.448 +86.4027 106.845 374.805 +85.7636 110.614 388.028 +85.6485 115.409 404.848 +88.9552 125.459 440.102 +84.8124 125.451 440.075 +88.2827 137.258 481.494 +88.3335 144.71 507.637 +87.9944 152.308 534.29 +86.9858 159.563 559.737 +85.5775 166.932 585.587 +86.2517 179.606 630.047 +80.0316 178.689 626.833 +74.9632 180.372 632.736 +68.2466 178.009 624.446 +63.1719 179.858 630.931 +56.7035 177.68 623.293 +51.5241 179.477 629.594 +45.2789 177.514 622.711 +40.0539 179.531 629.787 +33.8771 177.211 621.648 +28.5925 179.531 629.787 +22.559 177.1 621.256 +17.1197 179.23 628.729 +11.276 177.099 621.253 +5.69756 178.983 627.862 +3.37508e-14 176.879 620.481 +-5.70017 179.065 628.151 +-11.2446 176.605 619.521 +-17.0648 178.654 626.71 +-22.4753 176.442 618.95 +-28.4442 178.6 626.52 +-33.7515 176.554 619.343 +-39.8586 178.656 626.715 +-45.0208 176.503 619.162 +-51.2259 178.438 625.95 +-56.2329 176.206 618.12 +-62.5777 178.166 624.995 +-67.5254 176.128 617.847 +-73.9443 177.921 624.137 +-78.7398 175.805 616.715 +-85.4555 177.948 624.231 +-90.1285 175.809 616.729 +-96.9038 177.756 623.558 +-101.448 175.595 615.977 +-108.288 177.4 622.31 +-112.958 175.622 616.074 +-119.893 177.34 622.1 +-124.293 175.297 614.934 +-116.67 157.209 551.482 +-116.181 149.845 525.648 +-120.535 149.053 522.869 +-125.68 149.24 523.525 +-132.83 151.679 532.081 +-158.991 174.817 613.247 +-820.32 869.573 3050.42 +-847.969 867.577 3043.42 +-875.553 865.516 3036.18 +-903.181 863.495 3029.1 +-930.519 861.195 3021.03 +-146.946 131.765 462.225 +-144.7 125.813 441.347 +-145.949 123.142 431.975 +-150.466 123.282 432.466 +-1066.79 849.352 2979.48 +-147.943 114.532 401.773 +-1120.7 844.119 2961.12 +-144.636 106.052 372.025 +-145.677 104.038 364.961 +-145.538 101.288 355.314 +-146.658 99.5126 349.085 +-150.548 99.6393 349.529 +-1280.31 826.883 2900.66 +-1306.58 823.788 2889.81 +-1332.75 820.63 2878.73 +-1358.83 817.412 2867.44 +-487.617 286.674 1005.64 +-136.343 78.3642 274.898 +-138.394 77.7885 272.878 +-141.266 77.6753 272.481 +-144.369 77.6764 272.485 +-146.744 77.2794 271.092 +-150.419 77.5547 272.058 +-435.503 219.891 771.366 +-110.634 54.7162 191.941 +-110.007 53.304 186.988 +-111.3 52.849 185.391 +-112.115 52.1792 183.042 +-113.566 51.8149 181.764 +-114.741 51.331 180.067 +-116.635 51.1706 179.504 +-118.475 50.9823 178.843 +-120.855 51.0188 178.971 +-123.358 51.0933 179.233 +-127.384 51.7738 181.62 +-420.047 167.55 587.757 +-420.948 164.81 578.144 +-421.997 162.189 568.952 +-135.602 51.1665 179.489 +-136.155 50.4436 176.954 +-136.311 49.5905 173.961 +-424.915 151.811 532.545 +-426.715 149.73 525.245 +-430.593 148.403 520.591 +-433.35 146.707 514.641 +-2083.98 693.059 2431.22 +-436.389 142.574 500.143 +-437.728 140.503 492.879 +-439.888 138.727 486.646 +-441.437 136.786 479.838 +-443.232 134.951 473.4 +-444.809 133.077 466.826 +-446.436 131.246 460.402 +-447.912 129.397 453.918 +-449.722 127.67 447.859 +-451.876 126.061 442.216 +-453.892 124.432 436.503 +-454.626 122.477 429.644 +-456.133 120.756 423.607 +-457.784 119.095 417.778 +-459.875 117.565 412.411 +-461.904 116.034 407.041 +-2434.91 601.039 2108.41 +-2453.95 595.189 2087.89 +-383.845 91.4747 320.888 +-2491.47 583.36 2046.4 +-384.401 88.4259 310.193 +-384.346 86.8578 304.693 +-382.978 85.0205 298.247 +-141.574 30.8724 108.299 +-142.236 30.465 106.87 +-142.486 29.9734 105.145 +-143.435 29.6313 103.945 +-142.283 28.8631 101.25 +-142.387 28.3604 99.4866 +-142.714 27.9072 97.897 +-146.71 28.1624 98.7923 +-146.447 27.5927 96.7939 +-496.511 91.8116 322.07 +-498.914 90.5294 317.573 +-501.022 89.1979 312.902 +-502.071 87.6865 307.6 +-504.758 86.4677 303.324 +-508.088 85.3571 299.428 +-508.472 83.7572 293.816 +-2823.13 455.89 1599.24 +-514.679 81.4623 285.766 +-517.252 80.2279 281.435 +-2865.69 435.475 1527.62 +-522.017 77.7016 272.573 +-2892.98 421.696 1479.29 +-2906.29 414.76 1454.96 +-529.792 74.0037 259.601 +-380.079 51.9506 182.24 +-380.819 50.9192 178.622 +-381.342 49.8646 174.922 +-379.562 48.5218 170.212 +-379.363 47.3959 166.262 +-380.492 46.4419 162.916 +-380.947 45.4095 159.294 +-381.181 44.3573 155.603 +-379.992 43.15 151.368 +-380.794 42.1776 147.957 +-380.913 41.1344 144.297 +-380.994 40.0938 140.647 +-381.132 39.0655 137.04 +-379.918 37.9086 132.981 +-382.43 37.1262 130.237 +-381.044 35.969 126.177 +-381.131 34.9604 122.639 +-381.374 33.971 119.169 +-381.105 32.9419 115.558 +-380.418 31.8845 111.849 +-380.268 30.8798 108.325 +-380.371 29.9011 104.891 +-380.73 28.9459 101.541 +-379.995 27.9132 97.9181 +-379.998 26.9414 94.5091 +-379.289 25.9252 90.9443 +-380.683 25.0552 87.8924 +-380.589 24.088 84.4996 +-379.291 23.052 80.8653 +-380.402 22.1666 77.7591 +-380.309 21.2119 74.4103 +-381.166 20.3117 71.2525 +-380.126 19.3142 67.7531 +-380.234 18.3803 64.477 +-379.72 17.4201 61.1088 +-380.556 16.5239 57.965 +-380.573 15.5926 54.698 +-381.253 14.6892 51.5288 +-379.723 13.7049 48.0762 +-380.443 12.806 44.9229 +-380.538 11.8861 41.6957 +-379.907 10.9466 38.4001 +-380.938 10.0557 35.2749 +-381.044 9.13922 32.0599 +-379.726 8.19287 28.7401 +-381.468 7.3128 25.6529 +-380.389 6.37816 22.3743 +-380.078 5.46073 19.156 +-380.138 4.55005 15.9613 +-3274.5 31.348 109.967 +-3275.38 23.5131 82.4828 +-144.778 0.692796 2.43029 +-146.194 0.34976 1.22694 +96.1 1.77636e-15 1.13687e-13 +96.0963 0.23717 0.804384 +95.9854 0.473829 1.60703 +95.9671 0.710699 2.4104 +96.1414 0.949487 3.22027 +96.1084 1.18673 4.02488 +95.9683 1.42239 4.82417 +95.9208 1.65918 5.62725 +95.9657 1.89782 6.43662 +95.8038 2.13237 7.23211 +96.8301 2.39584 8.1257 +96.7525 2.63472 8.93588 +96.6675 2.87341 9.74542 +96.5752 3.11187 10.5542 +96.4755 3.35009 11.3621 +96.3684 3.58804 12.1692 +96.2541 3.82574 12.9753 +96.0334 4.05898 13.7664 +95.9045 4.29583 14.5697 +95.6697 4.52768 15.356 +96.2157 4.79799 16.2728 +96.064 5.03527 17.0776 +95.905 5.27215 17.881 +95.7386 5.50863 18.683 +95.565 5.74472 19.4837 +95.3841 5.98036 20.2829 +95.3908 6.22824 21.1236 +95.0005 6.45022 21.8765 +95.8652 6.7597 22.9261 +95.4594 6.98188 23.6797 +96.2062 7.2904 24.726 +95.9776 7.52753 25.5303 +96.6068 7.8343 26.5707 +96.3614 8.07239 27.3782 +96.1086 8.30993 28.1838 +96.7069 8.62334 29.2468 +96.4371 8.86166 30.0551 +97.0135 9.1801 31.1351 +96.7266 9.41916 31.9459 +96.338 9.6481 32.7224 +97.0702 9.99188 33.8884 +96.3836 10.1914 34.5651 +96.0654 10.4289 35.3707 +96.7634 10.7796 36.56 +96.5198 11.0286 37.4045 +97.0074 11.3638 38.5414 +96.7451 11.6138 39.3893 +96.4747 11.8634 40.2359 +96.105 12.1011 41.0419 +96.5469 12.4434 42.2028 +96.1593 12.6812 43.0093 +96.5766 13.0276 44.1841 +96.171 13.2654 44.9908 +96.4739 13.6032 46.1365 +96.1396 13.8536 46.9858 +96.4181 14.1948 48.1431 +96.6828 14.5385 49.3085 +96.3184 14.79 50.1616 +96.558 15.1369 51.338 +96.7836 15.486 52.5221 +96.302 15.7242 53.3302 +95.8132 15.9613 54.1343 +96.0885 16.3283 55.3788 +96.2631 16.683 56.5819 +96.5079 17.0548 57.8429 +95.8936 17.2772 58.597 +96.1116 17.6518 59.8675 +96.3138 18.0288 61.1462 +96.3342 18.3765 62.3255 +95.7635 18.6136 63.1295 +95.9227 18.9952 64.4238 +96.0656 19.379 65.7255 +95.464 19.6153 66.5272 +96.3021 20.153 68.3507 +95.6765 20.3899 69.1541 +96.3924 20.9179 70.945 +95.6645 21.1376 71.6901 +95.713 21.5313 73.0254 +95.7444 21.9269 74.3671 +95.6814 22.3063 75.6538 +95.679 22.7052 77.0067 +95.507 23.069 78.2406 +95.6217 23.5079 79.7293 +95.4919 23.893 81.0351 +95.2712 24.2602 82.2805 +95.8461 24.8383 84.2413 +95.8073 25.2668 85.6945 +95.6769 25.6775 87.0874 +95.5283 26.0894 88.4846 +95.2903 26.4828 89.8187 +95.7423 27.0769 91.8337 +95.5339 27.4937 93.2472 +95.3071 27.9115 94.6643 +94.9929 28.3099 96.0154 +95.2752 28.8947 97.999 +95.1231 29.3582 99.5711 +95.3511 29.949 101.575 +95.086 30.395 103.087 +95.3254 31.0127 105.182 +95.4039 31.591 107.144 +95.004 32.0201 108.599 +95.1573 32.6462 110.722 +94.9644 33.1654 112.484 +94.4977 33.5979 113.95 +94.6272 34.2531 116.173 +94.6624 34.8892 118.33 +94.7257 35.5507 120.573 +94.5768 36.1468 122.595 +94.4571 36.7679 124.701 +95.0611 37.6904 127.83 +94.9843 38.3638 130.114 +94.5898 38.9229 132.01 +94.5036 39.6237 134.387 +94.1053 40.2094 136.374 +94.4404 41.1277 139.488 +94.2424 41.8364 141.892 +94.0607 42.5711 144.384 +94.102 43.4283 147.291 +94.3035 44.3862 150.54 +94.4021 45.324 153.72 +93.9 45.9963 156 +93.9052 46.94 159.201 +93.8591 47.8871 162.413 +93.6663 48.7882 165.469 +93.8943 49.9415 169.381 +93.5964 50.8484 172.457 +93.749 52.0351 176.482 +93.3446 52.9477 179.577 +93.2415 54.0657 183.369 +93.6792 55.5448 188.385 +95.7653 58.0805 196.985 +115.658 71.7738 243.427 +115.92 73.6325 249.731 +115.876 75.3684 255.618 +115.656 77.057 261.346 +115.685 78.9858 267.887 +113.244 79.2683 268.845 +110.427 79.2816 268.891 +107.582 79.2607 268.82 +104.887 79.3376 269.08 +102.127 79.3543 269.137 +99.1073 79.1501 268.445 +96.4007 79.1778 268.539 +93.6366 79.1444 268.425 +91.6544 79.776 270.567 +91.4747 82.0492 278.277 +91.3077 84.4624 286.462 +91.1121 86.9893 295.032 +91.043 89.7937 304.543 +90.7007 92.4948 313.704 +90.6902 95.7199 324.643 +90.5875 99.0616 335.976 +88.8095 100.736 341.655 +86.4682 101.859 345.463 +86.0438 105.403 357.482 +86.2945 110.084 373.358 +85.7636 114.11 387.014 +86.4061 120.109 407.361 +88.8216 129.229 438.293 +85.4685 130.417 442.321 +88.2827 141.596 480.236 +88.383 149.368 506.594 +87.9787 157.094 532.799 +86.0103 162.76 552.013 +86.8718 174.812 592.891 +84.7898 182.142 617.751 +78.5692 180.969 613.772 +73.333 182.027 617.36 +66.8878 179.979 610.415 +61.7534 181.376 615.152 +55.6402 179.859 610.008 +50.4021 181.117 614.275 +44.3721 179.457 608.645 +39.1321 180.943 613.685 +33.2438 179.395 608.433 +27.9251 180.883 613.48 +22.1123 179.079 607.364 +16.7323 180.71 612.895 +11.0526 179.077 607.354 +5.57277 180.596 612.507 +3.37508e-14 179.189 607.734 +-5.57102 180.539 612.315 +-11.0421 178.907 606.779 +-16.7114 180.484 612.128 +-22.0809 178.825 606.501 +-27.8292 180.261 611.372 +-33.1234 178.745 606.231 +-38.949 180.096 610.813 +-44.1489 178.554 605.583 +-50.1275 180.13 610.928 +-55.2044 178.45 605.23 +-61.1496 179.602 609.137 +-66.2292 178.207 604.405 +-72.3708 179.638 609.259 +-77.2895 178.021 603.775 +-83.4976 179.366 608.335 +-88.5698 178.229 604.479 +-94.7606 179.318 608.173 +-99.508 177.681 602.62 +-106.109 179.325 608.197 +-110.735 177.608 602.374 +-117.451 179.219 607.837 +-121.908 177.368 601.559 +-115.713 160.848 545.529 +-116.431 154.913 525.401 +-120.665 153.929 522.065 +-125.815 154.122 522.717 +-132.223 155.758 528.266 +-137.46 155.919 528.815 +-820.32 897.057 3042.45 +-847.969 894.998 3035.47 +-875.553 892.871 3028.25 +-903.181 890.787 3021.18 +-162.883 155.513 527.435 +-145.63 134.712 456.889 +-145.03 130.086 441.2 +-146.32 127.357 431.941 +-150.751 127.42 432.156 +-1066.79 876.197 2971.7 +-1093.78 873.53 2962.65 +-1120.7 870.798 2953.39 +-144.741 109.483 371.323 +-145.677 107.326 364.007 +-145.538 104.49 354.386 +-147.071 102.946 349.152 +-151.122 103.18 349.946 +-1280.31 853.018 2893.09 +-1306.58 849.825 2882.26 +-1332.75 846.567 2871.21 +-1358.83 843.247 2859.95 +-485.588 294.504 998.838 +-136.946 81.1982 275.391 +-138.832 80.5014 273.027 +-142.292 80.7126 273.744 +-144.414 80.1566 271.858 +-147.298 80.0228 271.405 +-150.888 80.2556 272.194 +-435.407 226.791 769.183 +-110.1 56.1735 190.517 +-110.204 55.0875 186.834 +-111.35 54.5439 184.99 +-112.115 53.8284 182.564 +-113.926 53.6222 181.865 +-115.211 53.1703 180.332 +-117.059 52.98 179.686 +-118.958 52.8083 179.104 +-121.182 52.7735 178.986 +-123.689 52.8499 179.245 +-128.447 53.8556 182.656 +-420.387 172.985 586.695 +-421.751 170.343 577.733 +-421.068 166.947 566.216 +-422.97 164.643 558.402 +-135.501 51.7879 175.643 +-136.311 51.1578 173.506 +-426.62 157.237 533.285 +-427.207 154.641 524.478 +-430.842 153.182 519.531 +-430.833 150.465 510.314 +-2083.98 714.964 2424.86 +-436.581 147.145 499.056 +-438.312 145.138 492.247 +-440.084 143.175 485.591 +-441.968 141.279 479.159 +-443.433 139.279 472.377 +-445.011 137.345 465.819 +-447.05 135.58 459.831 +-448.394 133.63 453.219 +-450.139 131.827 447.103 +-452.157 130.126 441.334 +-453.538 128.265 435.023 +-455.624 126.626 429.462 +-456.853 124.77 423.167 +-458.219 122.976 417.082 +-460.314 121.396 411.726 +-466.107 120.791 409.672 +-2434.91 620.036 2102.91 +-2453.95 614.001 2082.44 +-2472.81 607.923 2061.83 +-382.56 92.4046 313.398 +-383.558 91.0208 308.705 +-384.115 89.549 303.713 +-384.998 88.1703 299.037 +-141.026 31.7248 107.597 +-142.236 31.4279 106.59 +-142.486 30.9208 104.871 +-143.435 30.5678 103.673 +-142.042 29.7248 100.814 +-142.306 29.24 99.1702 +-142.307 28.7072 97.3631 +-147.529 29.2146 99.0838 +-494.888 96.1914 326.242 +-497.34 94.8715 321.765 +-498.414 93.2971 316.425 +-501.022 92.0171 312.084 +-503.083 90.6404 307.415 +-504.758 89.2006 302.532 +-2793.85 484.191 1642.18 +-506.929 86.1423 292.159 +-528.006 87.9596 298.323 +-514.332 83.9805 284.827 +-516.991 82.722 280.559 +-520.311 81.5661 276.639 +-2879.44 442.148 1499.59 +-2892.98 435.024 1475.42 +-2906.29 427.869 1451.16 +-2919.38 420.68 1426.77 +-379.81 53.5546 181.635 +-381.268 52.5905 178.365 +-380.981 51.392 174.3 +-379.199 50.0074 169.604 +-381.092 49.1168 166.584 +-381.679 48.0594 162.998 +-380.672 46.811 158.764 +-381.181 45.7593 155.197 +-380.823 44.6111 151.302 +-382.278 43.68 148.145 +-381.471 42.4968 144.132 +-380.807 41.3406 140.21 +-380.476 40.2309 136.447 +-381.703 39.2905 133.257 +-381.393 38.1958 129.544 +-381.517 37.1519 126.004 +-381.7 36.1191 122.501 +-381.374 35.0447 118.857 +-381.582 34.0255 115.4 +-380.036 32.8594 111.446 +-379.693 31.8077 107.879 +-380.371 30.8461 104.617 +-379.959 29.8003 101.07 +-381.348 28.8981 98.0105 +-380.192 27.8071 94.3102 +-380.55 26.8335 91.0083 +-380.488 25.8339 87.618 +-380.881 24.8685 84.3436 +-381.048 23.8908 81.0277 +-380.01 22.8436 77.4762 +-380.015 21.8654 74.1586 +-380.381 20.9106 70.92 +-380.421 19.9401 67.6285 +-380.628 18.9808 64.3751 +-380.312 17.9987 61.0443 +-380.26 17.0329 57.7686 +-380.178 16.0687 54.4984 +-380.857 15.1377 51.3408 +-380.021 14.1492 47.9882 +-380.741 13.2211 44.8406 +-380.836 12.2714 41.6194 +-379.907 11.2926 38.2998 +-379.843 10.3437 35.0816 +-380.148 9.40587 31.9008 +-380.523 8.46954 28.7252 +-379.872 7.51237 25.4789 +-380.689 6.58492 22.3334 +-379.679 5.62739 19.0858 +-381.337 4.70865 15.9698 +-3274.5 32.3388 109.68 +-3275.38 24.2563 82.2674 +-145.478 0.718148 2.43566 +-145.594 0.359333 1.21871 +96.1 1.77636e-15 1.13687e-13 +96.0963 0.244417 0.802212 +96.0854 0.488817 1.60437 +95.9671 0.732416 2.40389 +96.0415 0.977483 3.20823 +96.0085 1.22171 4.00983 +96.0682 1.46738 4.81614 +95.9208 1.70988 5.61206 +95.8659 1.95378 6.41257 +96.8007 2.22039 7.28763 +96.8301 2.46905 8.10375 +96.653 2.71243 8.90258 +96.6675 2.96121 9.7191 +96.5752 3.20696 10.5257 +96.4755 3.45245 11.3314 +96.3684 3.69768 12.1363 +96.2541 3.94265 12.9403 +96.0334 4.18301 13.7292 +95.8058 4.42252 14.5153 +95.6697 4.66603 15.3146 +95.3294 4.89904 16.0793 +96.064 5.18913 17.0314 +95.905 5.43325 17.8327 +95.7386 5.67696 18.6326 +95.565 5.92026 19.4311 +95.3841 6.1631 20.2281 +95.196 6.40544 21.0235 +95.8757 6.70855 22.0184 +95.6712 6.95215 22.8179 +95.653 7.20979 23.6635 +96.2062 7.51316 24.6592 +95.9776 7.75755 25.4613 +95.7417 8.00138 26.2616 +95.4984 8.24456 27.0598 +96.1086 8.56385 28.1077 +95.8486 8.80794 28.9089 +96.4371 9.13244 29.9739 +96.16 9.37738 30.7779 +95.8756 9.62159 31.5794 +96.338 9.94291 32.634 +95.9426 10.1776 33.4043 +96.4772 10.5131 34.5054 +96.1588 10.758 35.3094 +96.7634 11.109 36.4613 +96.5198 11.3656 37.3035 +97.0074 11.7111 38.4373 +96.653 11.9573 39.2456 +96.383 12.2143 40.0891 +96.0136 12.459 40.8921 +96.5469 12.8236 42.0888 +96.1593 13.0686 42.8931 +96.5766 13.4256 44.0648 +96.171 13.6708 44.8693 +96.5634 14.0319 46.0545 +96.0505 14.2637 46.8155 +96.4181 14.6286 48.013 +96.7711 14.9964 49.2202 +96.2305 15.228 49.9805 +96.558 15.5994 51.1993 +96.1743 15.8587 52.0505 +96.302 16.2047 53.1862 +96.5886 16.5822 54.425 +96.7742 16.9473 55.6233 +96.3483 17.208 56.479 +96.4231 17.5605 57.636 +96.6527 17.946 58.9013 +96.1955 18.207 59.758 +96.3138 18.5797 60.9811 +96.4171 18.9543 62.2107 +95.7635 19.1823 62.959 +96.0046 19.5923 64.3047 +96.0656 19.9711 65.548 +96.1112 20.3518 66.7973 +95.4982 20.5954 67.597 +95.6765 21.0129 68.9673 +95.6784 21.3974 70.2293 +96.2949 21.927 71.9676 +95.713 22.1893 72.8282 +96.3661 22.7437 74.6478 +95.6043 22.9694 75.3886 +95.679 23.399 76.7987 +95.583 23.7929 78.0914 +95.5462 24.2072 79.4512 +95.4919 24.6231 80.8163 +95.3455 25.021 82.1224 +95.33 25.4594 83.5614 +95.8073 26.0388 85.4631 +95.6043 26.442 86.7863 +95.5283 26.8866 88.2456 +95.2903 27.292 89.5761 +95.7423 27.9043 91.5857 +95.5339 28.3338 92.9954 +95.3071 28.7644 94.4087 +95.6125 29.3652 96.3808 +95.3434 29.7989 97.8042 +95.1231 30.2553 99.3022 +95.3511 30.8642 101.3 +95.086 31.3238 102.809 +95.3254 31.9603 104.898 +94.8194 32.3567 106.199 +95.004 32.9985 108.306 +95.0937 33.6213 110.35 +95.0903 34.2243 112.329 +94.56 34.6472 113.717 +94.6272 35.2998 115.859 +94.6015 35.9322 117.935 +94.5451 36.5673 120.019 +94.6958 37.2983 122.418 +94.5159 37.915 124.442 +94.5384 38.6285 126.784 +94.7548 39.4404 129.449 +94.6465 40.1361 131.732 +94.4477 40.8103 133.945 +94.2156 41.4864 136.164 +94.4404 42.3844 139.111 +94.1886 43.0903 141.428 +94.0607 43.872 143.994 +94.102 44.7554 146.893 +93.8399 45.5178 149.396 +93.9454 46.4831 152.564 +93.9 47.4017 155.579 +93.8559 48.349 158.688 +93.8591 49.3504 161.975 +93.714 50.3046 165.107 +93.4718 51.2358 168.163 +93.5964 52.4022 171.991 +93.7036 53.5992 175.92 +93.3446 54.5656 179.092 +93.2415 55.7177 182.873 +93.4209 57.0841 187.358 +94.9623 59.3533 194.806 +115.699 73.9935 242.857 +115.879 75.8559 248.97 +115.916 77.6979 255.015 +115.656 79.4116 260.64 +115.685 81.3993 267.164 +113.543 81.9064 268.828 +110.757 81.9481 268.965 +107.582 81.6826 268.094 +104.817 81.7074 268.175 +102.127 81.7791 268.41 +99.3743 81.7884 268.441 +96.6612 81.8175 268.537 +93.9222 81.8117 268.517 +91.6235 82.1859 269.746 +91.2943 84.3893 276.977 +91.4539 87.1826 286.145 +91.1121 89.6474 294.235 +90.9879 92.4812 303.536 +90.6473 95.2648 312.672 +90.4831 98.4198 323.027 +90.5374 102.032 334.883 +88.9305 103.955 341.196 +86.6549 105.198 345.274 +86.1338 108.737 356.889 +86.0997 113.191 371.51 +85.6596 117.454 385.501 +88.3997 126.636 415.635 +88.8788 133.264 437.391 +88.5118 139.188 456.834 +88.2827 145.923 478.939 +88.2179 153.645 504.283 +87.4938 161.002 528.431 +84.9165 165.6 543.522 +86.9693 180.356 591.953 +83.093 183.951 603.753 +76.8142 182.333 598.442 +71.8954 183.911 603.622 +65.6021 181.913 597.064 +60.7279 183.814 603.302 +54.5072 181.58 595.972 +49.5077 183.339 601.745 +43.5838 181.656 596.219 +38.4789 183.359 601.811 +32.6053 181.326 595.136 +27.4322 183.12 601.024 +21.7319 181.377 595.303 +16.4077 182.619 599.382 +10.8484 181.139 594.523 +5.47677 182.908 600.33 +3.64153e-14 180.817 593.466 +-5.47416 182.821 600.043 +-10.8327 180.877 593.662 +-16.4208 182.765 599.86 +-21.6621 180.794 593.391 +-27.3057 182.275 598.252 +-32.4849 180.656 592.939 +-38.2591 182.312 598.374 +-43.3397 180.638 592.879 +-49.1703 182.09 597.644 +-54.1237 180.303 591.779 +-60.0953 181.899 597.017 +-64.9435 180.087 591.07 +-71.1143 181.913 597.064 +-75.9124 180.192 591.416 +-82.0879 181.726 596.45 +-86.7744 179.952 590.626 +-93.1347 181.627 596.124 +-97.6307 179.656 589.655 +-104.145 181.384 595.327 +-108.704 179.677 589.725 +-115.246 181.228 594.814 +-119.809 179.64 589.605 +-115.554 165.534 543.306 +-116.555 159.818 524.544 +-120.946 159.003 521.869 +-126.153 159.257 522.704 +-131.943 160.177 525.723 +-136.783 159.892 524.788 +-160.494 180.87 593.641 +-847.969 922.346 3027.27 +-875.553 920.155 3020.07 +-903.181 918.007 3013.02 +-162.684 160.069 525.368 +-144.198 137.463 451.174 +-145.241 134.256 440.646 +-146.659 131.553 431.775 +-151.196 131.7 432.258 +-1066.79 902.971 2963.67 +-1093.78 900.222 2954.65 +-1120.7 897.407 2945.41 +-145.056 113.075 371.126 +-145.712 110.633 363.114 +-145.538 107.682 353.429 +-147.108 106.119 348.298 +-151.313 106.468 349.443 +-1280.31 879.083 2885.27 +-1306.58 875.793 2874.47 +-1332.75 872.435 2863.45 +-1358.83 869.013 2852.22 +-482.672 301.679 990.152 +-137.032 83.7321 274.82 +-139.314 83.2495 273.236 +-142.203 83.1268 272.833 +-144.732 82.7878 271.721 +-147.575 82.6234 271.181 +-151.217 82.8881 272.05 +-435.503 233.772 767.273 +-110.052 57.8646 189.92 +-110.303 56.8215 186.496 +-110.95 56.0086 183.828 +-112.623 55.7244 182.895 +-113.926 55.2607 181.373 +-115.629 54.9938 180.497 +-117.059 54.5989 179.201 +-118.851 54.3727 178.459 +-121.019 54.3129 178.263 +-124.351 54.7562 179.718 +-419.003 181.049 594.229 +-420.217 178.199 584.875 +-421.751 175.548 576.172 +-422.752 172.737 566.945 +-423.852 170.028 558.055 +-424.466 167.186 548.728 +-135.589 52.4418 172.121 +-135.632 51.5168 169.085 +-429.424 160.193 525.776 +-431.154 157.977 518.502 +-429.322 154.519 507.152 +-2083.98 736.811 2418.32 +-436.774 151.709 497.929 +-438.507 149.639 491.136 +-440.281 147.616 484.497 +-442.166 145.661 478.08 +-443.433 143.535 471.101 +-445.619 141.735 465.195 +-447.323 139.808 458.869 +-446.673 137.185 450.26 +-448.471 135.352 444.244 +-452.157 134.102 440.142 +-454.175 132.37 434.457 +-455.624 130.495 428.303 +-457.14 128.663 422.289 +-457.929 126.653 415.692 +-460.607 125.185 410.875 +-2415.69 645.149 2117.47 +-2434.91 638.982 2097.23 +-383.99 99.0135 324.976 +-2472.81 626.499 2056.26 +-2491.47 620.186 2035.54 +-383.712 93.8394 307.994 +-384.886 92.4707 303.502 +-383.91 90.6077 297.387 +-140.948 32.6761 107.248 +-142.236 32.3882 106.302 +-142.566 31.8831 104.645 +-143.195 31.4491 103.22 +-142.122 30.6505 100.599 +-142.306 30.1335 98.9023 +-142.389 29.6013 97.1556 +-147.284 30.0571 98.6517 +-494.476 99.0482 325.09 +-497.588 97.8194 321.057 +-498.664 96.196 315.729 +-501.022 94.8288 311.241 +-503.083 93.41 306.585 +-504.758 91.9263 301.715 +-2793.85 498.986 1637.74 +-506.243 88.6541 290.975 +-527.834 90.6176 297.42 +-514.679 86.6049 284.249 +-516.991 85.2497 279.801 +-520.311 84.0585 275.892 +-522.808 82.7321 271.538 +-2892.98 448.317 1471.44 +-2906.29 440.943 1447.24 +-388.212 57.6504 189.216 +-379.542 55.152 181.017 +-380.549 54.0952 177.548 +-380.71 52.9248 173.706 +-379.562 51.585 169.309 +-380.182 50.4967 165.737 +-380.035 49.3142 161.856 +-380.672 48.2414 158.335 +-381.181 47.1575 154.777 +-379.16 45.7734 150.235 +-380.145 44.7638 146.921 +-380.355 43.6671 143.321 +-380.994 42.6248 139.901 +-380.851 41.501 136.212 +-381.045 40.4212 132.668 +-380.356 39.256 128.843 +-381.517 38.2872 125.664 +-381.7 37.2228 122.17 +-381.374 36.1156 118.536 +-381.296 35.0389 115.003 +-379.653 33.8294 111.033 +-379.788 32.7878 107.614 +-380.371 31.7887 104.335 +-380.441 30.7499 100.926 +-380.478 29.7132 97.5229 +-380.482 28.6787 94.1273 +-380.938 27.6817 90.8551 +-380.099 26.5961 87.2921 +-380.004 25.5693 83.9221 +-380.365 24.5767 80.664 +-380.402 23.5659 77.3465 +-380.015 22.5336 73.9583 +-380.282 21.544 70.7102 +-380.421 20.5494 67.4459 +-379.84 19.5203 64.0684 +-380.312 18.5487 60.8794 +-380.26 17.5534 57.6126 +-379.386 16.5252 54.2381 +-380.956 15.6043 51.2155 +-380.318 14.5929 47.896 +-380.641 13.6216 44.7078 +-380.439 12.6331 41.4637 +-380.604 11.659 38.2663 +-381.237 10.6989 35.1152 +-380.945 9.71363 31.8815 +-381.221 8.74437 28.7002 +-380.77 7.7602 25.47 +-378.992 6.75588 22.1737 +-380.877 5.81764 19.0943 +-380.737 4.84489 15.9016 +-3274.5 33.3269 109.384 +-3275.38 24.9975 82.0452 +-145.378 0.739583 2.42741 +-145.194 0.369296 1.21208 +96.1 1.77636e-15 1.13687e-13 +96.0963 0.251645 0.799974 +96.0854 0.503271 1.59989 +96.0671 0.754856 2.39967 +96.0415 1.00639 3.19929 +96.1084 1.25915 4.00282 +96.0682 1.51077 4.80271 +95.9208 1.76044 5.5964 +95.8659 2.01155 6.39468 +95.8038 2.2625 7.19246 +95.8339 2.5159 7.998 +95.6576 2.76388 8.78632 +96.6675 3.04877 9.69199 +96.5752 3.30179 10.4963 +96.674 3.56186 11.3231 +96.3684 3.80702 12.1024 +96.2541 4.05923 12.9042 +96.0334 4.30669 13.6909 +95.9045 4.558 14.4898 +95.6697 4.804 15.2718 +96.2157 5.09081 16.1836 +96.064 5.34256 16.9839 +95.905 5.5939 17.7829 +95.7386 5.84482 18.5806 +95.565 6.09532 19.3769 +95.3841 6.34534 20.1717 +96.0729 6.65561 21.1581 +95.8757 6.90692 21.957 +95.8652 7.17224 22.8004 +95.653 7.42298 23.5975 +96.2062 7.73532 24.5905 +95.9776 7.98693 25.3903 +95.7417 8.23797 26.1884 +96.3614 8.56504 27.2281 +96.1086 8.81707 28.0293 +96.7069 9.14961 29.0865 +96.4371 9.40248 29.8903 +96.16 9.65466 30.692 +96.7266 9.99401 31.7708 +96.338 10.2369 32.543 +96.0366 10.4888 33.3437 +96.4772 10.8239 34.4091 +97.1857 11.1944 35.5869 +96.7634 11.4375 36.3596 +96.5198 11.7017 37.1994 +96.915 12.0459 38.2936 +96.7451 12.3226 39.1734 +96.383 12.5755 39.9772 +96.105 12.8396 40.8169 +96.5469 13.2028 41.9714 +96.1593 13.4551 42.7735 +95.674 13.6934 43.5312 +96.171 14.075 44.7442 +96.5634 14.4468 45.9261 +96.0505 14.6855 46.6849 +96.5068 15.075 47.9231 +96.6828 15.4257 49.0381 +96.3184 15.6926 49.8866 +96.558 16.0606 51.0565 +96.0873 16.3129 51.8584 +96.3886 16.6989 53.0855 +96.5025 17.0573 54.2248 +96.0885 17.3248 55.0752 +96.3483 17.7168 56.3215 +96.5079 18.0957 57.5258 +96.6527 18.4767 58.737 +96.1116 18.729 59.5393 +96.3138 19.1291 60.811 +96.4171 19.5148 62.0371 +96.5052 19.9025 63.2697 +95.9227 20.1544 64.0706 +96.0656 20.5617 65.3652 +96.1112 20.9535 66.611 +95.4982 21.2044 67.4085 +95.6765 21.6343 68.775 +95.6784 22.0301 70.0334 +95.6645 22.4276 71.297 +95.713 22.8454 72.6251 +95.6667 23.2462 73.8993 +95.6814 23.6676 75.239 +95.679 24.0909 76.5845 +95.583 24.4964 77.8736 +95.6217 24.9426 79.2922 +95.4919 25.3511 80.5908 +95.3455 25.7608 81.8933 +95.8461 26.3541 83.7794 +95.8805 26.8292 85.2897 +96.2572 27.4098 87.1353 +95.4564 27.6608 87.9332 +95.9322 28.2883 89.928 +95.7423 28.7294 91.3302 +95.4638 29.1502 92.668 +95.3071 29.6149 94.1453 +95.6813 30.2551 96.1806 +95.4116 30.7019 97.601 +95.6636 31.3267 99.5871 +95.3511 31.7768 101.018 +95.6823 32.4523 103.165 +95.3254 32.9054 104.606 +94.9493 33.3591 106.048 +95.004 33.9742 108.003 +95.2209 34.6617 110.189 +95.1532 35.2594 112.089 +94.56 35.6717 113.4 +94.6887 36.3673 115.611 +94.6015 36.9947 117.606 +94.6053 37.6726 119.76 +94.5768 38.3528 121.923 +94.6334 39.0847 124.25 +94.5965 39.795 126.508 +94.9269 40.6805 129.323 +94.6465 41.3229 131.365 +94.4477 42.017 133.571 +94.2708 42.7384 135.865 +94.3859 43.6128 138.644 +94.2961 44.4148 141.194 +94.0077 45.1437 143.511 +94.102 46.0787 146.484 +93.8399 46.8637 148.979 +93.9961 47.8833 152.22 +93.9 48.8034 155.145 +93.9052 49.8047 158.328 +93.8107 50.7835 161.44 +93.714 51.7921 164.646 +93.8943 52.9893 168.452 +93.6426 53.9784 171.596 +93.7036 55.184 175.429 +93.7462 56.4209 179.361 +93.2415 57.3653 182.363 +93.464 58.799 186.921 +93.5254 60.1838 191.323 +115.741 76.2087 242.266 +115.554 77.8795 247.578 +115.597 79.7754 253.605 +115.656 81.7597 259.913 +115.762 83.8617 266.595 +113.581 84.3562 268.167 +110.72 84.3433 268.126 +107.94 84.3778 268.236 +105.132 84.3763 268.231 +102.401 84.4229 268.379 +99.6747 84.4616 268.502 +96.9542 84.4922 268.599 +94.2078 84.4868 268.582 +91.3145 84.3307 268.086 +91.2943 86.8846 276.205 +91.1323 89.4448 284.344 +91.1405 92.327 293.506 +90.8501 95.0717 302.232 +90.8076 98.2555 312.353 +90.4831 101.33 322.126 +90.5624 105.078 334.042 +89.5111 107.728 342.465 +86.4915 108.104 343.661 +85.9988 111.777 355.336 +86.143 116.597 370.66 +86.8447 122.6 389.744 +88.8384 131.027 416.532 +88.8407 137.146 435.984 +88.4936 143.274 455.466 +88.4217 150.474 478.355 +88.251 158.247 503.064 +86.7898 164.429 522.717 +85.3008 171.268 544.459 +86.4822 184.649 586.996 +81.6311 186.058 591.476 +75.7052 185.014 588.157 +70.5482 185.801 590.66 +64.5045 184.159 585.437 +59.5969 185.724 590.415 +53.7577 184.379 586.137 +48.5819 185.23 588.845 +42.9002 184.093 585.23 +37.7768 185.337 589.183 +32.1447 184.05 585.093 +26.9306 185.087 588.388 +21.3899 183.801 584.3 +16.1355 184.9 587.793 +10.6844 183.675 583.899 +5.37293 184.746 587.305 +3.28626e-14 183.343 582.843 +-5.36944 184.626 586.923 +-10.6634 183.315 582.755 +-16.0988 184.48 586.458 +-21.3061 183.081 582.012 +-26.8303 184.397 586.196 +-31.9616 183.002 581.759 +-37.551 184.229 585.66 +-42.6212 182.896 581.424 +-48.2602 184.004 584.946 +-53.2783 182.735 580.911 +-59.041 183.992 584.908 +-63.961 182.607 580.504 +-69.8464 183.953 584.784 +-74.6328 182.393 579.824 +-80.6391 183.797 584.289 +-85.2853 182.093 578.871 +-91.3314 183.377 582.951 +-96.0977 182.063 578.777 +-102.247 183.344 582.847 +-107.002 182.094 578.874 +-113.114 183.134 582.181 +-117.786 181.83 578.034 +-115.175 169.87 540.015 +-116.742 164.807 523.92 +-121.271 164.144 521.811 +-126.625 164.58 523.198 +-131.873 164.826 523.979 +-138.355 166.512 529.34 +-153.884 178.549 567.604 +-847.969 949.619 3018.82 +-164.779 178.294 566.794 +-903.071 945.034 3004.25 +-162.826 164.946 524.36 +-144.227 141.556 450.006 +-145.481 138.455 440.145 +-146.876 135.643 431.206 +-151.481 135.851 431.867 +-1066.79 929.67 2955.41 +-1093.78 926.841 2946.41 +-1120.7 923.942 2937.2 +-145.511 116.783 371.252 +-145.712 113.905 362.101 +-145.538 110.867 352.443 +-146.958 109.146 346.972 +-151.543 109.782 348.996 +-1280.31 905.077 2877.22 +-1306.58 901.689 2866.45 +-1332.75 898.232 2855.47 +-1358.83 894.709 2844.27 +-481.066 309.567 984.109 +-137.505 86.5059 275.001 +-139.621 85.8998 273.074 +-143.051 86.0948 273.694 +-144.959 85.3693 271.388 +-148.129 85.3858 271.44 +-151.78 85.657 272.302 +-435.407 240.632 764.966 +-109.858 59.4705 189.056 +-110.401 58.5538 186.142 +-111.45 57.9246 184.141 +-112.623 57.3722 182.385 +-114.493 57.1777 181.767 +-116.151 56.8758 180.807 +-117.589 56.4677 179.51 +-119.173 56.1323 178.444 +-121.509 56.1452 178.485 +-124.572 56.4755 179.535 +-419.451 186.602 593.204 +-419.48 183.147 582.221 +-420.948 180.395 573.472 +-422.868 177.893 565.519 +-425.145 175.589 558.196 +-423.633 171.792 546.124 +-426.025 169.646 539.301 +-136.18 53.2543 169.295 +-135.63 52.0918 165.599 +-432.399 163.118 518.549 +-429.7 159.228 506.182 +-2084.24 758.691 2411.87 +-437.353 156.402 497.198 +-438.118 153.927 489.331 +-440.872 152.185 483.793 +-442.564 150.103 477.176 +-444.035 147.98 470.425 +-445.822 145.993 464.108 +-447.323 143.942 457.589 +-447.912 141.633 450.25 +-449.097 139.548 443.622 +-452.086 138.046 438.847 +-454.882 136.496 433.92 +-455.91 134.438 427.375 +-457.5 132.572 421.443 +-458.872 130.666 415.386 +-460.168 128.764 409.338 +-2415.69 664.226 2111.56 +-2434.91 657.876 2091.38 +-2453.95 651.473 2071.02 +-2472.81 645.024 2050.52 +-2491.47 638.525 2029.86 +-383.558 96.5757 307.013 +-384.346 95.0714 302.231 +-383.91 93.2869 296.558 +-140.322 33.4929 106.473 +-142.945 33.5121 106.534 +-142.645 32.8441 104.411 +-142.796 32.289 102.646 +-142.283 31.5926 100.432 +-142.468 31.0599 98.739 +-143.203 30.6509 97.4388 +-147.939 31.0836 98.8144 +-495.217 102.13 324.67 +-497.34 100.661 320.001 +-499.414 99.1896 315.322 +-501.022 97.6328 310.373 +-503.842 96.3173 306.191 +-505.606 94.8035 301.379 +-524.544 96.4548 306.628 +-507.7 91.5384 290.999 +-529.299 93.5561 297.413 +-515.112 89.2408 283.695 +-517.775 87.9034 279.443 +-2865.69 476.655 1515.28 +-2879.44 469.132 1491.36 +-2892.98 461.573 1467.33 +-2906.29 453.982 1443.2 +-384.113 58.7282 186.696 +-381.421 57.0643 181.406 +-380.46 55.6819 177.012 +-380.71 54.4897 173.222 +-380.831 53.2876 169.4 +-379.636 51.9151 165.037 +-379.669 50.7238 161.25 +-379.755 49.5481 157.513 +-381.181 48.5519 154.346 +-380.269 47.2649 150.254 +-381.073 46.1997 146.868 +-380.913 45.0243 143.131 +-380.154 43.7883 139.202 +-380.851 42.7281 135.832 +-380.294 41.5345 132.037 +-382.053 40.5971 129.057 +-381.044 39.3704 125.158 +-381.226 38.2757 121.678 +-380.232 37.0721 117.852 +-379.865 35.9397 114.252 +-379.653 34.8297 110.723 +-381.035 33.8683 107.667 +-379.891 32.6872 103.912 +-380.441 31.6592 100.644 +-381.058 30.6383 97.3988 +-380.482 29.5267 93.8648 +-380.453 28.4639 90.4863 +-380.975 27.4456 87.249 +-380.589 26.3659 83.8168 +-380.658 25.3228 80.5009 +-380.304 24.2565 77.1109 +-380.113 23.2058 73.771 +-379.497 22.1352 70.3674 +-380.421 21.157 67.2577 +-380.136 20.1131 63.9394 +-380.312 19.0972 60.7096 +-380.853 18.1005 57.5413 +-380.771 17.076 54.2842 +-380.461 16.0448 51.0062 +-381.409 15.0675 47.8994 +-380.145 14.0061 44.525 +-379.942 12.9897 41.294 +-381.2 12.0225 38.2195 +-380.64 10.998 34.9624 +-380.546 9.99038 31.7592 +-381.221 9.00294 28.6202 +-380.172 7.97712 25.3591 +-379.79 6.97032 22.1585 +-380.078 5.97712 19.0012 +-379.538 4.97246 15.8074 +-3274.5 34.3124 109.079 +-144.85 1.13818 3.61825 +-144.378 0.756215 2.404 +-145.894 0.382049 1.21453 +96.1 1.77636e-15 1.13687e-13 +96.1963 0.259121 0.798502 +96.0854 0.517684 1.59529 +96.0671 0.776474 2.39277 +96.1414 1.03628 3.1934 +96.1084 1.29521 3.9913 +96.0682 1.55403 4.78888 +96.0206 1.81274 5.58611 +96.9632 2.09284 6.44926 +95.8038 2.3273 7.17176 +96.0332 2.59333 7.99156 +96.7525 2.87557 8.86131 +96.6675 3.13608 9.66409 +96.5752 3.39635 10.4661 +96.674 3.66387 11.2905 +96.3684 3.91604 12.0676 +95.2638 4.13254 12.7348 +96.0334 4.43003 13.6515 +95.9045 4.68854 14.4481 +95.6697 4.94158 15.2279 +95.5264 5.1991 16.0214 +96.064 5.49557 16.935 +95.905 5.7541 17.7317 +95.7386 6.01221 18.5271 +95.565 6.26988 19.3211 +95.3841 6.52706 20.1137 +96.2678 6.86011 21.14 +95.195 7.05429 21.7384 +95.8652 7.37764 22.7348 +95.653 7.63556 23.5296 +96.3994 7.97281 24.5689 +96.1703 8.23218 25.3681 +95.7417 8.47389 26.113 +95.4984 8.73144 26.9066 +96.1086 9.06958 27.9486 +96.7069 9.41164 29.0027 +96.4371 9.67175 29.8043 +96.16 9.93115 30.6037 +95.8756 10.1898 31.4006 +96.338 10.5301 32.4493 +96.1306 10.7997 33.2802 +96.7582 11.1663 34.41 +96.1588 11.3934 35.1095 +96.7634 11.765 36.2549 +96.5198 12.0368 37.0924 +97.0074 12.4027 38.2198 +96.7451 12.6755 39.0606 +96.383 12.9356 39.8622 +96.9272 13.3203 41.0476 +96.5469 13.5809 41.8506 +96.3405 13.8665 42.7307 +96.5766 14.2185 43.8154 +96.171 14.4781 44.6154 +96.4739 14.8467 45.7514 +96.1396 15.1201 46.5937 +96.4181 15.4925 47.7413 +96.7711 15.882 48.9417 +96.3184 16.142 49.743 +96.558 16.5206 50.9095 +96.0873 16.7801 51.7091 +96.3886 17.1771 52.9327 +96.6748 17.5771 54.1652 +96.8599 17.964 55.3575 +96.2631 18.2081 56.1097 +96.5079 18.6139 57.3602 +95.8936 18.8566 58.108 +96.1955 19.2822 59.4198 +96.2304 19.6599 60.5834 +96.4171 20.0736 61.8586 +96.5052 20.4725 63.0876 +95.9227 20.7316 63.8862 +96.0656 21.1505 65.177 +96.1112 21.5536 66.4192 +96.3021 21.9953 67.7803 +95.6765 22.2538 68.577 +95.5991 22.6423 69.7739 +95.7433 23.0889 71.1504 +95.713 23.4996 72.416 +95.7444 23.9314 73.7465 +95.6814 24.3454 75.0224 +95.679 24.7808 76.364 +95.583 25.1979 77.6494 +95.6217 25.6569 79.0639 +96.091 26.2408 80.8631 +95.2712 26.4779 81.5939 +95.9198 27.1298 83.6025 +95.8073 27.5765 84.9794 +95.6043 28.0035 86.2951 +95.4564 28.453 87.6801 +95.2903 28.9037 89.0691 +95.813 29.574 91.1346 +95.5339 30.007 92.4691 +95.3071 30.463 93.8743 +95.6813 31.1216 95.9038 +95.2752 31.5361 97.1812 +95.6636 32.2238 99.3004 +95.3511 32.6868 100.727 +95.086 33.1736 102.227 +95.1942 33.8011 104.161 +94.9493 34.3144 105.743 +95.004 34.9472 107.693 +95.2209 35.6543 109.872 +95.1532 36.2692 111.766 +94.56 36.6933 113.073 +94.6887 37.4088 115.278 +94.6624 38.0786 117.342 +94.7257 38.8005 119.567 +94.5768 39.4512 121.572 +94.6334 40.204 123.892 +94.5384 40.9096 126.066 +94.3533 41.5927 128.171 +94.5898 42.481 130.909 +94.3358 43.1694 133.03 +94.2708 43.9623 135.473 +93.9502 44.6546 137.607 +94.2961 45.6868 140.788 +94.1667 46.515 143.34 +94.102 47.3984 146.062 +93.8914 48.2324 148.632 +93.9454 49.2281 151.7 +93.9 50.201 154.699 +93.9052 51.231 157.873 +93.8107 52.2379 160.975 +93.6185 53.221 164.005 +93.8943 54.5069 167.967 +93.6426 55.5242 171.102 +93.6582 56.737 174.84 +93.3446 57.788 178.078 +93.2415 59.0081 181.838 +93.464 60.4829 186.383 +93.5254 61.9074 190.773 +115.699 78.3632 241.482 +115.554 80.1099 246.865 +115.597 82.06 252.875 +115.656 84.1012 259.165 +115.723 86.2347 265.739 +113.88 87.0011 268.101 +111.05 87.0175 268.151 +108.227 87.0249 268.174 +105.167 86.8218 267.548 +102.709 87.1017 268.411 +99.7081 86.9094 267.818 +97.2472 87.1746 268.636 +94.176 86.877 267.719 +91.3763 86.8045 267.495 +91.5649 89.638 276.227 +91.1907 92.0653 283.707 +91.1405 94.9711 292.661 +90.8776 97.8241 301.453 +90.6473 100.891 310.903 +90.5608 104.321 321.474 +90.5624 108.087 333.08 +89.6804 111.023 342.126 +86.4215 111.11 342.394 +86.0213 115.008 354.405 +86.078 119.846 369.314 +88.0506 127.863 394.019 +88.8384 134.779 415.333 +88.8407 141.073 434.729 +88.4571 147.316 453.967 +88.248 154.48 476.041 +88.251 162.779 501.616 +86.3518 168.285 518.582 +86.3503 178.34 549.571 +85.675 188.164 579.843 +80.7957 189.428 583.738 +74.9253 188.352 580.421 +69.7671 189.006 582.438 +63.9505 187.806 578.738 +58.8972 188.8 581.804 +53.165 187.568 578.007 +48.0327 188.381 580.512 +42.4538 187.395 577.472 +37.3556 188.519 580.936 +31.7522 187.01 576.285 +26.634 188.291 580.233 +21.1177 186.658 575.203 +15.9313 187.788 578.684 +10.5517 186.59 574.991 +5.30748 187.722 578.481 +3.28626e-14 186.618 575.078 +-5.30399 187.599 578.1 +-10.5447 186.466 574.61 +-15.9103 187.541 577.924 +-21.1177 186.658 575.203 +-26.5119 187.427 577.572 +-31.6423 186.362 574.29 +-37.0748 187.102 576.569 +-42.2096 186.317 574.152 +-47.6953 187.058 576.435 +-52.6944 185.908 572.89 +-58.2934 186.865 575.839 +-63.3129 185.933 572.968 +-69.02 186.982 576.202 +-73.8894 185.748 572.397 +-79.621 186.674 575.25 +-84.5059 185.597 571.931 +-90.2672 186.43 574.5 +-95.1278 185.387 571.286 +-101.191 186.646 575.166 +-105.804 185.211 570.744 +-111.893 186.346 574.24 +-116.756 185.401 571.329 +-114.876 174.282 537.063 +-117.054 169.98 523.807 +-121.336 168.935 520.587 +-126.85 169.594 522.618 +-131.943 169.636 522.748 +-138.355 171.281 527.816 +-150.078 179.12 551.972 +-160.08 184.403 568.254 +-875.553 974.494 3002.98 +-903.071 972.098 2995.6 +-162.94 169.788 523.216 +-144.315 145.699 448.983 +-145.722 142.655 439.604 +-146.938 139.586 430.145 +-151.83 140.063 431.616 +-1066.79 956.295 2946.9 +-1093.78 953.384 2937.93 +-1120.7 950.402 2928.74 +-145.616 120.215 370.451 +-145.748 117.195 361.147 +-145.244 113.812 350.72 +-147.071 112.357 346.238 +-151.772 113.098 348.52 +-1280.31 930.997 2868.94 +-1306.58 927.512 2858.2 +-1332.75 923.956 2847.25 +-1358.83 920.332 2836.08 +-479.629 317.482 978.346 +-137.505 88.9833 274.209 +-139.84 88.4984 272.715 +-143.319 88.7262 273.417 +-145.005 87.8416 270.691 +-148.314 87.9407 270.996 +-152.015 88.2463 271.938 +-435.598 247.632 763.098 +-109.906 61.2005 188.594 +-110.106 60.0696 185.109 +-111.55 59.6369 183.776 +-112.674 59.0418 181.942 +-114.493 58.8152 181.244 +-116.099 58.4784 180.206 +-117.483 58.0324 178.832 +-119.173 57.7398 177.93 +-121.4 57.7015 177.812 +-124.793 58.196 179.336 +-419.339 191.895 591.338 +-419.311 188.316 580.311 +-420.546 185.384 571.275 +-423.391 183.214 564.589 +-424.675 180.418 555.974 +-425.477 177.481 546.923 +-424.58 173.912 535.925 +-428.203 172.248 530.796 +-135.753 53.6321 165.272 +-138.385 53.6994 165.479 +-430.266 164.004 505.391 +-555.678 208.067 641.176 +-437.16 160.81 495.548 +-438.702 158.546 488.573 +-440.872 156.543 482.401 +-442.564 154.402 475.803 +-444.838 152.493 469.92 +-446.16 150.288 463.123 +-447.323 148.064 456.272 +-447.706 145.622 448.746 +-448.68 143.412 441.935 +-450.965 141.647 436.497 +-454.104 140.165 431.931 +-455.624 138.201 425.878 +-457.788 136.454 420.495 +-459.235 134.515 414.518 +-460.899 132.662 408.809 +-2415.69 683.248 2105.48 +-2434.91 676.717 2085.36 +-2453.95 670.13 2065.06 +-2472.81 663.497 2044.62 +-2491.47 656.811 2024.02 +-383.865 99.4208 306.373 +-383.42 97.5583 300.634 +-383.832 95.9391 295.644 +-141.026 34.6249 106.7 +-142.157 34.2817 105.642 +-142.883 33.8412 104.285 +-142.636 33.1764 102.236 +-142.283 32.4973 100.143 +-143.439 32.1671 99.1254 +-144.017 31.7078 97.71 +-148.021 31.9914 98.5842 +-495.135 105.037 323.681 +-497.34 103.544 319.08 +-499.414 102.03 314.414 +-501.777 100.58 309.947 +-503.842 99.0757 305.31 +-506.115 97.6167 300.814 +-524.203 99.1526 305.547 +-509.157 94.4303 290.995 +-533.004 96.9089 298.633 +-516.151 91.9817 283.449 +-517.775 90.4208 278.639 +-520.574 89.0676 274.469 +-2879.44 482.567 1487.07 +-2892.98 474.792 1463.11 +-2906.29 466.983 1439.05 +-383.044 60.2421 185.641 +-381.511 58.7121 180.926 +-380.729 57.3169 176.627 +-379.627 55.8906 172.231 +-381.193 54.8658 169.074 +-380.182 53.4787 164.799 +-380.035 52.2265 160.94 +-380.213 51.0285 157.249 +-381.181 49.9424 153.901 +-380.823 48.6892 150.04 +-381.629 47.5922 146.659 +-380.913 46.3137 142.719 +-380.341 45.0646 138.87 +-380.008 43.8546 135.141 +-380.576 42.7554 131.754 +-382.618 41.8214 128.876 +-380.855 40.4778 124.736 +-381.131 39.3623 121.298 +-381.944 38.3054 118.041 +-379.961 36.9782 113.951 +-379.653 35.8272 110.404 +-380.268 34.7678 107.14 +-379.891 33.6233 103.613 +-379.863 32.5161 100.201 +-381.637 31.5636 97.2658 +-380.192 30.3491 93.5232 +-380.55 29.2865 90.2488 +-380.391 28.1883 86.8646 +-380.784 27.1349 83.6183 +-380.365 26.028 80.2074 +-380.597 24.9704 76.9482 +-380.309 23.8827 73.5966 +-379.89 22.7927 70.2374 +-381.405 21.8192 67.2375 +-378.757 20.6141 63.5241 +-379.917 19.6237 60.472 +-381.544 18.6527 57.4799 +-380.771 17.565 54.1279 +-380.461 16.5043 50.8594 +-381.111 15.487 47.7244 +-380.741 14.4297 44.4664 +-380.24 13.3722 41.2075 +-380.902 12.3572 38.0796 +-380.938 11.3218 34.8892 +-380.945 10.2873 31.701 +-380.224 9.23654 28.4631 +-379.573 8.19264 25.2463 +-380.09 7.17559 22.1122 +-380.578 6.15635 18.9713 +-380.238 5.12428 15.7909 +-3274.5 35.295 108.765 +-3275.38 26.4737 81.5808 +-145.078 0.781641 2.40869 +-146.494 0.394608 1.21602 +96.2 -1.77636e-15 -2.27374e-13 +96.1963 0.266314 0.796132 +96.1853 0.532607 1.5922 +96.167 0.79886 2.38815 +96.3413 1.06727 3.19054 +96.3082 1.33393 3.98772 +96.2679 1.60049 4.7846 +96.0206 1.86306 5.56952 +96.1652 2.13323 6.37719 +96.9004 2.41928 7.23231 +96.0332 2.66532 7.96784 +96.7525 2.9554 8.83501 +96.8664 3.22977 9.65523 +95.8797 3.46547 10.3598 +96.7732 3.76944 11.2686 +96.5667 4.03306 12.0566 +96.4521 4.30024 12.8553 +96.1323 4.5577 13.625 +96.0033 4.82364 14.42 +95.7683 5.08399 15.1983 +95.6248 5.34891 15.9903 +95.3757 5.60764 16.7638 +96.1013 5.92595 17.7153 +95.9346 6.19176 18.51 +95.565 6.44393 19.2638 +96.458 6.78375 20.2797 +96.2678 7.05054 21.0772 +96.1674 7.32415 21.8952 +95.8652 7.58244 22.6673 +95.653 7.84752 23.4598 +95.5301 8.12025 24.2751 +96.2667 8.46917 25.3181 +95.7417 8.70912 26.0355 +96.5531 9.07293 27.123 +96.2999 9.33988 27.9211 +96.0393 9.60613 28.717 +95.5812 9.85202 29.4521 +96.16 10.2068 30.5128 +96.7266 10.5656 31.5853 +96.4322 10.833 32.3846 +96.1306 11.0995 33.1815 +96.7582 11.4763 34.3078 +96.4389 11.7437 35.1073 +96.8565 12.1033 36.1821 +97.447 12.4898 37.3376 +97.0997 12.7591 38.1426 +96.8371 13.0398 38.9818 +96.4747 13.3074 39.7817 +96.105 13.5739 40.5786 +96.5469 13.9579 41.7264 +96.3405 14.2514 42.6039 +96.5766 14.6132 43.6854 +96.171 14.88 44.4829 +96.5634 15.273 45.6579 +96.1396 15.5398 46.4554 +96.4181 15.9225 47.5996 +95.9764 16.1888 48.3957 +96.3184 16.5901 49.5954 +96.6455 16.9946 50.8044 +96.1743 17.2615 51.6023 +96.4752 17.6698 52.823 +95.8993 17.9201 53.5712 +96.1742 18.332 54.8025 +96.3483 18.7301 55.9926 +96.5079 19.1306 57.1899 +95.8936 19.38 57.9355 +96.1955 19.8175 59.2434 +96.2304 20.2056 60.4036 +96.4171 20.6309 61.675 +95.7635 20.8791 62.4169 +96.0046 21.3253 63.751 +96.147 21.7561 65.0387 +96.1921 22.1706 66.2779 +95.4982 22.4172 67.0149 +95.6765 22.8716 68.3734 +95.6784 23.2901 69.6245 +95.7433 23.7299 70.9392 +95.7912 24.1717 72.2601 +95.7444 24.5957 73.5276 +95.7586 25.0414 74.86 +96.3684 25.6522 76.686 +95.583 25.8974 77.419 +95.6217 26.3692 78.8292 +95.5667 26.822 80.1831 +96.1629 27.4677 82.1132 +95.9935 27.9043 83.4184 +95.8805 28.3637 84.7918 +95.6769 28.8027 86.1043 +95.5283 29.2648 87.4857 +95.9322 29.9062 89.4029 +95.7423 30.3725 90.797 +95.5339 30.84 92.1946 +95.3071 31.3087 93.5957 +95.6125 31.9627 95.5508 +95.3434 32.4347 96.9619 +95.7311 33.1418 99.0758 +95.3511 33.5942 100.428 +95.0197 34.0707 101.853 +95.3254 34.7873 103.995 +94.9493 35.267 105.429 +95.004 35.9173 107.373 +95.2209 36.6441 109.546 +95.1532 37.276 111.435 +95.2447 37.985 113.554 +94.8119 38.4974 115.086 +94.5406 39.0855 116.844 +94.5451 39.8018 118.985 +94.5768 40.5464 121.211 +94.4571 41.243 123.294 +94.5965 42.071 125.769 +94.9843 43.0331 128.645 +94.6465 43.6863 130.598 +94.5595 44.4727 132.949 +94.2708 45.1827 135.071 +94.4404 46.1334 137.914 +94.2424 46.9284 140.29 +94.1667 47.8062 142.914 +94.102 48.7141 145.628 +93.8399 49.544 148.109 +93.9454 50.5947 151.25 +93.9 51.5946 154.239 +93.8559 52.6256 157.321 +93.8591 53.7156 160.58 +93.714 54.7542 163.685 +93.4718 55.7678 166.715 +93.6426 57.0656 170.595 +93.7036 58.3402 174.405 +93.7462 59.6478 178.314 +93.2415 60.6462 181.299 +93.464 62.1619 185.83 +92.9338 63.2234 189.003 +115.741 80.5674 240.852 +115.676 82.4206 246.392 +115.597 84.338 252.124 +115.656 86.4358 258.395 +116.03 88.863 265.651 +114.255 89.7103 268.184 +111.013 89.4032 267.266 +108.585 89.737 268.264 +105.482 89.4993 267.554 +103.016 89.7877 268.416 +99.9418 89.5314 267.649 +97.2472 89.5945 267.838 +94.4616 89.5596 267.734 +91.5617 89.3953 267.243 +91.3845 91.9449 274.864 +91.1323 94.5605 282.684 +91.1973 97.6684 291.975 +90.8776 100.54 300.558 +90.7007 103.753 310.163 +90.6643 107.34 320.887 +90.3621 110.842 331.357 +89.9466 114.443 342.122 +86.4215 114.194 341.378 +85.9763 118.138 353.169 +85.9482 122.987 367.662 +89.1525 133.057 397.766 +88.8384 138.521 414.1 +88.5926 144.585 432.229 +88.4936 151.468 452.807 +88.1959 158.674 474.349 +88.2014 167.204 499.847 +85.1629 170.575 509.925 +87.7692 186.303 556.944 +84.1301 189.9 567.697 +79.7646 192.202 574.578 +73.341 189.487 566.462 +68.7483 191.416 572.229 +62.738 189.359 566.08 +58.0538 191.263 571.769 +52.1017 188.919 564.765 +47.3893 191.017 571.036 +41.6865 189.116 565.352 +36.8184 190.966 570.882 +31.1451 188.526 563.588 +26.2283 190.57 569.699 +20.7478 188.479 563.45 +15.7219 190.464 569.382 +10.3685 188.439 563.328 +5.23243 190.205 568.608 +3.28626e-14 188.277 562.845 +-5.23505 190.3 568.892 +-10.3528 188.153 562.475 +-15.7036 190.242 568.719 +-20.678 187.845 561.554 +-26.1411 189.936 567.804 +-31.0457 187.924 561.789 +-36.6047 189.858 567.569 +-41.3586 187.629 560.906 +-47.0205 189.531 566.593 +-51.6746 187.371 560.136 +-57.5266 189.526 566.578 +-62.0795 187.372 560.139 +-68.0238 189.399 566.199 +-72.4757 187.251 559.779 +-78.381 188.868 564.611 +-82.9054 187.136 559.433 +-89.1439 189.221 565.666 +-93.3601 186.993 559.006 +-99.6392 188.886 564.666 +-103.859 186.854 558.59 +-110.344 188.867 564.609 +-114.409 186.718 558.182 +-114.138 177.969 532.03 +-117.262 175.009 523.18 +-121.639 174.058 520.338 +-126.94 174.426 521.437 +-132.27 174.777 522.488 +-139.299 177.236 529.838 +-147.649 181.113 541.428 +-153.583 181.831 543.574 +-875.553 1001.55 2994.07 +-903.071 999.084 2986.71 +-163.508 175.11 523.481 +-144.461 149.895 448.104 +-146.023 146.918 439.204 +-146.567 143.099 427.787 +-152.211 144.312 431.414 +-1066.79 982.841 2938.15 +-1093.78 979.85 2929.21 +-1120.7 976.785 2920.05 +-145.336 123.314 368.641 +-145.426 120.182 359.279 +-145.574 117.237 350.473 +-147.595 115.888 346.441 +-152.423 116.735 348.974 +-1280.31 956.841 2860.43 +-1306.58 953.259 2849.72 +-1332.75 949.605 2838.79 +-1358.83 945.881 2827.66 +-477.432 324.801 970.976 +-137.376 91.3675 273.138 +-140.323 91.2689 272.844 +-143.586 91.3596 273.115 +-145.095 90.3368 270.057 +-148.591 90.5507 270.696 +-153.799 91.7606 274.313 +-110.415 64.5116 192.854 +-110.1 63.0105 188.367 +-110.549 61.9855 185.302 +-111.6 61.32 183.313 +-113.08 60.8993 182.055 +-114.441 60.4209 180.625 +-116.047 60.0745 179.59 +-117.96 59.8858 179.025 +-119.549 59.5301 177.962 +-122.217 59.7024 178.477 +-125.566 60.1817 179.91 +-420.289 197.669 590.92 +-419.707 193.726 579.135 +-420.546 190.53 569.58 +-421.648 187.525 560.596 +-424.44 185.324 554.016 +-425.893 182.587 545.833 +-427.529 179.982 538.046 +-426.742 176.426 527.415 +-428.993 174.188 520.725 +-135.272 53.9488 161.277 +-135.744 53.1776 158.972 +-436.859 168.118 502.579 +-437.738 165.492 494.73 +-439.287 163.165 487.772 +-441.659 161.176 481.827 +-442.564 158.688 474.39 +-444.838 156.726 468.525 +-446.768 154.67 462.378 +-448.005 152.406 455.611 +-447.912 149.734 447.621 +-449.305 147.598 441.237 +-451.175 145.647 435.405 +-453.892 143.989 430.448 +-455.91 142.127 424.88 +-458.148 140.352 419.576 +-459.96 138.467 413.941 +-460.899 136.345 407.595 +-2415.69 702.215 2099.23 +-2434.91 695.502 2079.17 +-2453.95 688.732 2058.93 +-2472.81 681.915 2038.55 +-2491.47 675.044 2018.01 +-384.018 102.221 305.585 +-384.115 100.448 300.285 +-382.045 98.1433 293.394 +-141.339 35.6651 106.619 +-142.551 35.3311 105.62 +-143.2 34.8578 104.205 +-142.556 34.0783 101.875 +-142.283 33.3994 99.8459 +-143.115 32.9854 98.6083 +-144.994 32.8091 98.081 +-148.267 32.9341 98.4546 +-495.382 108.007 322.881 +-498.334 106.631 318.769 +-499.414 104.863 313.481 +-502.028 103.424 309.181 +-503.842 101.826 304.404 +-506.37 100.377 300.072 +-524.288 101.922 304.689 +-511.815 97.558 291.645 +-2823.3 527.572 1577.15 +-516.151 94.5351 282.608 +-517.775 92.9308 277.812 +-521.186 91.6476 273.976 +-523.951 90.2467 269.788 +-2892.98 487.972 1458.77 +-2906.29 479.946 1434.77 +-381.974 61.7416 184.573 +-380.347 60.1579 179.839 +-380.729 58.908 176.103 +-381.342 57.7016 172.496 +-380.377 56.2684 168.211 +-380.455 55.0026 164.427 +-380.035 53.6763 160.462 +-381.864 52.6729 157.463 +-380.813 51.2789 153.296 +-379.899 49.9193 149.231 +-380.516 48.7709 145.798 +-381.471 47.6692 142.504 +-380.341 46.3155 138.458 +-381.132 45.2052 135.139 +-380.576 43.9423 131.363 +-382.053 42.9189 128.304 +-381.517 41.6738 124.582 +-381.7 40.5153 121.118 +-380.518 39.2219 117.252 +-380.724 38.0811 113.842 +-381.757 37.0257 110.686 +-381.035 35.8053 107.038 +-380.371 34.6005 103.436 +-380.73 33.4952 100.132 +-380.768 32.3659 96.7562 +-380.192 31.1916 93.2456 +-380.162 30.0688 89.8892 +-379.808 28.9264 86.474 +-381.174 27.9167 83.4555 +-381.341 26.8192 80.1746 +-379.326 25.5778 76.4636 +-380.309 24.5457 73.3781 +-380.086 23.4375 70.0651 +-380.52 22.3728 66.8823 +-380.628 21.291 63.6484 +-379.72 20.158 60.2612 +-381.544 19.1705 57.3092 +-381.068 18.0667 54.0094 +-380.659 16.9713 50.7348 +-380.913 15.9086 47.5579 +-381.038 14.8419 44.369 +-380.538 13.7542 41.1173 +-380.604 12.6902 37.9368 +-379.345 11.5875 34.6401 +-379.949 10.5452 31.5242 +-381.52 9.5253 28.4754 +-380.77 8.44661 25.2507 +-380.689 7.38639 22.0812 +-380.578 6.32725 18.915 +-379.538 5.25685 15.7151 +-3274.5 36.2748 108.442 +-3275.38 27.2086 81.3387 +-145.478 0.805556 2.40817 +-146.194 0.404731 1.20992 +96.6 3.55271e-15 -1.7053e-13 +96.3963 0.274052 0.795347 +96.3853 0.548083 1.59063 +97.1667 0.828896 2.4056 +96.6411 1.09941 3.19068 +96.3082 1.36985 3.97552 +96.5675 1.6487 4.78481 +96.2202 1.9172 5.56404 +96.3647 2.19521 6.37088 +97.0997 2.48953 7.22504 +97.129 2.76831 8.03412 +96.9516 3.04121 8.82612 +96.0708 3.28946 9.54657 +96.7739 3.59197 10.4245 +96.8725 3.87487 11.2455 +96.5667 4.14165 12.0198 +96.5511 4.42054 12.8292 +96.3301 4.69002 13.6112 +96.8922 4.99937 14.509 +96.656 5.26928 15.2923 +96.6096 5.54951 16.1056 +96.2607 5.81208 16.8676 +96.1995 6.09172 17.6792 +95.9346 6.35847 18.4534 +95.9563 6.64449 19.2835 +95.677 6.91 20.054 +95.5857 7.18906 20.8639 +96.1674 7.52134 21.8282 +96.0593 7.80236 22.6438 +96.6211 8.14038 23.6248 +96.5926 8.43162 24.47 +96.2667 8.69719 25.2407 +96.03 8.97054 26.034 +96.5531 9.3172 27.0401 +96.3955 9.60088 27.8634 +96.0393 9.86476 28.6292 +96.7224 10.2381 29.7126 +96.3497 10.5023 30.4795 +96.8211 10.8607 31.5195 +96.4322 11.1246 32.2855 +96.2245 11.4095 33.1123 +96.7582 11.7853 34.2029 +96.5322 12.0716 35.0338 +96.9495 12.4411 36.1061 +96.7053 12.7284 36.9401 +97.0997 13.1026 38.0259 +96.9292 13.4036 38.8995 +96.4747 13.6656 39.66 +96.1963 13.9527 40.493 +96.5469 14.3337 41.5988 +96.4311 14.6489 42.5136 +96.7571 15.0347 43.6332 +96.4406 15.3234 44.4712 +96.5634 15.6842 45.5183 +96.2287 15.973 46.3563 +96.5068 16.3662 47.4976 +96.153 16.6553 48.3365 +96.3184 17.0368 49.4437 +96.9079 17.4995 50.7865 +96.1743 17.7262 51.4445 +96.4752 18.1455 52.6615 +96.761 18.5679 53.8873 +96.1742 18.8255 54.6349 +96.3483 19.2344 55.8214 +96.6775 19.6802 57.1153 +95.9779 19.9193 57.8091 +96.2794 20.3688 59.1138 +96.3138 20.7676 60.2711 +96.5829 21.2228 61.5922 +95.8459 21.4596 62.2795 +96.1684 21.9369 63.6645 +96.147 22.3418 64.8398 +96.273 22.7866 66.1307 +95.5786 23.0401 66.8662 +96.3953 23.6638 68.6765 +96.3924 24.0956 69.9296 +95.8221 24.3888 70.7804 +96.4173 24.9848 72.51 +95.8221 25.2784 73.3622 +96.2987 25.8607 75.0521 +95.7556 26.1754 75.9653 +95.6591 26.6158 77.2437 +95.7726 27.1219 78.7122 +96.091 27.6953 80.3765 +96.1629 28.2072 81.8621 +95.9198 28.6336 83.0995 +95.9536 29.1496 84.597 +95.7494 29.6006 85.9061 +95.6003 30.0754 87.2839 +95.3616 30.5287 88.5995 +95.8837 31.2363 90.6531 +95.5339 31.6703 91.9127 +95.3766 32.1751 93.3776 +95.1306 32.6577 94.7783 +95.4798 33.3559 96.8044 +95.1907 33.8419 98.215 +95.4849 34.5472 100.262 +95.6823 35.232 102.249 +95.391 35.7487 103.749 +94.9493 36.2165 105.106 +95.1326 36.9345 107.19 +95.2209 37.6307 109.211 +95.2791 38.3304 111.241 +94.56 38.7272 112.393 +94.8119 39.5338 114.734 +94.6015 40.1635 116.561 +94.6053 40.8995 118.697 +94.6958 41.6904 120.993 +94.751 42.4853 123.3 +94.5384 43.1773 125.308 +94.9269 44.165 128.174 +94.3066 44.7016 129.732 +94.5036 45.643 132.464 +94.2708 46.3992 134.658 +94.0592 47.1843 136.937 +94.1886 48.1645 139.782 +94.2196 49.121 142.558 +93.8407 49.8869 144.78 +93.9429 50.9336 147.818 +94.4021 52.2093 151.52 +93.95 53.0117 153.849 +93.9052 54.0708 156.923 +93.9076 55.1905 160.172 +93.714 56.2284 163.184 +93.9413 57.5569 167.04 +93.5964 58.573 169.989 +93.7944 59.9689 174.04 +93.7462 61.2538 177.769 +93.6799 62.5718 181.594 +93.507 63.8651 185.348 +92.9338 64.9255 188.425 +115.326 82.4401 239.255 +115.595 84.5804 245.467 +115.637 86.6383 251.439 +115.656 88.763 257.605 +115.953 91.1952 264.664 +114.63 92.4276 268.241 +111.636 92.3256 267.945 +108.908 92.4266 268.238 +105.833 92.2139 267.62 +103.358 92.5113 268.484 +100.276 92.2491 267.723 +97.8658 92.5921 268.718 +94.7789 92.2797 267.811 +92.1798 92.4217 268.224 +91.4747 94.5135 274.294 +91.4831 97.4803 282.905 +91.1405 100.235 290.9 +90.9879 103.372 300.002 +90.6473 106.483 309.032 +90.742 110.324 320.18 +90.3872 113.858 330.435 +90.2853 117.967 342.36 +86.0947 116.825 339.047 +86.1563 121.573 352.826 +87.6797 128.842 373.923 +89.0278 136.448 395.994 +88.8782 142.314 413.019 +88.7262 148.701 431.556 +88.3113 155.226 450.492 +88.248 163.042 473.177 +87.4422 170.227 494.029 +86.5239 177.966 516.489 +87.4293 190.578 553.09 +81.7503 189.496 549.951 +77.7414 192.37 558.292 +71.1595 188.801 547.933 +67.1182 191.909 556.953 +60.8042 188.464 546.954 +56.6161 191.548 555.906 +50.5503 188.229 546.273 +46.1575 191.061 554.492 +40.396 188.195 546.175 +35.8965 191.197 554.886 +30.2606 188.104 545.909 +25.5828 190.884 553.978 +20.0951 187.466 544.057 +15.3266 190.674 553.37 +10.0543 187.649 544.589 +5.10415 190.537 552.972 +3.4639e-14 187.613 544.484 +-5.09891 190.342 552.405 +-10.0282 187.16 543.171 +-15.3057 190.414 552.614 +-20.0672 187.205 543.302 +-25.4868 190.168 551.9 +-30.0722 186.933 542.51 +-35.6707 189.994 551.395 +-40.11 186.863 542.308 +-45.875 189.892 551.1 +-50.1494 186.736 541.94 +-56.1656 190.024 551.482 +-60.292 186.876 542.347 +-66.2918 189.546 550.096 +-70.2942 186.505 541.27 +-76.5536 189.431 549.761 +-80.456 186.496 541.244 +-86.8972 189.418 549.723 +-90.513 186.171 540.301 +-97.1305 189.088 548.765 +-100.716 186.077 540.029 +-107.446 188.859 548.102 +-110.936 185.924 539.584 +-113.959 182.473 529.569 +-117.699 180.39 523.522 +-121.899 179.126 519.855 +-127.705 180.201 522.975 +-135.188 183.442 532.381 +-141.863 185.359 537.942 +-146.197 184.16 534.463 +-146.776 178.451 517.895 +-160.183 188.166 546.091 +-161.965 184.009 534.024 +-164.161 180.543 523.965 +-144.929 154.429 448.18 +-146.293 151.153 438.672 +-146.845 147.23 427.288 +-148.594 144.676 419.873 +-150.705 142.585 413.805 +-1093.78 1006.23 2920.25 +-1120.7 1003.08 2911.12 +-145.896 127.122 368.931 +-145.497 123.479 358.357 +-145.281 120.151 348.698 +-149.131 120.247 348.976 +-152.767 120.149 348.694 +-1280.31 982.602 2851.68 +-1306.58 978.924 2841.01 +-1332.75 975.171 2830.11 +-1358.83 971.347 2819.01 +-473.84 331.034 960.717 +-137.591 93.9744 272.73 +-141.156 94.2825 273.624 +-143.81 93.9649 272.702 +-145.504 93.0303 269.99 +-149.006 93.2485 270.623 +-436.89 267.678 776.847 +-110.271 66.1628 192.016 +-109.955 64.6216 187.543 +-110.746 63.7677 185.065 +-111.9 63.14 183.243 +-112.775 62.3705 181.01 +-115.008 62.3545 180.963 +-116.099 61.7199 179.122 +-118.49 61.7743 179.28 +-120.086 61.4075 178.215 +-122.435 61.4189 178.248 +-126.89 62.4539 181.252 +-420.01 202.855 588.721 +-420.5 199.318 578.454 +-422.095 196.38 569.929 +-422.752 193.078 560.344 +-424.322 190.261 552.169 +-426.547 187.79 545 +-428.191 185.114 537.231 +-428.994 182.132 528.577 +-431.702 180.007 522.41 +-436.445 178.747 518.755 +-2061.97 829.522 2407.41 +-137.52 54.347 157.724 +-136.849 53.1306 154.194 +-439.871 167.78 486.928 +-442.315 165.761 481.068 +-443.69 163.375 474.143 +-445.574 161.212 467.864 +-446.768 158.834 460.965 +-448.346 156.629 454.564 +-450.253 154.568 448.584 +-451.667 152.369 442.2 +-452.297 149.941 435.153 +-454.245 147.981 429.465 +-455.696 145.885 423.382 +-2356.92 741.475 2151.89 +-459.96 142.195 412.675 +-461.484 140.193 406.865 +-2415.69 721.121 2092.82 +-2434.91 714.227 2072.81 +-2453.95 707.275 2052.63 +-2472.81 700.275 2032.32 +-2491.47 693.218 2011.84 +-384.401 105.078 304.955 +-383.42 102.966 298.825 +-2546.32 671.734 1949.49 +-141.887 36.7674 106.705 +-142.157 36.182 105.006 +-143.2 35.7962 103.887 +-142.796 35.0548 101.735 +-142.524 34.3566 99.7088 +-142.549 33.7396 97.9182 +-146.215 33.9761 98.6046 +-148.676 33.9142 98.4249 +-496.454 111.155 322.59 +-498.417 109.521 317.847 +-499.915 107.794 312.836 +-502.699 106.351 308.648 +-504.854 104.778 304.083 +-507.048 103.218 299.555 +-517.553 103.321 299.855 +-520.815 101.946 295.866 +-513.789 98.5935 286.135 +-517.19 97.2757 282.311 +-518.645 95.5931 277.428 +-521.798 94.2255 273.459 +-2879.44 509.316 1478.12 +-2892.98 501.11 1454.31 +-2906.29 492.868 1430.39 +-380.816 63.2116 183.451 +-380.974 61.8792 179.584 +-380.999 60.5371 175.689 +-380.44 59.1147 171.561 +-380.559 57.8107 167.776 +-380.182 56.4431 163.807 +-381.04 55.2674 160.395 +-382.047 54.117 157.057 +-380.445 52.6087 152.679 +-381.1 51.4255 149.246 +-379.775 49.9862 145.069 +-381.192 48.9167 141.965 +-380.901 47.6325 138.238 +-381.413 46.4565 134.825 +-381.327 45.2147 131.221 +-382.053 44.0744 127.912 +-381.611 42.8062 124.231 +-382.174 41.6579 120.898 +-381.564 40.3887 117.215 +-380.247 39.0572 113.351 +-380.514 37.8988 109.989 +-380.651 36.7322 106.603 +-381.333 35.6216 103.38 +-380.73 34.397 99.8261 +-379.995 33.1699 96.2646 +-381.45 32.1374 93.2682 +-380.938 30.9414 89.7972 +-380.683 29.7736 86.4082 +-380.102 28.5877 82.9663 +-380.658 27.4919 79.7862 +-379.521 26.28 76.269 +-380.309 25.2066 73.1538 +-380.086 24.0685 69.8508 +-380.028 22.9455 66.5917 +-381.416 21.9095 63.5851 +-381.002 20.7706 60.2798 +-380.161 19.6153 56.9269 +-380.573 18.529 53.7743 +-381.055 17.4464 50.6323 +-380.318 16.3114 47.3384 +-381.138 15.2454 44.2449 +-380.538 14.1245 40.9916 +-380.405 13.0251 37.801 +-380.64 11.94 34.652 +-380.447 10.8433 31.4691 +-380.523 9.75618 28.3141 +-380.371 8.66494 25.1471 +-380.289 7.57731 21.9906 +-381.077 6.50614 18.8819 +-380.438 5.41118 15.7042 +-3274.5 37.2515 108.11 +-148.149 1.26381 3.66779 +-144.478 0.821557 2.3843 +-146.994 0.417901 1.21282 +96.3 0 -1.7053e-13 +96.3963 0.281217 0.792842 +96.2853 0.561829 1.58398 +96.267 0.842689 2.37582 +96.3413 1.12465 3.17076 +96.3082 1.40565 3.963 +96.2679 1.68655 4.75494 +96.2202 1.96732 5.54652 +96.1652 2.24793 6.33766 +96.0031 2.52576 7.12094 +95.9335 2.80572 7.91025 +96.8521 3.11751 8.78928 +96.767 3.39992 9.58549 +96.8733 3.68965 10.4023 +95.88 3.93545 11.0953 +96.4676 4.24554 11.9696 +96.3531 4.52677 12.7625 +96.1323 4.80276 13.5406 +96.0033 5.083 14.3306 +95.7683 5.35735 15.1041 +95.6248 5.63651 15.8912 +95.4741 5.91528 16.6771 +96.0031 6.2382 17.5875 +95.8366 6.51803 18.3765 +95.6628 6.79736 19.164 +95.677 7.09063 19.9908 +96.1703 7.42212 20.9254 +96.1674 7.71796 21.7595 +95.7682 7.98205 22.504 +95.7498 8.27786 23.338 +96.3028 8.62609 24.3198 +96.074 8.90669 25.1109 +95.8378 9.18659 25.9 +96.4573 9.55127 26.9282 +96.2043 9.83231 27.7205 +95.9439 10.1126 28.5107 +96.5322 10.485 29.5608 +96.2549 10.7662 30.3536 +96.8211 11.1446 31.4203 +96.4322 11.4154 32.1839 +96.1306 11.6963 32.9758 +96.7582 12.0934 34.0952 +97.2791 12.483 35.1936 +96.9495 12.7663 35.9924 +96.5198 13.0361 36.7531 +96.3606 13.3428 37.6177 +96.7451 13.7278 38.7033 +96.4747 14.0229 39.5351 +96.1963 14.3174 40.3655 +96.6379 14.7222 41.5068 +96.2499 15.0036 42.3001 +96.6669 15.4133 43.4552 +96.2608 15.6947 44.2485 +96.6529 16.1092 45.4171 +96.9415 16.5119 46.5526 +96.5068 16.7941 47.348 +96.0647 17.075 48.14 +96.4941 17.5141 49.3779 +96.7329 17.9245 50.5352 +96.2613 18.206 51.3288 +96.3886 18.6032 52.4485 +96.6748 19.0363 53.6697 +96.1742 19.3177 54.4628 +96.3483 19.7372 55.6456 +96.6775 20.1947 56.9354 +96.737 20.6017 58.0829 +96.1955 20.8831 58.8762 +96.3972 21.3289 60.1333 +96.4171 21.7402 61.2927 +95.8459 22.0206 62.0834 +96.0865 22.4911 63.4099 +96.147 22.9259 64.6356 +96.273 23.3823 65.9224 +96.3824 23.8412 67.2163 +95.7564 24.1215 68.0064 +96.3924 24.7255 69.7094 +95.8221 25.0263 70.5575 +95.7912 25.4714 71.8123 +95.7444 25.9182 73.0719 +95.7586 26.3879 74.3961 +95.7556 26.8596 75.7261 +95.7351 27.3333 77.0616 +95.7726 27.8309 78.4644 +95.4919 28.2421 79.6238 +96.0886 28.9222 81.5412 +95.4037 29.224 82.3921 +95.8805 29.8888 84.2663 +95.6769 30.3514 85.5707 +95.6003 30.8616 87.009 +95.4329 31.3502 88.3865 +95.813 32.0292 90.3009 +95.604 32.5221 91.6905 +95.3766 33.0162 93.0835 +95.7501 33.7297 95.0953 +95.4798 34.2278 96.4996 +95.7987 34.9486 98.5315 +95.418 35.4253 99.8755 +95.086 35.9277 101.292 +95.2598 36.6327 103.28 +94.8844 37.1378 104.704 +95.1326 37.9 106.853 +95.2845 38.6401 108.939 +95.405 39.3842 111.037 +94.809 39.8442 112.334 +94.8119 40.5673 114.373 +94.7233 41.2666 116.344 +94.6053 41.9686 118.323 +94.6958 42.7803 120.612 +94.5159 43.4876 122.606 +94.4804 44.2789 124.837 +94.9843 45.347 127.848 +94.3633 45.8975 129.4 +94.5036 46.8362 132.047 +94.2708 47.6121 134.234 +94.6038 48.6982 137.296 +94.4035 49.5363 139.659 +94.2196 50.4051 142.109 +93.893 51.2194 144.404 +93.8914 52.2366 147.272 +93.9961 53.3438 150.394 +94 54.4266 153.446 +93.9052 55.4843 156.428 +93.9076 56.6332 159.668 +93.714 57.6983 162.67 +93.4718 58.7663 165.682 +93.6888 60.1633 169.62 +93.749 61.5068 173.408 +93.3446 62.5856 176.449 +93.3292 63.9672 180.345 +93.1196 65.2629 183.998 +93.3141 66.8955 188.601 +100.812 73.9487 208.486 +115.554 86.7607 244.607 +115.677 88.9339 250.734 +115.617 91.0526 256.707 +115.685 93.3632 263.222 +115.379 95.4639 269.144 +112.003 95.0504 267.978 +109.446 95.3108 268.713 +106.428 95.157 268.279 +103.632 95.1811 268.347 +100.576 94.9441 267.679 +98.1262 95.2653 268.584 +95.35 95.2626 268.577 +92.7051 95.3783 268.903 +91.5048 97.016 273.52 +91.22 99.7408 281.202 +91.1689 102.888 290.075 +90.9879 106.074 299.057 +90.7542 109.396 308.423 +90.5349 112.95 318.443 +90.3121 116.737 329.121 +90.2369 120.986 341.099 +86.0713 119.847 337.888 +88.6532 128.367 361.908 +89.6276 135.148 381.026 +89.1733 140.244 395.393 +88.8583 146.001 411.626 +88.688 152.523 430.012 +88.3478 159.349 449.259 +87.7618 166.383 469.088 +85.6432 171.084 482.341 +87.8536 185.425 522.775 +85.3895 190.997 538.484 +79.2869 188.591 531.7 +75.3267 191.268 539.247 +69.0146 187.897 529.743 +64.8994 190.416 536.845 +59.184 188.237 530.703 +54.7758 190.167 536.142 +49.121 187.688 529.155 +44.808 190.324 536.585 +39.2589 187.679 529.13 +34.8099 190.256 536.394 +29.3657 187.312 528.096 +24.7976 189.862 535.285 +19.5437 187.088 527.462 +14.858 189.677 534.763 +9.7716 187.14 527.609 +4.94882 189.568 534.454 +3.19744e-14 186.867 526.841 +-4.94533 189.434 534.077 +-9.75066 186.739 526.478 +-14.8449 189.51 534.292 +-19.4983 186.654 526.238 +-24.6973 189.094 533.119 +-29.2244 186.411 525.555 +-34.5718 188.955 532.726 +-39.0357 186.612 526.122 +-44.4942 188.991 532.828 +-48.7985 186.456 525.681 +-54.3829 188.802 532.296 +-58.5255 186.143 524.799 +-64.1975 188.357 531.04 +-68.1981 185.674 523.476 +-74.2041 188.417 531.21 +-77.9648 185.446 522.834 +-84.074 188.055 530.189 +-87.9631 185.656 523.427 +-94.1101 187.997 530.027 +-97.7466 185.312 522.457 +-104.184 187.913 529.788 +-107.712 185.239 522.25 +-113.7 186.818 526.701 +-117.824 185.302 522.427 +-122.526 184.755 520.886 +-123.543 178.886 504.339 +-134.908 187.848 529.605 +-135.549 181.738 512.381 +-146.272 189.071 533.054 +-145.922 182.05 513.259 +-150.028 180.844 509.86 +-156.948 182.97 515.854 +-164.7 185.871 524.033 +-140.163 153.256 432.079 +-144.91 153.638 433.156 +-144.682 148.854 419.668 +-146.214 146.08 411.848 +-146.408 142.14 400.739 +-151.815 143.314 404.049 +-1120.7 1029.31 2901.95 +-146.177 130.696 368.475 +-145.497 126.707 357.228 +-145.574 123.54 348.301 +-149.843 123.979 349.538 +-152.652 123.197 347.334 +-1280.31 1008.29 2842.7 +-1306.58 1004.51 2832.06 +-1332.75 1000.66 2821.2 +-1358.66 996.619 2809.8 +-471.515 338.023 952.998 +-138.237 96.8836 273.147 +-141.769 97.1677 273.948 +-143.854 96.4514 271.928 +-146.548 96.1472 271.071 +-149.837 96.22 271.276 +-436.468 274.41 773.652 +-111.083 68.3918 192.819 +-110.246 66.4864 187.447 +-110.943 65.551 184.81 +-112.35 65.0513 183.401 +-113.232 64.26 181.17 +-115.472 64.2426 181.121 +-116.517 63.5614 179.2 +-118.861 63.5874 179.274 +-120.463 63.21 178.21 +-123.688 63.6693 179.505 +-127.442 64.3653 181.467 +-415.872 206.107 581.085 +-421.463 204.997 577.953 +-422.382 201.651 568.521 +-424.029 198.724 560.268 +-424.792 195.451 551.041 +-425.239 192.108 541.616 +-426.145 189.045 532.98 +-429.42 187.078 527.436 +-431.579 184.66 520.617 +-434.826 182.74 515.203 +-435.741 179.88 507.14 +-438.131 177.673 500.918 +-148.227 59.0521 166.487 +-138.073 54.0418 152.362 +-442.446 170.145 479.695 +-443.823 167.696 472.791 +-445.909 165.551 466.742 +-447.511 163.258 460.277 +-448.55 160.797 453.339 +-449.771 158.44 446.693 +-452.362 156.592 441.485 +-453.909 154.408 435.328 +-455.66 152.322 429.446 +-456.266 149.886 422.577 +-458.363 147.968 417.171 +-2376.69 753.952 2125.64 +-465.36 145.067 408.991 +-2415.69 739.972 2086.22 +-2434.91 732.898 2066.28 +-2453.95 725.765 2046.17 +-2472.81 718.581 2025.92 +-382.636 109.246 308.001 +-2509.94 704.042 1984.93 +-383.729 105.743 298.124 +-141.674 38.3513 108.125 +-142.748 37.9575 107.015 +-142.788 37.2926 105.14 +-143.835 36.8948 104.019 +-142.956 36.0113 101.528 +-142.363 35.215 99.2827 +-142.306 34.5625 97.443 +-146.704 34.981 98.623 +-2683.95 628.236 1771.2 +-497.113 114.212 322.001 +-499.578 112.645 317.584 +-501.082 110.87 312.579 +-502.951 109.185 307.83 +-505.023 107.552 303.226 +-509.507 106.429 300.059 +-510.817 104.642 295.021 +-528.444 106.144 299.254 +-514.565 101.324 285.665 +-517.797 99.9357 281.752 +-519.515 98.2569 277.019 +-522.935 96.8996 273.192 +-524.566 95.2108 268.431 +-2892.98 514.21 1449.73 +-530.078 92.244 260.066 +-380.46 64.8032 182.702 +-381.153 63.5269 179.103 +-380.639 62.0607 174.97 +-380.259 60.6313 170.94 +-381.374 59.4493 167.607 +-379.818 57.8631 163.135 +-381.497 56.78 160.081 +-379.938 55.2252 155.698 +-380.721 54.0231 152.309 +-380.638 52.706 148.596 +-381.536 51.531 145.283 +-381.006 50.1707 141.448 +-380.527 48.8299 137.668 +-380.383 47.5422 134.037 +-381.421 46.408 130.839 +-380.827 45.0815 127.1 +-381.044 43.86 123.656 +-382.174 42.7469 120.517 +-381.944 41.4856 116.962 +-380.342 40.0883 113.022 +-380.131 38.8504 109.532 +-381.227 37.7496 106.428 +-380.756 36.4977 102.899 +-380.634 35.2872 99.4863 +-379.995 34.037 95.9614 +-379.804 32.8352 92.5733 +-379.386 31.6209 89.1497 +-381.363 30.6066 86.2901 +-381.271 29.4252 82.9594 +-381.146 28.2467 79.6369 +-381.478 27.106 76.4208 +-380.505 25.8788 72.961 +-380.871 24.7487 69.7748 +-380.716 23.588 66.5022 +-381.121 22.4648 63.3357 +-380.016 21.2584 59.9343 +-379.667 20.1019 56.674 +-381.859 19.0776 53.786 +-380.758 17.8885 50.4336 +-380.417 16.7422 47.2017 +-381.138 15.644 44.1056 +-380.637 14.4975 40.8733 +-380.106 13.3551 37.6525 +-381.336 12.2746 34.6061 +-380.447 11.1267 31.3699 +-380.723 10.0165 28.2397 +-380.271 8.88914 25.0614 +-380.888 7.78763 21.9559 +-380.777 6.67097 18.8077 +-381.237 5.56431 15.6876 +-380.068 4.43678 12.5088 +-148.349 1.2986 3.66118 +-143.578 0.837785 2.36199 +-146.494 0.427368 1.20489 +96.3 0 -1.7053e-13 +96.2963 0.288058 0.789453 +96.2853 0.576096 1.57885 +96.267 0.864088 2.36812 +96.3413 1.15321 3.16049 +96.3082 1.44135 3.95016 +96.168 1.72758 4.73461 +96.2202 2.01727 5.52854 +96.1652 2.30502 6.31713 +96.9004 2.6141 7.1642 +96.8301 2.90386 7.9583 +95.9562 3.16711 8.67977 +96.6675 3.48269 9.54466 +96.8733 3.78334 10.3686 +96.7732 4.07299 11.1624 +96.4676 4.35335 11.9308 +96.3531 4.64172 12.7211 +96.2312 4.9298 13.5106 +96.0033 5.21207 14.2842 +95.7683 5.49339 15.0552 +96.3142 5.82133 15.9539 +96.1623 6.10919 16.7428 +96.0031 6.39661 17.5305 +95.8366 6.68355 18.3169 +95.6628 6.96997 19.1019 +95.4817 7.25585 19.8854 +95.4883 7.5566 20.7096 +96.1674 7.91395 21.689 +95.7682 8.18474 22.4311 +95.5562 8.47089 23.2153 +96.496 8.86286 24.2896 +96.2667 9.15117 25.0797 +95.8378 9.41988 25.8161 +96.4573 9.79381 26.8409 +96.2043 10.082 27.6307 +96.8023 10.4621 28.6725 +96.4371 10.7407 29.436 +96.2549 11.0396 30.2552 +95.9701 11.3272 31.0432 +96.4322 11.7053 32.0796 +96.1306 11.9933 32.869 +96.7582 12.4005 33.9847 +97.2791 12.8 35.0796 +96.9495 13.0905 35.8758 +96.6126 13.38 36.6692 +97.0997 13.7865 37.7833 +96.8371 14.0898 38.6146 +96.4747 14.379 39.407 +96.105 14.667 40.1964 +96.6379 15.0961 41.3723 +96.2499 15.3846 42.163 +96.6669 15.8047 43.3143 +96.2608 16.0932 44.1051 +96.6529 16.5183 45.2699 +96.9415 16.9312 46.4017 +96.5955 17.2364 47.238 +96.8594 17.6534 48.3809 +96.4062 17.9425 49.1731 +95.9458 18.2302 49.9616 +96.2613 18.6684 51.1625 +96.3886 19.0756 52.2785 +96.6748 19.5198 53.4958 +96.0885 19.7905 54.238 +96.4336 20.2563 55.5144 +96.5927 20.6893 56.7011 +96.737 21.1248 57.8946 +96.1116 21.3947 58.6342 +96.3972 21.8706 59.9384 +95.8367 22.1581 60.7264 +95.8459 22.5798 61.8822 +96.0865 23.0623 63.2044 +96.147 23.508 64.4261 +96.273 23.9761 65.7088 +95.659 24.2631 66.4956 +95.7564 24.734 67.786 +95.7577 25.1865 69.026 +95.8221 25.6619 70.3289 +95.7912 26.1182 71.5796 +95.8221 26.5979 72.8942 +95.7586 27.0579 74.155 +95.7556 27.5417 75.4807 +95.6591 28.0051 76.7509 +95.6217 28.4926 78.0868 +95.5667 28.982 79.4279 +96.0886 29.6567 81.277 +95.9935 30.1513 82.6328 +95.2954 30.4607 83.4807 +95.7494 31.1457 85.358 +95.6003 31.6453 86.727 +95.4329 32.1463 88.1001 +95.8837 32.8668 90.0747 +95.604 33.348 91.3934 +95.3766 33.8546 92.7818 +95.1306 34.3624 94.1737 +95.4116 35.0716 96.1173 +95.7311 35.8107 98.1427 +95.418 36.3248 99.5518 +95.086 36.84 100.964 +95.391 37.6147 103.087 +95.5988 38.3678 105.151 +95.1326 38.8624 106.506 +95.2845 39.6213 108.586 +95.405 40.3844 110.677 +94.809 40.856 111.97 +94.8734 41.6242 114.075 +94.6015 42.26 115.818 +94.6053 43.0344 117.94 +94.6958 43.8666 120.221 +94.751 44.703 122.513 +94.4804 45.4033 124.432 +94.9843 46.4985 127.434 +94.3633 47.063 128.981 +94.3918 47.969 131.464 +94.326 48.8496 133.877 +94.5493 49.906 136.772 +94.3498 50.7654 139.128 +94.1137 51.6268 141.488 +93.893 52.5201 143.936 +93.8914 53.5631 146.795 +93.9961 54.6984 149.906 +93.95 55.7789 152.867 +93.9544 56.923 156.003 +93.9561 58.1012 159.232 +93.714 59.1634 162.143 +93.5187 60.2888 165.227 +93.6426 61.6609 168.988 +93.749 63.0687 172.846 +93.3446 64.1748 175.878 +93.3292 65.5915 179.76 +93.1196 66.9202 183.401 +93.3986 68.6563 188.159 +96.1259 72.3018 198.15 +115.595 88.9954 243.901 +115.637 91.1607 249.835 +115.617 93.3648 255.875 +115.647 95.7022 262.281 +115.454 97.9515 268.446 +112.662 98.0379 268.683 +109.768 98.0194 268.632 +106.708 97.8301 268.113 +104.145 98.0811 268.801 +101.143 97.9042 268.316 +98.3541 97.9114 268.336 +95.6356 97.9744 268.509 +92.8287 97.9306 268.388 +91.5048 99.4796 272.634 +91.1615 102.208 280.111 +91.2257 105.566 289.315 +90.9603 108.735 297.998 +90.8076 112.24 307.604 +90.6125 115.917 317.683 +90.4373 119.868 328.509 +90.1885 123.992 339.811 +86.7483 123.857 339.442 +89.823 133.363 365.495 +89.7142 138.714 380.158 +89.1941 143.838 394.203 +88.619 149.306 409.188 +88.8025 156.598 429.172 +88.2202 163.16 447.157 +86.5115 168.177 460.907 +85.5607 175.259 480.314 +87.2591 188.848 517.556 +83.2019 190.83 522.989 +77.422 188.831 517.511 +73.3166 190.891 523.156 +67.5278 188.517 516.651 +63.2806 190.381 521.759 +57.7102 188.211 515.811 +53.4915 190.424 521.875 +48.0054 188.084 515.462 +43.6468 190.099 520.986 +38.3172 187.829 514.765 +33.8697 189.818 520.216 +28.7167 187.824 514.751 +24.1913 189.924 520.504 +19.1179 187.659 514.299 +14.4916 189.697 519.883 +9.53599 187.265 513.219 +4.83101 189.755 520.041 +3.28626e-14 187.225 513.109 +-4.82054 189.343 518.914 +-9.53774 187.3 513.313 +-14.4523 189.183 518.474 +-19.0726 187.214 513.078 +-24.0648 188.931 517.783 +-28.6016 187.071 512.688 +-33.7049 188.895 517.684 +-38.101 186.769 511.859 +-43.3879 188.972 517.896 +-47.6568 186.718 511.718 +-53.0027 188.683 517.106 +-57.2293 186.643 511.513 +-62.6353 188.44 516.438 +-66.76 186.374 510.777 +-72.4159 188.546 516.73 +-76.3225 186.15 510.162 +-82.049 188.186 515.742 +-85.9295 185.97 509.668 +-91.6674 187.768 514.596 +-95.5412 185.731 509.014 +-101.323 187.393 513.57 +-105.212 185.535 508.477 +-111.467 187.8 514.684 +-115.204 185.783 509.156 +-118.717 183.557 503.056 +-122.441 181.792 498.22 +-126.621 180.785 495.46 +-135.089 185.721 508.988 +-143.393 190.056 520.867 +-146.414 187.302 513.32 +-146.153 180.647 495.081 +-149.561 178.786 489.982 +-930.519 1076.8 2951.06 +-139.637 156.557 429.061 +-141.091 153.388 420.374 +-143.446 151.33 414.734 +-146.404 149.985 411.048 +-146.506 145.846 399.706 +-148.377 143.625 393.619 +-151.002 142.21 389.739 +-146.177 134.015 367.281 +-145.82 130.212 356.86 +-146.051 127.092 348.308 +-150.255 127.477 349.362 +-1253.94 1037.68 2843.88 +-1280.31 1033.89 2833.49 +-147.697 116.434 319.1 +-1332.75 1026.07 2812.06 +-494.397 371.866 1019.14 +-137.266 100.903 276.535 +-138.969 99.87 273.704 +-142.164 99.9125 273.82 +-144.256 99.1766 271.803 +-147.275 99.0775 271.532 +-150.345 98.998 271.314 +-436.796 281.59 771.725 +-110.462 69.7368 191.121 +-110.294 68.2045 186.921 +-111.091 67.3051 184.456 +-112.8 66.9702 183.539 +-113.79 66.2168 181.474 +-115.42 65.8445 180.453 +-116.935 65.4092 179.26 +-119.285 65.4349 179.331 +-120.731 64.9598 178.029 +-123.851 65.3725 179.16 +-128.657 66.6288 182.603 +-435.444 221.288 606.461 +-417.498 208.225 570.661 +-418.768 205.003 561.83 +-424.494 203.993 559.064 +-424.851 200.442 549.33 +-426.072 197.372 540.919 +-426.867 194.174 532.153 +-428.507 191.421 524.609 +-432.625 189.808 520.188 +-431.029 185.744 509.049 +-2062.09 872.873 2392.2 +-437.749 182.026 498.86 +-439.281 179.449 491.799 +-138.008 55.3881 151.797 +-135.804 53.5505 146.76 +-444.088 172.057 471.54 +-446.243 169.882 465.578 +-447.511 167.403 458.786 +-448.55 164.88 451.87 +-449.496 162.363 444.972 +-450.903 160.051 438.635 +-454.54 158.549 434.521 +-456.65 156.529 428.985 +-457.265 154.028 422.13 +-458.579 151.797 416.016 +-460.178 149.688 410.236 +-2396.28 765.961 2099.19 +-459.471 144.319 395.521 +-2434.91 751.509 2059.59 +-2453.95 744.194 2039.54 +-2472.81 736.828 2019.35 +-2491.47 729.404 1999 +-2509.94 721.921 1978.5 +-2528.23 714.387 1957.85 +-140.819 39.088 107.124 +-142.669 38.8998 106.609 +-142.945 38.2818 104.915 +-143.28 37.6857 103.281 +-142.716 36.8637 101.029 +-142.926 36.2518 99.3518 +-142.953 35.6016 97.5697 +-147.925 36.1679 99.1216 +-495.833 119.008 326.152 +-498.102 117.345 321.596 +-499.578 115.506 316.555 +-501.582 113.799 311.877 +-504.209 112.238 307.6 +-506.035 110.505 302.849 +-2778.8 595.196 1631.19 +-508.941 106.905 292.984 +-528.358 108.821 298.236 +-514.565 103.897 284.739 +-517.537 102.422 280.698 +-520.125 100.87 276.444 +-522.673 99.3103 272.17 +-2879.44 535.902 1468.69 +-527.914 96.2167 263.691 +-530.344 94.6337 259.353 +-381.351 66.6045 182.536 +-380.347 65.0023 178.145 +-381.448 63.7721 174.774 +-380.62 62.2303 170.548 +-381.012 60.901 166.905 +-381.456 59.5881 163.307 +-379.761 57.9569 158.837 +-380.763 56.7506 155.531 +-382.194 55.6095 152.403 +-380.638 54.0444 148.114 +-380.609 52.711 144.46 +-379.238 51.2062 140.336 +-380.621 50.0822 137.255 +-380.851 48.8095 133.767 +-379.918 47.399 129.902 +-381.11 46.2606 126.782 +-381.611 45.0407 123.438 +-380.562 43.6473 119.62 +-382.42 42.5922 116.728 +-381.773 41.2612 113.08 +-381.852 40.0172 109.671 +-380.651 38.6496 105.923 +-380.756 37.4245 102.565 +-381.694 36.2841 99.4401 +-381.444 35.0346 96.0159 +-380.579 33.7377 92.4615 +-381.229 32.5814 89.2926 +-381.072 31.3598 85.9446 +-380.394 30.103 82.5004 +-379.682 28.8528 79.0739 +-381.282 27.7801 76.1341 +-380.211 26.5155 72.6684 +-380.479 25.351 69.477 +-381.11 24.2119 66.3552 +-380.727 23.0115 63.0653 +-381.199 21.8661 59.9262 +-381.346 20.7035 56.7401 +-380.573 19.4962 53.4313 +-381.055 18.3571 50.3093 +-380.12 17.1539 47.0119 +-381.138 16.0412 43.9626 +-380.935 14.8773 40.7727 +-381.001 13.7265 37.6188 +-381.336 12.5863 34.494 +-380.746 11.4182 31.2928 +-381.022 10.2789 28.1704 +-379.773 9.10291 24.9474 +-380.888 7.98538 21.8847 +-380.678 6.83859 18.7418 +-381.237 5.7056 15.6368 +-380.468 4.55421 12.4813 +-146.15 1.31183 3.59521 +-143.578 0.859059 2.35434 +-145.594 0.435527 1.1936 +96.4 3.55271e-15 -1.7053e-13 +96.2963 0.295169 0.786822 +96.3853 0.590928 1.57522 +96.267 0.885417 2.36023 +97.1408 1.19148 3.1761 +96.3082 1.47693 3.937 +97.1667 1.78861 4.76784 +96.2202 2.06707 5.51012 +96.1652 2.36191 6.29607 +96.1028 2.65658 7.08156 +96.8301 2.97553 7.93178 +96.7525 3.27221 8.72264 +96.767 3.57231 9.52259 +95.979 3.84094 10.2387 +96.5747 4.16495 11.1024 +96.4676 4.4608 11.891 +96.3531 4.7563 12.6787 +96.1323 5.04628 13.4517 +95.9045 5.33525 14.222 +95.7683 5.62899 15.005 +96.3142 5.96502 15.9008 +96.1623 6.25999 16.687 +96.0031 6.5545 17.4721 +95.8366 6.84852 18.2559 +95.6628 7.14202 19.0383 +96.3604 7.50337 20.0015 +95.4883 7.74313 20.6406 +96.1674 8.10929 21.6167 +95.9622 8.40377 22.4017 +95.5562 8.67999 23.138 +96.496 9.08163 24.2086 +96.074 9.3583 24.9461 +95.8378 9.65239 25.7301 +96.4573 10.0356 26.7515 +96.2043 10.3308 27.5386 +95.9439 10.6253 28.3236 +96.5322 11.0167 29.3668 +96.2549 11.3121 30.1544 +96.7266 11.6982 31.1836 +96.4322 11.9942 31.9727 +96.1306 12.2894 32.7594 +96.7582 12.7066 33.8715 +97.1857 13.1033 34.9292 +96.8565 13.4007 35.7219 +96.6126 13.7103 36.547 +97.0997 14.1268 37.6574 +96.8371 14.4376 38.4859 +96.4747 14.7339 39.2757 +96.1963 15.0433 40.1006 +95.8189 15.3376 40.885 +96.2499 15.7643 42.0225 +96.6669 16.1948 43.17 +96.2608 16.4905 43.9582 +96.5634 16.9103 45.0772 +96.1396 17.2056 45.8645 +96.5068 17.6456 47.0373 +96.9476 18.1057 48.2637 +96.4941 18.4021 49.0539 +96.7329 18.8334 50.2036 +96.2613 19.1292 50.992 +96.3886 19.5464 52.1043 +95.9855 19.859 52.9374 +96.1742 20.2971 54.1054 +96.3483 20.7379 55.2805 +96.5927 21.2 56.5122 +96.0623 21.4952 57.2992 +96.1955 21.9419 58.4899 +96.3138 22.391 59.687 +96.4171 22.8425 60.8905 +95.8459 23.1371 61.676 +96.0865 23.6315 62.9938 +96.147 24.0883 64.2114 +96.273 24.5679 65.4898 +95.659 24.862 66.274 +95.6765 25.3234 67.5038 +95.7577 25.8081 68.7959 +95.8221 26.2953 70.0945 +95.7912 26.7629 71.3411 +95.8221 27.2544 72.6513 +95.7586 27.7258 73.9079 +95.679 28.1989 75.169 +95.8112 28.742 76.6167 +96.3009 29.4033 78.3794 +96.2408 29.9068 79.7217 +95.4941 30.2007 80.505 +95.4037 30.7058 81.8514 +95.8805 31.4043 83.7133 +95.7494 31.9145 85.0736 +95.6003 32.4264 86.438 +95.3616 32.9151 87.7409 +95.813 33.6532 89.7084 +95.604 34.1711 91.0888 +95.3071 34.6649 92.4052 +95.6813 35.4143 94.4029 +95.4798 35.9633 95.8663 +95.7311 36.6946 97.8157 +95.418 37.2215 99.2201 +95.086 37.7494 100.627 +95.391 38.5432 102.743 +95.0142 39.0743 104.159 +95.1326 39.8217 106.151 +94.712 40.3556 107.575 +95.2791 41.3268 110.163 +94.809 41.8645 111.597 +94.8119 42.6242 113.622 +94.6015 43.3032 115.432 +94.6655 44.1244 117.621 +94.7553 44.9775 119.895 +94.6334 45.7495 121.953 +94.5965 46.5809 124.169 +94.8695 47.5886 126.856 +94.6465 48.3694 128.937 +94.4477 49.1819 131.103 +94.326 50.0554 133.431 +94.0047 50.8436 135.532 +94.3498 52.0185 138.664 +94.0607 52.8716 140.938 +93.893 53.8164 143.457 +93.8914 54.8853 146.306 +94.0469 56.0788 149.487 +93.55 56.9123 151.709 +93.462 58.0225 154.669 +93.9076 59.5048 158.62 +93.7617 60.6547 161.685 +93.5187 61.7769 164.677 +93.6426 63.1829 168.425 +93.7944 64.6567 172.353 +93.3446 65.7589 175.291 +93.3292 67.2106 179.161 +93.507 68.8575 183.551 +93.6099 70.5101 187.957 +95.6697 73.7348 196.553 +115.595 91.1921 243.088 +115.637 93.4109 249.002 +115.227 95.3462 254.161 +115.609 98.0321 261.321 +115.454 100.369 267.551 +112.992 100.752 268.572 +110.091 100.734 268.523 +107.023 100.541 268.009 +104.145 100.502 267.905 +101.377 100.553 268.04 +98.582 100.561 268.061 +95.8577 100.626 268.236 +93.354 100.916 269.008 +91.4747 101.902 271.636 +91.0738 104.63 278.909 +91.2257 108.172 288.351 +91.0155 111.486 297.186 +90.7809 114.976 306.489 +90.509 118.643 316.262 +90.4873 122.895 327.596 +90.2369 127.12 338.861 +87.8922 128.587 342.771 +89.778 136.587 364.094 +89.6493 142.035 378.617 +89.0486 147.148 392.249 +88.8384 153.37 408.833 +88.5926 160.084 426.731 +88.3113 167.36 446.126 +85.5738 170.461 454.392 +87.6733 184.019 490.534 +85.9764 190.664 508.248 +81.7386 192.102 512.079 +76.1834 190.397 507.535 +71.698 191.285 509.902 +66.4188 189.998 506.473 +62.0127 191.172 509.601 +56.8635 190.027 506.549 +52.3797 191.068 509.325 +47.2297 189.612 505.443 +42.823 191.115 509.449 +37.7871 189.802 505.95 +33.2165 190.752 508.483 +28.23 189.199 504.341 +23.6941 190.611 508.106 +18.8073 189.167 504.257 +14.2036 190.517 507.855 +9.40161 189.184 504.3 +4.72629 190.224 507.073 +3.19744e-14 189.212 504.377 +-4.72629 190.224 507.073 +-9.38416 188.832 503.364 +-14.1853 190.271 507.199 +-18.7794 188.886 503.508 +-23.6068 189.91 506.236 +-28.141 188.602 502.751 +-33.0395 189.736 505.773 +-37.4871 188.296 501.934 +-42.5405 189.855 506.09 +-46.9508 188.492 502.458 +-51.9676 189.565 505.317 +-56.2781 188.071 501.335 +-61.4127 189.322 504.67 +-65.7241 188.011 501.175 +-70.9671 189.335 504.704 +-75.1952 187.927 500.952 +-80.4527 189.079 504.022 +-84.6623 187.75 500.479 +-90.05 189.008 503.831 +-94.152 187.548 499.942 +-99.6464 188.841 503.389 +-103.8 187.563 499.981 +-109.274 188.649 502.876 +-113.686 187.86 500.773 +-118.955 188.465 502.385 +-122.508 186.382 496.833 +-127.928 187.161 498.908 +-132.839 187.136 498.843 +-140.413 190.701 508.344 +-144.654 189.618 505.46 +-145.538 184.328 491.356 +-146.97 180.026 479.889 +-157.714 187.011 498.51 +-143.057 164.352 438.107 +-139.437 155.331 414.062 +-141.901 153.395 408.899 +-144.12 151.289 403.286 +-146.375 149.313 398.02 +-146.141 144.952 386.394 +-148.334 143.146 381.579 +-146.597 137.718 367.109 +-145.82 133.426 355.671 +-146.784 130.883 348.89 +-150.929 131.209 349.761 +-1253.94 1063.3 2834.4 +-1280.31 1059.41 2824.04 +-147.896 119.47 318.466 +-1332.75 1051.4 2802.69 +-492.697 379.731 1012.24 +-137.266 103.394 275.614 +-139.399 102.652 273.636 +-142.383 102.536 273.328 +-144.747 101.971 271.82 +-147.729 101.836 271.461 +-150.576 101.597 270.824 +-436.421 288.293 768.492 +-110.51 71.489 190.566 +-110.391 69.9495 186.462 +-111.632 69.3029 184.739 +-112.8 68.6233 182.927 +-114.247 68.1238 181.595 +-115.781 67.6805 180.414 +-117.405 67.2931 179.381 +-119.126 66.9605 178.494 +-120.946 66.6816 177.751 +-124.995 67.6047 180.212 +-435.699 231.21 616.328 +-437.177 227.653 606.846 +-426.334 217.88 580.797 +-419.801 210.581 561.338 +-421.59 207.599 553.39 +-424.087 205.02 546.516 +-426.309 202.357 539.417 +-427.83 199.416 531.576 +-428.142 195.979 522.415 +-432.872 194.604 518.749 +-430.469 190.081 506.694 +-2061.84 894.31 2383.93 +-437.558 186.438 496.982 +-439.731 184.067 490.662 +-441.3 181.484 483.775 +-2149.58 868.547 2315.26 +-135.837 53.9278 143.754 +-137.439 53.6138 142.917 +-448.051 171.742 457.808 +-448.55 168.95 450.364 +-449.289 166.295 443.286 +-452.57 164.608 438.79 +-453.839 162.213 432.405 +-456.296 160.269 427.224 +-458.263 158.175 421.641 +-459.298 155.788 415.279 +-460.903 153.625 409.513 +-474.722 155.488 414.48 +-2415.69 777.492 2072.53 +-2434.91 770.059 2052.72 +-2453.95 762.564 2032.74 +-2472.81 755.016 2012.62 +-2491.47 747.408 1992.34 +-383.175 112.931 301.037 +-2528.23 732.02 1951.32 +-140.819 40.0528 106.767 +-142.669 39.86 106.253 +-143.182 39.2917 104.739 +-142.724 38.4663 102.538 +-142.796 37.795 100.749 +-143.006 37.1677 99.0768 +-143.601 36.6454 97.6846 +-147.843 37.0402 98.737 +-496.816 122.187 325.71 +-498.102 120.242 320.524 +-499.827 118.416 315.657 +-501.916 116.685 311.044 +-503.957 114.951 306.422 +-505.782 113.176 301.689 +-524.433 115.102 306.823 +-506.809 109.085 290.785 +-529.215 111.689 297.725 +-515.857 106.728 284.503 +-518.576 105.161 280.324 +-520.386 103.412 275.661 +-523.46 101.915 271.672 +-2879.44 549.13 1463.8 +-528.444 98.6907 263.077 +-2906.29 531.396 1416.53 +-380.905 68.1688 181.715 +-381.421 66.7951 178.053 +-380.37 65.1615 173.699 +-381.072 63.8419 170.181 +-380.559 62.3298 166.15 +-380.819 60.9571 162.491 +-381.04 59.5877 158.841 +-381.864 58.3193 155.46 +-381.641 56.8996 151.676 +-381.008 55.4321 147.764 +-381.165 54.0911 144.189 +-381.936 52.8435 140.863 +-381.554 51.4442 137.133 +-380.195 49.9282 133.092 +-381.045 48.7129 129.853 +-381.298 47.426 126.422 +-381.422 46.1296 122.966 +-380.183 44.68 119.102 +-380.708 43.4482 115.819 +-380.342 42.1209 112.28 +-380.992 40.9126 109.06 +-380.364 39.5737 105.49 +-380.852 38.3581 102.25 +-380.827 37.0954 98.884 +-379.995 35.7628 95.3317 +-381.45 34.6496 92.3643 +-379.774 33.2582 88.6552 +-381.072 32.1338 85.6582 +-380.492 30.854 82.2465 +-380.755 29.6486 79.0332 +-381.086 28.4512 75.8414 +-381.289 27.247 72.6315 +-380.97 26.0103 69.3348 +-380.028 24.7391 65.9464 +-380.727 23.5795 62.8551 +-381.298 22.4116 59.742 +-381.346 21.2146 56.551 +-381.068 20.0034 53.3224 +-381.055 18.8102 50.1417 +-380.715 17.6048 46.9286 +-380.244 16.3987 43.7134 +-381.234 15.2564 40.6686 +-379.808 14.0212 37.376 +-381.734 12.9104 34.4149 +-379.849 11.6725 31.1151 +-381.022 10.5326 28.0765 +-380.67 9.34966 24.9231 +-380.489 8.17392 21.789 +-381.676 7.02576 18.7283 +-380.438 5.83418 15.552 +-380.568 4.66786 12.443 +-147.05 1.35249 3.60529 +-145.578 0.892522 2.37917 +-145.594 0.446277 1.18963 +95.3 -1.77636e-15 -2.27374e-13 +95.3964 0.29943 0.776799 +96.2853 0.604488 1.5682 +95.2673 0.897257 2.32772 +96.2413 1.20879 3.13591 +96.2083 1.51082 3.91945 +96.3678 1.81649 4.71244 +96.1204 2.1145 5.48554 +96.2649 2.42113 6.28102 +97.0001 2.74575 7.12319 +96.8301 3.04697 7.90462 +96.7525 3.35077 8.69276 +96.6675 3.65433 9.48027 +96.8733 3.9698 10.2987 +96.674 4.26933 11.0757 +96.4676 4.5679 11.8503 +96.5511 4.88052 12.6613 +96.2312 5.17275 13.4195 +96.0033 5.46894 14.1878 +95.7683 5.76413 14.9536 +95.5264 6.05826 15.7167 +96.1623 6.41027 16.6299 +96.1013 6.71873 17.4301 +95.8366 7.01294 18.1934 +95.8585 7.32841 19.0118 +95.4817 7.61345 19.7512 +96.2678 7.99376 20.7379 +95.9729 8.28722 21.4992 +95.8652 8.59682 22.3024 +96.5243 8.97843 23.2924 +96.3994 9.29034 24.1015 +96.2667 9.60218 24.9105 +95.9339 9.89405 25.6677 +96.4573 10.2765 26.6598 +96.2043 10.5789 27.4443 +95.9439 10.8804 28.2266 +96.5322 11.2812 29.2662 +96.2549 11.5837 30.0511 +96.7266 11.9791 31.0768 +96.4322 12.2822 31.8632 +97.0702 12.7074 32.9663 +96.7582 13.0116 33.7554 +97.1857 13.4179 34.8095 +96.8565 13.7225 35.5996 +97.447 14.1607 36.7364 +96.2682 14.3421 37.2071 +96.7451 14.7702 38.3176 +96.4747 15.0876 39.1412 +96.1963 15.4045 39.9632 +96.6379 15.8401 41.0932 +96.2499 16.1428 41.8786 +96.6669 16.5836 43.0221 +96.2608 16.8864 43.8076 +96.5634 17.3163 44.9228 +96.2287 17.635 45.7498 +96.5068 18.0692 46.8762 +96.0647 18.3715 47.6603 +96.4941 18.8439 48.8859 +96.7329 19.2855 50.0316 +96.2613 19.5884 50.8174 +96.3886 20.0157 51.9259 +96.6748 20.4818 53.1349 +96.1742 20.7844 53.9201 +96.3483 21.2358 55.0911 +96.5079 21.6899 56.2692 +96.0623 22.0113 57.103 +96.2794 22.4883 58.3404 +96.3972 22.9484 59.5341 +95.8367 23.2501 60.3168 +96.67 23.8964 61.9933 +96.1684 24.2195 62.8316 +96.147 24.6666 63.9915 +95.6258 24.9886 64.8268 +96.3824 25.6515 66.5466 +95.8363 25.9747 67.3849 +95.7577 26.4277 68.5603 +95.8221 26.9266 69.8544 +95.7912 27.4054 71.0967 +95.7444 27.8861 72.3438 +95.6814 28.3686 73.5954 +95.7556 28.899 74.9715 +95.7351 29.4087 76.2937 +95.6972 29.9204 77.6213 +95.5667 30.4103 78.8921 +96.0886 31.1182 80.7287 +95.9198 31.613 82.0123 +95.8805 32.1582 83.4266 +95.822 32.7055 84.8464 +95.6003 33.2049 86.142 +95.3616 33.7054 87.4403 +95.7423 34.4357 89.3351 +95.604 34.9915 90.7768 +95.3766 35.5231 92.1559 +95.7501 36.2908 94.1477 +95.4798 36.8267 95.538 +95.1907 37.3634 96.9301 +95.418 38.1151 98.8803 +95.086 38.6557 100.283 +95.391 39.4685 102.391 +95.5988 40.2587 104.441 +95.1968 40.805 105.859 +95.2845 41.574 107.854 +94.7127 42.0671 109.133 +94.809 42.8696 111.215 +94.8734 43.6756 113.306 +94.7233 44.4 115.185 +94.6655 45.1837 117.218 +94.6363 45.9998 119.335 +94.5746 46.8187 121.46 +94.5384 47.6701 123.668 +94.8695 48.7311 126.421 +94.7031 49.5605 128.573 +94.3918 50.3331 130.577 +94.326 51.2571 132.974 +94.4949 52.3354 135.771 +94.2961 53.2367 138.11 +94.0607 54.1409 140.455 +93.893 55.1084 142.965 +93.8914 56.2029 145.805 +94.0469 57.4251 148.975 +93.55 58.2786 151.19 +93.9052 59.6971 154.87 +93.8591 60.9017 157.995 +93.7617 62.1109 161.132 +93.5187 63.26 164.113 +93.6426 64.6998 167.848 +93.7944 66.209 171.763 +93.3446 67.3376 174.691 +93.3292 68.8241 178.547 +93.507 70.5106 182.923 +93.2719 71.9421 186.636 +94.7159 74.7522 193.927 +115.595 93.3814 242.255 +115.637 95.6535 248.15 +115.617 97.9661 254.149 +115.877 100.618 261.03 +115.304 102.645 266.289 +112.992 103.171 267.652 +110.091 103.152 267.603 +107.339 103.258 267.878 +104.487 103.253 267.865 +101.644 103.238 267.825 +98.9402 103.349 268.114 +96.1433 103.349 268.113 +93.3231 103.304 267.998 +91.7453 104.657 271.506 +91.3369 107.452 278.757 +91.2825 110.838 287.542 +90.7398 113.817 295.27 +90.7542 117.702 305.349 +90.5349 121.526 315.27 +90.7127 126.158 327.287 +89.9949 129.823 336.795 +89.7131 134.403 348.675 +89.8005 139.901 362.939 +89.5627 145.304 376.956 +89.2149 150.962 391.635 +88.7785 156.946 407.158 +88.7643 164.245 426.093 +88.038 170.847 443.222 +85.2092 173.809 450.906 +88.35 189.892 492.628 +85.5853 194.353 504.202 +80.9109 194.721 505.157 +75.8633 194.149 503.671 +71.1368 194.344 504.177 +66.1872 193.881 502.978 +61.3788 193.76 502.664 +56.4767 193.266 501.381 +51.843 193.651 502.379 +46.9769 193.125 501.016 +42.2345 193.014 500.729 +37.5778 193.283 501.426 +32.8991 193.465 501.899 +28.1044 192.879 500.377 +23.4629 193.283 501.426 +18.7096 192.702 499.919 +14.0413 192.861 500.332 +9.34053 192.466 499.307 +4.6783 192.812 500.205 +3.28626e-14 192.496 499.384 +-4.67568 192.705 499.925 +-9.33529 192.359 499.028 +-14.0335 192.754 500.052 +-18.6538 192.127 498.427 +-23.3713 192.528 499.468 +-27.9736 191.981 498.047 +-32.7098 192.352 499.012 +-37.3546 192.135 498.447 +-42.0384 192.118 498.402 +-46.6109 191.62 497.112 +-51.4117 192.04 498.2 +-56.0691 191.871 497.762 +-60.8354 192.045 498.214 +-65.4073 191.597 497.051 +-70.1839 191.741 497.424 +-74.9169 191.727 497.388 +-79.6249 191.627 497.129 +-84.2087 191.227 496.093 +-89.0102 191.311 496.309 +-93.6485 191.024 495.565 +-98.6259 191.395 496.527 +-103.151 190.866 495.155 +-108.217 191.31 496.308 +-113.042 191.28 496.229 +-117.808 191.129 495.836 +-122.306 190.541 494.313 +-127.368 190.815 495.022 +-132.428 191.036 495.596 +-139.136 193.503 501.997 +-143.955 193.233 501.295 +-146.019 189.377 491.292 +-146.336 183.552 476.182 +-154.504 187.604 486.692 +-143.467 168.779 437.856 +-139.858 159.541 413.89 +-141.839 157.009 407.322 +-143.739 154.511 400.842 +-146.213 152.728 396.215 +-146.207 148.5 385.247 +-147.992 146.244 379.395 +-146.247 140.687 364.978 +-145.82 136.63 354.453 +-146.747 133.992 347.608 +-150.929 134.359 348.563 +-1253.94 1088.83 2824.69 +-1280.31 1084.85 2814.37 +-147.577 122.074 316.691 +-1332.75 1076.64 2793.09 +-490.25 386.92 1003.77 +-137.266 105.876 274.67 +-139.658 105.311 273.205 +-142.646 105.192 272.896 +-144.791 104.451 270.972 +-147.956 104.441 270.947 +-151.176 104.451 270.973 +-436.468 295.245 765.942 +-110.224 73.0158 189.422 +-110.44 71.6602 185.905 +-111.583 70.9354 184.025 +-112.8 70.2707 182.3 +-114.095 69.6661 180.732 +-115.729 69.2745 179.716 +-117.301 68.8475 178.608 +-119.55 68.8123 178.517 +-121.376 68.5253 177.772 +-124.831 69.1371 179.359 +-436.085 236.97 614.762 +-437.624 233.356 605.386 +-437.209 228.802 593.572 +-422.439 216.991 562.931 +-420.371 211.968 549.899 +-423.147 209.476 543.436 +-425.655 206.897 536.744 +-427.409 204.002 529.234 +-427.959 200.598 520.403 +-432.995 199.333 517.12 +-430.344 194.588 504.812 +-452.733 201.085 521.665 +-438.194 191.191 495.999 +-439.731 188.486 488.981 +-441.82 186.059 482.686 +-443.168 183.362 475.689 +-135.638 55.1415 143.051 +-135.566 54.1524 140.485 +-448.119 175.892 456.309 +-449.164 173.243 449.436 +-449.909 170.522 442.377 +-451.736 168.249 436.482 +-454.119 166.209 431.19 +-455.942 163.989 425.43 +-457.978 161.871 419.936 +-459.658 159.653 414.182 +-460.685 157.239 407.918 +-475.16 159.368 413.442 +-460.282 151.699 393.546 +-2434.91 788.547 2045.69 +-2453.95 780.871 2025.78 +-2472.81 773.142 2005.73 +-2491.47 765.351 1985.52 +-2509.94 757.5 1965.15 +-2528.23 749.594 1944.64 +-140.275 40.8558 105.99 +-142.669 40.8169 105.89 +-142.63 40.08 103.978 +-142.486 39.3243 102.017 +-142.796 38.7024 100.404 +-142.443 37.9104 98.3493 +-143.762 37.5673 97.4592 +-148.169 38.0129 98.6153 +-496.816 125.12 324.594 +-499.091 123.373 320.061 +-500.324 121.379 314.889 +-502.249 119.566 310.185 +-504.209 117.77 305.525 +-505.782 115.893 300.656 +-525.027 117.998 306.118 +-507.577 111.873 290.228 +-529.558 114.444 296.897 +-515.857 109.291 283.528 +-518.749 107.722 279.457 +-521.169 106.054 275.131 +-2865.69 571.33 1482.18 +-2879.44 562.313 1458.79 +-528.444 101.06 262.176 +-2906.29 544.154 1411.67 +-379.747 69.5931 180.542 +-379.452 68.0455 176.527 +-380.819 66.8046 173.308 +-381.072 65.3745 169.598 +-379.652 63.6744 165.188 +-381.183 62.4803 162.09 +-381.04 61.0182 158.297 +-379.846 59.404 154.109 +-380.997 58.1675 150.901 +-380.546 56.6939 147.078 +-380.887 55.3491 143.59 +-381.099 53.9935 140.073 +-380.527 52.5375 136.296 +-380.383 51.1521 132.702 +-380.2 49.7716 129.12 +-381.298 48.5646 125.989 +-380.382 47.1083 122.211 +-382.174 45.9926 119.317 +-381.088 44.5356 115.537 +-381.201 43.2296 112.149 +-381.374 41.9369 108.795 +-379.788 40.4623 104.97 +-380.852 39.279 101.9 +-379.67 37.8705 98.2458 +-379.995 36.6214 95.0052 +-380.385 35.3824 91.791 +-380.647 34.1349 88.5548 +-380.78 32.8801 85.2995 +-380.102 31.5624 81.8809 +-381.439 30.4149 78.904 +-379.815 29.037 75.3294 +-380.897 27.8725 72.3083 +-380.871 26.6279 69.0795 +-381.11 25.4052 65.9076 +-381.416 24.1893 62.7532 +-379.523 22.8428 59.2601 +-380.655 21.6845 56.2552 +-380.573 20.4571 53.0708 +-380.362 19.2267 49.8791 +-380.12 17.9993 46.6947 +-381.435 16.845 43.7002 +-380.339 15.5861 40.4342 +-380.703 14.3917 37.3358 +-380.44 13.1755 34.1807 +-381.343 11.9998 31.1305 +-381.022 10.7855 27.9803 +-381.468 9.59419 24.8898 +-380.589 8.37235 21.72 +-381.077 7.18314 18.6349 +-380.338 5.97266 15.4946 +-380.768 4.78244 12.4069 +-147.749 1.39155 3.61004 +-145.778 0.915205 2.37428 +-146.294 0.459189 1.19125 +96.3 0 -1.7053e-13 +96.4963 0.309959 0.782992 +96.2853 0.618611 1.56268 +96.267 0.927856 2.34387 +96.2413 1.23703 3.12488 +96.4082 1.54932 3.91376 +96.168 1.85508 4.68613 +96.1204 2.1639 5.46625 +96.2649 2.47769 6.25892 +96.0031 2.78103 7.02518 +96.8301 3.11816 7.87681 +96.7525 3.42906 8.66218 +96.6675 3.73971 9.44692 +96.8733 4.06255 10.2624 +96.674 4.36908 11.0368 +96.5667 4.67944 11.8208 +96.4521 4.98943 12.6039 +96.1323 5.28816 13.3585 +96.0033 5.59672 14.1379 +95.7683 5.89879 14.901 +96.4127 6.25734 15.8067 +96.2607 6.56678 16.5884 +96.0031 6.86867 17.351 +95.9346 7.18411 18.1479 +95.7607 7.492 18.9256 +95.5794 7.79927 19.7018 +95.3908 8.10599 20.4766 +96.1674 8.49799 21.4669 +95.8652 8.79767 22.2239 +95.653 9.10524 23.0008 +95.5301 9.42167 23.8002 +96.1703 9.81669 24.798 +95.9339 10.1252 25.5774 +96.5531 10.527 26.5925 +96.2043 10.826 27.3477 +96.8023 11.2342 28.3789 +96.5322 11.5447 29.1632 +96.2549 11.8543 29.9454 +96.7266 12.2589 30.9674 +96.5265 12.5814 31.7821 +97.0702 13.0043 32.8504 +96.7582 13.3156 33.6367 +97.2791 13.7446 34.7204 +96.9495 14.0565 35.5084 +96.6126 14.3674 36.2937 +96.2682 14.6772 37.0762 +96.8371 15.1297 38.2192 +96.5664 15.4548 39.0406 +96.1963 15.7644 39.8226 +96.7289 16.2254 40.9872 +96.2499 16.5199 41.7312 +96.6669 16.9711 42.8708 +96.2608 17.2809 43.6535 +96.5634 17.7208 44.7648 +96.2287 18.047 45.5888 +96.5068 18.4914 46.7113 +96.9476 18.9735 47.9291 +96.4941 19.2841 48.7139 +96.8204 19.754 49.9007 +96.2613 20.0461 50.6386 +96.4752 20.5017 51.7897 +96.6748 20.9603 52.948 +96.1742 21.27 53.7304 +97.1157 21.9051 55.3346 +96.5079 22.1966 56.0712 +96.0623 22.5256 56.9021 +96.1955 22.9936 58.0845 +96.3972 23.4846 59.3246 +96.5 23.958 60.5205 +95.9283 24.267 61.3012 +96.1684 24.7853 62.6105 +96.2285 25.2643 63.8204 +95.6258 25.5724 64.5987 +95.659 26.0537 65.8146 +95.8363 26.5815 67.1479 +95.8371 27.0676 68.3757 +95.8221 27.5557 69.6086 +95.7912 28.0457 70.8466 +95.6667 28.5145 72.0307 +96.3759 29.2421 73.8688 +95.8322 29.5978 74.7674 +95.7351 30.0958 76.0253 +95.6972 30.6195 77.3482 +95.5667 31.1208 78.6146 +96.1629 31.8699 80.5069 +95.9198 32.3516 81.7238 +95.8073 32.8844 83.0697 +95.7494 33.4443 84.4839 +95.5283 33.9551 85.7743 +96.0035 34.725 87.7192 +95.1059 35.006 88.4291 +95.604 35.809 90.4575 +95.3071 36.3265 91.7648 +95.1306 36.8983 93.2093 +95.4116 37.6599 95.133 +95.7311 38.4535 97.1377 +95.4849 39.0332 98.6021 +95.086 39.5588 99.9299 +95.391 40.3906 102.031 +95.0142 40.9472 103.437 +95.1968 41.7584 105.486 +95.2845 42.5453 107.474 +94.7757 43.0787 108.822 +94.8712 43.8998 110.896 +94.8119 44.6673 112.835 +94.7233 45.4373 114.78 +94.6655 46.2393 116.806 +94.6363 47.0745 118.915 +94.6922 47.9722 121.183 +94.5384 48.7838 123.233 +94.4107 49.6282 125.366 +94.7031 50.7184 128.12 +94.4477 51.5392 130.194 +94.326 52.4546 132.506 +94.4949 53.5581 135.294 +94.3498 54.5118 137.703 +94.1137 55.4368 140.039 +94.2065 56.5844 142.939 +93.8914 57.516 145.292 +94.0469 58.7667 148.451 +93.95 59.8953 151.302 +93.9052 61.0919 154.325 +93.8591 62.3245 157.439 +93.7617 63.562 160.565 +93.5187 64.738 163.535 +93.6426 66.2114 167.257 +93.749 67.7231 171.076 +93.7015 69.1744 174.742 +93.3292 70.4321 177.919 +93.507 72.158 182.279 +93.2719 73.6229 185.98 +94.6745 76.4652 193.16 +115.595 95.5631 241.403 +115.677 97.9221 247.362 +115.539 100.187 253.084 +115.494 102.629 259.252 +115.304 105.044 265.352 +113.286 105.855 267.402 +110.126 105.596 266.748 +107.304 105.636 266.848 +104.487 105.665 266.922 +101.678 105.685 266.972 +98.9402 105.764 267.17 +96.1433 105.763 267.17 +93.3231 105.718 267.055 +91.6852 107.032 270.374 +91.103 109.681 277.065 +91.2257 113.357 286.352 +90.9603 116.759 294.946 +90.5671 120.203 303.647 +90.5608 124.401 314.25 +90.4873 128.785 325.326 +90.1885 133.142 336.332 +89.7364 137.578 347.538 +89.7555 143.098 361.481 +89.5411 148.663 375.539 +89.0278 154.165 389.439 +88.7785 160.613 405.726 +88.7834 168.118 424.685 +87.9104 174.586 441.023 +85.2092 177.87 449.319 +88.1849 193.965 489.977 +85.5853 198.894 502.428 +80.7335 198.834 502.276 +75.7519 198.393 501.163 +71.0454 198.629 501.758 +66.1507 198.301 500.932 +61.2995 198.031 500.248 +56.5081 197.891 499.895 +51.7567 197.845 499.779 +47.0641 198.004 500.179 +42.2659 197.67 499.337 +37.6197 198.019 500.217 +32.8075 197.434 498.741 +28.1724 197.863 499.823 +23.4236 197.468 498.826 +18.7201 197.315 498.439 +14.0518 197.515 498.944 +9.35624 197.294 498.388 +4.67044 196.986 497.608 +3.28626e-14 197.325 498.464 +-4.67306 197.096 497.887 +-9.34576 197.074 497.83 +-14.0178 197.036 497.735 +-18.6782 196.873 497.324 +-23.3713 197.026 497.711 +-28.0416 196.944 497.502 +-32.6915 196.736 496.977 +-37.3546 196.624 496.694 +-42.0384 196.606 496.649 +-46.698 196.464 496.289 +-51.4117 196.526 496.447 +-56.1004 196.463 496.288 +-60.7222 196.166 495.537 +-65.4926 196.329 495.948 +-70.1448 196.111 495.397 +-74.8334 195.987 495.086 +-79.6249 196.104 495.38 +-84.2712 195.841 494.715 +-89.0597 195.889 494.838 +-93.77 195.74 494.462 +-98.3525 195.323 493.409 +-103.399 195.795 494.6 +-108.217 195.78 494.561 +-113.104 195.857 494.756 +-117.981 195.881 494.818 +-122.396 195.136 492.936 +-127.368 195.273 493.28 +-132.307 195.32 493.401 +-138.911 197.703 499.42 +-144.188 198.067 500.339 +-145.698 193.376 488.488 +-146.501 188.053 475.043 +-154.22 191.634 484.088 +-143.467 172.722 436.315 +-139.407 162.741 411.103 +-141.808 160.642 405.8 +-143.739 158.121 399.432 +-146.506 156.609 395.613 +-146.207 151.969 383.892 +-148.197 149.868 378.584 +-146.212 143.939 363.607 +-145.856 139.856 353.292 +-146.71 137.088 346.299 +-150.817 137.396 347.078 +-1253.94 1114.26 2814.75 +-1280.31 1110.19 2804.47 +-147.936 125.23 316.344 +-1332.75 1101.8 2783.26 +-489.379 395.257 998.462 +-137.055 108.183 273.282 +-139.83 107.905 272.579 +-142.602 107.617 271.852 +-144.791 106.891 270.018 +-148.228 107.078 270.491 +-151.731 107.283 271.01 +-436.045 301.851 762.509 +-110.271 74.754 188.837 +-110.003 73.0447 184.519 +-111.189 72.3362 182.729 +-112.75 71.8809 181.579 +-114.145 71.3254 180.176 +-115.832 70.9563 179.243 +-117.771 70.7384 178.693 +-119.126 70.17 177.257 +-121.376 70.1262 177.147 +-124.886 70.7833 178.806 +-435.589 242.231 611.902 +-437.345 238.656 602.871 +-437.492 234.3 591.867 +-421.177 221.398 559.275 +-420.661 217.07 548.343 +-423.205 214.4 541.599 +-425.715 211.76 534.93 +-427.409 208.768 527.372 +-429.055 205.811 519.9 +-432.995 203.99 515.301 +-430.656 199.278 503.399 +-452.293 205.582 519.324 +-438.003 195.573 494.039 +-440.245 193.115 487.831 +-441.82 190.406 480.987 +-443.168 187.646 474.016 +-135.307 56.2922 142.2 +-135.633 55.4449 140.06 +-448.119 180.002 454.704 +-448.55 177.048 447.242 +-450.322 174.666 441.226 +-451.945 172.259 435.147 +-454.329 170.171 429.872 +-456.579 168.055 424.526 +-458.406 165.808 418.849 +-460.018 163.511 413.047 +-460.685 160.912 406.483 +-2396.28 822.488 2077.7 +-2415.69 814.758 2058.17 +-2434.91 806.97 2038.49 +-2453.95 799.115 2018.65 +-2472.81 791.205 1998.67 +-2491.47 783.233 1978.53 +-383.865 118.557 299.488 +-2528.23 767.107 1937.8 +-140.275 41.8103 105.617 +-142.591 41.7477 105.459 +-142.63 41.0164 103.612 +-142.486 40.243 101.658 +-142.796 39.6066 100.051 +-143.087 38.971 98.445 +-143.843 38.4667 97.1712 +-147.843 38.8156 98.0526 +-496.078 127.854 322.972 +-498.596 126.13 318.619 +-500.324 124.215 313.781 +-501.916 122.278 308.889 +-504.209 120.521 304.45 +-505.951 118.64 299.698 +-525.281 120.814 305.189 +-507.577 114.487 289.207 +-529.815 117.175 295.996 +-515.599 111.788 282.389 +-518.316 110.146 278.242 +-520.56 108.405 273.843 +-523.11 106.729 269.608 +-525.972 105.115 265.531 +-2892.98 566.179 1430.23 +-2906.29 556.867 1406.71 +-380.103 71.2857 180.076 +-380.974 69.9142 176.611 +-380.999 68.3978 172.78 +-381.613 66.9969 169.242 +-379.109 65.0685 164.37 +-380.819 63.8789 161.365 +-381.314 62.4887 157.853 +-380.121 60.8357 153.678 +-381.641 59.6269 150.624 +-380.638 58.0328 146.597 +-381.073 56.6698 143.154 +-381.564 55.3223 139.75 +-379.594 53.6328 135.482 +-380.383 52.3472 132.235 +-381.515 51.1108 129.112 +-380.733 49.6256 125.36 +-381.328 48.3289 122.084 +-381.321 46.9619 118.631 +-380.137 45.4623 114.843 +-382.154 44.3504 112.034 +-380.131 42.7769 108.059 +-379.884 41.4183 104.627 +-380.467 40.1558 101.438 +-381.116 38.9029 98.273 +-380.092 37.4865 94.6951 +-381.16 36.2828 91.6543 +-379.871 34.8612 88.0632 +-380.975 33.6655 85.0428 +-380.686 32.3495 81.7183 +-381.341 31.1175 78.6062 +-379.815 29.7154 75.0644 +-380.799 28.5163 72.0354 +-380.479 27.2219 68.7655 +-381.11 25.9987 65.6757 +-381.121 24.7353 62.484 +-380.509 23.4373 59.2052 +-380.458 22.1796 56.0282 +-381.266 20.9731 52.9803 +-381.451 19.7323 49.8459 +-380.12 18.4198 46.5305 +-380.443 17.1937 43.4331 +-381.234 15.9877 40.3867 +-380.007 14.701 37.1363 +-380.142 13.4728 34.0338 +-381.841 12.2962 31.0615 +-379.925 11.0057 27.8017 +-380.571 9.79523 24.7438 +-380.289 8.56122 21.6266 +-380.478 7.3394 18.5401 +-380.837 6.12023 15.4604 +-380.768 4.89417 12.3632 +-149.549 1.4414 3.64115 +-146.378 0.940441 2.37566 +-146.394 0.470237 1.18787 +96.3 0 -1.7053e-13 +96.2963 0.316353 0.778546 +96.2853 0.632684 1.55704 +96.167 0.947977 2.33297 +96.2413 1.26517 3.11359 +97.1075 1.59606 3.92791 +96.168 1.89728 4.6692 +96.1204 2.21312 5.4465 +96.2649 2.53406 6.23632 +96.2025 2.8502 7.01434 +96.8301 3.18909 7.84836 +96.9516 3.51428 8.64865 +96.6675 3.82478 9.4128 +96.7739 4.15071 10.2149 +96.674 4.46847 10.9969 +96.5667 4.78589 11.7781 +96.4521 5.10293 12.5583 +96.1323 5.40846 13.3102 +96.0033 5.72403 14.0869 +95.6697 6.02677 14.8319 +96.4127 6.39968 15.7496 +96.1623 6.70927 16.5115 +96.0031 7.02492 17.2884 +95.9346 7.34754 18.0823 +95.7607 7.66244 18.8573 +95.5794 7.97669 19.6307 +95.3908 8.29039 20.4027 +96.0701 8.68253 21.3677 +95.8652 8.99781 22.1436 +95.653 9.31237 22.9178 +95.5301 9.636 23.7142 +96.1703 10.04 24.7085 +95.9339 10.3555 25.485 +96.4573 10.7558 26.4701 +96.2043 11.0723 27.2489 +96.0393 11.3992 28.0536 +96.5322 11.8073 29.0579 +96.2549 12.124 29.8372 +96.7266 12.5378 30.8556 +96.4322 12.8551 31.6364 +97.0702 13.3002 32.7317 +96.7582 13.6185 33.5152 +97.2791 14.0573 34.595 +96.8565 14.3625 35.3462 +96.6126 14.6942 36.1626 +97.0997 15.1407 37.2613 +96.8371 15.4738 38.0811 +96.4747 15.7914 38.8626 +96.1963 16.123 39.6788 +95.8189 16.4384 40.455 +96.2499 16.8958 41.5805 +96.6669 17.3571 42.7159 +96.2608 17.674 43.4958 +96.6529 18.1408 44.6445 +96.2287 18.4576 45.4242 +95.7085 18.7556 46.1576 +96.9476 19.4051 47.756 +96.4941 19.7228 48.5379 +96.8204 20.2033 49.7204 +96.2613 20.5021 50.4557 +96.4752 20.9681 51.6026 +95.8993 21.2651 52.3336 +96.1742 21.7539 53.5363 +96.3483 22.2263 54.699 +96.5079 22.7016 55.8687 +96.0623 23.038 56.6965 +96.1955 23.5167 57.8747 +96.3972 24.0188 59.1104 +96.5 24.503 60.3019 +96.7524 25.0323 61.6045 +96.1684 25.3492 62.3844 +96.2285 25.839 63.5899 +95.6258 26.1541 64.3654 +95.659 26.6464 65.5769 +95.8363 27.1862 66.9053 +95.7577 27.6604 68.0723 +95.8221 28.1825 69.3572 +95.8695 28.7071 70.6483 +95.6667 29.1631 71.7705 +95.7586 29.7157 73.1305 +95.8322 30.2712 74.4974 +95.8112 30.8049 75.8109 +95.6972 31.316 77.0688 +95.5667 31.8287 78.3306 +96.1629 32.5949 80.2161 +95.4037 32.9096 80.9905 +95.8073 33.6325 82.7696 +95.6769 34.1792 84.115 +95.5283 34.7275 85.4645 +95.3616 35.2775 86.818 +95.1059 35.8024 88.1097 +95.604 36.6236 90.1307 +95.3071 37.1529 91.4333 +95.0618 37.7102 92.805 +95.4116 38.5166 94.7894 +95.1907 39.1061 96.2402 +95.4849 39.9211 98.246 +95.086 40.4587 99.5689 +95.391 41.3095 101.663 +95.0142 41.8786 103.063 +95.1968 42.7083 105.105 +95.2209 43.4842 107.015 +94.7757 44.0587 108.428 +94.809 44.8691 110.423 +94.8119 45.6834 112.427 +94.7233 46.4709 114.365 +94.6655 47.2912 116.384 +94.101 47.8728 117.815 +94.6922 49.0635 120.745 +94.4804 49.8631 122.713 +94.4107 50.7572 124.913 +94.1934 51.5929 126.97 +94.4477 52.7117 129.724 +94.2156 53.585 131.873 +94.4949 54.7765 134.805 +94.3498 55.7519 137.205 +94.1137 56.6979 139.534 +93.7885 57.6149 141.79 +93.8914 58.8244 144.767 +93.4886 59.7467 147.037 +93.95 61.2578 150.756 +93.5112 62.2196 153.123 +93.8591 63.7423 156.87 +93.714 64.9748 159.903 +93.5187 66.2107 162.945 +93.227 67.4168 165.913 +93.749 69.2637 170.458 +93.3446 70.4785 173.448 +93.3292 72.0343 177.277 +93.1196 73.4935 180.868 +93.2719 75.2978 185.308 +93.3474 77.1085 189.764 +115.595 97.737 240.531 +115.318 99.8391 245.704 +115.539 102.466 252.17 +115.341 104.824 257.973 +115.304 107.433 264.393 +115.411 110.295 271.435 +110.126 107.999 265.785 +110.21 110.966 273.087 +104.487 108.069 265.958 +104.482 111.07 273.343 +98.9402 108.17 266.205 +98.5866 110.918 272.969 +93.3231 108.123 266.091 +92.7978 110.795 272.666 +91.103 112.176 276.065 +90.7997 115.394 283.986 +90.9603 119.415 293.881 +90.5671 122.938 302.551 +90.5608 127.231 313.115 +90.3121 131.46 323.522 +90.1885 136.171 335.117 +89.9232 141.001 347.004 +89.7555 146.353 360.175 +89.5194 152.008 374.092 +89.0278 157.672 388.032 +85.7681 158.697 390.553 +88.7834 171.943 423.151 +87.4548 177.632 437.153 +85.2092 181.916 447.697 +78.9258 177.548 436.947 +85.5853 203.419 500.614 +70.4607 177.481 436.782 +75.7519 202.906 499.353 +61.8825 176.947 435.467 +66.1507 202.813 499.122 +53.5451 176.915 435.388 +56.5081 202.393 498.089 +45.2392 176.865 435.266 +47.0641 202.508 498.373 +36.9464 176.722 434.914 +37.6197 202.523 498.411 +28.6684 176.45 434.244 +28.1724 202.364 498.018 +20.4444 176.273 433.808 +18.7201 201.803 496.638 +12.2639 176.305 433.887 +9.35624 201.783 496.587 +4.08315 176.133 433.464 +3.37508e-14 201.813 496.663 +-4.07966 175.982 433.093 +-9.34576 201.557 496.032 +-12.2246 175.741 432.498 +-18.6782 201.352 495.528 +-20.3921 175.822 432.697 +-28.0416 201.424 495.705 +-28.5402 175.661 432.302 +-37.3546 201.097 494.899 +-36.7032 175.559 432.052 +-46.698 200.933 494.496 +-44.8942 175.516 431.946 +-56.1004 200.933 494.496 +-53.0244 175.194 431.154 +-65.4926 200.795 494.156 +-61.2559 175.155 431.058 +-74.8334 200.446 493.298 +-69.5443 175.173 431.101 +-84.2712 200.296 492.928 +-77.7539 174.912 430.459 +-93.77 200.193 492.676 +-86.0152 174.708 429.956 +-103.399 200.249 492.813 +-94.4605 174.78 430.134 +-113.104 200.312 492.969 +-102.917 174.758 430.079 +-122.396 199.575 491.156 +-111.237 174.421 429.25 +-132.307 199.764 491.619 +-119.732 174.283 428.911 +-144.188 202.573 498.532 +-128.408 174.304 428.963 +-146.501 192.331 473.327 +-138.884 176.502 434.372 +-143.467 176.651 434.739 +-143.467 171.29 421.546 +-141.808 164.297 404.335 +-143.295 161.218 396.759 +-146.506 160.172 394.184 +-142.736 151.736 373.423 +-148.197 153.278 377.217 +-144.531 145.521 358.129 +-145.856 143.038 352.016 +-145.867 139.401 343.066 +-150.817 140.522 345.824 +-147.027 133.622 328.844 +-1280.31 1135.45 2794.34 +-1306.58 1131.2 2783.88 +-1332.75 1126.86 2773.21 +-144.811 119.619 294.383 +-137.055 110.644 272.295 +-143.188 113.01 278.117 +-142.602 110.065 270.87 +-149.03 112.523 276.92 +-148.228 109.514 269.514 +-109.989 79.5381 195.743 +-436.045 308.718 759.755 +-110.653 76.7192 188.806 +-110.003 74.7064 183.853 +-113.356 75.4235 185.617 +-112.75 73.516 180.923 +-116.379 74.3755 183.038 +-115.832 72.5704 178.596 +-120.018 73.7276 181.444 +-119.126 71.7663 176.617 +-126.964 75.0233 184.633 +-124.886 72.3935 178.161 +-438.348 249.311 613.554 +-437.345 244.085 600.693 +-440.437 241.243 593.699 +-421.177 226.434 557.255 +-442.844 233.715 575.173 +-423.205 219.278 539.643 +-445.701 226.746 558.021 +-427.409 213.518 525.467 +-448.109 219.84 541.028 +-432.995 208.63 513.439 +-450.95 213.416 525.217 +-452.293 210.259 517.448 +-452.124 206.47 508.124 +-440.245 197.508 486.069 +-439.222 193.593 476.433 +-443.168 191.915 472.304 +-447.269 190.311 468.356 +-135.633 56.7062 139.554 +-450.956 185.262 455.931 +-448.55 181.075 445.627 +-454.314 180.223 443.529 +-451.945 176.178 433.575 +-456.993 175.063 430.83 +-456.579 171.878 422.992 +-134.804 49.8687 122.727 +-460.018 167.231 411.555 +-467.576 167.035 411.073 +-2396.28 841.198 2070.19 +-2415.69 833.293 2050.74 +-2434.91 825.327 2031.13 +-472.816 157.472 387.54 +-2472.81 809.204 1991.45 +-477.383 153.486 377.73 +-383.865 121.254 298.407 +-142.751 44.2981 109.018 +-140.275 42.7614 105.236 +-143.217 42.8849 105.54 +-142.63 41.9494 103.238 +-142.486 41.1585 101.291 +-142.796 40.5076 99.6894 +-146.784 40.8878 100.625 +-143.843 39.3418 96.8202 +-497.669 133.633 328.871 +-496.078 130.762 321.806 +-501.81 129.831 319.515 +-500.324 127.041 312.648 +-505.418 125.933 309.92 +-504.209 123.263 303.35 +-513.457 123.139 303.045 +-525.281 123.562 304.087 +-514.909 118.783 292.325 +-529.815 119.84 294.927 +-519.476 115.191 283.485 +-518.316 112.652 277.237 +-523.867 111.575 274.587 +-523.11 109.157 268.635 +-529.839 108.296 266.517 +-2892.98 579.059 1425.07 +-380.882 74.6401 183.689 +-380.103 72.9073 179.425 +-379.9 71.3033 175.478 +-380.999 69.9537 172.156 +-381.613 68.521 168.63 +-379.109 66.5488 163.777 +-380.364 65.2541 160.591 +-381.314 63.9102 157.283 +-381.038 62.3698 153.492 +-381.641 60.9834 150.08 +-382.117 59.5833 146.635 +-381.073 57.959 142.637 +-381.564 56.5808 139.245 +-379.594 54.8529 134.993 +-381.132 53.6434 132.016 +-381.515 52.2735 128.645 +-382.524 50.9932 125.494 +-381.328 49.4283 121.643 +-380.467 47.9229 117.938 +-380.137 46.4965 114.428 +-380.819 45.2008 111.239 +-380.131 43.75 107.669 +-380.651 42.446 104.46 +-380.467 41.0693 101.072 +-380.538 39.7272 97.7689 +-380.092 38.3393 94.3531 +-380.192 37.0139 91.0913 +-379.871 35.6542 87.7452 +-380.78 34.4138 84.6924 +-380.686 33.0854 81.4232 +-380.755 31.7765 78.2019 +-379.815 30.3914 74.7933 +-380.995 29.1801 71.8122 +-380.479 27.8411 68.5171 +-378.258 26.3912 64.9489 +-381.121 25.2979 62.2583 +-380.903 23.9953 59.0525 +-380.458 22.6842 55.8259 +-380.573 21.4112 52.6931 +-381.451 20.1812 49.6659 +-381.012 18.8831 46.4712 +-380.443 17.5848 43.2762 +-380.339 16.313 40.1464 +-380.007 15.0354 37.0022 +-380.142 13.7793 33.9109 +-381.841 12.5759 30.9493 +-379.626 11.2472 27.6794 +-380.571 10.0181 24.6545 +-380.289 8.75598 21.5485 +-380.478 7.50636 18.4732 +-380.637 6.25618 15.3965 +-380.768 5.00551 12.3186 +-145.15 1.43084 3.52129 +-146.378 0.961834 2.36708 +-146.594 0.481593 1.1852 +96.5 -3.55271e-15 -1.7053e-13 +96.4963 0.324036 0.777272 +96.4853 0.648048 1.55449 +96.4669 0.97201 2.33158 +97.1408 1.3053 3.13104 +96.4082 1.61968 3.88517 +96.3678 1.94335 4.66156 +97.2183 2.28801 5.4883 +96.3647 2.5929 6.21965 +96.3022 2.91638 6.99559 +97.0294 3.26647 7.83535 +96.1553 3.56265 8.54582 +96.0708 3.88538 9.31994 +96.8733 4.24704 10.1875 +95.9792 4.53467 10.8774 +96.6659 4.89695 11.7464 +96.5511 5.22137 12.5246 +96.3301 5.53967 13.2881 +96.2008 5.86293 14.0635 +95.867 6.17303 14.8074 +96.5112 6.54816 15.7072 +96.359 6.872 16.484 +96.1995 7.1953 17.2595 +95.9346 7.51037 18.0153 +95.8585 7.84021 18.8065 +95.677 8.16182 19.5779 +96.4626 8.56935 20.5555 +96.3619 8.90188 21.3531 +96.0593 9.21583 22.1062 +95.9434 9.54768 22.9022 +96.5926 9.95909 23.8891 +96.2667 10.2728 24.6415 +96.03 10.5957 25.416 +96.649 11.016 26.4244 +96.2999 11.3289 27.1749 +96.0393 11.6519 27.9496 +96.6273 12.0809 28.9787 +96.4445 12.4171 29.7853 +96.9157 12.8407 30.8013 +96.5265 13.1528 31.5499 +96.2245 13.4765 32.3263 +96.7582 13.9203 33.391 +96.5322 14.2585 34.2021 +96.9495 14.6949 35.249 +96.6126 15.0199 36.0285 +97.1921 15.491 37.1586 +96.1007 15.6965 37.6515 +96.5664 16.1567 38.7554 +96.2877 16.4959 39.5692 +96.8199 16.9782 40.7261 +96.5218 17.3189 41.5433 +96.0351 17.6258 42.2795 +96.4406 18.0994 43.4155 +95.937 18.4054 44.1495 +96.3178 18.8841 45.2977 +96.6842 19.3667 46.4554 +96.9476 19.8352 47.579 +96.4941 20.1599 48.358 +96.8204 20.6511 49.5362 +96.3484 20.9754 50.3142 +96.6484 21.4713 51.5036 +96.0717 21.7755 52.2333 +96.2599 22.2558 53.3855 +96.4336 22.739 54.5446 +96.5927 23.2251 55.7105 +96.1466 23.5692 56.536 +96.2794 24.0588 57.7105 +96.4806 24.5723 58.9422 +96.6658 25.089 60.1816 +96.0931 25.4127 60.958 +96.2504 25.933 62.2061 +96.3099 26.434 63.4078 +96.3539 26.9373 64.6151 +95.7394 27.2598 65.3888 +95.8363 27.7887 66.6573 +96.3924 28.4608 68.2695 +95.8221 28.8071 69.1002 +95.9478 29.3673 70.444 +95.8998 29.8821 71.6788 +95.9901 30.4477 73.0356 +95.7556 30.9173 74.162 +95.8112 31.4876 75.5299 +95.7726 32.0353 76.8437 +95.6416 32.5596 78.1015 +96.2373 33.343 79.9805 +95.4774 33.6648 80.7526 +95.9536 34.4303 82.5888 +95.822 34.9896 83.9302 +95.6003 35.5238 85.2118 +95.4329 36.0863 86.5609 +95.2473 36.6502 87.9137 +95.6741 37.4626 89.8625 +95.4461 38.0316 91.2272 +95.1306 38.574 92.5284 +95.548 39.4267 94.5738 +95.2582 40.0012 95.9518 +95.5519 40.8343 97.9501 +95.1522 41.3842 99.2691 +95.4566 42.2538 101.355 +95.0142 42.8067 102.681 +95.3254 43.7137 104.857 +94.7757 44.2401 106.12 +94.8386 45.0651 108.099 +94.809 45.8635 110.014 +94.7503 46.6654 111.937 +94.6624 47.47 113.867 +94.7859 48.4008 116.1 +94.6958 49.2431 118.121 +94.6334 50.1197 120.223 +94.4804 50.9681 122.258 +94.4107 51.882 124.45 +94.6465 52.9898 127.108 +94.0003 53.6247 128.631 +94.2708 54.8049 131.462 +94.1681 55.7968 133.841 +93.8125 56.6626 135.918 +94.0607 57.922 138.939 +93.7885 58.8917 141.265 +93.9944 60.1938 144.388 +94.0469 61.4356 147.367 +93.6 62.3821 149.637 +93.5112 63.5985 152.555 +93.4713 64.886 155.643 +93.8094 66.4821 159.472 +93.6126 67.7461 162.504 +93.6888 69.2522 166.117 +93.4312 70.5585 169.25 +93.3892 72.075 172.888 +93.2854 73.5961 176.537 +93.2057 75.1918 180.364 +92.9338 76.6875 183.952 +93.3889 78.8523 189.145 +92.2885 79.7604 191.323 +115.358 102.087 244.878 +115.383 104.596 250.896 +115.532 107.325 257.443 +115.266 109.778 263.328 +115.411 112.739 270.429 +113.28 113.553 272.383 +110.595 113.821 273.026 +107.702 113.863 273.125 +104.515 113.567 272.416 +101.675 113.623 272.549 +98.8721 113.705 272.746 +95.7644 113.41 272.039 +93.0985 113.617 272.536 +91.1615 114.735 275.218 +91.0553 118.284 283.73 +90.9603 122.062 292.792 +90.6473 125.774 301.696 +90.4573 129.902 311.598 +90.4623 134.596 322.859 +89.9466 138.815 332.979 +89.9465 144.163 345.807 +89.508 149.184 357.851 +89.5627 155.452 372.885 +88.0922 159.473 382.531 +85.2896 161.309 386.934 +88.3446 174.884 419.499 +86.8535 180.32 432.537 +82.726 180.529 433.038 +78.2161 179.851 431.413 +74.2751 180.449 432.847 +69.9139 180.007 431.786 +65.9541 180.577 433.155 +61.3995 179.457 430.467 +57.437 180 431.769 +53.1489 179.498 430.565 +49.1702 180.014 431.803 +44.9133 179.483 430.529 +40.9196 179.971 431.701 +36.6404 179.143 429.714 +32.7018 179.95 431.65 +28.4608 179.054 429.502 +24.4932 179.835 431.374 +20.3135 179.026 429.434 +16.2841 179.434 430.412 +12.1592 178.674 428.589 +8.1241 179.092 429.593 +4.05697 178.882 429.088 +3.19744e-14 179.12 429.658 +-4.04911 178.536 428.257 +-8.11362 178.862 429.039 +-12.154 178.597 428.404 +-16.2701 179.28 430.042 +-20.2394 178.372 427.866 +-24.3467 178.759 428.793 +-28.3265 178.21 427.476 +-32.4995 178.837 428.98 +-36.405 177.992 426.954 +-40.6059 178.591 428.391 +-44.5874 178.18 427.404 +-48.6998 178.292 427.672 +-52.6961 177.968 426.897 +-56.9252 178.396 427.921 +-60.8513 177.855 426.624 +-65.0913 178.215 427.488 +-68.9974 177.647 426.126 +-73.3521 178.207 427.468 +-77.2423 177.612 426.042 +-81.5799 178.028 427.04 +-85.4502 177.407 425.549 +-89.9283 178.02 427.02 +-93.7827 177.372 425.465 +-98.1551 177.689 426.228 +-102.181 177.353 425.421 +-106.649 177.753 426.381 +-110.466 177.051 424.697 +-115.034 177.533 425.852 +-118.931 176.953 424.462 +-123.612 177.514 425.806 +-127.633 177.092 424.794 +-132.389 177.655 426.145 +-138.003 179.27 430.019 +-139.432 175.488 420.947 +-143.136 174.683 419.015 +-143.538 169.987 407.752 +-143.358 164.864 395.464 +-142.957 159.756 383.21 +-143.036 155.425 372.822 +-144.161 152.408 365.583 +-144.531 148.746 356.801 +-144.816 145.166 348.213 +-146.014 142.633 342.137 +-145.685 138.748 332.819 +-146.491 136.085 326.431 +-151.643 137.465 329.741 +-1306.58 1156.27 2773.56 +-1332.67 1151.76 2762.76 +-144.686 122.165 293.04 +-144.789 119.478 286.594 +-143.532 115.792 277.752 +-145.539 114.821 275.424 +-149.387 115.292 276.554 +-437.556 330.439 792.632 +-111.051 82.0857 196.901 +-110.326 79.8412 191.517 +-111.273 78.8588 189.16 +-112.185 77.8765 186.804 +-113.356 77.095 184.929 +-114.75 76.4782 183.45 +-116.277 75.9571 182.2 +-118.304 75.7617 181.731 +-120.384 75.5912 181.322 +-122.623 75.5104 181.128 +-127.394 76.9457 184.571 +-437.018 258.944 621.135 +-438.514 254.932 611.511 +-439.637 250.802 601.604 +-440.721 246.748 591.879 +-441.769 242.768 582.333 +-442.96 238.957 573.192 +-444.601 235.468 564.823 +-445.998 231.925 556.324 +-447.149 228.329 547.698 +-448.596 224.957 539.609 +-449.925 221.592 531.538 +-451.634 218.477 524.065 +-452.985 215.248 516.319 +-453.969 211.907 508.306 +-442.174 202.77 486.388 +-439.417 197.971 474.877 +-441.921 195.616 469.229 +-445.745 193.866 465.031 +-449.054 191.904 460.324 +-450.484 189.169 453.765 +-453.665 187.199 449.038 +-455.209 184.58 442.756 +-456.321 181.826 436.151 +-457.764 179.244 429.957 +-459.832 176.939 424.427 +-133.663 50.5422 121.237 +-134.588 50.0115 119.964 +-466.053 170.18 408.215 +-472.089 169.396 406.334 +-2415.69 851.759 2043.13 +-469.965 162.827 390.577 +-2453.95 835.406 2003.91 +-474.863 158.838 381.009 +-478.447 157.238 377.17 +-140.416 45.3371 108.751 +-143.522 45.5249 109.202 +-142.839 44.5083 106.763 +-143.53 43.9311 105.378 +-143.103 43.0211 103.196 +-142.566 42.0937 100.971 +-142.397 41.2895 99.042 +-146.302 41.6566 99.9226 +-147.403 41.2087 98.8482 +-498.32 136.773 328.08 +-499.437 134.565 322.784 +-501.975 132.752 318.435 +-503.475 130.674 313.45 +-506.085 128.893 309.18 +-508.989 127.189 305.091 +-511.854 125.475 300.98 +-518.751 124.73 299.194 +-515.08 121.455 291.338 +-517.386 119.622 286.941 +-519.821 117.822 282.622 +-522.473 116.072 278.424 +-525.086 114.313 274.205 +-527.92 112.601 270.1 +-530.19 110.769 265.705 +-381.168 77.9858 187.066 +-381.06 76.3296 183.094 +-380.816 74.6631 179.096 +-379.273 72.7634 174.539 +-380.639 71.4362 171.356 +-382.064 70.1222 168.204 +-379.743 68.1374 163.443 +-381.365 66.8757 160.416 +-381.131 65.2954 156.626 +-380.855 63.7212 152.849 +-379.708 62.0193 148.767 +-380.823 60.6975 145.597 +-380.98 59.2292 142.074 +-381.75 57.8628 138.797 +-380.994 56.2755 134.989 +-380.945 54.8052 131.463 +-381.609 53.445 128.2 +-380.827 51.892 124.474 +-381.611 50.561 121.282 +-381.036 49.058 117.677 +-381.279 47.6697 114.346 +-380.152 46.1213 110.632 +-380.322 44.7418 107.323 +-380.46 43.3647 104.02 +-380.66 42.0006 100.748 +-381.019 40.6592 97.5302 +-381.541 39.3386 94.3624 +-379.32 37.7475 90.5457 +-380.647 36.5189 87.5986 +-381.558 35.2483 84.5509 +-381.076 33.8532 81.2044 +-382.22 32.6056 78.2118 +-381.38 31.1929 74.8231 +-380.505 29.7884 71.454 +-381.166 28.5095 68.3864 +-380.323 27.1233 65.0614 +-380.727 25.8319 61.9635 +-380.608 24.508 58.7879 +-380.951 23.217 55.6911 +-381.068 21.9142 52.566 +-381.055 20.607 49.4304 +-381.111 19.3066 46.3111 +-380.741 17.9886 43.1496 +-380.637 16.6876 40.029 +-381.001 15.4089 36.9616 +-381.336 14.1289 33.8913 +-380.646 12.8144 30.7381 +-380.424 11.5206 27.6347 +-380.67 10.2428 24.5695 +-380.988 8.96645 21.508 +-381.576 7.69488 18.4579 +-380.438 6.39148 15.3314 +-3274.5 44 105.544 +-145.95 1.4706 3.52757 +-146.778 0.985836 2.36475 +-146.694 0.4926 1.18161 +96.5 -3.55271e-15 -1.7053e-13 +95.5964 0.327947 0.767095 +96.4853 0.662045 1.54858 +96.267 0.990945 2.3179 +96.4412 1.32389 3.09668 +96.4082 1.65467 3.8704 +96.3678 1.98533 4.64384 +96.32 2.31583 5.41691 +96.2649 2.64616 6.18958 +96.3022 2.97937 6.96899 +97.0294 3.33702 7.80557 +96.9516 3.66975 8.58384 +96.9659 4.00629 9.37104 +96.8733 4.33878 10.1487 +96.8725 4.6757 10.9368 +96.6659 5.00272 11.7018 +96.5511 5.33415 12.477 +96.3301 5.65932 13.2376 +96.2008 5.98956 14.0101 +95.7683 6.29988 14.7359 +95.6248 6.62816 15.5038 +96.2607 7.01328 16.4046 +96.1013 7.34321 17.1764 +96.0326 7.68045 17.9652 +95.8585 8.00955 18.735 +95.677 8.33811 19.5035 +96.4626 8.75444 20.4773 +96.2646 9.085 21.2505 +96.0593 9.41489 22.0222 +95.8466 9.74403 22.7921 +95.6267 10.0725 23.5603 +96.2667 10.4947 24.5479 +96.03 10.8245 25.3194 +96.5531 11.2428 26.2978 +96.2999 11.5736 27.0716 +96.0393 11.9035 27.8433 +96.6273 12.3418 28.8686 +96.3497 12.6729 29.6429 +96.0647 13.0029 30.4148 +96.5265 13.4369 31.43 +97.2582 13.9154 32.5493 +96.7582 14.221 33.264 +96.5322 14.5664 34.0721 +96.9495 15.0123 35.115 +96.6126 15.3443 35.8916 +97.1921 15.8256 37.0173 +96.1007 16.0355 37.5083 +96.5664 16.5056 38.608 +97.2012 17.0122 39.7928 +95.9099 17.1819 40.1899 +97.2468 17.8259 41.6963 +96.8474 18.1588 42.475 +96.3507 18.4732 43.2102 +96.7424 18.9608 44.3509 +96.3178 19.292 45.1255 +96.5955 19.7669 46.2363 +96.2413 20.1159 47.0528 +96.582 20.6141 48.2181 +96.1207 20.9447 48.9913 +97.0447 21.5833 50.4851 +95.7824 21.7385 50.8481 +96.6748 22.3855 52.3614 +96.1742 22.7163 53.1351 +96.4336 23.2302 54.3372 +96.6775 23.7476 55.5474 +96.8213 24.2473 56.7163 +96.2794 24.5785 57.4911 +96.4806 25.1031 58.7181 +96.6658 25.6309 59.9528 +96.0931 25.9616 60.7262 +96.2504 26.4931 61.9696 +96.2285 26.9821 63.1133 +96.3539 27.5191 64.3694 +96.4628 28.059 65.6324 +95.7564 28.3652 66.3486 +96.4718 29.0995 68.066 +95.8221 29.4293 68.8375 +95.8695 29.9771 70.1189 +95.8998 30.5275 71.4063 +95.9129 31.0803 72.6994 +95.8322 31.6103 73.9391 +95.8872 32.1932 75.3024 +95.7726 32.7272 76.5516 +95.7165 33.2889 77.8654 +95.6427 33.8527 79.1843 +96.0672 34.6045 80.9426 +96.0267 35.2008 82.3375 +95.822 35.7453 83.6112 +95.6003 36.2911 84.8879 +95.4329 36.8657 86.2318 +95.8837 37.692 88.1646 +95.7442 38.2998 89.5864 +95.4461 38.8531 90.8804 +95.1994 39.4355 92.2428 +95.548 40.2783 94.2142 +95.2582 40.8652 95.587 +95.5519 41.7163 97.5778 +95.1522 42.278 98.8917 +95.391 43.137 100.901 +94.9493 43.7014 102.221 +95.3254 44.6579 104.458 +94.9029 45.2562 105.858 +94.7757 46.0078 107.616 +94.8712 46.8848 109.667 +94.7503 47.6733 111.512 +94.7233 48.5268 113.508 +94.6655 49.3833 115.512 +94.5768 50.2434 117.523 +94.6334 51.2022 119.766 +94.5384 52.1008 121.868 +94.4107 53.0026 123.977 +94.25 53.9079 126.095 +94.5036 55.0762 128.828 +94.2708 55.9886 130.962 +94.0592 56.936 133.178 +94.3498 58.2183 136.177 +94.0607 59.1731 138.411 +94.1542 60.3984 141.277 +93.9944 61.494 143.839 +94.0469 62.7625 146.807 +94.05 64.0358 149.785 +93.5605 65.0064 152.055 +93.4713 66.2875 155.052 +93.714 67.8493 158.705 +93.6126 69.2094 161.886 +93.3194 70.4693 164.833 +93.4312 72.0826 168.607 +93.3892 73.6318 172.231 +93.3292 75.2211 175.948 +93.2057 76.8159 179.679 +92.976 78.3797 183.336 +93.0572 80.2693 187.756 +92.4106 81.5913 190.849 +115.039 104.004 243.273 +115.344 106.819 249.857 +115.149 109.28 255.615 +115.229 112.113 262.242 +115.411 115.174 269.401 +113.638 116.373 272.206 +110.911 116.611 272.763 +107.668 116.285 272 +104.815 116.354 272.16 +101.675 116.077 271.513 +99.0942 116.421 272.319 +95.9807 116.121 271.617 +93.3692 116.409 272.289 +91.103 117.138 273.996 +90.7997 120.499 281.857 +90.9603 124.698 291.679 +90.674 128.528 300.638 +90.509 132.783 310.591 +90.1869 137.085 320.653 +89.8982 141.737 331.535 +89.7131 146.895 343.599 +89.6655 152.674 357.117 +89.5627 158.809 371.468 +87.51 161.841 378.558 +84.9906 164.215 384.112 +88.3636 178.701 417.995 +85.9605 182.321 426.463 +82.1703 183.189 428.495 +77.6384 182.379 426.599 +73.8996 183.415 429.022 +69.3078 182.301 426.416 +65.3418 182.765 427.502 +60.9296 181.93 425.548 +57.108 182.834 427.664 +52.6621 181.695 425 +48.8252 182.612 427.143 +44.5299 181.794 425.231 +40.6059 182.449 426.763 +36.3736 181.68 424.964 +32.4716 182.543 426.982 +28.2288 181.431 424.382 +24.2734 182.07 425.877 +20.1303 181.244 423.943 +16.155 181.856 425.375 +12.0571 181 423.374 +8.06999 181.742 425.11 +4.02031 181.095 423.595 +3.28626e-14 181.691 424.991 +-4.01246 180.741 422.767 +-8.07174 181.782 425.202 +-12.0283 180.568 422.364 +-16.1096 181.345 424.181 +-20.0562 180.576 422.381 +-24.2054 181.56 424.684 +-28.0701 180.411 421.995 +-32.2624 181.366 424.23 +-36.1461 180.543 422.306 +-40.3618 181.352 424.198 +-44.2136 180.503 422.21 +-48.4385 181.165 423.759 +-52.2546 180.289 421.711 +-56.5839 181.156 423.739 +-60.2509 179.903 420.808 +-64.5763 180.624 422.493 +-68.3619 179.812 420.596 +-72.7264 180.503 422.21 +-76.4335 179.549 419.979 +-80.9548 180.479 422.156 +-84.5573 179.345 419.501 +-89.1269 180.244 421.605 +-92.6862 179.084 418.892 +-97.4898 180.297 421.729 +-101.034 179.15 419.046 +-105.952 180.405 421.982 +-109.673 179.576 420.043 +-114.26 180.147 421.378 +-118.004 179.367 419.555 +-122.784 180.133 421.345 +-126.297 179.023 418.749 +-131.424 180.17 421.432 +-135.845 180.277 421.683 +-139.491 179.354 419.522 +-141.963 176.994 414.003 +-143.384 173.472 405.764 +-143.358 168.425 393.96 +-142.957 163.207 381.753 +-142.736 158.449 370.625 +-143.614 155.109 362.812 +-144.531 151.959 355.445 +-144.243 147.714 345.515 +-145.831 145.531 340.409 +-145.984 142.037 332.236 +-145.688 138.262 323.406 +-150.158 139.06 325.271 +-1306.42 1181.1 2762.68 +-484.342 427.635 1000.27 +-145.267 125.305 293.097 +-144.493 121.809 284.921 +-143.532 118.293 276.696 +-145.846 117.549 274.956 +-149.164 117.607 275.092 +-437.919 337.857 790.274 +-110.773 83.6496 195.663 +-110.42 81.6349 190.951 +-110.844 80.2512 187.714 +-112.185 79.5586 186.094 +-113.799 79.068 184.946 +-115.25 78.4705 183.549 +-116.835 77.9704 182.379 +-118.716 77.6677 181.671 +-120.906 77.5593 181.417 +-123.1 77.4417 181.142 +-127.555 78.7071 184.102 +-437.672 264.933 619.699 +-438.514 260.438 609.186 +-439.246 255.991 598.784 +-441.117 252.304 590.159 +-442.285 248.302 580.797 +-443.251 244.279 571.387 +-444.601 240.554 562.676 +-446.355 237.124 554.652 +-447.329 233.355 545.836 +-448.779 229.909 537.776 +-450.726 226.781 530.46 +-452.257 223.504 522.793 +-453.174 219.988 514.571 +-455.178 217.061 507.722 +-453.551 212.479 497.006 +-444.352 204.519 478.386 +-441.068 199.456 466.544 +-443.16 196.905 460.577 +-448.251 195.699 457.755 +-450.619 193.313 452.175 +-453.393 191.127 447.062 +-455.484 188.681 441.339 +-456.529 185.839 434.691 +-458.745 183.508 429.241 +-459.761 180.733 422.748 +-462.329 178.597 417.753 +-135.308 51.3646 120.146 +-2376.69 886.596 2073.82 +-477.428 175.012 409.368 +-470.973 169.649 396.824 +-2434.91 861.839 2015.91 +-2453.95 853.45 1996.29 +-475.543 162.501 380.104 +-478.447 160.634 375.736 +-142.484 46.9984 109.933 +-142.751 46.2578 108.201 +-142.762 45.4449 106.299 +-143.374 44.8312 104.864 +-143.103 43.9503 102.803 +-142.486 42.9793 100.532 +-142.716 42.2757 98.8862 +-147.669 42.9538 100.472 +-148.455 42.3995 99.1758 +-498.564 139.795 326.993 +-500.42 137.742 322.189 +-501.728 135.552 317.068 +-504.221 133.694 312.721 +-506.335 131.742 308.156 +-509.492 130.065 304.232 +-510.842 127.932 299.242 +-522.652 128.383 300.297 +-515.762 124.243 290.615 +-517.9 122.328 286.134 +-520.596 120.546 281.968 +-523.253 118.756 277.78 +-525.086 116.782 273.163 +-527.92 115.034 269.073 +-530.542 113.237 264.871 +-380.021 79.4304 185.794 +-383.1 78.3958 183.374 +-380.014 76.115 178.039 +-381.153 74.7034 174.737 +-380.37 72.9277 170.584 +-381.162 71.4678 167.169 +-380.287 69.709 163.055 +-381.001 68.2549 159.654 +-380.309 66.5615 155.693 +-381.772 65.2544 152.635 +-379.984 63.4049 148.309 +-381.377 62.099 145.255 +-381.351 60.5675 141.672 +-381.378 59.0552 138.135 +-381.274 57.5331 134.575 +-381.319 56.044 131.092 +-381.609 54.5994 127.712 +-382.618 53.2621 124.584 +-380.855 51.5509 120.582 +-381.036 50.1176 117.229 +-381.659 48.7481 114.026 +-381.01 47.224 110.461 +-380.322 45.7082 106.915 +-380.939 44.3571 103.755 +-380.083 42.8429 100.213 +-380.152 41.4431 96.9387 +-380.671 40.0967 93.7894 +-381.644 38.799 90.754 +-381.229 37.3647 87.399 +-380.586 35.9178 84.0147 +-379.225 34.4164 80.5027 +-380.755 33.1822 77.6159 +-380.695 31.8094 74.4048 +-381.779 30.5336 71.4206 +-379.693 29.0128 67.8633 +-380.618 27.7307 64.8643 +-380.333 26.3625 61.664 +-381.199 25.0763 58.6554 +-380.161 23.6692 55.3643 +-381.463 22.4107 52.4205 +-381.55 21.0794 49.3065 +-381.111 19.7236 46.135 +-381.237 18.4011 43.0416 +-380.637 17.0481 39.8769 +-381.896 15.7786 36.9075 +-381.336 14.4341 33.7625 +-380.148 13.074 30.5811 +-381.321 11.7972 27.5946 +-381.568 10.4887 24.5339 +-380.489 9.14813 21.3982 +-379.879 7.82609 18.3059 +-380.837 6.53637 15.2891 +-3274.5 44.9503 105.142 +-146.55 1.50854 3.5286 +-146.778 1.00713 2.35576 +-146.694 0.50324 1.17712 +95.6 3.55271e-15 1.13687e-13 +96.2963 0.337305 0.769701 +96.4853 0.675986 1.54254 +96.4669 1.01391 2.31367 +96.4412 1.35176 3.08461 +96.4082 1.68951 3.85532 +96.3678 2.02713 4.62574 +96.32 2.36459 5.3958 +96.2649 2.70188 6.16546 +96.3022 3.04211 6.94184 +96.2324 3.3793 7.71128 +97.0511 3.75087 8.55916 +96.0708 4.05288 9.24833 +96.8733 4.43014 10.1092 +96.7732 4.7693 10.8831 +96.6659 5.10807 11.6562 +96.5511 5.44647 12.4284 +96.3301 5.77849 13.186 +96.0033 6.10312 13.9268 +95.867 6.43916 14.6936 +95.6248 6.76773 15.4434 +96.2607 7.16096 16.3407 +95.2178 7.42892 16.9522 +96.0326 7.84218 17.8952 +95.7607 8.1699 18.643 +95.677 8.51369 19.4275 +95.5857 8.85751 20.2121 +96.2646 9.2763 21.1677 +96.1563 9.62286 21.9585 +95.8466 9.94922 22.7033 +95.6267 10.2846 23.4685 +96.2667 10.7156 24.4522 +96.03 11.0524 25.2207 +95.6902 11.377 25.9613 +96.3955 11.8291 26.9929 +96.0393 12.1542 27.7348 +96.6273 12.6017 28.7561 +96.3497 12.9397 29.5274 +96.0647 13.2767 30.2963 +96.5265 13.7198 31.3075 +97.2582 14.2084 32.4225 +96.8519 14.5345 33.1665 +96.5322 14.8732 33.9393 +96.9495 15.3284 34.9781 +96.6126 15.6674 35.7517 +96.3606 16.0206 36.5576 +96.9292 16.5143 37.6843 +96.5664 16.8532 38.4576 +96.2877 17.2071 39.2652 +95.9099 17.5437 40.0333 +96.4311 18.0486 41.1855 +96.8474 18.5412 42.3095 +96.4406 18.8797 43.0819 +96.7424 19.3601 44.1781 +96.3178 19.6982 44.9497 +96.7729 20.2202 46.1407 +96.2413 20.5395 46.8694 +96.582 21.0482 48.0302 +96.8204 21.5414 49.1555 +96.3484 21.8797 49.9276 +96.6484 22.3969 51.1079 +96.761 22.8772 52.2039 +96.2599 23.2153 52.9753 +96.4336 23.7193 54.1255 +96.6775 24.2476 55.331 +96.0623 24.5637 56.0524 +96.2794 25.096 57.267 +96.4806 25.6317 58.4893 +96.6658 26.1707 59.7192 +96.0931 26.5083 60.4896 +96.2504 27.051 61.7281 +96.3099 27.5736 62.9206 +96.3539 28.0986 64.1186 +95.7394 28.435 64.8863 +96.3953 29.1558 66.531 +95.9164 29.5412 67.4105 +95.8221 30.049 68.5692 +95.8695 30.6083 69.8456 +96.5992 31.3977 71.6468 +95.8358 31.7093 72.3579 +95.7556 32.2502 73.5922 +95.8112 32.845 74.9496 +95.7726 33.4163 76.2533 +95.6416 33.9633 77.5014 +95.5684 34.5387 78.8144 +95.4774 35.1162 80.1321 +96.0267 35.942 82.0166 +95.7494 36.4704 83.2223 +96.2477 37.3063 85.1297 +96.0748 37.8952 86.4736 +95.9544 38.5141 87.8858 +95.6741 39.0777 89.172 +95.4461 39.6712 90.5263 +95.1306 40.237 91.8174 +95.548 41.1265 93.8471 +95.2582 41.7257 95.2146 +94.9496 42.3262 96.5848 +95.1522 43.1683 98.5064 +94.8661 43.8029 99.9544 +95.0142 44.6522 101.892 +95.2611 45.5677 103.982 +94.8393 46.1782 105.375 +94.7757 46.9766 107.197 +94.8712 47.872 109.24 +94.7503 48.6772 111.077 +94.7233 49.5486 113.066 +94.7257 50.4553 115.135 +94.0415 51.0112 116.403 +94.5746 52.2479 119.225 +94.3642 53.1 121.17 +94.9269 54.4149 124.17 +94.25 55.0431 125.604 +94.5036 56.236 128.326 +94.2708 57.1676 130.452 +94.1681 58.2023 132.813 +94.3498 59.4442 135.647 +94.1137 60.4529 137.948 +93.893 61.4989 140.335 +93.8914 62.7202 143.122 +93.9961 64.0496 146.156 +93.6 65.0715 148.488 +93.5605 66.3752 151.463 +93.9561 68.0341 155.248 +93.3323 68.9958 157.443 +93.6126 70.6667 161.255 +93.3194 71.9532 164.191 +93.4312 73.6004 167.95 +93.4338 75.218 171.641 +93.2854 76.7689 175.18 +93.2487 78.4695 179.061 +93.0183 80.0662 182.704 +93.0572 81.9595 187.025 +92.4919 83.3824 190.272 +108.659 100.304 228.886 +115.305 109.031 248.799 +115.149 111.581 254.619 +115.192 114.437 261.135 +115.375 117.562 268.266 +113.961 119.161 271.915 +111.156 119.33 272.301 +107.976 119.073 271.715 +105.082 119.107 271.791 +102.196 119.128 271.841 +99.3481 119.177 271.953 +96.2588 118.91 271.343 +93.5496 119.089 271.752 +91.103 119.605 272.928 +90.9701 123.267 281.286 +90.9328 127.285 290.454 +90.7542 131.351 299.731 +90.509 135.579 309.38 +90.3621 140.243 320.023 +90.0191 144.917 330.687 +89.9232 150.339 343.061 +89.6205 155.811 355.547 +89.2597 161.605 368.768 +87.1566 164.581 375.56 +85.6285 168.931 385.487 +88.4209 182.582 416.636 +85.2316 184.581 421.199 +81.3715 185.229 422.676 +76.8297 184.279 420.51 +73.0705 185.176 422.555 +68.5836 184.194 420.315 +64.7433 184.904 421.936 +60.2509 183.691 419.168 +56.5108 184.732 421.543 +52.1867 183.846 419.522 +48.3444 184.621 421.288 +44.0986 183.824 419.471 +40.1527 184.212 420.355 +35.9813 183.505 418.742 +32.1508 184.545 421.115 +27.9969 183.729 419.254 +24.0745 184.381 420.743 +19.9864 183.737 419.272 +16.0224 184.161 420.239 +11.9445 183.087 417.788 +7.99146 183.763 419.332 +3.98017 183.062 417.732 +3.10862e-14 183.671 419.121 +-3.97494 182.821 417.182 +-7.99146 183.763 419.332 +-11.9236 182.765 417.055 +-15.9595 183.439 418.591 +-19.8686 182.654 416.8 +-23.9646 183.539 418.821 +-27.8076 182.487 416.419 +-31.9415 183.344 418.375 +-35.7381 182.264 415.912 +-39.9348 183.212 418.074 +-43.7152 182.226 415.824 +-47.9681 183.184 418.009 +-51.7339 182.251 415.881 +-55.9258 182.82 417.179 +-59.8071 182.338 416.081 +-64.0335 182.877 417.31 +-67.7706 182.011 415.333 +-72.0694 182.639 416.766 +-75.7403 181.666 414.547 +-80.156 182.462 416.362 +-83.7372 181.345 413.815 +-88.1919 182.109 415.557 +-91.8488 181.203 413.489 +-96.5334 182.288 415.965 +-100.082 181.198 413.478 +-104.805 182.21 415.787 +-108.365 181.172 413.419 +-113.195 182.226 415.825 +-116.777 181.24 413.575 +-121.645 182.22 415.81 +-125.121 181.091 413.234 +-130.018 181.996 415.299 +-133.97 181.534 414.244 +-140.105 183.936 419.727 +-140.189 178.462 407.236 +-142.797 176.399 402.528 +-143.327 171.934 392.338 +-142.99 166.681 380.353 +-142.769 161.823 369.266 +-143.067 157.771 360.02 +-144.461 155.084 353.887 +-144.458 151.049 344.682 +-145.025 147.774 337.208 +-145.984 145.028 330.941 +-145.879 141.359 322.569 +-147.814 139.771 318.945 +-152.402 140.683 321.027 +-481.983 434.513 991.521 +-145.267 127.943 291.955 +-143.563 123.574 281.985 +-143.877 121.073 276.279 +-145.32 119.591 272.896 +-149.789 120.586 275.167 +-437.919 344.971 787.194 +-111.189 85.7313 195.632 +-110.279 83.2476 189.964 +-111.417 82.3645 187.949 +-112.233 81.2688 185.448 +-113.405 80.4536 183.588 +-115.2 80.0879 182.754 +-117.191 79.8543 182.221 +-118.768 79.3377 181.042 +-120.697 79.0556 180.398 +-123.418 79.2763 180.902 +-128.092 80.7032 184.158 +-437.672 270.512 617.284 +-438.79 266.09 607.194 +-439.805 261.714 597.21 +-441.457 257.815 588.312 +-442.113 253.431 578.309 +-444.005 249.847 570.131 +-445.247 245.977 561.298 +-446.355 242.117 552.491 +-447.329 238.269 543.709 +-449.144 234.941 536.116 +-450.295 231.335 527.887 +-452.008 228.084 520.469 +-453.803 224.933 513.277 +-454.987 221.538 505.531 +-456.701 218.46 498.508 +-457.406 214.96 490.52 +-441.2 203.717 464.864 +-442.431 200.721 458.028 +-445.641 198.656 453.316 +-450.821 197.472 450.615 +-453.393 195.152 445.32 +-455.828 192.799 439.952 +-457.571 190.185 433.986 +-459.166 187.544 427.96 +-460.327 184.765 421.619 +-461.616 182.077 415.483 +-134.732 52.2234 119.169 +-134.992 51.4178 117.331 +-480.499 179.847 410.396 +-469.719 172.761 394.226 +-2434.91 879.987 2008.05 +-2453.95 871.421 1988.51 +-2472.81 862.796 1968.83 +-478.067 163.886 373.974 +-141.105 47.5236 108.445 +-142.751 47.2318 107.779 +-142.839 46.4271 105.943 +-143.139 45.7002 104.284 +-142.945 44.8264 102.29 +-142.486 43.8843 100.14 +-142.956 43.2385 98.6666 +-148.07 43.9775 100.353 +-496.898 144.905 330.661 +-498.564 142.739 325.719 +-500.42 140.642 320.934 +-502.47 138.611 316.299 +-504.718 136.644 311.81 +-506.836 134.649 307.258 +-509.409 132.782 302.997 +-509.746 130.345 297.437 +-527.74 132.362 302.039 +-516.274 126.985 289.77 +-518.672 125.09 285.444 +-520.596 123.085 280.869 +-523.253 121.257 276.697 +-525.869 119.419 272.504 +-527.658 117.398 267.891 +-530.542 115.622 263.839 +-382.846 81.7059 186.446 +-381.326 79.6761 181.814 +-380.638 77.8454 177.637 +-379.81 76.0075 173.443 +-381.538 74.6922 170.441 +-380.71 72.8864 166.32 +-381.102 71.3294 162.768 +-381.365 69.7588 159.184 +-381.131 68.1104 155.422 +-380.855 66.4683 151.675 +-380.813 64.8809 148.053 +-380.823 63.3143 144.478 +-381.907 61.9327 141.325 +-380.82 60.2104 137.395 +-380.154 58.572 133.656 +-380.757 57.1399 130.388 +-381.139 55.6805 127.058 +-381.487 54.2231 123.732 +-381.611 52.7408 120.35 +-381.89 51.2878 117.034 +-381.659 49.7746 113.581 +-380.915 48.2064 110.003 +-379.749 46.6005 106.338 +-379.98 45.1772 103.09 +-380.66 43.8113 99.9736 +-381.019 42.4121 96.7808 +-380.961 40.9719 93.4945 +-380.772 39.5256 90.194 +-380.647 38.0933 86.9256 +-380.877 36.7023 83.7515 +-380.199 35.2314 80.395 +-380.755 33.8809 77.3134 +-380.597 32.4709 74.0958 +-381.191 31.1286 71.0327 +-380.282 29.6697 67.7037 +-380.618 28.3146 64.6116 +-380.628 26.9385 61.4714 +-380.41 25.5513 58.306 +-380.556 24.1928 55.2059 +-381.365 22.8767 52.2027 +-380.362 21.4563 48.9614 +-380.318 20.097 45.8595 +-380.244 18.7396 42.7622 +-380.637 17.4071 39.7215 +-381.499 16.0941 36.7254 +-379.943 14.6842 33.508 +-381.044 13.3808 30.5339 +-380.723 12.0267 27.4439 +-382.566 10.7375 24.5021 +-380.888 9.35056 21.3372 +-380.278 7.99928 18.2537 +-380.837 6.67401 15.2295 +-3274.5 45.8969 104.733 +-146.95 1.54451 3.52444 +-144.978 1.01573 2.31781 +-146.294 0.512436 1.16934 +96.5 -3.55271e-15 -1.7053e-13 +96.4963 0.34495 0.768219 +96.4853 0.689875 1.53638 +96.4669 1.03475 2.30443 +96.4412 1.37954 3.07229 +96.4082 1.72422 3.83992 +96.4676 2.07092 4.61204 +96.32 2.41318 5.37425 +97.1627 2.78311 6.19811 +96.3022 3.10461 6.91411 +97.0294 3.4773 7.7441 +96.1553 3.7926 8.44628 +96.8664 4.17044 9.28775 +96.8733 4.52116 10.0688 +95.9792 4.82735 10.7507 +96.6659 5.21301 11.6096 +96.5511 5.55837 12.3787 +96.3301 5.89721 13.1334 +96.0033 6.22852 13.8712 +95.867 6.57145 14.6349 +95.7233 6.9139 15.3976 +96.2607 7.30808 16.2754 +96.1013 7.65188 17.0411 +96.0326 8.0033 17.8237 +95.8585 8.34624 18.5874 +95.677 8.6886 19.3499 +96.4626 9.12244 20.3161 +96.2646 9.46689 21.0832 +96.1563 9.82056 21.8708 +95.8466 10.1536 22.6126 +96.496 10.5913 23.5872 +96.2667 10.9358 24.3545 +96.03 11.2795 25.12 +95.7861 11.6223 25.8835 +96.2999 12.0601 26.8584 +96.0393 12.4039 27.6241 +96.6273 12.8606 28.6412 +95.4962 13.0886 29.1489 +96.9157 13.6695 30.4425 +96.5265 14.0017 31.1825 +97.2582 14.5004 32.293 +96.8519 14.8331 33.034 +96.4389 15.1641 33.7711 +96.9495 15.6433 34.8384 +96.6126 15.9893 35.6089 +96.3606 16.3497 36.4116 +96.8371 16.8376 37.4981 +96.5664 17.1995 38.304 +96.2877 17.5606 39.1083 +96.8199 18.0741 40.2517 +96.4311 18.4195 41.021 +96.7571 18.9045 42.1012 +96.3507 19.2497 42.8699 +96.7424 19.7579 44.0017 +96.3178 20.1029 44.7701 +96.6842 20.6167 45.9143 +97.0359 21.1346 47.0676 +96.582 21.4806 47.8383 +96.9079 22.0038 49.0034 +96.3484 22.3292 49.7281 +96.6484 22.8571 50.9038 +96.761 23.3472 51.9954 +96.2599 23.6922 52.7637 +96.4336 24.2066 53.9093 +96.6775 24.7458 55.11 +96.8213 25.2665 56.2696 +96.2794 25.6117 57.0383 +96.4806 26.1583 58.2557 +96.6658 26.7083 59.4807 +96.0931 27.0529 60.248 +96.2504 27.6068 61.4815 +96.2285 28.1163 62.6163 +95.7067 28.4833 63.4336 +95.7394 29.0192 64.6272 +95.7564 29.5576 65.826 +95.8371 30.1232 67.0857 +95.8221 30.6664 68.2953 +95.8695 31.2372 69.5667 +95.9775 31.8365 70.9014 +95.9129 32.3868 72.1269 +95.8322 32.9391 73.3568 +95.8112 33.5198 74.6502 +95.7726 34.1029 75.9487 +95.6416 34.6611 77.1918 +95.5684 35.2483 78.4996 +95.4774 35.8377 79.8121 +96.0267 36.6805 81.689 +95.822 37.2479 82.9527 +95.6003 37.8166 84.2194 +95.5042 38.4441 85.6167 +95.8837 39.2764 87.4703 +95.6741 39.8806 88.8159 +95.4461 40.4863 90.1647 +95.1994 41.0932 91.5164 +95.4798 41.9415 93.4057 +95.7987 42.8247 95.3725 +95.4849 43.4395 96.7418 +95.1522 44.0552 98.1129 +94.8661 44.7028 99.5552 +95.0142 45.5696 101.486 +95.2611 46.5039 103.566 +94.7757 47.0954 104.884 +94.8386 47.9737 106.84 +94.9335 48.888 108.876 +94.7503 49.6773 110.634 +94.6015 50.5015 112.469 +94.6655 51.4592 114.602 +94.5768 52.3554 116.598 +94.6334 53.3545 118.823 +94.4223 54.2241 120.76 +94.4107 55.2306 123.001 +94.25 56.174 125.102 +94.5036 57.3914 127.813 +94.2708 58.3421 129.93 +94.0592 59.3293 132.129 +94.2961 60.6307 135.027 +94.1667 61.7297 137.475 +93.7885 62.6927 139.62 +93.9429 64.0437 142.628 +94.0469 65.4008 145.65 +93.6 66.4085 147.895 +93.5112 67.7033 150.778 +93.5198 69.1095 153.91 +93.7617 70.7374 157.535 +93.6126 72.1186 160.611 +93.735 73.7584 164.263 +93.7944 75.4046 167.93 +93.4338 76.7634 170.955 +93.3292 78.383 174.563 +93.2057 80.0449 178.264 +93.0183 81.7112 181.975 +93.0986 83.6807 186.361 +92.8173 85.395 190.178 +100.724 94.8893 211.323 +115.695 111.648 248.645 +115.532 114.252 254.445 +115.266 116.864 260.261 +115.228 119.825 266.855 +113.997 121.647 270.914 +111.436 122.088 271.896 +107.942 121.481 270.544 +105.416 121.94 271.565 +102.196 121.576 270.755 +99.6337 121.976 271.645 +96.5369 121.704 271.04 +93.8503 121.927 271.537 +90.9276 121.827 271.314 +90.9701 125.8 280.162 +90.9603 129.94 289.382 +90.7542 134.049 298.534 +90.5349 138.405 308.233 +90.3621 143.125 318.745 +89.8982 147.695 328.924 +89.7831 153.189 341.158 +89.5755 158.932 353.949 +88.9134 164.285 365.87 +86.8655 167.402 372.811 +87.064 175.292 390.384 +88.2682 186.011 414.255 +84.3568 186.441 415.211 +80.6248 187.3 417.124 +76.0374 186.126 414.512 +72.3979 187.241 416.993 +67.948 186.237 414.757 +64.117 186.878 416.185 +59.6896 185.719 413.605 +55.9624 186.698 415.784 +51.6999 185.873 413.948 +47.8949 186.662 415.705 +43.6577 185.725 413.619 +39.8563 186.609 415.586 +35.6361 185.478 413.069 +31.809 186.334 414.974 +27.7282 185.705 413.573 +23.8547 186.451 415.235 +19.7858 185.629 413.404 +15.8618 186.061 414.367 +11.8398 185.21 412.471 +7.92688 186.024 414.283 +3.94701 185.267 412.597 +3.28626e-14 186.052 414.346 +-3.94178 185.021 412.05 +-7.91641 185.778 413.735 +-11.8006 184.596 411.104 +-15.8304 185.693 413.547 +-19.6636 184.483 410.853 +-23.7396 185.551 413.231 +-27.5939 184.805 411.57 +-31.6625 185.476 413.063 +-35.4635 184.58 411.068 +-39.5861 185.344 412.769 +-43.3798 184.543 410.985 +-47.5395 185.277 412.621 +-51.2697 184.327 410.504 +-55.548 185.316 412.706 +-59.2067 184.216 410.258 +-63.4351 184.89 411.759 +-67.0907 183.887 409.524 +-71.3498 184.53 410.957 +-75.1792 184.025 409.833 +-79.3572 184.355 410.566 +-83.1176 183.702 409.112 +-87.505 184.403 410.673 +-91.1111 183.441 408.531 +-95.6602 184.35 410.556 +-99.3241 183.521 408.71 +-103.882 184.317 410.481 +-107.385 183.221 408.042 +-112.252 184.42 410.712 +-115.625 183.14 407.86 +-120.221 183.788 409.304 +-123.892 182.996 407.539 +-128.723 183.884 409.519 +-132.578 183.339 408.304 +-138.964 186.188 414.649 +-139.046 180.644 402.303 +-142.086 179.128 398.925 +-143.39 175.544 390.944 +-143.25 170.416 379.523 +-142.769 165.148 367.792 +-142.862 160.782 358.069 +-143.9 157.656 351.107 +-144.458 154.153 343.305 +-144.182 149.934 333.909 +-145.685 147.704 328.942 +-145.879 144.263 321.28 +-146.368 141.247 314.564 +-150.289 141.583 315.311 +-479.176 440.859 981.813 +-145.433 130.721 291.121 +-141.957 124.702 277.717 +-143.748 123.45 274.929 +-145.408 122.122 271.97 +-150.279 123.467 274.966 +-437.465 351.694 783.237 +-111.374 87.6381 195.174 +-110.42 85.0665 189.447 +-111.417 84.0568 187.198 +-112.33 83.0102 184.867 +-114.292 82.7484 184.284 +-115.65 82.0529 182.735 +-117.191 81.495 181.493 +-119.025 81.1431 180.709 +-121.533 81.2385 180.922 +-123.736 81.1136 180.644 +-127.662 82.0848 182.807 +-437.999 276.275 615.278 +-439.287 271.864 605.454 +-439.805 267.091 594.824 +-441.117 262.909 585.511 +-442.457 258.84 576.448 +-443.773 254.847 567.556 +-444.777 250.766 558.466 +-446.177 246.993 550.064 +-448.051 243.557 542.412 +-449.144 239.768 533.975 +-451.034 236.475 526.641 +-452.257 232.899 518.676 +-453.803 229.554 511.227 +-454.796 225.995 503.301 +-457.022 223.106 496.866 +-458.77 220.031 490.018 +-448.613 211.395 470.787 +-443.227 205.212 457.017 +-443.701 201.855 449.54 +-447.241 199.929 445.251 +-452.438 198.742 442.607 +-455.484 196.612 437.864 +-457.224 193.945 431.924 +-459.796 191.66 426.836 +-460.114 188.474 419.741 +-462.186 186.047 414.336 +-474.045 187.518 417.612 +-134.702 52.3612 116.611 +-480.719 183.626 408.943 +-469.793 176.338 392.713 +-2434.91 898.067 2000.03 +-2453.95 889.325 1980.57 +-2472.81 880.522 1960.96 +-478.447 167.386 372.777 +-141.105 48.5 108.012 +-142.828 48.2285 107.407 +-143.073 47.4584 105.692 +-142.748 46.5117 103.584 +-143.024 45.7728 101.938 +-142.566 44.8106 99.7951 +-143.115 44.176 98.382 +-148.07 44.881 99.952 +-496.898 147.882 329.34 +-498.564 145.672 324.418 +-500.911 143.673 319.966 +-503.211 141.668 315.501 +-504.718 139.452 310.565 +-507.586 137.619 306.484 +-2748.07 731.026 1628.03 +-507.553 132.451 294.975 +-527.91 135.125 300.93 +-516.188 129.573 288.565 +-518.672 127.66 284.304 +-520.941 125.697 279.932 +-524.032 123.932 276.002 +-526.652 122.054 271.82 +-528.445 119.988 267.219 +-531.333 118.173 263.176 +-383.199 83.4616 185.873 +-381.592 81.3696 181.214 +-380.638 79.4448 176.927 +-378.736 77.35 172.262 +-380.729 76.065 169.4 +-380.891 74.4191 165.735 +-381.465 72.8641 162.272 +-381.365 71.1921 158.548 +-381.131 69.5097 154.801 +-380.03 67.6873 150.743 +-381.089 66.2622 147.569 +-382.486 64.8973 144.529 +-382.185 63.2515 140.864 +-380.262 61.3574 136.646 +-381.834 60.0396 133.711 +-380.476 58.2708 129.772 +-381.985 56.9506 126.832 +-380.356 55.1728 122.872 +-381.8 53.851 119.929 +-381.89 52.3415 116.567 +-379.947 50.5691 112.62 +-381.01 49.2091 109.591 +-380.609 47.6656 106.154 +-381.323 46.2684 103.042 +-380.275 44.6664 99.474 +-381.212 43.3056 96.4435 +-380.768 41.7924 93.0736 +-380.772 40.3376 89.8337 +-380.938 38.9056 86.6445 +-381.169 37.4851 83.4809 +-381.661 36.0934 80.3817 +-380.951 34.5948 77.0441 +-381.38 33.2062 73.9517 +-381.191 31.7681 70.749 +-380.97 30.334 67.5551 +-381.208 28.9411 64.4532 +-381.515 27.556 61.3685 +-380.903 26.1101 58.1483 +-380.655 24.6962 54.9996 +-381.365 23.3467 51.9942 +-380.362 21.8971 48.7658 +-381.012 20.5473 45.7597 +-380.741 19.1496 42.647 +-380.24 17.7462 39.5215 +-380.504 16.382 36.4834 +-380.739 15.0173 33.4441 +-380.248 13.6271 30.3482 +-380.025 12.2513 27.2842 +-380.072 10.8867 24.2452 +-379.591 9.51019 21.1796 +-381.177 8.18292 18.2237 +-380.837 6.81113 15.1687 +-146.811 2.10004 4.67689 +-146.55 1.57195 3.50081 +-146.478 1.04732 2.33243 +-146.894 0.525111 1.16945 +96.5 -3.55271e-15 -1.7053e-13 +96.4963 0.351866 0.765076 +96.5853 0.704434 1.53168 +96.4669 1.05549 2.295 +96.5412 1.40865 3.06289 +96.4082 1.7588 3.82421 +96.4676 2.11245 4.59317 +96.32 2.46156 5.35226 +96.2649 2.81268 6.11571 +96.3022 3.16686 6.88582 +96.2324 3.51788 7.64906 +97.0511 3.90468 8.4901 +96.8664 4.25406 9.24975 +96.8733 4.61181 10.0276 +96.7732 4.96488 10.7953 +96.6659 5.31754 11.5621 +96.5511 5.66982 12.3281 +96.3301 6.01545 13.0796 +96.0033 6.3534 13.8144 +95.867 6.70322 14.575 +95.6248 7.04526 15.3188 +95.4741 7.39369 16.0764 +95.316 7.74155 16.8327 +96.0326 8.16377 17.7508 +95.8585 8.51359 18.5114 +95.677 8.86281 19.2707 +95.5857 9.22074 20.049 +96.2646 9.65671 20.9969 +96.0593 10.0074 21.7594 +95.9434 10.3677 22.5429 +96.5926 10.8145 23.5143 +96.1703 11.1439 24.2306 +96.03 11.5057 25.0172 +95.7861 11.8554 25.7776 +96.3955 12.3142 26.7751 +96.1347 12.6651 27.5383 +96.6273 13.1185 28.524 +96.3497 13.4704 29.2891 +96.0647 13.8211 30.0518 +96.5265 14.2825 31.0549 +96.1306 14.6196 31.788 +96.9456 15.1452 32.9307 +96.4389 15.4681 33.6329 +97.0426 15.9723 34.7292 +96.6126 16.3099 35.4632 +96.3606 16.6776 36.2626 +96.7451 17.1589 37.3092 +96.5664 17.5443 38.1473 +96.1963 17.8958 38.9114 +96.7289 18.4191 40.0493 +96.4311 18.7888 40.8531 +96.8474 19.3015 41.9681 +96.3507 19.6357 42.6945 +96.7424 20.154 43.8216 +96.3178 20.506 44.587 +96.6842 21.0301 45.7264 +97.0359 21.5583 46.8751 +96.4941 21.8914 47.5992 +96.8204 22.4247 48.7589 +96.3484 22.7769 49.5247 +96.6484 23.3154 50.6955 +96.761 23.8154 51.7826 +96.1742 24.1458 52.501 +96.4336 24.692 53.6887 +96.6775 25.242 54.8845 +96.9057 25.7956 56.0882 +96.2794 26.1252 56.8049 +96.4806 26.6828 58.0174 +95.9196 27.0336 58.7801 +96.0931 27.5953 60.0015 +96.2504 28.1603 61.23 +96.2285 28.6801 62.3601 +95.7067 29.0544 63.174 +96.4628 29.8248 64.8491 +95.8363 30.1754 65.6114 +95.8371 30.7272 66.8112 +95.8221 31.2812 68.0159 +95.7912 31.8375 69.2255 +95.8998 32.4485 70.554 +95.9129 33.0362 71.8318 +95.8322 33.5995 73.0567 +95.8112 34.1919 74.3448 +95.8481 34.8141 75.6975 +95.7165 35.3837 76.9361 +95.5684 35.9551 78.1784 +95.4774 36.5562 79.4855 +95.9536 37.3874 81.2929 +95.822 37.9947 82.6133 +95.6003 38.5749 83.8748 +95.4329 39.1856 85.2027 +95.8837 40.0639 87.1124 +95.6741 40.6802 88.4525 +95.4461 41.298 89.7958 +95.2683 41.9476 91.2083 +95.4798 42.7825 93.0235 +95.2582 43.4368 94.4462 +95.4849 44.3105 96.346 +95.1522 44.9385 97.7115 +95.4566 45.8828 99.7647 +95.0792 46.515 101.139 +95.2611 47.4364 103.143 +94.8393 48.0719 104.524 +95.342 49.1955 106.967 +94.7467 49.77 108.217 +94.7503 50.6734 110.181 +94.7233 51.5805 112.153 +94.7257 52.5244 114.206 +94.6363 53.439 116.194 +94.5746 54.3905 118.263 +94.4223 55.3114 120.266 +94.8122 56.5778 123.019 +94.1367 57.2313 124.44 +94.6154 58.6115 127.441 +93.7741 59.1981 128.717 +94.1136 60.554 131.665 +94.511 61.9876 134.782 +94.2196 63.0029 136.99 +93.7885 63.9498 139.048 +93.8914 65.2923 141.967 +93.9961 66.6762 144.976 +93.6 67.74 147.289 +93.5112 69.0608 150.161 +93.9076 70.7877 153.916 +93.7617 72.1557 156.891 +93.5657 73.5275 159.873 +93.3656 74.941 162.947 +93.3858 76.5814 166.514 +93.4338 78.3025 170.256 +93.2854 79.9171 173.767 +93.2057 81.6498 177.534 +93.0183 83.3496 181.23 +93.0986 85.3586 185.598 +92.98 87.2597 189.732 +97.534 93.7266 203.793 +115.344 113.541 246.875 +115.188 116.196 252.649 +115.192 119.13 259.028 +115.301 122.305 265.932 +114.606 124.749 271.247 +111.506 124.614 270.954 +108.523 124.584 270.888 +105.683 124.7 271.139 +102.456 124.33 270.335 +99.6337 124.421 270.534 +96.7532 124.422 270.536 +93.9104 124.452 270.599 +90.8399 124.15 269.943 +90.9701 128.322 279.016 +90.9052 132.465 288.023 +90.6473 136.576 296.962 +90.6125 141.301 307.236 +90.3621 145.994 317.441 +89.8982 150.657 327.578 +89.7831 156.26 339.762 +89.5305 162.037 352.324 +88.0476 165.947 360.826 +86.221 169.491 368.531 +88.4197 181.591 394.841 +87.8485 188.838 410.598 +83.5003 188.248 409.313 +79.8955 189.327 411.66 +75.3772 188.21 409.232 +71.7252 189.22 411.428 +67.3272 188.235 409.286 +63.4769 188.721 410.344 +59.2067 187.91 408.579 +55.4262 188.616 410.116 +51.1339 187.524 407.741 +47.4768 188.743 410.39 +43.1785 187.37 407.405 +39.5077 188.685 410.266 +35.2438 187.114 406.849 +31.5509 188.528 409.923 +27.4596 187.593 407.891 +23.6559 188.604 410.089 +19.5633 187.222 407.084 +15.7118 187.996 408.767 +11.7168 186.961 406.515 +7.84486 187.79 408.319 +3.90076 186.767 406.094 +2.75335e-14 187.818 408.38 +-3.90338 186.892 406.366 +-7.83264 187.498 407.683 +-11.7011 186.71 405.97 +-15.6734 187.537 407.768 +-19.4979 186.596 405.723 +-23.5564 187.811 408.365 +-27.3192 186.634 405.805 +-31.3765 187.486 407.657 +-35.1261 186.49 405.491 +-39.2288 187.353 407.369 +-42.9581 186.413 405.325 +-47.0483 187.039 406.685 +-50.7037 185.947 404.311 +-54.9753 187.082 406.78 +-58.6193 186.046 404.526 +-62.8088 186.735 406.025 +-66.4255 185.714 403.805 +-70.8492 186.909 406.403 +-74.2879 185.49 403.317 +-78.7668 186.652 405.845 +-82.1518 185.207 402.703 +-86.6082 186.173 404.802 +-90.1741 185.194 402.675 +-94.7661 186.289 405.055 +-98.3069 185.284 402.869 +-103.005 186.425 405.349 +-106.404 185.189 402.662 +-111.163 186.294 405.065 +-114.724 185.355 403.025 +-119.16 185.818 404.03 +-123.037 185.376 403.07 +-127.648 186.005 404.437 +-131.101 184.932 402.103 +-137.59 188.043 408.868 +-139.738 185.183 402.649 +-141.622 182.123 395.996 +-143.104 178.707 388.569 +-142.957 173.477 377.197 +-142.803 168.498 366.372 +-142.793 163.927 356.433 +-143.165 159.995 347.884 +-144.422 157.205 341.816 +-144.365 153.134 332.965 +-145.872 150.859 328.017 +-145.841 147.117 319.881 +-145.469 143.195 311.354 +-148.056 142.276 309.355 +-150.899 141.616 307.921 +-145.765 133.646 290.591 +-141.957 127.202 276.58 +-144.221 126.34 274.706 +-146.109 125.171 272.164 +-150.636 126.242 274.492 +-437.329 358.634 779.79 +-110.958 89.0619 193.65 +-110.561 86.8828 188.912 +-111.56 85.852 186.671 +-112.379 84.7113 184.191 +-114.341 84.4439 183.609 +-115.65 83.6981 181.988 +-117.647 83.4532 181.455 +-119.025 82.7701 179.97 +-121.376 82.7604 179.949 +-124.319 83.1298 180.752 +-436.986 286.608 623.182 +-438.162 281.92 612.988 +-439.287 277.315 602.977 +-440.141 272.654 592.842 +-441.457 268.388 583.565 +-442.457 264.03 574.089 +-444.296 260.263 565.9 +-445.6 256.267 557.211 +-446.355 252.046 548.033 +-448.593 248.741 540.845 +-449.692 244.874 532.439 +-451.034 241.217 524.487 +-453.004 237.961 517.407 +-453.614 234.059 508.924 +-455.623 230.946 502.153 +-457.665 227.899 495.529 +-458.835 224.474 488.082 +-459.635 220.932 480.381 +-454.292 214.553 466.511 +-443.165 205.654 447.161 +-445.619 203.198 441.821 +-452.097 202.574 440.464 +-454.314 200.039 434.952 +-457.571 197.984 430.484 +-460.077 195.623 425.35 +-461.387 192.785 419.18 +-462.186 189.778 412.64 +-476.778 192.381 418.301 +-133.324 52.8649 114.946 +-135.3 52.7187 114.628 +-470.825 180.269 391.965 +-471.748 177.483 385.907 +-2453.95 907.157 1972.46 +-2472.81 898.177 1952.94 +-2491.47 889.127 1933.26 +-140.569 49.2849 107.162 +-143.214 49.3283 107.256 +-143.15 48.4363 105.317 +-143.217 47.6002 103.499 +-142.394 46.4845 101.073 +-143.121 45.8874 99.7747 +-143.675 45.2381 98.3629 +-148.874 46.0295 100.084 +-497.303 150.97 328.26 +-499.297 148.811 323.565 +-501.649 146.769 319.125 +-503.459 144.58 314.365 +-504.967 142.317 309.446 +-507.169 140.263 304.98 +-524.085 142.209 309.211 +-508.987 135.488 294.597 +-528.928 138.1 300.276 +-516.188 132.171 287.384 +-518.672 130.219 283.141 +-521.716 128.408 279.201 +-523.253 126.229 274.464 +-526.217 124.398 270.484 +-529.232 122.576 266.522 +-531.772 120.642 262.316 +-381.433 84.7427 184.259 +-381.769 83.04 180.557 +-380.905 81.0945 176.327 +-381.153 79.4044 172.652 +-381.718 77.7915 169.145 +-380.71 75.8753 164.978 +-381.465 74.3251 161.608 +-381.82 72.706 158.087 +-382.867 71.226 154.869 +-380.03 69.0445 150.126 +-379.064 67.2315 146.184 +-381.932 66.1025 143.729 +-380.424 64.2222 139.641 +-381.657 62.8174 136.586 +-380.061 60.9593 132.546 +-381.226 59.5562 129.495 +-381.891 58.0783 126.282 +-381.393 56.4324 122.703 +-380.855 54.7949 119.143 +-381.416 53.3246 115.945 +-381.279 51.7639 112.552 +-380.628 50.1456 109.033 +-380.322 48.5846 105.639 +-380.556 47.1013 102.414 +-380.66 45.6079 99.1669 +-380.634 44.1066 95.9026 +-380.961 42.6521 92.74 +-380.772 41.1464 89.4662 +-380.162 39.6048 86.1142 +-381.461 38.2659 83.2029 +-381.466 36.7983 80.0119 +-380.658 35.2613 76.6699 +-381.086 33.8459 73.5924 +-380.799 32.3718 70.3871 +-381.362 30.9741 67.348 +-380.323 29.4529 64.0405 +-381.318 28.094 61.0859 +-380.114 26.5784 57.7904 +-380.951 25.211 54.8173 +-381.068 23.7963 51.7412 +-380.065 22.3187 48.5283 +-381.31 20.9757 45.6081 +-380.244 19.5081 42.4171 +-380.637 18.1209 39.4009 +-381.001 16.7323 36.3816 +-381.336 15.3424 33.3595 +-380.248 13.9004 30.2241 +-379.826 12.4904 27.1583 +-380.77 11.1254 24.1903 +-379.591 9.70087 21.093 +-379.879 8.31858 18.0874 +-380.038 6.93311 15.0749 +-146.811 2.14215 4.65775 +-146.75 1.60566 3.49125 +-146.178 1.06613 2.31813 +-146.394 0.533814 1.16069 +96.5 -3.55271e-15 -1.7053e-13 +96.4963 0.358754 0.76187 +96.4853 0.717482 1.52368 +96.267 1.07392 2.28064 +96.5412 1.43623 3.05006 +97.3073 1.80995 3.84371 +96.4676 2.1538 4.57392 +96.32 2.50975 5.32984 +96.3647 2.87071 6.0964 +96.3022 3.22885 6.85697 +96.1328 3.58303 7.60913 +96.9516 3.97704 8.44586 +96.8664 4.33733 9.21099 +96.8733 4.70209 9.98561 +96.7732 5.06207 10.7501 +96.5667 5.41609 11.5019 +96.5511 5.7808 12.2764 +96.3301 6.13321 13.0248 +96.2008 6.4911 13.7849 +95.867 6.83443 14.514 +95.6248 7.18317 15.2546 +96.359 7.60829 16.1574 +96.1995 7.96623 16.9175 +96.0326 8.32358 17.6764 +95.9563 8.6891 18.4527 +95.677 9.0363 19.19 +95.4883 9.39165 19.9446 +96.2646 9.84574 20.909 +96.0593 10.2033 21.6682 +95.8466 10.56 22.4257 +96.496 11.0151 23.3923 +96.2667 11.3734 24.1533 +96.03 11.7309 24.9124 +96.5531 12.1842 25.8751 +96.2999 12.5427 26.6364 +96.0393 12.9003 27.3958 +96.6273 13.3753 28.4045 +96.3497 13.734 29.1664 +96.0647 14.0917 29.9259 +96.5265 14.5621 30.9248 +96.2245 14.9204 31.6857 +96.8519 15.4267 32.761 +96.4389 15.7709 33.492 +96.9495 16.2694 34.5505 +96.7053 16.6452 35.3486 +96.3606 17.004 36.1107 +96.7451 17.4948 37.1528 +96.5664 17.8878 37.9874 +96.2877 18.2634 38.7851 +95.9099 18.6207 39.5439 +96.3405 19.1385 40.6437 +96.8474 19.6794 41.7922 +96.3507 20.02 42.5156 +96.8319 20.5675 43.6784 +96.3178 20.9074 44.4001 +96.6842 21.4417 45.5348 +96.153 21.7804 46.254 +96.4941 22.3199 47.3998 +96.8204 22.8637 48.5546 +96.2613 23.2018 49.2726 +95.869 23.5801 50.076 +96.6748 24.2599 51.5197 +96.1742 24.6184 52.281 +96.4336 25.1753 53.4638 +95.9142 25.5329 54.2231 +96.0623 26.0716 55.3671 +96.2794 26.6366 56.5669 +96.4806 27.2051 57.7743 +95.8367 27.5389 58.4832 +96.0107 28.1113 59.6988 +96.2504 28.7116 60.9734 +96.2285 29.2415 62.0988 +96.3539 29.8235 63.3347 +96.4628 30.4086 64.5774 +95.8363 30.7661 65.3365 +95.9164 31.3546 66.5864 +95.8221 31.8936 67.7309 +95.7912 32.4608 68.9355 +95.8998 33.0837 70.2584 +95.9901 33.71 71.5884 +95.7556 34.2299 72.6925 +95.1268 34.6122 73.5045 +95.8481 35.4956 75.3804 +95.6416 36.0482 76.5539 +95.5684 36.6589 77.8509 +95.4037 37.2431 79.0914 +96.0267 38.1484 81.014 +95.7494 38.7092 82.2049 +95.6003 39.33 83.5234 +95.3616 39.9228 84.7823 +95.318 40.6072 86.2356 +95.6741 41.4765 88.0819 +95.3766 42.0758 89.3545 +95.1994 42.7377 90.7601 +95.548 43.6511 92.6998 +95.2582 44.2871 94.0505 +95.4849 45.1779 95.9423 +95.1522 45.8182 97.3021 +94.8661 46.4917 98.7324 +95.0792 47.4256 100.716 +94.7469 48.1038 102.156 +94.8393 49.0129 104.087 +94.7127 49.827 105.815 +94.809 50.7775 107.834 +94.6887 51.6316 109.648 +94.7233 52.5902 111.683 +94.7257 53.5526 113.727 +94.5173 54.4165 115.562 +94.5746 55.4552 117.768 +94.4223 56.3941 119.762 +94.4107 57.4408 121.985 +94.25 58.4219 124.068 +94.0562 59.4056 126.157 +94.2708 60.6769 128.857 +94.0592 61.7036 131.037 +93.92 62.8057 133.378 +94.1667 64.2 136.339 +93.7885 65.2016 138.466 +93.8399 66.5337 141.295 +93.5393 67.6508 143.667 +93.6 69.066 146.672 +93.5605 70.4497 149.611 +93.4713 71.8381 152.559 +93.7617 73.5681 156.233 +93.5657 74.9668 159.204 +93.735 76.71 162.906 +93.3858 78.0805 165.816 +93.7908 80.1403 170.19 +93.0224 81.2518 172.551 +93.1626 83.2094 176.708 +93.0183 84.9812 180.471 +92.7254 86.6805 184.08 +93.1427 89.1238 189.268 +94.6232 92.7091 196.882 +115.266 115.685 245.674 +115.188 118.47 251.59 +114.929 121.185 257.355 +115.155 124.541 264.482 +114.427 126.992 269.688 +111.821 127.413 270.581 +108.797 127.344 270.434 +105.917 127.422 270.6 +103.01 127.448 270.656 +100.205 127.584 270.945 +97.0313 127.223 270.177 +94.3013 127.416 270.588 +91.0153 126.825 269.332 +91.0837 130.997 278.193 +90.9879 135.181 287.077 +90.7274 139.373 295.98 +90.4831 143.861 305.511 +90.2119 148.605 315.586 +89.9708 153.73 326.469 +89.7364 159.236 338.163 +89.418 165.002 350.407 +87.42 167.99 356.753 +85.2438 170.851 362.828 +88.5991 185.522 393.984 +87.2379 191.197 406.036 +82.2611 189.084 401.55 +78.9752 190.81 405.214 +74.3374 189.247 401.895 +70.8805 190.652 404.88 +66.2038 188.717 400.771 +62.781 190.306 404.145 +58.3452 188.801 400.948 +54.7803 190.067 403.638 +50.4207 188.529 400.37 +46.9437 190.277 404.082 +42.613 188.535 400.384 +38.9586 189.705 402.869 +34.8201 188.484 400.275 +31.1742 189.923 403.332 +27.075 188.587 400.493 +23.3628 189.914 403.311 +19.319 188.503 400.316 +15.5582 189.803 403.076 +11.5624 188.108 399.476 +7.76807 189.592 402.627 +3.84753 187.824 398.873 +2.66454e-14 189.407 402.236 +-3.84055 187.483 398.15 +-7.74363 188.995 401.36 +-11.544 187.809 398.843 +-15.5163 189.292 401.991 +-19.2318 187.652 398.509 +-23.2581 189.063 401.504 +-26.9224 187.523 398.235 +-31.0137 188.946 401.256 +-34.6083 187.337 397.839 +-38.732 188.602 400.525 +-42.268 187.009 397.143 +-46.5779 188.794 400.933 +-50.0132 187.005 397.134 +-54.2806 188.334 399.956 +-57.8101 187.069 397.27 +-62.1686 188.45 400.203 +-65.4648 186.611 396.297 +-69.8636 187.917 399.072 +-73.3472 186.726 396.541 +-77.8291 188.04 399.333 +-81.1677 186.571 396.213 +-85.6351 187.684 398.576 +-89.0377 186.44 395.934 +-93.5187 187.435 398.048 +-96.8784 186.165 395.351 +-101.678 187.625 398.45 +-104.84 186.038 395.081 +-109.808 187.625 398.452 +-112.996 186.138 395.293 +-118.099 187.768 398.755 +-121.059 185.967 394.931 +-126.214 187.517 398.221 +-129.284 185.938 394.867 +-135.134 188.302 399.888 +-139.046 187.873 398.978 +-142.055 186.255 395.542 +-143.39 182.569 387.713 +-142.924 176.833 375.532 +-142.769 171.757 364.752 +-142.759 167.096 354.854 +-143.025 162.968 346.087 +-144.279 160.123 340.045 +-144.328 156.092 331.486 +-145.123 153.022 324.965 +-145.611 149.761 318.04 +-145.391 145.92 309.883 +-146.142 143.186 304.077 +-151.875 145.322 308.615 +-145.682 136.185 289.209 +-142.127 129.846 275.749 +-144.48 129.044 274.045 +-146.942 128.349 272.569 +-150.993 129.018 273.989 +-436.966 365.35 775.878 +-110.589 90.5028 192.197 +-110.608 88.6211 188.201 +-111.607 87.5701 185.969 +-112.864 86.7419 184.21 +-114.341 86.0969 182.84 +-115.6 85.2994 181.147 +-117.546 85.0131 180.539 +-119.489 84.7192 179.914 +-121.742 84.6348 179.735 +-124.849 85.1183 180.762 +-437.362 292.47 621.106 +-438.489 287.653 610.876 +-439.287 282.744 600.45 +-440.644 278.31 591.034 +-441.457 273.641 581.12 +-442.457 269.198 571.684 +-444.528 265.496 563.823 +-445.6 261.283 554.876 +-447.426 257.596 547.046 +-448.412 253.507 538.362 +-449.875 249.769 530.423 +-451.403 246.14 522.716 +-452.817 242.519 515.026 +-454.243 238.972 507.494 +-456.259 235.795 500.747 +-457.986 232.523 493.8 +-459.42 229.16 486.656 +-460.553 225.707 479.323 +-461.912 222.423 472.349 +-446.979 211.484 449.119 +-445.822 207.27 440.17 +-447.868 204.608 434.516 +-451.079 202.502 430.045 +-457.363 201.768 428.485 +-459.867 199.361 423.374 +-461.387 196.559 417.424 +-462.614 193.672 411.292 +-480.087 197.508 419.439 +-472.146 190.877 405.357 +-134.569 53.4601 113.531 +-134.701 52.5834 111.669 +-473.309 181.556 385.561 +-475.212 179.111 380.371 +-2472.81 915.759 1944.76 +-479.36 174.417 370.401 +-141.259 50.4959 107.236 +-142.673 50.1044 106.404 +-143.228 49.4112 104.932 +-142.513 48.2934 102.558 +-142.315 47.3681 100.593 +-143.042 46.7597 99.3015 +-146.07 46.8926 99.5838 +-148.312 46.7533 99.2879 +-497.707 154.05 327.149 +-499.786 151.873 322.525 +-501.649 149.642 317.788 +-503.211 147.337 312.894 +-505.713 145.318 308.605 +-508.087 143.268 304.251 +-524.337 145.062 308.063 +-512.951 139.217 295.648 +-530.115 141.12 299.689 +-516.956 134.959 286.606 +-519.015 132.856 282.141 +-522.233 131.051 278.307 +-524.032 128.892 273.721 +-526.652 126.938 269.573 +-529.582 125.058 265.581 +-2879.44 666.04 1414.44 +-380.904 86.2814 183.232 +-380.262 84.3311 179.09 +-381.173 82.7399 175.711 +-380.705 80.8637 171.727 +-378.482 78.642 167.009 +-381.974 77.617 164.832 +-380.649 75.6181 160.587 +-381.001 73.9703 157.087 +-379.03 71.8926 152.675 +-380.855 70.5485 149.821 +-380.537 68.8138 146.137 +-380.916 67.2171 142.746 +-380.331 65.4636 139.022 +-381.936 64.0939 136.113 +-380.341 62.1982 132.087 +-380.757 60.6475 128.794 +-381.985 59.2297 125.783 +-380.639 57.4234 121.947 +-381.611 55.9783 118.879 +-381.131 54.3279 115.374 +-381.659 52.83 112.193 +-380.152 51.0629 108.44 +-381.183 49.6477 105.435 +-381.323 48.12 102.19 +-380.948 46.536 98.8265 +-381.019 45.0156 95.5976 +-380.188 43.3989 92.1642 +-380.966 41.9732 89.1366 +-382.102 40.5862 86.1911 +-381.752 39.0448 82.9177 +-379.615 37.3366 79.29 +-381.341 36.0161 76.4858 +-381.086 34.5085 73.2841 +-380.799 33.0055 70.0922 +-380.282 31.491 66.876 +-381.208 30.0993 63.9205 +-380.628 28.5922 60.7199 +-380.016 27.0917 57.5333 +-380.062 25.6446 54.4602 +-380.672 24.2369 51.4709 +-380.065 22.7556 48.325 +-380.318 21.3306 45.2989 +-380.344 19.8952 42.2505 +-381.532 18.519 39.328 +-380.405 17.0331 36.1724 +-380.739 15.6182 33.1677 +-380.447 14.1799 30.1133 +-381.321 12.785 27.151 +-381.568 11.367 24.1395 +-380.489 9.91416 21.0543 +-381.177 8.51039 18.0731 +-380.837 7.08369 15.0433 +-148.31 2.20638 4.6856 +-145.85 1.62706 3.4553 +-145.378 1.08105 2.29579 +-146.394 0.544263 1.15583 +96.5 -3.55271e-15 -1.7053e-13 +96.4963 0.365613 0.758603 +96.4853 0.731199 1.51715 +96.4669 1.09673 2.27558 +96.5412 1.46369 3.03697 +96.4082 1.82751 3.79186 +96.3678 2.1927 4.54959 +96.32 2.55773 5.30698 +97.1627 2.94982 6.12052 +97.0997 3.31783 6.88411 +97.129 3.68937 7.655 +97.0511 4.05723 8.41826 +96.9659 4.42476 9.18086 +96.8733 4.79198 9.94278 +96.7732 5.15885 10.704 +96.6659 5.52528 11.4643 +96.5511 5.89132 12.2238 +96.3301 6.25046 12.969 +96.0033 6.60161 13.6976 +95.7683 6.95793 14.4369 +95.6248 7.3205 15.1892 +95.4741 7.68254 15.9404 +96.1995 8.11853 16.845 +95.9346 8.47402 17.5826 +95.8585 8.84619 18.3548 +95.677 9.20906 19.1077 +95.5857 9.58096 19.8793 +95.2923 9.93259 20.6089 +96.1563 10.4088 21.5971 +95.8466 10.7618 22.3295 +95.6267 11.1246 23.0822 +96.2667 11.5909 24.0497 +96.03 11.9552 24.8056 +95.6902 12.3062 25.5339 +96.2999 12.7825 26.5222 +96.1347 13.1599 27.3053 +96.6273 13.631 28.2827 +96.2549 13.9828 29.0126 +96.8211 14.4742 30.0322 +96.5265 14.8404 30.7922 +96.2245 15.2056 31.5498 +96.8519 15.7216 32.6205 +96.4389 16.0724 33.3484 +97.0426 16.5963 34.4354 +96.7053 16.9634 35.197 +97.0997 17.462 36.2316 +96.8371 17.8462 37.0287 +96.5664 18.2297 37.8245 +96.2877 18.6125 38.6188 +95.9099 18.9767 39.3743 +96.4311 19.5228 40.5075 +96.8474 20.0556 41.613 +96.4406 20.4218 42.3727 +96.7424 20.9414 43.4509 +96.3178 21.3071 44.2097 +96.6842 21.8516 45.3395 +96.2413 22.2171 46.0979 +96.582 22.7673 47.2395 +96.8204 23.3008 48.3464 +96.3484 23.6668 49.1057 +96.5618 24.2045 50.2215 +96.761 24.7458 51.3445 +96.1742 25.0891 52.0568 +96.5189 25.6793 53.2815 +96.5927 26.2051 54.3724 +96.0623 26.57 55.1296 +96.2794 27.1458 56.3243 +96.4806 27.7252 57.5265 +96.6658 28.3082 58.7361 +96.0931 28.6734 59.4938 +96.2504 29.2605 60.7119 +96.2285 29.8005 61.8325 +96.3539 30.3936 63.0631 +95.7394 30.7575 63.8182 +95.7564 31.3281 65.0021 +95.8371 31.9276 66.2459 +95.8221 32.5033 67.4404 +95.8695 33.1083 68.6959 +95.8998 33.7162 69.9571 +95.9129 34.3268 71.224 +95.7556 34.8843 72.3807 +95.7351 35.4995 73.6572 +95.7726 36.1457 74.998 +95.6416 36.7373 76.2256 +95.5684 37.3598 77.517 +96.0672 38.219 79.2999 +95.4417 38.6408 80.175 +95.7494 39.4492 81.8524 +95.6722 40.1121 83.2278 +95.4329 40.7165 84.4818 +95.8837 41.6291 86.3754 +95.6741 42.2695 87.7041 +95.3766 42.8802 88.9713 +95.1994 43.5547 90.3708 +95.6162 44.5173 92.368 +95.2582 45.1338 93.6472 +95.4849 46.0416 95.5308 +95.1522 46.6942 96.8848 +95.391 47.6428 98.8531 +95.0792 48.3322 100.284 +95.3254 49.3226 102.338 +94.7757 49.9165 103.571 +94.7127 50.7796 105.362 +94.809 51.7482 107.371 +94.6887 52.6187 109.178 +94.1754 53.2856 110.561 +94.6655 54.5416 113.167 +94.1604 55.2476 114.632 +94.5746 56.5153 117.263 +94.5384 57.543 119.395 +94.296 58.4682 121.315 +94.25 59.5388 123.536 +94.1122 60.5774 125.691 +94.2708 61.8369 128.304 +94.0592 62.8832 130.475 +94.2961 64.2625 133.337 +94.0607 65.354 135.602 +93.893 66.5219 138.025 +93.8399 67.8057 140.689 +93.4886 68.9068 142.973 +93.6 70.3864 146.043 +93.5605 71.7965 148.969 +93.4713 73.2115 151.905 +93.7617 74.9746 155.563 +93.5657 76.4 158.521 +93.2732 77.7915 161.408 +93.7944 79.9215 165.827 +93.3892 81.3229 168.735 +93.3731 83.1173 172.458 +93.1626 84.8001 175.95 +92.976 86.5667 179.616 +93.0986 88.6933 184.028 +93.3867 91.0655 188.95 +92.7092 92.5703 192.072 +115.344 117.976 244.787 +115.188 120.735 250.511 +115.266 123.864 257.003 +115.008 126.76 263.012 +114.749 129.785 269.288 +112.732 130.906 271.615 +109.139 130.186 270.121 +106.484 130.554 270.884 +103.27 130.213 270.177 +100.744 130.723 271.235 +97.3095 130.026 269.789 +94.9028 130.68 271.145 +91.6293 130.121 269.986 +90.9133 133.252 276.482 +90.9603 137.723 285.759 +90.7274 142.037 294.711 +90.6902 146.947 304.897 +90.1118 151.278 313.883 +89.9949 156.711 325.156 +89.7131 162.239 336.626 +89.2606 167.86 348.29 +86.6191 169.633 351.969 +85.618 174.881 362.857 +88.3599 188.558 391.235 +85.6923 191.4 397.132 +80.8215 189.327 392.831 +77.7076 191.336 396.999 +72.9345 189.225 392.62 +69.7228 191.124 396.559 +64.9918 188.804 391.746 +61.7511 190.763 395.811 +57.1835 188.579 391.279 +53.9394 190.728 395.738 +49.5038 188.639 391.403 +46.0971 190.417 395.092 +41.8367 188.639 391.404 +38.3224 190.175 394.59 +34.0983 188.105 390.296 +30.6789 190.48 395.222 +26.5317 188.335 390.772 +22.965 190.249 394.745 +18.9177 188.117 390.32 +15.293 190.134 394.505 +11.3451 188.101 390.288 +7.64241 190.091 394.415 +3.77772 187.942 389.957 +3.10862e-14 189.859 393.935 +-3.77772 187.942 389.957 +-7.61798 189.483 393.155 +-11.3137 187.581 389.207 +-15.265 189.787 393.785 +-18.8828 187.77 389.6 +-22.8446 189.252 392.676 +-26.373 187.208 388.435 +-30.4557 189.093 392.346 +-33.9728 187.413 388.859 +-38.1219 189.18 392.526 +-41.5012 187.127 388.266 +-45.8148 189.251 392.673 +-49.1076 187.129 388.27 +-53.4153 188.875 391.893 +-56.6353 186.771 387.528 +-61.1248 188.828 391.796 +-64.2675 186.7 387.381 +-68.8468 188.723 391.577 +-71.8782 186.484 386.933 +-76.5962 188.6 391.322 +-79.5458 186.339 386.63 +-84.2994 188.289 390.677 +-87.383 186.473 386.909 +-92.0633 188.046 390.173 +-95.0819 186.207 386.356 +-99.9907 188.039 390.158 +-102.879 186.049 386.028 +-107.946 187.969 390.013 +-110.718 185.871 385.661 +-115.899 187.793 389.649 +-118.868 186.092 386.118 +-124.257 188.139 390.365 +-126.699 185.704 385.313 +-132.532 188.206 390.506 +-135.979 187.242 388.504 +-142.148 189.94 394.103 +-144.501 187.5 389.041 +-142.924 180.213 373.921 +-142.969 175.286 363.697 +-143.067 170.657 354.094 +-142.745 165.758 343.928 +-143.598 162.414 336.99 +-144.145 158.874 329.645 +-144.036 154.78 321.149 +-144.96 151.942 315.262 +-145.391 148.709 308.554 +-145.504 145.286 301.451 +-148.011 144.332 299.473 +-145.267 138.393 287.149 +-142.718 132.88 275.709 +-145.297 132.256 274.415 +-148.301 132.012 273.91 +-438.122 381.514 791.596 +-437.011 372.374 772.631 +-110.543 92.1944 191.292 +-110.889 90.5454 187.871 +-112.228 89.7405 186.201 +-112.864 88.4002 183.42 +-114.833 88.1206 182.84 +-116 87.231 180.994 +-118.358 87.2371 181.007 +-120.158 86.8225 180.146 +-122.839 87.0304 180.578 +-126.386 87.8132 182.202 +-437.416 298.098 618.518 +-438.652 293.261 608.482 +-439.949 288.583 598.776 +-440.644 283.63 588.499 +-442.307 279.409 579.741 +-443.317 274.878 570.339 +-444.528 270.572 561.405 +-446.129 266.595 553.152 +-447.783 262.73 545.134 +-448.954 258.666 536.701 +-450.423 254.854 528.792 +-451.588 250.948 520.688 +-454 247.801 514.157 +-455.376 244.148 506.578 +-456.704 240.537 499.086 +-458.05 237.002 491.75 +-460.394 234.036 485.597 +-461.472 230.481 478.22 +-463.105 227.26 471.537 +-464.176 223.819 464.398 +-465.617 220.612 457.743 +-448.073 208.615 432.85 +-449.358 205.586 426.567 +-455.696 204.876 425.092 +-458.254 202.46 420.08 +-461.67 200.44 415.888 +-465.61 198.653 412.181 +-466.708 195.674 406.001 +-480.198 197.844 410.502 +-475.526 192.523 399.462 +-2415.69 961.049 1994.06 +-136.367 53.3086 110.609 +-476.71 183.111 379.934 +-2472.81 933.267 1936.42 +-142.424 52.8124 109.579 +-142.714 51.9914 107.876 +-142.519 51.0071 105.834 +-143.694 50.5196 104.822 +-142.513 49.2166 102.119 +-142.315 48.2736 100.162 +-143.28 47.7327 99.0396 +-146.789 48.0244 99.6449 +-148.07 47.5694 98.7009 +-498.759 157.327 326.435 +-500.518 155.003 321.612 +-502.14 152.652 316.735 +-504.612 150.572 312.419 +-506.874 148.436 307.987 +-509.254 146.342 303.643 +-515.279 145.282 301.443 +-522.144 144.421 299.655 +-515.952 139.975 290.432 +-518.235 137.879 286.083 +-520.215 135.709 281.58 +-522.923 133.733 277.48 +-524.898 131.573 272.998 +-527.784 129.643 268.995 +-530.02 127.555 264.661 +-383.955 90.5102 187.798 +-381.345 88.0329 182.658 +-381.592 86.2437 178.945 +-380.638 84.2036 174.712 +-381.153 82.5065 171.191 +-381.538 80.7928 167.635 +-381.974 79.1009 164.125 +-381.465 77.2288 160.24 +-381.82 75.5464 156.75 +-380.766 73.6027 152.717 +-380.855 71.8973 149.178 +-379.984 70.0278 145.299 +-380.454 68.4192 141.962 +-380.424 66.7312 138.459 +-382.309 65.3827 135.661 +-381.274 63.5427 131.843 +-381.319 61.8981 128.431 +-381.421 60.273 125.059 +-382.335 58.7821 121.966 +-381.139 56.9782 118.223 +-380.562 55.2836 114.707 +-381.659 53.84 111.712 +-380.152 52.0391 107.975 +-380.801 50.546 104.877 +-379.98 48.8671 101.393 +-380.852 47.414 98.3784 +-381.79 45.9691 95.3804 +-380.961 44.3184 91.9554 +-380.772 42.7539 88.7092 +-380.938 41.2361 85.5599 +-380.683 39.6798 82.3308 +-380.589 38.1481 79.1526 +-380.365 36.6107 75.9628 +-381.673 35.2223 73.0821 +-381.583 33.7057 69.9353 +-381.166 32.1676 66.7438 +-379.143 30.5086 63.3017 +-380.628 29.1388 60.4595 +-381.495 27.7171 57.5096 +-380.951 26.196 54.3535 +-382.452 24.8158 51.4898 +-380.56 23.2208 48.1804 +-380.219 21.7328 45.0929 +-381.435 20.3337 42.1901 +-380.637 18.8288 39.0676 +-381.001 17.386 36.0738 +-380.739 15.9168 33.0255 +-380.646 14.4586 29.9998 +-381.321 13.0295 27.0346 +-381.568 11.5843 24.036 +-380.988 10.1169 20.9914 +-380.178 8.65038 17.9485 +-380.837 7.21912 14.9788 +-3274.5 49.6456 103.009 +-146.45 1.66498 3.45463 +-146.278 1.10854 2.30009 +-145.394 0.550882 1.14302 +96.5 -3.55271e-15 -1.7053e-13 +96.4963 0.372442 0.755274 +96.2853 0.743312 1.50736 +96.4669 1.11721 2.26559 +96.4412 1.48948 3.02052 +96.2083 1.85778 3.76739 +96.3678 2.23366 4.52963 +96.32 2.6055 5.28369 +96.2649 2.97715 6.03736 +96.3022 3.35204 6.7976 +96.2324 3.72359 7.55106 +96.0557 4.09062 8.29536 +95.9714 4.46119 9.04684 +96.8733 4.88148 9.89915 +95.88 5.20669 10.5586 +96.5667 5.62273 11.4023 +96.5511 6.00136 12.1701 +96.3301 6.36721 12.912 +96.0033 6.72491 13.6374 +95.7683 7.08789 14.3735 +95.5264 7.44958 15.107 +96.2607 7.89052 16.0012 +95.316 8.19423 16.6171 +96.0326 8.64114 17.5234 +95.8585 9.01141 18.2742 +95.677 9.38106 19.0238 +95.4883 9.74996 19.7719 +96.2646 10.2214 20.7279 +96.0593 10.5925 21.4806 +96.7179 11.0625 22.4337 +96.496 11.4354 23.1898 +96.2667 11.8074 23.9441 +96.7991 12.276 24.8945 +96.649 12.6617 25.6765 +96.3955 13.0342 26.4321 +96.0393 13.3925 27.1586 +96.6273 13.8856 28.1586 +95.591 14.1457 28.6861 +95.9701 14.6149 29.6376 +96.6208 15.1324 30.687 +96.1306 15.4745 31.3807 +96.8519 16.0153 32.4773 +96.5322 16.3885 33.2341 +96.9495 16.8901 34.2514 +96.6126 17.2636 35.0089 +96.2682 17.6358 35.7637 +96.8371 18.1795 36.8662 +96.5664 18.5702 37.6585 +96.1963 18.9422 38.4129 +96.9109 19.5328 39.6106 +96.4311 19.8874 40.3297 +96.0351 20.2589 41.0829 +96.3507 20.7838 42.1475 +96.8319 21.3522 43.3002 +96.2287 21.685 43.975 +96.6842 22.2598 45.1406 +96.9476 22.7982 46.2324 +96.4941 23.1715 46.9894 +96.8204 23.736 48.1342 +96.2613 24.087 48.8459 +96.5618 24.6566 50.0011 +96.761 25.208 51.1192 +96.1742 25.5577 51.8283 +96.4336 26.1359 53.0008 +96.6775 26.718 54.1813 +96.8213 27.2802 55.3214 +96.2794 27.6528 56.0771 +96.4806 28.2431 57.274 +96.6658 28.8369 58.4784 +96.0107 29.1839 59.1819 +96.2504 29.807 60.4455 +96.3099 30.3828 61.6132 +95.6258 30.7273 62.3119 +95.7394 31.332 63.5381 +95.8363 31.9399 64.7708 +95.8371 32.5239 65.9552 +95.8221 33.1104 67.1445 +95.8695 33.7267 68.3944 +95.9775 34.3738 69.7066 +95.9901 34.9961 70.9685 +95.8322 35.5642 72.1206 +95.8112 36.1913 73.3922 +95.7726 36.8208 74.6689 +95.6416 37.4235 75.891 +95.4941 38.028 77.1168 +95.4774 38.6938 78.4672 +95.9536 39.5737 80.2513 +95.7494 40.186 81.4931 +95.6003 40.8305 82.8002 +95.5042 41.508 84.1739 +95.318 42.1564 85.4889 +95.6741 43.059 87.3192 +95.5155 43.7447 88.7098 +95.1306 44.3364 89.9097 +95.548 45.3165 91.8971 +95.1907 45.944 93.1698 +95.4849 46.9016 95.1116 +95.1522 47.5663 96.4596 +95.4566 48.5658 98.4865 +95.0792 49.235 99.8435 +95.3254 50.2438 101.889 +94.8393 50.8829 103.185 +95.1532 51.9687 105.387 +94.809 52.7148 106.9 +94.7503 53.6365 108.769 +94.6624 54.5613 110.645 +94.6053 55.5254 112.6 +94.5768 56.528 114.633 +94.5159 57.5351 116.675 +94.4223 58.5457 118.725 +94.4107 59.6323 120.928 +94.25 60.6509 122.994 +94.0003 61.6354 124.99 +94.326 63.0285 127.815 +94.0592 64.0577 129.902 +94.2961 65.4628 132.752 +94.2726 66.7246 135.311 +93.7885 67.6892 137.267 +93.8914 69.1102 140.148 +93.5393 70.2318 142.423 +93.6 71.701 145.402 +94.0037 73.4838 149.018 +93.5198 74.6174 151.316 +93.714 76.3361 154.802 +93.5657 77.827 157.825 +93.3656 79.3232 160.859 +93.3858 81.0595 164.38 +93.4338 82.8812 168.075 +93.0224 84.3518 171.057 +93.2057 86.4243 175.26 +92.976 88.1836 178.827 +93.0572 90.3096 183.139 +93.0613 92.4431 187.465 +92.2307 93.8129 190.243 +114.953 119.773 242.887 +115.188 122.99 249.412 +114.929 125.809 255.127 +114.935 129.046 261.691 +115 132.498 268.693 +113.467 134.221 272.187 +109.994 133.657 271.042 +107.352 134.076 271.893 +104.084 133.691 271.111 +101.188 133.752 271.235 +98.1129 133.548 270.822 +95.3538 133.754 271.238 +92.214 133.397 270.516 +91.0269 135.911 275.613 +90.6847 139.871 283.643 +90.4869 144.307 292.639 +90.4573 149.307 302.779 +90.1618 154.189 312.68 +89.8014 159.295 323.033 +89.643 165.14 334.886 +87.8659 168.324 341.343 +85.3421 170.254 345.258 +88.7991 184.766 374.687 +86.8247 188.742 382.75 +83.8415 190.764 386.849 +79.0538 188.645 382.552 +75.9363 190.467 386.247 +71.1685 188.092 381.431 +68.1272 190.238 385.783 +63.4546 187.782 380.802 +60.3733 189.99 385.28 +55.813 187.497 380.226 +52.7694 190.076 385.454 +48.3038 187.504 380.239 +45.1667 190.059 385.419 +40.8207 187.496 380.223 +37.4944 189.541 384.37 +33.3922 187.65 380.536 +30.0441 190.022 385.346 +25.9456 187.615 380.463 +22.494 189.828 384.951 +18.4859 187.256 379.737 +14.9789 189.707 384.707 +11.0859 187.238 379.699 +7.47487 189.396 384.076 +3.6922 187.118 379.456 +2.66454e-14 189.115 383.506 +-3.68522 186.764 378.739 +-7.44869 188.733 382.731 +-11.0571 186.751 378.713 +-14.8916 188.602 382.466 +-18.4161 186.549 378.303 +-22.3318 188.459 382.175 +-25.7869 186.467 378.136 +-29.7093 187.905 381.052 +-33.1333 186.195 377.585 +-37.1894 187.999 381.243 +-40.5715 186.352 377.902 +-44.7068 188.123 381.495 +-47.9076 185.966 377.121 +-52.2332 188.144 381.538 +-55.3692 186.007 377.202 +-59.6496 187.713 380.662 +-62.7008 185.551 376.278 +-67.1886 187.617 380.468 +-70.1452 185.387 375.947 +-74.8771 187.81 380.86 +-77.6141 185.209 375.585 +-82.4295 187.551 380.334 +-85.2697 185.362 375.895 +-90.005 187.275 379.775 +-92.7444 185.021 375.204 +-97.8312 187.414 380.057 +-100.638 185.395 375.963 +-105.623 187.36 379.947 +-108.415 185.404 375.98 +-113.492 187.328 379.881 +-116.115 185.178 375.521 +-121.391 187.231 379.686 +-124.03 185.187 375.539 +-129.404 187.196 379.614 +-131.95 185.087 375.337 +-138.718 188.819 382.905 +-141.613 187.186 379.593 +-143.315 184.081 373.297 +-143.07 178.685 362.354 +-142.999 173.762 352.371 +-142.71 168.812 342.334 +-142.63 164.333 333.25 +-142.716 160.237 324.945 +-143.999 157.63 319.657 +-143.774 153.513 311.309 +-145.625 151.731 307.695 +-145.902 148.405 300.95 +-145.327 144.362 292.751 +-144.645 140.374 284.665 +-143.141 135.762 275.312 +-145.685 135.085 273.939 +-149.265 135.352 274.481 +-437.943 388.482 787.801 +-108.867 94.497 191.63 +-110.496 93.8774 190.374 +-111.124 92.4321 187.443 +-112.371 91.5329 185.619 +-113.494 90.5542 183.635 +-115.129 89.9974 182.505 +-116.8 89.4733 181.443 +-119.17 89.4764 181.449 +-120.982 89.0509 180.586 +-124.146 89.5984 181.696 +-127.764 90.4286 183.38 +-437.953 304.039 616.559 +-439.197 299.11 606.564 +-440.28 294.195 596.597 +-440.812 289.038 586.139 +-443.213 285.212 578.38 +-443.489 280.121 568.056 +-445.806 276.418 560.547 +-446.658 271.896 551.377 +-448.437 268.029 543.535 +-449.496 263.815 534.991 +-450.97 259.93 527.111 +-452.45 256.123 519.392 +-454.56 252.74 512.532 +-455.376 248.708 504.355 +-458.231 245.849 498.557 +-459.207 242.038 490.829 +-461.173 238.811 484.284 +-461.734 234.919 476.392 +-463.967 231.936 470.342 +-465.18 228.492 463.359 +-467.103 225.45 457.189 +-468.396 222.15 450.498 +-470.009 219.051 444.213 +-452.292 207.143 420.065 +-453.909 204.286 414.27 +-460.821 203.808 413.302 +-463.47 201.433 408.485 +-461.672 197.179 399.858 +-480.633 201.722 409.071 +-470.407 194.007 393.427 +-472.595 191.527 388.397 +-134.658 53.6236 108.743 +-135.411 52.985 107.448 +-478.637 184.017 373.168 +-140.903 53.2243 107.933 +-143.174 53.1332 107.749 +-142.365 51.9032 105.254 +-143.073 51.2407 103.911 +-142.591 50.1633 101.726 +-142.157 49.1209 99.6121 +-143.676 48.7591 98.8785 +-147.588 49.1872 99.7466 +-497.266 162.737 330.014 +-499.163 160.396 325.267 +-500.681 157.949 320.305 +-503.369 155.884 316.117 +-505.437 153.635 311.556 +-507.205 151.307 306.836 +-2732.06 799.764 1621.84 +-511.254 146.839 297.775 +-528.722 148.972 302.099 +-515.952 142.59 289.157 +-519.002 140.662 285.249 +-520.558 138.335 280.529 +-523.698 136.433 276.672 +-525.591 134.207 272.159 +-529.002 132.37 268.432 +-530.894 130.151 263.933 +-381.319 91.5674 185.689 +-381.698 89.7603 182.025 +-382.302 88.0182 178.492 +-379.301 85.4752 173.335 +-381.153 84.0475 170.44 +-380.37 82.0498 166.389 +-381.433 80.4642 163.173 +-381.465 78.6712 159.537 +-380.546 76.7009 155.542 +-380.583 74.9411 151.973 +-380.305 73.1345 148.309 +-381.089 71.5432 145.082 +-380.823 69.7648 141.476 +-381.351 68.1434 138.188 +-380.82 66.3447 134.54 +-382.114 64.8724 131.555 +-381.413 63.0697 127.899 +-381.609 61.4289 124.571 +-380.921 59.6584 120.981 +-380.477 57.9415 117.5 +-381.89 56.513 114.603 +-381.279 54.7908 111.11 +-381.01 53.131 107.744 +-381.183 51.5419 104.522 +-380.651 49.8679 101.127 +-380.564 48.2629 97.8722 +-380.923 46.7211 94.7456 +-381.251 45.1807 91.6218 +-380.772 43.5525 88.3199 +-379.871 41.8886 84.9458 +-381.169 40.4725 82.0741 +-381.466 38.9501 78.9868 +-381.829 37.4381 75.9205 +-380.695 35.7883 72.5749 +-380.799 34.2647 69.4853 +-380.97 32.7515 66.4167 +-381.208 31.2477 63.3671 +-380.333 29.66 60.1475 +-381.002 28.1983 57.1833 +-381.346 26.7129 54.171 +-380.672 25.1616 51.0252 +-381.055 23.6853 48.0314 +-380.318 22.1444 44.9067 +-380.741 20.6758 41.9284 +-381.532 19.2255 38.9874 +-381.001 17.7107 35.9155 +-379.943 16.1802 32.8118 +-380.148 14.7093 29.829 +-380.922 13.2589 26.8878 +-379.174 11.7266 23.7803 +-379.69 10.2708 20.8282 +-380.678 8.82354 17.8932 +-380.038 7.33852 14.8818 +-3274.5 50.5729 102.557 +-148.749 1.7227 3.49347 +-144.978 1.11921 2.26965 +-145.994 0.563485 1.14269 +95.6 3.55271e-15 1.13687e-13 +95.5964 0.375703 0.74487 +96.4853 0.758452 1.50371 +96.4669 1.13761 2.25542 +96.4412 1.51667 3.00696 +96.4082 1.89562 3.75827 +96.4676 2.27679 4.51396 +96.4198 2.65581 5.26542 +96.3647 3.03464 6.01648 +96.2025 3.40969 6.76007 +97.0294 3.82296 7.57942 +97.0511 4.20845 8.34369 +96.9659 4.58969 9.09953 +96.8733 4.97059 9.85471 +96.7732 5.35113 10.6092 +96.5667 5.72537 11.3511 +96.5511 6.11091 12.1155 +96.3301 6.48343 12.8541 +96.0033 6.84767 13.5762 +95.7683 7.21727 14.309 +95.6248 7.59335 15.0546 +96.359 8.04275 15.9456 +96.1995 8.42113 16.6958 +96.0326 8.79888 17.4447 +95.7607 9.16659 18.1737 +95.5794 9.54253 18.9191 +96.4626 10.0293 19.8841 +96.2646 10.408 20.6349 +96.0593 10.7859 21.3841 +95.8466 11.163 22.1317 +96.496 11.6441 23.0857 +96.2667 12.0229 23.8366 +96.03 12.4008 24.5858 +95.6902 12.7649 25.3077 +96.2999 13.259 26.2873 +96.0393 13.6369 27.0366 +95.7714 14.0138 27.7839 +96.3497 14.5183 28.784 +96.0647 14.8964 29.5336 +96.5265 15.3936 30.5194 +96.2245 15.7724 31.2704 +96.8519 16.3076 32.3315 +96.5322 16.6876 33.0849 +96.9495 17.1984 34.0976 +96.6126 17.5788 34.8517 +96.3606 17.975 35.6373 +96.9292 18.529 36.7356 +96.5664 18.9092 37.4895 +96.1963 19.288 38.2404 +96.8199 19.8707 39.3958 +96.4311 20.2505 40.1486 +96.7571 20.7838 41.206 +96.4406 21.183 41.9974 +96.7424 21.7219 43.066 +96.3178 22.1013 43.8181 +96.6842 22.6661 44.9379 +96.9476 23.2144 46.0249 +96.582 23.6159 46.821 +96.0332 23.9728 47.5285 +96.2613 24.5267 48.6267 +96.6484 25.1292 49.8213 +96.761 25.6681 50.8897 +96.1742 26.0242 51.5957 +96.4336 26.6129 52.7629 +96.6775 27.2057 53.9381 +96.0623 27.5604 54.6413 +96.2794 28.1576 55.8254 +96.4806 28.7586 57.0169 +96.6658 29.3633 58.2158 +96.0931 29.7421 58.9668 +96.2504 30.3511 60.1741 +96.2285 30.9113 61.2847 +95.7067 31.3147 62.0847 +95.8197 31.9307 63.306 +95.8363 32.5229 64.48 +95.8371 33.1176 65.6591 +95.8221 33.7148 66.843 +95.7912 34.3144 68.0318 +95.8998 34.9729 69.3374 +95.9129 35.6063 70.5931 +95.8322 36.2134 71.7969 +95.8112 36.8519 73.0628 +95.7726 37.493 74.3336 +95.6416 38.1066 75.5503 +95.5684 38.7522 76.8303 +95.4037 39.3698 78.0546 +96.0267 40.3267 79.9519 +95.822 40.9506 81.1887 +95.6003 41.5759 82.4284 +95.4329 42.2341 83.7334 +95.318 42.926 85.1051 +95.6741 43.845 86.9272 +95.4461 44.5109 88.2474 +95.1994 45.1781 89.5703 +95.548 46.1437 91.4846 +95.1907 46.7827 92.7515 +95.4849 47.7577 94.6846 +95.086 48.4008 95.9596 +94.8661 49.1466 97.4381 +95.0142 50.0995 99.3274 +94.6826 50.816 100.748 +94.712 51.7424 102.585 +94.6498 52.6376 104.36 +94.7467 53.6419 106.351 +94.6887 54.58 108.21 +94.4798 55.45 109.935 +94.5451 56.5029 112.023 +94.5173 57.5239 114.047 +94.5746 58.6218 116.224 +94.3642 59.5779 118.119 +94.8695 61.0163 120.971 +94.6465 62.0174 122.956 +94.0003 62.7605 124.429 +93.7741 63.8035 126.497 +94.0047 65.1896 129.245 +94.3498 66.696 132.232 +93.6367 67.4842 133.794 +93.8407 68.9631 136.726 +93.9429 70.41 139.595 +93.5393 71.5138 141.784 +93.55 72.9707 144.672 +93.5112 74.4334 147.572 +93.5198 75.9795 150.637 +93.7617 77.7691 154.185 +93.1901 78.9297 156.486 +93.3656 80.7711 160.137 +93.4312 82.5793 163.722 +93.4338 84.3941 167.32 +92.9785 85.851 170.208 +93.2057 88.0019 174.473 +92.9338 89.7523 177.943 +93.0572 91.9581 182.316 +93.0207 94.0896 186.542 +92.8288 96.145 190.617 +105.81 112.259 222.565 +115.188 125.235 248.292 +114.929 128.105 253.981 +114.971 131.443 260.599 +115 134.917 267.487 +114.203 137.557 272.722 +110.507 136.731 271.084 +107.853 137.16 271.934 +104.703 136.94 271.498 +101.982 137.261 272.134 +98.8545 137.014 271.645 +96.0154 137.14 271.894 +92.9742 136.952 271.522 +90.6577 137.83 273.263 +90.7123 142.467 282.456 +90.4869 146.941 291.325 +90.509 152.119 301.592 +90.1118 156.916 311.103 +89.8014 162.202 321.583 +88.3357 165.702 328.521 +87.416 170.519 338.071 +88.5887 179.957 356.783 +88.6535 187.831 372.394 +84.8909 187.907 372.545 +81.9143 189.781 376.261 +77.2861 187.793 372.319 +74.2693 189.686 376.072 +69.5676 187.217 371.177 +66.6254 189.44 375.585 +62.1686 187.334 371.41 +59.0094 189.088 374.887 +54.7427 187.259 371.26 +51.5751 189.165 375.04 +47.3529 187.168 371.08 +44.0587 188.78 374.277 +39.9868 187.019 370.784 +36.6403 188.604 373.928 +32.6468 186.811 370.371 +29.3047 188.729 374.175 +25.3901 186.949 370.645 +21.9916 188.975 374.663 +18.0977 186.67 370.093 +14.6264 188.625 373.968 +10.8451 186.514 369.783 +7.31081 188.621 373.96 +3.60842 186.21 369.181 +2.66454e-14 188.244 373.213 +-3.61017 186.3 369.36 +-7.29685 188.26 373.245 +-10.8294 186.244 369.247 +-14.5636 187.814 372.362 +-17.9974 185.635 368.041 +-21.8817 188.031 372.791 +-25.1886 185.465 367.704 +-29.1722 187.875 372.482 +-32.4585 185.733 368.236 +-36.4398 187.573 371.882 +-39.6514 185.45 367.673 +-43.7974 187.661 372.057 +-46.9454 185.557 367.887 +-51.0876 187.377 371.495 +-54.2467 185.562 367.895 +-58.397 187.125 370.995 +-61.4592 185.197 367.171 +-65.6712 186.727 370.206 +-68.7918 185.129 367.038 +-73.1927 186.936 370.62 +-75.9558 184.561 365.911 +-80.4832 186.465 369.687 +-83.4554 184.73 366.245 +-88.009 186.465 369.687 +-90.883 184.617 366.023 +-95.6717 186.623 369.999 +-98.4439 184.663 366.113 +-103.543 187.022 370.791 +-106.111 184.777 366.339 +-111.137 186.789 370.328 +-113.737 184.696 366.178 +-119.02 186.926 370.6 +-121.445 184.637 366.062 +-126.831 186.823 370.396 +-129.364 184.771 366.328 +-135.319 187.554 371.845 +-138.377 186.246 369.253 +-144.292 188.719 374.154 +-143.57 182.583 361.99 +-142.999 176.934 350.789 +-142.99 172.231 341.466 +-142.63 167.332 331.754 +-142.752 163.204 323.569 +-143.961 160.465 318.139 +-143.812 156.357 309.994 +-144.063 152.842 303.026 +-145.504 150.701 298.78 +-145.612 147.285 292.007 +-142.323 140.642 278.838 +-143.563 138.649 274.886 +-146.718 138.526 274.643 +-150.931 139.361 276.298 +-437.542 395.21 783.545 +-111.182 98.2684 194.827 +-110.635 95.7109 189.757 +-111.359 94.3179 186.995 +-112.848 93.5996 185.571 +-114.318 92.8768 184.138 +-115.966 92.3067 183.008 +-117.2 91.4182 181.246 +-119.424 91.3033 181.018 +-121.497 91.0624 180.541 +-125.661 92.3477 183.089 +-130.254 93.8743 186.116 +-438.813 310.197 614.997 +-439.197 304.57 603.841 +-440.777 299.903 594.589 +-441.986 295.098 585.062 +-443.213 290.418 575.783 +-444.006 285.566 566.165 +-445.864 281.501 558.104 +-447.128 277.151 549.48 +-448.972 273.247 541.741 +-449.977 268.919 533.159 +-451.579 265.032 525.454 +-453.004 261.118 517.693 +-454.934 257.566 510.65 +-456.131 253.668 502.923 +-458.04 250.233 496.112 +-459.4 246.56 488.831 +-461.563 243.376 482.517 +-462.915 239.819 475.466 +-464.563 236.473 468.832 +-466.116 233.132 462.209 +-468.049 230.03 456.058 +-469.624 226.798 449.651 +-471.454 223.735 443.578 +-472.507 220.351 436.869 +-472.203 216.398 429.032 +-455.942 205.331 407.09 +-460.047 203.595 403.647 +-462.823 201.278 399.055 +-468.809 200.351 397.217 +-471.284 197.917 392.392 +-473.48 195.388 387.378 +-475.092 192.646 381.941 +-132.266 52.6989 104.481 +-134.414 52.6201 104.325 +-135.58 52.1486 103.39 +-141.259 53.3794 105.83 +-140.513 52.1634 103.419 +-142.839 52.0909 103.276 +-142.591 51.079 101.269 +-142.866 50.267 99.6596 +-146.612 50.6633 100.445 +-148.626 50.4377 99.998 +-498.552 166.136 329.382 +-500.296 163.694 324.54 +-502.635 161.46 320.112 +-504.024 158.937 315.108 +-506.096 156.643 310.562 +-507.205 154.069 305.458 +-522.846 155.848 308.985 +-508.989 148.857 295.125 +-521.553 149.634 296.665 +-516.97 145.479 288.427 +-519.343 143.324 284.155 +-521.758 141.185 279.914 +-524.043 139.015 275.611 +-527.15 137.062 271.74 +-529.35 134.875 267.403 +-531.944 132.789 263.268 +-381.055 93.1745 184.728 +-380.727 91.166 180.746 +-382.302 89.6249 177.691 +-380.103 87.2192 172.921 +-379.542 85.2196 168.957 +-379.111 83.271 165.093 +-381.162 81.8749 162.325 +-380.649 79.9362 158.482 +-381.274 78.2501 155.139 +-380.766 76.346 151.364 +-380.855 74.5771 147.857 +-379.984 72.6379 144.012 +-380.176 70.9176 140.601 +-381.351 69.3873 137.567 +-380.541 67.5062 133.838 +-380.061 65.7017 130.26 +-380.476 64.0633 127.012 +-381.703 62.5659 124.043 +-382.807 61.0483 121.035 +-381.611 59.1748 117.32 +-381.036 57.4158 113.833 +-381.279 55.791 110.611 +-380.628 54.0468 107.153 +-381.183 52.4827 104.052 +-380.747 50.7908 100.698 +-380.564 49.1439 97.4328 +-380.73 47.5501 94.273 +-381.251 46.0054 91.2105 +-381.837 44.4715 88.1693 +-381.617 42.8494 84.9533 +-380.197 41.1062 81.4972 +-380.589 39.5699 78.4515 +-380.951 38.0337 75.4058 +-381.478 36.5165 72.3977 +-380.799 34.8902 69.1734 +-380.871 33.3408 66.1015 +-381.798 31.8673 63.1803 +-380.924 30.2483 59.9705 +-381.002 28.713 56.9265 +-381.742 27.2287 53.9837 +-381.068 25.6476 50.849 +-381.055 24.1177 47.8158 +-381.111 22.5957 44.7984 +-380.741 21.0532 41.7402 +-381.035 19.551 38.7619 +-381.399 18.0528 35.7916 +-381.436 16.5403 32.7929 +-381.642 15.0367 29.8119 +-381.52 13.5222 26.8091 +-379.773 11.9595 23.7109 +-380.988 10.494 20.8055 +-380.278 8.97514 17.7941 +-3273.38 64.3628 127.606 +-380.568 5.98495 11.8658 +-147.15 1.73529 3.44039 +-145.878 1.14672 2.27349 +-145.194 0.570627 1.13133 +95.6 3.55271e-15 1.13687e-13 +95.3964 0.381607 0.739899 +96.2853 0.770388 1.49371 +96.5669 1.1591 2.24739 +96.4412 1.54374 2.99315 +96.5081 1.93145 3.74489 +96.3678 2.31502 4.48859 +96.32 2.70041 5.23582 +96.2649 3.08559 5.98266 +96.2025 3.47054 6.72904 +97.0294 3.89118 7.54462 +96.9516 4.27916 8.29687 +96.8664 4.66683 9.04851 +96.8733 5.05929 9.80946 +96.7732 5.44662 10.5605 +96.6659 5.8335 11.3106 +96.5511 6.21996 12.0599 +96.3301 6.59913 12.7951 +96.0033 6.96987 13.5139 +95.867 7.35363 14.258 +96.5112 7.8005 15.1244 +95.4741 8.1111 15.7266 +96.1995 8.57141 16.6191 +96.0326 8.9559 17.3646 +95.8585 9.33965 18.1087 +95.677 9.72277 18.8515 +95.4883 10.1051 19.5928 +96.1674 10.583 20.5193 +96.1563 10.9895 21.3075 +95.8466 11.3622 22.0301 +96.496 11.8519 22.9797 +96.2667 12.2374 23.7272 +96.03 12.6221 24.473 +96.649 13.1229 25.4439 +96.3955 13.509 26.1926 +96.1347 13.894 26.9392 +96.7224 14.4055 27.9309 +96.2549 14.7628 28.6236 +96.9157 15.2965 29.6584 +96.6208 15.6836 30.409 +96.2245 16.0538 31.1268 +96.8519 16.5986 32.1831 +96.5322 16.9854 32.933 +96.2052 17.3709 33.6805 +96.7053 17.9096 34.725 +96.3606 18.2958 35.4737 +96.8371 18.8417 36.5322 +96.5664 19.2466 37.3173 +96.2877 19.6508 38.101 +95.9099 20.0352 38.8464 +96.3405 20.5925 39.9267 +96.0351 20.9968 40.7107 +96.4406 21.561 41.8046 +96.8319 22.13 42.9079 +96.2287 22.4749 43.5766 +96.6842 23.0706 44.7316 +96.153 23.435 45.4381 +96.4941 24.0155 46.5637 +96.1207 24.4228 47.3534 +96.2613 24.9644 48.4034 +96.6484 25.5777 49.5926 +96.0717 25.94 50.2951 +96.2599 26.5122 51.4046 +96.4336 27.0879 52.5207 +95.9142 27.4726 53.2666 +96.1466 28.0769 54.4382 +96.2794 28.6601 55.5691 +95.7301 29.0441 56.3137 +95.9196 29.6566 57.5012 +96.0931 30.2729 58.6961 +96.1684 30.8664 59.8469 +96.2285 31.4629 61.0034 +95.6258 31.8466 61.7474 +95.659 32.446 62.9096 +95.7564 33.0757 64.1305 +95.8371 33.7086 65.3577 +95.5857 34.2318 66.372 +95.7912 34.9267 67.7195 +95.8998 35.597 69.0191 +95.9129 36.2417 70.269 +95.8322 36.8597 71.4672 +95.8112 37.5096 72.7273 +95.7726 38.162 73.9924 +95.6416 38.7867 75.2035 +95.4941 39.4131 76.4181 +96.0672 40.351 78.2366 +95.9536 41.0151 79.5243 +95.7494 41.6498 80.7548 +95.6722 42.3497 82.1118 +95.4329 42.9878 83.349 +95.318 43.692 84.7144 +95.6741 44.6274 86.5281 +95.4461 45.3052 87.8422 +95.1306 45.9513 89.0951 +95.548 46.9671 91.0646 +95.2582 47.6515 92.3915 +95.4849 48.61 94.2499 +95.1522 49.2989 95.5857 +95.3254 50.2656 97.4601 +95.0142 50.9935 98.8714 +95.1968 52.0038 100.83 +94.8393 52.7363 102.25 +94.5869 53.5412 103.811 +94.7467 54.5992 105.862 +94.7503 55.5902 107.784 +94.6624 56.5487 109.642 +94.6655 57.5841 111.65 +94.5173 58.5504 113.523 +94.6334 59.7051 115.762 +94.4223 60.6782 117.649 +94.3533 61.7673 119.761 +94.1367 62.7845 121.733 +94.4477 64.1844 124.447 +94.1604 65.2098 126.435 +93.9502 66.3145 128.577 +93.8662 67.5379 130.949 +94.2196 69.1161 134.009 +93.8407 70.1937 136.099 +93.9429 71.6665 138.954 +93.9961 73.1457 141.822 +93.6 74.3128 144.085 +93.462 75.7218 146.817 +93.4713 77.2954 149.868 +93.3323 78.7944 152.774 +93.5657 80.6618 156.395 +93.3656 82.2125 159.402 +93.4312 84.0529 162.97 +93.3892 85.8594 166.473 +93.3292 87.7126 170.066 +93.2057 89.5723 173.672 +93.2296 91.6446 177.69 +93.0157 93.5574 181.399 +93.0613 95.8104 185.767 +93.3073 98.3649 190.72 +94.9086 102.49 198.718 +115.188 127.47 247.152 +114.929 130.391 252.815 +114.935 133.746 259.32 +115 137.325 266.259 +114.623 140.527 272.468 +111.157 139.99 271.426 +108.42 140.343 272.11 +105.159 139.991 271.428 +102.489 140.406 272.234 +99.1018 139.808 271.074 +96.4363 140.199 271.832 +93.2373 139.791 271.04 +90.3737 139.85 271.156 +90.9052 145.318 281.757 +90.5671 149.695 290.244 +90.3537 154.568 299.693 +90.1118 159.717 309.674 +89.7046 164.919 319.762 +87.5654 167.188 324.161 +85.5039 169.765 329.158 +89.1731 184.377 357.488 +87.8011 189.344 367.12 +83.6548 188.475 365.435 +80.3878 189.568 367.554 +76.0287 188.034 364.58 +72.8454 189.37 367.169 +68.5608 187.8 364.126 +65.2801 188.927 366.311 +61.2374 187.821 364.167 +57.9517 189.013 366.477 +53.8421 187.465 363.475 +50.527 188.628 365.732 +46.5265 187.184 362.93 +43.2539 188.639 365.752 +39.3926 187.527 363.597 +35.9605 188.408 365.305 +32.1996 187.54 363.621 +28.7606 188.53 365.542 +25.0055 187.403 363.355 +21.5205 188.228 364.955 +17.8272 187.162 362.889 +14.3507 188.372 365.234 +10.675 186.864 362.31 +7.15374 187.862 364.246 +3.55345 186.645 361.887 +3.01981e-14 187.936 364.39 +-3.55432 186.691 361.976 +-7.13978 187.495 363.535 +-10.6619 186.634 361.866 +-14.3088 187.822 364.168 +-17.7618 186.475 361.556 +-21.463 187.725 363.979 +-24.8651 186.35 361.315 +-28.6002 187.478 363.502 +-31.9721 186.215 361.052 +-35.76 187.358 363.269 +-39.1434 186.341 361.297 +-42.888 187.043 362.659 +-46.2548 186.09 360.811 +-50.137 187.172 362.908 +-53.333 185.692 360.038 +-57.228 186.652 361.9 +-60.6462 186.008 360.651 +-64.4979 186.664 361.923 +-67.7355 185.54 359.743 +-71.7167 186.436 361.48 +-74.9717 185.42 359.511 +-78.9949 186.283 361.185 +-82.1994 185.197 359.078 +-86.4705 186.475 361.556 +-89.6276 185.316 359.31 +-93.9621 186.558 361.718 +-96.8798 184.972 358.643 +-101.365 186.357 361.327 +-104.684 185.545 359.753 +-109.015 186.491 361.588 +-112.106 185.297 359.273 +-116.567 186.34 361.295 +-119.656 185.164 359.014 +-124.258 186.3 361.217 +-127.289 185.052 358.798 +-132.105 186.367 361.348 +-136.504 187.005 362.585 +-141.199 187.969 364.453 +-142.202 184.07 356.893 +-143.135 180.263 349.513 +-143.025 175.348 339.982 +-142.666 170.361 330.313 +-142.752 166.116 322.083 +-142.575 161.756 313.629 +-144.08 159.444 309.146 +-144.023 155.528 301.553 +-143.829 151.625 293.986 +-145.734 150.039 290.91 +-142.779 143.611 278.447 +-144.324 141.871 275.073 +-147.536 141.785 274.906 +-153.167 143.95 279.104 +-437.542 402.263 779.948 +-111.046 99.8996 193.695 +-110.912 97.6627 189.358 +-111.781 96.3655 186.843 +-113.277 95.6325 185.422 +-114.754 94.895 183.992 +-116.015 93.9938 182.245 +-118.05 93.7247 181.723 +-120.236 93.5648 181.413 +-122.013 93.0803 180.473 +-126.706 94.7772 183.764 +-437.925 321.246 622.864 +-438.974 315.848 612.398 +-440.232 310.735 602.485 +-441.274 305.599 592.526 +-442.154 300.478 582.597 +-443.553 295.827 573.579 +-445.095 291.376 564.948 +-446.561 286.972 556.41 +-447.892 282.579 547.892 +-449.567 278.492 539.968 +-451.06 274.376 531.989 +-452.127 270.089 523.676 +-453.312 265.958 515.667 +-455.183 262.305 508.584 +-456.761 258.551 501.305 +-458.676 255.052 494.52 +-460.429 251.522 487.676 +-462.732 248.346 481.518 +-463.506 244.41 473.886 +-465.159 241.002 467.278 +-466.451 237.463 460.416 +-468.927 234.574 454.815 +-470.033 231.047 447.976 +-472.487 228.227 442.509 +-473.201 224.613 435.503 +-475.357 221.731 429.914 +-454.811 208.477 404.216 +-460.189 207.292 401.919 +-462.248 204.615 396.729 +-464.53 202.065 391.783 +-471.284 201.449 390.59 +-473.774 198.999 385.839 +-2434.91 1004.96 1948.52 +-478.882 194.206 376.547 +-135.018 53.7997 104.312 +-136.949 53.615 103.954 +-140.646 54.0963 104.887 +-141.825 53.5898 103.905 +-142.14 52.7611 102.298 +-142.826 52.0762 100.971 +-142.63 51.0797 99.0385 +-146.612 51.5674 99.9841 +-148.386 51.2548 99.378 +-498.954 169.238 328.135 +-501.024 166.858 323.52 +-502.635 164.342 318.642 +-504.27 161.852 313.814 +-506.426 159.543 309.338 +-509.029 157.382 305.149 +-513.674 155.846 302.171 +-516.705 153.811 298.224 +-516.324 150.778 292.343 +-517.733 148.294 287.527 +-520.111 146.097 283.268 +-522.872 144.011 279.223 +-525.249 141.821 274.977 +-527.15 139.508 270.493 +-529.873 137.417 266.437 +-2865.69 728.129 1411.77 +-382.198 95.1214 184.431 +-380.815 92.8144 179.958 +-381.858 91.1184 176.67 +-382.42 89.317 173.177 +-379.631 86.761 168.221 +-380.999 85.1791 165.154 +-381.523 83.4148 161.733 +-381.465 81.5369 158.092 +-381.001 79.5896 154.316 +-381.405 77.8391 150.922 +-382.047 76.1458 147.639 +-380.445 74.0235 143.524 +-380.269 72.201 139.991 +-380.98 70.5568 136.803 +-382.309 69.0299 133.842 +-380.621 66.9727 129.853 +-380.757 65.2547 126.522 +-381.327 63.6196 123.352 +-380.921 61.8315 119.885 +-381.422 60.201 116.724 +-381.89 58.5715 113.564 +-380.423 56.6591 109.856 +-380.915 55.0525 106.741 +-380.801 53.3657 103.471 +-380.556 51.6715 100.186 +-381.14 50.0965 97.1321 +-380.345 48.3496 93.7451 +-380.768 46.7668 90.6762 +-381.644 45.2421 87.72 +-380.744 43.5142 84.3698 +-381.072 41.936 81.3098 +-380.589 40.2761 78.0913 +-381.732 38.7918 75.2135 +-380.499 37.0728 71.8804 +-379.623 35.4031 68.6431 +-381.853 34.0232 65.9676 +-380.323 32.3107 62.6472 +-380.924 30.7881 59.6951 +-381.002 29.2254 56.6652 +-381.149 27.6716 53.6525 +-381.068 26.1053 50.6155 +-381.55 24.58 47.6581 +-380.715 22.975 44.5463 +-380.741 21.4289 41.5485 +-380.637 19.8792 38.5437 +-381.399 18.375 35.6273 +-380.54 16.7959 32.5656 +-380.148 15.2451 29.5588 +-380.424 13.7239 26.6093 +-380.97 12.2113 23.6765 +-381.787 10.7037 20.7534 +-380.278 9.13531 17.7125 +-3273.38 65.5114 127.02 +-381.068 6.09977 11.8268 +-3275.38 39.3148 76.2275 +-144.478 1.15598 2.24133 +-145.694 0.582813 1.13002 +96.3 0 -1.7053e-13 +96.4963 0.392744 0.744918 +96.4853 0.785459 1.48978 +96.267 1.17567 2.2299 +96.4412 1.57068 2.9791 +96.5081 1.96515 3.72731 +96.3678 2.35542 4.46752 +96.32 2.74753 5.21124 +96.2649 3.13944 5.95458 +96.2025 3.53111 6.69745 +97.0294 3.95909 7.50921 +96.9516 4.35384 8.25793 +96.9659 4.75312 9.01524 +96.8733 5.14758 9.76342 +96.7732 5.54167 10.5109 +96.6659 5.9353 11.2575 +95.6599 6.27007 11.8924 +96.429 6.7212 12.7481 +96.0033 7.0915 13.4505 +95.867 7.48196 14.191 +95.6248 7.86373 14.9152 +95.4741 8.25265 15.6528 +96.1013 8.71208 16.5242 +95.9346 9.10286 17.2654 +95.8585 9.50264 18.0237 +95.677 9.89244 18.763 +95.5857 10.2919 19.5207 +96.2646 10.7786 20.4437 +96.0593 11.17 21.1861 +95.8466 11.5605 21.9267 +96.496 12.0587 22.8718 +96.2667 12.451 23.6158 +96.03 12.8423 24.3581 +95.7861 13.2327 25.0984 +96.2999 13.7311 26.0438 +96.1347 14.1365 26.8127 +96.7224 14.6569 27.7998 +96.3497 15.0353 28.5174 +96.9157 15.5634 29.5192 +96.5265 15.9417 30.2367 +96.2245 16.334 30.9807 +96.8519 16.8883 32.032 +97.2791 17.4155 33.0321 +96.2052 17.674 33.5224 +96.7053 18.2222 34.562 +96.3606 18.6151 35.3072 +96.8371 19.1705 36.3607 +96.5664 19.5825 37.1422 +96.2877 19.9937 37.9221 +96.8199 20.5783 39.0309 +96.4311 20.9715 39.7767 +96.7571 21.5238 40.8243 +96.4406 21.9372 41.6084 +96.7424 22.4954 42.667 +96.3178 22.8883 43.4122 +96.5955 23.4517 44.4808 +96.9476 24.041 45.5985 +96.4941 24.4346 46.3451 +96.8204 25.0299 47.4742 +96.2613 25.4 48.1762 +96.6484 26.024 49.3598 +96.761 26.5821 50.4183 +96.2599 26.9749 51.1633 +96.4336 27.5606 52.2742 +96.6775 28.1744 53.4384 +96.8213 28.7673 54.5629 +96.3632 29.1856 55.3564 +96.4806 29.7826 56.4888 +95.9196 30.1742 57.2314 +96.0107 30.7747 58.3704 +96.2504 31.4318 59.6167 +96.2285 32.0119 60.7171 +95.6258 32.4023 61.4576 +95.7394 33.04 62.667 +95.7564 33.6529 63.8295 +95.7577 34.2685 64.997 +95.7433 34.8866 66.1695 +95.7912 35.5362 67.4016 +95.8998 36.2182 68.6951 +95.9129 36.8741 69.9392 +95.8322 37.5029 71.1318 +95.7351 38.1338 72.3285 +95.7726 38.828 73.6451 +95.6416 39.4635 74.8505 +95.4941 40.1009 76.0595 +95.4037 40.7716 77.3316 +95.9536 41.7309 79.151 +95.7494 42.3766 80.3758 +95.6722 43.0887 81.7264 +95.5042 43.7706 83.0198 +95.318 44.4545 84.3168 +95.6741 45.4062 86.122 +95.4461 46.0958 87.4299 +95.6813 47.0237 89.19 +95.548 47.7867 90.6372 +95.2582 48.483 91.9578 +95.4849 49.4583 93.8075 +95.1522 50.1592 95.137 +94.8005 50.8616 96.4692 +95.0142 51.8834 98.4073 +95.1968 52.9113 100.357 +94.7757 53.6207 101.702 +94.6498 54.5119 103.393 +94.7467 55.552 105.365 +94.6887 56.5234 107.208 +94.7233 57.5728 109.198 +94.7859 58.6637 111.267 +94.5768 59.6095 113.061 +94.5159 60.6714 115.076 +94.5384 61.8131 117.241 +94.3533 62.8452 119.199 +94.1934 63.9184 121.234 +93.8885 64.9178 123.13 +94.0501 66.2699 125.694 +94.0592 67.5496 128.121 +94.2961 69.0313 130.932 +93.6897 69.9268 132.63 +93.8407 71.4187 135.46 +93.9944 72.9573 138.378 +93.4378 73.9801 140.318 +93.6 75.6096 143.409 +93.5112 77.0838 146.205 +93.4713 78.6443 149.165 +93.38 80.2104 152.135 +93.6126 82.1109 155.74 +93.3656 83.6472 158.654 +93.4312 85.5197 162.205 +93.3892 87.3577 165.691 +92.9347 88.866 168.552 +93.1626 91.093 172.776 +92.8915 92.9058 176.214 +92.9742 95.1477 180.467 +93.0613 97.4824 184.895 +92.9883 99.7392 189.175 +93.502 102.733 194.854 +114.805 129.264 245.175 +114.929 132.667 251.629 +114.935 136.08 258.103 +115.179 139.939 265.422 +114.553 142.892 271.023 +111.43 142.783 270.817 +108.754 143.232 271.667 +105.452 142.83 270.907 +102.521 142.9 271.039 +99.658 143.046 271.316 +96.707 143.046 271.315 +93.7051 142.944 271.122 +90.5441 142.559 270.393 +90.6847 147.495 279.754 +90.5938 152.353 288.968 +90.3537 157.266 298.286 +90.1118 162.504 308.221 +89.6079 167.616 317.918 +87.7755 170.514 323.414 +85.4589 172.637 327.44 +89.0865 187.412 355.464 +87.2397 191.417 363.061 +83.2959 190.942 362.16 +79.5864 190.953 362.182 +75.5366 190.078 360.52 +72.1508 190.837 361.961 +68.2802 190.295 360.933 +64.6857 190.474 361.272 +60.8384 189.854 360.096 +57.4228 190.556 361.428 +53.6071 189.904 360.19 +50.0883 190.253 360.854 +46.368 189.801 359.997 +42.794 189.89 360.165 +39.1434 189.593 359.601 +35.5857 189.698 359.801 +31.9878 189.557 359.533 +28.5025 190.099 360.561 +24.8407 189.416 359.266 +21.3426 189.929 360.239 +17.74 189.496 359.418 +14.225 189.981 360.337 +10.6278 189.286 359.018 +7.08742 189.368 359.175 +3.53686 189.017 358.509 +2.57572e-14 189.49 359.407 +-3.53861 189.11 358.686 +-7.08044 189.182 358.821 +-10.5912 188.633 357.78 +-14.1517 189.002 358.48 +-17.6528 188.565 357.651 +-21.2222 188.858 358.207 +-24.7124 188.439 357.412 +-28.356 189.122 358.708 +-31.8309 188.627 357.769 +-35.4201 188.816 358.127 +-38.8846 188.339 357.223 +-42.6163 189.102 358.67 +-46.0511 188.504 357.536 +-49.6861 188.726 357.957 +-53.1111 188.147 356.858 +-56.727 188.247 357.047 +-60.2619 188.055 356.684 +-63.9035 188.171 356.904 +-67.4385 187.949 356.484 +-71.1263 188.127 356.821 +-74.6619 187.877 356.346 +-78.3462 187.977 356.537 +-81.8605 187.651 355.919 +-85.5349 187.676 355.966 +-89.2381 187.731 356.069 +-92.9723 187.815 356.228 +-96.483 187.429 355.497 +-100.349 187.708 356.027 +-103.983 187.519 355.667 +-107.953 187.899 356.388 +-111.519 187.542 355.712 +-115.575 187.978 356.538 +-119.116 187.545 355.717 +-122.942 187.544 355.714 +-126.537 187.17 355.005 +-130.776 187.712 356.034 +-135.362 188.677 357.863 +-139.994 189.618 359.648 +-140.7 185.304 351.466 +-143.17 183.453 347.956 +-142.99 178.364 338.303 +-142.595 173.247 328.598 +-142.789 169.059 320.654 +-142.425 164.406 311.829 +-143.851 161.967 307.204 +-144.023 158.242 300.138 +-143.869 154.314 292.687 +-146.1 153.041 290.273 +-142.654 145.99 276.899 +-144.747 144.769 274.584 +-148.225 144.932 274.893 +-151.808 145.162 275.329 +-437.72 409.45 776.604 +-110.501 101.144 191.841 +-110.589 99.0774 187.92 +-111.828 98.0882 186.044 +-113.421 97.4245 184.785 +-114.754 96.551 183.128 +-116.458 95.9993 182.082 +-118.4 95.643 181.406 +-120.185 95.1575 180.485 +-122.322 94.9443 180.081 +-126.81 96.5109 183.052 +-438.243 327.089 620.391 +-438.813 321.242 609.3 +-440.232 316.158 599.657 +-441.274 310.932 589.745 +-442.657 306.07 580.523 +-443.893 301.22 571.325 +-445.095 296.46 562.297 +-446.561 291.98 553.798 +-448.186 287.698 545.678 +-449.567 283.352 537.434 +-451.06 279.165 529.492 +-452.492 275.025 521.639 +-454.112 271.078 514.153 +-455.183 266.883 506.197 +-457.201 263.317 499.434 +-458.676 259.502 492.199 +-460.429 255.911 485.387 +-462.407 252.503 478.922 +-464.096 248.992 472.264 +-465.491 245.382 465.416 +-467.321 242.057 459.11 +-469.265 238.84 453.007 +-470.647 235.385 446.456 +-472.487 232.209 440.432 +-474.243 229.036 434.413 +-475.567 225.7 428.086 +-463.933 216.369 410.388 +-459.761 210.713 399.66 +-466.06 209.903 398.124 +-464.24 205.463 389.701 +-470.772 204.742 388.334 +-473.037 202.157 383.431 +-476.356 200.037 379.41 +-479.107 197.688 374.956 +-141.131 57.217 108.523 +-140.219 55.8528 105.936 +-141.412 55.3402 104.964 +-142.21 54.6733 103.699 +-142.373 53.7695 101.985 +-142.826 52.985 100.497 +-142.157 51.7985 98.2463 +-147.564 52.8083 100.161 +-147.508 51.8405 98.326 +-499.275 172.301 326.804 +-501.024 169.769 322.002 +-503.123 167.372 317.454 +-505.253 164.997 312.95 +-506.838 162.459 308.136 +-509.444 160.26 303.964 +-511.589 157.922 299.532 +-520.227 157.562 298.848 +-516.24 153.384 290.923 +-518.073 150.98 286.365 +-520.622 148.793 282.216 +-522.872 146.524 277.912 +-525.594 144.39 273.866 +-527.929 142.153 269.621 +-530.134 139.884 265.318 +-382.121 98.7854 187.366 +-381.055 96.4923 183.017 +-382.14 94.7624 179.736 +-381.592 92.6437 175.717 +-381.262 90.6005 171.842 +-380.884 88.5666 167.984 +-379.291 86.2771 163.642 +-381.613 84.8906 161.012 +-380.649 82.7825 157.014 +-382.639 81.327 154.253 +-381.131 79.1406 150.106 +-380.03 77.0656 146.17 +-380.169 75.2607 142.747 +-380.176 73.4428 139.299 +-380.98 71.7881 136.161 +-380.82 69.9613 132.696 +-381.554 68.3084 129.561 +-381.413 66.5077 126.145 +-380.763 64.6343 122.592 +-381.393 62.9884 119.47 +-380.76 61.1453 115.974 +-381.416 59.5195 112.891 +-381.279 57.7775 109.587 +-380.628 55.9713 106.161 +-381.374 54.379 103.141 +-382.377 52.8246 100.192 +-380.564 50.8938 96.5303 +-380.634 49.2307 93.3758 +-380.092 47.4985 90.0905 +-381.644 46.0317 87.3083 +-380.259 44.2172 83.8667 +-381.752 42.7441 81.0727 +-380.784 40.9999 77.7646 +-381.341 39.4284 74.7839 +-381.478 37.8167 71.727 +-380.799 36.1325 68.5326 +-381.755 34.608 65.6411 +-380.716 32.9086 62.4177 +-380.825 31.3174 59.3997 +-381.002 29.7354 56.3992 +-380.556 28.1107 53.3176 +-381.365 26.5815 50.4171 +-381.55 25.0089 47.4344 +-381.111 23.4003 44.3834 +-381.138 21.8256 41.3966 +-381.134 20.2525 38.4129 +-381.001 18.6762 35.4231 +-380.341 17.0801 32.3959 +-381.642 15.5722 29.5357 +-380.424 13.9634 26.4845 +-380.67 12.4146 23.5468 +-381.387 10.8791 20.6343 +-381.177 9.3167 17.671 +-3273.38 66.6546 126.424 +-380.068 6.18994 11.7405 +-3275.38 40.0009 75.8697 +-146.478 1.19243 2.26169 +-145.394 0.591762 1.1224 +96.5 -3.55271e-15 -1.7053e-13 +96.4963 0.399447 0.741345 +96.2853 0.797209 1.47956 +96.4669 1.19822 2.22381 +96.4412 1.59748 2.96481 +96.4082 1.99663 3.7056 +96.4676 2.3981 4.4507 +96.32 2.79442 5.18625 +96.2649 3.19302 5.92602 +96.3022 3.5951 6.67224 +96.1328 3.98945 7.40414 +96.9516 4.42815 8.21832 +96.0708 4.7896 8.88916 +96.8733 5.23544 9.71659 +96.7732 5.63625 10.4605 +96.6659 6.0366 11.2035 +96.5511 6.43651 11.9457 +96.3301 6.82889 12.6739 +96.0033 7.21253 13.3859 +95.867 7.60965 14.123 +95.5264 7.98974 14.8284 +96.359 8.47129 15.7221 +96.1995 8.86983 16.4618 +95.9346 9.25822 17.1826 +95.8585 9.66482 17.9372 +95.677 10.0613 18.673 +95.4883 10.4569 19.4073 +96.2646 10.9625 20.3457 +96.0593 11.3606 21.0844 +95.8466 11.7578 21.8216 +95.6267 12.1541 22.5571 +96.2667 12.6635 23.5026 +96.03 13.0615 24.2413 +95.7861 13.4585 24.978 +96.2999 13.9654 25.9188 +96.0393 14.3635 26.6577 +96.6273 14.8924 27.6393 +96.3497 15.2919 28.3806 +96.9157 15.8291 29.3776 +96.6208 16.2296 30.1211 +96.2245 16.6128 30.8321 +96.8519 17.1765 31.8784 +96.4389 17.5598 32.5897 +96.2052 17.9757 33.3616 +96.5198 18.4976 34.3302 +97.0997 19.078 35.4073 +96.9292 19.5163 36.2208 +96.5664 19.9167 36.964 +96.2877 20.335 37.7402 +95.9099 20.7328 38.4786 +96.4311 21.3295 39.586 +96.0351 21.7278 40.3253 +96.3507 22.2909 41.3702 +96.8319 22.9005 42.5017 +96.4069 23.3004 43.244 +96.6842 23.8738 44.3081 +96.2413 24.2731 45.0492 +96.4941 24.8516 46.1229 +96.0332 25.2501 46.8624 +96.3484 25.8569 47.9886 +96.5618 26.4445 49.079 +96.761 27.0358 50.1765 +96.1742 27.4108 50.8726 +96.4336 28.0309 52.0234 +96.6775 28.6553 53.1821 +96.1466 29.0544 53.9229 +96.2794 29.6579 55.043 +96.4806 30.2909 56.2178 +95.9196 30.6891 56.9569 +96.0107 31.3 58.0905 +96.1684 31.9411 59.2804 +96.2285 32.5583 60.4259 +95.6258 32.9554 61.1628 +95.7394 33.6039 62.3664 +95.7564 34.2273 63.5233 +95.7577 34.8533 64.6853 +95.8221 35.5112 65.9062 +95.8695 36.1722 67.1331 +95.8998 36.8364 68.3657 +95.8358 37.4733 69.5478 +95.8322 38.143 70.7906 +95.7351 38.7847 71.9816 +95.7726 39.4907 73.2919 +95.5667 40.1056 74.4331 +95.5684 40.8171 75.7536 +95.4037 41.4675 76.9607 +95.9536 42.4431 78.7714 +95.822 43.1325 80.0509 +95.6722 43.8241 81.3344 +95.4329 44.4844 82.5599 +95.8837 45.4815 84.4104 +95.6741 46.1811 85.7089 +95.4461 46.8825 87.0106 +95.6813 47.8263 88.7622 +95.548 48.6023 90.2024 +95.2582 49.3105 91.5168 +95.4849 50.3024 93.3576 +95.1522 51.0153 94.6807 +94.7349 51.6936 95.9396 +95.0142 52.7689 97.9354 +94.6826 53.5236 99.336 +94.712 54.4993 101.147 +94.5869 55.4053 102.828 +94.6845 56.4631 104.791 +94.7503 57.5256 106.763 +94.6624 58.5175 108.604 +94.6655 59.589 110.593 +94.6958 60.7032 112.661 +94.5746 61.7453 114.595 +94.4804 62.8297 116.607 +94.4107 63.9562 118.698 +94.1934 65.0093 120.653 +93.9444 66.0652 122.612 +94.1604 67.4801 125.238 +94.0047 68.6631 127.434 +94.2424 70.1696 130.23 +94.2196 71.5224 132.741 +93.8407 72.6376 134.81 +93.9944 74.2025 137.714 +93.4886 75.2835 139.721 +93.6 76.9 142.721 +93.5112 78.3994 145.504 +93.5198 80.0278 148.526 +93.4277 81.6207 151.482 +93.1901 83.1352 154.293 +93.3194 85.0326 157.814 +93.4312 86.9793 161.427 +93.3892 88.8487 164.897 +92.9347 90.3827 167.744 +93.1626 92.6477 171.947 +93.2296 94.8353 176.008 +93.0157 96.8147 179.681 +92.6953 98.7562 183.284 +93.0282 101.485 188.349 +93.502 104.486 193.919 +114.843 131.514 244.08 +114.892 134.887 250.34 +114.935 138.403 256.865 +114.785 141.84 263.245 +114.588 145.375 269.806 +111.841 145.755 270.51 +108.721 145.631 270.281 +105.777 145.717 270.44 +102.807 145.744 270.491 +99.658 145.488 270.015 +96.9776 145.895 270.77 +93.7344 145.428 269.905 +90.7713 145.356 269.771 +90.6847 150.012 278.412 +90.6473 155.044 287.751 +90.3537 159.95 296.856 +90.1618 165.369 306.913 +89.5837 170.431 316.308 +87.6354 173.147 321.349 +85.6839 176.046 326.728 +89.1298 190.703 353.932 +86.8447 193.802 359.683 +82.9371 193.364 358.87 +79.2239 193.328 358.803 +75.2086 192.482 357.233 +71.7167 192.927 358.058 +67.9666 192.654 357.553 +64.5292 193.256 358.67 +60.7201 192.719 357.672 +57.1723 192.963 358.125 +53.3983 192.392 357.067 +49.8933 192.747 357.725 +46.153 192.145 356.608 +42.6999 192.706 357.649 +38.9805 192.026 356.387 +35.4898 192.416 357.111 +31.8779 192.131 356.581 +28.3769 192.492 357.251 +24.7918 192.27 356.84 +21.2432 192.271 356.841 +17.7007 192.304 356.903 +14.1622 192.37 357.025 +10.5833 191.71 355.8 +7.05775 191.794 355.956 +3.52988 191.864 356.085 +2.75335e-14 191.871 356.098 +-3.52378 191.531 355.469 +-7.06473 191.984 356.308 +-10.5729 191.521 355.448 +-14.1203 191.801 355.97 +-17.6091 191.309 355.056 +-21.1856 191.75 355.874 +-24.6575 191.229 354.907 +-28.2444 191.593 355.582 +-31.6896 190.995 354.474 +-35.2806 191.282 355.007 +-38.7984 191.129 354.721 +-42.4281 191.48 355.373 +-45.8699 190.967 354.421 +-49.479 191.147 354.755 +-52.8762 190.511 353.575 +-56.6295 191.131 354.725 +-60.0106 190.467 353.492 +-63.7783 191.008 354.497 +-67.1579 190.362 353.299 +-70.7964 190.45 353.462 +-74.3339 190.244 353.079 +-77.9836 190.301 353.185 +-81.5016 190.017 352.659 +-85.3685 190.508 353.569 +-88.8701 190.147 352.9 +-92.7473 190.558 353.662 +-96.2729 190.213 353.021 +-100.156 190.543 353.635 +-103.582 189.984 352.597 +-107.488 190.281 353.148 +-111.011 189.875 352.394 +-115.189 190.548 353.643 +-118.69 190.064 352.745 +-122.621 190.246 353.082 +-125.996 189.55 351.791 +-130.251 190.149 352.903 +-134.379 190.502 353.558 +-139.636 192.361 357.008 +-140.099 187.662 348.287 +-143.238 186.673 346.452 +-142.99 181.408 336.68 +-142.63 176.248 327.104 +-142.789 171.944 319.116 +-142.725 167.564 310.987 +-143.545 164.381 305.08 +-143.984 160.899 298.617 +-143.709 156.773 290.96 +-145.815 155.349 288.317 +-142.779 148.611 275.811 +-144.874 147.369 273.506 +-148.096 147.277 273.336 +-151.15 147 272.821 +-437.095 415.844 771.776 +-110.774 103.124 191.392 +-110.681 100.852 187.175 +-111.875 99.804 185.229 +-113.277 98.9621 183.667 +-114.657 98.1163 182.097 +-116.409 97.5964 181.132 +-118.4 97.2753 180.536 +-120.388 96.9447 179.922 +-122.734 96.8902 179.821 +-127.49 98.6836 183.15 +-438.508 332.873 617.789 +-439.672 327.364 607.565 +-440.232 321.554 596.781 +-441.77 316.595 587.577 +-442.657 311.293 577.738 +-443.553 306.126 568.149 +-444.923 301.403 559.383 +-446.386 296.847 550.927 +-448.186 292.609 543.061 +-450.102 288.531 535.492 +-451.06 283.929 526.952 +-452.492 279.718 519.137 +-454.112 275.704 511.687 +-455.93 271.883 504.596 +-457.39 267.922 497.243 +-458.676 263.931 489.838 +-460.622 260.388 483.261 +-462.732 256.992 476.959 +-464.096 253.242 469.999 +-465.756 249.712 463.448 +-467.856 246.47 457.432 +-469.265 242.916 450.834 +-470.647 239.403 444.315 +-472.693 236.276 438.511 +-474.243 232.945 432.33 +-475.567 229.552 426.033 +-471.923 223.852 415.453 +-459.761 214.31 397.744 +-465.773 213.354 395.97 +-463.514 208.643 387.226 +-469.602 207.719 385.511 +-474.069 206.056 382.425 +-477.025 203.736 378.12 +-479.107 201.062 373.157 +-140.904 58.1 107.83 +-140.827 57.0527 105.886 +-140.569 55.9494 103.838 +-141.207 55.2142 102.474 +-142.995 54.9262 101.939 +-142.669 53.83 99.9047 +-142.551 52.8287 98.0463 +-147.405 53.6517 99.5737 +-149.664 53.4961 99.2849 +-499.436 175.299 325.342 +-501.024 172.667 320.458 +-503.123 170.228 315.932 +-505.253 167.813 311.449 +-507.827 165.554 307.257 +-509.526 163.021 302.556 +-511.339 160.539 297.95 +-521.821 160.742 298.325 +-515.987 155.925 289.386 +-517.733 153.457 284.805 +-520.622 151.333 280.862 +-522.872 149.025 276.58 +-525.594 146.855 272.552 +-528.275 144.674 268.504 +-529.873 142.201 263.915 +-383.346 100.794 187.066 +-381.319 98.2069 182.265 +-380.992 96.0904 178.337 +-380.971 94.0716 174.59 +-380.282 91.9096 170.578 +-378.736 89.5701 166.236 +-381.538 88.2695 163.822 +-380.801 86.1558 159.899 +-380.831 84.2352 156.335 +-381.274 82.4195 152.965 +-382.045 80.6838 149.743 +-381.405 78.6646 145.996 +-380.629 76.6377 142.234 +-380.731 74.8054 138.833 +-381.907 73.1907 135.837 +-381.75 71.3289 132.381 +-382.768 69.6953 129.349 +-383.38 67.9919 126.188 +-381.985 65.948 122.395 +-381.393 64.0634 118.897 +-381.139 62.251 115.533 +-382.269 60.671 112.601 +-381.659 58.8225 109.17 +-381.01 56.9834 105.757 +-380.609 55.1961 102.44 +-380.747 53.497 99.2867 +-380.083 51.6969 95.9458 +-381.598 50.1975 93.163 +-381.251 48.4567 89.9322 +-381.644 46.8173 86.8895 +-381.617 45.1325 83.7627 +-381.072 43.3961 80.54 +-381.076 41.7317 77.451 +-380.658 40.0295 74.2919 +-381.478 38.4622 71.383 +-380.799 36.7492 68.2039 +-380.282 35.0629 65.0743 +-381.601 33.548 62.2627 +-380.431 31.8189 59.0536 +-381.397 30.2742 56.1868 +-382.038 28.7018 53.2685 +-380.573 26.9791 50.0713 +-381.847 25.4555 47.2436 +-380.318 23.7501 44.0785 +-380.741 22.175 41.1552 +-381.035 20.5927 38.2186 +-380.007 18.9453 35.1611 +-380.739 17.3898 32.2742 +-379.849 15.7635 29.256 +-380.025 14.1869 26.3298 +-381.768 12.6629 23.5014 +-380.489 11.0387 20.487 +-380.777 9.46579 17.5678 +-3273.38 67.7922 125.818 +-380.568 6.30384 11.6995 +-3275.38 40.6836 75.5058 +-146.778 1.21526 2.25544 +-146.394 0.605998 1.12469 +96.5 -3.55271e-15 -1.7053e-13 +96.2963 0.405277 0.736182 +95.5854 0.804632 1.46161 +96.4669 1.21823 2.21291 +96.4412 1.62416 2.95028 +96.4082 2.02997 3.68743 +96.3678 2.43563 4.4243 +96.32 2.8411 5.16083 +96.2649 3.24635 5.89697 +96.3022 3.65514 6.63954 +97.129 4.09812 7.44419 +96.1553 4.46513 8.11087 +96.8664 4.90997 8.91891 +96.8733 5.32288 9.66897 +96.7732 5.73039 10.4092 +96.6659 6.13742 11.1486 +96.5511 6.54402 11.8872 +96.429 6.95008 12.6248 +96.0033 7.333 13.3203 +95.7683 7.72879 14.0393 +95.6248 8.13153 14.7709 +95.4741 8.53369 15.5014 +96.1013 9.00877 16.3644 +96.0326 9.4225 17.1159 +95.8585 9.82625 17.8493 +96.6533 10.3337 18.7711 +96.4626 10.7401 19.5093 +96.2646 11.1456 20.2459 +96.0593 11.5503 20.9811 +95.9434 11.9662 21.7366 +96.496 12.4694 22.6505 +96.363 12.8879 23.4108 +95.9339 13.2664 24.0983 +96.649 13.8066 25.0795 +96.3955 14.2128 25.8175 +96.0393 14.6035 26.527 +96.6273 15.1412 27.5038 +95.4962 15.4096 27.9913 +96.0647 15.9521 28.9769 +95.7724 16.3558 29.7103 +96.1306 16.8738 30.651 +96.8519 17.4634 31.7221 +96.5322 17.8703 32.4613 +96.9495 18.4173 33.4549 +96.7053 18.8427 34.2277 +96.3606 19.249 34.9656 +96.9292 19.8422 36.0432 +96.5664 20.2494 36.7829 +96.2877 20.6746 37.5553 +96.0009 21.099 38.3262 +96.5218 21.7061 39.4289 +96.7571 22.2568 40.4293 +96.3507 22.6632 41.1675 +96.8319 23.283 42.2933 +96.3178 23.6677 42.9922 +96.6842 24.2726 44.0909 +96.153 24.6559 44.7873 +96.4941 25.2667 45.8968 +96.7329 25.8589 46.9725 +96.2613 26.265 47.7102 +95.869 26.6933 48.4881 +96.761 27.4873 49.9305 +96.2599 27.8935 50.6683 +96.4336 28.4991 51.7684 +96.5927 29.1083 52.875 +96.1466 29.5397 53.6586 +96.2794 30.1533 54.7732 +95.7301 30.5573 55.5071 +95.9196 31.2017 56.6777 +96.0931 31.8501 57.8554 +96.1684 32.4746 58.9898 +95.6586 32.9061 59.7736 +95.7067 33.5342 60.9145 +95.7394 34.1651 62.0607 +95.7564 34.7989 63.212 +96.2338 35.6116 64.6883 +95.7433 36.0747 65.5293 +95.9478 36.8064 66.8586 +95.8998 37.4516 68.0306 +95.9129 38.1299 69.2626 +95.8322 38.7801 70.4437 +95.7351 39.4325 71.6287 +95.6972 40.1186 72.8752 +95.6416 40.8074 74.1264 +95.5684 41.4988 75.3823 +95.4037 42.1601 76.5835 +96.0267 43.1849 78.445 +95.7494 43.8198 79.5982 +95.6722 44.5561 80.9357 +95.5042 45.2612 82.2167 +95.2473 45.9342 83.4392 +95.6741 46.9525 85.2888 +95.5155 47.7002 86.6471 +95.1994 48.3801 87.8821 +94.866 49.0611 89.1191 +95.2582 50.1341 91.0682 +94.8827 50.8199 92.3139 +95.1522 51.8674 94.2167 +94.8661 52.6298 95.6017 +95.0792 53.687 97.5219 +95.0683 54.6394 99.2521 +94.712 55.4096 100.651 +94.6498 56.3683 102.393 +94.6845 57.4062 104.278 +94.6887 58.4483 106.171 +94.7842 59.5715 108.211 +94.1841 60.2761 109.491 +94.5768 61.6395 111.968 +94.0456 62.4256 113.396 +94.4223 63.8396 115.964 +94.4107 65.0245 118.116 +94.25 66.1351 120.134 +94.0003 67.2086 122.084 +94.2156 68.6472 124.697 +94.1136 69.8905 126.956 +94.2961 71.3821 129.665 +93.6897 72.3081 131.347 +93.893 73.8918 134.224 +93.4794 75.0285 136.289 +93.9961 76.9566 139.791 +93.6 78.1845 142.021 +93.462 79.6669 144.714 +93.4713 81.3225 147.722 +93.3323 82.8995 150.586 +93.6126 84.9072 154.233 +93.3656 86.4958 157.119 +93.4312 88.4321 160.636 +93.4338 90.3756 164.166 +93.2854 92.239 167.551 +93.1626 94.1951 171.105 +92.8915 96.0697 174.51 +93.0572 98.4757 178.88 +92.6953 100.406 182.386 +92.9883 103.136 187.345 +92.6033 105.21 191.114 +114.843 133.71 242.884 +114.929 137.185 249.195 +114.971 140.759 255.688 +115.036 144.524 262.527 +114.518 147.713 268.32 +111.806 148.144 269.103 +109.021 148.473 269.7 +105.875 148.288 269.363 +103.092 148.59 269.913 +99.9052 148.285 269.358 +97.2182 148.699 270.111 +93.9975 148.273 269.336 +90.9133 148.015 268.868 +90.6847 152.518 277.048 +90.4602 157.309 285.75 +90.2502 162.435 295.062 +90.1618 168.131 305.409 +89.4385 172.996 314.246 +87.2619 175.289 318.411 +86.2687 180.208 327.346 +88.9134 193.417 351.341 +86.4705 196.19 356.378 +82.2193 194.893 354.021 +78.7469 195.373 354.894 +74.8988 194.891 354.018 +71.543 195.674 355.44 +67.3724 194.16 352.69 +64.1068 195.198 354.576 +60.2028 194.268 352.886 +56.7965 194.896 354.027 +52.9414 193.932 352.277 +49.6739 195.105 354.407 +45.836 194.013 352.423 +42.5013 195.014 354.241 +38.645 193.553 351.588 +35.3417 194.813 353.877 +31.5798 193.512 351.514 +28.2514 194.84 353.926 +24.5659 193.7 351.855 +21.149 194.615 353.517 +17.5481 193.83 352.09 +14.0994 194.716 353.699 +10.4943 193.273 351.079 +7.02634 194.13 352.635 +3.50021 193.428 351.361 +2.39808e-14 194.255 352.863 +-3.49498 193.139 350.835 +-7.01936 193.937 352.284 +-10.4813 193.032 350.641 +-14.0331 193.8 352.036 +-17.5001 193.3 351.127 +-21.0862 194.038 352.468 +-24.4438 192.738 350.107 +-28.1258 193.975 352.354 +-31.4307 192.599 349.854 +-35.1412 193.709 351.87 +-38.4725 192.689 350.018 +-42.2295 193.767 351.976 +-45.4511 192.384 349.464 +-49.2596 193.478 351.45 +-52.5629 192.546 349.758 +-56.2538 193.033 350.644 +-59.5968 192.312 349.334 +-63.4029 193.055 350.682 +-66.5802 191.877 348.543 +-70.5012 192.824 350.263 +-73.6778 191.714 348.247 +-77.6593 192.675 349.992 +-80.9234 191.821 348.44 +-84.9527 192.746 350.122 +-88.026 191.487 347.835 +-92.14 192.472 349.624 +-95.4325 191.702 348.225 +-99.6718 192.79 350.202 +-102.681 191.476 347.815 +-106.866 192.341 349.387 +-110.102 191.466 347.797 +-114.472 192.525 349.72 +-117.639 191.527 347.908 +-122.211 192.777 350.178 +-125.184 191.474 347.811 +-129.664 192.453 349.59 +-133.046 191.763 348.336 +-138.822 194.433 353.187 +-139.097 189.432 344.102 +-143.067 189.565 344.342 +-143.06 184.529 335.195 +-142.881 179.507 326.074 +-142.459 174.412 316.818 +-142.388 169.961 308.732 +-142.511 165.924 301.4 +-143.984 163.586 297.153 +-143.709 159.392 289.534 +-145.083 157.151 285.464 +-143.235 151.576 275.336 +-145.296 150.268 272.96 +-148.655 150.303 273.025 +-438.81 433.889 788.155 +-436.962 422.66 767.758 +-110.456 104.546 189.907 +-111.189 103.007 187.112 +-111.875 101.471 184.321 +-113.373 100.7 182.92 +-115.239 100.261 182.123 +-116.803 99.5622 180.854 +-118.4 98.9001 179.651 +-120.794 98.8967 179.645 +-123.094 98.7978 179.465 +-127.49 100.332 182.252 +-438.667 338.555 614.983 +-439.457 332.67 604.292 +-440.232 326.925 593.856 +-441.77 321.883 584.697 +-442.993 316.733 575.343 +-444.062 311.597 566.014 +-445.612 306.912 557.502 +-447.083 302.277 549.083 +-448.363 297.613 540.612 +-449.924 293.234 532.657 +-451.602 289.018 524.999 +-452.675 284.505 516.801 +-454.112 280.309 509.179 +-455.743 276.311 501.917 +-457.201 272.284 494.602 +-459.312 268.712 488.113 +-461.264 265.106 481.563 +-463.316 261.615 475.222 +-464.096 257.471 467.695 +-466.087 254.063 461.504 +-467.655 250.48 454.994 +-469.333 247.009 448.689 +-471.261 243.719 442.713 +-473.313 240.537 436.933 +-474.243 236.836 430.211 +-476.829 234.006 425.069 +-477.368 230.217 418.187 +-462.4 219.14 398.066 +-465.341 216.716 393.664 +-463.877 212.294 385.63 +-467.262 210.136 381.71 +-472.521 208.813 379.307 +-476.876 207.075 376.149 +-2453.95 1047.03 1901.91 +-140.753 59.0073 107.186 +-142.272 58.6007 106.448 +-137.582 55.6748 101.133 +-141.825 56.3818 102.417 +-143.15 55.9044 101.55 +-143.53 55.0595 100.015 +-142.788 53.8003 97.7278 +-148.278 54.8709 99.6725 +-497.63 180.844 328.502 +-499.677 178.313 323.904 +-501.429 175.693 319.144 +-504.182 173.436 315.045 +-505.007 170.533 309.772 +-506.838 167.991 305.155 +-510.273 165.987 301.513 +-510.588 162.981 296.054 +-525.008 164.425 298.676 +-516.409 158.659 288.203 +-518.497 156.25 283.826 +-520.878 153.935 279.622 +-523.644 151.738 275.63 +-525.594 149.308 271.216 +-527.929 146.994 267.013 +-530.917 144.861 263.139 +-381.597 102.009 185.299 +-380.967 99.7551 181.204 +-382.581 98.1029 178.203 +-380.705 95.5763 173.614 +-381.44 93.7292 170.258 +-379.273 91.1954 165.656 +-379.291 89.2153 162.059 +-381.613 87.7815 159.454 +-378.655 85.1532 154.68 +-381.365 83.8163 152.252 +-380.583 81.7175 148.439 +-380.488 79.7861 144.931 +-379.524 77.6916 141.126 +-380.454 75.9993 138.052 +-381.907 74.4132 135.171 +-380.82 72.3438 131.412 +-379.781 70.3062 127.711 +-380.476 68.6038 124.618 +-381.609 66.9834 121.675 +-381.958 65.2304 118.49 +-381.611 63.3689 115.109 +-382.269 61.6843 112.049 +-380.803 59.6704 108.391 +-380.628 57.8773 105.134 +-380.227 56.0616 101.835 +-380.747 54.3906 98.8 +-380.948 52.68 95.6928 +-381.212 50.9848 92.6135 +-381.251 49.266 89.4914 +-381.644 47.5993 86.4636 +-380.938 45.8046 83.2037 +-380.877 44.0984 80.1043 +-381.368 42.4612 77.1305 +-380.951 40.7294 73.9846 +-380.499 39.0043 70.8509 +-380.309 37.3149 67.7823 +-380.479 35.667 64.7888 +-380.716 34.0292 61.8138 +-381.81 32.4676 58.9771 +-380.016 30.6684 55.709 +-380.556 29.068 52.8018 +-381.661 27.5081 49.9683 +-381.451 25.8539 46.9633 +-381.508 24.2224 43.9997 +-381.535 22.5924 41.0389 +-380.24 20.893 37.952 +-380.802 19.302 35.062 +-381.336 17.708 32.1664 +-381.642 16.1025 29.25 +-380.922 14.4579 26.2626 +-380.77 12.8407 23.3251 +-380.489 11.2231 20.3866 +-379.879 9.60118 17.4405 +-148.359 3.12385 5.67444 +-380.068 6.40074 11.6269 +-3275.38 41.3631 75.1357 +-144.478 1.2162 2.20923 +-146.394 0.61612 1.11918 +96.6 3.55271e-15 -1.7053e-13 +96.4963 0.412758 0.734018 +96.2853 0.823774 1.46494 +96.4669 1.23815 2.20183 +96.4412 1.65071 2.93551 +96.5081 2.0653 3.67277 +96.3678 2.47544 4.40215 +96.4198 2.89054 5.14031 +96.2649 3.29942 5.86745 +96.3022 3.71489 6.60629 +97.0294 4.16084 7.39933 +96.1553 4.53812 8.07025 +96.1703 4.95435 8.81045 +96.8733 5.40989 9.62055 +96.7732 5.82407 10.3571 +96.6659 6.23775 11.0928 +96.5511 6.65099 11.8276 +96.3301 7.05644 12.5487 +96.0033 7.45287 13.2536 +95.867 7.86322 13.9834 +95.6248 8.26446 14.6969 +96.2607 8.74465 15.5508 +96.1995 9.16539 16.2991 +95.9346 9.56673 17.0128 +95.9563 9.99707 17.7781 +95.677 10.3965 18.4884 +95.4883 10.8054 19.2155 +96.2646 11.3278 20.1446 +96.1563 11.751 20.8971 +95.8466 12.1496 21.6059 +96.496 12.6732 22.5371 +96.2667 13.0855 23.2703 +96.03 13.4968 24.0017 +95.7861 13.907 24.7311 +96.2999 14.4308 25.6627 +96.0393 14.8422 26.3942 +96.6273 15.3887 27.3661 +96.3497 15.8014 28.1001 +96.0647 16.2129 28.8319 +96.5265 16.7541 29.7942 +96.1306 17.1496 30.4976 +96.8519 17.7489 31.5633 +96.5322 18.1625 32.2988 +97.0426 18.7364 33.3194 +96.6126 19.1324 34.0236 +96.3606 19.5637 34.7906 +96.8371 20.1474 35.8287 +96.5664 20.5804 36.5987 +96.2877 21.0126 37.3672 +95.9099 21.4237 38.0983 +96.5218 22.0609 39.2315 +96.0351 22.4518 39.9267 +96.4406 23.0551 40.9995 +95.937 23.4449 41.6926 +96.3178 24.0546 42.777 +95.9746 24.4883 43.5482 +96.2413 25.082 44.6039 +96.4941 25.6797 45.667 +96.8204 26.3054 46.7795 +96.3484 26.7185 47.5142 +96.6484 27.3502 48.6375 +96.1578 27.7625 49.3708 +96.2599 28.3495 50.4146 +96.4336 28.965 51.5092 +96.6775 29.6101 52.6565 +96.1466 30.0225 53.3899 +96.2794 30.6462 54.499 +96.4806 31.3003 55.6622 +95.9196 31.7118 56.3939 +96.0931 32.3707 57.5657 +96.2504 33.0335 58.7444 +95.6586 33.444 59.4743 +96.4348 34.3416 61.0706 +95.7394 34.7236 61.75 +95.7564 35.3678 62.8955 +95.8371 36.0446 64.099 +95.8221 36.6945 65.2548 +95.8695 37.3776 66.4695 +95.8998 38.0638 67.6899 +95.9129 38.7532 68.9158 +95.8322 39.414 70.0909 +95.8112 40.1089 71.3267 +95.7726 40.8066 72.5674 +95.0425 41.2147 73.2932 +95.5684 42.1772 75.0048 +95.4774 42.8824 76.2588 +96.0267 43.8908 78.0522 +95.822 44.5698 79.2596 +95.6003 45.2504 80.4699 +95.4329 45.9668 81.7439 +95.2473 46.6851 83.0214 +95.6741 47.72 84.8618 +95.4461 48.4447 86.1506 +95.1994 49.171 87.4421 +95.548 50.2219 89.3109 +95.2582 50.9537 90.6122 +95.4849 51.9785 92.4348 +95.1522 52.7152 93.7449 +95.391 53.7862 95.6494 +94.9493 54.4901 96.9011 +95.1968 55.6076 98.8884 +94.712 56.3154 100.147 +94.5869 57.2515 101.812 +94.7467 58.3828 103.824 +94.8119 59.4812 105.777 +94.7842 60.5453 107.669 +94.1841 61.2614 108.943 +94.2199 62.4108 110.987 +94.5746 63.8028 113.462 +94.5384 64.963 115.525 +94.3533 66.0477 117.454 +94.1934 67.1755 119.46 +93.8326 68.1857 121.256 +94.2708 69.8106 124.146 +94.0592 70.9918 126.247 +94.2424 72.5078 128.943 +93.7957 73.5734 130.838 +93.893 75.0997 133.552 +93.9944 76.6751 136.353 +93.9961 78.2146 139.091 +93.55 79.4199 141.234 +93.462 80.9692 143.99 +93.4713 82.6519 146.982 +93.3323 84.2547 149.832 +93.6126 86.2952 153.461 +93.3194 87.8661 156.255 +93.3858 89.834 159.754 +93.4338 91.8529 163.344 +93.3292 93.791 166.791 +93.1196 95.6908 170.169 +92.8915 97.6401 173.636 +93.0572 100.085 177.985 +93.0613 102.45 182.189 +93.068 104.912 186.568 +92.0172 106.253 188.953 +114.537 135.534 241.023 +115.004 139.518 248.108 +114.935 143.014 254.326 +115 146.841 261.131 +114.833 150.541 267.711 +112.593 151.625 269.639 +109.322 151.316 269.088 +106.428 151.499 269.415 +103.378 151.438 269.305 +100.122 151.035 268.589 +97.5189 151.597 269.59 +94.2606 151.118 268.738 +91.5097 151.422 269.278 +90.8225 155.247 276.08 +90.5938 160.117 284.74 +90.4055 165.374 294.09 +89.9615 170.5 303.204 +88.6402 174.255 309.882 +86.0713 175.724 312.494 +88.2933 187.452 333.35 +88.3939 195.431 347.539 +85.4517 197.048 350.416 +81.1427 195.485 347.635 +77.9073 196.45 349.352 +73.9147 195.474 347.617 +70.7269 196.604 349.625 +66.5472 194.916 346.625 +63.4498 196.356 349.184 +59.4489 194.971 346.723 +56.3094 196.383 349.233 +52.3802 195.013 346.797 +49.1499 196.203 348.912 +45.3266 194.993 346.761 +42.1041 196.349 349.173 +38.2425 194.668 346.183 +34.9495 195.801 348.198 +31.2503 194.623 346.104 +28.0072 196.314 349.111 +24.3034 194.763 346.352 +20.9606 196.035 348.613 +17.3213 194.452 345.799 +13.9493 195.792 348.183 +10.3896 194.472 345.835 +6.95304 195.244 347.208 +3.45745 194.189 345.331 +2.66454e-14 195.47 347.61 +-3.45833 194.238 345.418 +-6.94606 195.048 346.86 +-10.353 193.786 344.615 +-13.883 194.862 346.528 +-17.2907 194.109 345.19 +-20.8245 194.762 346.351 +-24.1386 193.442 344.003 +-27.8189 194.994 346.764 +-31.1012 193.695 344.453 +-34.8362 195.166 347.069 +-38.0412 193.644 344.361 +-41.7905 194.887 346.573 +-44.9643 193.435 343.99 +-48.7477 194.597 346.057 +-51.8711 193.118 343.426 +-55.6553 194.102 345.176 +-58.8429 192.984 343.188 +-62.6989 194.032 345.052 +-65.854 192.886 343.015 +-69.7545 193.9 344.818 +-72.7484 192.39 342.132 +-76.9723 194.092 345.159 +-79.9067 192.507 342.34 +-83.8716 193.404 343.936 +-86.8789 192.081 341.583 +-91.1052 193.422 343.967 +-94.1252 192.167 341.735 +-98.5832 193.802 344.643 +-101.604 192.566 342.445 +-105.883 193.686 344.437 +-108.846 192.376 342.107 +-113.259 193.599 344.282 +-116.134 192.167 341.736 +-120.662 193.445 344.008 +-123.59 192.127 341.664 +-128.397 193.688 344.441 +-131.301 192.341 342.046 +-137.26 195.388 347.463 +-139.298 192.806 342.872 +-142.109 191.374 340.325 +-142.92 187.361 333.19 +-142.881 182.442 324.441 +-142.789 177.674 315.962 +-142.763 173.193 307.994 +-142.358 168.455 299.568 +-143.945 166.215 295.585 +-143.709 161.997 288.084 +-143.985 158.511 281.884 +-143.401 154.232 274.275 +-145.296 152.724 271.593 +-150.162 154.309 274.411 +-438.459 440.629 783.582 +-110.88 109.004 193.845 +-110.365 106.168 188.801 +-110.958 104.474 185.789 +-112.438 103.649 184.322 +-113.707 102.647 182.541 +-115.094 101.772 180.983 +-117.197 101.531 180.556 +-118.75 100.814 179.28 +-120.997 100.682 179.045 +-123.764 100.959 179.538 +-128.064 102.432 182.157 +-438.508 343.965 611.682 +-439.833 338.397 601.78 +-440.722 332.639 591.54 +-442.267 327.512 582.424 +-442.657 321.666 572.028 +-444.402 316.933 563.61 +-445.612 311.929 554.711 +-447.083 307.218 546.334 +-448.656 302.677 538.258 +-450.4 298.342 530.55 +-451.963 293.978 522.788 +-453.771 289.856 515.458 +-454.666 285.239 507.248 +-456.303 281.173 500.018 +-457.956 277.192 492.938 +-460.075 273.559 486.476 +-461.907 269.816 479.82 +-462.797 265.593 472.311 +-464.687 262.013 465.945 +-466.683 258.547 459.781 +-467.722 254.61 452.78 +-470.346 251.588 447.406 +-471.261 247.703 440.496 +-473.794 244.718 435.188 +-474.868 241.025 428.621 +-476.829 237.831 422.941 +-477.933 234.257 416.586 +-479.162 230.796 410.43 +-469.225 222.098 394.963 +-473.452 220.217 391.618 +-466.896 213.404 379.502 +-470.088 211.133 375.464 +-476.95 210.492 374.324 +-479.257 207.827 369.585 +-140.98 60.0684 106.821 +-142.804 59.7812 106.31 +-141.488 58.1916 103.484 +-138.507 55.9629 99.5204 +-142.451 56.5403 100.547 +-143.296 55.8679 99.3513 +-143.103 54.8003 97.4529 +-148.516 55.8571 99.3321 +-497.869 183.889 327.014 +-499.999 181.344 322.489 +-502.48 178.939 318.212 +-504.914 176.527 313.923 +-505.99 173.658 308.82 +-507.827 171.071 304.22 +-2716.51 898.1 1597.11 +-508.337 164.915 293.273 +-528.698 168.287 299.269 +-516.409 161.253 286.76 +-518.836 158.908 282.59 +-522.413 156.913 279.043 +-523.644 154.218 274.25 +-526.886 152.122 270.522 +-529.488 149.838 266.46 +-531.7 147.447 262.209 +-380.285 103.32 183.737 +-381.319 101.479 180.464 +-380.55 99.1772 176.369 +-380.262 97.0254 172.543 +-380.103 94.9276 168.812 +-381.153 93.1455 165.643 +-380.1 90.8668 161.591 +-380.44 88.942 158.168 +-381.465 87.1872 155.047 +-382.366 85.41 151.887 +-381.04 83.1533 147.874 +-379.938 80.9732 143.997 +-381.457 79.364 141.135 +-381.377 77.4294 137.695 +-381.907 75.6296 134.494 +-381.75 73.7058 131.073 +-381.928 71.8594 127.789 +-381.413 69.8968 124.299 +-381.609 68.0784 121.066 +-382.335 66.3619 118.013 +-381.139 64.3253 114.391 +-381.036 62.4902 111.128 +-380.803 60.6458 107.848 +-379.77 58.6906 104.371 +-380.609 57.0354 101.428 +-380.651 55.266 98.2809 +-380.948 53.5411 95.2136 +-381.501 51.8575 92.2195 +-380.961 50.0332 88.9753 +-381.257 48.3282 85.9434 +-380.744 46.5297 82.745 +-381.461 44.8879 79.8253 +-381.953 43.2215 76.8619 +-381.341 41.4376 73.6896 +-381.086 39.703 70.6049 +-380.799 37.9738 67.5298 +-380.97 36.2968 64.5476 +-380.323 34.5498 61.4408 +-380.825 32.9132 58.5305 +-380.903 31.2426 55.5596 +-381.346 29.6045 52.6465 +-380.672 27.8853 49.5892 +-380.659 26.2219 46.6311 +-381.012 24.5863 43.7225 +-380.741 22.9139 40.7484 +-381.929 21.3289 37.9297 +-381.101 19.633 34.9138 +-381.336 17.9974 32.0053 +-380.646 16.323 29.0275 +-380.424 14.675 26.0969 +-380.271 13.0336 23.178 +-380.988 11.4215 20.3111 +-381.576 9.80175 17.4307 +-147.36 3.15353 5.60801 +-380.168 6.50708 11.5717 +-148.649 1.9079 3.39287 +-146.278 1.25149 2.22555 +-146.594 0.627049 1.1151 +96.6 3.55271e-15 -1.7053e-13 +95.6964 0.415886 0.72421 +96.4853 0.838695 1.46047 +96.5669 1.25926 2.19284 +96.4412 1.67713 2.9205 +96.5081 2.09835 3.65399 +96.4676 2.51766 4.38417 +96.4198 2.93679 5.11403 +96.3647 3.35569 5.84349 +96.4019 3.77824 6.57931 +96.2324 4.1927 7.30102 +97.0511 4.6537 8.10379 +96.1703 5.03363 8.7654 +96.0784 5.4514 9.49288 +96.7732 5.91727 10.3041 +96.765 6.34409 11.0474 +96.5511 6.75742 11.7672 +96.429 7.17673 12.4973 +96.0033 7.57214 13.1859 +95.867 7.98905 13.9119 +95.7233 8.40537 14.6368 +96.4573 8.90271 15.5029 +96.1995 9.31206 16.2157 +96.1306 9.73969 16.9604 +95.8585 10.1467 17.6691 +95.9699 10.5952 18.4502 +96.4626 11.0903 19.3123 +96.3619 11.5207 20.0618 +96.1563 11.9391 20.7903 +96.1371 12.3814 21.5605 +96.5926 12.8889 22.4443 +96.363 13.3082 23.1744 +96.03 13.7127 23.8789 +95.7861 14.1295 24.6047 +96.3955 14.6763 25.5568 +96.1347 15.0946 26.2853 +96.6273 15.6349 27.2262 +96.4445 16.0701 27.9839 +96.0647 16.4724 28.6844 +96.6208 17.0388 29.6708 +96.2245 17.441 30.3713 +96.8519 18.0329 31.4019 +96.5322 18.4531 32.1336 +97.0426 19.0362 33.149 +96.7053 19.4572 33.8821 +96.453 19.8958 34.6459 +96.9292 20.4893 35.6794 +96.6581 20.9296 36.4461 +96.2877 21.3488 37.1761 +96.0009 21.7871 37.9393 +96.4311 22.3929 38.9943 +96.1253 22.8325 39.7598 +96.4406 23.424 40.7899 +96.8319 24.0423 41.8664 +96.3178 24.4396 42.5582 +96.8616 25.1101 43.7259 +97.0359 25.6937 44.7422 +96.582 26.1144 45.4748 +96.0332 26.509 46.162 +96.4354 27.1706 47.3139 +96.735 27.8127 48.4322 +96.8471 28.409 49.4704 +96.2599 28.8031 50.1568 +96.5189 29.4545 51.2911 +95.9142 29.8465 51.9736 +96.0623 30.4762 53.0702 +96.3632 31.1637 54.2674 +96.4806 31.8012 55.3775 +96.6658 32.4699 56.542 +96.0931 32.8887 57.2714 +96.1684 33.5336 58.3943 +96.3099 34.2105 59.573 +95.6258 34.5984 60.2486 +95.8197 35.3089 61.4858 +95.7564 35.9338 62.5738 +95.9164 36.6517 63.8241 +95.9009 37.3124 64.9745 +95.9478 38.0067 66.1837 +95.8998 38.6729 67.3438 +95.9901 39.405 68.6185 +95.8322 40.0447 69.7325 +95.8872 40.7831 71.0183 +95.7726 41.4596 72.1964 +95.7165 42.1712 73.4355 +95.5684 42.8521 74.6213 +95.4774 43.5686 75.8689 +96.0267 44.5932 77.6531 +95.822 45.283 78.8543 +95.6003 45.9745 80.0584 +95.5042 46.7372 81.3867 +95.8837 47.7491 83.1487 +95.1134 48.1995 83.933 +95.5155 49.2558 85.7724 +95.1994 49.9578 86.9949 +94.9342 50.6974 88.2827 +95.2582 51.769 90.1489 +94.8827 52.4772 91.382 +95.1522 53.5588 93.2655 +94.8661 54.3461 94.6365 +95.0792 55.4377 96.5374 +95.2611 56.5358 98.4495 +94.8393 57.2932 99.7685 +94.6498 58.2066 101.359 +94.6845 59.2782 103.225 +94.7503 60.3937 105.168 +94.7842 61.5142 107.119 +94.1239 62.2024 108.317 +94.6958 63.7298 110.977 +94.5159 64.7835 112.812 +94.5384 66.0026 114.935 +94.4107 67.145 116.924 +94.25 68.2918 118.921 +94.0003 69.4004 120.851 +94.2708 70.9277 123.511 +94.0047 72.0865 125.529 +94.4035 73.7941 128.503 +94.1667 75.0461 130.683 +93.8407 76.2592 132.795 +93.9429 77.8592 135.581 +93.5393 79.0798 137.707 +93.6 80.7341 140.588 +93.5112 82.3083 143.329 +93.9076 84.3665 146.913 +93.38 85.6468 149.142 +93.6126 87.6761 152.676 +93.735 89.6696 156.148 +93.3858 91.2716 158.937 +93.3892 93.2785 162.432 +92.9347 94.889 165.236 +93.1626 97.2669 169.377 +93.2296 99.5636 173.377 +93.3889 102.05 177.706 +93.0207 104.044 181.179 +92.7092 106.179 184.897 +92.2125 108.183 188.386 +111.399 133.93 233.221 +114.967 141.705 246.759 +114.935 145.303 253.026 +115 149.191 259.796 +114.903 153.043 266.504 +112.935 154.52 269.076 +109.923 154.582 269.184 +106.656 154.253 268.612 +103.917 154.664 269.326 +100.678 154.304 268.7 +98 154.783 269.534 +94.7869 154.394 268.856 +91.9074 154.513 269.064 +90.8776 157.827 274.835 +90.6205 162.727 283.367 +90.1208 167.491 291.664 +90.0617 173.421 301.99 +87.7935 175.352 305.352 +85.441 177.228 308.619 +89.3056 192.635 335.448 +87.6148 196.808 342.715 +84.5369 198.058 344.892 +80.106 196.076 341.439 +77.0296 197.345 343.65 +72.9853 196.105 341.491 +69.8239 197.2 343.397 +65.8045 195.826 341.004 +62.652 196.989 343.031 +58.7542 195.777 340.919 +55.5718 196.912 342.896 +51.7797 195.862 341.068 +48.6015 197.118 343.254 +44.6926 195.343 340.163 +41.5083 196.669 342.472 +37.7728 195.354 340.184 +34.4788 196.255 341.752 +30.8501 195.206 339.925 +27.6166 196.674 342.482 +24.0104 195.494 340.427 +20.7041 196.735 342.588 +17.0988 195.026 339.612 +13.7713 196.387 341.982 +10.2509 194.946 339.473 +6.86403 195.83 341.011 +3.4208 195.205 339.923 +3.01981e-14 196.108 341.497 +-3.41382 194.806 339.229 +-6.87276 196.079 341.445 +-10.2195 194.349 338.432 +-13.7155 195.591 340.596 +-17.0726 194.727 339.092 +-20.6151 195.889 341.115 +-23.8944 194.55 338.782 +-27.4701 195.631 340.665 +-30.701 194.263 338.283 +-34.3481 195.511 340.456 +-37.5236 194.066 337.939 +-41.2783 195.579 340.575 +-44.4436 194.254 338.267 +-48.2237 195.586 340.587 +-51.2315 193.789 337.457 +-55.0847 195.186 339.891 +-58.1482 193.757 337.403 +-62.0732 195.17 339.862 +-65.0453 193.566 337.07 +-68.9731 194.797 339.212 +-71.9648 193.363 336.716 +-75.9611 194.607 338.883 +-79.0693 193.538 337.02 +-82.936 194.307 338.36 +-85.9915 193.161 336.365 +-90.1379 194.43 338.574 +-92.9813 192.869 335.856 +-97.301 194.342 338.421 +-100.327 193.189 336.412 +-104.537 194.284 338.32 +-107.537 193.103 336.263 +-111.826 194.208 338.187 +-114.771 192.951 335.998 +-119.141 194.064 337.936 +-122.237 193.064 336.195 +-126.821 194.372 338.474 +-129.619 192.916 335.938 +-135.501 195.971 341.258 +-138.663 194.999 339.565 +-140.604 192.377 335 +-143.06 190.546 331.811 +-142.63 185.036 322.215 +-142.752 180.471 314.265 +-142.425 175.549 305.695 +-142.358 171.151 298.036 +-143.281 168.096 292.717 +-143.869 164.772 286.929 +-143.903 160.956 280.284 +-144.023 157.38 274.056 +-145.507 155.394 270.597 +-151.195 157.857 274.887 +-438.459 447.68 779.575 +-111.773 111.64 194.406 +-110.728 108.221 188.453 +-111.512 106.676 185.762 +-112.532 105.396 183.533 +-114.184 104.728 182.369 +-115.53 103.792 180.74 +-117.542 103.459 180.161 +-119.4 102.988 179.339 +-121.302 102.551 178.578 +-124.845 103.471 180.181 +-437.802 355.777 619.539 +-438.667 349.596 608.774 +-440.317 344.19 599.361 +-441.049 338.212 588.952 +-442.543 332.961 579.807 +-443.664 327.557 570.396 +-444.912 322.374 561.372 +-446.128 317.287 552.513 +-447.896 312.701 544.528 +-449.185 307.883 536.137 +-450.578 303.237 528.047 +-452.144 298.801 520.323 +-453.771 294.494 512.822 +-455.22 290.156 505.268 +-456.863 286.023 498.072 +-458.523 281.976 491.024 +-460.075 277.936 483.989 +-461.907 274.133 477.367 +-463.966 270.525 471.083 +-465.277 266.544 464.151 +-467.28 263.02 458.015 +-468.525 259.129 451.239 +-470.616 255.761 445.374 +-471.875 251.995 438.815 +-473.794 248.634 432.963 +-475.563 245.24 427.053 +-477.249 241.85 421.149 +-479.136 238.605 415.499 +-481.444 235.606 410.276 +-482.461 232.017 404.027 +-484.985 229.192 399.107 +-468.505 217.566 378.862 +-470.088 214.512 373.544 +-473.235 212.194 369.508 +-477.834 210.526 366.603 +-142.414 61.6501 107.356 +-142.576 60.6412 105.599 +-143.327 59.8912 104.293 +-140.821 57.8087 100.666 +-141.363 57.0064 99.269 +-143.139 56.7001 98.7357 +-146.57 57.0263 99.3037 +-147.643 56.4178 98.244 +-498.508 187.071 325.76 +-500.803 184.543 321.356 +-502.48 181.803 316.585 +-504.914 179.352 312.318 +-506.809 176.723 307.739 +-508.403 174.006 303.008 +-524.449 176.161 306.762 +-513.007 169.093 294.454 +-530.04 171.414 298.495 +-517.927 164.315 286.132 +-519.345 161.609 281.421 +-522.413 159.424 277.616 +-524.415 156.917 273.249 +-527.145 154.632 269.271 +-529.488 152.236 265.098 +-532.223 149.953 261.123 +-381.334 105.264 183.303 +-381.758 103.222 179.748 +-380.992 100.881 175.671 +-381.503 98.8998 172.221 +-379.301 96.2435 167.595 +-380.168 94.3915 164.37 +-381.987 92.7795 161.563 +-382.064 90.7512 158.031 +-381.737 88.6457 154.365 +-381.365 86.5496 150.715 +-380.126 84.2813 146.765 +-381.222 82.5468 143.744 +-379.708 80.2645 139.77 +-380.546 78.4966 136.691 +-380.98 76.6536 133.482 +-380.82 74.703 130.085 +-381.554 72.9381 127.012 +-381.226 70.9805 123.603 +-381.891 69.2191 120.536 +-381.77 67.3242 117.236 +-381.139 65.3547 113.806 +-381.036 63.4902 110.56 +-381.279 61.6935 107.431 +-381.773 59.9445 104.385 +-380.322 57.9043 100.833 +-381.227 56.2355 97.9266 +-381.525 54.4801 94.8698 +-381.212 52.6475 91.6786 +-380.382 50.7566 88.3859 +-379.804 48.9146 85.1783 +-380.744 47.2743 82.3218 +-380.294 45.4667 79.1742 +-380.589 43.7563 76.1958 +-381.732 42.1438 73.3879 +-381.086 40.3384 70.2439 +-380.799 38.5815 67.1845 +-380.086 36.7921 64.0685 +-381.503 35.2116 61.3162 +-380.825 33.4399 58.2312 +-381.495 31.7919 55.3613 +-380.951 30.0471 52.323 +-380.672 28.3315 49.3356 +-380.065 26.5999 46.3202 +-381.111 24.9863 43.5103 +-380.741 23.2806 40.54 +-380.24 21.5744 37.5689 +-381.001 19.942 34.7263 +-380.739 18.2568 31.7918 +-380.845 16.5928 28.8942 +-380.025 14.8942 25.9362 +-381.568 13.2873 23.1381 +-380.888 11.6012 20.202 +-379.279 9.89864 17.2372 +-3273.38 71.1722 123.937 +-380.968 6.62511 11.5367 +-3275.38 42.712 74.3772 +-146.278 1.27151 2.21417 +-147.094 0.639255 1.11318 +96.5 -3.55271e-15 -1.7053e-13 +96.2963 0.425051 0.724945 +96.4853 0.851836 1.45285 +96.4669 1.27767 2.17914 +97.3407 1.7193 2.93235 +96.5081 2.13122 3.63491 +97.2665 2.57829 4.3974 +96.32 2.97972 5.08206 +96.3647 3.40828 5.81298 +96.3022 3.83348 6.53819 +96.2324 4.25839 7.2629 +97.0511 4.72661 8.06148 +96.9659 5.15479 8.79175 +95.979 5.53105 9.43348 +96.7732 6.00998 10.2503 +96.6659 6.43687 10.9784 +96.5511 6.86331 11.7057 +96.3301 7.2817 12.4193 +96.0033 7.69078 13.117 +95.867 8.11423 13.8392 +95.6248 8.52828 14.5454 +96.359 9.03301 15.4062 +96.1995 9.45797 16.131 +96.0326 9.88223 16.8546 +95.8585 10.3057 17.5769 +95.677 10.7284 18.2979 +95.5857 11.1617 19.0368 +96.2646 11.6894 19.9369 +96.0593 12.1139 20.6608 +95.9434 12.5501 21.4048 +96.3994 13.0647 22.2825 +96.2667 13.5032 23.0304 +96.03 13.9276 23.7542 +96.649 14.4802 24.6967 +96.2999 14.8915 25.3981 +96.8976 15.4528 26.3556 +96.6273 15.8799 27.084 +96.3497 16.3059 27.8104 +96.8211 16.8622 28.7594 +96.5265 17.2889 29.4871 +96.2245 17.7143 30.2127 +95.8216 18.1206 30.9056 +96.5322 18.7423 31.9659 +96.9495 19.3159 32.9443 +96.6126 19.7431 33.6729 +96.3606 20.1882 34.4319 +96.8371 20.7906 35.4593 +96.5664 21.2374 36.2214 +96.2877 21.6833 36.982 +96.0009 22.1285 37.7412 +96.4311 22.7438 38.7907 +96.0351 23.1686 39.5151 +96.3507 23.7689 40.5391 +96.8319 24.419 41.6478 +96.3178 24.8225 42.336 +96.6842 25.4569 43.4179 +96.153 25.8589 44.1037 +96.4941 26.4995 45.1962 +96.0332 26.9244 45.9209 +96.3484 27.5714 47.0244 +96.6484 28.2232 48.1361 +96.0717 28.6231 48.8181 +96.3456 29.2805 49.9394 +96.4336 29.8896 50.9782 +96.6775 30.5554 52.1137 +96.1466 30.9809 52.8395 +96.3632 31.652 53.9841 +95.7301 32.0483 54.6599 +96.6658 32.9787 56.2467 +96.0931 33.4041 56.9723 +96.2504 34.088 58.1388 +96.2285 34.7172 59.2119 +95.6258 35.1406 59.934 +95.8197 35.8622 61.1647 +95.8363 36.5273 62.299 +95.9164 37.226 63.4908 +95.8221 37.8659 64.5821 +95.8695 38.5708 65.7843 +95.8221 39.2471 66.9379 +95.9129 39.9903 68.2054 +95.8322 40.6722 69.3684 +95.7351 41.3564 70.5354 +95.7726 42.1092 71.8194 +95.5667 42.7649 72.9377 +95.4941 43.4897 74.1739 +95.4037 44.2171 75.4145 +95.9536 45.2574 77.1888 +95.822 45.9926 78.4426 +95.6003 46.6949 79.6404 +95.4329 47.4341 80.9012 +95.318 48.2112 82.2265 +95.6741 49.2433 83.987 +95.4461 49.9912 85.2625 +95.1306 50.7042 86.4786 +95.548 51.8251 88.3902 +95.1907 52.5428 89.6143 +95.4849 53.6378 91.482 +95.1522 54.398 92.7785 +95.3254 55.4647 94.5979 +94.9493 56.2295 95.9022 +95.1968 57.3827 97.8691 +94.6484 58.0741 99.0483 +94.7127 59.1575 100.896 +94.809 60.286 102.821 +94.7503 61.34 104.618 +94.6015 62.3577 106.354 +94.1239 63.1771 107.752 +94.6958 64.7283 110.397 +94.5746 65.8396 112.293 +94.4223 66.9543 114.194 +94.296 68.1146 116.173 +94.25 69.3619 118.3 +93.9444 70.4458 120.149 +94.2708 72.0391 122.866 +94.0047 73.2161 124.874 +94.2961 74.8649 127.686 +93.6367 75.7931 129.269 +93.8407 77.4541 132.102 +93.9944 79.1227 134.948 +93.5393 80.3189 136.988 +93.6 81.9991 139.854 +93.462 83.554 142.505 +93.4713 85.2903 145.467 +93.2845 86.8998 148.212 +93.6126 89.0499 151.879 +93.3194 90.671 154.644 +93.3858 92.7017 158.107 +93.4338 94.7851 161.661 +92.9347 96.3758 164.374 +93.1196 98.7454 168.415 +92.9338 100.803 171.925 +92.9742 103.188 175.993 +92.98 105.628 180.153 +92.6294 107.751 183.774 +92.6033 110.344 188.197 +95.2882 116.356 198.45 +115.004 143.971 245.55 +114.678 147.25 251.143 +115 151.528 258.439 +114.938 155.489 265.194 +113.619 157.891 269.292 +110.724 158.148 269.73 +107.34 157.674 268.921 +104.679 158.238 269.883 +101.265 157.636 268.856 +98.7217 158.366 270.102 +95.3132 157.683 268.937 +92.6742 158.244 269.893 +90.6847 159.96 272.819 +90.5136 165.082 281.555 +90.4573 170.751 291.225 +88.7847 173.641 296.154 +87.9144 178.345 304.176 +87.5654 184.481 314.641 +89.1931 195.407 333.276 +86.0131 196.238 334.693 +83.435 198.539 338.619 +78.7703 195.827 333.992 +75.9229 197.557 336.944 +71.7643 195.846 334.025 +68.8515 197.5 336.846 +64.8637 196.05 334.374 +61.8855 197.628 337.065 +57.9265 196.043 334.361 +54.7785 197.143 336.237 +50.8922 195.521 333.471 +47.8215 196.994 335.983 +43.9342 195.036 332.644 +40.9333 196.984 335.965 +37.2169 195.495 333.426 +34.0343 196.761 335.585 +30.3872 195.29 333.076 +27.2608 197.182 336.304 +23.638 195.478 333.397 +20.3901 196.787 335.63 +16.8807 195.556 333.53 +13.5689 196.532 335.196 +10.1017 195.119 332.785 +6.77851 196.42 335.004 +3.36059 194.773 332.195 +2.84217e-14 196.197 334.624 +-3.36233 194.874 332.368 +-6.78201 196.521 335.177 +-10.0834 194.765 332.181 +-13.5375 196.078 334.42 +-16.8065 194.696 332.064 +-20.343 196.332 334.854 +-23.522 194.518 331.761 +-27.1143 196.123 334.497 +-30.246 194.382 331.529 +-33.9123 196.055 334.381 +-36.9485 194.085 331.022 +-40.6407 195.575 333.563 +-43.6625 193.83 330.587 +-47.4072 195.287 333.071 +-50.4484 193.816 330.563 +-54.2636 195.29 333.076 +-57.2614 193.792 330.522 +-61.1346 195.23 332.975 +-64.088 193.706 330.375 +-67.9659 194.96 332.514 +-70.8349 193.309 329.699 +-75.0261 195.224 332.964 +-77.7336 193.25 329.597 +-81.7509 194.532 331.784 +-84.6062 193.028 329.218 +-88.8782 194.717 332.1 +-91.6273 193.038 329.237 +-95.922 194.59 331.882 +-98.6497 192.935 329.06 +-103.165 194.739 332.138 +-105.933 193.204 329.52 +-110.42 194.771 332.192 +-113.038 193.016 329.198 +-117.592 194.541 331.8 +-120.342 193.05 329.256 +-124.843 194.339 331.455 +-127.652 192.966 329.112 +-132.311 194.355 331.483 +-136.56 195.051 332.67 +-138.313 192.207 327.819 +-139.207 188.32 321.19 +-142.63 187.935 320.532 +-142.459 182.922 311.982 +-142.725 178.675 304.739 +-142.397 173.879 296.56 +-142.226 169.473 289.045 +-143.59 167.03 284.877 +-142.317 161.677 275.748 +-144.355 160.214 273.253 +-146.184 158.562 270.435 +-154.037 163.343 278.59 +-1436.32 1489.51 2540.43 +-111.282 112.891 192.542 +-110.774 109.962 187.546 +-111.651 108.482 185.021 +-113.096 107.583 183.488 +-114.518 106.68 181.948 +-116.306 106.126 181.003 +-118.329 105.785 180.421 +-119.7 104.864 178.851 +-122.824 105.465 179.876 +-126.081 106.133 181.015 +-438.951 362.301 617.922 +-439.462 355.717 606.693 +-440.854 350.01 596.96 +-441.212 343.639 586.094 +-443.316 338.768 577.786 +-443.831 332.815 567.633 +-445.479 327.842 559.151 +-446.873 322.798 550.547 +-447.954 317.642 541.755 +-449.714 313.075 533.965 +-451.47 308.598 526.329 +-452.505 303.726 518.019 +-454.319 299.47 510.761 +-455.528 294.902 502.97 +-457.237 290.743 495.876 +-459.152 286.788 489.131 +-461.029 282.876 482.46 +-462.486 278.777 475.469 +-464.161 274.879 468.82 +-465.671 270.95 462.118 +-467.545 267.293 455.881 +-469.127 263.528 449.46 +-471.157 260.067 443.557 +-472.761 256.424 437.344 +-474.414 252.86 431.265 +-476.397 249.519 425.568 +-478.511 246.289 420.058 +-479.772 242.665 413.878 +-482.443 239.794 408.98 +-483.252 236.039 402.576 +-486.001 233.271 397.855 +-487.008 229.702 391.769 +-2415.69 1119.61 1909.55 +-472.417 215.147 366.944 +-141.253 63.2089 107.806 +-142.867 62.8154 107.135 +-142.424 61.5257 104.935 +-143.327 60.8297 103.748 +-142.596 59.4544 101.403 +-137.477 56.3084 96.0368 +-142.435 57.3053 97.7371 +-147.043 58.1065 99.1035 +-497.829 193.212 329.532 +-498.748 190.094 324.214 +-501.205 187.584 319.935 +-503.209 184.919 315.388 +-505.647 182.427 311.138 +-507.301 179.666 306.429 +-510.793 177.563 302.843 +-515.827 175.981 300.144 +-521.095 174.45 297.534 +-515.95 169.472 289.043 +-518.939 167.215 285.194 +-520.871 164.623 280.773 +-522.924 162.08 276.436 +-524.929 159.532 272.089 +-527.92 157.286 268.259 +-529.575 154.646 263.757 +-2851.72 816.061 1391.83 +-380.722 106.742 182.053 +-382.198 104.96 179.015 +-381.345 102.557 174.916 +-381.06 100.333 171.122 +-382.687 98.6241 168.208 +-381.242 96.1411 163.973 +-380.01 93.7452 159.887 +-381.162 91.9557 156.835 +-381.465 89.9704 153.449 +-381.365 87.9058 149.928 +-381.131 85.8285 146.385 +-380.03 83.5782 142.547 +-380.813 81.7589 139.444 +-381.377 79.9011 136.275 +-380.424 77.7409 132.591 +-381.936 76.096 129.786 +-380.994 73.9722 126.163 +-379.914 71.8448 122.535 +-381.139 70.1651 119.67 +-381.487 68.3286 116.538 +-380.76 66.3125 113.099 +-381.416 64.5493 110.092 +-381.279 62.6602 106.87 +-380.915 60.7467 103.607 +-381.374 58.9744 100.584 +-381.323 57.1308 97.4395 +-381.909 55.3899 94.4702 +-380.73 53.4046 91.0843 +-380.092 51.5125 87.8571 +-381.644 49.9217 85.1439 +-381.229 48.0762 81.9963 +-381.558 46.3327 79.0226 +-380.979 44.4875 75.8756 +-380.755 42.6947 72.8179 +-380.695 40.9284 69.8053 +-381.093 39.2162 66.8853 +-380.97 37.4555 63.8822 +-380.618 35.6804 60.8546 +-381.318 34.0078 58.002 +-381.495 32.29 55.0722 +-380.951 30.5179 52.0498 +-380.178 28.7381 49.0142 +-381.055 27.0871 46.1985 +-381.905 25.4306 43.3732 +-380.741 23.6454 40.3283 +-381.532 21.9868 37.4996 +-380.703 20.2385 34.5178 +-380.739 18.5429 31.6258 +-381.244 16.8705 28.7734 +-380.424 15.1434 25.8279 +-380.072 13.4426 22.927 +-380.489 11.7707 20.0754 +-380.678 10.0908 17.2104 +-3273.38 72.2874 123.29 +-3274.5 57.8364 98.6429 +-3275.38 43.3812 73.9889 +-144.978 1.27996 2.18303 +-145.794 0.643535 1.09758 +96.4 3.55271e-15 -1.7053e-13 +96.3963 0.432022 0.72183 +96.3853 0.86401 1.4436 +96.367 1.29593 2.16527 +96.3413 1.72776 2.88677 +96.5081 2.16393 3.61553 +97.1667 2.61517 4.36947 +96.4198 3.02858 5.06021 +96.4644 3.46416 5.78798 +97.1994 3.92857 6.56393 +96.332 4.32822 7.23167 +97.0511 4.79915 8.01851 +97.0653 5.23929 8.7539 +96.9726 5.67406 9.48033 +96.8725 6.10843 10.2061 +96.765 6.54238 10.9311 +96.5511 6.96863 11.6433 +96.429 7.40104 12.3658 +96.1021 7.81687 13.0606 +95.9656 8.24723 13.7796 +95.8218 8.67702 14.4977 +96.4573 9.18097 15.3397 +96.2976 9.61292 16.0615 +96.2286 10.0543 16.799 +96.0541 10.4852 17.5189 +95.8723 10.9153 18.2375 +96.6575 11.46 19.1476 +95.4867 11.7729 19.6704 +96.2533 12.3246 20.5922 +95.9434 12.7427 21.2907 +95.7232 13.1722 22.0083 +96.363 13.7241 22.9305 +96.1262 14.1555 23.6512 +96.649 14.7024 24.5651 +96.3955 15.135 25.2879 +96.1347 15.5664 26.0086 +96.7224 16.1395 26.9662 +96.4445 16.5724 27.6894 +96.1592 17.004 28.4105 +96.715 17.5885 29.3872 +97.3522 18.1969 30.4038 +96.9456 18.6146 31.1016 +96.7189 19.0667 31.857 +97.2286 19.6688 32.8631 +96.8907 20.1038 33.5898 +96.5454 20.5373 34.314 +97.0212 21.1498 35.3374 +96.7498 21.6042 36.0967 +96.4704 22.0579 36.8547 +96.9109 22.681 37.8959 +96.5218 23.1145 38.6201 +96.9377 23.7452 39.6739 +96.4406 24.1562 40.3606 +96.0265 24.5875 41.0812 +97.2088 25.4366 42.4999 +95.9746 25.6578 42.8695 +97.1242 26.5209 44.3117 +96.582 26.9307 44.9962 +96.1207 27.3625 45.7178 +96.4354 28.0198 46.816 +96.735 28.682 47.9225 +96.9333 29.323 48.9934 +96.2599 29.7034 49.629 +96.5189 30.3751 50.7513 +96.0838 30.8338 51.5176 +96.9057 31.7047 52.9727 +96.3632 32.1377 53.6963 +96.564 32.8235 54.8421 +96.0026 33.255 55.563 +96.0931 33.9167 56.6686 +96.2504 34.6111 57.8289 +95.6586 35.0412 58.5474 +96.4348 35.9817 60.1189 +95.8197 36.4125 60.8387 +95.8363 37.0878 61.967 +96.6304 38.0786 63.6224 +95.9009 38.4786 64.2908 +95.8695 39.1627 65.4337 +95.9775 39.914 66.6891 +95.8358 40.5713 67.7873 +95.9088 41.3293 69.0538 +95.8112 42.0244 70.2152 +95.8481 42.7891 71.4929 +95.6416 43.4553 72.6059 +95.6427 44.2258 73.8934 +95.5511 44.9651 75.1285 +96.0999 46.022 76.8944 +95.8945 46.7337 78.0836 +95.7441 47.4828 79.3351 +95.5042 48.198 80.5302 +96.0251 49.3141 82.395 +95.8143 50.0723 83.6617 +95.5155 50.7953 84.8697 +95.9566 51.9291 86.7641 +95.6162 52.6578 87.9817 +95.8663 53.7281 89.7699 +94.9496 54.1554 90.4838 +95.2185 55.2713 92.3484 +94.9317 56.0833 93.705 +95.0792 57.1705 95.5215 +95.2611 58.3028 97.4135 +94.7757 59.0444 98.6525 +94.8386 60.1455 100.492 +94.809 61.2111 102.273 +94.8119 62.3219 104.129 +94.7842 63.4368 105.991 +94.6655 64.5153 107.793 +94.7553 65.7627 109.878 +94.6922 66.9331 111.833 +94.4804 68.0239 113.656 +94.3533 69.202 115.624 +94.25 70.4263 117.67 +94.4477 71.91 120.149 +94.326 73.1872 122.283 +94.1136 74.4254 124.351 +93.8662 75.6672 126.426 +93.6897 76.9998 128.653 +93.893 78.6863 131.471 +93.5309 79.941 133.567 +93.5901 81.5956 136.332 +93.55 83.2128 139.034 +93.5112 84.8808 141.82 +93.5198 86.6439 144.766 +93.8094 88.7294 148.251 +93.6126 90.4164 151.069 +93.3656 92.1081 153.896 +93.4766 94.2157 157.417 +93.1215 95.9182 160.262 +92.9785 97.901 163.575 +93.2057 100.354 167.673 +92.9338 102.35 171.008 +93.0157 104.819 175.133 +93.0613 107.343 179.35 +93.0282 109.875 183.581 +92.9549 112.462 187.904 +92.2267 114.346 191.051 +114.967 146.134 244.163 +114.715 149.558 249.884 +114.678 153.422 256.341 +114.693 157.538 263.218 +114.235 161.183 269.307 +109.656 159.026 265.704 +108.024 161.114 269.192 +103.6 159.011 265.678 +101.976 161.179 269.3 +97.6993 159.132 265.88 +95.9272 161.135 269.227 +91.5949 158.801 265.327 +90.6571 162.365 271.282 +90.4067 167.417 279.723 +90.3796 173.223 289.423 +88.3341 175.411 293.08 +86.1 177.345 296.311 +89.3862 191.207 319.472 +88.7432 197.405 329.828 +84.4331 195.589 326.794 +81.7717 197.567 330.099 +77.3548 195.259 326.243 +74.6636 197.262 329.589 +70.434 195.165 326.086 +67.6881 197.142 329.389 +63.5598 195.058 325.906 +60.6809 196.755 328.742 +56.7588 195.039 325.875 +53.8878 196.913 329.006 +50.0176 195.111 325.995 +46.9928 196.551 328.401 +43.1983 194.713 325.33 +40.3166 196.993 329.139 +36.4981 194.661 325.244 +33.4678 196.455 328.24 +29.7752 194.293 324.629 +26.7865 196.725 328.692 +23.1862 194.684 325.282 +20.097 196.935 329.042 +16.5579 194.76 325.409 +13.3665 196.572 328.436 +9.92106 194.57 325.092 +6.66333 196.045 327.556 +3.29776 194.065 324.248 +2.57572e-14 196.281 327.949 +-3.29863 194.116 324.333 +-6.67031 196.251 327.9 +-9.89489 194.057 324.234 +-13.3072 195.699 326.978 +-16.4881 193.939 324.037 +-20.0028 196.012 327.5 +-23.0702 193.71 323.655 +-26.6679 195.854 327.236 +-29.6654 193.576 323.431 +-33.3371 195.687 326.957 +-36.316 193.69 323.621 +-40.0658 195.767 327.091 +-42.9946 193.794 323.795 +-46.7247 195.429 326.527 +-49.5869 193.43 323.187 +-53.4842 195.438 326.542 +-56.3006 193.464 323.244 +-60.1178 194.929 325.692 +-62.8501 192.88 322.267 +-66.8198 194.614 325.164 +-69.7051 193.145 322.711 +-73.5569 194.338 324.703 +-76.2582 192.491 321.618 +-80.5658 194.654 325.231 +-83.1777 192.681 321.935 +-87.3485 194.302 324.644 +-89.8531 192.206 321.141 +-94.1318 193.888 323.952 +-96.8219 192.266 321.242 +-101.276 194.107 324.317 +-103.902 192.408 321.48 +-108.381 194.107 324.318 +-110.709 191.94 320.697 +-115.516 194.039 324.205 +-118.027 192.241 321.2 +-122.742 194 324.14 +-125.208 192.177 321.093 +-129.934 193.793 323.793 +-132.555 192.235 321.19 +-138.689 195.687 326.958 +-138.542 190.297 317.951 +-141.555 189.38 316.42 +-142.862 186.254 311.197 +-142.763 181.465 303.194 +-142.435 176.595 295.058 +-142.265 172.121 287.583 +-142.114 167.85 280.447 +-142.927 164.861 275.453 +-145.474 163.934 273.904 +-147.959 162.95 272.26 +-176.251 189.768 317.067 +-1436.32 1512.37 2526.89 +-111.505 114.853 191.899 +-110.774 111.65 186.547 +-112.343 110.83 185.177 +-113.565 109.688 183.268 +-115.043 108.814 181.808 +-116.791 108.204 180.789 +-119.117 108.123 180.654 +-120.45 107.141 179.013 +-124.398 108.455 181.209 +-127.575 109.038 182.183 +-439.578 368.386 615.506 +-440.045 361.655 604.26 +-440.908 355.425 593.85 +-441.866 349.429 583.833 +-443.647 344.224 575.136 +-445.006 338.817 566.101 +-446.781 333.847 557.798 +-447.16 327.962 547.965 +-448.593 322.977 539.635 +-450.008 318.087 531.466 +-452.303 313.912 524.49 +-453.347 308.961 516.217 +-455.475 304.839 509.331 +-456.759 300.237 501.641 +-454.436 293.396 490.211 +-459.656 291.508 487.056 +-461.793 287.693 480.683 +-463.643 283.764 474.118 +-465.524 279.918 467.692 +-466.589 275.65 460.561 +-468.87 272.164 454.737 +-470.198 268.182 448.084 +-472.305 264.702 442.269 +-473.511 260.772 435.703 +-475.791 257.486 430.212 +-476.952 253.644 423.793 +-479.282 250.471 418.492 +-480.974 247.006 412.703 +-483.441 243.978 407.642 +-484.835 240.446 401.742 +-487.234 237.451 396.738 +-488.252 233.822 390.675 +-490.363 230.758 385.555 +-488.469 225.872 377.391 +-141.777 64.4172 107.63 +-143.244 63.9478 106.845 +-143.337 62.8699 105.044 +-143.097 61.6641 103.029 +-142.056 60.1383 100.48 +-142.529 59.2729 99.0343 +-143.374 58.5683 97.8571 +-148.146 59.4409 99.3149 +-499.178 196.708 328.664 +-500.345 193.629 323.519 +-502.893 191.104 319.301 +-504.179 188.119 314.313 +-506.787 185.644 310.177 +-508.448 182.835 305.485 +-523.732 184.855 308.858 +-510.687 176.901 295.569 +-542.276 184.328 307.978 +-517.124 172.464 288.156 +-519.866 170.085 284.181 +-521.719 167.422 279.732 +-524.544 165.078 275.815 +-526.644 162.509 271.523 +-529.643 160.221 267.7 +-530.787 157.379 262.952 +-382.782 111.22 185.828 +-381.247 108.529 181.332 +-382.988 106.792 178.429 +-382.669 104.492 174.588 +-381.858 102.086 170.567 +-382.064 99.9742 167.039 +-378.647 96.9519 161.989 +-381.718 95.6116 159.75 +-381.703 93.4993 156.22 +-380.831 91.1991 152.377 +-381.092 89.1911 149.022 +-380.492 86.9993 145.36 +-381.038 85.0857 142.163 +-380.721 82.9935 138.667 +-381.562 81.1663 135.614 +-381.351 79.1265 132.206 +-381.657 77.2073 128.999 +-382.488 75.4016 125.982 +-381.132 73.181 122.272 +-382.643 71.5233 119.502 +-381.581 69.3941 115.945 +-381.328 67.4308 112.665 +-381.605 65.5722 109.559 +-381.469 63.6536 106.354 +-381.105 61.7098 103.106 +-380.705 59.7742 99.8718 +-381.418 58.0219 96.9441 +-380.948 56.0982 93.7298 +-381.309 54.3064 90.7361 +-380.285 52.3297 87.4334 +-380.869 50.5849 84.5182 +-380.744 48.7519 81.4555 +-380.294 46.8878 78.341 +-381.758 45.2626 75.6255 +-379.584 43.2165 72.2069 +-381.086 41.5992 69.5047 +-380.897 39.7976 66.4945 +-381.657 38.0988 63.6562 +-381.208 36.284 60.624 +-381.416 34.5386 57.7077 +-381.594 32.794 54.7928 +-381.544 31.0344 51.8529 +-381.266 29.2626 48.8925 +-380.758 27.4814 45.9164 +-380.814 25.7471 43.0188 +-382.031 24.0896 40.2493 +-380.737 22.2777 37.2221 +-381.101 20.5706 34.3697 +-381.436 18.8619 31.5148 +-381.742 17.1518 28.6575 +-381.121 15.404 25.7373 +-380.97 13.6811 22.8586 +-380.689 11.9576 19.9789 +-380.478 10.2403 17.1097 +-380.637 8.53477 14.26 +-3274.5 58.724 98.1171 +-3275.38 44.047 73.5945 +-142.978 1.28167 2.14144 +-146.394 0.656097 1.09622 +95.7 0 -1.7053e-13 +96.3963 0.438516 0.717903 +96.3853 0.876998 1.43575 +96.5669 1.31814 2.15796 +96.3413 1.75373 2.87106 +96.5081 2.19646 3.59587 +96.4676 2.63538 4.31444 +96.4198 3.07411 5.03268 +96.4644 3.51623 5.75649 +96.4019 3.95491 6.47465 +97.2286 4.43417 7.25927 +97.1507 4.87629 7.98307 +97.0653 5.31805 8.70627 +96.0784 5.70629 9.34188 +96.8725 6.20025 10.1505 +96.765 6.64073 10.8717 +96.6502 7.08063 11.5918 +96.429 7.5123 12.2985 +96.2996 7.95069 13.0162 +95.9656 8.3712 13.7047 +96.7081 8.88893 14.5522 +96.4573 9.31899 15.2563 +96.2976 9.75743 15.9741 +96.2286 10.2055 16.7076 +96.0541 10.6428 17.4236 +95.8723 11.0794 18.1383 +95.6831 11.5151 18.8515 +96.4591 12.0716 19.7626 +96.2533 12.5099 20.4802 +95.9434 12.9342 21.1749 +96.5926 13.4916 22.0873 +96.363 13.9304 22.8058 +96.1262 14.3683 23.5226 +96.649 14.9234 24.4314 +96.4911 15.3778 25.1752 +96.0393 15.7848 25.8416 +95.8665 16.2371 26.5821 +96.5393 16.838 27.5658 +96.9157 17.3953 28.4782 +96.6208 17.8355 29.1989 +96.2245 18.2566 29.8882 +97.0392 18.9126 30.9622 +96.7189 19.3533 31.6837 +97.2286 19.9645 32.6843 +96.798 20.3865 33.3751 +96.5454 20.846 34.1274 +97.0212 21.4677 35.1452 +96.7498 21.929 35.9004 +96.5618 22.4107 36.689 +96.1829 22.8491 37.4067 +96.4311 23.44 38.374 +96.1253 23.9001 39.1274 +96.5305 24.5422 40.1785 +96.0265 24.9571 40.8577 +96.4069 25.606 41.92 +96.7729 26.2602 42.991 +96.2413 26.6749 43.67 +96.582 27.3355 44.7515 +96.2082 27.7991 45.5105 +96.4354 28.441 46.5613 +95.869 28.8526 47.2351 +96.1578 29.5257 48.3371 +96.3456 30.1768 49.4029 +96.5189 30.8317 50.4752 +96.6775 31.4906 51.5539 +96.231 31.9572 52.3178 +96.4471 32.6493 53.4507 +95.8135 33.058 54.1199 +96.0026 33.7549 55.2608 +96.1755 34.4561 56.4087 +96.2504 35.1314 57.5143 +96.3099 35.8101 58.6254 +95.7067 36.2468 59.3404 +95.8197 36.9599 60.5077 +95.9161 37.6767 61.6812 +95.9958 38.3972 62.8607 +95.9797 39.0891 63.9936 +95.9478 39.7838 65.1309 +96.0552 40.5468 66.38 +95.9901 41.2475 67.527 +95.2959 41.6826 68.2394 +95.8872 42.69 69.8886 +95.8481 43.4324 71.1039 +95.7165 44.143 72.2674 +95.6427 44.8907 73.4914 +95.5511 45.641 74.7197 +95.4417 46.3939 75.9523 +95.822 47.4004 77.6 +95.7441 48.1965 78.9035 +95.5042 48.9226 80.0921 +95.9544 50.0186 81.8864 +95.7442 50.7878 83.1457 +95.4461 51.5214 84.3467 +95.2683 52.3318 85.6734 +95.6844 53.4875 87.5654 +95.3933 54.2668 88.8412 +95.6188 55.3568 90.6256 +95.2848 56.1413 91.91 +95.5222 57.2808 93.7755 +94.9493 57.9506 94.8721 +94.6826 58.8196 96.2947 +94.7757 59.932 98.1158 +94.6498 60.9282 99.7467 +94.8712 62.1719 101.783 +94.935 63.3406 103.696 +94.2363 64.0183 104.806 +94.2442 65.1938 106.73 +94.7553 66.7513 109.28 +94.2808 67.6437 110.741 +94.4804 69.0465 113.037 +94.3533 70.2423 114.995 +94.7598 71.8713 117.662 +94.5036 73.0342 119.566 +93.7741 73.8526 120.906 +94.0592 75.5004 123.603 +93.8662 76.8046 125.738 +94.1137 78.5108 128.531 +93.9452 79.914 130.829 +93.5309 81.1427 132.84 +93.5901 82.8222 135.59 +93.65 84.5544 138.426 +93.6097 86.2475 141.197 +93.5198 87.9464 143.979 +93.38 89.6514 146.77 +93.2371 91.4071 149.644 +93.3656 93.4927 153.059 +93.4766 95.632 156.561 +93.4338 97.6864 159.924 +92.9785 99.3727 162.685 +92.8612 101.486 166.145 +92.9338 103.889 170.078 +92.7254 106.062 173.636 +93.0207 108.909 178.297 +92.7092 111.144 181.956 +92.9549 114.153 186.882 +91.7675 115.486 189.065 +114.705 147.992 242.281 +114.715 151.806 248.525 +114.714 155.777 255.026 +113.537 158.295 259.148 +111.499 159.687 261.427 +107.519 158.272 259.11 +105.484 159.691 261.434 +101.347 157.892 258.487 +99.5035 159.635 261.342 +95.444 157.795 258.329 +93.325 159.12 260.499 +90.4305 159.139 260.529 +90.8225 165.106 270.299 +90.4602 170.034 278.366 +89.3702 173.863 284.634 +86.8318 175.02 286.529 +86.608 181.073 296.438 +89.0361 193.321 316.49 +87.0111 196.461 321.63 +82.8747 194.865 319.017 +80.1292 196.509 321.709 +75.8396 194.312 318.112 +73.2897 196.543 321.764 +69.1402 194.46 318.354 +66.4031 196.307 321.378 +62.355 194.237 317.989 +59.5702 196.058 320.97 +55.6502 194.104 317.771 +52.8719 196.105 321.047 +49.0778 194.322 318.129 +46.0788 195.625 320.261 +42.3493 193.755 317.2 +39.4386 195.6 320.22 +35.7984 193.8 317.273 +32.8316 195.617 320.249 +29.2417 193.68 317.077 +26.2633 195.782 320.518 +22.7406 193.813 317.294 +19.694 195.887 320.69 +16.2133 193.573 316.903 +13.0734 195.151 319.485 +9.71427 193.379 316.584 +6.5464 195.5 320.058 +3.23318 193.125 316.169 +2.57572e-14 195.165 319.509 +-3.23405 193.177 316.254 +-6.53418 195.136 319.46 +-9.68285 192.753 315.56 +-13.0629 194.994 319.229 +-16.1348 192.636 315.368 +-19.5946 194.898 319.071 +-22.6429 192.98 315.931 +-26.1098 194.638 318.645 +-29.1005 192.745 315.547 +-32.6224 194.371 318.208 +-35.6163 192.814 315.659 +-39.2086 194.459 318.352 +-42.0663 192.46 315.081 +-45.7985 194.435 318.313 +-48.6341 192.565 315.252 +-52.3152 194.04 317.667 +-55.059 192.042 314.395 +-58.9601 194.05 317.683 +-61.7773 192.437 315.043 +-65.448 193.484 316.756 +-68.229 191.897 314.159 +-72.2403 193.729 317.157 +-74.8228 191.707 313.847 +-78.9441 193.603 316.951 +-81.4029 191.404 313.352 +-85.5714 193.211 316.309 +-88.1723 191.445 313.419 +-92.4867 193.364 316.559 +-95.0192 191.523 313.545 +-99.3606 193.299 316.453 +-101.845 191.433 313.399 +-106.451 193.518 316.811 +-108.835 191.527 313.552 +-113.265 193.118 316.157 +-115.712 191.303 313.185 +-120.455 193.248 316.37 +-122.86 191.407 313.357 +-127.72 193.355 316.545 +-129.851 191.145 312.927 +-136.158 195.005 319.246 +-138.787 193.499 316.781 +-143.562 194.953 319.161 +-143.045 189.297 309.901 +-142.763 184.192 301.545 +-142.397 179.202 293.375 +-142.265 174.708 286.018 +-142.991 171.425 280.644 +-143.375 167.864 274.813 +-145.474 166.398 272.414 +-149.649 167.29 273.873 +-174.4 190.597 312.031 +-111.653 119.332 195.36 +-110.836 115.88 189.71 +-111.545 114.117 186.824 +-112.944 113.097 185.154 +-113.988 111.751 182.95 +-116.284 111.64 182.769 +-117.566 110.56 181 +-120.201 110.747 181.306 +-121.45 109.654 179.517 +-125.768 111.298 182.209 +-130.305 113.045 185.068 +-440.153 374.413 612.959 +-440.734 367.667 601.914 +-441.607 361.339 591.555 +-442.737 355.382 581.802 +-444.475 350.051 573.075 +-445.677 344.429 563.871 +-447.121 339.123 555.185 +-448.193 333.66 546.241 +-449.464 328.468 537.742 +-451.36 323.839 530.163 +-453.136 319.217 522.597 +-454.009 314.063 514.159 +-456.023 309.794 507.17 +-457.129 304.997 499.316 +-458.918 300.744 492.353 +-458.145 294.917 482.815 +-461.22 291.656 477.475 +-463.643 288.029 471.538 +-466.628 284.8 466.251 +-467.18 280.148 458.636 +-469.864 276.841 453.222 +-471.068 272.717 446.471 +-473.521 269.373 440.996 +-474.262 265.111 434.019 +-477.03 262.036 428.985 +-478.203 258.132 422.593 +-480.824 255.055 417.555 +-482.247 251.383 411.544 +-484.939 248.412 406.681 +-486.274 244.785 400.742 +-488.467 241.631 395.578 +-489.276 237.835 389.365 +-2415.69 1153.88 1889.04 +-493.82 231.778 379.448 +-143.2 66.0419 108.118 +-142.867 64.7382 105.984 +-143.489 63.8827 104.584 +-142.484 62.3226 102.029 +-142.828 61.3739 100.476 +-142.995 60.361 98.8182 +-147.052 60.974 99.8218 +-136.483 55.5851 90.9994 +-135.663 54.2637 88.8361 +-501.543 197.011 322.53 +-503.375 194.163 317.869 +-505.312 191.376 313.306 +-507.601 188.737 308.985 +-509.267 185.882 304.312 +-514.172 184.209 301.571 +-513.672 180.609 295.679 +-517.51 178.553 292.313 +-517.46 175.17 286.775 +-521.132 173.062 283.323 +-523.246 170.436 279.024 +-525.312 167.804 274.715 +-527.586 165.247 270.529 +-530.074 162.762 266.46 +-533.039 160.422 262.63 +-380.52 112.224 183.724 +-381.247 110.16 180.346 +-2879.44 814.966 1334.2 +-380.727 105.525 172.757 +-380.882 103.356 169.206 +-381.351 101.288 165.82 +-379.452 98.6189 161.451 +-379.471 96.4775 157.945 +-381.884 94.9497 155.444 +-382.099 92.8787 152.053 +-381.456 90.6179 148.352 +-381.497 88.5401 144.951 +-380.855 86.3231 141.321 +-381.825 84.4856 138.313 +-382.394 82.5663 135.171 +-380.516 80.1403 131.199 +-381.006 78.234 128.078 +-381.928 76.4231 125.114 +-381.507 74.3541 121.727 +-381.609 72.4019 118.531 +-381.864 70.4894 115.4 +-381.328 68.4444 112.052 +-381.226 66.4917 108.855 +-380.993 64.5296 105.643 +-381.01 62.6218 102.519 +-381.183 60.7488 99.4531 +-380.556 58.7612 96.1991 +-379.794 56.7689 92.9375 +-380.441 54.9976 90.0376 +-382.12 53.3728 87.3776 +-380.385 51.28 83.9515 +-380.453 49.4469 80.9504 +-380.683 47.6413 77.9945 +-381.563 45.9195 75.1757 +-381.829 44.1257 72.2389 +-381.673 42.2895 69.233 +-381.779 40.4893 66.2859 +-380.773 38.582 63.1634 +-381.798 36.8865 60.3876 +-381.022 35.0216 57.3345 +-381.101 33.244 54.4244 +-380.951 31.4521 51.4908 +-382.65 29.8104 48.8032 +-380.758 27.8945 45.6666 +-380.616 26.1206 42.7625 +-381.336 24.4072 39.9575 +-380.339 22.589 36.9809 +-380.604 20.8526 34.1381 +-380.341 19.0905 31.2534 +-381.343 17.3914 28.4718 +-381.52 15.652 25.6241 +-379.872 13.8468 22.6688 +-381.188 12.1532 19.8962 +-379.879 10.3779 16.9898 +-380.637 8.66307 14.1825 +-3274.5 59.6067 97.5833 +-3275.38 44.7091 73.1941 +-146.978 1.33733 2.18937 +-145.894 0.663687 1.08653 +96.6 3.55271e-15 -1.7053e-13 +96.5963 0.445898 0.715399 +96.5853 0.891761 1.43074 +96.5669 1.33756 2.14598 +96.5412 1.78325 2.86105 +96.5081 2.22881 3.5759 +96.4676 2.6742 4.29048 +96.4198 3.11939 5.00474 +97.2625 3.59754 5.7719 +96.4019 4.01316 6.43871 +97.129 4.49487 7.21157 +97.1507 4.94811 7.93875 +97.0653 5.39637 8.65794 +96.9726 5.84418 9.37641 +96.8725 6.29157 10.0942 +96.765 6.73854 10.8113 +96.6502 7.18492 11.5275 +96.2312 7.60734 12.2052 +96.1021 8.05124 12.9174 +95.9656 8.4945 13.6286 +95.7233 8.92798 14.324 +95.5724 9.36949 15.0324 +96.2976 9.90114 15.8854 +96.2286 10.3558 16.6148 +96.0541 10.7996 17.3268 +96.7509 11.3456 18.2029 +96.5601 11.7917 18.9186 +95.4867 12.1259 19.4547 +96.1563 12.6814 20.346 +96.0402 13.138 21.0786 +96.5926 13.6903 21.9647 +96.363 14.1356 22.6792 +96.1262 14.5799 23.392 +95.7861 15.008 24.0789 +96.3955 15.5888 25.0107 +96.0393 16.0173 25.6981 +96.7224 16.6234 26.6706 +96.4445 17.0692 27.3859 +96.0647 17.4965 28.0714 +96.715 18.1159 29.0651 +96.2245 18.5254 29.7222 +97.0392 19.1912 30.7903 +96.7189 19.6384 31.5078 +97.1356 20.2391 32.4717 +96.8907 20.7066 33.2217 +96.5454 21.153 33.9379 +97.0212 21.7839 34.9501 +96.7498 22.252 35.7011 +96.4704 22.7192 36.4508 +96.8199 23.3392 37.4454 +96.5218 23.8075 38.1968 +96.9377 24.4571 39.239 +96.5305 24.9037 39.9554 +96.8319 25.5371 40.9717 +96.496 26.0071 41.7258 +96.7729 26.6469 42.7523 +96.3296 27.0926 43.4673 +96.582 27.7381 44.503 +96.1207 28.1829 45.2167 +96.3484 28.8339 46.2611 +96.735 29.542 47.3972 +96.1578 29.9606 48.0687 +96.3456 30.6212 49.1287 +96.5189 31.2858 50.195 +96.7623 31.9825 51.3127 +96.1466 32.3995 51.9818 +96.3632 33.1013 53.1078 +95.8135 33.5449 53.8194 +96.7487 34.5183 55.3811 +96.0931 34.9336 56.0475 +96.3323 35.6792 57.2437 +96.3099 36.3375 58.3 +95.7067 36.7807 59.011 +95.8197 37.5043 60.1719 +95.9161 38.2316 61.3388 +95.9958 38.9627 62.5118 +95.9009 39.6323 63.5861 +95.9478 40.3698 64.7693 +95.9775 41.1108 65.9581 +95.9129 41.8214 67.0982 +95.9088 42.5685 68.2969 +95.8872 43.3188 69.5007 +95.7726 44.0374 70.6535 +95.7165 44.7932 71.8662 +95.6427 45.5518 73.0834 +95.5511 46.3132 74.305 +95.4417 47.0772 75.5307 +95.822 48.0985 77.1692 +95.6722 48.8697 78.4066 +95.5042 49.6431 79.6475 +95.3887 50.4561 80.9518 +95.7442 51.5358 82.6841 +95.5155 52.3183 83.9394 +95.1994 53.064 85.1359 +95.0024 53.8886 86.4589 +95.3933 55.0661 88.348 +95.5519 56.133 90.0597 +95.2185 56.9285 91.3361 +95.4566 58.0843 93.1904 +95.0142 58.8444 94.4099 +94.7469 59.7267 95.8255 +94.7757 60.8147 97.5712 +94.7757 61.9075 99.3245 +94.7467 63.0051 101.085 +94.8119 64.1905 102.987 +94.7842 65.3388 104.83 +94.2442 66.154 106.137 +94.6363 67.6498 108.537 +94.1632 68.5549 109.989 +94.4804 70.0634 112.41 +94.4107 71.3197 114.425 +94.3066 72.5813 116.449 +93.9444 73.6714 118.198 +93.8293 74.9848 120.306 +94.0047 76.5685 122.847 +93.8125 77.8914 124.969 +94.1667 79.7121 127.89 +93.893 81.0456 130.03 +93.4794 82.2923 132.03 +93.5901 84.0421 134.837 +93.6 85.7538 137.583 +93.6097 87.5178 140.414 +93.5198 89.2417 143.179 +93.8094 91.3898 146.626 +93.2371 92.7534 148.814 +93.3656 94.8697 152.209 +93.4766 97.0405 155.692 +93.4338 99.1252 159.036 +92.9347 100.789 161.705 +93.2057 103.363 165.835 +92.976 105.467 169.211 +93.0157 107.961 173.213 +92.6546 110.078 176.609 +92.749 112.83 181.024 +92.6033 115.396 185.142 +92.8773 118.605 190.29 +98.3342 128.74 206.55 +114.715 154.042 247.145 +114.785 158.171 253.769 +111.681 158.001 253.496 +109.583 159.256 255.51 +105.683 157.861 253.272 +103.4 158.843 254.847 +99.9192 157.959 253.43 +97.5567 158.817 254.807 +94.0608 157.799 253.172 +91.717 158.682 254.59 +90.9417 162.396 260.548 +90.6571 167.233 268.309 +90.193 172.029 276.003 +88.1538 174.022 279.201 +85.7301 175.345 281.323 +89.5837 190.053 304.921 +88.289 194.522 312.092 +85.5939 196.108 314.636 +81.5977 194.688 312.358 +78.7777 196.04 314.527 +74.763 194.375 311.856 +71.8968 195.647 313.897 +68.065 194.256 311.664 +65.1354 195.396 313.493 +61.4637 194.281 311.704 +58.5534 195.549 313.74 +54.7929 193.929 311.139 +51.842 195.117 313.046 +48.2816 193.985 311.23 +45.2866 195.094 313.008 +41.6814 193.508 310.465 +38.7592 195.061 312.956 +35.2137 193.443 310.359 +32.2215 194.809 312.552 +28.7945 193.527 310.495 +25.7541 194.814 312.559 +22.3865 193.605 310.62 +19.3172 194.969 312.808 +15.9778 193.571 310.565 +12.8535 194.695 312.368 +9.57815 193.478 310.416 +6.419 194.519 312.086 +3.18693 193.166 309.916 +2.30926e-14 194.707 312.389 +-3.18868 193.272 310.085 +-6.41027 194.255 311.662 +-9.56767 193.266 310.076 +-12.8186 194.166 311.52 +-15.9385 193.095 309.802 +-19.2125 193.912 311.113 +-22.3132 192.971 309.603 +-25.6704 194.181 311.543 +-28.669 192.684 309.142 +-32.0907 194.019 311.285 +-35.1083 192.863 309.43 +-38.4769 193.641 310.678 +-41.4663 192.51 308.862 +-44.982 193.781 310.903 +-47.8117 192.098 308.201 +-51.3688 193.336 310.189 +-54.1574 191.679 307.53 +-57.8808 193.303 310.135 +-60.787 192.141 308.272 +-64.4235 193.26 310.067 +-67.2631 191.967 307.992 +-70.9046 192.948 309.565 +-73.5867 191.317 306.949 +-77.4679 192.781 309.298 +-80.2558 191.487 307.221 +-84.2217 192.964 309.591 +-86.8183 191.282 306.893 +-90.8175 192.67 309.12 +-93.567 191.373 307.04 +-97.5489 192.569 308.958 +-100.241 191.194 306.752 +-104.604 192.961 309.587 +-107.131 191.305 306.929 +-111.306 192.573 308.964 +-113.937 191.144 306.671 +-118.415 192.774 309.287 +-121.21 191.618 307.432 +-125.409 192.652 309.091 +-128.048 191.268 306.87 +-132.328 192.31 308.542 +-136.581 193.227 310.014 +-141.376 194.812 312.556 +-144.548 194.103 311.419 +-142.763 186.905 299.871 +-142.397 181.841 291.746 +-142.265 177.282 284.431 +-142.314 173.126 277.763 +-143.944 171.012 274.372 +-146.967 170.582 273.682 +-151.255 171.575 275.275 +-172.463 191.256 306.852 +-111.828 121.279 194.581 +-110.969 117.729 188.884 +-111.818 116.081 186.241 +-113.359 115.185 184.803 +-114.363 113.77 182.533 +-116.713 113.703 182.425 +-118.391 112.975 181.257 +-120.398 112.562 180.595 +-122.45 112.186 179.99 +-127.494 114.487 183.683 +-438.709 386.207 619.63 +-440.466 380.198 609.99 +-441.211 373.485 599.22 +-442.09 367.062 588.915 +-443.227 361.015 579.213 +-445.027 355.647 570.601 +-446.683 350.291 562.007 +-448.141 344.903 553.362 +-449.11 339.268 544.322 +-450.219 333.866 535.655 +-451.889 328.994 527.837 +-453.671 324.302 520.31 +-454.972 319.365 512.389 +-456.571 314.735 504.96 +-458.237 310.239 497.748 +-465.828 309.768 496.992 +-460.348 300.7 482.443 +-458.294 294.074 471.813 +-464.864 293.041 470.155 +-466.499 288.914 463.533 +-468.426 285.033 457.307 +-470.659 281.394 451.468 +-472.005 277.284 444.875 +-473.791 273.496 438.798 +-475.216 269.558 432.479 +-477.649 266.241 427.158 +-479.523 262.657 421.406 +-481.875 259.377 416.145 +-483.52 255.759 410.34 +-485.367 252.294 404.78 +-487.569 249.051 399.578 +-489.7 245.808 394.375 +-490.592 241.987 388.244 +-493.239 239.071 383.565 +-141.718 67.4959 108.29 +-143.35 67.0844 107.63 +-142.489 65.5182 105.117 +-142.576 64.4116 103.342 +-142.484 63.2405 101.463 +-142.828 62.2778 99.9185 +-142.917 61.2167 98.2161 +-148.226 62.3656 100.059 +-498.102 205.847 330.261 +-133.839 54.3224 87.1548 +-138.164 55.0714 88.3565 +-503.857 197.212 316.407 +-506.445 194.63 312.265 +-508.334 191.793 307.713 +-510.414 189.045 303.304 +-510.629 185.633 297.83 +-522.128 186.286 298.878 +-517.343 181.125 290.597 +-518.885 178.24 285.968 +-521.638 175.781 282.024 +-524.009 173.199 277.88 +-527.102 170.856 274.122 +-528.358 167.926 269.421 +-531.367 165.562 265.627 +-2837.53 866.556 1390.3 +-384.262 114.997 184.501 +-382.384 112.116 179.879 +-540.648 155.273 249.12 +-542.483 152.573 244.788 +-383.189 105.513 169.285 +-379.925 102.396 164.284 +-381.153 100.52 161.274 +-381.718 98.4782 157.999 +-380.801 96.0752 154.143 +-381.012 93.9784 150.779 +-381.456 91.9526 147.529 +-381.588 89.8658 144.181 +-380.121 87.4258 140.266 +-380.997 85.5443 137.247 +-380.638 83.3978 133.803 +-382 81.6375 130.979 +-381.564 79.5026 127.554 +-381.181 77.3974 124.176 +-381.788 75.5053 121.141 +-381.045 73.3599 117.699 +-381.864 71.5276 114.759 +-381.895 69.5557 111.595 +-382.459 67.6895 108.601 +-382.705 65.7742 105.528 +-381.01 63.5441 101.95 +-380.705 61.5664 98.7771 +-380.843 59.6716 95.7372 +-380.948 57.7801 92.7024 +-380.827 55.8642 89.6286 +-379.995 53.8574 86.4088 +-381.837 52.234 83.8043 +-381.714 50.3415 80.7679 +-381.655 48.4665 77.7596 +-380.881 46.5126 74.6248 +-381.439 44.7298 71.7645 +-381.478 42.8904 68.8134 +-381.779 41.0857 65.9179 +-381.558 39.2311 62.9424 +-381.208 37.3719 59.9595 +-380.431 35.4823 56.9278 +-381.594 33.7773 54.1923 +-380.161 31.8491 51.0987 +-381.266 30.14 48.3566 +-380.362 28.2759 45.3659 +-380.913 26.526 42.5583 +-381.237 24.7603 39.7254 +-381.134 22.9697 36.8525 +-381.797 21.2261 34.0551 +-381.038 19.4072 31.1369 +-381.244 17.6429 28.3063 +-380.623 15.8451 25.4219 +-381.768 14.1208 22.6554 +-382.485 12.3742 19.8532 +-379.779 10.528 16.8911 +-380.637 8.79066 14.1037 +-3274.5 60.4846 97.0416 +-3275.38 45.3676 72.7878 +-145.178 1.34041 2.15056 +-145.594 0.672076 1.07828 +96.4 3.55271e-15 -1.7053e-13 +96.3963 0.451397 0.709875 +96.5853 0.904632 1.42264 +96.5669 1.35686 2.13382 +96.3413 1.80524 2.83896 +96.3082 2.2563 3.54829 +96.4676 2.7128 4.26619 +96.4198 3.16441 4.9764 +96.3647 3.61578 5.68623 +96.3022 4.06687 6.39563 +97.129 4.55974 7.17073 +97.0511 5.01438 7.8857 +97.0653 5.47426 8.60891 +96.0784 5.87391 9.2374 +96.8725 6.38238 10.037 +96.765 6.8358 10.7501 +96.6502 7.28862 11.4622 +96.429 7.73297 12.161 +96.1021 8.16744 12.8442 +95.9656 8.6171 13.5514 +95.7233 9.05684 14.2429 +96.5556 9.60249 15.101 +96.2976 10.044 15.7954 +96.1306 10.4946 16.5039 +96.0541 10.9554 17.2287 +95.7746 11.3932 17.9171 +95.6831 11.8533 18.6407 +95.4867 12.3009 19.3446 +95.3801 12.7605 20.0674 +95.9434 13.3142 20.9381 +96.5926 13.8879 21.8403 +96.363 14.3396 22.5507 +96.1262 14.7903 23.2595 +96.649 15.3618 24.1582 +96.3955 15.8138 24.869 +96.0393 16.2484 25.5526 +96.7224 16.8633 26.5195 +96.4445 17.3156 27.2308 +96.1592 17.7666 27.94 +96.715 18.3774 28.9005 +96.2245 18.7928 29.5539 +97.0392 19.4682 30.616 +97.5592 20.0949 31.6016 +97.2286 20.551 32.3188 +96.8907 21.0054 33.0335 +97.2845 21.6226 34.0041 +97.1133 22.1192 34.7851 +96.6581 22.5518 35.4653 +96.4704 23.0472 36.2443 +96.0919 23.498 36.9533 +97.3375 24.3553 38.3015 +96.1253 24.6022 38.6898 +96.5305 25.2631 39.7292 +96.8319 25.9057 40.7397 +96.4069 26.3581 41.4512 +96.7729 27.0315 42.5102 +96.3296 27.4836 43.2212 +96.582 28.1385 44.251 +96.1207 28.5897 44.9606 +96.4354 29.2765 46.0406 +95.869 29.7001 46.7068 +96.761 30.5836 48.0963 +96.3456 31.0632 48.8504 +96.6041 31.7655 49.9549 +96.6775 32.4156 50.9774 +96.231 32.8959 51.7327 +96.3632 33.5791 52.807 +96.564 34.2956 53.9338 +96.0026 34.7464 54.6428 +96.1755 35.4682 55.7778 +96.3323 36.1942 56.9195 +95.74 36.6439 57.6268 +95.7876 37.3431 58.7264 +95.8197 38.0456 59.8311 +95.9161 38.7834 60.9914 +95.9164 39.4924 62.1064 +95.9009 40.2043 63.2259 +95.9478 40.9525 64.4025 +95.8998 41.6703 65.5314 +95.9901 42.4591 66.7719 +95.9088 43.1829 67.9101 +95.1268 43.5955 68.559 +95.8481 44.7082 70.3087 +95.7165 45.4397 71.4592 +95.5684 46.1734 72.613 +96.2147 47.3079 74.3972 +95.3685 47.7201 75.0453 +95.8945 48.8297 76.7903 +95.7441 49.6123 78.0211 +95.5042 50.3597 79.1964 +95.9544 51.4879 80.9706 +95.7442 52.2797 82.2158 +95.5155 53.0734 83.464 +95.1994 53.8299 84.6537 +95.1388 54.7447 86.0924 +95.3258 55.8211 87.7852 +94.9496 56.5842 88.9851 +95.2185 57.7502 90.8188 +94.9317 58.5985 92.1529 +95.0792 59.7345 93.9394 +94.6826 60.5474 95.2178 +94.712 61.6512 96.9536 +94.7127 62.7592 98.6961 +94.9335 64.0406 100.711 +94.8119 65.117 102.404 +94.845 66.3243 104.303 +94.6655 67.4087 106.008 +94.6363 68.6263 107.923 +94.2808 69.6307 109.502 +94.4223 71.0307 111.704 +94.468 72.3931 113.847 +94.3066 73.6289 115.79 +93.9444 74.7348 117.529 +93.7741 76.022 119.553 +93.8958 77.5835 122.009 +93.8125 79.0156 124.261 +94.1137 80.817 127.094 +93.893 82.2153 129.293 +93.4794 83.4801 131.282 +93.5901 85.2551 134.073 +93.6 86.9915 136.804 +93.5605 88.7343 139.545 +93.5198 90.5297 142.368 +93.38 92.2849 145.129 +93.1901 94.0449 147.896 +93.3656 96.239 151.347 +93.4312 98.3934 154.735 +93.3892 100.508 158.061 +92.9347 102.243 160.79 +93.2057 104.854 164.896 +92.9338 106.94 168.176 +93.0572 109.568 172.309 +93.0207 112.108 176.303 +92.6693 114.36 179.844 +92.6033 117.062 184.093 +93.1069 120.614 189.679 +93.277 123.881 194.818 +114.642 156.166 245.588 +114.104 159.502 250.835 +110.701 158.874 249.847 +108.044 159.285 250.495 +104.782 158.773 249.69 +102.196 159.258 250.452 +98.9039 158.611 249.434 +96.4442 159.272 250.474 +93.0083 158.285 248.922 +90.6352 159.073 250.161 +90.8281 164.534 258.749 +90.6571 169.647 266.789 +89.4447 173.064 272.163 +88.4126 177.052 278.435 +86.7817 180.057 283.161 +89.4869 192.587 302.866 +87.4486 195.452 307.371 +84.4916 196.376 308.824 +80.5372 194.931 306.552 +77.8006 196.403 308.867 +73.9655 195.077 306.782 +70.9237 195.785 307.895 +67.2631 194.738 306.247 +64.3714 195.891 308.061 +60.754 194.809 306.36 +57.7087 195.51 307.462 +54.2608 194.818 306.373 +51.2435 195.649 307.68 +47.8117 194.87 306.456 +44.7748 195.672 307.717 +41.2513 194.276 305.521 +38.2992 195.529 307.491 +34.9358 194.686 306.166 +31.9251 195.804 307.924 +28.4885 194.234 305.456 +25.4472 195.27 307.084 +22.1545 194.364 305.66 +19.0922 195.479 307.413 +15.812 194.328 305.603 +12.6895 194.984 306.636 +9.48129 194.285 305.536 +6.33871 194.859 306.438 +3.15464 193.969 305.038 +3.01981e-14 195.049 306.738 +-3.15552 194.022 305.123 +-6.32824 194.537 305.932 +-9.44464 193.534 304.355 +-12.686 194.931 306.551 +-15.7379 193.417 304.17 +-19.0294 194.836 306.402 +-22.0752 193.668 304.566 +-25.3425 194.467 305.822 +-28.3708 193.432 304.193 +-31.6898 194.36 305.654 +-34.7633 193.724 304.653 +-38.0065 194.034 305.141 +-41.0588 193.369 304.096 +-44.4214 194.128 305.289 +-47.368 193.061 303.611 +-50.8678 194.214 305.424 +-53.7435 192.96 303.452 +-57.1768 193.708 304.628 +-60.1599 192.904 303.363 +-63.6247 193.619 304.488 +-66.5889 192.785 303.177 +-70.1032 193.52 304.333 +-73.0484 192.658 302.977 +-76.5739 193.307 303.997 +-79.4983 192.417 302.598 +-83.2094 193.396 304.138 +-85.9779 192.165 302.201 +-89.7772 193.213 303.849 +-92.6907 192.317 302.441 +-96.4877 193.223 303.866 +-99.2791 192.092 302.087 +-103.143 193.012 303.534 +-106.279 192.522 302.763 +-109.99 193.044 303.583 +-112.885 192.112 302.118 +-116.778 192.851 303.281 +-119.783 192.094 302.09 +-123.846 192.997 303.51 +-126.947 192.359 302.507 +-131.233 193.472 304.257 +-134.585 193.151 303.753 +-139.548 195.069 306.768 +-142.789 194.508 305.886 +-143.287 190.299 299.268 +-142.397 184.466 290.094 +-142.343 179.939 282.975 +-142.712 176.116 276.963 +-144.554 174.216 273.975 +-148.004 174.265 274.051 +-153.537 176.678 277.846 +-170.913 192.273 302.372 +-111.565 122.741 193.024 +-111.192 119.669 188.193 +-112.363 118.33 186.088 +-113.359 116.848 183.757 +-114.88 115.933 182.319 +-117.142 115.769 182.06 +-118.73 114.934 180.747 +-121.185 114.934 180.747 +-123.6 114.873 180.651 +-127.95 116.556 183.297 +-439.43 392.425 617.133 +-440.466 385.686 606.536 +-441.529 379.149 596.256 +-442.574 372.768 586.221 +-443.717 366.631 576.57 +-445.027 360.781 567.369 +-446.683 355.347 558.824 +-448.311 350.014 550.437 +-449.454 344.429 541.654 +-450.742 339.078 533.239 +-452.124 333.916 525.121 +-454.147 329.328 517.906 +-455.454 324.317 510.026 +-457.667 320.044 503.305 +-458.852 315.14 495.594 +-467.633 315.457 496.092 +-477.402 316.341 497.483 +-466.881 303.908 477.93 +-461.264 294.969 463.873 +-465.265 292.308 459.689 +-468.229 289.025 454.525 +-470.659 285.455 448.911 +-472.272 281.446 442.607 +-474.129 277.641 436.623 +-476.171 273.998 430.893 +-477.925 270.24 424.983 +-479.523 266.448 419.02 +-482.296 263.35 414.149 +-483.732 259.564 408.195 +-486.009 256.274 403.02 +-487.569 252.646 397.315 +-489.7 249.356 392.142 +-491.25 245.809 386.564 +-493.681 242.739 381.734 +-141.123 68.183 107.226 +-142.676 67.7328 106.518 +-142.942 66.6752 104.854 +-142.652 65.3756 102.811 +-142.561 64.1881 100.943 +-143.214 63.3473 99.621 +-144.627 62.8435 98.8286 +-148.774 63.4997 99.8606 +-498.732 209.082 328.806 +-499.892 205.825 323.683 +-134.969 54.5746 85.8249 +-2633.84 1045.78 1644.6 +-507.173 197.723 310.943 +-508.822 194.748 306.264 +-2683.79 1008.36 1585.76 +-508.403 187.492 294.853 +-528.926 191.435 301.054 +-517.843 183.917 289.23 +-519.724 181.105 284.809 +-522.397 178.578 280.834 +-524.518 175.869 276.574 +-526.591 173.154 272.305 +-528.872 170.516 268.155 +-531.625 168.033 264.251 +-383.216 118.72 186.701 +-380.345 115.468 181.586 +-381.684 113.526 178.533 +-541.439 157.745 248.072 +-543.189 154.977 243.718 +-545.955 152.501 239.826 +-381.262 104.239 163.928 +-381.69 102.114 160.586 +-382.167 100.017 157.288 +-380.891 97.485 153.306 +-381.012 95.3349 149.925 +-380.273 92.9905 146.238 +-380.492 90.9011 142.952 +-380.397 88.752 139.573 +-381.917 86.9883 136.799 +-381.562 84.8065 133.368 +-381.165 82.6349 129.953 +-381.843 80.7091 126.924 +-382.021 78.6873 123.745 +-380.289 76.2941 119.981 +-382.173 74.6392 117.379 +-381.204 72.4344 113.911 +-382.179 70.6122 111.046 +-382.459 68.6665 107.986 +-380.993 66.4252 104.461 +-380.724 64.413 101.297 +-381.279 62.5494 98.3662 +-381.418 60.6241 95.3385 +-381.525 58.7026 92.3166 +-381.116 56.7135 89.1885 +-380.768 54.7458 86.0941 +-381.257 52.9073 83.2028 +-381.229 51.0032 80.2084 +-382.044 49.2161 77.3981 +-380.686 47.1598 74.1642 +-381.048 45.3289 71.285 +-381.086 43.4648 68.3535 +-381.975 41.7001 65.5782 +-381.558 39.7973 62.5859 +-381.208 37.9113 59.6199 +-381.81 36.1249 56.8105 +-381.101 34.2205 53.8157 +-381.544 32.4263 50.9941 +-382.057 30.6385 48.1825 +-381.352 28.7587 45.2264 +-380.417 26.8738 42.2622 +-380.84 25.0915 39.4593 +-381.234 23.3072 36.6533 +-381.101 21.4932 33.8005 +-380.54 19.6615 30.92 +-380.646 17.8695 28.1019 +-381.819 16.1243 25.3574 +-380.87 14.2909 22.4741 +-380.689 12.4938 19.648 +-380.278 10.6939 16.8174 +-380.637 8.91754 14.0239 +-3274.5 61.3576 96.492 +-3275.38 46.0224 72.3756 +-143.278 1.34197 2.1104 +-146.594 0.686461 1.07954 +95.7 0 -1.7053e-13 +96.4963 0.458257 0.706507 +96.5853 0.917427 1.41442 +96.5669 1.37605 2.1215 +96.5412 1.83458 2.82841 +96.5081 2.29296 3.53511 +96.4676 2.75117 4.24154 +96.4198 3.20917 4.94765 +96.3647 3.66692 5.65339 +96.4019 4.12866 6.36526 +96.332 4.5863 7.07081 +97.0511 5.08531 7.84015 +97.0653 5.55169 8.55918 +96.9726 6.01239 9.26945 +96.7732 6.46607 9.9689 +96.765 6.93248 10.688 +96.5511 7.38415 11.3843 +96.429 7.84234 12.0907 +96.2008 8.29145 12.7831 +96.0642 8.74796 13.487 +96.6096 9.26999 14.2918 +95.5724 9.63916 14.8609 +96.2976 10.1861 15.7042 +96.2286 10.6538 16.4253 +96.0541 11.1104 17.1292 +95.8723 11.5661 17.8318 +96.5601 12.1311 18.7028 +96.3619 12.5892 19.4091 +96.3504 13.0726 20.1544 +95.9434 13.5025 20.8171 +96.5926 14.0843 21.7142 +96.363 14.5425 22.4205 +96.1262 14.9995 23.1251 +96.649 15.5791 24.0186 +96.3955 16.0375 24.7254 +96.1347 16.4946 25.4301 +96.7224 17.1018 26.3663 +96.4445 17.5605 27.0735 +96.9157 18.1595 27.997 +96.6208 18.6191 28.7056 +96.3185 19.0772 29.4119 +97.0392 19.7435 30.4391 +97.4658 20.3596 31.3889 +97.2286 20.8416 32.1321 +96.8907 21.3025 32.8427 +96.453 21.741 33.5187 +97.0212 22.4109 34.5514 +96.7498 22.8924 35.2938 +96.4704 23.3731 36.035 +96.9109 24.0334 37.053 +96.5218 24.4927 37.7611 +96.9377 25.161 38.7914 +96.4406 25.5965 39.4628 +96.8319 26.2721 40.5043 +96.496 26.7556 41.2498 +96.7729 27.4139 42.2647 +96.2413 27.8468 42.9322 +95.8789 28.3287 43.6751 +96.2082 29.0204 44.7416 +96.4354 29.6905 45.7747 +96.735 30.3923 46.8565 +96.244 30.8504 47.5629 +96.3456 31.5025 48.5683 +96.6041 32.2148 49.6663 +96.6775 32.8741 50.6829 +96.1466 33.332 51.3888 +96.3632 34.054 52.502 +95.8135 34.5104 53.2055 +96.0026 35.2379 54.3271 +96.1755 35.9698 55.4556 +96.2504 36.6749 56.5426 +96.3099 37.3834 57.6349 +95.7067 37.8393 58.3378 +95.8197 38.5837 59.4855 +95.9161 39.332 60.6391 +95.9958 40.0841 61.7987 +95.9797 40.8065 62.9124 +95.9478 41.5317 64.0305 +95.8998 42.2597 65.1529 +95.9129 43.025 66.3328 +95.8322 43.7587 67.4639 +95.8872 44.5655 68.7079 +95.7726 45.3048 69.8476 +95.7165 46.0824 71.0464 +95.5684 46.8265 72.1936 +95.5511 47.6462 73.4573 +95.4417 48.4321 74.6691 +95.3867 49.2581 75.9425 +95.6722 50.2762 77.5122 +95.5042 51.0719 78.7389 +95.3887 51.9083 80.0283 +95.7442 53.0191 81.7409 +95.585 53.8632 83.0423 +95.2683 54.631 84.226 +95.6162 55.7977 86.0247 +95.3258 56.6107 87.2781 +95.6188 57.7888 89.0945 +95.2185 58.567 90.2942 +95.5222 59.7974 92.1911 +95.0792 60.5793 93.3967 +94.6183 61.3624 94.604 +94.7757 62.565 96.4582 +94.7757 63.6893 98.1915 +94.7467 64.8185 99.9323 +94.2578 65.6516 101.217 +94.7842 67.2194 103.634 +94.2442 68.058 104.927 +94.101 69.2029 106.692 +94.6922 70.9241 109.346 +93.9577 71.6811 110.513 +94.4107 73.3724 113.12 +94.3066 74.6703 115.121 +94.3358 76.108 117.338 +93.8293 77.143 118.933 +94.0047 78.7723 121.445 +93.8662 80.1789 123.614 +94.1137 81.96 126.36 +93.8407 83.3319 128.475 +93.4794 84.6608 130.524 +93.5901 86.4609 133.299 +93.6 88.2219 136.014 +93.6097 90.0367 138.812 +93.5198 91.8102 141.546 +93.4754 93.6854 144.437 +93.1901 95.3751 147.042 +93.3194 97.5518 150.398 +93.4312 99.7851 153.841 +93.3892 101.93 157.148 +92.9347 103.69 159.861 +93.2487 106.386 164.019 +92.9338 108.453 167.204 +92.6839 110.672 170.627 +92.736 113.345 174.748 +92.8288 116.177 179.114 +92.6033 118.718 183.03 +93.1069 122.32 188.584 +92.2281 124.221 191.514 +114.861 158.678 244.638 +113.029 160.233 247.036 +109.755 159.745 246.282 +106.915 159.851 246.446 +103.747 159.429 245.796 +101.447 160.327 247.181 +98.0471 159.461 245.845 +95.3626 159.714 246.235 +92.4069 159.486 245.883 +90.5475 161.168 248.476 +90.8281 166.861 257.254 +90.602 171.942 265.087 +88.8033 174.253 268.65 +87.5844 177.874 274.234 +89.1603 187.609 289.241 +89.4143 195.153 300.873 +86.6082 196.311 302.658 +83.6593 197.192 304.016 +79.8662 196.041 302.242 +76.8857 196.839 303.472 +73.2478 195.917 302.05 +70.2559 196.684 303.233 +66.7529 195.994 302.169 +63.7636 196.786 303.389 +60.2919 196.061 302.273 +57.2863 196.824 303.448 +53.8617 196.12 302.363 +50.7147 196.368 302.746 +47.3157 195.576 301.525 +44.2995 196.334 302.693 +40.9456 195.563 301.505 +37.902 196.238 302.545 +34.5907 195.489 301.39 +31.5155 196.025 302.217 +28.2139 195.082 300.763 +25.196 196.078 302.298 +21.9408 195.212 300.964 +18.8985 196.233 302.537 +15.6724 195.336 301.155 +12.5673 195.839 301.93 +9.38444 195.02 300.668 +6.28985 196.091 302.319 +3.12323 194.753 300.256 +2.22045e-14 195.795 301.862 +-3.12323 194.753 300.256 +-6.28112 195.819 301.899 +-9.37135 194.748 300.248 +-12.5603 195.73 301.762 +-15.6245 194.738 300.233 +-18.8409 195.635 301.616 +-21.8676 194.56 299.959 +-25.1054 195.372 301.21 +-28.0962 194.269 299.509 +-31.3674 195.104 300.796 +-34.3224 193.972 299.052 +-37.6512 194.939 300.542 +-40.64 194.103 299.254 +-43.9826 194.929 300.528 +-47.0155 194.335 299.612 +-50.3667 195.021 300.669 +-53.2114 193.752 298.712 +-56.7388 194.943 300.549 +-59.5492 193.646 298.549 +-62.9822 194.374 299.672 +-65.9146 193.533 298.374 +-69.5499 194.708 300.186 +-72.3506 193.517 298.351 +-75.8046 194.071 299.205 +-78.6974 193.172 297.819 +-82.4221 194.276 299.52 +-85.1142 192.925 297.437 +-88.9305 194.097 299.245 +-91.7142 192.982 297.526 +-95.5819 194.116 299.274 +-98.5842 193.445 298.24 +-102.399 194.33 299.604 +-105.284 193.419 298.199 +-108.908 193.849 298.862 +-111.802 192.961 297.492 +-115.912 194.13 299.295 +-118.767 193.16 297.799 +-122.609 193.771 298.742 +-125.612 193.028 297.596 +-129.728 193.958 299.03 +-132.659 193.08 297.676 +-138.402 196.202 302.49 +-141.616 195.638 301.621 +-142.912 192.487 296.762 +-142.779 187.577 289.192 +-142.226 182.334 281.109 +-143.111 179.106 276.133 +-145.042 177.276 273.312 +-149.082 178.017 274.453 +-158.947 185.489 285.973 +-1410.57 1609.3 2481.11 +-111.259 124.134 191.381 +-111.46 121.653 187.556 +-112.363 120.004 185.013 +-113.729 118.887 183.291 +-115.255 117.958 181.859 +-117.429 117.693 181.45 +-118.972 116.798 180.07 +-121.382 116.749 179.995 +-124.3 117.158 180.625 +-128.762 118.954 183.395 +-439.585 398.115 613.784 +-440.623 391.28 603.246 +-441.529 384.512 592.812 +-442.789 378.224 583.117 +-444.262 372.273 573.943 +-445.744 366.473 565.002 +-447.354 360.914 556.431 +-448.48 355.098 547.465 +-449.454 349.3 538.525 +-451.613 344.539 531.184 +-452.771 339.123 522.835 +-454.504 334.248 515.319 +-455.454 328.904 507.08 +-457.971 324.786 500.731 +-459.714 320.198 493.657 +-470.808 322.091 496.576 +-479.29 322.084 496.565 +-488.508 322.483 497.181 +-460.75 298.808 460.68 +-463.121 295.077 454.928 +-469.541 293.935 453.167 +-471.785 290.185 447.386 +-472.607 285.629 440.362 +-474.737 281.93 434.658 +-476.512 278.073 428.712 +-478.406 274.338 422.955 +-480.148 270.569 417.143 +-482.506 267.192 411.936 +-484.863 263.851 406.786 +-486.651 260.241 401.221 +-488 256.446 395.37 +-490.571 253.333 390.569 +-491.835 249.583 384.789 +-140.967 70.2929 108.372 +-142.312 69.7302 107.505 +-142.451 68.5826 105.735 +-143.395 67.8321 104.579 +-142.88 66.4064 102.38 +-142.408 65.0258 100.252 +-142.828 64.0702 98.7787 +-147.58 65.0334 100.264 +-148.069 64.0931 98.814 +-496.92 211.269 325.719 +-501.399 209.365 322.783 +-134.73 55.2481 85.1774 +-134.887 54.315 83.7388 +-507.415 200.616 309.294 +-511.509 198.546 306.104 +-524.503 199.855 308.121 +-513.843 192.178 296.286 +-529.838 194.478 299.831 +-518.677 186.818 288.023 +-520.311 183.874 283.483 +-523.24 181.396 279.663 +-525.62 178.731 275.555 +-528.125 176.115 271.521 +-529.387 173.096 266.867 +-532.487 170.686 263.151 +-382.523 120.181 185.287 +-381.39 117.422 181.033 +-381.334 115.026 177.339 +-541.527 160.001 246.678 +-544.514 157.552 242.901 +-547.197 155.01 238.983 +-383.4 106.306 163.895 +-380.258 103.17 159.06 +-379.92 100.835 155.46 +-382.155 99.1914 152.926 +-381.827 96.8901 149.378 +-382.548 94.8701 146.264 +-382.319 92.6292 142.809 +-380.305 89.9856 138.733 +-380.997 88.0064 135.682 +-382.024 86.1105 132.759 +-381.165 83.8037 129.202 +-381.843 81.8507 126.191 +-381.928 79.7806 123 +-382.35 77.7927 119.935 +-381.797 75.6204 116.586 +-381.581 73.5318 113.366 +-381.895 71.5576 110.322 +-381.795 69.5169 107.176 +-381.183 67.3984 103.91 +-380.533 65.2914 100.661 +-380.609 63.3225 97.626 +-381.514 61.4974 94.8121 +-380.371 59.3533 91.5065 +-381.212 57.5303 88.696 +-381.348 55.605 85.7277 +-380.385 53.533 82.5332 +-380.744 51.6588 79.6437 +-380.975 49.7725 76.7355 +-381.174 47.888 73.8302 +-380.658 45.9229 70.8006 +-382.064 44.1927 68.1331 +-380.897 42.1706 65.0155 +-382.147 40.4225 62.3203 +-380.913 38.4178 59.2297 +-380.628 36.5224 56.3075 +-380.706 34.6686 53.4495 +-380.853 32.8253 50.6076 +-381.365 31.0155 47.8174 +-380.857 29.1276 44.9068 +-380.616 27.2681 42.04 +-381.237 25.4729 39.2722 +-380.439 23.5876 36.3656 +-379.708 21.7175 33.4825 +-380.54 19.9396 30.7414 +-380.048 18.0938 27.8957 +-380.922 16.314 25.1517 +-381.768 14.5272 22.397 +-381.287 12.6905 19.5652 +-380.278 10.8452 16.7203 +-380.238 9.03414 13.9282 +-3274.5 62.2255 95.9346 +-3275.38 46.6734 71.9575 +-148.277 1.40843 2.17142 +-146.694 0.696644 1.07403 +96.6 3.55271e-15 -1.7053e-13 +96.4963 0.464612 0.702344 +96.5853 0.93015 1.40609 +96.5669 1.39514 2.109 +96.5412 1.86002 2.81175 +96.5081 2.32476 3.51428 +96.5675 2.79221 4.22092 +96.4198 3.25367 4.9185 +96.4644 3.72162 5.62589 +97.1994 4.22055 6.38011 +96.332 4.6499 7.02915 +97.0511 5.15583 7.79395 +97.0653 5.62868 8.50875 +96.0784 6.0396 9.12993 +95.9792 6.50195 9.82885 +95.8727 6.96379 10.527 +96.5511 7.48655 11.3173 +96.429 7.9511 12.0195 +96.2996 8.4151 12.7209 +96.0642 8.86928 13.4075 +95.7233 9.31231 14.0772 +95.4741 9.76279 14.7582 +96.2976 10.3274 15.6117 +96.1306 10.7906 16.3119 +96.0541 11.2645 17.0283 +95.8723 11.7265 17.7268 +96.5601 12.2993 18.5926 +96.3619 12.7638 19.2947 +96.1563 13.2273 19.9954 +97.0084 13.8417 20.9242 +96.5926 14.2796 21.5862 +96.363 14.7441 22.2884 +96.1262 15.2075 22.9889 +96.7449 15.8108 23.9008 +96.3955 16.2599 24.5797 +96.23 16.7399 25.3054 +95.8665 17.1856 25.979 +96.3497 17.7866 26.8875 +96.0647 18.2497 27.5877 +96.6208 18.8773 28.5364 +96.3185 19.3418 29.2386 +95.9152 19.7854 29.9092 +96.7189 20.4838 30.9649 +96.3913 20.9486 31.6676 +96.798 21.5773 32.6179 +96.5454 22.0636 33.3531 +97.0212 22.7217 34.3478 +96.7498 23.2099 35.0859 +96.4704 23.6973 35.8226 +96.8199 24.3439 36.8001 +96.5218 24.8324 37.5386 +96.1253 25.2962 38.2397 +96.5305 25.9757 39.2669 +96.116 26.4394 39.9679 +96.4069 27.1016 40.9689 +96.7729 27.794 42.0156 +96.3296 28.2589 42.7183 +96.582 28.9322 43.7361 +96.1207 29.3961 44.4375 +96.4354 30.1023 45.505 +96.6484 30.7861 46.5387 +96.244 31.2783 47.2827 +96.3456 31.9394 48.2821 +96.4336 32.6038 49.2865 +96.6775 33.33 50.3843 +96.1466 33.7942 51.086 +96.3632 34.5263 52.1926 +96.564 35.263 53.3063 +96.7487 36.0042 54.4268 +96.1755 36.4687 55.1289 +96.3323 37.2152 56.2573 +96.3099 37.9018 57.2953 +95.7067 38.3641 57.9941 +95.8197 39.1188 59.135 +95.9161 39.8774 60.2818 +95.9958 40.64 61.4345 +95.8221 41.3044 62.439 +95.9478 42.1077 63.6532 +95.2781 42.568 64.3491 +95.9129 43.6217 65.942 +95.9088 44.401 67.12 +95.8872 45.1836 68.303 +95.7726 45.9331 69.436 +95.6416 46.6849 70.5726 +95.5684 47.4759 71.7682 +95.5511 48.3069 73.0245 +96.0999 49.4424 74.741 +95.3142 49.9032 75.4376 +95.6722 50.9735 77.0555 +95.5756 51.8188 78.3334 +95.3887 52.6281 79.5568 +95.7442 53.7544 81.2593 +95.5155 54.5705 82.493 +95.1994 55.3483 83.6688 +95.0706 56.2487 85.0299 +95.3933 57.4366 86.8256 +95.0165 58.2217 88.0124 +95.2848 59.4206 89.8248 +94.8661 60.2101 91.0182 +95.1441 61.4614 92.9098 +95.2611 62.636 94.6855 +94.8393 63.4752 95.954 +94.8386 64.6156 97.678 +94.7467 65.7174 99.3435 +94.8119 66.9538 101.213 +94.2363 67.7577 102.428 +94.2442 69.0018 104.308 +94.5173 70.4732 106.533 +94.1632 71.5061 108.094 +94.19 72.855 110.133 +94.5828 74.5256 112.659 +94.4766 75.842 114.649 +93.8885 76.7971 116.092 +94.1053 78.4429 118.58 +93.9502 79.8183 120.66 +93.9737 81.3841 123.027 +93.6897 82.7226 125.05 +93.8407 84.4875 127.718 +93.9944 86.3077 130.469 +93.6408 87.708 132.586 +93.65 89.4933 135.285 +93.6097 91.2853 137.994 +93.5683 93.1319 140.785 +93.4277 94.9361 143.513 +93.1901 96.6977 146.176 +93.3656 98.9537 149.586 +93.4312 101.169 152.935 +93.4784 103.442 156.371 +93.3292 105.574 159.594 +92.8182 107.364 162.299 +92.976 110.007 166.295 +92.6839 112.207 169.621 +92.858 115.068 173.946 +92.0712 116.827 176.604 +92.5642 120.313 181.875 +92.7242 123.507 186.702 +91.4415 124.869 188.762 +114.348 160.16 242.11 +112.169 161.22 243.712 +108.669 160.358 242.409 +106.06 160.772 243.035 +102.913 160.34 242.382 +100.308 160.725 242.964 +97.1904 160.26 242.262 +94.4356 160.354 242.404 +91.3845 159.909 241.73 +90.4306 163.191 246.693 +90.8849 169.281 255.898 +90.7123 174.538 263.845 +88.4292 175.925 265.942 +86.5491 178.21 269.396 +89.9365 191.867 290.041 +89.0514 197.057 297.886 +85.8145 197.21 298.117 +82.9395 198.206 299.624 +79.1303 196.929 297.693 +76.366 198.22 299.644 +72.6696 197.066 297.9 +69.7216 197.896 299.155 +66.0968 196.759 297.437 +63.1211 197.505 298.563 +59.6977 196.822 297.531 +56.7388 197.646 298.778 +53.1818 196.33 296.787 +50.325 197.562 298.649 +46.8459 196.32 296.772 +43.873 197.14 298.012 +40.5494 196.357 296.828 +37.6198 197.477 298.522 +34.2361 196.168 296.543 +31.2715 197.205 298.111 +27.9864 196.193 296.58 +25.0007 197.256 298.187 +21.7699 196.378 296.86 +18.7101 196.971 297.756 +15.5459 196.447 296.965 +12.4766 197.121 297.983 +9.31114 196.181 296.562 +6.22876 196.88 297.619 +3.09879 195.909 296.151 +2.22045e-14 196.469 296.997 +-3.09094 195.413 295.402 +-6.21655 196.494 297.036 +-9.29543 195.85 296.061 +-12.4347 196.459 296.983 +-15.4631 195.4 295.382 +-18.6578 196.419 296.923 +-21.6478 195.276 295.195 +-24.8403 195.99 296.274 +-27.8765 195.423 295.417 +-31.0623 195.886 296.116 +-34.0636 195.18 295.049 +-37.3376 195.996 296.282 +-40.3343 195.315 295.254 +-43.6536 196.154 296.522 +-46.5065 194.897 294.622 +-49.8518 195.704 295.841 +-52.7975 194.91 294.642 +-56.1756 195.685 295.812 +-58.955 194.373 293.829 +-62.496 195.548 295.606 +-65.295 194.372 293.828 +-68.882 195.512 295.552 +-71.593 194.146 293.487 +-75.2224 195.251 295.157 +-78.1131 194.397 293.865 +-81.6122 195.035 294.83 +-84.4605 194.098 293.413 +-88.1563 195.076 294.892 +-91.0882 194.323 293.754 +-94.8054 195.21 295.095 +-97.4618 193.895 293.107 +-101.49 195.275 295.193 +-104.347 194.355 293.803 +-108.148 195.165 295.026 +-110.96 194.163 293.513 +-114.831 194.986 294.756 +-117.625 193.955 293.197 +-121.697 194.998 294.774 +-124.543 194.041 293.327 +-128.668 195.041 294.839 +-131.223 193.639 292.719 +-137.506 197.635 298.761 +-140.333 196.555 297.128 +-143.774 196.332 296.791 +-143.047 190.535 288.028 +-142.773 185.573 280.527 +-143.111 181.59 274.506 +-145.571 180.39 272.692 +-149.746 181.289 274.051 +-160.51 189.912 287.086 +-111.416 128.876 194.82 +-111.215 125.806 190.178 +-111.549 123.439 186.6 +-112.499 121.815 184.146 +-114.19 121.025 182.951 +-115.678 120.032 181.449 +-117.858 119.761 181.041 +-119.263 118.707 179.446 +-122.121 119.088 180.023 +-125.15 119.595 180.789 +-438.767 410.966 621.249 +-440.049 404.062 610.812 +-441.041 397.083 600.261 +-442.165 390.405 590.167 +-443.595 384.167 580.737 +-444.262 377.436 570.561 +-446.517 372.2 562.647 +-447.466 366.011 553.29 +-448.82 360.296 544.652 +-450.143 354.687 536.172 +-451.613 349.317 528.054 +-453.006 344.004 520.024 +-455.039 339.282 512.885 +-456.537 334.259 505.291 +-457.971 329.29 497.781 +-461.992 326.246 493.18 +-473.547 328.457 496.522 +-481.241 327.88 495.649 +-484.755 324.443 490.454 +-471.87 310.263 469.018 +-463.446 299.379 452.565 +-468.164 297.136 449.175 +-471.785 294.21 444.75 +-472.942 289.795 438.077 +-475.345 286.205 432.65 +-476.171 281.727 425.88 +-479.095 278.543 421.068 +-481.398 275.035 415.764 +-483.207 271.29 410.104 +-484.863 267.51 404.389 +-487.293 264.199 399.383 +-488.863 260.463 393.736 +-491.006 257.074 388.613 +-492.494 253.383 383.034 +-141.262 71.4167 107.959 +-142.758 70.9185 107.206 +-143.125 69.863 105.61 +-143.47 68.8092 104.017 +-142.88 67.3273 101.777 +-143.02 66.2112 100.09 +-142.133 64.6432 97.7197 +-147.191 65.7615 99.4102 +-2564.22 1125.33 1701.14 +-494.634 213.214 322.311 +-498.702 211.126 319.155 +-502.741 209.016 315.965 +-134.968 55.101 83.2949 +-507.496 203.43 307.521 +-516.312 203.19 307.157 +-518.032 200.126 302.527 +-518.375 196.562 297.139 +-519.558 193.349 292.282 +-518.093 189.196 286.003 +-521.401 186.815 282.403 +-524.336 184.297 278.598 +-525.62 181.21 273.931 +-528.125 178.557 269.921 +-530.158 175.752 265.68 +-533.262 173.304 261.981 +-381.571 121.545 183.736 +-381.477 119.078 180.007 +-381.072 116.542 176.173 +-542.582 162.536 245.703 +-545.132 159.918 241.745 +-547.374 157.211 237.652 +-381.173 107.154 161.982 +-380.526 104.675 158.234 +-381.448 102.645 155.167 +-382.155 100.567 152.025 +-381.284 98.0941 148.287 +-380 95.5452 144.434 +-380.674 93.5099 141.357 +-381.038 91.4095 138.182 +-381.181 89.2699 134.947 +-381.1 87.0933 131.657 +-381.165 84.9659 128.441 +-382.402 83.1071 125.631 +-381.928 80.887 122.275 +-380.945 78.5814 118.79 +-381.233 76.556 115.728 +-382.147 74.6619 112.865 +-381.895 72.5499 109.672 +-381.795 70.481 106.545 +-380.518 68.2139 103.117 +-381.582 66.3789 100.344 +-380.705 64.2167 97.075 +-381.323 62.3188 94.2059 +-380.083 60.1306 90.8981 +-382.079 58.4606 88.3735 +-381.348 56.3762 85.2226 +-381.45 54.4273 82.2766 +-381.229 52.4419 79.2752 +-380.294 50.3726 76.1471 +-381.661 48.6141 73.4889 +-381.536 46.6673 70.5459 +-381.38 44.7253 67.6103 +-381.779 42.8544 64.782 +-381.558 40.9199 61.8577 +-381.896 39.0511 59.0327 +-381.318 37.096 56.0772 +-381.199 35.1949 53.2034 +-380.853 33.2805 50.3095 +-381.661 31.4701 47.5727 +-381.847 29.6083 44.7582 +-381.31 27.6967 41.8685 +-381.733 25.8598 39.0916 +-382.128 24.0209 36.3119 +-380.604 22.0706 33.3636 +-380.839 20.232 30.5843 +-380.048 18.3447 27.7313 +-381.121 16.5489 25.0166 +-381.369 14.7133 22.2418 +-381.387 12.8698 19.455 +-380.278 10.9956 16.6217 +-380.737 9.17146 13.8643 +-380.368 7.32837 11.0781 +-3275.38 47.3206 71.5335 +-146.078 1.40678 2.1266 +-144.894 0.697637 1.0546 +96.6 3.55271e-15 -1.7053e-13 +96.4963 0.470929 0.698124 +96.5853 0.942797 1.39764 +96.5669 1.41411 2.09632 +96.6411 1.88726 2.79775 +96.5081 2.35637 3.49317 +96.4676 2.82724 4.19122 +96.4198 3.29791 4.88895 +96.3647 3.76832 5.58631 +96.3022 4.23845 6.28324 +97.129 4.75211 7.04471 +96.9516 5.22058 7.73918 +97.0653 5.70521 8.45762 +96.0784 6.12172 9.07507 +96.8725 6.65164 9.86065 +96.765 7.12419 10.5612 +96.5511 7.58834 11.2493 +96.429 8.05921 11.9473 +96.2996 8.52952 12.6445 +96.0642 8.98987 13.3269 +95.7233 9.43893 13.9926 +96.5556 10.0076 14.8357 +96.3958 10.4784 15.5336 +96.2286 10.9484 16.2304 +96.0541 11.4176 16.9259 +95.8723 11.886 17.6202 +95.6831 12.3534 18.3131 +96.3619 12.9373 19.1788 +96.3504 13.4341 19.9153 +96.1371 13.9038 20.6116 +96.5926 14.4738 21.4565 +96.363 14.9446 22.1545 +96.3184 15.4452 22.8965 +95.882 15.8828 23.5453 +96.3955 16.481 24.432 +96.1347 16.9507 25.1284 +96.7224 17.5748 26.0535 +96.4445 18.0461 26.7523 +96.1592 18.5161 27.449 +96.6208 19.134 28.365 +97.3522 19.8152 29.3748 +96.9456 20.2699 30.0489 +96.7189 20.7623 30.7788 +97.1356 21.3974 31.7204 +96.8907 21.8916 32.453 +97.2845 22.5349 33.4065 +96.1928 22.8339 33.8499 +96.7498 23.5255 34.875 +97.2012 24.2015 35.8772 +96.0919 24.4893 36.3039 +96.5218 25.17 37.313 +96.1253 25.6401 38.0099 +96.4406 26.3044 38.9946 +96.9214 27.0235 40.0607 +96.4069 27.4701 40.7228 +96.7729 28.172 41.7632 +96.2413 28.6169 42.4227 +96.582 29.3256 43.4734 +96.2082 29.823 44.2107 +96.4354 30.5116 45.2315 +96.6484 31.2047 46.2591 +96.8471 31.9023 47.2931 +96.3456 32.3737 47.992 +96.6041 33.1056 49.077 +96.0838 33.5758 49.774 +96.3153 34.3138 50.8681 +96.3632 34.9957 51.879 +95.8135 35.4647 52.5742 +96.0026 36.2123 53.6825 +96.1755 36.9645 54.7976 +96.2504 37.6891 55.8717 +96.3099 38.4172 56.9511 +96.4348 39.1815 58.0842 +95.8197 39.6507 58.7796 +95.8363 40.386 59.8697 +95.9958 41.1926 61.0654 +96.5313 42.1759 62.5231 +95.9478 42.6802 63.2708 +95.9775 43.4636 64.432 +95.9901 44.2504 65.5985 +95.8322 44.9688 66.6634 +95.8872 45.7979 67.8926 +95.7726 46.5576 69.0188 +95.7165 47.3567 70.2034 +95.5684 48.1214 71.337 +95.5511 48.9638 72.5857 +96.0999 50.1147 74.2919 +95.822 50.8512 75.3838 +95.6722 51.6666 76.5925 +95.5042 52.4842 77.8047 +95.318 53.3042 79.0202 +95.8143 54.5251 80.8301 +95.5155 55.3125 81.9973 +95.2683 56.1417 83.2266 +95.6162 57.3407 85.004 +95.3933 58.2175 86.3039 +95.0165 59.0133 87.4836 +95.2848 60.2285 89.285 +94.9317 61.0707 90.5335 +95.0792 62.2546 92.2886 +95.2611 63.4877 94.1165 +94.8393 64.3382 95.3775 +94.7757 65.4505 97.0264 +94.7467 66.6109 98.7466 +94.8119 67.8642 100.604 +94.2363 68.679 101.812 +94.2442 69.94 103.682 +94.2199 71.2066 105.559 +94.1044 72.433 107.377 +94.4804 74.0732 109.809 +94.468 75.4472 111.846 +94.4766 76.8733 113.96 +93.9444 77.8877 115.464 +93.6637 79.1359 117.314 +94.0047 80.9506 120.004 +94.0274 82.5382 122.358 +94.0607 84.1795 124.791 +93.893 85.6839 127.021 +93.5309 87.05 129.046 +93.6408 88.9005 131.79 +93.65 90.7102 134.472 +93.659 92.5752 137.237 +93.5198 94.349 139.867 +93.4277 96.2269 142.65 +93.2371 98.0617 145.37 +93.3194 100.249 148.614 +93.4312 102.544 152.016 +93.4338 104.798 155.357 +92.9347 106.557 157.964 +93.2487 109.328 162.073 +92.976 111.503 165.296 +93.0986 114.242 169.356 +92.1665 115.765 171.614 +91.5927 117.8 174.631 +92.6033 122 180.858 +92.7625 125.237 185.656 +91.7786 127.033 188.319 +111.966 158.956 235.642 +110.879 161.532 239.461 +107.444 160.705 238.235 +105.171 161.591 239.548 +101.744 160.675 238.19 +99.4936 161.588 239.544 +96.175 160.742 238.29 +93.8485 161.524 239.45 +90.6327 160.749 238.301 +90.9276 166.32 246.559 +90.6577 171.154 253.725 +90.1885 175.89 260.746 +88.5895 178.64 264.823 +85.7209 178.904 265.215 +89.7112 193.988 287.575 +88.6402 198.813 294.728 +85.1609 198.369 294.069 +82.1971 199.104 295.159 +78.3079 197.532 292.828 +75.6383 199 295.005 +71.9718 197.827 293.267 +69.0347 198.61 294.428 +65.4408 197.455 292.715 +62.5307 198.317 293.993 +59.1035 197.512 292.799 +56.1756 198.345 294.035 +52.7975 197.561 292.871 +49.8379 198.309 293.982 +46.5065 197.547 292.852 +43.5317 198.266 293.917 +40.2211 197.415 292.656 +37.2435 198.16 293.76 +33.9677 197.277 292.45 +30.949 197.825 293.264 +27.6961 196.798 291.741 +24.7356 197.818 293.253 +21.5379 196.927 291.931 +18.5688 198.141 293.732 +15.3976 197.218 292.364 +12.3754 198.18 293.79 +9.2169 196.835 291.796 +6.16419 197.488 292.764 +3.0665 196.504 291.305 +2.4869e-14 197.574 292.891 +-3.06825 196.616 291.471 +-6.16768 197.6 292.93 +-9.20382 196.556 291.383 +-12.337 197.566 292.879 +-15.3017 195.989 290.542 +-18.4641 197.024 292.076 +-21.4219 195.866 290.36 +-24.6729 197.316 292.508 +-27.5941 196.073 290.666 +-30.8096 196.934 291.942 +-33.7185 195.829 290.305 +-36.9613 196.659 291.534 +-39.9155 195.915 290.432 +-43.2027 196.768 291.696 +-46.0366 195.551 289.893 +-49.3229 196.26 290.944 +-52.2654 195.57 289.92 +-55.5812 196.247 290.923 +-58.5094 195.526 289.856 +-61.8708 196.225 290.891 +-64.6207 194.98 289.046 +-68.1761 196.14 290.765 +-70.8554 194.758 288.717 +-74.474 195.937 290.464 +-77.3122 195.02 289.105 +-80.9824 196.161 290.796 +-83.8302 195.269 289.474 +-87.1403 195.45 289.742 +-90.2119 195.071 289.181 +-93.9513 196.082 290.679 +-96.6601 194.915 288.949 +-100.47 195.941 290.471 +-103.24 194.907 288.938 +-107.125 195.947 290.479 +-109.968 195.043 289.139 +-113.78 195.829 290.304 +-116.546 194.789 288.762 +-120.46 195.64 290.025 +-123.208 194.571 288.439 +-127.403 195.749 290.185 +-129.927 194.333 288.087 +-135.535 197.451 292.709 +-138.721 196.938 291.949 +-143.25 198.276 293.932 +-143.085 193.178 286.374 +-142.851 188.2 278.995 +-143.669 184.777 273.921 +-145.408 182.639 270.751 +-150.658 184.874 274.064 +-161.567 193.761 287.238 +-111.804 131.083 194.322 +-111.478 127.818 189.482 +-111.728 125.318 185.776 +-113.044 124.07 183.926 +-114.652 123.166 182.587 +-116.053 122.059 180.945 +-118.145 121.685 180.39 +-120.039 121.103 179.528 +-122.81 121.389 179.952 +-126.6 122.626 181.785 +-439.274 417.036 618.23 +-440.049 409.556 607.142 +-441.355 402.768 597.078 +-442.483 395.998 587.043 +-443.595 389.39 577.247 +-444.807 383.037 567.828 +-446.517 377.261 559.266 +-448.193 371.59 550.86 +-449.5 365.748 542.199 +-450.315 359.646 533.154 +-452.31 354.613 525.692 +-453.535 349.089 517.503 +-455.515 344.255 510.337 +-456.838 339.027 502.586 +-458.58 334.211 495.447 +-463.901 332.049 492.242 +-475.912 334.586 496.004 +-482.563 333.251 494.024 +-487.936 331.012 490.705 +-494.239 329.39 488.3 +-480.267 314.463 466.172 +-465.605 299.53 444.035 +-470.261 297.247 440.65 +-474.414 294.65 436.8 +-475.953 290.468 430.601 +-477.126 286.13 424.17 +-479.37 282.493 418.778 +-481.607 278.895 413.445 +-483.838 275.338 408.172 +-484.863 271.147 401.959 +-487.293 267.791 396.983 +-489.511 264.354 391.888 +-491.659 260.916 386.792 +-493.152 257.171 381.24 +-140.525 72.0097 106.75 +-142.907 71.9577 106.673 +-143.35 70.9237 105.14 +-143.168 69.5978 103.174 +-142.88 68.2428 101.166 +-142.178 66.7161 98.9024 +-143.908 66.3403 98.3453 +-147.813 66.9375 99.2307 +-501.104 222.905 330.442 +-494.319 215.975 320.169 +-497.115 213.316 316.228 +-504.418 212.565 315.114 +-134.405 55.6174 82.4493 +-135.025 54.8607 81.3276 +-521.36 207.966 308.296 +-513.281 200.987 297.951 +-528.182 203.004 300.941 +-516.49 194.821 288.81 +-520.011 192.478 285.337 +-521.485 189.385 280.752 +-523.999 186.683 276.745 +-526.129 183.852 272.549 +-528.978 181.277 268.732 +-530.929 178.401 264.469 +-2823.13 929.963 1378.61 +-382.35 123.449 183.005 +-380.345 120.339 178.395 +-382.559 118.587 175.798 +-2879.44 874.298 1296.09 +-544.867 162.014 240.175 +-2906.29 846.062 1254.24 +-380.727 108.484 160.821 +-381.421 106.348 157.654 +-380.639 103.82 153.907 +-381.342 101.718 150.791 +-382.099 99.6404 147.711 +-381.092 97.1228 143.979 +-380.674 94.7813 140.507 +-381.222 92.6971 137.418 +-381.457 90.5491 134.233 +-382.024 88.4917 131.184 +-381.073 86.0999 127.638 +-381.285 83.9911 124.512 +-381.368 81.8666 121.362 +-382.069 79.8853 118.425 +-382.643 77.8838 115.458 +-382.147 75.6771 112.187 +-382.368 73.6275 109.148 +-382.933 71.6523 106.22 +-380.898 69.2102 102.6 +-381.964 67.3491 99.8409 +-381.279 65.1883 96.6376 +-381.323 63.1661 93.6399 +-380.852 61.0718 90.5352 +-381.116 59.1061 87.6212 +-380.575 57.0269 84.5389 +-381.934 55.2374 81.886 +-382.102 53.2767 78.9794 +-379.419 50.94 75.5154 +-381.076 49.1997 72.9355 +-380.951 47.2292 70.0143 +-380.891 45.2753 67.1178 +-382.073 43.4706 64.4424 +-381.558 41.4763 61.4861 +-381.208 39.5107 58.5722 +-381.613 37.6295 55.7834 +-381.002 35.655 52.8563 +-381.544 33.7943 50.0979 +-380.87 31.8319 47.1888 +-380.461 29.9019 44.3277 +-380.616 28.0222 41.5412 +-381.733 26.2114 38.8567 +-381.333 24.2969 36.0186 +-380.604 22.3707 33.1631 +-381.436 20.5393 30.4482 +-380.646 18.6234 27.6081 +-381.121 16.7739 24.8663 +-380.67 14.8861 22.0677 +-380.689 13.0209 19.3027 +-381.576 11.1832 16.5783 +-381.437 9.31327 13.8064 +-380.368 7.42801 11.0116 +-147.25 2.15629 3.19657 +-146.078 1.42591 2.11383 +-146.794 0.7164 1.06202 +96.5 -3.55271e-15 -1.7053e-13 +96.4963 0.477208 0.693847 +96.5853 0.955367 1.38908 +96.5669 1.43296 2.08348 +96.5412 1.91045 2.77773 +96.5081 2.38778 3.47177 +96.4676 2.86494 4.16554 +96.5196 3.34534 4.86402 +96.3647 3.81857 5.55209 +97.1994 4.33497 6.30292 +96.2324 4.77102 6.93693 +97.1507 5.30105 7.70756 +96.1703 5.72795 8.32828 +96.0784 6.20334 9.01948 +96.8725 6.74033 9.80024 +96.765 7.21918 10.4965 +96.6502 7.6974 11.1918 +96.429 8.16667 11.8741 +96.2008 8.63435 12.5541 +95.867 9.09104 13.2181 +95.7233 9.56478 13.9069 +95.4741 10.0275 14.5797 +96.3958 10.6181 15.4384 +96.1306 11.0831 16.1146 +95.9563 11.5581 16.8051 +95.8723 12.0445 17.5123 +96.4626 12.6201 18.3492 +96.3619 13.1098 19.0613 +96.1563 13.5859 19.7535 +95.9434 14.0609 20.4441 +95.7232 14.5348 21.1332 +96.363 15.1439 22.0187 +96.1262 15.6198 22.7108 +95.882 16.0946 23.4011 +96.3955 16.7007 24.2823 +96.1347 17.1767 24.9744 +96.7224 17.8091 25.8939 +96.4445 18.2867 26.5884 +96.1592 18.763 27.2808 +96.6208 19.3891 28.1912 +96.2245 19.8468 28.8567 +97.0392 20.56 29.8937 +96.7189 21.0391 30.5902 +97.1356 21.6827 31.5261 +96.8907 22.1835 32.2542 +96.5454 22.6618 32.9496 +97.0212 23.3377 33.9323 +96.6581 23.8166 34.6286 +96.4704 24.3397 35.3893 +96.1829 24.8394 36.1157 +96.5218 25.5056 37.0844 +96.9377 26.2016 38.0963 +96.4406 26.6551 38.7557 +96.8319 27.3586 39.7785 +96.4069 27.8364 40.4733 +96.6842 28.5214 41.4693 +96.3296 29.025 42.2015 +96.6699 29.7437 43.2464 +96.1207 30.1931 43.8999 +96.3484 30.8905 44.9139 +96.6484 31.6208 45.9757 +96.244 32.1263 46.7107 +96.3456 32.8053 47.698 +96.6041 33.547 48.7763 +96.0838 34.0235 49.4691 +96.1466 34.7105 50.468 +96.3632 35.4623 51.5612 +96.564 36.219 52.6614 +96.7487 36.9804 53.7683 +96.1755 37.4574 54.4619 +96.2504 38.1916 55.5294 +96.3913 38.9623 56.65 +95.7067 39.4042 57.2925 +96.5432 40.4827 58.8606 +95.8363 40.9245 59.5029 +95.9164 41.7073 60.6412 +95.9009 42.4591 61.7343 +95.9478 43.2493 62.8831 +95.9775 44.0431 64.0373 +95.9901 44.8404 65.1966 +95.9088 45.6048 66.308 +95.8872 46.4086 67.4767 +95.7726 47.1784 68.596 +95.7165 47.9881 69.7733 +95.5684 48.763 70.9 +95.4774 49.5783 72.0854 +96.0267 50.7442 73.7806 +95.822 51.5292 74.9219 +95.6722 52.3554 76.1232 +95.5756 53.2237 77.3857 +95.318 54.0149 78.5361 +95.7442 55.2117 80.2762 +95.5155 56.05 81.495 +95.2683 56.8902 82.7167 +95.0706 57.7737 84.0012 +95.3258 58.9518 85.7142 +95.0165 59.8001 86.9476 +95.2185 60.989 88.6763 +94.9317 61.885 89.9789 +95.0792 63.0846 91.7232 +95.1968 64.2905 93.4765 +94.7757 65.1524 94.7297 +94.7757 66.3232 96.432 +94.7467 67.4991 98.1416 +94.8119 68.769 99.9881 +94.6624 69.9092 101.646 +94.3646 70.9632 103.178 +94.1604 72.1107 104.847 +94.6922 73.8572 107.386 +94.5965 75.1527 109.27 +94.4107 76.4067 111.093 +94.3633 77.8047 113.126 +94.3358 79.2554 115.235 +94.1604 80.6166 117.214 +94.1136 82.1245 119.407 +94.0274 83.6387 121.608 +94.2196 85.4459 124.236 +93.4227 86.3916 125.611 +93.4794 88.162 128.185 +93.5901 90.0365 130.91 +93.65 91.9196 133.648 +93.659 93.8095 136.396 +93.5198 95.607 139.01 +93.4277 97.5099 141.777 +93.1901 99.3193 144.407 +92.95 101.184 147.118 +93.4766 103.962 151.158 +93.4338 106.195 154.405 +92.9347 107.978 156.996 +93.2057 110.735 161.006 +92.9338 112.938 164.208 +92.7669 115.352 167.719 +91.3937 116.325 169.133 +91.473 119.215 173.335 +92.5642 123.575 179.674 +92.8007 126.96 184.596 +92.4904 129.726 188.617 +96.6464 139.036 202.154 +109.983 162.363 236.071 +106.288 161.096 234.229 +104.248 162.308 235.99 +100.71 161.161 234.324 +98.3541 161.867 235.35 +95.001 160.897 233.939 +92.8596 161.953 235.475 +90.4824 162.622 236.448 +90.8984 168.483 244.969 +90.6577 173.436 252.17 +89.5546 176.982 257.327 +87.6809 179.166 260.502 +86.7561 183.479 266.773 +89.7112 196.574 285.813 +87.8902 199.76 290.444 +84.2504 198.864 289.143 +81.3648 199.715 290.38 +77.6802 198.561 288.702 +74.8482 199.547 290.136 +71.0547 197.91 287.756 +68.3478 199.256 289.712 +64.7301 197.914 287.762 +62.0098 199.288 289.758 +58.4764 198.022 287.917 +55.5968 198.919 289.222 +52.1176 197.617 287.329 +49.3369 198.933 289.243 +45.9191 197.653 287.381 +43.093 198.885 289.172 +39.7004 197.458 287.098 +36.8567 198.717 288.928 +33.5364 197.369 286.968 +30.6527 198.543 288.676 +27.4136 197.388 286.996 +24.4845 198.42 288.498 +21.3182 197.516 287.183 +18.3752 198.689 288.888 +15.1926 197.187 286.704 +12.2183 198.274 288.285 +9.12528 197.478 287.127 +6.10136 198.082 288.005 +3.03683 197.198 286.719 +2.75335e-14 198.168 288.131 +-3.03683 197.198 286.719 +-6.08914 197.685 287.428 +-9.08602 196.628 285.891 +-12.1799 197.651 287.379 +-15.149 196.621 285.881 +-18.2705 197.557 287.243 +-21.1961 196.384 285.537 +-24.4148 197.855 287.675 +-27.3195 196.71 286.011 +-30.5132 197.64 287.363 +-33.3735 196.41 285.574 +-36.5745 197.195 286.716 +-39.5192 196.557 285.788 +-42.7518 197.31 286.883 +-45.5536 196.08 285.094 +-48.8358 196.913 286.306 +-51.7185 196.104 285.129 +-55.0336 196.904 286.293 +-57.7502 195.562 284.342 +-61.2283 196.776 286.106 +-63.9282 195.463 284.197 +-67.4891 196.753 286.073 +-70.1376 195.356 284.043 +-73.7047 196.498 285.703 +-76.5114 195.573 284.358 +-79.9476 196.237 285.322 +-82.7797 195.393 284.095 +-86.4629 196.516 285.728 +-88.9851 194.984 283.5 +-92.7349 196.123 285.157 +-95.511 195.166 283.766 +-99.2846 196.211 285.285 +-102.189 195.495 284.244 +-106.043 196.554 285.784 +-108.765 195.482 284.225 +-112.637 196.446 285.626 +-115.435 195.505 284.258 +-119.321 196.374 285.521 +-122.006 195.241 283.875 +-125.966 196.122 285.156 +-128.631 194.961 283.467 +-133.17 196.592 285.839 +-137.511 197.824 287.631 +-141.901 199.028 289.381 +-143.43 196.225 285.305 +-142.695 190.5 276.981 +-144.307 188.072 273.452 +-146.059 185.902 270.296 +-151.487 188.37 273.884 +-160.637 195.215 283.837 +-111.933 132.984 193.355 +-111.302 129.319 188.026 +-112.219 127.546 185.449 +-113.361 126.077 183.313 +-115.437 125.663 182.711 +-116.898 124.587 181.146 +-118.813 124.004 180.298 +-120.718 123.412 179.437 +-123.648 123.846 180.068 +-127.35 124.997 181.742 +-439.731 423.036 615.082 +-440.512 415.454 604.057 +-441.355 408.138 593.42 +-442.642 401.423 583.657 +-444.078 395.012 574.336 +-445.297 388.571 564.971 +-447.069 382.764 556.527 +-448.361 376.685 547.689 +-449.896 370.951 539.352 +-450.888 364.906 530.562 +-452.89 359.802 523.142 +-454.064 354.156 514.933 +-456.289 349.438 508.072 +-457.199 343.818 499.902 +-460.041 339.746 493.981 +-467.41 339.021 492.927 +-479.15 341.353 496.318 +-485.961 340.072 494.455 +-483.292 332.234 483.058 +-485.305 327.748 476.536 +-493.97 327.748 476.537 +-468.361 305.32 443.927 +-467.81 299.64 435.668 +-474.146 298.41 433.879 +-476.291 294.55 428.267 +-477.74 290.318 422.114 +-479.99 286.629 416.751 +-482.232 282.981 411.446 +-484.609 279.454 406.317 +-485.712 275.244 400.196 +-487.935 271.719 395.071 +-490.158 268.233 390.002 +-492.312 264.745 384.932 +-493.517 260.793 379.186 +-142.073 73.7739 107.265 +-143.278 73.1064 106.295 +-143.125 71.7571 104.333 +-142.716 70.303 102.218 +-142.88 69.1526 100.546 +-142.944 67.97 98.8263 +-146.994 68.6664 99.839 +-148.279 68.0436 98.9335 +-512.452 230.992 335.856 +-495.422 219.343 318.918 +-496.719 215.988 314.04 +-501.144 214.001 311.151 +-506.028 212.189 308.516 +-135.834 55.9252 81.3136 +-134.818 54.4945 79.2334 +-509.84 202.302 294.141 +-528.759 205.935 299.424 +-517.568 197.831 287.64 +-520.011 195.045 283.589 +-521.821 192.033 279.211 +-524.421 189.324 275.272 +-526.892 186.573 271.272 +-529.575 183.902 267.387 +-532.129 181.188 263.442 +-382.822 127.786 185.797 +-383.13 125.35 182.255 +-380.084 121.86 177.18 +-2865.69 900.161 1308.81 +-2879.44 885.955 1288.15 +-545.308 164.307 238.897 +-2906.29 857.343 1246.55 +-380.727 109.93 159.836 +-381.69 107.841 156.798 +-380.37 105.13 152.856 +-382.696 103.44 150.399 +-381.012 100.682 146.388 +-381.092 98.4177 143.096 +-380.126 95.9068 139.446 +-381.864 94.0911 136.806 +-381.457 91.7564 133.411 +-381.1 89.4546 130.064 +-382 87.4604 127.165 +-381.564 85.1733 123.839 +-381.648 83.0193 120.708 +-381.413 80.811 117.497 +-382.173 78.8253 114.61 +-381.864 76.6294 111.417 +-381.517 74.4432 108.238 +-381.795 72.3918 105.256 +-381.849 70.3081 102.226 +-381.391 68.1445 99.0801 +-380.896 65.9911 95.9491 +-381.035 63.9601 92.9962 +-381.236 61.9484 90.0712 +-380.923 59.8636 87.0399 +-381.348 57.9046 84.1916 +-380.385 55.7468 81.0543 +-381.617 53.9185 78.3959 +-381.169 51.8573 75.399 +-381.174 49.8684 72.5072 +-381.341 47.9079 69.6567 +-381.38 45.9379 66.7923 +-382.073 44.0501 64.0476 +-381.951 42.0725 61.1722 +-380.323 39.9446 58.0783 +-382.499 38.2198 55.5705 +-381.495 36.1771 52.6005 +-381.248 34.2183 49.7524 +-380.87 32.2563 46.8997 +-380.857 30.3322 44.1021 +-381.31 28.4476 41.362 +-381.038 26.5125 38.5484 +-381.134 24.608 35.7793 +-380.802 22.6808 32.9772 +-381.834 20.8348 30.2932 +-381.244 18.9014 27.482 +-379.925 16.9442 24.6364 +-380.172 15.0648 21.9037 +-381.387 13.2187 19.2197 +-381.476 11.3293 16.4724 +-381.037 9.42753 13.7074 +-380.868 7.53697 10.9585 +-146.95 2.18059 3.17052 +-145.678 1.44097 2.09512 +-145.294 0.718534 1.04473 +96.6 3.55271e-15 -1.7053e-13 +96.4963 0.483448 0.689513 +96.5853 0.96786 1.3804 +96.5669 1.4517 2.07047 +96.5412 1.93543 2.76038 +95.7088 2.39898 3.42152 +96.4676 2.9024 4.13952 +96.4198 3.38558 4.82865 +96.4644 3.8725 5.52312 +96.4019 4.35562 6.21216 +96.2324 4.83341 6.8936 +96.2548 5.32084 7.58879 +97.0653 5.85688 8.35331 +96.9726 6.3429 9.0465 +95.9792 6.76555 9.64929 +96.765 7.31357 10.4309 +96.5511 7.79007 11.1105 +96.429 8.27346 11.7999 +96.2996 8.75627 12.4885 +96.0642 9.22886 13.1626 +95.9203 9.70977 13.8485 +96.4573 10.2632 14.6378 +96.3958 10.757 15.342 +96.1306 11.2281 16.0139 +95.9563 11.7092 16.7002 +95.8723 12.202 17.4029 +95.6831 12.6818 18.0873 +96.3619 13.2813 18.9423 +96.3504 13.7913 19.6697 +96.1371 14.2735 20.3574 +96.5926 14.8586 21.1919 +96.5558 15.3726 21.925 +96.1262 15.8241 22.5689 +95.7861 16.2887 23.2317 +96.4911 16.9359 24.1546 +96.0393 17.3841 24.7939 +95.8665 17.8823 25.5045 +96.4445 18.5259 26.4223 +96.1592 19.0083 27.1104 +96.6208 19.6426 28.0151 +96.2245 20.1063 28.6765 +97.0392 20.8289 29.707 +96.6256 21.2937 30.3699 +96.3913 21.7979 31.0891 +96.798 22.4521 32.022 +97.3769 23.1558 33.0258 +96.9292 23.6204 33.6884 +96.8415 24.1738 34.4776 +96.4704 24.658 35.1682 +96.9109 25.3546 36.1618 +96.6124 25.8634 36.8875 +96.9377 26.5442 37.8584 +96.4406 27.0036 38.5137 +96.9214 27.7419 39.5666 +96.4069 28.2004 40.2205 +95.9746 28.6823 40.9078 +96.2413 29.3776 41.8995 +96.582 30.1052 42.9372 +96.8204 30.8105 43.9432 +96.3484 31.2944 44.6334 +96.6484 32.0343 45.6886 +96.1578 32.5173 46.3774 +96.3456 33.2343 47.4001 +96.6041 33.9857 48.4717 +96.0838 34.4684 49.1602 +96.1466 35.1643 50.1528 +96.3632 35.926 51.2392 +96.564 36.6926 52.3325 +96.0026 37.175 53.0204 +96.1755 37.9472 54.1218 +96.3323 38.7239 55.2296 +96.3913 39.4717 56.2962 +95.7067 39.9194 56.9347 +95.8197 40.7047 58.0547 +95.9161 41.4941 59.1806 +95.9164 42.2527 60.2625 +95.9009 43.0143 61.3488 +95.8695 43.779 62.4394 +95.9775 44.619 63.6374 +95.9129 45.3902 64.7373 +95.9854 46.238 65.9465 +95.8872 47.0154 67.0553 +95.9236 47.8706 68.275 +95.6416 48.5776 69.2834 +95.6427 49.4391 70.5119 +95.5511 50.2654 71.6905 +96.0999 51.4469 73.3757 +95.822 52.203 74.454 +95.7441 53.0799 75.7046 +95.5042 53.8795 76.8451 +95.318 54.7212 78.0456 +95.7442 55.9337 79.7749 +94.8903 56.4112 80.4559 +95.2683 57.6341 82.2001 +95.0706 58.5292 83.4766 +95.3258 59.7227 85.1789 +95.0165 60.5821 86.4046 +95.2848 61.8296 88.1838 +94.8661 62.6511 89.3555 +95.0142 63.8659 91.0881 +94.6826 64.7793 92.3908 +94.8393 66.0486 94.2011 +94.6498 67.1015 95.7028 +94.7467 68.3817 97.5287 +94.7503 69.6229 99.2989 +94.7233 70.8692 101.077 +94.2442 71.7993 102.403 +94.6363 73.4228 104.719 +94.1632 74.4051 106.119 +94.3642 75.9488 108.321 +94.4107 77.4058 110.399 +94.25 78.728 112.285 +93.8326 79.8635 113.905 +93.7741 81.3355 116.004 +94.1136 83.1984 118.661 +93.9737 84.6836 120.779 +93.7427 86.1251 122.835 +93.7885 87.8641 125.315 +93.8914 89.7086 127.946 +93.5901 91.2139 130.093 +93.65 93.1216 132.814 +93.659 95.0362 135.544 +93.5198 96.8572 138.142 +93.4277 98.785 140.891 +93.1901 100.618 143.505 +93.3194 102.914 146.781 +93.4312 105.27 150.141 +93.3892 107.533 153.368 +92.9785 109.441 156.089 +92.8182 111.716 159.334 +92.976 114.467 163.257 +91.8131 115.659 164.958 +92.0038 118.632 169.198 +91.1939 120.405 171.727 +92.7596 125.455 178.929 +92.7625 128.567 183.367 +92.7151 131.741 187.895 +92.9814 135.512 193.273 +108.514 162.289 231.463 +105.097 161.374 230.158 +102.845 162.219 231.363 +99.608 161.483 230.313 +97.3449 162.301 231.481 +94.0174 161.313 230.071 +91.8399 162.269 231.435 +91.0838 165.844 236.533 +90.8399 170.576 243.283 +90.6009 175.593 250.438 +88.7277 177.641 253.359 +86.1844 178.411 254.457 +89.422 191.59 273.253 +89.1854 197.978 282.364 +86.9225 200.144 285.453 +83.0365 198.562 283.197 +80.285 199.642 284.737 +76.5114 198.131 282.582 +73.8918 199.574 284.64 +70.2772 198.304 282.829 +67.4891 199.326 284.286 +64.074 198.47 283.066 +61.211 199.293 284.239 +57.7337 198.063 282.486 +54.8616 198.855 283.615 +51.4525 197.646 281.89 +48.7106 198.976 283.788 +45.3187 197.619 281.853 +42.5202 198.807 283.547 +39.1796 197.416 281.562 +36.3864 198.746 283.46 +33.0955 197.321 281.427 +30.3302 199.024 283.855 +27.0527 197.336 281.449 +24.2334 198.954 283.755 +21.0434 197.52 281.711 +18.1867 199.223 284.14 +15.0312 197.643 281.887 +12.0892 198.744 283.457 +9.00225 197.362 281.486 +6.02283 198.088 282.522 +2.99669 197.135 281.162 +2.30926e-14 198.119 282.565 +-2.98884 196.619 280.425 +-6.02632 198.203 282.685 +-8.9944 197.19 281.24 +-12.0508 198.113 282.557 +-14.9571 196.669 280.497 +-18.0873 198.134 282.586 +-20.9458 196.603 280.403 +-24.1078 197.922 282.285 +-26.8879 196.135 279.735 +-30.1123 197.594 281.816 +-32.9326 196.349 280.041 +-36.1982 197.719 281.994 +-38.9985 196.503 280.261 +-42.313 197.839 282.165 +-44.9793 196.139 279.742 +-48.3348 197.441 281.599 +-51.0534 196.113 279.704 +-54.2984 196.814 280.704 +-57.0074 195.572 278.932 +-60.4469 196.805 280.692 +-63.254 195.93 279.444 +-66.5923 196.677 280.508 +-69.2205 195.323 278.577 +-72.9354 196.99 280.955 +-75.5591 195.665 279.065 +-79.1378 196.789 280.668 +-81.5658 195.045 278.181 +-85.5436 196.969 280.925 +-87.8333 194.976 278.083 +-91.7514 196.581 280.371 +-94.255 195.117 278.284 +-98.2372 196.68 280.513 +-100.683 195.135 278.309 +-104.728 196.654 280.475 +-107.202 195.191 278.389 +-111.555 197.103 281.117 +-113.69 195.067 278.212 +-117.888 196.553 280.331 +-120.271 194.981 278.089 +-124.666 196.637 280.451 +-127.02 195.037 278.169 +-131.521 196.697 280.538 +-135.129 196.939 280.882 +-140.215 199.235 284.157 +-142.971 198.154 282.615 +-142.695 192.991 275.252 +-143.59 189.584 270.392 +-147.117 189.696 270.552 +-150.368 189.422 270.162 +-159.665 196.57 280.357 +-111.632 134.36 191.63 +-111.522 131.268 187.219 +-112.754 129.831 185.17 +-113.77 128.186 182.825 +-115.76 127.663 182.078 +-117.274 126.622 180.593 +-119.528 126.383 180.252 +-121.348 125.678 179.247 +-125.273 127.114 181.295 +-128.55 127.824 182.308 +-440.696 429.508 612.581 +-440.821 421.181 600.706 +-442.086 414.16 590.692 +-443.118 407.11 580.636 +-444.508 400.565 571.302 +-446.114 394.375 562.473 +-447.842 388.439 554.007 +-448.92 382.087 544.948 +-450.916 376.654 537.198 +-451.577 370.242 528.053 +-453.239 364.787 520.274 +-454.593 359.205 512.313 +-456.586 354.238 505.228 +-457.921 348.865 497.565 +-462.72 346.193 493.754 +-470.796 345.943 493.397 +-480.768 346.985 494.884 +-482.563 342.11 487.931 +-483.801 336.933 480.547 +-487.362 333.441 475.566 +-491.437 330.331 471.132 +-494.8 326.774 466.058 +-482.586 313.146 446.621 +-470.466 299.965 427.823 +-477.169 298.952 426.377 +-478.149 294.366 419.837 +-480.609 290.752 414.682 +-482.371 286.764 408.995 +-485.029 283.354 404.13 +-486.136 279.086 398.044 +-489.076 275.916 393.522 +-490.59 271.98 387.908 +-492.964 268.563 383.036 +-140.932 75.4476 107.606 +-142.442 74.9327 106.872 +-143.501 74.1777 105.795 +-143.425 72.8476 103.898 +-142.489 71.1092 101.419 +-142.576 69.9082 99.7059 +-142.791 68.7853 98.1043 +-147.612 69.8565 99.6322 +-147.658 68.6446 97.9037 +-513.782 234.62 334.625 +-511.261 229.315 327.059 +-506.08 222.936 317.96 +-499.307 216.005 308.074 +-501.848 213.188 304.057 +-136.886 57.0952 81.4315 +-136.202 55.7739 79.5469 +-514.1 206.66 294.746 +-524.556 206.97 295.189 +-518.148 200.643 286.164 +-521.179 198.039 282.451 +-522.659 194.857 277.913 +-525.939 192.355 274.344 +-527.656 189.287 269.969 +-530.513 186.636 266.188 +-532.558 183.705 262.008 +-381.357 128.962 183.93 +-382.264 126.702 180.707 +-382.086 124.104 177.001 +-383.346 121.99 173.987 +-2879.44 897.54 1280.11 +-545.662 166.563 237.558 +-382.213 114.225 162.912 +-381.173 111.498 159.023 +-379.094 108.508 154.759 +-381.089 106.706 152.188 +-381.072 104.348 148.825 +-381.284 102.071 145.578 +-381.092 99.7047 142.203 +-381.223 97.441 138.974 +-380.58 95.0012 135.494 +-380.076 92.6198 132.098 +-381.285 90.6679 129.314 +-382 88.6041 126.371 +-380.355 86.0138 122.676 +-381.368 84.0429 119.865 +-381.507 81.8878 116.792 +-381.797 79.7774 113.782 +-381.204 77.4971 110.529 +-380.949 75.3041 107.402 +-382.649 73.502 104.832 +-380.518 70.9795 101.234 +-381.105 68.9839 98.3876 +-381.47 66.9545 95.4932 +-381.61 64.8941 92.5546 +-381.236 62.7585 89.5086 +-381.212 60.6929 86.5626 +-381.83 58.7358 83.7714 +-380.966 56.562 80.671 +-381.326 54.5819 77.8468 +-381.169 52.5354 74.9281 +-380.589 50.443 71.9439 +-381.829 48.5965 69.3103 +-381.086 46.5027 66.3241 +-380.113 44.3972 63.3211 +-380.282 42.4365 60.5246 +-380.028 40.4355 57.6708 +-381.81 38.6498 55.1238 +-381.495 36.6502 52.272 +-381.149 34.6568 49.4289 +-380.672 32.6611 46.5825 +-381.352 30.7688 43.8836 +-380.616 28.7671 41.0288 +-380.939 26.8522 38.2977 +-381.333 24.9428 35.5744 +-381.101 22.9954 32.7969 +-380.042 21.0082 29.9628 +-381.244 19.1485 27.3104 +-381.52 17.2378 24.5853 +-380.87 15.2898 21.8069 +-381.088 13.3811 19.0846 +-380.877 11.4594 16.3438 +-381.037 9.55081 13.6217 +-380.568 7.6295 10.8815 +-146.95 2.20911 3.15072 +-145.678 1.45981 2.08204 +-147.194 0.737449 1.05178 +95.7 0 -1.7053e-13 +96.4963 0.489649 0.685124 +96.5853 0.980274 1.37161 +96.5669 1.47032 2.05729 +96.5412 1.96025 2.74281 +96.608 2.45257 3.43167 +96.5675 2.94268 4.11743 +96.4198 3.429 4.79791 +96.3647 3.91812 5.48229 +96.4019 4.41149 6.17262 +96.332 4.90047 6.85681 +97.1507 5.43924 7.61067 +96.1703 5.87728 8.22358 +96.9726 6.42426 8.98891 +96.8725 6.91605 9.67703 +96.765 7.40738 10.3645 +96.6502 7.89807 11.0511 +96.429 8.37957 11.7248 +96.2008 8.85945 12.3963 +97.0505 9.44323 13.2131 +95.7233 9.81414 13.7321 +95.5724 10.2995 14.4112 +96.3958 10.8949 15.2444 +96.2286 11.3837 15.9282 +95.9563 11.8594 16.5938 +95.7746 12.3458 17.2745 +95.6831 12.8444 17.9721 +95.6812 13.3566 18.6887 +96.1563 13.9401 19.5052 +96.1371 14.4565 20.2278 +96.5926 15.0491 21.057 +96.363 15.5387 21.7419 +96.03 16.011 22.4029 +95.882 16.5142 23.1069 +96.3955 17.1361 23.9771 +96.1347 17.6245 24.6605 +96.7224 18.2734 25.5683 +96.4445 18.7635 26.2541 +96.9157 19.4035 27.1497 +96.6208 19.8946 27.8368 +96.2245 20.3642 28.4939 +97.0392 21.096 29.5179 +96.7189 21.5876 30.2057 +97.1356 22.248 31.1297 +96.798 22.74 31.8182 +96.453 23.2304 32.5043 +97.0212 23.9461 33.5057 +96.7498 24.4606 34.2256 +96.4704 24.9743 34.9444 +96.0919 25.4628 35.6279 +96.5218 26.1706 36.6182 +96.0351 26.6343 37.2671 +96.5305 27.3755 38.3042 +96.0265 27.8383 38.9517 +96.4069 28.5621 39.9645 +96.8616 29.3186 41.023 +96.2413 29.7544 41.6328 +96.6699 30.5191 42.7027 +96.1207 30.9802 43.348 +96.4354 31.7244 44.3893 +96.6484 32.4452 45.3977 +96.244 32.9638 46.1234 +96.3456 33.6606 47.0983 +96.6041 34.4216 48.1631 +96.8471 35.1878 49.2352 +96.3153 35.6778 49.9209 +96.3632 36.3868 50.913 +95.8135 36.8744 51.5952 +96.7487 37.9444 53.0924 +96.1755 38.4339 53.7772 +96.2504 39.1872 54.8313 +95.74 39.7079 55.5599 +95.7876 40.4656 56.6201 +95.8197 41.2268 57.6851 +95.9161 42.0264 58.8039 +95.2024 42.4761 59.4331 +95.9009 43.566 60.9582 +95.9478 44.3768 62.0926 +95.8998 45.1546 63.181 +96.0673 46.0464 64.4287 +95.9088 46.7937 65.4744 +95.8872 47.6184 66.6284 +95.8481 48.4465 67.787 +95.6416 49.2007 68.8423 +95.5684 50.0343 70.0086 +95.5511 50.9101 71.2341 +95.3685 51.7102 72.3537 +95.8945 52.9126 74.0361 +95.6722 53.7203 75.1662 +95.5756 54.6112 76.4128 +95.318 55.4231 77.5487 +95.7442 56.6511 79.267 +95.5155 57.5112 80.4705 +95.2683 58.3734 81.6768 +95.6162 59.62 83.4211 +95.3258 60.4887 84.6366 +95.0165 61.3591 85.8546 +95.351 62.6662 87.6835 +94.8661 63.4547 88.7867 +94.9493 64.6409 90.4464 +95.1968 65.9666 92.3014 +94.6484 66.7614 93.4135 +94.6498 67.9621 95.0936 +94.7467 69.2588 96.9078 +94.935 70.6531 98.8588 +94.7233 71.7782 100.433 +94.2442 72.7202 101.751 +94.6958 74.411 104.117 +94.0456 75.2652 105.312 +94.0158 76.6386 107.234 +94.4107 78.3987 109.696 +94.1934 79.6895 111.503 +93.9444 80.9838 113.314 +93.8845 82.4758 115.401 +93.6235 83.8265 117.291 +93.9737 85.7697 120.01 +93.7427 87.2298 122.053 +93.893 89.0899 124.656 +93.4794 90.4603 126.573 +93.6408 92.4344 129.335 +93.7 94.366 132.038 +93.6097 96.2045 134.611 +93.5198 98.0995 137.262 +93.38 100.001 139.923 +93.1901 101.909 142.592 +93.3194 104.234 145.846 +93.4766 106.672 149.258 +93.4338 108.964 152.464 +92.9785 110.845 155.096 +92.8182 113.149 158.32 +93.0605 116.04 162.365 +91.8131 117.143 163.908 +91.3124 119.251 166.858 +91.2737 122.056 170.782 +91.7827 125.726 175.918 +92.418 129.732 181.523 +92.6777 133.377 186.623 +91.4421 134.978 188.863 +107.009 162.09 226.799 +103.521 160.993 225.264 +101.443 162.059 226.755 +98.206 161.252 225.626 +96.01 162.129 226.853 +92.526 160.79 224.98 +90.5111 161.972 226.634 +90.9034 167.639 234.562 +90.6352 172.374 241.189 +89.6352 175.95 246.192 +88.8379 180.143 252.059 +86.5585 181.484 253.934 +90.0173 195.339 273.321 +88.3341 198.603 277.888 +85.6162 199.664 279.373 +81.7993 198.112 277.201 +79.2728 199.653 279.357 +75.3426 197.607 276.494 +72.9146 199.46 279.087 +69.2205 197.828 276.804 +66.5733 199.142 278.643 +63.0717 197.872 276.865 +60.2733 198.757 278.103 +56.8424 197.507 276.354 +54.1576 198.821 278.194 +50.7725 197.536 276.395 +48.0565 198.822 278.195 +44.7052 197.444 276.267 +41.9718 198.76 278.108 +38.5683 196.828 275.405 +35.916 198.693 278.015 +32.693 197.421 276.234 +29.938 198.97 278.401 +26.6447 196.853 275.44 +23.8637 198.431 277.648 +20.7199 196.978 275.614 +17.8989 198.585 277.862 +14.7957 197.042 275.703 +11.9356 198.736 278.075 +8.86613 196.871 275.465 +5.94429 198.013 277.063 +2.9487 196.466 274.898 +2.39808e-14 198.101 277.186 +-2.94957 196.524 274.979 +-5.93207 197.606 276.493 +-8.85043 196.522 274.977 +-11.8658 197.574 276.448 +-14.7259 196.112 274.403 +-17.8047 197.54 276.4 +-20.6161 195.991 274.233 +-23.7381 197.387 276.186 +-26.527 195.984 274.223 +-29.7114 197.464 276.294 +-32.4246 195.801 273.967 +-35.7174 197.594 276.477 +-38.3985 195.962 274.192 +-41.6549 197.26 276.008 +-44.2875 195.599 273.686 +-47.5554 196.75 275.295 +-50.137 195.063 272.935 +-53.5944 196.754 275.301 +-56.2812 195.556 273.625 +-59.6655 196.753 275.299 +-62.1059 194.841 272.625 +-65.7337 196.631 275.129 +-68.3035 195.207 273.136 +-71.8959 196.673 275.187 +-74.4119 195.166 273.079 +-77.9455 196.31 274.68 +-80.7021 195.455 273.483 +-84.3098 196.618 275.11 +-86.8318 195.226 273.162 +-90.4314 196.237 274.578 +-93.0257 195.043 272.907 +-96.9417 196.576 275.052 +-99.4054 195.129 273.027 +-103.353 196.563 275.034 +-105.518 194.589 272.272 +-109.856 196.59 275.072 +-112.199 194.977 272.815 +-116.065 195.995 274.239 +-118.668 194.851 272.638 +-122.58 195.826 274.002 +-125.129 194.597 272.283 +-129.335 195.909 274.118 +-131.757 194.488 272.13 +-138.267 198.988 278.426 +-140.636 197.419 276.231 +-143.437 196.483 274.922 +-143.948 192.496 269.343 +-144.758 189.049 264.52 +-147.423 188.095 263.185 +-155.862 194.349 271.936 +-111.459 135.874 190.116 +-111.828 133.317 186.539 +-113.29 132.12 184.865 +-114.269 130.4 182.458 +-116.499 130.125 182.073 +-117.978 129.016 180.521 +-120.196 128.719 180.105 +-122.414 128.409 179.672 +-126.996 130.516 182.62 +-439.55 442.675 619.396 +-441 435.317 609.102 +-440.976 426.733 597.091 +-442.87 420.216 587.972 +-443.86 413.022 577.906 +-445.045 406.193 568.351 +-446.822 400.067 559.779 +-448.394 393.906 551.158 +-449.759 387.711 542.49 +-451.086 381.628 533.98 +-452.093 375.419 525.292 +-454.342 370.365 518.221 +-454.946 364.094 509.446 +-457.657 359.622 503.188 +-457.921 353.339 494.397 +-467.59 354.324 495.775 +-475.598 353.953 495.256 +-482.262 352.528 493.262 +-485.017 348.26 487.29 +-484.374 341.658 478.053 +-487.04 337.495 472.227 +-488.515 332.579 465.348 +-490.535 328.112 459.099 +-495.441 325.611 455.599 +-477.023 308.048 431.024 +-478.115 303.386 424.502 +-479.854 299.205 418.652 +-481.848 295.24 413.105 +-483.968 291.404 407.737 +-485.73 287.403 402.138 +-487.692 283.571 396.776 +-489.718 279.821 391.53 +-491.453 275.953 386.117 +-493.762 272.448 381.213 +-141.224 76.574 107.143 +-142.737 76.0507 106.411 +-143.278 75.0123 104.958 +-142.302 73.2039 102.428 +-142.414 71.9829 100.719 +-143.108 71.0688 99.4405 +-142.714 69.6297 97.4269 +-147.92 70.9002 99.2046 +-511.751 240.959 337.153 +-514.017 237.738 332.646 +-515.674 234.262 327.782 +-517.822 231.034 323.267 +-500.505 219.3 306.847 +-501.928 215.956 302.169 +-508.224 214.7 300.412 +-508.659 210.965 295.185 +-136.225 55.4625 77.6039 +-519.694 207.682 290.591 +-519.724 203.833 285.207 +-522.763 201.188 281.506 +-524.169 197.926 276.941 +-527.457 195.384 273.385 +-528.504 192.023 268.681 +-531.365 189.334 264.918 +-533.329 186.331 260.717 +-2823.13 966.929 1352.94 +-380.705 127.804 178.825 +-381.303 125.438 175.514 +-380.372 122.596 171.538 +-383.164 120.966 169.258 +-2892.98 894.405 1251.46 +-381.06 115.341 161.387 +-380.282 112.664 157.642 +-379.094 109.9 153.774 +-380.549 107.921 151.005 +-381.884 105.911 148.193 +-382.099 103.601 144.96 +-380.819 100.911 141.196 +-380.4 98.478 137.792 +-380.672 96.2429 134.664 +-380.353 93.8758 131.352 +-380.916 91.7419 128.367 +-381.073 89.5225 125.261 +-381.843 87.4577 122.372 +-382.208 85.3087 119.365 +-380.945 82.816 115.877 +-382.643 80.9797 113.308 +-380.356 78.3167 109.582 +-380.949 76.2699 106.718 +-380.752 74.0761 103.648 +-380.898 71.9614 100.689 +-382.536 70.131 98.1282 +-381.183 67.7621 94.8137 +-381.323 65.677 91.8962 +-381.717 63.6437 89.0511 +-380.923 61.4243 85.9457 +-381.348 59.4142 83.1331 +-381.063 57.3021 80.1779 +-381.811 55.3523 77.4497 +-380.877 53.1685 74.3941 +-381.174 51.1685 71.5957 +-380.853 49.094 68.693 +-381.771 47.1838 66.0202 +-381.583 45.1406 63.1613 +-380.773 43.0362 60.2169 +-382.191 41.1873 57.6298 +-381.318 39.095 54.7023 +-380.312 37.0051 51.7781 +-380.853 35.074 49.076 +-380.376 33.0542 46.2499 +-381.154 31.1472 43.5816 +-381.31 29.1892 40.842 +-380.939 27.1967 38.0539 +-381.631 25.2824 35.3756 +-380.902 23.2782 32.5711 +-381.137 21.339 29.8578 +-380.845 19.3738 27.1081 +-380.224 17.3996 24.3458 +-381.169 15.498 21.6851 +-381.587 13.5705 18.988 +-380.278 11.5881 16.2142 +-381.037 9.67331 13.535 +-379.269 7.70101 10.7754 +-145.95 2.22222 3.10936 +-145.678 1.47853 2.06879 +-146.594 0.74386 1.04082 +95.7 0 -1.7053e-13 +96.5963 0.496323 0.681383 +96.5853 0.992608 1.36271 +96.5669 1.48882 2.04394 +96.5412 1.98492 2.72501 +96.608 2.48343 3.4094 +96.5675 2.9797 4.09072 +96.4198 3.47215 4.76678 +96.4644 3.97152 5.45235 +96.4019 4.467 6.13257 +96.332 4.96213 6.81232 +96.2548 5.45689 7.49155 +96.2697 5.95741 8.17871 +96.9726 6.50509 8.93059 +96.0785 6.94572 9.53552 +96.8642 7.50824 10.3078 +96.6502 7.99745 10.9794 +96.5279 8.49372 11.6607 +96.2008 8.97092 12.3158 +96.0642 9.46484 12.9939 +95.9203 9.95805 13.671 +95.5724 10.4291 14.3177 +96.3958 11.032 15.1454 +96.2286 11.5269 15.8248 +96.0541 12.0209 16.503 +95.8723 12.514 17.1799 +96.5601 13.1252 18.0191 +96.3619 13.6209 18.6995 +96.1563 14.1155 19.3786 +96.1371 14.6384 20.0965 +95.7232 15.1014 20.7321 +96.363 15.7342 21.6009 +96.1262 16.2287 22.2797 +95.882 16.722 22.9569 +96.4911 17.3689 23.8451 +96.1347 17.8463 24.5005 +95.8665 18.3396 25.1777 +96.3497 18.9809 26.0581 +96.9157 19.6477 26.9735 +96.715 20.1646 27.6832 +96.3185 20.6406 28.3367 +97.0392 21.3615 29.3263 +97.5592 22.0492 30.2704 +97.1356 22.5279 30.9278 +96.8907 23.0482 31.642 +96.5454 23.5452 32.3243 +96.2848 24.0633 33.0356 +96.8415 24.7919 34.0358 +96.5618 25.3125 34.7505 +96.0919 25.7832 35.3968 +96.5218 26.4998 36.3806 +96.1253 26.9948 37.0601 +96.5305 27.72 38.0557 +96.8319 28.425 39.0236 +96.496 28.9482 39.7419 +95.9746 29.4157 40.3837 +96.3296 30.1564 41.4006 +96.582 30.8749 42.387 +96.9079 31.6269 43.4194 +96.4354 32.1236 44.1013 +96.6484 32.8534 45.1032 +96.1578 33.3487 45.7832 +96.4313 34.1144 46.8344 +96.6041 34.8547 47.8507 +96.0838 35.3497 48.5303 +96.1466 36.0635 49.5102 +96.3632 36.8447 50.5826 +96.564 37.6308 51.6619 +96.0026 38.1255 52.3411 +96.0931 38.8842 53.3826 +96.3323 39.7141 54.522 +96.3099 40.4469 55.528 +95.7067 40.9402 56.2052 +95.8197 41.7455 57.3108 +95.9161 42.5551 58.4223 +96.5511 43.6198 59.884 +95.3493 43.8605 60.2143 +95.9478 44.9351 61.6897 +95.2004 45.3893 62.3132 +95.9901 46.5883 63.9593 +95.8322 47.3446 64.9976 +95.8112 48.1794 66.1436 +95.8481 49.0561 67.3472 +95.6416 49.8198 68.3956 +95.6427 50.7032 69.6085 +95.5511 51.5507 70.7719 +95.4417 52.401 71.9394 +95.8945 53.5784 73.5557 +95.7441 54.4371 74.7346 +95.5042 55.2572 75.8604 +95.9544 56.4951 77.56 +95.7442 57.3639 78.7527 +95.5155 58.2348 79.9483 +95.2683 59.1078 81.1469 +95.0706 60.0257 82.407 +95.3258 61.2498 84.0875 +95.0165 62.1312 85.2975 +95.2848 63.4106 87.0539 +95.4566 64.6529 88.7595 +95.0142 65.4989 89.921 +94.6183 66.3909 91.1456 +94.7757 67.6921 92.9319 +94.7757 68.9085 94.6019 +94.7467 70.1302 96.2791 +94.6887 71.3566 97.9628 +94.7842 72.7279 99.8453 +94.2442 73.6352 101.091 +94.6958 75.3473 103.441 +93.9281 76.1168 104.498 +94.4804 77.9868 107.065 +94.468 79.4334 109.051 +94.1367 80.6439 110.713 +94.3358 82.3448 113.048 +94.3812 83.9551 115.259 +93.7324 84.9802 116.666 +93.9737 86.8489 119.232 +93.7957 88.3774 121.33 +93.893 90.2108 123.847 +93.4279 91.5479 125.683 +93.6408 93.5974 128.496 +93.65 95.5027 131.112 +93.1665 96.9534 133.104 +93.5683 99.3856 136.443 +93.8094 101.725 139.654 +93.2371 103.243 141.738 +93.3656 105.598 144.972 +93.4312 107.962 148.217 +93.4784 110.388 151.547 +92.9347 112.187 154.017 +93.2057 115.052 157.95 +93.0183 117.447 161.238 +92.4766 119.474 164.021 +91.231 120.644 165.627 +91.3933 123.754 169.897 +91.5874 127.037 174.404 +92.418 131.365 180.346 +92.4529 134.728 184.963 +92.2484 137.882 189.293 +105.181 161.327 221.479 +102.155 160.868 220.849 +100.075 161.885 222.245 +96.8374 161.005 221.038 +94.6101 161.775 222.095 +91.3203 160.692 220.608 +90.8201 164.571 225.933 +90.8733 169.691 232.963 +90.8399 174.938 240.165 +88.4708 175.849 241.417 +87.8732 180.429 247.704 +89.9792 191.029 262.256 +89.9396 197.626 271.313 +87.2074 198.537 272.564 +84.4065 199.32 273.639 +80.5853 197.628 271.316 +78.058 199.067 273.291 +74.3687 197.506 271.148 +71.7919 198.86 273.007 +68.3035 197.663 271.364 +65.7337 199.105 273.344 +62.1059 197.293 270.856 +59.4745 198.59 272.637 +56.0832 197.321 270.894 +53.3129 198.182 272.077 +50.0039 196.993 270.444 +47.4024 198.583 272.628 +44.157 197.477 271.109 +41.3137 198.105 271.971 +38.0702 196.731 270.084 +35.3829 198.207 272.111 +32.1658 196.682 270.017 +29.3802 197.719 271.441 +26.2995 196.748 270.107 +23.5498 198.285 272.218 +20.4513 196.87 270.275 +17.6215 197.968 271.782 +14.6081 196.991 270.442 +11.7193 197.588 271.262 +8.74572 196.641 269.961 +5.85179 197.385 270.982 +2.9103 196.347 269.558 +2.66454e-14 197.474 271.104 +-2.90594 196.053 269.153 +-5.85354 197.444 271.063 +-8.73787 196.464 269.718 +-11.7053 197.353 270.939 +-14.5383 196.051 269.15 +-17.5796 197.497 271.136 +-20.3475 195.871 268.904 +-23.4242 197.227 270.766 +-26.1818 195.867 268.898 +-29.3105 197.25 270.797 +-32.0317 195.861 268.89 +-35.1947 197.153 270.664 +-37.8099 195.385 268.237 +-41.009 196.645 269.966 +-43.7132 195.492 268.384 +-46.9709 196.776 270.146 +-49.5753 195.305 268.126 +-52.8905 196.612 269.921 +-55.39 194.881 267.545 +-58.8667 196.561 269.851 +-61.3223 194.804 267.438 +-64.6842 195.926 268.98 +-67.2867 194.721 267.325 +-70.8563 196.268 269.449 +-73.2432 194.517 267.045 +-76.8658 196.026 269.117 +-79.3714 194.651 267.229 +-83.1727 196.407 269.639 +-85.63 194.945 267.633 +-89.189 195.977 269.049 +-91.8231 194.944 267.631 +-95.4532 195.993 269.071 +-98.0421 194.874 267.535 +-101.775 195.996 269.075 +-104.435 195.016 267.73 +-108.125 195.928 268.982 +-110.771 194.918 267.596 +-114.535 195.844 268.867 +-117.166 194.805 267.44 +-121.007 195.744 268.73 +-123.518 194.509 267.033 +-127.722 195.9 268.944 +-130.291 194.743 267.356 +-136.357 198.707 272.797 +-139.105 197.727 271.451 +-143.516 199.064 273.287 +-144.108 195.134 267.892 +-143.822 190.191 261.105 +-144.935 187.247 257.065 +-117.192 147.969 203.141 +-111.373 137.477 188.737 +-112.135 135.365 185.838 +-113.87 134.468 184.605 +-114.996 132.881 182.427 +-116.915 132.233 181.537 +-118.729 131.471 180.491 +-121.246 131.477 180.499 +-123.433 131.106 179.991 +-129.064 134.31 184.389 +-439.95 448.652 615.938 +-441 440.795 605.15 +-441.697 432.809 594.187 +-443.183 425.804 584.57 +-444.337 418.668 574.773 +-445.851 412.049 565.686 +-447.312 405.545 556.757 +-448.89 399.304 548.188 +-450.262 393.028 539.574 +-451.936 387.158 531.514 +-453.125 381.011 523.075 +-454.516 375.169 515.055 +-456.239 369.724 507.579 +-458.37 364.715 500.703 +-460.088 359.478 493.513 +-471.486 361.771 496.662 +-479.354 361.237 495.929 +-487.304 360.696 495.186 +-484.073 351.956 483.187 +-485.519 346.775 476.074 +-487.104 341.786 469.225 +-488.645 336.853 462.452 +-489.617 331.619 455.267 +-498.688 331.869 455.61 +-477.224 312.055 428.408 +-479.331 307.985 422.82 +-481.082 303.745 417 +-483.087 299.724 411.48 +-484.385 295.325 405.44 +-487.202 291.901 400.739 +-488.116 287.388 394.544 +-490.574 283.837 389.669 +-492.1 279.793 384.117 +-142.173 79.4351 109.053 +-142.833 78.4207 107.661 +-142.368 76.8086 105.448 +-143.576 76.1139 104.494 +-142.751 74.3588 102.084 +-142.489 72.9275 100.119 +-142.5 71.6575 98.3758 +-146.851 72.5495 99.6004 +-147.843 71.7552 98.51 +-512.528 244.362 335.475 +-515.426 241.389 331.393 +-516.856 237.753 326.401 +-519.408 234.658 322.153 +-520.63 230.988 317.115 +-507.555 221.125 303.574 +-504.179 215.671 296.087 +-509.311 213.893 293.646 +-134.914 55.62 76.3585 +-135.981 55.0247 75.5413 +-520.055 206.53 283.537 +-523.263 203.915 279.947 +-525.008 200.738 275.585 +-528.3 198.159 272.045 +-530.03 195.001 267.709 +-532.133 191.993 263.579 +-534.187 188.979 259.442 +-536.967 186.227 255.664 +-382.004 129.853 178.271 +-382.521 127.422 174.932 +-382.559 124.852 171.405 +-382.813 122.376 168.005 +-382.051 119.603 164.198 +-381.858 117.038 160.676 +-379.034 113.708 156.105 +-380.258 111.624 153.245 +-380.549 109.279 150.025 +-381.342 107.092 147.023 +-379.562 104.208 143.063 +-380 101.961 139.978 +-380.674 99.7889 136.996 +-380.855 97.5004 133.855 +-383.206 95.77 131.479 +-381.562 93.054 127.75 +-381.351 90.7154 124.54 +-381.843 88.5581 121.578 +-382.301 86.4032 118.62 +-381.226 83.9198 115.21 +-382.079 81.8774 112.406 +-381.581 79.5576 109.222 +-380.949 77.2296 106.026 +-381.226 75.1012 103.104 +-380.898 72.8668 100.036 +-381.01 70.7302 97.1027 +-381.279 68.6324 94.2228 +-381.035 66.4533 91.2312 +-380.852 64.2984 88.2729 +-380.73 62.1659 85.3452 +-381.058 60.1158 82.5307 +-382.225 58.2 79.9005 +-381.811 56.0488 76.9472 +-380.391 53.7688 73.8171 +-380.589 51.7328 71.022 +-381.536 49.8009 68.3698 +-382.554 47.8755 65.7264 +-380.897 45.6264 62.6387 +-380.773 43.5777 59.8262 +-380.126 41.4802 56.9466 +-381.515 39.6074 54.3754 +-381.495 37.5873 51.6022 +-381.248 35.5521 48.8082 +-381.068 33.5311 46.0335 +-381.352 31.5555 43.3213 +-381.31 29.5565 40.577 +-380.046 27.4743 37.7184 +-381.134 25.5672 35.1003 +-379.112 23.4603 32.2078 +-380.241 21.5567 29.5944 +-379.949 19.5714 26.8689 +-381.52 17.6786 24.2703 +-380.87 15.6807 21.5275 +-381.088 13.7232 18.8401 +-380.278 11.7339 16.109 +-380.737 9.78731 13.4366 +-381.168 7.83695 10.759 +-3275.38 50.4981 69.3269 +-144.178 1.48172 2.0342 +-146.994 0.755275 1.03689 +96.6 3.55271e-15 -1.7053e-13 +96.6963 0.502971 0.677579 +96.6853 1.0059 1.35511 +96.6669 1.50876 2.03253 +96.6411 2.0115 2.7098 +96.7079 2.51669 3.39037 +96.5675 3.01649 4.06367 +96.5196 3.51865 4.74016 +96.4644 4.02055 5.4163 +96.5016 4.52682 6.09832 +96.332 5.02339 6.76728 +97.2502 5.58138 7.51898 +96.2697 6.03096 8.12463 +97.072 6.59219 8.88069 +96.0785 7.03147 9.47247 +96.8642 7.60092 10.2396 +96.6502 8.09617 10.9068 +96.5279 8.59857 11.5836 +96.2996 9.09102 12.247 +96.1628 9.59151 12.9212 +95.7233 10.0603 13.5528 +96.5556 10.6664 14.3693 +96.3958 11.1682 15.0453 +96.4246 11.693 15.7522 +96.0541 12.1693 16.3939 +96.0675 12.6942 17.1011 +95.878 13.1934 17.7736 +95.6812 13.6916 18.4447 +96.1563 14.2897 19.2505 +96.1371 14.8191 19.9637 +96.5926 15.4266 20.782 +96.5558 15.9603 21.501 +96.9913 16.5769 22.3316 +96.9367 17.1146 23.0561 +96.3955 17.5659 23.664 +96.23 18.0845 24.3626 +96.7224 18.7317 25.2345 +96.4445 19.2341 25.9113 +96.1592 19.735 26.5861 +95.9609 20.2543 27.2856 +96.3185 20.8954 28.1493 +97.1329 21.646 29.1605 +96.7189 22.1291 29.8113 +97.2286 22.8279 30.7527 +96.8907 23.3328 31.4328 +96.6378 23.8586 32.1413 +97.1133 24.57 33.0995 +96.8415 25.0979 33.8108 +96.4704 25.6007 34.4881 +96.0919 26.1015 35.1627 +96.5218 26.827 36.1401 +97.0279 27.5846 37.1607 +96.5305 28.0621 37.804 +96.116 28.5631 38.4789 +96.4069 29.2785 39.4426 +96.8616 30.054 40.4874 +96.3296 30.5287 41.1268 +96.582 31.2561 42.1068 +96.9079 32.0173 43.1323 +96.5224 32.5495 43.8493 +96.735 33.2888 44.8451 +96.244 33.7906 45.5212 +96.3456 34.5048 46.4834 +96.6041 35.2849 47.5343 +96.8471 36.0703 48.5923 +96.3153 36.5727 49.269 +96.3632 37.2995 50.2482 +96.564 38.0954 51.3204 +96.0026 38.5962 51.995 +96.1755 39.3979 53.0751 +96.3323 40.2043 54.1615 +96.3913 40.9807 55.2074 +96.5157 41.7959 56.3055 +95.8197 42.2609 56.9319 +95.996 43.1164 58.0844 +95.9958 43.9043 59.1458 +95.9797 44.6955 60.2117 +96.026 45.5269 61.3318 +95.9775 46.3248 62.4066 +96.0673 47.2013 63.5874 +95.9088 47.9674 64.6195 +95.9632 48.8515 65.8105 +95.8481 49.6616 66.9019 +95.7165 50.4742 67.9965 +95.6427 51.3291 69.1482 +95.5511 52.187 70.304 +95.4417 53.0479 71.4637 +95.8945 54.2398 73.0694 +95.7441 55.1091 74.2405 +95.5756 55.981 75.4151 +95.3887 56.8553 76.5929 +95.7442 58.072 78.232 +95.5155 58.9537 79.4197 +95.2683 59.8375 80.6103 +95.0706 60.7667 81.8622 +95.3258 62.0059 83.5315 +94.9496 62.8535 84.6733 +95.2848 64.1933 86.4783 +94.8005 65.0016 87.5672 +95.0142 66.3075 89.3264 +94.7469 67.3017 90.6658 +94.6484 68.4359 92.1938 +94.7757 69.7592 93.9763 +94.6845 70.9494 95.5798 +94.8119 72.3317 97.4419 +94.2363 73.2001 98.6118 +94.2442 74.5442 100.422 +94.1604 75.8465 102.177 +94.5746 77.5869 104.522 +93.9577 78.5126 105.769 +94.468 80.4139 108.33 +94.1367 81.6394 109.981 +93.8885 82.9656 111.767 +93.9949 84.644 114.029 +94.2226 86.4792 116.501 +94.1349 88.0718 118.646 +93.7427 89.4177 120.459 +93.8407 91.2738 122.96 +93.5309 92.7805 124.99 +93.5393 94.6497 127.508 +93.7 96.7329 130.314 +93.659 98.6694 132.923 +93.5683 100.612 135.541 +93.4277 102.562 138.166 +93.2371 104.517 140.801 +93.3194 106.849 143.942 +93.4766 109.348 147.309 +93.0769 111.27 149.898 +92.9785 113.625 153.071 +92.8182 115.987 156.253 +92.976 118.843 160.1 +92.9328 121.545 163.74 +91.0683 121.916 164.239 +91.3534 125.226 168.699 +92.7596 130.251 175.468 +92.7625 133.482 179.82 +92.4904 136.446 183.814 +92.7615 140.361 189.087 +94.7166 147.07 198.125 +101.28 161.458 217.509 +98.9122 161.979 218.21 +96.0362 161.644 217.76 +93.5357 161.912 218.121 +90.527 161.262 217.245 +91.2527 167.396 225.508 +90.8132 171.673 231.27 +90.4013 176.242 237.425 +88.9536 178.992 241.129 +86.2745 179.333 241.589 +90.1662 193.789 261.064 +89.3961 198.857 267.891 +86.2058 198.679 267.652 +83.4389 199.467 268.713 +79.955 198.503 267.414 +77.0457 198.911 267.964 +73.7626 198.315 267.161 +71.0226 199.157 268.296 +67.7452 198.468 267.367 +64.8369 198.813 267.832 +61.5956 198.087 266.854 +58.8494 198.928 267.987 +55.489 197.64 266.251 +52.7341 198.451 267.344 +49.6048 197.834 266.512 +46.7065 198.084 266.85 +43.661 197.669 266.291 +40.875 198.421 267.304 +37.7872 197.679 266.304 +34.9857 198.401 267.277 +31.9262 197.626 266.233 +29.0926 198.201 267.007 +26.017 197.037 265.44 +23.2429 198.116 266.893 +20.2925 197.754 266.405 +17.4279 198.209 267.018 +14.4555 197.339 265.847 +11.5936 197.884 266.58 +8.65933 197.102 265.527 +5.78896 197.676 266.3 +2.88237 196.864 265.206 +2.4869e-14 197.766 266.421 +-2.88237 196.864 265.206 +-5.78373 197.497 266.059 +-8.62792 196.387 264.564 +-11.5622 197.347 265.857 +-14.4206 196.863 265.204 +-17.3546 197.376 265.896 +-20.1338 196.207 264.321 +-23.1173 197.046 265.452 +-25.9778 196.74 265.039 +-28.9183 197.013 265.407 +-31.6866 196.143 264.235 +-34.7348 196.979 265.361 +-37.5269 196.317 264.469 +-40.6191 197.179 265.631 +-43.3347 196.192 264.301 +-46.3307 196.49 264.702 +-49.1023 195.829 263.812 +-52.2178 196.508 264.727 +-54.9609 195.759 263.717 +-58.1374 196.522 264.746 +-60.9031 195.861 263.855 +-64.0737 196.472 264.678 +-66.8082 195.723 263.669 +-70.0454 196.417 264.604 +-72.7237 195.521 263.398 +-75.921 196.007 264.052 +-78.6011 195.141 262.885 +-82.0599 196.171 264.272 +-84.7536 195.333 263.143 +-88.0502 195.863 263.858 +-90.8878 195.34 263.154 +-94.4334 196.292 264.436 +-97.1048 195.393 263.225 +-100.722 196.363 264.531 +-103.323 195.32 263.126 +-106.796 195.909 263.92 +-109.724 195.459 263.313 +-113.363 196.234 264.357 +-116.031 195.299 263.098 +-119.707 196.032 264.086 +-122.608 195.458 263.313 +-126.11 195.815 263.793 +-128.972 195.151 262.899 +-133.023 196.242 264.368 +-137.843 198.35 267.208 +-141.757 199.052 268.154 +-144.467 198.034 266.783 +-143.7 192.375 259.159 +-144.147 188.529 253.977 +-112.29 143.53 193.357 +-111.632 139.497 187.924 +-112.661 137.679 185.475 +-114.227 136.554 183.96 +-115.813 135.477 182.509 +-117.746 134.817 181.619 +-119.34 133.778 180.219 +-121.914 133.833 180.294 +-124.742 134.133 180.697 +-129.212 136.124 183.38 +-440.7 454.965 612.908 +-441.761 447.006 602.186 +-442.624 439.072 591.497 +-443.654 431.518 581.322 +-444.973 424.443 571.79 +-446.496 417.738 562.758 +-447.639 410.851 553.48 +-449.387 404.68 545.167 +-450.765 398.325 536.605 +-452.955 392.822 529.191 +-453.297 385.861 519.814 +-455.387 380.528 512.63 +-457.062 374.963 505.133 +-458.727 369.505 497.78 +-463.578 366.676 493.97 +-474.53 368.602 496.563 +-482.063 367.763 495.433 +-485.997 364.169 490.592 +-484.451 356.578 480.366 +-485.837 351.285 473.236 +-487.426 346.234 466.431 +-489.879 341.872 460.555 +-491.585 337.062 454.075 +-482.189 324.85 437.623 +-477.023 315.774 425.396 +-479.939 312.182 420.558 +-481.695 307.887 414.771 +-483.087 303.424 408.759 +-485.01 299.356 403.279 +-487.412 295.632 398.261 +-488.894 291.4 392.56 +-491.002 287.592 387.431 +-493.683 284.158 382.804 +-141.303 79.9234 107.669 +-142.614 79.2672 106.785 +-143.032 78.1198 105.239 +-143.576 77.0535 103.803 +-142.077 74.9214 100.931 +-142.187 73.6716 99.2469 +-143.184 72.8901 98.1943 +-147.617 73.8283 99.4581 +-511.587 251.361 338.623 +-513.227 247.715 333.711 +-516.13 244.702 329.652 +-517.802 241.128 324.837 +-519.884 237.772 320.316 +-522.148 234.521 315.937 +-515.513 227.365 306.296 +-2650.74 1147.9 1546.4 +-508.822 216.326 291.424 +-515.492 215.141 289.829 +-136.063 55.7378 75.0874 +-521.63 209.713 282.515 +-524.848 207.057 278.938 +-525.763 203.508 274.156 +-528.722 200.765 270.462 +-529.691 197.282 265.769 +-533.241 194.768 262.383 +-535.73 191.864 258.471 +-537.743 188.798 254.34 +-382.437 131.605 177.293 +-381.39 128.613 173.262 +-381.334 125.989 169.726 +-381.934 123.602 166.511 +-381.698 120.968 162.962 +-381.592 118.399 159.502 +-380.282 115.49 155.583 +-381.421 113.349 152.698 +-380.549 110.628 149.033 +-382.155 108.645 146.361 +-381.284 105.973 142.762 +-382.821 103.985 140.084 +-381.862 101.336 136.515 +-381.038 98.7517 133.034 +-381.917 96.6262 130.17 +-380.916 94.043 126.69 +-381.629 91.902 123.806 +-382.122 89.7169 120.863 +-381.368 87.2559 117.547 +-382.35 85.2067 114.787 +-381.327 82.7254 111.444 +-380.733 80.3609 108.259 +-382.179 78.4357 105.665 +-381.795 76.1421 102.575 +-381.849 73.9505 99.6227 +-381.868 71.7648 96.6783 +-382.139 69.6364 93.8109 +-381.898 67.4257 90.8328 +-381.14 65.141 87.755 +-381.212 63.0132 84.8885 +-381.348 60.9044 82.0476 +-381.257 58.7692 79.1711 +-381.811 56.7407 76.4384 +-379.516 54.3073 73.1603 +-380.784 52.3983 70.5886 +-380.658 50.2996 67.7613 +-381.38 48.3177 65.0915 +-382.171 46.3441 62.4326 +-380.577 44.0929 59.3999 +-381.11 42.1009 56.7164 +-380.924 40.0342 53.9322 +-380.312 37.9333 51.102 +-380.655 35.935 48.41 +-380.87 33.9273 45.7054 +-380.857 31.9036 42.979 +-381.31 29.9214 40.3087 +-381.237 27.9006 37.5864 +-381.333 25.8963 34.8863 +-380.604 23.8433 32.1206 +-380.54 21.8399 29.4217 +-381.244 19.8806 26.7822 +-381.121 17.8781 24.0846 +-381.169 15.8868 21.4019 +-381.287 13.8999 18.7253 +-380.877 11.8975 16.0277 +-381.037 9.91594 13.3583 +-380.168 7.91289 10.6599 +-147.549 2.30293 3.1024 +-144.778 1.50625 2.02916 +-147.194 0.765641 1.03144 +96.8 5.32907e-15 1.13687e-13 +95.7964 0.504325 0.66675 +96.6853 1.01809 1.34598 +96.7668 1.52861 2.02093 +96.741 2.03797 2.69433 +96.7079 2.54717 3.36753 +96.6673 3.05618 4.04046 +96.6194 3.56495 4.7131 +96.664 4.07766 5.39093 +96.5016 4.58165 6.05723 +96.4316 5.0895 6.72864 +96.3544 5.59695 7.39953 +96.2697 6.10401 8.06989 +97.072 6.67203 8.82086 +96.9718 7.18275 9.49606 +96.8642 7.69299 10.1706 +95.8579 8.12709 10.7445 +96.6268 8.71165 11.5174 +96.3984 9.21054 12.1769 +96.0642 9.69774 12.821 +95.9203 10.2031 13.4891 +96.7523 10.8176 14.3016 +96.5921 11.3265 14.9744 +96.4246 11.8346 15.6461 +96.2497 12.3418 16.3166 +96.0675 12.848 16.9859 +95.9755 13.3668 17.6718 +96.5563 13.9842 18.488 +96.4474 14.5065 19.1786 +96.2339 15.0138 19.8492 +96.7858 15.6447 20.6833 +96.5558 16.1536 21.3561 +96.3184 16.6613 22.0273 +96.9367 17.322 22.9007 +95.6305 17.6376 23.318 +96.23 18.3036 24.1985 +96.7224 18.9586 25.0645 +96.4445 19.4671 25.7367 +97.0102 20.1508 26.6407 +96.6208 20.6406 27.2882 +96.4125 21.1691 27.9869 +97.1329 21.9082 28.9641 +96.8123 22.4188 29.639 +96.4843 22.9275 30.3117 +96.9834 23.6379 31.2509 +96.6378 24.1476 31.9247 +97.2053 24.8912 32.9077 +97.1167 25.4741 33.6784 +96.5618 25.9353 34.2882 +97.0019 26.6678 35.2566 +96.5218 27.1519 35.8966 +97.0279 27.9187 36.9104 +96.8001 28.4814 37.6542 +96.2054 28.9361 38.2553 +96.4069 29.6331 39.1769 +96.7729 30.3902 40.1778 +96.3296 30.8985 40.8497 +96.6699 31.6635 41.8612 +96.2082 32.1712 42.5324 +96.5224 32.9438 43.5538 +95.9556 33.4205 44.1841 +96.9333 34.4449 45.5384 +96.4313 34.9539 46.2113 +96.6041 35.7123 47.214 +96.8471 36.5072 48.2649 +96.3153 37.0157 48.9371 +96.531 37.817 49.9966 +96.7308 38.6234 51.0626 +96.1684 39.1312 51.7339 +96.3404 39.9435 52.8078 +96.3323 40.6913 53.7966 +96.3913 41.4771 54.8354 +95.7876 41.983 55.5043 +95.9001 42.8086 56.5958 +95.996 43.6386 57.693 +95.9958 44.4361 58.7473 +95.9009 45.1997 59.7569 +96.026 46.0784 60.9186 +95.9775 46.8859 61.9862 +95.9901 47.7347 63.1083 +95.9088 48.5484 64.1841 +95.8872 49.4041 65.3154 +95.8481 50.2632 66.4511 +95.7165 51.0856 67.5384 +95.5684 51.9105 68.629 +95.6249 52.8599 69.8842 +95.4417 53.6905 70.9822 +95.8945 54.8968 72.5771 +95.6722 55.7348 73.685 +95.6469 56.7014 74.9629 +95.318 57.5014 76.0205 +95.7442 58.7754 77.7049 +95.585 59.7112 78.9421 +95.2683 60.5623 80.0672 +95.0706 61.5028 81.3106 +95.3258 62.7569 82.9687 +95.0165 63.66 84.1626 +95.351 65.0161 85.9555 +94.9317 65.8794 87.0968 +95.0792 67.1565 88.7852 +95.2611 68.4867 90.5438 +94.6484 69.2649 91.5726 +94.7757 70.6041 93.3432 +94.7467 71.8559 94.9981 +94.8119 73.2078 96.7854 +94.9059 74.6134 98.6437 +94.7257 75.8326 100.256 +94.2199 76.8135 101.552 +94.6334 78.5756 103.882 +94.3642 79.8074 105.511 +94.4107 81.3385 107.535 +94.25 82.7278 109.371 +93.9444 84.0206 111.081 +93.8845 85.5685 113.127 +94.2226 87.5267 115.716 +93.9737 88.986 117.645 +93.7427 90.5008 119.648 +93.9452 92.4825 122.268 +93.9944 94.3695 124.763 +93.6408 95.9005 126.787 +93.65 97.8527 129.368 +93.659 99.8646 132.027 +93.5683 101.831 134.627 +93.4277 103.804 137.235 +93.1901 105.73 139.782 +93.3194 108.143 142.972 +93.4766 110.673 146.316 +93.0769 112.618 148.888 +92.9347 114.947 151.968 +93.1626 117.828 155.776 +92.976 120.282 159.021 +92.8913 122.963 162.565 +91.5564 124.053 164.007 +91.4332 126.854 167.71 +92.6033 131.607 173.993 +92.7625 135.098 178.609 +92.4529 138.043 182.502 +92.4316 141.555 187.145 +92.889 145.979 192.993 +100.65 162.397 214.699 +98.2966 162.921 215.392 +95.402 162.522 214.864 +92.9823 162.904 215.369 +90.5587 163.273 215.857 +91.1291 169.194 223.685 +91.0838 174.27 230.396 +90.0212 177.627 234.834 +88.6696 180.582 238.741 +86.0815 181.099 239.425 +90.193 196.195 259.382 +89.0338 200.449 265.007 +85.7802 200.093 264.536 +82.8341 200.42 264.968 +79.5582 199.91 264.294 +76.6408 200.262 264.76 +73.4163 199.775 264.115 +70.3365 199.622 263.914 +67.2468 199.394 263.612 +64.3408 199.681 263.992 +61.2676 199.419 263.645 +58.3805 199.734 264.061 +55.2084 199.023 263.121 +52.4525 199.782 264.125 +49.324 199.096 263.218 +46.4977 199.587 263.867 +43.4913 199.286 263.469 +40.5703 199.328 263.524 +37.6061 199.114 263.242 +34.7453 199.424 263.652 +31.7729 199.059 263.169 +28.866 199.039 263.142 +25.9543 198.942 263.015 +23.0615 198.952 263.027 +20.1277 198.523 262.46 +17.3023 199.164 263.307 +14.3813 198.705 262.7 +11.5064 198.773 262.791 +8.61222 198.404 262.303 +5.75929 199.045 263.15 +2.87103 198.464 262.382 +2.13163e-14 198.713 262.712 +-2.8719 198.524 262.462 +-5.74184 198.442 262.353 +-8.61222 198.404 262.303 +-11.5029 198.713 262.711 +-14.3551 198.343 262.223 +-17.2342 198.381 262.272 +-20.1155 198.403 262.301 +-23.0196 198.59 262.549 +-25.813 197.86 261.584 +-28.805 198.618 262.586 +-31.562 197.738 261.423 +-34.578 198.465 262.383 +-37.3457 197.735 261.419 +-40.3144 198.07 261.861 +-43.165 197.791 261.492 +-46.0245 197.556 261.182 +-48.8806 197.306 260.852 +-51.858 197.518 261.132 +-54.6968 197.178 260.682 +-57.7033 197.417 260.999 +-60.5933 197.224 260.743 +-63.6348 197.49 261.095 +-66.5091 197.207 260.72 +-69.5049 197.262 260.794 +-72.5073 197.301 260.845 +-75.5611 197.441 261.03 +-78.2275 196.566 259.873 +-81.5035 197.201 260.712 +-84.328 196.706 260.057 +-87.6361 197.303 260.847 +-90.4869 196.834 260.227 +-93.7718 197.278 260.814 +-96.9344 197.413 260.993 +-100.02 197.357 260.919 +-103.202 197.456 261.05 +-106.271 197.306 260.852 +-109.438 197.312 260.859 +-112.614 197.299 260.841 +-115.731 197.153 260.649 +-119.126 197.443 261.033 +-122.117 197.035 260.493 +-125.465 197.173 260.676 +-128.532 196.841 260.237 +-131.974 197.052 260.516 +-137.115 199.694 264.008 +-140.624 199.853 264.219 +-144.267 200.156 264.619 +-144.107 195.256 258.141 +-143.94 190.538 251.903 +-111.909 144.776 191.403 +-111.675 141.241 186.73 +-112.749 139.455 184.369 +-114.227 138.208 182.72 +-115.858 137.172 181.35 +-117.792 136.503 180.466 +-119.715 135.825 179.569 +-122.2 135.772 179.5 +-125.663 136.759 180.804 +-439.882 469.027 620.083 +-440.7 460.476 608.779 +-441.761 452.421 598.129 +-442.572 444.338 587.444 +-444.124 437.208 578.017 +-445.291 429.891 568.343 +-446.496 422.798 558.967 +-448.347 416.486 550.621 +-449.387 409.582 541.494 +-451.492 403.8 533.849 +-452.955 397.58 525.626 +-453.814 390.979 516.9 +-1902.67 1609.16 2127.41 +-457.591 379.944 502.31 +-459.441 374.562 495.196 +-465.323 372.515 492.489 +-477.208 375.172 496.002 +-482.74 372.741 492.787 +-488.736 370.657 490.033 +-484.325 360.804 477.006 +-486.663 356.145 470.847 +-487.747 350.659 463.594 +-489.684 345.876 457.27 +-491.126 340.826 450.594 +-478.213 326.074 431.09 +-478.094 320.316 423.479 +-479.939 315.964 417.724 +-481.695 311.616 411.976 +-483.431 307.318 406.294 +-485.636 303.372 401.078 +-487.412 299.212 395.578 +-490.025 295.612 390.817 +-491.929 291.625 385.547 +-493.611 287.558 380.17 +-141.521 81.0164 107.109 +-143.272 80.5971 106.555 +-143.253 79.1879 104.691 +-143.055 77.7045 102.73 +-142.751 76.1885 100.726 +-142.867 74.9198 99.0488 +-143.793 74.0867 97.9474 +-148.459 75.1491 99.3519 +-513.053 255.135 337.305 +-514.548 251.361 332.316 +-516.365 247.779 327.58 +-518.511 244.383 323.09 +-520.598 240.983 318.595 +-522.627 237.58 314.096 +-523.07 233.492 308.691 +-2650.74 1161.8 1535.98 +-2667.45 1147.8 1517.47 +-512.216 216.363 286.045 +-133.344 55.2853 73.0907 +-134.884 54.8848 72.5613 +-524.681 209.499 276.971 +-527.021 206.466 272.961 +-529.228 203.392 268.897 +-530.878 200.118 264.569 +-533.753 197.316 260.865 +-535.73 194.188 256.729 +-538.863 191.483 253.152 +-2837.53 988.288 1306.58 +-382.173 130.438 172.448 +-381.859 127.69 168.815 +-381.495 124.956 165.2 +-380.815 122.15 161.49 +-381.681 119.861 158.464 +-379.48 116.643 154.21 +-381.153 114.641 151.562 +-382.527 112.55 148.799 +-381.072 109.649 144.964 +-381.012 107.18 141.699 +-382.548 105.17 139.042 +-381.588 102.49 135.498 +-382.139 100.237 132.519 +-381.457 97.6789 129.138 +-382.024 95.4596 126.204 +-381.351 92.9476 122.883 +-381.006 90.5382 119.697 +-379.874 87.9671 116.298 +-381.788 86.1121 113.846 +-381.233 83.7069 110.666 +-381.581 81.5152 107.768 +-381.517 79.2482 104.771 +-381.226 76.9492 101.732 +-381.183 74.7159 98.7793 +-381.868 72.6341 96.0269 +-380.322 70.1444 92.7355 +-381.514 68.1742 90.1307 +-380.948 65.8969 87.1199 +-382.561 64.0021 84.6148 +-381.83 61.7199 81.5977 +-381.257 59.481 78.6377 +-381.811 57.4279 75.9234 +-380.877 55.1622 72.928 +-381.076 53.0737 70.1668 +-381.536 51.0263 67.4601 +-381.478 48.9155 64.6695 +-380.309 46.6769 61.7099 +-380.577 44.627 58.9997 +-382.584 42.7757 56.5522 +-380.037 40.4248 53.4442 +-381.495 38.5122 50.9157 +-381.149 36.4175 48.1463 +-381.365 34.3829 45.4564 +-381.352 32.332 42.745 +-380.814 30.2444 39.9851 +-380.344 28.1723 37.2456 +-380.737 26.169 34.5971 +-380.604 24.1321 31.9042 +-381.834 22.1796 29.3229 +-381.244 20.1214 26.6017 +-380.623 18.071 23.891 +-381.668 16.1002 21.2855 +-381.387 14.072 18.604 +-380.877 12.0416 15.9197 +-380.837 10.0308 13.2614 +-380.868 8.02345 10.6075 +-148.049 2.33872 3.09193 +-145.378 1.53082 2.02384 +-146.794 0.77281 1.0217 +96.7 5.32907e-15 -1.7053e-13 +95.8963 0.510851 0.662866 +96.6853 1.03019 1.33674 +96.6669 1.54518 2.00498 +96.741 2.06219 2.67583 +96.7079 2.57744 3.34441 +96.6673 3.0925 4.01273 +96.6194 3.60732 4.68075 +96.664 4.12612 5.35393 +96.5016 4.6361 6.01566 +96.4316 5.14998 6.68246 +97.2502 5.71612 7.41707 +97.1648 6.23393 8.08896 +97.1713 6.75822 8.76927 +96.9718 7.26811 9.43089 +96.9633 7.79241 10.1112 +96.7492 8.3001 10.77 +96.5279 8.80615 11.4266 +96.3984 9.32 12.0934 +96.2615 9.83313 12.7592 +96.0188 10.335 13.4103 +96.7523 10.9462 14.2034 +95.6105 11.3447 14.7205 +96.4246 11.9752 15.5387 +96.2497 12.4884 16.2046 +96.1652 13.0139 16.8864 +95.9755 13.5257 17.5505 +96.5563 14.1504 18.3611 +96.4474 14.6789 19.047 +96.2339 15.1922 19.7129 +96.7858 15.8306 20.5414 +96.6521 16.3619 21.2307 +96.3184 16.8593 21.8762 +96.9367 17.5278 22.7436 +96.4911 18.0078 23.3664 +96.23 18.5211 24.0324 +96.8176 19.2028 24.9169 +96.5393 19.7178 25.5852 +97.0102 20.3903 26.4578 +96.715 20.9063 27.1274 +96.4125 21.4207 27.7948 +97.1329 22.1686 28.7653 +96.8123 22.6852 29.4356 +97.2286 23.379 30.3359 +96.9834 23.9189 31.0364 +97.4693 24.6448 31.9784 +97.2053 25.187 32.6819 +96.8415 25.7038 33.3525 +96.5618 26.2435 34.0529 +97.0019 26.9847 35.0146 +96.6124 27.5004 35.6837 +96.1253 27.9877 36.316 +96.6204 28.7663 37.3263 +96.9214 29.4978 38.2755 +96.5851 30.0407 38.9799 +96.8616 30.7795 39.9386 +96.3296 31.2657 40.5694 +96.6699 32.0398 41.5739 +96.2082 32.5535 42.2405 +96.6095 33.3653 43.2939 +96.735 34.0924 44.2372 +96.244 34.6063 44.9042 +96.4313 35.3693 45.8941 +96.6041 36.1367 46.89 +96.8471 36.9411 47.9337 +97.0744 37.7508 48.9843 +96.531 38.2665 49.6534 +96.7308 39.0824 50.7122 +96.1684 39.5962 51.3789 +96.1755 40.349 52.3557 +96.3323 41.1749 53.4273 +96.3913 41.97 54.4591 +95.7876 42.4819 55.1233 +95.9001 43.3174 56.2074 +95.9161 44.1205 57.2494 +96.0751 45.0013 58.3924 +95.9797 45.7745 59.3956 +96.026 46.626 60.5005 +95.9775 47.4431 61.5607 +96.0673 48.3408 62.7256 +95.2959 48.8115 63.3363 +95.9632 50.0308 64.9185 +95.8481 50.8605 65.9951 +95.7914 51.7332 67.1274 +95.6427 52.5682 68.211 +95.5511 53.4469 69.3511 +96.0999 54.7032 70.9812 +95.8945 55.5492 72.079 +95.8161 56.4819 73.2893 +95.5042 57.2897 74.3374 +95.4594 58.271 75.6108 +95.1835 59.1256 76.7197 +95.585 60.4208 78.4003 +95.2683 61.282 79.5177 +95.6844 62.6353 81.2738 +95.3933 63.5479 82.4579 +95.6188 64.8243 84.1141 +95.2848 65.743 85.3062 +94.9317 66.6623 86.4991 +95.0792 67.9546 88.1759 +94.7469 68.9264 89.4369 +94.8393 70.229 91.1271 +94.7757 71.4432 92.7026 +94.7467 72.7098 94.3461 +94.935 74.1736 96.2455 +94.9059 75.5001 97.9667 +94.2442 76.3437 99.0613 +94.2199 77.7263 100.855 +94.6334 79.5094 103.169 +94.4804 80.8554 104.916 +94.3533 82.2557 106.733 +94.25 83.7109 108.621 +94.0562 85.1204 110.45 +93.9949 86.6874 112.483 +94.277 88.6182 114.988 +94.0812 90.1467 116.972 +93.7957 91.6282 118.894 +93.475 93.1127 120.82 +93.4794 94.9678 123.227 +93.5393 96.9346 125.78 +93.65 99.0156 128.48 +93.659 101.051 131.121 +93.5683 103.041 133.703 +93.4277 105.037 136.293 +93.1901 106.987 138.823 +93.735 109.915 142.623 +93.4766 111.988 145.312 +93.5231 114.503 148.575 +92.9347 116.313 150.925 +93.1626 119.228 154.707 +93.0183 121.767 158.001 +92.8498 124.368 161.377 +91.5971 125.583 162.953 +91.3933 128.306 166.486 +92.6033 133.171 172.799 +92.418 136.197 176.725 +92.4529 139.683 181.249 +92.4316 143.237 185.861 +91.8855 146.118 189.598 +100.404 163.927 212.706 +98.0572 164.455 213.392 +95.135 163.993 212.793 +92.6893 164.32 213.217 +90.5905 165.271 214.45 +91.2218 171.379 222.376 +90.9635 176.108 228.512 +89.8751 179.446 232.844 +88.4708 182.318 236.57 +86.3847 183.897 238.619 +90.193 198.526 257.602 +88.7749 202.242 262.424 +85.6049 202.058 262.184 +82.447 201.854 261.92 +79.138 201.217 261.093 +76.3034 201.75 261.785 +73.0267 201.076 260.91 +70.1286 201.398 261.328 +66.8879 200.687 260.406 +64.1691 201.515 261.48 +60.9578 200.769 260.512 +58.2416 201.627 261.625 +55.0764 200.906 260.69 +52.1709 201.071 260.904 +49.191 200.918 260.706 +46.3446 201.294 261.193 +43.0997 199.839 259.305 +40.3631 200.666 260.379 +37.425 200.51 260.176 +34.6616 201.309 261.212 +31.6099 200.392 260.023 +28.7963 200.918 260.705 +25.813 200.212 259.789 +23.0475 201.194 261.063 +20.0789 200.395 260.027 +17.2552 200.982 260.788 +14.3421 200.517 260.185 +11.475 200.586 260.275 +8.59651 200.395 260.027 +5.73661 200.617 260.315 +2.85445 199.663 259.077 +2.39808e-14 200.281 259.879 +-2.8562 199.786 259.236 +-5.72439 200.19 259.76 +-8.5651 199.663 259.077 +-11.4889 200.83 260.591 +-14.3115 200.091 259.632 +-17.1871 200.19 259.76 +-19.9995 199.603 258.999 +-22.929 200.158 259.72 +-25.7424 199.664 259.078 +-28.6917 200.188 259.758 +-31.4757 199.541 258.919 +-34.4317 199.974 259.48 +-37.1986 199.297 258.602 +-40.2169 199.939 259.435 +-42.9953 199.355 258.677 +-45.9271 199.48 258.84 +-48.6441 198.685 257.808 +-51.7016 199.262 258.557 +-54.5812 199.1 258.346 +-57.5991 199.403 258.739 +-60.2653 198.488 257.552 +-63.4631 199.298 258.603 +-66.1503 198.474 257.534 +-69.3385 199.129 258.384 +-72.1393 198.632 257.74 +-75.2011 198.836 258.003 +-78.0641 198.487 257.551 +-81.3099 199.07 258.307 +-84.1778 198.689 257.812 +-87.1703 198.587 257.68 +-90.2731 198.703 257.831 +-93.6064 199.27 258.567 +-96.4232 198.706 257.835 +-99.4941 198.652 257.765 +-102.661 198.754 257.898 +-106.055 199.245 258.535 +-108.867 198.615 257.717 +-112.288 199.066 258.302 +-115.197 198.576 257.666 +-118.544 198.814 257.976 +-121.417 198.233 257.221 +-124.927 198.661 257.777 +-127.909 198.215 257.199 +-131.674 198.941 258.14 +-136.618 201.334 261.245 +-140.312 201.779 261.822 +-143.709 201.751 261.786 +-143.741 197.075 255.718 +-143.525 192.247 249.454 +-111.275 145.667 189.013 +-111.718 142.975 185.52 +-112.793 141.167 183.175 +-114.673 140.397 182.175 +-116.267 139.292 180.741 +-118.069 138.45 179.649 +-120.138 137.924 178.966 +-122.534 137.761 178.755 +-125.954 138.705 179.979 +-439.783 474.494 615.69 +-440.9 466.159 604.875 +-442.218 458.27 594.638 +-442.778 449.828 583.684 +-444.124 442.403 574.05 +-445.45 435.155 564.644 +-446.872 428.184 555.598 +-448.565 421.64 547.107 +-449.884 414.907 538.372 +-451.492 408.599 530.186 +-453.125 402.455 522.214 +-454.502 396.226 514.131 +-456.084 390.311 506.456 +-457.767 384.607 499.055 +-459.501 379.062 491.86 +-466.948 378.258 490.816 +-478.121 380.357 493.54 +-486.742 380.297 493.462 +-484.379 371.718 482.33 +-484.828 365.471 474.224 +-487.172 360.755 468.104 +-488.904 355.667 461.503 +-490.333 350.451 454.734 +-491.716 345.291 448.04 +-477.086 329.172 427.123 +-478.428 324.35 420.867 +-479.939 319.719 414.857 +-482.309 315.721 409.67 +-483.707 311.148 403.736 +-485.636 306.978 398.325 +-488.113 303.204 393.429 +-490.237 299.254 388.303 +-492.357 295.348 383.235 +-494.546 291.527 378.276 +-141.883 82.1891 106.646 +-142.98 81.3889 105.608 +-143.327 80.1705 104.027 +-142.684 78.4234 101.76 +-142.826 77.1348 100.088 +-142.867 75.8102 98.3691 +-145.998 76.1166 98.7667 +-148.689 76.16 98.8229 +-512.436 257.857 334.587 +-514.315 254.233 329.885 +-516.834 250.952 325.628 +-518.511 247.287 320.872 +-521.312 244.181 316.842 +-522.627 240.403 311.94 +-524.838 237.066 307.609 +-508.548 225.542 292.656 +-2667.45 1161.44 1507.05 +-511.806 218.759 283.856 +-134.745 56.5301 73.3518 +-136.045 56.015 72.6834 +-525.348 212.258 275.419 +-527.021 208.919 271.088 +-529.565 205.94 267.221 +-531.641 202.788 263.131 +-534.179 199.82 259.281 +-536.072 196.622 255.13 +-538.863 193.758 251.415 +-2837.53 1000.03 1297.61 +-381.651 131.808 171.031 +-382.821 129.533 168.079 +-381.758 126.528 164.179 +-382.493 124.146 161.088 +-381.237 121.145 157.195 +-382.42 118.944 154.338 +-381.69 116.166 150.734 +-382.796 113.968 147.881 +-381.884 111.189 144.275 +-381.284 108.532 140.827 +-380.546 105.863 137.365 +-381.588 103.708 134.568 +-381.222 101.184 131.294 +-380.997 98.7207 128.097 +-379.992 96.08 124.671 +-380.794 93.9148 121.861 +-381.843 91.8156 119.137 +-382.208 89.5594 116.21 +-381.788 87.1354 113.064 +-382.643 85.0148 110.313 +-382.524 82.6879 107.293 +-382.368 80.3688 104.284 +-381.226 77.8637 101.034 +-381.469 75.6606 98.175 +-382.059 73.5339 95.4154 +-382.426 71.3705 92.6083 +-380.843 68.8629 89.3545 +-380.371 66.5793 86.3913 +-381.79 64.632 83.8646 +-380.092 62.169 80.6686 +-381.934 60.2949 78.2369 +-381.811 58.1104 75.4024 +-382.044 55.9888 72.6494 +-381.758 53.8005 69.8099 +-380.658 51.5138 66.8428 +-381.086 49.4461 64.1598 +-381.485 47.3776 61.4758 +-381.558 45.2739 58.746 +-382.29 43.2507 56.1209 +-381.81 41.096 53.325 +-381.89 39.0102 50.6185 +-381.742 36.9076 47.8902 +-381.068 34.7644 45.1093 +-381.847 32.7586 42.5066 +-380.913 30.6118 39.721 +-381.535 28.5964 37.1059 +-381.631 26.5422 34.4404 +-381.499 24.4764 31.7598 +-381.834 22.4432 29.1216 +-380.845 20.3392 26.3915 +-380.922 18.3001 23.7457 +-380.471 16.2405 21.0732 +-380.788 14.2168 18.4474 +-380.877 12.1847 15.8105 +-381.636 10.1713 13.198 +-381.168 8.12521 10.543 +-145.45 2.32496 3.01681 +-146.978 1.56605 2.03206 +-146.794 0.781994 1.01469 +96.6 3.55271e-15 -1.7053e-13 +96.5963 0.520582 0.663034 +96.5853 1.04112 1.32602 +96.5669 1.56159 1.9889 +97.4406 2.10133 2.67634 +96.608 2.60481 3.31759 +97.3664 3.1512 4.01349 +96.5196 3.64563 4.64321 +96.4644 4.16564 5.30552 +96.4019 4.68533 5.96742 +97.2286 5.25311 6.69057 +97.1507 5.77688 7.35766 +97.0653 6.30022 8.02421 +96.9726 6.82304 8.69009 +96.8725 7.34536 9.35534 +96.8642 7.87522 10.0302 +96.6502 8.38834 10.6837 +96.429 8.89973 11.335 +96.2996 9.41909 11.9965 +96.0642 9.92746 12.644 +96.7081 10.5306 13.4122 +96.5556 11.0513 14.0754 +96.3958 11.5712 14.7376 +96.2286 12.0903 15.3987 +96.0541 12.6084 16.0586 +95.8723 13.1256 16.7173 +96.7549 13.7945 17.5693 +95.4867 14.1569 18.0307 +96.3504 14.8352 18.8947 +97.0084 15.4931 19.7326 +96.5926 15.9833 20.357 +96.5558 16.5363 21.0612 +96.1262 17.0219 21.6798 +96.7449 17.6971 22.5398 +96.3955 18.1998 23.18 +96.1347 18.7186 23.8407 +95.8665 19.2359 24.4996 +96.4445 19.9282 25.3813 +96.1592 20.4472 26.0423 +96.5265 21.1089 26.8851 +96.2245 21.6283 27.5467 +97.0392 22.4056 28.5366 +96.7189 22.9276 29.2015 +97.2286 23.6517 30.1237 +96.798 24.1516 30.7604 +96.5454 24.696 31.4538 +97.0212 25.4325 32.3919 +96.8415 26.0037 33.1193 +96.4704 26.5246 33.7827 +97.0019 27.2995 34.7697 +96.6124 27.8212 35.4342 +96.9377 28.5535 36.3669 +96.5305 29.0748 37.0308 +96.8319 29.8144 37.9727 +96.4069 30.3351 38.6359 +96.7729 31.1101 39.623 +96.2413 31.6014 40.2488 +96.6699 32.4136 41.2832 +96.1207 32.9033 41.907 +96.4354 33.6937 42.9136 +96.6484 34.4592 43.8886 +96.244 35.01 44.5901 +96.3456 35.75 45.5326 +96.6041 36.5583 46.5621 +96.8471 37.372 47.5985 +96.3153 37.8925 48.2614 +96.3632 38.6455 49.2205 +96.564 39.4701 50.2707 +96.0026 39.989 50.9316 +96.1755 40.8197 51.9895 +96.3323 41.6552 53.0537 +96.3099 42.4238 54.0326 +95.7876 42.9775 54.7378 +95.9001 43.8227 55.8143 +95.996 44.6723 56.8964 +95.9958 45.4886 57.9361 +95.9009 46.2704 58.9318 +95.8695 47.093 59.9794 +95.9775 47.9965 61.1302 +95.9129 48.8261 62.1869 +95.9088 49.6984 63.2978 +95.9632 50.6144 64.4645 +95.8481 51.4538 65.5336 +95.7165 52.2957 66.6058 +95.6427 53.1814 67.734 +95.4774 54.0286 68.8129 +96.0267 55.2992 70.4312 +95.2417 55.8146 71.0877 +95.6722 57.055 72.6675 +95.5756 58.0012 73.8726 +95.3887 58.9071 75.0264 +95.1134 59.7713 76.1271 +95.5155 61.0812 77.7954 +95.2683 61.9969 78.9616 +95.6162 63.3209 80.648 +95.3258 64.2435 81.823 +95.0165 65.168 83.0005 +95.2848 66.5099 84.7096 +94.8005 67.3473 85.7762 +95.0142 68.7004 87.4995 +95.1968 70.0614 89.233 +94.7757 71.0007 90.4293 +94.6498 72.1809 91.9324 +94.8712 73.6543 93.809 +94.8119 74.9419 95.4489 +94.6624 76.1844 97.0315 +94.2442 77.2343 98.3686 +94.2199 78.633 100.15 +94.1044 79.9873 101.875 +94.3642 81.6979 104.054 +94.296 83.1646 105.922 +94.25 84.6874 107.861 +94.0562 86.1134 109.677 +93.8845 87.5955 111.565 +93.7868 89.1857 113.59 +94.0274 91.1464 116.088 +93.8487 92.7489 118.129 +93.893 94.6201 120.512 +93.4794 96.0757 122.366 +93.5393 98.0654 124.9 +93.6 100.117 127.513 +93.659 102.23 130.204 +93.5683 104.243 132.768 +93.4754 106.317 135.41 +93.1901 108.235 137.852 +93.3194 110.705 140.998 +93.4766 113.294 144.296 +93.4338 115.728 147.396 +93.0224 117.781 150.011 +93.1626 120.619 153.625 +92.976 123.132 156.825 +92.7669 125.707 160.105 +91.8411 127.387 162.245 +92.4699 131.331 167.269 +92.6033 134.724 171.59 +92.7625 138.299 176.143 +92.4154 141.255 179.908 +92.395 144.851 184.488 +91.3122 146.9 187.097 +99.4589 164.277 209.23 +97.4415 165.329 210.569 +94.5007 164.8 209.896 +91.9079 164.836 209.941 +91.0664 168.077 214.07 +91.1291 173.202 220.597 +91.0537 178.339 227.139 +89.2318 180.24 229.561 +87.6471 182.728 232.729 +86.9636 187.289 238.538 +89.8723 200.128 254.891 +88.3867 203.707 259.449 +84.7787 202.442 257.837 +82.0115 203.13 258.714 +78.5077 201.943 257.203 +75.921 203.081 258.651 +72.7021 202.517 257.934 +69.7752 202.72 258.192 +66.569 202.06 257.351 +63.8256 202.774 258.261 +60.648 202.078 257.375 +57.7901 202.398 257.782 +54.6473 201.666 256.849 +51.9206 202.441 257.837 +48.8214 201.736 256.938 +46.0802 202.48 257.887 +42.904 201.251 256.322 +40.2534 202.456 257.855 +37.142 201.315 256.403 +34.4108 202.183 257.509 +31.3895 201.316 256.404 +28.6568 202.277 257.628 +25.609 200.946 255.933 +22.9011 202.247 257.59 +19.9262 201.192 256.245 +17.1296 201.846 257.079 +14.2374 201.376 256.48 +11.4226 202.001 257.276 +8.54939 201.622 256.794 +5.70345 201.784 257 +2.83874 200.881 255.85 +2.57572e-14 201.444 256.567 +-2.84049 201.004 256.007 +-5.69297 201.413 256.528 +-8.51798 200.881 255.85 +-11.3877 201.383 256.489 +-14.1937 200.759 255.694 +-17.0929 201.415 256.529 +-19.8896 200.822 255.774 +-22.7825 201.2 256.256 +-25.6012 200.885 255.855 +-28.5261 201.355 256.453 +-31.3032 200.762 255.699 +-34.2331 201.139 256.179 +-36.9835 200.456 255.309 +-40.0463 201.414 256.529 +-42.7604 200.578 255.464 +-45.7044 200.829 255.784 +-48.4076 200.026 254.76 +-51.4982 200.794 255.739 +-54.1356 199.778 254.445 +-57.2518 200.512 255.38 +-59.9737 199.832 254.513 +-63.1196 200.531 255.405 +-65.7715 199.639 254.268 +-68.798 199.881 254.576 +-71.5982 199.443 254.018 +-74.7962 200.072 254.819 +-77.6439 199.721 254.373 +-80.681 199.835 254.517 +-83.652 199.751 254.41 +-86.9632 200.426 255.27 +-89.5516 199.414 253.982 +-92.8622 199.992 254.718 +-95.6848 199.484 254.071 +-99.0555 200.083 254.834 +-101.849 199.483 254.069 +-105.22 199.984 254.707 +-107.947 199.233 253.751 +-111.67 200.279 255.083 +-114.262 199.262 253.788 +-118.031 200.263 255.063 +-120.576 199.157 253.654 +-124.282 199.941 254.653 +-126.956 199.034 253.497 +-131.037 200.289 255.096 +-135.049 201.344 256.439 +-139.608 203.109 258.688 +-142.553 202.463 257.864 +-144.31 200.163 254.936 +-124.284 168.415 214.499 +-111.275 147.366 187.691 +-111.976 144.977 184.648 +-113.275 143.424 182.671 +-115.03 142.477 181.464 +-116.222 140.861 179.407 +-118.439 140.503 178.95 +-120.373 139.805 178.062 +-122.821 139.694 177.92 +-126.923 141.403 180.096 +-440.177 480.459 611.931 +-441.15 471.865 600.985 +-442.37 463.776 590.683 +-442.778 455.075 579.602 +-444.124 447.564 570.035 +-445.927 440.702 561.295 +-447.517 433.803 552.509 +-448.837 426.817 543.611 +-450.657 420.469 535.525 +-451.996 413.826 527.065 +-453.635 407.608 519.146 +-454.846 401.152 510.923 +-456.084 394.864 502.914 +-458.12 389.394 495.947 +-460.809 384.577 489.812 +-468.453 383.904 488.955 +-479.948 386.264 491.961 +-486.496 384.539 489.763 +-484.005 375.764 478.588 +-485.206 370.022 471.275 +-487.3 365.059 464.953 +-489.226 360.053 458.577 +-490.398 354.586 451.614 +-492.504 349.878 445.618 +-476.755 332.781 423.842 +-478.428 328.134 417.924 +-480.547 323.858 412.478 +-482.036 319.224 406.576 +-484.946 315.583 401.939 +-486.261 310.959 396.049 +-488.744 307.138 391.182 +-490.874 303.138 386.089 +-492.999 299.182 381.05 +-494.043 294.627 375.248 +-142.754 83.658 106.55 +-142.687 82.1697 104.655 +-143.695 81.3144 103.565 +-142.758 79.3796 101.101 +-142.751 77.9932 99.3352 +-142.867 76.6945 97.6811 +-147.671 77.887 99.1999 +-148.383 76.8897 97.9297 +-512.745 261.021 332.447 +-515.248 257.665 328.172 +-517.069 253.994 323.497 +-519.22 250.514 319.064 +-521.312 247.03 314.627 +-523.585 243.654 310.327 +-525.32 240.051 305.739 +-2650.74 1189.32 1514.77 +-2667.45 1174.99 1496.51 +-511.151 221.028 281.51 +-514.255 218.264 277.99 +-136.128 56.703 72.2191 +-525.265 214.7 273.45 +-527.524 211.558 269.449 +-529.565 208.342 265.353 +-532.489 205.48 261.708 +-2793.68 1057.22 1346.52 +-536.587 199.106 253.589 +-538.863 196.018 249.657 +-541.266 192.984 245.792 +-381.564 133.315 169.795 +-382.559 130.955 166.789 +-381.231 127.827 162.805 +-382.758 125.681 160.072 +-381.415 122.615 156.168 +-380.282 119.658 152.401 +-380.079 117.025 149.048 +-381.987 115.054 146.537 +-382.155 112.565 143.368 +-381.827 109.954 140.041 +-381.638 107.405 136.795 +-382.958 105.294 134.107 +-381.497 102.439 130.47 +-382.378 100.234 127.662 +-382.024 97.7208 124.461 +-381.629 95.2185 121.274 +-381.006 92.6828 118.044 +-381.368 90.4047 115.143 +-382.256 88.26 112.411 +-382.643 86.0065 109.541 +-381.204 83.3634 106.175 +-381.517 81.1254 103.325 +-381.226 78.772 100.327 +-381.849 76.6192 97.5852 +-381.296 74.2429 94.5586 +-381.47 72.0228 91.731 +-381.802 69.8416 88.953 +-381.044 67.4751 85.939 +-381.309 65.3032 83.1727 +-381.83 63.182 80.471 +-380.966 60.8436 77.4928 +-381.811 58.7883 74.875 +-380.683 56.4401 71.8843 +-381.076 54.3309 69.1979 +-381.341 52.2083 66.4945 +-380.891 49.9972 63.6784 +-382.073 48.0042 61.1401 +-381.264 45.7666 58.2901 +-381.896 43.7102 55.6711 +-381.318 41.5218 52.8838 +-381.495 39.4245 50.2126 +-381.149 37.2802 47.4815 +-382.057 35.2613 44.9101 +-382.144 33.1666 42.2423 +-382.301 31.0817 39.5869 +-380.344 28.8397 36.7313 +-380.737 26.7889 34.1194 +-380.305 24.6844 31.4391 +-381.834 22.705 28.918 +-381.742 20.6249 26.2687 +-380.623 18.4991 23.5612 +-381.169 16.4601 20.9642 +-380.09 14.3563 18.2848 +-380.877 12.3268 15.6999 +-380.038 10.2469 13.0508 +-380.168 8.19844 10.4419 +-147.349 2.3828 3.03482 +-145.978 1.57354 2.00413 +-147.194 0.793271 1.01034 +96.6 3.55271e-15 -1.7053e-13 +96.5963 0.526543 0.658311 +96.6853 1.05414 1.31794 +96.5669 1.57947 1.97473 +96.5412 2.10577 2.63274 +96.5081 2.63191 3.29055 +96.4676 3.15785 3.94811 +96.4198 3.68356 4.60537 +96.4644 4.21333 5.26772 +96.4019 4.73898 5.92491 +96.332 5.26426 6.58165 +97.1507 5.84303 7.30525 +97.0653 6.37236 7.96705 +96.9726 6.90116 8.62818 +96.8725 7.42946 9.28869 +96.765 7.95727 9.94858 +96.6502 8.48438 10.6076 +96.5279 9.01087 11.2659 +96.2996 9.52693 11.9111 +96.1628 10.0514 12.5668 +95.7233 10.5427 13.181 +96.4573 11.1665 13.9609 +96.3958 11.7037 14.6326 +96.2286 12.2287 15.289 +95.2716 12.6489 15.8143 +95.8723 13.2759 16.5982 +95.878 13.8261 17.286 +96.3619 14.4502 18.0663 +96.3504 15.0051 18.7601 +95.9434 15.4985 19.377 +96.7858 16.1987 20.2524 +96.5558 16.7256 20.9112 +96.3184 17.2513 21.5684 +96.649 17.882 22.357 +96.3955 18.4082 23.0149 +96.1347 18.9329 23.6708 +95.9616 19.4755 24.3492 +96.4445 20.1564 25.2005 +97.0102 20.8643 26.0856 +96.6208 21.3715 26.7197 +96.3185 21.8973 27.3771 +97.0392 22.6621 28.3333 +96.7189 23.1902 28.9935 +96.3913 23.7165 29.6515 +96.8907 24.4516 30.5706 +96.5454 24.9787 31.2297 +97.1133 25.7481 32.1916 +96.7498 26.2765 32.8522 +96.4704 26.8282 33.542 +97.0019 27.6121 34.522 +96.5218 28.1133 35.1487 +96.9377 28.8804 36.1078 +96.5305 29.4077 36.767 +96.116 29.9327 37.4234 +96.496 30.7107 38.3961 +96.7729 31.4663 39.3408 +97.1242 32.2565 40.3287 +96.6699 32.7847 40.9891 +96.9079 33.5526 41.9491 +97.1317 34.3256 42.9156 +96.735 34.885 43.6149 +96.1578 35.3792 44.2329 +96.3456 36.1594 45.2083 +96.6041 36.9769 46.2303 +95.9142 37.4358 46.8042 +96.3153 38.3263 47.9175 +96.3632 39.088 48.8698 +96.564 39.9221 49.9126 +96.1684 40.5168 50.6561 +96.1755 41.287 51.6192 +96.3323 42.1322 52.6758 +95.74 42.6556 53.3303 +95.7876 43.4696 54.3479 +95.8197 44.2873 55.3702 +95.9161 45.1462 56.4441 +95.2817 45.6672 57.0955 +95.9797 46.8387 58.5601 +95.9478 47.6711 59.6008 +95.9775 48.546 60.6947 +95.9901 49.4249 61.7935 +95.8322 50.2273 62.7967 +95.2028 50.7883 63.4981 +95.7726 52.0019 65.0155 +95.6416 52.8531 66.0796 +95.5684 53.7486 67.1992 +95.4774 54.6472 68.3227 +96.0267 55.9323 69.9295 +95.822 56.7976 71.0112 +95.6722 57.7083 72.1498 +95.5042 58.6216 73.2917 +95.318 59.5374 74.4367 +95.7442 60.8566 76.086 +95.5155 61.7805 77.2412 +95.1994 62.6611 78.3421 +95.0024 63.6349 79.5596 +95.3258 64.9791 81.2401 +95.6188 66.3314 82.9309 +95.2848 67.2714 84.1062 +94.8661 68.1653 85.2237 +95.0792 69.5344 86.9355 +95.1968 70.8636 88.5973 +94.7757 71.8137 89.7851 +94.6498 73.0073 91.2774 +94.7467 74.4002 93.0189 +94.8119 75.8 94.769 +94.6624 77.0567 96.3402 +94.2442 78.1186 97.6678 +94.1604 79.4833 99.3741 +94.1044 80.9031 101.149 +94.3642 82.6333 103.312 +94.3533 84.168 105.231 +94.25 85.6571 107.093 +94.0562 87.0993 108.896 +94.2708 88.9632 111.226 +94.1136 90.521 113.174 +94.0812 92.2424 115.326 +93.8487 93.8108 117.287 +93.9975 95.8103 119.787 +93.4794 97.1757 121.494 +93.5901 99.2419 124.077 +93.65 101.318 126.672 +93.1665 102.857 128.597 +93.5683 105.437 131.823 +93.38 107.425 134.308 +93.1901 109.474 136.87 +93.3656 112.028 140.063 +93.4766 114.591 143.268 +93.4338 117.053 146.345 +92.9785 119.074 148.872 +93.1626 122 152.53 +92.976 124.541 155.708 +93.0986 127.601 159.533 +92.2072 129.359 161.731 +92.9085 133.465 166.865 +92.6033 136.267 170.368 +92.4563 139.421 174.311 +92.4154 142.873 178.627 +92.3217 146.393 183.028 +91.4913 148.873 186.129 +99.2138 165.748 207.227 +96.8601 166.224 207.822 +93.8665 165.568 207.002 +91.4521 165.896 207.412 +91.4789 170.772 213.508 +91.2836 175.482 219.396 +90.8432 179.964 225 +88.9102 181.647 227.104 +87.1643 183.802 229.798 +88.7552 193.336 241.718 +89.8723 202.42 253.075 +87.6361 204.289 255.413 +84.4532 203.973 255.017 +81.3825 203.88 254.901 +78.2042 203.466 254.383 +75.2911 203.702 254.678 +72.1177 203.19 254.038 +69.2554 203.514 254.443 +66.25 203.394 254.293 +63.3867 203.686 254.659 +60.32 203.287 254.159 +57.4949 203.669 254.638 +54.3337 202.804 253.556 +51.4982 203.093 253.917 +48.6293 203.242 254.104 +45.7601 203.376 254.271 +42.6951 202.565 253.257 +39.9366 203.162 254.003 +37.0401 203.062 253.878 +34.2122 203.318 254.198 +31.2936 202.999 253.8 +28.4041 202.789 253.537 +25.4757 202.188 252.786 +22.7755 203.441 254.353 +19.8225 202.435 253.095 +17.0354 203.035 253.844 +14.1589 202.558 253.249 +11.3633 203.252 254.116 +8.48133 202.307 252.935 +5.65458 202.346 252.983 +2.82303 202.057 252.621 +2.04281e-14 202.564 253.256 +-2.82303 202.057 252.621 +-5.66331 202.658 253.373 +-8.47348 202.12 252.7 +-11.2935 202.004 252.555 +-14.1196 201.997 252.546 +-16.9359 201.85 252.363 +-19.7858 202.061 252.627 +-22.6639 202.445 253.106 +-25.46 202.064 252.631 +-28.2995 202.042 252.603 +-31.1307 201.942 252.479 +-34.0449 202.324 252.956 +-36.7797 201.634 252.093 +-39.7294 202.108 252.685 +-42.3949 201.14 251.476 +-45.4679 202.077 252.647 +-48.1563 201.265 251.632 +-51.2166 201.982 252.529 +-53.8385 200.956 251.245 +-56.8177 201.27 251.638 +-59.6457 201.014 251.318 +-62.6044 201.172 251.516 +-65.4924 201.068 251.385 +-68.4653 201.192 251.541 +-71.2736 200.811 251.064 +-74.2114 200.781 251.026 +-77.2471 200.975 251.27 +-80.2697 201.092 251.416 +-83.001 200.466 250.632 +-86.2644 201.092 251.415 +-89.0706 200.614 250.818 +-92.3661 201.202 251.552 +-95.2019 200.75 250.988 +-98.2661 200.761 251.002 +-101.398 200.873 251.142 +-104.664 201.204 251.555 +-107.471 200.626 250.832 +-110.823 201.037 251.346 +-113.628 200.425 250.581 +-117.313 201.324 251.705 +-120.156 200.735 250.969 +-123.673 201.239 251.599 +-126.37 200.383 250.529 +-129.951 200.902 251.178 +-133.327 201.052 251.366 +-138.67 204.055 255.12 +-141.835 203.749 254.738 +-144.229 202.341 252.977 +-118.602 162.556 203.236 +-111.444 149.279 186.637 +-112.062 146.75 183.474 +-113.757 145.684 182.142 +-115.03 144.108 180.171 +-116.676 143.031 178.824 +-118.854 142.611 178.3 +-120.748 141.847 177.345 +-124.061 142.72 178.436 +-128.184 144.442 180.589 +-440.473 486.286 607.98 +-441.15 477.267 596.704 +-442.573 469.302 586.745 +-443.087 460.607 575.874 +-445.012 453.594 567.107 +-445.927 445.748 557.297 +-447.517 438.77 548.573 +-448.837 431.704 539.738 +-450.988 425.595 532.101 +-452.555 419.082 523.957 +-453.975 412.584 515.833 +-454.846 405.745 507.283 +-456.433 399.69 499.713 +-458.708 394.357 493.046 +-461.761 389.783 487.327 +-470.86 390.294 487.966 +-480.739 391.33 489.261 +-484.341 387.219 484.12 +-485.063 380.897 476.217 +-485.584 374.55 468.282 +-487.236 369.19 461.58 +-489.804 364.606 455.849 +-490.593 358.788 448.575 +-491.979 353.507 441.973 +-477.351 337.012 421.349 +-479.031 332.308 415.468 +-481.155 327.98 410.058 +-482.65 323.289 404.193 +-484.67 319.015 398.849 +-486.608 314.744 393.509 +-488.744 310.654 388.396 +-490.661 306.476 383.172 +-492.999 302.608 378.336 +-142.429 85.9113 107.411 +-142.754 84.6158 105.791 +-143.199 83.4084 104.281 +-143.917 82.3716 102.985 +-143.055 80.4559 100.59 +-142.751 78.8862 98.6275 +-142.64 77.4496 96.8314 +-147.671 78.7788 98.4932 +-148.076 77.6095 97.0313 +-513.825 264.566 330.774 +-515.481 260.733 325.982 +-517.695 257.214 321.581 +-519.929 253.728 317.224 +-522.026 250.2 312.813 +-524.065 246.669 308.398 +-526.044 243.134 303.979 +-2650.74 1202.94 1503.98 +-2667.45 1188.44 1485.85 +-2683.95 1173.86 1467.62 +-513.843 220.587 275.789 +-134.967 56.8632 71.0932 +-134.422 55.5737 69.4811 +-527.44 213.946 267.486 +-530.325 211.03 263.84 +-533.253 208.131 260.216 +-383.688 146.863 183.615 +-2808.51 1054.06 1317.83 +-539.38 198.453 248.116 +-541.612 195.318 244.197 +-382.957 135.334 169.201 +-382.121 132.302 165.411 +-382.198 129.618 162.055 +-381.257 126.621 158.309 +-380.173 123.615 154.55 +-379.48 120.773 150.997 +-382.226 119.034 148.823 +-381.987 116.371 145.493 +-382.516 113.962 142.481 +-381.012 110.975 138.747 +-381.638 108.635 135.821 +-379.761 105.611 132.04 +-381.314 103.562 129.478 +-380.629 100.918 126.173 +-381.1 98.6004 123.275 +-381.351 96.2387 120.323 +-381.471 93.8589 117.347 +-382.208 91.6415 114.575 +-382.724 89.3798 111.747 +-382.643 86.9913 108.761 +-381.581 84.4016 105.523 +-381.517 82.0543 102.588 +-380.942 79.6145 99.5381 +-381.849 77.4964 96.89 +-381.105 75.0554 93.8381 +-381.183 72.7924 91.0088 +-381.514 70.5882 88.2529 +-380.852 68.2134 85.2838 +-380.441 65.901 82.3928 +-381.058 63.7761 79.7361 +-380.966 61.5402 76.9407 +-380.938 59.3253 74.1716 +-381.85 57.2613 71.591 +-382.83 55.2059 69.0212 +-381.341 52.8061 66.0208 +-381.673 50.6735 63.3546 +-380.897 48.4044 60.5176 +-381.264 46.2906 57.8749 +-382.191 44.2448 55.3171 +-381.318 41.9972 52.5071 +-381.89 39.9171 49.9064 +-380.853 37.6777 47.1066 +-382.057 35.665 44.5902 +-381.847 33.5202 41.9087 +-380.814 31.3153 39.152 +-380.741 29.2004 36.5078 +-381.929 27.1805 33.9824 +-381.698 25.0585 31.3293 +-381.137 22.9231 28.6596 +-380.845 20.812 26.0203 +-379.925 18.6766 23.3504 +-380.172 16.605 20.7604 +-381.088 14.5588 18.2021 +-381.476 12.4876 15.6126 +-380.438 10.3751 12.9715 +-380.868 8.30755 10.3865 +-146.25 2.3921 2.99072 +-144.778 1.57848 1.9735 +-147.194 0.802354 1.00314 +96.5 -3.55271e-15 -1.7053e-13 +95.6964 0.5275 0.647445 +96.5853 1.06488 1.30702 +96.5669 1.59722 1.9604 +96.5412 2.12944 2.61364 +96.5081 2.66149 3.26667 +96.5675 3.19665 3.92352 +96.4198 3.72495 4.57195 +96.3647 4.25628 5.2241 +97.2991 4.83684 5.93666 +96.332 5.32342 6.53389 +97.0511 5.90264 7.2448 +96.9659 6.43734 7.90109 +96.9726 6.97872 8.56557 +96.8725 7.51296 9.22129 +96.765 8.04669 9.87639 +96.6502 8.57973 10.5306 +96.5279 9.11214 11.1841 +96.2008 9.62408 11.8125 +96.0642 10.154 12.4628 +96.7081 10.7709 13.22 +96.5556 11.3035 13.8737 +96.3958 11.8353 14.5264 +96.2286 12.3662 15.178 +96.0541 12.8961 15.8285 +95.8723 13.4251 16.4778 +95.878 13.9814 17.1606 +96.3619 14.6126 17.9352 +96.3504 15.1737 18.624 +95.9434 15.6727 19.2364 +96.7858 16.3807 20.1054 +96.363 16.8798 20.718 +96.1262 17.4103 21.3691 +95.882 17.9395 22.0186 +96.3955 18.6151 22.8479 +96.1347 19.1457 23.4991 +95.9616 19.6944 24.1726 +96.4445 20.3829 25.0177 +96.1592 20.9137 25.6692 +96.6208 21.6116 26.5258 +96.3185 22.1434 27.1785 +97.0392 22.9168 28.1277 +96.7189 23.4508 28.7831 +97.2286 24.1914 29.6921 +96.8907 24.7264 30.3488 +96.5454 25.2595 31.0031 +97.0212 26.0128 31.9277 +96.7498 26.5718 32.6138 +96.4704 27.1298 33.2986 +96.0919 27.6605 33.95 +96.5218 28.4293 34.8937 +96.1253 28.9602 35.5454 +96.5305 29.7382 36.5002 +96.116 30.2691 37.1519 +96.4069 31.0272 38.0823 +96.7729 31.8199 39.0553 +96.3296 32.3521 39.7084 +96.582 33.1229 40.6546 +96.1207 33.6541 41.3065 +96.3484 34.4314 42.2606 +95.9556 34.9928 42.9496 +96.1578 35.7768 43.9119 +96.3456 36.5657 44.8802 +96.6041 37.3924 45.8949 +96.8471 38.2247 46.9164 +96.1466 38.6892 47.4866 +96.3632 39.5273 48.5152 +96.564 40.3707 49.5504 +96.0026 40.9014 50.2018 +96.0931 41.7153 51.2007 +96.3323 42.6056 52.2935 +96.3099 43.3918 53.2584 +96.4348 44.2551 54.318 +95.8197 44.785 54.9684 +95.9161 45.6536 56.0345 +95.9164 46.4881 57.0588 +95.9009 47.3261 58.0874 +95.8695 48.1675 59.12 +95.9775 49.0916 60.2543 +95.9901 49.9803 61.3451 +95.9854 50.873 62.4407 +95.9632 51.7693 63.5408 +95.7726 52.5864 64.5437 +95.7914 53.5308 65.7029 +95.5684 54.3526 66.7116 +94.9613 54.9626 67.4603 +95.4417 56.2163 68.999 +95.2417 57.0881 70.0691 +95.6722 58.3568 71.6263 +95.5756 59.3246 72.8141 +95.318 60.2065 73.8965 +95.7442 61.5405 75.5339 +95.5155 62.4748 76.6807 +95.2683 63.4114 77.8302 +95.6162 64.7657 79.4924 +95.3258 65.7093 80.6506 +95.6188 67.0768 82.3291 +95.2848 68.0275 83.4958 +94.8005 68.884 84.5471 +95.0792 70.3159 86.3046 +95.3254 71.7566 88.073 +94.7757 72.6207 89.1336 +94.7757 73.9257 90.7353 +94.6845 75.1871 92.2835 +94.8119 76.6518 94.0813 +94.1145 77.4717 95.0876 +94.2442 78.9965 96.9591 +94.1604 80.3766 98.653 +94.0456 81.7612 100.352 +94.4804 83.6649 102.689 +94.2386 85.0103 104.34 +94.25 86.6197 106.316 +94.1681 88.183 108.234 +93.8845 89.5941 109.966 +93.7324 91.1675 111.898 +94.0812 93.2791 114.489 +93.7427 94.7584 116.305 +93.475 96.3482 118.256 +93.4794 98.2678 120.612 +93.1333 99.8677 122.576 +93.65 102.456 125.753 +93.659 104.563 128.339 +93.5683 106.622 130.866 +93.4277 108.687 133.401 +93.1901 110.704 135.877 +93.735 113.735 139.596 +93.4766 115.879 142.228 +93.4338 118.368 145.284 +93.3292 120.866 148.349 +93.2057 123.428 151.494 +92.6379 125.483 154.016 +93.0572 128.977 158.305 +92.2479 130.87 160.628 +92.6294 134.56 165.157 +92.6033 137.798 169.131 +92.4563 140.987 173.046 +92.378 144.42 177.259 +92.285 147.98 181.628 +91.8855 151.195 185.575 +97.6028 164.89 202.383 +96.5523 167.558 205.658 +93.299 166.416 204.257 +91.094 167.104 205.101 +91.352 172.451 211.664 +91.3454 177.574 217.951 +90.5726 181.444 222.702 +88.7056 183.265 224.937 +86.5679 184.595 226.569 +89.968 198.18 243.243 +89.7654 204.451 250.94 +87.4291 206.097 252.961 +83.9023 204.92 251.516 +80.9955 205.191 251.848 +77.8073 204.708 251.256 +74.9762 205.13 251.773 +71.7714 204.487 250.984 +69.0891 205.306 251.99 +65.8512 204.442 250.929 +63.0624 204.921 251.517 +59.9919 204.454 250.943 +57.1997 204.901 251.492 +54.1026 204.211 250.646 +51.4513 205.188 251.845 +48.3337 204.277 250.726 +45.5096 204.536 251.044 +42.5776 204.278 250.727 +39.7538 204.505 251.006 +36.8363 204.214 250.649 +34.0449 204.598 251.12 +31.1211 204.149 250.569 +28.343 204.627 251.157 +25.4051 203.894 250.257 +22.6499 204.593 251.115 +19.7126 203.576 249.866 +16.9935 204.812 251.383 +14.076 203.636 249.939 +11.297 204.337 250.8 +8.43421 203.444 249.705 +5.64062 204.115 250.527 +2.81518 203.759 250.091 +2.22045e-14 204.335 250.798 +-2.81518 203.759 250.091 +-5.63189 203.799 250.139 +-8.44468 203.696 250.014 +-11.269 203.832 250.18 +-14.0411 203.131 249.32 +-16.915 203.866 250.222 +-19.6943 203.386 249.633 +-22.5453 203.648 249.955 +-25.3266 203.264 249.484 +-28.221 203.746 250.075 +-30.9582 203.08 249.257 +-33.9404 203.969 250.349 +-36.7005 203.461 249.725 +-39.4979 203.188 249.39 +-42.2905 202.9 249.036 +-45.2313 203.285 249.508 +-47.8902 202.403 248.426 +-50.9351 203.129 249.318 +-53.5579 202.156 248.123 +-56.6614 202.973 249.125 +-59.2994 202.093 248.046 +-62.4136 202.813 248.929 +-65.0737 202.028 247.966 +-68.2574 202.835 248.957 +-70.8623 201.896 247.804 +-74.1214 202.791 248.902 +-76.6868 201.76 247.638 +-80.0036 202.678 248.764 +-82.7756 202.168 248.138 +-86.0315 202.803 248.917 +-88.5895 201.772 247.652 +-91.8699 202.37 248.386 +-94.6907 201.916 247.828 +-98.0615 202.595 248.662 +-100.827 201.986 247.914 +-104.077 202.324 248.329 +-106.9 201.802 247.689 +-110.27 202.28 248.276 +-113.06 201.665 247.521 +-116.389 201.983 247.911 +-119.421 201.748 247.623 +-122.992 202.38 248.398 +-125.71 201.577 247.412 +-129.352 202.223 248.206 +-132.447 201.97 247.894 +-138.006 205.36 252.055 +-140.998 204.823 251.396 +-143.985 204.269 250.716 +-116.197 161.049 197.67 +-111.191 150.614 184.862 +-112.062 148.399 182.143 +-113.757 147.321 180.82 +-115.431 146.237 179.489 +-117.039 145.088 178.079 +-119.223 144.662 177.555 +-121.03 143.776 176.469 +-124.3 144.602 177.483 +-129.977 148.11 181.788 +-440.325 491.586 603.366 +-441.35 482.85 592.643 +-442.878 474.902 582.888 +-443.705 466.433 572.493 +-445.012 458.692 562.991 +-446.245 451.079 553.647 +-447.732 443.914 544.853 +-449.109 436.821 536.147 +-450.767 430.168 527.981 +-452.555 423.791 520.155 +-453.975 417.22 512.09 +-454.846 410.305 503.602 +-457.013 404.696 496.718 +-458.708 398.789 489.468 +-463.426 395.586 485.536 +-472.365 395.942 485.973 +-483.417 397.933 488.417 +-489.759 395.951 485.984 +-484.005 384.338 471.731 +-485.709 378.857 465.004 +-488.444 374.265 459.367 +-489.804 368.704 452.541 +-491.567 363.54 446.203 +-492.307 357.718 439.058 +-477.351 340.799 418.292 +-478.83 335.901 412.28 +-482.101 332.318 407.882 +-483.059 327.2 401.6 +-485.083 322.875 396.292 +-487.511 318.872 391.378 +-489.375 314.55 386.074 +-491.298 310.323 380.885 +-493.569 306.363 376.025 +-141.494 86.3064 105.931 +-142.681 85.5232 104.97 +-143.199 84.3458 103.525 +-143.253 82.9133 101.766 +-142.907 81.2754 99.7562 +-142.451 79.6054 97.7064 +-142.414 78.1956 95.976 +-148.507 80.1151 98.3321 +-148.383 78.644 96.5265 +-513.593 267.419 328.226 +-515.481 263.664 323.617 +-517.695 260.104 319.248 +-520.402 256.813 315.209 +-522.265 253.128 310.685 +-524.065 249.441 306.16 +-526.767 246.204 302.188 +-526.751 241.732 296.699 +-2667.45 1201.8 1475.07 +-2683.95 1187.05 1456.97 +-514.502 223.352 274.138 +-134.221 57.1843 70.1871 +-137.091 57.3139 70.3461 +-528.279 216.695 265.968 +-531.084 213.707 262.301 +-533.253 210.47 258.328 +-383.176 148.316 182.04 +-2808.51 1065.9 1308.27 +-539.811 200.844 246.513 +-542.478 197.829 242.812 +-2851.72 1019.1 1250.83 +-382.121 133.789 164.211 +-382.11 131.045 160.843 +-381.257 128.044 157.16 +-382.656 125.821 154.431 +-379.48 122.13 149.901 +-382.226 120.372 147.743 +-382.257 117.762 144.539 +-381.884 115.052 141.213 +-381.012 112.223 137.74 +-380.273 109.463 134.353 +-382.958 107.697 132.185 +-382.139 104.952 128.817 +-382.102 102.447 125.741 +-381.562 99.8292 122.529 +-381.351 97.3203 119.449 +-381.006 94.7975 116.353 +-382.768 92.8073 113.91 +-381.788 90.1632 110.665 +-381.797 87.7744 107.733 +-382.053 85.4556 104.887 +-380.949 82.8526 101.692 +-380.752 80.4695 98.767 +-380.328 78.0553 95.8039 +-381.105 75.8989 93.1572 +-381.566 73.6844 90.4391 +-381.514 71.3814 87.6125 +-381.525 69.1012 84.8138 +-381.79 66.8779 82.0849 +-380.382 64.3785 79.0171 +-381.934 62.39 76.5765 +-383.073 60.3283 74.046 +-381.558 57.8606 71.0172 +-380.784 55.5279 68.1541 +-380.755 53.3175 65.4411 +-382.26 51.3218 62.9916 +-380.603 48.9106 60.0321 +-381.558 46.847 57.4993 +-380.913 44.5924 54.732 +-381.022 42.4363 52.0857 +-380.608 40.2302 49.378 +-381.742 38.1901 46.8739 +-381.365 36.0004 44.1864 +-381.352 33.853 41.5507 +-380.616 31.6508 38.8477 +-380.145 29.4824 36.1862 +-381.631 27.4645 33.7095 +-380.802 25.2806 31.0291 +-381.436 23.1989 28.4739 +-380.347 21.0185 25.7977 +-381.121 18.9459 23.2539 +-381.668 16.8577 20.6908 +-381.088 14.7224 18.0701 +-380.278 12.5882 15.4506 +-380.438 10.4917 12.8774 +-381.767 8.42075 10.3355 +-146.95 2.43055 2.98322 +-145.078 1.59952 1.96323 +-147.194 0.811371 0.995864 +96.6 3.55271e-15 -1.7053e-13 +96.5963 0.538335 0.648704 +96.6853 1.07774 1.2987 +96.5669 1.61484 1.94591 +96.5412 2.15293 2.59432 +96.608 2.69364 3.24588 +96.5675 3.23192 3.89452 +96.5196 3.76994 4.54286 +96.4644 4.30769 5.19085 +96.4019 4.8451 5.83844 +96.332 5.38215 6.4856 +96.1553 5.91267 7.12488 +97.0653 6.51507 7.85078 +96.9726 7.05571 8.50227 +96.8725 7.59584 9.15314 +96.765 8.13547 9.80339 +96.5511 8.66551 10.4421 +96.429 9.20322 11.0901 +96.2996 9.74028 11.7372 +96.0642 10.266 12.3707 +95.7233 10.7788 12.9886 +96.5556 11.4282 13.7712 +95.4142 11.844 14.2722 +96.2286 12.5026 15.0658 +96.0541 13.0384 15.7115 +96.7509 13.6976 16.5059 +95.878 14.1357 17.0338 +96.3619 14.7738 17.8027 +96.1563 15.3103 18.4492 +95.9434 15.8456 19.0942 +96.5926 16.5284 19.917 +96.363 17.066 20.5649 +96.1262 17.6024 21.2112 +95.882 18.1374 21.8559 +96.3955 18.8204 22.679 +96.23 19.3761 23.3486 +96.7224 20.0695 24.1841 +95.591 20.4254 24.613 +96.1592 21.1445 25.4795 +96.6208 21.8501 26.3297 +96.2245 22.3659 26.9513 +97.0392 23.1696 27.9198 +96.7189 23.7095 28.5704 +96.3913 24.2476 29.2188 +96.8907 24.9992 30.1245 +96.5454 25.5381 30.7739 +97.0212 26.2998 31.6918 +96.7498 26.8649 32.3727 +96.4704 27.429 33.0525 +96.1829 27.9921 33.731 +96.5218 28.7429 34.6358 +96.9377 29.5272 35.5808 +96.4406 30.0383 36.1967 +96.8319 30.831 37.152 +96.4069 31.3695 37.8009 +96.7729 32.171 38.7666 +96.3296 32.709 39.415 +96.582 33.4883 40.3541 +96.1207 34.0253 41.0012 +96.5224 34.8742 42.0241 +96.735 35.6662 42.9784 +96.8471 36.4308 43.8998 +96.3456 36.9691 44.5485 +96.6041 37.8049 45.5557 +96.8471 38.6464 46.5697 +96.3153 39.1846 47.2183 +96.3632 39.9634 48.1566 +95.8135 40.4989 48.802 +96.0026 41.3527 49.8307 +96.1755 42.2116 50.8658 +96.3323 43.0757 51.907 +96.3913 43.9075 52.9094 +96.4348 44.7433 53.9166 +95.8197 45.2791 54.5621 +95.8363 46.1188 55.574 +95.9958 47.0398 56.6839 +95.9009 47.8482 57.6581 +95.8695 48.6989 58.6831 +95.9775 49.6332 59.809 +95.9901 50.5317 60.8917 +95.9088 51.3931 61.9297 +95.8872 52.2989 63.0212 +95.7726 53.1665 64.0667 +95.6416 54.0367 65.1153 +95.7171 55.0377 66.3215 +95.5511 55.9142 67.3776 +95.3685 56.793 68.4366 +95.3142 57.7618 69.6041 +95.7441 59.0449 71.1503 +95.5042 59.9344 72.2221 +95.318 60.8707 73.3504 +95.6741 62.1739 74.9208 +95.585 63.2101 76.1693 +95.2683 64.111 77.255 +95.0024 65.06 78.3985 +95.3258 66.4343 80.0546 +94.9496 67.3423 81.1488 +95.351 68.8258 82.9365 +95.391 70.0775 84.4447 +95.0142 71.0431 85.6083 +94.6183 72.0106 86.7741 +94.7757 73.4219 88.4748 +94.7757 74.7412 90.0646 +94.7467 76.0664 91.6614 +94.7503 77.447 93.3252 +94.7233 78.8334 94.9958 +94.6053 80.1745 96.6118 +94.2199 81.3144 97.9854 +94.1632 82.7666 99.7354 +93.9577 84.1198 101.366 +94.296 86.0005 103.632 +94.1934 87.5223 105.466 +94.0562 89.0499 107.307 +93.7741 90.4759 109.025 +93.6235 92.066 110.941 +93.9737 94.2002 113.513 +93.7427 95.8038 115.445 +93.893 97.8467 117.907 +93.4279 99.2969 119.655 +93.5901 101.464 122.267 +93.65 103.586 124.824 +93.659 105.716 127.39 +93.5683 107.798 129.899 +93.8571 110.391 133.024 +93.6126 112.433 135.484 +93.3656 114.537 138.019 +92.9773 116.532 140.423 +93.3892 119.617 144.141 +92.9785 121.74 146.699 +93.1626 124.732 150.304 +92.976 127.331 153.436 +92.7254 129.935 156.575 +92.736 133.014 160.285 +92.6294 136.044 163.936 +92.6424 139.377 167.952 +92.5329 142.661 171.909 +92.4529 146.132 176.092 +92.395 149.79 180.5 +92.3156 153.579 185.065 +93.8556 160.308 193.174 +95.6972 167.906 202.33 +92.4645 166.748 200.934 +90.4103 167.68 202.057 +91.0664 173.809 209.443 +91.0982 179.047 215.755 +90.1817 182.654 220.102 +88.7933 185.471 223.496 +86.0851 185.591 223.64 +90.2712 201.042 242.259 +89.3111 205.66 247.824 +86.5491 206.274 248.564 +83.051 205.079 247.124 +80.5358 206.277 248.568 +77.2237 205.414 247.528 +74.5938 206.334 248.637 +71.2303 205.184 247.25 +68.5485 205.947 248.171 +65.4126 205.32 247.415 +62.7762 206.241 248.525 +59.427 204.762 246.742 +56.7482 205.526 247.663 +53.69 204.89 246.896 +51.0289 205.749 247.931 +47.8016 204.257 246.134 +45.2869 205.78 247.969 +42.1077 204.252 246.128 +39.5344 205.62 247.776 +36.5533 204.88 246.885 +33.8359 205.585 247.734 +30.8719 204.748 246.725 +28.099 205.103 247.153 +25.2011 204.488 246.412 +22.4546 205.067 247.109 +19.6027 204.674 246.636 +16.8522 205.35 247.45 +13.9582 204.159 246.016 +11.2307 205.378 247.485 +8.36353 203.965 245.782 +5.61095 205.281 247.367 +2.79075 204.219 246.088 +2.13163e-14 204.801 246.789 +-2.78289 203.644 245.395 +-5.59699 204.77 246.752 +-8.35045 203.646 245.397 +-11.1923 204.677 246.639 +-13.9277 203.713 245.478 +-16.7894 204.584 246.528 +-19.5233 203.846 245.638 +-22.4197 204.748 246.725 +-25.1226 203.852 245.645 +-27.9944 204.34 246.234 +-30.709 203.668 245.423 +-33.6791 204.632 246.585 +-36.2703 203.294 244.973 +-39.2785 204.289 246.172 +-41.9381 203.429 245.136 +-44.9807 204.389 246.293 +-47.4764 202.867 244.459 +-50.497 203.604 245.347 +-53.0958 202.622 244.164 +-56.1752 203.451 245.162 +-58.8256 202.691 244.246 +-62.1274 204.11 245.957 +-64.5952 202.755 244.324 +-67.6545 203.261 244.934 +-70.3212 202.565 244.095 +-73.4465 203.161 244.813 +-76.0565 202.309 243.787 +-79.3988 203.365 245.059 +-81.9494 202.358 243.846 +-85.3585 203.436 245.144 +-87.9749 202.583 244.117 +-91.4013 203.558 245.292 +-93.9523 202.552 244.079 +-97.2721 203.181 244.837 +-99.714 201.961 243.367 +-103.397 203.22 244.884 +-105.98 202.272 243.742 +-109.684 203.425 245.131 +-111.959 201.903 243.297 +-115.74 203.072 244.705 +-118.335 202.12 243.559 +-122.132 203.182 244.838 +-124.574 201.959 243.364 +-128.528 203.152 244.802 +-131.299 202.427 243.929 +-137.264 206.508 248.846 +-139.682 205.15 247.21 +-143.822 206.289 248.582 +-113.211 158.642 191.167 +-111.318 152.449 183.704 +-112.708 150.901 181.838 +-114.196 149.521 180.175 +-115.878 148.421 178.85 +-117.402 147.144 177.311 +-119.454 146.541 176.585 +-121.311 145.701 175.572 +-125.016 147.039 177.185 +-131.286 151.252 182.262 +-440.916 497.676 599.71 +-441.8 488.675 588.862 +-443.639 480.967 579.574 +-444.169 472.071 568.855 +-445.482 464.242 559.421 +-446.722 456.543 550.143 +-448.323 449.404 541.541 +-449.872 442.39 533.088 +-451.484 435.606 524.913 +-452.89 428.785 516.694 +-454.881 422.666 509.32 +-455.362 415.302 500.447 +-1902.67 1703.45 2052.69 +-458.943 403.395 486.099 +-466.698 402.773 485.349 +-475.855 403.268 485.946 +-483.539 402.425 484.93 +-485.264 396.645 477.965 +-489.483 392.976 473.544 +-487.031 384.079 462.823 +-489.335 379.084 456.803 +-489.547 372.575 448.96 +-492.541 368.279 443.784 +-479.645 352.363 424.604 +-478.809 345.611 416.468 +-479.499 340.082 409.806 +-482.439 336.22 405.152 +-483.878 331.37 399.307 +-486.185 327.179 394.257 +-487.233 322.206 388.264 +-490.006 318.43 383.715 +-491.722 314.017 378.396 +-494.425 310.28 373.893 +-141.566 87.3033 105.202 +-143.044 86.687 104.46 +-143.126 85.2329 102.707 +-143.179 83.7852 100.963 +-142.312 81.8304 98.6072 +-142.976 80.7799 97.3413 +-143.697 79.7709 96.1255 +-148.811 81.165 97.8054 +-512.407 274.576 330.869 +-514.211 270.695 326.192 +-515.947 266.814 321.516 +-518.869 263.57 317.607 +-520.402 259.647 312.879 +-523.455 256.503 309.092 +-525.023 252.654 304.453 +-527.009 249.035 300.092 +-528.935 245.413 295.727 +-531.536 242.122 291.762 +-2683.95 1200.15 1446.2 +-2700.25 1185.15 1428.12 +-518.397 223.297 269.077 +-135.423 57.2413 68.9768 +-528.279 219.086 264.002 +-531.59 216.271 260.61 +-532.913 212.657 256.255 +-382.665 149.751 180.453 +-383.411 147.12 177.283 +-2823.13 1061.97 1279.7 +-542.911 200.171 241.21 +-544.843 196.855 237.214 +-380.897 134.832 162.475 +-382.549 132.643 159.837 +-380.462 129.187 155.673 +-382.479 127.15 153.219 +-381.262 124.058 149.492 +-382.137 121.671 146.616 +-380.909 118.642 142.965 +-381.884 116.322 140.17 +-381.827 113.703 137.015 +-381.092 110.909 133.648 +-381.497 108.469 130.708 +-381.314 105.881 127.589 +-382.102 103.577 124.812 +-381.47 100.906 121.594 +-382 98.5613 118.768 +-381.843 96.0541 115.747 +-381.928 93.6248 112.82 +-381.413 91.0679 109.739 +-381.797 88.7427 106.937 +-382.335 86.4622 104.189 +-380.666 83.7047 100.866 +-381.605 81.5392 98.2563 +-380.232 78.8967 95.072 +-381.964 76.9093 92.6772 +-380.896 74.367 89.6137 +-380.651 72.0055 86.768 +-380.852 69.741 84.0392 +-382.079 67.6668 81.5398 +-381.348 65.2541 78.6325 +-380.966 62.9184 75.8179 +-381.229 60.7003 73.145 +-382.433 58.6331 70.654 +-381.953 56.3128 67.8581 +-380.951 53.9333 64.9907 +-381.673 51.8083 62.43 +-382.171 49.6539 59.8339 +-380.773 47.2663 56.9569 +-380.323 45.0146 54.2434 +-381.515 42.9599 51.7675 +-381.495 40.7689 49.1273 +-382.137 38.6513 46.5756 +-381.365 36.3976 43.8598 +-380.857 34.1821 41.19 +-381.31 32.0583 38.6309 +-380.939 29.8699 35.9938 +-380.737 27.7024 33.382 +-380.902 25.5662 30.8078 +-380.54 23.3997 28.1971 +-381.244 21.3004 25.6674 +-381.121 19.1549 23.0821 +-381.768 17.0481 20.5433 +-380.389 14.8576 17.9037 +-380.278 12.7271 15.3364 +-380.438 10.6074 12.7822 +-380.868 8.4936 10.2349 +-147.749 2.47074 2.97729 +-145.778 1.62497 1.95812 +-146.794 0.818093 0.985818 +96.7 5.32907e-15 -1.7053e-13 +95.6964 0.539095 0.637822 +96.5853 1.08829 1.28759 +96.5669 1.63233 1.93126 +96.5412 2.17625 2.57479 +96.608 2.72281 3.22145 +96.5675 3.26692 3.86521 +96.4198 3.80684 4.504 +96.4644 4.35434 5.15178 +96.4019 4.89758 5.79449 +96.2324 5.43481 6.43012 +97.0511 6.03239 7.13713 +96.9659 6.57885 7.78366 +96.8733 7.12483 8.42964 +96.8725 7.67811 9.08424 +96.765 8.22358 9.7296 +96.6502 8.76833 10.3741 +96.429 9.30289 11.0066 +96.2008 9.83564 11.6369 +95.867 10.3559 12.2524 +95.9203 10.9179 12.9174 +96.4573 11.5402 13.6536 +96.3958 12.0954 14.3105 +96.2286 12.638 14.9524 +96.0541 13.1796 15.5932 +95.8723 13.7202 16.2329 +95.6831 14.2597 16.8712 +96.3619 14.9338 17.6687 +96.1563 15.4761 18.3103 +95.9434 16.0172 18.9505 +96.5926 16.7074 19.7671 +96.363 17.2508 20.4101 +96.3184 17.8286 21.0937 +95.7861 18.3155 21.6697 +96.3955 19.0243 22.5083 +96.1347 19.5665 23.1498 +95.9616 20.1273 23.8133 +96.3497 20.8105 24.6216 +96.1592 21.3735 25.2877 +96.6208 22.0867 26.1315 +96.2245 22.6081 26.7484 +97.0392 23.4205 27.7097 +96.6256 23.9432 28.328 +96.3913 24.5102 28.9989 +96.8907 25.2699 29.8977 +96.5454 25.8147 30.5423 +96.2848 26.3828 31.2145 +96.7498 27.1559 32.129 +97.2012 27.9362 33.0523 +96.9109 28.5094 33.7305 +96.5218 29.0542 34.3751 +96.2156 29.6247 35.05 +96.5305 30.3919 35.9578 +96.7424 31.1362 36.8383 +96.4069 31.7093 37.5163 +96.8616 32.5491 38.51 +96.2413 33.033 39.0825 +96.582 33.851 40.0503 +96.1207 34.3939 40.6926 +96.4354 35.2201 41.6701 +96.6484 36.0202 42.6167 +96.1578 36.5633 43.2593 +96.3456 37.3695 44.2132 +96.6041 38.2144 45.2128 +96.8471 39.065 46.2192 +96.1466 39.5397 46.7808 +96.3632 40.3962 47.7941 +96.564 41.2582 48.814 +96.7487 42.1254 49.84 +96.1755 42.6688 50.483 +95.595 43.209 51.1221 +96.3099 44.3456 52.4669 +95.7067 44.8864 53.1067 +95.8197 45.7695 54.1514 +95.9161 46.6571 55.2017 +95.9164 47.51 56.2108 +95.9009 48.3665 57.224 +95.9478 49.2665 58.2889 +95.9775 50.1708 59.3588 +95.2956 50.7095 59.9962 +95.9088 51.9498 61.4636 +95.2789 52.5299 62.15 +95.8481 53.7847 63.6345 +95.7165 54.6647 64.6757 +95.6427 55.5906 65.7711 +95.5511 56.5197 66.8705 +96.0267 57.8043 68.3902 +95.822 58.6984 69.4482 +95.6722 59.6396 70.5617 +95.5756 60.6287 71.7319 +95.3887 61.5756 72.8522 +95.7442 62.8933 74.4113 +95.5155 63.8482 75.541 +95.2683 64.8053 76.6735 +95.0024 65.7646 77.8084 +95.3258 67.1538 79.452 +95.6188 68.5513 81.1055 +94.6884 69.0877 81.7401 +94.9317 70.495 83.4051 +95.0792 71.8616 85.0219 +94.6183 72.7905 86.1209 +94.7757 74.2171 87.8088 +94.7757 75.5507 89.3867 +94.7467 76.8902 90.9715 +94.935 78.4381 92.8029 +94.6624 79.6356 94.2197 +94.1239 80.6303 95.3966 +94.2199 82.1951 97.2479 +94.5159 83.9761 99.355 +94.4804 85.504 101.163 +94.1239 86.7731 102.664 +94.1367 88.4173 104.61 +93.9444 89.9072 106.372 +93.8293 91.51 108.269 +93.6235 93.0631 110.106 +93.9737 95.2205 112.659 +93.8487 96.9505 114.705 +93.8407 98.8515 116.955 +93.4794 100.428 118.82 +93.5393 102.508 121.281 +93.7 104.764 123.95 +93.659 106.861 126.431 +93.1319 108.457 128.319 +93.4277 111.076 131.418 +93.1901 113.138 133.857 +93.3656 115.777 136.98 +93.522 118.484 140.182 +93.0322 120.451 142.509 +92.9785 123.059 145.595 +93.2057 126.142 149.243 +92.976 128.71 152.281 +93.0572 131.813 155.952 +92.6546 134.337 158.939 +92.6693 137.577 162.772 +92.6033 140.827 166.618 +92.4946 144.147 170.545 +92.4529 147.714 174.766 +92.1018 150.932 178.573 +92.5664 155.664 184.172 +91.264 157.57 186.427 +94.7054 167.966 198.726 +91.4631 166.728 197.262 +90.8986 170.411 201.619 +91.2251 175.997 208.229 +91.0673 180.925 214.058 +88.9788 182.17 215.531 +88.267 186.368 220.498 +87.9596 191.685 226.79 +90.2161 203.095 240.289 +88.2154 205.337 242.941 +85.695 206.45 244.258 +82.0746 204.863 242.38 +79.6165 206.131 243.881 +76.2199 204.94 242.472 +73.6265 205.864 243.565 +70.1914 204.381 241.81 +67.8624 206.094 243.837 +64.5155 204.698 242.185 +61.9175 205.624 243.28 +58.6434 204.251 241.656 +56.1578 205.591 243.242 +52.9308 204.18 241.573 +50.4814 205.746 243.425 +47.3138 204.362 241.788 +44.7998 205.771 243.455 +41.5465 203.712 241.019 +39.0835 205.476 243.106 +36.0439 204.213 241.612 +33.4805 205.628 243.286 +30.4502 204.138 241.523 +27.8114 205.203 242.783 +24.848 203.807 241.131 +22.2035 204.97 242.507 +19.3219 203.927 241.273 +16.6585 205.189 242.766 +13.8012 204.049 241.418 +11.105 205.28 242.874 +8.24836 203.335 240.572 +5.53416 204.664 242.146 +2.75148 203.526 240.798 +2.4869e-14 204.76 242.259 +-2.74624 203.138 240.34 +-5.54114 204.923 242.451 +-8.2405 203.141 240.343 +-11.0562 204.377 241.806 +-13.7663 203.533 240.807 +-16.6062 204.544 242.003 +-19.2486 203.154 240.358 +-22.1756 204.712 242.202 +-24.7617 203.099 240.293 +-27.6894 204.302 241.717 +-30.2681 202.918 240.079 +-33.3028 204.537 241.995 +-35.7609 202.61 239.715 +-38.8276 204.131 241.514 +-41.3638 202.816 239.959 +-44.4658 204.238 241.641 +-46.8408 202.319 239.371 +-49.9339 203.514 240.785 +-52.4026 202.143 239.162 +-55.7411 204.065 241.436 +-58.0238 202.093 239.103 +-61.2497 203.406 240.656 +-63.6981 202.104 239.117 +-66.9684 203.379 240.625 +-69.3905 202.049 239.051 +-72.7042 203.286 240.514 +-75.006 201.676 238.609 +-78.6246 203.563 240.843 +-80.8978 201.925 238.905 +-84.5044 203.582 240.865 +-86.799 202.04 239.041 +-90.2712 203.219 240.436 +-92.731 202.084 239.093 +-96.3072 203.344 240.584 +-98.7518 202.178 239.204 +-102.439 203.517 240.788 +-104.52 201.647 238.576 +-108.447 203.309 240.542 +-110.624 201.656 238.586 +-114.543 203.148 240.352 +-116.724 201.528 238.435 +-120.34 202.369 239.43 +-122.741 201.143 237.979 +-126.992 202.898 240.055 +-129.232 201.399 238.283 +-134.763 204.942 242.474 +-138.167 205.122 242.687 +-142.114 206.046 243.781 +-111.47 157.894 186.809 +-111.656 154.569 182.875 +-113.267 153.292 181.366 +-114.546 151.604 179.368 +-116.636 151.011 178.666 +-118.083 149.601 176.998 +-120.886 149.903 177.355 +-122.767 149.045 176.341 +-128.069 152.263 180.147 +-440.304 512.758 606.662 +-441.655 503.909 596.193 +-442.35 494.582 585.158 +-443.335 485.842 574.817 +-444.89 477.959 565.49 +-446.214 470.041 556.122 +-447.623 462.418 547.103 +-449.29 455.251 538.624 +-450.144 447.451 529.395 +-452.312 441.13 521.917 +-453.17 433.696 513.121 +-1855.83 1743.07 2062.29 +-456.452 420.804 497.868 +-459.104 415.484 491.574 +-460.412 409.07 483.985 +-472.468 412.169 487.652 +-479.406 410.677 485.887 +-484.939 407.961 482.673 +-488.589 403.687 477.617 +-490.293 397.889 470.756 +-487.597 388.691 459.874 +-489.208 383.089 453.247 +-490.897 377.649 446.81 +-493.386 372.906 441.198 +-477.611 354.669 419.621 +-479.273 349.693 413.734 +-481.306 345.06 408.253 +-483.452 340.575 402.947 +-485.105 335.809 397.307 +-487.149 331.377 392.064 +-488.484 326.531 386.331 +-490.987 322.524 381.589 +-492.429 317.874 376.088 +-141.58 89.8116 106.259 +-142.861 89.0557 105.365 +-143.334 87.8034 103.883 +-143.272 86.2438 102.038 +-142.516 84.3001 99.7384 +-142.461 82.8025 97.9666 +-142.601 81.4411 96.3558 +-147.697 82.8793 98.0575 +-2491.47 1373.62 1625.18 +-513.173 277.964 328.869 +-516.448 274.817 325.145 +-517.268 270.394 319.913 +-520.278 267.148 316.073 +-521.269 262.896 311.041 +-524.407 259.753 307.322 +-526.221 255.973 302.851 +-528.456 252.423 298.651 +-530.149 248.64 294.175 +-532.757 245.306 290.231 +-2683.95 1213.14 1435.31 +-2700.25 1197.98 1417.37 +-518.978 225.969 267.351 +-521.012 222.609 263.376 +-135.529 56.8149 67.2197 +-531.843 218.717 258.771 +-2778.63 1120.81 1326.07 +-382.494 151.306 179.016 +-381.697 148.048 175.161 +-381.443 145.041 171.603 +-543.777 202.662 239.776 +-546.496 199.591 236.143 +-383.696 137.294 162.437 +-381.758 133.803 158.307 +-380.815 130.707 154.645 +-380.971 128.021 151.466 +-380.282 125.078 147.985 +-381.69 122.845 145.342 +-381.898 120.238 142.257 +-381.342 117.415 138.918 +-381.284 114.771 135.79 +-380 111.789 132.262 +-382.227 109.854 129.973 +-382.139 107.259 126.902 +-381.825 104.623 123.783 +-382.394 102.246 120.971 +-381.073 99.3867 117.588 +-381.471 97.0002 114.764 +-382.208 94.7086 112.053 +-381.788 92.1452 109.02 +-381.797 89.7038 106.132 +-382.053 87.3341 103.328 +-380.949 84.6739 100.181 +-379.804 82.0337 97.0569 +-381.849 80.09 94.7573 +-381.868 77.7229 91.9567 +-380.418 75.0776 88.8269 +-380.268 72.7117 86.0278 +-382.005 70.7093 83.6586 +-380.923 68.1924 80.6808 +-381.348 65.9608 78.0406 +-381.257 63.6483 75.3045 +-381.617 61.4202 72.6683 +-380.683 58.9969 69.8013 +-381.661 56.8792 67.2957 +-381.829 54.6432 64.6503 +-381.086 52.2889 61.8648 +-382.073 50.1788 59.3683 +-381.558 47.8768 56.6447 +-382.191 45.7256 54.0995 +-380.431 43.3019 51.232 +-381.495 41.2104 48.7575 +-381.149 38.969 46.1056 +-381.661 36.8204 43.5635 +-380.956 34.5612 40.8906 +-380.913 32.3718 38.3002 +-380.443 30.154 35.6762 +-381.333 28.0463 33.1826 +-381.996 25.9174 30.6637 +-381.436 23.7088 28.0507 +-381.443 21.5423 25.4875 +-381.52 19.3827 22.9323 +-380.471 17.1742 20.3194 +-381.587 15.0658 17.8249 +-381.277 12.8988 15.261 +-381.636 10.7561 12.7259 +-380.368 8.57429 10.1445 +-147.25 2.48905 2.94488 +-146.378 1.64933 1.95138 +-146.494 0.825262 0.976397 +96.6 3.55271e-15 -1.7053e-13 +96.4963 0.549382 0.638224 +96.5853 1.09986 1.27772 +96.4669 1.64798 1.91448 +96.5412 2.19939 2.55505 +97.4072 2.77453 3.22321 +96.4676 3.29824 3.83161 +96.4198 3.84731 4.46947 +96.3647 4.3961 5.107 +97.2991 4.99572 5.8036 +97.129 5.54377 6.44027 +96.2548 6.0465 7.0243 +97.0653 6.65565 7.73195 +96.8733 7.20059 8.36502 +96.8725 7.75975 9.0146 +95.8727 8.23436 9.56596 +96.6502 8.86157 10.2946 +96.429 9.40181 10.9222 +96.2008 9.94022 11.5477 +95.867 10.466 12.1585 +96.7081 11.1247 12.9237 +95.4741 11.5441 13.4109 +96.3958 12.224 14.2008 +96.2286 12.7724 14.8378 +96.0541 13.3197 15.4737 +95.8723 13.8661 16.1084 +96.5601 14.5434 16.8953 +96.3619 15.0926 17.5332 +96.1563 15.6406 18.1699 +95.9434 16.1875 18.8052 +95.9164 16.7668 19.4782 +96.363 17.4343 20.2536 +96.03 17.9643 20.8693 +96.649 18.677 21.6973 +96.3955 19.2266 22.3357 +96.1347 19.7746 22.9724 +95.8665 20.3211 23.6073 +96.3497 21.0318 24.4329 +96.1592 21.6007 25.0938 +96.6208 22.3215 25.9312 +96.3185 22.8708 26.5693 +97.0392 23.6696 27.4972 +96.7189 24.2211 28.138 +97.1356 24.9621 28.9988 +96.8907 25.5386 29.6685 +97.2845 26.289 30.5402 +97.1133 26.8928 31.2417 +96.7498 27.4446 31.8828 +96.4704 28.0209 32.5523 +96.0919 28.5691 33.189 +96.5218 29.3631 34.1115 +96.9377 30.1643 35.0423 +96.4406 30.6865 35.6488 +96.116 31.2634 36.3191 +96.496 32.076 37.2631 +96.7729 32.8652 38.1799 +96.3296 33.4148 38.8184 +96.4941 34.1799 39.7072 +96.1207 34.7596 40.3806 +96.3484 35.5625 41.3134 +95.9556 36.1422 41.9869 +96.8471 37.2169 43.2354 +96.3456 37.7669 43.8743 +96.6041 38.6207 44.8662 +96.8471 39.4804 45.8648 +96.3153 40.0302 46.5036 +96.3632 40.8257 47.4278 +95.8135 41.3728 48.0633 +96.0026 42.245 49.0765 +96.0931 43.0856 50.0531 +96.3323 44.0052 51.1214 +96.3913 44.855 52.1086 +95.7876 45.4021 52.7442 +95.8197 46.2561 53.7363 +95.9161 47.1532 54.7785 +95.9958 48.0549 55.826 +95.9009 48.8807 56.7854 +95.9478 49.7904 57.8421 +95.8998 50.6631 58.856 +95.9129 51.5806 59.9219 +95.8322 52.4602 60.9437 +95.8112 53.3851 62.0182 +95.8481 54.3565 63.1467 +95.7165 55.2459 64.1799 +95.6427 56.1817 65.267 +95.5511 57.1207 66.3579 +95.4417 58.063 67.4525 +95.2417 58.9634 68.4985 +95.6722 60.2738 70.0208 +95.5042 61.2277 71.129 +95.318 62.1842 72.2402 +95.1134 63.1433 73.3544 +94.8903 64.1047 74.4713 +95.1994 65.4468 76.0304 +95.0024 66.4639 77.2119 +95.3258 67.8678 78.8429 +95.0165 68.8444 79.9775 +95.2185 70.2131 81.5675 +94.9317 71.2446 82.7657 +95.1441 72.6752 84.4278 +94.6826 73.614 85.5184 +94.2032 74.5535 86.6097 +94.8386 76.4049 88.7606 +94.7467 77.7078 90.2741 +94.8119 79.1698 91.9725 +94.2363 80.1203 93.0768 +94.1239 81.4877 94.6653 +94.2199 83.0691 96.5024 +93.9281 84.3412 97.9803 +94.4223 86.3597 100.325 +94.2386 87.8028 102.002 +94.1367 89.3574 103.808 +93.9444 90.8631 105.557 +94.1604 92.8092 107.818 +94.0592 94.4904 109.771 +93.9737 96.2329 111.795 +93.7957 97.9265 113.763 +93.893 99.9581 116.123 +93.4794 101.496 117.909 +93.5393 103.598 120.351 +93.7 105.878 123 +93.1665 107.429 124.802 +93.6167 110.181 127.999 +92.9505 111.685 129.746 +93.1901 114.341 132.831 +93.3656 117.008 135.93 +93.4766 119.686 139.04 +93.0322 121.731 141.417 +92.9347 124.308 144.411 +92.8182 126.953 147.482 +92.976 130.078 151.113 +93.0572 133.214 154.757 +92.6546 135.766 157.721 +92.6693 139.04 161.524 +92.6033 142.325 165.34 +92.4563 145.619 169.167 +92.4904 149.346 173.497 +92.1018 152.537 177.204 +92.2439 156.771 182.123 +92.0695 160.651 186.63 +93.3373 167.299 194.354 +90.5952 166.902 193.892 +91.5498 173.457 201.507 +91.1616 177.745 206.488 +90.6347 181.98 211.409 +88.8586 183.858 213.59 +86.7174 185.043 214.967 +90.3169 198.916 231.083 +89.8853 204.502 237.572 +86.6654 203.874 236.843 +84.2715 205.179 238.359 +80.7225 203.63 236.56 +78.552 205.538 238.776 +74.7959 203.249 236.117 +72.6142 205.193 238.376 +69.0659 203.242 236.109 +66.6773 204.649 237.743 +63.4588 203.486 236.392 +61.1161 205.12 238.291 +57.6775 203.023 235.854 +55.3764 204.885 238.018 +52.0725 203.005 235.834 +49.6367 204.454 237.517 +46.5008 202.986 235.812 +44.0622 204.536 237.612 +40.8678 202.515 235.264 +38.5838 205.006 238.158 +35.342 202.366 235.091 +32.916 204.311 237.351 +29.923 202.738 235.523 +27.4192 204.46 237.524 +24.4243 202.462 235.202 +21.8826 204.155 237.17 +18.9861 202.514 235.263 +16.4126 204.308 237.347 +13.5307 202.178 234.873 +10.9166 203.942 236.922 +8.12271 202.366 235.092 +5.45388 203.84 236.803 +2.70784 202.428 235.163 +2.30926e-14 204.067 237.067 +-2.70086 201.906 234.557 +-5.44864 203.644 236.576 +-8.10438 201.91 234.561 +-10.8956 203.551 236.468 +-13.5002 201.721 234.342 +-16.3655 203.721 236.666 +-18.9434 202.058 234.733 +-21.8059 203.44 236.338 +-24.3772 202.072 234.749 +-27.3059 203.615 236.542 +-29.7984 201.894 234.542 +-32.7592 203.338 236.22 +-35.2062 201.588 234.188 +-38.2913 203.452 236.353 +-40.6981 201.674 234.288 +-43.8256 203.437 236.335 +-46.1461 201.438 234.013 +-49.2612 202.907 235.72 +-51.4783 200.689 233.142 +-54.7686 202.637 235.406 +-57.0215 200.713 233.171 +-60.391 202.687 235.464 +-62.5218 200.481 232.901 +-66.012 202.607 235.371 +-68.33 201.077 233.593 +-71.6694 202.523 235.274 +-73.9555 200.966 233.465 +-77.4634 202.689 235.467 +-79.5207 200.599 233.038 +-83.1586 202.47 235.211 +-85.3559 200.794 233.265 +-89.0033 202.495 235.241 +-91.0269 200.48 232.9 +-95.0208 202.761 235.55 +-96.9475 200.595 233.033 +-100.74 202.269 234.978 +-103.124 201.069 233.584 +-106.689 202.139 234.828 +-108.721 200.295 232.685 +-112.525 201.691 234.307 +-114.903 200.493 232.915 +-118.871 202.024 234.694 +-121.019 200.429 232.841 +-124.856 201.607 234.21 +-124.257 195.706 227.354 +-131.051 201.416 233.987 +-132.783 199.227 231.444 +-119.865 175.637 204.04 +-111.635 159.81 185.653 +-112.374 157.217 182.641 +-114.085 156.041 181.275 +-115.072 153.92 178.81 +-117.439 153.668 178.518 +-119.173 152.586 177.261 +-122.04 152.944 177.677 +-124.41 152.646 177.331 +-1563.41 1878.51 2182.29 +-1588.48 1869.54 2171.87 +-167.621 193.282 224.538 +-1638.25 1851.17 2150.52 +-177.943 197.078 228.948 +-445.611 483.824 562.064 +-446.893 475.762 552.698 +-448.365 468.109 543.808 +-450.365 461.192 535.773 +-451.125 453.194 526.482 +-453.306 446.8 519.053 +-454.512 439.606 510.696 +-456.58 433.399 503.485 +-458.173 426.882 495.914 +-460.149 420.858 488.916 +-464.703 417.272 484.751 +-479.665 422.897 491.285 +-483.137 418.275 485.915 +-485.792 413.023 479.815 +-488.958 408.288 474.314 +-493.405 404.672 470.113 +-489.485 394.344 458.115 +-492.325 389.63 452.638 +-492.311 382.764 444.662 +-477.344 364.618 423.581 +-478.201 358.883 416.919 +-481.128 354.779 412.151 +-482.711 349.748 406.307 +-484.804 345.158 400.975 +-486.197 340.143 395.148 +-489.007 336.179 390.543 +-489.734 330.848 384.351 +-492.249 326.791 379.637 +-493.419 321.9 373.955 +-143.007 91.6812 106.507 +-143.005 90.0933 104.663 +-143.552 88.8714 103.243 +-142.98 86.9834 101.05 +-142.811 85.3726 99.1785 +-142.684 83.8141 97.3679 +-147.32 85.0301 98.7806 +-148.225 84.06 97.6536 +-513.122 285.907 332.142 +-514.782 281.8 327.371 +-517.374 278.236 323.231 +-518.59 273.967 318.27 +-521.139 270.435 314.168 +-522.688 266.414 309.496 +-526.231 263.428 306.028 +-526.94 259.048 300.94 +-2633.84 1271.46 1477.07 +-531.605 251.974 292.721 +-534.223 248.597 288.798 +-2683.95 1226.04 1424.31 +-2700.25 1210.72 1406.51 +-2716.34 1195.3 1388.6 +-2732.23 1179.79 1370.58 +-135.529 57.419 66.7044 +-135.786 56.4349 65.5611 +-535.203 218.179 253.461 +-383.688 153.392 178.197 +-381.697 149.622 173.818 +-382.563 147.013 170.787 +-384.255 144.732 168.137 +-547.28 202.002 234.669 +-549.524 198.721 230.857 +-2879.44 1019.95 1184.89 +-381.875 132.465 153.886 +-381.149 129.442 150.374 +-380.549 126.497 146.953 +-382.495 124.413 144.533 +-382.796 121.802 141.499 +-381.884 118.832 138.048 +-381.284 115.992 134.749 +-381.092 113.303 131.625 +-383.05 111.261 129.254 +-382.139 108.4 125.93 +-382.102 105.812 122.923 +-381.193 103.009 119.666 +-380.794 100.37 116.602 +-381.843 98.1268 113.995 +-381.928 95.6451 111.112 +-382.256 93.2391 108.317 +-382.643 90.8586 105.552 +-382.053 88.2627 102.536 +-382.368 85.8933 99.7833 +-381.511 83.2785 96.7457 +-381.088 80.7805 93.8437 +-381.868 78.5493 91.2518 +-381.47 76.0859 88.39 +-381.514 73.7262 85.6487 +-381.14 71.2994 82.8294 +-381.79 69.0747 80.245 +-382.7 66.8984 77.7167 +-381.257 64.3251 74.7273 +-380.744 61.9312 71.9463 +-381.752 59.7916 69.4607 +-381.758 57.4986 66.7969 +-381.536 55.1819 64.1055 +-380.206 52.7228 61.2488 +-381.779 50.6733 58.8678 +-380.577 48.2614 56.0658 +-381.601 46.1405 53.602 +-381.81 43.9209 51.0235 +-380.312 41.5195 48.2337 +-380.951 39.3629 45.7284 +-380.573 37.1059 43.1064 +-381.847 35.0104 40.672 +-380.814 32.7075 37.9967 +-381.237 30.5382 35.4767 +-381.333 28.3445 32.9282 +-380.802 26.1111 30.3336 +-381.137 23.9421 27.8139 +-381.244 21.76 25.2789 +-381.52 19.5888 22.7565 +-381.768 17.416 20.2324 +-381.587 15.226 17.6882 +-380.578 13.012 15.1162 +-380.737 10.8448 12.5986 +-3274.5 74.5991 86.6628 +-147.849 2.52576 2.93421 +-146.778 1.67142 1.94171 +-146.794 0.835747 0.970898 +96.6 3.55271e-15 -1.7053e-13 +96.5963 0.555692 0.633898 +96.5853 1.11134 1.26775 +96.5669 1.66691 1.9015 +96.5412 2.22235 2.53511 +96.608 2.78049 3.1718 +96.4676 3.33267 3.8017 +96.5196 3.8915 4.43917 +97.3623 4.48797 5.11958 +96.3022 4.99616 5.69929 +97.129 5.60165 6.39 +97.1507 6.1665 7.03434 +96.9659 6.71821 7.6637 +96.9726 7.28321 8.30821 +96.9718 7.8488 8.9534 +96.765 8.39778 9.57964 +96.6502 8.95408 10.2142 +96.429 9.49996 10.8369 +96.2008 10.044 11.4575 +96.0642 10.597 12.0884 +95.7233 11.1263 12.6922 +96.4573 11.7847 13.4432 +96.3958 12.3516 14.09 +96.1306 12.8926 14.707 +96.2497 13.4862 15.3842 +95.8723 14.0108 15.9827 +95.6831 14.5618 16.6112 +96.5563 15.2809 17.4315 +96.1563 15.8039 18.0281 +95.9434 16.3565 18.6584 +96.5926 17.0613 19.4624 +96.363 17.6163 20.0955 +96.03 18.1518 20.7064 +96.649 18.872 21.5279 +96.3955 19.4273 22.1614 +96.1347 19.981 22.793 +96.7224 20.7166 23.6322 +96.4445 21.2722 24.266 +96.9157 21.9979 25.0938 +95.7724 22.3566 25.5029 +96.3185 23.1096 26.3619 +96.9456 23.8936 27.2563 +96.6256 24.4504 27.8914 +97.1356 25.2227 28.7724 +96.8907 25.8052 29.4369 +96.5454 26.3616 30.0716 +97.0212 27.1478 30.9684 +96.7498 27.7311 31.6339 +96.4704 28.3135 32.2982 +96.1829 28.8947 32.9612 +96.5218 29.6697 33.8453 +96.9377 30.4793 34.7688 +96.5305 31.0357 35.4036 +96.0265 31.5604 36.0021 +96.4069 32.381 36.9381 +96.6842 33.1778 37.8471 +96.3296 33.7636 38.5154 +96.582 34.5681 39.4331 +96.1207 35.1224 40.0654 +96.3484 35.9337 40.9909 +96.6484 36.7832 41.9599 +96.1578 37.3378 42.5925 +96.3456 38.1611 43.5318 +96.6041 39.0239 44.5159 +96.0838 39.5782 45.1482 +96.3153 40.4481 46.1406 +96.3632 41.2519 47.0575 +96.564 42.1321 48.0616 +96.0026 42.686 48.6934 +96.1755 43.5727 49.7049 +96.3323 44.4646 50.7223 +96.3913 45.3233 51.7018 +96.4348 46.186 52.686 +95.9001 46.7782 53.3616 +95.9161 47.6455 54.3509 +95.9958 48.5566 55.3902 +95.9009 49.391 56.3421 +95.9478 50.3102 57.3906 +95.9775 51.2336 58.4439 +95.9129 52.1191 59.4541 +95.8322 53.0079 60.4679 +95.8872 53.9852 61.5829 +95.8481 54.924 62.6537 +95.6416 55.7791 63.6291 +95.6427 56.7682 64.7575 +95.4774 57.6725 65.789 +95.3685 58.6242 66.8746 +95.822 59.9419 68.3778 +95.6003 60.8572 69.4219 +95.5756 61.913 70.6264 +95.3887 62.88 71.7294 +95.7442 64.2256 73.2644 +95.5155 65.2007 74.3767 +95.1994 66.13 75.4369 +95.0024 67.1577 76.6092 +95.2582 68.5275 78.1718 +95.5519 69.9547 79.7998 +95.2185 70.9461 80.9308 +94.9317 71.9883 82.1196 +95.0142 73.3337 83.6544 +94.8112 74.484 84.9666 +94.8393 75.84 86.5134 +94.6498 77.049 87.8925 +94.8712 78.6218 89.6867 +94.8119 79.9963 91.2545 +94.7233 81.3753 92.8277 +94.1841 82.3905 93.9857 +94.0415 83.7774 95.5678 +94.5746 85.8084 97.8847 +94.4223 87.2613 99.542 +94.2386 88.7194 101.205 +94.1367 90.2903 102.997 +93.8326 91.7029 104.609 +93.8845 93.5032 106.662 +93.7324 95.1453 108.536 +93.8125 97.0708 110.732 +93.7427 98.8928 112.811 +93.475 100.552 114.703 +93.4794 102.555 116.988 +93.4378 104.566 119.282 +93.65 106.926 121.975 +93.1665 108.551 123.828 +93.5683 111.274 126.934 +93.4277 113.429 129.393 +93.1901 115.534 131.794 +93.3194 118.171 134.802 +93.4766 120.935 137.955 +92.9876 122.943 140.245 +92.9785 125.665 143.351 +92.8612 128.338 146.4 +92.976 131.436 149.934 +93.0157 134.545 153.48 +92.736 137.303 156.626 +92.7092 140.551 160.332 +92.5642 143.75 163.981 +92.7625 147.626 168.402 +92.4904 150.905 172.142 +92.395 154.62 176.381 +92.3156 158.53 180.841 +92.3497 162.822 185.737 +91.1826 165.143 188.385 +91.8303 170.944 195.002 +91.2893 174.768 199.364 +91.1616 179.6 204.876 +89.4913 181.56 207.112 +87.8362 183.64 209.485 +86.9806 187.542 213.936 +90.2885 200.929 229.207 +88.9482 204.482 233.26 +85.7301 203.78 232.459 +82.9256 204.01 232.722 +79.7711 203.331 231.947 +77.0279 203.654 232.315 +74.1422 203.577 232.227 +71.377 203.803 232.485 +68.3516 203.24 231.843 +65.6585 203.625 232.283 +62.6215 202.897 231.452 +60.1048 203.832 232.519 +56.9668 202.614 231.129 +54.5082 203.778 232.457 +51.3958 202.459 230.952 +48.964 203.788 232.468 +45.9539 202.693 231.219 +43.4498 203.799 232.48 +40.4501 202.538 231.042 +37.8526 203.221 231.821 +34.9911 202.448 230.94 +32.477 203.691 232.357 +29.5301 202.164 230.616 +26.9747 203.245 231.849 +24.1105 201.947 230.368 +21.5338 202.999 231.568 +18.748 202.062 230.499 +16.1404 203.018 231.589 +13.3737 201.917 230.334 +10.756 203.041 231.616 +8.018 201.843 230.249 +5.36836 202.738 231.271 +2.67119 201.772 230.169 +2.39808e-14 202.374 230.855 +-2.67207 201.838 230.244 +-5.37185 202.87 231.421 +-8.01538 201.777 230.174 +-10.749 202.909 231.465 +-13.3693 201.852 230.259 +-16.0985 202.491 230.989 +-18.6809 201.338 229.673 +-21.471 202.407 230.892 +-24.0399 201.355 229.693 +-26.8614 202.391 230.875 +-29.463 201.705 230.091 +-32.2261 202.117 230.562 +-34.7647 201.138 229.446 +-37.6942 202.37 230.851 +-40.1499 201.034 229.327 +-43.0462 201.906 230.321 +-45.5696 200.999 229.286 +-48.479 201.77 230.167 +-50.9832 200.834 229.098 +-53.883 201.442 229.791 +-56.2379 200.022 228.172 +-59.4179 201.503 229.861 +-61.9237 200.637 228.873 +-64.8684 201.175 229.488 +-67.3993 200.409 228.613 +-70.6346 201.683 230.067 +-73.1618 200.885 229.156 +-76.2296 201.543 229.907 +-78.6694 200.523 228.743 +-81.7868 201.209 229.526 +-84.3137 200.413 228.618 +-87.6802 201.567 229.935 +-90.1465 200.613 228.846 +-93.4712 201.537 229.9 +-95.8951 200.488 228.704 +-99.349 201.56 229.926 +-101.696 200.355 228.552 +-105.126 201.258 229.582 +-107.653 200.397 228.6 +-110.951 200.947 229.227 +-113.712 200.486 228.702 +-117.079 201.056 229.352 +-116.657 195.223 222.697 +-120.211 196.133 223.736 +-123.645 196.774 224.467 +-125.386 194.72 222.124 +-128.118 194.233 221.569 +-112.137 166.028 189.394 +-111.884 161.838 184.615 +-113.008 159.755 182.238 +-114.559 158.325 180.607 +-116.212 157.067 179.172 +-118.599 156.806 178.874 +-120.217 155.53 177.419 +-123.148 155.944 177.89 +-126.663 157.033 179.133 +-164.238 199.4 227.463 +-163.526 194.469 221.838 +-167.375 195.013 222.458 +-1638.25 1870.49 2133.74 +-172.056 192.546 219.644 +-446.383 489.722 558.644 +-448.043 481.965 549.794 +-449.319 474.003 540.711 +-451.17 466.841 532.542 +-452.323 459.142 523.759 +-454.355 452.509 516.193 +-1832.2 1790.6 2042.61 +-457.316 438.629 500.36 +-458.861 431.987 492.782 +-463.517 428.364 488.65 +-472.05 428.295 488.571 +-483.948 431.127 491.802 +-488.313 427.169 487.286 +-486.948 418.329 477.202 +-486.003 410.058 467.767 +-488.736 405.028 462.03 +-490.681 399.435 455.649 +-499.067 399.089 455.255 +-496.425 389.992 444.877 +-478.254 369.126 421.075 +-479.514 363.625 414.799 +-481.924 359.075 409.609 +-483.982 354.33 404.197 +-486.29 349.831 399.064 +-487.629 344.706 393.219 +-489.627 340.119 387.986 +-491.61 335.582 382.811 +-493.65 331.143 377.746 +-141.563 93.318 106.451 +-143.007 92.6383 105.676 +-142.645 90.8051 103.585 +-143.624 89.8447 102.489 +-142.907 87.846 100.209 +-143.106 86.4419 98.6073 +-142.089 84.3364 96.2055 +-148.218 86.4426 98.6081 +-149.055 85.4135 97.4342 +-513.806 289.277 329.988 +-515.854 285.336 325.492 +-518.3 281.645 321.282 +-520.377 277.781 316.875 +-522.704 274.08 312.653 +-524.342 270.048 308.053 +-526.231 266.178 303.639 +-528.297 262.427 299.36 +-2633.84 1284.74 1465.54 +-532.333 254.953 290.834 +-535.688 251.881 287.33 +-537.528 248.109 283.027 +-2700.25 1223.36 1395.53 +-2716.34 1207.78 1377.76 +-2732.23 1192.11 1359.88 +-533.478 228.376 260.516 +-135.533 56.9178 64.9281 +-137.214 56.5202 64.4746 +-538.783 217.645 248.276 +-382.811 151.626 172.965 +-381.96 148.314 169.187 +-381.657 145.254 165.697 +-383.827 143.151 163.297 +-549.961 200.955 229.236 +-552.6 197.784 225.619 +-381.433 133.693 152.509 +-380.173 130.458 148.819 +-380.192 127.698 145.67 +-381.958 125.536 143.203 +-382.257 122.9 140.197 +-382.786 120.356 137.295 +-381.012 117.119 133.602 +-381.547 114.622 130.753 +-382.41 112.235 128.03 +-382.597 109.663 125.096 +-380.997 106.608 121.612 +-382.024 104.311 118.992 +-381.629 101.64 115.945 +-381.843 99.1512 113.105 +-380.527 96.2896 109.841 +-380.851 93.8658 107.076 +-382.173 91.6944 104.599 +-381.487 89.0523 101.585 +-380.949 86.4676 98.6366 +-381.226 84.0846 95.9183 +-381.849 81.7866 93.2969 +-380.438 79.0721 90.2003 +-381.566 76.8993 87.7218 +-380.556 74.3087 84.7665 +-382.005 72.2072 82.3693 +-380.923 69.637 79.4373 +-381.348 67.3581 76.8378 +-380.772 64.9141 74.0499 +-381.617 62.7213 71.5483 +-381.558 60.3851 68.8834 +-381.953 58.1286 66.3093 +-381.536 55.758 63.6051 +-380.206 53.2732 60.7707 +-381.485 51.1629 58.3633 +-380.97 48.8156 55.6856 +-380.716 46.514 53.0602 +-381.515 44.3451 50.586 +-381.495 42.0834 48.0061 +-381.248 39.8048 45.4067 +-381.068 37.542 42.8254 +-380.659 35.2658 40.229 +-381.31 33.092 37.7492 +-381.336 30.8651 35.2089 +-380.439 28.5732 32.5945 +-381.499 26.4319 30.1518 +-381.436 24.2111 27.6184 +-380.347 21.9355 25.0226 +-380.822 19.7571 22.5376 +-380.471 17.538 20.0062 +-381.088 15.3648 17.5271 +-380.877 13.1582 15.01 +-381.037 10.9667 12.5101 +-149.409 3.43934 3.92338 +-146.85 2.53487 2.89162 +-145.478 1.67392 1.9095 +-146.794 0.844472 0.963318 +96.6 3.55271e-15 -1.7053e-13 +96.5963 0.561388 0.628859 +96.5853 1.12273 1.25767 +96.5669 1.68399 1.88638 +96.5412 2.24513 2.51496 +96.608 2.80899 3.14659 +96.4676 3.36683 3.77148 +96.5196 3.93139 4.40388 +96.4644 4.49216 5.03205 +96.3022 5.04737 5.65399 +96.332 5.61264 6.28719 +97.1507 6.22971 6.97842 +96.1703 6.7314 7.54042 +96.9726 7.35787 8.24217 +96.8725 7.92113 8.87313 +96.765 8.48386 9.50349 +96.6502 9.04586 10.133 +96.429 9.59734 10.7508 +96.2008 10.147 11.3665 +96.0642 10.7056 11.9923 +96.7081 11.3561 12.7209 +96.4573 11.9055 13.3363 +96.2976 12.4656 13.9638 +96.1306 13.0247 14.5901 +96.0541 13.5967 15.2308 +95.8723 14.1545 15.8556 +95.6831 14.7111 16.4791 +96.5563 15.4376 17.2929 +96.1563 15.9659 17.8848 +95.9434 16.5241 18.5101 +96.5926 17.2362 19.3077 +96.363 17.7968 19.9357 +96.03 18.3379 20.5418 +96.649 19.0654 21.3568 +96.3955 19.6264 21.9852 +96.1347 20.1858 22.6118 +95.8665 20.7438 23.2368 +96.4445 21.4903 24.0731 +96.9157 22.2234 24.8943 +95.7724 22.5857 25.3002 +96.2245 23.3237 26.1268 +96.9456 24.1385 27.0396 +96.7189 24.7248 27.6964 +97.1356 25.4812 28.5437 +96.8907 26.0697 29.2029 +96.5454 26.6318 29.8325 +97.1133 27.452 30.7514 +96.7498 28.0154 31.3824 +97.2926 28.8475 32.3145 +96.1829 29.1909 32.6992 +96.5218 29.9738 33.5762 +96.9377 30.7917 34.4924 +96.4406 31.3246 35.0894 +96.0265 31.8839 35.7159 +96.496 32.7431 36.6784 +96.6842 33.5179 37.5462 +96.2413 34.0785 38.1742 +96.582 34.9225 39.1196 +96.9079 35.773 40.0724 +96.3484 36.302 40.665 +96.6484 37.1603 41.6264 +96.1578 37.7205 42.254 +96.3456 38.5523 43.1857 +96.6041 39.4239 44.1621 +96.0838 39.9838 44.7893 +96.3153 40.8627 45.7738 +96.3632 41.6748 46.6835 +96.564 42.564 47.6796 +96.0026 43.1236 48.3064 +96.1755 44.0193 49.3098 +96.3323 44.9204 50.3191 +96.3913 45.7878 51.2908 +96.5157 46.6986 52.3111 +95.9001 47.2577 52.9374 +95.9161 48.1339 53.9188 +95.9958 49.0543 54.9499 +95.9009 49.8973 55.8942 +95.9478 50.8259 56.9344 +95.9775 51.7587 57.9793 +95.9129 52.6534 58.9815 +95.8322 53.5512 59.9873 +95.8872 54.5386 61.0933 +95.7726 55.4433 62.1068 +95.6416 56.3508 63.1233 +95.6427 57.3501 64.2427 +95.4774 58.2636 65.266 +96.0267 59.6338 66.8009 +95.822 60.5563 67.8343 +95.6722 61.5273 68.9219 +95.5756 62.5477 70.0649 +95.318 63.4775 71.1065 +95.7442 64.884 72.682 +95.5155 65.869 73.7855 +95.1994 66.8079 74.8372 +95.0706 67.8947 76.0547 +95.2582 69.23 77.5504 +95.0165 70.2762 78.7223 +95.2185 71.6734 80.2874 +94.9317 72.7262 81.4668 +95.0142 74.0854 82.9894 +94.6826 75.145 84.1763 +94.8393 76.6174 85.8257 +94.7757 77.942 87.3094 +94.8712 79.4277 88.9738 +94.8119 80.8163 90.5291 +94.7233 82.2094 92.0898 +94.2442 83.2883 93.2983 +94.0415 84.6362 94.8082 +94.4571 86.5801 96.9857 +94.4223 88.1557 98.7507 +94.3533 89.738 100.523 +94.1367 91.2158 102.179 +94.0003 92.8081 103.962 +93.8845 94.4617 105.815 +93.7324 96.1206 107.673 +93.8125 98.0658 109.852 +93.6897 99.8499 111.85 +93.475 101.583 113.791 +93.4794 103.607 116.058 +93.4378 105.638 118.334 +93.6 107.965 120.94 +93.1665 109.663 122.843 +93.5683 112.414 125.925 +93.4277 114.592 128.364 +93.1901 116.719 130.746 +93.3194 119.382 133.73 +93.0227 121.581 136.194 +92.9876 124.203 139.131 +92.9785 126.954 142.211 +92.8612 129.653 145.236 +92.9338 132.723 148.674 +93.0157 135.924 152.26 +93.0207 139.137 155.859 +92.7092 141.992 159.057 +92.5642 145.223 162.677 +92.7625 149.139 167.063 +92.4904 152.452 170.774 +92.395 156.205 174.978 +92.1722 159.907 179.125 +92.3497 164.491 184.26 +91.1142 166.711 186.747 +91.8303 172.696 193.451 +91.387 176.749 197.992 +91.1616 181.441 203.248 +89.4604 183.358 205.395 +87.8362 185.522 207.819 +90.6645 197.489 221.224 +90.2885 202.989 227.385 +87.6802 203.634 228.107 +85.7301 205.869 230.611 +81.5798 202.757 227.125 +79.7711 205.415 230.103 +75.9877 202.963 227.356 +74.1422 205.663 230.381 +70.2072 202.517 226.857 +68.3516 205.323 230 +64.5774 202.326 226.642 +62.6215 204.977 229.612 +59.1699 202.719 227.082 +56.9668 204.691 229.292 +53.6052 202.457 226.789 +51.3958 204.534 229.116 +48.088 202.194 226.494 +45.9539 204.771 229.381 +42.7957 202.788 227.16 +40.4501 204.614 229.205 +37.2676 202.131 226.424 +34.9911 204.523 229.104 +31.9125 202.202 226.504 +29.5301 204.236 228.782 +26.5738 202.277 226.588 +24.1105 204.017 228.537 +21.206 201.957 226.229 +18.748 204.133 228.667 +15.8892 201.907 226.173 +13.3737 203.987 228.503 +10.5571 201.329 225.525 +8.018 203.912 228.419 +5.28633 201.687 225.927 +2.67119 203.841 228.339 +2.39808e-14 201.651 225.886 +-2.67207 203.907 228.414 +-5.28459 201.62 225.852 +-8.01538 203.845 228.345 +-10.5815 201.794 226.047 +-13.3693 203.921 228.429 +-15.8369 201.241 225.428 +-18.6809 203.402 227.848 +-21.185 201.758 226.006 +-24.0399 203.419 227.867 +-26.4431 201.281 225.472 +-29.463 203.772 228.262 +-31.7244 201.01 225.168 +-34.7647 203.2 227.622 +-37.0848 201.14 225.314 +-40.1499 203.095 227.504 +-42.4478 201.14 225.314 +-45.5696 203.059 227.463 +-47.8377 201.142 225.316 +-50.9832 202.892 227.277 +-52.9974 200.161 224.218 +-56.2379 202.072 226.358 +-58.4639 200.3 224.373 +-61.9237 202.693 227.054 +-63.9328 200.306 224.38 +-67.3993 202.463 226.796 +-69.5774 200.701 224.822 +-73.1618 202.944 227.334 +-74.9958 200.314 224.389 +-78.6694 202.578 226.925 +-80.6998 200.57 224.675 +-84.3137 202.467 226.8 +-86.4123 200.689 224.809 +-90.1465 202.669 227.027 +-92.2433 200.928 225.076 +-95.8951 202.543 226.886 +-97.7421 200.332 224.409 +-101.696 202.409 226.735 +-103.335 199.858 223.878 +-107.653 202.452 226.783 +-109.378 200.129 224.181 +-113.712 202.541 226.884 +-115.287 200.008 224.046 +-116.657 197.224 220.927 +-118.263 194.933 218.361 +-123.645 198.791 222.682 +-124.565 195.429 218.917 +-128.118 196.224 219.807 +-111.446 166.696 186.73 +-111.884 163.497 183.147 +-113.811 162.539 182.074 +-114.559 159.948 179.171 +-117.527 160.473 179.76 +-118.599 158.413 177.452 +-121.533 158.845 177.936 +-123.148 157.542 176.476 +-133.424 167.111 187.195 +-164.238 201.444 225.654 +-162.799 195.589 219.096 +-167.375 197.012 220.69 +-169.15 195.109 218.558 +-172.056 194.52 217.898 +-174.186 193.056 216.259 +-448.043 486.905 545.424 +-450.431 480.047 537.742 +-451.17 471.626 528.309 +-453.358 464.909 520.784 +-454.355 457.148 512.09 +-456.917 451.122 505.34 +-457.316 443.126 496.383 +-460.467 437.942 490.576 +-463.517 432.755 484.766 +-479.104 439.15 491.93 +-483.948 435.546 487.892 +-491.262 434.153 486.332 +-486.948 422.617 473.409 +-487.542 415.573 465.519 +-488.736 409.18 458.357 +-490.933 403.736 452.259 +-499.067 403.18 451.636 +-478.427 379.705 425.34 +-478.254 372.91 417.728 +-481.285 368.709 413.022 +-481.924 362.755 406.353 +-485.187 358.852 401.981 +-486.29 353.417 395.892 +-488.72 349.019 390.966 +-489.627 343.605 384.901 +-492.999 339.98 380.84 +-493.65 334.537 374.743 +-142.977 95.2162 106.66 +-143.007 93.5879 104.836 +-143.652 92.3832 103.486 +-143.624 90.7656 101.674 +-142.907 88.7464 99.4124 +-143.106 87.328 97.8235 +-147.589 88.498 99.1342 +-148.218 87.3286 97.8242 +-513.353 297.183 332.9 +-513.806 292.242 327.365 +-517.386 289.117 323.864 +-518.3 284.532 318.728 +-522.009 281.509 315.342 +-522.704 276.889 310.167 +-525.84 273.595 306.477 +-526.231 268.906 301.225 +-530.454 266.199 298.193 +-2633.84 1297.91 1453.89 +-2650.74 1282.55 1436.69 +-535.688 254.463 285.046 +-539.002 251.34 281.547 +-2700.25 1235.9 1384.43 +-2716.34 1220.16 1366.81 +-2732.23 1204.33 1349.07 +-383.105 165.684 185.596 +-135.533 57.5012 64.412 +-135.942 56.5702 63.3691 +-538.783 219.876 246.302 +-381.868 152.803 171.167 +-381.96 149.834 167.842 +-382.004 146.876 164.529 +-383.827 144.618 161.999 +-551.623 203.628 228.101 +-552.6 199.811 223.825 +-556.345 196.999 220.675 +-380.173 131.796 147.636 +-380.994 129.279 144.816 +-381.958 126.822 142.065 +-381.987 124.073 138.984 +-382.786 121.59 136.203 +-381.646 118.517 132.761 +-381.547 115.797 129.714 +-382.045 113.277 126.891 +-382.597 110.787 124.102 +-383.022 108.273 121.286 +-382.024 105.381 118.046 +-382 102.782 115.135 +-381.843 100.168 112.206 +-381.461 97.5151 109.235 +-380.851 94.8279 106.225 +-382.173 92.6343 103.768 +-381.487 89.9651 100.778 +-380.949 87.3539 97.8526 +-381.226 84.9465 95.1558 +-381.849 82.625 92.5553 +-380.438 79.8826 89.4833 +-380.896 77.5517 86.8723 +-380.556 75.0704 84.0927 +-381.621 72.8741 81.6324 +-380.923 70.3508 78.8059 +-381.83 68.1345 76.3232 +-380.772 65.5795 73.4612 +-381.811 63.3964 71.0157 +-381.558 61.0041 68.3359 +-380.297 58.4697 65.4969 +-381.536 56.3295 63.0995 +-381.38 53.9855 60.4737 +-381.485 51.6873 57.8994 +-381.951 49.443 55.3853 +-380.716 46.9908 52.6384 +-380.727 44.7071 50.0803 +-381.495 42.5148 47.6244 +-380.161 40.0982 44.9174 +-381.068 37.9268 42.485 +-380.659 35.6273 39.9092 +-381.31 33.4312 37.4491 +-381.237 31.1733 34.9199 +-380.439 28.8661 32.3354 +-380.802 26.6541 29.8575 +-381.436 24.4592 27.3989 +-381.742 22.2416 24.9147 +-380.822 19.9596 22.3584 +-380.87 17.7364 19.868 +-381.088 15.5223 17.3878 +-381.476 13.314 14.9141 +-381.037 11.0791 12.4106 +-148.11 3.44439 3.85835 +-146.85 2.56086 2.86863 +-146.378 1.70153 1.90603 +-146.794 0.853128 0.955661 +96.5 -3.55271e-15 -1.7053e-13 +95.5964 0.561168 0.617313 +96.4853 1.13286 1.2462 +96.267 1.69566 1.86531 +96.5412 2.26772 2.4946 +96.4082 2.83139 3.11467 +96.4676 3.40071 3.74095 +96.4198 3.96685 4.36373 +96.3647 4.53268 4.98617 +96.3022 5.09816 5.60823 +96.1328 5.65739 6.22342 +96.0557 6.22148 6.84393 +96.9659 6.85538 7.54125 +95.979 7.35576 8.09171 +96.7732 7.9927 8.79237 +96.6659 8.56042 9.41689 +96.5511 9.12754 10.0407 +96.3301 9.68396 10.6528 +96.0033 10.228 11.2513 +95.867 10.7912 11.8708 +95.6248 11.3418 12.4765 +95.4741 11.9027 13.0936 +96.1995 12.5782 13.8366 +95.9346 13.129 14.4425 +95.8585 13.7056 15.0768 +95.677 14.2678 15.6953 +95.5857 14.844 16.3291 +95.2923 15.3888 16.9284 +96.0593 16.1103 17.7221 +96.6211 16.8083 18.4899 +95.6267 17.2355 18.9599 +96.2667 17.958 19.7547 +95.9339 18.5038 20.3551 +95.6902 19.0662 20.9738 +96.2043 19.7846 21.764 +96.0393 20.3688 22.4067 +95.7714 20.9317 23.0259 +95.4962 21.4931 23.6435 +96.8211 22.4251 24.6688 +95.7724 22.813 25.0954 +96.2245 23.5584 25.9154 +96.8519 24.3578 26.7948 +96.5322 24.9254 27.4192 +96.2052 25.4911 28.0415 +96.6126 26.2565 28.8834 +96.3606 26.8483 29.5345 +96.9292 27.6758 30.4447 +96.5664 28.2437 31.0695 +96.2877 28.8368 31.7219 +95.9099 29.4009 32.3425 +96.4311 30.2471 33.2733 +96.8474 31.0725 34.1813 +96.4406 31.6399 34.8054 +96.8319 32.4749 35.724 +96.3178 33.0115 36.3143 +95.8859 33.5756 36.9349 +96.2413 34.4214 37.8653 +96.4941 35.2418 38.7677 +95.9458 35.7743 39.3535 +96.2613 36.6342 40.2994 +96.6484 37.5342 41.2895 +96.8471 38.3732 42.2124 +96.1742 38.871 42.76 +96.4336 39.7503 43.7274 +96.5927 40.6 44.6621 +96.1466 41.2017 45.3239 +96.2794 42.0576 46.2654 +95.7301 42.6211 46.8853 +96.6658 43.8585 48.2465 +96.0931 44.4242 48.8689 +96.2504 45.3338 49.8694 +96.3099 46.2096 50.8329 +95.7067 46.7731 51.4528 +95.7394 47.6532 52.4209 +95.8363 48.5777 53.4379 +95.8371 49.4661 54.4151 +95.8221 50.358 55.3963 +95.8695 51.2954 56.4275 +95.2004 51.8562 57.0444 +95.2185 52.7982 58.0806 +95.8322 54.0901 59.5018 +95.8112 55.0438 60.5509 +95.7726 56.0012 61.6042 +95.6416 56.9179 62.6125 +95.4941 57.8372 63.6238 +95.4037 58.8045 64.6879 +95.2954 59.7752 65.7557 +95.7494 61.1194 67.2344 +95.6003 62.0997 68.3127 +95.5042 63.13 69.4461 +95.8837 64.4968 70.9496 +95.1134 65.1051 71.6189 +94.8209 66.048 72.6561 +95.1306 67.4318 74.1783 +94.9342 68.4791 75.3304 +95.1907 69.8769 76.868 +94.8827 70.8832 77.975 +95.1522 72.3442 79.5822 +94.8005 73.3572 80.6966 +95.0142 74.831 82.3178 +94.7469 75.953 83.552 +94.712 77.2848 85.0172 +94.6498 78.6221 86.4882 +94.809 80.1746 88.196 +94.2578 81.1519 89.2712 +94.6624 82.9829 91.2853 +94.0637 83.9656 92.3664 +93.9225 85.3796 93.9218 +93.9281 86.9617 95.6621 +93.8416 88.4953 97.3492 +94.3533 90.6411 99.7097 +94.1367 92.1337 101.352 +94.2799 94.0212 103.428 +93.8845 95.4122 104.958 +92.861 96.1851 105.808 +93.8125 99.0527 108.963 +93.6897 100.855 110.945 +93.8407 103.007 113.312 +93.3249 104.476 114.929 +93.5393 106.816 117.503 +93.6 109.051 119.962 +93.5112 111.177 122.301 +93.0834 112.957 124.258 +93.2845 115.568 127.131 +93.1901 117.893 129.688 +93.227 120.464 132.516 +92.8865 122.625 134.894 +92.9876 125.453 138.005 +92.8908 128.11 140.927 +92.7751 130.836 143.926 +92.9338 134.058 147.471 +92.9742 137.231 150.96 +92.6546 139.984 153.989 +92.6294 143.298 157.635 +92.5642 146.685 161.361 +92.3798 150.019 165.029 +92.4154 153.861 169.254 +92.1384 157.339 173.081 +91.9572 161.139 177.261 +91.9645 165.453 182.007 +91.7982 169.653 186.626 +91.5298 173.863 191.258 +89.4336 174.712 192.192 +88.3693 177.654 195.428 +87.9462 182.069 200.284 +90.4824 193.034 212.347 +88.8225 195.423 214.975 +86.7383 196.97 216.677 +83.2976 195.402 214.952 +80.8931 196.208 215.838 +77.8528 195.44 214.994 +75.4896 196.346 215.991 +72.3346 195.15 214.674 +70.0103 196.156 215.781 +66.9229 194.986 214.495 +64.6289 196.094 215.713 +61.7706 195.479 215.037 +59.3518 196.23 215.863 +56.4413 195.316 214.857 +53.9235 195.706 215.286 +51.1047 194.955 214.46 +48.7055 195.779 215.366 +45.9604 195.193 214.722 +43.5742 196.121 215.743 +40.8056 195.304 214.844 +38.3878 196.136 215.759 +35.598 195.018 214.53 +33.1572 195.754 215.34 +30.4491 194.871 214.368 +28.0349 195.846 215.44 +25.31 194.596 214.065 +22.8316 195.14 214.663 +20.2294 194.595 214.065 +17.8018 195.781 215.368 +15.1931 195.004 214.514 +12.6802 195.355 214.9 +10.0964 194.481 213.939 +7.60702 195.407 214.957 +5.04549 194.435 213.888 +2.5307 195.063 214.579 +2.22045e-14 194.465 213.921 +-2.53331 195.265 214.801 +-5.04724 194.503 213.962 +-7.59655 195.138 214.662 +-10.0685 193.943 213.347 +-12.654 194.952 214.457 +-15.1146 193.997 213.406 +-17.7285 194.975 214.482 +-20.1875 194.192 213.621 +-22.7531 194.469 213.925 +-25.2316 193.993 213.402 +-27.8336 194.44 213.894 +-30.2819 193.801 213.191 +-32.9648 194.618 214.09 +-35.4152 194.017 213.428 +-38.1528 194.935 214.438 +-40.4576 193.638 213.012 +-43.2047 194.457 213.913 +-45.5381 193.399 212.749 +-48.3094 194.186 213.615 +-50.7226 193.498 212.857 +-53.559 194.384 213.832 +-55.7735 193.005 212.315 +-58.7936 194.384 213.832 +-61.2092 193.703 213.083 +-63.828 193.664 213.041 +-66.3381 193.282 212.62 +-69.3333 194.259 213.695 +-71.6573 193.323 212.665 +-74.5882 194.001 213.411 +-77.0763 193.492 212.85 +-80.0112 194.069 213.485 +-82.1951 192.816 212.107 +-85.4318 194.003 213.413 +-87.77 193.108 212.429 +-90.7831 193.676 213.053 +-93.2922 193.136 212.459 +-96.5558 194.112 213.533 +-98.9076 193.22 212.551 +-102.078 193.9 213.299 +-104.59 193.293 212.632 +-107.654 193.68 213.058 +-110.27 193.229 212.562 +-113.432 193.701 213.08 +-116.016 193.153 212.477 +-119.321 193.769 213.156 +-111.788 177.148 194.872 +-111.729 172.846 190.139 +-113.398 171.323 188.464 +-114.621 169.182 186.108 +-117.15 168.991 185.898 +-118.391 166.961 183.665 +-121.166 167.106 183.825 +-123.954 167.231 183.962 +-138.331 182.619 200.89 +-144.158 186.275 204.912 +-146.334 185.125 203.647 +-151.689 187.924 206.726 +-1588.48 1927.62 2120.48 +-1613.43 1918.23 2110.15 +-167.35 194.975 214.483 +-449.222 512.986 564.311 +-450.864 504.737 555.236 +-451.961 496.107 545.742 +-454.035 488.757 537.657 +-455.146 480.57 528.651 +-1784.51 1848.39 2033.32 +-458.273 465.73 512.326 +-461.278 460.011 506.035 +-468.588 458.617 504.501 +-481.231 462.296 508.548 +-487.849 460.055 506.083 +-486.627 450.535 495.611 +-485.851 441.659 485.847 +-488.132 435.728 479.323 +-489.87 429.431 472.396 +-491.667 423.306 465.658 +-493.343 417.193 458.933 +-477.843 396.926 436.638 +-479.73 391.458 430.624 +-482.798 387.03 425.752 +-483.774 381.01 419.13 +-485.68 375.821 413.422 +-487.755 370.839 407.942 +-490.071 366.113 402.742 +-491.019 360.445 396.507 +-493.903 356.27 391.914 +-142.145 100.757 110.838 +-142.752 99.4347 109.383 +-142.845 97.7773 107.56 +-143.401 96.4596 106.11 +-142.507 94.2001 103.625 +-142.861 92.799 102.083 +-142.391 90.892 99.9857 +-147.514 92.5299 101.787 +-148.783 91.7059 100.881 +-514.182 311.42 342.578 +-515.806 306.964 337.676 +-518.033 302.91 333.216 +-520.042 298.766 328.657 +-522.289 294.794 324.288 +-524.01 290.561 319.632 +-526.827 286.966 315.677 +-528.495 282.774 311.065 +-530.725 278.916 306.821 +-532.737 274.97 302.481 +-534.846 271.105 298.229 +-537.218 267.394 294.147 +-539.453 263.637 290.014 +-2667.45 1279.84 1407.89 +-384.674 181.181 199.308 +-383.796 177.43 195.182 +-381.855 173.252 190.586 +-2732.23 1216.44 1338.15 +-381.595 166.692 183.369 +-384.08 164.59 181.057 +-382.809 160.903 177.002 +-383.688 158.158 173.981 +-135.518 54.7727 60.2527 +-134.156 53.1558 58.474 +-2837.53 1101.98 1212.23 +-382.608 145.609 160.177 +-382.209 142.51 156.768 +-382.988 139.876 153.871 +-383.464 137.149 150.87 +-562.631 197.012 216.723 +-565.165 193.702 213.082 +-379.631 127.318 140.057 +-382.347 125.439 137.989 +-382.155 122.61 134.878 +-383.096 120.164 132.186 +-381.547 116.962 128.664 +-381.04 114.116 125.533 +-381.222 111.499 122.655 +-380.905 108.758 119.64 +-382.024 106.441 117.091 +-382.741 104.018 114.425 +-382.029 101.225 111.352 +-381.648 98.5448 108.404 +-381.507 95.947 105.546 +-378.414 92.6463 101.916 +-603.385 143.726 158.106 +-377.546 87.4446 96.1934 +-381.321 85.8229 94.4094 +-381.849 83.4564 91.8062 +-381.773 80.9696 89.0706 +-381.374 78.4304 86.2773 +-381.227 75.9597 83.5594 +-381.813 73.6444 81.0125 +-380.634 71.0049 78.1089 +-380.865 68.6459 75.5139 +-380.772 66.2395 72.8667 +-381.423 63.9693 70.3694 +-381.558 61.618 67.7829 +-381.563 59.2548 65.1832 +-380.755 56.7798 62.4607 +-381.184 54.5008 59.9535 +-381.387 52.1941 57.4161 +-381.362 49.8635 54.8524 +-381.503 47.5618 52.3203 +-381.219 45.2154 49.7392 +-381.791 42.9759 47.2757 +-381.248 40.6175 44.6812 +-381.068 38.3084 42.1412 +-380.56 35.9765 39.5759 +-380.715 33.7149 37.0881 +-379.847 31.3723 34.5111 +-380.737 29.1795 32.0989 +-382.195 27.0208 29.7242 +-380.739 24.6602 27.1275 +-381.941 22.4771 24.726 +-381.321 20.1868 22.2065 +-381.468 17.943 19.7382 +-380.289 15.6456 17.211 +-380.977 13.4304 14.7741 +-380.338 11.1701 12.2876 +-147.81 3.47201 3.81938 +-148.749 2.62008 2.88222 +-147.178 1.72805 1.90094 +-147.394 0.865231 0.951797 +96.5 -3.55271e-15 -1.7053e-13 +96.4963 0.57205 0.617989 +96.4853 1.14406 1.23593 +96.4669 1.71598 1.85378 +96.2413 2.28302 2.46636 +96.4082 2.85938 3.089 +96.4676 3.43432 3.71012 +96.4198 4.00605 4.32777 +96.2649 4.57274 4.93996 +96.2025 5.14322 5.55625 +96.1328 5.71331 6.17212 +96.0557 6.28297 6.78753 +96.9659 6.92313 7.4791 +96.7739 7.49001 8.0915 +96.7732 8.0717 8.71991 +96.5667 8.6362 9.32974 +97.3434 9.29336 10.0397 +96.3301 9.77967 10.565 +96.2008 10.3504 11.1816 +95.867 10.8978 11.773 +95.7233 11.4657 12.3865 +95.4741 12.0204 12.9857 +96.1013 12.6895 13.7086 +95.9346 13.2587 14.3235 +95.8585 13.841 14.9526 +95.677 14.4088 15.5659 +95.4883 14.9754 16.178 +96.2646 15.6995 16.9602 +96.0593 16.2695 17.5761 +95.8466 16.8383 18.1905 +96.496 17.5641 18.9746 +95.4958 17.9902 19.4349 +95.9339 18.6867 20.1874 +96.5531 19.4283 20.9885 +96.2999 19.9999 21.6061 +96.0393 20.5701 22.222 +95.7714 21.1386 22.8362 +96.3497 21.8995 23.6582 +95.9701 22.4477 24.2504 +96.4322 23.1972 25.06 +96.2245 23.7912 25.7018 +96.8519 24.5986 26.574 +96.5322 25.1718 27.1932 +96.9495 25.9422 28.0255 +96.7053 26.5414 28.6729 +96.3606 27.1137 29.2911 +96.1007 27.7104 29.9357 +96.5664 28.5228 30.8134 +96.2877 29.1218 31.4604 +96.8199 29.9732 32.3803 +96.4311 30.546 32.999 +96.7571 31.3504 33.8681 +96.4406 31.9526 34.5186 +95.937 32.4928 35.1021 +96.3178 33.3378 36.015 +96.5955 34.1584 36.9015 +96.153 34.7298 37.5188 +96.4941 35.5901 38.4482 +96.0332 36.1608 39.0647 +96.2613 36.9963 39.9673 +95.869 37.5995 40.619 +96.0717 38.4422 41.5293 +96.2599 39.2901 42.4454 +96.4336 40.1432 43.367 +96.5927 41.0013 44.294 +96.0623 41.5723 44.9109 +96.2794 42.4732 45.8841 +95.7301 43.0423 46.4989 +95.9196 43.95 47.4795 +96.0931 44.8633 48.4661 +96.2504 45.7818 49.4584 +96.3099 46.6663 50.4139 +95.6258 47.1955 50.9856 +95.7394 48.1242 51.9889 +95.8363 49.0579 52.9975 +95.9164 49.9963 54.0113 +95.8221 50.8557 54.9397 +95.7912 51.7601 55.9168 +95.8221 52.7107 56.9438 +95.8358 53.6656 57.9753 +95.7556 54.5811 58.9643 +95.7351 55.5437 60.0042 +95.7726 56.5547 61.0964 +95.6416 57.4804 62.0965 +95.5684 58.4543 63.1485 +95.4037 59.3857 64.1548 +95.3685 60.4123 65.2638 +95.1691 61.3494 66.2761 +95.5283 62.6662 67.6987 +95.5042 63.7539 68.8738 +95.2473 64.7019 69.8979 +95.6741 66.1362 71.4473 +95.4461 67.1406 72.5324 +95.1994 68.1471 73.6198 +94.866 69.1063 74.656 +95.3258 70.668 76.3431 +94.8827 71.5837 77.3324 +94.5559 72.6013 78.4317 +94.8661 74.1332 80.0865 +95.0142 75.5706 81.6394 +95.1968 77.0677 83.2568 +95.2845 78.5201 84.8258 +94.6498 79.3991 85.7754 +94.7467 80.914 87.4119 +94.1962 81.901 88.4782 +94.6624 83.803 90.533 +94.0637 84.7955 91.6051 +93.9225 86.2234 93.1477 +93.8693 87.7661 94.8143 +94.3642 89.8679 97.0848 +94.296 91.4812 98.8278 +94.1934 93.1 100.577 +94.0003 94.6685 102.271 +93.0566 95.5054 103.175 +89.9744 94.1162 101.674 +90.2126 96.1929 103.918 +93.3718 101.506 109.657 +93.893 104.082 112.441 +93.3764 105.567 114.044 +93.4886 107.814 116.472 +93.6 110.129 118.973 +93.0681 111.744 120.717 +92.9865 113.955 123.106 +93.3323 116.77 126.148 +93.1901 119.058 128.619 +92.9038 121.233 130.969 +93.295 124.382 134.371 +93.0322 126.754 136.933 +92.8908 129.376 139.766 +92.7321 132.068 142.674 +92.8915 135.321 146.189 +93.0157 138.649 149.783 +92.6139 141.305 152.652 +92.5895 144.652 156.268 +92.5251 148.072 159.963 +92.418 151.564 163.736 +92.378 155.319 167.792 +92.1018 158.831 171.586 +91.9931 162.795 175.869 +91.9645 167.088 180.507 +91.8324 171.393 185.157 +90.929 174.429 188.437 +89.8243 177.209 191.44 +87.6713 177.993 192.287 +90.2021 188.584 203.728 +90.3922 194.748 210.387 +88.2963 196.186 211.941 +85.8294 196.832 212.639 +82.6912 195.897 211.629 +80.3586 196.838 212.645 +77.2057 195.732 211.451 +74.7134 196.248 212.008 +71.8992 195.892 211.624 +69.3333 196.179 211.933 +66.518 195.722 211.44 +64.0228 196.175 211.929 +61.1884 195.551 211.255 +58.8534 196.505 212.286 +55.9643 195.579 211.285 +53.6319 196.572 212.358 +50.7921 195.678 211.392 +48.3424 196.239 211.999 +45.5694 195.445 211.141 +43.2047 196.379 212.15 +40.4437 195.485 211.183 +38.0484 196.323 212.089 +35.3543 195.598 211.305 +32.8629 195.934 211.669 +30.2923 195.784 211.506 +27.7761 195.956 211.693 +25.1444 195.233 210.912 +22.6825 195.782 211.504 +20.1178 195.434 211.128 +17.6125 195.614 211.323 +15.0414 194.964 210.621 +12.5755 195.657 211.37 +10.0336 195.181 210.855 +7.53634 195.504 211.205 +5.01582 195.202 210.878 +2.51586 195.836 211.563 +2.22045e-14 195.232 210.91 +-2.50888 195.293 210.976 +-5.00186 194.659 210.291 +-7.52587 195.233 210.911 +-10.0057 194.638 210.268 +-12.5493 195.25 210.93 +-15.0518 195.1 210.768 +-17.6125 195.614 211.323 +-20.062 194.892 210.543 +-22.6433 195.443 211.138 +-25.0573 194.557 210.181 +-27.6515 195.077 210.743 +-30.0728 194.365 209.974 +-32.7723 195.394 211.086 +-35.1959 194.721 210.358 +-37.8395 195.246 210.925 +-40.1932 194.274 209.875 +-42.8647 194.835 210.481 +-45.3191 194.371 209.981 +-47.9298 194.564 210.189 +-50.4274 194.273 209.874 +-53.0488 194.435 210.049 +-55.4682 193.846 209.413 +-58.2752 194.574 210.2 +-60.7726 194.222 209.819 +-63.4601 194.451 210.066 +-65.7757 193.538 209.08 +-68.703 194.395 210.006 +-71.1734 193.915 209.487 +-74.1125 194.67 210.303 +-76.3775 193.632 209.182 +-79.2896 194.219 209.816 +-81.7816 193.742 209.3 +-84.6934 194.227 209.824 +-87.3022 193.977 209.555 +-90.332 194.619 210.248 +-92.5197 193.429 208.963 +-95.7308 194.355 209.963 +-98.3541 194.037 209.62 +-101.31 194.344 209.951 +-103.872 193.863 209.432 +-106.743 193.94 209.515 +-109.302 193.426 208.96 +-112.443 193.909 209.481 +-115.192 193.676 209.229 +-117.713 193.048 208.551 +-111.593 178.586 192.928 +-112.328 175.489 189.582 +-113.846 173.699 187.648 +-114.953 171.348 185.109 +-117.488 171.153 184.898 +-119.036 169.531 183.145 +-122.218 170.223 183.893 +-125.114 170.465 184.154 +-143.279 191.022 206.362 +-143.281 186.971 201.986 +-145.02 185.275 200.154 +-150.162 187.871 202.958 +-157.418 192.915 208.407 +-163.435 196.231 211.99 +-163.7 192.608 208.076 +-449.882 518.817 560.482 +-450.864 509.725 550.66 +-452.85 501.994 542.308 +-454.459 494.048 533.724 +-1760.46 1877.17 2027.92 +-1784.51 1866.66 2016.56 +-459.488 471.58 509.451 +-463.459 466.754 504.237 +-473.232 467.74 505.302 +-483.468 469.034 506.701 +-484.713 461.616 498.686 +-488.097 456.362 493.011 +-486.862 446.953 482.846 +-488.614 440.469 475.842 +-490.662 434.376 469.26 +-492.406 428.132 462.514 +-481.64 411.321 444.353 +-478.913 401.746 434.009 +-480.303 395.799 427.585 +-482.541 390.647 422.019 +-484.099 385.034 415.955 +-486.271 379.997 410.513 +-488.351 374.962 405.074 +-490.673 370.185 399.914 +-491.424 364.308 393.564 +-494.517 360.238 389.168 +-141.113 101.014 109.126 +-142.544 100.271 108.324 +-143.827 99.4223 107.407 +-143.048 97.1731 104.977 +-142.721 95.2738 102.925 +-142.645 93.5748 101.09 +-143.334 92.3983 99.8185 +-148.538 94.0931 101.649 +-512.629 319.095 344.72 +-514.851 314.908 340.197 +-516.854 310.628 335.574 +-518.938 306.438 331.047 +-520.574 302.027 326.282 +-523.208 298.231 322.181 +-524.936 293.951 317.557 +-527.294 290.059 313.352 +-529.591 286.161 309.142 +-531.907 282.299 304.97 +-533.847 278.267 300.614 +-535.805 274.275 296.301 +-537.941 270.4 292.115 +-540.666 266.842 288.271 +-2667.45 1292.49 1396.29 +-2683.95 1276.63 1379.15 +-382.807 178.722 193.075 +-549.072 251.582 271.786 +-551.532 247.981 267.895 +-380.924 168.043 181.538 +-382.562 165.559 178.855 +-382.639 162.422 175.465 +-383.944 159.827 172.663 +-563.159 229.863 248.322 +-135.534 54.2328 58.588 +-546.202 214.219 231.422 +-383.74 147.484 159.328 +-382.209 143.919 155.476 +-380.704 140.416 151.692 +-381.522 137.803 148.869 +-563.429 199.242 215.242 +-565.967 195.894 211.626 +-381.868 129.335 139.721 +-381.898 126.53 136.691 +-381.794 123.705 133.64 +-380.921 120.662 130.352 +-382.093 118.287 127.786 +-381.862 115.493 124.767 +-382.506 112.981 122.054 +-381.273 109.939 118.768 +-382.301 107.571 116.209 +-381.536 104.715 113.125 +-382.309 102.3 110.515 +-381.648 99.5188 107.511 +-381.694 96.9435 104.729 +-378.884 93.6781 101.201 +-603.95 145.283 156.95 +-375.56 87.8449 94.8994 +-381.795 86.7791 93.748 +-381.564 84.2188 90.9821 +-380.438 81.4839 88.0276 +-381.087 79.1457 85.5016 +-380.46 76.5556 82.7035 +-381.044 74.2228 80.1834 +-381.79 71.9247 77.7008 +-381.541 69.448 75.0251 +-381.257 66.9791 72.358 +-380.647 64.47 69.6474 +-380.586 62.0684 67.0529 +-380.004 59.596 64.3819 +-381.048 57.3852 61.9936 +-380.988 55.0111 59.4289 +-381.681 52.7506 56.9868 +-380.479 50.2397 54.2743 +-382.29 48.1309 51.9961 +-380.037 45.5207 49.1763 +-380.41 43.2438 46.7165 +-381.248 41.0189 44.313 +-381.463 38.7272 41.8372 +-380.56 36.332 39.2497 +-381.805 34.1456 36.8877 +-380.641 31.7486 34.2982 +-381.035 29.4909 31.8592 +-381.001 27.2027 29.3872 +-380.64 24.8975 26.8969 +-381.244 22.6579 24.4774 +-380.324 20.333 21.9659 +-381.468 18.1204 19.5756 +-380.19 15.7961 17.0647 +-380.178 13.5347 14.6216 +-380.837 11.2953 12.2023 +-146.311 3.47076 3.74949 +-148.749 2.64598 2.85847 +-146.878 1.74157 1.88143 +-146.094 0.866079 0.935631 +95.7 0 -1.7053e-13 +95.5964 0.572214 0.607088 +96.4853 1.15516 1.22556 +96.4669 1.73263 1.83822 +96.4412 2.30996 2.45074 +96.4082 2.88713 3.06308 +96.3678 3.46407 3.67518 +96.32 4.04074 4.287 +96.2649 4.61712 4.8985 +96.2025 5.19313 5.50962 +97.0294 5.82256 6.17741 +96.9516 6.40311 6.79334 +96.0708 6.92578 7.34786 +95.979 7.50056 7.95767 +96.7732 8.15003 8.64673 +96.6659 8.72893 9.26091 +96.5511 9.30721 9.87443 +96.3301 9.87459 10.4764 +96.0033 10.4293 11.0649 +95.867 11.0036 11.6742 +95.6248 11.565 12.2699 +96.359 12.2495 12.996 +96.1995 12.8258 13.6075 +95.9346 13.3874 14.2033 +95.8585 13.9754 14.8271 +95.677 14.5486 15.4353 +95.4883 15.1207 16.0423 +96.2646 15.8518 16.8179 +96.0593 16.4274 17.4286 +95.8466 17.0017 18.0379 +96.5926 17.7523 18.8342 +96.2667 18.3115 19.4274 +95.9339 18.8681 20.018 +95.6902 19.4415 20.6264 +96.2999 20.194 21.4248 +96.0393 20.7697 22.0355 +95.7714 21.3437 22.6445 +96.3497 22.1121 23.4597 +96.0647 22.6879 24.0706 +96.5265 23.4452 24.874 +96.2245 24.0221 25.4861 +96.8519 24.8373 26.351 +96.5322 25.4161 26.965 +96.9495 26.194 27.7904 +96.7053 26.799 28.4323 +96.3606 27.3768 29.0453 +96.1007 27.9793 29.6845 +96.6581 28.827 30.5839 +96.2877 29.4044 31.1964 +95.9099 29.9797 31.8068 +96.5218 30.8714 32.7528 +96.8474 31.6842 33.6152 +95.5418 31.962 33.91 +96.7424 33.0836 35.0998 +96.3178 33.6614 35.7128 +96.5955 34.4899 36.5919 +96.2413 35.099 37.2381 +96.4941 35.9355 38.1256 +96.1207 36.545 38.7722 +96.3484 37.3891 39.6678 +95.7824 37.9301 40.2417 +96.761 39.0938 41.4763 +96.1742 39.6361 42.0517 +96.3483 40.4969 42.965 +96.6775 41.4356 43.9609 +96.1466 42.0127 44.5731 +96.2794 42.8854 45.4991 +96.4806 43.8008 46.4702 +95.9196 44.3766 47.0811 +96.0931 45.2987 48.0594 +96.2504 46.2262 49.0434 +96.3099 47.1192 49.9909 +95.6258 47.6535 50.5577 +95.7394 48.5913 51.5526 +95.8363 49.534 52.5528 +95.9164 50.4815 53.5581 +95.9009 51.3915 54.5235 +95.8695 52.3051 55.4928 +95.8221 53.2223 56.4659 +95.8358 54.1865 57.4888 +95.8322 55.1548 58.5162 +95.7351 56.0827 59.5006 +95.7726 57.1036 60.5837 +95.6416 58.0383 61.5754 +95.5684 59.0216 62.6186 +95.4037 59.9621 63.6164 +95.9536 61.3728 65.1132 +95.1691 61.9448 65.72 +95.5283 63.2744 67.1306 +95.4329 64.3246 68.2448 +95.2473 65.3298 69.3113 +95.0433 66.3378 70.3807 +94.8209 67.3482 71.4526 +95.1306 68.7591 72.9496 +94.866 69.777 74.0295 +95.1907 71.2524 75.5948 +94.8827 72.2785 76.6834 +95.086 73.7168 78.2094 +94.8005 74.8012 79.3599 +95.0142 76.304 80.9543 +94.5541 77.2903 82.0007 +94.7757 78.859 83.665 +94.6498 80.1697 85.0556 +94.7467 81.6993 86.6784 +94.7503 83.1822 88.2516 +94.1754 84.1815 89.3119 +94.0637 85.6185 90.8364 +93.982 87.1151 92.4243 +93.8693 88.6179 94.0187 +93.8997 90.2929 95.7957 +93.8945 91.9754 97.5807 +94.25 94.0605 99.7929 +94.0562 95.6442 101.473 +92.3391 95.6888 101.52 +90.1378 95.2025 101.005 +88.4395 95.2176 101.021 +92.6299 101.677 107.873 +93.4227 104.566 110.939 +93.4279 106.65 113.15 +93.4886 108.86 115.494 +93.55 111.138 117.911 +93.0681 112.828 119.704 +93.4713 115.661 122.71 +93.3323 117.904 125.089 +93.0962 120.093 127.412 +93.3194 122.957 130.451 +93.3858 125.711 133.373 +93.0322 127.984 135.784 +92.8908 130.632 138.593 +92.7321 133.35 141.477 +92.9338 136.697 145.028 +92.6425 139.433 147.93 +92.8986 143.115 151.837 +92.5895 146.056 154.957 +92.4861 149.445 158.553 +92.3798 152.972 162.295 +92.4154 156.889 166.451 +92.1018 160.372 170.146 +92.2797 164.888 174.937 +91.9645 168.71 178.992 +91.7982 172.992 183.535 +90.8288 175.928 186.65 +89.5964 178.475 189.352 +87.2271 178.809 189.707 +90.6347 191.328 202.988 +90.5124 196.9 208.9 +88.0039 197.434 209.467 +85.3182 197.558 209.598 +82.5258 197.403 209.433 +79.9577 197.756 209.809 +77.0504 197.234 209.254 +74.5131 197.621 209.665 +71.754 197.394 209.424 +68.9131 196.883 208.882 +66.3606 197.154 209.169 +63.6765 197.007 209.014 +61.1884 197.449 209.482 +58.5145 197.269 209.292 +55.8307 197.006 209.012 +53.3039 197.265 209.288 +50.6532 197.036 209.045 +48.1609 197.4 209.43 +45.5537 197.274 209.297 +43.0569 197.607 209.65 +40.3184 196.771 208.763 +37.7873 196.868 208.866 +35.2812 197.087 209.098 +32.6704 196.678 208.664 +30.1983 197.07 209.08 +27.6803 197.175 209.192 +25.0573 196.445 208.417 +22.5884 196.861 208.859 +20.048 196.647 208.631 +17.5576 196.896 208.896 +15.0571 197.062 209.072 +12.497 196.322 208.287 +10.0022 196.458 208.431 +7.50493 196.579 208.56 +4.99837 196.411 208.381 +2.50015 196.502 208.478 +2.13163e-14 196.578 208.558 +-2.50277 196.708 208.696 +-4.98964 196.068 208.017 +-7.50231 196.511 208.487 +-10.0057 196.527 208.504 +-12.51 196.528 208.505 +-14.9733 195.966 207.909 +-17.5026 196.28 208.242 +-20.0201 196.373 208.341 +-22.5648 196.656 208.641 +-24.9788 195.83 207.764 +-27.5557 196.287 208.25 +-30.0624 196.183 208.139 +-32.5912 196.2 208.157 +-35.0862 195.998 207.943 +-37.5785 195.78 207.712 +-40.2071 196.227 208.186 +-42.7169 196.047 207.995 +-45.1783 195.648 207.572 +-47.7813 195.844 207.78 +-50.2711 195.551 207.468 +-52.7936 195.377 207.284 +-55.4682 195.727 207.655 +-57.9563 195.387 207.295 +-60.4399 195.033 206.92 +-63.0921 195.199 207.096 +-65.7757 195.416 207.326 +-68.4695 195.615 207.537 +-71.1734 195.797 207.73 +-73.6618 195.363 207.27 +-76.3775 195.512 207.427 +-78.8086 194.915 206.794 +-81.5335 195.029 206.915 +-84.2674 195.125 207.017 +-87.0683 195.335 207.24 +-89.7607 195.265 207.165 +-92.5815 195.437 207.348 +-95.2549 195.266 207.166 +-97.7681 194.753 206.622 +-100.876 195.389 207.297 +-103.769 195.551 207.469 +-106.533 195.437 207.348 +-109.266 195.24 207.139 +-112.113 195.217 207.114 +-114.892 195.046 206.933 +-115.8 191.754 203.44 +-111.671 180.446 191.443 +-112.487 177.444 188.258 +-113.886 175.448 186.14 +-115.741 174.197 184.814 +-117.403 172.69 183.214 +-119.682 172.105 182.593 +-122.525 172.306 182.807 +-126.185 173.592 184.171 +-143.37 192.998 204.76 +-143.188 188.664 200.162 +-144.926 186.952 198.346 +-149.542 188.91 200.423 +-155.866 192.867 204.622 +-162.795 197.36 209.388 +-165.3 196.378 208.346 +-449.882 523.853 555.778 +-451.637 515.555 546.975 +-453.059 507.1 538.005 +-454.936 499.367 529.8 +-456.114 491.071 520.999 +-458.096 483.836 513.323 +-459.322 475.985 504.994 +-464.969 472.82 501.635 +-475.895 474.936 503.881 +-485.475 475.553 504.535 +-489.416 470.619 499.301 +-487.098 459.847 487.872 +-487.219 451.621 479.145 +-489.215 445.292 472.43 +-490.479 438.429 465.149 +-492.652 432.503 458.862 +-479.212 413.22 438.403 +-478.913 405.645 430.367 +-480.939 400.17 424.558 +-483.119 394.911 418.979 +-484.943 389.449 413.184 +-486.927 384.202 407.617 +-488.947 379.064 402.166 +-490.473 373.625 396.396 +-492.708 368.804 391.281 +-140.151 103.086 109.368 +-142.489 102.989 109.265 +-143.1 101.639 107.833 +-144.247 100.681 106.817 +-143.189 98.2129 104.198 +-142.864 96.2945 102.163 +-143.436 95.007 100.797 +-145.945 94.9947 100.784 +-148.977 95.2869 101.094 +-512.481 322.099 341.729 +-515.148 318.147 337.536 +-516.854 313.643 332.758 +-519.467 309.727 328.603 +-521.486 305.492 324.11 +-523.668 301.39 319.758 +-524.936 296.804 314.893 +-527.993 293.262 311.135 +-529.591 288.938 306.547 +-531.907 285.039 302.41 +-533.609 280.843 297.958 +-536.284 277.184 294.077 +-538.343 273.229 289.881 +-541.394 269.795 286.237 +-386.705 189.194 200.724 +-2683.95 1289.02 1367.58 +-385.361 181.661 192.732 +-2716.34 1256.7 1333.29 +-551.782 250.501 265.768 +-381.427 169.898 180.252 +-384.08 167.829 178.058 +-384.929 164.979 175.033 +-383.603 161.235 171.062 +-563.845 232.376 246.538 +-136.224 55.0376 58.3918 +-545.683 216.092 229.261 +-381.477 148.036 157.058 +-381.072 144.883 153.713 +-381.758 142.171 150.836 +-381.61 139.173 147.654 +-564.316 201.492 213.772 +-565.433 197.608 209.651 +-383.032 130.988 138.971 +-380.729 127.367 135.129 +-381.342 124.759 132.362 +-381.193 121.92 129.351 +-382.093 119.435 126.714 +-381.862 116.613 123.72 +-381.589 113.803 120.739 +-382.286 111.301 118.084 +-382.856 108.772 115.401 +-382.463 105.988 112.448 +-382.122 103.243 109.535 +-382.208 100.632 106.765 +-381.413 97.8117 103.773 +-381.139 95.1497 100.949 +-605.082 146.968 155.925 +-376.978 89.0322 94.4582 +-381.89 87.6432 92.9846 +-380.518 84.8029 89.9712 +-380.915 82.3776 87.3981 +-381.566 80.014 84.8904 +-381.227 77.4549 82.1754 +-381.14 74.9617 79.5302 +-380.634 72.4026 76.8151 +-381.154 70.0507 74.3199 +-382.031 67.7666 71.8965 +-382.005 65.3281 69.3094 +-381.461 62.8149 66.6431 +-380.004 60.1744 63.8416 +-381.732 58.046 61.5836 +-380.01 55.4024 58.7789 +-381.093 53.1805 56.4215 +-380.184 50.688 53.7771 +-381.503 48.498 51.4537 +-381.416 46.1293 48.9406 +-381.397 43.7766 46.4446 +-381.544 41.4492 43.9753 +-381.167 39.0726 41.4539 +-381.055 36.7324 38.971 +-381.012 34.4054 36.5022 +-380.344 32.0316 33.9837 +-380.637 29.7461 31.559 +-380.504 27.4308 29.1026 +-380.64 25.1391 26.6712 +-380.945 22.8599 24.253 +-380.125 20.5196 21.7702 +-380.571 18.2532 19.3656 +-379.89 15.9369 16.9081 +-380.078 13.6625 14.4951 +-381.237 11.4169 12.1127 +-147.01 3.5212 3.7358 +-147.749 2.6537 2.81543 +-146.778 1.75728 1.86437 +-145.794 0.872687 0.925873 +95.6 3.55271e-15 1.13687e-13 +96.4963 0.583106 0.607567 +96.4853 1.16617 1.21509 +96.4669 1.74914 1.82252 +96.4412 2.33198 2.4298 +96.4082 2.91464 3.03691 +96.3678 3.49708 3.64378 +96.32 4.07925 4.25038 +96.2649 4.66112 4.85665 +96.3022 5.24806 5.46821 +97.0294 5.87805 6.12463 +96.9516 6.46414 6.7353 +96.0708 6.99178 7.28508 +95.979 7.57204 7.88968 +95.9792 8.1602 8.50251 +96.6659 8.81212 9.18178 +96.5511 9.39592 9.79007 +96.3301 9.9687 10.3869 +96.0033 10.5287 10.9704 +95.7683 11.097 11.5625 +95.6248 11.6753 12.165 +95.4741 12.2527 12.7667 +95.2178 12.8159 13.3535 +96.0326 13.5288 14.0964 +95.8585 14.1086 14.7004 +95.677 14.6873 15.3034 +95.4883 15.2648 15.9052 +96.2646 16.0029 16.6742 +96.0593 16.584 17.2797 +95.9434 17.1812 17.9019 +96.496 17.9036 18.6546 +96.2667 18.486 19.2615 +96.03 19.067 19.8668 +96.5531 19.8038 20.6346 +96.2999 20.3865 21.2417 +96.0393 20.9677 21.8472 +96.6273 21.7397 22.6517 +96.3497 22.3228 23.2593 +96.8211 23.0845 24.0529 +96.4322 23.6455 24.6374 +96.1306 24.2274 25.2437 +96.9456 25.0983 26.1512 +96.4389 25.6335 26.7088 +96.9495 26.4436 27.5529 +96.6126 27.0285 28.1623 +96.3606 27.6377 28.7971 +96.1007 28.246 29.4309 +96.5664 29.0741 30.2938 +96.2877 29.6847 30.9299 +96.8199 30.5525 31.8342 +96.4311 31.1364 32.4426 +96.8474 31.9862 33.328 +96.3507 32.5398 33.9049 +96.7424 33.3989 34.7999 +96.3178 33.9822 35.4077 +95.8859 34.5628 36.0127 +96.2413 35.4335 36.9199 +96.4062 36.245 37.7654 +96.0332 36.8597 38.406 +96.2613 37.7113 39.2933 +96.5618 38.6032 40.2226 +95.9855 39.1501 40.7924 +96.1742 40.0139 41.6924 +96.3483 40.8829 42.5979 +96.6775 41.8305 43.5853 +96.1466 42.4131 44.1923 +96.2794 43.2942 45.1103 +96.4806 44.2182 46.0731 +95.9196 44.7995 46.6788 +96.0931 45.7304 47.6488 +95.5131 46.3093 48.2519 +95.5772 47.2064 49.1866 +96.4348 48.5147 50.5499 +95.7394 49.0544 51.1122 +95.8363 50.0061 52.1038 +95.9164 50.9627 53.1005 +95.9009 51.8813 54.0577 +95.8695 52.8036 55.0187 +95.8221 53.7296 55.9835 +95.8358 54.7029 56.9977 +95.2193 55.3244 57.6453 +95.7351 56.6172 58.9923 +95.7726 57.6478 60.0661 +95.6416 58.5914 61.0493 +95.4941 59.5378 62.0353 +96.0672 60.9546 63.5115 +95.8805 61.9105 64.5076 +95.7494 62.9165 65.5558 +95.6003 63.9256 66.6072 +95.3616 64.8891 67.6111 +95.2473 65.9525 68.7191 +95.1134 67.0194 69.8308 +95.5155 68.4881 71.3611 +95.1306 69.4144 72.3263 +94.866 70.442 73.397 +95.1907 71.9314 74.9489 +95.4849 73.4306 76.5109 +95.1522 74.4713 77.5953 +94.8661 75.566 78.736 +95.0792 77.0838 80.3174 +94.6183 78.0803 81.3557 +94.712 79.5572 82.8946 +94.7127 80.9871 84.3844 +94.809 82.5319 85.9941 +94.2578 83.538 87.0424 +94.2363 85.0385 88.6058 +94.1239 86.4899 90.118 +93.9225 87.89 91.5769 +93.9869 89.5747 93.3322 +93.8997 91.1534 94.9772 +94.4107 93.3623 97.2787 +94.25 94.957 98.9403 +94.0003 96.4983 100.546 +92.2287 96.4852 100.533 +90.1378 96.1099 100.142 +87.7948 95.4243 99.4273 +92.3119 102.293 106.584 +93.8407 106.035 110.483 +93.3764 107.607 112.121 +93.5393 109.957 114.57 +93.55 112.197 116.904 +93.5112 114.446 119.247 +92.9865 116.157 121.03 +93.3323 119.027 124.02 +93.1432 121.299 126.387 +93.3194 124.129 129.336 +92.9319 126.292 131.59 +92.9876 129.142 134.559 +92.8908 131.877 137.409 +93.1196 135.183 140.854 +92.8915 137.937 143.723 +92.9742 141.266 147.192 +92.5326 143.91 149.947 +92.5895 147.448 153.633 +92.5251 150.934 157.266 +92.418 154.494 160.975 +92.378 158.321 164.962 +92.1384 161.965 168.759 +91.9572 165.877 172.836 +92.0345 170.448 177.598 +91.7982 174.641 181.967 +90.7955 177.539 184.986 +89.3685 179.718 187.257 +86.9097 179.857 187.402 +90.6347 193.151 201.254 +90.3922 198.512 206.839 +88.0039 199.316 207.677 +85.3182 199.441 207.807 +82.3053 198.751 207.089 +79.7439 199.107 207.46 +76.9987 198.98 207.327 +74.2877 198.901 207.245 +71.7782 199.343 207.705 +69.1232 199.365 207.728 +66.3831 199.1 207.453 +63.6332 198.75 207.087 +61.0429 198.856 207.198 +58.5743 199.353 207.716 +55.8307 198.884 207.227 +53.2674 199.009 207.357 +50.6705 198.983 207.33 +48.1444 199.213 207.57 +45.4129 198.539 206.867 +42.9239 198.874 207.217 +40.2906 198.509 206.836 +37.8134 198.882 207.225 +35.269 198.897 207.24 +32.6931 198.69 207.025 +30.0937 198.26 206.577 +27.6898 199.123 207.476 +25.0747 198.455 206.78 +22.4942 197.909 206.211 +20.041 198.452 206.776 +17.5576 198.773 207.111 +15.0047 198.249 206.565 +12.5057 198.332 206.652 +10.0057 198.4 206.722 +7.48137 197.83 206.129 +4.99837 198.283 206.6 +2.50103 198.444 206.769 +2.39808e-14 197.898 206.199 +-2.5019 198.513 206.841 +-4.98615 197.798 206.095 +-7.50493 198.453 206.778 +-9.97428 197.777 206.074 +-12.51 198.401 206.724 +-14.9524 197.557 205.844 +-17.4843 197.943 206.247 +-20.0062 198.106 206.416 +-22.5021 197.978 206.283 +-24.9876 197.765 206.061 +-27.5652 198.227 206.543 +-29.9683 197.433 205.715 +-32.6025 198.139 206.451 +-35.0862 197.866 206.166 +-37.5785 197.646 205.937 +-40.0679 197.412 205.693 +-42.7169 197.916 206.218 +-45.0375 196.897 205.157 +-47.7813 197.711 206.004 +-50.1149 196.801 205.056 +-52.7572 197.103 205.371 +-55.2964 196.981 205.244 +-57.9563 197.25 205.524 +-60.4815 197.027 205.292 +-63.1354 197.196 205.468 +-65.6182 196.806 205.062 +-68.2594 196.874 205.132 +-70.9557 197.058 205.325 +-73.7119 197.36 205.639 +-76.1704 196.84 205.097 +-78.8353 196.839 205.096 +-81.7816 197.486 205.771 +-84.2674 196.985 205.248 +-87.0391 197.13 205.4 +-89.7306 197.059 205.326 +-92.2416 196.575 204.821 +-95.0645 196.733 204.986 +-97.8332 196.74 204.993 +-100.843 197.186 205.458 +-103.393 196.699 204.95 +-106.603 197.429 205.711 +-109.016 196.648 204.897 +-112.149 197.142 205.411 +-114.892 196.905 205.165 +-115.341 192.813 200.901 +-111.671 182.166 189.807 +-112.487 179.135 186.649 +-113.846 177.056 184.483 +-115.699 175.794 183.169 +-117.784 174.901 182.237 +-119.725 173.807 181.098 +-122.481 173.886 181.18 +-126.452 175.618 182.985 +-143.325 194.775 202.946 +-143.558 190.954 198.964 +-144.973 188.795 196.715 +-149.351 190.468 198.458 +-156.303 195.25 203.441 +-162.352 198.698 207.033 +-165.5 198.489 206.815 +-450.085 529.084 551.279 +-451.688 520.528 542.363 +-453.059 511.933 533.408 +-455.095 504.303 525.458 +-456.275 495.927 516.731 +-1784.51 1902.74 1982.56 +-459.598 480.81 500.98 +-465.975 478.359 498.426 +-476.574 480.148 500.289 +-486.278 480.88 501.052 +-490.404 476.063 496.033 +-486.51 463.67 483.12 +-487.219 455.926 475.051 +-489.637 449.923 468.797 +-491.088 443.156 461.746 +-492.775 436.735 455.055 +-478.901 416.887 434.375 +-479.165 409.726 426.914 +-480.366 403.503 420.429 +-483.183 398.728 415.455 +-484.943 393.161 409.653 +-486.927 387.864 404.134 +-488.947 382.676 398.729 +-490.941 377.546 393.384 +-492.708 372.319 387.938 +-141.31 104.929 109.33 +-142.971 104.322 108.698 +-143.1 102.608 106.912 +-143.546 101.147 105.39 +-143.331 99.2473 103.411 +-142.864 97.2122 101.29 +-142.645 95.3835 99.3847 +-147.396 96.8535 100.916 +-148.538 95.9118 99.9352 +-512.703 325.309 338.955 +-515.594 321.458 334.943 +-517.603 317.091 330.393 +-519.542 312.725 325.843 +-521.334 308.315 321.248 +-523.974 304.44 317.211 +-525.708 300.073 312.661 +-528.071 296.101 308.522 +-529.669 291.735 303.973 +-532.222 287.927 300.005 +-533.847 283.646 295.545 +-536.603 279.993 291.738 +-538.825 276.08 287.662 +-540.747 272.041 283.453 +-385.972 190.635 198.632 +-2683.95 1301.31 1355.89 +-383.796 182.647 190.309 +-549.818 256.794 267.566 +-551.782 252.889 263.497 +-380.421 171.064 178.24 +-384.08 169.429 176.536 +-384.929 166.551 173.538 +-384.37 163.097 169.939 +-2808.51 1168.5 1217.51 +-135.448 55.2459 57.5634 +-545.856 218.221 227.375 +-381.477 149.447 155.717 +-381.422 146.398 152.539 +-381.407 143.394 149.409 +-382.758 140.921 146.833 +-563.784 203.22 211.745 +-566.235 199.775 208.155 +-383.837 132.514 138.073 +-381.538 128.854 134.26 +-382.425 126.306 131.604 +-380.921 122.994 128.154 +-381.274 120.315 125.362 +-382.319 117.865 122.81 +-382.506 115.164 119.995 +-380.905 111.956 116.653 +-382.671 109.756 114.36 +-382.463 106.998 111.487 +-382.96 104.455 108.837 +-381.554 101.417 105.672 +-381.226 98.6954 102.836 +-382.831 96.4831 100.53 +-604.893 148.322 154.544 +-375.844 89.61 93.369 +-379.329 87.8851 91.5718 +-380.328 85.5682 89.1577 +-381.201 83.225 86.7163 +-381.087 80.6755 84.0598 +-380.843 78.1142 81.391 +-382.198 75.8859 79.0693 +-381.983 73.3516 76.4287 +-380.865 70.6643 73.6286 +-380.676 68.1697 71.0294 +-381.423 65.8501 68.6125 +-381.947 63.4943 66.1579 +-380.979 60.9037 63.4585 +-381.244 58.5243 60.9794 +-380.597 56.0168 58.3667 +-381.583 53.7564 56.0114 +-380.773 51.2504 53.4003 +-381.503 48.9602 51.0141 +-380.136 46.4126 48.3596 +-382.284 44.2967 46.1549 +-380.359 41.7142 43.4641 +-380.277 39.3529 41.0037 +-380.263 37.0054 38.5578 +-381.012 34.7333 36.1904 +-381.237 32.4128 33.7725 +-380.637 30.0296 31.2893 +-381.001 27.7285 28.8916 +-380.839 25.392 26.4571 +-381.144 23.0898 24.0584 +-380.922 20.7586 21.6294 +-381.169 18.4561 19.2303 +-379.89 16.0888 16.7637 +-380.777 13.818 14.3977 +-380.837 11.5136 11.9966 +-149.309 3.61034 3.76179 +-149.149 2.70437 2.81782 +-144.778 1.74986 1.82326 +-145.794 0.881005 0.917962 +95.7 0 -1.7053e-13 +96.4963 0.588564 0.602282 +96.4853 1.17708 1.20452 +96.4669 1.76551 1.80666 +96.4412 2.35381 2.40867 +96.5081 2.94497 3.01361 +96.3678 3.52981 3.61209 +96.32 4.11743 4.2134 +96.3647 4.70962 4.81939 +96.2025 5.29169 5.41503 +96.1328 5.87824 6.01525 +96.0557 6.46435 6.61502 +96.9659 7.12299 7.28901 +96.9726 7.72203 7.90201 +95.9792 8.23657 8.42855 +95.7736 8.81248 9.01788 +96.4521 9.47414 9.69496 +96.3301 10.062 10.2965 +96.0033 10.6273 10.875 +95.7683 11.2009 11.4619 +96.5112 11.8938 12.171 +96.359 12.482 12.7729 +96.1995 13.0692 13.3738 +96.0326 13.6555 13.9737 +95.8585 14.2406 14.5725 +95.677 14.8248 15.1703 +95.3908 15.392 15.7507 +96.1674 16.1363 16.5124 +96.0593 16.7392 17.1294 +95.9434 17.342 17.7462 +95.6267 17.9084 18.3258 +96.2667 18.659 19.0939 +96.03 19.2455 19.694 +96.5531 19.9892 20.4551 +96.2999 20.5773 21.0569 +96.0393 21.1639 21.6572 +96.6273 21.9432 22.4546 +96.3497 22.5318 23.0569 +96.0647 23.1185 23.6573 +96.5265 23.8902 24.447 +96.2245 24.478 25.0486 +96.8519 25.3087 25.8986 +96.5322 25.8984 26.5021 +96.9495 26.6911 27.3132 +96.7053 27.3076 27.9441 +97.1921 28.1371 28.7929 +96.1007 28.5103 29.1749 +96.5664 29.3462 30.0302 +96.2877 29.9625 30.6608 +95.9099 30.5487 31.2607 +96.3405 31.3983 32.1301 +96.0351 32.0148 32.761 +96.4406 32.875 33.6412 +95.937 33.4308 34.21 +96.2287 34.2685 35.0672 +96.6842 35.1768 35.9967 +96.2413 35.7651 36.5988 +96.4941 36.6175 37.471 +96.0332 37.2047 38.0719 +96.2613 38.0643 38.9515 +95.869 38.6849 39.5866 +96.1578 39.5874 40.5101 +96.2599 40.4244 41.3666 +96.3483 41.2655 42.2273 +95.9142 41.8887 42.865 +96.1466 42.8101 43.8079 +96.2794 43.6994 44.7179 +95.7301 44.2849 45.3171 +95.9196 45.2188 46.2728 +96.0931 46.1584 47.2343 +96.1684 47.0635 48.1604 +95.6586 47.6888 48.8003 +95.6258 48.5579 49.6897 +95.7394 49.5135 50.6676 +95.8363 50.4741 51.6505 +95.9164 51.4396 52.6386 +95.9009 52.3669 53.5874 +95.8695 53.2978 54.5401 +95.8998 54.2764 55.5415 +95.9129 55.2593 56.5473 +95.7556 56.1568 57.4656 +95.8112 57.1925 58.5256 +95.0934 57.7747 59.1213 +95.6416 59.1398 60.5182 +95.5684 60.1418 61.5435 +95.4037 61.1001 62.5242 +95.2954 62.1086 63.5563 +95.1691 63.1205 64.5917 +95.6722 64.5725 66.0775 +95.3616 65.4964 67.023 +95.1766 66.5203 68.0708 +95.0433 67.5968 69.1723 +94.8903 68.6766 70.2773 +95.1306 70.0641 71.6972 +94.866 71.1013 72.7585 +95.1907 72.6047 74.2969 +94.8827 73.6502 75.3669 +95.1522 75.1683 76.9203 +94.8005 76.2208 77.9974 +95.0792 77.8053 79.6188 +94.6183 78.811 80.6479 +94.7757 80.3556 82.2285 +94.7127 81.7451 83.6504 +94.809 83.3043 85.246 +94.1962 84.2654 86.2294 +94.1754 85.7792 87.7785 +94.0637 87.2434 89.2769 +93.982 88.7685 90.8375 +93.9869 90.413 92.5203 +93.8997 92.0065 94.151 +94.468 94.2934 96.4912 +94.25 95.8457 98.0796 +93.7766 97.1701 99.4349 +92.1735 97.3302 99.5987 +89.9744 96.8332 99.0902 +87.6873 96.1993 98.4415 +91.623 102.48 104.869 +93.8407 107.028 109.522 +93.4794 108.734 111.269 +93.5393 110.986 113.573 +93.6 113.308 115.949 +93.5112 115.517 118.21 +93.4713 117.856 120.603 +93.38 120.203 123.005 +93.1432 122.434 125.287 +93.2732 125.229 128.148 +92.9319 127.474 130.446 +92.943 130.288 133.325 +93.2854 133.677 136.792 +92.7321 135.881 139.048 +92.5534 138.721 141.955 +92.601 142.015 145.325 +92.5733 145.32 148.708 +92.5895 148.828 152.296 +92.4861 152.282 155.831 +92.418 155.94 159.574 +92.0408 159.219 162.93 +92.0651 163.351 167.158 +91.9572 167.43 171.332 +92.0695 172.108 176.12 +91.8324 176.341 180.451 +90.7955 179.2 183.377 +89.1731 181.004 185.222 +86.8146 181.341 185.568 +90.6038 194.892 199.435 +90.302 200.17 204.835 +87.7407 200.579 205.255 +84.9206 200.37 205.04 +82.0021 199.872 204.531 +79.45 200.23 204.897 +76.5846 199.762 204.418 +74.3128 200.83 205.511 +71.3428 199.987 204.649 +69.0064 200.891 205.574 +66.2031 200.419 205.09 +63.4817 200.133 204.798 +60.8973 200.238 204.906 +58.3949 200.603 205.278 +55.659 200.128 204.793 +53.0852 200.185 204.85 +50.4101 199.813 204.47 +47.9133 200.113 204.777 +45.3191 199.983 204.644 +42.7908 200.113 204.777 +40.1654 199.744 204.399 +37.709 200.189 204.855 +35.1106 199.857 204.515 +32.6025 199.994 204.655 +30.031 199.698 204.353 +27.6323 200.57 205.245 +24.9178 199.059 203.699 +22.455 199.413 204.061 +19.9364 199.263 203.908 +17.5148 200.145 204.81 +14.9576 199.476 204.125 +12.4664 199.56 204.211 +9.94287 198.999 203.637 +7.46305 199.192 203.835 +4.9687 198.951 203.588 +2.49143 199.532 204.183 +1.5099e-14 199.121 203.762 +-2.48619 199.113 203.754 +-4.97045 199.021 203.66 +-7.48399 199.751 204.407 +-9.94287 198.999 203.637 +-12.4708 199.63 204.283 +-14.8948 198.639 203.268 +-17.4416 199.307 203.953 +-19.8876 198.776 203.409 +-22.4315 199.204 203.847 +-24.9353 199.198 203.841 +-27.479 199.456 204.105 +-29.916 198.934 203.57 +-32.5006 199.368 204.015 +-34.8668 198.469 203.095 +-37.5002 199.08 203.72 +-39.8592 198.221 202.841 +-42.5691 199.077 203.717 +-44.8967 198.119 202.737 +-47.5337 198.527 203.154 +-49.9586 198.023 202.638 +-52.6478 198.535 203.163 +-55.1247 198.207 202.826 +-57.7569 198.411 203.035 +-60.2944 198.256 202.877 +-62.919 198.358 202.982 +-65.3708 197.899 202.512 +-68.2361 198.648 203.278 +-70.5444 197.75 202.359 +-73.5116 198.665 203.296 +-75.9116 198.007 202.622 +-78.7551 198.479 203.105 +-81.1476 197.789 202.399 +-84.0401 198.293 202.914 +-86.4836 197.706 202.314 +-89.5201 198.437 203.062 +-92.0871 198.083 202.7 +-95.001 198.441 203.067 +-97.4751 197.854 202.466 +-100.609 198.57 203.198 +-103.153 198.08 202.697 +-106.218 198.557 203.185 +-108.765 198.032 202.648 +-111.49 197.816 202.427 +-114.292 197.712 202.32 +-113.963 192.293 196.775 +-111.788 184.063 188.354 +-112.846 181.388 185.616 +-114.578 179.863 184.055 +-115.741 177.503 181.641 +-118.08 176.981 181.106 +-119.983 175.813 179.911 +-123.138 176.456 180.569 +-127.88 179.263 183.441 +-143.552 196.909 201.499 +-143.465 192.617 197.106 +-144.738 190.254 194.688 +-148.73 191.452 195.914 +-155.333 195.855 200.42 +-162.204 200.375 205.046 +-1638.25 1983.19 2029.42 +-450.085 534.036 546.483 +-451.791 525.519 537.768 +-453.372 517.082 529.134 +-455.413 509.378 521.251 +-1760.46 1931.36 1976.38 +-458.205 493.136 504.63 +-460.426 486.185 497.517 +-468.604 485.559 496.876 +-478.33 486.427 497.765 +-484.615 483.72 494.995 +-489.416 479.551 490.729 +-485.805 467.331 478.224 +-487.933 460.867 471.609 +-489.276 453.799 464.376 +-491.088 447.304 457.73 +-493.145 441.153 451.435 +-478.153 420.132 429.925 +-479.542 413.887 423.534 +-481.193 407.98 417.489 +-483.762 402.942 412.334 +-485.527 397.318 406.579 +-487.517 391.969 401.105 +-488.749 386.101 395.101 +-491.945 381.859 390.759 +-492.911 375.959 384.722 +-142.197 106.575 109.059 +-142.834 105.197 107.649 +-142.961 103.467 105.879 +-143.476 102.043 104.421 +-143.118 100.027 102.359 +-142.721 98.0242 100.309 +-142.213 95.9848 98.222 +-147.614 97.904 100.186 +-148.757 96.9521 99.2118 +-513.366 328.779 336.442 +-515.594 324.466 332.029 +-517.603 320.059 327.519 +-519.844 315.835 323.196 +-522.247 311.745 319.011 +-523.974 307.29 314.452 +-525.708 302.882 309.941 +-528.77 299.268 306.244 +-530.374 294.857 301.729 +-532.695 290.879 297.659 +-534.403 286.598 293.278 +-536.603 282.613 289.2 +-539.147 278.831 285.33 +-541.475 274.957 281.365 +-386.298 192.582 197.07 +-385.001 188.414 192.806 +-384.372 184.634 188.937 +-384.673 181.345 185.571 +-2732.23 1263.93 1293.39 +-2747.9 1247.22 1276.29 +-384.08 171.015 175.001 +-383.657 167.554 171.46 +-383.176 164.113 167.938 +-383.925 161.23 164.988 +-135.707 55.8694 57.1716 +-135.187 54.5503 55.8217 +-382.957 151.431 154.961 +-382.209 148.073 151.525 +-380.967 144.569 147.939 +-381.963 141.945 145.253 +-2906.29 1057.4 1082.05 +-570.155 203.041 207.773 +-381.779 133.037 136.138 +-381.808 130.152 133.185 +-381.072 127.036 129.997 +-380.921 124.145 127.039 +-382.457 121.818 124.657 +-382.319 118.969 121.741 +-381.222 115.852 118.552 +-382.102 113.358 116.001 +-381.1 110.329 112.9 +-382 107.869 110.383 +-382.867 105.407 107.864 +-382.768 102.692 105.086 +-381.413 99.668 101.991 +-383.207 97.4818 99.7539 +-604.893 149.71 153.2 +-377.262 90.7904 92.9066 +-381.226 89.1508 91.2287 +-381.183 86.5634 88.581 +-381.01 83.962 85.919 +-381.087 81.4306 83.3285 +-380.843 78.8453 80.683 +-381.044 76.3655 78.1454 +-380.923 73.8327 75.5535 +-380.671 71.29 72.9516 +-381.547 68.9653 70.5727 +-381.52 66.4834 68.0329 +-380.488 63.8439 65.332 +-381.271 61.5208 62.9547 +-380.267 58.9208 60.2941 +-381.478 56.6719 57.9928 +-381.093 54.1898 55.4528 +-381.068 51.7701 52.9767 +-380.52 49.291 50.4399 +-381.416 47.0047 48.1003 +-380.903 44.5498 45.5882 +-380.359 42.1047 43.086 +-380.573 39.7522 40.6788 +-380.857 37.4101 38.2821 +-379.823 34.949 35.7635 +-380.344 32.6395 33.4003 +-380.935 30.3344 31.0414 +-381.3 28.0098 28.6627 +-381.336 25.6631 26.2613 +-380.646 23.2754 23.8179 +-381.221 20.9694 21.4582 +-380.271 18.585 19.0182 +-381.687 16.3162 16.6965 +-379.279 13.8925 14.2163 +-380.837 11.6213 11.8922 +-148.41 3.62218 3.70661 +-148.849 2.7242 2.78769 +-145.978 1.78087 1.82238 +-147.394 0.899007 0.919961 +95.6 3.55271e-15 1.13687e-13 +96.4963 0.593973 0.596948 +96.4853 1.1879 1.19385 +96.4669 1.78174 1.79066 +96.4412 2.37544 2.38733 +96.5081 2.97204 2.98692 +96.3678 3.56226 3.58009 +96.32 4.15528 4.17608 +96.3647 4.75291 4.77671 +96.2025 5.34033 5.36707 +96.2324 5.93841 5.96815 +96.0557 6.52376 6.55643 +96.9659 7.18846 7.22446 +96.7739 7.77706 7.81601 +96.7732 8.38104 8.42301 +95.7736 8.89347 8.93801 +96.5511 9.57102 9.61895 +96.3301 10.1545 10.2053 +96.0033 10.725 10.7787 +95.867 11.3155 11.3721 +95.7233 11.9051 11.9647 +96.359 12.5967 12.6598 +96.1995 13.1893 13.2554 +96.0326 13.781 13.85 +95.9563 14.3862 14.4582 +95.677 14.961 15.0359 +96.3652 15.6922 15.7707 +95.195 16.12 16.2007 +96.1563 16.9101 16.9948 +95.8466 17.4836 17.5712 +96.496 18.2372 18.3286 +96.2667 18.8305 18.9248 +95.9339 19.4029 19.5 +95.7861 20.0126 20.1129 +96.2999 20.7664 20.8704 +96.0393 21.3584 21.4654 +95.7714 21.9487 22.0586 +96.3497 22.7388 22.8527 +96.0647 23.331 23.4478 +96.5265 24.1097 24.2305 +96.2245 24.703 24.8267 +96.8519 25.5413 25.6692 +96.5322 26.1365 26.2673 +96.8565 26.9106 27.0454 +96.7053 27.5586 27.6966 +96.2682 28.1258 28.2666 +96.8371 28.9929 29.1381 +96.5664 29.616 29.7643 +96.1963 30.2092 30.3605 +95.8189 30.8002 30.9544 +96.4311 31.7167 31.8755 +96.7571 32.5519 32.7149 +96.4406 33.1771 33.3433 +95.937 33.738 33.907 +96.3178 34.6155 34.7888 +96.6842 35.5001 35.6779 +97.0359 36.3919 36.5741 +96.4941 36.9541 37.1391 +96.9079 37.8886 38.0783 +96.3484 38.4489 38.6415 +96.6484 39.3579 39.555 +96.0717 39.9155 40.1153 +96.1742 40.7596 40.9637 +96.4336 41.6817 41.8904 +95.9142 42.2737 42.4854 +96.0623 43.1656 43.3817 +96.2794 44.101 44.3219 +96.4806 45.0423 45.2678 +95.9196 45.6344 45.8629 +96.0931 46.5827 46.8159 +96.1684 47.496 47.7339 +95.6586 48.1271 48.3681 +95.6258 49.0042 49.2496 +95.659 49.9266 50.1766 +95.8363 50.938 51.1931 +95.8371 51.8695 52.1292 +95.8221 52.8047 53.0692 +95.9478 53.8316 54.1012 +95.8998 54.7752 55.0495 +95.9129 55.7672 56.0465 +95.7556 56.6729 56.9567 +95.8112 57.7182 58.0072 +95.7726 58.7222 59.0162 +95.6416 59.6833 59.9822 +95.5684 60.6945 60.9985 +95.4774 61.7093 62.0183 +95.2954 62.6795 62.9934 +95.6769 64.0405 64.3612 +95.6003 65.1169 65.443 +95.5042 66.1973 66.5288 +95.2473 67.1816 67.518 +95.0433 68.2181 68.5597 +95.4461 69.7138 70.0629 +95.1306 70.7081 71.0622 +94.866 71.7548 72.1141 +95.2582 73.3242 73.6914 +95.4849 74.799 75.1736 +95.1522 75.8592 76.239 +94.8005 76.9214 77.3066 +95.0792 78.5204 78.9136 +94.6826 79.589 79.9875 +94.8393 81.1485 81.5549 +94.7127 82.4964 82.9095 +94.809 84.07 84.491 +94.1962 85.0398 85.4657 +94.2363 86.6233 87.0571 +94.1239 88.1017 88.5429 +93.9225 89.5279 89.9762 +94.1044 91.3583 91.8158 +93.8416 92.795 93.2597 +93.8945 94.5824 95.056 +94.3633 96.8423 97.3272 +92.3227 96.5425 97.026 +91.4008 97.4009 97.8887 +89.2663 96.9544 97.4399 +88.1171 97.5596 98.0481 +89.0264 100.491 100.994 +93.7885 107.951 108.492 +93.4279 109.673 110.222 +93.4378 111.885 112.445 +93.6 114.349 114.922 +93.0681 116.026 116.607 +93.4713 118.939 119.535 +93.2845 121.184 121.79 +93.1432 123.559 124.178 +93.3194 126.443 127.076 +92.8865 128.583 129.227 +92.943 131.486 132.144 +92.8908 134.335 135.007 +92.7321 137.13 137.817 +92.9338 140.572 141.276 +92.6839 143.449 144.167 +92.6546 146.785 147.52 +92.5895 150.195 150.948 +92.4861 153.681 154.451 +92.4563 157.438 158.226 +92.0783 160.748 161.553 +92.3583 165.377 166.205 +91.9214 168.902 169.748 +91.9645 173.492 174.361 +91.6614 177.631 178.521 +90.1946 179.651 180.551 +88.2941 180.866 181.772 +86.6876 182.741 183.656 +90.8819 197.287 198.275 +89.911 201.135 202.142 +87.0098 200.737 201.742 +84.523 201.265 202.273 +81.5887 200.692 201.697 +79.0224 200.983 201.99 +76.2222 200.644 201.649 +73.9623 201.72 202.731 +70.8589 200.457 201.461 +68.5862 201.503 202.512 +65.7532 200.886 201.892 +63.2004 201.076 202.083 +60.4191 200.492 201.496 +58.0759 201.34 202.349 +55.1629 200.167 201.169 +52.8119 200.984 201.991 +50.167 200.677 201.681 +47.6657 200.908 201.914 +45.0844 200.776 201.781 +42.6874 201.464 202.473 +39.8313 199.904 200.905 +37.4871 200.84 201.846 +34.7571 199.663 200.663 +32.4893 201.131 202.138 +29.8429 200.271 201.274 +27.3831 200.588 201.592 +24.7784 199.765 200.765 +22.2981 199.839 200.84 +19.8108 199.828 200.829 +17.4171 200.858 201.864 +14.8268 199.549 200.548 +12.3879 200.126 201.128 +9.88703 199.7 200.7 +7.44734 200.6 201.605 +4.93903 199.58 200.58 +2.47746 200.238 201.241 +2.04281e-14 199.681 200.681 +-2.48008 200.449 201.453 +-4.9303 199.228 200.225 +-7.43949 200.389 201.392 +-9.8626 199.207 200.205 +-12.3835 200.055 201.057 +-14.8058 199.267 200.264 +-17.35 200.083 201.085 +-19.7062 198.773 199.768 +-22.3216 200.05 201.052 +-24.7348 199.413 200.412 +-27.2777 199.815 200.816 +-29.6652 199.078 200.075 +-32.2856 199.87 200.871 +-34.6718 199.173 200.17 +-37.2652 199.652 200.652 +-39.5947 198.716 199.711 +-42.1848 199.092 200.089 +-44.5995 198.616 199.611 +-47.3687 199.656 200.656 +-49.6286 198.523 199.517 +-52.3016 199.042 200.039 +-54.6668 198.367 199.36 +-57.4379 199.128 200.126 +-59.7538 198.285 199.278 +-62.551 199.011 200.008 +-64.8759 198.206 199.198 +-67.9093 199.513 200.513 +-69.9396 197.856 198.847 +-73.0859 199.33 200.328 +-75.3163 198.259 199.252 +-78.2474 199.012 200.009 +-80.6239 198.319 199.312 +-83.6141 199.101 200.098 +-86.1035 198.646 199.641 +-89.0691 199.252 200.25 +-91.2527 198.092 199.084 +-94.5568 199.329 200.327 +-97.0519 198.806 199.802 +-100.042 199.265 200.263 +-102.059 197.78 198.77 +-105.307 198.664 199.658 +-107.94 198.337 199.33 +-111.123 198.978 199.975 +-113.393 197.96 198.951 +-112.624 191.78 192.741 +-111.944 186.015 186.947 +-112.846 183.055 183.972 +-114.944 182.096 183.008 +-116.363 180.098 180.999 +-118.798 179.694 180.594 +-120.931 178.829 179.724 +-124.717 180.36 181.263 +-132.61 187.602 188.541 +-144.051 199.41 200.409 +-143.465 194.387 195.36 +-143.987 191.006 191.962 +-147.347 191.414 192.373 +-150.097 190.993 191.949 +-160.826 200.498 201.502 +-449.85 549.574 552.326 +-450.999 540.038 542.743 +-452.718 531.437 534.099 +-454.051 522.616 525.233 +-1736.28 1959.87 1969.69 +-1760.46 1949.11 1958.87 +-459.349 498.911 501.409 +-460.923 491.182 493.642 +-473.357 494.992 497.471 +-480.822 493.456 495.927 +-489.547 493.135 495.604 +-486.977 481.547 483.958 +-487.156 472.939 475.307 +-488.112 465.273 467.603 +-490.6 459.209 461.509 +-491.94 452.199 454.463 +-484.033 436.981 439.169 +-478.714 424.491 426.617 +-480.612 418.623 420.719 +-481.893 412.329 414.394 +-484.855 407.564 409.605 +-486.437 401.721 403.733 +-488.698 396.529 398.515 +-489.941 390.601 392.557 +-492.547 385.841 387.773 +-493.992 380.246 382.15 +-141.583 107.091 107.627 +-142.971 106.266 106.798 +-143.933 105.129 105.655 +-144.037 103.384 103.901 +-142.765 100.698 101.202 +-142.222 98.5788 99.0725 +-143.94 98.0428 98.5337 +-147.759 98.9012 99.3964 +-512.533 337.112 338.8 +-514.03 332.229 333.893 +-516.709 328.157 329.8 +-518.577 323.608 325.228 +-520.901 319.386 320.985 +-522.703 314.885 316.462 +-525.2 310.839 312.396 +-527.097 306.473 308.008 +-529.47 302.418 303.933 +-531.313 298.094 299.586 +-534.035 294.291 295.765 +-535.593 289.876 291.328 +-537.961 285.932 287.364 +-540.111 281.896 283.308 +-543.579 278.561 279.956 +-2667.45 1342.03 1348.75 +-2683.95 1325.56 1332.19 +-2700.25 1308.99 1315.54 +-384.342 182.853 183.769 +-2732.23 1275.55 1281.94 +-555.535 254.464 255.739 +-381.972 171.639 172.499 +-383.403 168.982 169.828 +-382.835 165.474 166.302 +-382.897 162.276 163.088 +-135.276 56.2038 56.4853 +-135.879 55.3338 55.6109 +-384.697 153.518 154.286 +-381.422 149.126 149.873 +-381.758 146.201 146.933 +-382.051 143.282 144 +-384.164 141.056 141.762 +-577.194 207.437 208.475 +-584.303 205.481 206.51 +-381.808 131.348 132.006 +-380.169 127.9 128.54 +-381.646 125.526 126.154 +-381.729 122.704 123.318 +-383.232 120.349 120.952 +-382.597 117.339 117.926 +-382.378 114.483 115.057 +-382.856 111.855 112.416 +-381.443 108.702 109.246 +-382.029 106.143 106.674 +-382.768 103.636 104.155 +-380.757 100.411 100.914 +-3078.9 790.424 794.382 +-606.024 151.368 152.126 +-377.64 91.7166 92.1759 +-381.795 90.1049 90.5561 +-381.564 87.4465 87.8844 +-380.628 84.6491 85.073 +-380.801 82.1169 82.5281 +-380.843 79.5699 79.9684 +-381.621 77.1838 77.5703 +-381.212 74.5684 74.9418 +-381.154 72.0362 72.397 +-381.45 69.5814 69.9299 +-381.132 67.0261 67.3618 +-382.239 64.7271 65.0512 +-381.563 62.1338 62.445 +-381.048 59.5845 59.8828 +-380.988 57.1194 57.4055 +-380.211 54.5613 54.8345 +-380.871 52.219 52.4805 +-380.52 49.7441 49.9932 +-381.219 47.4123 47.6497 +-380.41 44.9011 45.1259 +-380.359 42.4916 42.7044 +-381.167 40.1801 40.3813 +-381.055 37.7736 37.9627 +-380.12 35.2977 35.4745 +-380.641 32.9653 33.1304 +-379.644 30.5093 30.6621 +-380.007 28.1714 28.3125 +-380.938 25.872 26.0015 +-381.642 23.5508 23.6688 +-380.922 21.1455 21.2514 +-379.972 18.741 18.8348 +-380.788 16.4273 16.5096 +-379.779 14.0386 14.1089 +-381.237 11.7405 11.7993 +-381.867 9.40576 9.45286 +-3275.38 60.496 60.799 +-146.878 1.80832 1.81737 +-146.594 0.902347 0.906865 +95.7 0 -1.7053e-13 +96.4963 0.599335 0.591565 +96.4853 1.19862 1.18309 +96.4669 1.79782 1.77452 +96.5412 2.39936 2.36826 +96.4082 2.99576 2.95692 +96.3678 3.59441 3.54781 +96.32 4.19278 4.13843 +96.2649 4.79084 4.72873 +96.3022 5.39412 5.32419 +96.2324 5.99201 5.91434 +96.9516 6.64404 6.5579 +96.1703 7.19384 7.10058 +96.8733 7.8553 7.75347 +96.8725 8.4653 8.35556 +96.6659 9.05737 8.93995 +96.5511 9.65741 9.53221 +96.3301 10.2461 10.1133 +96.0033 10.8218 10.6815 +95.7683 11.4059 11.258 +95.6248 12.0002 11.8446 +96.359 12.7104 12.5456 +96.1995 13.3084 13.1359 +95.1507 13.7776 13.599 +95.8585 14.5012 14.3132 +95.677 15.096 14.9003 +95.5857 15.7057 15.5021 +96.2646 16.4483 16.2351 +96.0593 17.0455 16.8246 +94.9753 17.4811 17.2545 +95.6267 18.2361 17.9997 +96.2667 19.0005 18.7541 +95.9339 19.578 19.3242 +96.5531 20.355 20.0911 +96.2999 20.9539 20.6822 +96.0393 21.5512 21.2718 +96.6273 22.3448 22.0551 +96.3497 22.9441 22.6466 +95.9701 23.5184 23.2135 +96.5265 24.3274 24.012 +96.2245 24.926 24.6028 +96.8519 25.7718 25.4377 +96.4389 26.3469 26.0053 +97.0426 27.2057 26.853 +96.7053 27.8074 27.4469 +96.453 28.4342 28.0656 +96.1007 29.0321 28.6557 +96.5664 29.8833 29.4959 +96.2877 30.5108 30.1153 +95.9099 31.1077 30.7044 +96.4311 32.0029 31.5881 +96.0351 32.6006 32.178 +96.4406 33.4766 33.0426 +95.937 34.0426 33.6012 +96.3178 34.9279 34.4751 +96.6842 35.8205 35.3562 +96.2413 36.4196 35.9475 +95.7911 37.016 36.5361 +96.1207 37.9201 37.4285 +96.3484 38.796 38.293 +95.869 39.3929 38.8822 +95.9855 40.2397 39.718 +95.5742 40.8709 40.341 +96.4336 42.0579 41.5127 +96.6775 42.9947 42.4373 +96.0623 43.5552 42.9906 +96.2794 44.4991 43.9222 +96.4806 45.4488 44.8597 +95.9196 46.0463 45.4494 +96.0931 47.0031 46.3938 +96.2504 47.9655 47.3437 +96.2285 48.8508 48.2175 +95.5449 49.4047 48.7642 +95.7394 50.4196 49.766 +95.8363 51.3978 50.7315 +95.8371 52.3376 51.6592 +95.8221 53.2814 52.5906 +95.8695 54.2732 53.5696 +95.8221 55.2249 54.509 +95.9129 56.2706 55.5411 +95.8322 57.2301 56.4882 +95.8112 58.2392 57.4842 +95.7726 59.2522 58.4841 +95.6416 60.222 59.4414 +95.5684 61.2423 60.4484 +95.4037 62.2182 61.4117 +95.9536 63.6821 62.8565 +95.1691 64.2756 63.4423 +95.6003 65.7047 64.8529 +95.4329 66.7449 65.8796 +95.2473 67.788 66.9092 +95.0433 68.8338 67.9415 +95.4461 70.343 69.4311 +95.1994 71.3975 70.4719 +94.9342 72.4544 71.5151 +95.2582 73.986 73.0269 +94.9496 75.0507 74.0778 +95.1522 76.5439 75.5516 +94.8005 77.6157 76.6095 +95.0142 79.175 78.1486 +94.7469 80.3622 79.3204 +94.712 81.7713 80.7113 +94.3351 82.9093 81.8345 +94.3732 84.4388 83.3442 +94.2578 85.8629 84.7498 +94.1754 87.349 86.2166 +94.1239 88.8969 87.7445 +93.9225 90.336 89.1649 +93.9281 92.0099 90.8171 +93.8416 93.6326 92.4188 +94.0092 95.5528 94.3141 +94.0801 97.4231 96.1602 +90.9807 95.9976 94.7531 +90.5177 97.3306 96.0689 +88.2315 96.6958 95.4423 +88.0634 98.3804 97.105 +88.4965 100.794 99.4878 +92.43 107.348 105.956 +93.4794 110.724 109.289 +93.4378 112.895 111.431 +93.55 115.32 113.825 +93.1173 117.135 115.617 +93.4713 120.013 118.457 +93.3323 122.34 120.754 +93.1901 124.737 123.12 +93.227 127.457 125.805 +92.9319 129.807 128.124 +92.9876 132.736 131.015 +92.8908 135.547 133.79 +92.7751 138.432 136.637 +92.5534 141.26 139.429 +92.6425 144.679 142.803 +92.6139 148.045 146.125 +92.5895 151.551 149.586 +92.4861 155.068 153.058 +92.418 158.793 156.735 +92.1532 162.331 160.226 +92.0285 166.274 164.119 +92.1722 170.892 168.677 +91.9645 175.058 172.789 +90.909 177.763 175.458 +89.6271 180.132 177.797 +87.7081 181.288 178.937 +88.2742 187.765 185.331 +90.7583 198.797 196.22 +89.1292 201.186 198.578 +86.0158 200.235 197.639 +83.6425 200.966 198.36 +80.5688 199.973 197.38 +78.5414 201.563 198.95 +75.2905 199.981 197.388 +73.136 201.267 198.658 +69.8912 199.504 196.917 +67.7925 200.968 198.363 +64.8084 199.787 197.197 +62.7242 201.363 198.753 +59.5459 199.378 196.793 +57.5775 201.414 198.803 +54.4569 199.388 196.804 +52.3563 201.049 198.442 +49.4029 199.404 196.819 +47.2366 200.896 198.292 +44.3961 199.495 196.909 +42.1996 200.96 198.355 +39.3582 199.312 196.728 +37.1347 200.748 198.145 +34.355 199.134 196.553 +32.2176 201.249 198.641 +29.3934 199.035 196.455 +27.201 201.052 198.445 +24.421 198.661 196.086 +22.1333 200.153 197.558 +19.5527 199.005 196.425 +17.2218 200.398 197.8 +14.6279 198.649 196.074 +12.2919 200.368 197.77 +9.75092 198.729 196.153 +7.3819 200.632 198.031 +4.88318 199.104 196.523 +2.4539 200.124 197.529 +1.95399e-14 198.637 196.062 +-2.45652 200.337 197.74 +-4.86922 198.536 195.962 +-7.35049 199.778 197.189 +-9.74743 198.658 196.083 +-12.2876 200.297 197.7 +-14.6122 198.435 195.863 +-17.1852 199.971 197.379 +-19.49 198.366 195.794 +-22.0627 199.514 196.928 +-24.4472 198.874 196.296 +-27.0573 199.989 197.396 +-29.2993 198.398 195.826 +-32.0025 199.906 197.314 +-34.2818 198.71 196.134 +-36.9259 199.619 197.031 +-39.1355 198.183 195.614 +-41.8005 199.06 196.479 +-43.9737 197.597 195.035 +-46.956 199.703 197.114 +-48.9688 197.652 195.09 +-51.7913 198.88 196.301 +-53.9417 197.502 194.942 +-56.9195 199.113 196.532 +-58.839 197.011 194.457 +-62.0099 199.07 196.49 +-63.9986 197.29 194.733 +-67.2089 199.238 196.655 +-69.1171 197.294 194.736 +-72.3849 199.2 196.617 +-74.4364 197.712 195.149 +-77.5526 199.025 196.445 +-79.7695 197.988 195.422 +-82.9041 199.191 196.609 +-84.8755 197.58 195.019 +-88.2572 199.218 196.635 +-90.2639 197.714 195.151 +-93.7001 199.306 196.722 +-95.3589 197.101 194.546 +-99.174 199.319 196.735 +-100.999 197.492 194.931 +-104.432 198.791 196.214 +-106.543 197.536 194.975 +-109.95 198.655 196.079 +-112.045 197.371 194.812 +-112.011 192.459 189.964 +-112.491 188.611 186.166 +-113.643 186.013 183.601 +-115.473 184.585 182.192 +-117.317 183.213 180.838 +-119.981 183.122 180.748 +-122.394 182.627 180.26 +-128.311 187.233 184.806 +-141.4 201.843 199.226 +-144.006 201.147 198.539 +-143.465 196.142 193.599 +-143.189 191.661 189.177 +-144.579 189.514 187.057 +-148.74 190.974 188.498 +-158.166 198.963 196.384 +-1638.25 2019.48 1993.3 +-451.658 545.71 538.635 +-454.315 538.125 531.149 +-454.783 528.183 521.336 +-1736.28 1977.56 1951.93 +-458.155 511.83 505.195 +-460.274 504.428 497.889 +-465.007 500.008 493.526 +-480.738 507.249 500.673 +-483.201 500.373 493.886 +-490.58 498.635 492.171 +-485.874 484.792 478.507 +-488.567 478.59 472.385 +-489.42 470.731 464.628 +-491.863 464.548 458.525 +-492.732 457.014 451.09 +-478.307 435.71 430.062 +-479.648 429.158 423.595 +-482.311 423.895 418.4 +-483.229 417.204 411.795 +-485.883 412.115 406.772 +-487.411 406.159 400.894 +-489.879 401.076 395.876 +-491.134 395.086 389.964 +-493.551 390.117 385.059 +-141.604 109.982 108.556 +-142.674 108.89 107.479 +-142.834 107.122 105.734 +-143.377 105.668 104.298 +-142.565 103.251 101.912 +-142.765 101.607 100.289 +-142.365 99.5682 98.2775 +-147.393 101.301 99.988 +-149.21 100.774 99.4675 +-514.142 341.223 336.8 +-515.357 336.094 331.737 +-517.749 331.785 327.484 +-519.625 327.189 322.948 +-521.882 322.876 318.69 +-523.92 318.467 314.338 +-526.579 314.468 310.392 +-527.791 309.647 305.633 +-530.868 305.954 301.988 +-532.252 301.316 297.41 +-535.453 297.736 293.876 +-536.545 293.012 289.214 +-539.878 289.541 285.787 +-540.755 284.779 281.088 +-543.983 281.285 277.639 +-545.539 276.945 273.355 +-384.51 191.617 189.133 +-383.548 187.609 185.177 +-385.171 184.902 182.505 +-381.753 179.831 177.5 +-2747.9 1270.04 1253.58 +-380.538 172.539 170.302 +-383.827 170.696 168.483 +-382.835 166.967 164.803 +-381.954 163.337 161.22 +-2823.13 1183.53 1168.19 +-134.927 55.4418 54.7231 +-555.635 223.734 220.833 +-382.559 150.921 148.965 +-382.901 147.962 146.044 +-382.405 144.71 142.834 +-381.149 141.211 139.381 +-384.202 139.324 137.518 +-576.069 204.414 201.764 +-383.426 133.095 131.37 +-381.072 129.361 127.684 +-380.921 126.417 124.778 +-382.457 124.047 122.439 +-381.497 120.885 119.318 +-381.222 117.972 116.443 +-381.273 115.183 113.69 +-381.1 112.348 110.891 +-381.814 109.79 108.366 +-382.122 107.127 105.738 +-382.021 104.367 103.014 +-381.413 101.492 100.176 +-3078.9 797.558 787.219 +-606.118 152.759 150.779 +-378.775 92.8227 91.6194 +-376.864 89.7438 88.5804 +-380.993 88.1034 86.9612 +-381.773 85.6701 84.5595 +-381.087 82.9207 81.8458 +-381.802 80.4903 79.4468 +-380.275 77.6057 76.5997 +-381.116 75.2222 74.2471 +-381.444 72.7419 71.7989 +-380.676 70.0669 69.1586 +-381.132 67.6311 66.7544 +-381.363 65.1618 64.317 +-380.979 62.5986 61.7871 +-380.755 60.076 59.2972 +-380.304 57.5314 56.7856 +-381.583 55.2524 54.5362 +-381.362 52.7582 52.0742 +-381.405 50.3098 49.6576 +-381.219 47.8402 47.22 +-380.903 45.3651 44.777 +-380.458 42.8863 42.3304 +-380.87 40.5112 39.9861 +-381.946 38.2037 37.7084 +-381.012 35.7 35.2372 +-381.634 33.3496 32.9173 +-380.141 30.825 30.4254 +-380.007 28.4257 28.0572 +-380.938 26.1055 25.7671 +-380.148 23.6703 23.3635 +-380.324 21.3028 21.0267 +-380.87 18.9548 18.7091 +-380.19 16.5496 16.335 +-380.078 14.1765 13.9927 +-379.938 11.8061 11.6531 +-3274.5 81.382 80.327 +-151.948 2.8318 2.79509 +-146.578 1.82091 1.79731 +-145.594 0.904278 0.892555 +96.5 -3.55271e-15 -1.7053e-13 +96.4963 0.604647 0.586134 +96.4853 1.20925 1.17222 +96.267 1.81 1.75458 +96.4412 2.41813 2.34409 +96.5081 3.02544 2.93281 +96.3678 3.62627 3.51524 +96.32 4.22995 4.10043 +96.3647 4.83832 4.69018 +96.2025 5.43629 5.26985 +96.2324 6.04513 5.86004 +96.1553 6.64787 6.44433 +96.1703 7.25761 7.03539 +96.8733 7.92493 7.68228 +96.7732 8.53165 8.27043 +96.6659 9.13765 8.85788 +96.5511 9.74301 9.4447 +96.1323 10.3158 9.99992 +96.0033 10.9177 10.5834 +95.7683 11.507 11.1546 +95.7233 12.1191 11.748 +95.4741 12.7053 12.3163 +96.1013 13.4126 13.002 +96.0326 14.0286 13.5991 +95.7607 14.6149 14.1674 +95.5794 15.2143 14.7484 +95.4883 15.8287 15.3441 +96.2646 16.5941 16.086 +96.0593 17.1966 16.6701 +95.8466 17.7978 17.2529 +96.496 18.565 17.9965 +96.2667 19.1689 18.582 +95.9339 19.7515 19.1468 +95.7861 20.3723 19.7485 +96.2999 21.1396 20.4924 +96.0393 21.7422 21.0765 +95.7714 22.3431 21.659 +96.3497 23.1475 22.4387 +95.9701 23.7269 23.0004 +96.5265 24.543 23.7915 +96.2245 25.1469 24.377 +96.8519 26.0003 25.2042 +96.4389 26.5804 25.7666 +97.0426 27.4468 26.6065 +96.7053 28.0539 27.1949 +96.3606 28.6587 27.7812 +96.8371 29.5139 28.6102 +96.4747 30.1195 29.1973 +96.2877 30.7812 29.8388 +95.9099 31.3834 30.4225 +96.4311 32.2866 31.2981 +96.7571 33.1369 32.1223 +96.4406 33.7733 32.7393 +96.0265 34.3763 33.3238 +96.4069 35.2701 34.1902 +95.7972 35.8065 34.7102 +96.153 36.7088 35.5848 +96.4062 37.5839 36.4332 +96.0332 38.2214 37.0511 +96.2613 39.1044 37.9071 +95.7824 39.7061 38.4904 +95.9855 40.5963 39.3534 +96.2599 41.529 40.2575 +96.4336 42.4307 41.1316 +95.9142 43.0333 41.7158 +96.0623 43.9413 42.5959 +96.2794 44.8935 43.519 +95.7301 45.495 44.1021 +95.9196 46.4545 45.0321 +96.0931 47.4198 45.9679 +96.1684 48.3495 46.8692 +95.6586 48.9919 47.4919 +95.6258 49.8848 48.3575 +95.7394 50.8665 49.3091 +95.8363 51.8533 50.2657 +95.8371 52.8016 51.1849 +95.8221 53.7536 52.1078 +95.8695 54.7543 53.0778 +95.2004 55.3529 53.6581 +95.9129 56.7694 55.0312 +95.7556 57.6913 55.9249 +95.8112 58.7554 56.9564 +95.7726 59.7774 57.9472 +95.0425 60.3752 58.5267 +95.4941 61.7372 59.8469 +95.4037 62.7697 60.8479 +95.2954 63.8058 61.8522 +95.7494 65.2407 63.2432 +95.5283 66.2372 64.2091 +95.3616 67.2862 65.226 +95.2473 68.3888 66.2949 +94.9732 69.3927 67.268 +95.4461 70.9665 68.7937 +95.1994 72.0304 69.825 +94.866 73.0442 70.8078 +94.6502 74.1658 71.895 +94.8827 75.6628 73.3462 +95.1522 77.2223 74.858 +94.8005 78.3037 75.9062 +95.0792 79.9314 77.4841 +94.6183 80.9646 78.4857 +94.7757 82.5514 80.0239 +94.7127 83.9788 81.4076 +94.809 85.5807 82.9604 +94.2578 86.624 83.9718 +94.6624 88.5784 85.8664 +94.0035 89.57 86.8276 +94.5768 91.7714 88.9616 +94.1044 93 90.1525 +94.0158 94.6377 91.7401 +93.8945 96.282 93.3341 +92.9473 97.1034 94.1303 +89.8623 95.658 92.7292 +88.6411 96.1578 93.2136 +87.6869 96.9505 93.9821 +87.9022 99.0708 96.0374 +88.7615 101.992 98.8696 +88.25 103.402 100.236 +91.8313 109.736 106.376 +93.4886 113.957 110.468 +93.55 116.342 112.78 +93.0681 118.111 114.495 +93.4713 121.076 117.369 +93.3323 123.424 119.645 +93.1432 125.779 121.928 +92.9038 128.142 124.218 +92.9319 130.958 126.948 +92.9876 133.912 129.812 +92.4963 136.168 131.999 +92.7751 139.659 135.383 +92.5534 142.512 138.149 +92.6425 145.961 141.492 +92.6546 149.423 144.848 +92.5895 152.894 148.213 +92.5251 156.51 151.718 +92.4563 160.267 155.36 +92.1532 163.77 158.755 +92.0285 167.748 162.612 +92.1722 172.407 167.128 +92.0345 176.744 171.332 +90.1907 177.922 172.474 +89.5938 181.661 176.099 +86.6662 180.722 175.188 +91.003 195.285 189.305 +90.0167 198.921 192.83 +88.0166 200.436 194.299 +84.7293 198.988 192.895 +82.7053 200.475 194.337 +79.4662 198.984 192.892 +77.4724 200.581 194.44 +74.1775 198.771 192.685 +72.1345 200.27 194.139 +68.8268 198.207 192.138 +66.8588 199.957 193.835 +63.8411 198.549 192.47 +61.7935 200.134 194.006 +58.6311 198.055 191.991 +56.7002 200.104 193.977 +53.8081 198.76 192.674 +51.518 199.583 193.472 +48.6562 198.131 192.064 +46.5599 199.774 193.657 +43.7234 198.214 192.145 +41.564 199.687 193.573 +38.7597 198.021 191.958 +36.5995 199.608 193.497 +33.965 198.619 192.538 +31.7309 199.965 193.843 +29.0276 198.3 192.229 +26.7793 199.69 193.576 +24.116 197.918 191.858 +21.8195 199.064 192.969 +19.2458 197.617 191.567 +17.0142 199.737 193.621 +14.4447 197.9 191.841 +12.1131 199.203 193.104 +9.62528 197.907 191.848 +7.27196 199.396 193.291 +4.80465 197.639 191.588 +2.41812 198.954 192.862 +2.13163e-14 197.741 191.686 +-2.42074 199.169 193.071 +-4.80988 197.854 191.796 +-7.2641 199.18 193.082 +-9.62179 197.836 191.778 +-12.1044 199.059 192.964 +-14.429 197.685 191.632 +-16.9227 198.662 192.579 +-19.2388 197.546 191.497 +-21.7724 198.635 192.553 +-24.0288 197.203 191.165 +-26.5876 198.26 192.19 +-28.9021 197.443 191.398 +-31.5384 198.753 192.667 +-33.7212 197.194 191.156 +-36.3776 198.399 192.324 +-38.5092 196.741 190.717 +-41.2979 198.409 192.334 +-43.4106 196.796 190.771 +-46.0978 197.791 191.735 +-48.3437 196.858 190.83 +-51.0624 197.818 191.762 +-53.1212 196.222 190.214 +-56.0423 197.782 191.726 +-58.0905 196.229 190.221 +-61.0793 197.821 191.764 +-63.0988 196.241 190.232 +-66.2051 198.002 191.94 +-68.222 196.465 190.45 +-71.1079 197.421 191.376 +-73.2458 196.274 190.264 +-76.3767 197.745 191.691 +-78.5291 196.637 190.617 +-81.6544 197.928 191.868 +-83.5598 196.242 190.233 +-86.7536 197.559 191.51 +-88.9042 196.462 190.447 +-92.1135 197.668 191.615 +-94.1869 196.405 190.391 +-97.505 197.702 191.649 +-99.6647 196.611 190.591 +-103.311 198.4 192.325 +-105.217 196.807 190.781 +-108.668 198.078 192.013 +-110.471 196.324 190.313 +-112.203 194.496 188.541 +-113.586 192.134 186.251 +-114.6 189.242 183.448 +-117.14 188.91 183.126 +-118.271 186.34 180.634 +-122.263 188.26 182.495 +-124.289 187.097 181.369 +-134.799 198.444 192.368 +-139.749 201.254 195.092 +-142.235 200.435 194.298 +-143.327 197.689 191.636 +-143.142 193.297 187.379 +-144.388 190.941 185.095 +-145.055 187.894 182.141 +-150.583 191.103 185.252 +-157.95 196.432 190.418 +-452.876 552.032 535.13 +-455.036 543.757 527.108 +-1711.97 2005.9 1944.48 +-459.281 527.742 511.584 +-459.552 517.941 502.083 +-467.627 517.029 501.199 +-474.003 514.199 498.455 +-485.1 516.388 500.577 +-487.336 509.127 493.539 +-486.622 498.997 483.719 +-486.861 490.083 475.078 +-490.154 484.4 469.569 +-490.431 475.885 461.314 +-493.248 469.984 455.594 +-481.53 450.584 436.788 +-480.216 441.325 427.813 +-481.328 434.479 421.176 +-484.514 429.605 416.452 +-485.073 422.508 409.572 +-487.554 417.198 404.424 +-489.359 411.397 398.801 +-491.388 405.876 393.449 +-492.989 400.094 387.844 +-141.856 113.121 109.657 +-142.144 111.38 107.97 +-142.879 110.013 106.645 +-143.453 108.541 105.217 +-143.308 106.553 103.291 +-142.845 104.37 101.175 +-142.765 102.507 99.3686 +-145.788 102.867 99.7173 +-148.903 103.246 100.085 +-512.695 349.334 338.638 +-516.116 345.57 334.989 +-517.348 340.383 329.961 +-520.424 336.455 326.154 +-521.123 331.041 320.905 +-524.372 327.292 317.271 +-525.517 322.269 312.402 +-528.724 318.548 308.795 +-529.952 313.671 304.067 +-533.511 310.202 300.704 +-534.365 305.194 295.849 +-537.345 301.436 292.207 +-538.132 296.484 287.407 +-541.475 292.972 284.002 +-542.684 288.329 279.501 +-546.167 284.918 276.194 +-546.76 280.025 271.451 +-550.552 276.795 268.32 +-383.548 189.272 183.477 +-2716.34 1315.54 1275.26 +-383.254 182.138 176.562 +-383.356 178.753 173.28 +-383.237 175.302 169.935 +-381.282 171.068 165.83 +-382.835 168.447 163.29 +-383.154 165.302 160.241 +-382.822 161.911 156.954 +-383.303 158.896 154.031 +-135.688 55.121 53.4333 +-576.199 229.328 222.307 +-380.176 148.212 143.674 +-381.522 145.655 141.196 +-382.213 142.861 138.487 +-380.46 139.19 134.928 +-566.404 202.766 196.558 +-585.744 205.126 198.846 +-382.064 130.847 126.841 +-381.193 127.629 123.721 +-382.548 125.176 121.344 +-381.497 121.957 118.223 +-382.506 119.419 115.762 +-381.825 116.372 112.809 +-382.024 113.618 110.14 +-382.463 110.951 107.554 +-382.122 108.077 104.768 +-381.648 105.19 101.969 +-379.259 101.814 98.6963 +-381.891 99.8017 96.746 +-607.815 154.544 149.813 +-378.302 93.5284 90.6648 +-377.338 90.6535 87.8779 +-379.662 88.5741 85.8622 +-381.773 86.4294 83.7831 +-380.801 83.5925 81.0331 +-380.46 80.918 78.4404 +-380.564 78.3532 75.9542 +-381.405 75.9464 73.6211 +-381.541 73.4054 71.1579 +-381.547 70.8498 68.6806 +-381.132 68.2306 66.1415 +-380.586 65.6052 63.5965 +-381.856 63.2988 61.3608 +-381.732 60.764 58.9035 +-380.988 58.1459 56.3656 +-381.289 55.6992 53.9938 +-381.755 53.2806 51.6493 +-380.618 50.6511 49.1003 +-380.825 48.2145 46.7382 +-381.397 45.8264 44.4233 +-380.458 43.2665 41.9418 +-380.573 40.8385 39.5881 +-381.352 38.4824 37.3041 +-381.805 36.0914 34.9863 +-380.641 33.5577 32.5303 +-380.637 31.1389 30.1855 +-381.896 28.8203 27.9379 +-381.336 26.3644 25.5572 +-380.945 23.9302 23.1975 +-381.221 21.5424 20.8828 +-380.371 19.0978 18.5131 +-380.788 16.7225 16.2105 +-381.077 14.3397 13.9007 +-380.338 11.9233 11.5582 +-3274.5 82.1034 79.5896 +-151.048 2.83999 2.75303 +-144.778 1.8145 1.75894 +-146.094 0.915431 0.887403 +96.5 -3.55271e-15 -1.7053e-13 +96.4963 0.60991 0.580655 +96.5853 1.22104 1.16247 +96.4669 1.82955 1.74179 +96.4412 2.43917 2.32218 +96.4082 3.04862 2.90239 +96.4676 3.66162 3.48599 +96.4198 4.27119 4.06632 +96.3647 4.88043 4.64634 +96.3022 5.4893 5.226 +96.1328 6.09144 5.79926 +96.0557 6.6988 6.37749 +96.0708 7.31318 6.96239 +96.8733 7.99391 7.61048 +96.7732 8.60591 8.19312 +96.6659 9.21719 8.77508 +96.5511 9.82782 9.35642 +96.3301 10.4269 9.92679 +96.0033 11.0127 10.4845 +95.867 11.6191 11.0617 +95.6248 12.2119 11.6262 +96.359 12.9347 12.3143 +96.1013 13.5294 12.8804 +96.0326 14.1507 13.472 +95.7607 14.7421 14.035 +95.5794 15.3467 14.6106 +95.4883 15.9665 15.2007 +95.2923 16.5694 15.7746 +96.0593 17.3463 16.5143 +95.7498 17.9346 17.0744 +96.496 18.7266 17.8283 +96.2667 19.3357 18.4083 +96.03 19.9435 18.9869 +96.5531 20.7141 19.7206 +96.2999 21.3236 20.3008 +96.0393 21.9315 20.8795 +95.7714 22.5376 21.4566 +96.3497 23.3489 22.229 +95.9701 23.9334 22.7854 +96.5265 24.7566 23.5692 +96.1306 25.341 24.1255 +96.8519 26.2266 24.9686 +96.4389 26.8118 25.5257 +96.9495 27.6592 26.3325 +96.7053 28.2981 26.9407 +96.2682 28.8804 27.4952 +96.9292 29.7991 28.3698 +96.5664 30.4106 28.9519 +96.2877 31.0492 29.5599 +96.0009 31.6866 30.1667 +95.6155 32.2921 30.7432 +96.7571 33.4253 31.8221 +96.3507 34.0356 32.4031 +96.8319 34.9664 33.2892 +95.5159 35.2483 33.5576 +96.6842 36.4526 34.7041 +96.2413 37.0623 35.2846 +96.582 37.9802 36.1584 +95.9458 38.5189 36.6713 +96.3484 39.4805 37.5868 +96.5618 40.3777 38.4409 +96.0717 40.9864 39.0205 +96.2599 41.8905 39.8812 +96.4336 42.8001 40.7471 +96.6775 43.7533 41.6547 +96.1466 44.3627 42.2348 +96.2794 45.2843 43.1122 +95.7301 45.8911 43.6899 +95.9196 46.8588 44.6112 +96.0931 47.8325 45.5382 +96.2504 48.8119 46.4706 +95.6586 49.4184 47.048 +95.7067 50.3617 47.946 +95.7394 51.3093 48.8482 +95.9161 52.3483 49.8374 +95.9164 53.3053 50.7484 +95.8221 54.2215 51.6208 +95.8695 55.2309 52.5817 +95.8998 56.2449 53.5471 +95.9129 57.2635 54.5168 +95.2193 57.8676 55.0919 +95.7351 59.2198 56.3792 +95.7726 60.2977 57.4055 +95.6416 61.2847 58.3451 +95.4941 62.2746 59.2875 +95.4037 63.3161 60.2791 +95.2954 64.3612 61.2741 +95.7494 65.8086 62.652 +95.0248 66.4616 63.2737 +95.4329 67.9226 64.6647 +95.1766 68.9329 65.6265 +95.0433 70.0484 66.6885 +94.8209 71.1153 67.7042 +95.1306 72.6052 69.1227 +94.7978 73.6272 70.0956 +95.1907 75.2379 71.6291 +95.4849 76.806 73.1219 +95.1522 77.8945 74.1582 +94.8661 79.0396 75.2484 +95.0792 80.6272 76.7598 +94.6183 81.6694 77.752 +94.7757 83.27 79.2759 +94.5869 84.5976 80.5398 +94.311 85.8723 81.7534 +94.2578 87.378 83.1869 +94.2363 88.9475 84.6811 +94.1841 90.5228 86.1808 +94.0415 92.0466 87.6315 +94.1044 93.8095 89.3098 +94.3062 95.7563 91.1633 +92.1737 95.3406 90.7675 +90.7949 95.6803 91.0909 +88.5762 95.1103 90.5482 +87.758 96.0286 91.4225 +87.8503 97.9769 93.2774 +88.547 100.666 95.8376 +88.4965 102.573 97.6531 +87.832 103.808 98.8287 +87.4535 105.414 100.358 +93.5393 115.012 109.495 +93.1 116.79 111.188 +93.5112 119.707 113.965 +92.9865 121.497 115.669 +93.3323 124.499 118.527 +93.1432 126.874 120.789 +92.9038 129.257 123.057 +92.9319 132.098 125.761 +92.9876 135.078 128.599 +92.9785 138.069 131.447 +92.7751 140.874 134.117 +92.6379 143.884 136.983 +92.6425 147.232 140.17 +92.6546 150.724 143.494 +92.6294 154.292 146.891 +92.4861 157.805 150.235 +92.418 161.595 153.844 +92.1158 165.128 157.208 +92.0285 169.208 161.092 +92.1364 173.841 165.502 +91.5092 177.265 168.762 +89.9171 178.926 170.343 +88.3253 180.648 171.983 +90.0847 189.485 180.397 +91.003 196.984 187.536 +88.9042 198.172 188.667 +87.0844 200.039 190.444 +83.7353 198.366 188.851 +81.2852 198.748 189.215 +78.474 198.21 188.703 +76.1362 198.838 189.3 +73.2717 198.053 188.553 +71.0578 198.999 189.453 +68.0042 197.543 188.068 +66.0884 199.374 189.811 +63.0988 197.949 188.454 +60.8628 198.835 189.298 +58.0697 197.867 188.376 +55.8629 198.865 189.326 +53.1212 197.93 188.436 +50.8802 198.828 189.291 +48.1874 197.93 188.436 +45.9658 198.941 189.399 +43.2698 197.865 188.374 +41.0023 198.704 189.173 +38.3979 197.88 188.388 +36.2341 199.335 189.774 +33.5019 197.616 188.137 +31.2328 198.539 189.016 +28.5676 196.857 187.415 +26.3768 198.4 188.883 +23.7848 196.9 187.455 +21.5056 197.909 188.416 +19.0435 197.242 187.781 +16.7822 198.728 189.196 +14.2877 197.453 187.982 +11.943 198.114 188.612 +9.49615 196.952 187.505 +7.18034 198.597 189.071 +4.74007 196.68 187.246 +2.38671 198.079 188.578 +1.95399e-14 196.71 187.275 +-2.38845 198.224 188.716 +-4.74531 196.898 187.453 +-7.16725 198.235 188.727 +-9.48917 196.807 187.367 +-11.9255 197.825 188.336 +-14.2144 196.44 187.018 +-16.7151 197.933 188.439 +-18.9598 196.375 186.956 +-21.4743 197.62 188.141 +-23.7064 196.25 186.837 +-26.233 197.318 187.854 +-28.5363 196.64 187.208 +-31.1196 197.82 188.332 +-33.2825 196.322 186.905 +-35.9208 197.612 188.134 +-38.1195 196.445 187.022 +-40.6476 196.984 187.536 +-42.8318 195.862 186.467 +-45.5036 196.941 187.495 +-47.7012 195.933 186.535 +-50.3881 196.905 187.461 +-52.4343 195.371 186 +-55.3445 197.019 187.569 +-57.5292 196.024 186.622 +-60.3217 197.068 187.615 +-62.244 195.267 185.901 +-65.248 196.838 187.397 +-67.4236 195.856 186.462 +-70.2066 196.615 187.184 +-72.3917 195.674 186.288 +-75.4147 196.954 187.507 +-77.3438 195.356 185.985 +-80.4047 196.595 187.166 +-82.5073 195.456 186.081 +-85.7012 196.861 187.419 +-87.7917 195.692 186.306 +-90.7491 196.435 187.013 +-93.1125 195.854 186.46 +-96.0696 196.487 187.062 +-98.0914 195.192 185.829 +-101.56 196.735 187.299 +-103.819 195.883 186.487 +-107.238 197.173 187.716 +-109.273 195.884 186.489 +-112.318 196.391 186.97 +-114.484 195.34 185.97 +-115.916 193.081 183.819 +-118.726 193.135 183.871 +-120.22 191.059 181.895 +-124.292 193.049 183.789 +-128.077 194.478 185.15 +-131.511 195.289 185.922 +-138.009 200.478 190.862 +-139.829 198.76 189.226 +-143.281 199.346 189.784 +-143.33 195.235 185.871 +-143.148 190.948 181.789 +-143.746 187.82 178.811 +-148.86 190.56 181.42 +-155.4 194.943 185.593 +-1662.95 2044.69 1946.61 +-456.272 549.98 523.6 +-457.395 540.591 514.661 +-460.5 533.749 508.147 +-461.594 524.771 499.6 +-477.104 532.098 506.576 +-482.503 527.976 502.651 +-487.001 522.925 497.842 +-489.262 515.589 490.858 +-488.056 504.823 480.609 +-488.836 496.354 472.546 +-491.8 490.257 466.742 +-492.692 482.24 459.109 +-479.165 460.54 438.45 +-478.608 451.748 430.079 +-482.309 447.108 425.662 +-483.071 439.848 418.75 +-486.213 434.864 414.006 +-486.727 427.639 407.127 +-489.804 422.771 402.493 +-490.268 415.749 395.807 +-493.75 411.377 391.645 +-494.778 405.041 385.613 +-142.123 114.321 108.837 +-142.144 112.35 106.961 +-142.674 110.812 105.496 +-142.283 108.592 103.384 +-141.849 106.386 101.283 +-141.864 104.556 99.541 +-147.502 106.83 101.706 +-148.499 105.691 100.621 +-513.896 359.426 342.186 +-515.161 354.07 337.087 +-518.091 349.912 333.128 +-519.633 344.862 328.321 +-522.802 340.935 324.581 +-523.146 335.218 319.139 +-526.485 331.471 315.572 +-527.57 326.344 310.69 +-530.792 322.578 307.105 +-531.881 317.553 302.321 +-535.22 313.905 298.848 +-535.852 308.707 293.9 +-539.157 305.086 290.452 +-536.466 298.139 283.838 +-542.194 295.914 281.72 +-544.774 291.959 277.954 +-548.271 288.505 274.666 +-549.854 284.061 270.436 +-552.518 280.201 266.761 +-385.856 192.068 182.855 +-382.518 186.869 177.905 +-382.754 183.484 174.683 +-385.537 181.335 172.637 +-2763.37 1275.04 1213.88 +-380.519 172.212 163.951 +-382.835 169.914 161.764 +-383.411 166.854 158.85 +-381.874 162.917 155.102 +-382.09 159.772 152.109 +-135.166 55.3869 52.7302 +-135.041 54.2144 51.614 +-382.11 150.262 143.055 +-383.111 147.535 140.459 +-381.149 143.703 136.81 +-381.796 140.895 134.136 +-384.643 138.896 132.234 +-577.565 204.023 194.237 +-381.342 131.737 125.418 +-380.921 128.648 122.477 +-381.274 125.845 119.809 +-383.232 123.578 117.651 +-382.139 120.343 114.571 +-381.273 117.216 111.593 +-381.1 114.33 108.846 +-382.185 111.836 106.471 +-382.029 108.991 103.763 +-601.973 167.36 159.332 +-380.008 102.903 97.9668 +-380.2 100.224 95.4169 +-609.983 156.445 148.941 +-379.909 94.7431 90.1986 +-376.579 91.2586 86.8813 +-378.52 89.0764 84.8038 +-380.915 86.9855 82.8131 +-381.087 84.3839 80.3364 +-381.802 81.9106 77.9817 +-381.333 79.1946 75.3959 +-381.405 76.6075 72.933 +-381.734 74.0813 70.5279 +-381.45 71.4484 68.0213 +-381.52 68.8946 65.59 +-381.072 66.2608 63.0826 +-381.368 63.7683 60.7096 +-381.048 61.1832 58.2485 +-381.478 58.7273 55.9104 +-381.877 56.2707 53.5716 +-381.068 53.6477 51.0745 +-382.093 51.2899 48.8298 +-379.348 48.4455 46.1217 +-381.397 46.2253 44.0081 +-380.359 43.6317 41.5389 +-381.463 41.2903 39.3098 +-380.263 38.7064 36.8499 +-379.823 36.2165 34.4793 +-380.244 33.8145 32.1925 +-380.935 31.4345 29.9268 +-381.399 29.0333 27.6407 +-380.64 26.5453 25.272 +-381.642 24.1827 23.0228 +-380.324 21.6787 20.6389 +-381.169 19.3044 18.3785 +-379.89 16.8283 16.0211 +-380.078 14.4267 13.7347 +-380.837 12.0428 11.4652 +-380.168 9.61518 9.15398 +-380.27 7.212 6.86607 +-144.078 1.82144 1.73408 +-145.794 0.921502 0.877301 +96.6 3.55271e-15 -1.7053e-13 +96.4963 0.615123 0.57513 +96.6853 1.23275 1.1526 +96.5669 1.84709 1.727 +96.5412 2.46257 2.30247 +96.4082 3.07467 2.87477 +96.5675 3.69674 3.4564 +96.4198 4.30769 4.02763 +96.4644 4.92724 4.60689 +96.3022 5.53621 5.17628 +96.332 6.15623 5.75598 +96.1553 6.76305 6.32335 +96.1703 7.38335 6.90332 +95.979 7.9878 7.46847 +96.8725 8.6883 8.12343 +96.6659 9.29597 8.69159 +96.6502 9.92196 9.27689 +96.429 10.5269 9.84245 +96.2996 11.1412 10.4168 +95.867 11.7184 10.9565 +95.7233 12.329 11.5275 +95.3757 12.9121 12.0726 +95.316 13.5335 12.6537 +96.0326 14.2717 13.3438 +95.8585 14.8832 13.9156 +95.5794 15.4779 14.4716 +95.4883 16.103 15.0561 +95.2923 16.711 15.6245 +96.0593 17.4946 16.3572 +95.8466 18.1062 16.929 +96.496 18.8866 17.6587 +95.3994 19.3253 18.0689 +96.1262 20.134 18.825 +96.5531 20.8912 19.5329 +96.4911 21.5486 20.1476 +96.1347 22.1408 20.7014 +96.7224 22.956 21.4635 +96.3497 23.5485 22.0175 +95.9701 24.138 22.5686 +96.5265 24.9682 23.3449 +96.1306 25.5576 23.896 +95.8216 26.1694 24.468 +96.5322 27.0671 25.3073 +97.0426 27.9224 26.107 +96.7053 28.5399 26.6844 +96.453 29.1832 27.2859 +96.8371 30.0252 28.0731 +96.5664 30.6705 28.6764 +96.379 31.3443 29.3064 +95.8189 31.8968 29.8231 +96.5218 32.8768 30.7393 +96.0351 33.4594 31.2841 +96.3507 34.3265 32.0947 +96.0265 34.9719 32.6982 +96.2287 35.8149 33.4863 +95.8859 36.4606 34.0901 +96.2413 37.379 34.9488 +96.4941 38.2699 35.7818 +96.0332 38.8836 36.3555 +96.2613 39.7819 37.1955 +96.4752 40.6862 38.041 +96.0717 41.3367 38.6492 +96.0885 42.1733 39.4314 +96.4336 43.1658 40.3594 +96.4231 44.0111 41.1497 +96.1466 44.7419 41.833 +96.0278 45.5519 42.5904 +96.2304 46.5251 43.5003 +95.6709 47.1368 44.0722 +96.0931 48.2413 45.1049 +96.0046 49.1034 45.9109 +95.3329 49.671 46.4417 +95.3831 50.6203 47.3293 +95.4982 51.6174 48.2615 +95.4369 52.5319 49.1166 +94.9644 53.2272 49.7666 +95.5069 54.5051 50.9615 +95.5565 55.521 51.9113 +95.589 56.5418 52.8657 +95.5271 57.5206 53.7809 +94.9129 58.1743 54.3921 +95.507 59.5836 55.7098 +95.3953 60.5735 56.6353 +95.3421 61.6148 57.6089 +95.1969 62.6112 58.5406 +95.1088 63.6598 59.521 +95.0028 64.712 60.5048 +95.4593 66.1699 61.8679 +95.3125 67.2325 62.8614 +95.1476 68.2983 63.8579 +94.9644 69.367 64.8571 +94.7629 70.4387 65.8591 +94.9598 71.8282 67.1583 +94.8553 73.0136 68.2666 +94.6614 74.1498 69.3289 +94.8529 75.6121 70.6962 +94.5482 76.702 71.7152 +94.8209 78.2871 73.1972 +94.4725 79.3842 74.223 +94.7545 81.0387 75.7699 +94.1684 81.9758 76.6462 +94.3304 83.5872 78.1528 +94.2722 85.0364 79.5078 +93.6262 85.9773 80.3874 +93.7037 87.6069 81.9111 +94.1145 89.5915 83.7667 +93.4017 90.5382 84.6519 +93.4467 92.246 86.2486 +93.8693 94.3746 88.2388 +93.8416 96.0992 89.8513 +91.1413 95.078 88.8965 +90.002 95.6558 89.4367 +87.9051 95.1963 89.0071 +88.1995 97.3365 91.0082 +88.0681 99.0589 92.6186 +88.4395 101.403 94.8103 +88.2316 103.14 96.4343 +87.623 104.446 97.6555 +87.608 106.503 99.5787 +91.1539 113.037 105.688 +93.35 118.105 110.426 +93.265 120.412 112.583 +93.1319 122.726 114.747 +93.046 125.177 117.039 +92.9554 127.701 119.398 +93.1347 130.685 122.189 +92.7957 133.032 124.383 +92.8538 136.037 127.192 +92.847 139.053 130.012 +92.689 141.947 132.718 +92.4689 144.849 135.432 +92.4766 148.224 138.587 +92.5733 151.878 142.004 +92.4699 155.343 145.243 +92.4079 159.019 148.68 +92.265 162.706 152.128 +91.8535 166.065 155.268 +91.9918 170.586 159.496 +91.8497 174.781 163.417 +90.7387 177.275 165.75 +89.0962 178.808 167.182 +86.8232 179.093 167.449 +90.8986 192.832 180.295 +90.4953 197.56 184.715 +88.1007 198.059 185.183 +86.0319 199.31 186.352 +82.7412 197.685 184.833 +80.7456 199.116 186.17 +77.5368 197.517 184.675 +75.3345 198.425 185.525 +72.547 197.769 184.911 +70.3568 198.719 185.799 +67.3994 197.459 184.621 +65.2713 198.592 185.681 +62.4689 197.648 184.798 +60.3001 198.68 185.763 +57.5084 197.628 184.78 +55.1452 197.987 185.115 +52.4534 197.112 184.297 +50.2606 198.086 185.207 +47.5796 197.103 184.289 +45.3551 197.975 185.104 +42.863 197.68 184.828 +40.618 198.524 185.617 +37.869 196.822 184.026 +35.7381 198.287 185.396 +33.1728 197.347 184.517 +30.9271 198.277 185.386 +28.3481 197.013 184.205 +26.0988 197.986 185.114 +23.5321 196.472 183.699 +21.2781 197.488 184.649 +18.8273 196.669 183.883 +16.5503 197.656 184.806 +14.0993 196.515 183.738 +11.8165 197.691 184.838 +9.39843 196.591 183.81 +7.08348 197.593 184.746 +4.70517 196.9 184.099 +2.36315 197.799 184.939 +2.30926e-14 196.711 183.922 +-2.35704 197.288 184.461 +-4.69644 196.535 183.757 +-7.06516 197.082 184.269 +-9.38447 196.299 183.537 +-11.7772 197.035 184.224 +-14.0888 196.368 183.602 +-16.4892 196.927 184.124 +-18.7784 196.159 183.406 +-21.2703 197.415 184.58 +-23.471 195.962 183.222 +-25.8975 196.46 183.687 +-28.254 196.36 183.593 +-30.712 196.898 184.097 +-32.9413 195.97 183.229 +-35.3987 196.404 183.635 +-37.7437 196.171 183.417 +-40.2042 196.501 183.725 +-42.4094 195.588 182.871 +-45.058 196.679 183.892 +-47.2149 195.593 182.876 +-49.9143 196.721 183.931 +-52.0909 195.75 183.023 +-54.7664 196.627 183.843 +-56.9678 195.77 183.042 +-59.5209 196.113 183.363 +-61.8615 195.726 183.001 +-64.6177 196.603 183.821 +-66.7221 195.475 182.766 +-69.5055 196.315 183.552 +-71.667 195.371 182.669 +-74.4793 196.173 183.419 +-76.5721 195.059 182.377 +-79.6663 196.455 183.682 +-81.7471 195.311 182.613 +-84.6186 196.036 183.291 +-86.9574 195.489 182.779 +-89.8924 196.244 183.485 +-92.2335 195.663 182.942 +-95.2017 196.376 183.608 +-97.5441 195.761 183.034 +-100.58 196.501 183.725 +-102.708 195.443 182.736 +-105.992 196.548 183.77 +-107.999 195.255 182.561 +-111.208 196.111 183.361 +-113.507 195.328 182.629 +-116.714 196.07 183.323 +-118.93 195.119 182.434 +-122.044 195.617 182.899 +-124.334 194.765 182.102 +-127.69 195.547 182.834 +-130.196 194.989 182.311 +-135.823 198.989 186.051 +-138.467 198.506 185.6 +-142.265 199.624 186.646 +-143.33 196.904 184.102 +-143.1 192.516 180 +-142.873 188.274 176.034 +-145.807 188.247 176.008 +-149.55 189.208 176.906 +-158.809 196.933 184.129 +-457.817 556.559 520.374 +-458.545 546.581 511.045 +-462.09 540.169 505.05 +-469.116 537.88 502.91 +-482.714 542.956 507.656 +-486.808 537.239 502.31 +-486.386 526.728 492.482 +-487.562 518.189 484.499 +-489.318 510.455 477.267 +-490.752 502.558 469.885 +-493.034 495.688 463.461 +-492.87 486.537 454.905 +-479.225 464.534 434.332 +-480.313 457.232 427.505 +-483.417 451.965 422.58 +-484.939 445.322 416.37 +-487.346 439.603 411.022 +-489.144 433.436 405.256 +-491.475 427.84 400.024 +-492.606 421.302 393.911 +-494.734 415.72 388.692 +-141.668 116.965 109.361 +-142.257 115.406 107.903 +-142.55 113.634 106.246 +-142.197 111.385 104.143 +-142.145 109.415 102.301 +-142.266 107.611 100.615 +-143.266 106.491 99.5678 +-149.129 108.932 101.85 +-512.97 368.217 344.277 +-515.263 363.462 339.831 +-517.192 358.504 335.196 +-519.773 354.048 331.029 +-520.444 348.352 325.704 +-523.471 344.289 321.905 +-524.494 338.954 316.917 +-527.844 335.167 313.376 +-529.471 330.319 308.843 +-532.171 326.18 304.974 +-533.27 321.103 300.226 +-536.386 317.277 296.65 +-537.26 312.164 291.868 +-562.482 321.004 300.134 +-537.418 301.221 281.637 +-540.037 297.256 277.93 +-546.703 295.497 276.285 +-549.97 291.872 272.896 +-550.993 287.083 268.418 +-553.993 283.35 264.928 +-554.884 278.566 260.455 +-383.43 188.915 176.633 +-385.088 186.181 174.076 +-382.685 181.531 169.729 +-383.827 178.614 167.001 +-377.297 172.212 161.016 +-383.091 171.48 160.332 +-380.754 167.113 156.248 +-382.133 164.42 153.73 +-382.61 161.357 150.866 +-384.958 159.092 148.749 +-134.954 54.6424 51.0898 +-582.656 231.083 216.059 +-383.023 148.762 139.09 +-381.681 145.134 135.698 +-381.173 141.866 132.643 +-380.795 138.682 129.665 +-578.913 206.247 192.838 +-580.814 202.36 189.204 +-382.009 130.119 121.659 +-382.548 127.345 119.066 +-381.497 124.07 116.003 +-381.68 121.225 113.344 +-382.286 118.531 110.825 +-381.747 115.503 107.993 +-382.185 112.791 105.458 +-380.634 109.521 102.401 +-604.4 169.47 158.452 +-379.54 103.654 96.9151 +-380.294 101.106 94.533 +-381.487 98.6784 92.2628 +-380.098 95.6003 89.3848 +-379.045 92.6412 86.6181 +-380.423 90.2891 84.419 +-383.585 88.3439 82.6002 +-380.992 85.0839 79.5522 +-381.994 82.6522 77.2786 +-381.14 79.8312 74.641 +-382.272 77.4375 72.4029 +-382.024 74.7714 69.9101 +-381.16 72.0041 67.3228 +-381.423 69.4657 64.9494 +-381.363 66.8783 62.5302 +-382.148 64.4448 60.2549 +-381.244 61.7377 57.7238 +-380.01 59.0014 55.1654 +-380.701 56.5768 52.8985 +-381.657 54.1898 50.6666 +-3221.63 436.15 407.794 +-381.219 49.1005 45.9082 +-381.397 46.6204 43.5893 +-380.359 44.0046 41.1437 +-381.463 41.6432 38.9358 +-382.243 39.2405 36.6893 +-380.12 36.5546 34.178 +-381.435 34.2103 31.9862 +-380.935 31.7032 29.642 +-380.305 29.1975 27.2992 +-380.64 26.7721 25.0315 +-380.048 24.2875 22.7084 +-380.025 21.8468 20.4265 +-380.571 19.4389 18.1751 +-381.088 17.0256 15.9187 +-380.678 14.5729 13.6254 +-381.437 12.1649 11.374 +-380.068 9.69479 9.06449 +-3275.38 62.6501 58.5769 +-147.078 1.87526 1.75334 +-146.394 0.933198 0.872526 +96.6 3.55271e-15 -1.7053e-13 +96.5963 0.620928 0.570148 +96.6853 1.2431 1.14143 +96.5669 1.86259 1.71027 +95.6417 2.4601 2.25891 +96.608 3.10691 2.85282 +96.5675 3.72777 3.42291 +96.5196 4.34835 3.99273 +96.3647 4.96346 4.55754 +96.4019 5.58846 5.13142 +97.129 6.25926 5.74737 +97.0511 6.88336 6.32042 +96.1703 7.44533 6.83643 +96.1778 8.07157 7.41146 +96.8725 8.76123 8.04472 +96.765 9.38365 8.61623 +96.6502 10.0053 9.187 +96.429 10.6152 9.74708 +96.1021 11.2116 10.2947 +95.867 11.8167 10.8503 +95.7233 12.4325 11.4158 +96.359 13.1547 12.0789 +96.1995 13.7736 12.6472 +96.1306 14.4061 13.228 +95.9563 15.0235 13.7948 +95.7746 15.6397 14.3606 +95.5857 16.2547 14.9254 +96.3619 17.0404 15.6468 +96.2533 17.6771 16.2314 +96.7179 18.4242 16.9174 +95.7232 18.8927 17.3476 +96.363 19.6843 18.0745 +96.03 20.2827 18.624 +96.649 21.0875 19.3629 +96.3955 21.708 19.9326 +96.1347 22.3267 20.5008 +96.8176 23.1714 21.2764 +96.4445 23.7695 21.8256 +96.1592 24.3885 22.394 +96.5265 25.1778 23.1187 +96.1306 25.7721 23.6644 +95.8216 26.389 24.2309 +96.1588 27.1887 24.9652 +96.8565 28.1028 25.8045 +96.5198 28.7242 26.3751 +96.1759 29.3435 26.9438 +96.8371 30.2772 27.8011 +96.5664 30.9279 28.3986 +96.379 31.6074 29.0224 +96.0009 32.2257 29.5902 +96.5218 33.1528 30.4415 +96.1253 33.772 31.01 +96.3507 34.6146 31.7838 +96.116 35.2983 32.4115 +96.496 36.2158 33.254 +95.8859 36.7666 33.7598 +96.153 37.6583 34.5785 +95.7032 38.2749 35.1447 +96.0332 39.21 36.0033 +96.1743 40.0796 36.8018 +95.6958 40.6963 37.3681 +96.1578 41.7211 38.3091 +96.0885 42.5273 39.0493 +96.3483 43.4897 39.933 +95.8294 44.1074 40.5002 +95.8936 44.9987 41.3186 +96.1116 45.9744 42.2145 +95.5633 46.5905 42.7802 +95.6709 47.5325 43.6452 +95.8459 48.5211 44.5529 +96.0046 49.5156 45.4661 +96.0656 50.4729 46.3451 +96.1112 51.4349 47.2284 +95.4982 52.0507 47.7939 +95.5967 53.0616 48.7221 +95.5197 53.9879 49.5727 +95.5069 54.9626 50.4677 +95.5565 55.9871 51.4083 +95.589 57.0164 52.3534 +95.6043 58.0503 53.3028 +95.5257 59.0414 54.2129 +94.7466 59.6053 54.7307 +95.4708 61.1303 56.1309 +94.7429 61.7416 56.6922 +95.1969 63.1368 57.9733 +95.1088 64.1942 58.9442 +95.0028 65.2552 59.9185 +95.5318 66.7761 61.315 +95.3125 67.7969 62.2523 +95.1476 68.8716 63.2392 +94.9644 69.9493 64.2287 +95.3938 71.5028 65.6551 +95.1682 72.5901 66.6535 +94.8553 73.6265 67.6052 +95.3434 75.3106 69.1516 +94.988 76.3551 70.1106 +94.5482 77.3458 71.0203 +94.8209 78.9442 72.488 +94.4725 80.0506 73.5038 +94.7545 81.7189 75.0358 +94.2327 82.7199 75.9549 +94.2668 84.2322 77.3435 +94.0834 85.5786 78.5798 +94.2487 87.2757 80.1381 +93.7652 88.4005 81.1709 +93.6884 89.9348 82.5797 +93.4619 91.3571 83.8857 +93.3872 92.9614 85.3588 +94.2808 95.5837 87.7666 +92.5641 95.5866 87.7693 +90.5104 95.2124 87.4257 +88.1895 94.5156 86.7859 +88.2966 96.4226 88.537 +88.1443 98.0925 90.0702 +87.9047 99.7049 91.5508 +88.9231 102.813 94.4049 +88.1786 103.943 95.4425 +87.6753 105.385 96.7667 +87.6595 107.46 98.672 +88.0579 110.114 101.109 +91.75 117.055 107.482 +92.8218 120.846 110.963 +92.7441 123.242 113.163 +92.7119 125.775 115.489 +92.9554 128.773 118.241 +93.1347 131.782 121.005 +92.7957 134.148 123.177 +92.8538 137.179 125.96 +92.847 140.22 128.752 +92.7321 143.205 131.493 +92.4689 146.065 134.119 +92.5595 149.603 137.368 +92.1258 152.413 139.948 +92.4699 156.647 143.836 +92.4861 160.489 147.364 +92.3798 164.277 150.842 +91.8535 167.459 153.764 +91.662 171.401 157.384 +91.6705 175.904 161.518 +90.1434 177.59 163.066 +88.7884 179.685 164.99 +86.723 180.388 165.636 +91.1265 194.938 178.995 +90.2732 198.729 182.477 +87.4209 198.181 181.973 +84.9795 198.524 182.289 +82.2442 198.148 181.943 +79.8651 198.598 182.356 +77.2887 198.538 182.301 +74.6664 198.317 182.098 +72.107 198.22 182.009 +69.7058 198.533 182.297 +67.0124 197.973 181.783 +64.641 198.325 182.105 +62.109 198.159 181.953 +59.759 198.55 182.312 +57.2173 198.278 182.063 +54.8661 198.639 182.393 +52.2244 197.899 181.714 +49.8961 198.3 182.082 +47.406 198.033 181.837 +45.0745 198.403 182.177 +42.6127 198.175 181.968 +40.2189 198.223 182.012 +37.7437 197.818 181.64 +35.3857 197.98 181.789 +32.9413 197.615 181.453 +30.6215 197.965 181.775 +28.16 197.349 181.209 +25.9071 198.183 181.975 +23.4536 197.461 181.312 +21.1369 197.825 181.646 +18.7854 197.879 181.696 +16.4465 198.066 181.868 +14.047 197.428 181.282 +11.7511 198.247 182.034 +9.36702 197.579 181.42 +7.03375 197.853 181.672 +4.6755 197.301 181.165 +2.33958 197.471 181.321 +1.95399e-14 196.889 180.787 +-2.33958 197.471 181.321 +-4.66677 196.933 180.827 +-7.0128 197.263 181.131 +-9.34609 197.137 181.015 +-11.6944 197.291 181.156 +-14.0365 197.281 181.147 +-16.3793 197.257 181.125 +-18.7226 197.218 181.089 +-21.0663 197.163 181.039 +-23.3926 196.947 180.841 +-25.8208 197.523 181.369 +-28.0659 196.69 180.604 +-30.4969 197.16 181.036 +-32.7341 196.372 180.312 +-35.3073 197.542 181.386 +-37.4932 196.505 180.434 +-39.9529 196.912 180.808 +-42.1434 195.993 179.964 +-44.7609 197.022 180.909 +-46.9197 196.002 179.972 +-49.5498 196.924 180.819 +-51.7283 196.019 179.988 +-54.2281 196.329 180.273 +-56.5728 196.045 180.012 +-59.1313 196.465 180.397 +-61.4341 196.005 179.975 +-64.1741 196.892 180.79 +-66.4076 196.186 180.142 +-69.0798 196.751 180.66 +-71.227 195.801 179.788 +-74.025 196.614 180.534 +-76.3515 196.13 180.09 +-78.9279 196.267 180.216 +-81.2501 195.753 179.743 +-84.1074 196.488 180.418 +-86.463 196.01 179.98 +-89.0674 196.074 180.039 +-91.68 196.122 180.082 +-94.3004 196.15 180.108 +-96.9627 196.228 180.18 +-99.8441 196.701 180.615 +-102.027 195.777 179.766 +-105.369 197.033 180.919 +-107.287 195.596 179.6 +-110.634 196.737 180.648 +-112.921 195.951 179.925 +-115.837 196.231 180.182 +-118.564 196.152 180.11 +-121.547 196.455 180.388 +-123.996 195.866 179.848 +-127.044 196.192 180.147 +-129.407 195.434 179.451 +-132.878 196.308 180.253 +-137.65 198.991 182.717 +-140.972 199.47 183.157 +-143.658 199.012 182.736 +-143.1 194.132 178.256 +-142.97 189.984 174.446 +-144.231 187.775 172.419 +-147.85 188.628 173.201 +-156.17 195.286 179.315 +-458.281 561.798 515.853 +-459.485 552.3 507.132 +-465.11 548.264 503.425 +-474.973 549.167 504.255 +-484.783 549.861 504.892 +-489.458 544.697 500.151 +-488.343 533.287 489.673 +-488.072 523.086 480.307 +-489.949 515.403 473.252 +-492.088 508.156 466.598 +-493.034 499.849 458.97 +-480.617 478.424 439.297 +-480.068 469.258 430.881 +-481.165 461.887 424.113 +-484.341 456.63 419.285 +-486.122 450.156 413.341 +-487.912 443.808 407.512 +-489.526 437.415 401.642 +-492.054 431.938 396.614 +-493.97 426.015 391.174 +-141.84 120.187 110.358 +-141.999 118.223 108.554 +-142.19 116.32 106.807 +-142.414 114.479 105.116 +-142.128 112.266 103.084 +-141.732 110.013 101.016 +-142.197 108.461 99.5912 +-147.191 110.328 101.305 +-148.987 109.742 100.767 +-514.111 372.134 341.7 +-516.27 367.229 337.196 +-518.207 362.224 332.6 +-521.163 357.974 328.698 +-522.287 352.521 323.691 +-524.437 347.819 319.374 +-526.216 342.922 314.877 +-528.9 338.657 310.961 +-530.459 333.713 306.422 +-533.397 329.675 302.714 +-534.659 324.642 298.092 +-537.086 320.358 294.158 +-538.356 315.426 289.63 +-567.683 326.692 299.975 +-558.6 315.722 289.901 +-540.037 299.751 275.237 +-545.98 297.583 273.246 +-550.698 294.711 270.609 +-552.215 290.134 266.406 +-555.139 286.32 262.904 +-556.368 281.656 258.622 +-383.098 190.336 174.77 +-383.754 187.093 171.792 +-383.943 183.657 168.637 +-383.827 180.113 165.383 +-380.35 175.063 160.746 +-381.045 171.996 157.93 +-381.354 168.781 154.978 +-381.616 165.576 152.035 +-381.138 162.085 148.83 +-381.39 158.94 145.942 +-132.33 54.0297 49.6111 +-135.25 54.0909 49.6672 +-382.405 149.768 137.52 +-379.552 145.536 133.634 +-382.331 143.492 131.757 +-381.868 140.241 128.771 +-385.313 138.426 127.106 +-581.897 204.44 187.72 +-382.824 131.491 120.737 +-380.819 127.834 117.379 +-381.497 125.111 114.879 +-380.947 122.008 112.03 +-381.733 119.353 109.592 +-381.562 116.416 106.895 +-381.814 113.628 104.335 +-380.355 110.36 101.334 +-604.587 170.946 156.966 +-378.416 104.215 95.692 +-376.911 101.048 92.7837 +-378.471 98.7193 90.6458 +-376.505 95.4916 87.6821 +-378.097 93.1846 85.5638 +-379.472 90.8194 83.392 +-622.682 144.614 132.788 +-380.992 85.7981 78.7814 +-381.994 83.346 76.5298 +-382.102 80.7046 74.1044 +-381.983 78.0286 71.6473 +-381.444 75.2849 69.1279 +-382.031 72.7745 66.8228 +-381.423 70.0488 64.3201 +-381.072 67.3881 61.8769 +-381.368 64.8532 59.5494 +-381.732 62.3356 57.2377 +-381.478 59.7264 54.8419 +-380.995 57.0959 52.4264 +-380.871 54.5322 50.0725 +-380.913 52.0014 47.7486 +-381.219 49.5126 45.4634 +-380.706 46.9266 43.0889 +-381.248 44.4777 40.8402 +-380.969 41.9383 38.5085 +-381.451 39.4879 36.2585 +-381.805 37.0249 33.9969 +-381.435 34.4975 31.6762 +-381.532 32.0193 29.4007 +-381.001 29.4965 27.0842 +-380.64 26.9969 24.789 +-380.646 24.5299 22.5238 +-380.623 22.0649 20.2604 +-380.571 19.6021 17.999 +-380.788 17.1551 15.7521 +-380.977 14.7068 13.504 +-380.038 12.222 11.2225 +-380.368 9.78383 8.98369 +-150.548 2.9038 2.66632 +-146.278 1.88071 1.72691 +-146.394 0.941031 0.864072 +96.6 3.55271e-15 -1.7053e-13 +96.5963 0.626047 0.564523 +96.6853 1.25334 1.13017 +96.5669 1.87795 1.69339 +96.5412 2.50371 2.25766 +96.5081 3.12928 2.82175 +96.4676 3.75461 3.38563 +96.4198 4.37966 3.94925 +96.5642 5.01474 4.52192 +96.3022 5.6287 5.07555 +97.129 6.31086 5.69066 +97.0511 6.94009 6.25806 +96.2697 7.5145 6.77602 +96.0784 8.12971 7.33077 +95.9792 8.75206 7.89196 +96.765 9.461 8.53123 +96.6502 10.0877 9.09636 +96.429 10.7027 9.65092 +96.1021 11.304 10.1932 +95.9656 11.9264 10.7543 +96.6096 12.6511 11.4078 +95.4741 13.1414 11.8499 +96.2976 13.9013 12.5352 +96.1306 14.5249 13.0975 +95.9563 15.1473 13.6587 +95.7746 15.7686 14.219 +95.5857 16.3887 14.7781 +96.3619 17.1809 15.4925 +96.1563 17.8048 16.0551 +95.9434 18.4273 16.6164 +95.7232 19.0484 17.1764 +96.363 19.8466 17.8962 +96.8952 20.6341 18.6063 +95.882 21.0926 19.0197 +96.3955 21.8869 19.736 +96.1347 22.5107 20.2985 +95.8665 23.1329 20.8596 +96.4445 23.9654 21.6103 +96.1592 24.5896 22.1731 +96.5265 25.3853 22.8906 +96.1306 25.9846 23.431 +96.4772 26.7887 24.156 +97.1857 27.7056 24.9829 +96.2052 28.1439 25.378 +96.5198 28.961 26.1149 +96.3606 29.6423 26.7292 +96.0087 30.2657 27.2914 +96.5664 31.1829 28.1184 +96.1963 31.8075 28.6817 +96.0009 32.4913 29.2982 +96.6124 33.4575 30.1695 +96.1253 34.0504 30.7041 +97.1596 35.1929 31.7344 +96.116 35.5893 32.0918 +96.496 36.5143 32.9259 +95.8859 37.0697 33.4267 +96.153 37.9687 34.2373 +96.4941 38.9093 35.0855 +95.8583 39.4611 35.5831 +96.3484 40.4832 36.5047 +96.6484 41.4402 37.3677 +95.9855 41.9896 37.8632 +96.0885 42.8779 38.6641 +96.3483 43.8481 39.539 +95.8294 44.4709 40.1006 +96.0623 45.4494 40.9829 +96.0278 46.3129 41.7616 +96.2304 47.3024 42.6538 +95.7538 47.9658 43.252 +95.8459 48.921 44.1133 +96.0046 49.9237 45.0175 +96.0656 50.889 45.8879 +95.3831 51.466 46.4082 +95.4982 52.4797 47.3223 +95.5967 53.499 48.2414 +95.5197 54.4329 49.0836 +95.5069 55.4157 49.9698 +95.4782 56.4024 50.8595 +95.5112 57.4396 51.7948 +95.5271 58.4816 52.7344 +95.5257 59.5281 53.678 +95.4309 60.5307 54.5821 +95.4708 61.6342 55.5771 +95.3421 62.6442 56.4879 +95.1969 63.6572 57.4014 +95.1088 64.7233 58.3627 +95.0028 65.7931 59.3274 +95.4593 67.2754 60.664 +95.3125 68.3557 61.6381 +95.1476 69.4393 62.6153 +94.9644 70.5259 63.5951 +95.3237 72.0392 64.9596 +95.0987 73.135 65.9478 +94.9241 74.2872 66.9867 +94.6614 75.3885 67.9798 +94.988 76.9845 69.4189 +95.0835 78.4253 70.7181 +94.6221 79.4278 71.6222 +94.4725 80.7104 72.7787 +94.105 81.8281 73.7865 +94.3612 83.5154 75.308 +94.394 85.0408 76.6835 +94.0205 86.2269 77.753 +93.8752 87.6461 79.0328 +93.5805 88.9539 80.212 +93.6884 90.6761 81.765 +93.5822 92.229 83.1653 +93.6846 94.0255 84.7852 +93.9281 96.0114 86.5759 +91.9833 95.77 86.3583 +90.2236 95.6935 86.2893 +88.2461 95.3563 85.9853 +88.0729 96.9709 87.4412 +87.8684 98.5914 88.9024 +87.8503 100.465 90.592 +88.4932 103.16 93.0222 +88.4965 105.178 94.8417 +87.6753 106.254 95.8121 +87.6595 108.346 97.6985 +87.8041 110.702 99.8227 +91.15 117.248 105.725 +92.8218 121.842 109.868 +93.1804 124.842 112.573 +93.1891 127.464 114.938 +93.0023 129.9 117.134 +92.7653 132.341 119.336 +92.7503 135.188 121.903 +92.8538 138.309 124.717 +92.7593 141.242 127.362 +92.689 144.318 130.135 +92.8492 147.875 133.343 +92.5595 150.836 136.013 +92.4919 154.279 139.118 +92.4699 157.938 142.417 +92.4079 161.676 145.787 +92.265 165.424 149.168 +91.9285 168.977 152.371 +92.0285 173.505 156.454 +91.6347 177.285 159.862 +89.548 177.871 160.391 +88.4464 180.469 162.734 +86.8899 182.226 164.318 +90.801 195.842 176.596 +89.9876 199.734 180.105 +87.1737 199.25 179.668 +84.7389 199.594 179.979 +82.0395 199.284 179.699 +79.6379 199.665 180.043 +77.0406 199.532 179.923 +74.4793 199.451 179.85 +71.8482 199.137 179.567 +69.5305 199.667 180.045 +66.7704 198.885 179.34 +64.4776 199.454 179.853 +62.019 199.503 179.897 +59.5858 199.607 179.991 +56.8638 198.678 179.153 +54.6468 199.475 179.872 +52.0527 198.874 179.33 +49.7503 199.351 179.76 +47.2497 199.007 179.449 +44.7939 198.793 179.257 +42.425 198.929 179.379 +39.9677 198.609 179.091 +37.6324 198.86 179.317 +35.3073 199.17 179.597 +32.8438 198.654 179.131 +30.5083 198.86 179.317 +28.0763 198.385 178.889 +25.7442 198.559 179.046 +23.3665 198.349 178.856 +21.082 198.937 179.387 +18.6599 198.176 178.701 +16.3366 198.364 178.87 +13.9999 198.388 178.892 +11.6682 198.471 178.967 +9.33213 198.465 178.961 +6.98925 198.222 178.742 +4.66154 198.333 178.842 +2.33173 198.43 178.93 +1.86517e-14 198.438 178.937 +-2.3326 198.505 178.997 +-4.66328 198.407 178.909 +-6.99186 198.295 178.808 +-9.32864 198.391 178.894 +-11.6638 198.397 178.9 +-13.9842 198.166 178.691 +-16.3183 198.141 178.669 +-18.6529 198.103 178.634 +-20.9957 198.122 178.652 +-23.2532 197.387 177.989 +-25.6579 197.894 178.446 +-27.9823 197.72 178.29 +-30.4177 198.269 178.785 +-32.6488 197.475 178.068 +-35.0724 197.844 178.401 +-37.3958 197.61 178.19 +-39.8199 197.874 178.428 +-41.987 196.875 177.528 +-44.4638 197.328 177.935 +-46.7635 196.959 177.603 +-49.24 197.305 177.915 +-51.5757 197.052 177.687 +-54.0486 197.293 177.904 +-56.4064 197.079 177.712 +-58.9365 197.432 178.029 +-61.2317 196.97 177.613 +-63.7072 197.071 177.704 +-66.1656 197.083 177.715 +-68.6542 197.15 177.775 +-70.9682 196.698 177.367 +-73.544 196.946 177.591 +-76.131 197.175 177.798 +-78.7007 197.316 177.925 +-81.0454 196.869 177.522 +-83.8668 197.541 178.128 +-86.1848 196.99 177.631 +-88.7818 197.057 177.692 +-91.4521 197.247 177.862 +-94 197.137 177.763 +-96.4155 196.729 177.396 +-99.4239 197.488 178.08 +-101.669 196.698 177.367 +-104.746 197.482 178.075 +-106.95 196.589 177.27 +-109.945 197.124 177.752 +-112.57 196.95 177.595 +-115.597 197.44 178.036 +-117.913 196.683 177.354 +-120.925 197.06 177.694 +-123.278 196.336 177.041 +-126.355 196.736 177.402 +-129.056 196.511 177.199 +-131.941 196.531 177.217 +-137.332 200.167 180.496 +-140.418 200.324 180.637 +-143.095 199.865 180.224 +-143.148 195.798 176.556 +-142.97 191.55 172.725 +-144.379 189.517 170.892 +-147.6 189.861 171.202 +-153.429 193.44 174.43 +-458.744 567.003 511.281 +-460.582 558.182 503.327 +-467.336 555.428 500.844 +-478.895 558.266 503.403 +-485.709 555.452 500.866 +-487.471 546.958 493.206 +-488.511 537.867 485.008 +-488.922 528.315 476.396 +-490.465 520.199 469.077 +-491.739 511.982 461.668 +-494.151 505.111 455.472 +-478.654 480.398 433.187 +-481.151 474.193 427.592 +-482.261 466.756 420.886 +-484.649 460.686 415.413 +-486.184 453.924 409.315 +-488.919 448.39 404.325 +-490.862 442.224 398.765 +-493.018 436.352 393.47 +-494.295 429.809 387.57 +-141.84 121.178 109.269 +-142.662 119.753 107.985 +-142.792 117.776 106.201 +-143.158 116.024 104.622 +-141.787 112.919 101.822 +-141.595 110.812 99.9218 +-143.516 110.371 99.5241 +-147.822 111.714 100.736 +-512.44 380.567 343.167 +-514.325 375.358 338.47 +-517.349 371.03 334.567 +-517.99 365.056 329.18 +-521.455 361.128 325.638 +-522.951 355.878 320.904 +-524.809 350.935 316.447 +-526.89 346.192 312.17 +-529.202 341.644 308.069 +-530.459 336.464 303.399 +-533.703 332.584 299.899 +-534.967 327.506 295.321 +-537.785 323.419 291.636 +-547.043 323.158 291.4 +-565.792 328.288 296.025 +-562.567 320.585 289.08 +-547.305 306.289 276.189 +-543.89 298.887 269.514 +-550.455 297.01 267.821 +-552.703 292.784 264.011 +-555.877 289.063 260.656 +-557.109 284.356 256.412 +-385.585 193.151 174.169 +-384.338 188.923 170.357 +-385.537 185.94 167.667 +-384.671 181.997 164.111 +-379.756 176.231 158.912 +-382.153 173.918 156.827 +-382.125 170.517 153.76 +-381.702 166.978 150.569 +-382.61 164.053 147.931 +-382.347 160.653 144.865 +-135.304 55.6992 50.2254 +-135.953 54.8203 49.4329 +-383.111 151.282 136.415 +-382.213 147.764 133.243 +-380.994 144.169 130.001 +-380.705 140.966 127.113 +-382.617 138.591 124.971 +-582.709 206.412 186.127 +-2969.52 1028.36 927.302 +-381.001 128.949 116.277 +-381.497 126.142 113.746 +-381.956 123.34 111.219 +-382.102 120.453 108.616 +-381.47 117.347 105.815 +-382 114.62 103.356 +-378.959 110.861 99.966 +-605.427 172.595 155.633 +-381.694 105.985 95.569 +-380.012 102.719 92.6244 +-380.544 100.079 90.2437 +-377.924 96.6419 87.1445 +-379.614 94.33 85.0598 +-620.659 149.767 135.049 +-623.254 145.94 131.598 +-381.948 86.7222 78.1997 +-380.843 83.7798 75.5464 +-381.813 81.3083 73.3178 +-381.405 78.553 70.8333 +-381.251 75.8668 68.4111 +-381.45 73.2628 66.063 +-382.297 70.7879 63.8313 +-381.947 68.0996 61.4072 +-380.297 65.204 58.7962 +-381.244 62.7691 56.6005 +-381.967 60.2959 54.3704 +-381.877 57.6997 52.0293 +-380.871 54.9818 49.5785 +-380.913 52.4301 47.2775 +-381.121 49.9079 45.0032 +-381.693 47.436 42.7743 +-381.248 44.8443 40.4373 +-380.672 42.2511 38.0989 +-380.56 39.7204 35.8169 +-380.715 37.2235 33.5654 +-380.244 34.6732 31.2657 +-380.24 32.174 29.0122 +-380.504 29.7008 26.7819 +-380.64 27.2194 24.5444 +-380.347 24.7127 22.2841 +-380.125 22.2177 20.0343 +-381.169 19.7947 17.8494 +-379.89 17.2557 15.5599 +-380.178 14.7969 13.3428 +-380.837 12.3487 11.1351 +-380.468 9.86708 8.8974 +-148.749 2.89274 2.60846 +-144.678 1.87547 1.69116 +-146.394 0.948788 0.855547 +95.8 -1.77636e-15 -1.7053e-13 +96.6963 0.631768 0.55943 +96.7853 1.26479 1.11997 +96.6669 1.89511 1.67812 +96.741 2.5292 2.23961 +96.608 3.15787 2.7963 +96.6673 3.79284 3.35856 +96.6194 4.42425 3.91768 +96.5642 5.05533 4.47649 +96.5016 5.68601 5.03496 +96.332 6.30974 5.58728 +96.3544 6.94604 6.15072 +97.1648 7.64569 6.77026 +97.072 8.28026 7.33218 +96.0785 8.83203 7.82077 +96.8642 9.54731 8.45415 +96.7492 10.1798 9.0142 +96.5279 10.8004 9.56378 +96.2996 11.419 10.1115 +96.1628 12.0476 10.6682 +96.0188 12.6755 11.2241 +95.5724 13.2614 11.743 +96.3958 14.0281 12.4219 +96.1306 14.6424 12.9659 +96.0541 15.2855 13.5353 +95.8723 15.9125 14.0905 +95.6831 16.5382 14.6446 +96.4591 17.3375 15.3524 +96.2533 17.9671 15.9098 +96.0402 18.5952 16.466 +95.8198 19.2219 17.021 +96.4594 20.0273 17.7342 +96.2223 20.6567 18.2915 +95.882 21.2633 18.8286 +96.5868 22.1078 19.5764 +96.3254 22.738 20.1345 +96.8176 23.5515 20.8549 +96.5393 24.1832 21.4142 +96.2538 24.8129 21.9719 +96.5265 25.5908 22.6607 +96.2245 26.2205 23.2183 +96.9456 27.1366 24.0295 +96.6256 27.7689 24.5894 +97.0426 28.6186 25.3418 +96.7053 29.2516 25.9023 +96.453 29.9109 26.4861 +96.9292 30.8032 27.2762 +96.5664 31.4353 27.836 +96.4704 32.1563 28.4744 +96.0919 32.7854 29.0314 +96.5218 33.6966 29.8384 +96.3058 34.3904 30.4527 +96.6204 35.2809 31.2412 +96.116 35.8774 31.7694 +96.496 36.8099 32.5952 +95.8859 37.3697 33.0909 +96.153 38.276 33.8934 +96.582 39.2599 34.7647 +96.8204 40.1798 35.5792 +96.4354 40.8477 36.1706 +96.6484 41.7757 36.9924 +96.1578 42.4055 37.5501 +96.1742 43.2635 38.3098 +96.4336 44.2422 39.1765 +95.9142 44.8706 39.7329 +96.6527 46.0988 40.8205 +96.1116 46.7285 41.3781 +95.7301 47.4374 42.0058 +95.7538 48.3541 42.8175 +95.9283 49.3594 43.7078 +96.0046 50.3278 44.5653 +96.0656 51.3009 45.4269 +96.1921 52.3227 46.3317 +95.5786 52.9491 46.8864 +95.6765 53.977 47.7966 +95.5197 54.8735 48.5905 +95.6645 55.9564 49.5494 +95.4782 56.8589 50.3486 +95.589 57.9517 51.3162 +95.6043 59.0026 52.2468 +95.5257 60.0099 53.1388 +95.4309 61.0207 54.0338 +95.4708 62.1331 55.0188 +95.3421 63.1512 55.9204 +95.2712 64.2226 56.8691 +95.1825 65.2978 57.8212 +95.7342 66.8363 59.1835 +95.4593 67.8199 60.0546 +94.6651 68.441 60.6045 +95.2189 70.0539 62.0327 +94.9644 71.0968 62.9562 +94.7629 72.1951 63.9288 +95.1682 73.7809 65.333 +94.9929 74.9431 66.3622 +94.6614 75.9988 67.2969 +94.988 77.6076 68.7216 +95.2842 79.227 70.1555 +94.7547 80.1831 71.0021 +94.5381 81.4206 72.098 +94.2999 82.6611 73.1965 +94.4255 84.2491 74.6026 +94.3304 85.6715 75.8622 +94.0834 86.9825 77.023 +93.813 88.2971 78.1871 +93.9499 90.0273 79.7192 +93.6275 91.3509 80.8913 +93.5822 92.9755 82.3299 +93.7441 94.8472 83.9872 +93.9281 96.7885 85.7063 +91.5188 96.0578 85.0592 +90.2236 96.4681 85.4225 +88.3594 96.2517 85.2309 +88.1847 97.8801 86.6728 +87.8132 99.3265 87.9536 +88.5038 102.031 90.3489 +88.2246 103.679 91.808 +88.5495 106.093 93.9453 +87.7275 107.178 94.9059 +87.6595 109.223 96.7171 +87.8549 111.662 98.877 +90.35 117.16 103.745 +92.9696 123.023 108.937 +93.1804 125.853 111.442 +93.1414 128.43 113.725 +92.9554 130.885 115.899 +93.1347 133.944 118.608 +92.8865 136.482 120.855 +92.8538 139.429 123.464 +92.847 142.52 126.202 +92.689 145.486 128.828 +92.8492 149.072 132.003 +92.5595 152.057 134.646 +92.5733 155.665 137.842 +92.43 159.148 140.926 +92.4861 163.122 144.445 +92.3032 166.833 147.731 +91.9285 170.345 150.841 +91.6986 174.282 154.327 +91.3122 178.09 157.699 +89.583 179.382 158.842 +88.1044 181.226 160.476 +87.7912 185.606 164.354 +90.9312 197.71 175.073 +89.702 200.711 177.73 +86.8647 200.15 177.233 +84.5885 200.853 177.856 +81.8641 200.467 177.514 +79.3539 200.564 177.599 +76.5169 199.779 176.904 +74.2388 200.416 177.469 +71.6152 200.098 177.187 +69.3052 200.63 177.658 +66.7704 200.495 177.538 +64.2442 200.34 177.402 +61.7266 200.169 177.25 +59.391 200.565 177.6 +56.8846 200.359 177.418 +54.4873 200.503 177.545 +51.9191 199.97 177.073 +49.5863 200.302 177.367 +47.1281 200.102 177.19 +44.7774 200.328 177.39 +42.2999 199.947 177.054 +39.9972 200.364 177.423 +37.4932 199.728 176.859 +35.1768 200.04 177.135 +32.7585 199.742 176.871 +30.4177 199.874 176.989 +28.0763 199.991 177.092 +25.6579 199.496 176.654 +23.3054 199.432 176.597 +20.9878 199.651 176.791 +18.6668 199.855 176.972 +16.3305 199.895 177.007 +13.9475 199.247 176.433 +11.6289 199.405 176.573 +9.30421 199.474 176.634 +6.96569 199.152 176.349 +4.64583 199.265 176.449 +2.32475 199.438 176.602 +1.77636e-14 199.52 176.675 +-2.32475 199.438 176.602 +-4.64758 199.34 176.515 +-6.99448 199.975 177.078 +-9.30421 199.474 176.634 +-11.6289 199.405 176.573 +-13.9475 199.247 176.433 +-16.3183 199.745 176.875 +-18.5971 199.109 176.311 +-20.9329 199.129 176.329 +-23.2619 199.059 176.267 +-25.6579 199.496 176.654 +-27.8882 198.65 175.905 +-30.3045 199.13 176.33 +-32.661 199.147 176.345 +-34.968 198.852 176.084 +-37.2706 198.542 175.809 +-39.6868 198.809 176.046 +-41.987 198.469 175.744 +-44.3153 198.261 175.56 +-46.6072 197.889 175.231 +-49.2583 198.976 176.194 +-51.4039 197.985 175.316 +-53.8892 198.303 175.597 +-56.2401 198.089 175.408 +-58.7417 198.372 175.659 +-61.0967 198.127 175.441 +-63.5672 198.229 175.532 +-65.9721 198.097 175.415 +-68.4289 198.094 175.412 +-70.9941 198.362 175.649 +-73.5974 198.684 175.935 +-75.6073 197.404 174.801 +-78.4734 198.339 175.629 +-80.7823 197.818 175.168 +-83.5962 198.497 175.769 +-86.2775 198.797 176.035 +-88.528 198.084 175.403 +-91.1265 198.136 175.449 +-93.7997 198.309 175.602 +-96.4155 198.321 175.614 +-98.9686 198.175 175.484 +-101.526 198.01 175.338 +-104.38 198.384 175.669 +-106.65 197.625 174.997 +-109.639 198.166 175.476 +-112.296 198.062 175.384 +-115.278 198.488 175.761 +-117.954 198.343 175.633 +-120.593 198.11 175.427 +-123.32 197.993 175.323 +-126.398 198.396 175.68 +-127.654 195.948 173.512 +-131.673 197.719 175.081 +-137.014 201.321 178.27 +-139.817 201.082 178.059 +-143.048 201.417 178.355 +-143.195 197.448 174.841 +-142.922 193.035 170.933 +-144.379 191.051 169.176 +-147.5 191.267 169.367 +-150.993 191.91 169.936 +-159.198 198.36 175.647 +-460.896 563.083 498.611 +-469.985 563.098 498.624 +-480.776 564.995 500.303 +-487.343 561.832 497.502 +-487.526 551.447 488.306 +-489.462 543.276 481.071 +-489.545 533.27 472.211 +-491.326 525.33 465.18 +-492.552 516.98 457.786 +-488.097 502.961 445.372 +-478.654 484.286 428.836 +-481.151 478.031 423.297 +-482.261 470.534 416.658 +-485.511 465.241 411.971 +-486.744 458.125 405.67 +-489.674 452.717 400.881 +-490.862 445.804 394.759 +-493.211 440.056 389.67 +-494.685 433.629 383.979 +-141.315 121.706 107.771 +-142.397 120.499 106.702 +-142.993 118.896 105.282 +-142.617 116.522 103.18 +-142.128 114.107 101.042 +-142.421 112.36 99.4949 +-144.558 112.072 99.2396 +-148.102 112.832 99.9125 +-512.582 383.754 339.814 +-514.824 378.763 335.395 +-517.349 374.033 331.206 +-519.15 368.835 326.603 +-521.163 363.847 322.186 +-522.951 358.759 317.681 +-525.775 354.427 313.845 +-526.89 348.994 309.034 +-529.882 344.851 305.365 +-531.144 339.625 300.738 +-534.776 335.95 297.484 +-535.662 330.586 292.734 +-538.484 326.461 289.081 +-549.469 327.219 289.752 +-562.324 328.917 291.256 +-564.471 324.273 287.144 +-552.895 311.923 276.208 +-543.568 301.128 266.649 +-550.941 299.678 265.365 +-553.191 295.415 261.59 +-555.877 291.403 258.038 +-557.769 286.997 254.136 +-2716.34 1371.71 1214.65 +-384.088 190.328 168.535 +-384.111 186.751 165.368 +-384.418 183.349 162.356 +-380.519 178.014 157.632 +-2793.68 1281.7 1134.94 +-381.439 171.589 151.942 +-382.994 168.9 149.561 +-382.264 165.231 146.312 +-382.608 162.063 143.507 +-2865.69 1189.24 1053.08 +-136.217 55.3712 49.0312 +-384.347 152.998 135.48 +-383.366 149.41 132.303 +-382.687 145.982 129.267 +-380.705 142.107 125.836 +-382.347 139.614 123.628 +-582.709 208.083 184.258 +-585.656 204.458 181.048 +-381.638 130.21 115.301 +-382.684 127.56 112.954 +-382.873 124.637 110.366 +-382.286 121.487 107.577 +-381.377 118.269 104.727 +-381.814 115.492 102.268 +-379.238 111.84 99.0348 +-606.734 174.367 154.402 +-608.275 170.266 150.77 +-378.602 103.166 91.3539 +-378.753 100.414 88.9169 +-377.356 97.2774 86.1392 +-377.907 94.666 83.8268 +-3116.14 758.019 671.226 +-624.017 147.302 130.436 +-381.566 87.3366 77.3366 +-381.994 84.7132 75.0136 +-381.044 81.8017 72.4354 +-381.116 79.1289 70.0687 +-381.444 76.5198 67.7583 +-380.869 73.7434 65.2998 +-380.841 71.0892 62.9495 +-381.072 68.4935 60.651 +-381.563 65.9507 58.3994 +-380.755 63.1961 55.9602 +-381.967 60.784 53.8242 +-381.681 58.1369 51.4802 +-381.755 55.5553 49.1943 +-380.913 52.8544 46.8026 +-381.711 50.3898 44.6202 +-381.397 47.7829 42.3118 +-381.05 45.1839 40.0103 +-381.463 42.6816 37.7946 +-380.857 40.0732 35.4848 +-380.715 37.5248 33.2282 +-381.435 35.0634 31.0487 +-381.234 32.5192 28.7958 +-381.001 29.9803 26.5476 +-379.744 27.3752 24.2407 +-379.849 24.8801 22.0313 +-380.922 22.4445 19.8746 +-381.668 19.981 17.6932 +-381.387 17.4639 15.4643 +-380.977 14.948 13.2365 +-380.238 12.429 11.0059 +-380.468 9.94695 8.80803 +-149.149 2.924 2.5892 +-146.278 1.91157 1.69269 +-145.794 0.952552 0.843485 +96.6 3.55271e-15 -1.7053e-13 +95.7964 0.630862 0.548555 +96.6853 1.27353 1.10738 +96.5669 1.90819 1.65924 +96.5412 2.54404 2.21212 +96.5081 3.17968 2.76483 +96.4676 3.81508 3.31734 +96.5196 4.4548 3.87359 +96.4644 5.09024 4.42612 +96.4019 5.72528 4.97831 +96.332 6.35989 5.53013 +96.2548 6.99401 6.08152 +97.0653 7.69861 6.69419 +96.1778 8.26918 7.19032 +96.8725 8.97573 7.80468 +96.765 9.61338 8.35914 +96.6502 10.2502 8.91288 +96.429 10.8751 9.45625 +96.2996 11.5097 10.0081 +95.867 12.106 10.5266 +95.7233 12.7369 11.0751 +96.4573 13.4905 11.7304 +95.4142 13.9956 12.1696 +96.1306 14.7588 12.8333 +95.8585 15.3756 13.3695 +95.7746 16.0226 13.9321 +95.5857 16.6527 14.48 +96.4591 17.4753 15.1953 +96.1563 18.0916 15.7312 +95.9434 18.7241 16.2812 +95.7232 19.3552 16.83 +96.4594 20.1865 17.5528 +96.03 20.7793 18.0683 +96.7449 21.6252 18.8038 +96.3955 22.2394 19.3379 +96.23 22.896 19.9088 +95.6763 23.4589 20.3982 +96.5393 24.3754 21.1952 +96.1592 24.9856 21.7258 +96.4322 25.769 22.407 +96.1306 26.4031 22.9583 +96.8519 27.3258 23.7606 +96.5322 27.9625 24.3143 +97.0426 28.8461 25.0826 +96.4271 29.3992 25.5636 +96.3606 30.1197 26.1901 +96.1007 30.7826 26.7665 +96.7498 31.7453 27.6035 +96.379 32.3812 28.1565 +96.0009 33.0146 28.7073 +96.3405 33.9007 29.4777 +96.2156 34.6313 30.113 +96.5305 35.5282 30.8929 +96.9214 36.4656 31.708 +96.496 37.1025 32.2618 +96.6842 37.9804 33.0251 +96.153 38.5802 33.5467 +96.582 39.5719 34.4091 +96.6455 40.426 35.1517 +96.3484 41.1352 35.7684 +96.6484 42.1077 36.614 +96.1578 42.7425 37.166 +96.1742 43.6073 37.918 +96.3483 44.5544 38.7415 +95.8294 45.1872 39.2917 +96.0623 46.1814 40.1562 +96.0278 47.0589 40.9192 +96.3138 48.1059 41.8296 +95.6709 48.6962 42.3429 +96.5876 50.0937 43.558 +96.0865 50.7711 44.1471 +96.0656 51.7086 44.9623 +95.2213 52.2062 45.395 +95.4982 53.325 46.3678 +95.5967 54.3606 47.2683 +95.6784 55.4015 48.1734 +95.5069 56.3082 48.9618 +95.5565 57.3578 49.8744 +95.589 58.4123 50.7913 +95.6043 59.4715 51.7124 +95.4491 60.4383 52.5531 +95.4309 61.5057 53.4811 +95.3953 62.5774 54.413 +95.3421 63.6532 55.3485 +95.1969 64.6825 56.2435 +95.1825 65.8168 57.2298 +95.076 66.9043 58.1754 +95.4593 68.359 59.4403 +95.3125 69.4567 60.3948 +95.1476 70.5578 61.3522 +94.9644 71.6618 62.3123 +95.3938 73.2533 63.6961 +95.1682 74.3673 64.6647 +94.9241 75.4837 65.6355 +95.2752 77.0993 67.0403 +94.8529 78.1135 67.9222 +95.1504 79.7443 69.3402 +94.7547 80.8203 70.2759 +94.5381 82.0677 71.3605 +94.6895 83.6622 72.747 +94.4255 84.9187 73.8395 +94.3304 86.3524 75.0862 +94.0834 87.6738 76.2351 +93.6885 88.8812 77.285 +93.7037 90.5051 78.6971 +93.6884 92.1366 80.1157 +93.5822 93.7145 81.4877 +93.6846 95.5399 83.075 +93.8105 97.4355 84.7233 +91.9833 97.3125 84.6163 +90.2236 97.2348 84.5488 +87.9062 96.5187 83.9261 +87.8492 98.283 85.4602 +87.8132 100.116 87.054 +88.1226 102.399 89.0395 +87.9559 104.185 90.592 +88.2845 106.616 92.7062 +87.7275 108.03 93.9352 +87.608 110.026 95.6714 +87.8549 112.55 97.8656 +89.8 117.372 102.058 +92.9696 124.001 107.823 +92.7441 126.259 109.786 +93.046 129.318 112.446 +93.0023 131.992 114.771 +92.7191 134.407 116.871 +92.7957 137.433 119.502 +92.8091 140.469 122.142 +92.847 143.653 124.911 +92.689 146.643 127.51 +92.8492 150.257 130.653 +92.5595 153.265 133.269 +92.4919 156.764 136.312 +92.43 160.413 139.484 +92.0563 163.655 142.303 +92.265 168.089 146.159 +91.9659 171.769 149.359 +92.0651 176.37 153.359 +91.2405 179.365 155.964 +90.1784 182.009 158.262 +87.8992 182.241 158.464 +88.7592 189.143 164.466 +90.7033 198.782 172.847 +89.4165 201.663 175.352 +86.8647 201.741 175.42 +84.4382 202.09 175.723 +81.6887 201.628 175.322 +79.1267 201.579 175.279 +76.2689 200.714 174.527 +74.2388 202.009 175.653 +71.4082 201.105 174.867 +69.0798 201.568 175.269 +66.5769 201.502 175.212 +64.0341 201.272 175.013 +61.5466 201.172 174.926 +59.2179 201.57 175.271 +56.6767 201.214 174.962 +54.248 201.21 174.958 +51.7283 200.818 174.618 +49.5681 201.819 175.488 +46.9371 200.875 174.667 +44.6454 201.325 175.058 +42.1278 200.716 174.529 +39.8346 201.136 174.894 +37.3541 200.568 174.401 +35.0332 200.807 174.608 +32.6366 200.58 174.411 +30.3271 200.863 174.657 +27.9823 200.905 174.693 +25.6579 201.082 174.847 +23.2793 200.792 174.595 +20.9172 200.561 174.394 +18.618 200.917 174.704 +16.2878 200.956 174.738 +13.9528 200.906 174.694 +11.6333 201.065 174.832 +9.26931 200.304 174.171 +6.96307 200.66 174.48 +4.63187 200.245 174.12 +2.31777 200.419 174.271 +1.95399e-14 200.276 174.146 +-2.31602 200.268 174.139 +-4.63187 200.245 174.12 +-6.94736 200.207 174.086 +-9.26931 200.304 174.171 +-11.5897 200.311 174.177 +-13.9004 200.152 174.038 +-16.2694 200.731 174.542 +-18.5413 200.089 173.984 +-20.9329 200.712 174.525 +-23.1834 199.965 173.876 +-25.5812 200.48 174.324 +-27.8882 200.229 174.105 +-30.2026 200.038 173.939 +-32.5391 199.981 173.89 +-34.8374 199.685 173.632 +-37.1314 199.373 173.361 +-39.5686 199.793 173.726 +-41.8306 199.301 173.298 +-44.3318 199.91 173.828 +-46.6072 199.462 173.439 +-48.9302 199.222 173.23 +-51.2131 198.818 172.879 +-53.7097 199.213 173.222 +-56.0322 198.926 172.972 +-58.5686 199.36 173.349 +-60.9167 199.113 173.135 +-63.5672 199.805 173.737 +-65.8028 199.159 173.175 +-68.4789 199.814 173.744 +-70.7352 199.21 173.22 +-73.2768 199.39 173.376 +-75.6073 198.973 173.013 +-78.2178 199.264 173.266 +-80.5192 198.741 172.811 +-83.3256 199.427 173.408 +-85.6286 198.871 172.924 +-88.5915 199.802 173.734 +-90.8986 199.211 173.22 +-93.6996 199.671 173.62 +-96.0051 199.047 173.078 +-98.6884 199.184 173.197 +-101.275 199.091 173.116 +-104.05 199.329 173.323 +-106.276 198.496 172.599 +-109.256 199.044 173.075 +-111.944 199.012 173.047 +-114.959 199.512 173.482 +-117.262 198.748 172.817 +-120.261 199.135 173.155 +-121.08 195.942 170.378 +-122.954 194.524 169.145 +-125.067 193.504 168.258 +-131.494 199.021 173.055 +-136.515 202.182 175.804 +-139.864 202.748 176.296 +-142.579 202.352 175.951 +-143.195 199.018 173.052 +-143.358 195.163 169.701 +-143.935 191.979 166.932 +-146 190.827 165.93 +-150.282 192.524 167.406 +-157.241 197.478 171.714 +-461.157 567.88 493.79 +-471.84 569.814 495.471 +-482.28 571.267 496.735 +-167.041 194.103 168.779 +-169.997 193.814 168.527 +-172.958 193.5 168.254 +-489.828 537.819 467.651 +-491.154 529.319 460.26 +-492.959 521.519 453.477 +-482.689 501.342 435.933 +-479.368 488.863 425.082 +-481.693 482.373 419.439 +-483.052 475.052 413.073 +-485.757 469.176 407.964 +-487.055 462.062 401.778 +-490.052 456.668 397.087 +-490.671 449.172 390.569 +-493.211 443.554 385.684 +-495.464 437.764 380.65 +-142.562 123.756 107.61 +-142.132 121.23 105.413 +-143.261 120.065 104.4 +-142.55 117.393 102.077 +-142.128 115.014 100.009 +-141.87 112.815 98.0966 +-146.503 114.482 99.546 +-148.873 114.32 99.405 +-513.501 387.497 336.941 +-515.038 381.933 332.103 +-517.349 377.006 327.818 +-519.586 372.078 323.534 +-521.821 367.202 319.294 +-523.614 362.069 314.83 +-526.444 357.698 311.03 +-527.864 352.418 306.439 +-529.882 347.591 302.242 +-531.828 342.766 298.046 +-534.393 338.377 294.23 +-536.125 333.501 289.99 +-538.484 329.056 286.124 +-556.826 334.235 290.628 +-561.615 331.113 287.913 +-569.152 329.561 286.563 +-563.757 320.578 278.752 +-544.05 303.791 264.156 +-549.484 301.262 261.957 +-554.168 298.289 259.372 +-556.368 293.979 255.624 +-558.51 289.663 251.871 +-560.678 285.383 248.15 +-384.672 192.133 167.065 +-384.782 188.564 163.962 +-383.574 184.401 160.343 +-382.046 180.149 156.645 +-379.851 175.655 152.737 +-381.354 172.913 150.354 +-381.529 169.591 147.465 +-382.783 166.771 145.012 +-383.044 163.538 142.201 +-381.859 159.728 138.889 +-135.865 55.6672 48.4044 +-2892.98 1160.77 1009.33 +-383.011 150.458 130.828 +-380.638 146.354 127.26 +-381.868 143.674 124.929 +-381.987 140.591 122.249 +-583.521 210.029 182.627 +-585.656 206.083 179.196 +-380.819 130.963 113.877 +-381.862 128.297 111.558 +-381.864 125.296 108.949 +-381.733 122.275 106.322 +-382.856 119.67 104.057 +-380.98 116.155 101.001 +-380.355 113.061 98.3105 +-606.267 175.618 152.705 +-3069.01 865.886 752.916 +-381.139 104.683 91.0251 +-383.749 102.547 89.1681 +-376.789 97.9034 85.1301 +-379.045 95.7059 83.2194 +-621.801 152.459 132.568 +-3124.85 743.497 646.494 +-381.279 87.9651 76.4884 +-381.706 85.3224 74.1905 +-381.429 82.5348 71.7667 +-381.983 79.9389 69.5095 +-381.734 77.1861 67.1158 +-381.16 74.3862 64.6811 +-381.229 71.7273 62.3691 +-380.586 68.9498 59.9541 +-381.856 66.5258 57.8463 +-382.122 63.9271 55.5866 +-381.478 61.1887 53.2055 +-381.681 58.599 50.9537 +-380.871 55.8673 48.5784 +-380.913 53.2745 46.3239 +-381.121 50.7117 44.0954 +-381.693 48.2 41.9115 +-380.359 45.4604 39.5292 +-380.672 42.9316 37.3304 +-381.055 40.4127 35.1401 +-381.905 37.9412 32.9911 +-380.641 35.2685 30.6671 +-380.935 32.752 28.4789 +-381.896 30.2895 26.3377 +-380.64 27.6578 24.0493 +-380.646 25.1304 21.8517 +-381.52 22.6584 19.7022 +-380.87 20.0977 17.4756 +-381.088 17.5889 15.2941 +-380.078 15.0313 13.0702 +-381.137 12.5574 10.9191 +-380.468 10.026 8.71793 +-3275.38 64.7227 56.2784 +-147.178 1.93861 1.68568 +-145.394 0.957489 0.832568 +95.7 0 -1.7053e-13 +96.5963 0.641094 0.547374 +96.5853 1.28214 1.09471 +96.6669 1.92508 1.64366 +96.6411 2.56654 2.19135 +96.5081 3.20449 2.73604 +96.4676 3.84486 3.28278 +96.4198 4.48493 3.82929 +96.4644 5.12996 4.38002 +96.3022 5.764 4.92137 +97.129 6.46254 5.5178 +97.1507 7.1142 6.07419 +97.0653 7.75869 6.62446 +96.9726 8.40254 7.17419 +96.8725 9.04577 7.72339 +96.765 9.6884 8.27207 +96.5511 10.3196 8.81102 +95.5389 10.8588 9.27139 +96.1021 11.5758 9.88352 +95.9656 12.2131 10.4277 +95.7233 12.8363 10.9598 +95.5724 13.4711 11.5018 +96.2976 14.2355 12.1544 +95.1507 14.7223 12.5701 +95.9563 15.5114 13.2438 +95.7746 16.1476 13.787 +95.5857 16.7826 14.3292 +95.4867 17.4341 14.8854 +96.1563 18.2328 15.5674 +95.9434 18.8702 16.1116 +95.7232 19.5062 16.6547 +96.363 20.3236 17.3526 +96.8952 21.1301 18.0411 +95.7861 21.5779 18.4235 +96.3955 22.413 19.1365 +96.1347 23.0518 19.6819 +95.8665 23.689 20.2259 +96.4445 24.5415 20.9538 +96.1592 25.1806 21.4995 +96.715 26.0463 22.2386 +96.1306 26.6091 22.7192 +95.9152 27.2727 23.2858 +96.6256 28.208 24.0844 +96.8565 29.0155 24.7738 +96.5198 29.6571 25.3216 +96.3606 30.3548 25.9173 +96.8371 31.2606 26.6906 +96.5664 31.9324 27.2643 +96.1963 32.5721 27.8104 +96.9109 33.5876 28.6775 +96.5218 34.2295 29.2256 +96.2156 34.9016 29.7994 +96.5305 35.8055 30.5712 +95.937 36.3769 31.059 +96.3178 37.3229 31.8668 +96.0633 38.031 32.4713 +96.2413 38.917 33.2278 +96.582 39.8808 34.0507 +96.0332 40.4834 34.5652 +96.3484 41.4562 35.3958 +96.6484 42.4363 36.2326 +96.6748 43.3077 36.9766 +96.0885 43.9085 37.4896 +95.581 44.5445 38.0326 +96.4231 45.8219 39.1233 +95.8936 46.4601 39.6682 +96.1116 47.4675 40.5283 +95.4799 48.0616 41.0356 +95.6709 49.0762 41.9018 +95.8459 50.0969 42.7733 +95.9227 51.08 43.6128 +95.3329 51.7147 44.1546 +95.464 52.7478 45.0367 +95.4982 53.7411 45.8848 +95.5967 54.7849 46.776 +95.6784 55.8338 47.6716 +95.6645 56.8413 48.5318 +95.5565 57.8054 49.3549 +95.5112 58.8203 50.2214 +95.6043 59.9356 51.1738 +95.5257 60.9589 52.0474 +95.507 62.0351 52.9663 +95.3953 63.0657 53.8463 +95.3421 64.1499 54.772 +95.2712 65.2382 55.7011 +95.1825 66.3304 56.6337 +95.076 67.4264 57.5695 +95.4593 68.8924 58.8212 +95.2406 69.9459 59.7207 +95.1476 71.1084 60.7132 +94.8937 72.1673 61.6173 +95.3938 73.825 63.0327 +95.1682 74.9476 63.9912 +94.9241 76.0727 64.9518 +94.6614 77.2006 65.9148 +94.8529 78.7231 67.2147 +94.682 79.9711 68.2803 +94.7547 81.451 69.5439 +94.5381 82.7082 70.6172 +94.7545 84.3729 72.0386 +94.3612 85.5228 73.0204 +94.1396 86.8499 74.1535 +94.2093 88.4766 75.5424 +94.1865 90.0509 76.8865 +93.6421 91.1513 77.8261 +93.7493 92.9157 79.3325 +93.5822 94.4458 80.639 +93.9225 96.5304 82.4188 +93.164 97.519 83.2629 +91.1704 97.2049 82.9948 +89.1911 96.8718 82.7103 +87.7363 97.084 82.8915 +87.8492 99.0499 84.57 +88.3099 101.468 86.6349 +87.7958 102.816 87.7855 +88.0634 105.126 89.7582 +88.5495 107.771 92.0159 +87.6753 108.808 92.9016 +87.6595 110.95 94.7307 +87.3474 112.773 96.2865 +87.95 115.851 98.915 +92.8218 124.77 106.53 +92.6956 127.177 108.585 +93.1891 130.528 111.446 +93.0023 133.022 113.576 +93.1347 136.062 116.172 +92.7503 138.437 118.199 +92.8538 141.634 120.929 +92.847 144.774 123.61 +92.689 147.787 126.182 +92.4689 150.809 128.762 +92.5595 154.461 131.881 +92.5733 158.127 135.011 +92.4699 161.734 138.09 +92.4861 165.702 141.478 +92.3032 169.471 144.697 +91.9659 173.11 147.803 +91.8086 177.251 151.339 +90.9179 180.125 153.793 +90.0033 183.073 156.31 +87.5914 183.02 156.264 +90.1612 193.63 165.324 +90.7358 200.406 171.109 +89.0991 202.515 172.909 +86.5248 202.52 172.914 +84.0172 202.651 173.026 +81.1331 201.82 172.316 +78.8711 202.496 172.893 +76.0759 201.769 172.272 +73.7043 202.119 172.572 +71.227 202.16 172.607 +68.8795 202.551 172.941 +66.1656 201.82 172.317 +63.8006 202.104 172.559 +61.3217 202.001 172.47 +58.9798 202.326 172.748 +56.3233 201.519 172.059 +54.0486 202.035 172.5 +51.5566 201.714 172.226 +49.24 202.048 172.511 +46.6419 201.169 171.76 +44.4803 202.146 172.594 +41.987 201.607 172.135 +39.7016 202.029 172.494 +37.2427 201.531 172.07 +34.9288 201.771 172.274 +32.5513 201.617 172.143 +30.2139 201.674 172.192 +27.8255 201.338 171.905 +25.5908 202.121 172.573 +23.1486 201.222 171.806 +20.8701 201.671 172.189 +18.4855 201.043 171.653 +16.2389 201.918 172.4 +13.8586 201.106 171.707 +11.594 201.95 172.428 +9.24139 201.26 171.838 +6.94736 201.769 172.273 +4.61791 201.2 171.787 +2.30817 201.146 171.741 +2.04281e-14 201.002 171.618 +-2.3073 201.07 171.676 +-4.61791 201.2 171.787 +-6.92642 201.161 171.754 +-9.2379 201.184 171.773 +-11.5504 201.191 171.779 +-13.8481 200.954 171.577 +-16.1534 200.854 171.492 +-18.4715 200.892 171.524 +-20.7917 200.913 171.542 +-23.0963 200.768 171.418 +-25.5046 201.439 171.991 +-27.7209 200.581 171.259 +-30.1007 200.919 171.547 +-32.3197 200.183 170.919 +-34.733 200.639 171.308 +-37.034 200.401 171.105 +-39.4356 200.674 171.338 +-41.7211 200.33 171.044 +-44.0347 200.121 170.865 +-46.312 199.746 170.545 +-48.912 200.702 171.362 +-51.0605 199.772 170.568 +-53.5104 200.022 170.782 +-55.8451 199.808 170.598 +-58.3738 200.247 170.973 +-60.6918 199.926 170.699 +-63.1937 200.181 170.917 +-65.4399 199.606 170.426 +-68.1785 200.49 171.181 +-70.2435 199.368 170.223 +-73.063 200.361 171.071 +-75.4144 200.014 170.774 +-77.9338 200.089 170.839 +-80.2268 199.565 170.391 +-83.1151 200.475 171.168 +-85.3505 199.771 170.567 +-88.2424 200.568 171.247 +-90.3126 199.471 170.311 +-93.1655 200.083 170.833 +-95.492 199.528 170.359 +-98.3733 200.098 170.846 +-100.988 200.076 170.828 +-103.72 200.248 170.974 +-105.976 199.481 170.319 +-108.912 199.965 170.732 +-111.241 199.305 170.169 +-114.321 199.953 170.722 +-116.53 199.048 169.95 +-119.598 199.582 170.406 +-119.516 194.921 166.426 +-122.394 195.15 166.621 +-124.454 194.057 165.688 +-127.791 194.925 166.429 +-132.52 197.796 168.881 +-139.679 204.06 174.229 +-142.062 203.192 173.488 +-143.386 200.838 171.478 +-143.358 196.686 167.933 +-143.344 192.683 164.515 +-144.75 190.67 162.796 +-149.927 193.568 165.271 +-157.344 199.15 170.037 +-462.098 573.479 489.643 +-469.985 572.003 488.383 +-482.334 575.79 491.616 +-164.644 192.811 164.625 +-167.347 192.282 164.173 +-170.778 192.551 164.403 +-492.037 544.461 464.867 +-492.071 534.447 456.317 +-493.365 526.022 449.124 +-478.692 501.07 427.819 +-479.903 493.228 421.124 +-482.595 487.048 415.848 +-484.209 479.905 409.749 +-486.619 473.677 404.431 +-487.927 466.501 398.304 +-490.052 460.231 392.951 +-491.816 453.734 387.403 +-494.882 448.53 382.961 +-143.073 127.398 108.774 +-142.168 124.378 106.195 +-141.999 122.062 104.218 +-143.127 120.889 103.217 +-142.144 117.972 100.726 +-141.515 115.411 98.5397 +-142.421 114.137 97.4514 +-148.379 116.853 99.7702 +-148.593 114.995 98.1845 +-514.349 391.166 333.982 +-515.466 385.232 328.916 +-519.004 381.163 325.442 +-520.601 375.715 320.79 +-522.772 370.741 316.543 +-524.278 365.357 311.946 +-527.113 360.947 308.181 +-528.688 355.722 303.72 +-531.24 351.202 299.861 +-533.197 346.329 295.7 +-535.465 341.703 291.75 +-536.511 336.346 287.176 +-544.857 335.549 286.495 +-559.721 338.594 289.096 +-563.27 334.68 285.754 +-571.928 333.753 284.962 +-568.229 325.642 278.037 +-544.05 306.162 261.405 +-547.785 302.673 258.426 +-554.168 300.617 256.67 +-557.105 296.665 253.296 +-559.252 292.311 249.578 +-561.839 288.205 246.073 +-385.756 194.177 165.791 +-383.272 189.29 161.618 +-382.731 185.432 158.324 +-383.063 182.039 155.427 +-381.471 177.781 151.791 +-382.211 174.654 149.122 +-383.511 171.802 146.687 +-381.484 167.502 143.015 +-381.912 164.327 140.304 +-384.833 162.228 138.512 +-135.865 56.1016 47.9002 +-2892.98 1169.83 998.812 +-382.745 151.527 129.376 +-380.638 147.496 125.934 +-379.721 143.981 122.932 +-382.707 141.955 121.203 +-584.334 211.963 180.977 +-587.378 208.302 177.851 +-381.82 132.332 112.987 +-381.862 129.298 110.396 +-382.139 126.365 107.892 +-382.102 123.348 105.316 +-381.747 120.255 102.675 +-380.424 116.891 99.8027 +-379.889 113.804 97.167 +-607.014 177.206 151.301 +-609.118 173.198 147.878 +-379.072 104.928 89.5887 +-378.471 101.925 87.0251 +-378.869 99.2119 84.7083 +-379.519 96.573 82.4552 +-622.276 153.767 131.288 +-378.626 90.7893 77.517 +-381.087 88.6067 75.6534 +-381.706 85.9882 73.4178 +-381.333 83.1576 71.001 +-382.272 80.6236 68.8374 +-381.154 77.6706 66.3161 +-382.031 75.138 64.1537 +-381.423 72.3238 61.751 +-381.072 69.5766 59.4054 +-380.589 66.8226 57.054 +-380.755 64.1954 54.8108 +-380.891 61.5712 52.5703 +-380.407 58.8591 50.2546 +-381.657 56.4193 48.1715 +-381.11 53.718 45.8651 +-381.121 51.1074 43.6361 +-380.41 48.413 41.3356 +-380.062 45.7795 39.0871 +-380.969 43.3004 36.9704 +-380.263 40.6434 34.7018 +-380.12 38.0586 32.4949 +-381.435 35.6179 30.411 +-381.83 33.0851 28.2484 +-380.305 30.3988 25.9548 +-380.341 27.8518 23.7802 +-380.945 25.3465 21.6411 +-381.221 22.8173 19.4817 +-381.468 20.2864 17.3208 +-380.788 17.7122 15.1229 +-380.078 15.1486 12.9341 +-379.938 12.6157 10.7714 +-380.468 10.1042 8.62713 +-148.849 2.96427 2.53093 +-146.278 1.94179 1.65793 +-145.594 0.966285 0.825026 +96.6 3.55271e-15 -1.7053e-13 +95.7964 0.640657 0.537083 +96.5853 1.29196 1.08309 +96.6669 1.93983 1.62622 +96.5412 2.58353 2.16586 +96.5081 3.22905 2.70702 +96.4676 3.87432 3.24797 +97.418 4.56608 3.82789 +96.3647 5.16392 4.32909 +96.4019 5.81417 4.87421 +96.332 6.45863 5.41448 +96.1553 7.09525 5.94818 +96.2697 7.75407 6.50049 +96.9726 8.46692 7.09809 +95.9792 9.03109 7.57106 +96.765 9.76263 8.18433 +96.6502 10.4093 8.72649 +96.429 11.0439 9.2585 +96.1021 11.6644 9.77868 +95.9656 12.3066 10.3171 +95.7233 12.9346 10.8435 +95.5724 13.5743 11.3798 +96.1995 14.3299 12.0132 +96.1306 14.988 12.5649 +95.8585 15.6143 13.09 +95.7746 16.2713 13.6408 +95.5857 16.9112 14.1772 +95.3895 17.5498 14.7126 +96.2533 18.391 15.4178 +96.0402 19.034 15.9568 +95.8198 19.6755 16.4946 +95.4958 20.295 17.014 +96.1262 21.123 17.7081 +95.5943 21.6997 18.1916 +95.6305 22.4055 18.7832 +96.1347 23.2284 19.4731 +95.8665 23.8705 20.0114 +96.4445 24.7295 20.7316 +96.8211 25.5482 21.4179 +96.715 26.2459 22.0028 +96.2245 26.8392 22.5002 +96.8519 27.75 23.2637 +96.5322 28.3967 23.8058 +97.0426 29.294 24.5581 +96.5198 29.8843 25.053 +96.3606 30.5874 25.6424 +96.1007 31.2605 26.2067 +96.5664 32.1771 26.9751 +96.379 32.8839 27.5677 +96.9109 33.845 28.3733 +95.6155 34.1679 28.6441 +96.9377 35.4329 29.7046 +96.3507 36.0126 30.1906 +96.9214 37.0317 31.0449 +96.496 37.6785 31.5871 +96.5955 38.5346 32.3048 +96.153 39.1792 32.8452 +96.582 40.1863 33.6895 +96.0332 40.7936 34.1986 +96.1743 41.6984 34.9571 +96.4752 42.6848 35.7841 +95.9855 43.3284 36.3236 +96.1742 44.2844 37.125 +95.581 44.8858 37.6292 +96.5927 46.2542 38.7764 +96.0623 46.8984 39.3165 +96.1116 47.8312 40.0984 +96.2304 48.8105 40.9194 +95.6709 49.4522 41.4574 +95.8459 50.4807 42.3196 +96.0046 51.5154 43.187 +95.4143 52.1555 43.7236 +95.3831 53.1069 44.5212 +95.3374 54.0618 45.3218 +95.5967 55.2046 46.2798 +95.6784 56.2616 47.166 +95.5069 57.1824 47.9379 +95.4782 58.2006 48.7915 +95.5112 59.2709 49.6888 +95.6043 60.3948 50.631 +94.9129 61.0319 51.165 +95.4309 62.4606 52.3627 +95.4708 63.5992 53.3173 +95.2672 64.5907 54.1485 +95.2712 65.738 55.1103 +95.1088 66.7868 55.9896 +95.076 67.943 56.9588 +95.4593 69.4203 58.1973 +95.3125 70.535 59.1318 +95.1476 71.6532 60.0692 +94.9644 72.7744 61.0092 +95.3938 74.3906 62.3641 +95.1682 75.5219 63.3125 +94.8553 76.6001 64.2164 +94.5932 77.7361 65.1687 +94.8529 79.3263 66.5018 +94.682 80.5838 67.5561 +94.6221 81.9602 68.7099 +94.4725 83.2836 69.8194 +94.6895 84.9611 71.2257 +94.3612 86.1781 72.2459 +94.1396 87.5153 73.3669 +94.2093 89.1545 74.7411 +94.3732 90.9201 76.2213 +93.7037 91.9102 77.0514 +94.2363 94.1142 78.899 +93.8831 95.4752 80.04 +94.2794 97.6394 81.8543 +91.6945 96.7167 81.0808 +90.9962 97.7627 81.9577 +88.5602 96.9236 81.2542 +87.9062 98.0172 82.171 +88.0729 100.063 83.8857 +88.1995 102.118 85.6087 +88.1771 104.054 87.2315 +88.2783 106.19 89.0226 +87.9666 107.881 90.4405 +88.1455 110.229 92.4089 +87.608 111.735 93.6707 +87.5504 113.901 95.4869 +87.75 116.473 97.6429 +90.7044 122.859 102.996 +93.1319 128.755 107.939 +92.7119 130.855 109.7 +92.8615 133.838 112.201 +92.7653 136.561 114.483 +92.7503 139.498 116.946 +92.8091 142.65 119.588 +92.7593 145.745 122.183 +92.689 148.919 124.844 +92.8492 152.589 127.921 +92.601 155.714 130.54 +92.5733 159.338 133.579 +92.4699 162.973 136.626 +92.4079 166.83 139.859 +92.265 170.699 143.102 +91.9285 174.365 146.176 +91.9552 178.894 149.973 +90.237 180.147 151.023 +89.7231 183.901 154.17 +87.0099 183.198 153.581 +90.9957 196.92 165.085 +90.5731 201.579 168.99 +88.528 202.758 169.979 +85.8758 202.541 169.797 +83.6564 203.327 170.455 +80.6361 202.12 169.444 +78.4166 202.872 170.074 +75.5246 201.842 169.21 +73.5974 203.373 170.494 +70.4764 201.563 168.977 +68.4038 202.694 169.925 +65.6576 201.805 169.18 +63.6139 203.056 170.229 +60.8268 201.906 169.264 +58.5469 202.38 169.661 +56.0322 202.014 169.355 +53.7097 202.306 169.6 +51.1941 201.83 169.201 +48.912 202.24 169.544 +46.3293 201.352 168.8 +44.1502 202.183 169.496 +41.6898 201.714 169.103 +39.4356 202.212 169.521 +37.0061 201.785 169.163 +34.733 202.176 169.491 +32.2954 201.565 168.978 +30.1234 202.61 169.855 +27.6269 201.432 168.867 +25.4279 202.373 169.656 +22.9568 201.084 168.576 +20.7132 201.688 169.082 +18.339 200.979 168.487 +16.1595 202.47 169.737 +13.7487 201.04 168.538 +11.5155 202.12 169.444 +9.1681 201.193 168.667 +6.88977 201.63 169.033 +4.57602 200.902 168.423 +2.29682 201.691 169.084 +1.86517e-14 201.316 168.77 +-2.29944 201.921 169.277 +-4.57428 200.825 168.359 +-6.90286 202.013 169.354 +-9.17159 201.27 168.731 +-11.5024 201.89 169.251 +-13.712 200.504 168.089 +-16.0924 201.629 169.032 +-18.3599 201.208 168.679 +-20.7289 201.842 169.21 +-22.9481 201.008 168.511 +-25.3033 201.381 168.824 +-27.5223 200.671 168.229 +-29.897 201.088 168.578 +-32.1979 200.956 168.468 +-34.5894 201.341 168.791 +-36.7417 200.343 167.954 +-39.1547 200.772 168.314 +-41.2987 199.822 167.517 +-43.9357 201.2 168.673 +-45.8605 199.314 167.092 +-48.4564 200.356 167.965 +-50.717 199.95 167.624 +-53.2113 200.428 168.026 +-55.3253 199.465 167.218 +-58.0275 200.584 168.156 +-60.0619 199.367 167.136 +-62.7735 200.373 167.979 +-65.077 200.021 167.684 +-67.7278 200.691 168.245 +-69.8294 199.712 167.425 +-72.6087 200.64 168.203 +-74.6426 199.484 167.234 +-77.3942 200.226 167.856 +-79.7298 199.848 167.539 +-82.5137 200.55 168.127 +-84.578 199.48 167.23 +-87.6395 200.724 168.273 +-89.7591 199.767 167.471 +-92.598 200.388 167.992 +-94.9106 199.833 167.527 +-97.7429 200.339 167.951 +-100.271 200.179 167.816 +-103.06 200.498 168.084 +-105.264 199.66 167.381 +-108.185 200.152 167.794 +-110.538 199.562 167.299 +-113.524 200.08 167.733 +-115.839 199.383 167.149 +-118.851 199.856 167.546 +-118.333 194.469 163.03 +-121.447 195.123 163.578 +-123.445 193.959 162.602 +-126.363 194.223 162.824 +-129.024 194.054 162.682 +-138.386 203.72 170.785 +-140.701 202.786 170.003 +-143.338 202.31 169.603 +-142.97 197.657 165.702 +-142.852 193.492 162.21 +-144.7 192.065 161.014 +-149.216 194.127 162.743 +-154.202 196.669 164.874 +-462.568 578.461 484.943 +-466.912 572.616 480.043 +-163.715 196.933 165.096 +-162.738 192.039 160.993 +-167.237 193.627 162.324 +-170.666 193.899 162.552 +-174.057 194.077 162.701 +-495.111 541.868 454.266 +-494.352 531.113 445.249 +-479.045 505.281 423.594 +-481.033 498.178 417.638 +-483.919 492.127 412.566 +-484.513 483.886 405.658 +-487.173 477.85 400.597 +-488.487 470.616 394.532 +-492.003 465.604 390.331 +-493.151 458.452 384.336 +-495.654 452.671 379.489 +-141.71 127.151 106.595 +-142.234 125.388 105.117 +-142.861 123.744 103.738 +-142.391 121.189 101.597 +-142.077 118.819 99.6101 +-142.06 116.744 97.8704 +-144.141 116.401 97.5825 +-148.657 117.969 98.897 +-512.785 399.884 335.236 +-515.693 395.193 331.303 +-516.964 389.312 326.373 +-520.083 384.882 322.659 +-521.689 379.385 318.051 +-524.161 374.575 314.018 +-526.047 369.399 309.679 +-528.45 364.636 305.686 +-529.212 358.803 300.796 +-532.599 354.798 297.439 +-533.197 348.983 292.564 +-536.461 344.961 289.192 +-537.977 339.849 284.907 +-559.701 347.331 291.179 +-561.991 342.573 287.19 +-563.743 337.527 282.96 +-565.502 332.531 278.772 +-577.493 333.487 279.573 +-557.877 316.348 265.205 +-548.271 305.263 255.912 +-554.413 303.054 254.06 +-558.334 299.598 251.163 +-560.241 295.071 247.368 +-562.585 290.799 243.786 +-383.838 194.692 163.217 +-384.782 191.491 160.534 +-383.743 187.346 157.059 +-384.081 183.92 154.186 +-379.681 178.302 149.476 +-382.382 176.071 147.606 +-382.391 172.614 144.708 +-379.925 168.095 140.92 +-382.26 165.737 138.942 +-381.946 162.245 136.015 +-133.668 55.6173 46.6258 +-136.415 55.5848 46.5985 +-381.858 152.334 127.707 +-381.44 148.939 124.861 +-382.674 146.212 122.574 +-379.92 142.001 119.044 +-2957.32 1080.97 906.21 +-588.194 210.189 176.209 +-381.365 133.187 111.655 +-381.497 130.164 109.121 +-381.956 127.272 106.696 +-381.733 124.174 104.099 +-381.008 120.942 101.39 +-380.702 117.872 98.816 +-379.889 114.676 96.1364 +-607.948 178.839 149.926 +-610.71 174.981 146.692 +-3078.9 858.777 719.94 +-378.753 102.784 86.167 +-379.815 100.222 84.0193 +-380.467 97.5566 81.7849 +-623.513 155.253 130.154 +-376.909 91.0703 76.3472 +-381.661 89.4204 74.9641 +-381.227 86.5382 72.5478 +-380.756 83.6683 70.1419 +-381.405 81.0574 67.9531 +-381.541 78.3454 65.6795 +-382.322 75.7713 63.5216 +-381.132 72.8223 61.0493 +-381.363 70.1635 58.8203 +-381.271 67.4552 56.5499 +-381.732 64.8532 54.3686 +-381.478 62.1386 52.0928 +-380.701 59.3559 49.76 +-381.755 56.8663 47.6728 +-381.405 54.1715 45.4138 +-381.711 51.5789 43.2402 +-381.693 48.9483 41.035 +-380.655 46.2021 38.7327 +-381.463 43.6888 36.6257 +-381.451 41.0828 34.441 +-381.508 38.4903 32.2676 +-380.641 35.8161 30.0258 +-380.935 33.2605 27.8834 +-380.504 30.6477 25.693 +-380.64 28.0872 23.5464 +-381.642 25.5874 21.4508 +-380.922 22.9741 19.2599 +-381.169 20.4258 17.1236 +-379.291 17.7777 14.9036 +-380.478 15.2807 12.8103 +-380.537 12.7323 10.6739 +-380.068 10.171 8.52669 +-148.749 2.98497 2.5024 +-146.278 1.95667 1.64034 +-146.094 0.977037 0.819082 +96.6 3.55271e-15 -1.7053e-13 +95.6964 0.644802 0.530727 +96.5853 1.30168 1.07139 +96.5669 1.9524 1.60699 +96.5412 2.60297 2.14246 +96.3082 3.2466 2.67223 +96.5675 3.90751 3.21621 +96.4198 4.55329 3.74775 +96.4644 5.20815 4.28675 +96.3022 5.85185 4.81657 +96.2324 6.50048 5.35045 +96.1553 7.14863 5.88393 +96.9659 7.86884 6.47673 +96.9726 8.53061 7.02142 +96.9718 9.19307 7.56668 +95.8727 9.74535 8.02125 +96.5511 10.4769 8.62339 +96.429 11.127 9.15849 +96.1021 11.7522 9.67305 +95.9656 12.3992 10.2056 +95.7233 13.0319 10.7264 +95.5724 13.6764 11.2569 +96.1995 14.4377 11.8835 +96.1306 15.1007 12.4292 +95.9563 15.7478 12.9618 +95.7746 16.3937 13.4934 +95.4883 17.0211 14.0098 +96.4591 17.8801 14.7169 +96.1563 18.5107 15.2359 +96.0402 19.1771 15.7844 +95.7232 19.8036 16.3 +96.363 20.6334 16.9831 +96.1262 21.2819 17.5168 +95.7861 21.9068 18.0312 +96.3955 22.7546 18.729 +96.993 23.6122 19.4348 +95.8665 24.05 19.7952 +96.2549 24.8665 20.4673 +96.1592 25.5644 21.0417 +96.715 26.4433 21.7651 +96.1306 27.0147 22.2354 +96.4772 27.8507 22.9235 +96.5322 28.6103 23.5487 +96.8565 29.4577 24.2462 +96.5198 30.1091 24.7824 +96.3606 30.8175 25.3654 +96.0087 31.4656 25.8988 +96.5664 32.4191 26.6837 +96.4704 33.1627 27.2957 +96.0009 33.7794 27.8033 +96.5218 34.7512 28.6032 +96.2156 35.4335 29.1648 +96.5305 36.3512 29.9202 +96.7424 37.2414 30.6528 +96.496 37.9619 31.2459 +95.8859 38.5393 31.7211 +96.2413 39.5101 32.5202 +95.7911 40.1571 33.0527 +96.0332 41.1004 33.8292 +96.3484 42.0881 34.6421 +95.6958 42.6584 35.1115 +95.8993 43.6151 35.8989 +96.0885 44.5777 36.6913 +95.581 45.2234 37.2227 +96.4231 46.5203 38.2902 +96.0623 47.2512 38.8918 +96.1116 48.191 39.6653 +96.2304 49.1777 40.4774 +95.6709 49.8242 41.0096 +95.8459 50.8604 41.8625 +96.0046 51.9029 42.7205 +95.3329 52.5029 43.2144 +95.3831 53.5063 44.0403 +95.3374 54.4685 44.8322 +95.5967 55.6199 45.7799 +95.5197 56.5909 46.5791 +95.4281 57.565 47.3809 +95.5565 58.6864 48.3039 +95.589 59.7654 49.192 +94.8327 60.358 49.6798 +94.8363 61.4414 50.5715 +95.4309 62.9304 51.7971 +95.4708 64.0776 52.7413 +95.2672 65.0765 53.5636 +95.2712 66.2325 54.515 +95.1825 67.3414 55.4277 +95.0028 68.4014 56.3002 +95.5318 69.9956 57.6123 +95.3125 71.0656 58.4931 +95.2189 72.2463 59.4649 +94.9644 73.3219 60.3502 +95.3938 74.9502 61.6904 +95.1682 76.09 62.6286 +94.9241 77.2322 63.5687 +94.6614 78.3773 64.5112 +94.988 80.0365 65.8769 +95.0835 81.5344 67.1097 +94.7547 82.6925 68.063 +94.4725 83.9101 69.0652 +94.17 85.1308 70.0699 +94.7469 87.1815 71.7578 +94.2668 88.2933 72.6729 +94.2722 89.8846 73.9827 +94.1865 91.4234 75.2493 +93.7037 92.6016 76.219 +93.384 93.9644 77.3407 +93.5822 95.8854 78.9218 +93.8036 97.8774 80.5614 +91.6357 97.3817 80.1534 +90.4155 97.8697 80.5551 +89.1911 98.3484 80.9491 +88.6426 99.5822 81.9646 +88.017 100.752 82.9274 +87.8132 102.435 84.3128 +88.1226 104.771 86.2358 +87.9022 106.533 87.6861 +87.8606 108.562 89.3555 +87.623 110.401 90.8693 +87.8655 112.906 92.9315 +88.0072 115.356 94.948 +87.9 117.55 96.7534 +88.0453 120.154 98.897 +90.6594 126.28 103.939 +92.7597 131.907 108.571 +92.392 134.163 110.428 +93.0885 138.067 113.641 +92.7049 140.479 115.626 +92.7645 143.654 118.24 +92.7155 146.772 120.806 +92.689 150.04 123.495 +92.3844 152.967 125.905 +92.601 156.886 129.13 +92.4512 160.325 131.962 +92.5497 164.341 135.267 +92.4861 168.227 138.465 +92.265 171.983 141.556 +92.2656 176.32 145.127 +91.8819 180.097 148.235 +89.5203 180.06 148.204 +88.7075 183.187 150.779 +87.694 186.027 153.116 +90.929 198.256 163.182 +90.0522 201.927 166.203 +87.8299 202.673 166.817 +85.0106 202.009 166.27 +82.8444 202.868 166.978 +79.9052 201.794 166.094 +77.8486 202.917 167.018 +75.0009 201.949 166.222 +72.6888 202.372 166.57 +70.0106 201.736 166.046 +67.6777 202.05 166.305 +64.956 201.15 165.564 +62.8902 202.256 166.474 +60.1744 201.243 165.64 +58.2006 202.696 166.836 +55.45 201.419 165.785 +53.3309 202.39 166.584 +50.698 201.377 165.751 +48.6022 202.47 166.65 +45.982 201.346 165.725 +43.8862 202.485 166.663 +41.3143 201.4 165.77 +39.1843 202.435 166.621 +36.6443 201.315 165.7 +34.485 202.243 166.464 +31.9541 200.936 165.387 +29.8064 201.986 166.252 +27.4074 201.335 165.716 +25.2074 202.127 166.368 +22.7999 201.213 165.615 +20.5641 201.743 166.052 +18.1995 200.949 165.399 +16.0008 201.989 166.255 +13.6178 200.624 165.131 +11.4283 202.098 166.344 +9.08085 200.777 165.257 +6.84265 201.757 166.063 +4.53239 200.483 165.015 +2.27588 201.356 165.733 +2.13163e-14 200.746 165.231 +-2.2785 201.587 165.923 +-4.54461 201.024 165.46 +-6.8348 201.526 165.873 +-9.08434 200.854 165.32 +-11.3934 201.48 165.835 +-13.6283 200.779 165.258 +-15.952 201.373 165.747 +-18.1646 200.565 165.082 +-20.5092 201.204 165.608 +-22.7041 200.366 164.919 +-25.1691 201.82 166.115 +-27.261 200.26 164.831 +-29.7272 201.45 165.81 +-31.7592 199.709 164.378 +-34.3023 201.172 165.582 +-36.4077 200.015 164.63 +-38.8295 200.602 165.113 +-41.0484 200.104 164.703 +-43.5726 201.038 165.472 +-45.5826 199.597 164.285 +-48.1284 200.497 165.026 +-50.2209 199.482 164.191 +-52.8325 200.499 165.027 +-54.9303 199.531 164.231 +-57.5946 200.585 165.099 +-59.702 199.663 164.34 +-62.3533 200.529 165.053 +-64.1819 198.753 163.591 +-67.1018 200.332 164.89 +-69.0529 198.977 163.775 +-72.1009 200.736 165.223 +-73.9259 199.055 163.839 +-76.9682 200.622 165.129 +-78.8819 199.21 163.967 +-81.7018 200.07 164.675 +-83.7127 198.924 163.732 +-86.878 200.476 165.009 +-88.7824 199.08 163.86 +-92.0973 200.803 165.278 +-94.0213 199.45 164.164 +-97.1125 200.544 165.065 +-99.3038 199.738 164.401 +-101.924 199.78 164.436 +-104.365 199.443 164.159 +-107.611 200.587 165.1 +-109.483 199.143 163.912 +-112.487 199.744 164.407 +-114.74 198.978 163.776 +-116.487 197.355 162.44 +-117.15 193.974 159.657 +-120.156 194.501 160.091 +-122.086 193.267 159.075 +-124.311 192.507 158.449 +-127.98 193.932 159.622 +-132.106 195.939 161.274 +-139.574 202.676 166.82 +-143.1 203.492 167.491 +-143.552 199.954 164.579 +-143.098 195.283 160.735 +-143.4 191.771 157.844 +-147.237 192.993 158.85 +-149.928 192.655 158.571 +-463.717 584.261 480.897 +-466.488 576.4 474.426 +-1760.46 2133.59 1756.13 +-162.411 193.096 158.934 +-1808.42 2109.55 1736.34 +-168.708 193.118 158.953 +-494.812 555.878 457.535 +-173.908 191.764 157.838 +-479.254 518.765 426.988 +-480.75 510.894 420.509 +-482.52 503.477 414.404 +-485.003 496.938 409.022 +-486.4 489.425 402.838 +-488.897 483.148 397.672 +-490.044 475.666 391.514 +-493.576 470.606 387.349 +-494.742 463.39 381.41 +-141.863 130.536 107.442 +-142.489 128.811 106.023 +-143.021 127.031 104.557 +-142.993 124.79 102.713 +-141.99 121.756 100.216 +-142.414 119.998 98.7686 +-145.47 120.446 99.1372 +-147.996 120.413 99.1099 +-513.63 410.664 338.011 +-514.397 404.159 332.657 +-517.885 399.858 329.117 +-518.39 393.323 323.739 +-521.377 388.742 319.968 +-523.067 383.248 315.446 +-526.282 378.92 311.883 +-526.711 372.647 306.72 +-529.862 368.36 303.192 +-531.234 362.883 298.684 +-534.334 358.632 295.185 +-535.63 353.213 290.724 +-538.529 348.896 287.171 +-545.153 346.973 285.588 +-561.099 350.818 288.753 +-562.304 345.342 284.246 +-566.737 341.873 281.391 +-568.12 336.584 277.037 +-571.184 332.325 273.532 +-575.963 329.061 270.846 +-575.13 322.627 265.549 +-551.97 303.988 250.208 +-558.334 301.852 248.45 +-562.219 298.34 245.56 +-564.823 294.153 242.113 +-565.625 289.057 237.919 +-383.44 192.259 158.246 +-384.418 189.088 155.635 +-383.063 184.813 152.117 +-380.619 180.087 148.227 +-379.897 176.243 145.063 +-380.582 173.089 142.467 +-381.484 170.055 139.97 +-382.26 166.983 137.441 +-381.772 163.391 134.485 +-2879.44 1207.11 993.552 +-135.532 55.6404 45.7968 +-384.342 154.478 127.149 +-380.994 149.884 123.368 +-381.063 146.692 120.74 +-381.538 143.679 118.26 +-382.877 141.003 116.057 +-589.825 212.358 174.789 +-386.006 135.822 111.793 +-381.314 131.081 107.891 +-382.597 128.445 105.721 +-381.733 125.108 102.974 +-382.671 122.383 100.732 +-378.476 118.065 97.1773 +-3048.51 927.167 763.137 +-610.095 180.82 148.83 +-612.115 176.703 145.442 +-614.841 172.783 142.215 +-379.319 103.711 85.3633 +-378.397 100.598 82.801 +-3107.18 802.712 660.701 +-3116.14 781.742 643.44 +-379.007 92.2658 75.9426 +-381.279 90.0027 74.0799 +-381.706 87.2989 71.8544 +-381.813 84.5317 69.5768 +-381.116 81.6054 67.1682 +-382.024 79.0343 65.052 +-381.547 76.1867 62.7081 +-380.259 73.202 60.2515 +-381.072 70.6371 58.1404 +-380.979 67.9106 55.8962 +-380.755 65.1739 53.6437 +-379.717 62.3171 51.2923 +-381.289 59.8948 49.2986 +-381.068 57.191 47.073 +-381.208 54.5508 44.9 +-381.121 51.8864 42.7069 +-380.706 49.1892 40.4869 +-381.248 46.6222 38.374 +-380.573 43.9147 36.1456 +-381.055 41.3488 34.0336 +-380.12 38.6387 31.8029 +-381.435 36.1608 29.7634 +-380.637 33.4845 27.5606 +-381.001 30.9186 25.4487 +-380.042 28.2541 23.2555 +-381.642 25.7799 21.2191 +-380.623 23.1287 19.0369 +-380.271 20.531 16.8988 +-381.687 18.0246 14.8358 +-380.078 15.3795 12.6586 +-381.736 12.8686 10.5919 +-381.867 10.296 8.4745 +-148.149 2.99529 2.46538 +-146.278 1.97139 1.62262 +-145.794 0.982364 0.808569 +95.7 0 -1.7053e-13 +96.5963 0.655672 0.529825 +96.3853 1.30858 1.05741 +96.5669 1.96682 1.58931 +96.3413 2.61676 2.11451 +96.5081 3.27736 2.64832 +96.5675 3.93636 3.18083 +96.5196 4.59166 3.71035 +96.3647 5.24119 4.23521 +96.4019 5.90116 4.76851 +97.2286 6.61628 5.34637 +97.1507 7.27597 5.87944 +96.9659 7.92695 6.40548 +96.0784 8.51442 6.88019 +96.8725 9.25147 7.47577 +95.8727 9.81732 7.93301 +96.6502 10.5651 8.53726 +96.429 11.2092 9.05773 +96.1021 11.839 9.56664 +96.7546 12.5935 10.1764 +95.7233 13.1282 10.6084 +96.359 13.8908 11.2247 +96.1995 14.5443 11.7527 +96.0326 15.1967 12.2799 +95.9563 15.8641 12.8192 +95.7746 16.5148 13.345 +95.5857 17.1643 13.8698 +95.4867 17.8305 14.4082 +96.2533 18.6662 15.0835 +95.9434 19.2993 15.5951 +96.5926 20.1309 16.2671 +96.363 20.7858 16.7962 +96.1262 21.4391 17.3241 +95.882 22.0907 17.8507 +96.3955 22.9226 18.5229 +96.1347 23.576 19.0509 +95.8665 24.2276 19.5774 +96.4445 25.0995 20.282 +95.9701 25.7026 20.7693 +96.5265 26.5866 21.4837 +96.1306 27.2142 21.9908 +96.8519 28.1652 22.7593 +96.1588 28.7101 23.1996 +96.8565 29.6753 23.9795 +96.7053 30.3898 24.5569 +97.0074 31.2534 25.2547 +96.8371 31.9714 25.8349 +96.5664 32.6585 26.3901 +96.4704 33.4076 26.9955 +96.0919 34.0611 27.5235 +96.3405 34.9421 28.2354 +96.9377 35.9631 29.0604 +96.5305 36.6197 29.591 +96.116 37.2734 30.1193 +96.3178 38.1716 30.8451 +96.5955 39.1112 31.6043 +96.2413 39.8019 32.1624 +95.7911 40.4536 32.6891 +96.0332 41.4039 33.457 +96.3484 42.3989 34.261 +96.6484 43.4013 35.0709 +96.6748 44.2925 35.7911 +96.1742 44.947 36.32 +96.3483 45.9231 37.1088 +96.4231 46.8639 37.869 +95.8093 47.4747 38.3626 +96.1116 48.5469 39.2289 +95.5633 49.1974 39.7546 +95.7538 50.2356 40.5936 +95.8459 51.236 41.4019 +95.2674 51.8846 41.9261 +95.4958 52.981 42.812 +95.3831 53.9015 43.5558 +95.4982 54.9632 44.4137 +95.5967 56.0306 45.2763 +95.5197 57.0088 46.0667 +95.5069 58.038 46.8984 +95.5565 59.1198 47.7725 +95.589 60.2067 48.6508 +95.5271 61.249 49.4931 +95.4491 62.295 50.3383 +95.507 63.4457 51.2681 +95.3953 64.4998 52.1199 +95.3421 65.6086 53.0159 +95.2712 66.7216 53.9153 +95.1088 67.7861 54.7755 +95.0028 68.9066 55.6809 +95.4593 70.459 56.9353 +95.3125 71.5904 57.8496 +95.1476 72.7253 58.7667 +94.9644 73.8633 59.6862 +95.3237 75.4483 60.9669 +95.1682 76.6519 61.9396 +94.9241 77.8026 62.8694 +94.5932 78.8993 63.7556 +94.988 80.6275 65.1521 +95.1504 82.194 66.418 +94.7547 83.3032 67.3142 +94.4725 84.5298 68.3054 +94.6895 86.2324 69.6812 +94.3612 87.4675 70.6793 +94.3304 89.0052 71.9218 +94.2722 90.5484 73.1688 +93.9375 91.8551 74.2247 +93.8884 93.4698 75.5295 +93.8101 95.0907 76.8393 +94.0035 97.0282 78.4049 +92.138 96.8493 78.2604 +89.8724 96.2131 77.7463 +88.4991 96.5024 77.9801 +88.3308 98.1187 79.2861 +88.2461 99.8688 80.7003 +88.1847 101.689 82.171 +88.3099 103.776 83.8573 +88.1771 105.61 85.3399 +87.8485 107.255 86.6686 +88.0196 109.562 88.5328 +88.1455 111.879 90.4051 +87.3505 113.073 91.3705 +88.667 117.08 94.608 +87.6 118.014 95.3628 +87.4052 120.161 97.0975 +87.3627 122.586 99.0572 +93.1891 133.496 107.873 +93.0023 136.047 109.934 +93.1347 139.156 112.447 +93.1589 142.209 114.914 +92.8091 144.784 116.995 +92.6717 147.786 119.42 +92.6029 151.007 122.023 +92.8492 154.872 125.147 +92.5595 157.974 127.653 +92.4919 161.58 130.567 +92.111 164.77 133.145 +92.4079 169.326 136.826 +92.265 173.253 139.999 +91.9659 177.046 143.064 +91.3321 180.341 145.727 +89.9145 182.188 147.219 +88.0071 183.083 147.943 +91.1484 194.783 157.397 +90.9624 199.794 161.446 +89.1406 201.359 162.711 +86.878 201.957 163.194 +84.1762 201.503 162.827 +81.822 201.844 163.103 +79.1743 201.425 162.764 +76.883 201.88 163.132 +74.0638 200.899 162.339 +71.8604 201.544 162.86 +69.1306 200.672 162.155 +67.0768 201.736 163.015 +64.3754 200.825 162.279 +62.3299 201.935 163.176 +59.657 200.986 162.409 +57.508 201.763 163.037 +54.8679 200.776 162.24 +52.8724 202.132 163.335 +50.2018 200.879 162.323 +48.0737 201.748 163.025 +45.5306 200.841 162.292 +43.4405 201.909 163.155 +40.7512 200.123 161.712 +38.7704 201.776 163.048 +36.1015 199.798 161.45 +34.1195 201.578 162.888 +31.6373 200.412 161.945 +29.4894 201.314 162.675 +27.1251 200.733 162.205 +24.8911 201.064 162.473 +22.521 200.219 161.79 +20.3444 201.062 162.471 +17.9623 199.796 161.448 +15.8299 201.307 162.669 +13.4922 200.242 161.808 +11.3149 201.569 162.881 +8.98662 200.161 161.743 +6.77198 201.148 162.54 +4.47654 199.475 161.189 +2.25406 200.898 162.338 +1.86517e-14 200.05 161.653 +-2.25668 201.131 162.527 +-4.48003 199.631 161.314 +-6.76936 201.07 162.477 +-8.96219 199.618 161.304 +-11.2843 201.026 162.441 +-13.4817 200.087 161.683 +-15.7933 200.841 162.292 +-17.9902 200.106 161.698 +-20.368 201.295 162.659 +-22.46 199.676 161.351 +-24.9007 201.142 162.536 +-26.9683 199.573 161.268 +-29.4102 200.774 162.238 +-31.4423 199.177 160.947 +-33.9368 200.498 162.015 +-36.018 199.335 161.076 +-38.4304 200.007 161.618 +-40.4383 198.586 160.47 +-42.9784 199.762 161.42 +-45.027 198.62 160.497 +-47.6364 199.913 161.542 +-49.7057 198.894 160.719 +-52.354 200.15 161.734 +-54.4105 199.102 160.887 +-56.9236 199.713 161.38 +-59.0721 199.016 160.817 +-61.723 199.969 161.587 +-63.698 198.712 160.572 +-66.3257 199.476 161.189 +-68.3282 198.342 160.273 +-71.1923 199.67 161.346 +-73.1817 198.506 160.406 +-75.9457 199.419 161.143 +-78.151 198.821 160.66 +-80.9199 199.619 161.304 +-83.002 198.692 160.556 +-86.053 200.039 161.644 +-87.8708 198.491 160.393 +-91.0959 200.087 161.683 +-93.1321 199.022 160.822 +-95.9918 199.694 161.365 +-98.157 198.89 160.715 +-101.264 199.952 161.574 +-103.054 198.392 160.313 +-106.271 199.553 161.252 +-108.467 198.753 160.605 +-111.41 199.293 161.042 +-113.642 198.53 160.424 +-116.985 199.661 161.339 +-119.474 199.283 161.033 +-119.036 194.112 156.855 +-121.21 193.297 156.196 +-124.088 193.58 156.425 +-126.391 192.938 155.906 +-129.844 194.004 156.768 +-138.4 202.456 163.597 +-141.859 203.217 164.212 +-143.746 201.703 162.989 +-143.148 196.793 159.021 +-142.75 192.311 155.4 +-144.445 190.732 154.124 +-148.279 191.944 155.103 +-156.906 199.154 160.929 +-468.078 582.635 470.806 +-163.232 199.29 161.039 +-165.352 198.043 160.032 +-164.422 193.217 156.132 +-166.416 191.9 155.068 +-170.771 193.263 156.169 +-172.532 191.651 154.866 +-480.009 523.419 422.956 +-483.336 517.435 418.121 +-484.245 509.008 411.311 +-487.109 502.782 406.28 +-488.348 495.014 400.002 +-491.359 489.167 395.278 +-492.845 481.918 389.42 +-495.149 475.592 384.308 +-142.291 134.258 108.489 +-142.377 131.976 106.645 +-142.424 129.704 104.809 +-142.299 127.324 102.885 +-142.132 124.954 100.971 +-141.923 122.598 99.0666 +-143.022 121.401 98.0994 +-148.471 123.838 100.069 +-148.478 121.697 98.3388 +-515.575 415.263 335.559 +-516.36 408.697 330.253 +-519.653 404.186 326.608 +-520.174 397.59 321.278 +-523.895 393.505 317.977 +-524.446 387.096 312.798 +-527.672 382.726 309.267 +-528.849 376.923 304.577 +-532.612 373.007 301.413 +-533.706 367.264 296.773 +-536.674 362.862 293.216 +-537.683 357.185 288.628 +-551.629 360.021 290.92 +-560.277 359.232 290.282 +-563.275 354.779 286.684 +-565.2 349.683 282.566 +-569.023 345.786 279.417 +-570.262 340.348 275.023 +-572.861 335.762 271.317 +-576.124 331.583 267.94 +-585.809 331.043 267.504 +-561.984 311.788 251.945 +-556.86 303.278 245.067 +-563.702 301.337 243.499 +-566.316 297.108 240.082 +-568.126 292.48 236.342 +-384.027 193.976 156.745 +-383.237 189.899 153.45 +-383.318 186.302 150.544 +-381.642 181.904 146.99 +-379.382 177.304 143.273 +-380.323 174.248 140.804 +-382.09 171.583 138.65 +-381.825 168.025 135.775 +-380.722 164.145 132.64 +-383.164 161.814 130.756 +-134.561 55.6497 44.9684 +-137.132 55.5243 44.8671 +-381.796 151.309 122.268 +-381.332 147.879 119.496 +-381.538 144.74 116.959 +-381.342 141.475 114.321 +-383.912 139.243 112.517 +-593.295 210.302 169.937 +-382.227 132.365 106.959 +-382.139 129.239 104.433 +-381.733 126.032 101.842 +-382.024 123.079 99.4557 +-381.814 119.986 96.9561 +-608.028 186.29 150.534 +-3058.88 913.285 737.992 +-612.865 178.226 144.018 +-616.908 174.644 141.123 +-380.639 104.84 84.7177 +-621.584 166.472 134.52 +-622.574 162.024 130.926 +-379.757 95.9728 77.5521 +-381.296 93.5087 75.5609 +-380.227 90.4169 73.0626 +-381.706 87.9435 71.0639 +-381.333 85.0486 68.7246 +-382.272 82.4569 66.6304 +-382.024 79.618 64.3363 +-380.676 76.574 61.8766 +-380.841 73.8555 59.6799 +-381.655 71.2677 57.5888 +-380.979 68.4121 55.2813 +-381.732 65.8236 53.1896 +-381.184 63.0199 50.924 +-380.113 60.151 48.6058 +-381.068 57.6133 46.5552 +-381.11 54.9395 44.3946 +-380.825 52.2291 42.2044 +-381.988 49.7192 40.1763 +-380.359 46.8569 37.8634 +-381.167 44.3079 35.8036 +-381.352 41.6867 33.6855 +-381.805 39.0966 31.5925 +-382.23 36.5036 29.4972 +-380.935 33.7582 27.2787 +-380.305 31.09 25.1227 +-379.744 28.4404 22.9817 +-380.945 25.9228 20.9473 +-380.324 23.2812 18.8127 +-379.972 20.6663 16.6997 +-380.589 18.1055 14.6304 +-381.277 15.5419 12.5589 +-380.537 12.9228 10.4425 +-380.468 10.334 8.35053 +-148.149 3.01741 2.43826 +-148.877 2.02124 1.63329 +-146.494 0.994371 0.803514 +96.6 3.55271e-15 -1.7053e-13 +96.5963 0.660425 0.523889 +96.3853 1.31806 1.04557 +96.5669 1.98107 1.57151 +96.5412 2.6412 2.09516 +96.5081 3.30112 2.61865 +96.4676 3.96079 3.14194 +96.4198 4.62016 3.66499 +96.3647 5.27918 4.18777 +96.3022 5.93779 4.71022 +96.332 6.60278 5.23773 +96.2548 7.26112 5.75996 +97.0653 7.99263 6.34024 +96.0784 8.57613 6.80311 +96.8725 9.31852 7.39202 +95.8727 9.88847 7.84414 +96.6502 10.6417 8.44162 +96.429 11.2904 8.95626 +96.1021 11.9248 9.45946 +95.867 12.5684 9.97 +95.7233 13.2233 10.4896 +96.359 13.9915 11.0989 +96.1995 14.6497 11.6211 +96.1306 15.3225 12.1547 +95.8585 15.9628 12.6626 +95.7746 16.6345 13.1955 +95.5857 17.2887 13.7144 +95.4867 17.9598 14.2468 +96.1563 18.7825 14.8994 +95.9434 19.4392 15.4204 +95.8198 20.1146 15.9561 +96.363 20.9364 16.6081 +96.03 21.5729 17.1129 +95.882 22.2508 17.6507 +96.3955 23.0888 18.3154 +96.1347 23.7469 18.8375 +95.8665 24.4032 19.3581 +96.4445 25.2815 20.0548 +95.9701 25.8889 20.5366 +96.4322 26.7531 21.2222 +96.2245 27.4383 21.7657 +96.4772 28.2597 22.4173 +96.1588 28.9182 22.9397 +95.833 29.5745 23.4603 +96.7053 30.6101 24.2818 +96.3606 31.27 24.8053 +96.0087 31.9277 25.327 +96.4747 32.864 26.0697 +96.379 33.6179 26.6677 +96.0919 34.308 27.2152 +96.5218 35.2616 27.9716 +96.1253 35.9201 28.4941 +96.5305 36.8851 29.2595 +96.7424 37.7883 29.976 +96.3178 38.4483 30.4995 +96.0633 39.1777 31.0781 +96.2413 40.0904 31.8021 +95.7911 40.7468 32.3229 +96.8204 42.0458 33.3533 +95.5651 42.359 33.6017 +96.4752 43.6375 34.6159 +96.6748 44.6135 35.3901 +96.1742 45.2727 35.9131 +96.4336 46.2969 36.7256 +96.5927 47.2866 37.5106 +95.8936 47.861 37.9663 +96.1116 48.8987 38.7895 +95.5633 49.554 39.3093 +95.6709 50.5559 40.1041 +95.8459 51.6074 40.9381 +96.0046 52.6652 41.7772 +95.4143 53.3195 42.2963 +96.1921 54.7526 43.4331 +95.5786 55.4082 43.9531 +95.5967 56.4367 44.7691 +95.6784 57.5173 45.6263 +95.5069 58.4587 46.373 +95.5565 59.5483 47.2374 +95.589 60.6431 48.1058 +95.6043 61.7428 48.9782 +94.9129 62.3941 49.4948 +95.507 63.9055 50.6938 +95.3953 64.9673 51.536 +95.2672 66.0323 52.3808 +95.1969 67.1528 53.2697 +95.1088 68.2774 54.1618 +94.9297 69.3526 55.0147 +95.4593 70.9696 56.2975 +95.3125 72.1093 57.2015 +95.0763 73.1975 58.0647 +94.8937 74.3433 58.9736 +95.3938 76.0509 60.3283 +95.1682 77.2075 61.2457 +94.8553 78.3098 62.1201 +94.6614 79.5283 63.0867 +94.988 81.2119 64.4223 +94.5482 82.2656 65.2581 +94.8209 83.9657 66.6067 +94.5381 85.202 67.5874 +94.6895 86.8574 68.9006 +94.2327 87.9816 69.7924 +94.394 89.7107 71.164 +94.2722 91.2047 72.3491 +93.813 92.3978 73.2956 +93.7652 94.0235 74.5852 +93.9319 95.9037 76.0767 +93.8831 97.6061 77.4271 +91.3053 96.6699 76.6845 +90.4014 97.4808 77.3277 +88.2668 96.9473 76.9045 +88.3308 98.8299 78.3979 +88.5293 100.915 80.0522 +88.5762 102.881 81.6115 +88.4755 104.724 83.0732 +87.7958 105.916 84.0191 +88.2783 108.56 86.1165 +88.0726 110.422 87.5938 +88.041 112.556 89.2867 +88.3805 115.236 91.4121 +87.9056 116.916 92.7445 +87.7 119.005 94.402 +87.7499 121.509 96.3882 +87.3142 123.406 97.8934 +91.7576 132.399 105.027 +92.8615 136.825 108.538 +93.0885 140.095 111.132 +92.7957 142.681 113.183 +92.8091 145.834 115.684 +92.6717 148.857 118.083 +92.5168 151.96 120.544 +92.4689 155.356 123.238 +92.601 159.19 126.279 +92.2072 162.251 128.707 +92.111 165.964 131.653 +92.3688 170.481 135.236 +92.2267 174.436 138.374 +91.891 178.183 141.346 +90.3426 179.68 142.533 +88.9111 181.461 143.946 +86.9915 182.282 144.597 +91.0116 195.9 155.4 +90.6286 200.503 159.051 +88.3266 200.967 159.419 +86.1799 201.786 160.069 +82.9402 199.983 158.639 +81.0703 201.439 159.794 +78.0925 200.113 158.742 +76.1445 201.39 159.755 +73.292 200.246 158.847 +71.3526 201.57 159.898 +68.587 200.537 159.078 +66.3257 200.922 159.384 +63.7222 200.228 158.833 +61.6763 201.265 159.656 +58.8922 199.847 158.531 +56.8154 200.778 159.269 +54.3481 200.316 158.903 +52.2942 201.37 159.739 +49.6867 200.259 158.858 +47.6181 201.285 159.671 +45.0617 200.214 158.822 +42.9619 201.132 159.55 +40.454 200.102 158.734 +38.3565 201.069 159.5 +35.8649 199.927 158.594 +33.7671 200.942 159.399 +31.3204 199.842 158.527 +29.2177 200.906 159.371 +26.7906 199.695 158.41 +24.6515 200.573 159.106 +22.3119 199.797 158.491 +20.1561 200.645 159.164 +17.8088 199.524 158.275 +15.6834 200.89 159.358 +13.3457 199.503 158.258 +11.1927 200.839 159.318 +8.89588 199.577 158.317 +6.70392 200.569 159.104 +4.43989 199.276 158.078 +2.23225 200.395 158.966 +2.04281e-14 199.463 158.226 +-2.23312 200.474 159.028 +-4.43815 199.198 158.016 +-6.69868 200.413 158.98 +-8.86796 198.95 157.819 +-11.1709 200.447 159.007 +-13.3509 199.581 158.32 +-15.6284 200.186 158.8 +-17.7809 199.212 158.027 +-20.0855 199.942 158.606 +-22.2334 199.094 157.934 +-24.6324 200.417 158.983 +-26.6652 198.76 157.669 +-29.2177 200.906 159.371 +-31.2229 199.22 158.034 +-33.6627 200.32 158.906 +-35.6283 198.608 157.548 +-38.12 199.829 158.517 +-40.0629 198.168 157.199 +-42.4833 198.891 157.773 +-44.6276 198.285 157.292 +-47.0714 198.974 157.838 +-49.0952 197.875 156.967 +-51.736 199.22 158.034 +-53.6204 197.633 156.775 +-56.3825 199.248 158.055 +-58.3748 198.091 157.138 +-60.9993 199.056 157.903 +-62.9965 197.947 157.024 +-65.6246 198.798 157.699 +-67.8106 198.267 157.277 +-70.3639 198.777 157.682 +-72.4099 197.836 156.936 +-75.3777 199.362 158.146 +-77.2738 198.015 157.077 +-80.108 199.048 157.897 +-82.0749 197.897 156.984 +-84.9742 198.963 157.829 +-86.9918 197.93 157.01 +-89.7607 198.583 157.528 +-91.935 197.888 156.977 +-94.8011 198.646 157.578 +-96.7593 197.479 156.652 +-100.275 199.433 158.203 +-102.193 198.16 157.192 +-105.2 198.973 157.837 +-107.06 197.597 156.746 +-110.334 198.798 157.699 +-112.178 197.392 156.583 +-115.616 198.756 157.665 +-117.192 196.893 156.187 +-120.629 198.134 157.172 +-123.577 198.5 157.462 +-123.82 194.562 154.338 +-128.162 197.059 156.319 +-130.998 197.148 156.39 +-136.381 200.949 159.405 +-140.666 202.969 161.007 +-142.583 201.521 159.858 +-143.197 198.287 157.294 +-143.2 194.316 154.143 +-144.293 191.912 152.236 +-145.189 189.306 150.169 +-150.218 192.047 152.344 +-157.227 197.125 156.372 +-470.674 578.812 459.149 +-473.564 571.301 453.191 +-167.016 197.688 156.818 +-169.044 196.344 155.752 +-170.715 194.6 154.368 +-481.517 538.753 427.372 +-482.1 529.509 420.039 +-485.511 523.531 415.296 +-486.327 514.901 408.451 +-489.396 508.804 403.614 +-490.601 500.901 397.345 +-493.884 495.244 392.858 +-494.339 486.882 386.225 +-141.157 136.564 108.331 +-142.418 135.352 107.37 +-142.892 133.413 105.831 +-142.749 130.941 103.871 +-142.102 128.069 101.592 +-141.933 125.684 99.7 +-146.004 127.038 100.774 +-148.292 126.785 100.574 +-513.477 431.389 342.204 +-514.958 425.135 337.243 +-517.868 420.132 333.275 +-518.673 413.502 328.015 +-521.562 408.611 324.135 +-523.027 402.669 319.422 +-526.197 398.098 315.796 +-526.984 391.789 310.791 +-529.866 387.103 307.074 +-530.692 380.978 302.215 +-534.47 377.021 299.076 +-535.354 371.068 294.354 +-538.787 366.932 291.073 +-543.006 363.336 288.22 +-561.204 368.925 292.654 +-562.514 363.281 288.177 +-567.161 359.816 285.428 +-567.86 353.876 280.716 +-571.387 349.739 277.434 +-572.008 343.864 272.774 +-575.577 339.799 269.549 +-576.767 334.359 265.234 +-581.036 330.726 262.352 +-587.466 328.288 260.418 +-584.055 320.395 254.157 +-560.241 301.657 239.293 +-566.979 299.612 237.67 +-570.128 295.637 234.517 +-574.238 292.155 231.755 +-382.225 190.77 151.331 +-383.318 187.652 148.857 +-382.835 183.796 145.798 +-382.125 179.88 142.692 +-380.84 175.75 139.416 +-379.146 171.494 136.04 +-381.651 169.166 134.193 +-381.422 165.638 131.394 +-381.846 162.426 128.846 +-382.669 159.405 126.45 +-135.801 55.3841 43.9341 +-601.429 240.08 190.446 +-380.705 148.707 117.963 +-381.089 145.617 115.512 +-381.974 142.736 113.227 +-381.374 139.325 110.521 +-595.479 212.605 168.652 +-598.92 208.909 165.719 +-381.589 129.987 103.114 +-381.549 126.884 100.652 +-381.747 123.881 98.27 +-382.185 120.973 95.9631 +-609.982 188.243 149.326 +-612.896 184.319 146.213 +-615.394 180.258 142.992 +-617.378 176.044 139.649 +-619.693 171.921 136.379 +-622.908 168.035 133.295 +-378.381 99.1871 78.6813 +-380.613 96.8869 76.8566 +-381.391 94.2099 74.7331 +-380.992 91.2556 72.3895 +-381.706 88.5809 70.2678 +-381.621 85.73 68.0063 +-382.272 83.0546 65.884 +-381.444 80.0736 63.5193 +-380.869 77.1682 61.2145 +-381.229 74.4666 59.0715 +-381.655 71.7843 56.9437 +-381.271 68.9608 54.7039 +-380.755 66.1311 52.4592 +-381.184 63.4766 50.3535 +-380.211 60.6027 48.0737 +-380.184 57.8963 45.9269 +-381.7 55.4233 43.9652 +-381.121 52.6484 41.7639 +-381.693 50.0408 39.6954 +-380.359 47.1965 37.4392 +-381.463 44.6639 35.4301 +-380.56 41.9015 33.2389 +-381.012 39.2982 31.1737 +-380.244 36.5772 29.0153 +-381.234 34.0295 26.9943 +-380.305 31.3153 24.8412 +-381.336 28.7667 22.8195 +-380.945 26.1107 20.7126 +-380.324 23.4499 18.6019 +-379.673 20.7997 16.4996 +-379.591 18.1889 14.4286 +-380.378 15.6177 12.3889 +-380.837 13.0268 10.3336 +-380.468 10.4089 8.25698 +-149.649 3.07005 2.43535 +-147.078 2.01128 1.59547 +-145.494 0.994738 0.789087 +95.7 0 -1.7053e-13 +96.5963 0.665124 0.51791 +96.5853 1.3302 1.03578 +96.5669 1.99517 1.55357 +96.5412 2.65999 2.07124 +96.5081 3.32461 2.58876 +96.4676 3.98897 3.10608 +96.5196 4.65785 3.62691 +96.4644 5.32224 4.14425 +96.3022 5.98004 4.65646 +96.2324 6.64288 5.17259 +97.0511 7.37329 5.74133 +97.0653 8.0495 6.26788 +96.0784 8.63716 6.72547 +96.8725 9.38483 7.30765 +96.765 10.0515 7.8268 +96.6502 10.7174 8.34527 +96.429 11.3708 8.85404 +96.1021 12.0096 9.3515 +95.867 12.6578 9.85621 +95.7233 13.3174 10.3698 +95.5724 13.976 10.8827 +95.316 14.6185 11.3829 +95.1507 15.2742 11.8935 +95.8585 16.0764 12.5181 +95.677 16.7358 13.0316 +95.6831 17.4294 13.5717 +95.3895 18.0692 14.0699 +96.2533 18.9353 14.7443 +95.9434 19.5775 15.2444 +96.5926 20.4211 15.9013 +96.363 21.0854 16.4185 +96.03 21.7264 16.9176 +96.4573 22.5436 17.5539 +96.3955 23.2531 18.1064 +96.1347 23.9158 18.6225 +95.8665 24.5769 19.1372 +96.4445 25.4613 19.8259 +96.1592 26.1244 20.3422 +96.715 27.0226 21.0416 +96.2245 27.6335 21.5173 +95.8216 28.2673 22.0108 +96.1588 29.1239 22.6778 +96.8565 30.103 23.4402 +96.5198 30.7687 23.9586 +96.3606 31.4926 24.5222 +96.1007 32.1856 25.0619 +95.9245 32.9091 25.6252 +96.379 33.8571 26.3634 +96.0919 34.5521 26.9046 +96.5218 35.5125 27.6524 +96.2156 36.2097 28.1953 +96.5305 37.1476 28.9256 +96.7424 38.0572 29.6339 +96.3178 38.7219 30.1514 +96.6842 39.7115 30.922 +96.2413 40.3757 31.4392 +95.7032 40.9991 31.9247 +96.0332 42.0008 32.7046 +96.3484 43.0101 33.4905 +95.6958 43.5929 33.9444 +95.9855 44.6106 34.7368 +96.1742 45.5949 35.5032 +96.3483 46.5851 36.2743 +95.8294 47.2468 36.7895 +96.0623 48.2863 37.5989 +96.0278 49.2038 38.3133 +95.4799 49.863 38.8267 +95.7538 50.9598 39.6807 +95.8459 51.9746 40.4709 +96.0046 53.0399 41.3004 +96.0656 54.0654 42.0989 +95.464 54.7249 42.6124 +95.4982 55.7555 43.4149 +95.4369 56.7433 44.1841 +95.6784 57.9266 45.1055 +95.5069 58.8747 45.8437 +95.5565 59.972 46.6982 +95.589 61.0746 47.5567 +95.5271 62.132 48.3801 +95.4491 63.193 49.2063 +95.4309 64.309 50.0753 +95.3953 65.4296 50.9478 +95.2672 66.5021 51.783 +95.1969 67.6307 52.6617 +95.1088 68.7633 53.5437 +95.5879 70.3303 54.7639 +95.4593 71.4746 55.6549 +95.3125 72.6224 56.5487 +95.0763 73.7184 57.402 +95.0352 74.9839 58.3875 +95.3237 76.5358 59.5959 +95.1682 77.7568 60.5467 +94.9241 78.9241 61.4556 +94.6614 80.0942 62.3667 +94.8529 81.6738 63.5967 +95.1504 83.3789 64.9243 +94.8209 84.5632 65.8465 +93.882 85.2125 66.3522 +94.7545 87.5354 68.1609 +94.1684 88.5477 68.9491 +94.5212 90.4705 70.4464 +94.2093 91.7929 71.4761 +93.8752 93.1169 72.507 +94.2578 95.1896 74.121 +93.9928 96.6493 75.2576 +94.1841 98.6155 76.7886 +93.2682 99.451 77.4392 +92.2235 100.153 77.986 +89.4283 98.9216 77.027 +88.5028 99.7272 77.6542 +88.3594 101.439 78.9868 +88.1847 103.155 80.3231 +88.4755 105.469 82.1251 +88.3949 107.397 83.6266 +88.0097 109 84.875 +88.0726 111.208 86.594 +87.9888 113.29 88.2154 +88.535 116.259 90.5267 +87.6011 117.34 91.3684 +87.55 119.647 93.1648 +87.5529 122.099 95.0743 +89.1565 126.907 98.8183 +93.1414 135.351 105.393 +92.8615 137.799 107.299 +93.1347 141.162 109.918 +92.7503 143.626 111.837 +92.8091 146.871 114.364 +92.6717 149.916 116.735 +92.5599 153.113 119.224 +92.7647 156.962 122.221 +92.601 160.323 124.838 +92.2479 163.477 127.294 +92.1908 167.29 130.263 +92.3298 171.622 133.636 +92.2267 175.678 136.794 +91.3665 178.427 138.935 +90.2693 180.812 140.792 +88.1585 181.205 141.099 +88.7776 187.348 145.881 +91.422 198.184 154.319 +90.228 201.037 156.541 +87.5127 200.531 156.147 +85.1963 200.902 156.436 +82.353 199.981 155.718 +80.2283 200.766 156.33 +77.5662 200.179 155.872 +75.3493 200.705 156.282 +72.5753 199.699 155.499 +70.6044 200.875 156.415 +67.9141 199.982 155.719 +65.7498 200.595 156.197 +63.0207 199.432 155.291 +60.9526 200.319 155.982 +58.3748 199.501 155.345 +56.3825 200.666 156.252 +53.7868 199.657 155.466 +51.6762 200.406 156.049 +49.2287 199.825 155.597 +47.1626 200.777 156.338 +44.6449 199.773 155.557 +42.4998 200.385 156.033 +40.0629 199.578 155.405 +37.854 199.847 155.614 +35.5309 199.474 155.324 +33.4278 200.337 155.996 +31.0036 199.229 155.133 +28.8781 199.983 155.72 +26.6129 199.782 155.563 +24.3927 199.879 155.639 +22.0765 199.096 155.03 +19.8815 199.319 155.203 +17.6554 199.212 155.12 +15.5124 200.114 155.822 +13.2515 199.504 155.347 +11.0662 199.982 155.719 +8.82259 199.341 155.22 +6.63586 199.946 155.691 +4.39626 198.722 154.738 +2.20869 199.691 155.493 +1.95399e-14 199.304 155.192 +-2.20956 199.77 155.554 +-4.40499 199.117 155.046 +-6.63062 199.788 155.568 +-8.78071 198.395 154.483 +-11.0488 199.667 155.474 +-13.2148 198.953 154.918 +-15.4575 199.405 155.27 +-17.5996 198.583 154.63 +-19.8737 199.241 155.142 +-21.9981 198.389 154.479 +-24.3832 199.801 155.578 +-26.5084 198.998 154.953 +-28.8781 199.983 155.72 +-30.8695 198.367 154.462 +-33.2972 199.555 155.387 +-35.3639 198.537 154.594 +-37.721 199.144 155.067 +-39.7656 198.097 154.252 +-42.1036 198.516 154.578 +-44.2629 198.063 154.225 +-46.5794 198.295 154.405 +-48.6563 197.502 153.788 +-51.1777 198.474 154.545 +-53.2878 197.805 154.024 +-55.7765 198.508 154.572 +-57.7899 197.502 153.789 +-60.369 198.401 154.488 +-62.4884 197.748 153.98 +-65.1238 198.685 154.709 +-67.1377 197.696 153.939 +-69.6156 198.063 154.225 +-71.8311 197.652 153.905 +-74.3836 198.133 154.279 +-76.5429 197.538 153.816 +-79.3262 198.508 154.572 +-81.4569 197.804 154.023 +-84.3078 198.807 154.805 +-86.4058 197.996 154.172 +-88.9929 198.285 154.398 +-91.08 197.442 153.742 +-94.0307 198.433 154.513 +-96.0784 197.484 153.774 +-99.0653 198.43 154.511 +-101.331 197.887 154.088 +-104.166 198.421 154.504 +-106.357 197.696 153.939 +-109.297 198.331 154.434 +-111.487 197.571 153.842 +-114.455 198.16 154.3 +-116.685 197.436 153.737 +-119.682 197.978 154.159 +-121.736 196.934 153.346 +-124.802 197.5 153.787 +-127.344 197.195 153.55 +-130.767 198.201 154.332 +-133.424 197.99 154.168 +-139.139 202.195 157.442 +-141.177 200.953 156.475 +-143.246 199.767 155.552 +-143.1 195.561 152.277 +-142.72 191.17 148.858 +-144.571 189.842 147.824 +-149.017 191.866 149.4 +-152.458 192.506 149.898 +-472.77 585.526 455.93 +-475.306 577.484 449.668 +-477.481 569.189 443.209 +-479.172 560.516 436.455 +-479.859 550.888 428.958 +-482.607 543.815 423.45 +-484.48 535.911 417.296 +-487.45 529.363 412.197 +-488.528 520.912 405.617 +-491.442 514.567 400.676 +-492.914 506.844 394.663 +-495.423 500.322 389.584 +-142.618 141.467 110.155 +-142.415 138.762 108.049 +-142.227 136.132 106.002 +-142.313 133.818 104.2 +-142.164 131.333 102.265 +-142.496 129.337 100.711 +-142.993 127.524 99.2988 +-149.417 130.932 101.952 +-148.427 127.804 99.5169 +-515.523 436.19 339.646 +-517.023 429.877 334.731 +-519.674 424.597 330.62 +-521.056 418.358 325.761 +-523.471 413.025 321.609 +-524.81 406.916 316.852 +-528.139 402.41 313.344 +-529.233 396.26 308.554 +-532.206 391.579 304.909 +-533.052 385.395 300.094 +-536.179 380.918 296.608 +-538.274 375.747 292.582 +-551.768 378.446 294.683 +-560.799 377.912 294.267 +-563.809 373.275 290.657 +-565.678 367.924 286.49 +-568.327 363.121 282.75 +-569.504 357.426 278.315 +-572.49 352.908 274.798 +-573.991 347.512 270.596 +-578.292 343.831 267.73 +-579.661 338.429 263.523 +-582.25 333.775 259.899 +-582.662 327.921 255.341 +-596.261 329.417 256.506 +-571.119 309.703 241.155 +-565.321 300.861 234.271 +-572.463 298.961 232.791 +-575.999 295.136 229.813 +-384.08 193.06 150.33 +-381.876 188.276 146.605 +-383.176 185.269 144.263 +-382.297 181.242 141.127 +-378.6 175.959 137.014 +-380.532 173.346 134.979 +-382.347 170.681 132.903 +-382.471 167.276 130.252 +-382.198 163.733 127.493 +-382.846 160.614 125.065 +-134.205 55.1224 42.922 +-136.057 54.6977 42.5913 +-382.047 150.293 117.028 +-381.628 146.86 114.355 +-381.794 143.684 111.882 +-381.465 140.349 109.285 +-595.206 214.02 166.651 +-599.925 210.748 164.103 +-381.13 130.755 101.815 +-382.102 127.971 99.6471 +-382.024 124.853 97.2191 +-381.629 121.656 94.7296 +-612.494 190.363 148.23 +-3058.88 926.45 721.396 +-617.08 182.039 141.747 +-619.445 177.891 138.518 +-621.012 173.513 135.109 +-623.664 169.436 131.934 +-380.088 100.343 78.1341 +-382.039 97.9417 76.2639 +-381.391 94.8803 73.8801 +-381.279 91.9744 71.6174 +-381.035 89.0542 69.3436 +-381.621 86.34 67.2301 +-381.501 83.4775 65.0011 +-381.444 80.6434 62.7943 +-381.16 77.7766 60.562 +-381.52 75.0538 58.4419 +-380.78 72.1293 56.1647 +-380.589 69.3273 53.9828 +-380.463 66.5504 51.8206 +-380.01 63.7314 49.6255 +-381.289 61.2069 47.6598 +-382.246 58.6244 45.6489 +-381.405 55.7746 43.4299 +-380.825 52.982 41.2553 +-380.41 50.2277 39.1106 +-381.248 47.6435 37.0984 +-381.958 45.04 35.0711 +-379.966 42.1338 32.8082 +-379.327 39.4027 30.6816 +-380.641 36.876 28.7141 +-380.637 34.218 26.6444 +-381.001 31.5959 24.6027 +-379.545 28.8352 22.453 +-381.642 26.3446 20.5137 +-380.324 23.6168 18.3896 +-380.271 20.9808 16.337 +-381.687 18.4195 14.3426 +-380.078 15.7164 12.2378 +-380.238 13.0988 10.1996 +-380.468 10.483 8.16274 +-146.75 3.032 2.36092 +-147.478 2.0311 1.58155 +-145.994 1.00526 0.78276 +96.6 3.55271e-15 -1.7053e-13 +96.5963 0.669769 0.511888 +96.5853 1.33949 1.02374 +96.5669 2.0091 1.53551 +96.5412 2.67857 2.04716 +97.4072 3.37902 2.5825 +96.5675 4.02099 3.07315 +96.4198 4.68553 3.58104 +96.4644 5.35941 4.09607 +96.4019 6.02804 4.60708 +96.2324 6.68928 5.11245 +96.2548 7.36386 5.62802 +97.0653 8.10572 6.19501 +96.9726 8.77836 6.70909 +96.8725 9.45037 7.22269 +96.765 10.1217 7.7358 +96.6502 10.7922 8.24825 +95.5389 11.3445 8.67034 +96.1021 12.0935 9.24278 +95.867 12.7462 9.74162 +96.6096 13.5346 10.3442 +95.5724 14.0736 10.7561 +95.316 14.7206 11.2506 +96.1306 15.5393 11.8763 +95.8585 16.1886 12.3726 +95.7746 16.8699 12.8932 +96.5601 17.712 13.5368 +95.3895 18.1954 13.9063 +95.186 18.856 14.4112 +95.9434 19.7143 15.0671 +95.7232 20.3787 15.575 +96.363 21.2327 16.2276 +96.1262 21.9 16.7376 +95.7861 22.5431 17.2291 +96.3955 23.4155 17.8959 +96.1347 24.0829 18.4059 +95.8665 24.7485 18.9147 +96.2549 25.5887 19.5568 +96.1592 26.3069 20.1057 +96.5265 27.1582 20.7564 +96.2245 27.8265 21.2671 +96.8519 28.7708 21.9888 +96.1588 29.3273 22.4142 +96.8565 30.3133 23.1677 +96.5198 30.9836 23.68 +96.1759 31.6516 24.1906 +96.8371 32.6588 24.9603 +96.5664 33.3607 25.4967 +96.379 34.0935 26.0569 +96.0009 34.7604 26.5666 +96.6124 35.7941 27.3566 +96.1253 36.4284 27.8413 +96.5305 37.407 28.5893 +95.937 38.0039 29.0455 +96.496 39.0645 29.856 +96.0633 39.732 30.3662 +96.2413 40.6576 31.0736 +96.4941 41.6266 31.8142 +96.0332 42.2941 32.3244 +96.3484 43.3105 33.1011 +95.6958 43.8974 33.5497 +95.9855 44.9222 34.3329 +96.1742 45.9133 35.0904 +95.581 46.5369 35.567 +95.8294 47.5767 36.3617 +95.8936 48.5382 37.0966 +96.1116 49.5906 37.9009 +95.7301 50.3429 38.4758 +95.7538 51.3157 39.2193 +95.8459 52.3376 40.0004 +96.0046 53.4104 40.8202 +95.4143 54.0739 41.3274 +95.464 55.1071 42.117 +95.4982 56.1449 42.9102 +95.5967 57.2353 43.7435 +95.4404 58.1861 44.4702 +95.5069 59.2859 45.3107 +95.5565 60.3909 46.1553 +95.5112 61.4512 46.9656 +95.7586 62.7175 47.9334 +95.4491 63.6344 48.6342 +95.4309 64.7581 49.4931 +95.4708 65.9386 50.3953 +95.2672 66.9666 51.1809 +95.1969 68.103 52.0495 +95.1088 69.2435 52.9211 +95.6611 70.8757 54.1686 +94.879 71.5363 54.6734 +95.3125 73.1296 55.8912 +95.2189 74.3446 56.8198 +94.9644 75.4514 57.6657 +95.4638 77.1837 58.9896 +95.1682 78.2999 59.8427 +94.9241 79.4753 60.7411 +94.6614 80.6536 61.6416 +94.8529 82.2442 62.8573 +94.682 83.548 63.8537 +94.8209 85.1538 65.081 +94.4725 86.3471 65.993 +94.4947 87.9052 67.1838 +94.1684 89.1661 68.1475 +94.3304 90.9188 69.487 +94.2093 92.434 70.645 +94.3732 94.2646 72.0441 +93.8884 95.4794 72.9726 +93.9928 97.3243 74.3826 +94.0035 99.1143 75.7507 +93.982 100.912 77.1242 +93.3991 102.138 78.0618 +90.9962 101.359 77.4661 +89.3632 101.4 77.4977 +88.3027 102.081 78.0181 +88.0729 103.743 79.2884 +88.2547 105.94 80.9674 +88.286 108.014 82.5523 +87.9022 109.627 83.7856 +88.4965 112.523 85.999 +88.668 114.962 87.8626 +88.535 117.071 89.4742 +88.0579 118.776 90.7773 +87.5 120.413 92.0288 +87.6514 123.09 94.0746 +91.3866 130.99 100.112 +93.1414 136.296 104.168 +92.8615 138.761 106.052 +92.7191 141.514 108.156 +92.7503 144.629 110.537 +92.7645 147.827 112.98 +92.6717 150.963 115.378 +92.9043 154.756 118.276 +92.7224 157.986 120.745 +92.9328 162.021 123.828 +92.2072 164.546 125.759 +92.111 168.312 128.637 +92.3688 172.894 132.138 +92.3032 177.051 135.316 +90.9545 178.863 136.701 +89.8295 181.187 138.477 +87.5851 181.284 138.551 +91.194 193.791 148.11 +91.3194 199.344 152.354 +89.7607 201.392 153.919 +86.8941 200.505 153.241 +84.6569 201.025 153.638 +82.1367 200.848 153.503 +79.687 200.804 153.469 +77.0399 200.209 153.015 +74.8096 200.659 153.359 +72.3824 200.559 153.282 +70.1501 200.977 153.602 +67.4482 199.997 152.853 +65.1739 200.227 153.029 +62.7545 199.977 152.838 +60.509 200.25 153.046 +58.1723 200.197 153.006 +56.0146 200.748 153.427 +53.5788 200.275 153.065 +51.3771 200.638 153.343 +49.0379 200.441 153.192 +46.8345 200.774 153.446 +44.3497 199.838 152.732 +42.2357 200.53 153.26 +39.8908 200.109 152.939 +37.721 200.535 153.264 +35.4196 200.238 153.037 +33.1928 200.318 153.098 +30.8817 199.831 152.726 +28.7763 200.669 153.367 +26.5084 200.387 153.151 +24.2298 199.931 152.802 +21.9981 199.775 152.683 +19.7638 199.523 152.491 +17.5438 199.335 152.347 +15.4025 200.084 152.919 +13.2044 200.183 152.995 +10.9964 200.108 152.938 +8.75977 199.304 152.323 +6.58612 199.834 152.728 +4.38404 199.554 152.514 +2.19472 199.815 152.713 +1.86517e-14 200.061 152.902 +-2.19734 200.053 152.896 +-4.37706 199.236 152.271 +-6.58612 199.834 152.728 +-8.78071 199.78 152.687 +-10.9834 199.87 152.756 +-13.1154 198.835 151.965 +-15.3598 199.529 152.495 +-17.5019 198.86 151.984 +-19.7403 199.285 152.309 +-21.9197 199.062 152.138 +-24.2298 199.931 152.802 +-26.3307 199.044 152.124 +-28.5612 199.169 152.22 +-30.7598 199.043 152.124 +-33.0623 199.531 152.497 +-35.169 198.822 151.955 +-37.4253 198.964 152.063 +-39.5936 198.618 151.799 +-41.9221 199.041 152.123 +-43.9677 198.117 151.416 +-46.306 198.508 151.714 +-48.4655 198.101 151.404 +-50.7989 198.38 151.617 +-53.0383 198.253 151.52 +-55.4085 198.577 151.767 +-57.61 198.262 151.527 +-59.9721 198.473 151.688 +-62.2707 198.435 151.659 +-64.4478 197.996 151.323 +-66.9306 198.462 151.68 +-69.188 198.221 151.495 +-71.5555 198.268 151.532 +-74.0996 198.755 151.903 +-76.309 198.31 151.563 +-78.6947 198.303 151.558 +-81.1788 198.506 151.713 +-83.6732 198.689 151.853 +-85.8523 198.101 151.404 +-88.6257 198.846 151.973 +-90.7721 198.149 151.441 +-93.3653 198.406 151.637 +-95.8993 198.492 151.703 +-98.3323 198.338 151.585 +-100.956 198.532 151.733 +-103.516 198.558 151.753 +-106.044 198.492 151.702 +-108.539 198.332 151.58 +-110.754 197.644 151.054 +-113.667 198.17 151.456 +-115.84 197.375 150.849 +-118.735 197.783 151.161 +-121.297 197.595 151.017 +-124.355 198.168 151.455 +-127.027 198.078 151.386 +-129.52 197.683 151.084 +-132.062 197.338 150.821 +-138.233 202.28 154.598 +-140.789 201.801 154.231 +-143.64 201.716 154.166 +-143.15 196.996 150.56 +-143.024 192.916 147.441 +-144.262 190.759 145.793 +-147.606 191.377 146.265 +-150.55 191.424 146.301 +-1760.46 2195.56 1678.01 +-475.797 582.117 444.898 +-477.315 572.965 437.903 +-479.899 565.287 432.035 +-481.049 556.11 425.022 +-483.64 548.784 419.422 +-485.816 541.141 413.581 +-487.685 533.316 407.601 +-489.837 525.955 401.975 +-492.044 518.795 396.502 +-494.619 512.149 391.423 +-144.865 147.32 112.593 +-141.933 141.771 108.352 +-142.038 139.361 106.51 +-142.736 137.574 105.144 +-142.442 134.874 103.081 +-141.839 131.949 100.845 +-142.758 130.48 99.7231 +-147.831 132.758 101.464 +-149.216 131.669 100.631 +-514.192 445.84 340.745 +-516.682 440.224 336.453 +-517.849 433.57 331.367 +-520.299 428.078 327.169 +-522.528 422.47 322.884 +-524.815 416.977 318.686 +-526.735 411.262 314.317 +-529.074 405.938 310.249 +-530.394 399.903 305.636 +-532.864 394.802 301.737 +-534.674 389.267 297.507 +-537.591 384.588 293.931 +-539.323 379.109 289.744 +-563.768 389.377 297.591 +-567.947 385.402 294.553 +-564.268 376.188 287.512 +-565.987 370.695 283.313 +-569.881 366.657 280.227 +-571.774 361.356 276.176 +-573.593 356.057 272.126 +-576.054 351.197 268.411 +-579.25 346.806 265.055 +-579.902 340.934 260.567 +-583.22 336.666 257.306 +-585.919 332.056 253.783 +-594.049 330.488 252.584 +-590.569 322.486 246.469 +-567.145 303.94 232.294 +-571.962 300.786 229.883 +-576.502 297.457 227.339 +-383.49 194.11 148.353 +-383.827 190.559 145.64 +-381.642 185.815 142.014 +-383.154 182.917 139.799 +-379.634 177.672 135.79 +-381.831 175.153 133.865 +-381.216 171.364 130.97 +-381.946 168.213 128.561 +-379.913 163.891 125.258 +-382.581 161.623 123.525 +-385.14 159.295 121.745 +-136.413 55.224 42.2064 +-383.479 151.91 116.101 +-381.089 147.677 112.866 +-381.523 144.585 110.503 +-381.918 141.497 108.143 +-384.095 139.075 106.292 +-599.651 212.123 162.121 +-382.597 132.175 101.018 +-381.457 128.648 98.3228 +-382.024 125.725 96.0888 +-381.629 122.506 93.6283 +-381.564 119.418 91.2685 +-615.883 187.837 143.559 +-617.454 183.421 140.184 +-619.821 179.241 136.99 +-622.615 175.176 133.882 +-3097.99 847.533 647.749 +-378.476 100.615 76.8977 +-381.564 98.5033 75.2837 +-381.391 95.5429 73.0212 +-381.852 92.7558 70.891 +-378.063 88.9762 68.0024 +-381.621 86.943 66.4484 +-381.116 83.9755 64.1804 +-381.444 81.2066 62.0642 +-380.869 78.2601 59.8123 +-379.774 75.2319 57.4979 +-380.488 72.5774 55.4692 +-381.271 69.9365 53.4508 +-381.732 67.2388 51.389 +-381.478 64.4244 49.238 +-381.583 61.6819 47.142 +-379.89 58.67 44.8401 +-381.405 56.1642 42.9249 +-380.431 53.2968 40.7335 +-381.002 50.6571 38.716 +-381.445 48.0011 36.6861 +-381.463 45.2958 34.6185 +-380.263 42.4613 32.4521 +-380.417 39.792 30.4121 +-380.542 37.1238 28.3728 +-381.035 34.4929 26.3621 +-380.604 31.7833 24.2912 +-380.64 29.1204 22.256 +-380.646 26.4594 20.2222 +-381.221 23.8379 18.2187 +-380.571 21.1439 16.1598 +-379.89 18.4608 14.1092 +-379.479 15.8012 12.0765 +-380.238 13.1903 10.081 +-380.468 10.5562 8.06784 +-145.95 3.03653 2.32075 +-145.278 2.01477 1.53984 +-145.994 1.01228 0.773659 +96.6 3.55271e-15 -1.7053e-13 +96.3963 0.672964 0.504778 +96.3853 1.34588 1.00952 +96.5669 2.02287 1.51732 +96.5412 2.69693 2.02292 +96.5081 3.37077 2.52835 +96.4676 4.04436 3.0336 +96.4198 4.71765 3.53862 +96.3647 5.39057 4.04337 +96.4019 6.06935 4.55251 +96.332 6.7421 5.05713 +96.2548 7.41433 5.56136 +97.0653 8.16128 6.12163 +96.1778 8.76614 6.57532 +96.8725 9.51515 7.13714 +95.8727 10.0971 7.57367 +96.6502 10.8662 8.15055 +96.429 11.5287 8.64744 +96.1021 12.1764 9.1333 +95.9656 12.8468 9.63613 +95.7233 13.5023 10.1279 +96.4573 14.3013 10.7271 +96.2976 14.9741 11.2318 +95.2487 15.5023 11.628 +95.8585 16.2996 12.226 +95.7746 16.9855 12.7405 +95.4883 17.6355 13.228 +96.4591 18.5255 13.8957 +96.1563 19.1788 14.3857 +96.7179 20.0096 15.0088 +95.7232 20.5184 15.3905 +96.363 21.3782 16.0354 +96.1262 22.0501 16.5394 +96.649 22.9021 17.1784 +96.4911 23.5993 17.7014 +96.23 24.272 18.206 +95.8665 24.9181 18.6906 +96.4445 25.8149 19.3633 +96.2538 26.5132 19.8871 +96.5265 27.3444 20.5105 +96.1306 27.9899 20.9947 +96.8519 28.968 21.7284 +96.5322 29.643 22.2347 +97.0426 30.5797 22.9373 +96.5198 31.196 23.3995 +96.3606 31.9299 23.95 +96.1007 32.6326 24.4771 +96.5664 33.5893 25.1947 +96.379 34.3272 25.7482 +96.0009 34.9987 26.2519 +96.6124 36.0395 27.0325 +96.1253 36.6781 27.5116 +96.5305 37.6634 28.2506 +96.7424 38.5857 28.9424 +96.496 39.3322 29.5024 +96.6842 40.2629 30.2005 +96.2413 40.9363 30.7056 +96.4941 41.912 31.4374 +96.0332 42.584 31.9415 +96.3484 43.6073 32.7091 +95.6958 44.1983 33.1523 +95.9855 45.2301 33.9262 +96.1742 46.228 34.6748 +96.3483 47.232 35.4279 +96.5927 48.2843 36.2172 +95.8936 48.8709 36.6572 +96.1116 49.9305 37.452 +95.5633 50.5996 37.9538 +95.7538 51.6674 38.7548 +95.7635 52.6511 39.4926 +95.2674 53.3634 40.0269 +95.4143 54.4446 40.8379 +95.464 55.4848 41.6181 +95.4982 56.5297 42.4019 +95.5967 57.6276 43.2254 +95.6784 58.731 44.053 +95.4281 59.6429 44.7371 +95.4782 60.7551 45.5713 +95.589 61.9227 46.4471 +95.6043 63.0456 47.2894 +95.4491 64.0705 48.0581 +95.4309 65.202 48.9068 +95.4708 66.3906 49.7984 +95.3421 67.4785 50.6144 +95.2712 68.6233 51.4731 +95.1825 69.7722 52.3349 +95.5879 71.307 53.4861 +95.4593 72.4672 54.3563 +95.3125 73.6309 55.2292 +95.1476 74.7981 56.1047 +95.6008 76.4776 57.3645 +95.3938 77.6557 58.2481 +95.0987 78.779 59.0907 +94.8553 79.9621 59.9781 +94.6614 81.2064 60.9115 +94.988 82.9255 62.2009 +94.682 84.1207 63.0974 +94.7547 85.6774 64.2651 +94.3413 86.8182 65.1207 +94.4947 88.5077 66.388 +94.1684 89.7773 67.3403 +94.394 91.6036 68.7102 +94.0834 92.9427 69.7147 +94.3732 94.9107 71.1908 +93.8884 96.1338 72.1082 +93.9928 97.9914 73.5015 +93.9433 99.7297 74.8054 +93.982 101.603 76.2107 +92.8701 102.256 76.7004 +91.2284 102.314 76.7442 +89.3632 102.095 76.5797 +88.3594 102.847 77.1438 +88.1288 104.521 78.3991 +88.4203 106.867 80.159 +87.7958 108.151 81.1221 +87.8485 110.312 82.7428 +87.9136 112.548 84.4205 +88.5113 115.545 86.6683 +88.535 117.873 88.4144 +88.0072 119.52 89.6499 +87.9 121.793 91.3546 +87.7006 124.003 93.0125 +91.4351 131.957 98.9787 +93.046 137.09 102.829 +92.8615 139.712 104.796 +92.7191 142.484 106.875 +92.7503 145.621 109.227 +92.7645 148.84 111.642 +92.6717 151.998 114.011 +92.9043 155.816 116.875 +92.7224 159.069 119.315 +92.601 162.549 121.925 +92.2479 165.747 124.324 +92.1908 169.613 127.223 +92.2516 173.858 130.408 +92.3798 178.413 133.824 +90.917 180.015 135.026 +89.7562 182.28 136.725 +87.4776 182.302 136.742 +91.2991 195.344 146.524 +91.251 200.56 150.437 +89.3601 201.868 151.418 +86.8941 201.879 151.426 +84.3713 201.719 151.306 +81.8586 201.54 151.172 +79.3262 201.265 150.965 +77.2738 202.193 151.661 +74.5256 201.267 150.967 +72.3548 201.857 151.409 +69.8561 201.506 151.146 +67.5 201.522 151.158 +65.224 201.754 151.332 +62.7545 201.348 151.028 +60.5791 201.856 151.409 +58.1274 201.414 151.077 +55.8198 201.422 151.083 +53.5996 201.725 151.31 +51.2176 201.386 151.056 +49.0188 201.736 151.319 +46.6705 201.442 151.098 +44.4887 201.838 151.395 +42.1036 201.273 150.971 +39.8751 201.402 151.068 +37.5879 201.198 150.915 +35.3917 201.452 151.106 +33.1014 201.136 150.869 +30.8817 201.201 150.917 +28.6744 201.33 151.014 +26.4143 201.045 150.8 +24.2202 201.222 150.933 +21.9981 201.144 150.875 +19.6697 199.934 149.967 +17.5438 200.702 150.543 +15.3537 200.817 150.629 +13.1991 201.475 151.123 +10.9572 200.761 150.587 +8.75977 200.67 150.519 +6.58612 201.203 150.919 +4.38579 201.002 150.768 +2.19298 201.024 150.785 +1.68754e-14 200.632 150.491 +-2.18949 200.704 150.545 +-4.37706 200.602 150.468 +-6.56256 200.483 150.379 +-8.75279 200.51 150.399 +-10.9485 200.601 150.467 +-13.1677 200.996 150.764 +-15.3598 200.897 150.689 +-17.5577 200.862 150.663 +-19.6854 200.094 150.087 +-21.9197 200.427 150.336 +-24.134 200.505 150.395 +-26.4248 201.124 150.86 +-28.5499 200.455 150.358 +-30.772 200.487 150.381 +-32.9448 200.185 150.155 +-35.169 200.185 150.155 +-37.3071 199.695 149.787 +-39.6092 200.059 150.06 +-41.7735 199.695 149.788 +-44.1414 200.263 150.213 +-46.306 199.868 149.917 +-48.6372 200.166 150.141 +-50.8588 199.975 149.998 +-53.0799 199.769 149.843 +-55.2137 199.235 149.442 +-57.61 199.621 149.732 +-59.762 199.134 149.367 +-62.3191 199.951 149.979 +-64.5229 199.586 149.706 +-66.9306 199.823 149.883 +-69.1613 199.503 149.643 +-71.5279 199.55 149.679 +-73.844 199.427 149.586 +-76.309 199.669 149.768 +-78.7548 199.815 149.877 +-81.1479 199.79 149.859 +-83.3559 199.292 149.485 +-85.8198 199.383 149.554 +-88.2919 199.455 149.608 +-90.7721 199.507 149.647 +-93.4003 199.84 149.896 +-95.8276 199.703 149.794 +-98.3689 199.771 149.845 +-100.657 199.299 149.491 +-103.248 199.403 149.568 +-105.966 199.705 149.795 +-108.181 199.031 149.289 +-111.12 199.657 149.759 +-113.253 198.8 149.116 +-116.305 199.525 149.66 +-118.778 199.211 149.424 +-121.297 198.949 149.228 +-123.954 198.883 149.178 +-127.027 199.435 149.593 +-129.52 199.038 149.295 +-132.109 198.761 149.087 +-137.66 202.823 152.134 +-140.692 203.044 152.3 +-143.64 203.098 152.34 +-143.2 198.416 148.828 +-142.923 194.1 145.591 +-144.262 192.067 144.066 +-147.188 192.144 144.123 +-150.55 192.736 144.568 +-1760.46 2210.61 1658.14 +-475.797 586.107 439.628 +-477.701 577.36 433.067 +-479.452 568.631 426.52 +-481.559 560.516 420.433 +-483.926 552.873 414.7 +-486.048 545.111 408.878 +-488.156 537.49 403.162 +-490.55 530.332 397.792 +-492.405 522.735 392.094 +-494.01 515.025 386.311 +-146.22 149.717 112.3 +-142.369 143.18 107.397 +-142.541 140.814 105.622 +-142.8 138.579 103.945 +-142.506 135.86 101.906 +-142.229 133.218 99.9244 +-142.758 131.375 98.5419 +-148.493 134.268 100.712 +-148.48 131.918 98.9493 +-514.8 449.426 337.107 +-516.682 443.242 332.468 +-518.675 437.239 327.965 +-520.924 431.529 323.682 +-522.528 425.366 319.059 +-524.603 419.666 314.784 +-526.949 414.249 310.721 +-528.643 408.387 306.324 +-531.047 403.139 302.388 +-532.864 397.508 298.163 +-534.895 392.097 294.105 +-537.294 387.01 290.289 +-539.098 381.548 286.192 +-563.164 391.625 293.751 +-570 389.446 292.116 +-564.728 379.076 284.338 +-566.835 373.796 280.377 +-569.881 369.17 276.908 +-571.226 363.484 272.643 +-573.829 358.646 269.014 +-577.006 354.188 265.67 +-579.41 349.28 261.988 +-580.143 343.414 257.588 +-583.22 338.974 254.258 +-585.756 334.24 250.707 +-593.476 332.432 249.351 +-589.662 324.198 243.175 +-567.145 306.023 229.542 +-571.962 302.847 227.16 +-576.502 299.496 224.647 +-385.177 196.3 147.241 +-382.3 191.103 143.343 +-383.518 188.009 141.022 +-382.039 183.634 137.741 +-379.634 178.89 134.182 +-381.224 176.073 132.069 +-381.042 172.46 129.359 +-381.772 169.289 126.98 +-381.582 165.739 124.318 +-382.051 162.506 121.893 +-383.366 159.648 119.749 +-135.878 55.3847 41.5431 +-383.3 152.88 114.672 +-382.886 149.391 112.055 +-381.974 145.748 109.323 +-382.734 142.772 107.091 +-383.549 139.829 104.883 +-600.199 213.772 160.347 +-382.139 132.922 99.7024 +-381.273 129.468 97.1114 +-382.024 126.587 94.9506 +-381.629 123.346 92.5193 +-381.192 120.12 90.0999 +-3058.88 939.315 704.563 +-617.829 184.79 138.608 +-619.069 180.251 135.203 +-622.992 176.483 132.377 +-3097.99 853.342 640.077 +-377.528 101.051 75.7967 +-380.708 98.9561 74.2252 +-381.678 96.2698 72.2102 +-381.566 93.3211 69.9985 +-377.2 89.3821 67.0439 +-381.909 87.6054 65.7112 +-381.405 84.6151 63.4682 +-382.313 81.9496 61.4689 +-382.418 79.117 59.3442 +-382.394 76.2701 57.2088 +-381.363 73.243 54.9382 +-382.148 70.5779 52.9392 +-381.048 67.5785 50.6894 +-381.184 64.816 48.6173 +-380.995 62.009 46.5118 +-380.871 59.2248 44.4234 +-380.52 56.4179 42.318 +-381.219 53.7732 40.3343 +-381.002 51.0043 38.2574 +-380.359 48.1924 36.1483 +-381.167 45.5708 34.1818 +-381.352 42.8748 32.1596 +-381.012 40.1274 30.0988 +-379.847 37.3101 27.9856 +-380.935 34.7203 26.0431 +-381.001 32.0347 24.0286 +-380.938 29.343 22.0097 +-380.646 26.6407 19.9827 +-381.52 24.0201 18.017 +-380.571 21.2888 15.9684 +-380.788 18.6313 13.975 +-381.277 15.9849 11.99 +-379.638 13.2598 9.94593 +-379.569 10.6034 7.95344 +-147.749 3.09504 2.32153 +-147.178 2.05511 1.5415 +-146.294 1.02131 0.766067 +95.7 0 -1.7053e-13 +96.5963 0.678896 0.499721 +96.3853 1.35493 0.997334 +96.367 2.03227 1.49591 +96.5412 2.71507 1.9985 +96.5081 3.39344 2.49784 +96.5675 4.07578 3.0001 +96.4198 4.74938 3.49592 +96.4644 5.43244 3.99871 +96.4019 6.11018 4.49757 +96.332 6.78745 4.9961 +96.2548 7.4642 5.49424 +96.1703 8.14039 5.99197 +96.0784 8.816 6.48927 +96.8725 9.57915 7.05101 +96.765 10.2597 7.55192 +96.6502 10.9393 8.05219 +96.429 11.6062 8.54309 +96.1021 12.2583 9.02308 +95.9656 12.9332 9.51984 +95.7233 13.5932 10.0056 +95.4741 14.2507 10.4897 +95.316 14.9212 10.9832 +96.1306 15.751 11.594 +95.8585 16.4092 12.0785 +95.7746 17.0997 12.5868 +95.5857 17.7722 13.0817 +95.4867 18.4621 13.5895 +96.1563 19.3078 14.2121 +95.9434 19.9829 14.709 +95.8198 20.6772 15.22 +96.363 21.522 15.8419 +96.1262 22.1984 16.3398 +96.649 23.0561 16.9711 +96.3955 23.7345 17.4705 +96.1347 24.411 17.9684 +95.8665 25.0857 18.4651 +96.2549 25.9374 19.092 +96.1592 26.6654 19.6278 +96.4322 27.5014 20.2432 +96.2245 28.2057 20.7616 +95.8216 28.8526 21.2378 +96.5322 29.8424 21.9663 +96.2052 30.5197 22.4649 +96.5198 31.4058 23.1171 +96.3606 32.1446 23.661 +96.8371 33.1038 24.367 +96.5664 33.8152 24.8907 +96.1963 34.4926 25.3893 +96.0009 35.2341 25.9351 +96.6124 36.2819 26.7063 +95.9448 36.8554 27.1285 +96.5305 37.9167 27.9097 +95.937 38.5218 28.3551 +96.496 39.5968 29.1463 +95.8859 40.199 29.5896 +96.2413 41.2117 30.335 +96.4941 42.1939 31.058 +96.0332 42.8704 31.556 +96.3484 43.9006 32.3143 +95.6958 44.4955 32.7522 +95.9855 45.5343 33.5168 +96.1742 46.539 34.2563 +96.3483 47.5497 35.0003 +95.8294 48.225 35.4974 +95.8936 49.1996 36.2148 +96.2794 50.3541 37.0646 +95.5633 50.94 37.4958 +95.7538 52.0149 38.2871 +95.8459 53.0508 39.0496 +95.2674 53.7224 39.5439 +95.4143 54.8108 40.3451 +95.464 55.858 41.1159 +95.3374 56.8142 41.8197 +95.5967 58.0152 42.7038 +95.5197 59.028 43.4493 +94.8765 59.697 43.9417 +95.5565 61.2138 45.0582 +95.5112 62.2885 45.8493 +95.6043 63.4697 46.7187 +95.4491 64.5015 47.4782 +95.3549 65.5883 48.2782 +95.3953 66.7843 49.1585 +95.3421 67.9324 50.0036 +95.1969 69.031 50.8123 +95.1825 70.2415 51.7033 +95.0028 71.3472 52.5172 +94.879 72.5111 53.3739 +95.3845 74.1821 54.6039 +95.1476 75.3012 55.4276 +94.9644 76.4795 56.295 +94.7629 77.661 57.1646 +95.1682 79.3668 58.4203 +94.8553 80.5 59.2543 +94.6614 81.7526 60.1764 +94.8529 83.3649 61.3632 +95.2842 85.2253 62.7325 +94.7547 86.2537 63.4895 +94.4725 87.5237 64.4244 +94.5596 89.1642 65.6319 +94.8112 90.998 66.9817 +94.5212 92.3438 67.9723 +94.2722 93.7555 69.0115 +93.813 94.9821 69.9143 +94.4425 97.3514 71.6583 +93.9928 98.6505 72.6145 +93.9433 100.4 73.9027 +93.982 102.287 75.291 +93.4579 103.595 76.2543 +91.2865 103.068 75.866 +89.8221 103.309 76.0439 +88.3594 103.539 76.2128 +88.0729 105.157 77.4038 +88.3651 107.518 79.1418 +88.3405 109.553 80.6398 +88.2783 111.596 82.1438 +88.3375 113.852 83.8042 +88.5113 116.322 85.6223 +88.3805 118.459 87.195 +87.4489 119.561 88.0066 +87.45 121.985 89.7903 +87.6514 124.767 91.8384 +91.3866 132.775 97.7327 +93.046 138.012 101.588 +92.8615 140.652 103.531 +93.0885 144.013 106.005 +92.7503 146.6 107.909 +92.7645 149.841 110.295 +92.584 152.875 112.528 +92.4307 156.065 114.876 +92.3844 159.555 117.445 +92.601 163.642 120.454 +92.2479 166.862 122.824 +92.111 170.606 125.579 +92.3298 175.176 128.943 +92.3798 179.613 132.209 +90.9545 181.3 133.451 +89.9394 183.881 135.351 +87.4776 183.529 135.092 +91.3341 196.734 144.812 +91.251 201.909 148.621 +89.3935 203.302 149.646 +86.9267 203.313 149.654 +84.5934 203.611 149.874 +82.1367 203.585 149.855 +79.6269 203.386 149.708 +77.3031 203.63 149.888 +74.838 203.471 149.77 +72.4099 203.369 149.696 +69.9096 203.017 149.437 +67.4741 202.801 149.277 +65.199 203.033 149.449 +62.7545 202.702 149.205 +60.5791 203.214 149.581 +58.1498 202.847 149.312 +55.8198 202.776 149.259 +53.5996 203.082 149.484 +51.3971 203.451 149.756 +49.0379 203.172 149.551 +46.707 202.954 149.39 +44.4713 203.116 149.51 +42.1036 202.627 149.149 +39.9064 202.915 149.361 +37.5732 202.471 149.035 +35.3917 202.807 149.282 +33.1928 203.048 149.459 +30.9914 203.273 149.625 +28.7083 202.924 149.368 +26.5084 203.118 149.511 +24.2298 202.655 149.17 +21.9894 202.416 148.994 +19.7717 202.322 148.925 +17.5577 202.213 148.845 +15.3903 202.65 149.166 +13.1573 202.187 148.826 +10.9921 202.755 149.243 +8.76326 202.1 148.762 +6.58874 202.637 149.157 +4.38579 202.354 148.948 +2.19298 202.376 148.965 +2.04281e-14 202.062 148.734 +-2.18949 202.054 148.728 +-4.37532 201.87 148.593 +-6.56256 201.832 148.564 +-8.75279 201.858 148.584 +-10.9441 201.87 148.592 +-13.173 202.429 149.003 +-15.3537 202.168 148.811 +-17.5507 202.132 148.785 +-19.7482 202.081 148.748 +-21.9197 201.775 148.522 +-24.2011 202.415 148.993 +-26.3203 201.676 148.45 +-28.5499 201.804 148.543 +-30.7598 201.755 148.508 +-32.9448 201.531 148.343 +-35.1551 201.452 148.284 +-37.4253 201.675 148.449 +-39.6248 201.483 148.307 +-41.7901 201.118 148.039 +-43.9851 200.896 147.875 +-46.306 201.212 148.108 +-48.4655 200.8 147.805 +-50.8388 201.241 148.13 +-53.0383 200.955 147.919 +-55.2354 200.654 147.697 +-57.6325 201.043 147.983 +-59.9955 201.256 148.14 +-62.2949 201.217 148.112 +-64.5229 200.928 147.899 +-66.9047 201.089 148.018 +-69.1613 200.844 147.837 +-71.583 201.047 147.987 +-73.7872 200.613 147.667 +-76.2505 200.857 147.847 +-78.7548 201.159 148.069 +-81.117 201.057 147.994 +-83.6098 201.243 148.131 +-85.8198 200.724 147.749 +-88.2585 200.72 147.746 +-90.7721 200.849 147.841 +-93.3303 201.034 147.977 +-95.5767 200.521 147.599 +-98.3323 201.04 147.981 +-100.956 201.237 148.127 +-103.248 200.744 147.763 +-105.615 200.381 147.496 +-108.141 200.296 147.434 +-110.754 200.337 147.464 +-113.667 200.87 147.856 +-115.924 200.21 147.37 +-118.778 200.55 147.621 +-121.297 200.287 147.427 +-123.954 200.22 147.378 +-126.663 200.203 147.365 +-129.52 200.377 147.493 +-132.109 200.098 147.288 +-137.803 204.399 150.454 +-140.74 204.48 150.513 +-143.64 204.464 150.502 +-143.2 199.751 147.032 +-142.923 195.406 143.834 +-144.623 193.842 142.683 +-147.188 193.436 142.384 +-150.179 193.555 142.472 +-474.113 599.348 441.168 +-475.797 590.05 434.323 +-477.701 581.243 427.841 +-479.676 572.723 421.569 +-481.559 564.286 415.359 +-483.64 556.262 409.453 +-486.048 548.777 403.943 +-488.156 541.105 398.296 +-490.193 533.51 392.705 +-492.044 525.864 387.077 +-493.827 518.297 381.507 +-145.235 149.708 110.197 +-142.245 144.017 106.008 +-142.604 141.823 104.393 +-142.736 139.449 102.645 +-142.57 136.836 100.722 +-141.71 133.624 98.3581 +-142.627 132.137 97.2632 +-148.228 134.929 99.3184 +-148.748 133.045 97.9312 +-514.192 451.915 332.645 +-516.887 446.399 328.585 +-518.469 440.004 323.878 +-520.716 434.258 319.648 +-522.528 428.227 315.209 +-524.815 422.659 311.111 +-526.735 416.866 306.846 +-529.074 411.47 302.874 +-531.047 405.851 298.738 +-533.157 400.401 294.727 +-535.116 394.897 290.676 +-537.294 389.613 286.786 +-539.323 384.275 282.857 +-563.466 394.471 290.362 +-570 392.065 288.591 +-564.039 381.16 280.564 +-567.376 376.668 277.258 +-570.347 371.957 273.79 +-570.678 365.579 269.095 +-573.593 360.909 265.658 +-576.53 356.276 262.247 +-578.372 350.999 258.363 +-580.465 345.915 254.621 +-583.625 341.491 251.364 +-586.489 336.908 247.991 +-593.476 334.668 246.342 +-589.662 326.379 240.241 +-567.145 308.082 226.772 +-572.546 305.195 224.648 +-576.502 301.511 221.936 +-384.671 197.361 145.273 +-382.554 192.516 141.707 +-383.176 189.105 139.196 +-383.24 185.451 136.507 +-379.892 180.216 132.653 +-382.523 177.861 130.92 +-380.694 173.461 127.681 +-381.684 170.389 125.419 +-382.285 167.162 123.044 +-382.405 163.75 120.533 +-384.608 161.242 118.687 +-135.878 55.7572 41.0417 +-383.837 154.123 113.447 +-382.976 150.431 110.729 +-381.794 146.659 107.953 +-381.918 143.425 105.572 +-382.912 140.536 103.445 +-599.925 215.112 158.339 +-383.423 134.265 98.8299 +-380.905 130.213 95.847 +-381.747 127.346 93.7366 +-381.629 124.175 91.4027 +-382.122 121.223 89.2295 +-615.416 190.252 140.041 +-617.923 186.061 136.956 +-620.197 181.794 133.815 +-381.958 108.931 80.1816 +-3097.99 859.082 632.352 +-380.562 102.548 75.4837 +-381.279 99.7707 73.4391 +-382.536 97.1356 71.4995 +-381.279 93.8788 69.1022 +-378.926 90.3948 66.5377 +-381.14 88.0166 64.7872 +-380.827 85.0554 62.6074 +-381.444 82.3131 60.589 +-380.676 79.2862 58.3609 +-381.714 76.6468 56.4181 +-380.488 73.5664 54.1507 +-381.856 70.9982 52.2603 +-381.048 68.033 50.0777 +-381.478 65.3022 48.0676 +-380.701 62.3778 45.915 +-380.773 59.6078 43.876 +-380.815 56.8414 41.8397 +-381.121 54.1209 39.8373 +-381.002 51.3474 37.7957 +-380.359 48.5166 35.712 +-380.277 45.7702 33.6905 +-381.352 43.1632 31.7715 +-381.211 40.4183 29.7511 +-381.634 37.7377 27.7779 +-380.935 34.9539 25.7288 +-381.896 32.3258 23.7944 +-380.341 29.4941 21.71 +-380.347 26.7989 19.7261 +-380.922 24.1437 17.7717 +-380.87 21.4489 15.7881 +-380.489 18.7418 13.7955 +-380.977 16.0798 11.836 +-380.238 13.37 9.84138 +-381.068 10.7169 7.88852 +-150.049 3.16435 2.32921 +-145.578 2.04645 1.50635 +-145.494 1.02256 0.752685 +95.7 0 -1.7053e-13 +97.4963 0.689743 0.498174 +96.3853 1.36387 0.98507 +97.4666 2.06902 1.49437 +96.5412 2.73298 1.97393 +96.608 3.41937 2.46968 +96.4676 4.09844 2.96014 +95.6213 4.74113 3.42433 +96.4644 5.4683 3.94954 +96.4019 6.1505 4.44227 +96.332 6.83225 4.93466 +96.2548 7.51347 5.42668 +96.1703 8.19412 5.91829 +96.9726 8.95671 6.46908 +95.9792 9.55352 6.90013 +96.765 10.3274 7.45906 +96.5511 11.0002 7.94503 +96.429 11.6828 8.43803 +96.991 12.4533 8.99456 +95.9656 13.0185 9.40278 +95.7233 13.6829 9.88261 +95.4741 14.3448 10.3607 +96.1995 15.1589 10.9486 +96.0326 15.8388 11.4398 +95.9563 16.5344 11.9421 +95.7746 17.2126 12.432 +95.5857 17.8895 12.9209 +95.4867 18.5839 13.4224 +96.1563 19.4353 14.0373 +95.9434 20.1148 14.5281 +95.7232 20.7927 15.0178 +96.363 21.664 15.6471 +96.1262 22.3449 16.1389 +95.7861 23.0011 16.6128 +96.3955 23.8912 17.2557 +96.1347 24.5721 17.7475 +95.8665 25.2513 18.238 +96.2549 26.1086 18.8572 +96.1592 26.8413 19.3864 +96.5265 27.71 20.0138 +97.1642 28.6691 20.7065 +96.8519 29.3553 21.2022 +96.5322 30.0393 21.6962 +97.0426 30.9885 22.3818 +96.5198 31.6131 22.8329 +96.1759 32.2947 23.3252 +96.0087 33.0373 23.8615 +96.5664 34.0384 24.5846 +96.379 34.7862 25.1247 +96.0009 35.4667 25.6162 +96.6124 36.5213 26.3779 +96.1253 37.1685 26.8453 +95.8114 37.8827 27.3612 +95.937 38.776 28.0064 +96.3178 39.7845 28.7348 +96.0633 40.5392 29.2799 +96.153 41.4456 29.9345 +96.4941 42.4723 30.6761 +96.0332 43.1534 31.168 +95.5651 43.8311 31.6575 +95.6958 44.7892 32.3495 +95.9855 45.8348 33.1047 +96.0885 46.8044 33.8049 +96.3483 47.8635 34.5699 +95.8294 48.5433 35.0609 +95.8936 49.5243 35.7695 +96.0278 50.554 36.5132 +95.5633 51.2761 37.0347 +95.6709 52.3129 37.7836 +95.8459 53.4009 38.5694 +96.0865 54.5419 39.3935 +95.9842 55.5021 40.087 +95.3831 56.179 40.5759 +95.5786 57.3338 41.4099 +95.4369 58.3005 42.1081 +95.5197 59.4176 42.915 +95.5069 60.4903 43.6898 +95.5565 61.6178 44.5041 +94.8895 62.2915 44.9907 +95.0641 63.5276 45.8835 +95.4491 64.9272 46.8943 +95.507 66.1265 47.7605 +95.4708 67.2783 48.5924 +95.3421 68.3808 49.3887 +95.1969 69.4866 50.1874 +95.1088 70.6503 51.0279 +95.0028 71.8181 51.8714 +95.4593 73.4361 53.04 +95.2406 74.5591 53.8511 +95.0763 75.7414 54.705 +94.9644 76.9843 55.6027 +95.3938 78.694 56.8375 +95.1682 79.8907 57.7019 +94.8553 81.0313 58.5257 +94.5932 82.233 59.3937 +94.988 84.0343 60.6947 +94.682 85.2454 61.5694 +94.7547 86.823 62.7088 +94.4725 88.1014 63.6322 +94.5596 89.7527 64.8249 +94.1684 90.9776 65.7096 +94.394 92.8284 67.0463 +94.0205 94.123 67.9813 +93.813 95.609 69.0546 +93.9499 97.4824 70.4077 +93.9319 99.2367 71.6747 +93.9433 101.063 72.9939 +94.3984 103.418 74.6948 +93.5166 104.345 75.3641 +91.1123 103.55 74.7903 +90.2809 104.523 75.4929 +88.3027 104.155 75.227 +88.1847 105.985 76.5491 +88.3651 108.228 78.1686 +88.1771 110.073 79.5013 +88.2246 112.265 81.0845 +88.7085 115.084 83.1209 +88.1978 116.676 84.2703 +88.8441 119.866 86.5742 +87.9564 121.048 87.4285 +87.8 123.281 89.041 +87.7006 125.661 90.7601 +92.0169 134.573 97.1966 +93.046 138.923 100.338 +92.8615 141.58 102.258 +92.7191 144.389 104.287 +92.7503 147.568 106.582 +92.7645 150.83 108.938 +92.6717 154.03 111.25 +92.5168 157.241 113.569 +92.3421 160.534 115.948 +92.1863 163.984 118.44 +92.5733 168.556 121.741 +92.111 171.732 124.035 +92.3688 176.406 127.411 +92.3032 180.648 130.475 +90.917 182.422 131.756 +89.7562 184.717 133.414 +87.4418 184.664 133.376 +91.6493 198.716 143.525 +91.251 203.242 146.793 +89.3601 204.567 147.751 +86.8941 204.578 147.759 +84.3078 204.263 147.531 +81.8277 204.158 147.455 +79.4164 204.188 147.477 +77.0107 204.199 147.485 +74.5256 203.958 147.311 +72.1343 203.932 147.292 +69.8828 204.279 147.542 +67.4741 204.139 147.442 +65.2991 204.687 147.837 +62.561 203.41 146.915 +60.3456 203.767 147.173 +57.9924 203.633 147.076 +55.8198 204.115 147.424 +53.4125 203.709 147.131 +51.1977 204 147.341 +48.8662 203.797 147.195 +46.6887 204.214 147.496 +44.2977 203.658 147.094 +42.0706 203.804 147.2 +39.7656 203.534 147.004 +37.5879 203.888 147.26 +35.2525 203.343 146.867 +33.1798 204.308 147.563 +30.9061 204.052 147.379 +28.5725 203.297 146.833 +26.4039 203.652 147.09 +24.2202 203.912 147.278 +21.911 203.025 146.637 +19.7168 203.092 146.685 +17.5577 203.547 147.014 +15.3598 203.583 147.04 +13.1468 203.36 146.879 +10.9964 204.174 147.467 +8.73534 202.786 146.464 +6.56256 203.164 146.737 +4.37008 202.96 146.59 +2.18687 203.144 146.723 +1.68754e-14 203.315 146.846 +-2.19036 203.469 146.957 +-4.37881 203.365 146.882 +-6.5678 203.326 146.854 +-8.72487 202.543 146.289 +-10.9441 203.202 146.765 +-13.1206 202.955 146.586 +-15.3049 202.854 146.514 +-17.4949 202.819 146.488 +-19.7482 203.415 146.919 +-21.8587 202.541 146.288 +-24.2202 203.912 147.278 +-26.3307 203.088 146.682 +-28.4593 202.491 146.251 +-30.6623 202.443 146.217 +-32.984 203.102 146.693 +-35.0577 202.219 146.055 +-37.3071 202.365 146.16 +-39.4684 202.013 145.906 +-41.7901 202.446 146.218 +-43.9504 202.062 145.942 +-46.306 202.54 146.287 +-48.5227 202.365 146.16 +-50.8189 202.49 146.251 +-52.8927 201.727 145.699 +-55.2137 201.898 145.823 +-57.4525 201.737 145.707 +-59.9955 202.584 146.319 +-62.1255 201.995 145.893 +-64.4979 202.176 146.024 +-66.6718 201.711 145.688 +-69.1346 202.091 145.963 +-71.3349 201.673 145.661 +-73.844 202.093 145.964 +-76.0166 201.563 145.581 +-78.4241 201.636 145.634 +-80.8697 201.767 145.728 +-83.3877 202.033 145.92 +-85.6244 201.589 145.6 +-88.2919 202.122 145.985 +-90.4301 201.414 145.473 +-93.3653 202.437 146.212 +-95.5051 201.693 145.675 +-98.3689 202.442 146.216 +-100.956 202.566 146.305 +-103.21 201.993 145.892 +-105.654 201.778 145.737 +-108.22 201.766 145.728 +-110.795 201.734 145.704 +-113.253 201.458 145.505 +-115.924 201.531 145.558 +-118.735 201.801 145.753 +-120.947 201.026 145.193 +-123.909 201.469 145.513 +-126.527 201.307 145.396 +-129.474 201.627 145.627 +-131.828 200.99 145.167 +-137.66 205.535 148.45 +-140.352 205.262 148.253 +-143.246 205.249 148.243 +-143.2 201.069 145.224 +-142.923 196.696 142.065 +-144.159 194.495 140.476 +-147.031 194.505 140.483 +-149.914 194.489 140.472 +-1760.46 2240.17 1617.98 +-476.287 594.555 429.424 +-477.922 585.35 422.775 +-480.235 577.174 416.87 +-481.559 568.01 410.251 +-484.156 560.531 404.849 +-486.339 552.729 399.214 +-488.508 545.07 393.682 +-490.193 537.031 387.876 +-492.766 530.112 382.879 +-494.436 522.361 377.281 +-142.218 147.565 106.581 +-141.933 144.651 104.476 +-142.478 142.633 103.018 +-142.863 140.494 101.473 +-142.442 137.614 99.3934 +-142.099 134.876 97.4156 +-143.283 133.621 96.5092 +-147.698 135.334 97.7464 +-148.48 133.682 96.5531 +-514.8 455.435 328.943 +-516.682 449.168 324.416 +-518.675 443.085 320.023 +-521.341 437.649 316.097 +-522.528 431.053 311.333 +-525.239 425.793 307.533 +-526.521 419.447 302.95 +-529.29 414.355 299.272 +-531.047 408.529 295.065 +-533.376 403.209 291.222 +-535.853 398.052 287.497 +-537.963 392.673 283.612 +-540.072 387.348 279.766 +-568.749 400.797 289.48 +-570 394.653 285.042 +-565.417 384.613 277.791 +-567.453 379.206 273.886 +-570.114 374.259 270.312 +-571.226 368.344 266.04 +-574.696 363.99 262.896 +-577.085 358.973 259.272 +-579.091 353.755 255.503 +-580.385 348.15 251.455 +-584.838 344.459 248.789 +-584.942 338.238 244.296 +-593.639 336.97 243.38 +-588.591 327.936 236.855 +-569.466 311.384 224.901 +-573.297 307.612 222.176 +-577.341 303.942 219.526 +-2763.37 1427.14 1030.77 +-382.554 193.787 139.965 +-382.921 190.226 137.393 +-383.411 186.758 134.888 +-380.409 181.652 131.2 +-381.051 178.346 128.812 +-380.694 174.606 126.111 +-381.684 171.513 123.877 +-382.11 168.188 121.475 +-381.257 164.336 118.694 +-384.874 162.419 117.309 +-135.7 56.0516 40.4839 +-383.837 155.14 112.052 +-381.358 150.784 108.906 +-382.335 147.837 106.777 +-382.281 144.509 104.373 +-383.003 141.497 102.197 +-600.199 216.631 156.464 +-382.047 134.667 97.2645 +-381.733 131.357 94.8739 +-381.747 128.186 92.5839 +-382.185 125.177 90.4105 +-381.471 121.815 87.9824 +-616.163 191.741 138.487 +-618.204 187.375 135.333 +-621.043 183.243 132.349 +-3088.56 886.64 640.385 +-3097.99 864.752 624.576 +-379.519 102.942 74.3511 +-381.183 100.404 72.5179 +-380.915 97.3624 70.321 +-381.566 94.5689 68.3034 +-377.775 90.715 65.5199 +-382.198 88.8431 64.1679 +-381.405 85.7464 61.9313 +-382.024 82.982 59.9347 +-381.741 80.0327 57.8045 +-381.132 77.0349 55.6393 +-380.78 74.1087 53.5258 +-381.271 71.3574 51.5386 +-380.755 68.4293 49.4238 +-380.891 65.632 47.4034 +-380.995 62.8381 45.3855 +-381.362 60.094 43.4035 +-381.405 57.3052 41.3893 +-380.825 54.436 39.3169 +-381.002 51.6863 37.331 +-380.951 48.9129 35.3279 +-380.87 46.1442 33.3281 +-381.649 43.4819 31.4052 +-381.012 40.6639 29.3699 +-381.435 37.967 27.4221 +-381.234 35.2121 25.4323 +-381.3 32.4884 23.4651 +-380.341 29.6887 21.443 +-379.849 26.9404 19.458 +-381.221 24.3222 17.567 +-380.571 21.5735 15.5817 +-380.489 18.8655 13.6258 +-380.977 16.1859 11.6904 +-381.137 13.4901 9.74337 +-380.468 10.7706 7.77922 +-145.95 3.09822 2.23772 +-147.478 2.08684 1.50724 +-145.494 1.02931 0.743429 +95.8 -1.77636e-15 -1.7053e-13 +96.5963 0.687801 0.487391 +96.4853 1.37413 0.973737 +96.5669 2.06319 1.46202 +96.4412 2.74783 1.94717 +96.608 3.44152 2.43873 +96.5675 4.12925 2.92607 +96.4198 4.81168 3.40966 +96.4644 5.5037 3.90004 +96.3022 6.18393 4.38207 +96.332 6.87649 4.87283 +96.2548 7.56212 5.35868 +96.8664 8.3069 5.88645 +96.1778 8.94086 6.33569 +96.674 9.68498 6.86298 +96.765 10.3943 7.36559 +95.7589 10.9806 7.78106 +95.6378 11.662 8.26395 +96.2008 12.4318 8.80946 +95.9656 13.1028 9.28495 +96.6096 13.899 9.84913 +96.359 14.5715 10.3257 +95.2178 15.1013 10.7011 +96.1306 15.9576 11.3079 +95.7607 16.6076 11.7685 +95.7746 17.324 12.2762 +95.3908 17.9686 12.7329 +96.3619 18.8757 13.3757 +96.2533 19.5809 13.8754 +96.0402 20.2654 14.3605 +95.7232 20.9274 14.8296 +96.4594 21.8262 15.4665 +96.1262 22.4896 15.9366 +96.649 23.3585 16.5524 +95.6305 23.855 16.9042 +96.1347 24.7312 17.5251 +95.7714 25.3896 17.9916 +96.2549 26.2776 18.6209 +95.9701 26.962 19.1059 +96.5265 27.8894 19.763 +96.2245 28.5757 20.2493 +96.8519 29.5454 20.9365 +96.1588 30.1169 21.3415 +97.0426 31.1892 22.1013 +96.7053 31.879 22.5901 +96.3606 32.5663 23.0772 +96.8371 33.538 23.7658 +96.5664 34.2588 24.2765 +96.1963 34.9451 24.7628 +96.7289 35.967 25.487 +96.6124 36.7578 26.0474 +96.1253 37.4092 26.5089 +96.4406 38.3783 27.1957 +96.116 39.0999 27.707 +96.3178 40.0421 28.3747 +95.8859 40.7263 28.8595 +96.2413 41.7523 29.5865 +96.582 42.7863 30.3193 +96.6455 43.7097 30.9736 +96.3484 44.4765 31.517 +95.6958 45.0792 31.9441 +95.9855 46.1316 32.6898 +96.1742 47.1494 33.4111 +96.3483 48.1734 34.1367 +96.5927 49.2468 34.8973 +95.8936 49.845 35.3212 +96.1116 50.9257 36.0871 +95.5633 51.6082 36.5707 +95.6709 52.6516 37.3101 +95.8459 53.7467 38.086 +96.0865 54.8951 38.8998 +95.9842 55.8614 39.5846 +95.3022 56.4948 40.0334 +95.4982 57.6565 40.8566 +95.5168 58.7271 41.6153 +95.6784 59.9016 42.4476 +95.5069 60.882 43.1423 +95.5565 62.0168 43.9464 +95.589 63.1569 44.7544 +95.5271 64.2503 45.5292 +95.4491 65.3476 46.3067 +95.507 66.5546 47.162 +95.3953 67.6604 47.9456 +95.2672 68.7695 48.7316 +95.1969 69.9365 49.5585 +95.1825 71.1629 50.4276 +95.6611 72.7839 51.5762 +95.3867 73.8554 52.3355 +95.3125 75.0985 53.2164 +95.1476 76.289 54.06 +94.823 77.3674 54.8242 +95.1835 79.0289 56.0016 +94.543 79.8797 56.6044 +94.9241 81.615 57.8341 +94.6614 82.825 58.6916 +94.988 84.5784 59.9341 +94.6151 85.737 60.7551 +94.7547 87.3852 61.923 +94.4725 88.6719 62.8348 +94.5596 90.3339 64.0125 +94.1684 91.5667 64.8861 +94.394 93.4295 66.2061 +94.1463 94.8589 67.2191 +93.8752 96.2917 68.2343 +93.9499 98.1136 69.5254 +93.9928 99.9445 70.8228 +93.823 101.587 71.9867 +93.7441 103.366 73.2477 +93.8105 105.35 74.6532 +92.0414 105.283 74.6058 +90.3956 105.333 74.6411 +88.3027 104.829 74.2843 +87.9051 106.334 75.3505 +88.0339 108.521 76.9 +88.1226 110.717 78.4565 +88.0097 112.717 79.8736 +88.4965 115.553 81.8833 +88.3545 117.639 83.3617 +88.5865 120.293 85.2419 +87.9056 121.762 86.2832 +87.8 124.079 87.9252 +88.0453 126.972 89.9754 +92.7926 136.586 96.7875 +92.7119 139.321 98.7255 +92.9084 142.569 101.027 +93.1347 145.975 103.441 +92.7503 148.523 105.247 +92.7645 151.806 107.573 +92.7155 155.101 109.908 +92.8182 158.774 112.511 +92.6379 162.092 114.862 +92.5595 165.715 117.429 +92.1665 168.901 119.687 +92.111 172.844 122.481 +92.3688 177.549 125.815 +92.0736 181.365 128.519 +90.3551 182.468 129.301 +89.4996 185.382 131.366 +87.1909 185.327 131.326 +91.3341 199.315 141.239 +91.251 204.558 144.954 +89.1932 205.507 145.627 +86.6011 205.209 145.415 +84.1809 205.276 145.463 +81.6114 204.936 145.222 +79.0856 204.654 145.022 +76.8353 205.053 145.305 +74.5824 205.436 145.576 +72.024 204.94 145.225 +69.669 204.972 145.248 +67.2671 204.83 145.147 +65.0738 205.302 145.481 +62.44 204.332 144.794 +60.3456 205.086 145.329 +57.7899 204.236 144.726 +55.625 204.719 145.068 +53.3086 204.629 145.004 +51.0382 204.681 145.041 +48.7326 204.556 144.953 +46.5794 205.055 145.307 +44.1587 204.335 144.796 +41.9551 204.561 144.956 +39.6561 204.288 144.763 +37.4845 204.643 145.014 +35.1969 204.337 144.797 +33.0492 204.822 145.141 +30.6867 203.916 144.499 +28.4706 203.883 144.476 +26.3203 204.322 144.787 +24.1148 204.339 144.799 +21.8674 203.934 144.512 +19.6932 204.163 144.674 +17.4391 203.482 144.191 +15.3049 204.168 144.678 +13.0683 203.455 144.172 +10.9136 203.947 144.521 +8.70393 203.365 144.109 +6.53638 203.663 144.32 +4.35438 203.539 144.232 +2.17902 203.725 144.364 +1.95399e-14 203.244 144.023 +-2.18338 204.133 144.653 +-4.34739 203.213 144.001 +-6.54424 203.908 144.494 +-8.73185 204.018 144.571 +-10.9048 203.784 144.406 +-13.084 203.699 144.345 +-15.2499 203.435 144.158 +-17.4182 203.238 144.018 +-19.6854 204.082 144.617 +-21.7802 203.121 143.936 +-24.0477 203.77 144.396 +-26.1112 202.699 143.637 +-28.3687 203.154 143.959 +-30.577 203.187 143.983 +-32.8273 203.446 144.166 +-34.9185 202.72 143.652 +-37.248 203.352 144.099 +-39.2025 201.951 143.107 +-41.6415 203.032 143.873 +-43.8462 202.888 143.771 +-45.9962 202.489 143.488 +-48.1793 202.233 143.307 +-50.6993 203.322 144.078 +-52.7264 202.394 143.421 +-55.0189 202.489 143.488 +-57.1826 202.09 143.205 +-59.5519 202.389 143.417 +-61.8352 202.353 143.392 +-64.2976 202.852 143.746 +-66.2836 201.836 143.025 +-68.8941 202.693 143.632 +-71.1144 202.351 143.391 +-73.6452 202.854 143.747 +-75.7827 202.244 143.314 +-78.2136 202.397 143.423 +-80.6843 202.608 143.573 +-83.4194 203.419 144.147 +-85.2663 202.046 143.174 +-88.0249 202.816 143.72 +-90.1907 202.181 143.27 +-93.0151 202.983 143.838 +-95.2184 202.389 143.417 +-98.0024 202.994 143.846 +-100.132 202.213 143.292 +-102.942 202.774 143.69 +-105.029 201.883 143.059 +-107.822 202.325 143.371 +-109.941 201.474 142.769 +-112.921 202.169 143.261 +-115.502 202.097 143.21 +-118.003 201.856 143.04 +-120.596 201.741 142.958 +-123.463 202.043 143.172 +-125.619 201.157 142.544 +-129.059 202.281 143.341 +-131.217 201.354 142.684 +-137.374 206.435 146.284 +-140.061 206.163 146.092 +-143.049 206.294 146.184 +-143.25 202.441 143.454 +-142.923 197.969 140.285 +-143.129 194.356 137.725 +-146.091 194.512 137.835 +-149.755 195.54 138.564 +-1760.46 2254.67 1597.71 +-477.267 599.637 424.916 +-478.198 589.48 417.718 +-480.906 581.724 412.222 +-482.521 572.831 405.92 +-484.615 564.695 400.155 +-486.861 556.905 394.635 +-489.801 550.051 389.778 +-490.907 541.296 383.574 +-493.729 534.587 378.82 +-495.593 526.973 373.425 +-142.095 148.393 105.154 +-142.556 146.226 103.619 +-142.982 144.064 102.087 +-142.8 141.341 100.157 +-142.699 138.756 98.3254 +-142.359 135.997 96.3706 +-145.579 136.641 96.8268 +-148.891 137.31 97.3009 +-513.625 465.428 329.812 +-515.408 458.926 325.205 +-517.91 453.15 321.112 +-519.226 446.427 316.348 +-522.175 441.187 312.635 +-524 435.066 308.297 +-526.512 429.588 304.415 +-527.805 423.192 299.883 +-530.369 417.888 296.124 +-531.699 411.681 291.726 +-534.985 407.045 288.441 +-536.148 400.849 284.05 +-538.408 395.543 280.29 +-547.711 395.371 280.168 +-563.919 399.967 283.425 +-566.655 394.877 279.818 +-570.627 390.669 276.837 +-568.764 382.544 271.079 +-570.891 377.196 267.289 +-572.791 371.745 263.426 +-576.036 367.201 260.207 +-577.482 361.545 256.199 +-579.809 356.487 252.615 +-582.314 351.569 249.129 +-584.191 346.306 245.4 +-586.57 341.375 241.906 +-592.738 338.637 239.965 +-588.096 329.782 233.69 +-573.943 315.864 223.828 +-573.63 309.784 219.519 +-578.683 306.621 217.278 +-579.747 301.35 213.543 +-382.639 195.085 138.241 +-381.727 190.861 135.248 +-382.982 187.757 133.049 +-381.443 183.325 129.908 +-378.28 178.196 126.273 +-379.649 175.254 124.189 +-381.422 172.505 122.24 +-381.319 168.926 119.705 +-381.787 165.63 117.369 +-382.834 162.604 115.225 +-135.7 56.4146 39.9766 +-382.853 155.744 110.364 +-382.167 152.082 107.769 +-382.335 148.794 105.439 +-381.465 145.135 102.846 +-381.547 141.872 100.533 +-600.017 217.967 154.456 +-383.515 136.059 96.4145 +-382.654 132.526 93.911 +-382.024 129.11 91.4902 +-382.185 125.988 89.2776 +-381.936 122.753 86.9857 +-616.163 192.982 136.751 +-618.204 188.588 133.637 +-621.513 184.569 130.79 +-381.958 110.36 78.2032 +-626.217 175.931 124.668 +-380.942 103.997 73.6946 +-381.944 101.256 71.7519 +-381.773 98.214 69.5965 +-380.801 94.9903 67.3122 +-377.391 91.2094 64.6329 +-381.429 89.2389 63.2366 +-382.272 86.4975 61.2939 +-381.444 83.3929 59.094 +-380.288 80.2445 56.863 +-381.423 77.593 54.984 +-382.53 74.9314 53.098 +-381.563 71.8745 50.9318 +-381.244 68.9608 48.8671 +-380.988 66.074 46.8214 +-381.583 63.3426 44.8859 +-381.068 60.4364 42.8265 +-381.798 57.7358 40.9128 +-381.121 54.8309 38.8543 +-381.002 52.0209 36.8631 +-381.248 49.2679 34.9123 +-381.562 46.5274 32.9703 +-381.649 43.7634 31.0117 +-380.715 40.8953 28.9793 +-380.84 38.1532 27.0362 +-381.234 35.4401 25.1136 +-381.598 32.7243 23.1892 +-381.635 29.9826 21.2463 +-380.945 27.1931 19.2696 +-380.922 24.4604 17.3332 +-379.673 21.6619 15.3501 +-381.088 19.0176 13.4762 +-380.977 16.2907 11.5439 +-380.238 13.5454 9.59855 +-379.868 10.8233 7.66965 +-150.548 3.21654 2.27931 +-146.478 2.08611 1.47826 +-146.294 1.04167 0.738149 +96.5 -3.55271e-15 -1.7053e-13 +96.4963 0.691454 0.480668 +96.4853 1.38286 0.961301 +96.4669 2.07416 1.44186 +96.4412 2.76529 1.92231 +96.608 3.46338 2.40758 +96.5675 4.15548 2.8887 +96.5196 4.84725 3.36959 +96.4644 5.53866 3.85023 +96.4019 6.22965 4.33057 +96.332 6.92017 4.81059 +96.2548 7.61015 5.29024 +96.1703 8.29956 5.76948 +96.9726 9.07197 6.30643 +95.9792 9.67646 6.72664 +96.765 10.4603 7.27152 +96.6502 11.1532 7.75321 +96.3301 11.821 8.21743 +96.1021 12.498 8.68804 +95.9656 13.1861 9.16637 +96.6096 13.9873 9.72334 +95.3757 14.5144 10.0897 +96.1013 15.3382 10.6625 +96.1306 16.059 11.1635 +95.7607 16.7131 11.6182 +95.7746 17.4341 12.1194 +95.5857 18.1197 12.596 +96.4591 19.0148 13.2182 +96.1563 19.6854 13.6844 +96.0402 20.3941 14.1771 +96.5926 21.2515 14.7731 +96.363 21.9428 15.2537 +96.1262 22.6325 15.7331 +95.6902 23.2737 16.1789 +96.2999 24.1746 16.8051 +95.9439 24.839 17.267 +96.5322 25.7539 17.9029 +96.3497 26.4707 18.4012 +95.9701 27.1333 18.8619 +96.5265 28.0666 19.5106 +96.1306 28.7291 19.9712 +96.8519 29.7331 20.6691 +96.1588 30.3082 21.0689 +96.8565 31.3271 21.7772 +96.7053 32.0815 22.3016 +96.453 32.8046 22.8043 +96.0087 33.4624 23.2616 +96.5664 34.4764 23.9665 +96.1963 35.1671 24.4466 +96.7289 36.1955 25.1615 +96.4311 36.9219 25.6665 +96.2156 37.6822 26.195 +96.4406 38.6221 26.8483 +96.8319 39.6414 27.5569 +96.3178 40.2965 28.0123 +95.7972 40.9472 28.4646 +96.2413 42.0175 29.2087 +96.4941 43.0189 29.9048 +96.1207 43.7485 30.412 +96.3484 44.759 31.1145 +95.869 45.4477 31.5932 +96.5886 46.7164 32.4751 +96.0885 47.4067 32.955 +95.581 48.0933 33.4323 +96.5927 49.5596 34.4516 +95.8936 50.1616 34.8701 +96.1116 51.2492 35.6262 +96.2304 52.2985 36.3556 +95.7538 53.032 36.8655 +95.6811 53.9951 37.535 +95.2674 54.7728 38.0756 +96.0656 56.2639 39.1122 +95.3022 56.8536 39.5221 +95.4178 57.9739 40.3009 +94.798 58.6553 40.7746 +95.5197 60.1822 41.836 +95.4281 61.2182 42.5561 +95.5565 62.4107 43.3851 +95.5112 63.5065 44.1469 +95.5271 64.6585 44.9477 +94.9129 65.3933 45.4585 +95.4309 66.924 46.5226 +95.3953 68.0902 47.3332 +95.2672 69.2064 48.1092 +95.1969 70.3808 48.9256 +95.1088 71.5595 49.7449 +95.0028 72.7422 50.5672 +94.879 73.9289 51.3921 +95.3845 75.6326 52.5764 +95.1476 76.7736 53.3696 +95.6008 78.4975 54.5679 +95.3938 79.7066 55.4085 +95.1682 80.9187 56.2511 +94.9241 82.1335 57.0955 +94.6614 83.3511 57.942 +94.9204 85.0549 59.1264 +94.6151 86.2816 59.9791 +94.8872 88.0626 61.2172 +94.5381 89.2975 62.0756 +94.6895 91.0325 63.2817 +94.2327 92.2108 64.1008 +94.2032 93.8333 65.2287 +94.2722 95.5888 66.449 +93.7507 96.7752 67.2738 +93.9499 98.7368 68.6374 +93.9928 100.579 69.9183 +93.7628 102.167 71.0216 +93.9225 104.221 72.4497 +94.1632 106.418 73.9772 +92.9125 106.954 74.3499 +91.1987 106.944 74.3425 +88.8125 106.105 73.7591 +87.961 107.078 74.4355 +87.9236 109.073 75.8225 +88.286 111.626 77.5977 +88.4932 114.056 79.2867 +88.5495 116.357 80.886 +88.5113 118.597 82.4431 +88.329 120.704 83.9083 +87.4996 121.97 84.7879 +87.6 124.583 86.6048 +87.9961 127.708 88.7766 +92.7926 137.453 95.5513 +93.0937 140.783 97.8659 +92.9084 143.474 99.7369 +93.0423 146.757 102.019 +92.7503 149.467 103.903 +92.8091 152.844 106.25 +92.7593 156.16 108.556 +92.4738 159.19 110.662 +92.3421 162.6 113.032 +92.4766 166.618 115.825 +92.5326 170.65 118.628 +92.43 174.545 121.336 +92.3688 178.676 124.208 +91.8058 181.987 126.509 +89.7183 182.333 126.75 +89.0598 185.643 129.05 +87.2268 186.58 129.702 +91.3691 200.658 139.488 +90.909 205.085 142.566 +88.5923 205.419 142.798 +85.8198 204.649 142.263 +83.5463 205.023 142.523 +80.9934 204.676 142.282 +78.7548 205.092 142.571 +76.309 204.942 142.467 +74.0428 205.245 142.677 +71.583 204.979 142.492 +69.3216 205.246 142.678 +66.8271 204.783 142.356 +64.6231 205.175 142.628 +62.1255 204.594 142.225 +60.0421 205.351 142.751 +57.3625 204.013 141.821 +55.4518 205.378 142.77 +52.8512 204.162 141.924 +50.8986 205.418 142.797 +48.3892 204.405 142.093 +46.3789 205.47 142.833 +43.8809 204.339 142.047 +41.8231 205.213 142.655 +39.4058 204.288 142.012 +37.3514 205.212 142.654 +34.9185 204.008 141.817 +32.8534 204.902 142.439 +30.577 204.478 142.144 +28.4027 204.689 142.29 +26.153 204.313 142.029 +23.9806 204.492 142.154 +21.7628 204.248 141.984 +19.5599 204.068 141.859 +17.3624 203.873 141.724 +15.2438 204.645 142.26 +12.9741 203.271 141.305 +10.8438 203.93 141.763 +8.6481 203.344 141.355 +6.51021 204.137 141.907 +4.32296 203.354 141.363 +2.17203 204.364 142.064 +2.04281e-14 203.714 141.613 +-2.1764 204.774 142.35 +-4.33518 203.929 141.762 +-6.52068 204.465 142.135 +-8.66555 203.754 141.641 +-10.8656 204.341 142.048 +-12.9898 203.517 141.476 +-15.195 203.99 141.805 +-17.3136 203.299 141.325 +-19.5285 203.741 141.632 +-21.6931 203.593 141.529 +-23.9614 204.329 142.04 +-26.038 203.414 141.405 +-28.3121 204.036 141.837 +-30.3333 202.848 141.011 +-32.6185 203.436 141.42 +-34.7933 203.276 141.309 +-37.0558 203.588 141.525 +-39.0617 202.504 140.772 +-41.5095 203.674 141.585 +-43.5162 202.641 140.867 +-45.814 202.967 141.093 +-47.874 202.228 140.58 +-50.3603 203.245 141.287 +-52.3522 202.234 140.584 +-54.9107 203.374 141.377 +-57.0476 202.893 141.042 +-59.4352 203.275 141.308 +-61.5691 202.762 140.951 +-63.9471 203.028 141.136 +-66.1024 202.562 140.812 +-68.7604 203.584 141.523 +-70.8112 202.768 140.955 +-73.3612 203.355 141.363 +-75.3734 202.429 140.72 +-77.973 203.056 141.156 +-80.0972 202.412 140.708 +-82.4992 202.453 140.736 +-84.9733 202.63 140.859 +-87.6911 203.33 141.346 +-89.8829 202.771 140.957 +-92.2796 202.657 140.878 +-94.7525 202.679 140.893 +-97.2694 202.756 140.947 +-99.6079 202.431 140.721 +-102.253 202.697 140.906 +-104.325 201.805 140.286 +-107.503 203.007 141.121 +-109.575 202.079 140.476 +-112.548 202.78 140.964 +-114.614 201.818 140.295 +-117.573 202.397 140.697 +-120.158 202.284 140.619 +-122.704 202.078 140.475 +-124.802 201.118 139.808 +-128.597 202.838 141.004 +-130.466 201.473 140.055 +-136.324 206.159 143.313 +-139.237 206.252 143.377 +-142.36 206.604 143.622 +-143.1 203.514 141.474 +-142.974 199.297 138.543 +-142.614 194.887 135.477 +-144.366 193.437 134.469 +-148.642 195.32 135.778 +-155.548 200.481 139.365 +-478.574 605.099 420.638 +-479.523 594.868 413.526 +-482.416 587.257 408.235 +-483.371 577.484 401.441 +-486.622 570.637 396.681 +-488.255 562.047 390.71 +-490.918 554.807 385.677 +-492.394 546.385 379.822 +-495.053 539.426 374.985 +-145.433 155.624 108.183 +-142.526 149.788 104.126 +-142.058 146.64 101.938 +-143.296 145.298 101.005 +-142.227 141.668 98.4812 +-142.12 139.071 96.6758 +-142.489 136.986 95.2265 +-148.86 140.608 97.7443 +-149.62 138.859 96.5285 +-515.164 469.788 326.576 +-516.218 462.568 321.557 +-519.683 457.59 318.096 +-521.153 450.931 313.467 +-523.425 445.053 309.381 +-524.981 438.65 304.93 +-527.148 432.839 300.891 +-528.447 426.399 296.413 +-531.88 421.74 293.175 +-533.078 415.37 288.746 +-535.863 410.302 285.224 +-537.18 404.172 280.963 +-545.171 403.055 280.186 +-564.638 410.178 285.137 +-565.957 403.962 280.816 +-568.86 398.931 277.319 +-571.699 393.89 273.815 +-569.073 385.183 267.762 +-572.523 380.677 264.629 +-574.513 375.231 260.844 +-577.533 370.493 257.551 +-578.513 364.492 253.379 +-582.605 360.481 250.59 +-583.198 354.339 246.321 +-585.405 349.23 242.769 +-589.501 345.26 240.01 +-589.134 338.715 235.46 +-580.102 327.365 227.57 +-574.772 318.329 221.288 +-576.632 313.383 217.85 +-579.857 309.195 214.938 +-581.603 304.234 211.49 +-382.554 196.281 136.446 +-381.471 191.944 133.431 +-383.24 189.077 131.438 +-382.563 185.032 128.626 +-378.626 179.492 124.775 +-380.345 176.691 122.828 +-379.672 172.805 120.126 +-382.549 170.547 118.557 +-382.051 166.798 115.95 +-383.011 163.713 113.806 +-136.235 56.9965 39.6214 +-135.583 55.5053 38.5848 +-382.077 153.013 106.368 +-380.71 149.103 103.65 +-381.646 146.126 101.581 +-381.365 142.705 99.2021 +-598.007 218.617 151.973 +-605.168 216.059 150.195 +-380.813 132.726 92.2653 +-381.1 129.616 90.1031 +-381.907 126.695 88.0728 +-380.634 123.112 85.5819 +-618.684 195.002 135.557 +-619.515 190.188 132.21 +-622.358 185.995 129.295 +-381.487 110.924 77.1091 +-383.408 108.4 75.3545 +-381.7 104.866 72.8984 +-382.42 102.026 70.924 +-382.536 99.0349 68.8446 +-379.079 95.1618 66.1522 +-376.912 91.6721 63.7264 +-380.756 89.6473 62.3188 +-380.827 86.7185 60.2828 +-381.251 83.8799 58.3096 +-381.547 81.0215 56.3225 +-381.423 78.0859 54.2818 +-380.975 75.1007 52.2066 +-381.563 72.331 50.2813 +-381.341 69.4166 48.2553 +-380.988 66.4937 46.2235 +-382.465 63.8922 44.415 +-381.068 60.8203 42.2796 +-380.52 57.9079 40.255 +-381.613 55.2505 38.4077 +-381.988 52.4869 36.4865 +-380.853 49.5294 34.4307 +-381.958 46.8715 32.583 +-381.352 44.0072 30.5918 +-381.012 41.1872 28.6315 +-381.634 38.4756 26.7465 +-381.432 35.6838 24.8058 +-382.195 32.9837 22.9288 +-380.64 30.0943 20.9202 +-381.543 27.4087 19.0533 +-380.822 24.6094 17.1074 +-380.571 21.8511 15.1899 +-380.788 19.1233 13.2937 +-380.078 16.3555 11.3696 +-380.737 13.6493 9.48841 +-379.868 10.8921 7.57169 +-147.649 3.17464 2.20687 +-146.178 2.09506 1.45639 +-146.294 1.04829 0.728721 +96.5 -3.55271e-15 -1.7053e-13 +96.3963 0.695041 0.473919 +96.4853 1.39147 0.948786 +96.4669 2.08708 1.42309 +96.6411 2.78829 1.90121 +96.608 3.48496 2.37624 +96.3678 4.17272 2.8452 +96.5196 4.87745 3.32573 +96.2649 5.56165 3.79225 +96.4019 6.26847 4.2742 +96.332 6.96328 4.74797 +97.1507 7.72885 5.26997 +97.0653 8.42902 5.74739 +96.9726 9.12849 6.22433 +96.9718 9.83738 6.70769 +96.765 10.5254 7.17685 +96.6502 11.2227 7.65227 +96.3301 11.8946 8.11045 +96.1021 12.5759 8.57494 +95.9656 13.2682 9.04703 +95.7233 13.9453 9.50871 +96.2607 14.7404 10.0508 +95.4142 15.3234 10.4484 +96.1306 16.1591 11.0182 +95.9563 16.8515 11.4903 +95.5794 17.5069 11.9372 +95.5857 18.2326 12.432 +96.4591 19.1333 13.0461 +96.2533 19.828 13.5199 +95.9434 20.5006 13.9785 +95.7232 21.1915 14.4496 +96.363 22.0795 15.0551 +96.1262 22.7735 15.5283 +96.5531 23.6299 16.1122 +96.2999 24.3252 16.5863 +96.23 25.0683 17.093 +95.7714 25.7101 17.5306 +96.3497 26.6356 18.1617 +95.9701 27.3024 18.6163 +96.5265 28.2414 19.2566 +97.2582 29.2472 19.9424 +96.8519 29.9183 20.4 +96.1588 30.4971 20.7946 +95.833 31.1892 21.2666 +96.7053 32.2814 22.0113 +96.1759 32.9141 22.4427 +96.1007 33.7031 22.9807 +96.5664 34.6913 23.6545 +96.2877 35.4197 24.1512 +95.9099 36.1127 24.6237 +96.4311 37.152 25.3323 +96.0351 37.8458 25.8054 +96.4406 38.8627 26.4988 +96.0265 39.5566 26.9719 +96.4069 40.585 27.6732 +95.8859 41.2404 28.1201 +96.2413 42.2793 28.8284 +95.7911 42.9716 29.3005 +96.0332 43.981 29.9888 +96.3484 45.0379 30.7094 +96.4752 46.02 31.3791 +95.9855 46.7139 31.8522 +96.1742 47.7446 32.555 +96.3483 48.7815 33.262 +95.6598 49.3868 33.6747 +95.8093 50.4297 34.3858 +96.1116 51.5685 35.1624 +95.5633 52.2596 35.6336 +95.6709 53.3162 36.354 +95.9283 54.4719 37.1421 +96.0865 55.588 37.9031 +95.2515 56.1347 38.2758 +95.3022 57.2079 39.0076 +95.4178 58.3351 39.7762 +95.5168 59.4684 40.5489 +95.7577 60.708 41.3942 +95.4281 61.5996 42.0021 +95.5565 62.7996 42.8203 +95.589 63.9541 43.6076 +95.6043 65.1139 44.3984 +95.4491 66.1724 45.1201 +95.507 67.3947 45.9536 +95.3953 68.5144 46.717 +95.3421 69.6923 47.5202 +95.2712 70.8746 48.3263 +95.1088 72.0053 49.0973 +95.6611 73.7026 50.2546 +95.4593 74.8445 51.0333 +95.3125 76.0464 51.8528 +95.1476 77.2519 52.6748 +94.9644 78.4608 53.499 +94.7629 79.6729 54.3255 +94.6125 80.9474 55.1946 +94.7864 82.5255 56.2706 +94.525 83.7498 57.1054 +94.9204 85.5849 58.3566 +94.6151 86.8192 59.1983 +94.7547 88.4882 60.3363 +94.6037 89.9159 61.3098 +94.6895 91.5997 62.4579 +94.2327 92.7853 63.2663 +94.3304 94.5451 64.4663 +93.9575 95.8638 65.3654 +94.1865 97.831 66.7067 +93.2727 98.6365 67.256 +93.6884 100.878 68.7844 +91.4157 100.23 68.3427 +93.7441 104.671 71.3708 +93.693 106.546 72.6491 +93.8997 108.764 74.1617 +93.0341 109.776 74.8512 +90.3984 108.673 74.0991 +89.6945 109.868 74.9143 +88.1995 110.097 75.0704 +88.1771 112.184 76.4934 +88.2783 114.487 78.0641 +88.1256 116.521 79.4505 +87.9888 118.632 80.8899 +88.432 121.599 82.9129 +88.0072 123.441 84.1692 +87.75 125.574 85.6232 +89.5226 130.732 89.1408 +92.7926 138.31 94.3074 +92.7597 141.152 96.2453 +92.9084 144.368 98.4385 +92.7191 147.158 100.341 +93.1589 151.061 103.002 +92.8538 153.87 104.918 +92.7155 157.059 107.092 +92.4738 160.182 109.221 +92.7647 164.363 112.072 +92.4766 167.656 114.317 +92.4512 171.562 116.981 +92.111 175.026 119.342 +92.4079 179.866 122.643 +91.3848 182.281 124.289 +90.3551 184.772 125.988 +88.62 185.877 126.742 +89.1619 191.908 130.854 +91.4391 202.063 137.778 +90.2591 204.888 139.705 +88.1918 205.765 140.302 +85.2337 204.518 139.452 +83.229 205.516 140.133 +80.3135 204.223 139.251 +78.3339 205.267 139.963 +75.7535 204.718 139.588 +73.7588 205.731 140.279 +71.0317 204.667 139.554 +68.8673 205.172 139.898 +66.3612 204.622 139.523 +64.3226 205.493 140.117 +61.5207 203.865 139.007 +59.5519 204.944 139.742 +57.1601 204.559 139.48 +55.0189 205.044 139.811 +52.7056 204.868 139.69 +50.5198 205.159 139.889 +48.0457 204.218 139.248 +46.0509 205.288 139.977 +43.6031 204.31 139.31 +41.4269 204.535 139.464 +39.1399 204.174 139.217 +37.0854 205.02 139.794 +34.6819 203.889 139.023 +32.6315 204.786 139.635 +30.3577 204.275 139.287 +28.2102 204.569 139.487 +25.9753 204.189 139.228 +23.8273 204.45 139.406 +21.5275 203.298 138.62 +19.4814 204.516 139.451 +17.2368 203.66 138.867 +15.1461 204.601 139.508 +12.9322 203.877 139.015 +10.8176 204.706 139.58 +8.58877 203.207 138.558 +6.47094 204.169 139.214 +4.28457 202.805 138.284 +2.15807 204.315 139.314 +1.95399e-14 203.579 138.812 +-2.15196 203.737 138.919 +-4.30376 203.713 138.903 +-6.47618 204.335 139.327 +-8.60622 203.62 138.84 +-10.7914 204.211 139.243 +-12.8851 203.135 138.509 +-15.0973 203.941 139.059 +-17.188 203.083 138.474 +-19.4029 203.693 138.889 +-21.4752 202.804 138.283 +-23.7889 204.122 139.182 +-25.8394 203.121 138.499 +-28.0744 203.584 138.815 +-30.1627 202.963 138.392 +-32.5141 204.049 139.132 +-34.5428 203.071 138.465 +-36.8045 203.467 138.736 +-38.827 202.541 138.104 +-41.0638 202.743 138.241 +-43.2558 202.683 138.201 +-45.5589 203.095 138.481 +-47.6641 202.596 138.141 +-50.0214 203.135 138.509 +-52.0195 202.201 137.872 +-54.5861 203.432 138.711 +-56.4852 202.144 137.834 +-59.0383 203.176 138.537 +-61.1337 202.582 138.132 +-63.6716 203.413 138.699 +-65.6883 202.548 138.109 +-68.3061 203.499 138.758 +-70.2324 202.363 137.983 +-72.9635 203.513 138.767 +-74.8179 202.189 137.864 +-77.552 203.219 138.566 +-79.6337 202.494 138.072 +-82.2136 203.009 138.423 +-84.4524 202.643 138.174 +-87.157 203.351 138.656 +-89.2673 202.637 138.169 +-91.7193 202.681 138.2 +-93.8207 201.935 137.691 +-96.683 202.789 138.273 +-98.9336 202.314 137.949 +-101.756 202.967 138.395 +-103.661 201.769 137.578 +-106.745 202.833 138.303 +-108.883 202.055 137.773 +-111.718 202.541 138.104 +-113.896 201.802 137.6 +-116.798 202.315 137.95 +-118.974 201.54 137.422 +-122.347 202.745 138.243 +-124.53 201.929 137.687 +-127.396 202.196 137.869 +-129.95 201.926 137.685 +-134.272 204.321 139.318 +-138.219 206.019 140.476 +-141.572 206.741 140.968 +-143.45 205.283 139.974 +-142.923 200.468 136.691 +-142.82 196.384 133.906 +-144.837 195.277 133.151 +-147.106 194.505 132.625 +-152.969 198.385 135.27 +-479.773 610.393 416.201 +-481.234 600.71 409.598 +-483.646 592.423 403.948 +-485.014 583.057 397.562 +-488.171 576.019 392.762 +-489.3 566.76 386.449 +-492.682 560.269 382.024 +-493.168 550.652 375.466 +-144.195 158.098 107.8 +-141.659 152.53 104.003 +-142.71 150.917 102.904 +-142.805 148.33 101.14 +-142.352 145.24 99.0328 +-142.291 142.614 97.2425 +-142.892 140.697 95.9355 +-145.282 140.541 95.829 +-149.188 141.795 96.6842 +-514.193 480.186 327.418 +-517.573 474.926 323.832 +-518.38 467.399 318.699 +-521.047 461.649 314.779 +-522.323 454.759 310.081 +-525.092 449.252 306.326 +-526.243 442.443 301.683 +-529.199 437.231 298.129 +-530.658 430.85 293.778 +-533.678 425.803 290.337 +-534.383 418.981 285.685 +-537.472 414.098 282.356 +-539.097 408.142 278.295 +-567.911 422.484 288.074 +-564.488 412.625 281.351 +-564.825 405.666 276.606 +-568.479 401.148 273.526 +-576.908 399.955 272.712 +-575.015 391.629 267.035 +-574.777 384.556 262.213 +-575.295 378.084 257.799 +-579.74 374.226 255.169 +-580.338 367.92 250.869 +-582.924 362.926 247.464 +-584.243 357.186 243.55 +-597.297 358.545 244.476 +-593.734 349.907 238.586 +-579.222 335.092 228.485 +-575.075 326.551 222.661 +-577.093 321.606 219.29 +-577.633 315.883 215.387 +-580.947 311.706 212.539 +-582.699 306.707 209.13 +-382.3 197.372 134.58 +-381.471 193.14 131.694 +-381.611 189.446 129.175 +-382.563 186.184 126.951 +-380.445 181.478 123.742 +-379.649 177.466 121.007 +-380.984 174.482 118.972 +-382.022 171.374 116.852 +-381.61 167.643 114.309 +-380.616 163.702 111.622 +-385.093 162.115 110.539 +-135.314 55.7405 38.0071 +-381.538 153.749 104.835 +-380.259 149.853 102.179 +-381.918 147.141 100.329 +-381.183 143.525 97.8639 +-384.146 141.31 96.3529 +-605.718 217.603 148.374 +-380.076 133.295 90.8884 +-381.1 130.423 88.9301 +-381.629 127.392 86.8632 +-381.192 124.061 84.5917 +-3058.88 970.13 661.49 +-620.358 191.633 130.667 +-3078.9 925.878 631.317 +-380.639 111.366 75.9357 +-381.422 108.51 73.9882 +-381.7 105.52 71.9494 +-380.993 102.278 69.7393 +-381.296 99.3289 67.7281 +-376.497 95.1028 64.8465 +-376.624 92.1731 62.8489 +-636.451 150.783 102.812 +-382.079 87.5455 59.6935 +-381.251 84.4026 57.5505 +-381.741 81.5677 55.6175 +-381.423 78.5724 53.5751 +-381.655 75.7036 51.619 +-380.589 72.5959 49.5 +-381.244 69.8312 47.6149 +-380.597 66.8393 45.5748 +-381.289 64.0927 43.702 +-380.773 61.1519 41.6969 +-381.011 58.3441 39.7823 +-381.121 55.523 37.8587 +-381.988 52.8139 36.0115 +-380.655 49.8122 33.9648 +-380.87 47.0292 32.0672 +-382.045 44.3618 30.2484 +-381.012 41.4438 28.2588 +-381.038 38.6548 26.3571 +-380.637 35.8313 24.4319 +-380.305 33.0251 22.5184 +-380.042 30.2343 20.6155 +-380.347 27.4931 18.7464 +-381.221 24.7887 16.9023 +-380.87 22.0045 15.0039 +-379.89 19.1971 13.0897 +-380.078 16.4574 11.2216 +-380.537 13.7272 9.35998 +-379.868 10.96 7.47312 +-147.649 3.19442 2.17814 +-145.778 2.10235 1.4335 +-145.794 1.05121 0.716778 +95.8 -1.77636e-15 -1.7053e-13 +96.4963 0.700013 0.468116 +96.4853 1.39998 0.936197 +96.6669 2.10418 1.40711 +96.6411 2.80532 1.87598 +96.608 3.50625 2.34471 +96.5675 4.20692 2.81327 +96.5196 4.90725 3.2816 +96.5642 5.61303 3.75357 +96.4019 6.30676 4.21748 +96.4316 7.01308 4.68981 +96.2548 7.70435 5.15209 +96.2697 8.41102 5.62465 +96.1778 9.10903 6.09143 +96.8725 9.88734 6.6119 +96.765 10.5898 7.08162 +96.7492 11.3028 7.55846 +96.3301 11.9673 8.00283 +96.3984 12.6917 8.48723 +95.9656 13.3493 8.92699 +95.8218 14.045 9.39221 +95.5724 14.7244 9.84653 +95.5123 15.4329 10.3204 +96.1306 16.2578 10.872 +96.0541 16.9718 11.3494 +95.7746 17.6499 11.8029 +95.6831 18.3627 12.2796 +95.3895 19.0367 12.7303 +96.2533 19.9492 13.3405 +95.9434 20.6258 13.793 +96.6892 21.5361 14.4017 +96.4594 22.2367 14.8702 +96.2223 22.9355 15.3376 +96.7449 23.8215 15.93 +96.5868 24.5467 16.415 +96.0393 25.1715 16.8328 +95.9616 25.9185 17.3323 +96.3497 26.7983 17.9207 +96.0647 27.4962 18.3874 +96.5265 28.414 19.0011 +96.2245 29.1131 19.4687 +96.8519 30.1011 20.1293 +96.5322 30.8025 20.5984 +96.8565 31.7149 21.2085 +96.7053 32.4786 21.7192 +96.3606 33.1788 22.1875 +96.1007 33.909 22.6758 +96.5664 34.9032 23.3406 +96.2877 35.6361 23.8307 +96.0919 36.4022 24.343 +96.6124 37.4492 25.0432 +96.2156 38.1486 25.5109 +95.8114 38.8451 25.9767 +95.937 39.7612 26.5892 +96.5851 40.9085 27.3565 +96.6842 41.8378 27.978 +96.3296 42.5766 28.472 +96.582 43.591 29.1504 +96.1207 44.29 29.6178 +96.3484 45.3131 30.3019 +95.9556 46.0518 30.796 +95.9855 46.9993 31.4295 +96.1742 48.0363 32.123 +96.3483 49.0795 32.8206 +95.8294 49.7766 33.2868 +96.0623 50.8718 34.0192 +96.2794 51.9742 34.7564 +95.5633 52.5789 35.1608 +95.9196 53.7814 35.9649 +95.8459 54.7576 36.6177 +96.0865 55.9276 37.4001 +95.4143 56.5742 37.8326 +95.5449 57.7039 38.588 +95.4178 58.6915 39.2484 +95.5168 59.8317 40.0109 +95.5197 60.9271 40.7434 +95.5857 62.0783 41.5132 +95.5565 63.1833 42.2522 +95.589 64.3449 43.029 +95.5271 65.4588 43.7739 +95.5257 66.6302 44.5572 +95.4309 67.7524 45.3077 +95.4708 68.9875 46.1336 +95.3421 70.118 46.8896 +95.2712 71.3076 47.6851 +95.1825 72.5014 48.4834 +95.076 73.6994 49.2845 +95.4593 75.3018 50.3561 +95.3125 76.511 51.1648 +95.1476 77.7239 51.9758 +95.0352 78.999 52.8285 +95.3938 80.6932 53.9615 +95.1682 81.9204 54.7821 +94.9241 83.1501 55.6045 +94.6614 84.3829 56.4289 +94.9204 86.1077 57.5823 +95.1504 87.8434 58.743 +94.8872 89.1526 59.6185 +94.4725 90.3397 60.4123 +94.6895 92.1593 61.6292 +94.3612 93.4794 62.5119 +94.5212 95.3148 63.7393 +94.3351 96.8368 64.7571 +94.1865 98.4287 65.8216 +92.0414 97.9291 65.4875 +90.5837 98.1311 65.6226 +88.8279 97.9881 65.527 +91.1863 102.437 68.5021 +93.8693 107.399 71.8202 +93.4932 108.956 72.8613 +94.1813 111.809 74.7691 +91.8711 111.117 74.3066 +90.8129 111.918 74.8419 +88.1995 110.77 74.0743 +87.9592 112.59 75.2917 +88.6007 115.608 77.3095 +87.8606 116.88 78.1606 +88.3545 119.852 80.1479 +88.535 122.484 81.9078 +88.1594 124.411 83.1963 +88.3 127.133 85.0168 +92.4279 135.8 90.8125 +92.7926 139.155 93.056 +92.7597 142.014 94.9683 +93.0023 145.397 97.2307 +92.7191 148.057 99.0095 +92.7503 151.317 101.189 +92.8091 154.736 103.476 +92.4086 157.496 105.321 +92.5599 161.311 107.873 +92.4266 164.764 110.182 +92.4351 168.604 112.75 +92.4512 172.61 115.429 +92.4699 176.781 118.218 +92.3298 180.812 120.913 +91.1552 182.934 122.332 +89.6808 184.513 123.388 +87.9236 185.543 124.077 +91.8497 198.901 133.01 +91.5792 203.609 136.158 +89.5409 204.5 136.754 +87.5575 205.533 137.445 +84.4198 203.803 136.288 +82.2771 204.407 136.692 +79.8191 204.206 136.557 +77.6723 204.777 136.939 +75.2272 204.537 136.779 +72.9635 204.757 136.926 +70.3978 204.079 136.473 +68.4397 205.143 137.184 +65.8177 204.187 136.544 +63.7217 204.818 136.966 +61.0853 203.659 136.191 +59.3185 205.387 137.347 +56.5302 203.542 136.113 +54.6726 204.999 137.088 +52.1443 203.924 136.369 +50.0812 204.62 136.835 +47.7022 203.997 136.418 +45.7229 205.071 137.136 +43.1863 203.594 136.148 +41.2619 204.965 137.065 +38.8583 203.943 136.382 +36.8045 204.71 136.895 +34.4453 203.734 136.242 +32.4097 204.636 136.845 +30.053 203.461 136.059 +27.9952 204.249 136.586 +25.7245 203.453 136.054 +23.6356 204.045 136.45 +21.4055 203.38 136.005 +19.2774 203.611 136.16 +17.0555 202.748 135.582 +15.0302 204.275 136.603 +12.7961 202.965 135.727 +10.7347 204.379 136.673 +8.52944 203.036 135.775 +6.40026 203.173 135.867 +4.26711 203.212 135.893 +2.138 203.651 136.186 +2.04281e-14 203.243 135.914 +-2.14324 204.15 136.52 +-4.25664 202.714 135.559 +-6.42121 203.838 136.312 +-8.5434 203.369 135.997 +-10.7042 203.797 136.284 +-12.8066 203.131 135.839 +-14.9874 203.694 136.215 +-17.0764 202.997 135.749 +-19.2617 203.445 136.049 +-21.3357 202.718 135.562 +-23.626 203.962 136.394 +-25.6722 203.039 135.777 +-27.9159 203.671 136.2 +-29.9311 202.635 135.507 +-32.1878 203.235 135.908 +-34.1809 202.171 135.196 +-36.4498 202.737 135.575 +-38.5767 202.465 135.393 +-40.8163 202.751 135.584 +-42.8216 201.875 134.999 +-45.1033 202.292 135.278 +-47.0535 201.222 134.562 +-49.7024 203.073 135.8 +-51.5205 201.485 134.738 +-54.0233 202.564 135.459 +-55.9228 201.354 134.651 +-58.6415 203.043 135.78 +-60.5289 201.803 134.951 +-63.0958 202.805 135.621 +-65.0153 201.698 134.88 +-67.8251 203.3 135.952 +-69.8189 202.402 135.351 +-72.3387 203.003 135.753 +-74.3209 202.074 135.131 +-76.9205 202.795 135.614 +-79.1084 202.387 135.341 +-81.7694 203.146 135.849 +-83.6385 201.916 135.026 +-86.2557 202.478 135.402 +-88.4122 201.922 135.03 +-91.159 202.675 135.533 +-93.1757 201.773 134.93 +-95.95 202.481 135.404 +-98.1844 202.009 135.088 +-101.373 203.439 136.045 +-102.919 201.548 134.78 +-105.708 202.09 135.143 +-107.826 201.315 134.624 +-111.055 202.568 135.462 +-112.797 201.077 134.465 +-116.109 202.351 135.317 +-118.185 201.427 134.699 +-121.098 201.901 135.016 +-123.213 201.014 134.423 +-126.704 202.325 135.3 +-128.682 201.178 134.533 +-131.839 201.844 134.978 +-136.813 205.17 137.202 +-140.39 206.267 137.936 +-142.7 205.458 137.394 +-142.923 201.693 134.877 +-142.82 197.584 132.129 +-144.053 195.407 130.673 +-144.509 192.24 128.555 +-149.584 195.18 130.521 +-156.366 200.152 133.847 +-482.779 606.321 405.462 +-486.554 599.626 400.984 +-487.109 589.155 393.982 +-490.465 582.262 389.373 +-491.333 572.591 382.905 +-494.739 566.047 378.529 +-495.19 556.288 372.003 +-142.57 157.272 105.172 +-142.694 154.583 103.373 +-142.772 151.904 101.582 +-142.992 149.431 99.9284 +-142.101 145.87 97.5465 +-142.672 143.87 96.2096 +-148.612 147.224 98.452 +-149.893 145.888 97.5587 +-514.81 492.29 329.206 +-516.181 484.988 324.323 +-519.446 479.556 320.691 +-520.407 472.093 315.7 +-523.297 466.477 311.944 +-523.907 458.924 306.893 +-527.524 454.09 303.661 +-528.696 447.222 299.068 +-531.532 441.841 295.47 +-532.37 434.881 290.816 +-535.836 430.136 287.643 +-536.342 423.086 282.928 +-543.396 421.22 281.68 +-554.875 422.653 282.638 +-563.007 421.393 281.796 +-564.713 415.311 277.728 +-568.07 410.49 274.504 +-574.563 407.918 272.785 +-573.384 399.942 267.451 +-575.246 394.18 263.598 +-583.714 392.923 262.757 +-578.504 382.515 255.797 +-581.394 377.587 252.502 +-582.559 371.585 248.488 +-585.24 366.594 245.15 +-590.192 363.027 242.765 +-590.582 356.68 238.52 +-587.222 348.182 232.838 +-574.389 334.326 223.572 +-575.652 328.876 219.927 +-579.331 324.827 217.219 +-580.218 319.235 213.48 +-582.96 314.698 210.446 +-584.217 309.384 206.893 +-587.443 305.135 204.051 +-382.665 194.928 130.353 +-382.039 190.817 127.604 +-379.978 186.056 124.42 +-381.484 183.085 122.433 +-380.432 178.919 119.647 +-380.285 175.225 117.177 +-381.67 172.262 115.196 +-382.405 169.018 113.027 +-380.971 164.856 110.243 +-381.262 161.483 107.988 +-135.672 56.2294 37.602 +-137.605 55.7897 37.3079 +-381.884 151.413 101.254 +-381.827 148.005 98.9745 +-381.183 144.402 96.5653 +-382.227 141.463 94.5997 +-604.251 218.402 146.051 +-383.206 135.214 90.4206 +-382.024 131.539 87.963 +-381.629 128.17 85.7106 +-381.936 125.062 83.6321 +-382.021 121.899 81.517 +-378.322 117.581 78.6292 +-379.072 114.69 76.6958 +-3088.56 909.166 607.981 +-381.611 109.227 73.0426 +-381.321 106.059 70.9241 +-381.944 103.16 68.9857 +-379.675 99.511 66.5454 +-376.21 95.6107 63.9372 +-377.679 92.9964 62.1889 +-640.393 152.644 102.077 +-380.345 87.6805 58.634 +-381.444 84.9614 56.8158 +-381.257 81.9619 54.8099 +-380.841 78.9317 52.7835 +-380.975 76.0303 50.8433 +-381.271 73.1703 48.9307 +-381.341 70.2758 46.9951 +-381.184 67.3514 45.0395 +-380.603 64.3682 43.0446 +-381.657 61.6683 41.2391 +-380.815 58.6702 39.2342 +-381.613 55.9344 37.4047 +-380.706 52.9583 35.4145 +-381.248 50.1946 33.5663 +-380.474 47.2674 31.6088 +-381.847 44.6097 29.8316 +-380.417 41.6319 27.8403 +-380.145 38.7999 25.9464 +-381.234 36.1067 24.1454 +-381.3 33.3137 22.2777 +-380.938 30.4908 20.3899 +-381.244 27.7263 18.5412 +-381.022 24.9271 16.6693 +-380.172 22.0984 14.7777 +-380.589 19.3499 12.9397 +-380.578 16.5796 11.0872 +-380.737 13.8183 9.24062 +-379.269 11.0095 7.36235 +-148.849 3.24004 2.1667 +-147.178 2.1355 1.42806 +-145.794 1.05764 0.707267 +95.9 3.55271e-15 -1.7053e-13 +96.6963 0.705667 0.462738 +96.7853 1.41274 0.926397 +96.7668 2.11898 1.38951 +96.741 2.82505 1.85251 +96.7079 3.53091 2.31538 +96.6673 4.2365 2.77807 +96.6194 4.94177 3.24054 +96.4644 5.64082 3.69895 +96.5016 6.35112 4.16472 +96.4316 7.0551 4.62635 +96.3544 7.75854 5.08763 +96.2697 8.46142 5.54854 +97.072 9.24883 6.06488 +97.071 9.96699 6.53581 +96.8642 10.6641 6.99293 +96.8482 11.3822 7.46381 +96.6268 12.0762 7.91889 +96.3984 12.7677 8.37239 +96.0642 13.4431 8.81525 +96.6096 14.2453 9.34129 +95.6707 14.8278 9.72328 +96.3958 15.669 10.2749 +96.2286 16.3718 10.7358 +96.0541 17.0735 11.1958 +95.9699 17.7919 11.6669 +95.6831 18.4727 12.1134 +95.584 19.1898 12.5836 +96.3504 20.0889 13.1732 +96.0402 20.7703 13.62 +96.7858 21.6868 14.2211 +96.5558 22.3923 14.6836 +96.2223 23.073 15.13 +95.882 23.7505 15.5743 +96.5868 24.6938 16.1929 +96.23 25.3726 16.638 +95.9616 26.0738 17.0978 +96.3497 26.9589 17.6782 +96.0647 27.6609 18.1385 +96.8093 28.668 18.7989 +96.2245 29.2876 19.2052 +97.0392 30.3401 19.8954 +96.6256 31.0171 20.3393 +97.0426 31.9662 20.9617 +96.798 32.7045 21.4458 +96.453 33.4097 21.9083 +96.9292 34.4063 22.5618 +95.8328 34.8456 22.8499 +96.2877 35.8497 23.5083 +96.0919 36.6203 24.0136 +96.6124 37.6736 24.7043 +96.2156 38.3772 25.1657 +96.6204 39.4078 25.8415 +96.2054 40.1114 26.3029 +96.5851 41.1536 26.9863 +95.9746 41.7796 27.3968 +96.3296 42.8317 28.0867 +96.582 43.8522 28.7559 +96.1207 44.5554 29.217 +96.4354 45.6257 29.9189 +96.6484 46.6623 30.5986 +96.8471 47.7053 31.2826 +96.1742 48.3241 31.6883 +96.4336 49.4173 32.4052 +95.9142 50.1192 32.8655 +96.0623 51.1766 33.5589 +96.2794 52.2856 34.2861 +96.4806 53.4016 35.0179 +95.7538 54.0101 35.4169 +95.9283 55.1331 36.1533 +96.0865 56.2627 36.8941 +95.4958 56.9618 37.3525 +95.464 58.0006 38.0337 +95.4178 59.0432 38.7174 +95.5168 60.1902 39.4695 +94.8851 60.885 39.9251 +94.9553 62.0384 40.6814 +95.5565 63.5619 41.6804 +95.6667 64.783 42.4812 +95.6043 65.9043 43.2165 +95.5257 67.0294 43.9543 +94.8226 67.724 44.4097 +95.4708 69.4009 45.5094 +95.3421 70.5382 46.2551 +95.2712 71.7349 47.0398 +95.1088 72.8793 47.7903 +95.6611 74.5972 48.9168 +94.9515 75.35 49.4105 +95.3845 77.0276 50.5105 +95.1476 78.1896 51.2725 +95.6008 79.9453 52.4238 +94.7629 80.64 52.8794 +95.2377 82.4714 54.0803 +94.9241 83.6484 54.8521 +94.7296 84.9496 55.7053 +94.9204 86.6237 56.8032 +95.1504 88.3698 57.9481 +94.8209 89.625 58.7712 +94.6037 91.0073 59.6777 +94.6895 92.7116 60.7952 +94.3612 94.0395 61.666 +94.394 95.7571 62.7924 +94.5869 97.6772 64.0514 +93.9375 98.7567 64.7593 +89.7634 96.0774 63.0024 +89.2444 97.2599 63.7778 +88.1057 97.7733 64.1145 +88.4501 99.9593 65.5479 +89.3434 102.833 67.4326 +93.7835 109.949 72.0986 +93.7224 111.93 73.3977 +94.1367 114.54 75.1091 +93.3852 115.777 75.9201 +90.2969 114.083 74.8097 +90.2467 116.211 76.2047 +87.7948 115.242 75.5697 +87.7016 117.368 76.9637 +87.832 119.858 78.5962 +87.814 122.214 80.1414 +88.1594 125.156 82.0706 +90.15 130.574 85.6234 +92.8218 137.195 89.9653 +92.7926 139.988 91.7969 +92.8074 142.939 93.7315 +92.9084 146.121 95.818 +92.7191 148.945 97.6698 +92.7957 152.298 99.8688 +92.8538 155.738 102.125 +92.7593 159.041 104.29 +92.5599 162.278 106.413 +92.7224 166.282 109.038 +92.4351 169.615 111.224 +92.4512 173.645 113.867 +92.3503 177.61 116.467 +91.6264 180.509 118.368 +90.3898 182.485 119.664 +88.9316 184.068 120.702 +87.4105 185.566 121.684 +92.0289 200.483 131.466 +91.4391 204.515 134.11 +88.8226 204.075 133.821 +86.723 204.794 134.293 +83.8012 203.521 133.458 +81.7377 204.284 133.958 +79.0774 203.52 133.458 +77.1912 204.728 134.249 +74.5255 203.844 133.67 +72.3955 204.38 134.021 +69.9016 203.856 133.677 +67.7717 204.358 134.007 +65.1706 203.391 133.373 +63.246 204.506 134.104 +60.6498 203.418 133.391 +58.4547 203.609 133.516 +56.0578 203.05 133.149 +54.0666 203.942 133.734 +51.6037 203.019 133.129 +49.7024 204.29 133.962 +47.2252 203.167 133.226 +45.2309 204.08 133.824 +42.8737 203.331 133.334 +40.8658 204.213 133.912 +38.4829 203.182 133.236 +36.4794 204.117 133.849 +34.0696 202.72 132.933 +32.0703 203.707 133.58 +29.8458 203.269 133.293 +27.814 204.144 133.867 +25.5468 203.258 133.285 +23.4822 203.936 133.73 +21.1963 202.6 132.854 +19.1676 203.664 133.552 +16.9369 202.545 132.818 +14.8775 203.411 133.386 +12.6705 202.176 132.576 +10.6213 203.431 133.399 +8.4387 202.08 132.513 +6.35838 203.054 133.152 +4.2165 202.005 132.464 +2.11706 202.865 133.028 +1.86517e-14 202.036 132.484 +-2.11793 202.948 133.082 +-4.22872 202.59 132.848 +-6.36623 203.304 133.316 +-8.42474 201.746 132.294 +-10.6082 203.181 133.235 +-12.6653 202.093 132.522 +-14.8287 202.744 132.949 +-16.888 201.961 132.435 +-19.1362 203.33 133.333 +-21.1876 202.517 132.8 +-23.3768 203.02 133.13 +-25.39 202.01 132.467 +-27.6216 202.732 132.94 +-29.6508 201.941 132.422 +-31.9528 202.961 133.091 +-33.8469 201.394 132.064 +-36.2281 202.712 132.927 +-38.1544 201.448 132.099 +-40.5357 202.564 132.831 +-42.5091 201.602 132.2 +-44.9028 202.599 132.854 +-46.7482 201.115 131.88 +-49.1841 202.159 132.565 +-51.1047 201.057 131.842 +-53.5688 202.063 132.502 +-55.5404 201.176 131.921 +-57.9878 201.983 132.45 +-60.166 201.796 132.327 +-62.4698 201.997 132.458 +-64.6012 201.614 132.207 +-67.1837 202.585 132.844 +-69.1298 201.604 132.201 +-71.7139 202.456 132.759 +-73.59 201.285 131.992 +-76.1688 202.017 132.472 +-78.2431 201.374 132.05 +-80.7858 201.905 132.398 +-82.792 201.07 131.851 +-85.6882 202.35 132.69 +-87.6256 201.324 132.018 +-90.6337 202.714 132.929 +-92.674 201.889 132.388 +-95.327 202.372 132.705 +-97.1355 201.048 131.837 +-100.187 202.263 132.633 +-101.785 200.524 131.493 +-104.951 201.844 132.358 +-106.687 200.383 131.4 +-109.562 201.042 131.833 +-111.656 200.235 131.304 +-114.903 201.451 132.1 +-117.045 200.679 131.595 +-120.34 201.839 132.355 +-122.487 201.027 131.823 +-125.411 201.461 132.107 +-127.415 200.39 131.405 +-130.742 201.364 132.043 +-133.71 201.718 132.276 +-139.159 205.684 134.877 +-141.65 205.168 134.538 +-143.075 203.117 133.193 +-143.284 199.413 130.765 +-142.747 194.795 127.736 +-144.615 193.533 126.908 +-148.778 195.292 128.062 +-150.919 194.339 127.437 +-485.208 613.022 401.987 +-488.958 606.2 397.513 +-489.375 595.441 390.458 +-492.989 588.765 386.08 +-494.062 579.222 379.822 +-142.42 163.924 107.493 +-141.687 160.123 105 +-142.871 158.548 103.967 +-142.937 155.774 102.148 +-142.526 152.55 100.034 +-142.68 150 98.3619 +-143.989 148.693 97.5048 +-146.68 148.798 97.5739 +-513.716 511.966 335.72 +-514.298 503.555 330.204 +-517.827 498.142 326.655 +-518.301 489.898 321.248 +-521.922 484.73 317.86 +-522.231 476.586 312.52 +-525.957 471.657 309.287 +-526.316 463.797 304.133 +-530.511 459.397 301.248 +-530.658 451.572 296.116 +-534.29 446.795 292.984 +-535.508 440.066 288.572 +-538.138 434.573 284.969 +-539.026 427.751 280.496 +-569.359 443.991 291.145 +-566.966 434.452 284.89 +-566.128 426.269 279.524 +-566.285 418.963 274.733 +-570.787 414.924 272.085 +-571.369 408.082 267.598 +-574.916 403.413 264.536 +-579.567 399.521 261.984 +-586.823 397.382 260.582 +-581.634 386.889 253.701 +-583.758 381.395 250.098 +-584.305 374.931 245.86 +-597.459 376.491 246.882 +-592.925 366.893 240.589 +-577.962 351.149 230.265 +-575.905 343.519 225.261 +-576.601 337.624 221.396 +-577.877 332.125 217.79 +-581.57 328.036 215.108 +-582.469 322.394 211.409 +-586.063 318.268 208.703 +-587.506 312.991 205.243 +-590.326 308.47 202.278 +-382.494 196.009 128.532 +-382.554 192.219 126.047 +-382.046 188.19 123.405 +-379.666 183.304 120.201 +-378.518 179.085 117.434 +-380.722 176.479 115.725 +-381.407 173.175 113.559 +-381.61 169.678 111.266 +-382.036 166.307 109.055 +-381.44 162.526 106.576 +-135.046 56.3051 36.9219 +-136.617 55.7208 36.5387 +-381.884 152.32 99.8836 +-381.918 148.927 97.6583 +-382.821 145.891 95.6678 +-382.684 142.48 93.431 +-603.334 219.377 143.856 +-609.834 216.469 141.948 +-382.671 132.55 86.9192 +-381.536 128.907 84.5305 +-381.099 125.536 82.3195 +-381.461 122.45 80.2961 +-624.292 195.19 127.995 +-380.294 115.749 75.9021 +-381.958 113.109 74.1709 +-382.462 110.126 72.2149 +-381.321 106.694 69.9644 +-380.898 103.494 67.8658 +-377.004 99.4032 65.1832 +-377.071 96.4036 63.2162 +-378.638 93.7911 61.5032 +-375.757 90.1025 59.0843 +-380.923 88.3397 57.9284 +-380.575 85.2757 55.9192 +-381.063 82.4112 54.0408 +-380.841 79.4047 52.0693 +-381.655 76.6225 50.2449 +-381.563 73.6652 48.3056 +-382.025 70.8236 46.4423 +-381.184 67.7549 44.43 +-381.289 64.8707 42.5387 +-381.068 61.9421 40.6183 +-380.52 58.976 38.6733 +-381.121 56.1969 36.8509 +-380.706 53.2756 34.9353 +-381.248 50.4953 33.1121 +-381.365 47.6618 31.254 +-380.956 44.7723 29.3592 +-380.12 41.8486 27.4421 +-381.435 39.1649 25.6822 +-380.637 36.2663 23.7815 +-380.604 33.4522 21.9361 +-380.938 30.6735 20.114 +-381.244 27.8924 18.2903 +-380.623 25.0502 16.4266 +-379.673 22.2016 14.5586 +-380.19 19.4455 12.7513 +-380.178 16.6615 10.9257 +-381.137 13.9157 9.12518 +-380.168 11.1018 7.27994 +-148.549 3.25289 2.13307 +-146.178 2.1337 1.39917 +-145.594 1.06251 0.696738 +96.8 5.32907e-15 1.13687e-13 +96.6963 0.709813 0.456353 +96.6853 1.41957 0.912673 +96.7668 2.13143 1.37034 +96.741 2.84165 1.82695 +96.7079 3.55166 2.28343 +96.6673 4.26139 2.73973 +96.6194 4.9708 3.19583 +97.462 5.73264 3.68563 +96.5016 6.38843 4.10725 +97.3282 7.16253 4.60494 +96.3544 7.80412 5.01743 +97.2642 8.59904 5.5285 +97.072 9.30317 5.9812 +96.1777 9.93327 6.38631 +96.8642 10.7267 6.89644 +96.8482 11.449 7.36082 +96.5279 12.1347 7.80162 +96.4972 12.8559 8.2653 +96.0642 13.5221 8.69361 +95.8218 14.2121 9.13728 +95.6707 14.9149 9.58911 +95.6105 15.6327 10.0506 +96.2286 16.468 10.5876 +96.0541 17.1738 11.0414 +95.9699 17.8964 11.506 +95.7806 18.6002 11.9584 +96.5563 19.4989 12.5362 +96.3504 20.2069 12.9914 +96.1371 20.9134 13.4456 +96.6892 21.7925 14.0108 +96.4594 22.5014 14.4666 +96.2223 23.2085 14.9212 +95.9779 23.9139 15.3748 +96.5868 24.8389 15.9694 +96.23 25.5216 16.4084 +95.9616 26.227 16.8619 +96.5393 27.1706 17.4686 +96.2538 27.8782 17.9235 +96.6208 28.7803 18.5034 +96.3185 29.4884 18.9587 +96.9456 30.4889 19.6019 +96.5322 31.1691 20.0393 +97.1356 32.1848 20.6923 +96.798 32.8966 21.1499 +96.453 33.606 21.606 +96.9292 34.6084 22.2505 +96.8415 35.4192 22.7718 +96.4704 36.1287 23.2279 +96.1829 36.8704 23.7047 +96.703 37.9305 24.3863 +97.0279 38.9285 25.028 +96.7102 39.6761 25.5086 +97.0109 40.6848 26.1571 +96.5851 41.3954 26.6139 +96.6842 42.3358 27.2186 +96.3296 43.0833 27.6992 +96.582 44.1099 28.3591 +96.1207 44.8172 28.8139 +96.3484 45.8524 29.4795 +96.735 46.9785 30.2034 +96.8471 47.9856 30.8509 +96.3456 48.6947 31.3068 +96.4336 49.7077 31.9581 +95.9142 50.4137 32.412 +96.0623 51.4773 33.0958 +96.2794 52.5928 33.813 +95.7301 53.2975 34.2661 +95.7538 54.3275 34.9282 +96.0931 55.5523 35.7157 +96.0865 56.5933 36.385 +95.4958 57.2965 36.8371 +95.5449 58.3907 37.5406 +95.5786 59.4901 38.2474 +95.6765 60.645 38.9899 +95.0437 61.345 39.44 +95.5857 62.8171 40.3864 +95.6347 63.9877 41.139 +95.6667 65.1636 41.895 +95.6043 66.2914 42.6201 +94.9129 66.9907 43.0697 +95.4309 68.5589 44.0779 +95.4708 69.8086 44.8814 +95.2672 70.8969 45.5811 +95.2712 72.1563 46.3908 +95.1825 73.3644 47.1675 +95.7342 75.0929 48.2788 +94.9515 75.7927 48.7287 +95.3125 77.4217 49.776 +95.2189 78.708 50.603 +94.9644 79.8797 51.3563 +95.3938 81.6537 52.4968 +95.2377 82.9559 53.3341 +94.9241 84.1398 54.0952 +94.6614 85.3872 54.8972 +95.0555 87.2571 56.0994 +94.6151 88.3893 56.8273 +94.8872 90.2138 58.0003 +94.6037 91.542 58.8542 +94.7545 93.3202 59.9975 +94.4255 94.6568 60.8568 +94.5212 96.4493 62.0092 +94.0205 97.663 62.7896 +92.3812 97.6908 62.8074 +90.4407 97.3712 62.6019 +89.6097 98.2317 63.1552 +88.3464 98.6169 63.4029 +87.9148 99.9375 64.2519 +88.4029 102.348 65.8018 +90.4155 106.623 68.5501 +92.0017 110.521 71.0562 +93.5703 114.52 73.6271 +94.0562 117.294 75.4107 +92.2287 117.208 75.3555 +91.1181 118.022 75.879 +88.8156 117.268 75.3939 +88.3905 118.985 76.4977 +87.623 120.275 77.3273 +87.608 122.644 78.8501 +87.5504 125.022 80.379 +92.85 135.275 86.9713 +92.9696 138.221 88.8651 +92.7926 140.811 90.5302 +93.0937 144.222 92.7232 +93.0023 147.128 94.5916 +93.1809 150.566 96.8018 +92.7957 153.193 98.4907 +93.2107 157.255 101.103 +92.7155 159.899 102.802 +92.6029 163.307 104.993 +92.3844 166.649 107.142 +92.4766 170.688 109.739 +92.6953 175.126 112.592 +92.43 178.808 114.96 +91.3529 181.028 116.387 +90.4281 183.635 118.063 +88.0325 183.277 117.833 +88.6566 189.317 121.716 +91.4913 200.483 128.895 +90.4936 203.59 130.892 +87.865 203.061 130.552 +85.8551 203.935 131.114 +83.2152 203.286 130.697 +80.9444 203.489 130.828 +78.3667 202.876 130.433 +76.4093 203.844 131.056 +73.8823 203.272 130.688 +71.7707 203.807 131.031 +69.1298 202.789 130.377 +67.1036 203.532 130.855 +64.5754 202.716 130.331 +62.62 203.672 130.945 +60.1176 202.817 130.396 +57.9411 203.006 130.517 +55.6979 202.932 130.469 +53.5688 203.251 130.674 +51.271 202.896 130.446 +49.1442 203.182 130.63 +46.7673 202.379 130.114 +44.8299 203.459 130.808 +42.5091 202.786 130.375 +40.4532 203.34 130.731 +38.2013 202.88 130.436 +36.1985 203.736 130.986 +33.8608 202.661 130.295 +31.7309 202.735 130.343 +29.5046 202.125 129.95 +27.531 203.254 130.676 +25.2541 202.109 129.94 +23.2426 203.041 130.539 +21.022 202.114 129.943 +18.9322 202.345 130.092 +16.7695 201.721 129.69 +14.7371 202.676 130.305 +12.5711 201.768 129.721 +10.5035 202.357 130.1 +8.37239 201.67 129.658 +6.29294 202.144 129.963 +4.18509 201.678 129.663 +2.0996 202.374 130.111 +2.04281e-14 201.961 129.845 +-2.10397 202.795 130.381 +-4.17462 201.174 129.339 +-6.30864 202.648 130.287 +-8.37937 201.838 129.766 +-10.5297 202.861 130.424 +-12.5816 201.937 129.829 +-14.7188 202.424 130.142 +-16.7625 201.637 129.637 +-18.9243 202.261 130.037 +-20.9522 201.444 129.512 +-23.1276 202.036 129.893 +-25.1182 201.022 129.241 +-27.3273 201.749 129.709 +-29.4314 201.625 129.629 +-31.6395 202.151 129.967 +-33.5964 201.079 129.278 +-35.9029 202.072 129.916 +-37.8415 200.97 129.208 +-40.0901 201.514 129.558 +-42.0229 200.466 128.884 +-44.4472 201.722 129.691 +-46.3857 200.728 129.052 +-48.8053 201.781 129.729 +-50.7928 201.003 129.229 +-53.0493 201.28 129.407 +-55.1355 200.883 129.152 +-57.3809 201.043 129.255 +-59.5128 200.778 129.084 +-62.0442 201.799 129.741 +-63.9024 200.604 128.973 +-66.5424 201.83 129.761 +-68.3305 200.445 128.87 +-70.9754 201.548 129.579 +-72.976 200.778 129.085 +-75.4772 201.358 129.457 +-77.4706 200.556 128.942 +-80.1512 201.496 129.546 +-82.2385 200.9 129.162 +-84.8203 201.477 129.534 +-86.9073 200.847 129.129 +-89.6531 201.699 129.676 +-91.6705 200.876 129.147 +-94.3741 201.526 129.565 +-96.4612 200.826 129.115 +-99.2681 201.586 129.604 +-101.356 200.85 129.131 +-103.874 200.947 129.193 +-105.955 200.177 128.698 +-109.106 201.382 129.472 +-111.233 200.649 129.001 +-113.698 200.508 128.911 +-116.256 200.498 128.904 +-118.733 200.314 128.786 +-121.215 200.11 128.655 +-124.164 200.63 128.989 +-126.147 199.562 128.303 +-129.405 200.476 128.89 +-131.868 200.108 128.654 +-137.928 205.062 131.839 +-140.4 204.552 131.511 +-143.532 204.963 131.775 +-142.872 200.008 128.589 +-143.06 196.37 126.25 +-143.396 193.03 124.103 +-146.683 193.672 124.516 +-149.503 193.646 124.499 +-159.344 202.502 130.193 +-491.363 612.76 393.956 +-492.264 602.475 387.344 +-495.341 595.049 382.569 +-496.327 585.296 376.299 +-142.832 165.363 106.316 +-142.817 162.348 104.377 +-143.593 160.285 103.051 +-142.755 156.489 100.61 +-142.71 153.646 98.7822 +-142.805 151.012 97.089 +-150.219 156.038 100.32 +-151.959 155.059 99.6908 +-516.287 517.551 332.744 +-517.155 509.328 327.458 +-519.992 503.164 323.495 +-521.151 495.485 318.558 +-524.665 490.141 315.121 +-525.879 482.736 310.361 +-528.753 476.95 306.641 +-529.551 469.39 301.781 +-532.595 463.912 298.258 +-533.462 456.625 293.573 +-536.977 451.68 290.395 +-538.219 444.891 286.03 +-553.1 449.28 288.851 +-564.414 450.53 289.655 +-565.044 443.214 284.952 +-564.976 435.47 279.972 +-569.323 431.193 277.223 +-570.33 424.434 272.877 +-574.032 419.734 269.856 +-574.563 412.774 265.381 +-578.287 408.162 262.416 +-585.895 406.256 261.19 +-583.947 397.757 255.726 +-583.826 390.629 251.143 +-592.82 389.591 250.476 +-595.65 384.456 247.175 +-589.074 373.387 240.059 +-582.877 362.795 233.248 +-576.101 352.075 226.356 +-576.964 346.172 222.561 +-580.533 341.924 219.83 +-581.091 335.934 215.979 +-584.554 331.656 213.229 +-585.471 325.96 209.566 +-588.327 321.375 206.618 +-589.784 316.05 203.195 +-592.616 311.486 200.261 +-593.523 305.937 196.693 +-381.868 193.002 124.085 +-381.788 189.167 121.619 +-382.87 185.937 119.543 +-378.866 180.303 115.921 +-379.148 176.781 113.656 +-381.319 174.152 111.966 +-382.934 171.267 110.111 +-381.415 167.013 107.376 +-382.064 163.748 105.277 +-382.674 160.487 103.181 +-135.988 55.7901 35.8686 +-381.523 153.071 98.4123 +-383.549 150.442 96.7223 +-382.821 146.749 94.3477 +-382.319 143.18 92.0536 +-384.248 140.537 90.3539 +-608.546 217.28 139.694 +-382.301 133.2 85.6371 +-381.629 129.696 83.3842 +-381.192 126.304 81.2037 +-381.461 123.169 79.1881 +-625.978 196.867 126.57 +-382.361 117.062 75.2614 +-380.733 113.409 72.9127 +-382.746 110.856 71.2714 +-382.459 107.642 69.205 +-378.045 103.322 66.4281 +-376.623 99.8862 64.2189 +-377.645 97.118 62.4392 +-378.254 94.2463 60.5929 +-376.622 90.8404 58.4032 +-381.309 88.9487 57.1869 +-379.995 85.6455 55.0632 +-382.322 83.1692 53.4712 +-380.841 79.8712 51.3508 +-382.239 77.1905 49.6274 +-381.271 74.0412 47.6026 +-381.341 71.1123 45.7195 +-380.597 68.048 43.7495 +-380.995 65.2015 41.9194 +-380.773 62.2579 40.0269 +-380.52 59.3225 38.1396 +-381.121 56.5271 36.3424 +-379.819 53.4636 34.3728 +-381.248 50.792 32.6552 +-381.562 47.9667 30.8388 +-380.758 45.0119 28.9391 +-381.211 42.2153 27.1411 +-381.237 39.3744 25.3146 +-380.935 36.5079 23.4717 +-381.3 33.7103 21.673 +-380.938 30.8537 19.8365 +-380.945 28.0343 18.0238 +-381.022 25.2238 16.2169 +-380.571 22.3849 14.3917 +-380.788 19.5905 12.5951 +-380.078 16.755 10.7722 +-380.537 13.9754 8.9851 +-379.669 11.1523 7.17003 +-148.549 3.272 2.10363 +-146.578 2.15211 1.38364 +-146.294 1.07389 0.690428 +96.5 -3.55271e-15 -1.7053e-13 +96.4963 0.712425 0.449001 +96.4853 1.4248 0.897969 +96.6669 2.14149 1.34966 +96.6411 2.85506 1.79938 +96.608 3.56841 2.24897 +96.5675 4.28151 2.69839 +96.5196 4.99426 3.1476 +96.4644 5.70664 3.59657 +96.2025 6.40531 4.0369 +96.332 7.13004 4.49366 +96.2548 7.84095 4.94171 +96.1703 8.55127 5.38938 +96.9726 9.3471 5.89095 +95.9792 9.96993 6.28348 +96.765 10.7775 6.79246 +96.6502 11.4915 7.24241 +96.3301 12.1795 7.67605 +96.2008 12.8902 8.12398 +95.9656 13.586 8.56247 +95.8218 14.294 9.00869 +96.4573 15.1242 9.53191 +96.2976 15.8357 9.98037 +96.1306 16.546 10.428 +95.9563 17.2551 10.8749 +95.8723 17.9812 11.3325 +95.6831 18.6883 11.7782 +95.3895 19.3742 12.2105 +95.283 20.0981 12.6667 +96.0402 21.0127 13.2431 +96.5926 21.8961 13.7998 +96.4594 22.631 14.263 +96.1262 23.3189 14.6965 +96.7449 24.2439 15.2795 +96.2999 24.9077 15.6979 +96.23 25.6686 16.1775 +96.6273 26.5611 16.7399 +95.4962 27.0319 17.0366 +96.0647 27.9837 17.6365 +96.5265 28.9178 18.2252 +96.2245 29.6293 18.6737 +96.8519 30.6348 19.3074 +96.5322 31.3487 19.7573 +97.0426 32.3392 20.3816 +96.7053 33.0544 20.8323 +96.3606 33.7671 21.2815 +96.8371 34.7747 21.9165 +96.5664 35.522 22.3875 +96.2877 36.268 22.8576 +96.0919 37.0476 23.349 +96.6124 38.1132 24.0206 +96.7571 39.0435 24.6069 +95.6317 39.4597 24.8692 +96.8319 40.8436 25.7414 +96.3178 41.5186 26.1668 +96.6842 42.5796 26.8355 +96.153 43.2521 27.2593 +96.582 44.3639 27.9601 +96.0332 45.0343 28.3826 +96.3484 46.1165 29.0646 +95.869 46.826 29.5118 +95.9855 47.8326 30.1462 +96.0885 48.8444 30.7839 +96.3483 49.9497 31.4805 +95.8294 50.6592 31.9276 +96.0623 51.7738 32.6301 +96.1116 52.8035 33.2791 +95.4799 53.4644 33.6956 +95.6709 54.5931 34.4069 +95.8459 55.7285 35.1225 +95.8408 56.7736 35.7812 +95.4143 57.5773 36.2877 +95.3022 58.5779 36.9183 +95.5786 59.8328 37.7092 +95.6765 60.9943 38.4412 +95.5197 62.0074 39.0797 +95.5069 63.1269 39.7853 +95.4782 64.2509 40.4937 +95.5112 65.4325 41.2384 +95.6814 66.727 42.0543 +95.4491 67.7571 42.7035 +95.4309 68.9537 43.4576 +95.5462 70.2662 44.2848 +95.2672 71.3053 44.9397 +95.1969 72.5153 45.7023 +95.1825 73.7869 46.5037 +95.0028 74.9484 47.2357 +95.4593 76.6369 48.2999 +95.3125 77.8676 49.0755 +95.1476 79.102 49.8535 +94.9644 80.3398 50.6336 +95.3938 82.124 51.7581 +95.1682 83.3728 52.5452 +94.9241 84.6244 53.334 +95.207 86.3739 54.4366 +94.9204 87.6345 55.231 +94.6151 88.8984 56.0276 +94.8209 90.6708 57.1446 +94.4725 91.9414 57.9455 +94.6895 93.7933 59.1126 +94.4255 95.2019 60.0004 +94.7757 97.2662 61.3013 +93.0765 97.2391 61.2843 +91.7587 97.591 61.5061 +89.0246 96.3982 60.7543 +89.0009 98.1257 61.8431 +89.2492 100.198 63.1494 +87.8553 100.445 63.305 +88.0502 102.527 64.6172 +88.0346 104.413 65.8057 +88.5602 106.999 67.4356 +93.8535 115.528 72.8107 +93.6648 117.479 74.0402 +93.9949 120.141 75.7181 +92.9699 121.114 76.3313 +90.1589 119.727 75.4569 +89.3974 121.034 76.2806 +87.9365 121.4 76.5115 +87.6595 123.423 77.7863 +88.0072 126.397 79.661 +92.85 136.054 85.7473 +92.7726 138.723 87.429 +93.1319 142.14 89.5825 +93.0937 145.052 91.4183 +92.9084 147.826 93.1661 +93.1347 151.358 95.3921 +92.7503 154 97.0573 +92.8091 157.479 99.2502 +92.7155 160.82 101.356 +92.5599 164.171 103.468 +92.7224 168.222 106.021 +92.4766 171.671 108.194 +92.3292 175.439 110.569 +92.2705 179.528 113.146 +90.4152 180.202 113.571 +90.1602 184.145 116.056 +87.2459 182.686 115.136 +91.4787 196.468 123.823 +91.778 202.27 127.479 +90.0033 203.653 128.351 +87.523 203.435 128.213 +85.1207 203.356 128.164 +82.6943 203.177 128.051 +80.405 203.298 128.127 +78.1504 203.481 128.243 +75.7779 203.325 128.144 +73.3561 202.986 127.931 +71.1742 203.277 128.114 +68.744 202.819 127.825 +66.6225 203.237 128.089 +64.0577 202.25 127.467 +62.1443 203.288 128.121 +59.6337 202.344 127.526 +57.5209 202.695 127.747 +55.2705 202.535 127.646 +53.1143 202.687 127.742 +50.8968 202.575 127.672 +48.8053 202.943 127.904 +46.5574 202.631 127.707 +44.4472 202.884 127.866 +42.1097 202.038 127.333 +40.1066 202.758 127.787 +37.8571 202.211 127.442 +35.7994 202.651 127.719 +33.5964 202.237 127.458 +31.6265 203.232 128.085 +29.3705 202.366 127.54 +27.3159 202.827 127.831 +25.1705 202.601 127.688 +23.0413 202.442 127.587 +20.9348 202.436 127.584 +18.791 201.992 127.304 +16.6857 201.87 127.227 +14.6089 202.07 127.353 +12.4978 201.748 127.15 +10.425 202.002 127.31 +8.34098 202.07 127.353 +6.26414 202.378 127.547 +4.16589 201.909 127.252 +2.0839 202.017 127.32 +1.86517e-14 201.094 126.738 +-2.08215 201.848 127.213 +-4.16414 201.825 127.199 +-6.26153 202.294 127.494 +-8.33051 201.817 127.194 +-10.4338 202.17 127.416 +-12.5031 201.832 127.204 +-14.6211 202.239 127.459 +-16.6718 201.701 127.121 +-18.791 201.992 127.304 +-20.8477 201.593 127.053 +-23.0221 202.273 127.481 +-25.045 201.59 127.051 +-27.2254 202.155 127.407 +-29.1877 201.107 126.746 +-31.3654 201.554 127.028 +-33.332 200.645 126.455 +-35.5186 201.061 126.717 +-37.4348 199.955 126.02 +-39.7765 201.09 126.735 +-41.8666 200.871 126.598 +-44.101 201.304 126.87 +-46.0422 200.389 126.294 +-48.2869 200.788 126.545 +-50.4186 200.672 126.472 +-52.7896 201.448 126.961 +-54.7306 200.556 126.399 +-56.9607 200.72 126.502 +-59.3434 201.36 126.905 +-61.6185 201.569 127.037 +-63.6177 200.861 126.591 +-65.9544 201.199 126.804 +-67.8344 200.135 126.134 +-70.4642 201.249 126.836 +-72.5082 200.64 126.452 +-74.8757 200.904 126.619 +-76.9452 200.343 126.265 +-79.7704 201.694 127.116 +-81.5874 200.457 126.337 +-84.3196 201.442 126.957 +-86.3259 200.652 126.46 +-88.9527 201.276 126.853 +-91.0971 200.769 126.533 +-93.861 201.585 127.047 +-95.8244 200.649 126.458 +-98.5793 201.34 126.893 +-100.77 200.838 126.577 +-103.156 200.707 126.494 +-105.589 200.634 126.448 +-107.986 200.463 126.34 +-110.43 200.348 126.268 +-112.88 200.212 126.182 +-115.335 200.056 126.084 +-118.242 200.635 126.449 +-120.398 199.905 125.989 +-123.241 200.284 126.228 +-125.678 199.964 126.026 +-128.594 200.367 126.28 +-130.608 199.337 125.631 +-136.845 204.623 128.963 +-139.4 204.265 128.736 +-142.466 204.612 128.956 +-143.232 201.667 127.1 +-143.008 197.429 124.428 +-142.866 193.424 121.904 +-144.319 191.648 120.785 +-148.795 193.839 122.166 +-158.185 202.187 127.427 +-492.873 618.183 389.606 +-494.359 608.524 383.518 +-143.509 173.389 109.277 +-142.388 168.879 106.435 +-143.067 166.59 104.992 +-142.995 163.487 103.036 +-142.63 160.128 100.92 +-142.146 156.72 98.7714 +-144.434 156.397 98.5683 +-148.345 157.775 99.4369 +-513.588 536.557 338.161 +-515.414 528.958 333.372 +-518.28 522.541 329.328 +-519.234 514.321 324.147 +-521.829 507.85 320.069 +-523.602 500.683 315.552 +-526.271 494.472 311.638 +-527.028 486.576 306.661 +-530.663 481.429 303.417 +-531.892 474.18 298.849 +-534.401 468.166 295.058 +-535.915 461.366 290.773 +-538.815 455.837 287.288 +-541.214 449.944 283.574 +-568.35 464.326 292.639 +-564.124 452.891 285.431 +-565.995 446.517 281.414 +-568.146 440.435 277.581 +-570.81 434.809 274.035 +-572.876 428.784 270.238 +-575.768 423.428 266.863 +-576.388 416.47 262.477 +-580.125 411.818 259.545 +-580.879 405.098 255.31 +-588.533 403.189 254.107 +-590.791 397.565 250.563 +-592.899 391.887 246.984 +-590.572 383.374 241.619 +-579.41 369.377 232.798 +-575.079 360.003 226.889 +-577.557 354.998 223.735 +-578.429 349.05 219.986 +-581.762 344.621 217.195 +-583.317 339.163 213.755 +-586.047 334.417 210.764 +-587.723 329.098 207.412 +-589.837 324.056 204.234 +-591.639 318.87 200.966 +-594.906 314.49 198.205 +-595.825 308.893 194.678 +-382.554 194.462 122.558 +-381.702 190.214 119.881 +-381.744 186.458 117.514 +-380.084 181.924 114.657 +-377.923 177.225 111.695 +-380.528 174.792 110.161 +-380.992 171.38 108.011 +-382.834 168.6 106.259 +-382.331 164.806 103.868 +-380.526 160.505 101.157 +-135.718 56 35.2936 +-135.298 54.5953 34.4083 +-381.827 150.629 94.933 +-383.367 147.804 93.1527 +-382.684 144.143 90.8451 +-383.973 141.245 89.0184 +-609.282 218.796 137.895 +-384.334 134.68 84.8809 +-382.185 130.633 82.3307 +-381.936 127.28 80.2171 +-381.741 123.97 78.1313 +-381.319 120.613 76.0156 +-382.737 117.852 74.2753 +-382.43 114.569 72.2066 +-383.597 111.742 70.4247 +-379.804 107.51 67.7577 +-376.428 103.473 65.2133 +-376.909 100.538 63.3632 +-378.505 97.8998 61.7007 +-375.186 94.0201 59.2555 +-376.622 91.3636 57.5813 +-379.574 89.0541 56.1257 +-381.83 86.555 54.5507 +-381.741 83.5211 52.6386 +-381.229 80.4131 50.6798 +-381.363 77.4574 48.817 +-380.394 74.2964 46.8248 +-381.439 71.5402 45.0877 +-381.184 68.5455 43.2003 +-381.681 65.695 41.4038 +-381.068 62.6649 39.4941 +-381.011 59.7413 37.6515 +-381.121 56.8526 35.831 +-381.397 53.9949 34.0299 +-380.853 51.0316 32.1623 +-380.079 48.0554 30.2866 +-380.758 45.2712 28.5318 +-380.417 42.3701 26.7034 +-381.435 39.6218 24.9714 +-381.234 36.7469 23.1595 +-380.604 33.8425 21.329 +-381.635 31.0882 19.5931 +-380.347 28.1515 17.7423 +-381.221 25.3823 15.997 +-380.172 22.4902 14.1743 +-379.89 19.6569 12.3886 +-380.378 16.8648 10.6289 +-380.737 14.0633 8.86329 +-379.868 11.2224 7.07286 +-148.249 3.2842 2.06985 +-146.578 2.1645 1.36416 +-145.994 1.07786 0.679315 +96.5 -3.55271e-15 -1.7053e-13 +96.4963 0.716447 0.442555 +96.4853 1.43284 0.885078 +96.6669 2.15357 1.33028 +96.6411 2.87118 1.77355 +96.608 3.58856 2.21668 +96.5675 4.30568 2.65965 +96.5196 5.02245 3.10241 +96.4644 5.73886 3.54494 +96.2025 6.44147 3.97895 +96.332 7.17029 4.42915 +96.2548 7.88522 4.87077 +97.1648 8.68845 5.36693 +96.7739 9.38064 5.79451 +96.8725 10.1195 6.25088 +96.765 10.8384 6.69495 +96.6502 11.5563 7.13845 +96.3301 12.2483 7.56586 +96.1021 12.9497 7.99916 +95.9656 13.6627 8.43956 +96.6096 14.4929 8.95237 +95.5724 15.07 9.30889 +96.1013 15.8926 9.81702 +96.1306 16.6394 10.2783 +95.7607 17.3172 10.697 +95.7746 18.0642 11.1584 +95.5857 18.7746 11.5973 +96.4591 19.7021 12.1701 +96.1563 20.3969 12.5993 +95.9434 21.11 13.0398 +95.7232 21.8215 13.4793 +96.363 22.7359 14.0442 +96.1262 23.4505 14.4856 +96.7449 24.3807 15.0602 +96.4911 25.0981 15.5033 +96.23 25.8135 15.9452 +95.7714 26.4744 16.3535 +96.3497 27.4274 16.9422 +96.0647 28.1417 17.3834 +96.5265 29.081 17.9636 +96.2245 29.7966 18.4056 +95.8216 30.48 18.8278 +96.1588 31.4037 19.3983 +96.8565 32.4594 20.0505 +96.7053 33.241 20.5333 +96.3606 33.9577 20.976 +96.1007 34.705 21.4376 +95.8328 35.4512 21.8985 +96.2877 36.4727 22.5295 +95.9099 37.1862 22.9703 +96.4311 38.2564 23.6313 +96.8474 39.3005 24.2763 +96.4406 40.018 24.7195 +96.0265 40.7325 25.1608 +96.3178 41.7529 25.7912 +96.6842 42.82 26.4503 +96.2413 43.5362 26.8927 +96.582 44.6144 27.5587 +96.0332 45.2885 27.9751 +96.3484 46.3768 28.6474 +96.4752 47.3881 29.2721 +95.9855 48.1026 29.7134 +96.0885 49.1201 30.342 +96.3483 50.2317 31.0286 +95.8294 50.9451 31.4693 +95.8936 51.9747 32.1052 +96.0278 53.0553 32.7727 +95.5633 53.8132 33.2409 +95.6709 54.9012 33.913 +95.9283 56.0913 34.6481 +96.0046 57.1918 35.3279 +95.4143 57.9023 35.7668 +95.3022 58.9086 36.3883 +95.4178 60.0694 37.1054 +95.4369 61.1851 37.7946 +95.5197 62.3574 38.5187 +95.5069 63.4833 39.2142 +95.4782 64.6136 39.9124 +95.589 65.8554 40.6795 +95.6043 67.0496 41.4172 +94.9129 67.7569 41.854 +95.4309 69.343 42.8338 +95.3953 70.5512 43.5801 +95.2672 71.7078 44.2945 +95.1969 72.9246 45.0462 +95.1088 74.1459 45.8006 +95.6611 75.8937 46.8802 +94.879 76.601 47.3171 +95.3125 78.3072 48.371 +95.1476 79.5485 49.1378 +94.9644 80.7933 49.9067 +95.3938 82.5876 51.0151 +95.1682 83.8435 51.7909 +94.9929 85.1642 52.6067 +94.6614 86.3638 53.3477 +94.8529 88.0671 54.3998 +94.5482 89.3364 55.1839 +94.8209 91.1826 56.3243 +94.3413 92.332 57.0343 +94.6895 94.3228 58.264 +94.4898 95.8049 59.1795 +94.5212 97.5523 60.259 +92.3842 97.0606 59.9552 +89.8911 96.1452 59.3897 +88.9015 96.8088 59.7996 +88.3313 97.9377 60.497 +89.3093 100.832 62.2849 +88.2717 101.491 62.6916 +88.0502 103.106 63.6896 +87.9184 104.864 64.7754 +87.8719 106.767 65.951 +91.1348 112.814 69.6865 +93.553 118.001 72.8901 +93.7189 120.465 74.412 +93.7324 122.797 75.8525 +91.6633 122.412 75.615 +90.2982 122.943 75.9429 +88.041 122.231 75.503 +87.814 124.338 76.8048 +89.479 129.237 79.8308 +93.4 137.633 85.0173 +92.7726 139.506 86.174 +93.1319 142.942 88.2966 +92.6642 145.198 89.6903 +92.9084 148.66 91.8287 +93.0423 152.061 93.9297 +92.7503 154.869 95.664 +92.8538 158.445 97.8728 +92.3648 161.116 99.523 +92.5599 165.098 101.982 +92.3421 168.477 104.07 +92.4766 172.64 106.641 +92.2885 176.351 108.934 +92.111 180.229 111.329 +90.4543 181.297 111.989 +89.3948 183.612 113.419 +87.4332 184.112 113.728 +91.7353 198.132 122.388 +91.348 202.459 125.061 +89.513 203.686 125.819 +86.9757 203.304 125.583 +84.7202 203.541 125.729 +82.206 203.116 125.467 +80.0877 203.639 125.79 +77.5324 203.012 125.402 +75.2667 203.093 125.452 +72.976 203.075 125.441 +70.7482 203.201 125.519 +68.3856 202.9 125.333 +66.382 203.646 125.794 +63.7989 202.57 125.129 +61.7187 203.036 125.417 +59.4402 202.826 125.288 +57.3575 203.259 125.555 +55.068 202.932 125.353 +53.0061 203.416 125.652 +50.7097 202.969 125.376 +48.4464 202.588 125.14 +46.3666 202.939 125.358 +44.3015 203.36 125.617 +41.8839 202.09 124.833 +39.958 203.148 125.486 +37.732 202.68 125.197 +35.6664 203.037 125.418 +33.4711 202.62 125.16 +31.3654 202.692 125.205 +29.1999 202.326 124.979 +27.1008 202.366 125.003 +25.0137 202.475 125.071 +22.9742 202.991 125.39 +20.7256 201.544 124.496 +18.7282 202.454 125.057 +16.616 202.161 124.877 +14.5601 202.531 125.105 +12.4612 202.292 124.958 +10.3858 202.376 125.01 +8.27816 201.681 124.58 +6.22226 202.16 124.876 +4.13797 201.688 124.584 +2.07081 201.881 124.704 +1.95399e-14 202.144 124.866 +-2.0743 202.221 124.914 +-4.13797 201.688 124.584 +-6.23011 202.415 125.033 +-8.27118 201.511 124.475 +-10.3771 202.207 124.905 +-12.4141 201.527 124.485 +-14.5296 202.107 124.843 +-16.602 201.991 124.772 +-18.7203 202.369 125.005 +-20.7431 201.714 124.6 +-22.8976 202.314 124.971 +-24.8778 201.375 124.391 +-27.0442 201.943 124.742 +-29.1146 201.735 124.613 +-31.2741 202.101 124.84 +-33.318 201.693 124.588 +-35.3856 201.438 124.43 +-37.3566 200.664 123.952 +-39.6279 201.469 124.449 +-41.7277 201.335 124.366 +-43.773 200.934 124.119 +-45.8323 200.602 123.913 +-48.0277 200.837 124.059 +-50.0028 200.14 123.628 +-52.4433 201.257 124.318 +-54.5506 201.025 124.175 +-56.8206 201.357 124.38 +-58.9322 201.092 124.217 +-61.3681 201.883 124.705 +-63.2036 200.68 123.962 +-65.6872 201.514 124.477 +-67.6138 200.61 123.919 +-70.1518 201.487 124.46 +-72.2158 200.959 124.134 +-74.2443 200.334 123.748 +-76.6671 200.746 124.003 +-79.2944 201.622 124.543 +-81.2944 200.864 124.076 +-83.7855 201.296 124.342 +-85.9839 200.986 124.151 +-88.7426 201.934 124.736 +-90.7746 201.188 124.275 +-93.1646 201.218 124.294 +-95.5247 201.15 124.252 +-97.8904 201.062 124.198 +-100.34 201.111 124.228 +-102.917 201.372 124.39 +-104.816 200.29 123.721 +-107.571 200.82 124.048 +-109.669 200.091 123.598 +-112.493 200.652 123.944 +-114.985 200.573 123.896 +-117.395 200.321 123.74 +-119.944 200.276 123.712 +-122.825 200.736 123.996 +-124.832 199.741 123.382 +-127.735 200.152 123.636 +-130.171 199.792 123.413 +-135.81 204.223 126.151 +-139.1 204.975 126.615 +-142.06 205.181 126.742 +-143.387 203.025 125.41 +-143.06 198.616 122.687 +-143.237 195.02 120.466 +-144.749 193.304 119.406 +-147.652 193.435 119.487 +-154.156 198.149 122.398 +-494.103 623.225 384.971 +-495.266 613.082 378.706 +-142.247 172.835 106.762 +-142.795 170.317 105.207 +-143.537 168.081 103.825 +-142.995 164.41 101.557 +-142.57 160.964 99.4289 +-142.937 158.481 97.8954 +-148.436 161.638 99.8451 +-150.337 160.796 99.3254 +-515.288 541.371 334.41 +-516.814 533.389 329.479 +-519.244 526.469 325.204 +-521.247 519.229 320.733 +-523.798 512.643 316.664 +-524.795 504.656 311.731 +-527.944 498.844 308.14 +-529.46 491.581 303.654 +-532.232 485.578 299.946 +-533.337 478.152 295.359 +-536.693 472.828 292.07 +-537.808 465.609 287.611 +-543.694 462.561 285.728 +-560.9 468.943 289.67 +-563.171 462.692 285.809 +-564.849 456.034 281.696 +-569.139 451.532 278.916 +-570.063 444.416 274.52 +-572.073 438.231 270.699 +-574.075 432.107 266.916 +-576.749 426.544 263.48 +-578.745 420.534 259.767 +-581.964 415.455 256.63 +-583.503 409.224 252.781 +-585.735 403.538 249.269 +-587.269 397.427 245.494 +-593.845 394.727 243.826 +-587.954 383.829 237.095 +-575.177 368.749 227.779 +-575.803 362.491 223.914 +-578.69 357.702 220.956 +-580.464 352.255 217.591 +-582.745 347.152 214.439 +-584.553 341.8 211.133 +-588.036 337.448 208.445 +-588.473 331.378 204.695 +-591.347 326.719 201.817 +-592.904 321.356 198.505 +-595.415 316.536 195.527 +-597.104 311.303 192.295 +-381.868 195.209 120.583 +-380.754 190.813 117.867 +-382.264 187.766 115.985 +-379.562 182.7 112.856 +-378.71 178.597 110.321 +-380.616 175.818 108.605 +-381.61 172.627 106.633 +-381.237 168.845 104.297 +-381.796 165.505 102.234 +-381.063 161.639 99.8462 +-133.651 55.4584 34.2572 +-136.11 55.2332 34.1181 +-381.737 151.444 93.5482 +-382.002 148.11 91.4886 +-382.319 144.818 89.4554 +-381.956 141.296 87.2797 +-609.927 220.264 136.059 +-3027.09 1066.75 658.942 +-381.351 131.084 80.9717 +-381.192 127.749 78.9116 +-380.901 124.395 76.84 +-381.413 121.324 74.9428 +-381.985 118.284 73.0651 +-381.016 114.791 70.9073 +-380.76 111.542 68.9003 +-378.097 107.631 66.4844 +-377.569 104.373 64.4721 +-377.481 101.258 62.5482 +-377.262 98.1292 60.6153 +-376.912 94.9856 58.6734 +-376.334 91.8088 56.7111 +-377.55 89.0795 55.0252 +-380.865 86.8232 53.6315 +-380.676 83.7582 51.7382 +-380.841 80.7847 49.9014 +-381.363 77.8946 48.1162 +-381.563 74.9454 46.2944 +-381.732 71.9993 44.4746 +-380.988 68.8971 42.5583 +-380.603 65.8793 40.6942 +-381.657 63.116 38.9873 +-379.831 59.8925 36.9961 +-381.121 57.1736 35.3166 +-381.002 54.2436 33.5068 +-381.544 51.4128 31.7582 +-380.277 48.3518 29.8673 +-380.758 45.5267 28.1223 +-380.814 42.6537 26.3476 +-380.84 39.7833 24.5745 +-381.532 36.9832 22.8448 +-381.001 34.0692 21.0448 +-380.938 31.2066 19.2766 +-380.746 28.3401 17.5059 +-380.623 25.4855 15.7426 +-381.768 22.7121 14.0295 +-380.19 19.7834 12.2204 +-381.077 16.9912 10.4956 +-381.437 14.1687 8.75214 +-380.768 11.3125 6.98783 +-148.849 3.31611 2.04839 +-147.378 2.1886 1.35192 +-145.994 1.08395 0.669563 +96.6 3.55271e-15 -1.7053e-13 +96.4963 0.72041 0.436074 +96.5853 1.44226 0.873017 +97.3666 2.18116 1.32029 +96.6411 2.88706 1.74758 +96.608 3.60841 2.18422 +96.5675 4.32949 2.6207 +96.5196 5.05024 3.05698 +96.4644 5.7706 3.49303 +96.4019 6.49052 3.9288 +97.129 7.2696 4.40039 +96.2548 7.92884 4.79943 +96.0708 8.63813 5.22878 +96.9726 9.45187 5.72135 +95.9792 10.0817 6.10257 +96.8642 10.9094 6.60363 +96.5511 11.6084 7.0267 +96.2312 12.3034 7.44744 +96.1021 13.0214 7.88201 +95.9656 13.7383 8.31595 +96.5112 14.5581 8.81225 +95.5724 15.1534 9.17256 +96.1995 15.9969 9.68314 +95.9346 16.6974 10.1071 +95.9563 17.4485 10.5618 +95.7746 18.1642 10.995 +95.5857 18.8785 11.4274 +96.4591 19.8111 11.9919 +96.2533 20.5304 12.4274 +95.7498 21.1839 12.8229 +95.8198 21.9643 13.2953 +96.363 22.8617 13.8385 +96.1262 23.5802 14.2734 +95.6902 24.2483 14.6779 +96.3955 25.212 15.2611 +96.0393 25.9049 15.6806 +95.8665 26.6473 16.13 +96.3497 27.5792 16.694 +95.9701 28.2695 17.1119 +96.5265 29.2419 17.7005 +96.2245 29.9614 18.1361 +96.8519 30.9782 18.7515 +96.1588 31.5774 19.1143 +95.833 32.2941 19.548 +96.5198 33.3608 20.1937 +96.3606 34.1456 20.6688 +96.8371 35.1645 21.2855 +96.5664 35.9202 21.743 +96.379 36.7093 22.2206 +95.9099 37.392 22.6339 +96.5218 38.5042 23.3071 +96.2156 39.2602 23.7647 +96.5305 40.277 24.3802 +95.937 40.9197 24.7693 +96.3178 41.9839 25.4134 +96.5955 43.0173 26.039 +96.153 43.7369 26.4745 +96.4941 44.8204 27.1304 +96.0332 45.539 27.5654 +96.3484 46.6334 28.2278 +95.869 47.3509 28.6621 +95.9855 48.3687 29.2783 +96.0885 49.3919 29.8976 +96.3483 50.5096 30.5741 +95.8294 51.227 31.0084 +95.8936 52.2622 31.635 +96.1116 53.3954 32.3209 +96.3138 54.5358 33.0113 +95.6709 55.205 33.4163 +95.8459 56.3531 34.1113 +95.9227 57.4591 34.7808 +95.4143 58.2227 35.243 +95.5449 59.3853 35.9467 +95.4178 60.4017 36.562 +95.4369 61.5235 37.241 +95.5197 62.7024 37.9546 +95.4281 63.7817 38.608 +94.8521 64.545 39.07 +95.5112 66.1659 40.0511 +95.5271 67.3661 40.7776 +94.9129 68.1317 41.2411 +95.4309 69.7266 42.2065 +95.3953 70.9415 42.9419 +95.2672 72.1045 43.6458 +95.1225 73.2708 44.3518 +95.1825 74.6139 45.1648 +95.0028 75.7884 45.8758 +95.3142 77.3781 46.838 +95.2406 78.681 47.6267 +95.1476 79.9886 48.4182 +94.9644 81.2402 49.1758 +94.7629 82.4953 49.9355 +95.1682 84.3073 51.0324 +94.9241 85.5729 51.7985 +94.5932 86.7791 52.5286 +94.9204 88.6167 53.6409 +94.5482 89.8306 54.3757 +94.8872 91.7503 55.5377 +94.4725 92.972 56.2772 +94.6895 94.8446 57.4107 +94.6183 96.4657 58.392 +94.076 97.63 59.0968 +92.3842 97.5975 59.0771 +90.4514 97.2793 58.8845 +89.394 97.8833 59.2501 +88.0269 98.1399 59.4054 +88.7075 100.706 60.9589 +88.1527 101.915 61.6906 +88.109 103.746 62.7988 +87.8604 105.375 63.7848 +87.8719 107.358 64.9851 +89.0957 110.9 67.1295 +92.3787 117.164 70.921 +93.4429 120.774 73.1063 +93.569 123.261 74.6117 +92.6305 124.388 75.2936 +90.9341 124.494 75.3579 +88.459 123.49 74.7504 +88.123 125.466 75.9461 +91.1031 132.31 80.0893 +92.85 137.579 83.2786 +93.265 141.022 85.3624 +93.1319 143.733 87.0034 +93.1891 146.829 88.8775 +93.0023 149.634 90.5755 +92.7191 152.371 92.2325 +92.7503 155.726 94.263 +92.8538 159.321 96.4394 +92.321 161.931 98.0188 +92.5599 166.011 100.489 +92.3421 169.409 102.546 +92.4766 173.595 105.079 +92.4106 177.562 107.481 +91.792 180.598 109.318 +90.1807 181.749 110.015 +89.0504 183.917 111.328 +87.3957 185.051 112.014 +91.6253 198.988 120.45 +91.0613 202.94 122.842 +89.1278 203.932 123.443 +86.7363 203.866 123.403 +84.353 203.781 123.351 +82.206 204.24 123.629 +79.8973 204.279 123.653 +77.5633 204.216 123.615 +75.1464 203.89 123.418 +72.5959 203.134 122.96 +70.4074 203.34 123.085 +67.917 202.625 122.652 +65.901 203.289 123.054 +63.6177 203.113 122.947 +61.4683 203.331 123.079 +59.2225 203.201 123 +57.1241 203.552 123.213 +54.8656 203.304 123.063 +52.8329 203.873 123.407 +50.5433 203.423 123.135 +48.267 202.954 122.851 +46.233 203.474 123.166 +43.9552 202.887 122.81 +41.9187 203.376 123.106 +39.8095 203.512 123.189 +37.5912 203.042 122.904 +35.5334 203.398 123.12 +33.332 202.894 122.814 +31.261 203.135 122.96 +29.1146 202.851 122.788 +27.0442 203.06 122.915 +24.9091 202.745 122.724 +22.8209 202.752 122.729 +20.7082 202.489 122.569 +18.6027 202.209 122.4 +16.5741 202.767 122.738 +14.5051 202.883 122.808 +12.3879 202.215 122.404 +10.3116 202.043 122.3 +8.25024 202.112 122.341 +6.20132 202.594 122.633 +4.124 202.119 122.346 +2.06295 202.228 122.411 +1.68754e-14 202.663 122.675 +-2.06819 202.741 122.722 +-4.13622 202.718 122.708 +-6.20394 202.68 122.685 +-8.27118 202.626 122.652 +-10.3334 202.471 122.558 +-12.4089 202.556 122.61 +-14.4685 202.371 122.498 +-16.5183 202.084 122.324 +-18.6419 202.636 122.658 +-20.7431 202.829 122.775 +-22.7921 202.497 122.574 +-24.8778 202.489 122.569 +-26.9424 202.296 122.452 +-28.9683 201.832 122.172 +-31.1827 202.626 122.652 +-33.2485 202.385 122.507 +-35.2821 201.96 122.249 +-37.3566 201.774 122.136 +-39.3804 201.319 121.861 +-41.5193 201.438 121.933 +-43.5543 201.036 121.69 +-45.8705 201.879 122.2 +-47.8882 201.361 121.887 +-50.0028 201.247 121.817 +-52.2485 201.618 122.042 +-54.3482 201.387 121.902 +-56.3537 200.807 121.551 +-58.7144 201.458 121.945 +-60.9675 201.674 122.076 +-62.9966 201.129 121.746 +-65.2863 201.393 121.906 +-67.6414 201.803 122.154 +-69.953 202.028 122.29 +-72.0404 201.58 122.019 +-74.2443 201.443 121.936 +-76.6671 201.857 122.187 +-79.0089 202.007 122.278 +-81.0014 201.248 121.818 +-83.4183 201.522 121.984 +-85.676 201.374 121.895 +-88.0421 201.448 121.939 +-90.5237 201.741 122.117 +-92.7981 201.536 121.992 +-95.2999 201.787 122.145 +-97.5077 201.384 121.901 +-100.34 202.224 122.409 +-102.558 201.781 122.141 +-104.897 201.554 122.003 +-107.198 201.23 121.808 +-109.669 201.198 121.788 +-112.062 200.989 121.662 +-114.634 201.068 121.709 +-116.993 200.74 121.511 +-119.445 200.545 121.393 +-122.41 201.164 121.767 +-124.832 200.846 121.575 +-127.211 200.433 121.325 +-129.784 200.299 121.244 +-134.136 202.822 122.771 +-138.65 205.443 124.357 +-141.096 204.916 124.038 +-143.541 204.368 123.707 +-143.06 199.715 120.89 +-143.131 195.955 118.614 +-144.265 193.724 117.264 +-147.325 194.074 117.476 +-150.292 194.251 117.583 +-495.221 628.091 380.192 +-143.697 178.865 108.269 +-142.993 174.702 105.75 +-142.969 171.468 103.792 +-143.126 168.526 102.011 +-142.52 164.769 99.737 +-142.329 161.581 97.807 +-143.911 160.445 97.1193 +-149.052 163.206 98.7909 +-513.512 552.275 334.3 +-516.043 545.164 329.995 +-518.022 537.594 325.413 +-520.465 530.626 321.195 +-522.221 523.077 316.626 +-524.191 515.866 312.261 +-525.988 508.601 307.863 +-528.546 502.176 303.974 +-530.338 495.121 299.703 +-532.368 488.39 295.629 +-534.645 481.976 291.747 +-537.527 476.182 288.24 +-538.999 469.223 284.027 +-550.553 470.988 285.095 +-568.532 477.953 289.311 +-564.754 466.559 282.414 +-566.735 460.087 278.497 +-568.847 453.797 274.689 +-571.169 447.742 271.024 +-573.411 441.686 267.358 +-575.498 435.574 263.659 +-579.013 430.587 260.641 +-580.114 423.86 256.568 +-581.428 417.369 252.639 +-583.348 411.379 249.014 +-590.864 409.324 247.769 +-597.443 406.548 246.089 +-589.984 394.33 238.694 +-580.973 381.37 230.849 +-575.417 370.943 224.537 +-577.169 365.361 221.158 +-579.499 360.184 218.024 +-581.197 354.652 214.676 +-584.055 349.857 211.774 +-586.036 344.563 208.569 +-589.197 339.983 205.797 +-589.974 334.061 202.212 +-592.605 329.225 199.284 +-594.422 323.961 196.098 +-596.178 318.695 192.91 +-597.871 313.428 189.722 +-383.325 197.039 119.27 +-382.563 192.78 116.692 +-379.925 187.65 113.587 +-382.26 185.017 111.993 +-378.798 179.626 108.73 +-382.022 177.445 107.41 +-380.815 173.22 104.853 +-381.06 169.699 102.721 +-382.331 166.654 100.878 +-381.063 162.534 98.3839 +-383.695 160.096 96.908 +-135.749 55.3914 33.5292 +-381.012 151.992 92.0031 +-383.731 149.603 90.5568 +-381.131 145.167 87.8718 +-382.597 142.316 86.1459 +-610.939 221.85 134.289 +-614.749 217.838 131.86 +-381.722 131.937 79.8635 +-382.402 128.863 78.0024 +-382.675 125.666 76.0673 +-381.6 122.055 73.8815 +-381.233 118.705 71.8537 +-381.581 115.597 69.9724 +-381.422 112.354 68.0093 +-377.528 108.063 65.4123 +-376.713 104.713 63.384 +-376.623 101.587 61.4923 +-377.071 98.6215 59.697 +-375.761 95.2202 57.6381 +-377.295 92.5528 56.0235 +-378.707 89.8469 54.3856 +-381.83 87.5251 52.9802 +-382.322 84.5858 51.2009 +-381.229 81.3144 49.2207 +-381.363 78.3255 47.4115 +-380.297 75.1099 45.465 +-380.755 72.2123 43.7111 +-381.478 69.3672 41.9889 +-381.289 66.3632 40.1705 +-381.657 63.4651 38.4163 +-381.405 60.4733 36.6053 +-379.939 57.3117 34.6915 +-381.002 54.5437 33.016 +-380.951 51.617 31.2445 +-381.76 48.8089 29.5447 +-380.758 45.7786 27.7104 +-380.616 42.8673 25.9482 +-380.84 40.0034 24.2146 +-380.24 37.0619 22.4341 +-381.3 34.2844 20.7528 +-381.934 31.4612 19.0439 +-381.244 28.5341 17.2721 +-381.221 25.6668 15.5365 +-381.468 22.8199 13.8132 +-380.788 19.9241 12.0604 +-379.779 17.027 10.3067 +-379.838 14.1874 8.58782 +-380.168 11.3572 6.87467 +-148.149 3.31877 2.0089 +-146.178 2.18279 1.32128 +-146.394 1.09293 0.661565 +96.6 3.55271e-15 -1.7053e-13 +96.5963 0.725065 0.430002 +96.5853 1.45007 0.85997 +96.5669 2.17497 1.28987 +96.6411 2.90271 1.72146 +96.608 3.62797 2.15158 +96.5675 4.35296 2.58154 +96.5196 5.07761 3.01129 +96.4644 5.80188 3.44082 +97.1994 6.57969 3.90211 +96.332 7.24904 4.29907 +96.2548 7.97181 4.72771 +97.0653 8.77492 5.204 +96.9726 9.5031 5.63584 +96.8725 10.2306 6.06728 +96.765 10.9574 6.49831 +96.6502 11.6832 6.92878 +96.429 12.3955 7.35119 +96.1021 13.0919 7.76422 +95.867 13.7985 8.18326 +95.7233 14.5176 8.6097 +95.5724 15.2355 9.03548 +96.1995 16.0836 9.53843 +95.1507 16.6507 9.87474 +95.8585 17.5252 10.3934 +95.7746 18.2626 10.8307 +95.5857 18.9808 11.2566 +95.3895 19.6976 11.6817 +96.2533 20.6417 12.2416 +96.8148 21.5356 12.7718 +95.7232 22.0612 13.0834 +96.363 22.9856 13.6317 +96.03 23.6844 14.0461 +95.7861 24.4042 14.473 +96.3955 25.3486 15.0331 +96.1347 26.0711 15.4616 +95.9616 26.8183 15.9047 +96.4445 27.7559 16.4607 +97.0102 28.7308 17.0389 +96.4322 29.3716 17.4189 +96.1306 30.0944 17.8476 +95.8216 30.8147 18.2748 +96.1588 31.7486 18.8286 +96.8565 32.8159 19.4616 +96.7053 33.6061 19.9302 +96.3606 34.3307 20.3599 +96.8371 35.3551 20.9674 +96.7498 36.1834 21.4587 +96.379 36.9083 21.8886 +96.9109 37.9869 22.5283 +96.5218 38.7129 22.9588 +96.1253 39.4359 23.3876 +96.5305 40.4953 24.0159 +95.937 41.1415 24.3991 +96.3178 42.2115 25.0337 +96.0633 43.0122 25.5086 +96.153 43.9739 26.0789 +95.7911 44.735 26.5302 +96.0332 45.7859 27.1535 +96.3484 46.8861 27.806 +95.869 47.6075 28.2338 +95.9855 48.6309 28.8407 +96.0885 49.6596 29.4508 +96.3483 50.7833 30.1172 +95.8294 51.5046 30.545 +95.8936 52.5454 31.1623 +96.1116 53.6848 31.8379 +95.5633 54.4042 32.2646 +95.6709 55.5042 32.9169 +95.8459 56.6585 33.6015 +96.0046 57.8199 34.2903 +95.3329 58.4883 34.6867 +95.464 59.6566 35.3796 +95.4982 60.7801 36.0459 +95.4369 61.857 36.6845 +95.4404 62.9899 37.3563 +95.5069 64.1804 38.0624 +95.5565 65.3767 38.7719 +95.5112 66.5245 39.4526 +95.6043 67.786 40.2007 +95.4491 68.8879 40.8542 +95.4309 70.1045 41.5757 +95.3953 71.326 42.3001 +95.2672 72.4953 42.9936 +95.1969 73.7255 43.7232 +95.1088 74.9602 44.4554 +95.0028 76.1992 45.1902 +95.4593 77.9159 46.2083 +95.2406 79.1074 46.9149 +95.1476 80.4221 47.6946 +94.9644 81.6806 48.4409 +95.3938 83.4945 49.5167 +95.0987 84.7023 50.233 +94.8553 85.9744 50.9874 +94.6614 87.3123 51.7808 +94.988 89.1607 52.877 +94.5482 90.3175 53.5631 +94.8209 92.184 54.67 +94.5381 93.5412 55.4749 +94.6895 95.3587 56.5528 +94.6826 97.054 57.5582 +94.6484 98.757 58.5682 +92.3842 98.1265 58.1943 +90.3891 97.7395 57.9647 +89.2093 98.2108 58.2443 +87.8443 98.4671 58.3963 +88.7075 101.252 60.0479 +87.9148 102.191 60.6045 +88.109 104.308 61.8603 +87.8023 105.875 62.7897 +87.9293 108.01 64.0558 +87.9629 110.084 65.2856 +91.5958 116.801 69.2689 +93.5533 121.572 72.099 +93.5145 123.857 73.4538 +93.3827 126.077 74.7703 +90.8812 125.096 74.1883 +89.295 125.333 74.3291 +87.814 125.704 74.5489 +91.4077 133.472 79.1561 +93.3 138.995 82.4315 +92.7726 141.038 83.6429 +92.7441 143.911 85.3467 +93.046 147.398 87.4146 +92.9554 150.369 89.177 +92.6729 153.121 90.8088 +92.7049 156.493 92.8088 +92.8091 160.107 94.9523 +92.7155 163.504 96.9666 +92.6029 166.988 99.033 +92.7224 171.029 101.429 +92.4766 174.536 103.509 +92.2885 178.288 105.734 +91.7522 181.499 107.638 +90.2589 182.893 108.465 +89.0122 184.834 109.616 +87.4332 186.134 110.387 +91.552 199.907 118.555 +91.3838 204.762 121.435 +89.0928 204.957 121.55 +86.7021 204.89 121.511 +84.3864 204.966 121.556 +81.9781 204.779 121.445 +79.8656 205.304 121.756 +77.2852 204.587 121.331 +75.1464 204.995 121.573 +72.5667 204.153 121.074 +70.4926 204.69 121.392 +68.1651 204.467 121.26 +65.8743 204.308 121.166 +63.5401 203.964 120.962 +61.4683 204.433 121.24 +59.1983 204.219 121.113 +57.1007 204.572 121.322 +54.7981 204.155 121.075 +52.8329 204.978 121.563 +50.5017 204.357 121.195 +48.267 204.054 121.015 +46.1949 204.409 121.225 +43.9734 204.071 121.025 +41.7971 203.885 120.915 +39.6939 204.022 120.996 +37.6225 204.311 121.168 +35.4151 203.82 120.876 +33.3459 204.078 121.029 +31.2088 203.894 120.92 +29.139 204.121 121.055 +27.0556 204.247 121.129 +24.9196 203.929 120.941 +22.84 204.022 120.996 +20.6995 203.5 120.687 +18.6183 203.476 120.672 +16.5114 203.094 120.445 +14.4685 203.468 120.667 +12.3932 203.396 120.625 +10.3509 203.912 120.93 +8.25373 203.294 120.564 +6.20394 203.778 120.851 +4.12575 203.301 120.568 +2.06383 203.41 120.633 +1.86517e-14 203.762 120.842 +-2.06906 203.926 120.939 +-4.11877 202.957 120.364 +-6.17776 202.918 120.341 +-8.23628 202.864 120.309 +-10.3334 203.568 120.727 +-12.4089 203.654 120.778 +-14.4685 203.468 120.667 +-16.5183 203.18 120.496 +-18.5791 203.048 120.418 +-20.6908 203.415 120.636 +-22.7921 203.594 120.742 +-24.8778 203.586 120.738 +-26.9537 203.477 120.673 +-28.9562 202.841 120.295 +-31.0652 202.957 120.364 +-33.1232 202.716 120.221 +-35.2821 203.055 120.422 +-37.2001 202.018 119.807 +-39.3804 202.41 120.04 +-41.3977 201.937 119.759 +-43.5907 202.295 119.972 +-45.6606 202.044 119.823 +-47.8882 202.453 120.065 +-50.0236 202.422 120.047 +-52.0754 202.039 119.82 +-54.1682 201.808 119.683 +-56.307 201.729 119.636 +-58.6903 202.467 120.073 +-60.7422 202.018 119.808 +-63.0224 202.302 119.976 +-65.2863 202.485 120.084 +-67.3658 202.069 119.838 +-69.6974 202.381 120.022 +-72.0112 202.59 120.147 +-74.2743 202.616 120.162 +-76.6671 202.951 120.361 +-78.7867 202.531 120.112 +-81.0339 202.42 120.046 +-83.4183 202.614 120.161 +-85.676 202.466 120.073 +-88.0071 202.46 120.069 +-90.5237 202.835 120.292 +-92.8348 202.708 120.217 +-95.2625 202.801 120.272 +-97.5843 202.634 120.173 +-99.9881 202.607 120.157 +-102.12 202.006 119.801 +-104.531 201.939 119.761 +-107.198 202.321 119.987 +-109.289 201.587 119.552 +-112.062 202.079 119.843 +-114.59 202.08 119.844 +-117.038 201.905 119.74 +-119.49 201.709 119.624 +-121.994 201.567 119.54 +-124.879 202.011 119.803 +-127.306 201.67 119.601 +-129.687 201.234 119.342 +-133.841 203.472 120.67 +-138.15 205.812 122.057 +-141.045 205.953 122.141 +-143.593 205.549 121.902 +-143.165 200.943 119.17 +-142.707 196.433 116.495 +-144.211 194.701 115.468 +-147.053 194.766 115.507 +-150.458 195.519 115.953 +-495.221 631.495 374.51 +-143.301 179.338 106.357 +-142.878 175.508 104.086 +-143.027 172.468 102.283 +-143.772 170.205 100.941 +-142.639 165.801 98.3286 +-142.811 163.006 96.6713 +-143.911 161.314 95.6679 +-149.729 164.836 97.7568 +-513.824 555.606 329.504 +-516.483 548.587 325.341 +-518.595 541.105 320.904 +-520.851 533.897 316.63 +-522.221 525.912 311.894 +-524.782 519.246 307.941 +-526.783 512.131 303.721 +-528.881 505.218 299.621 +-530.744 498.184 295.45 +-532.982 491.603 291.547 +-534.783 484.713 287.461 +-537.735 478.949 284.042 +-539.63 472.318 280.11 +-553.24 475.852 282.205 +-569.673 481.508 285.56 +-565.041 469.327 278.336 +-566.59 462.463 274.265 +-569.286 456.609 270.793 +-571.759 450.633 267.249 +-573.782 444.368 263.534 +-575.572 437.993 259.753 +-577.655 431.906 256.144 +-580.038 426.101 252.701 +-582.27 420.239 249.224 +-584.274 414.265 245.681 +-593.74 413.545 245.254 +-599.713 410.305 243.332 +-589.511 396.15 234.938 +-577.958 381.448 226.219 +-575.417 372.954 221.182 +-577.732 367.699 218.065 +-579.256 361.984 214.676 +-581.604 356.823 211.615 +-584.055 351.754 208.609 +-586.036 346.43 205.452 +-589.197 341.826 202.721 +-590.725 336.299 199.443 +-593.024 331.243 196.445 +-594.844 325.948 193.304 +-596.602 320.65 190.163 +-597.871 315.126 186.887 +-383.154 198.018 117.435 +-379.978 192.515 114.172 +-381.744 189.57 112.425 +-382.26 186.019 110.319 +-376.086 179.307 106.339 +-380.616 177.749 105.415 +-382.051 174.724 103.621 +-382.213 171.135 101.492 +-381.262 167.089 99.0927 +-382.137 163.875 97.1865 +-384.414 161.264 95.6383 +-136.29 55.9138 33.1599 +-382.281 153.325 90.9296 +-382.457 149.915 88.9076 +-382.045 146.303 86.7657 +-382.322 142.984 84.7973 +-387.533 141.488 83.9097 +-614.288 218.854 129.792 +-381.536 132.588 78.6318 +-381.843 129.372 76.7245 +-382.488 126.285 74.8938 +-381.038 122.536 72.6703 +-380.951 119.26 70.7273 +-382.147 116.395 69.0287 +-380.949 112.822 66.9098 +-377.528 108.649 64.4348 +-376.999 105.359 62.4837 +-376.051 101.982 60.481 +-376.21 98.9299 58.6707 +-377.008 96.0536 56.9649 +-376.911 92.9589 55.1296 +-376.972 89.9201 53.3274 +-381.541 87.9333 52.1491 +-381.45 84.8504 50.3208 +-381.714 81.8592 48.5469 +-381.363 78.7501 46.703 +-380.004 75.4589 44.7511 +-381.341 72.7155 43.1241 +-381.184 69.6895 41.3296 +-381.681 66.7914 39.6109 +-381.068 63.7107 37.7839 +-381.7 60.848 36.0861 +-381.416 57.8463 34.3059 +-380.805 54.8109 32.5058 +-381.346 51.9505 30.8094 +-380.87 48.9591 29.0354 +-380.758 46.0267 27.2963 +-380.12 43.0435 25.5271 +-380.84 40.2202 23.8527 +-381.234 37.3602 22.1566 +-381.996 34.5332 20.48 +-380.938 31.5493 18.7104 +-380.048 28.5988 16.9606 +-380.125 25.7317 15.2603 +-380.271 22.8716 13.5641 +-380.788 20.0321 11.8801 +-380.378 17.1463 10.1687 +-380.537 14.2905 8.47503 +-380.468 11.4277 6.77723 +-150.848 3.39755 2.01493 +-145.678 2.18712 1.29708 +-146.594 1.10036 0.65257 +95.7 0 -1.7053e-13 +96.3963 0.727405 0.422567 +96.5853 1.45777 0.846853 +96.5669 2.18652 1.2702 +96.6411 2.91812 1.6952 +96.5081 3.64346 2.11657 +96.5675 4.37607 2.54216 +96.5196 5.10457 2.96536 +96.4644 5.83269 3.38834 +96.4019 6.56035 3.81106 +96.332 7.28753 4.23349 +96.2548 8.01414 4.6556 +97.0653 8.82151 5.12462 +96.9726 9.55355 5.54988 +96.7732 10.2744 5.96866 +96.8642 11.0268 6.40573 +96.5511 11.7332 6.81612 +96.429 12.4613 7.23907 +96.0033 13.1479 7.63791 +95.867 13.8718 8.05844 +95.7233 14.5947 8.47838 +95.5724 15.3164 8.89766 +96.1995 16.169 9.39295 +96.0326 16.8943 9.81429 +95.9563 17.6362 10.2453 +95.7746 18.3596 10.6655 +95.5857 19.0816 11.0849 +95.3895 19.8021 11.5035 +96.1563 20.7304 12.0428 +95.9434 21.4552 12.4638 +95.7232 22.1783 12.8839 +96.363 23.1077 13.4238 +96.03 23.8101 13.8319 +95.7861 24.5338 14.2522 +96.3955 25.4832 14.8038 +96.1347 26.2095 15.2257 +95.8665 26.934 15.6466 +95.591 27.6563 16.0662 +97.0102 28.8833 16.779 +96.5265 29.5565 17.17 +96.1306 30.2542 17.5754 +96.8519 31.3114 18.1895 +96.5322 32.0411 18.6134 +96.8565 32.9901 19.1647 +96.5198 33.7197 19.5885 +96.3606 34.5129 20.0494 +96.8371 35.5428 20.6476 +96.7498 36.3755 21.1314 +96.379 37.1042 21.5547 +96.0919 37.8659 21.9972 +95.6155 38.553 22.3963 +96.2156 39.6825 23.0525 +96.6204 40.7482 23.6716 +95.937 41.3599 24.0269 +96.3178 42.4356 24.6518 +96.8616 43.5999 25.3282 +96.2413 44.248 25.7047 +96.582 45.3438 26.3413 +96.0332 46.029 26.7393 +96.3484 47.1351 27.3819 +95.869 47.8603 27.8032 +95.9855 48.8891 28.4008 +96.1742 49.9678 29.0274 +96.3483 51.053 29.6579 +95.6598 51.6864 30.0259 +95.8936 52.8244 30.6869 +95.3568 53.546 31.1061 +95.4799 54.6453 31.7447 +95.588 55.7504 32.3867 +95.8459 56.9594 33.089 +96.0046 58.1269 33.7672 +95.4143 58.849 34.1868 +95.3831 59.9225 34.8104 +95.4982 61.1028 35.4961 +94.8779 61.8211 35.9133 +95.5197 63.377 36.8172 +94.8765 64.0953 37.2344 +95.5565 65.7238 38.1805 +95.5112 66.8777 38.8508 +95.5271 68.0909 39.5556 +95.5257 69.3093 40.2634 +95.507 70.5329 40.9742 +95.3953 71.7047 41.655 +95.2672 72.8802 42.3378 +95.1969 74.117 43.0563 +95.1088 75.3582 43.7773 +95.6611 77.1345 44.8092 +95.4593 78.3296 45.5035 +95.3125 79.5875 46.2342 +95.1476 80.8491 46.9671 +94.9644 82.1142 47.7021 +95.3938 83.9379 48.7615 +95.1682 85.2143 49.503 +94.8553 86.4309 50.2097 +95.2752 88.3448 51.3216 +94.988 89.6341 52.0705 +94.5482 90.7971 52.7461 +94.7547 92.6086 53.7985 +94.4725 93.9722 54.5906 +94.6895 95.865 55.6902 +94.8112 97.7024 56.7576 +94.5212 99.1473 57.597 +92.3213 98.5801 57.2675 +90.3891 98.2584 57.0806 +89.2093 98.7323 57.3559 +88.2095 99.4015 57.7447 +88.3464 101.376 58.8915 +88.3312 103.22 59.9629 +88.0502 104.792 60.8761 +87.8604 106.508 61.8732 +87.9866 108.655 63.1199 +87.4531 110.027 63.9171 +90.9248 116.561 67.7131 +93.4981 122.145 70.9571 +93.5145 124.515 72.3334 +93.4364 126.82 73.6726 +91.5171 126.64 73.5681 +89.295 125.998 73.1954 +88.02 126.668 73.5842 +91.2046 133.883 77.776 +93.3 139.733 81.1742 +92.7726 141.787 82.3672 +92.7441 144.675 84.0449 +93.046 148.18 86.0813 +92.9554 151.168 87.8168 +92.7191 154.011 89.4684 +92.7049 157.324 91.3933 +92.8538 161.035 93.5492 +92.7155 164.372 95.4876 +92.5599 167.797 97.4773 +92.3844 171.31 99.5182 +92.4766 175.463 101.93 +92.2885 179.234 104.121 +91.7522 182.462 105.997 +90.4152 184.182 106.996 +88.9356 185.656 107.852 +87.5081 187.282 108.796 +91.5887 201.049 116.794 +91.2046 205.446 119.348 +89.0227 205.883 119.602 +86.7021 205.978 119.658 +84.0859 205.32 119.275 +81.9455 205.784 119.545 +79.6117 205.738 119.518 +77.2542 205.591 119.433 +74.8156 205.177 119.192 +72.5959 205.319 119.275 +70.237 205.031 119.107 +67.9446 204.888 119.024 +65.8475 205.31 119.269 +63.5401 205.047 119.117 +61.4683 205.518 119.39 +59.2225 205.387 119.314 +56.8673 204.817 118.983 +54.6631 204.733 118.934 +52.5948 205.138 119.169 +50.3146 204.681 118.904 +48.267 205.138 119.169 +46.0422 204.815 118.982 +43.9552 205.069 119.13 +41.7971 204.967 119.07 +39.7105 205.19 119.199 +37.4661 204.542 118.823 +35.4299 204.988 119.082 +33.332 205.076 119.134 +31.1697 204.72 118.927 +29.1268 205.12 119.159 +26.9537 204.558 118.832 +24.93 205.097 119.146 +22.84 205.106 119.151 +20.6646 204.237 118.646 +18.6183 204.557 118.832 +16.5114 204.172 118.608 +14.4624 204.462 118.776 +12.3932 204.476 118.785 +10.3116 204.217 118.634 +8.25373 204.373 118.725 +6.18038 204.082 118.556 +4.12924 204.553 118.83 +2.0647 204.577 118.843 +1.95399e-14 204.066 118.546 +-2.06819 204.922 119.044 +-4.11877 204.034 118.528 +-6.1987 204.687 118.908 +-8.23977 204.027 118.524 +-10.3334 204.649 118.885 +-12.3618 203.958 118.484 +-14.4685 204.548 118.827 +-16.5253 204.345 118.709 +-18.5713 204.04 118.531 +-20.6733 204.322 118.696 +-22.7921 204.675 118.901 +-24.7837 203.893 118.446 +-26.8631 203.871 118.433 +-28.8708 203.317 118.111 +-31.0652 204.034 118.528 +-33.1371 203.878 118.437 +-35.1491 203.363 118.139 +-37.2001 203.09 117.98 +-39.3473 203.313 118.109 +-41.4325 203.179 118.032 +-43.5725 203.284 118.092 +-45.6606 203.117 117.995 +-47.6888 202.68 117.742 +-50.0028 203.412 118.167 +-52.0537 203.027 117.943 +-54.1007 202.627 117.711 +-56.3537 202.967 117.908 +-58.6903 203.542 118.242 +-60.9675 203.844 118.418 +-63.0224 203.376 118.146 +-65.0725 202.893 117.865 +-67.5587 203.724 118.348 +-69.6974 203.455 118.192 +-72.0112 203.666 118.314 +-74.3345 203.857 118.425 +-76.1109 202.548 117.665 +-78.7867 203.606 118.28 +-80.7409 202.759 117.787 +-83.385 203.609 118.281 +-85.4024 202.89 117.864 +-88.0772 203.696 118.332 +-90.0937 202.943 117.894 +-92.8714 203.865 118.43 +-94.9628 203.236 118.065 +-97.5843 203.71 118.34 +-99.9099 203.523 118.231 +-102.16 203.158 118.019 +-104.491 202.933 117.888 +-106.908 202.845 117.837 +-109.247 202.579 117.683 +-111.675 202.449 117.608 +-114.152 202.376 117.565 +-116.636 202.281 117.51 +-119.445 202.703 117.755 +-121.994 202.637 117.717 +-124.457 202.396 117.576 +-127.258 202.666 117.733 +-129.687 202.302 117.522 +-133.25 203.649 118.304 +-138.15 206.904 120.196 +-141.096 207.12 120.321 +-143.129 205.974 119.655 +-143.217 202.085 117.396 +-142.76 197.549 114.761 +-144.157 195.663 113.665 +-146.835 195.51 113.577 +-149.851 195.765 113.724 +-1832.2 2348.78 1364.46 +-142.564 179.364 104.197 +-143.05 176.652 102.622 +-143.259 173.665 100.886 +-142.949 170.129 98.8321 +-142.639 166.681 96.8288 +-142.45 163.457 94.9562 +-144.763 163.131 94.7663 +-150.406 166.461 96.7012 +-514.259 559.03 324.753 +-517.238 552.305 320.847 +-518.404 543.778 315.893 +-520.851 536.732 311.8 +-523.065 529.56 307.633 +-525.372 522.59 303.585 +-526.452 514.526 298.9 +-529.148 508.157 295.2 +-530.744 500.83 290.944 +-533.596 494.782 287.43 +-535.058 487.538 283.222 +-537.943 481.679 279.818 +-539.209 474.456 275.622 +-561.584 485.593 282.092 +-569.174 483.641 280.958 +-564.898 471.698 274.021 +-567.098 465.335 270.324 +-570.09 459.682 267.04 +-571.832 453.084 263.207 +-574.154 447.016 259.682 +-576.321 440.891 256.124 +-579.315 435.447 252.961 +-580.57 428.757 249.075 +-582.5 422.637 245.52 +-584.12 416.355 241.87 +-597.392 418.299 243 +-597.678 411.083 238.808 +-587.935 397.189 230.736 +-576.768 382.683 222.31 +-575.896 375.246 217.989 +-577.732 369.652 214.739 +-580.308 364.567 211.785 +-582.662 359.371 208.767 +-584.793 354.068 205.686 +-586.036 348.27 202.318 +-588.782 343.4 199.489 +-590.725 338.085 196.401 +-593.359 333.191 193.558 +-594.422 327.447 190.221 +-596.941 322.536 187.369 +-598.639 317.206 184.272 +-385.554 200.316 116.368 +-382.563 194.854 113.195 +-382.783 191.095 111.012 +-381.129 186.454 108.315 +-378.798 181.559 105.472 +-380.44 178.611 103.759 +-378.343 173.948 101.05 +-381.947 171.924 99.8749 +-381.529 168.094 97.6496 +-381.868 164.63 95.6373 +-383.156 161.591 93.8717 +-135.749 55.9874 32.5244 +-381.737 153.92 89.4156 +-381.456 150.316 87.322 +-381.771 146.975 85.3811 +-381.772 143.537 83.3838 +-385.784 141.596 82.2567 +-613.918 219.883 127.735 +-381.536 133.292 77.4324 +-381.936 130.091 75.5728 +-382.208 126.863 73.6977 +-382.631 123.702 71.8612 +-381.327 120.011 69.7174 +-381.864 116.927 67.9256 +-380.382 113.253 65.7913 +-378.381 109.473 63.5956 +-376.713 105.839 61.4844 +-376.527 102.654 59.6344 +-376.115 99.4301 57.7612 +-376.241 96.3674 55.982 +-377.776 93.6669 54.4133 +-375.816 90.12 52.3528 +-381.734 88.4443 51.3793 +-381.741 85.3658 49.591 +-382.297 82.4193 47.8793 +-380.78 79.047 45.9203 +-381.271 76.1124 44.2155 +-381.341 73.1016 42.4664 +-380.597 69.9516 40.6365 +-381.289 67.0771 38.9667 +-381.068 64.049 37.2076 +-381.7 61.1711 35.5357 +-380.825 58.0634 33.7304 +-381.693 55.2303 32.0846 +-380.655 52.1317 30.2845 +-381.167 49.2574 28.6147 +-380.362 46.2229 26.852 +-379.823 43.2382 25.1181 +-380.244 40.3705 23.4521 +-380.637 37.4998 21.7845 +-381.001 34.6262 20.1152 +-381.934 31.7996 18.4731 +-380.746 28.8034 16.7326 +-380.125 25.8683 15.0275 +-380.87 23.0291 13.3782 +-380.489 20.1227 11.6897 +-380.977 17.2645 10.0293 +-380.537 14.3664 8.34577 +-380.968 11.5035 6.68265 +-3275.38 74.163 43.083 +-146.778 2.21533 1.28694 +-146.594 1.1062 0.642617 +95.7 0 -1.7053e-13 +96.3963 0.731188 0.415987 +96.5853 1.46535 0.833668 +96.5669 2.19789 1.25042 +96.6411 2.93329 1.66881 +96.608 3.6662 2.08577 +96.5675 4.39883 2.50258 +96.4198 5.12581 2.91618 +96.4644 5.86302 3.33559 +96.4019 6.59447 3.75172 +96.332 7.32542 4.16758 +96.1553 8.04749 4.57837 +97.0653 8.86738 5.04483 +96.0784 9.51475 5.41313 +96.7732 10.3279 5.87573 +96.765 11.0728 6.29956 +96.5511 11.7943 6.70999 +96.2312 12.5005 7.11177 +96.0033 13.2162 7.51898 +95.9656 13.9583 7.94113 +95.7233 14.6706 8.34637 +95.4741 15.3802 8.75012 +96.1995 16.2531 9.24669 +95.2487 16.8435 9.5826 +95.9563 17.7279 10.0858 +95.7746 18.4551 10.4994 +95.5857 19.1808 10.9123 +96.3619 20.108 11.4398 +96.1563 20.8382 11.8552 +95.9434 21.5667 12.2697 +95.7232 22.2936 12.6833 +96.363 23.2278 13.2148 +96.03 23.9339 13.6165 +95.7861 24.6614 14.0303 +96.3955 25.6157 14.5733 +96.1347 26.3458 14.9887 +95.8665 27.074 15.4029 +96.4445 28.0484 15.9573 +97.0102 29.0335 16.5177 +96.5265 29.7102 16.9027 +96.1306 30.4115 17.3017 +95.8216 31.1395 17.7158 +96.5322 32.2077 18.3236 +97.0426 33.2254 18.9026 +96.5198 33.895 19.2835 +96.453 34.7257 19.7561 +96.8371 35.7276 20.3261 +96.4747 36.4608 20.7432 +96.379 37.2972 21.2191 +96.0009 38.0268 21.6342 +95.6155 38.7535 22.0476 +96.1253 39.8514 22.6723 +96.6204 40.9601 23.303 +96.116 41.6525 23.6969 +96.3178 42.6563 24.268 +95.8859 43.3852 24.6827 +96.2413 44.4781 25.3045 +95.7911 45.2064 25.7188 +96.0332 46.2683 26.323 +96.3484 47.3802 26.9555 +95.869 48.1092 27.3703 +96.1578 49.2315 28.0088 +96.1742 50.2276 28.5755 +95.581 50.9098 28.9636 +95.6598 51.9552 29.5583 +96.0623 53.1925 30.2622 +95.3568 53.8245 30.6218 +95.5633 54.9774 31.2777 +95.588 56.0404 31.8825 +95.8459 57.2556 32.5738 +96.0046 58.4291 33.2415 +95.3329 59.1046 33.6257 +95.3831 60.2342 34.2684 +95.4982 61.4206 34.9434 +94.8779 62.1426 35.3542 +95.5197 63.7065 36.2439 +94.8765 64.4286 36.6547 +94.8521 65.5787 37.309 +95.5112 67.2255 38.2459 +95.6043 68.5002 38.9711 +95.5257 69.6697 39.6365 +95.4309 70.8432 40.3041 +95.3953 72.0776 41.0064 +95.2672 73.2592 41.6786 +95.1969 74.5024 42.3859 +95.1088 75.7501 43.0957 +95.6611 77.5356 44.1115 +95.3867 78.677 44.7609 +95.3125 80.0013 45.5143 +95.0763 81.2086 46.2012 +94.9644 82.5412 46.9593 +95.3237 84.3124 47.967 +95.1682 85.6574 48.7322 +94.8553 86.8804 49.428 +95.2752 88.8042 50.5225 +94.988 90.1002 51.2598 +94.5482 91.2692 51.9249 +94.9535 93.2848 53.0716 +94.4725 94.4608 53.7406 +94.4297 96.0993 54.6728 +94.8112 98.2105 55.8739 +90.832 95.7733 54.4873 +92.3213 99.0927 56.3758 +88.6461 96.8641 55.1079 +89.2093 99.2457 56.4628 +88.0269 99.7116 56.7279 +88.3464 101.903 57.9745 +88.5096 103.966 59.1484 +88.0502 105.337 59.9282 +87.9765 107.204 60.9904 +87.9866 109.22 62.1371 +88.0195 111.315 63.3294 +90.9248 117.167 66.6588 +87.8132 115.315 65.605 +93.5145 125.162 71.2072 +87.9022 119.929 68.2298 +91.5171 127.299 72.4226 +93.475 132.582 75.4287 +88.02 127.326 72.4384 +93.2348 137.575 78.269 +93.3 140.46 79.9103 +92.8218 142.6 81.1277 +92.7441 145.427 82.7363 +93.046 148.951 84.741 +92.9554 151.954 86.4494 +93.1347 155.505 88.4699 +92.7049 158.142 89.9702 +92.943 162.028 92.1811 +92.7155 165.227 94.0009 +92.689 168.905 96.0936 +92.3844 172.201 97.9687 +92.1863 175.821 100.028 +92.2885 180.166 102.5 +90.6755 181.258 103.121 +90.4152 185.14 105.33 +89.1652 187.103 106.447 +87.5081 188.256 107.102 +90.929 200.639 114.148 +91.2046 206.514 117.49 +86.2211 200.441 114.035 +86.7021 207.049 117.794 +81.9496 201.144 114.435 +81.9455 206.854 117.683 +77.4223 201.121 114.421 +77.2542 206.66 117.573 +72.44 199.694 113.61 +72.5959 206.387 117.418 +68.3057 200.43 114.028 +67.9446 205.953 117.171 +63.9501 200.431 114.029 +63.5401 206.113 117.262 +59.7407 200.781 114.228 +59.2225 206.455 117.456 +55.3032 200.219 113.909 +54.6631 205.798 117.082 +51.123 200.434 114.031 +50.3146 205.746 117.053 +46.8913 200.327 113.97 +46.0422 205.88 117.129 +42.6978 200.239 113.92 +41.7971 206.033 117.216 +38.5386 200.171 113.881 +37.4661 205.606 116.973 +34.41 200.123 113.854 +33.332 206.143 117.279 +30.2168 199.494 113.496 +29.1268 206.186 117.303 +26.2745 200.44 114.034 +24.93 206.164 117.291 +22.1404 199.857 113.702 +20.6646 205.299 116.799 +18.0456 199.295 113.383 +16.5114 205.234 116.761 +14.029 199.365 113.423 +12.3932 205.54 116.935 +10.0412 199.895 113.724 +8.25373 205.436 116.877 +6.00499 199.321 113.398 +4.12924 205.617 116.98 +2.00449 199.643 113.581 +1.86517e-14 205.127 116.701 +-2.0071 199.904 113.729 +-4.11877 205.095 116.683 +-6.0364 200.364 113.991 +-8.23977 205.088 116.679 +-10.0237 199.547 113.526 +-12.3618 205.019 116.639 +-14.0106 199.105 113.275 +-16.5253 205.407 116.86 +-18.0456 199.295 113.383 +-20.6733 205.385 116.847 +-22.1116 199.597 113.555 +-24.7837 204.954 116.602 +-26.2179 200.008 113.789 +-28.8708 204.374 116.272 +-30.256 199.753 113.643 +-33.1371 204.938 116.593 +-34.2622 199.263 113.365 +-37.2001 204.146 116.143 +-38.2085 198.456 112.905 +-41.4325 204.236 116.194 +-42.3333 198.53 112.947 +-45.6606 204.173 116.158 +-46.4926 198.623 113.001 +-50.0028 204.47 116.327 +-50.5603 198.228 112.776 +-54.1007 203.68 115.878 +-54.7663 198.276 112.803 +-58.6903 204.6 116.401 +-59.0146 198.34 112.84 +-63.0224 204.434 116.307 +-63.4424 198.839 113.123 +-67.5587 204.783 116.505 +-67.5957 198.346 112.843 +-72.0112 204.725 116.472 +-72.019 198.534 112.95 +-76.1109 203.601 115.833 +-76.3752 198.401 112.874 +-80.7409 203.813 115.953 +-80.848 198.441 112.897 +-85.4024 203.945 116.029 +-85.1704 197.999 112.645 +-90.0937 203.999 116.059 +-89.7928 198.132 112.721 +-94.9628 204.293 116.226 +-94.2932 197.864 112.569 +-99.9099 204.582 116.391 +-99.2486 198.396 112.871 +-104.491 203.988 116.053 +-103.881 198.125 112.717 +-109.247 203.633 115.851 +-108.919 198.481 112.92 +-114.152 203.428 115.734 +-113.736 198.277 112.804 +-119.445 203.757 115.921 +-118.439 197.754 112.506 +-124.457 203.448 115.746 +-123.298 197.379 112.293 +-129.687 203.354 115.692 +-128.916 198.051 112.675 +-138.15 207.98 118.324 +-136.782 201.832 114.826 +-143.129 207.045 117.792 +-142.015 201.431 114.598 +-142.76 198.577 112.974 +-142.868 194.921 110.894 +-146.835 196.527 111.808 +-143.724 188.737 107.376 +-1832.2 2360.99 1343.21 +-142.734 180.512 102.697 +-143.05 177.571 101.024 +-149.705 182.423 103.784 +-142.949 171.014 97.2932 +-517.198 607.518 345.629 +-142.45 164.307 93.4777 +-521.587 590.821 336.13 +-150.406 167.327 95.1956 +-525.402 574.112 326.624 +-517.238 555.177 315.851 +-529.408 558.208 317.576 +-520.851 539.523 306.945 +-534.431 543.88 309.424 +-525.372 525.308 298.858 +-537.981 528.529 300.691 +-529.148 510.799 290.604 +-558.578 529.836 301.434 +-533.596 497.355 282.955 +-566.172 518.571 295.025 +-537.943 484.183 275.461 +-570.61 504.696 287.131 +-561.584 488.118 277.7 +-574.381 490.602 279.113 +-564.898 474.151 269.754 +-579.211 477.746 271.799 +-570.09 462.072 262.882 +-583.85 465.012 264.554 +-574.154 449.34 255.639 +-597.442 459.425 261.376 +-579.315 437.712 249.023 +-589.01 437.252 248.761 +-582.5 424.835 241.697 +-576.635 413.157 235.053 +-597.392 420.474 239.216 +-580.617 401.426 228.379 +-587.935 399.254 227.143 +-584.701 389.964 221.858 +-575.896 377.198 214.595 +-588.504 378.502 215.337 +-580.308 366.462 208.488 +-593.165 367.75 209.22 +-584.793 355.909 202.483 +-597.079 356.678 202.921 +-588.782 345.186 196.383 +-601.315 345.936 196.81 +-593.359 334.923 190.544 +-604.965 334.987 190.581 +-596.941 324.213 184.451 +-609.126 324.442 184.581 +-385.554 201.358 114.556 +-614.342 314.535 178.945 +-382.783 192.089 109.283 +-382.26 187.98 106.945 +-378.798 182.503 103.829 +-381.407 179.996 102.403 +-378.343 174.852 99.4769 +-380.616 172.216 97.9771 +-381.529 168.968 96.1292 +-381.6 165.37 94.082 +-383.156 162.431 92.4101 +-381.523 158.171 89.9866 +-381.737 154.72 88.0234 +-384.004 152.108 86.537 +-381.771 147.739 84.0516 +-381.497 144.18 82.0267 +-385.784 142.333 80.9759 +-382.763 137.805 78.4001 +-381.536 133.985 76.2268 +-381.471 130.608 74.3057 +-382.208 127.523 72.5502 +-382.256 124.223 70.6731 +-381.327 120.635 68.6318 +-378.094 116.375 66.2078 +-380.382 113.842 64.7669 +-376.959 109.629 62.3701 +-376.713 106.389 60.5271 +-378.053 103.606 58.9437 +-376.115 99.9471 56.8619 +-377.391 97.164 55.2785 +-377.776 94.154 53.5661 +-378.418 91.2162 51.8947 +-381.734 88.9042 50.5793 +-381.837 85.8315 48.8312 +-382.297 82.8479 47.1338 +-381.655 79.6407 45.3092 +-381.271 76.5082 43.527 +-380.755 73.3688 41.7409 +-380.597 70.3153 40.0038 +-380.799 67.3393 38.3106 +-381.068 64.3821 36.6282 +-381.7 61.4892 34.9824 +-380.825 58.3653 33.2052 +-380.213 55.3024 31.4626 +-380.655 52.4027 29.813 +-380.969 49.4879 28.1546 +-380.362 46.4633 26.4339 +-380.417 43.5311 24.7657 +-380.244 40.5804 23.087 +-380.24 37.6554 21.4229 +-381.001 34.8063 19.802 +-380.44 31.84 18.1144 +-380.746 28.9532 16.472 +-380.623 26.0369 14.8129 +-380.87 23.1489 13.1699 +-381.088 20.2591 11.5258 +-380.977 17.3542 9.87317 +-379.738 14.4108 8.19856 +-380.968 11.5633 6.5786 +-380.27 8.65505 4.92403 +-146.778 2.22685 1.2669 +-145.694 1.10513 0.62873 +95.5 1.77636e-15 -2.27374e-13 +96.3963 0.73491 0.409375 +96.5853 1.47281 0.820417 +96.367 2.20451 1.228 +96.5412 2.94518 1.64059 +96.5081 3.68105 2.0505 +96.2679 4.40751 2.45516 +96.4198 5.15191 2.86982 +96.3647 5.88678 3.27918 +96.4019 6.62804 3.69209 +96.332 7.36271 4.10133 +96.2548 8.09682 4.51026 +96.0708 8.82115 4.91374 +96.0784 9.56319 5.32709 +96.8725 10.391 5.78822 +96.6659 11.1178 6.19305 +96.5511 11.8543 6.60333 +96.2312 12.5641 6.99872 +96.1021 13.2972 7.40711 +95.867 14.0149 7.80688 +95.7233 14.7452 8.2137 +95.5724 15.4744 8.6199 +96.0031 16.3024 9.08113 +96.0326 17.0686 9.50791 +95.9563 17.8182 9.92544 +95.7746 18.549 10.3326 +95.5857 19.2785 10.7389 +96.3619 20.2103 11.258 +96.2533 20.9654 11.6786 +95.9434 21.6765 12.0747 +95.7232 22.4071 12.4817 +96.363 23.3461 13.0047 +96.1262 24.0798 13.4134 +95.7861 24.7869 13.8073 +96.3955 25.7461 14.3416 +96.1347 26.48 14.7504 +95.6763 27.1579 15.128 +95.591 27.9417 15.5647 +95.9701 28.8685 16.0809 +96.5265 29.8614 16.634 +96.2245 30.5962 17.0433 +96.4772 31.5122 17.5536 +96.1588 32.2465 17.9626 +95.833 32.9783 18.3702 +96.7053 34.1331 19.0135 +96.3606 34.869 19.4235 +96.0087 35.6023 19.832 +96.5664 36.6812 20.4329 +96.379 37.487 20.8818 +96.0009 38.2203 21.2903 +96.5218 39.3199 21.9028 +96.1253 40.0543 22.3119 +96.3507 41.0537 22.8686 +96.116 41.8646 23.3203 +96.3178 42.8734 23.8823 +95.8859 43.606 24.2903 +96.2413 44.7045 24.9022 +95.7911 45.4365 25.31 +96.0332 46.5039 25.9046 +96.1743 47.5353 26.4791 +95.6958 48.2667 26.8865 +96.1578 49.4822 27.5636 +96.0885 50.4383 28.0962 +95.581 51.1689 28.5032 +95.8294 52.3123 29.1401 +95.8936 53.3695 29.729 +96.1116 54.5266 30.3736 +95.5633 55.2573 30.7806 +95.6709 56.3746 31.4029 +95.8459 57.547 32.0561 +96.0046 58.7266 32.7131 +95.9842 59.8113 33.3174 +95.3831 60.5408 33.7237 +95.4982 61.7333 34.388 +95.4369 62.827 34.9972 +94.8057 63.5522 35.4012 +95.5069 65.1869 36.3118 +95.5565 66.4019 36.9886 +95.589 67.6227 37.6686 +95.5271 68.7934 38.3207 +95.0661 69.6874 38.8188 +94.8226 70.75 39.4107 +95.3953 72.4445 40.3546 +95.3421 73.69 41.0483 +95.1969 74.8816 41.7121 +95.1825 76.1948 42.4436 +95.0028 77.3941 43.1117 +95.4593 79.1378 44.083 +95.3125 80.4086 44.7909 +95.1476 81.6833 45.5009 +94.9644 82.9615 46.2129 +95.3237 84.7416 47.2045 +94.9598 85.905 47.8526 +94.9241 87.3859 48.6775 +94.5932 88.6177 49.3637 +94.8529 90.4304 50.3735 +95.2842 92.4485 51.4976 +94.9535 93.7597 52.228 +94.9317 95.403 53.1434 +94.6246 96.7877 53.9147 +92.6257 96.4347 53.7181 +90.1323 95.5192 53.2081 +89.1747 96.2032 53.5891 +88.6461 97.3573 54.232 +88.4706 98.9245 55.105 +88.2095 100.427 55.942 +88.2261 102.282 56.9751 +88.0933 104.004 57.9343 +88.3441 106.226 59.1723 +88.4991 108.389 60.3772 +88.1587 109.99 61.2692 +87.8496 111.666 62.2026 +87.7933 113.708 63.3398 +87.9788 116.121 64.6839 +87.9047 118.252 65.8713 +87.7948 120.392 67.0631 +88.2845 123.427 68.7541 +92.5867 131.991 73.5246 +93.0159 135.238 75.3329 +93.3871 138.501 77.151 +92.8 140.418 78.2187 +92.8218 143.326 79.8382 +93.1804 146.855 81.8042 +93.1891 149.94 83.5225 +93.0493 152.881 85.161 +93.1347 156.297 87.0637 +92.7957 159.103 88.6268 +92.5414 162.149 90.3237 +92.3648 165.44 92.1568 +92.2155 168.898 94.0829 +92.5111 173.316 96.5439 +92.3937 177.114 98.6597 +91.1904 178.929 99.671 +90.0774 180.98 100.813 +88.2662 181.659 101.192 +92.1502 194.351 108.262 +91.7412 198.367 110.499 +90.2326 200.116 111.473 +88.0868 200.47 111.67 +85.6607 200.152 111.493 +83.8633 201.29 112.127 +81.3154 200.603 111.744 +79.1456 200.804 111.856 +76.5973 199.99 111.403 +74.5658 200.484 111.678 +72.0792 199.712 111.248 +70.2569 200.755 111.829 +67.7093 199.691 111.236 +65.7946 200.451 111.66 +63.3355 199.514 111.138 +61.5731 200.749 111.826 +59.0396 199.435 111.093 +57.1903 200.386 111.623 +54.8363 199.54 111.152 +53.1334 201.057 111.997 +50.6685 199.663 111.221 +48.7137 200.213 111.527 +46.5325 199.806 111.3 +44.5539 200.239 111.541 +42.388 199.798 111.296 +40.3732 200.028 111.424 +38.3075 199.983 111.399 +36.4336 200.958 111.942 +34.1883 199.845 111.322 +32.2882 200.704 111.8 +30.008 199.124 110.92 +28.1396 200.212 111.526 +26.0254 199.551 111.158 +24.1356 200.61 111.748 +22.0062 199.656 111.217 +20.0284 199.991 111.403 +17.8887 198.568 110.611 +15.9533 199.307 111.022 +13.9435 199.159 110.94 +11.9797 199.694 111.238 +9.93213 198.73 110.701 +7.98849 199.847 111.323 +5.95787 198.765 110.72 +3.9966 200.025 111.422 +1.98965 199.174 110.948 +1.86517e-14 199.706 111.245 +-1.98616 198.825 110.754 +-4.00009 200.2 111.52 +-5.96311 198.939 110.817 +-7.99547 200.021 111.42 +-9.94958 199.08 110.896 +-11.9902 199.869 111.335 +-13.9313 198.985 110.843 +-15.9882 199.743 111.265 +-17.8965 198.655 110.659 +-19.9674 199.381 111.064 +-21.8528 198.265 110.442 +-24.0206 199.655 111.216 +-25.9349 198.856 110.771 +-28.0299 199.432 111.092 +-29.9036 198.431 110.534 +-32.1212 199.666 111.222 +-33.9962 198.723 110.697 +-36.1207 199.232 110.98 +-37.9114 197.915 110.247 +-40.0433 198.393 110.513 +-41.9142 197.565 110.052 +-44.2104 198.696 110.682 +-46.0341 197.666 110.108 +-48.3395 198.675 110.67 +-50.1707 197.701 110.128 +-52.3461 198.078 110.337 +-54.3694 197.841 110.206 +-56.5855 198.267 110.443 +-58.5889 197.913 110.246 +-60.9519 198.724 110.698 +-63.0148 198.504 110.575 +-65.1882 198.604 110.63 +-67.2548 198.351 110.49 +-69.6429 199 110.851 +-71.5078 198.129 110.366 +-73.8551 198.573 110.613 +-75.6772 197.588 110.064 +-78.2991 198.655 110.659 +-80.147 197.721 110.139 +-82.7347 198.581 110.618 +-84.7152 197.942 110.262 +-87.2984 198.675 110.67 +-89.2797 198.003 110.296 +-91.8535 198.61 110.634 +-93.7192 197.66 110.105 +-96.3543 198.305 110.464 +-98.3714 197.644 110.096 +-101.074 198.322 110.474 +-102.968 197.385 109.952 +-105.781 198.177 110.392 +-107.8 197.441 109.983 +-110.864 198.575 110.614 +-112.754 197.566 110.052 +-115.631 198.255 110.436 +-117.515 197.211 109.855 +-120.419 197.851 110.211 +-122.344 196.849 109.653 +-125.614 197.971 110.278 +-127.538 196.93 109.698 +-130.75 197.842 110.206 +-134.345 199.246 110.988 +-138.957 202.034 112.541 +-141.597 201.86 112.444 +-143.343 200.403 111.632 +-143.405 196.65 109.542 +-143.295 192.765 107.378 +-142.841 188.533 105.021 +-142.986 185.191 103.159 +-148.568 188.846 105.195 +-148.327 185.059 103.085 +-515.664 631.56 351.805 +-516.487 621.032 345.94 +-520.708 614.753 342.443 +-520.51 603.434 336.138 +-524.509 597.156 332.64 +-524.79 586.801 326.872 +-528.141 580.044 323.108 +-529.447 571.175 318.168 +-532.906 564.757 314.593 +-533.642 555.587 309.485 +-537.223 549.505 306.097 +-537.968 540.641 301.159 +-549.047 542.147 301.998 +-552.501 536.058 298.606 +-566.55 540.134 300.877 +-565.445 529.724 295.078 +-569.82 524.57 292.207 +-569.898 515.555 287.185 +-574.115 510.381 284.303 +-574.383 501.784 279.514 +-578.161 496.345 276.485 +-578.637 488.156 271.923 +-582.693 483.065 269.087 +-582.596 474.613 264.379 +-591.518 473.517 263.768 +-590.206 464.255 258.609 +-591.525 457.19 254.674 +-590.56 448.48 249.821 +-576.084 429.833 239.435 +-576.065 422.28 235.227 +-580.03 417.706 232.679 +-580.062 410.354 228.584 +-584.139 405.917 226.112 +-584.31 398.812 222.155 +-587.795 394.023 219.487 +-587.876 387.004 215.577 +-592.443 382.975 213.333 +-592.848 376.287 209.607 +-596.014 371.399 206.884 +-596.588 364.937 203.285 +-600.211 360.375 200.743 +-600.638 353.928 197.153 +-604.15 349.336 194.594 +-604.765 343.099 191.12 +-608.76 338.804 188.728 +-609.492 332.715 185.336 +-612.451 327.874 182.639 +-613.475 322.022 179.38 +-616.323 317.156 176.669 +-381.831 192.586 107.279 +-381.912 188.764 105.149 +-381.247 184.618 102.84 +-381.319 180.87 100.752 +-377.195 175.209 97.5984 +-378.754 172.246 95.9482 +-381.529 169.828 94.6012 +-382.405 166.562 92.7817 +-382.077 162.798 90.6853 +-382.064 159.202 88.6818 +-133.771 54.4942 30.3555 +-136.858 54.4867 30.3513 +-382.319 148.704 82.8344 +-382.231 145.192 80.8781 +-381.365 141.419 78.7763 +-383.78 138.874 77.3588 +-633.359 223.55 124.527 +-382.402 131.593 73.3027 +-382.488 128.265 71.4491 +-382.912 125.07 69.669 +-381.609 121.339 67.5906 +-379.036 117.259 65.318 +-376.695 113.312 63.1194 +-376.959 110.187 61.3787 +-378.33 107.39 59.8205 +-378.816 104.343 58.1236 +-380.896 101.733 56.6695 +-378.542 97.9565 54.5658 +-375.757 94.1284 52.4334 +-377.069 91.353 50.8873 +-376.711 88.1809 49.1204 +-380.676 86.006 47.9088 +-380.55 82.8893 46.1727 +-380.197 79.7402 44.4186 +-380.979 76.8388 42.8024 +-381.048 73.7991 41.1091 +-382.456 71.0185 39.5602 +-380.799 67.6821 37.7017 +-380.577 64.6264 35.9995 +-380.815 61.6589 34.3465 +-380.431 58.6017 32.6436 +-381.693 55.8002 31.083 +-380.161 52.6012 29.301 +-380.87 49.7269 27.6999 +-381.154 46.7971 26.0679 +-380.814 43.7983 24.3975 +-380.84 40.8509 22.7556 +-381.83 38.0053 21.1705 +-380.604 34.9469 19.4668 +-380.042 31.9686 17.8078 +-380.048 29.0473 16.1805 +-380.125 26.1352 14.5584 +-381.269 23.2911 12.9741 +-380.19 20.3143 11.3159 +-380.078 17.4014 9.69332 +-379.638 14.4804 8.06616 +-380.468 11.6069 6.46552 +-380.57 8.70597 4.84958 +-145.678 2.22142 1.23742 +-146.594 1.11761 0.622556 +96.4 3.55271e-15 -1.7053e-13 +96.5963 0.740106 0.403564 +96.5853 1.48015 0.807096 +96.5669 2.22009 1.21057 +96.5412 2.95986 1.61395 +96.608 3.70323 2.01929 +96.4676 4.43866 2.42031 +96.5196 5.18294 2.82615 +96.3647 5.91612 3.22593 +96.4019 6.66108 3.63214 +96.332 7.39942 4.03474 +97.1507 8.21292 4.47833 +97.0653 8.95695 4.88404 +96.9726 9.70023 5.28933 +96.8725 10.4428 5.69424 +96.765 11.1847 6.09877 +96.5511 11.9134 6.49612 +96.429 12.6526 6.89922 +96.1021 13.3635 7.28685 +95.9656 14.0993 7.68802 +95.7233 14.8187 8.08035 +95.5724 15.5516 8.47995 +96.2976 16.434 8.96112 +96.0326 17.1537 9.35354 +95.9563 17.907 9.76429 +95.7746 18.6415 10.1648 +95.5857 19.3746 10.5645 +96.3619 20.3111 11.0752 +96.1563 21.0487 11.4774 +96.0402 21.8065 11.8906 +95.7232 22.5188 12.279 +96.363 23.4624 12.7936 +96.1262 24.1998 13.1957 +95.7861 24.9105 13.5831 +96.3955 25.8745 14.1088 +96.1347 26.6119 14.5109 +95.8665 27.3475 14.912 +96.4445 28.3317 15.4487 +96.1592 29.0695 15.851 +96.5265 30.0103 16.364 +96.2245 30.7487 16.7666 +96.8519 31.7922 17.3356 +96.1588 32.4072 17.671 +97.0426 33.561 18.3001 +96.7053 34.3032 18.7048 +96.453 35.0765 19.1264 +96.8371 36.0885 19.6783 +96.5664 36.8641 20.1012 +96.379 37.6739 20.5428 +96.0009 38.4109 20.9446 +96.5218 39.5159 21.5472 +96.1253 40.254 21.9496 +96.5305 41.3353 22.5393 +96.116 42.0733 22.9417 +96.3178 43.0871 23.4945 +95.8859 43.8234 23.896 +96.2413 44.9273 24.4979 +96.4941 45.9981 25.0818 +95.8583 46.6505 25.4375 +96.1743 47.7723 26.0492 +95.869 48.5951 26.4979 +96.1578 49.7288 27.1161 +96.1742 50.735 27.6647 +95.581 51.424 28.0404 +95.8294 52.5731 28.667 +95.8936 53.6355 29.2463 +96.1116 54.7984 29.8804 +95.4799 55.4843 30.2544 +95.6709 56.6556 30.8931 +95.8459 57.8339 31.5356 +95.2674 58.566 31.9348 +95.3329 59.7016 32.554 +95.3831 60.8426 33.1762 +95.4982 62.041 33.8296 +95.5967 63.2459 34.4866 +94.9644 63.9758 34.8847 +95.4281 65.4577 35.6927 +95.0086 66.3504 36.1794 +95.589 67.9598 37.057 +95.5271 69.1363 37.6986 +95.5257 70.3734 38.3731 +95.3549 71.5018 38.9884 +95.3953 72.8057 39.6994 +95.2672 73.9992 40.3502 +95.2712 75.3136 41.0669 +95.1088 76.5152 41.7221 +95.076 77.8398 42.4444 +94.879 79.0487 43.1036 +95.3125 80.8094 44.0637 +95.1476 82.0904 44.7622 +94.9644 83.375 45.4626 +95.1835 85.0387 46.3698 +95.0987 86.4594 47.1445 +94.8553 87.7579 47.8525 +94.5932 89.0594 48.5622 +94.988 91.0103 49.626 +94.5482 92.1911 50.2699 +94.9535 94.2271 51.38 +94.6037 95.5476 52.1001 +93.3906 96.0015 52.3476 +91.8543 96.1086 52.406 +89.369 95.1823 51.9009 +88.9859 96.4773 52.607 +88.2103 97.3623 53.0896 +88.6553 99.6257 54.3238 +88.3313 101.067 55.1099 +88.2261 102.792 56.0501 +88.2122 104.663 57.0707 +88.2266 106.613 58.134 +88.2088 108.572 59.2021 +88.5028 110.97 60.5095 +88.1895 112.656 61.4291 +87.6814 114.129 62.232 +87.8132 116.48 63.514 +87.7958 118.695 64.7219 +87.9559 121.214 66.0953 +88.0726 123.745 67.4755 +93.475 133.921 73.0245 +93.0159 135.912 74.1098 +93.2856 139.04 75.8155 +93.45 142.107 77.4878 +93.265 144.727 78.9168 +92.8895 147.126 80.2247 +93.1891 150.687 82.1664 +92.5328 152.791 83.3135 +92.7653 156.453 85.3103 +92.7957 159.896 87.1879 +92.5414 162.957 88.8572 +92.3648 166.265 90.6606 +92.5599 170.373 92.9011 +92.3844 173.941 94.8461 +92.1448 177.517 96.7965 +90.4582 178.378 97.2657 +89.3597 180.432 98.3859 +87.4847 180.949 98.6674 +92.1119 195.239 106.46 +91.9285 199.763 108.927 +89.4263 199.316 108.683 +87.5851 200.322 109.231 +85.0654 199.752 108.92 +83.0425 200.313 109.226 +80.2472 198.955 108.486 +78.5922 200.393 109.27 +76.0579 199.572 108.822 +74.0714 200.147 109.136 +71.6281 199.451 108.756 +69.7599 200.328 109.234 +67.2832 199.423 108.741 +65.3261 200.016 109.065 +63.1217 199.833 108.964 +61.1331 200.308 109.224 +58.7642 199.494 108.78 +56.6339 199.425 108.742 +54.4628 199.169 108.603 +52.706 200.434 109.292 +50.3006 199.201 108.62 +48.3187 199.58 108.827 +46.1337 199.082 108.555 +44.1723 199.514 108.791 +42.0782 199.327 108.689 +40.2864 200.592 109.379 +37.9609 199.162 108.599 +36.152 200.399 109.273 +33.9223 199.279 108.662 +32.0376 200.14 109.132 +29.7861 198.637 108.312 +27.9203 199.641 108.86 +25.7651 198.539 108.259 +23.9684 200.214 109.172 +21.7857 198.642 108.315 +19.7931 198.626 108.307 +17.7396 197.895 107.908 +15.8696 199.25 108.647 +13.8458 198.75 108.374 +11.8803 199.024 108.524 +9.85362 198.142 108.043 +7.9187 199.088 108.559 +5.92646 198.702 108.348 +3.9617 199.266 108.656 +1.97394 198.587 108.285 +1.86517e-14 199.648 108.864 +-1.97481 198.675 108.333 +-3.95995 199.178 108.608 +-5.92384 198.614 108.3 +-7.91521 199 108.511 +-9.85798 198.23 108.091 +-11.8907 199.2 108.619 +-13.8153 198.312 108.135 +-15.8487 198.987 108.503 +-17.8024 198.596 108.29 +-19.8018 198.713 108.354 +-21.7666 198.466 108.22 +-23.8116 198.904 108.458 +-25.6971 198.016 107.974 +-27.7862 198.683 108.338 +-29.773 198.55 108.265 +-31.7454 198.314 108.136 +-33.7005 197.977 107.952 +-35.8391 198.664 108.327 +-37.6143 197.343 107.607 +-39.7481 197.912 107.917 +-41.6955 197.514 107.7 +-43.8479 198.049 107.992 +-45.8148 197.705 107.804 +-48.0276 198.377 108.171 +-49.7811 197.144 107.499 +-51.9862 197.696 107.8 +-53.9259 197.205 107.532 +-56.3678 198.488 108.232 +-58.3135 197.964 107.946 +-60.5378 198.358 108.16 +-62.5338 197.971 107.95 +-64.7197 198.159 108.052 +-66.7152 197.74 107.824 +-69.029 198.229 108.09 +-70.9064 197.441 107.66 +-73.4842 198.56 108.271 +-75.4233 197.907 107.915 +-77.648 197.985 107.957 +-79.9134 198.128 108.035 +-82.1532 198.168 108.057 +-84.1198 197.531 107.71 +-86.7609 198.437 108.203 +-88.6933 197.682 107.792 +-91.1043 197.972 107.95 +-93.0303 197.186 107.521 +-95.7291 198.001 107.966 +-97.7334 197.34 107.605 +-100.586 198.349 108.155 +-102.305 197.091 107.469 +-105.105 197.891 107.906 +-106.982 196.919 107.376 +-109.68 197.434 107.657 +-112.04 197.294 107.58 +-114.86 197.914 107.918 +-117.146 197.572 107.732 +-119.574 197.442 107.661 +-121.532 196.518 107.157 +-124.645 197.423 107.65 +-126.651 196.536 107.167 +-129.5 196.927 107.38 +-132.163 196.986 107.412 +-137.876 201.46 109.852 +-140.448 201.22 109.721 +-143.449 201.551 109.901 +-143.19 197.334 107.602 +-143.458 193.947 105.755 +-143.614 190.497 103.874 +-146.341 190.481 103.865 +-149.531 191.017 104.158 +-1879.32 2356.4 1284.9 +-519.032 638.853 348.353 +-519.837 628.176 342.531 +-523.622 621.276 338.768 +-523.88 610.369 332.821 +-527.857 603.964 329.329 +-528.299 593.67 323.716 +-532.25 587.47 320.335 +-532.783 577.638 314.974 +-535.896 570.757 311.222 +-536.985 561.854 306.367 +-541.38 556.516 303.457 +-544.857 550.293 300.063 +-565.414 561.09 305.951 +-570.233 556.019 303.186 +-570.333 546.451 297.968 +-571.787 538.336 293.543 +-573.468 530.559 289.303 +-573.579 521.472 284.348 +-577.339 515.805 281.258 +-577.636 507.142 276.534 +-581.228 501.466 273.439 +-582.809 494.127 269.437 +-586.03 488.253 266.234 +-592.835 485.361 264.657 +-591.96 476.233 259.68 +-593.475 469.154 255.82 +-576.846 448.067 244.321 +-575.919 439.541 239.673 +-578.745 433.971 236.635 +-579.053 426.586 232.608 +-583.271 422.134 230.181 +-583.481 414.831 226.199 +-586.643 409.689 223.395 +-588.171 403.449 219.992 +-590.969 398.125 217.089 +-591.949 391.627 213.546 +-594.854 386.451 210.724 +-595.517 379.866 207.133 +-599.026 375.136 204.554 +-599.701 368.669 201.027 +-602.601 363.613 198.27 +-603.788 357.558 194.969 +-607.569 353.064 192.518 +-607.868 346.578 188.982 +-611.037 341.767 186.358 +-611.867 335.677 183.037 +-615.691 331.251 180.624 +-615.703 324.803 177.108 +-619.684 320.475 174.748 +-384.082 194.688 106.159 +-381.39 189.446 103.301 +-380.984 185.41 101.1 +-380.616 181.437 98.9336 +-378.343 176.618 96.3063 +-377.955 172.74 94.1912 +-380.46 170.196 92.8043 +-382.674 167.51 91.3394 +-381.538 163.379 89.087 +-381.703 159.844 87.1596 +-2969.52 1215.72 662.907 +-135.675 54.285 29.6005 +-381.405 149.089 81.2951 +-381.405 145.601 79.3931 +-381.641 142.227 77.5533 +-381.747 138.827 75.6997 +-653.479 231.802 126.397 +-630.73 218.13 118.942 +-381.461 128.559 70.1004 +-381.788 125.324 68.3368 +-381.703 121.974 66.5099 +-380.073 118.166 64.4332 +-377.546 114.134 62.2348 +-377.148 110.792 60.4123 +-377.284 107.627 58.6865 +-657.206 181.927 99.2012 +-659.276 176.963 96.4939 +-375.761 97.7223 53.2859 +-377.487 95.0331 51.8195 +-376.49 91.6678 49.9845 +-376.808 88.6433 48.3353 +-381.547 86.6326 47.2389 +-380.938 83.3874 45.4694 +-381.169 80.3427 43.8092 +-381.563 77.3402 42.172 +-380.267 74.0149 40.3587 +-381.478 71.1899 38.8184 +-382.269 68.282 37.2327 +-381.068 65.0324 35.4608 +-381.208 62.0303 33.8238 +-381.121 59.0005 32.1717 +-381.002 55.9769 30.523 +-381.544 53.0557 28.9301 +-379.485 49.7931 27.1511 +-379.966 46.8837 25.5647 +-381.012 44.0395 24.0138 +-381.237 41.0973 22.4095 +-379.743 37.9861 20.713 +-381.001 35.1578 19.1708 +-380.64 32.1785 17.5462 +-381.642 29.3146 15.9846 +-380.623 26.2999 14.3408 +-381.169 23.4011 12.7601 +-381.687 20.496 11.176 +-381.277 17.5433 9.566 +-380.837 14.5985 7.96023 +-380.368 11.6617 6.35887 +-379.67 8.72868 4.75957 +-145.978 2.23709 1.21984 +-146.294 1.12088 0.611194 +96.4 3.55271e-15 -1.7053e-13 +96.5963 0.743716 0.396871 +96.5853 1.48737 0.79371 +96.5669 2.23092 1.19049 +96.5412 2.9743 1.58718 +96.5081 3.71745 1.98375 +96.4676 4.46031 2.38017 +96.5196 5.20823 2.77928 +96.3647 5.94498 3.17243 +96.3022 6.68666 3.56821 +96.2324 7.42782 3.96372 +96.2548 8.17688 4.36344 +97.0653 9.00065 4.80303 +96.0784 9.65774 5.15368 +96.8725 10.4938 5.5998 +96.765 11.2393 5.99762 +96.6502 11.9838 6.39493 +96.429 12.7144 6.78479 +96.2996 13.4563 7.18073 +95.9656 14.168 7.56052 +95.7233 14.891 7.94633 +95.5724 15.6274 8.3393 +96.2976 16.5142 8.8125 +96.1306 17.2549 9.20777 +95.9563 17.9943 9.60235 +95.7746 18.7324 9.99621 +95.6831 19.4889 10.3999 +95.3895 20.2043 10.7816 +96.1563 21.1513 11.287 +96.0402 21.9129 11.6934 +96.6892 22.857 12.1972 +96.363 23.5769 12.5814 +96.1262 24.3179 12.9768 +95.882 25.057 13.3712 +96.3955 26.0007 13.8748 +96.1347 26.7418 14.2703 +95.8665 27.4809 14.6647 +96.4445 28.4699 15.1925 +95.9701 29.1539 15.5575 +96.5265 30.1567 16.0926 +96.1306 30.8686 16.4724 +96.8519 31.9473 17.0481 +96.5322 32.6917 17.4453 +96.2052 33.4337 17.8413 +96.7053 34.4706 18.3946 +96.1759 35.1462 18.7551 +96.0087 35.9543 19.1864 +96.5664 37.0439 19.7678 +96.1963 37.786 20.1638 +96.0009 38.5982 20.5973 +96.5218 39.7087 21.1898 +95.9448 40.3744 21.5451 +96.3507 41.4596 22.1242 +96.116 42.2785 22.5612 +96.3178 43.2973 23.1048 +96.5955 44.3631 23.6736 +96.2413 45.1465 24.0916 +96.582 46.2646 24.6883 +96.0332 46.9637 25.0613 +96.3484 48.0922 25.6636 +95.869 48.8322 26.0584 +95.21 49.4789 26.4035 +96.1742 50.9825 27.2059 +95.581 51.6749 27.5753 +95.8294 52.8295 28.1915 +96.0623 53.9919 28.8118 +96.0278 55.0178 29.3592 +95.5633 55.8037 29.7786 +95.6709 56.932 30.3807 +95.8459 58.116 31.0126 +95.9227 59.2566 31.6212 +95.3329 59.9928 32.0141 +95.3831 61.1394 32.6259 +95.4982 62.3437 33.2686 +95.5967 63.5544 33.9147 +95.5197 64.664 34.5067 +95.5069 65.8314 35.1297 +95.4782 67.0036 35.7552 +94.8895 67.7916 36.1758 +95.5271 69.4736 37.0733 +95.4491 70.66 37.7064 +95.4309 71.9079 38.3723 +95.3953 73.1608 39.041 +94.7429 73.9509 39.4625 +95.1969 75.622 40.3543 +95.1088 76.8885 41.0301 +95.6611 78.7009 41.9973 +94.879 79.4344 42.3887 +95.2406 81.1424 43.3002 +95.1476 82.4909 44.0198 +94.9644 83.7817 44.7086 +95.3237 85.5795 45.6679 +95.0987 86.8812 46.3626 +94.8553 88.1861 47.0589 +94.5932 89.4939 47.7568 +94.8529 91.3246 48.7337 +95.0835 93.1658 49.7162 +94.4896 94.2245 50.2812 +94.7349 96.1469 51.307 +91.832 94.8597 50.6202 +90.6973 95.3608 50.8876 +88.9873 95.2382 50.8221 +88.7342 96.6745 51.5886 +88.7083 98.3896 52.5038 +88.2859 99.6944 53.2001 +88.2095 101.42 54.121 +88.2261 103.293 55.1205 +88.5691 105.599 56.3511 +88.9319 107.99 57.627 +88.1507 109.03 58.182 +88.2161 111.15 59.3134 +88.6426 113.788 60.721 +88.0729 115.197 61.4729 +88.0339 117.343 62.6179 +88.1226 119.718 63.8852 +87.8485 121.657 64.92 +88.3905 124.797 66.5956 +93.057 133.973 71.4923 +93.0674 136.651 72.9212 +93.2348 139.642 74.5176 +93.35 142.647 76.1211 +92.9203 144.896 77.3212 +92.8895 147.844 78.8941 +93.1891 151.422 80.8037 +93.0023 154.315 82.3474 +92.7191 157.138 83.8539 +92.8865 160.833 85.8256 +92.8091 164.226 87.6363 +92.4525 167.235 89.2417 +92.1724 170.488 90.978 +92.3844 174.789 93.2731 +91.7716 177.661 94.8055 +90.6209 179.57 95.8243 +88.921 180.422 96.2791 +87.7191 182.318 97.2908 +92.0354 196.028 104.607 +91.2167 199.183 106.291 +89.3163 200.043 106.749 +86.9759 199.899 106.672 +84.7852 200.065 106.761 +82.5295 200.047 106.751 +80.0469 199.427 106.42 +78.0712 200.035 106.745 +75.8358 199.96 106.705 +73.7315 200.2 106.833 +71.2372 199.331 106.369 +69.2921 199.955 106.702 +67.0844 199.804 106.622 +65.0504 200.144 106.803 +62.5338 198.937 106.159 +60.8484 200.348 106.912 +58.3636 199.1 106.246 +56.3678 199.457 106.436 +54.206 199.196 106.298 +52.2336 199.607 106.517 +50.1058 199.399 106.405 +48.1316 199.776 106.607 +45.9742 199.361 106.386 +44.0578 199.968 106.709 +41.8777 199.345 106.377 +39.9391 199.833 106.637 +37.8289 199.437 106.426 +35.8704 199.808 106.624 +33.7597 199.291 106.348 +31.7871 199.543 106.483 +29.7078 199.081 106.236 +27.7253 199.214 106.307 +25.7537 199.421 106.417 +23.7698 199.523 106.472 +21.7282 199.084 106.237 +19.7844 199.507 106.463 +17.7318 198.772 106.071 +15.6952 198.021 105.67 +13.7542 198.399 105.872 +11.7808 198.321 105.831 +9.81436 198.316 105.828 +7.85937 198.56 105.958 +5.91075 199.143 106.269 +3.94075 199.181 106.289 +1.9626 198.409 105.877 +1.95399e-14 198.593 105.976 +-1.96434 198.585 105.971 +-3.93552 198.916 106.148 +-5.90028 198.79 106.081 +-7.86635 198.737 106.052 +-9.78383 197.699 105.499 +-11.8018 198.673 106.018 +-13.7664 198.575 105.966 +-15.7371 198.549 105.952 +-17.6847 198.245 105.79 +-19.6972 198.628 105.994 +-21.6803 198.645 106.003 +-23.6548 198.558 105.957 +-25.5839 198.105 105.715 +-27.6643 198.777 106.073 +-29.4728 197.506 105.396 +-31.5784 198.233 105.783 +-33.5527 198.07 105.696 +-35.5106 197.803 105.554 +-37.4493 197.436 105.358 +-39.5744 198.009 105.664 +-41.3492 196.829 105.034 +-43.4854 197.369 105.323 +-45.4758 197.2 105.232 +-47.6326 197.705 105.502 +-49.5863 197.331 105.302 +-51.7837 197.887 105.599 +-53.7625 197.567 105.428 +-55.884 197.744 105.523 +-57.8879 197.478 105.38 +-60.1237 197.962 105.639 +-61.9993 197.236 105.251 +-64.1959 197.515 105.4 +-66.4028 197.774 105.539 +-68.6781 198.184 105.757 +-70.726 197.9 105.606 +-72.9589 198.103 105.714 +-75.106 198.035 105.678 +-77.3876 198.284 105.811 +-79.3459 197.681 105.489 +-81.7086 198.058 105.69 +-83.5945 197.256 105.262 +-86.1517 198.005 105.662 +-87.9969 197.087 105.172 +-90.5799 197.793 105.549 +-92.8007 197.659 105.477 +-95.3775 198.236 105.785 +-97.2948 197.413 105.346 +-99.9352 198.027 105.673 +-101.932 197.33 105.301 +-104.429 197.578 105.434 +-106.25 196.527 104.873 +-109.023 197.208 105.236 +-111.237 196.835 105.037 +-113.952 197.308 105.29 +-116.314 197.127 105.193 +-119.058 197.548 105.418 +-121.103 196.779 105.008 +-123.82 197.074 105.165 +-126.159 196.727 104.98 +-128.9 196.971 105.11 +-130.894 196.047 104.617 +-137.515 201.914 107.748 +-139.716 201.148 107.339 +-142.389 201.038 107.28 +-143.19 198.297 105.817 +-142.913 194.153 103.606 +-142.952 190.543 101.68 +-144.999 189.655 101.206 +-148.965 191.222 102.042 +-1879.32 2367.9 1263.59 +-521.123 644.556 343.955 +-522.482 634.452 338.564 +-525.526 626.576 334.361 +-526.648 616.588 329.031 +-530.414 609.85 325.435 +-531.008 599.625 319.979 +-534.491 592.821 316.348 +-535.048 582.924 311.067 +-538.313 576.128 307.44 +-540.006 567.771 302.981 +-547.16 565.202 301.61 +-559.487 567.826 303.01 +-569.124 567.528 302.851 +-570.701 559.191 298.402 +-576.278 554.841 296.081 +-575.675 544.641 290.638 +-577.185 536.603 286.349 +-576.428 526.618 281.02 +-579.512 520.272 277.634 +-580.393 512.048 273.245 +-583.082 505.519 269.761 +-584.607 498.07 265.786 +-595.968 498.955 266.258 +-597.223 491.339 262.194 +-588.79 475.993 254.005 +-581.214 461.702 246.379 +-577.07 450.429 240.363 +-578.409 443.596 236.717 +-580.95 437.75 233.597 +-581.734 430.652 229.81 +-584.583 425.147 226.872 +-585.346 418.187 223.158 +-588.756 413.171 220.481 +-590.456 406.992 217.184 +-592.873 401.356 214.177 +-594.185 395.025 210.798 +-597.346 389.963 208.097 +-598.187 383.43 204.611 +-601.224 378.349 201.899 +-601.995 371.884 198.449 +-605.65 367.236 195.969 +-606.192 360.734 192.499 +-608.903 355.565 189.741 +-610.049 349.518 186.514 +-612.977 344.524 183.849 +-614.411 338.717 180.75 +-616.97 333.559 177.998 +-618.961 328.114 175.092 +-621.321 322.889 172.304 +-622.845 317.255 169.297 +-381.738 190.544 101.681 +-381.859 186.743 99.6519 +-381.407 182.701 97.4952 +-381.257 178.847 95.4383 +-376.536 172.93 92.2811 +-379.925 170.786 91.1371 +-382.853 168.405 89.8664 +-382.796 164.717 87.898 +-382.335 160.89 85.8562 +-381.737 157.046 83.8045 +-135.675 54.5498 29.1095 +-382.776 150.355 80.234 +-381.13 146.205 78.0199 +-381.365 142.818 76.212 +-381.285 139.335 74.3538 +-384.596 137.089 73.1552 +-635.661 220.908 117.884 +-380.994 129.028 68.8535 +-382.631 126.214 67.3517 +-383.489 123.142 65.7124 +-381.298 119.125 63.5689 +-377.451 114.663 61.1876 +-376.959 111.276 59.3807 +-377.474 108.206 57.7423 +-659.4 183.425 97.8817 +-660.711 178.213 95.1002 +-377.2 98.5748 52.6027 +-376.622 95.2779 50.8433 +-376.683 92.1618 49.1805 +-377.967 89.3501 47.6801 +-381.741 87.0993 46.479 +-380.938 83.7942 44.7152 +-381.655 80.8376 43.1375 +-381.271 77.658 41.4408 +-381.732 74.6624 39.8422 +-381.869 71.6106 38.2137 +-381.681 68.5096 36.5589 +-380.871 65.3159 34.8547 +-381.503 62.3811 33.2886 +-381.81 59.3956 31.6954 +-381.397 56.3082 30.0479 +-379.766 53.0662 28.3178 +-380.87 50.2185 26.7982 +-380.362 47.1616 25.1669 +-381.31 44.289 23.634 +-380.542 41.2226 21.9977 +-380.24 38.2214 20.3961 +-380.106 35.2463 18.8086 +-380.739 32.3439 17.2598 +-381.642 29.4576 15.7195 +-380.623 26.4282 14.1029 +-380.87 23.4968 12.5386 +-380.788 20.5475 10.9648 +-380.977 17.6151 9.39995 +-380.837 14.6697 7.82821 +-380.368 11.7186 6.25341 +-380.27 8.78513 4.68802 +-146.178 2.25108 1.20125 +-146.094 1.12482 0.600238 +96.6 3.55271e-15 -1.7053e-13 +96.3963 0.74572 0.389338 +96.3853 1.49138 0.778645 +96.5669 2.24157 1.17032 +96.5412 2.9885 1.56028 +96.5081 3.73519 1.95013 +96.5675 4.48625 2.34226 +96.5196 5.23309 2.73218 +96.3647 5.97336 3.11867 +96.3022 6.71857 3.50774 +96.2324 7.46328 3.89655 +96.2548 8.21591 4.2895 +97.0653 9.04361 4.72164 +96.0784 9.70384 5.06634 +96.8725 10.5438 5.50491 +95.8727 11.1887 5.8416 +96.5511 12.0287 6.28012 +96.429 12.7751 6.66981 +96.2996 13.5206 7.05904 +95.9656 14.2357 7.43239 +95.8218 14.9775 7.81972 +95.4741 15.6859 8.18956 +95.4142 16.4407 8.58364 +96.0326 17.3196 9.04252 +95.9563 18.0802 9.43962 +95.7746 18.8218 9.82681 +95.5857 19.562 10.2133 +96.3619 20.5076 10.7069 +96.1563 21.2523 11.0958 +95.9434 21.9953 11.4837 +95.7232 22.7367 11.8707 +96.363 23.6894 12.3682 +96.1262 24.434 12.7569 +95.882 25.1766 13.1446 +96.3955 26.1248 13.6397 +96.1347 26.8694 14.0284 +95.8665 27.6121 14.4162 +96.4445 28.6058 14.935 +95.9701 29.2931 15.2938 +96.5265 30.3006 15.8198 +96.2245 31.0462 16.2091 +96.8519 32.0998 16.7592 +96.1588 32.7207 17.0834 +95.833 33.4633 17.4711 +96.798 34.6683 18.1002 +96.1759 35.314 18.4373 +96.653 36.3684 18.9878 +96.5664 37.2207 19.4328 +96.379 38.0384 19.8597 +96.0009 38.7825 20.2482 +96.5218 39.8983 20.8307 +96.1253 40.6434 21.2198 +96.5305 41.7353 21.7898 +96.116 42.4803 22.1788 +96.3178 43.504 22.7133 +95.8859 44.2474 23.1014 +96.2413 45.362 23.6834 +96.582 46.4854 24.2699 +96.0332 47.1879 24.6366 +96.1743 48.2345 25.1831 +96.4752 49.3755 25.7788 +96.1578 50.21 26.2144 +96.0885 51.1802 26.721 +95.581 51.9215 27.108 +95.8294 53.0817 27.7138 +96.0623 54.2496 28.3235 +96.1116 55.3286 28.8869 +95.4799 56.0211 29.2484 +95.6709 57.2037 29.8659 +95.8459 58.3934 30.487 +96.0046 59.5903 31.1119 +95.4143 60.3307 31.4984 +95.3831 61.4312 32.073 +95.4982 62.6412 32.7048 +95.4369 63.7511 33.2842 +95.5197 64.9726 33.922 +95.5069 66.1457 34.5344 +95.5565 67.3786 35.1781 +95.589 68.6173 35.8248 +95.5271 69.8052 36.4451 +95.4491 70.9973 37.0675 +94.7466 71.733 37.4515 +95.3198 73.4519 38.349 +95.2672 74.7151 39.0085 +95.1969 75.983 39.6705 +95.1825 77.3154 40.3661 +95.6611 79.0766 41.2856 +95.4593 80.3017 41.9252 +95.3125 81.5913 42.5985 +95.1476 82.8847 43.2738 +94.8937 84.119 43.9182 +95.3938 86.0512 44.927 +95.0987 87.296 45.5769 +94.9241 88.6712 46.2949 +94.5932 89.9211 46.9475 +94.38 91.3031 47.669 +94.5482 93.0831 48.5983 +94.6221 94.8072 49.4985 +94.5381 96.4055 50.333 +91.7021 95.1778 49.692 +90.1831 95.2726 49.7415 +88.6693 95.3506 49.7822 +88.6712 97.0668 50.6782 +88.7083 98.8592 51.614 +88.2859 100.17 52.2986 +88.3922 102.115 53.314 +88.0455 103.573 54.0753 +88.2717 105.747 55.2101 +88.5205 108.004 56.3884 +88.2668 109.695 57.2715 +88.1587 111.608 58.2703 +88.2461 113.82 59.425 +87.6814 115.233 60.1627 +88.0891 117.977 61.5951 +87.9047 119.991 62.6471 +88.2783 122.835 64.1318 +90.5102 128.4 67.0374 +93.5272 135.293 70.6362 +93.1704 137.455 71.765 +93.2348 140.309 73.2548 +93.45 143.482 74.9112 +92.8218 145.434 75.9303 +92.841 148.472 77.5169 +92.7597 151.444 79.0682 +92.9554 154.974 80.9112 +92.7191 157.888 82.4329 +92.7957 161.443 84.2888 +92.8091 165.01 86.1512 +92.3648 167.873 87.646 +92.6029 172.102 89.8537 +92.3844 175.624 91.6924 +91.4399 177.864 92.862 +90.4989 180.184 94.0736 +88.4824 180.39 94.181 +88.3443 184.494 96.3238 +91.9588 196.8 102.749 +91.4789 200.709 104.79 +88.7666 199.76 104.294 +86.725 200.273 104.562 +84.365 200.023 104.431 +82.1874 200.169 104.507 +79.9467 200.129 104.486 +77.8759 200.488 104.674 +75.5185 200.074 104.458 +73.3915 200.229 104.539 +70.9666 199.521 104.169 +68.9705 199.977 104.407 +66.772 199.824 104.327 +64.7748 200.247 104.548 +62.3734 199.373 104.092 +60.3566 199.678 104.251 +58.3135 199.88 104.356 +56.1017 199.463 104.139 +54.1593 199.975 104.406 +51.9862 199.609 104.215 +49.8677 199.398 104.105 +47.9029 199.776 104.302 +45.8148 199.618 104.22 +43.867 200.052 104.446 +41.7502 199.686 104.256 +39.8002 200.089 104.466 +37.6969 199.69 104.257 +35.714 199.886 104.36 +33.671 199.717 104.271 +31.6619 199.706 104.266 +29.5903 199.24 104.023 +27.6156 199.373 104.092 +25.6405 199.491 104.154 +23.7175 200.035 104.437 +21.7091 199.857 104.345 +19.6972 199.576 104.198 +17.6847 199.191 103.997 +15.7022 199.055 103.926 +13.7481 199.257 104.032 +11.7704 199.091 103.945 +9.77947 198.554 103.665 +7.82098 198.533 103.653 +5.87934 199.03 103.913 +3.92854 199.511 104.164 +1.95474 198.558 103.666 +1.68754e-14 198.92 103.856 +-1.95911 199.001 103.898 +-3.91807 198.979 103.886 +-5.87672 198.941 103.866 +-7.85239 199.331 104.07 +-9.79255 198.819 103.803 +-11.7913 199.444 104.129 +-13.7054 198.638 103.708 +-15.7022 199.055 103.926 +-17.6768 199.102 103.951 +-19.6449 199.046 103.921 +-21.5845 198.71 103.746 +-23.6339 199.329 104.069 +-25.5839 199.051 103.924 +-27.5425 198.845 103.816 +-29.4859 198.537 103.655 +-31.5645 199.092 103.945 +-33.3754 197.963 103.356 +-35.3542 197.873 103.309 +-37.3173 197.679 103.207 +-39.4008 198.081 103.417 +-41.3492 197.769 103.254 +-43.2946 197.441 103.083 +-45.2964 197.359 103.041 +-47.4247 197.781 103.261 +-49.3915 197.494 103.111 +-51.5813 198.054 103.404 +-53.529 197.648 103.191 +-55.6662 197.914 103.33 +-57.8879 198.421 103.595 +-59.9425 198.307 103.535 +-61.9459 198.007 103.379 +-64.1959 198.458 103.614 +-66.1472 197.953 103.351 +-68.415 198.366 103.566 +-70.6358 198.591 103.684 +-72.5881 198.037 103.394 +-74.8204 198.225 103.492 +-77.1271 198.56 103.667 +-79.0455 197.873 103.309 +-81.3666 198.17 103.464 +-83.5945 198.197 103.478 +-85.8291 198.205 103.482 +-87.8503 197.698 103.217 +-90.3176 198.162 103.46 +-92.4563 197.865 103.304 +-95.0258 198.448 103.609 +-97.3745 198.518 103.646 +-99.6098 198.324 103.544 +-101.185 196.82 102.759 +-103.964 197.637 103.186 +-106.207 197.385 103.054 +-108.672 197.512 103.12 +-110.88 197.14 102.926 +-113.588 197.617 103.175 +-115.807 197.203 102.959 +-118.589 197.709 103.223 +-121.151 197.796 103.269 +-123.433 197.394 103.059 +-125.765 197.049 102.879 +-128.55 197.374 103.048 +-130.945 197.059 102.884 +-136.691 201.661 105.287 +-139.716 202.108 105.52 +-141.859 201.245 105.069 +-143.459 199.617 104.219 +-142.968 195.154 101.889 +-143.062 191.601 100.034 +-144.328 189.679 99.0308 +-148.115 191.039 99.7408 +-155.324 196.639 102.664 +-522.807 649.725 339.219 +-523.893 639.202 333.725 +-526.954 631.277 329.588 +-528.454 621.655 324.564 +-531.205 613.675 320.398 +-532.67 604.373 315.541 +-536.11 597.455 311.929 +-537.188 588.049 307.018 +-539.967 580.656 303.159 +-541.356 571.908 298.591 +-546.575 567.294 296.182 +-556.207 567.192 296.129 +-568.064 569.175 297.164 +-571.103 562.255 293.551 +-574.319 555.594 290.073 +-578.403 549.833 287.066 +-577.254 539.23 281.53 +-578.928 531.428 277.457 +-581.194 524.273 273.721 +-582.585 516.435 269.629 +-584.651 509.299 265.903 +-590.866 505.804 264.079 +-594.372 499.994 261.045 +-592.835 490.057 255.857 +-579.279 470.54 245.667 +-576.234 459.932 240.129 +-578.419 453.635 236.841 +-579.466 446.527 233.13 +-582.547 441.049 230.27 +-584.415 434.702 226.957 +-585.972 428.191 223.557 +-587.678 421.857 220.25 +-589.93 415.971 217.177 +-591.402 409.59 213.846 +-594.222 404.19 211.026 +-595.622 397.871 207.727 +-598.07 392.299 204.818 +-599.401 386.042 201.551 +-601.957 380.619 198.72 +-603.469 374.575 195.564 +-606.392 369.441 192.884 +-607.685 363.347 189.702 +-610.238 358.045 186.934 +-611.642 352.104 183.832 +-614.242 346.883 181.106 +-616.107 341.273 178.177 +-618.59 336.031 175.441 +-619.732 330.092 172.34 +-622.958 325.285 169.83 +-623.971 319.345 166.729 +-382.434 191.803 100.14 +-380.984 187.204 97.7387 +-380.264 183.024 95.556 +-381.875 179.991 93.9727 +-377.423 174.165 90.9311 +-380.371 171.803 89.6977 +-382.584 169.091 88.282 +-381.538 164.96 86.1248 +-381.974 161.505 84.3212 +-381.918 157.87 82.4232 +-135.22 54.6264 28.5202 +-383.05 151.18 78.9308 +-380.855 146.797 76.6422 +-382.286 143.846 75.1014 +-381.839 140.204 73.2002 +-383.298 137.278 71.6724 +-635.289 221.833 115.818 +-382.021 129.993 67.869 +-381.788 126.537 66.0645 +-383.019 123.578 64.5196 +-381.864 119.871 62.5842 +-376.978 115.065 60.0752 +-377.433 111.948 58.4475 +-378.045 108.887 56.8494 +-381.773 106.705 55.7104 +-3133.33 849.185 443.356 +-378.638 99.423 51.9084 +-377.295 95.9038 50.071 +-376.78 92.6257 48.3595 +-377.097 89.5701 46.7642 +-380.966 87.3375 45.5986 +-381.811 84.3872 44.0583 +-381.363 81.1614 42.3741 +-381.563 78.0885 40.7697 +-381.341 74.9421 39.127 +-381.869 71.9524 37.5661 +-380.407 68.6068 35.8194 +-381.46 65.7292 34.317 +-380.815 62.5658 32.6654 +-381.121 59.5714 31.102 +-380.706 56.4746 29.4852 +-381.643 53.5829 27.9755 +-380.079 50.3535 26.2894 +-379.966 47.3373 24.7146 +-380.417 44.3962 23.1791 +-379.847 41.3437 21.5854 +-380.041 38.3837 20.04 +-380.604 35.4609 18.514 +-381.336 32.5493 16.9939 +-381.244 29.5673 15.437 +-381.221 26.5961 13.8857 +-380.87 23.609 12.3262 +-380.788 20.6455 10.779 +-380.977 17.6991 9.24066 +-380.238 14.7165 7.68342 +-381.268 11.8024 6.16201 +-379.97 8.8201 4.60494 +-146.578 2.26801 1.18412 +-145.294 1.124 0.586835 +96.4 3.55271e-15 -1.7053e-13 +95.6964 0.743761 0.379816 +96.5853 1.50145 0.766746 +96.367 2.24738 1.14767 +96.5412 3.00245 1.53326 +96.608 3.75652 1.91834 +96.5675 4.5072 2.30169 +96.5196 5.25752 2.68486 +96.3647 6.00125 3.06465 +96.3022 6.74995 3.44699 +96.2324 7.49813 3.82906 +96.2548 8.25428 4.2152 +96.1703 9.00204 4.59706 +96.0784 9.74916 4.97859 +96.8725 10.5931 5.40956 +96.6659 11.334 5.78791 +96.3531 12.06 6.15866 +96.2312 12.8084 6.54087 +96.2996 13.5837 6.93678 +95.9656 14.3021 7.30366 +95.7233 15.032 7.67637 +95.5724 15.7754 8.05599 +96.1995 16.6535 8.50442 +96.0326 17.4005 8.88591 +95.8585 18.1461 9.26666 +95.7746 18.9097 9.65661 +95.5857 19.6534 10.0364 +96.3619 20.6034 10.5215 +96.1563 21.3515 10.9036 +95.9434 22.098 11.2848 +96.496 23.0272 11.7593 +95.4958 23.5859 12.0446 +96.03 24.5236 12.5234 +95.7861 25.2689 12.9041 +96.3955 26.2468 13.4034 +96.1347 26.9949 13.7855 +95.8665 27.741 14.1665 +96.5393 28.7676 14.6907 +96.1592 29.4878 15.0585 +96.5265 30.4421 15.5458 +96.2245 31.1912 15.9284 +95.8216 31.9066 16.2937 +96.1588 32.8735 16.7875 +97.0426 34.0439 17.3852 +96.7053 34.7968 17.7697 +96.3606 35.5471 18.1528 +96.8371 36.6078 18.6945 +96.5664 37.3945 19.0962 +96.379 38.216 19.5157 +96.0009 38.9636 19.8975 +96.5218 40.0846 20.47 +96.1253 40.8332 20.8523 +96.5305 41.9302 21.4124 +96.116 42.6787 21.7947 +96.3178 43.7072 22.3199 +95.8859 44.454 22.7013 +96.153 45.5321 23.2518 +95.7911 46.3201 23.6542 +96.0332 47.4082 24.2099 +96.3484 48.5474 24.7917 +95.6958 49.2053 25.1276 +95.8993 50.3088 25.6911 +96.0885 51.4192 26.2582 +96.3483 52.5827 26.8524 +95.6598 53.2352 27.1856 +95.8936 54.4073 27.7841 +96.1116 55.587 28.3865 +95.4799 56.2827 28.7418 +95.6709 57.4708 29.3486 +95.8459 58.6661 29.959 +95.9227 59.8175 30.5469 +95.4143 60.6124 30.9529 +95.3831 61.7181 31.5175 +95.4982 62.9337 32.1383 +95.4369 64.0488 32.7077 +94.9644 64.8964 33.1406 +95.5069 66.4545 33.9363 +95.5565 67.6932 34.5688 +95.5112 68.8817 35.1757 +95.5271 70.1312 35.8138 +94.8363 70.8709 36.1916 +95.4309 72.5885 37.0687 +95.3953 73.8533 37.7146 +95.3421 75.123 38.363 +95.1225 76.2782 38.9529 +95.1088 77.6163 39.6362 +95.6611 79.4458 40.5705 +94.9515 80.2475 40.9799 +95.3125 81.9722 41.8607 +95.0763 83.2093 42.4924 +94.9644 84.5747 43.1897 +95.3237 86.3895 44.1165 +94.543 87.191 44.5258 +94.9241 89.0852 45.4931 +94.5932 90.341 46.1343 +94.988 92.3199 47.1449 +94.5482 93.5177 47.7566 +94.6884 95.3167 48.6753 +94.0789 96.3846 49.2206 +90.9877 94.8777 48.4511 +89.9903 95.5127 48.7754 +88.9237 96.0711 49.0605 +88.4824 97.3126 49.6945 +88.1481 98.693 50.3995 +88.5321 100.919 51.536 +88.2704 102.45 52.3183 +88.1659 104.2 53.2115 +88.4501 106.456 54.3639 +88.8731 108.94 55.6324 +89.6025 111.875 57.1309 +88.7323 112.859 57.6335 +88.3594 114.498 58.4708 +88.2406 116.509 59.4977 +87.9788 118.379 60.4523 +88.0137 120.701 61.6384 +88.1171 123.183 62.906 +91.3051 130.133 66.4548 +93.5272 135.925 69.4128 +93.1704 138.097 70.522 +93.2348 140.964 71.986 +93.35 143.997 73.5351 +92.8218 146.113 74.6152 +92.841 149.166 76.1743 +92.7597 152.151 77.6988 +93.4248 156.484 79.9114 +92.7191 158.626 81.0051 +92.8865 162.355 82.9098 +92.8091 165.781 84.659 +92.7593 169.378 86.4959 +92.3016 172.342 88.01 +92.8915 177.412 90.5987 +91.5228 178.856 91.3364 +90.7429 181.514 92.6935 +88.3628 180.987 92.4247 +88.8913 186.504 95.2417 +92.0354 197.884 101.053 +90.917 200.409 102.342 +88.7666 200.693 102.488 +86.5817 200.876 102.581 +84.0848 200.29 102.282 +81.9138 200.434 102.355 +79.5462 200.055 102.162 +77.4852 200.413 102.345 +75.2329 200.248 102.261 +73.1134 200.401 102.339 +71.0568 200.707 102.495 +68.9705 200.911 102.599 +66.7436 200.671 102.477 +64.5543 200.497 102.388 +62.32 200.133 102.202 +60.3566 200.61 102.445 +58.3385 200.898 102.593 +56.1259 200.481 102.379 +53.9726 200.216 102.244 +51.8737 200.108 102.189 +49.8244 200.155 102.213 +47.9444 200.883 102.585 +45.7549 200.288 102.281 +43.6953 200.199 102.236 +41.7319 200.531 102.405 +39.6091 200.059 102.164 +37.4988 199.568 101.913 +35.5732 200.027 102.148 +33.6562 200.561 102.42 +31.6619 200.638 102.46 +29.5903 200.171 102.221 +27.6156 200.304 102.289 +25.55 199.715 101.988 +23.5921 199.906 102.086 +21.6324 200.082 102.176 +19.6188 199.71 101.985 +17.6219 199.411 101.833 +15.6464 199.274 101.763 +13.6871 199.299 101.776 +11.7285 199.309 101.781 +9.78383 199.571 101.915 +7.82796 199.638 101.949 +5.8584 199.246 101.749 +3.90934 199.463 101.859 +1.95649 199.663 101.962 +1.86517e-14 199.671 101.966 +-1.95911 199.93 102.098 +-3.92156 200.086 102.178 +-5.87411 199.781 102.022 +-7.82447 199.549 101.904 +-9.78383 199.571 101.915 +-11.7442 199.575 101.917 +-13.6871 199.299 101.776 +-15.7022 199.985 102.126 +-17.6141 199.322 101.788 +-19.6275 199.799 102.031 +-21.5845 199.638 101.949 +-23.5294 199.375 101.814 +-25.482 199.184 101.717 +-27.4572 199.156 101.703 +-29.3814 198.757 101.499 +-31.4253 199.14 101.694 +-33.3901 198.976 101.611 +-35.3385 198.708 101.474 +-37.3008 198.514 101.375 +-39.2619 198.304 101.268 +-41.1852 197.904 101.064 +-43.2946 198.363 101.298 +-45.2565 198.106 101.167 +-47.4247 198.705 101.472 +-49.3699 198.329 101.281 +-51.3563 198.112 101.17 +-53.4823 198.398 101.316 +-55.642 198.752 101.497 +-57.6375 198.485 101.36 +-59.7096 198.459 101.347 +-61.8657 198.674 101.457 +-64.003 198.785 101.513 +-66.1472 198.878 101.561 +-68.1226 198.441 101.338 +-70.3952 198.839 101.541 +-72.5881 198.961 101.603 +-74.4714 198.221 101.226 +-76.769 198.561 101.399 +-79.1122 198.964 101.605 +-81.4008 199.179 101.714 +-83.2443 198.288 101.26 +-85.8291 199.131 101.69 +-87.6671 198.207 101.218 +-90.0929 198.592 101.415 +-92.4563 198.789 101.515 +-94.7132 198.718 101.479 +-96.896 198.465 101.35 +-99.2437 198.518 101.377 +-101.144 197.658 100.938 +-104.049 198.721 101.481 +-105.863 197.664 100.941 +-108.322 197.794 101.007 +-110.88 198.06 101.143 +-113.134 197.747 100.983 +-115.853 198.203 101.216 +-118.682 198.789 101.515 +-120.721 198.016 101.12 +-123.433 198.316 101.274 +-125.716 197.892 101.057 +-128.1 197.601 100.909 +-130.945 197.979 101.102 +-136.176 201.84 103.073 +-139.141 202.217 103.266 +-141.859 202.184 103.249 +-143.513 200.624 102.453 +-142.913 195.99 100.086 +-142.841 192.199 98.1502 +-144.943 191.377 97.7304 +-147.889 191.637 97.8632 +-152.629 194.128 99.1353 +-523.504 653.629 333.788 +-525.362 643.988 328.865 +-527.489 634.869 324.208 +-529.537 625.837 319.596 +-531.936 617.388 315.281 +-534.394 609.16 311.079 +-536.732 600.942 306.882 +-538.258 591.972 302.302 +-540.73 584.192 298.329 +-542.513 575.807 294.047 +-546.186 569.536 290.844 +-554.829 568.429 290.279 +-566.341 570.098 291.131 +-573.713 567.462 289.785 +-576.414 560.224 286.089 +-576.561 550.642 281.196 +-579.113 543.491 277.544 +-579.762 534.678 273.044 +-581.825 527.293 269.272 +-583.292 519.476 265.281 +-586.221 513.051 261.999 +-589.643 507.114 258.968 +-591.76 500.122 255.397 +-589.252 489.369 249.906 +-576.33 470.331 240.183 +-576.903 462.616 236.243 +-579.317 456.462 233.101 +-581.051 449.839 229.719 +-583.231 443.629 226.548 +-585.028 437.19 223.259 +-586.666 430.7 219.945 +-588.766 424.611 216.836 +-590.791 418.522 213.726 +-593.057 412.654 210.73 +-595.412 406.89 207.786 +-596.82 400.532 204.539 +-599.516 395.084 201.757 +-600.938 388.84 198.568 +-603.422 383.327 195.753 +-604.944 377.243 192.646 +-607.628 371.922 189.929 +-609.011 365.841 186.824 +-611.238 360.308 183.998 +-612.397 354.185 180.871 +-615.844 349.412 178.434 +-617.888 343.858 175.597 +-619.443 338.065 172.639 +-621.275 332.459 169.776 +-622.958 326.804 166.888 +-625.097 321.415 164.137 +-381.477 192.216 98.1588 +-382.121 188.639 96.3323 +-381.582 184.515 94.2262 +-382.14 180.957 92.4092 +-377.689 175.102 89.4194 +-379.569 172.241 87.9581 +-382.853 169.999 86.8134 +-381.538 165.73 84.6331 +-382.606 162.528 82.9981 +-382.734 158.946 81.1689 +-135.493 54.9922 28.0828 +-135.296 53.6473 27.396 +-381.68 147.802 75.478 +-381.457 144.204 73.6406 +-381.839 140.859 71.9324 +-382.741 137.72 70.3292 +-633.056 222.085 113.412 +-380.901 130.217 66.498 +-382.069 127.221 64.968 +-381.985 123.82 63.2312 +-380.733 120.074 61.3183 +-376.978 115.603 59.0347 +-377.812 112.584 57.493 +-376.904 109.065 55.696 +-378.053 106.159 54.212 +-379.462 103.32 52.7626 +-377.391 99.5577 50.8411 +-376.718 96.2038 49.1283 +-377.55 93.2488 47.6193 +-376.228 89.7808 45.8483 +-381.257 87.8122 44.843 +-381.714 84.7597 43.2842 +-381.169 81.4988 41.6189 +-380.589 78.2529 39.9613 +-381.146 75.2534 38.4296 +-380.597 72.0476 36.7925 +-381.093 69.0515 35.2625 +-381.068 65.9682 33.6879 +-380.815 62.858 32.0996 +-381.711 59.9423 30.6107 +-380.509 56.7089 28.9595 +-380.655 53.6937 27.4197 +-381.167 50.7333 25.9079 +-380.758 47.6576 24.3372 +-381.31 44.7082 22.8311 +-380.84 41.6453 21.267 +-380.24 38.5831 19.7032 +-381.001 35.6638 18.2124 +-380.938 32.6672 16.6821 +-380.746 29.6665 15.1498 +-381.022 26.7063 13.6381 +-380.87 23.7192 12.1127 +-379.89 20.693 10.5673 +-380.078 17.7398 9.05919 +-381.137 14.8202 7.56822 +-380.668 11.8388 6.04573 +-380.27 8.86828 4.52876 +-147.977 2.30037 1.17473 +-146.094 1.13546 0.579846 +95.8 -1.77636e-15 -1.7053e-13 +96.5963 0.754184 0.376599 +95.6854 1.49426 0.746155 +96.5669 2.26232 1.12968 +96.5412 3.01616 1.50611 +96.5081 3.76977 1.88242 +96.5675 4.52778 2.26093 +96.4198 5.27607 2.63459 +96.3647 6.02865 3.01039 +96.4019 6.78778 3.38946 +96.2324 7.53236 3.76126 +96.2548 8.29197 4.14057 +96.1703 9.04314 4.51566 +96.0784 9.79367 4.89044 +95.9792 10.5434 5.26481 +96.765 11.3974 5.69128 +96.5511 12.14 6.06207 +96.2312 12.8669 6.42506 +96.1021 13.6177 6.79996 +95.867 14.3527 7.16697 +95.7233 15.1006 7.54045 +96.4573 15.9941 7.98661 +95.316 16.5759 8.27713 +96.0326 17.48 8.72857 +95.9563 18.2476 9.11188 +95.7746 18.9961 9.48562 +96.5601 19.9443 9.95913 +96.3619 20.6974 10.3352 +96.0593 21.4274 10.6997 +95.9434 22.199 11.085 +95.6267 22.924 11.447 +96.363 23.9087 11.9387 +96.03 24.6356 12.3017 +95.7861 25.3843 12.6756 +96.3955 26.3666 13.1661 +96.1347 27.1182 13.5414 +95.8665 27.8677 13.9156 +95.591 28.6151 14.2889 +96.1592 29.6225 14.7919 +96.5265 30.5811 15.2706 +96.2245 31.3336 15.6463 +96.8519 32.3969 16.1773 +96.5322 33.1518 16.5543 +95.833 33.7731 16.8645 +96.7053 34.9557 17.455 +97.1921 36.0175 17.9852 +96.8371 36.7749 18.3634 +96.5664 37.5653 18.7581 +96.1963 38.3178 19.1339 +96.0009 39.1415 19.5452 +96.3405 40.192 20.0697 +96.1253 41.0197 20.483 +95.7216 41.7686 20.857 +96.116 42.8736 21.4088 +96.3178 43.9067 21.9247 +95.8859 44.657 22.2993 +96.2413 45.7819 22.8611 +95.7911 46.5316 23.2354 +96.0332 47.6247 23.7812 +96.1743 48.681 24.3087 +96.4752 49.8326 24.8837 +95.9855 50.5839 25.2589 +96.0885 51.654 25.7932 +95.6662 52.4489 26.1902 +95.8294 53.5731 26.7516 +95.8936 54.6557 27.2922 +96.1116 55.8408 27.8839 +95.4799 56.5397 28.2329 +95.6709 57.7333 28.8289 +95.8459 58.934 29.4285 +96.0046 60.142 30.0317 +95.4143 60.8892 30.4048 +95.3831 61.9999 30.9595 +95.4982 63.2211 31.5693 +95.4369 64.3412 32.1286 +95.5197 65.5741 32.7442 +95.5069 66.758 33.3354 +95.4782 67.9466 33.9289 +95.589 69.2525 34.581 +95.5271 70.4514 35.1797 +95.5257 71.7121 35.8092 +95.507 72.9781 36.4414 +94.7161 73.6623 36.783 +95.2672 75.4068 37.6541 +95.1969 76.6864 38.2931 +95.1088 77.9707 38.9344 +94.9297 79.1984 39.5475 +95.4593 81.0451 40.4696 +95.2406 82.2845 41.0885 +95.1476 83.652 41.7713 +94.9644 84.9609 42.425 +94.7629 86.2735 43.0804 +95.1682 88.1685 44.0266 +94.9241 89.492 44.6876 +94.6614 90.8188 45.3501 +94.8529 92.6099 46.2445 +94.682 94.0781 46.9776 +94.6884 95.752 47.8134 +94.0133 96.7576 48.3156 +91.1825 95.5149 47.695 +89.2832 95.1955 47.5356 +88.3513 95.8889 47.8818 +88.5454 97.8258 48.849 +88.7083 99.7744 49.822 +88.5321 101.379 50.6235 +88.3313 102.99 51.4276 +88.1057 104.604 52.2335 +88.5096 107.014 53.4371 +89.2846 109.945 54.9006 +89.6605 112.458 56.1555 +88.5602 113.154 56.5031 +88.0762 114.653 57.2514 +88.2406 117.041 58.4442 +88.0339 118.994 59.4194 +87.9592 121.177 60.5095 +88.1171 123.746 61.7921 +91.835 131.486 65.6569 +93.1615 136.012 67.917 +93.2219 138.804 69.3113 +93.2348 141.608 70.7114 +93.35 144.655 72.233 +93.265 147.48 73.6438 +92.841 149.847 74.8255 +93.1414 153.475 76.637 +93.0023 156.487 78.1412 +93.0885 159.984 79.8876 +92.8865 163.097 81.4418 +92.8538 166.618 83.2002 +92.7155 170.071 84.9242 +92.3016 173.129 86.4516 +92.5111 177.493 88.6304 +91.4399 179.51 89.6378 +90.1735 181.198 90.4808 +88.6818 182.47 91.1156 +89.4384 188.509 94.1312 +92.1119 198.953 99.3465 +90.8046 201.074 100.406 +88.7666 201.609 100.673 +86.2592 201.042 100.39 +84.0848 201.205 100.471 +81.8796 201.265 100.501 +79.8132 201.644 100.69 +77.5178 201.413 100.575 +75.2012 201.078 100.407 +73.1752 201.487 100.612 +71.0267 201.538 100.638 +68.6781 200.973 100.355 +66.7436 201.588 100.662 +64.5267 201.326 100.532 +62.3734 201.219 100.478 +60.0978 200.662 100.2 +58.1132 201.037 100.387 +55.9323 200.701 100.219 +53.9492 201.044 100.391 +51.8287 200.847 100.292 +49.846 201.156 100.447 +47.7781 201.1 100.419 +45.7749 201.291 100.514 +43.6762 201.025 100.381 +41.7502 201.535 100.636 +39.6091 200.972 100.355 +37.4988 200.479 100.109 +35.5732 200.941 100.339 +33.6414 201.388 100.563 +31.6897 201.732 100.734 +29.5772 200.995 100.366 +27.6156 201.219 100.478 +25.55 200.627 100.182 +23.5816 200.73 100.234 +21.6036 200.728 100.233 +19.6275 200.711 100.224 +17.5278 199.251 99.4952 +15.6394 200.094 99.9165 +13.6932 200.298 100.018 +11.7285 200.219 99.9786 +9.77947 200.392 100.065 +7.83145 200.639 100.189 +5.85578 200.067 99.9027 +3.91108 200.463 100.101 +1.95649 200.575 100.156 +1.77636e-14 200.672 100.205 +-1.95125 200.038 99.8884 +-3.90585 200.195 99.9666 +-5.85055 199.888 99.8133 +-7.82796 200.55 100.144 +-9.74893 199.766 99.7526 +-11.7494 200.576 100.157 +-13.6871 200.209 99.9737 +-15.6394 200.094 99.9165 +-17.5905 199.965 99.8517 +-19.549 199.908 99.8236 +-21.4886 199.66 99.6994 +-23.4562 199.662 99.7007 +-25.482 200.094 99.9161 +-27.445 199.975 99.8571 +-29.3814 199.665 99.7021 +-31.3139 199.339 99.5395 +-33.4049 199.973 99.8558 +-35.3385 199.616 99.6775 +-37.3008 199.421 99.5801 +-39.2619 199.21 99.4747 +-41.1852 198.808 99.2741 +-43.2946 199.269 99.5042 +-45.2964 199.186 99.4631 +-47.2375 198.825 99.2826 +-49.3915 199.322 99.531 +-51.3113 198.842 99.2911 +-53.4823 199.304 99.5216 +-55.6662 199.746 99.7427 +-57.6625 199.477 99.6083 +-59.5543 198.847 99.2938 +-61.8924 199.668 99.7034 +-63.9754 199.607 99.673 +-65.8916 199.014 99.3769 +-68.0934 199.262 99.5006 +-70.3952 199.746 99.7427 +-72.31 199.104 99.422 +-74.7887 199.975 99.8567 +-76.769 199.467 99.6034 +-79.1122 199.873 99.8057 +-81.093 199.331 99.5354 +-83.2443 199.194 99.4666 +-85.5066 199.287 99.5136 +-87.6671 199.112 99.426 +-89.9805 199.25 99.4948 +-92.4946 199.78 99.7593 +-94.3616 198.885 99.3125 +-96.9758 199.535 99.6373 +-99.2437 199.424 99.5819 +-101.517 199.294 99.5167 +-103.668 198.898 99.3192 +-106.25 199.293 99.5162 +-108.322 198.697 99.2187 +-110.836 198.885 99.3125 +-113.18 198.729 99.2348 +-115.899 199.187 99.4635 +-118.26 198.985 99.3626 +-120.817 199.076 99.4081 +-123.384 199.143 99.4416 +-125.765 198.873 99.3067 +-128.05 198.426 99.0833 +-130.437 198.113 98.927 +-135.558 201.841 100.789 +-139.141 203.14 101.437 +-142.018 203.336 101.535 +-143.459 201.465 100.601 +-143.077 197.111 98.4266 +-142.786 193.002 96.3747 +-144.887 192.177 95.9628 +-147.662 192.218 95.9834 +-150.679 192.523 96.1357 +-523.562 656.687 327.915 +-526.068 647.797 323.475 +-527.31 637.552 318.36 +-530.079 629.338 314.258 +-532.179 620.491 309.84 +-534.209 611.731 305.466 +-537.23 604.246 301.728 +-538.887 595.37 297.296 +-540.73 586.86 293.047 +-543.091 579.052 289.148 +-545.991 571.933 285.593 +-554.829 571.024 285.139 +-566.01 572.366 285.809 +-575.118 571.449 285.351 +-576.684 563.046 281.155 +-579.835 556.297 277.785 +-579.939 546.752 273.019 +-580.595 537.892 268.594 +-581.825 529.701 264.504 +-584.424 522.861 261.089 +-586.221 515.394 257.36 +-590.65 510.3 254.817 +-591.76 502.406 250.875 +-587.716 490.322 244.841 +-576.551 472.66 236.021 +-577.349 465.088 232.24 +-579.991 459.08 229.24 +-581.051 451.893 225.651 +-583.231 445.655 222.536 +-585.718 439.703 219.564 +-587.283 433.122 216.278 +-589.698 427.226 213.334 +-591.026 420.601 210.026 +-593.057 414.538 206.998 +-595.65 408.912 204.189 +-597.459 402.792 201.133 +-599.275 396.728 198.105 +-601.666 391.088 195.289 +-603.178 384.922 192.209 +-605.681 379.427 189.466 +-606.887 373.165 186.339 +-609.757 367.961 183.74 +-610.988 361.804 180.666 +-613.739 356.582 178.058 +-615.844 351.008 175.275 +-617.633 345.285 172.417 +-619.699 339.749 169.653 +-621.018 333.838 166.701 +-623.475 328.569 164.07 +-625.097 322.883 161.231 +-381.477 193.094 96.4207 +-380.984 188.937 94.3452 +-382.373 185.742 92.7498 +-381.875 181.657 90.71 +-376.891 175.53 87.6502 +-381.173 173.758 86.7657 +-382.047 170.417 85.0971 +-383.426 167.31 83.5455 +-381.072 162.615 81.2014 +-382.281 159.482 79.6369 +-135.493 55.2433 27.5856 +-135.022 53.7832 26.8564 +-382.781 148.906 74.3555 +-381.641 144.932 72.3715 +-382.117 141.605 70.7101 +-382.371 138.214 69.0169 +-633.893 223.394 111.551 +-382.395 131.325 65.5769 +-381.507 127.614 63.7234 +-381.703 124.294 62.066 +-382.335 121.13 60.4858 +-376.316 115.927 57.8876 +-376.579 112.729 56.2909 +-377.189 109.646 54.7514 +-377.767 106.563 53.2119 +-379.844 103.897 51.8806 +-377.487 100.038 49.9538 +-376.622 96.6189 48.2463 +-378.418 93.8902 46.8838 +-378.45 90.7231 45.3023 +-381.837 88.3477 44.1161 +-381.52 85.1035 42.4961 +-380.197 81.662 40.7777 +-380.589 78.6102 39.2537 +-381.732 75.7133 37.8072 +-380.597 72.3766 36.141 +-381.093 69.3668 34.6381 +-382.049 66.4401 33.1767 +-381.503 63.2591 31.5882 +-381.81 60.2316 30.0765 +-380.509 56.9679 28.4467 +-380.359 53.897 26.9133 +-380.969 50.9386 25.436 +-381.154 47.9249 23.9312 +-381.31 44.9123 22.4268 +-380.542 41.8028 20.8741 +-380.24 38.7593 19.3543 +-381.3 35.8546 17.9039 +-380.64 32.7906 16.3739 +-380.945 29.8176 14.8893 +-380.623 26.8002 13.3826 +-380.97 23.8338 11.9013 +-380.788 20.8367 10.4047 +-379.279 17.7834 8.88006 +-379.938 14.8411 7.41085 +-380.368 11.8835 5.93399 +-380.57 8.9158 4.45207 +-147.478 2.30306 1.15003 +-145.594 1.13674 0.567626 +95.7 0 -1.7053e-13 +96.5963 0.757551 0.36978 +95.6854 1.50093 0.732644 +96.367 2.26772 1.10693 +96.5412 3.02963 1.47884 +96.5081 3.7866 1.84834 +96.4676 4.54328 2.21769 +96.5196 5.30511 2.58956 +96.4644 6.06183 2.95894 +96.3022 6.81104 3.32464 +96.332 7.57383 3.69698 +96.2548 8.32898 4.06559 +96.0708 9.07408 4.42929 +96.0784 9.83739 4.80189 +96.8725 10.689 5.21756 +96.765 11.4483 5.58822 +96.3531 12.1691 5.94007 +96.2312 12.9244 6.30872 +96.1021 13.6785 6.67684 +95.9656 14.4316 7.04443 +95.7233 15.168 7.40391 +96.359 16.0492 7.83401 +96.1995 16.8042 8.20257 +95.8366 17.5222 8.55301 +95.9563 18.3291 8.94688 +95.7746 19.0809 9.31386 +95.5857 19.8312 9.68014 +96.3619 20.7898 10.1481 +96.1563 21.5448 10.5166 +95.9434 22.2981 10.8843 +96.496 23.2356 11.3419 +96.363 24.0155 11.7226 +96.03 24.7455 12.0789 +95.7861 25.4976 12.446 +96.3955 26.4843 12.9277 +96.1347 27.2392 13.2962 +95.8665 27.9921 13.6637 +96.5393 29.028 14.1693 +96.1592 29.7547 14.5241 +96.5265 30.7176 14.9941 +96.2245 31.4735 15.363 +95.8216 32.1954 15.7154 +95.5053 32.9456 16.0816 +96.8565 34.2862 16.736 +96.7053 35.1118 17.139 +96.3606 35.8688 17.5085 +96.8371 36.9391 18.0309 +96.5664 37.733 18.4184 +96.1963 38.4888 18.7874 +96.0009 39.3162 19.1913 +96.3405 40.3714 19.7063 +96.1253 41.2028 20.1121 +96.5305 42.3097 20.6524 +96.116 43.065 21.0211 +96.3178 44.1027 21.5277 +95.8859 44.8564 21.8955 +96.2413 45.9863 22.4471 +96.582 47.1252 23.003 +96.0332 47.8373 23.3506 +96.1743 48.8983 23.8685 +96.4752 50.0551 24.4332 +95.9855 50.8098 24.8016 +96.0885 51.8846 25.3262 +96.3483 53.0586 25.8993 +95.8294 53.8123 26.2672 +96.0623 54.9962 26.8451 +95.3568 55.6496 27.164 +95.4799 56.7921 27.7217 +95.6709 57.991 28.3069 +95.8459 59.1971 28.8956 +96.0046 60.4104 29.4879 +95.4143 61.161 29.8543 +96.1112 62.7521 30.6309 +94.7747 63.0223 30.7628 +95.4369 64.6285 31.5468 +95.6784 65.9762 32.2047 +95.5069 67.056 32.7318 +94.8521 67.8024 33.0961 +95.589 69.5616 33.9548 +95.6043 70.8231 34.5706 +95.5257 72.0322 35.1608 +94.7466 72.7202 35.4966 +95.3953 74.5218 36.376 +95.2672 75.7434 36.9723 +95.1969 77.0287 37.5997 +95.1088 78.3188 38.2294 +95.0028 79.6133 38.8613 +94.879 80.912 39.4952 +95.2406 82.6518 40.3445 +95.1476 84.0254 41.015 +94.9644 85.3402 41.6568 +94.7629 86.6586 42.3003 +94.543 87.9802 42.9454 +94.8553 89.8265 43.8466 +94.5932 91.1586 44.4969 +94.8529 93.0233 45.4071 +94.682 94.498 46.1269 +94.6884 96.1794 46.9477 +94.3413 97.5283 47.6061 +91.0526 95.8047 46.7647 +89.7974 96.1704 46.9433 +88.3513 96.3169 47.0148 +88.5454 98.2625 47.9645 +88.7706 100.29 48.9541 +87.978 101.195 49.3958 +88.2704 103.378 50.4613 +88.1659 105.143 51.3228 +88.4501 107.42 52.4344 +88.7556 109.781 53.5872 +89.0798 112.228 54.7816 +88.2161 113.218 55.2646 +88.0195 115.09 56.1783 +87.7933 116.968 57.0951 +88.4755 120.125 58.6361 +88.0681 121.869 59.4875 +88.1171 124.298 60.6732 +91.835 132.073 64.468 +93.6317 137.308 67.0237 +93.2219 139.424 68.0563 +93.2348 142.24 69.431 +92.95 144.678 70.6211 +93.265 148.139 72.3104 +92.7441 150.358 73.3938 +92.7597 153.528 74.941 +93.0023 157.186 76.7263 +92.6729 159.981 78.091 +92.7957 163.665 79.889 +92.8091 167.281 81.6542 +92.321 170.103 83.0316 +92.3016 173.902 84.8862 +92.5111 178.285 87.0255 +91.4399 180.311 88.0147 +90.4989 182.664 89.1631 +88.3628 182.626 89.1442 +89.4384 189.35 92.4267 +91.9971 199.592 97.4261 +90.7672 201.889 98.5473 +88.7299 202.426 98.8092 +86.5459 202.611 98.8995 +84.0498 202.018 98.6104 +81.8796 202.163 98.6811 +79.8132 202.544 98.8671 +77.4852 202.227 98.7122 +75.1695 201.89 98.5477 +73.1752 202.386 98.7899 +71.0568 202.524 98.857 +68.6781 201.87 98.5381 +66.5448 201.884 98.5446 +64.5267 202.225 98.7113 +62.3467 202.031 98.6166 +60.3307 202.338 98.7666 +58.0882 201.847 98.5267 +56.1017 202.208 98.703 +53.9959 202.116 98.6578 +51.8512 201.831 98.5188 +49.846 202.054 98.628 +47.7573 201.911 98.5578 +45.7549 202.101 98.6508 +43.6953 202.011 98.6069 +41.7319 202.346 98.7701 +39.6091 201.869 98.5376 +37.4988 201.374 98.2959 +35.5576 201.75 98.4793 +33.5084 201.487 98.3512 +31.5366 201.654 98.4324 +29.6164 202.16 98.6798 +27.6034 202.028 98.6153 +25.55 201.522 98.3683 +23.5712 201.537 98.3753 +21.6324 201.893 98.549 +19.6013 201.338 98.2784 +17.5984 200.947 98.0876 +15.6324 200.898 98.0634 +13.7481 202 98.6012 +11.7233 201.023 98.1244 +9.78383 201.377 98.2972 +7.83145 201.535 98.3745 +5.8584 201.05 98.1376 +3.91108 201.358 98.288 +1.95649 201.47 98.3429 +1.77636e-14 201.478 98.3468 +-1.95911 201.74 98.4745 +-3.91981 201.807 98.5074 +-5.85055 200.78 98.006 +-7.82447 201.355 98.2867 +-9.78383 201.377 98.2972 +-11.739 201.292 98.256 +-13.6932 201.193 98.2073 +-15.6394 200.988 98.1073 +-17.5984 200.947 98.0876 +-19.5403 200.712 97.9726 +-21.4886 200.551 97.8941 +-23.5503 201.358 98.288 +-25.4934 201.076 98.1503 +-27.4206 200.69 97.9621 +-29.3814 200.556 97.8968 +-31.3 200.14 97.6937 +-33.2571 199.977 97.6138 +-35.3385 200.507 97.8726 +-37.3173 200.399 97.82 +-39.2619 200.099 97.6735 +-41.3492 200.491 97.8647 +-43.3327 200.335 97.7888 +-45.2765 199.988 97.6191 +-47.2375 199.713 97.4849 +-49.3699 200.124 97.6858 +-51.3338 199.817 97.5357 +-53.4823 200.193 97.7195 +-55.6662 200.638 97.9367 +-57.4372 199.585 97.4226 +-59.7096 200.255 97.7498 +-61.8924 200.559 97.8981 +-63.9754 200.498 97.8682 +-65.9484 200.075 97.6616 +-68.1226 200.237 97.741 +-70.3952 200.638 97.9367 +-72.5572 200.677 97.9555 +-74.5031 200.1 97.6739 +-76.769 200.358 97.7998 +-79.1122 200.765 97.9985 +-81.093 200.221 97.7331 +-83.2443 200.083 97.6656 +-85.5424 200.262 97.7529 +-87.6671 200.001 97.6257 +-90.018 200.222 97.7336 +-92.1502 199.924 97.5879 +-94.7523 200.6 97.9178 +-96.9758 200.426 97.8331 +-99.2437 200.315 97.7788 +-101.517 200.183 97.7147 +-103.626 199.705 97.4813 +-106.293 200.263 97.7538 +-108.365 199.665 97.4616 +-110.88 199.853 97.5533 +-113.588 200.337 97.7897 +-115.853 199.997 97.6235 +-118.213 199.794 97.5248 +-120.721 199.808 97.5314 +-122.899 199.246 97.2572 +-125.765 199.761 97.5085 +-128.5 200.013 97.6314 +-130.945 199.771 97.5134 +-135.764 203.05 99.114 +-139.194 204.123 99.6378 +-141.859 204.014 99.5847 +-143.459 202.364 98.7793 +-142.968 197.84 96.5707 +-142.841 193.939 94.6665 +-145.278 193.556 94.4796 +-147.889 193.372 94.3897 +-150.736 193.456 94.4309 +-523.852 659.985 322.156 +-525.891 650.471 317.512 +-527.846 641.049 312.913 +-530.079 632.148 308.568 +-532.179 623.261 304.23 +-534.394 614.674 300.038 +-536.732 606.381 295.99 +-538.635 597.748 291.776 +-541.112 589.896 287.943 +-542.898 581.431 283.811 +-546.381 574.896 280.622 +-555.026 573.777 280.075 +-566.143 575.056 280.7 +-574.516 573.399 279.891 +-576.616 565.493 276.032 +-577.925 556.94 271.857 +-579.526 548.802 267.885 +-579.901 539.647 263.415 +-581.404 531.681 259.527 +-583.929 524.751 256.144 +-586.221 517.694 252.7 +-590.003 512.017 249.929 +-591.543 504.463 246.241 +-588.813 493.431 240.856 +-577.214 475.316 232.014 +-577.349 467.164 228.035 +-579.767 460.951 225.002 +-581.504 454.264 221.738 +-583.231 447.644 218.507 +-585.488 441.494 215.505 +-587.052 434.884 212.278 +-588.766 428.454 209.14 +-591.026 422.478 206.223 +-593.057 416.389 203.25 +-595.65 410.737 200.492 +-597.459 404.591 197.491 +-599.275 398.499 194.518 +-601.909 392.993 191.83 +-603.178 386.64 188.729 +-605.681 381.121 186.035 +-607.134 374.983 183.039 +-609.011 369.152 180.193 +-611.238 363.569 177.467 +-613.236 357.88 174.691 +-615.591 352.43 172.03 +-617.633 346.827 169.295 +-619.443 341.125 166.512 +-621.875 335.791 163.908 +-623.733 330.172 161.166 +-625.357 324.459 158.377 +-381.912 194.177 94.7827 +-381.946 190.26 92.8706 +-382.637 186.7 91.1331 +-382.581 182.806 89.2324 +-375.56 175.691 85.7591 +-380.727 174.33 85.095 +-381.779 171.057 83.4974 +-381.538 167.23 81.6292 +-381.703 163.612 79.8631 +-381.918 160.042 78.1208 +-135.493 55.49 27.0861 +-136.392 54.5715 26.6378 +-382.231 149.356 72.9043 +-382.286 145.826 71.1812 +-381.285 141.927 69.2784 +-382.556 138.899 67.8001 +-633.428 224.227 109.451 +-380.994 131.428 64.1535 +-381.694 128.247 62.6007 +-382.173 125.003 61.0171 +-382.053 121.581 59.3467 +-377.546 116.824 57.0249 +-376.674 113.26 55.2852 +-377.569 110.247 53.8144 +-378.053 107.12 52.2879 +-377.358 103.678 50.6078 +-376.912 100.331 48.9743 +-377.007 97.1491 47.421 +-377.261 94.0209 45.894 +-378.45 91.1281 44.482 +-381.257 88.607 43.2514 +-380.938 85.3529 41.6629 +-380.78 82.1525 40.1008 +-380.979 79.042 38.5824 +-380.755 75.8567 37.0276 +-381.869 72.9426 35.6052 +-380.799 69.6227 33.9847 +-382.049 66.7367 32.5759 +-381.7 63.5743 31.0322 +-381.416 60.438 29.5014 +-381.002 57.2963 27.9678 +-381.05 54.236 26.474 +-380.277 51.073 24.93 +-380.56 48.0638 23.4612 +-381.012 45.0776 22.0035 +-380.84 42.0223 20.5122 +-380.24 38.9323 19.0039 +-380.703 35.9583 17.5522 +-381.934 33.0489 16.132 +-381.244 29.9742 14.6312 +-380.623 26.9198 13.1403 +-380.571 23.9151 11.6736 +-380.19 20.8968 10.2003 +-380.977 17.9427 8.75831 +-380.837 14.9426 7.29385 +-380.668 11.946 5.83115 +-380.57 8.9556 4.37146 +-144.078 2.26002 1.10317 +-145.394 1.14025 0.556585 +96.6 3.55271e-15 -1.7053e-13 +96.5963 0.760856 0.362931 +96.5853 1.52165 0.725833 +96.5669 2.28233 1.08868 +96.5412 3.04284 1.45145 +96.5081 3.80312 1.8141 +96.5675 4.56784 2.17887 +96.5196 5.32826 2.5416 +96.4644 6.08828 2.90413 +96.3022 6.84076 3.26306 +96.332 7.60687 3.6285 +96.2548 8.36532 3.99029 +97.0653 9.20808 4.39228 +96.0784 9.88031 4.71294 +96.8725 10.7356 5.12091 +96.6659 11.4864 5.47907 +96.3531 12.2222 5.83004 +96.429 13.0074 6.20456 +96.1021 13.7382 6.55316 +95.867 14.4797 6.90685 +95.6248 15.2185 7.25928 +95.4741 15.9712 7.6183 +96.1995 16.8775 8.05064 +96.0326 17.6346 8.41177 +95.9563 18.409 8.78116 +95.7746 19.1641 9.14135 +95.5857 19.9178 9.50084 +95.3895 20.6699 9.8596 +96.1563 21.6388 10.3218 +95.9434 22.3953 10.6826 +95.6267 23.1268 11.0316 +96.363 24.1202 11.5054 +96.03 24.8535 11.8552 +95.7861 25.6089 12.2155 +96.2043 26.5471 12.6631 +96.23 27.3852 13.0628 +95.8665 28.1142 13.4106 +96.4445 29.126 13.8932 +96.1592 29.8845 14.255 +96.4322 30.8215 14.702 +96.1306 31.5799 15.0637 +96.8519 32.6835 15.5901 +96.1588 33.3158 15.8917 +96.8565 34.4358 16.426 +96.7053 35.265 16.8215 +96.3606 36.0253 17.1842 +96.0087 36.7829 17.5456 +96.5664 37.8976 18.0773 +96.1963 38.6568 18.4394 +96.0009 39.4878 18.8358 +96.3405 40.5476 19.3413 +96.1253 41.3825 19.7396 +96.5305 42.4942 20.2699 +96.116 43.2529 20.6318 +96.3178 44.2952 21.1289 +95.8859 45.0521 21.49 +96.153 46.1446 22.0111 +96.582 47.3308 22.5769 +96.0332 48.046 22.9181 +96.3484 49.2006 23.4688 +95.6092 49.8222 23.7653 +95.9855 51.0314 24.3422 +96.0885 52.1109 24.8571 +95.6662 52.9129 25.2396 +95.8294 54.047 25.7806 +95.8936 55.1392 26.3016 +96.2794 56.4332 26.9188 +95.4799 57.0399 27.2082 +95.6709 58.244 27.7826 +95.9283 59.5065 28.3848 +96.0046 60.674 28.9417 +95.4143 61.4278 29.3013 +95.464 62.6015 29.8611 +95.4982 63.7804 30.4235 +95.5967 65.0191 31.0143 +94.9644 65.7695 31.3723 +94.8765 66.904 31.9134 +94.8521 68.0982 32.4831 +94.8118 69.2971 33.055 +94.9098 70.6153 33.6838 +95.4491 72.2884 34.4818 +95.507 73.6237 35.1188 +95.3953 74.8469 35.7022 +95.2672 76.0739 36.2875 +94.4537 76.7609 36.6152 +95.1825 78.7215 37.5504 +95.6611 80.5146 38.4057 +94.879 81.265 38.7637 +95.3125 83.075 39.6271 +95.0763 84.3287 40.2251 +94.8937 85.6487 40.8547 +95.3938 87.6161 41.7932 +95.0987 88.8835 42.3977 +94.8553 90.2184 43.0345 +95.2752 92.2161 43.9874 +95.0555 93.6287 44.6612 +94.5482 94.7758 45.2084 +94.7547 96.6667 46.1104 +93.6852 97.2733 46.3997 +91.4423 96.6343 46.0949 +89.926 96.729 46.1401 +88.3513 96.7371 46.1439 +87.979 98.0603 46.7751 +88.7706 100.727 48.0473 +88.5321 102.276 48.7861 +88.2095 103.757 49.4926 +88.1057 105.529 50.3377 +88.5691 108.033 51.532 +89.2258 110.844 52.8731 +88.6733 112.204 53.5215 +88.1013 113.564 54.1703 +88.1328 115.741 55.2088 +87.29 116.805 55.7164 +88.0891 120.122 57.2986 +87.9592 122.249 58.3133 +88.0634 124.765 59.5132 +91.835 132.649 63.2739 +93.057 137.061 65.3784 +93.2219 140.032 66.7957 +93.7423 143.639 68.5161 +93.45 146.091 69.6858 +93.2158 148.707 70.9335 +93.3259 151.961 72.486 +93.1891 154.912 73.8934 +92.5798 157.154 74.9629 +92.7191 160.76 76.6828 +92.8865 164.54 78.4859 +92.8538 168.092 80.1805 +92.321 170.845 81.4936 +92.7321 175.476 83.7026 +92.5111 179.063 85.4136 +91.4399 181.098 86.3844 +90.5396 183.543 87.5507 +88.2432 183.173 87.3742 +89.3602 190.009 90.6351 +91.9971 200.463 95.6215 +91.1418 203.607 97.121 +88.4001 202.553 96.6186 +86.2233 202.736 96.7056 +84.0848 202.985 96.8244 +81.8454 202.96 96.8128 +79.7798 203.342 96.9949 +77.4852 203.109 96.8838 +75.2329 202.942 96.8042 +73.1752 203.269 96.96 +71.0568 203.407 97.0259 +68.6781 202.751 96.7129 +66.5448 202.764 96.7193 +64.4991 203.021 96.8416 +62.32 202.826 96.7486 +60.0978 202.437 96.5631 +58.1382 202.903 96.7852 +56.1017 203.09 96.8748 +54.0193 203.085 96.8722 +51.8287 202.624 96.6522 +49.6512 202.143 96.4227 +47.7781 202.879 96.774 +45.7749 203.071 96.8657 +43.6762 202.803 96.7379 +41.5679 202.43 96.5596 +39.6091 202.75 96.7124 +37.4658 202.075 96.3904 +35.5888 202.808 96.74 +33.538 202.545 96.6147 +31.5227 202.444 96.5665 +29.5772 202.774 96.7236 +27.5059 202.193 96.4468 +25.5273 202.222 96.4606 +23.5607 202.326 96.5101 +21.6132 202.594 96.638 +19.6188 202.396 96.5437 +17.5905 201.734 96.2277 +15.6394 201.865 96.2901 +13.6871 201.98 96.3452 +11.739 202.171 96.436 +9.74457 201.443 96.089 +7.82796 202.324 96.5092 +5.85578 201.837 96.2768 +3.91108 202.236 96.4675 +1.95562 202.259 96.4782 +1.77636e-14 201.545 96.1377 +-1.95125 201.808 96.263 +-3.90236 201.785 96.2522 +-5.85317 201.746 96.2337 +-7.82447 202.234 96.4662 +-9.74893 201.533 96.1321 +-11.7494 202.35 96.5217 +-13.6993 202.16 96.4309 +-15.6394 201.865 96.2901 +-17.5984 201.824 96.2707 +-19.5316 201.497 96.1149 +-21.5078 201.606 96.1665 +-23.5398 202.146 96.4244 +-25.4934 201.953 96.3323 +-27.4328 201.655 96.1902 +-29.3814 201.431 96.0834 +-31.3 201.014 95.8841 +-33.2571 200.849 95.8058 +-35.3385 201.382 96.0598 +-37.3008 201.185 95.9659 +-39.2445 200.884 95.8221 +-41.167 200.477 95.6284 +-43.2946 201.032 95.8927 +-45.2366 200.683 95.7265 +-47.2167 200.495 95.637 +-49.3915 201.086 95.9185 +-51.3338 200.689 95.7291 +-53.529 201.242 95.993 +-55.6904 201.601 96.1644 +-57.6625 201.242 95.993 +-59.7613 201.303 96.0223 +-61.6252 200.564 95.6697 +-63.7549 200.679 95.7244 +-65.92 200.861 95.8113 +-68.0641 200.939 95.8484 +-70.0945 200.652 95.7119 +-72.5572 201.552 96.1411 +-74.5349 201.059 95.9056 +-76.769 201.232 95.9883 +-79.0788 201.556 96.1429 +-81.093 201.095 95.9229 +-83.2443 200.956 95.8566 +-85.5066 201.051 95.9018 +-87.7037 200.958 95.8574 +-90.018 201.096 95.9233 +-92.1502 200.796 95.7803 +-94.3616 200.644 95.708 +-96.9359 201.217 95.9814 +-99.2031 201.106 95.9285 +-101.268 200.564 95.6697 +-103.584 200.495 95.6366 +-105.863 200.323 95.5548 +-108.278 200.374 95.5789 +-110.479 199.998 95.3998 +-113.134 200.407 95.5948 +-115.899 200.949 95.8535 +-118.26 200.745 95.7562 +-120.339 200.045 95.4221 +-122.948 200.195 95.4936 +-125.716 200.554 95.665 +-128.1 200.26 95.5246 +-130.894 200.565 95.6701 +-135.558 203.626 97.1305 +-139.194 205.014 97.7922 +-142.124 205.287 97.9227 +-143.513 203.323 96.9858 +-143.022 198.779 94.8181 +-142.621 194.483 92.7692 +-144.831 193.802 92.4442 +-147.322 193.472 92.2866 +-150.621 194.152 92.6112 +-524.433 663.599 316.539 +-525.891 653.309 311.631 +-528.56 644.716 307.532 +-529.718 634.474 302.646 +-532.727 626.626 298.903 +-534.948 617.996 294.786 +-537.292 609.662 290.811 +-539.202 600.988 286.673 +-541.684 593.096 282.909 +-543.605 584.728 278.917 +-546.186 577.198 275.325 +-554.632 575.871 274.692 +-564.486 575.875 274.694 +-575.118 576.505 274.995 +-578.035 569.357 271.585 +-579.63 561.021 267.609 +-582.83 554.338 264.421 +-581.221 543.235 259.125 +-582.736 535.224 255.303 +-584.141 527.231 251.491 +-589.216 522.61 249.287 +-590.65 514.815 245.568 +-591.833 506.912 241.799 +-586.546 493.675 235.485 +-576.477 476.78 227.426 +-578.241 469.927 224.157 +-579.767 462.962 220.834 +-581.504 456.246 217.631 +-584.068 450.242 214.767 +-585.028 443.072 211.347 +-587.746 437.299 208.593 +-589.465 430.835 205.51 +-591.574 424.715 202.59 +-593.057 418.206 199.485 +-595.65 412.529 196.778 +-597.699 406.518 193.911 +-599.999 400.722 191.146 +-601.666 394.548 188.201 +-603.992 388.851 185.483 +-605.681 382.784 182.589 +-608.123 377.232 179.941 +-608.762 370.611 176.783 +-611.739 365.454 174.323 +-613.236 359.442 171.455 +-615.844 354.113 168.913 +-616.87 347.909 165.954 +-620.21 343.037 163.63 +-621.018 336.792 160.651 +-623.733 331.613 158.18 +-625.357 325.875 155.443 +-380.694 194.402 92.7305 +-380.809 190.521 90.8792 +-381.143 186.783 89.0959 +-382.14 183.392 87.4784 +-378.399 177.791 84.807 +-379.925 174.722 83.3432 +-383.479 172.569 82.3159 +-381.268 167.84 80.0604 +-381.974 164.442 78.4394 +-382.734 161.084 76.8378 +-136.312 56.0689 26.745 +-135.022 54.259 25.8817 +-381.68 149.791 71.4506 +-381.641 146.215 69.7448 +-381.008 142.444 67.9461 +-382.371 139.437 66.512 +-633.056 225.073 107.36 +-380.621 131.873 62.9037 +-382.631 129.122 61.5918 +-381.233 125.24 59.7397 +-381.581 121.961 58.1756 +-377.451 117.305 55.9549 +-378.097 114.184 54.4661 +-377.95 110.839 52.8706 +-375.383 106.827 50.9569 +-379.366 104.684 49.9348 +-377.775 101 48.1773 +-376.142 97.3491 46.4358 +-377.55 94.5033 45.0784 +-377.967 91.4092 43.6025 +-380.676 88.858 42.3856 +-380.647 85.6598 40.86 +-381.169 82.5952 39.3982 +-381.271 79.4477 37.8968 +-381.341 76.3049 36.3977 +-381.478 73.1859 34.9099 +-381.289 70.0165 33.3981 +-381.166 66.8728 31.8986 +-380.815 63.7036 30.3868 +-381.121 60.6547 28.9325 +-381.397 57.6059 27.4782 +-380.458 54.3879 25.9432 +-380.672 51.3491 24.4937 +-381.649 48.4117 23.0925 +-381.211 45.2978 21.6072 +-381.237 42.2496 20.1532 +-380.935 39.1737 18.686 +-381.598 36.2001 17.2676 +-380.938 33.1067 15.792 +-381.941 30.16 14.3864 +-381.52 27.101 12.9273 +-379.972 23.9816 11.4393 +-380.788 21.021 10.0271 +-379.879 17.969 8.57128 +-381.437 15.0314 7.17003 +-380.068 11.9793 5.71414 +-380.17 8.98522 4.28598 +-147.078 2.31714 1.10528 +-145.094 1.14286 0.545148 +96.4 3.55271e-15 -1.7053e-13 +96.5963 0.764099 0.356052 +96.5853 1.52814 0.712076 +96.367 2.28732 1.06584 +96.5412 3.05581 1.42394 +96.5081 3.81933 1.77972 +96.4676 4.58256 2.13536 +96.5196 5.35097 2.49342 +96.4644 6.11423 2.84909 +96.4019 6.87702 3.20453 +96.332 7.6393 3.55973 +96.2548 8.40098 3.91466 +96.1703 9.16203 4.26929 +96.0784 9.92243 4.62362 +96.8725 10.7814 5.02385 +96.765 11.5473 5.38076 +96.3531 12.2743 5.71954 +96.429 13.0628 6.08696 +96.1021 13.7968 6.42896 +95.9656 14.5563 6.78291 +95.7233 15.2991 7.12904 +96.359 16.1879 7.54317 +95.316 16.7938 7.82553 +96.1306 17.7278 8.26074 +95.9563 18.4875 8.61473 +95.7746 19.2458 8.96809 +95.5857 20.0027 9.32077 +96.3619 20.9695 9.77131 +96.1563 21.731 10.1261 +95.9434 22.4908 10.4802 +95.6267 23.2254 10.8225 +96.363 24.2231 11.2874 +96.03 24.9594 11.6305 +96.649 25.9497 12.0919 +96.3955 26.7133 12.4478 +96.1347 27.4747 12.8025 +95.8665 28.2341 13.1564 +96.5393 29.2789 13.6433 +96.1592 30.0119 13.9848 +96.4322 30.9529 14.4233 +96.2245 31.7456 14.7927 +96.8519 32.8228 15.2947 +96.5322 33.5877 15.6511 +96.8565 34.5826 16.1147 +96.7053 35.4153 16.5027 +97.0074 36.4217 16.9716 +96.8371 37.2584 17.3615 +96.5664 38.0592 17.7347 +96.1963 38.8215 18.0899 +96.9109 40.032 18.654 +96.5218 40.797 19.0104 +96.9377 41.9102 19.5291 +96.3507 42.5959 19.8487 +96.116 43.4372 20.2407 +96.3178 44.484 20.7285 +95.8859 45.2441 21.0827 +96.2413 46.3838 21.6138 +96.4941 47.4893 22.1289 +96.0332 48.2508 22.4837 +96.3484 49.4103 23.024 +96.6484 50.5784 23.5683 +95.9855 51.249 23.8808 +96.0885 52.333 24.386 +95.6662 53.1384 24.7612 +95.8294 54.2774 25.292 +96.0623 55.4716 25.8485 +96.2794 56.6737 26.4086 +95.4799 57.283 26.6925 +95.6709 58.4923 27.256 +95.8459 59.7088 27.8229 +96.0046 60.9326 28.3932 +95.4143 61.6897 28.7459 +95.3831 62.815 29.2703 +95.4982 64.0523 29.8468 +95.4369 65.1871 30.3756 +94.9644 66.0499 30.7777 +95.5069 67.6356 31.5166 +95.5565 68.8963 32.104 +95.5112 70.1059 32.6677 +95.5271 71.3776 33.2603 +95.5257 72.6549 33.8554 +95.4309 73.8786 34.4257 +95.3953 75.1659 35.0255 +95.2672 76.3981 35.5997 +95.1969 77.6946 36.2038 +95.1088 78.9957 36.8101 +95.0028 80.3014 37.4186 +94.879 81.6114 38.029 +95.3125 83.4292 38.876 +95.1476 84.7517 39.4923 +94.9644 86.0779 40.1103 +95.3237 87.9249 40.9709 +95.0987 89.2623 41.5941 +94.8553 90.6029 42.2188 +94.5932 91.9466 42.8449 +94.988 93.9607 43.7834 +94.682 95.3149 44.4145 +94.9535 97.2818 45.331 +94.2101 98.2345 45.7749 +90.8578 96.4262 44.9323 +89.7974 97.0017 45.2005 +88.6693 97.4985 45.432 +88.5454 99.1119 46.1838 +88.7706 101.157 47.1367 +88.4706 102.641 47.8281 +88.5139 104.559 48.7222 +88.2261 106.124 49.4512 +88.3312 108.202 50.4197 +89.2846 111.39 51.9052 +88.2668 112.166 52.2668 +88.7323 114.865 53.5242 +88.3594 116.533 54.3018 +87.7374 117.904 54.9404 +88.0891 120.634 56.2126 +87.9047 122.694 57.1726 +88.0097 125.221 58.3498 +92.5239 134.213 62.5401 +93.5272 138.341 64.4636 +93.1704 140.552 65.4938 +93.2348 143.47 66.8534 +93.3 146.478 68.2552 +92.7726 148.631 69.2584 +92.7441 151.658 70.6691 +92.7597 154.855 72.1588 +92.8615 158.304 73.7659 +93.0885 162.087 75.5289 +92.7957 165.08 76.9231 +92.8538 168.809 78.6608 +92.4525 171.818 80.063 +92.3446 175.488 81.7732 +92.6802 180.154 83.9476 +91.0666 181.128 84.4012 +90.2955 183.829 85.6599 +88.3628 184.204 85.8347 +90.1807 192.572 89.7341 +92.1119 201.568 93.9261 +90.8796 203.886 95.0061 +88.2168 202.995 94.5909 +86.1875 203.515 94.8334 +83.9447 203.51 94.8308 +81.8454 203.825 94.9778 +79.5796 203.697 94.9178 +77.5178 204.061 95.0876 +75.2012 203.721 94.9293 +73.1752 204.135 95.1223 +70.8162 203.583 94.8646 +68.7658 203.875 95.0011 +66.5448 203.629 94.8862 +64.2786 203.189 94.6813 +62.2665 203.515 94.8334 +60.1495 203.475 94.8144 +57.9379 203.065 94.6235 +55.9323 203.34 94.7514 +53.7858 203.07 94.6256 +51.6263 202.692 94.4499 +49.6512 203.004 94.5952 +47.591 202.946 94.5681 +45.6154 203.226 94.6986 +43.5045 202.867 94.5314 +41.5861 203.382 94.7713 +39.4529 202.81 94.5048 +37.5483 203.383 94.7717 +35.5732 203.583 94.8646 +33.4936 203.139 94.6581 +31.5227 203.307 94.7362 +29.4598 202.829 94.5136 +27.4815 202.875 94.5348 +25.5273 203.084 94.6323 +23.5503 203.099 94.6391 +21.527 202.645 94.4279 +19.549 202.537 94.3772 +17.5278 201.87 94.0668 +15.6464 202.816 94.5073 +13.6321 202.027 94.1398 +11.7337 202.942 94.566 +9.74021 202.211 94.2256 +7.79306 202.281 94.2581 +5.83746 202.063 94.1567 +3.89538 202.283 94.2589 +1.94864 202.396 94.3117 +1.86517e-14 202.404 94.3155 +-1.95125 202.668 94.4385 +-3.89887 202.464 94.3434 +-5.84793 202.425 94.3253 +-7.80353 202.553 94.3848 +-9.74893 202.392 94.3101 +-11.7023 202.399 94.313 +-13.6566 202.389 94.3084 +-15.6324 202.634 94.4228 +-17.5356 201.961 94.109 +-19.5403 202.447 94.3354 +-21.4982 202.374 94.3016 +-23.5398 203.008 94.5968 +-25.3915 202.004 94.1289 +-27.3231 201.705 93.9899 +-29.264 201.481 93.8856 +-31.3139 201.96 94.1086 +-33.2571 201.705 93.9899 +-35.1978 201.434 93.8636 +-37.1687 201.327 93.8138 +-39.2445 201.74 94.0059 +-41.0212 200.619 93.4839 +-43.161 201.266 93.785 +-45.2366 201.539 93.9122 +-47.2375 201.439 93.8657 +-49.1967 201.146 93.7293 +-51.3113 201.456 93.8737 +-53.2956 201.219 93.7631 +-55.4243 201.493 93.8911 +-57.4121 201.222 93.7648 +-59.4507 201.111 93.7128 +-61.545 201.157 93.7344 +-63.81 201.708 93.9912 +-65.9484 201.804 94.0359 +-68.1518 202.055 94.1529 +-70.0945 201.508 93.8978 +-72.2482 201.549 93.9172 +-74.3128 201.314 93.8074 +-76.5411 201.49 93.8894 +-78.745 201.56 93.9223 +-80.9904 201.696 93.9857 +-83.3143 201.982 94.1187 +-85.5066 201.907 94.0841 +-87.4472 201.224 93.7656 +-89.7557 201.365 93.8311 +-91.7675 200.814 93.5747 +-94.4006 201.583 93.9329 +-96.577 201.327 93.8138 +-99.1217 201.798 94.033 +-100.936 200.759 93.5489 +-103.626 201.432 93.8623 +-105.863 201.177 93.7437 +-108.278 201.228 93.7673 +-110.434 200.769 93.5536 +-113.18 201.342 93.8205 +-115.114 200.439 93.3998 +-118.166 201.442 93.867 +-120.339 200.898 93.6136 +-122.948 201.048 93.6837 +-125.322 200.778 93.5578 +-128.05 201.035 93.6773 +-130.437 200.717 93.5295 +-134.991 203.641 94.8917 +-138.723 205.192 95.6148 +-141.753 205.625 95.8162 +-143.029 203.502 94.827 +-142.913 199.474 92.95 +-142.786 195.539 91.1165 +-144.999 194.853 90.7968 +-147.096 193.998 90.3985 +-150.334 194.609 90.6832 +-525.246 667.46 311.02 +-526.949 657.414 306.339 +-529.809 648.994 302.416 +-531.162 638.916 297.719 +-533.579 630.303 293.706 +-536.118 621.987 289.831 +-538.413 613.538 285.894 +-540.334 604.818 281.831 +-542.956 597.024 278.199 +-543.991 587.637 273.825 +-546.965 580.486 270.493 +-553.911 577.574 269.136 +-563.095 576.905 268.824 +-575.653 579.501 270.033 +-577.697 571.451 266.282 +-582.154 565.865 263.68 +-584.964 558.74 260.359 +-582.679 546.919 254.851 +-584.068 538.734 251.037 +-585.131 530.376 247.143 +-594.423 529.476 246.723 +-596.836 522.424 243.437 +-589.874 507.388 236.431 +-582.377 492.256 229.379 +-577.214 479.425 223.401 +-578.687 472.293 220.077 +-581.19 466.076 217.18 +-581.806 458.429 213.617 +-585.208 453.044 211.108 +-585.794 445.543 207.612 +-589.058 440.143 205.096 +-591.097 433.869 202.173 +-593.139 427.654 199.277 +-594.397 420.936 196.146 +-597.078 415.281 193.511 +-599.136 409.234 190.693 +-600.963 403.077 187.824 +-602.394 396.71 184.857 +-605.458 391.456 182.409 +-606.173 384.728 179.274 +-609.112 379.457 176.818 +-610.006 372.951 173.786 +-612.573 367.512 171.252 +-614.494 361.714 168.55 +-616.435 355.963 165.87 +-618.481 350.305 163.234 +-620.21 344.5 160.529 +-622.132 338.834 157.889 +-624.509 333.44 155.375 +-626.656 327.944 152.814 +-382.26 196.034 91.3471 +-380.984 191.421 89.1977 +-381.407 187.708 87.4676 +-382.14 184.173 85.8204 +-377.423 178.089 82.985 +-380.371 175.673 81.8594 +-382.405 172.819 80.5293 +-382.347 169.032 78.7651 +-382.606 165.417 77.0803 +-381.102 161.081 75.0601 +-135.857 56.12 26.1506 +-137.215 55.375 25.8034 +-382.597 150.791 70.2649 +-382.102 147.015 68.5053 +-382.579 143.64 66.9328 +-382 139.895 65.188 +-639.29 228.258 106.363 +-382.768 133.182 62.0595 +-381.226 129.196 60.2023 +-382.173 126.083 58.7519 +-381.204 122.359 57.0163 +-376.978 117.657 54.8255 +-377.243 114.412 53.3134 +-377.665 111.228 51.8296 +-377.195 107.8 50.2322 +-377.836 104.706 48.7907 +-376.529 101.096 47.1084 +-378.353 98.3387 45.8235 +-378.225 95.0756 44.303 +-378.45 91.9158 42.8306 +-380.966 89.3049 41.6139 +-380.841 86.0687 40.106 +-381.655 83.0531 38.7008 +-380.589 79.6437 37.112 +-381.732 76.7087 35.7444 +-380.402 73.2905 34.1516 +-381.093 70.2788 32.7482 +-381.166 67.1579 31.294 +-381.208 64.0412 29.8417 +-381.121 60.9132 28.3841 +-380.509 57.7168 26.8947 +-380.655 54.6481 25.4647 +-380.969 51.6083 24.0482 +-380.758 48.5046 22.602 +-381.31 45.5028 21.2032 +-380.84 42.3855 19.7506 +-381.234 39.3715 18.3462 +-380.703 36.2692 16.9006 +-380.64 33.2217 15.4805 +-380.646 30.1859 14.0659 +-381.022 27.181 12.6657 +-380.87 24.1408 11.249 +-380.19 21.0774 9.82157 +-379.779 18.0409 8.40663 +-380.238 15.048 7.012 +-380.668 12.0493 5.61467 +-380.57 9.03301 4.20917 +-146.578 2.3191 1.08065 +-146.394 1.15801 0.539605 +96.6 3.55271e-15 -1.7053e-13 +96.5963 0.767279 0.349145 +96.6853 1.53609 0.698988 +96.367 2.29684 1.04516 +96.5412 3.06853 1.39632 +96.5081 3.83523 1.7452 +96.4676 4.60163 2.09394 +96.4198 5.36769 2.44253 +96.3647 6.13334 2.79093 +96.3022 6.89851 3.13912 +96.332 7.67109 3.49068 +96.2548 8.43595 3.83872 +96.1703 9.20017 4.18648 +96.0784 9.96373 4.53393 +96.8725 10.8262 4.92641 +96.765 11.5953 5.27639 +96.5511 12.3508 5.62015 +95.5389 12.9961 5.91381 +96.1021 13.8542 6.30425 +95.9656 14.6169 6.65134 +95.7233 15.3628 6.99075 +96.359 16.2553 7.39686 +96.0031 16.9853 7.72903 +96.1306 17.8016 8.1005 +95.8585 18.5455 8.43901 +95.677 19.3063 8.78518 +95.5857 20.0859 9.13997 +95.3895 20.8444 9.4851 +95.186 21.6012 9.82949 +95.8466 22.5616 10.2665 +95.7232 23.3456 10.6233 +95.4958 24.105 10.9688 +96.03 25.0633 11.4049 +95.7861 25.8251 11.7515 +96.3955 26.8245 12.2063 +96.1347 27.589 12.5542 +95.8665 28.3516 12.9012 +96.4445 29.3719 13.3655 +96.1592 30.1369 13.7136 +96.4322 31.0817 14.1435 +96.1306 31.8466 14.4916 +95.8216 32.6089 14.8384 +96.5322 33.7275 15.3475 +96.8565 34.7265 15.8021 +96.7053 35.5627 16.1826 +96.3606 36.3295 16.5315 +96.8371 37.4135 17.0248 +96.5664 38.2176 17.3907 +96.379 39.0571 17.7727 +96.0009 39.8212 18.1204 +96.5218 40.9668 18.6417 +96.1253 41.7319 18.9898 +96.5305 42.853 19.5 +96.116 43.618 19.8481 +96.3178 44.6691 20.3264 +95.8859 45.4324 20.6737 +96.2413 46.5769 21.1945 +96.4941 47.687 21.6996 +96.0332 48.4516 22.0476 +96.3484 49.6159 22.5774 +95.6958 50.2883 22.8834 +96.1578 51.5547 23.4596 +96.3456 52.6915 23.9769 +96.3483 53.74 24.4541 +95.8294 54.5033 24.8014 +95.8936 55.6048 25.3026 +95.3568 56.3643 25.6482 +95.5633 57.5717 26.1976 +95.6709 58.7357 26.7273 +95.8459 59.9573 27.2832 +95.2674 60.7163 27.6286 +95.4143 61.9465 28.1883 +95.3831 63.0765 28.7025 +95.4982 64.3189 29.2679 +95.4369 65.4584 29.7864 +94.9644 66.3248 30.1807 +95.5069 67.9172 30.9053 +95.5565 69.1831 31.4813 +95.5112 70.3977 32.034 +95.5271 71.6747 32.6151 +94.8363 72.4307 32.9591 +95.507 74.2453 33.7848 +95.3953 75.4788 34.3461 +95.2672 76.7161 34.9092 +95.1969 78.018 35.5016 +95.1088 79.3246 36.0961 +95.0028 80.6357 36.6927 +94.879 81.9511 37.2913 +95.2406 83.7132 38.0932 +95.1476 85.1045 38.7262 +94.8937 86.3718 39.3029 +95.3938 88.3558 40.2057 +95.1682 89.6994 40.8171 +94.8553 90.9801 41.3999 +94.5932 92.3293 42.0139 +94.8529 94.218 42.8733 +94.682 95.7116 43.5529 +94.4896 97.2098 44.2347 +93.6196 98.0253 44.6058 +90.9227 96.8967 44.0922 +89.6689 97.2662 44.2604 +88.7965 98.0454 44.6149 +88.923 99.9495 45.4814 +88.4593 101.222 46.0604 +88.1012 102.637 46.7044 +88.6965 105.211 47.8757 +88.0455 106.347 48.3926 +88.4501 108.799 49.5084 +89.1082 111.633 50.7978 +88.7314 113.226 51.5226 +89.0764 115.79 52.6893 +87.9062 116.418 52.9751 +87.6255 118.244 53.8059 +88.0339 121.061 55.0878 +87.9592 123.281 56.0984 +88.0634 125.818 57.2527 +93.1598 135.698 61.7486 +93.5272 138.917 63.2132 +93.1704 141.137 64.2234 +93.2348 144.067 65.5566 +93.3 147.088 66.9313 +93.2158 149.962 68.2392 +93.3259 153.244 69.7328 +92.7119 155.42 70.7226 +92.4859 158.32 72.0426 +93.0885 162.762 74.0638 +92.7957 165.767 75.431 +92.943 169.674 77.2091 +92.3648 172.369 78.4355 +92.3446 176.218 80.187 +92.3844 180.327 82.0566 +91.0252 181.799 82.7264 +90.0922 184.178 83.809 +87.9242 184.052 83.7519 +91.6264 196.473 89.4038 +91.9588 202.071 91.951 +90.6173 204.144 92.8945 +87.9236 203.162 92.4476 +86.0083 203.938 92.8004 +83.5945 203.505 92.6037 +81.5718 203.99 92.8245 +79.2457 203.686 92.6861 +77.1922 204.049 92.8514 +74.9474 203.878 92.7735 +72.928 204.293 92.962 +70.3952 203.215 92.4716 +68.5027 203.94 92.8017 +66.2892 203.692 92.6886 +64.2786 204.035 92.8448 +62.0795 203.748 92.7143 +60.1237 204.234 92.9355 +57.8879 203.735 92.7081 +55.6662 203.215 92.4716 +53.5991 203.207 92.4679 +51.6263 203.536 92.6178 +49.5214 203.317 92.518 +47.591 203.791 92.7338 +45.4758 203.448 92.5776 +43.5045 203.712 92.6977 +41.4039 203.334 92.5258 +39.4529 203.654 92.6716 +37.4493 203.691 92.6882 +35.4168 203.532 92.6157 +33.3606 203.175 92.4534 +31.3835 203.251 92.4881 +29.3292 202.772 92.2699 +27.4937 203.809 92.742 +25.4141 203.026 92.3854 +23.4666 203.219 92.4736 +21.5365 203.58 92.6377 +19.4706 202.564 92.1754 +17.4571 201.894 91.8706 +15.5766 202.752 92.2608 +13.6321 202.868 92.3138 +11.6919 203.059 92.4008 +9.70531 202.326 92.0669 +7.80004 203.305 92.5126 +5.83746 202.904 92.3303 +3.87967 202.306 92.0578 +1.94078 202.42 92.11 +1.95399e-14 203.156 92.4447 +-1.94078 202.42 92.11 +-3.90236 203.489 92.5962 +-5.81914 202.267 92.0404 +-7.79655 203.214 92.4712 +-9.71404 202.508 92.1498 +-11.6866 202.968 92.3593 +-13.5955 202.323 92.0657 +-15.5906 202.934 92.3436 +-17.4728 202.075 91.953 +-19.5577 203.471 92.588 +-21.4119 202.402 92.1017 +-23.4353 202.948 92.3502 +-25.3009 202.121 91.9737 +-27.3109 202.455 92.1257 +-29.2509 202.23 92.0234 +-31.1748 201.9 91.8731 +-33.2423 202.455 92.1257 +-35.1978 202.273 92.0429 +-37.1357 201.985 91.912 +-39.0882 201.772 91.8151 +-41.003 201.364 91.6296 +-43.1038 201.836 91.8441 +-45.117 201.842 91.847 +-47.2375 202.277 92.045 +-49.1751 201.894 91.8706 +-51.0864 201.407 91.649 +-53.0855 201.26 91.5819 +-55.4727 202.509 92.1502 +-57.1618 201.179 91.5451 +-59.606 202.476 92.1353 +-61.4916 201.819 91.8362 +-63.7549 202.373 92.0885 +-65.6643 201.771 91.8147 +-67.8887 202.113 91.97 +-69.884 201.739 91.8002 +-72.0319 201.782 91.8197 +-74.2176 201.893 91.8702 +-76.5736 202.415 92.1075 +-78.4112 201.541 91.7099 +-80.9562 202.45 92.1237 +-82.9291 201.885 91.8665 +-85.2199 202.068 91.9497 +-87.4472 202.062 91.9468 +-89.5684 201.781 91.8192 +-91.7675 201.65 91.7596 +-94.049 201.668 91.7679 +-96.2979 201.581 91.7281 +-98.837 202.056 91.9443 +-100.895 201.512 91.6967 +-103.33 201.692 91.7787 +-105.475 201.274 91.5886 +-108.146 201.82 91.8366 +-110.032 200.872 91.4055 +-112.726 201.369 91.6316 +-115.206 201.434 91.6614 +-117.743 201.556 91.7169 +-119.815 200.854 91.3972 +-122.56 201.248 91.5765 +-125.273 201.534 91.7066 +-127.6 201.162 91.5376 +-129.981 200.847 91.3939 +-134.528 203.786 92.7313 +-138.253 205.348 93.4424 +-141.17 205.631 93.5712 +-143.513 205.04 93.302 +-142.913 200.304 91.147 +-142.786 196.353 89.3491 +-144.551 195.06 88.761 +-147.322 195.105 88.7812 +-150.048 195.046 88.7543 +-526.872 672.313 305.932 +-528.066 661.549 301.034 +-531.058 653.232 297.249 +-532.606 643.319 292.738 +-535.345 635.021 288.962 +-536.487 625.007 284.405 +-539.782 617.659 281.062 +-541.09 608.184 276.75 +-544.419 601.123 273.537 +-545.148 591.338 269.084 +-548.329 584.356 265.907 +-552.533 578.535 263.259 +-561.769 577.942 262.989 +-575.051 581.305 264.519 +-578.846 574.97 261.636 +-580.449 566.556 257.808 +-581.935 558.16 253.987 +-583.652 550.112 250.325 +-585.189 542.015 246.64 +-588.525 535.673 243.754 +-594.138 531.424 241.821 +-592.592 520.869 237.018 +-582.185 502.859 228.822 +-576.087 488.966 222.501 +-578.542 482.527 219.571 +-579.43 474.868 216.086 +-582.538 469.102 213.462 +-583.541 461.71 210.098 +-586.197 455.699 207.363 +-587.556 448.743 204.197 +-590.216 442.843 201.513 +-591.486 435.962 198.382 +-594.313 430.284 195.798 +-595.421 423.418 192.673 +-598.188 417.785 190.11 +-599.616 411.266 187.144 +-602.089 405.512 184.526 +-603.608 399.164 181.637 +-606.19 393.56 179.087 +-607.155 386.956 176.082 +-609.853 381.5 173.599 +-612.244 375.878 171.041 +-614.324 370.096 168.41 +-615.249 363.666 165.484 +-617.953 358.325 163.053 +-620.093 352.68 160.485 +-622.598 347.265 158.021 +-623.503 340.995 155.167 +-625.37 335.29 152.571 +-627.695 329.855 150.098 +-381.216 196.313 89.3309 +-381.597 192.526 87.6079 +-382.637 189.098 86.0477 +-381.787 184.77 84.0783 +-377.867 179.04 81.471 +-379.391 175.949 80.0644 +-381.868 173.295 78.8567 +-381.808 169.497 77.1283 +-381.703 165.713 75.4066 +-382.915 162.521 73.9541 +-135.038 56.0139 25.4888 +-136.392 55.2724 25.1513 +-381.13 150.838 68.6377 +-382.378 147.734 67.2253 +-381.193 143.715 65.3967 +-383.112 140.886 64.1095 +-643.57 230.743 104.998 +-379.594 132.626 60.3508 +-382.256 130.085 59.1944 +-382.173 126.608 57.6122 +-382.147 123.172 56.0487 +-376.978 118.147 53.762 +-376.579 114.686 52.1873 +-377.189 111.55 50.7601 +-376.337 108.003 49.146 +-377.262 104.983 47.7718 +-377.2 101.698 46.277 +-377.487 98.5223 44.8319 +-377.069 95.1792 43.3107 +-380.865 92.8873 42.2678 +-381.837 89.8817 40.9001 +-380.841 86.427 39.328 +-380.78 83.2075 37.863 +-381.271 80.1184 36.4574 +-381.341 76.9491 35.0152 +-382.162 73.9362 33.6442 +-380.995 70.5532 32.1048 +-381.068 67.4201 30.6791 +-380.52 64.1916 29.21 +-380.825 61.1195 27.812 +-381.002 58.0322 26.4072 +-381.05 54.9325 24.9967 +-380.672 51.7827 23.5634 +-381.154 48.7571 22.1866 +-380.417 45.5852 20.7433 +-381.435 42.6285 19.3978 +-380.637 39.4735 17.9622 +-380.106 36.363 16.5468 +-379.744 33.2815 15.1445 +-380.447 30.2957 13.7859 +-380.623 27.2655 12.407 +-380.571 24.2222 11.0222 +-380.788 21.1985 9.64622 +-379.479 18.1017 8.23706 +-381.137 15.1464 6.89226 +-380.668 12.0994 5.50576 +-379.97 9.05632 4.12102 +-146.178 2.3224 1.05679 +-145.594 1.15648 0.526247 +95.7 0 -1.7053e-13 +96.5963 0.770398 0.342209 +96.5853 1.54074 0.684392 +96.5669 2.31096 1.02652 +96.5412 3.08101 1.36858 +96.5081 3.85082 1.71052 +96.4676 4.62033 2.05234 +96.5196 5.39508 2.39648 +96.4644 6.16463 2.73832 +96.4019 6.93371 3.07994 +96.332 7.70227 3.42133 +96.2548 8.47024 3.76246 +96.0708 9.22796 4.09904 +96.0784 10.0042 4.44386 +96.8725 10.8702 4.82854 +96.6659 11.6305 5.16625 +96.5511 12.401 5.5085 +96.429 13.1705 5.85031 +96.1021 13.9105 6.17901 +95.9656 14.6763 6.5192 +95.7233 15.4253 6.85187 +95.4741 16.1715 7.18333 +96.1995 17.0892 7.59099 +96.1306 17.874 7.93958 +95.8585 18.6209 8.27136 +95.7746 19.4045 8.61942 +95.5857 20.1676 8.95839 +95.3895 20.9291 9.29667 +96.2533 21.9323 9.74228 +95.9434 22.6762 10.0727 +95.7232 23.4405 10.4122 +96.363 24.4227 10.8485 +96.03 25.1652 11.1783 +95.7861 25.93 11.5181 +96.2043 26.88 11.9401 +96.1347 27.7012 12.3048 +95.9616 28.4951 12.6575 +95.591 29.2303 12.984 +95.9701 30.1998 13.4147 +96.715 31.2996 13.9032 +96.1306 31.976 14.2037 +96.8519 33.0934 14.7 +96.1588 33.7336 14.9844 +95.833 34.4992 15.3245 +96.7053 35.7073 15.8611 +96.1759 36.4071 16.172 +96.0087 37.2442 16.5438 +96.5664 38.3729 17.0452 +96.379 39.2159 17.4196 +96.0009 39.983 17.7604 +96.5218 41.1333 18.2713 +96.1253 41.9015 18.6126 +96.5305 43.0272 19.1126 +96.116 43.7953 19.4538 +96.3178 44.8507 19.9226 +95.8859 45.6171 20.263 +96.2413 46.7662 20.7735 +96.4941 47.8808 21.2686 +96.0332 48.6486 21.6096 +96.1743 49.7276 22.0889 +96.4752 50.904 22.6114 +96.1578 51.7642 22.9936 +96.0885 52.7645 23.4379 +95.6662 53.5765 23.7986 +95.6598 54.628 24.2656 +95.8936 55.8308 24.7999 +96.1116 57.0413 25.3376 +95.5633 57.8057 25.6772 +95.6709 58.9745 26.1963 +95.8459 60.201 26.7412 +96.0046 61.435 27.2893 +95.4143 62.1982 27.6283 +95.3831 63.3328 28.1323 +95.3374 64.4716 28.6382 +95.5967 65.8345 29.2436 +95.6784 67.0951 29.8035 +95.5069 68.1932 30.2913 +95.4782 69.4074 30.8306 +95.589 70.7413 31.4232 +94.9098 71.501 31.7606 +94.8363 72.7251 32.3044 +95.4309 74.4877 33.0873 +95.3953 75.7856 33.6638 +95.2672 77.0279 34.2157 +95.1969 78.3351 34.7963 +95.1825 79.7087 35.4065 +95.7342 81.5867 36.2407 +94.879 82.2842 36.5505 +95.3125 84.1169 37.3646 +95.0763 85.3863 37.9284 +95.0352 86.8522 38.5796 +94.7629 88.1283 39.1464 +95.1682 90.064 40.0063 +94.8553 91.3498 40.5774 +94.5932 92.7046 41.1792 +94.8529 94.6009 42.0216 +95.3511 96.7797 42.9893 +94.9535 98.0838 43.5686 +93.3572 98.1478 43.597 +90.8578 97.2211 43.1854 +89.7974 97.8014 43.4432 +88.7965 98.4439 43.7286 +88.923 100.356 44.5778 +88.4593 101.633 45.1453 +88.84 103.919 46.1606 +88.2704 105.131 46.6989 +88.2863 107.072 47.5612 +88.0933 108.8 48.3288 +88.7556 111.643 49.5917 +89.196 114.281 50.7633 +88.6749 115.737 51.41 +88.0762 117.117 52.0234 +88.017 119.255 52.9729 +88.3651 122.01 54.1964 +87.8503 123.63 54.9162 +88.3858 126.792 56.3207 +93.3188 136.482 60.625 +93.2137 139.013 61.7495 +93.5824 142.336 63.2256 +93.2348 144.652 64.2542 +93.2 147.527 65.5314 +93.1173 150.413 66.8129 +93.1319 153.547 68.2054 +92.8074 156.212 69.3891 +93.0023 159.851 71.0056 +92.6729 162.694 72.2685 +92.8865 166.603 74.0048 +92.943 170.364 75.6752 +92.4525 173.234 76.9503 +92.0002 176.274 78.3005 +92.173 180.646 80.2426 +90.4446 181.374 80.5661 +90.0922 184.927 82.1441 +87.326 183.543 81.5295 +92.0563 198.197 88.0389 +91.9971 202.977 90.162 +90.505 204.72 90.9361 +87.8137 203.733 90.4977 +86.0083 204.766 90.9568 +83.4894 204.076 90.6499 +81.2298 203.96 90.5988 +79.2124 204.428 90.8066 +77.1597 204.793 90.9686 +74.6618 203.927 90.5842 +72.5263 203.993 90.6134 +70.305 203.779 90.5184 +68.2688 204.07 90.6475 +65.9484 203.468 90.38 +64.003 203.986 90.6102 +61.8657 203.872 90.5594 +59.8907 204.269 90.736 +57.6124 203.589 90.434 +55.7146 204.218 90.7133 +53.5991 204.033 90.6309 +51.6038 204.274 90.738 +49.3049 203.25 90.2834 +47.3623 203.636 90.4547 +45.2964 203.469 90.3804 +43.3518 203.822 90.5375 +41.2399 203.352 90.3284 +39.3139 203.762 90.5107 +37.2347 203.347 90.3264 +35.276 203.546 90.4149 +33.2276 203.187 90.2554 +31.3835 204.077 90.6508 +29.1987 202.689 90.0341 +27.384 203.821 90.5371 +25.3236 203.124 90.2274 +23.4666 204.045 90.6365 +21.4503 203.588 90.4336 +19.4706 203.387 90.3443 +17.4807 202.988 90.1669 +15.5138 202.755 90.0633 +13.5955 203.145 90.2367 +11.65 203.154 90.2407 +9.66606 202.326 89.873 +7.76514 203.217 90.2688 +5.80866 202.724 90.0495 +3.88142 203.219 90.2696 +1.93293 202.42 89.9148 +2.04281e-14 203.159 90.2428 +-1.93031 202.146 89.793 +-3.88142 203.219 90.2696 +-5.79819 202.358 89.8872 +-7.76863 203.309 90.3094 +-9.67914 202.6 89.9947 +-11.6552 203.246 90.2813 +-13.5894 203.054 90.1961 +-15.5348 203.029 90.1851 +-17.4728 202.897 90.1263 +-19.4096 202.75 90.0613 +-21.3065 202.224 89.8275 +-23.268 202.319 89.8697 +-25.2104 202.216 89.8238 +-27.2378 202.733 90.0536 +-29.1465 202.327 89.8734 +-31.1748 202.72 90.0479 +-32.9763 201.65 89.5726 +-35.0413 202.192 89.8133 +-36.9707 201.905 89.6858 +-38.9319 201.783 89.6314 +-40.8572 201.465 89.4901 +-42.9511 201.938 89.7004 +-44.8977 201.677 89.5847 +-47.0504 202.295 89.8592 +-49.0019 202.001 89.7284 +-50.9064 201.514 89.5121 +-53.0388 201.9 89.6834 +-54.9647 201.469 89.4922 +-57.1117 201.819 89.6477 +-59.3472 202.416 89.9127 +-61.251 201.847 89.6598 +-63.4517 202.229 89.8295 +-65.3803 201.715 89.6014 +-67.6256 202.147 89.7934 +-69.6134 201.774 89.6278 +-72.0319 202.602 89.9956 +-73.9637 202.02 89.737 +-76.1829 202.2 89.8169 +-78.4446 202.447 89.9265 +-80.3747 201.814 89.6452 +-82.5789 201.849 89.6611 +-85.1482 202.719 90.0475 +-87.0074 201.862 89.6667 +-89.4561 202.347 89.8823 +-91.5379 201.964 89.7118 +-93.6973 201.73 89.6083 +-95.939 201.646 89.5709 +-98.1862 201.541 89.5242 +-100.19 200.917 89.247 +-102.823 201.518 89.5141 +-105.088 201.35 89.4394 +-107.357 201.162 89.3558 +-109.675 201.034 89.2989 +-112.272 201.373 89.4496 +-114.698 201.361 89.4443 +-117.368 201.73 89.6083 +-119.337 200.867 89.2247 +-122.56 202.066 89.7573 +-124.829 201.637 89.5669 +-127.55 201.9 89.6838 +-129.524 200.955 89.2636 +-133.343 202.813 90.0889 +-137.731 205.403 91.2398 +-140.694 205.77 91.4026 +-142.975 205.102 91.1058 +-142.859 201.041 89.3022 +-142.896 197.304 87.6419 +-144.104 195.247 86.7285 +-146.246 194.467 86.3818 +-149.589 195.24 86.7252 +-156.499 200.512 89.0671 +-530.241 666.973 296.268 +-532.961 658.238 292.388 +-533.87 647.467 287.604 +-536.745 639.27 283.962 +-538.519 629.923 279.811 +-541.899 622.6 276.558 +-543.103 612.928 272.262 +-546.646 606.035 269.2 +-547.398 596.191 264.827 +-550.602 589.163 261.705 +-551.942 580.266 257.753 +-559.848 578.306 256.883 +-571.571 580.135 257.695 +-581.48 579.935 257.606 +-583.518 571.866 254.022 +-588.199 566.461 251.621 +-588.167 556.622 247.25 +-592.689 551.193 244.839 +-590.293 539.466 239.63 +-591.713 531.406 236.05 +-588.852 519.684 230.842 +-576.455 499.933 222.069 +-576.746 491.515 218.33 +-580.385 486.032 215.895 +-581.437 478.45 212.526 +-583.961 472.159 209.732 +-585.655 465.266 206.67 +-588.63 459.45 204.087 +-589.548 452.094 200.819 +-592.453 446.329 198.258 +-592.885 438.769 194.9 +-596.347 433.512 192.565 +-596.997 426.264 189.345 +-600.41 421.042 187.026 +-601.053 413.927 183.865 +-604.018 408.465 181.44 +-605.468 402.021 178.577 +-608.389 396.593 176.166 +-609.203 389.839 173.166 +-612.161 384.5 170.794 +-613.239 378.019 167.915 +-616.325 372.812 165.602 +-617.094 366.239 162.683 +-620.314 361.157 160.425 +-621.365 354.84 157.619 +-623.962 349.441 155.221 +-625.132 343.275 152.482 +-627.525 337.812 150.056 +-628.301 331.515 147.259 +-383.479 198.281 88.0758 +-382.384 193.708 86.0448 +-382.461 189.779 84.2993 +-382.581 185.906 82.5792 +-379.286 180.443 80.1525 +-379.925 176.914 78.5847 +-381.6 173.877 77.2357 +-381.808 170.186 75.5961 +-381.703 166.386 73.9086 +-381.556 162.602 72.2275 +-382.093 159.137 70.6881 +-136.118 55.3855 24.6021 +-382.781 152.107 67.5656 +-381.641 148.048 65.7627 +-382.024 144.615 64.2376 +-381.629 140.912 62.5927 +-656.782 236.437 105.025 +-383.141 134.41 59.7048 +-381.507 130.357 57.9044 +-381.233 126.81 56.3289 +-382.618 123.825 55.003 +-377.262 118.717 52.7338 +-376.105 115.007 51.086 +-377.474 112.088 49.7894 +-377.1 108.661 48.2671 +-376.115 105.089 46.6802 +-377.2 102.111 45.3577 +-377.487 98.9227 43.9413 +-379.959 96.299 42.7758 +-381.734 93.4778 41.5226 +-382.128 90.3157 40.118 +-382.394 87.132 38.7039 +-381.072 83.6097 37.1393 +-381.271 80.4441 35.7331 +-381.146 77.2223 34.302 +-381.869 74.1797 32.9505 +-380.407 70.7305 31.4184 +-380.577 67.6069 30.0308 +-380.815 64.5025 28.6519 +-380.825 61.3679 27.2595 +-381.002 58.268 25.8825 +-381.05 55.1558 24.5001 +-380.672 51.9931 23.0952 +-381.649 49.0189 21.7741 +-381.012 45.8421 20.363 +-381.237 42.7794 19.0025 +-381.234 39.696 17.6329 +-380.604 36.5585 16.2392 +-380.64 33.4955 14.8787 +-380.347 30.4109 13.5084 +-379.726 27.3118 12.1319 +-380.571 24.3207 10.8032 +-380.788 21.2846 9.45459 +-380.977 18.247 8.10529 +-380.238 15.172 6.73939 +-380.368 12.139 5.39212 +-379.67 9.08595 4.03596 +-146.178 2.33184 1.0358 +-145.294 1.15879 0.514733 +96.6 3.55271e-15 -1.7053e-13 +95.6964 0.766248 0.332122 +96.5853 1.54685 0.670464 +96.5669 2.32012 1.00563 +96.5412 3.09323 1.34073 +96.5081 3.86609 1.67572 +96.4676 4.63866 2.01058 +96.5196 5.41648 2.34771 +96.4644 6.18909 2.68259 +96.4019 6.96122 3.01726 +96.332 7.73282 3.35171 +97.0511 8.57419 3.71639 +97.0653 9.36054 4.05723 +96.9726 10.1373 4.39391 +95.9792 10.8128 4.68669 +96.6659 11.6766 5.06111 +95.7589 12.348 5.3521 +96.2312 13.1957 5.71953 +96.1021 13.9657 6.05327 +95.867 14.7194 6.37997 +95.7233 15.4865 6.71244 +95.4741 16.2356 7.03715 +95.4142 17.0169 7.37578 +96.1306 17.9449 7.77801 +95.9563 18.7138 8.11131 +95.677 19.4616 8.43543 +95.5857 20.2476 8.77609 +96.3619 21.2263 9.2003 +95.283 21.7973 9.44778 +95.9434 22.7662 9.86774 +96.496 23.7234 10.2827 +96.2667 24.4951 10.6171 +96.03 25.265 10.9508 +95.7861 26.0329 11.2837 +96.2043 26.9867 11.6971 +96.1347 27.811 12.0544 +95.6763 28.523 12.363 +96.2549 29.55 12.8081 +96.1592 30.3794 13.1676 +96.5265 31.3625 13.5937 +96.1306 32.1028 13.9146 +96.8519 33.2247 14.4009 +96.5322 33.9989 14.7365 +96.8565 35.006 15.173 +96.7053 35.8489 15.5383 +96.3606 36.6218 15.8733 +96.1007 37.4278 16.2227 +96.5664 38.5251 16.6983 +96.379 39.3714 17.0651 +95.8189 40.0655 17.366 +96.5218 41.2965 17.8995 +96.1253 42.0677 18.2338 +96.5305 43.1979 18.7236 +96.7424 44.2557 19.1821 +96.496 45.1119 19.5533 +96.6842 46.1793 20.0159 +96.153 46.9087 20.3321 +95.7911 47.7205 20.6839 +96.0332 48.8415 21.1698 +96.3484 50.0152 21.6786 +95.869 50.7847 22.0121 +95.9855 51.8764 22.4853 +96.1742 53.021 22.9814 +95.581 53.7411 23.2935 +95.8294 54.9419 23.814 +95.8936 56.0522 24.2952 +96.1116 57.2676 24.822 +95.5633 58.035 25.1546 +95.6709 59.2084 25.6632 +95.9283 60.4918 26.2195 +95.1855 61.1524 26.5058 +95.3329 62.3916 27.043 +95.3831 63.5841 27.5598 +95.4982 64.8365 28.1027 +95.5967 66.0957 28.6485 +95.5197 67.2495 29.1486 +95.5069 68.4637 29.6749 +94.8521 69.2258 30.0052 +95.5112 70.9642 30.7587 +94.9098 71.7846 31.1143 +95.4491 73.4854 31.8514 +94.7466 74.2468 32.1815 +95.3953 76.0862 32.9787 +95.2672 77.3335 33.5194 +95.1969 78.6458 34.0882 +95.1088 79.9629 34.6591 +95.6611 81.8478 35.476 +94.879 82.6106 35.8067 +95.3125 84.4506 36.6042 +95.1476 85.7893 37.1845 +94.9644 87.1318 37.7663 +94.6928 88.4123 38.3214 +95.1682 90.4212 39.1921 +94.6488 91.5125 39.6651 +94.5932 93.0723 40.3412 +94.988 95.1111 41.2249 +94.7489 96.5497 41.8484 +94.6221 98.1297 42.5333 +92.0451 97.1525 42.1097 +90.6629 97.3975 42.2159 +89.4118 97.7682 42.3766 +88.9873 99.0463 42.9306 +88.6712 100.468 43.547 +88.3971 101.964 44.1952 +88.4706 103.897 45.0331 +88.1487 105.403 45.6857 +88.2863 107.497 46.5933 +88.5096 109.748 47.5692 +88.3441 111.566 48.357 +88.4991 113.838 49.3417 +88.3881 115.819 50.2007 +88.0195 117.506 50.9317 +88.4084 120.26 52.1255 +88.1995 122.264 52.9941 +87.9592 124.274 53.865 +89.5678 128.997 55.9123 +93.4778 137.257 59.4927 +93.6317 140.191 60.7641 +93.0674 142.115 61.5981 +93.0825 144.989 62.844 +93.2 148.113 64.1978 +93.2158 151.169 65.5225 +93.1804 154.237 66.8524 +93.2368 157.557 68.2916 +92.9554 160.405 69.5256 +93.0885 164.072 71.1152 +92.8865 167.264 72.4987 +92.8538 170.875 74.064 +92.4963 174.004 75.4202 +92.689 178.299 77.2818 +92.2153 181.445 78.6454 +90.569 182.344 79.0352 +89.7261 184.906 80.1455 +87.8045 185.281 80.3082 +92.4079 199.743 86.5765 +91.7675 203.273 88.1065 +89.943 204.256 88.5324 +87.5571 203.944 88.3972 +85.4708 204.294 88.5491 +82.8591 203.338 88.1347 +80.922 203.993 88.4186 +78.5114 203.422 88.1713 +76.8992 204.911 88.8163 +74.281 203.692 88.2882 +72.2173 203.93 88.3912 +69.9141 203.45 88.1832 +67.8887 203.739 88.3085 +65.7496 203.659 88.2739 +63.7549 204.001 88.4222 +61.6252 203.885 88.3717 +59.6319 204.193 88.5053 +57.3871 203.597 88.2468 +55.5211 204.316 88.5586 +53.1322 203.057 88.013 +51.1989 203.476 88.1943 +49.1101 203.251 88.0969 +47.196 203.726 88.3029 +45.0572 203.197 88.0734 +43.161 203.73 88.3045 +41.0212 203.076 88.021 +39.1577 203.757 88.3164 +37.0697 203.249 88.0961 +35.1665 203.719 88.2997 +33.065 202.995 87.986 +31.133 203.252 88.0973 +29.1987 203.493 88.2019 +27.2744 203.811 88.3395 +25.2443 203.292 88.1148 +23.3517 203.851 88.357 +21.3161 203.117 88.0388 +19.3747 203.189 88.0699 +17.3159 201.873 87.4996 +15.458 202.827 87.9132 +13.5345 203.034 88.0031 +11.5976 203.044 88.007 +9.66169 203.037 88.0042 +7.72675 203.015 87.9947 +5.77987 202.519 87.7796 +3.86396 203.108 88.0349 +1.92595 202.489 87.7668 +1.77636e-14 203.322 88.1279 +-1.93293 203.223 88.085 +-3.86745 203.291 88.1144 +-5.79819 203.161 88.0579 +-7.73024 203.107 88.0345 +-9.63552 202.488 87.766 +-11.6081 203.227 88.0866 +-13.4795 202.21 87.6459 +-15.465 202.919 87.9529 +-17.3787 202.604 87.8165 +-19.3311 202.732 87.8718 +-21.249 202.477 87.7617 +-23.2471 202.939 87.9617 +-25.0972 202.107 87.601 +-27.1281 202.718 87.8659 +-28.9507 201.765 87.4527 +-30.9521 202.071 87.5855 +-32.9024 201.997 87.5533 +-34.9475 202.451 87.7501 +-36.7066 201.258 87.2331 +-38.7583 201.679 87.4157 +-40.7114 201.542 87.356 +-42.7985 202.019 87.5628 +-44.6185 201.219 87.216 +-46.6762 201.482 87.3302 +-48.6556 201.369 87.2813 +-50.9064 202.313 87.6905 +-52.6653 201.274 87.2399 +-54.9647 202.268 87.671 +-56.7111 201.198 87.2073 +-58.8813 201.623 87.3914 +-61.0372 201.94 87.5286 +-63.1485 202.061 87.5811 +-65.1531 201.811 87.4729 +-67.304 201.984 87.5477 +-69.2525 201.525 87.3489 +-71.7228 202.533 87.7859 +-73.4243 201.342 87.2697 +-75.8574 202.135 87.6133 +-77.8104 201.607 87.3843 +-80.3747 202.614 87.8209 +-82.2287 201.791 87.4642 +-84.3957 201.724 87.4352 +-86.2744 200.955 87.1019 +-88.8567 201.788 87.463 +-91.1552 201.917 87.5187 +-93.5801 202.277 87.675 +-95.4605 201.436 87.3103 +-98.2269 202.424 87.7386 +-99.9825 201.297 87.2498 +-102.612 201.902 87.5123 +-104.7 201.404 87.2964 +-107.006 201.3 87.2514 +-109.229 201.01 87.1258 +-111.909 201.518 87.3457 +-114.237 201.346 87.2713 +-116.57 201.153 87.1878 +-119.003 201.099 87.1643 +-121.736 201.503 87.3393 +-123.943 201 87.1214 +-126.55 201.112 87.1699 +-129.169 201.198 87.2073 +-132.056 201.651 87.4033 +-137.26 205.514 89.078 +-140.217 205.886 89.2391 +-141.955 204.446 88.6147 +-142.859 201.839 87.4849 +-142.952 198.162 85.8913 +-143.657 195.413 84.6999 +-144.094 192.365 83.3787 +-149.474 195.864 84.8951 +-155.454 199.963 86.672 +-532.475 672.44 291.462 +-536.054 664.685 288.1 +-536.398 653.113 283.085 +-540.032 645.736 279.887 +-540.428 634.663 275.088 +-544.949 628.588 272.455 +-544.866 617.356 267.586 +-549.19 611.271 264.949 +-550.162 601.579 260.748 +-553.784 594.918 257.861 +-554.304 585.06 253.588 +-558.257 578.951 250.94 +-568.226 579.028 250.973 +-577.9 578.65 250.809 +-583.381 574.001 248.794 +-588.405 568.908 246.587 +-588.862 559.489 242.505 +-591.708 552.463 239.459 +-592.202 543.357 235.512 +-578.303 521.424 226.006 +-577.342 511.548 221.725 +-578.631 503.81 218.371 +-579.671 495.967 214.972 +-583.039 490.192 212.468 +-583.815 482.312 209.053 +-587.031 476.525 206.545 +-587.315 468.435 203.038 +-591.064 463.179 200.76 +-591.616 455.48 197.423 +-595.231 450.201 195.135 +-595.838 442.703 191.885 +-598.382 436.717 189.29 +-599.125 429.479 186.153 +-602.235 423.996 183.777 +-603.449 417.225 180.842 +-606.59 411.832 178.504 +-607.41 404.91 175.504 +-610.505 399.552 173.181 +-611.415 392.806 170.258 +-614.386 387.428 167.927 +-615.063 380.647 164.987 +-618.41 375.556 162.781 +-619.107 368.892 159.892 +-622.592 363.921 157.737 +-623.739 357.609 155.002 +-626.605 352.313 152.706 +-627.018 345.676 149.829 +-630.282 340.642 147.648 +-631.592 334.574 145.017 +-634.75 329.504 142.82 +-381.597 194.076 84.12 +-381.934 190.269 82.47 +-380.462 185.61 80.4505 +-380.616 181.794 78.7966 +-379.034 177.199 76.8049 +-381.242 174.402 75.5928 +-383.156 171.464 74.3194 +-382.606 167.442 72.5759 +-381.465 163.208 70.741 +-381.274 159.425 69.1009 +-136.21 55.6425 24.1176 +-381.497 152.198 65.9687 +-381.181 148.457 64.3469 +-381.747 145.083 62.8846 +-381.814 141.539 61.3487 +-383.89 138.746 60.1378 +-384.542 135.437 58.7037 +-381.132 130.746 56.6703 +-382.643 127.784 55.3866 +-382.335 124.225 53.8439 +-377.546 119.277 51.6992 +-376.105 115.463 50.0464 +-377.569 112.561 48.7885 +-377.1 109.092 47.2849 +-377.262 105.828 45.8699 +-376.529 102.334 44.3555 +-377.295 99.2647 43.0252 +-380.827 96.9021 42.0012 +-382.313 93.9917 40.7397 +-381.547 90.5361 39.2419 +-380.938 87.1447 37.7719 +-380.197 83.7486 36.2999 +-380.979 80.7013 34.9791 +-381.439 77.5883 33.6298 +-381.282 74.3595 32.2303 +-380.799 71.0843 30.8107 +-380.577 67.875 29.4197 +-381.208 64.8253 28.0978 +-380.431 61.5475 26.6771 +-380.706 58.4537 25.3361 +-381.346 55.4176 24.0202 +-381.167 52.2672 22.6546 +-380.362 49.0473 21.259 +-381.607 46.0958 19.9797 +-380.84 42.9044 18.5965 +-381.234 39.8535 17.2741 +-381.3 36.7707 15.9379 +-380.44 33.6108 14.5682 +-380.347 30.5315 13.2335 +-381.52 27.5497 11.9411 +-380.67 24.4236 10.5861 +-380.289 21.3411 9.25005 +-380.378 18.2906 7.92786 +-380.837 15.2563 6.61266 +-380.368 12.1871 5.28239 +-380.27 9.1364 3.96007 +-146.178 2.34109 1.01472 +-146.594 1.17379 0.508768 +96.6 3.55271e-15 -1.7053e-13 +96.3963 0.77484 0.327574 +96.5853 1.55283 0.656482 +96.5669 2.3291 0.984661 +96.5412 3.1052 1.31277 +96.5081 3.88105 1.64077 +96.5675 4.66144 1.97069 +96.4198 5.43182 2.29638 +96.4644 6.21304 2.62665 +96.3022 6.98093 2.95129 +96.332 7.76275 3.28181 +96.2548 8.53674 3.60903 +97.0653 9.39676 3.97261 +95.979 10.0723 4.2582 +95.9792 10.8546 4.58895 +96.6659 11.7218 4.95557 +96.5511 12.4984 5.28387 +96.2312 13.2467 5.60025 +96.1021 14.0197 5.92703 +95.867 14.7764 6.24692 +95.7233 15.5464 6.57245 +96.359 16.4495 6.95426 +96.1995 17.2234 7.28143 +96.1306 18.0143 7.6158 +95.8585 18.7671 7.93405 +95.677 19.5369 8.25951 +95.5857 20.3259 8.59307 +95.3895 21.0934 8.91755 +96.1563 22.0822 9.33557 +96.0402 22.8773 9.67169 +95.7232 23.6245 9.98761 +96.2667 24.5899 10.3957 +96.1262 25.3881 10.7332 +95.7861 26.1336 11.0484 +96.3955 27.145 11.4759 +96.1347 27.9187 11.803 +95.8665 28.6903 12.1292 +95.591 29.4598 12.4545 +96.1592 30.4969 12.893 +96.5265 31.4839 13.3102 +96.2245 32.2586 13.6378 +95.9152 33.0307 13.9642 +96.5322 34.1305 14.4291 +96.8565 35.1414 14.8565 +96.7053 35.9876 15.2143 +96.3606 36.7635 15.5423 +96.9292 37.8965 16.0213 +96.5664 38.6742 16.3501 +96.379 39.5238 16.7092 +96.0919 40.3352 17.0523 +96.5218 41.4563 17.5262 +95.9448 42.1512 17.82 +96.3507 43.2842 18.299 +95.937 44.057 18.6257 +96.3178 45.2028 19.1101 +96.0633 46.0603 19.4727 +96.153 47.0902 19.908 +95.7911 47.9052 20.2526 +96.0332 49.0305 20.7283 +96.1743 50.118 21.1881 +95.869 50.9813 21.553 +96.1578 52.1706 22.0559 +95.4884 52.8466 22.3417 +96.3483 54.3821 22.9908 +95.8294 55.1545 23.3174 +95.8093 56.2196 23.7676 +96.1116 57.4892 24.3044 +96.3138 58.7171 24.8235 +95.6709 59.4375 25.1281 +95.8459 60.6737 25.6507 +96.0046 61.9173 26.1764 +95.9842 63.061 26.6599 +95.3831 63.8301 26.9851 +96.0609 65.4709 27.6787 +95.4369 66.2405 28.0041 +95.5197 67.5098 28.5407 +95.5069 68.7286 29.056 +94.8521 69.4937 29.3794 +95.5112 71.2388 30.1172 +94.9098 72.0624 30.4654 +94.9129 73.3554 31.012 +95.4309 75.0725 31.738 +95.4708 76.441 32.3165 +95.2672 77.6327 32.8203 +95.2712 79.0117 33.4033 +95.1825 80.3346 33.9626 +95.0028 81.5991 34.4972 +94.879 82.9302 35.0599 +95.3125 84.7774 35.8408 +95.1476 86.1213 36.409 +94.9644 87.4689 36.9787 +94.6928 88.7545 37.5222 +95.1682 90.7711 38.3748 +94.6488 91.8667 38.8379 +94.5932 93.4325 39.4999 +94.8529 95.3437 40.3079 +94.682 96.8552 40.9469 +94.4896 98.3713 41.5878 +94.3413 99.961 42.2599 +94.2349 101.626 42.964 +90.6331 99.4867 42.0594 +89.8142 100.353 42.4258 +88.86 101.072 42.7296 +88.6461 102.647 43.3954 +88.3474 104.155 44.0329 +87.966 105.592 44.6403 +88.1659 107.765 45.5593 +88.5096 110.173 46.5772 +88.1678 111.775 47.2543 +87.8604 113.454 47.9642 +88.3881 116.268 49.1538 +87.7363 117.581 49.7091 +88.0729 120.267 50.8446 +88.1995 122.737 51.8889 +88.0681 124.909 52.8071 +92.2543 133.38 56.3884 +93.4778 137.788 58.252 +93.6317 140.733 59.4969 +93.1704 142.823 60.3805 +93.0825 145.55 61.5335 +93.2 148.686 62.859 +93.1173 151.593 64.0883 +93.1804 154.834 65.4582 +93.1891 158.086 66.8331 +93.0023 161.106 68.11 +92.7191 164.054 69.356 +92.7957 167.747 70.9175 +92.943 171.701 72.5892 +92.847 175.34 74.1273 +92.3877 178.407 75.424 +92.0885 181.897 76.8994 +90.569 183.05 77.3869 +89.0753 184.275 77.9048 +88.0039 186.42 78.8117 +92.0172 199.669 84.4128 +91.4996 203.464 86.0175 +89.6434 204.363 86.3972 +87.0074 203.447 86.0101 +85.2199 204.482 86.4478 +82.684 203.693 86.1141 +80.751 204.35 86.3917 +78.1442 203.254 85.9287 +76.2806 204.049 86.2648 +73.7099 202.908 85.7823 +71.8155 203.581 86.0666 +69.6134 203.359 85.9727 +67.684 203.911 86.2064 +65.5223 203.741 86.1343 +63.5344 204.083 86.2788 +61.2243 203.343 85.9661 +59.2178 203.56 86.058 +56.9865 202.958 85.8033 +55.0856 203.498 86.0315 +52.9221 203.037 85.8368 +51.0414 203.635 86.0895 +48.9586 203.407 85.9934 +46.988 203.613 86.0802 +44.9375 203.441 86.0078 +42.9511 203.523 86.0424 +40.9119 203.318 85.9556 +38.984 203.639 86.0911 +36.9046 203.126 85.8746 +35.1195 204.235 86.343 +32.9467 203.052 85.8431 +31.0217 203.309 85.9517 +28.9638 202.637 85.6678 +27.1647 203.777 86.1495 +25.1311 203.163 85.8902 +23.1844 203.174 85.8948 +21.1915 202.711 85.699 +19.2789 202.965 85.8064 +17.3159 202.654 85.6748 +15.3883 202.694 85.6916 +13.4368 202.349 85.5459 +11.561 203.185 85.8995 +9.5919 202.351 85.5467 +7.70232 203.157 85.8874 +5.75369 202.382 85.56 +3.84127 202.696 85.6927 +1.91984 202.628 85.6639 +1.86517e-14 202.728 85.706 +-1.92071 202.72 85.7029 +-3.84302 202.788 85.7317 +-5.75631 202.474 85.5989 +-7.68138 202.604 85.6538 +-9.60063 202.535 85.6246 +-11.561 203.185 85.8995 +-13.4368 202.349 85.5459 +-15.4162 203.061 85.8469 +-17.3081 202.562 85.6359 +-19.2178 202.323 85.535 +-21.1532 202.344 85.544 +-23.0903 202.35 85.5463 +-24.9273 201.516 85.1939 +-27.0306 202.771 85.7243 +-28.8593 201.906 85.3586 +-30.7433 201.484 85.1803 +-32.7546 201.867 85.3423 +-34.838 202.597 85.6507 +-36.558 201.219 85.0682 +-38.6367 201.825 85.3244 +-40.4381 200.963 84.9599 +-42.684 202.258 85.5074 +-44.479 201.365 85.1301 +-46.5514 201.721 85.2804 +-48.4608 201.34 85.1192 +-50.569 201.749 85.2924 +-52.4785 201.336 85.1176 +-54.5534 201.532 85.2005 +-56.4857 201.175 85.0495 +-58.6484 201.603 85.2305 +-60.5295 201.035 84.9903 +-62.7902 201.691 85.2679 +-64.6987 201.179 85.0514 +-67.0701 202.061 85.4241 +-69.0721 201.778 85.3045 +-71.2593 202.004 85.3999 +-73.3926 202.034 85.4128 +-75.5644 202.134 85.4548 +-77.51 201.605 85.2313 +-79.7933 201.926 85.3672 +-81.5633 200.932 84.9471 +-84.0731 201.731 85.2847 +-85.9812 201.048 84.9957 +-88.6319 202.057 85.4225 +-90.5046 201.252 85.0822 +-93.0331 201.873 85.3446 +-94.9422 201.118 85.0253 +-97.4948 201.693 85.2687 +-99.7337 201.573 85.2177 +-101.809 201.097 85.0168 +-104.011 200.853 84.9136 +-106.612 201.334 85.1168 +-108.738 200.882 84.9256 +-111.5 201.559 85.2118 +-113.452 200.737 84.8645 +-116.194 201.282 85.0946 +-118.479 200.987 84.97 +-121.251 201.477 85.1772 +-123.155 200.495 84.7621 +-125.85 200.774 84.8801 +-128.204 200.469 84.7512 +-131.489 201.562 85.2134 +-136.738 205.524 86.8882 +-139.687 205.901 87.0475 +-141.955 205.237 86.7667 +-143.676 203.779 86.1503 +-142.786 198.699 84.0028 +-143.153 195.482 82.643 +-145.113 194.476 82.2174 +-148.384 195.189 82.5188 +-150.518 194.363 82.1699 +-535.237 678.544 286.864 +-539.385 671.402 283.845 +-539.768 659.759 278.923 +-539.911 648.088 273.989 +-543.937 641.257 271.1 +-548.56 635.202 268.54 +-548.579 623.968 263.791 +-552.688 617.546 261.076 +-552.669 606.659 256.474 +-557.032 600.722 253.964 +-557.125 590.313 249.563 +-561.372 584.433 247.077 +-565.884 578.873 244.727 +-574.117 577.086 243.971 +-587.337 580.129 245.258 +-590.126 572.78 242.151 +-594.628 567.154 239.772 +-585.329 548.622 231.938 +-581.807 535.885 226.553 +-577.519 522.732 220.992 +-578.421 514.487 217.507 +-582.185 508.867 215.131 +-582.743 500.524 211.604 +-586.43 494.95 209.247 +-587.01 486.828 205.814 +-589.952 480.749 203.244 +-590.56 472.846 199.902 +-593.877 467.185 197.509 +-594.45 459.433 194.232 +-598.241 454.227 192.031 +-598.791 446.619 188.814 +-602.53 441.445 186.627 +-602.513 433.58 183.302 +-605.884 428.216 181.034 +-606.484 420.946 177.961 +-609.967 415.727 175.755 +-609.999 408.209 172.576 +-613.599 403.13 170.429 +-614.774 396.492 167.623 +-618.012 391.223 165.395 +-618.545 384.284 162.461 +-621.662 378.992 160.224 +-622.964 372.626 157.533 +-625.712 367.16 155.222 +-626.029 360.31 152.326 +-629.675 355.409 150.254 +-629.932 348.626 147.387 +-633.211 343.55 145.241 +-634.017 337.158 142.538 +-636.926 331.913 140.321 +-382.384 195.229 82.5359 +-381.934 191.005 80.7501 +-382.14 187.15 79.1201 +-382.213 183.263 77.4769 +-378.856 177.801 75.1678 +-380.079 174.543 73.7905 +-382.617 171.886 72.6671 +-381.703 167.693 70.8945 +-382.009 164.074 69.3646 +-381.729 160.233 67.7408 +-135.479 55.5581 23.488 +-136.275 54.5772 23.0733 +-381.457 149.139 63.0506 +-381.008 145.362 61.454 +-381.351 141.915 59.9965 +-384.355 139.452 58.9553 +-655.187 231.652 97.9342 +-382.631 131.768 55.7069 +-381.985 128.057 54.1381 +-382.43 124.736 52.7339 +-378.018 119.888 50.6845 +-378.002 116.495 49.25 +-377.284 112.911 47.7348 +-376.909 109.459 46.2754 +-376.784 106.102 44.856 +-377.487 102.991 43.5411 +-379.314 100.182 42.3534 +-382.369 97.6703 41.2915 +-382.024 94.2835 39.8597 +-380.966 90.748 38.365 +-381.52 87.6156 37.0408 +-381.169 84.2877 35.6338 +-381.563 81.1378 34.3022 +-381.146 77.8286 32.9032 +-382.064 74.8004 31.6229 +-380.799 71.3594 30.1682 +-381.068 68.2256 28.8434 +-381.7 65.16 27.5473 +-381.416 61.9456 26.1884 +-380.706 58.6799 24.8078 +-380.754 55.5456 23.4827 +-381.562 52.524 22.2052 +-381.352 49.3653 20.8699 +-380.417 46.1299 19.5021 +-380.84 43.0705 18.2086 +-380.637 39.9452 16.8874 +-381.3 36.913 15.6055 +-380.042 33.7056 14.2495 +-380.347 30.6496 12.9576 +-381.022 27.6202 11.6768 +-381.269 24.5566 10.3816 +-381.088 21.4686 9.07615 +-380.977 18.3903 7.77475 +-380.837 15.3153 6.47475 +-379.469 12.2054 5.16 +-380.57 9.17898 3.88055 +-145.678 2.34212 0.990163 +-145.594 1.17029 0.494758 +95.7 0 -1.7053e-13 +96.3963 0.777763 0.320571 +96.5853 1.55869 0.642447 +96.5669 2.33789 0.963609 +96.5412 3.11691 1.2847 +96.5081 3.89569 1.60569 +96.4676 4.67418 1.92656 +96.5196 5.45796 2.24961 +96.3647 6.23003 2.56784 +96.3022 7.00727 2.88819 +96.332 7.79204 3.21165 +96.2548 8.56895 3.53187 +96.1703 9.34522 3.85182 +96.8733 10.2045 4.20599 +96.8725 10.9969 4.5326 +96.765 11.7782 4.85461 +96.6502 12.5584 5.17619 +96.429 13.324 5.49176 +96.2996 14.1015 5.81224 +95.867 14.8321 6.11336 +95.7233 15.605 6.43193 +95.5724 16.3768 6.75001 +96.1995 17.2884 7.12575 +96.0326 18.0639 7.44539 +95.9563 18.8571 7.77235 +95.7746 19.6306 8.09115 +95.5857 20.4026 8.40935 +95.3895 21.173 8.72689 +96.1563 22.1655 9.13597 +95.8466 22.9173 9.44582 +95.7232 23.7137 9.77407 +96.2667 24.6827 10.1735 +96.03 25.4585 10.4932 +95.7861 26.2322 10.8121 +96.3955 27.2474 11.2306 +96.1347 28.024 11.5507 +95.8665 28.7986 11.8699 +96.2549 29.7763 12.2729 +96.1592 30.612 12.6174 +96.5265 31.6026 13.0257 +96.2245 32.3803 13.3462 +96.8519 33.4791 13.7991 +96.5322 34.2592 14.1206 +96.8565 35.274 14.5389 +96.5198 36.0541 14.8604 +96.1759 36.8314 15.1808 +96.0087 37.6783 15.5299 +96.5664 38.8201 16.0005 +96.379 39.6729 16.352 +96.0009 40.449 16.6719 +96.5218 41.6127 17.1515 +96.1253 42.3899 17.4718 +96.5305 43.5286 17.9412 +96.7424 44.5946 18.3805 +96.3178 45.3734 18.7016 +95.8859 46.1487 19.0211 +96.2413 47.3112 19.5003 +96.4941 48.4388 19.965 +96.0332 49.2155 20.2852 +96.4354 50.4437 20.7914 +95.6958 51.0812 21.0541 +95.9855 52.2736 21.5456 +96.1742 53.427 22.021 +95.581 54.1526 22.3201 +95.8294 55.3626 22.8188 +96.0623 56.5807 23.3209 +95.3568 57.253 23.598 +95.4799 58.4284 24.0824 +95.7538 59.7135 24.6121 +95.1042 60.4314 24.908 +96.0046 62.1509 25.6168 +95.3329 62.8694 25.9129 +95.464 64.1253 26.4305 +95.4982 65.333 26.9283 +95.5967 66.6018 27.4513 +95.5197 67.7645 27.9305 +95.5069 68.988 28.4348 +95.5565 70.2738 28.9648 +95.589 71.5658 29.4973 +95.5271 72.8048 30.008 +95.4491 74.0481 30.5204 +94.8226 74.8755 30.8614 +95.3953 76.6688 31.6006 +95.2672 77.9256 32.1186 +95.1969 79.248 32.6637 +95.1088 80.5752 33.2107 +95.0028 81.907 33.7596 +94.879 83.2432 34.3104 +95.2406 85.0331 35.0481 +95.1476 86.4463 35.6306 +94.9644 87.799 36.1881 +95.3938 89.7488 36.9918 +95.0987 91.0471 37.5269 +94.8553 92.4145 38.0905 +94.4568 93.6491 38.5994 +94.988 95.8394 39.5021 +94.5482 97.0829 40.0147 +94.8209 99.0891 40.8416 +94.9317 100.966 41.6152 +94.6246 102.431 42.2192 +93.4613 102.979 42.4448 +93.5671 104.942 43.2538 +89.3006 101.956 42.0233 +88.9573 103.397 42.617 +88.4706 104.693 43.1513 +88.0269 106.063 43.716 +88.2863 108.32 44.6462 +88.2717 110.291 45.4587 +88.2853 112.345 46.3054 +87.9765 114.033 47.0008 +88.044 116.252 47.9158 +88.2461 118.711 48.9291 +88.4084 121.181 49.9473 +87.758 122.584 50.5254 +88.0681 125.38 51.6781 +93.114 135.132 55.6972 +93.4778 138.308 57.0066 +93.6317 141.264 58.2249 +93.5309 143.917 59.3182 +93.0825 146.1 60.2179 +93.1 149.087 61.4491 +93.2158 152.326 62.7844 +93.1319 155.337 64.0252 +93.1891 158.683 65.4043 +93.0023 161.714 66.6538 +92.7191 164.673 67.8732 +92.7503 168.298 69.3674 +92.8091 172.101 70.9347 +92.4963 175.336 72.2685 +92.3877 179.08 73.8114 +91.7082 181.83 74.9447 +90.2787 183.152 75.4897 +88.5466 183.873 75.7869 +89.559 190.431 78.4898 +92.2125 200.847 82.7834 +91.0404 203.207 83.7558 +89.044 203.763 83.9849 +86.6409 203.355 83.8168 +84.5032 203.528 83.8881 +82.3688 203.682 83.9517 +80.1353 203.557 83.9003 +78.0107 203.673 83.9479 +75.8574 203.683 83.9521 +73.456 202.972 83.6591 +71.5992 203.733 83.9727 +69.4029 203.509 83.8805 +67.187 203.177 83.7437 +64.9827 202.825 83.5985 +63.2036 203.786 83.9944 +60.6898 202.328 83.3934 +58.959 203.435 83.85 +56.7611 202.918 83.637 +54.8679 203.458 83.8595 +52.5019 202.185 83.3348 +50.7939 203.412 83.8404 +48.569 202.55 83.4853 +46.6554 202.934 83.6434 +44.5787 202.578 83.4967 +42.8175 203.656 83.941 +40.5839 202.449 83.4434 +38.7062 202.951 83.6503 +36.6406 202.434 83.4373 +34.838 203.361 83.8195 +32.8137 202.995 83.6686 +30.8686 203.068 83.6987 +28.8332 202.485 83.4582 +27.0428 203.628 83.9292 +24.9387 202.368 83.4102 +23.1217 203.389 83.8309 +21.0957 202.556 83.4876 +19.1568 202.442 83.4407 +17.1825 201.852 83.1972 +15.3046 202.352 83.4034 +13.394 202.467 83.451 +11.472 202.383 83.4163 +9.53084 201.821 83.1846 +7.66742 202.999 83.6701 +5.72228 202.036 83.2734 +3.82557 202.63 83.5181 +1.905 201.821 83.1846 +1.86517e-14 202.753 83.5687 +-1.905 201.821 83.1846 +-3.82731 202.722 83.5562 +-5.71443 201.759 83.1591 +-7.64997 202.537 83.4796 +-9.52211 201.636 83.1084 +-11.472 202.383 83.4163 +-13.3208 201.36 82.9945 +-15.2836 202.074 83.289 +-17.1825 201.852 83.1972 +-19.183 202.718 83.5543 +-21.0286 201.912 83.222 +-23.0067 202.378 83.414 +-24.916 202.184 83.3344 +-26.8234 201.975 83.2483 +-28.7027 201.569 83.0806 +-30.7155 202.061 83.2837 +-32.5181 201.165 82.9144 +-34.5407 201.627 83.1046 +-36.4095 201.158 82.9114 +-38.5152 201.949 83.2372 +-40.2741 200.903 82.8062 +-42.3405 201.387 83.0059 +-44.2796 201.219 82.9365 +-46.3435 201.578 83.0844 +-48.3093 201.467 83.0387 +-50.389 201.79 83.172 +-52.2684 201.287 82.9644 +-54.384 201.664 83.1198 +-56.1352 200.681 82.7148 +-58.4413 201.649 83.1137 +-60.3424 201.17 82.9163 +-62.5146 201.564 83.0787 +-64.3863 200.963 82.831 +-66.8654 202.205 83.3428 +-68.5309 200.952 82.8264 +-70.9812 201.974 83.2479 +-72.8214 201.218 82.9362 +-75.076 201.585 83.0874 +-77.2429 201.668 83.1217 +-79.4855 201.907 83.2201 +-81.2831 200.998 82.8455 +-83.7506 201.716 83.1412 +-85.6513 201.032 82.8596 +-88.2199 201.876 83.2075 +-90.1219 201.157 82.911 +-92.7596 202.039 83.2746 +-94.663 201.283 82.9628 +-97.2507 201.948 83.2368 +-99.0287 200.903 82.8062 +-101.428 201.102 82.8881 +-103.237 200.109 82.4789 +-105.823 200.598 82.6805 +-108.069 200.398 82.5982 +-110.728 200.919 82.8127 +-112.667 200.1 82.4754 +-115.725 201.225 82.9388 +-117.62 200.283 82.5505 +-120.718 201.348 82.9895 +-122.712 200.528 82.6515 +-125.4 200.81 82.7681 +-127.646 200.349 82.578 +-130.562 200.896 82.8035 +-134.7 203.225 83.7635 +-138.892 205.502 84.7017 +-141.202 204.919 84.4616 +-142.859 203.384 83.829 +-143.228 200.065 82.461 +-143.321 196.449 80.9706 +-144.434 194.295 80.0827 +-147.524 194.789 80.2862 +-149.531 193.817 79.8857 +-539.352 686.34 282.889 +-552.59 690.435 284.577 +-556.559 682.849 281.45 +-550.077 662.783 273.179 +-547.138 647.464 266.866 +-551.921 641.506 264.41 +-552.04 630.274 259.78 +-556.25 623.871 257.141 +-556.718 613.409 252.829 +-560.733 606.997 250.186 +-560.602 596.239 245.752 +-564.817 590.239 243.279 +-564.947 580.094 239.098 +-571.549 576.674 237.688 +-583.109 578.125 238.286 +-589.163 574.003 236.587 +-588.028 562.975 232.042 +-577.83 543.637 224.071 +-577.636 534.051 220.12 +-581.299 528.139 217.683 +-581.73 519.382 214.074 +-585.232 513.46 211.633 +-586.034 505.251 208.249 +-589.896 499.754 205.984 +-589.685 490.892 202.331 +-593.323 485.32 200.035 +-593.353 476.875 196.554 +-597.375 471.709 194.424 +-597.591 463.603 191.084 +-601.25 458.235 188.871 +-601.2 450.108 185.521 +-605.113 445.01 183.42 +-605.744 437.55 180.345 +-609.375 432.308 178.185 +-609.918 424.927 175.142 +-613.021 419.385 172.858 +-613.639 412.195 169.895 +-617.507 407.228 167.847 +-616.985 399.421 164.629 +-620.979 394.584 162.636 +-621.447 387.543 159.734 +-625.081 382.514 157.661 +-625.732 375.694 154.85 +-628.748 370.333 152.64 +-629.167 363.482 149.817 +-632.574 358.393 147.719 +-633.018 351.657 144.942 +-636.313 346.536 142.832 +-636.962 340.002 140.139 +-640.147 334.85 138.015 +-382.821 196.19 80.8635 +-380.879 191.197 78.8057 +-382.14 187.856 77.4286 +-382.479 184.083 75.8734 +-377.074 177.632 73.2147 +-380.795 175.532 72.3489 +-381.718 172.128 70.9462 +-382.786 168.804 69.5758 +-382.281 164.81 67.9296 +-381.911 160.914 66.3242 +-135.205 55.6549 22.9393 +-136.275 54.7831 22.58 +-382.378 150.063 61.8515 +-381.747 146.194 60.2568 +-381.814 142.623 58.7851 +-381.471 138.928 57.2619 +-674.138 239.251 98.6123 +-380.383 131.488 54.1955 +-381.985 128.541 52.9806 +-381.581 124.929 51.4921 +-379.72 120.883 49.8242 +-378.097 116.963 48.2088 +-375.002 112.651 46.4315 +-377.481 110.039 45.3546 +-378.219 106.908 44.0643 +-380.46 104.194 42.9455 +-381.621 101.171 41.6998 +-381.79 97.8909 40.3477 +-382.41 94.7345 39.0468 +-381.257 91.1599 37.5734 +-381.52 87.9462 36.2488 +-381.752 84.7352 34.9253 +-381.271 81.3816 33.5431 +-380.755 78.0422 32.1667 +-380.695 74.8135 30.8359 +-381.681 71.7945 29.5916 +-381.657 68.5888 28.2703 +-380.815 65.2543 26.8959 +-380.431 62.0188 25.5623 +-380.509 58.8708 24.2648 +-381.05 55.7986 22.9985 +-381.76 52.7494 21.7417 +-380.362 49.4229 20.3707 +-380.814 46.3522 19.105 +-380.84 43.233 17.8193 +-379.942 40.0226 16.4961 +-381.3 37.0523 15.2719 +-380.44 33.8682 13.9594 +-380.746 30.7975 12.6938 +-380.623 27.6954 11.4152 +-380.87 24.6234 10.149 +-380.489 21.5158 8.86816 +-380.678 18.4452 7.60255 +-380.338 15.3529 6.32802 +-380.068 12.2709 5.05768 +-380.27 9.20636 3.79459 +-147.178 2.37515 0.978966 +-146.594 1.18278 0.487507 diff --git a/dat/scan002.pose b/dat/scan002.pose new file mode 100644 index 0000000..41455a0 --- /dev/null +++ b/dat/scan002.pose @@ -0,0 +1,3 @@ +-7.99848 -15.3529 337.973 +1.11333 -0.470508 -0.479231 + diff --git a/doc/README b/doc/README new file mode 100644 index 0000000..4d3d5bf --- /dev/null +++ b/doc/README @@ -0,0 +1,16 @@ + +Always remember Arnold's Laws of Documentation: + + (1) If it should exist, it doesn't. + (2) If it does exist, it's out of date. + (3) Only documentation for useless programs transcends the + first two laws. + + +If you're still interested in the documentation, you can generate both +a doxygen version and some more information about the mathematical background +by typing "make docu" in the parent directory. + +Furthermore, there are some relevant publications in the 'papers' directory, +which are also cited in the source code. + diff --git a/doc/david_scanner.pdf b/doc/david_scanner.pdf new file mode 100644 index 0000000..06d6282 Binary files /dev/null and b/doc/david_scanner.pdf differ diff --git a/doc/documentation_HL.pdf b/doc/documentation_HL.pdf new file mode 100644 index 0000000..41f93bc Binary files /dev/null and b/doc/documentation_HL.pdf differ diff --git a/doc/doxygen.cfg b/doc/doxygen.cfg new file mode 100644 index 0000000..c9a8cb8 --- /dev/null +++ b/doc/doxygen.cfg @@ -0,0 +1,1212 @@ +# Doxyfile 1.4.1 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project +# +# All text after a hash (#) is considered a comment and will be ignored +# The format is: +# TAG = value [value, ...] +# For lists items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (" ") + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- + +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded +# by quotes) that should identify the project. + +PROJECT_NAME = "6D SLAM" + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. +# This could be handy for archiving the generated documentation or +# if some version control system is used. + +PROJECT_NUMBER = 1.1 + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) +# base path where the generated documentation will be put. +# If a relative path is entered, it will be relative to the location +# where doxygen was started. If left blank the current directory will be used. + +OUTPUT_DIRECTORY = doc/ + +# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create +# 4096 sub-directories (in 2 levels) under the output directory of each output +# format and will distribute the generated files over these directories. +# Enabling this option can be useful when feeding doxygen a huge amount of +# source files, where putting all generated files in the same directory would +# otherwise cause performance problems for the file system. + +CREATE_SUBDIRS = NO + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# The default language is English, other supported languages are: +# Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, +# Dutch, Finnish, French, German, Greek, Hungarian, Italian, Japanese, +# Japanese-en (Japanese with English messages), Korean, Korean-en, Norwegian, +# Polish, Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, +# Swedish, and Ukrainian. + +OUTPUT_LANGUAGE = English + +# This tag can be used to specify the encoding used in the generated output. +# The encoding is not always determined by the language that is chosen, +# but also whether or not the output is meant for Windows or non-Windows users. +# In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES +# forces the Windows encoding (this is the default for the Windows binary), +# whereas setting the tag to NO uses a Unix-style encoding (the default for +# all platforms other than Windows). + +USE_WINDOWS_ENCODING = NO + +# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will +# include brief member descriptions after the members that are listed in +# the file and class documentation (similar to JavaDoc). +# Set to NO to disable this. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend +# the brief description of a member or function before the detailed description. +# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. + +REPEAT_BRIEF = YES + +# This tag implements a quasi-intelligent brief description abbreviator +# that is used to form the text in various listings. Each string +# in this list, if found as the leading text of the brief description, will be +# stripped from the text and the result after processing the whole list, is +# used as the annotated text. Otherwise, the brief description is used as-is. +# If left blank, the following values are used ("$name" is automatically +# replaced with the name of the entity): "The $name class" "The $name widget" +# "The $name file" "is" "provides" "specifies" "contains" +# "represents" "a" "an" "the" + +ABBREVIATE_BRIEF = + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# Doxygen will generate a detailed section even if there is only a brief +# description. + +ALWAYS_DETAILED_SEC = NO + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all +# inherited members of a class in the documentation of that class as if those +# members were ordinary class members. Constructors, destructors and assignment +# operators of the base classes will not be shown. + +INLINE_INHERITED_MEMB = NO + +# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full +# path before files name in the file list and in the header files. If set +# to NO the shortest path that makes the file name unique will be used. + +FULL_PATH_NAMES = NO + +# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag +# can be used to strip a user-defined part of the path. Stripping is +# only done if one of the specified strings matches the left-hand part of +# the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which doxygen is run is used as the +# path to strip. + +STRIP_FROM_PATH = + +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of +# the path mentioned in the documentation of a class, which tells +# the reader which header file to include in order to use a class. +# If left blank only the name of the header file containing the class +# definition is used. Otherwise one should specify the include paths that +# are normally passed to the compiler using the -I flag. + +STRIP_FROM_INC_PATH = include/ + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter +# (but less readable) file names. This can be useful is your file systems +# doesn't support long names like on DOS, Mac, or CD-ROM. + +SHORT_NAMES = NO + +# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen +# will interpret the first line (until the first dot) of a JavaDoc-style +# comment as the brief description. If set to NO, the JavaDoc +# comments will behave just like the Qt-style comments (thus requiring an +# explicit @brief command for a brief description. + +JAVADOC_AUTOBRIEF = NO + +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen +# treat a multi-line C++ special comment block (i.e. a block of //! or /// +# comments) as a brief description. This used to be the default behaviour. +# The new default is to treat a multi-line C++ comment block as a detailed +# description. Set this tag to YES if you prefer the old behaviour instead. + +MULTILINE_CPP_IS_BRIEF = NO + +# If the DETAILS_AT_TOP tag is set to YES then Doxygen +# will output the detailed description near the top, like JavaDoc. +# If set to NO, the detailed description appears after the member +# documentation. + +DETAILS_AT_TOP = NO + +# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented +# member inherits the documentation from any documented member that it +# re-implements. + +INHERIT_DOCS = YES + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES, then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. + +DISTRIBUTE_GROUP_DOC = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. +# Doxygen uses this value to replace tabs by spaces in code fragments. + +TAB_SIZE = 8 + +# This tag can be used to specify a number of aliases that acts +# as commands in the documentation. An alias has the form "name=value". +# For example adding "sideeffect=\par Side Effects:\n" will allow you to +# put the command \sideeffect (or @sideeffect) in the documentation, which +# will result in a user-defined paragraph with heading "Side Effects:". +# You can put \n's in the value part of an alias to insert newlines. + +ALIASES = + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C +# sources only. Doxygen will then generate output that is more tailored for C. +# For instance, some of the names that are used will be different. The list +# of all members will be omitted, etc. + +OPTIMIZE_OUTPUT_FOR_C = NO + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java sources +# only. Doxygen will then generate output that is more tailored for Java. +# For instance, namespaces will be presented as packages, qualified scopes +# will look different, etc. + +OPTIMIZE_OUTPUT_JAVA = NO + +# Set the SUBGROUPING tag to YES (the default) to allow class member groups of +# the same type (for instance a group of public functions) to be put as a +# subgroup of that type (e.g. under the Public Functions section). Set it to +# NO to prevent subgrouping. Alternatively, this can be done per class using +# the \nosubgrouping command. + +SUBGROUPING = YES + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in +# documentation are documented, even if no documentation was available. +# Private class members and static file members will be hidden unless +# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES + +EXTRACT_ALL = NO + +# If the EXTRACT_PRIVATE tag is set to YES all private members of a class +# will be included in the documentation. + +EXTRACT_PRIVATE = NO + +# If the EXTRACT_STATIC tag is set to YES all static members of a file +# will be included in the documentation. + +EXTRACT_STATIC = NO + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) +# defined locally in source files will be included in the documentation. +# If set to NO only classes defined in header files are included. + +EXTRACT_LOCAL_CLASSES = YES + +# This flag is only useful for Objective-C code. When set to YES local +# methods, which are defined in the implementation section but not in +# the interface are included in the documentation. +# If set to NO (the default) only methods in the interface are included. + +EXTRACT_LOCAL_METHODS = NO + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all +# undocumented members of documented classes, files or namespaces. +# If set to NO (the default) these members will be included in the +# various overviews, but no documentation section is generated. +# This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_MEMBERS = NO + +# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. +# If set to NO (the default) these classes will be included in the various +# overviews. This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_CLASSES = NO + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all +# friend (class|struct|union) declarations. +# If set to NO (the default) these declarations will be included in the +# documentation. + +HIDE_FRIEND_COMPOUNDS = NO + +# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any +# documentation blocks found inside the body of a function. +# If set to NO (the default) these blocks will be appended to the +# function's detailed documentation block. + +HIDE_IN_BODY_DOCS = NO + +# The INTERNAL_DOCS tag determines if documentation +# that is typed after a \internal command is included. If the tag is set +# to NO (the default) then the documentation will be excluded. +# Set it to YES to include the internal documentation. + +INTERNAL_DOCS = NO + +# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate +# file names in lower-case letters. If set to YES upper-case letters are also +# allowed. This is useful if you have classes or files whose names only differ +# in case and if your file system supports case sensitive file names. Windows +# and Mac users are advised to set this option to NO. + +CASE_SENSE_NAMES = YES + +# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen +# will show members with their full class and namespace scopes in the +# documentation. If set to YES the scope will be hidden. + +HIDE_SCOPE_NAMES = NO + +# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen +# will put a list of the files that are included by a file in the documentation +# of that file. + +SHOW_INCLUDE_FILES = YES + +# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] +# is inserted in the documentation for inline members. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen +# will sort the (detailed) documentation of file and class members +# alphabetically by member name. If set to NO the members will appear in +# declaration order. + +SORT_MEMBER_DOCS = YES + +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the +# brief documentation of file, namespace and class members alphabetically +# by member name. If set to NO (the default) the members will appear in +# declaration order. + +SORT_BRIEF_DOCS = NO + +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be +# sorted by fully-qualified names, including namespaces. If set to +# NO (the default), the class list will be sorted only by class name, +# not including the namespace part. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option applies only to the class list, not to the +# alphabetical list. + +SORT_BY_SCOPE_NAME = NO + +# The GENERATE_TODOLIST tag can be used to enable (YES) or +# disable (NO) the todo list. This list is created by putting \todo +# commands in the documentation. + +GENERATE_TODOLIST = YES + +# The GENERATE_TESTLIST tag can be used to enable (YES) or +# disable (NO) the test list. This list is created by putting \test +# commands in the documentation. + +GENERATE_TESTLIST = YES + +# The GENERATE_BUGLIST tag can be used to enable (YES) or +# disable (NO) the bug list. This list is created by putting \bug +# commands in the documentation. + +GENERATE_BUGLIST = YES + +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or +# disable (NO) the deprecated list. This list is created by putting +# \deprecated commands in the documentation. + +GENERATE_DEPRECATEDLIST= YES + +# The ENABLED_SECTIONS tag can be used to enable conditional +# documentation sections, marked by \if sectionname ... \endif. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines +# the initial value of a variable or define consists of for it to appear in +# the documentation. If the initializer consists of more lines than specified +# here it will be hidden. Use a value of 0 to hide initializers completely. +# The appearance of the initializer of individual variables and defines in the +# documentation can be controlled using \showinitializer or \hideinitializer +# command in the documentation regardless of this setting. + +MAX_INITIALIZER_LINES = 30 + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated +# at the bottom of the documentation of classes and structs. If set to YES the +# list will mention the files that were used to generate the documentation. + +SHOW_USED_FILES = YES + +# If the sources in your project are distributed over multiple directories +# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy +# in the documentation. + +SHOW_DIRECTORIES = YES + +# The FILE_VERSION_FILTER tag can be used to specify a program or script that +# doxygen should invoke to get the current version for each file (typically from the +# version control system). Doxygen will invoke the program by executing (via +# popen()) the command , where is the value of +# the FILE_VERSION_FILTER tag, and is the name of an input file +# provided by doxygen. Whatever the progam writes to standard output +# is used as the file version. See the manual for examples. + +FILE_VERSION_FILTER = + +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated +# by doxygen. Possible values are YES and NO. If left blank NO is used. + +QUIET = NO + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated by doxygen. Possible values are YES and NO. If left blank +# NO is used. + +WARNINGS = YES + +# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings +# for undocumented members. If EXTRACT_ALL is set to YES then this flag will +# automatically be disabled. + +WARN_IF_UNDOCUMENTED = YES + +# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as not documenting some +# parameters in a documented function, or documenting parameters that +# don't exist or using markup commands wrongly. + +WARN_IF_DOC_ERROR = YES + +# This WARN_NO_PARAMDOC option can be abled to get warnings for +# functions that are documented, but have no documentation for their parameters +# or return value. If set to NO (the default) doxygen will only warn about +# wrong or incomplete parameter documentation, but not about the absence of +# documentation. + +WARN_NO_PARAMDOC = YES + +# The WARN_FORMAT tag determines the format of the warning messages that +# doxygen can produce. The string should contain the $file, $line, and $text +# tags, which will be replaced by the file and line number from which the +# warning originated and the warning text. Optionally the format may contain +# $version, which will be replaced by the version of the file (if it could +# be obtained via FILE_VERSION_FILTER) + +WARN_FORMAT = "$file:$line: $text" + +# The WARN_LOGFILE tag can be used to specify a file to which warning +# and error messages should be written. If left blank the output is written +# to stderr. + +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag can be used to specify the files and/or directories that contain +# documented source files. You may enter file names like "myfile.cpp" or +# directories like "/usr/src/myproject". Separate the files or directories +# with spaces. + +INPUT = src/show src/slam6D src/grid src/pmd + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank the following patterns are tested: +# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx +# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm + +FILE_PATTERNS = *.cc *.h *.icc + +# The RECURSIVE tag can be used to turn specify whether or not subdirectories +# should be searched for input files as well. Possible values are YES and NO. +# If left blank NO is used. + +RECURSIVE = NO + +# The EXCLUDE tag can be used to specify files and/or directories that should +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. + +EXCLUDE = + +# The EXCLUDE_SYMLINKS tag can be used select whether or not files or +# directories that are symbolic links (a Unix filesystem feature) are excluded +# from the input. + +EXCLUDE_SYMLINKS = NO + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. + +EXCLUDE_PATTERNS = + +# The EXAMPLE_PATH tag can be used to specify one or more files or +# directories that contain example code fragments that are included (see +# the \include command). + +EXAMPLE_PATH = + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank all files are included. + +EXAMPLE_PATTERNS = + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude +# commands irrespective of the value of the RECURSIVE tag. +# Possible values are YES and NO. If left blank NO is used. + +EXAMPLE_RECURSIVE = NO + +# The IMAGE_PATH tag can be used to specify one or more files or +# directories that contain image that are included in the documentation (see +# the \image command). + +IMAGE_PATH = + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command , where +# is the value of the INPUT_FILTER tag, and is the name of an +# input file. Doxygen will then use the output that the filter program writes +# to standard output. If FILTER_PATTERNS is specified, this tag will be +# ignored. + +INPUT_FILTER = + +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern +# basis. Doxygen will compare the file name with each pattern and apply the +# filter if there is a match. The filters are a list of the form: +# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further +# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER +# is applied to all files. + +FILTER_PATTERNS = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will be used to filter the input files when producing source +# files to browse (i.e. when SOURCE_BROWSER is set to YES). + +FILTER_SOURCE_FILES = NO + +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will +# be generated. Documented entities will be cross-referenced with these sources. +# Note: To get rid of all source code in the generated output, make sure also +# VERBATIM_HEADERS is set to NO. + +SOURCE_BROWSER = YES + +# Setting the INLINE_SOURCES tag to YES will include the body +# of functions and classes directly in the documentation. + +INLINE_SOURCES = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct +# doxygen to hide any special comment blocks from generated source code +# fragments. Normal C and C++ comments will always remain visible. + +STRIP_CODE_COMMENTS = YES + +# If the REFERENCED_BY_RELATION tag is set to YES (the default) +# then for each documented function all documented +# functions referencing it will be listed. + +REFERENCED_BY_RELATION = YES + +# If the REFERENCES_RELATION tag is set to YES (the default) +# then for each documented function all documented entities +# called/used by that function will be listed. + +REFERENCES_RELATION = YES + +# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen +# will generate a verbatim copy of the header file for each class for +# which an include is specified. Set to NO to disable this. + +VERBATIM_HEADERS = YES + +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index +# of all compounds will be generated. Enable this if the project +# contains a lot of classes, structs, unions or interfaces. + +ALPHABETICAL_INDEX = NO + +# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then +# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns +# in which this list will be split (can be a number in the range [1..20]) + +COLS_IN_ALPHA_INDEX = 5 + +# In case all classes in a project start with a common prefix, all +# classes will be put under the same header in the alphabetical index. +# The IGNORE_PREFIX tag can be used to specify one or more prefixes that +# should be ignored while generating the index headers. + +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES (the default) Doxygen will +# generate HTML output. + +GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `html' will be used as the default path. + +HTML_OUTPUT = html + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for +# each generated HTML page (for example: .htm,.php,.asp). If it is left blank +# doxygen will generate files with .html extension. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a personal HTML header for +# each generated HTML page. If it is left blank doxygen will generate a +# standard header. + +HTML_HEADER = + +# The HTML_FOOTER tag can be used to specify a personal HTML footer for +# each generated HTML page. If it is left blank doxygen will generate a +# standard footer. + +HTML_FOOTER = + +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading +# style sheet that is used by each HTML page. It can be used to +# fine-tune the look of the HTML output. If the tag is left blank doxygen +# will generate a default style sheet. Note that doxygen will try to copy +# the style sheet file to the HTML output directory, so don't put your own +# stylesheet in the HTML output directory as well, or it will be erased! + +HTML_STYLESHEET = + +# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, +# files or namespaces will be aligned in HTML using tables. If set to +# NO a bullet list will be used. + +HTML_ALIGN_MEMBERS = YES + +# If the GENERATE_HTMLHELP tag is set to YES, additional index files +# will be generated that can be used as input for tools like the +# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) +# of the generated HTML documentation. + +GENERATE_HTMLHELP = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can +# be used to specify the file name of the resulting .chm file. You +# can add a path in front of the file if the result should not be +# written to the html output directory. + +CHM_FILE = + +# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can +# be used to specify the location (absolute path including file name) of +# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run +# the HTML help compiler on the generated index.hhp. + +HHC_LOCATION = + +# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag +# controls if a separate .chi index file is generated (YES) or that +# it should be included in the master .chm file (NO). + +GENERATE_CHI = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag +# controls whether a binary table of contents is generated (YES) or a +# normal table of contents (NO) in the .chm file. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members +# to the contents of the HTML help documentation and to the tree view. + +TOC_EXPAND = NO + +# The DISABLE_INDEX tag can be used to turn on/off the condensed index at +# top of each HTML page. The value NO (the default) enables the index and +# the value YES disables it. + +DISABLE_INDEX = NO + +# This tag can be used to set the number of enum values (range [1..20]) +# that doxygen will group on one line in the generated HTML documentation. + +ENUM_VALUES_PER_LINE = 4 + +# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be +# generated containing a tree-like index structure (just like the one that +# is generated for HTML Help). For this to work a browser that supports +# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, +# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are +# probably better off using the HTML help feature. + +GENERATE_TREEVIEW = NO + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be +# used to set the initial width (in pixels) of the frame in which the tree +# is shown. + +TREEVIEW_WIDTH = 250 + +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- + +# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will +# generate Latex output. + +GENERATE_LATEX = YES + +# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `latex' will be used as the default path. + +LATEX_OUTPUT = latex + +# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be +# invoked. If left blank `latex' will be used as the default command name. + +LATEX_CMD_NAME = latex + +# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to +# generate index for LaTeX. If left blank `makeindex' will be used as the +# default command name. + +MAKEINDEX_CMD_NAME = makeindex + +# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact +# LaTeX documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_LATEX = NO + +# The PAPER_TYPE tag can be used to set the paper type that is used +# by the printer. Possible values are: a4, a4wide, letter, legal and +# executive. If left blank a4wide will be used. + +PAPER_TYPE = a4wide + +# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX +# packages that should be included in the LaTeX output. + +EXTRA_PACKAGES = + +# The LATEX_HEADER tag can be used to specify a personal LaTeX header for +# the generated latex document. The header should contain everything until +# the first chapter. If it is left blank doxygen will generate a +# standard header. Notice: only use this tag if you know what you are doing! + +LATEX_HEADER = + +# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated +# is prepared for conversion to pdf (using ps2pdf). The pdf file will +# contain links (just like the HTML output) instead of page references +# This makes the output suitable for online browsing using a pdf viewer. + +PDF_HYPERLINKS = NO + +# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of +# plain latex in the generated Makefile. Set this option to YES to get a +# higher quality PDF documentation. + +USE_PDFLATEX = NO + +# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. +# command to the generated LaTeX files. This will instruct LaTeX to keep +# running if errors occur, instead of asking the user for help. +# This option is also used when generating formulas in HTML. + +LATEX_BATCHMODE = NO + +# If LATEX_HIDE_INDICES is set to YES then doxygen will not +# include the index chapters (such as File Index, Compound Index, etc.) +# in the output. + +LATEX_HIDE_INDICES = NO + +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- + +# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output +# The RTF output is optimized for Word 97 and may not look very pretty with +# other RTF readers or editors. + +GENERATE_RTF = NO + +# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `rtf' will be used as the default path. + +RTF_OUTPUT = rtf + +# If the COMPACT_RTF tag is set to YES Doxygen generates more compact +# RTF documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_RTF = NO + +# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated +# will contain hyperlink fields. The RTF file will +# contain links (just like the HTML output) instead of page references. +# This makes the output suitable for online browsing using WORD or other +# programs which support those fields. +# Note: wordpad (write) and others do not support links. + +RTF_HYPERLINKS = NO + +# Load stylesheet definitions from file. Syntax is similar to doxygen's +# config file, i.e. a series of assignments. You only have to provide +# replacements, missing definitions are set to their default value. + +RTF_STYLESHEET_FILE = + +# Set optional variables used in the generation of an rtf document. +# Syntax is similar to doxygen's config file. + +RTF_EXTENSIONS_FILE = + +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- + +# If the GENERATE_MAN tag is set to YES (the default) Doxygen will +# generate man pages + +GENERATE_MAN = NO + +# The MAN_OUTPUT tag is used to specify where the man pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `man' will be used as the default path. + +MAN_OUTPUT = man + +# The MAN_EXTENSION tag determines the extension that is added to +# the generated man pages (default is the subroutine's section .3) + +MAN_EXTENSION = .3 + +# If the MAN_LINKS tag is set to YES and Doxygen generates man output, +# then it will generate one additional man file for each entity +# documented in the real man page(s). These additional files +# only source the real man page, but without them the man command +# would be unable to find the correct page. The default is NO. + +MAN_LINKS = NO + +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- + +# If the GENERATE_XML tag is set to YES Doxygen will +# generate an XML file that captures the structure of +# the code including all documentation. + +GENERATE_XML = NO + +# The XML_OUTPUT tag is used to specify where the XML pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `xml' will be used as the default path. + +XML_OUTPUT = xml + +# The XML_SCHEMA tag can be used to specify an XML schema, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_SCHEMA = + +# The XML_DTD tag can be used to specify an XML DTD, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_DTD = + +# If the XML_PROGRAMLISTING tag is set to YES Doxygen will +# dump the program listings (including syntax highlighting +# and cross-referencing information) to the XML output. Note that +# enabling this will significantly increase the size of the XML output. + +XML_PROGRAMLISTING = YES + +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- + +# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will +# generate an AutoGen Definitions (see autogen.sf.net) file +# that captures the structure of the code including all +# documentation. Note that this feature is still experimental +# and incomplete at the moment. + +GENERATE_AUTOGEN_DEF = NO + +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- + +# If the GENERATE_PERLMOD tag is set to YES Doxygen will +# generate a Perl module file that captures the structure of +# the code including all documentation. Note that this +# feature is still experimental and incomplete at the +# moment. + +GENERATE_PERLMOD = NO + +# If the PERLMOD_LATEX tag is set to YES Doxygen will generate +# the necessary Makefile rules, Perl scripts and LaTeX code to be able +# to generate PDF and DVI output from the Perl module output. + +PERLMOD_LATEX = NO + +# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be +# nicely formatted so it can be parsed by a human reader. This is useful +# if you want to understand what is going on. On the other hand, if this +# tag is set to NO the size of the Perl module output will be much smaller +# and Perl will parse it just the same. + +PERLMOD_PRETTY = YES + +# The names of the make variables in the generated doxyrules.make file +# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. +# This is useful so different doxyrules.make files included by the same +# Makefile don't overwrite each other's variables. + +PERLMOD_MAKEVAR_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- + +# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will +# evaluate all C-preprocessor directives found in the sources and include +# files. + +ENABLE_PREPROCESSING = YES + +# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro +# names in the source code. If set to NO (the default) only conditional +# compilation will be performed. Macro expansion can be done in a controlled +# way by setting EXPAND_ONLY_PREDEF to YES. + +MACRO_EXPANSION = NO + +# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES +# then the macro expansion is limited to the macros specified with the +# PREDEFINED and EXPAND_AS_PREDEFINED tags. + +EXPAND_ONLY_PREDEF = NO + +# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files +# in the INCLUDE_PATH (see below) will be search if a #include is found. + +SEARCH_INCLUDES = YES + +# The INCLUDE_PATH tag can be used to specify one or more directories that +# contain include files that are not input files but should be processed by +# the preprocessor. + +INCLUDE_PATH = + +# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard +# patterns (like *.h and *.hpp) to filter out the header-files in the +# directories. If left blank, the patterns specified with FILE_PATTERNS will +# be used. + +INCLUDE_FILE_PATTERNS = + +# The PREDEFINED tag can be used to specify one or more macro names that +# are defined before the preprocessor is started (similar to the -D option of +# gcc). The argument of the tag is a list of macros of the form: name +# or name=definition (no spaces). If the definition and the = are +# omitted =1 is assumed. To prevent a macro definition from being +# undefined via #undef or recursively expanded use the := operator +# instead of the = operator. + +PREDEFINED = + +# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then +# this tag can be used to specify a list of macro names that should be expanded. +# The macro definition that is found in the sources will be used. +# Use the PREDEFINED tag if you want to use a different macro definition. + +EXPAND_AS_DEFINED = + +# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then +# doxygen's preprocessor will remove all function-like macros that are alone +# on a line, have an all uppercase name, and do not end with a semicolon. Such +# function macros are typically used for boiler-plate code, and will confuse +# the parser if not removed. + +SKIP_FUNCTION_MACROS = YES + +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- + +# The TAGFILES option can be used to specify one or more tagfiles. +# Optionally an initial location of the external documentation +# can be added for each tagfile. The format of a tag file without +# this location is as follows: +# TAGFILES = file1 file2 ... +# Adding location for the tag files is done as follows: +# TAGFILES = file1=loc1 "file2 = loc2" ... +# where "loc1" and "loc2" can be relative or absolute paths or +# URLs. If a location is present for each tag, the installdox tool +# does not have to be run to correct the links. +# Note that each tag file must have a unique name +# (where the name does NOT include the path) +# If a tag file is not located in the directory in which doxygen +# is run, you must also specify the path to the tagfile here. + +TAGFILES = + +# When a file name is specified after GENERATE_TAGFILE, doxygen will create +# a tag file that is based on the input files it reads. + +GENERATE_TAGFILE = + +# If the ALLEXTERNALS tag is set to YES all external classes will be listed +# in the class index. If set to NO only the inherited external classes +# will be listed. + +ALLEXTERNALS = NO + +# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed +# in the modules index. If set to NO, only the current project's groups will +# be listed. + +EXTERNAL_GROUPS = YES + +# The PERL_PATH should be the absolute path and name of the perl script +# interpreter (i.e. the result of `which perl'). + +PERL_PATH = /usr/bin/perl + +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- + +# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will +# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base +# or super classes. Setting the tag to NO turns the diagrams off. Note that +# this option is superseded by the HAVE_DOT option below. This is only a +# fallback. It is recommended to install and use dot, since it yields more +# powerful graphs. + +CLASS_DIAGRAMS = YES + +# If set to YES, the inheritance and collaboration graphs will hide +# inheritance and usage relations if the target is undocumented +# or is not a class. + +HIDE_UNDOC_RELATIONS = NO + +# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is +# available from the path. This tool is part of Graphviz, a graph visualization +# toolkit from AT&T and Lucent Bell Labs. The other options in this section +# have no effect if this option is set to NO (the default) + +HAVE_DOT = YES + +# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect inheritance relations. Setting this tag to YES will force the +# the CLASS_DIAGRAMS tag to NO. + +CLASS_GRAPH = YES + +# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect implementation dependencies (inheritance, containment, and +# class references variables) of the class with other documented classes. + +COLLABORATION_GRAPH = NO + +# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for groups, showing the direct groups dependencies + +GROUP_GRAPHS = NO + +# If the UML_LOOK tag is set to YES doxygen will generate inheritance and +# collaboration diagrams in a style similar to the OMG's Unified Modeling +# Language. + +UML_LOOK = NO + +# If set to YES, the inheritance and collaboration graphs will show the +# relations between templates and their instances. + +TEMPLATE_RELATIONS = NO + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT +# tags are set to YES then doxygen will generate a graph for each documented +# file showing the direct and indirect include dependencies of the file with +# other documented files. + +INCLUDE_GRAPH = YES + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and +# HAVE_DOT tags are set to YES then doxygen will generate a graph for each +# documented header file showing the documented files that directly or +# indirectly include this file. + +INCLUDED_BY_GRAPH = YES + +# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will +# generate a call dependency graph for every global function or class method. +# Note that enabling this option will significantly increase the time of a run. +# So in most cases it will be better to enable call graphs for selected +# functions only using the \callgraph command. + +CALL_GRAPH = YES + +# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen +# will graphical hierarchy of all classes instead of a textual one. + +GRAPHICAL_HIERARCHY = NO + +# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES +# then doxygen will show the dependencies a directory has on other directories +# in a graphical way. The dependency relations are determined by the #include +# relations between the files in the directories. + +DIRECTORY_GRAPH = NO + +# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images +# generated by dot. Possible values are png, jpg, or gif +# If left blank png will be used. + +DOT_IMAGE_FORMAT = png + +# The tag DOT_PATH can be used to specify the path where the dot tool can be +# found. If left blank, it is assumed the dot tool can be found in the path. + +DOT_PATH = + +# The DOTFILE_DIRS tag can be used to specify one or more directories that +# contain dot files that are included in the documentation (see the +# \dotfile command). + +DOTFILE_DIRS = + +# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width +# (in pixels) of the graphs generated by dot. If a graph becomes larger than +# this value, doxygen will try to truncate the graph, so that it fits within +# the specified constraint. Beware that most browsers cannot cope with very +# large images. + +MAX_DOT_GRAPH_WIDTH = 1024 + +# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height +# (in pixels) of the graphs generated by dot. If a graph becomes larger than +# this value, doxygen will try to truncate the graph, so that it fits within +# the specified constraint. Beware that most browsers cannot cope with very +# large images. + +MAX_DOT_GRAPH_HEIGHT = 1024 + +# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the +# graphs generated by dot. A depth value of 3 means that only nodes reachable +# from the root by following a path via at most 3 edges will be shown. Nodes +# that lay further from the root node will be omitted. Note that setting this +# option to 1 or 2 may greatly reduce the computation time needed for large +# code bases. Also note that a graph may be further truncated if the graph's +# image dimensions are not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH +# and MAX_DOT_GRAPH_HEIGHT). If 0 is used for the depth value (the default), +# the graph is not depth-constrained. + +MAX_DOT_GRAPH_DEPTH = 0 + +# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent +# background. This is disabled by default, which results in a white background. +# Warning: Depending on the platform used, enabling this option may lead to +# badly anti-aliased labels on the edges of a graph (i.e. they become hard to +# read). + +DOT_TRANSPARENT = NO + +# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output +# files in one run (i.e. multiple -o and -T options on the command line). This +# makes dot run faster, but since only newer versions of dot (>1.8.10) +# support this, this feature is disabled by default. + +DOT_MULTI_TARGETS = NO + +# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will +# generate a legend page explaining the meaning of the various boxes and +# arrows in the dot generated graphs. + +GENERATE_LEGEND = YES + +# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will +# remove the intermediate dot files that are used to generate +# the various graphs. + +DOT_CLEANUP = YES + +#--------------------------------------------------------------------------- +# Configuration::additions related to the search engine +#--------------------------------------------------------------------------- + +# The SEARCHENGINE tag specifies whether or not a search engine should be +# used. If set to NO the values of all tags below this one will be ignored. + +SEARCHENGINE = NO diff --git a/doc/high_level_doc/Makefile b/doc/high_level_doc/Makefile new file mode 100644 index 0000000..b9491fe --- /dev/null +++ b/doc/high_level_doc/Makefile @@ -0,0 +1,2 @@ +clean: + rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out refman.pdf diff --git a/doc/high_level_doc/coordinate_system.eps b/doc/high_level_doc/coordinate_system.eps new file mode 100644 index 0000000..6c4b1b2 --- /dev/null +++ b/doc/high_level_doc/coordinate_system.eps @@ -0,0 +1,15151 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: /home/free_icp/doc/high_level_doc/coordinate_system.eps +%%Creator: XV version 3.10a-jumboFix of 20050410 - by John Bradley +%%BoundingBox: 99 181 513 611 +%%Pages: 1 +%%DocumentFonts: +%%EndComments +%%EndProlog + +%%Page: 1 1 + +% remember original state +/origstate save def + +% build a temporary dictionary +20 dict begin + +% define string to hold a scanline's worth of data +/pix 1242 string def + +% define space for color conversions +/grays 414 string def % space for gray scale line +/npixls 0 def +/rgbindx 0 def + +% lower left corner +99 181 translate + +% size of image (on paper, in 1/72inch coords) +414.00000 429.98400 scale + +% define 'colorimage' if it isn't defined +% ('colortogray' and 'mergeprocs' come from xwd2ps +% via xgrab) +/colorimage where % do we know about 'colorimage'? + { pop } % yes: pop off the 'dict' returned + { % no: define one + /colortogray { % define an RGB->I function + /rgbdata exch store % call input 'rgbdata' + rgbdata length 3 idiv + /npixls exch store + /rgbindx 0 store + 0 1 npixls 1 sub { + grays exch + rgbdata rgbindx get 20 mul % Red + rgbdata rgbindx 1 add get 32 mul % Green + rgbdata rgbindx 2 add get 12 mul % Blue + add add 64 idiv % I = .5G + .31R + .18B + put + /rgbindx rgbindx 3 add store + } for + grays 0 npixls getinterval + } bind def + + % Utility procedure for colorimage operator. + % This procedure takes two procedures off the + % stack and merges them into a single procedure. + + /mergeprocs { % def + dup length + 3 -1 roll + dup + length + dup + 5 1 roll + 3 -1 roll + add + array cvx + dup + 3 -1 roll + 0 exch + putinterval + dup + 4 2 roll + putinterval + } bind def + + /colorimage { % def + pop pop % remove 'false 3' operands + {colortogray} mergeprocs + image + } bind def + } ifelse % end of 'false' case + + + +414 430 8 % dimensions of data +[414 0 0 -430 0 430] % mapping matrix +{currentfile pix readhexstring pop} +false 3 colorimage + +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d8cee6d8cee6d8cee6d8cee6 +d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6 +d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6 +d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6 +d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6 +d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6 +d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6 +d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6 +d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6 +d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6 +d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6 +d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6 +d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d8cee6d8cee6d8cee6d8cee6 +d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6 +d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6 +d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6 +d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6 +d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6 +d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6 +d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6 +d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6 +d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6 +d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6 +d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6 +d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d8cee6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d6cce5d6cce5d6cce5d6cce5 +d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5 +d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5 +d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5 +d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5 +d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5 +d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5 +d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5 +d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5 +d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5 +d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5 +d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5 +d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d6cce5d6cce5d6cce5d6cce5 +d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5 +d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5 +d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5 +d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5 +d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5 +d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5 +d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5 +d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5 +d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5 +d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5 +d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5 +d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d6cce5d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d8cce5d7cce5d7cde6d7cee6d7cee6d7cee6d7cee6 +d7cde6d8cde5d9cce4d8cbe4dacbe4dacce4d9cde5d9cde5d8cde6d7cee6d8cee6d8cbe4 +d8cbe4d9cce4d8cde5d7cce5d5cde6d5cee6d5cfe7d5cfe7d5cee6d5cee6d5cde6d6cde5 +d7cce5d7cce5d8cce5d8cce5d8cce5d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d8cce5d9cce4d8cce5d6cde5d5cee6d5cfe7d5d0e8d5cfe7 +d7cde6d8cbe4dccae2dec9e1dec8e0dec8e0ddcae2dbcce4d9cee6d5d0e6d8cfe6ddcae2 +dec9e1dbc9e2d8cbe4d6cde5d3cfe7d0d0e9cfd1e9cfd1e9d0d0e9d2d0e8d4cfe7d5cde6 +d7cce5d8cce4d8cbe4d8cbe4d9cce4d8cce5d8cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cee6 +d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6 +d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d8cde6d8cce5d9cce4d8cce4d6cde5d5cee6d3d0e8d3d1e9d4cfe8 +d7cde6d8cbe4dcc9e2dec8e0dfc7e0dfc7e0dec9e1dccce4d9cee6d5d1e6d7cfe6decae2 +ddc7e0dcc9e2d8cbe4d6cde5d3d0e8d0d0e9ced2eacfd1e9d0d0e9d3d0e8d4cde6d5cde6 +d7cce5d8cce4d8cbe4d8cbe4d8cce4d8cde5d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cee6 +d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6 +d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d8cde6d8cce5d9cce4d8cce5d6cde5d5cee6d4cfe8d3d1e9d4cfe8 +d7cee6d9cce4dbcae3ddc9e2dec9e1ddc9e1dbcbe3d9cce4d8cee6d5d0e6d6d0e6dbcbe4 +dcc9e2dac9e3d8cbe4d7cde6d4cfe7d2d0e8d2d0e8d3d0e8d5cfe7d6cee6d7cde6d8cde5 +d8cce4d9cce4d8cce4d8cde5d7cce5d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cee6 +d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6 +d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d8cde5d9cce4d8cce5d7cde6d6cee6d5cfe7d5d0e8d5cfe7 +d6cee6d8cde5d8cbe4d9cae3dacae3d9cae3d9cce4d8cde6d6cee6d5d0e8d5d0e7d8cde6 +d9cde5d9cde5d8cde5d7cde6d6cde6d7cee6d7cde6d8cde5d9cce4d9cce4dacbe4d9cbe4 +d9cce4d8cde5d7cde6d6cee6d6cee6d7cee6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cee6 +d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6 +d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cce5d8cce5d8cce5d8cde6d7cde6d6cee6d5cfe7d5cee6 +d5cee6d6cee6d6cde5d7cce5d7cce5d7cce5d6cde5d5cee6d4cfe7d4cfe8d5d0e8d5d0e7 +d6d0e7d6cfe7d7cfe7d8cee6d8cde5d9cce4dbcbe4dccae3ddcae2dccae2dccae3dbcbe4 +d9cce4d9cee6d6cfe7d4d1e7d4d1e8d6cee6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cee6 +d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6d7cee6 +d7cee6d7cee6d7cee6d7cee6d7cee6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d8cce5d8cde5d8cde5d8cde6d7cde6d7cee6d6cee6 +d5cee6d5cfe7d4cfe7d3cfe7d3cfe7d3cfe7d3cfe7d3cfe7d4cfe7d4cfe7d4cfe8d1d1e9 +d1d3e7d3d2e7d5d0e7d8cee6d9cde5dbcbe4ddcae2decae2dec9e1dec9e1ddcae2dbcbe4 +d9cde5d9cee6d5d0e6d2d3e8d2d2e7d6cfe7d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d8cde5d9cee6d9cee6d9cee6d9cee6d8cde6d7cee6 +d5cfe7d4cfe8d2d1e9d1d1e9d0d0e9d0d0e9d0d0e8d1cfe8d3cee7d4cde6d4cfe7cfd3e9 +cfd5e7d1d2e7d4d1e7d7cfe7d9cde5dbcbe4ddc9e2ddc9e2ddc9e2ddc9e2dbcae3dacce4 +d9cee6d7cee6d5d0e6d5d2e5d4d2e7d6cfe7d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d9cee6d9cee6d9cde5d9cde5d9cde5d9cde5d8cde6 +d6cee6d5d0e8d2d1e9d1d1e9d0d2ead0d1e9d2d0e8d3cfe7d4cde6d5cce5d4cde6cfd3ea +ced6e7d0d3e7d3d1e8d6cfe7d8cde5d9cce4d8cbe4dacae3d8cae3d8cbe4d8cde5d7cde6 +d7cee6d7cfe6d5d0e6d5d0e6d5d0e6d7cee6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d9cee6d9cee6d9cde5d9cee6d8cde5d8cde5d8cde6 +d8cee6d7cfe6d7d0e6d5d0e6d5d0e6d5cfe7d6cee6d6cde5d6cce5d5cae4d4cde6d1d1e9 +d0d3e8d1d2e9d4d1e9d5cfe7d6cde5d6cde5d6cce5d5cde6d4cde6d4cde6d3cfe7d2d0e8 +d3d0e8d5d0e8d7cfe7dacfe6dacfe6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d9cee6d9cde5d5c7e1d6cae4d7cce5d8cde6d9cfe6dbd0e7 +dccfe6d8cae3e2d3e6dbcbdfddcbdfdbc9e0dbcbe4dacbe4d4c6e1d8cce4d6cbe4d3cfe7 +d0cfe7d1cee7d5cfe7d7d0e7d4cde6d0cae4cec9e4d0d0e8c8cae6c8cce6cfd3ead1d5ec +d0d0e8d4cee7dbd1e8d6c7e2d9cae3d9cde5d8cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d7cbe4d6cae4d8cde5 +d9cee6d7cbe4d7cbe4d9cde5d9cee6d7cce5d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d8cde6d9cde5ded1e7d5c7e1d5cae4d7cee6d5cde6d3cae4d6cbe4 +ddcee4e0cce1f0d5e4e3c4d4edcbdbeecee1eccde1e7cde3e1cce3d6c5e0d6cae4dad1e8 +d4cee7d2cae4d4cbe4d6cce5d7cde6d4cde6d0cde6ced0e9cbd2ebc6d1eacad5eccbd3eb +cacde7d0cbe5dbcfe6d9c6e0ddcbe3d9cce4d8cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d9cee6d8cde5d6cae4d7cbe4 +d9cee6d9cde5d7cbe4d7cbe4d8cce5d8cde5d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d8cde6d9cde5ddcde5d6c6e1d6cce5d9d1e8d4cfe7d0cae4d5cae3 +e3cfe4eed2e2f4cad8d29fafd9a3b2e0a9bcdeadc4e4bcd5edd0e3d8c3ded7c8e2d9cee6 +d6cce5d5cae4d6c9e3d8cae3dacde5d9cde5d4cde6cdcde7cfd6ecc6d1ebc7d3ecc8d1ea +cacee7d3cee7ddcfe6d7c3dfdcc8e1d9cbe4d8cde5d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d8cde5 +d8cde5d9cde5d9cde5d9cde5d9cde5d9cde5d9cde5d9cde5d9cee6d9cde5d7cae4d6cae4 +d8cde5ddd0e7d7cbe4d5c9e3d7cbe4d8cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d8cde6d9cde5dbcae3d6c7e1d7cee6d7d2e9d2d1e9d1cee7dacfe6 +e8d1e4f2cbdbdfa3b2b16271b15968b55f72b86c81cb90a9ebc2dae1c6dfd9c8e2d4c9e3 +d7cce5d9cde5dbcbe4dcc9e2decae2dfcce3ddcce4d6cde6d5d5ebcad1e9cad2eacbd2eb +ced0e9d6d0e8dccfe6d6c2ded9c6e0d8cae3d8cde5d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d8cde5 +d9cde5d9cde5d9cde5d9cde5d9cde5d9cde5d9cde5d9cde5d8cce4d9cde5d9cde5d6cae3 +d6cae3ddd0e6d8cce4d6c9e3d7cbe4d8cde5d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d8cde6d9cce4dbc7e1d9cae3d7d0e7d1d1e9cdd1e9d0d2eadbd1e6 +e4c7dae1afbfb860709927329b2029981e2797293dad5a72d49db7eccee2dbcbe3d3c9e3 +d6cbe4ddcce4dec9e1e0c6dfe4c6dee9cae0ebcfe3e7d1e5e1d5e9d6d0e6d4d3e9d2d4ea +d0d0e8d5cee7dccfe6d5c3dfd9c7e1d8cbe4d8cde5d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d8cde5 +d9cde5d9cde5d9cde5d9cde5d9cde5d9cde5d9cde5d9cde5d7cae4d8cce4ded1e7d9cde5 +d6c9e3d9cde5d9cde5d7cae4d8cce4d9cde5d8cde5d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d8cde6d9cce4decae2dfcee5d7d0e8cacee7c3cde7ccd2e9d8cfe5 +d7b5c9c78797951f2ba01e21b12429a71f219b1d239c3347b77187f2cee1e0cee4d6cfe7 +d6cde5d9c9e3e0c5dfe7c4dcefc3dbf2c1d9efbed7e8bad1e0c0d6dbc3d8dccee2d8d1e6 +d0cbe4d0c9e3d7cce5d4c6e1ddcee5d9cde5d8cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d8cde5 +d9cde5d9cde5d9cde5d9cde5d9cde5d9cde5d9cde5d9cde5d7cbe4d9cde5e0d2e8dfd1e7 +d8cce4d7cae4d9cde5d9cde5d8cde5d8cce5d8cde5d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d8cde5dacbe4ddc7e0e0cce3d5d0e8c8cee8c2d0e9ced6ecdcd3e7 +dbb7c8ca82939b1c20b52223c92a2aba2324ab21229f2734a75667f2c9d8e2d0e4d6d0e8 +d1cbe5d9c9e3e7cae0f2c8ddf2bad5e7a0c1c97c9aad627cae7286bb90a3d4b8c9deccdf +d9cee4d5cce5dad1e8d3c8e2d5cae4d7cce5d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d8cde5 +d9cde5d9cde5d9cde5d9cde5d9cde5d9cde5d9cde5d9cde5ddd0e6dbcee6d6c9e3d8cce4 +ded1e7d7cbe4d9cde5dccfe6d8cce5d7cae4d8cde5d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d8cde5dacbe4ddc5dfdac6e0d3cee7cbd4ecc7d8eecedaeddfd7e9 +efc7d5f1a5b1ba2f37c12424cb2626c02424b32123a42128a04250d7aab6e3d2e3cccee7 +cdcde6decde4eccbe0f0b9d4df90b2bb587a9724457f132479142aa25b6dd2a5b4eacddb +e5d3e6dbd0e6dad5ebd0cbe5cdc7e3d4cbe5d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d8cde5 +d9cde5d9cde5d9cde5d9cde5d9cde5d9cde5d9cde5d9cde5e0d2e8d0c3e0b1a5c9bcb0d3 +e0d2e8dccfe6d6c9e3d9cde5d8cce4d7cbe4d8cde5d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d8cde6d9cce4dccbe3d3c4e0d4cde6d5d6ecccd7ecc9d2e7d5d0e3 +ebcedef6becdb83340bb2324c92625c92626bd2324a720219c2b32c2828fedcedfd1cfe8 +d0d2eae0d0e6e9c2dae19cb9c45f7ba0243d931a2099213180172aa86374daadbeeccfe1 +dfcce3d3c5dfd5cee6d0cee7d0d0e9d4cde6d7cee6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d8cde5d9cde5 +d9cde5d9cee6d8cee6d8cee6d7cde6d7cce5d8cce4dbcbe4e4cfe5cbb1cd9f829eb192af +e7cee3e3d0e5d3c4e0d7cbe4d8cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d7cde6d7cde6d7cde6d7cde6d7cde6d7cde6 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde6d6cee6d4cfe7d4cbe5d9cce4ddcee6d6d1e8d0d2e7d0d2e7 +dbd0e4edc5d8db728bb52530b42223b52423b72423b22122a42021aa4251f5c1d7d7cee6 +d1d1e9dfcde4eec8dcd78c9fac2e3cab2026aa2125881819741326c594a7e3c4dbe1cbe2 +dbcae3d8c5e0d7cae4d7d7ebc8cce4d1cde6d6cde5d7cce5d7cce5d7cce5d7cce5d7cce5 +d7cce5d7cce5d7cce5d7cce5d7cce5d7cce5d7cce5d7cce5d7cce5d7cce5d8cce5dccde5 +d9cce4d5cbe4d3cfe6d6d4ebcac6e2d9d0e7d6cae3dbc5dfeccde1cb9fad8c4d56a66a75 +f6d4e3eacbe1d6c1ddd8cde5d1cce5d0cae4d6cde5d7cce5d7cce5d7cce5d7cce5d7cce5 +d7cce5d7cce5d7cce5d7cce5d7cce5d7cce5d7cce5d7cce5d7cce5d7cce5d7cce5d7cce5 +d7cce5d7cce5d7cce5d7cce5d7cce5d7cce5d7cce5d7cce5d7cce5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d7cde6d4cfe7cdd1ead1cfe8dccbe3e1cae2ddcee4d5d1e7d0d2e9 +d2d2e9e2cae1f1a1bfad2f46aa2822aa2321b42523b92423ae2122ab2834f0a4bcdacae3 +d5d2e9e2cce2e2afc1c56670a51f20b02122ab2121881819893f4ed5b1c7e2cce3d9cae3 +dac9e3d9c6e1d6c7e2d7d7ebc9cce2d1cce5d6cce5d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4dbcce4 +d9cbe4d5cce4d3d2e8d5d7ecc3c3e1d8d0e7d7cae3e0c8e0efc4d5cd8c8e96382da74a46 +f7bcc3f1cadfdbc6e0d6cde5d2d0e8d1cce6d5cce5d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d7cde6d4cfe7cdd1ead0d0e9dccbe3e2cbe2decee4d7cfe6d2d1e9 +d1d1e9dccbe3f6bed6ae455bab2d2dad2522b32423b82423b22122b1242cd4758de3cbe2 +ded4e9edcee1cf8a9bac3b41a92021b021229b1c1e87171ab57b8cddc1d7dbcbe4d7c8e2 +d9c9e3d9c6e0d6c6e1d2d2e7cdd0e4d3cee6d7cce5d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d9c9e3 +dbcbe3dacfe6d5d3e9d6d6ecc6c3e1d5cce5d8cbe4ebd0e3e5acbec56c68a53225ad352d +e1858df7d2e2e0cce3d4c9e3d5d0e8d8d1e8d6cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d5cee6d1cfe8d3d0e8d9cce4ddcce3d9cce4d8cee6d5cfe7 +d5cee6decbe3f6d1e2bc667cae3036af2322b32323b32222ae2022b12223b6465af1d0e2 +ebd4e7f1c4d7c67281a5262cb02322b024228917197d181bdaadbce5cee3dac9e3d8c8e2 +d9c9e3d9c6e1d7c7e1d0cee5d2d3e8d4cde6d7cce5d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d8cae3d9c6e1 +dccae2ded0e7d7d2e9d7d3eacfc5e1d4c8e2ddcee5f1d5e6d490a0b0413daf2a23b52a27 +bb4750f9d9e7e0d0e6d3c7e2d6cce5d9cfe7d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d7cde6d6cee6d6cee6d9cee6d9cee5d9cee6d8cde6d8cde5 +d8cce4ddcbe3f4d6e6da98acb03a43af2222b32323af2322ab1f21b02122a52631f6cbda +f3d2e2e6a4b5c15666ac2529b42523ac25227f15158b3f44eecbd9e4d1e6d9cae3d9c9e3 +dac8e2d9c6e0d9cae3d1cee5d4d2e7d5cee6d7cce5d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d8cae3d9c6e0 +decae2e0d0e6d7cfe7d7d0e7d6c9e3d6c7e1e0d0e6f0cee2c57582a62321bc2424c92b29 +a82026f7d5e3dfd1e7d7cbe4d6c9e3d6cae3d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d9cde5d9cce4d9cde5d6cfe7d5d0e7d6cee6d8cde5d8cbe4 +dbcae3dcc9e2e5d2e6f7cbdcbc4e5eb32425b62423b02422ae2122b42123aa2325eaa9b2 +f9ced8cc7484af2b39ad2122ab2021991c1e751311c8989dedd5e4d9cce4d9cbe4dbcbe3 +d9c6e0d9c6e0decde5d8d0e7d5d0e5d6cde5d7cce5d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d9cae3dac6e0 +decae2decde4d5cbe4d5cce5dbcbe4ddcae2e6d3e7e4bacebe5f68b02122ce2826dc2e2b +b62225e4b0c1e5d4e8e1d1e7dac9e3d7c8e2d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d9cde5dacce4dfcbe3dbcce4d5d0e7d2d2e9d5cfe7d8cce5dac9e3 +dbc8e1dbc8e1d1c8e1f8e2eecb7083b72d38b12322af2422b12222b72323b32523bd6564 +f3c0c3c25461ae2022b62223a920217f15156c1c1df9dfe7ded0e4d2c7e2dacce4dbc9e2 +d8c4dfdbc8e2decde5dfd3e8d3cce3d7cce4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d9cae3dcc8e1 +dec9e1dac9e3d3c8e2d4c9e3decde4e5cde3ebcfe3ca93a1b7474ac32725dc2e25dd2d26 +cd2830a85f73e6cfe3e3cfe5dccbe3d9cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d9cce4dccce4e1cae2decbe3d4d1e8d0d2ead3cfe7d8cce5dac9e2 +dbc6e0dac7e1d0c9e4efd8e8e299adbb4453a92021b02222b92523b72323b424239f2e22 +e68a87cb4347bc2124bf2528aa21227e17168e5d5ff1e7efd4d0e5d1cbe5dacce4d9c7e1 +d8c4dfdecbe3d8c9e2e0d3e8d4c9e2d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d9cae3dbc7e1 +dbc6e0d8c8e2d3cae4d3cce5dacce4e5cce2eec8d7b56d75ad2c2acb2726de2e25da2d25 +cd2627932f40e3bacfdfc8e1d9cae3d9cde5d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d9cce4dccce4e2cae1dfcbe3d4cfe8d0d2ead3cfe7d6cbe4d9c8e2 +dac7e1dac8e2dad2e9decae2f1bbd0bd5c6fa32024b42223c32925b92323b524239a1f1f +c2483bc12928bd2224b321229d1d2085232bbfa0a7d9dbe7cfd1e7d4d0e8d8cce5d8c5e0 +d9c6e0e0cfe5d2c4e0ded2e7d5c8e1d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d8c9e3d9c7e1 +d9c6e0d6c7e2d4cde6d2cee7d6cde5e4cbdff2c3ccab5254a92121cd2926de2e25e02e25 +c52425a12c3ce3a7bce0c3dcd9cce4d6cde5d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cde5d8cde5d8cde5d8cde5d8cde5d8cde5 +d8cce5d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4dac9e3e0c9e1dccae2d4cde6cfcfe8d0cbe5d4c9e3d6c7e1 +d8c7e1d9c7e1d9cee6dac7e0f1cddfc27b8ca7303db72425c52625b82323b72423a52221 +ae2722be2524bd2224ad1f22981c22934252d3c0c9d4dfecccd2ead0cfe8d7cae4d8c5e0 +d9c6e0dacae3d5c7e2d8cde5d6cae3d7cbe4d7cbe4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d6cae3d7c7e1 +d7c7e1d5c9e3cdcae5d0d0e9d2cfe4f2dfebdea2aab14542b32223ce2926dd2e25dd2d25 +c92526b22935d27c91e0bbd4d9cfe6d5cee7d6cce5d8cce5d8cce5d8cce5d7cbe4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5 +d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5 +d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5 +d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5 +d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5 +d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5 +d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5 +d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5 +d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5 +d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5 +d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5 +d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5 +d8cce5d8cce5d8cce5d8cce5d8cce5d8cce5 +d7cbe4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d9cae3dec8e0decae2d4cbe5cfcde6d0cbe5d3c9e3d5c7e2 +d6c6e1d7c7e1dacbe4dccae3ebd3e4d2a0b2b65163b32328c02525b72323bc2524b12523 +b22423c02424b82223a01e20962732b57689dbd0e0d1dfefcad2eacecce6d6c9e3d9c6e0 +d9c6e0d9c8e2d7cae3d7cbe4d7cbe4d7cbe4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d6cae3d6c7e2 +d7c8e2d4cae4cccae5d0d2eacdcfe2f4dee6c37576b0312bba2423cf2826da2e25d52a26 +c92625bc2429c35266e4b5c9ddd2e6d3cfe7d6cde5d8cce5d8cde5d8cde5d7cbe4d7cbe4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cbe4decae2dbc9e1d4cbe4d0cbe5d1cae4d3c9e3d5c9e3 +d5c8e2d8c8e2dfcae2dfcce3ded1e6e2c3d7c57287ab212cb62223b92323bf2724b82523 +b82523c02624ad212290181b993b4bddaec2e1daeccad7ebcad0e9cfcce6d6c9e3dac7e1 +dac6e0d9c9e3d7cae3d7cae4d6cbe4d7cbe4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d6cae3d6c9e3 +d5cae3d3cbe5d1cfe8d0d2eacecfdfe4c5c7a94845aa2121c12424d12926d62b26cf2926 +c82625c42325b92f3ee3a8bae2d2e6d5d0e6d6cce5d8cce5d8cce5d8cce5d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4dacae2d8c9e3d5cbe4d3cae4d3c9e3d4c9e3d4c9e3 +d5cae3d7c9e3dbc5dfe0cce3d0cce4e9d8ead08fa6aa293db02022bc2424b82323bb2424 +b72423b72423a11f208a191ca45771f1cde0dcd5e9cad1e9cdcfe7d0cbe5d6cae3d9c7e1 +dac7e1d8c9e2d7cae4d6cbe4d5cbe4d6cbe4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d6cbe4 +d3cae4d1cbe5d5d1e9d1cfe7dfdbe7cfa7a99c2b27b52223cc2726d42b26d42c26ce2a26 +cd2926cf2726b12022d78d9ae2c9d8dbd0e6d7cce5d7cbe4d7cbe4d7cbe4d8cce5d8cce5 +d8cce5d8cce5d7cbe4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cbe4d8cbe4d7cbe4d4cae4d4c9e3d4c9e3d4c9e3d4c9e3 +d6cbe4d7cae3d9c1dddfcee5cac9e3e1d6ead9a5bfb74b66ac1f25c02824b12122bc2324 +b42122aa2121931b1d933545be879feacfe3d2c8e2d0d0e8d1cce6d4cbe4d6cae3d9c9e3 +dac8e2d8c9e2d7cae4d4cbe5d4cbe5d5cbe4d6cbe4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d5cbe4d7cfe7 +d4cde6d1cbe5d3cce6d3cae3f4e6f0b982849f2521c62825d42b26d52a26d42c26ce2a26 +d32d26da2c26b32122bc6066d9b0bee2d0e4d8cbe4d7cae4d6cae4d7cae4d8cce5d8cde5 +d8cde5d8cce5d7cbe4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d6cbe4d5cbe4d4cde4d4cbe5d4c9e3d5c9e3d6c9e3d6c9e3d6c9e3 +d7cae4d7cbe4dcc9e2ded0e6d0cbe5d8cee6e4c0d8cb7c959d1f29b82524bc2324c52725 +b724239a1d1e7d1417a25f71e0bdd5dcc9e2d7cbe4d9d0e7d6cbe4d6cbe4d7cbe4d9cae3 +d9cae3d8c9e3d7cae4d2cde6d2cde6d4cbe4d6cbe4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d5cce5d6d0e8 +d7d2e9d6cee6d5c9e3d9c6e0fbe5ef974a4fa22120c22425d22826d32926d32a26cc2726 +d42c26db2d26bc23249d2426d092a1eecfe1dccbe3d7cae4d5c9e3d6cae4d7cbe4d8cde5 +d8cde5d8cce5d7cbe4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d6cbe4d4cbe5d2cde5d2cde6d3cae4d6c9e3d6c9e3d6c9e3d7cae3 +dacae2dacbe3ded1e7d6cae3d6cee6d7cbe4e8d2e5d4a1b8942735a81f21cd2826cb2726 +b52223861617721b21ab7f8fedd8e9d9cde5e4d5e8d6c5e0d8c9e2d7cae3d8cbe3d9cbe3 +d9cbe3d8c9e3d7cbe4d1cce6cfcde6d4cbe4d6cbe4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d5cce5d0cbe5 +d2cee6d7cee6d7c7e1e7cae1f7ccdc8c272eac2322c12624d22826dc2d26d72a26d12826 +d42b26d72b26cb2826991d1ecc8089f3c7dae3cde3d8cce5d5c9e3d5c9e3d7cbe4d8cde5 +d8cce5d7cbe4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d6cbe4d4cbe5d0cfe6d0cee7d3cae4d5c8e2d5c7e2d7c8e2d9c9e3 +dbcae2dbcbe1d5cfe4cec8e2d8cce5d7c6e1e6d2e6dcbad1b05d6ba91f21cc2626cb2626 +ab1f217c1414894b52bfa5b3e3d7ead7cce5e1cee4d9c2dedbc7e1d9c9e3d9cbe3d9cbe3 +d9cbe3d9cbe3d6cbe4d0cee7cecce6d4cbe5d6cbe4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d5cce5cecae3 +d0cee5d8cde6ddc8e1edcadfd799af921f25b32523c62625d62a26e02d25de2e25db2d26 +d62b26d32a26cd2c26a61f20c6606ee8aec6e7cee3d8cde5d5c9e3d4c7e2d7cae4d8cce5 +d7cbe4d6cae4d5c9e3d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d6cbe4d4cbe5d0cee7d0cee7d3c9e3d5c7e2d5c6e1d6c7e1dac8e2 +dccae2dbcbe1d0cadfd4cbe3e0cce3dfc4dee8cbe1efcbd9dc96a1ba282ac02424c02525 +971b1e781717b0838be0cedddad1e7d4c9e3d6c1dde0c9e1dbc8e1d9cae3d9cce4d7cce4 +d8cce3d9cce4d6cbe4d0cde6d0cee7d4cbe5d6cbe4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d4cbe5cfcde5 +d1d1e7dbcee6e2c5def0c2dab55d77971c1fb22122c82725d62a26dd2d26e02e25e32f25 +d92b26cf2826c82725b12122b53c48d78fa6eccfe3d9cde5d5cae3d4c9e3d5cae4d7cce5 +d7cbe4d5c9e3d5c7e2d7cae4d7cae4d5cbe4d5cbe4d5cbe4d5cbe4d7cae4d6cae3d6cae3 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4 +d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4 +d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4 +d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4 +d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4 +d6cbe4d6cbe4d6cbe4d5cbe4d4cbe5d0cee7cfcce6d2c9e4d4c8e2d5c7e2d6c6e1d9c8e2 +dcc9e2dfcae2d7c8daebd5e5debad0d8a7bbe7b1bff4b4bbe4858abd2626bc2324a72125 +781212853e45c9a4b0ecd7e6dacce3d7cae4cfbcdbe0cee4d9cae3d7cae4d5cce4d4cde4 +d5cce4d6cce4d5cce5d2cde6d2cde6d4cbe4d6cbe4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d3cde6ccd0e8 +d0d4eadcd1e7e8c5ddf2b8d3a12e46a71f21b92323cb2726d62a26da2d25de2e25e32f25 +dd2d25d42a26cb2726bd2324af262ccd7b8eefcce1ddcde5d8cde6d1cae4cdc6e2d2cae4 +d7cce5d6cae3d6c7e2d6cae3d6cbe4d3cee7d1cde6d1cde6d3cde6d6cbe4d7c9e3d7c9e3 +d7cae4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4 +d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4 +d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4 +d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4 +d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4 +d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4 +d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4 +d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4 +d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4 +d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4 +d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4 +d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4 +d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4 +d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4 +d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4 +d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4 +d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4 +d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4 +d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4 +d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4 +d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4 +d6cbe4d6cbe4d7cae4d7cae4d7cae4d7cae4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d4cbe4d1cbe5d1cae4d2c9e4d2c8e3d4c8e2d5c7e2d8c8e2 +ddc9e2e3cae1e5c7d9edc4d0c98d97b8686fc96c72d86e70ce4947b62223b72524841720 +621322a2717fdabacaecd2e4decae1dacae2d1c1dedbcee6d6cbe4d4cbe5d3cde6d2cde6 +d3cde6d4cbe5d4cbe5d4cde6d4cbe5d5cbe4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d3cde6c9cfe8 +cad3eadbd0e7ecc4dbe79eb69d1e27b32122c02424cc2726d52a26da2b26dd2d25e02e25 +e02e25d92b26cf2826c52425af2322c46677e8bcd4e4d1e6d6cce5d2cde6cbc8e3d0cbe5 +d7cce5d8c9e3d8c8e2d7cae3d6cbe4d0cee7cdcfe7cecfe7d0cee7d5cae4d8c9e2d8c9e2 +d6cae3d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d7cae4d7cae4d7cae4d7cae4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d6cae4d6c7e2d6c9e3d3c8e3d0c9e3cfcae5d0cbe5d4cbe4 +dccae3e4c7dfe8b8d0c68192aa49559f2428a62121b32523ba2423b42122ad2424681019 +6d364ac09cafeacddee9d0e2dec8e0d7c6e0d7cbe4d7cee6d3cce5d2cbe5d1cce6d1cce6 +d2cde6d3cce5d4cbe5d5cce5d5cce5d7cbe4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d3cce5cad0e9 +c4cde6d8cce3efc1d7c96e84a01d21b92223c02424cf2826d72b26da2b26dd2d25e02e25 +e02e25da2c26d22a26c62625b12223af4755cd99b2eed9e9cfc2ded4cfe7d5d2e9d4cfe7 +d5cae4d5c6e1d8c8e2d8c9e2d6cbe4cfcfe7cbd1e8ccd0e8d0cee7d5cbe4d8c9e2d9c9e3 +d6cae3d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d7cae4d7cae4d7cae4d7cae4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d6cbe4d9c9e3dec5dfddc5dfd5c7e2cecbe5c9cde7c9cfe8cfcee7 +d9cce4e6c4ddd894b09c2c4ba21d2cb2212bb82224b82223bb2224b32123a5222371192d +93667ad9baceeed3e4e1cae0d7c5dfdacbe4d9cde5d4cbe5d2cde6d1cce6d1cce6d1cce6 +d2cde6d3cce5d4cbe5d5cce5d5cce5d7cbe4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d3cde6ced2ea +c9cee6dacce3eabad1a23e54a41d21bd2224c42425d42b26da2d26da2d25de2e25e12e25 +e02e25da2d25d22a26c62625b321239b2835b2778ff2dcebcfbfdad4cde6dbd6ebd4cde6 +d2c7e2d5c6e1d8c8e2d8c9e2d6cbe4cfcfe7cbd1e8ccd0e8d0cee7d5cbe4d8c9e2d9c9e3 +d6cae3d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d7cae4d7cae4d7cae4d7cae4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d7cae4dbc8e1e3c2dce2c4ddd8c9e2cecde7c4d1eac2d3ebcad0e9 +d8cde4e9c4dce294b1ab3051bb2743c02332b32022b32122c2262bb42526991f23aa6a7c +c5a2b7e2c8dce6cfe3d9c4ddd4c2dde4d7ead3c7e1d0c9e4d2cbe5d1cce6d1cce6d1cce6 +d2cde6d3cde6d4cbe5d5cce4d5cce5d7cbe4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d3cce5d1d2ea +d2d1e8e1cae1dea5bb8a192da71f21be2324c92725d62b26da2e25dc2d25df2e25e12e25 +e12e25da2d25d22a26c62625b32122961d25a8627cf4d3e4dfcae2d1c6e1d6d0e8d0cae4 +d2c7e2d7c8e2d9c9e3d8c9e2d6cbe4cfcfe7cbd1e8ccd0e8d0cee7d5cbe4d8c9e2d9c9e3 +d6cae3d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d7cae4d7cae4d7cae4d7cae4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d7cae4dcc8e1e7c1dbe6c2dcdac9e2cecee6c3d3e9c0d5ebc8d3e9 +d7cde5e8c6dce697b7a12448a71d2fb92335bc2334b3212ca821289d2328b45d66eec2d2 +edd3e5e4cee3dfcce3dac9e2d8cae3ded2e8c9c0ded0cae4d1cce6d1cce6d2cde6d2cde6 +d2cde6d3cde6d4cbe5d5cce4d7cbe4d7cbe4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d5cce5d1cde6 +dbd2e7dcbed4bd778e89161eaa1e21bc2324cc2826d12826d62a26db2d26df2e25e32f25 +e02e25dd2d26d42a26c82625b723239d1f259e4b64d8a9c4f6deebd5c4ded1c8e2d0c9e3 +d5cae4d7c8e2d7c6e1d8c9e2d6cbe4d0cee7ccd0e8cdcfe7d0cee7d5cbe4d8c9e2d9c9e3 +d6cae3d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d7cae4d7cae4d7cae4d7cae4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d7cae4dbc8e1e7c4dde5c5dddacae2d0cee6c8d1e8c5d2eacbd1e9 +d8cde4e6c8dff4c2dabb577b9e21409c1c30a42238a72f43ae4655c2767ff4cdd7f2d3e3 +e2cce2decbe3d7c8e1d9cce4ddd0e7cec5e1cec7e2d7d0e8d1cce5d1cce6d2cbe5d2cbe5 +d3cce5d4cbe5d5cce4d7cbe4d7cbe4d7cbe4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cbe4d5cce4 +e2d2e6d5adc2a14f65941b24b12123c02424cf2926d22b26d62a26da2d25dd2d25e02e25 +e02e25dd2d26d42a26cb2726bb2324a3202596334bb57992f7deebe1cbe2d5c9e2d5cce5 +d9cde5d7c8e2d6c5e0d8c9e2d6cbe4d0cee7cdcfe8cdcfe7d0cee7d5cbe4d8c9e2d8c9e2 +d7cae4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d7cae4d7cae4d7cae4d7cae4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d6cbe4d8c9e3e1c8e1e0c9e0d8cbe3d4cce4d0cee6cfcee7d3cee7 +d9cce4e4c9e1ecc2d9e5aac4d28ca5b86d84b06679bc7c8cd4a0ace0b8c0e5c9d7dfcae1 +d4c4ded6c7e1d5c7e1d7cce5d8cfe7cac3e0d4cde6d6d0e8d1cce6d0cbe5d2cbe5d2cbe5 +d4cbe5d4cbe5d5cce4d7cbe4d7cbe4d7cbe4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4ddcee4 +e4cbdfc895a88f2b409c1e26bb2525c22425d12926d42b26d62b26d92b26dd2d25e02e25 +e02e25dd2d26d62a26cc2726be2424a921229423379f526cf3c8daebcfe2d8c9e2d8cde6 +d8cce5d6c9e3d6c7e1d8c9e2d6cbe4d0cee7cecfe7cecfe8d0cee7d5cbe4d7c9e3d8c9e3 +d7cae4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d7cae4d7cae4d7cae4d7cae4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d6cbe4d8cce3d8cce2d6cbe3d5cae3d5cae4d6cae4d8c9e3 +dccbe3e0c9e1dec4dce8cbdfe2c4d6d5b6c7cdb2c1d2bbc8e1cdd9e6d6e4d6c9dbd6cae2 +d8cde5d6cbe4d6cde5d4cde6d0c9e4d1cae4d4cfe7cec9e4d0cbe5d0cbe5d2cbe5d3cce5 +d4cbe5d5cbe4d6cbe4d7cbe4d7cbe4d7cbe4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d8c9e3e2cee3 +e2bfd2bc7c8d83161f9d1d20c02625c42425cd2826d52b26d62c26d92b26dc2d25e02e25 +e02e25dd2d26d62b26ce2826c22525af22229a1d29993c51e6adc0f2cfe1d9c6ded8cde5 +d6c9e3d6c9e3d8cae3d8c7e1d7cae4d2cde6cfcfe8cfcfe8d1cde6d5cbe4d7cae3d8c9e3 +d7cae4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d7cae4d7cae4d7cae4d7cae4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d4cbe4d4cde6d0d0e6d0d0e6d3cce4d6cae4d8c7e1d9c7e1dbc7e1 +dbc8e2dbc9e2d7cbe3d7cfe5d6d2e4d5d3e3d4d5e5d3d3e4d5d5e7d8d5e9d2cee5d4cbe5 +d8cfe7d5cde6d5cee6d3cde6cfc9e4d4cde6d1cce6ccc7e3d0cbe5d1cbe5d3cce5d4cbe5 +d4cbe5d5cbe4d7cbe4d7cbe4d7cbe4d7cbe4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d6cae4d7cbe4d8cce5d7cae4d7cbe4d5c9e3d5c9e3d9cde5d9c8e1e9d0e2 +d6aabaa659688b181ca31f21be2424cb2726cd2826d62b26d72c26d92b26db2d26df2e25 +e02e25de2e25d92b26d12826c62625b52323a21f2698283ac27b8bf7d8e5ddc6dcd9cbe4 +d5c9e3d6c9e3d9cae3d8c7e1d6cae3d2cde6cfcee7cfcfe8d1cde6d5cbe4d7cae3d7cae3 +d7cae4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d7cae4d7cae4d7cae4d7cae4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d4cbe5d0cee7cad3e8cad3e8d0cee7d6cbe4d8c7e1dbc5dfdcc5df +dbc6e0d8c8e2d3cde6ccd1e8c8d3e7c5d6e6c5d5e7c7d3e7cad1e8cecfe8d0cee7d2cde6 +d3cce5d2cde6d2cde6d1cce6d1cce6d0cbe5d0cbe5d0cbe5d1cbe5d2cbe5d3cce5d4cbe5 +d5cbe4d6cbe4d7cbe4d7cbe4d7cae4d7cbe4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d5c9e3d8cce5d8cde5d7cae4d8cce5d4c7e2d4c6e1dbcfe6dac7e0edcee0 +c890a09535449c1e24ae2122bc2324d32a26d12826d62c26d92d26d92d26da2d25de2e25 +e02e25de2e25d92b26d32a26c92825bd2324aa1f21981d269f4556f8d6e4e4c9dcdccce3 +d7cae4d7cbe4d8cae3d7c8e2d6cae3d3cce5d0cee7d0cee7d1cce6d5cbe4d7cae4d6cae3 +d7cae4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d7cae4d7cae4d7cae4d7cae4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d4cbe5d0cee7c7d3eac6d3e9cecee7d3cae4d7c7e1dac4dfdbc4df +dac5e0d7c7e1d4cbe5cecfe8c9d1e9c6d3e9c7d3eacad1e9cdcee7d0cbe5d3cae4d3cce5 +d2cbe5d1cce6d1cce6d1cce6d1cce6d1cce6d0cbe5d2cbe5d2cbe5d3cce5d4cbe4d4cbe4 +d6cbe4d7cbe4d7cbe4d7cae4d7cae4d7cbe4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cbe4d7cae4d6cae4d7cbe4d8cce5d7cae4d7cbe4dfcbe3e6bfd2 +be7a88962933a01f21b32122c12424d62a26d32a26d62c26d92d26d72c26da2b26de2e25 +e02e25df2e25da2b26d42a26cc2826c52525b32122a01f219e3844e9b2c0eacadcdecde3 +d7cae4d7cbe4d8cbe4d6c9e3d6cae3d3cce5d1cde6d1cde6d2cde6d5cbe4d7cae4d6cae3 +d7cae4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d7cae4d7cae4d7cae4d7cae4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d4cbe5d0cee7c9d2eac7d3eacccee8d0cbe5d5c7e2d6c5e0d8c5e0 +d8c5e0d9c6e1d6c9e3d6cae3d4cbe4d4cbe5d4cbe4d5cae4d6c9e3d7c7e1d6c7e2d3cae4 +d2cde6d1cce6d1cce6d1cce6d2cde6d2cde6d2cbe5d3cce5d3cce5d4cbe4d4cbe4d4cbe4 +d6cbe4d7cbe4d7cbe4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d8cce5d6cae4d4c7e2d5c9e3d7cae4d9cee6d8cce5d4c6e1e8d2e6d9a9be +ae5d69961e21a62021bc2324c62625d62b26d42a26d62b26d62c26d62c26d92b26dd2d25 +e02e25df2e25db2d26d52a26ce2826cb2726c02424a820219b272fc2808defcbd9e1cfe4 +d8cae3d7cae4d8cbe4d6c9e3d6c9e3d4cbe4d1cde6d1cde6d2cde6d5cce5d7cbe4d7cae4 +d7cae4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d7cae4d7cae4d7cae4d7cae4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d4cbe5d1cde6ccd0e8cbcfe8cdcde6d0cbe5d3c9e3d5c7e2d5c6e1 +d7c6e1d9c6e1dac7e1dac6e0dac6e0dac6e0dbc6e0dcc6e0dbc5dfdbc4ded9c6e0d5cae4 +d2cde6d2cde6d2cde6d2cde6d2cde6d3cce5d3cce5d4cbe5d4cbe5d5cbe4d5cbe4d5cbe4 +d6cbe4d7cbe4d7cbe4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d8cce5d5c9e3d4c7e2d6cae4d6cae4d9cee6d7cbe4d2c5e0eed8e8c891a5 +9b3a44941b1daa1f21c12424cc2726d92b26d62a26d62a26d62b26d62b26d92b26dd2d25 +de2e25df2e25dc2d25d62a26d12826cf2826c82425b02122991d209c4b56eec8d4e6d0e3 +dacbe3d6cae3d6cae3d6c9e3d6c9e3d4cbe4d2cde6d1cde6d2cde6d5cce5d7cbe4d7cae4 +d7cae4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d7cae4d7cae4d7cae4d7cae4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d4cbe5d1cce6d0cde6d0cbe5d1cbe5d2cae4d3c9e3d5c7e2 +d7c8e2d7c7e1dbc6e0dec5dfdfc5dfe0c5dee0c5dedec3dedcc3dedcc3ded9c6e0d7cae4 +d3cce5d3cce5d3cde6d3cde6d3cde6d4cbe5d4cbe5d5cbe4d5cbe4d6cbe4d7cbe4d7cbe4 +d7cbe4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cbe4d6cae4d6cae4d7cbe4d7cae4d7cbe4d6cae4d5c9e3ead1e4b6788a +912326971b1eaf2022c62425d12826da2b26d72b26d62b26d52b26d62b26d92d26dc2d25 +de2e25df2e25dc2d25d72b26d42a26d42a26cf2826b922239d1e20872631e3b8c4e4cee0 +dbcde4d7cae4d6cae3d6c9e3d6c9e3d4cbe4d2cde6d1cde6d2cde6d5cce5d7cbe4d7cae4 +d7cae4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d7cae4d7cae4d7cae4d7cae4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d6cbe4d5cbe4d4cbe4d3cae4d3cae4d3c9e3d5cae3 +d6c9e3d7c8e2dac8e2dcc8e1dec7e0dfc7e0dec7e0ddc6dfdcc5dfdac6e0d8c7e1d7cae4 +d4cbe5d4cbe5d4cbe5d4cbe5d4cbe5d5cce4d5cce5d7cbe4d7cbe4d7cbe4d7cbe4d7cbe4 +d7cbe4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d6cae4d7cbe4d7cbe4d6cae4d7cbe4d5c9e3d5c9e3d8cde5d4b8d4a35d71 +8d191c9e1d1fb42122c82625d42a26da2b26da2b26d72b26d52b26d52b26d62c26dc2d25 +de2e25df2e25dc2d25d72b26d62a26d72b26d42a26c12424a11f2080191fcc9dabe0c8da +dccde4d7cbe4d6c9e3d6c9e3d6c9e3d4cae4d3cce5d2cde6d3cde6d5cce5d7cbe4d7cae4 +d7cae4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d7cae4d7cae4d7cae4d7cae4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d7cae4d6cae3d8c9e3d7cae3d6c9e3d6c9e3d6c9e3d6c9e3 +d6cae4d6cbe4d6cce4d5cde4d6cde4d6cce3d7cce4d7cbe4d6cbe4d7cae4d7cae4d5cbe4 +d4cde5d4cbe4d5cce4d5cce4d5cce4d6cce4d6cbe4d7cbe4d7cbe4d7cbe4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d5c9e3d8cde5d7cbe4d4c6e1d8cde5d4c7e2d7cae4dccfe6b496b28f4254 +901a1ca72021b92323c92725d52a26da2d25dc2e25d72c26d52b26d42b26d62c26dc2d25 +de2e25df2e25dd2d25d92b26d62b26da2b26d72b26c52625a6202182191bb17f8ad6bfd0 +decfe5d8cce5d6c9e3d6c7e2d6c7e2d4cae4d3cce5d2cde6d3cde6d5cce5d7cbe4d7cae4 +d7cae4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d7cae4d7cae4d7cae4d7cae4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d6cbe4d7cae4d7cae3d9c9e3d9c9e3d8c9e2d7c9e3d6c9e3d6cae3 +d5cae4d4cde6d1cee5cfd0e5cfd0e4cfd1e5cecfe5d0cee6d0cee7d1cce6d3cde6d4cbe5 +d4cbe4d5cce4d5cce4d5cce4d6cbe4d7cbe4d7cbe4d7cbe4d7cae4d7cae4d7cae4d7cae4 +d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d7cae4d6cbe4d5cbe4d5cbe4d6cbe4 +d6cae3d6cae3d5c7e2d9cde5d6cbe4d0c5e0d9cfe6d6cae3dacbe4e2d0e59b708d84283b +971c1eae2022bc2324c82625d42a26d92b26dd2e25d92d26d62b26d62b26d92d26dc2d25 +de2e25df2e25dc2d25d92b26d72b26da2b26d72b26c62625ab20218d1a1c9e5e69d4b2c2 +e1cee3d9cde5d7cae4d6c9e3d6c9e3d4c9e3d4cbe4d4cbe4d4cbe5d6cbe4d7cbe4d7cbe4 +d6cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cbe4d4cbe4d4cbe4d4cbe5 +d4cbe4d4cbe4d5cbe4d6cbe4d6cbe4d7cae4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4d6cbe4 +d6cbe4d6cbe4d5cbe4d4cbe5d4cbe5d4cbe5d4cbe5d4cbe5d5cbe4d5cbe4d5cbe4d6cbe4 +d6cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d7cae4d7cae4d7cae4d7cae4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cae4d6cbe4d6cae3d7cae3d8c9e2d8c9e2d7cae3d6cae3d7cae4 +d5cae4d4cde6d1cee6d0cfe6cfcfe6ced0e6cfcfe6d0cee6d0cee7d1cde6d3cce5d4cbe5 +d5cce5d5cce5d5cce5d5cbe4d6cbe4d6cbe4d6cbe4d7cbe4d7cae4d7cae4d7cae4d7cae4 +d6cbe4d6cbe4d6cbe4d6cbe4d7cae4d7cae3d7cae3d6cbe4d4cbe5d3cde6d4cde6d4cbe4 +d7c9e3d7c9e3d6c7e1d9cee6d5cce5cdc6e2d8cfe7d9cbe3e5cde2e6c2da96516d8a1a24 +a01f20b32222bd2324c62625cf2826d62a26da2e25d92d26d92b26d92b26da2d25dd2d25 +de2e25de2e25db2d26d92b26d62b26d62a26d32a26c82625b421239d1e20953740d39eac +e3c3d5dbcae2d6cce5d3cbe5d2cae4d4c9e3d6c9e3d6cae3d8c9e3d7cbe4d7cbe4d6cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cae4d5cae4d6cbe4d5cae4d4cae4d4cae4d3cae4d3cae4d2cbe5d0cbe5 +d3cbe5d4cbe4d5cbe4d7cae4d8c9e3d9c9e3d8c9e3d7cbe4d7cbe4d7cbe4d7cae4d6cae3 +d6cae3d7cae4d5cbe4d4cbe5d3cde6d2cde5d1cde5d3cde5d4cbe5d5cbe4d6cbe4d7cae3 +d7cae3d6cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cbe4d5cbe4d6cbe4d6cbe4d6cbe4d6cbe4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d7cae4d7cae4d6cae3d7cae4d7cae4d7cae4d6cbe4 +d5cae4d4cbe5d4cbe5d4cbe5d3cce5d3cce5d3cce5d4cbe5d4cbe5d4cbe4d4cbe4d5cbe4 +d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d5cbe4d7cae4d7cae4d7cae4d7cae4d6cbe4 +d5cae4d5cae4d5cae4d5cae4d6cae3d9c9e3d8c9e3d5cbe4d1cce6d0cee7d0cee7d3cce5 +d9c8e2d8c7e1d6c7e1d8cce4d4cde6cecae4d4cee5decce1f3d0e1dba0b79d3c51971c1e +a71e21b32122bc2324c52625cc2726d22a26d62a26d92b26db2d26dd2d25dd2d25dd2d25 +dd2d25dd2d25db2d26d92b26d62a26d12826cc2726c82625be2324ad2022931b1dcc7d87 +e0b2c0dec9dad5cfe5cecee7cdcbe6d4c9e3d8c8e2d9c7e1dbc8e1d9cae3d7cbe4d5cce5 +d5cbe4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d4cae4d4cbe4d4cae4d4cae4d6c9e3d6c9e3d5cae3d4c9e3d3cae4d1cae4d0cbe5cfcce6 +d0cbe5d2cbe5d5cbe4d7cae3dac8e2dbc7e1dbc8e1d9cae3d7cbe4d7cbe4d9c9e3d8c9e2 +d7c9e3d7cae4d4cbe4d3cde6d1cee5cfcfe5cfcfe5d0d0e6d3cee5d5cbe4d6cae3d9c8e2 +d9c8e2d7cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d6cae3d9c8e2d8c9e2d5cbe4d0cee7cecfe8d0cee7d3cce5 +d9c8e2d9c8e2d5c4e0d4c6e1d2cbe5d2d0e8dad3e8e1cddff8cfdebf73879825349b1d1f +ab1f21b52323bc2324c22625c92725cf2826d52a26da2b26dd2d25df2e25e02e25df2e25 +dd2d25dd2d25da2d25d92b26d62a26d32a26cd2926c62625c12424b320239e1d1fbd5963 +e7afbbedd3e0d7d0e4cccfe8cdcde7d4c9e3d8c7e1dbc6e0dcc7e0d9cae3d6cce4d4cbe5 +d5cbe4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d4cae4 +d4cbe4d3cce5d3cce5d5cae4d6c9e3d6c9e3d6c9e3d6c9e3d5cae4d3cbe5d1cce6d0cee7 +d0cee7d1cce6d4cbe5d6cbe4d8c9e3dac8e2dac9e2d8c9e3d8cbe4d8c9e3d9c9e3d9c9e3 +d7c9e3d7cae4d4cbe4d3cde6d0cfe6cfd0e4cfd0e4d0d0e5d1cfe5d4cbe5d7cae3d8c7e1 +d8c7e1d6cae3d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d6cae3d9c8e2d8c9e2d5cbe4d0cee7cfcfe8d0cee7d3cce5 +d9c8e2d8c7e1d7c8e2d3c5e1d1c9e4d5d0e8ddd3e8e4ccdef4c5d5933a4f8d18209d1d1f +ab1f21b52323bc2324c42625c92725d12826d62a26da2b26dc2d25dd2d25df2e25df2e25 +dd2d25dd2d25da2d25d92b26d62a26d42b26ce2926c62625c12424b62223a31f209d2c36 +d9a1aeefd2e0dacfe3cfcfe7cdcde6d3cae4d7c7e1d9c6e0dac6e0d8c9e3d6cce4d4cbe5 +d5cbe4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d4cbe4 +d2cde6d0cee7d0cee7d3cde6d6cbe4d8c9e3d9cae3dacae2dacbe3d8cbe3d5cde4d3cee4 +d1cfe5d0cfe6d0cee6d2cde6d3cde6d4cbe5d5cbe4d5cce4d5cce4d7cae4d7cae4d6cae3 +d6cae3d6cae3d5cae4d4cbe5d1cee6cfcfe5d0d0e5d0d0e6d3cee5d5cce5d7cae4d8c8e2 +d8c8e2d7cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d7cae4d8c9e2d8c9e2d5cbe4d1cde6d0cee7d1cde6d3cce5 +d7c9e3d8c8e2dbcce4d6cae4d2cae4d4cde6ddcee4ebcee0d7a2b27f1a2d921a1fa31f20 +ae2022b72323bf2424c52725cb2726d12826d52a26da2b26dc2d25dd2d25df2e25df2e25 +dd2d25dd2d25da2d25d92b26d62a26d12826cc2726c82625c52625bc2224aa2021901a1e +c27e8ae3bdccddcbe0d5cee5d0cee7d3cae4d6c9e3d7c6e1d9c8e2d7cae4d4cbe4d4cbe5 +d5cbe4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d4cae4 +d4cbe5d1cde6d1cde6d5cce5d7cae4dbc9e1decae2decae1decae1dbcbe0d8cde1d5cee3 +d2cfe4cfcfe5cfcfe6d0cee7d0cee7d1cde6d2cde6d2cde6d3cde5d4cbe5d5cae4d6cae4 +d6c9e3d6c9e3d7cae4d5cbe4d3cde6d2cde5d2cfe5d3cee5d4cde4d5cce5d7cae4d6cae3 +d6c9e3d7cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d7cae4d7c9e3d6cae3d5cbe4d2cde6d1cde6d2cde6d4cbe4 +d6cae3d6c9e3d8cae3d7cbe4d6cbe4d6cce4e1cfe4f5d3e3b87988831829971c21a62021 +b12122ba2323c12624c72725cb2726d12826d52a26da2b26dc2d25dd2d25df2e25df2e25 +dd2d25dd2d25da2d25d92b26d62a26cf2826cc2726ce2926c82625b92323ad2222971d20 +ac5b67d6a9b7ead1e3d8cde5d3cee7d2cbe5d4c9e3d5c8e2d6c9e3d6cbe4d4cbe5d4cbe5 +d5cbe4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cbe4d4cbe4d6cbe4d8c9e3dbc9e2ddc7e0dec8e0dec8e1decae2dbcae2d8cbe4d5cee5 +d1cee5d0cee6d0cee7d0cee7d0cee7d1cce6d1cde6d1cee6d1cee6d2cde6d3cce5d3cae4 +d4c9e3d5cae3d6c9e3d7cae4d6cbe4d4cbe3d5cee5d5cee5d5cce4d5cce5d6cbe4d7cae4 +d6c9e3d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d7cae4d6cae3d6cae3d5cbe4d4cbe5d2cbe5d3cce5d4cbe4 +d7cae4d6c9e3d5c7e2d6cae3d7cbe4d9cce4e8d0e3f6ccdc9a4f5f8d1e2d981c1fa72021 +b32122bc2324c12624c72725cb2726d12826d52a26da2b26dc2d25dd2d25df2e25df2e25 +dd2d25dd2d25db2d26d92b26d62b26d22a26cf2826d22a26cb2726b82323ad2122a02327 +9f414ccd98a7f0d2e3decee4d6cee6d3cbe5d2c9e4d3c8e3d4c9e3d4cae4d4cbe5d4cbe5 +d5cbe4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cbe4d7cbe4d7cae4d9c9e3dbc7e1dcc8e1dcc8e1dbc7e1d9c9e3d7cae4d4cbe5d1cde6 +cfcee7cdcfe7cecee7cfcee7d0cee7d1cce6d1cde6d0cee7d0cee7d1cce6d2cbe5d2cbe5 +d3cae4d4c9e3d5cae3d6c9e3d7cae4d7cae4d7cbe4d7cbe4d7cbe4d6cbe4d5cbe4d5cbe4 +d4cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d6cbe4d7cae4d6cbe4d5cbe4d4cbe5d4cbe5d4cbe4d5cae4 +d6cbe4d5cae4d4c7e2d4c7e2d7cae3e0cce3ebcbdfe3b2c2872e3e9220299a1c1fa81f21 +b52123bd2324c22625c82725cc2726d12826d52a26d92b26db2d26dd2d25de2e25de2e25 +dd2d25dd2d25db2d26da2b26d72b26d52a26d42a26d32a26cc2726bc2324b02022a42125 +982d39c48292eec6d8e2cce3d8cde6d4cde6d0cbe5d1c9e4d2c9e4d3cae4d4cbe4d4cbe5 +d5cbe4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cbe4d6cbe4d6cbe4d8c9e3d9c8e2d9c8e2d8c8e2d6c9e3d4c9e3d1cae4cdcbe6cacde7 +cacfe9c9cfe8cacee8cccde7cdcde6d0cde6d1cce6d0cee7d0cee7d1cce6d1cbe5d1cae4 +d2cbe5d3cae4d4c9e3d6c9e3d8c9e2d9cae3d8c9e3d8cae3d7cbe4d7cbe4d4cbe4d4cbe5 +d4cbe5d4cbe4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cbe4d5cbe4d5cbe4d5cbe4d5cae4 +d4cae4d3cae4d4cbe5d4c9e3d8c7e1e3cae1eac3d7c88d9d7f1824931c209d1e1fab1f21 +b72323bf2424c42625c82725cd2826d12826d52a26d92b26db2d26dd2d25dd2d25dd2d25 +dd2d25dd2d25dc2d25da2b26d92b26d92b26d52a26cf2826d02726c62625b42023a11f20 +962129b96b7be4b1c5e8cbe1dccde4d4cde6cfcbe5cfcae4d0cae4d2cbe5d4cbe4d5cbe4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d4cbe4d4cbe5d4cbe5d6cbe4d6c9e3d6c9e3d6c9e3d4c9e3d2cae4d0cbe5cccce6cacee8 +c8cee8c7cfe9c9cfe8cbcde7cdcce6cfcde6d2cde6d3cee7d3cee6d2cde6d1cbe5d1cae4 +d1cae4d3cae4d5cae3d6c9e3d9c9e3dac9e2dac9e2d9c9e3d8c9e3d7cae4d4cbe4d3cce5 +d2cbe5d4cbe4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cbe4d5cbe4d5cbe4d5cbe4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d4cae4d4cbe4d4cae4d5cae4d6cbe4d7cae4d6cae3d5cae4 +d3cae4d1cae4d6cfe7d5cbe4d6c5e0e3c8dfeac0d4ae63757d1318961c1ea11e20af2022 +ba2323c12424c52625c92825ce2826d22a26d52a26d92b26da2d25dd2d25dd2d25dd2d25 +dd2d25dd2d25dc2d25db2d26d92b26d92b26d62a26ce2826d22a26cc2726b92223a21e20 +991d22aa4c5dcf93a7ebc9dde0cce3d2cae4cecee7cacae5cdcbe5d3cde6d5cce5d4cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d4cae4 +d2cbe5cfcde6cfcde6d2cbe5d5c9e3d7c9e3d9cae3d9cae3d9cbe4d9cde5d7cee6d1cce6 +cccce6cdcfe8cecee7cdcde6cecce6d0cbe5d4cbe5d4c9e3d8cde6d5cce5d4cde6d2cbe5 +d2cbe5d3cae4d3c8e3d6c9e3d9c8e2dac8e2dbc8e1d9c9e3d8c9e3d6cbe4d4cbe4d1cce6 +d0cde6d4cbe4d4cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4d5cae4 +d5cae4d5cae4d5cbe4d5cbe4d5cbe4d5cbe4 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4cae4d2cbe5d3cae4d4c9e3d6cae3d6c9e3d6c9e3d6cae4 +d1cae4d0cbe5d4cde6d6cce5d6c3dee3c7dde9c2d69033478314179b1f1fa61f20b32122 +be2424c42425c62625cb2726ce2826d32a26d62a26d92b26da2d25dd2d25dd2d25de2e25 +de2e25dd2d25dd2d25dc2d25da2b26d92b26d72b26d42a26cf2826c82625ba2323aa1f21 +a120239a2c3cb76d82eabed4e4cde2cec6e1d0d1e9c2c6e2cacae5d5cee7d7cce5d4c6e1 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d3cae4 +cecbe5cacce7cacde7cecae5d6cae3dfcbe3dfc6dfdfc0dae1bfd8e5c7dce7cbdfe1c8dd +dbc9dfdccfe4dbd0e7d6cce5d2c7e2d3c9e3d7cbe4d5c4dee3d1e6d9cce4d9cee6d3cae4 +d3cae4d4cbe5d0c5e1d6c9e3d8c7e1dac7e1dbc7e1d9c8e2d7c9e3d6cbe4d3cbe5d0cbe5 +cfcde6d2cbe5d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4cae4d4cae4d4cae4d4cae4 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4cae4d1cbe5d2cbe5d4cae4d6c9e3d8c7e1d8c7e1d6cae4 +d0cbe5cfcde6d0cbe5d4c9e3dcc6dfe6bed5d89bb08216298e181ba01e1fad2121b92323 +c12424c52625c82625cc2726cf2826d32a26d62a26d72b26da2d25dd2d25dd2d25de2e25 +de2e25dd2d25dd2d25dc2d25da2d25da2b26d62b26d32a26cf2826c92725be2424b02022 +a41e2199202cae586ddca8c0e6cae0d2cbe4d0d4ebc6cae6cdcde7d4cde6d5c7e2d3c4e0 +d6cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d3cae4 +d0cce6cbcce6bebeded6cae3f0dbeaeac3dac38aa4a76278a75d6dbd747ed28e97efb2bb +f9d0dbf9d4e2f5d0e2efcee2ebcee2e6cde3e1c8e0e1c4dde7cce2d8c1ddd0c0ddd2c6e1 +d2cae4cfc6e1ccc2dfd9cde5d7c6e1dac7e1dbc6e0d9c7e1d7c9e3d5cae4d2cbe5cfcde6 +cecce6d2cbe5d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4cae4d4cae4d4cae4d4cae4 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d2cbe5d0cbe5d1cbe5d4cae4d8c7e1d9c7e1d9c7e1d6c9e3 +cecce6cccde7cbcae5d4cbe4e5cee3e5b6cfb56a807a11139e1f1fa41e20b12222bc2324 +c22425c62625c92725cc2726cf2826d42a26d52a26d72b26da2d25dc2d25dd2d25dd2d25 +dd2d25dd2d25dd2d25dc2d25db2d26da2b26d62b26d32a26cf2826cb2726c22425b52123 +a71e21981b1fa23d53cd8ea6eccbdfd9d0e7cdd1e9c6cde8cdcfe8d2cae4d5c6e1d6c6e1 +d6c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d2c9e4d1c8e3d4c6e1e9cde2e9b2d0c3728aa23142971d1e9f1d1fa71e21ab2121ba3326 +be3f39b64448bf5a6bd57e99eda6c7f3bfd8f3c7dcf4c3daf7d6e5eed0e3e2cae2dfcee5 +d9cee6cfc6e2c7c0ded3c9e3d6c9e3d9c7e1dac7e1d9c8e2d7c9e3d5cae4d1cae4cdcce6 +cdcce6d2cbe5d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4cae4d4cae4d4cae4d4cae4 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d2cbe5cfcde6d0cde6d5cae3d9c7e1dbc6e0d9c6e1d6c9e3 +cdcce6cbcde7cacbe6d8d0e7ead1e4dda9c3a24c6488161aa32020ab2021b32122bc2324 +c52625c82625cb2626cd2826cf2826d42a26d62a26d92b26da2b26db2d26dd2d25dd2d25 +dd2d25dd2d25dd2d25dc2d25db2d26da2b26d72b26d32a26ce2826c92725c52625ba2323 +ac1f219c1c1f9c2c42bf788fefcadeded4e9c7cde6c4cae5cccee8d1c7e2d6c5e0dbc9e2 +d6c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5cae3 +d3c5e1cfbfdde1cbe2f0c9ded189aaa53a53a22027ba2824cb2e26c72825c12424bc2424 +b42222b12122b1242db32e46b13458ae3b65ab466ebd6f8eca8ea9d4a5c1e3c2dcdcc8e1 +d7cbe4d7cfe7d0cbe5d5cee6d4c9e3d6c9e3d9c7e1d9c8e2d7c9e3d5cae4d1cae4cdcce6 +cdcce6d2cbe5d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4cae4d4cae4d4cae4d4cae4 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d2cbe5cfcde6d0cde6d5cae3d9c7e1dac5e0dac5e0d6c7e2 +cdcde6cacfe8cacee8d9d2e9e4cae1cc94ad96364c951b1fa01d1fb32323b52323bf2424 +c62625c92725cc2626ce2826d22a26d52a26d62b26d92b26da2b26db2d26dd2d25dd2d25 +dd2d25dd2d25dd2d25dc2d25db2d26da2d25d92b26d32a26cc2726c82625c52625c02324 +b32022a51e21992133ad5b74ebc0d5ddd2e6c4cbe3c5cde7cecfe8d3c6e1d8c3dfdcc9e2 +d6c7e2d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5cae3 +d5c8e2d9c6e0e1c5deefc1d9d88eaeae415da12026ae2022be2524c12624cc2826c82625 +c42425c32525bd2224b52226b2212eb3243dad2a4c9b2e4e8e3957a96988e4b9d4dec5df +d5c6e0d8d0e7d0cde6d0cce6d3cbe5d6cae4d7c8e2d8c7e1d6c9e3d4cae4d1cae4cdcbe6 +cdcbe6d2cbe5d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4cae4d4cae4d4cae4d4cae4 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d2cbe5cecde7cfcde6d4c9e3dac7e1dbc5dfdac5e0d6c7e2 +cccde7c9cfe8cacee7d7d0e7dabed8bd809b8c2239981b1fa01d1fb82523bc2424c12424 +c82625cb2726cc2626cf2726d32a26d62a26d62b26d92b26da2b26db2d26dd2d25dd2d25 +dd2d25dd2d25dd2d25dc2d25db2d26da2d25d92d26d42a26cc2726c62625c52625c32525 +bb2224ac1e229a1c289e455de3b4cadbcfe4c6cee6c9d1e9d0d1e9d3c5e1d8c0dddbc7e1 +d6c7e2d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5cae3 +d7cbe4dbcbe4dec5dfedc3dbe4a6c4c46c89b04258ae2b3ab1242ab32223b82223bd2224 +c02324c02525c02324bd2224bc2124b92224b0222ca2273e79122c964867e4b8d2e5cae1 +d6c7e1d4cde6cac9e4cdcde6d1cbe5d4cae4d6c9e3d7c9e3d6c9e3d4cae4d1cae4cdcbe6 +cdcbe6d2cbe5d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4cae4d4cae4d4cae4d4cae4 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d2cbe5cdcde7cecde7d4c9e3dac7e1dcc5dfdbc5dfd6c7e2 +cccde7c8cfe8cacfe8d4cde6d9bad4be7d978a1d33981b1fa51e20b82423c02624c52625 +c82625cc2726cd2726cf2726d32a26d62a26d72c26d92b26da2d25db2d26dd2d25dd2d25 +dd2d25dd2d25dd2d25dd2d25db2d26da2d25d92d26d52b26ce2926c62625c52625c42325 +be2324b020229d1d27a0435be0afc5dbcde3cad2e8c8d1ead0d1e9d4c6e1d7c0dddcc6e0 +d6c7e2d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4cae4 +d3cae4d2cbe4d8cbe3e4cee3e1bed7d4a2bfcc8ca9ca7c99c96f8ac15c72ae3b4dab2f3b +aa242bab2122b02122b52323bc2324bd2324b72423a824338a1a32ab5573e7b4ceeacbe1 +dacae2d3cde6cccde6ced0e8d0cde6d3cbe5d6cae4d6c9e3d6cae3d4cae4d0cae4cdcbe6 +cdcbe6d2cbe5d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4cae4d4cae4d4cae4d4cae4 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d2cbe5cdcde7cecde7d4c9e3dac7e1dcc5dfdac5e0d6c7e2 +cccde7c8cfe8cdd2ead5cce4dfc1d9cc8ea78e243c961b1eaf2222b12122bd2424c52625 +c82625cb2726cd2726cf2826d32b26d62c26d92b26da2d25db2d26dc2d25dd2d25dd2d25 +dd2d25de2e25dd2d25dd2d25da2d25da2b26d92b26d62c26d12926c82625c52625c22425 +bb2224ac1e22a02130b0566ee6b8ccdfd0e4cdd2e9c5cee7cecee7d4c6e1d9c3dedcc7e0 +d6c7e2d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4cae4 +cfcbe4c7cbdecfd2e3d4d3e7d4cbe3d8c9e2e0c9e1e1c6dfe1bcd9d8aacac689a8bb758c +bd6576be5d65c14d48ba3327b42523b92523ba2723a11e25b34965d38ba3efb8d1e9c8de +dccae2d3cce4d0d2eacdd1e9cecee7d0cbe5d4cae4d6cae4d6cae4d4c9e3d1cae4cfcbe5 +cfcbe5d2cbe5d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4cae4d4cae4d4cae4d4cae4 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d3cbe5d0cde6d0cbe5d4c9e3d8c7e1d9c6e1d8c6e1d5c9e3 +cdcce6cacee7d1d1e9d8cde6e8cbe1dca5be9e455d971d2bb0272ea62021b32123c12424 +c62625c92725cc2726cd2926d22b26d62c26dc2d25dd2d25de2e25de2e25dd2e25db2d26 +de2e25e02e25e12e25db2d26d92b26da2d25dc2d25da2d26d32b26c92825c12624b72323 +ad2022a21f25a63b4ec57f94e9c1d6e0d1e6d0d0e7c7c9e5cecae5d4c6e1d9c6e0dcc9e2 +d6c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4cae4 +d2cde5cfd0e3ced1e3cccee4d0cee7d5cfe7dad1e8dacfe7dacde5dccae2e5cae1ebc5d5 +f7c4cdf5bcbde8928ecb5548b12823ae2122b12322ae3c4cde90a7f4c5daeec6dbe6c9e0 +dac9e2d0cae4d0d1e9c7cbe5cacee7cdcee5d0cde5d2cbe4d4cbe4d4cae4d4c9e3d4c9e3 +d3c9e3d4cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4cae4d4cae4d4cae4d4cae4 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4cae4d2cbe5d2cbe5d4cae4d6cae4d6c9e3d4c9e3d3cae4 +d0cbe5d0cbe5d0c9e3decfe6eacfe3e6b9d2ca88a0a94c679821369d1e2aa91f24bb2324 +c32525c52625c92825c82625d12b26d62b26de2e25e32f25e32f25e12f25df2f25d52a26 +e12f25e32f25e93124d92b26d62c26e03125e33025d92b26cf2826cd2a26bd2624a31f20 +991f219f3a48c27d8fefc1d5e5c7dcdac9e2d4cbe4d2cbe5d2c9e4d5c7e2d5c6e1d5c7e2 +d6cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5cae3 +d7cce5dacde5cec1dcd8cce5e0d4e9d1c5e1ccc1ded5cbe4dacfe7d5c7dfdac7d7f5d9de +f6cac7d79894b65753a22725ac2222bf2b33bc3d4ff6b4c8ebc0d6e8c6dce5c8dfe0c9e1 +d7c9e3d2cbe5cfcee7cdd1e9c9d1e7c8d1e7cad0e5cccfe5d1cde5d5cbe4d7c8e2dac7e1 +d9c6e1d6c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4cae4d4c9e3d4c9e3d4cae4d3c9e3d1cae4 +d0cae4d2cbe5d5cce5d6c8e1dac5dfe8c9dff3c6dae9aac3c16a87a238559c2033aa1f21 +b72223c12424c52725c92725ce2b26d32b26dd2d25e32f25df2e25df2f25e13025dd2f25 +e73424e32f25e32f25d42a26cf2926d42b26d72b26da2e26d52d26be2624a11e209d2529 +b55d68d496a6e9bccee6c6dadcc8e1d6cae3d6cae4d4c9e3d3c8e3d4c9e3d5c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5cae3 +d6c7e2d6c4dfdac7e1dccae3cebcdbd2c5e1dad0e7d3cce5ccc6e1dacee1e9d0dbf9d2d9 +cc8a8f922b328c181ca32734ad2d44bf4c68f5b2caeabfd5dbc9e1dccae3dbcbe3d8c9e2 +d5c7e2d2c9e3d0cbe5cecee7cacfe6c9d2e5cbd1e4cdd0e4d1cee5d6cbe4d9c8e2dbc6e0 +dbc6e0d6c7e2d5cae3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4cae4d4c9e3d5cae3d5cae3d4c9e3d3c8e3d3c9e3 +d0cae4d1cae4d2cbe5d4c9e3d8c9e2e3cbe2f1d0e2f7cee0f4b9ced78da5c5637bb33244 +b6242bbd2428b92123bf2324c12525cd2626da2c26e52e25e42f24e02e25d92b26ce2826 +da2c26e02e25e02e25da2e27ce2926c72725c12625b52323a72021a42228be5361dc8a99 +eeb0c2f1c1d4e9c6dbe0c8dfd9c9e2d6cbe3d4cbe4d4cae4d4cae4d4c9e3d5cae3d5cae3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5cae3 +d5c7e2d4c4e0e5d5e8d3c0ddd7c8e2d7cee6c8c5e2c8c9e4dad7ebeddbebf6ccdecc758d +b72e51b62442b12241aa264dc86c8df4c4d9f0d2e3d8cae3d3cee7d4cde6d4cbe5d4c9e3 +d3c8e2d1c6e2d0c7e2d0c9e3d1cbe5d0cee5d0cfe5d0cee5d2cde4d5cbe3d6cae3d8c7e1 +d8c7e1d6cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5cae3d6cae4d6cae4d6cae4d6cae4d4c9e3d3c8e3 +d1cae4d0cbe5d0cbe5d3cde6d6cde5d8c8e0d9c3dae6c6daf5ccdef4c2d4eeacc1ec94a7 +eb8397dd6c7fc24456b73446ad2632be2d37c6252ad2282ad4292ad22b29cf2c29ca2b27 +d73230d82a2bcb2526cc3337b72c30a72228b0313dd06170e98a9aea9eafefa9bdf2b8ce +f1c4d9eac8dde1c9e1dac9e2d6cbe3d4cbe4d2cbe5d2cbe5d3cbe5d4cae4d5cae3d5cae3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d7cce5dbcee6c9beddded5ead4cfe7c3c3e1cecee7dbd3e9e3cde3e1b2cdbe6889b03059 +ab2038b62147b22857ce6c95eab3d0e0cbe3c8c6e0cbcfe8cacfe8cecee7d0cce6d1cae4 +d2c7e2d2c7e2d4c6e1d4c6e1d6cae4d5cbe4d4cbe3d4cce4d5cce4d5cce4d5cbe4d5cae4 +d6cae3d4cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4cae4d5cae3d6cae4d6cae4d6c9e3d6c9e3d4c9e3 +d2c9e4d0cbe5d0cee7cfcde6cfcbe4d1cde4d6cde3dacbdfdec7d8e8c9daf4cddef1c0d3 +f3b9cef0b2c8e09fb3e4a3b4d38e9dd68190a72d3d971c1f991c1e9f1f20a02120981e1e +9c201f9d1e1f9e1d20d77982e39ca6de9dade39fb3eeaac4f3b6cfeebcd5efc3daedcadf +eacee2e0cbe2d8c9e2d5cae3d3cbe5d2cbe5d1cbe5d2cbe5d3cbe5d4cbe4d4cbe4d4cae4 +d4cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d5cce5d5cee6cacae5becee8bed2eabfcfe6d8d6ebecd3e6e2a8c7c15d83b02953a7203b +b02a50b6436cd385a9e8bbd6e4d2e6d3d3eac7d5ecc5d1eac5cee9c9cde7cbcbe5cfc9e4 +d2c7e2d4c6e1d5c6e1d7c6e1d8c7e1d9c8e2d7cae3d7cbe3d5cbe3d4cce4d3cce4d2cbe4 +d3cbe5d4cbe4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4cae4d4cae4d5cae3d6cae4d6c9e3d5c8e2d6c9e3 +d3c8e3d0cae4cecbe5cacae5cacce6cfd1e9d4d4ead4cfe4cec6dad6c8dbe2d1e4dfcce2 +e3cfe4e5cfe3dfcadfedd8e7e3c9d8eec4d197485a78151e70100f70100f751211721210 +72111071110f751016d39ea6f1d3dbefd4e3edcce1ebc9dfe8c6dee4c8e0e3cbe2ddcae2 +d7c7e1d2c5e1d0c7e2d2cae4d1cbe5d0cbe5d1cbe5d2cbe5d3cce4d4cbe3d4cbe4d4cbe4 +d4cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4cae4 +d2cbe5cfcce6c5cde8b7d2e9bbd6e9cfdbede3d2e5e1a8c4c96388b3264cb4223eaa2037 +af4261d495afe5c5dbdacfe6cbcde7ccd1eacbd4ecc5d0e9c5cee8c8cbe6cbc9e4cfc8e3 +d3c8e2d5c6e1d7c6e1d8c5e0d9c5e0dbc6e0d9c7e1d7cae3d6cbe3d4cbe3d1cce5d0cde6 +d0cde6d4cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d3cbe5d3cbe5d4cae4d5cae3d6c9e3d6c7e2d5c8e2 +d4c9e3d3c9e3cbc6e3cacae5ccd0e8ccd2e9cacee6cacee4cecfe5d3cfe4d1cce3d1cfe5 +d2d2e9cfcfe7cccee5d7d8ecd1d0e2f0deec854c606711205f0f0e5b0f0c5c100c5b100c +5d110d62110e5f0d16ccadb3e2d7e1d6cfe2d7c9e2d9c9e3dacce4ddcee6d7cbe4d1c7e2 +cfc6e1cfc7e2cfcae4d0cae4d0cbe5d0cbe5d1cbe5d2cbe5d3cce4d4cce4d4cce4d4cbe4 +d4cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4cae4 +d1cae4cecbe5c9cde7cad6ebd4d5e9e1cee1d9a5bac2627eb32947b32133b32131be4054 +ca8795e9c8d2e0d3e2cecfe3cacbe5cec9e4cdc8e4cfcee7cdcde6cdcae5cec7e2d1c7e2 +d4c8e2d6c7e2d7c7e1d9c6e0d9c5e0dac5e0d9c7e1d8c9e2d7cae4d4cbe4d1cce5d0cde6 +d0cde6d4cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4cae4d1cbe5d0cde6d2cbe5d4cae4d6c9e3d7c7e1d7c7e1 +d5c8e2d4c7e2d0c7e2cecbe5cfcfe8cacee7c3c9e4c5cbe4d0d5ebd2d4eacdcde5cdcfe7 +cacee7c5cbe6c5cde8cbd3eac4c7dff2e5f06f384f500e0f5c0f0c5f100d580f0c50100d +540f0c62110e5c0d16cfb5bfdcdae7c9cde3c8c9e4cdcbe5d0cde6cfcbe5cdc8e4cecae5 +d1cde6d6d0e8d5cfe7d0c9e4d1cae4d2cbe5d2cbe5d3cbe5d4cbe3d4cce4d4cce4d4cbe4 +d4cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4cae4 +d0cae4cfcae5d9d2e9e0cee4ecc4dadf98b0bf5871af283cb12028b02122aa2223d97979 +f9d1cce2c6c3dbc9cee1d3e2e3d1e5ddc4dedcc2dddfcbe3dac9e2d6c6e1d5c6e1d5c6e1 +d5c6e1d6c7e2d5c6e1d5c5e0d8c7e1d8c6e1d9c8e2d8c9e2d6cae3d5cae4d2cbe5d1cbe5 +d1cae4d4cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d2cbe5cfcde7cecee7d0cde6d2cbe5d5c9e3d7c7e1d8c7e1 +d6c7e1d5c7e2d8cce5d3cbe5cccae4cacae5cdcfe7cbcfe7c7c9e4c9cae4d0d0e8d1cfe8 +cccbe5c9cae5cccfe8d0d1e9c7c8e3f9eaf2783a4f610e1270100f751211751211731110 +71110f741111610e13d3b2bedbd6e6c7cee5cbd1eacfd3eacdd1eacacae5c9c8e4cdcae5 +cfcbe5cec8e3cfc7e2d2c9e4d3c9e3d3cae4d4cae4d4cbe4d4cbe4d4cbe4d4cbe3d4cbe4 +d4cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4cae4 +d1cce6d2cfe7dbcde5f4ccdfe08eacbf4463b82436c02429bf2324ae2022ad2522e47f73 +eaa095e3aaa3e0adafdfb0bceab8cdf1bfd7f3c3daf0c6dbe9c3d9e3c3dcdec4dedac5df +d8c7e1d5c8e2d4c6e1d4c6e1d6c9e3d6c7e2d7c8e2d6c9e3d6c9e3d6cae4d4c9e3d2cae4 +d2cae4d4cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d1cbe5cccee7cacee7cdcde7d0cbe5d4c9e3d5c8e2d8c7e1 +d8c6e1d7c6e1d5c7e2d4c9e3d2c9e4d0cae4d0cbe5cfcde6d0cbe5d1cbe5d3cae4d6c9e3 +d7c8e2d8c9e3d8cce4d7cbe4d6c7e1f1d0e38c34527d121791181ca11f20a42121a42120 +9d1e1fa01e2589182ddaa8bae2d0e2d0cce3cbcee7cacde7cbcde7cdcbe6d0cbe5d0c9e4 +d2c9e4d3c8e3d4c9e3d5c9e3d6c9e3d6c9e3d6cae4d6cae4d5cae4d4cae4d4cae4d4cae4 +d4cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d3cae4 +d0cde6d0d0e8e8d4e7eba3c5ad2851c4233ecb2528cd2726c92526ba2323b72423af2422 +a92121a31f20a42325b23d4acb6a7be797a8f7b5c8f8c3d4ecacbff3c1d5eec4dae2c6df +dcc9e2d8cae3ccc4e1d2cbe5d2cbe5d4cae4d5cae3d6cae3d6c9e3d6c7e2d6c9e3d5c8e2 +d5c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d1cbe5cacee7c8d1e9cbcfe7d0cde6d4cae4d6c7e2d9c7e1 +d9c5e0d8c6e1d7c6e1d5c8e2d5c7e2d3c8e3d3c9e3d3cae4d3c9e3d5c9e3d6c7e2d9c6e0 +d9c5e0dac7e1d9cae3d9cae3decae2f7d7e6a0445d9a1b25aa1f21b82423bd2724ba2724 +b32423b1222b992033e1adc0ebd6e6d7d0e5d0cde5cfcde7d0cde6d1cbe5d4cae4d5cae3 +d6c9e3d6c7e2d7c8e2d7c6e1d7c6e1d6c7e2d6c7e2d6c9e3d6cae4d6cae4d5cae3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d3cae4 +d0cee7cfd1e8e1d0e5e094b4af284dc02230c82425cc2626cc2726c52625bd2324c02624 +ca2826c92725c12425b62223aa20229e21269a222a96212fa8475ac77c90e3acc0e8c3d9 +dec8e0d5cbe4d2cde6cacbe6cecee7d0cbe5d3cbe5d6cae4d6c7e2d7c7e1d6c6e1d6c6e1 +d5c7e2d5c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d1cbe5cacee7c8cfe8cacee7cfcde6d4cae4d7c8e2d9c6e1 +dac6e0dac6e0d8c7e1d7c7e1d5c8e2d6c9e3d6c9e3d5c8e2d5c6e1d6c6e1d7c6e1d9c7e1 +d7c7e1d5c9e2d4cbe4d4cbe3d9cde4f8deeba55163a4252cb12322bb2524c12824bf2924 +b62523b1242697202ce2b0bee8d7e7d6cfe3d4cce3d4cce4d5cbe4d6cbe3d6cae3d7c9e3 +d8c7e1d8c7e1d9c7e1d9c7e1d9c7e1d7c6e1d6c7e2d6c9e3d6c9e3d6c9e3d6c9e3d5cae3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d3cae4 +cfcde7cbd1e8d8cfe4ca95ada6465fab273ab52327bd2224c32525c62625bf2424bd2324 +be2424be2424be2324bd2224b92323b32323aa2122981b1f921b2a9a3b4ec88799e1b9cd +ddc7dcd2cae2d3d4eac7cde7cbcfe7cecee7d1cbe5d5cae3d7c8e2d6c7e1d7c6e1d7c6e0 +d6c6e1d5c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d1cbe5cbcee7c9cfe8cbcee7d0cde6d4cae4d6c7e2d8c7e1 +d9c6e1d9c6e1d8c7e1d6c7e1d6c7e2d6c9e3d6c9e3d5c8e2d8c7e1d8c6e1d9c6e1d9c8e2 +d6c9e3d4cae3d1cbe4d0cce4d5cde0f8ddeaa44e5da32326b32323bf2524c52825c22725 +b92423b12223961c27dfacbae3d3e5d5cee2d7cce3d8cbe3d8cbe3d8cae3d9c9e2d9c8e2 +d9c8e2d9c8e2d9c8e2d9c7e1d8c7e1d7c8e2d6c7e2d6c9e3d6c9e3d5c9e3d5c9e3d5c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4cae4 +cfcae5cacce4ded6eadab8cdd397abcc7685c55963b63a3da72221a62121aa2122ab2121 +ad2222b32223b82324be2224bf2324b92223b32123b42d378a171c892238bd7c90e0b9cd +decadfcfc9e0ccd0e8cad0e8cbcee7cecde7d3cae4d6c9e3d7c8e2d8c7e1d7c6e1d7c6e1 +d5c6e1d6cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d2cbe5cecde7cbcde7cdcde7d1cbe5d4c9e3d6c7e2d8c7e1 +d8c7e1d7c6e1d6c7e2d6c9e3d5cae3d5cae3d5cae3d6c9e3d6c7e1d8c6e1d9c6e1dac8e2 +d8c9e2d4c9e3d1cae4d0cce4d3cbe1f8d9e6a34555a11f20b72423c72725cd2926cb2825 +c02424b62223981c28dfaabee4d1e5d5cce3d8cae3d9c9e2d9c9e2d9c9e2d8cae3d7c9e3 +d7c9e3d6cae3d6cae3d6c9e3d6c9e3d6c9e3d6c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d3cae4d4cde6e3d6eae0c7dde9c5d7e2b3c0e2abb3d99ea3d09497cf9093c17b80ba6c72 +b0505ea93847a92634ad2128b32223b82123b12123a1232a8215209d4a61ce97ade5c4da +ddcde4cbc8e2c3c7e2ced1e9cdcde7d0cbe5d5cae3d6c7e2d8c7e1d8c7e1d7c6e1d5c8e2 +d6c9e3d5cae3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d3cae4d0cde6cfcde6d0cbe5d3cae4d6c9e3d6c7e2d7c8e2 +d7c8e2d6c9e3d5cae3d4cae4d3cbe5d2cbe5d3cbe5d4cae4d6c9e3d6c7e1d8c7e1d9c7e1 +d8c7e1d5cae4d2cbe5d1cce6d4cbe2f9d7e6a34255a11e20ba2323cc2726d42a26d12926 +c52625ba22259a1b2ee1a8c2e4d1e5d5cae3d6cae3d7c9e3d7c9e3d7c9e3d6cae3d6cbe3 +d5cae3d4cbe4d4cae4d4cae4d4cae4d5cae3d5cae3d5cae3d6c9e3d6c9e3d6c9e3d6cae4 +d5cae3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5cae3 +d5c8e2d6c7e1dfcde4dac6e0e7d3e6dfccdce4d2dfe4d4dee2d4dde4d4dfd6c2d0d4b6c7 +cd9fb4c6859bc06a81be5468be4453c03a47b73542992839993e58cb8aa4e5b7d1e3c9e1 +d8cde5cecce6c4c6e3d0d2ead0cbe5d4c9e3d7c8e2d9c7e1d9c7e1d9c8e2d6c9e3d5cae3 +d4cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4cae4d2cbe5d1cae4d3cae4d5cae3d6c9e3d7c8e2d6c7e2 +d6c9e3d5cae3d2cbe5d0cbe5d0cde6cfcde6cfcde6d1cbe5d4cae4d6c9e3d6c9e3d8c7e1 +d6c9e3d4cbe4d1cde6d0cee7d3cee5f8d9e7a4445aa21e21bc2324ce2826d62a26d32a26 +c62625bc2127991c34dea8c6e1d0e6d4cae4d6cae4d6c9e3d6cae4d5cae4d4cbe4d2cbe5 +d1cbe5d0cde6d0cbe5d0cbe5d1cbe5d3cbe5d3cbe5d4c9e3d5cae3d6cae4d6cae4d6cae4 +d6cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5c9e3 +d6c6e1d5c1ddd8c5e0d4c6e0dbd3e9cecee4ced0e4cecfe4cdcbe3d1cbe4d8cde5e0cee5 +e7cfe4e8c7dee8b8d3e0a6bdd994a4d38591cc7c8abd6f86cd8ca7efc0d7e8c9e0d5c4e0 +d1cae4d2d0e8cdcce6d0cde6d3c9e3d6c7e1dbc6e0dcc6e0dbc7e1d9c9e3d6cbe3d2cbe5 +d0cbe5d3cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4cae4d4cae4d5cae3d6c9e3d6c9e3d7c8e2d6c7e2 +d6cae4d3cbe5d0cde6cdcde7cccee7cbcfe7cccee7cfcde7d1cbe5d4cae4d5cae3d6cae3 +d6cbe4d1cbe5cfcde7cdcee7d0cde5f7dbe9a3475ea41e23bb2224cc2726d42a26d22a26 +c62625ba2129971c38dca8c9ded0e6d0cbe5d3cae4d3c9e3d4cae4d2cbe5d0cbe5cfcde6 +cecee7cdcde7cdcde7cecee7cfcde7d0cde6d1cbe5d4cae4d4c9e3d5cae3d6cae4d6cae4 +d5cae3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d6c9e3 +d8c9e2ddcae2dac7e1d0c9e4cecfe8c2cbe4c6cce7d0cee7d8cce5d9c8e2d8c1dddac2dd +dcc5dfdcc8e1decbe3dfcee4e0cfdde2d0d7e8ccd4ebc0d5f0c6ddedcfe3e0cae2cfc4e0 +cbc6e3d2d0e8d5d1e9cec7e2d5c8e2d9c6e1ddc5dfddc5dfdcc8e1d8c9e3d4cce4cecee6 +cecee6d2cbe5d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5cae3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5c9e3d6c9e3d6c9e3d6c9e3d6c7e2d6c9e3 +d4c9e3d2cbe5d0cbe5cecee7cccee7cccee7cdcde7cfcde6d0cbe5d2cbe5d4c9e3d6cbe4 +d4cce5d0cbe5cdcde7cacde7cfcae4f5d9e8a1465ba41e21bb2224cc2726d42a26d12826 +c62425bc2227991e36deadcbe0d3e8d0cce6d1cae4d3c9e3d1cae4d0cae4d0cbe5cfcde6 +cecde7cdcde7cdcde7cecee7cfcde7d0cbe5d1cbe5d4cae4d4c9e3d5cae3d6cae4d5cae3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5cae3 +d5c7e2d5c2ded3c2dfd1cce5cfd0e9c6cde7c8cce7d0cbe5d5c7e2d4bfdcd9c1ddd7bfdc +d3bfdcd1c2ded0c7e3cdcde5ccd2e5ccd3e0d4d0dfe1c9e0e2c7dfd4bedbd9cae3d7cee6 +cdc9e4ccc8e4d4cee7cbc3e0d5c7e2d9c6e1dcc6e0ddc6dfdbc7e1d6cae3d3cce4cfcee5 +cfcde6d4cbe4d6cae4d6cae4d6cae4d6cae4d6cae4d6cae4d6cae4d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4cae4d3cae4d3cae4d3cae4d4cae4d2cbe5d3cae4d3cae4d2cbe5 +d4cae4d4cae4d4cae4d4cae4d4cae4d4cae4d4cae4d4c9e3d4c9e3d6cae4d6cae4d6c9e3 +d6cae4d5cae3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5cae3d6cae4d6cae4d6cae4d6cae4 +d4c9e3d4cae4d3cbe5d2cbe5d2cbe5d1cae4d2cbe5d2cbe5d4cae4d4cae4d4c9e3d6c9e3 +d5c9e3d1c9e4cecce6cccce6d0c9e3f6d7e7a14452a01f20b82323c92725cf2826cc2626 +c32325b72323991f20dfadc1dfd1e7d0cbe5d2cae4d3c9e3d3cae4d4cae4d4cae4d2cbe5 +d2cbe5d2cbe5d2cbe5d2cbe5d2cbe5d4cae4d4cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5cae3 +d6cae4d6c9e3d6c9e3d4cae4d1cae4d0cbe5d1cae4d3cae4d4c9e3d5c8e2d6c6e1d6c6e1 +d5c7e2d5c9e3d4c9e3d2cbe5d1cbe4d2cde5d4cbe3d6cae3d8c7e1d6c9e3d6cae3d4cae4 +d2cae4d1cae4d1cae4d3cae4d5c9e3d6c9e3d6c7e2d6c9e3d6cae3d6cae4d4cae4d2cbe5 +d4cbe4d6cae4d6c9e3d6c9e3d6c9e3d6c9e3d6cae3d6cae3d6cae3d6cae4d6cae4d4c9e3 +d4c9e3d4c9e3d2cae4d1cae4d0c9e4d0c9e4d0cbe5d0cbe5d0cbe5d0cbe5d0cbe5d0cde6 +d0cbe5d0cbe5d0cbe5d1cbe5d1cbe5d2cbe5d3cae4d5cae3d6cae4d6c9e3d7c6e1d8c7e1 +d7c6e1d6c9e3d5cae3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5cae3d6c9e3 +d6c9e3d4c9e3d0cbe5d0cbe5d3cae4f7d9e8a54852a32120b82323c82625cd2726cb2626 +c12324b42423951e1ddda9badfd0e6d1cae4d4cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5cae3d5cae3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5cae3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d6cae4d6c9e3d6c9e3d6c9e3d6c7e2d6c7e2d6c9e3d6c9e3d6cae3d6cae3d6cae3d6cae4 +d5cae3d4c9e3d3c9e3d2c9e4d1cae4d0c9e4d0c9e4d0cbe5d0cbe5d0cbe5d0cbe5d0cbe5 +d0cbe5d0cbe5d0cbe5d1cbe5d2cbe5d3cbe5d4cae4d5cae3d6cae4d6c7e2d7c6e1d8c7e1 +d7c6e1d6c9e3d5cae3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d6cae4d6c9e3 +d6c9e3d4cae4d1cce6d2cde6d4cbe5f7dce9a74d55a62321ba2423c82425cf2726cc2626 +c12324b42222941d1ddca9badfd0e6d1cae4d4cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d5c9e3d5c9e3d5c9e3d6c9e3d6c9e3d6c9e3d6cae3d6c9e3d6cae3d6cae3d7cae4 +d6cae3d6cae4d6cae4d6cae4d5cae3d4c9e3d3c9e3d3cae4d2cbe5d2cbe5d3cae4d3cae4 +d3cbe5d3cbe5d3cbe5d4cbe4d4cae4d4cae4d5cae4d6cbe4d6cbe4d6cae4d6cae3d6c9e3 +d6c9e3d5cae3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d6cae4d6cae3 +d6cae3d4cbe4d1cce6d1cce6d5cce5f7dceaa74d55a62421bb2324c92526cd2726cb2626 +c02325b6252397201edfacbbe1d1e6d1cae4d4cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d5c9e3d5c9e3d6c9e3d6cae3d6cae3d6cae3d6cae3d6cae3d8cae3 +d6cae3d6cae3d6cae3d7c9e3d7c9e3d7c9e3d6c9e3d5cae3d4cae4d4c9e3d5cae3d5cae3 +d6cae4d6cbe4d6cbe4d6cae4d6cae4d6cae4d6cbe3d6cbe3d6cbe3d5cbe4d4cbe4d4cbe4 +d4cae4d4cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d6cae4d7cae4 +d7cae4d4cbe4d1cce6d2cde6d4cbe5f8dce9a64a52a42221bb2324c92625cc2626c82425 +bf2424ba26249d2520e2b1c1e2d3e7d1cae4d4cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d3c9e3d3c9e3d3c8e3d4c9e3d5c9e3d5cae3d6cae4d6cbe4d7cae4d6cae3d8cae3 +d8cae3d8cae3d8cae3dac9e2dac9e2dac9e2d7c9e3d6cae3d5cae3d6cae4d6c9e3d6c9e3 +d7c9e3d7c8e2d7c9e3d7c9e3d7c9e3d6cae3d6cae3d6cbe3d5cbe4d4cce4d2cde5d2cde5 +d2cbe4d4cbe4d4cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d6cae4d7cae4 +d7cae4d4cbe4d1cce6d1cbe5d3cae4f7d8e7a44751a22020ba2423c92625cc2626c62525 +be2424bc27249f2922e4b3c3e3d3e7d1cae4d4cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d3c9e3d3c9e3d3c8e3d3c8e3d3c8e3d4c9e3d5cae3d5cae4d7cae4d6cae3d6cae3 +d8cae3d8cae3d9cae3dac9e2dac9e2dac9e2d7c9e3d6cae4d5cae3d6cae4d6c9e3d6c7e2 +d8c7e1d9c7e1d9c8e2d9c8e2d9c8e2d7c9e3d6cae3d6cbe3d5cce4d3cce4d1cee4d0cfe4 +d0cee5d2cbe4d4cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d6cae4d6cae3 +d6cae3d4cae4d1cce6d0cbe5d2c9e4f7d8e7a4474fa12020b92323c92625cc2626c72525 +be2424bc27249d2620e3b1c0e2d3e7d1cae4d4cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d3c8e3d3c9e3d4c9e3d4c9e3d4cae4d5cae4d5cae4d6cbe3 +d6cbe3d6cbe3d6cae3d7c9e3d7c9e3d7c9e3d6cae3d4cae4d4cae4d4c9e3d5cae3d6c9e3 +d7c8e2d9c7e1d9c7e1dac7e1d9c7e1d8c7e1d7cae3d6cbe3d5cce4d2cde4d1cfe4cfcfe4 +cecee5d1cce5d4cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d6cae4d6cae3 +d6c9e3d4c9e3d0cbe5d0cbe5d3cae4f7d8e7a44751a22020b82323c82425cd2726cb2626 +c02325b52423971f1edfabbae0d0e6d1cae4d4cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d5c8e2d5c8e2d5c9e3d4c9e3d4c9e3d4c9e3d4cae4d4cae4d4cae4d4cae4d4cbe4 +d4cbe4d4cbe4d4cbe4d4cae4d4cae4d4cae4d4cae4d1cae4d0cbe5d1cae4d3cae4d4c9e3 +d6c9e3d7c6e1d8c7e1d8c7e1d9c7e1d8c7e1d7c8e2d6cae3d5cae3d2cde5d0cfe5cdcfe5 +cecee6d1cce5d4cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d6cae4d6c9e3 +d5c7e2d3c9e3d0cbe5d0cbe5d4cbe4f8dbe9a74a53a42221b82423c62625d02826cd2726 +c22325b121228e191bd8a5b6decde5d1cae4d4cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d6cae4d6c7e2d6c7e2d6c9e3d6cae4d5cae3d4c9e3d4cae4d1cae4d0cae4d0cbe5d0cbe5 +d0cbe5d0cbe5d0cbe5d0cbe5d0cbe5d0cbe5d0cbe5cecce6cecde7d0cde6d0cbe5d1cae4 +d3c9e3d6c9e3d5c7e2d7c7e1d7c7e1d7c6e1d7c8e2d6c9e3d5cae3d4cbe4d1cce5cfcee5 +d0cee6d3cce5d4cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5c9e3d6c9e3 +d5c7e2d3c9e3d0cbe5d0cbe5d4cbe4f7dce9a94e56a92522bb2324c62625cc2626c92526 +bf2424b52423961f1edeaabadfcfe5d0c9e4d3cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d5c9e3d8c6e1d8c6e1d7c7e1d5c6e1d4c6e1d3c7e2d2c9e4d1cbe5d2cfe7cccae4cccae5 +cccae5cac9e4c8c6e3cbc9e4d0cee7d0cee7cbc9e4c8c9e5cbcce6cfcfe8cbc9e4c9c4e1 +d3cae4cbbfdddfd3e8d5c8e2d4c6e1d5c7e2d4c6e1d5c7e2d5c7e2d4c9e3d3cae4d0cbe5 +d1cae4d2c9e4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5c9e3d6cae3 +d6c9e3d3cae4d0cbe5cfcae4d2c9e4f7d9e8a64a52a42120ba2423c92625cd2726cb2626 +c12324b7252399211fe0adbde2d2e7d1cae4d3cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d6c9e3d4c3dfd6c3dfd7c6e0d7c8e2d7cae4d6cbe4d2c9e4cdc6e2c8c5e2cdcbe5cecce6 +cdcbe6cac8e4c9c6e3cac8e4d0cce6d0cce6cbc8e3d0cce6d0cde6d1cde6d4cde6d6cee6 +ddd1e7d8cde6d4c7e2cabcdcd0c3e0d4c6e1d4c6e1d4c6e1d4c7e2d3c8e2d3c8e2d3cae4 +d3cae4d3c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5c9e3d6c9e3 +d6c9e3d3cae4d0cbe5cfcae4d1c8e3f5d6e6a3454da02020b82323c92625cf2726cb2626 +c12324b725239a211fe1adbee1d1e7d1cae4d3cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d6c9e3d7c6e1d7c5e0d6c4dfd5c6e0d6c9e3d6cbe4d4cbe5d0cae4cdc8e4cdcae5cecbe5 +cecae5cdc8e3cdc6e2cec7e3d2c9e4d1c8e3cfc4e1d8cae3d5c6ded4c4ddd7c9e2d9cce4 +d9cae3d8cbe4d7cbe4d9cde5d6c9e3d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c7e2 +d3c8e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5c9e3d6c9e3 +d5c7e2d3cae4d0cbe5d0cae4d2c9e4f6d6e6a1434b9d1e1fb72323c92526cd2726c92625 +c02325b6252398201edfacbbe1d1e6d0cae4d3cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d5c9e3d9cae3d9c7e1d6c5e0d5c5e0d4c6e1d4c9e3d3cae4d3cae4d3cbe5d0c7e3d1c8e3 +d3c9e3d6c9e3d6cae3d8c9e2d8c7e1d6c2ded5bddbe3c8e0e7c7dce7c9dde9cde2e4cae1 +d3bbd9c0acced3c3dfd8cbe4d6c9e3d3c7e2d3c8e2d2c7e2d2c7e2d3c6e1d4c6e1d4c6e1 +d4c7e2d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5c9e3d5c7e2 +d5c7e2d3c9e3d0cbe5d0cbe5d3cae4f6d7e6a2454d9e1e1fb52323c62625cc2626c92526 +bf2424b52423971f1edfabbadfcfe5d0c9e4d3cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d6c7e2d7c9e3d7c9e3d6cae3d4c7e2d2c6e1d1c5e1d1c5e1d3c6e1d6c7e2d7c6e1 +d9c6e0dbc5dfdec5dfe2c5dee5c7dfe6c3dce7c2dbf3c2d8f4bfd0ebb6c9dba9bfc99cb4 +ad84a1916e8fd3bcd9d9c8e2d6c7e2d3c7e2d2c9e3d1c8e3d2c7e2d3c8e2d3c6e1d4c6e1 +d4c7e2d5c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5c9e3d5c7e2 +d4c6e1d3c9e3d0cbe5d0cbe5d4cbe4f8dae8a44750a12020b82323c82425cd2726c92625 +bf2424b6252397201edfacbce0d0e6d0c9e4d3cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d1c5e1d4c7e2d6cbe4d6cbe4d4c9e3d2c6e1d0c4e0d1c3dfd3c4e0ddc9e2dfc7e0 +e1c3dde4c1dbe8c0d9ecbdd6eebad4ecb5d0ebb2cbe49aabde8c9bc87584ab5a6d914860 +7f3e59713a5bdfc0dae1cbe2d9c9e3d4c9e3d2c9e4d0c9e3d0c9e3d1c8e3d3c8e2d4c7e2 +d4c7e2d5c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5c9e3d5c7e2 +d4c6e1d3c9e3d0cbe5d0cbe5d4cbe4f7dbe9a64a52a42120ba2423c92625cf2726cb2626 +c12324b725239a211fe1adbee1d1e7d1cae4d3cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d1c8e3d0c9e3d0c7e3d0c7e2d0c6e2d3c7e2d6cae3ddcce4e4cfe4e0c4dee5c3dc +edc4dbf1c4d9f0bdd2e9aac0d68ca1be6d82b75769a5323ea62b349a20288c1926882236 +88344a995a73efcadedcc1dad9c6e0d5cae3d2cae4d0cae4d0cae4d0c9e3d2c9e3d3c7e2 +d5c7e2d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5c9e3d6c9e3 +d6c9e3d3cae4d0cbe5d0cbe5d3cae4f7dae8a74a53a42221bb2324c92625cf2726cb2626 +c12324b725239a211fe0aebee1d1e7d1cae4d3cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d3cae4d2cde6cdcae5ccc7e3cdc6e2d0c7e3d6cbe4dacce4ddcae2e0c7e0f3d4e5edc0d7 +d8a2b9c58196b26274a24452952934901b22971d1fa72021aa2021a11f20981c1f941f27 +923041d492a3f9d1e1ebcbdedec8dfd7cae3d2cae3d0cbe5d0cbe5d0cbe5d0cae4d3cae4 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d3cae4 +d3cae4d3cae4d3cae4d3cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4cae3d3cae4d1cae4d0cae4d0cae4d0cae4d1c9e4d1c9e4d1c9e4 +d3cae4d3cae4d4c9e3d4c9e3d4c9e3d4c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c8e2d6cae3 +d6cae4d1c9e4cec9e4ccc9e4d0c7e2f7d8e7a74753a62121b92223c92526cd2726cb2626 +c02424b52423971e1fdcaac0ddcee5d0c9e3d4c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3 +d5c9e3d5c7e2d5c7e2d5c7e2d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d3cae4d4c9e3 +d3cae4d3cae4d3cae4d3cae4d3cae4d3cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d3cae4d3cae4d4c9e3d4c9e3d4c9e3 +d3c8e3d3c8e2d3c8e2d2c9e3d4c9e3d5c9e3d5c8e2d5c8e2d6c7e2d6c7e2d6c7e2d6c9e3 +d6c7e2d5c4e0d7c4dfdcc8e1e6d0e5edd5e6edd1e4e4bfd9ce9fbcbb819c954d668d364d +8a273b8b1d2a901a20931b1d951a1d9b1e1fa82121ad2021af2022ac2021a723239b232b +8b2537f3b9c8efc6d8e3c7dddac8e1d5cae3d2cae3d0cbe5d0cbe5d0cbe5d1cae4d3cae4 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d3cae4d0c9e3 +d0cae4d0c9e3d0c9e3d1c9e4d2c9e3d2c9e3d3c8e2d3c8e2d5c7e2d5c9e3d5c9e3d5cae3 +d5cae3d5cae3d5cbe0d5ccdfd2cde3cfcde6cccce6cbcce6cbcbe5cccbe5cdcbe5cdcae5 +cfcae4d0c9e3d2c9e3d3c8e3d4c9e3d5c7e2d5c8e2d5c6e1d5c6e1d6c7e1d6c7e1d6cae3 +d4c9e3cfc8e3cdc8e4ccc7e3d0c6e1f6d5e5a34153a11f20b92223cc2626d22826c92725 +c72625b62323a0252ee0adcbdfcfe6d3c8e3d5c7e2d7c7e1d7c7e1d6c6e1d5c6e1d5c6e1 +d5c8e2d5c7e2d5c7e2d5c7e2d4c7e2d4c7e2d4c7e2d3c8e2d3c8e2d2c9e3d2c9e3d3cae4 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d3cae4d3cae4d3cae4d1cae4d3cae4 +d2cae4d1cae4d1cae4d1cae4d1cae4d1cae4d3cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d2cae4d0cbe4d0cbe4d5cbe4d6cae4d2c6e1 +d2c6e1d4c9e3d4c9e3cbc2e0d4cae4d3c5e1d4c5e0d9c6e1dac7e1d8c4dfd7c4dfdbc7e1 +e7cee3f6cee0f7c9dbf4bed2e8abc0d28ea2ba6d80a64e629c3649992939971f279a1e22 +9d1e20a11e20a51f20a82021aa2021ac1f21b02122b52123b02122a41e20971d1e87181f +832e46f4c8dae2c8e0d9c9e3d4c9e3d2c9e4d1cae4d1cae4d3cae4d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d3cae4d0cae4 +cfcae4d0cae4d0c9e3d1c9e4d2c9e3d2c9e3d3c8e2d3c8e2d4c7e2d5c7e2d5c9e3d4c9e3 +d4c9e3d5cae3d5cce2d5cbdfd1cce3cecde7cbcce6cacce6cacce6cccbe5cdcbe6cdcae5 +cfcae4d0c9e4d1c8e3d3c8e3d3c7e2d4c7e2d5c7e2d5c8e2d5c6e1d6c6e1d6c7e1d6c9e3 +d3cae4cec8e3cdc8e4cdc8e3d3cae3f8d9e6a74553a51f21bc2224cc2626d22826c92725 +c82725b52423a0272fe1aecbdfd0e6d3c9e3d5c8e2d6c7e2d6c7e2d6c7e1d5c6e1d5c8e2 +d5c8e2d5c8e2d5c7e2d5c7e2d5c7e2d4c7e2d4c7e2d4c7e2d3c7e2d3c8e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d3c9e3d3cae4d3cae4d2c9e4d3cae4 +d3cae4d2c9e4d2c9e4d2c9e4d2c9e4d3cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d3cae4d2cde5cec9e2d3c9e3d4c7e2d1c4e0 +d1c6e1d4cae4d5cce5cfc4e1d3c6e1d6c6e1dbc5dfe2c8e0ebcce1eecee2eccbe0e7c4dc +e9bad2cf8a9dc87684b95e6daa4654a0333e9b262f9b1f249a1d1f9a1c1fa41f20a81f21 +aa1f21ad1f22ae2022b12122b32122b32122b42122b72323ae2022a62121971e1e8b2633 +aa687cf3d1e2decbe3d0c5e1d0c9e3d0cae4d0c9e3d3c9e3d4c9e3d5c7e2d5c9e3d5c9e3 +d5c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d3cae4d1cae4 +d0cae4d0cae4d0c9e3d1c9e4d2c9e3d2c9e3d2c9e3d2c7e2d3c6e1d3c6e1d3c7e2d3c8e2 +d4c9e3d4c9e3d3cae4d4c9e3d2c9e4d0cae4cfcae5cdcae5cecae5cec9e4cfcae4cfcae4 +d0c9e3d1c8e3d2c9e3d2c9e3d3c8e2d3c7e2d3c7e2d3c7e2d4c7e2d5c7e2d5c8e2d5cae3 +d3cbe3d0cae4cdcae5cecae5d4cbe3fadae4a7484da62121bb2224cb2626d12826c92725 +c72825b42423a02925e1b0c1e1d3e8d1cbe5d3cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d5c9e3d5c9e3d5c7e2d5c8e2d5c8e2d5c8e2d5c8e2d5c7e2d5c7e2d5c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d3c7e2d3c7e2d3c8e3d3c8e3d3c8e3d3c8e3 +d3c7e2d3c7e2d3c8e2d3c7e2d3c7e2d3c7e2d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d7cde6d0c5e1d2c6e1d4c7e2d2c6e1 +d0c5e1d2c9e3d3cae4d1c6e1d1c1dee0cae2eccce1edc4daebb8d1e0a7c0d294acbf7c94 +b2647aa94454a4333d9c2329941c1e941b1d9a1b1fa11e20a62021a82021ad2021ae2022 +b02122b12122b12122b12122b32122b32122b32122b52323ab1f21a62221971f1f963745 +d7a0b4f2d2e4decde4ccc3e0cfc7e2d0cae4d0c8e3d3c8e3d5c9e3d5c8e2d6c9e3d5c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d3cae4d1cae4 +d1cae4d1cae4d1cae4d2c9e4d2c9e3d2c9e3d2c9e3d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2 +d1c7e2d2c7e2d1c7e2d2c7e2d2c7e2d2c9e3d3cae4d3cae4d4c9e3d4c9e3d3cae4d3cae4 +d3c8e3d3c8e3d2c9e3d2c9e3d2c9e3d2c9e3d2c9e3d2c9e3d2c9e3d3c8e3d4c9e3d5cae3 +d4cbe2d0cbe4cecbe5cdcbe5d2cbe0f9d9e1a44647a22020b92323cb2726d12826c82625 +c72825b424239f2920e1b0b9e1d5e7cecee6cfcde5d0cbe4d0cbe4d0cbe4d1cae4d2cbe5 +d2cae4d3cae4d4c9e3d4c9e3d5c9e3d6c9e3d6c9e3d6c9e3d6c9e3d6c7e2d6c7e2d5c8e2 +d4c7e2d3c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d5c7e2d5c7e2d5c7e2d5c7e2d4c6e1 +d4c6e1d4c6e1d4c6e1d4c5e1d4c5e1d4c6e1d3c8e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5c9e3d7cbe4d1c1ded3c5e0d6cae4d3c8e3 +cfc6e1cfc6e1d2c7e2d4c5e1decae2e8c8dde8b8cdd99cafc87e8fba6273ac495ba13346 +99212f9d1f24a22023a42121a62021a72121a92021ac2021ae2122b22122b12122b12122 +b32122b12122b12122b02122af2022af2222b02222b42222a82021a02020921b1d9b4454 +f3c6d8eccee2d9cae3d0c6e2d0c9e3d0cae4d1c8e3d4c9e3d5c9e3d5c8e2d6c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d3cae4d2cae4 +d2cae4d2cae4d2cae4d2cae4d2c9e4d2c9e4d2c9e4d1c9e4d1c8e3d1c8e3d1c7e2d0c7e2 +d0c7e3d0c7e2d0c7e3d0c7e2d2c7e2d5c8e2d6c7e2d6c7e2d6c7e2d6c7e2d6c9e3d6c9e3 +d5c9e3d4c9e3d4c9e3d3cae4d1c9e4d1cae4d0cae4d0cae4d0cae4d0cae4d1c9e4d5cae4 +d5cae3d1c9e4cdc8e4cdc8e4d0c8e0f8d6e2a242479f1e1fb72323c92725cf2926c82625 +c72825b422229e2524dfafbbe1d4e7cdcfe6cccfe6cccfe6cccee5cccee5cfcee5d0cee5 +d0cce4d1cce4d3cce4d4cbe4d5cbe4d5cae3d6cae3d7c9e2d7c9e2d8c8e1d7c8e1d5c8e2 +d4c6e1d2c7e2d3c6e1d3c7e2d4c7e2d5c9e3d5c9e3d6c9e3d6c9e3d5c8e2d6c7e1d6c6e1 +d5c6e1d5c5e0d6c5e0d5c4dfd4c5e0d4c5e1d4c7e2d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5c8e2d8c6e1d2bfddd4c6e1d8cce5d2c9e4 +cdc5e1cec4e0d5c7e2dbc8e1f1d1e3deaebec4818eb05862a4393ea3272aa62324ab2124 +b02323ab1f21af2122b42423b82523b92424b92324b72323b72323b72323b72323b52323 +b52123b32122b12122af2222ad2122ab2021ab2021b02322a61f20991d1e8d191da35666 +f7d2e2e4c8dfd3c3dfd3cae4d0cae4d0cae4d1c9e4d4c9e3d5c7e2d5c8e2d5c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d3cae4 +d3cae4d3cae4d3cae4d2cae4d1cae4d1cae4d1cae4d1cae4d1cae4d0c9e3d0c9e3d0c9e4 +d0c9e4d0c8e3d0c9e3d0c7e3d3c8e2d6c7e1dac7e0dac7e0d9c8e1d9c8e1d8c8e1d7c9e2 +d6cae3d5cae3d4cae3d2cbe4d1cae4d0cbe5d0cbe5cfcbe5cecce6cecce6d0cae4d3c9e3 +d4c6e1d1c6e2cec7e2cdc6e2d0c7e2f6d7e6a1434f9e1e1fb52123c82425cd2726c82625 +c72625b320239c2232dea9c4e0d1e7cdcee7cacee5c9cfe6cbcfe5cbcfe5cccee4cecee5 +cfcee4d0cee4d1cce3d3cce3d4cbe3d5cae3d6cbe3d7cae3d7c9e2d8c9e2d7c9e2d6c9e3 +d3c7e2d2c7e2d2c7e2d3c8e2d4c9e3d5cae3d5cae3d6cae3d6cae3d7c9e2d8c8e1d8c6e1 +d8c6e1d8c5e0d7c5e0d7c4dfd6c3dfd5c5e0d5c7e2d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d6c7e2d9c6e1d5c1ddd5c8e2d5cbe4cec6e2 +ccc4e1d4c6e1dfcbe3e8cadee6b8c6c07c849e3f4097201fa02020b02322bc2524c32725 +c92825c02525bc2224b92323ba2323bc2324c02424c12424bf2424bc2324bc2324ba2323 +b72323b42222b12222ae2122ab2021aa2021a72021a82021a01f2091191c922832bc7787 +f6d2e2dec4ddcebfdcd5cde6d1cbe5d0c9e3d2c9e3d5c7e2d5c8e2d5c8e2d5c9e3d4c9e3 +d3cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d3cae4d2cae4d1cae4d1cae4d1cbe4d0cce4d0cbe4d0cbe4d0cbe5d0cbe5 +d0cae4d0cae4d0cae4d0c9e4d3cae4d6c7e2dac7e0dac7e0dac7e0d8c8e1d8c8e1d7c9e2 +d6cae3d5cae3d4cbe4d2cae3d1cae4d0cbe5d0cbe5cecce6cecce6cdcde6d0cae4d3c6e1 +d3c3dfd0c2dfcfc6e1cfc8e3d4c9e3f9dae8a54a52a12120b52223c52625cd2926c82625 +c72526b220249c203cdfa6c7e1cfe5cecde7cbcde7cacee7cacee6cbcee6cdcde6cecde6 +cfcde5d0cbe4d0cbe4d1cae4d3cbe4d4cae3d5cae3d6cae3d6c9e2d6c9e3d6c9e3d5c9e3 +d2c9e4d0c9e3d0c9e3d3cae4d4c9e3d4c9e3d4c9e3d5c9e3d6c9e2d6c9e3d7c8e2d8c7e1 +d9c6e1d9c6e1d9c6e1d9c6e0d9c6e0d7c7e1d5c8e2d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d6c7e2dbc7e1d7c3dfd4c6e1d0c7e2cac3e0 +cfc4e1dbcbe3eacce1edc0d1bb747fa4434498231fa32120b62523c12724c22425c42425 +c62625c62625c52625c62625c62625c52625c42425c42425c62625c82725c12424bd2324 +ba2323b72323b32222ae2122ab2021a82021a61f20a01d1f991c1e8d181ba34755db9eaf +f3cbdedcc5dfcfc1ded2cbe5d0cae4d0c9e3d2c9e3d5c7e2d5c8e2d6c9e3d5c9e3d4c9e3 +d3cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5c7e2 +d5c9e3d4c9e3d3cae4d2cae4d1cae4d1cce4d0cee4d1cee3d1cee1d0cfe1d0cfe1d0cfe2 +d1cee3d0cee4d0cee4d0cee4d3cce4d5cae3d6c7e2d6c7e1d6c7e1d6c7e2d5c8e2d6c9e3 +d5c9e3d4c9e3d3cae4d3cae4d2c9e4d1c9e4d0cae4d0c9e4d0c9e4cfcae4d1c8e3d5c6e1 +d6c3ded2c3dfd1c6e2d0c7e2d4cbe4fadbe3a44d43a02220b32323c52725cc2826c82725 +c72725b320249c2039e0a6c1e2cee4d1cae4d0cae4cfc9e4cfcae4cfcae4d0c9e4d0c9e4 +d0c9e4d0c9e3d0c9e3d0c9e3d2c9e3d2c9e3d3c8e2d3c8e2d2c7e2d2c7e2d3c8e2d2c9e4 +d0cce4d1cee3d0cce4d0cbe4d1c9e4d0c8e3d1c8e3d2c7e2d1c6e2d4c6e1d4c6e1d5c6e1 +d7c8e2d9c9e1dacbdddbcbd9dbcbd7d8cbdcd5cae3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d6c7e2d9c7e1d5c4e0d2c7e2cec7e2cec7e2 +d6cae3e4cae1e8bad0da98a9a33c48a6292aa92321b22323bb2424c12424c92725d92b26 +e53124c22425c62625cd2826d02826cc2826c52625c12424c22425c62625c22425c12424 +bc2324b72323b32223ae2122ab2021a82021a41f209b1e1f90191c88191fb56677f5c2d4 +e8c4dadbc6e0d5cae4cec7e3cfc9e4d1c9e4d4c9e3d5c8e2d6c7e1d6c9e3d5c9e3d3cae4 +d3cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5c9e3d5c7e2 +d5c8e2d5c9e3d4c9e3d3cae4d2cbe4d1cce4d0cee4d1cee3d0cfe1d0cfe1d0cfe1d0cfe1 +d1cee1d1cee1d2cde1d2cde1d1cce3d3cae4d4c9e3d3c8e2d3c8e2d3c8e2d3c8e2d4c9e3 +d4c9e3d4c9e3d3c8e2d3c8e2d3c8e2d3c8e2d2c7e2d4c6e1d3c6e1d1c6e1d4c5e1d9c5e0 +dcc4ded7c4dfd4c6e1d2c7e2d2c7e0f7d8e19e463f9a1e1fb12222c42625cc2926c72725 +c72625b320279c1f36e2a7bae6d0e3d6cae3d4c6e1d3c5e1d3c5e1d3c5e1d4c6e1d4c6e1 +d4c6e1d3c6e1d3c8e2d3c8e2d2c9e3d2c7e2d2c7e2d0c8e3d0c7e2d0c7e3d0c8e3d0cae4 +d0cee5cecfe3d0cee5d0cbe5d0cae4d0c9e3d0c8e3d1c8e3d1c7e2d1c6e1d3c8e2d5c9e3 +d6cae3d7cae1d8ccdbd8ccd5d8ccd3d8ccdad5cae3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5c7e2d5c3dfd3c4e0d0cae4d0cbe5d4cde6 +e0cee5e7c3dadd9db4c3677aa01f27ad2222b62423bd2424c22625c62625cb2726cf2826 +ce2826cf2926c62625c12424c12424c52625cb2726cc2726cb2726c42425c42425c12424 +bd2324b92323b52223b02122ad2021aa1f21a31f209b1e1f88171b80192ab5768bf3d2e3 +dabcd7d5c4dfddd4e9cbc5e2cfc7e2d1c9e4d4c9e3d5c8e2d6c7e1d6c9e3d5c9e3d3cae4 +d1cae4d2c9e4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5c9e3d5c7e2 +d5c7e2d5c7e2d4c9e3d4c9e3d2cae4d1cae4d0cce4d0cee5d0cee5d0cee5d1cee5d1cee5 +d0cee4d0cbe3d1cae3d2cae3d2cae3cec7e3cdc7e3cdc8e4cec9e4d0c9e4d2cae4d3cae4 +d3cae4d4cae4d4c9e3d4c7e2d4c6e1d5c6e1d4c5e0d5c4dfd3c2ded3c1ded6c2dedec5df +ddc0dbdcc5dfe1d0e6d6c9e3ded0e7f7dfeb943b44971c1eb12122c52525cd2826ca2626 +c3242ab2202c9f1f36e0a2adedd2d8e0cee3dbc5dfdac5dfdac5e0dac7e1d9c7e1d9c6e1 +d7c6e1d6c6e1d5c6e1d5c8e2d4c9e3d3c8e2d0c7e3cfc7e2cec8e3cdc8e3cdc8e4cdcae5 +cdcae5cecce6d0cbe5d2cde6d2cde6d1cbe5d0c9e4cec6e2cfc6e2d4cce5d4cce5d5cce5 +d4cbe4d4cbe4d4cae1d4cbe0d4cbe0d4cbe2d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c7e2d4c5e1d4c9e3d1cfe8cecee7cfc8e2 +e3cee3f1c2d8d4829bae334daf2128b92223be2324c12424c12424c22425c62625c92725 +c92725c62625c42425c12424c12424c22425c52625c62625c62625c52625c22425c12424 +be2424bc2324b82223b32023ad2021aa1f21a21e20941b1e80151ea25266d8a2b7eec9dd +d9c0dad9cde5d0c7e3cfc9e4d0c9e4d3cae4d5c7e2d6c7e1d6c7e2d6c9e3d5c9e3d2cae4 +d1cae4d2c9e4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5c9e3d5c8e2 +d5c7e2d5c8e2d5c7e2d4c7e2d3c9e3d1cae4d0cbe5d0cbe5ccc7e3cec9e4d0cae4d2cbe5 +d4cbe4d4cae4d4c9e3d4c7e2d2c7e2d0c9e4cfcae5cfcbe5cfcbe5d0cbe5d1cae4d3cae4 +d3c9e3d4c8e2d5c7e0d7c7e0d9c8dfdbc8dfdec8e0e2cae1e3cae1e4c9e1e7cce0eac9cf +e6c5c0e0c7c3d9c6cdbdafbec4b5c9e3c0d3943748a01f25b72323c52625cd2626c92327 +c5242bbd2230a9262edfa18fe3c6abdcc4b6e1c2c9e4c2d3e4c4d4e6c7d7e6c9d8e6ccda +e6cedce4cfdee0cddddbcbdddaccdfd9cee4d8cee5d5cee5d3cde6d0cbe5cfc9e4cec9e4 +d0cae4cfc8e3cdc4e1cbc4e1cdc6e2cfc7e2d2cbe5d5cee6d5cee6d0c9e3d0c9e4d1c9e4 +d0c9e4d1c9e4d1c9e4d1c9e4d1c8e3d2c9e4d3cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c6e1d3cce5ced0e9cbcfe7cfc8e0 +e4cce1efb9d0d06f89af263cbd2128c52425c52425c22425c12424bf2424bf2424c22425 +c22425c02424bf2424bf2424bf2424c02424c12424c22425c52625c52625c22425c12424 +c02324bd2224b92223b42023b02022ad1f22a11e208c181d791428b36f85edbdd3edcce1 +d9c4dfd7cbe4cdc6e2d2cde6d1cae4d3c9e3d5c7e2d6c7e1d6c7e1d6c7e2d5c9e3d1cae4 +d1cae4d2c9e4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5c9e3d5c8e2 +d6c7e2d5c8e2d5c7e2d3c7e2d2c7e2d0c8e3d0c9e3d0c9e3cdc6e2cfc7e2d0c7e2d2c7e2 +d4c6e1d4c6e1d3c4e0d4c3dfd2c3dfd2c8e3d0c9e3cec8e3cdc6e2cec7e3d0c9e3d5cce2 +dacedbddcfd2e0d0c9e0cfbfe0ccb7dec9acddc5a3dbc09cd8bd93d7ba8fd6b986d9ba7b +dabd78d4be81baab80887b5f897b72ab828484252b991d1eb42223c52525cb2726c72525 +c52425c32625ae2f23dfa462d8c066cdbb62d8bb70dbb977dbba7bd9bc7fdabf85dac08c +d9c195d9c29dd8c4a6d9c7b2d9c9bcdbccc8daced5dacfded6cde2d5cce4d3cae4d2c7e2 +d3c8e2d2c7e2d4c9e3d3c8e3d3c9e3d4c9e3d3cae4d1c9e3d0c9e3d0c8e2cfc8e3d0c9e4 +d0cae4d0cae4d0c9e4cfc8e3cec7e2cfc6e2d2c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d1cce6c8cee8c9cfe6d1cce2 +e3c7dbe5a8c0c85b77b72437c52427cc2626c92526c42425be2424b92423b72323b92223 +bb2224ba2323bb2324bc2324bd2324bf2424c12424c22425c42425c42425c12424c12424 +c02325be2324bb2224b62223b22022ae2022a01d208516207b1f3cbd849cf1cbdfe9cee3 +d6c7e1cfc6e1ccc7e3d0cce6d0cae4d4c9e3d5c8e2d6c7e1d7c7e1d6c7e2d5c9e3d1cae4 +d1cae4d2c9e4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5c9e3d6c7e2 +d6c7e2d6c7e2d5c7e2d3c7e2d2c7e2d0c7e3d0c7e3cfc6e2d1c8e3d2c8e3d1c6e1d2c4e0 +d3c3dfd3c3dfd5c2ded7c3dfd5c3dfd2c4e0d0c5e1d2c7e2d4c9e3d5cae1d6cbd6d6c9c5 +d5c7b3d4c5a1d6c692d6c583d7c374d7c166d6bf58d5bc49d2ba3ed1b738d0b632d1b82e +d8be39d5c14bb3a54561552258491d7a4d38751511931b1cb02222c22625cb2825c82625 +c62625bf2524ab2f23e0a83adfca39d4c62ddac329ddc02bdbbe2bd8bd2ed4bb32d3bb3a +d1b943cdba53cfbb65d3bf77d0c086d1c097d3c2a8d4c5b7d4c7c2d5c8ccd5c8d5d8c8dd +dacbe3dacae3dbcce4dccce3d9cbe4d8cae3d5c7e1d0c6e0d0c6e1d4c9e3d3cae4d1cae4 +d1cae4d0c9e3d0c8e3cdc6e2cdc6e2cdc6e2d2c7e2d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5c9e3d2cde6c3cde5c5cfe5d2cfe3 +ddc3d7d998aebe4862b92230cb2526d02726cb2626c42425bc2424b52323b32223b42123 +b62323b52323b82323ba2323bc2324bf2424c12424c22425c42425c22425c12424c22325 +c12324c02324bc2224b82223b42023b020229e1c208014248d4561cb9cb6edcde1ddc9e1 +d5cae3cbc6e2ccc9e4cdcae5d0c9e4d4c9e3d6c7e2d8c7e1d7c7e1d6c7e2d4c9e3d1cae4 +d0cae4d2c9e4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5c9e3d6c7e2 +d6c7e2d6c7e1d5c7e2d3c7e2d2c7e2d1c7e2cfc6e2cfc6e1d2c7e2d1c6e1d2c4e0d3c3df +d4c3dfd9c5e0dbc6e0dec6e0dec8e0d9c7d5d8c9cadbccc5dccdbedacbb1d5c5a1cdbd87 +c7b46ec4b059c7b34cccb740cfb938d4bd35dbc134e0c533e4c931e7cc31eacf2de6ca28 +e8ce30e8d54cc8bc48655a244f421771431f7916139b1e1fb32222c12624cc2826cb2726 +c52625b72323a92922e4af35eddd35e9dc28ecd523ecd123e9cf22e5cb22e1c725dfc626 +ddc52adcc434d8c23cd5c142d0bd4dccba5acab867ccb973ccbb80d0be8cd4c199d8c4a5 +dec9b6ddc8bcdcc6c0dcc6c5dbc6ccdac7d5dcc9dddbcae2d9cbe4d6c9e3d4c7e2d2c9e3 +d1c8e3d0c7e3cec8e3cec8e3cec8e3d0c9e3d2c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d6c9e3d7c8e2d4cbe4c1c9e3c4d1e6d1d2e5 +d9c1d4cf8fa3b33b53b9212bcd2526d32926cc2726c42425bb2424b32323b12222b32123 +b52323b52323b92323bb2324be2424c12624c22425c42425c42425c42425c12424c32325 +c32325c02325bd2224b92223b62223b020229c1d20791125ad718cdbb5d1e1c7e0d4c3df +d4cbe5cdcbe5cdcce6cac8e4d0c9e4d4c9e3d6c7e1d8c6e1d8c7e1d6c7e2d4c9e3d0cae4 +d0cae4d2c9e4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5c9e3d6c7e2 +d6c7e2d6c7e1d5c7e2d3c7e2d2c7e2d1c7e2cfc6e2cfc6e2d2c5e1d2c5e1d5c6e1d9c7e0 +decadfe1cadae4c9d3e1c5c9dec5b3e3ce9addca7ed2c067c8b653c3b041c2af38cab436 +d6bf3edec741e3c93fe3ca3ae5ca34e6ca31e7ca2fe9cb2debca2eebca2eeccb2af0d12b +f2d834f3e056dbcf5d7163275443187747257a17149e2020b52323c22625cd2926cc2626 +c62525ba2323ad2a23e5b440f3e749f0e234efd627f1d325eed124eed121eccf23ebd025 +e9d124e9d127e6cf28e1cb27dec82ad9c52cd5c12dd2bd30d0bb33d0bb36d3be3dcdb942 +c4ae49c8b35fd5bd7adec595e4cbaee7cec5e5ccd6dfc8dfdac6e0d6c3dfd3c3dfd1c3e0 +cfc4e0cfc6e2cfc9e4d0cbe5d1cee7d3cee7d3cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5c7e2d9c6e1d5c7e2c2c7e3c5d1e6cfd2e5 +d6c3d3cc90a2b13b51b42127cc2626d22a26cb2726c22425bb2424b42423b42223b62323 +b92223ba2323bc2324bf2424c12424c42425c52625c52625c52625c52625c22425c42425 +c32325c02325bc2224b92223b72323b02022971b1e6e0c20c595afe9cbe1d9c4dfd4c5e0 +d5cee7d0cee7cdcde7cdcce6d0c9e4d4c9e3d6c7e1d9c6e1d9c6e1d6c7e2d4c9e3d0cae4 +d0cbe5d2cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5c9e3d6c7e2 +d6c7e2d6c7e1d5c7e2d3c7e2d2c7e2d1c7e2d2c7e2d2c9e3d7cbe4d9cce4daccdeddccd1 +e2cdc6e0cab6dac2a4d1b990cbb26ec5ac3bc8af2cd0b629d9be2cdfc331e5ca34e8cd31 +eace2eebce2ae8ca28e9c926e9c925ebca27edca29eeca2aefcb2bf0ca2df0cb2befcb2a +ebc72ae9cb3dd4bf4a6c59234a371270401970130f961c1db32323c52725cc2826cb2626 +c92625c72525b93124e8ad45ecd542e4cd2ae3c525e6c426e6c424e5c524e6c623e5c724 +e6c823e6ca23e8cc23e9ce22eace21eace23e8ce23e6cc24e5c924e3c623e0c425e0c32a +e0c334d8bd35ceb035c7a944c6a960cfb182d9bca6e1c6c4e7cddae4cde2ddcbe3d9cae3 +d6cae3d4cae4d1cae4d0cee5d0cee5d1cce5d3cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c7e2d6c6e1dcc5dfd5c4dfc6c8e4c6d2e9ccd3e5 +d5c7d6d19ca9b64959b32123c92625d12826cb2726c22425bc2424b82423b92423bd2224 +c12324c12424c42425c52625c52625c62625c82625c82625c62625c62625c22425c42425 +c42425c02424bc2324bb2324ba2323b02022941a1d6e102bcda3c0e9d1e5d9c7e1d7cbe4 +cfcbe5c7c9e4c9cae5cecce6d1cae4d5c7e2d7c7e1d9c6e1d9c6e1d6c7e2d4c9e3d0cae4 +d0cbe5d2cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5c9e3d5c6e1 +d5c6e1d5c6e1d4c6e1d3c7e2d3c8e2d2c9e3d3cae4d3cce3d9d1e0d8ceccd3c8b5d0c29e +cfc086cfbe72cdbb60c9b647c9b130e1c037eac232ecc42eedc52cedc62ceec728eec726 +eec722eec822f0ca23f0ca23eec823edc623ebc424eabf24e6bc24e5b926e4b925e5ba27 +e2b827d9b72dc1a9327964275f4c1d7c4d1e852419a32621b82823c52825cc2826cc2626 +cd2627c92328b02422da8f37ceaa2ac8ac2cd9b72addb72bddb82ae0ba2be2bd29e2be26 +e4bf25e4c025e2be24e3bb23e6be23e9c122eec523efc725f0c628f1c628efc527edc527 +e8c527e5c527e1c12bddbd30d7b837d1b441cbb053c6ad62cbb27ae0caa7dfcdbadececa +dbced7d9cee1d5cce4d2cae4d0c7e3d0c7e2d3cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5c7e2d7c5e0ddc1dcd6c0ddcccae4c8d1eac8d1e5 +d6cddbdaaeb8c35e68ae2222c62625cd2826c82625c22425be2624bc2424bf2524c52625 +c92725cc2726cc2726cb2726cb2726cb2726cb2726cb2726cb2726c92725c52625c52625 +c42625c02424bb2324b82423ba2423b0222292191ca4566dd6afcee2cbe2d8c9e2d4cbe5 +c9c7e3c5c5e2c8c8e4cbc9e4d0c9e3d5c7e2d7c7e1d9c6e1d9c6e1d6c7e2d4c9e3d0cbe5 +d0cbe5d2cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d3cae4d4c9e3d3cae4d4cae3d3cae4d4c9e3d4c9e3d4c9e3d3c8e2d4c7e2d4c6e1 +d4c6e1d4c6e1d5c6e1d5c6e1d6c7e1d8c8e1dacbdddcccccdacbb8d1c19bc8b778c3b15b +c4b043c8b436d0bb35d9c335e0c430e8c42dedc62befc52aefc62aeec62bedc52aeac227 +e7c128e6be27e3bb28dfb928ddb727dab427d6b028d2ab28cfa829cba52bcaa22bc69b2c +c0992db696319b832f6f5a235b471a6e3e188422189b1f1fb12322c52725ce2926cd2726 +cb2526bd22249a1d1ebf7639ae892e9e862fac8c2faf8e2fb5932fbb982fc09d2ec3a02d +c7a32cc8a52ccda92ad5b028d7b027d8b227ddb425deb626e3ba26e4ba29e6bc27e7c027 +e8c426e6c426e4c426e2c126dfbe28dcbd2bd8ba30d5b837d1b743cbb455cdb970d2c090 +d8c6abdccbc3dbced7d9cde4d7cbe4d4c9e3d4cae3d4c9e3d4c9e3d2c9e3d2c9e3d2c9e3 +d2c9e3d4c9e3d4c9e3d5c9e3d5c7e2d5c8e2d5c7e2d4c7e2d3c7e2d4c9e3d3cae4d3cae4 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d5c9e3d5c8e2d5c7e2d5c7e2d4c9e3d3cae4d2c9e4d1cae4d1cae4d1cae4d2cae4d3cae4 +d3cae4d3cae4d3cae4d3cae4d3cae4d4c9e3d5c5e0dbc2ddd5c0dccfcae5ccd1eacacee4 +dbcedfe3b7c4c76d79a72223bd2324c52625c52625c22425c02624bf2524c22425c82625 +cc2726d22826cf2826cc2726c82625c62625c52625c62625c82625cc2726c82625cb2726 +c82625c12424bc2324ba2423ba2424b0222290181bd897acdfc0dad9c7e1d7cbe4d4cce5 +cccae4cfcfe8d0cfe8cdc9e4d2c9e3d5c7e2d6c7e1d7c7e1d7c7e1d6c9e3d4c9e3d0cae4 +d0cae4d2c9e4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c7e2d3c7e2d3c7e2d4c9e3d4c9e3 +d3cae4d2cbe4d3cbe3d2cce1d3cde1d1cae3d1cae3d2c9e3d2c9e3d3c8e3d5c9e3d3c6e1 +d5c7e2d5c5e0d6c3dfdac4dfe1c8e1e5cad8dfc1bbd1b392cfaf6fceb156d2b43bd7b930 +dabd2bddc128e0c228e0c227e1c124e7c525e8c426e5c127e2c027e0be29ddba2ad6b429 +cead2ac8a62cc3a22ebe9f30b99b33b29534ac9035aa8d36af9141b79c51bea363c1a472 +bea37eb9a487b4a693b1a69cbbadadd6bbbba24840a32320b62423c82725ce2926c92725 +c82625b822239f2220d79a8dd4b9a6c0af98bea990bda78bbaa382b7a077b39b6aaf965b +ad924da98f3ea88d32a98c2fad922fb5992fbda02ec2a72dc9ab2ccdb02ad2b62ad7b928 +d8b928dabb26debd26dfbd25e1c025e2c024e1c025e1c026dfbe28ddbe2cd2b631cab043 +cab164cfba88d8c4acddcac6dbcbd7d7caddd6cbded3cae3d1c6e2d0c6e2cfc6e1cfc6e2 +d2c7e2d2c9e3d4c7e2d5c8e2d7c7e1d6c6e1d5c6e1d4c6e1d4c6e1d3c9e3d2cae3d2cbe4 +d3cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d5c6e1d7c6e0d7c6e0d5c7e2d4c9e3d2c9e4d0cbe5cfcbe5cecce6cfcbe5cfcae5d0cae4 +d1cae4d1cae4d1cae4d1cae4d1cae4d1cae4d3c9e3d4c4e0d4c5e1d1cae4d3cee7d6cbe4 +e3cce2ebbed1d08492982025af2422b72423bc2324bd2324bf2424c12424c52625c92625 +cc2626cf2726cf2726c92626bd2324b42122b32122bc2324c72525cf2826d42a26ce2826 +cc2726cb2825c22625b72423b12222c52d2b8b171ae4aac2e6cce2d9cbe4d6cae4d2c9e3 +d0cae4d1cce5d0cae4d0c9e3d3c9e3d4c9e3d6c9e3d5c8e2d5c8e2d5c9e3d4c9e3d2c9e4 +d2c9e4d3cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d6c9e3d6c9e3d5c7e2d4c7e2d3c7e2d3c8e3d3cae4 +d3cae4d1cce3d3cde1d2cee0d3cee1d1cce3d1cae3d1c9e4d2c9e3d2c7e2d4c9e3d4c7e2 +d3c4e0d6c3dfdbc6e0e1c6dbe0c0c4d8b5a5d4ae81d5b062d2ab3ad9b32ce1bb2ae5c027 +e7c324e4c126e2bf25e3bf24e2c027debe26d9ba27d4b628cfb02ac9ad2cc5a82ec1a22f +ba9c3bb59742b1944db2995fb9a272c0ab85c5b292c6b69acab8a3cbbda9d0c0b3d0bebd +cdbdc5c9bdcec9c2d7cec8e1d9cee6f9e1eda84e56a32120b72423c82725cd2926c62625 +c62625b52423a02621e2acb7e3d0e3d2c9dfd2c7dbd2c4d7d0c2d2cec0c8ccbcbecabab5 +c8b7abc6b59fc7b695c6b386beac73b6a05aaa963da59131a79431ad9a31b4a130bca430 +c3a62dc8a92cceaf2ad6b428dcb926dfbb23e1be23e2be24e2be24e2be25ddbc26d5b62c +ceb039c8af57cab274cfb890d7c2abdbcac0dacecbd6cddbd5cae4d2c7e2cfc5e1cec3e0 +cfc4e1d2c7e2d6cae4d6c7e2d8c7e1d8c5e0d6c5e0d5c6e1d4c6e1d3c9e3d1cae4d0cbe4 +d3cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d6c7e1d7c5e0d7c5e0d5c6e1d4c9e3d0cae4cfcbe5cdcde6cccde7cccde7cecce6d0cbe5 +d0cae4d2cae4d1cae4d0cae4d0cae4d0cae4d0cae4d4cae4d4c9e3d0c7e3d4c9e3d7c7e1 +e4c9e1ecc0d7d795a9a03a49a52724af2322b72323bd2324c12424c52625c72525c82425 +ca2526cc2626c92625bd2224af2022a71e21a81f21b32223c32325cc2726d42a26d12826 +cf2826cc2726c22625b72323b12223bd2a29a42f37e7b2cce4d0e5d8cde5d4c9e3d2c7e2 +d3cae4d3cae4d3c9e3d1c6e2d3c8e2d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d6c9e3d6c9e3d5c7e2d4c7e2d3c7e2d3c8e3d3cae4 +d3cae4d1cce3d3cde3d3cee3d3cee5d3cce5d3cae4d2c9e3d2c7e2d2c7e2d3c5e1d6c7e2 +d7c6e0dcc8dedfc7cbdcc0aed2b586caaa5ecfac40dab836deba2ee0bb29e3bd26e5be27 +e5bf29e4bf28e0bb28dab626d4b129c9a92cc4a52fc1a232be9f38be9f42bea252c1a464 +c6aa7bc6ae8bc3ab95c8b1a5cfbcb7d8c7c8dccdd5ded0dbdcd0dfdbd0e0dcd0e3dbcfe4 +d8cde4d6cde5d3cee7d0cbe5d3cae4f4d7e7a24454a01f20b52323c82625cd2826c62625 +c62625b422229d2620e0adc2e0d0e6d2cbe5d3cae4d4cae4d6cbe4d8cce5d9cde5dccde4 +dfd0e3e2d1dfe2d1d7e1cfccdac7bdcfbca9c5b292bfab84b9a373b39e69af9a5eae9651 +af9142b3953cbb9c30c3a42dc9a92bd0af2ad6b328d9b527dcb726deb726e0bc29e0be35 +dab93aceb23fc6ad4ac6ae58c9b46bcebc85d5c6a7d9cec6dbd0dfd8cde5d2c7e2cdc2df +cdc2dfd2c5e1d6cae4d6c7e2d7c7e1d9c6e1d7c6e0d5c6e1d4c6e1d3c9e3d1cae4d0cbe5 +d3cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d5c6e1d7c6e0d7c6e0d4c6e1d3cae4d0cbe5cecce6cdcde6cdcbe6cecce6d0cbe5d1cae4 +d3cae4d4c9e3d4c9e3d3cae4d3cae4d2c9e4d1c9e4d3cae4d2c9e4cfc6e2d3cae4d5c7e2 +dcc7e0e6c2dbe1a7bfbc6578a2262aaf2322b92323c12424c62625c82625c82625c62425 +c52525c52625bb2224ad2021a31e20a11d20a61f20af2222bb2424c52625cc2726ce2826 +ce2826c62625bc2324b52323b52926a31f20ca6a7aeabbd4e0cde4d5cbe4d4c9e3d3c8e2 +d4c9e3d5cae4d4c9e3d1c6e1d3c8e2d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d6c9e2d6c9e2d5c7e2d4c7e2d3c7e2d3c8e3d3cae4 +d3cae4d1cce4d0cbe4d1cae4d2c9e3d3c8e3d3c8e2d3c7e2d3c6e1d3c6e1d4c6e1d9c7e0 +e0cbdbdfcac0d4bd98c9b369c6b03ecbb42dd3bb27d7bd25e3c428e2c127ddbb29dcb82a +dbb72dd9b42fd2af2cc6a52cba992eb3923db49556bb9c68c2a479c9ad8ad1b69ddabeb0 +e1c8c3e5ccd1e2cbd9e0ccdfddcbe2d9c9e2d5c7e1d0c5e1cfc4e1d3c8e2d6cbe4d8cde5 +d9cde5d9d0e8d5d0e8d0cbe5cfc5e1f3d3e4a14353a22020b72323c62625cd2826c82625 +c72625b322229d2520e0adc2e2d2e7d1cae4d0c5e1d0c5e1d2c5e1d3c6e1d5c7e2d6c7e2 +d9c8e2dac9e2d9c7e1d7c4dedbc7dee1ccdfe8d1dfe9d1dce2c9d1d6bec1cbb2b1c0a79d +b99f87b69b75b09559ad913eb09230b7992fbfa12ec9a82bcfad2ad5b12ad8b42fdab838 +daba3dd6b839cfb434cab22fc4b02fc3b042cab975d2c3a3dbcec4dccfddd8cbe4d3c5e1 +d0c3e0d2c4e0d5c9e3d6c7e2d7c9e2d8c8e1d6c7e2d6c7e2d5c9e3d2c9e3d1c8e3d1c8e3 +d3c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d5c7e2d5c7e2d4c6e1d3c9e3d1c9e4d0cbe5cfcae5cfcae5d0cbe5d1cae4d3cae4d4c7e2 +d5c6e1d5c6e1d5c6e1d5c7e2d5c7e2d4c6e1d3c6e1cec2dfd2c7e2cfc9e4d0cbe5d0c9e3 +d6c7e1e3c8e0edb9d1d7879ca1242eb12223bf2424c62625cb2726cc2726c92725c42625 +bc2424b62423a820219d1d1f9b1d1fa01f20a82121ad2422b42423bd2424c12424c62625 +c92725c12424b52223b32323b12e2d931b1eeaa3b0e9c4dadacae3d4c9e3d3c8e2d4c9e3 +d4c9e3d5cae4d4c9e3d1c6e1d3c8e2d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d6cae3d6cae3d5c9e3d4c7e2d3c7e2d3c8e3d3cae4 +d3cae4d1cbe4d0c9e3d0c7e2cfc4e1d0c3e0d2c4e0d3c6e1d5c8e2d6cae3d9cadbdac6c3 +dbc3acd0bb88c5b05ec1ae34c7b42dd4c027d9c624d6c225d7bf24dabf26d9bc2cd0b22f +c5a42fb89630b29031b7953ebe9e5cbb9d79c2a796d1b8afe0c7c3ebd2d3eed5dee9d2e0 +e0cbe1dbc7e0d9c7e1d9c8e2d6c9e3d5c7e2d2c7e2cfc6e1cbc4e1cdc5e1cfc6e1d3c7e2 +d4c7e1d4cae4d0cbe5cfcae4cfc5e1f3d4e5a44757a62221b72423c52625ce2826c82625 +c72625b121229a211fdda9bee0d0e6d4cce5d6cbe4d6cae4d6c9e3d6c9e3d5c7e2d4c5e1 +d4c5e0d4c3dfd7c6e0dbc9e2d8c6e1d7c3dfd8c3dedac4dfdcc6e0e1c9e1e4cde3e6d1e4 +e6d1d9d9c5bfc2ac9caf9878a58a5aa48846a98c3bb09137ba9936c9a93cc9a932c8a92d +cdae2bd1b329d4b929d3ba28cfb828c9b32dc1ad44c5b573d1c09bdac9bddeccd7dacbe4 +d6c7e2d4c5e1d3c4e0d6c9e3d6cae3d6cae2d6cbe3d5cae3d4c9e3d3c8e3d2c7e2d2c7e2 +d3c8e2d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d3cae4d2c9e4d1c9e4d0cae4d0cbe5d0cbe5d0cae4d2c9e4d4c9e3d5c8e2d6c7e1 +d6c6e1d7c5e0d7c6e0d7c6e0d6c6e1d4c6e1d4c5e1cfc0ded6cbe4cfcae5ccc9e4cbc6e3 +d4c9e3e5cce2f1c1d8e596aca4212eb62223c42325cd2826d12826cf2826c92825c12624 +b42523a32020961b1d951b1d9d1d1fa61f20ad2422af2322b12322bb2724bc2324c12424 +c52725bf2424b32122ad2322a4262c9a3741f5c3d1e4c8e0d6c7e2d3c8e2d3c8e2d4c9e3 +d5cae4d5cae4d3c8e2d1c6e1d3c8e2d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d6cae2d6cae2d5c9e3d4c7e2d3c7e2d3c8e3d3cae4 +d3cae4d3cae4d2c9e3cfc4e1cfc1ded0c1ded2c2dfd4c6e1d8c9e3dbccdcdfcec1d5c08d +c6af5ebfa93ec3ae30cbb82ad0bd28cfbc28d0be28d7c425cdb929c8b32cc1a92eb59c2f +ad9034aa8c48b49567c3a78bd1b7ace8d1d3ead5e2e3cfe1dbc8ddd4c1d9cfbdd9d1bfdc +d8c7e1ddcee5d0c2dfccbfddd0c5e1d4cbe4d6cee6d8d0e7d6d0e8d4cde6d3cce6d5cbe4 +d6cbe4d4cbe5d1cce6d0cbe5d3cae4f5d7e7a44857a32020b52323c62625ce2826c82625 +c62625af2022971f1edba7bbddcce4d0c9e3d1c6e2d3c6e1d3c6e1d2c5e1d2c4e0d3c3df +d1c2ded1c1ded2c1ded2c2dfd4c5e0d8c7e1d8c5e0d5c3dfd3c0ddd0bddbd0bcdbd3c1de +d6c8dddccfe0e6d8e7e7d7e4dccad2cbb5b6b49a909e826397783fa78934b09430bda02e +c7aa2cccb12bd1b628d5b727d5b927d1b828c5b02ec2af44c5b167ceb98ddac6b6e0ccd6 +dfcce3d8c7e1d2c2dfd5c9e3d5cae3d4cde1d5cde0d4cbe1d4cae3d3c8e2d1c6e1d1c6e1 +d3c8e2d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d3c9e3 +d2cae4d0cbe5cecce6d0cbe5d0cbe5d0cae4d1c9e4d2c9e3d3c7e2d5c7e2d6c6e1d7c6e0 +d7c5e0d7c5e0d7c5e0d7c5e0d7c5e0d6c5e0d5c6e1d7c9e3dcd0e7cbc5e2c3c1e0cac6e2 +d7cce5e5cae1e7b1ccd27b91a7212cbc2124cb2626d32a26d42a26cf2826c72725b92423 +aa222190191b891719941b1da41f20b02322b42523b32323b22323bb2824bc2424bd2324 +c22425c22325b62323a82026951d2cb96e7df4c9dae1c8e1d4c6e1d3c8e2d3c8e2d4c9e3 +d5cae4d4c9e3d4c9e3d2c7e2d3c8e2d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d6cbe3d6cae2d5c9e3d3c7e2d3c8e2d3c8e3d3cae4 +d3cae4d3cae4d3c9e3d1c6e1d1c1ded1c2ded5c4e0d8c7e1dcc9ddd9c8bed8c699c1a946 +c5ad2fcab42cd2bc29d4bf29d0bd28cbb82ac7b32cc6b22dbda82fae9930a48e30a89041 +b9a374d1baa5e4cbc7e2cbd5d5c3d5d2c1dbd4c4dfd6cae3dacee5ddcfe6dbcee6d7cbe4 +d3c8e2d0c5e1d7cde6d7cee6d2cbe5cdc6e2c8c3e0c7c3e1c7c6e2cac8e3cfcae4d4cae3 +d5cae3d3cae4d0cbe5d0cbe5d3cae4f6d9e8a34656a01f20b52323c82625ce2826c62625 +c52725b0212298201edca8bdddcce4d2cae4d7cce5d8cde5d8cde5d9cee6d9cce4d9cde5 +d9cce4d9cce4d6cae3d4c6e1d5c8e2d5c7e2d4c5e1d2c2dfd3c3dfd6c7e1ddcde5dccfe6 +d4c9e3d4cbe3d4c9e3d5c9e3d5c7e2d6c6e1d7c7dcd8c5cecebaada38c61a68b3fa88f30 +b2962fbea22ec7a92cccae2aceae2acdaf2bd3bb2ac8b22ec3ac39c4ac59cdb582d8c0ad +dcc7cedccae2d9c9e3d5c9e3d3cae4d3cce2d3cee0d4cce1d3cce4d3c8e2d3c5e1d3c5e1 +d3c8e2d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d3cae4 +d0cbe5cdcde6cbcce6cecce6d0cbe5d1c9e4d3c9e3d3c7e2d5c7e2d5c6e1d5c5e0d6c5e0 +d6c5e0d6c5e0d6c5e0d6c5e0d6c5e0d6c5e0d5c5e0d4c6e1d8cce4cbc2e0d1c8e3e0d2e7 +e4cee4d8acc8bc758d9d2a41b02129c12324cd2726d42a26cf2826c62625ba2423aa2021 +9d1e1f8416178c181a9f1e1fb02322ba2523bd2424bc2324bb2424bf2724c12624be2424 +c12424c12424b72326a52031992e48dea3bae4c3dadac6e0d4c6e1d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d6cae2d6cae3d5c7e2d3c7e2d3c8e2d3c8e3d3cae4 +d3cae4d3cae4d3c8e2d2c5e1d2c3dfd5c4e0d9c6e0d9c5dfd6c1bfcab993c4b362bda52e +d0b629dbc02dd8bf29cfb729cab32bc8b22cc1aa2eaf9730a78d36b39a5fc2ab8cd2bcb0 +dbc6c8dac8d6dbcbdfddcfe4e0d2e8dbd0e7d7cce5d5cbe4d4c9e3d4cae4d4cae4d4cbe4 +d3cbe5d3cbe5d1c9e4d0c9e4d1cbe5d2cde6d4d1e8d4d2e6d4d2e5d1cfe3d0cde1d0c8e0 +d1c6e0d0c7e1cec8e3cfc8e3d2c9e3f5d8e7a44857a32020b82323c82625cd2826c62625 +c52725b322239d2520dfacc0dfcfe5d0c9e4d2c9e3d3c8e1d3c8e2d3c8e2d2c7e1d2c7e1 +d2c6e1d1c6e1d1c6e1d2c7e1d4c7e1d6cbe3d7cae4d5cae3d3c9e3d2c7e2d1c6e1d2c9e3 +d4cbe5d2cbe5d0c9e3d0c7e2d0c7e3d1c8e3d5cbe4d8cce0daced5d7c4bec4b197ad945f +9e82319f822dac8b2ebd9c2ecaa92bd3b229d0b629cbb32bc6ae2cc4ac33c5ac55cbb27e +d4bda9dbc6cfddcce3d5c9e3d3cae4d1cce4d1cee3d2cce2d3cce4d4c9e3d3c5e1d3c5e0 +d4c7e2d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d3cae4 +d0cbe5cdcde6cbcde7cecce6d0c9e4d3c9e3d3c7e2d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d3c5e1cebfddd4c6e1d3c3dfe2cce3e6c8df +d8a7bfba7184a23845961b1dbc2424c62425cc2726cc2726c52625b72323a71e21951b1d +8b17198b17199b1d1fae2122bb2424c22425c62625c62625c62625c42425c62625c62625 +c12424bd2224b3212ca42540b45879f0bed7dfc1dcd9c6e0d5c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d5cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d6cae3d6c9e2d5c7e2d3c7e2d3c8e2d2c9e3d3cae4 +d3cae4d4cae3d2c5e1d2c4e0d4c3dfd8c6e1dbc6e0d9c3cccdb99dbdac63b3a131cdb42a +d0b229d0b329d0b329cdb22ac5aa2dbb9e30af9238a98b4ebfa284cbb3a9d9c3cae0cde0 +decde3d6c9e3cfc4e1d1c7e2d6cee6d4cbe5d1cae4d0c7e3d0c7e3d0c9e4d2cbe5d3cce5 +d1cae4cfc7e2d1cae4d1cae4d0cbe4cfcbe3d0cce2d1cee2d3d0e2d3d1e2d5d0e2d5cce2 +d5c9e2d4cae4d0cbe5cfcae4d1c7e2f5d7e7a44857a62121ba2423c82625cd2826c52625 +c62625b52423a22b24e3b0c4e1d1e7d1c9e4d3c8e2d4c9e3d4c7e2d5cae3d5cae3d6cbe3 +d6cbe3d6cbe4d5cce4d5cce4d3cae3d0c7dfd0c8dfd3cbe0d4cee1d4cee1d3cce1d1cae3 +d1c7e2d0c6e2d0c9e3d0cae4d1cae4d1cbe5d2cde5d3cee5d5cde1d7cbd9dbcbcdd4c0b1 +c2ab89b0935ca48433a9872db6932ec1a12dc5a82cc8ae2ccab12bc8af2cc4ac32c4ac55 +cbb484d9c4b8e0ceddd6cae3d3cae4d1cae4d0cce4d0cce4d2cae3d4c9e3d4c6e1d3c6e1 +d4c7e2d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d3cae4 +d0cbe5cdcde6cbcde7d0cbe5d2c9e4d3c7e2d5c7e2d4c6e1d4c6e1d4c6e1d3c7e2d1c8e3 +d0c9e3d0c9e3d0c9e3d1c9e4d2c9e4d3cae4d3c8e2d3c5e0dbc9e2dcc2dde7bfd9dda4bc +bc6a7e9f2e37a32021b92824c52625c82725c82725c22525b52323a72021941a1d7f1415 +791212931a1ca71e21b52323bd2324c22425c62625cb2726cb2726c52625c82625cb2726 +be2324b12123a61f319f2e4ec67b9df2cadfe0c5ded9c7e1d6cae3d5cae4d4c9e3d4c9e3 +d3c8e2d3c8e2d4c9e3d5cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d6c9e3d5c8e2d4c7e2d3c7e2d2c9e3d1c9e4d2cae4 +d3cae4d4cae3d6cae4d3c4e0d4c2deddc8e1dcc7d5ceb8a6bfaa6ebdac42bdac2fcfb529 +d4b728ceaf2ac5a62dbe9d2fb6963fb29052b69673caaea4d6bbc2d7c3d6dac7e0dacae3 +d6cae4d2c9e3cec6e2cdc8e3d0c9e4d0c9e4d1c8e3d1c7e2d1c8e3d1c8e3d2c9e4d2c9e4 +d1c8e3d1c7e2d2c9e4d2c9e4d2c9e4d1c9e3d1cae3d2cbe3d3cce4d4cde4d5cde4d7cce4 +d6cbe3d4cbe4d0cbe5d0cbe5d3cae4f5d8e7a54859a42221b92423c82625cc2726c82625 +c12424b524239a221fe0adc2e0d0e6d0c8e3d2c7e2d4c7e2d4c7e2d4c7e2d4c9e3d5cae3 +d5cae3d4cae4d4cbe4d4cbe4d3cbe4d1cae3d0cbe2d2cbe1d2cde2d3cee2d3cee3d3cae4 +d3c6e1d3c7e2d4c9e3d2cae4d1cae4d0cde6d0cde6d0cde5d0cce4d2cce2d6cbdddfd0d8 +e2cfcad4bdacbda180aa8a59a4833cad8d30ba9b2ec7ab2ccab02bcbb22bc8af2cc5ad34 +c3aa58c3ad87e7d4cfdacce3d7cce5cdc6e2cec9e4d2cde6d2c9e4d0c5e0d6c9e3d3c3df +d5c7e2d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d3cae4 +d0cbe5cdcbe6cdcbe6d0cae4d4c9e3d5c7e2d5c6e1d5c6e1d4c6e1d3c8e2d0c9e4cfcce6 +cdcce6cacae5cacae5cccce6d0cee7d2cde6d4c9e3d3c3dfecd3e6eabed8d694adc06475 +ad3339a72021b52423cb2b26c82725c42625b92423ae2022a31f21931b1e7d121b6c0d18 +730f179d1e20ac1f21b32123b92223c02325c52425c82425cc2726cb2626cd2826c32525 +b02022a7212bac3d56c06f8de4adcdeecfe3dcc4ded7c6e1d5c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d6c9e3d5c8e2d4c7e2d3c8e2d2c9e3d2c9e4d2cae4 +d3cae4d4cae3d7cbe4d6c6e1d6c5e0dfc8d8d8c1b7c4ad7eb9a447c0af30c7b52ccbb22b +d2b529c8a82cb8962eb28e3eb89369c09e90cfb0b6e1c8dcddc7dfdac7e0d6c7e2d5c9e3 +d2c9e4d0c9e4cec9e4cdc9e4cec9e4d0c9e4d2c9e3d2c9e3d2c9e3d2c9e3d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e3d4c9e3d4c7e2d4c9e3d4c9e3d4c9e3d4c9e3d5cae3d7cae4 +d6cae3d3cae4d0cbe5cfcae4d3cae4f5d8e7a34758a22020b82323c62625cd2826c92725 +c02424b42423961f1edeabbfdfcfe5d0c8e3d2c7e2d4c6e1d4c6e1d4c6e1d2c7e2d3c8e2 +d3c8e3d3cae4d3cae4d3cae4d3cae4d2cbe4d1cbe4d1cce4d0cce4d0cce4d2cbe4d4c9e3 +d6c7e1d6c7e1d5c8e2d4c9e3d1cae4d0cbe5cfcbe5cecde7d0cde6d1cee6d1cae3d6cde0 +dfd2e0e1cfd5d6c0bec1a8a1ae927ea18450a6882ebb9f2fc4a92dcab02bc9af2cc8ae2c +c4ab38bca35fd7c2aadacbd7dbd0e7cdc5e1cdc6e2d3cce6d3cbe5d0c5e0d7cbe4d4c5e1 +d5c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d3cae4 +d1cae4cfcbe5cfcae5d2c9e4d5c7e2d6c6e1d5c5e0d5c6e1d4c6e1d0c8e3cbc9e4cacce7 +c8cee8c6cce7c7cde7cacee7cecee7d0cbe4d4c7e1d9c5e0efcce0e1a3bbbd6072ad2e34 +b32323c22625cc2826ce2926c72725be2724aa21219d201fa03138a74c62a253718a4064 +7c1a41a42030ae2124af2123b32225b82326bc2225bf2224c52425c82426c02425b42123 +ae2831b64d5dc97d92dea9c5e6c2dce0c8e0d6c3ded5c6e1d4c7e2d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5c8e2d4c7e2d4c7e2d3c8e3d2c9e4d2c9e4d2cae4 +d3cae4d4c9e3d6cae4d8c9e2dbcad7d9c4bccab48ebda759baa630c3b12eccb92ac9b12c +c7ab2cbc9b2eb18e3cb58f66c4a09cd9b9cae1c7e0decae2dac8e1d7cae3d5cbe0d4cce1 +d0cee5d0cbe5cec9e4cdc8e3cec7e3d0c7e2d3c8e2d3c7e2d3c7e2d3c7e2d3c7e2d4c6e1 +d4c6e1d4c6e1d4c6e1d4c7e2d4c6e1d5c7e2d5c7e2d5c7e2d5c7e2d5c7e2d5c8e2d6c9e3 +d6c9e2d2c9e3cfcae4cfc8e3d0c7e2f4d5e6a24454a02020b72323c82625cd2826cb2726 +c02424b52423971f1edfacbfe0d0e6d0c9e3d2c7e2d3c6e1d3c6e1d3c6e1d2c7e2d3c8e2 +d2c9e3d2c9e4d3cae4d3cae4d3cae4d1cae4d1cae4d0cae4d0cae4d0cae4d2c9e4d4c9e3 +d7c6e0d9c6e0d6c6e1d5c7e2d2c9e3d0c9e3d0cae4cecce6cecde7d0cfe7d4d1e7d2cde0 +cfc7d9d6cbdddfd0e2dac8dbc4b0bdac9388967934a78d30b5992fc5aa2dc7ac2cc8ad2c +c9af2ec3a84abfa675d3c0beddd0e6d1c8e3cec8e3d3cce5d4cce5d2c7e2d7cbe4d7c9e2 +d5c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d2cae4d0cbe5d0cbe5d4c9e3d5c6e1d7c6e0d6c5e0d5c6e1d3c7e2cfc9e4c9cae5c4cce7 +c3cee8c6d1eacad1e9cbcee6cfcbe3d4c9e1dbc8dfe4c5dadba5b9c16c7dac3138ae2022 +c22425d62b26d92d26cf2826c42725b227239b201f98302cb46773d599b1dca9cbbf8bb6 +a15685ae3a56b32e41ab2837a62431a4212da7202aab1f27b52229bc232eb5272eb73544 +c35d6fd48e9fe4b6c9e4c7ded8c5e0d0c0ddd1c2dfd3c6e1d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d3c8e3d4c6e1d4c7e2d4c7e2d4c9e3d3cae4d2cae4d2cae4 +d3cae4d4c9e3d5c7e1dbccdce0cec9cfba9bbda962b9a436beab2fc6b12dceb928c8b22c +ba9f2fb29233b79560c2a095d3b3c7e1c7e0e2cee4d5c4dfd6cae2d6ccdad6d0d3d3d1d3 +d1d0dad0cee4cfcae4cec7e3cfc6e1d2c7e2d4c7e2d5c7e2d5c7e2d5c7e2d4c7e2d5c7e2 +d4c6e1d4c6e1d4c6e1d4c6e1d5c7e2d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d5c6e1d6c7e2 +d5c9e2d2c9e3cfcae4cec8e3d0c6e2f3d5e6a142529f1e1fb72323c82625ce2826cb2726 +c12424b6252397201edfacc0e0d0e6d0c9e4d2c9e3d3c8e2d3c8e2d4c7e2d4c7e2d4c9e3 +d3cae4d3cae4d3cae4d3cae4d2c9e3d0c9e3d0c9e3d0c8e3d0c8e3d0c8e3d2c7e2d4c6e1 +d7c5e0d9c5e0d7c5e0d5c6e1d2c6e1d1c7e2d0c8e3cfcae4cecbe5cbcbe3d4d5e8d6d4e5 +ceccdfd1cbe1d9d0e7dccfe6d5c6e0c5b4c19e87699f8533a0872fbca12fc6a92dc9ac2c +cdb02ac9ad36b79c4dc6b29ddccddad4cbe4cec6e2d1cae4d4cce5d4c9e3d6c9e2d9cce4 +d5c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d2c9e4d0cbe5d2cae4d5c8e2d6c6e1d7c5e0d7c6e0d5c6e1d3c8e3cecae5cacee8c5cfe8 +c5d1eac9d3eacdd1e7d1cde4d7cae2e1cae1ecc8dbe3b2c3b86975a22f34aa2121bd2324 +cd2826d62a26d62b26cd2926bc2824a0222092271ea65c62cd9baeecc8deecd0e3dcbcd9 +d6a3cacc7492c76178b44f65a24054993249992a44a02a46b0324fbe415bcb5c74d97d91 +e3a3b4e7bfcde1cdddd7cfe5d0cee7cfc9e4ccc3e0d1c6e2d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d3c8e3d4c6e1d4c7e2d5c9e3d4c9e3d3cae4d2cae4d2c9e4 +d2c9e3d3c8e2d5c8e2decfd9dccbb7c4b179b5a041bba52fc7b02dcab02cccb32ac1a92e +a99030b0924dc7a98bdcbfbfddc5dddbc6e0d7c6e1cec0ded3cbe1d4cfdad4d1d3d3d1d3 +d1d0dad1cee3d0cae4cfc6e2d1c6e1d4c6e1d6c9e3d5c8e2d5c8e2d5c8e2d5c8e2d5c8e2 +d6c7e1d6c7e1d5c6e1d5c6e1d5c6e1d5c6e1d5c6e1d6c6e1d5c6e1d6c6e1d5c6e1d6c9e3 +d6cae3d3cae4d0cae4cec8e3d0c7e2f4d5e5a143539f1e1fb72323c82625cf2926cc2726 +c12424b7252397201ee0adc2e1d1e6d1cae4d3cae4d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d3cae4d3cae4d3cae4d3cae4d3cae4d2c9e3d2c9e3d2c7e2d2c7e2d1c7e2d1c6e2d4c6e1 +d6c5e0d8c4dfd7c4dfd5c4e0d4c5e1d3c5e1d2c9e3d0c9e3d0cae4cecce4cfcfe6d5d2e8 +d6d3e9d2cde6cdc6e2cec6e2d6cce5ded1e6bfafabaf996c967d2dad902fc3a52dc8a92c +caab2bcdb02cc4a942bba575d6c5c0d5cae2cfc5e1cfc6e2d3cae4d4c9e3d3c7e0d8cbe3 +d5cae3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d2c9e4d1cae4d3cae4d5c8e2d7c5e0d7c5e0d7c6e0d5c6e1d3c8e3cecae5cbcfe8cad4eb +c8d2eac9cfe5d0cce3dacbe2e4c9deeac4d9eab4c6c075829c292a9b1e1fb82323cc2826 +d32a26d12826cc2726c12624a01f20992a21a35b5ec495a5dfc1d8e6cfe4dac7e1d8c3de +eed1e4f6bdd6f2adc2df9cb1cc8ea4c3839cc27c98c97d9ad885a3e592acf4afc7f7c1d4 +f2ccdde0cdddcfc9dcc8cae2ccd0e8d2cfe7cec8e3d1c8e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d3c8e3d4c6e1d4c7e2d5cae3d4cbe4d3cae4d2cae4d1c8e3 +d1c7e2d2c7e2d6c9e3e1d1d5d3c19ebba85ab5a130c2ac2ecdb529caaf2bc4a72dac9034 +a58b4fbca380dac2b1e8d2cfe2cfddd9c9e0d6cbe4d0c9e2d1cce3d0cee4d2cde2d2cde2 +d2cce3d3cce4d4c9e3d4c7e2d5c7e2d6c9e3d6cae3d6c9e2d6c9e2d6cae3d6cae3d6cae3 +d6c9e2d6c9e2d6c9e2d6c9e2d6c9e2d6c9e3d6c9e3d6c7e2d6c9e3d6c7e1d6c7e2d6cae3 +d7cae4d4cae4d0cbe5cfcae4d2c9e3f5d7e7a34555a02020b72323c82625cf2926cc2726 +c12424b7252397201ee0adc2e2d2e7d1cbe5d2cbe4d3cce3d3cce3d3cce3d4cbe3d4cbe3 +d4cbe3d4cbe3d4cbe3d4cbe4d4cae3d4c9e3d4c9e3d3c8e2d3c8e2d2c7e2d3c6e1d3c5e1 +d3c4e0d4c3dfd5c5e0d5c7e2d6c9e3d5cae3d4c9e3d4cae3d5cce5dbd4eacac3e0c5bede +d0c9e4d7d0e7d2cde6cec8e3d0cbe4d8d3e7d7cedad1c1b5a38c5a9e812db8962ec8a52c +c9a72cd0b02acfb235b79e51cdbb9ed8cbd3d1c8e2cfc6e2d2c9e4d4cae4d3c7e1d7cbe3 +d5c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d2c9e4d0cae4d1cae4d5c8e2d7c5e0d7c5e0d7c6e0d5c6e1d3c8e3cfcae5cacde7c9cfe8 +c8cbe3cec8dfdecbe1eecce0eebdd4dd9cb3c56f83981f239e1d1fb12122c22625c82725 +cd2926cd2926bf26249d1d1f7e1415b16672d2a7b9dfc5dbdccce4d6cae3d4c5e1d3c1de +dac3def0d0e3f1cbe0efcbdfeecce1eecce1eec8deeec5dceec3dbf0c8def5d3e4e6cbe0 +d7c6dcd2cbe0d2d2e7cdcfe8c5c8e4c9c6e2d5cee6d3cae4d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d3c8e3d4c6e1d5c7e2d5cae3d4cbe1d3cce3d2cae4d1c8e3 +d1c6e2d1c5e1d6c7e2e2d1d2c3b284b2a040baa62fc8b32ccfb429cdac2abd9b2ea68848 +bba488d8c3b4e2cfcaddcdd2d5c8d7d6cce2d8d1e8cfc9e4d0cbe5d0cbe5d0cae4d2cae4 +d4c9e3d5c9e3d6c7e1d7c7e1d7c7e1d6c9e3d5cae3d6c9e3d6c9e3d5cae3d5cae3d5cae3 +d5cae3d5cae3d5cae3d5cae3d5cae3d5cae3d5cae3d5cae3d5c9e3d5c9e3d5cae3d7cae4 +d7cae4d4cae4d0cbe5d0cbe5d3cae4f6d9e8a54859a42120b92323c82625ce2826cb2726 +c12424b6252397201edfacc0e1d1e7d0cbe5d2cae4d3cae4d3cce4d3cce4d4cbe4d4cbe3 +d4cbe3d4cbe3d4cbe3d4cbe4d4cbe4d4cae3d5c9e3d5c9e3d5c7e2d4c6e1d4c6e1d4c6e1 +d3c6e1d3c6e1d4c7e2d5c8e2d6c9e2d5cae3d5cae3d5cae3d6cbe4d9cee6d1c5e1cabfdd +ccc2dfd3cae4d7d0e7d5d0e8d0cee5cdcae2d0cee6e7dde7c1ad9b9c7e3da8862dc29c2d +cda72acfad29caac2bbaa239c4b27bd7cbc1d7cfe4d2cae4d2c9e4d6cbe4d6c9e3d7cae4 +d5c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d2c9e4d0cae4d0cae4d5c8e2d6c6e1d7c5e0d7c6e0d5c6e1d3c8e3d0cbe5cbcde7cacde5 +cecae3dacbe2efcde0f3c1d7e49cb6bc5c7a9f2235ae2222b52123c02624c72725c52725 +bc2324b02122a31f20921b24ac5f76d3a3bde3c9e1d8cbe4d0c7e2d2c9e4d8cde6d6c9e3 +d2c0ddcfc3dcd0c0dad5c1dcdbc6e0ddc7e0dcc5dfd9c4dfd5c4dfd6c6e1d2c7e2cfc7e2 +cfc8e2d0cce4d3cee6d3cde6d0c7e3d0c6e2d3c8e3d3c8e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d3c8e3d4c6e1d5c9e3d5cae1d4ccded4cce1d2cbe4d1c7e2 +d1c5e1d1c4e0d5c6e1e2d1d1b6a56eab9a32bdaa2fcab32bc9ab2cceaa2ab9962fb29a65 +cdbca8e2d2cde2d2d7d4c8dacec5dfd0c9e3d0cae4cbc6e2cdc8e4cec9e4d0c9e4d1c8e3 +d3c7e2d5c6e1d6c5e0d7c5e0d7c5e0d5c7e2d3c7e2d3c7e2d3c7e2d3c8e2d4c7e2d4c7e2 +d4c7e2d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5c9e3 +d5c9e2d3cae4d0cbe5d0cbe5d3cae4f6dae9a64b5ba62121ba2423c82625cd2826cb2726 +c02424b52423971f1edeabbfe0d0e6d0c9e4d1c8e3d2c7e2d2c9e3d2c9e4d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d5cae3d5cae3d5cae3d6c9e3d6c9e3d6c9e3d5c8e2d5c8e2d4c9e3 +d2cae4d1cae4d2cae4d4c9e3d5c9e3d5c9e3d5c7e2d5c7e2d4c6e1d3c3dfd6c9e3d6cae4 +d3c6e1d1c6e1d3cae4d4cde6d2cbe5cccae4c7c8e4ddd9ecd7c5c5aa8d6aa7822dbd952d +d1a729d3ad29c7a72cbea62fb9a65ad2c6afdcd2ded4cbe4d0c6e2d5cae3d6c9e3d6c9e3 +d5c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d2c9e4d0cbe5d0cbe5d5c7e2d5c6e1d6c5e0d6c5e0d5c6e1d3c8e3d0cbe5cfcee7d0cee5 +dbcee4e5cae1e9b8d1da93aec26283ab3151a71f26ce2b2ac62625c22425c72725c02624 +ab20219a1d1f9c2b3faf5c79dcabccdbbfdbd4c6e1cec6e2cdc8e3d0cae4d4cae4d6cae3 +dbd0e7d4d3e9d0d0e7d3cae4d6c7e1d7c6e0d6c5e0d3c5e1cfcae4cfcfe8c2c8e4cdd0e9 +d6d1e8d6cbe4d3c2dfd6c1deddc9e2dccae2d2c2dfd5c7e2d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d5c9e3d5c7e2d6c9e3d5cbe1d4ccdfd3cce2d2cae4d1c7e2 +d1c5e1d2c4e0d5c6e0e2d0ccac9c5ca69632c1ac2ecab22cc4a52dcea82aba9433bda47f +d2c2badecfd5dacedfd4c8e1d1c6e2cec5e1cac3e0cfc8e3cec8e3cfc8e3d0c9e3d1c8e3 +d3c7e2d5c6e1d5c6e1d7c5e0d6c5e0d5c7e2d3c7e2d3c8e2d3c8e2d3c8e2d3c8e2d2c9e3 +d3c8e2d2c9e3d2c9e3d2c9e3d2c9e3d3c9e3d3cae4d3cae4d3cae4d3cae4d4c9e3d4c9e2 +d5c9e2d2c9e3d0cbe5d2cbe5d6cae4f6dae8a64b5da52321b72323c52625cc2726c92725 +be2424b12322931e1dddaabce1d0e6d0c8e3d2c7e2d1c7e2d2c7e2d3c8e2d3c8e2d3c8e2 +d4c9e3d4c9e3d4c9e3d4c9e3d5cae3d5cae3d5cae3d5c9e3d5c9e3d5c9e3d5cae3d3cbe4 +d0cce4d0cce4d0cbe5d1cae4d3c8e3d3c7e2d4c6e1d4c6e1d4c6e1d4c5e1d6c9e3d6cae3 +d4c7e2d3c7e2d2c7e2d1c7e2d0c9e3cbc8e3c7c9e4cccce6ddd0dfb99e8cac873dba912c +cfa52ad7b027ccaa2ac0a92eaf9d41cec1a3ddd2ddd4cae4cdc2dfd4c9e3d6c9e3d4c5e1 +d4c9e3d3cae4d4c9e3d4c9e3d5c9e3d5c7e2d5c7e2d5c7e2d4c7e2d4c9e3d3c9e3d2c9e4 +d2c9e4d2c9e4d2c9e4d2c9e4d3cae4d4c9e3d5c7e2d5c7e2d5c7e2d5c9e3d4c9e3d4c9e3 +d3cae4d3cae4d2c9e4d2c9e4d2c9e4d3cae4d3c9e3d4c9e3d4c9e3d4c9e3d5c7e2d4c9e3 +d3cae4d2c9e4d1c9e4d2c9e4d4c9e3d5c6e1d5c8e2d3c9e3d0cae4d0cbe5d0cae4d2c9e4 +d5c7e2d5c8e2d4c9e3d4c9e3d4c9e3d5c9e3d5c7e2d5c7e2d5c7e2d4c9e3d4c9e3d3cae4 +d3cae4d2c9e4d2c9e4d2c9e4d2c9e4d2c9e4d2c9e4d3cae4d4c9e3d4c9e3d5c9e3d5c9e3 +d4c9e3d0cae4d0cae4d5c7e2d5c6e1d5c5e0d5c6e1d4c6e1d3c8e3d2cae4d0cbe4d6cde5 +e7d2e4e9c3d6d494aab65772a12741a9212fc0262cca2726d22a26c62625bc2424ad2022 +9d1e2098293aac5a77cf97bbdfc2ddd8c7e1d2c7e2d0c9e3d3cce6d3cce5d0c8e2d0c6dd +d5cfe4cbcfe6c9cde6cec9e4d3c7e2d5c6e1d4c6e1d0c5e1c9c8e4c5cce7c8d0e9c9cde7 +cdc8e4d4c5e1dbc6e0dec5dfdec5dfdac4dfd5c3dfd5c7e2d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d4c7e2d5c7e2d5c7e2d5c9e2d5cae3d4cbe3d3cae3d1c8e3d0c6e2 +d1c5e1d4c5e1d9cae0d4c6b3ac9b4fa99932beaa2fcbb22bc9a92ccea52ab79032cbb19d +d4c3ced9c9ded7c8e1d5c8e2d4c9e3d0c5e1cbc2dfd2c9e3cfc6e2d0c7e3d0c7e2d0c7e2 +d2c7e2d4c7e2d5c7e2d5c7e2d5c7e2d4c9e3d4c9e3d4c7e2d4c7e2d3c7e2d3c7e2d2c7e2 +d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d3c9e3d3c9e3d3c9e3d3c9e3d3cae4d4c9e3d4c8e0 +d5cae1d5cbe3d1c9e3d5cae4d9c9e3f6d3e4b15970a02326ae2122c52625cf2826c92725 +bc2424aa2321891a1bdcaebce2d0e5d2c8e2d4c9e3d3c8e2d3c7e2d4c7e2d3c7e2d4c7e2 +d4c9e3d3cae4d3cae3d3cae3d4c9e3d4c9e3d3cae4d2c9e4d2c9e4d2cae3d1cae3d1cae3 +d0cae4d1c9e4d1c9e4d0c8e3d2c7e2d3c7e2d4c7e2d5c7e2d5c7e2d4c9e2d4cae3d4c9e2 +d4c9e2d3c9e3d2c7e2d0c6e2cfc6e2ccc7e3cbcfe8c0c3e1d9cee5cab2abb49250b48d2d +caa02bdbb128cca92bc1ac2eb2a13bc7b89fdbcee0d7cce5d1c6e1d5c9e3d1c3dfd6c9e3 +d1c9e4d0cae4d2c9e4d4c9e3d5c7e2d6c6e1d6c5e0d5c6e1d4c6e1d3c8e3d2cae4d0cae4 +cec9e4cec9e4cec9e4cec9e4d0cae4d4c9e3d7c8e2d8c7e1d6c7e1d5c6e1d5c8e2d3c8e3 +d2cae4d0c9e3cec9e4cec8e3cfcae4d0cae4d1c8e3d2c7e2d3c6e1d6c7e2d5c7e2d4c6e1 +d0c9e4cdcde6cecde7cfcae5cfc4e0ddc9e1d3c0ddcdc6e2cbcee8cad0e9c9cee8cdcae5 +d6c9e3d8c7e1d2c4e0d1c5e1d5c7e2d6c6e1d5c4e0d6c5e0d6c6e1d6c9e3d6cbe4d3cae4 +d1cae4d0cbe5cecce6cdcbe6cecbe5cecbe5cfcae5d1c9e4d4c9e3d5c7e2d6c7e1d6c7e1 +d5c7e2d3c9e3d4c9e3d6c9e3d5c8e2d4c6e1d3c5e0d1c5e1d0c7e2d1c8e3d2c8e2e5d3e6 +e9c7d8cd96a6b55d6da42d3ca41e21b32223cd2627cb2726d12826c72625b02122991d1f +982e3eaf647ecf9bbce0bfdbd9c4dfd4c6e1d2c6e1d3c8e2d3cae4d3cae4d0c9e3cfc9e0 +d0cee4cbcbe4cacae5cfc8e3d3c8e2d5c7e2d3c6e1d0c6e2cbc8e3c9c9e5cdcfe8cbcae5 +cdc6e2d4c5e1d8c7e1dbc6e0d9c5e0d6c4dfd6c5e0d5c7e2d4c7e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d4c7e2d4c7e2d5c7e1d5c9e2d5c9e2d4c9e2d2c7e2d1c6e2d0c5e1 +d1c5e1d3c6e1dbcedaccbda2af9e49ac9b31bda92fcab12bceae2acca42ab68f30d5bcb3 +d8c6ddd8c6e1d5c4e0d5c6e1d5c8e2d3c5e1cfc3e0d3c7e2d2c6e1d1c6e2d0c7e2d0c9e3 +d0c9e3d1c9e4d1c9e3d1cae4d2cae3d3cae4d4c9e2d4c9e2d4c7e2d4c7e2d4c6e1d3c7e2 +d3c5e1d2c7e2d2c7e2d2c7e2d3c7e2d4c7e2d4c7e2d4c9e3d4c9e2d4cae3d5cae3d5c9e0 +d7cce3d6cce4d0c7e2d5c9e2dbc7e0f2cadfb566819a2837a51f21bb2324c62625be2424 +b12122a22925822228dcb3bfe4d1e3d2c9dfd4cae3d3cae4d4c9e2d4c7e2d4c7e2d4c7e2 +d3c9e3d3cae3d3cae3d2c9e3d2c9e4d1c8e3d0c9e4d0cae4cfcae5cecbe4cfcae4d0cae4 +d0c7e2d2c7e2d2c7e2d2c7e2d3c7e2d3c8e2d4c7e2d4c9e2d4c9e2d3cae4d3cbe3d3cae4 +d3c9e3d3c8e2d1c7e2d1c6e2cfc6e1cdc8e3cbcfe9c2c4e2d6cce5d2beb9ba9b56b38e2d +c9a02bdbb12fcca82bc1ac2eb2a23ac2b29fd7cae2d8cde5d4c9e3d5cae3cfbfddd9cde5 +cfcae4cdcbe4d0cae4d4c7e2d6c5e0d8c4dfd7c3dfd6c3dfd4c5e1d2c6e1cfc8e3cdcae5 +cacae5cacbe6cacae5cccbe5d0cbe5d5cbe4d5c6e1d5c4dfd5c4dfd3c4e0d4c6e1d3c8e3 +d0c9e4cec8e3cbc8e3cbc8e3cecae5cfcae5d0c9e4d2c7e2d4c6e1d5c6e1d5c6e1d3c4e0 +cdc8e4cacde7cacee7cccae5cfc2dfe4cce2d5bfdcc6c3e1c2cde7c0d0eac1cde7cac8e4 +d9c6e1dec8e0d6c5e0d4c6e1d6c9e3d5c6e1d4c4e0d5c4e0d6c5e0d5c8e2d4c9e3d0cae4 +cecae5cdcbe6cccee7cbcde7cbcbe6cbcbe5cecbe5d1c9e4d4c7e2d5c7e2d6c5e0d7c6e0 +d7c6e1d7c7e1d7c9e2d5c7e2d3c6e1d2c7e2d2c8e3d1c7e2d0c6e2d4c6e1d9c5e0e9c7db +d8a2b1ae5a649f2a2fac2524ba2524c32525cc2626cd2826cb2726b723239f1e20982a39 +ae6479cd9fb9e0c3dddfcce3d3c3dfd3c5e0d3c5e0d3c4e0d3c5e1d4c7e2d1c9e3cfcce4 +cecee4d0cae4d0c9e3d2c9e3d3c8e2d3c6e1d3c6e1d3c8e2d1c8e3d0c9e3d0c9e4d0c9e3 +d2c7e2d4c7e2d4c6e1d5c6e1d4c6e1d4c6e1d4c6e1d4c7e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d4c7e2d5c7e1d5c9e2d4c9e2d3c9e3d1c7e2d1c6e1d0c5e1 +d1c6e1d4c6e1d8cbd6d5c5aaad9c48ac9a31bea92ec9af2cccab2acaa32bbc9532d6bdb3 +dac8dfd9c9e3d4c5e0d2c3dfd3c4e0d3c5e1d3c5e0d4c9e3d3c8e2d2c7e2d2c9e3d1c9e4 +d1c9e4d1c8e3d1c9e4d1c8e3d3c9e3d3c9e3d4c9e2d4c9e2d4c7e2d4c7e2d4c7e2d4c6e1 +d3c6e1d3c6e1d3c6e1d3c6e1d4c6e1d4c6e1d4c7e2d4c9e2d5c9e2d5cae3d5cae3d5cae3 +d7cde5d3cbe5cbc6e1d1c8e3d3c4e0e9cae0af72909f445ca83442b32d2fb42925b22923 +aa2a25a644498e4753dcbbc9e2d3e6d3cae0d4cbe2d3cae3d3cae3d3c9e3d4c7e2d3c9e3 +d3c9e3d3cae3d2c9e3d2c9e3d2c9e4d0c9e4d0c9e4cfcae4cecbe5cecce5cecbe4d0cae4 +d3c8e2d4c6e1d4c7e2d4c7e2d4c7e2d4c9e3d4c9e2d4c9e2d4c9e2d4c9e2d4c9e2d4c9e3 +d4c7e2d3c6e1d2c7e2d2c6e1d0c6e2cdc6e2c7c9e4cac9e4dbd0e7d5beb7bd9f56b9962e +caa42bdab12ecea92ac1ac2eab9a36c6b5a4d5c7e0d4c9e3d1c7e1d5cae3d1c3dfd9cee6 +cbcde6cacde6cecbe5d4c7e2d6c5e0d9c3ded9c2ded7c3dfd4c5e0cec4e0cbc6e2c9cae5 +c7cbe6c7cde7cacde7cccde7d0cbe5d3cbe5d0c6e2cfc4e1cfc4e1d0c6e2d1c7e2d1cae4 +d0cbe5cec7e3cbc6e3d0cae4d1cae4d1cae4d3cae4d5cce5d6cae4d5c7e2d3c4e0d3c5e1 +d0c9e4cdcae5cbc9e4cdc6e2d4c6e1e3cbe2d8c6e1c8c6e3bdcae6becde8c3cbe6cec4e0 +ddc2dde2c6dfdbc8e1d6c9e3d4cae4d2cae4d1c9e4d2c9e4d2c9e3d1c8e3cfc7e2cec8e3 +cecae5cfcae5cfcde6cfcbe5cfcae4d0cae4d0c9e4d3c8e2d4c7e2d5c7e2d6c6e1d6c6e1 +d9c6e1dbc8e1d6c5e0d0c4e0cfc6e2cecae5cfcce6d1cae4d6c9e3dec6e0eabfd8d898ae +c06372a62b32a72021ba2424c72825c82725c92725c82625bd24249b1d1f961f25b36475 +d5a2b9e0c1dbd8c6e1d6c9e3d3c5e0d3c5e0d3c4e0d4c3dfd5c6e1d4c6e1d2c9e3cfcbe4 +cecce5d2c9e4d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d4c7e2d4c9e2d3cae3d2c9e3d2c9e3d0c7e2cfc6e1 +d1c6e1d4c6e1d6c9d7dfcfb9ac9951aa9731bea92ec9ae2cc9aa2bc9a32bc29e33d0b8a3 +dbc9d8ddcde4d6c7e1d0c2dfd0c2dfd3c5e1d3c8e2d4cbe4d2c9e3d2cbe4d2cbe3d2cbe4 +d3c9e3d3c6e1d3c5e1d3c5e0d2c4e0d3c5e1d4c6e1d4c7e2d4c7e2d4c7e2d4c6e1d4c6e1 +d3c6e1d3c6e1d3c6e1d4c6e1d4c6e1d4c7e2d4c7e2d4c9e2d4c9e2d5c9e2d3c9e3d2c9e3 +d0c9e4cbc6e3c6c5e2cdcce6cdc8e4e1d3e8b290acb27d91c27c88c97175c56361c76663 +c16967c08088aa7a8bdfc8dbddd3e8d0cae4d2c9e3d2c9e4d2c9e3d2c9e3d2c7e2d2c9e3 +d2c9e3d2c9e3d2c9e4d2c9e4d2c9e4d0c9e4d0c9e4d0c9e4cfcae4cfcae4d0cbe4d2cae3 +d5cae3d5c9e2d5c9e2d5c9e2d5c7e1d5c7e1d4c7e2d5c7e2d4c7e2d4c6e1d3c6e1d3c6e1 +d3c6e1d3c5e1d2c6e1d2c6e1d2c6e1cec6e2c6c2e0d5cde6decde3d3b9a8c3a250c19e2d +cfa829d8af28d0ac29c3ad2da59435cdbdabd7cae0d1c5e0d0c6e1d4c9e3d3c5e0d5cce5 +c9cde7c7cee8cdcbe5d4c7e2d8c5e0dac3dedbc2ddd8c2ded5c4dfd1c7e2cdcbe6c9cee8 +c7d0eac8d0e9cacfe8cbcae5cdc6e1cbc4e0d0cee7d0d0e9cfcfe8d0cfe8d1cde6d4cde6 +d4cbe4d3c6e1d2c4e0d8cae3d8c9e2d5c4dfd5c4dfd8c7e1d6c7e2d3c4e0d4c6e1dacde5 +dbcce4d9c9e3d5c6e1d3c4e0d7c6e1d8c4dfd5c7e2cccce6cbd1ead1d4ebd7d0e7d9c6e0 +e0bdd9e1bbd8d7bcdacebfddc9c7e3cbd1e9cbd2ebcad0e8cacde7cacce6cbcbe5cfcae4 +d0cae4d2c9e3d2c7e2d3c7e2d5c7e2d5c7e2d5c7e2d5c7e2d5c7e2d4c7e2d4c7e2d4c6e1 +d7c7e1dbc7e1d4c1decfc5e0d0cfe8ccd0e9c7cbe6cec7e2e0c9e1f2c9def1abc5bf526a +ac2229b52123c32525c82425c62625c22425c72725ba24249b1c1e901b1cb05764daa0b2 +efcadce1cbe2d1c4e0d4cbe5d2c6e1d2c4e0d3c3dfd5c4dfd4c5e0d5c7e2d4c7e2d0cae4 +d0cbe4d2c9e3d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d2c9e3d0c9e4d0c9e3d0c9e3d0c6e2 +d2c6e1d4c6e1d6c7d9e5d5c8a9975da59131bca52fc9ae2cc9aa2bcba72bc8a62fc3ad87 +d6c4c5e0cfe0dbcbe3d3c5e0d0c3e0d1c6e1d1c7e2d3cce5d0cbe4d1cce3d2cbe1d2cbe2 +d4cae3d4c6e1d3c4e0d2c1ded1c2ded3c4e0d3c5e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c9e2d4c9e2d3c8e2cfc6e1 +ccc5e1c8c4e1c5c5e2d0d0e9cccce6dcd8edb4a7c3bda5b7deb8bfeab8b6e2aba5ecb4ae +e5b0afdcb4bdbea3b4dbcbe3d5cde6cdc6e2d0c9e4d0c9e3d0c9e3d0c9e3d0c9e3d0c7e2 +d2c9e3d2c9e3d2c9e3d2c9e3d2c9e3d2c9e3d0c9e4d0c9e4d0c9e4d0c9e4d1c9e3d3cae4 +d5c9e2d6c9e1d6c9e1d6c9e2d6c8e1d5c7e1d5c7e1d5c7e2d5c7e2d4c6e1d4c5e1d3c4e0 +d4c5e1d3c5e1d3c6e1d4c6e1d4c7e2d1c6e1cbc2dfdbcfe6dbc3cecaac8cc3a03dc7a42c +d1ac29d6af28d0ad29c5ac30a7943fd6c6b5dbcee1d1c6e1d0c5e1d4c9e3d3c5e0d1c7e2 +c9cde7c9cde7cecae5d4c6e1d8c4dfd9c2ded9c1ddd7c3dfd4c5e1d3cce6cdcfe8c7cde7 +c3cce7c5cce7cdcae5d3cae4d9c6e1dbc6e0d6c7e1d4c6e1d4c6e1d8c5e0dcc5dfe2c7df +e6c7dfe9c6ddeac5dde8bfd9dfb2d2d8a7ccd5a5ccd7abcfd8aed1d5add1dcb8d6e6c6de +e8c7dee9c5dde8c8dfe8cbe1e3cbe2d0bfdcc7bfdebfc3e1c7cbe6cfcae4d4c1ded8b6d6 +deb0d1e6b8d5eac9dfe3cbe2d1c9e4c3cae4c0cbe5c1cae6c3cae5c6cae6cacbe6d0cde6 +d4cbe4d5c9e3d3c4e0d3c4e0d7c6e0d7c6e0d6c5e0d5c6e1d5c7e2d4c7e2d2c9e3d3c9e3 +d5c6e1d7c4dfd9c8e2d3cce5cacae5cbcde7d2cfe7dbcbe3e7c0d7e9a5bdd46b82a81e25 +b12122cf2726da2c26d32a26c52625bc2424ba2424a41e2189161bb05666e0a4b2efc7d5 +e1c9ddd2c6dfd0cae4d0cbe5d1c7e2d3c5e1d4c5e0d5c4dfd4c5e0d5c6e1d4c7e2d2c9e3 +d0cae4d2c9e3d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d1c7e2d0c9e3d0c9e4d0cae4d0cae4d0c9e4d0c7e2 +d2c7e2d4c6e1d6c6dee5d4d3b09c77a58e3eb99f31c9ad2ccdae2aceac2accac2cb79d5c +cdb9a4deccc9e0ceddd9cae3d4c6e1d1c6e1cec5e1d1cae4d0cae4d0cbe3d2cbe1d3cbe0 +d4cae3d5c7e2d4c5e0d4c1ddd3c1ded3c3dfd3c5e0d3c6e1d3c6e1d3c6e1d3c6e1d4c6e1 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d3c7e2d2c7e2 +cfc6e2cbc5e2c8c6e3cfd0e9c2c7e4cad0e99fa4baadaeb7cec8c5dacfc5dbcbbeebd7cb +e4d0cad5c4cab5a8bbcac1dccec6e2ccc5e1cfc7e2cfc8e3cfc7e2cfc8e3cfc8e3d0c9e3 +d0c9e3d0c9e3d1c8e3d2c9e3d2c9e3d2c9e3d3c9e3d3c9e3d3c9e3d3c8e2d4c7e2d5c7e2 +d4c6e1d6c5e0d6c6e1d7c7e1d7c7e1d7c8e2d6c8e1d5c7e2d4c6e1d3c4e0d3c3dfd3c5e0 +d4c5e1d4c6e1d5c7e2d5c9e2d5cae1d6c9e2d8c9e2decae2d2b6aac0a161c3a02dd0ab29 +d8b327d6b128cfad2bbba037ac9759d9c9bcdbcfe0d3c8e2d2c7e2d4c9e3d3c6e1cec4e0 +cdcae5cdcbe5d1c8e3d4c6e1d6c5e0d7c3dfd7c3dfd4c5e1d0c9e3cacbe6c5cbe6c2c9e5 +c6c9e4cfc8e3dac8e2e4c8e0ecc6ddefc2dae8b5d3e1a9cddd9cc5d48abbcd78b0c968a5 +c65a9cc44e93c4488fcc4c93c7458dbe3783ba3581b93c85b84187b54387ba4d8fc65e9d +cc68a6d073aed686b9dc9dc6dfb5d4dbcbe3cfcde7c4c9e5c7c9e5d4c6e1d3b5d6c996c3 +bd77afc97bb2e8adceefc5dce7cce2dbcde5d2cde6cccbe5cacbe6cbc9e4cdc8e4d0c9e3 +d3c9e3d5c7e2d5c6e1d5c6e1d4c6e1d4c6e1d4c6e1d5c7e2d4c6e1d4c7e2d2c9e3d2c9e3 +d3c6e1d4c5e1e0d3e8d3cae4c2b8d8d5c6e0efdbeaf3caded68ea2af4153a71f21b12122 +d22826d62a26d22a26d32a26ce2926b924239d1e1f932230b87285e9b6c7f1cedddac4d8 +cbc1d9d0cee5d2d2eac3c3e0cfc8e3d2c6e1d4c5e0d5c4e0d5c6e1d5c6e1d4c6e1d3c8e2 +d2c9e4d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d2c9e3d0c7e3cfc8e3d0cae4d0cae4d0cae4d0cae4d0c9e4 +d0c8e3d3c8e2d6c7e1e2cfd9c1aa97ac9259b19638c4a82fcaad2bd0b02accae2ab69b41 +c6af81d7bfa9dcc8c5dccbddd9cae3d4c6e1cec3e0d0c9e3cec9e4d0cae4d0cbe4d1cbe3 +d3cae3d6c7e1d6c5e0d6c3ded3c2dfd3c3dfd3c5e0d3c5e1d3c5e1d3c5e1d3c6e1d4c6e1 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c6e1d3c6e1d3c6e1 +d1c6e2cfc5e1cdc6e2d2cfe7c3c5e2cacfe79ca4b2a5afb1bfc6bec9d1c2ced3c0d8daca +d4d2c8c3bfc4a8a4b6c7c0dcd3cae4d1c8e3cec7e2cec7e3cec8e3cec8e3cfc8e3cfc8e3 +d0c7e3d0c7e3d0c7e2d1c7e2d2c7e2d3c8e2d4c9e2d4c9e2d4c7e1d5c7e2d5c7e2d4c6e1 +d4c5e1d4c5e1d4c6e1d4c6e1d5c6e1d5c6e1d5c6e1d4c6e1d4c6e1d4c5e1d4c6e1d4c6e1 +d4c6e1d5c7e2d5c7e1d5c9e2d6c9e0d8c8e0e1cbe2dcbec4cbaa7fc29e42c9a72bd6b328 +dbb726d5b128caab2dae913eb9a079d7c5bfd8cbddd3c8e2d2c7e2d3c8e3d2c7e2cfc4e0 +d1c6e2d1c7e2d3c7e2d4c5e1d4c5e1d4c5e1d3c6e1d0c7e2cecbe5c8c9e5cbcbe6d4cde6 +ddcfe6e5cce2e6bfd9e2aacdda8fbdd47bb0bd5794b84989b74184b7377eb92f7ac02d79 +c62f7acb2d7ad02d7ad5307fd42d7bd02c78cf2b78cf317dcd327dc62d79c6307cc93782 +c3317cbc2c78b8377fb74f8ebb76aaddc8e1d5d5ebd0d5ebd0cfe8dbcbe4e1bfdbd49cc6 +b764a1a64084be5496d075afd794c1dfb2d2e4c6dee4cee4e1cee4dfcce4d9c9e3d6c5e0 +d4c5e1d4c6e1d4c6e1d4c7e2d3c8e2d3c9e3d3c9e3d3c9e3d3c8e2d3c6e1d4c6e1d4c6e1 +d3c6e1d4c7e2d4c7e2d4c6e1d8c7e1e4cae1e6bdd3d392a6b35161a01f23b12022bf2424 +d62b26d32a26c62625c02424b72323a61f209a2324b86e82e1b6cfedcee1dec8ded2c8df +cfcfe6ced1e9cacee8cbcbe6d0c9e4d3c7e2d5c6e1d5c4e0d6c5e0d5c6e1d4c6e1d3c8e2 +d2c9e3d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d1c7e2d0c7e3cfc8e3d0c9e4cfcae4cfcce4d0cbe4d0cae4 +d1c8e3d3c8e2d6c5e0dcc9dcd5c0bbb49875ad8f40bb9e30c6a92dceb12acdb02ac0a432 +c6aa5eccb180d4baa2ddc6c6dfcce3d8c9e2cfc2dfcfc6e2cec7e2cec7e2cfc9e4d0c9e4 +d1c9e3d4cae3d5c7e1d6c6e1d5c6e1d4c5e1d3c5e0d3c5e1d3c5e1d3c5e1d3c6e1d4c7e2 +d4c7e2d4c9e3d4c9e3d4c9e3d4c7e2d4c7e2d4c7e2d4c7e2d4c6e1d4c6e1d4c6e1d4c5e1 +d5c6e1d4c5e0d4c5e1d9cde5cec6e1d7d3e7a8abb2acb4b0bdc8bcc9d6c3cedcc6cfdbc9 +cdd5cbbec0c3a8a5b7cdc3ded9cde5d4c9e3cfc6e2cfc8e3cfc8e3cfc9e4d0c9e4d0c9e4 +cfc8e3d0c7e3d0c7e2d1c6e2d1c7e2d3c9e3d5c9e2d5c9e2d5c7e1d6c6e1d5c5e0d4c6e1 +d5c7e2d4c6e1d4c6e1d4c5e1d3c4e0d3c3dfd3c3dfd4c5e1d3c5e1d5c7e2d4c9e2d5cae3 +d5cae3d5cae3d4c9e2d4c7e2d5c7e2dac6e0dfc3ced3b196c6a556c7a52dd3b029dab726 +d8b627cead2ac3a430ae8f59ccb4a7d7c6c9d7ccded4c9e3d1c6e2d1c6e2d3c7e2d3c5e0 +d4c5e0d5c4dfd5c6e1d4c6e1d3c7e2d0c7e2cec9e4cdcae5cdcbe5d3cde6d6c9e3d9c1dd +dcb6d5dda6cbda8fbdd070a9c34c8db9327abe307ac02e78c22c76c42b74c82a74d02d76 +d62c78db2d79df2d79e12e79e12e78e12e79e02f7bdf317ddc307cd82d7bd52d7ad52d7a +d7307cd22b78c32972af2971a54484dcc0dccccee7c7cde7c9c7e3d2c1dee0bdd9e2adcf +c979b1af3d84b82c7ac33681c44b8ecc69a5d88dbde0a8cce2b3d3e5bdd9e5c5dddfc3de +dac4dfd4c5e0d1c6e2cfc9e4cccbe5cccce6cccbe5cfcae4d0c9e3d3c6e1d5c7e2d4c6e1 +d5c7e2d5c8e2cdbeddd6c5e0ead3e6e3c0d8c48ca2a752649e2b34ac2525c52926c12424 +cc2726c82725ba2423a720219b1f1fa23434ba6d7adaabc5e3cae1dbc9e1d2c7e2d2cfe7 +d0d3ebc9cde7c5c9e5d4d2e9d0c9e4d4c7e2d5c6e1d6c5e0d6c5e0d4c6e1d3c6e1d1c8e3 +d1c8e3d2c9e3d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d1c7e2d0c7e2cfc7e2cfc9e4cfcae4cfcce4cfcce4d0cbe4 +d1c9e4d3c8e2d5c6e1d8c6dfe7d0d8bba08ea5884eb19437bfa42eccb12bcdb22acfae2c +caa93cc6a555ccad78dbbfa7e7ced0e0cce3d3c3dfd1c6e1cfc5e1cec6e2cec7e2cfc8e3 +d0c9e4d0cae4d2cbe4d4cae1d5c9e2d3c5e1d3c5e0d3c5e1d3c5e1d3c5e1d3c6e1d4c7e2 +d4c7e2d4c9e2d4c9e2d4c9e2d4c9e3d4c7e2d4c7e2d4c6e1d4c6e1d3c6e1d4c6e1d5c6e1 +d8c7e1d9c6e0d8c4dfddcbe3d5c3dbe1d3e5b3abb1b3b4afbdc4b7c7d2c0ccdcc9c6d5c5 +c8d4cbbcc2c7aaa8b9d0c5dfd7cae3d3c5e1d2c6e1d0c7e2d1c9e4d1cae3d0cae4d0cae4 +d0c9e3d0c7e3d0c6e2d1c6e2d1c7e2d4c7e2d5cae3d5c9e2d6c7e1d5c5e0d4c5e0d4c6e1 +d4c9e2d4c9e2d3c7e2d2c5e1d1c4e0d1c3e0d1c3e0d1c4e0d3c5e1d4c7e2d5cae3d5cbe0 +d5cbe0d5cae2d5c9e2d4c7e2d5c7e2dbc6d9d9baabc9a662c3a22ecdad2ad8b826daba25 +d4b328c7a72cba9a39b29379e3cad1dbc8d7d9cce1d6cbe4d1c6e2d0c5e1d3c7e2d5c7e2 +d7c3dfd9c3ded6c5e0d4c6e1d0c7e2cec9e4cdcae5cfcae4d4c7e2e2cee4debbd9d59dc7 +ca7eb1c0619bbd498abf367ec02c75c1286fca2b75ce2b75cf2b75d12b75d52b75da2c77 +de2d78df2d77e12f76e12f75e22e76e32d78e22e78e12e78e02e79e12f7cdf2f7bde2e7a +e2317ddd2d79cc2972b5256ca03276e4c5decdcbe5c8cbe5cdcbe5d3c4e0e1c1dce5b6d4 +cf82b7b23e84c42c7bd02f7dce2e7ccb3984ca4c94cb65a6d580b5e19ec6e9b6d3e9c0da +e4c3dddcc5dfd5c6e1d0c9e3cccbe5cacce7cacce7cbcbe6d0c9e4d2c7e2d4c6e1d4c6e1 +d6c6e1d7c8e2d3c4e0d9c9e3dfc8e0cca7bcaa7180943d46972224aa2522c02824c12424 +c62625bd2324aa2121971e1f943337b17177e0b5c6e1c7e0d6c5e0d5c9e3d3cce5cdcbe5 +cacbe6cacce7cecee7d0cbe5d1c8e3d4c7e2d5c6e1d6c5e0d4c6e1d4c6e1d3c8e2d0c9e4 +d0c9e4d2c9e3d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d1c7e2d0c7e2cfc7e2cfcae4cfcae5cfcce4cfcce4d0cbe4 +d0c9e4d3c8e2d5c7e2d6c3dfead4e5ccb3b0ae916ca6893ab49930c9b02cc8ad2cd3b029 +d3ae2bcfa936caa850cfb075dbbea1e4cbc7dfcbded5c6e1d3c5e1d0c6e2cfc6e2cdc6e2 +cdc6e2cec8e3cecae4d1cce3d3cce4d3c8e2d3c5e1d3c5e1d3c5e1d3c6e1d4c6e1d4c7e2 +d5c9e3d5cae3d4c9e2d4c9e2d4c9e3d4c7e2d4c7e2d4c6e1d3c6e1d3c6e1d3c6e1d5c8e2 +d6c7e2d9c8e1dbc6e0dcc5deddc4dbe8d2e3b5a4adb7adadc1c0b9cad1c6ccdacec4d2c7 +c2d2cdbcc3caa8a9bacdc6dfd5c9e3d2c4e0d4c6e1d5cae3d5cbe0d5ccdfd6cee1d4cde4 +d2c9e4cfc5e1cec4e0d1c6e1d1c7e2d4c7e2d5cae3d6c9e2d6c8e1d6c5e0d4c5e0d4c6e1 +d3cae3d1cae4d0c7e2d0c5e1cfc4e1cfc4e0d0c5e1d1c6e1d4c8e2d6cae4d4c6e1d0c5e0 +d3c8e2d7cce4d9cee4d5cae2d0c1d7cfbab5cdae79caa838caac2bd2b628d7b926d6b627 +cbac2bbd9f2eaf9143ccadace5cde2dac9e0d8cbe3d5cae3d1c6e1d0c5e1d3c8e2d6c7e2 +dbc7e1d6c0ddd4c4e0d3c8e3d0c9e3cfc8e3d4cbe4d9cae3dabad8dcaacecf86b8be5c98 +b84082ba2f78be2a74c1286fc5296fcf2c76d12b74d32a73d42c73d42b74d52b75d62b75 +d52b74d32971d22970d22a6fd32971d42a71d32971d22a6fd32971d82d77da2d79da2d78 +db2e79d62a76c92971b4256ca33477eed0e4d1cbe5c9c8e3d0cbe5d8c9e3dfc4dee3b9d6 +dc9dc6c05697c32b75da2e7ce0327fda2f7ece2f7ec53384c54691cf60a4de85b7e5a4ca +e6b5d3e5bfdadfc5dfd9c7e1d4c9e3d0cbe5cfcde6cfcde6d0cbe5d2cae4d4c9e3d5c7e2 +d6c6e1d5c4e0d9c9e3d5cae3c6bcccb6a2adaf8c8faf7271b05651b23831b32423bb2324 +c02425b824269a1d1f973745b07987cdb3c3e0d2e6d8cae3d0c2dfd3c8e3d3cae4ccc7e3 +cac7e3cecce6d2cee7cec7e2d3c9e3d5c7e2d5c7e2d5c6e1d4c6e1d3c8e2d1c8e3cec9e4 +cecae5d1c8e3d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d1c7e2d0c7e3cfc7e2cec9e4cfcae5cfcae4cfcce4d0cbe4 +d0cae4d2c9e3d5c7e2d3c3dfe1cde3ddc5d1c0a496a58951a78d30bda62fc6ab2dd0ab29 +dcb327dcb329d0ab2dc8a63dcbad64d9c094e4cdbdddc9d5d7c8e2d4c6e1d1c6e2cec5e1 +ccc5e1cbc5e2cbc8e3d0cde6d3cee6d3c9e3d3c6e1d3c5e1d3c5e1d4c6e1d4c6e1d4c7e2 +d5c9e3d6cae4d4c9e3d4c9e3d4c7e2d4c7e2d4c7e2d4c6e1d3c6e1d3c6e1d3c6e1d3cae4 +d2c9e3d5c9e2dbc9e1d7c1dbe2c7ddeacfe1b49cacb8a8afc7bfbfcfcfcdd2dad5cad6d3 +c4d2d3bbc3cca4a8bac9c5ddd5cbe4d5c7e0d8c9ddd8cbd7d8cbcdd5cac9d6cdd2d9d0de +d6cce4d0c5e1cec3dfd1c6e1d1c6e2d4c9e2d5cae3d5c9e2d6c8e1d5c5e0d4c5e0d3c6e1 +d1cae3cfcbe3cfc8e3cec7e2cfc6e1d0c7e2d2c7e2d3c8e2d3c8e2d4c8e2d1c3e0d0c2df +d6c8e1dbcee4dbcedcd1c6c9c4b7acbeab80c9ac4cd1b229d5ba26d6bc25d2b728caae2b +c0a42eb89e3cb69b6ae3c8dbdac5dfd7c7e1d5c7e1d3c7e2d1c6e1d1c6e2d2c7e2d4c6e1 +dacae3d2c0ddd3c4e0d4cae4d2c9e3d4c6e1ddc8e1e0bcd9ce8fbec0639eb94183b72871 +be276ec92c74d02e79ce2b75c72971cb2b73cb286fcc2a6fca296fc8286ec5286ec1276d +bc266bb82569b72669b62569b7266bb8266bb72669b72367b82568c1286dc2286fc2286e +c32970be276db32368a9266da74584f2d6e7d4cbe4cac6e2d0c9e4d7cae4d8c4dfdebeda +e7bbd7d17ab1b9256ed52b75e93182e9317fdf317fd32e81c82f7ec32f80c64591cf65a6 +d682b6de9dc6e2b1d1e3c0dbdfc8e1dbc9e2d6c9e3d3cae4d2cae4d1cae4d1cae4d3c9e3 +d4c6e1d8c7e0d5c7e0c5c4d6b4b9c1b4b8b7c8c0badcbcb4dca299cd6f6bad2825b52423 +b02122ac212e9a2b41b06e86d1b7ced9d9edc8cee8d0c7e2d3c5e0d2c5e1d2c7e2d1c7e2 +d0c7e2d1c8e3d2c9e3d3c8e2d4c7e2d5c7e2d5c7e2d5c7e2d3c8e2d1c8e3d0c9e4cdcae5 +cdcbe5d0c9e3d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d1c7e2d0c7e3cfc8e3cfc9e4cfcae4d0cbe4d0cbe4d0cbe4 +d0cae4d2c9e3d2c4e0d3c3dfd9c6e1e0cae0d7bdbdbda284a28940a28d30c4ab2dd5b028 +dab026dab126d6b128cfaf2ac9ac32c9af52d4bc81e3ccb4dcc9ccd8c7e1d4c6e1d1c5e1 +cec5e1ccc5e1cbc5e2cdc9e4d0cbe5d2c9e4d4c7e2d3c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c6e1d3c6e1d3c6e1d2c9e3d0cbe5 +cdcbe4d0cbe4d7cae4d4c2dddfc7e0e8cfe3b49bb1b8a4b5c5bac4cecbd2d4dadfd0dcdf +cad7dbb9c3cda2a8b7c5c5d9d5cee1dccedae0cecdd9c6b9cdbda7c9bba3cfc3b4d8cdcc +dacfe4d6cbe4d2c7e2d1c6e1d2c6e1d3c9e3d5cae2d5cae1d6c9e2d5c6e1d3c4e0d2c6e1 +d0c9e4d0cbe5d1cbe4d3cde6d3cbe5d3cae4d2c7e2d2c5e1d1c3dfccbedcd3c4e0ddcde5 +dfcfe3dacbccd0c2afc4b790baaf6fbdad4cd3b936d7b926d7be25d6be25cbb32bbda32e +b59c38bda661d1b9a2ddc6dfd5c3dfd6c6e1d4c7e1d3c7e2d2c6e1d1c6e2d2c9e3d4c9e2 +d3c7e2d3c6e1d4c9e3d6c9e3d6c5e0dac0dcdcb2d3ce8abaae4483af276ec22a73d02e77 +d32a75d02a70ce2970cf2d78c32d74b62569b7256ab4256ab12469ad2568a9276aa62b6c +a22d70a23374a13876a13977a23c79a43d7aa43a79a23575a33172a83174a82e72a62d6d +a72c6e982463922461a13b7cb56da4ebd3e5d4c9e3d4c9e3d4cae4d4c9e3d3c3dfd8c3de +e0c0dbd391c0ba307ec92a74e2317ee92f7ee73281e23286db3286d32f84c62d7db72877 +b63380c25599d17bb2e0a0c8e7b7d4e4bcd8dcbfdbd8c3ded3c4e0d3c6e1d0c7e3d0c9e3 +d4cbe4d8cee5c6c1d3b3bdc6b3c3c6bccfcad2dbd2ebded3f7d0c7eba6a3b34647b12d38 +981c1f9a2136bc6585dcaac9dbcce4c6cee8c3cee8cfc8e3d3c5e0d3c4e0d4c5e1d4c6e1 +d4c6e1d5c7e2d5c7e2d5c7e2d5c7e2d5c7e2d5c7e2d4c9e3d1c9e4d0c9e4cfcae4cdcbe5 +cdcbe5d0c9e4d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d1c7e2d0c9e3d0c9e3d0c9e4d0c9e4d0c9e3d0cbe4 +d1cae4d3c9e3cfc3e0d5c8e2d4c1dedac7e1e6cfddd6bfb5ac976b927d2eb39c30d4af2a +d6ac27d6ae28d7b427d6b727cfb429c9b02ccab23dd4bc74dac2a2dbc6c3dbc8ddd7c8e2 +d4c7e2d1c7e2cdc4e1cbc4e1cac3e1d0c7e3d4c9e3d4c9e2d4c9e2d5cae3d5c9e3d5c9e3 +d5c9e3d6cae4d4c7e2d4c7e2d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c6e1d0c9e3cacce6 +c6cce7c9cde7cfcce6cdc4e0d7c8e2e2d0e5af9bb9b5a4bfc7bdd2d2cee0d6d6e5d0d7e3 +c6d1d9b7c3caa6afb7c6cdd5d9d9dadad0c5d6c2a6ccb78abdab75b9ab75c5b892d5c7b8 +dcccd9d7cbe4d4c6e1d2c4e0d2c6e1d3c9e3d5cbe1d5c9dfd6c9e2d4c6e1d3c4e0d1c5e1 +d0c7e3d0c9e4d1cae4d2cae4d2c9e3d2c7e2d1c4e0d0c0ded1c0ded8c7e1decbe3dfccda +d9c5bcccbc93c0b469bdb347bfb730c7bb2dd4bc26dabd24d8c123d2bc27c4ac2db49a3c +b19a56c3b089dfcbc5d9c7e1d3c3dfd4c6e1d3c8e2d2c7e2d2c6e1d2c7e2d4c8e2d2cbe4 +cec9e4ccc7e3d3cae4dac9e3dec0dcd6a3cac475acb24183ae2264cc2b75da2d77de2d75 +da2b71d12a6ec5286db9256ead276c9f266a9424659329699734729e4780a65c90ae719f +b985b0bf98bfc3a1c6bea0c4bea2c5c3a4c8c3a2c7c49fc4c699c0c794bec38db8bf84b2 +b173a299598b915286ad76a5cea7cde4cfe5d3c4e0d6cae3d5c7e2d1c6e1d1c7e2d5cae4 +dac8e2d8b1d3bd5798b72874d02d7bdf317fe02f7ddd2e7ce03183e13689dc3285cd2d7d +c12773ba2875b82f7dbc468cc968a6d88ebde9b6d3ecc9dfe6cae0dbc6e0d5c7e2d5cee6 +d0cfe5bbc0ceadb7c0adc0c5b6cfcebad3cec1d3cbd1d1c8e6cdc7ebbcbacb838a871826 +972844c3688ae5a6c9ebc9dfdfd0e6c8c8e4c4c6e3d0c6e2d4c4e0d4c3dfd4c5e0d4c5e0 +d4c5e0d6c5e0d6c5e0d5c6e1d5c7e2d5c7e2d4c9e3d2c9e4d0cae4d0cae4cfcae4cdcbe5 +cfcae4d2c9e3d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d2c9e3d1c7e2d1c7e2d2c9e3d2c9e3d2c9e3 +d2cbe4d3cae4d0c4e0dccee5d1c2ded0bddbdfcbe3e4d0d8c8b6a6a08e5c9c852fb8962e +c8a32bd4b029d8b926d9bb25d7bb26d3ba27ccb52ac7ad33ceb265d2b78bdac0b3ddc6d1 +decae2dacae3d7cae3d3c8e3d2c9e3d0c7e2d1c8dfd3c9dfd4c9e2d5cae3d5cae3d5c9e3 +d5c9e3d5c7e2d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d4c6e1d4c6e1d4c7e2d0c9e4cacce6 +c5cce7c6cce7cbcce6c8c5e2d1cae4dbd0e7a99ec0b0a6c4c7bed6d2cce0d2d0dfd1d2d9 +c9cdcec3c7c3b3b8adc7c9bdcdcbb3c7ba90c3aa69bfa552b9a244baa74ec8b676d5c4a2 +dccacad6c7e1d2c3dfd3c5e0d3c5e0d3c9e3d4cce0d4cbdfd5cae3d5c7e2d4c5e1d2c5e1 +cfc4e1cfc5e1cfc4e1d0c3e0d2c4e0d3c4e0d8c5e0dbc7e1e0cbe2e7d1dddec6c0ceb897 +c5b16ec3b04cc4b432c8bc2ecec329d3c526d5be25dbc126d1ba27bfa82eb29939b39d64 +c0ae8fd2c3b5daced8d4c6e1d3c5e1d3c7e2d2c7e2d2c7e2d3c6e1d4c6e1d4c9e2d3cce4 +c9c8e2d3cce6dacbe4dbbad8cd97c3b9629da92e74af2263ce2b75d82c74d92c6ed62b6d +d12a6fc5276fb3256a9c21608e20608d316faf689eba7cafc18cbbca9dc6d2b0d3d9c0dc +ddcce4ded5eadbd8edd4d6ecd4d7ecd8d9eddbd9eddcd6ebded3e8e1d2e7e0cde4dbc7e1 +d6c3dec6b2d3bca8cccbb8d8decde5dacae3d1c1ded5c4e0d4c5e0d0c6e2d0cbe5d2d0e8 +d2cde6dcc6e0c47fb2a52f78bd2976d32e7ce03281e33382e2317fe02f7de23081e33384 +de3082d52d7bc82a75be2771b72a75ba3e84c5629eda92c0e9b5d3ecc7dde7cae0d9c5e0 +c7bed4b4b6bfb3bfc3c2d3d5cce0dfcbdeddccdad7d5d8d5ddd0ceddc1c3c89ba363152a +c3839df0c6dcecc8dedcbfdbd4c3dfd3cae4cac1dfd2c5e1d4c5e0d5c4dfd5c4dfd5c4e0 +d5c4e0d6c5e0d5c4e0d5c6e1d5c7e2d3c9e3d2c9e4d1c9e4d0cae4d0cae4d0cae4d0cae4 +d0c9e4d2c9e3d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c9e3d3c9e3d2c7e2d2c7e2d2c7e2d2c7e2d2c9e4 +d2cbe4d2cbe4d3c9e3d6cae4d2c4e0cfbfddd5c6e1ddcee4dacacfc3b4a1ad9866a0842e +b09330c2a62ecdb22ad2b728d2b927d3ba27d5ba26d6ba2accab2eccab4dd1b172d7b893 +dbbfafdec5c3e0cad2e2cfdde2d4e2d6cad9d3cad8d3cbdbd4cbded5cbe2d5cae3d4c7e1 +d1c4e0d1c4e0d2c6e1d3c5e1d3c5e1d3c5e1d3c6e1d4c6e1d4c7e2d4c7e2d1c9e4cdcae5 +c9c9e5c9cbe6cbcce6c5c6e3cdcce6d5d3eaa3a1bfaca9c1c1bcd1cec8d6d7cfd3e0d9d2 +d8d2c2ccc6a8b2ad83b5b17fb3ab6ab9a64fc4a73ac8a92ec6ad2dc7b339d0bb63d8c690 +e0cbc1dbc8ded4c5e0d3c3dfd3c5e0d3c9e3d3cbe0d3ccdfd3cae3d4c7e2d3c5e1d3c6e1 +d2c6dfd3c8ded5c6e1d6c5e0d8c5e0dac6e0dfc8e1e5cbd9e2c8bcd1b98bcbb463c8b237 +cab62bd2bd28d7c326d9c524d7c225d6be25dcc12ad1b52abca22fa99034ad9464bea99c +d3c4c5ddd3dcdbd4e7d0c9e3d0c7e3d1c8e3d2c7e2d3c7e2d3c5e1d5c7e2d6c9e3d5cae3 +d0c4e0e4d1e6e2c0dbc98cbcaf4f8caa2b70b8266dc92a72d52b74ce2869cd286ac3266b +b32265a122629d2c6fa9528cbc7aabc791bedeb2d3e4bcd8e4c0dbe3c5dee3c9e1e0cae2 +d9c9e3d2c6e1ccc5e1cac5e1cbc7e2cec9e4cfc9e4d0c7e3d2c7e2d6c9e3d7c8e2d4c5e1 +d6cde5d5d0e8d1cfe8cecee7d4cde6d4c5e1d6c4dfd5c0ddd7c7e1d2c7e2cccae5cccee8 +c8c8e4d7cbe4c496c39c4081a92670c22774d42c7ade2f7de33280e63180e4317de4317a +e4317be5327fe63483de3281cf2c79c12973b4266eb1367cba5793c774aad18cbcd39cc4 +d0afcad0c4cfceced1d3d1daceced6cfcdd6d6d1dbd4cdd6c2b7bfab9ba4a18c97937a88 +e1cbdce5cee3dbc4dfd7c0ddd6c2ded6c4dfd6c6e1d4c5e1d5c7e2d4c6e1d6c5e0d6c5e0 +d6c5e0d5c5e0d4c6e1d5c7e2d3c8e2d0c9e4d0cae4d0cae4d0c9e4d1c9e4d2c9e3d3c9e3 +d4c7e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c9e3d5cae3d4c9e2d3c6e1d3c5e1d3c5e1d2c7e2d3c8e2 +d3cae4d2cbe3d4cae3cdc2dfd3c5e1d6c9e3d5c7e2d4c5e0d7cae0d9cdcccdbfa7b29e6c +a68e41a48c30b2992fc6ac2dd2b729d7ba26d9ba26dfbd27d8b427d7b32fd6b242d3b15c +d3b272d4b687d6bc9adac3aaddcbbadbcfc8d8cfd2d8cfd7d8cfddd8cee1d7cce4d6cbe4 +d4c6e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c6e1d4c6e1d4c7e2d4c9e3d4c7e2d2c9e3 +cfc7e2cec9e4cecce6c5c7e3cacee7d2d6eba0a3baabaabcc8c4cfdbd2d3e2d5cceddcc5 +d9c7a3c5b278af9c4db5a549bba83dc4aa2fd0ae2ad5b428d4b927d3bb2ed3be4ed8c37f +dec8b4dec9dad8c6e1d3c4e0d3c5e0d3c9e3d3cbe0d2cdded2cbe3d2c7e2d2c6e1d5c7e2 +dacbe0dcccd9decbe0dec8dedcc5dadac1ccd8bdb8d4b99cd1b579cab04cccb52fd3bb27 +dbc124e0c523e3c523e3c323e1c024dbba26cfaf2abc9e2eae9138b49867c0aba0cdbecd +d5cae3d3cfe6d0cde5cecbe5cfc9e4d0c9e3d1c8e2d3c7e2d4c6e1d4c6e1d5c8e2d8c7e1 +e0cbe3dab7d6ca8dbcb45792ad2f75b9266dcb2b74d42c74cd2869c82a6eb82466a52161 +9c2869a24580b46ea1cc98c4e0bbd8ebcee2e2c4deddc1dcdcc2dddbc3dedac4dfd8c5e0 +d6c5e0d4c5e1d4c6e1d2c6e1d3c8e2d4c9e3d3c8e2d1c6e1d3c6e1d7cae4d7cae4d5cae3 +cfc6e1d0cde6d0d2eac8cde7c7c7e2d6c6e1dbc6e0d5c0dcd6c7e1d0c9e3cbcbe5cbcee8 +c7c8e4d4cbe4ceaed2a75c98a92a76bc2571cd2b74d72b75e2317dea3284eb3382ea2e7e +ea2f7bea2f7be8307be23078db2f77d62d7ace2e7bbc2771af286cab2f71b54584c06197 +cd87ace0b8cce4cbd6efd9e6e9d4e4dccbdcd6c8d9cac0d0b0aab99c98a7aeabb7bbb8c4 +ded8e7d0c8ddd2c6e0d8c7e1d7c5e0d4bfdcdac9e3d5c7e2d4c7e2d4c7e2d5c7e2d5c7e2 +d5c7e2d5c7e2d4c6e1d3c8e2d1c8e3d0cae4cfcae4d0cae4d0c9e4d3cae3d4c9e2d6c7e1 +d6c7e1d4c7e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d4c9e2d5cae2d5c9e2d4c6e1d3c5e1d3c5e0d2c6e1d3c8e2 +d3cae4d3cbe3d3cce4cbc1dfd2c6e1d7cbe4d5c7e2cfc1dfd4c6e0dbd1e1ded3cfcdc0aa +b2a37a9e894ca28b38b59c37c9ab2fd3b22ad8b427dfb825e4bc26e3bb28e0b82adbb630 +d5b338d0b148cdb358cfb767cdbc81d2c5a9d1c9c1d2cbccd5ccd6d6cdddd7cce4d7cce5 +d6c9e3d5c7e2d4c6e1d3c5e0d3c5e1d3c5e1d3c5e1d4c6e1d4c7e2d4c9e2d6c8e1d8c6e1 +d6c4dfd6c6e1d5cae4cac7e3cbd0e6d3d9eaa0a6b2abadb2ccc8c4ded2c5e1cdb3e7cca2 +d3b475c6a649bb9b2fc8a92cd1b229d7b527ddb725e0bc24dec124d8bf26d6be3ed9c16f +ddc5a9ddc7d5d9c6e0d4c4e0d3c5e0d2c9e3d2cce0d1cdddd1cbe2d1c8e3d2c6e1d5c7e2 +dbc8dcdcc8ccdcc6c2d8c3b1d4be9bd0b982ccb467cab34acbb333d5ba30d9be29e1c026 +e4c126e6c026e6bd24e4b824e1b424d9ae26bd992db6953abb9d6cc9aea4d3c0d3d5c8e2 +d0c9e3c9c6e3c4c6e2cacce4cccce4d0cbe3d1cae3d3c7e2d4c6e1d4c5e1d4c6e1dac5e0 +e3c2dcc487b8ae508cb03479bd2b74ca2a72d12a6fd12b6dc22764b023629e23619b3972 +a96394c292bcd3b3d5dac0dcdac3dedbc5dfd7c6e0d4c6e1d4c5e1d3c4e0d3c4e0d3c4e0 +d6c5e0d7c7e1d8c8e2d5c4e0d5c5e0d6c7e1d4c6e1d2c5e1d1c4e0d4c9e3d3c9e3d3c7e2 +d2c3dfd3c4e0d3cae4cacae5cac5e1dbc8e2dbc4ded7c0ddd3c4e0cdc6e2cbcbe6cdcfe8 +cdcae5d6cae4dcc1dcc17fb4b13681be2673d12b76de2e79e4317ae62f7be62f78ea2f7a +eb2f7deb2f7eea2f7ae62e77e22e77e03079da2e7ad22d77ca2b74c42c72c12b73bb2e73 +b74278bd6589c4829ce0acc5e9c1d7d7bbd3c3b1c9b5acc1acaabeaeb2c1c8cedecacede +d1d2e2d1cee1d1cbe3d4cbe5d4c9e3d1c3e0d5cae3d1c9e3d0cbe4d1c9e3d3c9e3d4c7e2 +d4c7e2d3c8e2d1c7e2d0c9e3cec9e4cdcae5cecbe5cfcae4d1c9e4d4c9e2d6c7e1dac7e0 +d9c7e0d5c7e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d4c7e2d4c9e2d5c9e2d5c9e2d4c6e1d4c5e1d3c5e0d3c5e1d4c7e2 +d3cae4d3cae3d4cbe4d0c7e2d1c5e1d1c6e1d1c5e1d1c4e0d3c6e1d5cce4d8cfded7cdcf +c9bdb5b9aa93ab966ea98e4db19239c09d2fd1ab29dcb427e4b925e4bb24e4bd24e3bd25 +debb29d9b929d4b72ccfb530ccb44cc7b578c7b796c9bba8cec0b3d3c4bfd6c7ced7c9db +d8c9e2d7c9e3d4c6e1d3c5e0d1c5e1d2c6e1d2c7e2d3c6e1d4c9e2d5cae3d6c8e1d9c6e0 +d9c4dfd9c6e0d6cae3cdc7decfd0e1d7d9e1a6a8a6b1aea1cabfa7d2bf9bcfb47ed6b46d +cda642d4a92ed4a928deb425e1b826e2ba24e4bd23e5c124e4c523e0c424ddc139dec465 +e2c59ce3c6c6dcc5ded8c4dfd6c5e0d5cae0d5ced6d6cecfd5ced3d5cbded6c9e2d9c6da +d9bfc0d8bcabd2b88fceb571cbb454ccb73bcfba2dd4be27d9c026e0c526e1c326e3bf28 +e5be2be6ba2de3b429dcac26d2a028c6982bb99232c6a772d4b8a8d8c1cfd3c4e0d0c7e3 +cdc9e4cbcae5c8c9e5cccce4d0cbe1d1cbe1d1cae3d2c7e2d4c6e1d4c5e0d9c4dfe0c1dc +d89ec7b55994a92d72b62770c72b73ce296fcc276bc6296caf22629b2663a55086b883ad +c9aacdd3c0dbd6c7e2d7cae4d7c6e1d2c2dfd2c9e3d0cae4d0c9e4d1c7e2d3c7e2d4c6e1 +d4c5e0d5c4dfd7c4dfd5c2ded7c4dfd7c6e0d5c6e1d4c5e1d3c5e1d3cae4d0c9e4d2c6e1 +d9c6e1d8c3ded1c1decfc9e4d1c9e4dfcae2d9bfdcd7c5e0d2c4e0cac5e2cacae5cdcce6 +d1cae4d5c6e1e7cfe4d29ac5b3448bb82773ca2a73d92c74e22f76e22e78e32e76e8307a +ec2f7eed307feb2f7de92d79e92f7ae52e79e13079dd2e78da2e7ad72d76d32a73cb296d +be2864af2f61a54065c17899dbaac7ceb1ccb3a5bda8a5bcb5b8cdc6cce0cbd0e3d3d7e9 +cacbded1cee3cfcbe3d2cde5d3cde6cec7e2cec8e3cfcce4cfcce4d0cbe4d0cae4d2c9e3 +d2c9e3d2c9e3d0c9e3d0c9e4cdc8e4cdcbe5cecbe5d0cae4d2c9e3d5c7e1d8c7e1dac6e0 +dac6e0d5c7e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d5c9e2d5c9e2d5c7e2d4c6e1d3c5e1d3c5e1d4c6e1 +d4c9e2d4c9e2d4c9e3d4cae4d1c6e1cfc4e0d0c4e0d3c6e1d3c7e2d1c6e1d0c7e1d0c7e2 +d7cce2d5c7d2c4b3aeb19b81a68a57ac8d3cbc9933c9a52bd6b028dab626dfba25e2be25 +e3bf24e2c026dfbd26dcbb26dab92ed1b344ccb15dcdb16ad0b575d2b883d2b994d0b9a4 +d6c0c0dac8dad7c9e3d4c7e2d0c6e2cfc6e1d0c6e2d0c6e2d3cae4d5ccdfd5cbded7cae3 +d6c7e1d4c7e1d4cbe3d1cbdfd7d3dbd8d4ceb3ab96b4a67fbfac74c6ab5fc8a643d2a935 +d5a828e4b427e8b925ecbc25e9bc24e8bc23e9c022e9c422e9c724e9c923e7c630e7c652 +e7c684e9c5aae6c6c6e4c9d7e1c9d6ddcac7d8cab6d3c6a7d3c49fd2c2a2d5c1a3d8bd9a +dab584d9b171d6b157d6b43dd8b92fdabf27dec424e1c923e3ca24e3c825dec126ddbd2a +ddba31d9b335d1a932c79c2ebe9330bb9343caa97cdabfb2e3cad3dbc8e1d0c5e1cac6e2 +cbcae5cfcfe8cfcce6d5cae3d3c6dfd3c9e2d2cae3d1cae4d3c8e2d7c6e1e4c7dfdaa4cb +c0629eb5367ab5266ac0286cc92b72c82a6fbb2567ac24679a2769a75a90c091bcd6bcda +ddcce4d6cae4d0c5e1d4c9e3d8cce4d6cbe4d1c9e4d0cae4d0cae4d0c9e3d3c9e3d5c7e2 +d4c5e1d3c4e0d3c2dfd4c3dfd5c4e0d6c6e1d6c6e1d4c6e1d4c6e1d4c9e3d1c9e4d3c7e2 +dac9e2d8c4dfd1c1ded0c9e4d3cbe5d9cae3d5c1ddd6c9e3d1c6e2cbc6e2cac7e3d0cae4 +d6cbe4d2c0dde7cee3dfb3d3b6619faa2c76b8246ace296ede2f76dd2f76e13079e6347d +e9317cec2f7eed2e7dec2f7bea2f7ae32e75e4327dde307ada2c75dd2e75df2d75dc2e73 +ce2b6cb52960a63964ba7395cca3bfbcacc3a9a9bfacb4c9c0cae0d0d6ebc7c7dfd7d3ea +cec8e1d0cae3cfc8e2d2cbe4d3cde6d0c9e3cec7e2d0cae4d0cbe4d0cae4d1c9e4d2c9e3 +d2c9e3d2c9e3d1c8e3d0c9e3d0c9e4cfcae4d0c9e4d1c8e3d3c9e3d5c7e2d6c7e1d7c6e1 +d7c6e0d5c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c7e2d4c7e2d4c7e2d4c7e2d4c6e1d3c6e1d3c6e1d3c6e1d4c6e1d4c7e2d3c8e2ccc1df +d4c9e3d9cde5d9cadfcdbcc0bda99ab0966fa88c48a98b2fc3a430caab2cd0af29d9b626 +e0bb25e4c025e6c225e9c424eac126ecc22ee6bc31e2b830e0b835dbb63fceac46bf9f53 +c5ab84d5bfb6d9cadbd6cae4cfc6e2ccc5e1ccc5e1cec7e2d2cbe4d4cbdad3cbd8d1cee2 +cdcde5cccce4d0cfe3d7d4deded3cfd3c7afc2af82b69c52bea13cccaa2fd3ad28dcb326 +e3b724eabb23f0bf21f0c023f1c124efc422eec61feac521ecc721efcc20efca27ecc53a +e9c05eeac181ebc39be8c5abe5c5abddc19ad4bd81ceb768cab354cab349cfb342d8b43f +e4b63ee7b537e9ba33ecbf2cecc528ebc723e8c723e3c523dfc525dec424d5bd27ceb62e +cab035bfa33db0943faf914abd9f6accb297e2c9c9ddc8dcdac7dfd6c7e1cfcae4c8cae6 +c7cbe6cbcae5d1c7e2dec9e1d5bddbd5c6e1d4cde6d0cde6d2cae4dcc7e0e9bed8c46ca7 +ac2a6ebb266ac22868c8286dc82b72bd266fa321639127689c568ec6a3cbd1bcdbd7c7e1 +d8cae3d6c9e3d5c6e1d5c7e2d4cae4d4cae4d2c9e3d3c9e3d3c9e3d3c8e2d4c7e2d4c6e1 +d5c7e2d5c7e2d5c7e2d4c6e1d4c6e1d5c7e2d5c7e2d5c7e2d4c6e1d3c8e2d3c8e2d4c6e1 +d4c6e1d4c6e1d3c6e1d0c9e3d0c9e4d2c7e2d2c9e3d0c9e4d0cae4cfc9e4d0c9e4d4cae4 +d9cbe4d0bcdbe1c8e1e6c9e0bf8cbc9c4683a22466c5276cdb2f77d32a6fda2d77e2327f +e12e78ea2e7cee2f7eec2f7cea2f7adf2f75df317be13582d82d76df2d79e52e79e33076 +d32c72be3571c3668fcb98b3bba4baa8aabba8b8c6b7c9dbc6d2e8cdd1e9d1c9e4d5c7e2 +d5c7e2d5c7e2d4c9e3d2c9e3d2c7e2d3c8e2d3c8e2d3c9e3d3c9e3d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c9e3d3c9e3d3c9e3d3c8e2d4c7e2d4c7e2d5c7e2d5c7e2 +d5c6e1d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d3c7e2d2c9e3 +cdc4e0cdc3e0d3c8e2dacde1dbccd2d2beb6b9a48aa38856ac8e41b49537bf9e2fcba92b +d6b329deba26e3bd24e5bf24e6bf23eec221efc022f0c122efc528e9c12ed4ae28b8952e +b39850bfac8bd3c3c4d4c9e2cfc6e2cdc6e2cec7e3d1c9e4d4c9e3d3c8ddd0c8d9cbc8df +cbcce4d1d1e6d9d5dedbd3cbd5c6accbb782c5ac5bc3a535ceac2ad8b628dfb824e4bc23 +eac022f0c221f0c224f1c224f2c425f0c625efc821edc720edc720f2ca20f1ca22ecc32c +e8bc3ee4b955dfb564d5af6ad2b16cd1b45ed0b649d1b736d3b92ad7bb28dcbd26e5be27 +f0c226f2c226f2c424f0c522ecc422e6c324e2c124dfc126dbc027cfb629c5ae2ebba536 +b19a41a8904ea89166b8a289d4beb3e9d5dbdac7ded7c6e0d7c6e0d4c6e1cdcae5c7cde7 +c6cce7cbcae5d3c7e2dfc6dfd8bddad7c6e0d6cde5d0cde6d4cae4ddc0dccf8cbcb34584 +b62467c22764cd2b71d22e7ac12970a5215f942565aa5c96cca5ccd0bcdbd3c7e2d7cce5 +d7cbe4d5c6e1d3c3dfd3c4e0d2c9e3d0c9e3d2c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c6e1d3c6e1d3c8e2d2c9e3d0c9e4d0c9e4cfcae4cfcae4cfcae5cec9e4d0c9e3d5cae4 +d7c9e3d3c0ddddc6dfe4cbe2c2a1c99c5f939a2a6bb82566d12b72cf296fd72e76e0317c +e12e77ea2e7eee3181ec2f7eeb3380ea3c8bce2762e83c88df317de2327fe73482e23582 +d74084cf6596d993b5c59cb9ac9bb2b5b9cabdcddfc0d1e3c3cde5cdcde6d3c8e2d6c6e1 +d7c6e0d6c6e1d4c6e1d4c7e2d2c9e3d2c9e3d3c8e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d3c9e3d5d0e5 +d1cde0cecbded1cbdfd9cfe4ded0e4ddcadcd4becacab0b1a88b7aa88861af8f4fb6953e +bf9e2fc8a92cd1b329dabd25e1c124e6c224e7c123ecc521efcb27e7c52cd0b229b2962f +b69e44c8b988d6c8bdd4c9ddd0c7e2cdc6e2cfc5e1d3c6e1d5c7e2d6c5e0d5c4e0d9cae3 +d9cce4dbccdad8c7bfcebd9cc7b26fc7b14acfb636dabe2ee0c027e2c125e8c424edc521 +eec71fefc81eefc821efc81feec820efcb25f1cc27efca22efca21f3cd1ef4cc20efc629 +ebbf31e4bb3be0b840dbb741dbbb41dcc23be2c734e5cb2bebcf27f1d22af4d52af1d125 +eac621ebc720ecca22eaca24e7c926e1c326d9bc27ceb529c7af30c0a93ea68e38967c3d +a7906cc6b0a4e1cccfe8d4e5dcc8e0cebcd9d6c6e1d5c7e2d7c6e0d5c7e2cfcae4cacce6 +cacce6cccae4d3c7e2ddc7e0d9c1ddd6c7e1d6cbe4d2c7e2d5c4e0d4abcfaa528ea2256a +be286ebf2562c5296bc32a71b124699f2567b04f8ed79cc6e7c9e0dbc9e2d8cce4d8cce5 +d6c9e3d4c6e1d3c4e0d4c6e1d4c9e3d2c9e3d3c8e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c6e1d4c6e1d3c6e1d3c8e2d2c9e3d0c9e4cfcae4cfcae4cfcae4cdc8e4d0c9e4d5cbe4 +d4c6e1d4c3dfd8c3dee3cae1d2b6d7ae79aa9b3875a82261c5296fd02a70db2c75e12f76 +e32e76ea2e7eeb3480e8307be72f79ee3384ea2e7aee3585e22e79df327ecc2b71c12e73 +cd5f97e19cc1c492b1be9bb9ccb8d2d2c8dfcfcde4cccee5cdcde5d0cbe5d3c8e2d5c6e1 +d6c5e0d6c5e0d5c5e0d4c7e2d0c9e4cfcae4d0cae4d2c9e3d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d3cae3d0d0e0 +d3d3ddd2d2e0d2cce0cfc6decec0ddd2c2dfdccce4ead7e9efd9e6e2c7c8c9ae9db0946b +9f8237997f2ea58c2fb9a22fc9b02cd3b728d7b727dcbd25dfc128d8bd28c0a82ea28a2f +ab973bc4b682d8cabdd8ceddd2c7e2cec3dfcec1dfd2c3dfd6c5e0dcc7e0e3c9e1e4cadb +dec4c2d3b8a3c9af7fc5aa5dcab13dd8bb32e1c32ce7c726e9c924edca21efca1fefca20 +efcb22efcb21efcc20eecc1feccb21edcb24efcc27efca28f2cd20f4cf20f5ce1ff3cb24 +f0c92eeec734eec93aeece3deacf36e8d029e8d024e9cd22e8c924e9c522e9c423ebc823 +edd227e1c924d6bd25d0b728ccb52ac6af2dbca430ac92319d85319a8143bda786ddc7be +e4d0d6decbddd6c4dfd3c2dfd5c6e1d6c9e3d4c7e2d4c7e2d6c6e1d5c7e2d1c8e3cecae5 +cccbe5cdc8e4d1c7e2d7c3dfdbc6e0d5c6e1d4c6e1d4c5e0d1b3d5bd81b19c2f71ab2468 +c52c72c5296dba2567aa2262a72a6eb95795df9dc6edc7dddabcdadac7e1d7c8e2d5c8e2 +d3c5e1d4c6e1d5c7e2d7cae4d6cbe4d5cae4d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d5c7e2d5c7e2d5c7e2d4c7e2d3c8e2d0c9e4d0c9e4d0c9e4d0c9e4cec7e3d0c9e3d5cae4 +d3c5e1d7c6e1d4bfdcdec8e1e2c9e1c598c4a24b879b2161b82568cd2a6fdc2e75e22e72 +e43074e62f7ae5307ae62f7bea2e7ce62f74ed388ce93173e62f7be33985dc5094df79b0 +e4a0c7c8a0c1a992adc7aecbe8d2e5e2cce3d3c2dfd0c4dfd4cae4d4cbe4d3c8e2d5c7e2 +d8c5e0d8c5e0d6c5e0d4c6e1cfcae4cacde7cacbe6d0c9e4d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d3c9e3d0cbe1 +cecde0cecde1cfcbe3d1cae3d4cae4d6cbe4d6cae3d6c7e2d8c7e0dcc8d9dfcaceddc7be +d5c0a8c8b38ab7a26aa38c4199832fb19930bda32fc5ac2dcdb629ccb62fbea92ead9731 +baaa5fd4c69ddbcfc4d9cedcd4c9e3d2c6e1d2c4e0d5c4dfd9c4dfdcc2dbe1c1cadbbaa3 +d5b37bd1b05ed0af48d7b639e2c135e7c72be8c524e6c124ecc520f0ca21f0ca21f0cc21 +f0cd20efcd20edcf1febd021ebcf21eacb24e9c826eec929f0cc22f1cb20f1c91ff0c822 +f1cb25f0cc2defcc2dedce2beacf26e8cf23e8ce22eaca22eac721ebc223eabf27dfb926 +c6af2dc5b32dc5b22ebaa830ae9a31ab9539b19c57bfaa7acbb699d4c1b5dbc9cadbc9db +d5c6ded3c4e0d5c7e2d6c9e3d2c6e1ccc3e0d1c9e4d2c9e4d5c6e1d5c6e1d4c7e2d0c9e4 +cfc9e4d0c9e4d2c7e2d0c0dddac9e3d6c7e2d7c8e2dbc3deca9cc6a8528ca5286eba2670 +c2276bc72b72b6276ba5276aad4986cf88baeabdd8ebcce1d8c0dcd8c5e0d4c5e0d2c4e0 +d2c5e1d4c7e2d5cae4d5cbe4d6cae4d5c9e3d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d5c7e2 +d4c6e1d5c6e1d4c6e1d5c7e2d4c7e2d2c9e3d0c9e4d0c9e4d0c9e4cfc7e2d0c9e3d4c9e3 +d2c4e0d7c8e2d2bfdcdbc7e1e5d1e6d2acd1ab6299942565aa2262c5276cda2c74e02d71 +e52f75e42f77e02f76e32e77ea2e7cea2c77ee2f7cee307ce83480d23079d9609cde90bd +c79abfa99bb6c3bfd7d9c8e1dbc0dbe1c6dfe0c5dfd8c1ddd2c2dfd4c7e2d3c8e2d4c6e1 +d8c4dfd7c3dfd8c4dfd5c7e2cecbe5c7cee8c8cde7d0c9e4d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d3c8e2d0cbe5 +cecae4cdc8e3cec8e3d2cbe5d4cce5d5cbe4d2c7e2cec3dfd0c4ded5c7dedbcbdddfcfda +ddccd0d7c7c3cfbdb3c3b1a2beab86a99346a68e30ab9430ae9831ae9838a9923aa79249 +c0ae83d9cbb5dccfcdd8ccdbd5cae2d6cbe3d9cae1dac8d6dcc3c4d9bdb2d8b993d7b56a +dbb744dfbb37e4be32e8c42eeec82aefca24efc81fefc61ef0c721f3ca21f2ca21f0cc21 +efcc20eecf1eeccf20ecd122ebd123eacc23eac827eecb28f1cc21f0ca1feec71feec81e +eec823eec929eac92ae7c92ae2c625ddc523dbc024dbbb24dbb626dbad27d7a829cca52f +b7a131a79834a29236ae9c51bead75cdbd96d7c6afd7c4bdd7c4c9e1d0e1decfe5d6c9e2 +cec1dfccc1dfd0c6e2d3cae4d2cbe5cfc8e3cecae5d0cae4d4c6e1d6c6e1d5c7e2d3c8e2 +d1c8e3d0c9e3d0c7e3ccbeddd7cae3d9cce4ddc9e2dab6d6bd7dae9c3071b2266ec32970 +c4286bbd276ba82465a33476bb70a4dbaacee5c7dfdac3ded9c6e1d8c5e0d4c4e0d2c4e0 +d3c7e2d4cae4d4cbe4d3c9e3d3c6e1d4c5e1d4c6e1d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d5c7e2 +d5c6e1d6c6e1d6c6e1d5c7e2d4c7e2d3c8e2d1c8e3d0c9e3d0c9e4d0c9e3d0c7e3d2c7e2 +d3c6e1d6c9e3d0c0ddd8c7e1e3d0e5dabbd9b97daf9a36749c205eba2565d32972dd2d70 +e43076e22e77df2d77e12f76e62d78eb307aee2f7cee3180d22967b9245db7437bbc729f +b694b6b5b2cccacee5ddcee5dbbfdbdfc0dbe1c2dddbc3ded3c2dfd0c2dfd3c7e2d4c6e1 +d8c4dfd9c3ded8c4dfd5c6e1cecae5c7cee8c7cde8d0c9e4d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d3c7e2d1c8e3 +d0c9e3d0c8e3d0c9e3d0c7e3d0c7e1d0c8e2d1cae3d3cbe3d3cbe2d5cce1d8cce2dacee4 +dacce3d9cbe3d6c8e1d3c5ded3c3d1cbb8adc8b197c1ab89bba380b49b7db29980b8a191 +cdbab7dcccd2d9cbdbd6cadcd6cadad7cbcfdaccc0dacaa9d8c58cd7c071d6bc4fe0c138 +e7c52bedca26efca24efc924efc723f0c621f3c923f4cc22f3ca21f3c721f1c820eeca1f +efca1feccc21ebcc22eacd21eace21eacb23ecc925eecb27efcb22eec820eec820eec81e +ebc524e3bf29debb2bd8b92bd0b429c9b02cc4a82dc1a12dc0982dbe8f30b98939b68f4f +baa370b8aa80c1b292cbbba8d3c3bad8c8c9dacbd6dacbdfd7c9e2d4c5e0d4c6e1d3c8e2 +d0c7e2d0c9e3d2cbe5d3cee6d0cee5cccce4cbcde5cecbe5d4c7e2d6c6e1d5c5e0d4c6e1 +d3c6e1d1c8e3d0c9e3cdc2dfd4c6e1ddcde5dcc2ddcc9ac5ae5a92a02468bf2770ca296f +c6286fb122639e2567ac548dca96c2dec4ded9c9e3cfbfddd6c7e2d7c5e0d5c4dfd3c4e0 +d3c8e2d2cbe5d1cae4cfc6e2d0c3e0d4c5e1d4c6e1d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d5c7e2 +d5c6e1d6c6e1d6c6e1d5c6e1d4c6e1d4c7e2d2c9e3d0c9e3d0c9e3d0c9e4cfc7e2d0c6e2 +d3c8e3d4c9e3d2c4e0d6c7e1dac9e2dbc2ddca99c4a7538a94205eae2261c9296fd62a6f +df2d75df2d75de2d76e23079e6307be52e78eb2f7cdc2c6bc3245ab7245eab326eb46192 +cba0c5d0c6e1c6c6e1d9cae3e2cae1ddc0dcdabfdbdac5e0d6c6e1cfc3e0d2c7e2d4c6e1 +d8c4dfd8c3dfd8c4dfd6c6e1d0cae4c8cde7c9cde7d0c9e4d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d2c7e2d1c5e1 +d1c6e2d1c7e2d1c7e2d0c6e2cfc6e1d0c7e2d2cbe3d5cee3d5cee3d5cee4d5cce4d5cae4 +d5cae3d4c9e3d4c7e2d3c7e2d4c6e1ddcce4dfcce3dbc6d9d2bcd0cbb4c9c9b2ccd0b9d5 +d7c5e0d9cae3d7cae3d5cadfd4c9d2d2c9bcd4c8a2d6c983d8ca63dbc946dec92fe5cb25 +eccd22efcd20f0cd1eefca20efc720efc523f2c524f1c725f0c623f0c520efc61eedc620 +ebc620e9c622e9c722e8c723e8c624e8c524eac626eac623eac521eac521eec821edc820 +e4bf25d7b328c9a82cbea02fba9d37b79c3cb99d46bd9d57c59f6aca9e78c99e86c9a69b +cfbbb8d2c5c8dbccd7dbceded8cae1d5c7e1d4c6e0d4c6e1d3c6e1cfc3e0d0c5e1d3c9e3 +d3cbe5d2cbe4d1cce3d1cde2cecce0cccce0cacde5cccbe5d3c9e3d5c6e1d6c5e0d6c5e0 +d4c6e1d3c8e2d1c8e3d2cae4cfc4e0ddcae2d7b2d4b874a6a33677b1266dc92a72cf296f +c42970aa2364a73b7bbf7daed8b6d6d9cee6cfcae5ccc5e1d5cae3d6c5e0d5c3dfd3c4e0 +d3c8e2d1cae4cfc9e4cdc6e1d1c3e0d6c9e3d5c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d5c7e2 +d6c6e1d6c6e1d6c6e1d5c6e1d5c7e2d4c7e2d3c8e2d0c7e2d0c9e3d0c9e3cfc6e2ccc4e1 +d4cbe4d2c7e2d2c7e2d5c8e2d1c2dfdcc6e0d7b1d3b672a1922965a2215ec1296dcf2a6c +d92c71d92c71d92c74db2e78dd307add3079d82a6fc6255bd24283cc3d80b93476b44f87 +c98ab9dbbfdbd1c1dedac5e0ddc7e0d8c1ddd6c2ded6c7e1d6c9e3d1c6e2d2c7e2d4c6e1 +d8c4dfd8c4dfd8c5e0d6c6e1d1c9e4cbcbe6cbcbe6d1c9e4d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d3c6e1d1c3df +d1c3e0d1c4e0d2c6e1d4c7e2d4c9e3d4c9e3d4cae3d4cae3d4cae3d2c9e3d1c7e2d1c6e2 +d0c5e1d0c5e1d0c6e2d1c6e1d3c8e2d3c7e2d6c9e3d8c9e2d6c5e0d4c3dfd7c4dfdac8e2 +d8c8e2d4c3dfd5c8e2d5c9e2cfc4cfcbc0b2c7bd91cbbd6dd3c34fd9c83be0cc2ce2ca25 +e4c724e5c523e8c524eac624ebc428ebc026eabf26e9be23ebc023ecc221e9c223e9c423 +e8c324e6c023e6c123e5bf25e7bf26e7bf26e7c026e7c025e6c023e7c124ebc720e8c524 +e0bb29d1ae2fc5a546bea15cbea373bea682c9ae96d4baa9e1c3bceac7c8efccd7ebd0e1 +e1d1e6d7cbe4d2c6e1d3c5e0d6c9e3d7cbe4d6cae4d2c5e1cfc4e0d5cae4d3cae4d3c9e3 +d2c9e4d0c7e2cec7e2cec7dfcfcae1cfcce4cbcde5cccce6d2c9e3d5c7e2d6c5e0d7c4df +d6c5e0d4c6e1d2c9e3d2cce6d0c3e0dbc4dfcc9cc6a8528ba02467be2972ce2970d22971 +bc266ca7266bbc669ed5a5ccdbc7e1d0cfe8c8cee7cccce6d4cbe4d6c6e1d6c4dfd3c4e0 +d3c8e2d1c9e4cfc9e4cdc6e2d4c6e1d8cae3d5c8e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d5c7e2 +d6c6e1d6c6e1d6c6e1d5c6e1d5c7e2d4c6e1d2c7e2d1c7e2d0c7e2d0c7e3cec5e1cec5e1 +d5cce5d0c6e2d1c5e1d3c7e2cdbfded8c7e1dec2ddc590ba983d73961f58b52464c8286a +d22a6fd12b6ecf2b71cf2f77cb2e75c62d70bc235dc02561de5da1e15da0cb3f84b63377 +b5518fcf91c0e2c0dbdfc3ddd9c2ded2c1ded3c8e2d2cbe5d0c9e4d1cae4d2c7e2d5c6e1 +d7c4dfd8c4dfd7c4dfd6c6e1d4c7e2d0cae4d0cae4d3c9e3d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d5c7e2d4c5e1 +d4c5e1d4c5e1d4c6e1d4c6e1d5c7e2d5c7e2d4c6e1d3c6e1d3c6e1d2c7e2d2c7e2d1c6e2 +d0c6e2d0c7e3d0c7e2d0c7e2d0c7e2d0c7e2d0c6e2d2c6e1d3c5e0d3c3dfd3c3dfd3c3df +d2c2dfd2c3dfd5c8e2d4c6e1ccc2d7c6bab8bfb295bdad6fbfad4dc5b134c9b22cd2b92a +d0b629d0b229d9ba2adebb2ddeb92adcb627deb826e0b926e3be24e3be24e1bc24e6c123 +e5bf24e1ba24e4bb24e4b926e3b828e4b928e5bb28e8c126e7c122e5c124e8c523e2c024 +ddbb32d9bc59e1c58cecd3bce8d1d1e3d1dddecde2decce2dccae2ddc8e0dcc7e0d8c6e1 +d5c7e2d4c7e2d4c6e1d4c6e1d4c6e1d3c6e1d3c7e2d3c7e2d3c7e2d3c7e2d3c8e2d3c8e2 +d3c8e2d2c9e3d2c9e3d2c9e3d2c9e3d0cae4cccce6cccce6d1c9e4d4c7e2d6c5e0d8c5e0 +d6c5e0d4c6e1d2c9e3cdc6e2d5c7e2dcbcd9bb7baca23a79ac2569c52a70cd2868d22a6f +b12267a83277d592c0e0bfdbd2c6e1c6cce7c7d3ebc5c9e5d0c9e4d4c6e1d5c4e0d5c6e1 +d4c7e2d1c8e3d0c9e4d0c9e4d4c7e2d5c6e1d5c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d5c7e2 +d5c7e2d6c7e1d6c6e1d5c6e1d5c7e2d4c6e1d2c7e2d1c7e2d1c7e2cec5e1cec5e1d2cbe5 +d3cbe5d0c6e2ccc3e0d0c5e1d3c8e2d5c7e2dbc8e1d0accca05b87881a4ea31e53c6296a +ca276ac52769c12b6fc4377bc0417da6295fa5205bb62568cb2f77e35ca2d9458ec93078 +c13681b64a90dd9fc7e3bad7e7d0e5c9bfdec4c4e2cacce7cccce6ccc8e4d2c7e2d5c6e1 +d6c3dfd8c5e0d7c6e0d6c6e1d5c7e2d5c7e2d5c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d5c7e2d6c7e1 +d7c6e1d7c6e1d6c6e1d6c5e0d5c6e1d4c5e1d3c4e0d3c4e0d3c5e0d3c5e0d2c5e1d2c6e1 +d1c6e2d1c7e2d2c9e3d2c9e3d0c9e4cfc9e4cec9e4cfc8e3d0c6e2d2c6e1d4c5e1d3c4e0 +d3c5e0d2c5e1d0c3e0d3c6e1d9cde5e1d4e3e4d5d2deccb3cfba8ac4a763bb9d45ae9131 +a78c2faf922fc0a432cbad39ceaf34d1b02ed0af2ad4b328d3b229d3b029d5b328dab626 +dbb426dcb326deb425dfb424e3b829e4b92de4b829e3ba27deb725dab626dbba25d8b926 +d5b735d7bb6bdec4a3e4cdd1ddcbe2d6c9e3d2c7e2d1c6e2d1c6e1d2c6e1d3c6e1d3c6e1 +d3c5e1d2c6e1d2c7e2d2c7e2d3c8e2d3c8e2d3c8e2d3c9e3d3c9e3d4c9e2d4c7e2d4c7e2 +d4c6e1d3c6e1d3c5e1d3c5e1d2c6e1d0c7e2cdcbe5cdcbe5d0c9e4d3c9e3d5c6e1d6c5e0 +d6c5e0d4c6e1d2c9e3d1cae4dbc9e2dcb4d4b66b9faa3375b8276cc72769d3286bc8286a +ab266bb35592d9a2c9ddc4ded0c9e4c6cfe8c6d3ecc2c8e5d0cbe5d4c6e1d4c5e0d4c6e1 +d4c6e1d2c9e3d0c9e4d0c9e4d4c7e2d5c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d5c7e2 +d5c7e2d5c7e2d5c7e2d5c6e1d5c7e2d4c6e1d2c7e2d2c7e2d1c7e2d6cce5d4cbe5c9c2e0 +c8c0ded0c7e3d7cee6d4cbe4d3c9e3d4cae3d7cee5c7b5cd9c688a861c519f1e50bf2765 +c32769b82767ad2a6ab64b84d47aabda82b38e1c54ae286bd13c84dd3c86e33c87e23986 +d33081c33285bf519ce9b6d3dcbddad4cbe4cacfe9c5cee9c6cce7cbc9e4d2c7e2d5c6e1 +d5c4e0d6c5e0d6c6e1d5c7e2d6c6e1d7c6e0d6c5e0d5c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d5c7e2d8c7e1 +d8c7e0d8c7e0d7c6e0d7c6e0d5c4e0d4c5e0d4c4e0d3c3dfd3c3dfd3c5e0d4c5e1d4c6e1 +d4c7e2d4c9e2d3cae4d3cbe1d3cbe0cfcee2cecee2d0cde3d1cce3d3cbe3d5cae3d5c9e2 +d5c7e1d4c7e2d3c8e2d1c6e2d0c5e1cfc4e1d3c4dfd8c5dce1c8d9eac9d5eecdced8bcaf +bfa58ab0956ca68d559e853b9d842eae9535ad922fb79a2fbe9f2ec5a42dceab2bcfac2a +cea92ad0ac29ceaa2aceaa2ad4ae28d6ad27d7ac27dab027d7b227d8b727dabc24d5b927 +d2b640d5bc7bdbc5b1dac9ddd2c7e2cdc6e2cbc6e2c9c6e3cac8e4cacae4cbcae4cfc8e3 +d1c7e2d3c5e1d3c5e1d4c6e1d4c7e2d4c9e2d5c9e2d5cae3d5cae2d5cae1d5c9e2d5c7e1 +d5c7e2d4c6e1d4c5e1d4c5e1d3c5e0d2c6e1d0c9e3d0c9e4d0c9e4d1c8e3d4c6e1d5c6e1 +d5c6e1d4c6e1d3c8e2d2c7e2e0c9e1d39dc6ac4d89af2a6fc22a6ec82665d32a6fbb2562 +a53276cb88badfb8d6dbc6e0d1cae4cacee7ccd2eac4c6e3d1cce5d3c7e2d4c6e1d4c6e1 +d5c7e2d4c7e2d2c9e3d2c9e3d3c9e3d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d5c7e2d5c7e2d5c7e2d5c7e2d4c7e2d4c6e1d2c7e2d2c7e2d1c7e2d2c9e3d2c9e3d0c6e2 +d1c7e2d4cae4d3cae4d0c7e2d2cbe4d5d0e6bcc0d19191a075526c71133f911943b3225d +b82666a72b66902c6296507cb887acd19ec3b05d91a32a6fb6266bcb2872df3281e93a8b +e53789d22d80b82777d076b0ddb0d1d7c8e2d1d3eac6cfe9c3cae6cdcbe6d2c7e2d4c5e1 +d4c5e1d5c7e2d5c7e2d5c7e2d6c6e1d8c5e0d8c5e0d5c6e1d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d5c7e2d7c7e1 +d8c7e1d7c7e1d6c6e1d6c5e0d5c6e1d4c5e0d3c4e0d3c4e0d3c4e0d4c5e1d4c6e1d5c7e2 +d5c7e1d5c9e2d5cae2d4cbdfd3cbe0cfcee4cdcde4cfcce4d1cce3d3cce1d5cbe0d5cae1 +d5cae3d3cae4d3cbe5d2cbe5d1c9e4d1c8e3d4c6e1d7c6e1dbc6e0e1c6dfe4c9e0dac2da +d8c4d1e1cecde4d2c5d1bea5b1a074a995598d772d957c2d9c812da98b31b59538b59530 +ba9a2ec5a52dc2a42dc4a62dc4a72dc6a32cc8a12ccca52bcca82bccac2accb22bc5ad2d +c3ab3ec6b176d1c0b3d6c9e0d0c7e3ccc7e3cac7e3c9c9e4cacce7cacee6cccee5cfcae5 +d1c7e2d3c5e0d3c5e1d4c6e1d4c7e2d5c9e2d5cae3d5cae1d5cadfd5cae0d5cae1d5c9e2 +d5c7e1d5c7e2d4c6e1d4c5e1d3c4e0d4c5e1d3c7e2d2c9e3d0cae4d0c9e4d3c8e2d5c7e2 +d5c7e2d4c7e2d4c7e2d0c2dfe2c5dec17db0a63576b4266ac82b6ecb2665cf2a6eb12260 +a24682daaccfe1c4ded9c6e0d2c7e2cfcbe5d0cfe8c8c5e2d2cce6d2c7e2d3c5e1d4c6e1 +d5c7e2d4c6e1d4c7e2d3c8e2d2c9e4d2c9e4d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c9e3d3c9e3d3c9e3d3c8e2d3c8e2d3c8e2d2c7e2d2c7e2d2c7e2cdc2dfd0c6e2d9cfe7 +d8cfe7cfc6e1cdc4e0d4cbe3d0c9e1bebed28a94a14e5d664a364a620d3584163f9f1f52 +a1225a8d255a7228556b4066806b89a288a9e1b1d1bf649ca52563c1276ed92f80e6378a +e8358ae23286d02e80b13381d08cbcdbbcd9d4cae4cdcde6cccce6cdcae5d1c7e2d3c6e1 +d4c6e1d4c7e2d4c7e2d5c7e2d6c5e0d8c5e0d8c5e0d5c6e1d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d5c7e2 +d5c7e2d5c7e2d5c7e2d5c7e2d5c6e1d5c6e1d4c6e1d5c7e2d5c7e2d5c7e2d5c7e2d5c7e1 +d5c7e1d5c7e1d5c7e1d5c9e2d3c9e3cfc9e4cec9e4cfc8e3d0c7e2d3c8e2d4c9e2d5c7e1 +d5c9e2d3cae4d0cbe4d0cbe4d2cde6d5cfe7d8cee6d9cce4d9c7e1d9c3ded6bfdcdccae3 +d9cde5d6c9ded9cbd9ded0d2e2d5caded1bd907f60624c2062491c765d28856a2d876c29 +967c2da79030aa9430b19d30b29c30b79b2fbf9d36c39f32c0a02dbfa42ec1a72ebaa52f +bda645c6b27fd3c3b8d5c9dfd0c9e4cdc8e4cbc8e3cccbe5cdcde6cfcee5d0cee5d2cbe5 +d2c6e1d1c6e1d2c6e1d2c7e2d3c8e2d3c9e3d3cae4d4cae3d5cae2d5cae2d5cae2d5cae3 +d5c9e2d5c7e1d5c7e2d5c7e2d4c6e1d4c6e1d4c6e1d4c7e2d0cae4cecae5d0c9e4d3c8e2 +d4c7e2d4c7e2d5c7e2d4c3dfe6c2dbb56299a72b6eba2669cc2a6dcd2869c6296aa72361 +a56196dec2dddec9e1d7c3dfd3c3dfd4c6e1d3cae4cec5e1d1cae4d0c8e3d2c7e2d4c6e1 +d5c7e2d5c6e1d5c7e2d4c7e2d0c9e4d0c9e4d3c8e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d3c9e3d2c9e4d2c9e3d2c9e3d2c9e3d2c9e3d1c7e2d2c7e2d2c7e2d1c6e1d3c8e3d5cce5 +d4c9e3d0c7e1d7cee6d6cee4bbb3c88f8d9e59666f34484c4136425e1b3d77153f871845 +851949721e4c5d2a505c4a667e7d94afa9c2e7cce2e6aecfc25997b62a74cc307fdc3488 +e23185e9368add3184b82879b75095dfaccfddc0dbd5c6e1d4cce5ccc6e2d0c8e3d0c8e3 +d3c9e3d2c9e3d3c8e2d4c6e1d6c6e1d7c6e1d6c6e1d5c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c6e1d3c7e2 +d3c7e2d3c7e2d3c6e1d4c7e2d4c7e2d4c7e2d4c9e2d4c9e2d4c9e2d5c9e2d5c9e2d5c7e1 +d5c7e1d5c7e1d5c7e1d5c7e2d3c7e2cfc7e2cfc8e3cfc6e2d1c6e1d3c5e1d5c7e2d5c7e2 +d4c9e2d2cae3d0cae4cdcbe4cbcbe3cccbe4cecae4d2c9e3d6cae3dac9e3dacae3d6c9e3 +d1c6e2cec5e1d0c7e2d3cbe1dad0dde0d6db867b7a57473d4a3a275543285f4b265e4a1d +705c247967287f702b96873194843099812ea58730ab8b2fad902fb2992fb6a030b39e30 +b9a44ec6b486d5c5bad6cadcd1c8e3cec9e4cdc9e4cec9e4d0cae4d2cae4d4cae4d4c9e3 +d2c7e2d1c6e2d2c7e2d1c6e2d3c8e2d3c9e3d3c9e3d3c9e3d4c9e2d4cae3d4cae3d4cae3 +d4cae3d4c9e2d4c9e2d4c7e2d4c7e2d5c7e2d7c6e0d5c6e1d0c9e4cdcbe5cfcae4d0c9e3 +d2c9e3d3c8e2d5c6e1dcc8e1e5bad6af508bae296ec2286ccf296ccf286bbd27649f2863 +b485b0dbcbe3d9cae3d5c1ddd5c0dcd7c2ded5c4e0d3c5e1d0c8e3d0c9e3d0c7e2d3c7e2 +d4c6e1d6c5e0d6c6e1d4c7e2d0c9e4d0cae4d2c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d3c8e2 +d1c8e3d1c9e4d1c9e4d1c9e4d1c9e4d2c9e3d1c7e2d2c7e2d2c7e2d3c8e3d4c7e2d2c7e2 +d4c9e3d9d0e7d5cde4bcb3c68f889a5d5d6a3b474c314646413e445a2f44661a3c6a1138 +6b153e672b5166476378748aa0a8bac6cbe1d5c7e1f2d1e3e29bc4bc4a90bb2b7bcc2e7f +db2e82e83586e23183cb3080b22f7dd787b9e3b3d2dfc0dcd5c3dfd1c6e2cfc9e4cec9e4 +d0c9e4d2c9e3d3c8e2d4c7e2d5c7e2d5c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d3c6e1d1c6e2 +d0c9e3d0c7e2d0c7e2d1c8e3d1c8e3d1c9e4d2c9e3d2c9e3d3cae4d4cae3d4c9e2d4c9e2 +d5c7e1d5c7e2d5c7e2d5c7e2d3c7e2d0c9e3cfc8e3d0c7e2d3c7e2d5c7e2d4c6e1d5c7e2 +d4c7e2d2c9e3d0c9e4cccae5cacae4cacae4cccae4d0c9e4d4c9e3d7cbe4d7cbe4d1c7e2 +cec6e2cfc8e3cfc9e4cfc8e3d0cbe4dbd6e77d7683524b5047413949422f4b4124463c19 +564c2150451a6155258c81519384508d773d8f743193792c977f2e9d8830a18e31a28e30 +af994bc1af87d4c4b8d8cad9d4c9e2d1c9e4d0c9e3d1c7e2d3c6e1d3c4e0d4c5e0d4c5e1 +d3c8e2d1c8e3d3c8e2d1c8e3d2c9e3d2c9e3d2c9e3d3c9e3d3c9e3d3c9e3d3c9e3d3c9e3 +d3c9e3d3c9e3d3c9e3d3c9e3d3c9e3d5c7e2d8c5e0d6c5e0d0c9e4cccce6cccbe5cfcae4 +d0c9e4d3c8e2d6c6e1e2cce3daa7ccab4381b4266ec9296fd22a6dcd2869b624619b2e67 +c8abcfd3cde6d6cbe4d7c2ded9bfdcdbc0dcd9c1ddd9c9e3d0c5e1cfc8e3cfc8e3d2c7e2 +d5c6e1d7c6e0d7c6e0d5c7e2d0c9e4d0cae4d2c9e3d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d3c8e2 +d1c8e3d0c9e4d0cae4d0c9e4d0c9e4d1c8e3d1c7e2d2c7e2d2c7e2d3c7e2d2c6e1d2c6e1 +d7cce5dacfe6bdb5c98b83955e576643404a353d413542413e40414d384250273b511937 +5d2a467450698b7a8ea5a2b4bfc8dbcad5e8c1c4dde8d4e7e9bcd7d07cb3b73a87bc2778 +d32e80df317fe43382d52e80c12c7bc8569be19bc4e3b7d5d7bcdad5c7e2cecae5cbcbe5 +cecae5d0c9e4d3c8e2d4c7e2d3c9e3d2c9e4d1c9e4d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d3c8e2d0c7e3 +cec9e4cec9e4cfc9e4d0c9e4d0c9e4d0c9e4d0c9e4d0cae4d2c9e4d2c9e3d3c9e3d4c7e2 +d4c7e2d4c7e2d4c7e2d3c6e1d3c8e2d1c9e3d1cae4d2cae3d4c9e2d5c7e1d5c7e2d5c6e1 +d4c6e1d1c7e2d0c9e4cecae5cdcbe6cdcbe6cfcce6d0cbe5d1c8e3d2c6e1d1c5e1cfc6e1 +d0c9e4d0cae4d0cbe5cfcae4d3cee7e3e0f07c798b4c4c5343463e4447324141263d3b1d +4d4b313c3728605855a69da2b6aaacab9a8d9f89659b84448e792d89752c8a772c8e7a2d +a28e54c0ae91d6c6c0d8cadad5cae3d4c9e3d4c7e2d4c5e1d4c3dfd4c1ded4c1ddd4c3df +d4c7e2d0cbe4d2cae3d0cae4d2c9e4d1c9e4d1c8e3d2c7e2d0c7e2d1c7e2d0c7e2d1c7e2 +d0c7e2d1c7e2d2c9e3d2c9e3d3c8e2d5c6e1d9c4dfd8c5e0d0c9e4cbcbe6cbcbe6cdcbe5 +d0c9e4d2c7e2d6c6e1e2c9e1c98ebda93678b7266bce296fd3296ec82666b2246399376d +dbcae3cacce6d3cae4dac6e0ddc2dddec0dcdabfdbdfcce4cfc3e0cec8e3cfc9e4d2c7e2 +d5c6e1d7c6e0d7c6e0d5c7e2d0cae4cfcae5d2c9e3d4c7e2d4c6e1d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d2c9e3 +d0c9e4d0cae4d0cae4d0cae4d0c9e4d1c8e3d1c7e2d2c7e2d2c7e2d2c6e1d2c6e1d4c9e3 +d4cae3c5bdd4948ea05e5767433b47403a413f3e413a3e3c3b3e3c3f3c3f43353f473344 +614b5f8c798db3a6bacbc6dbced2e5c6d1e5bcc7dfd5cfe7dfc4dee1aecfc163a6b22a7b +c42b7ad42c78e33382dc317fd12e7fc0307dd56face2a8ccdfbfdbd4c5e1cdcbe5cacce7 +cccbe5d0c9e4d4c7e2d4c6e1d2c9e3cfcae5cecbe5d1c8e3d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d3c8e2d0c9e3 +cfc9e4cfc9e4cfc9e4d0c9e4d0c9e4d0c9e4d0c9e4d0c9e4d2c9e3d2c9e3d3c8e2d3c8e2 +d3c8e2d4c7e2d4c6e1d3c6e1d3c8e2d2c9e3d2cbe3d3cae3d5c9e2d5c7e1d5c7e2d5c7e2 +d4c6e1d2c7e2d1c9e4cfcae4cdc9e4ccc8e4cdc8e4cec7e3d0c9e4d4c9e3d5cae4d0c5e1 +cdc4e1cec7e2cdc6e2cbc5e2cec9e4e0ddef7a7b8e4d50594046403b4130393d2a3b3d29 +4c4e423f3c42706a7cc7c0d8ded5e9d5c8d4cdbcb5bfaf98a99772917f508774418a784d +a5927bc7b9b1dbcdd5d8cbded6cbe3d5cae3d5c8e2d5c6e1d4c5e0d3c2ded4c2ded4c5e0 +d4c9e3d0cbe4d2cbe4d1cae3d2c9e4d1c9e4d1c8e3d1c7e2d0c7e2d1c6e2d0c7e3d1c6e2 +d0c7e2d1c7e2d0c8e3d1c8e3d3c8e2d5c6e1d9c4dfd8c5e0d2c9e3cdcbe5cccbe5cecae5 +cfc9e4d1c8e3d6c6e1e1c6dfbc7aaaaa3073ba2469d12a6fd42a6fc42867b12a6c9c4177 +e6d7e9c8cae6d0cae4d8c9e2dcc6e0dcc2ddd9c0dcdfcde4d0c3e0d0c7e3d0c8e3d4c7e2 +d4c6e1d6c5e0d6c6e1d5c7e2d0c9e4d0c9e4d4c7e2d4c6e1d4c6e1d4c6e1d3c6e1d2c7e2 +d1c8e3d1c8e3d1c8e3d2c7e2d2c7e2d4c7e2d4c7e2d4c7e2d3c8e2d2c7e2d2c9e3d0c9e4 +d0cae4cfcae4cfcae4d0c9e4d0c9e3d3c9e3d3c6e1d4c7e2d3c7e2d3c7e2d3cae4d1cae3 +c5bfd9aba8bc827f8f4f4d573f3c40413f404343424040403f40423d414542414a555260 +7c7386a99db2cfc3dadbd2e8d0cee5cacee6c3cbe4d3d1e9d3c1dee5c5ded295c2af4a8f +a9256dc72a74db317fe33382da307dc92a74cd448ee092c0e7c5ddd2bfddcec9e4cacde7 +cdcce6d0c9e4d4c6e1d6c6e1d3c8e2cccbe5cdcde6d0c9e4d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d2c9e3 +d2c9e3d2c9e3d2c9e3d2c9e3d2c9e3d2c9e3d2c9e3d2c9e3d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c9e3d3c9e3d3c9e3d4c7e2d4c7e2d4c7e2d4c7e2 +d3c8e2d3c8e2d2c9e3d1c8e3d0c9e3d0c9e3d0c9e3d2c9e3d2c9e3d3c8e2d3c8e2d1c5e1 +cfc4e1cfc6e1cfc6e2d0c7e3cfc9e4dcd8ec7e7b8e4848533c3e3f3e413a3c3f373d3e37 +444542413c476c6478c8c0d8dacfe7d3c8e0d6cadfded2e4dfd1dfccbec7b1a4aea99aa7 +b3a8b9c8bdd2d4c8e0d4c9e2d4c9e3d3c8e2d4c7e2d4c6e1d3c5e1d4c6e1d4c6e1d4c6e1 +d3c8e2d2c9e3d3c9e3d2c9e3d3c8e2d2c7e2d2c7e2d3c8e2d2c7e2d2c7e2d1c7e2d2c7e2 +d2c7e2d3c8e2d2c7e2d2c7e2d4c7e2d5c7e2d8c5e0d8c5e0d3c6e1d0c9e3cec9e4cec9e4 +cec9e4d0c9e4d5c7e2e7cae0bd76a6b13375c4296ed42a71d22971c3286fb33379a4538c +dcc7e0d0cee7cdc9e4d0c7e3d4c7e2d4c6e1d4c5e0d4c5e1d5c8e2d4c6e1d4c6e1d5c7e2 +d5c7e2d5c7e2d5c7e2d4c7e2d2c9e3d3c8e2d6c5e0d6c3dfd4c5e0d3c5e1d1c6e2d0c7e3 +cec9e4cdcae5cdc8e4cfc8e3d0c7e2d2c7e2d3c8e2d3c8e2d2c9e3d0c9e4d0cae4cfcae4 +cfcde5cecee5cecae3cec7e2d1c5e0d5c8e2d7c8e2d7c8e2d6c9e3d2c7e2cfc7e2c9c7e2 +b6b8ceafb3c2b2b6bf65696c4549443f423b3f413e40414445434a43414c4c4a5a80798e +b6afc5d3c8e1d5cae3d1c6e1d0c7e3cec7e2cec7e3d6cde5d0c0dddcc5dfdcbedab57eaf +912b6cb2266ec92970e93785e83481e22f7ecf2e7bd76eabe5b9d6d6c1ddcec7e2cccfe8 +d0d2eacfcae4d4c4e0d8c3dfd4c5e1ccc8e4d0cfe8d0c9e4d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c6e1 +d3c5e1d2c6e1d2c7e2d0c9e4d0cae4dedaec7f7d904a49563f3f433e413f3c3e3a3c3d3c +454347423a4c6a6378c8bfd7dbcee6d4c7e2d5cae4d6cbe4d7cce5d5cae4d1c6e1d1c6e1 +d4c9e3d8cde6d7cce5d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d4c7e2d5c7e2d9c6e0d9c6e0d5c7e2d1c7e2cfc8e3cfc8e3 +cec9e4d0c9e3d5c7e2e2c0dbb16395af2a6fc4286bd42a71d42c73c52a74b2367fb2669f +dcc8e1d1cce6cccbe5cdcae5d0cae4d1c9e4d2c7e2d4c6e1d5c8e2d5c6e1d5c6e1d5c7e2 +d5c7e2d4c7e2d4c7e2d3c8e2d2c9e3d4c6e1d5c6e1d6c3dfd4c5e0d3c5e1d1c7e2cfc8e3 +cdcae5cdcae5cdcae5cec9e4d0c7e2d3c8e2d4c6e1d4c7e2d3c8e2d2c9e3d0cae4cfcae4 +d4d2e9d2d0e8cecae4d0c7e2d9cde5ddcee6d8c8e2d3c4e0d4c6e1d1c7e2c7c2deb5b6cd +abb1c2bdc3cedce1e79ea1a265656241413b3c3c3a423f463f3a47524e5f858196b6afc6 +cdc6dfd6cde5d7cce5d6cbe4d3c6e1d0c3e0d1c3dfdccee5d5c6e1d7cae3d9cae3c4a7cd +a35e91a02868ca3179d82c74e22f75e92f7cde3180ce4e96d694c1ead0e4cfc3e0c5c7e3 +cbcce6d0cae4d8c5e0dbc5dfd6c6e1cdc8e4cacae5d0c9e4d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c6e1 +d3c7e2d3c8e2d2c9e3d1cae4d1cae4e1ddee807f914d4c584040443e413f3c3e3a3d3f3c +45434741394a696276c8bed6dbd0e7d2c7e1cfc4e1cdc2dfcdc2dfd2c7e2d7cce5d8cde6 +d5cae4d0c5e1cfc4e1d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d4c7e2d5c7e2d7c6e0d6c6e1d4c7e2d0c9e3cfc8e3cfc7e2 +cfc8e3d1c8e3d6c5e0e0bdd9a24f84ad296bc3266ad22a6fd32a73c52b76b0337cc47db2 +dec9e1d1cce6cccbe5cec9e4d0c9e4d1c9e4d2c7e2d4c6e1d5c8e2d5c6e1d5c6e1d5c7e2 +d5c7e2d4c7e2d4c7e2d3c8e2d2c9e3d3c8e2d4c6e1d4c6e1d4c6e1d4c7e2d1c8e3d0c9e4 +cfcae4d0c9e4d0c9e4d2c9e3d4c7e2d5c7e2d5c6e1d5c6e1d5c6e1d5c7e2d4c7e2d2c9e3 +ccc6e2cbc6e2cec8e3d1c9e4d2c6e1d0c2dfd1c1ded3c5e0d4c9e3c9c3dcbebacebbbbca +c4c4cecdcdd5eee8edc5bcbf87797b56454745373d453f4c55506180798cbab3c8d8d0e7 +d8d0e7d4c9e3d3c8e2d4c9e3d4c7e2d2c4e0d0c2dfdacee5d7c9e3d4c6e1d9cbe4dbc4df +ca94bfa63c7ab6286fd22972df2d75ea3080dd3180bf2e7cc066a3e7c1dbd9cae3c8c7e3 +cbc6e1d3c8e2d6c5e0d7c4dfd5c9e3d0cbe5cac7e3d0c9e4d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c6e1 +d3c5e1d3c7e2d2c7e2d0c9e4d1cae4e1dcee8180924d4d594041453e413f3e3f3b3e3f3e +4342463e3748676076c7bdd6dbcee6d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d3c8e2d2c7e2 +d2c7e2d1c6e1d2c7e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d4c7e2d4c7e2d6c7e1d5c7e2d1c8e3d0c9e4d0c9e3d0c7e2 +d0c7e2d3c8e2d8c5e0e4c0db9d467caf2a6dc5296dd22a6fd22972c42a74ab2d78cd8abc +dec9e1d2cde6cdcae5cec9e4d0c9e4d2c9e3d2c7e2d4c6e1d5c8e2d5c6e1d5c6e1d5c7e2 +d5c7e2d4c7e2d4c7e2d3c8e2d2c9e3d2c9e3d3c8e2d4c7e2d3c8e2d2c9e3d0c9e4d0cae4 +d0cae4d0c9e4d2c9e3d4c7e2d5c7e2d6c6e1d6c5e0d6c5e0d6c5e0d6c5e0d5c6e1d3c7e2 +cdc6e2cdc9e4d3cde6d3cae4d0c2dfd5c4dfe1cde4e1cbe2d4c1d8c5b5c5c3b6c1d4c9d2 +e2d9ded6cbcfe3d8dbd4c8cb9d8a9064515a503f4e61576a888497b4afc2d0c9e1d6cde6 +d4cbe5d2c7e2cfc4e0d0c4e0d4c7e2d5c9e3d3c4e0d5c8e2d5c6e1d1c3dfd4c6e1dfcae2 +ddb3d3bd6a9f9f2262d02e79e0317de83383d62b7ac02c78bb4b90ce90bfe7d3e7d4cfe7 +d0c4e0d4c5e1d2c3dfd0c3e0d3c9e3d4cde6ccc7e3d2c9e3d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c6e1 +d3c6e1d2c6e1d1c6e2d0c9e3d0cae4dfdbed807f914d4d594041453f413f3e3f3b3f3f3e +4342463e3547655e73c4bcd5dbd0e7d4c7e2d4c9e3d5cae4d5cae4d4c9e3d1c6e1d1c6e1 +d3c8e2d5cbe4d5cbe4d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d4c7e2d4c7e2d3c9e3d0c9e4d0c9e4d0c7e2d2c7e2 +d3c7e2d4c6e1d8c4dfe6c2db9a4179b12c70c72a6fd22a6fd22b74c42a74aa2b75d592c0 +e0c9e1d3cce5cec9e4cfc8e3d1c9e4d3c9e3d2c7e2d4c6e1d5c9e3d5c7e2d5c7e2d5c7e2 +d5c7e2d4c7e2d4c7e2d3c8e2d3c8e2d2c9e3d1c8e3d0c9e3d0c9e4d0c9e4d0cae4d0cae4 +d1c9e3d2c9e3d4c9e2d5c7e1d6c7e1d6c6e1d7c6e0d7c6e0d6c5e0d6c5e0d5c6e1d2c6e1 +cec9e4cccae4ccc8e4cfc4e1d5c3dfe1c8e0e4c3dad1abc0b98f9eb58f98c4a3a7dcbfc0 +eed6d6e0cccbe0d0d2dccdd3a896a17363716c5f738f889db7b1c7d6cee4d8cfe7d1c6e1 +d2c7e2d4c9e3d1c5e1cfc4e0d3c6e1d8cce4d6cae3d0c2dfd2c4e0d1c3e0d1c3e0d9c7e1 +e1c2ddd69ac4a63d7cc12a74da317ee13281d52a77cd307dc13985b65a98e5c7dfdbd0e7 +d5c4dfd7c6e0d1c4e0ccc4e1d1cae4d5cee7cdc6e2d2c9e3d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c6e1 +d3c5e1d1c6e1d0c6e2cec7e2cfc8e3dfdbed827f924e4e5b4040453f413f3e403c3f403e +4241453b3345625c71c4bcd5dbcee6d3c7e1d0c5e1d0c5e1d0c5e1d1c6e1d1c6e1d2c7e2 +d2c7e2d2c7e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d2c9e3d2c9e4d0c9e4d0c9e4d0c9e4d1c7e2d3c5e1 +d4c6e1d4c5e1d9c4dfe6c1db9a4079b12c70c82d72d22971d22b74c52b76aa2c76d895c2 +dfc8e1d4cbe4cfc8e3d0c9e3d2c9e3d3c9e3d2c7e2d4c6e1d5c9e3d5c7e2d5c7e2d5c7e2 +d5c7e2d4c7e2d4c7e2d3c8e2d3c8e2d2c9e3d0c9e4cfcae4cfcae4d0cae4d0cae4d1c9e3 +d3cae4d4cae3d5c9e2d6c8e1d6c7e1d6c6e1d6c5e0d6c5e0d5c5e0d4c5e1d4c5e0d2c6e1 +cbc6e3c5c5e2c9c4e1d5c7e2e3c9e1e5bad5c98fa6ad6677984b539f5657b67673cd9894 +e8bebbefcecce0caccd2c1c9a799a7867d8f948ea3b9b2c9cec7e0dbd2e9d6cde6d0c5e0 +d2c7e2d3c8e3d3c8e2d0c4e0d1c3e0d7cbe4dacde5cfc1ded1c3e0d6c9e3d3c5e0d3c4e0 +ddc7e0e1bbd8c77caead2467cd2c76d72d7ada2d7bd93283c83280b03d82d29fc8ddc8e1 +dac3ded9c6e0d4c9e3cdc8e4d0cbe5d4cde6ccc3e0d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c6e1 +d3c6e1d2c6e1d0c6e2cec7e2cfc8e3dfdbed83809350505c4042463f413f3e403c3f403f +4241453a3243625a70c4bbd3dbcee6d4c7e2d2c7e2d0c5e1cfc4e1d2c7e2d4c9e3d5cae4 +d2c7e2cec3e0cec3e0d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d2c9e3d1c9e4d0cae4d0cae4d0c9e3d2c7e2d4c6e1 +d4c5e1d6c5e0dac3dee6bfda9c447aaf2a6fc62a70d32a73d32a75c52b76ad3079d792c0 +e0c7e0d5cae4d0c9e3d1c7e2d3c9e3d3c8e2d2c7e2d4c6e1d5c9e3d5c7e2d5c7e2d5c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d3c8e2d1c8e3cfcae4cdcbe5cecae5d0cae4d0c9e4d2c9e3 +d4cae3d5cae3d5c9e2d5c9e2d5c7e1d6c8e1d5c7e2d4c6e1d3c5e1d3c5e0d3c4e0d2c6e1 +c9c5e2c6c6e3d1cae4e3cde4ebc2dbd794adab4d6098262d99221f9c2823a53d34ba635b +d59591f1c4c1d6bac0b9acb79f9cae9c9db3b5b5cecfcae4d2c9e3d3cae4d2c9e3d2c7e2 +d2c7e2d3c7e2d2c7e2d2c5e1d0c2dfd3c6e1d9cde5cfc2dfd1c4e0d8cce4d5c7e2d2c4e0 +d6c7e1dec8e1e5b7d49e2569bc256ece2a75dd317fe03383d02f7db7317db66aa2dfbdda +dec2dddac6e0d5cce5cdcbe6cecae5d3cae4cec3dfd3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c6e1 +d3c7e2d3c7e2d1c6e2cfc7e2d0cae4e2dcee83829452525e4243483f413f3e403c3f403f +42414539304161596fc4bad3dbcee6d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3d5cae4d5cae4 +d4c9e3d3c8e2d2c7e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d1c8e3d0cae4cecbe5cfcae4d0c9e4d2c7e2d4c5e1 +d5c6e1d6c5e0dac3dee3beda9f4a80ae2c6ec52a70d22b73d22b74c42a73b1317bd38abb +e2c7dfd6cae3d1c7e2d2c7e2d3c8e2d3c8e2d2c7e2d4c6e1d5c9e3d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d3c8e2d1c8e3cdc8e4cdcae5cecae5d0c9e4d2c9e3d4c7e1 +d5c9e2d5c9e2d5c9e2d4c9e2d2c9e3d1c9e4d1c8e3d1c8e3d1c6e2d1c6e1d1c5e1d1c6e1 +ccc7e3d1cce5dfcfe6e6c2dbdb9bb4bf5c6fa52329a92021b52423af2322a82221af382d +be635fe1a6a8c3a4aca89eaea1a8bfb0bdd6c5cbe6d3cee7d2c7e2cfc4e1d1c6e1d2c7e2 +d2c7e2d2c6e1d2c5e1d2c5e1d3c5e1cec0ded9cde5d3c5e1d2c5e1d8cce5d5c9e3d1c6e1 +d1c9e3d4c9e3edd3e5a64281b1256cc92a75da307de0317fd62e7cc22d7aa64081e3b3d2 +e1c1dcd6c3dfd4cde6cccce6cccae4d4cbe4d3c5e1d4c7e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c6e1 +d3c7e2d3c8e2d2c7e2d0c9e3d1cae4e2deef8583955454604345483f434040423e3f403f +43424639304160586ec4bad3dbd0e7d1c6e1cdc2dfd1c6e1d4c9e3d1c6e1ccc2dfcdc2df +d1c6e1d6cbe4d6cbe4d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d1c8e3cfcae5cdcbe5cfcae4d0c9e3d2c7e2d4c5e1 +d4c5e0d6c5e0dac4dfe3c1dba05084ab2c6ec42a70d22b74d22b73c42b72b12e7acd7db3 +e3c6dfd6c9e3d3c7e2d3c8e2d4c7e2d3c8e2d3c8e2d4c6e1d5c9e3d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d3c8e2d2c9e3cfc9e4cdc8e4cec9e4d2c7e2d4c6e1d5c7e2 +d5c7e2d5c7e1d3cae3d1cae4cfcae5cdcbe5cdcbe6cdcae5cdc8e3d0c7e2d0c7e2d2c6e1 +d5c8e2ddcae2e1bcd4cf90a7b15265a52227b32122c52625cb2825c72725bc2524ad2823 +a4332fc57f83b894a2b1a7bcb6bfdabecde8c7cee8cfc9e4d5cae4d5cbe4d2c7e2d1c6e1 +d2c7e2d3c6e1d1c4e0d3c5e1d5c7e2cbbeddd6cae4d5c7e2d2c5e1d6cae4d3c6e1d1c6e1 +cecce6c8cae4e4d3e7bc74a9a82b72c52b76d52a76de2e7add2f7ec92d79a82b71e7a7cb +e6c2dbd4c1ded0cae4cbc9e4cdc7e3d5cbe4d6cae4d4c6e1d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2cfc4e0 +d3c7e2d7cce5d4c9e3cdc6e2d1cae4e2ddee827f9252515e434548434643424540363736 +49484b403849595269c4bcd5dcd1e7d4c9e3d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d1c8e3cfcae5cdcbe5cfcae4d1c8e3d3c5e1d4c5e1 +d4c5e0d5c5e0d9c4dfe4c6de9b5284a72c6cc42c72d62d78d62c76c62973b32b78c066a3 +e7c8dfd6c6e1d6cae4d7cae4d4c7e2d4c6e1d6cbe4d6cae4d4c6e1d3c8e2d3c8e2d3c8e2 +d3c8e2d4c7e2d4c7e2d4c7e2d4c7e2d3c8e2d0c9e3cfc8e3d0c7e2d2c7e2d4c6e1d4c5e1 +d4c6e1d4c7e2d1c9e4d2d0e8c9cbe6c5c9e5ccd0e9d2d2eacac9e4cdc6e2d4cbe4d5c4df +e5c9e0eebfd2d691a0b04c599d1e20b42123c82725cd2826d52a26d42b26c22625aa2021 +9c2424a2535eba93aac6bcd6c4cde7c1cee9c6cbe6cfc9e4d3c6e1d3c6e1d3c6e1d3c6e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c6e1d3c6e1d2c7e2d3c8e2d3c8e2d3c8e2d3c9e3d1c9e4 +cdcee7cad2eacec7e2eac2db992a6fb7246cd42b77e2317ee13280d12d7bba2b76cb6ba6 +ecc8ded9c7e1cfc7e2cdc8e4d0c9e3d4c9e3d5c9e3d4c6e1d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2cfc4e0 +d2c5e1d3c9e3d3c9e3d1cae4d5cee7ddd8eb78778a4a49563a3b3e3a3c3a3e403c373838 +49484b443d4d61596fc8bfd7dcd0e7d4c7e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d1c8e3d0cae4cfcae5d0c9e4d2c7e2d4c5e1d4c5e0 +d5c6e1d4c6e1d6c6e1ddc1dcae6d9aa93573be286fd02b72d42b74ca2975b82a78bc5b9b +e9c8dfd8c7e1d5c6e1d5c7e2d5c7e2d5c7e2d7cae4d5c9e3d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d4c7e2d4c7e2d4c7e2d4c7e2d2c7e2d1c6e2d1c6e2d2c6e1d4c5e1d4c5e0d5c4df +d4c5e0d2c7e2cfc9e4c8c8e4ccd0e9cad0e9bdc6e3bec3e1d5d1e9d3c9e3cabcdbe4c8e0 +f1b7cfd88491b74648a42020b12122ca2826d12926d22a26cc2726c72725b422229b1e1f +9e2c33c27a8adeb8d2d3c2dfc4c4e1c5c9e5cbcbe5d0c7e2d3c6e1d3c6e1d3c6e1d3c6e1 +d3c6e1d3c5e1d3c5e1d3c6e1d3c6e1d3c6e1d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d0c9e4 +cbcee7c7d2ebc5c7e3e2c8e0b15e9ab92c7acf2b77dd2e7bde2f7dd92f7ecb2f7bc34c8d +efc8ded5c4dfd2c9e3d1cae4d1c7e2d3c6e1d6c9e3d4c6e1d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c6e1 +d3c7e2d2c6e1d0c6e2d2cbe5d5cee7dbd7eb7e7b8e5b5c684d4e52494a484c4d493f403e +403f433a32435c546ac3bad3dbd0e7d4c9e3d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d2c9e3d2c9e4d0c9e4d1c8e3d4c7e2d4c5e1d4c5e0 +d4c6e1d3c8e2d5c7e2d8c1ddc68db7ac3b79ba276ccd2a6fd52b73d02c78be2b7ab94f94 +ecc9dfdccae2d4c4e0d3c3dfd5c7e2d6c9e3d5c9e3d4c7e2d3c8e2d3c8e2d2c9e3d3c8e2 +d3c8e2d4c7e2d4c7e2d4c7e2d5c7e2d4c6e1d2c7e2d2c6e1d3c5e0d4c5e0d5c4dfd5c4df +d4c3dfd2c6e1cdc8e4c6c9e5c8cee8ccd4eccbd0e9c7c7e3cdc4e0dbc9e2dfc5dfe9b5d2 +dc8396c54647af2222b12222c72825cb2825c82625c82725c02624b12122a01f209c2627 +b25b68dda3b7eecde1dac6e0ccc1dfcdc6e2d1c9e4d2c7e2d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d3c6e1d3c6e1d3c7e2d2c7e2d3c8e2d3c8e2d3c8e2d2c9e3d2c9e3d2c9e3d0c9e4 +cbcde7c7d0eac3c6e3ddcbe3d297c3b83983c72b76d52a77da2d79de3180d4307db92e78 +edbed8d8c1ddd7cae4d4cbe4d2c6e1d4c5e1d5c8e2d4c6e1d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d5cae4 +d4c9e3cfc4e1cdc3e0d0c9e3d1cae4dad6eb8d8b9d82828c83838882848381827f6b6b6a +565659423a4c5d556bbfb5cedbd0e7d5cae4d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c9e3d2c9e3d4c7e2d4c6e1d4c5e1d4c5e1 +d3c7e2d0c9e4d1c9e4d6c7e1d6a7ccab3f7ab62568cd2a6fd92c75d52b7ac32c7ab7468d +e9c3dbe0cbe3d4c3dfd2c2dfd5c6e1d6c9e3d4c6e1d5c9e3d3c8e2d2c9e3d2c9e3d3c8e2 +d3c8e2d4c7e2d4c7e2d4c7e2d5c7e2d5c7e2d2c7e2d2c7e2d4c6e1d4c5e0d5c4dfd5c2de +d4c3dfd1c6e2cdc8e4cbcce6c8cde7cbd0e9d0d2ead2cbe4d6c1dceecde1e7b8d4cc7f9a +c34955bd2724be2424c52725cf2926c72725be2424ba2423ab21229e1f1fa13032b8626d +d596a8ebbcd3e8cbe1dbc6e0d4c3dfd4c6e1d4c6e1d3c5e1d5c7e2d5c7e2d5c7e2d5c7e2 +d5c7e2d4c6e1d4c6e1d3c6e1d3c8e2d3c8e2d3c8e2d3c8e2d2c9e3d2c9e3d2c9e3d0c9e4 +cccce6c8cce7c7c9e5d9cce4e7bdd8b3468aba2671cd2a75d82d78e03280d9307cb8276f +dfa1c8ddc3dddacde5d5cae3d3c6e1d4c6e1d5c5e0d4c6e1d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d6cae4 +d4c9e3d0c5e1cec4e0d0c9e4cec8e3d9d5ea9c9aaca2a1abb4b3b6bcbebcbcbdb9a7a9a8 +8c898d6a6473726b7fc1b8d1dbd0e7d7cbe4d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d4c7e2d4c7e2d4c7e2d5c7e2d4c6e1d4c5e1d4c5e1 +d2c7e2cdcae5cdcbe5d5cae3ddb5d4a6427ab12366cd2970dc2d78d92d7ac52b77b73c87 +e2b3d3e1cae2d5c3dfd2c1ded6c7e1d7cae3d2c5e1d5c9e3d3c8e2d2c9e3d2c9e3d3c8e2 +d3c8e2d4c7e2d4c7e2d4c7e2d5c7e2d5c7e2d4c6e1d4c7e2d4c6e1d5c6e1d5c4dfd5c4df +d3c4e0d2c6e1cec8e3cdcce6cccee7cbcae4cec6dfdac6deefcee1f3bbd1cc7f98af4155 +b62627c52725cb2726c92725c82725c52725b22122a31f20961d1e9c353eb56876d39cae +ecc1d6e6c8dfd9c1ddd7c3dfd8c7e1d7c6e0d5c6e1d4c6e1d4c6e1d4c6e1d4c6e1d5c7e2 +d5c7e2d4c6e1d4c7e2d4c7e2d3c8e2d3c8e2d2c9e3d2c9e3d2c9e3d2c9e3d1c8e3d0c9e4 +cec9e4cacae5cdcbe5d6cbe4edcfe2af5392ae2770c52a73d72d78e12f7cd92d79be2972 +c576aae3c2dcdecde5d3c7e2d3c6e1d8c8e2d3c3dfd5c7e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d4c7e2 +d3c7e2d2c6e1d2c7e2d3cce5cec8e3d9d5eaa2a0b2b0b1b9c8c9cbd6d8d6dddfdbd3d3d2 +bcbbbd9c96a3918b9ec8bed6dbcee6d6cbe4d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d4c7e2d4c7e2d5c7e2d6c6e1d5c5e0d5c5e0d4c5e0d4c5e1 +d0c8e3cacbe6cacde7d1cbe4ddbcd8a8487faf2467cc2a70de2d78da2b78c82c76b53480 +d29cc6ddc4ded7c4dfd3c2dfd6c7e1d7cae3d1c4e0d7cae4d2c7e2d2c9e3d2c9e3d3c8e2 +d3c8e2d4c7e2d4c7e2d4c7e2d5c7e2d5c7e2d3c8e2d3c9e3d4c7e2d4c6e1d4c5e0d5c4df +d3c4e0d2c6e1cfc7e2cdc9e4cecae5d0c7e2d7c4dcebc7d9f5c1d2d78597af3e51a72126 +b92223cc2726cf2826c52625bf2424bc2626a21e2191191e942d41b2697fcf9cb3e0bdd6 +e9d1e5decbe3d2c1ded3c4e0d7c6e1d6c5e0d5c4e0d6c6e1d5c6e1d5c6e1d5c6e1d5c7e2 +d5c7e2d4c7e2d4c7e2d4c7e2d3c8e2d3c8e2d2c9e3d2c9e3d2c9e3d2c9e3d1c8e3d0c9e4 +cfc8e3cec7e2d4cbe5d4c9e3ebd0e4b369a0a92e74c02871d72d77df2d78d72b75c7317a +ae508ae6bdd8e1cde4d0c5e0d2c6e1d9c9e3d3c1ded5c7e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d2c5e1 +d2c5e1d3c8e2d3cae4d5cee6cfc8e3d9d5eaa2a0b2b0b1bbc5c5c8cfd1d0dbddd9dfe0df +d5d5d7bfbac5a8a4b5ccc4dcd7cce5d5cae3d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d4c7e2d5c7e2d6c6e1d8c5e0d7c4dfd6c5e0d4c5e0d4c5e1 +cfc8e3c8cce7c6cee7cbcbe4dcbfdbb25a8fb42a6ecb286fde2d76dd2d78cb2b76b22b79 +bc7db3d8bedbd9c6e0d5c4dfd6c7e1d6c7e2d0c2dfd8cce5d1c6e1d2c9e3d2c9e3d2c9e3 +d3c8e2d4c7e2d4c7e2d4c7e2d5c6e1d5c7e2d2c9e3d1cae4d3cae3d5c7e2d6c5e0d4c5e0 +d4c5e0d2c6e1d0c7e2cec7e3cdc4e0d7c7e0eacddff1bfcfd78b99ae3c49a92025b92224 +c12424c92825cb2825c02424b52123ac2126961a23962c48af6082d19bbbe2c0dbddc8e1 +d9cde5d4cbe4d0c7e3d0c7e2d2c7e2d4c6e1d4c6e1d6c7e1d5c7e2d5c6e1d5c7e2d5c7e2 +d5c7e2d4c7e2d4c7e2d4c7e2d3c8e2d3c8e2d2c9e3d2c9e3d1c8e3d1c8e3d1c8e3d0c9e3 +d0c7e2d2c7e2d5c9e3d4c5e1e4cce2c489baa8407fb7266dd62c76de2d75d52b73ca367e +a13775e3b1d1e0c9e1d0c6e2d1c6e1d9c8e2d5c1ddd5c7e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c6e1 +d3c6e1d3c8e3d3cae4d3cce5cec7e2dbd7eba2a0b2adadb7bfc1c3c9cac8cfcfccd6d5d4 +d6d5d6ccc6d1b3adbecbc3dbd5cae3d4c9e3d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d4c7e2d5c7e2d6c6e1d8c5e0d8c5e0d7c4dfd5c4e0d4c6e1 +cec9e4c6cde7c3cfe9c6cbe4ddc4dec575a5bb3679ca296fdc2e75e12f7bd32c7bb22774 +a8609bd5b6d7dcc8e1d8c6e1d6c6e1d6c6e1cfc2dfd9cee6d0c5e1d2c7e2d2c9e3d2c9e3 +d2c9e3d3c8e2d4c7e2d4c7e2d5c6e1d4c7e2d1cae3d1cce3d2cbe3d4c7e1d5c7e2d6c5e0 +d4c5e0d4c6e1d3c7e2d1c6e1d4c4dfe1c7dde9bed0d693a0ac434c9f1d1fbb2324ca2826 +c52625c12624c02624ba2423aa20219a1a229d2c4cbb668cd89bc1e5bdd9e3cbe2d6c7e2 +cec7e2cdcbe5cecde7cacae5cbcbe4cfcbe4d2c9e3d6c7e1d6c6e1d5c7e2d6c7e1d5c7e2 +d5c7e2d4c7e2d4c7e2d4c7e2d3c9e3d3c9e3d2c9e3d2c9e3d1c9e4d0c9e3d0c9e3d0c7e2 +d3c8e2d4c6e1d2c3dfd2c3dfddc8e1d9afd1ac548daf256ad42c73df2e74d42d75c53179 +a23072dd9fc7dec5dfd1c8e3d0c6e2d7c4dfd7c3dfd4c6e1d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d4c7e2d5c9e3 +d5c9e3d5c9e3d2c7e2d0c7e2ccc6e1ddd7eca5a3b4adadb6cacbced7d8d6d2d3ced0cfcc +d0cececbc5ceb3adbec9c1d9d4c9e2d4c9e3d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d4c7e2d4c7e2d5c7e2d6c6e1d7c4dfd7c3dfd7c3dfd4c5e1 +cfc8e3c6cce7c2cfe9c3cbe4e0cee4d491bdbd4786c2286fd72c75e3317ede317fbd2773 +a44788d7abcfe0c7e0dac7e1d6c7e1d4c6e1d0c2dfdbcde5d2c4e0d3c7e2d1c9e4d0cae4 +d0cae4d1c8e3d3c8e2d4c7e2d4c7e2d3c9e3d0cbe3d1cce2d0cbe3d1c9e3d4c7e2d4c5e1 +d4c5e0d5c4e0d6c5e0d7c4dfe7cee3e6bfd1c88795a34048a32121bc2424c92526cb2726 +c82725bf2524b52323aa2021981a1f8b192fba6688e4a9cce9c3dce2c7dfd8c5e0d3c6e1 +cfc7e2cbc9e4c9cae5c9cbe5cacee6cdcee5d1cbe4d5c7e2d5c7e2d5c7e2d5c7e2d5c7e2 +d5c7e2d4c7e2d4c7e2d4c7e2d3c9e3d3c8e2d3c8e2d2c9e3d2c9e3d2c9e3d2c9e3d2c7e2 +d3c7e2d5c8e2cfbfddd2c3dfdbc7e1eacce1af6499a82466d12a70de2e75d52d78c02a72 +ac3376d58fbedebfdbd5cbe4d0c6e2d3c1ded9c7e1d5c7e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2 +d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3 +d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3 +d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3 +d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3 +d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3 +d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3 +d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3 +d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d5c7e2 +d5c6e1d4c6e1d6c9e3d5c7e2d4c9e3d5cce5a9a4baa7a6b3bfbfc3d1d1cdd6d7cfd8d7d0 +d3d2cfc2bdc4aeaabacec6dfd4cae4d2c6e1d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c9e3d0cae4cdcde6d0cbe5d7c6e0dbc3dedcc2dddac4df +d5c7e2cacde7c4d0e9c2cee7d7cde6e1b5d4b4558faf266bcc2b71dc2e75e52e78d52c79 +ae2b78ca7eb5dcb5d5d9c7e1d0c7e3d0c7e2d5c7e2d9c5e0dbc6e0d6cae3d1cbe4cecee6 +cdcde6d0cbe5d3cae4d4c9e3d1cae4d0cbe4d6d1e8ccc7dec8c6e0cdcbe6d4cde6d0c4e0 +d3c2deddc6dfdcbddaf0d1e4e9bccdc5838ca64343a22220bd2424cd2726d32a26d72a26 +c62525b82223ac2128991c278b1d34a9607ce2b4d0ebcfe3dac5dfd3c1ded4c5e0d4c5e1 +d4c6e1d3c8e2d1c9e4cfcbe5cbcde6cbcee6cfcde6d4c9e3d5c8e2d5c8e2d5c9e3d5c9e3 +d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d4c9e3d4c9e3d4c9e3d4c9e3d4c9e3 +d2c7e2cec4e0d2c9e3d3c6e1d5c3dfebd0e3b470a1a52768c82669d82d73d22d77c12a72 +b12f76ca74acdcb4d4dccde5d5cce5d3c4e0d2c3dfd5c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3 +d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3 +d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3 +d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3 +d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3 +d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3 +d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3 +d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d5c7e2d5c6e1 +d4c5e1d4c5e1d5c7e2d4c6e1d5c7e2d5cce5aca5bcaba6b4c0bfc3d1d1ccd6d7cdd8d7ce +d4d2cec2bdc4aeaabacec6e1d4c9e3d2c6e1d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c9e3d0cae4cacee7cbcce6d6c7e1dbc3dedcc2dddac3de +d5c8e2cbcde7c5cfe8c4cee8d4cde6dbb8d7b86a9eab2f73c1286edc2e78e92d79da2c74 +ba2877c564a5e0b0d1ddc7e0cec4e0cec7e2d7cce5d8c4dfd9c3ded6c7e2d2cbe4cecde6 +cdcde6d0cbe5d4c9e3d4c9e3d1cae4d0cbe5cbc5dfd5d0e8d5d1e9cbc7e3c9c3e0d4c7e2 +d1bedcd6b7d7f0d0e3e6b2c8c37b88a74245a12420af2322c12424cd2826d52a26ce2826 +c72728ab2025921a1d9a2e46c57e93e9bcd2ddc5ded3c4e0d4cae4d4cae4d3c5e1d4c5e1 +d5c4e0d5c6e1d5c7e2d1cae4cdcde6cccee7d0cbe5d4c9e3d5c9e3d5c9e3d5c9e3d5c9e3 +d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d4c9e3 +d2c7e2d0c7e3d3cbe5d4cae4d6c7e1ecd3e6b678a7a62c6ec7296dd72c75d12e76c12970 +b02a70c769a3daaaced9c7e1d3c9e3d3c5e1d2c4e0d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3 +d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3 +d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3 +d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3 +d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3 +d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3 +d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3 +d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d5c7e2d4c6e1 +d3c4e0d3c4e0d4c6e1d4c6e1d5c7e2d6cde6aea5bdada9b6c1c0c3d1d1ccd6d7cdd8d7ce +d4d2cec2bdc4aeaabacec6e1d4c9e3d2c6e1d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c9e3d0cae4cbcde7cdcbe6d5c6e1dac4dfdbc3dedac5df +d5c8e2cccce6c7cde7c6cee7d4cde6dbbad8c882b2b13f7db9266bda307be9317bd92c70 +c12b79bb4890dda1c8e1c2dcd2c2dfcec5e1d7cee6d5c6e0d3c0ddd6c8e1d4c9e3d1cae4 +d0cbe5d2cae4d5c9e3d5c7e2d5c9e3d3cae4cbc6e1d1cbe5d5cde6d3c6e1cfc0ded0c2df +dac8e2e0c1dce6b6cfc7788caa3a47a32021af2222bf2824b72323c12424d22a26c52425 +af2122a1212fa53d54c3768beab4c9f2d4e5dacbe3cdc4e0d0cbe5d3cae4d3c6e1d4c5e1 +d6c5e0d6c5e0d5c6e1d4c9e3d0cbe5cfcbe5d0cbe5d4c9e3d5c9e3d5c9e3d5c9e3d5c9e3 +d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d5c9e3d4c9e3 +d3c9e3d3c9e3d4cce5d3cce5d6cae3ebd5e7b97fada83073c5286ed72e76d32d77c52c72 +b0276ec2609cd8a4cbd8c4dfd2c7e2d2c6e1d3c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d5c7e2d4c5e1 +d3c3dfd3c3dfd4c5e1d3c5e1d5c7e2d7cee6afa7bfafabb8c2c0c4d1d1ccd6d7cdd8d7ce +d4d2cec2bdc4aeaabacec6e1d4c9e3d2c6e1d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d1c9e4cecbe5cfcae5d5c7e2d8c5e0d8c5e0d7c5e0 +d4c6e1cecae5cacbe6cacce6d6cce5dcbddad599c4b54f8aae2466d32e7ae5327ddb2b71 +c92d7cb73582d283b7e4b8d5ddc4ded0c4e0d4cde6d3c8e2d0c3e0d5c7e2d5c7e2d3c9e3 +d2c9e3d3c9e3d5c7e2d4c6e1d6c5e0d4c6e1d0c7e3cec7e2d3c6e1d6c5e0d6c3ded6c4df +e8d1e5dfb5cdbb7589af4251a92425b02122c02625c62925b52423ba2423c62725ae2122 +9d1d21aa445bcf869deab5cbe9c5d9dbc6dcd5cee5d1cee7cbc9e4cec7e3d2c7e2d4c5e1 +d7c4dfd7c4dfd6c5e0d5c7e2d1c9e4d0cae4d1c9e4d4c9e3d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c6e1d3c6e1d4cae4d0cae4d3c8e2e6d3e7ba85b1a83475c1276cd52b74d52d77c92b75 +b5276ec05897daa3cadbc5dfd4c7e2d2c9e3d3cae4d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d5c7e2d4c5e1 +d3c4e0d3c3dfd4c5e1d3c5e1d5c7e2d8cfe7afa9c0b0acb9c3c1c4d1d1ccd6d7cdd8d7ce +d4d2cec2bdc4aeaabacec6e1d4c9e3d2c6e1d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d2c9e3d0c9e4d0c9e4d4c7e2d5c7e2d5c6e1d5c6e1 +d3c6e1d0c9e3cec9e4cdc8e4d6cae3dcc1dcdfaccfba6098a72568c82d75de2f7bdc2d76 +d02f7dbe2e7dc660a0e0a6cbe4c6ded2c3dfcfc9e4d0cae4cec7e3d4c6e1d4c6e1d4c6e1 +d3c6e1d3c7e2d3c7e2d4c5e1d6c3ded6c3ded1c3dfd2c7e2d5c7e2d7c5e0dcc6e0e5cae1 +e7bed5c17d8fa03644ac2729b72323bf2424c52725c72725bc2624b32423ad2222991d1e +a64253c68199e5b6ceefcfe2dcc7dcc8c0d7d0d0e7d1d3eac8cae4cac6e2d3c8e2d5c5e0 +d7c4dfd7c3dfd8c4dfd6c6e1d4c7e2d1c8e3d2c9e3d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c6e1d3c3dfd4c6e1cec8e3cfc7e2e1d0e6ba89b4a83978bc2669d22971d72c76cf2d77 +ba2671c15393dda5cbdec6e0d4c9e3d1cae4d1cae4d2c9e3d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d5c7e2d4c6e1 +d3c4e0d3c4e0d4c5e1d3c5e1d5c7e2d8cfe7afa9c0b0adbbc3c3c5d1d1ccd6d7cdd8d7ce +d4d2cec2bdc4aeaabacec6e1d4c9e3d2c6e1d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d3c8e2d3c8e2d2c7e2d3c8e2d3c8e2d3c6e1 +d3c6e1d3c7e2d2c7e2d0c6e2d6c7e2dbc4dee2b9d6c477abaa3174b9266fd42d78de307a +d52d7ccb317fbf3f87d88abbe8c0dad8c3decac5e1cbcce6cccce6d2c7e2d3c5e1d4c5e1 +d3c5e1d2c7e2d1c6e2d3c5e1d7c2ded9c1ddd3bfdcd9c7e1dac9e3dac6e0dfc3dee2b6cf +c78598a33842a32021b72423c52725c82625c62625c52625bd2624a51f20971e1f98343e +c48498dfb5cfe0c7dedecce2d1cae3c8cbe2cad1e8cbd2eac8cbe5cccae4d3c8e2d6c5e0 +d8c3dfd9c4dfd8c4dfd6c5e0d5c7e2d3c8e2d3c8e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c6e1 +d4c5e1d4c3dfd5c6e1cec9e4cdc8e2ddd0e6bd90b9a9417db82568d12a6fd62b74d22c76 +bd2972bf4f8fe0a6cbe3c9e1d4c9e3cecae5cecbe5d2c9e3d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d5c7e2d5c7e2 +d4c5e1d3c4e0d4c5e1d3c5e1d5c7e2d8cfe7afa9c0b1adbbc4c3c6d1d1ccd6d7cdd8d7ce +d4d2cec2bdc4aeaabacec6e1d4c9e3d2c6e1d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c6e1d4c6e1d4c6e1d1c7e2d0c9e3cfc8e3d0c7e3 +d3c7e2d4c5e1d4c5e1d4c5e1d8c7e1dbc5dfe1bfdad091bfb4508cae286ec92c74db307c +d92d7ad63181c12d79d468a7e7accee0c1dccbc2e0c7cbe6c9cfe8cfc8e3d2c6e1d2c5e1 +d2c6e1cfc6e2cdc6e2d1c6e1d6c1ded9c0dcdcc1dcdac1ddddc4dedfc3ddd9aec8bf7c8f +a13a47a42020b82323c12624c82625cc2826c92825c12624b12122971d1e9a3b43b57887 +d9b3cde2cce3d5c7e1cec8e3cbcde5c8cfe8c5cfe6c5cce5cacde6cfcae4d4c6e1d5c4e0 +d8c3dfdac3ded8c3dfd5c4e0d4c5e1d3c7e2d3c7e2d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c5e0d7c3dfd6c6e1cfcae4cccae4ded1e7c198bfab4983b7266acf296fd62a70d42c76 +be2971bb4789dfa4cae4c9e1d2c7e2cac9e4cacae5d2c9e3d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d5c7e2d6c7e2 +d6c7e1d4c5e1d4c6e1d3c5e1d5c7e2d8cee6afa9c0b0aebbc4c3c6d1d1ccd6d7cdd8d7ce +d4d2cec2bdc4aeaabacec6e1d4c9e3d2c6e1d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d5c7e2d6c5e0d4c5e1d0c7e3cdc9e4cccae5cec9e4 +d2c7e2d5c4e0d7c4dfd9c6e0d8c5e0d8c5e0dec1dcdcaacec472a8a62c70bc266fd42d7b +db2d78de3180cd2b78cd4891df8dbce8c2dbd3c4e0c2c8e5c5d0e9cdc9e4d0c6e2d1c5e1 +d0c7e2ccc8e4cacae5cdc8e3d6c3dedbc0dce1c3dde0bdd9deb8d7d7a9c4bc798e9b313f +9d1e1fc22725cb2825c82625c92725cd2a26c92825b52323a01e20a53a4ec08296d6b5cb +dac7e0d6cbe4d0cbe5cbcbe6c8cce7c3cbe5c2cbe4c7cbe5cccce5d1c9e3d5c7e1d7c5e0 +d8c4dfdac3ded8c3dfd5c4e0d4c5e1d3c7e2d3c7e2d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d5c4e0d7c3dfd7c6e0cecce6cacae4ddd0e7c59cc3ae4e87b5256ace296fd82a70d72b75 +be2670b74184dfa2c9e3c7dfd0c7e2c9cae5c9cbe6d0c9e4d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d5c7e2d6c7e2 +d6c7e2d5c6e1d5c7e2d3c5e1d4c6e1d7cee6afa9c0b0adbbc3c1c5d1d1ccd6d7cdd8d7ce +d4d2cec2bdc4aeaabacec6e1d4c9e3d2c6e1d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d5c7e2d6c6e1d7c4dfd6c5e0d0c7e3cbcae5cacae5cdc9e4 +d2c6e1d6c4dfd7c2dedbc6e0d7c3dfd5c4dfd8c0dde3bedad18fbea03274af256ccb2c77 +da2c74e22f7bda317eca3280d36face9c0daddc7e0c3c3e1c3cce7cbc9e4cec7e2cec7e2 +cdc8e4cacae5c7cbe6cac9e4d5c4dfddbfdbe0b9d7efc5dce8b1cebc748a9428389a1c1f +bd2724d12926ce2826d22b26cc2826c22625b12222961b1d8f1a2aca859cefcce1dfcce4 +d4c9e3cdc8e3cac7e3cac9e4cbcce6cbcee8cacde7cbcbe5cfcae4d3c9e3d6c7e1d9c5e0 +d9c4dfd8c4dfd7c4dfd6c5e0d4c6e1d3c7e2d3c7e2d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d6c4dfd9c3ded8c5e0cdcbe5cacae4dacde5c79cc4af5089b32468ce296fda2b71da2d78 +be2870b43f81dea1c8e3c7dfd2c7e2cacce6cacce7d0c9e4d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2d4c7e2 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d6c7e1 +d6c7e1d4c5e1d4c5e1d3c5e1d4c6e1d8cee6b2abc2b3afbdc3c3c5d0cfcad6d7cddad9cf +d7d6d2bfbbc3a7a1b4cac1dcd4c9e3d3c7e2d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d5c6e1d7c4dfd6c5e0d0c9e3cbcae5cacae5cdc9e4 +d2c6e1d6c4dfd7c2dedbc7e1d2bddbd6c6e1dbcae3e3c6dfdfadcfc473a9a62c71b9256e +d62b74e7337ce63381cc2b75be3781ca77b0dfb9d7d2c6e1cdcfe8cac6e2d0cbe5cdc9e4 +c7c7e4c7cbe6cdd4ecd0d0e8d2c1dedfc0dbf2cadfeab0c7c66f84a72f40a92021b62323 +be2424d52d26d62c26d42b26c42625aa1f21951c1d95303fb3788fdfbfd9e5d0e5d3c3df +cfc4e0cfc6e1cdc6e2cdc6e2cdc6e2cec8e3cfc9e4d1c7e1d4c6e1d6c6e1d8c6e0d9c5e0 +d9c5e0d8c4dfd6c5e0d4c6e1d3c7e2d1c6e2d1c6e2d3c7e2d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d5c3dfd8c0ddd6c4dfd3d1e8c8c4e1e0cce3ba87b3a13976ae2264cd2a6fdf2e77d32a6f +b7266dc55e9be3abcee6cce2d1c6e2c1c3e1cbcde7d0c9e3d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d6c7e1 +d6c7e1d4c5e1d4c5e1d3c5e1d4c6e1d8cfe7b0aac1b3afbcc4c3c6d0cfcad6d7cddad9cf +d7d6d2c0bcc4a8a2b4cac1dcd4c9e3d3c8e2d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c5e1d7c4dfd6c5e0d0c9e3cccae5cbcae5cec9e4 +d2c6e1d6c4dfd7c2ded9c5e0d4c1ded4c6e1d6c6e1dec5dfdfb6d5d08fbeb04d8cab266b +d62d79df2d75e12e78d62b7ac73382c55b9fdaa0c8e8cfe4cac1dfd2cbe5c4bfdfc5c2e1 +cfcfe8ced0e9c5c8e2cec9e2ead4e6f2cde0d39cafae5b6ba6323db02329b92223c72725 +d62e26c12424c62625c52725b121229e2020a33f4bbe8196d5b8d2d6cae3d5c7e2d6c9e3 +d1c6e1d0c5e1d0c5e1d0c5e1d0c5e1d3c7e2d4c6e1d4c6e1d6c6e1d8c6e0d8c5e0d8c5e0 +d8c5e0d6c5e0d4c6e1d4c6e1d2c7e2d1c7e2d1c7e2d3c7e2d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d6c5e0dcc6e0d8c6e1d0cee7c7c1dee6cfe4bb80aea03573b4266bcf2a72d92c6fd22a6f +b52870c3629ee2adcfe1c6dfd1c6e2c7c9e5cacce6d0c9e3d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d6c7e1 +d6c7e1d4c5e1d4c5e1d3c5e1d4c6e1d7cee6b0a9c1b1adbbc3c3c5d0cfcad6d6cddad9cf +d6d5d0c2bdc4a9a3b4cac2dcd4c9e3d3c8e2d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d5c4e0d5c6e1d1c7e2cfc9e4cec9e4d0c7e3 +d3c6e1d5c4dfd6c3ded4c1ded7c6e0d4c5e1d2c3dfdac3dee2c0dbdcaacec277ada22e72 +ca2f76d92c74de2d75dc317ecf3181c23e8cce78b1ebc2dbd6bfdcd5c7e2cac2e0cdc8e4 +d0cee7cecae3cbc3d9decbe0efcce0dea8baae5e6a99272aa02020b82323ca2826cd2826 +ce2926c82725bd2424a31e209f2522b04e5bc7879bd9b5cfdacbe4d1cae4cfc6e2d4c9e3 +d3c6e1d2c3dfd3c3dfd3c3dfd3c4e0d5c4dfd5c4e0d5c4e0d6c5e0d7c4dfd6c5e0d6c5e0 +d6c5e0d6c6e1d4c6e1d3c7e2d1c7e2d1c7e2d1c7e2d3c7e2d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d6c5e0dac5dfd5c4e0cccae5cac1ddebd2e5b977a59f2c6db8276cce2970d62b6cd22b74 +b22a72c46ea6e2b2d2ddc4ded0c6e2cdcee7c8c8e4d0c9e3d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d5c7e2 +d5c6e1d4c5e1d4c5e1d3c5e1d4c6e1d7cee6afa8c0b0adbbc3c1c5d0cfcad5d5ccd9d8cf +d6d5d0c3bec5aba5b6cbc2dcd4cae4d3c8e2d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c7e2d1c7e2d1c6e2d2c7e2 +d3c5e1d4c5e0d5c4dfcfbedcd8c9e3d3c4e0d2c3dfd8c3dedfc3dde3bed9d59dc7a94b88 +b6276ad32e77dc3079dc2f7dd22f7fc62f81c54e99dd9ac4e5c1dbd8c0dcd7cbe4d4cae4 +d0c5ded4c4dbe6cbddebc5d7cf99acb363729e2d32a72522b02322be2524cd2a26cd2926 +c02424c62725ad2022921a1ca54855cc8ea2e0bdd5dac8e2cfc5e1cec8e3d1cae4cec6e2 +d1c3e0d3c4e0d4c3dfd4c3dfd6c2ded7c3dfd8c3dfd7c4dfd6c5e0d6c5e0d6c5e0d5c6e1 +d4c6e1d4c6e1d4c6e1d3c7e2d3c7e2d3c7e2d3c7e2d3c7e2d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d3c4e0d5c2ded3c3dfccc8e4d4c6e0eed4e6b86da09f2669ba256ccc2a6ed72a6fd22d78 +a82b6fcd83b5e3bad7dac3ded0c5e1d0cde6c8c6e3d0c7e3d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d5c7e2 +d5c6e1d4c5e1d4c6e1d3c5e1d4c6e1d6cde6afa7bfb0acb9c3c1c5d1d0ccd4d4ccd8d7ce +d6d5d0c3bec5ada6b7ccc3ded5cae4d4c7e2d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c7e2d3c8e2d4c6e1d4c6e1d4c6e1d4c6e1d4c5e1 +d4c5e1d4c5e1d3c5e1ccbeddd7cbe4d4c5e1d5c4e0d8c3dfdcc2dde0c3dddfb9d7b975a8 +a32566c52f74d52e7bd92e7cd62e7ece2d7ec73487ce65a7e5b0d0dfbcd9e0cbe2d8c6e0 +d6c0d8e6c6daf4c8d9de9eb0a44e619a2835a72121ba2724c12725bf2624c32725c72825 +ba2324a721219b1d20a34555bb8296d6b6cfe1cfe5d5cae4cbc0ded0c6e2d2cae4cdc5e1 +cfc4e0d4c5e0d5c4dfd6c4dfd7c3dfd8c3dfd8c3dfd6c4dfd5c4e0d5c6e1d4c6e1d4c6e1 +d4c6e1d3c7e2d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c5e1d2c3dfd4c5e1cec9e4dfcee5edcce1b96299a72569be286fcd2a6ed82b72ce2d78 +972565d699c4e4c2dcd8c4dfd0c5e1d0cbe5cbc6e3d1c7e2d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d5c6e1 +d4c5e1d4c5e1d4c6e1d3c5e1d4c6e1d6cde6aea7bdaeaab7c3c1c4d1d0ccd4d4ccd8d7ce +d6d5d0c4c0c7ada8b9cdc4dfd6cbe4d4c7e2d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d3c7e2d2c7e2d0c9e3d2c7e2d4c5e1d5c4e0d5c4e0d5c4e0 +d4c5e1d1c6e1cfc6e2c9c2dfd4cae4d4c6e1d8c7e1d7c3dfd7bfdcd9c3deddc7e0cfa1c9 +a73e79ad2568c62b74d52e7edd2f80db2f80d32f84c73d8ed47cb3e4b4d3e3c5dee0c5dd +e9c5d9f1c0d2e6a1b3c05c6f931b25a52023ba2323c52725c52725ba2423b12222bc2724 +b123228a191a9e3b4cc88da4d1b5d0d0c4dfd0cae4d1cae4d4c5e1d3c4e0d0c6e2d0c9e3 +d3c7e2d4c6e1d5c6e0d6c5e0d6c5e0d6c5e0d6c4dfd5c4e0d4c5e1d3c5e1d2c7e2d1c6e2 +d1c6e2d2c7e2d4c6e1d4c6e1d5c4e0d5c4e0d4c5e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c7e2cec8e3e5d1e6e5b0d1b7518ead266ac52b73cf296fd62a71c52970 +8b2160dfaccfe3c8e0d7c6e0d1c6e1d0c9e3d0c9e3d3c7e2d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c5e1d4c5e1d4c6e1d3c5e1d4c6e1d6cde5aea5bdada9b7c2c0c4d1d0ccd4d4cbd7d6cd +d6d5d0c5c0c7afa9bacec6e1d6cce5d4c7e2d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d3c7e2d1c7e2cfc9e4d0c9e3d5c6e1d7c3dfd8c3dfd6c3de +d3c4e0d0c7e2cdc8e4cac5e2d0c9e3d5c8e2d8c7e1d7c2ded4bfdcd3c1ded6c9e3ddc0dc +bd6e9f9f2a66b6266bd22f7ee23384e63182e43488d13186b83d88dc9cc6e8bed9f4d0e1 +f6c7d9e299abc2556aa72231a71e21ba2324c72525d22826c92725b82323ae2122aa2221 +961c1e9d3c4cc6879dddbcd6d7cbe4cdc9e4cac9e4cdc8e4d1c5e1d0c0ded3c5e0d7cbe4 +d5cae3d4c8e1d5c8e2d5c7e1d5c6e0d5c6e1d4c5e0d4c5e1d3c6e1d1c6e2d0c7e2cfc7e2 +d0c7e3d1c7e2d4c6e1d5c4e0d7c4dfd7c4dfd5c4e0d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d3c9e3d1c8e3cac3e0e6cfe4ca83b5ac3679b12468c62b72cf296fd22a6eba2566 +8f2e6be0b8d6e1c9e1d5c6e0d3c7e2d3c8e2d3c9e3d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c5e1d4c5e1d4c6e1d3c5e1d4c6e1d5cce5ada5bcada8b7c2c0c4d2d2cdd4d4cbd7d6cd +d6d5d0c6c1c8afaabacfc6e1d7cce5d4c7e2d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d3c7e2d0c7e3cccbe5cfc9e3d5c4e0d9c3dedac1ddd8c3de +d4c5e1cec7e2cbc9e4cbc9e4cec7e2d6c7e2d6c2ded7c0ddd8c4dfd4c5e1cac3e1decce4 +daa0c8b34e86b0296fc92d79e13282ea3284ea3386dd3185b52775c06ba1e5b1d1f6cade +e3a5babb566ea41e29b12022c3262ac62425cf2826de2f25d32a26bf2424b022229a1f1f +903437d6a4b2eacbe0d8c5e0d2c7e2d3cde6d0cbe5c8c4e1c4bfdecdc3e0d9c8e1ddc9e0 +d7cae0d2cae0d1cae3d2cae3d4c8e2d4c6e1d4c6e1d1c6e2d0c7e2cec7e2cdc6e2cdc6e2 +cdc8e3d0c7e3d4c6e1d5c4e0d8c3dfd9c4dfd6c4dfd4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c7e2 +d2c7e2d0c7e3cfc7e2c9c2e0e9cfe3ab5892a02467b6266ac6286fcd2a6dd22a6db62364 +a8548be0bfdbdcc9e2d1c4e0d4c7e2d6cbe4d3c5e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c7e2 +d4c6e1d4c6e1d4c7e2d2c7e2d2c9e3d4cde6aca5bbaca8b5bfc1c6ccd3d2ced7d3cfd7d3 +d0d6d4c7c1c5b3aab9d0c7e0d7cce5d4c7e2d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d3c7e2d0c7e3cec9e4d0c9e3d6c5e0d8c4dfd9c3ded8c3df +d4c5e1cfc7e2cccae4cdcbe6cec7e3d6c9e3d2bfdcd5c0dddacae3d7cce5c3bfdfd8cce5 +e6c1dbd590beac4483ae2770ce2e7ee73586e6307be43280d73583b03773dd88afe695af +c25d73a62330b92125cb2628c02424cd2726d62b26cb2726c62625b82323981d1e922e30 +d19ba3f1d7e5dbcde4d7cae4d0c7e2c9c4e1c7c4e2cacae5d0cfe8d3cce5dac7e0dac6df +d6c8dfd2cae1d0cbe3d0cbe4d1c8e2d2c7e2d1c7e2d0c7e3cec7e2cdc8e3cdc8e3cdc8e3 +cec7e2d1c6e2d4c6e1d5c4e0d8c4dfd8c3dfd5c4e0d3c7e2d1c7e2d1c7e2d2c7e2d2c7e2 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d0c7e2cfc8e3d3cce5d5c7e2f3d8e8a24781a72569c12a73c9296fcd2a6dce2970b3266b +c37faedec5dfd7cbe4cdc4e0d3c9e3dccde5d0c0ded4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c7e2d3cae4 +d1cae4cfc7e2cdc5e1c8c1dfd0cce6d5d2e9b0aabcb6b4bcbac2c7bdd0d4c4dddfbfdade +c8d7dbc3bbbcc3b3bcd2c6ded3c8e2d1c6e1d3c7e2d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d3c7e2d2c7e2d1c7e2d1c7e2d4c6e1d4c5e1d5c6e1d4c5e1 +d4c6e1d0c7e3d0c9e3d0c9e3d0c9e3d4c7e2d4c6e1d4c5e1d5c7e2d4c7e2cfc7e2d4c7e2 +e1c9e1d9b5d5c088b9a84d8dae2975cd2c79ea3588ec3a8ce6317acc2f6abe2f5eaf2941 +ae222ab72223c12424c62625b82423c32d24bf2524c32625ae2222951c1d9d3c44d097a1 +f1cedadcc7dbd6c8e0d3c8e2d0c7e3cdc8e4cacae5c9cae5cacae5cec8e3d4c5e1d5c4e0 +d4c6e1d1c8e2d0c9e3d0c9e3d0c9e3d1c7e2d1c7e2d1c7e2d1c7e2d1c7e2d1c7e2d1c6e2 +d2c7e2d3c5e1d4c5e1d5c4e0d5c4e0d5c4e0d3c7e2cec9e4cccae5cecae5cfc9e4d1c8e3 +d3c7e2d4c6e1d5c6e1d4c5e0d3c4e0d4c3dfd5c4dfd5c4dfd6c5e0d6c6e1d5c6e1d4c6e1 +d0c7e3cac6e2d7cfe7e3cde3ca95c1a93e80ad256ac1276ccd2a6fca296fbc266b9a205d +e4afd0dcc7e0d0c8e2cbc7e2d4cde6dccde5d2c1ded4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d2c7e2d1c9e4 +d0c9e3d0cae4d1cae4cac5e2cdcbe6d0cee7a69dafaea5acbfc1c6c9d9dfc8e0e7c1dae3 +c9d9dfc3b3b3bea6adcbbcd5d1c6e1d0c6e2d3c7e2d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c7e2d2c7e2d2c7e2d3c7e2d3c7e2d3c6e1d3c7e2 +d2c7e2d2c7e2d1c7e2d1c7e2d2c7e2d2c7e2d3c8e2d3c8e2d3c8e2d2c7e2d2c7e2d4c6e1 +d4c3dfddc7e0d1b4d6b67eb2aa4186bc2876dc3081ed3c8aeb3a7fc6255bb42246ac1f2d +b52327c72627cd2826ce2a26b32223ad2322b42423a12020901b1c973d48bd8591dfc0cd +e7d3e4d9c8dfd6c5e0d5c6e0d4c6e1d0c9e3cbcbe5c9cbe6cacae5cec7e2d3c4e0d4c3df +d4c5e1d1c7e2d0c9e3d0c9e3d0c9e3d1c7e2d1c7e2d2c7e2d2c7e2d2c7e2d3c7e2d4c6e1 +d4c6e1d4c6e1d4c5e1d4c5e1d5c4e0d4c5e1d2c7e2cfc9e3cecae4cfc8e3d0c9e3d2c7e2 +d3c7e2d4c6e1d4c6e1d4c6e1d3c4e0d3c4e0d5c4e0d5c4e0d6c5e0d6c5e0d4c5e1d4c5e1 +d2c9e3d1cbe5d4c6e1e8c9e0a85992a72e73b7266dc5276cca296dc92b72b32569a03473 +e4b9d6dfcce4d0cbe5c7c8e3cec6e1d7c6e1d4c3dfd4c5e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c7e2d2c9e3 +d1c8e3d2c9e4d2c9e4c9c4e1ccc8e4d9d1e8b09cacbca5aaccbec1d0cdd2cbcfd7c8ced9 +d8d5ded6b8b8c6a4abd3bfd7d4c9e3d1c7e2d3c7e2d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2 +d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d4c5e1 +d1bcdae2cce3e0c9e1caa2cbb1619fad2e79ba2570d3307bde4784c54875ba4966ad3849 +ac282eb32423be2624cd2826bc2624b02522a320209622299e4c5ab98997d1bbc8d6ccde +d3cee4dac9e2d9c1dddbc1ddd9c4dfd4c6e1cccae5c9cbe6cacae5d0c7e2d6c1ded9c0dc +d5c4dfd2c7e2d0c9e3d0c7e3d0c7e3d1c7e2d1c7e2d2c7e2d2c7e2d3c7e2d4c6e1d4c6e1 +d4c6e1d4c6e1d4c5e1d4c5e1d5c6e1d5c6e1d4c5e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d3c7e2d2c7e2d2c7e2d3c9e3d3c9e3d4c6e1d4c6e1d4c6e1d3c4e0d3c4e0d3c3df +d3c5e1d4c9e3d8c4dfe1b2d2973173ab266dc12973ca296fc8286bc1286fa8276bb8649a +e2c1dcdbd0e7cdcde6c7c8e3cdc4e0d6c3dfd5c1ddd4c5e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d5c9e3 +d4c7e2d3c7e2d2c7e2cac1dfcec7e2e4d6e9b99aa8c49ea3d8b6bae1c5cbe1cbd3e0cbd8 +edd4dce3b2b3c99ca3d8bfd8d6c9e3d0c6e2d3c7e2d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2 +d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d5c6e1 +d8bfdcdec5dfddc8e1d3b6d7c088bba94c8c9f296db43576ce6493d78da9da9eadce8b93 +c3686ab63e3db52423c62725bc2624ab2221971f24a95469c795aad8c3d4d5d0e3c8cce3 +c7c9e3d7c6e0dbc1dddec0dcdcc1dcd5c4e0d0c9e3cbcbe5cccae5d1c6e2d9c0dcdbc0dc +d6c3ded3c7e2d0c9e3d1c7e2d1c7e2d1c7e2d1c7e2d2c7e2d2c7e2d3c7e2d4c6e1d4c6e1 +d4c6e1d4c6e1d4c5e1d4c5e1d4c5e1d4c5e0d6c4dfd8c3dfd8c3dfd8c4dfd5c4e0d5c6e1 +d4c6e1d2c7e2d0c9e3d0c9e4d0cae4d0cae4d0c9e4d0c7e3d1c6e2d2c5e1d3c5e1d2c4e0 +d2c3dfd5c3dfe5c5ddc880b39f2a6fb4256bc82b73ce2a73c82970b6266ca13071d699c4 +e1cbe2d1cee6c7cae5cacae5d4c9e3d8c4dfd5c0dcd5c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d6c7e1 +d5c6e1d3c4e0d3c6e1cfc4e1d1c6e1e9d5e7af7f8db27779d2989aefb7bcf5c1caf3c1cd +eebac2cf8c8db57880d3b4ced6c9e3d1c8e3d3c7e2d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2 +d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c6e1d4c5e0 +dec5dfd5bbdad2bfddd4c3dfceadd1b77caba05086ae5b8ad395b4dfc0ceedd9dcf0d1cd +e6b0aed17778ba3437b52323aa1f219e1f1fa84e60c893aadfc4dbdfd2e8cdcbe4c4c8e4 +c6c6e3cec0ded7c5e0d9c2ded9c3ded5c4e0d3c7e2d0c9e3d0c9e3d2c7e2d5c4dfd7c4df +d5c6e1d2c7e2d0c7e3d1c7e2d1c7e2d1c7e2d1c7e2d2c7e2d2c7e2d3c7e2d4c6e1d4c6e1 +d4c6e1d4c6e1d4c5e1d4c5e1d4c5e1d6c5e0d8c4dfdac2dddac1dddac3ded8c3dfd5c4df +d5c6e1d3c7e2d0c7e3cfc8e3cec9e4cec9e4cec9e4cec8e3d0c7e3d0c7e3d1c7e2d3c6e1 +d5c4e0dfc2dde5b5d3aa4583b12a71bd2768ca296dd02b75c52b74ad286eaa4e88e8c2db +d8cde6c8cbe5c2c8e3cdcde6d8cde5d9c4dfd7bfdcd5c4e0d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d6c5e0 +d4c3dfd2c3dfd6c9e3d5cae3d4c6e1e9d0e49557638b3232b35856d77f84e69199e18e9b +cc7883a7464495434acca9c3dacde5d3cae4d2c7e2d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2 +d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c6e1d3c4e0 +dcc6e0d1bddbccc3e0d1cae4d3c4e0c5a7cab28cafbf97b4dfc8d8c6cdceceddd6dee0d6 +ebd1cade9fa1b84b529b1e1f961b1da83542d79bb0dec0dad9c8e1d3c6e1ccc4e1cdc6e2 +cbc6e2c9c3e0d0c6e2d2c6e1d4c5e1d4c5e1d5c6e0d4c6e0d3c7e2d1c7e2cfc8e3cfc9e4 +d0c9e3d1c7e2d1c7e2d1c7e2d1c7e2d2c7e2d2c7e2d2c7e2d2c7e2d3c7e2d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d5c6e1d7c4dfdac3dedac1ddd9c1ddd8c3dfd7c4df +d5c4e0d4c5e1d3c7e2d0c7e2cec7e2cec7e3cdc8e4cdc8e4cdc9e4cecae5cfcae4d2c9e3 +dcc7e0e6bdd8ce84b49e2465b9256cc62767ce286acc2b71b9276ea83073c280b0edd5e7 +cac8e3c3cde7c6cce7cdcbe5d3c7e2d5c0ddd8c3ded5c4e0d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d7c6e1 +d4c2ded1c0ded4c7e2d3c9e3d3c6e1f0d3e5974c568a1d1b971f1ea92828b5343aaf313d +a5283297201f93333ad5aec7dbcee6d0c9e4d2c7e2d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2 +d2c7e2d2c7e2d2c6e1d2c6e1d2c6e1d2c6e1d2c6e1d2c6e1d2c6e1d2c6e1d2c6e1d4c5e1 +d2c1ded4c7e2cfcfe8c8cee7c4c4dcc1b7cec2b3c9cfc0cfdbdbe0c4dcd6bad9cdc6d8cc +e1d7cfe2b6b7b9616c921a259b202cd2798bf1c9dde4cfe5d6c7e2d3c7e2d0c5e1c8bfde +cfc8e3d6d0e8c6c0dfccc5e2d0c7e3d2c7e2d4c6e1d3c8e2d1c7e1cfc9e4cccbe5cacae5 +cdc9e4d0c7e3d1c7e2d1c7e2d1c7e2d2c7e2d2c7e2d2c7e2d2c7e2d3c7e2d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c5e1d5c4e0d7c4dfd6c3ded6c2ded7c4dfd5c4df +d5c4e0d4c5e1d4c5e1d2c5e1cfc4e1d0c6e2cdc6e2cdc8e4cccae4cdcae5cdcbe5d3cae4 +dbbfdbd99cc5a33875b02467c12768d22b73d42c76c0276ba32261a64480dfb2d3e3d4e8 +bdbfddc8d1e9ced1e9cdc9e4cabeddd0bcdbd9c7e1d4c5e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d7c7e1 +d4c2ded0bfddd0c5e1d0c7e3cec4e0f7deeba7565ba52e27b02823b32123b42023ae2022 +b02223af2b25a43e42dbb2cad4c9e3c7c2e0d2c7e2d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2 +d2c6e1d2c6e1d1c6e1d1c6e1d1c6e1d1c6e1d1c6e1d1c6e1d2c6e1d2c6e1d2c7e2d1c7e2 +cac5e1cbcee7c1d1e6b4c7d8b0bbcab8b8c6c7c0ccd4cbd2d1d2d1c5ddd4b9d7c9bdd0c3 +cecbc3ccabab9e58636e0e1663100f934159b786a5ccb0d1dbcbe3ddd2e8cec8e3c3bede +cec9e4d7cee6cabfdecdc4e0d0c7e3cec9e4cbcbe4cacee6cacce5cacce6cec9e4cfc8e3 +d0c7e3d1c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c6e1d1c6e2d1c6e2d1c6e1d3c5e1d4c5e1 +d3c4e0d4c5e0d5c4e0d5c4e0d4c4e0d3c4e0d3c5e1d1c7e2d0c7e3cfc8e3cdcae5d4c6e1 +d1a7cdb458909b1e55c3286ece2970d62c77d02e77b123669f2f6ebd77a9e8cee3d4cde6 +bdc1e0cacee8cecde7ccc7e3cbc0decfc2dfd5c7e2d3c5e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d5c6e1 +d1c0decfc2dfd3cce5d2cce6cac2e0f4d5e69d44469b1e1fb52423c82625cc2626c92526 +c32525ad2122911d1dd3a7bedcd2e8d0cde6d1c7e2d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d2c7e2d2c7e2d2c7e2d2c7e2d2c6e1d2c6e1 +d1c6e1d1c6e1d1c6e1d1c6e1d1c6e1d1c6e1d1c6e1d2c6e1d2c6e1d2c7e2d2c7e2cfc9e4 +cacee5bdcadeadc4d1a8bec9b0bec8c2c3ccd3ccd3dcd2d6d8d8d4c6d7cec3d7ccbdc9bf +b6b2aca284877d3d4c640f234e10105f0d2b621e499e749ac9acd0d0bedcd1c3dfdcd1e8 +d3cae4c4b7d9d7cbe4d3c8e3d0c9e3cccbe5c8cce6c5cee5c8cde6cbcbe5d0c7e3d3c7e2 +d4c6e1d3c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d2c7e2d0c7e3cdc8e4ccc9e4ccc9e4cdc8e3d0c7e3 +d1c6e2d3c6e1d4c6e1d4c6e1d6c6e1d6c5e0d6c5e0d5c4dfd5c4dfd4c4e0d3c4e0dac0dc +ce91bf9f2868bc296ebf2661d42e77c32867b12162a02668b35f96e5bad6e0cee4cfc9e4 +cbc9e4cac5e2c5bfdecec5e1d5cee6d3cce6c9c3e0d2c7e2d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c3df +d2c4e0d0c7e2cac7e3cbc9e4ccc7e2f2d2e3a3464ba12020bc2324cf2826d42a26cf2726 +c92626b422229f2b29d6afc3d8d1e8cccbe5d0c7e3d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d2c7e2d2c7e2d2c7e2d2c7e2d2c6e1d1c6e1 +d1c6e1d1c6e1d1c6e1cfc4e0d1c6e1d3c8e2d3c8e3d3c8e2d1c5e1d0c5e1d2c7e2d1cce5 +c4cbddb2c2cca8bdc4b0c2c6c3cbd0d6d2d7ded0d5e1d0d2ded2d0c9cbc5c0c7bfb3b2ac +9a8d8b7452595918294c10184d101d5b0e2d530f2b6c2752955e88bd95bedabbd9e0c9e1 +d5c0ddcebcdbd5c7e2cfc4e0cec7e2cecde7cdcfe7cacde6cacae4cfc6e2d3c4e0d2c3df +d3c4e0d3c5e1d2c5e1d2c5e1d2c5e1d2c5e1d1c5e1d2c5e1d2c5e1d3c6e1d4c7e2d4c7e2 +d3c8e2d3c8e2d3c8e2d3c8e2d3c8e2d1c7e2d0c9e4cdcbe5cbcae5cacae5c9c9e5cacae5 +cacae5cbcae5cdcae5d0c9e3d2c6e1d5c7e2dac7e1d8bfdcdcbedae4c3ddd7b2d3b77db0 +9e3c7aa5225eca2d74ca2a6fc22869b42366ab2a6fad4d89c98dbce5cae1d5c8e2d0c9e3 +d2c7e2d2c4e0d1c3e0d1c5e1cfcae4cacbe6c8c9e5d0c7e3d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c5e1d1c3e0 +d1c6e1cec8e3c7c7e3cacbe6cdcae5f3d5e5a74d50a72221c12424d22a26d62b26d42a26 +cb2626b52423a22d29d7afc2d4cfe8cacae5d0c7e3d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d2c7e2d2c7e2d2c7e2d2c7e2d2c6e1d1c6e1 +d1c6e1d1c6e1d1c6e1d3c8e3d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d2c9e3cfcae2 +bac0cbb6c0c6b8c4c7c0caccced0d2dbd3d6e1d1d2e1cccedbcbcbc7c0beb9b6b2a19797 +786469552c3a4a1123541128570f2c511023620b2b72123c842458a24e81c682b0e2afd0 +e7c0daddbfdbd9c5e0d5c7e2d1c8e2cecae4cac8e3cac7e2cfc7e2d3cae4d4c9e3d1c5e1 +d3c5e1d4c6e1d4c6e1d4c7e2d4c7e2d4c7e2d5c9e3d5c9e3d5c9e3d4c7e2d4c6e1d3c7e2 +d2c7e2d2c7e2d2c7e2d2c7e2d2c7e2d1c6e2cec7e2cac5e1c6c3e1c5c5e2c7c9e5cacee8 +cad0e9c7cee8c5cbe6c8c8e4d0c9e3dacce4dac1dddebad8e7bed9dfa8ccc079b0a24283 +a1276cbe296fc6286ac5296fba276ba42465a13676b46fa2d3add1e3cfe5d3c7e2d1c7e2 +d5c4e0d5c3dfd4c3dfd3c5e1ccc9e4c5cbe7c5cbe7cfc8e3d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d1c4e0 +d1c6e2cdc9e4c6c8e4cacce7cccbe5f3d6e6a84e53a82221c12424d12826d62b26d42a26 +cc2726b52223a02b27d6acc1d4cfe7cacae5d0c7e3d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d2c7e2d2c7e2d2c7e2d2c6e1d1c6e1d1c6e1 +d1c6e1d1c6e1d1c6e1d6cbe4d2c7e2d0c5e1d0c5e1d3c9e3d4cae3d3c9e3cec6dfc7c2d6 +b9b7bfc2c2c5caccccd0d0d1d7d3d3dcd2d3dfcfd2dac8cacdbdbeb1a9aab0a9aca7999f +89717d643b4f4f122f51102c540f2e5a0c25781132911841a52258b83471c34c88cd67a1 +dd8ebde5b3d2e0c0dbd9c7e1d6cbe3d3cae4d2c7e1d1c6e1d4c7e2d3cce6cbcbe6c6c6e3 +cbc6e2d1c6e1d4c5e1d4c6e1d3c5e1d3c5e1d3c5e1d3c6e1d3c6e1d2c6e1d2c7e2d2c7e2 +d2c7e2d1c6e2d1c6e2d1c6e2d1c6e2d2c7e2d3c7e2d5c7e2cfc4e0c8c2e0c6c6e3c4cce7 +c5d0e9c3d0eac2cfe9c5cbe6ccc8e4d7c8e2e1c2dde8bad6e1a0c8c76ba8ad3e82a6276f +b6276ec82c74c22767ba266aaa2569992d6daa5d94c99cc6d8c3dfd6cae3d2c7e2d4c5e1 +d7c2ded9c1ddd7c3dfd3c5e0cbc9e4c3cde7c3cce7cec9e4d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c5e1 +d3c9e3cecae5c7c9e5cacce7cbcae5f0d4e6a54a54a42221be2424cf2826d62a26d32a26 +cb2726b52423a02a27d6acc1d5cee7cacae5d0c7e3d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d2c7e2d2c7e2d2c7e2d2c6e1d1c6e1d1c6e1 +d1c6e1d1c6e1d1c6e1d3c8e2d1c5e1d0c5e1d2c7e2d4cae3d3cae3cec6dec5bed3bfb8c6 +c2b9bdcec6c5d7cfcedbd3d2dcd3d3dcd0d3d9cbcfcbbdc1b7acb1a0979fb2a9b2c3b6c1 +bca6b69d7b91713e5c4f0f314a0e28690d3191183eba285cd63877de3d80d4317ac83079 +cc4d91d582b6d89ec7dab6d6dbc4dfdcc9e2ddc8e1d9c6e0d3c3dfcdc8e4c1cce8bfcce7 +c8c8e4d0c6e2d4c5e1d4c5e1d2c4e0d1c3e0d1c3e0d0c3e0cfc4e0d1c5e1d2c7e2d2c7e2 +d2c7e2d2c7e2d1c7e2d1c7e2d1c7e2d3c7e2d7c8e2dcc8e1d9c6e1d4c6e1cec7e3c3c9e5 +bfcae6becce7c2cde8cacee8d0c7e2d4bfdce5bdd9e4a5cac666a2b03479ad256bba256e +c32970c3286dc0286daa2465962565a2528bc596c2dbc4ded8cce4cac1dfd3c6e1d5c4e0 +d9c0dcdac0dcd7c2ded3c5e0cacae5c3cde7c4cde7cec9e4d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4cae4d0cbe5c8c9e5cacbe6cac7e3edd1e4a24756a02020bc2324ce2826d42a26d22a26 +cb2726b52423a22a28d9acc3d9cfe7cdcae5d1c6e2d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d2c7e2d2c7e2d2c6e1d1c6e1d1c6e1d1c6e1 +d1c6e1d1c6e1d1c6e1ccc2dfd0c5e1d3c9e3d4cbe4d2cae3cdc5dbc5bed1beb8c7bdb4bd +d2c7c7d8cbcadbd0cddcd0d0dbd1d2d6ccd1cbc2c8b8b0b9a69eaba9a2b2bdb5c5d6cadd +e4d1e5d5bbd3aa82a0733a6155143a6f103ba82156da3a78ed4789ec4288e4347fda2e7b +cf327ec24388c1609ad189b9dba5cbe1b9d6e6c4dde0c5dfd5c2decdc5e1c5cce7c6d0ea +cdcce6d3c8e2d5c7e2d5c7e2d5c7e2d5c7e2d5c7e2d4c6e1d4c7e2d3c8e2d3c8e2d3c8e2 +d2c7e2d2c7e2d2c9e3d2c9e3d1c8e3d4c7e2d4c3dfd7bedbdac3dedbc9e2d7cbe4cec9e4 +c8c7e3c7c7e3cbc7e2d4c6e1d8c1ddd7afd2d69ac4c76aa4b03379ad2365bd2669c92b72 +c92a72be276bb82971962160953976bd87b6dbc0dcded0e6d1cae4c9c3e0d4c5e1d4c3df +d9c1ddd9c1ddd5c3dfd3c6e1cccae4c7cde7c8cbe6d0c9e3d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4cae4d2cbe5cac8e4cccae5cec6e2eed0e4a3475ba22020b82323c92725cf2826cd2826 +c72725b42222a22928dba9c3dbcde5d0c9e3d2c7e2d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d2c7e2d2c7e2d2c6e1d1c6e1d1c6e1d1c6e1 +d1c6e1d1c6e1d1c6e1ccc2dfd3c8e2d6cde5d5cce4ccc5dbc5bdcebfb8c6c0b9c4c6bfc3 +ddd2d1dcd1cddccfcfdbd0d2d5cbd0c6c0c7b3aebba6a4b4a5a4b8c8c6ddc9c3dccfc3dd +ddcde4e7d2e6dcc1dcb892b585517b7b1d52b72c6bcf2b6ce03178eb3c89e93c8ce23081 +dc2f81d53485bb2875bc4084c6649ed68bbbe4adcfe8c2dbe6cce2decce4d3cae4cec6e2 +d0c6e2d4c5e1d4c5e1d4c5e1d4c5e1d5c7e2d4c6e1d4c7e2d4c7e2d3c7e2d2c7e2d1c6e2 +d1c7e2d1c7e2d1c7e2d1c7e2d0c7e3d2c7e2d4c3dfd7bddbd7bcdad7bedbd5c0dcd5c2de +d7c4dfdbc6e0e0c6dfe0bdd9d9a9cdd492c0b4558f9f2567b62870c32b74c8286cc82769 +c5296fba28719e2465902d6cb275a5d5b7d7d9cae3cec7e2ccc7e3d7cee6d4c5e1d4c3df +d6c2ded5c3dfd4c5e0d3c7e2d0c9e3cccbe5cdcae5d1c7e2d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c6e1 +d4c7e1d3cae4ccc7e3cfcbe5d3c8e3f1d3e5aa4e68a72328b72323c22425c92725c82625 +c22625b021229f2625dba5c0dbcae3d0c6e2d3c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d2c7e2d2c6e1d1c6e1d1c6e1d1c6e1d1c6e1 +d1c6e1d1c6e1d1c6e1d3c9e3d7cde6d5cbe4cec6ddc5bdcebfb8c5c0bbc4ccc5cad7d1d2 +dad6d2d8d3d0d9d2d1d5cfd1c6c2c9b0adbaa19fb1a3a4bbb8b9d4d5cfe7d3cae4cdc2df +cec0ded6c7e1e3d1e6e2cae2c6a4c8b06d9d9e2868b62367c6286fd12b75df3081eb3990 +e73386d72d7adf388bc72c78be2e7ac34c8ccd6ca4d98cbce3a8cce7bcd7e1c1dcdbc0dc +dbc6e0d9c9e3d7c9e3d5c6e1d4c5e1d1c3e0cfc2dfcfc1decdc0decec3dfd0c5e1d0c5e1 +d0c6e2d0c6e2d0c6e2d0c6e2cfc6e2d0c6e2dacbe4e3cde4dcc4ded7bcdadabddae4c4dd +e7c4dce8bbd7e5b0d0d894c1c269a2b24886a22467aa2262c12a72cc2f76ce296fc72769 +b824659e205f861d5bac689bd8b5d5d9cae3cdc6e2cac6e2cfc8e3d3c8e3d3c4e0d4c3df +d3c4e0d4c6e1d3c7e2d1c7e2d1c7e2d2c7e2d2c7e2d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c4df +d5c6e0d4c7e1d0c6e2d2cae4d5c7e2f1d3e5ad506da8252eb52323c02424c52625c62625 +c12624ae2022a02426dda2c0ddc8e1d2c5e1d3c5e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d2c7e2d2c6e1d1c6e1d1c6e1d1c6e1d1c6e1 +d1c6e1d1c6e1d2c6e1d6cbe4d1c6e1cac1dac4bbd0c1bbcac6bec8cdc7ccd7d1d3dadbd9 +ccd6cfc8d2cdc5cbcabbc0c4afb2bda6a8baa7abc2b5b8d5cac8e4c9c2e0d3cae4d7cce5 +d3c8e3cac1dfcac3e0d5cbe4dacee5ddc3ddbf89b9aa5293aa2b7bb72676cb2c7ede2e84 +eb3893eb4094e03185e43b8cde3786d12d79c5286ec0286fc63a83d667a6de8bbbdda3c9 +deb8d7dac4dfd6c7e1d6c7e2d6c7e2d6c9e3d6cae3d7cae4d7cae4d4c9e3d3c8e2d3c8e2 +d2c9e3d2c9e3d0c9e4d0c9e4d0c9e4d1c8e3d1c6e2d1c4e0d6c4dfdec5dfe6c5dde6b8d5 +df9ec7cd77b0be5394b73b81b42a71a9215cba266bcd337ac02869bf2564c72a6cc3296f +b1266ba63576ae6097d5abcfe2cde3d1c8e3cacae5d0cde6d1c9e4cbbddcd4c3dfd3c4e0 +d0c7e3cec8e3cec9e4d0c9e3d4c6e1d6c5e0d6c5e0d4c5e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c5e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d3c5e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d3c5e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c5e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d3c5e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d3c5e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c5e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c5e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d3c5e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c5e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c5e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d3c5e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d3c5e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c5e1d4c6e1d4c6e1d4c6e1d3c4e0 +d6c6e0d5c7e1cfc5e1d2c7e2d3c5e0efd1e4a94c67a42127b32122c12424c72625c72625 +c32625b12122a22628dfa4c1e1cae2d4c6e1d3c5e1d4c6e1d3c5e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c5e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d3c5e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c5e1d2c6e1d1c6e1d1c6e1d1c6e1d1c6e1d1c6e1 +d2c6e1d2c7e2d2c7e2d2c7e2c7c0dbbeb7cebeb7c7c4c0c9cec9ced7d2d2d9d5d3d4d5d0 +ccd6d1c1cecbb5bec0a9adb5a3a6b6aeafc3bebfdacac9e4cdc8e4d0c5e1d2c5e1d2c5e1 +d1c6e2d0c9e3cec9e4cec7e3d0c7e2d4c6e1d5c3dfcaa5cdba73aeb0408fb3297cc32b7d +d22c81d92c84dc2e82da2f7ede2f7de3347fe4327edf2f7bd6307cce3481c43a86b34289 +c273accb94c2c99bc6cea2cad4aacfd8b3d4dfbddae1c2dce4c8e0e2c7dfe0c6dfe0c5df +dec6e0dec5dfdec6e0dec5dfdec6e0dfc5dfdcc0dcdab8d7d9b0d2d5a1c9cc87b9c0639f +b74588b63079b82771bc276ec2286fca2d77c72b73c1296dbe286eb8276aaf2363a72362 +b24482d890bee1b3d3e0c5ded5c6e1d0cbe5cac8e4c7c2e0cfc4e1d8cbe4d3c4e0d4c5e1 +cfc8e3cdc9e4cdc9e4d0c9e3d4c6e1d7c4dfd7c4dfd4c5e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d3c5e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d3c5e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c5e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c5e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d3c5e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c5e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c5e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d3c5e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c5e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d3c5e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d3c5e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c5e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c5e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d3c5e1d4c6e1d4c6e1d4c6e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d4c6e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d4c6e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d4c6e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d4c6e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d4c6e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d4c6e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d4c6e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d4c6e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d4c6e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d4c6e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d4c6e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d4c6e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d4c6e1d3c5e1d4c6e1d3c4e0 +d6c6e1d4c6e1cec6e2d0c8e3d3c5e1f1d3e5a74c63a42323b52323c22425c82625c62425 +c22525b42423aa2f31e4abc7e0cbe2d2c6e1d3c5e1d3c5e1d3c5e1d4c6e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d4c6e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d4c6e1d3c5e1d3c5e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c5e1d2c5e1d2c5e1d3c6e1d3c6e1d3c7e2d2c7e2 +d1c6e2d1c7e1d0c8e2c8c0d9bcb6cbb8b4c3c1bdc6cdcaced6d4d2d6d7d2d4d4cdd3d3cf +cdd0d1b9bbc1aaabb4aba8b7b7b3c7c5bfd8ccc7e2cfc7e2d0c8e3d2c6e1d2c5e1d2c5e1 +d2c6e1d1c7e2d0c7e3cfc6e2d0c6e2cec8e3cacee8cccbe5cbb6d8c08dbfb25d9fae3785 +b5287ac12979cb2b78d42a78de2f7de6317fe8307ee42f79df2d79db317fd33280c62f7b +bf3984bc468cbb4e93bd5398bf5b9dc668a7d17db3d78abbdb93c0dc9ac4de9fc7dd9fc7 +db9fc7dc9fc7d89cc6d799c4d596c3d592c0d388bacc74a9c05b95b84684bc3b7ec23079 +c32a72c6286fcc2a70cf2972ce2972c82970c0276fb7276faa266a9b2465a23374b55a94 +cd8bbbdeb5d4dcc2ddd8c5e0d4c5e1d1c7e2cfc6e2cfc5e1d2c5e1d5c7e2d4c5e1d3c5e1 +d1c6e2d0c7e3d0c7e3d2c7e2d4c6e1d5c6e1d5c6e1d4c6e1d4c6e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d4c6e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d4c6e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d4c6e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d4c6e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d4c6e1d3c5e1d3c5e1d3c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d4c6e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d4c6e1d3c4e0 +d6c6e1d3c6e1cdc5e1d0c9e4d1c6e2f1d5e6a64d5ea42421b52423c42425c92725c72525 +c32525b52423aa3133e5adc7dfcbe3d1c6e1d2c6e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c5e1d4c7e2d1c4e0d1c3e0d1c4e0d2c6e1d2c7e2 +d1c7e1d0c8e2cdc7debab6c7bab6c5bfbec7c9c8cdd2d1d1d6d7d1d3d6cfced2cacececa +bebcc2b1acbaada5b6b7afc2c7bed6d3c9e3d4c9e3d1c6e1d2c6e1d3c6e1d2c5e1d2c5e1 +d2c5e1d2c6e1d2c6e1d2c6e1d2c6e1cccae4c0cce8c4d2ebcccee8cfbddcc89ec9c17cb2 +be5d9fb83785b62671c42a75d02c78d72b79dd2e7ae0307ae1317ce1327edc317ed62d7b +cf2c79cb2d7bca2f7fc9307fc4307ec33182c8418cc94a93c84d94c75297c7569bc6569a +c5569ac35598c15297c05094bd4c91bf488cc24285c3377cc22f73c22a6ec92b6fce296f +d12b6ed32a6ed62a72d42c74cc2972c32972b5256ea2256a97276b9d4180b46da3d09bc5 +deb9d7dac2ddd5c4e0d4c5e1d3c5e1d3c6e1d3c6e1d3c6e1d3c6e1d3c5e1d3c5e1d3c5e1 +d3c6e1d3c6e1d3c7e2d3c6e1d3c5e1d4c6e1d4c6e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d4c6e1d4c6e1d3c6e1d3c6e1d4c6e1d3c6e1d4c6e1d3c6e1 +d4c6e1d3c6e1d3c6e1d4c6e1d3c6e1d4c6e1d3c6e1d4c6e1d3c6e1d4c6e1d3c6e1d3c6e1 +d4c6e1d3c6e1d4c6e1d3c6e1d4c6e1d3c6e1d4c6e1d3c6e1d3c6e1d4c6e1d3c6e1d4c6e1 +d3c6e1d4c6e1d3c6e1d3c6e1d4c6e1d3c6e1d4c6e1d3c6e1d4c6e1d3c6e1d4c6e1d3c6e1 +d3c6e1d4c6e1d3c6e1d4c6e1d3c6e1d4c6e1d3c6e1d4c6e1d3c6e1d3c6e1d4c6e1d3c6e1 +d4c6e1d3c6e1d4c6e1d3c6e1d3c6e1d4c6e1d3c6e1d4c6e1d3c6e1d4c6e1d3c6e1d4c6e1 +d3c6e1d3c6e1d4c6e1d3c6e1d4c6e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c3df +d5c6e1d3c6e1cdc5e1cfc9e4d0c6e2f1d3e5a44c5ba32220b52223c42425cb2726c92625 +c32525b42222a82d30e3abc6ddcbe3d0c5e1d1c6e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1 +d4c6e1d4c6e1d4c6e1d4c6e1d4c6e1d3c5e1d6c9e3d0c4e0cdc0decec2dfd0c5e0d2c7e2 +d0c8e2ccc5ddc7c2d6b2aebdc0bdc8cccad1d2d1d4d5d4d3d4d6d2d2d4cec8cbc5c1c0c0 +ada7b3afa5b7b7adc2c5bad2d1c6dfd7cce4d6cbe4d3c6e1d0c3e0d2c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c6e1d3c6e1cfc7e2c5c8e4c6cce7cecee7d6cbe4dcc4dedeb8d6 +d9a0c8c570aab5478bb3317cb62873bb266fc52a72d02e79d6307dd82e79da2e7ade317e +de2f7ddf317fe13081dd2f80d82e7cd42c7bd12e7dcf2c7cc92d79c72c79c72d7ac42d7a +c32c79c12b77c22b76c22a75c12874c22973c52970c82a6ece2b6fd12b70d12a6fd22a6f +d22a70d22b72d02c74c72972ba256ead256a9c2366983073a55691bc83b5d2a9cfdec1dc +dcc8e1d3c4e0d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1 +d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1 +d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1 +d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1 +d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1 +d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1 +d3c6e1d3c6e1d3c6e1d3c6e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d4c5e1d3c3df +d5c6e1d3c6e1cbc4e1cec8e3cfc5e1efd2e4a34a5aa02120b32223c22425cb2726cb2726 +c52525b12122a52a2bdfa8c3dccae2d0c5e1d2c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1d3c6e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d0c3e0cec3e0cfc4e1d0c7e1d0c7e1 +ccc4dcc6c1d5c2bdcdbab8c3cac7cfd4d2d8d6d5dad6d5d6d3d4d4cccecdbfbfbeafafb2 +a69fb0b5abbfc3b8d0cdc3dbd4c8e1d5cae3d5c9e3d4c6e1cfc3e0d3c5e1d2c5e1d2c5e1 +d2c5e1d3c5e1d3c5e1d3c5e1d3c5e1d2c5e1d0c3e0d2c4e0d4c5e0d8c5e0dec9e1e7cbe1 +e6c6dedaa9cdce90bfbb6ca5b1508fac397dae2d74b82c74bf2b75c52a71cc2c76d6307c +de2f7de4317de8307ee8327fe5307ee3327ee2317ede2e7cd92b78d92d79da2d7bd92d7a +d82d79d72b78d82b78d82b78d82c77d82c77d52b75d22b71d22b72ce2970ca296dca296f +c92c74c32b73b9276ead276ca3266b96286a963677ae6aa0ca9ac5d8b9d8dcc5dfd9c9e3 +d5c7e2d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d4c5e1d3c3df +d5c6e1d3c7e2cbc3e0cdc6e2cec4e0efd0e3a248589f2020b32122c22425cc2826cb2726 +c52525b12122a42829dea7c2dcc9e2d0c5e1d1c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d1c4e0cbbfddd0c4e0d4c9e3d4c9e3d0c7e1cac2d9 +c5bed1c1bdcac2bdc7ceccd5d3d1d7d6d4d9d5d4d8d1d3d6cccbcfc0c1c5b0b0b6a2a1ab +b4acbfc4b9d0cec4ddd1c6e1d0c5e0d0c5e1d3c6e1d4c6e1cfc3e0d1c4e0d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c4e0d6c0ddd9bfdcd7bfdcd4bddbd1bcdbd4c0dd +dac7e1e1cbe2e3c9e1e0bddad5a3cac583b4b56098ae4684ad3378ae2870b5256cbe256e +cb2a71d52b73da2b71d82d73da2c74db2c75dc2d77db2d76db2c74dc2f76de2e79de2e79 +df2d79de2d78de2d77de2d76de2d75dc2d75d72b74d12a71cc2a70c72870c42970bd2670 +b4266ea9266b9b2467972a6c9f407fab6098c48cbcd7b3d4dbc1ddd7c6e0d0c4e0cbc3e0 +cbc4e1d1c6e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d2c3df +d4c5e1d3c6e1cac3e0cdc7e3cec4e0efd0e3a148579f1f20b32122c22425cb2726cb2726 +c52525b12122a42829dea7c2dcc9e2d0c5e1d0c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d0c3e0cabfded3c8e2d7cde6d4cae3c9c1d8c0bacc +bfb8c5c3bdc6cbc7ccdcdae0d7d6d8d5d4d8d1d1d6cac8cebcbcc3b0afb9a9a6b4aca9ba +c5bdd4d0c7e0d5cae3d3c8e2cec3dfcec1dfd2c5e1d4c6e1cec0ded0c3e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d2c5e1d2c5e1d4c3dfd8bcdadcbddadec2ddd9c1ddd0bedcc9bddc +c7c1dfcdcbe6d4cfe8dbd2e8dfcfe5dcc3ded8b0d2d299c4cc81b5c465a0b34285a7276c +b5266ec0296fc1296bbf2669c3266ac5296fcb2a72d02d74d22d77d02b72ce296fcf296f +d12a6fd12a6fd12a6fcf2a6ccd286acb2769c72769c2276bba2469b62469af256a9f2364 +9421619a3374a4508cb16ea3c28fbddab8d7ead3e6dacae3cfc3e0cfc6e2cfcae5cac6e2 +c7c1dfd0c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d2c3df +d3c4e0d2c5e1cac3e0cdc7e3cec4e0efd1e4a34858a02120b32223c22425cb2726cb2626 +c52525b32222a62b2ce0a8c3dccae2d0c5e1d0c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2c5e1d2c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c6e1d4cbe4d2c9e3cac2d9beb8cabab4c1 +bebac2cbc7cbd8d4d5d8d7d7d5d3d3d2d1d5cdcbd1bebbc4abaab8a5a2b3b1b0c1c9c4db +cec5e0d4c9e2d6cae4d4c6e1d2c5e0d2c5e1d5c9e3d3c5e1cdbfded0c3e0d1c4e0d1c4e0 +d1c4e0d2c5e1d2c5e1d2c5e0d2c5e0d4c3dfd9bedbdcbddaddc0dcdac4dfd4c6e1cec7e2 +c5c5e2bcc6e3b9c5e2b4bcdcbfc1e0d4cbe5e2d0e6e9cee3ebc7dee9b9d5da9cc5ca7cb1 +b85a93b04680ab3776a62e6da42969a32565a32260a5215fa9215faf2364b42568b52568 +b62568b82669b6266ab6266ab62568b5256ab2266cad276ca32368a2276eaf4383b45995 +b76ca3c68cbcd8afd1e1c5dee0cbe2dbcce4d3c8e2c6bfdec8c1dfd0cae4d3cce6d0c9e4 +ccc3e0cfc4e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d2c2df +d3c4e0d2c5e1cac3e0cdc8e3cfc5e1f0d1e4a44a5ba22120b52223c42425cb2726c92526 +c32525b52223aa2f31e4abc6ddcbe3d0c5e1d0c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2c5e1d2c5e0d2c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d0c3e0d0c3e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c6e1d5cae4cec7e0c6bfd7bfbaccbfb9c6c3bec6 +cbc8cbd2d0d1d8d7d3d1cfcccecececac8ccc0bdc5b5b1bfaea9bdb3adc4c2bdd7d6cee6 +d0c6e1d3c6e1d4c6e1d3c6e1d3c6e1d4c6e1d3c5e1d1c4e0cfc3e0d1c4e0d2c5e1d2c5e1 +d2c5e1d2c5e1d2c5e1d2c5e0d2c5e0d3c3dfd7c2ded7c1ddd5c0dcd2c1ded2c5e1cfc8e3 +cccae4c7cae5c5c9e5ced0e8d0d0e9cec9e4cac1dfcabbdbd0bad9dbc0dce0c3dde3c4dd +e0bad8d8abced09ec4c891b9c287b2bb78a5af6595a9568aa64d84a2437b9e3d769e3c75 +9e3b759f3d76a2417aa4457ea84a82aa4e87ad538daf5692b2609abe77add79cc6e4bad6 +e6c4dde0c7e0dac7e1d5c6e1ccc2dfc8bfdecac3e0d0c9e3cec3dfc5b8dac8b9dad5c6e1 +dccee5d2c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d1c3e0d2c2df +d3c3dfd2c5e1cac3e0cdc8e3d0c6e2f1d3e5a44c5ba32221b52423c42425c92725c82425 +c32525b62423ab3134e5adc8dfcce3d0c5e1cfc4e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c4e0d0c4e0d0c4e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c2dfd0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c4e0d0c4e0d0c6e1d4cbe4c6c0d7bcb6cabdb6c5c6c0c9d0cbd0 +d7d3d4d7d5d1d3d2cfd1cfcccbcacbbfbdc3b2b0bbafabbcb6b2c8c4bed8cec7e2d3cae4 +d4c9e3d4c6e1d3c5e1d1c4e0d0c3e0cfc3e0cfc2dfcfc3e0d4c6e1d0c4e0d0c4e0d0c4e0 +d0c4e0d0c4e0d0c4e0d0c4e0d0c4e0d1c4e0d4c5e1d2c4e0d1c4e0d1c5e1d0c5e1d0c6e2 +ccc6e2ccc7e3cdc8e4cec9e4cbc6e3c9c4e1ccc5e2d1c8e3d3c8e2cec3e0cfc2dfd3c6e1 +d7cbe4d6c9e2d3c3dfd3c0dbd7c0dcd9bcdad3b0d1cfa3c9cd9dc5c996c0c68fbcc68fbb +c58db9c48fbbc896c0cf9fc7d6a7ccdbb0d1dcb2d2dbb1d2dfb8d6dfbedaddc0dbdac3de +d9c6e0d6c7e2d3c9e3d0c7e3cec7e3cec7e2cdc5e1cec3e0d3c4e0d4c5e0d4c2ded3bfdc +d1bfddd2c3dfd0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d1c4e0d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c2df +d3c3dfd2c5e1ccc4e1cec9e4cdc3e0f1d5e6ab5462a62622b52423c22425c92725c92526 +c32525b52223a92f32e4acc7dfcce3d0c5e1cfc4e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2c5e1d2c5e0d2c5e1d1c4e0d1c4e0d1c4e0d1c3e0d1c3e0d0c3e0d2c5e1cec0decfc2df +d4c6e1d5c7e2d3c5e1cfc4e0d1c5e0d4cae3cdc7ddbebbcdbbb6c4c3c1ccd0cbd3d6d4d7 +d7d4d3d3d2cfd1d0cecececebab9bcaca9b1ada8b7bab4c8c7c0dacfc7e2d0c7e3d0c7e2 +d1c6e2d3c5e1d1c4e0d1c4e0d0c3e0d0c3e0cfc3e0d0c3e0d3c6e1d2c5e1d2c5e1d2c5e0 +d2c5e0d2c5e0d2c5e0d2c5e0d2c5e0d0c5e1d0c6e2cdc6e2cdc5e1cec5e1cfc5e1cfc4e0 +d0c3e0d1c3e0d2c4e0d2c4e0cfc3e0cfc3e0d0c5e1d0c9e3d0c9e3cac6e2c8c5e2c8c8e4 +cbcbe6cccce6cdcae4d0c9e3d4c9e3d8c7e1d8c3dfd9bfdcd8bddad8b9d8d9b9d8d8b9d8 +d8b9d8d6b9d8d6bedbd8c1dddbc6e0dcc8e1d9c8e2d7c8e2d8c9e3d7cbe4d4c6e1d0c6e2 +d0c6e2cfc6e2cec7e2cec7e2d0c7e2d1c6e1d0c4e0d2c2dfd2c3dfd6c3dfd7c2ded4bfdc +d1bedcd2c3dfd1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d2c3df +d3c3dfd2c5e1cdc5e1cfc9e4ccc3e0f2d5e6ae5564a72722b52423c42425cb2726c92625 +c32525b32222a62b2ddfa8c4dcc9e2cec4e0d0c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2c5e1d2c5e0d2c5e1d1c4e0d1c4e0d1c4e0d1c4e0d0c3e0d0c4e0d2c5e1d0c3e0cfc3e0 +d1c4e0d3c6e1d4c6e1d3c7e1d1c6e1cdc5ddc4bdd0bebcc9c2c0cacdcad2d5d3d8d7d5d7 +d5d3d3d0d0cecececebebcbeaca9b0a7a2afb4aebfc5bed6d0c8e2d2c9e3d0c5e1d0c5e1 +d0c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c5e1d2c5e1d2c5e0d2c5e0 +d2c5e0d2c5e0d2c5e0d2c5e1d2c5e1d0c6e2ccc7e3cac7e3cbc6e2cdc6e2cec4e0d1c3e0 +d2c2dfd4c1ddd5c1ddd4c1ddd3c2dfd2c3dfd2c4e0d0c5e1cdc6e2cac7e3c9c8e4c7c9e5 +c8cae5c9cae5cac9e4cdc8e4cfc6e2d4c5e1d3c4e0d5c3dfd7c2ded8c3dfd8c4dfd8c4df +d7c4dfd6c5e0d4c6e1d3c8e2d2c9e3d0c9e3cbc9e4c8c9e5c7cae5c8c9e5cac8e4cac8e4 +ccc7e3cdc6e2cec6e2d0c5e1d0c4e0d2c4e0d2c2dfd3c2dfd3c2dfd4c1ddd4c1ddd3c2df +d3c2dfd2c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d2c3df +d3c3dfd2c5e1cdc5e1cfc9e4ccc3e0f2d5e6aa5363a42421b52223c52625cb2726c92625 +c32525b12122a5292adda5c0d9c6e0ccc2dfd0c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2c5e1d2c5e0d2c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d3c5e1d5c9e3d3c6e1 +cec1dfcec3dfd3c8e2d5cae3cdc3dcc1bacebdb8c5c5c4cccecbd3d2d0d7d5d5d7d6d5d7 +d4d2d4cccbcdc2c0c4a7a4aca9a5b2b4aebec1bad1cdc4dfd1c7e1d1c6e2cec4e0cfc4e0 +d0c3e0d0c3e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c5e1d2c5e1d2c5e0d2c5e0d2c5e0 +d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d0c5e1cdc6e2cbc7e3ccc7e3cfc6e1cfc4e1d2c4e0 +d3c2dfd5c1ddd5c1ddd5c0ddd5c1ddd3c2dfd2c3dfd2c4e0d0c5e1cfc5e1cdc6e2ccc7e3 +ccc7e3cdc7e3cfc6e2d0c6e2d2c5e1d3c4e0d3c3dfd4c3dfd5c3dfd5c3dfd4c3dfd4c4e0 +d3c3dfd3c5e1d0c6e2cfc6e2ccc7e3cac8e4c7cae5c3cbe6c3cbe6c5cae6c8c9e5cac7e3 +cec7e2d0c5e1d0c4e0d2c4e0d2c3dfd2c3dfd2c2dfd2c3dfd2c4e0d1c3e0d0c4e0cfc4e1 +d0c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d2c2df +d3c3dfd2c5e1cec6e2d0cae4ccc3e0f1d4e5a85060a12120b32223c42425cb2726c92625 +c32525b12122a52a2bdea7c2dac7e1cdc3e0d0c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2c5e1d2c5e0d2c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d3c5e1d5c7e2d4c6e1 +d1c6e1d0c5dfd1c6dfcec4dbc5bdd1bdb6c4bfbdc5cdccd0d4d4d8d4d4d8d3d3d8d2d2d7 +ceccd2c0bdc4afabb4a29baab3adbec3bdd2cec6ded1c7e1d1c6e2d0c5e1cfc4e1cfc4e1 +d0c3e0d0c3e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c5e1d2c5e1d2c5e0d2c5e0d2c5e1 +d2c5e1d2c5e1d2c5e1d1c4e0d1c4e0d0c4e0d0c5e1d0c5e1d0c5e1cfc4e1d0c4e0d2c4e0 +d2c2dfd3c2dfd3c2dfd3c2dfd3c2dfd3c2dfd3c2dfd3c3dfd2c3dfd2c3dfd2c3dfd2c2df +d3c3dfd2c3dfd3c3dfd2c3dfd4c3dfd4c3dfd5c2ded5c2ded4c2ded4c1ddd3c1ded2c1de +d1c2dfd0c3e0cec4e0cec5e1ccc5e2cac6e2c8c8e4c7cae5c6cae5c9c8e4cbc6e3cfc6e1 +d1c4e0d2c2dfd3c2dfd3c2dfd3c2dfd3c2dfd2c2dfd0c4e0cec6e2cbc6e3cac7e3cac7e3 +ccc7e3d0c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d2c2df +d2c3dfd1c5e1cec5e1cfcae4cbc2dff0d3e5a74e5d9e1f1fb12122c22425c92725c92625 +c32525b42222a82d30e4abc6dfcce3d0c5e1d0c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2c5e1d2c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d3c6e1d0c3e0d3c7e1 +d7cce4d5cae3cac1d6c1b8c9bfb6c4c4bec7cecbcfd5d4d6d6d6d8d3d3d7cfced2cac8ce +c0bec6b0adb99f9babb4afc0c5bed5d0c9e2d2c9e3d0c6e1cfc4e1d1c5e1d1c6e1d1c5e1 +d0c3e0d0c3e0d1c4e0d1c4e0d1c4e0d1c4e0d2c5e1d2c5e1d2c5e1d2c5e0d2c5e0d2c5e1 +d2c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2c4e0d2c4e0d2c3dfd2c2dfd2c3dfd3c3dfd3c3dfd3c2dfd5c1ddd5c1ddd5c0ddd5c1dd +d5c2ded5c2ded5c2ded5c2ded5c2ded5c2ded4c2ded4c2ded3c3dfd2c2dfd1c2ded1c3df +d0c2dfd0c3e0cfc4e0cec4e0cdc4e0ccc5e2cbc6e3cbc7e3cbc6e3cec7e2d0c5e1d1c4e0 +d2c3dfd3c2dfd4c2ded4c2ded3c2dfd2c3dfd1c4e0cec6e2cbc7e3c9c8e4c7cae5c6cae5 +c9c8e4cfc6e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d2c2df +d2c3dfd1c5e1cdc5e1cfc9e4cbc2dff0d1e4a54d5d9d1f1fb12122c22425c92725c92625 +c32525b42222a82d30e4abc6dfcce3d0c5e1d0c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2c5e1d2c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d3c6e1d2c7e1d5cae3 +d5cae3ccc3d7bfb6c6bcb3bfc5bdc4d2cdd2d6d7d4d7d9d5d9dad8d2d4d6c6c7ccb9b8c1 +afacbaa9a5b8aca7bccac3dcd2c9e3d5cce5d1c6e2cdc2dfd0c5e1d4c9e3d3c6e1cec0de +d1c4e0d0c3e0d1c4e0d1c4e0d1c4e0d1c4e0d2c5e1d2c5e1d2c5e0d2c5e0d2c5e0d2c5e1 +d2c5e1d1c4e0d1c4e0d1c4e0d0c3e0d1c4e0d3c3dfd3c3dfd2c4e0d2c4e0d1c5e1d0c5e1 +d0c5e1d0c5e1d0c5e1d0c5e1d0c4e0d1c4e0d3c3dfd3c3dfd4c3dfd6c1ded7c0ddd5c0dd +d5c1ddd5c2ded4c3dfd3c3dfd3c3dfd2c3dfd3c4e0d2c5e1d2c5e1cfc4e1cfc4e1d0c5e1 +d0c5e1d0c5e1cfc4e1cfc4e1cfc4e1cfc4e1d0c4e0d1c4e0d2c4e0d2c4e0d2c2dfd3c3df +d3c3dfd3c3dfd3c3dfd3c3dfd2c4e0d1c4e0d0c6e2cdc6e2cac8e4c9c9e5c7cae5c7cae5 +cac8e4cfc6e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d2c2df +d3c3dfd2c5e1cdc5e1cfc9e4cac0def0d1e4a64e5c9e1f1fb32122c52625cb2726c92625 +c32525b12122a5292adda5c1dac5e0ccc2dfd0c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d2c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d0c4e0dbcee6d6cbe3 +c6bbd1bbb1c0bdb4bec9c1c5d5ced0d9d4d2d1d2cbd6d8d1d6d8d5cdcdcfbbbbc2abaab6 +a8a6b8b7b2c9c8c2dcd0c8e2d2c9e3d1c6e2cec4e0cfc4e1d3c8e2d5cae4d3c6e1c9bddc +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c5e1d2c5e0d2c5e0d2c5e0d2c5e0d2c5e1d1c4e0 +d1c4e0d1c4e0d0c3e0d0c3e0d0c3e0d0c3e0d1c4e0d2c5e1d2c5e1d1c5e1d0c5e1d0c5e1 +d0c6e2d0c5e1d0c5e1d0c5e1d0c5e1d0c4e0d1c4e0d2c4e0d3c3dfd3c3dfd3c3dfd4c3df +d5c3dfd5c3dfd3c4e0d3c4e0d4c5e1d1c6e1d0c7e2cfc6e2cec7e3cec7e3cec7e3cec7e3 +cfc6e2d1c6e1d3c5e1d3c4e0d3c4e0d4c4e0d4c3dfd3c2dfd3c2dfd3c2dfd3c3dfd3c3df +d2c4e0d1c4e0d1c5e1d0c6e2d0c6e2cec6e2cdc6e2cdc6e2cdc6e2ccc7e3ccc7e3ccc7e3 +cec6e2d0c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d2c3df +d3c3dfd2c5e1cdc5e1cec8e3c9c0def0d2e4a84f5fa12120b42222c52625cb2726c92625 +c32525b12122a5292adda5c0d9c6e0ccc2dfd0c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d2c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c5e1d2c5e0d5c9e2ccc3da +bfb6c7beb5c1c8c0c5d4cccedcd4d3d9d5cfd0cfc8ced2cac7cac5b9babbadadb5adabb9 +b8b5c9c7c1dcd1cae4cfc6e1d0c6e2d0c5e1cfc4e1d0c4e0d3c5e1d4c7e2d2c5e0cec2df +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c5e1d2c5e0d2c5e0d2c5e0d2c5e0d2c5e1d1c4e0 +d1c4e0d1c4e0d0c3e0d0c3e0d0c2dfcfc4e0cfc5e1cec7e2cec7e2cfc6e1d0c6e1d0c5e0 +d1c5e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c5e1d0c5e1cfc5e1cfc6e1cfc6e1d0c6e2 +d2c4e0d3c4e0d3c4e0d4c5e1d3c6e1d0c7e3cfc8e3cec8e3cdc9e4cdc8e3cdc7e2cec7e2 +d0c6e1d3c5e0d3c4e0d5c2ded7c2ded8c1ddd7c1ddd5c1ddd4c3dfd3c3dfd2c4e0d0c5e1 +cfc6e1ccc7e3cbc8e3cac8e4cac8e4cbc7e3cdc6e2cfc6e1d1c5e1d2c4e0d3c3dfd3c3df +d3c3dfd1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d0c4e0d0c4e0d0c4e0cfc4e1d0c5e1d0c5e1d0c5e1d0c5e1cfc4e1d1c4e0d2c4e0 +d2c4e0d2c4e0d1c4e0d1c4e0d1c4e0d0c4e0d0c4e0d0c4e0d0c4e0d0c4e0d1c4e0d2c4e0 +d2c4e0d2c4e0d2c4e0d2c4e0d1c4e0d0c4e0d0c4e0d0c4e0d0c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c5e1d1c5e1d0c5e1d0c5e1d0c5e1d0c4e0d2c4e0 +d2c4e0d2c4e0d2c4e0d1c4e0d0c4e0d0c4e0cfc4e1d0c5e1d0c5e1d0c5e1d0c5e1d0c5e1 +d0c5e1d1c5e1d1c5e1d0c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d2c3df +d3c4e0d2c6e1cdc5e1cdc6e2c9c0def0d3e5aa5160a32321b42222c22425cb2726c92625 +c32525b32223a62b2ce1a9c3dccae2cfc4e1d0c4e0d1c4e0d2c4e0d2c4e0d2c4e0d2c4e0 +d2c4e0d1c4e0d0c4e0d1c5e1d1c5e1d0c5e1d0c5e1cfc4e1d0c4e0d0c4e0d0c4e0cfc4e1 +d0c5e1d0c6e2d0c4e0d0c4e0d0c5e1d0c5e1d1c5e1d3c5e0d5c5e0d8c5deceb8cfc5b2c2 +c8b8c3d0c4cad6cecfd8d2d1d8d4d1d6d4cfd4d3cfcbcbc9b6b7b7a3a3aaa3a0afb6b2c4 +cac5ddd3cbe4cec5e1d0c7e2d1c6e1d1c6e1d1c6e1d0c4e0cfc3e0cfc3e0d2c5e1d6cae4 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c5e1d2c5e1d2c5e0d2c5e0d2c5e1d2c5e1d1c4e0 +d1c4e0d1c4e0d0c3e0d0c3e0d0c3e0cfc4e0cec6e2cdc7e3cdc6e2cec7e2d0c6e2d0c5e1 +d2c4e0d3c3dfd3c3dfd3c3dfd2c4e0d2c4e0d1c5e1d0c6e2cdc6e2ccc7e3cbc7e3cdc6e2 +d1c5e1d4c5e1d4c5e0d4c6e0d3c6e1d0c7e2cfc7e2cec8e3cec8e3cdc8e3cdc7e2cfc6e1 +d2c5e0d3c4e0d5c3dfd7c1ddd8c1ddd8c0ddd7c1ddd5c2ded3c3dfd3c3dfd1c5e1cfc6e1 +cdc6e2cac8e4cacae5cacae5cac8e4cac8e4cec6e2d0c5e1d2c4e0d4c3dfd5c2ded6c1de +d4c3dfd2c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2c6e1d0c5e1d0c5e1cec5e1cec5e1cdc5e1cbc4e1cbc4e1cdc6e2d0c6e2cfc3e0d1c2df +d3c3dfd3c3dfd1c4e0cfc4e0cec3dfcdc3e0cdc4e0d0c5e1d0c5e1d1c5e1d3c5e1d3c4e0 +d3c4e0d4c3dfd4c3dfd3c3dfd2c4e0cfc4e1cec5e1cdc4e0cec4e0cfc3e0d0c3e0d0c3e0 +d2c4e0d2c4e0d1c4e0d1c4e0d1c5e1d0c5e1cfc6e1cec7e2cdc7e3cec7e2cfc4e1d1c2de +d2c0ddd2c1ded1c2dfd0c3e0cfc4e1cec4e0cec6e2cdc6e2cdc6e2ccc7e3cdc6e2cec7e2 +cec6e2cfc6e1d0c6e2d0c5e1d0c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d3c3df +d3c3dfd2c5e1cdc6e2cdc7e3cbc2dff2d3e5a249579e1f1fb42222c42425cb2726c92626 +c32525b42222a82e2de3abc6dccae2cfc4e1d0c4e0d1c4e0d2c2dfd2c3dfd2c3dfd3c3df +d3c3dfd2c4e0d1c5e1d0c6e2cfc6e2cec7e3cec7e3cfc6e1d0c6e2d1c5e1d1c5e1d0c7e2 +d0cbe5d0cbe5cbc0deccc3e0d2cae4d2cbe5d0c9e3d5c7dfdfc8dbdab6c7c69ba7d4adb3 +e6c6c7e1cecbdbd3cedcd8d4d9d7d6cac9cbcfced3b9b5bfa5a0afa39fb0b4afc2c8c1d9 +d4cbe3d4cae4cdc4e0d0c6e2d2c6e1d2c5e1d2c5e1d0c4e0cfc3e0cfc3e0d2c5e1d5c7e2 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d0c4e0d0c4e0d0c4e0cfc4e0d0c5e1cec6e2cfc6e1d0c6e2d0c5e1d0c4e0 +d1c4e0d2c4e0d2c4e0d2c4e0d2c4e0d1c4e0d0c4e0d0c5e1cfc5e1cec6e2cdc6e2cfc6e1 +d1c5e1d2c4e0d4c5e1d3c5e1d2c5e1d0c6e2d0c6e2d0c7e2d0c7e2cfc6e2cfc6e1d0c5e1 +d1c4e0d2c4e0d3c4e0d4c3dfd5c2ded5c2ded5c2ded3c3dfd3c3dfd2c4e0d0c4e0d0c5e1 +cec6e2cdc6e2cdc6e2cdc6e2cdc6e2cdc6e2d0c5e1d0c4e0d2c4e0d2c3dfd4c3dfd4c3df +d3c3dfd2c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2c5e1cfc4e1cec5e1cdc5e1cdc6e2cdc6e2cec8e3cec7e3cdc8e4d0c7e2d3c6e1d3c4e0 +d5c5e0d3c3dfd1c3dfcfc1decdc2dfcec4e0d0c7e2d0c6e2cfc4e1d1c5e1d2c4e0d3c3df +d4c4e0d5c2ded6c1ded4c3dfd1c3e0cdc4e1ccc5e2cdc6e2cec5e1cfc4e0d0c3e0d2c2df +d2c2dfd2c2dfd2c2dfd2c4e0d1c4e0d0c5e1cfc6e2cdc7e2cbc8e3ccc7e3cfc4e1d2c1de +d2bfdcd3c0ddd1c1ded0c3e0cec4e0cdc4e1ccc7e3cac7e3cac7e3cac8e4cbc8e3ccc7e3 +cdc6e2cec7e2d0c6e2d0c5e1d0c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d2c3df +d2c3dfd1c5e1cfc7e2cdc7e3cec4e0f2d5e69f42509d1e1fb42222c52625cb2726c92626 +c32525b32223a82d2de1a9c3dcc9e2cdc4e0cfc4e1d1c4e0d2c2dfd3c3dfd5c2ded5c2de +d4c3dfd3c3dfd2c5e1d0c7e2cec8e3cdc8e4cdc8e4cec7e3d0c7e2d1c6e1d1c5e1d0c6e2 +ccc8e4cdc9e4d0c6e2cec4e0d0c7e3d5cde6dbcce3dac1d3d1a8b4b7777fae6365c17c7a +dba59fe3c1bae2d0c8ddd7d1d5d3d4c6c6cfbdb8c8aea5bba9a0b8b8afc8cac0dad3c9e3 +d4c9e3d2c6e1d2c6e1d1c5e1d2c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d0c4e0d0c5e1d1c5e1d1c5e1d0c4e0d1c4e0 +d1c4e0d2c4e0d2c4e0d2c4e0d1c4e0d1c4e0d1c4e0d0c4e0d0c4e0d0c5e1d0c5e1d1c5e1 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c5e1d1c5e1d1c5e1d1c5e1d1c5e1d1c5e1d0c4e0 +d1c4e0d2c4e0d2c4e0d2c4e0d3c3dfd3c3dfd3c3dfd2c4e0d2c4e0d2c4e0d1c4e0d0c4e0 +cfc4e1d0c5e1d0c5e1d0c5e1d0c5e1d0c5e1d0c4e0d1c4e0d1c4e0d2c4e0d2c4e0d2c4e0 +d2c4e0d1c3e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d3c4e0cfc3e0cdc3e0cec5e1cfc6e2d1c8e3d3c9e3d4c9e3d2c7e1d2c4e0d5c7e1d6c7e2 +d5c6e1d2c3dfd1c2dfd0c2dfd2c4e0d2c5e1d4c6e1d1c4e0cfc2dfcfc2dfd0c2dfd1c2df +d3c3dfd3c3dfd3c4e0d2c4e0cfc6e1cac7e3c9c8e4cbc7e3cdc6e2d0c5e1d1c3e0d3c3df +d4c3dfd5c2ded5c2ded5c2ded3c3dfd3c3dfd1c5e1d0c6e2cec7e2cec6e2cfc4e1d1c2de +d2c1ded1c1ded0c2dfcfc4e0cec5e1cdc6e2ccc7e3cbc7e3cac7e3ccc7e3cec7e2cfc6e1 +d0c5e1d1c5e1d2c4e0d3c3dfd3c3dfd2c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d2c3df +d2c3dfd1c5e1cec7e2cdc6e2cec4e0f2d5e6a044529e1f1fb32223c42425cb2726c92725 +c22625b12222a52a2bdfa8c2dbcae3cec5e1cfc5e1cfc4e1d2c2dfd3c2dfd5c2ded5c2de +d5c2ded3c3dfd3c4e0d1c6e1d0c7e2cec7e3cec7e3d0c7e2d0c6e2d3c5e1d2c4e0cfc3e0 +c8bfdecac2e0d4cde6d3c7e2d0c1deddc8e0e5c1d7d39fb1b0626f8f21249a262198261f +b0534bd49690e6c0bbddc8c6ccc5c7c5c3cea8a1b8b1a6c3beb3d0cac0dcd0c5e0d0c5e0 +cfc3e0d0c4e0d6cae4d2c5e0d2c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +dfc7e0d8c5e0d3c3dfd2c2dfd1c2dfd1c1ded3c0ddd5c0dcd6c1dcd5c1dcd0bfdcccbfdd +ccc0ded0c2dfd3c5e1d5c7e2d4c4e0d2c1decfbddbcfbedcd1c0ded1c1ded1c1decfc2df +cfc4e1cfc5e1cfc5e1cdc6e2cacae5c7cbe5c7cbe4cacae4cdc8e2d0c6e1d2c4e0d4c3df +d6c3ded8c1ddd8c0ddd8c0ddd7c0ddd5c0ddd3c2dfd2c2dfd2c4e0d0c4e0cfc4e1cfc4e1 +d0c5e1d0c5e1cec6e2cec6e2cec7e2cdc6e2cdc6e2cec7e2cfc6e1d1c5e1d2c4e0d3c3df +d4c3dfd5c2ded6c1ded6c1ded5c2ded2c2dfd1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d3c3df +d3c3dfd1c5e1cec7e2cdc6e2cdc3e0f2d4e59f42509d1e1fb12122c22425cb2726cb2726 +c52525b12122a22727dea7c0dbcae3cdc5e1cdc6e2cfc6e1d1c4e0d2c2dfd5c2ded6c1de +d5c1ddd5c2ded3c4e0d4c5e1d1c6e1d0c7e2d0c6e2d1c5e1d1c4e0d3c3dfd3c3dfd2c1de +d1c0ddd5c7e2cbc4e1d1c3dfe5cae1edbed7d993adba556da32530a92122b22723a82021 +a62421bf5657d99094deb4b7c4b6baa6a3afa8a0b7bdb1d0d0c4dfd6cbe3d5c9e2d0c4df +cfc2dfd0c4e0d6cae4d2c5e0d2c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +f0b9d2f0c2daeec7deebcae0e9cbe1e3c9e0dfc4dedcc2dddfc6dfddc9e1dccee5d7d0e8 +d0cbe5cfc7e2cdc3e0cfc0decfbddccfbbdacdb8d9d2bddbd5c2ded5c3dfd2c1ded1c2df +cfc4e0ccc3e0ccc5e1cac5e2cac7e3cacae3cbcae3cdc8e2d0c8e2d3c7e1d3c4e0d6c4df +d5c2ded6c3ded7c1ddd8c0ddd7c0ddd6c1ded5c1ddd3c2dfd2c3dfd2c4e0d1c5e1cec7e2 +cdc8e2cdc8e2cdc8e2cec8e3cfc6e1d0c7e1d0c6e1d1c5e0d2c4e0d3c3dfd4c3dfd5c1dd +d5c0ddd5c0ddd7c0ddd7bfdcd5c0ddd2c2dfd1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d3c4e0 +d3c4e0d2c5e1cec7e2cbc6e2cbc2dff0d1e49b3f4d991c1eaf2022c12424cb2726cb2726 +c52525af2022a22626dda5bedbcae3cdc7e3cbc7e3cdc6e2d0c5e1d2c4e0d4c3dfd5c1dd +d6c1ddd5c0ddd4c2ded3c4e0d3c4e0d2c5e1d2c5e1d2c4e0d2c3dfd3c3dfd4c1ded6c3de +dac6e0d5c2dec9bddcdfcce3f0cadfdc97b6b64868a41d28b02022c32525c82626c42525 +ae1f22a72325bc5761ca929bbaa4ac9891a0c3bbd2d0c4dfd5c9e2d3c8e2d1c6e1d2c7e1 +d4c9e3d4c6e1cfc4e0d2c5e1d2c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +ae2a28b33f41c35e66d68492eaaabbf4c5d8f1cce0e5cbe2dbc7e1d4c9e3c4c5e2bbc5e1 +bdc8e4c4c8e5cbcae5d3cae4d6c9e3d6c5e0d5c2ded5c0dcd7c0ddd4bfdcd3bfdcd2bfdc +d1c0ddd0c2dfcfc3e0cfc4e0d3c3dfd6c3dfd7c4dfd6c3dfd6c3dfd5c4e0d4c4e0d3c4e0 +d3c4e0d3c4e0d3c5e0d2c4e0d2c4e0d2c4e0d2c4e0d2c4e0d2c4e0d2c4e0d1c6e1cec9e2 +cecae0cfc9e0d0c8e1d0c7e2d1c6e1d3c7e1d3c4e0d3c4e0d3c4e0d4c3dfd5c2ded5c1dd +d5c1ddd4c1ded4c1ded4c1ded2c1ded2c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d3c4e0 +d3c4e0d2c5e1cec7e2ccc7e3cdc3e0f2d5e6a044529f2020b32222c12424cb2726cb2726 +c52525af2022a22626dda5bedbcae3ccc7e3cac8e4cac8e4cdc6e2d1c4e0d3c3dfd5c1dd +d5c0ddd5c0ddd4c1ded3c2dfd2c3dfd2c4e0d2c4e0d2c3dfd2c3dfd4c2ded5c1ddd6c1de +d8c0ddcfb6d7e5d2e6f0d0e3cc8aa7a83c59a71f29c02225d22726cc2726d42a26cf2826 +c22325b12226a83444a66070aa8f9db9b1c1d8cde5d9cee6d4c9e2cec3dfcdc1ded3c7e1 +d7cce5d5c9e3cdc0ded2c5e1d2c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +be2624ba2424b62924b23030ac3b43a74457a6546db57391cd98b9deb4d2e8cbe1e8d3e6 +e1d0e6dbcae3d6c3dfd2bedcd2bedcd5c0ddd7c3dfd5c1ddd2bfdcd0bedccfbedccfbedc +cfbfddcfc1dfcfc4e0d3c5e0d6c2dedabfdbdabfdbdac0dcd6c1ded3c3dfd2c4e0d0c6e1 +cec7e2ccc7e2cbc8e3cbc8e3cdc7e2cfc8e2d0c7e1d2c6e1d3c5e0d3c6e1d2c7e1d1c7df +d0c9dfd1c8ded2c7dfd3c7e1d5c6e0d5c5dfd5c4e0d5c3dfd4c3dfd4c3dfd3c3dfd2c3df +d2c4e0d0c4e0cfc4e0cfc4e1cfc4e1cfc4e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d3c3df +d3c3dfd1c5e1cec7e2cdc7e3d0c6e2f6d9e8a54d5ba62622b52423c22425cb2726cb2726 +c52525b12122a22827dea7c0dbcbe3cac8e4c8c9e5c9c8e4cdc6e2d0c5e1d3c3dfd4c1dd +d5c0ddd4c1ddd3c1ded2c3dfd2c3dfd1c4e0d1c4e0d2c4e0d2c3dfd3c3dfd4c1ded7c1dd +dcc3dee7cae1e6c2dbc88da7a648629f202cb32023cf2626e02e25e32f25db2d26d92b26 +c52525a41e219b3042af7184c1a9bcc8c1d5d2c7e1d6cbe3d4c9e2d0c5e1cfc3e0d1c6e1 +d5c9e3d4c6e1d0c3e0d2c5e1d2c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d42a26cc2826c82625c52625c22729b9262db32635b52c44bb3b58c14a68c15779c86c8d +d987a5eba5c3f0bcd6efc8deefcce0e5c9e0dcc7e0d5c7e1d0c9e3ccc7e2cac7e2c9c5e1 +cac5e2ccc6e2cfc6e1d2c6e1d5c2ded8bedbd8bddad6bfdcd3c0ddd0c2dfcdc5e1c9c8e4 +c5c9e5c4cae6c3cbe5c4cbe5c6cae4cacae3cec8e2d1c7e1d5c6e0d6c5dfd6c6ded5c5de +d5c6ded5c5dfd6c5dfd6c4dfd6c3dfd6c3dfd5c2ded5c2ded4c3dfd3c3dfd1c3e0d0c5e1 +cdc6e2cac7e3c8c9e5c7c9e5cac8e4cfc5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d3c3df +d3c3dfd1c5e1cec7e2cdc6e2d0c6e2f5d8e7a54c5aa62622b72423c42425cb2726c92725 +c22625b12222a52b2bdfa8c2dbcae3cbc7e3c9c8e4cac8e4cdc6e2d0c4e0d3c2dfd4c1dd +d4c1ddd3c0ddd2c2dfd2c3dfd0c4e0d0c5e1d0c5e1d1c5e1d2c5e1d3c3dfd4c3dfd8c5e0 +e4c9e1e9c4dbc4869f9c40569f2635ae2427be2524cb2726d92b26de2e25cd2826c62425 +ad2022921a22a05467caa1b7dfcce3cfc4decec3dfd1c6e1d3c7e1d2c6e1d1c5e0d2c5e0 +d3c6e1d3c6e1d2c5e0d2c5e1d2c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +dc2e25d92b26d62a26d62a26d52926d22826cf2726cb2526ca2627c7252bc22635c22c44 +c73d55cb4e67ca5f77ca7087d38a9ddaa0b3e0b4c5e4c5d6e3cee2dccde2d5cbe2d0cae3 +cec9e2ccc8e2cdc7e2d0c5e1d3c2dfd4bfdcd4bfdcd2bfddd1c1decec3e0cbc5e2c8c8e4 +c4c9e5c3cae6c2cbe6c3cbe5c6cae4cacae4cdc8e2d0c7e2d3c6e0d5c5dfd6c5dfd5c4df +d5c4dfd6c4dfd6c3dfd6c3ded6c3ded6c1ded5c2ded4c3dfd2c3dfd1c4e0cfc5e1cbc7e3 +c9c8e4c5cae6c2cbe6c0cbe7c4cae6cdc6e2d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d3c4e0 +d4c5e1d2c6e1cec6e2cbc5e2ccc3e0f2d5e6a14553a02120b52423c52625cb2726c92626 +c22625b32223a82d2de1a9c3dbcae3ccc7e3cbc7e3ccc7e3cfc6e1d1c4e0d3c2dfd3c1de +d2c1ded2c1ded1c2dfcfc4e0cfc5e1cec5e1cec6e2d0c6e2d1c6e1d3c5e1d4c5e0dec8e0 +e9c6d9ca93a4a444599c1f2aa72021b92424c52725c92825cc2726d22a26c82625aa1f21 +981d1fa04f5fc091a7d9bfd9dccce4d1c4e0d2c5e0d0c4e0d0c3e0d0c4e0d3c6e1d4c6e1 +d4c6e1d3c6e1d3c6e1d2c5e1d2c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d92b26d62b26da2b26dd2d26dd2d26dd2d26dc2d26da2c26da2c26d62b26cd2826c82526 +c42525c02526ba2528b9292fbe3b46c85261cc6575cf798ad48c9fdba0b3e4b7c9e8c6d8 +e1ccdfdaccdfd5cde0d1cbe3d1c7e2cfc4e0cfc3e0cec2dfccc2dfcac1dfcac2e0cbc4e1 +ccc6e2cdc7e3ccc7e3ccc7e3cdc7e3ccc6e1cdc5e1cec6e1d0c7e1d2c7e2d3c7e1d1c3e0 +d2c3dfd2c2dfd3c3dfd4c3dfd5c3dfd4c3dfd3c2dfd1c0ded1c3e0d0c4e0cec6e2cac7e3 +c8c9e5c4cae6c1cce7c0cde7c4cae5cdc6e2d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d3c4e0 +d3c4e0d1c5e1cec6e2ccc6e2cac0def2d3e5a44a59a12220b52423c52625cb2726c92625 +c22425b12222a52a2bdfa8c2dbc9e2cdc6e2cec7e3cfc6e2d1c6e1d2c4e0d3c3dfd3c2df +d2c2dfd1c3dfcfc4e0cfc6e1cec7e2cac5e2cdc6e2d3cae4d0c7e1d0c2dfd6c4dedfbed4 +ce98a5ab535d9e1f25ae2222b92323c22625c82825c72825c12624c12724a9202196201e +ab5862c799abd5bed6d5c6e0d2c2dfd4c6e1d4c6e1cfc4e0d0c3e0d0c4e0d3c6e1d4c6e1 +d4c6e1d3c6e1d2c5e1d2c5e1d2c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +cf2826d22a26d62b26d92d26d92d26d92d26da2b26dc2e25dd2e25d92d26d32b26cf2a26 +ce2926cf2826cf2826d02826cd2726ca2526c32427be252fc13547ca5365d57284d98c9d +d59daed3aab8d7bac7dbc8d7dbcee4d6cce5d3cae4d2c7e2d1c4e0d3c3dfd3c4e0d3c3df +d3c2dfd3c2dfd5c4dfd4c5e0d3c5e0d0c4e0cfc4e0cdc4e0cdc6e2cdc6e2cec7e3cec5e1 +cec3e0cfc4e0cfc4e0d0c4e0d1c3e0d0c2dfcfc0decfc1decfc3e0cfc4e1cec6e2ccc7e3 +cac8e4c7cae5c5cbe5c5cbe5c8cae4cec7e2d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d2c3df +d3c3dfd1c5e1cdc5e1cdc8e3cbc2dff3d6e6ac5562a62622b52423c42425cb2726c92725 +c12424ae2022a22626dda5bedbc9e2cfc6e1d0c7e2d2c6e1d4c5e1d3c3dfd2c3dfd2c3df +d2c3dfcfc4e0cfc6e1cec7e2ccc7e3cac6e2ccc7e2d4cae3d8cbe3d7c6ded7bbd2cc99aa +a74e55a62a2aac1f21c02424cb2726cb2825c42625bc2524b42523a724218c1e1c9e5155 +cc9eacdec7dbd7cbe4cfc4e1d0c0ded3c4e0d2c4e0d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1 +d2c5e1d2c5e1d2c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +bc2324ca2b26cd2826c82725c82625ce2826d62b26d92e26d72c26d42b26d52c26d62c26 +d42b26d42b26d92b26dd2e25df2e25dd2d26da2c26d72a28d22a2cc6262cb6232aa7202a +a12a38b14b5bc97585dd97a7e3aabee3b5cce2b9d3e5c1d9eac9dfebcde2e8cce2e0c8e0 +d8c1ddd6c1ded7c6e0d3c4e0d2c4e0d2c6e1d3c6e1d2c6e1cfc3e0ccc0decac1dfcdc6e2 +cdc8e4cdc7e3cac3e1c9c2e0c9c0dfcbc0decdc2dfcfc4e0cfc4e0cfc4e1cfc4e1d0c5e1 +cfc6e1cec7e2cdc7e2cdc8e2cfc6e1d0c6e2d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d2c3df +d3c3dfd2c6e1cec6e2cec8e3cbc2dff2d4e5ab525fa32321b42222c42425cb2726c92725 +c12424af2022a22727dea7c0dcc9e2d0c5e1d2c5e1d4c5e1d3c4e0d3c3dfd2c3dfd2c3df +d0c4e0cfc5e1cec7e2cdc8e3cac5e1d0c9e3cec4ded3c3dae8d3e5e8ccddcb9fafa75763 +9c1f20ba2724c02424c62625d42b26cd2926bc2324b02322a82521851818a15554c59da8 +d5bed1d5c7e1d2c9e4d2c7e2d1c1decdbcdbd2c4e0d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1 +d2c5e1d2c5e1d2c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +941b1da21f20ae2022bb2424c52825c82725c52625c12424c82725d32c26d42b26d52b26 +da2e26dd2f25dd2f25d92d26d62a26d72b26d92b26d32a26ce2826d02726d22727cf2629 +ca2529c8252ac8252cc32534b72437b33147c75d71e58799f4a9b9f3b5c5ebbbcde5c2d3 +e1cbdedbcbe3cfc6e1cac3e1c6bfdec9c0ded1c3dfd4c4e0d7c4dfd6c3dfd3c3dfcac5e1 +c6c7e3c5c7e3c3c3e1c4c3e1c7c3e1cec8e3d5cee6d7cee6cfc4e0d0c3e0d2c2dfd3c3df +d4c3dfd5c3dfd6c3dfd6c3dfd4c4e0d2c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d3c3df +d3c4e0d2c6e1cdc6e2cfc9e4cbc2dff0d2e4a74f5c9f2020b32122c42425cb2726c92725 +c22425b02122a5292adea7c0dcc9e2d1c5e1d4c5e1d3c4e0d4c4e0d3c3dfd2c3dfd1c4e0 +d0c5e1cec5e1cdc6e2cfc7e2d9d0e8d6cbe3d2bfd5e6c8d9ebc4d2ce9faca9616e9d262c +b82323cd2726d22a26cd2826cd2826d12926cb2826b32323931b1c883335c199a3e7d3e4 +dbcee5d2c4e0d2c3dfd5c4e0d2c1decbbadad1c3e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +b562649a312e96211e9a1e1f9d1e1fa31f20ad2322b82724b42423b12222c22625ce2926 +cf2926cd2826cb2726cb2726ce2826d42b26da2d26dd2e25de2f25df2e25e02e25e02e25 +e02d25e32e25e52e25e32e25d32726c32525bf2626ba292aaa24279f262aaa4751c67c88 +e4abbaf5cadaf4d2e3ecd1e4e4cce2dcc5dfd9c1ddd6bfdcd4bcdad2b9d9d0bddbcfc4e0 +cfc9e4d2cde6d4cfe7d0cbe5ccc6e2c6c0dfc2bbdcc3bbdccfc4e0d1c3e0d3c2dfd5c2de +d8c1dddac0dcdbc0dcdbc0dcd8c0ddd3c3dfd1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d3c3df +d3c4e0d3c7e2cec7e2d0cae4cbc2dff0d1e4a44b599d1f1fb12122c42425cb2726c92625 +c22425b12222a52b2bdfa8c2dcc9e2d0c4e0d3c4e0d4c4e0d4c4e0d2c3dfd2c4e0d0c4e0 +cfc5e1cec6e2ccc4e1cec4e0dccde5e1cbe2edc8d9eebdc9c786939d464f901d21ad2222 +d42a26cd2826cc2726cd2826c12424bc2324b82323a31f21902933c391a0d7c4d8dcd2e8 +d0c7e2d0c0ddd3bfdcd2bddbd0bedcd3c3dfd1c3e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +dfc3dbe6c2d9edc1d5e4b0c2c887959e4b567f191e851818941f1e9e2220aa2121b02022 +b32122b72223c02424ca2926cd2926c72625c02424c42425cc2726d22a26d92b26e02e25 +e52f25e52d24e42f24df2e25d92b26d22b26cd2826ca2826c52625c32525bf2526bc262c +b82a37ae293fa72f4cb65372ce7f9be3a6c4ebbcd6e8c7dee4cbe2dfcae2ddc9e1dfc8df +dbc3dcd6c0dad2c0dad1c0dcd3c4e0d5c7e2d6cbe4d5cae4cfc4e1d1c4e0d2c2dfd3c2df +d6c1ded8c0dcdac0dcdbbfdbd8c0ddd3c3dfd1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d3c3df +d3c4e0d3c7e2cec7e2d0cae4cbc2dff0d1e4a44b599d1f1fb12122c42425cb2726c92526 +c22625b32223a62b2ce0a9c2dcc9e2d0c3e0d3c4e0d4c4e0d3c3dfd2c4e0d0c5e1d0c6e2 +cfc6e2d0c6e2d2c5e1d3c2dfd5bbd6f0c9dcf5bccccb7a88a83b44a02224aa1f21be2324 +d42a26d62b26c62625c62925bf2b24a12020921a1ca33b4aca899ce8c9dedacde5cac0de +c8bbdbd2bfddd6c1ddd2bddbd0bfdcd7c9e3d2c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2cbe5d8cde6decee5decae2dabcd7d6afc7dfadc0e3a9b7cb8993b15d679b2e3e981d2b +9e1f2ca01f29a41e25a71f21ae2122b82423c12825c72925cb2826cc2726cd2826cf2826 +d32a26d62b26da2b26da2b26d72c26d52b26d42c26d62b26d62b26da2d26d72b26d02726 +cb2526c32425be242ab92636b22e40ab3a4da84c5fb16677bf8391ce9ca9e0b0bff3c0d1 +f1c0d3efc1d5e9c2d9e3c2dadcc2dcd6c3ded3c2dfd0c2dfd0c5e1d0c5e1d0c4e0d2c4e0 +d2c3dfd4c3dfd6c1ded7c1ddd5c2ded2c2dfd1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d3c3df +d3c4e0d2c6e1cec6e2cfc9e4cbc2dff1d2e4a74e5c9e2020b32122c22425c92725c92526 +c22625b42423a82e2de1a9c3dcc9e2cfc3e0d3c3dfd3c3dfd2c4e0d1c4e0d0c5e1cfc6e1 +cfc6e1d1c6e1d5c6e0ddc6dfe8c5dbebb5cacc7c8caf3f4aac2428b72323c32525cc2626 +d62b26da2c26c52625ab21219d201f9a2e29ab5960cc92a4e8c1d9e0cae2d6c9e3cbbddc +cbbbdbd3c1ded7c4dfd5c3dfd1c3e0d3c7e2d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +c5c2e0cbc5e2d0c7e3d3c6e1d5c4e0dac6e0e5cbe2edcfe2e5c0d9d8acc9d4a1bed296b1 +c7849eb569839d435b891a3088161a971c1ea72121ae2222b32123ba2323c12424c52725 +cb2925ce2a26d12b26d32b26d22b26d32a26d72c26dc2e25dd2e25dc2d25db2d26da2c26 +da2d26d82d26d02826cd2726c52625ba2524b32523b22a26b83830bf4844c15358c05d69 +c97486de93a6eaaac0edb7cee8bdd5e0bfd9d9c3ded4c5e0d1c5e1cec6e2ccc7e3ccc7e3 +cdc6e2cec6e2d0c5e1cfc4e1d0c4e0d0c3e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d2c3df +d3c4e0d2c6e1cec6e2cec8e3cbc2dff2d3e5aa525fa32220b42222c22425c92725c82625 +c22625b52423aa3030e3abc4dcc9e2cfc4e0d3c4e0d3c4e0d1c5e1d0c5e1cfc6e1cec5e1 +d0c6e2d2c6e1d6c4dfdec1dbe9b9d1cc859aa53849ac232bbd2426cb2726d22826d42a26 +cf2826c52625b22122931a1c851f19a0625fcba4aae0c9dadac9e2d2c1ded1c0ddd3c0dd +d2c2dfd2c3dfd3c6e1d3c9e3d0c9e2cdc6e0d1c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +cbc4e1cdc6e2ccc4e1cbc2dfcec3dfd4c6e1d6c7e1d5c4dfd7c5e0dccae2e3cfe5e0cbe2 +d8bddacfaccac99cb7c386a1b87184ac5463a43b469a2125971c1ea11f20a82021ae2322 +b32323b52523b82523bc2524c72725cf2826d42a26d52a26d62a26d92b26da2e25da2e25 +da2d26da2c26d92d26d82d26d82d26d52b26d12926cd2826cc2826c82725bf2624af2424 +b3353ec14e5bc65d6dc3677cc5798ecc8fa8d5a8c4d9bcd7d6c4dfd0c6e1cbc8e3c9c8e4 +c9c9e5c9c8e4cac8e4cbc7e3cec6e2cfc4e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c3e0 +d2c4e0d1c5e1cec5e1cec7e2ccc1def2d5e6ac5466a52522b42222c12424c82625c92725 +c52625b82423ab3032e3acc5dccae2cfc5e1d2c6e1d2c5e1d1c5e1d0c5e1cec5e1cec5e1 +d0c6e2d3c4e0dcc2dddeb1cec9849dab475ba32028b52223c82625d32926d92b26d12826 +c02324b021229e1e1f9225249d5c5abe9e9fd6cbd4d4d4e7c9c6e2cfc1decdbadad5c2de +d6c5e0cec3dfc9c3e0cccae4d1cce3cfc7dfd0c5e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c3e0d1c3e0d0c3e0d0c3e0d1c4e0d0c4e0d0c4e0d1c5e1 +d1c5e1d1c5e1d1c5e1d1c5e1d0c4e0d0c4e0d0c4e0d1c5e1d1c5e1d0c4e0d1c4e0d1c3e0 +d1c4e0d1c4e0d2c4e0d3c5e1d3c5e1d2c4e0d1c4e0d1c4e0d0c3e0d0c4e0d0c4e0d1c5e1 +d1c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c8e3d1c9e4cfc5e1cbc2dfccc3e0d1c6e1d0c4e0ccbedccdbfddd3c5e1d3c8e3d2c7e2 +d2c4e0d8c6e1e5cde3edd1e4e9c2dad7a5bdc7899fb97285b36172b15764a94850a03639 +972323931e1e931e1d9b1e1fad2222c22525c72525c72525cb2626cd2826d22a26d32a26 +d32a26d52b26d72c26da2d26da2e25dc2e25dd2d25dd2d25dd2d25db2d26d32b26c72825 +c12825ba2524b42223af2326b02c37b64a5abf6a7cc48499c99fb4ccb5ced0c7dfcbcae3 +c9cae4cac9e4cdcae4d0c9e4d0c6e2d2c5e1d3c5e1d3c5e0d3c5e0d3c5e1d2c4e0d1c3e0 +d0c2dfcfc2dfd3c5e0d2c4e0d1c4e0d1c3e0d1c3e0d1c4e0d3c5e1d4c5e1d3c5e1d0c3e0 +d0c3e0d0c3e0d1c4e0d1c4e0d3c5e1d1c4e0d1c4e0d0c3e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c5e1d0c6e1 +d0c7e1d0c5e0cfc4e1d1c7e2cec2dff1d3e5ad536fa6242cb12222bc2424c72725cd2826 +cb2626bb2324aa2b36e1abc4dccde5cdc8e4d0c7e3d4c9e3d4c5e1d2c4e0d2c9e3cfc6e1 +cfc2dfd9c3dee0b4d0cf87a0ae4359a22023b82223c52525cc2726cf2826ce2826c02325 +a82022961c2291212faa5c69ca9da8d9c3d0d4cee0cacee5cacae5cfc6e1ccbddcd2c2df +d3c6e1cdc2dfc9c2e0cdc6e2d2cae3d2c7e1d1c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d0c3e0cfc2dfcfc2dfcfc2dfcfc3e0cfc4e1d0c5e1d0c6e1 +d0c7e1d0c7e1d0c6e1d0c6e2d0c5e1d0c5e1d0c5e1cfc6e1cfc6e1cfc4e1cfc4e0cfc2df +d1c3e0d1c3e0d3c5e0d3c6dfd3c7e1d2c4e0d1c3dfcfc2dfcfc2dfcfc3e0cfc4e1d0c6e2 +d0c6e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d0c4e0d0c4e0d0c4e0d0c4e0d0c4e0d0c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d0c4e0d0c4e0d0c4e0d0c4e0d0c4e0d0c4e0d1c3e0d1c3e0d1c3e0d1c4e0d3c4e0d4c5e1 +d2c4e0d2c3dfd3c3dfd6c5e0d9c7e1e0cae2e3cce3eacee3e8c9e0ddb8d2cba0b7b6849b +a1657b9252668943568e3748982434a41e24af2022b32023b72223bc2224bf2324c32525 +c82625cd2726cf2826d32b26d42a26d72b26da2b26dc2d25de2e25de2f25db2e26d72e26 +d72e26d32a26d62b26d42a26cb2726bc2524ad282aa53b42bd7983cba4b2d7c7d7d0cadd +cac8dccdc9dfd3cce3d5cae2d2c4dfd2c4e0d3c4e0d4c5e1d4c6e1d3c5e0d2c4e0d1c3e0 +d0c2dfcfc2dfd4c5e1d2c4e0d1c3e0d0c3e0d0c3e0d1c4e0d4c5e1d4c6e1d5c7e2d0c3e0 +d0c3e0d0c2dfd1c3e0d3c5e1d3c5e1d3c5e1d1c4e0d1c4e0d2c5e1d2c5e1d2c5e1d2c5e0 +d2c5e0d2c5e0d2c5e0d2c5e0d2c5e0d2c5e1d2c5e1d1c4e0d1c4e0d2c5e1d2c5e1d2c5e1 +d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e0d2c5e0d2c5e0d2c5e0d2c5e0d0c6e1cec8e2 +cdc8e2cec7e2d1c3e0d5c8e2d0c2dfefd2e4ac4f77a42238ac2122b52523c42625d32a26 +d32a26bc2224a62537dba8c1dbd1e8cbcde5cdcae3d3c9e3d3c4e0d2c3dfd4c9e3d3c5e1 +d2bedcd8b2d1d18ba5b6455ab3242bb72323c92725cf2926cb2825c22425ba2323a92021 +8f1e327f1f3f99506bca95ace3bed6e1cae2d5c7e1cec7e2cfcae5cbc6e2ccc5e2cdc6e2 +cec5e1d0c5e1d1c5e1d3c4e0d3c3dfd3c4e0d2c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2c5e1d2c5e0d2c5e0d1c3e0d0c2dfcec1dfcec1dfcec1dfcec3e0cec4e0d0c6e2cfc6e1 +d0c8e2d0c8e2cec8e2cec8e3cec7e2cec6e2cec6e2ccc6dfcdc7e0cec4e0cec3e0cfc2df +d1c3e0d2c4e0d3c6dfd3c7dbd5c8ddd4c6e0d1c2dfcfc0decec0decec2dfd0c5e1d0c7e3 +d0c7e1d1c4e0d2c4e0d2c4e0d2c4e0d2c4e0d2c5e0d2c5e0d2c5e0d2c5e1d1c4e0d1c4e0 +cfc4e0cfc4e1cfc4e1cfc4e1d0c5e1d0c5e1d0c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d3c4e0d4c5e1 +d3c3dfd1c2dfd0c3e0cfc4e1d0c6e2d3cae4d3cae4d3c8e2d3c5e0d5c5e0dbc9e2e5cee3 +e9d0e4dfc0d9cba7c1be8ca6ac607999304899253696202a971d259e1f28a62228a92022 +ac2021b02122ba2323c12424c82625cf2826d32a26d62b26da2d25dd2d25dc2e25da2d25 +e02f25e32f25e02e25e12e25db2e26c92725b82724c25152f3b0b5f1c8cce8d5dcd4cfd9 +c7c9d6c6c9d6cccadad0c8d9cec3d9cfc1decec1dfcfc1decfc2dfd0c3e0d1c4e0d4c6e1 +d5c7e2d6cae4cfc1decec2dfcfc3e0cfc4e0d0c4e0d1c4e0d2c5e0d2c4e0d1c4e0d3c6e1 +d1c4e0d0c3e0d1c3e0d1c4e0d3c5e1d4c6e1d5c7e2d5c7e2d2c5e1d2c5e1d2c5e1d2c5e0 +d2c5e0d2c5e0d2c5e0d2c5e0d2c5e0d2c5e1d2c5e1d1c4e0d1c4e0d2c5e1d2c5e1d2c5e1 +d2c5e1d2c5e0d2c5e1d2c5e1d2c5e0d2c5e0d2c5e0d2c5e0d2c5e0d2c5e0d0c6e1cdc9e2 +cbcae3cec7e2d2c3dfd6c6e1d0c2dfefd0e3ac4c7aa1203bab2024b52623c22725d22a26 +d22a26bb2224a22339d7a5bfd5cde4cacae5cdc6e2c9bfdecdc2dfcec3dfccbeddddc8e1 +e0b8d6c984a1ad4359ab2127c52627d32b26cf2826c42425bf2424bb2424b123239a1e24 +781a36975879ca99b5e2b9d5e5c8dfe2cae2d7c8e2cdc2dfc5bfdecac7e3cac8e4cac7e3 +cdc6e2d0c6e2d1c4e0d3c3dfd5c2ded3c3dfd3c3dfd1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2c5e0d2c7e1d2c7e1d1c4e0d0c2dfcec1dfcec1dfcec2dfcdc2dfcec3e0d0c5e1cec7e2 +d0c7e2cfc7e2cec8e3cec8e3cec7e2cec6e2cec7e2ccc6e1d0c6e2d0c5e1d1c6e2d2c6e1 +d4c6e1d5c7e2d5c7e1d5c7dfd8c9e2d5c7e1d3c4e0d1c3dfcfc2dfcfc3e0d0c5e1d1c6e2 +d1c7e2d1c4e0d2c4e0d2c4e0d2c4e0d1c4e0d2c5e0d2c7e1d2c5e0d2c5e0d1c4e0d1c4e0 +cfc3e0cfc4e0cfc4e0cfc4e1d0c5e1d0c5e0d0c5e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d4c5e1d4c5e1 +d3c3dfd1c3dfcfc3e0cdc2dfcdc3e0cdc5e1cfc6e1ccc3e0cec3dfd3c5e0d7c7e1ddcae2 +e3cbe2e7cbe1e8cae0eac9ddf2d1e1f5d3dee5bec8c79aa6a067727d313e721320761219 +87181c971d1fa22022aa1f21b22022bc2224c32325c92526cf2726d62a26d82b26d62b26 +dc2e25e32f24d72b26db2d26d82d26c72825c13730d87b7bfbd8dafce1e4eee7e9dde4e7 +d3e2e6d0e0e6cedae1cdd2dccaccd8cbc5dacac2d9c9bfd7c7bed7c8bed7c9bfd9cac1dc +d0c5dfd0c7e2d1c6e1d0c6e1d3c7e2d3c8e2d4c7e2d4c6e1d1c5e1cfc4e0cec0ded3c6e1 +d2c5e1d1c4e0cfc3e0cfc3e0cfc3e0d0c3e0d3c5e1d3c5e1d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d2c5e1d1c4e0d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d0c6e1cdc8e2 +cbcae4cec6e1d2c2dfd6c5e0d0c0ddefcee2ac4a74a11f36ac2122b82623c12724cf2826 +cf2826b92123a1253bd6a6c0d5cbe4cec7e3d4c6e1d2c7e2c3c5e2c4c6e2dbcbe4e1b8d4 +cd819cb13c55a41e21af2022c52625ce2b26c52725be2424bb2324b42223a52021962334 +9e526ec594b1efc6ddebcae0dec2ddd9c3ded6c5e0d2c6e1c9c3e0ccc7e3ccc6e2ccc7e3 +cec6e2d0c5e1d1c4e0d3c4e0d3c4e0d3c4e0d2c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2c5e0d2c7e1d2c7e1d2c5e0d1c4e0cfc4e0cfc4e0cfc4e0cfc3e0cfc3e0cfc4e0cec4e0 +cfc4e1d0c6e2d0c6e2cfc6e1cfc8e2d0c7e2d0c6e2d0c5e1d1c3e0d1c3e0d1c3e0d1c3df +d1c3dfd1c3dfd0c2dfd0c2dfd0c0ddcfc1decfc1ded0c2dfd0c2dfd0c3e0d1c3e0d1c4e0 +d2c5e1d0c2dfd0c3e0d0c4e0d1c4e0d1c4e0d2c5e0d2c5e0d2c5e0d2c5e1d1c4e0d1c4e0 +cfc4e0cfc4e1cfc4e1cfc4e1cfc4e1d0c5e1d0c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d3c4e0d4c5e1 +d3c3dfd1c3dfcfc3e0cdc2dfccc3e0cbc4e1cbc4e1cac2e0ccc3e0d1c4e0d5c5e0d3c2df +d1bcd9d4bbd9d9bfdadec6dddacbe1d0cddfcbcad7d2cad8e2d4e1edd6e4e6c4d2cda1b0 +b5788a9d4e618f2b3f932133981c289e1c25a61d26ae2027b32028b72125bb2224c12324 +c22425d62a26cc2726d22b26ce2b26bd2925c74f4df2a3a5fcdde0fae1e2e9eaeae1eded +dff0f1dceff0d9ebecd7e5e6d9e0e3dbdae3dbd3e0d5cedcd0c9d7ccc5d4c9c3d3c8c1d5 +c8c1d5c8c0d6ccc4dccdc4decfc4e0d0c5e0d1c6e1d1c6e1d1c6e1d1c6e1d0c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d0c3e0cfc3e0cfc3e0cfc3e0d0c3e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0cfc6e1cbc8e3 +cac9e4cec6e2d1c2ded6c5e0cfbfddedcce1aa4670a11e30ae2222b92424c12624cd2826 +cc2726b92124a32b44dbacc5dbd0e7cfc6e1d1c1ded3c6e1cbc8e3d9d0e7e3bfd5c1798c +a72f3bac1f21be2424c72625c02424bc2324c22725bd2624ad2122a21f219b2530af586d +dfa9c3e2b9d5e7c7dedfc3ddd5bddbd1bbdad0bfddd4c7e2d5cbe4cdc4e1cdc6e2cdc6e2 +cec6e2d0c5e1d1c5e1d1c4e0d2c4e0d2c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d2c5e0d2c7e1d2c5e0d2c5e0d0c5e1cfc4e1cfc4e0cfc4e0cfc4e0cfc4e0cfc4e0 +d0c3e0cfc4e1d0c5e1d0c6e2d0c7e1d0c7e1d2c5e1d2c3dfd1c1ded0c0ddcfc0decfc1de +cfc3e0d0c4e0d1c6e1d2c7e2ccc2dfcec3e0d2c6e1d4c7e1d4c6e1d3c5e1d1c3dfd1c1de +cfc0ded0c2dfd0c2dfd0c3e0d0c4e0d1c4e0d1c4e0d2c5e1d2c5e0d2c5e1d1c4e0d1c4e0 +d0c4e0cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1d0c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d3c3dfd3c3df +d3c3dfd1c3dfd0c3e0cfc4e0cfc4e1cec5e1cec6e2d0c9e3d1c9e4d0c5e1cfc2dfd3c4e0 +dbcae3ddcae2dbc5dfd4c0dbcac1dcc5cae3c6d0e6cfd2e9d2d1e7d3cae2d4c4dbd9c1d9 +e0c0d7e8c0d7eab9d0d99cb6be7590a8506e9d3b5a962c49911e3b8d182c971b22ab2022 +ac1f21bf2624ba2323bf2625b32223a12020b54a4aeda9abfbdddff2dfe0e0e4e2d8e8e5 +d6eae9d6eae9d8eae7e0ece9e7edebededecede9e9e9e5e6e5dfe3dedadfdad4ddd7d1db +d3cedcd0cadcc9c3d7c9c1d7c9c1dacac2dccbc3decdc4e0cfc6e1d0c7e3d2c7e2cdc2df +cfc4e1d2c7e2d4c9e3d4c7e2d2c7e2d2c6e1d2c6e1d4c7e2d0c4e0cfc4e1cfc4e1cfc4e1 +cfc4e1cfc4e1cfc4e1cfc4e0cfc4e0cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1 +cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1cfc6e1ccc8e4 +cbcae5cdc5e1d1c0ded7c5e0d0bfddeecce1ab466aa41e2bb02222bb2524c22625cc2726 +cb2726b52224a02b44daadc6dbd0e7cdc6e2ccbedccbb9dad8c6e1dfbcd6bf7487a9363d +b12223c12424cb2825cb2925c42625c12624bf2624aa2021971b1e9a2a36b15e70d097ad +edc7dce0c1dcdcc0dcdbc4dfdac5dfd5c2ded1c0ded0c2dfd0c4e0cec4e0cfc5e1d0c5e1 +d0c5e1d0c6e2d0c5e1d0c5e0d0c5e0d1c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d0c4e0d0c5e1d0c5e0d0c6e1d0c6e1d1c5e0d2c5e1d1c4e0d1c4e0d1c4e0d0c4e0d0c3e0 +d1c3e0d1c3e0d2c4e0d2c4e0d2c4e0d2c4e0d3c3dfd2c1ded3c3dfd2c3dfd3c5e1d3c6e1 +d2c9e3d0cae4cfcae2cfcce0cbc8d8cecbddd2cce1d4cde2d5cce2d4c8ded2c7dcd3c4da +d1c3ddd2c4e0d0c2dfd0c2dfd0c3e0d0c3e0d1c4e0d1c4e0d2c5e1d2c5e1d2c5e1d2c5e1 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d2c4e0d2c3df +d2c3dfd2c4e0d1c4e0cfc4e1d0c7e2cfc6e2cec7e2d0c9e3d0c9e3ccc3e0cbc0deccc0de +d2c3dfd6c5e0d7c4dfd4c3dfd1c6e2cacae5c1c5e2bfc0dfc5c2e0d0c9e3d7cce5d8c9e3 +d9c5e0dbc4dee0c4dee0bdd9deb6d3dfb2d0dcaac8cf99b7b97d9da660809d4661a03143 +9a1e25a120259e1d20a11f21991d1f941f23b15a5fe7acb2edcccfe1d3d6d7dcded5e2e3 +d6e5e5d6e5e3dbe6e2e3e9e6eaece8ebece5edede3efece7edebe7ece9e8e9e7e8e6e3e7 +e3dee7e0dce6d9d3e2d6d2e2d4cee2d1cbe2cfc8e0cec7e1cdc6e1cec7e2cfc6e1c7beda +cac1ddcec5e0d0c7e1d0c7e2d0c6e1d0c5e1d1c6e1d3c8e2d0c5e1d0c5e1cfc4e1cfc4e1 +cfc4e1cfc4e1cfc4e1cfc4e0cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1 +cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1cec5e1cbc8e3 +cbc9e4cec5e1d2c0ddd7c4dfd0bfddf3cde1ab4668a41e29b12223be2724c52725cb2726 +c82625ae20229a283fd7a9c2d8cae3cdc4e0d1c2ded9c0dcdcafd1c17794a7303cb02322 +c52825cd2926cc2726c92825c72825bf2524ab20219b1b1f9b273bb15e74cf97ade4bed5 +dfc6dfdcc6e0d8c4dfd7c2ded7c4dfd7c5e0d4c5e0d1c2decfc0ded0c3e0cfc4e0cfc4e1 +d0c5e1d0c6e2d0c6e2d0c6e1cfc6e1d0c5e1d1c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d0c4e0cfc4e1cfc4e1d0c5e1d0c5e1d2c5e0d2c5e0d2c5e0d2c5e1d2c5e1d3c5e1d2c4e0 +d2c4e0d2c4e0d2c3dfd2c2dfd2c2dfd2c2dfd2c3dfd3c4e0d6c7e1d6c9e2d4cbe0cfcbd7 +c8c9cbc0c2bcb9beafb4bba7b6bea6bbc1aabfc4b5c5c6bccac7c2cfc7c8d2c8ccd6cad2 +d9ccdfd2c4e0d0c2dfd0c2dfd0c3e0d0c3e0d1c3e0d1c4e0d1c4e0d2c5e1d2c5e1d2c5e1 +d2c5e1d1c4e0d1c4e0d1c4e0d1c4e0d0c3e0d0c3e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d2c4e0d2c3df +d2c3dfd3c3dfd2c5e1d1c5e1cfc6e2cec6e2cec6e2c9c3e0c9c2dfcdc5e1d1c7e2d3c8e2 +d2c4e0d1c2dfd2c2dfd2c3dfd3c4e0d2c3dfd1c3dfd0c2dfd2c2dfd3c3dfd4c4e0d3c2df +d2bfddd4c1ded9c6e0d7c4dfd8c5e0decae2e0cbe3dcc7e0d3bcd9c9adcccb9fbad094a9 +c57a8cb76273a84a5b9f3b4a8f2b39872b3996515ebb8b95ccb0b8c8bcc3cbcbd2ccd1d8 +cfd5dad4d7dadcd9dbe3dadbe5dddae2e1d8e2e3d8e7e7dee9e9e3ebeae6eceae8e9eae9 +eae8ebe9e7ebeae7eee7e5eee2dfecdedae8d9d5e7d6d1e5d3cfe3d1cbe2d1cbe2cac3d9 +ccc4dccec6decec5ddccc4dccac2dccac1dccdc4dfd0c7e1d0c6e1d0c6e1d0c5e1d0c5e1 +d0c5e1d0c5e1cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1 +cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1cfc4e0cfc4e0cfc4e0cfc4e0cfc4e0cec5e1cbc8e3 +cbc9e4cfc5e1d3c0ddd9c4dfd2c1def4cfe2ad4866a52027b32122c02724c72725cc2826 +c52725aa1f2196253ad8a5bedcc8e1d2c2dfd8bfdcdeb1d2ce7da3ab304bb02122c22625 +cb2825cc2826cb2825c72725c12624b021229b1b209e2c46b76480d199b2e1bcd5e1c8e1 +d4c3dfd6c7e2d6c6e1d0c0ddd0bfddd3c4e0d6c6e1d4c5e0d1c1ded1c2ded1c3dfcfc3e0 +cfc4e1d0c5e1cfc6e1cec7e2cec7e2cfc6e2d0c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d0c4e0cfc4e0cfc4e0cfc4e1cfc4e1d1c4e0d2c5e1d2c5e0d3c6e1d3c7e1d4c6e1d4c6e0 +d4c6e0d3c4e0d2c3dfd1c2ded1c0ded1c0ded1c1ded4c5e1d3c9dcd0c9cac7c6b3bcc29a +b0bd82a7b8719fb2649ab05b9cb25ba1b563a5b76aabb975b2ba86bbbc9dc8c3b5d4cacf +dbcee4d2c4e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c4e0d1c4e0d1c4e0d2c5e0d2c5e0 +d2c5e0d2c5e1d1c4e0d2c4e0d2c4e0d1c3dfd1c3dfd1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d2c4e0d2c3df +d2c4e0d2c4e0d3c5e1d1c5e1cfc6e1cec6e2cdc6e2c9c3e0c9c2e0ccc5e2cfc7e2d1c8e3 +d2c7e2d1c4e0d1c3e0d1c0ded3c0ddd5bfdcd7bfdcd9c1ddd7c1ddd3bedcd2bddbd2bedc +d3c0ddd4c5e0d5c7e2d3c5e0cfc4e0cec4e0d0c7e3d1cae4d1cbe5d4cbe4d9cae3e6cbe1 +e6c1d5d9a9bfcf9aaec78b9fb87b8ead7284a57486a78394b19babb2a8b7b5b3c0b6b6c1 +bab8c3c5bcc6d1c2cadac7cddccbcddcd5d0dadad2dcddd7e0e1dbe5e5e0e8e7e4e9e8e6 +e8e9eae9e9ebedebefecebf0ebe8f0e8e7eee5e3ece3e0eadfdeeaddd9e7dcd8e6d6cfdf +d6cfe0d5cedfd0c9dcccc4d7c7c0d4c6bfd5cac1d9cfc6dfd0c7e1d0c7e2d0c7e1d0c6e1 +d0c6e1d0c5e1d0c5e1d0c5e1cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1 +cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1cfc4e0cfc4e0cfc4e0cfc4e0cfc4e0cdc4e1cbc8e3 +cac8e4cec4e0d4c1dddac5e0d3c2dff4d1e3ae4a65a82026b52323c12624c82725cc2826 +c52725a72021962638dca6bde6c9e0ddbfdbd7a7ccc67aa0b43d5cb12024c42425cb2825 +c82625c82725c72725bf2424b42123a11e2295213dac5e7dcf9bb9e3c1dae2c9e1d4c3df +d0c4e0d1c6e2d1c6e1cec2dfcfc0ded1c2ded3c4e0d4c3dfd2c2dfd2c2dfd2c2dfd0c3e0 +cfc4e1d0c5e1cfc6e2cdc6e2cdc7e2cdc7e3d0c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +cfc3e0cfc4e0cfc4e0cfc4e0cfc4e0d1c4e0d2c5e1d2c5e0d3c6e1d3c7e1d4c6dfd4c6e0 +d4c6e0d3c4e0d2c3dfd2c2dfd2c1ded1c0ded2c3dfd2c7e1cbc7c5bec19eb0bb76a5b853 +9db63d97b73c96ba3c94ba3c90b73d93b73d95b43c98b13b9db04aa6b06ab5b894c7c2c0 +d1c8ded1c6e1cfc4e1cfc4e1cfc4e0cfc4e0cfc4e1cfc4e1d1c4e0d1c4e0d2c5e0d2c5e0 +d2c5e0d2c5e0d2c5e1d2c4e0d2c4e0d1c3dfd1c3dfd0c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d3c3dfd3c3df +d3c3dfd2c4e0d2c5e1cfc4e1cfc5e1cdc5e1ccc5e2cec7e2cec7e2cac3e1c8c0dec9c2df +cfc6e1d2c7e2d2c6e1d2c3dfd3c0ddd5bfdcd4bcdbd4bbdad3bbdad4bddbd4bfdcd4c1dd +d4c3dfd3c4e0d2c4e0d2c5e1d2c6e1d0c6e2cfc6e2cdc6e2ccc7e3cdc7e3cec6e2d0c5e0 +d9cae3dfc8e1e7cae1eac8dde7c2d8ddbbd2d0b1cabfa7bfb6a6bcb3aac0aca7bca5a0b6 +a89db2b1a1b4bda9b9cab0bdccb6bfcec5c6cccbcacececfd5d4d3dad8d9dcdfe0e0e0e1 +e2e2e3e3e4e3e4e3e5e5e5e7e8e8eae8e8ebe9eaeceae9ece9e9ece9e8ece9e6ece7e3ea +e6e0e9e1dbe6dbd4e0d5cedbd0c9d7cdc7d8cec8d9d0caddcdc6dccec7decfc7dfd0c7e1 +d0c8e2d0c7e2d0c7e1d0c7e1d0c7e1d0c6e2d0c5e1d0c5e1d0c5e1d0c5e1d0c5e1d0c5e1 +d0c5e1cfc4e1cfc4e1cfc4e1cfc4e1cfc4e0cfc4e1cfc4e1cfc4e1d0c5e1cdc5e1cac8e4 +cac8e4cfc4e1d5c0ddd8c3ded3c3dff4d2e3ab4861a72024b32022c12624cb2925cd2926 +c22625a721219c2b38e3acc0f0c7dbe0a9c6c87997a73450a61e21c52425cf2926cb2726 +c62625c52725c12624b32022a51f23992543a75b7ec094b5d7bddae0cae2dbc6e0d2c2df +d0c7e2cbc6e2ccc5e2d0c6e2d2c5e1d1c3e0d1c1ded1c0ddd2c1ded2c2dfd2c2dfd2c4e0 +d0c4e0d0c6e2cfc6e2cdc7e3ccc7e2cdc7e3d0c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d1c4e0d2c5e1d2c5e0d3c6e1d3c6e1d3c5e0d1c3df +d4c6e0d5c7e2d3c4e0d2c3dfd3c4e0d5c6e0d0c7dac8c4bcb4bc8ca9b660a0b63e9bb93b +97be3c97c13c99c53b99c73b91bf3d91be3d8bb63e8ab03e8eac3c96aa42a0ac67aeb395 +bfbebdcbc7dbd0c7e2d1c6e2d0c5e1cec3e0cfc4e0d0c5e1d2c6e1cfc4e0d2c5e1d2c5e0 +d2c5e0d2c5e0d3c5e1d2c4e0d2c4e0d1c3dfd1c3dfd0c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d2c4e0d3c3df +d3c3dfd2c4e0d1c4e0d0c5e1d0c6e2cfc6e1cec6e2cec7e2cdc6e2cdc6e2cdc6e2cec5e1 +cec5e1cfc5e1d0c5e1cfc4e0d2c3dfd2c3dfd4c3dfd4c3dfd4c3dfd4c3dfd3c3dfd3c3df +d3c3dfd3c3dfd3c3dfd3c3dfd3c3dfd3c3dfd2c3dfd2c3dfd2c3dfd2c4e0d0c6e2cdc7e3 +ccc8e4d2c6e1d5c5e0d8c4dfd9c4dfd9c4dfd8c4ded7c6e0d5cae3ccc5e0beb9d5b6afcc +b0a5c1ae9eb9b29bb3b59bb0b39db0b0a6b3afaeb6b5b4bbbcbcc3c3c4cacbcad0cfcfd5 +d4d2d8d6d5dadbdadedcdddedfe0e0e2e3e1e5e6e4e9e9e5e9e9e4e9e8e4e9e7e5f0eced +ede9ebebe6ebe8e3e9e7e3e9e5e0e8e1dce7dcd5e1d6d1decdc8d8cec7dacfc9dcd0cade +d0c9dfcfc8dfcdc7decec7dfcfc7e0cfc7e2cfc6e1d0c6e1d0c7e1d0c7e2d0c7e2d0c7e2 +d0c6e2cfc5e1ccc4e1ccc3e0cdc3e0cdc3e0cdc3e0cec4e0cfc5e1d0c5e1cec6e2cac7e3 +cac6e2cfc4e0d5c0dcd5bfdcd0c4def5d4e3a24256a41e21b22022c12624cf2a26cb2825 +bd2324a82121a5343be4afbfeab2c6ca7388b33848b12323b52123c62625cf2a26c92725 +c22425c12624b72323a61f229a223ea55980cda9cbd8cbe4d0c9e4d0c0ded5c1ddd8c8e2 +d0c7e2cbc8e3cdc7e3cec5e1d0c5e1d1c4e0d2c3dfd2c3dfd2c3dfd2c3dfd2c3dfd2c4e0 +d3c5e1d1c6e1cfc7e2cec7e3cdc8e4cec7e3d1c6e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +cfc3e0cec2dfcec2dfd0c2dfd1c4e0d2c5e1d2c5e0d2c5e0d2c5e1d1c4e0d1c2dfc9bbdb +d3c5e0d7cbe4d3c6e1d0c5dcd4c8d7d5ccccc9c6abaeb9759cb34398b53b9dc13ba2ca39 +a2cc399cc93b93c43d8ec13e86b73f89ba3e81b0407eab4084ac3f8dac3d8da63c92a358 +a7b18cc3c3c2cfcadcd3cce4d0c7e2cbc2dfccc3e0d2c9e3d3c8e3cdc2dfd0c4e0d2c5e0 +d3c5e0d3c5e0d2c4e0d3c3dfd2c2dfd1c1ded1c3dfd0c3e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d2c4e0 +d2c4e0d2c4e0d1c4e0d1c4e0d0c5e1d0c6e2cfc6e1cfc6e1cfc6e2cdc6e2cec6e2cec5e1 +cec5e1cec5e1cfc5e1d0c5e1d0c5e1d0c6e2d0c7e2d0c6e2d1c5e1d1c5e1d2c5e1d2c4e0 +d3c4e0d3c4e0d3c3dfd4c4e0d4c3dfd4c3dfd5c2ded5c2ded5c1ddd4c2ded0c4e0cbc6e2 +c9c8e4cdc6e2d2c5e1d3c4e0d4c4e0d4c4e0d5c5e0d2c5e0cac1dfcbc5e1cfcae4d0cbe5 +d0c9e3cec3dec8b9d3c3b0c9bdacc2ada6baa4a1b59f9baf9d9aaba09dada7a5b3b4b1bd +bfbec7c7c5cccdcaced1d0d2d8d6d8dddedce0dfdbe0e0dbe0e1dae2e2dbe3e3dee9e6e4 +e8e4e4e8e4e4e9e5e7ebe7eaede8eceee8edeee9eeede7efebe6f0e8e1ecdfdae6d6cfde +cec9d7c8c3d3c7c2d3cbc5d5cdc7dbccc6decdc4dfcdc4e0cdc4e0cec6e1cfc6e1d0c7e2 +d0c7e1d0c7e1d0c7e2d0c7e1d0c7e1d0c6e1cfc5e0cdc4e0ccc3e0cbc2e0c9c3e0c6c5e2 +c6c3e1cec2dfd7c1ddd8c1ddd2c7e0f5d9e7a5465ba72027b82223c42425cb2825c62625 +bc2324b22823a93134dd8593d07686b53d47b72323c52725c82725c62625c42425c12424 +bc2324b32022a21e21962136ad587ec79bc1d2c3dfcfcde6cdcde6d0c6e2d1c0decfc0de +cdc6e2cac8e4cdc7e3cdc6e2cfc6e1d1c5e1d2c3dfd2c2dfd2c3dfd2c3dfd2c3dfd3c4e0 +d3c5e1d1c6e1d0c7e2cec7e3cdc8e4cec7e3d1c6e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1 +d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +cfc3e0cfc3e0cfc3e0d0c3e0d2c5e1d2c7e1d2c7e1d2c5e0d1c4e0d1c4e0d4c6e1c9bbdb +cabcdccfc2dfd2c8dfd4cdcdcfcab7c2c298b0b86b96af3ba4c539aed037a8cf389fca3a +99c83b96c73c90c13d86b93f79ac417daf4079ab417caa4080ab3f82a93e7ea03e839f3c +9fb16eb7bba7c6c6c6d1ccd9d1cae0cec6e1cdc3e0d0c6e2d2c7e2cec3dfd1c4e0d2c5e1 +d3c5e0d3c5e0d2c4e0d3c3dfd2c2dfd1c1ded1c1ded2c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d2c4e0 +d2c4e0d2c4e0d1c4e0d1c4e0d0c5e1d0c5e1d0c6e2d0c6e2cfc6e1cfc6e1d0c5e1d0c5e1 +cfc5e1cfc5e1cec4e0cdc4e1cac7e3c7cae5c6cae4c7cae5c7cae5cacae4cac8e3ccc7e2 +cec7e2cfc6e1d0c5e1d2c5e1d3c3dfd3c3dfd4c3dfd5c2ded6c1ded5c1ddd2c2dfcfc2df +cec1dfd1c2dfd2c2dfd3c2dfd3c2dfd3c3dfd2c4e0cfc4e1cac3e1cac8e4cccde7cecfe8 +d0d0e9d1cfe7d0cbe4cfc8e2cec7e1cfc6e1c6c0dcbeb7d3b2adc8aba4bda39db59f99ae +9d97aa9c98a7aaa5b1b0adb5bbb6bcc1bec1c6c3c2cac8c4cfcec9d8d5cfe1dedae3dfdf +e6e2e2e9e5e7ebe8e9ece8eaece8eaebe8ecebe8ecece7ebece7ebece7ecebe6ece8e4eb +e5e0e8e1dbe4ddd8e1dcd7dfdcd5e2d3cee0d0cbe0d0c9dfcfc8decec8dfcec8dfcec6de +cec7e0cec7e0d0c8e2d0c9e2d0c9e3d0c8e2d0c8e2d0c7e2d0c7e2d0c7e2cfc8e3c7c6e3 +c5c2e1cfc2dfd8c0dcd8c1ddccc9ddf2dae69e4657a11e23b82323c62625c92725c62625 +bb2324b62b24a52721bb4b54ac323bad2022c22425cb2726c62625c42625c42725c02624 +b021229b1b20932741ab6387c69ec2dac9e3d0c9e4c7bfdecac3e0d1c6e2d1c6e2cec5e1 +ccc7e3cac7e3ccc7e3cdc6e2cfc5e1cfc4e1d0c4e0d0c3e0d2c4e0d2c4e0d2c4e0d2c4e0 +d1c4e0d0c5e1cfc6e1cec6e2cec6e2cec6e2cfc4e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d0c3e0d0c2dfd0c3e0d2c5e0d2c7e2d2c8dfd2c7e0d1c6e1cfc4e0cec2dfd2c4e0cec0de +c5b9dac9bfded1cdd2cfcfb2c1c886b1bb57a4b8399abf3ba6cc38abcf3aa7cd399fc93a +99c43b90bd3d80af4070a14067983f61923e5b8b3d618e3d6f973e779c3e759a3e7a9d3d +92aa4ea1ad7fb8bba7c9c9c5cfcdd6d0cae0cec5e1cec4e0cfc4e0cfc4e0d0c4e0d2c5e1 +d3c5e0d3c5e0d3c4e0d3c4e0d3c3dfd3c2dfd2c2dfd2c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d2c5e1d2c5e1d0c5e1d0c5e1d0c5e1d0c5e1d0c5e1cfc4e1 +cfc4e1cfc4e1cfc4e1cec5e1cac7e3c7cae5c6cae4c6cae4c6cae4c7cbe5c8cae4cac8e3 +cbc7e2cdc7e2cec7e2cfc6e1d0c5e0d2c5e0d2c4e0d3c3dfd3c3dfd2c3dfd1c1ded0c1de +d0c0ddd2c0ddd3c0ddd4c1ded4c2ded3c2dfd2c4e0d0c5e1cfc8e3cac8e4c5c5e2c0c5e3 +c0c5e3c3c6e3c8c9e4cbcbe4d0cde6d0c9e3d2c9e4d3cae4d0c7e3ccc4e0c5bdd9bdb5d0 +b5afc6afa9bdaca6b8ada8b7afa9b5b1aab3b1acb2b3aeb3b9b6b7c0bcbcc7c4c5ccc9cc +d3ced2dad4dadfdbe0e3dee4e3dee5e3dee5e4e0e6e8e3e9e3dee5e8e3e8eee8edf1edf2 +f2eef3f2eef0efebeeece8eceae5ece1dce7ded7e6dbd5e5d9d2e2d5cfe0d2ccdfd0c9dd +cec8dccec8ddcbc5dbcac4dacbc4dbccc6ddcec7dfcfc7e0d0c9e2d1cae3d0cbe4cacae4 +cac8e4d3c5e1dac3ded9c4dfcbc9dbecdae59844539a1c20b32022c62625cc2726cd2926 +bd2324b224239f1e1faa2728ae2422bd2324cf2926cc2726c22425c42825be2624ac2021 +a01d27962645ab6385d0aecdcfc0ded1cae4cdc6e2cbbddccbbcdbcdc0decec6e2cec8e3 +ccc7e3cdc6e2cec6e2cec6e2cfc5e1d0c5e1cfc4e1cfc4e1d0c4e0d1c4e0d1c4e0d1c4e0 +d0c4e0d0c5e1d0c6e2d0c6e2d0c6e2d0c6e2d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d0c4e0d0c3e0d1c4e0d2c7e1d2c7e1d2c8dfd1c7e0d0c6e1cfc4e1ccc1dfcbbfddd3c8e3 +cbc4e1c9c6d9cbcdbcc4ce93b8c662acbf39a9c638a8ce389fc93a9dc73a9fc73a9bc13c +91b33e84a73e7b9f3e7b9e3e7f9f416d8e3b567a374f7435587d38698f3c779c3e7ba03e +819f3d91a059a7ae85bfc1acceccc9d1ccdbcfc6e1cdc3e0cec3dfd1c5e1d0c3e0d2c4e0 +d2c4e0d3c4e0d3c4e0d3c4e0d3c4e0d3c3dfd2c2dfd2c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d2c5e1d2c5e1d2c5e0d1c5e0d0c4e0d0c4e0d0c4e0d0c4e0 +d0c3e0d0c3e0d0c3e0cfc4e1cdc5e1cbc6e2cac7e2cac7e2cac7e2cac7e2cac7e2cac7e2 +cbc6e3cbc7e3cac7e3cac7e3cbc6e3cbc6e3ccc7e3ccc7e3ccc7e3cdc6e2cec3e0d1c1de +d1bfddd3c0ddd4c1ddd5c1ddd4c3dfd2c2dfd1c3dfcfc4e0cbc4e1cac6e2c7c7e3c6c8e4 +c6c8e4c6c9e5c6c8e3c7c8e3c9c6e2cbc4e1cfc4e1d0c5e1d1c6e2d1c6e2d0c6e2d0c6e1 +cec5e0ccc4deccc4dcc6bfd6c1b9cdbcb4c5b6b0c0b2acbbafa9b7aea7b3aca5b3b2adb8 +b7b2bdbcb9c3c3c0c9c9c4cececbd2d5d1dadbd8e0e3dfe7e5e3e8e8e5eae9e7eceae8ec +eae8eae9e8eae9e8eaeae8e9ebeaebebe8edeae6eee7e4ebe3e0e8e0dce5dcd8e2d9d4e0 +d6d2dfd5d2e0cecad9cbc7d6cbc6d8cbc6d8cbc6d8cbc6dacac5dacac5dac9c5dccbc9e2 +cccae4d4c6e1dbc5dfd8c5dfcbccdceddee79848599c1d24b32022c52425cc2726cf2a26 +c02424b32323a21e20ac2021ba2423c52625cb2825cc2826c72825bc2424a51f20961a1e +9c304caf6486c59fbed5cbe4c9cae5cbc8e3d4c7e2d8c4dfd4bfdcccbeddc5c0dfc7c2e0 +cdc5e1cfc5e1cfc4e1cfc4e1cfc5e1cfc5e1cfc5e1cfc5e1d0c5e1d0c5e1d0c5e1d0c5e1 +cfc4e1cfc4e1cfc4e1d0c4e0d0c4e0d0c4e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d2c4e0d2c4e0d3c5e0d2c7e1d2c7e1d1c6e1d0c6e1d0c6e2cdc5e1c9c3e0d3cfe6 +cbccd3c3c8b7c3ce9abdcd77b0c74baac338a9cb38a2cc399cc83b9dc53b9cc13b96b340 +8ca448889c5f96a580a7b39db4bdad9eab957f90696076365371335f813871973e7aa23f +769a3d869a3c9da667b4b993c7c8b7cfced3cfc8e1ccc3e0ccc0ded0c5e1d0c3e0d2c4e0 +d3c3dfd3c4e0d3c4e0d3c4e0d3c4e0d4c3dfd3c3dfd2c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d0c4e0cfc4e0 +d0c4e0d1c4e0d1c4e0d1c4e0d2c5e1d2c5e0d3c5e0d1c4e0d1c4e0d1c4e0d1c3e0d1c3e0 +d1c3dfd1c3e0d1c3dfd0c2dfcfc4e0cfc4e1cfc4e1cfc4e1cfc4e1cec5e1cec6e2cdc6e2 +ccc6e2cbc6e3cac6e2cac6e2cac7e3c9c7e3c9c7e3c8c7e3c8c7e3c9c6e3ccc5e2cfc1df +d0c0ddd1c0ded3c1ded3c2dfd2c3dfd2c3dfd1c3e0cfc4e0ccc3e0ccc5e1ccc6e2ccc8e4 +cdc9e4ccc8e4cac7e3cac6e2cac5e1d0c6e2d0c5e1d0c4e0cfc4e0cfc4e0cfc4e0cfc4e1 +cfc4e1d0c5e0d7cce5d2c9e3cec4dfcac0dbc8bed8c4bbd3beb4cdb5abc4ada5bcaea8bb +aca8baaca8b9aca9b9afabbab4b0bdbcb8c4c5c2cdcdcbd6d3d1d8d7d4d9dad7dcdcdade +dddddfe1dfe0e3e2e2e9e7e6eae9e8eae9e9eae9eaeae9ebeae9ebe8e7eae8e6e9e5e3e8 +e3e0e7e3e0e8dcd8e1d9d5dfd6d3dfd4d1dfd1ceddcfcbdbcbc8d6c8c5d5c6c4d6c5c6da +c8c6ded0c2ddd9c1dcd5c3dbc7ccd9ece1e8994e5d9d212ab52223c52425cb2726cc2826 +c42425b82523ab1f21b52323c12624c42625c52625c72725be2524a72021971a1f9e2e4c +b4668aca9cbfd3c0dccdcde5c8cee7cccbe5d3c5e1d6c1ddd6c1ddd0c0decac0dec9c0df +cfc4e0d0c3e0d0c3e0cfc4e1cfc4e1cfc5e1cec5e1cec6e2cdc6e2cdc6e2cec6e2cec5e1 +cfc5e1cfc4e0d0c3e0d1c3dfd1c3dfd0c2dfd0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d3c4e0d3c4e0d2c4e0d2c5e1d2c5e1d0c5e1d0c7e1cec8e2cdcbdececed2cbd0c3 +bfc8a3b9c889bdce78b9d162b0cb43a6c538a3c7399cc73b9ec93a9ec33a9ab73e98ad54 +9eab78adb2a0bcbcc4c9c4dbd1cbe4c8c6d9b0b2b1849173607333557333658a3b779e3f +789d3e82983a94a04ba9b179bec2a4cdccc9cfcbdfccc4e1ccc0decfc3e0d0c2dfd1c3e0 +d3c3dfd3c3dfd3c4e0d4c4e0d3c4e0d4c3dfd3c3dfd3c3dfd1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0cfc4e0cfc4e1 +cfc4e1d0c4e0d1c4e0d1c4e0d1c4e0d3c5e0d3c5e0d3c5e0d2c4e0d2c4e0d3c3dfd1c3e0 +d2c3dfd1c3dfd2c2dfd2c2dfd2c2dfd2c2dfd2c2dfd1c2dfd0c2dfd0c2dfcfc4e0cfc4e0 +cec3e0cdc4e0cdc5e1cdc5e1ccc5e2cbc5e2cbc6e2cac6e2cac6e2cac5e1cbc5e2ccc3e0 +cec3e0cfc4e0cfc4e0d1c4e0d1c4e0d0c5e1cfc4e0d0c3e0d1c5e1cfc4e1cec3dfcec3df +cfc3e0d0c3e0d1c3e0d2c4e0d2c4e0cfc1decfc3e0d0c2dfd0c3e0d0c4e0d1c4e0d0c3e0 +d0c2dfcfc3e0d1c3e0cec3dfcfc3e0d1c5e1d4c6e1d4c6e1cfc4e0c8bbdbc0b5d5beb6d1 +b8b3cab2adc3ada7bda8a4b9a7a3b7aba7b7b0abbab3b0bcb8b6bfbcbac2c3c1c6cac8cc +d0ced0d6d4d3dad8d6dedcdbe0e0dce1e0dbe2e2dde6e3e0e8e7e4eae9e8ebeae9eae9e9 +eae8eaeae8ebe9e8ece9e6ece6e3eae3e0e8dddbe5dad5e1d5d2ddd2cedbd0cddbcbcadc +c9c6dbd0c1dbd8c0dad3c1d8c2cbd5e9e0e5944d5b9b1f2bb42125c62525cb2726c82625 +c92825bb2424b32122c12424c62625c52625c22625bb2424ac20219d1d20a23556bb6d91 +d29ec2dbbddad6c7e1ccc7e2cecee6cecde5cac3dfccbfddd0c0ddd2c3dfd3c2ded2c0dd +d2c1ded2c2dfd2c3dfd0c3e0cfc4e1cdc4e0cdc5e1ccc6e1cbc6e1cbc6e1ccc6e2ccc5e2 +cec5e1cfc4e0d0c2dfd1c2dfd2c2dfd1c2dfd0c2dfd0c2dfd0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2c4e0d3c4e0d3c4e0d2c4e0d0c3e0d0c2dfcfc4e1cfc6e1cecbdccdcec6c6cca9becc8a +b6ca6db6ce5db6d157b5d14fb0cd48a9c73c9fc43a9fc83aa2c839a1bf40a0b459a7b37f +bdbeabcfc9cfd6cbe3d4c6e1d7c9e3d7cae4cbc5daa9aaa978825f5a6e305d7d3774983d +7da23e859d3b8f9e3aa0a864b5bb94c9c9bed0cdddcec6e1ccc0decec2dfd1c2dfd1c3df +d3c3dfd3c3dfd3c4e0d4c5e0d4c4e0d4c3dfd3c3dfd3c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0cfc4e0cfc4e1 +cfc4e1cfc4e1d1c4e0d1c4e0d2c4e0d2c4e0d3c4e0d3c4e0d2c3dfd2c3dfd2c3dfd2c3df +d2c2dfd1c2dfd2c2dfd1c1ded2c1ded1c0ddd1c0ddd1c0ddd1c1ded1c1ded0c0ded0c2df +d0c2dfcfc2dfcfc3e0cfc3e0cfc3e0cec3dfcec3dfcdc2dfcdc2dfccc3e0cbc4e1cac5e1 +cac6e2cac6e2cbc6e2cdc6e1cec7e2cfc6e1d0c5e1d0c3e0d4c5e1d3c3dfd1c0ded0bfdc +d1bedcd3bfdcd5c0dcd7c1ddd5c2decfbfddcec0ded0c2dfd0c2dfd2c4e0d1c4e0d1c4e0 +d2c4e0d1c3e0cdbeddccbeddcfc0ded0c2dfd3c5e0d4c6e1d4c6e1d2c4e0d1c3e0cfc4e1 +cac3dfc5bedabfb8d3bcb5ceb7b1cab2adc2aea8beaba5b7a9a5b4aca7b5b0acb6b3b0b9 +b8b6bbbebbbfc4c1c3ccc8cbcfcdcdd2d0ced6d5d0d9d8d3dfdfd9e2e2dfe8e7e3e9e8e4 +e8e7e6e8e7e7ebebececebedece9edeae8ece8e7ebe5e2e9e2e0e6e0dee6dddce5d7d7e4 +d5d2e2d9cce0dec8ddd5c4d6c3cad0e6dee18d4955941c26af2122c42325cc2626c82625 +cf2a26b82423b32122c82725cc2826c72725c02424ab1f219f1e20a6314bc27496d9a7c9 +dfc1dcd9c6e0d2c4e0d1c4e0d2c9e3cecbe4c7c6dfc6c3e0cbc3e0d3c1ded7bfdcd6bedb +d4bfdcd3c0ddd2c2dfd0c2dfcfc4e0cdc4e0cdc5e1ccc5e1cbc5e1cbc5e1cbc5e1ccc4e1 +cec4e0cfc3e0d0c2dfd1c2dfd1c1ded0c0ded0c2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0d0c2dfd0c2dfd0c2dfd0c2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc4e0cfc4e0cec3e0cec3e0cfc4e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c3e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d0c4e0d0c3e0d1c4e0d1c4e0d1c4e0d1c4e0d2c5e1 +d3c5e0d3c4e0d3c4e0d1c1decfc1decfc1decfc4e0cfc8e2cececcc7cfa7b6c775afc74d +b4d244b8d444b3d142afcf46b0ce53afcb60a8c555a8c740a7c343aabc65b1bc89c1c2af +d1cbcfd9cde2dac9e2d5c4dfd5c3dfd4c4e0d6c9e2c2bccc989a926a76465c75336e913c +80a23e87a43c899e3a97a44dadb582c5c6b5d1cddbcfc7e2ccc0decdc1ded1c2dfd1c3df +d3c3dfd3c3dfd3c4e0d4c4e0d5c4e0d4c3dfd3c3dfd2c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c3e0d2c4e0d2c4e0d1c4e0d1c4e0 +d0c4e0d0c4e0d1c4e0d1c4e0d1c3e0d2c4e0d2c4e0d2c4e0d2c4e0d1c4e0d0c4e0d0c5e1 +d0c5e1d0c5e1d0c4e0d1c4e0d1c4e0d0c4e0d0c4e0d0c4e0d0c4e0d0c4e0d0c4e0d0c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d0c4e0d0c4e0d1c5e1d1c5e1d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d0c4e0cfc4e1 +cfc4e1d0c4e0d1c4e0d1c4e0d2c4e0d2c4e0d2c4e0d2c4e0d1c3dfd1c3dfd1c3dfd1c3df +d1c3dfd1c3dfd1c2dfd1c2dfd1c1ded1c0ded1c0ded1c0ded1c0ded1c2dfd1c2dfd1c2df +d1c2dfd0c2dfd0c2dfd0c2dfd0c2dfd0c2dfd0c2dfcfc3e0cfc3e0cfc3e0cdc4e0cbc5e2 +cac6e2cac7e2cbc7e2ccc7e2cec7e2cfc6e1d0c5e1d0c3e0d3c3dfd3c3dfd3c2dfd4c2de +d5c1ddd5c0ddd5c0dcd5bfdcd3c0ddd5c6e1d3c5e1d1c3dfcfc0decebfddcebfddcfc1de +d0c2dfd1c3e0d3c5e1d2c4e0d0c2dfd0c2dfcfc1decfc1decfc1dfd1c3e0d2c6e1d4c7e2 +d2c9e3d2c9e3d2c9e3d2c9e3d0c7e2cac2dcc1b9d4bbb4cbb8b1c7b4adc1aea8baa8a0b3 +a49dafa59fafaca5b5b2adbbb9b4bdc0bdc0c5c2c2ccc9c8d0cfcdd7d6d4dbdad8dfdfdd +e1e0dee0dfdfe5e4e3e8e8e7e8e8e7e8e8e8e8e9e9e8e8e8e8e8e9e8e9ebe8e9ebe8ebed +e3e9ece3dfe7e2d6e0e0d4dccecfd0eedfe08f47528e1820a81e21c02225cc2626c92725 +d22b26b72323ae2022c72825cb2925c22725b122229e1d20a12b3dc46f89dca8c7e0c3dd +d9cae3cfc5e1cac2e0cfc4e1cec3dfccc6e1cec9e4cfc9e4cfc4e1d1bcdbd4b8d8d4b9d9 +d3c0ddd1c2dfcfc2dfcfc3e0cfc4e0cfc4e0cfc4e0cfc4e0cfc4e0cfc4e0cfc4e0cfc3e0 +cfc3e0cfc2dfd0c2dfd0c2dfd0c2dfcfc3e0cfc4e0cdc2dfcdc2dfcec3dfcfc3e0cfc3e0 +cfc3e0d0c2dfd0c2dfd1c2dfd0c2dfcfc4e0cfc4e0cfc4e0cec4e0cec4e0cec4e0cfc4e0 +d1c2dfd1c1ded1c0ded1c0ded1c1ded1c2dfd1c2dfd1c2dfd0c2dfcfc3e0cfc4e0cec3e0 +cdc4e0cdc5e1ccc5e2cbc5e2cbc6e2cdc5e1cec3e0cfc4e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c3e0d1c4e0d1c4e0d1c4e0d2c5e0d2c7e1 +d2c7e1d2c5e0d1c4e0d0c3e0d0c3e0d0c2dfd0c2dfd0c2dfd0c3e0d1c4e0d3c5e0d3c6e1 +d4c4dfd3c3dfd5c4dfd2c1decebeddcec0ded1c6e1d0cdd8c6cfb1b8cc82a8c347a8cb39 +b5d43cb9d53fb2d23caecc44b6cc6bbece91b9c991b3c478b1c077b9c29ac8cabbd2ced2 +d2c8ddd0c1ddd1c0ddd4c3dfd2c1ded0bfddd6c7e2cfc6ddb0acb37f876f6273316c8939 +7a9c3d88a73d87a23c90a43ca5b26fbec3aacecddad0c7e3ccc0decfc0ded1c3dfd2c4e0 +d3c3dfd3c3dfd3c3dfd3c3dfd3c3dfd3c3dfd3c3dfd2c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d2c2dfd2c2dfd3c2dfd2c2dfd1c4e0 +d0c5e1d0c5e1d1c5e1d1c3e0d2c2dfd3c2dfd4c1ddd4c1ded2c2dfd1c4e0cec6e2cac7e3 +cac8e4ccc7e3d0c5e1d2c4e0d1c4e0cfc4e1d0c5e1cfc5e1cfc5e1cfc5e1cfc4e1cfc4e1 +d1c4e0d1c4e0d1c4e0d0c5e1d0c6e2d0c6e2cfc6e2d0c6e2d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d2c4e0d2c4e0d2c4e0d2c4e0d2c4e0 +d2c4e0d2c4e0d2c4e0d2c4e0d2c4e0d2c4e0d2c4e0d2c4e0d2c4e0d2c4e0d2c4e0d2c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d0c4e0cfc4e1d0c5e1 +d0c6e2d0c6e2d0c6e2d0c5e1d0c5e1d1c5e1d2c5e1d1c4e0d2c4e0d2c4e0d2c4e0d2c2df +d2c2dfd2c2dfd2c3dfd2c3dfd3c3dfd2c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c5e1 +d0c5e0d0c5e0d0c5e0d0c5e0d0c6e1d0c6e1d0c6e1d0c7e1d4cae4cfc6e1c6bdd9bdb5d3 +b8afccb4abc9afa7c5aaa0bea49bb4a49eb0a9a2b0afaab4b7b3bbbfbbc2c6c5cacecbd0 +d4d1d4d6d4d5dddddbdfe0dedfe0dcdfe0dcdfe1dce2e3dfe6e7e2e9eae4e8ece6eaf2eb +e6f1e9dbe7dedde1d9f5f3eee8ded8fdebeb9852588c1920a21e21b92225c72525c92625 +cb2626bf2424b52123bb2424bd2624b023229b1c1f951f2dbb6178efb4cae8c6dcd6c5e0 +cec7e3c7c7e3c5c5e2cbc6e2cec5e1cfc4e0d0c0decfbddcd0bcdbd3bbdad5bcdad2bfdc +cfc4e0ccc5e1cac2e0cdc2dfd0c2dfd2c2dfd3c2dfd4c1ded5c1ddd5c1ddd5c0ddd3c0dd +d2c0ddd0c0ddd0c2dfd0c4e0cec4e0cfc5e1cdc4e1ccc3e0ccc3e0cdc4e0cec4e0cfc3e0 +d0c3e0d1c3e0d2c4e0d2c2dfd2c4e0d2c5e1d1c5e1d0c6e1cfc6e1cec7e2cec7e2d0c5e0 +d3c2dfd4c1ddd4c1ddd4c1ddd4c1ddd3c1ded3c2dfd2c2dfd2c4e0cfc4e1d0c5e1cec6e2 +cdc6e2cbc8e3cacae4c8c9e4c7cbe5cacae4cfc6e2d1c5e1d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d0c3e0d1c4e0d2c5e0d2c7e2d0c8df +d0c8dfd0c7e2d0c5e1cfc4e0cec2dfcec0decfc0decfc1ded1c3dfd2c4e0d4c6e0d4c7dd +d4c4dcd1bedcd8c4dfd5c2decdbbdbcfc1ded5cee4ced3c3b5c7849ebe4aa8cd3cb2d33e +b4d33ab4d33badd03aafca4dc1cd8fd3d2cdcdcad7cdccc8cdcdc6cecbd2cec8dad0c7de +d0c5dfd1c3dfd1c1ded1c1decfc0ded4c6e1d5cae3d0c8debebcc9989b9468743b768c38 +7a9a3d85aa3e87ab3e8baa3d99af58b0bb9bc6c7d5cdc6e2cbc0decfc1dfd3c5e0d4c6e0 +d3c4e0d3c3dfd3c3dfd2c4e0d2c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d3c1ded6c0ddd5c0dcd3c1ded1c4e0 +cec7e2cec7e2d0c6e2d1c4e0d4c3dfd7bfdcd7bfdcd6bfdcd5c0ddd1c3e0cac7e3c3cae6 +c0cde7c6cae6d0c5e1d3c3dfd1c4e0d0c5e1cec6e2ccc7e3ccc7e3ccc7e3cec6e2d0c5e1 +d0c5e1d2c5e1d0c5e0d0c6e1cfc6e1cdc8e2cccae4cdc8e2d0c5e1d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d4c7e2d2c5e1cfc3e0cec2df +cec2dfcec1dfc9bddcc2b6d8bcafd0bab0ccb5afc3aea8bba7a0b3a39dada5a0ada9a6b2 +b3b1b8bab8bdbfbfc2c6c5c6cdcecdd8d8d5dfe1dde6e7e3e6e7e2e1e3dedce2dad5ded4 +d9e4d9e2ece1e5ede2e7e9dff0e5defdedebb27c7d91373c9a2328ab2329b92225c32225 +c52425c52625c52625c02424b72323b02122aa2125ac323ed57785f8becdf8cddcebcbdf +e2cee4d9cde5d2c7e2ccbfddd0c0ded2c2dfd4c1ddd4bfdcd3bfdcd2bedcd0bfdccec0de +cac3e0cac5e2cdc6e2d0c7e3d2c6e1d1c3e0cfbfddcdbbdbcebadad2bfddd4c3dfd6c6e1 +d8c9e2d7cae4d4c7e2cfc4e1cac2e0c7c1dfccc6e2ccc5e2cdc6e2cdc4e1cec5e1cfc5e1 +cfc4e0d1c4e0d1c4e0d1c4e0d1c4e0d0c5e1d0c6e2cfc6e2cec7e2cdc7e2cdc7e2d0c6e2 +d3c2dfd4c1ded4c1ded4c1ded4c1ded4c1ddd3c2dfd3c3dfd2c2dfd2c4e0d2c5e1d0c6e2 +cfc6e1cec7e2cdc7e2ccc7e2cac9e4ccc7e2cfc6e1d1c5e1d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d0c4e0d0c3e0d1c4e0d2c5e0d2c7e2d0c9df +d0c8dfd0c7e1d0c6e1cfc4e1cec2dfcec1dfcfc0decfc1ded1c2dfd2c2dfd4c6e0d5c7df +d7c6e0d9c5e0cfbadad0bcdbd9c9e3dacfe4cecbc6b6c290a5bf599ec43aa6ce3ab1d23b +b2d23ab2d23baccf39afc752c2c89ed4cbe3cfc2dfcfc4e1cec7e1cfc4e0cec3e0d0c5e1 +d0c5e1cfc3e0cfc0decfbfddcdbfded1c6e1d0c7e1cdc7dec7c4d6a8a7aa787e55778936 +79993c85ac3e84ad3f86ac3e94b04cadbb8fc5c8d2cdc6e2ccc1decfc2dfd3c7e1d4c6e0 +d3c4e0d3c3dfd1c3e0d1c3e0cfc4e1cfc4e1d0c5e1d0c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c2dfd4c1ddd5c0dcd5c0dcd3c2dfd0c5e1 +cdc7e2ccc8e3cfc6e1d1c4e0d4c3dfd7bfdcd8bedbd8bedbd5c0dcd2c4e0cac7e3c3cbe6 +c0cde6c6cae4d0c5e0d3c3dfd2c4e0d0c5e1cec6e2cbc6e3cbc7e3ccc6e2cdc5e1d0c5e1 +cfc4e1d2c4e0d2c5e0d1c6e1cfc7e2cdc8e2cccae3cdc8e2d0c6e2d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d0c4e0cfc4e0cfc4e0d3c6e1 +d5c9e3d7cae4d6cae4d2c5e1cec1dfcac0dcc6bed8c2bad3bdb5ccb7afc4b1aabcada7ba +aba5b6a8a4b3aba8b3afabb4b1afb7b6b4bcbcbbc1c3c3c7cbcbced1d0d4d5d4d8dcd9de +e5dfe2eae7e9ebeae9e2e3e0ebeae6dbd2ccb9a19cb78b87c88786d27b7ad2615fd04847 +bd2324c22425d92d26d62b26d22a26ce2826c52625ba2323c43329cd544fc15c5fc4727c +d695a6e5b0c6edbfd7ecc8dee6c8dfe2c8e0dbc6e0d4c5e0cfc5e1cbc8e3cacae5cbc9e4 +ccc5e2cdc3e0cdc3e0cbc4e1cdc6e2cec8e3cfcae5d0cce6cfcbe5c3bfdec3bfdec3bfde +c5c0dfc7c2e0c9c4e1cdc5e1cfc6e2cfc8e3ccc7e2ccc8e3ccc8e3cdc7e2cdc7e2cdc6e2 +cdc6e2cec6e2cec6e2cec6e2cec6e2cec6e2cec5e1cdc6e2cdc6e2cdc6e2cdc6e2cdc4e1 +d1c4e0d2c4e0d2c4e0d3c3dfd2c3dfd3c3dfd3c3dfd3c3dfd4c3dfd4c3dfd5c2ded5c2de +d5c2ded5c2ded5c2ded5c2ded5c2ded3c3dfd2c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d0c4e0d0c3e0d0c3e0d1c4e0d2c5e0d0c7e2 +d0c7e2d0c7e2d0c7e1d0c5e1cfc4e1cfc4e1d0c2dfd0c2dfd1c3dfd1c3e0d2c4e0d2c4e0 +d2c3dfd3c1deccbadad1c3dcdcd2d9d1cec0b6bd8fa2b45b9ebf3da6cd3aaacf39b4d33b +b0d23baed13baacd3aadc353c0c59ed3cae3cfc0decec3e0cec6e1cfc4e0cec3e0d0c5e1 +d0c5e1cfc3e0cfbfddcfbfddcdbfded1c5e1cbc2decec6ded2cce1bcbbc08a906b758636 +78983c84ac3f86af3f86ac3e92ae45a8b889c4c7cdcfc9e4cdc3e0cfc2dfd3c6e1d4c6e0 +d3c4e0d3c3dfd2c4e0d1c3e0cfc4e1cfc4e1d0c5e1d0c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d3c1ded5c0ddd5c1ddd3c3dfd0c6e1 +ccc7e2ccc8e3cdc7e2d0c5e1d2c3dfd5c0ddd6c0ddd7c0ddd6c0ddd2c2dfd0c5e1cbc7e2 +cacae4cdc7e2d2c4e0d4c3dfd3c3dfd1c4e0d0c5e1cec6e2cfc6e1cfc5e1cfc4e1d1c4e0 +d2c4e0d3c3dfd3c3dfd2c4e0d1c6e1d0c7e2cec8e2cec8e3d0c5e1d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d3c6e1d0c4e0cec2dfcec1df +cfc3e0d0c4e0d3c6e1d4c6e1d3c6e1d0c4e0d0c6e1d3c8e2d4cae3d2cae3cec6dfc6bed7 +bdb5ccb7b1c6b7b0c5b3afc0ada9bba7a4b5a5a2b2a7a4b3afadb9b7b5c1bfbac5cbc1cb +d3c6d3daced8dad4dad3d2d6d1d7d6b8bab5bbb7afd0c1b8eccdc3f5c3baf2a49ceb837b +c4392ebf2424dd2f26de2f25e12e25e32f25da2b26ce2826cb2925c32b25ad2422ac2c2a +b8464dbf5a69c1677bc5748ccc85a1d89cbbe4b4d0e3c2dbdfc8e1d8cae3d2c9e2d0c6e1 +d2c3dfd4c3dfd5c6e1d3c7e2cfc7e2cac7e2c4c5e2c0c3e1c1c5e3cacee8c9cbe6c8c8e4 +c8c5e2c9c3e0cac1dfcdc2dfd0c2dfd0c4e0d0c6e1cfc8e2cfc8e2cfc7e2cec8e3cec7e2 +cec7e2cdc6e2cdc6e2cec6e2cec6e2cec5e1cec4e0cec4e0cec4e0cfc4e0cfc3e0cec4e0 +cfc6e1cec8e3cfc7e2d0c7e1d0c6e1d2c5e0d2c4e0d3c4e0d3c3dfd3c3dfd5c2ded5c1dd +d6c1ded6c0ddd6c0ddd7c0ddd7c0ddd5c0ddd2c3dfd2c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d0c4e0d0c3e0d0c3e0d0c3e0d1c4e0d0c5e1 +d0c5e0d0c7e1d0c7e1d0c7e2d0c7e1d0c5e0d1c4e0d1c4e0d0c3e0d0c2dfd1c2dfd1c1de +cebeddc9badad2c4e0d9d0d7cccab3b5bb88a5b45da0b93da5ca39acd03badd13bb3d33c +aed13cadd13ca8cb3aaac151bdc29bd3c8e1d0c2dfcec3e0cec6e1cec3e0cec3e0d0c5e1 +d0c5e1cfc3e0cfbfddcfbfddcec0ded3c8e2cac1ddcdc6dfd5d0e6c6c5cc969c7c728435 +7a993c85ac3e88b13f87ae3e8fad3ea4b67cc1c5c4cfcae4d0c5e1cfc2dfd3c6e1d4c6e0 +d3c4e0d3c3dfd2c4e0d1c4e0d0c5e1cfc4e1cfc5e1d0c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d3c3dfd4c3dfd3c3dfd2c5e1d0c7e1 +ccc7e2ccc7e2cdc6e2cfc6e1d0c4e0d2c3dfd3c1ded5c1ddd5c1ddd4c3dfd3c3dfd1c5e0 +d1c6e1d2c5e0d3c4e0d4c3dfd2c2dfd2c4e0d1c4e0cfc4e1cfc4e1d0c3e0d1c3e0d2c2df +d2c2dfd3c2dfd3c2dfd3c4e0d3c4e0d2c6e1d1c6e1d1c6e1d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d4c7e2d3c6e1cfc4e0cec1df +cec1dfcfc3e0d0c4e0d3c6e1d4c6e1d3c6e1d3c6e1d4c7e2d5c9e3d4c9e3d4c7e2d0c6e1 +cdc2dfcac1ddc8c0dcc4bcd7bfb8d2bab5cdb5b0c7b0aac2aba7bbaaa5baaca3b8ab9ab1 +b7a4b9c3b3c6bfb8c5babbc3b5bec0b2bfbcc0ccc5cfd4c9e1dbccefd6c7f5c5b6f5aca0 +d15e50c02724da2f26dd2e25e32f24e52f24de2e25d92d26d82e26d02b26c32625bf2624 +bf2926bc2b2bba2c33bb3641b93d4abb4958bf5b6bc1707dc98790d29da4d9aeb7e2bdcb +e7c7dde2c8e0ddc7e0d6c5dfd0c4decbc5dfc5c7e3c4c9e4c4cae6c0c9e5c4c8e4c8c6e3 +ccc6e2cfc4e1d1c1ded1bfddd3bedbd3bedbd4c3dfd5c5dfd4c4dfd3c4e0d3c6e1d1c5e0 +d0c6e1d0c6e1d0c6e2d0c5e1d0c5e1d0c4e0d0c3e0d2c2dfd1c2ded2c1ded2c0ddd2c2df +cdc7e2cacae4cacbe4cacae3cbcae4ccc9e3cdc7e2cfc6e1d0c6e1d0c5e1d1c4e0d3c3df +d2c3dfd3c2dfd3c2dfd4c1ded4c1ded2c2dfd2c2dfd1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0cfc4e0cfc3e0cfc3e0cfc3e0cfc3e0cfc4e0 +d0c4e0d1c5e1d1c6e1d1c7e1d1c8e0d1c7dfd2c7e1d2c5e0d1c4e0cfc2dfcfc1decfc1de +ccc0decabfddd0cae4cbcbbab3ba7fa2b34f9fb73aa4c739acd038b0d23aaed13ab3d33c +add13bacd03ca6c939a9be50bdc09ad2c7e0d1c3dfcec3e0cec5e1cec3e0cec3e0cfc4e1 +d0c5e1cfc3e0cfbfddcfbfddcfc1ded3c9e3ccc3e0ccc6e0d4cee5c8c7d39da389738335 +7c9a3c86ac3e8bb43e8ab03e8ead3da1b36fbdc2b8cecbe3d1c6e2cfc3e0d3c6e1d4c6e0 +d3c4e0d3c3dfd2c4e0d1c4e0d0c5e1cfc4e1cec4e0d0c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d3c4e0d3c5e0d0c6e1cfc6e1 +cdc7e2ccc7e3cbc7e3ccc7e3cec6e2d0c5e1d0c4e0d3c3dfd3c2dfd4c3dfd5c3dfd5c3df +d6c3dfd5c3dfd5c3dfd3c3dfd2c3dfd2c2dfd2c4e0d1c3e0d2c2dfd2c2dfd1c2ded2c2df +d3c2dfd4c1ddd5c2ded4c3dfd3c4e0d3c3dfd3c4e0d2c4e0d2c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d0c4e0d0c4e0d0c4e0d0c4e0 +d0c4e0d2c5e1d2c5e1d2c5e1d0c4e0d3c5e0d2c4e0d2c4e0d0c2dfcfc3e0cfc3e0d0c3e0 +d2c5e1d2c6e1d1c5e1cfc4e1cfc4e1cdc4e0cac3dec4bcd9bbb4d1b5aec9b1a7c2ad9eb8 +b0a0b9b2a5baaba2b4b1b1bdaeb8bebdcdcdc5d8d3c8dacecdd7c8d8d2c0e8cebcf1bcae +cf7364b92d24ce2b26d52b26e02e25e12e25da2b26d62c26d62b26d32a26d32a26d32b26 +d42b26d22b26cd2726c72625c32625bd2524b92924b7332bb9443cbd564dc1665fc4767c +cf8ca0d398b1dba9c1e2b7cfe0c0d5ddc6dbd8c9dfd4cbe3d0cce4c9c8e2cac7e2cac3e1 +cec3e0d0c2dfd2bfddd5bfdcd7bfdcd8bddbd9c0dcd7c1ddd5c2ded5c3dfd3c4e0d3c4e0 +d2c5e1d0c5e1d0c6e2d0c6e2d1c5e1d1c4e0d2c4e0d3c2dfd4c1ddd5c0ddd6c0ddd5c2de +cdc8e2cacbe4c9cbe4cacbe4cacbe4cacbe4cac9e4cbc8e3cbc8e3ccc7e3cec7e2cfc5e1 +d0c5e1cfc4e1cfc3e0d0c3e0d0c3e0d0c2dfd1c3e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0cfc4e0cfc4e0cfc4e0cfc3e0cfc3e0d0c2df +d0c3e0d1c4e0d2c5e0d2c7e1d2c8ded2c8ddd2c8ded1c7e1d1c5e1cfc4e0cec1dfcdc2df +cec5e1cfcae4c3c6d0aeb989a1b34f9eb83aa3c539aacf38afd138b0d239afd13ab2d23d +acd03babd03da5c839a6bc4dbbbf96d1c6dfd1c3dfcec3dfcdc4e0cec3e0cec3dfcfc4e0 +cfc4e0cfc3e0cfbfddcfbfddcfc2dfd4c9e3cec3e0ccc5e1d0cbe4c8c6d6a8ac977b8936 +7c993c86ad3e8db83e8db63e8eaf3d9eb162b8bfabcbcadad0c7e3d0c3e0d3c7e1d4c6e0 +d3c4e0d3c3dfd2c4e0d1c4e0d0c5e1cfc4e0cec4e0cfc4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c5e1d2c5e0d2c7e1d1c6e1d0c7e1cfc6e1 +cdc6e2ccc7e3cbc7e3cac7e3cac7e3cac6e2ccc7e3cfc6e1d0c4e0d3c3dfd5c2ded8c1dd +d8c1ddd7c1ddd4c3dfd2c2dfd2c3dfd2c2dfd2c2dfd1c2ded2c2dfd3c1ded3c1ded3c1de +d3c2dfd4c2ded5c2ded4c3dfd5c2ded5c3dfd4c3dfd3c3dfd2c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1cdc0decec1dfcfc4e0d2c5e1 +d4c6e1d4c6e1d2c5e1cfc4e0cfc2dfd1c3dfd2c3dfd2c3dfd2c3dfd2c3dfd1c3dfd0c3e0 +d0c2dfcfc3e0d0c3e0d1c4e0d2c6e1d2c7e2d1c7e2d0c6e1ccc3e0c9c0ddc8bedac8bed7 +bfb6ccb0a7bba7a2b5babac7bcc1caccd5d7c9d8d6ccddd4cad7c9cdcfbfd8cab8dab2a2 +b97063a52c23b72423c62625d32926d92b26d62b26d52b26d42a26d62a26dc2e25df2f25 +e02f25e02f25de2f25da2d25d92b26d62a26ce2926c72725c02624b92724b42723b42d2f +bb3c4ebe4b61c96177cf768ad4889cd99baedfacbfe1bacee1c4d8e0cbe0dac9e2d6c6e1 +d3c4e0d2c1ded3c1ded5c0ddd7c0ddd8c1ddd8c0dcd8c0dcd7c0ddd5c2ded3c3dfd2c4e0 +d0c5e1cfc6e1cdc6e2cdc7e3cec7e2d0c6e2d1c5e1d3c4e0d3c3dfd5c2ded7c1ddd5c3df +d0c6e1cec8e3cdc8e2cdc8e3ccc8e3ccc8e3cbc7e3cbc7e3cbc7e3cac8e4cbc7e3cbc6e3 +ccc6e2ccc5e2ccc5e2cdc6e2cdc6e2cec5e1cfc4e1d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0cfc4e0cfc4e0cfc4e0cfc3e0cfc3e0d0c2df +d0c3e0d1c3e0d1c4e0d2c7e1d2c7e0d2c8dfd1c8ded0c7e2d0c6e1d0c5e1cdc4e0ccc3e0 +cdc8e4cacce1afb9aa97ac559ab63ba3c839a9cf38add038aed139afd138afd13ab0d23e +aad03aabd03aa4c839a6bd47babf92d0c7ded1c3dfcec3dfcdc4e0cec3dfcec3dfcfc4e0 +cfc4e0cfc3e0cfbfddcebeddcfc2dfd3c8e2cfc4e1cdc6e1cdc6e2cac6d9b5b7a7859040 +79973c85ad3f91bb3d91ba3d8fb13d9aaf56b2ba9ec8c7d0d0c8e2d0c3e0d3c6e1d4c6e0 +d3c4e0d3c3dfd2c4e0d1c4e0d0c5e1cfc4e0cec4e0cfc4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c5e1d2c6e1d1c7e1d0c7e2d0c7e1d0c6e1 +cec6e2cdc6e2cbc6e2cac7e3c8c8e4c7c9e4c8c9e5cac7e3cdc6e2d1c4e0d4c3dfd8c0dd +d9c1ddd6c1ded2c3dfd0c4e0d2c4e0d2c2dfd2c2dfd2c2dfd3c2dfd4c1ded3c1ded3c1de +d3c2dfd3c2dfd3c2dfd3c2dfd4c3dfd5c2ded5c2ded3c3dfd2c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1cec2dfcec2dfcfc4e0d0c4e0 +d2c5e1d0c4e0cfc4e0cfc4e0d0c2dfd1c2dfd2c2dfd3c4e0d4c5e1d4c6e1d4c5e1d2c4e0 +d0c2dfcec0decfc2dfcfc3e0cfc3e0cfc3e0cfc4e0d0c5e1d2c7e2d4c9e3d4cde5d3d1e6 +c3c5d6b2b6c3b7b6c5c7c7d3cdccd7d4d5dcced4d5d1dad5ced7cfcacdc0c3bbaeb2968a +965c518c231d9b1e1faf2222bf2324c82625cd2826d12926d12926d62c26df2f25df2e25 +dd2d25dd2d25e32f25e52e24e52f24e42f24df2e25d92b26d32926cf2726ce2626cd2626 +cb2528c52429bf2228b7232cb62c3bbe4655ca6475d48191dc97a7dea8badbb0c3dab9ce +dbc0d5ddc5dcdcc7dfdac7e0d6c5e0d6c3ded8c0dcd7bfdcd5c0ddd3c2dfd3c3dfcfc4e1 +cec6e2cbc8e3cacae5c9cae4cacae4cbc9e3cec8e3d0c7e1d3c6e1d5c5dfd6c4dfd6c4df +d3c4e0d3c3dfd3c3dfd2c4e0d0c4e0d0c5e1cfc5e1cec6e2cdc6e2cbc6e3cac7e3cac7e3 +cac7e3cac7e3cac7e3cac7e3cac7e3ccc6e2cfc5e1d0c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d0c4e0cec4e0cec4e0cfc4e0cfc4e0d0c3e0 +d0c3e0d1c3e0d2c4e0d2c4e0d2c5e0d2c7e1d0c7e2d0c7e2d0c7e2cec8e3cec7e2cdc8e2 +c5c8d8b2bdb599af7b8ead3d9cc23babd037aed137aed138aed139b0d238aed13aafd13d +a9cf3aabd039a4c939a5bd41b8be8cd0c7dcd2c3dfcec3dfcdc4e0cec3dfcec3dfcfc4e0 +cfc4e0cfc3e0cfbfddcfbfddcfc2dfd1c5e1cfc4e1cec5e1cbc4e0cbc8dfc2c3b88d9a53 +75933b85ad3f94be3d96bf3c90b33d97ad4aadb68ec6c5c7d0c8e2d0c4e0d3c6e1d4c6e0 +d3c4e0d3c3dfd2c4e0d1c4e0d0c5e1cfc4e0cec3e0cfc3e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c5e1d1c6e1d1c7e1d1c6e1d1c6e1d1c5e1 +cfc4e1cdc4e1cbc5e2c9c6e3c6c8e4c5c9e5c4c9e5c7c9e5cac8e4cfc6e1d3c3dfd5c2de +d7c1ddd4c3dfd0c4e0cfc5e1d0c4e0d2c4e0d2c2dfd3c2dfd4c2ded4c1ded3c1ded2c2df +d2c3dfd2c3dfd2c4e0d2c3dfd3c3dfd4c3dfd5c2ded3c2dfd2c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d4c6e1d4c6e1d3c6e1d0c4e0 +cfc3e0cec2dfcfc3e0d2c5e1d4c6e1d3c4e0d3c3dfd2c3dfd2c2dfd2c2dfd2c2dfd2c2df +d1c3e0d2c4e0d0c2dfd0c3e0d1c4e0d0c4e0cfc4e1cfc4e1d0c6e1d0c6e1ccc6dfbcc0d2 +b3bbc5b9c0c8cccdd8cdcad5d4cdd6dfd6ddd6d3d6cccecdc6cac5bcbfb8aba79f927f77 +805a537c3032851d239b232ea42028aa2021b32123b82323b92323c12424cd2926d12826 +d62a26de2f25e02f25de2e25e02e25e32f24e52f24e32f24e32f25e22e25e22c25e02e25 +dd2d26dd2d26da2a26d22726c72525bc2224b32224ac242ba92c38b04453b65b6ac77e8d +d79aabe4afbfe8bacce8bfd2e5c0d4e1bfd9ddc2ddd9c1ddd6c3ded3c4e0d2c5e1d0c7e2 +ccc8e3cacae4c7cae5c7cbe4c8cae4cacae4ccc9e2cfc8e2d1c7e1d4c6e1d5c5dfd6c3df +d7c1ddd6c1ddd6c0ddd4c0ddd3c0ddd1c0ded1c3dfcfc4e0cec4e0cdc4e1cdc6e2cdc6e2 +ccc6e2ccc6e2cdc6e2cdc6e2cdc6e2cec5e1cfc4e1d0c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d0c4e0cfc4e1d0c5e1d0c5e1cfc4e1cfc4e1d1c3e0 +d1c3e0d1c3e0d1c3e0d1c3dfd0c2dfd0c3e0d0c5e0cfc7e2d0cae0cfcddfcecdd8caccce +b6c1b092a8788eac5095bd3ca4cc39add037aed138aed139b0d238b3d339add13baed13d +aacf39aacf38a3c939a5bd3cb7be86d1c7dad2c3dfcec3dfcdc3e0cec3dfcec3dfcfc4e0 +cfc4e0d0c2dfcfbfddcfbfddcfc2dfcec3dfcfc4e0cfc6e1cac3e1cfcae3cbcdc596a161 +74903a86ac3e96c03c98c23c93b73d97af42a9b482c4c4c0cfc7e0d2c5e1d3c5e0d3c4e0 +d3c3dfd3c3dfd2c4e0d2c5e0d0c5e1cfc4e0cec3e0cfc3e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c5e0d2c7e1d3c6e1d0c3e0d2c4e0 +d0c4e0ccc2dfcdc5e1cbc6e3c7c7e3c6c9e5c5cae6c7cae5c7c8e4cbc6e2d0c5e1d3c4e0 +d3c2dfd0c2dfccc5e2cbc6e2d0c5e1d1c4e0d2c3dfd3c2dfd4c1ddd4c1ddd3c2dfd2c3df +d0c4e0d0c4e0d0c4e0d1c3e0d2c4e0d2c3dfd3c2dfd2c3dfd2c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1 +d2c5e1d2c5e1d2c5e1d2c5e1d2c4e0d3c3dfd2c3dfd2c3dfd2c2dfd2c2dfd2c2dfd2c2df +d2c4e0d2c4e0cfc2dfd2c5e1d4c7e2d3c6e1d0c4e0cfc6e1d4cbe4cec5dfc0bdd3b6bbc7 +b1bec3bfc7cbd6d4dad5ced3d8cbd3e6d8dedaced3cac3c4bdbcbca4a7a48989869d9695 +c2b0b1ae848c894857a253689d3b528e1a2b8e171b951a1d9b1c1fa11e20aa2021b32323 +bd2624c42725cb2925ce2926cf2926d42a26db2d26e02e25e32f24e52f24e42f24e02e25 +dd2d25de2e25e02f25dd2d26d72b26d12826cc2626c92626c42525bf2628b32328ad232c +a92632a62e3bb14553c86876e4909ff2b5c6edcbdfe0cde4dccce3dacce3d7cee5d3cee6 +cfcde5cacce4c6c9e1c7cbe3c8c8e1c8c7e1cbc7e2cdc6e2d1c6e1d4c6e0d3c4e0d4c1dd +d9c2ded9c0dcd5bddbd2badad1bbdad1bbdad0bcdbd0bfdcd0c0ddcfbfddcfc0ded0c2df +d1c3dfd3c3dfd2c2dfd3c2dfd2c2dfd2c1ded2c3dfd1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d0c4e0cfc4e1d0c5e1d0c6e2d0c5e1d0c5e0d2c5e1 +d2c4e0d2c2dfd1c2dfcfbfddcdbeddcec0decabeddcac2dfd2d0e0dadbd9cdd2c2b3bd9b +98ab6d85a7458eb73ea3cc39aed137b1d238b0d238aed139b1d23ab3d339add13caed13d +afd13aa5ce39a0c93aa0ba3ab5bc7dd5cbdad4c6e1cfc4e1d0c5e1cfc4e0cfc4e1d1c5e1 +d2c5e0d1c4e0d1c2dfd1c2dfcfc2dfcec3dfcdc2dfcfc6e1cec6e2d0cae4cbccc89ea86d +7c973b89b03e95bf3c98c33c9bc13b9cb53fa4b175c5c6bad2cae1d2c5e1d3c5e0d3c4e0 +d3c3dfd3c3dfd2c4e0d2c6e1d0c6e1cfc4e0cec3e0cfc3e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0cfc3e0d3c5e0d7cbe4cbbddcd4c5e1 +d8cbe4c0b3d7d5cbe4d3cbe5c6c0dfc9c6e3c9c8e3cacce6c5c5e2c5c2e0ccc7e3d2c9e4 +cfc5e1c4bfdec0c1e0c3c3e1cdc6e2d1c6e1d3c4e0d4c1ddd4c1ddd3c1ded2c2dfcfc2df +ccc3e0c9c4e1cbc5e2ccc5e2cec4e0d0c3e0d2c2dfd2c2dfd2c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1 +d2c5e1d2c5e1d2c5e1d2c5e1d2c4e0d3c3dfd3c3dfd3c3dfd3c3dfd3c3dfd3c3dfd2c4e0 +d2c4e0d1c4e0d4c6e1d2c5e1cfc2dfcec3e0d1c8e1d4cbe3d0c8dec6bfd3bdb9c8c0c3ca +c5cacbcacccbd7d3d2e7dddee2d1d5cdbdbfcec1c4ccc3c5a6a4a68b8e91a2a7a8cacbcf +e6e2e8cab6c4b191a4d7adc5e0acc6d89bb8ce8aa7bb6f8ca24c688a253f82161e831417 +8917198f181b961b1da21f20af2322bf2724cb2826d02826d62a26dd2d26e12e25e22e25 +dd2e25d92b26da2b26dc2d25e02e25e32f24e52f24e42f24e02e25d82b26d32926d12827 +cd292ac12728b42223aa2021a420209d242a9a3b4ea65e74c28297d8a4b6eabaceefc7d8 +edcbdde6cbdde0caded9c6ddd4c6ded0c5dfcdc4deccc4e0ccc5e1cec7e2d1c9e4d6cae4 +cab6d8cdb7d8d0badad2bedcd4c2ded4c5e1d4c6e1d4c5e1d2c3dfd5c8e2d5c8e2d4c5e1 +d3c4e0d2c1ded2bfddd3bfdcd4bedcd3bfdcd2c2dfd2c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d0c4e0d0c5e1cfc6e1cfc6e1d0c7e1d0c7e2d3c6e1 +d2c4e0d2c2dfd1c1ded3c3dfd5c6e1d0c2dfcfc4e0d4cee5d0d0d1bec3aca7b38296a758 +8fad439fc6439cca3ba1cc39a9cf38aed138b3d338b7d438b8d53cb6d43fadd13dadd13c +afd139a6ce38a2c939a1ba39b3bb78d3ccd5d4c6e1cfc4e1cfc5e1cfc4e0cfc4e1d1c5e1 +d2c6e1d1c4e0d1c3dfd1c2dfd0c3e0cec3e0cdc2dfcfc5e1cdc5e1d0cae4cbcccd9ea972 +7e983b8bb03e96c03c99c43b9cc33b9bb63ba4b16ec3c6b5d0cbdfd3c5e1d2c4e0d3c3df +d3c3dfd3c3dfd3c5e0d2c7e1d0c6e1cfc4e0cec3e0cfc3e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d0c2dfcfbfddcfbfdddacce4c9b9da +cdbddccebedcd3c4e0d2c3dfd2c1ded8c9e2d9cde5cabed7d7cee5cdc7e2ccc6e2ccc7e3 +c8c5e2c5c5e2cacee8cccfe8d0cbe5d4c7e2d3c3dfd4c0ddd3bfdcd4c1ddd2c3dfcfc3e0 +cbc5e2c8c6e3c8c6e3c9c6e3cbc6e2cec4e0d0c3e0d1c3dfd1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1 +d2c5e1d2c5e1d2c5e1d2c5e1d2c5e0d3c5e0d3c5e0d2c4e0d2c4e0d2c4e0d2c4e0d1c4e0 +d1c4e0d2c5e1d4c7e2cfc4e1cdc3dfcfc6dfd2cbe2cfc9ddc3becebfb9c7c4bec7cbc6ca +d8d3d2dcd5d2d5cccaded2d1dccfcfcec3c1c1bbba9f9ea075797b798184abb4b8d5dce4 +dddde9c1b9cab29fb6ddc1dae6cae0dcbcd9d2b3d5cfafd3cea8cdd0a5c7ca99b5b87f95 +9f5c6e8739417b231f7f1d17871c18911d1c9d1f1faa2021b52123bf2424c62625cc2726 +cf2826d22a26d72c26dd2e25e12e25e32f24e32f25e02e25e02e25e42f24de2e25d62b26 +d22826cf2926cb2926c72b25c72c25c82d2abf2326bf262cbd2730bb2a3bbd374cc55064 +d16d84e18ea3eaa7bef6c4d9f0cadfe7cde3decde4d4cbe4cac8e4c3c7e3bec5e3c1c5e3 +d2cde6d3cbe5d1c9e4cfc8e3ccc6e2cac5e2c7c5e2c5c3e1c6c3e1c5c1e0c7c1dfc9c2df +cbc2dfcfc2dfd1c1ded3c1ded7c1ddd6c3ded3c3dfd2c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d0c4e0d0c5e1cfc6e2cfc8e2d0c7e2d0c7e2d3c7e1 +d3c5e0d2c2dfd1c1ded0c0decdbeddc8badbcdc3e0d8d5e7cdd1c4b1bc8f9eaf6097b144 +98bb3b9bc73ba1cc39acd038afd138aed138aed137aed138b0d23bb1d23dafd13daed13b +aed139a6ce38a1c8399fb93ab1ba73d2cbd1d3c7e2cfc4e1cfc5e1cfc4e0cfc4e1d1c5e0 +d2c7e1d2c5e1d1c3e0d1c3dfd0c3e0cfc4e1cec3e0cfc5e1ccc4e1d0c9e4cccbcea0aa79 +819b3b8bb03e96c13c9bc53b9dc43b9cb73ba3b166c2c5afd0cbded3c5e1d2c4e0d3c3df +d3c3dfd3c4e0d3c6e1d2c7e0d0c7e2cfc4e0cec3e0cfc3e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d0c2dfcfc0ded1c1ded2c2dfc4b4d7 +dacbe4d7c4dfd1bad9dcc2dde8cae0e4c3dbe6c5dad6b5cddcc3d9decbe2d0c4dfc9c5e2 +c6c8e4c2c8e4c3c9e6c5c8e4c9c3e0cec0ded2bedcd4bedcd8c0dcd8c3ded6c5e0cfc4e1 +cbc6e3c7c8e4c6c8e4c8c7e3cac5e2ccc3e0cfc3e0d0c2dfd1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1 +d2c5e1d2c5e1d2c5e1d2c5e1d2c5e0d2c5e0d2c5e0d3c5e0d3c5e0d2c5e1d2c5e1d2c5e1 +d2c5e1d1c5e1d0c5e0d0c6e1d0c8e2d1c8e0cec8ddc5becdb9b6c0bfbbc4cec8cdd2cacc +ded2d2e5d7d6d9cccbd5cbc8cec5c3c6c0bea2a1a071747570777a98a2a5c3cbd3d9dfea +cfd1e2bab6cbafa2bbd2c2dcd9c6e1d6c6e1d7c9e3d1c3dfcebcdbd1bcdbd6bedbd4b7d2 +caa9bfbe99a9b99199b58889a36c688d443d83261b8d1f1c98211fa12021a72021ac2021 +b52223bc2424c32625c82725cc2726d42a26da2c26e12e25e52f24e53024e32f25dd2d25 +dd2d26da2d26d42a26ce2926cb2726cd2826d62a26dd2d26da2c26d52826ce2728c9272c +c32b3cc1384dbd445dbe5a75c57490d494b1dfafcde4c0dae3c9e1dccae2d7c9e3d4c9e3 +cac1dfcbc4e0cec7e3cfcae4cecce6cccce6c9cbe6c7c9e5c6c8e3c8c8e4cac9e4cccae4 +cfc9e4d0c7e3d2c6e1d2c4e0d1c1ded0bfddd2c3dfd1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c5e1d0c5e1cfc6e1cec8e3d0c8e2d0c7e2d3c7e1 +d3c5e0d3c3dfd1c1ded0c1ded0c1ded0c3e0d4cbe4d0cfd3bcc2a4a3b26f96ad4895b33c +99c13b9bc93ba3cd39afd138b4d337b6d439b5d43cb5d33cb2d23db0d23cafd13cadd13a +add138a6ce38a1c8399eb83aafb972d0c9ced3c5e1cfc4e1d0c5e1cfc4e1cfc4e1d1c5e0 +d2c7e1d2c5e0d1c3e0d1c3e0d0c3e0cfc4e1cec3e0cfc6e1ccc4e1cfc8e3cccbd1a2ac7d +849c3b8cb03e98c23c9dc73b9fc63a9db83aa3b162c1c5abd0cbdcd3c5e1d2c4e0d2c2df +d3c3dfd3c4e0d3c7e1d2c7e0d0c7e2cfc4e0cec3e0cfc3e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c3dfd3c4e0d5c7e2c8badacdbddc +ddcce4d9c4dfe0c3dde4bdd9d29ebdbd7f99daa0b4f3c8d9f4c7d7f3d4e5d7c4decac2e0 +cacbe6cacfe9c6cbe6c8c7e3cbc2e0d3c0ddd8c0dcddc1dcdec2dddbc1ddd7c3dfd1c4e0 +ccc7e2c7c8e3c6c9e5c7c7e4cac5e2cbc3e0cfc2dfd0c2dfd2c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1 +d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e0d1c5e0d2c5e0d2c5e0d1c5e1d1c5e1d1c5e1 +d1c5e1d0c5e0cfc6e1d0c8e2d0cae3ccc8ddc5bfd0bbb8c4bcbcc2cac8cbd7d2d5dacfd2 +decfd2e0d0d3dacfcfcec7c7b7b5b2adaeab7b807f6a6f718e9698bec4c8d8dce6dcdce9 +cccbdcc1bbd1b1aac2ccc3ddd3c8e2d0c4e0d1c4e0cfc1ded0bfdcd5c1dddbc6e0ddc8e0 +d8c3ddd2bfd5d1bdcfd0bdc9c0acb7b499a3b18c97b78591b37584a4586d94394d8b212f +8f1c1d97201e9e2120a62121ae2322b62323c02424c82625cd2826d32926d72a26da2c26 +dd2d26dd2d26dc2e25da2e25d92b26da2d25e33025e43024e32f25e02e25da2c26d32926 +cd2626c72528c0252eb92437b82f49bd425fc15274c86489d2789cdf8eb3eca5c8edb8d4 +e5c3dadfc9ddddc9dfdac9dfd5c9ded1c8dfcfc9dfcdcae2cccbe3c9cae4c9cae4c9c9e3 +cac7e3cac6e2cbc6e1cbc4e1ccc3e0cdc2dfcfc4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c5e1d0c6e2cfc6e1cec8e3d0c7e2d0c7e2d3c6e1 +d2c4e0d3c3dfd2c3dfd0c0decec0ded4c7e1cec9d7b7b9aaa1ad7a99ad5699b3429bbc3b +9ec73aa8cf39a7ce38a9cf38add037b4d33ab9d540bad53fb5d43bb0d23aafd139acd039 +acd038a6ce38a1c8399cb63bacb572cdc8cdd3c5e1cfc4e1d0c5e1cfc4e1cfc4e1d1c5e0 +d2c7e1d2c5e0d2c4e0d2c4e0d0c4e0cfc4e1cfc4e1cfc6e1cbc4e1cfc8e3cdccd3a3ad80 +889f3c8eb13d9ac33b9dc83a9fc73a9dba3aa3b25fc1c4a8d0cadbd3c6e1d1c3e0d2c2df +d2c2dfd3c4e0d3c7e1d2c7dfd0c7e2cfc4e0cec3e0cfc3e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c3e0d3c5e1d3c7e2cdc3e0d5c9e3 +cfbedcdcc3deeac6ddd69bb9b4637da8475db04c5bc6717fba6a7bd299aedfbcd6d6c6e0 +cac7e3c6c9e5cacbe6ccc7e2d2c2dfd8c0dcdebfdbe0bedadfbcd9dbbad8d6bddbd4c4e0 +cfc6e1c9c8e3c7c8e3c8c7e3cac5e2ccc3e0d0c0ddd0c0ddd2c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1 +d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d1c5e1d0c5e1d1c5e1d1c5e1d0c5e1d0c5e1d0c5e1 +d0c5e1cfc6e1d0c7e1cfc8e2cac6dec2c0d2bab8c5bcbbc4cccbced6d5d5d9d4d5dfd5d9 +dbced5d5c9cecfc9cbbbb9bca2a6a6a4abaa6f797981888baeb0b3d1d1d7e0dbe6dbd4e2 +cfc7d7c7c0d4b1abc2c7c3dcd0cbe4cfc7e2d0c4e0d3c3dfd5c3dfd8c3dedac3dedac4df +d8c4dfd4c4dfd3c7e1d1cae3cdc9e0ccc8dfd0c8e0d3c5ddcdb7d2be9fbeb087a7a8758f +a1637499505b8c374489273491232f9a222da22129a72021ad2122bc2224c52625cb2626 +cf2726d42a26d92b26dd2d25e02f25e02f25dc2e25db2e26dc2e25dd2e25dd2e25dd2d26 +dc2d26d82b26d32726d02628cd252ac6242cc0222fbe2438c22d48cd415dd95672d56985 +d28698ce96a6d6a5b4deb1c0e4bccbe3c1d2e1c7d7decbdcdbcbe1d5cbe2d1cae3cec7e2 +cac5e1c8c4e1c7c3e1cac5e1ccc7e3cec6e2d0c5e1d0c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c5e1d0c6e2cec7e2cec7e2d0c7e1d0c7e1d3c5e0 +d3c3dfd3c3dfd3c3dfd3c4e0d1c6ded4ccd8c4c2b9a1a88195a55c9db24fa8c34aabcc43 +aad03bacd03cafd13cafd13caed139b2d23ab5d43eb7d43cb5d338b1d239b0d239acd039 +acd038a4cd39a1c73a9bb53baab474cbc7ccd1c5e1d0c5e1d0c5e1cfc4e1d0c5e1d1c6e1 +d2c7e1d2c7e1d2c4e0d2c4e0d0c4e0d0c6e1d0c5e1cfc6e1cbc3e0cec7e3cdccd4a7af83 +8ca24190b13d9cc33b9fc93aa1c9399ebb3aa3b25cc0c4a5d0cadbd3c6e1d1c3dfd1c2df +d2c2dfd3c3dfd3c7e1d2c7ded0c7e2cfc4e0cec3e0cfc3e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d0c4e0d1c5e1cfc4e1cec5e1d0c9e4d2c9e3 +d0bfdde2c8e0d7a5c0b4657d9e3043a324299e1e1fa92426a12833b25b70e4b1c8e4c9e1 +cfc4e1c7c6e2cac5e1d0c6e1d6c1deddbfdbe4bed9e6bcd8e6bcd8e4bfdadfc1dcd7c3df +d0c7e1cbc8e2c9c8e3cac7e2cac3e1cfc2dfd1c0ded2c0ddd2c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1 +d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d0c5e1d0c5e1d0c5e1d0c5e1d0c5e1cfc4e1cfc6e1 +cfc6e1cec7e2cfc7e2cac4e0c4bed6bab7cab9b8c4c6c7cdd8d9dcdadbd9d5d3d1ddd5db +d7ced7c7c1c9b6b6bca2a9ad99a4a5b7c1c18791919d9fa3bebac0d6cbd6e2d1dfddccdb +d6c6d8c8bdd0aaa7babfc3d6c9cee4cacde4cdc9e3d1c7e1d4c5e1d5c1ddd6bedbd7bedb +d7bfdcd5c2ded3c4e0d0c5e1cec8e3cccae5cccae4cfc6e2d1c4e0d5c3dfdac3dedcbfdb +d5b3cec399b3a978939f657e9f5b74a050689d405495293a941c239e1f21ab2022b32123 +b82323be2424c52625ce2826d52b26d62c26ce2926ce2926d32a26d62c26db2e26dd2e25 +de2f25dd2d25da2d25dd2d26dd2c26d92a26d32926cd2826c72625c32525c02424b52323 +af2a34b13e4bbf5663cb6e7cd58290dd94a4e3a4b5e7b4c6e7bed3e6c7dce1c8e0dcc7e0 +d6c5e0d2c4e0cfc4e1cfc5e1cec5e1cec5e1cfc4e1d0c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c5e1d0c6e2cec7e2cec7e2d0c6e2d0c5e1d2c4e0 +d3c3dfd3c3dfd5c5dfd6c8ddd5cad2c5bfb4a6a88688935284983b90aa3f9bb8429fc23d +9ec53aa3cc39b1d341bed748bad642b3d33eb3d33bb5d338b6d438b5d337b1d239abd038 +acd037a4cd39a1c53a9ab23aa9b377cac5cbd0c5e1d0c6e2d0c5e1cfc4e1d0c5e1d1c6e1 +d2c7e0d2c7e1d2c4e0d2c4e0d0c4e0d1c6e1d0c5e1d0c6e2cbc3e0cec7e3cdcdd6a7b086 +8fa44790b23d9ec53aa2ca39a3c9399ebb3aa3b25ac0c4a3d0cadbd2c5e1d1c3dfd1c1de +d2c2dfd3c3dfd3c7e1d1c8dfd0c8e2cfc4e0cec3e0cfc3e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c5e1d0c6e2cec6e2cac5e1cac7e2c8c2df +e2d3e7ebcce1b4758c983345a12325ad2022b32122b62323bb2c30aa3a4adc99ade7c1da +d8c7e1d0c7e1cdc3e0d5c6e0ddc4dee0bcd9dfb1d2e1afd0e5b4d3eac0d9e8c8dfd9c1dc +d3c5dfcdc6e2cac7e2cbc6e1cdc4e0d1c2dfd4c0ddd3c0ddd2c2dfd1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1 +d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d0c5e1d0c5e1d0c5e1d0c5e1d0c5e1d0c5e1cec6e2 +cec6e2cec6e2cac3e1c3bdd9bcb9d0bbbacbc4c4ced0d1d7dadbdbd6d8d6cfd1d0d0d0d7 +c8c7d3b2b4c09ca3ad9ca8b0a7b5b9cdd8dba2a7acaca8afcbbdc5e0cbd7e8cedbe6ccdb +dfc8d8c7bccba7a6b6bcc5d3c2d0e0bfcbe2bec6e2c6c5e2cec4e0d2c3dfd7c0ddd8bedb +d6bddbd4bcdad2bddbd0bfdcd1c2dfcfc4e0cdc0decebedcd0bddbd6bedcdcc2dde1c6df +e0c8e0ddc3dddbbedbdebed9deb7d4d2a4c0bc859fa6647a9746599333429e333ba32a2c +a32121a62021ad2022b42123ba2423be2624c72725c92825cb2925cc2826ce2826d12826 +d52a26da2b26dc2d25d92b26d92b26da2d26d92d26d62e26d42d26cf2d26cb2a25c82825 +c92626c52426bc2124b32023af2129b32d3dbf4c5dce6a80d7859de09db7dea6c4ddb0cf +ddb9d7dbc1dcd9c4dfd3c4e0cfc1deccbfddcfc4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c5e1d0c6e2cec7e2cec7e2d0c5e1cfc4e1d2c4e0 +d2c2dfd3c3dfd5c5ded5c9d5cac1ba9f9a7c6e73355d6b2e5d76335c7b365b81395c883b +68963f81ae4096c33caed141b1d342b3d33fb6d43ebad539bcd637bbd536b2d238aacf38 +abd037a5cd399fc43a99b13da6b179c7c4cbd0c5e1d0c6e2d0c5e1cfc4e1d0c5e1d1c6e1 +d2c7e0d2c7e1d2c4e0d2c4e0d0c4e0d1c6e1d0c6e1d0c6e2cbc3e0cec7e3cdced5aab288 +92a74b91b23d9fc63aa4cc39a4ca399fbd3aa2b257bfc4a3d0cadbd3c5e1d1c3dfd1c1de +d2c2dfd3c3dfd3c7e1d1c8ded0c8e1cfc4e0cec3e0cfc3e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d0c4e0d0c6e2cfc6e1cac7e2c2c3dec5c3dc +e2d6eaeccddfb77685a0353db12928c52725cb2726c42425c02424a62228c26478e1adc5 +e4cce2d6c7e1d6c7e1e0cae2e5c3dcdaa8ccc98bb5bf7ca8c585afd29cc3dab2d2dbbfdb +d3c2decfc4e0ccc6e1cec5e1cfc4e1d2c2dfd5c0ddd5c0ddd2c2dfd1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1d2c5e1 +d2c5e1d2c5e1d2c5e1d2c5e1d1c4e0cfc4e1d0c5e1cfc4e1cfc4e1d0c5e1d0c5e1cec6e2 +cec7e2cdc6e1bfbad7bab5cebdb9cdc5c4d3d0d0dad5d6dbcfd0d0cccfcbcfd2d3c5c6cf +b4b5c6a0a0b59599acb8c0d0c4cedecad0dda2a2aeb2acb6d1c3cce3cfd9e7ced9e4cbd6 +dac6d3c2b7c4a7a5b5bec7d6c0cddfbdcae4c2c9e5c7c7e3cac3e0cfc0ded3bfdcd5bfdc +d7bfdcd5bfdcd6c0ddd6c3ded2c2dfd2c2dfd2c2dfd5c4dfd6c3dfd8c1ddd8bfdcd4bddb +d3bedcd5c0dcd7c2ded9c4dfdbc4dfddc4dee0c1dbe5c1d9eabfd5f1c0d3e3a8b9c47c8b +a64e5b952b36911d24941c20991d1f9d1d20a41f20af2222b72423bc2424bd2324c12424 +c62625ce2926d52b26d72c26d72c26d72c26d72c26d62e26d72e26d62f26d52d26d62c26 +da2d26dd2c26dc2c26d52826cc2626c22325b92124b32226ac2432a4253da73a58b55c7c +c27d9fcf9ec0d8b6d6d7c2ded3c6e1cfc5e1cfc4e1d0c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c5e1d0c5e1d0c6e2d0c6e2d0c5e1d2c5e1d2c4e0 +d3c3dfd3c4e0d4c6ded7ced6cac4b88886624f57255b672c617733537233486e344d7737 +56813a50803a52843b5e8c3d739e3f93bb3db1d13ebdd744bcd63bb6d439b3d339acd037 +abd038a6cc38a1c43a9ab23ba4b175c5c3c9d0c6e2d0c6e2cfc4e1cfc4e1d0c4e0d2c7e1 +d2c7e1d3c6e1d2c4e0d2c4e0d1c4e0d3c8e2d1c6e1d0c7e2cbc3e0cec7e3cecdd3aab388 +94a74a90b33e9fc73aa4cc39a5cb399fbd3aa1b357bfc5a2d0cadbd2c6e1d1c2dfd1c1de +d2c2dfd2c4e0d3c7e1d2c8ddd0c8e0cfc5e1cec3e0cfc4e1d0c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d1c4e0d0c6e1cfcae4d2d0e6 +bbb8cae4cfdee6b3c1bc5d69a51f21be2324cc2726d92b26c42425ae2122a02934d38ea2 +edc9dedac5dedbc6dfe3c5dde5abcac676979f3c64841a457e1e4b89406ca7749cdbbdda +d5c0ddd1c3dfcfc4e1cec4e0cfc4e1d2c4e0d3c2dfd3c2dfd2c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc2df +cfc2dfcfc2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc4e0cfc4e0cfc4e0cfc4e0 +cfc4e0cfc4e0cfc4e0cfc4e0cfc3e0cdbfddcfc4e0d2c5e1d0c3e0ccc2dfcdc3e0d1c8e2 +cac3dcbdb7ceb6b1c4bebbcacbcad5d4d3dbd4d4d7d2d3d3d1d2cecccfcbc8caccb1adbd +a39ab7a69ec1b5afd1c9c4e1d5d1e9d5d2e9a7a7baa9a8b5c4c0c6d7d1d1dcd4d1dcd4d2 +d9d1d3c5c1ccb1adbfcdcbe3d0cde6cac7e2cbc5e2ccc4e1cec3dfcfc3e0d1c1ded1c0dd +d1c0ddd1c0ddd1c0ded1c1ded0c2dfd0c2dfd0c2dfd0c2dfd1c2dfd1c1ded2c1ded2c1de +d2c1ded2c1ded2c1ded2c1ded2c1ded3c0ddd4c1ddd6c1ddd8c1dddcc4dedec3dee5c6de +e9c8dfe8c3dbd5abc9b181a2874d726f1c40760e218f1924961c2a981c249b1c21a52022 +b02325b72324b92223c32325c92725d12826d52a26d92b26da2d25dd2d25e02e25e02f25 +d62b26d72b26dc2d25de2e25e02e25e02e25de2e25dc2d25d72a26cd2726cc292db82933 +9b202f9e475bca99abc3adbdcbcddfc5cae1cbc7e2d1c5e1d4c5e1d4c5e1d4c5e1d2c4e0 +d3c5e0d5c8e2d6cae3cfc1decdbeddcebfddcfc1ded0c2dfd1c3dfd1c3dfd0c2dfcfc1de +cfc2dfcfc3e0d0c3e0d0c3e0d0c3e0d1c4e0d3c5e1d3c5e1d3c5e1d0c3e0cfc3e0cfc3e0 +d0c3e0d0c4e0d1c4e0d2c5e1d1c4e0d3c5e1d1c3e0cfc2dfcfc3e0d1c4dfd1c6dcd2c4df +d2c3dfd1c3e0d0c5dfd6cdddcdc8c68d8c77585d3057642b566a2e4d672e4b6a314d7234 +4f79374e79374671354d793849753652803a4e7e3964923e92bb3db8d658bdd857b4d448 +aed13fadcf3ca6c8389bb63b9dac63b7b9bbd5cee6cdc3e0cfc3e0cfc2dfd0c2dfd0c2df +d1c3e0d1c2dfd1c1ded1c1ded2c3dfd5c7e1d4c8e2d2c7e2ccc3e0cfc7e2d0ced0abb384 +93a74795b83da0c93aa6ce38a8cd38a1c13aa5b65ac1c7a5cfcbded1c5e1d1c2dfd1c2df +d1c3dfd2c4e0d3c7e1d2c8ddd0c8dfd0c5e1cec4e0cfc4e1d0c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d3c3dfd7c3dfdabfdbd5bad9d9cae3d0cbe1 +b9c6d4d8dce9e5c9dcc37c97ab314fbd232dc62425d22a26c62625ba2323a82221be606d +dda5b9eac7d9e2c7d7e4b8c7dc7988b02632ae2129aa2130982441aa5b81ddb0d0dcbeda +d6c0ddd5c1ddd3c3dfd0c6e1cec7e2cdc7e3cdc6e2cec6e2cfc4e1d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc4e0cfc4e0cfc4e0 +cfc4e0cfc4e0cfc4e0cfc4e0cfc3e0d1c4e0cfc2dfccbfddcdc0decfc4e1d1c6e1cdc4de +c3bdd1bcb6c4c2c0cccdc9d2d2d0d7d4d4d7d4d3d6d6d9d7d6d8d4c1c4c2ababb1a49db3 +ada2c4bdb0d5ccc0ded1c5e1cec4e0cfc9e3a8a5bdafadbcc4c4c9d0d1ced4d5cfd5d6d0 +d3d3cfc2c0caafacbecec7e2d3cae4cec3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2df +d0c2dfd0c2dfd0c2dfd0c2dfd0c2dfd0c2dfd1c2dfd1c2dfd2c3dfd4c6e1d2c2dfcfbfdd +d2c2dfd6c6e1d8c9e2d6c7e1d2bfddd8b8d7f1bfd7e5a2b9bf748c993f588218307e131d +8b181f9a1c26a21f25b12529b52323bb2224bf2424c42425c82625ce2826d42a26d42a26 +d32b26d12926d22a26d72b26df2e25e52f24e93024e62e24e12e25df2e25d22826c12525 +bb3a3ed17b83f5c4c8e1ccd1d1d9dbc1cdd7c4c3dac9bfdcccc0decdc0decdbfdecdbfdd +cdc0decfc1decfc4e0d4c6e1d4c7e2d4c6e1d4c6e1d3c6e1d2c4e0cfc2dfcfc0decec0de +cfc3e0d1c4e0d1c4e0d1c4e0d3c5e1d3c5e1d3c5e1d3c5e1d3c5e1d0c3e0cfc3e0cfc3e0 +cfc3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0cfc1dfcfc0ded0c2dfd1c5ddd2c6dad1c5dd +d1c3dfd0c2dfcfc4e0d1c7dfcec8d0b7b7b19398815e694248572753672d5c7734567635 +4e72345a81395e853a608a3c57823a58853b4d7f3a4b7b3956833b69943e81ac3fa1c73a +b0d149accc3da5c539a1bc3aa8b869bcc0bbcdc8e4cdc4e0cfc3e0cfc0decfc0ded0c2df +d1c2dfd1c1ded1c0ded1c0ddd1c2dfd5c7e1d5c8e2d2c8e2cec4e0d0c7e2cfcdceacb381 +95a74595b93ca0ca3aa5ce39a7ce38a0c13aa4b65bc0c6a4cecbddcfc4e0d0c2dfd1c2df +d1c3dfd2c4e0d2c7e2d1c8ddd1c9dfd0c5e1cec4e0cfc4e1d0c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c2dfd9c5e0dac2ddceb5d7d4c4dfd3d1e6 +b7c7d9c2cde0ded0e7ebbbd6cf7294ac2035cf2b33c52625c92725bf2424b42523a62b33 +c7788bf6c5d6ecbac7c07b87a6252ab32223b12122b1262cc85f74e29fbde4bcd8d7bfdc +d2c1ded2c2dfd1c4e0d0c6e1cfc6e1cec7e2cec6e2d0c5e1cfc4e1d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d3c6e1cfc1decabeddccc2dfd0c7e1cdc3ddc2bad1 +beb8c9c1bbc9cfcbd6d3d1d8d1d1d5d2d2d6d6d5d8d4d5d7c5c6c9afb0b29c9aa5a6a0b8 +bbb0d2cfc1ded7cbe4d2c6e1c9bfdecec7e2aba7beafaebdc2c3c8cfd0cdd3d6cfd4d6d0 +d2d3cfc0bec9afaabdcdc6e1d2c7e2cec3dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +d0c2dfd0c2dfd0c2dfd0c2dfd0c2dfd0c2dfd0c2dfd0c2dfd1c3dfd5c7e2d3c4e0cfc1de +cdbeddcebfddd1c3dfd4c6e1d8c9e3ddcae2e8c9e0e4bcd3d9acc6daa9c1deabc2dfa5ba +d1899dad586c8b1f3285161b8f191c991b1fa41e21ae2322b52523b82624ba2423b82323 +c62925c52725c52725c92725d22a26da2d25e02f25e02e25df2e25df2f25cd2926c42e2b +d76668f3b0b2fae0e4f3e0e1d8e0e1ccdbe0d1d2e1d5cee3d5cce3d4cae1d0c7dfcec4dc +cac1dacac0dac8bfdbcec3dfd0c4e0d0c4e0cfc3e0cfc4e0d0c3e0cfc4e1d1c4e0d1c4e0 +d0c3e0cfc4e0cfc4e0cfc3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc2dfcfc1decfc3e0d1c4ded1c6dcd1c3de +d1c3dfd0c2dfcfc2dfd1c6e1d1cbdecfcbd0c1c1bd989d8b6670534f5f2d4f642c506c31 +4c7134567e3893b73db9d659aed14888b13f65953f50803a4d7c3953823b53823b729c3f +8eb23d9fc13aa4c439a0bc3aa3b55bb7bdaed0cce3cec5e1cec3dfcfc2dfcfc0ded1c2df +d1c2dfd1c1ded1c0ded1c0ddd1c2dfd4c6e0d4c6e1d2c7e2cec4e0d0c7e2cdcccdabb180 +96a84599bd3ba4cc39a8cf38a8cf38a2c239a6b85ec1c7a7cfcbdecfc4e0d0c2dfd1c2df +d1c3dfd2c4e0d2c7e1d1c8ded0c9e0d0c5e1cec3e0cfc4e1d0c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d4c5e1d1c2dfc5bbdbccc7e2d4d5eb +c2cae3c0c2ded3c8e2eacee3e7a6c8c45172b4212ac52625c82625c02724b32423a52021 +ba445ade7c94d77f91a13848a22227a42121a62428ca5d69eb9db0efbed7dfc0dbd2c2df +ccc5e2ccc6e2cdc6e2d0c6e2d1c4e0d2c3dfd4c3dfd3c2dfd2c3dfd1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc4e0cfc4e1ccc2dcc2bad1bab2c5 +c0bbc8cec8d1d8d4dad4d2d7d0ced3d2d2d6d5d4d9c7c8cdaaabb3a1a1aba8a6b6bcb3cd +cbbfddd3c5e1d5cae3cfc4e1ccc3e0d2cde6aca9c1adabbabfc0c6cecfcdd3d6cfd4d6d0 +d1d2cec0bdc8aca8bbcbc4e0d1c6e2cdc2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +d0c2dfd0c2dfd0c2dfd0c2dfd0c2dfd0c2dfd0c2dfd0c2dfd0c2dfcfc0ded1c3dfd4c5e1 +d4c5e1d2c4e0cfc1decfc0decfc0ded1c1ded5c4dfd6c4ded9c4dee1c8dfe9cce1edcbdf +ebbfd5d9a5bbc88da1cf97aaca7e8fb65b6ca0394994212e8f191f91191d961c1e9b1e20 +a72121b02322b82423bf2624c52725c82725cc2826cf2926d02826cd2826bf2624c13a38 +de8285facac9fbe4e6f2e2e1e0e7e6e0eeefe3e7ebe7e3ebe7dfebe2dbe7ded6e4d8d0e0 +d2cbddd0c8dccfc7ddcbc3dacac1d9cac1dbc9c0dccac0ddccc1dfcec3e0cfc4e1d1c6e1 +cfc4e0cfc3e0cfc3e0cfc4e0cfc4e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d1c4e0d1c4e0 +d0c3e0d0c3e0d0c3e0cfc3e0cfc3e0cfc2dfcfc2dfcfc1decfc2dfd1c3dfd1c4ded1c3df +d0c2dfcfc0decfc0ded2c4e0d4cae3cfc8d9d1cfd8c7c8c7a0a49a737c5f5c6b31566e30 +5f7d37789d3ea7ca3abed854c7db5bb9d64da9cf4384ae3f59853b4370354774364e7a38 +658a3b83a43d93b23c96b13b9dad54b5bba8d3d0e3cec6e1cec3dfcfc2dfcfc2dfd0c2df +d1c2dfd1c1ded1c0ded0c0ddd2c3dfd2c4e0d2c6e1d2c7e1cdc3e0cfc7e2cdcccda9b17f +95a9439cc13ca7ce38aacf38aacf38a6c438a9b864c3c9acd0cce0cfc4e0d0c2dfd1c2df +d1c3dfd2c4e0d2c7e1d1c7ded0c8e1cfc5e1cec3e0cfc4e1d0c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d0c4e0ccc3e0c8c3e0c5c5e2c8cae6cbcde7 +ccc7e3c9c0dfcdc0ded8c3dfe7bfd9db92aea52433bd2424c22425bd2624b62423b32323 +b42634bb3648be3c509b1d23a42d349c2b32b45461e09babf2bdd2e9c0d8d9c1ddcfc6e1 +c6c8e4c5c9e5c8c8e4cfc6e1d2c3dfd7c1ddd8c0dcd7c0ddd2c3dfd1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cdc2dfcfc4e1d0c7e1ccc3dec4bbd1bcb5c7beb6c4 +cbc6ced7d3d7dbd8dbd6d4d7d1d0d3cfced3c9c8ceb4b5bf9d9baba7a6b8c1bdd3d0c7e2 +d4c6e1d0c2dfcfc2dfcec3dfd1c6e2d4cee7aba7bfa9a8b7bdbfc3cecfccd3d6cfd5d7d0 +d1d2cebfbcc6aaa7bacac2dfd0c6e2cdc2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +d0c2dfd0c2dfd0c2dfd0c2dfd0c2dfd0c2dfd0c2dfd0c2dfcfc1decdbeddcfc1ded4c5e1 +d4c6e1d4c5e1d2c4e0d0c2dfcfc1deccc1dec8c2e0cccae4d0cbe5d0c9e3d0c5dfd4c3dd +d8c3dddec4dce4c5dbe4c4dbe7b9cfdba7becf94abc48299b87087a95c729a465c963346 +8a171b961c1e9e1f20a42221ab2221b12222b62423bc2424be2724b72523b22926bf4d4c +e09799fbd4d6fadedfeee0dee0e8e6e6f1efeaeeebeeece9efebeaeee9e9eae6e8e6e0e4 +e2dbe2e0dae2ded7e4d6cfdfd1cbddd0c9ddcec7ddccc5dccbc3ddcac3dccbc3deccc3de +cec4e0cfc4e0d0c5e0d0c6e1d0c6e1d0c5e0d1c5e0d1c6e1d2c6e1d2c5e1d1c5e1d1c5e1 +d0c4e0cfc4e1cfc4e1cfc4e0cfc3e0cfc3e0cec2dfcec0decfc2dfd0c5e0d0c5e0d0c2df +cfc0decfbfddcebeddd1c3dfd4c6e1ccc3ddd0c9e1d6d2e3c8c7cfb0b4ab959e7c798942 +718c398eb03daed03ebbd649cbdd5ac5da56bcd7549abf3b678f3d4b72354a71354d7234 +527334607f3773913b839d3c98a75ab6baabd1cee1cec6e1cec3dfcfc2dfcfc2dfd0c2df +d0c2dfd1c2dfd0c0ddd0c0ddd2c2dfd1c3e0d0c4e0d1c6e1cec3e0cfc7e2cdcbcba9b17c +93aa419fc43aa9cf39acd037abd037a6c438a9b968c4cab0d0cce0cec3dfd0c2dfd1c2df +d1c3dfd2c4e0d2c5e0d1c7e0d0c8e2cec4e0cec3e0cfc4e1d0c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d0c5e1cbc4e1c8c6e3c9cbe6c3c9e5c1bfdf +d1c1ded4c3dfd0c2dfcfbfdddbc4dfe4b6d0bc5f72ae2726b72423b92423bf2624bc2424 +b92224ba2225ba2327aa1f219a2b33a85963d196a5eabed2e9c3dbdfbed9d8c3dfccc7e3 +c3cae6c1cae6c5c9e5cec6e2d3c2dfd8c0dcd9bfdcd8c0ddd3c3dfd1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3e0cfc4e0d0c6e1ccc3ddc4bbd2bdb5c8bfb9c6cdc8cf +d7d3d7dad5d5d7d4d3d6d4d4d0ced0c3c3cab3b1bba39fb2a4a1b8bab7d0cfc8e3d7cde6 +d4c6e1cdbfddcbbfddcfc4e0d1c6e2d0c9e4a6a2b9aaaab8bfc0c6cecfccd3d6cfd6d8d1 +d1d2cebfbcc6a9a5b9cac1ded0c6e2cdc2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +d0c2dfd0c2dfd0c2dfd0c2dfd0c2dfd0c2dfd0c2dfd0c2dfd0c2dfd1c3dfd1c3dfd0c2df +d0c2dfd0c2dfd0c2dfd1c3dfcfc3e0cbc4e1c5c6e3c3cae6c3c9e6c2c6e4c2c4e1c5c2e1 +cac3e0d0c6e1d5c6e0d1bddad9c1dbe2c8e0ebcce1eccbe0e8c2dad8aecbc796b5bd819d +ae6076ac4e5da0374496242c931d20971d1f9d2120a32221a323219d2120a12b2bb45254 +d8999cf8d0d1f5d7d8e9dddddfe5e4dce7e3e4e8e1e8e9dfecebe1eeece4eeece5eeeae6 +ece9e7ebe9eaece8ece7e3e9e3dee8dfdbe6dcd6e5d7d2e2d4cee1cfcadecec8dfcdc7dd +cec6decfc6decfc6dfcfc6dfcfc6dfcfc6e1d0c6e1d0c6e1d0c6e1d0c5e0d0c5e1d0c5e1 +cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1cfc4e1cec3dfcdc2dfcec3dfd0c5e1d0c5e0d0c2df +cfbfddcebeddcebeddd0c0ddd0c2dfcec0deccc1decdc6e1d2cee5d9d8dfc8cbbaa2ae77 +8aa13c9dbd3bb7d544c1d948cadc53bed84dafd1448eb13d688b3b5476354e7033577534 +516c304d672e5571326c81358c995ab2b5aad0cde0cec6e1cec3dfcfc2dfcfc2dfd0c2df +d0c2dfd0c2dfd0c0ddd0c0ddd2c3dfcfc2dfcfc2dfd1c5e1cdc4e0cec7e2cccbc9a6b079 +93aa3ea1c63aaacf38abd037abd037a6c33aa8b86bc4c9b2cecbdfccc0decfc2dfd1c2df +d1c3dfd1c3e0d2c5e1d1c7e1d0c7e2cec4e0cec3e0cfc4e1d0c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d0c5e1ccc6e2cbc9e4cccce6c4c4e2c2b9da +d2bddbd7c2ded2c3dfcfc3e0d4c5e1dcc1dadda7b5ac4142a72021ba2323c62725be2424 +c22325cd2626c72625bd2529aa4853cb97a4e5c3d6e0c7ded9bedbdbbfdbdbc7e1cec7e2 +c6cae6c1cae6c5c9e5ccc5e2d2c2dfd6c0ddd8c0dcd7c1ddd2c3dfd1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3e0cec5e0cac2dcc4bbd1bdb5c8bfb8c5cbc7cdddd8dc +dddbdbd4d1cececccacdccccc7c5c9b3b2bb9f9cab9f9ab1b9b5d0cac5e1cec6e2d1c6e2 +cfc3e0cec0decfc3e0d1c6e1cec4e0cac5e1a39fb9afacbbc2c2c7cecfccd5d7d0d7d9d2 +d2d3cfbfbcc6a8a5b9c9c1ded0c6e2cdc2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +d0c2dfd0c2dfd0c2dfd0c2dfd0c2dfd0c2dfd0c2dfd0c2dfd0c2dfd3c5e0d1c3e0cfc1de +cec0decebfddcec0decec0decdbfdec9c2e0cacae5c0c8e5bec4e3c0c6e3c6c8e4cacbe6 +cccae4cac6e2c9c2dfd5cae3d3c4e0d2c1ded4c1ddd6c1dedbc5dfdfc7e0e4c9e1e9c9df +f3cce0ebaec5ce899eb46c7ea55769a14a599f414c972f3b8d212784191c852128944248 +bd8188e0b6bbe2c7cbdfd4d7d8dee0d0dad8dbdfd6e1e3d6e5e5d8e7e8dceae9e0ebe9e2 +eaebe3edebe7edeceaefededefeceeebe9ede9e5ebe3e1e9e1dce7dcd8e5dcd6e4d9d4e5 +d4cee0d0c9ddd0c8ddd0c8decfc7ddcec6decec5ddcdc4ddccc3decdc3dfcec4e0cfc4e0 +cec3e0cec3e0cfc4e1cfc4e1d0c5e1d0c5e1cec3e0cdc2dfcec3e0d0c5e0d0c5e1d0c2df +cfbfddcebeddcebeddcdbeddcfbfddd0c2dfcfc1dfc9bddccac2e0d7d3e6d5d6cbbbc393 +a5b856acca3cbfd744cadc43c8db46bed748a8c93983a53d5c7d374b6930546f31576e31 +52662d50642c51652c596d2f768347a8ab9fd2d0e0cec6e1cec3dfcec2dfcfc3e0d0c3e0 +d1c3e0d0c2dfd0c0ddd0c0ddd1c3e0cec0decec0ded0c6e2cec5e1cdc8e2c9cac5a5af73 +94aa3ca1c839abd038abd037aacf38a6c33ba8b86fc3c9b6ccc9dfc9beddcfc1dfd1c2df +d1c2dfd1c3e0d1c4e0d1c6e1d0c7e1cec4e0cec3e0cfc4e1d0c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d0c4e0d0c5e1cec5e1cec5e1ccc2dfd1bfdd +d6bfdcd4bcdbcfbddbd0c3e0cfc6e2d2c9e0eaccd6c47a7a9e2020be2624c82625c22425 +c62625cf2826cc2626c32725de8e97f2cbd8e0cde3d1c6e1d0bfddd4bedcdbc6e0d2c5e0 +ccc7e3c6c9e5c7c8e4ccc5e2cfc3e0d2c3dfd4c3dfd3c3dfd2c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3e0cec3e0cfc4e1c7c0dbc1bad0bdb6c8bfbac8cac4ced6d3d7e0dcdc +d9d8d3d0cecac9c8c5c2c1c1b8b6bba8a5b2a29db1aeaac5c9c2e0d0c9e3cac1dfccc0de +cfc2dfd1c4e0d3c5e1cfc4e1cbc2dfcdc6e2a7a3bbaeadbbc1c1c6cfd0cdd6d8d1d8dbd3 +d3d5d0bfbcc6a8a4b8c9c1ded0c6e2cec3dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc2dfcabddccdbfded1c4e0 +d3c5e1d3c6e1d3c6e1d3c6e1d3c8e2d0c6e2c4c0dfc7c7e3cdcbe6cac9e4c4c3e1c0bdde +c0bbdcc9c2dfd0c7e2c8bdddcbbddccec0ded0c0ded1c1ded1c0decfbedccebcdbd1b8d8 +dbb8d6e4bcd7edc4dbf3cee1f7d2e2f4c7d9dfaabcbe8293a05c6b8b4252813a49813f4f +996675b5939fbca8b3bfb7bfc6c7d0c4caceced0cdd3d4ccd8d8cedbdbd3dedfd6e0e1da +e1e2dbe2e2dee4e5e2e9e7e5e8e9eae9eaebe9eaebeae9ecebe9ece9e9ece9e8ede9e7ed +e0dbe5dbd4e1dad2e0d8d0e0d6cedfd3ccdfd0c9ddcfc7dccdc6dcccc4ddcbc3dcccc2dc +ccc3dfcdc3e0cfc4e0cfc4e1d0c5e1d0c5e1cec4e0cdc3e0cdc4e0cfc6dfd0c5e0d0c2df +cfbfddcfbfddcebeddcebeddd0bfddcfbfddd2c3dfcec0dec7bcdcc8c0d8c8c5bebcc191 +acbe58adcc38c3d83cd3df43c6da3bbcd640a2c33981a23d607d374c672f5b6f3054652c +51602f5a69315c6b2e5c6b2e717c45a5a898d6d4deccc7e1cdc3e0cec2dfcfc3e0cfc4e0 +d1c3e0d0c2dfcfc0decfbfddd1c3dfcebfddcdbfded0c5e1cec5e1cdc8e2c9c9c3a4af6f +93ab3ba4ca39acd039add038abd037a8c341aab976c5cabbcec8e1c9beddcfc1dfd1c2df +d1c2dfd1c3dfd1c4e0d1c5e0d0c6e2cec4e0cec3e0cfc4e1d0c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d2c2dfd1c0ddd2bfdcd7c1dddac3de +d7bfdcd1bad9ceb9d9cebddccec7e3cfd0e5d8cbd3e4b2b1ad4037c02624cb2726cb2825 +c42625bf2424c52625b72323f2a9b0f4d1e1d2c4e0ccc8e4d0c5e1d0bddcd7bfdcd8c3de +d4c4e0cfc5e1cdc6e2cdc5e1cdc5e1cdc6e2cec7e2cfc6e1d0c5e1d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cec3e0 +cec3e0cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3e0cec3e0cec3e0cec6e1bcb6ccb7b1c2beb7c4cbc5cfd9d4daddd9dbd7d3d0 +d0cecad3d1cdcac8c6bab8baaba8b1a9a6b6b9b6cccac4e0cfc6e2cec5e1d2c7e2d1c5e1 +d2c4e0d5c7e2d3c5e1cabfddcdc3e0d7d1e8b0abc3a9a8b7bdbec2cfd0ced7d9d2d9dbd3 +d3d5d0bfbcc6a8a4b8cac1ded1c6e2cec3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc2dfccbfddcfc2dfd1c4e0 +cfc3e0ccbfddcabddcccbfddcfc2dfd0c5e1cfc5e1cac2e0c9c2dfcac2e0cbc3e0cbc2e0 +ccc2dfccc2dfcec3dfccc0decdc0decec3dfcfc3e0cfc2dfcfc2dfcfc1dfd2c3dfd4c5e0 +d7c2dedac3dedbc3dedac2ddd9c1dcdcc1dae1c4dbeccbdef4d1e1f2ccdddcb4c9bf98ac +b18da1ac92a5a190a2958b9c9d9eaea9adb7b5b8bbbbbcbdc3c3c3cbcac9cfcfced5d4d3 +d8d8d6dddedcdfe0dfe0e1dfe1e2dfe3e3e2e8e8e5e8e9e7eaeae9ebebe9ebebe9ebebec +ece9edeee8edece5ebe7e1eae4dee9e0d8e6dcd3e1d9d2e1d7cfe0cec7dac8c1d5c9c1d7 +cac2dbcbc3ddcdc4decec5e0cfc6e1cfc6e1cfc6e1cec6e1cec6e1cfc7decfc6dfcfc3e0 +cfc0ded0c0ddd0bfddcfbfddcebeddcfbfddd0c0decdbfdecec3dfd4cce3cecabfb0b780 +a1b445b6d33fccdc44dce24fbfd73ab8d442a9c34098b047889d4a7284475c6a42667159 +626a5d5c6350606a46737a5190967ab3b4b0cfcdddccc6e1cdc3e0cec3dfcec3dfd0c4e0 +d0c5e0d0c2dfcfc0decfbfddd1c2dfcebfddcbbfddd0c5e1cfc5e1cec8e1c8c9bea4b068 +93ad3ba9cf38b0d23bb0d237aed039aac649afbc81cacdc3d0cbe4ccc0decfc3e0d1c3df +d1c2dfd1c3dfd1c4e0d1c5e1d0c6e2cec4e0cec3e0cfc4e1d0c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d2c4e0d4c4e0d8c3ded8bedbd9bad9d2b6d7 +cfb6d7d4c0ddd9c6e0d4c3dfcbc3e0cac9ded9ccd5f6cac9d47371b52623cf2826cc2726 +bf2424c12424be2424aa2021b04d59d7a8c1d7c7e1cdcae5cfc9e4d5c7e2d2bedcdac2dd +d9c1ddd3c2dfcfc3e0ccc3e0cac6e2c8c8e4c9c9e5cac8e3d0c6e2d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0d1c4e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cec3e0 +cdc4e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0d0c6e2ccc3e0c8bfdec9c0de +ccc3e0d0c7e3cfc6e1c3bbd8b9b2ccb7b1c3bfbdcacdcbd5d8d5dbdbd8dcd7d5d6d2d0d0 +cac8c5c5c2c0aca9aca9a6aeb6b3bfc4bdd2ccc5dfd0c6e1cdc3e0ccc1deccc0decfc2df +cfc3e0d0c3e0d0c4e0cfc4e0cec4e0d0cbe5a8a5bdacabbac0c0c6cfd0cdd3d6cfd6d8d1 +d2d4d0c1bfcaaea9bdccc4e0d0c6e2cdc2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcfc3e0cfc3e0d1c2dfd2c1ded2c1ded2c1ded2c1ded1c1de +d1c1ded1c1ded0c2dfd0c2dfd0c2dfd0c2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc1decec0decec2dfcec3dfcdc3e0cec3e0d1c3e0d3c4dfd6c3ded9c4deddc6dee1c9e1 +e0cbe2d9c7dfcdbfd7bab2caa7a4bb9a9aaf9695a79896a79e9daca6a4b4b0afbbb8b7c2 +c0bfc8c5c4cac8c8cccfced3d6d5d6dbdcdcdfe0e0e2e3dfe3e3dfe3e4dee6e6e2e9e9e3 +eae7e6eae7e9ece8eaeeeaebece8eceae6ebe7e3e9e8e3eae9e4ece3dee9ddd6e5dbd6e6 +d8d2e3d0cadec4bed1beb8ccc0bacfc5bed5c9c3d8cbc6dccdc8ddd0cbddd2cbe0d3c8e2 +d0c3e0d0c2dfd0c2dfd1c3e0d0c2dfc8bbdbdbcde5cbbddccdc2dfd3cedfc0bfa9b0b873 +b5c75ac2d956d3e062d1df57bbd647aec84eafc16eb8c791cbd3b6d8ded5d6d8e3cdcde4 +c7c3e0c5c2dcc8c7d8ccccd7ceccddcecae3cbc6e1cbc4e1cdc3e0cec3dfcec3e0d0c4e0 +d0c5e0cfc4e0cfc0decfbfddccbedcd2c5e1cbbfddc9beddd0c7e3d3cee3c2c5b4a8b465 +9bb63baacf38b5d33bb1d238a6cb38a4c048b2c08cc5c8c5cbc6e1cbbfddcfc2dfd0c2df +cfc0decfc0decfc2dfcfc3e0cdc4e0ccc2dfccc1dfcec3dfcfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfcfbddcd3bedbe1c6dfe1c2dcd8bbd9 +d3c0ddcbbddcc7b9dacfc1ded4c4dfd7c3d8f0cdd7e4a4ab9a2123bf2625cc2626c42425 +bc2324c12424c82725ba24239d222ec37b99dabcd9d3cae4cbc9e4cccae5d0c5e0d8c0dc +dbbddad7bcdad1bfddccc1dfc7c5e2c4c6e3c5c8e4c7c7e2cbc4e1cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cec3e0cec3e0 +cdc4e0cdc4e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cbc2dfcbc2e0ccc3e0ccc4e1 +cdc4e0cac2dec6bed9c0b9d2bcb6cac6c2d0cfcdd5d6d4dad8d5dbd5d3d7d6d4d5d6d4d3 +c5c3c4b0afb2aca9b1b1afbbbdb9cac9c1d9cfc6e1d0c6e2cdc3e0ccc1deccc0decfc2df +cfc3e0d0c3e0d0c4e0cfc4e0cec4e0d0cbe5a8a5bdadabbac0c0c6cfd0cdd3d6cfd5d7d0 +d2d4d0c1bfcaaeaabdccc4e0d0c6e2cdc2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcfc3e0cfc3e0d2c2dfd3c1ded4c1ded2c1ded2c1ded2c1de +d2c2dfd1c2dfd0c2dfd0c2dfcfc3e0cfc3e0cfc3e0cec3dfcec3dfcec3dfcec3dfccc3e0 +cac1dfc9c2dfc9c2e0c7c3e1c7c4e2c7c5e2c8c5e2cac5e1cdc4e0d0c2dfd3c3dfd5c5e0 +d6c5e0d5c6e0d2c6e1cbc3dfc5bfddc0bed9c3bfdabdb8d3b3afc9a7a2bd9f9bb39d98af +9f9bafa8a4b6afadb9b7b6bfbcbcc2c1c0c5c8c6c8cdcccbd1d1cfd7d8d3dfe0dbe2e2de +e3e2dee6e2e1ece8e8efebebf0ecedeeeaecede9ecece8ecede8edebe6eceae5ece9e4ed +e7e1ece2ddeadcd6e3d6d0dfd4ceddd3cfddd0cbdbcbc7d6cbc7d4ccc7d4cac5d4cac2da +cbc0dccfc1ded1c3e0d4c6e0d3c7e1cdc0decfc1dfc3b6d9cdc3e0cecbcfb9bd95b0bb66 +b9ce57c3da5bd9e36ecdde59bcd750aec362bbca91c9d1b4cbd1c8cfd0dcd0cee7cdc6e2 +cac3e0c9c2e0cac5e1ccc7e2ccc7e2ccc6e2cbc4e1cbc3e0ccc2dfcec3dfcec3e0d0c5e0 +d0c5dfd0c4e0cfc1dfcfc1decbbddcd2c5e1cbc0dec9c0decfc8e3cfcdddbec2aaa6b45b +9eb93aabd038b5d43bb2d238a6cb38a7c04fb4c194c7c9cbccc6e1cbbfddcfc2dfd0c2df +cfc0decfbfddcfc2dfcfc3e0cdc3e0ccc2dfccc2dfcec3dfcfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d1c3dfd5c5e0dcc6e0d9bad8ceb1d4 +cfbfddd3cae4d2cbe5d2c7e1e0c9dfeec5d7d593a6a23e51a82735ad2122bb2224c32525 +c72825c72725c52725c12724ae2430a84064d6a1c7d8c5e0c8c5e2bfc5e1c9c8e2d4c3df +d9bedbd7bcdad3bedccdc2dfc8c4e1c6c6e3c8c6e3cac5e1cdc4e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cec3e0cec3e0 +cdc4e0cdc4e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0c9c0decbc2e0d0c7e2d0c7e2 +cbc3ddc2bbd2beb6ccbeb9cdc3bfcdcfccd6d5d3d9d7d5dad5d3d8d1d0d4cccbcec5c4c7 +b3b1b8a5a0acb4afbdbebbccc6c0d7cdc6dfd0c7e1d0c5e1cdc2dfccc0decdc2dfcfc3e0 +cfc3e0d0c3e0d0c4e0cfc4e0cec4e0d0cbe5a8a5bdadabbac0c0c6cfd0cdd3d6cfd5d7d0 +d2d4d0c1bfcaaeaabdccc4e0d0c6e2cdc2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcfc3e0cfc4e0d2c3dfd3c3dfd3c3dfd3c3dfd2c3dfd2c3df +d1c3e0d0c4e0cfc4e0cec4e0cdc4e0ccc4e1ccc4e1cbc4e1cbc4e1cbc5e2cbc4e1cac3e1 +c9c2e0c8c2e0c6c3e1c5c4e1c4c4e2c3c5e3c4c6e3c5c5e2c9c5e2cbc3e0cec3dfcfc2df +cfc1ded0c2dfd0c4e0d0c7e2d0cae4d0cbe5cec7e2ccc5e2cac3e0c9c1dfc4bcdbbdb6d5 +b5b0ccaea8c0a8a5baa19cafa19baca5a2aeada9b3b4b3b7bebbbdc4c3c5ccc9c8cfcccb +d7d3d3dbd8d8dcd9dbdfdbdce1dddfe1dee2e6e2e5eae7eaeee8ebeee8ecece7ecebe6ec +ebe6edece7eeeae6ede8e4ebe5e0e8e3dde6dcd8e1d9d5ded7d3dbd5d0dacfcad6ccc5da +cbc3dacdc3dbcfc5dcd0c5dacec4dacec4dfcabfdec9c0dfd2cee4c9cabfb1bb7eabbd50 +b8d14ac9dc5ae2e775cadc50b6d146a2b459b7c294c8cebccbcccbcbcad9cac4e0cbc4e1 +cdc4e1ccc4e1cbc4e1c9c3e0cac3e0cac3e1cac3e1cbc3e0ccc3e0cdc3e0cdc3e0cfc6e1 +d0c7dfd0c5e0cfc2dfcfc1decbbddcd1c5e1ccc3e0c9c2dfcec9e3cbcad5b9be9da3b54f +a1be3aaed137b5d43bb1d238a7cb38a9c05ab8c39dc8cad2cdc5e1ccc0decfc3e0d0c2df +cfc0decfbfddcfc2dfcfc3e0cdc3e0cdc3e0cdc3e0cec3dfcfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc4e0d0c7e2d0cae4d0c5e1d1bddbd1bcdb +c9c0dfcac7e2cccce4d5cadde6c1d1e69eb2b34764a5213da41f2ca9222bb82b2eba2624 +bd2424c42425c22425c72725b42123a62342bd6d92d8b3d3d0c8e2bcc6ddc4cde4cec7e2 +d4c1ded5bedcd2bfdccec2dfcac3e1cac3e1cec3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cec3e0cdc3e0 +cdc4e0cdc4e0cdc4e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0c9c0dfcdc4e0cfc6e1cbc4de +c5bed5bdb7cabdb6c5c3bfcdccc7d1d2d0d7d2d2d6d3d3d8d3d3d8cecdd2bebec5adabb3 +a6a2b2aba6b7bfb8cdcac3dbcdc6e0d0c7e1d0c7e2cfc4e1cdc2dfcdc2dfcfc3e0cfc3e0 +d0c2dfd0c3e0d0c4e0cfc4e0cec4e0d0cbe5a8a5bdadabbac0c0c6cfd0cdd3d6cfd5d7d0 +d2d4d0c1bfcaaeaabdccc4e0d0c6e2cdc2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcfc4e0d0c5e1d1c4e0d0c5e0d0c5e0d0c5e0d0c5e1 +cfc6e1cfc6e1cdc6e1ccc7e2cbc6e2cbc6e2cbc6e1cac5e1cac5e1cac6e2cac5e1cac5e1 +c9c3e0c8c2e0c6c3e1c5c4e1c3c5e2c2c6e3c2c6e3c5c5e2c7c4e2cbc5e2ccc3e0cfc3e0 +cfc2dfcfc2dfcfc3e0cdc4e0cdc6e2cdc6e2c9c2dfcbc2e0d0c6e2d3c9e3d3cae4d2c9e3 +cbc4e0c3bcd9beb8d3bcb5cdb7b0c5ada7baa4a0b0a29daaa49ea9aca7afb3afb4b7b3b9 +beb9bdc3bfc3cac4cad0cbcfd7d3d8ddd7dddfdbe1e3dee4e4e0e4e8e3e8eae6ebe9e4e9 +e8e4e8ebe6ebede9eceee9edede8ecebe6ebe8e5e9e6e4e8e7e4e7e6e2e6e0dbe3d9d2e4 +d5cee0d1cadbd1c9d8cfc8d2cdc5d0cdc7dacdc6e2d1cce5cacad2b5bc9fa9b864abc23e +b8d344cfde60e2e772c4da48adc83ea0b063bbc0a3cbcdc7cdcbd1ccc7dbcac3e0ccc3e0 +cfc5e1cfc5e1cdc4e0cac2e0c9c2e0cac3e0cac3e1cbc3e0cbc3e0cdc3e0cdc4e0cfc6df +cfc7ded0c6e1cfc3e0cfc1decabddcd0c5e1cdc3e0cac3e1cdc8e2c7c8cbb1ba8fa0b445 +a6c439b1d239b5d43bb1d239a8cb3aabc162bac4a5cbcbd8cec6e2cdc2dfcfc3e0d0c2df +d0c0decfc0decfc2dfcfc3e0cdc3e0cdc3e0cdc3e0cec3dfcfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cdc3e0cbc7e2c8c8e2c6c6e1d1c6e1d3c7e2 +c9c3e0ccc8e0d0cbdbd5c1ccd19ba8c15c74ac2444ad223ea9213cb64158d57383cb5058 +bf2624c62625c52625c72725be2324b72439a53756cb8da9d8c1d7cacde0c5cee4cac8e3 +cdc4e0d1c1ded0c0ddcec2dfccc2dfcfc2dfd2c0ddd2c0ddd0c0decfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cec3e0cdc4e0 +ccc4e1ccc4e1ccc4e1ccc4e1ccc3e0ccc3e0ccc3e0ccc3e0d0c7e2cdc6e1c8c1dcc2bdd3 +beb9ccbeb9c6c2bec8cdc8cfd2d0d6d4d3d4d2d2d2d1d1d3ceced2c3c4cab0afb99f9cad +a9a4babcb8d0cbc3ddcfc6e1d0c6e1d0c6e2d0c5e1cec3dfcdc2dfcfc4e0d0c4e0d0c3e0 +d0c2dfd0c3e0d0c4e0cfc4e0cec4e0d0cbe5a8a5bdadabbac0c0c6cfd0cdd3d6cfd5d7d0 +d2d4d0c1bfcaaeaabdccc4e0d0c6e2cdc2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3e0cec4e0d0c5e1cfc4e1cec6e1cec6e1cdc6e1cdc6e1 +cdc6e1cdc6e1cbc6e2cbc6e2cbc6e2cbc6e2cac7e2cac5e1cac5e1cac6e2cac5e1cac5e1 +cbc3e0cac3e0c8c3e1c7c4e2c5c5e2c4c6e3c4c6e3c5c5e2c7c4e2ccc5e1cdc4e0cfc3e0 +d1c3e0d0c3e0cfc4e0ccc3e0c9c2e0c8c1dfcac1dfcbc0deccc1deccc2dfcdc2dfcec3e0 +d0c5e1d1c6e2d1c7e1d2c9e3cec6e0c5bdd7bdb5ccb7afc4b2abbdafa8b9aba4b4a8a1b2 +a8a2b1aca7b4b1adbab9b5c1c2bdc7c9c4cecec9d3d0ccd6d1ced7dad5dde1dde2e1dee3 +e4e0e3e6e2e4e8e5e8eae8eaebe8e9ebe9eaeae8e9e9e9e9ece9ebeeeaedede7ede7e1ee +e3dceadfd8e1ddd7dcd9d5d6d7d3d2d1ced6d4d0e6cfcee1a7ada8919e6d9db348aecc3a +bdd743d7e269d7e269bcd746aac043b2bd87c8cac2d1d0dcd0cbdfccc5dfcdc4e0cec3e0 +cfc4e0cfc4e1cec3e0ccc2dfcbc3e0cac3e0cac3e0cbc3e0cbc3e0cdc3e0cdc4e0cfc6df +cfc7ddd0c6e0cfc3e0cfc1dec9beddd0c5e1cdc4e0ccc6e1cdc9dfc3c5c3adb5839eb33e +a9c938b4d338b6d43bb0d23aa8ca3aabc16abdc6afcbccdecec6e2cdc2dfcfc3e0d0c2df +d0c2dfcfc0decfc2dfcfc3e0cdc4e0cdc3e0cdc3e0cec3dfcfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cdc3e0c9c6e2c4c6e1c5c8e3cccbe5cac8e4 +cbc4e0dbcee4dbc6d2cca3a8b46370a7283fb42441ac1f41ab2752d37b99f1afc5e7899b +cc4554bc2324c52625c12424ce2726c2262ba4202eb75b70d5a5b7ddccdececbe0cac7e3 +cac6e2ccc4e1cec3dfcdc2dfcfc3e0d1c1ded3bfdcd3bfdcd1c1decfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cec3e0cdc4e0 +ccc5e1cbc4e1cbc4e1cbc4e1cbc4e1cbc4e1cbc4e1cbc4e1d2cbe5cac4e0c0bbd4b9b6c9 +bbb7c5c3c0c9cdcacfd5d3d3d7d6d5d5d6d3d4d5d3cececfc0c0c6afafb9a3a0b2a6a3ba +bcb6d2cbc4e0cfc6e1cfc5e1cfc4e1cfc4e1cec3e0cdc2dfcdc2dfd0c4e0d2c5e0d0c3e0 +d0c2dfd0c3e0d0c4e0cfc4e0cec4e0d0cbe5a8a5bdadabbac0c0c6cfd0cdd3d6cfd5d7d0 +d2d4d0c1bfcaaeaabdccc4e0d0c6e2cdc2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cec3dfcdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0 +cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc4e0ccc4e1ccc5e1ccc5e1ccc5e1ccc5e1ccc5e1 +ccc5e1ccc5e1ccc5e1ccc5e1ccc5e1ccc5e1ccc5e1ccc5e1ccc5e1ccc5e1ccc5e1ccc4e1 +cec3dfcec3dfccc3e0cac5e1c8c5e2c7c5e2c6c5e2c7c5e2c9c4e1ccc3e0cec3dfd0c2df +d1c3dfd1c3e0d0c4e0cec4e0ccc5e2cac3e1cfc5e1cec3e0cdc0decbbfddc9beddc9bedd +cbc0decfc4e0d1c6e1cec3e0cfc4e0d1c7e1d5cae3d7cde6d4cbe4cbc3dcbeb4d0b3aac4 +afa7bfaca5bca7a2b8a59fb5a5a0b4a8a5b7b0acbbb6b3c1bbb8c4c2c0cacbc8cfcfccd2 +d5d3d7dad8dbdcdcdfe0dfdfe2e2e1e5e4e3e5e4e3e5e4e4e9e8eaede9edefeaf0eee8f1 +ede7efece7ebece9e7eaeae1e6e6dcd9dad8e0e0edc1c6ce7b86736c803995b13bb3d239 +c4d943dbe46dcadc5db8d244a9bb4ec2c8a7c9c8d5ccc6e1d0c7e1cec3e0d2c5e1cfc3e0 +cfc2dfcfc3e0cec3dfcfc3e0cec5e1ccc3e0cac2e0cac3e0cbc2e0ccc3e0cdc4e0cfc6df +cfc7dcd0c6dfcfc3e0cfc2dfcbbfddcec4e0ccc3e0ccc7e2cccbddc2c2bca9b47a9eb53a +aece37b6d439b6d43baed13aa7ca3dadc271c0c7b5cdcce1cec5e1cdc2dfcfc4e0d0c2df +d0c2dfcfc0decfc2dfcfc3e0cdc4e0cdc4e0cdc4e0cec3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc4e0ccc4e1cac6e2c6c8e4c3cae6c3c6e3 +d0c7e1e1c8dcd6a9b6b76d749f2e38a61e2bb1233fa8224eb84d7eeaaecef2c0d7f3b0c8 +d16e85ad2531bc2224c02424d42b26bd2224b32423aa2e37c97a88eabdcfdbc4dbcfc4e0 +c8c6e3c8c6e3c9c5e2cbc4e1cfc3e0d1c0ded2bfdcd3c0ddd1c1decfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cec3e0cdc4e0 +ccc5e1cbc4e1cbc4e1cbc4e1cbc4e1cbc4e1cbc4e1ccc5e1cec7e2c5c0dabeb8cdbab6c6 +c0bdc7ccc9ced7d5d3d9d8d3d6d7d1d4d5d0d1d2cfc4c5c7aeadb49d9ba8a19eb3bbb7d2 +cdc6e1cbc4e1ccc3e0cdc2dfcdc2dfcdc2dfcdc2dfcec3dfcec3e0d1c6e1d1c4e0d0c3e0 +d0c2dfd0c3e0d0c4e0cfc4e0cec4e0d0cbe5a8a5bdadabbac0c0c6cfd0cdd3d6cfd5d7d0 +d2d4d0c1bfcaaeaabdccc4e0d0c6e2cdc2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cec3df +cec3dfcdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0 +cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cbc4e1cbc4e1cbc4e1cbc4e1ccc4e1ccc4e1 +ccc3e0cec3e0cec4e0cec3e0cec3e0cec3e0cec3e0cec3e0cec3e0cfc3e0cfc3e0d0c2df +d2c2dfd2c2dfcfc3e0cdc3e0cbc4e1cac5e1cac5e2cbc5e2ccc3e0cfc4e0d0c2dfd0c0dd +d0bfddcfbfddcec0decdc3e0cdc6e2cec7e2cbc2e0cec3dfd2c5e1d4c7e2d5cae3d5c9e3 +d2c6e1cfc2dfcbc0decdc0decdc2dfcdc1decec1dfcec3dfd3c5e1d4c9e3d7cbe4d7cce5 +cec5e1c2bbd9bab3d0b0aac8a8a4bfa4a0b9a5a0b6a5a1b6a6a3b6a7a4b5aca8b5b2b0b9 +bcb9c0c4c2c7cbcaccd0cecfd5d3d2d8d7d6dddbdbe1e0dfe3e0e2e6e2e8e8e2ebe9e2ed +ebe6eeefececf0efe7eef1e3ecf0e0e5e8e0edf2f7b4bcbd64745464803794b63db6d439 +c7da3dd9e36ac4da56b8d246a3b54db9bea4b2adc4b5acd1cabfded4c7e2cfc3e0cfc1de +cfc2dfcfc3e0cec3dfcfc3e0cec4e0ccc3e0cac3e0cac3e0cac3e0cbc3e0ccc4e1cfc6df +cfc7dcd0c7dfcfc4e0cec2dfccc0decdc4e0cbc2e0ccc7e1cccbddc1c3b9a7b3749fb63a +b2d135b8d439b5d43badd039a7c93eadc375c1c8bbcdcce3cdc4e1ccc0decfc4e0d0c2df +d0c2dfcfc0decfc2dfcfc3e0cdc4e0cdc4e0cdc4e0cec3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d4c6e1d4c6e1c5c0dfbec6e4ced0e9 +d6c6e1cb9fb6b86779a42f3aa21e22ac202ca42037b64c78e7a3c8e6bad6e5c4dde3bad5 +ce90aab34d61aa1f21c32525c02424bc2324c22725b32423c44f5ce595abecbad5d6c0dd +cac6e2c5c7e3c4c6e3cac6e2cec3e0d1c1ded0c0ddd0c0ddcfc2dfcfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cec3e0cdc4e0 +ccc5e1cbc4e1cbc4e1cbc4e1cbc4e1cbc4e1cbc4e1ccc5e1c1bbd8beb9d2bfbacfc4c0cf +ccc9d1d6d4d4d9d8d3d6d6cdcfd0c6cacbc4bec1beb0b2b3a5a5aea5a4b3b5b2c9cac5e1 +d0c9e3c9c0dfcabfdecbc0decbc0decdc0decfc3e0d0c4e0d1c6e1d0c5e0d0c4dfd0c3e0 +d0c2dfd0c3e0d0c4e0cfc4e0cec4e0d0cae4a8a5bdadabbac0c0c6cfd0cdd3d6cfd5d7d0 +d2d4d0c1bfcaaeaabdccc4e0d0c6e2cdc2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cec3df +cec3dfcdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0 +cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc2dfcdc2dfcdc2dfcdc2dfcec2dfcfc2df +cfc2dfcfc0ded0c2dfd1c1ded1c1ded2c1ded2c1ded2c1ded2c1ded2c0ddd2c0ddd4c1dd +d6c1ded6c1ddd3c2ded2c3dfd0c5e1cec5e1cdc4e0cdc4e0cfc3e0d2c3dfd2c1ded2bfdd +cfbedccebedccdbfddcbc0dec9c3e0c9c4e1cbc1dfccc0deccbfddccbfddcdbfdecec0de +cfc3e0d2c4e0d4c5e1cfc1decfc1ded1c3e0d2c4e0d1c4e0d0c2dfccbeddc9bbdbc8bbdb +cdc2dfd1c8e3d4cce5d8d0e7dad2e9d5cee7c5bfdbb5b0caa6a2b9a49fb3a5a0b2a4a0af +a6a2ada9a6afb1afb4b8b7b9bebbbcc0bfc0cac7c9d4d0d3d6d2d7d9d4dddcd5e0ddd7e5 +e2dce6e7e3e0e8e8dbe6e9d6e4ead5e9efe0edf3f59eaba360764a75953c9cc33bb7d438 +c8db3ad6e15cc2d94cb4cf3ea6b94cb5b99fada9bfb1a9ccc8bfdbd6cbe3c4b9d2c8bed4 +cdc3d6cfc5dacfc4e0cdc2dfccc3e0cdc4e0ccc5e2cac3e0cac2e0cbc3e0cdc4e0cfc6df +cfc7dccfc6dfcec3e0cec3dfcdc2dfcdc3e0cac1dfcdc7e0cecddac1c4b6a7b471a1b939 +b7d437b9d538b6d43aacd039a6c83faec178c1c8bfcccbe4ccc4e1ccc0decfc3e0d1c3e0 +d0c2dfcfc0decfc2dfcfc3e0cdc4e0cec6e1cdc4e0cec3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d1c1ded9c4dfd9c1ddcdbbdbc3c5e2d8d7ec +d9c4dfbd7f9cb03b53b5222bba242aaf2331a02c44ecafceebcce1e6cbe1e2cce3d8cce4 +dac8dfd198aba92837bf2625a81f21c22725c42625c62625ca313dd55c7bea9bc1e0bad8 +cdc3e0c3c7e4c1c8e5c6c7e3cbc5e2ccc3e0ccc3e0ccc2dfcec3dfcfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd1c1ded1c0ddd1c1ded0c2dfcfc3e0cfc3e0cec3df +cdc3e0cdc4e0cdc4e0cdc4e0cec3e0cfc3e0d0c2dfd0c2dfd0c2dfd1c1ded0c2dfcdc3e0 +cbc4e1ccc3e0cdc4e0cec4e0d0c3e0d3c3dfd5c3ded6c1dcc0a7c2c5adc2d0bac9dac6d1 +e0d2d5dfd7d4d8d8ceccd2c6c4cbc2bdc1c1aaacb1a2a0acb0adbccac6ddd8d1e8cfc7e2 +c7bfded0c6e2ccc2dfcbc0deccc1decec2dfcfc4e0d2c5e1d0c4e0d0c4dfcec3dfd0c3e0 +cfc4e0d0c3e0d0c4e0cfc4e0cec4e0d1cae4a8a5bdadabbac1c1c6cfd0cdd3d6cfd6d8d1 +d3d3d0c0c0caaeaabdcac4e0d0c7e2ccc2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cec3df +cec3dfcdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0 +cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cec3dfcdc2dfcfc2dfcfc1decfc2dfcfc2dfcfc2df +cfc0ded0c0ddd0c0ddd1c0ddd1c0ddd1c0ddd2c0ddd2c0ddd2c0ddd2c0ddd4c0ddd4c1dd +d6c1ded6c1ddd4c3ded3c3dfd1c3e0d0c4e0cec3e0cfc4e0cfc3e0cebeddcfbedcd2c1de +d3c3dfd4c5e1d3c5e1d2c6e1cec6e2cdc6e2cdc3e0cfc3e0d0c3e0d0c3e0d0c3e0d0c2df +cec2dfcdbfddcabddccabcdcccbedccfc1ded0c2dfcfc1dfcfc0decdbfded0c2dfd2c5e1 +d0c5e1ccc3e0c9c0dfc8beddc9c0dfcdc4e0d0c9e3d1c9e3d0cae4d1cae3cac4dbbbb6c9 +aba5b79e9aab9f98a8a19daca6a1aea8a2afaba5b1b1acb8b9b4bfc3becdcdc7d8d3ccde +d8d2dedbd7d8dcdad3dadbcedce0cfe7eee1dae2e36f7d6d506c3181a33ea2ca39bdd639 +d1de41cedd46b9d43da8bf38bac972dae1cae8e6f2e0daedd6cfe3cdc4d6bbadbec5b7c5 +cec5cacec9d5ccc7ddcac3deccc0dbd2c2d8d7c1dadac0dbd9c0dcd8c0dcd6c1ddd4c3dc +d3c4dbd2c4dfd0c2dfcfc2dfd0c3e0cfc2dfcabfddcdc7ded0ced3c2c6aca9b766a0bd3a +b8d437b9d538b5d339aacf38a5c642acc17fc1c9c3cccae4ccc3e0ccbfddcfc3e0d0c3e0 +d0c2dfd0c2dfcfc4e0cec5e1ccc7e2cbc6e2cbc5e1cbc4e1ccc3e0cdc3e0cdc3e0cdc3e0 +cec3dfcec3dfcec3dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfd0c2df +cfc2dfcfc3e0cdc3e0cdc3e0cdc3e0cdc3e0cec3dfcdc3e0cec3dfcec3dfcec3e0cec3e0 +cec3e0cec3e0cec3e0cec3e0cec3e0cec3e0cfc3e0cebcdbd1bad9d6c6e1cbc6e2c5bfde +d9bfdbdea4c4d46f8ec54562b83451ba546dd795afe3c2dcdac9e3c7b0d4cfbedcc2c3e1 +c6c8dfd4b2c5c35e72a71e21b62523c72c25c52725c62625c6252ac22f53c9628ee5b7d4 +d1c1dec2c8e5bdcae6c2c8e5c8c5e2cac3e1ccc3e0ccc2dfcec3dfcfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcfc2dfd1c1ded3bedcd4bedcd3c0ddd1c1decfc2dfccc3e0cbc5e2 +c9c6e3c9c7e3c9c7e3cac7e2cbc5e1cdc3e0cfc3e0d1c1ded2c0ddd3bfdcd2bfddcfc4e0 +cabfddcdc2dfd3c6e1d6c6e1d9c4dfe1c4dcdfb5cec08aa0cf93a5e1a5b4f1c1c9f6ced1 +edcbc9d7c8c1cacbbecfe1d0acbdb49ea4ada3a0b8b2acc8c0b9d7cdc4e0d1c7e2d0c6e2 +ccc3e0cdc2dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3e0cec3e0cec3e0cec3e0d0c5e1 +d0c5e1cfc4e1cfc4e0cdc2dfccc3e0d3cae4aca7bfb1adbdc3c1c6d0cfccd5d6cfd8d8d1 +d3d3d0bfbfc9aca8bbc9c4e1cfc7e2cbc2e0cec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd0c2dfd0c2dfd0c2dfd1c2dfd1c3df +d1c3dfd2c3dfd1c3dfd0c2dfcfc4e0cec3e0cec3e0cec3e0cec3dfcfc2dfcfc2dfcfc3e0 +d0c2dfd0c2dfcfc3e0cec3dfcdc3e0cdc4e0cec3e0cec3e0cfc3e0cfc3e0cfc4e0cfc3e0 +cec3e0cfc3e0cec2dfcfc2dfcec2dfcfc3e0cfc3e0cfc3e0cfc3e0cec3dfcfc3e0cfc3e0 +cec3dfcdc2dfcdc2dfcdc2dfccc3e0cec3e0cdc4e0cec4e0cec4e0cdc4e0cec4e0d0c7e1 +d3cae3d1c9e3ccc3dfc1b9d6b6afcbada5c0a29ab49b94aba098afa59db7ada2beb4aabf +bbb3c3c3bbc7c9c2c8cdc9c7d7d5cee3e6e1babfc74f5e4466843890b43dabd03bbfd743 +cbdc3dc2d836b3d236a4b84bd9e4b1e8eee1e9ecf2e7e8f1e7e4ebe8dee6e8d6e2e3d2de +d7d1d4dddfe4ced1dfc4becfd0bbcae4c1c8d9a7aecf9098d798a5e2adc2edbfd7ebcadf +e2c8e0d8c4dfd4c4e0d7c8e2d1c1ded0c0ddd1c3dfd1c8decac6bfb5bd8da7b954a9c938 +b8d438b6d438b5d338a7ce39a3c64bafc588c1c8c4c9c4e1cfc5e1cfc1dfd5c7e2d5c8e2 +d4c7e1d0c7deccc5dcc9c5dcc7c6dfc6c6e2c5c5e2c5c3e1c7c3e1c9c4e1c9c3e0c9c3e0 +cac2e0cbc3e0ccc2dfcdc2dfcec0decfc1decfc1decfbfddcfbfddcfbfddcfbfddd0bfdd +cfc1deccc3e0cac3e0c9c4e1cac5e1cac5e1cac3e1cac5e1cbc5e2cbc5e2cbc5e2cbc5e1 +cbc6e2cbc6e2cbc7e2cbc7e2cbc7e2ccc7e1cbc7e2c8c4e1c6c3e1cdc8e4d0c9e3d2c4e0 +d8bedbdfbbd7e8b9d5ebbbd6e9bdd8e3bed9dbbfdbd4bfdcd3c1ded3bfdcd0c0ddc9c4e1 +cbc8dfd8baced78ba1b74157a21d20ba2227ce272dcc262ac0222eb72848c05882eab7d4 +d2c1debfc9e6bacbe8bec9e6c4c6e3cbc3e0d0c0ddd1bfddd0c2dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcfc2dfd1c0ded4bfdcd5bedcd4bfdcd1c1decec3dfcac3e1c9c6e2 +c7c7e4c7c7e3c9c6e2cac5e1ccc4e1cec3e0d0c2dfd2c2dfd2c1ded2c0ddd1c1dec8bddc +d5c9e3d4c6e1d2bfddd9bfdbdfbcd6d09fb5b36e80a24a5ab25460c76e75e19499f5bbbc +f7cfcde7cec8c5c2b8b3c9bb97aeab9ea4b8ada7c9bbb1d6c7bcdccfc4e1d1c5e1cfc4e1 +cdc2dfccc1decdc2dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3e0cfc4e1 +cfc4e1cec3e0cfc4e0cdc2dfcdc3e0d4cbe4aea8c0b3adbdc5c1c6d0cfcdd7d5cfd8d8d1 +d3d3d0bfbfc9aca8bbc9c4e0cfc7e2cbc2e0cdc2dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcdc2dfcdc2dfd0c5e1 +d3c8e2d4c9e3d2c6e1cec3e0cabfdec5bcdbc3bcd9bfb8d2b4aec9a79ebf9c94b39e92ad +a497afaca0b5b1a8b7b3acb4b3afafb5b4b59395a03e4e2968873992b93daed13dc1d949 +cbdc43bfd736b1d236a7b45edadfc2e5eae2e4e9ece8e9edebeaebeee7eaf2e2e9f6e8ef +e0e1e0e0e5e4dbdfe4ded6e0e9c9d0e2a7aac46d69ad3f30b7473fc05e67ca788dcf8ba6 +d098b8d2a2c3d8b2d1e2c1dcdcbcd9dbbfdbdfc6dfe0cbdad2c7b5b7bc7fa7b946a6c838 +b5d337b8d437b4d338a6cd39a8c658b9ca95cacececcc5e1cfc1decabbdbcbbadacdbddc +d0c4ded1c9ded0ccdfcfcee3cacee5c8cae6c6cae5c8c6e3cac6e2cac5e1cbc5e2cac3e0 +ccc3e0ccc1dfcec0decfc0decfbfddd0c0ddd0c0ddcfbfddcfc0decfbfddcfc1decfc1de +cec0deccc3e0cbc3e0cbc3e0cbc3e0cbc3e0cbc3e0cbc3e0cbc4e1cbc4e1cbc4e1ccc5e2 +ccc5e1ccc6e1ccc6e1ccc7e2ccc7e1ccc7e1cac7e2c5c7e3c1c7e3c3c5e2cbc2e0d0c0dd +d7c0dddac3ded9c6e0d6c7e1d4c9e3d1c8e3cbc2e0cbbddccfbfddcfbedccdbfddcbc4e0 +d0c7e1ddc3dae4abc3c46a85a52c46a92133af212aae1f27b6273dc74d6eda83a4e9b9d5 +d5c2dec2c8e4bcc9e6bec9e6c3c5e3cbc2e0d1c0ddd3c0ddd0c2dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcfc3e0d1c1ded3bfdcd3bfdcd1c0ddcfc2dfccc4e1cac5e2c8c6e3 +c8c6e3cac6e2cdc4e0cfc4e0d0c2dfd1c2dfd1c2dfd0c2dfcfc3e0cdc3e0cbc3e0cbc0de +cfc1ded4c3dfddc3dddfb8d4cf97aeaf6475962f39992326a52c2cab3936bd5857d98d8e +f2bfbeedceccc0b8b79fb1af93a7afabafc8bab3d6c5badbccc1ded1c5e1cfc4e1cec3df +ccc1deccc1decdc2dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3e0cec3e0 +cec3e0cec3e0cfc4e0cdc2dfcdc3e0d4cbe4afa7c0b4adbdc5c1c8d0cfcdd7d5cfd8d8d1 +d3d3d0bfbfc9aca8bbc9c4e0cfc7e2cbc2e0cdc3e0cec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcfc4e0cfc4e0cec3df +cec3dfcec3dfcec3dfcfc4e1d1c5e1d1c6e2d2c9e4d0c9e2cac2ddc3b9d9beb5d5c0b3d0 +bcb0cab6aac4b0a5bbaca3b2a7a1a99b999e83858f4b5a3174943c98c03cb0d23ec0d849 +c6da40b7d437aacd38a8b269d8d8c6e3e3e2e1e2e8e2e3e8e7e5e6e9e5e5eee3e7f7f0f2 +e0e7e1dfe7e0e6e7e7f3e6ebf0c8cbd58081b6382fb82623bd2624bd2b2abd3844bb4458 +ba5066bb5d73c37183cd8596df9eb3dea5bae2b1c3e1bbbcd1bc9fbab771abb844aecb37 +bdd63ebfd73ab6d43da5c63aaabe60bec79dd2ced1d1c3dfd1c0ddcfbddbd1bfddd2bfdd +d1c3dfcec4ddc8c7dec4c7e0bfc7e3bfc7e4c0c7e4c9c6e2cdc6e2d0c5e1cfc4e1cfc3e0 +d1c2dfd2c0ddd3bfdcd3bfdcd3bfdcd3c0ddd2c0ddd1c1ded0c2dfcfc2dfcdc3e0ccc4e1 +ccc3e0cdc2dfcfc1decfbfddcfbfddcfc0decfc0decfc0decec2dfcfc2dfcfc2dfcfc2df +cfc3e0cfc4e0cec3e0cec3e0cec3e0cec4e0ccc4e1cac7e3c7c7e4c4c4e1c9c0dfcec0de +d2c2dfd3c4e0d1c3e0cbc2e0c8c3e0cac5e1c6c3e1c8c2e0cbc3e0cbc2dfc9bfdecbc1df +d1c3dfdbc5dfe4bcd4cc92aab4647daa4860a4364ba23147b44b65d27a95e8a8c7e3bad7 +d6c1ddcac5e2c4c6e3c4c6e3c6c4e2cac3e0cfc0ded1c2dfcfc3e0cec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcfc3e0d0c2dfd2c0ddd1c0ddcfc2dfccc3e0cac5e1c9c6e2c9c6e2 +cac5e2cdc3e0d1c2dfd2c0ddd3c0ddd2c0ddd1c2dfcec3dfcac5e1c7c7e3c7c6e3cfc6e1 +ccbadad8bfdce4bcd8d69bb6b36073982a339b2020aa2622af2923a72622a52e29ba5c5b +d7979ce0bbc2b5a7b29fa7b5a3afc3babbd9c7bfdeccc1decfc4e1d1c5e1cfc4e0cdc2df +ccc1deccc1decdc2dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3e0cec3e0 +cdc2dfcdc2dfcec3dfcdc2dfcdc3e0d4cbe5afa9c1b4adbdc5c1c6d0cfcdd7d5cfd8d8d1 +d3d3d0bfbfc9aca8bbc9c4e0cfc7e2cbc2e0cdc3e0cec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcfc4e0cfc4e0cec3df +cdc2dfccc1deccc1deccc1decec3dfcec4e0cfc6e1cec7e2cec7e2d1c6e1d5cae4d8cde5 +d6c9e2cec0dcc4b9d3beb6cab8b3bfa5a3ab999ba27180558aa83da2c939b3d33fbed745 +bdd740b3d338a5c839acb374d2cec3dcd5dbdbd6e1dcd8e1dedee0e1e0dfe3e0e1ebecea +dbe8dce2ede0eee9e4f8e2e3ebb1b4c85656bd2824d22b26d42a26cc2626c72625bf2627 +b62526b22829b63231bb4542c25358c15d66c56f77c7827ec18e70b79957b2ab40bcc33c +cddd4dcfde4fc2d849b2c046b7bb6ecbc6a8d8cbd4d3c0ddd2bedcd2bfdcd2bedcd2bfdd +d1c2dfcfc4e1cac5e1c7c6e2c3c5e3c1c4e2c2c3e1ccc4e1d1c3e0d2c3dfd2c3dfd2c2df +d3c1ded5c0ddd6bfdcd5c0ddd5c1ddd4c1ded3c2dfd2c3dfd1c3e0d0c5e1cdc6e1cbc6e2 +cdc4e0cfc2dfd1c0ddd1bfddd1bfddd2bfddd1bfddd0bfddd0bfddd0c0ddd0c0ddd0c0dd +cfc0decfc2dfcfc2dfcfc2dfcec2dfcec3dfcdc2dfccc3e0ccc4e1cac3e1cac3e0ccc4e1 +cfc4e0cfc2dfcfc0decfc0deccc2dfcac2e0c8c3e1c9c6e2c9c8e4c9c5e2c8c1dfcabfde +cfc0ded7c4dfe0c7e0d5b5cecca2b8c894a7c08597be7f92c98ca1dca8c0eabfd8ddbdd9 +d5c0dccfc2dfcac3e0c9c4e1c9c4e1cac3e0ccc3e0cec3e0cec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcfc3e0cfc2dfcfc3e0ccc3e0cac5e1c9c6e2c9c6e2cac5e1 +ccc3e0d1c2dfd3c0ddd4bedcd5bfdcd4c0ddd0c2dfcbc4e1c6c6e3c0c9e5c3c7e4d2c6e1 +d9c1dddeb6d5d497b6ba637ca02b379d1e1fb02222c22c25bf2b24b22623a52721a23837 +b56d76cba0b1a894abadadcab9beddc8c5e2cfc5e1d1c5e1d1c5e1cfc4e1cec3dfccc1de +ccc1decdc2dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3e0cdc2df +ccc2dfccc2dfcec3dfcdc2dfcdc3e0d4cbe4aea8c0b3adbcc4c1c6d0cfcdd7d5cfd8d8d1 +d3d3d0bfbfc9aca8bbc9c4e0cfc7e2cbc2e0cdc3e0cec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcdc2dfcdc2dfcec3df +cec3dfcec3dfcec3dfcdc2dfcbc0decac0decbc3dfcbc4dfcac3dfcdc2dfcfc4e1d5c7e2 +d6cae3d6cae3d5c9e3d4cae3cec8dbbfbdc6bcbfc194a5769bb73daacf38b7d43fbcd641 +b9d53fb4d33ca4c439adb17ec4bbb7c9bdc9c8c0cfcdc7d3d1d1d5d5d7d6d6d9d8d6dfd8 +d1e2d2e2edddefe7def8d4d2e09396bf3737ce2b27d92d26dd2d26d82b26d52926cf2826 +c72625c22425c32625c62925b52123b12223b22930b3393cb14a3aad5c2eb0752cbc962f +cab236d6c546cabd45bdad51c6b37ad9c5afe0cad3d5c1dcd3c0ddd4c5e0cfbddcd0bfdd +d1c2dfd2c4e0d3c4e0d3c3dfd1c2ded0bfddd0bfdcd2bedcd5bfdcd6c0ddd5c0ddd3c1de +d2c3dfd1c3dfd0c3e0cfc4e0cec6e1cec7e2cdc6e1cec7e1cfc6e0d0c6e0d0c6e0d0c6e0 +d1c3dfd2c2dfd2c0ddd2bfddd2bfddd2c0ddd2bfddd0c0ddd0c0ddd0c0ddcfc0decfc1de +cec2dfcdc2dfcdc2dfcdc2dfccc3e0ccc3e0ccc1dfcdc0decdbfdeccc0deccc5e2cec7e3 +cec6e1cfc2ded3c1ddd8c4dfd7c4dfd1c2dfccc3e0c7c7e3c4c8e5c5c6e3c7c3e1ccc1de +d0bfddd2c2dfd7c8e2d5c5dfd8c6dcdbc6d9dac3d4d9bfd0dabed1dbc1d7dcc4ddd7c0dd +d4c0ddd0c0ddcfc1decdc2dfccc3e0cac3e1cac3e1cbc4e1cdc3e0cec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcdc2dfccc3e0cac3e1cac5e1c9c6e2c8c6e3cac6e2cbc4e1 +cfc2dfd1c0ddd4bfdcd5bddbd4bedcd3c0ddd0c2dfcac5e1c4c8e4bec9e6c4c8e4d9c6e0 +e7c4dcd598bab158759e2638a91f21b82323c02424cb2925c22625b82523aa2722972425 +9c4c5cc08fa9aa8eb1c0b9dac9c6e2cec7e2d0c5e1d1c5e1cfc4e1cec3dfcdc2dfccc1de +cdc2dfcfc4e0cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3e0cdc2df +ccc2dfccc2dfcec3dfcdc2dfcdc3e0d3cae4ada5bfb1abbbc3c0c5d0cfcdd7d5cfd8d8d1 +d3d3d0bfbfc9aca8bbc9c4e0cfc7e2cbc2e0cdc3e0cec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcdc2dfccc1decdc2df +cfc4e0cfc4e1d1c5e1cfc4e1cfc4e0cec4e0cfc6e1cfc7e2cdc6e1cbc0dec9beddcabcdc +cdbfddcfc2dfd3c5e1d4c7e2d1c8e2ccc9d7d2d6d3a4b37ea1be3daed039bcd63ebed740 +b6d43fb1d23e9fba3cabaa85b1a2a9afa0b4afa2b6b2abbab9b8bfbfc1c5c0c6c9bfc9c4 +c1d5c5d5e2d0e5dbd0f2c4c1db7e83bd282ad42b2bcf2726d32926d62926d92a26d92a26 +d92b26da2c26dc2e25df2f25dd2d26d62926cd2529c6252bbc2326b12523a92d22a93d24 +ac5125be7428bc7c2db77b37c59068d7ac9edfbac0d5b7ced7c2dedbcce4d7c9e3d5c7e2 +d3c3dfd2bedcd3bad9d5b6d7d8b6d6d9b6d6dcbad8dab8d7d7bad9d5bddbd2bedcd1c1de +cdc4e0cac7e3c5c8e3c3cae4c2cbe4c2cbe4c4cae3c7c9e3cbc7e2d0c6e1d4c3ded5c2de +d5c2ded3c2dfd1c3dfd0c2dfd0c2dfcfc3e0cfc3e0cfc3e0cec3e0cdc3e0cdc3e0ccc3e0 +cac3e0cac3e0cac3e0c9c3e0c9c3e0c9c3e0cac3e0cdc0decebddccbbbdbc9c0decfc7e2 +d4c9e2d7c6e0ddc4dee3c4dde2c4dedbc1ddd3c4e0c9c6e3c1c5e3c1c5e3c7c5e2cec3df +d1c0ddd0bfddc9c0dec7c3e1c9c5e0cbc8e1cecbe0d0cadfcfc7deccc2dbcdbfdbd2c1de +d2c0ddd1c0ddd0c0ddcfc0decec3dfcbc4e1cac5e1cbc5e2cdc3e0cec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfccc3e0cbc5e2c9c6e2c8c6e3c9c6e2cac5e2cac3e1cdc3e0 +d0c2dfd1c0ddd2bfdcd3bedcd2bfdcd2c0ddcfc3e0cbc4e1c7c7e4c3c9e4cdc6e1eac9df +d192b3ad54719d273ba92025c12625cf2926d12826c62625c52725b424239d1e1f87171a +944459c796b6c0a5cdd3c8e2cbc2e0cfc5e1cfc4e1cfc4e0cec3dfcdc2dfcdc2dfcdc2df +cec3dfcfc4e0cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3e0cdc2df +cdc2dfcdc2dfcfc4e0cec3dfcdc3e0d3cae4aca5beafa9bac3bfc5d0cfcdd7d5cfd8d8d1 +d3d3d0bfbfc9aca8bbc9c4e0cfc7e2cbc2e0cdc3e0cec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcfc4e0cfc4e1cfc4e0 +cec3dfcdc2dfcdc2dfcdc2dfcfc4e0d0c6e2cec5e1ccc5e1d0c9e3d5cbe4d7cce5d5c8e2 +d2c4e0cebfddcbbddcc9beddc9c0dccbc8d7d4d9d0a3b4749fbf3baed039bdd63dbed73e +b3d33da5ca399bb344b9b69eb7a8b7b4a4bcada0b8a79db2a5a0b0a4a4afa1a3aca4acac +a8b9aab8c2b1cec3b8e1b3b3d3767db8262bc72426ce2728cf2728d22827d32926d52926 +d72b26da2d25df2e25e32f25e52e24e32f25e02d25dd2c29d82a2bcf2726c92825c12c24 +bc3124ac2922ad3323a63522b0482ebf665dc47a81c18393cd9ab3d8aecee1c2dce0c2dd +dec1dcdebedbdfbbd8e0b8d6e0b8d6e0b5d4e1b9d6dcbad8d7bcdad3bedcd1c0decec3df +cac5e1c6c7e3c3c9e4c0c9e4c0c9e4c1cae4c3c9e4c6c8e3cac6e2cdc4e0d0c2dfd2c1de +d2c1ded2c3dfd0c5e1cfc4e1cfc4e1cfc4e1cec5e1cdc4e0ccc5e1cbc5e2cbc5e2cbc5e2 +cac5e1cac5e1cac5e1c9c5e2c9c5e2c9c4e1cac3e0d1c3dfd2c0ddcebadacbbcdbd4c6e1 +ddc9e1ddc0d7e1b8d1e2b1cce6b5d1e9bfd8e1c3ddd5c8e2c9c6e2c4c4e1c8c3e1cfc3e0 +d2c0ddd1c1decec6e2cdcbe5cccce6cacbe6c9cbe4c9cae4cbc9e3cdc7e2cfc6e1cfc3e0 +d0c2dfcfbfddcfbfddcfc1decec3dfccc4e1cbc5e2ccc5e1cdc4e0cec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcdc3e0cac3e1c8c6e3c6c7e3c9c6e3cac5e2ccc3e0cfc3e0cfc3e0 +d0c2dfd0c2dfd0c2dfcfc3e0cec3dfcec3e0cec3e0cec3e0cec3e0d1c3dfdbbfdad797af +a34057941b23ab2328c72a2bd02926d52a26da2e25cc2726c22725ac2221911b1b8e2934 +af6e85d8b0d1d9c1ddd6c7e1ccc1decdc2dfcec3dfcdc2dfcdc2dfcdc2dfcec3dfcfc4e0 +cfc4e0cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3e0cec3e0 +cec3e0cec3e0cfc4e1cfc4e0cdc3e0d2c9e4a9a2bbada7b7c1bfc4d0cfcdd7d5cfd8d8d1 +d3d3d0bfbfc9aca8bbc9c4e0cfc7e2cbc2e0cdc3e0cec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcfc4e1d1c5e1cfc4e0 +cdc2dfcabfddc9beddcabfddcbc0decbc2dfccc4e0ccc5e1cac3e0c9beddc9beddcebfdd +cfc1ded0c2dfd1c3dfcfc2dfcac0decbc8d8cbd1bf9db062a3c239b2d237bcd639bad53b +b1d23ea8cb41a7ba63d9d5c9d9cbe0d8cbe3cdc3dcc0b9d0b9b2c7b2abbea29bb0a09eab +9da8a2a2a79eb4aaa7c49ca2be6877aa2431ac1f21b92224bd2324c02525c42625c92725 +cf2826d62b26dd2d25e02e25e32f25e32f24e32f24e32f24e02e25da2c26d42a26cc2726 +cc2726d72e26d92e26c82725bf2424bb2324b42427ad2531b1384db44d66b9607dc17691 +d090ade3accaefc1d9f1cce0edcbe0e5c3dcdbbddad5c6e0d1c7e2cfc7e2cec7e3cdc6e2 +ccc6e2cbc5e2c9c3e0c9c3e0cac3e1c9c4e1c9c4e1c9c4e1c9c4e1c9c4e1c9c4e1c8c3e1 +cac5e1cbc6e2cbc7e2ccc7e0ccc7e1ccc7e1ccc7e1cbc7e2cbc7e2cbc6e2cbc6e2cbc6e2 +cbc6e2cbc6e2cbc6e2ccc6e1ccc6e1ccc5e1cdc4e0d3c3dfd5c2ded6c0ddd7c1ddd9beda +d0a9bfc38ca2bc788ebd6f87c67992d38fabdca6c4e0bdd9d9c6e0d3c4e0cfc4e0d0c2df +d1c0ddcebddccabddcccc0decec3dfcdc2dfc9beddc7bcdcc6bbdbc8bdddc9c0dfcbc3e0 +cbc3e0cbc3e0cbc3e0ccc3e0cec3e0cec3e0cfc4e0cfc4e0cec3e0cec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcdc3e0cac3e1c6c7e3c6c7e3cac5e1cec3e0d1c1ded1c0ddd1c1de +cfc2dfcdc3e0cac5e1c9c6e2c9c6e3cbc5e1d0c4e0d6c1dedbbedae1bcd8efb7d2952638 +a9272db12323b72323c32325cd2726ce2826c82625c92825a41f209d22209a3537b87582 +dfb1c8e5c7dfd8c3dfc8b6d8d3c5e1cfc3e0cec3dfcdc2dfcdc2dfcec3dfcfc4e1cfc4e1 +cfc4e0cdc2dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3e0cfc4e1 +cec3e0cfc4e1cfc4e1cfc4e0cdc3e0d1c8e3a9a2baaca5b6c0bdc3d0cfcdd7d5cfd8d8d1 +d3d3d0bfbfc9aca8bbc9c4e0cfc7e2cbc2e0cdc3e0cec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcabfddc9beddcbc0de +cec3dfd1c5e1d1c5e1d2c6e1cfc4e1cfc4e1d0c7e3d1c9e4cdc5e1ccc1decec3dfd3c5e0 +d4c6e1d1c1deccbddccdbfded0c6e2c8c6d6c1c7a999ae4ea9c939b7d43abbd638b8d539 +b2d23ea9c546a6b36cd7d2cecfc4ddd1c8e2cdc6e0cbc3ddccc3ded0c4dfd2c0dcc3b5cd +b5b6beafaeb0b1a7afab8d9c9c5770901f3c961a249a1b1fa11f20a92121ae2222b42423 +bc2524c22725c92825cd2826d42a26d72b26dd2d25df2e25df2e25dd2d25dd2d25df2f25 +e43224dd2d25e53024e02e25dd2d26dc2e25d62a26c92526c32425b82327ae222ba92639 +a9334cae4962b75f78bf758bcb8a9fd49dafd5a7bee3c3dae1c9e1dec8e1dcc7e0d8c5e0 +d5c4dfd2c1ded0bfddcebfddcfc1decec2dfccc1dfccc2dfcbc2e0cac1dfcac1dfcac1df +c9c3e0cac3e1cbc6e2cbc7e2cbc7e2ccc7e1ccc7e1ccc7e1cdc6e0cec6e1cec6e1cfc6e1 +cfc6e1d0c5e0d0c5e0d1c4dfd1c4dfd1c3dfd1c3dfd0bfdcd2bddbddc4dee8c5dde0afc8 +bc76899a3e4f8d1c2a911b25982436a33b54c26a85dd9ebbe9bcd7e2c2dcdbc4ded7c2de +d4c1ded3c1ded4c3dfcfbedccebcdbcfbddcd0bfddd0c0decfc2dfcec4e0cdc5e1c9c4e1 +c9c4e1c9c4e1cac5e1cac3e1cdc3e0cfc4e0d0c2dfd0c2dfcfc3e0cec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcdc3e0c9c4e1c1c2e0c9c7e3d1c6e2d2c2dfd3c0ddd4bfdcd3c1de +cfc3e0c6c1e0c5c9e5bec6e3c1c7e2cac8e3d6c5dfe3c2dcebb8d3d58baeab4260a62021 +b82423be2624c52625cd2826d02826c22425b32122b5252390181ba34149c07d89d8abba +dfc1d7d8c1ddd2c0ddd1c0ded5c8e2d0c3e0cfc3e0cec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3e0cec3e0 +cec3e0cec3e0cfc4e0cec3dfcdc3e0d2c9e4ada5beafaabac4c1c6d1cfccd6d4cdd6d7d0 +d2d2cfc1c1caaeaabdcac6e1cec7e2cac2e0cdc3e0cec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcdc2dfcdc2dfcdc2df +cec3dfcfc4e0cfc4e0cfc4e0cec3dfcec3e0cfc5e0cec6e1cdc5e1cec3dfcdc2dfd1c3df +d0c2dfd0c0ddcebfddcdc1ded0c5e1d1cfdeafb88e9bb246afcf3cb8d43ab9d538b9d538 +b2d23da3bb49bac48ad5d0d3cec7e2cbc9e3cbc9e2cac6e1d0c5e1d5c4dfd7bedbd8c0dc +d2c9dfcec8dac6c1d5bfb0c6ba94b1ba799abb6888b15568aa424c9d2d3094201e931c1c +971c1e9f1f20a72121ae2022bc2524c32725c22425c62625cf2926d72c26da2d26da2b26 +dd2e25dd2e25dd2d26db2d26dc2d25de2f25de2f25dd2e25db2e26d92d26cd2726cb2626 +c6262cc12935bb2b3ab3303db03543b4424cb24b5bc87089ce82a1d793b3e2a5c5e9b5d1 +e9c1dae5c6dedfc7e0d7c6e0d2c4e0cfc4e0cdc2dfccc0decfc0ded1c0ddd2c1ded2bfdd +d3c0ddd1c1decfc3e0cec4e0cec4e0cfc4e0cfc3e0cfc3e0d0c2dfd1c3dfd2c3dfd3c3df +d3c3dfd4c3dfd4c1ded5c1ddd6c3ded8c4dfd9c6e1d8c4dfd7c0dce2c2dbf4c7dbbd6e86 +9f2f40a5252fa82226a92022a72023a4202aa62c3fb34b66cb7d99e3a9c6edc3dae8cbe1 +d9c4dfd0bddbd4bddbd4bfdcd2bddbd0bcdbd0c0ddd3c5e0d1c6e2cbc3e0c5bfdec7c3e1 +c7c4e2c8c5e2cac5e1cdc5e1cfc4e1d1c3e0d2c4e0d2c4e0cfc3e0cec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcdc3e0cac3e1c6c6e2cac5e1cfc3e0d1bedcd4bddbd5bfdcd5c3df +d1c6e1cac7e3c2cde7c0cde6c1c9e0d0cae1e4cae0e7b3cdce7f9db03f65aa2237bb2324 +c12624c92825cc2726c92626c32525c02625b5272b8e191ba24352b87688d0a4b8dcc1d6 +dac8e0d3c4dfd0c1ded2c2dfd3c3dfd0c2dfcfc3e0cec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3e0cec3e0 +cec3e0cec3dfcfc4e0cec3dfcdc3e0d3cae4ada7bfb1acbcc5c1c6d0d0ced6d4cdd5d6cf +d2d2cfc0c0caaeaabdcac5e1cec7e2cac1dfcdc3e0cec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcdc3e0cdc4e0ccc4e1ccc4e1cec3dfcdc2dfd0c2df +d0c2dfcfbfddcec0decdc0decfc4e1d2cfdcaab57e9cb43dafd03ab7d438b7d437b7d439 +b1d13ea5b851c1c69bd2ced8ccc8e2c8cae4c6cae3c9c7e3d0c3e0d6c1ddd8b9d8dbbbd9 +d8c5e0d2cae3cacbe4c5c5e1c7bad9d0aed0d6a8c9dda7c0d397a8c38291b56e79aa5966 +a14754993645932636921c2b941a1ea12021a72121b02422be2924c82a25cc2926cf2926 +da2f26d32b26d22b26d32a26d62a26da2d25de2e25e02e25e32f25e32f25e02e25dd2d26 +d62b26cd2826c72625c12424bf2525c12926bf2d30bb3344b93854bd4664c15773c86986 +ce7f98d491aad8a2bcd6acc7e3c1d9e2c7dfddc4ded9c0dcd6bcdad6bbd9d6bad9d8b9d8 +d6bedbd0bcdbccbcdccdbfdecfc2dfd1c3e0d2c3dfd1c2dfd0c0ddcfbfddd0c0ddd2c2df +d4c3dfd5c4dfd5c4dfd6c1ddd2bedcd2bddbd2bddbd4bfdadcc1d8e9bcd1e6a0b5b84b60 +a92128b82424bc2324bc2324b92223b32123ad2124ab2533b34159c26880d08fa5d9afc4 +e0c4d8e2c8e0dec2ddd9bcdad4bddbd3c2dfd0c4e0c9c0dfc4bfdfc5c3e1c9c8e4c6c4e2 +c8c5e2c9c4e1ccc4e1cfc4e1d0c4e0d1c3e0d2c4e0d1c4e0cfc3e0cec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcdc3e0cdc5e1ccc8e4cac3e0cfbfddd0bddcd4bddbd5bfdcd4c2de +d1c6e2cbcae5c2cce5c0cbe2c9cbdfdbcbdde3b9cccf869caf415ca41e2ebc2229cb2825 +c92725cc2726cb2726c32525b42123ab2028a2273c8e2f45c3839ed0a7c1d8c0d9d9cbe3 +d4cbe4cfc6e1cfc4e0d1c3dfd0c1decfc3e0cfc3e0cec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3e0cec3e0 +cec3e0cec3dfcfc4e0cec3dfcdc3e0d3cae4ada7bfb1acbcc4c1c6d0cfcdd6d4cdd6d7d0 +d2d2cfc0c0caaeaabdcac6e1cec7e2cac2e0cdc3e0cec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcdc3e0cdc4e0ccc4e1ccc4e1cec3dfcec3dfd0c2df +d0c2dfcfc0decfc0decdc0decdc3e0cecdd4a7b4719bb63bafd037b6d439b6d438b5d339 +afcf3ea9b65dc4c6a5d1cdddcac7e2c5cae4c3cae4c8c6e2d0c2dfd6c0ddd6b6d6d8b6d6 +d6bedbcec5e1c4c9e5c0cbe7c7c9e5d2c6e1d8c5e0e0c7e0dfc0dadab8d2d4adc7cc9fb9 +c38fadb57c9fa9688fa25b829a49689e4356982f2e97241e9d221fa62221ab2021b42222 +c22725c22625c62625cc2726d22b26d62c26da2e25dd2d25dd2d25dd2d25e02e25e02e25 +dd2d25db2e26d92d26d62b26d32a26d22a26cd2926c52525bf2327bc242ab9262eb92c39 +bb3849bf485bc35b70c4667dcd7c93d48da7db9eb9e6afcdecbdd6eac3dbe8c3dce4c0da +debedbd5bfdcd0bfddcfc1decfc1dfd0c2dfd0c0ded0c2dfcfc2dfcec0decec0decfc2df +cfc3e0cfc2dfcec2dfcec0decfc1ded0c3e0d4c5e1dac4dde5c0d3e6a9bac9687bb93340 +bf2525cc2726cb2626cb2726cb2726c42325c02324b92223ac2229a62b3bac4d5ebb7b88 +cda0addeb9cce8c3dbdfbfdad4bedbcec2dfcac7e3c4c8e5c0c9e5bfc7e5c1c7e4c5c5e2 +c9c4e1cec3e0d0c2dfd2c3dfd2c3dfd1c3e0cfc4e1d0c5e1cfc3e0cec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec4e0d0c7e3ccc2dfcfbfddd2bfddd5c0ddd4bfdcd0c0dd +ccc3e0cac5e1c6c8e2c9c8ded9cadddcb8c7c98797af475aa6202eb52226c62425d32a26 +cf2826c82625c22525b82323a62022901923922f4fb9799ad8b1d0dac4dfd7cae4d1cae4 +cbc6e2cac5e1cec6e1d1c4e0cfc1decfc3e0cfc3e0cec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3e0cec3e0 +cec3e0cec3dfcfc4e0cec3dfcdc3e0d3cae4ada7bfb1acbcc4c1c6d0cfcdd5d4cdd7d7d1 +d3d3d0c0c0caada9bdcac5e1cfc7e2cac2e0cdc3e0cec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcdc3e0cdc4e0ccc4e1ccc4e1cec3dfcec3dfd0c2df +d0c2dfd0c0decfc1decec0decdc2dfcbcacca5b2629db93aaed038b6d438b6d438b3d339 +adcc3eadb66ac8c6b3d1cae1cac6e2c4cae4c2cbe4c7c7e2cfc2dfd5bfdcd7b5d6d8b6d6 +d4bddbcac2e0bec9e6bac9e7bfcae6c8c7e3cdc6e2cdc2dfd1c3dfd5c4e0d9c6e0dbc4df +d8bfdcd1b6d7caa9cfc6a0cbc49ac0bb8aa0a66a69985139994625a34423a63d23a22d21 +a12020aa1f21b12122b92423bf2524c52725cb2825cf2926d42b26d62b26da2d26db2d26 +dd2d25dd2e25dd2e25dd2e25dc2e25da2b26d62b26d82b26d62a26d22826cd2726c92625 +c72426c32426bf272cb82931b83242be4357c55c70d07689d98da0dd9db1e1aabde5b2c5 +e1b8d1dfc2dddac6e0d6c3dfd3c2ded1c0ddd0bfdcd0c0ddd1c3dfd1c4e0cdc2dfcac0de +cac2e0c9c3e0c9c3e0c8c3e1cac5e2cac7e3d2c9e3e0c8e0edb9cbdd8c9ab43a46bd2529 +cf2826dd2d26d92b26d72b26d62b26cf2826ce2826cb2626b92223a71e21a0242aa14248 +a86267ba808ad5a0b3e2b7cee2c8ded1c6dfc4c7e2c1cee8c1d2ebbdcce8bac5e3c4c6e3 +cac3e1d1c3dfd2c1ded3c1ded2c2dfd0c3e0cec4e0cdc5e1cec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcfc3e0cfc4e0cec0ded0c0ddd3c3dfd3c4e0d0c0decbbedd +cabfdecdc3e0d1c6dfe0cbe0e1bccdc88797a844549e1e23b12123cd2628cd2826d32a26 +cd2926c12624b32123a42021931c258b2a42a76486e0bad7dac4dfd5c7e2cfc7e2c9c5e2 +c5c2e0c8c2e0cdc6e1d1c6e1d1c3dfcfc4e0cec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3e0cec3e0 +cec3e0cec3dfcfc4e0cec3dfcdc3e0d3cae4ada7bfb1acbcc3c0c5cfcfcdd7d5cfd9d8d1 +d3d3d0bfbfc9aca9bcc9c4e1cfc7e2cbc3e0cdc3e0cec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcdc3e0cdc3e0ccc4e1ccc4e1cec3dfcec3dfd0c2df +d0c2dfd0c2dfcfc2dfcfc2dfcec3e0c7c6c5a4b557a0bf3ab2d236b7d438b6d439b0d238 +abc940b0b777cdc6bcd3c8e2cbc5e2c6cae4c4cae3c7c7e2cec2dfd4bfdcd5b6d7d5b7d7 +d3c0ddcac5e1bcc9e6b7c9e7bac5e3bfbfdfc4bdddc6bdddc9bfdecfc0ded3c3dfd8c6e1 +dac7e1dac7e1d7c5e0d7c4dfdfcce4d4c1ccbea798b0956cba995ac8a256ca9a47b07329 +95441f962f1f9c29209d27209f2220a22020aa2021b62323c22625ca2726ce2926d22b26 +d42a26d52a26d52a26d62a26d62b26d92d26dd2e25e02f25e33025e32f25e12e25df2e25 +dc2d26d52926cd2726c62625c12525bd272ab62a2daf2d33a9333bac4149b75c63c8777f +cf8b98d8a1bad7abced6b1d3d8b6d6dbbad8dcbfdbdbbfdbd8c0ddd4c1ddcfbfddcbbedd +ccc3e0cdc6e2cdc9e4c9c8e4c4c6e3bfc3e2c7bfdee2c0d9eda9bbcf6571b6272ec22325 +d82b26e42f24e12e25e02e25df2e25da2b26d92b26d62a26cb2626ba2323ab20229d2320 +922522933535aa5a63cb8e9deac0d1e2caddcfc6dfc3c7e2c0cbe6c0cbe7c2c9e5c7c7e3 +cdc5e1d2c3dfd3c1ded3c0ddd2c1ded0c2dfcec3e0cdc4e0cdc3e0cec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcfc3e0cfc3e0d0c2dfd1c1ded1c3e0d1c5e1cdc4e0c9c2e0c9c0df +cfc3e0d8c5e0e4c6def1c2d8d18a9ea83f519e1e21ae2122c32625cb2726cf2826c92725 +bf2424b72423a421218e1a1c8b2d3eb2728cdab3d0dbc6e0cfc2dfcbc3e0c9c3e0c7c1df +c6bfdec9c0dfcdc4e0d0c7e1d1c6e1cfc4e0cec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3e0cec3e0 +cec3e0cec3dfcfc4e0cec3dfcdc3e0d3cae4ada7bfb1acbcc3c0c5d0ceccd6d6cfd8d8d2 +d4d3d0bfbfc9aba8bbc9c4e0cfc8e3cbc3e0cdc3e0cec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcdc3e0cdc3e0ccc3e0ccc4e1cec3dfcec3e0d1c3e0 +d1c3dfd0c2dfcfc3e0cfc3e0cec3e0c3c3bca3b54ca4c439b3d336b8d439b7d438afd139 +a9c643b3b984cec6c6d4c6e1ccc3e0c8c8e2c6cae4c8c6e2ccc1dfd1bfddd2b8d8d3bad9 +d0c3e0c8c9e4becce7bccbe8c2c5e3cabfddcebedcd4c6e1d4c5e1d3c1ded3bfdbd5bedb +d6bedcd5bfdcd4c0ddd3c4e0d5cee1c8cac3abb48d9fab66b0ba63cdd776dbe07dc8c563 +aea048a0845aa37a689e69619550518f343e902132981d2ba31e25ab1f21b32023bd2224 +c62425cc2726cd2826cd2826cc2726cd2826d32a26dc2d25e02e25e12e25e02e25de2e25 +dd2d25db2e26d92d26d62c26c92725c32525c22725bc2624b52523ad2322aa2522ad2823 +ab2f31a84151ab5671b76e8acb87a2dda0bbe9b1ccebbad4e4b9d4dbb7d5d8bbd9d6c0dc +d3c1decfc3e0c9c3e0c4c4e1c3c6e3c5c9e5d4c9e3ebbed7e78da1c33945c72b30c92625 +da2b26e53024e52e24e52f24e32f25e02e25dc2d25d62a26ce2826c62625be2524b12322 +a42221991e1f95201ea24247c27b87dba8bae0bfd5d8c4ded0c4dfcbc6e2cdc9e4ccc7e2 +cfc6e1d1c4e0d3c3dfd2c2dfd1c1ded0c0decfc2dfcec2dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcfc3e0d1c2dfd2c0ddd4c4e0d0c5e1c8c3e1c2c3e1c4c4e2ccc8e4 +d6c9e3e2c8e0f1c0d8cd7f9ba73650a11f25b12122c52625cd2726cb2726c92725be2424 +b32123a31f20921b1d953642b57688ddb6cee9d3e6ccc0dec9c2dfcac2e0ccc4e1ccc3e0 +cdc2dfcdc2dfccc2dfcec4e0cfc4e1cec3e0cec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3e0cec3e0 +cec3e0cec3dfcfc4e0cec3dfcdc3e0d3cae4ada7bfb1acbcc3bfc5d0ceccd6d6d0d9d9d3 +d4d3d0bfbec8aaa7bac9c4e0cfc8e3cbc3e0cdc3e0cec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcdc3e0cdc3e0ccc3e0ccc4e1cec3dfcec3e0d1c4e0 +d1c4dfd1c3e0cfc3e0cfc4e0cfc5e1bebfb5a1b443a7c738b4d335b8d439b7d439add139 +a7c245b5bb8fcec5cfd5c4e0cfc1decbc7e2c9cbe4c9c8e2cbc2e0d0c0ddd2bddbd2bedc +cac5e1c2cae1bdcbe3bec9e6ccc5e2d4c0ddd5c1ddcec3dfcbc4e1cfc2dfd2c0dcd3bedb +d6bedbd7bfdcd5c0ddd4c5e0cfcdddb0b9ab799059537535587f397da33ea0bf49afc75e +b2c16fbfc1a0cbc3b9cdbcbdc6a8b4ba8ea5b17292ab587ea23f649d26489b1b28a21d21 +aa2021b02122b42123b62323b62223b42023bc2324d22826da2d25dc2d25db2d26da2d25 +da2b26d72b26d42a26d32a26d62a26d62b26d62b26d32b26ce2926cb2826c72725c92925 +c42925bc2f2caf2d33a3272e9d232c9d2a36aa4353c66d7edc91a4ebabc1f5c2d7f6cddf +f0cde1e6cce2dcc8e1d3c4e0cfc4e0cdc5e1dac3deeeabc8e06b81bc2228d53033d22a26 +d72b26e32f25e62e24e52f24e32f24e32f25e02e25d92b26cf2826c92725c52725c62625 +c52825bf2924af2823971c1e8f191daa4a5ecf87a3eab4d1ebc7dee1c8e0d4c3dfd1c6e1 +cdc7e2ccc8e2cdc7e2cdc4e0cfc3e0d1c1ded0bfddd0bfddcfc3e0cec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcfc3e0d1c1ded1bcdbd5c4e0cec6e2c0c4e2bcc5e3c2cce7cccde7 +d3c2dfd6accecb7ba09f23489f1c22bc2227cd2626cd2726cc2726cf2a26c12624b32123 +a62021961d1ea1414bc98996e9c1d1e1cbdec7bbd5d1cae4d0c6e2cfc4e1d2c3dfd3c3df +d3c2dfd2c2dfd0c2dfcdc2dfccc3e0cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3e0cec3e0 +cec3e0cec3dfcfc4e0cec3dfcdc3e0d3cae4ada7bfb1acbcc3bfc5d0ceccd7d6d0d9dad3 +d5d5d1bfbec8a9a6bac9c4e0d0c9e3ccc3e0cdc3e0cec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcdc3e0cdc3e0ccc3e0ccc4e1cec3dfcec3e0d1c4de +d0c6ded1c4ded0c4e0d0c4e0cec4e0bbbcab9fb33ba9cb38b4d335b8d439b6d439aacf38 +a3be49b8bc99cfc4d6d4c3dfcfbedccfc4e1cdc8e2cac7e2c9c4e1cdc2dfd0c0decdc2df +c2c8e1bcccdabbcbdbc3c7dfd3bfdcdbb8d7d7bbd9c4c5e2bbcae7c0c9e6c8c7e3cec3e0 +d2bfddd2bcdad2bcdad1bedcd7cbe1a9a8a26b7745415a293c5a2a456830527233637c35 +7c873ebab4a6d2c1cce1cfe4e6d2e6e3cde3ddc4ded8bbd9cfabcfc899bdba819bae6b7b +9e4c52912e2b8c1c1b901b1c991d1fa02028a82126aa2021b02222b82423c22725cb2b26 +d22c26d42a26d82b26da2b26dc2d25df2e25e12e25e22e25e12e25df2e25dc2d25d72b26 +d52a26d62b26d42b26ce2926c92825c22625be2524b62423b12728aa2930a93844b14e60 +bc6980cf8aa3e0a6c3eebfd7eec9dfedcce1f3c7ddf194b4dd4660cd2529d4292ada2d26 +d52a26de2e25e52f24e83024e52f24e32f25e02e25da2e26d42c26cf2926cf2826d42a26 +d72b26d32a26c72725c02625b72123ab1e27af254bc34f7fd97fade4a6cbe3bdd9d6c4df +cccae3c4cde3c2cde4c6c9e4cbc4e1d0bfddd1bcdbd2bddbd1c1decec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcfc3e0cfc3e0cfc3e0 +cfc2dfcfc3e0cfc3e0cec3dfcec3dfcec3dfcec3dfcec3e0cec3dfcec3dfcec3dfcfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0d0c0decebadad3c4e0cdc9e4c3c7e4c3cae6cdcfe8d6c9e3 +d3aed0cc87a99b234ab02239be2229c72325cd2726cc2726c12424bc2424bf2b24a42324 +85161e94384cc38094e5b9cce5caded1c3dbcac0dcd1cae4d0c5e1cfc2dfd0bfddd0bfdd +d2c1ded2c3dfd1c3e0cfc4e0cfc4e1cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3e0cfc3e0 +cfc3e0cfc3e0cfc4e0cec3dfcec3dfd3cae4ada7bfb0acbbc2bfc5d0ceccd7d6d0d9dad4 +d5d5d1bfbec8a9a6bac9c3dfd0c9e3ccc3e0cec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcdc2dfcdc3e0cdc3e0cec3dfcfc4e0d1c4df +d1c4ded1c3ded0c4e0cfc4e1cac4dcb7baa09db13aa9cb38b3d335b7d438b5d33aa9cf38 +a1bb4fbabba1d0c4dbd4c3dfd0bfdcd0c3e0cfc7e2cbc6e2c9c3e0cac2e0c8bddcc8bfde +c2cae2bfcedec4cde0cbcae3d7c0dddeb9d7d6bbdabfc2e1b5c8e6bcc9e6c3c7e3cac3e1 +d1c3dfd3c1ded5c1ddd8c5e0d3c8de9a96935b6334435626455d2a46612c405a29485d29 +6a733bbfb5b5cfbfd6d5c5e0d3c3dfcfbfddcfbfddd1c2dfd3c4e0d2bfdddec8e0d9bbd0 +cfa8b4c6959ec38790be7883b462729c3c568d1f348f1a1d931d1d991e1fa02020a92121 +b22122bc2324c72525cd2726d52926da2c26dd2d25df2e25e02e25e02e25e12e25e02e25 +df2e25e02e25e02e25de2e25dd2d25da2d25d62a26cf2926c92725c22725b92624b2282a +ae2d34ac3844af4559b75c75c3758ecf8aa5e594afe36d88da364bda2c2dcc2626e0322a +d92b26df2f25e42f24e93024e93024e42f24df2e25d72c26d42b26d42b26d72c26db2d26 +dd2d25da2b26d32a26c82625c92625cb252bbd2231af223ab4345cc7658ddd9abbe6bfd6 +d8c6dcccc9decacbe2cac8e3cbc3e0d0bfddd1bedcd1bedcd0c2dfcdc4e0cdc3e0cdc3e0 +cec3dfcec3dfcfc2dfcfc2dfcfc2dfcfc3e0cfc3e0cfc3e0cfc4e0cdc3e0ccc4e1cbc4e1 +ccc5e2ccc5e2cdc3e0cec3dfcec3dfcec3df +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd1c1de +d1c0ddd1c1ded0c2dfcfc3e0cfc3e0cec3e0cdc4e0ccc3e0c9bfdecbc0ded0c4e0d3c5e1 +d4c6e1d1c3e0d0c2dfd2c3dfd4c5e1d2c3dfccc1dfc8c5e2c9c7e3d0c9e3dbc8e1dfb4d4 +cb7fa2a63154af1f2db92223c72525cd2826c92825c12424bf2524bd2724a621217c142f +914c70b986a8d7afcfdfc1dbd9c4dfd5c6e0d4c6e1cec3dfcfc4e0d0c2dfd0c0ded1c1de +d1c2dfd1c2dfd0c2dfcec3dfcec3e0cec3dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +d0c2dfd1c3dfd1c3e0cfc4e0cfc4e0d3cae4ada5beaeaabac2c0c5d1cfccd6d7d0d8d8d2 +d5d4d0bfbec9ada7bacac2dfd0c6e2ccc2dfcec3dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd1c3e0 +d1c3e0d0c4e0d0c5e1d0c8e2cac7cfa9b0899ab03aa9cb38b3d334b7d438b2d238a2c939 +a1b75dbebeb4ccc0ddd2c2dfd2c2dfd1c4e0d1c6e1d0c6e2cdc3e0ccc2dfccc0deccc2df +c9c6e2c9c9e3cac7e2cec6e1d2c1ded7bddbd3bedcc8c2e0c3c5e3c6c6e3cac7e3ccc6e1 +cfc4e0cfc3e0d1c4e0d4c7e2cbc5d97d807d4c562c3d4e21415526425928415425475a28 +7b8365cbc3cfd1c3dfd2c4e0d0c2dfcec0decec0decfc2dfd0c3e0d1c3dfd7c8e2dac7e0 +d9c3dbd9bfd7d9bad3d8b2ced0a6c3c796b8c289a6ba7788b1626ca34951962e36901e22 +941b1e9d1d20a72021ad2022b82223c32525cb2726d22a26d62b26d62b26d92b26da2d25 +dc2e25da2e25da2d26db2e26de2f25e02e25e12e25e02e25db2d26d62b26cf2926cb2726 +ca2b26c32825b32323b22b2fb23542ac3b4dbe4b5ed64f60e74753e83c41de322edd3128 +d92b26dd2d26e32f25e62e24e83024e32f24e02e25de2e25db2e26da2d26d92d26da2e25 +db2d26d92b26d52a26d12826ce2826cc2626c52425bc2124b3222bae2c3fb2485dc07386 +dea9bcefcddfe0cae1cfbfdbccbfddcfc4e1d1c6e1ccc3e0cbc4e0c6c0ddc8c0decec5e1 +cdc4e0cabeddc8bbdbccbddcd3c5e0d0c0ddd1c1ded0c2dfcec3e0cdc5e1cac6e2c8c6e3 +c6c7e3c7c7e3cbc4e1cdc2dfcec3dfcec3df +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d1c1ded2bfdd +d2bfddd1c1ded0c2dfcfc3e0cec3e0cdc4e0cdc4e0cdc3e0cec0ded0c3e0d2c4e0d1c2df +cfc0decec0decfc1decfc3e0cfc4e0cdc4e0d0c7e3cec6e2d5c7e2ddc5dfdbaccec77b9f +b23f61ac1f2ec02225cf2826cf2826c92725c22625bc2624b52423a9212190191f945378 +ae8db5cfb6d7dac3ded6c3ded2c0ddd3c4e0d4c6e1cebfddcfc2dfd0c2dfd0c2dfcfc3e0 +cfc3e0cfc3e0cfc3e0cec3dfcec3dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2df +d1c2dfd1c2dfd2c3dfd0c3e0cfc4e0d3cae4aca5beaeaabac2c0c5d0d0ced6d7d0d9d7d2 +d5d4d0c2bdc8aea7bacbc2dfd0c5e1cdc0decfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd0c2dfd0c2dfd0c2dfd0c2df +cfc4e0cfc4e0d0c5e1d1cbe0cacac7a4af7e9ab03caacb38b3d335b6d438aed1389fc43a +a1b465c2c1c0cbbfddd0c3e0d1c3e0d0c4e0d2c5e1d2c5e1cfc3e0cec0decfc3e0cfc3e0 +cec3e0cec4e0cec3e0cfc4e0d0c2dfd1c1ded1c1decec2dfccc3e0cdc4e0cfc6e1cec7e0 +ccc5dfcbc4e0cdc6e2cdc8e3afb0b96b73644c592a445626425626405324405123525f31 +93998ccec8ddd2c5e1d1c3e0d0c2dfcfc2dfcfc2dfcfc2dfcfc3e0cfc3e0cfc2dfd2c4e0 +d4c5e1d6c6e1d7c6e1d5c4dfd4c1ddd1bddbd3b8d8d7b0cbd3a3b7c891a5bd7f91b56e7f +af5d6fa84b5aa0333e9f252a991d1e9f1d1faa2021b42123c02424c62625c92725cc2826 +cc2826cc2826cc2826d12926d72c26dd2d25e02e25e32f25e32f25e12e25e02e25dc2e25 +da2f25da3025c82625c32725bd2826aa2021be353bde5b60ef6d70f06464ed5554e74742 +e23a32e0332ade2f25df2f25e02e25e02e25e02e25e02e25de2e25dd2d25dc2d25da2d25 +da2b26d92b26d72c26d62c26d52b26d42b26d12926cb2726c22525b42123ad2327b33a47 +b9576acc849bdda9c4e3c0d9dcc8e1d2c5e1c8c1dfc5c1e0cdc6e2cec6e1cac1dfc8bedd +c9bfdecec3dfd1c5e1d1c2dfcbbddcd0c0ddd0c2dfcfc3e0cec3e0ccc5e2cac6e2c7c7e3 +c5c7e3c7c7e3cac3e1cdc2dfcec3dfcec3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d1c1ded1c0dd +d1c0ddd0c2dfcfc3e0cdc3e0ccc4e1ccc4e1cec3e0cfc3e0d2c2dfd5c4e0d4c3dfcfbddc +cbbddcccc1decec5e1cbc5e2c7c2e0c7c2e0d0c7e3d9c7e1e1c2dddfabcec67a9daa3d5c +a41e2aba2327c62425d62c26d12926c52625c02525b62423a42020971d20993b53c499be +cdb6d8d6c5e0d7c6e1d2c0ddcfbedcd1c1ded2c2dfd0c0ddd0c2dfd0c2dfcfc3e0cfc3e0 +cfc3e0cec3dfcec3dfcec3dfcec3dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd1c2df +d1c2dfd2c2dfd2c3dfd0c3e0d0c3e0d3cae4aca5beaeaabac2c0c5d0d0ced6d7d0d9d7d2 +d5d4d0c3bec8afa7bbcbc1ded0c5e1cdc0decfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd0c2dfd0c2dfd0c2dfd0c2df +cfc4e0cfc3e0cfc4e1d0cce0c9cbc5a3af7b9ab13caccd38b3d335b4d337acd0389dc23b +9fb368c5c3c6ccbfddd0c3e0cfc3e0cfc3e0d0c3e0d1c4e0cfc3e0cec0decfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c0ded0c2dfcfc4e0d0c5e1cec6df +cbc7decbc7e0cac7e2c5c6db8f978d59673c475a284459274156263c5123425425616f4b +a4a8a5cec7e0d2c5e1d0c3e0cfc3e0cfc3e0cfc2dfcfc2dfcfc3e0cfc3e0cfc2dfcfc2df +cfc3e0cfc3e0d0c3e0d0c3e0d0c3e0d0c3e0d2c3dfd9c3dedcc0dbdebcd8deb8d4dcb1cc +d8a5bfcd92abbe788eb7657bae5465a94451a4323ca023299f1f20a31f21a92021ae2222 +b12122b32122ba2323c32525cb2726d22a26d92b26dd2d26df2e25e02e25e33025dd2e25 +d62b26de3225ce2826cc2826c92925b72323d34746ee7e7bf5968ff48e85f4847af1786e +ee6c63e95c54e04c40db3c30d93429da3026dc2e25dd2d26dd2d25e02e25e12e25e12e25 +e02e25dd2d25d92d26d72c26d92d26da2e25dc2e25da2d25d62a26cf2726c52425b82423 +aa202bab3550be6881d397afddb6d0d9c5ddd1c6e1cbc3e0cdbfded2c4e0d0c4e0ccc1de +cabfdecdc4e0d1c8e3d0c7e2cac1dfcdc3e0cdc3e0cec3e0cdc3e0cdc3e0ccc3e0ccc3e0 +cbc4e1cbc4e1cdc3e0cdc2dfcec3dfcec3df +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d1c1ded1c0de +d1c1decfc3e0ccc3e0cbc5e2cac5e1cbc4e1cec3e0d1c1ded3bfdcd7c1ddd6c0ddd1bedc +cfbfddcfc5e1cccae4c7c9e5c3c6e3c8c5e2d0c0dde1c0dbe1aacac97697ad3e5aa4202b +ae2222bf2524cb2925cb2825c82625c72625bc2324a820219a1f27a24559c0829ddebedb +d9c6e1d7c6e1d3c3dfcfbedccfbedcd0c0ddd2c2dfd2c3dfd0c2dfd0c2dfcfc3e0cfc3e0 +cfc3e0cec3dfcec3dfcec3dfcec3dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd1c2df +d1c2dfd2c2dfd2c3dfd0c3e0d0c3e0d3cae4aca5beaeaabac2c0c5d0d0ced6d7d0d9d7d2 +d5d4d0c3bec8afa7bbcbc1ded0c5e1cdc0decfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd0c2dfd0c2dfd0c2dfd0c2df +cfc4e0cfc3e0cfc4e1cfcadec6c8c1a1ad7a99b03caecd37b3d337b4d336add0389dc23b +a0b46ac8c6c8cfc2dfd0c3e0cfc2dfcec0decfc3e0d0c3e0cfc3e0cfc2dfcfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc1ded0c2dfcfc3e0cfc4e0cdc6df +ccc8decac8dcc7c7dac0c4c77f8a6255692e455d29405a293b55263b5224495b28737f5f +b5b8b8cfc7e1d2c5e1d0c3e0cfc3e0cfc3e0cfc2dfcfc2dfcfc3e0cfc3e0cfc3e0cfc2df +cfc2dfcec0decec0decfc2dfd0c3e0d3c5e1d4c6e1d0c0ded1c1ded5c3dfdac5e0dec6e0 +e0c4dee0bdd9deb1d1ddaac9dda2c0d392adc37993b15d76a3485f9e3f529c3348992b3e +9b24339e1e24a51f21ae2122b52223bf2324c82426ce2626d02726d22826d92d26d32b26 +c92825d62c26cc2826cd2726cb2826bd2324dd514cf28c85f8a89df8a797f7a393f7a090 +f5998af18f80eb7e6fe66f60e15f51df4e3fdd4134dd342ade2e25e33025e53024e52e24 +e42f24e02e25dc2d26d92b26dc2d25df2e25e32f25e42f24e42f24e22e25da2c26c92625 +c6242ab52232a4273aa7485cbd7b8dd4aab9e0c4d5dcc7e0d1bedccebcdbd1c0ddd4c5e1 +d3c7e1cdc4dbcac3d8cac7dcd0cee4cac6e2cac5e1cac3e1ccc3e0cdc2dfcfc0ded1c0dd +d3c0ddd2c1decfc3e0cdc3e0cec3dfcec3df +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd1c1de +cfc2dfcdc3e0cac3e1cac6e2cac5e2cbc4e1cfc3e0d1c0ded4bddbd7bddbd6bfdcd7c2de +d4c5e1cdc6e2c7c8e4c1c8e5c5c9e5d2cbe5dabfdbdca6c7c67291ac3450a61e25b52323 +c52925c22625cc2a26be2624c22625c12625ab20229a1d28a4455fcb8da6e1bbd7ddc6df +d5c3dfd0c0ddd0bfddd1c0ded1c1ded0c0ddd1c1ded2c4e0d0c2dfd0c2dfcfc3e0cfc3e0 +cfc3e0cec3dfcec3dfcec3dfcec3dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd1c2df +d1c2dfd2c2dfd2c3dfd0c3e0d0c3e0d3cae4aca5beaeaabac2c0c5d0d0ced6d7d0d9d7d2 +d5d4d0c3bec8afa7bbcbc1ded0c5e1cdc0decfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd0c2dfd0c2dfd0c2dfd0c2df +cfc4e0cfc3e0cfc4e1cdc9dcc2c4bd9eaa7597af3baece37b5d336b3d337acd0389ec23b +a3b66ecac8cccfc3e0d1c4e0cec0decdbfdecfc2dfcfc3e0cfc3e0cfc2dfcfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc1ded0c3e0cec3dfccc3e0ccc6e0 +cbc9ddc9c9d7c2c7cdbac2b0899a4d738c396581375a773449662e4058284f622b849075 +c4c7cccfc7e2d1c4e0d0c3e0cfc3e0cfc3e0cfc2dfcfc2dfcfc3e0cfc3e0d3c5e1d1c4e0 +d0c3e0cfc2dfcec0decec0decfc2dfcfc3e0cfc4e0cac2e0c9c2dfc9c0dfcbbfddccbedc +cfbfddd3c0dddbc4dfdfc7e0dec0dcdebad7dfb7d6e0b4d1deadcbd7a2c0c58ba9ad6f8d +a055729f3f59a22e46a124359e1e2aa11e26ab1e27b5202cbe232ac02427c32425c22525 +c12424ce2c26ce2c26ce2c26c22625ba2323d63f32ed7269f39085f49689f59c8ef7a395 +f8a798f8a797f7a294f69b8ef48e82f17e71ed6f64ea5c53e74941e53c35e3342ce02f25 +db2e26dc2d26de2e25e02e25e32f25e42f24e62e24e62e24e52f24e32f25e02e25e42f27 +d72a29c32427ae21249e1f259c3139b15d65cf929ceabad1e3c8e0d1bcdbd0b9d9d4bedc +d9c4dfdac8ded5c6d9d0c5d9cec6dccdc6e0cbc6e1cac5e1cac3e0cdc2dfd0c0ddd2bfdd +d4bedcd3bfdcd0c2dfcec3e0cec3dfcec3df +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc2df +cec3dfcbc4e1cac5e1c9c6e2cac5e2cbc4e1cfc3e0d1c0ded7c2ded4bcdad6bedbd7c3df +d2c4e0c7c1dfbdc0e0bdc5e3cbcbe6e0cee5e5b8d5c17191a22a44a71e21b92223c52725 +c62625cd2a26c82725c42725be2624a72021951a23a0405dc98babe5c4ddd8c5e0d8c7e1 +d2c2dfd0c0ddd3c3dfd5c6e1d3c4e0d0c0ddcfbfddd0c2dfd0c2dfcfc3e0cfc3e0cfc3e0 +cfc3e0cec3dfcec3dfcec3dfcec3dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd1c2df +d1c2dfd2c2dfd2c3dfd0c3e0d0c3e0d3cae4aca5beaeaabac2c0c5d0d0ced6d7d0d9d7d2 +d5d4d0c3bec8afa7bbcbc1ded0c5e1cdc0decfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd0c2dfd0c2dfd0c2dfd0c2df +cfc4e0cfc3e0cfc4e1cdc9dcc2c4bd9ca97496ae3baece37b5d336b3d337aacf389ec23b +a4b772cbc9cdd1c4e0d3c5e1cfc2dfcdbfdecfc2dfcfc3e0cfc3e0cfc2dfcfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc2dfd0c3e0cec2dfccc2dfcbc6e1 +cbcaddc9cad0bfc5bdb0bc949db249a7c13ba9c5399ab63b7a983c5a7433606f2f989f8b +d4d3e1d0c7e2d1c4e0d0c3e0cfc3e0cfc3e0cfc2dfcfc2dfcfc3e0cfc3e0d1c4e0d1c4e0 +d1c4e0d0c3e0d0c3e0cfc3e0cfc2dfcec0decabfdecbc4e1cac7e3cac7e3cac5e2c8c1df +c6bfdec5beddc9beddcbc0ded2c6e1d5c7e2d5c6e1d7c6e0d9c6e0d8c5e0d8c1ddd3bcd9 +d4b3d2deaac7d791abbf6c88a141618e20428c1a35951b369f1f35a52132a41e25a61f21 +ad2122ac1f21b62423bd2624b12122bc2324d43228e44d42e95b56ec6661f0726df38079 +f38a82f4938bf69d93f7a499f8a99df8a89df69f95f59389f48379ef726ae66058dc4f45 +d53d33d42f2ada2a26e22c25e32f24e52f24e83024e83024e52f24e32f25e12e25e33025 +cb2726c42425c82b26bd2926a82121a02020ac3535bd6879d2a6c7d9c3dee2c7dfdebedb +dbb8d7e0bdd9e5c6dee0c5dfd4bdd8d4c3decfc6e1ccc7e2cbc5e1ccc3e0cfc2dfd0bfdd +d2bedcd1bedccfc2dfcdc3e0cdc3e0cdc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cec3e0cbc4e1cbc5e2cac5e1cac3e1cbc4e1cec3dfd2c3dfd6c5e0d1bedcd1bcdbd4c1de +d3c3dfcdc3e0cac5e2d0cbe5ddcce4e7bbd6ba698c9a253fa21e21bc2324cb2825cb2726 +cc2726d42c26c22625bc27249b1d1e89171ca14864ce94b5e3c3ddd9c7e1cabfddd4c5e1 +d1c1ded0c0ddd2c2dfd4c5e1d3c3dfcfc0decfc0ded3c4e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cec3dfcec3dfcec3dfcec3dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd1c2df +d1c2dfd2c2dfd2c3dfd0c3e0d0c3e0d3cae4aca5beaeaabac2c0c5d0d0ced6d7d0d9d7d2 +d5d4d0c3bec8afa7bbcbc1ded0c5e1cdc0decfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd0c2dfd0c2dfd0c2dfd0c2df +cfc4e0cfc4e0cfc6e1cfcaddc6c7c09eab7697af3baecf38b2d236aed137a6ce389bbf3b +a3b570cbc9ccd1c4e0d3c5e1cfc2dfcec0decfc2dfd0c3e0d0c3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc1ded1c4e0cec2dfcac0decac4e0 +cbcbddc7cbc9b9c4a5a9bb72abc640c1d949cbdc4dc7db4ab4cd4099ac3e919f5eb2b7ad +d1cee4d0c5e0d1c4e0d0c3e0cfc3e0cfc3e0cfc2dfcfc2dfcfc3e0cfc3e0cec0decfc2df +cfc3e0d0c3e0d1c4e0d3c5e1d1c4e0cfc3e0ccc3e0c6c0dfc4c1e0c7c4e1c9c6e2cbc6e3 +cbc6e3cac7e3cac7e3cbc8e3c4c1e0c4c0dfc6c2e0c9c4e1cac5e1c9c4e1c8c3e1c8c3e1 +cec3e0d9bfdbe2b9d6e4b7d3e5b6d2e5b1cfe0a2c4c67ea0a74f758d244a7e142d881729 +951f2c8d181b9d1f20aa25229d1e1fab1f21bc2324cd2726d72f2add3531e1403ce54844 +e7504dea5c57ee6c64f27870f4877ef5968df69c94f7a59df8aaa2f8a79ef69e95f59389 +f4877ef1726eec4e50eb4143e1322ed62a26d52926d72a26dc2d26df2f25dd2e25d12826 +d72c26d62b26ce2826cb2726cb2726c82625b723239d1e1f963448bb7f9ae9b2cef3c3da +ecbed8e1b7d5dbb6d5dcbedadbc5dfd3c3dfd0c5e0cfc6e1cec6e1cfc4e0d1c2dfd2bfdd +d1bedcd0bfdccfc2dfcdc3e0cdc3e0cdc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cec3e0 +cec3e0cec3e0cec3dfcec3dfcec3dfcdc2dfccc3e0cbc3e0ccc3e0cfc5e1cec2dfcdc0de +d0c2dfd8c7e1dbc9e2d9c1ddd8aacac873949a1e399b1d1fb72623c72725cb2726d12826 +d92b26d12826bd2324a21e208c19209a4d66c494b3ddc4ded9c8e2c9beddd2c9e3cfc3e0 +cebfddccbddccebfddcfc1ded0c2dfcfc3e0d0c3e0d3c5e1cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd1c2df +d1c2dfd2c2dfd2c3dfd0c3e0d0c3e0d3cae4aca5beaeaabac2c0c5d0d0ced6d7d0d9d7d2 +d5d4d0c3bec8afa7bbcbc1ded0c5e1cdc0decfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd0c2dfd0c2dfd0c2dfd0c2df +cfc4e0cfc4e0cfc6e1cfcaddc5c7c09eab7496ad3caece37b1d236add037a5cc399bbf3c +a4b774cac8cdd0c3e0d3c5e1cfc3e0cfc2dfd0c3e0d1c4e0d0c3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc1decfc4e0ccc1dfc9c0dfcac5e1 +cbccdfc5ccc0b4c48ca3bb53b3d13fc2d83dc4d937c4d93abed748b5c762b2bd8bc8c8c9 +cbc6e2d0c5e1d1c4e0d0c3e0cfc3e0cfc3e0cfc2dfcfc2dfcfc3e0cfc3e0cec0decfc2df +cfc3e0cfc3e0d0c3e0d0c3e0d1c4e0d0c3e0cfc4e0d1c6e1d0c6e2cec5e1cbc3e0c9c2e0 +c9c2e0c9c3e0c9c3e0c9c3e0cac5e1cac5e1cac5e1cac5e2cac5e2c9c6e3cbc8e3cdcbe5 +d1cbe5d4c9e3d6c6e1d5c5e0d5c6e0d9c8e2e0c9e1e1c1dcdeb5d4dba9cad9a2c2d498b3 +bd7990944355811e23881818891719a21e20c32925d32d26d62a26dd2c26dd2d26dd2d26 +dd2e28df312ce23833e33f3de74945ea5552ee6560f37871f48a83f5948cf69b93f7a096 +f7a499f7a39af59b95f38d87ef756be15e52d74a3bd1392ad02e26cf2c26d42b26dd3225 +dd2e25dd2d25dd2d25de2e25dd2d25dd2d25db2d26d22a26b12222a8252bb84b5dcf7c94 +e2a7c6e5c0dadbc4dfcfc0dec4bcdcccc4e1cec3e0d2c3dfd3c2dfd5c1ddd4c0ddd4c0dd +d3c0ddd1c0decfc2dfcec3dfcdc3e0cdc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc4e0d0c2dfd1c1ded1c1ded1c1decfc3e0cbc4e1c8c5e2c1c3e1cdcde7cdcbe5c8bfdc +cfbedbdec3dee2bdd9d6a1c4c373959e263bb4222eb72423ba2324c42625cc2826cf2926 +ce2826c62625ab1f21931a1f9f4c65bf91aed2bcdad0c5e1c8c1dfcac1dfd1c6e2d1c4e0 +cfc3e0cfc1decfc1ded0c2dfd1c4e0d1c4e0cfc2dfcbbeddcfc2dfcfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd1c2df +d1c2dfd2c2dfd2c3dfd0c3e0d0c3e0d3cae4aca5beaeaabac2c0c5d0d0ced6d7d0d9d7d2 +d5d4d0c3bec8afa7bbcbc1ded0c5e1cdc0decfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd0c2dfd0c2dfd0c2dfd0c2df +cfc4e0cfc4e0cfc6e1cfcadcc3c4bc9da87293ab3baecd37b0d236add037a6cd389fc13d +a6b877c9c7cccfc3e0d3c5e1d0c3e0cfc3e0d1c4e0d3c5e1d1c4e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cec0decfc4e0ccc2dfc9c0dfc9c5e1 +caccdec4cdb5b1c4749fbb3bbad53ec8db3ac2d835bed635b5d03eaebe61b1ba94cbcbd5 +d0c9e4cfc4e1d1c4e0d0c3e0cfc3e0cfc3e0cfc2dfcfc2dfcfc3e0cfc3e0d1c4e0d0c3e0 +d0c3e0cfc3e0cfc2dfcfc2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc4e0d2c5e1 +d4c6e1d4c7e2d0c6e2cdc3e0cec5e1cec5e1cbc4e1cbc4e0cac4e0cac5e1cac5e1cac6e2 +c9c4e1cbc6e1cbc7e2c9c7e3c6c7e3c6c7e3cac7e2cfc4e1d5c2dedac1ddddbfdbdbb8d7 +d4aecacda2b6cc95a2d3878ac5605cb12f27be2824ce2b26d82b26dd2d26dd2d26de2e25 +e02e25e02e25e12e25e02e25de2e25dd3128e03730e2443de3524ce45b55e66a61ec786d +f2867bf59186f69b91f69e94f69f94f39c8ff09083ef7e6eea6856e1513cda4029d02e26 +d62e26dd2f25e02f25e32f24e52f24e52f24e42f24df2e25d62c26c12424ad2322a9303c +bb657cd59cbae4c3ddddcbe3cec0decfc3e0cfc2dfd2c1ded3c0ddd4c1ddd4c1ddd4c1dd +d2c1ded1c2dfd0c2dfcec3dfcec3dfcdc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc2df +cfc1ded2bfddd5c1ddd7c2ded4c2ded2c3dfcdc6e2c5c8e4b9c5e2c4d1eac7cde6c8c2db +d6bfdae8bcd7e2a2c4c66d93a93050ae2025bd2324c62725c82925c52725c42425c52725 +c42625b320239a1c20a1445fba85a5cdb6d5d0c7e3c8c6e3c4c4e1ccc4e1d1c5e1d0c3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc4e0cfc4e0cec2dfccc0decfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd2c4e0 +d1c2dfd2c2dfd3c3dfcfc2dfd3c5e1d4cbe5a6a0b9aeaabac3c1c7d0cfccd6d6cfd9d7d1 +d4d3d0c3bec8afa7bbccc3dfd1c5e1cec2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd0c2dfd0c2dfd0c2dfd0c2df +cfc4e0cfc4e0cfc6e1d0ccddc6c7bf98a46d95ad3cadcc38aed137abd037a3cb39a0c23f +abbd7dc9c8cdcfc2dfd1c4e0d0c3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc2dfccbedccfc3e0cac1dfc9c4e1cccae4 +c5cbd6b6c39da8c056a5c839bdd740c4d938c2d835b8d435aec839adba6dbdc1aed1cee3 +ccc4e1cfc4e0cfc4e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c3e0d0c3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd1c3dfd2c3dfd3c3dfd3c4dfd4c4df +d5c6e0d5c6e0d3c5e0d2c4e0d2c4e0d2c4e0d1c3dfd0c2dfd0c3e0d0c3e0d0c3e0d0c2df +cec3dfcbc4e1c9c6e3c4c8e4bfc9e5becae6bfc8e5c5c6e3ccc3e0d1c3dfd4c3dfd5c2de +d6c1dedcc5dde1c0d2f2b8c2e08c90be4441bd2b24ca2926d32a26d92b26da2b26dd2d25 +df2e25e12e25e32f25e32f25e22e25e02e25df2e25de2e25dc2f27d9322bda362fdc4036 +df483ee5544eed6762f0726df4847bf59187f5988cf6998af49482f18d79ee806be86850 +e95c45e24631dd3525dd2e25df2e25e32f25e42f24e32f24dd2d25cd2826c12624b62623 +b0333ab55164c27892d7a1c2e3c0dbdac2ddd4c1ded1c1ded0c0ded1c2dfd3c4e0d4c6e0 +d5c7e1d3c6e1d1c3dfd1c3e0d1c5e1d0c5e1 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d1c3e0 +d2c1ded4bedcd6bddbd6bedbd6bfdcd1c2decac5e1c1c7e4bdcee7b7c9dec1caded5ccdf +e1bfd5da9bb5c8688ab5355ab01f2ec32325ce2826cd2926c92925c52825bf2524b72423 +ac2021a01f25b14f6ec182a5d0b0d2d3c5e1cbc9e4c5c6e3c6c5e2ccc4e1d0c3e0cfc3e0 +cec3e0cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd3c3df +d2c3dfd2c2dfd3c4e0cec0ded3c5e1d5cce5a39bb5ada9b9c3c1c7d0cfccd5d6cfd8d7d1 +d4d3d0c3bec8afa7bbccc3dfd1c6e1cec2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd0c2dfd0c2dfd0c2dfd0c2df +cfc4e0cfc4e0cfc6e1d0ccddc6c7bf96a26b95ad3caccb37add137a9cf38a0c93a9fc140 +adbf81cac9cdcec0ded0c3e0d0c3e0cfc3e0cfc2dfcfc2dfcfc3e0d0c3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc2dfcdbfddcfc3e0cac3e0ccc8e2cacae3 +bfc6c8acbd87a5c340add038c0d83ec0d739bfd736b3d335abc340b0bd82c7c8c4d2cde6 +c9c0decec3dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d1c3dfd2c4dfd3c4dfd3c4dfd3c3de +d4c3ded4c3ded3c3dfd3c3dfd3c3dfd3c2dfd3c2dfd3c1ded4c1ded3c1ded3c0ddd3c0dd +d2c1decfc3e0cbc4e1c6c7e3c0c9e5becbe6bfc9e6c3c7e4c9c3e0cdc0decfc1decfc2df +d0c4e0d5c8e2dac3dbf4c3d3dd8f9bbd464dbc2928c72825ce2926d42b26d62a26d92b26 +dd2d25de2e25e02e25e32f25e32f25e12e25e12e25e02e25de2e25dd2d26da2d26da2d26 +da2c26dd2f27e3362fe43c35e64a42e95b53eb6d61f07c6df38a7af59381f69883f59482 +f48d7cef7e6eea6c61e85750e7453ce5372de02f25dd2d26da2f25d22b26cf2926ca2926 +bc2524ae2322ac2f3bbb5772d082a5e1aed0dcbad8d8c2ded2c3dfcec2dfcbc2e0ccc5e1 +cec7e0cec4ded0c2dfd2c2dfd1c3dfd0c3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd2c3df +d5c3dfd7bedbd3b9d9d3b9d9d6bedbd3c3dfc9c4e1c0c6e2c1d0e7b6c6d8c8c8d8dcc8d6 +d8a5b8be667da92c44af1f2cc6242acb2726da2e26cf2926c52625c22725b92424a42121 +9820279f435cd59cbdd7b4d5d6c5e0d1c9e4cac5e2c5c2e1c8c3e1cdc6e1cec3dfcec3e0 +ccc3e0cdc3e0cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd3c3df +d2c3dfd2c2dfd3c4e0cdbfded3c5e1d4cbe5a29bb4aca7b7c2c0c5d0cfccd5d6cfd8d7d1 +d4d3d0c3bec8afa7bbccc3dfd1c6e1cec2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd0c2dfd0c2dfd0c2dfd0c2df +cfc4e0d0c4e0cfc6e1d0cbdcc3c4bc94a06a94ac3cabca37add038a9cf389fc93a9dc03f +acbd7fcac8cecec0ded0c3e0d0c3e0cfc3e0cfc2dfcfc2dfcfc3e0d0c3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc2dfcec0decec2dfcec7e2cdcbe1c4c6d3 +b7c1b1a9be74aaca3bb2d237c1d840bfd73eb8d437adce37acc153b9c19bcbc9d3d1c8e3 +cbbfddcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc4e0d0c5e1d0c5e0d0c5e0d0c5e0d0c4df +d1c3dfd2c3dfd2c3dfd2c3dfd2c2dfd2c2dfd2c1ded2c1ded3c0ddd3c0ddd5c0dcd5c0dc +d5c0dcd4c0ddd2c1decdc3e0c8c7e3c3c9e4c3c9e5c8c5e2cdc2dfcfbfddcdbddcccbedc +ccc0decec3e0d4c1ddf3c5dacf7e93bb3c4ebe252ac82625cf2926d32a26d42a26d52a26 +d72b26d92b26d92b26da2d25db2d26dc2d25dd2d25dd2d25dd2d25de2e25df2e25e02e25 +e02e25e02e25de2e25dd2d26da2d26da2f26df372be44537ea5448ee6155ed6c60f07e71 +f2857bf48d85f59089f48a85f37d78ef6a67e75653df493ddc3c28d33026cf2a26d12926 +cd2926c62625c02424ba2432b93453cd6a91db97bfe3b7d5ddc2ddd2c1decac1dfc8c4e1 +cac8e3cac6e1d1c3e0d2c1ded0c0ddcfbfdd +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc0decfbfdd +d5c2ded8c0dcd5bad9d6bbdad7c0ddd6c5e0d0c6e2c6c6e1c0c6dccecee0d8c8d4cda4af +b86d7aa73341aa1f21bc2224cd2726cf2826cc2726cb2726c82725be2624a72021961f2c +9f4c65be8bacdcc3ded7c9e3d4c9e3ccc2dfc9bfdecabfded0c5e0d0c8e2cdc6dfccc4e1 +cbc4e1ccc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cdc3e0cec3dfcec3dfcfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd3c3df +d1c2dfd1c2dfd3c3dfccbfddd1c4e0d4cae4a299b3aba6b6c2c0c5d0cfccd5d6cfd8d7d1 +d4d3d0c3bec8afa7bbccc3dfd1c6e1cec2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd0c2dfcfc0ded0c2dfd0c2df +cfc4e0d0c4e0cfc6e0d0cbdbc3c3bb94a06993ab3ca9c938aacf38a8cf389ec83a9bbc3f +a9bb7fcac8cecec0ded0c3e0d0c3e0cfc3e0cfc2dfcfc2dfcfc3e0d0c3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc2dfcdc2dfcbc0ded0cbe4cccdd7bbc1bb +aab992a6c05eadd03ab6d439c1d841bdd743afd137a7c438afbf6dc2c6b5cfcae0cdc4e0 +ccbfddcfc2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cec3e0ccc5e1cbc5e1cbc5e1ccc5e1ccc5e1 +ccc4e1cdc3e0cdc3e0cfc3e0cfc2dfd0c2dfd0c0ded1c1ded1c0ded1bfddd3c0ddd3c0dd +d4bfdcd7bcdad9bcdad5c0dccfc4e0cbc6e1cac5e1cec3e0d1bfddd2bddbd0bcdbcebcdb +cdbfddcbbfddd2bedcf4c7dcc56d8abd354ec2252bcb2626d12826d32a26d22a26d12826 +cf2826ce2926cd2926cc2826ce2926d12926d32b26d42a26d62b26da2d25dd2d25e02e25 +e12e25e22e25e02e25de2e25de2e25dd2d26de2e25df2e25df2e25de2e25de3127e13730 +e7443eec5c59ec706cef817bef8c86f1928af3938af38c7fe66b56de563cd73d2ada3125 +e03125e33025df2e25d72926cb252baf202ec4536ed788a3e1abc7debcd8d6c6e0d0cae4 +cdcde7cecce6d4c5e1d5c2ded3c1ded2c0dd +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc0decebcdb +d1bedcd6c1ddd8c1ddd7c0ddd5c0dcd3c1ded2c4e0d2c4e0cfc1d9ebd3e3ddb4beb16a74 +9a292fa62021c12525d12726cc2726d12b26bc2324c52725c32625a92021951c26a04663 +c492b3dcc6e0cbc2e0c8c4e1c9c2dfc9bddcccbddcd0c0ddd4c6e1d3cae4cdc7e1ccc5e1 +cbc4e1cbc4e1cbc4e1ccc4e1cdc3e0cdc3e0cdc3e0cdc3e0cec3dfcec3dfcfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd2c4e0 +d1c2dfd1c1ded2c2dfccbfddd0c3e0d3cae4a199b2a9a5b6c1c0c5d0cfccd5d6cfd8d7d1 +d4d3d0c3bec8afa7bbccc3dfd1c6e1cec2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd0c2dfcfc0ded0c2dfd0c2df +d0c4e0d0c4e0cfc6e0d0cbdbc4c6bb97a26b93ab3ca7c738a9cf38a7ce389dc73a98ba3e +a7b87ccac7cecec0ded0c3e0d0c3e0cfc3e0cfc2dfcfc2dfcfc3e0d0c3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc2dfccbfddc9bfded1cee3cccecab3bda0 +a2b670a4c447b2d239b8d438bfd740b9d646a9ca39a3bc4bb3c08acbcdcad0cbe4cbc0de +ccbfddcfc2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cdc3e0cac3e1cac6e2cac5e2cac5e1cac5e1 +cac5e1cac3e1cbc3e0ccc3e0ccc2dfcdc2dfcec2dfcfc2dfcfc0ded0c0ddd0bfddd0bfdd +d3bedcd9bbd9dcbad8d9bedbd2c2dfcfc4e1cec3e0d1c2dfd6bedbd6bbdad4bcdbd1bedc +d0c0deccbfddd2bfdcf5cadebf6483bd334ec5252bcb2626cd2826cd2826cb2726c92825 +c72725c52725c22725c22725c42725c82825cb2925cd2926d32a26d62b26da2d25de2e25 +e02e25dd2d25d92b26d92b26dd2d26e12e25e32f24e32f24e22e25de2e25dc2d26d92b26 +d32926ce2826ce2e2ad13e37d8534de1665fea756cf28072f49284f59484f48a7ef37166 +ef5046e83929df2f25dc2e25d72a26d32e2cad2022a62630c46678e2a2b7eabfd8d9c1dc +c9bbdaccc0ded6c1ded7c2ded6c1ded5c2de +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d2c2dfd3c2df +d1bfddd1c0ddd3c3dfd0c0ddc9badac8b8d8d1bedbe0c6dfefcce0dea7bdbd6b7ca4343b +a42020b32223c72725cf2826cb2726c52725c12824bf2824a51f2090181f9d3e5fc78eb1 +dec5dfd2c9e4c1c3e1c5c4e1cac3e1cfc3e0d3c1ded5c3dfd6c5e0d0c7e1cac3e0cbc5e2 +cbc5e2cbc5e2cbc5e2cbc5e2cbc4e1cbc4e1cdc3e0cdc3e0cec3dfcec3dfcfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0d0c2dfd0c2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd2c4e0 +d1c2dfd1c1ded2c2dfccbfddd0c3e0d3cae4a199b2aba6b6c2c0c5d0cfccd5d6cfd8d7d1 +d4d3d0c3bec8afa7bbccc3dfd1c6e1cec2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfcfc0decfc0ded0c2dfd0c2df +d0c5e1d0c4e0cfc6e0d1cddcc7c9be9aa66f95ad3ca6c638a8cf38a7ce389dc73a96b83e +a4b57bcac7cfcec0ded0c3e0d0c3e0cfc3e0cfc2dfcfc2dfcfc3e0d0c3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc2dfcbbfddcac1dfd1cedbc8ccbab0bf83 +a3be53aacc3bb5d43bb9d538bcd63bb3d342a3c248a5b86ebac3a7cecfd9d2cae4cbbedd +cfc1decfc2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cdc3e0cac3e1c9c4e1c9c4e1c9c4e1c9c4e1 +c9c4e1c9c4e1c9c4e1cac3e0cbc3e0cbc3e0ccc3e0ccc2dfcdc2dfcdc2dfcfc2dfcfc2df +d1bfddd7bcdadab9d8d9bbd9d2c1decfc4e1cfc4e1d2c1ded7bcdad8bbd9d6bcdad3c0dd +d1c1decbc2dfd3c1def5cde0be647fbd3148c32428c62525c52625c12624c02624be2724 +bc2624bb2524bb2724bc2624bd2724c12824c42725c82725cc2726d32a26d62b26da2d25 +db2d26d62b26cd2826c82725c82625cc2726ce2826d22826d72b26dc2d26dd2e26e03129 +dd2d26d52926cd2726cb2626c92625cb2626cf2726d72b26e93624ef432ff1584df3746e +f48e8af59792f4877eef6355dd3a26c52625d63126cb2c26b12223ab2a36c5647deaa8c7 +f2cde0e8cbe1dabcdad9bedbd9bfdcd7c1dd +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d3c3dfd6c5e0 +d0bfdcc9beddcac2e0c9c2e0c9c0ded0c0ddddc3ddebbfd8e3a1c1ba58759e1e2aac1f22 +c12725ca2826c82625c82625c82725bb2424ba2a249d1e1f8d171da64a6bcd91b7ddbeda +d4c5e1c4c0dfc7c8e4c9c9e4cfc7e2d3c5e1d3c4e0d3c2dfd2c3dfd1c3e0d0c6e2cbc4e1 +cbc5e2cbc5e2cbc5e2cbc5e2cbc4e1cbc4e1cdc3e0cdc3e0cec3dfcec3dfcfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0d0c2dfd0c2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd1c3df +d0c0ded0c0ddd2c3dfccbfddd1c4e0d4cbe4a29bb4aca7b8c3c1c6d0cfccd5d6cfd8d7d1 +d4d3d0c3bec8afa7bbccc3dfd1c6e1cec2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfcfc0decfc0ded0c2dfd0c2df +d0c5e1d0c4e0cfc6e0d0ceddc8cac19aa67094ac3ca4c439a6cc38a6ce389dc73a95b73e +a3b47acac7cfcec0ded0c3e0d0c3e0cfc3e0cfc2dfcfc2dfcfc3e0d0c3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cdc2dfcec7e1cdcad0bfc7a7b0c36c +acca3fb3d33abad539b9d539b4d337aace3aa3be60aebc96c1c7c5cfcce1cfc6e1cbbedd +cfc2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cec3dfcbc3e0cac3e0cac2e0cbc2e0cbc3e0 +cbc3e0cbc3e0cbc3e0cbc3e0cbc3e0cbc3e0ccc3e0cdc2dfcdc3e0cdc3e0cdc3e0cdc3e0 +d0c0ded4bddbd7bbd9d4bddbcfc4e0cac5e1cbc6e2d1c3e0d7bedbd9bbd9d5bddbd2bfdc +cec3dfc7c5e2cec5e0efcaddc27082b92f3fbc2324bf2424bd2324bb2424bb2424b92423 +b82423b92423b92423ba2423bc2424bf2524c12624c22425c52625c92725cc2726cf2826 +ce2826cd2926ce2b26c92925c72825c42625c42425c52625c52625c62625c82625c82625 +cc2726d22a26d62a26d92b26dd2d26dd2d26de2e25dd2d26d62b26e02f25dd3225d62f26 +ce2f26d33c2be55844f37663f48c7af6a292f27160e1402dca2826b82323b22733b83e58 +cc698be199bbe3b7d3dfc0dadec3deddc4de +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d1c1ded2c1de +d1c1dec8c1dfc2c2e1c7c8e4cfcbe5d6c7e1d9b8d7d598bdba5880ae274aac1e22bd2224 +ce2826d32c26cc2826c72725c12624b52223a62121971f26a85067cc92b3debedad7c4df +cbbddccdc4e1ccc4e1ccc4e1cdc4e0cec4e0cfc3e0cfc1ded0c0ded2c2dfd3c4e0cbc4e1 +cac5e1cbc5e2cbc5e2cbc5e2cbc5e2cbc5e2cbc4e1cdc3e0cec3dfcec3dfcfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0d0c2dfd0c2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd1c2df +cfc0decfc0ded2c3dfcdbfded3c5e1d5cce5a49db6aeaabac4c2c8d0cfccd5d6cfd8d7d1 +d4d3d0c3bec8afa7bbccc3dfd1c6e1cec2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfcfc0decfc0ded0c2dfd0c2df +d0c5e1d0c5e1cfc6dfd1cddbc6c8bd98a46d91a93b9fc03aa2ca39a5ce399ec73a97b840 +a3b57ccac7cfcec0ded0c3e0d0c3e0cfc3e0cfc2dfcfc2dfcfc3e0d0c3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cec3e0d0c8dec3c3c3b1bb91acc355 +b0d039b8d439bbd638bad538acd0379ec73aa5bd74b9c5b6c8cbdacbcae3cbc3e0cec0de +d0c2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc2dfd0c2dfd0c0ded0c0ded0c2df +d0c2dfcfc2dfcfc2dfcfc3e0cfc3e0cfc4e0cec3e0cec3e0cec3e0cec3e0cec4e0cec3e0 +d0c2dfd1bfddd2bddbcfc1dec6c6e3c0cae4c2cbe3cac8e3d3c2dfd5bfdcd2bedccdc0de +c8c5e2c2cbe6c7c8e1e4c8d6c7818ab33139b42123ba2323ba2323b92323ba2323bc2324 +bd2324c02424c02424c12424c12424c12424c12424c02424bc2324bc2324bc2324bc2324 +bc2324bd2324bf2424c22425c52625c52725c72725c72725c52725c42625c42625c72725 +c92825cc2826ce2826cf2826d32a26d32a26d22a26ce2826cb2825cb2726cd2726c92825 +c72725c72725cb2926d43326d93d29c73127e04737ee635eee7271eb6c6ee15056cf3238 +c52931ba394bcc8ba7caa3c2d4b8d6dec4de +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc0decfbddc +d4c5e1cdc6e2c1bfdfc9c6e3d6cce5d8bedbcd98b9bb6286a72546b72230c52425d22826 +d42a26cc2726c22425bb2424b42623a01e20941c28ab556dce95afdcb9d7d7c3dfcfc1de +cdc2dfcfc4e1cfc3e0cfc3e0cdc3e0ccc3e0cdc4e0ccc3e0cec0ded1c0ddd1c1decdc3e0 +cbc5e2cac3e1cbc4e1cbc4e1cbc4e1cbc4e1cbc4e1cdc3e0cec3dfcec3dfcfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2df +cfc0decfc0ded2c4e0cdbfded2c7e2d7cde6a79eb8b1acbbc5c3c6ced0ccd2d6d1d4d8d3 +d2d5d3c3bdc9b0a6baccc3dfd0c6e2cdc2dfcfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc2dfcfc0decfc0ded0c2dfd0c2dfd0c3e0 +d0c5e1d0c5e1cfc6e1d0cbdac4c6bb94a06b8ca63b9bba3b9fc83aa5cc399fc83a99ba40 +a5b67ac9c7cfcdc0decfc4e0d0c3e0cfc4e0cfc3e0cfc2dfcfc3e0d0c3e0d0c2dfcfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cec3e0cdc6e0cecbd4b8bca9a3b26da6c23b +b2d236bad537bbd638bad53ba8cf389abf3ba9bc89c1cacecbcce4cac5e1c9c0dfcec3df +d1c4e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0 +cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0cfc3e0d0c2dfd1c1ded2c0ddd2c0ddd2c0ddd2c0dd +d1c1ded1c1ded1c2dfd1c2dfd0c2dfd0c2dfcfc4e0cfc4e0d0c4e0cfc4e1cfc4e1cfc4e1 +cfc3e0d1c0ded0bfddccc3e0c3c7e4bfcae5bfcbe4c6c8e2cfc4e0d1c1decfc1decac3e0 +c7c9e5c5cee8c9cae1dfc5d1cb8e98aa363daa2021b12122b42122b52123b72323b82323 +bb2324bc2324be2424be2424be2424bc2324ba2323b72323b32122b12122ae2122ab2021 +ad2322b12222b72323bc2324bc2324bb2324ba2323b92323b92323b82323b82323b82323 +ba2323bc2424bf2424c22425c42425c52625c52625c12624bc2324b52223ba2323c12624 +c72825c82825c52725c42625c42725be2624c12b25c6352fc83e3bd0413fd73e3ddd3d3b +e34442d9535b9a4b68a17494bd9abcd7b8d7 +cec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2df +cec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2df +cec2dfcec2dfcec2dfcec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec2dfcec2dfcec2df +cec2dfcdc2dfcdc0decec3dfcfc4e0cfc4e0cfc3e0cec3dfcec3dfcfc3e0cfc1decebedd +d1c3dfcec4e0cabfddd2c0ddd6b8d4cd97b1b66078a52c3db32227c22325d22826d92b26 +d12826c52725bb2524ad25229c221f892032ad6c89ce9ebdd8b6d5d6c0ddd1c1decfc2df +cfc3e0cfc4e0d0c2dfcfc2dfcec2dfcdc3e0ccc3e0cdc2dfcec0ded0c0ddd0c0decdc2df +cbc3e0cbc3e0ccc3e0ccc3e0ccc3e0ccc3e0ccc3e0cdc2dfcdc2dfcdc2dfcec2dfcec2df +cec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2df +cec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec3dfcdc2df +cfc4e0cfc4e1cec3dfcabfded1c7e2d7cce5b0a4bcb5abb6c2c0c2c9d2cccbdad3ccdcda +cbd4d7c8c0ccb7a9becbc0deccc4e1cac1dfcdc2dfcec2dfcec2dfcec2dfcec2dfcec2df +cec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2df +cec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2df +cec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2df +cec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2df +cec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2df +cec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2df +cec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2df +cec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2df +cec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcfc1decfc0decfc1decfc2dfcfc3e0d0c4e0 +d0c4e0cfc4e0cdc6e0cecbdac3c6bc99a675879f3b98b63ba1c73aa1c9399dc63b96ba3d +a0b574c6c7cecec3dfcec4e0cec3dfcfc4e0d0c4e0cfc2dfcfc2dfd0c2dfcfbfddcfc1de +cfc2dfcfc2dfcec2dfcdc2dfcdc2dfccc3e0cbc4e0cac8dacacfc2a8b67da0b84badcf39 +b9d537bad537b8d53ab6d4409ac23ba5c15eb9c7acc8cce0cac7e3c8c1dfc9c0dfcfc4e1 +d1c6e1cec3dfcec3dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2df +cec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcfc2dfd0c0ded1c1ded1c1ded1c1ded1c1de +d1c1ded1c1ded0c0ded0c2dfcfc2dfcfc2dfcfc3e0cfc3e0cfc3e0cfc3e0d0c4e0cfc3e0 +cfc3e0d0c0ddd0c0ddccc1dfc9c5e2c6c7e3c6c7e3c9c6e2ccc4e1cdc2dfcbc2e0c8c3e0 +cac7e3cdcde6ccc4dce2c3d6d099aaa03f539b1d29a41e21a81f21ab1f21ad2021ad2021 +ae2022af2022b02122af2022b02122b12122ab1f21aa1f21aa2021a41e20a11f20a11f20 +a21f20a61f20ab1f21af2022ae2022ab1f21aa1f21aa1f21aa1f21ab2021ab2021aa2021 +aa2021ab2021ab2021ad2121ad2021ad2021ae2122ab2021a82021a61f20aa2021b02322 +b32323b32323b12222ad2121aa2021a92221a72121a52121a62221a92424b12729bb2c2f +c6383bbf4551853353814c72986d90b088aa +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcec3e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfccc1decbc0decdc2dfcfc4e1cfc4e0cdc2dfcbc0decdc2dfcdc2dfcfc3e0cdc0de +cbbddcd0c3e0d9c7e1d8b9d8c693adb06075a2303aa62121c02525d32b26d72b26cf2826 +c82625be2524af24229b211f88222d965d7cccb3d4e0cae2d2c0ddcfbfddcfc2dfcfc3e0 +cdbfddd1c4e0cfc2dfcfc2dfcfc2dfcec2dfcec3dfcec2dfcfc2dfcfc1decfc1decdc2df +ccc2dfccc3e0ccc3e0ccc3e0ccc3e0ccc3e0ccc3e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfccc3e0c9c0df +cbc4e1d0c7e2ccc3e0c9c0ddd0c7e3d4c9e3b5a3bab7a7b2c3bfbec8d1cac5d8d3c5dbdd +c4d1dbccbecbbaa4bbc8bcdac9c3e0c9c2e0ccc3e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc0decec0decec0decfc2dfd0c3e0d0c4df +cfc4e0cec3e0ccc5e1cecadcc5c7bfa0ac7f81993a97b33ba1c53a9ec63a9bc43b95ba3c +9db26ac1c3caccc3e0cfc5e1ccc3e0d0c5e1d0c4dfcfc1ded0c1ded1c3dfcfbfddcebedd +cfc1decfc2dfcec0decbc0dec9c0dfcac3e0cbc7e0c6cbcebccaa6a1b75aa6c53ab5d33a +bcd637b9d537b5d43baed03f99b746b2c68bc8cfc8cacce4c8c3e0c8bfdeccc2dfd0c7e1 +d0c7e1cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcec2dfcfc1decfc1decfc1decfc1decfc1de +cfc1decfc1decfc1decfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc3e0cfc2df +cfc2dfd0c0ded0c0ddcfc1decec2dfccc3e0ccc3e0cac3e0cac3e0c9c3e0c9c4e1c9c4e1 +cac3e1d3c8e2cdbbd7e8c6dcd9a6c09b4d6e871f3b8f19219a1c1fa01d1f9f1d1f9d1d1f +9d1d1f9d1d1f9b1d1f9b1c1e9b1c1f9b1d1f961b1d961b1d981c1e951a1d921a1c921a1c +931a1d951c1d971b1e9a1c1e991c1e961b1d951b1d931a1c931a1c941b1d941b1d941b1d +941c1d951c1d931c1d91191c8f181b8f181b91181c931a1c931c1d961d1e9a201f9d2320 +a02622a22925a028279f2a299d292ba03137a43b42aa424dae4957b14c5bb65160ba5666 +c15f70be697fb27595a9799cad80a4bb8fb3 +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcec3e0cec4e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfccc1deccc1decdc2dfcfc4e0cdc2dfcbc0decbc0decbc0deccc1deccc2dfcbc0de +c3b8dad0c3e0ddcae2cdaccaaa7188923848992225af2522bb2424da3226d42a26c22425 +bd2324b022229b1f1f8d1c20924559c09fc0d6cae4d9cde5cfc3e0cfc2dfd0c3e0cdbfde +c9bddcd3c5e1cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfccc3e0c7bedd +c8c0decec5e1cdc4e0ccc5e1cfc7e2d4c7e2b49db4bea6aecec1bed0d1c8cbd4cec9d6da +cdd2dbd0b8c5b699b0c6b8d7ccc6e2cbc5e2cbc2e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc0decec0decec0decfc3e0d0c4dfd0c4df +cec4e0cdc2dfccc4e0cdcaddc7c8c3a3ae8583983993b03c9fc33a9fc53a9cc43b93b93d +9bb162bdc0c2cac3e0cfc5e0ccc3e0d0c5e1d1c3dfd0c1ded0c1ded2c4e0d1c1decebedc +cebeddcfc2dfcec2dfc9bfdec8bfdecbc6e1cdcfdfc2cbbea8bc7fa2bf4cadcd3bb3d337 +b7d437b7d438b1d13ba3c33ca4b96eb9c6a9c7ced5cacae4c9c3e0c9c0dfcdc2dfd0c5e0 +cfc4dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc1decfc1decfc1ded0c0ddcfc1decfc1decdc2dfcac2e0c9c3e0ccc6e2ccc5e2 +cbc2e0d3c4e0ceb7d6e8c6dee6b9d4a6688b7b264876102484151a891619891619871618 +8615188515178415178414178114167f14157f14157b12147d121581141a7e14177a1114 +7c131680161980161981171982181b821a1c831d1e83202285232887262b882931892a37 +8f323f953b4a963d4e953d4f943f509844559c4a5ba25161a45363a95866ac5d6daf6474 +b46979b76e7eb77182b77386b77489bc7c93c1839bc78ca5ce95add39bb5d9a2bddeaac6 +e6b3cfeabad4e8c2dbe5c0dae4c0dbe9c7de +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcec3e0cec4e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcec3dfcec3dfccc1decabfdecbc0decbc0decbc2dfcbc2e0c9c2df +c5beddc4bddcc0b2d1b399b3a376889a545ea03d40ae322fb52623c22725c12424bd2324 +b122229d1e1f931f20a24755c3889ddcc1dcd7cbe4cfc3e0c9bddccfc2dfd1c4e0ccbfdd +c9bddcd3c5e1cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcbbfdd +ccc0ded0c5e1cfc7e2cfc8e3cec8e3d7cbe4b79bb2c9a8b1dcc2c1dfcfc9dbd3cedbd3d9 +e2d4dfd9b5c0b993a9cbb8d6d1cae4cdc7e3cbc2e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc0decec0decfc1decfc3e0d0c4dfd0c3e0 +cfc3e0cdc2dfcbc3e0cdc9dec9c9c7a9b28d84983e8eab3c9cbf3b9dc43b9bc43b93b93d +9bb058b8bcb5c9c3dfcfc5e0ccc3e0cfc4e0d0c3e0d0c2dfd0c1ded3c4e0d2c3dfcdbddc +ccbddccfc0decec2dfcabfdec9c0deccc6e1cdcfd2b8c4a098b15aa8c649b3d342b3d338 +b4d336b4d337acce3a9cb947aec193bfc9c3c8cbddcac8e3cac6e1cbc4e0cfc5e0cfc3e0 +cdbfddcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc3e0cfc2dfcfc1decfc1decfc1decfc1decdc2dfcbc2dfcdc4e1cbc4e1 +cbc2dfd4c5e1cdb9d8e2c3ddecc7ddc08aad914d70711d39680f1b6c10176e111b70121f +741627751a2a771e2d78202f7821327825367e2e3e7728387729398338477f3444772d3a +782f3e803b4d81425584495c8c5166915a6f986278a06b80a67489ac7c91ad8095af839a +b88ea4c69cb4cca3bdd1a9c4d7b1cbe0bcd4eac8ddf0cfe2eed0e4eed0e4edd0e3ecd1e4 +ebd0e4e9cfe3e6cee3e3cbe2e1cae2decae2dfcce3decbe3dbcae3d8c7e1d4c4e0d1c1de +d2c2dfd5c3dfe0c5dfdebfdbddbedadfc1dc +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcec3e0cec4e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcec3dfcec3dfcdc2dfccc1decbc0deccc1decdc2dfcdc3e0cfc6e1d1c9e4 +d1cae4c4c0dbb8b1c7c3b3c4dbbfcaefc0c4f2aeafe38887bd453da31e20ad2222b72c2a +a02020911a1fa54857d492a3efc4d9d5bddbcdbfdec5b9dac5b9dacfc2dfd3c5e1cec0de +cabddcd1c4e0cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcfc2dfd1c3e0 +d2c4e0cfc3e0ccc4dfcec8e2cbc6e3dccde5b795aecca1ace0b8b7e9c4bdeccbc7eccdd3 +efccd6dca8b4bf8ea2d4bfd8d3cce5cbc6e3cbc2e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcec0decec0decfc1decfc3e0d0c3e0cfc3e0 +cfc2dfcec2dfcbc2e0cec8e0cbcbccb0b99a87994688a53c98ba3b9dc33b9ac33b93b93d +97af4cb1b7a1c5c1d5d0c7e2cdc3e0cfc3e0d0c2dfd0c1ded0c1ded2c3dfd0c0ded0c0dd +cdbeddcdbfddcec0decfc4e0cec6e1cbc6d8c1c5b7a5b87492af3fadce45b7d542b3d338 +b3d336afd139a5c43ea5bb66bec9b6c5cad9cacae2cbc7e1cac4dccdc6dcd0c5e0cfc0de +cabcdbcfc1decdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cdc2dfccc3e0ccc3e0cdc2dfcfc2dfcfc1decfc1decfc1decfc1decdc2dfcbc2e0c9c0df +ccc2dfd7cbe4d2c0ddd7b9d8e7c8dfdbb0d0c290af965d7b71344e783d53814b608f5a70 +9e6b80a9798db28498b88b9ebc90a4c198abcda6b9caa4b8d2aec0e8c5d7eccadae7c6d6 +edccddf4d8e8f2dbeaf1dceaefd9e9ecd5e7e5cfe4e0cbe3dfcae2dccae2dccae2e0cde4 +e1cfe5e0d0e6ddcce4d6c6e1d3c3dfd0c1ded1c3dfd2c4e0d1c3dfd2c4e0d1c3e0d0c3e0 +cfc4e0cfc3e0ccc1dfcbc0dec9c0dec6bfdec8c1dfc9c3e0cac5e1c9c4e1c9c4e1c9c5e2 +cbc7e3d2c9e4d4c0ddd5bcdad5bcdad6bedb +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcec3e0cec4e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfccc1decdc2dfcec3dfcfc4e0d0c5e1d0c5e1ccc5e1c2bed9 +b5b5ccacafc1b7b7c6c7c2ccd7c9cceaccccf8cfcef4c0bdcf7976a8383499201f961e22 +902331aa5669d598acf1c4d9e3c5decfbcdbd1c4e0d1c4e0cec0decfc2dfcfc3e0cec0de +cbbeddcbbeddcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcfc1ded2c3df +d2c0ddccbcdcc9bedacac4dfc6c2e0ddcde5a67b93b27480dc9e9ef8bfbafac6c3f6bcc2 +ecacb7cd828eb67585d3b6cdc9c1dcc2bcdccbc2e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcec2dfcfc1decfc1decfc2dfcfc3e0cfc2df +cfc1decdc0deccc3e0cec7e2cdcad2bbbfa88d9d57829d3c93b33c99bf3b99c23b94ba3c +96af3fa7af85c4c2c4d0c8e0cdc3e0cfc1decfc0decfc0ded0c0ded1c2dfcebfddd3c3df +d0c0decabcdbcdbfddd4c9e3d4cce0c6c4bfabb68996b0489ec33ab5d444b3d33db2d238 +afd13aa6c93c9db756b7c79ac5cdd5c9c8e3cac7e2cbc6e0ccc6dacfc6d8d1c3decebedc +cbbadacfc1decdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cdc2dfcac3e0c9c4e1cac3e1cdc3e0cfc2dfd0c0ddd0c0ddcfc0decfc1decec2dfcabedd +c9beddd6c9e3d5c6e1cdb6d7dbc1dce4c5dee1c0dbe3c8e0ecd5e7ead5e8e8d4e7e6d2e6 +e3cfe4e1cee4e0cee4dccce4dbcbe3dccde4e3d6ead8cbe4d4c7e1e0d3e8d7cbe4cabed9 +c9bedad0c3e0c9bbdbcabcdccbbeddccbfddcbc0deccc1decec3e0d0c6e2d0c7e2c7bedd +c5bedec5beddc6bfdec8c2e0c9c4e1cac5e1cac5e1cbc2e0cabadacebbdacebbdacfbcdb +cfbedcd1c0ddd2c1ded1c2ded1c1ded1c2dfd1c2dfd0c2dfcec0decbbddcc7bbdbc5b9da +c4b8d9c6b8dacfbddccebcdbcfbddbd0bfdc +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcec3e0cec3e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfccc1deccc1deccc1decec3dfcfc4e0cfc4e1cfc4e1cec4e0cbc4dfc8c4d9 +bcbbc9b7bcc6c4cbd5d0d2d8d6d0d2dccbcae8cac9f1c4c4dd9ea1a75557751316832231 +af6479d69fb5e8bed6dfc1dbd1bbd9cdbeddd3c6e1d6c9e3cfc3e0cabddccabddccec0de +cfc3e0cdbfdecfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcfc1ded2c0dd +d2bddbcfbddbccc3ddcecae4c8c5e2e1d0e697607993414f9a3938a54138b24e4aad484f +aa44509c2e3b9e4c5bd7b5cbd6cde4cac5e1cbc2e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcec2dfcfc1decfc2dfcfc2dfcfc2dfcfc1de +cec0decdbfdeccc2dfcdc6e1ccc9d7c2c5b594a0667e983b8faf3d96ba3c97bf3c94ba3c +95af3b9fab6cbfbfb2d0cbdccdc3e0cec0decfc0decfbfddcfc0ded0c1deccbddcd2c4e0 +d0c0decbbddccbc0ded1c9dfcfcbcabbbe9ea2b16399b83baed03ab7d43eb0d239add039 +a9cb3b9fbb4aa1b477c3ccbdcacce4cac7e3cac5e1cbc4dfcdc5dbd0c5dad1c2dfcebddc +cbbbdbcfc1decdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cdc2dfc9c4e1c9c5e1cac5e1cbc3e0cfc2dfd0c0ddd1c0ddd0bfdccfbfddd2c4e0cdc0de +c4b9dacdc2dfd5c7e2cfbddbd2bedcdbc3dedac3ded4c1ddd0c0decec3dfd0c3e0d0c3e0 +d0c4e0d0c6e1d2c7e2d1c8e3ccc4e0c5beddcac5e1c6c1dfc8c3e0d0cde6cecbe5c7c3e1 +cac5e2d0c9e3cdc2dfcfc2dfcec3dfcec2dfccc1decbc0decbc2dfccc3e0cec5e1cdc5e1 +c9c2e0c6bfdec7c0dec8c3e0c9c4e1c8c2e0c6c0dfc7beddd2c2dfd4c1ddd3c0ddd1bedc +d1bddbcfbcdbcebcdbcebbdaccbadacdbbdacebcdbcfbddccebddccfbedcd0c0ddd1c0de +d2c3dfd3c4e0d1c2dfd2c3dfd2c3dfd3c5e1 +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcec3e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfccc1decbc0deccc1decdc2dfcfc4e1cec3e0cbc0decac0ddc4bbd4bab6c3 +bbbbc1bcc1c8c4cbcfcfd7dad9dedfdfd9d8e0cfcddfc1c1daafb1985c64742b3a9f6074 +d09fb7e6c0d8dfc4ded1bedccebfddcdbfddcec0decfc3e0cdbfdec9bddccbbeddcfc3e0 +d3c5e1cec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcfc1ded2bfdc +d5bedcd3c0ddd1c7e1d1cce5c7c5e1e6d3e792526c89212e9a221faa2c24b3302baa262b +aa2730981b1f993642d5adbfd5cae3c8c4e1cbc3e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcec2dfcec2dfcfc2dfcfc1decec0de +cec0decdbfdeccc2dfcbc3e0ccc8dbcacbc199a4757c92398ba93d94b63d97bd3c96bb3c +95b13c9aa852bdbf9ed0cdd5cdc4e0ccbfddccbfddcdbeddcfbfddcfc1ded0c0decfc1de +cfc0decdc0deccc4ddcac6c9bfc1a5b0b976a3b845a4c839b4d338b4d336aed137a7cb39 +9ebd449fb56bb1bea4c7ced7cac8e3cac5e2cac3e0ccc3e0cec3e0d0c1ded0c0ded0bfdc +cfbedccfc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cdc3e0cac5e1c7c7e2c9c6e2cbc3e0cfc2dfd0bfddd1bedcd0bddcd0bfdcd2c3dfd0c2df +c7bcdcc9beddd1c6e2cfc2dfcfbfddd2c0ddd0bedccfbfddcfc2dfcfc3e0cfc2dfcec2df +cec0deccc1deccc1decbc2dfcbc2e0cdc4e0cdc5e1c9c2e0c9c4e1ccc5e2c8c2e0c4bfde +c6bfdeccc1decebedcd1bfddd2bfddd1bfddcfbedccfbfddcfbfddd0c0ded1c3dfd0c2df +cec0deccbfddcdc0decfc3e0cfc4e0cfc4e0cfc3e0cec0decfbedcd0bedcd0bedcd1bedc +d2bfddd2c1ded2c2dfd2c2dfd3c3dfd2c0ddd1c0ded1c0ddd1bfddd1bfddd1bfddd1bfdd +d0bfdccfbedccec0decdbfdecec0decec2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcec3e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfccc1deccc1decbc0decdc2dfcec3e0ccc3e0c8bedcc3bad7c0b8cdbeb9c1 +c5c4c3cbcfcfccd4d5ced7d9d1d9dad2d4d5d0c9cbcebdc0cbaeb39166749b6d7fc89fb7 +d9b7d4d9c0dcd5c3dfd2c5e1cbc2dfd1c6e1c9bddccabddccfc2dfcfc3e0cfc3e0d1c4e0 +d0c3e0cabddccfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfd0c0ddd4bddb +d5bcdad5c0ddd1c7e1cdcae3c1bfdee9d4e7944d678d1922a12020b42623bc2724b32323 +bc282ca61f219e2f3cd8abbed7cce3c9c6e2cbc3e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcfc2dfcfc1decec0de +cec0decdbfdeccc0decbc2dfcbc7dccececb9da6827d8e3b89a33c91b13d95b93c97bb3c +95b23c94a63fb9c08bcfcfcbccc6e1ccc0decbbeddcbbeddcdbfddcfc2dfd2c5e1cbbfdd +cbc0ded0c7e2cec9d1bec0acaeb77ba9b74fa8c138afd036b0d237add037add038a3c33c +9ab156a3b38bc1cacccacce4cac6e2c9c3e0cac2e0cdc2dfcec0decfbfddcfbfddd0bfdd +d2c1decfc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +ccc3e0c9c6e2c6c6e2c8c5e2cac3e0cfc2dfd1c0ddd2bfdcd2bedcd1bedcd1c0ddd0c2df +ccc0dec9c0decec5e1cdc3e0cabfddcfc2dfcfc0decfbfddcfc0decfc0ded0bfddcfc0de +cfc0decec0decec0decdc0decec3dfcfc4e0cabfddcbc0decdc4e0cbc2dfc9bfdec9c0de +cbc0decfc0ded2bfddd5c0dcd5c0dcd4bfdcd1bedcd0bedcd1bfddd2c0ddd2c0ddd0bfdd +d0c0ddd1c1ded0c0ddcfbfddcfbfddcfbfddcfc0decfc1ded0c1ded0c1ded0c1ded0c1de +d0c2dfd0c2dfd0c2dfd1c3dfd1c3dfd2c3dfd1c2ded0c1ddd0c1ddd1c2ded2c2ded2c2de +d1c1ddd0c0decec2dfcec3dfcdc2dfcbc0de +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfccc2dfcdc2dfcdc2dfcec3e0cec3e0cdc2dfcdc2dfcdc2df +cdc2dfcec3dfcdc2dfcbc0decbc0ded0c5e0cfc4e1cac0dec3b9d7beb4d0c0b8c8cfc6c7 +d5cfcad8dad8d3d9d8cdd7d8c9d2d6c4c9cfbdbdc4b8b0b9b5a4b0a88d9ec1a4bad9bfda +d6bfdccfbddbcec2dfd0c7e3cac3e1d0c5e1cbbeddcbbeddcfc2dfd0c3e0d0c3e0d0c3e0 +cfc2dfcbbeddcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfd0c0ddd3bcdb +d5bbdad3bfdccfc4dfcbc7e1c2c0dfe8d2e5a2566f9a1f28ad2022bd2424c22625c32525 +c42626b12123a5323ddbabbdd8cce3cac7e2cbc3e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcec2dfcdc0decec0de +cebfddccbeddccbfddcbc0deccc4ddcfced3b8bea77d8b4a849c3b90ad3c93b43d95b93c +97b43c92a73aa8b46cc7c8b8cecadfcbc2dfcbbfddcdc1decec0decdc0ded1c5e0cbc3dd +ccc3ddcdc8d5c5c3b5b2ba87a7b558a8bd38accb37b2d234aed137a7ce38a3c7399db94b +a2b57bb8c1b4cccee2c6c3e1c9c4e1cac2e0ccc2dfcdbfdecebfddcdbddccfbfddd1c1de +d3c3dfcfc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cbc3e0c9c6e2c6c6e2c7c6e2cac3e0cfc2dfd1c0ddd2bfdcd2bddbd1bedcd0bfdccfc0de +cdc2dfcac1dfcbc4e1cac3e0c9c2dfccc3e0cec3dfcfc0decfbedcd0bfdcd1bedcd1c0dd +d1c0ddd0c0ddd0c0ddd0c0ddd1c1ded0c0ddccbddccdbeddcfc1dfcfbfddcfbfddcec0de +cfc2dfd1c2dfd2c2dfd3c2dfd3c2dfd3c1ded2c1ded1c0ded1c1ded2c2dfd1c1decfc0de +cfc1ded0c2dfcfc2dfcec0deccbfddccbfddcdbfdeccc2dfcdc4e0ccc5e1cac3e1cbc4e0 +cbc4e0cac3e0cac3e0cbc3e0cbc3dfcdc4e0ccc4e0cdc4e0cdc4e0cec4e0cfc4e0d0c5e0 +d0c5e0cfc4e0cfc4e0cec3e0cec3dfccc1de +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcbc0deccc1dfcdc2dfd0c5e1cfc4e1ccc2dfcbc0deccc1de +cdc2dfcec3dfccc1decbc0decdc3e0d0c6e1cdc3dfc4bcd8bfb7d2bdb6cdc8becbd9cfce +ddd5cedcdad6d3d7d7cbd2d6c5cbd3bbc0caafb1bca8a3b3b0a6b7c5b5cbd4c2dbd6c4df +d1c1decdbfdecac1dfc9c3e0c9c4e1ccc3e0cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfd0c0ddd3bcdb +d4bcdad2bedcccc4dfcac7e2cac7e3e7cde3b05f79a4242db52323c52625cb2726cf2726 +c62525b62223ab353ddcabbcd8cbe3cac7e2cbc3e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfccc0decec0de +cdbfddcdbfddcdbfdecdc2dfcdc4e0d1cddad2d4ca848e5f7e93398ba63c8eaf3d92b53d +96b63c90aa3c96a747b5bb9dccccd7cac3e0cabfdeccc2dfccc2dfcac1dfcec6dfd0cbdc +cdcad4c0c0b7b1b78fa9b465a7ba3ea9c638add037b0d136add037a2c63997b63c9fb267 +b5c1a6c8ced5cccbe5c4bfdecbc3e0ccc3e0ccc0decdbfddcdbeddcdbddccfbfddd2c2de +d0c4ddd0c3e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +ccc3e0c9c5e1c6c6e2c8c5e2cac3e0cfc2dfd1c0ddd2bfdcd2bedcd2bedcd0bfdccec0de +ccc2dfc9c2e0c9c3e0c8c3e0c9c3e0c9c3e0ccc3e0cfc1ded2c0ddd3c0ddd4bfdcd3c0dd +d2bfddd2bfddd2bfddd2bfddd2bfddd2bfddd1c0ddd1c0ddd1c0ddd1c0ddd1c0ddd0bfdd +d0c0ddd0c0ded0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0cfc4e0cfc4e0cfc4e0cfc3e0 +cec3e0cdc4e0cdc4e0cdc4e0ccc3e0ccc3e0cbc3e0c9c4e1c8c3e1c7c6e3c7c6e3c7c6e3 +c8c5e2c8c5e2c9c5e2cac5e2cac5e2cac5e2cac5e1cac5e1cac5e1c9c4e1cac3e1cac3e1 +cac3e1cac3e1cec3dfcec2dfcfc2dfcec2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfccc2dfccc2dfcec3dfcfc4e0cec3dfcbc0decabfddcbc0de +ccc2dfcbc0decbc0decec3e0d0c7e1ccc3dec3bbd4bdb5ccc0b8cecbc3d5d7ced6e0d3d1 +dcd3ccd8d2d0d2d1d5c6cad2b8bec9adb1bfa5a6b9aca8bcc3bbd2ccc1dbd4c6e0d2c4e0 +cfc3e0ccc2dfc9c2e0c7c1dfc6c0dfccc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcfc0ded2bddb +d3bcdbd2bfddcbc4dfcac7e2cac5e1e7cce2b25d78a8252db92223cb2726d12826d52926 +c92625b92223ad333ddeabbdd8cbe3cac6e2cbc3e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcec3e0cdc2dfcdc2dfccc0decec0de +cebfddcec0decec0decec2dfcfc5e0d4cfe4d1d0d1929a7a7a8a43839b3b8aa83d8eb03e +92b23c92b03c8aa43ba3ae7fc1c5c1cac6e0c9c3e0c9c3e0c9c4e1c9c5dccccad4d0d0ce +c5c6baadb492a1ac6aa2b54caac438accc37a8cd38afd136a0c83a96b63c9db15aabb892 +bdc4c4cbcae0ccc8e3c9c2e0ccc3e0cdc2dfcec0deccbeddccbeddcebeddd0c0ddd1c3de +cfc5ded0c3e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cdc2dfc9c4e1c7c6e3c9c5e2cbc3e0cfc2dfd1c0ddd1bedcd2bedcd0bfdcd0bfddcec0de +cbc2dfc9c2e0c8c3e0c7c3e1c9c3e0c9c3e0cbc2e0cfc1ded1c0ded3c0ddd3c0ddd3c0dd +d1c1ded1c1ded1c0ded1c0ded1c0ded1c0ded1c1ded1c1ded1c1ded1c1ded1c1ded0c0dd +d0c0decfc2dfcec3dfcdc3e0cdc3e0cdc3e0cdc3e0cdc3e0ccc3e0ccc4e1ccc3e0ccc3e0 +ccc3e0cac3e0cac3e1cac3e1cac3e1cac3e1cac3e1c9c4e1c8c3e1c8c3e1c8c3e1c8c3e1 +c8c3e0c8c3e0c9c4e1c9c3e0c9c3e0c9c3e0c9c3e0cac3e0cac3e0cac3e0cac3e0cbc3e0 +cbc2e0cbc2e0cfc3e0cfc3e0cfc2dfcfc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcec3dfcec3dfccc1decabfddc9beddcabfde +ccc2dfcec3e0cec5e1cdc4dfcac1dbc4bdd3bdb5c9bdb5c7c6becfd4cddbe1d6dde0d3d2 +dacfcad7cfcececad2bdbdc8aaabbca1a3b8a8a7bfbab6d1d2c9e3d3cae3d1c6e1cfc3e0 +cdc2dfccc3e0cbc4e1c9c2dfc5bedeccc3e0cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcfc0ded1bedc +d2bddbcfbedccbc4e0cac7e2c9c3e0e7cae0b55c79a9242cbc2324cd2826d42a26d62b26 +cb2626bb2224ae333edeabc0d7cbe4cac5e1cbc2e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc3e0cdc4e0ccc3e0cdc2dfccc0decec0de +cec0decec0decec0decec0ded0c5e0d5cee5cdcad8a8ab9e7b88537b8f39849f3c8caa3d +91b23d95b63c83a23d92a460b5bfa8c7cad1cbcbe1cccbe3cecedececed0c4c6bbc1c5a9 +afb88f9caa6c99ab4ba1b73da9c738adcf37a9ce38a8ce3896b73c95ab49a3b286bbbfbc +c7c8ddcbc8e2ccc7e1cec6e1cdc2dfcec0decdbfddccbeddcdbfdecec0decfc1ded0c3e0 +d0c4dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cdc2dfc9c4e1c8c5e2c9c4e1cbc2e0cfc2dfd1c0ddd2bfddd0bfdcd0bfddcfc1decdc2df +c9c2e0c9c3e0c8c5e2c9c4e1c9c4e1cac2e0cbc2e0cdc2dfd0c3e0d0c3e0d0c3e0d0c3e0 +d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0d0c3e0cfc3e0 +cec3dfcdc2dfcdc2dfccc3e0ccc3e0ccc3e0ccc3e0ccc3e0ccc3e0ccc3e0ccc3e0ccc3e0 +ccc3e0ccc3e0ccc3e0ccc3e0ccc3e0ccc3e0ccc3e0ccc3e0ccc0deccc0deccc0decdc0de +ccc0deccc0decec0decfc1decfc1decfc1decfc1decfc1decfc1decfc1decfc1decfc1de +d0c0ddcfc1ded0c0ded0c2dfd1c1ded0c2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcec3dfcec3dfcdc2dfccc1decbc0deccc2dfcdc2df +cec3e0d1c6e1d2c9e3c8bfd9bdb5cabcb5c7c3bccbcbc4d2d3ccd7d9d0d8dad2d3d8cfca +d7cecad1cbcdc2c0c9afadbca19eb6a6a3bfbbb6d5d0c9e4d3cae4d0c5e0cdc0deccc0de +ccc0decdc3e0cdc5e1cac3e0c9c2dfcdc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcfc1ded2bfdd +d2bfdccfc0decac4e0cac6e2cac2e0e7c9e0b55a77aa232bbd2324cd2826d42a26d62b26 +c92725bb2224ae3444deabc4d8cbe4cac5e2cbc2e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc3e0cdc4e0ccc3e0cdc0deccbfddcec0de +cec0decfc1decfc2dfcdc0deccc3e0d2c9e4cac5ddc4c5c78d94767885407d943a89a53c +90b03d8fb03d81a43e89a043a1b380b8c2adc2cac3c7cec7cad0c0c6cdb2afba8d9eac6e +95a65a99ae50a0b847a4c03ba4c639a7cb38aacd389cbf3b99b23ca0af79b6bcb6c5c5dc +ccc7e3ccc5e2cdc6dfd0c7e2cfc3e0cec0decdbfddcdbfdecec0decec2dfcdc2dfcec4e0 +cec4e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cdc2dfcac3e0c9c4e1c9c3e0cdc2dfcfc1ded1c0ddd1c0ddd0c0ddcfc1decec2dfcbc2e0 +c9c3e0c9c4e1c8c5e2c9c4e1cac3e0ccc3e0cdc2dfcdc2dfcdc4e0cdc4e0cdc4e0cdc4e0 +cdc4e0cdc4e0cdc4e0cdc4e0cdc4e0cdc4e0cdc4e0cbc4e0cbc4e0cbc4e0cbc4e0cbc4e0 +cbc4e1ccc3e0cdc2dfcdc0decec0decfc1decfc1decfc1decfc1decfc1decfc1decfc1de +cfc1decfc1decfc1decfc1decfc1decfc1decfc1decfc1decfc1decfc1decfc1decfc1de +cfc1decfc1decfc1decfc1decfc1decfc1decfc1decfc1decfc1ded0c0ddd0c0ddcfc1de +d0c0ddcfc1ded0c0ded0c2dfd1c1ded0c2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfccc1decdc2dfcec3dfcfc4e0cfc4e1 +d0c5e0cec5e0c8bfd9c0b8cebab2c4c0b9c5cec7d1dad3dbddd6dad9d3d4d5cfccd3ccc9 +ccc7c4bebac0b0acbaa6a3b9aaa6c3b9b4d5cac3e1d4cce5ccc2dfcec1dfcec1dfcec2df +cdc2dfccc3e0ccc3e0cdc5e1cec6e2cdc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcfc2dfd1c1de +d0c0ddccc2dfc9c6e2c9c6e2ccc2dfe7c9e0b55b78a9232aba2423cb2825ce2826d12926 +c52625b52323aa3545dbabc7d7cae4cac5e2cbc2e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc3e0cdc4e0ccc3e0ccc0deccbfddcec0de +cec0decfc2dfcfc2dfcec2dfccc2dfcac2e0cac3e0d9d5e6a3a69c7d87577286367d993c +86a73d83a93e83a93e85a43d8aa44e9aac70a4b586abba89acba82a7b8749aad568fa53e +90a93c9cb841a7c343a3c33b9cc13b99bf3b9bbe3b96af3da9b771bbc1b2c7c6d9cbc5e2 +ccc3e0ccc2dfcec4e0d0c4dfd0c3e0cfc1decec0decec0decec0decdc2dfcdc4e0cbc4e0 +cac3e1cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cdc2dfcbc2e0cac3e0cbc2e0cec2dfcfc1ded1c0ded0c0ddcfc1decec2dfcbc3e0c9c4e1 +c8c3e1c8c5e2c8c5e2cac3e0ccc2dfcfc1decfc1decdc2dfcac5e1cac7e2cac7e2cac7e2 +cac7e2cac7e2cac7e2cac6e2cac6e2cac6e2cac6e2cac5e1c9c4e1c9c4e1c9c4e1c9c4e1 +c9c4e1ccc3e0cfc0decfbfddcfbedcd0bfdcd0bfdcd0bfdcd0bfdcd0bfdcd0bfdcd0bfdc +d0bfdcd0bfdcd0bfdcd0bfdcd0bfdcd0bfdcd1c0ddcfc0decdc2dfcac3e1cac3e1cac3e1 +cac3e1cac3e1cac3e1cac5e1cac5e1c9c4e1c9c4e1c9c4e1c9c4e1cac3e1cac3e1cac3e1 +cac3e1cac3e1cfc3e0cfc3e0cfc2dfcfc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfccc1deccc1deccc1decec3dfcfc4e0cfc4e1cfc4e1 +cfc4e0c6bdd9bbb3cabeb6cac4becbccc5cdd5cfd4dbd6d8ddd7d6dad5d1d3d0cacccac6 +bdbcbda9a8b3a39fb2aca9c1bbb7d7c8c1dfcec5e1cec4e0cec0decfc2dfd0c4e0d3c6e1 +d2c5e1cec3dfcbc2dfccc4e1d0c6e2cdc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcfc2df +cfc2dfcbc2e0c8c5e2c9c6e2ccc2dfe7c8dfb45a7aa9232bb82423c72725cb2726cb2825 +c02525b22122a93549d9aac9d6c9e3c9c4e1cbc2e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc3e0cdc4e0ccc3e0ccc0deccbfddcec0de +cec0decfc2dfcfc3e0cfc4e0cec3e0c8bdddcfc5e1dad5eab6b8ba91987977873e738c39 +7b9d3d7ea63f88af3e86a93e7e9f3d85a1408da54d90a74d8ea9468ea93d8ea93c92b13c +9ab83b9bbd3b9cbe3b9bbf3b96bb3c8eb33d8dac3e9cae64bac1a4ccced5cec9e4cbc2e0 +cbc0decdc2dfcfc4e0cfc2dfd0c3e0d0c3e0cfc2dfcec3dfcdc2dfccc3e0cac3e0c9c4e1 +c9c4e1ccc3e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cdc2dfccc3e0ccc3e0cdc2dfcfc2dfd0c0ddd0c0ddd0c0ddcfc1deccc3e0c9c4e1c9c5e2 +c7c6e2c8c5e2cac5e2ccc3e0cfc2dfd1c0ded1c0decfc2dfcac3e1cac6e2cac6e2cac6e2 +cac6e2cac5e1cac5e1cac5e1cac5e1cac5e1c9c4e1c9c4e1c9c4e1c9c4e1c9c4e1c9c4e1 +cbc3e0cdc2dfcfc1decfc0decfbfddd0c0ddd0c0ddd0c0ddd0c0ddd0c0ddd0c0ddd0c0dd +d0c0ddd1c0ddd1c0ddd1c0ddd1c0ddd1c0ddd1c0ddcfc0decdc2dfcbc4e0cbc4e0cbc4e0 +cbc4e0cbc4e0cac5e1cac5e1cac5e1c9c4e1c9c4e1c9c4e1cac5e1cac5e1cac5e1cac5e1 +cac5e2c9c4e1ccc3e0cdc2dfcec2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfccc1decbc0deccc1decdc2dfcfc4e0cec3e0ccc3e0 +cac0dcc1b8d2b9b0c6c3bdcecfc9d3d4cfd6d7d2d2d9d4d1d7d3cdd3cfc8cccbc3bcbfbb +adb0b3a2a2afaba9bdbbb8d4c8c1dfcec5e1ccc2dfcbbfddcfc3e0cfc1ded1c3e0d4c6e1 +d3c6e1cfc4e0cbc1dfccc3e0cfc4e1cec2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcec3df +cdc3e0c9c3e0c7c5e1c9c6e2ccc0dee6c7dfb45a7aa7232bb52423c22625c52725c72825 +bb2324ae2222a63649d8a9cbd5c9e3c8c3e0cbc2e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc3e0ccc3e0ccc3e0ccc0deccbfddcec0de +cfc1decfc2dfd0c3e0d2c5e0d2c5e1c8bddcd2c7e2cec8e3c6c4d1aeb3a18a965d728837 +70913c78a03f83ae3f81a93f7ba03e7fa33e82a43e81a23d82a43e86a93e8aad3e95ba3c +9ac03b95be3c8fb53e8db23e8eb23e8fb04694ad63afb99dc6c7ccd1cce3cfc6e2cbc0de +cbbeddcec0decfc0decdbfddd0c4decfc5ddd0c4decfc4dfccc3e0cac3e0c9c3e0c9c4e1 +c9c4e1ccc3e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cec2dfcdc2dfcdc2dfcfc1decfc1ded0c0ddd0c0ddcfc1decec2dfcbc3e0cac5e1c8c5e2 +c7c7e2c7c6e2cac5e1cdc2dfd0c0ded3c0ddd3c0ddd1c1decdc2dfcbc3e0cbc3e0cbc3e0 +cbc3e0cbc3e0cbc3e0cbc3e0cbc3e0cbc3e0ccc3e0ccc3e0ccc2dfccc2dfccc2dfcdc2df +cdc2dfccc2dfccc3e0cbc2e0cbc2e0ccc3e0ccc3e0ccc3e0ccc3e0ccc3e0ccc3e0ccc3e0 +ccc3e0cec2dfcec3dfcec3dfcec3dfcec3dfcec3dfcec2dfcec2dfcec2dfcec2dfcec2df +cec3dfcdc2dfcdc2dfcdc2dfccc3e0ccc3e0ccc3e0ccc2dfcbc2e0cbc2e0cbc2e0cbc2e0 +cbc2e0cbc2e0cbc2e0cbc2e0ccc3e0ccc3e0 +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2df +cec2dfcec2dfcec2dfcdc2dfcdc2dfccc1decbc0decbc0deccc3e0cdc3e0ccc3e0c8bfdc +c3bbd5bfb8cebfb9cacbc4d2d5cfd6d7d2d5d8d3d2d7d2cfd3cec7cbc7c0bebcb9aaaeb0 +a1a4ada6a8babdbcd4cbc6e2cec6e2cbc2dfccc0decfc3e0d0c3e0cebfddcec0ded1c4e0 +d2c5e0cfc3e0cbc1decbc1dfcec3e0cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcec3e0 +ccc3e0c9c4e1c8c5e2c9c6e2ccc1dee7c8dfb45a7aa5222ab32223c02624c12624c22725 +b82323ab2122a5364ad8a8cad4c6e1c9c3e0cbc2e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfccc0deccc0decec0de +cfc1decfc2dfd0c3e0d2c5e0d3c6e1c8bddcd4cae4bfb9dbd1cee3ccccc9a2aa877b8b41 +6b87396e943d78a33f79a13f79a13f84a83e82a73e7ea33e82a73e8db13e8fb33e91b73d +93ba3d92b73d89af3e82a73e87a84296b167adbe97c2c8cccbc6e1ccc6e1cac0decbbedd +cdc0ded0c2dfd0c0ddcdbeddd0c4ded0c6dbd0c5dccfc4dfccc3e0cac2e0c9c3e0c9c3e0 +c9c4e1ccc3e0cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcec2dfcfc1decfc1decfc1decfc0ded0c0ddcfc1decec3dfcbc3e0c9c4e1c8c5e2 +c8c5e2c9c6e2c9c4e1cec3dfd0c0ddd4bfdcd3bfdcd2bfddcfc1decdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcec2dfcec0decec0decec0decec0decfc0decec0de +cec0deccc3e0c9c4e1cac5e1cac5e1cac5e1cac5e1cac5e1cac5e1cac5e1cac5e1cac5e1 +cac5e1cbc4e0cbc4e0cbc6e1cbc6e1ccc5e1ccc5e1cdc2dfcfc1ded0c0ddd0c0ddd0c0dd +cfc1decfc1decfc1decfc1decfc1decfc1decfc1decdc0decdc0deccc0deccc0deccc0de +ccc0deccc0decbc2dfcac2e0cbc2e0ccc3e0 +cec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2df +cec2dfcec2dfcec2dfcec2dfcec2dfcfc1decfc1decfc1decfc1decfc1decfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc3e0cec3dfccc1dec9c0decac1dfcfc6e1cbc4e0c3bcd8beb8d0 +beb9cbc2becacbc6ced4ced4d9d4d6d9d3d4d6d2d0d3cdcacac5c1beb9b8b0acb3a2a0b0 +a7a4bab9b7d1ccc7e2d1c9e4cdc3e0cbbfddcec2dfd3c5e1cfc2dfcec0decdbfddcfc2df +cfc3e0d0c2dfcdc1decdc1decdc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcec2df +cec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2df +cec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2df +cec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcfc3e0 +cdc2dfcac3e0c9c5e2c6c3e1ccc2dfe7c9e0b15874a52329b32123c02624c22425c62725 +bb2324ad2222a43443d8a8c8d4c6e1c9c2e0ccc3e0cec2dfcec2dfcec2dfcec2dfcec2df +cec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2df +cec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2df +cec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2df +cec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2df +cec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2df +cec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2df +cec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2df +cec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2df +cec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec3dfcec3dfcec2dfcec0decdc0decec0de +cfc2dfcfc2dfcfc3e0d1c4e0d3c5e1c9beddd0c5e1bfb7d9d4cde6d6d2e1bbbab7999f81 +7e8e4a6885386d903c71943c7a9d3d84a43d81a43e7fa13d86a83e91b13d90af3d8bac3d +8bab3d88a73d86a23c89a04c95aa6fabbc99c2cbc3cecbe2ccc3e0cac0dec9beddccbfdd +cfc1ded0c2dfcfc0decebfddd0c4dfd0c5ded0c4decfc4dfcdc2dfccc3e0cbc2e0cbc2e0 +cbc3e0ccc3e0cdc2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2df +cec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcec2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc1decfc1decfc1ded0c0ddcfc1decec2dfccc3e0cac3e0c9c4e1 +c9c4e1cac3e1cbc3e0cfc3e0d0c0ded2bfddd2bfdcd1c0ddcfc1decec2dfcec2dfcec2df +cec2dfcec2dfcec2dfcec2dfcec2dfcfc1decfc1decfc1decfc1decfc0decfc0decfc0de +cfc1decdc2dfcac3e0cac3e1cac3e1cac3e1cac3e0cac3e1cac3e1cbc4e1cbc4e1cbc3e0 +cbc4e1cbc4e1cbc4e1cbc4e1cbc4e1cbc4e1cbc3e0cdc2dfcfc1ded0c0ddd0c0ddd0c0dd +d0c0ddcfc0decfc0decfc0decfc0decfc0decfc0decfc1decfc1decdc0decdc0decdc0de +cdc0decec0deccc2dfcbc2dfccc2dfccc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc1decfc0decfc0decfc0decfc0decfbfddd0c0ded0c0de +d0c0ded0c0ded1c1ded2c3dfcfc3e0cac0dec7c0decbc5e2cfc9e4c5c0dcb8b4c8b5b3c1 +bebcc4c9c8cbd1cfd0d7d3d2dcd8d5dad6d2d1cfcdc7c3c3bbb6b9b1abb2a9a2b4aca2c0 +bdb3d5cec3e0d0c6e2cdc2dfcdc0decfc3e0d0c3e0d0c2dfcfc1decfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfd0c2df +cfc2dfccc3e0cac5e1c4bfdfcbc3e0eccfe3ad556ba62625b62323c12624c62625c92725 +c02424b12222a7323bdaa7c5d5c6e1cac2e0cdc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfc1decfc1de +cfc2dfcfc2dfcfc2dfcfc3e0d0c3e0cbbfddc6bbdbcbbfddd2c6e1d1c6e1cac2dcbfbac5 +a4a8927483386981366b8337768f397b953a7b973b7d993c83a03c88a33c87a03c87a03c +83983a8091408a98619faa8ab6beb2c6cbcccbcbdbccc5e1cdc2dfcec2dfcfc2dfcfc2df +cfc1decec0decfc1decfc1decfc3e0cfc3e0cfc3e0cfc2dfcec2dfcec2dfcec2dfcec2df +cec2dfcec2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfc2dfcfc2dfcec2dfcdc2dfcdc2df +cdc2dfcdc2dfcec2dfcfc2dfcfc1decfc1decfc1decfc1decfc1decfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfc1decfc1decfc1decfc1decfc1decfc1de +cfc2dfcfc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcec2dfcec3dfcec2df +cec3dfcec3dfcec3dfcec3dfcec3dfcec3dfcec2dfcec2dfcfc2dfcfc1decfc1decfc1de +cfc1decfc1decfc1decfc1decfc1decfc1decfc1decfc1decfc1decfc1decfc1decfc1de +cfc1decfc1decec2dfcec2dfcec2dfcec2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc1decfc0decfc0decfc0decfbfddd0c0ddd0c0ddd0c0ddd0c0dd +d0c0ddcfbfddd0bfddd0c0decbc0dec8c0deccc5e2ccc7e3c5c0deb9b5ccb5b4c2bebcc5 +cac9ccd5d3d2d7d6d2d0cecad1cdcad6d3d1cdc8c9bbb7bbb0aab2afa8b5b8afc5c2b6d8 +cabddcd1c4e0d1c4e0cfc3e0cfc3e0cfc3e0cfc2dfcec0decfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1ded0c2df +cfc2dfcdc2dfcac3e1c4bfdfcbc3e0eccee2ac5668a52623b62323c22625c62625cb2726 +c02525b32222a93237dba6c4d7c6e1cbc2dfcec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcec0decdbfdeccbfddcec0ded1c4e0d2c5e1cfc3e0ccc1de +bdb8be979d7979864264702f6879327686357e90387e92387c8f387a8e387d8c3781903c +879256939c74a8ac9bbec0c2cbcbddcecbe4cac4e0cdc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc1decfc1decfc1decfc0decfc0decfc0decfc0ded0c2dfd0c0ded0bfddcfbfdd +cfbfddcfbfddcfbfddcec0deccc2dfccc5e2ccc7e3c6c1dfb6b2ceb1b0c2bdbbc7cac7cf +d5d2d5dad8d6d9d8d3d1d0cdd0cbcbccc8cabdb8bdada7b0a9a2afb5adbec5bcd6d4c6e1 +d3c6e1d0c3e0cec0decfc2dfd0c3e0d1c4e0cec0deccbfddcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1ded0c2df +cfc2dfcdc2dfcac3e1c4bfdfcbc3e0eccee2ad5668a42522b42123c22625c62625cb2726 +c02525b32222a93237dba6c4d7c6e1cbc2dfcec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcec0decdbfdecfc2dfcfc3e0cfc3e0cec0decfc2dfd1c4e0d4c9e3 +d4cde2cdcdcdb7baaaa0a389909772858c5e7c844c7882437b83427f89498a915a9ba379 +b1b49ebbbcb5c2c3cacac9decfcae4cfc7e2ccc4e1cdc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfc1de +cfc1decfc1decfc1decfc0decfc0decfc0decfc0decfc0ded0c2dfcfbfddcfbfddcfbfdd +d0c0ddd0c0ddd0c0ddcfc0ded1c6e1d0c9e4c4c0dbb6b2ccb1aec2bebccacdccd6d5d3d9 +d5d3d6d3d1d1d4d2d2d7d5d6d1ccd1b7b3bba8a0ada9a2b1b6aec0c5bed3d0c7e1d4c6e1 +d0c3e0ccbfddcbbeddcdbfded0c3e0d1c4e0d0c3e0cfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1ded0c2df +cfc1decdc2dfcbc4e1c4c0dfcbc3e0ebcde2aa5365a42421b42123c22625c62625cb2726 +c02525b32222a93237dba6c4d7c6e1cbc2dfcec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfd0c3e0d0c3e0cec0decbbeddcabddccdbfdecfc4e0 +d0c7e2cfcae4d2cee4d2cfe0c7c5ccb5b3b3a7a7a0a7a79bb2b3a5bcbdafb8b7acc7c7c2 +d5d3dad2d0e1ccc7e1c7c0dec7beddc9c0decac1dfccc0decfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfc1de +cfc1decfc1decfc0decfc0decfc0decfbfddcfbfddcfbfddcfc0decfc0decfbfddcfc1de +d2c3dfd2c4e0d0c2dfcfc2dfcec5e0c7c3dcbab8cbb3b2c2bebbc7cdcbd6d7d4dbd8d7db +d6d4d8d4d1d3d2ced0cbc8cbbcb6bfaba4b2a9a1b4b6aec3c4bbd3cec5e0d0c5e0cec0de +cdbfdeccbfddcdbfdecfc2dfcfc3e0d0c3e0d1c4e0d1c4e0cfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1ded0c0de +cfc1decdc2dfcbc4e1c4c0dfcbc3e0ebcde2aa5263a22221b42222c22625c62625cb2726 +c02525b32222a93237dba6c4d7c6e1cbc2dfcec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc3e0cfc3e0cfc2dfcec0decdbfdecdbfdeccbfddcbbedd +c9beddc6bbdbc7beddccc3e0cdc6e2ccc5e1c9c3dbc9c3d7ccc8d8cfcbdbcec8dacdc9dd +cdc6dfcac3e0c9c0dfcbc2dfcac0dec9bddcc7bbdbccc0decfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfc1de +cfc0decfc0decfc0decfc0decfc0decfbfddcfbfddcfc0decfc0decebfddcebfddcfc2df +d3c4e0d3c5e1cfc2dfccc1dec3bcd5bbb8cab9b8c3bebdc7cecbd4d7d3dbd7d4d9d5d3d8 +d6d4d8d6d4d8cec9ceb4b0b8a29cababa3b5bab3c9c5bdd7cbc2decfc4e1cfc4e0cdbfde +cdbfdecfc3e0d2c5e1d1c4e0cfc2dfcfc2dfd0c3e0d2c5e1cfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1ded0c0de +cfc1decdc2dfcbc4e1c4c0dfcbc3e0eccee2a95264a12021b32223c22625c62625cb2726 +c02525b32222a93237dba6c4d7c6e1cbc2dfcec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcec0decec0decfc2dfd0c3e0d0c3e0cfc2dfccbfdd +cbbeddcdc1decabfddc9bddcccc1decec3e0cdc4e0ccc3e0cbc2e0cac2e0cec5e1ccc3e0 +cbc0dec9bfdecabfddccc0deccc1decbbfddcbbeddcdc0decfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfc1decfc0de +cfc0decfc0decfc0decfbfddcfbfddcec0decec0decec0decebfddcdbfddcec0decfc4e0 +d3c6e1cfc4e1ccc0dec5bbd7beb8cbb9b8c1c1c0c5cdcbcfd7d5d9d9d7dad5d4d7d3d0d4 +d1cdd2cdc8cebebac3a9a4b2a199adb7aec6cac0dbd0c6e1cfc4e0cec3dfcfc3e0cfc2df +cec0ded0c3e0d3c6e1d1c4e0cfc2dfcdbfdecfc2dfd0c3e0cfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfc1de +cfc0decdc2dfcbc4e1c4c1e0cbc3e0eccee2a75163a02020b32223c22625c62625cb2726 +c02525b32222a93237dba6c4d7c6e1cbc2dfcec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcec0decec0decfc2dfd1c4e0d1c4e0d0c3e0cfc1de +ccbeddccbfddcbbfddcdbfddccc0decdbfdeccc0decdc2dfcfc3e0cdc2dfccc0decec3e0 +d1c5e1cfc4e1cdbfdecabddcc9bddccec0ded0c3e0cfc1decfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfc0decfc0de +cfc0decfc0decfc0decfbfddcfbfddcec0decec0decfc1decdbfdeccc0deccc1decfc4e1 +d1c6e1cdc4e0c5bcdabfb6cfbdb8c6c1bfc4ccccccd6d5d4d7d5d6d8d7d7d6d5d7d1ced2 +c7c2c8b8b3bcaca5b3aea7b9b8afc7c7bedad1c5e0d3c6e1d0c3e0cfc2dfcfc3e0d0c2df +cdbfdecdbfded0c3e0d1c4e0cec0deccbfddcdbfdecfc3e0cfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfc0de +cfc0decdc2dfccc5e2c5c1e0cbc3e0eacde2a850629f2020b32222c22625c62625cb2726 +c02525b32222a93237dba6c4d7c6e1cbc2dfcec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcec0decfc2dfcfc2dfcfc2dfcfc2df +cdbfdecbbddccdc0decfc1dfcfc1decdbfddccbfddcec0decfc2dfcfc3e0d0c3e0cfc3e0 +cfc3e0cfc3e0cfc2dfcdbfdeccbfddcec0decfc1decfc1decfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfc0decfc0de +cfc0decfc0decfbfddcfc0decfc0decfc1decfc2dfcfc2dfcdc0decbc0deccc2dfd0c6e1 +cec5e0c5bed8bfb7d1bcb6cbc1bec9cccbccd4d3cfd8d7d2d3d3d1d7d4d5d6d4d7cbc7cd +b7b3bca59eaca19aacb9b1c7cec4dfd2c7e1cfc4e0cfc3e0cfc2dfcfc1dfcfc1dfcfc2df +ccbfddccbfddcfc2dfcfc3e0cec0decdbfdecec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfc0de +cfc1decec3dfcbc4e1c5c1e0ccc4e1e9cbe1a852639f2020b32222c22425c82625c92725 +c12424b32222a73035dca7c4d7c6e1cbc2dfcec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc3e0cfc3e0cfc3e0cec0decdbfdeccbfddcdbfdecec0de +cfc1decfc0decfc1dfcfc1dfcfc1decfc1decfc1decec0deccbeddcdbfded4c6e1cfc1de +c9bddcccbfddcfc2dfd1c4e0d0c3e0cdbfdecabeddcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfc0decfbfdd +cfbfddd0c2dfd0c2dfcfc0decfc0decfc1dfcfc3e0cfc4e0cdc2dfccc1dfcec5e1d2cae3 +c7c1d9b7b3cbb9b3c8c3bececfccd3d6d5d3d6d4ced5d3ced4d2d0d5d0d3ccc8cdbbb5be +a7a2afa19bacafa8bec3bbd4d4c9e3d3c6e1cdbfdecec0decfc1decfbfddcebeddcfc1de +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfc0de +d0c2dfcfc4e1c8c2e0c6c2e0cdc4e1e7cae0ac5668a32221b12122c22425c92625c92725 +c32625b32222a32b2fdda8c5d8c8e2cbc2dfcec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfd0c2dfd0c2dfd0c2dfd0c2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfd0c2dfd0c2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfc0decfbfdd +cfbfddcfc0decfc0decfc0decfc0decfc2dfcfc3e0ccc1deccc3e0d0c7e2d0c8e2c7c3db +bab6cab7b2c4bebccdcdcbd7d7d4d9d7d6d4d5d3ced7d6d2d9d8d9cbc8cbb3adb7a49eac +a49eb0b0aabfc2b9d3cdc3dfd5c9e3d0c3e0cec0decfc2dfd0c2dfcdbeddccbddccfc1de +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfc0de +cfc2dfcec3e0c8c2e0c7c2e0cfc6e2e9cce1af596aa52523b32223c22425c92625c92626 +c32625b32222a32b2fdda8c5d8c8e2cbc2dfcec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfd0c3e0d0c4dfd0c4dfd0c3e0d0c3e0d0c3e0cfc3e0cfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1ded0c0ddd0c0dd +cfbfddcfbfddcfbfddcfbfddcfc0decfc2dfcec3dfccc3e0cfc4e1cfc6e1c8c1d9bab6c9 +b4b1c0bebecacccbd6d5d3dbd6d6d8d5d2d1d3cfcfd5d0d3cec9cfb5b0baa19baaa39db0 +b7b0c6cac0dbd2c7e1d4c7e2d1c4e0cbbeddcebeddd1c3dfd1c2dfcebfddcbbddccfc1de +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfbfdd +cfc1decec3e0c9c2e0c8c3e1d0c7e3eccee2b15d6ea82727b42222c22425c92725c92626 +c32625b32223a42c31dda8c5d7c7e1cac1dfcec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc3e0d0c4dfd0c4dfd0c4dfd0c4dfd0c3e0cfc3e0cfc3e0cfc2dfcfc2dfcfc1decfc1de +cfc1decec0decec0decec0decfc1decfc1decfc1decfc1decfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1ded0c0ddd0bfdd +cfbfddcebedccfbfddcfc1ded0c2dfd0c3e0cfc4e0d1c6e1cfc7e2c6c0d7bab6c9b4b2c0 +bfbec9cdced5d4d4d9d3d3d8d3d3d6d5d3d8d4d0d5c8c4cbb1acb8a29daea8a2b6b9b2c9 +cac1dcd2c7e2d2c5e0d0c3e0cdbfdec8bbdbcbbddcd0c2dfd2c3dfcfc0decdbeddcfc1de +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfc0de +cfc2dfcec3e0c8c2e0c7c2e0cfc6e2eacde2b15b6ca62724b42222c22425c92725c82625 +c22525b32223a52d32dda8c6d7c6e1cac0decec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfd0c3e0d0c3e0d0c3e0cfc3e0cfc2dfcfc2dfcfc2dfcfc1decfc1decec0decec0de +cec0decec0decec0decec0decec0decec0decec0decfc1decfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfbfdd +cfbfddcfbfddd0c0ddd1c3dfd2c4e0d0c4e0cfc4e0cec5e0c7c1d9bbb8cbb6b3c3bebdc6 +cecdd3d5d6dad6d8d7d3d3d3d5d4d8d6d3dbcbc5cfb7b0bda49db0a8a1b7b9b1c9c8beda +cfc4dfcfc3e0cec0decfc1decec0deccbedcccbddccfc0ded0c2dfd0c0decfc1decfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfc0de +d0c2dfcfc4e1c8c2e0c6c2e0cdc4e1e8cae0ae5869a42421b32223c22425c82625c72625 +c12424b32323a62c33dea9c6d7c6e1cac0decec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc0decdc0deccc0deccc0de +ccbfddccbfddccbfddccbfddccbfddccbfddcdbfdecfc1decfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfc1decfbfdd +cfbfddcfbfddd1c1ded3c4e0d3c6e1d0c3e0cbc1ddc4bcd7bdb6cdbab6c7bebdcacccbd2 +d5d6dad4d7d4d2d5d0d2d4d2d2d1d4c8c4d0b5afbfa69eb3aea5bcbeb5d0c8bfdbcdc2df +cfc2dfcec0decdbfdecfc2dfd2c4e0d0c2dfcfc0decfc0decfc0ded0c0decfc1decfc1de +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfc0de +d0c2dfcfc4e1c8c2e0c6c2e0cdc4e1e7cae0ad5667a22121b32222c22425c82625c62425 +c12424b52323a62e34dea9c6d7c6e1c9c0dfcec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cec0decdc0decdc0decdc0decdc0decdc0decdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +ccc0deccc0deccc0deccc0deccc0deccc0deccc0decfc1decfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1ded0c0ded0c0dd +d0bfddd0c0ddd2c2dfd4c5e1d0c4e0cbbfddc4bbd8bdb5cebab5cac0bececbc9d3d3d4da +d6d9d7d1d4d0ccd1cacbcecac3c3c7b2aebda59eb4a59db7bdb4d0d0c6e1d0c5e0cec3df +cfc2dfcfc3e0cfc1ded0c2dfd2c4e0d2c4e0d1c2dfcfc0decfc0ded0c0ded0c2dfcfc1de +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfc0de +d0c2dfcfc4e1c8c2e0c6c3e1cdc4e1e9cbe1ac5668a32221b32223c42625c82625c62525 +c02525b52323a62f34dea9c7d7c6e1c9c0decec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cec0deccc0deccc0deccc0decdc0decdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2df +cdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc2dfcdc0decfc1decfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cec2dfcfc2dfcfc1decfc1decfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1ded1c2dfd1c1de +d0c0ddcfc1ded0c3e0d0c4e0cdc1dec4b9d8bdb3cebcb5cbc4becfcccbd8d2d3dbd3d5d7 +d1d7d3d1d4cfcacdc6c1c3bfb0aeb5a09bafa8a0bab6adcbcac1ddd1c6e2cfc4e1cec2df +cfc2dfcfc2dfcfc0decfc0decfc0ded1c3dfd2c2dfd1c1ded1c1ded1c2dfd0c2dfcfc1de +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfc0de +d0c2dfcfc4e1c8c2e0c7c3e1cfc6e2e9cce1af596ba52523b42123c42625c82625c62525 +c02525b52323a73035dea9c7d7c6e1c9c0decec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cec0deccc0deccc1deccc2dfccc2dfccc3e0ccc3e0ccc3e0ccc3e0cdc4e0cdc4e0cdc4e0 +cdc4e0ccc3e0ccc3e0ccc3e0ccc3e0cdc2dfcdc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +ccc0decdbfdecec0decfbfddd1c1ded0c0ddcfc0ded0c0decfc1decfc0ded1c2dfcfc2df +cec2dfccc4e1cec7e2c9c4e1c5bedac1b6d1bcb0c7c3bbcdcfc9d7d5d4ddd1d9dccad4d3 +ccd4d0cfd5d2c6c6c4b4b1b3a39caca49ab5b8aececabfddcfc4e1ccc1decabfdecdc0de +cfc1decfc1decfc0decdbeddccbddccfc0ded0c2dfd0c2dfd1c3dfd1c3dfd0c3e0cfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfc0de +cfc1decec3e0c9c3e0c8c3e1d0c7e3ebcde2af5a6ba62624b62323c42625c82625c62525 +c02525b52323a73035e0abc7d7c7e1c9c0decec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc1deccc0deccc1deccc0deccc3e0cdc2dfcdc2dfcdc2dfcdc2dfccc3e0cec4e0cdc4e0 +cec4e0ccc3e0cdc2dfcdc2dfcdc2dfcdc2dfcec3dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +ccc1dec9bcdcccbddcd1c0ddd2c0ddd0bfdccfbedcd2c1ded0c1decbbddccfc1deccc1df +c8c1dfc9c9e4c8cbe6bcc0dbbab8cfc2b8cdc7bbcbd1c4d1d9d0d8d6d8dbcedbd9c6d9d5 +c3d3d1c0c9cbb6b1b7a494a3a797b1bcaed0c4b8d9cfc2dfd3c5e1cfc3e0cdbfdecec0de +d0c3e0d1c3e0cfc1decfc1decfc1decfc2dfcfc2dfcfc2dfcfc1decfc1decfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfc0de +cec0decdc2dfcdc6e2c6c3e1cec5e1eccfe3aa5265a22221b42123c52725c92625c72625 +c22525b62423a83136e1abc8dac9e2cbc2dfcec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc1decdc2dfcfc1decdc2dfcfc2dfcec2dfcec2dfcec2dfcec2dfcfc2dfcdc2df +cfc2dfcec2dfcec2dfcec2dfcec2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +ccbfddcdbfddcebeddcfbddccfbddbcfbddbd0bfddd3c4e0d5c7e2d4c6e1cdbeddc6b9da +c4bedec0c2e0b9bedaabb0c8b5b6c6cbc3d2d7cbd8ddd0d8dad3d6d0d5d3c7d8d6c1d6d5 +b3c4c6a8aeb4aca0afb1a0b7beabcbc9bbdbccbfddd1c4e0d1c4e0cdbfdecbbeddcbbedd +cec0decfc3e0cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfc0de +cec0deccc2dfc9c4e1c4bfdfcac2e0e9cce1a750619f2020b12122c12424c82625c72625 +c02525af2022a0262ad9a4c1d5c4e0c9c0decec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +d0c0ddd2c2dfd0c0decdbeddccbedccdbfddcdc2dfcdc3e0cec4e0d3c6e1ddcde5ddcce4 +d3c5e0c6bfdabcb7ceb7b5c4c6c3cfd6ced8d9d0d8dcd3d9d9d6d9d1d5d6c4d1d2b8c6ca +a3adb49c9ca9ada0b3c4b2cdd1c0dcd2c4e0d1c4e0d1c4e0cfc2dfccbfddccbfddcdbfde +cfc2dfcfc3e0cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1ded0c2df +cfc1deccc2dfc9c3e0c3bedec9c0dfe9cbe1a85062a02020b12122c22425cc2726cd2626 +c32625af20229f2528d8a4c1d7c6e0cac0decec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +d2bfddd2c2dfcfc1decabfddc9c2dfcbc4e1cac3e0c8c0dec9bfdecfc1ded6bfdcd1b4d1 +c8acc5c4acc2c6b3c3cabbc5d5cbd2ded6d9ddd6d8d9d5d8d6d5d7cdd3d5bdc5caa8afb7 +9e9fb0aca5babfb3cccfbddad3c3dfd1c3e0cfc3e0cfc2dfcdbfdecec0decfc2dfd0c3e0 +d0c3e0d0c3e0cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1ded2c3df +d1c3dfcec3e0cbc4e1c4c0dfcac2e0ebcde2ac5567a42522b42123c52725cd2726cd2726 +c52625b12222a1272bdba6c3d7c7e1cbc2dfcec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +d4c0ddd2c2dfcec3e0c9c2e0c7c3e1cac7e3cbc5e2cac1dfcec0ded5c2dee2c2dbe4b8cd +ddafbee0b5c0ebc4cde9cbd1e3ced0dcd2d1d6d3d1d2d3d2caced0bfc4c8afb1bba19fb0 +aea5bcc2b7d3d0c0ddd2c3dfd0c0decfc1decdbfdecdbfdecec0decfc3e0d0c3e0d0c3e0 +d0c3e0cfc3e0cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1ded1c3df +d0c2dfcec3e0ccc5e2c4c1e0ccc4e1edd0e3af596aa82827b72323c22625c92725c72625 +c12424b32222a42b31dda8c5d7c6e1cac0decec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +d4c0ddd1c3dfcbc4e0c7c6e2c5c5e2c8c6e2cfc6e1d4c5e1d6c1dedbbcd9d09cb3c07d89 +bb7579c68388e0a4a8f2c3c3f2d2cfe7d7d3d8d3cfcbceccbbc2c5acb0b7a39fb0aba2b9 +c3b4d2d1c1ded3c3dfd0c2dfcec0decec0decdbfdecdbfdecfc2dfcfc3e0cfc3e0cfc2df +cdbfdecdbfdecfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1ded0c0de +cfc1decdc2dfcbc4e1c4c0dfccc4e1edd0e3ae586aa72726b72323c22425c82625c62525 +c02424b32323a62f34dea9c7d7c7e1cac0decec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +d0c0ddccc4e1c9c7e3c5c7e2c4c5e1cac5e1d5c6e0ddc4ded7b0d2d299bcb564799c3537 +962723a03835c06767df9e9df2c7c3ecd4ced5cfcabfc2c1acb3b8a3a5b2a8a0b7bdaecc +d3c0ddd5c2decfc1deccc1deccc1decec2dfcfc2dfcfc2dfcfc3e0cfc2dfcec0deccbfdd +cbbeddccbfddcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfc0de +cebfddccc2dfc9c4e1c4bfdfcbc3e0ebcee2ab5366a42421b42123c52725c92725c72625 +c22525b52323a73035e0abc8d9c9e3cbc2dfcec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cdc2dfc6c3e1c5c7e3c5c7e3c8c4e1d0c3dedfc4dee8b9d5ce8cb2b65d7ea83644a32321 +a02020a02120aa322dc06562dca19fddc0baccc1bcafb0b1a0a5adabaabbbeafccd1bddb +d8c0ddd2bedcccbfddc9c0dfcac2e0cec3dfd0c3e0d0c3e0cfc3e0cec0deccbfddccbfdd +cdbfdecec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfc0de +cec0deccc2dfcac3e1c4c0dfcac2e0eacce1a851629f2020b32222c52725cb2726c92725 +c32625b32223a42c31dda8c6d9c8e2cbc2e0cec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +c9c3e0c3c5e2c4c6e3c9c6e2d0c4dfd9c1dbebbcd5e49ebabf5d7e9d2435a62021b82423 +c12924bc2724a721219b2623b56b68c59f9cc1b2b0a7a3a99f9facbdb7cdd6c5e0d9c4df +d3bbdad0bcdbccc1dec7c2e0c8c2e0cdc2dfcfc3e0d0c3e0cfc2dfcdbfdecdbfdecec0de +cfc3e0d0c3e0cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1ded0c0de +cfc2dfcec3e0ccc5e2c5c1e0ccc4e1e9cce1a750619e2020b02122c22425cb2726c92725 +c22525ae20229d2428d8a2bfd5c4e0cac0decec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +c7c6e3c7c9e4c6c6e3cbc2e0d6c0dbe7bbd4e49db4b0445c9e1d25b62328c52525c82625 +c72725c92825b825249c201fa84e51b38184a48d93aca2adbcb9cbcbc3ddd9c6e0d9c1dd +d3bcdbcfbedccac3e0c7c5e2c7c3e1ccc3e0cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfbfdd +cfc1decdc2dfc8c1dfc7c2e0cfc6e2eacde2af5a6ba62624b32222c12424cb2726c92725 +c12424ad20219d2428d8a4c0d7c6e1cbc2dfcec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +c2c1e0c3bfdec9bfded8c1dde3b8d4ce87a1a4344ba61f23c22629c32525c82625cf2826 +cf2826c22425b32022a7252889222c864b56a68997bdafc0c8bed6d1c3dfd7c3dfd5bedc +d0bbdacdbddcc7c2e0c5c5e2c8c4e1ccc3e0cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfc0de +cfc2dfcec3e0c8c1dfc7c2e0cec5e1e9cce1af596aa42522b32222c22425c92725c82625 +c12424af2022a0262adaa5c3d7c7e1cbc2dfcec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +c6bfdeccbedddcc4dee2b8d6cf8ba9ac475f9d1d20b02022c92526d12826d82b26d62a26 +cc2626c42425b12223921a1d8c2f40aa7487c6a7bccfbfd7d2c2ded2c3dfd5c0ddd1bcda +cebadaccbeddc6c3e1c5c5e2c6c3e1ccc3e0cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc1decfc0de +d0c2dfcfc4e1c8c2e0c7c2e0cec5e1e9cbe1ae5869a42421b32223c22425c82625c72625 +c12424b32222a42c31dea9c6d8c8e2cbc2dfcec0decfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df +cfc2dfcfc2dfcfc2dfcfc2dfcfc2dfcfc2df + +showpage + +% stop using temporary dictionary +end + +% restore original state +origstate restore + +%%Trailer diff --git a/doc/high_level_doc/coordinate_system_white.eps b/doc/high_level_doc/coordinate_system_white.eps new file mode 100644 index 0000000..68f806a --- /dev/null +++ b/doc/high_level_doc/coordinate_system_white.eps @@ -0,0 +1,15151 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: /home/free_icp/doc/high_level_doc/coordinate_system_white.eps +%%Creator: XV version 3.10a-jumboFix of 20050410 - by John Bradley +%%BoundingBox: 99 181 513 611 +%%Pages: 1 +%%DocumentFonts: +%%EndComments +%%EndProlog + +%%Page: 1 1 + +% remember original state +/origstate save def + +% build a temporary dictionary +20 dict begin + +% define string to hold a scanline's worth of data +/pix 1242 string def + +% define space for color conversions +/grays 414 string def % space for gray scale line +/npixls 0 def +/rgbindx 0 def + +% lower left corner +99 181 translate + +% size of image (on paper, in 1/72inch coords) +414.00000 429.98400 scale + +% define 'colorimage' if it isn't defined +% ('colortogray' and 'mergeprocs' come from xwd2ps +% via xgrab) +/colorimage where % do we know about 'colorimage'? + { pop } % yes: pop off the 'dict' returned + { % no: define one + /colortogray { % define an RGB->I function + /rgbdata exch store % call input 'rgbdata' + rgbdata length 3 idiv + /npixls exch store + /rgbindx 0 store + 0 1 npixls 1 sub { + grays exch + rgbdata rgbindx get 20 mul % Red + rgbdata rgbindx 1 add get 32 mul % Green + rgbdata rgbindx 2 add get 12 mul % Blue + add add 64 idiv % I = .5G + .31R + .18B + put + /rgbindx rgbindx 3 add store + } for + grays 0 npixls getinterval + } bind def + + % Utility procedure for colorimage operator. + % This procedure takes two procedures off the + % stack and merges them into a single procedure. + + /mergeprocs { % def + dup length + 3 -1 roll + dup + length + dup + 5 1 roll + 3 -1 roll + add + array cvx + dup + 3 -1 roll + 0 exch + putinterval + dup + 4 2 roll + putinterval + } bind def + + /colorimage { % def + pop pop % remove 'false 3' operands + {colortogray} mergeprocs + image + } bind def + } ifelse % end of 'false' case + + + +414 430 8 % dimensions of data +[414 0 0 -430 0 430] % mapping matrix +{currentfile pix readhexstring pop} +false 3 colorimage + +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffd8a0b0d8a0b0e0a8c0d8a8c0ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffd8a0b0b85868a85868b85868b86878c890a8ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffe0a8c0c06078982030982030982030903040a85868d098b0ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffc888a0901818a02020a83028a01820a01820a03040b87888ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffc08090a02020b02020d02820b82020a82020a02038a05068ffffffffffffffffff +ffffffffffffffffffffffffffffffe0a8c0d088a0a85868b87888b888a0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffff0a098b03040c82020c82820c02020b02020a02020a04050d8a8c0ffffffffffff +ffffffffffffffffffffffffd8a0b0d04080981850802028801018a05080c8a0a8ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffb83848b82020c82820c02030c02020a82020a03038c08090ffffffffffff +ffffffffffffffffffe0a8c0c06078a02038901818982030802028a85868ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08890c088b8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffd88090b02030b82020b82020a83028b82020a02020a84050ffffffffffff +ffffffffffffffffffd088a0b02030a83028a82020801018801018c898b0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffc8a0a8884050a87080 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffe0a8c0b03040a82020a82020b82020b82020a82020a82830e0a8c0ffffff +ffffffffffffe0a8c0c06868b02020b02020b02020881818884050d0a8c0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffd88090903040a04050 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffb84050a83028a83028b02020b82020b02020b82020d88090ffffff +ffffffffffffd088a0b03040a82020b02020981820881818b87888ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffe0a8c0c06868a83028a83028 +f09088ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffc87080a82830b02020b02020b82020a82020b02020b84050ffffff +ffffffffffffc87080a02020a83028b02020881818801018d8a8c0ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffd088a0b83848a83028b82020 +b84050ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffd090a8b83848b02020b02020b02020a82020b02020a02038ffffff +ffffffd8a0b0b85868a83028b82020a82020801018884050ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffc87080a02020c82820d03828 +a82020ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffb84050a83028b82020b02020a82020b82020a82020d8a0b0 +ffffffc87080b02030b82020a82020981820781010c888a0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffc06868b02020c82820d03828 +b82020ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffc87080b83848b02020b02020b02020b82020b82020c06868 +ffffffb85868b82020b82020a82020781010781010ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffc890a8b84050c02020d03828e02820 +d02820a85868ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffd8a0b0b84050a82020b02020b82020a83028b82020a83028 +f09088e04840b82020c02020a82020801018706878ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffb86878a83028c82820e02820d03828 +c02030983848ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffc06078a82020b02020c02020b82020b82020981820 +b83848c02020b82020b02020981820802028c8a0a8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffb86058a82020d02820e02820e02820 +c82820a03040d8a0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffc07888a03038b82020c82820b82020b02020a82020 +a83028c02020b82020b02020981820a04050ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffd8a0b0b83848b02020c82820e02820d03828 +c82020b02030d88090ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd8a0b0b85868b02020c02020b82020b82020b02020 +b02020c02020b82020a02020982030b87888ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffc87080a83028b82020d02820d03828d82820 +c82020c02030b85868ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffc07888a82830b82020b82020c02020a83028 +c02020c02020a83028901818983848d8a8c0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa84050a82020c02020d03828d82820d02820 +c82820c02020b83848e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffd088a0a03040b02020b82020b82020c02020 +b82020a83028a01820881818a05068ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffc8a0a8a83028b02020c82820d82820d02820d02820 +c02030d82820b02020d88090ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffa85060b82020c02020a83028c02020 +b02020b02020901818903040b888a0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffc07888a02020c82820d03828c82020d03828d02820 +d03828d82820b02020b85868ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffd88090982030b82020b82020c82820 +b82020981820781010a85868ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffa04858a02020c02020d02820d82820d02820c02030 +d82820d82820c02020982030d088a0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffd098c0982030a82020c82820c82820 +b02020881818802028a08890ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffff982030a82020c02020d02820d82820d82820d82820 +d02820d82820c02030a02020c07888ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffa85868a82020d02820c02030 +b02020781010884050c8a0a8ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffd098b0901818a83028c82820d82820e02820d03828e02820 +d03828d82820d03828a82020c06868e0a8c0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffd090a8c02020c02020c02020 +981820781010a08890ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffb86878981820b02020c82820d02820e02820e02820d03828 +e02820c02030c82820b02020b83848d090a8ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd8a8c0e0a8c0fffffff09088b82020b82020a83028 +781010884050c8a0a8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffa03040a82020b82020c82820d82820d03828e02820e02820 +e02820d82820d02820b82020b02030d88090ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffc888a0c06868c06868e86860b84050c02020b82020801018 +500828a87080ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffe0a8c0a01820b02020c02020c02030d82820d82820d03828e02820 +d03828e02820d02820c02030b02020b86878ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffc08090a84050a02020a83028b02020c02020b02020a83028781010 +703858c8a0a8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffc87080a01820b82020c02020d02820d82820e02820e02820e02820 +e02820d03828d82820c02030b02020a84050d098b0ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffd090a8a02058a02020b02030b82020b82020b82020b02020a82020702838 +a05068ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffa84050a01820c02020c02020d03828d82820d03828e02820d03828 +e02820e02820c02030d02820b02020a02038b87888ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffd090a8a84050b03040c02030b02020b02020c02030a83028981820a87080 +c898b0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffe0a8c0901828a02020c02020c82820d82820d82820e02820d03828e02820 +e02820d03828d82820c82820b02020982030a05080ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffe0a8c0a02038b02030b02030c02030b02030a82020a02020a85868ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffb87888801018b02020b82020c02030d02820d82820d03828e02820e02820 +e02820e02820d03828c02030b82020a02020a05068d8a8c0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffd04080a03040982030a02038a03040a84050c87080ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffa05068901828b02020c02020d02820d02820d03828e02820e02820e02820 +e04840e02820d82820c02030c02020a02020903040b88098ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffe0a8c0d088a0b86878a87080c07888d8a0b0ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffc890a8903040981820b82020c02020d02820d02820d03828c02030e02820e02820 +e02820d82820d82820d02820b82020a82020982030a05068ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffd0a8c0ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffb87888881818a01820c02020c02030d02820d82820d82820e02820d03828e02820 +d03828e02820d03828c02030c82820b02020982030983848e0a8c0ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +d8a8c0a85868881818a02020c02020c82820c02030d03828d82820d03828e02820e02820 +e02820d03828e02820d82820c02030b82020a02020903040c07888ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +c888a0903040982030b02020b82020d03828d82820d82820d82820e02820d03828e02820 +e02820e02820d03828d82820c82820b82020a01820a01820a04858ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +c07888982030a02020b02020c02020d82820d02820d02820d03828c02030e02820d03828 +e02820e02820e02820c02030d02820c02030b82020a02020a03848e0a8c0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd8a8c0 +a85868981820a02020b82020c82820d02820d02820d82820e02820e02820e02820e02820 +e02820d03828d03828e02820d02820c02030c02020a82020982030c08090ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc890a8 +983848901818a82020c02020c82820d82820d82820c02030e02820d03828d03828e02820 +d03828e02820e02820d03828d82820d02820c82820b02020981820a04858ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb87888 +901818981820b02020c82820d02820d82820d03828e02820d02820d03828e02820d03828 +e02820e02820e02820d03828d82820d02820d02820b82020981820802028ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa85868 +802028a02020b02020c82020d02820d03828e02820d03828c02030e02820d03828e02820 +e02820d03828e02820c02030e02820d03828c02030c82820a02020801018d098b0ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb098b0884050 +981820a02020b82020c82820d82820d03828e02820d82820e02820d02820d03828e02820 +e02820e02820d03828e02820d03828e02820e02820c02030a82020802028b87888ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb068a0702838 +981818b02020b82020c82820d02820c02030e02820d03828d03828c02030e02820d03828 +e02820d03828e02820e02820c02030e02820d82820c82820a82020881818a05068ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa05068901828 +a02020b02020b82020c02030d82820e02820e02820d82820e02820e02820e02820e02820 +e02820e02820e02820e02820e02820d03828c02030d02820b02020981820983848d098b0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffd8a8c0983848901818 +a82020b02020c02020c82820c02030d02820d82820d03828e02820d03828e02820d03828 +e02820d03828e02820e04840c02030d82820d02820c02030c02020b02020901818c07888 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffc07888982030981820 +a82020b82020b82020c02020c82820d02820d03828e02820d03828e02820e02820e02820 +e02820e02820d03828d82820d82820d82820d02820c82820c02020b02020a02020b85868 +e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffff983848881818a02020 +a01820b82020b82020c82820c02030d02820d82820d03828e02820e02820d03828e02820 +e02820c02030e02820d82820d82820d02820c02030c82820c02020b02020a02020a82830 +d8a0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffd8a0b0802028901828a02020 +b02020b82020c02020c02020d02820d02820d82820c02030e02820e02820e02820e04840 +e02820e02820d03828e02820c02030d82820d02820c02030c82820b82020a82020901818 +c07888ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffb87888802028981820a02020 +b02020b82020c02020c02030c82820d02820d03828e02820e02820d03828e02820e02820 +d82820d03828e02820e02820d82820c02030d02820d02820c02030c02020a82020981820 +a85868d8a8c0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffa05068901828981820a82020 +b02020b82020c02020c82820c02030d82820d82820d03828e02820e02820e02820d03828 +e02820e02820e02820d03828d03828d82820d02820d02820c82820b82020b02020a02020 +a04050c890a8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffff903040901828981818a82020 +b02020c02020c02020c82820d02820d02820d02820d03828e02820d03828e02820e02820 +e02820d03828e02820d03828e02820c02030d82820d02820d02820b02030b02020a02020 +a03038c08090ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffc888a0801018901818981820a82020 +b82020b82020c02020c02030d02820d02820d03828e02820d03828e02820e02820d03828 +e02820e02820e02820c02030e02820e02820d82820c02030d82820c82820b02020a02020 +901828b86878ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffb86878781010901828a02020b02020 +b82020c02020c82820c82820d02820d02820c02030e02820e02820d03828e02820e02820 +e02820e04840e02820e02820d82820d03828d82820d02820d02820c02030c02020a02020 +981820a85060d088a0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffff903040801018981820a82020b02020 +b82020c82820c02030c82820d02820d02820e02820d03828e02820e02820d03828e02820 +e02820d82820d82820d03828e02820d03828c02030e02820d02820c02030b82020a82020 +a02020982030b87888ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffd8a0b0802028901818a02020a82020b82020 +c02020c02020c82820c02030d02820d02820d03828d82820d03828e02820e02820c02030 +e02820d03828e02820e02820e02820e02820e02820c02030d82820c82820c02020b02020 +a02020982030a85868e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb888a0a87080a85868b86878d088a0e0a8c0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa87080781010a01820a02020b02020b82020 +c02020c02030d02820d02820d02820d03828d82820c02030e02820e02820d03828e02820 +e02820d03828e02820e02820d03828d03828d82820d82820d02820c02030c02020b82020 +a82020981820a03848c890a8ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffc07888a03040981820a01820a82020a82020c82820 +b83848b83848c06868d88090ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060801018a02020a82020b02020c02020 +c02020c82820c82820c02030d02820d82820c02030e02820e02820d03828e02820d03828 +e02820e02820e02820d03828e02820e02820d03828c02030d82820c02030c82820b82020 +a82020981820a03040c07888ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffd090a8a84050a01820b82020c82820c82820c02020b82020 +b82020b02020a82830b03040b83848a82870b85868c06098d090a8d098c0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffc890a8983848981820a01820b02020b82020c02020 +c82820c82820c02030d82820d02820d82820e02820d82820d03828e02820e02820e02820 +e02820d03828e02820e02820e02820d03828e02820d82820d02820c82820c02030c02020 +b02020a82020982030a05080ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffd090a8a84050982030b02020c02020c02020c82820c82820 +c82820c02020c02020b82020b02030b02030b03040a02058884050a87080ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb88098802028901828a02020b82020b82020c02020 +c02030d02820d02820c82820d02820d03828d03828e02820c02030e02820d03828e02820 +e02820e02820d03828e02820d03828e02820d03828c02030d02820c02030c82820c02020 +b82020a82020901828a04858ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffe0a8c0c06098b84050a03040a83028b82020b82020b82020 +c02020c02020c02020b82020c02030b82020b02030a03040802028984078ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffc08098982030981820a02020b82020c02020c82820 +c82820c82820c02030d82820d02820d82820c02030e02820e02820d03828e02820e02820 +e04840e02820e02820e02820d03828e02820e02820d82820d02820c82820c02020c82820 +c02020b02020a01820a04858ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd8a8c0c888a0d88090c06098c06078a84050a03040 +a82830a82020a83028b82020b82020b82020b82020982030901828a85068ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffc888a0903040901818b02020b02020b82020c02020 +c82820c02030d02820d02820d02820d03828e02820e02820d03828e02820e02820e02820 +d82820e02820d03828e02820d03828e02820d03828c02030d82820c02030c82820c02030 +b82020a82020a02038a85068ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc888a0c07888 +c06078b86058b84050c82820a83028b82020b82020a02020a85068d088a0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd8a8c0a04858982030b02030a02020b82020c02020 +c82820c82820d02820c02030d82820d82820d03828e02820e02820d03828e02820d03828 +e02820e02820e02820e02820d03828e02820e02820e02820d03828c82020c02020b82020 +a82020a02020a84050c07888ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffff09088b86058b82020b02020a83028a84050d088a0ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffd088a0a85068982030982030a82020b82020 +c02030c82820c82820c02030d02820d82820e02820d03828e02820e02820e02820d03828 +e02820e02820e04840e02820c02030e02820d03828e02820d02820c02030c02020a02020 +982030a03848c07888ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffff09088b86058a82020a82020c02030b84050ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffe0a8c0c87080a02058982030a82020 +b82020c02020c02020d02820c02030d03828e02820e02820e02820e02820e02820d03828 +e02820e02820e02820d82820d82820d03828e02820d03828d82820c02020a02020982030 +b86058d090a8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +d88090982030881818a82830a03040b85868ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffd088a0c87080b03040 +b02030c02020b82020c02020c02020d02820d82820e02820e04840e02820d03828c02030 +e02820e02820e02820d03828c02030d02820c02030b82020a82830a02020b85868d88090 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc87080 +b83848b03040b02030a02058c87080ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff09890 +d88090d88090b84050b83848a82830b03040c02030d82820d82820d03828c02030e02820 +e04840d82820c02030e04840b02030a82830b03040c06078f09088d8a0b0e0a8c0ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc87080b02068 +a82830b03040b02068c87080ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffd8a0b0e0a8c0d88090d88090b03040901828901828a01820a82020981820 +981820a02020a01820c87080d8a0b0d8a0b0d8a0b0e0a8c0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffc06078a02058a82830 +a02058c83078d088a0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858801018781010781010781010781010 +781010781010781010d8a0b0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffc87080b03040b03040b02030 +a84050d098b0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff884050500828580808580808580808580808 +580808580808580808d0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffd8a0b0c06078b03040b02030b02030b84050 +d088a0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff703858580808580808580808580808580808 +580808580808500828ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd8a0b0c06078b02030b02030b82020b02030c87080 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff702838580808781010781010781010781010 +704018781010580808ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffd8a0b0c82868b02030c02030c02020a82020b02020e86860 +f0a098f0a098d8a0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff884050801018901818a83028a02020a02020 +981820a02020901828d8a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffe0a8c0b03040c02030d02820d02820c82020b82020b82020a83028 +a82020a02020a83028b83848c06078f0a098ffffffffffffe0a8c0ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858982030a82020b82020b82020a83028 +b82020b02030982030e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffd098c0b82068c02030c82020c02030d02820c02020c02020c02020 +c82820c82820c02020b02020b02020a02020982030982030b84050d88090e0a8c0ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85068a82020b02020b82020c82820c02020 +b82020a83028901828e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffd090a8a04858a02038b82020c02020c02020c02030c02020b82020 +c02020b82020c02020b82020b82020b02020b02020981820901828983848c888a0ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060a02020a83028c02020c02020c82820 +b82020b02020901828e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffd090a8c87080c06868b83848a82020a82020a83028a82020 +a83028b82020b82020c02030c02020b82020b02020b03040881818802028c08098ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa84050a02020b82020c82820c82820c82820 +c02020b82020982030e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffd8a0b0d8a0b0d88090c888a0c07888c06868 +a85060a03848a82830a82020b02020b82020b02020a02020801018a05068c890a8ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa84050a01820b82020c82820d02820d02820 +c02030b82020982030e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +d098b0c888a0b86878b85868b84050b83848b83848982030a04858c888a0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa84050a02020b82020d02820d82820d02820 +c02030c02020982030ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffe0a8c0d090a8d88090c07888c07888c888a0ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060a01820b82020c02030d82820d03828 +c82020b02030982030ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858a01820c02020d02820d02820d02820 +c02030c02020982030ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04050a02020b82020c02030d02820c02030 +c82820b82020982030e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858a02020b82020c82820d02820c82820 +c02020b02020901818e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa84050a82020b82020c82020d02820c02030 +c82020b02020981820d8a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060a82020b82020c02030d02820d02820 +c02020a83028981818e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa84050a02020b82020c82820c82820c02030 +c02020c02020a02020e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa84050a02020b82020c82820c82020c82820 +c02020b82020a83028e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa84050a02020b82020c82820d02820c02030 +c02020b82020a02020ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa84050a02020b82020c82820c02030d02820 +c02020a83028981818e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858a82020b82020c82820d02820c82820 +c02020b02020901818d8a0b0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060a82020b82020c82820c02030c82020 +c02020b82020901818e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa84050a82020b82020c82820d02820c02030 +c82820b82020982030e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa84050a02020b82020c82820d02820c82820 +c02020b82020981820e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa03848981820b82020c82820c02030d02820 +c02020a83028981818e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa84050a02020b02020c82820d02820c02030 +c02020b82020981820e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0a8c0c898b0 +b878a8808090ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa84050a02020b82020c82020c82820c82820 +c02020a83028981818e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffd8a0b0d88090c87080a85868a04858 +703858703858ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858a82020b82020c82820d02820c02030 +c82820b82020a02020e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffe0a8c0d088a0c87080b85868a03040a82830a02020901828802028 +884050a05068ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa84050a02020b82020c82820d02820c82820 +c02020b82020a02020d8a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +d8a8c0c08098b85868a04858a82830881818981820a82020b02020a02020901828982030 +903040d090a8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa84050a82020b82020c02030d02820c02030 +c02020a83028981818d8a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffd098c0b88098a05068884050 +982030901828901818901818901818982030a82020b02020a82020b02020a82020982030 +802028ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa84050a02020b82020c82820d02820c82820 +c82020b82020a82830ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffe0a8c0d088a0b86878a85068983848982030901828981820 +981820a02020a02020a82020a82020b02020b02020b02020b02020a01820981818881818 +903040ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa84050a02020c02020c82820d82820c02030 +c82820b82020982030ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd088a0c87080c06078a84050a03040a82830981820981820981820a02020a82020 +a82020a82020b02020b02020b02020b02020b02020b82020b02020a02020981820903040 +a85868ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa84050a82020b82020c02030d82820c82820 +c82820b02020a02020e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffe0a8c0d090a8c08098 +b86878a84050a03040a02020981820901818981820a02020a02020a82020a82020b02020 +b02020b02020b02020b02020b02020b02020b02020b82020a82020a82020901818983848 +d8a0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa84050a02020b82020d02820d02820c02030 +c82820a83028a02020ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffd098b0c08090c06078a04858a03040 +982030981820a02020a02020a82020a82020a82020a82020b02020b02020b02020b02020 +b02020b02020b02020b02020b02020b02020b02020b02020a82020a02020901818a04050 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa84050981818b82020c82820d02820c82820 +c82020b82020a02020e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd8a8c0c07888b85868a03038a83028a82020a82020 +b02020a82020b02020b02020b82020b82020b82020b82020b02020b82020b82020b02020 +b02020b02020b02020b02020a82020a82020a82020b02020a02020981818881818a05068 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04050a02020b02020c82020c02030c82820 +c82820b02020982030ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffc07888a03038a02020a02020b02020b82020c02020 +c82820c02020b82020b82020b82020b82020c02020c02020c02020b82020b82020b82020 +b82020b02020b02020a82020a82020a82020a82020a82020a01820901818903040c07888 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa84050a02020b02020c82820d02820c82820 +c02030b02020a02038ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffb86878a03848a02020a02020b02020c02020c02020c02020 +c02030c82820c02020c82820c02020c82820c02020c02020c82820c82820c02020b82020 +b82020b82020b02020b02020a82020a82020a01820a02020981818881818a04050d8a0b0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa84050a02020b02020c02020c82820c82820 +c82820b02020a02038e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffd8a0b0a03848a83028a02020a83028c02020c02020c82820d03828 +e02820c82820c02030d02820d02820c02030c82820c02020c02030c02020c02020c02020 +c02020a83028b82020a82020b02020a82020a02020981820901818881818b86878ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa03848a02020b02020c82820c02030c82820 +c82020b02030982030d8a0b0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffd098b0c06078a02020b02020b82020c02020c02020c82820c02030d82820 +d02820d02820c82820c02020c02020c82820c02030d03828c82820c82820c02030c02020 +c02020b82020b82020b02020a82020a01820a82020981820881818802028b87888ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff983848a02020a82020c82820d02820c82820 +c02030b02020a02038d8a0b0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffd88090a84050b02020b82020b82020c02020c02020c02020c82820c82820 +c02030c82820c02020c02030c02020c02020c82820c02020c82820c02020c02020c02020 +b82020c02020b82020b02020b02020a82020a01820901818801018a05068d8a0b0ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff983848981820b82020c02020c82820c02030 +c82020b02030a82830f09890d8c0b0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffc87080b02030c02030c02020c82820c02020c02020c02020b82020c02020 +c02020c02020c02020b82020c02020c02020c02020c02030c02020c82820c02030c02020 +c02020b02030b82020b02020b02020a82020a02020881818802028a87080ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd8c0b0d0c0a0d0c0a0d0c0a0d0b880d0b880d0b880 +d0b880d0b880c0a880788078788078a87080802028a02020b02020c82820c82820c82020 +c02030c82820a83028c8b060d8c858c8b060d0b880d0b880d0b880d0b880d0b880d0b880 +d0c0a0d0c0a0d0c0a0d8c0b0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffe0a8c0c06078c02030c02030d02820c82020c02030b82020a83028c02020b82020 +b82020b82020b02030c02020b82020c82820b82020c02020c82820c02020c02020c02020 +c02020c02020b82020b82020b02020b02020a01820801018702838c08098ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +d8c0b0d0c0a0d0c0a0d0b880d8e068d8c858d8c858d8c858d8b830d8b830d8b830d8b830 +e0c030d8c858a89030704018584818907828781010901818a83028c02020c82820c82820 +c82820c02020a83028d8b830e0c030e0c030e0c020e0c020e0c020e0c030d8b830d8b830 +d8c858c8b050d8c858d0b880d0b880d0c0a0d0c0a8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd8a0b0b84050c02030c82020d02820c02030c82820c02020b82020a83028b82020 +a83028b82020b82020b82020b82020c02030c02020c02020c02030c02020c02020c02030 +c02020c02020b82020b82020b02020b02020981820801018984078c898b0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffd8c0b0d0c0a0d0b880 +c0b078c8b050c8b050d8b830d8b830d8b830d8b830e0c030e0c030e0c030e0c030e8c820 +e0c030d8c858c0d848607030584818704018781010981820b02020c02020d02820c02030 +c82820b82020a82020d8b830e0c030e8c820e8c820e8c820e8c820e8c820e0c020e0c020 +e0c020e0c030d8b830d8c858d8b830c8b060c8b060d0b880d0b880d0c0a0d0c0a0d0c0a0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd088a0b84050b02030d02820d02820d02820c02020b82020a83028b82020b02020 +b82020b82020b82020b82020c02020c82820b82020c82820c02020c02020c82820c02020 +c02020c02030b82020b82020b82020b02020981820801018a87080ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd0c0a0d8e068d0b880c8b050c0a840c8b030c8b030 +e0c030d8c858e0c030e0c030e0c030e0c030e0c030e0c030e8c820e8c820e8c820e8c820 +e8c820d8e068d8c858907828584818704018781010a02020b82020c02020d02820c02030 +c82820b82020a83028e0c030d8e068e8c820e8c820e8c820e8c820e8c820e8c820e8c820 +e8c820e8c820e0c030e8c820e0c030e0c020e0c030b8d038d8b830d0b028d8b830d8b830 +c8b050c8b050d0b880d0c0a0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffc888a0a84050b82020c02030d82820c02030c02020c02020b82020b02020b82020 +b82020b82020b82020c02020c02020c02030c82820c02020d03828c02020c02030c02020 +c02020c02020b82020b82020b82020b02020981820500828d098b0ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd8c0b0d0c0a0d0b880d0b880c8b030c8a828d8b830d8b830e0c030e0c030e0c030 +e8c820e8c820e8c820e8c820e0c030e8c820e8c820e8c820e8c820e0c030e8c820e0c030 +e8c820e0c030d8c858704018383828704018781010901818a83028c82820c02030d02820 +c82820c82020c82820e0c030d8c858e8c820e8c820e8c820e8c820e8c820e8c820e0c030 +e8c820e8c820e8c820e8c820e8c820e8c820e8c820e8c820e8c820e0c020e0c020e0c030 +e0c030d8b830d8b830c0a840c8b050d0b880d0c0a8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd098b0b84050b02020c82820d02820d02820c02030b82020b82020b82020b82020 +c02020c02020c02020c02030c82820c02020c82820c02030c02020c82820c02020c02020 +c02030c82820b82020b82020b82020b02020981820801018d098c0ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd8c0b0d0c0a0 +d0b880d0b880d8c858c8b050c8a828e0c030e0c030e0c030e8c820e8c820e8c820e8c820 +e8c820e8c820e8c820e8c820e8c820e8c820e8c820e0c030e8c820e0c030e8c820e0c030 +e0c030e0c030c8b030607030704018704018881818a83028b82020c82820d02820c82820 +c02030c82820b02030e86850e0c020d8b830e0c030e0c030e0c030e0c030e0c030e8c820 +e0c020e8c820e0c020e0c020e8c820e8c820e8c820e8c820e8c820e0c030e8c820e8c820 +e0c030e8c820e0c030d8b830d8b830d8b830c8b050c8b060c0b078d8c0b0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd8a8c0c06868b02020c82020c02030c82820c02020c02020b82020c02020c02020 +c02030d03828c82820c82820c82820c02030d03828c82820c82820c82820c02030c82820 +c82820b82020b82020b82020b82020a83028901818a05080ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffd0c0a0c0b078c8b050 +c0a840c8b030c8b030e0c030e0c030e0c030e8c820e8c820e0c030e8c820e0c030e8c820 +e0c030e0c030e0c030e0c030e0c030d8b830d8b830d8b020d0b028c8a828c8a828c8a828 +c0a028b89828a08830704018584818704018802028981818b02020c02020d02820d02820 +c82020c02020981820b89828a08830a08830a89030a89030b89828b89828c0a028c0a028 +c0a840c8a828c8b030d0b028d0b028d8b830e0b820e0b820e0c030e8c020e0c030e8c020 +e8c020e8c820e0c020e8c020e0c030d8b830d8b830d8b830c8b050d8c858c8b060d0c0a0 +d0c0a8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffc06078a83028c02020c82820c02020c02020c02020c82820c02030c82820 +d02820d02820d02820c02030d02820c82820c02020c82820c02030d02820c82820c82820 +c82820c02020b02030c02020b82020b02020901818d090a8ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffd0b880d0b880c8b050d8b830d8b830 +e0c030e0c020e0c030e0c020e0c020e8c820e0c030e8c020e0c030e0c030e0c030e0c030 +d0b028c8a828c8a828b89828b89828b89828a89030a89030a89058c0a858b8a070c0a880 +b8a080c0a880a8a0a8b8c0a0c8a0a8ffffffa03848a02020b82020c82820c02030d02820 +c02030b82020a02020d88090d0c0a0c8a0a8c0a880b8a080b8a080b8a080b09068b09068 +a89058a89030a08830a89030a89030b89828b89828c0a828c8a828c8b030d0b028e0b820 +d8b830d8b830e0b820d8b830e0c020e0c020e0c020e0c020e0c020d8b830d8b830c0a840 +c8b060d0b880d8c0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffd88090981820a83028b82020b82020c02020b02030c02020c82820c82820 +c82820c02030d82820c82820b82020b82020b02020b82020c82020d02820d02820c02030 +d02820c82820c82820a83028b02020c02030881818e0a8c0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd8a0b0d0b880c8b060d8b830d0b028d8b830e8c020 +e0c020e0c020e0c020e0c020e0c030e0c020e0b820d8b830d0b028d0b028c8a828c0a028 +c0a840a89030a89058c0a858b8a070c0a880c8b8a0c8b8a0c8b8a0c8b8a0d8c0b0ffffff +ffffffffffffffffffffffffffffffffffffa85060a02020b82020c82820d03828c02020 +c82820a83028a02020e0a8c0ffffffffffffffffffffffffffffffffffffffffffc0c0b0 +c8b8a0c8b8a0c8b8a0c0a880c0b078c0a858a89030a08830a89030a89030c0a828c0a840 +c0a028c8a828c8a828d8b830d8b020e0b820e0c020e0b820e0c020e0c020e0b820d8b830 +d8b830c8b060c0b078d0b880d8c0b0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffd090a8a03848a82020b02020b82020b82020c82820c02020c82820c02030 +d02820d02820c82020b82020b02020a01820a82020b02020c02020c02030d82820d02820 +d02820c02030c82820b82020b02020c82820a03038ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffd8c0b0d0b880c8b060c0a840d8b830d8b830e0b820e0b820e0c030 +e8c020e0c030e0c020d8b830d0b028c8a828c0a028c0a840b89828c0a840c0a858c0a858 +c0a880c0a880c8a0a8c8b8a0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa84050a02020a83028c82820d02820c82020 +c82820b82020a02020e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd0c0a8c8b8a0c0a880b8a070b8a070a89058a89058 +a89030c0a840b89828c0a028c8a828c8b030d0b028d8b830d0b028e0b820e0c030d8b830 +d8b830c0a840c8b050c8b050c0b078d0b880d0c0a8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffe0a8c0b86878a02020a83028b82020c02020c82820c02030c82820c82020 +c02020c02020b02030b02020a02020a01820a82020b02020b82020c82820c82820d02820 +d02820c82820b82020b02020b82020a02020c06078ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffd0c0a0c8b060c0a840d0b028d8b830e0c020e8c020e0c030e0b820d8b830 +d8b830d8b830c8a828c0a028b89828a89030b09068c0a858c0a880c0a880c8b8a0d8c0b0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04050a02020b82020c82820c82820c82820 +c02020b02020a02020e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8a0a8c8b8a0 +b8a080b09068b09068a89030a89030b89828c0a028c8a828c8a828d8b830d8b830d8b830 +c8b050e0c030c8b030c8b030c8b030c0a840d0b880d0c0a0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffd88090a82830b02020c02020c02020c02030d02820c82820c02020 +c02020b82020a82020a02020981820a02020a82020a82020a83028c02020c02020c02030 +c82820c02030b02020b82020a83028981820d8a0b0ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +d0c0a8d0b880c8b060c0a840c8b030d8b830e0c020d8b830e0c020d8b830d8b830d0b028 +c0a028b89828a89030c0a840c0a858b8a080c8a0a8c8b8a0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858a82020b82020c02020d02820c02030 +c82820b02020981820e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffc8b8a0b8a070a89058a89058a08830a89030b89828c0a840c8a828c8a828 +d8b830d0b028d8b830d0b028d0b028c8b030c0a840c0b078d0c0a0ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffd8a0b0b02030b02020c02020d03828d02820d02820c02030c02020 +a83028a82020901818981820981820a82020a82020b02020b02020b82020c02020c02020 +c02020c02020b02020b02020a82830983848ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0b880 +c8b060c0a840c8b030c8b030e0c020c8b030e0c020b8d038d0b028c8b030c0a828b89828 +a89030a89058b09068b8a080d8a0b0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858a02020b02020c82820c02030d02820 +c02020b02020981820d8a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd8a0b0b8a080a89068907828a08830a89030c0a840 +c0a028d0b028d0b028d0b028e0c020c8b030c8b030c0a840c8b060d0b880ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffd88090a01820c02020c02030d82820d02820d02820c82820b82020 +a82020901818881818901818a02020b02020b02020b02020b02020b82020b82020c02020 +c02030c02020b82020a82020901828c87080ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0c0a0c8b050 +c0a828c8b030d8b830d0b028e0c020b8d038c8a828d0b028c0a828a89030a89030a89030 +b8a080c8b8a0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa84050a02020b02020c82820d02820c82020 +c02020a83028981818d8a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffa89068a08830a89030 +a89030c0a028c8a828c8a828c8a828d0b028d8b830c8b030c8b030c8b060d0b880d0c0a8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffc07888903040b02030c02020d02820d02820d02820c02030b82020a82020 +a02020801018901818a02020b02020b82020c02020b82020c02020c82820c82820b82020 +c02020c02020b02030a82830983848d8a0b0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffc8b8a0c8b050c0a828 +d0b028d8b830e0c020c8b030c8b030c0a828c0a828a89030a89030b09068c0a880ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858a02020b82020c82020c02030c82820 +c82820b02020a02020e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8b8a0b09068 +a08830a08830a08830c0a028c8a828d0b028d8b830c8b030c0a828c8b030c0a858d0b880 +d0c0a8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffb86878a03848981818c02020c02020c82820c02030c82820b82020a82020901818 +881818881818981820b02020b82020c02020c82820c82820c02020c02030c02020c82820 +c02020b82020a82830a02038b85868ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffc8b8a0c8b060b89828c8b030 +d0b028d0b028c8b030d0b028c8b030b89828a89030a89058c0a880c8b8a0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858a82020b82020c82820d02820c02020 +c02030b82020a83028e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd8c0b0 +c0a880a89058a08830a08830b89828c0a028c0a828c8a828c8b030c8a828c8b030c0a858 +c0a880ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd8a8c0 +b86878a03038a02020b82020c02020c82820c82820c82020b02020a82020901818801018 +781010901818a82020b02020b82020c02020c82820c02030d03828c02020c82820c02030 +c02020a83028b02030a02058c08098ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffc8b8a0b8a070c0a840c0a828c8b030 +d8b830c8a828c8a828b89828c0a840a89058b8a070c8a0a8ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858a82020b82020c82820c02030c82820 +c02020b02020a02020e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd0c0a8b8a080a89058a08830a89030b89828c8b030c8a828c8b030c8a828c8b030 +c0a858c0a880ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd090a8c06078 +b03040a02020b82020c82820c82820c02030b82020b02020a02020901818801018781010 +781010901828b02020b02020b82020c02020c82820c82020c82820c82820d02820c02020 +a83028b02020a84050c07888ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffc0a880c0a840c8b030c8b030c8b030 +d0b028c8a828b89828a89030b09068c888a0d0c0a8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa84050a02020b82020c82820d02820c82820 +c02020a83028981818e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffc8a0a8b8a080a89058a08830b89828c8b030c8a828c8a828c8a828 +c0a840c0a858d0c0a8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffd8a0b0c06078a82830 +b02020c02020c82820d02820c82820c02020a83028981820a03038a85068a05068984078 +702838b02030a82020b02020b02020b02030b82020c02020c82020c02030c02020b82020 +a82830a85060d88090ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffc0a880c0a858c0a828c8b030c8b030c8b030 +c0a828b89828a89030b09068c8a0a8ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04050a02020b02020c82820c02030d02820 +c02020b82020901818e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffc0b0c0a08890907828a08830b89828c8b030c0a828c8b030 +c8a828c0a840c0a880ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffd8a0b0c87080a03038b02020 +c82820d82820d03828c82020c02030b02020981820a83028a85868d8a0b0ffffffc088b8 +a05080a84050b03040a02038a82830a82830a01820a82830b82020b02030b02030b83848 +c06078d88090ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd0c0a0c0a858c0a840c0a828c8b030d0b028c8b030 +c0a828a89030b8a070c888a0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04050a02020b82020c82820d02820c02030 +c02020b82020a02020d8a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffc0b0c0a89068a08830a08830b89828c8b030c8a828 +c8a828c8b030a89058c8b8a0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffb86878a03038b02020b82020 +d02820d82820d82820d02820b82020a02020a02020a05068c8a0a8ffffffffffffffffff +ffffffc06098c06078b85868a03848983848903040981850b83848b84050c06078d88090 +d8a0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffc0b078c0a840b89828c8b030c8a828c8b030c0a828 +a89030a89058c0a880ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04050a01820b02020c82820d02820c82820 +c02020b82020901818ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffc8a0a8a89068a08830a89030c0a028c8a828 +c8b030d0b028c0a840b8a070ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffc87080982030981818b82020c82820 +d02820d02820c02030c02020a02020a02020a85868c8a0a8ffffffffffffffffffffffff +ffffffffffffffffffd8a0b0d088a0c08098c08098d88090d088a0d8a0b0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffd0c0a0c0a858b89828c8b030c8b030c8b030c0a828a89030 +a89058b8a070d8c0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858a02020b82020c82820d02820c02030 +c82820b82020a02020d8a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffa89058907828b89828c8a828 +c0a028d0b028c8b030c0a858c8b8a0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd8a0b0c87080981820a02020b02020c02020c82820 +c02030d02820c02020a02020781010a87080d8a0b0ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffc0a880c0a840c0a828c8b030c8b030c8a828c0a028a89058 +b8a080ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858a82020b82020c82020d02820c82820 +c02020a83028981820e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffc8a0a8a08830a08830b89828 +c8a828d0b028c8a828c0a840c0b078ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffd8a0b0c06078982030b02020b02020c02020c02020c82820 +c02020b02020a02020901828a85868d0a8c0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffb8a070a89030c0a828c8b030c8a828c8a828b89828b09068 +c8b8a0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858a82020b82020c82820c02030d02820 +c02020b82020981820d8a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffa89068a08830b89828 +c8a828d0b028c0a028c0a028c0a858d0c0a8ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffd090a8c87080b03040b02030c82820c82820c02020c82820c02030 +a82020981820903040b86878ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffa0b058a89030c0a828c8b030c0a828c8a828b89828b8a080 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060a82020b02020c82820d02820c02030 +c02020a83028901818e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffb8a080a08830b89828 +c8a828d8b020c8a828c0a828a89058d0c0a0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffd090a8b85868981850a82830c02030c82820d02820c02030b82020b02020 +981820a03038a05080d098b0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffd0c0a8a89058a89030c0a828c8b030c8a828c8a828a89030c8b8a0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb85868a02020b02020c02020d02820c82820 +b82020a82020881818e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffc0b0c0b09068b89828 +c8a828d8b830c8a828c8a828c0a840c8b8a0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd090a8b85868a03040a82020b02020c82020c82820d02820c82820b02020981820 +a03038a87080d098b0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffc8b8a0c0a840a89030c0a828c8b030d0b028c8a828b89828e0a8c0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb86878a02038a02020b82020c02030c02020 +b02020a02020802028ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0a858a89030 +c0a028d8b830c8a828c8a828a89030c8b8a0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +d8a0b0b86058982030b02020b82020c02020d02820c02030d02820b02020a02020903040 +a85868d098c0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffd0c0a898a850a89030c8b030c0a828d0b028c0a028b89828d8c0b0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb068a0a04858a03040a83028b82020a83028 +a83028a84050884050ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0a858b89828 +c8a828d8b020c8a828c8a828a89030c8b8a0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd098b0 +c06078a82830a02020b82020c82820c82820c82820c82820c02020901828981820b86878 +d098b0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffc0a840a89030c0a828c8b030c8a828c8a828c0a028c8b8a0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb098b0b87888c07888c87080c06868c06868 +c06868c07888b87888ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffd0c0a8c0a858b89828 +c8a828d8b020c8a828c8b030a89030c0c0b0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb84050 +a82830b82020c02020c82820c02020c02030c82820b82020901828981818a85868d8a0b0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffa89058a89030c0a828c8b030c8a828c0a028c0a840c0a880 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8c0b0c0e0c0c0e0a8c0f0a098e0c0c0 +f0a098e0c0c0b098b0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffc0a880c0a840c0a028 +d0b028d8b830d8b020c0a840a89030ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffe0a8c0c87080b82020 +b02020d02820d82820d02820c02030c02020b82020a02020881818a85868d8a0b0ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffb8a070a08830c0a840c0a828d0b028c8a828d0b028c0a858 +c8b8a0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8a8a0b8c8c8c0d0d0c8e0c0c0e0e0d8 +e8c8d0d0c8c8b0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffd0c0a8c0a858b89828d8b830 +d8b020d8b020c8a828c0a840a89058ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffd098c0d098c0c070a8c070a8 +c06098c84890c84890c84890c84890b03078c83078a04080c84890b85090b85090c06098 +c070a8c070a8d098c0d098c0ffffffffffffffffffffffffffffffffffffffffffd098c0 +b878a8c070a8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffd088a0b84050b02020b02020 +d02820d02820d02820d03828d02820b82020981820982030b87888e0a8c0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffc8a0a8a89058a89030c8a828c8a828c8b030c8a828c0a840 +c0a880d0c0a8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa0a0b0a0a0b0c8c8c0c8d0c8d0d0c8d0d0c8 +d0d0c8c0c0c0a8a0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffc0a880c0a840c8a828d8b020 +d8b020d8b830c8a828a89030b8a080ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffd098c0d088a0b85090c84890b03078c83078b03078c83078 +c83078c83078d82878c83078d82878c83078d82878c83078d82878c02870c83078c83078 +c83078c83078c83078b85090b878a8ffffffffffffffffffffffffffffffffffffd098c0 +b068a0a04080c84890c070a8d098c0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffd090a8b85868a01820b02020c02020 +d82820d02820c02030c02020b82020a02020982030b86878ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb8a070a89030b89828c0a840d8b020d0b028c0a028 +c8b060c0a880d0c0a0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0b0b8b0b8a8c0c0b0c8d0c8d0d0c8d0d0c8 +d0d0c8c0c0c0a8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffc8b8a0c8b050c0a028d0b028d8b020 +d8b830c8a828c0a028b09068c8b8a0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffd098c0c070a8c84890c83078b03078c83078c83078c02870c82870d02870 +d82878d82878e03080d82878e03080d82878e03080e03080e03080d82878d82878c83078 +d82878d82878b03078b02068a04080ffffffffffffffffffffffffffffffffffffffffff +c070a8b85090b03078d04080c84890c070a8d098c0ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb888a0a85060a82830a82020c02020c02020 +c02030c82820c02020a82020982030a03038b86878d8a8c0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb8a080a89058a89030c0a028c8b030d0b028c8a828 +c0a840c8b050c0a880d8c0b0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0a8b8b0b8a8c0c0b0c8d0c8c8d0c8c8d0c8 +c8d0c8c8d0c8a0a0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffd8c0b0c8b060c0a028d0b028d8b020e0b820 +d0b028c8a828c0a840b09068ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +c088b8c06098d04080c83078c02870c02870c82870d02870c82870d82878d02870d82878 +d82878e03078e03078e03078e03078e03078e03078d82878e03078e03080e03080e03080 +e03080d82878d02870c02870a03070ffffffffffffffffffffffffffffffffffffffffff +c088b8b03078c83078d82878c83078c83078c84890c06098d098c0d098c0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd0a8c0a87080983848901818a83028c02020c02020 +c82820c02020a82020901818a03038a87080ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffc8a0a8b09068a89058b89828c8a828c8b030d0b028 +d0b028c8a828c8b050c8b060d8c0b0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0a8b0b0b8c0c0b0c8d0c8c8d0c8c8d0c8 +c8d0c8c0c0c8b0b0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd0c0a8c0a880c0a840c8a828d0b028d8b830d8b830 +c8a828b89828a89058c8a0a8ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc088b8b85090 +c83078b03078b03078c02870c82870d02870d02870d02870d02870d02870e03080d02870 +d82878d02870d02870c82868d02870d02870d02870d02870d02870d02870d82878d82878 +d82878d02870c82870b02068a03070ffffffffffffffffffffffffffffffffffffffffff +ffffffc84890c83078d82878e03080e03080d82878c83078c84890c06098d098c0e0a8c0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb098b0a08890a87080b86058a83028a83028c02020 +c02020b02030981820983848a87080ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffc8a0a8a08830a08830c0a828c0a828c8a828 +e0b820d8b830c8a828c0a840c8b060d0c0a0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb098b0c8a0a8c0c0c0d0d0d0d8d8d8d8d8d8 +c8d0c8c0c0c8a0a0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffc8b8a0c0a880c8b050d8b020d8b830d8b020d0b028c8a828 +c0a828c0a840b09068ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffd098c0c06098c84890c02870 +c02870c82870d02870d02870c02870c82870c82870d02870c82870c82870c02870c02870 +b82068b82068b82068b82068b82068c02870b82068b82068b82068c02870c02870c02870 +c02870c02870b02068a82870a85088ffffffffffffffffffffffffffffffffffffffffff +ffffffc088b8c02870d02870e03080e03080e03080d82878c83078e03080c84890c06098 +d098c0d098c0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb8b8b8ffffffd8c0b0f0a098c06868a83028b82020 +a83028b02020983848a87080ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffb8a080a89058a08830c8a828d0b028 +d8b020d8b020d8b830d8b020d8b830c8b050d0b880d8c0b0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb098b0b0a8b8c0b0c0d0d0d0d8d8d8c0d0e8 +c0d0e8c8d0c8a0a0b0ffffffffffffffffffffffffffffffd0c0a0d0c0a8ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffd0c0a8b0b888c0a880c0a840d8b830d8b830e0c020e0c020c8b030c0a828 +a89030c0a858d0c0a8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffc088b8a04080b02068c02870c82870 +d02870d02870c82870c83078c82870a82870b82068b02068b02068a82870a02068a82870 +a03070a03070a03070984078a03070984078b03078a03070a03070a03070a03070a82870 +a03070a02058a02058984078b068a0ffffffffffffffffffffffffffffffffffffffffff +ffffffd098c0b03078d02870e03080e03080e03080e03080e03080c83078c83078c83078 +b03078c84890c088b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffffffffff0a098b84050b03040 +981818982030b86878ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffd8c0b0a89068907828b89828c8b030 +d8b020d8b830d8b020d0b028d0b028d0b028c8b030d0b880d0c0a0ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0a8b8b0a8b8c8c0d8d0d0e0d0d0e0e0e0e0 +c8d0c8b8b8c8b0b0b8ffffffffffffffffffd0c0a0d0b880c0a880b8a070b0b888ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd0c0a0c8b060c0a840c8b030c8b030d8b830e0c020e0c020c8b030c0a828c0a840 +a89058c0a880ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffc070a8b85090b82068c82870d82878e03078 +d02870d02870c82870b82068a82870a02068a02068a02068984078984078a85088b068a0 +c088b8b098b0d098c0ffffffffffffd098c0ffffffffffffd098c0d098c0c088b8c088b8 +b068a0a05080a05080b068a0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffb85090b03078d82878e03080e03080e03080e03080e03080e03080c83078 +c83078c02870c83078c84890c06098d098c0ffffffffffffffffffffffffffffffffffff +ffffffffffffb0b0b8ffffffffffffffffffffffffffffffffffffffffffd88090801018 +903040c06098e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffc8b8a0a89058a08830b89828 +c0a028d0b028e0b820d8b830d8b020d8b830c8b030c8b030c8b060d0b880ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8b8b0c8c0b8d0d0c8e0d0d0e0d0d0d0 +c8c8d8c8d0c8b0b8a8ffffffc0c0b0c8b8a0c8b060c0a858c0a840c0a858c0b078d0c0a0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8b8a0 +c8b060c0a840c8b030c8b030b8d038e0c020e0c020e0c020c8b030c0a828a89030b09068 +b0b888ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffd098c0b068a0a82870b02068d02870d02870d02870d02870 +d02870c82868b02068a02058a02058a03070b068a0b878a8c088b8d098c0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffc088b8a82870b03078d82878e03080e03080e03080e03080e03080e03080 +e03080d82878c02870c02870b03078c83078c06098d098c0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8a0a8500828 +c888a0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffc8b8a0a89068a08830 +a89030c0a028c8b030d0b028d8b830e0c020d0b028d8b830d0b028c8b050c8b060d0c0a0 +d8c0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8a8a0b8c0b8d8d0c8c8d8d8d8d8d8d8 +d0d0c8d0c0a0b0b888a8b078b8a070c0a840c0a840c0a828c0a828c8b030d8c858d0c0a0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffd0b880c8b060c8b030 +c8b030d8b830e0c020e0c020e0c020e0c020d8b830c8b030c0a828a89030b09068c8b8a0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffc088b8b85090a82870b82068c82870d02870c82868d02870c82868 +b02068a02058a03070a85088b878a8c088b8ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffc088b8a04080a82870c02870d82878e03080e03080e03080e03080e03080 +e03080e03080e03080e03080d82878b03078c02870b03078c06098c070a8c088b8d098c0 +d0a8c0ffffffffffffffffffffffffffffffffffffffffffb8b8b8a8a0a8a08890a08890 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0c0a8b09068 +a89030a89030a89030c8a828d0b028e0c020e0c020d8b830d8b020d8b830c8b050c8b050 +d0b880d0b880d0c0a0d8c0b0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8a8a0b8c8c8d8d0d0d0e8c8d0e0e0d8 +d0c0a0c0b078c0a840a89058c8b030c8b030c8a828d0b028d8b830d8b830c8b050d0b880 +d8c0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffd0c0a0d0b880c8b050c8b030d8b830 +e0c020e0c020e0c020e0c020e0c020d8b830c8b030c0a828a89030b09068c8b8a0ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffc088b8b85090b03078b82068c82870d02870c82868d02870b82068a02058 +a02068a04080b068a0d098c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffa85088b03078c02870c82870d82878e03080e03080e03080e03080 +e03080e03080e03080e03080d82878d82878c83078c02870b02068b03078b03078c06098 +d090a8ffffffffffffffffffffffffffffffffffffffffffb0a8b8a098b0b0a8b8ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0c0a8 +b8a080a89058a08830a89030c8b030c8a828d8b830d8b020e0c020e0b820e0b820d8b830 +d8b830c8b050c8b050c8b060d0b880d0c0a8ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa0a0b0b0b0b8c8c8c0e8c8d0d8c0b0d0c0a0 +d0b880c0a840b89828c8b030d0b028d0b028e0b820e0b820e0c020d8b830e0c030d0b880 +d0c0a0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffd8c0b0d0c0a0d0b880c8b060c8b050c8b030d8b830d8b830e0c020 +e0c020e0c020e8c820e0c020e0b820d0b028b89828a89030b8a070c8b8a0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffc088b8b85090b03078c02870c82870d02870d02870c82868b02068a02058984078 +a85088d098c0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffc088b8b03078c02870d02870d82878e03078e03080e03078e03078 +e03078e03080e03078e03078e03078e03078d82878c83078c82870c82870c83078b03078 +b03078c87080c08098ffffffffffffffffffffffffb0a8b8a8a0b8ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +c0c0b0b8a080a89068a89058a89030c0a028c8a828e0b820e0b820e0b820e0b820e0b820 +e0c030e0b820d8b830d8b830c8b050c0b078c8b8a0c8b8a0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa0a0b0b0b8a8c8b8a0d0c0a0d0b880d8c858 +d8b830c8a828d8b830d8b020e0b820e0b820e0c020e0c020e0c020e0c020e0c030d8c858 +d8c0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd8c0b0d0b880d0b880c8b050d8b830d8b830d0b028e0c020e0c020e0c020e0c020 +e0c030e0c030d8b020d8b830c0a028c0a028b89828c0a880d0c0a0ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +d098c0b85090a03070c02870c02870d02870c82868c82868a02058a02058a05080b878a8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffd098c0b85090a82870d02870d82878e03078e03078e03078e03078 +e03080e03078e03080e03078e03078e03078e03078d82878e03078c83078d02870c82868 +c02870b02068a85060c06098ffffffffffffb0a8b8a8a0b8ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffc0c0b0b8a080a89058a89030b89828c0a028d8b830d8b020e0c030e0b820 +e8c020e0c020e0b820d8b830d8b830d8b830c8b060c8b060d0b880d0b880c8b8a0c8b8a0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0b888b8a080c0b078c0a858c0a840c0a840 +d0b028e0b820e0b820e8c020e8c020e0b820e8c020e8c020e8c820e8c820e0c030d8c858 +d8e068d8c0b0ffffffffffffffffffffffffd8c0b0d0c0a8d0c0a0d0c0a0d0c0a0d0c0a0 +d0b880d0b880c8b050d8b830d8b830d8b830e0c020e8c820e8c820e8c820e0c020d8b830 +e0c030d8b830c8a828c0a028b89828c0a840c0a880d8c0b0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +c06098b03078c02870b82068c82870c82870b82068a82870a02068a85088d098c0ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffb068a0b03078b82068c82870d82878e03078e03078e03078 +e03078e03080e03078e03078e03078e03078e03078e03078d82878d82878e03078e03078 +c82868b83848a03070b87888d098c0ffffffa8a0b8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffc8a0a8b09068a89058a89030c0a028c8a828d0b028d8b830 +e0b820e0c020e8c020e8c820e8c020e0c030e0c030d8b830d8b830d8b830c8b050c0a858 +c0a880d8c0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd0c0a8c0a880a89058c0a840c8a828d8b020e0b820 +e0b820e8c020e8c020e8c020e8c020e8c020e8c020e8c820e8c820e8c820e8c820e0c030 +d8c858f0a098d8c0b0d8c0b0d8c0b0d0c0a0d0b880d8c858c8b050c8b050c0a840d8b830 +d8b830e0c030e0c030e8c020e0c030e8c820e8c820e0c020e0c020e0c020d8b830c8b030 +c8b030c0a840a89030b09068b09068f0a098ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc070a8 +a82870c02870c02870c82868c82870c02870a02058a02068a05080ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffc088b8a04080a02068c82868e03078c82868e03078e03080 +e03078e03078e03080e03078e03078e03078e03078e03080e03078d82878e03078e03078 +d02870c83078c06098c898b0b0a8b8a8a0b8ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb8a080a89058a89058b89828b89828c8a828 +d8b830d8b830e0b820e0c020e0b820e8c020e8c020e8c020e8c020e0c030d8b020b89828 +a89058c0a880ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffd0c0a8d0b880c8b060c0a828c8a828e0b820d8b830e0b820 +e8c020e8c020e8c020e8c020e8c020e8c820e8c820e8c020e8c820e8c820e8c820e0c030 +e0c030d8c858d8c858d8c858c8b060d8c858c8b050d8b830d8b830d8b830e0c020e0c030 +e8c020e8c020e8c020e8c020e8c020e8c020e0c020e0c020d8b830c8b030c8b030c0a828 +a89058a89058b09068b8a080d8c0b0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd098c0a04080 +b82068c82868c82868c83078c02870a02058a02068b068a0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffa85088a03070b02068d02870d02870d02870e03078 +e03078e03078e03080e03080e03080e03080d02870e03080e03078e03080e03080e03080 +d04080c87080d098b0d098c0b098b0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffc8b8a0a87080a89058a89058a89030 +c0a028c8a828d0b028e0b820e0c020e8c020e8c020e8c020e8c820e8c020d8b830b89828 +c0a840c0a880ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffd0c0a0c8b060c8b050d8b830d8b830e0c020e0c020e8c020e8c020 +e8c820e8c020e8c820e8c820e8c820e8c820e8c820e8c820e8c820e8c820e8c820e8c820 +e0c030e0c030e0c030d8c858e0c030e0c030e0c030e0c030e8c820e8c820e8c820e8c820 +e8c820e8c820e8c820e8c820e8c820e0c030d8b830d0b028c8b030c0a840a89030a08830 +a89068c8b8a0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb85090a02068 +c02870b82068c82868c02870b02068a02068a85088d098c0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb878a8984078a02058c82870d02870d82878e03078 +e03078e03080e03080e03078e03078e03080e03078e03080e03078e03080d02870c82870 +c06098e0a8c0c088b8c898b0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8b8a0b09068 +a08830907828a89030c0a840c8a828d8b830d8b830e0b820e0c030e0c020c0a840a08830 +a89030d0b880ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd0c0a0c0a880c0a858c0a840d8b830e0c030e0c020e8c820e8c820e8c820e8c820 +e8c820e8c820e8c820e8c820e8c820e8c820e8c820e0c030e8c820e8c820e8c820e8c820 +e0c030e0c030e0c030e0c030e0c030e0c030e8c820e8c820e8c820e8c820e8c820e8c820 +e8c820e8c820e0c030d8b830c8b030d0b028c0a828a89030a08830a08830b8a080ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffc088b8a02068a82870 +c82870c02870b82068a02058a82870b85090ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffc088b8a04080a02068b02068c82868e03078e03078 +e03078e03078e03078e03078e03078e03078e03080e03078e03078e03080c84890d088a0 +e0a8c0d098c0b098b0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +d8c0b0c8b8a0c0a858a08830a08830a89030c0a028c8b030d0b028c8b030c0a828a89030 +c0a858d0c0a0ffffffffffffffffffffffffffffffffffffffffffffffffffffffd0c0a8 +d0b880c8b050c8b050e0c030e0c030e8c820e8c820e8c020e8c820e8c820e8c820e8c820 +e8c820e8c820e8c820e8c820e8c820e8c820e8c820e8c820e8c820e8c820e8c820e8c820 +e8c820e0c030e0c030e0c030e8c820e8c820e8c820e8c820e8c820e8c820e0c030e8c020 +c8b030d8b830c8b030c0a828a89030a89030a89058c0b078c8b8a0ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffd098c0a05080a03070b82068 +c02870c82870b82068a82870a04080c088b8ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb068a0a02058a82870c02870d02870e03078 +e03078e03078e03078e03078e03078e03078e03080e03078e03080e03078d88090d098c0 +d098c0b098b0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffc8b8a0b8a080a89058a08830a89030a89030a89030a89030a89058 +c0a880ffffffffffffffffffffffffffffffffffffffffffffffffd8c0b0d0c0a0c8b060 +d8b830e0c030e0c030e0c030e8c820e0c030e8c820e8c820e8c020e8c820e8c820e8c820 +e8c820e8c820e8c820e8c820e8c820e8c820e8c820e0c030e8c820e8c820e8c820e8c820 +e8c820e8c820e8c820e8c820e0c030e8c820e0c030e0c020e0b820d8b830d8b020c0a840 +b89828a89030a08830a89058c0b078d0c0a0d0c0a8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffb878a8a03070b02068c02870 +c02870c02870a02058b03078c08098ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb878a8984078981850b82068d02870e03078 +e03078e03078e03078e03078e03078e03078e03078e03080e03078b82068c83078c06098 +c088b8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffc8b8a0c8b8a0c0a880c0a880b8a080b8a080b8a080 +ffffffffffffffffffffffffffffffffffffffffffd0c0a8d0b880d0b880d8c858e0c030 +e0c030e8c820e8c820e8c820e8c820e8c820e8c820e8c820e8c820e8c820e8c820e8c820 +e8c820e8c820e8c820e8c820e8c820e8c820e8c820e8c820e8c820e8c820e8c820e8c820 +e8c820e8c020e0c030e0c030d8b830d8b830c0a828c0a828b89828b89828b89828b09068 +b8a070b8a080b0b888d0c0a8ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffd098c0a85088a03070c02870c82870 +c82868b02068a02068a85088d098c0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffd098c0a85088a02058a02058d02870d02870 +e03078e03078e03078e03078e03078e03078e03078e03078c02030b82068a03070c06098 +d0a8c0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffd0c0a0d8e068d8e068e0c030e0c030e8c820 +e8c820e8c820e8c820e8c820e8c820e8c020e8c020e8c820e8c820e8c020e8c820e8c820 +e8c820e8c820e8c820e8c820e8c820e8c820e8c820e8c820e8c820e8c820e8c820e8c820 +e8c020d8b830c8a828c0a840b89828c0a840a89058c0a858b8a070d88090c0a880d088a0 +d8c0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffb878a8a03070a82870c82870d02870 +c02870a02058a04080b878a8ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffb068a0a02068a02058c02870c82868 +d02870d82878d82878e03078e03078e03078e03078c82868d04080d04080c02870a85088 +c088b8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd0c0a8c8b8a0c0b078d8c858e0c030e0c030e8c820 +e8c820e8c820e8c820e8c020e8c020e8c020e8c020e8c020e8c020e8c020e8c020e8c020 +e8c020e8c020e8c820e8c820e8c820e8c020e8c820e8c020e8c020e8c020e8c820e8c020 +e8c020d8b830c0a840c0a858b8a070b8a080d0b880d8a0b0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffd098c0a85088a02068c02870c82870d02870 +b82068a82870c06098ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffc088b8984078981850b02068c82868 +d02870d02870d02870d02870d02870d02870b82068c82868c84890d88090d04080b03078 +b85090d098c0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0b888c0b078c0a840c0a840c8b030d8b830 +d0b028d8b830d8b830e0c030e0c030d8b830e0b820e0c030e8c020e8c020e8c020e8c020 +e8c020e0b820e8c020e0b820e0c030e0c030e0c030e8c020e0c030e8c020e8c020e8c020 +d8b830c8b060d0c0a0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb878a8a03070a82870c82870c82868d02870 +b02068b03078d098c0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffd0a8c0a05080981850a02058c82868 +c82868c82868c02870c83078d04080a02058a02058b82068d82878c84890c84890d82878 +c83078b85090ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffd8c0b0d0c0a0c0a858c0a840a89030 +a89030a89030c0a028c8b030d8b830d0b028d0b028d8b020d8b830d0b028d0b028d8b020 +d8b020d8b020e0b820e0b820d8b830e0b820e8c020e0c030e0b820e0b820e0b820d8b830 +d8b830d8c858d8c0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb068a0b03078b82068c82868c82868c82868 +b02068b85090ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffa87080703858981850c82868 +b82068b82068a82870b85090d088a0d088a0981850a82870d04080e03080e03080e03080 +d04080c83078c84890ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd8c0b0 +b8a080b09068a89058a08830a08830a89030a89030b89828b89828c0a028d0b028d0b028 +c8a828d0b028c8a828d0b028d8b020d8b830d8b020d8b020d8b830d8b020e0b820d8b830 +c0a840d0b880d8c0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd098c0a85088b03078c02870c82868d02870b82068 +a03070c088b8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffff9898a0585068901828981850a02058 +c02870a02058a03070a05068b878a8d8a8c8a85088a03070c02870c83078e03080e03080 +e03080e03080b03078c070a8ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffd0c0a8b8a070a89058907828907828a08830a89030a89030b89828 +b89828c0a840c0a028c0a028c0a028c0a028c0a028c8a828c8a828c8a828c8b030c8a828 +c0a840d0b880d0c0a8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb878a8b03078b02068c82868c82868c82868b82068 +a04080ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff9898a0585068582850500828981850981850 +a02058a02058582850703858808090a098b0ffffffc06098a02058c82870e03080e03080 +e03080e03080d04080b03078d098c0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff909878584818704018607030907828907828 +907828a89030a89030b89828b89828b89828c0a840c0a028c0a028c0a840c0a028c0a828 +c0a840c0a880ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffc06098a03070b82068c82868c82868c82868a02058 +b068a0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffff9898a0585068384038404048582850702838981850 +702838582850582850585068808090a8a0b8ffffffffffffc06098b03078c83078e03080 +e03080e03080e03080b03078b85090ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff788078582850584818584818702838584818 +704018607030907828907828a08830a08830a08830a08830a89030b89828b89828a89030 +c0a858d0b880ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffa85088b02068c02870c82868c82868b82068a02058 +b098b0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffa08890585068404048404048404048582850500828702838 +500828703858703858808090a0a0b0ffffffffffffffffffe0a8c0c84890b03078d04080 +e03080e03080e03080e03080b03078d098c0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff788078505058404040384038405020383828 +584818584818584818a89058788848907828907828907828a08830a08830a08830a08830 +c0a840b8a080ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffa04080c02870c82868d02870c82868c82868a02068 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffff808090585068404048384038384038384038404040582850500828 +582850884050808090a8a0b8ffffffffffffffffffffffffffffffc088b8c83078b03078 +e03080e03080e03080e03080b03078c84890ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff808090505058404040383828584818383828 +506028383828585068a098b0b0a8b89898a0a89068a89058907828907828907828907828 +a89058b0b888ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffc088b8b03078b82068c82870d02870c82868b02068a03070 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffff9898a0585068404048404040404048384038384038404040384038582850 +585068808090b0a8b8ffffffffffffffffffffffffffffffffffffffffffc06098b03078 +c83078e03080e03080e03080e03080b03078c070a8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff808090404048404040384038383828383828 +404048404040706878ffffffffffffffffffc8a0a8b8c0a0a89068788848788848788848 +a08890c0c0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffb878a8a03070c02870c82868d02870c82868b02068984078 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffb0a8b8808090505058404040404040404040404040404048404040404048505058 +808090b098b0ffffffffffffffffffffffffffffffffffffffffffffffffd098c0b85090 +a02068c83078e03080e03080e03080d82878c84890d098c0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff808090505058404040384038384038384038 +404040404048706878ffffffffffffffffffffffffffffffffffffffffffb098b0b888a0 +b0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffb878a8b03078c82868d02870d02870c02870b03078a05080 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffb0b0b8b0b0b8706878404040384038404040404040404048404048505058808090 +b0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb878a8 +a03070a82870c02870e03080e03080e03080d82878c070a8ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff808090505058384038404040384038384038 +404048404048706878ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffb068a0b02068c02870d02870d02870c82870b03078b068a0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffff9898a0585068404040384038404040404048505058808090ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +a85088a03070c83078d82878e03080e03080e03080c84890d098c0ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff808090505058404048384038384038404040 +404040404048706878ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffa05080b02068c02870c82868d02870c82870b03078c088b8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffff788078505058383828404048585068808090ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +d098c0a04080b02068d02870e03078e03080e03080c83078c06098ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff808090505058404048404040384038404040 +404048404048585068ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffff984078b03078c82868d02870d02870c02870b03078c088b8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffa08890703858505058585068808090b8b0c0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffb068a0a02058c83078e03080e03080d82878c02870b85090d098c0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff808090505058404048384038384038404040 +404040404048706878ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffff984078a82870c82868d02870d02870c82870a82870d098c0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffd0a8c0b888a0b888a0c8a0a8ffffff +ffffffffffffffffffffffffa8a0a8706878706878808090ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd098c0a04080c82870e03080e03080d82878c83078c83078b068a0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff808090505058404048404040384038404040 +404040384038585068ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffff984078a82870d02870d02870d02870c02870b03078d098c0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffc890a8a85868a04858a04858b09068c888a0 +ffffffffffffffffffffffffa8a0a8808090a08890ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffc070a8b02068d02870d82878d82878e03080c83078b03078ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff808090505058404048404040384038404040 +404048404048585068ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffff984078a82870c82870d02870d02870c82870b03078d098c0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd090a8a85060982030a02020a02020a03038b86058 +d88090ffffffffffffffffffa098b0a098b0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffa02068c02870c82870e03080e03080c83078b03078c06098ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff808090585068404048384038404040384038 +404048384038585068ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffa04080a82870c82870d02870c83078c82870b03078d098c0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffd098b0c06078a82020a82020b02020a83028a82020a83028 +c06868f0a098c8a0a8a8a0a8a8a0b8ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffa04080b02068c83078e03080e03080d82878c83078a04080ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff808090585068404048404040384038404040 +404048384038585068ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffa05080b03078c02870d02870d02870c02870b03078c088b8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffd090a8b85868a02020b02020c02020c82820c82820b82020a83028 +a83028c07888a8a0a8b0a8b8ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffb878a8a82870c02870d02870e03080e03080c83078a82870ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff808090505058404048404040404040384038 +404048582850585068ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffa05080a02068c82870d82878d82878c82870b03078c06098 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffd088a0b86058981820b82020c82820d02820d02820d03828c02020b02020 +a02020a05068c890a8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffa03070b82068d02870e03080e03080d82878b03078c070a8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff808090505058384038384038404040384038 +404048404048585068ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffb068a0a03070c02870d02870d02870c82870b03078c06098 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd88090b84050a01820b02020c82820d02820d02820c02030d02820b02020981820 +a03038c07888ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffb85090b03078d02870d82878e03080e03080c82870c84890 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff808090585068505058404048404048384038 +404040404048585068ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffc088b8b03078c02870c82868d02870c83078c02870b85090 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +d88090e04840a82020b02020c82820c82820c02030c82820c02020b02020a02020982030 +b86058d8a8c0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffd098c0b03078c83078d82878d82878e03080c83078c02870 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff9898a0808090808090788078788078706878 +505058404048585068ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffa04080b82068c82870d82878d82878c83078b85090 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd88090 +b84050b82020c02020c02020d02820c82820c02020b82020a82020a02020a03038b85868 +d090a8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb85090c02870c82870d82878e03080e03080c02870 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa098b0a8a0a8b0b0b8c0c0b0c0c0c0a8a0a8 +909878706878706878ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffa04080b02068c82868e03078d82878c02870b03078 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd88090a04858 +c02030c02020c82820c82820c02030c82820b02020a02020981820983848b86878c8a0a8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb85090a82870c02870d82878e03078d02870c02870 +c070a8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa0a0b0b0b0b8c8c8c8d8d8d8d8d8d8d0d0d0 +b8b8c09898a09898a0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffa85068a82870d02870e03078d82878c83078b03078 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffd88090a84050b02020 +b82020c82820d02820c02030c02020b82020a02020901818903040b86878d098b0ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb068a0a82870c02870c83078d82878d82878c83078 +a85088ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8b0b0b8c0c0c8d0d0d0d8d8d8e0e0e0 +d8d8d8b8b8c0a8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb85090c02870c82868d82878d82878c82870b03078 +c088b8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffd88090b84050a82020b82020 +c02020c02030d02820c02020a83028b02020901828903040a85088d098b0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffc088b8a04080c02870d02870e03078d02870c83078 +a03070ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa098b0a8a0b8c0c0c0c8c8c8d0d0c8d0d0d0 +d8d8d8c8c0d8b0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb878a8b03078d02870d02870e03078e03080b02068 +b068a0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffd090a8a84050a02020b82020c82820 +c82820c02020c02020b82020a82020901828a03040c06098d8a8c0ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb85090a02068d02870e03078d02870c83078 +a03070ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8b0b0b8c8d0c8d8d8d8d0d0c8d0d0d0 +d0d0c8c0c0c8b8b0c0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd098c0d04080c02870d02870e03080e03080c02870 +a04080ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffc08090a84050a82020b82020c82820c02030 +c82820c02020a83028b02020981820901828c06098ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb068a0a02058d02870e03078d82878c02870 +b03078d098c0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8a0a0b0c0c0c0d0d0d0d0d0d0d8d8d8 +d0d0c8c0c0c8b0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb85090b02068d02870d02870e03078d82878 +b03078c088b8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffc08090a84050a02020c02020c82820d82820d82820 +c82820b82020b02020901828901828a87080ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb068a0a82870c82868d02870c83078c02870 +b03078c070a8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8a8a0b8c0c0c0d0d0c8d0d0c8d0d0c8 +d0d0d0c0b0c0b0b0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb068a0a03070c82870e03078e03078d02870 +c02870c06098ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffc07888b83848a02020a83028c02020d02820d02820d02820 +c02030a82020901818983848c08098ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb878a8a82870c82868d02870d82878c02870 +a82870c06098ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0a8b8b0a8b8c0c0c0d0d0d0d0d0c8e0e0d8 +d0d0c8c0c0c0b0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffc088b8b03078b82068d82878e03078e03078 +c02870b85090ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffc07888b83848a02020b02020c02020b82020c02020d02820c02030 +b02020982030a84050c07888ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb878a8a03070c82870d82878d02870c82870 +a82870c06098ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8b0a8b8c0c0c8d0d0c8d8d8d8d0d0c8 +d0d0d0c0b0c0b0b0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffd098c0b85090b02068c83078e03078d82878 +c83078b03078d098c0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffb87888a84050a82020b02020c02020c82820a83028b82020c82820b02020 +a02020a04858d088a0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb878a8b03078b82068d02870d82878c82870 +c02870c06098ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffa8a0b8c0c0c0d0d0c8d0d0c8d8d8d8 +d0d0c8c0c0c0b0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffc06098a82870c82870e03078e03078 +d82878c83078c06098ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffc08090a03040a83028b82020c02020c82820c82820c02020a83028b02020981820 +a84050c08098ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffc088b8984078c02870d02870d82878c83078 +c02870b85090ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0a8b8b0b0b8c0c0c8d0d0c8d0d0c8d0d0c8 +d8d8d8b8b8c0b0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffc070a8a03070c02870d02870e03078 +c83078c83078c84890d098c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +c888a0a03040a02020b82020c02020c82820c02020c02020c02020a82020901818983848 +c08098ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffc088b8a04080c82868c82868d02870d82878 +c02870b85090ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffa8a0b8c0c0c8d0d0c8d8d8d8d0d0c8 +d0d0c8c0c0c0b0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffd098c0b85090a82870c82870e03080 +d82878e03080c02870c070a8ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc07888 +a03848a02020b82020c02020c82820c82820c02030c82820b02020981820983848a87080 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffd098c0a04080b82068d02870d02870d02870 +c02870b85090ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0a8b8b0b0b8c0c0c8d0d0c8d0d0c8e0e0d8 +d0d0c8c0c0c8b0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffc070a8a82870c02870d02870 +e03080e03080d02870c84890d098c0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffd8a8c0b87888903040 +a02020c02020c82820c82820c82820d02820c82820a83028a01820a03848c08098ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffd098c0a85088b02068d02870d02870d02870 +c02870b03078ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffa8a0b8c0c0c0d0d0d0d0d0c8d8d8d8 +d0d0c8c0b0c0b0b0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffd098c0a03070b02068c82870 +d82878e03078e03080d82878c070a8ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffe0a8c0c07888982030981820 +b82020d02820d02820d02820c02030c02020b02020981820901828c888a0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffd098c0a85088b02068d02870e03078d82878 +c02870b03078ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0a8b8b0b0b8c8c8c8d0d0c8d0d0c8d0d0c8 +d8d8d8c0c0c0a8a0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffc070a8a03070c02870 +d02870e03078e03080d02870d04080c070a8ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffc87080a03040a82020b82020 +c02020d03828d82820d02820c02030b02020981820903040b87888ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffc088b8a03070b02068c82868e03078c82868 +c02870c06098ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffb0a8b8c0c0c8d0d0c8d8d8d8e0e0d8 +d0d0c8b8b8c8a8a0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffd098c0a85088a02068 +d82878e03078e03078d82878c83078c06098ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffd090a8a85868b03040b02020b82020c82820 +d03828c02020c82020c02030b02020a02020a03848c08098ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb878a8a03070b03078d02870d02870d02870 +c02870c06098ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0a8b8b0b0b8c0c0c8d0d0c8d0d0c8d0d0c8 +d8d8d8c0c0c0a8a0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc070a8b03078 +c82870d02870e03078e03080c83078c84890c070a8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffe0a8c0a85868a02020a02020b82020c82820c02030 +d02820c82820b82020a82020a02020a85060c888a0ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb878a8a03070b82068d02870d02870d02870 +a82870c070a8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8b0b0b8c0c0c8d0d0c8d0d0c8d8d8d8 +d0d0c8c0c0c8a8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd098c0a85088 +b82068c83078e03078d82878c83078c83078c84890ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffd090a8a85868a03038a82020a83028c02020c82820d02820 +c02020c82820a82020901818a04858d088a0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb068a0a02068b82068c82868d02870d82878 +a82870d088a0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffa8a0b8c0c0c0d0d0c8d0d0c8d8d8d8 +d0d0c8c0c0c0a8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb878a8 +a02068c82870c83078e03080e03080c83078c84890c06098ffffffffffffffffffffffff +ffffffffffffffffffd8a0b0a85060982030a82020b82020c02020c02020c02020c02030 +b82020a82020982030a04050c08098ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffc06098a02068c02870d02870d02870c83078 +a02068d098c0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8b0b0b8c0c0c8d0d0c8d0d0d0d0d0c8 +d8d8d8c0c0c8b0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd098c0 +a04080b02068c82870c83078e03080e03080d82878c84890c070a8ffffffffffffffffff +ffffffffffffd8a0b0c06078981820a02020b82020c82820c02020b82020a83028c02020 +a83028881818a03848c888a0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb85090b02068c02870d02870d02870c82870 +981850ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0a8b8a8a0b8c0c0c0d0d0d0d0d0c8d0d0c8 +d8d8d8c0c0c0b0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +b068a0a03070b82068c83078e03080e03080e03080e03080c84890d098c0ffffffffffff +ffffffd8a0b0b85868b82020a82020b82020c82820d02820c02030b82020b02020a82020 +981818a03848b888a0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffc088b8b03078b02068c02870c82868d02870b82068 +a03070ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0a8b8b0a8b8c0c0c0d0d0d0d0d0c8d0d0c8 +d8d8d8d0c0b8b0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffb85090b02068c83078e03080e03080e03080e03080b03078c06098ffffffffffff +e0a8c0b85868b02020b02020c02030c82020c82820e02820d03828c02020b02020981820 +903040d8a0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb85090a02068a82870c82868d02870c82868b82068 +a05080ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8a8a0b8c0c0c8c8d0c8d8d8d8d0d0d0 +d0d0d0c0c0c8b0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd098b0a04080a82870d82878e03080e03080e03080e03080b03078d090a8d8a0b0 +d04080a82830b82020c82020c02020c82820d82820c02030c82820b82020981820903040 +c8a0a8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffa04080a03070c82870c82870c82868d02870b02068 +c088b8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0b0b8b8b0c0b8b8c8c8d0c8c0d0e8c0d0e8 +d8d8d8c0c0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffc088b8a85088b03078d82878e03080e03080e03080c83078c82868b03040 +b02020b82020c02020c02030b82020c82820c02020c02020a83028981820983848d088a0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffd098c0a04080b02068c02870c82868c82870b82068a02058 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa0a0b0a8a0a8c0c0c8c0d0e8e0e0e0c0d0e8 +c0d0e8c0c0b0c8a0a8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffb878a8a04080c83078e03080e03080e03080c82868b02030b02030 +b02020c02030d02820d03828b02020a83028b02020a02020901818983848b88098ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffa85088b03078b02068c02870c82868c82870b02068a03070 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb098b0c8a0a8c0c0c0d0d0d0c8c8d8c8d0c8 +d8d8d8d0c0b8c8a0a8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffb068a0b03078c02870e03080d04080d04080b85868b03040 +a82830b82020b82020c82820c02020b02020a02020982030a04858b88098ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffa03070a03070c02870c82870c82868c02870a82870b068a0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb098b0c8a0a8d0c0b8e0c0c0e0c8d8d8d8d8 +f0d0e0d8a0b0c8a0a8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffc088b8a04080a03070b03078c06098d8a0b0d8a0b0d88090 +c06868b83848b02020c82820b82020a83028981820a85868c890a8ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffc088b8a02068b02068c82870d02870c82870b02068a03070d098c0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb87888a87080d088a0e0c0c0e8b8d0e8c8d0 +e0c0c0d88090b87888ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb878a8a85088a85088d8a0b0ffffffffffffffffff +d8c0b0c87080d03828b02020a82020a01820a85060c890a8ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffa04080b03078c02870c82868d02870c02870a82870a85088ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa05068903040b86058d88090f09088f09890 +c87080a84050983848ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb098b0c898b0ffffffffffffffffffffffff +fffffff0a098a84050982030981818a03040d098b0ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffc088b8a02068b82068c82868c82868c82870c02870a03070c088b8ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff884050881818981818a82020b03040b03040 +a82830a02020903040d8a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd8c0b0b85868901818982030c87080ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd098c0b03078b02068c02870d02870d02870c02870a02058a04080ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb86058a83028a83028b02020b82020a82020 +b02020a83028a03038ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffc8b8a0a05068781010580808a04858b878a8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffb85090981850c02870c82868d82878c83078b02068a03070c070a8ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff983848981818b82020c82820c82820c82020 +c02020b02020901818d0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffb0b0b8ffffffffffffffffffffffffffffffffffffffffffc0c0b0 +b0b8a8a08890703858781010500828500828582850b068a0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +d098c0a02068c02870c82868d02870c02870a02058a02068c06098ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04050a02020b82020d02820d02820d02820 +c82820b02020a83028d0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b8a8 +a08890703858500828500828580808500828500828703858a05080b098b0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb878a8 +984078a02058c82870c82870c02870b82068b02068a85088c088b8ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858a82020c02020d02820d82820d02820 +c02030b82020a83028d0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b8a89898a0 +706878584818500828500828500828500828702838500828a02058a05080c088b8ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb878a8a04080 +a03070c02870c02870c82868b82068a02058a03070b878a8ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858a82020c02020d02820d02820d82820 +c02030b82020a83028d0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffb0a8b8a8a0a89898a0 +a87080582850500828383828500828500828802028981850a02058b03078d04080c06098 +d098c0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffc070a8b03078a82870 +b02068c82870c02870b82068a82870a03070b068a0d098c0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858a82020b82020d02820d02820d82820 +c02030b82020a83028d0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +c0c0b0ffffffffffffffffffffffffffffffffffffffffffb0a8b89898a0b0a8b8ffffff +a8a0b8a08890703858500828500828702838901828b82068c83078d04080e03078c83078 +c84890d090a8d098c0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffc06098b03078a82870b82068 +c82870c02870c02870a02058a02068a05080c088b8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858a02020b82020d02820c02030d03828 +d02820a83028a02020d8a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffb0a8b8a8a0a8a8a0b0ffffffffffff +ffffffffffffb888a0703858582850500828b02068e03078e03080e03080e03080e03078 +c83078c84890c06098c088b8ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffd098c0c070a8b03078b02068b82068d02870 +c82870b82068c02870a02058984078c088b8ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858a02020b82020c82820d82820d02820 +c82020b82020a02020ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0a8b8a8a0b0a8a0b8ffffffffffffffffff +ffffffffffffffffffc088b8706878981850b02068c83078e03078e03080e03080e03080 +e03080e03080b03078c83078c070a8d098c0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd098c0b85090a02068c02870c02870c82870c82868 +c02870c02870a02068a03070b068a0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85068a82020b82020c02030c82820c02030 +c02020b02020982030e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb0a8b8a0a0b0a0a0b0ffffffffffffffffffffffff +ffffffffffffffffffffffffd098c0b068a0a03070b82068c82868e03078e03080e03080 +e03080e03080e03080c83078c02870c84890c06098d098c0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffd098c0c070a8b03078a02068a02058c82870c83078d02870c82868 +b82068a02058981850b068a0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85068a02038b82020c02020c02020c82820 +c02020a83028a02020d8a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffb0b0b8a8a0b8b0b0b8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffc088b8a85088b03078b03078c83078e03080 +e03080c84890e03080e03080e03080c83078d02870c02870c83078c070a8d098c0e0a8c0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffc070a8c84890b03078b03078b02068b82068d04080b82068c82868c02870c02870 +b02068a03070b068a0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85068a82020b02020c02020c82820c02030 +c02020b02020a02020e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffb0b0b8a0a0b0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffb878a8a04080c83078c83078 +e03080e03080e03080e03080e03080e03080e03080e03078e03080e03080c83078b85090 +c070a8d098c0d098c0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffd098c0c088b8c06098 +c84890b03078b03078c02870c82870c82870c82870c02870c02870b82068b02068a02058 +a85088d098c0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85068a02020b02020c02020c82820c82820 +c02020b82020a03038e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb8b0c0ffffffffffffffffffffffffffffffffffff +ffffffffffffb0b0b8a0a0b0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffc088b8b068a0a04080 +b03078c83078c83078d82878e03080e03080e03080e03078d82878e03080c83078c83078 +b03078c84890b85090b85090c06098c06098c088b8d098c0d098c0d098c0d098c0e0a8c0 +d098c0ffffffd098c0d098c0d098c0d098c0d090a8c070a8c06098c84890c83078c83078 +c02870c82870d02870d02870c82870c82870c02870b02068a82870a02058a03070b85090 +c088b8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa05068a82020a83028c82020c82820c02030 +c02020b82020a03038ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffb0b0b8a8a0b8b8b0c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd098c0c070a8 +c070a8b03078b03078c82870d82878d82878d82878e03078e03078e03080e03080d82878 +c83078c83078c83078c83078c83078c83078c84890c84890c84890c84890c06098c84890 +c06098c84890c84890b85090c84890c84890c84890c83078c02870c02870c02870d02870 +c82868d02870d02870d02870d02870c02870b02068a02068a03070984078b068a0d098c0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858a02020b82020c02020c82820c82820 +c02020b82020a83028e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffb0b0b8ffffffffffffffffffffffffffffffffffffffffffffffff +b0a8b8a8a0b0b8b0c0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffc070a8c84890b03078b03078b82068c82870c83078e03080d82878d82878e03080 +e03080e03080e03080e03080d82878d82878d82878d82878c83078d82878c83078c83078 +c83078c83078c83078c83078c02870c02870c02870c82870c82870d02870c82868d02870 +d02870d02870d02870c82870b82068a82870a02068a03070a85088c088b8ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858a02020b02020c02020c02030d02820 +c02030b02020a82830e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b0b8 +a8a0a8b0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffd098c0b068a0b85090a04080b03078c02870c02870c02870c83078d82878 +e03080e03080e03080e03080e03080e03080e03080e03080d82878e03080d82878d82878 +d82878d82878d82878d82878d82878d82878d02870d02870d02870d02870c82868d02870 +c82870c02870c02870a82870a02068a02068984078b068a0d098c0ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858a02020b02020c02020d02820c82820 +c82820b02020a02020ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b0b8a8a0a8 +b0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffc088b8b85090a85088b03078a82870b82068c02870 +c82870d02870d82878d02870d82878d82878d82878d82878d02870e03078d82878e03080 +d82878e03080d82878e03078d02870e03078d02870d02870c82870c82870c02870c02870 +b02068a82870a02058a03070984078b068a0c088b8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858a02020b02020c02020c02030d02820 +c02020b02020a82830e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b0b8a8a0b0a8a0b8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffd098c0c088b8c06098b85090a02068 +b82068c02870c02870c02870c82868c82868c82870d02870c83078d02870d02870d02870 +d02870c82868d02870c82868c82868c82868c82868c02870b82068b82068b02068a02058 +a02068a03070a85088b068a0c088b8ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858a02020b02020c02020d02820c02030 +c82820b02020a02020ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffa8a0b8a8a0b0b0b0b8ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd098c0c070a8 +c06098b03078a03070a03070a82870a02058a02068a02058b02068b02068b02068b02068 +b82068b82068b82068b82068b82068b82068b02068b02068a02068a02068a85088b85090 +b068a0c088b8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858a02020b82020c02020c82820c82820 +c02020b82020a03038e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffb8b0c0b0a8b8ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffd8a8c0c088b8c088b8b878a8b068a0a05080a05080984078984078984078 +984078984078984078a04080a05080a85088a85088b85090b068a0b878a8d098c0ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858a02020b82020c02020c02030d02820 +c02020b82020b03040e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0b0b8b0a8b8ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffd0a8c0ffffffd098c0d098c0c088b8d098b0 +c088b8c088b8d098c0d098c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060a82020a83028c82020c82820c82020 +c02030b02020a83028e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb0a8b8a8a0b8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060a82020b82020c02020c82820c82820 +c02020a83028a82830ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffa8a0b0a8a0a8b0b0b8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060a02020b82020c02020c02030d02820 +c02020b82020a83028e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffa8a0a8a8a0b0b0b0b8ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060a02020a83028c82020d02820c82820 +c02020b02020a82830d8a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffa8a0b0a8a0a8b0b0b8ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060a02020b02020c02020c82820c02030 +c82820b02020a82830e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffb0b0b8a098b0b0b0b8ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858981820b02020c02020c82820c82820 +c02020b02020a82830ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +b0a8b8a8a0b8a8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060a02020b02020c02020c02030d02820 +c02020b02020a83028d8a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa8a0b0 +a8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060a02020b02020c82820d02820c82020 +c02030b02020a02020e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b0b8b0b0b8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060a02020b02020c02020c82820c82820 +c02020a83028a82830e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffb8b8b8a8a0a8a8a0a8b0b0b8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858a02020b02020c02020c02030c82820 +c82020b82020a82830e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8a0a8d8a0b0 +ffffffffffffffffffffffffffffffffffffffffffb8b0c0a8a0a8a098b0b0b0b8ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04050981818b82020c82820d02820c02030 +c02020b02020a83028ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffd8a0b0a87080b86058c07888 +c8b8a0ffffffffffffffffffffffffffffffffffffa8a0b8a8a0b8ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04050981820b02020c02020c82820d02820 +c02020b02020a82830e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffd098b0b86878901818a83028901818 +b86058d88090ffffffffffffffffffffffffa8a0b8b0a8b8ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04050a02020b02020c02020c02030d02820 +c02020b02020a02020d8a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffd098b0b85868a82830a02020b02020a82020 +a02020b86058f09890ffffffffffffa8a0a8a8a0b8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff983848981820a82020c02020d02820c02030 +c82820b02020a02020e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd8a0b0a85068b02020b02020c02020c82820c02020 +b02020a82020b85868c888a0a8a0a89898a0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +a83028b83848c06868d88090e0a8c0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04050a02020b02020c02020c82820d02820 +c02020b02020a02020d8a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffc888a0a84050b02030c02020d02820c82820d02820d02820 +c02020b02020a03040a85868a8a0a8ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +c02020b82020b82020a83028b03040a84050a85868b87888d098c0ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858a82020b02020c02020c02030d02820 +c02030a83028a02020e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffc890a8a85060982030b02020c82020e02820e02820d03828d82820 +c02030a82020903040b87888c898b0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +d02820c82820c82820c82820c02030b02030b02030b83848b84050b85868c06078c87080 +d088a0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060a02020b82020c82820c82820c82820 +c02020b82020a82830d8a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffb888a0a04050a02038b02020c02020c82820d82820e02820d02820c02030 +b02020901818a05068c898b0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +d82820d82820d82820d02820d03828d82820d02820c82020c82020c02030c02030b83848 +c82868e85850c06078c87080d088a0d8a0b0e0a8c0ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04050a02020b02020c82820c02030d02820 +c02020b02020a83028ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffc888a0a04858a01820a02020b82020c02020c02030d03828d02820c02030b02020 +981820a05068c890a8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +d82820d02820d82820e02820e02820d82820d03828e02820d82820d82820c02030c82020 +c82820c02030b82020c02030b83848b85868c06868d88090d088a0d8a0b0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858a02020b82020c02020d02820c82820 +c02030b02020a83028e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +c890a8a85060a02020b02020b82020c02020c82820c82820c02020c02020a82020901818 +a85060c890a8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +d02820d02820d03828d82820d03828e02820d82820d82820e02820d03828e02820d02820 +d02820d02820d02820d02820d02820c82020c82020c02030b83848b85868c87080d88090 +d8a0b0d0a8c0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060a82020b02020c82820c02030c82820 +c02020a82020a02020d8a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8a0a8 +a04858a83028a82020c02020c82820c02030c82820b82020a83028a82020901818a85060 +c8a0a8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +b82020c02030d02820c02030c02030d02820d03828d03828d82820d82820d02820d82820 +d02820d02820d82820d03828e02820e02820d03828d82820d82820c02030c82020a82830 +a02038a85060c87080d090a8e0a8c0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060a02020b82020c02020d02820c82820 +c02020b02020a02020ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8a0a8a85060 +a02020b82020c02020c02020d03828d02820b82020a83028b02020801018a85060c8a0a8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +901818a82020b02020c02020c82820c02030c82020c02030c02030d82820d03828d02820 +d03828e02820d03828e02820d82820d82820d82820d02820d02820d02820d02820d02820 +c82820c82020c02030c02030b02030b83848c06078d88090e0a8c0ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060a02020b02020c02020c82820c02030 +c02020a83028a83028e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffc8a0a8a85868a03038 +b82020c82820d02820d02820d02820d02820d02820b02020901818903040a8a0a8ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +b86058a03038901818982030981818a82020a82020b82020b82020b02020c02030d02820 +d02820c02030d02820c02030d02820c02030e02820e02820d03828e02820e02820e02820 +e02820e02820e02820e02820d03828c82020c02020c02020b82020a83028a84050c07888 +e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858981820b02020c02020d02820c82820 +c02020b02020a82830d8a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffc08090a04050901818a82020 +d02820d02820c02030d02820c02030b82020b02030a82020982030b888a0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffe0a8c0c08090a04858801018881818901818982030a82020b02020 +b02030c02020c02020d02820d02820d02820c02030c02030d02820d02820d03828e02820 +d03828e02820e02820e02820e02820d02820c02030d03828c02020c02020c02020c82820 +b03040a82830a02058b85868d88090ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858a02020b02020c02020c02030d02820 +c02020b02020a82830e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffc87080a84050a02020a82020c02020 +d02820d82820c82820c02020c82820a02020901818a03848c888a0ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd0a8c0ffffffe0a8c0c08090b86058903040982030 +a01820982030a82020a02020b02030b82020c02020c82820c02030d02820c02030d82820 +d82820d03828e02820e02820d03828d82820d03828d82820d82820d03828d82820d02820 +c82020c82820c02020b03040b03040b83848a85060b86878b88098d090a8e0a8c0ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060981820b02020c82820c82820c82820 +c02030b02020a83028e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffd88090a84050b02020b82020c02020c82820 +d82820d03828c82020a82020982030a83028a05068d090a8ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd8a0b0d098b0 +c888a0a87080a04858901828801018981820a02020a83028b82020b82020c82820c02030 +d02820d02820c02030d03828d82820d02820d82820d82820e02820d03828e02820d82820 +d03828d82820d02820c82020c82020b82020a83028b02020a83028b84050b86058c06868 +c87080d8a0b0e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060a02020b82020c02020c82820c82020 +c02020a83028a82830e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd88090a03848b02020b82020c82820d02820d02820 +d02820c02030b02020901818881818a85868c8a0a8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffc898b0b878a8c07888a85060a84050981820981820a02020a82020a82020 +b02020b02030c02020c02020c02030d02820d02820d82820d82820d82820d03828e02820 +d82820d82820d82820d03828d82820d82820d02820d02820d03828d02820c02020b82020 +b83848b84050c06078c87080c87080c890a8ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85868a82020b02020c02020c82820c02030 +c82820b82020a83028e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffc888a0a84050982030b82020c82820d02820d03828d82820 +c02030b02020981820982030a04858b8c0a0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd8a8c0c08098b87888a85868a85868a84050a03038 +982030901818901818a02020a82020c02020c02030c02030c82820d02820d02820d02820 +c02030d03828e02820d82820d03828e02820d82820d03828e02820d82820d03828c82020 +c02020c02020b82020b02020a82830a85060b86878c888a0c898b0ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85068a82830b02020b82020c82820c82820 +c82820c02020a03040e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffd088a0a84050a02020b82020c02020c02030d82820c02030c02020 +a82020981820982030a85868c8a0a8ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc898b0b88098 +a87080a05068884050884050982030a82020b02020b82020b82020b02030c02020c02030 +d02820c02030d02820d82820d03828d82820d82820e02820d03828e02820d82820d03828 +d03828d82820d02820d82820d02820c02020a83028a03040c07888d098b0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa05080a82830a82020b02020c82820d02820 +d02820c02030a02038e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffd088a0a84050b02030b82020c82820d02820d02820c02020c02020a82020 +982030702838a05068c890a8ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffd0a8c0b888a0b86878903040982030982030901828a02020a82830a82020 +b02020b02020b82020c02030c02030d02820c02030e02820d82820e02820d03828e02820 +e02820e02820e02820e02820d03828c82020b82020b86058f0a098ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85068a02038a82020b82020c02030d02820 +d02820b82020a02038d8a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffc888a0a84050b02030c82820d02820d02820c02030c02020b82020a83028901828 +702838a05080c898b0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffc890a8a85868702838781010781010 +881818901828a02020b02020b02020c02020c02030c82820d02820d82820d82820d82820 +d03828e02820d03828e02820d03828c82020d03828c87080ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85068a02038a82020b82020c02020d02820 +d02820b02030a02038d8a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +d88090a84050a01820b02020c02020d02820c02030c02020b82020a83028b02020982030 +a05068c890a8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc898b0 +b87888a05068903040901828982030901828b02020b02030b02030b82020b02030c82020 +c02020d82820d02820d02820d02820b02030b84050f0a098ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85068a02038b02020b82020c02030c82820 +d02820b82020a03040ffffffffffffffffffffffffffffffffffffffffffffffffc07888 +a03040b02020c02020c82820c02020b82020c02020a83028b82020a01820982030a85868 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffd098b0c07888a85068a04050903040981850901828981820a82020 +a82020c02030b82020c02030b02020a82020b84050ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb03078a02020b02020b82020c02020c02030 +d02820b02020a03040ffffffffffffffffffffffffffffffffffffffffffc07888a03038 +b82020c02020c82820c02030c82820c02020c02020b02020981820982030a85868d098b0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffd098b0b878a8a05080a04858a03040 +982030a02020981820a02020981820901818b86058e0a8c0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85068982030b02020c02020c82820c82820 +c02030b02020903040e0a8c0ffffffffffffffffffffffffffffffc07888a03040b02020 +c82820c82820d02820c82820c02030c82820a83028981820982030b86878d098b0ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffc0c0b0b0b8a8b0b8a8b8c0a0c0c0b0ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc898b0d090a8 +c07888b85868a85060983848903040903040a04858b88098d0c0a8ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85068a01820b82020c02020d03828c82820 +c82820a01820a02038d8a8c0ffffffffffffffffffffffffc070a8b03040b02020c02020 +c82820c02030d02820c82820c02020a82020981820a03040b86878d098b0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0c0b0b8c0a0 +b0b888a0b070a0b058a0b058a0b058a0b068a0b068a8b868b0b888b8c0a0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd8a8c0d090a8c888a0b87888a87080a87080a08890b098b0b0a8b8ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85068b02020b02020c02020c02020c02030 +c82820a82020982030d8a8c0ffffffffffffffffffc08098b84050b02030c82020c82820 +c82820c82820c02030c02020a83028a01820a02038a05080d098b0ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffb8c0a0a8b078a0b848 +a0b84898b83890b03898c03890b03890b03890b03898b83898a850a0b068b0b888ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffd0a8c0ffffffb0a8b8b8b0c0a8a0b8a0a0b0 +a8a0b0a8a0b0ffffffffffffd8a8c0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa84050a82020b02020c02020c82820d02820 +c02020a82020903040e0a8c0ffffffffffffd88090a02058a82020c02020d02820c02030 +c82820c82820c02020b02020a01820903040a05080c898b0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffb0b888a8b86898b83898b838 +98c03898c03898c03898c03898c03898c03890b03890a04890b03890a838a0b070b0b888 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +a8a0b8a8a0b8b098b0b098b0b098b0b0a8b8b0b0b8b0b0b8ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858a01820b02020c02020d03828c82820 +c02020a82020a03038e0a8c0e0a8c0c87080a84050b82020b02020c82820d02820c82820 +c02020c02020b82020a82020a02038a05080d0a8c0ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffd0c0a8a8b07898b83890b038a8c838a0c838 +a0c83898c03898c03898c03880a83890b03880a83880a83880a83898a85080a83898a850 +b0b888ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffa8a0b8a0a0b0a098b0a098b0a8a0a8a0a0b0b0b0b8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858a82020b82020c02030c82820c82020 +b82020a83028b03040d88090d88090b83848b82020c82820c82820c02020c02030c02020 +b82020b02020a02020903040a85088d098c0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffd0c0a8b8c0a0a8b86890b038a8c838b0d038a8c838a0c838 +98c038a0c83898c03880a83880a83880a83880a83880a83880a83880a83880a838789038 +a0b070b0b8a8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffa8a0b8a0a0b0a098b0 +a098b09898a0a8a0b8b0b0b8b0b0b8ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858a01820b82020c82820c82820c02030 +c02020b82020a02020b84050a03038b02020c02020c82820c82820c02020c02020c02020 +a83028a01820903040a85088d098c0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffd0b880a8b868a8c83898b838a8c838a8d038a8c83898c038 +98c03898c03880a83880a83870903850803870903850803880a83878884880a83880a838 +98a850a0a880b8c0a0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffb0a8b8a8a0b8b0a8b8b0a8b8b0a8b8b0a8b8b0b0b8b8b8b8b8b8b8ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04050981820b02020c02020d02820c82820 +b82020a83028a82020a83028b02020b82020d02820c82820c02030c82820c02020a83028 +a01820981850a87080d0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffb8c0a0c0d848a8c838a8c838a8d038a0c83898c038a0c83898c038 +90b03880a83880a83870903880a838709038508038508038508038709038709038709038 +80a83898a850a0a880c0c0b0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb8b0c0b0a8b8b0a8b8b0a8b8a8a0b0b0a8b8 +b0b0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858982030b02020c82020c02030d02820 +c02020b82020a02020a82020b82020c82820c82820c82820c82820b82020a02020981820 +983848a85088d098c0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffc0c0b0d0c0a0d8e068a0b848a8c838a8c838a0c83898c038a0c83898c03898b838 +90a048909878909878b0b8a8ffffffa0a0b090987850803848703050803878884880a838 +709038788848a0b068b0b888ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffb8b0c0a8a0b8b0a8b8 +b0a8b8a8a0b8a8a0b8b0b0b8b0b0b8ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa04858982030b02020c82020d02820c82820 +c02020b82020a82020b82020c02020c02020c02030c82820b82020a82020981820a02058 +a87080d098c0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +c0c0b0b0b888d8e068a8b868a8d038a8c838a0c83898c038a0c83898c03898b83898a850 +a0a880b0b8a8ffffffffffffffffffffffffb0b8a8788078607030508038709038709038 +80a83880a83890a048a8b078c0c0b0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffb0b0b8b0a8b8a8a0b8a8a0b8a8a0b0b0a8b8b0b0b8b8b0c0ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff884050a02020b02020c82820c02030c82820 +c82820b82020b02020c02020c02020c82820c02020b82020b02020982030a03848b87888 +d098c0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0c0a8b0b888 +c0d848a8b868c0d848c0d848a8b868a8d03898c038a0c838a0c83898c038a0b058a8b078 +c0c0b0ffffffffffffffffffffffffffffffffffffb0b8a8788078607030508038788848 +80a83878884890a838a0b068b0b888ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb0b0b8a8a0b8a8a0b8a8a0b0a8a0b0b0b0b8b0b0b8 +b8b8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff884050982030b02020c02020d02820c82020 +d02820b82020b02020c82820c02030c82820c02020a82020a02020a03040c070a8ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffc0c0b0a8b868c0d848 +c0d848c0d848a8d038a8d038c0d848a8b868a8d038a8c838a0b848a8b868b0b888c0c0b0 +ffffffffffffffffffffffffffffffffffffffffffffffff909878788848607030709038 +80a83880a83890a04890a048a8b078ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b0b8b0a8b8a8a0b8 +a098b0a8a0a8a8a0b8b0b0b8b8b0c0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff884050901818a01820c02020c02030c82820 +d02820b02030b02020c82820c82820c02020a83028a01820a03040c87080ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffc0c0b0d8e068a0b848a0c838 +b0d038c0d848a8d038a8b868a8b868b8c0a0b8c0a0b0b888a8b868b8c0a0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffb0a8b8788078607030709038 +78903880a83880a83890a048a0b070c0c0b0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffa8a0b8a8a0b8a098b0a8a0b0a8a0b0b0a8b8b0b0b8ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060881818a02020b82020c82820c02030 +d02820c02020b02020b82020c02020a83028a01820901828b86878ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffb0b888a0b848a8d038c0d848 +a8d038b0d038a8d038c0d848b8c0a0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffff9898a0607030789038 +78903890a04890b03880a838a0b058b8c0a0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0a8b8b0a8b8a8a0b0a098b0a8a0a8a8a0b8 +b0b0b8b8b8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb87888903040982030b02020b82020c82020 +c02020c02030c82820c02020b82020b02020a82020a03040c87080ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffb0b888a8b868a0c838a8d038a8d038 +b0d038b0d038a8d038a0b848d0c0a0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffa8a0a8788848709038 +78903880a83880a83890b03898a850b0b888ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffb8b0c0b0a8b8a8a0b8 +a8a0b8a8a0b0a8a0b0b0b0b8b0a8b8b0b0b8ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb8a080b8a080c07888c87080e86860b84050 +c02020c02020d03828d82820d02820c02030c82820c02020d03828e04840b86058c87080 +d090a8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0b888a0b058a0c838a0c838a8d038b0d038 +b0d038a8d038b0d038a8b868b8c0a0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff909878709038 +78903880a83890a04880a83898a850b0b888ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffb8b0c0b0b0b8b0a8b8a8a0b8a0a0b0a8a0b0b0b0b8b0b0b8ffffffffffff +ffffffffffffffffffffffffffffffc0c0b0b8b8b8fffffffffffffffffff0a098f09088 +d03828b82020e02820d03828e02820e02820d03828c82020c82820c02030b02020a83028 +b84050b85868c06078c07888d088a0d098b0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffc0c0b0b0b888a8b86898c038a8c838a8d038a8d038b0d038 +b0d038a8d038a8d038a8c838b8c0a0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff909878709038 +78903890b03880a83880a83890b038a8b078ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffb0a8b8a8a0b8a8a0b8b0a8b8a098b0 +b0a8b8ffffffffffffffffffffffffb8b8b8ffffffffffffffffffffffffd8c0b0f0a098 +e86850b82020d03828e02820e02820e02820e02820e02820d03828d03828c02020c02020 +c82820c82820b03040b83848b83848b84050c06078b86878c08090d8a0b0d8a0b0ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffc0b078a0b84898b838a8c838a8d038b0d038b0d038b0d038 +b0d038a8d038a8c838a0b058b8c0a0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0a880607030 +80a83880a83890b03890b03890b038a0b070c0c0b0ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa8a0b8a8a0b8 +b098b0b0a8b8a8a0b8b0b0b8b0b0b8ffffffffffffffffffffffffffffffffffffd8c0b0 +e86860a83028d82820d03828e02820e02820d03828d82820d82820d02820d02820d03828 +d02820d02820d02820c82020c02020c02020b82020a83028b83848b86058b86058c87080 +c888a0d098b0e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffb0b888a0b848a0b848a8c838a8c838b0d038b0d038a8d038b0d038 +a8d038a8d038a8c838a0b848b8c0a0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa8a0a8789038 +78903890a04898c03880a838a0b848a0b068b0b8a8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffb0a8b8a8a0b0ffffffffffffffffffffffffffffffffffffffffffd8c0b0d0c0a0 +c06868a83028b82020c82820d02820d03828e02820d02820d02820d82820d82820e02820 +e02820e02820d03828e02820d03828d82820d03828d02820c02020c02020b82020a83028 +b84050b84050c06078c87080d088a0d8a0b0e0a8c0ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffb0b8a898a85098b838a0c838a8d038a8d038b0d038b0d038b0d038b0d038 +a8d038a8d038a8c838a0b848b8c0a0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b8a8789038 +78903880a83898c03898c03880a838a0b058b8c0a0ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd0c0a0b8a080 +a04858802028981818a83028c02020c02030d02820d02820c02030d03828e02820e02820 +d03828e02820e02820e02820e02820e02820e02820d03828d82820c82820d02820d02820 +d02820c02030c82820b02030b03040b84050c06078d88090d090a8e0a8c0d8a8c0ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffb0b8a8a0a88090b03898c038a8d038b0d038a8d038b0d038b0d038a8d038b0d038 +a8c838a8d038a8c838a8c838b0b888ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90a048 +78903880a83898c03898c03890b03898a850b0b888ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffc0c0b0b0b8a8788078 +884050704018802028982030a82020a82020b02020b02030c02020c82020c02030d03828 +d82820e02820d03828e02820e02820e02820e02820e02820e02820e02820e02820e02820 +d03828e02820d82820d82820c82020c02020b82020a83028a82830a84050b85868c07888 +d8a0b0e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +c0c0b090987898a85098c038a0c838a8d038b0d038b0d038b0d038b0d038a8d038b0d038 +a8d038a8c838a0c838a0b848b0b888ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff909878 +70903890a04898c03898c038a0b84890b038b0b888ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffb8b8b8a8a0a8788078a8a0a8 +c0c0b0b88098884050a85868a04050901828901818981820981820a02020b02020b02020 +c02030c02020d03828d02820d03828d82820d03828e02820e02820e02820e02820d03828 +e02820e02820e02820d03828d82820d02820c82820c82020c82820c02030a83028b02020 +a82830a03038a84050c06868f09890ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb8c0a0 +a0b06880a83898c03898c038a8d038b0d038b0d038a8d038b0d038b0d038b0d038a8d038 +b0d038a0c838a0c83898b838c0b078ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0b068 +78903890b03898c03898c03898c038a0b848a0b070c0c0b0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffa8a0a8808090b0b8a8ffffff +e8e0e8ffffffa8a0a8ffffffffffffd098b0d090a8b86878a05068903040801018801018 +881818901818901818a01820b02020c02030d02820d03828d82820d03828e02820e02820 +e02820d03828e02820e02820e02820e02820e02820e02820e02820d03828d82820d02820 +c02030c82820b82020a82020a02020a02020a03848a85868c08098d8a0b0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffc0c0b0a0a88098a850 +90a04898c038a0c838a0c838a8d038b0d038b0d038b8d038b8d038b0d038b0d038a8d038 +b0d038a0c838a8c83898c038c0b078ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0b070 +78903890b03898c03898c03898c03898b838a0b070c0c0b0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffff9898a0788078788078b0b0b8ffffff +ffffffffffffb098b0ffffffffffffffffffffffffffffffffffffd098c0c898b0b88098 +a05068884050802028881818881818901818981820a82020b82020c02030c82820d02820 +d02820d02820d03828e02820e02820d03828e02820e02820d03828e02820e02820d82820 +d02820d02820c02030c82820c82820d03828b02030c02030b02030b83848b83848b85868 +c87080d88090e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b888a0b05898a850 +98c038a0c838a0c838a8d038b0d038a8d038b0d038a8d038b0d038b0d038b0d038a8d038 +b0d038a8d038a0c83898b838a8b868ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0a880 +80a83890a04898c03898c03898c03898b838a0b068c0c0b0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0a87068787880789898a0ffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffb098b0b88098a08890b86058884050704018901818981820a02020a82020a82020 +b02030c02030c02020c02030d02820d82820d03828e02820e02820e02820e02820e02820 +d03828e02820d03828d02820c02030d02820d82820e02820d03828d82820c82020c82020 +c02030b84050c82868c06868c07888d098b0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffb8c0a0a0b07098a85090b038 +98c038a0c838a0c838a8d038b8d038b0d038b8d038b0d038b0d038b0d038b0d038a8d038 +b0d038a0c838a0c83898b838c0b078ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0a880 +78903890b03898c038a0c838a0b84898c038a0b058c0c0b0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffd098b0b88098d8a0b0ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffb8b8b8a8a0a87880787068789898a0ffffffffffffffffff +ffffffffffffb0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb888a0b888a0b88098a87080a85868884050982030 +881818981820a02020a82020a83028b82020c02030d02820d03828d82820d03828e02820 +d03828e02820e02820d03828e02820d82820e02820d03828e02820e02820e02820d03828 +d82820d02820c02030b03040b83848b84050c06078c84890d88090d090a8ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffb0b8a8a0b070a0b05898b83898c038 +98c038a8d038a8d038a8d038a8d038b8d038b8d038b8d038b0d038b0d038b0d038a8d038 +a8d038a8c838a0c83898b838a8b868ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa8b078 +90a04890b03898c038a0c838a0c838a0b848a0b058c0c0b0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffd098b0b86878a85068a84050c87080b86878d098b0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffb8b8b8a8a0a8a8a0a8788078808090b0b8a8ffffffe8e8e8ffffff +ffffffffffffb0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffc898b0b888a0a87080 +a87080a04858903040702838982030982030a02020a82020a01820c02030c02030d02820 +c02030d82820d82820e02820e02820e02820e02820e02820e02820e02820e02820e02820 +d03828d82820d82820c02030d82820c02030c02030c02030b83848c82868e86860c87080 +d88090c890a8d8a0b0d8a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffa0a88098a850a0b058a0b848b0d038 +a8d038a8d038b0d038b0d038b0d038b0d038b0d038b8d038b0d038b0d038b0d038a8d038 +b0d038a0c838a0c83890b038a8b078ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b888 +90a04890b03898c038a0c838a0c83898b838a0b058b8c0a0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffd8a8c0b86878903040a82830a01820a82020a82830a85868ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffb0b0b8a0a0b09898a0ffffff8080909898a0ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffc898b0a87080a87080a05068a05068a04050903040901828a02020b02020b02020 +c02020c02030c02020d02820d03828d82820d03828c02030d03828d03828d03828e02820 +e02820d82820e02820e02820e02820d82820d02820d02820c82820c82820c02030b82020 +a82830a84050b85868c87080d88090d088a0e0a8c0e0a8c0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa0a88078884890a04880a838a0b84898c038 +98c038a8c838b0d038c0d848b8d038b0d038b0d038b8d038b8d038b0d038b0d038a8d038 +a8d038a0c838a0c83898b838a8b078ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0a880 +90a04890b03898c038a0c838a0c83898c038a0b058d0c0a8ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffb87888983848a02020a82020b02020b82020a83028b83848d098b0ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffb0b0b8a0a0b0a0a0b0b0b0b8ffffffb0b8a8b0b8a8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd098c0b888a0a85868a04858903040a03040a82830 +a02020a02020b02020b02030b82020b02030c82820d02820c82820c82020d02820d02820 +d03828d82820d03828d82820d82820d03828d82820d82820d02820d03828c82020c82820 +c82020c82020c02020b02020b02020b03040b84050c87080d088a0d8a0b0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffff909878607030607030607030607030508038508038 +70903880a83898c038a8d038c0d848a8d038c0d848b0d038b8d038b8d038b0d038a8d038 +a8d038a8c83898c03898b838a8b078ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b888 +90a04890b038a0c838a0c838a8c83898c038a0b058b8c0a0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffb87888a03040a83028c82020c82820c82020c02020a82830c06078e0a8c0 +ffffffffffffffffffffffffffffffffffffc088b8b878a8c890a8d098c0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffa0a0b09898a0ffffffffffffffffffa0a0b0b0b0b8ffffffffffffffffffffffff +ffffffffffffa8a0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0a8c0c07888 +a85060982030901828901818981820a02020a01820b02020b82020c02020b02030c82020 +c02030d02820d03828c02030e02820d82820d82820d03828d82820d03828d82820d02820 +d03828e02820d82820d82820c82020c82020c02020b82020b02030a02038a84050c06078 +c08098d098c0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffff788078584818607030607030508038487030508038 +50803850803850803850803870903898c038a8d038c0d848b8d038b8d038b0d038b0d038 +a8d038a8d03898c03898b838a8b078ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b888 +90a04890b03898c038a8d038a0c83898b838a0b058b8c0a0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffe0a8c0c06868a01820c02020c82820d82820c02030b02020a82830d088a0 +ffffffffffffffffffffffffffffffc06098a04858981850702838984078b068a0ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb0a8b8 +a098b0a8a0b8ffffffffffffffffffffffffb0b0b8a0a0b0ffffffffffffffffffffffff +ffffffffffffb0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffb878a8706878702838801018901828901828982030a01820a02020 +b02020b02030c02020c82020d02820c02030d82820d03828e02820d82820e02820e02820 +d82820d82820d03828e02820e02820e02820d03828e02820d82820d02820c02030b02030 +982030a04858c890a8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffff909878506028506028607030506028487030487030 +50803850803848703050803850803850803850803870903898c038c0d848c0d848c0d848 +a8d038a8d038a8c83890b038a0b058ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b888 +90a04898c038a0c838a0c838a8d038a8c838a0b058d0c0a0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffc08098a03848c02030c82020d02820c82820b82020a02020c06078 +d8a0b0ffffffffffffffffffd88090a82830b02020a82830981850a05080ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa8a0b0a0a0b0 +a8a0b8ffffffffffffffffffffffffffffffa8a0b8b0b0b8ffffffffffffffffffffffff +ffffffffffffb0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffe0a8c0c07888a04050802028801018 +881818901828a82020b02030b82020c02020c02030c02030c02030d02820c02030d03828 +d82820d02820d02820d03828e02820e02820e02820e02820e02820e02820d03828c82020 +b83848c87080ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb0b8a8909878607030405020607030607030487030 +48703050803850803850803850803850803850803848703050803870903880a83898c038 +c0d848a8c838a8c838a0b848a8b868b8b8b8ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa8b078 +90a04898b838a0c838a8d038a8c83898c038a0b058b8c0a0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffd88090a02038c02030c02030c82820c02020b02020a83028 +c07888ffffffffffffc07888a82020b82020b02020b02030c06078d8a0b0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b8a89898a0a8a0b8 +ffffffffffffffffffffffffffffffffffffa8a0b8b0b0b8ffffffffffffffffffffffff +ffffffffffffb0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0a8c0 +d088a0a85868802028881818901818901828a82020b02020b82020b82020c02020b82020 +c02030c02030c02030d02820d02820d03828e02820e02820e04840e02820c82820c02030 +e86860e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffff9898a0788848384038506028607030 +487030508038a0b848c0d848c0d84898a850508038508038508038508038508038788848 +80a838a0c83898c03898b838a0b058c0c0b0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b888 +98a85098c038a0c838a8d038a8d03898c038a8b868b8c0a0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd04080b82020c82820c82820c02020a83028a01820 +b84050d88090d88090a03848a02020a02020a82020c06868d8a0b0ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffa8a0b8a0a0b0a8a0b8ffffff +ffffffffffffffffffffffffffffffffffffa8a0b8b0a8b8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffe0a8c0c888a0d098b0c07888b85868a03848982030881818901818982030981820 +a82020b02020b82020c02020c02030d02820d03828d02820c82020d02820c02020b83848 +d88090ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffff9898a0788078607030506028 +508038789038a8d038c0d848d8e068a8d038c0d84880a838508038508038487030508038 +70903880a83890b03890b038a0b058b0b8a8ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa8b078 +90a83898c038a8c838a8d038a8c838a8c838a8b868d0c0a8ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd090a8a82830b82020c02030c02020b82020b82020 +b02030b83848b83848a01820a82830982030b85868d8a0b0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffb0b0b89898a0a8a0b8ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffa0a0b0ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffd090a8c08098b87888a85868a04858983848 +881818901818a02020a02020a82020b02020b02020c02030c02020a83028b82020b84050 +f09890ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b8a8909878789038 +78884890b038b0d038c0d848c0d848d8e068c0d84898c038788848487030487030487030 +48703050803878903890a04898a850b0b8a8ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa8b078 +90a048a0c838a8d038a8d038a8d038a8c838a8b868c0c0b0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb85868a83028b82020b82020c02020b82020 +c02020c02030b82020a82020a03038a85060d090a8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0b0b8a0a0b0a8a0b8ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa0a0b0a8a0b8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc890a8b88098 +b86878a85060a03040982030901818982030a02020a02020a02020a02020a03038b86058 +c8a0a8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0b070 +90a04898b838c0d848c0d848c0d848c0d848a0b84898c038508038508038487030508038 +607030506028487030709038788848b8b8b8ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa8b078 +90a838a0c838a8c838a8d038a8d038a8c838a8b868c0c0b0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffe0a8c0b83848a02020b82020c82820b82020 +c02020d02820c82820b02030a84050c8a0a8ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb0b0b8a098b0a098b0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa0a0b0b0b0b8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffe0a8c0d088a0a87080a85868a04858983848a03038802028881818802028983848 +c07888d8c0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b888 +a0b058b0d038c0d848c0d848c0d848c0d848a0c83880a838508038487030607030607030 +506028506028506028607030788848a8a0a8ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0b070 +90a838a0c838a8d038a8d038a8c838a8c838a8b868c0c0b0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffc87080a02020b82020c82820c02030 +c82820c02030d02820c82820d88090ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffb8b0c0a8a0b0a0a0b0a8a0b8ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8a8a0b8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffe0a8c0c08090a05068884050884050884050 +a85868b888a0b8b8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb8c0a0 +a0b848b0d038b8d038c0d848c0d848c0d84898c03890a048508038506028607030506028 +5060286070306070306070307888489898a0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0b070 +90a838a8c838a8d038b0d038a8d038a8c838a8b078ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffd8c0b0b03040c82820c82820c82820 +c02020c02020c82820b82020e0a8c0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb8b0c0ffffffffffffffffffffffffffffff +ffffffffffffffffffb8b8b8a8a0b0a8a0b0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffa0a0b0ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb098b0 +a8a0a8b888a09898a0a08890a0a0b0a0a0b0ffffffb8b8b8ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b888 +a0b848b8d038c0d848d8e068b8d038b8d038a8c83898a85090a048788848607030706878 +585068505058607030788848788078b8b8b8ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0b068 +90a838a8d038b0d038b0d038a8c838a8c838b0b888ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffe86860a83028d02820c02030 +c82820c02020b82020a82020b86058d8a8c0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb8b0c0ffffffffffffffffffffffffffffffffffff +ffffffffffffa8a0a8a8a0a8ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8b0b0b8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffa8a0b8a0a0b09898a09898a0a0a0b0a0a0b0b0b0b8ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0c0b0a8b868 +c0d848c0d848d8e068d8c858c0d848c0d848a8b868b8c0a0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0c0b0a0b068 +98b838a8c838b8d038b0d038a8c838a0b848b0b888ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffff0a098982030c02020c82820c82820 +b82020c02020c02030c02020982030c08098ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffb0b0b8b0a8b8b0b0b8ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8a8a0b8ffffffffffffffffffffffff +ffffffffffffb0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffa8a0b8a098b0a098b0 +a098b0a8a0b0b0b0b8b0b0b8ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b888c0b078 +a8b868c0d848d8e068d8e068c0d848a8b868b8c0a0d0c0a8ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0c0b0a0b058 +98b838b0d038b0d038b0d038a0c838a0b848b8c0a0ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffd090a8a84050a82830a82020b82020c02020 +c02030c82820c82820c02020a82830a84050ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +b0b0b8a8a0a8b0b0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8b0b0b8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffa8a0b8a8a0b8a0a0b0a098b0a8a0b0b0a8b8b0b8a8ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b888a8c838 +c0d848d8e068d8e068c0d848c0d848a0b848b8c0a0ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb8c0a0a0b848 +98b838b0d038b8d038b0d038a8d038a8b868b8c0a0ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd8a0b0a85060a02038a82830a82830b02030c02020 +c02020c02020c02020c82820b02020a02038c06098ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb0a8b8 +a8a0b0a8a0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8a8a0b8ffffffffffffffffffffffff +ffffffffffffb0b0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffa8a0b8a0a0b0a098b0a8a0a8a8a0b0b0b0b8b0b0b8 +b8b8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b8a8a8b868a8c838 +c0d848d8e068d8e068c0d848a8c838a0b068b8c0a0ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b888a0b848 +a8c838b0d038b0d038b0d038a8d038a8b868b8c0a0ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffd090a8c06078b02030b03040a02038b84050c87080b86058 +c82820c02020d03828c02020c02020b03040a84050c890a8ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b0b89898a0 +a8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8b0b0b8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffb0a8b8b0a8b8a8a0b0a8a0b0 +a8a0b0b0a8b8b0a8b8b8b0c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffa8a0a890987898b838a8c838 +c0d848d8e068d8e068c0d848a0b848b0b888ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b88898b838 +a8c838b8d038b8d038b0d038a8d038a8b868b8c0a0ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffc8a0a8b86878a82830b03040981850b03040d88090fffffff09088 +c82868c82820c02020c02020c02030c82020a02038b85868d098b0ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b0b8a0a0b0a8a0b8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8b0b0b8ffffffffffffffffffffffff +ffffffffffffb0b0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb0a8b8 +b0a8b8a8a0b8a8a0b8a0a0b0a8a0b0a8a0b8b0a8b8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffff78807870903890a838b8d038 +c0d848d8e068d8e068b0d038a0b848d0c0a8ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa8b07898b838 +a8c838b8d038b0d038b0d038a0c838a8b868ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffd8a0b0b86878a03038b02030b02030a02058c84890ffffffffffffffffff +c87080a82830c02020c02020d03828c02020b02020a03038c07888ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffb0b0b89898a0a098b0ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8a8a0b8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffa8a0b8a0a0b0a0a0b0a0a0b0a8a0b8a8a0b8a8a0b8b0b0b8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffb0b0b8508038607030a0b848b0d038 +b8d038d8e068c0d848c0d848a0b848b8c0a0b0b0b8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffc0c0b0a8b07898b838 +b8d038b8d038b0d038b0d038a8d038b0b888c0c0b0ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffc898b0b86878a03038a02020b02030a02038b85868e0a8c0ffffffffffffffffff +d090a8b85868a01820c82820c02020b82020c02020b82020b85868f0a098ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffc0c0b0b0b0b8a8a0a8a0a0b0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8b0b0b8ffffffffffffffffffffffff +ffffffffffffb0b0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffa0a0b0a0a0b0a8a0b0a0a0b0 +a8a0b0a8a0b0b0b0b8b8b8b8b8b8b8ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffa8a0a878884878884898c038b8d038 +c0d848d8e068c0d848b0d038a0b848b0b8a8b0a8b8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffc0c0b0a8b86898b838 +b8d038b8d038b8d038a8d038a0c838b0b888ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffc08098a84050b82020b02030b02030a03040ffffffffffffffffffffffffffffff +ffffffd090a8a82830c02020a82020c02020c02030c82820d03828c84890e0a8c0ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0b0b8a8a0a8b0b0b8ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8a8a0b8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +a8a0b0a098b0a098b0a098b0a8a0a8a8a0b0a8a0b0b0a8b8b0b0b8ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffff78807848703080a838a0c838b8d038 +c0d848c0d848b8d038a8c838c0b078ffffffe8e8e8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffc0c0b0a8b86898b838 +b8d038b8d038b0d038a8d038a8c838a8b868ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffc87080c83078b83848b85868d090a8ffffffffffffffffffffffffffffff +ffffffd0a8c0c06078a82020b02020c82820c02020c82820c02030b83848c84890ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffb888a0d088a0d8a0b0ffffffffffff +ffffffffffffffffffffffffb0b8a8a0a0b0a0a0b0ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8b0b0b8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffa8a0b8a098b09898a0a098b0a098b0a8a0b8b8b0c0 +b8b0c0ffffffffffffffffffffffffffffffffffff48703060703090b038a8d038c0d848 +c0d848b8d038b8d038a0b848ffffffffffffffffffe8e8e8ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffd8a0b0d088a0d090a8ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b888a0b848a8c838 +b8d038b8d038b0d038a8d038a0b848b0b888ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffd088a0b84050a02020b02030d02820c02030c02030b83848c06078ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd098b0a87080a04858a85060c87080f09890ffffff +ffffffffffffc0c0b0c0c0b0b0b8a8a0a0b0a8a0b8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffb0b0b8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffa8a0b8a098b0a098b0 +a098b0a8a0b0b0a8b8b0a8b8b0b8a8b8b8b89898a038403870903890b038b0d038c0d848 +c0d848b8d038b8d038a8b868ffffffe8e8e8e8e8e8e8e8e8e8e8e8e8e8e8ffffffe8e8e8 +ffffffffffffffffffffffffffffffd8a0b0c06868a83028b84050c06868c87080d088a0 +d098b0d098c0ffffffffffffffffffffffffffffffffffffffffffb0b888a0b848a8c838 +b8d038b8d038b0d038a8d038a8b868b8c0a0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffe0a8c0c87080a03040a02038b02030b02020b03040d04080d088a0ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffd090a8b86878982030982030a83028a83028b86058f09088 +ffffffffffffc0c0b0a0a0b0a0a0b0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0a8b8b0a8b8ffffffffffffffffffffffff +ffffffffffffb0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffa8a0b8a8a0b0a8a0a89898a080809050602870903898c038c0d848c0d848 +c0d848b8d038b0d038a0b058ffffffe8e8e8ffffffe8e8e8ffffffe8e8e8ffffffffffff +ffffffffffffe8e8e8e8e8e8ffffffd88090a83028c82820b82020c82820b83848b84050 +b85868b86878c87080c08098d8a0b0d8a0b0ffffffffffffd0c0a0c8b060a0b848a8c838 +b8d038b8d038b8d038a0c838a8b868b8c0a0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffd090a8b86878a04858a03848a03040b85868c87080ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffd098b0b86878982030a02020a82020b02020a82020a83028b86058 +f09890ffffffb0a8b8a0a0b0b0b0b8ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffb0a8b8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffa8a0a89898a078884880a838a0c838b0d038c0d848 +b8d038b8d038a8d038a8b868ffffffffffffffffffffffffffffffffffffffffffe8e8e8 +ffffffe8e8e8e8e8e8fffffff0a098b86058c82820d02820d03828c82820c82820c02030 +b02020a83028a83028b83848b86058b85868c87080c87080b09068a89058c0a840b8d038 +c0d848d8e068c0d848a8c838a8b868d0c0a0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffd098b0c898b0c08098c07888c888a0ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffd098b0c06078a02038a02020a82020c82820a83028b82020a02020a03038 +a87080d098b0a8a0a8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8b0b0b8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffa0a88090b038a8d038b8d038b8d038 +c0d848b0d038a8c838a8b078ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffe8e8e8fffffff09890b83848d02820d03828e02820d82820d02820d02820 +c82820c82020c82820d02820c02020b82020a83028b03040b83848907828a08830b89828 +d8b830d8b830c8b050c8b050c0b078d8c0b0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd098c0a85868a03040a82020b82020c02020c82820c82820b82020a83028a02020 +a04858b888a0a098b0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0a8b8b0a8b8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffa8b07898c038b0d038c0d848b8d038 +b8d038b0d038a0b848a0a880a8a0a8a8a0b0a8a0b0b0a8b8ffffffffffffffffffffffff +ffffffffffffffffffffffffd88090c82820d02820d02820d02820d82820d82820d82820 +d82820d82820d03828e02820d82820d82820d02820c02030c82820c02020b82020a83028 +a83028b89828b89828a08830b09068f0a098ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +d090a8a85068a03040a01820c02020d02820d02820c02020c82820a83028a01820801018 +884050d098b0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8b0a8b8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffa0b07098c038b0d038b8d038c0d848 +b0d038a0c83890b038c8b8a0b0a8b8b0a8b8b0a8b8a098b0a8a0b0a0a0b0a8a0a8b0b8a8 +b0b8a8b0b8a8d0c0a8d8c0b0c87080c02020c82820c02030d02820d02820c02030d82820 +d82820d82820e02820e02820e02820e02820e02820e02820d03828c82020c82820d03828 +a83028b02020b02020a83028d03828c06868c07888c08090c8a0a8ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd098b0 +a84050901828b02020c02030d03828d02820d03828d02820c02020b02020901818903040 +a87080ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8a8a0b8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffa0b05898c038b8d038b8d038b8d038 +b0d038a8d038a8b868ffffffffffffffffffffffffffffffffffffb0a8b8a0a0b09898a0 +a0a0b0b0b888b0b0b8c890a8c06868a82830b02020b82020c02030c02020c02030d02820 +c02030d03828e02820e02820e04840e02820e02820d03828e02820e02820d02820c82820 +d02820d03828e02820c82820b82020b82020b02020a82830a84050b85868c06078c06098 +d090a8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +d0a8c0b888a0c07888b87888c07888d090a8ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff982030 +a82830b02020b82020c02020d02820c82020c82020c02030a82020981820a03038b87888 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8a8a0b8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffc0c0b098a850a8c838b8d038b8d038b8d038 +b0d038a0b848a8b868ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffa0a0b0b0b0b8a08890a05068903040901828981820a02020a82020b02020a83028 +c82020c02020c02030d03828d82820d82820e02820e02820e02820e02820d03828e02820 +e02820e02820e02820e02820d03828e02820d03828c82020c82020b02020b02030a82830 +a84050a84050c06078c07888c888a0d098b0d8a8c0ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +b86878a04050901828901828982030a84050c87080d8a0b0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffd090a8a84050a82020 +b82020c02020c02020d02820d02820c02030b82020b82020901818a04050c07888d8a0b0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8b0a8b8ffffffffffffffffffffffff +ffffffffffffb0b0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0b888a0b848a8d038b8d038b8d038b8d038 +b0d038a0b848b8c0a0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffb098b0c06098b87888a85068a84050a03038901818981818 +981820a02020a82020a82020b82020c02030c02020d03828c02030d03828e02820d82820 +e02820d03828e02820e02820e02820d03828e02820e02820d03828e02820c82820c82020 +c02030c02030b03040b03040b03040b83848a85060c87080d088a0d090a8ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc07888 +a03040982030a82020a82020a82020982030a03040b85868c070a8e0a8c0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffd88090b03078a82830c02030 +c02020c82820c02030c82820c02030c02020a83028901818a04050b87888ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0a8b8b0a8b8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8b07890b038b0d038b8d038b0d038b8d038 +b0d038a0b848d0c0a0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffe0a8c0d088a0c08090b86878a85868 +a04050983848903040901828901818a02020a82020b02020c02020c82820d02820c02030 +d03828e02820d03828d02820d82820d03828e02820e02820e02820e02820e02820e02820 +d03828d02820c82020c02020c02020c82820c02030b83848b83848c83078c06868c87080 +d88090d090a8d8a8c0d0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd8a0b0b84050 +a82830b82020b82020c02020b82020b82020b02020a82830b84050c87080d088a0ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffd088a0a84050a82830b82020c82820 +c82820c82820d02820c02020a83028b02020a02038903040c08098ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8b0b0b8ffffffffffffffffffffffff +ffffffffffffb0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8b868a0b848b0d038b0d038b8d038b0d038 +b0d038a8b868b8c0a0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +c890a8b878a8a87080a05080a05068a04050a03038901818a02020a02020b02020b82020 +c82820c02030c82820c02030d82820d82820d03828e02820e02820d03828e02820e02820 +e02820d03828e02820d03828d02820d03828c82820c82020b82020b82020b02030c02030 +b83848a85060c06078c06078d88090d088a0d8a0b0ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffe0a8c0c87080b83848 +c02020d02820c82020c82820c82820c02020c02020b82020a82020a03040a85060b87888 +c8a0a8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffc08090a84050a02038b82020c82020d02820 +d02820c02030c02020b82020a82020901828983848b878a8ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8ffffffffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa0b06898b838b0d038b8d038b0d038b0d038 +b0d038a8b868c0c0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffd098c0d098c0b888a0a85868907828a03038a83028a83028a83028 +981820a82020b02020b82020c02020c02020d02820d02820d02820d03828e02820d03828 +e02820e02820d03828e02820e02820d82820d82820d03828d82820d02820d02820c02030 +c82820c82020c82020b02030b83848b84050c06078c87080d088a0d8a0b0e0a8c0e0a8c0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffd88090b83848c02020 +d02820d82820d03828d82820d82820d02820c02030d02820b82020a01820a02020a03848 +a85868b87888d098b0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffc08090a84050a02020b02020c82020d02820d02820 +c02030c82820b02020a82020901828903040a05080ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffa8a0b8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa0b05898c038b0d038b8d038b8d038b0d038 +a8d038a8b078ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffc8a0a8a89068c0a858c8b050c0a840a08830 +a83028a02020a02020a02020a02020a02020a82020b82020c02030d02820d02820c02030 +d03828d82820d82820d82820d02820d82820d03828e02820e02820e02820e02820e02820 +e02820d02820d02820c82820c02020c02030b82020b03040b03040a84050b85868c87080 +d088a0d8a0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffe0a8c0e86860a82830c02020 +d82820e02820e02820e02820e02820d82820d03828d82820c82020c02020a82020a02020 +a02020903040a85868c888a0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffd88090a04858a02020b02020c02020c02030d02820c02030 +c82820b82020a02020901818903040a87080ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8b0b0b8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffc0c0b0a0b848a8c838b0d038b8d038b0d038b0d038 +a8c838b0b888ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0b888a0b068a8b868d8e068d8e068c8b060 +a0b848a89058a89068a85868884050983848802028982030a02020a01820b82020c02020 +c02030d02820c02030d02820c02030d02820d82820d82820e02820e04840e02820d03828 +e02820d03828d82820d82820c02030c02020c82820b82020b82020b02020a82020a83028 +a83028a84050a85068b87888c888a0d8a8c0e0a8c0ffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffff09890b83848c02030c82820 +d03828e02820e02820e02820e04840e02820e02820d82820c02030c82820c02020a82020 +a83028901818a02020a03848c07888d8a8c0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffd88090a84050a01820b02020c02020d02820d02820c82820c02020 +b02020a02020901818983848a87080ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8b0b0b8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffc0c0b0a0b848a8c838b0d038b8d038b8d038a8d038 +a0b848b0b888ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb0b8a8788848508038508038788848a0b848a8b868 +a8b868b8c0a0ffffffffffffc8a0a8b098b0b87888a05080a85068981850982030a01820 +b02020b02020b82020b82020b82020b02030b82020d02820d03828e02820d82820e02820 +d82820d82820d82820d02820d03828d82820d03828d02820d02820c82820c82820c82820 +c02020c02030b03040a02020982030a02038a04858c87080d088a0e0a8c0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffe0a8c0d88090c02020d03828d82820 +d82820e02820e02820e02820e02820e02820e02820d03828d82820c82820c02020c82820 +c02020c82820a83028981818881818a85060d088a0ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffc08098a02058a01820b82020d02820c02030d02820c02030c82820b02020 +a82020901818a04050c888a0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffb0a8b8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb0b8a898b838a8c838b0d038b8d038b0d038b0d038 +a0b848b8c0a0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffa8a0a8788848405020405020487030508038709038 +788848c8b8a0ffffffffffffe8e0e8ffffffffffffffffffffffffd098c0b88098b86878 +a04050903040881818901818981820a02020a82830a01820b82020b82020c02030c82820 +d03828d02820d03828e02820d82820e02820e02820e02820e02820e02820d03828d82820 +d03828d82820d03828d02820c82820c02020c02020b82020b82020a83028b83848a85060 +b86878d088a0e0a8c0ffffffffffffffffffffffffe0a8c0e03078d82820c02030e02820 +d03828e02820e04840e02820e02820e02820e02820e02820d02820d02820d02820d03828 +d82820d02820c02020c82820b82020a82020b03040d04080d088a0ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd088a0a02058b02030b82020c82020c02030d02820c02020c02020a83028a82020 +881818884050c07888ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8b0b0b8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb8c0a090a838a8c838b8d038b8d038b0d038a8d038 +a0b848b8c0a0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffff9898a0506028405020506028506028405020405020 +607030ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +c8a0a8c888a0c08090b87888b86878a04050901828901818901828981820a02020a82020 +b02020c02030c82020c02030d82820d03828e02820e02820d03828e02820e02820e02820 +e02820e02820e02820d03828e02820d03828d82820d02820c82820c02020b82020b82020 +b03040a03040a84050c06078c07888d088a0d090a8e86860e04840e02820d02820d03828 +e02820e02820e02820e02820e02820e02820e02820d03828d82820c02030d03828e02820 +d82820d03828d82820c02020c82820c02030c02030a02038b82068c87080d098c0ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +c888a0a02058b02020b82020c02030d02820c82820c02020c02020c02020a82020802028 +984078b888a0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0a8b8a8a0b8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb0b88898b838a8c838b0d038b8d038b0d038a0c838 +a0b058c0c0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffff788078506028405020384038405020506028405020 +788078ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffc088b8c890a8b87888a85868a04858a03038802028 +981820981820a82020b02020b82020c02030c02030d03828e02820d82820d03828d82820 +d03828e02820d03828e02820e02820e02820e02820e02820d03828d82820d02820c02030 +d02820c82820b02020a82830b03040a84050b84050d04080e85850e04840e02820d03828 +e02820e02820e02820e02820e02820e04840e02820e02820e02820e02820d03828e02820 +d03828e02820d02820d02820d02820d02820c02020c02020a82830b03040b84050c07888 +e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08098 +b03078a83028c02020d02820d02820c82820c02030b82020a83028b02020901818a05080 +a098b0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8b0a8b8ffffffffffffffffffffffff +ffffffffffffb0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffa0a88098b838a8c838b0d038b8d038a8d038a0c838 +a0b068ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffb0b0b8706878506028405020506028405020405020487030 +909878ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffc888a0b88098b86878 +a85868a04858a03040a02020982030a02020b02020b02020c02020c02030d02820d02820 +d02820c02030d02820d02820d82820d03828e02820e02820e02820e02820e02820d03828 +e02820d03828d02820c82820c02020b02020b83848e85850e86860e86860e85850e85850 +e04840e02820d03828e02820e02820e02820e02820e02820e04840d82820e02820d82820 +e02820d82820d03828d82820c02030d82820d02820c02030c82820b82020a82020b83848 +b85868c08098ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08098a84050 +a82020b82020c02030d82820d02820c02030c02020b82020a82020901818a04050d098c0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8b0a8b8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffa0b07090a838b0d038b0d038b8d038a8d03898c038 +a0b068ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffff909878607030405020405020405020405020405020607030 +a8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd090a8b87888b86878a85060a84050a03038a02020a02020a02020a82020a82830 +b02020b82020b82020c02030c82820d82820d82820d03828e02820d03828e02820e02820 +d03828e02820d02820c02030c82820b82020e04840f09088f09088f09088f09088e86860 +e86860e85850e85850e04840d03828e02820e02820d03828e02820e02820e02820e02820 +d03828e02820d03828e02820e02820d03828e02820d03828d82820c82020c02030b82020 +a82020a84050c06078d098b0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffc06098a84050a02038 +b02020c02020c82820c82820c02030c82820b82020a82020982030a04858b88098ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0a8b8a8a0b8ffffffffffffffffffffffff +ffffffffffffb0b0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffa0a88090b038b0d038b0d038b8d038a8d03898c038 +a0b068ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffff788078506028506028487030405020405020487030788078 +b0b0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffe0a8c0d090a8c08098a85868a85068983848a03848903040 +982030a01820a02020b02020b02020c02030c02030d82820d02820d03828e02820d03828 +c82020d03828c82020d02820c82820b82020e85850f09088f0a098f0a098f09890f0a098 +f09890f09088e86860e86860e85850e85850e04840e02820e02820e02820d03828e02820 +e02820e02820e02820d03828e02820e02820e02820e02820e02820e02820d03828c82020 +c02030b02030a82830a85060b87888d8a8c0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffc07888a84050b02020b82020 +c02020c02020c02030c02020c02020c02020a83028901828a84050c890a8ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8b0b0b8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffa0b07090b038a8c838b8d038b0d038b0d03898c038 +a0b070ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffc0c0b090a048709038508038607030487030384038506028788078 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb878a8b87888 +a05080a04050a03040a02038982030a02020b02020b02030c02030c02030c02020c02030 +c02020d02820d02820d03828c02020b82020d03828e86860f09088f09890f09890f09890 +f0a098f0a098f0a098f0a098f09088e86860e86860e86850e04840e04840e02820e02820 +e04840e02820e02820e02820d03828e02820e02820e02820e02820e02820e02820e02820 +e02820c02030b02020901828a03038a85060d088a0ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffc07888a02038a01820b82020c02030 +c82820d03828c82820c82820c02020a83028981820a04858c890a8ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8b0a8b8ffffffffffffffffffffffff +ffffffffffffb0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffa0b07090a838b0d038b8d038b0d038a8d03898c038 +a8b868ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffb0b88898a850a8c838a8c83890b038789038607030607030a0a880 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffd090a8c87080a04858981850901828982030a02038982030a01820a82020 +b02020a82020b82020b82020b02020b02030d03828e85850e85850e86860e86860f09088 +f09088f09088f09890f0a098f0a098f0a098f0a098f09890f09088e86860e86860e85850 +d03828d03828c02030e02820e02820e02820e04840e02820e02820e04840e02820e02820 +d03828c02020c82820c02020a82020a02020a83028b86878d0a8c0ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffc06098a02038a02020c02030c82820c82820 +c82820d02820c02020b82020981820881818a05068c088b8ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0a8b8a8a0b8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffa0a88090b038b0d038b0d038b0d038a8d03898c038 +a0b070ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffb8c0a0a8b078a8d038c0d848c0d848c0d848b8d03890b03898a850b0b0b8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffc08098a04080903040802028901828 +901828881818a02020a82020a02020b02020b82020c82020d03828e02820e04840e04840 +e85850e85850e86860f09088f09088f09088f09890f0a098f0a098f0a098f0a098f09088 +f09088e86860e85850e85850e02820e02820e02820e02820e02820e02820e02820d03828 +d82820d82820c02030d03828c82020c82820b82020a02020903040b88098ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffc06098982030982030b82020c82820c82820d02820 +d82820d02820c02030a02020802028a04858c088b8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8b0b0b8ffffffffffffffffffffffff +ffffffffffffb0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffa0b07090a838b0d038b0d038a8d038a8c83898c038 +a0b070ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffb0b888a0b848b0d038c0d848b8d038c0d848c0d848a8b868b0b888ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd098c0d098b0 +c08098884050802028881818801018a02020c82820d82820d82820e02820e02820e02820 +e02820e02820e04840e02820e04840e85850e86860e86860f09890f09088f09890f0a098 +f0a098f0a098f09890f09088e86860e86860e04840d03828d03828d03828d82820d03828 +e02820e02820e02820d03828e02820d03828e02820d02820b02020a82830b84050d88090 +e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffd8a8c0c06098a03038a82830b82020b82020c02020d02820d02820 +c02030c82820a82020901818a05068c890a8ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8b0a8b8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffc0c0b0a0a88090a838a8c838b0d038a8d038a8c83898c038 +a8b078ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffc0c0b0b0b888a0c838b8d038c0d848b8d038b8d038b8d038a8b868b0b888ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd098b0c890a8d88090b86058a83028c02020d02820d03828e02820d03828e02820 +e02820e02820e02820e02820e02820e02820e04840e04840e85850e85850e86860e86860 +f09088f09088f09890f09890f0a098f09890f09088e86860e86860e04840d03828d03828 +d82820d03828e02820e02820e02820e02820e02820e02820d03828c02020b02020a03040 +c06078d098b0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffe0a8c0c06098a84050b02020c02020c02020c82820c02020c02030c82820 +c02030b82020981820a04858b878a8ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8a8a0b8ffffffffffffffffffffffff +ffffffffffffb0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffa0b06890a838a8c838b0d038a8d038a0c83898c038 +b0b888ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffb8c0a0a8d038a0c838c0d848b8d038b8d038b8d038b8d038a8b868c0c0b0ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffff09088b83848c82820c82820d02820d82820e02820d03828 +e02820d03828e02820e02820e04840e02820e02820e02820e02820d03828d03828e04840 +e04840e85850e86860e86860f09088f09088f09088f09890f09088f09088e86860e86850 +e85850e04840e02820d03828e02820e02820e02820e02820e02820c02030c82820b82020 +b03040a85068c07888ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffd098b0c87080b84050b02030c02020d02820c82820c02030c82820c02020b82020 +a82020a02020a85068b878a8ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa098b0b0b0b8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffff90987890b038a8c838b0d038a8d038a0c83898c038 +b0b888ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffb0b888a0b848a8d038c0d848b8d038b8d038b8d038a8c838b0b888ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffff09890b84050a83028d02820c02030d82820d82820d03828 +e02820e02820e02820e02820e02820e02820e02820e02820e02820e02820e02820d03828 +e02820e02820e02820e04840e04840e85850e86860f09088f09088f09088f09088f09088 +f09088e86860e86860e85850e04840e04840e02820d03828e02820d03828d02820c82820 +b82020b02020b03040b85868d088a0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +d8a0b0b86878b03040b02030c02030c82020d03828d82820c82820c02020b82020a02020 +982030a04858d098c0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa098b0a8a0b8ffffffffffffffffffffffff +ffffffffffffb0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffc0c0b0a0b06890a838a8c838a8d038a8c838a0c83898c038 +b0b888ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +c0c0b0a8b868a8d038b0d038b8d038c0d848b8d038b8d038a0b848b8c0a0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffd88090b83848c02030c82820d02820d02820d03828d82820 +d03828e02820d03828e02820d03828e02820e02820d03828e02820d03828e02820e02820 +e02820e02820d03828e02820e02820e02820d03828e02820e85850e86850e86850f09088 +f09088f09088f09088f09088e86860e86860e85850e04840e04840d02820d02820d02820 +c82820c82820c02020b02030b83848c06098d8a0b0ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd098b0 +b86878a03040a82020c02020c82820d02820c02030d02820c82820b82020a83028901828 +a05068b888a0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa098b0a8a0b8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffff90987890a838a8c838a8d038a8d038a0c83898b838 +b0b888ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +b0b888a8b868a8d038b8d038c0d848c0d848b8d038a8d038a8b868ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffc87080b83848c02030c82820d02820d02820c02030d82820 +c02030d82820d02820c02030d82820d03828d02820d82820d03828e02820e02820e02820 +d03828e02820e02820e02820e02820d03828e02820e02820e02820e02820e02820e02820 +e04840e85850e86860f09088f09088f09890f09088f09088e86850e04840d03828d03828 +e02820e02820e02820d82820c02030b02030b85868d088a0e0a8c0ffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb86878 +982030a82020c02020d02820c02030d82820c02020c02020c02030a82020901828a04858 +c088b8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa098b0a8a0b8ffffffffffffffffffffffff +ffffffffffffb0b0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffc0c0b0a0b06890a838a8c838a8c838a0c838a0c83898b838 +a0b070ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb8c0a0 +a0b070a0c838b0d038b8d038b8d038c0d848a8d038a0b848b0b888ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffc06078b83848c02030d02820c02030d82820d02820c02030 +d02820c02030c82820c02030c82820c82820c02030d02820d02820d82820d03828e02820 +e02820e02820d03828e02820e02820e02820e02820e02820d03828e02820d03828e02820 +d82820d03828d82820e04840e04840e86860e86860f09088f09088f09088f09088e86860 +e85850e02820d03828e02820d03828d82820b82020a02038c06078e0a8c0ffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffd8a8c0b86878a03038 +a02020b02020c82820d02820c82820c82820c02020c82820a02020901818a04858c088b8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa098b0b0a8b8ffffffffffffffffffffffff +ffffffffffffb0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffa0b07090a83898c038a8d038a8d03898c03898b838 +a8b078ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b888 +a0b848a8d038b0d038b8d038b8d038b0d038a0b848a8b868b8c0a0ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffc06078b83848c02030c82020c82820c02020c02020c02020 +b82020b82020b82020c02020b82020c02020c82820c02030d02820d02820d82820d03828 +e02820d03828c02030d02820c02030d03828d02820d03828e02820e02820e02820d03828 +e02820d82820c82820c82020c82820c82820d02820d82820e02820e04840e85850e86860 +f09088f0a098f09088e85850e02820c02030d03828d02820b82020a82830c87080e0a8c0 +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffe0a8c0b85868982030b02020 +c02020c82820c02030c82820c02030b82020a83028a02020881818a85068c088b8ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa098b0a8a0b8ffffffffffffffffffffffff +ffffffffffffb0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffff90987890b038a8c838a8c838a8d03898c03890b038 +a8b078ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0c0b0a8b868 +a8d038b0d038b8d038b8d038b8d038a8d038a8b868b8c0a0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffc87080b03040c02020c02020b82020b82020b02030b82020 +b82020b82020a83028c02020b82020c82820c02020c02020c02030c82820c02030d82820 +c02030d82820d02820c02030c82820c02020c02030c82820c82820c02030d03828c82020 +d02820d02820d02820d82820d82820e02820d03828e02820e02820e02820e02820d03828 +d03828d03828e85850e86860f09088f09890e86860e04840c82820b82020b02030b84050 +c87080e0a8c0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffd098b0b85090b03040b02020b82020 +d02820d02820d02820c82820c02020b82020a82020982030a85068c890a8ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa098b0b0a8b8ffffffffffffffffffffffff +ffffffffffffb0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffc0c0b0a0b07090a83898c038a0c838a8d038a0c838a0b848 +a8b078ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b888a8b868 +b0d038b8d038b8d038b8d038a8d038a0c838a8b868c0c0b0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffc07888b03040b02020b82020b82020b82020c02020b82020 +c02020c02020c02020c02020c02020c02030c82820b82020c02020b82020c02020b82020 +c02020b02030c82820c02020c82820c02020c82820c82820c02020c82820c02020c82820 +c02030d02820d02820c02030d03828d82820d02820d02820c82820d03828d02820d02820 +c82020c82820d02820d03828d03828d03828e04840e85850e86860e86860e85850d03828 +c02030b83848d088a0d098c0ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffc898b0c06078a02058b02030c82020d02820 +d02820c02030c82820b82020a83028a01820901828a85868d090a8ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8b0b0b8ffffffffffffffffffffffff +ffffffffffffa8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffff90987890a83898b838a0c838a0c838a0c83890b038 +a8b078ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffc0c0b0a0b068a8c838 +b0d038b8d038b8d038b8d038a8d03898c038b0b888ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffc888a0a03038b02020b02020b02020b82020a83028b82020 +b82020c02020c02020a83028c82820b82020b82020b82020a83028b82020a82020b02020 +a82020b82020b82020b82020b82020c02030b82020b82020b82020b82020b82020b82020 +b82020b82020c02030c82820c82020c02030c82820c02030b82020b02020b82020c02020 +c82820c82820c02020c82820c82820c02020c82820d03828b84050e04840b83848e04840 +e04840e85850984078a08890c088b8ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd090a8b86878a03040b82020c02020d02820d82820 +d02820c82820b82020a83028a01820802028a87080d098c0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa8a0b8b0a8b8ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffc0c0b0a0a88080a83890b038a0c838a0c83898c03898c038 +a0b070ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffa8b078a0b848a8d038 +b8d038b8d038b8d038c0d848a0c838a8b868b8c0a0ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffc8a0a8a84050982030a02020a82020a82020b02020b02020 +a82020a83028b82020b02020b02020b02020a82020a82020a82020a01820a02020a02020 +a02020a82020a82020b02020b02020a82020a82020a82020a82020a82020a82020a82020 +a82020a82020a82020a82020b02020a82020b02020a82020a82020a01820a82020b02020 +b02020b02020b02020b02020a82020a82020a82020a02020a82020b02020b82020c02030 +b83848b84050884050984078808090b878a8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffc890a8b86878a03040a01820c02020d02820d82820c02030 +c82820c02030b02020981820802028a05080ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0a8b8b0a8b8ffffffffffffffffffffffff +ffffffffffffb0a8b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffa0b07078903898b83898c038a0c83898c03898b838 +a0b070ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffb8c0a0a8b868a0c838b0d038 +b8d038b8d038b0d038a8d03898c038b0b888ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffa05068802028901828981820a01820a01820981820 +a02020a01820981820981820981820981820981820981818981820981820901818901818 +901818901818981820981820981820901818901818901818901818901818981820901818 +901818981820901818901818901818901818901818901818901818981820981820a02020 +a02020a83028a02020982030a83028a03038a03040a84050a85060a84050b85868b85868 +c06078b86878b068a0a08890b878a8b098b0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffd0a8c0a87080983848901828b02020b82020d03828d82820c82820 +b82020b02020981820901818884050ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb098b0c8a0a8ffffffffffffffffffffffff +ffffffffffffb098b0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffa0a88090a04890a83898c038a0c83898c03890b038 +a0b068ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffb0b888a0b848a8d038b8d038 +b8d038b8d038b0d038a0c838a8b868c0c0b0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffa87080702838801018801018881818881818881818 +801018781010881818781010881818781010801018781010781010801018781010781010 +801018801018801018801018881818802028802028802028802028802028903040903040 +903040983848884050983848884050a04050a04858a05068a05068a85060a85868a87080 +b86878a87080b86878b87888a87080c08090c08098c888a0d090a8d8a0b0ffffffe0a8c0 +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffb098b0a87080a05068983848a83028b82020c02020c02020b02030 +b82020981820901818a04858c888a0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb098b0ffffffffffffffffffffffffffffff +ffffffffffffb098b0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb0b88878903890b03898c03898c038a0c83890b038 +a0b058ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffb8c0a0a0b058a0b848b0d038b0d038 +b0d038b0d038b0d038a0b848b8c0a0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffc088b8984078702838781010500828781010781010 +802028802028702838802028802028702838903040702838702838884050903040702838 +702838884050884050884050a05068a05068a87080a87080a87080a87080a08890b88098 +b888a0c8a0a8d098c0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffff0a098f09088b83848a02020b02020a83028 +a82020901818a85060d088a0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb098b0c8a0a8ffffffffffffffffffffffff +ffffffd8a0b0b888a0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb8c0a078884890a83898b83898c03898c03898c038 +98a850b0b8a8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffc0c0b0a0b07090b038c0d848b0d038b0d038 +b0d038b0d038a0c838a8b868c0c0b0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffc890a8a05080703858703858884050a05080 +a87080a87080a08890b888a0b888a0c890a8c0b0c0c8a0a8ffffffffffffffffffffffff +fffffff0d8e8e8e0e8e8e0e8e8e0e8ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffa8a0b8ffffffffffffffffffffffffffffffffffffc87080a83028a02020981820 +982030a85868d090a8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa87080b87888f09890ffffffffffffffffff +f0a098d088a0b87888ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb8c0a098a85078903898b83898c03898c03890b038 +98b838a0a880ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0b888a0b84898c038c0d848a8d038b0d038 +b0d038a8d038a0b058b8c0a0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffff0d8e8e8e0e8ffffffffffff +ffffffffffffffffffffffffffffffffffffe8e0e8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffffffffffffffffffffffffffffffffff0a098b86058781010702838 +b86878d098b0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa05080884050a03038a83028b86058b83848 +a04858a03038a04858ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffc0c0b090987880a83880a83898b838a0b84898c038 +90b038a0b070c0c0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb8c0a0a0b05890b038a8d038b0d038b0d038a8d038 +a8d038a0b848a0b070ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffd8a0b0a05068702838a85868 +c898b0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffe8e0e8a05068802028a02020a83028a83028a83028 +b02030981818983848ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa0b07078903890a83890b03898c03890b038 +90b03898a850b8c0a0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffb8c0a0a8b078a0b848a8c838b0d038b0d038b0d038a8d038 +a0b848a0b068b8c0a0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffc0c0b0a05068808090d098b0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa05068802028a02020b02020c02020b02020 +b82020a82020a03038ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa0a88078884880a83890b03890b03898c038 +90b03890a048b0b888ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffc0c0b0a8b078a0b848a8c838b0d038b0d038b0d038a8d03898c038 +98a850b0b888ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffb0b0b8b0a8b89898a0c898b0ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa05068982030a82020c02020c02020c02020 +c82820b02020a03040ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0b8a878884878903890b038a0b84890b038 +98b83890a838a8b868ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffc0c0b0b0b888a0b058a8c838a8c838b8d038a8d038a8c838a0c838a0b848 +a8b078ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0b0b8a8a0b0b0a8b8ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb86878982030b82020c02020c82820d02820 +c02030b82020a03040e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffff90987878903890a83890b03890b038 +90b03890a83898a850b8c0a0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffc0c0b0b0b888a8b868a8c838a8c838a8c838b0d038b0d038a0c83890b038a0b068 +b8c0a0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb0b0b8a0a0b0a8a0b8ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85868b02030b82020c82820d02820d02820 +c82820b82020b03040ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffff90987878884878903890a83890b038 +98a85090b03880a838a0a880ffffffffffffffffffffffffffffffffffffffffffffffff +c0c0b0b0b888a0b070a0b848a8c838a8c838a8c838b0d038a0c83890b038a0b058b0b888 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffb0b0b8a0a0b0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffc06078982030c02020c82820d82820d82820 +c02030c02020a03040e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffa8a0a878884878903890a04880a838 +90b03890b03890a04898a850b0b8a8ffffffffffffffffffffffffffffffffffffc0c0b0 +b0b888a0b07098a85098b838a8c838a8c838b0d038a8c83890b03898a850a0a880ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffb0b0b8a0a0b0a8a0b8ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85868b02030b82020d02820d02820d03828 +c82820c02020b83848ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffff90987878884878903880a838 +90b03890b03880a83890a048a0a880c0c0b0ffffffffffffffffffc0c0b0b0b888a0b070 +98a85098a850a0b848a8c838a8c838a8c838a8c83898c03890b038a0b070ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffb8b0c0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffb0a8b8a0a0b0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffc06078a82830b82020c02030d02820d02820 +c02030b82020a03848ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffff9898a0788848789038789038 +80a83880a83880a83880a83890a048a0b070b0b888b0b888b0b888a8b868a0b05890a048 +80a838a0b84898c038a8c83898b83898c03898b83890b038a8b868ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +b8b8b8a8a0b0a8a0b0a8a0b8ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85868a82830b82020c82820c02030d02820 +c02020b02020a03040ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffff909878788848709038 +78903880a83890a04880a83880a83880a83890a04890a04890a04890b03880a83890b038 +98b83898b838a0b84898c03898b83890b03890b038a0b068b8c0a0ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffb8b0c0ffffffffffffffffffffffffffffffffffffffffffffffffc0c0b0 +b0b0b8a0a0b0a8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85088a82020b82020c02020c82820c82820 +b82020b02020a84050ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b8a8788848789038 +70903880a83880a83880a83880a83878884880a83880a83880a83880a83890a83898b838 +98c03898c03890b03890b03890b03890a048a0b068b0b888ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb8b8b8a8a0b0 +a8a0a8b0b0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffc06078982030b82020c02020c02020c02030 +b82020a82020a03040ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b888788848 +70903870903870903880a83878884880a83880a83880a83890a04890b03890a04898c038 +90b03890b03890b03880a83880a838a0b070b0b888ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffb8b8b8b0b0b8a0a0b0 +a0a0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85868a82830b02020c02020c02020c82820 +b82020a83028a03040ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff909878 +78884870903870903870903880a83880a83880a83880a83880a83890b03890b03890b038 +90a04880a83880a83890a048909878b8c0a0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b0b8 +ffffffffffffffffffffffffffffffffffffffffffffffffb8b8b8b0a8b8a8a0b0a8a0b8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85868a82020b82020c02020c02030c82820 +c02020b02020a03040e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +a8a0a870903870903870903878884878903878884878903890a04880a83880a83880a838 +789038788848909878a0a880b0b8a8ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb8b0c0ffffff +ffffffffffffffffffffffffffffffffffffffffffb8b8b8b0a8b8b0a8b8ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85068a82020a83028c82820c02020c82820 +c02020a83028a82830ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffff909878788848607030607030789038789038789038789038789038789038788848 +90a048909878b0b888ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b0b8ffffffffffff +ffffffffffffffffffffffffffffffffffffb8b8b8a8a0b0a8a0b0b0a8b8ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85868a82020b82020c02020c82820c02030 +c02020b82020a03038e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffb0b8a8a0a88090987878884878884878884878884878884890a048a0a880 +b0b8a8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb8b0c0a8a0a8a8a0b0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060a02020b02020c02020c82820c82820 +c02020a83028a83028ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb0b0b8a8a0a8a8a0a8b8c0a0b0b0b8b0b0b8ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffb0b0b8ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffa8a0b0a8a0b8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060a02020a83028c82020c02020d02820 +c02030b82020a03038e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffb0b0b8a098b0a8a0b0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060a02020b82020c02020c02030c82820 +c02020b02020a03038e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffa8a0b0a098b0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060a02020b02020c02020c82820c82820 +c02020a83028b03040ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffb8b0c0a8a0b0b0a8b8ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060981820b02020c02020c82820c02030 +c02020b82020a83028ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +b8b0c0a8a0a8a098b0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060a02020b02020c02020c82820c82820 +c02020b02020a03038e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb8b0c0 +a8a0b0a098b0a8a0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85868a02020b02020c02020c02030c82820 +c02020b02020a82830ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffb8b0c0ffffffffffffffffffffffffffffffffffffffffffffffffb0a8b8a8a0a8 +a098b0b0b0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85868a82020b02020c02020c82820c82820 +c02030b82020a82830ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +b0b0b8ffffffffffffffffffffffffffffffffffffffffffffffffb0b0b8a098b0a098b0 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85868a83028b02020c02020c82820c02030 +c82820b02020a03038ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b0b8 +ffffffffffffffffffffffffffffffffffffffffffffffffb0a8b8a8a0a8a8a0b8ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85868a83028b82020c02020c82820c82820 +c02020b02020a83028ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb8b0c0ffffff +ffffffffffffffffffffffffffffffffffffffffffb8b0c0a0a0b0a8a0b8ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85868a82020b02020c02020c02030c82820 +c02020a83028a82830ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffb0b0b8a098b0a8a0b8ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060a02020b02020c02020d02820c02020 +c02020b82020a82830ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffb0b0b8a8a0b8a8a0b8ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85868a02020b02020c82820c82820c02030 +c02020b82020a03038ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffb0b0b8a098b0a8a0b8ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85868a82020b02020c02020c82820c82820 +c02020a83028a82830ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffb0b0b8a098b0a098b0ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85868a82020b82020c02020c02030c82820 +c02020b82020a03038e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffb0b0b89898a0a098b0ffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85868a02020a83028c82820c82820c82020 +c02020b82020a03038e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffa0a0b0a8a0b0b098b0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060a02020b02020c02020c82820c02030 +c02020b02020a82830ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffb0b0b8ffffffffffffffffffffffffffffffffffffffffffffffff +a0a0b0a0a0b0a8a0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060a02020b02020c02020c82820d02820 +c02020b02020982030ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +d0a8c0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b0b8 +a0a0b0b0b0b8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85068a02020b02020c82820c02030d02820 +c02020a83028a02020ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +d8a8c0ffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b0b8a0a0b0 +a0a0b0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85868a83028b82020c02020c82820c82820 +c02020b82020a02038e0a8c0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd098b0c07888 +b86878c08090d8a0b0ffffffffffffffffffffffffffffffffffffb0b0b8a0a0b0a8a0b8 +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85868a83028b82020c02020c82820c02030 +c02020a83028a83028ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffd098b0b86878a03038 +a02020a03038c06868f0a098ffffffffffffffffffffffffb0b0b8a0a0b0a8a0b0ffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060a82020b02020c02020c82820c82820 +c02020b82020a03038ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffc088b8c06078a03040a02020 +a02020a02020a83028c06868f0a098ffffffffffffb0b0b8a8a0a8b0b0b8ffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060a02020b02020c82820c02030c82820 +c02020b02020a82830ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffe0a8c0c06078a02038a82020b82020 +c82820b82020a82020a02020b86058c8a0a8c8b8a0a8a0a89898a0ffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85060981820b02020c02020d02820c82820 +c02030b02020982030d8a0b0ffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffd8a0b0b84050a01820b02020c02020c82820 +c82820c82820b82020a02020a04858b87888a08890a8a0b0ffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85868a82020b02020c02020c02030d02820 +c02020a82020a02020ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffd088a0a03848a01820c02030c02020c82820d02820 +c02030c82820b02020a02020903040884050a08890ffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85868a82020a83028c82020c82820c82820 +c02020b02020a82830ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffd088a0a85068a01820b02020c82820d02820d82820d82820 +d02820c02020a83028901818903040a87080ffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffa85868a82020b02020c02020c82820c02020 +c02020b02020a82830ffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffff + +showpage + +% stop using temporary dictionary +end + +% restore original state +origstate restore + +%%Trailer diff --git a/doc/high_level_doc/diplom.bib b/doc/high_level_doc/diplom.bib new file mode 100644 index 0000000..d03b737 --- /dev/null +++ b/doc/high_level_doc/diplom.bib @@ -0,0 +1,928 @@ +@InProceedings{VMV2001, + author = "H. Surmann and K. Lingemann and A. N{\"u}chter and J. Hertzberg", + title = "{F}ast acquiring and analysis of three dimensional laser range data", + booktitle = "Proceedings of the of the 6th International Fall Workshop Vision, Modeling, and Visualization (VMV '01)", + month = "November", + year = "2001", + pages = "59 -- 66", + address = "Stuttgart, Germany" +} + +@InProceedings{ISR2001, + author = "H. Surmann and K. Lingemann and A. N{\"u}chter and J. Hertzberg", + title = "A 3{D} laser range finder for autonomous mobile robots", + booktitle = "Proceedings of the of the 32nd International Symposium on Robotics (ISR '01)", + month = "April", + year = "2001", + pages = "153 -- 158", + address = "Seoul, Korea" +} + +@Book{Report2001, + author = "H. Surmann and K. Lingemann and A. N{\"u}chter and J. Hertzberg", + title = "Aufbau eines 3D--Laserscanners f{\"u}r autonome mobile Roboter, GMD Report 126", + publisher = "GMD - Forschungszentrum Informationstechnik GmbH", + address = "Sankt Augustin", + month = "March", + year = "2001", +} + +@InProceedings{IT2001, + author = "A. N{\"u}chter and K. Lingemann", + title = "Ein 3{D}-{L}aserscanner f{\"u}r autonome mobile {R}oboter", + booktitle = "Tagungsband zum 3. Fachwissenschaftlichen Informatikkongress - Informatiktage 2001", + month = "November", + year = "2001", + pages = "89 -- 92", + address = "Bad Schussenried, Germany" +} + +@Article{Ariadne1998, + author= "H. Surmann", + title = "Diener mit unscharfer {L}ogik", + month = "March", + year = "1998", + journal = "GMD--Pointer, http://www.gmd.de/pointer/2-98/servicerob.html", +} + +@misc{Karpinski2000, + author = "M. Karpinski", + title = "Approximative {A}lgorithmen f{\"u}r {NP}--harte {B}erechnungsprobleme (\textit{{APX} 00}), {U}niversit{"a}t {B}onn, {V}orlesungsmitschrift", + year = "2000", +} + + +@misc{Frehse1997, + author = "J. Frehse", + title = "Infinitisimalrechnung II, {U}niversit{"a}t {B}onn, {V}orlesungsmitschrift", + year = "1997", +} + + +@misc{Hudelson1998, + author = "M. Hudelson", + title = "Graph {T}heory (\textit{{M}ath 453}), {F}all {S}emester, {W}ashington {S}tate {U}niversity, {V}orlesungsmitschrift", + year = "1998", +} + +@book{Russel, + author = "S. Russell and P. Norvig", + title = "Artificial Intelligence, A Modern Approach", + year = "1995", + publisher = "Prentice Hall, Inc.", + address = "Upper Sanddle River, NJ, USA", +} + +@book{Arnold, + author = "V. Arnold", + title = "Gew鰄nliche Differentialgleichungen", + year = "2001", + publisher = "Springer Verlag", + address = "Berlin Heidelberg", +} + +@book{Heuser, + author = "H. Heuser", + title = "Gew鰄nliche Differentialgleichungen : Einf黨rung in Lehre und Gebrauch", + year = "1989", + publisher = "Teubner", + address = "Stuttgart", +} + +@book{Orourke, + author = "J. O'Rourke", + title = "Art Gallery Theorems and Algorithms", + year = "1987", + publisher = "Oxford University Press", +} + +@book{Cormen, + author = "Th. Cormen and Ch. Leiserson and R. Rivest", + title = "Introduction to Algorithms", + year = "1997", + publisher = "McGraw--Hill Book Company", + address = " ", +} + +@book{Orear, + author = "J. Orear", + title = "Physik", + year = "1991", + publisher = "Weltbild Verlag GmbH", + address = "Augsburg" +} + +@book{Fischer, + author = "G. Fischer", + title = "{L}ineare {A}lgebra", + year = "1995", + publisher = "Friedrich Vieweg \& Sohn Verglagsgesellschaft mbH", + address = "Braunschweig / Wiesbaden", +} + +@book{Forster, + author = "O. Forster", + title = "{A}nalysis 1", + year = "1996", + publisher = "Friedrich Vieweg \& Sohn Verglagsgesellschaft mbH", + address = "Braunschweig / Wiesbaden", +} + +@book{Deuflhard, + author = "P. Deuflhard and A. Hohmann", + title = "{N}umerische {M}athematik --- {E}ine algorithmisch orientierte {E}inf黨rung", + year = "1993", + publisher = "Walter de Gruyter Co.", + address = "Berlin", +} + +@article{Horn_1987, + author = "B. K. P. Horn", + title = "Closed--form solution of absolute orientation using unit quaternions", + journal = "Journal of the Optical Society of America A", + month = "April", + year = "1987", + volume = "4", + number = "4", + pages = "629 -- 642" +} + +@article{Horn_1988, + author = "B. K. P. Horn and H. M. Hilden and Sh. Negahdaripour", + title = "Closed--form solution of absolute orientation using orthonormal matrices", + journal = "Journal of the Optical Society of America A", + month = "July", + year = "1988", + volume = "5", + number = "7", + pages = "1127 -- 1135" +} + + +@article{Besl_1992, + author = "P. Besl and N. McKay", + title = "A method for {R}egistration of 3--{D} {S}hapes", + journal = "IEEE Transactions on Pattern Analysis and Machine Intelligence", + month = "February", + year = "1992", + volume = "14", + number = "2", + pages = "239 -- 256" +} + +@article{Shermer_1992, + author = "T. Shermer", + title = "{R}ecent {R}esults in {A}rt {G}alleries", + journal = "Proceedings of the IEEE", + month = "September", + year = "1992", + volume = "80", + number = "9", + pages = "1384 -- 1399" +} + +@InProceedings{Chen_1991, + author = "Y. Chen and G. Medioni", + title = "{O}bject {M}odelling by {R}egistration of {M}ultiple {Range} {I}mages", + booktitle = "Proceedings of the IEEE Conference on Robotics and Automation (ICRA '91)", + month = "April", + year = "1991", + address = "Sacramento, CA, USA", + pages = "2724 -- 2729", +} + +@InProceedings{Hebert_2001, + author = "M. Hebert and M. Deans and D. Huber and B. Nabbe and N. Vandapel", + title = "Progress in 3--{D} {M}apping and {L}ocalization", + booktitle = "Proceedings of the 9th International Symposium on Intelligent Robotic Systems, (SIRS '01)", + month = "July", + year = "2001", + address = "Toulouse, France" +} + +@InProceedings{Sappa_2001, + author = "A. Sappa and A. Restrepo-Specht and M. Devy", + title = "Range {I}mage {R}egistration by using an {E}dge--based {R}epresentation", + booktitle = "Proceedings of th 9th International Symposium on Intelligent Robotic Systems, (SIRS '01)", + month = "July", + year = "2001", + address = "Toulouse, France" +} + +@inproceedings{Simon_1994, + author = "D. Simon and M. Hebert and T. Kanade", + title = "Real--time 3--{D} pose estimation using a high--speed range sensor", + booktitle = "Proceedings of IEEE International Conference on Robotics and Automation (ICRA '94)", + month = "May", + year = "1994", + volume = "3", + pages = "2235 -- 2241", + address = "San Diego, CA, USA" +} + +@inproceedings{Huber_2000, + author = "D. Huber and O. Carmichael and M. Hebert", + title = "3{D} map reconstruction from range data", + booktitle = "Proceedings of the IEEE International Conference on Robotics and Automation (ICRA '00)", + month = "April", + year = "2000", + volume = "1", + pages = "891 -- 897", + address = "San Francisco, CA, USA" +} + +@article{Johnson_1999, + author = "A. E. Johnson and M. Hebert", + title = "Using spin images for efficient object recognition in cluttered 3{D} scenes", + journal = "IEEE Transactions on Pattern Analysis and Machine Intelligence", + month = "May", + year = "1999", + volume = "21", + number = "5", + pages = "433 -- 449" +} + +@InProceedings{Johnson_1998, + author = {A. E. Johnson and M. Hebert}, + title = {Efficient multiple model recognition in cluttered {3-D}scenes}, + booktitle = {Proceedings of the IEEE International Conference on Computer Vision and Pattern Recognition (CVPR' 98)}, + pages = {671 -- 677}, + year = {1998}, + address = {Santa Barbara, CA, U.S.A.}, + month = {June} +} + +@inproceedings{Huber_2001, + author = "D. Huber", + title = "Automatic 3{D} {M}odeling {U}sing {R}ange {I}mages {O}btained from {U}nknown {V}iewpoints", + booktitle = "Proceedings of the Third International Conference on 3D Digital Imaging and Modeling (3DIM '01)", + month = "May", + year = "2001", + pages = "153 -- 160", + address = "Quebec City, Canada", +} + +@inproceedings{Huber_1999, + author = "D. Huber and M. Hebert", + title = "A {N}ew {A}pproach to 3--{D} {T}errain {M}apping", + booktitle = "Proceedings of the 1999 IEEE/RSJ International Conference on Intelligent Robotics and Systems (IROS '99)", + month = "October", + year = "1999", + pages = "1121 -- 1127", + publisher = "IEEE", + address = "Kyonjyu, Korea" +} + +@techreport{Zhang_1992, + author = "Z. Zhang", + title = "Iterative point matching for registration of free--form curves", + number = "RR-1658", + year = "1992", + institution = "INRIA--Sophia Antipolis", + address = "Valbonne Cedex, France", + url = "citeseer.nj.nec.com/zhang92iterative.html" +} + +@inproceedings{Schroeder_1998, + author="W. Schr{"o}der and E. Forgber and G. R{"o}h", + title = "{L}aser range camera applications", + booktitle = "Proceedings of the 5th ESA Workshop on Advanced Space Technologies for Robot Applications", + month = "December", + year = "1998", + address = "Noordwijk, The Netherlands" +} + +@article{Lange_2001, + author="R. Lange and P. Seitz", + title = "{S}olid-state time-of-flight range camera", + journal = "IEEE Journal of Quantum Electronics", + month = "March", + year = "2001", + volume = "37", + number = "3", +} + +@inproceedings{Banos_1998, + author="H. Gonzales-Banos and J. Latombe", + title = "Planning {R}obot {M}otions for {R}ange--{I}mage {A}cqusition and {A}utomatic 3{D} {M}odel {C}onstruction", + booktitle = "Proceedings of AAAI Fall Symposium", + month = "October", + year = "1998", + publisher = "AAAI Press", + address = "Menlo Park, CA, USA" +} + +@inproceedings{Banos_2000, + author="H. Gonzalez-Banos and E. Mao and J.C. Latombe and T.M. Murali and A. Efrat", + title = "Planning {R}obot {M}otion {S}trategies for {E}fficient {M}odel {C}onstruction", + booktitle = "Robotics Research -- The 9th International Symposium (ISRR'99)", + year = "2000", + publisher = "Springer", + pages = "345 -- 352", + editor = "J. Hollerbach and D. Koditschek" +} + +@inproceedings{Banta_1995, + author="J. Banta and Y. Zhieng and X. Wang and G. Zhang and M. Smith and M. Abidi", + title = "A ``{B}est--{N}ext--{V}iew'' {A}lgorithm for {T}hree--{D}imensional {S}cene {R}econstruction {U}sing {R}ange {I}mages", + booktitle = "Proceedings SPIE (Intelligent Robots and Computer Vision XIV: Algorithms), vol 2588", + year = "1995", + editor = "D. Casasent", + pages = "418 -- 429" +} + +@inproceedings{Thrun_2000, + author="S. Thrun and D. Fox and W. Burgard", + title = "A real-time algorithm for mobile robot mapping with application to multi robot and 3{D} mapping", + booktitle = "Proceedings of the IEEE International Conference on Robotics and Automation (ICRA '00)", + month = "April", + year = "2000", + address = "San Francisco, CA, USA", +} + +@article{Thrun_2001, + author="S. Thrun and D. Fox and W. Burgard and F. Dellaert", + title = "{R}obust {M}onte {C}arlo {L}ocalization for {M}obile {R}obots", + journal = "Artificial Intelligence", + year = "2001", + month = "Summer", +} + + +@inproceedings{Haehnel_2001, + author="D. H{\"a}hnel and W. Burgard and S. Thrun", + title = "Learning {C}ompact 3{D} {M}odels of {I}ndoor and {O}utdoor {E}nvironments with a {M}obile {R}obot", + booktitle = "Proceedings of the fourth European workshop on advanced mobile robots (EUROBOT '01)", + month = "September", + year = "2001", + address = "Lund, Sweden", +} + +@inproceedings{Haehnel_2002, + author="D. H{"a}hnel and W. Burgard", + title = "{P}robabilistic {M}atching for {3D} {S}can {R}egistration", + booktitle = "Proceedings of the second German conference on robotics (ROBOTIK '02)", + month = "June", + year = "2002", + address = "Ludwigsburg, Germany", +} + +@inproceedings{Rusi_2001, + author="S. Rusinkiewicz and M. Levoy", + title = "Efficient variants of the {ICP} algorithm", + booktitle = "Proceedings of the Third International Conference on 3D Digital Imaging and Modellling (3DIM '01)", + month = "May", + year = "2001", + address = "Quebec City, Canada", + pages = "145 -- 152", +} + +@inproceedings{Lorusso_1995, + author = "A. Lorusso and D. Eggert and R. Fisher", + title = "A {C}omparison of {F}our {A}lgorithms for {E}stimating 3-{D} {R}igid {T}ransformations", + Booktitle = "Proceedings of the 4th British Machine Vision Conference (BMVC '95)", + pages = "237 -- 246", + address = "Birmingham, England", + month = "September", + year = "1995", + url = "citeseer.nj.nec.com/lorusso95comparison.html" +} + +@article{Curless_1996, + author = "B. Curless and M. Levoy", + title = "A {V}olumetric {M}ethod for {B}uilding {C}omplex {M}odels from {R}ange {I}mages", + journal = "Computer Graphics", + volume = "30", + number = "{Annual Conference Series}", + pages = "303 -- 312", + year = "1996", + url = "citeseer.nj.nec.com/curless96volumetric.html" +} + +@inproceedings{Banos_2001, + author = "H. Gonzalez-Banos and J. Latombe", + title = "A {R}andomized {A}rt-{G}allery {A}lgorithm for {S}ensor {P}lacement", + booktitle = "Proceedings of ACM Symposium on Computational Geometry (SoCG'01)", + month = "June", + year = "2001", + address = "Medford, MA, USA" +} + +@inproceedings{Latombe_2000, + author = "H. Gonzalez-Banos and J. Latombe", + title = "Robot {N}avigation for {A}utomatic {M}odel {C}onstruction {U}sing {S}afe {R}egions", + booktitle = "Lecture Notes in Control and Information Sciences, 271, (Proceedings of International Symposium on Experimental Robotics (ISER '00))", + month = "December", + year = "2000", + address = "Waikiki, HI, USA", + editor = "D. Russ and S. Singh", + pages = "405 -- 415", + publisher = "Springer", +} + +@phdthesis{Verbeek_2001, + author = "Chr. Verbeek", + title = "Reaktive {S}teuerung autonomer mobiler {R}oboter", + school = "Technische Fakult{\"a}t der {U}niversit{\"a}t Bielefeld", + month = "January", + year = "2001", +} + + +@inproceedings{Pulli_1997, + author = "K. Pulli and T. Duchamp and H. Hoppe and J. McDonald and L. Shapiro and W. Stuetzle", + title = "Robust meshes from multiple range maps", + booktitle = "Proceedings IEEE International Conference on Recent Advances in 3D Digital Imaging and Modeling (3DIM '97)", + address = "Ottawa, Canada", + month = "May", + year = "1997", + url = "citeseer.nj.nec.com/pulli97robust.html" +} + +@inproceedings{Benjemaa_1997, + author = "R. Benjemaa and F. Schmitt", + title = "{F}ast {G}lobal {R}egistration of {3D} {S}ampled {S}urfaces {U}sing a {M}ulti-{Z}-{B}uffer {T}echnique", + booktitle = "Proceedings IEEE International Conference on Recent Advances in 3D Digital Imaging and Modeling (3DIM '97)", + address = "Ottawa, Canada", + month = "May", + year = "1997", +} + +@article{Hoppe_1992, + author = "H. Hoppe and T. DeRose and T. Duchamp and J. McDonald and W. Stuetzle", + title = "Surface reconstruction from unorganized points", + journal = "Computer Graphics", + volume = "26", + number = "2", + pages = "71 -- 78", + year = "1992", + url = "citeseer.nj.nec.com/hoppe92surface.html" +} + +@misc{City_2001, + author = "City Project Page", + title = "\texttt{http://graphics.lcs.mit.edu/city/city.html}", + year = "2001" +} + +@misc{Bahnplanung_2001, + author = "R. Klein and Chr. Icking and E. Langetepe", + title = "Entwicklung, {A}nalyse und experimentelle {E}rprobung von kompetitiven {A}lgorithmen f{\"u}r die {B}ahnplanung autonomer {S}ysteme, \texttt{http://web.informatik.uni-bonn.de/I/research/dfg-bahnplanung/}", + year = "2001" +} + +@article{Hoffmann_2002, + author ="F. Hoffmann and Chr. Icking and R. Klein and K. Kriegel", + title = "The Polygon Exploration Problem", + journal = "SIAM Journal on Computing", + volume = "31", + number = "2", + pages = "577--600", + year = "2002", + url = "citeseer.nj.nec.com/493716.html" +} + + +@inproceedings{Stamos_2000, + author = "I. Stamos and P. Allen", + title = "3-{D} {M}odel {C}onstruction {U}sing {R}ange and {I}mage {D}ata", + booktitle = "Proceedings of the Conference on Computer Vision and Pattern Recognition (CVPR '00)", + month = "June", + year = "2000", + address = "USA" +} + +@inproceedings{Allen_2001, + author = "P. Allen and I. Stamos and A. Gueorguiev and E. Gold and P. Blaer", + title = "{AVENUE:} {A}utomated {S}ite {M}odelling in {U}rban {E}nvironments", + booktitle = "Proceedings of the Third International Conference on 3D Digital Imaging and Modeling (3DIM '01)", + month = "May", + year = "2001", + address = "Quebec City, Canada", +} + +@inproceedings{Gueorguiev_2000, + author = "A. Gueorguiev and P. Allen and E. Gold and P. Blaer", + title = "{D}esign, {A}rcitecture and {C}ontrol of a {M}obile Site-{M}odelling {R}obot", + booktitle = "Proceedings of the IEEE International Conference on Robotics and Automation (ICRA '00)", + month = "April", + year = "2000", + address = "San Francisco, CA, USA" +} + +@inproceedings{Allen_1998, + author = "P. Allen and M. Reed and I. Stamos", + title = "View {P}lanning for {S}ite {M}odeling", + booktitle = "Proceedings of the DARPA Image Understanding Workshop", + address = "Monterey", + month = "November", + year = "1998" +} + +@inproceedings{Reed_1997, + author = "M. Reed and P. Allen and I. Stamos", + title = "Automated {M}odel {A}cquisition from {R}ange {I}mages with {V}iew {P}lanning", + booktitle = "Proceedings of the Conference on Computer Vision and Pattern Recognition (CVPR '97)", + address = "Puerto Rico", + year = " 1997", +} + +@article{Reed_1999, + author ="M. Reed and P. Allen", + title = "3-{D} {M}odeling from {R}ange {I}magery: {A}n {I}ncremental {M}ethod with a {P}lanning {C}omponent", + journal = "{I}mage and {V}ision {C}omputing", + volume = "17", + pages = "99 -- 111", + year = "1999" +} + +@inproceedings{Yang_1998, + author = "P. Allen and R. Yang", + title = "Registering, {I}ntegrating, and {B}uilding {CAD} {M}odels from {R}ange {D}ata", + booktitle = "Proceedings of the IEEE International Conference on Robotics and Automation (ICRA '98)", + month = "May", + year = "1998", + address = "Leuven, Belgium", +} + +@misc{matrixfaq, + author = "Matrix FAQ", + title = "Version 2, \texttt{http://skal.planet-d.net/demo/matrixfaq.htm}", + year = "1997" +} + +@techreport{Dam_1998, + author = "E. Dam and M. Koch and M. Lillholm", + title = "{Q}uaternion, {I}nterpolation and {A}nimation", + number = "DIKU-TR-98/5", + year = "1998", + institution = "Department of Computer Science University of Copenhagen", + address = "Copenhagen, Denmark", +} + +@article{Hart_1994, + author ="J. Hart and G. Francis and L. Kauffmann", + title = "{V}isualizing {Q}uaternion {Rotation}", + journal = "{ACM} {T}ransactions on {G}raphics", + volume = "13", + pages = "256 -- 276", + year = "1994", + month = "July", +} + +@inproceedings{Pervin_1983, + author = "E. Pervin and J. Webb", + title = "{Q}uaternions for computer vision and robotics", + booktitle = "Proceedings of the Conference on Computer Vision and Pattern Recognition (CVPR '83)", + address = "Washington, D.C., USA", + year = " 1983", +} + +@misc{Hamilton, + author = "Sir William Rowan Hamilton (1805-1865)", + title = "\texttt{http://www.maths.tcd.ie/pub/{H}istMath/ {P}eople/{H}amilton/}", + year = "2000" +} + +@inproceedings{Hamilton_1843, + author = "W. Hamilton", + title = "{O}n a new {S}pecies of {I}maginary {Q}uantities connected with a theory of {Q}uaternions", + booktitle = "Proceedings of the Royal Irish Academy", + month = "November", + address = "Dublin, Ireland", + year = " 1843", +} + +@article{Eggert_1998, + author ="D. Eggert and A. Fitzgibbon and R. Fisher", + title = "{S}imultaneous {R}egistration of {M}ultiple {R}ange {V}iews {S}atisfying {G}lobal {C}onsistency {C}onstraints For {U}se {I}n {R}everse {E}ngineering", + journal = "{C}omputer {V}ision and {I}mage {U}nderstanding", + volume = "69", + pages = "253 -- 272", + year = "1998", + month = "March", +} + +@inproceedings{Michelangelo_2000, + author = "M. Levoy and K. Pulli and B. Curless and S. Rusinkiewicz and D. Koller and L. Pereira and M. Ginzton and S. Anerson and J. Davis and J. Ginsberg and J. Shade and D. Fulk", + title = "{T}he {D}igital {M}ichelangelo {P}roject: {3D} {S}canning of {L}arge {S}tatues", + booktitle = "Proceedings of the ACM SIGGRAPH", + year = "2000", + address = "New Orleans, USA", + month = "July", +} + +@inproceedings{Pulli_1999, + author = "K. Pulli", + title = "{M}ultiview {R}egistration for {L}arge {D}ata {S}ets", + booktitle = "Proceedings of the 2nd International Conference on 3D Digital Imaging and Modeling (3DIM '99)", + address = "Ottawa, Canada", + year = "1999", + month = "October", + pages = "160 -- 168", +} + +@inproceedings{Stoddart_1996, + author = "A. Stoddart and A. Hilton", + title = "{R}egistration of multiple point sets", + booktitle = "Proceedings of the 13th IAPR International Conference on Pattern Recognition", + year = "1996", + pages = "40--44", + address = "Vienna, Austria", + month = "August", +} + +@inproceedings{Cunnington_1999, + author = "S. Cunnington and A. Stoddart", + title = "{N}-{V}iew {P}oint {S}et {R}egistration: {A} {C}omparison", + Booktitle = "Proceedings of the 10th British Machine Vision Conference (BMVC '99)", + year = "1999", + address = "Nottingham, UK.", + url = "citeseer.nj.nec.com/319525.html" +} + +@article{Blais_1995, + author ="G. Blais and D. Levine", + title = "{R}egistration {M}ultiview {R}ange {D}ata to {C}reate 3{D} {C}omputer {O}bjects", + journal = "{P}attern {A}nalysis and {M}achine {I}ntelligence", + volume = "17", + number ="8", + pages = "820 -- 824", + year = "1995", + month = "August", +} + +@article{Benjemaa_1998, + author ="R. Benjemaas and F. Schmitt", + title = "{A} {S}olution {F}or {T}he {R}egistration {O}f {M}ultiple 3{D} {P}oint {S}ets {U}sing {U}nit {Q}uaternions", + journal = "{C}omputer {V}ision -- ECCV '98", + volume = "2", + pages = "34 -- 50", + year = "1998", + publisher = "Springer Verlag", +} + +@inproceedings{Frueh_2001_1, + author = "C. Fr{\"u}h and A. Zakhor", + title = "3{D} {M}odel {G}eneration for {C}ities {U}sing {A}erial {P}hotographs and {G}round {L}evel {L}aser {S}cans", + Booktitle = "Proceedings of the Computer Vision and Pattern Recognition Conference (CVPR '01)", + year = "2001", + month = "December", + address = "Kauai, Hawaii, USA", +} + +@inproceedings{Frueh_2001_2, + author = "C. Fr{\"u}h and A. Zakhor", + title = "{F}ast 3{D} {M}odel {G}eneration in {U}rban {E}nvironments", + Booktitle = "Proceedings of the 4th International Conference on Multisensor Fusion and Integration for Intelligent Systems (MFI '01)", + year = "2001", + month = "August", + address = "Baden Baden, Germany", +} + +@inproceedings{Sequeira_1999, + author = "V. Sequeira and K. Ng and E. Wolfart and J. Goncalves and D. Hogg", + title = "{A}utomated {3D} reconstruction of interiors with multiple scan--views", + booktitle = "Proceedings of SPIE, Electronic Imaging '99, The Society for Imaging Science and Technology /SPIE's 11th Annual Symposium", + year = "1999", + address = "San Jose, CA, USA", + month = "January", +} + +@Article{Sequeira_1995, + author= "V. Sequeira and J. Goncalves and M. Ribeiro", + title = "{3D} environment modelling using laser range sensing", + year = "1995", + journal = "Robotics and Automation", + pages = "81 -- 91", + volume = "16", + publisher = "Elsevier", +} + +@inproceedings{Sappa_2000, + author = "A. Sappa and M. Devy and M. Garcia", + title = "{M}odelling {B}uilt {E}nvironments from {L}arge {R}ange {I}mages using {A}daptive {T}riangular {M}eshes", + booktitle = "Proceedings of the 8th International Symposium on Intelligent Robotic Systems, (SIRS '00)", + year = "2000", + address = "Reading, United Kingdom", + month = "July", + pages = "23 -- 29" +} + +@inproceedings{Garcia_2000, + author = "A. Sappa and M. Garcia", + title = "{I}ncremental {M}ultiview {I}ntegration of {R}ange {I}mages", + booktitle = "Proceedings of the 15th IAPR International Conference on Pattern Recognition", + year = "2000", + pages = "546 -- 549", + address = "Barcelona, Spain", + month = "September", +} + +@inproceedings{Garcia_1998, + author = "M. Garcia and S. Velazquez and A. Sappa", + title = "{A} {T}wo--{S}tage {A}lgorithm for {P}lanning the {N}ext {V}iew {F}rom {R}ange {I}mages", + Booktitle = "Proceedings of the 9th British Machine Vision Conference (BMVC '98)", + pages = "720 -- 729", + address = "Southampton, United Kingdom", + year = "1998", +} + +@inproceedings{Huber_2001_1, + author = "Daniel F. Huber and Martial Hebert", + title = "Fully Automatic Registration of Multiple 3D Data Sets", + booktitle = "IEEE Computer Society Workshop on Computer Vision Beyond the Visible Spectrum (CVBVS '01)", + month = "December", + year = "2001" +} + +@inproceedings{Turk_1994, + author = "G. Turk and M. Levoy", + title = "{Z}ippered polygon meshes from range images", + booktitle = "Proceedings of the ACM SIGGRAPH '94", + year = "1994", + address = "Orlando, FL, USA", + month = "July", + pages = "311 -- 318", +} + +@inproceedings{Zhao_2001, + author = "H. Zhao and R. Shibasaki", + title = "{R}econstructing {T}extured {CAD} {M}odel of {U}rban {E}nvironment {U}sing {V}ehicle-{B}orne {L}aser {R}ange {S}canners and {L}ine {C}ameras", + booktitle = "Second International Workshop on Computer Vision System (ICVS '01)", + year = "2001", + address = "Vancouver, Canada", + month = "July", + pages = "284 -- 295", +} + +@article{Zhao_2000, + author = "H. Zhao and R. Shibasaki", + title = "{R}econstruction of {T}extured Urban {3D} {M}odel by {G}round-{B}ased {L}aser {R}ange and {CCD} {I}mages", + journal = "IEICE Transactions on Information and Systems", + volume = "E38-D", + number ="7", + pages = ".1429 -- 1440", + year = "2000", +} + +@inproceedings{Indiveri_1999, + author = "G. Indiveri", + title = "{K}inematic {T}ime-invariant {C}ontrol of a {2D} {N}onholonomic {V}ehicle", + booktitle = "Proceedings of the 38th Conference on Decision and Control, (CDC '99)", + address = "Phoenix, USA", + month = "December", + year = "1999", +} + +@article{Carlsson_1999, + author ="S. Carlsson and B. Nilsson", + title = "{C}omputing {V}ision {P}oints in {P}olygons", + journal = "{A}lgorithmica", + volume = "24", + number ="1", + pages = "50 -- 75", + year = "1999", +} + +@article{Vatti_1992, + author ="B. Vatti", + title = "{A} {G}eneric {S}olution to {P}olygon {C}lipping", + journal = "{C}ommunications of the {ACM}", + volume = "35", + number ="7", + pages = "56 -- 63", + year = "1992", +} + +@article{Amenta_2001, + author ="N. Amenta and S. Choi and R. Kolluri", + title = "{T}he {P}ower {C}rust", + journal = "{C}ommunications of the {ACM}", + volume = "35", + number ="7", + pages = "56 -- 63", + year = "2001", +} + +@article{Prytherch_2002, + author ="D. Prytherch and M. McLundie", + title = "{S}o what is haptics anyway?", + journal = "{R}esearch issues in {A}rt {D}esign and {M}edia", + publisher = "{T}he {R}esearch {T}raining {I}nitiative", + volume = "Spring", + number ="2", + pages = "1 -- 16", + year = "2002", +} + +@book{Streri_2002, + author = "A. Streri", + title = "Seeing, Reaching, and touching (cited through \cite{Gonz_1998}) ", + publisher = "The MIT Press", + address = "Cambridge, MA, USA", + year = "1993", +} + +@inproceedings{Gonz_1998, + author = "L. Goncalves and R. Grupen and A. Oliveira", + title = "{A} {C}ontrol {A}rchitecture for {M}ulti-modal {S}ensory {I}ntegration", + booktitle = "Proceedings of the 9th IEEE International Conference on Computer Graphics and Image Processing (SIBGRAPH '98)", + year = "1998", + month = "October", + address = "Rio de Janeiro, RJ, Brazil", +} + +@incollection{Bern_2000, + author = "M. Bern and P. Plassmann", + title = "Mesh Generation", + booktitle = "Handbook of Computational Geometry", + publisher = "Elsevier Science", + editor = "J. Sack and J. Urrutia", + year = "2000", + url = "citeseer.nj.nec.com/bern00mesh.html" +} + +@misc{WDR, + author = "WDR", + title = "{L}eonardo {S}chwerpunkt {H}aptik \texttt{http://capehorn.gmd.de:8080/download/haptik/\linebreak haptik.mp3}" +} + +@misc{CAMERA, + author = "CAMERA: CAd Modelling of Built Environments from Range Analysis", + title = "\texttt{http://www.dai.ed.ac.uk/homes/rbf/{CAMERA}/camera.htm}", + year = "2000" +} + +@misc{RESOLV, + author = "{The ACTS RESOLV (REconstruction using Scanned Laser and Video) Project}", + title = "\texttt{http://www.comp.leeds.ac.uk/resolv/}", + year = "1999" +} + +@misc{RIEGLold, + author = "RIEGL Laser Measurement Systems GmbH", + title = "\texttt{http://www.riegl.co.at/}", + year = "2001" +} + +@misc{AVENUE, + author = "{AVENUE (Autonomous Vehicle for Exploration and Navigation in Urban Environments) Project}", + title = "\texttt{http://www.cs.columbia.edu/} \texttt{robotics/projects/avenue/}", + year = "2001" +} + +@misc{3DMAP, + author = "3D Terrain Mapping Using Range Sensors", + title = "\texttt{http://www-2.cs.cmu.edu/$\sim$dhuber/ mapping/}", + year = "1999" +} + +@misc{URLTHRUN, + author = "CMU's 3D Robot Mapping Project", + title = "\texttt{http://www-2.cs.cmu.edu/$\sim$thrun/3D/index.html}", + year = "2000" +} + +@misc{3DFAX, + author = "Project to build a 3D fax machine", + title = "\texttt{http://graphics.stanford.edu/projects/faxing/}", + year = "2001" +} + +@misc{LYAPUNOV, + author = "The Lyapunov Function, Wolfram Research{,}", + title = "\texttt{http://mathworld.wolfram.com/Lyapunov\linebreak Function.html}", + year = "2002" +} + +@misc{CLAY, + author = "Clay Mathematics Institute", + title = "\texttt{http://www.claymath.org/prizeproblems/index.htm}", + month = "May", + year = "2000" +} + +@misc{POWERCRUST, + author = "The Power Crust", + title = "\texttt{http://www.cs.utexas.edu/users/amenta/powercrust/}", + year = "2002" +} + +@misc{INTRO, + author = "MIT's Bouncing Baby Robot?", + title = "\texttt{http://www.controleng.com/archives/2000/ctl0101.00\linebreak /000101w1.htm}", + year = "2000" +} + +@misc{SIEMENS3D, + author = "Siemens 3D-Sensor", + title = "http://w4.siemens.de/FuI/de/archiv/newworld/heft2\_01/artikel03/", + year = "2001", +} + + + + + + diff --git a/doc/high_level_doc/diss.bib b/doc/high_level_doc/diss.bib new file mode 100644 index 0000000..7af6afe --- /dev/null +++ b/doc/high_level_doc/diss.bib @@ -0,0 +1,485 @@ +@Book{WasIstWas_1999, + author = {P. Clausen}, + title = {Was ist was, Band 37, Computer und Roboter}, + publisher = {Tessloff Verlag}, + year = {1999}, + address = {N{\"u}nberg}, +} + +@Book{Voelker_1971, + editor = {K. V{\"o}lker}, + title = {K{\"u}nstliche Menschen}, + publisher = {Carl Hanser Verlag}, + address = {M{\"u}nchen}, + year = {1971}, +} + +@MastersThesis{DIPLOM_STIENE, + author = {S. Stiene}, + title = {{K}onturbasierte {O}bjekterkennung aus {T}iefenbildern eines {3D}-{L}aserscanners}, + school = {University of Osnabr點k}, + year = {2006}, + month = {January}, +} + +@PhdThesis{DISS_SIMONE, + author = {S. Frintrop}, + title = {{VOCUS}: {A} {V}isual {A}ttention {S}ystem for {O}bject {D}etection and {G}oal-directed search}, + school = {University of Bonn}, + year = {2005}, +} + +@Misc{P3AT, + author = {P3-AT, \texttt{http://www.activrobots.com/ROBOTS/p2at.html}}, + year = {2006}, +} + +@Misc{P3DX, + author = {P3-DX, \texttt{http://www.activrobots.com/ROBOTS/p2dx.html}}, + year = {2006}, +} + +@Misc{ATRV, + author = {ATRV - JR Specifications, \texttt{http://rescue.isr.ist.utl.pt/atrvjr.php}}, + year = {2006}, +} + +@Misc{Galileo, + author = {Galileo (Satellitennavigation), \texttt{http://de.wikipedia.org/wiki/Galileo\_(Satellitennavigation)}}, + year = {2006}, +} + +@Misc{GPS, + author = {Global Positioning System, \texttt{http://de.wikipedia.org/wiki/Global\_Positioning\_System}}, + year = {2006}, +} + +@Misc{PMD, + author = {PMDTechnologies GmbH, \texttt{http://www.pmdtec.com/inhalt/produkte/kamera.htm}}, + year = {2005}, +} + +@Misc{CSEM, + title = {Swissranger 3D camera distance measurement object recognition range finding camera depth measurement \texttt{http://www.swissranger.ch/}}, + year = {2005}, +} + +@Misc{Leutze, + title = {Siemens/{L}eutze {L}aserscanner, \texttt{http://www2.automation.siemens.com/cd/safety/html\_ 00/produkte/optisch\_laser.htm}}, + year = {2005}, +} + +@Misc{Schmersal, + title = {Schmersal {L}aserscanner, \texttt{http://www.produkte.schmersal.de/585/521/23124/range. html?lang=de}}, + year = {2005}, +} + +@Misc{Sick, + title = {SICK {L}aserscanner, \texttt{http://ecatalog.sick.com/Products/ProductFinder/product.aspx? finder=Produktfinder\&pid=9168\&lang=de}}, + year = {2005}, +} + +@Misc{Cyberware, + title = {Cyberware Body Scanner, \texttt{http://www.cyberware.com/products/wbInfo.html}}, + year = {2005}, +} + +@Misc{Cyrax, + title = {Cyrax {L}aserscanner, \texttt{http://hds.leica-geosystems.com/products/products.html}}, + year = {2005}, +} + +@Misc{Riegl, + title = {Riegl {L}aserscanner, \texttt{http://www.riegl.co.at/terrestrial\_scanners/terrestrial\_ scanner\_overview\_/terr\_scanner\_menu\_all.htm}}, + year = {2005}, +} + +@Misc{Zoller, + title = {Zoller und {F}r{\"o}hlich {L}aserscanner, \texttt{http://www.zf-laser.com/d\_bildgebende.html}}, + year = {2005}, +} + +@InProceedings{Fasano_2003, + author = "A. Fasano and M. Callieri and P. Cignoni and R. Scopigno", + title = "Exploiting Mirrors for Laser Stripe 3D Scanning", + booktitle = "Proceedings of the 4th IEEE International Conference on Recent Advances in 3D Digital Imaging and Modeling (3DIM '03)", + month = "October", + year = "2003", + address = "Banff, Canada", + pages = "243 -- 251", +} + +@article{Elfes_1989, + author = {A. Elfes}, + title = {Using Occupancy Grids for Mobile Robot Perception and Navigation}, + journal = {Computer}, + volume = {22}, + number = {6}, + year = {1989}, + issn = {0018-9162}, + pages = {46 -- 57}, + publisher = {IEEE Computer Society Press}, + } + +@Article{Elfes_1987, + author = {A. Elfes}, + title = {Sonar-based real-world mapping and navigation}, + journal = {IEEE Journal of Robotics and Automation}, + year = {1987}, + OPTkey = {}, + volume = {3}, + OPTnumber = {}, + pages = {249 -- 265}, + OPTmonth = {}, + OPTnote = {}, + OPTannote = {} +} + +@inproceedings{Choset_1996, + author = "H. Choset and J. W. Burdick", + title = "Sensor based motion planning: The hierarchical generalized voronoi graph", + booktitle = "Proceedings of the Workshop on Algorithmic Foundations of Robotics", + address = "Toulouse, France", + year = "1996", +} + + +@InProceedings{Kortenkamp_1994, + author = {D. Kortenkamp and T. Weymouth}, + title = { Topological mapping for mobile robots using a combination of sonar and vision sensing}, + OPTcrossref = {}, + OPTkey = {}, + booktitle = {Proceedings of the twelfth national Conference on Artificial Intelligence (AAAI '94)}, + OPTpages = {}, + year = {1994}, + OPTeditor = {}, + OPTvolume = {}, + OPTnumber = {}, + OPTseries = {}, + OPTaddress = {}, + month = {July}, + OPTorganization = {}, + OPTpublisher = {}, + OPTnote = {}, + OPTannote = {} +} + +@Misc{KURT2, + OPTkey = {}, + author = {KURT2 home site at AIS}, + title = {A Mobile Platform for Research in Robotics, \texttt{http://www.ais.fraunhofer.de/KURT2/}}, + OPThowpublished = {}, + OPTmonth = {}, + year = {2005}, + OPTnote = {}, + OPTannote = {} +} + +@incollection{Smith_1990, + author = {R. Smith and M. Self and P. Cheeseman}, + title = {Estimating uncertain spatial relationships in robotics}, + booktitle = {Autonomous robot vehicles}, + year = {1990}, + pages = {167 -- 193}, + publisher = {Springer-Verlag New York, Inc.}, + } + + + +@Article{Zimmer_1996, + author = {U. R. Zimmer}, + title = {Robust World-Modelling and Navigation in a Real World}, + journal = {NeuroComputing}, + year = {1996}, + OPTkey = {}, + volume = {13}, + number = {2 - 4}, + pages = {247 -- 260}, + OPTmonth = {}, + OPTnote = {}, + OPTannote = {} +} + +@inproceedings{Pierce_1995, + author = {D. Pierce and B. Kuipers}, + title = {Learning to explore and build maps}, + booktitle = {Proceedings of the twelfth national Conference on Artificial Intelligence (AAAI '94)}, + year = {1994}, + pages = {1264 -- 1271}, + month = {July}, + address = {Seattle, W.A., U.S.A.}, + publisher = {American Association for Artificial Intelligence}, + } + + + +@Misc{WWWNIST, + OPTkey = {}, + author = {NIST National Institute of Standards and Technology}, + title = {Intelligent Systems Division, \texttt{http://robotarenas.nist.gov/competitions.htm}}, + OPThowpublished = {}, + OPTmonth = {}, + year = {2005}, + OPTnote = {}, + OPTannote = {} +} + +@Book{ControllTheory, + author = "K. Ogata", + title = "Modern Control Engineering (4th Edition)", + publisher = "Prentice Hall", + month = "November", + year = "2001" +} + +@Book{Mathe, + OPTkey = {}, + author = {J. Frehse}, + title = {Vorlesung {I}nfinitisimalrechnung {I} -- {IV} (Vorlesungsmitschrift)}, + year = {1996 -- 1997}, + address = {University of Bonn}, +} + +@Book{SensorsForMobileRobots, + author = {H. R. Everett}, + ALTeditor = {}, + title = {Sensors for Mobile Robots: Theory and Application}, + publisher = {AK Peters, Ltd}, + year = {1995}, + OPTkey = {}, + OPTvolume = {}, + OPTnumber = {}, + OPTseries = {}, + OPTaddress = {}, + OPTedition = {}, + OPTmonth = {}, + OPTnote = {}, + OPTannote = {} +} + +@MastersThesis{KaiLDiplom, + author = {K. Lingemann}, + title = {Schnelles {P}ose-{T}racking auf {L}aserscan-{D}aten f黵 autonome mobile {R}oboter}, + school = {University of Bonn}, + year = {2004}, +} + +@Book{Photogrammetrie, + author = {W. F{\"o}rstner}, + ALTeditor = {}, + title = {Vorlesung {P}hotogrammetrie {I} und {II}}, + year = {2002}, + address = {University of Bonn}, + OPTedition = {}, + OPTmonth = {}, + OPTnote = {}, + OPTannote = {} +} + + +@Book{VisionBuch, + author = {D. A. Forsyth and J. Ponce}, + ALTeditor = {}, + title = {Computer Vision}, + publisher = {Morgan Kaufmann}, + year = {2003}, + OPTkey = {}, + OPTvolume = {}, + OPTnumber = {}, + OPTseries = {}, + OPTaddress = {}, + OPTedition = {}, + OPTmonth = {}, + OPTnote = {}, + OPTannote = {} +} + +@Article{Bentley_1975, + author = {J. L. Bentley}, + title = {Multidimensional binary search trees used for associative searchin}, + journal = {Communications of the ACM}, + year = {1975}, + OPTkey = {}, + volume = {18}, + number = {9}, + pages = {509 -- 517}, + month = {September}, + OPTnote = {}, + OPTannote = {} +} + +@Article{Friedman_1977, + author = {J. H. Friedman and J. L. Bentley and R. A. Finkel}, + title = {An Algorithm for Finding Best Matches in Logarithmic Expected Time}, + journal = {ACM Transaction on Mathematical Software}, + year = {1977}, + OPTkey = {}, + volume = {3}, + number = {3}, + pages = {209 -- 226}, + month = {September}, + OPTnote = {}, + OPTannote = {} +} + + + +@Article{Shoemake_1985, + author = {K. Shoemake}, + title = {Animating rotation with quaternion curves}, + journal = {Computer Graphics}, + year = {1985}, + OPTkey = {}, + volume = {19}, + number = {3}, + pages = {245 -- 254}, + month = {July}, + OPTnote = {}, + OPTannote = {} +} + +@Article{Walker_1991, + author = {M. W. Walker and L. Shao and R. A. Volz}, + title = {Estimating 3-D location parameters using dual number quaternions}, + journal = {CVGIP: Image Understanding}, + year = {1991}, + OPTkey = {}, + volume = {54}, + OPTnumber = {}, + pages = {358 -- 367}, + month = {November}, + OPTnote = {}, + OPTannote = {} +} + +@Article{Hyafil_1977, + author = {L. Hyafil and R. L. Rivest}, + title = {Constructing optimal binary decision trees is NP-complete}, + journal = {Information Processing Letters 5}, + year = {1976}, + OPTkey = {}, + OPTvolume = {}, + OPTnumber = {}, + pages = {15 -- 17}, + month = {May}, + OPTnote = {}, + OPTannote = {} +} + + +@Article{Arya_1998, + author = {S. Arya and D. M. Mount and N. S. Netanyahu and R. Silverman and A. Y. Wu}, + title = {{A}n {O}ptimal {A}lgorithms for {A}pproximate {N}earest {N}eighbor {S}earcching in {F}ixed {D}imensions}, + journal = {Journal of the ACM}, + year = {1998}, + OPTkey = {}, + OPTvolume = {}, + volume = {45}, + pages = {891 -- 923}, + month = {}, + OPTnote = {}, + OPTannote = {} +} + + +@InProceedings{Arya_1993, + author = {S. Arya and D. M. Mount}, + title = {{A}pproximate nearest neigbor queries in fixed dimensions}, + year = {1993}, + OPTkey = {}, + booktitle = {Proceedings of the 4th ACM-SIAM Symposium on Discrete Algorithms}, + pages = {271 -- 280}, + OPTeditor = {}, + OPTvolume = {}, + OPTnumber = {}, + OPTseries = {}, + OPTaddress = {}, + OPTmonth = {}, + OPTorganization = {}, + OPTpublisher = {}, + OPTnote = {}, + OPTannote = {} +} + +@InProceedings{Surmann_2000, + author = {H. Surmann and A. Morales}, + title = {A five layer sensor architecture for autonomous robots in indoor environments}, + year = {2000}, + OPTkey = {}, + booktitle = {Proceedings of the International symposium on robotics and automation (ISRA '00)}, + pages = {533 -- 538}, + OPTeditor = {}, + OPTvolume = {}, + OPTnumber = {}, + OPTseries = {}, + address = {Monterrey, N.L., Mexico}, + month = {November}, + OPTorganization = {}, + OPTpublisher = {}, + OPTnote = {}, + OPTannote = {} +} + +@Article{Fukunaga_1973, + author = {K. Fukuanaga and L. D. Hostetler}, + title = {Optimization of $k$-nearest neighbor density estimation}, + journal = {IEEE Transaction on Information Theory IT-19}, + year = {1973}, + OPTkey = {}, + OPTvolume = {}, + OPTnumber = {}, + pages = {320 -- 326}, + OPTmonth = {}, + OPTnote = {}, + OPTannote = {} +} + + +@Article{Stetson_1968, + author = {K. A. Stetson}, + title = {Holographic surface contouring by limited depth of focus}, + journal = {Applied Optics}, + year = {1968}, + OPTkey = {}, + volume = {7}, + number = {5}, + pages = {987 -- 989}, + OPTmonth = {}, + OPTnote = {}, + OPTannote = {} +} + + +@PhdThesis{PhDGiel, + author = {D. Giel}, + title = {Hologram tomography for surface topometry}, + school = {Mathematisch-Naturwissenschaftliche Fakult{\"a}t der Heinrich-Heine- Universit{\"a}t D\"{u}sseldorf}, + year = {2003}, + OPTkey = {}, + OPTtype = {}, + OPTaddress = {}, + OPTmonth = {}, + OPTnote = {}, + OPTannote = {} +} + +@InProceedings{MRNV2004, + author = {D. Giel and S. Frey and A. Thelen and J. Bongartz and P. Hering and A. N\"{u}chter and H. Surmann and K. Lingemann and J. Hertzberg}, + title = {Ultra-fast Holographic Recording and Automatic 3D Scan Matching of Living Human Faces}, + OPTcrossref = {}, + OPTkey = {}, + booktitle = {Proceedings of the Scientific Workshop Medical Robotics, Navigation and Visualization (MRNV '04)}, + OPTpages = {to appaer}, + year = {2004}, + OPTeditor = {}, + OPTvolume = {}, + OPTnumber = {}, + OPTseries = {}, + address = {Remagen, Germany}, + OPTmonth = {}, + OPTorganization = {}, + OPTpublisher = {}, + OPTnote = {}, + OPTannote = {} +} + diff --git a/doc/high_level_doc/documentation.bbl b/doc/high_level_doc/documentation.bbl new file mode 100644 index 0000000..bb7a748 --- /dev/null +++ b/doc/high_level_doc/documentation.bbl @@ -0,0 +1,22 @@ +\begin{thebibliography}{1} + +\bibitem{Arun_1987} +K.~S. Arun, T.~S. Huang, and S.~D. Blostein. +\newblock Least square fitting of two 3-d point sets. +\newblock {\em IEEE Transactions on Pattern Analysis and Machine Intelligence}, + 9(5):698 -- 700, 1987. + +\bibitem{Besl_1992} +P.~Besl and N.~McKay. +\newblock A method for {R}egistration of 3--{D} {S}hapes. +\newblock {\em IEEE Transactions on Pattern Analysis and Machine Intelligence}, + 14(2):239 -- 256, February 1992. + +\bibitem{Lorusso_1995} +A.~Lorusso, D.~Eggert, and R.~Fisher. +\newblock A {C}omparison of {F}our {A}lgorithms for {E}stimating 3-{D} {R}igid + {T}ransformations. +\newblock In {\em Proceedings of the 4th British Machine Vision Conference + (BMVC '95)}, pages 237 -- 246, Birmingham, England, September 1995. + +\end{thebibliography} diff --git a/doc/high_level_doc/documentation.tex b/doc/high_level_doc/documentation.tex new file mode 100644 index 0000000..93d58ff --- /dev/null +++ b/doc/high_level_doc/documentation.tex @@ -0,0 +1,540 @@ +\documentclass[12pt,dvips]{article} + +\usepackage[T1]{fontenc} +\usepackage[isolatin]{inputenc} +\usepackage{a4} +\usepackage{url} +\usepackage{afterpage} +\usepackage{latexsym} +\usepackage{graphicx} +\usepackage{longtable} +\usepackage{amsmath} +\usepackage[rflt]{floatflt} +\usepackage{fancybox} +\usepackage{bbm} +\usepackage{cite} +\usepackage{picins} + +\usepackage[dvips]{epsfig} + +\parindent0mm +\parskip5pt plus1pt minus2pt +\textwidth16cm +\textheight22cm +\topmargin-1cm +\oddsidemargin0cm + +\renewcommand\floatpagefraction{1.0} +\renewcommand\topfraction{1.0} +\renewcommand\bottomfraction{1.0} +\renewcommand\textfraction{0.0} +\def\dbltopfraction{1.0} +\def\bottomfraction{1.0} +\def\dblfloatpagefraction{1.0} + + +\setcounter{secnumdepth}{5} +%% \setcounter{section}{-1} + +\newcommand{\OO}{{\cal O}} +\newcommand{\bc}{\begin{center}} +\newcommand{\ec}{\end{center}} + +\newcommand{\VNull}{\mathbf{0}} +%\newcommand{\transp}{^{\textsf{T}}} +\newcommand{\transp}{^T} +\renewcommand{\phi}{\varphi} +\newcommand{\verf}[1]{\textsf{#1}} +\renewcommand{\v}[1]{\text{\boldmath $#1$}} +\newcommand{\V}[1]{\text{\boldmath $#1$}} +\newcommand{\m}[1]{\v{#1}} % Format "Matrix" +\newcommand{\M}[1]{\v{#1}} % Format "Matrix" +\newcommand{\sR}{\ensuremath{{\cal R}}} % Referenz-Scan +\newcommand{\sS}{\ensuremath{{\cal S}}} % aktueller Scan +\renewcommand{\O}{{\cal O}} +\newcommand{\norm}[1]{\left | \left | #1 \right | \right |} + +\newcommand{\Vector}[2]{\begin{pmatrix} #1 \\ #2 \end{pmatrix}} +\newcommand{\VEctor}[3]{\begin{pmatrix} #1 \\ #2 \\ #3 \end{pmatrix}} +\newcommand{\hist}[1]{{\cal #1}} +\newcommand{\trace}[1]{\mbox{tr}\left( #1 \right)} + +\newcommand{\rVEctor}[3]{ +\left(\!\!\!\begin{array}{l} +#1 \\ #2 \\ #3 +\end{array}\!\!\right)} +\newenvironment{rmatrix} +{\left(\!\!\!\begin{array}{rr}} +{\end{array}\!\!\right)} +\newenvironment{Rmatrix} +{\left(\!\!\!\begin{array}{rrr}} +{\end{array}\!\!\right)} +\newcommand{\filter}[3]{\ensuremath{\bigl[\,#1,\;#2,\;#3\,\bigr]}} +\newcommand{\R}{\mathbbm{R}} +\newcommand{\N}{\mathbbm{N}} +%\newcommand{\R}{\mathbb{R}} +%\newcommand{\N}{\mathbb{N}} +\newcommand{\grad}{\ensuremath{^{\circ}}} +\newcommand{\textmenge}[2]{\{\, #1 \,| \; #2 \}} +\newcommand{\menge}[2]{\left\{\, #1 \,\left| \; #2 \right.\right\} } +\newcommand{\Menge}[2]{\bigl\{\, #1 \,| \; #2 \bigr\} } +\newcommand{\fueralle}[2]{\forall \, #1\!: \; #2} +\newcommand{\esgibt}[2]{\exists \, #1\!: \; #2} +\newcommand{\Widehat}[1]{\widehat{#1\hspace{+.5ex}}\hspace{-.5ex}} +\newcommand{\textSF}[1]{\textsf{\small #1}} +\newcommand{\textSFsmall}[1]{\textsf{\scriptsize #1}} +\newcommand{\verfSmall}[1]{\textSFsmall{#1}} +\newcommand{\eps}{{\epsilon}} +\renewcommand{\epsilon}{\varepsilon} +\newcommand{\vR}{v_{\text{set}}} +\newcommand{\oR}{\omega_{\text{set}}} +\newcommand{\ATAN}{\text{atan2}} + +%\renewcommand{\familydefault}{\sfdefault} + +%%---------------------------------------------------------------- +%%---------------------------------------------------------------- + +\begin{document} + +{ +\title{\vspace*{-5mm} +\bf 6D SLAM -- \\%[.5cm] +Simultaneous 6 D.O.F. Localization \\and 3D Mapping\\%[1cm] +} +\author{ +\scalebox{.65}{\includegraphics{unilogo.eps}}\\[3ex] +Andreas N\"uchter, Kai Lingemann, Joachim Hertzberg\\ +Department of Mathematics/Computer Science\\ +Institute of Computer Science\\ +Knowledge-Based Systems Research Group\\ +University of Osnabr\"uck\\ +{\small \texttt{http://www.informatik.uni-osnabrueck.de/kbs/}} +} + +\maketitle +\thispagestyle{empty} + +\vspace*{-12mm} + +\begin{center} +\includegraphics[height=50mm]{stylish_scanner} +\end{center} + +\vspace*{1mm} + +\begin{center} +\textbf{Documentation} +\end{center} + +\begin{quote} +This document describes the algorithms for 6D SLAM -- +Simultaneous 6 D.O.F. Localization and 3D Mapping system. 6D SLAM +with mobile robots considers six dimensions for the robot pose, +namely the $x$, $y$ and $z$ coordinates and the roll, yaw and +pitch angles. Robot motion and localization on natural surfaces, +e.g., driving with a mobile robot outdoor, must necessarily +regard these degrees of freedom. +\end{quote} + +\newpage +\setcounter{page}{1} + +\section{Range Image Registration and Robot Relocalization} + +Multiple 3D scans are necessary to digitalize environments +without occlusions. To create a correct and consistent model, the +scans have to be merged into one coordinate system. This process +is called registration. If robot carrying the 3D scanner were +precisely localized, the registration could be done directly +based on the robot pose. However, due to the unprecise robot +sensors, self localization is erroneous, so the geometric +structure of overlapping 3D scans has to be considered for +registration. + +The following method for registration of point sets is part of +many publications, so only a short summary is given here. The +complete algorithm was invented in 1992 and can be found, e.g., +in \cite{Besl_1992}. The method is called \emph{Iterative Closest +Points (ICP) algorithm}. + +Given two independently acquired sets of 3D points, $M$ (model +set, $|M| = N_m$) and $D$ (data set, $|D| = N_d$) which +correspond to a single shape, we aim to find the transformation +consisting of a rotation $\M R$ and a translation $\V t$ which +minimizes the following cost function: +\begin{equation}\label{DMin} +E(\M R, \V t) = +\sum_{i=1}^{N_m}\sum_{j=1}^{N_d}w_{i,j}\norm{\V m_{i}-(\M R +\V d_j+\V t)}^2. +\end{equation} +$w_{i,j}$ is assigned 1 if the $i$-th point of $M$ describes the +same point in space as the $j$-th point of $D$. Otherwise +$w_{i,j}$ is 0. Two things have to be calculated: First, the +corresponding points, and second, the transformation ($\M R$, +$\V t$) that minimize $E(\M R, \V t)$ on the base of the +corresponding points. + +The ICP algorithm calculates iteratively the point +correspondences. In each iteration step, the algorithm selects +the closest points as correspondences and calculates the +transformation ($\M R, \V t$) for minimizing equation +(\ref{DMin}). The assumption is that in the last iteration step +the point correspondences are correct. Besl et al. prove that +the method terminates in a minimum \cite{Besl_1992}. However, +this theorem does not hold in our case, since we use a maximum +tolerable distance $d_\text{max}$ for associating the scan +data. Such a threshold is required, given that the 3D scans +overlap only partially. Fig. \ref{samplematch} (top) shows three +frames, i.e., iteration steps, of the ICP algorithm. The bottom +part shows the start poses $(x,z,\theta_y)$ from which a correct +matching is possible, here with only three degrees of freedom. + +\begin{figure*} +\begin{center} +\includegraphics[width=50mm]{frame1_final}~~ +\includegraphics[width=50mm]{frame2_final}~~ +\includegraphics[width=50mm]{frame3_final} \\[1.5ex] +\caption{{Left: Initial odometry based pose of two 3D + scans. Middle: Pose after five ICP iterations. Right: final + alignment, pairwise matching. +\vspace*{-6mm} +}}\label{samplematch} +\end{center} +\end{figure*} + + +\subsection{Calculation of the rotation and translation} + +In every iteration the optimal tranformation ($\M R$, $\V t$) +has to be computed. Eq. (\ref{DMin}) can be reduced to +\begin{eqnarray} +E(\M R, \V t) & \propto & \frac{1}{N} \sum_{i=1}^N +\norm{\V m_i - (\M R \V d_i + \V t)}^2,\label{DualDMin} +\end{eqnarray} +with $N = \sum_{i=1}^{N_m}\sum_{j=1}^{N_d}w_{i,j}$, since the +correspondence matix can be represented by a vector containing +the point pairs. + +Four methods are known to minimize eq. (\ref{DualDMin}) +\cite{Lorusso_1995}. The 6D SLAM system uses the following one, +based on singular value decomposition (SVD), is robust and easy +to implement, thus we give a brief overview of the SVD-based +algorithms. It was first published by Arun, Huang and Blostein +\cite{Arun_1987}. The difficulty of this minimization problem is +to enforce the orthonormality of matrix $\M R$. The first step of +the computation is to decouple the calculation of the rotation +$\M R$ from the translation $\V t$ using the centroids of the +points belonging to the matching, i.e., +\begin{eqnarray} +\V c_m = \frac{1}{N} \sum_{i=1}^{N} \V m_{i}, \qquad \qquad \V c_d = \frac{1}{N} +\sum_{i=1}^{N} \V d_{j}\label{schwerpunkt2} +\end{eqnarray} +and +\begin{eqnarray} +M' &=& \{ \V m'_{i} = \V m_{i} - \V c_{m} \}_{1,\ldots,N}, \label{d_neu1}\\ +\qquad +D' &=& \{ \V d'_{i}\ = \V d_{i}\, - \V c_{d} \}_{1,\ldots,N}\label{d_neu2}. +\end{eqnarray} + + +After replacing (\ref{schwerpunkt2}), (\ref{d_neu1}) and +(\ref{d_neu2}) in the error function, $E(\M R,\V t)$ +eq. (\ref{DualDMin}) becomes: +\begin{subequations} +\begin{eqnarray} +E(\M R, \V t) +\!\!\!\!\!&\propto&\!\!\!\!\! \frac{1}{N} \sum_{i=1}^{N} +\lvert\lvert{\V m'_{i}-\M R \V d'_i-\underbrace{(\V t-\V c_m+\M R + \V c_d)}_{= \tilde {\V t}}\lvert\lvert}^2 +\nonumber \\ +&=&\!\!\!\!\! \frac{1}{N}\sum_{i=1}^{N}\norm{\V m'_{i}-\M R \V d'_i}^2 +\label{DMinpart1} \\ +&&- \frac{2}{N} \tilde {\V t} \cdot \sum_{i=1}^{N} \left( \V +m'_{i}-\M R \V d'_i \right) \label{DMinpart2} \\ +&&+ \frac{1}{N} +\sum_{i=1}^{N}\norm{\tilde {\V +t}}^2. \label{DMinpart3}\label{fehlerneu} +\end{eqnarray} +\end{subequations} +In order to minimize the sum above, all terms have to be +minimized. The second sum (\ref{DMinpart2}) is zero, since all +values refer to centroid. The third part (\ref{DMinpart3}) has +its minimum for $\tilde {\V t} = \VNull$ or +\begin{eqnarray}\label{translatB} + \V t = \V c_m - \M R \V c_d. +\end{eqnarray} +Therefore the algorithm has to minimize only the first +term, and the error function is expressed in terms of the +rotation only: +\begin{eqnarray}\label{DMinn} +E(\M R, \V t) \propto +\sum_{i=1}^{N}\norm{\V m'_{i}-\M R \V d'_i}^2. +\end{eqnarray} + +\noindent \textit{Theorem:} The optimal rotation is calculated +by $\M R = \M V \M U^T$. Herby the matrices $\M V$ and $\M U$ are +derived by the singular value decomposition $\M H = \M U \M +\Lambda \M V^T$ of a correlation matrix $\M H$. This $3 \times 3$ matrix +$\M H$ is given by +\begin{eqnarray} +\M H = \sum_{i=1}^{N} \V m'^T_i \V d'_i + = \left( +\begin{array}{ccc} +S_{xx} & S_{xy} & S_{xz} \\ +S_{yx} & S_{yy} & S_{yz} \\ +S_{zx} & S_{zy} & S_{zz} \\ +\end{array} +\right), \label{Korrelationsmatrix} +\end{eqnarray} +with $S_{xx} = \sum_{i=1}^{N} \ m'_{ix} d'_{ix}, \ S_{xy} = +\sum_{i=1}^{N} \ m'_{ix} d'_{iy}, \ \ldots \, $. The analogous +algorithm is derived directly from this theorem. +\medskip + + +\textit{Proof:} Since rotation is length preserving, i.e., +$\lvert\lvert\M R\V d'_i\lvert\lvert^2 = \lvert\lvert \V +d'_i\lvert \lvert^2$ the error function (\ref{DMinn}) is expanded +\begin{eqnarray*} +E(\M R, \V t) \propto +\sum_{i=1}^{N}\norm{\V m'_i}^2 +- 2 \sum_{i=1}^{N} \V m'_{i} \cdot \M R +\V d'_i ++ \sum_{i=1}^{N} \norm{\V d'_i}^2. +\end{eqnarray*} +The rotation affects only the middle term, thus it is sufficient +to maximize +\begin{eqnarray}\label{max} +\sum_{i=1}^{N} \V m'_{i} \cdot \M R \V +d'_i +& = & +\sum_{i=1}^{N} \V {m'_{i}}^T \M R \V +d'_i. +\end{eqnarray} +Using the trace of a matrix, (\ref{max}) can be rewritten to +obtain +\begin{eqnarray*} +\trace{\sum_{i=1}^{N} \M R \V d'_i \V {m'_{i}}^T } = +\trace{\M R \M H}, +\end{eqnarray*} +With $\M H$ defined as in (\ref{Korrelationsmatrix}). Now we have +to find the matrix $\M R$ that maximizes $\trace{\M R \M H}$. + +Assume that the singular value decomposition of $\M H$ is +\begin{eqnarray*} + \M H = \M U \M \Lambda \M V^T, +\end{eqnarray*} +with $\M U$ and $\M V$ orthonormal $3 \times 3$ matrices and $\M +\Lambda$ a $3 \times 3$ diagonal matrix without negative +elements. Suppose +\begin{eqnarray*} +\M R = \M V \M U^T. +\end{eqnarray*} +$\M R$ is orthonormal and +\begin{eqnarray*} +\M R \M H & = & \M V \M U^T \M U \M \Lambda \M V^T \\ +& = & \M V \M \Lambda \M V^T +\end{eqnarray*} +is a symmetric, positive definite matrix. Arun, Huang and +Blostein provide a lemma to show that +\begin{eqnarray*} +\trace{\M R \M H} \geq \trace{\M B \M R \M H} +\end{eqnarray*} +for any orthonormal matrix $\M B$. Therefore the matrix $\M R$ is +optimal. Prooving the lemma is straightforward using the +Cauchy-Schwarz \cite{Arun_1987}. Finally, the +optimal translation is calculated as (cf. eq. (\ref{DMinpart3}) +and (\ref{translatB})) +\begin{eqnarray*} +\V t = \V c_m - \M R \V c_d. +\end{eqnarray*} + + +\section{ICP-based 6D SLAM} + +To match two 3D scans with the ICP algorithm it is necessary to +have a sufficient starting guess for the second scan pose. + +\begin{itemize} +\item + Extrapolate the odometry readings to all six degrees of freedom + using previous registration matrices. The change of the robot + pose $\Delta \M P$ given the odometry information + $(x_n,z_n,\theta_{y,n})$, $(x_{n+1},z_{n+1},\theta_{y,n+1})$ + and the registration matrix $\M R({\theta_{x,{n}}}, + {\theta_{y,{n}}}, {\theta_{z,{n}}})$ is calculated by solving: + +\begin{small} +\begin{eqnarray} +\left( +\begin{array}{c} +x_{n+1} \\ +y_{n+1} \\ +z_{n+1} \\ +{\theta_{x,{n+1}}} \\ +{\theta_{y,{n+1}}} \\ +{\theta_{z,{n+1}}} \\ +\end{array} +\right) += +\left( +\begin{array}{c} +x_{n} \\ +y_{n} \\ +z_{n} \\ +{\theta_{x,{n}}} \\ +{\theta_{y,{n}}} \\ +{\theta_{z,{n}}} \\ +\end{array} +\right) ++ +\left( +\begin{array}{ccc|ccc} + & & & & & \\ + & \M R({\theta_{x,{n}}},{\theta_{y,{n}}}, {\theta_{z,{n}}}) & & & \M 0 & +\\ + & & & & & \\ +\hline + & & & 1 & 0 & 0 \\ + & \M 0 & & 0 & 1 & 0 \\ + & & & 0 & 0 & 1 \\ +\end{array} +\right) +\cdot +\underbrace{\left( +\begin{array}{c} +\Delta x_{n+1} \\ +\Delta y_{n+1} \\ +\Delta z_{n+1} \\ +\Delta {\theta_{x,{n+1}}} \\ +\Delta {\theta_{y,{n+1}}} \\ +\Delta {\theta_{z,{n+1}}} \\ +\end{array} +\right).}_{\Delta \V P} \label{PosUpdate6D} +\label{extrapol} +\end{eqnarray} +\end{small} + +Therefore, calculating $\Delta \V P$ requires a matrix +inversion. Finally, the 6D pose $\M P_{n+1}$ is calculated by +\vspace*{-2mm} +\begin{small} +\begin{eqnarray*}\label{inital6DPose} +\M P_{n+1} = \Delta \M P \cdot \M P_{n} +\end{eqnarray*} +\end{small} +using the poses' matrix representations.\\[-1.5ex] + + +\end{itemize} + +\section{Variable Correspondences} + +\begin{tabular}{lll} +$(\M R, \V t)$ & \texttt{double alignxf[16]} & Transformation + Matrix \\ +$\V m_i$, $\V d_i$ & \texttt{class PtPair} & Point Pair\\ +$\V c_m$, $\V c_d$ & \texttt{double cm[3], cd[3]} & Centroids\\ +$\V m'_i$, $\V d'_i$ & \texttt{double** m, d} & Centered + Point Pairs\\ +$\M H$, $\M U$, $\M \Lambda$, $\M V$ & \texttt{Matrix} & SVD + Matrices\\ +$\M R$ & \texttt{double transMat[16]} & Pose as Matrix\\ +$(x_n, y_n, z_n)$ & \texttt{double rPos[3]} & Position of $n$-th 3D Scan\\ +$(\theta_{x,n}, \theta_{y,n}, \theta_{z,n})$ & \texttt{double + rPostheta[3]} & Rotation of $n$-th 3D Scan\\ +\end{tabular} + +\section{File Formats and Units} + +\begin{figure} +\begin{center} +\includegraphics[width=3.2cm]{coordinate_system_white} +\caption{Left handed coordinate system.}\label{coord} +\end{center} +\end{figure} +The coordinate system is left handed, with the $y$ axis pointing +upwards, and the depth axis $z$ (cf. Figure~\ref{coord}). Input +and output files are: + +\footnotetext[1]{stating + with \texttt{XXX} = 000, 001,\dots, until no more files are + found in the specified directory.} + +\begin{enumerate} +\item The 3D scan files (\texttt{scanXXX.3d})\footnotemark[1]\ + have to be of the following structure:\\ The first line + contains the scan's resolution (w x b), followed by lines of + data points (x, y, z). +% +\item The pose files (\texttt{scanXXX.pose})\footnotemark[1]\ associated with each + 3D scan contain information of the estimated pose of the + respective scan as given by, e.g., odometry. The first line + contains the 3 translatorial positions ($x$, $y$, $z$), the + second the rotations pitch, yaw and roll ($\theta_x$, + $\theta_y$, $\theta_z$ around the respective axis) in deg.\\ + Values that are not estimated by the robot (odometry) can be + set to 0 and are extrapolated as described by Eq.~\eqref{extrapol}. +% +\item The SLAM program generated files \texttt{scanXXX.frames}, + consisting of the transformations computed from the scan + matching. Each line contains a $4 \times 4$ OpenGL-style + matrix. The very last matrix is the final transformation for + registering the scan into the common coordinate system. + + The matrix is stored in the following format: + \begin{quote} + $(R[1,1], R[1,2], 0, R[1,3], 0, R[2,1], R[2,2], R[2,3], 0, + R[3,1], R[3,2], R[3,3], 0,$\\$t[1], t[2], t[3], 1),$ + \end{quote} + with $R[x,y]$ the $(x,y)$-th entry of the rotation matrix $\M R$, and + $t[x]$ the $x$-th translation component of $\V t$. +\end{enumerate} + +\section{Requirements} + +All executables can be compiled and used both with Linux and Windows. + +\begin{description} +\item[Linux:] The system was developed and tested under Linux 9.1 with + the g++ compiler version 3.3.3. As additional library, + \texttt{OpenGL} and \texttt{glut} have to be installed, which + should be included in your Linux distribution (tested with + freeglut 2.2.0-78).\\ + To compile, type in \texttt{make} in the main directory. The + executables are generated in the \texttt{./bin} directory. +\item[Windows:] + The system was tested with the C++ compiler from Microsoft Visual + Studio.NET 2005. + To compile, load the respective project file (\texttt{.sln}) + from the directory \texttt{.$\backslash$Visual\_Studio\_Projects$\backslash$}. + The executables are generated in the respective \texttt{Debug} + or \texttt{Release} directories, depending on your compiler settings.\\ + Precompiled versions can be found in the \texttt{./bin} + directory, too. If moving the executables, take care about the \texttt{glut} + directory as well. +\end{description} + +\section{Usage} + +For a detailed explanation about the programs' usage, just start +the respective binary. Both applcations can be configured by a +set of command line parameters, which are explained when starting +the program as mentioned above. + +Especially, take care of the reduction parameters +\texttt{-r}/\texttt{-R} of the SLAM system: Without using one of +those, the registration is being slowed down tremendously due to +taking \emph{all} data points as input. Other potentially +critical parameters are the maximal distance of points that may +form corresponding point pairs (matrix entries $w_{ij}$, +parameter \texttt{-d}), as well as the maximal range distance of +points used for scan matching or displaying (\texttt{-m}), +especially used for eliminating outliers (i.e., data points with +the maximal range distance of the range finder). + +\bibliographystyle{plain} +\bibliography{diss,paper,diplom} + +\end{document} \ No newline at end of file diff --git a/doc/high_level_doc/frame1_final.eps b/doc/high_level_doc/frame1_final.eps new file mode 100644 index 0000000..c24fdf3 --- /dev/null +++ b/doc/high_level_doc/frame1_final.eps @@ -0,0 +1,9097 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: frame1_final.eps +%%Creator: fig2dev Version 3.2 Patchlevel 3d +%%CreationDate: Thu Dec 4 14:21:18 2003 +%%For: root@rhum (root) +%%BoundingBox: 0 0 412 412 +%%Magnification: 1.0000 +%%EndComments +/$F2psDict 200 dict def +$F2psDict begin +$F2psDict /mtrx matrix put +/col-1 {0 setgray} bind def +/col0 {0.000 0.000 0.000 srgb} bind def +/col1 {0.000 0.000 1.000 srgb} bind def +/col2 {0.000 1.000 0.000 srgb} bind def +/col3 {0.000 1.000 1.000 srgb} bind def +/col4 {1.000 0.000 0.000 srgb} bind def +/col5 {1.000 0.000 1.000 srgb} bind def +/col6 {1.000 1.000 0.000 srgb} bind def +/col7 {1.000 1.000 1.000 srgb} bind def +/col8 {0.000 0.000 0.560 srgb} bind def +/col9 {0.000 0.000 0.690 srgb} bind def +/col10 {0.000 0.000 0.820 srgb} bind def +/col11 {0.530 0.810 1.000 srgb} bind def +/col12 {0.000 0.560 0.000 srgb} bind def +/col13 {0.000 0.690 0.000 srgb} bind def +/col14 {0.000 0.820 0.000 srgb} bind def +/col15 {0.000 0.560 0.560 srgb} bind def +/col16 {0.000 0.690 0.690 srgb} bind def +/col17 {0.000 0.820 0.820 srgb} bind def +/col18 {0.560 0.000 0.000 srgb} bind def +/col19 {0.690 0.000 0.000 srgb} bind def +/col20 {0.820 0.000 0.000 srgb} bind def +/col21 {0.560 0.000 0.560 srgb} bind def +/col22 {0.690 0.000 0.690 srgb} bind def +/col23 {0.820 0.000 0.820 srgb} bind def +/col24 {0.500 0.190 0.000 srgb} bind def +/col25 {0.630 0.250 0.000 srgb} bind def +/col26 {0.750 0.380 0.000 srgb} bind def +/col27 {1.000 0.500 0.500 srgb} bind def +/col28 {1.000 0.630 0.630 srgb} bind def +/col29 {1.000 0.750 0.750 srgb} bind def +/col30 {1.000 0.880 0.880 srgb} bind def +/col31 {1.000 0.840 0.000 srgb} bind def + +end +save +newpath 0 412 moveto 0 0 lineto 412 0 lineto 412 412 lineto closepath clip newpath +-73.7 527.2 translate +1 -1 scale + +/cp {closepath} bind def +/ef {eofill} bind def +/gr {grestore} bind def +/gs {gsave} bind def +/sa {save} bind def +/rs {restore} bind def +/l {lineto} bind def +/m {moveto} bind def +/rm {rmoveto} bind def +/n {newpath} bind def +/s {stroke} bind def +/sh {show} bind def +/slc {setlinecap} bind def +/slj {setlinejoin} bind def +/slw {setlinewidth} bind def +/srgb {setrgbcolor} bind def +/rot {rotate} bind def +/sc {scale} bind def +/sd {setdash} bind def +/ff {findfont} bind def +/sf {setfont} bind def +/scf {scalefont} bind def +/sw {stringwidth} bind def +/tr {translate} bind def +/tnt {dup dup currentrgbcolor + 4 -2 roll dup 1 exch sub 3 -1 roll mul add + 4 -2 roll dup 1 exch sub 3 -1 roll mul add + 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} + bind def +/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul + 4 -2 roll mul srgb} bind def +/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def +/$F2psEnd {$F2psEnteredState restore end} def + +$F2psBegin +10 setmiterlimit + 0.06299 0.06299 sc +% +% Fig objects follow +% +% Polyline +% +% pen to black in case this eps object doesn't set color first +0 0 0 setrgbcolor +% Begin Imported EPS File: frame1.eps +%%BeginDocument: frame1.eps +% +n gs +1170 1845 tr +12.500000 -12.500000 sc +0 -522 tr +-37 -160 tr +sa +n 37 160 m 559 160 l 559 682 l 37 682 l cp clip n +countdictstack +mark +/showpage {} def +% EPS file follows: +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: /home/scanner/docu/iav2004/frame1.eps +%%Creator: XV Version 3.10a Rev: 12/29/94 (PNG patch 1.2) - by John Bradley +%%BoundingBox: 37 160 559 682 +%%Pages: 1 +%%DocumentFonts: +%%EndComments +%%EndProlog + +%%Page: 1 1 + +% remember original state +/origstate save def + +% build a temporary dictionary +20 dict begin + +% define space for color conversions +/grays 600 string def % space for gray scale line +/npixls 0 def +/rgbindx 0 def + +% lower left corner +37 160 translate + +% size of image (on paper, in 1/72inch coords) +522.00000 522.00000 scale + +% define 'colorimage' if it isn't defined +% ('colortogray' and 'mergeprocs' come from xwd2ps +% via xgrab) +/colorimage where % do we know about 'colorimage'? + { pop } % yes: pop off the 'dict' returned + { % no: define one + /colortogray { % define an RGB->I function + /rgbdata exch store % call input 'rgbdata' + rgbdata length 3 idiv + /npixls exch store + /rgbindx 0 store + 0 1 npixls 1 sub { + grays exch + rgbdata rgbindx get 20 mul % Red + rgbdata rgbindx 1 add get 32 mul % Green + rgbdata rgbindx 2 add get 12 mul % Blue + add add 64 idiv % I = .5G + .31R + .18B + put + /rgbindx rgbindx 3 add store + } for + grays 0 npixls getinterval + } bind def + + % Utility procedure for colorimage operator. + % This procedure takes two procedures off the + % stack and merges them into a single procedure. + + /mergeprocs { % def + dup length + 3 -1 roll + dup + length + dup + 5 1 roll + 3 -1 roll + add + array cvx + dup + 3 -1 roll + 0 exch + putinterval + dup + 4 2 roll + putinterval + } bind def + + /colorimage { % def + pop pop % remove 'false 3' operands + {colortogray} mergeprocs + image + } bind def + } ifelse % end of 'false' case + + + +% define the colormap +/cmap 9 string def + + +% load up the colormap +currentfile cmap readhexstring +000000 ffffff 0000ff +pop pop % lose return values from readhexstring + + +% rlecmapimage expects to have 'w h bits matrix' on stack +/rlecmapimage { + /buffer 1 string def + /rgbval 3 string def + /block 384 string def + + % proc to read a block from file, and return RGB data + { currentfile buffer readhexstring pop + /bcount exch 0 get store + bcount 128 ge + { % it's a non-run block + 0 1 bcount 128 sub + { currentfile buffer readhexstring pop pop + + % look up value in color map + /rgbval cmap buffer 0 get 3 mul 3 getinterval store + + % and put it in position i*3 in block + block exch 3 mul rgbval putinterval + } for + block 0 bcount 127 sub 3 mul getinterval + } + + { % else it's a run block + currentfile buffer readhexstring pop pop + + % look up value in colormap + /rgbval cmap buffer 0 get 3 mul 3 getinterval store + + 0 1 bcount { block exch 3 mul rgbval putinterval } for + + block 0 bcount 1 add 3 mul getinterval + } ifelse + } % end of proc + false 3 colorimage +} bind def + + +600 600 8 % dimensions of data +[600 0 0 -600 0 600] % mapping matrix +rlecmapimage + +840100010001070181000132018300010001020181000182010001820100011901810001 +8401000100010a01850001000100010a0181000110018300010001070185000100010001 +820100010801810001820100010d018100012a0185000100010001820100010601810001 +01018100010801810001020183000100010a018300010001820100010801810001130185 +0001000100010901850001000100010d0183000100010901830001000101018100010901 +8100010101810001260181000102018300010001820100010c0185000100010001080185 +000100010001180183000100010d01810001820100018201000108018100011d01830001 +00010001 +0901810001270181000108018100012401810001820100010a01850001000100010c0181 +000182010001170183000100018201000108018100018601000100010001090183000100 +018401000100012701810001820100010801850001000100010201810001080181000101 +01810001080181000184010001000106018700010001000100011d018500010001000108 +018100018601000100010001080181000186010001000100010601810001860100010001 +00012c01810001840100010001070183000100018401000100010a018500010001000108 +018300010001180183000100018401000100010b01810001840100010001030181000117 +018100010601 +0301810001820100012d0181000182010001820100012e018100018401000100010c0183 +00010001820100011701810001820100010b018300010001090185000100010001820100 +0108018100012c01810001820100010e0183000100018201000106018700010001000100 +010a018100011f018100010a0183000100010d0183000100018401000100010801810001 +820100010101810001060181000186010001000100012a01810001840100010001090181 +0001820100010c0183000100011a018100010d018300010001820100010b018100011d01 +83000100010101 +010181000106018100018201000124018100010801810001820100010a01810001140181 +00018401000100010a018500010001000182010001070183000100018201000119018300 +0100018201000106018300010001820100010a01810001820100012c0183000100010401 +8100010101830001000186010001000100010601850001000100010b0187000100010001 +000108018100018201000115018500010001000109018700010001000100010d01810001 +0d018300010001820100013c0181000184010001000107018100018401000100010a0183 +0001000117018100018401000100010e018300010001080181000120010000 +08018100012c018100018201000182010001020181000102018100018301000100810001 +20018100018401000100010a01850001000100011a018100018401000100010901830001 +00010b01850001000100012f018300010001040181000101018100010a01810001840100 +0100010a0185000100010001080181000186010001000100012101870001000100010001 +080181000188010001000100010001040181000188010001000100010001090185000100 +010001820100012701830001000184010001000109018100018401000100010701810001 +84010001000107018100011d018300010001820100010b01830001000105018100011401 +8100010801 +810001820100018201000106018100012f01810001020181000108018100011901830001 +00010c018300010001070181000184010001000110018100010701870001000100010001 +090183000100018201000106018300010001010181000182010001230181000101018300 +010001020181000106018500010001000108018300010001840100010001080185000100 +0100010a01810001140187000100010001000108018100018401000100010d018100010f +01830001000130018100010901810001820100010c018500010001000107018100018401 +0001000115018300010001820100010a018100018201000182010001080183000100011d +0181000182010001 +0b018100012a018100010301810001070181000184010001000102018100011401810001 +08018500010001000182010001070183000100011a018500010001000109018300010001 +840100010001080181000182010001300181000108018300010001820100010a01830001 +00010a018300010001820100010a01850001000100011e01810001840100010001080183 +000100010b018700010001000100010401830001000102018300010001820100012c0183 +0001000109018300010001820100010c0183000100010a01810001190181000182010001 +820100010a018100018401000100011d018100010801 +030181000182010001820100010301810001240181000102018100010301830001000182 +01000107018100011c0183000100010c0183000100010a018100010f0181000109018300 +010001820100010801810001860100010001000109018300010001290181000186010001 +000100010801850001000100018201000108018500010001000108018500010001000182 +010001030181000115018100018401000100010801830001000108018100018601000100 +0100010b0183000100010101810001090181000125018100010601830001000182010001 +090181000186010001000100010701810001820100011901810001840100010001080181 +0001840100010001820100010801810001160181000103018100010601 +8201000109018100012a0181000184010001000106018100010201810001040181000114 +0181000182010001070185000100010001820100010701850001000100011a0183000100 +010b01830001000109018500010001000182010001030181000123018300010001080181 +000186010001000100010601890001000100010001000108018100018401000100010801 +830001000101018100011a01830001000108018100018601000100010001080181000184 +01000100010a018200010002008201000106018100012501810001090183000100018201 +00010c01810001090183000100011d0183000100010d0181000182010001050181000116 +018100010a01 +0701810001820100012a018100010a018100018401000100018401000100011f01850001 +000100010a01850001000100011a01830001000182010001060183000100018401000100 +010601850001000100010b01810001210181000106018700010001000100010801830001 +0001820100010c0185000100010001060185000100010001820100011b01810001080181 +00018401000100010a01830001000182010001080185000100010001820100010a018300 +01000104018100011d0101000501830001000182010001090183000100010a0183000100 +0182010001070181000111018100010b0183000100018401000100010801810001820100 +0102018100011a018100010401 +8100018401000100010901810001220181000105018300010001820100010c0181000182 +010001140183000100010c01830001000107018100018601000100010001170181000184 +010001000106018300010001840100010001080183000100018201000104018100012201 +83000100010f018100010c0181000184010001000105018100018401000100010c018300 +01000116018700010001000100010601850001000100010b018700010001000100010801 +8100018601000100010001080181000121018100010b0183000100010a01850001000100 +018201000107018100018201000119018300010001820100010d01830001000108018100 +01140181000103018100010701 +0801810001820100018201000129018100010a0181000182010001840100010001170181 +000107018500010001000182010001070183000100011a01850001000100010b01810001 +080181000186010001000100010401810001320185000100010001840100010001080185 +0001000100010601850001000100010a0181000186010001000100012201810001840100 +0100010601850001000100010d0187000100010001000109018500010001000105018100 +01210181000186010001000100010501850001000100010c018100018401000100010501 +83000100011101810001080181000184010001000182010001080183000100011c018100 +0182010001820100010501 +82010001840100010001060181000182010001820100011c018100010201810001080183 +000100010a0181000182010001110181000186010001000100010a018500010001000109 +01810001820100010e018100010a01830001000182010001060183000100010d01810001 +01018100018401000100011c018100010401850001000100010a01850001000100018201 +0001080183000100010a01850001000100010a01810001130183000100010d0185000100 +010001060183000100018201000122018100011e018100010b0181000182010001070183 +0001000184010001000109018100011c018300010001820100010a018100018201000108 +0181000116018100010e01 +0c0181000106018100011801810001030181000105018300010001050181000102018100 +012601850001000100010a01850001000100011701810001860100010001000106018100 +018401000100010801830001000184010001000104018100011e01830001000101018100 +010d01830001000108018700010001000100010801830001000182010001050181000123 +018900010001000100010001080181000182010001080187000100010001000182010001 +0301810001060181000182010001030181000103018100011a0183000100010201810001 +090183000100018201000109018300010001820100010501830001000182010001110181 +00010701810001840100010001820100010501810001820100011e018100018201000109 +01 +040181000184010001000106018100018201000116018100010301810001020183000100 +010501810001820100010201810001020181000102018100011701850001000100010a01 +8500010001000109018100010e0183000100010901850001000100010601810001020183 +000100010b0183000100011c018100010a01850001000100018401000100010801830001 +00010a018500010001000104018300010001010181000102018100010301810001150185 +000100010001080181000184010001000106018700010001000100010b0183000100010d +018100010301830001000101018100011501830001000103018100010101810001860100 +010001000107018100018401000100010901810001820100010201810001160181000182 +0100010c0181000108018100018201000182010001130181000103018100018401000100 +010401 +010181000106018100018201000182010001030181000113018100010301810001020181 +00010401810001820100010a01810001020181000116018100010a018500010001000107 +018100018601000100010001170185000100010001090183000100010201810001080183 +00010001070185000100010001170181000182010001010183000100010a018700010001 +0001000106018500010001000182010001030181000101018100010f0181000120018500 +01000100010201810001010183000100010a0181000186010001000100010b0181000110 +018100010401810001130181000101018100018201000109018300010001090181000184 +010001000107018100011501810001060183000100018201000182010001050183000100 +0182010001070181000111018100018201000109018100010101 +8100010301810001820100010b01810001820100010e0181000102018100010301810001 +040181000105018100018401000100018201000102018100011701810001040185000100 +0100010a0183000100011c01830001000108018300010001820100010801830001000184 +0100010001080181000106018100010f0183000100010a01810001060183000100010801 +850001000100010801830001000143018300010001010183000100018401000100010a01 +830001000101018100010901830001000101018500010001000104018100010201810001 +080181000186010001000100018201000105018500010001000107018100018401000100 +010901830001000108018100011001010082010001820100010a018100010b0183000100 +011c01820001008100010701 +81000182010001090181000184010001000101018100010b018300010001090181000102 +0183000100010201810001820100010a0181000102018300010001140183000100010a01 +850001000100010701830001000184010001000117018500010001000106018100018601 +000100010001080181000184010001000104018500010001000102018100010e01830001 +0001060181000101018100010a0185000100010001060185000100010001450181000106 +01810001080185000100010001090101000101850001000100010e018100018401000100 +01040183000100018401000100010201830001000111018100010b018300010001820100 +0107018300010001820100011b018100018201000107018100018401000100011e018100 +018201000106018100018301000100810001 +090183000100010901810001030181000184010001000108018100010d01810001080185 +000100010001260185000100010001070183000100018201000106018100011001830001 +000182010001080183000100010d01830001000106018300010001820100011101830001 +00010401850001000100010e018300010001040185000100010001100181000117018100 +010601810001220185000100010001840100010001040183000100010f01810001090181 +000106018100011201010082010001860100010001000107018300010001860100010001 +000107018100018201000109018100010f01850001000100010801810001840100010001 +08018100018401000100010201810001170183000100010901 +010183000100018201000109018300010001820100018201000101018100010701810001 +820100018401000100010301810001840100010001050183000100010801830001000183 +01000100810001150183000100010701810001840100010001090183000100011b018100 +018401000100010801830001000184010001000106018100010801810001840100010001 +0101830001000184010001000103018100010a0185000100010001040181000103018100 +01110181000117018100011f018100010201810001170185000100010001880100010001 +00010001020183000100010c018100010101830001000104018300010001820100010401 +830001000102018100010a01850001000100010c01850001000100010501830001000182 +0100011b01810001820100010a018300010001820100011e018300010001060181000184 +01000100010101 +0a01810001840100010001090181000103018300010001820100010b0181000109018100 +01050181000184010001000103018100011601830001000104018100018401000100010b +018100018201000119018500010001000106018100018601000100010001080181000184 +010001000101018100010d018100010a0181000102018100010101830001000110018100 +010201810001050181000126018100010101810001020181000112018100010201870001 +0001000100018801000100010001000101018100010b0183000100010101810001040183 +000100011001810001840100010001040185000100010001020183000100010301810001 +840100010001060181000186010001000100010a01830001000107018100011101830001 +000182010001050183000100018401000100010801810001820100011e01830001000103 +0181000182010001810100 +0401810001820100010c01820001008100010e0183000100010201810001030181000104 +018100010201810001820100010701810001020181000181010081000115018300010001 +0e018300010001070183000100010e018300010001060185000100010001090187000100 +010001000106018100010201830001000182010001030181000101018100018801000100 +010001000102018100010101810001030181000103018100018801000100010001000115 +018900010001000100010001820100010e018a0001000100010001000100810001010183 +000100010c01810001150181000102018700010001000100010a01810001820100010901 +810001010181000102018100010601830001000102018100010601810001820100010701 +830001000182010001090183000100010901830001000105018100011601810001820100 +010a018100010a018100012001010001018100010401 +810001820100010601810001840100010001820100010301810001820100018201000184 +010001000182010001050181000103018100010201810001040181000108018300010001 +080181000113018100010601810001860100010001000182010001040183000100018201 +000116018300010001820100010801850001000100010b01830001000102018300010001 +02018500010001000101018100010a018100010601830001000101018300010001190183 +000100018201000119018500010001000106018300010001030181000101018100010a01 +8100018c0100010001000100010001000102018100010c01830001000103018100010501 +830001000105018300010001020181000101018300010001060181000102018300010001 +840100010001030183000100010901830001000182010001060181000184010001000107 +01830001000111018100010a01830001000108018100018401000100011b018100018201 +000108018100018201000182010001 +08018100010c018100011301810001020181000103018100010201810001040181000184 +01000100010701810001820100018201000115018100018401000100010e018100010601 +810001820100010f018100010601810001020183000100010a0181000184010001000106 +018100010a0181000102018900010001000100010001880100010001000100010c018300 +0100010101850001000100018a01000100010001000100010c0183000100010c01810001 +04018900010001000100010001860100010001000101018100010a018100010f01810001 +0101850001000100010a018100010d018300010001030181000104018100010301810001 +840100010001010181000102018100010c018100010e0185000100010001070181000184 +010001000118018100018401000100010801830001000182010001080183000100010201 +81000117018300010001820100018201000102018100010001 +820100018201000182010001060183000100018201000103018100018201000184010001 +000182010001820100018201000102018100010201810001030183000100018401000100 +010a0183000100010601810001110101000a018100018601000100010001820100010201 +850001000100011301810001030183000100010201810001080185000100010001060183 +000100018201000106018500010001000102018100011201810001010102008201000182 +010001030181000113018900010001000100010001040183000100010501810001020183 +000100010101830001000104018100010101830001000103018100010401810001010181 +000117018100018401000100010a01850001000100010c01830001000102018100010801 +8100010601810001840100010001070181000186010001000100010c0185000100010001 +070183000100011101810001820100010501830001000182010001070181000182010001 +820100011a01810001820100010b010100820100010001 +070183000100018201000109018100011301810001140181000186010001000100010301 +8300010001020181000118018100018401000100010b0181000109018100010f01810001 +820100010a01830001000182010001040187000100010001000108018100010901810001 +010185000100010001020181000101018500010001000101010100130181000101018300 +0100010101830001000102018100010c0181000105018100010601830001000101018300 +010001820100010701810001020183000100010101810001060183000100010301810001 +820100010c01850001000100010101810001070185000100010001050181000101018100 +010201850001000100010401830001000182010001010181000103018300010001840100 +010001060181000186010001000100010a0183000100010a018100011001810001820100 +01070183000100010b0183000100010201810001170183000100018401000100010701 +040181000109018300010001820100010201810001040181000182010001020181000182 +0100010201810001840100010001820100018201000104018100010a0181000104018100 +0118018100010c0185000100010001040181000184010001000110018100010801850001 +00010001060183000100010d018100010201810001040183000100010101810001060181 +000101018100010101810001020181000101018100010101810001010189000100010001 +000100010201810001030181000108018500010001000106018500010001000103018100 +01860100010001000103018300010001020187000100010001000101018100010c018100 +010f01850001000100010f018100010d0181000102018100010101810001060183000100 +010701810001020181000109018300010001820100010901830001000109018100018401 +000100011b018100010a018100018401000100011c010100010181000109018300010001 +82010001810100 +830001000106018100018201000108018100010301810001060181000105018100010801 +8100010b0181000184010001000105018100010201010013018100010201830001000102 +018300010001070183000100010701810001820100010a01870001000100010001820100 +010601850001000100010801830001000184010001000101018100010201830001000108 +018100010201810001010181000101018100010a0181000101018100010e018100010101 +81000101018100018401000100010a018b00010001000100010001000104018700010001 +00010001010181000106018b0001000100010001000100010f01850001000100010c0181 +000184010001000103018100010201870001000100010001070181000106018300010001 +090183000100010201810001030185000100010001090185000100010001820100010401 +81000186010001000100010b018100010b01810001090181000184010001000182010001 +070181000182010001820100010101810001170183000100010d01 +050181000182010001050181000182010001820100010201810001040181000182010001 +020181000182010001050183000100010201810001050183000100010701810001820100 +010201810001820100011101810001010181000104018100010401830001000182010001 +0601810001820100011a0183000100018201000108018500010001000104018700010001 +000100010401810001820100010101810001040181000101018100010501810001880100 +010001000100010501810001030181000184010001000101018300010001010181000182 +010001030181000105018100018201000101018100010a01810001050181000101018100 +018601000100010001030183000100018601000100010001010183000100010a01830001 +00010201810001010181000106018100010e018100010101830001000101018100018401 +000100010401870001000100010001040181000102018100018201000104018100018401 +000100010b0183000100010a0185000100010001140183000100018401000100010a0181 +0001820100011e0101000a018100018401000100010501 +82010001820100010501810001820100010f018300010001030181000107018100010501 +81000102018100010a0183000100010501810001020101000a0181000106018100010901 +830001000106018100018401000100011501810001010185000100010001080183000100 +018201000103018100018401000100010801830001000182010001010181000101018100 +018201000105018300010001040181000103018100010301810001040181000101018100 +0101018100010c0181000105018100010401810001010189000100010001000100010601 +810001050185000100010001830100010081000182010001110183000100010501810001 +020181000101018100010701810001840100010001840100010001070183000100010601 +8100010a0181000182010001840100010001820100010101810001840100010001040183 +00010001820100010901850001000100018201000118018100010a018500010001000108 +018100018401000100011b01810001820100010b0183000100010001 +0601810001820100010801810001820100018401000100010f0183000100010201810001 +8201000109018100018401000100010d0181000103018100010101810001820100010a01 +8100010501810001040185000100010001090183000100010c0181000182010001070187 +000100010001000106018300010001080183000100018201000103018100018601000100 +010001040185000100010001010183000100010401830001000103018100010101830001 +00010201810001090183000100010601830001000103018100018c010001000100010001 +000100010101810001860100010001000101018700010001000100010401890001000100 +01000100010f0181000105018100010a0181000101018100010101810001090183000100 +018201000104018300010001040185000100010001020181000104010100020181000109 +018300010001820100010401850001000100010c018300010001820100010f0181000101 +018100010201830001000108018300010001820100010801810001030181000105018100 +018201000102018100010701810001820100018401000100010601 +010183000100010901810001820100010801810001820100010301810001840100010001 +0501810001820100010501850001000100010a0183000100018401000100010201810001 +0f0181000101018100010201820001008100010101810001820100010801810001840100 +01000105018100010e018500010001000104018300010001860100010001000106018500 +010001000106018100010b01830001000103018300010001040181000107018100010101 +810001040181000103018300010001050181000182010001070181000101018100010601 +870001000100010001080181000105018100018101000100860100010001000104018d00 +0100010001000100010001000111018100010e0183000100011201830001000106018100 +010201830001000105018100018401000100010b01830001000107018500010001000182 +0100010c0181000110018100010501830001000182010001070181000184010001000104 +018100010501810001060181000182010001820100018201000182010001080185000100 +010001 +0a0183000100010601810001840100010001060181000101018100010201810001840100 +010001050181000182010001060181000102018100018201000107018300010001060183 +000100018401000100010f01810001040181000186010001000100010601810001820100 +0182010001060183000100018101008100010401850001000100010d0183000100010e01 +82000100810001020183000100010301830001000106018b000100010001000100010001 +050181000102018100010301830001000114018300010001860100010001000101018100 +010301810001860100010001000101018900010001000100010001020102008801000100 +01000100010a018100010101810001820100010e01830001000104018300010001090189 +000100010001000100018401000100010101810001880100010001000100010401830001 +0001080183000100018401000100010601810001840100010001090183000100010f0181 +00010201850001000100018401000100010a0181000184010001000108018100010b0181 +00018401000100010d0181000107018100010201 +810001820100018401000100010601810001820100010b01810001820100010301810001 +050183000100010701810001820100010401810001020181000186010001000100010601 +8100010a0185000100010001060181000101018100018401000100010901850001000100 +010801850001000100010701810001820100010a01850001000100018201000105018100 +018801000100010001000106010100040181000106018500010001000103018300010001 +050181000103018100010a01810001120181000108018100010101870001000100010001 +040181000105018200010004000b018700010001000100010c0185000100010001040181 +000109010100060181000182010001040181000101018100010201810001060185000100 +0100018201000102018200010083000100010b0183000100018201000106018300010001 +840100010001050183000100010201810001840100010001020181000101018100010801 +8100010f0185000100010001090181000182010001080185000100010001820100010601 +83000100010701 +0b0181000182010001050181000184010001000182010001060181000182010001840100 +0100010501810001840100010001820100010601810001820100010e0181000101018300 +010001820100018201000101018100010601810001010181000107018500010001000182 +010001080181000101018300010001060183000100010701810001860100010001000108 +01850001000100010b018500010001000182010001010181000101018500010001000104 +018300010001010181000105018100010301810001840100010001160185000100010001 +080185000100010001080183000100010101850001000100010101810001030101008801 +000100010001000101018100010401830001000110018100010601810001040189000100 +010001000100010501810001010181000102018100010101850001000100010901810001 +07018100018401000100010b018500010001000109018100018401000100010301810001 +100183000100018201000101018100018201000184010001000182010001100181000184 +010001000182010001850100010001000100070181000182010001050181000102018100 +010001 +030181000184010001000109018100010b01810001820100010d01810001820100010b01 +8100010a0183000100018401000100011801830001000102018300010001820100010d01 +8300010001820100010501850001000100010501850001000100010b0185000100010001 +080187000100010001000104018100010201810001010183000100010601810001030181 +000101018b00010001000100010001000106018100011a01830001000188010001000100 +010001010187000100010001000105018100010201850001000100018101000100840100 +0100010301850001000100010a0181000119018100010201820001000100020182000100 +810001020181000101018100010101810001040181000104018300010001010181000101 +018100010901850001000100010c01850001000100010901810001070181000184010001 +000182010001090183000100018201000107018100018401000100010301810001140181 +00018201000182010001060183000100010801 +82010001090181000184010001000106018300010001820100010e018100018201000107 +01810001020181000182010001010181000186010001000100010a018100010301810001 +820100010101810001020181000106018300010001090187000100010001000182010001 +0101810001020101000701810001820100010b018700010001000100010b018300010001 +0d0183000100010101830001000102018500010001000101018300010001010181000102 +0181000102018100011f0189000100010001000100010401850001000100010101810001 +060102008101000100060181000101010100840100010001070101008601000100010001 +1d0181000108018100010401810001020181000101018500010001000106018100010701 +810001820100018601000100010001090185000100010001820100010901870001000100 +010001050181000182010001060101008401000100010c018100010d0181000105018100 +018401000100018201000104010100080181000182010001820100010201830001000182 +010001810100 +010181000182010001840100010001090183000100010901810001820100018401000100 +01820100010201810001820100010201810001020181000104018100010c018300010001 +820100010301810001020183000100010201810001050181000107018500010001000105 +018700010001000100010801850001000100010a01850001000100010e01810001820100 +011001810001020181000104018100010501810001030181000102018100010201830001 +000119018500010001000107018100018601000100010001010181000103018300010001 +820100010201810001020189000100010001000100010601870001000100010001030181 +000102018500010001000116018100010201810001820100010101810001020181000101 +018100010201810001030181000182010001010185000100010001020181000182010001 +82010001060183000100018401000100010901850001000100010c018100010401810001 +84010001000182010001010181000102018100018601000100010001820100010a018300 +01000184010001000101018100010b01850001000100018401000100010b018100010901 + +8100010e0183000100010801810001820100010601810001820100018401000100010501 +81000102018100010201810001040183000100018401000100010a018100018201000182 +010001020183000100018601000100010001050181000182010001040185000100010001 +0901870001000100010001080181000102018100010b0189000100010001000100010601 +830001000104018100010101820001008100010601810001010183000100010301810001 +040181000101018100012401870001000100010001080187000100010001000108018100 +01840100010001860100010001000181010001008201000109018300010001820100011e +018100010701810001060181000106018300010001010181000184010001000103018100 +010101810001040183000100018201000108018300010001820100010901850001000100 +018201000107018100010901810001010181000184010001000107018100018401000100 +010e0183000100018201000107018100018201000105018100018401000100010a018100 +0182010001 +080183000100018201000108018100018201000109018100010a01810001820100010201 +8100010201810001020183000100012b0183000100018201000101018100018201000106 +018300010001840100010001070181000186010001000100010901850001000100018201 +00010a01810001080183000100010301830001000182010001020181000101018d000100 +010001000100010001000110018100011601830001000101018100010101810001040185 +000100010001070181000183010001008200010082000100010004018300010001040187 +0001000100010001080185000100010001180181000106018100010b0183000100010401 +810001060183000100010101810001010181000109018500010001000109018500010001 +00010c018300010001820100010201850001000100018601000100010001070181000184 +010001000182010001070181000106018100010701810001820100018201000101018100 +01840100010001090183000100010a01 +81000182010001820100010b018100018201000103018300010001820100018201000103 +018100010301830001000105018100010201810001020181000106018100018401000100 +010901810001010181000184010001000184010001000102010200040181000101018100 +0104018100018401000100010b0183000100010901810001820100018401000100010801 +8300010001040181000108018300010001070101000301850001000100010e0181000101 +018500010001000116018700010001000100010501850001000100018401000100010101 +810001030183000100010701810001010181000101018200010089000100010001000100 +010401810001010187000100010001000106018500010001000110018100010a01810001 +030181000101018100010301810001040185000100010001040181000101018100010101 +810001820100010a0181000186010001000100010701850001000100010c018100010901 +810001020183000100018401000100010701810001840100010001030183000100010501 +810001840100010001820100010301810001070181000184010001000108018100010201 +8100010001 +090183000100018201000182010001050181000109018100018201000102018100010501 +810001820100010201810001020181000103018100018201000107018300010001840100 +01000110018100010201810001820100010401850001000100010b018500010001000104 +01870001000100010001820100010b018100010101810001060181000103018300010001 +820100010501810001820100010401830001000103018900010001000100010001020185 +0001000100010f018100011201850001000100010801810001010181000101018100010d +018100010101810001050181000103018500010001000109018100018101000100820100 +010a018100010b018100010c018100010101810001010181000103018300010001090181 +00010101810001820100010501850001000100010d018100018401000100010601810001 +8401000100010201810001070181000101018100010c0181000182010001040181000182 +010001840100010001120181000102018100018201000182010001080183000100018201 +000102018100010301 +010183000100018201000108018100018201000182010001050181000182010001060181 +000102018100018201000105018100011501810001090181000101018100018501000100 +0100830001000181010081000182010001020183000100010c01850001000100010a0181 +000108018100010701810001030181000104018300010001010181000111018100018201 +000105018100010a01810001050181000101018100011601870001000100010001050181 +000101018100010201830001000119018100010101810001010181000109018500010001 +00010a018700010001000100010e01810001820100010c01810001010181000102018300 +010001030181000186010001000100010201850001000100010101830001000109018500 +010001000102018100010601830001000184010001000104018100010201810001840100 +0100010201830001000186010001000100010a0183000100018401000100010501810001 +05018100018201000102018100010d018100018201000112010000 +0a0183000100018201000108018100018201000106018100018201000184010001000105 +018300010001030183000100018401000100010e01850001000100018201000102018500 +010001000106010100820100018401000100010901850001000100010901850001000100 +018201000182010001860100010001000101018100010301810001030181000102018700 +010001000100011301810001020187000100010001000101018100018801000100010001 +00010101810001010181000101018100010b018100010801810001090181000101018300 +0100011a0185000100010001030181000106018100010e0183000100010c018300010001 +050181000116018100010101810001040181000108018300010001050181000112018100 +01040183000100010b018300010001070183000100018201000102018100010701830001 +000184010001000107018100018401000100010d01810001020181000184010001000182 +01000108018100018401000100010201830001000101018100010101 +010181000182010001820100010801810001820100018201000108018200010081000108 +018100018201000105018100010901810001060183000100010501810001010181000185 +01000100010084000100010002000a0185000100010001820100010a0181000182010001 +070181000109018100010601850001000100018801000100010001000122018100018201 +0001050183000100010101810001010183000100010c0181000105018100010701830001 +000122018100010301890001000100010001000117018100010201830001000111018100 +010501810001060183000100010101810001010183000100010201870001000100010001 +020187000100010001000102018100011d018100010f0181000107018100018601000100 +010001820100010901810001820100010a01810001860100010001000182010001020181 +00010b018300010001820100011201810001 +810001090183000100018201000108018100018401000100010301810001010181000102 +0181000107018100010201810001820100018401000100010d0181000182010001010181 +000102018200010081000108018200010083000100018201000108018100018801000100 +010001000107018300010001030185000100010001820100010401810001010183000100 +010601810001010181000182010001100101000201810001030181000106018300010001 +030181000101018100010301810001080183000100010701850001000100010b01810001 +1e0183000100010501850001000100010f018100010a0181000124018100010101810001 +0301810001820100010a0183000100012601830001000102018100010801810001840100 +010001020181000182010001040183000100018201000107018300010001840100010001 +0d0181000102018100018201000182010001820100010701810001820100010401830001 +0001820100010301 +050181000182010001080181000184010001000109018200010081000103018100018401 +0001000184010001000102018100010e0183000100018401000100010701830001000104 +018300010001830100010087000100010001000102018100018601000100010001070181 +000101018100010201810001050181000108018100010201830001000106018300010001 +01018100011a018500010001000102018500010001000105018100010101810001010181 +00010101810001200181000103018100011c01810001030102008201000103018100010c +018100011101810001070181000101018100010301830001000107018100010201810001 +010183000100010401870001000100010001070181000112018100018201000114018300 +01000102018100010601810001820100010201810001090183000100010d018100010201 +830001000182010001080181000105018300010001030181000102018100010a01810001 +0001 +8201000182010001050181000182010001820100010a0181000182010001030101008201 +000182010001080183000100010201810001840100010001020181000106018100010201 +830001000182010001060181000184010001000104018100018201000101018100010901 +830001000182010001010181000108018100010101810001880100010001000100010601 +8100010201830001000108018700010001000100010d0181000106018300010001030187 +000100010001000101018100010101810001020181000107018100011501810001030181 +000114018100010501870001000100010001050183000100011b01810001260181000102 +0181000103018100010a0181000102018100010701810001090181000101018100010401 +810001820100011401850001000100010201010005018300010001820100010701830001 +000182010001110181000184010001000182010001820100018401000100010301810001 +0e018100010401 +060181000182010001080181000182010001840100010001050181000181010081000182 +010001020181000103018100010401810001020181000102018100010301810001820100 +010201810001090185000100010001020181000102018300010001840100010001090181 +00010d018100010101810001020181000105018100010401830001000102018100010301 +8300010001840100010001060183000100010e01810001820100010d0183000100010101 +810001020181000101018100010701830001000119018100010a01810001090185000100 +01000102018100018601000100010001010102002f018100011301810001020183000100 +010101870001000100010001860100010001000103018100011201850001000100018201 +000101018100011001810001090183000100010c01830001000102018100010501810001 +850100010001008100010201830001000102018100010301810001080183000100018201 +000104018100010201810001020181000101010000 +010181000182010001050181000182010001820100010801830001000182010001030181 +000108018100010501810001020181000105018100010d01850001000100018201000103 +018100018201000184010001000107018700010001000100018201000106018100010101 +810001820100010a0185000100010001020183000100010601850001000100010a018200 +0100010019018b0001000100010001000100010401810001010181000101018100012c01 +810001090185000100010001090182000100830001000101010100090181000137018500 +010001000101018100010401850001000100010301810001020183000100011101830001 +000104018100010201830001000112018500010001000184010001000184010001000102 +01810001820100010701810001020183000100010a018100010401810001050181000182 +010001820100010a01810001040181000102018100010301810001 +0701810001820100010501810001820100018401000100010b0181000103018100018201 +000184010001000182010001020181000102018300010001020181000104018500010001 +00010a018700010001000100018201000101010100850100010001008100010601810001 +020183000100010801810001080183000100010801810001840100010001080187000100 +010001000106018300010001080181000104018300010001010183000100010801810001 +010181000101018100010d01810001110181000101018100010a01870001000100010001 +0701860001000100010083000100018601000100010001810100020001018100010a0181 +0001820100011d0181000107018100010701810001010183000100010601830001000101 +01810001020183000100010c018100010401820001008700010001000100010201830001 +000102018100010601810001040181000104018100010a01830001000182010001090181 +000184010001000105018300010001820100018401000100018201000105018100018401 +000100010c0181000102018100010301 +0201810001820100010501810001820100010b0183000100018301000100830001000101 +0181000103018100010401810001820100010f0181000105018300010001860100010001 +000104018100018501000100010081000103018100018201000104018100012101870001 +000100010001060183000100018401000100010501810001860100010001000103018100 +010f01830001000103018100018601000100010001010181000101018100010101830001 +000119018100010901810001040181000105018900010001000100010001030185000100 +010001870100010001000100850001000100010201830001000101018100010a01010005 +018100010d01810001100183000100010101810001030183000100010601810001010181 +000103018100010b0181000181010001000701870001000100010001820100010d018300 +0100011b0183000100018201000109018100010301830001000108018300010001820100 +0108018300010001040181000102018100010601 +8100010601810001820100010b0183000100010501810001070183000100010501810001 +050183000100010201810001820100010501810001820100010b01830001000186010001 +00010001020181000184010001000104018100011a018100018201000105018300010001 +040183000100010801810001010181000108018500010001000106018100010401810001 +03018100018201000105018300010001010181000101018100010d018100010501810001 +0901810001030181000102018300010001030183000100010d0183000100010101880001 +0001000100010087000100010001000107018300010001010101000a018100010d018100 +010e01810001030181000101018100010501830001000182010001010181000102018100 +01820100010b01830001000102018500010001000106010100880100010001000100010b +018100018401000100010f01850001000100010501830001000182010001820100010201 +83000100010201810001840100010001820100010501810001820100010e018100010601 +82000100 +820100018201000182010001080183000100018201000182010001820100018401000100 +010501810001040181000102018100010201810001820100010201830001000182010001 +010181000101018100010901810001840100010001090183000100010201810001010181 +000124018500010001000104018300010001080183000100010101810001040185000100 +010001060181000103018100010401830001000182010001030185000100010001010183 +000100010101810001030181000115018100010101830001000101018300010001040187 +00010001000100010b018700010001000100010101830001000102018100010201810001 +0401870001000100010001080183000100010101810001090181000107018100010d0183 +0001000101018100010201830001000105018100018701000100010001008100010c0102 +00820100010801810001820100010801810001010181000102018300010001820100011f +018100010a01830001000184010001000105018100018401000100010801810001840100 +010001020181000107018100010401 +0c0183000100018201000182010001820100010801830001000182010001040181000102 +018100018401000100010501810001020181000101018100010701010001018300010001 +090183000100018201000101018100018401000100018201000118018100010801830001 +000104018100010601870001000100010001060185000100010001040183000100011001 +810001020183000100010101810001030181000103018100010101830001000119018500 +010001000103018300010001820100010b01870001000100010001070181000102010300 +81010084000100010001000a018900010001000100010001030182000100830001000101 +018100011701810001050181000101018100010401850001000100010901810001080181 +000104018100018401000100018201000106018700010001000100010401810001090181 +000101018100010501810001130181000184010001000184010001000184010001000184 +010001000182010001840100010001030183000100018201000107018100010101810001 +820100018401000100018201000182010001 +040181000184010001000182010001820100010b0183000100011c018100010701810001 +050183000100010e01810001020181000101018100018201000106018100011b01850001 +0001000103018100018201000101018100010c0183000100018201000109018100018401 +0001000101018100010d0181000101018300010001010183000100010101830001000101 +018100010101810001030181000109018700010001000100010101890001000100010001 +000182010001070187000100010001000105018900010001000100010001010183000100 +018201000102018300010001020183000100010e01020082010001090183000100010101 +830001000111018700010001000100010101830001000108018100010201810001090181 +00018401000100010b018500010001000106018200010002008201000103018100018201 +000102018100010b01810001190181000102018100010a018100010a0181000182010001 +820100010e018100010201 +830001000101018300010001820100010801810001840100010001080181000184010001 +000101018100018201000184010001000184010001000102018100018401000100010201 +830001000184010001000103018100018401000100010201810001040183000100010401 +810001840100010001010181000112018300010001820100010101810001030181000102 +018300010001010181000102018700010001000100010a01830001000186010001000100 +011101810001010181000105018100010101810001030181000101018100010901830001 +000101018100010301850001000100010601810001020181000186010001000100010701 +850001000100010701850001000100010101820001000400810100810001040187000100 +01000100010101810001010181000103010100860100010001000102018100010b018100 +0106018100010901830001000101018100018a0100010001000100010001120101008201 +000184010001000108018300010001820100010301810001820100010101810001010181 +000184010001000182010001070181000111018300010001050181000101018100018201 +000184010001000184010001000182010001840100010001820100010701810001010181 +00018201000184010001000103018100010001 +810001820100010801810001840100010001090183000100018201000105018100018201 +0001820100010a0181000102018100010201810001060183000100011201810001020183 +000100011b018100010601020081010087000100010001000103018100010f0183000100 +010101810001130181000108018100010301830001000101018100010101830001000101 +018100010101810001010185000100010001070183000100010501810001010184000100 +010001000701890001000100010001000101018f00010001000100010001000100010001 +010183000100018401000100018101008900010001000100010001050181000101018700 +010001000100010101810001040187000100010001000102018100010501810001040181 +000184010001000184010001000103018300010001040181000103018100010801810001 +020185000100010001060183000100018201000108018500010001000182010001140181 +000118018100010201820001008300010001020183000100010301810001820100010701 +8100018201000116010000 +050181000182010001820100010b01830001000108018300010001040181000102018100 +018201000184010001000107018100010201810001010181000104018100011201810001 +040183000100018201000116018400010001008100010101830001000101018100010201 +830001000101018300010001010181000182010001010181000119018100010801810001 +01018d000100010001000100010001000103018100010101810001070189000100010001 +000100010501870001000100010001020183000100010301830001000103018700010001 +000100010701810001010185000100010001010183000100010101010001010100820100 +01030185000100010001070189000100010001000100010a018100010101830001000115 +018100010501830001000101018100018401000100010d01810001820100010201830001 +000182010001030181000186010001000100010901810001050181000105018300010001 +0c0185000100010001110181000183010001008100018401000100010501810001840100 +010001050181000101018100010501810001030183000100010101 +820100018201000108018100018401000100018201000106018300010001820100010501 +810001820100018201000108018300010001840100010001020181000181010081000119 +0181000102018300010001020181000101018100010b0185000100010001820100010801 +850001000100010201810001030181000103018100011a01810001120181000101018100 +010c01810001010181000101018100018401000100010901810001010181000102018300 +010001880100010001000100018201000103018300010001070187000100010001000101 +010100850100010001008400010001000100010181000105018700010001000100010101 +8800010001000100010081000105010400820100010b0183000100018201000103018500 +010001000101018100010201830001000105018100012501830001000106018100018201 +00010a0181000101018100018201000129018100010d0181000108018200010085000100 +0100010101810001820100010201810001820100010201810001 +060181000182010001820100010b01830001000105018100010201810001030101000301 +8100018401000100010501810001020181000106018100010401850001000100010b0181 +00018201000104018100010f018100010401870001000100010001860100010001000103 +01810001040187000100010001000124018100010801810001010181000101018100018a +010001000100010001000101018100010101850001000100010201810001010181000101 +018500010001000103010200810100830001000103018700010001000100010301870001 +0001000100010b0185000100010001840100010001010185000100010001010181000107 +018500010001000105018200010001000401830001000186010001000100010c01810001 +07018100010101830001000102018500010001000103018100010e018300010001120181 +000102018100010401810001030183000100010201810001010181000182010001130181 +00010e018100010201010084010001000182010001820100010201810001840100010001 +0901810001050181000105018100010201 +04018100010b018300010001820100010801810001020181000106018100018201000184 +0100010001050181000102018100010201810001040101000d018100010d018300010001 +850100010001008100010801810001010185000100010001840100010001080181000101 +018500010001000122018500010001000109018100018401000100010201810001090183 +000100010101830001000104018500010001000107018500010001000182010001880100 +010001000100010601850001000100010901880001000100010001008600010001000100 +810001810100010004018300010001010183000100010901860001000100010081000101 +010100810100810001010181000107018700010001000100010801830001000101018100 +010301810001010181000186010001000100010101810001050181000122018300010001 +0a0183000100018401000100010201810001060181000117018100010101810001020181 +000113018100010201810001030181000184010001000182010001820100010301810001 + +830001000106018100018401000100010801810001840100010001060183000100018401 +000100010901810001840100010001820100010201810001010181000183010001008100 +011401010082010001840100010001080181000104018300010001820100010401830001 +000101018500010001000103010100820100010401830001000118018100010a01820001 +008100010101810001010181000102018100010101890001000100010001000101018300 +010001050101000301810001810100810001840100010001010187000100010001000102 +01010001018700010001000100010901850001000100010e018200010081000101010400 +820100010601890001000100010001000107018200010003008101008100010101850001 +000100010901830001000102018100010301810001010183000100010101810001060185 +0001000100010b0181000126018300010001820100010101810001820100018201000101 +018100010201810001160181000104018200010081000182010001010181000182010001 +82010001020181000105018100010101810001040181000108018100010301 +050181000182010001020181000105018100018201000108018300010001080181000101 +0181000184010001000102018100010201810001820100010101810001820100011a0181 +000109018700010001000100018401000100010501820001000100840100010001820100 +0109018100010201830001000103018100010e018100010a018100010201010008018100 +010301810001010183000100010701810001010187000100010001000188010001000100 +010001030185000100010001840100010001010103000f01850001000100010501810001 +030182000100050082010001020185000100010001030183000100010b01850001000100 +010101010007018500010001000104018700010001000100010401870001000100010001 +010181000103018300010001010185000100010001840100010001080181000102018100 +012601810001020181000102018100010101810001020181000184010001000116018500 +0100010001050183000100010b0181000182010001080181000105018100018201000103 +0182000100 +8401000100010b018100018201000105018100018401000100010e018100010101810001 +04018100010201810001040181000105018100010f018100010501810001840100010001 +86010001000100018201000101010200030182000100010008018100010e018300010001 +010185000100010001060181000109018100010201810001030183000100010101020081 +010083000100010201810001010181000103018700010001000100010101810001010181 +0001010183000100018801000100010001000105018400010001000100820100010a0187 +000100010001000103018100010301810001010183000100010401810001010182000100 +02008501000100010081000105018b000100010001000100010001050181000101010300 +010101008201000103018100010101810001050183000100010501830001000102018300 +01000103018100010501810001050181000105018100018201000101018100011e010100 +030181000102018300010001810100820001000200060181000110018100010701810001 +830100010081000107018100010801810001820100010801810001820100010201810001 +820100010101 +030181000182010001840100010001030181000184010001000182010001140101000201 +830001000182010001840100010001040181000102018100012001810001030181000182 +010001010181000101018100018101008100010301810001020183000100011401810001 +1b0181000101018100010101050003018100010701810001010185000100010001030183 +000100010501810001020181000108018100018201000182010001050181000101018700 +010001000100010301810001030181000101018300010001050184000100010001008101 +0001008101000200860100010001000186010001000100010c0185000100010001070101 +008101000300080187000100010001000103018300010001030183000100010201890001 +000100010001000104018100010101850001000100018201000102018100010901810001 +1901830001000184010001000182010001820100010701830001000104018100010c0181 +000101018300010001020181000102018100011501850001000100018201000105018100 +010501810001 +01018100010801810001820100010a018100018401000100010201810001820100018201 +000106018100010a01830001000102018100010201850001000100010601810001120183 +000100010401810001010185000100010001010183000100010201830001000112018300 +010001020183000100010b01850001000100018201000101018700010001000100010201 +810001050181000101018100010201830001000105018300010001030185000100010001 +0101830001000104018300010001010181000102018b0001000100010001000100010901 +810001010183000100010301890001000100010001000104010100080104000101810001 +040185000100010001820100010901860001000100010081000106018300010001010181 +000101018100010401810001050185000100010001010183000100010801810001020181 +000182010001050189000100010001000100010f018100010e0181000108010100840100 +010001820100010101810001830100010081000110018100010601810001030182000100 +830001000184010001000103018100010201810001060183000100018201000182010001 +0201810001820100010201 +07018100018201000105018300010001820100010d018100010701810001040181000184 +010001000182010001020183000100010201830001000115018100010501810001040101 +008301000100020004018500010001000182010001170181000101018100010701870001 +0001000100010401850001000100010b0185000100010001070181000101018700010001 +000100010101850001000100010101810001010181000101010100840100010001050187 +000100010001000104018100010301870001000100010001050185000100010001050183 +000100010601040084010001000104018900010001000100010001050183000100018401 +000100010801030083010001000100060101000201830001000103018300010001050181 +00010301870001000100010001860100010001000101018200010083000100010a018500 +01000100011201810001070187000100010001000102018100010e018100010401810001 +0a0183000100018401000100018201000102018100010801810001020181000102018100 +0101018100010a018100018201000102018100010001 +810001840100010001060181000115018100011101810001040181000182010001040183 +000100010201810001140181000102018100010101830001000105018100010301810001 +010101001501810001060181000101018500010001000105018300010001840100010001 +090187000100010001000101018100018401000100010101810001020181000101018100 +010301810001030183000100010101830001000106018500010001000102018500010001 +000103018100010101830001000105018700010001000100010301830001000107018300 +010001020181000106010700070185000100010001080187000100010001000104018100 +010301010002018100010801810001050185000100010001010185000100010001010183 +000100010f0187000100010001000109018700010001000100010f010100020181000182 +0100010201810001020185000100010001820100010601010009018100010c0181000184 +01000100010e01810001080181000184010001000108018100018301000100 +080183000100010e01830001000103018300010001820100018201000104018100010101 +810001030183000100010501830001000104018100010101810001190183000100010201 +82000100010001018100010401810001010181000109018100010a018100010201850001 +0001000182010001020183000100010a0187000100010001000104010200840100010001 +010181000101018100018201000102018100010101890001000100010001000103018100 +0102018200010083000100010a0187000100010001000103018900010001000100010001 +030183000100010101810001030183000100010101850001000100018201000101018700 +010001000100010301810001880100010001000100010501870001000100010001080189 +000100010001000100010701850001000100010601830001000182010001020181000105 +018100010301830001000182010001010181000182010001040181000102018100018201 +00010c018100018601000100010001090181000104018200010081000104018300010001 +020185000100010001020183000100018201000107018300010001840100010001050101 +000801810001050181000103018100010201810001820100018401000100010901 +820100018401000100010801810001030183000100010501810001820100018401000100 +010601810001030181000182010001060181000102018300010001820100010201830001 +000101018100011201810001820100010101010082010001010183000100018201000103 +0181000103018100010a0187000100010001000102018100010101810001040181000107 +018700010001000100010501810001840100010001030181000101018500010001000105 +0183000100010b0185000100010001820100010301810001030183000100010101850001 +000100010101850001000100010501830001000101018100010301810001030187000100 +010001000106018300010001010181000103018100010201850001000100010301870001 +000100010001050187000100010001000106018700010001000100010901820001008300 +010001020181000101018100010101810001840100010001030185000100010001820100 +01010183000100018801000100010001000106018700010001000100010d018100010401 +810001080181000103018100010201830001000106018100011301810001020181000182 +010001820100010501810001100181000105018100010201810001820100018201000181 +0100 +030181000105018100018201000102018100010301810001840100010001820100010201 +810001050181000106018100018401000100018401000100018401000100010201810001 +02018100011c01810001820100010101810001840100010001040102000a018100018601 +000100010001060185000100010001820100010101830001000103018500010001000103 +018100010101850001000100010201870001000100010001810100010005010100010181 +000103018d00010001000100010001000100010301810001010101008601000100010001 +030181000101018700010001000100010101830001000107018100010101890001000100 +010001000107018500010001000104018100010101830001000101018300010001040183 +000100010701870001000100010001050184000100010083000100010301810001010187 +000100010001000105018300010001010181000101018500010001000102018300010001 +03018200010001000501820001008d000100010001000100010001000106018100018401 +000100011001870001000100010001820100010501810001010185000100010001040181 +000104018100010701810001030183000100010201810001130181000182010001050181 +00010201810001050181000182010001 +010181000102018100010501810001820100010501810001820100018401000100018201 +000116018300010001820100010401810001070181000103018100011801810001820100 +018201000103018300010001030187000100010001000108018500010001000107018300 +010001030181000109018100010101810001020185000100010001090102008201000107 +018300010001010183000100010101830001000101018300010001010181000108018300 +010001010187000100010001000107018300010001010185000100010001030181000103 +018700010001000100010601830001000101018100010101830001000101010100820100 +010501890001000100010001000105018100010101830001000104018600010001000100 +810001820100010501830001000105018100010101810001050185000100010001840100 +010001010101000201810001010181000182010001030185000100010001020187000100 +010001000104018700010001000100010501810001080183000100010301810001070181 +000106018300010001090183000100010501810001160181000105018100010201810001 +030183000100010501 +0a0181000105018300010001820100010a01830001000103018100010301810001030181 +000182010001070183000100010201830001000117018100010501810001840100010001 +01018200010082000100010002018300010001060189000100010001000100010b018100 +010301830001000103018d00010001000100010001000100018201000107018600010001 +000100830001000104018500010001000103018100010301810001030181000103018100 +010101810001860100010001000101018700010001000100010101930001000100010001 +000100010001000100010001030181000101018300010001070185000100010001040181 +000101018100010301810001040187000100010001000107018500010001000101018100 +010301860001000100010081000103018100010101870001000100010001090181000101 +018500010001000103018300010001040101000401870001000100010001080185000100 +010001040183000100018201000106018100018201000101018500010001000182010001 +030181000183010001000100010181000186010001000100018101008100018201000182 +010001040181000184010001000184010001000103018100011501810001820100010201 +810001020181000182010001820100010501 +050181000107018100018201000108018100010d018100010e0185000100010001050181 +0001040183000100010b0183000100010701810001010101000101020001010300020181 +000104018300010001820100010a01890001000100010001000102018300010001820100 +018201000101018700010001000100010801870001000100010001070185000100010001 +820100010401830001000101018900010001000100010001010183000100010101810001 +01018100018201000102018100018e0100010001000100010001000100010d0183000100 +01090185000100010001060183000100010101870001000100010001010101000a018700 +010001000100010501890001000100010001000102018100018101008300010001010181 +000105018300010001010185000100010001010181000105018300010001030183000100 +018601000100010001820100010501830001000184010001000106018700010001000100 +01020185000100010001060181000106018100010b018300010001810100810001060181 +000102018100018101008100018201000184010001000102018100018201000114018100 +01040181000102018100010801810001820100010001 +8201000105018200010083000100010a018100011c018100018201000107018300010001 +020183000100011701810001030185000100010001830100010001008201000181010087 +00010001000100010a018100018401000100010801830001000106018100010b01870001 +000100010001070187000100010001000108018100018201000103018100010901810001 +030181000101018100018201000101018300010001810100870001000100010001010181 +000103018700010001000100010701890001000100010001000105018500010001000104 +018300010001050181000102018b00010001000100010001000105018700010001000100 +010301810001010184000100010001008101008300010001840100010001840100010001 +010181000182010001010181000102018300010001050183000100010101810001070187 +000100010001000108018700010001000100010601850001000100018201000102018300 +01000101018100018a010001000100010001000182010001050181000103010200010181 +00010201810001020102000101830001000102018100011e018100010201810001840100 +01000182010001820100010601 +030181000184010001000108018100011d01810001080181000184010001000105018100 +010301810001840100010001070181000101018100010401820001008500010001000181 +01008200010004000c018700010001000100010601870001000100010001820100018201 +000101018300010001010181000101018700010001000100010901850001000100010701 +010081010001008201000106018100010101890001000100010001000101018300010001 +010181000101018100018501000100010001000501810001820100010101830001000107 +018700010001000100010701870001000100010001060185000100010001010184000100 +010087000100010001000103018100010301850001000100010701830001000101018100 +010401810001040101000701810001010181000101018100010101810001040101000101 +8100010301830001000182010001010181000104018100010101850001000100010a0183 +000100018401000100010901810001030181000104018300010001040185000100010001 +010183000100010501010081010087000100010001000182010001020182000100830001 +000182010001160181000102018100010d01810001820100010101 +810100810001050181000105018100012601830001000107018300010001050181000112 +018500010001000185010001000100820001000500040181000103018500010001000108 +01850001000100010301810001820100010201830001000103018100010b018900010001 +00010001000106018700010001000100010a018500010001000102018100010601810001 +030181000101018100018201000106010500820100010701870001000100010001010181 +000103018700010001000100010701850001000100018201000103018100010301810001 +820100010301830001000101018100010701870001000100010001070184000100010002 +008201000102018100010301810001050185000100010001010183000100010801810001 +050181000102018700010001000100010601850001000100018401000100010801850001 +000100010401810001820100010101830001000104018500010001000105018500010001 +00018401000100010701820001008400010001008100010b018100010e01810001030181 +00010201810001840100010001820100018401000100018201000101010000 +390101000301810001840100010001040183000100010201830001000182010001020183 +000100018401000100010801810001010181000101018300010001830100010083000100 +018201000105018300010001840100010001010185000100010001820100010301810001 +8801000100010001000101018b0001000100010001000100010701830001000184010001 +000109018200010003000801810001010184000100010081000103018100010101830001 +000105010300030181000102018700010001000100010701810001010183000100010501 +890001000100010001000108018300010001010183000100018201000101018300010001 +070187000100010001000107018500010001000109010200880100010001000100010501 +810001050181000103018300010001010181000101018100010401810001020181000105 +0183000100018401000100010801850001000100010f018100018a010001000100010001 +000184010001000102018500010001000104018100018301000100020082010001030187 +000100010001000184010001000112018100010201830001000102018100018201000112 +01 +32018100010501810001840100010001050183000100018601000100010001820100010d +018300010001860100010001000104010200810100020082010001820100010101870001 +000100010001020187000100010001000106018500010001000102018100010601810001 +0a0183000100010201810001090186000100010001000100840100010001010185000100 +010001010183000100010801850001000100010401810001820100010401820001000100 +820100010701870001000100010001050187000100010001000107018700010001000100 +018201000106018300010001010181000103018900010001000100010001050187000100 +010001000105018a00010001000100010001008100010801810001050185000100010001 +0101830001000103018100010101810001020183000100010201850001000100010c0185 +000100010001080185000100010001100183000100010601830001000186010001000100 +018301000100850001000100010101810001810100020082010001840100010001020183 +000100018301000100810001070181000103018100010301810001820100010501830001 +0001020181000182010001810100810001 +3a0181000105018100018201000109018100010601810001860100010001000102018100 +010601820001000100820100010201020081010083000100010301810001840100010001 +050181000186010001000100010b01880001000100010001008100010101850001000100 +010401810001010189000100010001000100010101810001040181000184010001000103 +018500010001000101018900010001000100010001020185000100010001020182000100 +810001020101008201000102018700010001000100010301890001000100010001000107 +018700010001000100010501810001020187000100010001000102018100010101830001 +000101018100010501870001000100010001050187000100010001000105018100010301 +8700010001000100010b0183000100010101850001000100010101810001030181000102 +0182000100820001008100018a0100010001000100010001080183000100010b01810001 +0101810001020187000100010001000102018100010d0183000100018401000100018501 +000100010084000100010084000100010002008101008300010001060181000182010001 +0a0183000100010501830001000106018100010801 +260181000107010100840100010001060181000102018100010201850001000100018201 +000101018100010b01820001008600010001000100870001000100010001860100010001 +000102010400840100010001060185000100010001080187000100010001000181010081 +000101018300010001040181000108018500010001000103018100010301810001010187 +000100010001000181010083000100010301810001070181000101018500010001000105 +018100018201000103018200010085000100010001050185000100010001090187000100 +010001000105018700010001000100010601830001000184010001000107018100010101 +830001000101018100010501850001000100010701870001000100010001010181000101 +01850001000100010501850001000100018401000100010a018500010001000182010001 +0a018300010001030183000100018201000105018100018401000100010a018300010001 +0401810001040183000100018401000100010b0183000100010301840001000100010001 +018200010085000100010001020181000107018100018401000100010701810001820100 +010201810001840100010001050181000101018100010001 +280181000107018100010401810001020182000100810001020181000101018100010401 +810001020181000104018200010083000100010401810001010183000100018201000102 +01010081010001000a01850001000100010a018300010001090183000100010301850001 +000100010301890001000100010001000103018100010101850001000100010101830001 +00010b018100010101870001000100010001010181000101018600010001000100810001 +0201820001008700010001000100018a0100010001000100010001070187000100010001 +000105018700010001000100010a01830001000102018100010301810001010181000101 +018100010501810001010181000109018200010081000186010001000100010301010001 +0183000100010e0181000101018900010001000100010001840100010001030183000100 +018801000100010001000108018300010001020187000100010001000104018500010001 +000102018100010301830001000186010001000100018201000106018300010001840100 +010001060181000185010001000100840001000100840001000100830001000102018300 +010001820100010e01810001050181000102018100018201000184010001000182010001 +01018100010001 +1e0181000104018100018201000105018100010401810001820100010101810001020181 +000184010001000105018100010601810001010181000102018400010001008900010001 +000100010001860100010001000104018500010001000184010001000108018700010001 +000100010401810001010185000100010001020183000100010501850001000100010701 +830001000101018500010001000101018100010501810001010183000100010301830001 +0001010189000100010001000100010a0183000100018401000100010101810001090187 +000100010001000105018700010001000100010901870001000100010001040181000104 +018100010501810001010101008401000100010301890001000100010001000101018100 +010701830001000105018100018301000100010003018500010001000101018100010301 +850001000100010401820001008100018101008100010301850001000100018601000100 +01000103018100010201830001000101018500010001000182010001080183000100010b +018500010001000109018300010001840100010001050186000100010001008100010101 +81000184010001000105018200010083000100010501810001020181000104018100010e +0101000101 +1b0181000108018100010401810001840100010001820100010201810001040181000182 +010001040183000100010501830001000101018100018801000100010001000186010001 +000100018401000100010101810001020187000100010001000108018100018401000100 +010a01810001010181000104018300010001860100010001000101018100018201000101 +018300010001010187000100010001000107018300010001810100810001010101000501 +810001030181000109018100010101830001000101010200820100010401810001020187 +000100010001000105018700010001000100010901870001000100010001080183000100 +018201000105018100018401000100010901870001000100010001050181000101018300 +010001010181000105018900010001000100010001010181000103018100010101810001 +010183000100010501830001000184010001000101018200010002008201000108018500 +010001000101018100010801830001000102018100010101850001000100010201830001 +000184010001000108018100018401000100010b01830001000183010001008500010001 +000183010001000100010181000186010001000100010501810001050181000102018300 +0100010301830001000182010001020181000101018100010101 +040181000104018100010101830001000182010001070181000102018100010301830001 +0001050184000100010081000104018100010501830001000104018100010b0185000100 +010001840100010001060183000100018401000100010601890001000100010001000106 +018500010001000184010001000103018700010001000100010101810001030183000100 +018201000103018500010001000107018300010001840100010001070181000104018100 +010101830001000101018900010001000100010001010181000103018100010601020001 +018300010001050187000100010001000109018700010001000100010701870001000100 +010001020181000104018500010001000104018700010001000100010901890001000100 +010001000103018100010101870001000100010001010187000100010001000103018100 +010101810001010181000103018500010001000105018300010001820100010601870001 +000100010001060189000100010001000100018201000110018300010001810100810001 +030183000100018401000100010601830001000186010001000100010901010082010001 +040181000186010001000100018201000186010001000100010301810001020181000104 +018100010801810001820100018201000182010001 +070181000182010001070181000105018100010701810001050183000100010201810001 +050181000102018100018401000100010201830001000102018100010401850001000100 +010401830001000186010001000100018201000105018100018401000100010801870001 +000100010001060187000100010001000105018900010001000100010001010183000100 +018601000100010001030183000100018401000100010701870001000100010001010181 +000101018100018201000103018100010701830001000101018300010001010187000100 +010001000102018100018801000100010001000109018700010001000100010701870001 +000100010001050181000110018300010001070189000100010001000100010901870001 +000100010001040101008201000103018100010101830001000101018100010101810001 +010183000100010101890001000100010001000182010001010184000100010083000100 +010701830001000184010001000105018100018a01000100010001000100010301810001 +860100010001000186010001000100018201000106018500010001000182010001080181 +000184010001000104018100018401000100018401000100010701810001820100010701 +810001020183000100010301830001000184010001000104018100010201 +050181000102018100010301830001000105018400010001008100018401000100018401 +00010001820100010701830001000182010001020181000107018100010b018100010401 +870001000100010001090187000100010001000109018500010001000106018900010001 +000100010001030183000100018401000100018201000105018100010101810001020181 +000102018300010001070187000100010001000101018100010301830001000101018300 +010001010183000100018201000181010083000100010301810001030181000104010100 +820100010101810001070189000100010001000100010701870001000100010001050187 +000100010001000116018700010001000100010901870001000100010001010181000105 +01830001000101018100010101830001000101018100010b010100030181000105018100 +010201010082010001020181000102018700010001000100010801870001000100010001 +0c018100010d018100010201870001000100010001070185000100010001820100010601 +810001820100010401810001020182000100850001000100010a01810001020181000104 +018100010b01810001030101000001 +820100010d018100018401000100018201000102018100018401000100010a0183000100 +018201000104018100010101810001120183000100010401830001000106018400010001 +008500010001000106018700010001000100010401870001000100010001820100010301 +810001010183000100010401840001000100810001020101000501830001000108018700 +010001000100010101810001030181000101018300010001020101008201000107018100 +010801810001030181000101018200010002008201000104018700010001000100010701 +8900010001000100010001050181000101018300010001050183000100010e0181000103 +018100010501870001000100010001090181000101018300010001010181000183010001 +008900010001000100010001010181000104018300010001030183000100010101810001 +820100010101830001000102018300010001010181000108018700010001000100010801 +830001000184010001000105018500010001000183010001000100030181000104018100 +010101810001840100010001090181000102018100010401830001000184010001000182 +010001010181000103018300010001070181000102018300010001030183000100018201 +00018201000108010000 +840100010001010183000100018201000182010001070181000181010081000109018300 +010001820100010401810001840100010001070181000105018100010401810001060181 +000103018100018401000100018401000100010501810001840100010001060185000100 +010001060181000101018300010001060185000100010001040181000182010001030181 +000182010001030187000100010001000101018100010301810001010183000100010301 +850001000100010301850001000100010301880001000100010001008100010701810001 +040102008301000100810001090185000100010001070181000101018300010001010181 +000101018700010001000100011401830001000101018100010301810001050187000100 +0100010001090181000101018100010b0181000186010001000100010301830001000103 +018100010101810001840100010001810100820001008100010501830001000184010001 +00010701850001000100010d018300010001080181000101018100010201830001000102 +018100010401850001000100018401000100010201810001020183000100010401830001 +0001030183000100010c0181000102018100010501830001000184010001000103018100 +01820100010401 +06018100018201000105018300010001820100010a018300010001080183000100010501 +840001000100010004018300010001020181000182010001020183000100010501810001 +070187000100010001000102018100010101830001000184010001000108018300010001 +050185000100010001820100010301860001000100010081000186010001000100010101 +810001020181000101018100010301810001010183000100010301870001000100010001 +030181000181010085000100010001010181000103018100010101840001000100810001 +010183000100010101820001008100010501810001020187000100010001000105018100 +0103018100010101810001010187000100010001000103018700010001000100010e0183 +000100010101870001000100010001010183000100010101810001050189000100010001 +000100010601010086010001000100010101830001000104018100010101810001010187 +000100010001000101018100010101810001050189000100010001000100010301810001 +860100010001000106018700010001000100010701810001850100010001008500010001 +000102018500010001000104018300010001020181000106018100018401000100010401 +830001000182010001010181000102018100018201000186010001000100010501810001 +020183000100010b018100018201000182010001840100010001 +010181000182010001020181000184010001000105018100010301020001018100010201 +830001000184010001000184010001000184010001000119018100010c01830001000184 +010001000106018500010001000108018100010801870001000100010001040187000100 +01000100010d018300010001060181000101018300010001030187000100010001000109 +018100010201010002018300010001070181000106018300010001010181000104018500 +01000100010101010006018100010101830001000101018b000100010001000100010001 +050185000100010001160183000100010501810001010183000100010101810001010185 +000100010001070187000100010001000182010001060101000601850001000100010101 +810001070181000104018100010101810001840100010001050187000100010001000104 +01870001000100010001060181000101018100010d018100010101810001820100010101 +830001000184010001000104018300010001840100010001040183000100018201000104 +018300010001840100010001020181000114018300010001820100018201000108018100 +0182010001 +010181000182010001820100010801830001000184010001000105018100018201000101 +018100018201000182010001090181000183010001008100011c01010007018500010001 +000104010300840100010001060181000103018100010301810001860100010001000107 +018100018601000100010001840100010001010185000100010001820100010501850001 +000100010301810001030187000100010001000107018100010901850001000100010f01 +810001010181000101018100010301010082010001010181000101018700010001000100 +010301890001000100010001000109018300010001120187000100010001000105018100 +010101830001000101018100010101850001000100010601820001008900010001000100 +010001810100810001820100010301810001030187000100010001000101018100010401 +810001060181000101018300010001050181000184010001000105018300010001840100 +010001050187000100010001000105018100010301810001020181000104018300010001 +090183000100018401000100010201830001000184010001000105018300010001810100 +8100010a01810001820100010a01810001820100010801 +8100010a0181000182010001080183000100018201000102018100018401000100010501 +8300010001840100010001110183000100010d0101000201850001000100010201050082 +0100011401810001840100010001070187000100010001000107018100010c0187000100 +010001000101018100010301810001010183000100010401010084010001000182010001 +0201810001030183000100010b0183000100010201810001060181000101018100010401 +8700010001000100010501850001000100010b018700010001000100011e018900010001 +000100010001030181000101018700010001000100010101820001008100010801810001 +010101000c01810001070181000103010100020185000100010001020181000103018100 +010101830001000104018700010001000100010801830001000105010100860100010001 +000182010001040181000101018100010401830001000186010001000100010901810001 +020183000100010201810001820100010801810001050181000105018100010201810001 +020181000104018300010001820100010001 +020181000181010085000100010001820100010301830001000182010001020183000100 +018201000102018300010001840100010001020181000105018300010001820100010201 +810001020181000113010100810100020002018100010801830001000117018700010001 +000100010801870001000100010001010188000100010001000100810001080181000102 +018300010001030187000100010001000109018300010001020181000105018500010001 +0001010181000109018e0001000100010001000100010001008100010301890001000100 +010001000107018900010001000100010001050183000100010601810001070187000100 +01000100010d018500010001000109010100820100010101870001000100010001080181 +000109018300010001010181000108018100010601870001000100010001020181000103 +018700010001000100010401850001000100010501850001000100010101830001000106 +01850001000100010401810001820100010101810001070185000100010001820100010e +018300010001830100010081000103018100010c01810001020181000106018100010601 + +820100018201000105018300010001820100010501830001000108018100010901810001 +840100010001820100010301810001020181000112018300010001820100010601020001 +010200010183000100010101810001110185000100010001080187000100010001000103 +018300010001010181000105018100010201870001000100010001030187000100010001 +000107018900010001000100010001020183000100010201010006018300010001010181 +00010401810001840100010001030181000103018200010083000100010b018500010001 +0001050185000100010001010181000102018100010f0185000100010001010189000100 +010001000100010901820001008300010001010181000103018100010101810001010182 +000100010082010001040183000100010101810001110101000101850001000100010801 +850001000100010901810001020181000107018500010001000184010001000102018100 +010101810001820100010301810001840100010001060183000100010c01850001000100 +0102018100018201000102018100010d01810001130181000103018300010001810100 +010183000100018101000100040183000100018201000182010001050104000601810001 +840100010001020101000401810001840100010001180181000183010001000200820100 +01070183000100011d018300010001840100010001070183000100010701850001000100 +010101810001060185000100010001050189000100010001000100010701810001010101 +00030183000100010a018100010301810001070183000100010101830001000108018900 +010001000100010001030185000100010001050186000100010001008100011901830001 +000101018100010101840001000100830001000107018100010101830001000105018100 +010301810001030181000116018300010001090187000100010001000106018700010001 +000100010301810001020183000100010101830001000105010100820100010201810001 +040187000100010001000102018300010001820100010801810001820100010901850001 +000100018201000102018300010001820100010801810001820100010201810001020181 +000102010200820100010501810001 +040183000100018401000100010601820001008500010001000108018200010081000182 +01000103010200010183000100010101820001008100010d018100018201000101018300 +010001810100010082010001030183000100010a0181000113018500010001000104018b +000100010001000100010001050181000101018100010501830001000186010001000100 +0103018700010001000100010b0187000100010001000102018100018201000116010100 +010183000100010301810001070182000100810001050185000100010001070185000100 +0100011a0185000100010001050181000101018700010001000100010201830001000103 +01810001050181000101018700010001000100010101830001000108018100010e018300 +010001020183000100010901870001000100010001060187000100010001000106018100 +01010185000100010001040181000186010001000100010d01830001000112018100010c +01830001000107018100010e0181000105018100010401810001840100010001 +010181000106018200010085000100010001820100010701010081010001000601840001 +000100010003010400830100010082000100810001050181000106018200010001000201 +810001010181000109018300010001820100010101850001000100011501850001000100 +010901830001000184010001000103010100840100010001820100010301870001000100 +01000107018d000100010001000100010001000103010100010181000118018100010d01 +870001000100010001020187000100010001000105018700010001000100010701810001 +01010100820100011501890001000100010001000106018b000100010001000100010001 +010185000100010001820100010801810001020181000109018100010401810001820100 +0101018100010101810001820100010201850001000100010b0183000100010a01810001 +050183000100018201000101010100040181000104018300010001880100010001000100 +011a018100010401830001000184010001000104018100011a0183000100010801 +030101000101010082010001030181000181010001008101008200010002000301810001 +810100010081010081000182010001030102000701010084010001000184010001000101 +018200010087000100010001000101018100010201830001000101018100010201890001 +000100010001000182010001010181000111018300010001070187000100010001000104 +01850001000100010d018100010701870001000100010001030181000103018100010101 +850001000100010101810001010185000100010001010181000104018100010301810001 +010184000100010001008101000100820100010301850001000100010401890001000100 +010001000107018700010001000100010101810001140187000100010001000107010100 +820100010901870001000100010001030181000101018500010001000108018100010101 +810001040181000101018100010201850001000100010d018b0001000100010001000100 +010201810001820100018a01000100010001000100010b01810001030183000100010201 +01000301810001060183000100011c018100011001810001120181000101018300010001 +02018100018401000100010001 +010082010001010181000102018200010082000100010086010001000100018201000101 +010100840100010001020181000184010001000182010001020183000100018401000100 +018201000103018100018101000300040185000100010001840100010001030181000102 +0102000401810001820100011b0187000100010001000106018500010001000107018900 +0100010001000100010501850001000100010301810001030181000101018b0001000100 +010001000100010201810001040181000101018100010a01810001010181000109018700 +0100010001000103018400010001008100010b0185000100010001070182000100850001 +00010001170184000100010081000105018b000100010001000100010001050183000100 +01810100810001010181000101018300010001840100010001010181000101018100010d +018300010001810100010088010001000100010001010181000104018100010101870001 +0001000100010e0189000100010001000100018401000100018401000100010401810001 +010183000100010601810001820100011901830001000182010001020185000100010001 +020181000105010100100181000105018100010001 +030103008401000100010101810001040183000100018201000182010001050185000100 +010001020181000103018100010601830001000184010001000181010081000101018100 +018401000100018201000101018100010201010082010001030103000301810001830100 +010083000100018101008300010001030181000107018300010001030185000100010001 +84010001000103018d000100010001000100010001000106010100820100010101810001 +04018100018c010001000100010001000100010501830001000181010081000101018100 +010101810001010181000101018200010083000100010101810001010186000100010001 +008100010601850001000100010801890001000100010001000103018900010001000100 +010001180185000100010001080187000100010001000109018700010001000100010201 +8100018a0100010001000100010001040181000101010100040185000100010001010181 +000102010100010101000201870001000100010001010183000100010801810001010187 +000100010001000105018100010901810001060185000100010001060181000184010001 +000108018100010101810001030181000104018200010081000106018100010601010003 +0102000b0101000301010002010100820100010301 +810100810001070181000182010001840100010001070181000184010001000182010001 +020183000100010201810001050183000100010301010001018300010001810100010001 +018100010101810001820100010101830001000182010001820100010701890001000100 +010001000181010081000106018100010101810001020101000101850001000100010601 +8700010001000100010d01850001000100010401830001000101018b0001000100010001 +000100010701010082010001040181000104018100010101850001000100010101820001 +008300010001010181000103018600010001000100010082010001030181000103010100 +820100010701850001000100010b01010084010001000115018400010001008300010001 +0701890001000100010001000107018100010d0101008101008100018201000102018300 +0100010301830001000105018100018101008500010001000105018b0001000100010001 +000100018201000105018300010001020181000104018700010001000100018201000184 +010001000108018100018101000100820100010301010010018100018401000100010201 +830001000105018100010101010082010001010101000501020081010001008201000108 +01810001840100010001820100010101 +0601810001820100010a0183000100018201000104018100010301830001000105018200 +010001000101830001000181010001000501810001070181000182010001070101008201 +000103018100018401000100010a01830001000105018100010601830001000102018200 +010001008201000107018700010001000100018401000100010101810001010181000101 +01810001010187000100010001000107018700010001000100010a018100010101810001 +010181000105018100010601810001010183000100010401810001010181000184010001 +0001010183000100010201890001000100010001000105018c0001000100010001000100 +010081000113018500010001000108018700010001000100010901850001000100010101 +810001820100010201840001000100810001040181000101018100010501830001000103 +018300010001840100010001060187000100010001000105018300010001810100810001 +8601000100010001010181000105018100010f0184000100010083000100010701010082 +010001010181000182010001010181000184010001000106010300010184000100010081 +00010401810001040181000104018100010a010100030181000183010001008100010401 +810001 +830001000182010001040101008201000182010001810100810001010183000100018301 +000100810001040181000185010001000100850001000100010c01840001000100020082 +010001020183000100018501000100010002008201000101018300010001030181000184 +010001000188010001000100010001060181000105018100010201840001000100010082 +010001010187000100010001000103010100010101000201810001010181000105018100 +010101810001010189000100010001000100010901870001000100010001040183000100 +010101810001010181000105010100020183000100010101860001000100010081000182 +010001040101008601000100010001050101008e01000100010001000100010001000103 +01810001840100010001820100010c018600010001000100020086010001000100010501 +8700010001000100010501830001000109018100010401820001008b0001000100010001 +00010001050181000101018100018201000101018100010c018700010001000100010601 +850001000100010301820001008100010201870001000100010001830100010085000100 +010001060182000100010081010081000103018100010f01030001010200820100018201 +000104018500010001000184010001000182010001040181000105018100010301810001 +07018100018201000182010001 +010005018200010081000101010100840100010001010181000107018300010001860100 +010001000108018300010001040182000100810001030181000103018100018501000100 +010081000101018100010101810001010181000182010001010184000100010081000105 +018100010101810001860100010001000104018300010001010183000100010101870001 +000100010001010181000182010001010102008c01000100010001000100010001020102 +000101040082010001020101000501010085010001000100810001020182000100010085 +010001000100830001000101010100010185000100010001020182000100810001820100 +0101018100010401010086010001000100010501820001008d0001000100010001000100 +010001040181000102018100018201000101018100010801810001040181000103010100 +8d0100010001000100010001000100010005010100880100010001000100010801850001 +000100010201810001010181000101018100010301850001000100010101840001000100 +81000101018b0001000100010001000100010a0185000100010001060187000100010001 +000102018300010001080182000100810001810100010084010001000107018300010001 +1301020004018300010001820100010d0181000184010001000102018100010501810001 +8101008300010001820100010a01 +810001810100820001000100030101000501830001000181010084000100010085000100 +010001840100010001820100018601000100010001820100018601000100010001020183 +0001000185010001000100840001000100820001008a0001000100010001000100020086 +010001000100018901000100010001000100020088010001000100010001030181000182 +01000107018300010001020102008101008100018201000101018a000100010001000100 +010001008201000101018300010001010189000100010001000100018101008600010001 +000100010004010200840100010001820100018201000101018300010001830100010001 +008b01000100010001000100010081000101018e00010001000100010001000100010083 +000100018101000100870100010001000100840001000100810001020181000101018d00 +010001000100010001000100018201000102018100010301010086010001000100010101 +830001000186010001000100010101840001000100010002018200010001008201000101 +018300010001820100018101008100010301810001010181000182010001010181000101 +018100018101008300010001010102008401000100018201000107018300010001010183 +000100018301000100010005018100018301000100010084010001000101018300010001 +010187000100010001000101010200020181000106018100018601000100010001040181 +00010f018100010101010082010001030181000101018100018801000100010001000182 +010001010181000184010001000184010001000182010001810100810001050183000100 +01840100010001820100010001 +010181000182010001020101008101008200010084000100010083000100010201810001 +820100018401000100010401010084010001000182010001040181000184010001000184 +010001000101018100010301830001000181010001008201000108018300010001010181 +000188010001000100010001020181000103018100018101000100820100010101850001 +00010001810100010081010001008201000101018b000100010001000100010001070187 +000100010001000101018100010101810001010192000100010001000100010001000100 +010001008600010001000100050081010001000101860001000100010001008501000100 +010086000100010001000100860100010001000184010001000181010084000100010001 +008101000500020102000101020089010001000100010001008200010001008501000100 +010083000100010101830001000108018300010001820100010101860001000100010083 +000100010101050081010001008101008400010001000200820100010401880001000100 +010001008100010101040081010082000100010082010001020183000100010101820001 +008300010001830100010084000100010083000100010301040082010001820100010101 +810001010101000601810001010182000100010081010001008201000101018100018401 +0001000182010001030185000100010001050181000106018100010b0187000100010001 +000106010100030181000104018300010001820100018201000105018100018201000181 +010081000104018100010001 +820100018201000102018100018201000104018100018201000184010001000102018300 +010001820100018401000100018401000100018501000100010083000100010201830001 +000185010001000100840001000100810001010183000100018201000101010100880100 +010001000100018101000100020184000100010001000101850001000100010101010002 +018100010101850001000100010601a10001000100010001000100010001000100010001 +000100010001000100010001000101019500010001000100010001000100010001000100 +010001010186000100010001000400020182000100010001010100810100860001000100 +010002008301000100010002018200010002008101000300830100010001008101000100 +0501010083010001000100010101008101008a0001000100010001000100010001018600 +01000100010001000501820001008a000100010001000100010085000100010001010181 +000101010900830100010083000100010101040001010600860100010001000182010001 +010181000103018300010001820100010101810001820100010201810001820100010201 +840001000100820001000100010104008401000100018101000100830100010001008101 +008100010101830001000104018300010001820100010301810001810100010084010001 +000186010001000100010301810001820100010601810001070183000100018101000100 +820100010501810001010102000301810001020183000100018201000108018100018401 +0001000105018100018201000102010000 +0b0181000102018100010801830001000184010001000184010001000182010001020181 +000107018500010001000104018100010101810001030181000186010001000100018201 +000101018100010101810001840100010001010181000108018300010001010181000111 +018700010001000100010301880001000100010001008100010501820001008100010401 +820001008400010001008300010001820100010301870001000100010001010184000100 +010081000101010400810100010081010002008701000100010001000100830100010087 +000100010001000101018100018101000100830100010001000201010081010002000101 +010081010082000100010082010001010181000101018100010101820001000100810100 +850001000100018601000100010001010181000106018200010081000101018900010001 +000100010001030101000101020088010001000100010001010102008101008300010001 +0101880001000100010001000100810100020081010082000100070081010002008c0100 +01000100010001000100018101000a008301000100020001018400010001008100018101 +000200890100010001000100010082000100030086010001000100010201010001018200 +010002000101810001810100830001000101018100018401000100010201820001000100 +810100810001020182000100010081010005008201000184010001000181010001000301 +810001840100010001820100010201810001820100018101008400010001008300010001 +82010001810100 +0e018100010201810001820100018201000104018100010a018100010201850001000100 +0109018100010201810001010101000a0183000100010201810001010181000101018100 +010101810001860100010001000104018100010101810001140187000100010001000108 +018900010001000100010001010183000100010101810001820100010401820001000100 +820100010801860001000100010001000501810001820100010201010082010001010181 +000184010001000103018100018101000100810100810001020181000101018200010081 +000182010001810100020089010001000100010001000200890100010001000100010084 +000100010001008301000100890001000100010001000189010001000100010001008100 +010101880001000100010001008200010003000101010001018200010086000100010001 +000100020183000100010101810001810100820001008300010001010181000102018100 +018201000101018100010201010081010001008201000101010100850100010001008100 +010a01850001000100018101008100010201850001000100010201810001070181000108 +018200010004000501050002018300010001040183000100010301810001020102000101 +010007018100018201000186010001000100018301000100830001000102018100010201 +020082010001840100010001020181000103018300010001 +0c0183000100018201000102018100010501810001020181000182010001020185000100 +010001070183000100018401000100010201830001000105018300010001840100010001 +040181000101018100010101810001010181000102018100010401010003018300010001 +0f0101008201000106018900010001000100010001050183000100010101810001010181 +000103018500010001000101018500010001000181010002008301000100830001000103 +018500010001000184010001000190010001000100010001000100010001000181010001 +008401000100018101000200810100020087010001000100010001008201000184010001 +0001830100010002000a0184000100010001000101810001820100010801810001050182 +000100850001000100010401010085010001000100810001020183000100010101020081 +010082000100010081010001008601000100010001010102008101000600010106008101 +008200010002000301830001000101018400010001008400010001000200020185000100 +010001810100820001000100040182000100820001008100018401000100010301820001 +000100810100850001000100010301030084010001000102018100010101810001840100 +010001040184000100010085000100010001820100010101040082010001860100010001 +000186010001000100018201000183010001000100010181000183010001008300010001 +82010001820100018301000100850001000100010001 +140181000102018100018201000102018300010001840100010001050183000100018401 +000100010701830001000104010100840100010001070183000100010101850001000100 +010a01810001840100010001010183000100011601810001860100010001000105018700 +010001000100010501830001000101018100010301810001010185000100010001010181 +000105018600010001000100830001000109018200010082000100810001040183000100 +010101810001010183000100010501010001018100018401000100010101020088010001 +000100010001030101008801000100010001000104010200830100010083000100010101 +83000100010201830001000102018b000100010001000100010001020183000100018301 +000100020082010001820100018201000103018100010101830001000101018300010001 +020101000601810001820100018201000103018100010101830001000104018700010001 +000100010601870001000100010001020181000102018200010001000101810001820100 +010701010006010100840100010001820100010401810001010183000100018401000100 +010401820001008100010301810001010181000182010001860100010001000182010001 +820100018601000100010001860100010001000182010001820100018201000103018100 +01020183000100018301000100010004018100010001 +0c0181000182010001820100010201810001840100010001820100010401810001840100 +010001820100010601810001860100010001000105018300010001840100010001020181 +000184010001000103018100010601810001810100830001000102018300010001010181 +000104018100011001830001000105018700010001000100010301870001000100010001 +010185000100010001010181000103018100010501890001000100010001000105018200 +010085000100010001030181000103018100010101810001010184000100010081000101 +018100010201810001840100010001030101008601000100010001050181000101010100 +840100010001050181000101018500010001000102010200050181000104018100010201 +870001000100010001010181000101018700010001000100010801870001000100010001 +090185000100010001820100010201850001000100010101830001000101018200010002 +000101840001000100830001000182010001040102008101000100820100010401890001 +000100010001000182010001050183000100010301810001010181000182010001010183 +000100010201870001000100010001820100011801850001000100018201000101018100 +018401000100010101810001820100010101810001820100010401810001840100010001 +01018200010001000a0183000100010301 +120181000182010001040181000182010001840100010001070183000100018401000100 +010401810001840100010001820100010401810001860100010001000182010001020102 +000201870001000100010001010181000101018100010401850001000100018201000114 +018700010001000100010301870001000100010001050181000107018100010101810001 +010187000100010001000109018a00010001000100010001008100010201810001020183 +000100010101810001010181000106018100010101820001008200010089000100010001 +000100010401870001000100010001010183000100010401870001000100010001010186 +000100010001008100010101810001100181000101018100010101870001000100010001 +050101008801000100010001000105018100010301850001000100010501830001000105 +01830001000182010001010181000105018100018101008f000100010001000100010001 +000100010501810001810100810001820100010501830001000186010001000100010101 +820001008100018801000100010001000104018500010001000182010001010183000100 +018101008100010e01850001000100010701820001008100018201000184010001000102 +018300010001020183000100010201810001810100010005018100018401000100010801 +8100010001 +0b0102000101810001020181000184010001000107018100018401000100018201000104 +018100018601000100010001090181000185010001000100830001000182010001010181 +000182010001010183000100010101810001010181000102018700010001000100010801 +810001140189000100010001000100010501870001000100010001030181000184010001 +000104018100010701890001000100010001000101018300010001090181000193010001 +000100010001000100010001000100010081000101018500010001000107018300010001 +840100010001030181000103018100010101010082010001010183000100010101810001 +030182000100830001000114018100010101870001000100010001010185000100010001 +060181000101018900010001000100010001070101000201810001020186000100010001 +008300010001010187000100010001000184010001000106018700010001000100010101 +830001000101018100010601850001000100010801830001000101018100010a01850001 +000100010601810001010181000119018500010001000107018100010101830001000104 +018100010501810001060183000100018201000105018300010001820100010301 +100181000182010001070181000184010001000107018100018401000100010901830001 +000184010001000104018100010801810001030183000100010201810001010183000100 +010c01850001000100010a01810001070181000107018700010001000100010c01810001 +03018200010081000183010001008d000100010001000100010001000101018100010301 +8b0001000100010001000100010401830001000107018300010001880100010001000100 +018101008500010001000101018100018201000103018100010101880001000100010001 +008100010101810001030187000100010001000119018100010101810001070183000100 +010101810001860100010001000101018100010b01830001000107018300010001010183 +000100010401810001050181000181010081000181010087000100010001000105018700 +01000100010001010187000100010001000104018500010001000106018b000100010001 +000100010001080185000100010001020181000116018100010901850001000100010101 +810001020185000100010001020181000184010001000183010001000100030181000102 +01810001820100010701810001810100 +0e0181000102018100018201000184010001000102018100010201810001840100010001 +07018300010001840100010001040181000102018300010001050183000100018a010001 +000100010001000186010001000100010201810001860100010001000184010001000101 +018100010101830001000112018700010001000100010a01930001000100010001000100 +0100010001000100018a0100010001000100010001030181000101018700010001000100 +010101850001000100010401830001000103018700010001000100010301010006018100 +010301810001010181000102018b00010001000100010001000106018700010001000100 +010901010084010001000112018100010101870001000100010001030181000188010001 +000100010001030185000100010001010181000101018100018701000100010001008100 +01010181000101018100018e010001000100010001000100010001020183000100010801 +870001000100010001050187000100010001000101018700010001000100010101810001 +87010001000100010001000701850001000100010801810001020181000103018100010b +01810001020185000100010001820100010a018100010101810001030185000100010001 +8201000182010001030181000102018100010501830001000182010001820100010101 +0c018100018401000100010a018100010201810001070183000100018201000104018100 +010201830001000102018100010101810001820100010501830001000108018100010101 +83000100010201810001050185000100010001010181000102018100010f018100010801 +890001000100010001000103019100010001000100010001000100010001000104018100 +018301000100810001010181000101018700010001000100010501830001000184010001 +000184010001000102018900010001000100010001820100010101810001810100830001 +0001010183000100018601000100010001070184000100010081000107018b0001000100 +010001000100011301850001000100010901840001000100810001070187000100010001 +000101018200010081000101018100010301830001000182010001010181000182010001 +010183000100010301810001010181000103018900010001000100010001030181000101 +018700010001000100010501870001000100010001040183000100010101810001010187 +000100010001000182010001030183000100018601000100010001180181000102018100 +010401830001000182010001820100010201810001020183000100018201000104018100 +0182010001010183000100010201810001820100010a01810001 +140181000184010001000182010001020183000100018401000100018201000101018100 +010301830001000102018100010101830001000184010001000102018100010201810001 +050183000100010101810001070183000100018201000101018100010801830001000182 +010001110187000100010001000105018700010001000100010101830001000103018300 +010001020181000184010001000105010100840100010001070189000100010001000100 +010201810001040101008201000103018400010001008700010001000100010101870001 +000100010001040189000100010001000100010601870001000100010001010181000106 +01850001000100010e0181000103018b0001000100010001000100010401890001000100 +010001000103018600010001000100820001008100018401000100010201840001000100 +830001000101018100010301830001000101018100010101010003010100050183000100 +010101810001030181000101018700010001000100010701010004018100010201010009 +018700010001000100010601830001000111018100018201000104018300010001060181 +000101018100018601000100010001050183000100010b01810001820100018401000100 +018401000100018201000182010001 +0d0181000102018100010701810001820100010401810001050181000101018100010201 +830001000184010001000102018300010001840100010001070181000102018500010001 +00010201870001000100010001050187000100010001000108018100010d018100018201 +000107018500010001000101018700010001000100010301830001000103018300010001 +030187000100010001000105010100860100010001000107018100010101020086010001 +000100010201830001000103018100018401000100010101810001090101000801860001 +000100010081000101018100010301810001010185000100010001860100010001000110 +018300010001010181000107010100860100010001000105018300010001010181000101 +018100010201870001000100010001040181000188010001000100010001030185000100 +010001040181000103018700010001000100010301830001000102018100010301810001 +0101850001000100010401010003018f0001000100010001000100010001000106018500 +010001000182010001110181000104018300010001860100010001000182010001030181 +000108018100018401000100010201020003018300010001820100010701810001820100 +01820100010201 +100183000100018401000100018401000100010501810001020183000100018601000100 +0100018201000104018100018401000100010b0182000100840001000100810001030181 +00018201000101018100010301850001000100010c01830001000101018100010c018100 +0101018f0001000100010001000100010001000105018700010001000100018801000100 +01000100010201810001050187000100010001000108018b000100010001000100010001 +820100010601820001008100010301810001010181000102018b00010001000100010001 +000104018700010001000100010301810001060183000100010101860001000100010081 +000114018700010001000100010101860001000100010081000103018100010101870001 +000100010001040181000101018500010001000106018300010001820100010501850001 +000100018201000101018100018101000200860100010001000105018900010001000100 +010001010183000100010201810001080181000102018100010201810001030189000100 +010001000100018201000101018300010001040181000111018300010001090183000100 +018101008100018a01000100010001000100018201000104018100010e01810001840100 +0100018201000105018100010001 +01018100010a018300010001820100010901810001840100010001860100010001000105 +018300010001840100010001070185000100010001840100010001020181000102018100 +018401000100010301810001010185000100010001030181000182010001010181000108 +0101000f0189000100010001000100010501870001000100010001050181000107018b00 +010001000100010001000105018600010001000100850001000100010301810001020101 +008c01000100010001000100010001860100010001000102018500010001000107018100 +0101010100040181000101018300010001010101008a0100010001000100010001080185 +000100010001140187000100010001000104018300010001010181000103018100010101 +820001008300010001810100810001030185000100010001030181000101018500010001 +000182010001010181000101018100010d01890001000100010001000105018700010001 +000100010201830001000105018300010001010185000100010001820100010701840001 +000100810001030185000100010001010181000107018100010101810001040181000186 +010001000100010601810001010181000102018100010401830001000103010100030181 +00018401000100010a01810001820100018301000100 +010181000103018100010c01830001000184010001000184010001000105018500010001 +000182010001090185000100010001820100010101810001820100010101810001820100 +018201000102018100010101830001000101018100010201810001840100010001090102 +0084010001000101018100010d0181000105018100018301000100830001000107018100 +018c01000100010001000100010001820100010501870001000100010001030181000106 +018700010001000100018101000200820100010101810001060181000101018200010081 +000103018e00010001000100010001000100010083000100010101810001010186000100 +010001008100010101810001050184000100010081000114018300010001050181000101 +018200010085000100010001030183000100010101810001020181000102010100860100 +010001000104010100020181000101018200010081000101018100010101810001010181 +000181010089000100010001000100010501810001010187000100010001000105018500 +010001000104018100010301830001000101018500010001000186010001000100010601 +8700010001000100010a0181000104018100018601000100010001070181000105018100 +010101810001020183000100018201000101018100010201020001018100010501830001 +0001820100010b01 +02018100010c018300010001840100010001050183000100018401000100010a01850001 +000100018201000101018100018201000101018100010401810001820100010201810001 +820100010101810001040181000101018100010101810001010185000100010001060181 +0001030102001101870001000100010001020181000102018a0001000100010001000100 +010008018100018601000100010001030181000101018300010001010186000100010001 +008300010001020181000102018100010101850001000100010101010002018100010101 +810001860100010001000101018500010001000106018700010001000100010301810001 +06018500010001000104018700010001000100010e018100010101850001000100010101 +810001020181000103018a00010001000100010001008300010001010181000181010081 +00010101810001010183000100010301810001010181000104018d000100010001000100 +01000100010101850001000100010101850001000100010b018700010001000100010a01 +830001000103018100010301810001020189000100010001000100018201000107018100 +01030181000110018100018c010001000100010001000100010201850001000100018401 +00010001020183000100010c0183000100010501830001000182010001820100010101 +060183000100010e018300010001820100010c0185000100010001050185000100010001 +040181000186010001000100010301010008018100018801000100010001000101018100 +010c0183000100018101008700010001000100010a018100010701810001010183000100 +0103018100010b0187000100010001000104018100010101830001000101018100010101 +870001000100010001060183000100018101008100010101830001000101018600010001 +000100810001010181000101018100010201830001000105018400010001008100010301 +810001070101008201000101018b00010001000100010001000109018100010201830001 +000104018700010001000100010201830001000101018300010001010181000106018500 +010001000182010001820100010101810001050183000100010101810001860100010001 +000103018100010f01870001000100010001010189000100010001000100010301810001 +010183000100010201810001840100010001880100010001000100010301810001040181 +000101018700010001000100018201000103018100010501810001030181000101018300 +010001820100010c01810001040181000104018100010201810001010181000184010001 +00018401000100010301810001020183000100010501810001 +020181000104018300010001020181000103018100010801830001000186010001000100 +010201810001020183000100010501850001000100010b01810001820100018601000100 +010001040181000103018100010201810001870100010001000100010001018300010001 +050181000102018300010001050181000101018300010001030187000100010001000101 +018b00010001000100010001000182010001020183000100010101810001820100010101 +870001000100010001070184000100010081000104018100010601810001050101008601 +0001000100018c0100010001000100010001000105018100010201810001010188000100 +01000100010081000101018100010501840001000100870001000100010001820100010b +018500010001000103018200010085000100010001030181000101018300010001010181 +000104018100010101810001010185000100010001820100010201820001008300010001 +030183000100010101860001000100010081000186010001000100010701870001000100 +01000103018300010001010181000101018100010201810001820100010a018900010001 +000100010001020181000103018300010001110181000102018500010001000102018500 +010001000186010001000100010101830001000102018300010001020181000182010001 +0401810001070184000100010081000105018100010201810001 +810001820100010101810001020181000101018100010101010006018300010001050181 +000102018300010001040181000186010001000100010701850001000100018401000100 +0107018100018601000100010001020101000301810001040181000106018b0001000100 +010001000100010301040084010001000102018700010001000100010501830001000109 +018100010201010008018200010081000105018900010001000100010001050182000100 +8100010101870001000100010001010185000100010001020181000103018100010c0183 +000100018c0100010001000100010001000108018700010001000100010d018300010001 +020183000100018201000105018700010001000100010401890001000100010001000181 +010081000184010001000102018100010201810001030181000103018100010201810001 +010189000100010001000100010301810001820100018201000103018200010081000181 +010081000106018700010001000100010301810001050181000101018900010001000100 +010001840100010001050181000186010001000100010701810001090181000102018100 +010501810001070181000103018100010301810001040181000182010001030102000201 +83000100018401000100010501810001850100010001008100010201 +020181000102018100010701870001000100010001820100010401810001820100010401 +830001000184010001000109018300010001820100010601830001000184010001000182 +010001060181000182010001030181000101018200010081000102018200010003008201 +000103018100018201000182010001010181000104018100010501890001000100010001 +000103018900010001000100010001020181000103018100010801010001010100080187 +000100010001000102018100018201000103018100018201000101018100010101830001 +000184010001000101010100860100010001000105018400010001008100010701840001 +000100830001000107018100010101010086010001000100010301830001000101018300 +010001840100010001080187000100010001000107018100018401000100010101830001 +000101018100010101830001000103018400010001008100010101810001070186000100 +010001008100010301870001000100010001050187000100010001000106018700010001 +000100010501810001010183000100010101810001040187000100010001000106018300 +0100010f0187000100010001000186010001000100010801830001000102018300010001 +010181000182010001040181000104018100010a01830001000182010001070181000100 +01 +820100010301010001018300010001820100010501810001840100010001030185000100 +010001820100010701850001000100018401000100010401830001000184010001000104 +018300010001030185000100010001040183000100010101830001000103018300010001 +070181000182010001010181000184010001000101018500010001000102018300010001 +070185000100010001050185000100010001040181000101010100020183000100010501 +01008601000100010001030181000108018b000100010001000100010001010181000101 +010100020183000100010601810001010183000100010301810001880100010001000100 +010801870001000100010001010181000104018300010001830100010085000100010001 +010101008201000101018300010001010181000108018700010001000100010601810001 +070181000102018100010901810001010184000100010081000103018100010301830001 +000103018100010101870001000100010001050189000100010001000100010501810001 +820100010101810001010102000201830001000102018100010301850001000100018201 +000107018100018201000104018100018201000182010001020183000100010501810001 +040181000104018100010401830001000109018300010001820100018201000107018300 +010001820100010301 +03018100018201000101010200050181000104018100018401000100010a018500010001 +000107018100018601000100010001060181000187010001000100010081000184010001 +00018a010001000100010001000181010083000100010101810001050102000301870001 +000100010001020181000101018500010001000181010081000104018100018301000100 +810001040103008101008100018201000102018500010001000103018100010201870001 +000100010001040187000100010001000101018900010001000100010001840100010001 +820100010201810001010181000101010100040101008401000100010301810001010183 +000100018201000109018200010083000100010701840001000100830001000104018100 +010601810001020183000100010301810001840100010001010181000108018700010001 +000100010301010001018100010101010002010100830100010083000100010101820001 +008100010301830001000102010100820100010101830001000101018100010301810001 +010189000100010001000100010501810001040181000104018100010201830001000103 +018100010101810001820100010101810001040181000105018100010101810001030101 +000101810001010181000104018100010501850001000100018601000100010001860100 +010001000184010001000104018300010001080183000100018201000107018100018101 +00 +810100810001820100010601810001080181000105018300010001860100010001000105 +018300010001840100010001040183000100018801000100010001000186010001000100 +010101830001000102018100010a01810001010181000104018500010001000182010001 +07018200010083000100010b018300010001030187000100010001000101018100010101 +830001000182010001820100010301820001008100010101810001050187000100010001 +000102018900010001000100010001030181000103018100010101010084010001000101 +018100018801000100010001000104018300010001010181000108018700010001000100 +010601870001000100010001040181000108010100850100010001008500010001000101 +018400010001008300010001910102000201020001000100020002010201028302000201 +840100010001810100840001000100810001070183000100010101810001040183000100 +010301810001820100018a01000100010001000100010101830001000101018100010301 +810001030187000100010001000105018a00010001000100010001008100010101870001 +000100010001040181000101018300010001040181000101018300010001040101000401 +870001000100010001860100010001000103018100010101810001820100010101810001 +050181000103010100820100018401000100018601000100010001050181000184010001 +00010401 +810001050185000100010001020181000108018100018401000100010701830001000182 +010001040183000100018401000100010101810001840100010001060181000102018200 +010081000182010001010181000188010001000100010001010181000101010100010181 +000105018900010001000100010001020101000201860001000100010081000105018300 +010001010181000101018300010001010181000105018100010101870001000100010001 +040185000100010001030182000100830001000105018100010101850001000100018401 +000100018201000101018100018401000100010101810001020181000101010100010181 +000182010001010188000100010001000100810001030188000100010001000100810001 +050181000106018500010001000102010100850100010001008100010901810001020189 +000100010001000200010101860200010001000101018100028402010201028402010201 +028b02010200010201020002000101018502000102010083000100010301830001000102 +01830001000184010001000103018d000100010001000100010001000101018300010001 +010181000103018100010101810001030181000101018300010001880100010001000100 +0101018300010001860100010001000101018100010a0181000104018300010001820100 +010801810001010181000103018100010401810001010181000182010001020101000101 +810001050183000100018401000100018401000100018201000105018300010001 +020183000100018201000104018100018401000100010301810001050185000100010001 +820100010701830001000104018500010001000106018100018401000100010201810001 +020181000102018100018401000100010301830001000101018100010501020084010001 +000103018300010001810100020084010001000108018900010001000100010001010181 +000105018900010001000100010001830100010081000103018100010201890001000100 +010001000104018700010001000100010101810001010183000100010301850001000100 +018201000101018600010001000100810001010183000100010601810001050182000100 +850001000100010801810001030181000101018400010001008500010001000102018100 +010201850001000100018a01000100010001000100010101810201020184000201020102 +018200010086000100010001028f0201020002000102010200010201000183010201028b +0201020100010002000100018e0100010001000100010001000100018201000182010001 +01018800010001000100020106018b000100010001000100010001010183000100010201 +81000182010001030183000100010a018700010001000100010401810001040101008201 +000182010001010182000100830001000104018400010001000100060183000100010201 +830001000102018300010001840100010001010101000201810001840100010001820100 +010501830001000184010001000184010001000182010001 +810001050181000102018300010001030183000100010301830001000105018300010001 +880100010001000100018401000100018201000103018100018401000100018401000100 +010201830001000101018100018201000182010001040185000100010001030181000102 +018100018201000103018100010101850001000100010201830001000104018500010001 +00010e018900010001000100010001070181000102010100820100010201810001070187 +000100010001000104018700010001000100010b01830001000186010001000100010201 +830001000102018200010081000102018100018101008300010001020181000105018700 +010001000100018c01000100010001000100010001040181000102010100860100010001 +0001a0010001000100010001000100010200020002000102010002010201020001020102 +8b0201020100010001000200018201000183010200018401020002010101010002018100 +018101028402000200010301850001000100010101810001010185000100010001010181 +000101018200020081000183010001028402010201028d02010201000200020002000100 +018101000100010185000100010001010187000100010001000182010001070183000100 +018201000107018100010201810001010101000201850001000100018401000100010101 +810001010181000103018100010401810001840100010001020181000182010001010183 +00010001020181000102018100018201000107018300010001820100010201 +030183000100010901810001820100010201810001030185000100010001840100010001 +820100010801810001840100010001840100010001080181000104018300010001820100 +010301830001000106018500010001000102018100010101890001000100010001000182 +01000101018100018101000100840100010001010181000108018b000100010001000100 +010001050186000100010001000200820100010101810001820100010201870001000100 +010001050184000100010081000107018300010001030183000100010101830001000104 +018300010001020181000102010100810100810001030181000106018500010001000103 +018200010085000100010001050181000106018100018101008900010001000100010001 +84010001000101018100019c010002000200010002000100010002000201000200020102 +000102010281020101010102880002000100010001028402010201028102018401020102 +008300010201010183000100010501830001000107018100010101010092010201020001 +0200020001000102000102010283020102018d0102010201020102000100010001020181 +0001010181000103018c0201020002000200010001000109018100018401000100010101 +810001860100010001000102018100010101810001820100010501810001010185000100 +010001070181000104018100010401810001030181000104018100018401000100010801 +810001 +820100010501810001010181000103018100010101810001030181000184010001000182 +010001060181000186010001000100018201000108018100018601000100010001860100 +010001000108018100010801810001010181000101018300010001020183000100010601 +870001000100010001040181000182010001010181000182010001880100010001000100 +0105018b0001000100010001000100010101810001020181000101018100010201810001 +020189000100010001000100010601870001000100010001070181000106010200820100 +01030101008201000182010001020181000106018400010001008b000100010001000100 +010001060181000103018100010101010086010001000100010a01810001010183000100 +010201810201010185000201020102840201020100920001000100020002010200010001 +00020002008a000201020001020100020084000102000101018700020102010002010401 +010082010001820100018201000185010001000100830001000101018a02010001020100 +010002018301000102860200010001000181010082000102860200020001020103010100 +840100010001010185000100020001040190020102010001000200020102010001000103 +018500010001000182010001040181000101018300010001820100010101810001820100 +010401810001020185000100010001020181000104018100018601000100010001030183 +000100018401000100010201810001820100018401000100010001 +010183000100018201000101010100840100010001030181000182010001010181000105 +018100018601000100010001820100010301810001020181000186010001000100018401 +000100010801810001860100010001000101018300010001860100010001000101018100 +010101810001010183000100010301870001000100010001070181000101018100010101 +830001000101018100010a01010086010001000100010101810001040185000100010001 +010182000100860001000100010081000103018d00010001000100010001000100018201 +000105018100010301810001010183000100010601830001000182010001010101000401 +830001000101018500010001000104018100010501820001008300010001010189000100 +010001000100018201000104010100880100010001000100018901000100010001000100 +900001000102010002010201020001020102840201020102880200020001000100018801 +02010002000201028402010201028702010001020001008b000200010201000100010001 +02018100018401000100010a019700010001000100010002010200010201000100020002 +00028602010201020001010187020001000100010081000101018700010001000100028c +020102010001000200020102018201020103018802010200010001000107018500010001 +000182010001860102010200020102018100010101830001000102018300010001040181 +000102018300010001840100010001050183000100018201000104018100018201000184 +010001000102010000 +060181000183010001008100010101830001000186010001000100010301810001820100 +010601810001020181000182010001010181000184010001000109018700010001000100 +018201000103018100010601850001000100010101830001000101018100010301830001 +000107018300010001070189000100010001000100018101008100018501000100010081 +000182010001820100010401810001870100010001000100890001000100010001000182 +01000101018400010001008100010701810001060185000100010001030181000101018a +000100010001000100010081000103010100840100010001010182000100830001000105 +018100010601850001000100010101010084010001000103018100010201810001010183 +00010001810100830001000102018300010001070101008a010001000200010001000183 +0100020102018100010401850200010200028102008a0001000200020002000100810002 +820200010101890200010001020100010087000100010001000101018b00010001000100 +0100010001010181000181010281020102018a0200010001000100010001020185020001 +0001028402010201028502010001000181010081000104018100018d0102000100010001 +000100010001870100010002010200810001820100010101810201810100820001008100 +01820100010501890200010002000100020102018b000102010201020002000201840100 +010001820100018201000101018100010501830001000107018100018401000100018201 +00010401810001810100 +010181000184010001000182010001840100010001010181000107010100030183000100 +018401000100010201830001000184010001000107018700010001000100018201000104 +018100010101850001000100018101008100018a01000100010001000100010201830001 +000101010100040187000100010001000103010100840100010001060187000100010001 +00010401810001030181000101018b000100010001000100010001010181000103018100 +010101810001820100010601810001010183000100010101880001000100010001008600 +010001000100810001040181000101018100010101010086010001000100018401000100 +01060181000182010001820100010101820001008b000100010001000100010001020181 +000103018100010101830001000102018300010001030185000100010001880100010001 +0001000103018b0200010201020100020002008600010002000201880100010002000201 +0284020102010081000102018b0200020001000100020002008100018101028502010001 +000186010001000100010101020082010001070181000101018b00010001020100020102 +010284020102010289020002000200010201028c02000201000201020100010001010183 +000100010201810002940201020100020102010201020100020002010200028902010201 +00010001000181010081000101018b000100010001000100010201010101028d01020002 +010201000100010201028502010001000102018500010001000102018100018201000102 +0183000100018801000200020100020101018d0201020102000200020100010201 +810001020183000100010301810001020183000100018201000101010100030181000102 +01850001000100018201000109018300010001840100010001040181000101018100018a +010001000100010001000103018100010b01810001010183000100010201830001000105 +018100018401000100010301820001008500010001000105018100018401000100010101 +8b0001000100010001000100010701020001010100020181000104018700010001000100 +01820100010301870001000100010001040181000107018a000100010001000100010085 +000100010001010181000184010001000103018100010101010088010001000100010001 +060181000102018100010101830001000101018400010001008300010001040101008401 +020102018201000101018300010001010101008601000201020002820201028602000201 +0201028a0200020001000100010001840100020001030183020102010101850001020102 +018201000101018300020002810201820100010501820001008100018e01000100010001 +000100010001000182010201820100018501020002000284020100010284020102010281 +020101010102880100010002000200018901000100010001000100870002010200010001 +010184000100020182010001030182020002820200018201020103010100820100010101 +81000104018400010200028b020102000201020002000201870102000200010001020181 +000102018300010001820100010201830001000106019402010201000100010200020001 +0200020102010201810100 +020183000100010201810001020101008201000102018100010701810001820100010601 +810001860100010001000182010001040181000102018700010001000100018401000100 +010801820001008100018201000188010001000100010001010181000103018300010001 +020183000100010401870001000100010001820100010401890001000100010001000101 +018700010001000100010701870001000100010001010181000102018300010001810100 +830001000107018200010083000100010501810001060181000181010081000101010100 +010181000108018300010001820100010101860001000100010001008201000182010001 +04018100010101830001000101018300010001880100010001000100010a018100010201 +860200020001000189010001000100010001008600010001000201890100010001020001 +0201010185000201020102820201028102008200010001008c0200020001000200020100 +020088000100020100010001820102008900020001000100010001050183000100010501 +81000101018d000200010001000201020102000101018900010002000200010201010101 +008101028902010201000100010001050183000100018a01000100020102010200028602 +0100010201028d0200020102000200020100010001020181000102018600010001020102 +830201000101018a02000201020102000100010101810201820100018501000100010083 +00010001020183000100018401000100018e010001000102000201020102010201010185 +020102010001840100010201 +810001020181000182010001840100010001050183000100018201000182010001040183 +000100018401000100010701810001020187000100010001000184010001000106018300 +010001860100010001000104018300010001030185000100010001010185000100010001 +010181000101018300010001090184000100010001008801000100010001000182010001 +8201000103018b0001000100010001000100010101810001050181000184010001000181 +010081000103018700010001000100010401810001030181000101018600010001000100 +810001820100010401810001010186000100010001008100010101830001000182010001 +010181000101018100010101810001020185000100010001820100010301840001000100 +810001070184000100010085000100010001010181020082000201010185020100010001 +010181000105018902010200020002000100900002000100010201000200020001000102 +910201020001020102000100010002000201028602010200020001820102008100018201 +020104018300010001010102000201850001000100010401010282010001840102000200 +850002000201028102010201810201010101028801020100020001000104018d00010001 +000100020102010201028a02000200020002000102018201000288020002000200010201 +0101810001050183000100019b0100010002000201000102000200020001000100010201 +00010200010601010002018300010001020181000103019a000100010200010002000201 +000100010200020102010201020001 +840100010001050181000185010001000100810001040181000102018100018201000107 +018500010001000186010001000100018401000100010601830001000184010001000106 +018500010001000182010001820100018401000100010401010084010001000101018100 +0109018700010001000100010301010001018100010501810001030183000100010f0185 +00010001000106018100010b0181000103018100018a01000100010001000100010c0101 +000101830001000104018300010001010101008401000100010101860001000100010081 +000101018400010001008700010001000100010401890001000100010001000106018700 +010001020102008700010002000200018401000100010101010086010001000100018501 +02010201028e020102000200010002000201020102870200010001000102840201020102 +840201000102820201000100860200010002000201028801000100010001000101018300 +010001030188000100010001000100850001000100018201020104018100018d01020002 +00010001000201020100830001000101018200020101018300010001050101028c000200 +02000200010201020102870201020102010201010186000100020001008100010c018502 +010200020101018302010001020189000102010001020102018401000100018101008100 +018201000105018100010201830001000101018102010101830201000186010002000102 +018201000185010001000102 +030183000100018201000109018100018201000106018100018201000184010001000184 +010001000184010001000106018300010001840100010001060183000100018401000100 +010601890001000100010001000188010001000100010001010183000100010401850001 +000100010501850001000100018201000102018100010101830001000105018100010101 +810001810100870001000100010001030185000100010001840100010001010182000100 +010086010001000100010101880001000100010001008100010501810001050101000401 +020002018500010001000102018300010001040181000101018300010001840100010001 +080189000100010001000100010801840001000100810001830102000281020181010085 +0001020102018a0100010001000100010001040186020100010002008100010901820001 +00850001000200028c020002010002000200010200028402010201028502000200010091 +000200010001000100010001000100010001070181000102019300010001000100010001 +000200010201000201028402010001028402010201028402000201008400010200010401 +8d000100010001000201020102010283020100018401000100018b010001000100010201 +020102820201008300010001010101000201830001000103019600010001000201020002 +0102010001000100010001000184010001000105018500010001000107018100018c0100 +020002010001020102000189010002000200020100010001 +820100010501810001840100010001810100830001000101018100018201000182010001 +020185000100010001820100010801810001840100010001060181000186010001000100 +010601810001860100010001000101018100010101830001000184010001000101018300 +010001010185000100010001040102008401000100010101810001020181000101018100 +018201000105018100018201000101018100010501010086010001000100010101810001 +02018100010b0189000100010001000100010a0181000101018600010001000100020082 +0100010101880001000100010001000200820100018a0100010001000100010001030181 +000189010001000100010001008100010801910001000100010001000100010001000201 +02830201020189010201020100010002008100010301820001008a000100010001000102 +010293020102010002000200020001000100020002010284020102000286020100020001 +008100010101880001020100020002018201000102018500010001000101018100010101 +810001810100820001008100010101810001030181000102018902000100020001000102 +8402000200028402010001028402010200010101030287000100010001000106018a0001 +0001000100010201028102010101820201028e0201020100010002010001000100018201 +0001040181000101018300010201010101028d0102000200020002000201020102840200 +010001820100010401810001820100010401830001000188010001000102010201010183 +02010001010185020002010001810102810201810102 +01018300010001820100010701020004018100010e018300010001860100010001000104 +0181000186010001000100010601810001880100010001000100018a0100010001000100 +010001010181000106018100010301810001010181000101018100010401830001000181 +010081000102018100010401810001010181000182010001820100010201890001000100 +010001000102018100010701810001890100010001000100010081000183010001008100 +010601850001000100018a01000100010001000100010101810001010181000101018300 +010001020185000100010001020185000100010001040186000100010001008100010a01 +880001000100010001008900010001000100010001010101029201020102010002000200 +02000100010201000184010001000102018c000100010001000200010001008500010001 +020183010201028d02010201020001000200020100018301020002820201028402000201 +008700010201020100018801000201020001020101018500010001000103018400010001 +00870001000100010001010182000102810201820100028d020102010002010200020001 +02018b0102000201000200020001008100010501850001000100028402000200028e0201 +020100010001000201020002008900020100010001000100810001810100010082010001 +040197000100010200020002000100010201020001000100010001020181000182010001 +810100810001820100010101810001820100010201810001040197000102000200020100 +010201020102010201000102000200 +060181000184010001000182010001050181000101018100018201000182010001010181 +000182010001060181000186010001000100010901830001000182010001010185000100 +01000102018100010c018b000100010001000100010001010181000101018100018a0100 +010001000100010001040181000101018100010101010082010001860100010001000101 +018100010501810001070182000100020084010001000186010001000100010201810001 +02018f000100010001000100010001000100010201810001030181000101010100840100 +010001020101008401000100010101010085010001000100850001000100010a01860001 +000100010089000100010001000100010401810001010183000200028c02010200010201 +0201020100018a0102000200010200010001010182000100810001060183020001008c00 +020001000100020002000200810002840201020102870201000201000100900001000100 +020002000100010002010001830102000287020100010001000101018100018201000104 +0181000102018b0001000100010001000100018601020001000102820200018201020184 +010001000103018402000100028602000100010001010181000102010102910102010200 +010001000100020102010201028102010101880201000201020100010601810001010181 +000185010201020102870201000102010001010101028501000102010083000100018401 +000100010401830001000184010001000102018d00010001020102010001020102018a01 +000102000100020100010301 +010181000182010001050183000100018201000182010001010181000182010001010181 +000105018300010001840100010001060181000184010001000188010001000100010001 +860100010001000108018300010001840100010001010185000100010001060183000100 +010101810001820100010501870001000100010001010181000103018100010101810001 +010181000101018300010001030181000101018b00010001000100010001000104010100 +010101008201000101018100018301000100850001000100010501810001010101000201 +830001000101018100010201810001020183000100018601000100010001040181000108 +0183000100018c0100010001000100010001000106018100010101010002018200020101 +01810201850102010200028802010201000100020101018100010a018800010001000200 +02018e010201020102000100010002000200880002000200010001028202010282020001 +810102820201029202010201020001020002000200020102000200810001010181000183 +010001008500010001000107018100010101960201000100010002000200010002010200 +020001020102810200870001000200020002880200010001000100010101880001000200 +01000102880201020102010002008a000102000102000201000187010200020100010001 +000301810001020199020100010200010001020100010201000200020102010001020104 +010300820100010201810001040181000184010001000182010001860102010001000103 +0181000104018300010200 +810001840100010001840100010001020181000182010001840100010001820100010201 +810001040181000106018100018401000100018201000101018300010001820100010d01 +890001000100010001000182010001070183000100018601000100010001010183000100 +010101810001860100010001000105018800010001000100010001008201000101018300 +010001810100810001010189000100010001000100010701810001050181000101018100 +010101810001090181000101018300010001010181000102018700010001000100010101 +810001030181000101010200030182000100830001000101010100860100010001000101 +018200010083000100010601870001000100010001010181000102018b02010201000200 +020002010285020102010201870102010001000200880001000100010001008500010001 +000102018302010200870001000200020102820201028302010201010194000200020001 +0200010002000200020001000102008100028d0201000102010200010002000200830001 +000102018100018e01000100010001000100010001000101018700010201020102010301 +880201000100010001008100018601020001020102860201020102000102018100010101 +8f0001000100020001020100010001000104018100018201000101018900010200020100 +010001030101000401840002010201860102010200020101018100010201890200020100 +010001000101010100050181000102018300010001030197000102010201020001000201 +00010001020102010001000181010282020100 +810001050181000184010001000105018100010401810001820100010201810001010181 +000184010001000102018300010001840100010001080181000186010001000100018601 +000100010001080183000100018101008100010801830001000101018700010001000100 +010101010088010001000100010001050101000101830001000103018100018101008500 +010001000105018700010001000100010101860001000100010083000100010101820001 +008100010401830001000182010001010189000100010001000100010401860001000100 +010081000186010001000100018801000100010001000102018100018801000100010001 +000103018100018a01000100010001000100010601840001000100820002018701020102 +010201028602010201020102860200020002000101010102860102010001000106018a00 +010001000200020102018801020002000100010083000100028b02010001020102010002 +000284020102000282020102810201830100020086000200010001028202010281020102 +018100010101830001000107018e00010001000100010002000102010083000100018301 +000102820201020202810102890200020002000100010083000100010801810002970201 +000100020002000200020001020102000102000201028502010001020101018700010001 +000100010401830001020182010001850102000200028902000200020002010201010181 +000104018100018201000101018100010501810001020189000100010201020002010101 +8b00010200010002010001000101010002 +840100010001820100010501830001000182010001020102008101008100010901850001 +000100018401000100010601810001850100010001008700010001000100010901870001 +000100010001050181000188010001000100010001030181000108018100010a01850001 +000100018201000101018900010001000100010001050185000100010001010189000100 +010001000100010101010002018500010001000101018100010101840001000100850001 +000100010501840001000100830001000105018100010101810001030181000106010100 +020181000101018100010101810001820100018201000103018400010001008700010001 +000100010201010287000200020002000285020102000201830102010289020002010201 +020001008300010001010182000100960001000100010001000102010200010002000200 +020002850201020102018901000201020001020102840200020102820201028302010200 +880002000201000201028402010001008700010001000100018201000188010001000100 +010001090187000200010201000101018802010200010001000183010200028402010201 +029002010200020001000100010001000100010101820200010101010285000201020102 +8402010201028a0201020102000100010200810001050181000101018100010101010289 +010200020102000100028a02010200020102010200028202000104018500010001000182 +0100010201830001000102018100010101810201830100020101018200020101018c0201 +0200020102010001020002 +080183000100010501830001000101018300010001010101001301840001000100810001 +0101830001000109018700010001000100010b0182000100810001020183000100018301 +000100810001810100850001000100010401810001880100010001000100010101840001 +000100810001810100820001000200040183000100018801000100010001000103018100 +01030181000101018300010001040101000a018900010001000100010001080185000100 +010001010102008501000100010088000100010001000100860001000100010085000100 +010001030181000184010001000108018a00010001000200020002018701020001000100 +02810201820100028c020100010201000200020002008800020002000100010085000100 +010001030182000100850002000102018201020183010002008a00010001000100020102 +018601000102000102810200820001028f02010002010001000200020001000102830201 +000101018100010b018b0001000100010001000100028302010201880100010002000200 +028f02010201020001020100020001000100810001010181000101018100018101008100 +018c0100020001000100020102010287020100010201020001008e010200010001000102 +000100010001080187000201020002000293020102010001020100010001020001020001 +000101018100010701830001000184010001000102018100018401000200018e01000102 +010200020002010201000185010201020102 +820100018401000100018201000184010001000182010001020182000100020082010001 +820100018401000100010401850001000100018601000100010001020181000104018500 +0100010001820100010a0183000100018401000100010101810001010181000104018500 +010001000103018100018201000101018100010101850001000100010101830001000105 +018100018201000102018300010001010101000401810001010183000100010101830001 +000101018300010001880100010001000100010301870001000100010001080186000100 +010001008700010001000100010501810001040181000101018100010201810001010181 +0001820100010101840001000100810001050184000100010081000101018b0201000102 +01000201020102830201020102018c020102010201020001000100010101010084010002 +000102018300010001010195000100010002000102010200010001000200010201028402 +010201028302000200880002000200010201029802010200010201000201020100010001 +02000100010001000182010001040187000100010001000108018b000200020001000100 +01020186010200010001028a020002010002000200010083000200010701810001010101 +028f010001000100010001000100010201028402010200028c0201020002000100010001 +000184010001000102019902010201020102010002010001020100010001000102000102 +018401000100010101810001820100010201810001060181000184010001020101019502 +010201000100010200020002010201020001000201 +0601810001070183000100010c0101000301810001010183000100010901850001000100 +018201000108018300010001860100010001000102018900010001000100010001030181 +000182010001030185000100010001010182000100810001010181000101018100010701 +840001000100810001860100010001000105018100010101830001000101018100018a01 +00010001000100010001040183000100010101810001820100010a0101008b0100010001 +000100010001008100010301830001000182010001870100010001000100860001000100 +010081000101018100018201000101018300010001010101008601000100010001010183 +000100028d02000200020001020102010201028402010201028402010201028402000100 +0201028b00010002000200010201020001008201000106019d0001000201000200020001 +000100020100010002000200010001000201028602010201020001970100010201020001 +020001000102010200020002010200010101020002018c00010001000100010001000100 +850001000100010101010203018a02010002000200010001028902010001000200020001 +8c0100020001000100010001000101018200010289020102010002010201020202890102 +000200010001020001008101028102010101810001040186000100010002008700010001 +000100020102810100810001830102010286020102010001008100010101810001040181 +0001020183000100010201820001029b0201000102000200020100010201020102010201 +0001000102000100 +010183000100018401000100018201000182010001040181000181010081000101018300 +01000103018100010201810001030185000100010001820100010b018500010001000104 +018700010001000100010401810001040101008201000186010001000100010301830001 +000106018100010301910001000100010001000100010001000100010301810001810100 +810001010181000101018400010001008100010701850001000100019701000100010001 +000100010001000100010001000100010085000100010001050101008401000100010501 +810001010183000100010201830001000101010100020101008401000100010101830001 +00018b010001000100010001000201010181020182010201820100028b02000200010201 +020102010281020101010102820102018201000284020100010085000100010200820001 +008700010001000100010201830001020183010200028402010201000200850200020102 +018101028102008b00010002000200010001020082000100830002000284020100010086 +000100020002018301000100830001000182010001070101009601000100010001000100 +020001000100010002010201028702000200010201028402000100028102018201020103 +019100010001000100010002000201020001000101010100840100010201860100010002 +010001008201000102018100010101810001820100018e01020102010201000201020002 +00018b010201000200020002000201810100810001020183000100018401000100010401 +8100018101028c0200020100010201020002010290020001000102000201000102010201 +0201 +010181000107018100018201000184010001000107018300010001820100010601810001 +820100010b01850001000100018201000101018100018601000100010001030181000109 +01850001000100010701850001000100010101850001000100018a010001000100010001 +00010901010003018f000100010001000100010001000100010701820001008300010001 +060188000100010001000100810001880100010001000100010601870001000100010001 +060181000102018100018401000100010101820001008100010101810001850100010001 +008b000100010001000100010001820100010501820201028d0201020102010201000201 +0201028402010201028202010081000286020102010201028c0200020001000102000200 +01008100010901820001008600020001000201850100020001028402010201028f020002 +000100010200010002000201028102010201820201028502000200010081000101018302 +010002840201000100010004018700010001000100010801870001000200010002820201 +0288020002000200010201890100010001000200020087000200010001000107018a0002 +0002000100010201028b02010200020102000100010281020083000102018a0100010001 +0001000100010201860002010001000101018100018d0102010200020001020102010200 +830001000109018100010101810001860100010001000201028601020102000201010183 +00010201010183020102010101840200010001810100 +010181000182010001840100010001050183000100018401000100010701810001820100 +018401000100010601850001000100018201000101018100018601000100010001040181 +000104018100010101870001000100010001820100010301870001000100010001030183 +000100010101810001010101000201810001030185000100010001810100870001000100 +010001010181000109018900010001000100010001060186000100010001008100010101 +810001040181000106018400010001008100010701820001008300010001010181000103 +018100010101830001000188010001000100010001070181000108018b00010001020102 +01000102018401020102010101850002010201028a020002000102010201020182010201 +820102018301000201820100018701000100010001008500010001000106018a02010201 +000200020001009000020001000201020102010002000100018a01020002000100010002 +008500020102000281020189010001000201020002010201810001010183000100010401 +8c0001000100010001000102010281020102018b00010002000100010200010086000200 +010201008100028302010201040187000100010001000186010201020102018201000181 +01008100018a010001020001020100020083000100018201000105018300010001010183 +020102010101010087010200020002000286020100010200028102010101010084010001 +000182010001010181000105018100010201990001000102000200020102010001000102 +0100010001000102018101020002 +810001070181000184010001000103018300010001820100018801000100010001000101 +018100010101850001000100018201000101018100018601000100010001040181000104 +0181000101018100018a0100010001000100010001060181000105018100018601000100 +010001010183000100018101008100018101008100010101830001000103018100010101 +830001000103018600010001000100810001840100010001070188000100010001000100 +860001000100010083000100010101820001008100018801000100010001000101018200 +010089000100010001000100010401860001000100010001008401000100010101830001 +00010201820001008400010001008b000100010001000100010001820100010401810201 +8f0102010200020002000200010201020182010201870102000200020102820200028a02 +010201000200020002008400020102008100018201000104018400010001008b00020002 +000100020102010289020102000200010002000200010101028201000183010201028202 +01028f020102010002010002000102010001008400010200018401000100010401010086 +010001000100010501870001000100010002870201020100020102940201020100020002 +000102000200010002000100010801870002000100010001010101028a01000100020002 +010001028502010201020101018300010001860100010001000101018600010200020102 +860201000102010287020100010001020184010001000102018300010001840100010001 +020183000100010301950201020102010200020102010001000100010200020103018400 +01020002 +810001820100018401000100010201810001840100010001080101000101810001060181 +000182010001860100010001000104018100010201830001000102018900010001000100 +010001820100010801850001000100010501010002018d00010001000100010001000100 +018201000102018300010001830100010081000102018100010101810001010181000102 +018100018201000102019100010001000100010001000100010001000104018100010301 +820001008300010001820100018801000100010001000108018900010001000100010001 +030101008201000101018300010001010101008201000101010100030183000100010801 +880001000100010001028602000201020102810201850100010200028702010201020102 +01820102010101010281010289020002010001000200028402000201008100018a010001 +000100010001000184010002010281020184010200010083000100010101810201020190 +00010002000200010001000201020001008400020001028102008d000200010001000100 +02000100018301000100820001008500010001000105018b000100010001000100010201 +8801020001000102000184010200020087000201020001020001008e0100010001000100 +010001000100018201020183010201028402010001028602010001020102820201008100 +02810200870001000100010001060186000100010200028e020100010001020100010200 +010001010183000102010201810001020181000104018100018601000100010001870100 +01000200020101018102010101830201020104018900020100010201020102 +0201810001820100018401000100010a0183000100018401000100018401000100018201 +000102018100010301810001040181000102018500010001000186010001000100010801 +8100018e0100010001000100010001000100018301000100810001840100010001090185 +000100010001820100010501890001000100010001000102010100830100010083000100 +010201010086010001000100010701870001000100010001820100010401810001010181 +000182010001060186000100010001008100010301840001000100830001000103018300 +0100010301840001000100830001000186010001000100018a0100010001000100010001 +0b0186020100010201028102018201000284020102010286020102010201028502010201 +0001810100810002820201028302010001840102000201090183000100018a0100020002 +000100010201810102890200020001000100020085000201020102820201028102010101 +010282000201840100010001030182020001840102010001820100018101008200010081 +000103018900010001000100010001020101028301020100890002000100010201020183 +010201028402000200028202000285020102010201030186000100010001000100880100 +010200010200028702010201000200018301020102850200020102010301840001000100 +0200010101008501020001000101018b0001000201020100010001028902010201000100 +0100010201810001050181000106018100018b0100010001000102000100018f01000102 +010201020102010001020002 +820100010a01810001840100010001820100010101810001820100010401810001020101 +008201000101018100010201850001000100018401000100010b01890001000100010001 +000184010001000105018100010601010003018900010001000100010001040181000101 +018500010001000109018100011601870001000100010001070101000201830001000101 +018100018101008200010085000100010001010182000100890001000100010001000106 +01830001000101018500010001000101018100010401810001820100010a0101008d0100 +01000100010001020102010201020101010283000100018101028b020002000200010200 +010201010103028401020001008600020102000100020088010001000100010001820100 +0103018300020102820201008700010001000200028102018d0100010001000200020001 +00010283020002008c000200010001020001000100028402000200028202000182010001 +02018100018a0100010001000100010001030184000200010086000200010201028f0201 +020001020100020100020002010282020100890001000100010001000106010102840002 +00020083000201028a020002010002010200020081000102018900010001000100010001 +060199020100020102010002000201020002010200020100010001020102018100018801 +000100010001000102018100018201020102018100018101029502010200020100010001 +0001020002000201000102010101810201 +030181000184010001000182010001040181000184010001000107018100010201810001 +040183000100018401000100010801810001880100010001000100018601000100010001 +060181000101018300010001020183000100018201000188010001000100010001010185 +000100010001010181000108018c00010001000100010001000100010088010001000100 +010001820100018301000100830001000105018900010001000100010001040181000101 +018200010081000102010100860100010001000101010100080182000100840001000100 +810001860100010001000101018100010101010086010001000100018401000100018301 +000100010002018100010401820001028102008a00020002000200010201008500010201 +020183010201028402010201028302010201810100840002000200860002000100010083 +000200010301860001000100010084000100010283020002008100018101028202010285 +020102000200890002000100020102000282020102840201020002820200028902000100 +010201000200830002000281020186010001000100018201000103018100010301860001 +00010001008100018201020186010001000200028b020102010200010002000200850001 +000200010701870001000100010002840201020102880201020100020002010101810001 +010101008502000200020107018400010001009700010201020100010001020102000100 +020002010201000201028100018401000100010701850001000100018401000100019e01 +020100010201020102010001020102010200020002010001000102000100 +010181000104018100018401000100018201000102018100010601830001000101018300 +01000182010001010181000106018100018401000100018a010001000100010001000106 +018100010201830001000101018100010201880001000100010001008100018201000106 +018100010401810001010181000186010001000100010101870001000100010001030181 +000101018100010101850001000100010101840001000100850001000100010501870001 +000100010001880100010001000100018201000103018100010301810001020102008801 +000100010001000102018300010001030183000100010101820001008100010301010003 +018100010501810001010101008201000103018400020102018201020182010201040185 +020102010201810102840201020102890201020002010002010288020002000200010201 +82010001010181000106018400010001028102018b010200020001000100020002840201 +0201028a0201000201020001020100820001028302010200850002000100010201870001 +0002010001000100010187000100010001000101018300010001040183020102008e0002 +000100010002000201000200028a02010002000201000201028902010001000100010001 +060186020001000100018801020100010001000285020002000200830002010285020100 +01000184010001000106018d000200020102010200020001020101018202000287020102 +010200020103018300010001820100018201000102018502010201000188010001000100 +0100010101930201000100010201020002010201020102000200 +010183000100018201000102018100010a01830001000183010001008500010001000102 +018100010401830001000182010001010185000100010001060181000186010001000100 +010201810001010185000100010001820100010d01810001840100010001010186000100 +010001008100010201830001000105018100010301820001008100018201000101018300 +010001820100018201000106018900010001000100010001030183000100018201000103 +0181000105018100018a0100010001000100010001040181000103010100820100018101 +000100030187000100010001000184010001000104018100018601000100010001010181 +000190010001000100010002010201020102010283020002008500010002010282020102 +860201020102010282020102010282000102810200820001028702010201000200010101 +810001010183000100018201000101018502010002000202028101028202010287020100 +01000200028802010001000201020001008d020100010002010002010200010083000102 +010101820002010401810001050188000100010001000100850001000102018201020188 +01020100020102010084000100020101018102008100028802000100020001000103018c +000100010001000200010201028402010200028e02000200010201020102010002010285 +02010001000187010001000100010085000100010001010183000200028e020102010001 +000102000100010002820201028102018601000100010001040186000201020102018201 +000102018f0201000100010200020002010001000101018902000201020102010201 +01018100010a018100018401000100018601000100010001020183000100010301810001 +820100010501810001840100010001040181000101018100018201000101018100010201 +870001000100010001060189000100010001000100018201000103018100010301810001 +030181000107018100010301810001010183000100010101810001010185000100010001 +0101810001030187000100010001000102018b0001000100010001000100010201850001 +000100010101010001010100820100010701820001008300010001010183000100010201 +850001000100010201810001060181000183010001008400010001008100010901810001 +0601840201020002820201028a0201020100010002000201850102010201028202010284 +020002010084000100010286020100010002008200010281020107018100010101840001 +0201028102008a00010002000200010001008d0001000200020102000100010001010181 +020183010201008200010282020102810201880100010201000201008500010001000101 +01870001000100010001070101008b010001000200010001020102810201900102010002 +000200010201000200020002810201010189000100010001000100018101029102010001 +000201000100010002000200010001008402010200028302010001060102000301850200 +010001029002010001000102010002010201000100020102880102010201020102010101 +8a0001000200020102010201020189000200020002010001028102018101028a02010200 +0201000100010085000100010001 +040181000184010001000184010001000182010001060181000182010001820100018101 +008100010201810001030101000301810001020183000100010101810001020183000100 +010101810001040185000100010001840100010001060185000100010001810100810001 +010183000100010101830001000101018400010001008100010601850001000100018601 +000100010001020185000100010001820100018701000100010001000100830100010083 +000100010701820001008100010e01870001000100010001060189000100010001000100 +010101880001000100010001008500010001000103018102008300010001880100010001 +00010001010181000102018700010001000100018a010001020102010201000102010102 +840002010200810002860201020102010285020002000100860002000100010283020102 +010301840001000100830001000101018500020001020183010201028202010282020102 +840201020102820201028202010282020002010201008102018601020001000200830002 +000185010200010001820100018801000100010001000105018700010001000100010101 +010281010281020185010201000102820201008100010201820201028102008400020002 +018a01000100010001000100010301860002000200010294020002010002000200020001 +020102000102000201040183000100010301010083010002018c01000100010002010201 +000102870200020100010201820102010101940201020001020102010200020102010201 +0201000184010002000286020102010200018401000100018e0100020102010201020102 +00020102 +810001840100010001820100010701810001840100010001820100010101810001820100 +010401810001840100010001040181000101018100010201850001000100018201000104 +018700010001000100010801850001000100018101008100018401000100010301870001 +000100010001030181000101018100010201870001000100010001050181000101018100 +018101008100010401810001070181000108018900010001000100010001020186000100 +010001008100018601000100010001820100010301840001000100810001070101008101 +008100010501810001820100010101010084010001020102018100010b0181000101018c +000100010001000102010200028902010200010201020102830201020085000200020002 +830201020083000200028402010200028202000285020102010001010183000100018201 +000101018400010001008c00020001000100020002000200840002000102880201020002 +000102010201890001000102000102010085000100020002820201020202810001010181 +000103018700010001000100010401890201000200010002000181010282020102810201 +020189000100010001000100018301000102810201070187000100010001000187010001 +02010200028402000201028b020102010002000200020001070181000104018600020001 +020102810201880100020100010002008200010083000201028402010201029002000201 +0201020102010200020002010281020101018d020102010001020002000201020101018e +020102000200020100010200020002 +810001050181000103018300010001020183000100018401000100010401820001008100 +010201810001020102008601000100010001820100010601850001000100010601810001 +900100010001000100010001000100010001080181000105018100018301000100830001 +000101010200030104008401000100010101810001830100010087000100010001000101 +018100018401000100010101840001000100830001000105018100010101010004018100 +010501850001000100018401000100010301810001890100010001000100010083000100 +010101010003018100010101820001008300020102810201820100010301010082010001 +010182000100830001000105010100830200020182010002810201880102010201020102 +018301000102820201028102010101820001028102008400020001008900010002000102 +010001020181000101018700010001000200028702000200010001028202010282020001 +82010201820102018401000100028202000283020102008300020102820201028a020100 +020102010200010081000182010001010187000100010001000102018200010001008701 +020100020001020102850100020001028202010087000200010002000286020102010002 +000100830100010083000100010501010283010001028502010201000101018b00020001 +02000200010001028102010301830001000104018c000100010001000100020002018201 +000181010284020102000286020002000201028102010101880201000102010201028102 +018d01020102010001000200020100010101960201020002010001020002000201020102 +010201020102 +820100018401000100010201830001000184010001000105018100010201830001000105 +018300010001840100010001060185000100010001840100010001040189000100010001 +000100018801000100010001000106018800010001000100010081000101018b00010001 +000100010001000103018100010301810001050184000100010003000201840001000100 +830001000182010001020183000100010601870001000100010001010181000182010001 +810100810001010101000401810001010183000100010101840001000100870001000100 +0100010b01830001000101018b0201020100010002000200018101008100010101830001 +000103018100018601000100010001010185000201020102830200020182010201820100 +028202010202028301000102820201028602000201000100820001028102008500020002 +000281020106018700010001000100018601000100010002830201000182010201850102 +000102018601020102000201870102000100020002830200020083000200028502010002 +00028102018b010200010001000100010001030101008201000103018102018501020001 +000286020100020001028802010201020001000186010002000200028202010281020102 +018800010001000100010001008101028202010289020102010200010200028702000200 +0200010001000101810001030181000102018200010201028100018a0102010002000200 +020102830201000102010102010181020187010200020002010286020002000200018601 +0201000100019e0100020102010201000102000200020100010201020102000201000100 +0100810002 +840100010001820100018201000104018100010201810001820100010201850001000100 +018101008100010101810001020181000182010001820100018201000106018300010001 +8c0100010001000100010001000102018100010301830001000184010001000105018200 +010081000182010001840100010001030186000100010001008100018201000101018700 +010001000100010701020002018700010001000100018201000103018700010001000100 +010601880001000100010001008500010001000103018100010101010088010001000100 +010001080185000100010001820100018201000101010100850200020002008a00010001 +020102000100010101010002018400010001008900010001000100010001010101028301 +020102850201020102018201020183010201008100028402010201028702000200010001 +008400010002008800010002010200020103018100010601810200870001000200020002 +810200010089010002010200010201008c00010002010002010002010001840102010200 +8b000200010002000100010200810001070186000100010001008c000100010001020100 +01020102010201018102018201020086000200010001000100820201028a020102000100 +010001000107018502010200020101010100880100020001000100018a01020002000102 +010002008500010001000105018900020002010200020102880201020002000100010201 +810001010182020002860201020002000281020101018802010200020102010282020002 +8b02010200020002010001020101018e0201020100010001020001000201028302010001 + +050181000103018300010001020183000100018401000100011301810001040183000100 +018a01000100010001000100010b01810001010183000100010401890001000100010001 +000101010100820100010101810001030181000101018600010001000100810001820100 +010101810001030189000100010001000100010101810001050182000100850001000100 +010101810001010186000100010001008100010a01810001010101000101830001000108 +01840001000100850001000100010b018800020102010201000101018102018301000100 +810001820100010101870001000100010001060184000100010083000200028602010201 +020102810201850102010200028202000283020102018701020002010200028502010200 +010284020102010283020102010701860001000100010082000102830201020183010001 +00810001850102000200028202010282020102850201020002008b000200010001000200 +01020101018402010200028b0201000100010001000100010c018b020100020002000102 +0100028102010101010281010282020102810200890001000200020001000103018b0001 +000100010001000102018801020102000102010284020102010282020001810102830201 +0001020183000100010401010083020001028d0200020102000102000201020102840200 +02010081000282020102850201020102018c010201020102010200020002010401870201 +000100010001990100010001020002000102010201020102010201020002010200 +010183000100010201810001840100010001840100010001050183000100018601000100 +010001020181000182010001820100010301870001000100010001820100010101810001 +020185000100010001840100010001010183000100018601000100010001030187000100 +01000100018201000181010081000101018700010001000100010b018700010001000100 +010501820001000100020181000101018100010101810001860100010001000101018300 +010001060184000100010001008301000100830001000109010100840100010001040181 +00010101870001000100010001020189020001020100010001028a020102010200020002 +000184010001000108010100840100010001060101028101028302010201810102010281 +010284020102010284020102000285020102010001010183000102018101008100028202 +010281020111018e02000100020001000102010200010281020001008101008300010201 +810100810001020181020182010200950001000100020001000201020001020100010001 +000101010100880100010001000100010101030201019002010201000102010201000200 +020001008500020001000182010201020187000100010001000103018402010001028c02 +0102000102000200010201008c0001020001000100010002000101018100010401820002 +019101000201020002000100010001000201000181010285020001020102860201020102 +010287020100010201020101018e02000200020100010200020102010293020102000201 +000100010001020002000201000104010000 +03018100018401000100010801850001000100010a018100018201000101018100018201 +000102018100010201810001020183000100010201810001060185000100010001040189 +000100010001000100010101830001000181010003000201830001000101018100010101 +890001000100010001000101018100010301810001010183000100010101890001000100 +010001000101018300010001060183000100010101840001000100850001000100010501 +810001020101000101850001000100010401870001000100010001820100010301810001 +020186020002000200028202010086000200020002008600020102010001010181000187 +010001000100010081000107018200010089000102010002010200028302010201850100 +0100010283020102018101028c0201020100020002010002000287020102000200010281 +020105018800010001000100010085000102010201030101008701000100020102010201 +81020081000101018102008f000100010001000201000201020001028602000200020001 +050101008401000100010501820001028802000100020001020184010201020181010287 +020100020102000282020102880200020002000102010501850001000100010101810201 +83010201028f0201020001000102000102010200010283020102018201000104018d0001 +020100020002000200020001010181000182010001830100020181010201028101028d02 +010201000201020102010001028202010285020002010201810102880201000102000100 +018201000194010201020102010200020002010201020102010201 +010181000105018300010001840100010001050183000100018401000100018501000100 +010083000100010401010004018100010101810001040185000100010001840100010001 +010183000100018401000100010501870001000100010001080181000104018100010101 +010082010001010181000105018300010001010181000103018600010001000100810001 +840100010001050101008801000100010001000108018400010001000100020101008101 +000100020186000100010001008100010801850001000100010101860201020002000185 +010002010200850001020102018501000100010083000100010a01010086010001000100 +010401840201020102840201020002810201010101028b01020001020102010002000284 +02010002008400020102008100018101020202820100010d018c02010001000100010002 +010201030184000100020081000101018300010001810102820200010101010285010002 +000201850100010200018801000100010001000104018900010001000100010001020184 +020102000290020001020100020102000102010002010091000100020001000100010001 +000100010001010186000102010001028502010200020081000282020100010084020102 +000289020100020001000100010101810001010182000201020181000101010102820100 +019101020002010201000102000200010002010286020102000200028502000200020101 +018302010002860200020001000182010001010190020102000201000100010200020102 +0100810001840102010001 +830001000184010001000108018300010001860100010001000186010001000100010201 +810001820100018401000100010101030002018500010001000182010001060185000100 +010001040189000100010001000100010801870001000100010001010101008801000100 +010001000102018100010301810001820100018a01000100010001000100010301810001 +02018100010101020003018100010a018700010001000100010401830001000101018100 +0102018100010801890001000100010001000103018402000200028a0201000100010201 +000201910102000100010001020001000102000100018501000100010002000401860001 +00010001008300010002810201010101028b010002000100010201020102820201020202 +830002000101010102810102810200810002010282010200840002010001040184000100 +010089000100010002000102018a01000100010001000100018201000101010100890201 +02000100020102008c000200020001000200010201000100010205018500010001000101 +01830001000101018c000100010201000201000200010101020085020001000100020082 +0201020202810102830201020101018c0001000100010001000102010283020102010201 +820002018c01000200010001000201000201820100010401010001018402000100029102 +010200010001000100020002010200020183010201028102010101010285000200010002 +8b0200020102000201000100028102010101910201020102010001000102000200020102 +010201810001850102010200010201 +090181000184010001000186010001000100010501810001020183000100010301850001 +000100018201000182010001820100010401870001000100010001820100010101860001 +000100010001000a01020086010001000100010501810001020181000103018500010001 +000184010001000103018300010001030181000101018600010001000100820001008300 +01000108018900010001000100010001050182000100820001008100018201000106018b +000100010001000100010001090184020102010283020001028602010201020001820102 +008600020002000200870002010200020002820200018401000100018101008400010001 +008100010501810001010182020102840201020102020285010001000200830002010282 +020102870200020102000100840001000102810201850102000100028102010201810001 +0a0181020184010200010082000102810201040181000183010002018b01000100020102 +010002000282020102870201000201000100810001010186000100010001008700010001 +000100010301810001010101000201820200028102018401020102018301020002910201 +000200020001000100020002000100010101810001050181000283020100018801020002 +000100020001000102830102000289020102000201000100010301840001000201020183 +000100018601020102010002810200010086010002010001028202000283020102018601 +02010201020189010002000201020100028d020102000200020002010001020101010102 +01018f00020002010001020102010201020102 +810001840100010001840100010001840100010001020181000102018100018201000101 +01810001050181000102018100010a018100018201000101018500010001000181010001 +00820100010801890001000100010001000104018100010101850001000100018a010001 +000100010001000105010100860100010001000182010001010183000100018601000100 +010001010101000501030001018300010001060189000100010001000100010301010085 +01000100010083000100010501810001010101008201000103018400010201028a020102 +010201020100020188010002000200020102810201010184000200010284020100020182 +010001020181000182010001010181000101018300010001850100010001028302010201 +8301020002840201020102820200028c0200020002000100010002000282020102820201 +008100028202010281020005000501820001008300010001830102010201028b00010200 +010001000200010085000102010001010101008201000102018a00020001000102000200 +010101010083020102010b01870001000100010001840102010002900201000200010201 +020100020102000100010081020086000201000201028502010201000101010100820100 +01010101028201000283020001028f020102010002000100010201000100028102018201 +000103018100010101880001000100010201028b02000100020001020002000283020102 +018a01020102000200010200028b02010201020102010201020102018302000100930002 +000100020102010002000102000200010201010183020002008600010001000102 +810001840100010001030181000102018300010001020181000104018100018601000100 +010001040181000181010083000100010201810001010189000100010001000100010801 +030084010001000105018100018601000100010001010181000106010200060187000100 +010001000101018100010401850001000100010701830001000186010001000100010601 +010001010100840100010001010183000100010101010084010001000103018100018201 +00010101830001000101018100010401830001000284020102000183010200028c020102 +000200020100010201028102008b00010002000201020100010083000100010201830001 +000101018300010001820100010301810001020101028301020102820200028402010001 +028402010201028202010288020102010002010200810001840102000102840201020100 +83000102010e018500010002000285020001020102820200010101840201020001820100 +0182010201830100010088000100010002010200010081010001008101028102008f0001 +000100010001000100010001000104018100010101860002000100020101018300020102 +850200020001000100830201020102010100820200018101008100010c01830002000284 +02010001028c020102000100010002000200028302010001040181000101018f00010001 +0001000201020102010201008a0001000100020002010002840201020102810201010184 +020102010288020100020002000102810201010185020102010200850001000100018401 +000100018501000200020101018600010201000102 +050181000182010001010181000102018100018401000100018401000100010401810001 +840100010001010183000100010201020002018100010a01870001000100010001060187 +0001000100010001080189000100010001000100018101008100018a0100010001000100 +01000101018300010001010101000d010100020181000103010100820100010101810001 +020187000100010001000182010001030182000100890001000100010001000101018100 +011401820200028802000201020102010081000288020100020001000100860001000100 +010086000200010200028502010001000101010300810100810001010183000100010401 +89020102010002000201028d020001000102000102010002000286020102010001008800 +020001020002010284020102010002008401000100010401880001000200010001008a00 +0100020002000201020081000282020100820001000100850201020001008b0001000100 +010001000102018101028202000283020102010d01870001000102000102810201010101 +020301830200010281020102018100018a01000100020002000100018401020100018601 +000100010001010181020083000201028802000200010001020085000102010201050182 +000100820001008100010101810001810102010289010001000200010002000100870102 +010002000201830102010282020102890200020102010201020184010201020189010201 +000100010001008400020002018101020102950102010201000102000201020102010200 +0201000102 +840100010001050181000184010001000105018500010001000184010001000102018400 +010001000100020183000100010301810001020187000100010001000106018100018601 +000100010001060189000100010001000100010301810001020183000100010301810001 +030183000100010301810001050183000100010401810001020102008401000100010301 +010002018100010401890001000100010001000106018800010001000100010081000103 +018a00010001000100010001008500010002000187010201020102010281020082000201 +880102000201020001008600020002000200840002000100840002000201810100830001 +000103010100820100010801860001000100020082000102810201010101028101028402 +010201028502000200010286020102010002008500020002000281020102018300010001 +070182020102820201028f02000201020100010001000200020102820201028602010200 +010001010181000102018300020102830201020002008202000284020001000101018500 +010001000101018300010001010181020188010201000100020002810201810100820001 +00030001018e000200010002010200010002000201840100010001050101028501020001 +0201030102008b0102000100010002000200028102010501810001010186000100020002 +018501020002000185010002000201020182020002010284010201020185010201020102 +840200020001840102010201020198020102010201020001000102000200020002010201 +02010201010188000102010201000102 +820100018401000100018201000104018100018401000100010501850001000100018101 +0081000182010001020101000201810001820100010c0187000100010001000102018100 +010101850001000100018101008100010401810001010183000100010101810001840100 +010001010183000100018101008100010301860001000100010083000100018201000105 +018500010001000102010100020183000100010401870001000100010001060189000100 +0100010001000102018100010401810001820100010d018a02010201020102010200028c +020102000201000100020002008200010288020002000102000200860001000200010082 +00010002000d018100018301020002840201020002870201000100010002820200028202 +010202028200020083000200020302840100020102830201020081000102018100010101 +820001028102010101810002810201840100020002010281010288020102000100020002 +820201008600010001000200830001000101010100850100020001008100020202850001 +000100010501810001020187000100020001020184010200010201020101810001820102 +0101010100880100010201020100018101028b0201000100010001000100010301830001 +000101018300010200930002000102010002010001000201020102000100010083020002 +018601000100010201850102000200010101810200020087010002000102010201028301 +0201028402000200028f020002000200020102010201020100018701000100010201029a +020102010201020100010001020102010201020102000201020100 +030181000184010001000186010001000100010201810001880100010001000100010301 +810001010181000183010001008300010001050183000100010101850001000100010101 +8100010201830001000101018300010001040181000101018d0001000100010001000100 +010001060183000100018201000101018200010083000100010301810001050181000101 +010200020184000100010001008201000103010200050181000101010100840100010001 +0a010100010182000100830001000103018b00020001000100010001000101018d020102 +010201000201020002000288020100010001020102840201000102860201000102010085 +00010200020101018100010201820001008100010a018600020002000100810001010101 +020201030281000286020100020102008400020002008300020001010183000100028602 +010200010001020101028101028202010284020102010281020183010001028502010200 +020083000100020102870002000102000102880201000200020001008300010001810100 +020001028100010f01820201028102018b01020100020102000102000181010083000100 +01010181000101018a000100010002000200020106018100010301810001010185000100 +010001010181020082000102840201020102840200020002840201020102930200020002 +000100010002000200020002010002860200020102000201028601000200020002840201 +0201028f02010201020102000200020100010201850102010201028f0200020100010200 +0200020102010201010185020002000201820100018301000102 +010181000107018300010001010101000601810001010182000100850001000100010601 +870001000100010001030181000104018300010001020101000301830001000102018b00 +010001000100010001000106018100010101860001000100010001000301810001030181 +000184010001000101010100010181000101018400010001000100900100010001000100 +01000100010001000104018100010101810001030101008d010001000100010001000100 +010081000101018100018201000186010001020102010301810001020181000183010201 +028502010201020181010201020100860102000100010087000200020001000183010001 +0083000200028202010083000100010f018400010001028e020102000201000100010002 +000201820102018b01000200010002010002000182010200810002850201000100018301 +000201020183000100010301810201810102830201020081000283020100018101028402 +000102010201820001028502000200010085000100020002820201028202010083000100 +010201830201020101018200010095000100010001000100010001020102010201000100 +0182010201020101008c0100010001000100010201020102010202890001000100010001 +000105018200020102018500020002000102018302000201020183020100010101880200 +020001000102018701020001000201028b02010200010201020001000101010202010186 +000102010200028d0201020102010201020002000201010101008b010002000200020100 +0100018701000200010001028202000102018300020001840100010200 +810001010181000186010001000100010301810001010181000184010001000182010001 +090183000100018201000105018300010001030185000100010001020183000100010101 +870001000100010001820100010701810001860100010001000101018100010101810001 +010181000102018a00010001000100010001008100010101810001020101008301000100 +8300010001070102000301830001000182010001010189000100010001000100010d0102 +008f01000100010001000201020102010201010182000100810001020182000201010101 +028501020102010081000289020002010200020002008400020001008500020102010282 +020100820002010101810001010183000100010801010087010001020100020081000102 +010102810100810002820201028502010200010282020001810102820200018201000202 +028501020100010002000102810102820201028202010282020102810201010184000201 +020102010202840001000102830200010084000200020086000200010201008300020002 +010283000100018101008500010201000103018100010501010282010201040181020184 +01000102008100018701000200020001028c020102000200010002000200020102810001 +090187020100010001000284020100020001008202000103018300010201020184000201 +020188010001000100010001010182000100010083010200010101810201820100028402 +010200020202810102a40201020102010200020002000200020100020102000102010201 +020100010201020102000291020102010200020102000201020102000201 +010181000107018200010085000100010001090181000184010001000182010001010181 +000183010001000200820100018101008300010001020181000101018300010001840100 +0100010a0187000100010001000106018b00010001000100010001000181010081000181 +0100010084010001000182010001010187000100010001000105018b0001000100010001 +000100018101008700010001000100010c01860001000100010088000100010001000100 +810001060190000201020102000201020001000100010001000201010285010201020102 +020289010200020100010002008600010001000200810001820102008400010200028102 +008100011301870001020102010001890100020002000201000284020102010285020102 +000100840002000100850001000100028502010001000103010100830100010082000102 +020201018202000101018500020001000186010002000100018201000181010082000201 +05018200010081000102018300020001010181000286020002010200018a010001000100 +01000200028b0201020102010002000100010101010282010001020101028c0100010002 +0002000200020102010281000101018500010001000101018402010201028c0200020002 +000200020001000101018500020102000102018300020102910201020102000201000200 +02000200010002840201020001840100020001010102028d000102010201000200020102 +010201028201020103010102840001000100910002000201020100020001020102010002 +018101028902010001020002000200810001 +820100010101850001000100010801830001000186010001000100010201810001860100 +010001000104010100010181000101018100018401000100010201830001000108018100 +018601000100010001050181000188010001000100010001070183000100010101810001 +040187000100010001000102018100018101008700010001000100010901810001820100 +018601000100010001020181000101018300010001080181000103018400010001008300 +010002810200850002010201028302000200010081010001008b01000100010201020102 +0102820200018c0102000200010001020102000283020102018601000100010001830100 +01028202000102018500010001000104018100010101010002018400010001008100028a +020102010002000102000287020102010002000281020183010201008700020002000100 +010101830200010001000302820102018301000201050185000100010001050101020201 +810001010183020001008300010001040101008201000101018100010101020281010282 +02000186010001020001028a020102010201000201000105018e00020100010001000100 +020001000181010203028701020002000200010501850001000201008600010001000102 +820200018901000102000100020102850201020102018201000281020101018b02010002 +000201020102000184010001020184010201000183010200028402010201028402010201 +028402000201028502000200010283020100020202820102019d01020102000200020100 +01000200020102010200020100010200020002018301000200 +020183000100010401810001840100010001040181000183010001008300010001030181 +000101018d00010001000100010001000100010201810001090185000100010001820100 +010301850001000100018301000100810001040181000101018e00010001000100010001 +000100010089000100010001000100010101850001000100018201000103010100810100 +890001000100010001000103018100010101810001060181000103018100010101850001 +00010001860100010001000101018100028f020102000201020002000200020102010201 +820001000100020101028501020002010202028a01020002000200020001008600020001 +0001028a0201020002010200010200010009018100010101810001020187000100010002 +000201028301020102840201000102850200010201028302000200880002000102000200 +018201020185010001000100820001000300810100820001028102010301810001050181 +000181010287020102000100010083000100010201810001010182000100010001018400 +010200018401000100020102820102018101020102810102870201020102010002830201 +020103018602000100010001030102008201000101018200020082000100820001028102 +01010183000100018201000101018a020001020002010200010001008402000100028302 +010201830102010202028300020102820200020102810102810201810100020001028f01 +000100010002010200020100020002820200028202010286020102010200028702000201 +020102010101830002000184010001000101018102010301840201020001820100018601 +02010001000181010001008302010201 +820100010401830001000102018100018101000100820100010701810001880100010001 +000100018401000100010101870001000100010001820100010201810001840100010001 +01018100018101008100018401000100010101810001860100010001000101018d000100 +010001000100010001000106010100010183000100010301810001030183000100010301 +810001030184000100010086000100010001008200010083000100018201000102018200 +0100830001000101018100010501810001030183020002008b0001000100010201020102 +018801020100020001000105018100018401020102018e01020102010201000100020002 +010285020102010200850002000200028302000200820002018601000100010001040183 +000100010101010082010001020187020100020002000202020201820201028602010001 +000200840002000200870002000100010001810102820201028302010201840100020100 +850001020102010601850001000100010201810201810102840201020001010182000100 +860001000100010084000100010086000201000102018101028202010201028100028302 +010200810002820201028102008500020002000101018100010201870200010001000100 +010084010001000106018700010201000100010401810001820100010201820001008200 +010082000201020185000100010001810102860200020102010282020102870201000200 +010001020184000201000101018b00010002010001000102010289020001000201000200 +018101028402010200018301020001820100010201810001010186000102000200028c02 +00020002010201020102000187010201020100010082000100 +030183000100010101810001820100010701850001000100018601000100010001820100 +010f01830001000109018300010001030181000186010001000100010401870001000100 +010001050181000102018700010001000100010201810001020183000100010101830001 +000185010001000100810001010183000100010b018100010201810001820100010f0183 +000100010201850001020102008200010086000201000100018c01020102010201020001 +0001008500010001000101010202850102010200028a0201020102010201000200890001 +000201020100010002008202000183010200010b01840001000100880001000100010001 +028202010282020102810201010101028101028602000200010200830002010281020083 +000100010201010286010200020002000300830200010282020001050181000104018100 +010201810201840100010001840100010001820100010501010002018400010002010101 +010281010201028101028202010282020102830201020181010287020102010002000185 +010001000201020185000100010201020187000100010001000101018102010301830001 +000101018100010101840200010201810100810001010101008702010001000100018101 +028602000201000102870200010201000201020181000101018100010101880001000100 +010002018101028202010287020002000102000285020102010001850100020002010301 +810001860100010001000284020002000297020102010001020100010201020100010001 +000102010200 +010183000100010101830001000184010001000186010001000100018401000100010901 +810001860100010001000184010001000101018500010001000181010001000101850001 +000100018401000100010301810001810100830001000106018700010001000100010201 +810001050183000100010101890001000100010001000103018200010081000102018300 +010001030186000100010001008200010005000101010083010001000200810100030082 +0100010601830201020183010200028102018f0100020102010200020102010201020102 +018100018201000103018402010201029202010201020102000200010002010002000100 +850001020100018501000102000281020108018500010001000103010100040181020181 +010283020001020102810001010181000185010200020001870100010001000200830001 +000282020102820201028102010301010083010200028502010001000104018102010101 +010084010001000103010100860100010200020186010001000100018101008100018301 +000201820100018301020102010281010282020102010281000282020102860200020002 +000105010100840100010001830100010082000201820102010601870001020100010001 +010183020102010101810001810100810001050181000182010001010181000101018100 +028402010201028202010283020102010101850001000100018201000109018302000102 +820201028202010202028101028e02010201020002000200020002000184010001020102 +018102019a0102010201000102010201020100010200020002010002000100010101 +810001030181000182010001010183000100018201000104018100010201810001860100 +010001000102018100010201830001000103010100040181000101018100010201830001 +00018601000100010001060187000100010001000106018b000100010001000100010001 +070181000105018500010001000102018100010401830001000105018300010001810100 +010002018500010001000108018100010901010202000101010083010001008100028102 +018101028902010201020100010001830100010085000100010002880201020102000201 +028b020102000200020001020102820201008b0002000100010200010201028102010a01 +810001010101008901000100010201020002820201028202010202028800010201020100 +020002008301000100810001830102010204020200860200010201020085000102010001 +060183020102018101028202010284020100010081000201028301000100020082010001 +830100010081000103018202000102018202010201028101028202000282020102010281 +010284020102010281020002008102010301840001000100810001030182000200010084 +010001000103018700010001000102010101840001000100010086020002000100010301 +880001000100010201028402010201028202000285020102010001030102008201000184 +0100010001840100010001010101028101028402000200028102019b0102010201020102 +010201020001020001000100010002010001000186010001020102010101850201020002 +000100030281000202020000 +010181000182010001030181000104018100018401000100010201810001010181000103 +018700010001000100010401810001050185000100010001040181000105018300010001 +86010001000100010501830001000184010001000105018a000100010001000100010001 +0083010001000300820100010301830001000181010002008a0100010001000100010001 +040181000101010200810100830001000182010001020181000102018100010401010086 +010001000102008800010200020001000202028601020102000201020101008201000103 +01840201020102020289010201000100020002008400020002008c000100020102010002 +000201028302010201040103008501000100010001000301830001000286020001020102 +018201020102010102840100020002810201830100010001008202010284020001020104 +018f00010001000200020100010001000102810201840102010201010185000100010002 +81020101010100820201028a020102000200010002000281020081000281020081000104 +010202810002010281010285020100020002820201028202010201028201000101018400 +010002000100820100010201820002010801850001020102010301850201000100010301 +83000200018a010200020001000201000182010001870100010201020002820201028902 +010201000100010001030181000102018100010401820001028302000201810102840201 +0201028c0201020102010201020001020182010201010189020102000100020002010501 +8202000102018302010001030185000200010001 +820100010301830001000101018100018201000104018100018601000100010001840100 +010001070187000100010001000181010083000100010201810001020101000201850001 +00010001080187000100010001000106018700010001000100010b018300010001070183 +000100010101830001000111018100010101810001010181000182010001090181000105 +018500010001020084000201020002008102008800010200020102000286020102000100 +0102018200010001000101820201028b0201000102010200010001028502010201000187 +010201000100020082000102820200028802000200010001000106018200010085000100 +010001020182020102820200010101810002010282010002850201020102000100850100 +0200010281020102018102018101008e0001020100010201020100020002010301010086 +020001000100028202010282020102810200880002010002010002008300020002820201 +020102810001820102010101810201010183020001020102810102010281000282020102 +850200010201028502000201020182010001010182020002810201050101028a01000100 +010001000100010101820201028202000282020102810201010102008101008800010002 +000100010282020001010183000200018501000201000202028101028502000201020103 +0181000104018100010101830201020183010001020102820102019b0102010001020100 +020102010201020102010200010200010002000101018102018401000100018401020001 +00870002010001000100860002010201000282020102 +020183000100010301810001820100010201850001000100010201810001040181000186 +010001000100018601000100010001020181000102018100018601000100010001070183 +000100018601000100010001050181000186010001000100010301810001030183000100 +018801000100010001000182010001860100010001000187010001000100010082000100 +8f000100010001000100010001000100010201010083010001008100010f018200010001 +0081010001008102008e0001020002010001020102010201028a02010201020102010001 +0081000101018100010201860201020102010202028100020102820001008b0002000100 +010002010201008400010001028502010201020101018200010002008201000101018100 +010401820001008300010001010184000102010288020100010002000100020083010002 +000200880200010001000100018201000183010201028102018901000100010001000200 +840001020102820200028b02000200010002010200010082000102830201000101018200 +010081000201020100820200028102018201020082000102010281000282020102010281 +010282020002820201028802010201000100010001008801000200010002000281020101 +010202830102010282020102820200028202010282020102890201020100010001000101 +010200840100010002010283010200028502010002010201028101028202010284020002 +010283020100018201000101010100840100010001030181020102018600010201020102 +83020102018f010201020102010201020102000100010701830001000182010201820100 +0102018300010001010101008401000100010201810001 +820100018201000101018300010001030181000102018100010201830001000186010001 +000100018401000100010201810001010181000182010001020181000103010100030181 +000184010001000106018700010001000100018201000103018100010101830001000101 +018300010001020101000101830001000105018200010081000182010001040181000103 +018300010001090183000100018201000182010001820100010301850001020102010401 +810001010101000101870002010200020100820001008b00010002010201020102010284 +020100010082000100030002018202000283020102018901020002000200020001010183 +020102008500020001020182010002820201020202820100010201810001030182000100 +870001000100010001020185000100020002820200018201020104018702010200010001 +008700020001000100010201810001010182020102880200010001000201028102018a01 +020102000100020001008300020102850201000100028102018301000100880002000200 +010002008200020083000201028102010101810201810102820201020102810102820201 +020102830102000282020002830201020101018100018e01020002000100020002000102 +010203028701020001000200028502010002000283020102018e01020001020100020002 +000102010288020002000200020002840200020102840200020002820201028202000201 +028100018401000100018201000101018500010001000101018100010101010281010284 +020102010286020002000200018501020100010281020101018100018601000100010001 +03018200020101018100010d0181000182010001 +810001030183000100010101850001000100018201000102018300010001090183000100 +018201000101018100010401810001820100018401000100010201810001010181000101 +018700010001000100010501810001020183000100010101810001010183000100010101 +810001820100010301850001000100010101810001050182000100830001000101010100 +820100010301010002010200820100010101810001020101000401010282000102010202 +018100018101000100020183000100020102010081010292020002010200020002000102 +000200020102010601810001920102000201000100020100010002010200020085000200 +020002830201020083000201020502820001008300010001810100010002010100850100 +010002018301020001010182020102810201010182000201880100010001000100018201 +020106018402010001008300010002820201028302010200860002000100010082000102 +010202010102810102830201020101018602010002000200810002820201020302830102 +000201028100020202850100010201028302010201810102010281000282020102820200 +028202010285020102010001810100820001028102018901020100020102000102820201 +028202010283020102018101028202010282020102830201020086000200010001028202 +01028a020100010002000200010283020100010101810002820200028202010282020002 +01028101028a020102010200010001000102018500020002000284020002010282020102 +840200020002840201020002840201020102830201020186010201000100010401810001 +03018100018401000100018801000100010001000186010001000100010001 +010183000100010301810001030181000102018100010201810001860100010001000182 +010001060181000186010001000100010201810001020184000100010081000102018100 +010601810001040181000181010087000100010001000101018100010101830001000181 +010083000100018201000106018100018701000100010001008100010301810001040101 +008201000101018800010001000100010081000181010002008101008500010001000202 +028501000200010001008601000100010001010181020001008902010001020102000201 +870102010201020102020282000100840001000100020083010001028602010201020002 +840201000102810200890001000201000100010085000200020002860200020102000101 +010100860100010001000105018202000102018100028202010281020084000201020102 +018400020001008400020001008800010001000100020102010202810102850201000201 +000100890200010002010002000282020100020087020001020100020083000201020102 +010083010002000200830200010281020101010102860100020001000202028101020102 +810102820201028202010282020002830201020182010001890102010002000100010001 +008101028302000201030188020100020001020002820201028302010201010184000100 +010001000102830102010283020102018301000200820001020b02880002000200010200 +028502010001000188010001020100020001010183020102018101028302000201830102 +010282020102020281010283020001029802010201020100010200020001020100010201 +00010200020102018100010a01 +810001030181000182010001010183000100010101810001840100010001070185000100 +010001840100010001040183000100018401000100018401000100010401010003018500 +010001000101010100860100010001000101018b00010001000100010001000104018100 +010301870001000100010001090184000100010089000100010001000100010401810001 +020181000103018300010001030101008a01020102010200020102018101000200010182 +00010087000100010201020001008b020002000100010201020102010281000284020102 +0001030103008701020002000200028702000200010201008700020002000100018b0102 +010002010001020100020202010181000103018300010001820100018401000100010201 +810001820102018401020102010101810201020183000200018401000100010a01010081 +010281020184010201020181010284020002000188010001000200020002820201028202 +010283020102018601000201000200830002010282020102830201000202028100028202 +000281020181010282020102030281000282020102010281010282020102850201020102 +010301850200010002018201000281020182010002010282000102820201028202010206 +028101028202010284020002000282020102830200020103018100018201000181010289 +020001020002000200020302920002000200020001020002000100020102000183010002 +010101850200020001028202010281020185010201020102830201020181010204020200 +010285000100010201820100018801000100010001000101019002010201020100010200 +02010001000102 +020185000100010001010183000100010101810001070183000100018201000106018300 +0100018401000100010d0181000184010001000101018b00010001000100010001000188 +010001000100010001050183000100010201830001000101018300010001030184000100 +010081000186010001000100010401810001040181000102010200840100010001010183 +0001000103018e0001000100020102000102010201000100860100010001000107010102 +870102010201020100830002000288020002010200020002860200010001000188010001 +000100020102810201010101028b00020002000100010200010083000200028302000201 +830102010281020183010002010101010002018300010001060181020104010102010181 +020102018102018101008100010201840001000100810001040182020102820201028202 +010283020001008900010001000200020001830102010282020102860200010001000181 +010085000102000102820201028802000200010002000281020086000201020001028202 +010001008202000201028101020102810102820200028202010282020102840200010201 +810100810002030284000100010081000281020083000200028202010282020102820201 +020402810002820201028102018901000200010001000102010281010282020102010283 +000102008100028302010002050287000200020002000181010001008101028202000182 +010201830102000185010200010201820102018301020002840201020102870201020100 +02000186010002010200019f010201020100020100010200020102010200020001000102 +01000102000200010501 +840100010001030181000103018100010201850001000100010501850001000100018201 +000104018100010401850001000100010101830001000101018100010201010004018300 +010001080187000100010001000104018300010001010189000100010001000100010401 +810001060185000100010001860100010001000182010001020102008401000100010401 +010082010001820100018a01000102000201000201028102010301840001000100040083 +020102008600010001000201830102010284020102010285020102010201010184000100 +010002008402000200020202890102010002000201000184010201020182010200850002 +000201028202000285020102010001050181000106010102820102010201810201060181 +0201030183000100010a018202010283020102018101028202010283020102018f010002 +000100010200010002000201028102018201000203020100830100020083000200020302 +840100010002870201020100020001850102000200020102810102020283000200028202 +010282020102850201020102010101840200020001020181020181010282020102850200 +020001028102018301020102040281010285020100020001860102000102000282020002 +8202010202028101028202000289020001000200020102018101020202030102028b0102 +000200010002000200028402010200028102018301020002030283010201020202900102 +01020100020100010002010201000201028b010201020102010201000102940200020002 +00020102010201020102000201000200 +040183000100010101810001820100018201000102018100018601000100010001050181 +000102018300010001010181000182010001010181000105018500010001000181010081 +000181010083000100010401870001000100010001050181000186010001000100010101 +8100010901850001000100018101008500010001000103018300010001070101000d0181 +000102010100020194020102010200020001000200010001000100010001040184000102 +010282020100850002010201028802010201020102010201028100010401020083010001 +0282020102880201000102010201008400010001008a0001000200020100020102840201 +020102810201030183000100010801850201020102010a01820002000100810100020083 +010001008200020101010202820102018101028402010201028202010201028301000102 +820201028302010201820100018601000200020001830100010285020102000102820201 +028302000200830002000281020081000201028100020102020081010201028100020102 +810002010281010282020102820201028602000201000100810001810102820201000200 +860200010001000101018302010201810102820201020402810002840201000201820100 +018401000201000200830200020185010001000201850102010201020402810002040284 +000200020083000200020502880102000102000200028802010002010002010284020100 +010201028100020102030102028600020100010002010201008301020002850200020002 +00810001010181020085000100010001820100028302010201 +820100018201000103018100010301850001000100010401810001050181000101018100 +010201830001000102018300010001010182000100810001010101000201810001050181 +00018401000100010501870001000100010001040181000101018b000100010001000100 +0100018201000104018b0001000100010001000100010301820001008100010301810001 +810100850001000100010501850001000100010101030086020002000200018201000101 +018400010001008700010001000102008200010085000200020102020281010201028301 +0200028a0201020001000100010001820100010101840201020102880200020002000102 +01850100010001028602010200010201840102010201820102018401020100010b018202 +010281020105018300010001820102010201010003018400010201000100010281010281 +020183010201028202010282020102810201830102010285020100020002820201028202 +010281020102018302000102830200020084000200010086000100020001008500010201 +020181010284020102010286020002000200028202010201020101860201020102010282 +0201028102010101810201850100020002000200810102820201028f0200010200020001 +000200020002000203028101028102018301020001820100018101008400010001008100 +028202010287020100020002010083000200020102830002000203028100028202000284 +02010201008c000200010002000200020001020302810102820201028602010201020102 +82020102020283000100018a010002000201020102000104018100018201000102018402 +0102000181010284020002000202020100810200 +830001000101018300010001010183000100010601830001000101010100820100018401 +00010001020181000101018300010001860100010001000102018100018b010001000100 +010001000100810001030189000100010001000100010401870001000100010001010181 +000105018100010801850001000100010401810001010183000100018201000101018100 +0181010001000a0103008101000500010184020100010081000282020002820200010801 +860001000200020082000102880201020102000200028302000102850201020102010401 +020002010100880201000100020102018101008300020102810200830002010084000200 +010202028101028502010201020184010001000103018300010002840201020102810201 +060186000100010002000100810100020086020001000201028202010284020102010281 +020181010283020102018101028402010201028202010082000102810201830102010201 +028200020102018202000101010302010182020002860201020001020084000200010082 +000102010283000201028202000204028101028402010200020102810102830201000102 +018100018201000201020101920002000200020002000200020102010200010201028100 +020102890100020001000201020189010200010201000201028202010287020100010200 +010202028301020102010281000201020101850201020001028402000201028402010200 +028202010285020102010002820201028402010201028102018201000287020002000100 +02018c0102010200020001020102010083000201020202820002008a0001020002000201 +000102830201000102010000 +030183000100010101830001000101018300010001840100010001020181000101018100 +010201830001000184010001000104018100010201010005018100018401000100018201 +000103018100010301830001000183010001008100010801810001010183000100018201 +000181010002008201000102010100010181000184010001000181010081000185010001 +000100810001820100010301860001000100010081000102018100010101040081010001 +00010103028c000200010001000100010001008300010001810100820002008700010001 +000100010101010287010201020102010283020100010101810001820100010201820201 +028b02010201000200020102010282020002830200020083000201028102010101810201 +8101020102010001018300010001040101028101028c0201020102000100010001000102 +010102810100810001020184000201020081000285020102010002810201840102010201 +810102820201028202010282020002840201000201870102010200010201810102820201 +028102000100830100020002008402000102000100830200020102018300020001010186 +000200010001020202810102820201020102840001020002820201028902010200010001 +0002008900010002000100020102820201008a0001000201000200010002050282000201 +01018400010001028a020002000200010002010289020102000102000200020302830002 +000203020300860200020001000187010001000200020185010001000201860102000102 +010284020102010288020002000102000201810102820200029102000200020100010002 +0102010200020002960201020100010201020102010201000201000200010201 +810001820100010301810001030181000103018100010101830001000184010001000182 +010001010181000184010001000184010001000101018100010401830001000109018100 +01030183000100010a018700010001000100010201010003010100050181000181010001 +000101810001810100850001000100018601000100010001010101000101830001000104 +01810001030185000100010001050101008b020002000200020102010201010184000100 +0100810001010181000101018f0200020002000200010201020102000281020101018302 +010201090102008902000200020001000100870001000200010002820200018401000201 +028102010101010281010281020182010001020187000100020102010282020102830200 +020102018300010001840100010001820100018401000200028202000202028101020102 +010184020102000204028101028102018301020102830201020001000101810201840100 +02010282020100880001000201000200028b020002000100020100020002820201028202 +000282020002030281010203028500020002010201028101028202010282020102010281 +000105018100028102010201890200010001000200020087000200010200010201028500 +010201020001000101810002030281010282020100010081020181010282020100820001 +020202850002010200028302010201810100830001020181010291020102010201000200 +020002000102010002820201028702010201000201028202010288020102010200010002 +8202010201028301020002810200810002840200020001810102820200018b0100010001 +0200020100020181010285020102010200 +820100010101830001000101018300010001010183000100010101810001040183000100 +018201000182010001060181000101018300010001840100010001030101000101850001 +000100010301830001000102018200010081000184010001000103018100010c01010082 +0100010b0183000100018101008300010001030181000102018400020102018401000100 +010301010002010300810100020002018402010201008700020002000200010601810001 +820100018201000288020102010001020102020202018202010285020102010201060181 +00018c010201020100020001000100028502000100020084000100020082000102820201 +028502000201000201028500020001000101010502810102830200020101018100010201 +810001820102010101850200010201008400010002008100028402000201028202000282 +020102820201028302000102030283000100028102010101810001010101028201000181 +010282020102820200028902010200010001000200830001000182010001040184000102 +00018301020102030281010201028101028202010204028b010201020100010001000200 +810002010288000200020002000100020085020002000102040281000287020102010001 +000182010201030181020186010002010201028202000285020102000102020283000200 +020302840102000102010285000200020002020202010102840100010001820100028202 +01028402010201028602000102010201820100018301020102020283000201029c020102 +0102010201020002000102010001000102010201020100020001840100010002 +020183000100010101830001000101018300010001010181000102018300010001060181 +0001860100010001000102018300010001020185000100010001820100010c0181000101 +018100010201830001000101018300010001820100010101840001000100820001008300 +010001050181000181010083000100018201000106010100840100010001010188000200 +0201020102008300010001820100018b0100010001000100010001008200010087000100 +020102010205020101810001010183000100010401820002008200010001008302010201 +010182020102010281010285020102010201020181000103018400010201028902010201 +020100020002020281000285020100010201840102000100010082010002020281000282 +0201028202000284020002000282020102830201020101018a0001000100020102010200 +850001000102018101028102008200010281020181010202028101020102820100020202 +810002820201028102018e01020001000100020001000102000189010001020001020001 +008500010002010286020002000100020602810002810201810102040281010201028101 +02010282010201810102820201028b020102010201000102000102020283000102018101 +028202010283020102008700020001000200020102810002850201000100010101840001 +02010281020183010201028402000100028a020100020002010200010284020002000282 +020102840201000201830102010209028500020001000101018102018301020102840200 +020102820200028102010301860001020002000101018500010201000188010001000102 +0001008d0002010201020102000200020002870200020102010201 +010181000102018100010301810001040181000182010001020181000186010001000100 +010401810001020183000100010201810001050181000183010001008500010001000181 +010002008601000100010001040181000106010100030181000103018200010006000501 +820001008100018401000100010401840001000201810100860002000201020102018100 +018101008400010001000200030181000101018f00010201020002000201020102010201 +070181000102010100840200020102840201020102860201020102010202020201810001 +0201820001008d0001020102000100010002000201850102000100018201000284020001 +000101018302000100010002028101028202010282020102840201020102820200028602 +000200010001020181000204028501020100020084000200010002008202000203028101 +028102018301020102820201028302000102010282010200030082010002820200018101 +028402010001008600020001000201820102008200020189010001020002000201028202 +010283020102010101030281010201028101020402810102810201020183020100018801 +000201020002000288020100020102000100850001000100028102010101010283000200 +028702010201000100018201020101018202010282020102840201020102820201028402 +010200020302810102020281010282020100880001000201000100028102008100028402 +010201020202890100010002010001020182010201810102870201000100020001840100 +020102880201020102010201028602010001000102860200020102000188010001000102 +00020188010201020001020001 +810001010183000100010101830001000101018300010001010185000100010001040181 +000102018300010001010101000501850001000100018801000100010001000102018300 +0100010c0183000100010401830001000103010100810100030082010001010189000100 +0100010001000101010200810100860001000100010081000101018c0001000100020102 +010200020103018100010701840001000100010001018a02010201020102010201020302 +0a0181000181010286020002010201028802010201020102000284020102010201020501 +810001810100010087020001000100020086000100010001008900020002000102010201 +820102000200010182020002060281000284020102010203028200020182010001830102 +010284020001020082000201010181000281020183010201028202010203028100028502 +000200010282020002860201020102010284020001000101010200010201018202000285 +020100020102870200020001000200840002000100810001010181020101010100820102 +018101028402000201020202810102820201020102810102890201020002000102010083 +0001000206028101028202010282020102010282000200010004028100028c0201020100 +010002010200010282020102820201008100028102000100860100020001000282020102 +820201028c02010201000201000201000102810201010101028101008100028402000200 +02830201000183010201029002010200010002000201000100020102018a010200010001 +000100010281020081000101018102019901000102000201000102010201020102000201 +00020002010001 +010181000103018300010001010183000100010101830001000101018100018401000100 +010101010005018100010101810001820100010101850001000100018201000104010100 +020185000100010001010185000100010001040103008501000100010002008201000188 +0100010001000100010b0181000104018600010001000200880002010201020102008300 +010201820102010201010002010400010181000101018300010001010101028601020102 +0102010101810201080101008101008b0001020100020102000201020202850102010201 +028502010200010087000100010001000185010201020102860201020102010287020102 +000102010085000100020102810200020082020002010201018202010282020102820201 +028202010282020002840200020001010101028301020102830201000288020002000201 +000200810002840201020102830200010282020102820201020c02850001000100010201 +820201028502010002000283020002008500020001020184010002010287020102000102 +000205028101028202010203028501020002010282020102820201028202010286020102 +000100010101810201030183020102018101028202010282020102820201028202010202 +028100028402010201008400010001028202010284020102010282020002820201028502 +010002010202028100028302010201820102010301020289000100010002000100028302 +010201850102010201028302000100020082010001820102010501870001000102000200 +86000201020102010101850002010001028b0201020001000201000100018a0100010001 +0201020102010101 +810001010183000100010301810001030181000103018100010401830001000102018100 +018801000100010001000184010001000108018300010001020102000101810001040183 +000100018101000400020105008601000100010001070181000186010001000100010601 +0100020186020102000201008a000200010001020102010201020d018900010001000100 +01000103018b020102010201020102010201040183000100010201810200860001020102 +010288020102010001020102840201020102810201030103000101020087020002000200 +020085000100020002860200010002010283020102000200810102820200028202000282 +020102020281010282020002860201020001020181010284020100010205028400020001 +008300020102820201028202010282020102820201028202010283020001020202810102 +820201020102870102010001000100010082020102890201000201020001000285020102 +010200820001028702000102000200018301020102820200028302010002820200020302 +810002820201020102810102810201880102000200010002010101850002010201020102 +810102030281010201028301020102010281010202028100028402010201000200010282 +010201840102000102880201000200020001008300020002010281010282020102860200 +020100010081000101018100028302010201900102010201000200020001000200010002 +830201020102018800010001000200010202028201020103018100010101840200020100 +8100019301020001020102010201020100010002010001008600020002000201 +020183000100010101830001000101018300010001010183000100018201000182010001 +010181000186010001000100010701870001000100010001840100010001050181000102 +0107008b0100010001000100010001000100040181000104010100010185000100010001 +030181000182010001030181000101010100840100020001860100010001000282020100 +830001020181010282020001820100010201830001000101018100010201850001000100 +010201880201020102010201028302010001050101008101008c00020002000200010201 +020102020202018202000283020102010101810001840100010001010187020100010002 +000101018302010200810002020281000282020102010286000100020001008100020102 +8301020102820201028202010282020002820201028502010201000101018c0200010201 +020001020002000284020001000282020102830201000202028100028202010203028101 +0286020102010001028102010501810201010181020183010001008200010002008b0200 +020001020001000201020202840002010002030282010201810102010201010202810102 +010281000282020102820200028202010082000100810002020201010102030101020201 +020203018202000201028100028602010201000100810002820201028202010282020102 +820201020302830102000203028100028302010001840102010001830102010292020002 +000100010002000200010201020102010501820001000300840100010001820100020102 +830002000286020001020002008700020002000200028a02010001000102000200018301 +000201060183000100010001 +820100010301810001030183000100010101810001030181000101018300010001060181 +000186010001000100010901830001000181010004000101010003018700010001000100 +010601870001000100010001020183000100010301850001000100010101810001010181 +00010601910001020102000200020001020002000200028c020102010201020102000100 +010601030082010001010101008301000201010182020102930201020102010201000100 +010001000100010001010188020002000200020102840200020002860201020102010283 +020100018701000100010001008200010281020101018200010084000100010085000200 +020002820201028502000201020185010001000102820201020202010082020102820201 +028202010282020002850201020100020202810102810200810002010201008402000200 +028302000102050201018502010201000209028c01020001000100010002010201810102 +850201000201028602010002000200020081010085000100020002830200020101018802 +010201000102000201028101020102010182020102010201018502000200020084000100 +010283020102018201020181010283020102018101028102018301020102820200020302 +810102840201020100010084010002010288020102000102010201810100830001000101 +018500020002000101010102820102018501020102010202028b00010001000200020102 +00018b010002000200010001000102810201030181000188010001000201020102820200 +02880201020002000201028602010200020102010201018202010201028f010201000201 +00010001020102010201 +020183000100010101830001000103018100010101830001000101018100010101810001 +860100010001000109018300010001810100020001018300010001010181000181010001 +008101000200010183000100018801000100010001000105018100010201850001000100 +010b01810001050196000201020001000100010201000100020102010201000281020088 +00020102010201020106018100018101000100040183000102018a010002010201020102 +0102820200010a0101008501020102010285020002000201850102000201028802000200 +0200020001020183000100010101830001000101010100820102018a0100010002010001 +000100860001000200020101018100020502810002020281000282020102010283010201 +020102860100010002000282020002850200020100028402010002018101020502810002 +860200010002000205028101020102850002000100010101880001000200020100028302 +000200810002820201028802010002000201020001008101008900010200010002000201 +810102030281010283020100020102810102010281010202028300020001810100810002 +830201020187010002000102010282020102820201028202010284020002000201028100 +028302010201030101028300020001010181020101018200010281020185010200020002 +0102810102020283010002018401020102018201000201028a0102010201020100010002 +8202000202020701850201000100018201020101018a0001020102010200010201020181 +000101018102018301000100040081020084000100010284020102010201028300020002 +0002 +820100018201000182010001820100010101830001000184010001000101018100010101 +810001090183000100018601000100010001010102008201000186010001000100010201 +0100830100010084000100010083000100010501810001010183000100010e0183000100 +010a01810201850102000201028702010200020102018101008800010002010201020001 +008101008400020002018401000100018101000100030104008302010002820201020102 +81010202028200020186010001000100010101820002008a000100010001020002000284 +02010201020102820100028c020102000201000100010001000100870200010001000100 +860002000100020182010200830002000104010102820001008200010282020002820201 +0284020102010284020001000202028200020182010001810102030201008b0200020001 +020002000200028202000282020102820201028202010282020102840200020102060204 +018600010001000200820002000100810102880201020001000200028202010003008101 +028202010283020001020202020082020002040281010201028201020181010285020100 +020100010001028300020102810201830102010282020102010284000200010202028401 +000200028202010201028900020100010001000102810201830102010282020002820201 +00020088020002010200020002010281000201020201850002010201028c020100020100 +01000200020102010285010201020102820200018a010201000100010201020081000202 +02820001000100820102000200810200040086020002000201028a020102010201000200 +0200810002850201000102010101 +830001000101018300010001010183000100010101830001000182010001010181000102 +018400010001008300010001010181000181010001008301000100810001090183000100 +01830100010001000201830001000182010001010183000100010e0183000100010e0184 +000201020081000184010200020001008302000100010081010090000200010001000102 +010200020102010281020105018400010001008100018d01000100010201020002000201 +028902000200020002000201010182000100010001018100018501020002010284020102 +010288020102000200020002820201028102010301810001050182000200860002010201 +020083000200010201820001008300010001010101020201030281000284020002000201 +028101020302810102880200010001000201020502810100860002010200010203020301 +020281000281020183010201020502810102020287010001000100020084000200010286 +020100010002008100018201020002000201820001008200010085000100020002010201 +010502830102010201028101020102840102000102830200020102018c02000100020001 +020100020002820201028202010286020102000100020202810102820200020102810001 +810102820201000200940201000200020001000102000200020002010200028202000283 +020002010101010282010201010181020181010282020102860201020002000282020002 +820201028302010201830102000206020300010184020002000286020002010200028302 +01020101018702010201000200028702000100010001028902010201020002000200 +030181000103018100010301810001030181000101018700010001000100010601850001 +000100010901870001000100010001040181000101010100850100010001008100010401 +810001060183000100010901810001050181000101018102018101020102810102010201 +018302000201810102010285010201020102940201020001000201020002000201020100 +01000100010081010001008101000100820200020102820102010101850002000201028b +020100010201000100010001010181000184010002010201028801020100020002000202 +028101028802010201020001000182010200830001000185010201000200850002000200 +020102810100850001000100018301000100010081010081000205028101028202000285 +020102010002820201028302010201040183000102008400010002008300010002820201 +028502010002000282020102830201020181010282020102050281000201028201020104 +018102018101028202010089000100020100010002000100830200020001008202000201 +020100820201028302010002820201008300020002060281010202028501000200010003 +008101028202010203028101028802000200010200010085000100020102820200028202 +010282020102010281010004008202010282020102840201020102860200020001020181 +010201028400010200028402010201008100020202810102020282010002870200020002 +000102040281010282020002020284010200010284020002010287020102000102010002 +00810100020081020001008a010200020002000102010282020102060287000102000200 +0201 +810001820100018201000182010001840100010001010183000100010101810001030181 +000106018100010301810001880100010001000100010901810001010181000182010001 +02018200010081000113018100010f0102028a01020102000100010201028f0201020102 +000100010201020100010082000100010081020187010201020102010283020100010101 +01000101830001000101018b020002010201020100020002890201020102010201020102 +018300010001010181000189010001020102000201028202010282020102860200020102 +010281020187010001000102000184010001000287020002000200010083000100010201 +850001000100010201010281000281020181010201028101028202010282020102820201 +028202010282020002840201020100810002820201028502010200010085000100020002 +820200028202010201028201020181010285020001020102090291010201000100010001 +020002000100020102830200020084000100010281020183010001008200010082000102 +010287000200010002000284020102000201028101020102010001028101028202000281 +020188010201000201020002020286010002000200010101020205018300010002820201 +029302000200020102010200010200010002000201028502010002010285020100020002 +010282000201810102010286010200010201020302810102020283010201028202010281 +0201810102810201810102870200020100020002030203018d0001020001000102000200 +010001830100010201028501020102010201028101020302830002000201028101020102 +840002010201 +040183000100010101830001000101018100010201810001010183000100010101810001 +8a01000100010001000100010b0181000102018300010001050181000101018100018201 +000101018100010101810001030183000100010e0181000102018b020102000200010201 +020102880201020102000102010101870201020100010002810201840102010201810102 +020282000102030281010001000301810001020188000200010200020001030186020102 +000200028b0200010201000100010001008a000200010002010002010202028301020002 +860201020102010281020081000104018400020100018201020081000281020106010100 +020182000200810002820201028102018201000282020002020281000282020102820200 +028202010282020102010282010201030101020100010285010200010001810102820201 +02850201020100028202000201028400020001020b028201000102018502010201000286 +020002000200028302000201840100020002820200028302000200870002000100020002 +840201020002010281010201028100020102810002010201018302000200820002000100 +8202000281020101010202020101028b0002000100020002000200028202000282020002 +840201020002810201860102000200010281020103018a00010201000200010001020302 +020181020102018402000201028202000287020002010002000204028300020002010283 +01020102010282010201010102028100018c010002000200010200010001000200830200 +02008500020102010201020200100282000100 +840100010001030181000103018100010101830001000182010001820100018201000104 +0181000108018100010201830001000106018100010b0181000101018300010001110181 +000105018300010001030183020102018201020001008202000292020102010201020100 +02000201020102000200020092020102010201020002010201000200010001008100018e +010002000200020102010201020002850201000100018e01020102010201020100010001 +000101018302010201010182020002890200020002000201000281020103018b02000102 +010001000201000184010001020185010001000100830001000182010001020182020102 +820200028202010282020002820201020102810102810201820102018301020102820201 +020102810002880200010001000102018501020002000186010201000201028102018101 +028202010282020102820201028402010200020202810002820201020102820102018401 +000100018101028302010201810102850201020001028502000200010001000101010082 +020001830102010281020183010001028202010203028101020102810102010281010203 +028501000100010282020102010282000102880200020001000201028102018301020102 +810201840100010002820201028302000201820102010201870201020100020002020281 +010282020002020282010002860201000201020101018100018101028302010201030181 +020102010202820102018101020302810102010281010201028501020002000284020102 +010204028301020002020283000200020202830002010203028101020402820102008a00 +01020002000102000201 +040183000100010101830001000101018300010001010183000100010101810001010183 +0001000101018100010201830001000106018100010c0181000103018100010801810001 +050183000100010301810001820100010501840001000102020284000200020184010201 +020188010200020002010201840102010200840001020100820001028102018501020102 +010086000201020102010101810001940102000201020102010001020102010201020100 +010101890201020102000200020187010001000100010083000100018701020102010201 +028402010201028d02000200020001020102000100010101010205018402000100010401 +850200010201028302000201820102018401020102018101020702810002820201020102 +880002000102010001008500010002010081000202028701020001000200028802000200 +010201000201020101810201830102010282020102010281010201028100028502010001 +000101018702010002000100018601000100020001010101028101008200010289020100 +020001000200028802010201020102010201028100028202010201028601020001000200 +82000100030003010102820100010301820002008a000200010002010002010204028301 +020002810201830102000285020102000102020285000100020102010289000102010001 +000100010601840200020100840002000102030283010201020202010101020301820201 +028602010201020102810201020102028101020202850102010201020202830002000201 +0283000201028102008400010001020102850102010201020302810100 +820001008100010401830001000184010001000101018100010301810001010181000101 +01830001000106018100010c018100010401810001050182000100020002018200010001 +000401830001000102018100010101890001000100010001000102018102008500020102 +010202028a010200010201020102000201028101028a0201020102010201020002820201 +028102018c01020102010201020102010201820102000100830100010282020102810201 +840102010201820100018301020102870200020002000201820100018b01000100010001 +000102000284020102010289020002010201000100020202810002850201000200018101 +008300010001010181020103018300010002830201020181010282020102820201028202 +010282020102060281010201028101028202010282020002820201020102010182000102 +010283010002008200020181010282020002820200028202010285020100020002820201 +0201028300020102010281010201020101810201050182020100820001028d0201000201 +020102010200010200820002000100810200830002000282020102820200020202860002 +000200010282020002010283010200020202010182000102890201000100020002010201 +0287000200020002000201028a0100020002000200020002010283000100018301000201 +010101020201010082010002840200010002050201018100010101810001830100010085 +000200020102840201020102850201020001028402010201028202010282020102810201 +850102010201028402010201028202010207028100020302820001020402890002010201 +020102010281020084000100010085000200010001820102010001 +030185000100010001030181000102018100010101830001000101018100010501810001 +030181000104018300010001040181000106018200010081000103010100010181000107 +018300010001810100020003018300010001020103000101810200810002850200010002 +018c01020102000200020001000100010095010002000100010002010201020102010201 +020102018101020202810102830201020084000100010202028e00020001020102000200 +010002000201028301020102020201018a00010001000102000201028402000201028a02 +010001000201000102018101020402860002000100020104018100018601000200020002 +830201020183010200028202000282020102850200010201028202010204028101028202 +010282020102820201028202000201028600020102010200820002010101010284000200 +010282020102850201020001020102810002820201028102008300020002010281000282 +020002010281000182010001010183020102018301000201810100840001000102830201 +000282020102820201028202010288020102000100020002810201810102060282010002 +8202010283020002000200840200010001010189000200020001000200028a0201000201 +000100020001830100010283020100020302840001000102810200820001020302810102 +060286010002010201008300010001050181000182010001870100020100010001010184 +0001020102010283010200020302830102000205028101020d0284010201020101010202 +020181000189010201000200010200028c02010201020102010002000100 +050181000101018300010001010183000100018201000182010001010181000182010001 +060181000109018200010081000101018500010001000104018500010001000103018100 +01880100010001000100010a010300010183000100010101850001000102018b01000102 +010002000200020083000200018101020102880001020102010201020102810002010201 +018e02010200020002000200020102010296020102010200020102010201020102010201 +020102010285020001020102040282010201020184000100010286020002010201028302 +01020101018c000102010001020102000201020502850001000100010301010281010285 +020100020102830201020081000281020101010102810002010201010302810002820201 +028202000282020002820201020102860100020100010281020102010102010181020181 +010282020102820200028202010282020102810201810102020281010201028101020402 +830102010081000183010001020102810102820201028202010282020102820201028202 +000285020002000100890001000200010002010201028201000201028400020001020102 +95010200020002000100010001000201000100010002018101028502010200010002008c +020002000100020002000200028202010283020001000100020282010002820200020102 +850001020001028602010201000201820100010101850001000100018701000100020102 +018301020102020201010100820200020c02810102020281010284020102010205028701 +0201020102010284020102010204028501020102010201028101028c0201000102000100 +0201020100 +020181000102018300010001010183000100010101810001030181000101018100010201 +0100050101008a0100010001000100010001820100010101860001000100010081000101 +018500010001000186010001000100010101810001020184000100010081000182010001 +810102010281000188010001000100010001810100810001830102010286020102010201 +008700010200020002008f00020100010001000102010201020100840001020102010282 +010002860201020100010298020002010200020102010201000102010201020002010201 +020202830102010202028301020100950001000200010002010001000100010002000102 +010283020102010301840201020102820200028202000101018900010201020001000201 +010101028401000201028202010282020102820200028202000282020102820201028202 +000282020102820201020102810102820201028102010401020281010282020102030282 +000102030281010285020100020002850201000201028302000201810102020281010281 +020081000102010100810102820201028102018301020102810201810102810201080181 +020103010100010283010001028102018201020101018202010282020001860102010002 +00018b010001000200010002000100010081010081000281020102010102810102820201 +020102810002820201020102020184000200010201028401000200028202010282020002 +840201020102810201840100010001040184000102010283020001028802000100020002 +000282020102070281010282020102010281000207028101028402010201028902000201 +02010201020182010001010181020103018200020106018502010201020103010000 +020187000100010001000101018300010001820100010101830001000101018100010101 +810001030181000185010001000100830001000183010001000100010109008101008800 +010001000100010002000201810001020183000100010301010089010001000100020001 +008100010401010088010001000200020002870201020100020001870102010200020002 +830201020002008501020102010001008201000281020001008301020102810200810002 +0202810102830200010201028101008100028a0201020002000200010201810100010086 +0200020102000203028401000200028102018201000103018b0002010201000100010001 +008700010201000201020202030101008301020102810200010084010200010081000201 +028400020002018101028202010282020002010283000201028202010282020102010283 +010200020102030082010201830102000282020102820201028102018101028202000283 +0200020001008b0201000102010002010201020102810002010281010284020102000184 +010001020102010100820201028202010088000100020102000200890002000200010002 +010282020002830201020182010002820200028402010200018101028102008400010002 +000200910102010001000100010001000102000100020102830002000285020100020002 +040281010201028100028802000100020102000102018502000102010085000100020002 +920200010001000100020001000100020002010201028301020102180281000281020101 +010100880100020102010201028602010201020102020283010201020202850102010201 +0201028101020102810002850201020102010201 +040005018100010301810001840100010001010181000101018100010101020002018100 +018401000100018301000100010001018300010001010181000104010300040181000102 +010400880100010001000100018901000102000200010201820102018a01000100010001 +000100010201840200010201870102000200020002020286010201020002018901020002 +01020100010001008c010201000102000200020001028202010201028401020002019201 +020102010201020102010201020102010002820201028402010201020202810002010282 +010201820100010301810002860201000102000101018200010088000100010201020102 +020282000200810001010181000183010201028302010001840102000102850201020100 +028202010286020100020102018301020002010282000200810002850201020100020102 +810102810201020101028101028202010201028300010002010283010001020102030101 +028601020100020002010281000201028101020102830102000101018a00020002000201 +020100028502010002010001008501020100010082000201010183020002008500020001 +000181010284020002000181010281020182010001810100010083010001008900010001 +000200010002830200010286020001000201028402010201020202010185020102010002 +010281000103018302000102820201028402010201028202010282020102900201000201 +020001000100020001020102820201020202810002030283000200028202010202028101 +020302810102840201000102830200010202028301020102850201020102000300850102 +010201028102008400010200028402010201008800020102000201020185010001020102 +8302010001 +050101008201000101018300010001010183000100010101810001860100010001000103 +010100810100860001000100010085000100010001010104008201000181010081000183 +010001008200010082000100030001010100040181000189010001000200020002008800 +020001000100010001008701000100010001000100850100020002000100850100010001 +00010083020002000100830200010001008501000100010002008b020002000200020002 +000200840002000200010083020002000200830100010002008702000100020001008f00 +020001000102000200020002000200820002000200810100090085010001000100830002 +000287020002000200020002008102000500810200040081010084000100020084000200 +020082000200020083010002008400020002008400020002008400020002008400020001 +008400010002008400020002008400010002008400020002008400020002008400010002 +008400020001020302810002010281010281020082000100010081010082000100040081 +010002008502000200010088000100020002000100020084020001020002008401020001 +00070002018b000100020102010001000102010283010001028102008300020102820201 +028202010207028100028802010201000100010283020102008100028402010001020102 +830100010281020183010200020e02830002010287020102010002010282020102030201 +008302010201860102010200020187010200020100010001008902000201020102010200 +880002010200020001008300020102830201020101018500010001020187010201000100 +01028302010201 +810001080181000103018300010001010181000101018300010001010182000100810001 +020101000601850001000100010101830001000101010100820100018501000100010083 +000100018201000101010200810100010001018102008d00020100020102010002010201 +028402000100010301810001810100820001020102860102000201020187010201000102 +010081000282020100020085020102000200010084010200020082000102020283010001 +0203028b01000102010201020102010283020102018501000201020102018a0001020002 +00010002010201028101020302810100850001000102018a010001000100010001000201 +028101020702810102820201000100010282010200020081010281020083000100028402 +010201028302000201810102010202018300020002830201000288020002000200020002 +010201000201820201028202010286020102000100028102008300020102850201020001 +020302860001020001000209020201840001020002810200010087010002010002000283 +020002008400010002008600010001000100810001010182000100040081020001000801 +820001000100850201020102018101020202810102050281010201028101020202810102 +040282010201810100020084010200010288020102000100020102810200830002000205 +028101028202010282020002820201028202000201020100010282000201820102000100 +860100020102010281020001008402000100018101000100810201010184020102010001 +0086020100010001000200830100010283020102008a0001020002000100010001030101 +02860102010201020101010002 +050185000100010001010101000401810001010181000103018100010101810001840100 +010001010183000100018401000100010201810001860100010001000101018300010001 +040183000100018601000100010001030181020181010282020100880002000102010001 +000100820102008d00010001000100010001000100018201020001009202000200020002 +000100010201000100020001820102000100830200020004008201020004008301020100 +830002000287020100020002000287020002000200020088000100010002010200850001 +000100028402000200028202010086000200020001000300850100010001008200020004 +008101020402810102810200010081010003008201020004008302000200840002000100 +020081020002008102008400020002008100028102000100820100028602000200020002 +830200010084000200020083000100028102000100830100020003000102020081010087 +000100020001000204028100020102880102000100010001008100028202010086000200 +020001008600010002000200010001028200020081000281020002008602000200020002 +0302840001000200870001000200010002010201008202000201028100028b0201020102 +010001020002018701000201000201028202000201028100020102810001830100010201 +0283000200020b0281000285020001020002820200028202010282020002020284010200 +010087000200020002010001000502830002000202028101020102030086020002010001 +000100810201020181020182010001020181000181010001008201000106018602010001 +00010288020001020102010201 +860100010001000182010001030181000101018300010001820100010101830001000101 +018100010101810001020181000101018100010101020082010001010183000100010301 +890001000100010001000104018300010001010185020002000102840201020100820001 +028302000200840002010201820102018101008100018a01000100010001000200018101 +029302010001020100010002000200020002010001000100860200020002000183010001 +009000020102010200020102000201020001020102860002000100010284020100010002 +008602000200010001880100010001000200029002000200020102010001000100010001 +000200810100830001000201028101008100020202840002000201810100030081020005 +000102010082020102840200020002860200020001000283020002008100020102010089 +020001020001000200028102000200810201810100830002000187010001020100020101 +010200010281010282020002010284010002000283020002008300020002010281000201 +028501020001000185010002000200850002000100010201810001010181000101018902 +000100010002000100020001028400020001020202010001020501010281010281020002 +008302010002010201008101028302000200810002820201028302010002020281010209 +028101008100020102810102850200020100020302810102820200028202010282020002 +840201000100030089010002000100010002008100028702010001000200028302010001 +850102010001028302000102010283000201020102850100020001028202000286020001 +0002000283020001008200010201028101028a0201000100010001020001010183000102 +010201820201020002 +810001820100010101010003018100018401000100010101810001010183000100018201 +000101018100010101830001000182010001010101000101810001020185000100010001 +820100010501830001000184010001000103018400020102018201020184010201020182 +010201840102010201850102000200028502010001000103018300010001010183020100 +02010287000200020102010284020100020001008e010201000100010001000102010001 +810102820200020102820001029402000201020102010201020102010200020002010287 +020002000200010002000102820102018101020102810102010281010282020102810200 +880002000102000100020202830002000286020002000200020202010084020002010002 +008101028302000200810002860201000200020182010200810002830201020081000282 +02010282020002020282000200810002860201020002010201028d010002010201020100 +020100020002000102820102000200830201020081000286020102000100020102810002 +010281010201028100028202000181010001000101810001810100820001000300840102 +000100020084020001020001008202000281020002008302000100010087020001000200 +020082000200030081020081000201028800020002000200020003008801020002000200 +010283020002000200820200028302000102820201020302830002000202028101028202 +000282020102820201028102018201000181010004000201020081010201020101820002 +0083000200020102850002000201020202830001000201028e0001020002000100020001 +020001000100810201010103008901020102010002000100820001008100028a02010001 +02010200020002830200010283020102010001 +040183000100010401810001030181000101018300010001010181000182010001010183 +000100010101810001820100010101810001020183000100010301830001000184010001 +000101018100010201870001000100020002840200020001810102810201870102010002 +0102018701020001020102018b0102000200010001000100010101880002010200020001 +020102860100010201020189010201000200010001000100810100840002000200880001 +020102010001008400020002000200990102010200020002010201000100020102010001 +000102000100010087020001000102000289020102000200010001008200020081000281 +020085000100020102840200020002020281000201028101020102010002010300810100 +830002010081000283020002008100028102008300020002010282000100810002820201 +028302000102820201028302000102820200028402000102018501020002010284020002 +000101018502010200010286020002000201028502000200010282020102820200020602 +870102010200010001850100010002008b00020001000201020001020083000102010101 +8600010001000200020087010002010002010207028401000200028402000200028a0201 +000102000100010002010201008201020101018300010001810102830201000204028200 +020081000204028101028202000204028600020002000200810002010201000101990001 +000100010201000200020002000200020001000201000102010282010002010284000201 +00028a0201020102010201020102020282010001840100020002010281000204028a0002 +0100020001020001020102820102000100870100010200020002030281010282020002 +020181000101018300010001020185000100010001010181000103018100010101810001 +840100010001010181000101018100018201000102010100030181000182010001010187 +000100010001000102018100010201010285010201000201850102010200028302010201 +8e0102010200010201020100020002018201020101018900010001000102010201010183 +020102018401020102010101830201020091000100020002010201020002010201000100 +8b0001000201020002010200028302000102010281010281020181010288020102000200 +020002020282010201080101028101028502000201020181010281020101010102830102 +010203028301020002850201000200028202000284020102010285020001000102840201 +000200830002000282020100810002010281000282020002850201020001028202010282 +020002010285000100020002010284010002010284020002000184010002000102010202 +840001020102860201000200020185010001000102850201000200020102810102020281 +000201028200010082000100010082020102860200010001000285020002000100020083 +020002008400020001020202020083020001000100850200020002008300020002010285 +000102000102810200810002870200020002000200840001020002040281010208028101 +028202010282020002070285000200010001830100020101018100018201000105018800 +01000100020002000100820201028b020102010002000201000200810002050283000100 +010101890201020001000102010201028900010001000200020100020085010201020102 +8402000100018201000186010001000100010101830200010282020002840201020102 +870001000100010001040181000101018100010101810001840100010001010181000101 +018300010001820100010101810001010181000101018100010301850001000100018201 +000108018d000100010002000100020102010289020001020102010002008a0002010201 +020100020102020286010201000200010601830201020101018702010200020001020102 +880102010201020102018701000100020002008300010201810102860200020102000201 +029501020102010201020102010200020002010201020102840201020002820201008800 +010001000100010202028100020202810002030284010201000204028100028202000282 +0201028402010201028202010286020100010002008c0002000102000200010201000282 +020102830201020181010203028101020102820001020302810102820201028202000201 +028100020102010186020102010201020402820002018401020001028302000102820201 +028502000200010201020101820201028402010201020102820102018b01000100010200 +010002010084000100020002008502000100020086000200010002008900010002000100 +010002060281000202020100010281000208028101028202010202028100020802810102 +010281000204028101020102010182000102810200810002820201020202820002008100 +028602010200020001060182020102020282010201880100010002000100018501000100 +020183010201028202000205028201020103010202830001000286020002000100020102 +840102010002860200020001000283020001020402880100010001020100018701020002 +01020102 +810001840100010001080181000104018300010001820100010101830001000101018100 +018201000101018100010101870001000100010001010183000100018801000100010001 +000182010001050101028100028202000284020102000282020002010201010302810002 +850201020102018401020102018201020102019500010001000200020100010201020102 +0102010201029002000201000100010001000102010201008f0002010001020002000200 +020002000284020102010284020100010283020002000100840201020102840201020102 +810201020188000100010002000102860200020002000201028100028402000200028202 +010282020002020281000284020102000282020002820200028402010001008500010002 +000186010001000100028502000200010282020002850201000201028202010001000402 +830002010201028200020101018402010001008400020001008200020187010200020002 +000281020002000202010082020102850200010001028202000202028101020102810102 +820201000100810100010084010001000282020100820001028202010281020002000201 +820001008400010001000200020281000203020101080283000201020102830102010203 +028300020102030281000282020102010282010002020281000281020184010200020001 +008102008300020102830200020001008402000200028202010283020002000100850100 +0100010001008b0100010200010200020100020202820001020302830002000282020002 +850201000100020102820002018101028602000201020001850100010002018201000183 +010001008300010001050101008c01000102000200020002000102020285010200020102 + +010081010001008101008300010001070101000401810001820100010301810001010181 +0001820100010101810001030185000100010001060181000102018a0001000100010001 +0002018a0102010002000201000201870102010001000200810001850102010201028402 +01020102880200020002000100018a010201000200010201000102010202880102000200 +020102018101028902010001000200020001830102010083000200020102810102020289 +010200020002010001028602000201020102840201020102860201020102010202028301 +000100020086020102010201020902810102840201020102820200028402000200028202 +010202028100028202000281020102018102018401000201028202010282020102810200 +010084010200010283020001028202010282020102070281010282020002010201018200 +020104010102840002000102810201010181000204028101028502010201000201028101 +0282020102030202018300010001020182000100840002000102850200010201008f0002 +000200010002010002000200010201028101020102830002010282020102030201000102 +810102010281000204028200010205028101020102810002040281010282020002820201 +008200010286020002000200010201810002880200020002000201028502010002010001 +000102820002018501000100010001008301000200010082010002850200020002000100 +0201820001020202010182020102840201020102040283010001028e0201000102010200 +020001000200028202000204028200020001000102820002018701020100010200010101 +81020183010200020102810002 +810001810100830001000107018100010101010084010001000101018100018401000100 +010101810001010181000182010001010183000100010301810001860100010001000102 +018100018201000102018a00010001020100020102018201020182010200840002010201 +940102010200010201020100020002010002000200029402010002010201020001000100 +020002000200010203028c01020102000200020102010201830100020092000102010201 +020002010201020102010201028a02010001000200020002000100820200028602000200 +020002830200010282020001830102000282020002880200020002000200020102810002 +020287000200010201020182010201810102840200020002040283010002008400010002 +008800020002000102000282020102820201020102810102820201028202010283020102 +018101020102810002820201020102810102820201028302010200830001000183010001 +020102840102000102830201020001000102840001000102820201028202000183010200 +0288020001020100010001010101000201820201028d0201000200020001000201020102 +010201008102008100028102008400020002000100830201000201028100020102810002 +820200020802810002060283000200020502830002010201028101008200010081000282 +020102810201020181020083000201008100018b01020002000100020102000281020089 +0002000200010001000102018100028e0201020100020001000100020002000100850102 +010001028202000286020002010002008100018501000201000291020001020002000100 +010200020001020102840201000100850002000100018401000102008900020002010001 +0002008100028202000285020100020100 +010181000181010001008401000100010201810001050181000182010001010183000100 +010101810001820100010101810001010181000102018300010001040189000100010001 +00010001020181000101018102018201020184010201020181010202028b000100010200 +020001020002840201020102850200020102018f01020102010002000102010201020102 +8102018c0100010201020102010002000297020001000102010001000102010200020001 +00020102010281020181010202028a010201020002010200010083000201020202850102 +010200028502010201000282020102830200020183010001020202810102070281010282 +020002820200020202810102820200028302000102020281000283020100018601000100 +020102860200020100020181010282020002850200020001020102820102018101028102 +018301020102820201028702000102010002010301010201018600020100020002030201 +010102820102018101028202000201020100820100028402010201008100028302010201 +0101830001000183010001008a0002000100020102000100890001000200010001020101 +010a02810102060281010201028100020102810102080282010002010284000200020101 +018202000282020102820201028202010282020102020281010282020001020101000202 +8a000100010002000102010202028500010201000102018f020001000100020100020002 +000201028302010201840102000102060283010201028202000101010202020105028101 +0202028d0002000200010001020002000102030286000102000200028d02000201000102 +010200010201020202810001 +810001010183000100018201000103018100010401810001820100010101810001030181 +000101018100018601000100010001010183000100018401000100018201000111018302 +010002840201020102880200020100020100018f01000100020102010002000201020002 +83020102018501020102000288020100020002000201830100020101018b020002000200 +0200010201028102018101008a0001000100020002010002820201028e02010200020002 +0002000200020102850200010001008100028702000102000200028402010201028d0201 +0201000102000100010001020a0281010283020102018301020002850200020001028402 +000201020402810002840201020001010101008302000102820200020102830102010201 +028100028502010201000288020002000200020102850200020102018201000103018200 +010083000100018201000283020102018101020102850102010001028202010285020001 +00010201028e010200010002010002010200010001020183000100018801020100010001 +0002010201008401000200028202010282020102060281000201028101020a0281000283 +020001020402840102010001840102010201010101028101028502010200010282020100 +02008202000205028401000100018e010201000200020001000201020001830102010282 +0201028102018301000102040283000102018101028d0201020001000100020002000201 +810102010201018202010203028801000102010201000184010201000185010002000102 +010281010282020102010281010288020102000200020002880200020002010200010101 +8100028202010281020185010002010200 +010185000100010001020183000100018201000102018100018201000101018200010083 +00010001010181000101018300010001860100010001000101018100010a018900010001 +000100010001810102820201028802010002000200020181010202028701020001020002 +0083000201028b02010201020100020002000201020101020283010201020102a9010002 +000200010201020102010201020002000200020102010201020102000201000102000201 +020102810201810102020201018202000181010201028501020002010286020002000200 +028202010281020102018400020001008500010002000205028101028502000102010202 +028101028402010201028202010202028200010282020102010283000100010101010284 +010002000282020002820201028202000201028101028302010200810002840201020102 +010281010284020100020183010200018301000100840002000100810002850201000200 +028602000100020002010203010102810102820201028502000100020083000201028102 +010101840001000201010101008202010281020183010201020302830102010202028100 +020102810102010281010201028100020202810102010281000201028401000100020202 +82000200880002000200010002008100028b020102000200010002000102020201018302 +000102020281000282020001010184000200010282020102820201028202000283020102 +008300020002060283010201028102019001020002000100020002000200010002018301 +020102040281010282020102020201008101020302830002000204028800020001020002 +000282020102810201010185020102010201030181000183010200018c01020002010200 +020102000102 +810001820100018201000101010100030181000184010001000102018300010001010181 +000182010001010183000100018201000101018100010101810001010187000100010001 +00018101008100018a010001000100010001000183010201028502000200010202028200 +020181010082000201850102000201028402010201028402010201020202830002000282 +0200028a0201000200020102010201880102010201020100029502010001000201020102 +0102010002000102000201028702010002010200028802010201020002000101018d0002 +000200010200010201020102860201020102010284020001000103010502810002060203 +01870201000201020102820200028202000284020102000201028301020102010202018c +000200010001020001000200028302010002820200028202010282020102830200010282 +020002850200010002018101020102810001030183000200010101030282010002890201 +0201020001000102040281010282020102820200020102810102820200028f0201000100 +020100010201020102010206028100020602810102010281010206028100020a02810102 +01028100028302010002860201020102000101018a000100020102010200010283020102 +008700010002000201020202010102028400020001020102830002000282020102030201 +008601000201020102810201010192000200020001000200010002010002010201028202 +010282020002810201830102010281020181010287020102000201020187010200010201 +02010201850002000200028f020002000200020001000102000200018401000201020402 +810002830201000201028500020102000101010000 +040181000101018100018401000100010401810001060181000101018100018201000103 +018100010101810001820100010101810001010187000100010001000106018500010001 +000283020102018401020102018701020001020002019c01020102010002010200010200 +0201000200020001020102010201020181010287020102010002010201028c0102010002 +000200020002000281020084000100020089000200020002000102008a00010200020002 +000201028602010001020100840001000100870002010001020002020283010201028202 +010283020002008200010283020102008100020502810102020285000100010002820200 +020302830102000282020002870201000200020002010283010201008300010002820201 +028202010281020183010201020102810102830201020181010285020002000102820200 +010201810201830102000186010200020001028202010081000101010402810002830201 +000201028301020102820201020102830102010201028501020002000286020102010201 +020102820001020102810002010281000206028501020002010201028101020502010181 +000282020102010282000200840002000200860002000200010282020102820200028402 +010001028202000201028100028d02010002000200010200010002008100020102810002 +030201018500010001000188010001000100010200010088010002000200010002020281 +010281020101010102810102820201028a02000200020002000200028202010281020181 +0102820201028802010201020102000201028f0100010002010001000100020002010286 +020102010200028702000200020100020102860002000201000101018100028402010002 +0181010285020102000201 +840100010001010181000101010100850100010001008100018201000101018100010301 +810001010181000184010001000101018100010101810001820100010101810001030183 +00010001860100010001000101018c000100010002000200010200029302010201020100 +020001020002000100010200028402010201028d02010201020102010002000200020302 +8c010002000200020002010201028a020102010201000102010088000200020102010200 +860001000102010206020201850001000100010101810001820102008300020002010281 +000284020002010282020102810201010182020100840001000102010281000206028501 +020100010201028400010201028202010283020002008100020202810002010284010001 +000184010002000287020002000200020081000282020102850200010200028202010201 +028101020302010184000100010084000102000284020002000282020001810102830201 +020101010102810102820200028202000201028100028202000201028101028302010002 +0202810102010281000202028101020102810102010281010202028100020a0281010206 +028101028702000200010200020102820100020502810102890200020100010201000101 +010102820001028602000200010002820201028202010282020102020285010201020102 +850201000201028802010002000200020082000102830201020081000201028100020502 +0200890100010001000201000105010202820102018101028102008a0002010200010200 +020001860100020001000291020002000200020102010001000100010001820100010401 +83000100018201000182010002810201810102830201020184010201000282020002 +82010001010181000101018100018201000181010001000b018100010101810001010183 +000100018201000101018100010101810001820100010101830001000101018300010001 +860100010001000101010102010185020102000102860200020002000285020102010201 +820102018c01020002000102010201020102840200020102010284010002000201028101 +0202028601020100010001010186020102000102008e0002000100020002000100010200 +028b02000100020102010001020101018100018601000100010001010182000200830001 +020101018302000102820201020102810002880201000201020002018401000100020402 +830102000104018200010282020002850201020001028502000200010201028101028602 +010201020001860102000102000281020183010201020102810102060284010002000282 +020102020202018202010201028101028102008500020002000101018302000102820201 +028602000200020002020283010201028202010282020102820200020102810102030281 +010202028101020102810002060281010201028100028202010203028800010002000200 +010082000102820201028702000102000200020202810002010201010102810002820201 +0281020101018d0001020102010002000200010200810002820201028302010002010281 +000201028101029102000102010001000100020001000100010282020002850201000200 +020102810102810201010194020102000200020002000200010002000200010002820201 +0201028101028e02000201000200020002000100010081000108018a0002010002000200 +020102020288000200020100020002010285000201020001810102020282010002830201 +0001810102 +810001820100010101810001090181000182010001050181000182010001840100010001 +0101810001820100010101810001010181000182010001010183000100010a018a000100 +010200010201020182010201840102010201850102010201028902010201020100020002 +850201020102018701020002010201020302910100020102010002000200010002000100 +019a01020102010201000102010001000100010001020002010201020185010001000100 +830001000105018602010201020102020285010201020002820201028602010200020002 +880200020100020002018101028202000203028801000100010002010284020102000201 +028401020102008100020502810102010284000100010201028500010201020081000282 +020002850201000200028202010282020102810201810102840201020102820200020102 +850102000201028502010201000181010201020301030281010284020102010202028100 +020902810002010281000202028100020202010101028100020102810002020283000100 +020102820002000200040182000100890001000102010200010083000100028202010204 +028101028a02010201020100010201028202000282020102020203008202000201028100 +020302820102010301850002000200020302820002000100860100020002000203028301 +02000287020100010200010283020102018a010001000100010001000201028b00020002 +000201020002010281020181010201028101028b02010001000200020100010202028b01 +020102010002010001000188010001000102010001010181000181010285020102010201 +01018202010282020001 +010181000101018100010101810001020102000101830001000101018100010201840001 +000100810001010181000101018100018201000101018100018201000101018100010301 +81000188010001000100010001010101028301020102820200028a020102010201000200 +020088000200020001020002860201020102010285020102000201890102000200020102 +0102850200020002019a0102010201020102010201020102010001020102000201020102 +0184010002000281020081000281020105018d0001000100010001000200020001010184 +020102010286020102000200028502010201020182010002010281010206028101020402 +030101000102810102820200028202000282020102820200028202010201028100020202 +030183000201028202000282020102830201020181010282020102010281000283020102 +018101020102810102020281010282020002020201008702000100020100020202810002 +04028101020e0281000207028501000200020102018a0201020102010001000100010081 +010287020100020001000188010201000200010001840100020002820201028202010203 +028101020102820100028202000284020102010286020102000100020202840100020002 +810200850002000100020402810102010281000285020001020102020289000100020102 +000100028202000203028101028202010287020002000200010083000200028402000201 +028202010202028201000181010282020102820200020102860100020002000282020001 +840100010001020192020102010001000201000100020002010201020202840102010002 +01028100020102830001000181010202020101840200010201 +810001010181000101018100010301810001040181000101018100010201810001050181 +000101018100018201000101018100010101810001820100010101830001000106018500 +010001000184010002000289020002010002000200028602000201020100870001000200 +010002870201020102000200850002010201028702000200020102018301020102010281 +010283020002018101020302820100028102000100010101008902000200020102010001 +040181000184010001000102018802010200010200020001008401000201028402000201 +028702000200020002008100018401020001008500020001000202028101028602010201 +000200830001000282020102840201020102810201830102000282020002040282000200 +830001000182010002820201020102840100020102820200028202010281020102018202 +000284020102010202028101028202000203020100810102020281010201028101020602 +810102820201020a02810102060281000203028f00010001020001000100020002000102 +8302010200880002000100020001008500020002000286020102000102018b0102000100 +020002000200020102810102040288010201020100010001810100860001000100010088 +000200010001020001830102010282020002020281000101018c00020001000200020001 +000100810001860102010001000282020102020201010202910002010200010002000200 +020001000200020402020187020100010002000199010200010001000200020002000200 +01020002000102010201028a020102010001020001000282020001010182000201840100 +0200010101810001010103028300010001 +010181000101018100010b01030084010001000101018100010101830001000182010001 +010181000101018100018201000101018100018201000101018100018c01000100010001 +0001000100028202010283020102018201020183010201028702000201020002018a0102 +000200020001020102860201020102010202028c00020001020102010201020102860201 +020002000203029500020102010201020100010201020102010002000100820001008100 +010201860001000100010081000288020100010001000100880001020002010201020202 +880102010201000201028502000102000284020102010081000101010102830102010283 +020102010201810002820201028202010282020002870201000201020002020281010281 +020185010001000102820201028202000282020102810201810102820201028202010282 +020002830201000283020001020102810102040281000202028100020102810102820200 +020a02810102060281010203028600020100020002860200010001000106018f02000200 +020001000100020100010201020101020101840002000200010082020002840201000200 +860002000200010201028100020102810102830200020001008302010201880102010002 +000100028102000100840200010001810102060282010002880200010001020102010101 +8d00010002000200010002000200020202810102020283010001028a0200020001000200 +020102030285000201020102040202018500020102000204028101028c02010001000200 +020002000200010089020100020002000201028402010201028502000201020081000282 +02010201028b010201020100010201000100 +830100010081000186010001000100018201000184010001000182010001840100010001 +020182000100810001010181000182010001010181000101010100870100010001000100 +88000100010001000100810001060181020183010200028402010201029f020002000200 +01020102010002010001000200020102010002000201020002018c010201020102010201 +000200020702810002820201028102008100028102018201020003008301000100810001 +010181000181010081000101018302010002880200020002000200028602000100020002 +030281000287020002010200010088000100010201000100840002000100810002860201 +020102010285020002000100810001830102010201028301020102880200020001000200 +020302820100020102010183000100028202010201028100028502010201000282020002 +820201020102810102820201020a0281000208028101020a028101020102810002030281 +000281020184010002000281020183010200028102018101008400010001000200840102 +010002820201028402010002018701000100010002008100028202010282020002820201 +020202820002008600020002000200830002010201028100028202010201028801020001 +000200020082000102820201008100020102840100020002820201028202000203020101 +880001000200020002000100850100020102018101020402810102820201028a02010001 +000100020002018a01020102010001000200018201000201020201010281010081000201 +028100020102010086020100010001028202010284020102010288020002010200020002 +8e0200020002000100010001000102008200020183010001028302000102820200010101 +840002010200 +820100010101810001090181000101010100010181000104018100010201810001010181 +000186010001000100010601810001010181000102018100010201850001000100028202 +010288020002000102010201850102000201028502010200020081000182010201870102 +010001020102880201020102010201028802010201020102010201028200010282020002 +04028a010201020102000200020181010201028100010301810001010181000181010089 +0002000201020002010286020102000200028e0201020002000201020100010001028102 +010101010282000201010186000200010002008300020001810102810201040181000101 +018200010201028101028202010282020102820201028202000203028401020102018101 +008300010002820201028302010201810102020283010001028402010201020a02810102 +05028100028202010202028101020a028101028102018101028502010201000282020002 +0102810002840201000100830002000106018d0001020001000200020001000200880002 +000100010002010101830001000101018900010001000100010002060281010283020001 +028202000202028100020102830102000101018400010001008600010001000100010002 +010302810002020282010001020182020100820001028a02010002000200010200020602 +030101028101028d02000200020002000200020001020202810002020281000101018602 +000200020001010185000200010001810100010085010001000201820100018801000200 +010200020101018902000100010201000102830200020181010202028100020102860001 +0201000102 +020181000101018300010001840100010001840100010001820100018101008100010201 +810001840100010001820100010101810001020186000100010001008100010101810001 +010183000100018401000100018401000100018201020186010201020102018101029502 +000201020001020102010200020001000102000201900102010201020100020102010200 +020002020285010001020102060290000200020002000201020100010001000101010300 +840100010200860001020102010286020100010201020202820102008a00020002010201 +020102010101810001010101028101028802000102010201020102010302840102010002 +830201000182010001020103028101020202880100020001000201028202010283020002 +0182010001010101020101030281000201028300020102040281010201028101020c0281 +000201028101020402010181020181010282020102040281010283020001028202000281 +020185010201020001820102018501000100010085000100010001810100010001020101 +010281010282020102830201020102010100860200020002010282020102820201028202 +010281020081000203028101020102810102810201870102010201000201810102860201 +000200020087000100010002000285020002000102040284010001000192010002000200 +010002000200010002000100010101010283010200020302830001000184010002010284 +020102010282020102010281000181010201028300020102010283000100020102870102 +000100020002820200028202010202028800020100020002000182010002010285000200 +02000101018500010201000181010202028201000101018100028602010001020100 +820100010101810001040181000184010001000184010001000181010083000100018301 +000100810001010181000182010001010183000100018201000101018100018201000101 +0181000101010100050101000102810002830201020183010201028a0201020002000102 +010002810201820102018101028102018401020002019301020002000201020001020102 +010201020100020102850002000200020102850102010201020102840002010001830100 +010085000100010001820100010101810002880201020102000100028202010201028b01 +000100020102010201000202028300010001010190000102000100010001000102000100 +010085000200020102810201030183000102010201820001008300020002820201028302 +000201830100020081000201028100028202000189010001020102010201028202010212 +028100020802810102010282010200820002018101000100030204018102008100018301 +020102820201020102810002830201020084000200010083000200018b01000100010001 +000102010086000200020001008200010286020002000100010401860201000200020185 +010002000200830001000202028101020102810102820201020102820100010101020281 +000203028800010002010200010085000100010002020281010281020101018c00010001 +000100010200010001020183000201008100020202850100020001028202010201028e01 +020100020002000100020002000202028201000284020002000204028100020102840002 +010201020189000102000200010200028402010201020202840100020002010283010200 +020102810002010281000183010200020102810002830201000282020001810102 +810001010181000182010001820100011501830001000188010001000100010001010181 +000182010001010181000182010001010181000184010001000182010001030185020100 +02000283020102018501020102010286020002010201028f020102000200020002000102 +010201028702010201020100020102880002010200020002018101020702830002010202 +020301810001050182000102830200020001008402000201028802010201020002000284 +020100010086000200020002018101028602010201020102820200010401020287000100 +020002010202028100028302010001010101008201000101018300020102820201028602 +010002000200810002820201028202010282020002020282000102070281000282020102 +040281010201028101028202010208028201020083000200028502010200020185010001 +000102820201028202010282020102820201020102810102820201028302000102860201 +020001000189010201020001000100010101850001000201028802010200020100020182 +010201820102008800010002000100020183010201020102830102010203028100028502 +000200010203028301020001010101028601020001000100020083020102010301810201 +810102050282010001810102820200020502830002000288020002010001020102030281 +010281020101018b00010001000100010001020103010402810102880201000201000200 +028102019901020102000200020001020002000200010201000201000100018201000103 +0183000100010101870001020100020102030281000286020001020100020102810002 +010181000101018500010001000105018300010001060181000182010001010185000100 +010001820100010101810001820100010101810001010181000182010001010181000186 +010001000100018101028202010283020102018301020002010282010002870201020102 +0102018b0102010200020002010201028502010201020197010201020002000200010200 +020102010201020102010002820200020302810002840201000100010083010001000200 +850100010001020102810102860201020102010202028601020002000200860002010201 +020081000201020101810002880201020001000100020102850100020001000200820201 +02020209018100018301020102820200028402010001028502000102000203028101020a +028100020402810102820201020802810102830200010203028201000285020100010200 +810002010285000100010002820200018301020102010283010201020102830102010083 +0002010203028a0001020001000100010001020184000100010085000100020002820201 +028502010002010281020103018302000102820200028102008400020002000200020281 +010205028201020181010281020101010400810200850002000200018e01000100010001 +000201020102010282020102850201000100018501000100010001008e01000100010200 +020100020002000201020101850201000200029002010002010200010002000200020001 +028a02010200020002000100020402830100020102018102010601810001a20100010001 +000102000100010001000201020002010200010200010201000201020002830201000101 +018300010201 +810001010181000106018100018201000105018300010001040183000100018201000101 +018100018201000101018100018201000101018100010101810001820100010101810001 +07018c020100020002010002010201028902010201000200020002010286000102000201 +008300020002870201020102000200890002010201020102010203028600010201000102 +010286010201020102010101810001010181020101018200010281020184010200010083 +000200020102810002010201000202810102840201020102860200020002000282020002 +010201010300840201020102820201020402810102840201020102820200028202010001 +008101008100010101810001830102010203028101020b02810102830201020181010206 +028301020002010281010282020002010281010202028101020202810102820201020102 +810002830200010202020101810201010183000200028202010201028101028502010201 +000201028101028102010201820200018201000204028601000200010001810100820002 +018401020102008400020001028302000200850002000100010101810001840102010002 +820201028202000284020102000284020102010286020002000200028102010101860002 +010200020002008102008100020202860001000100010201028100028202010283020100 +0101018102010101820001028b0201000200020002000200020102810102850201000102 +018801020100020102010081000187010001000100010201028100018301020102020281 +00028d020002010201020100020002000286020002000200020202810002820201028702 +010201000102018601000102010001010182000201810102020281000201028500010201 +00010101810001 +010181000101018100011401810001820100018401000100018201000101018100018201 +000101018100018201000101018100018201000101018100010101880001000100010201 +028702000200010201028a02010201000201020102018501020102010201028700020001 +020102008200010286020100010201020102830102010281020085000100010201020184 +020102010285020100020002810201010105008402010001008700020102010001028602 +010201020102870201020102010200030001018202010001008801020102010201000101 +0101028101028202010283020002000200840100020002810201820102018101008b0001 +000201020002010201021202810102010281010282020002040201010302010102028100 +020102830002000201028101020302850100010001008400020001008300020002870201 +000200020102010201018202010281020181010282020002860201020001000281020181 +010081000201028101020202810102820200010101820001008700020001000201020102 +840100020102830201020102018100010201820001000200820200020202010102028100 +020102810002050282000100010083020001008500010002000281020101018902000102 +010201020102010282000102870201000201000100860002000200010285020102000102 +9e0201020102000200020002000100010002000200020102000100010002010201028400 +0200020001008402000201028202010201028b0100010002000200020102018201020182 +010001020186000100010001028202010081000201028100020102810002010281000288 +020100010201000201820100028402010001020002 +8100018a0100010001000100010001820100018601000100010001820100018601000100 +010001820100010501810001010181000182010001010181000182010001010181000182 +010001010181000101018a00010001000200010201028202000284020102000286020102 +010201028802010201020002000283020102008100028602010201020102020286000201 +020102018401020102010101010081010285020001000102850201020001020202890002 +00020002010201028c02000100020002010001020102880200020002000200028d020102 +000200020001000102010282020102020281010284020002010282020102820200028202 +01028102018201000202028101020302810002100283000200020a028100028102010201 +810200810002010283010201020102810102820200010101020281010282020102820200 +020502840002010002010283010201028102010301810002850200020100028202010201 +028100028202010281020181010203028400010200020202810102010201018100010101 +840001000201830102010003008301000200860002000100020182010001820100018301 +0201028202000284020002000202028101028102018101028102018a0102010200010201 +00010003008b010201000102010201020002010281000284020002000202020101820001 +0086000100020102018a0100010002010200010002010282000102010283010201020202 +8b0002000100010200010002018101020102830001000281020081000183010201020102 +89000100010001000100018101008a000102000100020001000288020001000102010200 +8a0002010200020102000102820200028802010001020100010282020001010181000101 +01810001 +820100010101810001060181000107018100010201810001020181000103018100010101 +810001010181000182010001010181000182010001010181000182010001010181000101 +018100028202010282020002830201020187010200020102010285020002000102810200 +86000200020102008700010002000201008d000200020102000200010201020101019100 +020002010201020100010001000102010201028500020102010283020001008800010001 +000102010081000288020002000200020102860201020102010285020102000200850002 +000200028402010201028402000200028402000200028202000282020100840002000102 +820200020702810102820200028202000202028101020602810002860200010002000286 +020002000201028502000100010201028101020102810102840200020002020281010282 +020002010201018202010201028400020002000100010201000502810100850001000200 +0204028101028202010283020001028402010002018b0100010201020002000200020202 +820002018801000100010002010001000102810002820201028302000200810002810200 +820002010301820002008100018101028202010201028301020102050281010285020100 +020100010090020102010201000200010001000102010284020002000201028101029802 +010201000100010200010201000200010001000100010002020281010201028101020102 +860100010002010285020102000201010181000181010201028f00010201000200020002 +010200020102820201028502000102000287020002010002000283020001020102840102 +010002010201018600020102000201820100018301020002010201008d02000201020001 +00010002000200 +020181000101018300010001820100010201810001840100010001020181000101018100 +010201010081010083000100010101810001010181000182010001010181000182010001 +010181000182010001010183000102018801020001020102010292020002000102010201 +000200020002010201028e02010201020102010201020002010290020102010201020100 +0100010001000100840002000201070101028101020102860102010200020003008b0201 +02000100010200020002820201020102850102010001028e020102010002010201020100 +02010282020102040283010201028202010282020102020283000200020b028101028402 +000201028102010101010281000282020001820100020102010082020002010284000201 +000285020100010002820201028302010201810102010285010002000102810200830002 +000201028200010284020001000286020102000200020202820001028102010101830200 +010283020102018101020102820100018101028102018101028202010281020083000200 +020202810002010281000282020001010103028101028202010082000100820001000300 +870102000100020001870100010001000100810002820200020202830102000282020102 +810201010101028201000101010102030001020101010003018202000202028100028202 +010286020001020001008700010001000201028a02010201020100010201020302820100 +020202890102010201000100020185010002000201830100020186010201000200028202 +01020502010084020002010283020100018a010001000201000102000285020002000201 +930100010002010200020102000201020002010002810201020189020001000201020002 +01810102 +820100010101810001020181000111018100018101008100010101810001820100018201 +000101018100018201000101018100010101810001820100010101810001820100010101 +830002000282020002870200020001020102840201020102880201020102010200029c02 +010201020102000200020002010201020102010002000201020100018501020102000102 +010100860102010002000283020100020302810102890201020002000200020094000102 +010002010001020102000102010201020002860201000100020087000100020102000282 +020102120281000202028101020502830102010081000102018200010204028200020186 +010002000201020402810102010203018202010281020181010286020002000201028202 +000282020102010201018202010282020002030282000200810001810102010285010002 +000200820001020102830102010282020001810102020286000102000200018201000184 +010201000282020002060288000100010001020002840200010201820102018201020182 +010201830100010081000181010284020102000102010202810102010283010200028202 +010201028100028402010201028202010082000102020289010001000100020001028602 +000100010002010281010281020181010001008e02000100020001000100020001000201 +028300020002040281010281020181010001008802000200010002000287020100020002 +0002010283000100020402810102820200028102018a0102010002000100020001830100 +01008100018401000200028602010002000102830200010286020002010001028c020002 +0001000100020001000288020100010201000100 +030181000101018100010201830001000184010001000184010001000182010001820100 +010201810001020181000102018100010101820001008500010001000186010001000100 +0182010001010181000182010002820201028402000201028b0201020001020102010201 +028902010201020002000102900201000200020002010201020102010201020184000102 +010283020002008f0001000100010002000201020102010201028b010200020102010200 +0200029b0200010002010201020100020100010200020002010002010200020181010283 +020100028202010217028200020101010302810002020202018302010001030182020002 +8b0200010001000200020001008300020002820200028502010201000183010001020102 +8101028202000285020102000102010284010002010201028a0100010002000100020102 +010282010002010281010203028100010101010281010201028100028102018101028302 +010200840001020102820201008100028402010200020202810102010281000108018400 +020002000200820100028202000206028100028202010002000102810002060281000204 +0284010201000101018402010002008800010001000100010201028f0001020002000201 +000102010002000181010083000200020102030188000100020002000102820200028702 +010002000200018101028202010282020102820200028502000201020183010200020202 +010188000102000102000201860100020002010284020002010202028201020184010001 +0002850201000201020102810001010184000201000286020100010201028d0200010201 +0001020100010200020102810002 +010181000101018100011501810001040181000103018300010001840100010001010181 +000184010001000104018100018201000101018100010101830201020186010200020001 +020102930100020002000102010201020102010201020102010286000102000100018b01 +020102000200020001000104018102018101020202010188020102010201020102820201 +02820201028a020102010201020102010088000200010200020102810201810102840200 +020002040283000200028402000200020b02830102000289020102000100020002008200 +010202028801020102000100010081000182010001030186000201000201028102018101 +020202810102030281000281020101018100010101810201810102810200010002028401 +020100020102810102060286000200010002008200020082000102010284010201000102 +010200850200020102018101028202010204020101830001000186010002000201020402 +8901020100010001020102850201000100010a0181000101018600010001000100820002 +010301820201028402010200028302000102030282000100840001000100820001020202 +820001028102008100028402000201020702010181000104018900010001000200010201 +020107028101028202000281020004008102018201000101010202810001860100020002 +000201028100028802010002000100010284020002010286020002000200028202000202 +0283010001028402000200018201000201028600020102000102850200020001028b0200 +020100020102010002018301020002 +810001010185000100010001820100018401000100018401000100018b01000100010001 +000100010001000101830001000182010001840100010001820100018201000101018200 +010087000100010001000182010001010182020102820201020202810102840200020002 +840201020102010201018802010201020102000201028300020100020081020102018302 +010201030190000100010201020102010201020102010201028b01020102000200020002 +00028a020100010002000102010201028100020702810002060281000201028101020d02 +810102900201020102010001000100020100020002870200020100020102810201820100 +010101820200010101030286000100020002008400020001020302810102020201018500 +010002000282020102010284000102010286020102010201028302000102890200020002 +000100020085000200020102840201020102820201008200010289020001000102000201 +028202010282020002010282010201010183000100028202000282020102020282000201 +020181000182010002850201020102008700020001000200020602010082020102840201 +00020183010201020b028301020100860002000100010081000104018102008100028602 +010002010002020281010282020102810200010086020002000200020202880102010002 +000200028202010282020002010282000201010189020102010201000200028302000201 +010187020001000201020181010284020102010201029701000201000201000100010002 +000201000201020001000296020100010002010001020100020102000200020002000201 +02810002890200010201000102010202020100 +850001000100010101810001840100010001820100018601000100010001840100010001 +010181000105018300010001050181000101018100018201000101018100018201000101 +01830001000182010001810102020282000201820102018d010201020100020002000200 +0200940002010201020102010201020100010200010001008a0001000100010001000201 +820102018b01020102000200020002000285020001020102020285000200010001810100 +820001008500010002000202028200010209028101020402850102000200020302810102 +820201020102810102820200028402000200028402010201000100010182020102820201 +028702000102010002018601000201020001010181000201028400010002000200820200 +020202810002010282010201030101028500010002000201028401000100028202000201 +028101028502010201020084000200020081000282020002020283010001028102008500 +010201020082000102820201020102810102820200028c02000201000100020102010002 +020281000282020102010201018400010002008800010001000200020081000282020102 +010285010201020001010189020002000100020102018101020302810102010281010289 +020102000102010001000100810100020001028101028202010085000102000102820200 +028602000100010201850100020001028302000100020089010001000100020001020502 +020188000100010200020002020281010201028800020002000200020183010201028302 +000102880200010201000100018201000184010001020101018e02010001000201020001 +00010200028402010001028f020002010201020002010001020100010101820002018201 +0201820100010201 +05018100011601810001840100010001820100010a018100010101810001820100010101 +810001820100010101010002018100018501020002010282020002880200020002000200 +028402010201028202010201028901020002000201020102010282010001040191000100 +010002000200020002000201020002010294000201020102010201020002010001020100 +010002020281000201028100020802850002000200028602010201020002030282010002 +010202010102810102020283010201028202000281020002008402000200020702010181 +000181010084000201020102018602010002000102820201028202010282020002030282 +010201860102000100010001000202810102070281000201028100028202010283020100 +028702000102000200020202810102020281010281020101010102820002008700010002 +000102010601810200850001000201020502810002020281010285020100020002830201 +020101018202010085000100010002810201830100010002008301020102810201830100 +010201028201000204028201000281020085000100010001020184020102010203028301 +020100850002000201020602830100020083000201020602850002000200020202810002 +010285000200010001020101028201000183010002008800020102000201000181010203 +02810102830200010201028d000200020002000200020002000284020002000201028e00 +020001020002010200010201000101018600010002010002010281000101018500010201 +000181010285020102000200 +860100010001000115018100018201000101018100018301000100810001820100010101 +830001000182010001010181000182010001010181000182010001020181000101018500 +0102000201850102010201028402010201028b0200020002000200010201028102018301 +020102850201000200028302010001820100018601020002000201910102010201020102 +010201020002000200020202810102820201020102810102060285000200020002010281 +010201028101028602010201020102020286010200010001008400020001020202810102 +820201020302830002000201028401000201028802010200020102000282020102040287 +010001000100020102018702000200010002008500020001000206028101020102020189 +000201020002010201020102810102010203018102018101020102870102000100010002 +820200020202810002010284000102000101018200010284020002010282020102820201 +028102010101820200020102860100020002000202028101020202820102000100810200 +900002000100020002000102000100020102820201028602010002000200010082020002 +820201020e0283010200018b010001000100010001020002810201830102000281020183 +010001028102000100030283010001028702000200010002000100820200018101028402 +000201028302000102020282000100010086010001000100010201830001000101018100 +02850201020001028502010201020181010201020301810201820102018c010001000100 +010201000102018201000101018100018c01020001020100020002010001010181000283 +020100028a02010002000200020001020202 +020181000101018100018401000100018401000100018401000100018401000100010101 +810001830100010085000100010001040181000102018100018201000101018100018201 +000101018100018401000100018a01000102010002010201028202010287020002000201 +020194010201020102010201020102010201020102010002860200010001000189010201 +020102010201020102870102010201020102010283010201020102830102000202028101 +020102840100020102050283000200020202850102010201028402000201020202810102 +8b02000200020001020001000201028300020002820201028202010203028e0001000100 +020102000200010201020202010185020100020002810201030101028900020002000102 +010200830002000203028101028402000100018101008100028202010201028101028602 +010201020002040285010002010002830200010082000102020285010201020102010201 +018100018301020002040281000281020102010100010181020081000281020101010402 +8100020302020102020101880201000100020001008d0001000200020102010001020100 +8e0002000102010200010002010201020102810102010283010001008500020100010001 +0081010285020100020102010286000201000200028202010205028a0002010001000100 +010201010184020102010201028301000102820200020402010101028601020102010001 +810102810201010181020184010002000285020001020001030190020102010001020001 +000200020002000204028400020102008100020102810002010281000201020100840201 +0200028402010001028302000201820100010101850201000100018301020002 +820100010101810001150187000100010001000181010001000101810001040101000101 +810001010181000182010001010181000182010001010183000100018201000202028301 +02010284020102000286020102010201028a020102000200020002010203028401020002 +01040183020001028202010201020101020285010200020102080281000201028f010201 +020102010200020102010201028202010284020102000283020001028202010286020002 +000100028402000200028602000200010002010285010200020002040283000200028102 +008400020001000100010105028201000202028100028502010201020102018600020001 +0201008a0002000102010200010002010281010202020101820001028102008100028202 +010282020002010281010201020101820201028102018101008100020202840001000201 +83010200028f020100010200010001020100020001020402050101008902000201000100 +020002060281000285020001000200850002000200010801890002010002000200010001 +008701000100020001020102820102018b01020102000100020001020002008301000100 +040084020001000181010081000101018300010002040204010302830001000201028100 +020302810102070286000200020002000100020185000102000100010001028201020181 +010206028b01000200020002010001000284020102010296020100010002010200020102 +010002010200010201000284020102000201028100010101810001010182000100870002 +000201020002820200020102 +030101000101830001000182010001840100010001860100010001000181010085000100 +010001010189000100010001000100010201010082010001820100010101810001820100 +028602010002010001010101000201020283000100028102008100028602010201020102 +82020102820201028f020102010200020102010201020100018101000100870102000200 +0200020a0281010208028101020102880102010201000102010101010083010001008900 +010001000200020102020283010201028102010101010282010200850002000200028402 +010200028202000284020102010201028101028202000286020102000201020202030101 +028101020102810102030281010281020103018802000100020100020083000100020602 +820002008200010083000201028202010282020102020284000201000285020100010002 +860200010200020081000201028101020202810102810201820102010201030201008502 +010201000185010201000201810102880200020001000200028202000205028301020102 +810201020101028501000200020084000200010282020102820201028202010289020102 +000200020002008100020302810002010286010201000200010a01010001018402000200 +01840100020002020283010002018a010201000200010002000281020183010201028102 +018301020002010282000201820100020102020101028101028202010201020100010102 +00820201028202010282020102820200018a010201000100010001020101018300020001 +880100010001020100018401000100020102810002820200020102830001000283020100 +020102820001028302000201890102000201020002010081000182010001 +010181000114018700010001000100010101810001010185000100010001010102008201 +000101018100018201000101018600020100020102810201820100010101010002018502 +010200010201028201020089000200020002010201029202000201020102010201020102 +000100020001010182020002080201010202810102030281010284020002010201028601 +020102010201020101020100820100010101860001020102010084000102000181010282 +020102860200020102010084000102010281020085000201020102870201000102010002 +010288000201020001000200840002000102820201028302000102820201020502040181 +020185010002000200820001028102008100028202010203028101028502010201000101 +018100020102810102850200010201020102810002820201028302000100030081020082 +000100810002020283010201028302010002840201000102830200020181010202028201 +020181010281020084000200010087000100020102000202028100020102850100010002 +008900020002000100020102830201020101018102000200830100010001008902000100 +01000102010202028101028a020100020002000200020001008601000200010002030283 +000200028602000100020002070281000181010281020103018200010081000201028400 +020100028202010203028a01020100020001000200020102810002010286000100020001 +020102890002000100010002000282020002840201020001820100028402000200020202 +870002010200020002010281000201028100028402000200020102810002010281000201 +02810002830200020102018100018501020002010082000100 +810001010181000109018100018601000100010001040181000182010001010181000103 +010200820100018401000100010201810001820100010101810201810102840201020001 +820100018f01000100010201000102000100020002020285010201020102970201020102 +010201020102010201020102010001000201020602850102010201020702890102010200 +020102010201028a00020002000102010002018401000102008800020002000102010202 +0283010201028402010201028e0201020002000100020002000200028202010201020101 +040281010201028101028202010282020102830201020101010202020101028100020302 +880102010201000100018501000200020083000200020702010081020001008101020202 +810102830200020181010283020102010101850001000200020102830002000201028301 +020102820201020102820100020102870100010002000200020082010002020283000100 +028302000200820002000100820200020402820102018101020102830102010201020201 +820002008500010001020101018202010203028101028202010283020002008100020102 +81000202028501020002000201028200020101018a020001000102000200020101018500 +01000100010101820200028c020102010001000100010002008100018801000200020002 +010204028100020402810002010202010202010181000101018200010202028101020702 +810102010285000100010001840100010002850200020001028402000200018301020002 +820200010101810002810201010181000183010200020102810002930201020102000200 +020100010200010001000100 +870001000100010001820100018401000100010401820001008500010001000101018100 +018c01000100010001000100010001010181000106018100010101830002010287020102 +000102000101018100010101010281010201028101029d02010001020100020002010201 +020102010201020102010201020102010207028101020902820100028502010201000281 +020083000201028802010201020002000201028100018201000101010102030181020087 +000200020002010284020102010284020102010284020102010283020002018201000282 +020002820200028202010203028101028502000200010083000200020102810102840200 +020002020281010205020101810201820100018801020001020002010285020001000102 +040284010201020103018902000200010001000200820001028202000283020102018101 +008300010002820200020302810102020281000202028201020181010282020001860100 +010002010283020100028502010002000283020102010101040281010203028400010001 +008b000100010001000100020102820201028402010002008e0001000200010002000200 +010201000100010281010202028400010200028502000100020001000102810102820201 +028502010002000282020102850201000201028f02010201020102010001000200020001 +060181000181010205028201020103018200010001000102010085010200020002820201 +020102810102010283010201028402000200028202000181010283020102010201830001 +0001820100018c0102010200010201000102000286020100010001028902000201000102 +010002010281000201028301020002820201028102000100810200 +020181000101018300010001020181000184010001000104018600010001000100010001 +018100010101810001820100018201000101018100010301810001820100018101028202 +010285020102010002820200010101010089010201000102000200018501020102010202 +028501020002000201028f00020002000201020102000201020002880201020002010201 +028d02010201020102010201020102010101860201020102000202028801020102010201 +020102018f00010001000100020102010002010201010101028101028502010201020082 +000200010001020100840200020102810201010105028701020002010002008400010002 +018101028102010101820201020702810002870200020001000100860001000200010082 +000102010284000201000205020100810100810001810102820201028202010283020102 +01010103028201020082000201810100810002820201020302810102820201028a020102 +010001000100010002000101810201860102000100020101010100850200010001020102 +810002040281000281020183010201028302010201020101008201000101018200020081 +00020502810102820201028202000282020002030202000101860002000201020101018b +020102000102000100020102830200020085000200010002010283000201028302010001 +03018b020100010001000100020002030281000201028100020102890002000200020102 +000288020100010001000102040281010201028301020102810201030185000200010001 +820100028102018301000102820200010201850001020100018501020001000101018400 +010200028702010001000102010201870200020100020001810100820002000000 +820100018201000105018100010401880001000100010001008200010001000201810001 +820100010101810001030181000182010001040181000182010201860102000102000286 +020100020100010201850001020102019a01020102010201020001020102010201020102 +010201020102010283020002018101020102810102840201020102830201020101010102 +840001020002010281000202028901020002010201020002860201020102000283020001 +008100018301020102870201000200020102020283000200028402010201028502010001 +000201028401000100028402000100020302010182020102820201028102008400020001 +028202000202028400010001028202010207028200020184010201000201028301020102 +840201000200810002060281010281020101018202010281020102018302010002010281 +010201028101020202820102018101008100020302010101028101020402820102010401 +020283010201020102880001020001000200020102810102030281010201028101028502 +000200010088000100020002000102820201028502010200010283020002008d00020001 +000200020001000200020302850102010002018401020001028a02000200010001000102 +018101020102850001000100028202010282020102060201018b02010002000200020001 +020103010102840002000102020285000200010002810201810100810001030184000100 +010202028201000282020102880200020002000200028902000100020002010201840100 +010001010181000189010200010001020002018401000100018201000101018100028802 +0100010201000201010184000102010087000102000200020082000102 +020181000101018100018401000100018701000100010001000100020181000183010001 +000100010181000101018100010101010081010082000100810001030181000101018100 +028502010002000286020002010200018401000100018f01000201020001020102000201 +020102010281000202028900020102010201020102820200020102870102010201020102 +84020002010202028d000200020102010201020102000283020100028802010201020102 +01028202010201028201000181010001008a020002010001000102000286020102010201 +028402010001028102000100810200810002840200020102010282010201810102010282 +010002810200820001008700010002000100028202000101018100028202010201028101 +020402830002000281020082000100840002000100810002010201000102820001020302 +810001020182000102820201028102018201020183010201028702010201020002008500 +01000100020302810102020281010202028101020102030101028b000200010002000102 +0001008400020001008b0002000100020002000200028202000202020101820001008600 +010002000200040082020100850001000201028202010282020102030281010205028400 +020001000100810201820102018201020189010001020001020001008200010283020102 +00830002000205029600010201000100010001000100010001000100010001020c028100 +020102820001000100820201028102018101020102810102820201028202000202028401 +020100028302010201010186000100010002018201000182010200820002018601000102 +010001020182000201860100020102000286020001020002018201000186010001000100 +01010185000200010001 +860100010001000108018100010201810001010107008401000100018201000101018100 +010101830001000105018100018301000201810102810201840102000201830102010281 +020184010200010284020102010285020102010201010185020102010201830102010283 +020001028302000102820201028202010284020002010202028301020002860201020102 +010202028900020002000201020102020201010102870002000201020102010201008e01 +020102010002000102000200010288020102010200020102830201020188010201020001 +000102820201028202000202028400010201028202010282020002820201028202010201 +028101020102880001020100010201020702810002810201850100010001000200830100 +020184010200020081000201028101028102010501010201018202010205028501020102 +010283020100018401000201020502010102028101028102010301030202018202010281 +020184010002010281020085000200010001840102000102820201020302880002000100 +020002010101820201028102010301810201010103008101000100850100020001008100 +018101020102010101028101028102008100028102018201020101018200010201028401 +000201008600010002000200810002080201018302000102820201028502010001000104 +010302810102820201020102810002030283000201028102000200020281010201028301 +000201810102030201018100020102860002000102000284020102000289020100010201 +020001028202000101010100020181000184010200020182010002850201020100018401 +0001020101018700010001020100010101 +820100010b01840001000100820001008700010001000100018201000101018300010001 +820100010101810001010102008201000183010001008100018101028102018301020102 +82020102870201020001020002010281010282020102810201850100020001028b020002 +01020002000200010202028a000200020102010201020101010102850102010200028402 +000201028602010201020102830200010283020001020202850002000201028202010201 +028801020102000201000205020101010286000201020001020302810002870201020001 +000102010202000302810102820201028202010282020102820201008600010002000200 +810002010282010201810102010202010c02810001810102020284000100010081000102 +010602820102010101810201040182020102070282000100810002010201000302810102 +810201810102010201010202820102010401860200020001000283020001008300010002 +020201018300010002030281000203028201020103018a00020002000100020002008700 +02000100020002820201028b020100020002000100020002890200020002000200020081 +000285020102010201020101028500020001020182010001040101000102810002870201 +0201000100028a0201000200020001000102900200010002000100010201020100020002 +820201028202010281020082000102820201020502820100028202010201028100020202 +8101028c0200010201020102010001000101018100018501000100020182010001820102 +008500010201000201028400020100020102810002810200850002000200028102008300 +0100028302010001810100810002 +810001010183000100018801000100010001000101018100010201010082010001010181 +000182010001010184000100010085000100010001810100820001000100010181000181 +010282020002820201028302010201890102010200010201000201028201020101018700 +020102010201028d02000102010201020102010201020102870102010201020002020283 +0002010286020002010201028402000200028c020102010201020102010201028c020002 +000200020102010200028202000202028801020102010001000281020183010201028302 +010201820100028202000282020102010203008101020202810102820201028502000201 +000282020102840201020102820201028102018101028402010200010301820001020302 +810102010281000289020102000100010001008300020001850100010002008100028202 +010203020201810001020106028201020181010282020100010086020002000201020102 +810102050281010201020101010203018a02000102010201000200028502000200020002 +008502000100010201028100020402840001000102810201830102010282020102810201 +830102010282020102870200020001020002820201028202000282020102840200020102 +8402000100028b0201000200020102010201028202010285020102000100880001000200 +020100020102820102018101028a02000100020002000102018201020182010001030183 +000201020102820102010301010201018502000200010202028501000100010282020102 +050288010001000100010200020083010001028402010200028c02000200020102000102 +010002010286010001020100010101810002020283000200018201020182010201010181 +0001010181000185010200020001 +010181000108018100010101810001010102000101810001820100010101810001820100 +010101810001820100010101870001000100010001820100010101810001820102018301 +020102830200020183010200028202000282020102010281010202028200020181010282 +020002820201029002000200020002000200020102010201028a02010201020102000200 +028402010201028202010282020002850201000200028602010201020102010281010202 +028501020102000202028101020202850102010201028302000102820201020202810002 +840201020002020282000100860002000200010282020102830201020181010203028c01 +020102010002000200010002820201020402010102028101020702810102010202018200 +020181010201028100018101028202010207020601820201028302010201810102010284 +000102000201020400820201028202010282020102820201020102810002010202018100 +010101840200020001810102810201810100810002820201028102018401020001028202 +010282020102060281010202028300010001810102840201000200890002000200010002 +010282020102010286000201020001020102860102000102010281020083000201028602 +000102010002810200850001000200028202010282020102820201020402810102810201 +020183020102018701000200020001008400020001020102810002890201020100020002 +0102810200830001000283020100018301020102820201028c0201020100010200010002 +000183010201028602010201000201840100020002830200010202028500020102000284 +020002000201028100020102840002010002010283000201020102850002000100028302 +0100028302000200820002000000 +810001010181000102018100018201000182010001010181000184010001000101018100 +018201000101018100018201000101018100018201000101018300010001810100810001 +820100018301020102810201860102000102010284020102010284020102010201028100 +01890102000201000100010201028201020101018c020102010201020102000201020202 +850102010201028402010201028602010200020002820201028202010201028101028a02 +010201020102010201028502000200010282020100810002820201028402010201028402 +00010201820100028202010285020102000200850002010001028b020001020002000100 +020102030283000201028502010200010285020002000200810002810201810102010281 +01028302010201830102010207028300020102850200010002008d000200010200010001 +000102010203020101010285000100020102050281010203028200010001000102010005 +020101020282010002010281010201020201840201020102010201008201000202028400 +010002008100028702010002000200020102810102030203010102810102810201820102 +018101008200010086000100010002018601020002000102820201028202010201028300 +020100850002000100028202010201028301020100810002820201028202010281020085 +000200010001830100020101018202010287020100010002000181010203028101020102 +890002000200020002010202020401840001020100010001010402820100028602010002 +010201050188000200020001000102840200020002830201000284020001000183010200 +010101010002018100010101810001840100020002850201020102008300020002020281 +000285020100020002010282000200 +010181000103018100010301810001820100010101010002018100018201000101018100 +010101810001820100010101810001820100010101830001000101018100018401000102 +018101028202010202028500010200020186010201020001028602010001020102010286 +010200020001028202000202020101010282000102830200010284020102010281020181 +010282020002840200020102820201020202810102860200020002000202028900020002 +010200020002020285010201020102010281010201028801020100010001020183010201 +020202010182020102820201000100820201008700010002010201028202010281020101 +010302010185000100020002820200020102010181020182010201020105028100020102 +860102010201000102010102840002000102040282010002020281000201028300010002 +020282010002820200020102850001020102008300010002010281010282020002030282 +010002040285000200020001010185020001000102010282010200840002000102830201 +020081000101010502810102810201830102010281020183010201028202010282020102 +820201028202010282020102820201028202010206028201000282020102010281000201 +028101028502000201020182010002010201008701000200010201028402000200028202 +000201028100028402010200028102008b00020002000200020001000202028301020102 +820200020302020102020101840001020102020282010201030183020100028802010200 +020001020183010201029602010002010201020001020001020102010001020001020202 +85000201020002040286010200020102008100028102008400020001028b020001000102 +010002000100 +810001090186000100010001008200010083000100010101810001820100010101810001 +010181000182010001010181000182010001010183000100010101810002840201020001 +840102000201830102010283020102018301020102020288000201000201020102010281 +01028802010201020102010201028b010201020102010201020102840201020102020281 +010289020102010201020100028402010201028a02000201020102010201028a02010201 +020102010201028402010201028202010281020181010281020182010201810102850201 +000100020102810102820201028502010002000287020002000102010282020102030202 +010102810102830200020083000200028202010203028101028302000201830100010203 +028201020182010201010182000100820001028102008200020001000101070205010602 +010104028100028502000200010081000281020101018202010201028101020702010188 +0200010200020001008500010002000201028b0100020001020002000100020302810102 +030281000203020101820201028602010002000200010081010283020102018201020102 +010202030102008302000200830001000202028400020001020302810002020284000200 +010282020002820201020202010182000201830102010287020100010001020087000200 +010001000206028101028602000200020002020201008701020002000200020102860001 +0002010001020101028101020102850100010001028d0200010001020002010200020002 +8e0201000102000100010201000201008d00020100010002010200020100028302010002 +01028100028202010286020001020100020002 +840100010001840100010001820100010201810001010101008201000182010001010182 +000100810001010181000182010001010181000182010001010181000101010300010101 +028101028202010282020102820201029002000201020001020002010201000201028202 +010289020102010002000200029202000100020002000201020102010200020002840201 +02000284020102010282020002820201028602010201020102820201028c020102010201 +020102010201028802010201020002010286020102010001028702000200020001028302 +000102030283010201028302010201810102810200850002000200028202010202020101 +820201028502010200010203028400020001028202010201028201020181010202028101 +028202010206028401000200018401000100010101010281010201028201000201028100 +020302830100010201028201000282020002830201000282020100010081020084000200 +010203028100020102810002020282010002040203018202000201020101010286000100 +020002008100018101028402000201020502810102820201028402010001028502000102 +010282020102820201028202010282020102820201028202010201028101028a02010002 +010200020001028202010282020102820201028602010201020001840102000100850001 +0001000181010283020100028202010203028b0100020001000200020001028202000282 +020102020283000200020102890002010002000201000281020101018102010201020201 +018102010301880201020001000200020402810102020282010002010283000201028602 +010001020002890201020100010200020183010201028302000100820001008500010200 +0201880100020102000200020102840001020100 +0a0182000100810001010184000100010001008601000100010001010101008401000100 +018201000101018100018201000101018100018201000181010283020100028302000201 +830102010283020102018301020102840200020102010201010302820002018101028502 +010201020101018102018701020102000200020202850102010201020202810102860201 +020102010282020102820201028202010284020102010204028501020102010281020181 +010202028301020102010202018402010201020202860001000100010284020002010282 +020102010287000201020100010203028101028202010285020001020102030283000200 +020202810102020281000202020200030282010002030281010201020201810001810102 +810200840002000102020202010402060182020102810201810102820201020102820002 +010101010282000201010101028101020102810102020281010201020101010284010001 +000283020002008400010002008300020102040201018500010002000282020002010281 +00028102000100830102010282020102820201008c000100020002000102000102018501 +000201020181010202028301020002820201028102008100020102830102010281020102 +010202830002000282020102820201028302000201820100028202010282020002810201 +010182020102810201830102000287020102000100010201028101028202000201028301 +000102860200010200020003008502000100010282020002020201018202010202028301 +020102010282000102810200810001010187000102010002000282020002850201000200 +01880100010201020100020102840100010002830201000201028b000201020002000201 +02000283020100010001 +820100018201000101018100010201810001810100810001810100810001010181000182 +010001010181000182010001010183000100018201000101018100018201000101018100 +010101820201028102018701020102010002018901020002000102000102010283010200 +028402010200028202000282020102870200020102000200820002018601000201020002 +880201020102010201028402010201028202010205028101028402000201020102850102 +000201028102018101028102018101028302010201930102000201020102000200010002 +000200020102840201020102820201028202000282020102820201000200010284010002 +010282020102820201020202810102010281000281020087000200020002000202028101 +028202010201028101020202840100020102820200020102810001010187020001000102 +000201020401820200020502870102010001000102010283000100020102010081020004 +000202820100020202810002030281000283020002010101810201010185020102010001 +8101028102018601020002000100020083020001020c0288000200010002000201810102 +820201028202000286020102010200020102030103028b01000200020002000200010203 +028201020181010282020102810201870102010001000100010085020001020102040281 +010281020189010002010002010201028502010002010282020102060202008302000100 +010083010002010401810002050281000202028201020184010001000287020102010201 +0001850102010001028402000200028c020002010200020001020100028a020001000100 +0200020002010201008501020100020185010001000201820100018601000102010002 +060181000101018100010101810001810100850001000100010101810001820100010101 +810001820100010101830001000182010001010181000182010001010101008601020102 +01000282020102820201028a020102010200010201020183010201020102820001020102 +010101028500020102010283020102018301020102880201020102010200020202830102 +010284020102010284020102000282020102820201028402010201028202010288020102 +010201020002010281010283020102010101010281010281020101010302850102000201 +028102010201010283010201028402010201028602000100010002010282000102020281 +000282020002030281010282020102020281010282020002020288000102010201000102 +840201020102020281010201028100028102018301000200880001000100010201020a02 +050103020101810201890102010200010002010203020101020281010201028101020202 +81010203028601000102000201810100820002008d000100020002000201000200010082 +000102030281010202028300010201820102018101028202010088000100010002000100 +010083010001008100028102018301020102820201020102810002010281010203028101 +0202028f0002000200020001000100010001020101018402000200018201020181010201 +020101830201020181010284020100020189010201020100010200020602820001028202 +010201028701000200020001020202850100010201028102018101020402820001028f02 +000200010200020001020100020102830200010283020002010101810002010286000100 +020002018401000100010201830201000101018700020102010001028302000102840200 +020002 +010181000184010001000182010001820100010101010081010081000101018100010101 +810001820100010101810001820100010101830001000182010001820100010101810001 +830102000281020182010200810002830200020185010201020102840200020102020283 +000200028402000201028202000286020102010200028602010201020102010289010201 +020102010201028202010284020102000202028101028202010282020102840200020102 +810201870102010201020102840201020102810201810102820201020102860001000200 +020084000200010282020102020201018200010284020002000282020102810200820001 +0282020002820201020202810102820201028102010101830200020001008a0200020002 +000201020102820201020302010181020183010200020402810102030281000101018100 +028102018401000201028102018101028202010205028800010001020001000201028200 +01008a000200010201020002010201028100020102850002000100020202810102810201 +810102810201040183000102010101020202010102810102890200010201020102010282 +020102810201880102000200010001020102810100850001000100018201020101018202 +010289020102000100020002008400020001028202000201028200010283020102018101 +028602010002010201810102830201020185010002000201810102070202018202010282 +020102840201020102820201028202010203020101010203008901020001000200010201 +860102010201020181010203028100020102810102820201028102018901000200020102 +000102010284000102010082000102830200010286020002000201028a02010200010200 +0201020186010001020100010101820002008d00010001020100010201000100010101 +0a0181000101018400010001008100018201000101018100018201000101018100010101 +810001820100010101010002018100018201000101018200010282020102820200028402 +010201028202010289020002010002010201028402010201020102830102000282020102 +010284010201020183010200028302010201830102000202028301020102020281010202 +028100028602010201020102820200020102810102830201020185010200020102040283 +010200028402000200020102010182020102840201020102850200020102010101010282 +010002830201020183010201028402000200028202010282020002820201028202000282 +020002830201020181010282020102840201020102850201020001020102810002020285 +010201020102820201020102810102830201020103018202010284020002010205028101 +020302810102810201020101020201030201018202000201028301020102010202010402 +020101028100020202860100010001020181010202028101008100020102820002008600 +010001000200830002000207028101028302010201010182020102920201020001000200 +020001000200010001020102010102010185020001020102060281010281020181010281 +020193010002000100010002000102010002010200010204028201020185010201020102 +820201028302010201810102810201020101028101028402010201028102010101040202 +018202000204028201020101018702010200010001028202000281020101018600020100 +02000201028c00010201020001020100010001850100010201008400010200028102008b +00010200020002010200010201028100028a020100010201000100020182010001 +810100810001840100010001830100010083000100018101000100820100018201000101 +018200010081000101018100018201000101018100010101010002018100018201000189 +010200010200020001028202010282020102860201020102000285020102000102010285 +01020102010202028101020102820002010101820001028a020002010201020102000286 +020102000201028302010200830002010282020002820200028202010284020102000201 +028300020002860201020102010284020002000202028400020002000300810200810002 +030282010201840102000201860100020102000281020001008301000100010001028201 +000182010002010281000283020001028102000300860200020002010201028101020102 +01010302810102820200020a028100028102010301020281010282020102830200010203 +028600020001000100830002000284020100020085000200010200010001028400010200 +028202010205028201000205020301020281010282020102860201000102010282020102 +85020102000102820201028202010204028a000100020001020100020004008302010201 +8101028c0201020100020002000100020087000200020002000183010201028102018201 +020182010201010103028601020102000100830001000103010202810102820200010101 +820001000100020182000100010002010202860001000201020002008a02000100020102 +000200010201820201020902810001010102028301000102840201000102840201020001 +920100020002010200010201020002000102010285020002010001810102010203018100 +0284020001000188010200020102000201840102010001810100 +820100010601810001010181000181010081000101018200010083000100010401810001 +0101810001820100010101810001880100010001000100018a0100020102000201000201 +830102010287020102010002010286020002010201028c02010201020102000201020002 +020283010200028302010201850100020002018701020102000200028202010284020002 +000284020102000284020002000282020102040281010284020102010285020002000200 +810002010283000200028402000201028202010281020181010202028301020102010203 +018202010282020102020281010282020102840201020102820200020102830002000282 +02000282020102820201028202010203028101020702880100020002000201020b020201 +070201010402810102050205010102820102018101028202010201020101820201028202 +010201028301020102040281010204028300020001810102010282010201810100820001 +028302010200820001028302000100850001000100020102810001810102840200020102 +81020103018d020102000100010002000100010083000102018101028502010201000202 +028300020102820201020102830102000281020101018600010002000200870002000102 +000100030005028100028402010201028202010203028101020202880102000102000102 +010201810201060181020103010202020182000201830102010202028601000200020002 +8402010200028b0201000100020102000201028202000182010200820002010101810201 +82010001820100028402010001008100028c020002010001000102010001028902000201 +02000200020182010001 +810001820100018401000100010101810001010181000181010081000101018100018801 +000100010001000182010001010181000182010001010181000182010001020185000102 +010002820200028202000283020002008300020102020281000287020102000201000201 +028701020102010201020102830002000284020002010201028600020001020102020281 +000284020102000202028100028202000282020002820200028202000284020002000201 +028100028702010200010001020102920002000102010002000200020002000200020081 +00020202810102820200018101008300020001850100020002008c000200010002000201 +02000200820001028e0200010001000201000100020001008c0002000200020001020002 +000202028200020082000102820200028202000201028100028802000200020001000186 +010002000200020102030083020001020302810100890001000200010200020001008102 +008500020002010281020001008202010284020001000287020102000200010201028200 +020081000281020083000200018501020100010081000181010085000200020102860200 +010201000282020002020204008902010001000100010001010183000100010201030083 +010001000200030283000100010101830001000181010281020104018802010002010002 +010201020101010281010203028100028602010001000100030083010002000100810100 +820002008800010200020002000282020102830200020088000200020002000102030281 +010282020102890201000200020001000101018300010001840100010001010181000184 +010001000182010200810001020101000101010285010001020002930201020100010200 +020001020100010201000102810200810001010181000101010000 +010101000601810001820100018101000100010181000101018100018201000101018200 +010083000100010101810001820100010101810001840100010001820100028202010285 +020100020102820200028402000201028502010201000201028301020102840201020102 +010288010200020102010002010289000201020100010200020102860001020102010284 +020002010284020102000282020002820201028402000200028102018101028202010203 +028101020202830002000282020002040281010286020102000201028402000200020102 +010183000200020202810102010282010201010105028301020002840201020102010281 +000202028101020102830102010282020102820201020102810102840201020002840200 +020001810102820200018301020102010281010201028201000181010201028101028302 +010201010182020102040281010281020104010102010101028101020302020182020102 +840201020102040283010201028202010207028101020102810002850200010201028702 +010200010002008500010002000202028101020202080181000183010001000100860100 +010001000105018102010301820200028102010201830200010282020002010201000101 +010085010001000100080001028301020102010201010202010182020102020288000200 +020002000200010084020002010203028200020181010283020102018901020002010001 +020102840201020102810201810102030283000201028202000203028100028402000200 +020102810002020201008101020102810001030182020100860001000102000103018100 +01010181000101010100020181000101018100010001 +830001000101018100018201000182010001010102008201000101018100010101810001 +820100010101810001840100010001820100010101810001820100010101870001000201 +000201820102018201020184010201020181010286020102000201028702000201020001 +028202000288020102010201020001820100020402010182020001810102010281000202 +028100028402000201028202010202028101020102810102840200020002820201020102 +840100020002890200020001000200020088000100020002000200010083020001000400 +050283000201008a00010002000200020002008800010002000200010002008502000200 +020086000100010002000200850200010002008600020001000200860002000200010002 +008401000100020302840002000102810200860001000200020007000302810002010201 +008501000100020086000200020001000200810200860001000200010086000200020002 +008400020002008200020001008101008200010004008502000100010082000200010081 +010082000100010082020002010281010201020600810100020081010001008701000100 +010001000d00880201020002000200020102810002810201810102830200010285020102 +0002008400020001028202010282020102020281010201028c0002000100010002000102 +010201028201020182010201010182020102010282000200810002010286000200010002 +00820002018101020202820001028a020102000102000201020101018202010087000102 +01000100018201000103018c000102000100010201020100018401000200028202010282 +020002830200010284020002000201028200010281020081000284020100010282020001 +01010000 +850001000100010401820001008300010001820100018201000101018100010101810001 +820100010101810001840100010001820100010101810001820100010101010081020182 +010201810102840201020002820201028402010201028202010288020002010201020002 +020283000201028602000102010001820100028202010202028301000102020287010201 +020102010284020102010282020002820201028202000284020102010201028101028202 +010282020102010281010284020002000288020002000200020102820201028302010200 +030083010200020402820102010301040281010285020100020102010283010001020102 +810002010281000285020102000102820201028202010202028200010201028100020102 +810102820200010101850001000100020302810002030283000102010101010203018402 +010201020502820100010101030282010201810102830201020181010201020101080281 +000201028101028202000283020100018201020101018400010002008300020001010189 +000102010002000200010101020281000201028401020100010701820201009100010001 +000100010200020001000201020104018100020c02820102000200010286010200010002 +008400010002000200060281000203028200010282020002040281000282020002880200 +020002000100020202010001028900020001000100020002010201009502000200020102 +010001000100010201020100020102820200020102830002000201020100020202000202 +010001028100028202000282020002010281000281020101018100018201020081000101 +018a0002010200010201000100 +010181000102018500010001000101018200010001008201000182010001010181000182 +010001010181000101018100018401000100018201000101018100018601000102010002 +820201028102018301020102820201028402000201028602010200020002880201020002 +01020102010281000282020002810201810102010201010302830102010201028a000200 +010002000102010282020102840201020102820201028202010201028101028402000200 +020102010082020102010286000200010001008600010001000200010082020002820201 +020402810102040281010282020100820001000100810200020083020002000100810200 +880002000100020002008800020002000200020082000200010081010086000200020001 +008600010002000200860001000100010083000100020702860002000200020084000100 +010089000100020002000201020302840001000100860002000200010084000200010086 +000200020001008400020002008600020002000200860002000200020004008102008600 +02000100010086000100020001008700010002000100028202000202028a000200010001 +0002000100860001000200010004008102000100850100010001008f0001000100020002 +000200020002000202028500010002000101018400010001008100010101010083010002 +018101020202860002010002000282020002050283000201028102018601020102010201 +010182000102840200010002020282000102010201010102810102050281000182010001 +810102870200010200010001010186000100010200028102010101810002010202018102 +010101010001018100018501000102000101018700010201000200028402000201020102 +81000201028100020102840002000102 +820100018201000102018100010101810001010181000101018400010001008500010001 +000182010001010181000182010001010182000100830001000101018100018201000283 +020001028702010200010200028202000286020102010201028502010200010201028400 +020102008100028402010201020102850002010201020402850102010201028602010201 +020102820201020202810002840201020102010283010201028202010201028101028202 +010282020102010281000201028300020002020285000200020002010281010204028301 +020102040281010201028100028c02010002000200020001020102010283010201020102 +850002010201020102830102000201028400020102018101020102810102810201810102 +010285010201020102810201030102000302810002020281010283020102010401010201 +010602010181020102018202010282020102820201020302020105028100020702820100 +0283020100028102010201820001008700010002000201008100018b0102000100010001 +000100028302000102820200028102010201810002820200028102010201820002018301 +020102850201000200028302000100840002010002030201010202020189020102010001 +00010001820100018c010201000201020001000100020602810102810201820102018f01 +020102010200020002000200010200840002010201860100020002000101018d00010200 +020002000100010001008800020102000200020087000102010001000283020100010201 +820002018401000200028202000185010002010200010082020102040281010201028100 +02850201000200020102870001020002000201820100028302010001840102010001 +020181000184010001000182010001010101008101008100010101810001820100010301 +810001820100010101810001820100010101810001020181000183010001028202000281 +020190010201020001020100020001020002010286020102000201029302000201020102 +010200020102000201020100018b01000100010201020102010284020102010284020001 +000281020181010201028301020102820201028102018101028402000200020102810002 +010283000200020102810102010283010201020202810002820201020202830102000281 +020101018202010202028301020002020205008302000200020081020001008702000100 +020002008100028402010001008200020005000102900002000200020100020001000201 +000100010082020102810200810002060201018200020082000201810100830001000284 +020102000201028d01020100010001020001000200028302000100010001028500010001 +000283020002008100028402010002008100028402010002000100810100820001008100 +018401020001008600010001000200810001010182000100810002030281000201020300 +8101008a0001000100010001000100840001000100030083010001008d00010001000100 +02000200020002850200010002008c000201000200020001020100028202000282020102 +820201020102810102820200028102008200010003000102810002870200020002000102 +8202000101018f0200010001000100010001000102000101010102030182020102020201 +01820200010301810002810201820100010101010002018d000201020100010002000201 +020187010201020002010086000100010200010101830001000101018100018401000200 +01010186000102010002008400010001020002 +820100010101010002018100018201000101010100010181000101018100018801000100 +010001000182010001010181000182010001010101000201810001850100010201028202 +010282020002820200028402000201028402010201020202850102010201028e02010200 +020002010201020102000182010001020186000100020001020102820102018901020102 +010200020102020281000282020102010283000200020102810102820201028202000282 +020102010281010201028101028302010201810102040283010200028402010200028202 +010284020102010201028101028502010201000281020101010202810102840201020102 +820200028202010201028101020102010185020002000201010181020181010205028100 +020102810102010281000201028501020002000202028100020402830102000104010102 +810102810201810102050281000102010902820001028202010282020002010281010205 +028101020102010102028100010201820002008600010001000201840100010001810100 +830002000284020102000202020101830200020182010200020001020101810001820102 +018d01020001000102010001000100018401020100020102810002010281000202028301 +000102040281000282020002860201000100010084000100010083000201020202010081 +020104018200010081000282020100010001028101020202820002010401830001020102 +018b00020001000102010201000101018800020001020001000184010001000101018300 +0102018301000201850100010001028a0201020100010200010001010101008201020082 +000102830200020101018600020102000201880102010001020100020102820100018301 +020002 +860100010001000187010001000100010002000101810001820100010101810001820100 +010101830001000182010001010181000182010001840100010001010184000201000284 +020102000288020100020102010002020282000201870102000201020102860201020102 +010201028801020002010201000102018200020103018102018101020102810102010284 +010200010284020102010282020102820200028202010282020002010281000282020102 +010284000102010201028101020102810002020283010201028402010200020402010185 +020102000102010281010202028801000200020002010284020102010201028301020102 +820201028302010201810102040201008602000200010201840102010201810102810201 +810102810201010101028400020100020102810102070205018202010282020102010281 +010206028600010001000200890002000200010002000283020001028302010201810102 +0102810102840201020102010281010201028b0100020102010001020102018101000100 +820100018101028102010301820201020302810102020283000102010101830002000102 +01820200010101810201040181020102018102000100820102008100020d020401810001 +070102000101810002810201840102010001810100860001000100010285020001020102 +83020100018401020102018a010200010001000100010284020001020185010002010201 +040101020101830200020102018100010201810001010101000201010002018100010101 +810001840100010001810100810001010101000201810001010187000100010200020188 +01000100020102000184010002000101018300010201 +810001820100018401000100010101810001010181000102018100010101810001010181 +000182010001010101000201810001820100010101810001840100010001830100020182 +010201810102840200020102820201028302000201830102010202028301020102010281 +000202028100028d02000102010200010200020002018b01020001020001020102000201 +020101010201018700010002000201028202010201028101028102018301020102820201 +020102810002820201028202010202028200020181010288020002000102010002010283 +000201028402010201020202810102820201020202870102000102010002010201000102 +810102820200020102820001020202840100020002820201028402010201028202000206 +02830002000201028d000200010002010200020002000207028600020100010002820201 +020302830001000202028201020102018102018101028102018101028302010002810201 +830102010282020102030282010201030101020101010281010284020100010085000100 +020102810201820102018301020102810201040181020102018102010401840001000201 +060181000188010201000100010001020101028201000202028100028502010200010201 +028101028702010001000100018201000101018500010001000104010102810002830201 +020101010200820100018201000182010201820100028702000200010002018401000100 +010201880001020102000201028802000102010001000101018202000101018300010001 +840100010001010181000102018300010001820100010101810001010185000100010001 +020101000201810001010101000201810001010183000100010101810001880100010001 +020100010101810002 +820100010101830001000182010001010181000185010001000100010002018100010101 +810001820100010101010002018100018201000101018100018301000102820201028202 +010285020001020102830201020183010201028402010201029802000201020102010201 +020102010201020100020102010201840102010201020181020182010201840102010201 +820100020102810102010286010201000200028202010282020102010281010282020102 +820201020102810002820201020102810002020283000200020502810102810201020102 +028301000102820201020202820100020102830001000201020101820201028302010201 +830102010208020101810200880002000200020102010101050281010282020102040282 +010002010281010203028301020002840201000102010201018302010201810102030281 +010202028201020101018300020102840201020001810102820201028102018101028402 +010201020502030103028201000281020102010102880102000100020001028102010201 +810201080181020186010001020100010201810201020181020102018602010201020102 +8102018201020083000100018201000201028101020a0201018100010501860001000100 +010083000100028402000201020102010181000106010200030101008302000102830201 +020102018100010101830002010202028601020102010201020186000102010200010201 +810001030181000182010001040181000181010081000101018100010301810001820100 +010201810001010181000102018100010101830001000101018100010101010002018100 +028302010001810102 +030101000201810001820100010101010005010100020181000182010001010181000188 +010001000100010001820100018201000101018300010201840102010002820200028402 +010201028402010201028302010200810002010289000201020002010201020102830002 +010282020001010181000102018100010401020282010002020201010102020102028101 +028202010204028101028202000282020002010281000286020100010201020102810102 +010281010284020102010284020102010202028100028602010201020002010282010002 +030283000200020102810102820200020602810102030282000102840201020002810201 +020101028200010205028101020602820102018701020001000200020602030101028300 +020102820201020702810102010206010102810102810201830102010283020102010101 +010201010c02810002010283010001008200020084000201020102018102010201810201 +030181020103018102010301830201000181010281020181010285020102000201040181 +000105018200010281020183010200020102810102820201028a02000200020001000100 +010a01840001020102010281000285020001000100830001000182010001020181000183 +0100010284020102010283020001008a0001000100010001000102040282000102020201 +010100810201840100020001870100010001020001820100018401000100018201000101 +018100010101010002018100018401000100010101810001010101000201810001030181 +00018401000100010101810001010181000101010100 +030181000182010001860100010001000102010300020101008401000100018201000101 +018100018201000101010100020181000183010001028202010282020102810201830102 +010288020102010201000201850102000201028f02000201020102010201020102000102 +02020101810001020181000103018e02010201020102010201020001020101018a020100 +010201020102010201028100020502830102010201028101020102810102820201020202 +810102010202018202010281020182010002840200020102840201020102830200010201 +028101028902000100010001020102020281010282020102010283010200020102020101 +028101008500010001000101018202010282020102010282010201810102010285010201 +000102010283010200020402810002020281010206028701020102010201020502080102 +028201020101018202010282020102810201040101028101020202810102810201810102 +010201018300010001840100010201090181020102018102010301010282010002010283 +000102011501010083010001028202010206028200010283020002010501810001020101 +008601000100010201830102010201020501860001000100010001008401000100018201 +000184010001000107018402000201028102018201000205020100010182020001020181 +000182010201820100018201000107010100020183000100010301810001030181000101 +010100020181000101018300010001820100010301810001010182000201810100810001 +0001 +040181000101010100020182000100810001040181000182010001010183000100018201 +000101018100018201000102018100010101860001020001020182010201830102010281 +0201850102010200028b0201020001020002010201028202010282020102890200020102 +000201020081000182010201840100010201820102018101020502810102020281010201 +020101810201030182020102820201020102010182020002810201810102820201020102 +810102820201020202810102010281010202028301020102010281010201028100028902 +010002010200020002820201020502010181020181010201028101028102010101810201 +810102820201028302010201020181020181010282020102820201028102018101020502 +810102810201840102010201810102840201020002090202010202820102018101028202 +010206020601830201020103010202820102010201020281010204028101020102820001 +020202820100018101028102008300010001820102010201810201020184020102010285 +020102010201860100010001000102018100010501810001090181000102018102018201 +0002010201010202010182020102020281010083000100010c0106028401000100010101 +830001000109018a00020001000100010001000300020182000102010281010202028500 +010002010282020002820201008100010101830001000185010001020001060182000100 +810001840100010001010181000184010001000101018100010201810001010183000100 +01820100010101830001000101018100010101010002010000 +030101008401000100010101810001820100018201000104018100018201000101010100 +020181000182010001010183000100018201000101010102820100028902010200010200 +0102018301020002860200020002010288020002000200020102070201018b0201020102 +000102010200010201810001810102020281010201028301020102850201020102018201 +020183010201028202000282020102010281010201028301020102020281010286020102 +010201020102810102010281010281020101010302010182020100810002820201028202 +010282020102860200010002010287020100020102010202028101028202010282020001 +030181020181010001008702000100020102018101028202010283020001020502820102 +018301020100020002010c02020182020102020201010902050101028101020102020101 +028101028102010101020283010201020102820102018101020202890100020100010001 +0201020101020101020201018102010a0181000101018300010001180187000100010200 +01028c020002000200020100020100010301810001040189000100010001000100020402 +040181000103018900010001000100010001020183000100010701860001000100010281 +020181010203028101028102010201830001020182010001840102010001010183000100 +010101810001840100010001820100010101830001000182010001030181000184010001 +0001010181000102018100010101830001000101018100010101010002018100010001 +010183000100018201000101018100010101810001820100018101008100010301810001 +820100010101010002018100018201000101010100020181000282020002820201028802 +01020100020100020202810002850201020002018701020102010201028202000201028b +000201020002010200010001020181000106018602010201020102820201020102810102 +810201830102010204028101028202010201028101028202010201028101028202010202 +020101820201020102810102020281010284020002010289020100010201000201028502 +010001000282020102820201020602810102020281010282020102810201020181020102 +010102820102018701020001000201020302830102010201028401020102018101020202 +810102830201020181010202028101020402810102820201028202010201028101028202 +01020a020301850201020102010101010202010302010101020101020281010206028101 +028602010201020102840200010201110184000100010083000100012001840201000201 +01010102810102820200028202000105018100010801020202018102008b000100010001 +000100010001070181000103018300010001840100010001030185000102010201810102 +840200010001840100020001010101000201830002000183010001008100018201000102 +018100018101008200010081000102018100010101830001000101010100020181000101 +0101000201830001000101018700010201000100018201000101010000 +010181000101018100018201000101018100018201000101018100010101810001030181 +000182010001010101000201810001820100010101010002018300020102830201000202 +028101028502010201000286020002010201028a02000200020102000201028202010285 +020100020102810201030181000182010001020182000102010281010282020102030284 +010201020187010201020102010284020102010282020102010281010201028101028202 +000201028101020102820102018101020202810002010281010284020102010201028401 +020102008500020102010204020101030281010284020102010283020102018301020001 +010181020181010281020101010202830002010201028201020183010201020602010181 +020101010c02810102070281010282020102810201820102018101028202010282020102 +010281010201028201020101018202010281020181010201028201020101018302010201 +850102010201020302810102070201018100010401810001040181000105018100010401 +010005018100010401810001050181000105018100010301840201020102870200010002 +000201810102820201008300010001020183000100010501810201810102020205018300 +010001040102008601000100010001840100010001050183000100010201810201870102 +010201020102820200010101010001028201000101018202000103018100010101810001 +840100010001820100010101010002018300010001840100010001830102000101010100 +02018100010301810001010183000102018201000101018100010001 +030181000101010100850100010001008700010001000100010201810001010181000101 +018100018401000100018201000101018200010083000100010101010281010282020102 +8c02000201000200020100020102850200020102018b0102000201020002010200020102 +830002000281020108010100820200020902810102030281010283020102018501020102 +010201028101020102810102820201020102810102820201020202810102010202018302 +010201820100018101008300020002820201028202010201028101020202010181000282 +020002080205018102010101840201020102030201018202010281020002000102810102 +020202010102810102010281010281020101010102820102018201020181010203028101 +020202010182020102840201020102010283010201020102810102040201018102010401 +010203010202810102860201020102010208028201020181010202021a01850001000100 +012201010202018202010282020001810102840200010001120101028101020102820100 +0104018100010a0183000100010301820001000100820100010401810201080101028200 +0201010181000101018b0002000102000201000100018201000103018100010101010081 +020182010001010183020100010201810001010183000100018201000101018300010001 +8201000185010200010001010181000101010000 +020181000184010001000182010001010181000182010001010101008202000101010100 +010181000101018100018401000100018201000101018100018401000100018401000201 +028502000102010284020102010284020102010284020102010201020101920201020102 +010201020102010200010001020088000200020001020102840201020102820201020502 +810102020281010284020102010201020101820201028202010281020181010201028101 +028202010202028101020102810102010283010001028202010201028101028202010201 +028101028202010201028301020102810201020101028101020302810102010203018202 +010282020102820201028102018101020202010182020102050283010201028102018301 +020102020283010201020102820100020102020181020182010201810102010281010283 +020102018101028302010201010103020101030281010201020101810201810102820201 +020102810102010204018100010201810002820201020102810102030284010201020181 +01008a00010001000100010001008b00010001000100010001000104018c000100010001 +000100010001009400010001000100010001000100010001000100010081000103010202 +810102820200028202000201028101000100810100010084010001000105010202810102 +81020103018c000100010001000100010001008100010501810001020181000107018100 +010f01810001840102010001010183020002008200010081000104018100010201810001 +020181000101018300010001840100010001010181000102018100010101870001000201 +0200018401000100010101810001010182000100 +030183000100010101810001820100010101810001820100010101840002010001010181 +000101018100018201000101018300010001820100010601820001028102018601020100 +020102820201020202890102000200010200010205028e01020102010201020002010201 +02010301810201820102018101020a028100028202010202028100020102810102880201 +020100010201028202010201028101028202010201028101020202810102010281010201 +028101020102820001028302010201810102820201028902010201020100010002010285 +000201020102010281010201020101010283010201020102010102028101028102018401 +020102008100028202000282020102810201810102020281010282020102020281010201 +028101028802010200020102010204028501020102010281020183010201020302820102 +018501020102010203028101028302010201110181020181010281020181010202028100 +020302820102011801810001250183000200010101810201010101028101028302010201 +12010102810102850201020100010d018d00010001000100010001000100010101810001 +030184000201020104018100010801810001010101000501010284000201000103018100 +01010101000201830001000182010001030186000201000100018d010200020102010200 +0201000102810201880100020102000100010001 +860100010001000182010001820100010101820001008100010101810001820100010101 +810001810100810001010181000185010001000100810001010181000184010001000182 +010201810102820201028402010201028202010284020102010202028301020102010281 +010286020102010201028102018401020102010101830001000285020102010002030281 +000207028101020202010101028201020101010102810102010281010284020102010202 +020201030281010201028100020202810002010281010202028201000281020101010102 +850001020001028202000283020102018301000201810102080281010201028101028402 +010201020102830102000282020102830200010282020102820201028202010282020102 +020201018102018101020202820100020202010181020181010201028101020102830102 +010201028101028202010202028101020802820102010f01810201040109028101020102 +830001020104018100010401830001000103018300010001020183000100010301830001 +000102018300010001030183000100010301830001000106019102000100010201020001 +0201000100010001810100840001000100810001820100010e018f000100010001000100 +0100010001000109018100018101008100010e0183000100018201000102018300010001 +820100010301810001020101000401810001020181000101018302000201840100010001 +01018100018a010201000201020002000282020002010283000200028302010001810102 +82020001 +020181000182010001010182000100810001010188020001000100020001820100018101 +008100010101810001010181000182010001010101000201810001840100010001860102 +0102010002820201028b020102000102010200020102840200020102060281010201028d +010200020102010002010201020185010201020002050281010203028101028302000201 +810102020282010002010285000200010201010182020102820201020102820100028202 +010201028101020202810102010281010202028101020102810102830201020101018502 +010200020102018102010101020201010202010183020100020202810102820200020302 +830100010201028100028402000200018501020002000288020102000100020102850200 +020001020102820002008900010201000100010201840100010002010286010002000201 +020202820001028602010001000102850201000200010201830001000102018300010001 +020183000100010201830002000286020102000100020202830002000102018300010001 +020183000100010201850001000100010101010004018300010001040181000104018100 +010501810001040183000102010101040201018102010201830001000106018100010401 +070282010001110185000100010001810100810001050184000100020101018100018401 +020100010301830001000182010001060183000100018201000104018300020001850100 +010002018701000100010200018101020102810002850200020002018401000200018201 +00028a02010002000102010001028102008100010101 +0101810001830100010083000100018f0100010001000201000102010001000182010001 +050181000101018100010301830001000101018100018801000100010200010284020102 +0102820201020202850102010201028b0201020102000200010201028502010002010283 +020102018201020103018402000200020502810102030283010201028202010201028101 +020402880102010201020102018101028202010201028101028202010202028101020102 +81000201028101028502000200010289020001000200010201008200020102018c000100 +010001020001000100020302010081010288020102000200020102840200010002830200 +010281020101018100020102830002010202028301020102060282010200820002018101 +020102010181020181010204028301020102010203018302010201860102010201020181 +01020402040181020103018102010f018202010281020184010201000181010281020116 +0183000100011d0181000106018202010202028201020182010201840102010201820100 +010501810001010184000100010202020101810201080183000100010301830001000109 +018200010001000401810001020183000102008100010801810001030182000201020188 +00010201000100020102010100860201020002010283020001028402000100018e010001 +0002010200020102010002018401000200020102810002820201008100020102810002 +020183000100010101810001830100010085000100010001820100010101010084010001 +000101010100010181000182010001010181000184010001000182010001020181000202 +028301020002020283000200028202000202028701020102010201028202010209028401 +000100018701020102010201021002810102840201020102840200020002850201000200 +028202010282020002010281000282020002020281000282020102030281010201028101 +028302000201010182020100810001810102020201008101020202010081020101018102 +008100028102018101028102008200010202020100010281010281020082000102830201 +020081000203028601000100020102840200020002860201020002000202028300020002 +010285010002000200860002000100010086000100020001008400020002008600010001 +000100860002000200020086000100010001008600010001000100860001000100010086 +000100010001008600010001000200860001000200010083000100010101820001008600 +010001000100880001000100010001008700010001000100010101010082010001010185 +000100010001860100010001000103018300010001870100010001000201020183000200 +010f0181000105010402830001000104018100010e018300010001070188000100010200 +010001020181000103018100018201000101018102010101810201850100010001008200 +020187010201020002000281020182010001820102008a00020102000200020100010301 +820001028102008700010201000100010101810002820201008100020102810002810201 + +820001008100010101810001820100018101008100018201000101018100018201000101 +018100018201000105018300010001820100018201000103018100018401000100018201 +020185010200020102840200020102840200020102040285000201020002010288000201 +020102010201040181000202028100028402010201020302810102820201028202010284 +020102010281020181010202028301020102820201028402010201020102810102010281 +01028102018101020102810102020281010201028101020202010184000200020101018b +020002000201020100020002840201020100810002010285010200010002010202018200 +010282020102830200020188010200020001020102850201000201020102840002000102 +010283000200020102860102010002010282020100010004018100010101020201000102 +830102010083000102018401000100010201830002000186010201000100010201830001 +00010201830001000102018300010001010183020001028102018c010002010002010201 +020100010101820001008100010101850001000100010101810001820100010101030003 +018300010001020182000100810001020183000100010301020003018300010001830102 +000101018b02010201000100010001000101018a00010001000100010001028502010001 +020103018100018101000200820100010101810201040181000108018300010001020181 +0001030181000182010201010181020102018e0200020102000102010002010200028102 +010101940001000200020100020002010200020002010001020202810002840200010001 +010101008501020100010201028501000102010081000184010200020182010002 +010181000182010001010181000182010001820100010401810001010181000101018100 +018101008200010084000100010081000101018100018401000100018201000101018100 +028c0201020001020001020102000202028400020102018501020102010201028c010200 +020102010200020102018901000100010201020102050281000203028301020102820201 +028202000204028101020102810102010282010001840102010002850200010201020202 +850001000100020102810002020287010201000100020090000200020001000100020002 +00010002008a00020002000200010001008a000200020001000200020088000200010002 +000200880001000200020001008200010202028100028702000200020001008600010001 +000100850002000100028302010201830100020086000100020002008600010002000200 +860002000100010086000100010001008200010202020100850200010001008900010001 +000100010001840100010001040183000201028502000200010201020101830001020102 +018100010401810001040181000104018100010501810001040183000100010201830001 +000103018300010001020183000201020102810102830201000105018100010c01830001 +000102010102030101020c01830002000101018500010001000106018102010301830201 +0001820100010101010281010282020102860201020001020101018d0201000201020001 +020102010201010191000201020100020102010001020100010001840100020002850201 +000201028202000101018300010001010181000202028100028402010002010001 +810001010181000182010001010182000100010082010001010101008201000101018100 +018201000101018100010601810001010181000184010001000182010001010101028401 +020100028202010281020181010202028501020102010204028c01020102010201020102 +010201010181000181010209028101020302810102020281010201028101028402010201 +020602010183020001028102010301030281010201028101020102810002010201018302 +010002860201020002000102018102018301000201810102810200830001020185010200 +020002020283000100020102820102008100020302830001000201028101028202000282 +020102010281000281020185010002000102820201028202000101018602010200020102 +810201830100020101018402010002018101020102810002810201850102010002010301 +8100010401820001028202010285020002010201020181000104018100010c0182020102 +830200020183010201028102010201810001080181000103010100290182020001060181 +000105018100010401810001050183020102018101028202010201028201020104018102 +018301020102810201060181020103018302000102810200810001830102000282020102 +840200020102820200018201000287020002000201020088000201000100020001860100 +0200020002820200028402000100018201020082000102840200010002820200028a0201 +020100010200010001010183000100020102810001840100020002840201000201820100 +02 +010184000100010086000100010001008100010401810001880100010001000100018201 +000182010001010101000101810001020181000101010100020101028101028302000102 +870201020102000102810200850002010201020502010102028701020102000201008100 +010101840201020002820201020802830002010282020102820201020102830102010201 +028101020102810102840201020102830200010201028201020101010202810102010202 +018300010201810102820201028402000201028602000200010002010283000200018101 +028402000200020102010183000200028702010200020001020102850002000201020102 +01008201000201028200020081000201028400020001028e020100010001000102000100 +010002030282010001860100010001000286020001000100018601000200010001860100 +010001000186010001000100018401000100028802010200020001000186010001000100 +018701000100010001008600010001000100830001020101018100018601000100020001 +020183000100010201810001060181000103018300010001020183000100010301010004 +018300010001030101000401810001840100010001050181020182010201060101028101 +028102010201810001060182020102810201840102010201010181020103018202010201 +020301010281010282020102860201020002000182010002810201830102010285020102 +010201040183000201028202010202028301020102830201020101018802000102010201 +000102018100010301810001890100010001020100010283020100010201850200020100 +010101830201000283020100010101 +810100810001010181000182010001010102008301000100820001008100018201000184 +010201000101018100018201000104018100010301810001020181000101018302000102 +8a0200010200020102010002820201028a02010200020002000200020102820100028202 +000201028100010101810001830102010208028101020202810102820201028202010204 +028101028202010282020102040281000186010201020102010101850001000200020102 +810002020281010202028100020102820001008500010001000201028600010002000200 +8a00020002000100020002008a00010002000200020001008a0002000100020002000200 +820001028c02000200010002010002000200880001000100020002008500020001000186 +01000200010002860200020002000286020002000100018d010001000200020100010001 +000186010001000100018501000102010201028500020002000101010100820100010101 +010082010001020183000100010101890200020001000201020082000201020101000401 +830001000187010001000100010085000100010001030101000401830001000102018300 +010001030183000100010201830001000101010102010182000201810102840200010001 +810102010281010287020102000100010085000102000200010001018302010002840201 +000102810201810102820200018101020102840002000102820201028802000100010201 +020181010282020102830200020102018602010200020002850200020002008400020102 +008a000200020100020002000286020002000200028a0201000100010200020001010188 +000200010200020001880102000201000100020102830001000182010001810102010282 +00010283020002000200 +820100018201000182010001010181000182010001820100010101810001020185000100 +010001820100010101810001810100810001820100010101020085010200010001810102 +820201028202000285020100020102850201020100020202870102010201020102010281 +010201028101020102010183000100018101020202810102050283010201028202000282 +020102820201028202010201028301020102010281010201028101020402830002000101 +018300020102030281010202028101020202810102020281010203020101010283000201 +020202810102820201020202810102830201020183010201028202010202020101820201 +028202010281020184010201000288020102010200010201830102010281020182010201 +040181020183010200020202830001000181010202028200010286020102010001028502 +010201000104018100010401810001040181000204028100010401810001040183000100 +01020186000200010200010101880002010201000100010201830001000102018100010c +018300010001020183000100010201810200810001030183000100010301010004018200 +010203020401810201060101028201020181010202028501020102010281020101018102 +010201070281010283020102010101810201810102040283010201020902810002820200 +028202010286020102000200028202010284020002010283020102018301020102020289 +010201020102000100010101010086020102000100018d01000201020102000102000200 +0201028600020002010002840201000102020281000285020102010200 +010181000101018100018201000101010100010183000100018401000200010301830001 +000182010001820100010201810001040183020001028102008100010101010288010201 +000201000201840102000102840201020102010295000200020002000201020102010200 +010201020001020402810102050281000282020102820201020302810102820201020102 +810102010281010282020102820201020102810002820201020202810102010283010001 +020202810002020281010202028100020202840001000102010284010002000287020102 +000100010281020185010002000102850201000100018101028202010082000102880201 +020002000201028402000200010201830001000281020184010001000102010102810002 +810201020182000201850100020100028102018401020100010301840200010201020181 +000104018100010401810001010101028301000201030181000104018100010401810001 +030101000201850002010002018201020101018100010b01810001030101000b01830201 +000104018300010201030181000103010102810102830201020102018102010301810001 +020101028700020102010201028202010281020183010201020102810102820201028302 +010201010181020183010001020102810102820200020402830102000208028101028102 +010201820200028b02010001000201020100020081000288020002000200020002860200 +010001000184010002000203029c00010201020001020102000201020002000201020002 +010201000102018601000102010002840201020102040201000101 +830100010086000100010001008100010501830201000101010100010181000182010001 +020181000182010001060101000102810002830201000283020102008100028202000282 +02010282020102040201018c020102010201020102010201020102840002010200810001 +810102010283010201020202810102010281000202028101028202010282020102040281 +010282020102820201020102810102820200020202810102020281000282020102820201 +028202000203028100020202810102850200010001020102830001000282020102860200 +020001020186010002000201028202010081000282020102860200020002010283020002 +008900020102000100010001820102008100028102010101830002000102018200020081 +000101018200010082000201030181000201028200020086000201020002008100010101 +820001008100010101820001008100010101820001008100010101820001008100020102 +820001008100010101820001008100010101850001000100018401000100018201020101 +01010202018500010001000102018500010001000102018100010c010100810201020181 +000102018302010201810102010281010201028101020302030188020001020102010201 +830102010201028101020102820102018101020402810102030203018102010101010281 +010209028101028202010208028501020102010203028100020602010001028101028402 +000200010201810200810002810201020104028301020102010201018300010001820102 +008200010284020002000282020001010101028600020100020002010283000200018601 +000200010002820201020102810102840201020002 +820100018201000101018100010101020089010001020100010200018601000100010001 +840100010001010181000182010001850100010001028202000289020100020100010201 +028502010002010282020102820200029902010201020100010002000201020102010201 +020102000200018201000187010201020002010204028300020102010201010202810102 +820201028202010282020102050281000282020102020281000285020102010001810102 +010281010282020002010281010202028101020202830002010202028100020102850102 +010200028202010284020100010283020102018301000102030281000282020102850201 +0002010282020100810002030201010100810201830100010081000101018c0001000100 +020100010001000186010002000200018601000200010001860100010002000186010001 +000100018601000100010001860100010001000186010001000100028602000200010001 +860100010001000186010001000100018d01000100010001020001000100018201020086 +000100010201008300010001010182000100880001000100010001008a00010001000100 +010001028202010201028101020102810102010289000100020002000200028202010201 +028100020102880002000100020001028502000102010201028101020102830002010084 +000201000206028200010284020001020082000102010281000203028700020002000100 +028202000203028100020102840002000201030182020102810201010184020002000285 +020102000200810002880201020002000100028102010101820200028202000205028200 +010283020100018401020100020102940002000102000200010201000200010200020001 +0281020082000201840100010002820200010101 +020181000182010001010181000182010001020181020186010201000100018201000101 +010100850100010001008100010101810001830100010085000201000201810102810201 +810102860201020001020181010202028601020100020102810201810102860201020102 +010201028101020102010183000100018101028202010208028101020602810102830201 +020181010204028101028202010202028101020102850102010201028202010201020100 +810102820200028202000202028100020102860001000100020081000201020400010201 +008101008100028102000400010283000102008100028102000300850100010002008b00 +020001000100010001000182010002010288000201000100010001010181000101018100 +018201000103018202000283020102018401000102010201810001040181000103018100 +010401810001040181000183010201028202000104018100010501810001040181000103 +018202000101018402010200010201830201000182010201020181020102018202010201 +028101020102810102810201080102028101028102010101040201018202010201028101 +020102810102820201020102820102010101810201810102820201020402810102820201 +028102018101020302810102040281010288020102010201020102820201028202010201 +028201020183010201028202010205028501020100010201028200010202028300010002 +0102820002008100020402880100010200010201028f0201000100010002010002000201 +0200820002018901000100010201000102010283000201028202000102018c0200010002 +01000100010200020102810002 +820100010101810001820100010101010004018302010201020181000101018200010002 +008201000189010001000100010001020102810102820201028202010283020001028202 +000282020002820201028402000201028a02010201020102000100028202010201028100 +020102830002000101018602010201020102030281010282020002820201028202010282 +020102820201028202000201020201030281010282020002010281010205028501020002 +000201028100020102810002010281000202020101040281010202028301020102010282 +010201820102010201010281010282020102020281010282020102810201020182020102 +010205018202010287020100020102000101018100010201810001040181000104018100 +018101028d02000200020001020001000200018601000100010001860100010001000186 +010001000100019401000100010002010001000100020100010001000186010001000100 +018601000100010001860100010001000186010001000200010101010085010001000102 +010281000206028500020001000282020102010281000201028100020102820002008600 +010201020102820200020102810002010288010201000100010002830201000282020102 +030281010285020002000100810002010281000206028201000181010081000206028100 +020202840100020002010284000200010203028300020002010281000282020102010283 +010201020202810002820200020202810002890200020102010002010282020102020283 +010201020202810102010281010081000185010200020001820100028a02010201000102 +00010001010101000101850200020002018101008c00020001020100020100020002 +010085010001000100830001000104018102018701020102010200018201000182010001 +010183000100010201810001020183000201028302010002820201028202010282020002 +830200010283020102018401020102018501020102010282020102060284010201020181 +010086000100010200028202010205028101028402010200020102810002840201020102 +010281010204028101020102810102010281000202028301020102020281000285020102 +010002840201000102030282000102890200020001000200010084000200020001008501 +0001000100040083020002000b0085020001000100020088020002000100010001870100 +020001000100020002018200010081000101018200010081000101018400020002018601 +020102000201030181000104018100010301810001040181000104018500010201020182 +010002810201020181000104018100010201810201820100010201830201000283020102 +018301000102820201020102810102810201040102028101020302020101020201810201 +810102810201010101020201840201020102810201010101028101020502810102040201 +010b028101020302850102010201020402810102010283010201020a0201010102830102 +010201028101020102010186020102010201028202000284020102000284020100010284 +020002000203020100020287000100020002000290020002000100020100020001020102 +00010201820002018f010001000102000200020102000200018201000101018702010001 +02000102830200010283020002010101 +810001820100010101810001810100010004018302010201010181020104018300010001 +040181000101018400010001020102810102820200028202010283020002018101028302 +010002840201020002820201020202840102000200840002010201810102050203018300 +02010202028101020302810002820201020c028101020102810102010281000282020102 +010281010282020002020283000200028402010201020102890102010201000200020181 +010203028101020202830102010202028200010281020186010001000100028202010286 +020102010201028202010281020182010201070101028201020181010281020182010001 +190184020102010281020182010201820102010601810001050101000401830001000102 +018300010001010104020301820002010301850201000102018501000102010201028300 +020001010181020101018100018101028402000200028502010200020181010283020100 +020102810102830201000283020102018201000182010001010181000103010102810002 +060281000285020100020002080285000100020002820201028202000201028100020202 +8e0100020002000200020002000200018401000100020102830001000287020100010002 +000201028101020302810102840200020002060281000282020002860200020002010003 +008801000200020002000202020301820201028802010201020002000201028300010001 +840100020001820100010301810001020181000101018100010101870201000201000201 +81010085000102000201 +010181000182010001010181000182010001030181020182010001030181020105018300 +010001840100010001020181020181010281020181010287020102010002010282020102 +810201810102820201028402000201028602010201020102860201020102010283020100 +028102018101008100010101010283010201020502810002820201020102810102820201 +028202010282020102820201020102810102040281010201028101020202830002000284 +020102010201028801000200020002000202028e0002000100020002000200020002008a +00010002000100010002008200010005008102000b008301000100040085010001000100 +040083010001000200850200010001000200830100010015008301000100020083010001 +008600010001000100860001000100010086000100010001008400020002000200830100 +010002008702000200020002008200010001008101008600020002000200860002000100 +0102810200830002000201028200020081000201028c0002000200020100010001000181 +010082000100810001820102000100820100018201020083000200020302810002820201 +02010281000281020181010208028101020102850102010201020b020201020281010281 +020101010402810102040281010202028101028202010282020102030286000100020001 +02830201000181010202028101028202010001008102018101028102018b010002000201 +00010001000181010081000187010201020001020182010001820102018a010001020002 +0002010200850001020100018201000102018702000102000200018201020101010002 +810001010181000182010001010181000102018102018201000109018300010001010183 +000100010201820001008100028102018201020082000201810102830201020181010202 +028201000282020002840201020002860200020002000203028101020302820002018301 +020102030281000206028101020202810102820201028202010201028101028202010205 +028101028202000201028101020202810002830201000203028300020002010281000282 +020102820200020102810002030282010002020283010201028202000289020100010001 +000100028202010281020108018102010401810201820102010a01810001040182000201 +030181000104018400020102010101810001030184020001020184010201000104018100 +010201830201000101018802010200010001020181010083000100028302010002030282 +010002830200020182010001820100020102820001020202840100020002820201028102 +0082000102020201008202010201028a0002000100010200020002020202008402010001 +000200820102018601000100020102010282000200810002840201000102010281010207 +02820001028302000102820200020102830002010202028a010001020100010001000201 +028100028202010201028101028502010002000203028100028202010285020001020002 +850201000200028402010001020202890102000102010200010081000183010001008b00 +010001000100020002000281020104010102870102010200010001010101000201880001 +000102000100010101810001020183020102010201870001000102010002020281000201 +02810001 +840001000100850001000100018201000102018d02010201020102010201020102010301 +810001010181000182010001010182000201840102000102820201028202010282020102 +820201028402010201028102018601000201020102020281010202028601020002010200 +820001028102008100010101010283010201020302810102820201020302810102820201 +020102810102820201020102810102820201028202010203028101028202010202028101 +020102810002050281000281020101010100820102018701020002000200020102820002 +008100028702010001000200010101010081010082000100040081010005008101000400 +810100010085010001000100030001018200010002008301000100010081010002008301 +00010004008101000c008101000300010282000100860001020100010002008302000200 +810002010282000200860002010200020001000102820002008100020102820001008900 +020002000200020002020283000200020202830002000287020102000200010201020200 +030202000202810100830001000102018300020002830201020002000102810102010281 +000201020100810100830002010282020102060281010281020181010202020100830102 +010201028100028202000203028101020402810002040281010284020102010201028301 +020001810102010201010102820102018601020100010001820102010101830001000285 +020102010201840100010001040101028f01000200020100010001000100020102850201 +000102018201000182010201820100010101820200028502000201000182010001820100 +0102018802000102000200010201028101020002 +830001000182010001810100850001000100018c01000102000100020102010201010185 +020102010001820100010201020001018100028202010282020002830200010283020102 +018301020102820201028302010201810102840200020102840200020002010281010203 +028501020100020101018402010201020802810102820201028202010282020102010281 +010282020002820201020102810102050281010201028101020102810102070281010281 +020101018202010202028201020184010201020181010201028101028202010285020102 +010201030101028101028102010501810001020181020105018300010001030184000100 +010082000100010003010200830100010004008101000400810200100083020002000200 +830100020086000200020002008600020001000100020083020002008200020003008102 +008200020001008102008400010002000200830200020002008701000200010002008800 +020002000200020088000200020002000100880002000200020002008400020001000600 +8b0100020001000200020001000100010283000200020202840102010002010282000200 +850002000200020102810002820201020102880102010002000200020302810002010286 +000200010002000200010284010001000286020100020002018101008200020083000100 +018701000100020001028502010200010084000201000101018a00020100010002010001 +008100028402000200020102850102010001028302000201840100010001010101000201 +8700010001020002010201810001090183000100018c01020002010001000100020102 +810001010181000182010001010181000102018502010201020101018502010201020103 +010100860100010001000101018100028202000201028101028202010282020102820201 +028202010202028100020202850002000201020202870102010200020002010281010203 +020100010184020002010282020102060281010282020102820201020102830102010208 +028101020102810102020281000282020102030281010202028100020102810002010288 +000102010002000102010281010201028101020102810102840200010002860200020001 +00020102860001000100010081000101018b000100010001000100010001020183000100 +010801850001000200010101810201020101020301810201010181020101018102010301 +810201050101028101020802040181020181010284020102010202028301020102810201 +81010201028101020502810102820201020102810102810201810102820201020a028101 +020b02810102810201810102820201020302810102810201060101028101020102810102 +0402010102028101028202010201028101020c0281000282020002070283000100020302 +810102010202010102010101020101850201000102018201020181010081000285020100 +02000202028201020102019a000100010002010201020001020002000102010200020001 +000100880002000201000100010201810001010186000100010201008200020184010001 +000283020002008400010200028502000201020081000101018300010001810100010002 +02870002000201020001 +010181000101018200010081000104018102018201000101010102030181000101018102 +010701810001830100010285020100020102820200028202010282020102820201028902 +01020002000102010281020181010202028d000201020102010200020102010281020101 +018402010201028202010201028301020102840201020102010281010282020102040281 +010282020002010281010282020102030281010282020002020281010202028100020302 +81000282020102830200010282020002840201000102820200020302820100018101028d +02010001000102010001000102018e010001000100010201020100010001860100010001 +000101018500010001000189010001000100010201008600020002000100860002010200 +010082000200010081010004008301000200860002000100020084000200020002008302 +000200860001000100020086000200020001008600020002000200820002000100810200 +860002000200020002008502000200020086000200020002008800020002000200020086 +00020002000200020087020002000200020002008302000200020081020008008b010002 +000100010002000200810002030281000201028100020102850002000200028202000201 +02810002820201028a020001000200020001000284020100010293020002000200010002 +00020001000100010002008c000200020001000200020001008200010084000100010087 +000200020001000182010201810100820001028a02000201020102000100018401000100 +010101020201008402000201028a02010201020102010200010201820002010201810001 +050101008101000100860102010001000105018102018101008600020100010002 +0600030183000100018201000102018e0001020002010001020102000200018401000100 +018501000100010282020002830201000282020102830200020183010200028202010284 +02000201028502000200020181010203028b010200020002000201020102840201000201 +810102080281000284020002000201028101028202010204028101028202010282020102 +060281010201020101020281010202028101020202810102050202018202010282020102 +050202018602010200010201830102010201028101020202820100010401810001050181 +000104018100010501810002810201020181000201020101010205018100018101028202 +010201028101028202010282020002810201840102010002850201020102018101020102 +810102850200010201020102810102820201020302810102810201810102020281010282 +020102080281010201028301020102010281010201028401020102018301020102010281 +010204028601000201020102010281010201028101020102830102010281020109010102 +010102028101020802810102060281010288020102010201020002960201000200010201 +020100020001000100020001000102820201028202010282020102810201020183020102 +018301020102820201028802010001000201020102018202010286020100010002010301 +8f0001000100010201020002010200010086000100010002010101810001880100020001 +000102018201020082000201840100010002830200020082000102830201020182010001 +8501000100020182010001860100010002000283020102018101020102 +820100018201000101010100820100010a018302010201010183020102010b0182000102 +820201028202010281020086000200020001028402010201028502010200010201028301 +02010204028b010201020102000201020102020283010201028202010206028101028202 +010282020102030281000282020102010281010205028100028202010203028101028202 +000203028100020102810002020281010204028f00020002000102010201000200020102 +890200020002000100010284020002000283020100028f02000102010001000102010001 +0002008c000200010001000100010001008800010002000200010201028100020a028500 +020001000285020001020102850200010001028802010002000200010282020102820200 +020102810002820200028602010201020002040281000204028100020402810002820200 +020102810002820200028402010001020302810002010281000284020100020087000100 +020002000202020100820201020102020086020100010002008400010001000300870100 +01000100010202028100028d020002000100010201000102010283020001028102000100 +840100010201850100020002018201020002008101028902010200010002010201850100 +010002019a01020100010200010201000100010001000100020002000102010281020087 +000200010001000103010100830102000285020102010200810001010183000100018401 +000200028202010083000201028102010101880201020001000100018201000102018100 +010101810201020181000182010201820100010201810001040181000284020100010284 +0200010002 +8100018301000100840001000100810001840100010001820100018c0100010001020001 +00020100010a010202810002820201028502000102010282020102820200028302000200 +870002010201020102860201020002010283020100028602000200020102020282010002 +0c0281010284020102010201028101028202000282020102010281010201028101020102 +810102820200020202810102010281010202028101020102810102030282010201830102 +010201020101840201020102010281010204028501020102010286020102010201028202 +010283020102010101810201020181020105018202010281020103010302810102820201 +020302810102080281010202020101020281010203028101020302810102820201020202 +830102010203028101028202010282020102030281010201028101020c02010182020102 +820201020102810102820201028102010201010281010281020181010202020101010201 +01010281010282020102030281010201028101020102020102020f010102010182020102 +810201820102018101028102018201020181010283020102018201020101018302000201 +840100020102830201020102010102010182020102820201028102010101830002000101 +018500020002010282020102820201028302010001820100018201000101018202010289 +020102010200010002010201010084010002000101018202000284020102010087000102 +010002000184010001000194010002000200010201020002010200010001020001810100 +0100910201020002000201000100010001000100018101028302000201010103020001 +020101000201810001820100011201810201010181020106018202010201028101028202 +000282020102820200028402010201028202010286020102010201020202860102010201 +020182010002820201020102810102860200020102010202028301020102040281010201 +028101028202010282020102820201020102810102820201028202000202028101020102 +810102020281000201028101020302810002020283010201020102810102010281010201 +028601000102010002830201000286020001000200028502010002000201028100028202 +01008e000100010001000100010001000100820001028402000100028202010282020002 +840200010002010283000200028502000100010284020002000282020002070281010285 +020002000200850002000200020102810002020285000200020002010284010002000202 +028100020102810002820201008300020002820201020702840001000200840001020102 +040282010002880201000200010001020302810002010281000282020100810002030281 +000201028100020102010095010001000100010001000100010001000200010201028502 +01000200028502010001000282020102850200010201020102820102019a010002000201 +000200020001000200010001000100010001020102820201028202010283020002010201 +830001000101018202010282020102860201020100020002000101010004018300020102 +830200020101018102008100010101820001008700010001000201028402000201028302 +010201040101000201830001000183010001008400020002018401000100018801000100 +0102010001020189000200010201000100020102810102 +010082010001840100010001820100018401000100018201000184010001000182010001 +8401000100010a0102028101028302000102820201020202810102820200020202860100 +020002010202028901020102010201020002010201010502830102010282020102860200 +020102010207028101028202010201028101020102810102820201028202010202028201 +000282020002060281010202028101020202810102040281010282020102030202010102 +810102810201040181020105010102010183020102010301810201020181020103010102 +810102030205010602010182020102820201020302810102030281010282020102820201 +020c02810102020281010202028101020802020182020102820201020102810102020201 +0181020102010802010181020102010e0202018102018101020802080101020301810201 +0d0101020401010201018202010282020102810201830102010282020102820201028202 +010281020184010001020103010102810102820201028202010281020190010001000100 +01000100010002000201028202010281020184010001000181010086000100010201028a +020100010001020001000181010081000102018800010001020102000286020102000200 +0281020083000100018401000100018b0100020002000102010200028102010101850001 +020102019601020002010201020002000201000100020100010001028302000201020182 +0201020002 +020182000100830001000121010102810102810201810102820200028202010283020102 +018301020102840200020102020284010201020191010201020002010200020102000201 +020102010283010200028202010284020002000207028101020402810102820201020502 +810102820201020102810102020283010201028102018101028202010203020101010283 +010201020202010182020102010281010201028100028102010101010282010001010186 +020100020001020202870001000200020102030281010286020002000100018201000201 +028100020202830002000282020102020281000282020002010285000100010002840200 +020002010283000200028702000200010201008300020002030281000204028200020081 +000204028101028902000201000100020002820200028302010002050282010002020281 +000201028100020102820002008200010282020002010281000201028101028602000102 +0100020102010002028a0001000200020001000100970001000100010001000100010001 +0001000100010201000285020002000102820200020102810002a5020102010001000100 +010002000102000100020100020002000100010001000100010002000282020102820201 +0283020102010a0101028101028402010201028702010001000100010301010087010002 +000201020086000201020102008100010101830001000102018300020102840200020102 +830201020102018202010081000101018300010001010182020100010002018300010001 +02018100010201810001870100010201020001850102000102010101 +010083010001008300010001820100018401000100018201000182010001840100010001 +820100010d01810201810102820200028502000102010282020102840201020102820201 +0204028301020102040281010201028b0102010201020002010201020202810102860200 +020102010284020102010282020102040281010282020102820201020202830002000202 +028101020202810002010283000200028202010203028701000200010201020102860102 +010201000203028100028202010285020001000201830102000283020102010101020205 +018100018a0102010201020001020102830201000201028101020b028101020302010104 +02810102810201830102010201028101020b028101020302810102060281010203028101 +02050281010283020102010101010281010208028201020102010a028301020102020281 +010281020101018302010201030181020101018102010301010281010281020113010102 +810102820201028102010601810201810102820201028202010281020184010201000101 +018100018301020102820201028202010285020102010201010181000192010001000100 +020002000100020100020102010101830001000101018d00010001000102010200010001 +028302000201010181000102018300010002860201020002010286020002000201000100 +010286010001000100018b01000100010201020001020181010081000101018202000188 +010002000201020001020183000100010401810201830102010281020101010102 +810001820100010101810001220181020181010282020102010281000283020102018201 +020183010201028502010201020187010201020002010201028101028202010203028300 +020102040283010200028602010200020102010285010201020002820201028202010282 +020102010281010282020102010281010202028101020102810102020281010201028101 +020302810102010281010282020102010281010201028601020102010201810102030202 +010202070101021801010201018202010209028201020186010201020102010601030281 +010205020101890200020100020102000201020100850100010001028502000201000201 +028400010002008100020202810102010281000286020100010001020802860002000100 +01028e0200010200020001000200010001008c000100010001000100010001008e000100 +010001000200010001000100940001000100010001000100010001000100010001008500 +010002000282020102820200028f02010201000200010001000100010002990201020001 +00020100010001000100010001000100010002000282020102820201028102010c010102 +81010284020102000287020102010001000102018a000102010001000201020084000201 +020181010081000101019400010001020102000200020100020001020102010286020102 +000100010101830001020182010001010183020002010201810001020183000200010101 +8100010101870201020102010001840100010200 +010083010001008200010083000100018201000184010001000182010001840100010001 +820100010c01010201010102010185020100020002820200020202810002820201020102 +810102860201020102010201028301020102010281000285020102000201810102010281 +01028402000200020302830102010201028101020102810102820201020c028100020202 +81010202028100020202810102010281010282020002010281000203028d000200020001 +000100020002000201029000010001000200020002010001000100028802010001000100 +01008e000100010001000100010001000100890002000200020002000283020100028902 +000200020001000100820001028402000200028302000201860100020001000207028101 +02010283000201020102830102010201028101020a028101021102830102010281020102 +010102020181020101018202010281020183010201020102040181020103018202010201 +020101810201020102028101028102011201010281010281020107018202010282020102 +820201028202010283020102010101810001010181000101010102810102820201028202 +010281020103018100019201000100010002000200010002010002010201010181000102 +0101008a0200020001020102000102840200010001020181000102018400020002018501 +020002000284020001000101010100010202019000010001000201000102010200010200 +018201000181010084000201020001008602010002010201020101000301010202018502 +0102010201810102 +01018100018301000100810001200102028101028102018c010201000201000200010201 +028202010202028101020102810002860200020102010201028501020102000201028200 +020186010002010201020202810102020281010282020102010281000286020102010201 +020102810102010281000201028101020102810102820201020202810102030281010282 +020102030281010204028101020202860102010201020101018102018301020102810201 +810102810201010183020102018101028102010101010282010201120181020181010201 +028101020202810102020281010284020102010281020102010102830102010282020102 +0202890102010201020102010203028101020902010101028101020b0285010201000102 +850201000100028102018201000201028101028202000101018600020102000100880002 +010200010002018e0102000200010001000100020002008e000100010001000100010001 +000100920001000100010001000100010001000100010083000100028202010201028101 +029102000200010001000100010002000100010282020002970200020001020001000100 +010001000100010001000200028202010282020102810201080184020002010282020102 +820200028202000103010100820100010201880201000100020102008200020101018300 +020001030181000101018f02000200020100020001020102010201010183000100018201 +020081000101018100010201810001020183000100010101830001000102018102010201 +810201010181000182010001810100 +010082010001810100830001000184010001000182010001840100010001840100010001 +820100010a01820201028102018101028202010282020002820201028202000202028100 +020202830002010204028b00020102010201020102000201028201020186010201000201 +028202000202028100028202010284020102010285020100020102010281010282020102 +820201020202810002020281010201028101020202810002010281000202028401020100 +0202028101020102820100028d0201020102010201020100020002860201020102010285 +0201000200020102810002010286000200010201008c0001000100010001000100010089 +0001000100020002000202028900010001000200020002820200028202010201028c0102 +000200010002000100020081000206028100020102840001000102820201028202000204 +028800020001020100010286020100010002010101860001000102010281020081000287 +0201000200010001820100018401020002018101028d0201000102010201000200020102 +8102010c0101028101028202010283020102011201810201060183020102010101010281 +010283020102018101028102010301810001010184000102010282020102820201028302 +01020107018e000100010002000200010002000201040181000102018600010200010002 +820201028802000201000100020101018100010101840200020002860201020002000284 +02000200010101010083020102018d010001000100020100010201020188010201020001 +0201008500020102010083000201028b0200020102010001000102018401020102018301 +020102840201020102 +83000100018201000101018100011f010102010101020101820201020302810102820200 +028402010200028602010200020002020287010201020102010201028600020102010001 +840100010001810102820201020202830102010203028101028202000101018302000102 +010281010282020102060281010201028101020202810102010287010201020102010203 +028101020302810102010202010102030186020102010201028302010201810102010281 +010202028101028302010201820102011101820201020302810102060284010201020101 +018402010201020902810102010202010102810102030281010282020102010281010281 +020101010202020181020105018202010281020183010201028302010201010183020102 +018101028102018101020102030182020102820201028202010281020101018102010501 +010204010102820102010701830200010081000101018500010001000101018600010001 +000100860001000102010295020002000100020002000100010001000100010201028202 +00029a0200020001020001000100010001000100020001000200020001028102010c0101 +028101028202010285020102010001840102010001010184000100010288020100010002 +010200810001020183000100010201820002010201020001018700010001020102010201 +830200010083000100018201000181010085000102010001020102008501000201020081 +00010a0181000183010001020002 +810100840001000100830001000184010001000182010001840100010001840100010001 +820100010901010281010282020102810201810102820201028202010284020002010284 +020102010286020002010201028202000282020102820201020402810102850200020102 +018101020102830102000284020102000201028301020102820201020302010104028101 +020602810002010281000202028101020202810002020284010001000282020102030281 +010201028d01000200010001000100010001020202830002000203028101020702810102 +83020002008e000100010001000100010001000100830002000201028400020001008100 +028702010002000200020502850102010201008100028202010282020002820200028f02 +010002000102000200020002000200880001000100010002008a00020001000100010001 +008800010001000100010088000200010002000100880002000200010002008a00010001 +000100010001008a00010002000200010002008c000200010001000100010001008b0002 +000100020002000200010401810001050181000107018302010201070182020102820201 +028202010201028201020104018100010101810002820201028202010282020102810201 +09019000020001000200020001000200020100010201810001820100018101028f020002 +000200010002010201000100010201820002010101850001000201028402000200018501 +000200020186010200020102018a01000100020002000200028102008300010201830100 +020101018b0002010001000100020102010a0189020102010201020102010201 +810001010101002501810201810102820201028302010201010183020102008100020202 +830002000284020002000201020101010281000282020102020201010102020184000102 +010201028101020202810102030281000282020102820201028302010201810102810201 +010182020002020281010201028101020202810102030281010201020101040281010203 +02810102830201020108018202010209020501820201020102820102018201020110010b +028101028202010281020101010102810102820201020402810102820201020102030101 +020101810201040101028301020102010281010283020102010201010281010283020102 +018101028102018101028402010201020102100182020102010281010283020102010601 +020281010281020103018102010401810201020101028101020102130101028101020102 +810102830201020106018102010101820201020102810102820200028102018101008300 +010001900100010002000200010001000200010201020181020106018202010282020102 +84020102000281020081000106018300020001850102010001028c020100010002010201 +000100010201830001000182010200010087010200010001020107018100018501000200 +020185010001000201030181000189010002000201020102010101810201060186020102 +00020002 +010181000101010100080181000108018100010b01810201810102820201028102018201 +020181010202028101028202010202028301020102840201020102010281000201028101 +020102810102030281010081000102018400010201020202830102000201028101028202 +000282020102820200020102810102810201810102030281010202028101020202810002 +030281000283020100020402810102020281000201028f00020001000102010001000100 +0200020b020100870100020002000102850200010001008e000100010001000100010001 +000100840001020102840200010002840201020002860201020100020083000100020202 +8c0100010200020001000100010088000200020002000100880001000200020001008800 +0200010002000100880002000100020002008a0002000200010002000100880001000100 +01000100880001000200010002008a00010001000100010002008a000200020002000100 +02008a00010001000100010001008e000100010001000100020001000100900001000100 +0100010001000100010001008c0001000100010001000100010286020002000200028202 +010290020001020102010001000100010001020081000282020102820201028102010b01 +8e0200020001000200020001000100018201000103018302010201010184020002010283 +020100018301020100810001010183000100010201830002000286020102000200028402 +01020001010183020001028c020100020100020002000200028302010001020183000100 +0189010002000201020102008100010b01850201020102010601 +81000101018100018401000100018201000182010001050183000100010f010102810102 +010281010282020102830201020181010284020102010202028101028602000200020102 +030281000205028401020002010101860001000102000205028101020302810102030281 +010204020101840001020102040281010282020102040281010202028101020202010103 +0281010202028f0102010201020102010201020102010209028101028102010101010201 +010102030181020110018202010205028301020102830201020101018702010201020102 +018101028702010201020102018101028202010281020101010102830102010201020201 +010201018202010282020102810201020181020106010102810102820201028202010283 +020102010401820201028302010201010101028101028102010601830201020101010102 +81010283020102010d010202810102830201020111010102810102810201030181020107 +018202010282020102820201028302010201020101008801000100010002000289020002 +000100020002010801010203010102810102860200010001020083000100010401840001 +000102840201000102860201000100020101018300010001020186000200020102008100 +020102830002000109018900010200020002010201840100010201810100810001010101 +0281000184010201020108018702010201020002010001 +810100850001000100012001010201018102018101028202010282020102030281010283 +020102019e01020102010002010201020102000200020102010201020002010201000201 +0201820201028202010284020002010201028301020102820200020c0283010201020102 +81010202028101020202810102020281010202028101020402810102030281010201028b +0102010201020102010201020d0283000100020602850100010001008c00010001000100 +010001000100870002000200020002010282000200880001000200020001008a00020001 +000100020002008800010002000100010088000100020002000100880001000100020001 +00880002000100010001008a000200020001000200010088000100010001000100880002 +00010002000100880001000100010001008a00010001000200010001008a000200010001 +00010001008a00010001000100010001008e0002000100010001000200010001008e0001 +000100010001000100010001009100010001000100010001000102010201000282020102 +01028101028e020002000100010001000100010002810200830002010282020102830201 +020107018302010201810102860201000201020102018300020001060181000181010284 +020002010282020102850201020100010201850001000201028602000200020102840200 +020001020181000102018100028b02010200020001020102010284020002010081000101 +018500010001000188010002000102010001010181020103018102010201830201020106 +01810001 +010181000102018100018401000100018201000102018100018201000111010102810102 +010281010282020102820201020202010182020102020283010200029502010200020102 +010200020102010201020002000201010184000102010282020102080281010282020102 +820200028202010282020102010283010201028302010201810102010281010203028101 +020702830002010201028101020302830102010283020102010101010285010201020102 +820200020502810002010283010201028102018101020102820102010a01020205010402 +840102010201820102018401020102018301020102850201020102010201010201018202 +010285020102010201020181020106018202010282020102820201028302010201060101 +028101028202010282020102810201090101020201020201018102010201010207010102 +8101028202010201028201020108018102018301020102820201020102820102010b0181 +020103018202010281020101018102010601820201020102810102820201028202010283 +020100010201810001020185020100020102820201028302010001010183000100010101 +810001850100020001028202010282020102840200020102940201000100010001020102 +000200010200010001028502010001000102018300010001890102010002000201020081 +000285020100020001860102010001000102018b00010201020002000201000182010201 +01018c00010002010201020102010201080188020102010201020102 +820100018401000100012001010281010281020181010282020102810201830102010282 +020102020281010202028301020002820201020102870002000201020102050281010081 +000101018300020102030283000201028202000201028101028202010282020002820201 +020102810102010281010282020002070281010202028201020102010502810102030281 +010203020201810201010101028101020d0201010502820102010401820001008c000100 +010002000200020001008500020002000286020102010002008a00020001000100020001 +008800010001000100020088000100020001000100880001000100020002008800020001 +000200010088000100010001000200880002000200010002008a00010001000100010001 +0088000200020002000100880001000100020001008a0001000100020001000200880002 +000200020001008c000100010002000200010001008c0002000100010001000100010090 +00010001000200010001000100010001008d000100010001000100010002000201028100 +028202010292020002000100010001000100020001000200028102008800020100020002 +000101018500010001000184010200010282020102820201028302010201820102010801 +820201028402010201028602010200010001020181000102018c00020002010201000200 +020102840200010001020183000100018901000200010200020002860201020002000282 +02010081000104010100010185000200010201090181020104018102010601810001 +020181000181010081000184010001000182010001020181000182010001110101028101 +028102018201020181010283020102018301020102840201020002020281000202028101 +020102810102010281010287020002010002000102018200010202028101020702810002 +090283010201020102810102020281010282020102010281000204028301020002840201 +0201020102810102030281010201028101028602000200020102820200020c0285010201 +020102820200020102810102010284010002000108010102810102840201020102060201 +018602010201020102830201020182010201070182020102820201028402010201028102 +010701010281010282020102820201028102010501810201020101028101020102830102 +01028102010a018202010282020102810201020181020107010102820102018101020102 +820102010d01010281010201028101028302010201120183020102010701010203010102 +810102870201020102010201820100010201810001010101028101028202010282020102 +810201030192000100010001000102000200010002000201028d02000201000100010001 +000201028d02010200020001020002000102018401000100010201950001000201020100 +020002010201000201020102000102018f00010001020102000100010200020001880102 +010002010201028b0201020102010201020102010a018602010201020102 +830100010083000100012001010285010201020102820201028202010282020102820201 +020202810102020283010200020202810102030281010204028201020183010200018301 +020002820201020202810002050281010205028100020102810102070281010201020101 +040281010282020102820201020102010105028101020302810102810201830102010283 +02010201810102820201020502830102010206028101028302010201060181020106010a +020201810201070184020102010288020102000102010201840100010001010189020002 +010200010002008a00020001000100010002008600010002000100880001000100020001 +008a00010001000100010002008800020002000100010088000100010001000100880001 +000100020002008a00020001000100010001008c000100010001000200010001008c0002 +00010001000100010001009000020001000200010001000100010001008d000100010001 +000100010002000282020102860200020001000288020100010001000102820200028202 +010201020100960201000200010001000100010001000200020001020102820201028302 +01020106018202010282020102820201028b020102010201000100010001020181000102 +019100010002010201000200020102010001000102018400010001009400020001020002 +00020001020001000102010200010201830001000101018100010b018302010201040183 +020102010401810001 +820100010101830001000184010001000182010001020181000182010001110101028101 +028202010201028101020302830102010284020102010202028100020102810102820201 +0208028101028102010301850002010201020b0281000202028100028202010203028101 +020402010103028401020100020402810002820201020502810102060281000284020102 +010082000102010281010207028301020102820200028402010200020102850002000100 +0286020100020001008c000100010001000100020002008a00010001000200020002008a +000200010001000100010083000100018401020001008100028202010284020002000182 +010001010181020101018402010201028302010201810102810201070101028101028202 +0102010281010283020102010c0101028101028302010201080183020102010401810201 +820102010801810201030101028101028302010201210101028101020102810102820201 +028102010601810001020183000201028202010282020102010207019000010001000200 +020001020001000200010201810001870100010001020102840201020102820200010101 +860200020001020184010001000102019200010002010201000100020102010001020102 +81020081000103018300010201810100870002010200010201050101028a010201020102 +0102010201040181020102010102870102010201020102 +0201810001820100011f0102028101020102810102820201028202010282020102840201 +0201028402010201020202890002000200020102010203028a0002010200020100010001 +010184020002010282020002820201020202850102010200028202010282020102020281 +000201028100020502810102010203010202810102020281010203028101020402830102 +010282020102810201810102060281010204020101010281010286020102010201028302 +010201010101020a01030283010201020502070101028301020102820201028302010201 +0a0184020102010201020201010208010102810102820201028202010281020103018100 +018301020102820200028202010285020100020001020185000100010001010101000201 +840201000200820002018601000100010001860100010001000187010200020001000186 +010001000100010101820002008100018701020001000100010101850001000100018601 +000100010001810102820201020102810102860200010001000101018300010002820200 +028202000282020102820201008100019201000100010001000100010002000100020002 +820201028102010a01010281000282020102850201020102010201830001000101018402 +0001000102018a0001000201020100020001020183000100010201010082010200830002 +00028b020102000100010200010001020188000100010200010201820102010a01850201 +020102018201020102018502010201020102010002 +820100018201000182010001840100010001820100010301830001000105018100010601 +820201020102810102810201810102820201020202810102820201028602010201020102 +860200020102010201028301020002010288010200020102010001850100010001020302 +810002820200020402810102840201020102820201020902810102010281010201028100 +020102810002020281010282020002040281010203028101020302860102010001000201 +028100020502830102010202028100028402010201020302820001028602000200010002 +8202010089000100010002000200020102010089010002000200020002008a0002000100 +01000100010088000100020002000200880002000100010001008a000100010002000100 +010088000100020002000100880001000100010001008500020002000286020002000100 +010101010084010001020101018300010001010186020102000102018401000100018301 +020102820200028102010301810001040181000104018300010201020183020002010101 +830201000105018100010401810001810102810201010181000105018400020102018101 +028302000201820102010701820200010201830002010282020102820201028102010901 +8e0001000200020001000201000100010201810001820100018101028202010284020102 +01028a020002000102000100010285020100010001900102010001000201020100010002 +010201020101028300010001010182020100810002890200020002010201020106010102 +88010201020102010201100183020102010001 +830100010081000122010102010101028101028202010282020102020281010282020102 +860201020102010290020002000201020102010201020002000281020082000201860100 +010002010284020002010202028101028302010201880102010002010201020102810102 +840200020002820201028202000202028101020102010102028101028402010201020102 +810102040281010281020183010201020102830102010282020102050281010202028101 +020202810102020281010201028301020102030201010102030103020101010281010282 +020102010206018602010201020102810201010101020801820201028202010282020102 +810201080182020102820201028402010201028102010801010281010282020102820201 +0201020c0101028101028102018101028302010201210101021701810201020182020102 +810201100181020102018100010101010001019100010001000100010002000200010002 +000283020002010801010281010282020002820201028402010200010301830001000104 +0181000102018a0001000201020100010001020183000100010101810200010081020083 +000200028a02010200020001000100010301830002000283020102010a01890201020102 +01020102010701830201020102010002 +020181000101018100018201000184010001000182010001820100010201810001020181 +000105010102810102810201810102820201028102018301020102030283010201028602 +010201020102020289010201020102000201020102860002010201020186010201000201 +028202000284020102000203028300010201810102020282000102010281010284020102 +010201028100020502810002030285000200010002830201000203028100020402810102 +010281010284020001000205028301020102820200020202810102020281000282020100 +850001000200028402010201028102008c000100010002000100020002008c0002000200 +020002000100020088000100010001000200880002000100010002008a00020001000100 +010001008800010002000200010088000100010001000100880001000100020002008600 +020001000200880001000100010001008a00010002000100010001008800010001000100 +0100880001000200020001008a00020002000100010001008a0001000100010001000100 +8c000100010001000100010001009000010001000100010001000100010001009c000100 +010001000100010001000100010001000100010001000100010081000181010085000100 +01000101018100010201810001010183020102010a018c02010200010001000200020001 +840100010001050101028101028402010201028202010282020002870201020002000102 +8d02010001000102010200010001028502010001020105018702010002000201028c0201 +020102010002000201000108018202010283020102010901810201060102028201020100 +01 +820100018101008100012001010201010502810102820201028402010201028202010286 +020102010201028602000201020102010285010201020002010281010201020101810001 +020101028100020802810001020181000101018102018401020100028202000284020002 +000202028101020202810102020281010201020101810201810102020281010206028101 +028102018501020102010201028101020102830102010203028301020102820201020202 +010103028101028202010206020101010202018102010901820201028402010201028302 +010201080184020102010282020102850201020102010801010281010282020102850201 +0201020106010102810102820201020102810102820201028102010d0181020115018102 +018401020102010a01820201028102013b01810001010194000100010001000100010002 +00010002000201000107018202010282020102820201028402000200018a010001000100 +01000100010201830001000102018a000100020102010001000102018100018301020102 +950200020002010002000201020100010001000100010086000102010201028302010201 +030181020102018b020102010201020102010201080183020102010201 +810001820100010701810001170101028101028102018101028202010282020102820201 +028302010201830102010286020102010201028402010201020102830102000205028401 +020100010101820200020202810102840201020002010201018300010001850100010001 +020202810102030281010207028100020102810002030285000200020002850201020100 +0202028301020102020286000200010001020a0282010002820201028202000283020100 +02010201008a0200020001000200020002820201008c000100020001000200010001008a +000200020001000100010088000100010002000200880002000200010001008a00010001 +000100010001008800020001000200020088000100010001000100880002000200010002 +00860002000100010088000100020002000100880001000200020001008a000100010001 +0001000100880001000100010001008a00010002000200010001008a0001000100010001 +0001008c000100020001000100010001009000010001000100010001000100010001009a +0001000100010001000100010001000100010001000100010001008f0001000100010001 +00010001000100018401000100010e0101028101028c0200020001000200020001000184 +010001000181010282020102820201028402010201028202010282020002860201020002 +000102018400010001028902010001000100020100810001030188000100020100020002 +8602010201020102840201020001820100010501810201010183020102010b0181020107 +018102018301020102 +01008601000100010001820100010201810001820100018201000102018100010b010102 +010101020101810201810102820201028202010202028201020189010201020002000200 +020202830102010205028101028102010101010081010205028101020502810001020181 +000105018102018201000282020102820201020402810102070281010204028101020102 +010101028101020402810102840201020102840201020102020281010281020181010282 +020102050283010201020202010103028201020181010201020301010282010201830102 +010201028501020102010284020102010281020109010102830102010282020102830201 +020106018402010201028202010282020102810201060183020102010101840201020102 +810201010183020102011d010102140101020201820201028102013b0181000101019300 +010001000100010001000200020001000100010501820201028202010282020102890201 +020100010001000188010001000100010001870102010001000102860201000100020101 +018300010001010186000102010200028602000200020102830200010282020100810001 +8e0100010001020001020102010201028102018201020183010201028a02010201020102 +01020102810201030181020103018602010201020102 +010181000121010202810102010281010283020102018101028202010282020102020281 +010286020102010201020d02870002010201000201840100020002840201020002010283 +010201028102018401000100018c01000100010001000200020102020281000208028100 +020302810002020281010201028501020100010203028101028a02000200010001000200 +020602810002060285010201020102020201008c010002000100010002000100028d0200 +0200020001000200010002008a0001000100010001000100880002000200010002008a00 +010002000100010001008800010001000200020088000200010001000100880001000100 +010001008800020002000200010086000100020001008800010001000200020088000200 +0100020001008a0001000100010001000100880001000100010001008a00010001000100 +010001008a00010001000100010001008c00010001000100010001000100900001000100 +0100010001000100010001009a0001000100010001000100010001000100010001000100 +010001008f000100010001000100010001000100018401000100010c0182020102820201 +028802000200010001000101018300010001830100020102010102810102840201020102 +830201020081000281020194010001000102010200020001020102000100010001020181 +000102018a00010002010001000201028502010201020101018300010001160181020101 +0181020107018102010301 +810001860100010001000182010001840100010001820100018201000102018100010c01 +810201810102810201810102050201018202010284020102010284020102000201028100 +020102810002820201020202810102010282000201010181000181010208028100020102 +820102010201810001070181020181010201028101020502810102820201020202810102 +060281010281020102018402010201028202010284020102010282020102820201020202 +830102010202028101020202830102010282020102010285010201020102020201010302 +010106028101020102810102820201028702010201020102010601840201020102820201 +028502010201020106018402010201020102830102010281020102018102010601010281 +0102820201028202010281020108010102820102012b0101028201020101010102820102 +013a01810001010193000100010001000100010001000100010001000102018202010285 +0201020001028302010201020101028100018c010001000100010002000201028b020002 +0001020102000100010201810001020182020102a1020002010201000200020102010001 +020102000100010001000100020102010201028302010201030101028a01020102010201 +0201020101018102010201810201030181020181010282020102 +830001000121010202810102810201810102820201028202010282020102820201028402 +010201028202010201028301020102010281000201028b01020102010200020102010081 +000102018202010284020102000282020102030201010100030189000100010001000100 +01010185020002000102010283000200020e028501020100010203028101020102860100 +010002000205028101020202810002020283010201020202810002820201008e00010002 +00020002000100020002008c000200020001000200010001008a00010001000100020002 +0088000200020002000100880001000100010001008a0002000200020001000200880001 +000100010001008800010002000200020088000100010002000100860001000100010088 +000200020002000200880002000100010001008a00010001000100010001008800010001 +00010001008a00010001000100010001008a00010002000100010001008c000100010001 +000100020001009000010001000100010001000100010001009c00010001000100010001 +000100010001000100010001000100010001008d00010001000100010001000100018401 +000100010e01010281010284020002000103018100010401830002010282020102840201 +020102830201020101010100030183000200028402010200028802010001020001000102 +018500010001000189010001000102000100018101028302010201030183000100010201 +0102820102011001830201020182010201050101020201 +010101008401000100018201000184010001000182010001820100010201810001080181 +020181010201028101028202010281020182010201830102010283020102018301020102 +020283000200020102890102000201020002000201028201020188010200010001020102 +050283000201020102050101000a01010081010281020101018402010201020102810102 +030283010201020102810102070201010102810102810201820102018101020602810102 +820201020202830102010282020102020201010302830102010203028101020102810102 +880201020102010201028102018101028502010201020107018202010282020102840201 +0201028102010a0182020102820201028202010283020102010601820201028202010282 +020102820201028102010801020283010201020102810102810201270101028201020141 +0181000101018500010001000105018a00010001000100010201028c0201000200020102 +000100020102018300010001840100010002840201020102820201028402000200010201 +010001018400010002018b01020002010002000201020183010200010101020083020102 +008f000200020100020002010201020102010201810201010101028c0102010201020102 +01020102010a018602010201020102 +810001230101020101010201010102820102018101028402010201028202010202028101 +028602010201020102010285010201020102040201018302010201010182020002820201 +020502810002810201010183000100010201890001000100010001000102018102018401 +020102018101020502810102050281010204028101020502020184020102010284020102 +010207028301020102050283010201020102810102010285010201020102020201018102 +0102010302820102018401000100028402010201028b0200020100010201000100018901 +000100010001000200880001000200010001008800010001000100020088000200010002 +000200880002000100010001008600020001000200880002000200010002008800010001 +00010001008a0002000100020001000100880001000100010001008a0001000100010001 +0001008400010002010201820001008c000100010001000100020002008e000100010001 +000100010001000100980001000100010001000100010001000100010001000100010093 +000100020001000100010201000100010001000184010001000104018500010001000103 +010102860102010001000102018102018301020102870201000201020102820201028102 +010601810002890201020100020002010288020002010200010201840100010001920100 +010001020001000100010002010001000107018500010002010283020102010c01890201 +020102010201020109018102010101 +010181000182010001840100010001050181000103018100010201810001050181020181 +010281020182010201810102820201028202010282020102830201020185010201020102 +020287000200020002010203028100028202010283020100010101840001020102820200 +02820201020502810001820100018101008100010801850001000200018c010001000200 +020002000200020502810002050281000203028e00020001020100010001020102010202 +028100028602000200020002820201028402000200020102820002008e00020001000100 +02000200020002008d000200010001000100010001000188010201000100010001900100 +010201000201020100020102010201060182020102820201028402010201028102010601 +840201020102010283010201028102010201810201040182020102820201020102810102 +820201028302010201200183000100010301010282010201260101020301010204018102 +01070181020102018100010101830001000105018100010301850201000201028c020102 +000100010002000100010301810201830102010282020002840201020102810201010183 +00010001020101000101820001028d0201000100020102010002000201060101008f0201 +02010002000201000100020102010a018202010285020102010201070183020102010401 +8602010201020102 +830001000121010102010101028101020102810102050281010282020102860201020102 +000202028501020102010201028301020102040282010201020182020102820201020802 +020183000100010201850001000100010101810001010185020102010201080103028101 +028202010203028101020302810102020201010202830102010207028101020702850102 +010201020202810102820201020102840001020102010282010002840201020102880201 +020102010200020102890102010200010201020182010001880102010201000200028402 +010201008300010201010183000100018601020100010002880201020002000100018601 +000100010001820102008300020002820201008300010001010182000100810001010185 +000200010002860200020001000101010100820100010101820001008100010101850001 +000100018401000100010301820001008100028a02010001000100020102008300010001 +010185000100010001010101009701000100010001000100010002000100010001000100 +010081000201028100028202010282020002010285000100010001840100010001020185 +000100010001010185000100010001060182020102820201028202010285020102010201 +830102000105018102010101830002010287020100020002010286020102000100010201 +89000100010200010201028c020100010001020102000100010701830002000287020102 +010201020103018102018c010201020102010201020102010b018102010101 +810001020181000182010001020181000182010001110102028101028102018101028202 +010282020102820201028302010201820102018501020102010204028100020502810002 +030284010201000182010201810102820201028202010202028101020102010006018100 +010701850001000201008d00010200020002000200010201028202000204028401000200 +020102810002030281000203028200010208028200010282020102840200020002040283 +010002008500020002000201029e00020002000201000100010001000100010001000102 +000100020002010200830002000287020100010001000102018400010001028702010001 +000201028402000200010301010002018502010201000282020102830201000104018100 +018301020102820200028202010284020100020103018100010101850201020100010401 +8100010401810001040181000103018100010e0182000201030181000105018100010d01 +010281010201028101028202010281020107018202010282020102810201020181000101 +018100010d0182020102820200028e020002000100010001000100010001010182020102 +82020102870200020002000102810201010183000100018101028702000200010001028b +020100010002000100010201010181000105018200010287020100020002010284020002 +000105018102010301810201820102010b01830201020106010202810102 +010181000121010102010101020101010281010284020102010282020102820201028602 +0102010201020c0281010202028201020182010201020182020102050281010202020201 +810001040187000100010001000114018202010284020102010204028301020102050281 +010205028101020302810102070283010201028202010202028201020181010202028201 +020181010204028301020102840201020102810201860102010201020109010102810102 +820201028402010201028102010501810201010101028101028202010282020102830201 +020105018102018101028202010282020102820201028102010901010281010282020102 +820201028102012701810201040181020111019500010001000100010001000100010001 +000200020002820201028202010201028201020105018300010001840100010001920100 +010001000100010001000100010001000181010282020102820201028202010284020102 +010283020102010501010281010284020102010282020102830201000102018300010001 +810100810001020189020102010200010201028602010201020102010283000100010101 +840200020102890201020002000201020182010201030101028c01020102010201020102 +0102010a01840201020102 +810001100181000102018100010901010202018202010201028101028202010282020102 +840201020102830201020183010201020d02810102030285000200010001810102020283 +000200020302810102810200810001020183000100010801810001990100020002000200 +010001000100010001000102010001020102030283010201020402810002030281000284 +0201020102010281010205028300020002050286000200020002008e0001000100020002 +000100010001008a00010002000200020002008a00020001000100020002008a00020002 +000100010001008800010001000200020088000200010001000200880001000100020001 +008800010002000200010088000100020001000100860001000200020088000200010002 +00020088000200010001000100880001000200020001008a000100010001000100010088 +0001000100010001008100010e0186000100010001008e00010001000100010001000100 +010083000100010a01810201810102810201820102010601810201810102010284000102 +010281020102018100010101810001070182020102820201028202010282020001900100 +010001000100010001000102000102820201028502010201000108018500020102000287 +020102010200010289020100010001000100010501810001030182000102010283000200 +010201830001000102018202010283020102011201830201020107018102010101 +83000100011e018102018101028102018101028202010281020181010282020102020282 +010201830102010202028101020102810102070288010201020102010201050103028101 +028202010282020102810201020183000100010601850001000100010501830201020109 +018102010201860201020102010282020102030281010206028101020702810102810201 +810102020281010282020102010285010201020102030285010201020102010286010201 +020102010501850201020102010301840201020102820201028502010201020108018202 +0102820201028402010201028102010a0101028101020102830102010201020701820201 +0282020102820201028202010282020102830201020146018c0001000100010001000100 +0102850200010201028302000102810200850001000100010a0183000100019401000100 +010001000100010001000100010002010282020102840201020102820201028102010a01 +010281010284020102010284020102000183010001008100010101820201008100028402 +010201028902010200010201020102840201020102010285000200020102860200020102 +01028402000200010501810201010101028c010201020102010201020102010a01840201 +020102 +01018100010e018100010201830001000107010102010101028101028102018101028202 +01028202010282020102020281010204028500020102000203028f000201020102010200 +0200010001000183010201020902820102010401830001000108018100019c0100010001 +0001000100010001000100010001000100010001000200020a0281010203028101028202 +000202028101020102810102020281010205028701000200020002008e00020001000100 +020002000200010089000100010002000200028b0200020002000100010001008a000100 +010001000100010088000200010002000200880001000100010001008800010002000200 +020088000100010002000100880001000100010002008600020001000200880002000100 +0100010088000100010001000100880002000100020001008a0001000100010001000100 +880001000100010001008100010e0186000100010001008e000100010001000100010001 +000100850001000100011e018b0001000100010001000100010101810001070182020102 +820201028302010201020192000100010001000100010001000201000201028502010201 +000103018200010284020102010282020002860201020002000181010001008501000100 +010085000100010001830100020101018202000288020102000100010001820100010201 +840201020102830201020103018102010801820201028302010201010181020105018102 +010001 +810001200181020181010281020181010282020102820201028102018301020102830201 +02018301020102020285010201020102010281010201028a000201020102010201020103 +010302810102820201020302820102010201830001000103018100018601000100010001 +030181020182010201120182020102020281010203028101020102830102010207020101 +020281010202028501020102010202028701020102010201020302840102010201820102 +010301840201020102830201020103018402010201028402010201028302010201090101 +028101028202010282020102830201020108010102810102820201028202010281020108 +010102810102820201028202010281020101018302010201350181020117018d00010001 +000100010001000100010101820001008100010e01810001020195000100010001000100 +01000100010001000100020102820201028202010283020102010b010102830002000285 +020100010001030187020001020102010287020102010002000284020102000285020102 +01020182010201010186020002000201028b020102010201000200010001050181020102 +0189020102010201020102010e01820201020102 +01018100010e018100010201830001000107010102010181020101010102810102820201 +028202010284020102010284020102010202028d00020102000200020002010201020102 +8101020202840100010201810102050281010201028201020113018100019f0100010001 +000100010001000100010001000100010001000100010001000102820200020602830102 +010204028100020202840100010002820200020102830002000282020102850200020002 +008e00020002000200020002000100020089000200020001000201028b02000100020002 +00010001008a000200010001000200020088000200020001000100880001000100020002 +008800020001000200020088000200010001000100880001000100010002008600020001 +0001008800010001000100010088000200020001000200880002000100020001008a0001 +000100010001000100880001000100010001008100010e0186000100010001008e000100 +0100010001000100010001008b0001000100010001000100010d0181000104018f000100 +010001000100010001000100018101008100010801010281010283020102010301940001 +000100010002000200010002010002010200028302010001030184000102010281020082 +000201010185000100010001820100010601830201000183010001028802000201020002 +010284020001000101018100018601000201020102850201020102010c01840201020102 +81020182010201820102010601810201 +8100011f0101020101010281010201028101028202010282020102820201028202010202 +028301020102020283010201020302850102000201028202010281020106010202810102 +070204018300010001030181000102018300010001020185000102010201180181020101 +010102830102010281020101010102810102080201010102010106028401020102018101 +020402840102010201820102010101840201020102810201810102820201028202010284 +020102010281020109010102830102010282020102820201028102010701820201028102 +018301020102810201830102010283020102010601010281010282020102820201028202 +01028102010601010281010283020102016b018100010201950001000100010002000100 +0100020002000100020102820201028102010b0182020102840201020102880200020001 +000100010201010281010284020102010284020102010282020002810201010101028201 +02010701850001000201028b020002010201000100010001030183020102018a01020102 +0102010201020111010102810102 +820100012001010201010102810102810201810102840201020102820201028202010286 +020102010200028202000201028100020102830002010201028101028902010201000200 +01000181010203028101028202010202020f018100010201810001a40100020002000200 +010001000100010001000100010001000100010001000100010001000201028100020102 +840001020102070281010281020081000201028100028202010289020002000200020002 +008e0001000100010002000100020002008a00010001000100020001008a000100010001 +00010002008a000200020001000100020088000100010001000100880001000100010002 +008800020002000100010088000100010001000100880001000200010002008600020001 +0001008800010002000200010088000100020002000200880001000100010001008a0001 +000100010001000100880001000100010001008100010e0186000100010001008e000100 +0100010001000100010001009e0001000100010001000100010001000100010001000100 +010001000100010091000100010001000100010001000100010001810100810001060182 +020102810201080192000100010001000200020001000201000102010101810001010101 +028101028402000201028102008100010201810001030181020101010102820102018301 +020102820200018301020102820201008c00020002010001000100020102860200020102 +0102830201020107010102020184020102010281020186010201020102010701810201 +120183000100010201810001050101020101010201010102810102820201028202010282 +020102840201020102840201020102020283010201020c02820102018201020185010201 +020102820201028202010203020601830001000106018300010001040181000182010201 +1b0182020102830201020101010102810102010281010205028101020102840102010201 +890102010201020102010202020101010201018802010201020102010201028701020102 +010201028402010201028102010901010283010201028402010201028102010a01010281 +010285020102010201020101020501820201028202010201028101028302010201070182 +020102820201020102810102830201020160018102010301810201020181000102019500 +010001000100010002000100020002000100020102820201028102010801820201028202 +0102870201020100010001010184000100020101010102820102018401020102010b0181 +00010801020201008101028102018101008f000100010001000100010201020102010101 +81020102018102010901810201080182020102 +820100012001010201010102010181020181010202028101028202010282020102020285 +010201020102040281000201028101020202810002010202018100010101030281010282 +0200028202010201020b0181000101018100010401a70201020001000100010001000100 +0100010001000100010001000100010001000100010001000102850200010001020a0283 +0002000283020001028d02000100020001020100020002008e0002000100010002000200 +020001008a00010002000100020001008a00020002000100020002008a00020002000200 +020001008800010001000200020088000200020001000200880002000100010001008800 +010001000200010088000100020002000100860001000200020088000200010002000200 +88000100010001000100880001000200020001008a000100010001000100010088000100 +0100010001008100010e0186000100010001008e000100010001000100010001000100ab +000100010001000100010001000100010001000100010001000100010001000201000100 +01000100010001028402000100018101008100010301820201028102010b019000010002 +000100020002000100010200010301810001010101028401000200010201810001010183 +000100011201850001000100018101008300010002010286010002000201028602000200 +020102810201090101028901020102010201020102810201020181020107010102 +820100010c01810001840100010001020181000104010202010101020101010281010282 +020102820201028302010201830102010288020102010200020102010281010202028101 +028202010204028201000101018200010204028101028202010201020701830001000106 +018200010081000186010001020102011e01010202018202010203028101020102830102 +010206020101030201018602010201020102010201010102870102010201020102840201 +020102020282010201040181020103018402010201028202010284020102010283020102 +010501010283010201028202010282020102810201020184020102010202028301020102 +010283010201028102010c010102810102010281010283020102015f0102028101028202 +010283020102010301810001020194000100010001000100020002000100020001000201 +820102010501810201830102010282020102840201020102840200010001020183000100 +0102018100011f0182020100820002010201010082010001010183000100028502010201 +02010a01850201020102010101810201080101020001 +200181020181010282020102010281010201028101020502810102020281010282020102 +010285010200020102030285010200020002030282010201010184020102010203028101 +020302080189000100010001000100012901820201020502810102820201020202810102 +070281000281020181010284020102010201028101008c00010002010200020002000201 +810100830002000187010200010002000289020002000200010201008300010001010184 +000100020091000200010001000201000200010001000100880001000100020001008800 +020001000100010088000100010001000100880002000100020002008600020002000200 +88000100010001000100880002000100020001008a000100010001000100010088000100 +01000100010083000100010c0186000100010001008e0001000100010001000100010001 +009e00010001000100010001000100010001000100010001000100010001000100880001 +0001000100010282020002850201020100018101008100010a0101020101820201028202 +01028d020100020001000100010002000184010001000101018300010201020183000100 +010601830001000188010201020102010002830201020102010102810001830100010282 +020001010181000190010201000200020002010002000201020107018102018301020102 +830201020104018102010201810201060182020102 +0f0181000184010001000102018100010401020201010102810102810201810102820201 +028202010283020102018301020102040285010201020102030281000203028101020202 +84010001020181010202028100020702120181000182010001a701000100010201000100 +01000100010001000100010001000100010001000100010001000102010202028101020c +02810102820200020202830102000201028101028a020100020102010201000201028201 +020183010002010201830200010281020102018100010101850201020001028802010201 +000201020105018202010282020002840201020102830201020101018102010701810201 +820102018101028202010283020102010901010281010282020102010281010282020102 +8102010d0183020102015101820201020102090181000102019500010001000200010002 +000100010001000100010001090101020301010203018300010001820102018601000102 +010201850100020102010e018102010601840201020102820201008200020103018f0001 +000201020002000102010201020103018102010401860201020102010281020103018102 +0105010002 +1f0101020101010201010102810102820201028102018301020102840201020102840201 +02010202028f010201020102010201020102000200028202010283020102010301040281 +01028202010202020801830001000101018300010001080183020102011d010102820102 +018301020102030281010282020102070283010201028202010202028101028102010101 +010202018502010201020181010283020102018101020102810102840201020102810201 +070184020102010282020102850201020102010801820201028202010282020102820200 +028302010201010102028200020101018300020002890201020001000200020081000101 +018200010089000100010001000200028702000100020002008a00020001000100010001 +0088000100010002000200830001000101018100010601880001000100010001008e0001 +000100010001000100010001009c00010001000100010001000100010001000100010001 +000100010001008600010001020102830200010288020002000102010001810100810001 +0a0181020181010283020102018101028302010001810102810201060184000100010283 +020002018501020002000108018102010101010283010201028402000201028302010201 +83010201028502010200020182010001820100018a010201000100020002000182010001 +040101028401020102010201850201020102011501 +200101020101020201018102018101028202010282020102020281010284020102010202 +028101020102890102000200020002000282020002010287010201020100010204028101 +02060212018100018201000184010002000101019e000100010001000100010001000100 +010001000100010001000100010001020202850002000100020b02820001020202810102 +030281010202028400010001008c00010002000200020002000100860001000200020183 +010201008a00010002000200020001008a00020001000100010001008800020002000200 +010088000100020001000100850001000100018201020087000100020001000185010002 +000201020101000101010281010282020102830200010282020102820201028102010201 +81000104010102810102810201010182020102820201028102014a018102010f01810001 +0201870001000100010001010185000100010001010184000100020101018b0001000100 +020001000102010601890001020002010002000281020184010001020119010102830102 +0102850201000100018101028602010201000102850200020002010801820201028f0201 +020102010201020102010201020108010002 +1f0101028101020102810102010281010282020102820201028202010282020102020281 +010208028501020102010206028101020102010181020101010502810102820201020202 +090181000101018300010001060183020102011f01010283010201020902830102010282 +020102840201020102060201018202010202020101010282010201830102010281020102 +010302020181020105018202010284020102010284020102010283020102010701010281 +010282020102820201028502010201020102010102810102860201020002010282020102 +820201028102010201810001040182000102820201028602000100020102890200020002 +000100010083000100010101820002008900020102000100020001820100010101810001 +08018600010001000100850001000100010101880001000100010001009a000100010001 +0001000100010001000100010001000100010001008100018101008f0001000100010001 +000100010001000184010001000105018100010101010281010282020002810201020101 +020c01820001028402000102010501830001000104010102810102840201020102840201 +020102840201020102820200028302010200810001820100018201000101018602000100 +010001020181000182010201880102010201020102011201830201020106010002 +170181000107010102810102010281010201028101028202010205028301020102840201 +02010206028301020002020281000201028b000201020102010001000102820201028202 +000282020102020213018300010001820100010101850001000100010101850001000100 +010101850001000100010101850001000100010101820001028302000201850102010201 +020302850100010201020502010101028500020002010201020100810102870200010002 +0001028302000200850001020100018101028d0201020002000100010201000100810001 +01018f000200010001020001000200020102008300010001010182000100880002000200 +010002009100010002000200010002010001000100010085000200020002010201008302 +000201810100830001000103010100810201830102010281020181010281020101018100 +0281020102018100010301820200010c018100010c018100013701810001010181000111 +019000010200010002000100010002000200010601840001020102820200028402010201 +0283020102010a0182020102810201010101020301850201020102018601020102000200 +8100010201810200810001810100850001000200010301810201010101028e0102010201 +0201020102010201020105018102010301 +820100011b01020281010201028101020102810102820201028202010283020102018301 +02010202028101020c028100028402010201028302010201040101028101028202010206 +020c01850001000100010401810201820102011f01860201020102010201028101020502 +890102010201020102010202028301020102820201028202010204028301020102810201 +010181020101018202010202020501820201028402010201028202010283020102010a01 +820201028202010284020102010283020102010801810201010182020102820201028202 +01028102010801010201010102820102018201020182010201820102010a018102010201 +810201030181020132018500010001000103018300010001050181000104018100010c01 +830001000192010001000100010001000100010001000100011101820001028202010281 +020107018302010201830102010284020100010285020102010001820100010401830002 +000101018100018201000184010001020102018300010001050184020102010283020102 +0113018102018201020106010002 +020181000102018300010001820100011101010201010202810102820201020102810102 +820201020202830102010286020102010200021202850002000100018201000201028100 +02070213018100018a010001020100010001000101018500010001000101018500010001 +000101018500010001000101018300010002020281010282020002060282010001010182 +0001008100010101810002020285010201020102820200028d0200020002000102010002 +0001008400010002018701000200020001008a0001000100010001000200880002000200 +020001008800010001000100010088000100010001000200880001000200020001008800 +010002000200010088000100020002000100880001000200010001008600010001000100 +880001000200010001008700010001000100010201810001030182000100880001000200 +01000200850002000100010801880001000100010001008f000100010001000100010001 +00010001840100010001240181000107018100010e019302010200010200010002000200 +010002000200010401860001000102010281020101018102010601810001020181020104 +018202000102018102010201830001020104018102008300010001840102010200010087 +010200010001000103018102010301010289010201020102010201028102010201810201 +02018102010201 +820100010101010002018100011201020201010102810102810201810102820201028202 +010282020102840201020102040283000200020302810002010285010201020102030206 +01020281010284020102010202020b018500010001000101018100010301850201000102 +0103018100011701020282010201810102010281010204028a0102010201020102010201 +040102028201020181010282020102010201010102010186020102010201028102018701 +020102010201028402010201028302010201090101028301020102820201028202010283 +020102010801010201018202010281020183010201028102010801810201030181020103 +018102010a01010201018202010281020182010201040181020182010201350183000100 +0101018d000100010001000100010001000186010001000100010c018100010201910001 +000100010001000100010001000100010d01010203010102810102810201010187000100 +01000100010a018100010101810001070183000100018c01000100010001020002000102 +850201000100018a01020001020002010201028302010201020181020107018302010201 +0101830201020108010002 +02018100018401000100018401000100010e018102018101020102810102010281010281 +020183010201028202010282020102840201020102880201020102000200020102890102 +01020102010200028c020102010200010001000100020b02810001150181020101018300 +010201030181000105018100010501810001050182000102020283010201020702810001 +98010201020002000102010200010001000201020001000200028d020001000100020102 +0001000100830002000201028600010001000100880001000200020001008a0002000100 +020002000100880001000100010001008800010002000100010089000100020001000100 +018701000100010001008800010001000200010088000100010001000100860001000100 +0200930001000100010001000201000100020001000100810001050101008101028b0200 +020001000201000100010a01850001000100018601000100010001010185000100010001 +86010001000100010101810001120181000105018d000100010001000100010001000112 +018202010290020102000100020002000100020001000182010001010185000100010201 +0d0184000100010283020100018501020102000101018302010201010183020102010601 +810200820001028402010200010401830001000109010102840102010201020181020108 +018102010301 +010001018100010101830001000184010001000101018100010901020201010102810102 +810201810102830201020182010201810102020283010201020402850002000200020102 +81010206028101028102010101810201830102010282020102820201028202010201020b +018100010501810001010186020102010002010401810001160101028201020183010201 +020302810102010282010201090184020102010201028101020302840102010201810102 +040281010281020101010102830102010284020102010281020106010102820102018301 +020102810201010101020b01810201030181020103018102010901830201020181010283 +020102018101028102010201810201070101028101028202010201028201020111010102 +570181000103018100010601890001000100010001000105018102010101830201020103 +0181020102018a02010200010002000200010101010203018102010e0185000100010001 +8b0100010201020002000102018301000100820001008500010200020188010201020102 +0102018201020182010201040182020102850201020102018201020106010002 +840100010001820100010201810001020183000100018401000100018201000101018102 +018101020102810102010281010282020102820201028202010282020102020281010202 +028d01020002000200020102010201020402810102010285000100010001810102030281 +0102820200020102820100011201810001a6010001000200020001000100010001000100 +010001000100010001000100010001000100010002820201028102018401020100020702 +860002000200020092000100010001000100010001000100020002008c00010001000200 +010001000100830002000201028600010002000200880001000200020002008a00010001 +000100010002008800010001000100010088000100010001000100910001000100020002 +000102000100010002008800020001000100010088000100010002000200860002000100 +020089000200020002000100018401000100010101010082010001060183000102010101 +830001000113018100010401810001050181000104018100010f01810001040181000105 +018300010001030185000100010001820100010c01830201020101019002010200010002 +0001000100010001000189010001020100010002011001820201028402010001028a0201 +020100020102010201810102830201020107010100810102810201820100010401830001 +00028302010201060185020102010201090181020106010002 +020183000100018101008100010101830001000181010081000101010100050102028101 +020102810102810201810102030283010201028202010286020102010201020402870102 +000200020102020283000201020202020181020181010282020102090208018100010201 +870001000100010001020182020001050181000105018100010501810001050181000102 +010302830102010201028300020102810201010181000183010201028502000201020101 +018300010201020183020002010101830201000203028301000102020283010002010301 +810001040181000103018202000104018100010301820200010101010283010001028302 +010201820102010b0101028101028202010282020102810201820102010c010102020182 +02010281020183010201028102016d01810001810100020005018b000100010001000100 +01020101018302010201020101020a018a00010201000200020002018101028302010201 +110183000100018201000103018402000200028102018501000100010001000102820002 +010601810201030101028e01020102010201020102010201020101018102010501 +820100010101010002010100020101000101830001000102018100010401020281010201 +028101028202010282020102820201028402010201028402010201020402810002010283 +010201028602000201020102020286010001000100020202810002010281000282020102 +83020100010a018100010701860001020002000101018500010001000101018500010001 +000101018500010001000101018600010001000102010284010201000208028701000100 +0100010092000100010001000100010001000100010002008c0001000100010002000100 +01008100020202870100010001000100880001000100010001008a000100020001000100 +020088000100020002000100880002000100010001008900020002000100020002870200 +020001000200880001000100010001008800020001000100020086000200010002008800 +010001000100010085000100010001010182000100810001030181000189010001000100 +0100010081000101018100010a0186000100010001008900010001000100010001010183 +000100010201850001000100010301820001008100010401010081010081000181010085 +000100010001810100850001000100018101008400010001008100010401810001050181 +020103019b020100010001000100010001000100020100010201020100020102010b0181 +020183010001028a02010001000201020100018401020102010101830201020183010002 +0101018202010083000102018201020105018b0001000102010201020102011c01 +020181000102018100010201810001020181000102010100060101020101010281010282 +020102010281010282020102020281010286020102010201020602830102010202028100 +0282020102010281010283020102010101040281010201028401020102010f0185000100 +010001010182000201040181000105018100010501810001050181000103010102830001 +0201010184020002000201028b0102000201020102010001028102010201810001040181 +000104018100020402820001020302030181000182010201040181020104018102010801 +820201028202010282020102820201028502010201020107018e02010201020102010201 +02010201028102010b018102010301810201020181020103018102010501810001370181 +000105018300010001040181000124010100020181000101018700010001000100028302 +0102018101028302010201810102810201040181000102018a0001020100010002000201 +010181020104018102010301830201020181010201028101028202000181010207028300 +020102850200020001000100820102008100010801810201010101028901020102010201 +020102850201020102018201020104010002 +020101000501010084010001000184010001000184010001000184010001000181010281 +020182010201810102820201028202010282020102020283010201028202010201028101 +020502810002010281000202028400020102010301820201020602810102020208018100 +0105018100012a0102028101028202010201028101020302060183000100010201830001 +000103018c00010001000201000200020002010288000100020002010001010181000101 +0101008201000101018f0001000200020100020001000102010083000100010101820001 +008800010002000100020089000200010001000100018701000100010001008800010002 +000100010088000100010001000100860001000100010088000100010001000100860001 +0002000102830200020083000102010101810001020189000100010001000100010b0188 +0001000100010001008f0001000100010001000100010001000102019600010001000100 +010001000100010001000100010001008100018101009200010001000100010001000100 +010001000100810001820100010401820001028302010201810102810201040196000100 +010001000100010002000201000102010201000184010201020102010102020102028101 +028402010200028202010282020102020281010284020102010201020901010081020105 +01810201010183000100028502010201020111018302010201030181000101010002 +0f0183000100018401000100010201810001010181000101010402840001020102030281 +010202028101028602010201020102010289000201020102010201020402820102018401 +00010001810102020281010207020b018100010201890001000100010001000101018500 +010001000101018500010001000101018500010001000101018500010001000101018300 +010002010281010202029000020002000200010002010201000100010301830001000104 +018100010401810001810102010284010001020182010201860102010200010284020102 +010283020102010a0183020102010201010282010201820102010e018202000102018102 +010f01820201028202010282020102820201020102810102830201000108018202010082 +000201030181000104018100010b01810001050181000104018100010401810001040181 +000105018100013701860200010001000283020102018101028302010201080181000102 +018100028202010202028100028202010201028101028202010282020102830201020183 +010201028202010202028101020202830102010286020102000102018501000200010001 +0081020002000601830201020102018a02010201020102010201028102010c01 +0b0183000100010201810001020183000100018401000100010201820200020602810102 +840201020102020281010204028701020002000200020102810002020281000203020501 +840201020102070209018300010001310103020201820201020502810102850201020102 +01820102011c018302010201010181020103010102030185020102010001820102010d01 +830201000102010102810100810001820102018201000104018100018101028502010200 +010282020102850200010001028102018101008100010301010082010001840102000100 +820001028202000201028500020100020104018100018701000100010001008100010101 +8100010801880001000100010001008e0001000100010001000100010001008100010101 +980001000100010001000100010001000100010001000100010094000100010001000100 +01000100010001000100010082000100010002018202000181010283020102010a018900 +010002010200010002010201010102810102820200020102810102810201020101028201 +02018301020102890201020002000100010283020100018201020101018100018c010001 +000100020100010201008100018201020109018500020001020104018102010501810201 +0301010284010201020101018100010201 +0b0181000101018300010001840100010001010181000102018300010001810102830200 +01020302850102010201020202830102010202028b010200020002000201020102040281 +010289020002010001020100028202000282020102820200020302120101008201000104 +018300010001050181000105018100010501810001040102028501020102010284020002 +000201020701870201000102010201010181000188010201020102000201030184000201 +020102018100010101020201000401810001050183020102010201820002010201830200 +020105018100010501010281010288020102000100020102820200010401810001010181 +020102010102810102010281010282020102830201020182010201010181000101018102 +018301020102830201020082000102810201010183000100010201850001000100010701 +850001000100010101010082010001010182000100810001010185000100010001890100 +010001000100010085000100010001010185000100010001860100010001000103018300 +010001040181000103018100010301840001000100840001020002840201000102010283 +010200028102010101830201020103018100010301010284010001000286020102010002 +010701810201030181020104010102030183020102018201020187010201020001020185 +010001000100010083010001008100010301850201020102010301010282010201840102 +0102010b0182000100 +020181020109018100018101008100010101010003018300010001810102010201010102 +810002010281010284020102010282020102020281010202028101020302810002090282 +0102010501030281010206020a018100018401000100012c010302020109028601020102 +010201080181020105018302010201090101028101028102010401010203018302010201 +0f0185020102010201810102820201028402010201028102010601810201020101020201 +020283010201028102010a01820201028202010282020102010281010282020102810201 +820102010701010201018100018401000100011101880001000100010001008d00010001 +000100010001000100018201000101019c00010001000100010001000100010201000100 +010001000100010001009000010001000100010001000100010001008200010001000201 +010281010281020109018102010101830001020101010102040183020100010901810201 +030181020103018100018601000100010001840100010001040181000186010001000100 +018701000102010002008200020184010201020101018102018401000100010601810201 +810102880201020102010201028502010201020182010201010101000101 +010101020601010084010001000184010001000107018400010002018101028302000102 +820201020402810102880201020102010201028202010201028100020802810102020287 +0002010001020102080281010201020c0181000104010300820100018e01000100010001 +000100010001000101018500010001000101018500010001000101018800010001020102 +010203028100028102008300020102840201020001020183020100011501010203018502 +0102010201820100010701010202010102050101020d0101020101820201028102010101 +010201018300010201060101028101028302010201010101028101028302010201090181 +000283020102018201000281020183010201000100020181020108018102010201810201 +170181000102018402000100010401830001000102018500010001000101018200010081 +000101018500010001000101018500010001000101018500010001000182010001050185 +0001000100010101890001020100010001000102018b0001000200010001000100010401 +8a0001000100010001000201040181020103018102010401810201030181020104018102 +018201020182010201010101028201020183010001000100820102000100040185020102 +010201140181020104010000 +020101020101020201018102010101830001000105018102018101020102010102020101 +0102820001028202000282020102020201018402010201020f0281010285020102010201 +01018102018101020102810102820201020602090181000186010001000100012a010102 +020109020a01850201020102010a01810201060183020102010101810201840102010201 +8601020102010201820102010e0181020103018102010301810201070101028101028202 +01028202010282020102820201028102010b010102850102010201028102018301020102 +810201040181020102018102010101010203018102010701020201010202010181020122 +018100010101940001000100010001020100010001000100010001008700010001000100 +010101850001000100010201820001000100020181000107018102010b01810201040181 +020101018300010201020181020103018202000108018700010001000100018201000284 +020102010282020102840201020102840200020102850201020002008300020102020203 +0183020100010701810201010101028b0102010201020102010201028202000102018102 +008100010001 +010101020201810201020183000200010201810001040102020101020201018100028102 +018101028202010281020182010201820102018301020102010281010202028101020602 +8300020002820200020202010186000200010201020402810102820201028102010b0181 +000104018200010082000100a40002000200010001000100010001000100010001000100 +010001000100010001000100010290020002000100020100020002000200020001008702 +010001000100010301020003018300010001040181000104010100820102010101820200 +018201000101018200020103010100040101000401010082010201860102000200010282 +0201028402000201028402000100010301010001028101028102008100018e0102000100 +010002010001000102018601000102010001820102008800020001020100020083000100 +0201028400020002008700020102000200018a0100010002010200010001020181000106 +01880001000100010001008e000100010001000100010002000100810001010181000101 +018100010701810201120181000107018300010001070101020100810102850201000100 +0283020100018c0102010001000200010001000182010001820102018a01000100020001 +000100010201010283010201028202010284020102010283020102010201810201030181 +020104018102010201820200028102018901000100020001000100810001810102870201 +0201020102010301810201060181020101018902010201020100020001810100 +010181020102018102010101020286010200020002010701010282010002810201020184 +020100010282020002820201028202010284020102010282020102820201020102890102 +010201020102010205020601820201020302810102040209018100010301850001000100 +012801030281010201028101020402030181020101018102012101810201010181020109 +018102010101010282010201010184020102010281020101018102010601820201028202 +010282020102820201028302010201040181020103018102010201810201040181020101 +010202810102860201020102010282020102040281010282020102820201020102820102 +0181010281020139018602000100010001010185000100010001030183000100010d0185 +000100010001020181000102018102010301810201030181020103018302010201060181 +000103010102810102840201020102810201020181020102018500020102000201028201 +000283020102018301020102840201020102860201020100020101018102008100018301 +020102810201010101028401000100010101850201020102010301010285010201020001 +8201020101018300010001020182000100 +810102010281010202028101028302000102830200010083000201028102010101010283 +010201028202010283020001020202810102820201020602830102010284020002010204 +028101020902840100010201830100010282020002820200020502820100011201840001 +000100a50001000100010001000100010001000100010001000100010001000100010001 +0001000200020102830002000202028200020001008102000d0081010001008702000100 +010001000200870100010001000100040002010400810200040081010001008101008200 +010001008501000200010086000100010002000200830200020002008302000100030083 +010001000100010182000100010082020102880200010002010201008100020102820002 +000100810102810200020001028401000100028102010201840001000100870002000200 +020102880200010002010200010401810001060183000100010101850001000200018601 +000100010001820102018401000100010201830001000102018102010301020210018300 +01000105018300010001070183000100010801820200028f020002000100020002000100 +020100018301020102860201000100020183010201028502010201020181010282020102 +830200020181010285020102010002830201020181010281020107018102018201000281 +020187010001000200020083000200018201020182010201070181020102019102010201 +02010201020102010201000100010101 +010202010102810102020285010200020002020201010302010102028100028202010283 +020100028102018101020202810102820201028402010200028602010201020002820201 +020602810102020282010201820102010101010281010282020102040281010281020106 +01830001000101018700010001000100010101850001020102011f010202850102010201 +020602860102010201020110010102010181020107018102010301820201028102018501 +020102010284020102010282020102870201020102010201030181020103018102010301 +810201010182020102810201830102010281020183010201028102018101020502810102 +820201028102010201010203018102010301810201020183020102018101020102010182 +020102810201820102010901810001030182000201070183020102011101810201110183 +00010001870102010200010001030181000113018100010201810002820201028a020102 +000100020002000108010102030181020103010a02810002810201810102830201020182 +010201820102010401820201028102018801020102010200010285020102010001030101 +0001018102018201020102018d0201000100010201020102010201030101020301830001 +00010201850001000102018301000100 +830102010202028101028102018301000201830100010081000204028101028102018101 +028102018101020302810002010281010203028301020102830200020187010201020102 +010207028100020202860102010002000181010203028101020402810102010216018500 +010001000102018500010001000101018500010001000101018500010001000101018600 +010001000102020283010201020202810002010282000100840002000200010082020100 +020082010001890100020002000100010002008701000100010001008600010001000200 +820002000600810200040081020004008501000200020086000200010002008600010002 +000100820001000400810200020085010002000200840002000100860001000100010084 +000100010086000200010001008400010002000200830102010083000100010201830002 +000282020100840002000201810102810200820001008200010082000100810001010181 +000104018502010002000101018600020002000201010183000100010301830001000102 +018300010001030181000183010201028302010001050181000101018100018601000100 +010001010187000100010001000105018500010001000182010201030101028401000201 +028202000282020102820200020102830100010202028101008100018201020183010201 +028102010101820201028102018101028502000100010287020100010001000102018102 +010401810201810102810201880100020102010002000100810100850001000100010701 +86020100010001028b02010201000102010200020086000102010001008100010001 +020181020103018102018401000100010201810001010181020181010204028101028302 +010002820201020102830102000282020102020281010282020002820201020102810002 +050281000208020201820201020202810102040281010202020901810001030182000100 +810001270103020101840201020102050282010201100189020102010201020102010801 +860201020102010281020181010202028101020402810102020281010284020102010284 +020102010282020102020281010203028101028302010201030181020102018102018101 +02820201028202010282020102820201028102010a018102018301020102810201830102 +010281020181010283020102018201020102018102010101810201840102000201020187 +02010201020102010f010102810102810201070181020111018202010283020102011b01 +830001000103010402810102010283000200028102010101810201070101028201020101 +010302810102010288010001000200010001010184020102010282020102840201020102 +84020102010282020102840201020002820201028a020102010002000201020081000101 +010102030183000102018801000102010201020104018500010001000102018300010001 +0201830001000102010000 +8102010d0183000100010901060282010002820201028402010201028302010201830102 +010284020102000202028101020102850102010201028402010201028302010201010183 +020100020602810002030214018100018201000102018100010101850001000100010101 +850001000100010101850001000100010101850001000100018601020002000102010202 +00820200028e020100010001000102000200020001010182000100810001010185000100 +010001890100010001000200010082000100010081020082000200010081020003008101 +000300810200040085010002000200860001020100010086000100010001008300010200 +020081010281020001008401000201000100820100018601000100010002880200020001 +000201000100890200020100020100020102018102018101020102810102820201020202 +0100810102010203018200010003008102008500010201000105018b0200020001000100 +010001008f000100010001000100010001000100019f0100010001000100020001000100 +010001000100010001000100010001000100860001000100010001008801000100010001 +000182010001040181000103010302810102820201020102850002000200020102810001 +860100010001000101018300010001830102010202028101028302010201030190020100 +01000102000100010001020102010201010201018402010201028102018c010002010201 +000100010001008500010001000103018102010101840201000100810002840201020100 +8900020102010200020001010181000182010001 +8101028102010701020003018100010a0181020101010202810102810201830102010283 +020001020302810102020281010206028100020202830102000283020102010401070281 +010204028201020107018100010301830001000129010302010103028101020302070183 +020102010801820201028102018201020101018102010801010281010282020102020281 +010202020301810201020181020102018402010201028202010282020102830201020181 +010281020105018402010201028202010282020102820201020302840102010201030181 +0201830102010282020102820201020a0281010281020181010201020101030281010282 +020102010282000201020181020102018102010901810201030102028101028102011501 +810201820102010301830201020182010201170101008201000184010001000203028b00 +020001000100010001000101018102018301020102820201020202020103028101020102 +880100010001000100018101028102010201830201020101010202020101020301860200 +010001000186010001000100018401020001008200010281020102018200020101018100 +01820102018701000100010002010101830001000102018a000200020002010001000101 +01810201 +0f0183000100010f01820001020102830102010281020183010201028402010201028102 +018101028202000206028101020702810102810201010182020102010281000282020102 +070206018100011501830001000103018300010001030183000100010301830001000101 +010202850102010201020702860102010001020102018100010501890001020102010201 +0001040185000200020102850200010002018201020002008a0100010200020001000102 +810200830001000101018500010001000186010002000200028802000200010002010202 +028100010101810201010183000102000100820200028202000282020102010283000100 +028602010200020002810201810100820002008100028102008400020001028202000201 +028101028302000100810001010181000102018200010082000100820001008100028102 +0105018302010200010002018c0001000100020100010001000101018200010001000301 +830001000101018200010001000201820001000200880201000100010001008100018101 +000400810100040083010001008100010201850201000201028202010201028101028202 +0102880201000200020001028402000100018b0100010001020102000201028102010101 +83020102010101830201020103018300010001880100010001000100010a018102010301 +830002010286020102000200018601000100010001030185020002010201010101008202 +010282020100820002010401810001030182000100 +810201070182000100010081010083000100011401010281000281020183010201028202 +010203028500020002000201028300020002820201020602010181020101010202810102 +820201020702810102020202010102050183000100010201830001000122010202010182 +020102020281000203028601020102010201010181020118010102810102010202010102 +810102810201070182020102820201028102018101028202010282020102020201018302 +010201810102840201020102820201028202010282020102030281010282020102810201 +81010281020101010102820102010101820201020102830102010201020a010102810102 +820201020102810102820201020102810102820201008200010081000102010100820102 +010701010203010202010181020117018502010201020120010100820100010201850001 +000100010101890001000100010201000101018302010201810102830201020181010281 +020107018900010001000100010001190185000100010001810102810201010181020183 +010001008100018201020102018102010201830001000102010100830100020185010200 +01000101018b0200020002000201000102010101810201 +090181000101018300010001110181000181010082000102810201820102018101020302 +83010201020c028300020002820201020202810102810201010182020102040281010204 +028101020202830102010202023201010281010282020102030281010202020901850201 +020100010301860200010001020184010001000103018400010002010101870001020102 +010200840002000102880200020100010201008300010001010189000200010002010001 +02820200028202000201028b000201000100010201020002820201028102000300810200 +020085020001000100860001000100010002008102000300810200040086020001000100 +0102018500010001000185010001000201830102000101010200820100010b0101000101 +86000100020002008f000200010001000100010001000100010201880001000100010001 +008100018501000100010082000102850201000100010101850001000100018401000100 +018201000103018200010081000104018200020102010102070189000100010001000100 +01860100010201000118018300010001880100010001000100010a018100018601020102 +00020102018c020001000100020100010002010101860002000200020101018400010001 +0282020100830001000106018102010101810201 +8102010901010001010100170181000104018502010201020181010203028100020b0281 +010203020501120281010201028101020202820102018501020100010084000102000101 +010100010181000101018500010001000101018500010001000101018500010001000101 +018100020102810001010104028300020002840200020001860100010001000182010001 +8c0100010001000201020102000102018302010001010182000102040283010201008100 +010101820201028402010201020102820001020302810001860102010201000101010102 +830102000203028401000201028202010281020103018100010101010281010282020102 +820201028202010287020102010201020104018302010201010101020101820201028102 +018101028302010201810102010283000102010301010081010082000100820002008100 +01050101028101028102010101820201028102010c018102010e010102820102011d0183 +000100010501830001000103018100028702010001000102010201810201010101020b01 +820201008500010002000183010002010301810201110102020201820201028502010201 +020101018200010082000102020202018102010101010005018300010201010190020002 +00010201020102000200020102010501 +810201070185000100010001130185000100010001050181020105018202000202028101 +020402810102070281000105010202810102100281010203028101020302820102018801 +02010201020102011e010102020101028101020702890102010201020102010283020102 +011601010281010201020201810201010181020182010201010181020186010201020102 +018201020103010202810102830201020102010102010184020102010282020102060281 +010201020301810201030181020106010102820102018101028302010201820102010b01 +010281010204028101028202010201028101028202010281020112010102860102010201 +020108018100010901040201018102018101028102010201810201820100010501810001 +040181000106018300010001820102018401000102010b01840201020102010281010201 +0284000102010283020100010c0101020101820201028402010001020102830001000201 +028201000182010201010185000102010201030184020001000102018500010002000185 +010002000201010186000100020102010101820001008100010101820001008100010201 +850201020102010301 +090181000182010001810100810001140183000100010b01830201000207028301020102 +820201020202820002010101810201810102010281010203028101020f02810102020283 +010200020502810002810200820001009c00010001000100010001000100010001000100 +010001000100010001028202000282020102020201008602000200020100120085020002 +000200820001000100890100010001000100020083000100010101040081020082000200 +0100850100010201008a0001000200010001000200850002000200020202810002020281 +010001000102820001000100830100010002008201000281020001008301000201810100 +830001000101018200010081000181010086000200020002008500020002000282020102 +820201028102010301810001050183020002008500010200010082000201030101028201 +020122010202810102820201028102010201020281010281020118018402010201028402 +000200020302810002010282000102010281000182010201050102028101020102010182 +02010282020102030281000201020a010402810102840201020102820201020402830102 +000201028901020102010001000102830201020101018102018101008400010001028502 +010200020101018d020102010200010201020002000105018102010001 +090185000100010001130183000100011001830002000203028301020102020281000205 +0203018202010202028101028202010201028101021202810102090203018102011a0182 +0201020202810102090286010201020102010c0183020102010401810201850102010201 +020202810102010207018102010101010282010201830102010281020183010201028102 +01010101020201830201020181010283020102018301020102810201820102010d010102 +810102820201028102010101820201028202010283020102018101028102010701040281 +010201028101020202010103028401020100018101008100010201810201040183020102 +0102018102010101830201000104018100010c0181000183010201020102840001020102 +040203018300010001030183000100010b0101000c010102810102010281010209028101 +028202010284020102000181010281020181010284020102010203028100020202810102 +03028201020186010001000100010e010102820102018301000201010185000200010001 +840100020001040181000103018102010101010202018c02000100010201020102010201 +0301 +0d0182000100810001140183000100010b01850001000201020102830102000208028900 +02010001020001000201028101028202010201028101020f028101020802810102050282 +0100019c0100010001000100010001000100010001000100010001000100010002010283 +000200028802010200020002000283020001000400810100020081020082000100010085 +01000100010002008b010001000100020002000200860001000201020003008102008200 +0100010085010002000100880002000100010001008a0001000100020001000100810002 +840201000100020083020001000100830200010002008302000200020085010001000100 +880001000100010002008100028102008100020102830002000202028300010001090181 +00018101028a020102010201020001000283020100010c01810001810102040284010201 +020182010201030181020081000107010f028401020102010b0183000100010301810001 +010182020102010281010202028100020102870002000100010201810102860201020002 +000283020001020102010182020102810201810102830201020184010001000109018400 +01000102840201020102840201020102840201000102820201028402010200028102018e +010200020001000201020102010001850100010001008400010201028102010701810201 +0301830001000105018102010001 +0701850001000100010201810001100183000100010d0101028a01000200020102010201 +028402010201020502850102000100018101028202000201028101020902810102020281 +01020202830102010202028101028202010209021d01010281010208028101028102011b +018202010281020181010202020e0181020103018102010a018102018101028402010201 +028202010203028201020182010201030181020102010302810102040281010282020102 +010284010201020108018102018301020102810201810102830201020181010287020102 +010201020108018200010281020089000200020102010201028202010281020102018102 +010701010281010281020101018302010201820102010601090203018102010201810201 +820100010501810001050181000101018100010201020201010102850102000201020102 +810102820201028302010201810102830201020181010283020102010201810001060101 +028101028402000200028202010284020102010281020108018102010301810201050183 +00010001820100028102018b010001000100020100010001040183000102010101810201 +010101028f010201020002000102010201020102010301 +0a01820201000100170183000100010b0183000100020102830102010204028101028202 +000286020002010002008400010201020102810102820200020502830001020181010209 +0281010202028101020f0202018300020001030183000100010301840001000102020284 +000100010201028300020002010286010200020002010101830001000103018200010081 +000101018200010081000101019000010201000100010001020001000100018101008200 +010001000101820001000100010181020002000201820001008100010101850001000100 +018601000200010001820102008500020002000281020089000200020100010001008800 +01000100010002008800010001000100020084000200010283020002008c000100010001 +000200010201028202010201028101028202010201028101028202010283020001000100 +820100010301010201010102020182020102010281010201028201020109010100090102 +028301020002020282010002980201000100010001000100010001000100010001000100 +010085000100010001050183000100028302010201010185000100010001880100010001 +000100028802000100010002000101010102810102830200020182010001010181020103 +0181020183010200028402000100028702010200010201008400010001028b0201000200 +020002010201008700020002000200018e01000201020100010002000100020182010201 +0d0183000100018201000102018102010001 +07018800020002000201000104018102010901850001000100010f010602810102020281 +010205028201020182010201030101028100020102810102050205018202010282020102 +050281000205028101020b02810102820201020302840102010201080102020301090286 +0102010201020101018102011d0181020114018302010201030181020102018202010282 +020102810201810102810201060181020183010201028102018301020102810201830102 +01028102010c01010281010282020102820201020402810102820201028102010a010102 +8101020102810102820201020102810102010282010201010101020c0182020102830201 +0201050101020a0101020301040202018302010201820102011501010008018302010002 +820201028202010282020102820201028202010282020102830201020105018100010401 +010288010201020102010002830201020181010283020102018101028502010201000284 +02010201020102840002010201860102010001000186010200020102018b010001000102 +000100010001020184020102010281020101018902010201020102000100880002010201 +020102010301 +080183020002000200850102000201028102010d01850001000100010b01820201028202 +000207028301020102030284010002010001000502810102060282010001050101020201 +0102830102010203028100020c028101020b020301830001000101010202830102010203 +02810002030208018102010a0183020102010a0183020102010101810201030181000109 +018102010c01010283010201028402010201020102820102018101028102010601840001 +000102820201028202000282020102860201000201020101018200020103018100010301 +820200020102810102820200028202000201028100020402090182000100010083010001 +0281020101018502010201020103010102820102010d0181020109010302820100020102 +820002000200830100010293020001000100010001000100010001000100010004000101 +010002018300010001010181000101018500010001000191010002000100020100010002 +000100010001810102810201810102030201018202010281020181010283020102018301 +020001880102010002000102018301020100810001040185000100010001040101008602 +000200020102850201000200018501020002000113018100018401000102018201020100 +01 +0701860001000201020086000102010201028102010901830001000102018100010d0102 +028101020102830102010205028101020202010181020101010b02820102010301810001 +03010100010182000102820200020202810102050283010201020a028101020402810102 +0102820102010301030201010202810102040284010201020101018102010e0181020106 +018102010101820201020102820102011401810201020101028201020108018202010202 +028101028202010282020102820201028202010281020109018202010283020102010101 +820201028202010201028101028302010201070181000101018102018501020001020181 +01020102010182020102810201810102820200010b018102018201020181010283020102 +018101020102150181020182010201810102060281010281020101018102011401010002 +018100018201020183010201028502010002010281020181010281020105010102080182 +000201820102018b0102000100020001000100010e010100820100010201890001000100 +010001000182010201860102010001020101018300010001860100020001000102018402 +010201028102010101890201020102010200020084000201020104018102010001 +07018d00010001000201020102010201028102010101810201060186020001000100010d +018202010208028101020702840100020100830002000204028101028202010201028300 +0100010b018102010101010281000207028101020e028101020102810102050281010282 +020002020282010002020284000200010281020101018202000107018100010101810001 +010181000101018100018601000102010001010188020100020102010001020181000181 +010081000103018300010001020183000100018401020102008100028e02010201000200 +020102010001000102018300020002820201028502000200010285020100020002880201 +020001000100018601000100010001840100020002820201028102008400020001028302 +00010083000102010e018102018801000200010001000201020201830201020123010202 +8100020102810002030284000100010081000201028e0100010001000100010001000100 +010101020085010001000100810001030181000183010002018301020102810201890102 +01000201000200028902010002000200010001040183000100010f018100010401850001 +020102018501000201020101018302010201820102010301010281000201028100020202 +840100020001850102000100010a0101028b010200020102010002010001820102010201 + +090188020102000200010201010182020102870201020102010201010181000182010201 +01018100010b018200010201028301020102040281000282020102030202018102010101 +02028101020302810102020204018100010401810001030182020102040201010e028101 +028202010282020102820201020902810102010202018202010203020101810201090181 +02018201020102018402010201028102010d018102011f01840201020102820201028202 +010205028101028102010d01010282010201810102830201020181010281020101018202 +010281020104010102060181020102010102020181020081000101010102020181020104 +010100090181020102010102810102820201020102810102010282010201120102028101 +020702010101028101028102011601810001040186000200020102018801000100010001 +000108018102010a01010285010201000102870200010002000201010183020102010101 +830201020101010100050182020102010284000200020182010201040181020101018102 +00820002018d010200010002010201020102010281020101018102010601820001008100 +0105018102010001 +070186000100010001028a02010201020102010201028f02010201020102010002000200 +0200010d01820200020b0283010200020202840100020100010004028101028202010203 +02820001008100010d010402820002018401000200028202010203028101028202000213 +02810002010201008202000201028a000200020002000100010081000182010201020184 +00010001008a00020002000201020001008a000102010001000100010285020100010001 +020183000100010401810001040181000103018302000201030181000104018100028602 +0102010200018601020102010201850100020002010d0181020102010102020183020102 +010101010203018102010e0101028101028202010201028b010002010200020002000201 +0c0182020102810201830102010281020113010502820102018101028102018101028102 +0101018102010b0181000105018500010001000105018300010001030102020101010285 +010200020002010281000286020102010201028102010101810001090101028101020102 +810102820201028202000282020002820201028202010282020001090181020101018202 +0102810201040181020182010201020181000188010201020102010201030101028b0102 +000200020102010200028102010301 +070184020102010083000200028502010201020101018202010288020102010201020102 +850201000100010b011602020181020101018202000209020c0181000104010402010185 +0201020102010201830201020101018202010214028201020101018202010207020b0183 +0201020110018102010201850201020102011a0184020102010282020102840201020102 +81020101018302010201050181020102010102030101020301010203018102010c010202 +810102820201028602010200020102820201020102820100020102020181020102018400 +020001008100028402000102010301810201020182020102810201820102011a01010201 +010302820102010201810201010101021201810001050181000101018202010281020181 +010201028601000100010001820100010401810201810102820201020102810102820201 +020102810102820200020102810002830201000104010100010182020102820201028202 +01028202010284020102010201028400020002010b018302010201850100020002010101 +810201080181020108010100010186000201020102010001 +050187000100010001020184010002010287020102010201020182010201010187020100 +01000100010e010e02830102000202028201020101018300020002040281010205028300 +0100010d01030281010287020102010201020108018202010216028e0102000102010002 +0002000200020183010001008100010401850200010001008a0002000200020002000100 +880001000100010001008800020001000100010086000100010001008800010001000100 +010086000100010001008600010001000100860002000200010086000100020001008400 +020001008600020001000100860001000100010084000100010086000100020001008600 +010001000100840002000100860001000200020089000100020001000102010101810201 +020101000201020286010002010200010101810001080101028201020181010281020101 +018602010201020102010215010402060101028401020102011501830001000102018602 +01020102010201028101020102810102010281010201028101028a020001020100010001 +000183010201028202000201028101028202010201028101028202000282020102820201 +02820201008100018a010001000100010001000181010281020187010201020001020182 +01020107018102010901870201020102010201030101028a010201020002010201020106 +01 +090182020100870002010201020102880201020102010201028602010201020102830201 +00010d010302810102030281010282020002060288000100010001020002070281010201 +020c01810001030103028101028102010f01050201010202810102010283010201020502 +0101820201020102810102050211018102018101028102010d0103020901810201030181 +02010b018102018101020202820102018301020102010282010201820102010a01810201 +030181020102018102010201810201050181020102010102030181020103018102010a01 +810201010185020102000100830002010002008102018201020102018102018201020104 +0181020102018102010d018102010a01030226018100010101830001000103018a000100 +01020102000100028102010101010281010282020102010281010281020104018a000100 +010001000200020101010102820001008100028102010201010201018202010281020186 +010201000100011101860200010001000102018102010801810201820102010101810201 +010185000200020002810201820102010001 +04018100018a010001000102010200020101010102870102010201020102860201000100 +01008100010c018100018101020302810002020283000200020302810002020202018402 +0001000202028101020602820100010701810001020183000100028202010201028d0100 +020002000102000100010001010182020102030283010001008300010201810102030281 +010202028201020181010203028200010283020002008200020182010001040181020101 +018100010101850001000100018901000100010001020100880001000201020102008100 +0101018c000100010002010201000200010201830001000102018c000100020102010001 +000102018401000200010201830002000102018200010087000100010001000183010201 +008100018201020101018100010401810001030183020002010101830201000101018400 +010200018101020102850100020002010201880201000100020100018201020107018102 +010301810201010181020102010102020101021501030204018100010201830201020105 +018300010001030183000100010301810001060182020001010101020a01900001000100 +010002000100010002010001820102010301810201040182000100810001040182000100 +010084010001000107018200010001000101820002018201020111018102018101028502 +010201020104018102010101830200020109010002 +08018102008a000200020102010201020187010201020102010285020102010201840100 +0100010c0184020002010206028101020802010183020100018101020d02100182020102 +030201018302010201820102010701820201028202010281020106010902820102010101 +0b0201010302840102010201080183020102010201850201020102018501020102010282 +0201028102010c0181000104018100010601830201020101018102010401810001820102 +0101018100010c0185000102010201850100020102010101810001010182020102810201 +810102010201018102010201810201030181020107018102010201810201010101000101 +030002018102010501810201100101021301020201010202060101021901810001050181 +00010301810001860100010001000106018102010a018b00010001000100010201000182 +010201010185000102010001010181020103018102010501830001000104018102010701 +8102018201020182010001820100010701850201020102010101820201028f0201020102 +00020002000201020102010001 +050190000200020102010002000201020102010281020101018102010101870200010001 +0002010c0181000181010203028100028402000200020202810102030282010201850102 +010001020402810102050282010001070181000187010001000102010202029400020001 +0001000100010001000100010001020102820200028c0201000100010001000100010201 +02810102040281000203028400020002008800020002000200010204028b010201000100 +010001000100880001000100010002008a00010001000200020002008600010001000100 +880001000100010001008600010001000100860001000100010086000100010002008600 +010001000200860002000100020086000100010001008400010002008600010001000100 +860001000100010086000200010001008400010001008600010001000200860001000200 +010083000100010201810001010181000101018100010101810001820100010f01810201 +0e018202010202028201000106018800010001000100010206028d010001000100010001 +000100010081000101018300010001030181000103018100011201810201020186020001 +000100020102830001020185010001000201020181020107018200010081000106018500 +010001000109018200010001000101850001020102010101850201020102018401020102 +0103018202010283020102010f018100010901 +060183020002008400010201028602010201020102880201020102010201028102018101 +028402000200010b01820201020502850102010201020102810002040206010402810102 +050281000110010402810102830201020182010201090182020102030209018600010201 +020102010202018402010201020702830102010282020102010284010201020101010102 +0a0181000104018102010e01810201010183000100018601000100010001040183020102 +010201830200010285020102010201020183000100010101810201060183000100010201 +830002000101018602000100010201030101028201020182010001040101000901810001 +0701810001010101008201000109018102010d01010281010204020e0107020101810201 +0201020219018300010201010183000200018101008a0002010001000100010001140101 +00880100010001000100010a018100018401020100010101810201030184020001000182 +010201010183020102010401810201040184000201000104010102860102010201020102 +0101028101028d02010201020002010201020102010001 +05018a00020102010001000100018701020102010201028e020102010201020002000100 +0102010b01820001020102810002110202018400010001020b020a018900010001000100 +01000202028101028a020001020100010001000101018500010001000203028300010001 +010185000100010001010183000200020102850102000200020302010088020001000200 +020002010281010202020201810200010083020002008800010001000100010088000200 +010001000100880001000100010001008800010002000100010086000100010001008600 +010001000100860001000100020086000100010001008600010001000100860001000100 +020084000100010086000100010001008600010001000100860001000100010084000100 +010086000200020001008600010001000100810001040181000105018100010301010001 +018500010001000112018102010201030282010201810102020207018600010001000102 +060281010284020001000201028600010001000100910001000100010001000100010001 +000100010301810001120181000103010102060182000201030181020102018102010101 +830001020103018102010101850001000100010701840201000100860002000100010201 +0201010102020101028201020115018102010901850201020102010001 +04018a000102000200020102010283020102010101820201028102010101810201010187 +02010002000100010d010202830102010204028101028202010203020201810201010102 +02810102080283000100010e01840201020102010206018100010101810001040104020a +01840001000102030283010201020a028501020102010204028101020202810102820201 +02020204018602000100010201010101028401020102010a018500010001000186010001 +00010001010183000100010401820001008a000200020001000100010085000100010001 +060184000100010088000100010001000100890001000100010001000102018100028202 +01008600010001000100020008018100010b018202000101018102010201810201070181 +0201060102020201810201010103020b0106022c01820200018b01000201000100020001 +000186010201000100020102860001000201000104018200010081000107018102018201 +020182010201820102018501020100020182010201810102810201010181000281020106 +018102010501810201020181020184010001000102018202010285020102010201030184 +0201020102850201020102010601 +08018602010001000102870201020102010201010182020102880201020002000102010d +01810002840200020102040281010282020102070201018402000100020c020901070082 +020102030281000105018300010001030182000102020285010200010001030183000100 +010201820200020102020103028601020102000200010002028100020202810102020284 +000200020082000200820002018601000100010001860100010001000282020100830001 +000101018200010081000101018500010001000186010001000100018601000100010001 +860100010001000186010002000200018601000100010001850100010001008400010001 +008100010101820001008100010101820001008100010101820001008100010101820001 +008100010101010082010001010182000201020181020102018102010201810201020181 +020081000181010001000501010205018102018201020102018102010101010208010202 +0801840001000102020281000282020100850001000100028e0201000100010001000100 +010001009300010001000100010001000100010001020100011001810201020181020103 +01830201020182010201820102018b010201020001020001020001820100010401010281 +000201028101028202010282020102820201020202810002020281000105018302010201 +01018102010e010102820102010201010285010201020102890201020102010201020100 +01 +05018b000200020002010201020102880201020102010201028d02010201020102010002 +000100010c010802810102020281000282020102020201018102010101820201020b0201 +000f0182020102030207018a000100010001000100010204028300010001050185000100 +010002020281010283020001020702040103028101020202810102020282000200810002 +81020101018a000100010001000102010083000200011001810001020185000100010001 +86010001000100010301820001008a000201020001000100010085000100010001060184 +000100010094000100010001000102000100010002000100010201820100028202010086 +000102010001000100810100810001030101028100018101028102010101010202010102 +810100810002810201160101020801010207018102010201070201018402010001028102 +011c01810201020181020102018902010001000102010001020189000100010201020100 +028202000201028101028202000201028101020102810102820201028202010282020102 +810201820100018601000102010201010101020101820201028202000284020102010282 +020102810201820102010101810201010182020001840100010001020183020102011a01 + +06018a020100010001000102010281020181010284020102010289020102010200020002 +010e01830002000203028300020002030283010201028202000281020186010201000100 +020102810102020281010202020801820001000300010182000102820200020202020183 +0201020109018202010201028201020106018100010301020203010a0284010200020102 +010302820102018601000100020002010281010283020102018201020102018102010101 +810201070181000104018100011301810001150101008201000102018102010301810201 +09018100018101028402010001028102010101830001020101010102020101020e010100 +01018100010e018102010101810201020181020181010201020801020204010202010185 +000100020002030201008102018601000100010001010185000100010001010185000100 +010001860100010001000101018200010282020002010281010202028101020102810102 +010281010201028101020102810102010203018102010101820201020102810002010281 +010282020002820201028202010201028101020302010182020102810201840102010201 +830102010085000100020001010182020102830201020182010201010101028201020105 +01860201020102010281020101018a020102010201020102010287020102010201020100 +01 +05018400010001028302010201010101028a010201020102010201020182010201010183 +000200010e01020281010204028100020202810102820201020102020101020101010281 +010201028101020502010010010302810102810201070189000100010001000200020402 +8f0100010001000100010001000102010202028200010208028500010201020102010102 +81010281020101010102830100020081000101018a020100010002000100010085000100 +0200018201000108018100010e0181000109018100018201020101018100010401810001 +030181020103010102860100010201020182010002810201010185020002010201010181 +020101010102820100010101810201810100810001840100010001010183000100018401 +000102010201810201020102000201810201020181020101018102010801820200028302 +010201070102020201040203010302810102810201830102010202028201020112018100 +010401830201000103018100028102018101028202000201028100020102810102010281 +01020102810102820201020102820102018401000100010a018102018301020102100283 +010201028302010201810102810201010182020102810201060183000100018201000120 +01 +050186020102000200018501000201020182010201010181020101010102850100010200 +028102010d01870002000200020002020281000282020102070203018202010205028101 +020502070184000100010001008301000102020281000281020104018300010001060182 +02010203020f010302010109020201820002010201020281010281020182010200860002 +000100010281020104018102010201810201820102010501850001000100010201830001 +000101018200010081000105018100010201830001000104018100010201810201030181 +020101010100820200028202010282020102010281010201028101028202010202028201 +020101010102810102830201020101018200010282020100830002000181010285020100 +010201840102010201820102010101010084010001000102010102020101020201010202 +010102030102020a01020201010202010103028101020702030183020102011801820001 +028202000202028201020101018102010901820201028202010282020102040281010201 +028101028202010282020102040282010201820102010201020202018202010201020101 +010201018202010281020083000200028102010101060205018102010501860201020102 +0102810201040101028501020102010281020181010283020102010001 +0201810001850100010001028a0201000102010201020102880201020102010200028302 +01020083000100010d010202820100020a02810102820201028102010101010281010203 +028101020202810102020282010001070181000104018202010203020601810001040181 +000183010201020302810001010187000100010001000101018202010202028200010206 +028100028302010001060101028201020101018200020004008b02000100010001000100 +0100850001000100010501810201040181020104018100011d0182020102820201028202 +010283020102010301810201030101028101020102820102018101020102010181020181 +01020102010102008102008100010101830201000183010201008a000100010200010201 +020184010201000184010001000103018202010201020201010283010201020202810102 +020281010202020501020281010201020401010281010207028101020202010181020118 +018100028202010201028101020202810102010281010201028101020102810102010281 +010205028500020002010281020183010001020202010102020101030281010203028100 +028202010281020181010281020102018300010001090182020102020201010102840100 +010001820100010701850201020102010101810201020188020102010201020102810201 +0001 +84010001000181010084000200020089000200020102010201028c020102010201020102 +010002011001060283010201028202010205028101028302010001820102008100020202 +8101020102810102030208018b0001000100010001000201020302870002000100010001 +010181000182010001010182000102040201018100010701810001810102020283010201 +020102810102050282010201040181020184010201020101010100860100010002010281 +02010501810201020101020301820001008a000100010001000200020083000100010101 +820001008800010001000100010087000100010001000186010001000100018b01000200 +010002010002010086000200010201028102018301020002010202018400020102010101 +010202018302010201010101020301810201890100010002010002010202028101020202 +810002010282010002840200010002010281010281020105018102018401020100020102 +810102070282010201040101028101028102010401810201810102010283000201028402 +010002010101020282010001050181000112018600020002010001020187000100020002 +000281020181010286020102010201028202010201028501020102000202028b00010001 +000200010201000106018102010201830201020107018200010002000601010281010201 +02810102850201020102010501850201020102010301810201020183020102010b01 +03018a02010201020102000200028602010201020102850201020102018a010002000100 +01000100010d018402010201020f028201020101018102018101020c0283000100010601 +81000105010502120104020f010302010182020102030283010201028302010201040182 +020102810201010183020102008600010001000102810201010102020301810201850102 +010201028502010201020106018102012401810201010183020102010101010202018302 +010201010101020201810001810102850201020001020102010181000203020300820200 +028302000102830200010083000200018301000100810002010281010201028101028402 +00020102020281010281020102010102810102810201060101020a010102810102810201 +010182000102050281010202028401020102010101810201190187000100010201020181 +01028402010201028102010501850001000100018a010201000100010201000105018102 +010301810201090183020102000100820100010801810001040181000106010502820102 +018201020105018902010201020102010201030101028e01020102010201020102010201 +0201 +810001830100010003000101810201820102010101810201010181020185010201020102 +8702010201020100010c01860201020002010202028100028202010203028a0002010201 +0002000100020102810102080209018a000100010001000100010204028d000100010001 +000100010001000184010001000204029001000100010001000100010001000200020202 +840100010002820201020402830001000104018202010201020101920200020002000100 +01000100010001000100028f020001020100020002010200010001008800010001000200 +020088000100010001000100880001000100010001008600010001000100880001000100 +010001008600010001000100880002000100020002008500020002010286020001000201 +020102820100010401810001010184020102000201028201020082000100820002000200 +820201020102840100020002010281000282020100810001010182000201010181020101 +010102020101020201830200020181010201028100020202080181020181010281020105 +01020282010201060181020102018102011c010200010181000102018700010001000100 +0116018b000100010001000100010001190101008401000100010a010102870102010200 +010001820100010c018102011101 +050188020102000200010002880201020102010201028c02010201020002000100010001 +0f010d0281000205020201810201810102820201020a0283000100010601830001000101 +01820201020302120105020e010302030182020102040281010281020182010201040101 +028201020103018200010001008302010201050183020102010201840201020102830201 +02010201830201020101018102011d010302020101020701810201010108028101020102 +810102040281010201028b01020102000201020001000102018102010101010081010083 +000200028102018101008500020102000281020081000282020001840102010201820100 +010101010281000101018302010001030182000201040186020102010201028102018101 +02810201040101028101020102270181000113018100018e010001000100010001000100 +010001820100010d01810001070185000100010001080181000184010001000182010001 +060182020102010281010283020102010501810201810102850201020102010301820201 +028d0201020102010201020102010201 +81000189010001000100020102010a018202010283020102018701020102010200010a01 +820001028202010207028101020302810002020283000102000100810102030281010206 +020d01830001000181010202028100029002000100010001000100010001000100018201 +000203029000020001000100010001000100010001020202840002000102080284000200 +020105010102020101009102000200020002000200010001000102010088000100010002 +0001028302000200880002000100020002008a0002000100010001000100880001000100 +010001008600010001000100880001000100010002008600020001000200880002000200 +020001008600020002000200860002000200020086000200010002008600020002000100 +820001028102008600020002000200820001000100820100010201030087010002000200 +010081000104018100010701820200010101010082010002870201000100020001010108 +020101010283010001008300010002030286000100010001009d00010001000100010001 +000100010001000100010001000100010001000104018200010001000101810001020187 +0001000100010001160189000100020001000100010a018300010001820100010a018500 +01000100010b010102840102010001840100010001090183020102010c01850201020102 +01 +0501810201810100810001820100010701010203018700020002000100010e0102028300 +02000202028100020a02010181020101010d0284010001000104018b0001000100010001 +000200020302110184020102010201020d01010284010201020181010207020801820201 +020202020101020100810100830002010281020106018102018301020102010281010281 +020102018402010201028502010201020112018102010201010203010202830102010205 +020101050281010206028101028202010201028201020107018200010285020102000201 +050101008101008200020103010100810201820102010101010004018200010001008101 +008200010082000200820001008200020084000100020084000100010204028101020102 +81010281020107010202280181000113018100018c010001000100010001000100018201 +000184010001020108018500010001000105018500010001000101018100010501020082 +010001820100010901040282010201060101028401020102010401810201830102010285 +0201020102010501 +020185000100010001820100010c01010206018100018401000100010701820001020302 +8101020e02830002010001008102008300020002010281010205020d0181000102010602 +01018f00010001000100010001000100010002840201020002830201000101018e000100 +010001000100020001020102820201020902840002010201030104029b01000100010001 +000100010001000100010001000201020100020002020281000201028201020105018100 +01140182020102880201020001000201028202000206028d000200020001000102010200 +010086000100010002008600020002000100860001000100010081000101018200010084 +000100010082000100010081010084000100010002008701000100010001008100010101 +820001008100010701820200018201020083000100020102850001000200010101020201 +0104028101028602010001000100820001020202880001000102010001009b0001000100 +010001000100010001000100010001000100010001000104018400010001008300010001 +0201880001000100010200011601010006018100010701010082010001820100010a0182 +000102840200010201090103028301000100830001000101018100018101028702010201 +02010201010186020102010201028902000201020102010201 +0601830001000101018100010d01850001000100010e0182020102040281010202028101 +0207020201010202010502810102050284010001000104018a0001000100010001020102 +040210018202010203020201810001080101028701020102010200020402810102010284 +010201020103010102810102810201010182020100820002008500010201020101018102 +010101010281010208020100920100020001000100020100010001000100010086000100 +010001008800010001000100010083000102018501020002000282020002090289010200 +01000201020102030283010201028102010b018102010201810200820001008200010082 +000100830001000105010100040182000100010001028400010001008200010001008102 +008200010082000100820002008400010001008400010001028302010201810102020201 +0181020106010102820102013601810201170181000101018102018101028e0200020001 +000200010002000200018b01020001020100020001000186010200010200018201000183 +010001008100010301830001000181010286020102000102010601810201050181000182 +01000104018100010701810001 +020183000100010201810001150181000184010001000107018400010200020202810102 +0c028201020183010002000100070281010203020c018100010301060282010001900100 +01000100010001000100010002000203028201000101018b000100010001000100020002 +820201020602810002030281000106010202040190000100010001000100010001000100 +01008f000200010002000200010200020102011e01820201028302010201820102010401 +820201020902820001028202010282020102820201028202010201028101028302010201 +040181000185010001000201810102010201010102850102010001008200010083000200 +018101028402010001008100028102010101810001830100010083000100018201000181 +010001000101810200820002008200010082000200820001020402820102018101028102 +010401820001028202010284020100010282020001010182020001030181000105018300 +010001050181000103010100840100010001820100010101870200010201020102820201 +0283020100020102840001020102830200010201020101830201020081000104019e0200 +010001000100010001000200020001000200020001020001000200020001008602000200 +0200018601000100010001860100020002000281020002008f0100010001000201000200 +0200020001890100010001020001000182010002840200010001 +810001850100010001008100011201850001000100010e01820201028202010204028101 +028402000201020502030181020181010205028101020302010101000601890001000100 +010001000202028101028102010f01820201020202030181000108018202010203028100 +020902840102010201050101020201860001000100010081000106018302010201830102 +010282020102820201020102010087010001000100010088000100010001000100880001 +000100010001008800010001000200020088000200010001000200850002000200020502 +810102010286000100010001008600010001000100860001000200020085000100010001 +870100010201020100020081010006008101008600010002000100020084020002000281 +020001008102008100010101820001000200810100050084020002000104018102018101 +020702810102010285000100010001810102840200010001020181020184010001000184 +01000100010101850001000100010301850001000100010601010201010202010101020d +010102810102010281010201028101028202010201028101020102810102860200020100 +0102820201028202010289020102010001000100010b0187000201000200020109018502 +01020102012501 +070183000100011301850001000100010a01810002150201018200010001000102810002 +0902810001110182020102020283000100018f0100010001000100010001000100010204 +028100010401880001000100010001020202020102028100020402830100010281020103 +01030203018e0001000100010002000100020001008f0001020100020001000200010201 +02012a01010283010201020c028101028202010282020102820201028202010283020102 +010801850201020001020102810102010281010284020001020082000200820001008200 +010081000182010001850100010001008100020202820100010101820001000300810100 +030081020084000200020082000100840001020102810201810102810201010181020105 +010302810102840201020002840201020102830201020119018100028202000202028100 +02010281010201028500020002000201028a010201000100010001000184010001000104 +018100010101820201028102018101009b00020002000200010002000200010002000200 +010002010002000200010081020001008201000186010001000100018601000200010002 +8102000100820100018d0100010001000201000200010001840100010002820200018901 +000100020002010001 +81000186010001000100020202010102020b0183000100010f0184020102010202028100 +020202810002070206018202010203028101020602090182000100810001850100010201 +0204020f0182020102040286010201000100010701050283000201020602090103020201 +86000100020002008100028102018201020101018102018301020102020203018c000100 +010001000100010001008800010001000100010088000100010001000100880001000100 +020002008600020002000100860001000100010208020101860201000100010086000200 +020001008600010002000200860001000100010081000101018200020084000200010002 +008102000100810200860001000200010084000200020001000102010182000100010001 +018100010201820001008200010083000100021002810102810201810102020283010001 +008700010002000200020302870002000200010002960200010001000100010001000100 +010001000100010001090181000104018802010201020102010201028101020102810102 +820201020102810102010281010201028101028202010281020183010001008400020100 +010701010003010102810102820201028202010284020102010283020002010901830201 +02010101810001090182020102810201040183020102018b010201020102010201020102 + +050185000100010002020281010201020201810201810102810201030185000100010001 +0a0183000200028202010202028101020502810102030202018102010101030281010208 +028100010f010602030183020100010201810001010181020181010204020d0182020102 +0d0286010201020102010301020282010201020187000100010001000101018200010082 +000102860200010001000284020100020124010102010182020102840201020102820201 +020e02100181020102018102010201840200010201040101000401820001008200020082 +000200820002008100028502010200020082000200830001020082000100810001090184 +000200020082000200830002000209020101020203010102810102020202018102012301 +010281000201028101020202010189020100010002000100018801000100010001000201 +028101020102810102820201020102810102820201029502010201020002000100020001 +000200020001000200010001018600010001000100050081010087000100010001000189 +010002000200020002008300020001840100010001900100010001000201000100010200 +020001840100010001840100010001 +810001840100010001010102020101020201010102810102820201020102870002010002 +010201090183020102018101028202010212028601000100020002070281010202028100 +010701870001000100010001820100020402810001810100810001020189000102010001 +000100020302910102000102000100010001000100010001020202820001028202000202 +028101020102840100010201050101020301020084020002000286020001020102010101 +020281010284020100020101018c00010001000100010001000100880001000100010001 +008800010001000100010088000100010001000100860002000100010085000100010002 +0d0284000100010086000100020002008600020002000100860001000100010086000201 +020002008600020001000200820002000100810200860001000100010085000100010001 +860100010001020084000200020101018100010201810001010183000100018201000284 +020102010209028101020602840001000200830002000201028100020102870002000200 +010002960200010001000100010001000100010001000100010001040182020102020281 +010201028101020102810102820201020202810102010281010201020f01880001000100 +010201008c0002000100020002000100020001009c020002000102000200020002000200 +01000201000100010002000100018601000100020002840200010001850100010001028c +02010001000100010200020001820100020102840100010002840200020002 +050185000200010002020201010102010101028101028202010282020102020281000201 +028101028102010101830201020183010201020902810102070282010201030102028101 +0203028101020302820100011001050201018102010e0105020101810201090105028101 +020802090103028201020101018500020001000202028201020182010201010101028101 +0201020201810201240101020501010201018402010201020b0202018102010201010281 +010282020102820201028102010201010201018302010002820201028302000100010085 +010200020102810200820002008200010082000200810002820200020102010005018300 +010001010181000103018100010301020082020002120201010202030109028101020202 +040181020117018100010401840001020102810201810102010281010201028100020102 +810102010281010282020002010281010201028101028202010281020101018102010c01 +8100018201000102010102810102820201028202000283020102010a0101020101810001 +840102010001010102028101020102810102010281010202028101020102810102020281 +010282020102 +830001000182010001810102020201010202810102010281010281020183010201028202 +010284020102010205028101021a0284010001000283020100020602810102030209018a +000100010001000102010204028100018501000100020089000201000100010001020302 +840102010001830100010081000186010001000100020302840001020102020281000202 +028201000281020103010102810102810201010107008502000100010083000100020102 +950001000200020002010001000100010001000100010088000100010001000100880001 +0001000100010088000100010001000100860002000100020086000100010001020a0286 +000200020002008600010001000100860001000100010086000100010001008200020183 +010001008200010001008101000400810100820002000600810200840002000200820002 +008200020001008101008200010082000100820001008400010001000300840200020002 +0d0285010001000102020281000211028100028202010284020001000289020100010001 +000100010401820201020102810002020281010281020186010001000200010c01840201 +02010201028101028202000201028100028402010001008e000200010002000200010002 +00020001008402000200018c01000100010001000100010001880100010001000100018d +010001000100020100010001000183010001020502810002820200028202010282020102 +8202010282020002840200020002 +030185000100010001810102010201010202810102820201028202010203028101028602 +000201020102030281010203028101020202810102820201020a02820102010101810201 +010106028101020402820100010f010502070187020102010201020181010206020e0104 +020201050281010201020101810201040103028201020103018900020001020102010201 +010186020102010201028102018201020128018102010301010201018102018101020a02 +020102028101028202010282020102820201028202010281020106018302010002820201 +028602000100020002010281010201028201020109010100810201010101028201000283 +020102018201000103018300010001010181000101010102830102000210028101022202 +090181000101018202010201028101020102810102020281010282020102020281010201 +0281000201028101028602000102010001820100010c0101020401010201018202010285 +020001020102010283010201020102850002000200028302010001010181020104010102 +030101020601060281010202020201010203010602 +830001000102018300010001020101020101010281010204028201020181010202028901 +0201020102010201020102810102820201020d0281010201028301020102810200010081 +01020c020a01870001000100010001810102020281010286020002010001008a00010001 +000100010200028202010203028201000183010001008500010001000182010002010201 +018400010001020602840001000201040102020401070083020001008500010002000202 +0292010002000100020100010001000100010001008a0001000100010001000100880001 +000100010001008600010001000100880002000100020001008700010001000200020902 +860001000200010086000100020002008600020001000200860001000100020081000101 +018200010086000200020001000400810200820002000600810200830002010001008201 +000101010100820100018101008300010001810100830001000181010002008202000282 +0200020c0284010002000224028601000100010001040183000100018401000100010501 +870001000102010002020281010282020102010281010201028101028202010201028100 +02010281000295020100020100010001000200010001000100010002000100820100018c +010001000100010002000100018601000100010001890100010001000100020084000200 +010087000100010002010282020002820201020102810002010283010201028202010201 +028300010002 +8700010001000100010a01010201010102810102820200028402010200020d028101020d +028101020102810002010205010902810102020284010001000182010001050187000100 +020002010201028201020101018902010201020102010201010101020101040282010201 +090182020102040281010209020201810201050101020501010084010001020101018102 +010401860201020102010283020102012a01020281010281020101010c02010182020102 +020211018102010101810001820102010201010081010081000102018202000282020102 +850200020102008200010083000201020102820100028302010200820001008200010084 +000100010001008301000100810002110284010201020181010224020701810001020101 +0282000102010281010201028101020102840102010201010183000100018e0100010001 +000100010001020002018101020102810102810201010181020087000201020001000282 +020102820201028202000282020002820200028202010283020002000200830102010001 +008401000100018b01000100010001020001000185010001000102010281000204020101 +0102850102010001020102810102840200020102 +060183000100010d01820201028402010201028202010201028101020102850102010201 +0216028201020181010001000302810002040281010201020a0188000100010001000102 +82020102030283000100018101008c000200020002000100010200020402820100018101 +008900010001000100010002820201028502010201000201028100020302010002018102 +010101010284010201020185010001000200030081020087000200010002000295020102 +010002000200020100010001000100010001008800010001000100010088000100010001 +0001008800010001000100010088000100010001000200850001000100020b0286000100 +020001008600020001000200860002000100020086000100010001008600010201000200 +860002000200010004008101008200010001008101000200850100010001000100820200 +028702000102010001008100018701000100010001000100810100010081020082000200 +810002080282010201810102830200010224028500010001000105018100028302010002 +820201020202810102010282000102820201020102810102010281010282020102020282 +0102010101810201810100810001060186020100010001028b0200020001000200020001 +028202010285020002000102820201028102008300020001820102010201810201810102 +020201018500010201000102010602810102010281010201028500020102010282020002 +82020102810201 +870001000100010001110184000100010081000181010201028501020102010204028101 +0201028301020102040281010207020401820201020d028500010001000106018a000100 +010001020102010283020102010101810201030183020102018501020102010202020f01 +050281010206028101028102010201810201020101028401020102018201000181010001 +008101020102820102010301010201010202290181020104018202010201028201020181 +01020b020301010204010102820102018101020102050181020185010200020102010281 +010283020102008200010082000200820002008200020082000100880002000200020100 +02850201000100010701810001030101008201000102010402820002018101020b028101 +02170202010a020f01810001030181000103018402010201020102810102010281010201 +02810102010281010282020102010281010201028101028402000200018d010002000200 +010001000100010005000101860001000100010001008101008400010001000100820100 +018601000100020002860200020001000186010001000100020502810102830201000282 +0200028402010200020102840102010200 +040183000100012201010281010284020102010205028100020102810102820201020302 +84000100010207028101020502060181000101018a000100010001000102010202029401 +0200020102010200020001000100010001020102020284010201000101018b0001000100 +010001000200020202010101028101020502820100010101810201010182020102830201 +020185010001000100010081010088000100010201000102010288010201000100020001 +8201000110018100010d01820001008500010001000282020100850001000100020a0201 +008501000100020086000200010001008600020001000100860001000100010081000101 +018200010086000100010001008200010004008302000200040083010002008200020082 +000102810200810002810201010181000101018400010001000100820100018101008200 +01008500010001020101010b0282000102090281010203028b0002000102010002000200 +020802850001000100018201000102018100028202010201028101020102810102010284 +010001020182010001020189000100010001000100010401820201028202010281020104 +010102810102820201028202010282020102820201028202000282020102820201028202 +010288020102010002010001820102010201810201080181020182010001020182020102 +080281010284020102010282020102820201020202 +01018300010001120181000103018100010b018102010101090284000200010206020201 +81020101010d02860100010001000104018900010001000100010002820201028102018d +010201000200020102010201020103010302810102810201010181000108010402830100 +010208028201020108010102040182000200820001020102820102010401010281010281 +020181010281020103018800010001000100010087000100010001000189010001000100 +0100010085000100010001840102010201030181000281020103010b0202018602010201 +020102820201028202010282020102830201020106018302000102010281010201028501 +02000201020102050181000103018300010001820100010101810002820201028102010d +01810001810100820001008500010001000101010b020101120281010202020301060201 +018102010a01010281010201028101020202810102010285010201020102010281010201 +028101020102810102010281010282020102810201020185000100010001830100010001 +0087010001000100010003008102000100820200028a0200020001000200020002830200 +020001008201000186010001000200028602000200020001860100010001000282020002 +8202010201028100020c028300020102 +020185000100010001260103028101028202010206028100020102810102870201000100 +010002040281010206020801810001860100010001000183010201020202830002000182 +01020102018a020002000200010001000203029201000200010001000100010001000100 +020002010283000100020302810002820201028202000101018102010101820201020202 +010186000100020002008f00010001000100010201020100010002850201000100018201 +0001230181020102018202010201028201020101010b0286000100010002008600010001 +000100860001000200010086000100010001008100028402010002008600020002000200 +820001000100810100860001000200010004008102008200020084000102010081000107 +01810001010183000100010501010206010c028101021502820001028302000102030285 +010001000100830001000182010001020184000100010083000100010401830001000182 +010002820201020102810002010281000201028101020102810102820201020102820102 +010601810002820201020102810102820201028302010001820100010c01850001000102 +010801010284010201020085000100010001810102020283000201020102830102010201 +0282010201830102010282020102810201 +01018100011d018100010701810001020107028101028402000200020202810002830201 +02010201820201020c028101008300010001050181000182010001860100020002010283 +02010201010185000200020001060182020102030201018102010b01820201020e028201 +020182010201020187020102010201020101018100018601000102010201030181020181 +010281020181010282020102810201030186000100010001008a00010001000100010001 +008800010001000100010088000100010001000100880001000200020001008500010001 +00020b020201820201028202010282020102820201028102011d01020281010201028101 +020102810102010282010200010084020002010201020d01810001010101008101008100 +0101018100018101020b0201011202820102018201020183010201020302110182020102 +010281010201028101020102810102820201028102018201000111018102018101028202 +0001910100010001000100020002000100020002000100820200028e0200020001000200 +010001000200028802000200010001000186010001000200028602000100010201040181 +000282020002020281010282020102820201028202000282020002810201830102010200 +02 +0201850001000100011a0181000108010802810002040285000200020102850201020100 +01820100020d020a01830001000182010001850102010201028302010201010181020186 +010201020102010301820201020202820102010b01810201010103028101020902820102 +010401820201020102030182000100010082020002020282010201010184020102010202 +0284010201020124018302010201030102020201820201020a0201008501000200010086 +000200020002008600020002000100860001000100010086000200010002008600020001 +0002008200020001008101008a0001000100010001000100020082010001020183020100 +028102010601810001840100010001050107028101020a02810002180281000206028c01 +000100010001000100010001020182000102010281000202028100020102810002820200 +020202810102010281000201028100028202010201028100020102010181020109010100 +8e0100010001000100010001000100018e01000100010002000200010002000286020002 +000100018801000100010001000286020002000100018401000100018101020102830102 +0102820201028202000282020002820201020102830002010282020102 +010181000102018100012201810001810102010281000205028500020002000202028100 +0201028401000100020f0201018100010401810001060184020102010203028100018e01 +00010001000100010001000100020402820100018f010001000100010001000100010201 +0287020002000200010282020002040282010001010181020103018a0201020102010002 +000200940002000200020002000100010002000200020001008100010101880001000100 +010001008a00010001000100010001008800010001000100010088000100010001000200 +8800010002000200020086000100020001020b0202010202130184020102010201028101 +020102810102010281010201028101020102810102010281010283020001020102820102 +00010082020001110181000101010100820100020d028101020202010121022401820001 +02820201020102810102010281010201028101028202010201028100028a020100010001 +0001000102820201028202010282020102820200028202000283020102010f0181020108 +018302010201820102010501020281010284020102010201028301020102010281010285 +020002010200810002 +860100010001000118018100010101810001040182000201010182020102020281010201 +028100020102010001028101028302010201820100018101020e028100010f0182020102 +0302820102010f01820201020102820102010c0182020102840201020102060281010201 +028201020101018102018301020102880201020102010001000100820100010201810201 +02010102020187020102010201020129018202010281020105010d020101820201020202 +810102820201028202010282020102810201070183000100010c01010281010201028101 +020102810102810200820002008200010285020002010002810201020181000102018300 +010001010182000100820001023602010181020108018100010401020281000201028101 +020102810102010281010202028101008700010001000100018601000100010001820100 +010c0101008e0100020001000200020001000200028c0200020001000200020001020001 +008601000200010001940100010001000100010200010001000201000100018101020202 +8401020002008100028302010200840001020102810200820001000200 +040101000301010213018100010401830001000101010102810102820200020402830002 +000207020101010283000100020402810102050202018100010401810001010181000102 +010102810102820201020102810001850100010001008100018401000100010101010281 +00020102850001000100018b010001000100010001020102860200020002000208028201 +0001010181020184010201020187010201020100020002008a0200020002000200010002 +010282000102810200840002000201890100010001000100010088000100010001000100 +8a0001000100010001000100880001000100010002008600010002000100870002000200 +0100020b0286000100010001008600020002000100860001000200020086000100010001 +008300020102010201008502000100020086000200010001008500010001000101018100 +010101810001010101008301020102020204018200010001000201810001030183000200 +021302810102220288010001000100010001040182000102820200020202810102010281 +010201020101010281000201028101020102810102010281010282020102010281010201 +0281000289020100010001000100010a0101008401000100010201810201830102010282 +0201028202010281020182010201080102020a0102028201020009000102810100010081 +02000200 +840100010001260182000102020281010206028101028102008300020002020202018402 +010001020d0281000111010202810102810201130103020d018202010283020102018101 +020102810102050284010201020102018202010286020102010201008600020002010002 +850201020102010201840201020102010229018402010201028202010282020102840201 +020102050281000204028101028202010281020114010102810002010281010282020102 +010281010201028101020102810102010281010201028101020102820002000100010281 +000182010001040184000100010082000100010083010001000100830100010211028101 +020f02810102020281010281020103010602010181020104018100010601810001030181 +000102018100010301020281000201028100020102810102010281010201028100028202 +010201020701820002008b00020002000100020100020001008c02000200010002000100 +010001810100010086010001000100018601000100010001860100010001000184010001 +00018101028102008100028102001400 +030183000100011801850001000100018401000100010101050281010203028300020002 +82020002040205010a028101020202100181020181010204020301830001000102018100 +018201000103018b02010001020102010001000104018402010201020202820001028202 +010203028200020182010001040182020102830201020183010001000100880200010001 +000100010101870002000100020102850200020002018701000100010001008a00010001 +000100010001008800010001000100010088000100010001000100880001000100010001 +008700010001000100020a02010085020001000200860002000200010086000100020002 +008600010001000100810001010182000100860001000100010088000100010002000100 +830001000286020102000200020202820100028702010200020102010201820001000100 +840100010001090102020101830201020101010102010101028300020002050281000203 +020601880001000100010001020802850001000100010401820001028202000201028100 +020102810102020284010002000116010100070182000100830002000289020002000100 +020002000100850201020001028202000284020002000101018300010001860100010001 +000188010001000100010001820100018801000100010200010005008102000d00 +8101008100011e0185000100010001860100010001000205028101020102840002000200 +8100028202000281020181010281020182010002020281010208028401000100010c0181 +0201810102040213018102010f0182020102820201020102850102010201020502840102 +010201040103020201010081020083000100018401020102018301000102850201020102 +018101028302010201240184020102010282020102830201020104010802820102010801 +020281010282020102830201020106018302010002820201020102810102010281010201 +020f01820001000200830100010201028201020101018200010082000100820001008400 +010001000100820100010101020202010202070101028101020802810102020281010202 +028101028102010401090205018100010501030281010201028101020102850102010201 +020102810102010281010201028101020102810102820201020102810102880201020001 +000100018101008100018201000106018500010001000182010001010181000106018100 +011a01020281010005008102000d00 +010185000100010001180181000109010702810102080281000202020401820201020d02 +14010502160183020102010a018202010203020101820201020702020181020102018102 +018101020102020181020001008202000287020100010001020183010200020302820100 +01030186000100010001008a000100010001000100010088000100010001000100880001 +00010001000100880001000100020002008700020002000100020b028600020001000200 +860001000100010086000100010001008600010001000100860001000200010088000100 +020001000200860002000200020083000100028a02010200020100020001020102840102 +010001050101008301000100830001000109010202010182020102810201050183000200 +020202810002080281010202028101020102850100010001020802850001000100010401 +840001020100030008018400020100010301820201028202010201028101020102810102 +820201020102810102810201040101008601000102000100940002010002000200010002 +000200010002000200018801000100010001000188010001000100010001820100018101 +008100018201000184010001000202028100028602000102000200820001028202000281 +02000500 +820100011f01870001000100010001830100010202028300020102010286010200020002 +008200010201028200020102010102810102050281010204028101008100010e01820201 +020402220181020102010102020184020102010202028101028102010701010283010201 +028102010101010081010082000100810001030181000189010001020102000200028102 +0135010f0281010282020102820201028202010282020102010282010201150186020102 +010201020102820100028202010283020001020102020082020002010281010281020101 +010100830100010084000100010001008101008300010001010104028401020102010801 +030281000201028201020112010402810102010206018100010301820201020102810102 +0202810102010285010201020102010281010281020112010100820100018a0100010001 +000100010201830102010282020102820201020102830102010281020181010281020120 +01020281010201028101028602010200020002840201020002820201000100 +010185000100010001230101028100020302810102080281010202020301810201010182 +0201020b0212010602230181020104018102010401010281010282020102830201000104 +0182020102010282010201830100020001008c0100010001020100010201000189010001 +000100010002018701000100010001008a00010001000100010001008a00010001000100 +010001008800010001000100010088000100010002000200880002000200010001020502 +810002010201008501000100010086000100010001008600020001000200860001000100 +010082000102830200010088000100020001000200860001000100010083000100010201 +820001008300010001020181000184010001020104018200010006008101008100010401 +040203018102010401840002000102060282010002020281010202028101020102870100 +0100010001028c0200010001000100010001000109010102810002010281010201028101 +028302010002010281010201028100020102810002010281000282020002010281010201 +0281010281020104018e00010002000200010001000100010001008c0100010001000100 +010001000186010001000100010201870001000100010001840100010001840100010001 +850100010001020202810102010281010282020102820201028202000201028101000200 + +820100010201810001190181000186010001000100018201000206028101020402820002 +00810002030203018102018101020d021101820201020402280183020102010901020209 +010302030101008101008300010002840200010201020187020002010201020101018100 +012401820201028202010284020102010282020102820201020e02810102820201028202 +0102820201028102010c0185020100020102010281010201028101020102810102820201 +020102850102000201020102810102010281010001008202010281020101018102010101 +010082010001090183000100011101810201010102028101020702810102020281010203 +02820102018101020202130101020d018202010001000801820201020102810102010281 +01028202010201028b000100010001000100010002810201020101028100028202010283 +020102018101028102012001840001000102030283010201020102830102010201028101 +0282020102810200810002 +85000100010001270109028100020a020501050281010202028101020202110182020102 +040203018100011e01810201010102020b01010207018102018101020202040101008501 +000201020103018a0201020102010201020102810201020181000131010b020100850200 +020001008600010002000200860002000100020086000100010002008100010101840001 +000100860001000100010086000200010002008600020002010002830201000281020085 +000200010002830200010281020101018400010001000600810100010082010001020183 +02010201050181020102018502010001000204028500010201000105010c028d00010001 +000100010001000100010501020281000202028101020102810102820201020202810102 +01028100020102830002000186010001000100010e018800010001000100010001008c01 +000200010001000100010001840100010001080185000100010001860100010001000184 +010001000104010402810002820201028202010201028100028202010202020200 +04018100010a018100010d01810001880100010001000100020202810002010281010205 +02010002028101028202000183010200018101020e0203018100010b018202010204020b +0181000105018100010e0184020102010201020201010205018102010801840201020102 +810201020101008201000183010201028102010201810201810102810201010182020102 +8102010401820001008a0001000100010001000100880001000100010001008a00010001 +00010001000100880002000100020002008700020002000100020b021901870201020100 +0201020102810102010281010283020102010e0185000100010001060181020102018200 +01008100010701810201060101020601010206010602810102020281010203028101020b +021301020281010201028101020102810102010201010102810002010281010201028101 +020102810102040281010201028101028e02010201000100010001000100010081000183 +010001000100860100010001000111018300010001860100010001000183010001000100 +8101000200810102820201020402810102820201020102830102000285020002000100 +820001008100010601810001050101008201000113010302810102080281010201028100 +02870201020100010201010101028101020a02120182020102010203018b000100010001 +000100010001160184020102010203028101028102010f01820201028302010201040102 +000201880001000100010001008b00010002000200010001000123018202010282020102 +840201020102820201028402010201020a02860002000200010086000100020001008600 +020001000200860001000100010081000201028400020001008600020002000200860002 +000100020081000201028201000282020100830002010001008201000282020002810201 +02018200010008008101000100820100010d018102010101840201000102040202000202 +81000202028101020d028400010001008100018601000100010001070185000100010001 +060181020101018400020102010101020201010402810002010281010282020102810201 +050185000100010001860100010001000130010102010101028101020102830102010201 +02830102000283020102000000 +82000100830001000105018200010083000100010d018300010001880100010001000200 +020302810102020281010205028600020001000200810001010102028101020402810102 +0202820100010101810001210189000100010001000100010d0101028101020402090181 +020106018202010201020401010082010001840102010201060181020102018502010201 +02010101820001008c00010001000100010001000100880001000100010001008a000100 +0100010001000100880001000100010001008700010001000100020d0283010201028102 +010601810201020181020103018102010101810001090182020102010281010282020102 +020281010282020102010283000100028202010201028101020102030181000182010001 +070181020106010102070181020181010281020181010207028201020107010e02110101 +02810102010281010202028101020102010101028201020101010102020102020b018300 +010001010185000100010001010183000100010201010084010001000113018300010001 +860100010001000183010001000100810100820001008200010201028101028202010201 +028301020002820200028202010283020102000000 +020004018200010081000105018500010001000107018100010801030281010207028500 +020002000202020301840002010002080281010203020b018100010d0188000100010001 +0001008100018401000100011301820201020202180102020b0186000100010001008d00 +010001000100010001000100012301820201028402010201028202010282020102820201 +020b02010085010001000100860001000100010086000100010001008900010001000100 +010002850200020001008600020002000100890001000100010001000181010081000101 +010200810100030001018100010401820001008200010002008101008200010001008201 +000103010102070181020181010284020100010205020100010281010202028101020f02 +060183000100010701820201020102810102010281010201028501020102010201028101 +020102810102010281010201028101028202010201028201020181010283020100018301 +0001000200820100018601000100010001110101001c0102028101028202010201028101 +028202010201028301020002810200810002 +81010002008201000103018700010001000100010f018300010001850100020001020b02 +8a0002000200020002000200840001000201820100020602810102030286010001000100 +0181010081000104018100011a018400010001008100010e0101021c0181020101018300 +01000101018100011601820001008a00010001000100010001008a000100010001000100 +0100880001000100010001008a00020002000200010002008700020002000100020c0281 +010283020102010301820201020102810102010284010201020101018202010282020002 +010281010201028101028202010201028101020102810102010281010201028101020102 +810102010281010201028201000201020301010081010082000100830001000182010001 +080181020105010102010181020102010a028301020002820201020f0211018102010e01 +810201080102020301810201060181000101018100010101810001050181000103018400 +010001008300010001100181000188010001000100010001860100010001000183010001 +0082000102010281010283020100020102810102820201020102820001028102000100 +010181000101010100840100010001030185000100010001090181000182010001020181 +000208028200010201028101020602010181020102018100020e02010183000100010301 +810001840100010001070181000186010001000100018101008500010001000118018102 +012501810001030182000100810001010185000100010001010181000136010c02860001 +000100020086000100010002008600010001000100890001000100010001000185010001 +0001008100010101820001008c0002000200020002000201000282020102010282010200 +030082020102010203010100820100010201820001008100018301000100810001030181 +0201040102020101010283000100020602830001020107010e0211018202010202028101 +020102810102010285010201020102010281010201028101020402820102010201810201 +0401830001000101010200010101008101000200020101000f0181000104018100018601 +000100010001860100010001000184010001000183010001020402810102820201028202 +0002840200020002820201028102000000 +830100010081000104010100810100810001160181000101010d02910002000200020001 +000100010001000100020d0281000104018200010081000103018100011c018300010001 +350181000116018100018101008c000100010001000100010001008a0001000100010001 +000100880001000100010001008800020002000200010089000100010002000200020c02 +8101028102010501810201020101020a0101028101020102810102830201000283020102 +010501810001010181000103018100018201000181010081000182010001060182000100 +82000100820001008200010083000100010401010205018502010201020102010a028101 +020202810102100217010202810102010281010281020181010201028101020102810102 +0502810102830201020101018102018101000100820100010b0181000101010100020181 +00012a010102810102080201010302820001028102000000 +040185000100010001050182000100810001110181000182010002030281010282020002 +0902810102810201020102008101020d02010182000100010002018100010c0181000101 +01820001008300010001430181000142018202010284020102010282020102820201020b +028101028302010201010184020102010282020102820201020102820102010101880201 +020001000201020102810102010281010201028101020102810102820201028302000102 +0202810002830200010201028101020102030101008101008100010a0181000103018102 +010501820201020102040103028100028202000282020102020281010210021101820201 +0201020b0181020109010302080181000183010001008200010085000100010001850100 +010001000100010181000117018700010001000100018601000100010001840100010001 +84010001000282020002040281000284020102000282020102820200020102 +810100830001000101018600010001000100810001100183000100018101008100018301 +02010203028101028202010201028e000201000200020002000100010001810100810002 +010281010206028101028202000103010100810100810001030181000172010100890100 +01000100010001008a00010001000100010001008a000100010001000100010088000200 +02000200010089000100010001000100020a020100850100010001008600010001000100 +860001000100010089000100010001000100010201820001008600010001000100840001 +000200030081010001008201000284020100020003008101020102810002810201020181 +000183010001008200010082000100820001008100010401810201030101020101010285 +010001000102080209010d02120102028101020202810102010281010282020102020281 +010201028101020602830102010201028301020100020008018100010301810001810100 +020009018100012301010281010282020102060281010203020100810100 +020182000102820200010501820001008100011501820001020102810102020281000204 +028101020102810102810201820102018101008100020202820001020402810002020203 +01010005010100820100010a0189000100010001000100014c0183020102013001840201 +02010282020102840201020102820201020e028101028302010201030182020102820201 +028202010281020104018402010200020102810102010281010282020102810201020101 +001b0101008101008100011701810201010181020104010b028301000102840200010002 +0a02820102011b0182020102010201010102810102010281010201028101020102820102 +01010102020101820001000a000101810001810100010082010001190187000100010001 +000186010001000100018201000186010001000100020102830102010201028100028202 +0102820201028202000201020100 +830001000103018400010001008100011701810001830102010203028101020502810002 +8c0200020001000200010001000181010081000201028101020702010183000100010201 +8500010001000169018102013601840201020102820201020c0201008501000200020086 +0001000100010086000100020002008f0002000100010001000102000200020088000200 +020002000200840002000100020081020082000100820002000600810102010281010281 +02018301000100050081010082000100820001008100010a018202010201020101850001 +0001000201028100020302010181000105010d0210018202010201028101020102810102 +810201050181020109018302010201080182000100820001008100010301010081010081 +000102010200820100010501820001008100010901830001000110018102010301010281 +0102820201028202010201028301020102010201008102000000 +85010001000100810001020184000100010083000100010f018300010001010185020102 +000102820201028202000202028101020602010182000100010081010201028300020002 +030201000102830100010082000100810001110181000181010083000100014f01810201 +0501810201040181020102018a00010002000100010001008a0001000100010001000100 +8a00010001000100010001008800010002000200010089000100010001000100020a0209 +018102011301810001090181020181010281020002008202010282020102010281010202 +028101020102810102010281010281020101018100018201000117018102018201020106 +010802060181000101010c020f0182020102010281010202028101020102810102010201 +010102810102010281010281020181010203020101010201018102010101030081010005 +008101008100018101000300010181000116018700010001000100018401000100018b01 +00020002010001000100020102810102070281010282020102820200028102000000 +020001010700110181000101018100010401060281000205028300020002860200020001 +0001040101000d0283010201020502830002000109018100015e01840201020102850201 +020102018201020102018102011d01010281010282020102840201020102820201020c02 +010085010002000200860001000100020086000100020002008f00020001000100020001 +020002000200880002000200020002008200010001008101008200010082000100090008 +018200010005008101008200010082000100810001090104020701070284010001000105 +010d02210184020102010201028101020102020104028201020104018200010082000100 +820001008100010301010081010081000101018300010001050183000100010b01820001 +008300010001820100010401840001000201010183000100020202810102820200020402 +81010201028401020002000000 +8101000600810100820001008100010301810001010101000b0184000100020083000200 +0282020002020281000201028d00020002000200020100010001000100820201020c0287 +0002000200020002020204018300010001070182000100830001000155018b0201020102 +010201020102018a01020002000200010001008a00010001000100010001008a00010001 +000100010001008a000100010001000100010089000100010001000100020c0281010281 +020104018202010282020102010281010282020102810201020101028401000201020102 +810102010281010201028101028202000283020001028402000100028202010201028101 +020102810002020282010201020101008101008200010082000100820001008100010c01 +010281010281020101018300010001810102060207018100018101020c02100103028101 +020102810102010281010201020201810201090102020801050001018100018101000400 +01018400010001008100018201000114018100010a018102010201830201020103010202 +810102820201020402810102020281000282020100 +020081010002008101000500020181000109010100010102000101830001000203028100 +020e02810001010181020181010001000302810002090281010206028100010801850001 +000100015b0101028a01020102010201020102018401020102011f010102810102860201 +0201020102010283010201020a0201008501000100010086000100010001008800010001 +000100010087000100010001000185010001000100880001000100010001008200020004 +000102820102000200810200030081010201028101028102010101810001810100810001 +01018300010001030101000a018202010281020106010902820001008700010001000100 +020d020f0102028101020202810102010281010201028501020102010201028101028302 +010201830102010281020182010201040181020101010200810100830001000183010001 +00820001008100018301000100810001050101000d018300010001810100810001030101 +02090115020100 +810100050081010082000100820001008100010a01810001080182000102020281010204 +02820001028d020002000200020002000100010081000181010281020083000200028102 +008300020002010282010002030281000202020401810001070183000100018401000100 +0154018d020102010201020102010201020101018702000200010001008a000100010001 +00010001008a00010001000100010001008a000100010001000100010088000100010002 +0001020d0281010281020104018202010282020102820201020102810102810201020101 +028101028202010201028101020102810102830201020102018200010083000100010601 +010081010081000108010100810100820001008400010001008200010001000a01820201 +028102010401810001810102070208018100020d02810100010082010001020181000101 +01810001820100010f018102018601020102010201020181020108010700820100010101 +010081010001008301000100830001000117018100010401840201020102010201018202 +01020102830102010203028101020a0281010203020000 +820001000200810100050082010001030101000901810001810100010081010282020102 +03028101020f02010001010200100281010207020a018300010001040181000157018402 +0102010283020102010401830201020122018302010201010183020102018101020b0287 +010001000100010086000100020002008800020001000200020088000100010002000200 +840001000200880002000100020001008200020003000202820100028302000200010084 +020002010201028101028102010101850001000100010301810001100103020101830201 +020102010902820100018701000100010001020c020b0181000101010202810002010285 +010200020102010281010282020102010202018102010301810201090184000100010082 +000100820001000100020184000100010001008201000182010001030185000100010001 +0b0181000102010102870102010201020102010281010209028101020202810002010281 +01028202010282020002810200 +830001000185010001000100050006018100018101000100810100850001000100010201 +8300020102840200020002030281000207028200010281020103011b0215018100015301 +8d020102010201020102010201020183010200028402010001008c000100010001000100 +010001008a0001000100010001000100880001000100010001008b000100010001000100 +0100020a0284010201020102018102012801010282000200810002010281010201020200 +810200810002820201020102050181000181010082000100820001008200010001000801 +820201020202810102830201020101018100020602840102010001040101000d02010085 +010001000100880001000100010001008b00010002000200020002010201028101028102 +018101020102810002830201020101018102010201810001820100018501000100010082 +000100830001000101010600840100010001030181000106018100010701830001000101 +01810002170281010207028101028202000202020000 +010101008301000100810001810100020001010100840100010001080184000100010081 +000101010202810102050281010209028201020082000201810102050281010209028101 +020602050185000100010001820100010101020082010001540181020181010285020100 +010201830100020182010201820102012101010282010201830102010281020181010202 +020101070286000100020001008600010002000200880002000100020002008800010001 +0002000200820001028a0201020002010002000102010201008201000101018100010201 +850001000100010b0184000100010081000112010102010102028101020e028701020100 +01000100010001010d02230181020104018102010d010100810100820001000200810100 +8300010001020182000100830001000182010001030183000100010b0181020184010002 +000212028100020502810102810200810002820201028602010200020002 +810001040105008101008100010201810001030182000100030001018100018501020002 +0102850200020001020f02030181020101010502810102080281010207020e018100013f +018100011301830001000189010002010201020102018101000100810201850100010001 +00020089010001000100010001008a00010001000100010001008a000100010001000100 +010088000100010002000100810002840201020102070282010201030181020183010201 +028202010282020102820201020102030182020102010284010002000283020001020102 +810100820001000100850100020001020102830100020002008102008400020001020102 +050101008101008200010082000100820001000100080182020102130205018100018101 +00820001020c02010085010001000100880001000100010001008a000100020001000200 +010201028101020102010101028501000200010081000101018102010201840001000100 +830001000183010001000100820100010101050084010001000103018100010501010003 +018500010001000182010001010118028101020102810002830200010203020100820100 +020002 +810100010083010001008200010007008101008100010901820001008100010101010287 +010200020102010204028101020702050182020102040281010211020301810201840100 +010001840100010001010184000100010001002401830001000102010100030183000100 +010101830001000102010100020183000100010101010008018202010082000200020082 +0102010701820001008100011b0181020181010283020102018401020102010101840201 +000102030282010201810102010282010201160181000111018100018301020002010281 +010201028501020002010201028101020102030101000101010002018100018401000100 +010b011402070181000101010d020f018202010202028101020102810102010281010201 +020101010281010201028101020102810102020204018602010001000100810001820100 +010101010081010083000100010201830001000103018100010101810001050184000100 +020184010001000182010002150281000201028101028502010002000201028101028102 +0002000002 +8300010001020107000a018200010081000182010001050181000203028101020e028101 +0281020103018202010204028101020b0281010202020401810201090181000124018100 +018501000100010081000121010100810100010081010002008201000186010201020002 +008200010082000100820001008100012001820201020102830102010201028501020102 +010207028600010001000100860001000200020088000100010001000100870002000100 +020002870200020002000200860001000200010082000100030082020001030182000100 +020081010082000100810001070101000101830001000182010001010183000100010801 +1202840002010001810100840001000100820001020c0282000100860001000100010088 +000100010001000100870001000100010001080181020103018202000201028101028202 +010282020002010202008601000201000100820001008200020084000100010082000100 +820002008100010201820002010101820001008100010401020081020102011602010105 +028101028202010201028101028202010282020002 +83010001008200010002008101000200820100018401000100010f018202010205028101 +0203028101020802060106028101020f0201018102010301810001020181000184010001 +000101018200010081000127018400010001008400010001008200010082000100820001 +008400010001000100810100820001000100080102000101010001018502010201020181 +0100010083010001008200010001008701000100010001008a0001000100010001000100 +8a0001000100010001000100880001000100010001008700010001000200020602820102 +010101830201020101018302010201010101020301010202018502010200010201028101 +028202010201028101020102810102010281010201028100020102810102010286010002 +01000200830001000281020102010200810100010081010082000100820001008100010b +010702020104028401020102010501010002010d02110102028101020102810102010281 +0102030283010201020102810102010283010201020a0282000100010081020081000282 +0201020102010081020083000200020a0284000201020102018200010081000101010100 +0101810002140201018100028602000200010002820200028702000200010002000000 +050102008201020001000e01810001070101028101020502810102020281010204028101 +028102010101810201020106028101020b02810102020239018500010001000181010082 +000100860001000100010082000100820001008200010082000100820001008200010082 +00010002008301000100020005018102010301020081010003008201000103018100011a +010102810102840201020102810201820102010401060286000100010001008600010001 +000100880001000100010001008700010001000100018701000100010001008800010001 +000100010004008201000102018302000200840002000102010281010201028201020101 +01810001820100010b018100010901070283000102008100020102810002010203010100 +830100010083000100020b028b0001020001000100010001008800010001000100020085 +000200020002010281010209028101028302010001020101028101020402010082020002 +040201008102008300020002030283000200020702810002010281000182010001020182 +000200010083010200021502820100028902000200020002010002850200020001028202 +0002 +850100010001000300810200830001000117010202810002840201020102020281010206 +0282010201020181020101018202010203028101020e028201020115018100011e018500 +01000100012b018300010001010101008301000100840002010200010083010001000200 +8101000100850100010001008c000100010001000100010001008a000100010001000100 +010088000200010001000200870002000200010002060281010282020102820201028202 +010282020102820201020102810102820201020102810102850201020001028202010201 +028101020102810102010281010201028301000200810002810201820102010101010084 +010001000108010100810100010081010082000100820001008300010001010181020105 +0107020101810201810102010281010202020a010d022001820201020102020183020100 +020302810102010281010207028200020001008102008100020302020081020083000200 +0206028201000201020401030006011502010109028101028202010201028300010200 +87010001000100010081000101018100011a010402830102010202028101020802050182 +020102050281010206020101040281010281020134018100010501880001000100010001 +008200010084000100010082000100820001008200010082000100820001000100810100 +82000100010001018100010201010081010001008101000100810200060005018100012d +010402810002010284000100020086000200020001008800010002000100020087000200 +020001000287020002000100020088000200020002000200040082020102010289010200 +02010002000102010281010201028201020101018100018101008100010e010102010181 +02018101020702030181000201028100020202020184000100010083000100020d020400 +8701000100010001008800010001000200020083000100028202010209028101020e0282 +000200010082020002060202008102008100021102020183000100010201020001011502 +86010201000200028402000200028202000286020002000201000100 +010081010001000101850001000100011701810201810102040281010203028101020402 +810102010205018200010205028101020502420183000100018101008700010001000100 +011801820001008200010001008101000100810100010083010002010201030086020002 +010001000600850100010001008a00010001000100010001009500010001000100010001 +020001000100010001000100880001000100010201020402810102810201010181020109 +018102012001820001008100010601820001008300010001090181000181010082000100 +82000100820001008300010001080108020401020281010202020a010e02130101020101 +020281010201028101028202010205028101020202810102810201020101028100020402 +820002008200020083000200020402020082020002050283010201020102050102008101 +0081000101011602010103028101020d020000 +820100018101008100010201830001000114018100010101020281010208028301020002 +02028101020102810001030108028101020402410183000100010a018400010001008400 +0100010082000100820001008200010082000100820001008100010a0182000100010081 +010001008201000182010200830002000182010001050181000117018702010201020102 +0182010201870102010201020102820200020f0284000200010083000200028402010002 +008800020002000100020086000200010002008800020002000200010004008602010200 +020102010281010283020001020102810102010282010201040101000501810001080183 +020102010101080281000102010802030186000100010001020d0281010002008b010001 +000100010001000100860002000100020081000106010502810102010281010281020105 +010100020201008102000100840200020002020201008102000100820200020102810002 +030281010204020301030004018200010212028101028402000100028402000100028402 +0002000288020002000102000200 +0301010082010201820100011b010c028101020702820102010401010281010202028101 +020402020181020141018a00010001000100010001008400010001008400010001008200 +010082000100820001008200010001008101008200010082000100020081010081000106 +01010081010003008102010101010081010082000100010083010001008c000100010001 +000100010001008e00010001000102010201020002000282020102820200020402830002 +01020e0201010b0281010282020102820201028202010201028101020102810102820201 +020102810102010285010200020002010288010200020102000100890002000102000201 +020182010001010182000100820001008200010082000100830001000101018202010201 +0202010702030109020701100202018100010b0182020102010281010201028101020102 +810102830200010203028100028202000283020102010401010282000200830002000204 +02010081020001008202000202028100020d020301810001020101008101008200010215 +028100018b01000200020100010002000288020001000102000100 +010284010001000103018100011a010c0281010204028101028102010101810201020106 +02810102040202018102013c018100018801000100010001000125010100810100010081 +010001008101008100010201030081010081000107018100010501820201028102018101 +028102010501070281010282020102250283010001008800010001000100010086000100 +01000100880001000100010001000300060181000107018100010b018100010201810001 +02018100010c010802830001000208020a010d0282010001010182000100820001000100 +850100010001008500010001000107018202010207028201020106018100020502010083 +020002008300020002030201008102008400020100020a02010101028101008200010081 +00010301150203018202010285020102010201810102810201830102010282020102 +820100018101008300010201820100011b01030281000206028100020402810002810201 +020181020182010002030281000203028101028202000106018100010c01810001280181 +000107018400010001008400010001008200010082000100840001000100820001000100 +810100820001008200010001008201000107018200010002008101008100018101000200 +810100820001000100880100020102010201020102810102820201020202020101028101 +021d02810102140281010282020102820201028202010201028101020102810102820201 +020102810102010284010200020083000201028102008100028302000100850002010002 +008100028102018101008100010201010082010001810100810001840100010001010182 +02010201020201080202010802820102010301850001000100020d028800010001000100 +01008a000100010001000100020083000100028202010201028101028302000100830002 +000201020100010201000101840001000100010081020082000200830002000204020200 +810200010001028101020102820100020802030101008201000183010001008100021802 +8201000201028f01000100020100020001020002000200 +820001000100840100020100810001030181000107018100010601810001810102010281 +0102010281010205028201000206020401810201840100020102080212018100010d0181 +0001040181000104018100010401810001030181000105018a0001000100010001000100 +830001000110018100010101820001008200010001008101000100810100010081010081 +000106010300070101008101028302010002020283000200020502860100010002000284 +020102010201028300020002290281010282020102820201028202000201028101020102 +810102820201020102810102010281010286020102000201020102810002010281010201 +028101020102830102000182010001820100010601810001080103020201080203010902 +09010e0201018102010c0102028101020102810102010281010203028301020102010281 +010201020801020281000202028200020003008102008100020302820102008100020d02 +030181020101010100820100018101021502820102018101028202010201028101028102 +01810102820201020402 +810100820001000100840100010001820100018201000182010001010183000100010201 +010002018100010101830201020081000204028400020001020302810002010201018100 +018101008200010282020102820200020402810100810001040101000801810001030181 +00010301810001070181000108010100050183000100010201810001820100010c018200 +010082000100820001008200010089000100010001000100010d01820001000100810100 +020082010001010103008101008200010081000283020102018301020102040281010283 +020102018101028102010101090281010212028a01020100020001000201020302810002 +02028b010001020002000100010001870100010001000100880001000100010001008100 +010101830001000181010083000100018101008200010082000100820001008100018201 +000182010001830100010082000100810001810100020082010001090108028400010001 +020402840102010001050183000100020d0202008701000100010001008d000100010001 +000100010001000105018502000100020001008602010002000200850001000100018101 +008100028102008200020082000200830002000281020081000201028101020202810102 +02028100020802820102010101020086010001000100021502010183020102008100028c +0200020100010002000201000282020002 +810100040081010001000701810001070181000106018100020602810002030281010283 +020001028202010281020182010001010182020102830201000202028101028202000105 +018100010501810001050181000104018100010201830001000105018100018601000100 +01000102018300010001050181000103018a000100010001000100010003000201010082 +010001810100840001000100010081010082000100820001000200810100820001008100 +010601010081010002000801010082020002850200020100020302810002050283010201 +021f02010181020181010201028101021102810102820201020102810102820201020102 +810102010281010283020001008200010082000200820002008200020082000100820002 +008200020082000200820001008200010082000100820001008200010084000100010081 +0001020103020201060203018200010204020d010e0202018102010b0101028101020202 +810102010281010203020101020003028101028502010201020181010283020102000100 +020201008301000200030082020002080281000208028201020101018100010201010001 +0103028100020e028201020182010002850201000201028d020100010001020001000102 +0002 +040083010001008300010001840100010001860100010001000101010100010183000100 +018601000100010002860200020002000281020095000201000200020001020001000200 +010001000102008300020002930200010002000100010001000100010001000100810001 +83010001008100018101008c000100010001000100010001008100010101830001000108 +018100018501000100010083000100010401850001000100010d01810001150182000100 +820001000100810100020082010001020182000100030081010004000102010186020102 +010201028402010201028202010226028101020602810102090281000202028400010002 +008800020001000200020086000100020002008200010083000201020102810002840200 +010002830201020086000102000201028102010301810001110103020201060203018200 +01020402860100010001000106010e028101008a00020001000100010001008b00010001 +000200020002000201028101020102850100020100020202010082020002810200880002 +000100020100020302820002008200020001008102000100010281000211028101028102 +010201010081010081000101011502030103028101028102010101030281010282020102 +810200 +02008101000100810200810001190101028101020b028101020502020101020301020281 +010203028101028102012701810001020184000100010083000100010101810001080181 +000109018100010501810001080102008501000100010082000100010081010081000109 +010100810100010081010001008201000105018202010082000200830002000203028100 +020202810002390281010201028101020202140181000187010001000100010001008101 +000400810100820001008200010006008101000800810100810001090106020101810001 +010106020b018100020d021f018102018401020100028102018201020084000201020106 +010100810200820002008300020002030203000102810002050281000206028101028102 +01010101008102010101010081010213028701020001000200028d020002000102000100 +02010002008300020002 +810100020083010001008100018601000100010001840100010001860100010001000101 +010100010183000200028602000200020002880200020002000102008100028c02000200 +01000100010001000281020081000289020002000100020001008100018d010001000100 +0100010001000100830001000181010083000100018101008a0001000100010001000100 +880001000100010001008600010001000100840001000100830001000104018300010001 +080184000100010083000100018201000182010001060102008101008200010001008101 +000100810100010082010001060104008101008200010002008202010284020102010282 +020102860201020102010206028101023202820001020102810002030201008702000200 +020002008600010002000200820001008300020102830200010282020102010281010201 +028101020102080181000105018500010001000105010202820102018101020202830102 +0001020182000102020281000284020100010083000100018201020101010e0283010001 +008c00010001000100010001000100870001000200020002010281010201028101020102 +8101020402010001028c0002000100010001000200010202028200020002008102008200 +02000100010283000201020f028201020101010102020082020002130204010302010183 +020102018501020102010282020102810200 +0200020183000100011a010f02810102060202010102010109028201020105018102013b +0181000101018100010801810001810100020009018400010001008100010f0101008101 +000100810100020004018100010601840002010200890002010201020102010240028101 +020302810102030281010201028101028202010201028101020102810002890200010002 +010200020082000200820002008200010084000200010083000100018201000184010001 +000101018300010001810100010003018102010401050281010284020102010207028101 +028402010201028402010201020e0202018102010e018102010201820201020102810102 +010281010201028100020102810100820001020102820102010101010283010002008200 +020082000200010003028500020002000282020002010281000205028101020102030184 +000100010084000102010216028300010002850200020001008400020001008300020002 +840200020002 +820001008200010001008201000186010001000100018401000100018401000100018601 +00010001000184010001000286020002000200028a02000200020001000200028e020002 +0001000100020001020002008100028e0200020001000100010001000102009000020001 +0001000100010001000100010083000100018101008a00010001000100010001008a0001 +000100010001000100840001000100840001000100830001000182010001090181000181 +010001008101000100090101008101008100018101000100810100820001000100810100 +010082010001070101008101000300810100820001000200810102840201020102820201 +02040281010202028101023b028201000203020100870200010001000100860001000100 +0100030003018100011c01830001000181010001000d012c028701000100010001008a00 +010001000100010001008600010001000100810001060101020201010201010300830200 +02000200830100010082000100870002000200020002810200820002000100820200020b +028101020202090101008201000213028100028102018b01000200020001020002000181 +0100010085020100020002 +030081010083000100010f01810001090102028101028202010202028101020102810102 +050205018202010202028101020202010181020105018102010101820201028102013d01 +810001030104000a01810001030101000801820001000100810100010081010002008201 +000103010300050181020088000200010201020102010281010282020102840201020102 +38028101020a028101020102810102010281010282020102010201008902000100020102 +00020085000200010200830001000283020001008100010b018300010001010101000301 +010205012d02030181020113018202010201028101028202010201028101020102810102 +830200010201028200020101018402010201020202820002008200020001008102008100 +020202810002840200020002860201020102010204020501020083010001021e02860102 +00010001000100810102840201000201 +090001018300010001860100010001000182010001020183000100018601000100010002 +910200020002000102000200020002000200028a02000200010001000100018101008100 +02a102000100010001000100010001000100010001000100020001000100010001000100 +810001830100010088000100010001000100830001000181010086000100010001008400 +010001008600010001000100810001820100010301810001050105008101008100010a01 +0100010102008101000100820100010a0101008101000400810100030081010085000100 +020102870200020002000102840200020002820200020502810002200281010212028101 +020802810102010281010282020102010282010002850201020001020102810002010281 +010283020001020102820100010401010003018100010201830001000181010001000501 +010204012e02880001000200010001008a00010001000100010001008700010001000100 +020102810102010289010201020102010201000300810200010081010082000100030081 +020082000200810002050201008102008100028402000200020102810102050281000281 +020101018302010001020181000214028300020002840200020002850200020001000200 +81020002008102000000 +020083010001000100830100010081000101018300010001860100010001000184010001 +00018b0100020001020002000200028a020002000200020002000202028b000200010001 +00010001020081000201028a010002000100010001000101018100028102010101830001 +000187010200010001020182010001010181000108018300010001220182000100020082 +0100010c0181000181010002008301000100010081010082000100010081010002008201 +000106010300060186000200010201028602010201020102820201022b028100020e0282 +010002020281000202020101010286000100010001008200010003008101008500010001 +00010101820001000100030183000100028102018101008100010b018200010081000181 +010081000109012e02260102028401020002018101020202020183020100018101020602 +020081020082000200810002130284010201020181010084000102000218028101020202 +04018102018101008200020083000200020002 +0400820100011b018202010201028101020d028100020202040182020102040281000107 +018302010001010183000100018601020100010201010187000200010201000101018200 +010085000100010001030182000100840001000100860001000100010082000100830001 +0001080181000103010300810100850001000100010c0101000d01020081010001008101 +000400810100030081010001008201000101018100028202010201028501020102000206 +028101023402810102020281010205028101020102810102820201020102810102010284 +010200010083000200020102810102840200010002860201000200020101010100010182 +000100810001030181000101010200820100010101830201020102012e02810100880001 +000100010001008c00010001000100010001000100830001000282020102010281010201 +028101020102840102000200010003020200830100010001008102008200020081000208 +0201000102820002008100020f0282010001030115028100028402000200028402000200 +0202028100020102010083010002000000 +0600010181000184010001000184010001000184010001000186010001000100018d0100 +010001020002000200010200810002860200020001000281020088000201000100010001 +8c0100020002000200020002000181010081000181010098000100010001000100020001 +000200010001000100010002008100018301000100840001000100830001000183010001 +0084000100010086000100010001008200010083000100010c0101008101000100810100 +85000100010001070182000100010002018200010082000100010081010001000a010100 +81010002000401010081010085000200010002030281010201028101020f028101023202 +810102030286000100010001008200010003008101000100050182000100830001000115 +018400010001000100050184000201020102012e02260101028401020102010301810201 +060182020102030281000281020082000200810002810200830002000210020501820001 +0001001602850002000200028202000201028d0100010001020002000201000200 +8200020004001b010402810102080281010207020501050202018102010a018102010301 +81020101010102020181020103018102012a018100018301000100820001008100011001 +810001020102000501010081010001008101000100810100010081010081000181010082 +000100030081010002008202010201028101020c0281010209028100022e028101020402 +810102010281010201028101028202010201028101028202010283020001008300020002 +010281010201020200810100820002008200020082000100840001000100810001020181 +000103010100820100010801070284000100010204028101020902840002010200810002 +0402810002030282000100880001000100010001008a0001000100010001000100810001 +840100020102010284010002010081000282020100890002010001000200010001008401 +000100018101020702810102030284000200020083000200020402810002050204010200 +0201180281010206020101870201020102010201820102010001 +040081010085000100010001820100018401000100018401000100018601000100010001 +860100010001020081000286020002000200028602000200020002810200880002010001 +000100018101008300020002960200010001000100010002000100020001000100010001 +8101008c0002000100020001000200010083000201008600010001000100810001830100 +0100840001000100860001000100010086000100010001008100010c0103008301000100 +820001008100010b018400010001000300820100010b0101008101000200820100010401 +040201008202010214028101020202810102300281000205020100870200020002000100 +040081010001008101020102840002000200840002000102820201020102810102810201 +0b0181000181010002000501820002010401070203010d02810102830200020183010201 +020b021b0102028101020102810102820200028402000200028102018101008100028202 +000181010281020101010c02810102050283000200020402810102040208018102008100 +02180281000284020002000286020002000102010101840001000100 +840002000100810001820100011901030281010201028101020d02820102010401020281 +010283020102010401010207018202010281020184010201020184010201020101010102 +840102010201270181000184010001000181010081000112018100018101008100018101 +000200810100820001000100810100010081010081000104010700030284000100020081 +000282020102440281010203028101020402110182000100810001060182000100820001 +008200010082000100820001008400010001008100010301810001020101008201000102 +010102040106020101820001020e02840002000100810002020281010201028200010202 +02840001000100880001000100010001008d000100010001000100010001000104018200 +010002008101008a00010001000200010002000300860100010002000281020081000284 +020002000284020002000209028300020102070202010100850100020001022002810102 +050283010201020002 +010282000200010001018300010001840100010001820100018401000100018801000100 +010001000186010002000200028602000200020002860200020002000281020088000201 +00020001000181010085000201000200810002a102000100010001000100010001000200 +010002000100010001000100020001000100810001810100860001000100010083000100 +018101008600010001000100840001000100840001000100810001820100010601810001 +810100020083010001008400010001008100010a01810001020101000c01020081010001 +00810100020003018200010203028101008200020104014c028101020202010087020002 +000200010004008102008300020102010281000281020001008202000201028101020102 +810102010282010201070181000101010300050181000106010602030111028301020102 +020282000102020281010202021b01020201018102008300020102020201008102000100 +810100820002000100830201020181010204028500020002000202020100010286010200 +020001028202010208020201810201020183020100021402830002000202028d00020002 +010002000201000200020302 +0400810100820001008100010101850001000100018401000100018401000100018b0100 +010001000102000200028602000200020002810200810002930200020002000201000200 +010001000200020100830001000183010001008100018c01000100010002000200020002 +820201008200020182010200810001890102000100020102000102018300010001110181 +00010e018100018101000200820100010d01810001030101008101000300810100010081 +010083000100010801060003028600010001000100810001010101028101024602810102 +060281010201028101028202010282020102010281010283020001008200010201028100 +020102820002008200010082000200820002008400010001008200010081000103010100 +020101008201000102018102010401060204011602010081010201028200010202028600 +0100010001008a0001000100010001000100890001000100010001000108010100850200 +020002008200020001008301000100820001000200820100020102810002040281000281 +020083000200028802000200020002000208020401820001000200130281000288020102 +00020002000284020002000186010001000102018301000102 +83020001000200190181020101010502810102040281010207020101810201030102020f +010402820102018301000201020182000201010182020001010182020001010183000100 +010201880001000100010001008400010001008300010001010101000101810001060182 +00010001000201030083010001008100010c018200010081000104010200810100010081 +010001008101000100810100810001030181000203020100810100010082010001850100 +020001020b02810002360281010205028400010001008100010101840001000100070002 +018100010101010082010001140181000102010100820100010301830001020104010602 +050103028200010204028101020702830100010201028200010202022201810001010101 +008102018101028402010001008300020100860002000201000281020001008402000200 +0281020081000281020081000206028101020a020501810001020118028101020a028101 +028602010002010201 +060084010001000182010001840100010001840100010001860100010001000186010001 +000201008400010200028102008100028402000100028602000200020001810100830002 +000190010002000100010001000100010001000181010083000100028102008500010002 +010083000200018101009000020001000100010001000200010001008a00010001000100 +010001008400010001008600010001000100850001000100010a01040001018100010d01 +810001050105000f01820001000300820100020102860001000100010083000100018201 +020102010b02810102370281010204028101028202010201028100028202010283020100 +028202010201028101008200010201028100020102820002008200010082000200840002 +000200820001008200010081000101018200010001000201830001000104010202010106 +020301820001020102810102870200010001000102010281000202028100020202810102 +83020001020202880001000100020001008a00010001000100010001008a000100010001 +000201020102018102010101040202008101000200890200010201000200010201028100 +02840200020002020281000201020100010281010083000200020a020601010017028600 +02010002000202028100028c02010200010001020001020002 +810200040018010102010182020102820201020702810102060202018102010301020210 +010302810102810201010181020102010102030181020101018102012901820001008100 +01810100040083010001008100010c018300010001830100010001008101008200010001 +008101000100810100010007018100020102820001000100810100850001020102010301 +0b0281010228028101020702810102060281010282020102850201020001028902000100 +020002000200030001020100010283010002008200020084000100010082000100820001 +008200010082000100810001060183000100010501820201020102010106020301860201 +020102010282020002850200020102018101028502010201000205028100020302810102 +04020a010202810102840201020102010281010202028301020102020281010281020101 +018300010001010181020082000201010102028200010081000284020102000282020002 +810200010001028100020702810102020202018102018101020102810002830201020101 +018402010201020c028101020a02810102820201020202810102 +8101000400840100010001860100010001000101010100010183000100018b0100010002 +000102000200028602000100020002860200020002000281020088000201000100020001 +810100810002830200010081000186010001000100018101008300010002810200850001 +0002010083000100018101008c000200010001000200010002008c000100010001000100 +010001008600010001000100840001000100870001000100010001070181000181010001 +000101030081010083000100010701810001040103000d01010081010001008101000300 +810102010202018800010001000201020081000101018300010002090281010239028401 +00010001010183000100010f010100030101008201000181010282020102820201020102 +820102010901820001000100030101000301820201020102010106020401170282010002 +0702810002040283010001008c0001000100010002000100020083000100028102018101 +028102010201820201020102810102880201000100010001000100020281000202028200 +020081000206020100860201000200020001000502810102020281010281020181010203 +0286010001000201028202000183010201020b0281010287020002010002000282020002 +81020184010001020182010001 +070082010001820100018401000100018401000100018601000100010001020186000102 +010200020202830002000201028100020402820002010101810201020183020002010201 +8100010a010202820102018201020102018102010201810201020181020102018102012a +018100018101000200820100010e01810001010101000101010081010001008101000100 +810100820001008100010801030001020100810200010001028100010801350281010208 +028101020402010181020183010201028202010283020102018601020102000100820001 +000200840102000102870201020002000100820001008200020082000200820001008500 +010001000105018400010001008100010401020201010602040117028200010207028101 +0204020e018102010f010602010181020184010200010201020101030281010282020002 +020281000282020102010281000201020100140202000102010181000184010001000203 +028101028402000200020202810002820200020b0281010282020102 +010085020100010001170188000102010200020102830200010203028100028502010002 +000201028801000100010001000201028100018201000101019e00010001000100010001 +000200020001000200010002000100010002000100830002000181010086000100010001 +008100018501000100010084000100010084000100010084000100010081000182010001 +070104000101040081010083000100010c01040006010100810100010081010001008101 +000100810100010082020102010282010201820102010d01430218010100010181020102 +018102010201810201020181020102018102011e01010201010602040117028101020802 +81010205028400010001008d000100010001000200020002000201028101020302810102 +0302020111028a01000100020002000200020502810002120201018102018a0102010201 +020100010201040103028201020101010202820001020302810002840200020002830200 +010285020100010002 +010081020001008601000100010001840100010001840100010001010101000101810001 +860100010001020086000102000200028602000200020002830200020081000286020001 +000200018101008100028802000100010001000181010081000181010083000100028302 +000200830002010083000200018101008c00020001000100020001000200810001810100 +850001000100010101840001000100840001000100860001000100010083000100010b01 +0400010101000e018100010401030081010083000100010c018200010004008302010200 +820001008200010081000108018202010240028101020202810102010281010201028301 +020102020282010200830002010281020002008302000200820001000100830100020001 +008302000100820001008200010082000100840001000100840001000100010081010081 +000101018100018401020102018101020502040117028101020802810102050288000100 +010001000100830001000282020102030281010203028101020602810102060201000502 +85010201020102820200021f02830102010281020002008a020001020001000100010201 +028300010001870100010001000102010281000204028500010200010201028100018101 +00 +8200020081000282020001190182020102010281010201028101020d0201010102030101 +02820102010e0103028201020101010102040181020103018102018101028102010a0181 +00011b01820001008100010101010081010001008401000100010d010200010101008101 +008200010001008101000200810100820001000100030105021201820201020802810102 +31021a018400010001008100010501810201010183020102018101028102010101020220 +010702030129020c0186020001000100010c010202810102080281000204028301000200 +8a0002000200020002000200010002028100021602810002810201820102018201020103 +01020282010201010182020102050281010204028101020202810102010282010201 +030081020085000100010001820100018401000100018401000100018401000100018601 +0001000200028402000200028a0200020002000100020002860200020002000181010081 +000188010002000200020100830001000187010001000100010091000102000200010001 +000200010001000100810001830100020081000181010086000100010001008300010001 +830100010084000100010088000100010001000100850001000100010701820001000400 +040101000c01810001020103001001820001000100810100030001028200010081000181 +010083000100010801820201023c02850102010201028402010201028302010201840102 +010201830102010202028301020102820201000100830200020001008301000100820001 +008200010082000200820001008200010082000100820001008400010001008400010001 +0001000701810201810102060203011902810102070281000203028d0100010001000100 +01000100010087000200020002000203028301020002010281010201028101020c028101 +021102820001021802010189000200010001000100018301000102020286010201000100 +0284020002000202028500020002000282020002840200020002810200 +020081020001000201810001020181000104018300010001030181020183010200020c02 +810002060202018102010201030204018100010901020282010201810102810201020101 +020201010202018102010101810201220181000109010500810100010008018100010301 +820001008200010082000100010081010082000100010081010001000701010281000283 +020100010401810001030181000103018202010209028101021b02810002030281000203 +028100020302810002810201010181000103018100010301810001030181000103018100 +0101010100830100020101018a0200010201020100020102840201020002010281010282 +020102020282000201020181000104018100010401830001020101010602810001810102 +1702810002090281010201020f0105028101020202810102030281010202028101020802 +810102010281000290020100010002000200020002000200020085000200020102160282 +00020001000302010181020181010203028201020181010204028101020b028101028402 +01020102 +040002018100010101010003018300010001820100010101810001860100010002010201 +020100810200830002000288020002000200020002830200020001008202000183010002 +008100018c01000100010001000100010001810100830001000281020082000100820001 +008400020001000100840201000100860001000100010002008b01000100010001000100 +0100860001000100010086000100010001008100018201000107010400040102000e0103 +000d01020081010001008101000200810100010002021301820201023c02840102000102 +02028100028b020102010002010201020002010284010201000202028101000100840200 +010200830002000283020001008100028302000200010083020002008100028602000100 +010001810100830001000181010081000104018100028102010101080201012302810102 +850201000100010301010004010100020281010282020002820201020202010004028101 +020f02030007028100028302000102190281010208028501020100010202028101028202 +00020502810102010288000200020100020001820100018301000100 +050002018200010083000100010301010001018100010201860001020001000201028101 +000200820200020102840002000200810002010202008202000102018200020001000201 +01008101000100020185000100010002010201008a020100010201000100010081000101 +010300850102000100018401000100018401000100010201810001090183000100010e01 +0500030181000107018100010401020081010001008101008200010001000e0102000102 +830100010001008201000181010081000182010001830100010282020102220283000200 +028102008200020082000200820002008200020082000200820002008500020001020083 +000200028102008300010002830200020085000201000200820001028102000100810102 +810200820002008200010083000100010101020002018100010901820001008200010082 +000100810001020183000100010101010082020001810102050281010001008101021902 +810002050281010203028201000104018200010201028101008100010301830001000104 +01880001000102010201020d028201020186010002000200028102008400020002008300 +020002030281000212028101028202000283020001020302820001020802810002020281 +000202028500020002000288020001000102000102 +020083010002008100010701810001840100010001820100010201830002000181010284 +020002000203028300020002020281000282020002830201020101018600010001020001 +0101010005018100018c010001000201020002000200018b010200020001000201000100 +810001020183000100010101820001008100018301000100820001000100810100870001 +00010001000105018100018201000104010100810100810001020102008101008100010b +010200010182000100010081010082000100010081010001008101000200810100010082 +01000203020a018100010201850001000201023e02010183020102018501020102010284 +02010201028302010201820102010b018402010201028202010282020102820201028402 +010002008200020083000200028202010203021301040281010282020102820201021402 +030101028101028202010202028101020402810001030181000103010402810102030281 +010202028101028202000201020101100203008802000200020002000201028100020702 +8101020b028100028202000203020201050201011b0283010201020202 +010081020084000201000115018102018101020a02810002020201008202000283020102 +010501020210018202010201028201020181010281020102018102010301810201320105 +000201810001010181000103018100010201060016010200810100010002028101008200 +010084000100010084000100010001008301020102220201008102008200020082000200 +820002008200020082000200820002008200020082000200820002008200010084000100 +010082000100820002008200010082000200820001008200020082000100840002000200 +820002008200020086000200020002000200820201028202010203028301000200820001 +008400010001008400010001008400010001008200010082000102230281000284020002 +000202028100020302020186000100010201008600020002000200830002000283020001 +00860002000102000201028400020001020c028501020102010204020100840200020002 +020281000202028101020f0203018202000283020001020a028101020102810002090283 +0002000282020002020283000200020002 +050004018100010101850001000100010101820001008400010200020102870002000100 +020002810200830002000201028100020702890001000100010002000181010083000100 +018c01000100010001000102000100830002000283020002008300020001830100020083 +000100018101008800010001000100010083000100018301000100860001000100010083 +0001000109018100018e0100010001000100010001000100010401810001810100840001 +000100820001008200010001008101008200010082000100820001000100810100010081 +0100010081010001008201000103010402100101028101023d0281010201028101028402 +010201028202010201028101020102830102010201028101020102810102010281010201 +028101020102810102810201070102008101008100018201000182010201010181020182 +01020110012e020101810201010183000100010301830001020101018302000102820201 +02840201000102010202010100830100020101010e02810100850002000200020c028101 +0203028100020c0281000203028100028202010282020102110281010207028101028202 +010202028101020002 +810002810200010082010001820100010201850001020100020202810002090282000102 +030281000284020002000285020002010002010281000101018300010002820200018201 +000184010001000101018400010200010201840200020002020285010001000201010181 +000182010001020183000100010301830001000102018300010001030183000100010701 +8100011301010004018100011f0102008101000300810200810002010201018200010081 +000186010001000100018101008400020001022502010001028200010081000283020002 +008100028302000200810002830200020085000102000200820001028102008300020002 +810200830002000281020083000200028102008300020002830200020001008a01000100 +010001020002008b00020002010201020102010282020002810200830002000283020001 +008100028202010086000200020102000200040281000204028100022002810002820201 +028102018101008100018201020181010082000201010185020001000201020186000100 +010201028302000102020282010002060281000203028301020102040282010002880200 +02000200020002070283010201020a028101028102018701020001020100020102810102 +0502810002060281010207028100020502810002 +820002000200040281000207020100050282000200820001020102820102000100060281 +000206028100010401830200020105018200020104010100010103028300020002810201 +010101000501010004018300010001030101000401830001000102018100010c01920001 +000100010001000100010001000100010001008101008200010082000100820001008200 +0100820001008200010082000100010081010082000100010081010001000a0104020101 +810001040181000103018400010201020602810002030281000203028100020202810002 +030281000203028100020302810002030281000203028100020302810002020284010002 +01020102820001028402010200020302810002030281000203028100028102018101020e +02010081020001000102820001021a020101010281010207028101021402810102820201 +020302040101028101020102810102010201010102810102810201810102810201010101 +0201018102010101810201010112028301000102810200810002820201020e0282000102 +0b0201000102810002810200840001020001850102010001020202840100010001840100 +02000211028300020002 +850001000100021602810102180282010201040182020102810201020183020102010a01 +080231018100010201870001000100010001270182000100020081010082000100020081 +01000300820100020302820102010b01820201020e028101020f02810002030281000203 +028100020902010003028200010283020102008100028302010200810002020201008202 +000281020083000200028102008300020001830100020082000200840002000200820002 +008200010081000206028200020086000200020002008200020001008302000200820002 +008100028102000200010101008102008100028102008200020081000181010081000207 +028100028102000100820200020102020082020002020202000202010082020002830200 +020001000202030002020100810200810002010201008102008200020181010082000200 +810002010282000200010003020100010101028101020102810100830002000286020001 +000201020102810102060281010205028100010301810201020101020c01820201020802 +81010201028101020802 +010081010001008202000281020081000201020100030281000281020083000200028202 +000281020081000282020002820200028102008300020002830200010081000284020002 +000181010087000100020100020081000184010002000181010083000100018201000182 +010002890200020001020002000182010001860100010001000181010085000100010001 +840100010001860100010001000186010001000100018401000100011201860001000100 +010081000181010001008101008200010082000100820001008200010082000100820001 +000100810100830001000111018300010002020201008e01000201000100010001000100 +010208020100010282000200810002830200020001008102008200020082000200830002 +000281020083000200028102008800020002000200020001008102008100020202010001 +028200020081000283020102008100028302010200810002010285010200020102010281 +0002010283010200020d028101020102010081020083000200021d020201810201810102 +050203011c020301120281010201028101028102010a0102028101020c02030182020102 +010201018200020181010282020002820200020102010182020002030281010207020100 +02028100020102820100028302010001880100010001000100028402000200028b020002 +00010200020002000284020002000282020002810200 +8200010081000182010002020281010209028101021f0203010102010101020301810201 +0c010802320181000102018a000100010001000100010086000100010001008200010084 +000100010082000100820001008200010082000100010081010082000100010081010082 +000100010081010001008101000100810100020001010502030182020102810201040135 +028101020a02810102030281010282020002030281000202028101008100028302010200 +820001020102010082020002830200010081000283020002008100020102010082020102 +020281010201020200030202000102820001008100020102020002020100820200018201 +020083000200020102020002010802010002028500020002000201028500020002000284 +020100010081000201028200020081000201020100820200028202010083000100010201 +010084020002010281020002000202820002008100020302030082010201030102028101 +028402010001020802810102040283010201020202820102000100010101000201040202 +0181020106010a028101020e02 +010101008101008300010002840200020100820001020202810002010283000200028202 +000201028100028202000282020002850200020100028202000282020002840200020001 +010181000184010002000182010002820200018401000100018201000183010001008300 +020002830200020083000100018301000100830001000184010001000185010001000100 +830001000181010001008201000181010001008201000181010001008201000149010500 +040201008201000183010002008100018201000202020200830100010001008302000200 +010083020002000100870200020002000200010081020082000200820002008200020082 +000100820002008200020082000200010081020082000200820002008200020082000200 +810002830200020081000283020002008100020102830001000201020100050283000201 +028202000204028100020202010081020082000200830002010201028200010202028300 +020102830201000203028201000203028200020101018302010002030281000183010201 +028202000204028100020f02820102010101090206010202810002030285010200020102 +01028101020f028101020202030182020102020281010202028301020002020283010201 +020302810102050207010100820100020102830100010087000100010001000184010002 +00028b0200020001020002000200028902000200020100020002810200 +8500010001000102010a028101020a0281010201028101020d0281010201020201840201 +02010202028101028102010d018202010204028201020101018102010201810201020181 +020123018100018401000100018301000100880001000100010001008400010001008200 +010082000100820001008400010001000100810100820001008200010001008101008200 +010001008101000100810100010081010081000106010402040102028101020202810102 +3c0281010201028101020c02810102030281010202028101020402810002020281000202 +020100820200028302000102100201001702820100020302820002010101010281000204 +02810002020281000282020002840200020002820200029a020002000100020100020001 +000201000200020002000200020002820200029102000200020100020001020002010002 +000282020002820200028402000200020302030182020102010203010202810102050202 +01010281010284020102010201020301810001810100030004020a011402810102010281 +01020002 +820100018201000182010001810100810002030282000200810002040282000200810002 +030285000200010002020282000200810002030282000200810002010285010200020002 +860201020100020081000185010201000100810001020182000200810002010283010002 +008100028302010200010086010201020001008100010201020001018402010002008100 +010101010082010001010182000100810001400181000181010084000100010001000101 +820001008100028302000100810001810100830002000281020083000200028102008300 +020002810200010002020200840102000200810002810200830002000281020083000200 +028102000100840102000200810002830200010083000201008500020001020085000200 +020100860002000200020081000283020001008100028302000200810002830200020086 +000102000200020102810002820200020602850102000200028102008900020002000200 +020002820200020302010082020002860200020002000281020083000200028a02000200 +0201020002000201028401000200020202830002000202028100020f028101021a020101 +810201010181020101018102010101820200020102810002090201018200010283020102 +010101840201020102810201010181020104018502010201020181010281020101018102 +010701050201018100018101008100018601000100020002860200020002010282020002 +840200020002840200020002820200020002 +020082010001060116028101028202010205028501020102010282020102020201010102 +860102010201020181010201020201010201018102018401020102010101810201020101 +0202010102010183020102010101820201028102018b0100020102010201020102010101 +820200010a01810001040185000100010001010185000100010001830100010001000101 +820001008100018301000100810001830100010081000183010001008100018101000200 +830100010081000181010083000100010201810001030182000102020281000202028100 +020302810002020282000102020281000284020102000203028100020202810002020281 +000203028100020202810002010282010002030281000202028100020202810002030281 +000202028100020202810002030281000202028100020302810002020281000202028401 +000201028202000204028100020202810002020281000203028100020302810002030281 +000202028100020302810002030281000204028100020102830102000203028100020402 +810002030281000204028100020402820001020302810002040281000204028100020402 +810002050283000200020102850002000200020702880102010201020002010101820201 +028402010201020302810001810102010282010002010281010284020102010202020201 +0102820100020202850100020002018701020001000100028402000200028b0200020001 +0200010002000205028100020002 +020005018100010201040281000206028100020502860100020102010281020183010001 +020102810102830201000201028601020102000201860102010201000201020101010282 +000201010185020102000102020283010001028102018301020002810201810102830201 +000201028101028502010201020183010200020102830102010282020102010282010001 +0101810201060181000103018100012f0181020109010102820102018201020181010202 +020101030285010201020102820201022902810102010281010215028200010205028101 +020502810002030281000202028100020302810002030281000203020100010282010002 +030281000203028100020302810002030281000203028300020102840201020002030281 +000203028201000203028100020402810002030281000204028100020402810002040281 +000205028100028202010201028100028602010201020002050286000102000200020902 +810002840201020002830200020183010201028202010203028601000200020102820201 +028502000102010282020102810201820102010101840201020102040287010201020100 +0102010281010215028101020102 +010082010001020181000185010001000102010281000284020002000201028700010200 +020001028802010001000200010287020100020002000283020100028102008100028802 +01020001000100020102850001000200028f020100020002000102000102000100028602 +0001000200029e0200010200010002010002000200010200010001020002000100020002 +000284020001020081000295020002000100010200010001000200010001000100018101 +008300010001810100830001000101018100018201000182010001820100018201000181 +010083000200028102008300020001810100830001000183010001008200010089000100 +020100020100028202000282020001830100010085000102000200840002000200810002 +83020002008400020002008500020100020086000200020002008a000200020002000200 +020086000200020002008100028102008600020002000200810002810200010001020100 +820200028102000100020201000202030081020002000202010003020100020201000302 +810002030201000202010003028100020202010003020100030201000302810002020202 +000202020002028300020002010283000200020202020002028300020002010281000282 +020002010283000200020102810002820200020102810002820200020102810002820200 +020202820002008100020102820002008100020102810002810200010001028100028202 +000282020002030281010201028500010200010082000201820100018101020102810102 +830200010082000102040283000201020502010101028301020002820200020402840001 +02010281020183010200028302010002020201018100028202000203028100020602 +830001000105018100010201820201028202000201028101028102018301000102020201 +018302010002050281000205028201000201020101010281000205028100020502810002 +010201010102810001010181020183010001028202010283020100028202010284020100 +010282020102820200028102018101028302000201810102010284000102010282020002 +020283010200020302810002020285010200020102890201000102010200010201028201 +000281020101018100018201020187010001020102010282020102030201010102840102 +010201020181020105018100010201820200010201830001020189010200020102010001 +028302010002010283010200020202810002020281000202028100020202810002030281 +000202028100020202810002020281000202028100020202820100020202810002020281 +000202028100027f0213028101028202010203028101020a028300020002040201010102 +830102010206028101028102018101028302000102830201000203028101020a02010103 +0281010206028101020102020102020101820201020c0281010207020001 +820100018201000184010001000103018500010001000102018500020001000186010201 +000201008300010201870100020001000102880201000200010001028602000100020002 +0102850002000200020102850002000200028a020100020001000102010083000200028b +020100010002000201000200810001010185000200010002830200020081000201028200 +020086000201020002008200020181010001000101810200830002000283020002008500 +020100020081000281020085000200010200870001000201000200810002810200860002 +000200020081000281020083000200028102008500020002010001000102820001008100 +028102008300010001810100830002000181010001008202010086000100020002008100 +028102000100010201008501000200020084000200020081000281020001000102020001 +020100850200020002008400020002008100028102000100010202000102010083020002 +008600020002000200810002810200010001020100830200020083000200028102000100 +010201008502000200020081000281020001000102010082020002810200010001020100 +820200028102008600020002000200810002810200830002000281020098000200020002 +000200020002000200020002000200020002008100028602000200020002810200830002 +000286020002000200028102008300020002860200020002000286020002000200028302 +0002008100020102850002000200028b0200020001000201000200028202000285020002 +000100830002000201028101028802010200020002000185010200010002010281000201 +028100028702000200020002000100040281000208028600010001000102050281010282 +020102830200010201028200010285020002010002820200028202000201028300020002 +03028100020002 +820100010101810001070181000106018100010201810201010181000101018102010201 +820002018301020102010283000102018101020102820001020202010182000102010289 +010201000102010201028202000183010201028302000102020283010200020102810102 +840200020102840201020002040281000201020101810002820201020102810002030282 +000102020282010002030281000203028100020102830102000202028300020102010281 +000203028100020202010003020100020288000200020100020102840200020102830201 +000202028200010283020100020202810002860201020001020184010002010283020001 +028302010002020281000202028100020202810002010281000202028100020202810002 +840201020002010283000201028302000102010281000202028100020202810002010281 +000202028100020202810002020281000202028100020202810002020281000202028100 +020202810002020281000201020100020201000302810002020281000203028100020202 +810002020281000203028100020202810002030281000282020002820200028202000282 +020002020281000202020100030201000402010004028100020302010005028100020302 +010004020100020201018102008100020302830002000203028100020302830100010201 +028100028202000201028101020102010003028100020302010081010203028201000205 +028100020602810002020281010202028100020202810002020282000102060282000102 +0202810002810200 +010181000182010001010181000103018100010101810001030181000182010001030181 +000101018100010201810001820100010201810001010181000102018100018201000184 +010201000182010001020181000184010001020182010001820100020102850002010200 +028202000283020100028302010002820200020102850002010001028202000282020002 +010285000201000102820200028202000282020002820200020102840002010002820200 +028502000102000282020002820200028502000201000283020100028802000200010200 +010202028100020202820001028a02010200020102000200020102830002000282020002 +820200028402000200020102830002000201028300020002840200020002010283000200 +028902000200020100020002010201000202830002000284020002000201020100020283 +000200028402000200020102010002020100020283000200020102010002020100020283 +000200020102010002020100030201000202010003020100020201000402810002020281 +000202020100030281000203028100020202010003020100030201000302010004028100 +020302810002030281000204028100020302810002040281000204028100020402810002 +030281000205028100020202830102000202028100028202000202020100820200020102 +810002060285000200020002820200028202000202028100020102820102018201000283 +020100028202000201028200010281020181010201028100020c02010101028100020102 +810102820201028202000207028100020702810001 +010002018100010301810001820100010301810001010181000103018100018201000102 +018100010101810001020181000101018100010201810001820100010201810001820100 +010201810001820100010201810001820100010101810001820100010201810001820100 +010101810001820100010101810001830100010282020002830200010284020001000201 +028400020100028502010002000201028300020002020201008202010281020083000201 +028102008100028302010200810002010281010081000201020100020286000200020102 +008100020102830002000284020002000201020100030201000102810100820001028102 +008100020202810002020281000202028100020202810002020281000202028100020202 +810002010201000202010002020100020201000202810002010201000202010002020100 +020201000202010001028300020002840200020002840200020002840200020002840200 +020002840200020002840200020002840200020002840200020002840200020002840200 +020002820200028402000200028402000200028202000282020002840200020002840200 +020002010283000200028402000200020102830002000201028300020002010283000200 +020102830002000201028300020002010201000302830002000202020100030283000200 +020202830002000202020100040283000200020402810002040281000203028301020002 +050281000205028100020102810102010281000208028100020602810002030281010282 +020002060281000201028101028502010201000281020181010202028300020102020281 +01028202000205020101 +010001018100010101830001000101018100018301000100810001010181000101010100 +020181000181010001000101810001010102000201810001810100810001010185000100 +010001010181000181010081000182010001840100010001010185000100010001860100 +010001000182010001810100810001820100018101008100018201000181010081000101 +018200010083000100018101000100010182000100810002830200010001008302000200 +010083020002000100830200020001008302000200010083020002000100830200020084 +000200020001008302000200840002000200010081020002008302000200840002000100 +840002000200010081020002008102000200810200020081020002008102000200810200 +020081020002008102000200810200030081020002008102000400810200030081020003 +008102000300810200030081020003008102000300810200030081020002008102000300 +810200020081020002008102000200810200020081020002008102000200810200020081 +020001008102000200830200020084000200020002008102000100830200020084000200 +020001008302000200840002000200010083020002000100830200020001008302000200 +010083020002000100830200020001008302000200010082020002810200010083020002 +000100010282000200010082020002810200810002820200028102000100010282000200 +010001028100028402000200028302000200830002000201028300020002010281000281 +020001000102810002810200010082020102820200020102830001000282020002010201 +008202000282020002810200830002000282020002810200830002000282020002010202 +00020281000201028500020002010282020002810200810002010281000282020100 +8100017f0123010102820102018101020202810102010281010220028101020702810102 +08028101027f027f021e028101021c028101020d0281010218020001 +010005018200010081000104018200010081000104010200050102000501020004010200 +040182000100810001030101000501010004010200030102000301020003018300010001 +020102000301020002018200010081000101018300010001010183000100010101830001 +000101018200010081000183010001008100018301000100830001000182010001830100 +010081000184010001000183010001008b00020002010001020002000283020002008400 +020002000200010202000102020001020200010202000102020001020200010202000102 +020001020200010202000102020082010200010081020084000200020001000102020081 +020002008102000200810200040081020002008102000300830200020084000200020084 +000200020002008102000200810200020081020002008102000200810200020081020002 +008102000100810200020083020002008100028102000200810200020087020002000200 +020083000200028102008400020002000100830200020081000283020002008300020002 +810200830002000281020083000200028102008100028302000200810002820200028102 +008100028302000200010083020002000100010282000200010001028400020002008600 +020002000200810002810200820002008100028502000200020081000281020081000201 +028100028102008400020100020102010001020100020201000302810002010281000202 +028100028202000204028200020081000206028100020202810002020281000203028100 +0285020001000102010201000102010002020000 +010181000101018100010301810001010181000103018100010101810001020181000101 +018100010301830001000103018100018201000102018100018201000106018100010401 +810001050181000104018100010501810001040181000104018100010401810001030181 +00010401810001030181000103018100010401810001020181000103018100012d018102 +01820102018101020a028101027f027f0256020301810201810102810201030101028101 +0202028101028102010001 +810001030183000100010501830001000104018300010001040183000100010401830001 +000104018300010001030183000100010101810001860100010001000184010001000186 +010001000100010101820001008100010101850001000100018601000100010001860100 +010001000186010001000100018101008300010001860100010001000181010083000100 +018101008300010001810100830001000181010083000100018201000182010001840100 +010001810100830001000184010001000181010083000100018401000100018401000100 +018201000184010001000184010001000183010001008400010001008400010001008400 +010001008400010001000200830100020084000200020002008102000200810200030081 +020082000200020081020082000200840002000200820002008200020003008302000200 +030081020004008102000400810200040081020002008102000100010202000102020081 +020002008102000100010202000102020001020200010202000202010002020100020201 +000202010003028100020202010003028100020202810002030281000202020100030201 +000302010003020100030201000302010003020200030201000302020003020200030202 +000302830002000202028200020081000202028200020081000202020300030282000200 +810002030203000302830002000281020083000201008300020002820200028102008300 +020002820200028602000200020002010202010100840100010001840102000200840002 +0100010201850001000100010001 +060102000601020005010200050102000501020005010100050102000401020004010100 +040102000301020004010100040101000401010003010200030102000201020002018300 +010001010183000100010101020002010200010182000100810001830100010081000181 +010001000101820001008400010001008300010001810100840001000100840001000100 +010001010200010102000101020001010200010102000101010002010100020101000101 +020001010200010101000101020001010200820201000100810200010001020200810200 +020081020001008102000200830200020005008102000100830200020082000200840002 +000200010083020002008200020084000200020084000200020001008302000200840002 +000200840002000200820002008600020002000200860002000200020084000200020084 +00020002008600020002000200880002000200020002008a00020002000200020002008a +000200020002000200020081000283020002008100028302000200810002830200020081 +000283020002008100028202000281020081000283020002008100028202000281020081 +000282020002810200810002820200028102008100028202000281020081000282020002 +810200810002010281000281020081000282020002010201000102810002010201000102 +810002010201000202810002010201000202810002010201000102810002020281000202 +028100020202810002010281000202020100010282010001020181000186010201000201 +0284020001000101018100010101 +7f0170018102010101810201820102010401810201820102010101810201080183020102 +01840102010201850102010201028402010201028402010200020a028100020102810002 +020281000201028100020202810002010281000202028100020202810002010281000202 +028100020102810002020281000202028100020202810002020281000202028100020102 +820100010201810001020181000102018100010201810001030181000102018100010301 +840001020102820200020202870002010201020002030281000203028100020302810002 +040281000204028100020302810002040281000204028100020502810002040281000205 +028100020502810002060281000205028100028202010201020101810002060281000206 +028100020402810102010282000102810201030182020001810102810201010101028301 +000201 +820100010201010002018100010201810001020181000101010100030181000101018100 +010201810001010181000102018100018101008100010101810001010181000101018100 +010101810001010181000101018100010101810001820100010101810001810100810001 +820100018101008100018201000181010081000101018200010081000182010001820100 +010101820001008100018201000182010001820100018201000182010001820100018201 +000182010001830100010081000183010001008100018401000100018301000100810001 +830100010084000100010084000100010081000184010001000184010001000181010001 +008301000100840001000100840001000100840001000100840001000100820001000300 +810100840001000100820001000300810100820001000300810100020081010001008102 +000500810100070081010006008101000700810100060081020006008102000300810200 +820001000300810200020081020082000200030081020084000200020084000200020084 +000200020082000200020081010002008301000100820001000200830100010084000100 +010084000100010081000183010001008400010001008100018301000100830001000181 +010083000100018201000182010001820100018301000100810001820100018201000101 +018400010001028302000200810002820200028102008100028202000281020081000282 +020002820200020102810002810200810002010282000200810002020283000200020202 +810002810200810002820200020102810002020281000281020081000202028100028202 +000203028100028202000202028100020102810002030281000281020081000202028200 +010281020083000201020102810001010181000101018302010001820102008100010001 + +040102000101810001020102008201000103010100820100010301020082010001020102 +008201000102018200010081000102010300040102000301010082010001020102000301 +010082010001010182000100810001010101008201000186010001000100018101000200 +010185000100010001810100020083010001000100830100010001008301000100010083 +010001000200010182000100820001000100850100010001008100018101008100010101 +020001010200010102000101020001010200020101000101020001010200010102008101 +000200810100010001010200810100030081010006008101000100010101000101020001 +010200810100010001010200810100010001010200810100010081020005008301000100 +010081020084000200010001008302000100820001000100010102008301000100820001 +000100010202008302000200840002000200820002008400020001008400010001008400 +0100010084000100010084000100010086000100010001008400010001008a0001000100 +0100010001008a0001000100010001000100830001000181010093000100010001000100 +010001000100010001000101018300010001180182020102620281010206028301020102 +8102010701 +820100018401000100010101810001020102000201810001830100010081000101018100 +018101008100010201810001810100010002018200010083000100010101820001000100 +01018100010101010002018100018101008100017f016001810001020181000101018100 +010101810001010182000201010185000201020002840201000102900200010201020001 +020100020102010002010281000102018100010101810001020181000102018100010101 +810001020181000102018100010201810001020181000102018100010201810001020181 +000103018100010201810001030181000103018100010201010003010100010102008501 +000100010001008301000100860001000100010001000101830001000286020002000200 +028502000200020083000200028602000200020002010285000200020002010283000200 +028202000284020002000282020002830200020083000200020102820002008300020002 +010282000200810002880200020102000200028202000201028400020100020102810002 +0102830002000201028100020102810002820200010101810001 +4b0181000101018100018101000100010181000181010081000182010001810100810001 +830100010001000101820001008100010101820001000100830100010081000182010001 +810100810001810100020083010001000100830100010081000183010001008400010001 +000100830100010081000181010002008301000100820001008600010001000100840001 +000100840001000100820001000200810100020081010003008101008200010003008101 +008200010003008101000200810100820001000100810100060081010001008101000700 +810100820001000f0081010010008101000e008101000a00810100060081010082000100 +060081020003008101008200010003008101000200810100820001000200830100010082 +000100030081010001008301000100820001000200830100010084000100010001008101 +000200830100010001008301000100010083010001008100018301000100010089010001 +000100010001000100820100018101008100018301000100010082010001810100810001 +820100018101008100028202000281020001000102810002810200810002820200028102 +000100010281000281020001000102810002840200020002820200028102000100020281 +000281020083000200028202000281020001000202810002830200020081000282020002 +010201008202000282020002010201008202000201028100020102010086020002010200 +01 +820100010101870001000100010001020101008401000100010201020082010001030101 +000101810001010101008401000100010101020082010001020101008201000102018200 +010081000101010200820100010101010082010001010101008201000101010200820100 +018101000100030101008201000181010002000101030001010200830100010002000101 +030001010100870100010001000100820001000100810100020083010001000200810100 +020081010002008101008400010001000200010102008101000100010102000101020081 +010001000101020081010001000101020081010001000101020081010001008101000b00 +810100010081010001008101000100010102008101000100810100010081010001008101 +000f00810100010081010001008101000100810100020081010001008101000100810100 +020081010001008101000100830100010004008101000700810100030081010084000100 +010082000100010001010200830100010082000100020081010002008101000200810100 +010085010001000100840001000100820001000100870100010001000100010083010001 +000100810100010083010001008200010085000100010001030181000104018100010301 +8100010d01540281010212020001 +820100018101008100010101810001860100010001000182010001830100010081000101 +01870001000100010001820100018301000100810001880100010001000100018d010001 +00010001000100010001008100018301000100850001000100018101008a000100010001 +000100010084000100010084000100010086000100010001008400010001000100850100 +010001000100830100010001008301000100010087010001000100010001008101008200 +010001008101008600010001000100010081010002008101000200810100020081010002 +008101000300810100020083010001000400830100010004008101008200010082000100 +040081010001008101008200010082000100010081010029008101002500810100810001 +010181000101018100017701870001000100010001830100010081000186010001000100 +018601000100010001820100018101008100018201000181010081000282020002840200 +020002820200028102000100010281000281020001000102810002810200010002028500 +020002000201028100028102000100020281000283020002008100028202000281020083 +000200020102810002010283000200020102840002010200830002000201028600020102 +000100810001 +830001000102018100018401000100010201810001820100018201000101018100018401 +000100010101810001840100010001010181000182010001820100018301000100830001 +000185010001000100810001820100018101008100018201000181010086000100010001 +000100010181000181010001000101820001008100018501000100010084000100010001 +008301000100010001018200010081000183010001008400010001000100830100010001 +008501000100010082000100010081010002008301000100810001810100010087010001 +000100010001008501000100010003008101008200010082000100820001008200010003 +008101000100810100820001000100840100010001020181000101018100010101810001 +010181000101018100010101810001480181000181010001008101000100810100060081 +010001008101000100810100010081010001008101000200810100010081010001000101 +020081010001000101020081010001000101830001000181010001008101000200810100 +020081010001000101020002018300010001810100010001010300010102000201020001 +018200010081000101010200020183000100010101020003018300010001010102000301 +010082010001010101008201000102010300030202000302010082020002020201008202 +000202028200020001000402030004020200040201000102810002030201008202000205 +0282000200010006020100810200 +810001030181000181010001000301810001810100010003018100018101008300010001 +820100018101008300010001010181000181010081000102018200010001000201820001 +008300010001830100010001000201010081010081000182010001810100810001010182 +000100810001010185000100010001830100010081000101010200010182000100810001 +830100010001008301000100010001010200010182000100810001810100010002010200 +840100010001030181000134018100010101020081010001008101008200010082000100 +010081010082000100020081010084000100010082000100030081010001008101000100 +810100010081010028008101000100810100010081010001008101000100810100010081 +010001008101000100810100010081010001008101000100810100010001010100010102 +008101000100010102008101000100010102008101000100010102000101020001010200 +010102008401000100018301000100810001810100010001010100820100018101000100 +010103000101020002010200020103000101030001010300020103000201010082010001 +010103000301020001018202010002008102018301000200820001020202030001028201 +020083000200020302010082020002030203000202810002840200020002040282000200 +810002030202008202000205020200820200020202 +830001000182010001010187000100010001000102010100840100010001020102000101 +810001010101008401000100010101020005010100050101005401810001020181000102 +010100830100010082000100020083010001008200010002008101000100010102008101 +000300810100840001000100010081010082000100010081010006008101000100810100 +0100810100090081010001008101000100810100010081010002008101000f0081010021 +008101003200810100820001000100810100030081010082000100030081010082000100 +020081010001008301000100840001000100840001000100840001000100840001000100 +8a0001000100010001000100840001000100810001830100010084000100010001008301 +000100010001010300830100010001000101820001008100018301000100010001018100 +018101008100010101020082010001890100020002000102000284020002000282020001 +840100020001820100018101008100010201940001000100010201000201000100020102 +010201008100020402820100022102 +010003018100010201810001030181000101010100020101000201810001020181000101 +010100030181000101018400010001008100018101008200010001000201860001000100 +010001008501000100010002008301000100010081010082000100010083010001000500 +810100020001010200830100010001008201000181010083000100018101008400010001 +000100830100010001008301000100020001010200810100820001008200010084000100 +010084000100010002008101000100810100020081010002008101008200010003008301 +0001000400810100010081010001008101000a0081010001008101000100810100010081 +010001008101001600830100010026008101002500810100820001008200010008008101 +008200010082000100030081010082000100030081010002008101008200010084000100 +010002008101000200810100860001000100010088000100010001000100890001000100 +010001000102018100014301810201010183020102018101028102018101020102010182 +020102810201850102010200018201020184010001000103018100010101880001000102 +01020002810200010089020102000102000200018501020102000203020100 +020183000100010101010002010100030181000102010100010101000201830001000182 +010001020101000101010002018100010101810001010101000101810001010185000100 +010001010183000100018201000181010081000181010081000182010001810100810001 +820100018101008100018201000182010001010182000100810001830100010081000182 +010001820100018101008200010084000100010081000181010002008301000100810001 +810100010001018200010084000100010084000100010082000100020081010002008401 +0001000185010001000100010083010001008a0001000100010001000100020081010001 +008101000100810100050081010001008101000100810100080081010001008101000200 +810100020081010003008101000800810100260081010004008101000100810100010081 +010001008101000100810100810001810100820001000100010101000101010001010100 +010101000101010001010200810100010001010100010101000201010001010100020101 +000201010002010100010101000201020002018100010201010002010100010182000100 +820001008200010001008401000100018101000300810100030083010001008200010082 +000100020083010001008300010001810100010082010001810100010001018500010001 +000182010001840100010001820100018401000100018201000183010001008100018201 +000183010001008100018201000183010001008700020001000102008100010101890200 +020100010001000184010001000181010081000182010001820100010101010082010201 +82010001 +810001820100010201010001018300010001010101000101810001820100018601000100 +010001820100010101810001840100010001810100830001000182010001810100010082 +010001020101008101000100810100830001000182010001810100010081010082000100 +010081010082000100010081010082000100820001000100820100018101008100018301 +000100010083010001008100018201000181010082000100830001000182010001810100 +020081010083000100018401000100018201000181010001000101820001008700010001 +000100018101000100810100840001000100010081010002008101000600810100010081 +010086000100010001000100810100010085010001000100010081010001008101000100 +810100020083010001000100810100010081010004008101000100810100010081010082 +000100010081010004008101000400810100170081010004008101000100810100820001 +000100810100010081010001008101000100850100010001008200010001008101000100 +810100010081010001008101000100810100820001000100810100030081010001008101 +008200010084000100010004008301000100010001018300010001840100010001840100 +010001820100010201010002018300010001010101000201830001000101018300010001 +010183000100010101830001000101018300010001010182000100810001010182000100 +810001010181000181010081000101018200010081000101018100018201000104010200 +040101000601010006010100060101000501030005010100840102010201020181020085 +00020102000103010100810201810100 +010181000182010001820100010101010082010001010181000101010100820100010101 +810001010183000100018201000101018300010001820100010101810001840100010001 +010185000100010001810100850001000100010101830001000188010001000100010001 +820100018101008100010101850001000100018301000100810001820100018201000101 +018100018201000182010001820100018101008400010001000100810100860001000100 +010088000100010001000100860001000100010082000100020083010001008200010084 +000100010001008101008400010001000100810100840001000100010081010082000100 +010081010082000100020081010001008101000100810100820001000300810100010081 +0100030081010002008101005600810100080081010001008101000c0081010001008101 +000100010101000101020081010001008101000100810100010081010084000100010001 +008101000200810100010081010002008101000200810100020081010002008301000100 +810001810100020001018200010082000100830001000183010001008100018101008300 +010001820100018201000181010083000100010101810001820100010101010082010001 +020181000182010001010181000182010001020181000182010001020181000182010001 +020181000181010081000101010100010181000102018100010101010003018100010101 +810001020181000101010100010101000201810001820100010101830001000181010001 +0003010100 +010002018100018201000181010081000182010001010185000100010001820100018401 +000100018601000100010001810100810001820100018801000100010001000182010001 +810100010001018100018201000182010001810100820001008100018301000100830001 +000186010001000100018301000100860001000100010083000100010101810001010186 +000100010001008400010001008100018101008100018301000100860001000100010081 +000183010001008400010001008200010001008301000100840001000100010081010002 +008101008400010001000100810100820001000300830100010004008101000100810100 +010081010001008101000100810100050081010007008101000800810100530081010008 +008101000800810100010081010001008101000100850100010001000100810100010081 +010001008101000100810100020081010001008101000100810100010001010200010102 +008101000100030181000102018100018201000184010001000102018100018201000181 +010001000201020002010200010182000100810001010102000201030002010300020103 +000101850001000100010101820001008100010201010082010001020101008201000102 +010100810100810001010181000181010081000103010100010181000102018500010001 +000103018500010001000103018100018401000100010201830001000101018100010101 +82000100 +810001840100010001010101000301010002010100020102000101010002010100020101 +000201810001010181000102018100010101810001010101000101010002018100010101 +810001010181000181010081000181010081000181010081000182010001010187000100 +010001000101010400810100840001000100010001010100830100010009008101008200 +010002008101000a00810100820001000100810100090081010002008101000b00810100 +040081010014008101007f001d0081010082000100010001018200010082000100810001 +840100010001010181000106010200010102000101010083010001000200010102000101 +820001008100018101000100020102000201030001010100820100018101000100820100 +018101008300010001010101008201000101010100820100010101820001000100020101 +008101008100010101820001000100020185000100010001020101008101008100010201 +850001000100010201840001000100810001020184000100010081000103018400010001 +0081000103018400010001008100010101810001 +810001010182000100820001008300010001820100018201000182010001840100010001 +840100010001830100010085000100010001020101000101810001010182000100830001 +000102018200010081000101018200010001000201020082010001020101008201000101 +01030002010100820100018c010001000100010001000100018101000200010103000201 +020001010300810100020001018200010082000100010001010100830100010001008101 +000200010184000100010001008101008400010001000100810100020083010001000300 +810100010081010001008101000100810100010081010023008101004200810100820001 +000100810100820001000100810100820001000100810100810001810100820001008100 +018101008100018101008200010081000101018100010101810001810100810001810100 +810001010181000101018100010101010081010002000101020081010002008101000900 +810100030081010082000100020083010001000100810100020081010082000100820001 +000300810100010083010001008200010082000100820001000100810100030085010001 +000100820001008100018101008600010001000100810001830100010083000100018101 +00850001000100018301000100810001820100018e010001000100010001000100010001 +820100018301000100810001820100018601000100010001820100010101830001000184 +01000100018201000186010001000100010201010082010001 +010102000701810001860100010001000102018200010083000100010201030082010001 +850100010001008800010001000100010083000100018101000200820100018101008200 +010001000101820001000200010182000100860001000100010002008301000100010001 +018200010003008101000100010104008101000200810100860001000100010003008101 +000200810100020081010002008301000100820001000200810100020081010001008101 +000200810100030081010082000100820001000200810100090081010001008101000100 +8101000f008101004d008101008200010082000100040081010007008101000400810100 +040081010004008101000200830100010001008101000100810100010081010001008301 +000100820001008200010001008101000100810100030081010082000100010081010002 +008101000100010102008101000200810100020081010002000101030081010002000101 +820001008100018101000200810100030081010082000100810001810100020001010400 +010183000100018301000100020083010001000200820100018101008500010001000181 +010001008201000101010100010181000102010100010181000103018100018201000103 +01010001018100010301010008010100080101000701 +830001000182010001020103008401000100010201010082010001820100010101010081 +010001000301030082010001010103008201000101010300820100010101850001000100 +010101040002018200010001000101820001000100010104000101040081010003000101 +020082010001810100020001010200010182000100810001810100010001010300810100 +020001010200810100010001010200010102008101000200810100010081010001000101 +020081010001008101000100010101000101010081010001008101000100810100810001 +810100820001000100810100810001810100820001008100018101008200010081000181 +010082000100820001008200010081000181010082000100820001008200010007008101 +008200010009008101008200010082000100820001008100018201000182010001810100 +820001003600810100130081010007008101008200010005008101000300810100820001 +00820001000200810100840001000100840001000100010083010001008a000100010001 +000100010001008601000100010001810100020083010001008600010001000100010082 +010001840100010001810100820001008100018301000100850001000100018301000100 +810001850100010001000100830100010002008201000183010001008300010001020183 +000100018201000101018100018201000182010001010181000181010083000100010301 +810001810100830001000102018100010101010082010001 +810001020181000186010001000100010101810001820100010101830001000184010001 +000101018200010001000101810001810100830001000182010001820100018201000101 +010200010181000183010001008300010001820100018101000100010182000100850001 +000100018201000181010081000181010084000100010001008201000181010001008301 +000100010083010001000100010105008101000800810100020081010002008101000700 +810100020081010006008101008200010007008101002a00810100820001000400810100 +07008101008200010010008101002c008101000a00810100040081010082000100010081 +010082000100040081010001008101000100810100820001000100810100010001010100 +010101000101010001010200810100810001810100010081010001000101020081010002 +008101008400010001008400010001000100010102000101820001008400010001008400 +010001000100010103008201000181010081000181010083000100010101010084010001 +000181010081000101010300010182000100010002018500010001000101018300010001 +030183000100010301830001000102018200010002000101810001810100830001000101 +018200010001008201000101018100018601000100010001820100010101850001000100 +01020181000186010001000100010101 +810001020181000184010001000101010400030101000101840001000100810001810100 +820001008200010086000100010001000100850100010001000200810100840001000100 +020001010400810100010001018200010084000100010084000100010003008101000500 +810100820001000200810100020081010003008301000100020001010100830100010081 +000183010001000200810100820001000200850100010001008200010084000100010001 +0083010001000400810100820001000100810100010081010001008101000a0081010007 +008101007f001500810100130081010014008101000e0083010001008100018101008200 +010002008201000181010001000201010082010001810100010001010300020103000101 +820001008100010101030002010300020101008101008100010101020083010001008100 +018901000100010001000100030001018200010002008501000100010002008201000184 +010001000184010001000184010001000182010001820100010301820001008300010001 +030181000181010001000101 +830100010001000101810001030102008201000103010100810100830001000103010200 +010181000185010001000100010003018200010001000301030082010001020182000100 +810001010185000100010001840100010001820100010101810001820100018601000100 +010001830100010081000183010001008100018101000100890100010001000100010003 +008101000300810100010085010001000100820001000100810100820001008200010002 +008101000100810100050081010002000101010081010082000100030081010007008101 +000100810100820001000200810100030081010008008101000d00810100840001000100 +8200010045008101000a0081010011008101000100810100080081010001008101000100 +810100020081010082000100010081010001008101000100810100010001010200830100 +010082000100020081010001000101020081010008008101000400810100030081010003 +008101000100810100040081010082000100020083010001008500010001000181010082 +000100810001810100850001000100018101008200010081000101018200010083000100 +018801000100010001000183010001008100018201000184010001000181010081000101 +018700010001000100010201820001000100010101000101010081010001008401000100 +0184010001000182010001 +010185000100010001010181000101010100830100010002000101010005018400010001 +008400010001008100018301000100020001018200010003000301040001010200810100 +810001010185000100010001830100010002000101010081010081000181010082000100 +010081010001008301000100830001000101018200010082000100830001000181010002 +000101030001010300810100010001010300810100020081010006008101000200810100 +010081010082000100020081010001008101001400810100180081010039008101008200 +010082000100820001008200010082000100820001000300810100810001820100018201 +000182010001820100018201000181010082000100810001820100018101008100018101 +008200010004008101008200010001008101000100810100010081010081000181010082 +000100010081010001000101020001010100010101000101010001010200010101000201 +010001018300010001010101000201020002010100020102000201020002018300010001 +010102000201040001010400010104000101020081010081000181010082000100010002 +010400020102008101008100018301000100010082010001810100810001810100010003 +018100018101008300010001010181000181010083000100010301870001000100010001 +020181000181010083000100010301 +810100820001000200030185000100010001010181000101010400810100020001018100 +018101008300010001020102000101020001018100018101000200010184000100010081 +000183010001000300810100820001000100010101008101000100010182000100010001 +018200010001008101000300010104008101000300810100030081010003008101000200 +8101000d008101000f008101000100810100010081010005008101000100810100010081 +010001008101008200010001008101000100810100820001000400810100820001000d00 +81010009008101000600810100060081010008008101008200010082000100820001003b +008101000900810100040081010001008101008200010001008101000100810100010081 +010001008101000100010101000101010001010200010184000100010082000100030001 +010200010102000101010083010001008300010001810100020001010100820100018101 +008300010001810100010002010300020102000201020082010001010181000182010001 +010181000182010001020182000100810001020102008201000101010200010181000102 +018200010083000100010101840001000100810001030182000100020006010300060185 +0001000100010501810001 +010002018100018101000200020182000100030002018100010101010003010200010103 +000401830001000182010001810100810001820100010101020001010100840100010001 +020182000100810001010181000181010081000183010001000200010105008301000100 +0a008101008200010082000100030081010082000100820001000d008101000500810100 +0300850100010001002f00810100070081010071008101001a0081010001008101000800 +810100010081010001008101000100810100010081010002008101000100810100060081 +010002008101000200810100010001010200840100010001850100010001008100018101 +008400010001000100820100018101000200010103000201820001008100018101000100 +820100018101008200010081000101010300030102008201000101010200820100010201 +010081010081000102010100820100010301040005010100810100810001040104000501 +010084010001000104010100810100 +040001018200010001008101000100810100810001810100010081010081000182010001 +810100810001010104000101810001830100010081000181010083000100018101000100 +010101008101000200810100820001000100810100010083010001008200010001008101 +000200810100030082010001810100030001010500810100020081010003008101000800 +810100030001010300810100820001008200010082000100020081010003008101000b00 +8101000a008101007f003c00810100120081010004008301000100040083010001000200 +810100020083010001000500810100030081010001008301000100010001010400810100 +010088010001000100010001810100010082010001810100010082010001830100010002 +008101000200810100810001810100010001018400010001000100810100810001810100 +020082010001010182000100810001820100010101820001008100018201000182010001 +010101000101810001010185000100010001820100010201810001010181000182010001 +01018100010001 +810001010184000100010082000100020082010001810100830001000101018600010001 +000100810001010183000100018201000104010100870100010001000100810001010181 +000182010001820100018101008200010001008101000600810100820001000100850100 +010001000200830100010084000100010082000100880001000100010001000300830100 +010001008101000100830100010004008101000100810100050081010082000100060081 +010005008501000100010002008101007f003c0081010001008101000e00810100140081 +010001000101840001000100020081010002008101008400010001008300010001810100 +020081010082000100820001000200010104008101000100810100020081010001008101 +000100810100010081010001008301000100020081010082000100020001018200010002 +000101020001010200810100880001000100010001008300010001810100010001010100 +010182000100810001810100010082010001020181000183010001008100018101008100 +010101020082010001010101000101 +810001810100030001018100018101008200010082000100810001850100010001008500 +010001000183010001000100810100850001000100018101008300010001810100030002 +018100010201820001008100018101008100010101820001000100010105000101030081 +010082000100010081010084000100010002008101000400810100020001010400810100 +03008101000200810100820001000e008101000a00810100820001000a00810100010081 +01001c008101007f00260081010033008101000500810100010081010002000101040083 +010001000800830100010002008301000100020081010001008101000100820100018101 +000400850100010001000200810100820001008900010001000100010001860100010001 +000182010001810100810001830100010081000102010100020102000101010001018500 +0100010001010183000100018101008300010001 +850001000100018101000200850100010001008200010081000185010001000100860001 +000100010084000100010085000100010001810100020001018100010301010081010002 +000101810001840100010001810100010081010001000101010081010004008201000181 +010001008101008200010004008101000300010102008101000f0001010c008101007f00 +710081010027008101000600810100060081010082000100020081010001008301000100 +840001000100820001008400010001000100810100880001000100010001008200010001 +008501000100010001008301000100010082010001810100840001000100810001010103 +00810100810001810100820001000200820100018101008300010001820100018101008e +000100010001000100010001000100820001008300010001810100010001010100010181 +00010101 +050001018400010001000400810100040081010081000101018200010001008101000200 +810100010002010100810100020001018300010001820100010101010084010001000101 +010200810100070081010001008101000200820100018101000200810100030081010084 +000100010004008101000e008101000100010103008101000f0081010009008301000100 +06008101000d0081010030008101007f0003008101000400830100010004008101008200 +0100080081010082000100010001010a0083010001000700830100010001008101008200 +010081000181010005008101008200010002008101008400010001000400810100020081 +010001008501000100010082000100020081010082000100010083010001008400010001 +008200010002008101008200010081000185010001000100010082010001830100010003 +008201000182010001830100010002008101008300010001820100018201000101018300 +010001820100010101 +0201820001008300010001010181000101010b0081010003008101000800010101008101 +000500810100070082010001830100010001008101008200010081000183010001008100 +018101008200010003008101000400010104008101000400810100070081010003008101 +00080081010021008101007f0068008101000a0081010003008101000800810100020081 +010001008101000300830100010001008301000100090081010004008101000200830100 +010003008301000100840001000100050081010082000100820001000100830100010002 +008201000182010001830100010081000101018100018401000100018101008100018201 +000101010100810100870001000100010001010181000182010001810100820001008100 +01840100010001820100010101 +820001008200010004008101000100010102000101040083010001000200830100010004 +008501000100010002008301000100820001000300810100010081010005008301000100 +010083010001000200810100820001000100810100020081010006008101001600810100 +0c008101000b00810100010081010002008101000200810100050081010002008101000b +008101000e008101005100810100820001008200010064008101001c008101000a008101 +008200010006008101000600810100820001000800810100010081010001008301000100 +010085010001000100030081010003008101008200010001008101008300010001010101 +008101000200830100010081000182010001840100010001830100010001008401000100 +018201000184010001000101018300010001820100018101008200010081000185010001 +000100 +840001000100820001008100018101000100020182000100010085010001000100020081 +01000400810100820001008200010001008101000a008101000200010101008101000500 +810100030001010700810100010081010001008101000200810100820001000b00810100 +080081010005008101007e00840100010001840100010001810100010082010001040181 +0001140182000100820001003e0083010001000f00830100010007008101003800810100 +100081010003008101000400810100070081010006008101000300810100010002010500 +820100018101000300820100018601000100010001820100010101010001010300860100 +0100010001010102000101820001008300010001 + +% +% Compression made this file 28.37% of the uncompressed size. +% + + +showpage + +% stop using temporary dictionary +end + +% restore original state +origstate restore + +%%Trailer + +cleartomark +countdictstack exch sub { end } repeat +restore grestore +% +% End Imported PIC File: frame1.eps +%%EndDocument +% +% Polyline +60.000 slw +n 2430 7110 m 4230 7110 l 4230 8280 l 2430 8280 l + cp gs col6 s gr +$F2psEnd +rs diff --git a/doc/high_level_doc/frame2_final.eps b/doc/high_level_doc/frame2_final.eps new file mode 100644 index 0000000..9a90c6c --- /dev/null +++ b/doc/high_level_doc/frame2_final.eps @@ -0,0 +1,9249 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: frame2_final.eps +%%Creator: fig2dev Version 3.2 Patchlevel 3d +%%CreationDate: Thu Dec 4 14:21:46 2003 +%%For: root@rhum (root) +%%BoundingBox: 0 0 412 412 +%%Magnification: 1.0000 +%%EndComments +/$F2psDict 200 dict def +$F2psDict begin +$F2psDict /mtrx matrix put +/col-1 {0 setgray} bind def +/col0 {0.000 0.000 0.000 srgb} bind def +/col1 {0.000 0.000 1.000 srgb} bind def +/col2 {0.000 1.000 0.000 srgb} bind def +/col3 {0.000 1.000 1.000 srgb} bind def +/col4 {1.000 0.000 0.000 srgb} bind def +/col5 {1.000 0.000 1.000 srgb} bind def +/col6 {1.000 1.000 0.000 srgb} bind def +/col7 {1.000 1.000 1.000 srgb} bind def +/col8 {0.000 0.000 0.560 srgb} bind def +/col9 {0.000 0.000 0.690 srgb} bind def +/col10 {0.000 0.000 0.820 srgb} bind def +/col11 {0.530 0.810 1.000 srgb} bind def +/col12 {0.000 0.560 0.000 srgb} bind def +/col13 {0.000 0.690 0.000 srgb} bind def +/col14 {0.000 0.820 0.000 srgb} bind def +/col15 {0.000 0.560 0.560 srgb} bind def +/col16 {0.000 0.690 0.690 srgb} bind def +/col17 {0.000 0.820 0.820 srgb} bind def +/col18 {0.560 0.000 0.000 srgb} bind def +/col19 {0.690 0.000 0.000 srgb} bind def +/col20 {0.820 0.000 0.000 srgb} bind def +/col21 {0.560 0.000 0.560 srgb} bind def +/col22 {0.690 0.000 0.690 srgb} bind def +/col23 {0.820 0.000 0.820 srgb} bind def +/col24 {0.500 0.190 0.000 srgb} bind def +/col25 {0.630 0.250 0.000 srgb} bind def +/col26 {0.750 0.380 0.000 srgb} bind def +/col27 {1.000 0.500 0.500 srgb} bind def +/col28 {1.000 0.630 0.630 srgb} bind def +/col29 {1.000 0.750 0.750 srgb} bind def +/col30 {1.000 0.880 0.880 srgb} bind def +/col31 {1.000 0.840 0.000 srgb} bind def + +end +save +newpath 0 412 moveto 0 0 lineto 412 0 lineto 412 412 lineto closepath clip newpath +-73.7 527.2 translate +1 -1 scale + +/cp {closepath} bind def +/ef {eofill} bind def +/gr {grestore} bind def +/gs {gsave} bind def +/sa {save} bind def +/rs {restore} bind def +/l {lineto} bind def +/m {moveto} bind def +/rm {rmoveto} bind def +/n {newpath} bind def +/s {stroke} bind def +/sh {show} bind def +/slc {setlinecap} bind def +/slj {setlinejoin} bind def +/slw {setlinewidth} bind def +/srgb {setrgbcolor} bind def +/rot {rotate} bind def +/sc {scale} bind def +/sd {setdash} bind def +/ff {findfont} bind def +/sf {setfont} bind def +/scf {scalefont} bind def +/sw {stringwidth} bind def +/tr {translate} bind def +/tnt {dup dup currentrgbcolor + 4 -2 roll dup 1 exch sub 3 -1 roll mul add + 4 -2 roll dup 1 exch sub 3 -1 roll mul add + 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} + bind def +/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul + 4 -2 roll mul srgb} bind def +/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def +/$F2psEnd {$F2psEnteredState restore end} def + +$F2psBegin +10 setmiterlimit + 0.06299 0.06299 sc +% +% Fig objects follow +% +% Polyline +% +% pen to black in case this eps object doesn't set color first +0 0 0 setrgbcolor +% Begin Imported EPS File: frame2.eps +%%BeginDocument: frame2.eps +% +n gs +1170 1845 tr +12.500000 -12.500000 sc +0 -522 tr +-37 -160 tr +sa +n 37 160 m 559 160 l 559 682 l 37 682 l cp clip n +countdictstack +mark +/showpage {} def +% EPS file follows: +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: /home/scanner/docu/iav2004/frame2.eps +%%Creator: XV Version 3.10a Rev: 12/29/94 (PNG patch 1.2) - by John Bradley +%%BoundingBox: 37 160 559 682 +%%Pages: 1 +%%DocumentFonts: +%%EndComments +%%EndProlog + +%%Page: 1 1 + +% remember original state +/origstate save def + +% build a temporary dictionary +20 dict begin + +% define space for color conversions +/grays 600 string def % space for gray scale line +/npixls 0 def +/rgbindx 0 def + +% lower left corner +37 160 translate + +% size of image (on paper, in 1/72inch coords) +522.00000 522.00000 scale + +% define 'colorimage' if it isn't defined +% ('colortogray' and 'mergeprocs' come from xwd2ps +% via xgrab) +/colorimage where % do we know about 'colorimage'? + { pop } % yes: pop off the 'dict' returned + { % no: define one + /colortogray { % define an RGB->I function + /rgbdata exch store % call input 'rgbdata' + rgbdata length 3 idiv + /npixls exch store + /rgbindx 0 store + 0 1 npixls 1 sub { + grays exch + rgbdata rgbindx get 20 mul % Red + rgbdata rgbindx 1 add get 32 mul % Green + rgbdata rgbindx 2 add get 12 mul % Blue + add add 64 idiv % I = .5G + .31R + .18B + put + /rgbindx rgbindx 3 add store + } for + grays 0 npixls getinterval + } bind def + + % Utility procedure for colorimage operator. + % This procedure takes two procedures off the + % stack and merges them into a single procedure. + + /mergeprocs { % def + dup length + 3 -1 roll + dup + length + dup + 5 1 roll + 3 -1 roll + add + array cvx + dup + 3 -1 roll + 0 exch + putinterval + dup + 4 2 roll + putinterval + } bind def + + /colorimage { % def + pop pop % remove 'false 3' operands + {colortogray} mergeprocs + image + } bind def + } ifelse % end of 'false' case + + + +% define the colormap +/cmap 9 string def + + +% load up the colormap +currentfile cmap readhexstring +000000 ffffff 0000ff +pop pop % lose return values from readhexstring + + +% rlecmapimage expects to have 'w h bits matrix' on stack +/rlecmapimage { + /buffer 1 string def + /rgbval 3 string def + /block 384 string def + + % proc to read a block from file, and return RGB data + { currentfile buffer readhexstring pop + /bcount exch 0 get store + bcount 128 ge + { % it's a non-run block + 0 1 bcount 128 sub + { currentfile buffer readhexstring pop pop + + % look up value in color map + /rgbval cmap buffer 0 get 3 mul 3 getinterval store + + % and put it in position i*3 in block + block exch 3 mul rgbval putinterval + } for + block 0 bcount 127 sub 3 mul getinterval + } + + { % else it's a run block + currentfile buffer readhexstring pop pop + + % look up value in colormap + /rgbval cmap buffer 0 get 3 mul 3 getinterval store + + 0 1 bcount { block exch 3 mul rgbval putinterval } for + + block 0 bcount 1 add 3 mul getinterval + } ifelse + } % end of proc + false 3 colorimage +} bind def + + +600 600 8 % dimensions of data +[600 0 0 -600 0 600] % mapping matrix +rlecmapimage + +840100010001070181000132018300010001020181000182010001820100011901810001 +8401000100010a01850001000100010a0181000110018300010001070185000100010001 +820100010801810001820100010d018100012a0185000100010001820100010601810001 +01018100010801810001020183000100010a018300010001820100010801810001130185 +0001000100010901850001000100010d0183000100010901830001000101018100010901 +8100010101810001260181000102018300010001820100010c0185000100010001080185 +000100010001180183000100010d01810001820100018201000108018100011d01830001 +00010001 +0901810001270181000108018100012401810001820100010a01850001000100010c0181 +000182010001170183000100018201000108018100018601000100010001090183000100 +018401000100012701810001820100010801850001000100010201810001080181000101 +01810001080181000184010001000106018700010001000100011d018500010001000108 +018100018601000100010001080181000186010001000100010601810001860100010001 +00012c01810001840100010001070183000100018401000100010a018500010001000108 +018300010001180183000100018401000100010b01810001840100010001030181000117 +018100010601 +0301810001820100012d0181000182010001820100012e018100018401000100010c0183 +00010001820100011701810001820100010b018300010001090185000100010001820100 +0108018100012c01810001820100010e0183000100018201000106018700010001000100 +010a018100011f018100010a0183000100010d0183000100018401000100010801810001 +820100010101810001060181000186010001000100012a01810001840100010001090181 +0001820100010c0183000100011a018100010d018300010001820100010b018100011d01 +83000100010101 +010181000106018100018201000124018100010801810001820100010a01810001140181 +00018401000100010a018500010001000182010001070183000100018201000119018300 +0100018201000106018300010001820100010a01810001820100012c0183000100010401 +8100010101830001000186010001000100010601850001000100010b0187000100010001 +000108018100018201000115018500010001000109018700010001000100010d01810001 +0d018300010001820100013c0181000184010001000107018100018401000100010a0183 +0001000117018100018401000100010e018300010001080181000120010000 +08018100012c018100018201000182010001020181000102018100018301000100810001 +20018100018401000100010a01850001000100011a018100018401000100010901830001 +00010b01850001000100012f018300010001040181000101018100010a01810001840100 +0100010a0185000100010001080181000186010001000100012101870001000100010001 +080181000188010001000100010001040181000188010001000100010001090185000100 +010001820100012701830001000184010001000109018100018401000100010701810001 +84010001000107018100011d018300010001820100010b01830001000105018100011401 +8100010801 +810001820100018201000106018100012f01810001020181000108018100011901830001 +00010c018300010001070181000184010001000110018100010701870001000100010001 +090183000100018201000106018300010001010181000182010001230181000101018300 +010001020181000106018500010001000108018300010001840100010001080185000100 +0100010a01810001140187000100010001000108018100018401000100010d018100010f +01830001000130018100010901810001820100010c018500010001000107018100018401 +0001000115018300010001820100010a018100018201000182010001080183000100011d +0181000182010001 +0b018100012a018100010301810001070181000184010001000102018100011401810001 +08018500010001000182010001070183000100011a018500010001000109018300010001 +840100010001080181000182010001300181000108018300010001820100010a01830001 +00010a018300010001820100010a01850001000100011e01810001840100010001080183 +000100010b018700010001000100010401830001000102018300010001820100012c0183 +0001000109018300010001820100010c0183000100010a01810001190181000182010001 +820100010a018100018401000100011d018100010801 +030181000182010001820100010301810001240181000102018100010301830001000182 +01000107018100011c0183000100010c0183000100010a018100010f0181000109018300 +010001820100010801810001860100010001000109018300010001290181000186010001 +000100010801850001000100018201000108018500010001000108018500010001000182 +010001030181000115018100018401000100010801830001000108018100018601000100 +0100010b0183000100010101810001090181000125018100010601830001000182010001 +090181000186010001000100010701810001820100011901810001840100010001080181 +0001840100010001820100010801810001160181000103018100010601 +8201000109018100012a0181000184010001000106018100010201810001040181000114 +0181000182010001070185000100010001820100010701850001000100011a0183000100 +010b01830001000109018500010001000182010001030181000123018300010001080181 +000186010001000100010601890001000100010001000108018100018401000100010801 +830001000101018100011a01830001000108018100018601000100010001080181000184 +01000100010a018200010002008201000106018100012501810001090183000100018201 +00010c01810001090183000100011d0183000100010d0181000182010001050181000116 +018100010a01 +0701810001820100012a018100010a018100018401000100018401000100011f01850001 +000100010a01850001000100011a01830001000182010001060183000100018401000100 +010601850001000100010b01810001210181000106018700010001000100010801830001 +0001820100010c0185000100010001060185000100010001820100011b01810001080181 +00018401000100010a01830001000182010001080185000100010001820100010a018300 +01000104018100011d0101000501830001000182010001090183000100010a0183000100 +0182010001070181000111018100010b0183000100018401000100010801810001820100 +0102018100011a018100010401 +8100018401000100010901810001220181000105018300010001820100010c0181000182 +010001140183000100010c01830001000107018100018601000100010001170181000184 +010001000106018300010001840100010001080183000100018201000104018100012201 +83000100010f018100010c0181000184010001000105018100018401000100010c018300 +01000116018700010001000100010601850001000100010b018700010001000100010801 +8100018601000100010001080181000121018100010b0183000100010a01850001000100 +018201000107018100018201000119018300010001820100010d01830001000108018100 +01140181000103018100010701 +0801810001820100018201000129018100010a0181000182010001840100010001170181 +000107018500010001000182010001070183000100011a01850001000100010b01810001 +080181000186010001000100010401810001320185000100010001840100010001080185 +0001000100010601850001000100010a0181000186010001000100012201810001840100 +0100010601850001000100010d0187000100010001000109018500010001000105018100 +01210181000186010001000100010501850001000100010c018100018401000100010501 +83000100011101810001080181000184010001000182010001080183000100011c018100 +0182010001820100010501 +82010001840100010001060181000182010001820100011c018100010201810001080183 +000100010a0181000182010001110181000186010001000100010a018500010001000109 +01810001820100010e018100010a01830001000182010001060183000100010d01810001 +01018100018401000100011c018100010401850001000100010a01850001000100018201 +0001080183000100010a01850001000100010a01810001130183000100010d0185000100 +010001060183000100018201000122018100011e018100010b0181000182010001070183 +0001000184010001000109018100011c018300010001820100010a018100018201000108 +0181000116018100010e01 +0c0181000106018100011801810001030181000105018300010001050181000102018100 +012601850001000100010a01850001000100011701810001860100010001000106018100 +018401000100010801830001000184010001000104018100011e01830001000101018100 +010d01830001000108018700010001000100010801830001000182010001050181000123 +018900010001000100010001080181000182010001080187000100010001000182010001 +0301810001060181000182010001030181000103018100011a0183000100010201810001 +090183000100018201000109018300010001820100010501830001000182010001110181 +00010701810001840100010001820100010501810001820100011e018100018201000109 +01 +040181000184010001000106018100018201000116018100010301810001020183000100 +010501810001820100010201810001020181000102018100011701850001000100010a01 +8500010001000109018100010e0183000100010901850001000100010601810001020183 +000100010b0183000100011c018100010a01850001000100018401000100010801830001 +00010a018500010001000104018300010001010181000102018100010301810001150185 +000100010001080181000184010001000106018700010001000100010b0183000100010d +018100010301830001000101018100011501830001000103018100010101810001860100 +010001000107018100018401000100010901810001820100010201810001160181000182 +0100010c0181000108018100018201000182010001130181000103018100018401000100 +010401 +010181000106018100018201000182010001030181000113018100010301810001020181 +00010401810001820100010a01810001020181000116018100010a018500010001000107 +018100018601000100010001170185000100010001090183000100010201810001080183 +00010001070185000100010001170181000182010001010183000100010a018700010001 +0001000106018500010001000182010001030181000101018100010f0181000120018500 +01000100010201810001010183000100010a0181000186010001000100010b0181000110 +018100010401810001130181000101018100018201000109018300010001090181000184 +010001000107018100011501810001060183000100018201000182010001050183000100 +0182010001070181000111018100018201000109018100010101 +8100010301810001820100010b01810001820100010e0181000102018100010301810001 +040181000105018100018401000100018201000102018100011701810001040185000100 +0100010a0183000100011c01830001000108018300010001820100010801830001000184 +0100010001080181000106018100010f0183000100010a01810001060183000100010801 +850001000100010801830001000143018300010001010183000100018401000100010a01 +830001000101018100010901830001000101018500010001000104018100010201810001 +080181000186010001000100018201000105018500010001000107018100018401000100 +010901830001000108018100011001010082010001820100010a018100010b0183000100 +011c01820001008100010701 +81000182010001090181000184010001000101018100010b018300010001090181000102 +0183000100010201810001820100010a0181000102018300010001140183000100010a01 +850001000100010701830001000184010001000117018500010001000106018100018601 +000100010001080181000184010001000104018500010001000102018100010e01830001 +0001060181000101018100010a0185000100010001060185000100010001450181000106 +01810001080185000100010001090101000101850001000100010e018100018401000100 +01040183000100018401000100010201830001000111018100010b018300010001820100 +0107018300010001820100011b018100018201000107018100018401000100011e018100 +018201000106018100018301000100810001 +090183000100010901810001030181000184010001000108018100010d01810001080185 +000100010001260185000100010001070183000100018201000106018100011001830001 +000182010001080183000100010d01830001000106018300010001820100011101830001 +00010401850001000100010e018300010001040185000100010001100181000117018100 +010601810001220185000100010001840100010001040183000100010f01810001090181 +000106018100011201010082010001860100010001000107018300010001860100010001 +000107018100018201000109018100010f01850001000100010801810001840100010001 +08018100018401000100010201810001170183000100010901 +010183000100018201000109018300010001820100018201000101018100010701810001 +820100018401000100010301810001840100010001050183000100010801830001000183 +01000100810001150183000100010701810001840100010001090183000100011b018100 +018401000100010801830001000184010001000106018100010801810001840100010001 +0101830001000184010001000103018100010a0185000100010001040181000103018100 +01110181000117018100011f018100010201810001170185000100010001880100010001 +00010001020183000100010c018100010101830001000104018300010001820100010401 +830001000102018100010a01850001000100010c01850001000100010501830001000182 +0100011b01810001820100010a018300010001820100011e018300010001060181000184 +01000100010101 +0a01810001840100010001090181000103018300010001820100010b0181000109018100 +01050181000184010001000103018100011601830001000104018100018401000100010b +018100018201000119018500010001000106018100018601000100010001080181000184 +010001000101018100010d018100010a0181000102018100010101830001000110018100 +010201810001050181000126018100010101810001020181000112018100010201870001 +0001000100018801000100010001000101018100010b0183000100010101810001040183 +000100011001810001840100010001040185000100010001020183000100010301810001 +840100010001060181000186010001000100010a01830001000107018100011101830001 +000182010001050183000100018401000100010801810001820100011e01830001000103 +0181000182010001810100 +0401810001820100010c01820001008100010e0183000100010201810001030181000104 +018100010201810001820100010701810001020181000181010081000115018300010001 +0e018300010001070183000100010e018300010001060185000100010001090187000100 +010001000106018100010201830001000182010001030181000101018100018801000100 +010001000102018100010101810001030181000103018100018801000100010001000115 +018900010001000100010001820100010e018a0001000100010001000100810001010183 +000100010c01810001150181000102018700010001000100010a01810001820100010901 +810001010181000102018100010601830001000102018100010601810001820100010701 +830001000182010001090183000100010901830001000105018100011601810001820100 +010a018100010a018100012001010001018100010401 +810001820100010601810001840100010001820100010301810001820100018201000184 +010001000182010001050181000103018100010201810001040181000108018300010001 +080181000113018100010601810001860100010001000182010001040183000100018201 +000116018300010001820100010801850001000100010b01830001000102018300010001 +02018500010001000101018100010a018100010601830001000101018300010001190183 +000100018201000119018500010001000106018300010001030181000101018100010a01 +8100018c0100010001000100010001000102018100010c01830001000103018100010501 +830001000105018300010001020181000101018300010001060181000102018300010001 +840100010001030183000100010901830001000182010001060181000184010001000107 +01830001000111018100010a01830001000108018100018401000100011b018100018201 +000108018100018201000182010001 +08018100010c018100011301810001020181000103018100010201810001040181000184 +01000100010701810001820100018201000115018100018401000100010e018100010601 +810001820100010f018100010601810001020183000100010a0181000184010001000106 +018100010a0181000102018900010001000100010001880100010001000100010c018300 +0100010101850001000100018a01000100010001000100010c0183000100010c01810001 +04018900010001000100010001860100010001000101018100010a018100010f01810001 +0101850001000100010a018100010d018300010001030181000104018100010301810001 +840100010001010181000102018100010c018100010e0185000100010001070181000184 +010001000118018100018401000100010801830001000182010001080183000100010201 +81000117018300010001820100018201000102018100010001 +820100018201000182010001060183000100018201000103018100018201000184010001 +000182010001820100018201000102018100010201810001030183000100018401000100 +010a0183000100010601810001110101000a018100018601000100010001820100010201 +850001000100011301810001030183000100010201810001080185000100010001060183 +000100018201000106018500010001000102018100011201810001010102008201000182 +010001030181000113018900010001000100010001040183000100010501810001020183 +000100010101830001000104018100010101830001000103018100010401810001010181 +000117018100018401000100010a01850001000100010c01830001000102018100010801 +8100010601810001840100010001070181000186010001000100010c0185000100010001 +070183000100011101810001820100010501830001000182010001070181000182010001 +820100011a01810001820100010b010100820100010001 +070183000100018201000109018100011301810001140181000186010001000100010301 +8300010001020181000118018100018401000100010b0181000109018100010f01810001 +820100010a01830001000182010001040187000100010001000108018100010901810001 +010185000100010001020181000101018500010001000101010100130181000101018300 +0100010101830001000102018100010c0181000105018100010601830001000101018300 +010001820100010701810001020183000100010101810001060183000100010301810001 +820100010c01850001000100010101810001070185000100010001050181000101018100 +010201850001000100010401830001000182010001010181000103018300010001840100 +010001060181000186010001000100010a0183000100010a018100011001810001820100 +01070183000100010b0183000100010201810001170183000100018401000100010701 +040181000109018300010001820100010201810001040181000182010001020181000182 +0100010201810001840100010001820100018201000104018100010a0181000104018100 +0118018100010c0185000100010001040181000184010001000110018100010801850001 +00010001060183000100010d018100010201810001040183000100010101810001060181 +000101018100010101810001020181000101018100010101810001010189000100010001 +000100010201810001030181000108018500010001000106018500010001000103018100 +01860100010001000103018300010001020187000100010001000101018100010c018100 +010f01850001000100010f018100010d0181000102018100010101810001060183000100 +010701810001020181000109018300010001820100010901830001000109018100018401 +000100011b018100010a018100018401000100011c010100010181000109018300010001 +82010001810100 +830001000106018100018201000108018100010301810001060181000105018100010801 +8100010b0181000184010001000105018100010201010013018100010201830001000102 +018300010001070183000100010701810001820100010a01870001000100010001820100 +010601850001000100010801830001000184010001000101018100010201830001000108 +018100010201810001010181000101018100010a0181000101018100010e018100010101 +81000101018100018401000100010a018b00010001000100010001000104018700010001 +00010001010181000106018b0001000100010001000100010f01850001000100010c0181 +000184010001000103018100010201870001000100010001070181000106018300010001 +090183000100010201810001030185000100010001090185000100010001820100010401 +81000186010001000100010b018100010b01810001090181000184010001000182010001 +070181000182010001820100010101810001170183000100010d01 +050181000182010001050181000182010001820100010201810001040181000182010001 +020181000182010001050183000100010201810001050183000100010701810001820100 +010201810001820100011101810001010181000104018100010401830001000182010001 +0601810001820100011a0183000100018201000108018500010001000104018700010001 +000100010401810001820100010101810001040181000101018100010501810001880100 +010001000100010501810001030181000184010001000101018300010001010181000182 +010001030181000105018100018201000101018100010a01810001050181000101018100 +018601000100010001030183000100018601000100010001010183000100010a01830001 +00010201810001010181000106018100010e018100010101830001000101018100018401 +000100010401870001000100010001040181000102018100018201000104018100018401 +000100010b0183000100010a0185000100010001140183000100018401000100010a0181 +0001820100011e0101000a018100018401000100010501 +82010001820100010501810001820100010f018300010001030181000107018100010501 +81000102018100010a0183000100010501810001020101000a0181000106018100010901 +830001000106018100018401000100011501810001010185000100010001080183000100 +018201000103018100018401000100010801830001000182010001010181000101018100 +018201000105018300010001040181000103018100010301810001040181000101018100 +0101018100010c0181000105018100010401810001010189000100010001000100010601 +810001050185000100010001830100010081000182010001110183000100010501810001 +020181000101018100010701810001840100010001840100010001070183000100010601 +8100010a0181000182010001840100010001820100010101810001840100010001040183 +00010001820100010901850001000100018201000118018100010a018500010001000108 +018100018401000100011b01810001820100010b0183000100010001 +0601810001820100010801810001820100018401000100010f0183000100010201810001 +8201000109018100018401000100010d0181000103018100010101810001820100010a01 +8100010501810001040185000100010001090183000100010c0181000182010001070187 +000100010001000106018300010001080183000100018201000103018100018601000100 +010001040185000100010001010183000100010401830001000103018100010101830001 +00010201810001090183000100010601830001000103018100018c010001000100010001 +000100010101810001860100010001000101018700010001000100010401890001000100 +01000100010f0181000105018100010a0181000101018100010101810001090183000100 +018201000104018300010001040185000100010001020181000104010100020181000109 +018300010001820100010401850001000100010c018300010001820100010f0181000101 +018100010201830001000108018300010001820100010801810001030181000105018100 +018201000102018100010701810001820100018401000100010601 +010183000100010901810001820100010801810001820100010301810001840100010001 +0501810001820100010501850001000100010a0183000100018401000100010201810001 +0f0181000101018100010201820001008100010101810001820100010801810001840100 +01000105018100010e018500010001000104018300010001860100010001000106018500 +010001000106018100010b01830001000103018300010001040181000107018100010101 +810001040181000103018300010001050181000182010001070181000101018100010601 +870001000100010001080181000105018100018101000100860100010001000104018d00 +0100010001000100010001000111018100010e0183000100011201830001000106018100 +010201830001000105018100018401000100010b01830001000107018500010001000182 +0100010c0181000110018100010501830001000182010001070181000184010001000104 +018100010501810001060181000182010001820100018201000182010001080185000100 +010001 +0a0183000100010601810001840100010001060181000101018100010201810001840100 +010001050181000182010001060181000102018100018201000107018300010001060183 +000100018401000100010f01810001040181000186010001000100010601810001820100 +0182010001060183000100018101008100010401850001000100010d0183000100010e01 +82000100810001020183000100010301830001000106018b000100010001000100010001 +050181000102018100010301830001000114018300010001860100010001000101018100 +010301810001860100010001000101018900010001000100010001020102008801000100 +01000100010a018100010101810001820100010e01830001000104018300010001090189 +000100010001000100018401000100010101810001880100010001000100010401830001 +0001080183000100018401000100010601810001840100010001090183000100010f0181 +00010201850001000100018401000100010a0181000184010001000108018100010b0181 +00018401000100010d0181000107018100010201 +810001820100018401000100010601810001820100010b01810001820100010301810001 +050183000100010701810001820100010401810001020181000186010001000100010601 +8100010a0185000100010001060181000101018100018401000100010901850001000100 +010801850001000100010701810001820100010a01850001000100018201000105018100 +018801000100010001000106010100040181000106018500010001000103018300010001 +050181000103018100010a01810001120181000108018100010101870001000100010001 +040181000105018200010004000b018700010001000100010c0185000100010001040181 +000109010100060181000182010001040181000101018100010201810001060185000100 +0100018201000102018200010083000100010b0183000100018201000106018300010001 +840100010001050183000100010201810001840100010001020181000101018100010801 +8100010f0185000100010001090181000182010001080185000100010001820100010601 +83000100010701 +0b0181000182010001050181000184010001000182010001060181000182010001840100 +0100010501810001840100010001820100010601810001820100010e0181000101018300 +010001820100018201000101018100010601810001010181000107018500010001000182 +010001080181000101018300010001060183000100010701810001860100010001000108 +01850001000100010b018500010001000182010001010181000101018500010001000104 +018300010001010181000105018100010301810001840100010001160185000100010001 +080185000100010001080183000100010101850001000100010101810001030101008801 +000100010001000101018100010401830001000110018100010601810001040189000100 +010001000100010501810001010181000102018100010101850001000100010901810001 +07018100018401000100010b018500010001000109018100018401000100010301810001 +100183000100018201000101018100018201000184010001000182010001100181000184 +010001000182010001850100010001000100070181000182010001050181000102018100 +010001 +030181000184010001000109018100010b01810001820100010d01810001820100010b01 +8100010a0183000100018401000100011801830001000102018300010001820100010d01 +8300010001820100010501850001000100010501850001000100010b0185000100010001 +080187000100010001000104018100010201810001010183000100010601810001030181 +000101018b00010001000100010001000106018100011a01830001000188010001000100 +010001010187000100010001000105018100010201850001000100018101000100840100 +0100010301850001000100010a0181000119018100010201820001000100020182000100 +810001020181000101018100010101810001040181000104018300010001010181000101 +018100010901850001000100010c01850001000100010901810001070181000184010001 +000182010001090183000100018201000107018100018401000100010301810001140181 +00018201000182010001060183000100010801 +82010001090181000184010001000106018300010001820100010e018100018201000107 +01810001020181000182010001010181000186010001000100010a018100010301810001 +820100010101810001020181000106018300010001090187000100010001000182010001 +0101810001020101000701810001820100010b018700010001000100010b018300010001 +0d0183000100010101830001000102018500010001000101018300010001010181000102 +0181000102018100011f0189000100010001000100010401850001000100010101810001 +060102008101000100060181000101010100840100010001070101008601000100010001 +1d0181000108018100010401810001020181000101018500010001000106018100010701 +810001820100018601000100010001090185000100010001820100010901870001000100 +010001050181000182010001060101008401000100010c018100010d0181000105018100 +018401000100018201000104010100080181000182010001820100010201830001000182 +010001810100 +010181000182010001840100010001090183000100010901810001820100018401000100 +01820100010201810001820100010201810001020181000104018100010c018300010001 +820100010301810001020183000100010201810001050181000107018500010001000105 +018700010001000100010801850001000100010a01850001000100010e01810001820100 +011001810001020181000104018100010501810001030181000102018100010201830001 +000119018500010001000107018100018601000100010001010181000103018300010001 +820100010201810001020189000100010001000100010601870001000100010001030181 +000102018500010001000116018100010201810001820100010101810001020181000101 +018100010201810001030181000182010001010185000100010001020181000182010001 +82010001060183000100018401000100010901850001000100010c018100010401810001 +84010001000182010001010181000102018100018601000100010001820100010a018300 +01000184010001000101018100010b01850001000100018401000100010b018100010901 + +8100010e0183000100010801810001820100010601810001820100018401000100010501 +81000102018100010201810001040183000100018401000100010a018100018201000182 +010001020183000100018601000100010001050181000182010001040185000100010001 +0901870001000100010001080181000102018100010b0189000100010001000100010601 +830001000104018100010101820001008100010601810001010183000100010301810001 +040181000101018100012401870001000100010001080187000100010001000108018100 +01840100010001860100010001000181010001008201000109018300010001820100011e +018100010701810001060181000106018300010001010181000184010001000103018100 +010101810001040183000100018201000108018300010001820100010901850001000100 +018201000107018100010901810001010181000184010001000107018100018401000100 +010e0183000100018201000107018100018201000105018100018401000100010a018100 +0182010001 +080183000100018201000108018100018201000109018100010a01810001820100010201 +8100010201810001020183000100012b0183000100018201000101018100018201000106 +018300010001840100010001070181000186010001000100010901850001000100018201 +00010a01810001080183000100010301830001000182010001020181000101018d000100 +010001000100010001000110018100011601830001000101018100010101810001040185 +000100010001070181000183010001008200010082000100010004018300010001040187 +0001000100010001080185000100010001180181000106018100010b0183000100010401 +810001060183000100010101810001010181000109018500010001000109018500010001 +00010c018300010001820100010201850001000100018601000100010001070181000184 +010001000182010001070181000106018100010701810001820100018201000101018100 +01840100010001090183000100010a01 +81000182010001820100010b018100018201000103018300010001820100018201000103 +018100010301830001000105018100010201810001020181000106018100018401000100 +010901810001010181000184010001000184010001000102010200040181000101018100 +0104018100018401000100010b0183000100010901810001820100018401000100010801 +8300010001040181000108018300010001070101000301850001000100010e0181000101 +018500010001000116018700010001000100010501850001000100018401000100010101 +810001030183000100010701810001010181000101018200010089000100010001000100 +010401810001010187000100010001000106018500010001000110018100010a01810001 +030181000101018100010301810001040185000100010001040181000101018100010101 +810001820100010a0181000186010001000100010701850001000100010c018100010901 +810001020183000100018401000100010701810001840100010001030183000100010501 +810001840100010001820100010301810001070181000184010001000108018100010201 +8100010001 +090183000100018201000182010001050181000109018100018201000102018100010501 +810001820100010201810001020181000103018100018201000107018300010001840100 +01000110018100010201810001820100010401850001000100010b018500010001000104 +01870001000100010001820100010b018100010101810001060181000103018300010001 +820100010501810001820100010401830001000103018900010001000100010001020185 +0001000100010f018100011201850001000100010801810001010181000101018100010d +018100010101810001050181000103018500010001000109018100018101000100820100 +010a018100010b018100010c018100010101810001010181000103018300010001090181 +00010101810001820100010501850001000100010d018100018401000100010601810001 +8401000100010201810001070181000101018100010c0181000182010001040181000182 +010001840100010001120181000102018100018201000182010001080183000100018201 +000102018100010301 +010183000100018201000108018100018201000182010001050181000182010001060181 +000102018100018201000105018100011501810001090181000101018100018501000100 +0100830001000181010081000182010001020183000100010c01850001000100010a0181 +000108018100010701810001030181000104018300010001010181000111018100018201 +000105018100010a01810001050181000101018100011601870001000100010001050181 +000101018100010201830001000119018100010101810001010181000109018500010001 +00010a018700010001000100010e01810001820100010c01810001010181000102018300 +010001030181000186010001000100010201850001000100010101830001000109018500 +010001000102018100010601830001000184010001000104018100010201810001840100 +0100010201830001000186010001000100010a0183000100018401000100010501810001 +05018100018201000102018100010d018100018201000112010000 +0a0183000100018201000108018100018201000106018100018201000184010001000105 +018300010001030183000100018401000100010e01850001000100018201000102018500 +010001000106010100820100018401000100010901850001000100010901850001000100 +018201000182010001860100010001000101018100010301810001030181000102018700 +010001000100011301810001020187000100010001000101018100018801000100010001 +00010101810001010181000101018100010b018100010801810001090181000101018300 +0100011a0185000100010001030181000106018100010e0183000100010c018300010001 +050181000116018100010101810001040181000108018300010001050181000112018100 +01040183000100010b018300010001070183000100018201000102018100010701830001 +000184010001000107018100018401000100010d01810001020181000184010001000182 +01000108018100018401000100010201830001000101018100010101 +010181000182010001820100010801810001820100018201000108018200010081000108 +018100018201000105018100010901810001060183000100010501810001010181000185 +01000100010084000100010002000a0185000100010001820100010a0181000182010001 +070181000109018100010601850001000100018801000100010001000122018100018201 +0001050183000100010101810001010183000100010c0181000105018100010701830001 +000122018100010301890001000100010001000117018100010201830001000111018100 +010501810001060183000100010101810001010183000100010201870001000100010001 +020187000100010001000102018100011d018100010f0181000107018100018601000100 +010001820100010901810001820100010a01810001860100010001000182010001020181 +00010b018300010001820100011201810001 +810001090183000100018201000108018100018401000100010301810001010181000102 +0181000107018100010201810001820100018401000100010d0181000182010001010181 +000102018200010081000108018200010083000100018201000108018100018801000100 +010001000107018300010001030185000100010001820100010401810001010183000100 +010601810001010181000182010001100101000201810001030181000106018300010001 +030181000101018100010301810001080183000100010701850001000100010b01810001 +1e0183000100010501850001000100010f018100010a0181000124018100010101810001 +0301810001820100010a0183000100012601830001000102018100010801810001840100 +010001020181000182010001040183000100018201000107018300010001840100010001 +0d0181000102018100018201000182010001820100010701810001820100010401830001 +0001820100010301 +050181000182010001080181000184010001000109018200010081000103018100018401 +0001000184010001000102018100010e0183000100018401000100010701830001000104 +018300010001830100010087000100010001000102018100018601000100010001070181 +000101018100010201810001050181000108018100010201830001000106018300010001 +01018100011a018500010001000102018500010001000105018100010101810001010181 +00010101810001200181000103018100011c01810001030102008201000103018100010c +018100011101810001070181000101018100010301830001000107018100010201810001 +010183000100010401870001000100010001070181000112018100018201000114018300 +01000102018100010601810001820100010201810001090183000100010d018100010201 +830001000182010001080181000105018300010001030181000102018100010a01810001 +0001 +8201000182010001050181000182010001820100010a0181000182010001030101008201 +000182010001080183000100010201810001840100010001020181000106018100010201 +830001000182010001060181000184010001000104018100018201000101018100010901 +830001000182010001010181000108018100010101810001880100010001000100010601 +8100010201830001000108018700010001000100010d0181000106018300010001030187 +000100010001000101018100010101810001020181000107018100011501810001030181 +000114018100010501870001000100010001050183000100011b01810001260181000102 +0181000103018100010a0181000102018100010701810001090181000101018100010401 +810001820100011401850001000100010201010005018300010001820100010701830001 +000182010001110181000184010001000182010001820100018401000100010301810001 +0e018100010401 +060181000182010001080181000182010001840100010001050181000181010081000182 +010001020181000103018100010401810001020181000102018100010301810001820100 +010201810001090185000100010001020181000102018300010001840100010001090181 +00010d018100010101810001020181000105018100010401830001000102018100010301 +8300010001840100010001060183000100010e01810001820100010d0183000100010101 +810001020181000101018100010701830001000119018100010a01810001090185000100 +01000102018100018601000100010001010102002f018100011301810001020183000100 +010101870001000100010001860100010001000103018100011201850001000100018201 +000101018100011001810001090183000100010c01830001000102018100010501810001 +850100010001008100010201830001000102018100010301810001080183000100018201 +000104018100010201810001020181000101010000 +010181000182010001050181000182010001820100010801830001000182010001030181 +000108018100010501810001020181000105018100010d01850001000100018201000103 +018100018201000184010001000107018700010001000100018201000106018100010101 +810001820100010a0185000100010001020183000100010601850001000100010a018200 +0100010019018b0001000100010001000100010401810001010181000101018100012c01 +810001090185000100010001090182000100830001000101010100090181000137018500 +010001000101018100010401850001000100010301810001020183000100011101830001 +000104018100010201830001000112018500010001000184010001000184010001000102 +01810001820100010701810001020183000100010a018100010401810001050181000182 +010001820100010a01810001040181000102018100010301810001 +0701810001820100010501810001820100018401000100010b0181000103018100018201 +000184010001000182010001020181000102018300010001020181000104018500010001 +00010a018700010001000100018201000101010100850100010001008100010601810001 +020183000100010801810001080183000100010801810001840100010001080187000100 +010001000106018300010001080181000104018300010001010183000100010801810001 +010181000101018100010d01810001110181000101018100010a01870001000100010001 +0701860001000100010083000100018601000100010001810100020001018100010a0181 +0001820100011d0181000107018100010701810001010183000100010601830001000101 +01810001020183000100010c018100010401820001008700010001000100010201830001 +000102018100010601810001040181000104018100010a01830001000182010001090181 +000184010001000105018300010001820100018401000100018201000105018100018401 +000100010c0181000102018100010301 +0201810001820100010501810001820100010b0183000100018301000100830001000101 +0181000103018100010401810001820100010f0181000105018300010001860100010001 +000104018100018501000100010081000103018100018201000104018100012101870001 +000100010001060183000100018401000100010501810001860100010001000103018100 +010f01830001000103018100018601000100010001010181000101018100010101830001 +000119018100010901810001040181000105018900010001000100010001030185000100 +010001870100010001000100850001000100010201830001000101018100010a01010005 +018100010d01810001100183000100010101810001030183000100010601810001010181 +000103018100010b0181000181010001000701870001000100010001820100010d018300 +0100011b0183000100018201000109018100010301830001000108018300010001820100 +0108018300010001040181000102018100010601 +8100010601810001820100010b0183000100010501810001070183000100010501810001 +050183000100010201810001820100010501810001820100010b01830001000186010001 +00010001020181000184010001000104018100011a018100018201000105018300010001 +040183000100010801810001010181000108018500010001000106018100010401810001 +03018100018201000105018300010001010181000101018100010d018100010501810001 +0901810001030181000102018300010001030183000100010d0183000100010101880001 +0001000100010087000100010001000107018300010001010101000a018100010d018100 +010e01810001030181000101018100010501830001000182010001010181000102018100 +01820100010b01830001000102018500010001000106010100880100010001000100010b +018100018401000100010f01850001000100010501830001000182010001820100010201 +83000100010201810001840100010001820100010501810001820100010e018100010601 +82000100 +820100018201000182010001080183000100018201000182010001820100018401000100 +010501810001040181000102018100010201810001820100010201830001000182010001 +010181000101018100010901810001840100010001090183000100010201810001010181 +000124018500010001000104018300010001080183000100010101810001040185000100 +010001060181000103018100010401830001000182010001030185000100010001010183 +000100010101810001030181000115018100010101830001000101018300010001040187 +00010001000100010b018700010001000100010101830001000102018100010201810001 +0401870001000100010001080183000100010101810001090181000107018100010d0183 +0001000101018100010201830001000105018100018701000100010001008100010c0102 +00820100010801810001820100010801810001010181000102018300010001820100011f +018100010a01830001000184010001000105018100018401000100010801810001840100 +010001020181000107018100010401 +0c0183000100018201000182010001820100010801830001000182010001040181000102 +018100018401000100010501810001020181000101018100010701010001018300010001 +090183000100018201000101018100018401000100018201000118018100010801830001 +000104018100010601870001000100010001060185000100010001040183000100011001 +810001020183000100010101810001030181000103018100010101830001000119018500 +010001000103018300010001820100010b01870001000100010001070181000102010300 +81010084000100010001000a018900010001000100010001030182000100830001000101 +018100011701810001050181000101018100010401850001000100010901810001080181 +000104018100018401000100018201000106018700010001000100010401810001090181 +000101018100010501810001130181000184010001000184010001000184010001000184 +010001000182010001840100010001030183000100018201000107018100010101810001 +820100018401000100018201000182010001 +040181000184010001000182010001820100010b0183000100011c018100010701810001 +050183000100010e01810001020181000101018100018201000106018100011b01850001 +0001000103018100018201000101018100010c0183000100018201000109018100018401 +0001000101018100010d0181000101018300010001010183000100010101830001000101 +018100010101810001030181000109018700010001000100010101890001000100010001 +000182010001070187000100010001000105018900010001000100010001010183000100 +018201000102018300010001020183000100010e01020082010001090183000100010101 +830001000111018700010001000100010101830001000108018100010201810001090181 +00018401000100010b018500010001000106018200010002008201000103018100018201 +000102018100010b01810001190181000102018100010a018100010a0181000182010001 +820100010e018100010201 +830001000101018300010001820100010801810001840100010001080181000184010001 +000101018100018201000184010001000184010001000102018100018401000100010201 +830001000184010001000103018100018401000100010201810001040183000100010401 +810001840100010001010181000112018300010001820100010101810001030181000102 +018300010001010181000102018700010001000100010a01830001000186010001000100 +011101810001010181000105018100010101810001030181000101018100010901830001 +000101018100010301850001000100010601810001020181000186010001000100010701 +850001000100010701850001000100010101820001000400810100810001040187000100 +01000100010101810001010181000103010100860100010001000102018100010b018100 +0106018100010901830001000101018100018a0100010001000100010001120101008201 +000184010001000108018300010001820100010301810001820100010101810001010181 +000184010001000182010001070181000111018300010001050181000101018100018201 +000184010001000184010001000182010001840100010001820100010701810001010181 +00018201000184010001000103018100010001 +810001820100010801810001840100010001090183000100018201000105018100018201 +0001820100010a0181000102018100010201810001060183000100011201810001020183 +000100011b018100010601020081010087000100010001000103018100010f0183000100 +010101810001130181000108018100010301830001000101018100010101830001000101 +018100010101810001010185000100010001070183000100010501810001010184000100 +010001000701890001000100010001000101018f00010001000100010001000100010001 +010183000100018401000100018101008900010001000100010001050181000101018700 +010001000100010101810001040187000100010001000102018100010501810001040181 +000184010001000184010001000103018300010001040181000103018100010801810001 +020185000100010001060183000100018201000108018500010001000182010001140181 +000118018100010201820001008300010001020183000100010301810001820100010701 +8100018201000116010000 +050181000182010001820100010b01830001000108018300010001040181000102018100 +018201000184010001000107018100010201810001010181000104018100011201810001 +040183000100018201000116018400010001008100010101830001000101018100010201 +830001000101018300010001010181000182010001010181000119018100010801810001 +01018d000100010001000100010001000103018100010101810001070189000100010001 +000100010501870001000100010001020183000100010301830001000103018700010001 +000100010701810001010185000100010001010183000100010101010001010100820100 +01030185000100010001070189000100010001000100010a018100010101830001000115 +018100010501830001000101018100018401000100010d01810001820100010201830001 +000182010001030181000186010001000100010901810001050181000105018300010001 +0c0185000100010001110181000183010001008100018401000100010501810001840100 +010001050181000101018100010501810001030183000100010101 +820100018201000108018100018401000100018201000106018300010001820100010501 +810001820100018201000108018300010001840100010001020181000181010081000119 +0181000102018300010001020181000101018100010b0185000100010001820100010801 +850001000100010201810001030181000103018100011a01810001120181000101018100 +010c01810001010181000101018100018401000100010901810001010181000102018300 +010001880100010001000100018201000103018300010001070187000100010001000101 +010100850100010001008400010001000100010181000105018700010001000100010101 +8800010001000100010081000105010400820100010b0183000100018201000103018500 +010001000101018100010201830001000105018100012501830001000106018100018201 +00010a0181000101018100018201000129018100010d0181000108018200010085000100 +0100010101810001820100010201810001820100010201810001 +060181000182010001820100010b01830001000105018100010201810001030101000301 +8100018401000100010501810001020181000106018100010401850001000100010b0181 +00018201000104018100010f018100010401870001000100010001860100010001000103 +01810001040187000100010001000124018100010801810001010181000101018100018a +010001000100010001000101018100010101850001000100010201810001010181000101 +018500010001000103010200810100830001000103018700010001000100010301870001 +0001000100010b0185000100010001840100010001010185000100010001010181000107 +018500010001000105018200010001000401830001000186010001000100010c01810001 +07018100010101830001000102018500010001000103018100010e018300010001120181 +000102018100010401810001030183000100010201810001010181000182010001130181 +00010e018100010201010084010001000182010001820100010201810001840100010001 +0901810001050181000105018100010201 +04018100010b018300010001820100010801810001020181000106018100018201000184 +0100010001050181000102018100010201810001040101000d018100010d018300010001 +850100010001008100010801810001010185000100010001840100010001080181000101 +018500010001000122018500010001000109018100018401000100010201810001090183 +000100010101830001000104018500010001000107018500010001000182010001880100 +010001000100010601850001000100010901880001000100010001008600010001000100 +810001810100010004018300010001010183000100010901860001000100010081000101 +010100810100810001010181000107018700010001000100010801830001000101018100 +010301810001010181000186010001000100010101810001050181000122018300010001 +0a0183000100018401000100010201810001060181000117018100010101810001020181 +000113018100010201810001030181000184010001000182010001820100010301810001 + +830001000106018100018401000100010801810001840100010001060183000100018401 +000100010901810001840100010001820100010201810001010181000183010001008100 +011401010082010001840100010001080181000104018300010001820100010401830001 +000101018500010001000103010100820100010401830001000118018100010a01820001 +008100010101810001010181000102018100010101890001000100010001000101018300 +010001050101000301810001810100810001840100010001010187000100010001000102 +01010001018700010001000100010901850001000100010e018200010081000101010400 +820100010601890001000100010001000107018200010003008101008100010101850001 +000100010901830001000102018100010301810001010183000100010101810001060185 +0001000100010b0181000126018300010001820100010101810001820100018201000101 +018100010201810001160181000104018200010081000182010001010181000182010001 +82010001020181000105018100010101810001040181000108018100010301 +050181000182010001020181000105018100018201000108018300010001080181000101 +0181000184010001000102018100010201810001820100010101810001820100011a0181 +000109018700010001000100018401000100010501820001000100840100010001820100 +0109018100010201830001000103018100010e018100010a018100010201010008018100 +010301810001010183000100010701810001010187000100010001000188010001000100 +010001030185000100010001840100010001010103000f01850001000100010501810001 +030182000100050082010001020185000100010001030183000100010b01850001000100 +010101010007018500010001000104018700010001000100010401870001000100010001 +010181000103018300010001010185000100010001840100010001080181000102018100 +012601810001020181000102018100010101810001020181000184010001000116018500 +0100010001050183000100010b0181000182010001080181000105018100018201000103 +0182000100 +8401000100010b018100018201000105018100018401000100010e018100010101810001 +04018100010201810001040181000105018100010f018100010501810001840100010001 +86010001000100018201000101010200030182000100010008018100010e018300010001 +010185000100010001060181000109018100010201810001030183000100010101020081 +010083000100010201810001010181000103018700010001000100010101810001010181 +0001010183000100018801000100010001000105018400010001000100820100010a0187 +000100010001000103018100010301810001010183000100010401810001010182000100 +02008501000100010081000105018b000100010001000100010001050181000101010300 +010101008201000103018100010101810001050183000100010501830001000102018300 +01000103018100010501810001050181000105018100018201000101018100011e010100 +030181000102018300010001810100820001000200060181000110018100010701810001 +830100010081000107018100010801810001820100010801810001820100010201810001 +820100010101 +030181000182010001840100010001030181000184010001000182010001140101000201 +830001000182010001840100010001040181000102018100012001810001030181000182 +010001010181000101018100018101008100010301810001020183000100011401810001 +1b0181000101018100010101050003018100010701810001010185000100010001030183 +000100010501810001020181000108018100018201000182010001050181000101018700 +010001000100010301810001030181000101018300010001050184000100010001008101 +0001008101000200860100010001000186010001000100010c0185000100010001070101 +008101000300080187000100010001000103018300010001030183000100010201890001 +000100010001000104018100010101850001000100018201000102018100010901810001 +1901830001000184010001000182010001820100010701830001000104018100010c0181 +000101018300010001020181000102018100011501850001000100018201000105018100 +010501810001 +01018100010801810001820100010a018100018401000100010201810001820100018201 +000106018100010a01830001000102018100010201850001000100010601810001120183 +000100010401810001010185000100010001010183000100010201830001000112018300 +010001020183000100010b01850001000100018201000101018700010001000100010201 +810001050181000101018100010201830001000105018300010001030185000100010001 +0101830001000104018300010001010181000102018b0001000100010001000100010901 +810001010183000100010301890001000100010001000104010100080104000101810001 +040185000100010001820100010901860001000100010081000106018300010001010181 +000101018100010401810001050185000100010001010183000100010801810001020181 +000182010001050189000100010001000100010f018100010e0181000108010100840100 +010001820100010101810001830100010081000110018100010601810001030182000100 +830001000184010001000103018100010201810001060183000100018201000182010001 +0201810001820100010201 +07018100018201000105018300010001820100010d018100010701810001040181000184 +010001000182010001020183000100010201830001000115018100010501810001040101 +008301000100020004018500010001000182010001170181000101018100010701870001 +0001000100010401850001000100010b0185000100010001070181000101018700010001 +000100010101850001000100010101810001010181000101010100840100010001050187 +000100010001000104018100010301870001000100010001050185000100010001050183 +000100010601040084010001000104018900010001000100010001050183000100018401 +000100010801030083010001000100060101000201830001000103018300010001050181 +00010301870001000100010001860100010001000101018200010083000100010a018500 +01000100011201810001070187000100010001000102018100010e018100010401810001 +0a0183000100018401000100018201000102018100010801810001020181000102018100 +0101018100010a018100018201000102018100010001 +810001840100010001060181000115018100011101810001040181000182010001040183 +000100010201810001140181000102018100010101830001000105018100010301810001 +010101001501810001060181000101018500010001000105018300010001840100010001 +090187000100010001000101018100018401000100010101810001020181000101018100 +010301810001030183000100010101830001000106018500010001000102018500010001 +000103018100010101830001000105018700010001000100010301830001000107018300 +010001020181000106010700070185000100010001080187000100010001000104018100 +010301010002018100010801810001050185000100010001010185000100010001010183 +000100010f0187000100010001000109018700010001000100010f010100020181000182 +0100010201810001020185000100010001820100010601010009018100010c0181000184 +01000100010e01810001080181000184010001000108018100018301000100 +080183000100010e01830001000103018300010001820100018201000104018100010101 +810001030183000100010501830001000104018100010101810001190183000100010201 +82000100010001018100010401810001010181000109018100010a018100010201850001 +0001000182010001020183000100010a0187000100010001000104010200840100010001 +010181000101018100018201000102018100010101890001000100010001000103018100 +0102018200010083000100010a0187000100010001000103018900010001000100010001 +030183000100010101810001030183000100010101850001000100018201000101018700 +010001000100010301810001880100010001000100010501870001000100010001080189 +000100010001000100010701850001000100010601830001000182010001020181000105 +018100010301830001000182010001010181000182010001040181000102018100018201 +00010c018100018601000100010001090181000104018200010081000104018300010001 +020185000100010001020183000100018201000107018300010001840100010001050101 +000801810001050181000103018100010201810001820100018401000100010901 +820100018401000100010801810001030183000100010501810001820100018401000100 +010601810001030181000182010001060181000102018300010001820100010201830001 +000101018100011201810001820100010101010082010001010183000100018201000103 +0181000103018100010a0187000100010001000102018100010101810001040181000107 +018700010001000100010501810001840100010001030181000101018500010001000105 +0183000100010b0185000100010001820100010301810001030183000100010101850001 +000100010101850001000100010501830001000101018100010301810001030187000100 +010001000106018300010001010181000103018100010201850001000100010301870001 +000100010001050187000100010001000106018700010001000100010901820001008300 +010001020181000101018100010101810001840100010001030185000100010001820100 +01010183000100018801000100010001000106018700010001000100010d018100010401 +810001080181000103018100010201830001000106018100011301810001020181000182 +010001820100010501810001100181000105018100010201810001820100018201000181 +0100 +030181000105018100018201000102018100010301810001840100010001820100010201 +810001050181000106018100018401000100018401000100018401000100010201810001 +02018100011c01810001820100010101810001840100010001040102000a018100018601 +000100010001060185000100010001820100010101830001000103018500010001000103 +018100010101850001000100010201870001000100010001810100010005010100010181 +000103018d00010001000100010001000100010301810001010101008601000100010001 +030181000101018700010001000100010101830001000107018100010101890001000100 +010001000107018500010001000104018100010101830001000101018300010001040183 +000100010701870001000100010001050184000100010083000100010301810001010187 +000100010001000105018300010001010181000101018500010001000102018300010001 +03018200010001000501820001008d000100010001000100010001000106018100018401 +000100011001870001000100010001820100010501810001010185000100010001040181 +000104018100010701810001030183000100010201810001130181000182010001050181 +00010201810001050181000182010001 +010181000102018100010501810001820100010501810001820100018401000100018201 +000116018300010001820100010401810001070181000103018100011801810001820100 +018201000103018300010001030187000100010001000108018500010001000107018300 +010001030181000109018100010101810001020185000100010001090102008201000107 +018300010001010183000100010101830001000101018300010001010181000108018300 +010001010187000100010001000107018300010001010185000100010001030181000103 +018700010001000100010601830001000101018100010101830001000101010100820100 +010501890001000100010001000105018100010101830001000104018600010001000100 +810001820100010501830001000105018100010101810001050185000100010001840100 +010001010101000201810001010181000182010001030185000100010001020187000100 +010001000104018700010001000100010501810001080183000100010301810001070181 +000106018300010001090183000100010501810001160181000105018100010201810001 +030183000100010501 +0a0181000105018300010001820100010a01830001000103018100010301810001030181 +000182010001070183000100010201830001000117018100010501810001840100010001 +01018200010082000100010002018300010001060189000100010001000100010b018100 +010301830001000103018d00010001000100010001000100018201000107018600010001 +000100830001000104018500010001000103018100010301810001030181000103018100 +010101810001860100010001000101018700010001000100010101930001000100010001 +000100010001000100010001030181000101018300010001070185000100010001040181 +000101018100010301810001040187000100010001000107018500010001000101018100 +010301860001000100010081000103018100010101870001000100010001090181000101 +018500010001000103018300010001040101000401870001000100010001080185000100 +010001040183000100018201000106018100018201000101018500010001000182010001 +030181000183010001000100010181000186010001000100018101008100018201000182 +010001040181000184010001000184010001000103018100011501810001820100010201 +810001020181000182010001820100010501 +050181000107018100018201000108018100010d018100010e0185000100010001050181 +0001040183000100010b0183000100010701810001010101000101020001010300020181 +000104018300010001820100010a01890001000100010001000102018300010001820100 +018201000101018700010001000100010801870001000100010001070185000100010001 +820100010401830001000101018900010001000100010001010183000100010101810001 +01018100018201000102018100018e0100010001000100010001000100010d0183000100 +01090185000100010001060183000100010101870001000100010001010101000a018700 +010001000100010501890001000100010001000102018100018101008300010001010181 +000105018300010001010185000100010001010181000105018300010001030183000100 +018601000100010001820100010501830001000184010001000106018700010001000100 +01020185000100010001060181000106018100010b018300010001810100810001060181 +000102018100018101008100018201000184010001000102018100018201000114018100 +01040181000102018100010801810001820100010001 +8201000105018200010083000100010a018100011c018100018201000107018300010001 +020183000100011701810001030185000100010001830100010001008201000181010087 +00010001000100010a018100018401000100010801830001000106018100010b01870001 +000100010001070187000100010001000108018100018201000103018100010901810001 +030181000101018100018201000101018300010001810100870001000100010001010181 +000103018700010001000100010701890001000100010001000105018500010001000104 +018300010001050181000102018b00010001000100010001000105018700010001000100 +010301810001010184000100010001008101008300010001840100010001840100010001 +010181000182010001010181000102018300010001050183000100010101810001070187 +000100010001000108018700010001000100010601850001000100018201000102018300 +01000101018100018a010001000100010001000182010001050181000103010200010181 +00010201810001020102000101830001000102018100011e018100010201810001840100 +01000182010001820100010601 +030181000184010001000108018100011d01810001080181000184010001000105018100 +010301810001840100010001070181000101018100010401820001008500010001000181 +01008200010004000c018700010001000100010601870001000100010001820100018201 +000101018300010001010181000101018700010001000100010901850001000100010701 +010081010001008201000106018100010101890001000100010001000101018300010001 +010181000101018100018501000100010001000501810001820100010101830001000107 +018700010001000100010701870001000100010001060185000100010001010184000100 +010087000100010001000103018100010301850001000100010701830001000101018100 +010401810001040101000701810001010181000101018100010101810001040101000101 +8100010301830001000182010001010181000104018100010101850001000100010a0183 +000100018401000100010901810001030181000104018300010001040185000100010001 +010183000100010501010081010087000100010001000182010001020182000100830001 +000182010001160181000102018100010d01810001820100010101 +810100810001050181000105018100012601830001000107018300010001050181000112 +018500010001000185010001000100820001000500040181000103018500010001000108 +01850001000100010301810001820100010201830001000103018100010b018900010001 +00010001000106018700010001000100010a018500010001000102018100010601810001 +030181000101018100018201000106010500820100010701870001000100010001010181 +000103018700010001000100010701850001000100018201000103018100010301810001 +820100010301830001000101018100010701870001000100010001070184000100010002 +008201000102018100010301810001050185000100010001010183000100010801810001 +050181000102018700010001000100010601850001000100018401000100010801850001 +000100010401810001820100010101830001000104018500010001000105018500010001 +00018401000100010701820001008400010001008100010b018100010e01810001030181 +00010201810001840100010001820100018401000100018201000101010000 +390101000301810001840100010001040183000100010201830001000182010001020183 +000100018401000100010801810001010181000101018300010001830100010083000100 +018201000105018300010001840100010001010185000100010001820100010301810001 +8801000100010001000101018b0001000100010001000100010701830001000184010001 +000109018200010003000801810001010184000100010081000103018100010101830001 +000105010300030181000102018700010001000100010701810001010183000100010501 +890001000100010001000108018300010001010183000100018201000101018300010001 +070187000100010001000107018500010001000109010200880100010001000100010501 +810001050181000103018300010001010181000101018100010401810001020181000105 +0183000100018401000100010801850001000100010f018100018a010001000100010001 +000184010001000102018500010001000104018100018301000100020082010001030187 +000100010001000184010001000112018100010201830001000102018100018201000112 +01 +32018100010501810001840100010001050183000100018601000100010001820100010d +018300010001860100010001000104010200810100020082010001820100010101870001 +000100010001020187000100010001000106018500010001000102018100010601810001 +0a0183000100010201810001090186000100010001000100840100010001010185000100 +010001010183000100010801850001000100010401810001820100010401820001000100 +820100010701870001000100010001050187000100010001000107018700010001000100 +018201000106018300010001010181000103018900010001000100010001050187000100 +010001000105018a00010001000100010001008100010801810001050185000100010001 +0101830001000103018100010101810001020183000100010201850001000100010c0185 +000100010001080185000100010001100183000100010601830001000186010001000100 +018301000100850001000100010101810001810100020082010001840100010001020183 +000100018301000100810001070181000103018100010301810001820100010501830001 +0001020181000182010001810100810001 +3a0181000105018100018201000109018100010601810001860100010001000102018100 +010601820001000100820100010201020081010083000100010301810001840100010001 +050181000186010001000100010b01880001000100010001008100010101850001000100 +010401810001010189000100010001000100010101810001040181000184010001000103 +018500010001000101018900010001000100010001020185000100010001020182000100 +810001020101008201000102018700010001000100010301890001000100010001000107 +018700010001000100010501810001020187000100010001000102018100010101830001 +000101018100010501870001000100010001050187000100010001000105018100010301 +8700010001000100010b0183000100010101850001000100010101810001030181000102 +0182000100820001008100018a0100010001000100010001080183000100010b01810001 +0101810001020187000100010001000102018100010d0183000100018401000100018501 +000100010084000100010084000100010002008101008300010001060181000182010001 +0a0183000100010501830001000106018100010801 +260181000107010100840100010001060181000102018100010201850001000100018201 +000101018100010b01820001008600010001000100870001000100010001860100010001 +000102010400840100010001060185000100010001080187000100010001000181010081 +000101018300010001040181000108018500010001000103018100010301810001010187 +000100010001000181010083000100010301810001070181000101018500010001000105 +018100018201000103018200010085000100010001050185000100010001090187000100 +010001000105018700010001000100010601830001000184010001000107018100010101 +830001000101018100010501850001000100010701870001000100010001010181000101 +01850001000100010501850001000100018401000100010a018500010001000182010001 +0a018300010001030183000100018201000105018100018401000100010a018300010001 +0401810001040183000100018401000100010b0183000100010301840001000100010001 +018200010085000100010001020181000107018100018401000100010701810001820100 +010201810001840100010001050181000101018100010001 +280181000107018100010401810001020182000100810001020181000101018100010401 +810001020181000104018200010083000100010401810001010183000100018201000102 +01010081010001000a01850001000100010a018300010001090183000100010301850001 +000100010301890001000100010001000103018100010101850001000100010101830001 +00010b018100010101870001000100010001010181000101018600010001000100810001 +0201820001008700010001000100018a0100010001000100010001070187000100010001 +000105018700010001000100010a01830001000102018100010301810001010181000101 +018100010501810001010181000109018200010081000186010001000100010301010001 +0183000100010e0181000101018900010001000100010001840100010001030183000100 +018801000100010001000108018300010001020187000100010001000104018500010001 +000102018100010301830001000186010001000100018201000106018300010001840100 +010001060181000185010001000100840001000100840001000100830001000102018300 +010001820100010e01810001050181000102018100018201000184010001000182010001 +01018100010001 +1e0181000104018100018201000105018100010401810001820100010101810001020181 +000184010001000105018100010601810001010181000102018400010001008900010001 +000100010001860100010001000104018500010001000184010001000108018700010001 +000100010401810001010185000100010001020183000100010501850001000100010701 +830001000101018500010001000101018100010501810001010183000100010301830001 +0001010189000100010001000100010a0183000100018401000100010101810001090187 +000100010001000105018700010001000100010901870001000100010001040181000104 +018100010501810001010101008401000100010301890001000100010001000101018100 +010701830001000105018100018301000100010003018500010001000101018100010301 +850001000100010401820001008100018101008100010301850001000100018601000100 +01000103018100010201830001000101018500010001000182010001080183000100010b +018500010001000109018300010001840100010001050186000100010001008100010101 +81000184010001000105018200010083000100010501810001020181000104018100010e +0101000101 +1b0181000108018100010401810001840100010001820100010201810001040181000182 +010001040183000100010501830001000101018100018801000100010001000186010001 +000100018401000100010101810001020187000100010001000108018100018401000100 +010a01810001010181000104018300010001860100010001000101018100018201000101 +018300010001010187000100010001000107018300010001810100810001010101000501 +810001030181000109018100010101830001000101010200820100010401810001020187 +000100010001000105018700010001000100010901870001000100010001080183000100 +018201000105018100018401000100010901870001000100010001050181000101018300 +010001010181000105018900010001000100010001010181000103018100010101810001 +010183000100010501830001000184010001000101018200010002008201000108018500 +010001000101018100010801830001000102018100010101850001000100010201830001 +000184010001000108018100018401000100010b01830001000183010001008500010001 +000183010001000100010181000186010001000100010501810001050181000102018300 +0100010301830001000182010001020181000101018100010101 +040181000104018100010101830001000182010001070181000102018100010301830001 +0001050184000100010081000104018100010501830001000104018100010b0185000100 +010001840100010001060183000100018401000100010601890001000100010001000106 +018500010001000184010001000103018700010001000100010101810001030183000100 +018201000103018500010001000107018300010001840100010001070181000104018100 +010101830001000101018900010001000100010001010181000103018100010601020001 +018300010001050187000100010001000109018700010001000100010701870001000100 +010001020181000104018500010001000104018700010001000100010901890001000100 +010001000103018100010101870001000100010001010187000100010001000103018100 +010101810001010181000103018500010001000105018300010001820100010601870001 +000100010001060189000100010001000100018201000110018300010001810100810001 +030183000100018401000100010601830001000186010001000100010901010082010001 +040181000186010001000100018201000186010001000100010301810001020181000104 +018100010801810001820100018201000182010001 +070181000182010001070181000105018100010701810001050183000100010201810001 +050181000102018100018401000100010201830001000102018100010401850001000100 +010401830001000186010001000100018201000105018100018401000100010801870001 +000100010001060187000100010001000105018900010001000100010001010183000100 +018601000100010001030183000100018401000100010701870001000100010001010181 +000101018100018201000103018100010701830001000101018300010001010187000100 +010001000102018100018801000100010001000109018700010001000100010701870001 +000100010001050181000110018300010001070189000100010001000100010901870001 +000100010001040101008201000103018100010101830001000101018100010101810001 +010183000100010101890001000100010001000182010001010184000100010083000100 +010701830001000184010001000105018100018a01000100010001000100010301810001 +860100010001000186010001000100018201000106018500010001000182010001080181 +000184010001000104018100018401000100018401000100010701810001820100010701 +810001020183000100010301830001000184010001000104018100010201 +050181000102018100010301830001000105018400010001008100018401000100018401 +00010001820100010701830001000182010001020181000107018100010b018100010401 +870001000100010001090187000100010001000109018500010001000106018900010001 +000100010001030183000100018401000100018201000105018100010101810001020181 +000102018300010001070187000100010001000101018100010301830001000101018300 +010001010183000100018201000181010083000100010301810001030181000104010100 +820100010101810001070189000100010001000100010701870001000100010001050187 +000100010001000116018700010001000100010901870001000100010001010181000105 +01830001000101018100010101830001000101018100010b010100030181000105018100 +010201010082010001020181000102018700010001000100010801870001000100010001 +0c018100010d018100010201870001000100010001070185000100010001820100010601 +810001820100010401810001020182000100850001000100010a01810001020181000104 +018100010b01810001030101000001 +820100010d018100018401000100018201000102018100018401000100010a0183000100 +018201000104018100010101810001120183000100010401830001000106018400010001 +008500010001000106018700010001000100010401870001000100010001820100010301 +810001010183000100010401840001000100810001020101000501830001000108018700 +010001000100010101810001030181000101018300010001020101008201000107018100 +010801810001030181000101018200010002008201000104018700010001000100010701 +8900010001000100010001050181000101018300010001050183000100010e0181000103 +018100010501870001000100010001090181000101018300010001010181000183010001 +008900010001000100010001010181000104018300010001030183000100010101810001 +820100010101830001000102018300010001010181000108018700010001000100010801 +830001000184010001000105018500010001000183010001000100030181000104018100 +010101810001840100010001090181000102018100010401830001000184010001000182 +010001010181000103018300010001070181000102018300010001030183000100018201 +00018201000108010000 +840100010001010183000100018201000182010001070181000181010081000109018300 +010001820100010401810001840100010001070181000105018100010401810001060181 +000103018100018401000100018401000100010501810001840100010001060185000100 +010001060181000101018300010001060185000100010001040181000182010001030181 +000182010001030187000100010001000101018100010301810001010183000100010301 +850001000100010301850001000100010301880001000100010001008100010701810001 +040102008301000100810001090185000100010001070181000101018300010001010181 +000101018700010001000100011401830001000101018100010301810001050187000100 +0100010001090181000101018100010b0181000186010001000100010301830001000103 +018100010101810001840100010001810100820001008100010501830001000184010001 +00010701850001000100010d018300010001080181000101018100010201830001000102 +018100010401850001000100018401000100010201810001020183000100010401830001 +0001030183000100010c0181000102018100010501830001000184010001000103018100 +01820100010401 +06018100018201000105018300010001820100010a018300010001080183000100010501 +840001000100010004018300010001020181000182010001020183000100010501810001 +070187000100010001000102018100010101830001000184010001000108018300010001 +050185000100010001820100010301860001000100010081000186010001000100010101 +810001020181000101018100010301810001010183000100010301870001000100010001 +030181000181010085000100010001010181000103018100010101840001000100810001 +010183000100010101820001008100010501810001020187000100010001000105018100 +0103018100010101810001010187000100010001000103018700010001000100010e0183 +000100010101870001000100010001010183000100010101810001050189000100010001 +000100010601010086010001000100010101830001000104018100010101810001010187 +000100010001000101018100010101810001050189000100010001000100010301810001 +860100010001000106018700010001000100010701810001850100010001008500010001 +000102018500010001000104018300010001020181000106018100018401000100010401 +830001000182010001010181000102018100018201000186010001000100010501810001 +020183000100010b018100018201000182010001840100010001 +010181000182010001020181000184010001000105018100010301020001018100010201 +830001000184010001000184010001000184010001000119018100010c01830001000184 +010001000106018500010001000108018100010801870001000100010001040187000100 +01000100010d018300010001060181000101018300010001030187000100010001000109 +018100010201010002018300010001070181000106018300010001010181000104018500 +01000100010101010006018100010101830001000101018b000100010001000100010001 +050185000100010001160183000100010501810001010183000100010101810001010185 +000100010001070187000100010001000182010001060101000601850001000100010101 +810001070181000104018100010101810001840100010001050187000100010001000104 +01870001000100010001060181000101018100010d018100010101810001820100010101 +830001000184010001000104018300010001840100010001040183000100018201000104 +018300010001840100010001020181000114018300010001820100018201000108018100 +0182010001 +010181000182010001820100010801830001000184010001000105018100018201000101 +018100018201000182010001090181000183010001008100011c01010007018500010001 +000104010300840100010001060181000103018100010301810001860100010001000107 +018100018601000100010001840100010001010185000100010001820100010501850001 +000100010301810001030187000100010001000107018100010901850001000100010f01 +810001010181000101018100010301010082010001010181000101018700010001000100 +010301890001000100010001000109018300010001120187000100010001000105018100 +010101830001000101018100010101850001000100010601820001008900010001000100 +010001810100810001820100010301810001030187000100010001000101018100010401 +810001060181000101018300010001050181000184010001000105018300010001840100 +010001050187000100010001000105018100010301810001020181000104018300010001 +090183000100018401000100010201830001000184010001000105018300010001810100 +8100010a01810001820100010a01810001820100010801 +8100010a0181000182010001080183000100018201000102018100018401000100010501 +8300010001840100010001110183000100010d0101000201850001000100010201050082 +0100011401810001840100010001070187000100010001000107018100010c0187000100 +010001000101018100010301810001010183000100010401010084010001000182010001 +0201810001030183000100010b0183000100010201810001060181000101018100010401 +8700010001000100010501850001000100010b018700010001000100011e018900010001 +000100010001030181000101018700010001000100010101820001008100010801810001 +010101000c01810001070181000103010100020185000100010001020181000103018100 +010101830001000104018700010001000100010801830001000105010100860100010001 +000182010001040181000101018100010401830001000186010001000100010901810001 +020183000100010201810001820100010801810001050181000105018100010201810001 +020181000104018300010001820100010001 +020181000181010085000100010001820100010301830001000182010001020183000100 +018201000102018300010001840100010001020181000105018300010001820100010201 +810001020181000113010100810100020002018100010801830001000117018700010001 +000100010801870001000100010001010188000100010001000100810001080181000102 +018300010001030187000100010001000109018300010001020181000105018500010001 +0001010181000109018e0001000100010001000100010001008100010301890001000100 +010001000107018900010001000100010001050183000100010601810001070187000100 +01000100010d018500010001000109010100820100010101870001000100010001080181 +000109018300010001010181000108018100010601870001000100010001020181000103 +018700010001000100010401850001000100010501850001000100010101830001000106 +01850001000100010401810001820100010101810001070185000100010001820100010e +018300010001830100010081000103018100010c01810001020181000106018100010601 + +820100018201000105018300010001820100010501830001000108018100010901810001 +840100010001820100010301810001020181000112018300010001820100010601020001 +010200010183000100010101810001110185000100010001080187000100010001000103 +018300010001010181000105018100010201870001000100010001030187000100010001 +000107018900010001000100010001020183000100010201010006018300010001010181 +00010401810001840100010001030181000103018200010083000100010b018500010001 +0001050185000100010001010181000102018100010f0185000100010001010189000100 +010001000100010901820001008300010001010181000103018100010101810001010182 +000100010082010001040183000100010101810001110101000101850001000100010801 +850001000100010901810001020181000107018500010001000184010001000102018100 +010101810001820100010301810001840100010001060183000100010c01850001000100 +0102018100018201000102018100010d01810001130181000103018300010001810100 +010183000100018101000100040183000100018201000182010001050104000601810001 +840100010001020101000401810001840100010001180181000183010001000200820100 +01070183000100011d018300010001840100010001070183000100010701850001000100 +010101810001060185000100010001050189000100010001000100010701810001010101 +00030183000100010a018100010301810001070183000100010101830001000108018900 +010001000100010001030185000100010001050186000100010001008100011901830001 +000101018100010101840001000100830001000107018100010101830001000105018100 +010301810001030181000116018300010001090187000100010001000106018700010001 +000100010301810001020183000100010101830001000105010100820100010201810001 +040187000100010001000102018300010001820100010801810001820100010901850001 +000100018201000102018300010001820100010801810001820100010201810001020181 +000102010200820100010501810001 +040183000100018401000100010601820001008500010001000108018200010081000182 +01000103010200010183000100010101820001008100010d018100018201000101018300 +010001810100010082010001030183000100010a0181000113018500010001000104018b +000100010001000100010001050181000101018100010501830001000186010001000100 +0103018700010001000100010b0187000100010001000102018100018201000116010100 +010183000100010301810001070182000100810001050185000100010001070185000100 +0100011a0185000100010001050181000101018700010001000100010201830001000103 +01810001050181000101018700010001000100010101830001000108018100010e018300 +010001020183000100010901870001000100010001060187000100010001000106018100 +01010185000100010001040181000186010001000100010d01830001000112018100010c +01830001000107018100010e0181000105018100010401810001840100010001 +010181000106018200010085000100010001820100010701010081010001000601840001 +000100010003010400830100010082000100810001050181000106018200010001000201 +810001010181000109018300010001820100010101850001000100011501850001000100 +010901830001000184010001000103010100840100010001820100010301870001000100 +01000107018d000100010001000100010001000103010100010181000118018100010d01 +870001000100010001020187000100010001000105018700010001000100010701810001 +01010100820100011501890001000100010001000106018b000100010001000100010001 +010185000100010001820100010801810001020181000109018100010401810001820100 +0101018100010101810001820100010201850001000100010b0183000100010a01810001 +050183000100018201000101010100040181000104018300010001880100010001000100 +011a018100010401830001000184010001000104018100011a0183000100010801 +030101000101010082010001030181000181010001008101008200010002000301810001 +810100010081010081000182010001030102000701010084010001000184010001000101 +018200010087000100010001000101018100010201830001000101018100010201890001 +000100010001000182010001010181000111018300010001070187000100010001000104 +01850001000100010d018100010701870001000100010001030181000103018100010101 +850001000100010101810001010185000100010001010181000104018100010301810001 +010184000100010001008101000100820100010301850001000100010401890001000100 +010001000107018700010001000100010101810001140187000100010001000107010100 +820100010901870001000100010001030181000101018500010001000108018100010101 +810001040181000101018100010201850001000100010d018b0001000100010001000100 +010201810001820100018a01000100010001000100010b01810001030183000100010201 +01000301810001060183000100011c018100011001810001120181000101018300010001 +02018100018401000100010001 +010082010001010181000102018200010082000100010086010001000100018201000101 +010100840100010001020181000184010001000182010001020183000100018401000100 +018201000103018100018101000300040185000100010001840100010001030181000102 +0102000401810001820100011b0187000100010001000106018500010001000107018900 +0100010001000100010501850001000100010301810001030181000101018b0001000100 +010001000100010201810001040181000101018100010a01810001010181000109018700 +0100010001000103018400010001008100010b0185000100010001070182000100850001 +00010001170184000100010081000105018b000100010001000100010001050183000100 +01810100810001010181000101018300010001840100010001010181000101018100010d +018300010001810100010088010001000100010001010181000104018100010101870001 +0001000100010e0189000100010001000100018401000100018401000100010401810001 +010183000100010601810001820100011901830001000182010001020185000100010001 +020181000105010100100181000105018100010001 +030103008401000100010101810001040183000100018201000182010001050185000100 +010001020181000103018100010601830001000184010001000181010081000101018100 +018401000100018201000101018100010201010082010001030103000301810001830100 +010083000100018101008300010001030181000107018300010001030185000100010001 +84010001000103018d000100010001000100010001000106010100820100010101810001 +04018100018c010001000100010001000100010501830001000181010081000101018100 +010101810001010181000101018200010083000100010101810001010186000100010001 +008100010601850001000100010801890001000100010001000103018900010001000100 +010001180185000100010001080187000100010001000109018700010001000100010201 +8100018a0100010001000100010001040181000101010100040185000100010001010181 +000102010100010101000201870001000100010001010183000100010801810001010187 +000100010001000105018100010901810001060185000100010001060181000184010001 +000108018100010101810001030181000104018200010081000106018100010601010003 +0102000b0101000301010002010100820100010301 +810100810001070181000182010001840100010001070181000184010001000182010001 +020183000100010201810001050183000100010301010001018300010001810100010001 +018100010101810001820100010101830001000182010001820100010701890001000100 +010001000181010081000106018100010101810001020101000101850001000100010601 +8700010001000100010d01850001000100010401830001000101018b0001000100010001 +000100010701010082010001040181000104018100010101850001000100010101820001 +008300010001010181000103018600010001000100010082010001030181000103010100 +820100010701850001000100010b01010084010001000115018400010001008300010001 +0701890001000100010001000107018100010d0101008101008100018201000102018300 +0100010301830001000105018100018101008500010001000105018b0001000100010001 +000100018201000105018300010001020181000104018700010001000100018201000184 +010001000108018100018101000100820100010301010010018100018401000100010201 +830001000105018100010101010082010001010101000501020081010001008201000108 +01810001840100010001820100010101 +0601810001820100010a0183000100018201000104018100010301830001000105018200 +010001000101830001000181010001000501810001070181000182010001070101008201 +000103018100018401000100010a01830001000105018100010601830001000102018200 +010001008201000107018700010001000100018401000100010101810001010181000101 +01810001010187000100010001000107018700010001000100010a018100010101810001 +010181000105018100010601810001010183000100010401810001010181000184010001 +0001010183000100010201890001000100010001000105018c0001000100010001000100 +010081000113018500010001000108018700010001000100010901850001000100010101 +810001820100010201840001000100810001040181000101018100010501830001000103 +018300010001840100010001060187000100010001000105018300010001810100810001 +8601000100010001010181000105018100010f0184000100010083000100010701010082 +010001010181000182010001010181000184010001000106010300010184000100010081 +00010401810001040181000104018100010a010100030181000183010001008100010401 +810001 +830001000182010001040101008201000182010001810100810001010183000100018301 +000100810001040181000185010001000100850001000100010c01840001000100020082 +010001020183000100018501000100010002008201000101018300010001030181000184 +010001000188010001000100010001060181000105018100010201840001000100010082 +010001010187000100010001000103010100010101000201810001010181000105018100 +010101810001010189000100010001000100010901870001000100010001040183000100 +010101810001010181000105010100020183000100010101860001000100010081000182 +010001040101008601000100010001050101008e01000100010001000100010001000103 +01810001840100010001820100010c018600010001000100020086010001000100010501 +8700010001000100010501830001000109018100010401820001008b0001000100010001 +00010001050181000101018100018201000101018100010c018700010001000100010601 +850001000100010301820001008100010201870001000100010001830100010085000100 +010001060182000100010081010081000103018100010f01030001010200820100018201 +000104018500010001000184010001000182010001040181000105018100010301810001 +07018100018201000182010001 +010005018200010081000101010100840100010001010181000107018300010001860100 +010001000108018300010001040182000100810001030181000103018100018501000100 +010081000101018100010101810001010181000182010001010184000100010081000105 +018100010101810001860100010001000104018300010001010183000100010101870001 +000100010001010181000182010001010102008c01000100010001000100010001020102 +000101040082010001020101000501010085010001000100810001020182000100010085 +010001000100830001000101010100010185000100010001020182000100810001820100 +0101018100010401010086010001000100010501820001008d0001000100010001000100 +010001040181000102018100018201000101018100010801810001040181000103010100 +8d0100010001000100010001000100010005010100880100010001000100010801850001 +000100010201810001010181000101018100010301850001000100010101840001000100 +81000101018b0001000100010001000100010a0185000100010001060187000100010001 +000102018300010001080182000100810001810100010084010001000107018300010001 +1301020004018300010001820100010d0181000184010001000102018100010501810001 +8101008300010001820100010a01 +810001810100820001000100030101000501830001000181010084000100010085000100 +010001840100010001820100018601000100010001820100018601000100010001020183 +0001000185010001000100840001000100820001008a0001000100010001000100020086 +010001000100018901000100010001000100020088010001000100010001030181000182 +01000107018300010001020102008101008100018201000101018a000100010001000100 +010001008201000101018300010001010189000100010001000100018101008600010001 +000100010004010200840100010001820100018201000101018300010001830100010001 +008b01000100010001000100010081000101018e00010001000100010001000100010083 +000100018101000100870100010001000100840001000100810001020181000101018d00 +010001000100010001000100018201000102018100010301010086010001000100010101 +830001000186010001000100010101840001000100010002018200010001008201000101 +018300010001820100018101008100010301810001010181000182010001010181000101 +018100018101008300010001010102008401000100018201000107018300010001010183 +000100018301000100010005018100018301000100010084010001000101018300010001 +010187000100010001000101010200020181000106018100018601000100010001040181 +00010f018100010101010082010001030181000101018100018801000100010001000182 +010001010181000184010001000184010001000182010001810100810001050183000100 +01840100010001820100010001 +010181000182010001020101008101008200010084000100010083000100010201810001 +820100018401000100010401010084010001000182010001040181000184010001000184 +010001000101018100010301830001000181010001008201000108018300010001010181 +000188010001000100010001020181000103018100018101000100820100010101850001 +00010001810100010081010001008201000101018b000100010001000100010001070187 +000100010001000101018100010101810001010192000100010001000100010001000100 +010001008600010001000100050081010001000101860001000100010001008501000100 +010086000100010001000100860100010001000184010001000181010084000100010001 +008101000500020102000101020089010001000100010001008200010001008501000100 +010083000100010101830001000108018300010001820100010101860001000100010083 +000100010101050081010001008101008400010001000200820100010401880001000100 +010001008100010101040081010082000100010082010001020183000100010101820001 +008300010001830100010084000100010083000100010301040082010001820100010101 +810001010101000601810001010182000100010081010001008201000101018100018401 +0001000182010001030185000100010001050181000106018100010b0187000100010001 +000106010100030181000104018300010001820100018201000105018100018201000181 +010081000104018100010001 +820100018201000102018100018201000104018100018201000184010001000102018300 +010001820100018401000100018401000100018501000100010083000100010201830001 +000185010001000100840001000100810001010183000100018201000101010100880100 +010001000100018101000100020184000100010001000101850001000100010101010002 +018100010101850001000100010601a10001000100010001000100010001000100010001 +000100010001000100010001000101019500010001000100010001000100010001000100 +010001010186000100010001000400020182000100010001010100810100860001000100 +010002008301000100010002018200010002008101000300830100010001008101000100 +0501010083010001000100010101008101008a0001000100010001000100010001018600 +01000100010001000501820001008a000100010001000100010085000100010001010181 +000101010900830100010083000100010101040001010600860100010001000182010001 +010181000103018300010001820100010101810001820100010201810001820100010201 +840001000100820001000100010104008401000100018101000100830100010001008101 +008100010101830001000104018300010001820100010301810001810100010084010001 +000186010001000100010301810001820100010601810001070183000100018101000100 +820100010501810001010102000301810001020183000100018201000108018100018401 +0001000105018100018201000102010000 +0b0181000102018100010801830001000184010001000184010001000182010001020181 +000107018500010001000104018100010101810001030181000186010001000100018201 +000101018100010101810001840100010001010181000108018300010001010181000111 +018700010001000100010301880001000100010001008100010501820001008100010401 +820001008400010001008300010001820100010301870001000100010001010184000100 +010081000101010400810100010081010002008701000100010001000100830100010087 +000100010001000101018100018101000100830100010001000201010081010002000101 +010081010082000100010082010001010181000101018100010101820001000100810100 +850001000100018601000100010001010181000106018200010081000101018900010001 +000100010001030101000101020088010001000100010001010102008101008300010001 +0101880001000100010001000100810100020081010082000100070081010002008c0100 +01000100010001000100018101000a008301000100020001018400010001008100018101 +000200890100010001000100010082000100030086010001000100010201010001018200 +010002000101810001810100830001000101018100018401000100010201820001000100 +810100810001020182000100010081010005008201000184010001000181010001000301 +810001840100010001820100010201810001820100018101008400010001008300010001 +82010001810100 +0e018100010201810001820100018201000104018100010a018100010201850001000100 +0109018100010201810001010101000a0183000100010201810001010181000101018100 +010101810001860100010001000104018100010101810001140187000100010001000108 +018900010001000100010001010183000100010101810001820100010401820001000100 +820100010801860001000100010001000501810001820100010201010082010001010181 +000184010001000103018100018101000100810100810001020181000101018200010081 +000182010001810100020089010001000100010001000200890100010001000100010084 +000100010001008301000100890001000100010001000189010001000100010001008100 +010101880001000100010001008200010003000101010001018200010086000100010001 +000100020183000100010101810001810100820001008300010001010181000102018100 +018201000101018100010201010081010001008201000101010100850100010001008100 +010a01850001000100018101008100010201850001000100010201810001070181000108 +018200010004000501050002018300010001040183000100010301810001020102000101 +010007018100018201000186010001000100018301000100830001000102018100010201 +020082010001840100010001020181000103018300010001 +0c0183000100018201000102018100010501810001020181000182010001020185000100 +010001070183000100018401000100010201830001000105018300010001840100010001 +040181000101018100010101810001010181000102018100010401010003018300010001 +0f0101008201000106018900010001000100010001050183000100010101810001010181 +000103018500010001000101018500010001000181010002008301000100830001000103 +018500010001000184010001000190010001000100010001000100010001000181010001 +008401000100018101000200810100020087010001000100010001008201000184010001 +0001830100010002000a0184000100010001000101810001820100010801810001050182 +000100850001000100010401010085010001000100810001020183000100010101020081 +010082000100010081010001008601000100010001010102008101000600010106008101 +008200010002000301830001000101018400010001008400010001000200020185000100 +010001810100820001000100040182000100820001008100018401000100010301820001 +000100810100850001000100010301030084010001000102018100010101810001840100 +010001040184000100010085000100010001820100010101040082010001860100010001 +000186010001000100018201000183010001000100010181000183010001008300010001 +82010001820100018301000100850001000100010001 +140181000102018100018201000102018300010001840100010001050183000100018401 +000100010701830001000104010100840100010001070183000100010101850001000100 +010a01810001840100010001010183000100011601810001860100010001000105018700 +010001000100010501830001000101018100010301810001010185000100010001010181 +000105018600010001000100830001000109018200010082000100810001040183000100 +010101810001010183000100010501010001018100018401000100010101020088010001 +000100010001030101008801000100010001000104010200830100010083000100010101 +83000100010201830001000102018b000100010001000100010001020183000100018301 +000100020082010001820100018201000103018100010101830001000101018300010001 +020101000601810001820100018201000103018100010101830001000104018700010001 +000100010601870001000100010001020181000102018200010001000101810001820100 +010701010006010100840100010001820100010401810001010183000100018401000100 +010401820001008100010301810001010181000182010001860100010001000182010001 +820100018601000100010001860100010001000182010001820100018201000103018100 +01020183000100018301000100010004018100010001 +0c0181000182010001820100010201810001840100010001820100010401810001840100 +010001820100010601810001860100010001000105018300010001840100010001020181 +000184010001000103018100010601810001810100830001000102018300010001010181 +000104018100011001830001000105018700010001000100010301870001000100010001 +010185000100010001010181000103018100010501890001000100010001000105018200 +010085000100010001030181000103018100010101810001010184000100010081000101 +018100010201810001840100010001030101008601000100010001050181000101010100 +840100010001050181000101018500010001000102010200050181000104018100010201 +870001000100010001010181000101018700010001000100010801870001000100010001 +090185000100010001820100010201850001000100010101830001000101018200010002 +000101840001000100830001000182010001040102008101000100820100010401890001 +000100010001000182010001050183000100010301810001010181000182010001010183 +000100010201870001000100010001820100011801850001000100018201000101018100 +018401000100010101810001820100010101810001820100010401810001840100010001 +01018200010001000a0183000100010301 +120181000182010001040181000182010001840100010001070183000100018401000100 +010401810001840100010001820100010401810001860100010001000182010001020102 +000201870001000100010001010181000101018100010401850001000100018201000114 +018700010001000100010301870001000100010001050181000107018100010101810001 +010187000100010001000109018a00010001000100010001008100010201810001020183 +000100010101810001010181000106018100010101820001008200010089000100010001 +000100010401870001000100010001010183000100010401870001000100010001010186 +000100010001008100010101810001100181000101018100010101870001000100010001 +050101008801000100010001000105018100010301850001000100010501830001000105 +01830001000182010001010181000105018100018101008f000100010001000100010001 +000100010501810001810100810001820100010501830001000186010001000100010101 +820001008100018801000100010001000104018500010001000182010001010183000100 +018101008100010e01850001000100010701820001008100018201000184010001000102 +018300010001020183000100010201810001810100010005018100018401000100010801 +8100010001 +0b0102000101810001020181000184010001000107018100018401000100018201000104 +018100018601000100010001090181000185010001000100830001000182010001010181 +000182010001010183000100010101810001010181000102018700010001000100010801 +810001140189000100010001000100010501870001000100010001030181000184010001 +000104018100010701890001000100010001000101018300010001090181000193010001 +000100010001000100010001000100010081000101018500010001000107018300010001 +840100010001030181000103018100010101010082010001010183000100010101810001 +030182000100830001000114018100010101870001000100010001010185000100010001 +060181000101018900010001000100010001070101000201810001020186000100010001 +008300010001010187000100010001000184010001000106018700010001000100010101 +830001000101018100010601850001000100010801830001000101018100010a01850001 +000100010601810001010181000119018500010001000107018100010101830001000104 +018100010501810001060183000100018201000105018300010001820100010301 +100181000182010001070181000184010001000107018100018401000100010901830001 +000184010001000104018100010801810001030183000100010201810001010183000100 +010c01850001000100010a01810001070181000107018700010001000100010c01810001 +03018200010081000183010001008d000100010001000100010001000101018100010301 +8b0001000100010001000100010401830001000107018300010001880100010001000100 +018101008500010001000101018100018201000103018100010101880001000100010001 +008100010101810001030187000100010001000119018100010101810001070183000100 +010101810001860100010001000101018100010b01830001000107018300010001010183 +000100010401810001050181000181010081000181010087000100010001000105018700 +01000100010001010187000100010001000104018500010001000106018b000100010001 +000100010001080185000100010001020181000116018100010901850001000100010101 +810001020185000100010001020181000184010001000183010001000100030181000102 +01810001820100010701810001810100 +0e0181000102018100018201000184010001000102018100010201810001840100010001 +07018300010001840100010001040181000102018300010001050183000100018a010001 +000100010001000186010001000100010201810001860100010001000184010001000101 +018100010101830001000112018700010001000100010a01930001000100010001000100 +0100010001000100018a0100010001000100010001030181000101018700010001000100 +010101850001000100010401830001000103018700010001000100010301010006018100 +010301810001010181000102018b00010001000100010001000106018700010001000100 +010901010084010001000112018100010101870001000100010001030181000188010001 +000100010001030185000100010001010181000101018100018701000100010001008100 +01010181000101018100018e010001000100010001000100010001020183000100010801 +870001000100010001050187000100010001000101018700010001000100010101810001 +87010001000100010001000701850001000100010801810001020181000103018100010b +01810001020185000100010001820100010a018100010101810001030185000100010001 +8201000182010001030181000102018100010501830001000182010001820100010101 +0c018100018401000100010a018100010201810001070183000100018201000104018100 +010201830001000102018100010101810001820100010501830001000108018100010101 +83000100010201810001050185000100010001010181000102018100010f018100010801 +890001000100010001000103019100010001000100010001000100010001000104018100 +018301000100810001010181000101018700010001000100010501830001000184010001 +000184010001000102018900010001000100010001820100010101810001810100830001 +0001010183000100018601000100010001070184000100010081000107018b0001000100 +010001000100011301850001000100010901840001000100810001070187000100010001 +000101018200010081000101018100010301830001000182010001010181000182010001 +010183000100010301810001010181000103018900010001000100010001030181000101 +018700010001000100010501870001000100010001040183000100010101810001010187 +000100010001000182010001030183000100018601000100010001180181000102018100 +010401830001000182010001820100010201810001020183000100018201000104018100 +0182010001010183000100010201810001820100010a01810001 +140181000184010001000182010001020183000100018401000100018201000101018100 +010301830001000102018100010101830001000184010001000102018100010201810001 +050183000100010101810001070183000100018201000101018100010801830001000182 +010001110187000100010001000105018700010001000100010101830001000103018300 +010001020181000184010001000105010100840100010001070189000100010001000100 +010201810001040101008201000103018400010001008700010001000100010101870001 +000100010001040189000100010001000100010601870001000100010001010181000106 +01850001000100010e0181000103018b0001000100010001000100010401890001000100 +010001000103018600010001000100820001008100018401000100010201840001000100 +830001000101018100010301830001000101018100010101010003010100050183000100 +010101810001030181000101018700010001000100010701010004018100010201010009 +018700010001000100010601830001000111018100018201000104018300010001060181 +000101018100018601000100010001050183000100010b01810001820100018401000100 +018401000100018201000182010001 +0d0181000102018100010701810001820100010401810001050181000101018100010201 +830001000184010001000102018300010001840100010001070181000102018500010001 +00010201870001000100010001050187000100010001000108018100010d018100018201 +000107018500010001000101018700010001000100010301830001000103018300010001 +030187000100010001000105010100860100010001000107018100010101020086010001 +000100010201830001000103018100018401000100010101810001090101000801860001 +000100010081000101018100010301810001010185000100010001860100010001000110 +018300010001010181000107010100860100010001000105018300010001010181000101 +018100010201870001000100010001040181000188010001000100010001030185000100 +010001040181000103018700010001000100010301830001000102018100010301810001 +0101850001000100010401010003018f0001000100010001000100010001000106018500 +010001000182010001110181000104018300010001860100010001000182010001030181 +000108018100018401000100010201020003018300010001820100010701810001820100 +01820100010201 +100183000100018401000100018401000100010501810001020183000100018601000100 +0100018201000104018100018401000100010b0182000100840001000100810001030181 +00018201000101018100010301850001000100010c01830001000101018100010c018100 +0101018f0001000100010001000100010001000105018700010001000100018801000100 +01000100010201810001050187000100010001000108018b000100010001000100010001 +820100010601820001008100010301810001010181000102018b00010001000100010001 +000104018700010001000100010301810001060183000100010101860001000100010081 +000114018700010001000100010101860001000100010081000103018100010101870001 +000100010001040181000101018500010001000106018300010001820100010501850001 +000100018201000101018100018101000200860100010001000105018900010001000100 +010001010183000100010201810001080181000102018100010201810001030189000100 +010001000100018201000101018300010001040181000111018300010001090183000100 +018101008100018a01000100010001000100018201000104018100010e01810001840100 +0100018201000105018100010001 +01018100010a018300010001820100010901810001840100010001860100010001000105 +018300010001840100010001070185000100010001840100010001020181000102018100 +018401000100010301810001010185000100010001030181000182010001010181000108 +0101000f0189000100010001000100010501870001000100010001050181000107018b00 +010001000100010001000105018600010001000100850001000100010301810001020101 +008c01000100010001000100010001860100010001000102018500010001000107018100 +0101010100040181000101018300010001010101008a0100010001000100010001080185 +000100010001140187000100010001000104018300010001010181000103018100010101 +820001008300010001810100810001030185000100010001030181000101018500010001 +000182010001010181000101018100010d01890001000100010001000105018700010001 +000100010201830001000105018300010001010185000100010001820100010701840001 +000100810001030185000100010001010181000107018100010101810001040181000186 +010001000100010601810001010181000102018100010401830001000103010100030181 +00018401000100010a01810001820100018301000100 +010181000103018100010c01830001000184010001000184010001000105018500010001 +000182010001090185000100010001820100010101810001820100010101810001820100 +018201000102018100010101830001000101018100010201810001840100010001090102 +0084010001000101018100010d0181000105018100018301000100830001000107018100 +018c01000100010001000100010001820100010501870001000100010001030181000106 +018700010001000100018101000200820100010101810001060181000101018200010081 +000103018e00010001000100010001000100010083000100010101810001010186000100 +010001008100010101810001050184000100010081000114018300010001050181000101 +018200010085000100010001030183000100010101810001020181000102010100860100 +010001000104010100020181000101018200010081000101018100010101810001010181 +000181010089000100010001000100010501810001010187000100010001000105018500 +010001000104018100010301830001000101018500010001000186010001000100010601 +8700010001000100010a0181000104018100018601000100010001070181000105018100 +010101810001020183000100018201000101018100010201020001018100010501830001 +0001820100010b01 +02018100010c018300010001840100010001050183000100018401000100010a01850001 +000100018201000101018100018201000101018100010401810001820100010201810001 +820100010101810001040181000101018100010101810001010185000100010001060181 +0001030102001101870001000100010001020181000102018a0001000100010001000100 +010008018100018601000100010001030181000101018300010001010186000100010001 +008300010001020181000102018100010101850001000100010101010002018100010101 +810001860100010001000101018500010001000106018700010001000100010301810001 +06018500010001000104018700010001000100010e018100010101850001000100010101 +810001020181000103018a00010001000100010001008300010001010181000181010081 +00010101810001010183000100010301810001010181000104018d000100010001000100 +01000100010101850001000100010101850001000100010b018700010001000100010a01 +830001000103018100010301810001020189000100010001000100018201000107018100 +01030181000110018100018c010001000100010001000100010201850001000100018401 +00010001020183000100010c0183000100010501830001000182010001820100010101 +060183000100010e018300010001820100010c0185000100010001050185000100010001 +040181000186010001000100010301010008018100018801000100010001000101018100 +010c0183000100018101008700010001000100010a018100010701810001010183000100 +0103018100010b0187000100010001000104018100010101830001000101018100010101 +870001000100010001060183000100018101008100010101830001000101018600010001 +000100810001010181000101018100010201830001000105018400010001008100010301 +810001070101008201000101018b00010001000100010001000109018100010201830001 +000104018700010001000100010201830001000101018300010001010181000106018500 +010001000182010001820100010101810001050183000100010101810001860100010001 +000103018100010f01870001000100010001010189000100010001000100010301810001 +010183000100010201810001840100010001880100010001000100010301810001040181 +000101018700010001000100018201000103018100010501810001030181000101018300 +010001820100010c01810001040181000104018100010201810001010181000184010001 +00018401000100010301810001020183000100010501810001 +020181000104018300010001020181000103018100010801830001000186010001000100 +010201810001020183000100010501850001000100010b01810001820100018601000100 +010001040181000103018100010201810001870100010001000100010001018300010001 +050181000102018300010001050181000101018300010001030187000100010001000101 +018b00010001000100010001000182010001020183000100010101810001820100010101 +870001000100010001070184000100010081000104018100010601810001050101008601 +0001000100018c0100010001000100010001000105018100010201810001010188000100 +01000100010081000101018100010501840001000100870001000100010001820100010b +018500010001000103018200010085000100010001030181000101018300010001010181 +000104018100010101810001010185000100010001820100010201820001008300010001 +030183000100010101860001000100010081000186010001000100010701870001000100 +01000103018300010001010181000101018100010201810001820100010a018900010001 +000100010001020181000103018300010001110181000102018500010001000102018500 +010001000186010001000100010101830001000102018300010001020181000182010001 +0401810001070184000100010081000105018100010201810001 +810001820100010101810001020181000101018100010101010006018300010001050181 +000102018300010001040181000186010001000100010701850001000100018401000100 +0107018100018601000100010001020101000301810001040181000106018b0001000100 +010001000100010301040084010001000102018700010001000100010501830001000109 +018100010201010008018200010081000105018900010001000100010001050182000100 +8100010101870001000100010001010185000100010001020181000103018100010c0183 +000100018c0100010001000100010001000108018700010001000100010d018300010001 +020183000100018201000105018700010001000100010401890001000100010001000181 +010081000184010001000102018100010201810001030181000103018100010201810001 +010189000100010001000100010301810001820100018201000103018200010081000181 +010081000106018700010001000100010301810001050181000101018900010001000100 +010001840100010001050181000186010001000100010701810001090181000102018100 +010501810001070181000103018100010301810001040181000182010001030102000201 +83000100018401000100010501810001850100010001008100010201 +020181000102018100010701870001000100010001820100010401810001820100010401 +830001000184010001000109018300010001820100010601830001000184010001000182 +010001060181000182010001030181000101018200010081000102018200010003008201 +000103018100018201000182010001010181000104018100010501890001000100010001 +000103018900010001000100010001020181000103018100010801010001010100080187 +000100010001000102018100018201000103018100018201000101018100010101830001 +000184010001000101010100860100010001000105018400010001008100010701840001 +000100830001000107018100010101010086010001000100010301830001000101018300 +0200028402000200028402010201028b0201020100020002000100010701810001840100 +010001010183000100010101810001010183000100010301840001000100810001010181 +000107018600010001000100810001030187000100010001000105018700010001000100 +010601870001000100010001050181000101018300010001010181000104018700010001 +00010001060183000100010f018700010001000100018601000100010001080183000100 +0102018300010001010181000182010001040181000104018100010a0183000100018201 +000107018100010001 +820100010301010001018300010001820100010501810001840100010001030185000100 +010001820100010701850001000100018401000100010401830001000184010001000104 +018300010001030185000100010001040183000100010101830001000103018300010001 +070181000182010001010181000184010001000101018500010001000102018300010001 +070185000100010001050185000100010001040181000101010100020183000100010501 +01008601000100010001030181000108018b000100010001000100010001010181000101 +010100020183000100010601810001010183000100010301810001880100010001000100 +010801870001000100010001010181000104018300010001830100010085000100010001 +010101008c01000201020002000102010001050101028801000100020002000283020102 +010201830001020102018102018201000102018100010901810001010184000100010081 +000103018100010301830001000103018100010101870001000100010001050189000100 +010001000100010501810001820100010101810001010102000201830001000102018100 +010301850001000100018201000107018100018201000104018100018201000182010001 +020183000100010501810001040181000104018100010401830001000109018300010001 +820100018201000107018300010001820100010301 +03018100018201000101010200050181000104018100018401000100010a018500010001 +000107018100018601000100010001060181000187010001000100010081000184010001 +00018a010001000100010001000181010083000100010101810001050102000301870001 +000100010001020181000101018500010001000181010081000104018100018301000100 +810001040103008101008100018201000102018500010001000103018100010201870001 +000100010001040187000100010001000101018900010001000100010001840100010001 +820100010201810001010181000101010100040101008401000100010301810001010183 +000100018201000109018200010083000100010701840001000100830001000104018100 +010101010202018200010285020100010001010101028700010200010001028502000201 +020183010201028902010001000100020001030101000101840001020100810001010101 +008301000100830001000101018200010081000103018300010001020101008201000101 +018300010001010181000103018100010101890001000100010001000105018100010401 +810001040181000102018300010001030181000101018100018201000101018100010401 +810001050181000101018100010301010001018100010101810001040181000105018500 +010001000186010001000100018601000100010001840100010001040183000100010801 +8300010001820100010701810001810100 +810100810001820100010601810001080181000105018300010001860100010001000105 +018300010001840100010001040183000100018801000100010001000186010001000100 +010101830001000102018100010a01810001010181000104018500010001000182010001 +07018200010083000100010b018300010001030187000100010001000101018100010101 +830001000182010001820100010301820001008100010101810001050187000100010001 +000102018900010001000100010001030181000103018100010101010084010001000101 +018100018801000100010001000104018300010001010181000108018700010001000100 +010601870001000100010001040181000108010100850100020001008600010002000102 +850200020001008300020002830201000101018700020001000100018301020102880200 +020102000100018101008400020001008200020106018300010001010181000104018300 +010001020182020001820100018a01000100010001000100010101830001000101018100 +010301810001030187000100010001000105018a00010001000100010001008100010101 +870001000100010001040181000101018300010001040181000101018300010001040101 +000401870001000100010001860100010001000103018100010101810001820100010101 +810001050181000103010100820100018401000100018601000100010001050181000184 +01000100010401 +810001050185000100010001020181000108018100018401000100010701830001000182 +010001040183000100018401000100010101810001840100010001060181000102018200 +010081000182010001010181000188010001000100010001010181000101010100010181 +000105018900010001000100010001020101000201860001000100010081000105018300 +010001010181000101018300010001010181000105018100010101870001000100010001 +040185000100010001030182000100830001000105018100010101850001000100018401 +000100018201000101018100018401000100010101810001020181000101010100010181 +000182010001010188000100010001000100810001030188000100010001000100810001 +050181000106018500010001000102010100850200010002008200020185010201020102 +8402010200028c0201020002000100020001000289020102000200010001028202000283 +020102018501020102010281020182010001020183000100010201810001010101008201 +000103018300010001810102840200010002840200020002910201020100020002000200 +010001000100010101830001000101018100010301810001010181000103018100010101 +83000100018801000100010001000101018300010001860100010001000101018100010a +018100010401830001000182010001080181000101018100010301810001040181000101 +018100018201000102010100010181000105018300010001840100010001840100010001 +8201000105018300010001 +020183000100018201000104018100018401000100010301810001050185000100010001 +820100010701830001000104018500010001000106018100018401000100010201810001 +020181000102018100018401000100010301830001000101018100010501020084010001 +000103018300010001810100020084010001000108018900010001000100010001010181 +000105018900010001000100010001830100010081000103018100010201890001000100 +010001000104018700010001000100010101810001010183000100010301850001000100 +018201000101018600010001000100810001010183000100010601810001050182000100 +850001000100010801810001030181000101018400010001008500010001000102018100 +010201950002000200010200020002000100010002010201020183010200010201850201 +020002008600020001000102860201020001000102018100010101820002010601870001 +000100010001910100010001000100010001000200020100018301000201890100020001 +000100020104018d02010001000100010001000100010101830001000102018100018201 +0001030183000100010a0187000100010001000104018100010401010082010001820100 +010101820001008300010001040184000100010001000601830001000102018300010001 +020183000100018401000100010101010002018100018401000100018201000105018300 +01000184010001000184010001000182010001 +810001050181000102018300010001030183000100010301830001000105018300010001 +880100010001000100018401000100018201000103018100018401000100018401000100 +010201830001000101018100018201000182010001040185000100010001030181000102 +018100018201000103018100010101850001000100010201830001000104018500010001 +00010e018900010001000100010001070181000102010100820100010201810001070187 +000100010001000104018700010001000100010b01830001000186010001000100010201 +830001000102018200010081000102018100018101008300010001020181000105018700 +010001000100018c01000100010001000100010001040181000102010100930100010002 +0002010002000200020002000100018b0100010002000102010001028402010200028302 +01020102018700010001000200018a010001020100020102000102010100020181000102 +018300010001030189000100010002010200010101850001000200010101860001020100 +020084000201000185010201020102810201010189000100010001000100018101000100 +870102000200010001010187000100010001000182010001070183000100018201000107 +018100010201810001010101000201850001000100018401000100010101810001010181 +000103018100010401810001840100010001020181000182010001010183000100010201 +81000102018100018201000107018300010001820100010201 +030183000100010901810001820100010201810001030185000100010001840100010001 +820100010801810001840100010001840100010001080181000104018300010001820100 +010301830001000106018500010001000102018100010101890001000100010001000182 +01000101018100018101000100840100010001010181000108018b000100010001000100 +010001050186000100010001000200820100010101810001820100010201870001000100 +010001050184000100010081000107018300010001030183000100010101830001000104 +018300010001020181000102010100810100810001030181000106018500010001000103 +018200010085000100010001050181000106018100018101008e00010001000100010002 +010001000101019200010200010001000200020002000100010001840100010001860102 +000102010282020102810201880100010001000100010b01010004018300010001040185 +020002000201820102018501020102000282020100860001020102000189010002000100 +010200010d0186020001000100018a010201000201020002010281020101018a02000100 +010001000100010901810001840100010001010181000186010001000100010201810001 +010181000182010001050181000101018500010001000107018100010401810001040181 +0001030181000104018100018401000100010801810001 +820100010501810001010181000103018100010101810001030181000184010001000182 +010001060181000186010001000100018201000108018100018601000100010001860100 +010001000108018100010801810001010181000101018300010001020183000100010601 +870001000100010001040181000182010001010181000182010001880100010001000100 +0105018b0001000100010001000100010101810001020181000101018100010201810001 +020189000100010001000100010601870001000100010001070181000106010200820100 +01030101008201000182010001020181000106018400010001008b000100010001000100 +010001060181000102018302000201810100870001000100010001050181020101018802 +000102010002000284020102010284020100010281020102018202010087000100010002 +00028a020100010002000200010081000101018200010283020001008100018201000101 +018100010201810001050101008201000185010002010001850100010002008900010002 +010201020001850102000200028302010001010185000100010001810100810001010183 +000100028402010201028102008500010002000187010200010001000101010102820102 +010101850001000100010201830001000103018500020001000182010001040181000101 +018300010001820100010101810001820100010401810001020185000100010001020181 +000104018100018601000100010001030183000100018401000100010201810001820100 +018401000100010001 +010183000100018201000101010100840100010001030181000182010001010181000105 +018100018601000100010001820100010301810001020181000186010001000100018401 +000100010801810001860100010001000101018300010001860100010001000101018100 +010101810001010183000100010301870001000100010001070181000101018100010101 +830001000101018100010a01010086010001000100010101810001040185000100010001 +010182000100860001000100010081000103018d00010001000100010001000100018201 +000105018100010301810001010183000100010601830001000182010001010101000401 +830001000101018500010001000104018100010501820001008300010001010189000100 +010002000200018201000104010100920100010001000100020100010002000200010084 +000100020182010001880102010200010201028202010292020102000200010001000201 +020100010002010101810201030181000183010001008300010001010185000100010001 +02018100018501000100020183010201028302010201010189000200020001000200018d +01020001020100020001000100010401810001890102010001000100020081000101018a +000200010002000102010286020002000200010c01850001000100018401020102010101 +890200020001000102000103018100010301810001010183000100010201830001000104 +018100010201830001000184010001000105018300010001820100010401810001820100 +0184010001000102010000 +060181000183010001008100010101830001000186010001000100010301810001820100 +010601810001020181000182010001010181000184010001000109018700010001000100 +018201000103018100010601850001000100010101830001000101018100010301830001 +000107018300010001070189000100010001000100018101008100018501000100010081 +000182010001820100010401810001870100010001000100890001000100010001000182 +01000101018400010001008100010701810001060185000100010001030181000101018a +000100010001000100010081000103010100840100010001010182000100830001000105 +018100010601850001000100010101010084010001000282020102870200020102010001 +01018300010001810100830001000181010284020001000103010102820102008b000200 +01000100010002000285020002010201820100010501810001820100018101008a000100 +020001000100010081000182010001020183000100010101820001008700010001000100 +018e010200010001000200020001000102820200010101820201028c0201020001000100 +010002000103018300010001030187020102010001000181010081000281020101019002 +000102010001000100020001000100018401000100010101010001018300010201830102 +010082000100810001860100010201020101018802000200010001000103018100010401 +830001000101018300010001820100018201000101018100010501830001000107018100 +01840100010001820100010401810001810100 +010181000184010001000182010001840100010001010181000107010100030183000100 +018401000100010201830001000184010001000107018700010001000100018201000104 +018100010101850001000100018101008100018a01000100010001000100010201830001 +000101010100040187000100010001000103010100840100010001060187000100010001 +00010401810001030181000101018b000100010001000100010001010181000103018100 +010101810001820100010601810001010183000100010101880001000100010001008600 +010001000100810001040181000101018100010101010086010001000100018401000100 +01060181000182010001820100010101820001008b000100010001000100010001810102 +840200020102890201000102010002000102018300010001030185000100010002890200 +02000100010001028202010284020002010286020100020001008d000200020001020100 +020002000282020102830201020081000101018c02010001000100010001000100810001 +030183000100018601000100010001010102008201000105018f02010002010200020001 +020100020102840201020102810201860100010001000103019200020100020102010002 +000201020001000102860201000102010282020001820102010301830001000101018100 +01020186020002000200018101008e000102010001000100010001000201060181000102 +0183000100010401830001000102018d0002000200020102010001020001020183000200 +018401000100018201000107018300010001820100010101 +810001020183000100010301810001020183000100018201000101010100030181000102 +01850001000100018201000109018300010001840100010001040181000101018100018a +010001000100010001000103018100010b01810001010183000100010201830001000105 +018100018401000100010301820001008500010001000105018100018401000100010101 +8b0001000100010001000100010701020001010100020181000104018700010001000100 +01820100010301870001000100010001040181000107018a000100010001000100010085 +000100010001010181000184010001000103018100010101010088010001000100010001 +060182000102840201000102840200010002860201020102010083000100010401010003 +018402010001028702000200010201008400010001028202000281020101018200020102 +018a02000200010001000200028402000200028102018401020102010201810001040181 +000101018300010001020181000105018200010081000190010001000200020001000100 +02000201028e0201000102010001000102010002010b0191000200020002000102000200 +020001000100810001010189000100020102000200010101810001040181000182010001 +010181020101018102008800020002010200020101010102810001820100010201810001 +010183000100010201850001000100010201810001010184020001000182010001020184 +000200020101018102018e0102010201020002000201000100018201000105010000 +020183000100010201810001020101008201000102018100010701810001820100010601 +810001860100010001000182010001040181000102018700010001000100018401000100 +010801820001008100018201000188010001000100010001010181000103018300010001 +020183000100010401870001000100010001820100010401890001000100010001000101 +018700010001000100010701870001000100010001010181000102018300010001810100 +830001000107018200010083000100010501810001060181000181010081000101010100 +010181000108018300010001820100010101860001000100010001008201000182010001 +040181000101018d00010001020100010002010001028502000200020184010201020104 +0181000103018f000100020002010002000200020001008b000200010002010200020001 +8d0100010201020100010201020102830201020082000200010088010001000200020001 +830100010083000100018401000100010101010088010001000100010001020101028801 +00010002010201028302010001010189000100010001000201028d020100010201000100 +010001000103010100840201020102880200020002000102010101010283000200028702 +000200020102018201000101018100010301810001010194000100010200020001020102 +000201020100010001820102010101810001020181000103018300010001040181000185 +010001000100940002000201020100010001020002000201000100018501000201020182 +0102010301870201020002010001810102 +810001020181000182010001840100010001050183000100018201000182010001040183 +000100018401000100010701810001020187000100010001000184010001000106018300 +010001860100010001000104018300010001030185000100010001010185000100010001 +010181000101018300010001090184000100010001008801000100010001000182010001 +8201000103018b0001000100010001000100010101810001050181000184010001000181 +010081000103018700010001000100010401810001030181000101018600010001000100 +810001820100010401810001010186000100010001008100010101830001000182010001 +010181000101018100010101810001020185000100010001830100010287020102000200 +0100810002840201020102870201020002000100850001000100010201010004018a0200 +010001020100020102830201020102018600010001000100910002000100020102000200 +010001000201028302010002810201880100010001000100010401830001000101010100 +080183000100018201020001000201860002000100010284020102010284020100010283 +02000200850001000102010b010102870002000200010201020189000100010002000201 +028c0201020102000200010001000102018100018c010001000100010201020100018401 +020102018401000100028602000200020001820100018a01000100010001000100010101 +810001820100010601010087020102000200020101019000010201020100010001020001 +000100018701000100020100010501810001 +840100010001050181000185010001000100810001040181000102018100018201000107 +018500010001000186010001000100018401000100010601830001000184010001000106 +018500010001000182010001820100018401000100010401010084010001000101018100 +0109018700010001000100010301010001018100010501810001030183000100010f0185 +00010001000106018100010b0181000103018100018a01000100010001000100010c0101 +000101830001000104018300010001010101008401000100010101860001000100010081 +0001010184000100010088000100010001000201010101028c0001000200010001000201 +02018201020186010001000100018101008f000100010001000102000100020102008800 +02000200020001028402010201028a020102000100010002000103018702000100010002 +010301840201020002810201810100010086010001000100010201870001000100010001 +0101830001000101018a02010002000100020001008a000100010002010201020101018c +020002010200010001000100010201010082010001010181000102018600020001020102 +8c020102010200020001000100010e018600010001000100850001020102010101820201 +028502010201020182010001040181000102018100010101810001040183000100018101 +008100028302000201870102010201000102860201000200020103018902010200020100 +0100010201870001020002000201 +030183000100018201000109018100018201000106018100018201000184010001000184 +010001000184010001000106018300010001840100010001060183000100018401000100 +010601890001000100010001000188010001000100010001010183000100010401850001 +000100010501850001000100018201000102018100010101830001000105018100010101 +810001810100870001000100010001030185000100010001840100010001010182000100 +010086010001000100010101880001000100010001008100010501810001050101000401 +020002018500010001000102018300010001040181000101018300010001840100010001 +030183020102018a0100010002000200020002820201028a020102010201000100020081 +000101018300010001810100810001040189000200010001000100010401860201000100 +020086000201020102018101028502010200020092000200010001020001020001000100 +020100010501840001000100920001000100010001000100010001000100020103019502 +010200010201020001000100020002000200010001840102000201020181000106018100 +028102008700010200010201028902010001000200020001060182020001840100010001 +860100010001000106010100850100010201008100028f02010001000102010201000100 +010001010181000102018900010001000100010001920100010001020102010201000100 +010001020103018c0201000201000200010200020101018c000102000200020002010002 +01 +820100010501810001840100010001810100830001000101018100018201000182010001 +020185000100010001820100010801810001840100010001060181000186010001000100 +010601810001860100010001000101018100010101830001000184010001000101018300 +010001010185000100010001040102008401000100010101810001020181000101018100 +018201000105018100018201000101018100010501010086010001000100010101810001 +02018100010b0189000100010001000100010a0181000101018600010001000100020082 +0100010101880001000100010001000200820100018a0100010001000100010001030181 +0001890100010002000200010082000201830102010281020101018a0002000200020001 +000102870200020002010001070184000100010081000181010284020100020087000100 +020002000282020102940201020100020001000100010002000200010201028a02010002 +010200010001008200010282020001010183000100010101810001020185000100010001 +010181000101018100018101008200010081000289020100020102010200018201020188 +01000100010001000185010200010001010181000103018100018d010201020102000100 +0100010001810102810201010189020002000100010002010c018e000100020100020002 +000201000102810201010185000102010001070187000100010001000104018300010001 +820100010301850200020100010101810201890100020002010001000107018e00020102 +01000102000201020102010001 +01018300010001820100010701020004018100010e018300010001860100010001000104 +0181000186010001000100010601810001880100010001000100018a0100010001000100 +010001010181000106018100010301810001010181000101018100010401830001000181 +010081000102018100010401810001010181000182010001820100010201890001000100 +010001000102018100010701810001890100010001000100010081000183010001008100 +010601850001000100018a01000100010001000100010101810001010181000101018300 +010001020185000100010001020185000100010001040186000100010001008100018201 +02010101820201029902010200020001000100020002010201000200020001020102018e +010201000100010001000100010001010181000294020002000102010200010001000200 +020001000100870001000201020102820201028c02010201000100010001020001010182 +000201020183000102008100010301810001820100010101810001030185000100010001 +880102010200020001008700010002000200010101810001880102010200010201028202 +000285020100010001030181000187010001000100010081000102018f02010200010001 +000102000100010201010185000100010001010182000100810001870100010002000200 +830002010001008201000191010201020100010002010001000100010001020187000100 +0100010001020181000182010001810100810001820100019e0102000201000102010200 +02010201020100010200020002010001020102018901020102000201000100 +060181000184010001000182010001050181000101018100018201000182010001010181 +000182010001060181000186010001000100010901830001000182010001010185000100 +01000102018100010c018b000100010001000100010001010181000101018100018a0100 +010001000100010001040181000101018100010101010082010001860100010001000101 +018100010501810001070182000100020084010001000186010001000100010201810001 +02018f000100010001000100010001000100010201810001030181000101010100840100 +010001020101008401000100010101010085010001000100850001000100010501010202 +0186000200010002008c0002000100020001000102010283020102018a01020002000102 +010200010501810001010183000100018901000200020102000100810002820201028302 +01020183010001008c000100010002000200010001008100018301020102810201820100 +0283020001008d0002000100010001000100010001820100010101810001010185000100 +010001010181000183010001020102010190000201020100020002000100020002000289 +02010001000201020001030183000100010201010283000100018a010001000100020102 +00028402010201028b0201020100020002000100010b0182000201850102000201028e02 +010201020002010200010201020103018100010101810001040181000101010100820100 +0199010001000102010201020002000201000200020102010002000103018d0002010201 +020100010200020001820100010301 +010181000182010001050183000100018201000182010001010181000182010001010181 +000105018300010001840100010001060181000184010001000188010001000100010001 +860100010001000108018300010001840100010001010185000100010001060183000100 +010101810001820100010501870001000100010001010181000103018100010101810001 +010181000101018300010001030181000101018b00010001000100010001000104010100 +010101008201000101018100018301000100850001000100010501810001010101000201 +830001000101018100010201810001020183000100018601000100010001040181000108 +018d00020001020002000102010201028302000201820102010101030281010084000102 +01028402010201028e020102010200010001000100010001020184000102010281020101 +0181020101018700010001000100028402010201028a02010002000200020001008a0001 +000200020001020102830201000183010201028302010201010181000186010001000100 +010101820001008100010101810001830100010085000100010201820102010101810201 +9801000102010201000200020001000100020001020100010001030101009a0100010001 +000102000100020002000201020001000100020002018401020102018301000100810001 +820100018201000186010001020100018301000100010082010201820100028602010201 +020001840100010001010181000101018300010001020181000106010300890200020102 +010001020102018100018401000100018c01000102010200020002010201820100018801 +0201020100020100 +810001840100010001840100010001020181000182010001840100010001820100010201 +810001040181000106018100018401000100018201000101018300010001820100010d01 +890001000100010001000182010001070183000100018601000100010001010183000100 +010101810001860100010001000105018800010001000100010001008201000101018300 +010001810100810001010189000100010001000100010701810001050181000101018100 +010101810001090181000101018300010001010181000102018700010001000100010101 +810001030181000101010200030182000100830001000101010100870100010001000201 +830100020083000200010101840201020102840201020102830200020192010001020102 +000102010001000200010200010701840001000100880001000100010002008500020002 +000101010102820102008800020002000102010282020102810201880102010001000200 +028c02000200010002000200020001810100810001010181000102018600010001000100 +830001000102018100019501000100010201000200010001000201020001020102820200 +010501860002000200010081000101018100010101840201020102840200020102820200 +010101870001000100010001010185000200010001040181000182010001010181000287 +020001020002000284020102010083000201028702010001020102010201810001020181 +000103018100018601000100010001010101000401830200020101019700010001020102 +01000102010201020002000201000100018c01020102000200020102010200 +810001050181000184010001000105018100010401810001820100010201810001010181 +000184010001000102018300010001840100010001080181000186010001000100018601 +000100010001080183000100018101008100010801830001000101018700010001000100 +010101010088010001000100010001050101000101830001000103018100018101008500 +010001000105018700010001000100010101860001000100010083000100010101820001 +008100010401830001000182010001010189000100010001000100010401860001000100 +010081000186010001000100018801000100010001000102018100018901000100010001 +0001028f0201020002010001000200010001000184010201020186010200020001008300 +02010282020102020283010201028a020001000100010001000104018902010001000201 +0201028a02010200010001000200028b0201020102000100020001008300020002850201 +000201028602010001020102010282000201820102010101820001008500010001000108 +018100010101830001000101018102018101029002010001000200020001000100020102 +008300020002820200028102010701880001000200020002008300020002840201020102 +930201020100020102000200020001000100010001020181000182010001010101029600 +020102010200010001000100020102010201000102018201000101018300010001860100 +01000100010401810001020186020100010200018c010200020102010201020002010101 +85000100010201830100020101018e000102000200010200020002010201 +840100010001820100010501830001000182010001020102008101008100010901850001 +000100018401000100010601810001850100010001008700010001000100010901870001 +000100010001050181000188010001000100010001030181000108018100010a01850001 +000100018201000101018900010001000100010001050185000100010001010189000100 +010001000100010101010002018500010001000101018100010101840001000100850001 +000100010501840001000100830001000105018100010101810001030181000106010100 +020181000101018200010285020002010201840100010201850102000200028802000200 +02000100018a010201020100020001000284020100010281020187010200010001000103 +018200010083000100028402010001008a00010002000200020001028b02010001000200 +010001000183010201028502010200010285020002010201820102018201020183010201 +028102008300010001820100010301820001008700010001000100018201000188010002 +00010001000281020101010102820102018b010001000100020001020102870201000100 +0100010101810001040101029001000200020002000100010002000201028a0200020102 +0102000102010b0185000200020100810002830201020101018500010201000103018302 +010001010183000100010201810001030181000182010001040188000100010001020001 +940102010002000102010200020102010201000102018f01000201020102010200020102 +01000182010001 +080183000100010501830001000101018300010001010101001301840001000100810001 +0101830001000109018700010001000100010b0182000100810001020183000100018301 +000100810001810100850001000100010401810001880100010001000100010101840001 +000100810001810100820001000200040183000100018801000100010001000103018100 +01030181000101018300010001040101000a018900010001000100010001080185000100 +010001010102008501000100010088000100010001000100860001000100010086000100 +010002018901020100010200010001850102010201028202010286020102010201028402 +000201028702000102010201028702010201020100010101860001000100010088000100 +020001000100850001000100018101028402010001008300010001810102860201020100 +020088000200020001000102810201820100018301000201810100820001028302010001 +8a01000100010001000100010201810001010181000104010102820102018e0102000200 +01000100010001000102820201028a020002000200010001020102018100010101860001 +00010002008b0002010200010201000102008e0002010002000100020001020102010101 +8100010201020001018e0002000200020100020002000201028902010201020102000201 +840100010001030181000101018300010001820100018401000100010101810001840102 +010201010189020001000102000200019301020100010200010001020002010201000100 +010101850200020102010201 +820100018401000100018201000184010001000182010001020182000100020082010001 +820100018401000100010401850001000100018601000100010001020181000104018500 +0100010001820100010a0183000100018401000100010101810001010181000104018500 +010001000103018100018201000101018100010101850001000100010101830001000105 +018100018201000102018300010001010101000401810001010183000100010101830001 +000101018300010001880100010001000100010301870001000100010001080186000100 +010001008700010001000100010501810001040181000101018100010201810001010181 +000189010002010200020002008400020102018101028502000200020084000201020185 +010201000102840201000102820201028102010101010282010201010185000100010001 +010101008501000200020101018400020001028a02000100010001000201028b02000200 +020001000201020183010201028402010001008800020002000102010284020102000101 +018100010201830001000188010001000100010001820100010301890200010001000200 +020101018402010201028a02000200010001000200028702010201000100010101810001 +8701000100010002008300010001810102840201020102850200020102018d0102000100 +010001000100010001050181000102019300010001000100010002010002000201020102 +018201020102018100018201000101018500010001000182010001020187000100010201 +000289020002010201000102010301820200018201000101019602010201020100010001 +020001000102010201000100010001 +0601810001070183000100010c0101000301810001010183000100010901850001000100 +018201000108018300010001860100010001000102018900010001000100010001030181 +000182010001030185000100010001010182000100810001010181000101018100010701 +840001000100810001860100010001000105018100010101830001000101018100018a01 +00010001000100010001040183000100010101810001820100010a0101008b0100010001 +000100010001008100010301830001000182010001870100010001000100860001000100 +010081000101018100018201000101018400010002018101008f00010002000102010201 +000200020102840200020002820201028402010201028202000181010282020002850201 +000100010101870001000100010001020102008202000185010201020102a00200020001 +020002000100020002000102000200010002000200010002010201028102018601000102 +00010283020100018401000100010201830001000101018100010101020002018c000200 +010201000100010001008700010001000201028402010201028102018801000100010001 +00010201a000010001000100020100020002000200010001000201020001020102010200 +010281020105018500010001000181010001008202010284020102000202028801020002 +0002000200870002000100010001020101000801820001008c0002010200010201020102 +000198010201000100010201020002010201000102000200020100010301810201010187 +0001000201000100 +010183000100018401000100018201000182010001040181000181010081000101018300 +01000103018100010201810001030185000100010001820100010b018500010001000104 +018700010001000100010401810001040101008201000186010001000100010301830001 +000106018100010301910001000100010001000100010001000100010301810001810100 +810001010181000101018400010001008100010701850001000100019701000100010001 +000100010001000100010001000100010085000100010001050101008401000100010501 +810001010183000100010201830001000101010100020101008a01000100010201000200 +0286020002000100028a0201020001020102010201010184020102000284020100010285 +020002000201810102810201030181000101018200010085000100010200820002008e00 +020002000100020102010002010286020100020102018101000200820100010101840201 +0201008b0001000200010001000201008200020083000100010101820001008500010001 +000101018200010083000100018201000101018102018401020102009300020001000100 +020002000100010001000200010101810201840100010001030183000100018201020183 +010201028e02010001000200020002000100010284020002000101010100820100010201 +830001000181010001008701000102010200028802010001020002010202020101810001 +010183000100010201870001000100010001010181000201020101830001000184010002 +00019301020102010001020102000201000102010200018e010201000100010200020100 +0102018301020102 +010181000107018100018201000184010001000107018300010001820100010601810001 +820100010b01850001000100018201000101018100018601000100010001030181000109 +01850001000100010701850001000100010101850001000100018a010001000100010001 +00010901010003018f000100010001000100010001000100010701820001008300010001 +060188000100010001000100810001880100010001000100010601870001000100010001 +060181000102018100018401000100010101820001008100010101810001850100010001 +008500010001000285020102010001820102010401010286010200010001028502000200 +020102010102860102010201000202028b00020001000100010001000185010001000100 +830001020183010201028602010201000200860002000200020185010001000201810102 +950201020100020002000102000100020001020102010283020102010101840001000100 +810001030181000101018200010001000301880200010201000200028402010201028102 +018b0102000100010001000201028702010001000100010201880001000100010002008a +00020002000200010201028d020102010200010001000200020104018100010101830001 +000101010100820201029402000200020001000200010201020001020001000101018100 +010301830001000104010100820100018f01020102010201020102000201020002890200 +020001000201020181010283020002019201020002010201020102010201020100010001 +810100 +010181000182010001840100010001050183000100018401000100010701810001820100 +018401000100010601850001000100018201000101018100018601000100010001040181 +000104018100010101870001000100010001820100010301870001000100010001030183 +000100010101810001010101000201810001030185000100010001810100870001000100 +010001010181000109018900010001000100010001060186000100010001008100010101 +810001040181000106018400010001008100010701820001008300010001010181000103 +018100010101830001000188010001000100010001070186000102010201028102010101 +870201000100010002850201020102010101810201820100028702000200020001028302 +010201840102010201040181000101018100018701000100010001008500020002000282 +020102840201020102890201020001000200020086000100020001028202010291020001 +000200010201000200010001000200810001010181000102018300010001010181000103 +01810001010183000200028102018c010201000200020001000100018101028402010201 +028802000200010001000183010001008300010001010101008202010284020102010289 +020100010001000100010601820200018101008100018201000182010001010182000100 +8300010002820200028a0201020102010001000102820201028102010101010001018500 +01000100010101810001820100010301860002010002000183010001029d020002010201 +0201020002010201000100010200010002010201000200018c0102000100020002010201 +0201 +810001070181000184010001000103018300010001820100018801000100010001000101 +018100010101850001000100018201000101018100018601000100010001040181000104 +0181000101018100018a0100010001000100010001060181000105018100018601000100 +010001010183000100018101008100018101008100010101830001000103018100010101 +830001000103018600010001000100810001840100010001070188000100010001000100 +860001000100010083000100010101820001008100018801000100010001000101018200 +010089000100010001000100010401860001000100010001008402000100010101830001 +00010201820001008400010001008e000100010002000200010201020002810201020181 +020101010102810002840201020102840201020102820201020202810102870201020100 +020001010186000100010001008100010101010001028400020102018601020002000100 +880001000100010001028402010201028702000200010002000200810201840102010001 +810102840201020102810201010181000184010001000101018200010081000182010001 +840100010001010182020102880200010001000100018101028202010288020002000200 +0100018701020102000102010301850001000100018e0100020002000100010002010201 +028d02010201020001000100020002010301850001000100018201000101018302010201 +940102010002000201000100010002010200020100010301810001040183000100010201 +8300010001020183000100028f0200020002010201000100010201020106019000020102 +01000100010001020002010201830102000182010001 +810001820100018401000100010201810001840100010001080101000101810001060181 +000182010001860100010001000104018100010201830001000102018900010001000100 +010001820100010801850001000100010501010002018d00010001000100010001000100 +018201000102018300010001830100010081000102018100010101810001010181000102 +018100018201000102019100010001000100010001000100010001000104018100010301 +820001008300010001820100018801000100010001000108018900010001000100010001 +030101008202000101018300010001010101008201000101010100030183000100010101 +0102820102018a0102000100020001000102820200028402010201028402010201029302 +010201000200010201020001020102010201008100018601000100010001820100018101 +009000010200010002000100010001020001028702010201020001008400010002010201 +810201910100010002000200010201000201020001008300010001010101008c01000100 +010001000100010001830100010082000100850001000200010301010289000200010002 +000200028202010288020002000201000201830100010081000101018100018101000100 +8f0200010001000200010001000100010282020102860201020102000102018100010401 +01000101010086020001000100018a010201020102010001000183010002018401000100 +010101810001840100010001010181000104018100019e01020100010201020102000201 +000100010001020002000200020102010201010187020102010201020182010001840100 +01020182010201 +0201810001820100018401000100010a0183000100018401000100018401000100018201 +000102018100010301810001040181000102018500010001000186010001000100010801 +8100018e0100010001000100010001000100018301000100810001840100010001090185 +000100010001820100010501890001000100010001000102010100830100010083000100 +010201010086010001000100010701870001000100010001820100010401810001010181 +000182010001060186000100010001008100010301840001000100830001000281020101 +0101028100010301840001000100830001000186010001000100018c0100010001000100 +020002010281020104010102850102010201028202000284020102010284020102010282 +020102840201020102830201020181010081000104018100010101810001010101028301 +020102900201020001000201000100020002000102810201010188000200020001000200 +830002010283020102018201020102018202000101018300010001040181000102018100 +018201000181010082000100830001020101018a00010001000200020001028302010201 +830100010088000100010002010201050183000100018401000201028302010201020187 +020002000100010001008202000182010001820100010301830001000104018200020101 +018202010285020001000100020082020100860002010001000101018300010001020183 +000100010301970200010001000201020100010201020102010001020102010101890200 +020100010001000294020002000201000102010201020102010001020002 +820100010a01810001840100010001820100010101810001820100010401810001020101 +008201000101018100010201850001000100018401000100010b01890001000100010001 +000184010001000105018100010601010003018900010001000100010001040181000101 +018500010001000109018100011601870001000100010001070101000201830001000101 +018100018101008200010085000100010001010182000100890001000100010001000103 +0181020184010002000101018500010001000101018100010401810001820100010a0185 +020001020102840200010002840201020102810201870102010200010201850102010201 +028402000100028802000102010001000101018200010081000101018200010002008802 +000200010002000184010002010288020100020102010200960002000100010001020102 +000100010002000200010001840102000100850001000100018601000100010001840100 +010001820100018201000102018100018c01000200010002000100020102860201000100 +020088000100010201020102820200010101810001840100010001030101008a02000100 +010002000201028202010288020102010002000200810001020181000182010001010182 +000100820001028d02010001000100020002000201028a02010201020102000102018401 +0001000101018100010101810001860100010001000102018a0002010001000100010001 +010182020001020101029e01000102010201020002010001000100020100010001020002 +010201020102 +030181000184010001000182010001040181000184010001000107018100010201810001 +040183000100018401000100010801810001880100010001000100018601000100010001 +060181000101018300010001020183000100018201000188010001000100010001010185 +000100010001010181000108018c00010001000100010001000100010088010001000100 +010001820100018301000100830001000105018900010001000100010001040181000101 +018200010081000102010100860100010001000101010100080185000200020102810200 +880001020002000100010101810001010101008601000100010001840100010001830100 +010001000201810201860102010201000181010284020002000282020102840200020002 +820201028102010101010281010285020102000201820102008400010001008600010001 +000100860001000201020187010001000200020088000200010201000200830002010282 +020102850201020002008700020001000201028102018201020187010201000102000184 +010001000101018200010083000100010201850001000200018301000102010282010002 +820201028702000100010001008200010289020102000100010002010301860001000100 +01008a00020002000102010201028a020102000100010002000108018300010001020181 +000101010100850100020002018c01020102010201020002000100890002010201020002 +000102018500010001000102018100018301000201840100010001040192020102000200 +010001020002000201020100010501810001030189020001000201000200018301000100 + +010181000104018100018401000100018201000102018100010601830001000101018300 +01000182010001010181000106018100018401000100018a010001000100010001000106 +018100010201830001000101018100010201880001000100010001008100018201000106 +018100010401810001010181000186010001000100010101870001000100010001030181 +000101018100010101850001000100010101840001000100850001000100010501870001 +000100010001880100010001000100018201000103018100010301810001020102008701 +020102010201028f02010201000200020102010200010001010182000100810001030101 +000301810001050182020102850200020102018201020185010002010002840201020102 +820201028102018201000287020100020102010282020102810201820100018201000102 +018500010001000189010201000201020001028402010201028402000200010401890002 +000100010002000282020102820201028302000102820200018201020082000201020101 +008401000100010201830001000183010001000100010187000200010001020188010200 +010002010201830102010281020002008b02000100010002010001000101018300010001 +83010001028a020102000100010002000281020104018802000200010001020186010001 +000100018501000100010083000102018501020002000184010002000292020102010201 +02000200020102010200010001040183000102018401020102010301a902000200010200 +020100010201020102010200020100010001000100010201020100010001020102000102 +018102018301000100 +010183000100018201000102018100010a01830001000183010001008500010001000102 +018100010401830001000182010001010185000100010001060181000186010001000100 +010201810001010185000100010001820100010d01810001840100010001010186000100 +010001008100010201830001000105018100010301820001008100018201000101018300 +010001820100018201000106018900010001000100010001030183000100018201000103 +0181000105018100018a0100010001000100010001010181020182010002810201010182 +020002810201860100020001020188010001000100010001840100010001040181000188 +010001000100020102840201020002870201020100020102810201010183020001028102 +008200010282020102850201020102018101028202000182010201820100010101010005 +018400010001028302000201870100010002010001010187020100020002010282020102 +820201028702010002000200028502010002000282020100010001018300020001820100 +010101820001008100010301810001030186020100020102010201880001000100010001 +008300020002820201028202010201028200010282020100830001000103010100010189 +000200020001000102010101890001000100020002000287020102010201000184010001 +000105018100018f01020102000200010200020001000100860002000100010286020001 +0001020101018c0001000201000100010201020182010001860100020001000101018902 +010200020100010001820100019201020102010001000102000200020100010001010187 +0200020102010201810102 +01018100010a018100018401000100018601000100010001020183000100010301810001 +820100010501810001840100010001040181000101018100018201000101018100010201 +870001000100010001060189000100010001000100018201000103018100010301810001 +030181000107018100010301810001010183000100010101810001010185000100010001 +0101810001030187000100010001000102018b0001000100010001000100010201850001 +000100010101010001010100820100010701810002830200010284020102000202020101 +8a0002000102010201020001060181000183010001008400010001008100010401840201 +020102840201020102810201850102010201028202000281020101010102830102010282 +0201028c0201020102000100020002010083000100010201840001000100870001020102 +0102018101028102018301000102840200020102820201008a0001000200020001000100 +8d0001000100010201000200020001810102020201010100070181000101018100018101 +008500010001020189010200010001020100028202010285020102010200890002000100 +020002000101018102010301850001000100010101850001000200029502010201000200 +0200010001000201020102000100018b0100010001000100010001000100010187020002 +010200020102010102810100010081010287020102000100010286020100010001028302 +00020101018800010200020001000102019f020102010200020002000201000100010201 +0200010002000102000102010201030187000102000200020085000100010001 +040181000184010001000184010001000182010001060181000182010001820100018101 +008100010201810001030101000301810001020183000100010101810001020183000100 +010101810001040185000100010001840100010001060185000100010001810100810001 +010183000100010101830001000101018400010001008100010601850001000100018601 +000100010001020185000100010001820100018701000100010001000100830100010083 +000100010701820001008100010e01860001000100010285020102010201010182020102 +8402000100028c0201020100010002000100010085000100010001040101008201000189 +010001000100010001028702000201020100020202820102018401020102018101028402 +010201028802010201000201020087000200010201020186010200010001008500010001 +000104018102018601020002000200840001000102850200020001028202010284020102 +010282020102810201830102010282020102870201020001020100810001870102010001 +000100830001000101018300010001820100018601000102010002020282010201890102 +000100010002000282020102810201880102010201020001028202010081000106010100 +910100020102000100010002000100010201028a02000200020001020100018801000100 +0100010001020184000102000101018a0201020100010002010201810100830002000289 +020100010002000201028d020002010200020100010201020102018c0002010001000100 +010200020104019702000201000100010201020102000201000100010200010283020102 +018601020100010201 +810001840100010001820100010701810001840100010001820100010101810001820100 +010401810001840100010001040181000101018100010201850001000100018201000104 +018700010001000100010801850001000100018101008100018401000100010301870001 +000100010001030181000101018100010201870001000100010001050181000101018100 +018101008100010401810001070181000108018900010001000100010001020186000100 +010001008100018601000100010001820100028902010201020100020002010202010102 +850102000201008100010101010201018100018201000101010100820100010401810001 +08018102018101028a020102000200010201020181010284020002010283020002018301 +020102830201020083000200028202010282020100830001000102018100018201000102 +01830200010287020002000102000286020100020002008c000200020001000200010001 +008500010002010286020100020002018a01020102000100020100010101010084010001 +00010501810001010181000101018902010001000100010002820201028d020100020002 +00010001000201028102018201020102018d000100010001000100010200010285020102 +010201810102890201000100020002000287020002010201000182010001050188000100 +02000200020183010201028102018401000201028702010200020001028c020102010200 +010200010002008200010083000201028a02010001000200020102010101810201a40100 +010001020002010201020102010001020001000201020102010201020002000201000184 +0100010001 +810001050181000103018300010001020183000100018401000100010401820001008100 +010201810001020102008601000100010001820100010601850001000100010601810001 +900100010001000100010001000100010001080181000105018100018301000100830001 +000101010200030104008401000100010101810001830100010087000100010001000101 +018100018401000100010101840001000100830001000105018100010101010004018100 +0105018a0001000200010200020001810102830201020182010002860201020102010284 +020100010281020083000102018201000101018200010081000104018100010301010087 +010001020100010283020102018201020101010202870102010201000201830102010283 +020102018401020100018201020183010201028202000101010100830100010082000100 +010001018302000102940201000201020001000100020001020001000100018101028702 +010200010201028202010284020002000184010001020181010081000106018100010301 +820001008100018301000102880200020002000102018501020100020001008601000100 +010001030184000100010282020100870001000100010001030182000100010083010001 +008700010002010201028702010201020001028102010101810001010183000100018901 +0201000100010201028b0201020100010002010201029302000200020001000200010001 +02010001020102020201018202010283020100019b010201020100010001000201020102 +010201020002000200020100010101810201940100020100010200020002010201020102 +01020102 +820100018401000100010201830001000184010001000105018100010201830001000105 +018300010001840100010001060185000100010001840100010001040189000100010001 +000100018801000100010001000106018800010001000100010081000101018b00010001 +000100010001000103018100010301810001050184000100010003000201840001000100 +830001000182010001020183000100010601870001000100010001010181000182010001 +8101008100010101010004018102010101820201028f0201020002000102000200020002 +000281020101010102890102010201020001000105018700010001000100018101008100 +010101830001000181010283020102018301020102010201010102830002000282020102 +8402010201028e0200010201020102000200020002018301020001830100010081000101 +010100860100010002010284020102010289020100010002000100018701000100020001 +0284020002010285020102000102830201020183010002018b0102000100010002010001 +008300010001010183000100010301850001000100020102830002010282020100850001 +00020102820201028d020102000100010002000200010281020102018300010001860100 +0100010002820201028d0201020102000100020002000200010004018102010201810001 +820100018701000200010001000100010181000102018902000201020100020102820200 +028902010200020001000102840201020001870102010200010201020193000200020100 +020002000200020100010001000183010002010301960001020002000201000102010201 +020002010001000100810001 +840100010001820100018201000104018100010201810001820100010201850001000100 +018101008100010101810001020181000182010001820100018201000106018300010001 +8c0100010001000100010001000102018100010301830001000184010001000105018200 +010081000182010001840100010001030186000100010001008100018201000101018700 +010001000100010701020002018700010001000100018201000103018700010001000100 +010601880001000100010001008500010001000103018202010286020002010001028a02 +000200020102010201028102018201000286020100010200028502000201020086000100 +010001008300010001020183000100010101010002018300020002840200020002020282 +010001810102840201020001010101028101028402010201028202010082000102820201 +020102860001000100010084000100010083000100018301020001810102810201830100 +010281020183010201028102008900020002000200010200010083020002018201000101 +010100010201018400010200028302000201020101008801000100010001000181010081 +0001010101020101010286000200010002008b0002000200010001000201028202010282 +020102830201020086000100010001000100040188020001000200020002820201028402 +010201028102018201000283020102008a00010001000100010001020102820100010101 +820002008500010001000102018702010200010002018401000102018d01020100010002 +000201020102010201830201000196010002000102010201020102000201000100010001 +020188010002000102000102830201020101018402000200018501000100020101018202 +0002 +050181000103018300010001020183000100018401000100011301810001040183000100 +018a01000100010001000100010b01810001010183000100010401890001000100010001 +000101010100820100010101810001030181000101018600010001000100810001820100 +010101810001030189000100010001000100010101810001050182000100850001000100 +010101810001010186000100010001008100010a01810001010101000101860201020102 +01028602010201020102880200020002010001028402010201028a020102010201020100 +020103018100010401820001008100018201000101018700010001000200018101028202 +010287020102010002000282020001810102810201850102010201028102018301000100 +810002820201028102018601000102010001020181000104018200010283020102018201 +020102018600020001000100820001028202010284020100020081000187010200010002 +010289020102010201020002008900020001000100010001060181000101018b00010001 +00010001000201028102018201020103018d020100020002000200010002000285020102 +010201050101009701000200020001000201020102000100020001000100010286020102 +010200010801010201018302010001010185020001020102840201020100830001000183 +0102000286020100020100018c0102010201020102000201020184010001000102018a02 +010001000102000200010201830201020190010001000100010200020002010001000103 +018302010201870102010001020100 +010183000100010201810001840100010001840100010001050183000100018601000100 +010001020181000182010001820100010301870001000100010001820100010101810001 +020185000100010001840100010001010183000100018601000100010001030187000100 +01000100018201000181010081000101018700010001000100010b018700010001000100 +010501820001000100020181000101018100010101810001860100010001000101018300 +010001060184000100010001008301000100830001000104018202010282020100830002 +000281020181010281020182010002860201000102010285020002010201880100010201 +000200010501850001000100018401000100010601010201008402000200028302010201 +830102010284020102010283020102018101028402010201028102018501020100010284 +020102000101018100010201010085010001000102810201840102010201830102010281 +020183010201028902010002000100020001010182020001820102000100810200850002 +010201008300020102830201020181010089000100010001000100010101810001010186 +000100010001028102008900020001000100020002840201020102820201028202010282 +02000103018600010001000100870001000100020102820201028c020002000200010002 +010201028402010001028402010200018401000100010101010001018f00010001000100 +020002010200010201020181000101019000010201000100020002000200010200018701 +020102010201028102018d0102000200020100010201020102010283000200029f020002 +0100010201020102010200020100010001000102000200020100010201810102810200 +03018100018401000100010801850001000100010a018100018201000101018100018201 +000102018100010201810001020183000100010201810001060185000100010001040189 +000100010001000100010101830001000181010003000201830001000101018100010101 +890001000100010001000101018100010301810001010183000100010101890001000100 +010001000101018300010001060183000100010101840001000100850001000100010101 +010201018100010201010001018500020002000202020101850002000100028402010200 +0202028401020102018a0102000200020001020100860001000100010081000102018100 +010101810001890100010001000102000284020102010285020102000100840001000102 +870201020001020102850201000200028402000200028202010281020184010001000184 +010001000102018500010001000184010201020101018800010001000100010082000201 +010181020102010100840100010002830201020181010281020081000183010201008700 +010002000100018201000101018100010101850001000100010301820201008500010002 +0001010101028d0102000200010002000200010001810102850201020102018201000101 +0181000103018500020001000103018a0201020100020001000102830201020105018300 +0100018301000201010184000102010286020102000102010101820200028f0201000100 +02000100010002010200028702000201020102010101850001000201028b020002010201 +020100010001840100010001010181020101018702000201000100019701000201020102 +0102010200020002010201020102010201 +010181000105018300010001840100010001050183000100018401000100018501000100 +010083000100010401010004018100010101810001040185000100010001840100010001 +010183000100018401000100010501870001000100010001080181000104018100010101 +010082010001010181000105018300010001010181000103018600010001000100810001 +840100010001050101008801000100010001000108018400010201000100020101008101 +000100020182020102880200010002010201028602010201020102850200020002018a01 +020102000200010200028202010081000104018400010001008300010001080184020102 +000282020102830200020183010201028b02010201000201020001020184010201020181 +0102820201028a0201000100020102000100810001010101000401830201000181010281 +020101010102070187000100010002000182010201820102018501000100020082000102 +840200010002020282000201030183000100010101810001820100018801000102010002 +000183010201028a02000100010001000200028202010287020102000102000187010200 +020102000101018100018101009500010002000200010002000200020001000201020001 +01018200020181010283020001008100010101020002018f000102010001000200010001 +020100010101880002010201020002018501020102000101018200010202020101840201 +0201028f0201000201020001000201000100020103019200010200020002000201000102 +0102010200018b0100010001020002010201008600020102010001 +830001000184010001000108018300010001860100010001000186010001000100010201 +810001820100018401000100010101030002018500010001000182010001060185000100 +010001040189000100010001000100010801870001000100010001010101008801000100 +010001000102018100010301810001820100018a01000100010001000100010301810001 +02018100010101020003018100010a018a00010001000102010201028502010001000101 +018100010201860001020102010281020181010286020102010201028602000201020102 +84020002000286020100010001028b020002010201000100010001840100010001840100 +0100018501000100010002008f0201020102000100020001000201000282020102820200 +028702000200020001020202840100020102850201000200010601010082010001010101 +0001018100018201020101018400010001008700010001000100018101028d0200020002 +000200020001020002820201008100010101840001000201810100890001000100010001 +000101010200020181020102018600020001000201850100020001029002000100010001 +000102000200010201000100850200010001000200020181020183010201028a02010201 +02000100020002850201000102018301020102810201010181000101018a000100010001 +000201000184010200020102018102008900020102000200020102930200020002000100 +010001020100020102010201010182020102860200020002000291020002010200020100 +010001000102010201030183000100018401000200028102018b01020102000201020102 +00028102010001 +090181000184010001000186010001000100010501810001020183000100010301850001 +000100018201000182010001820100010401870001000100010001820100010101860001 +000100010001000a01020086010001000100010501810001020181000103018500010001 +000184010001000103018300010001030181000101018600010001000100820001008300 +010001080189000100010001000100010201880201020001020002008400010200010601 +8c000100020001020102010001028702010201020102018c010201000102010002000201 +028402010002018101008600010001000100810001010183000100018201000184010001 +000181010084000100020081000289020102010201000102010101830200010287020102 +010002000285020100020102820200028402010001028302000100830001000104018600 +010001000102850201000201028302010201080182000100810001820102018101028e02 +010200010200010201000100010201028300020001040181000183010001008100010101 +860201020100020085000200020002810201810102860201000201020081000284020102 +000203028101028102018201000101019400010001000100020002000100020002010200 +010286020102010200018301020002010286000100010001000100030181000101018702 +000102000200028902010201000200020102010283000100010101010283010001028502 +00020102018e01000200010002000102010201020182010201ad01000100020100010001 +020102000100010001020002010201020102010200020002010001020102010201020102 + +810001840100010001840100010001840100010001020181000102018100018201000101 +01810001050181000102018100010a018100018201000101018500010001000181010001 +00820100010801890001000100010001000104018100010101850001000100018a010001 +000100010001000105010100860100010001000182010001010183000100018601000100 +01000101010100050103000101830001000106018e000100020001000200020102010200 +860001000100010083000100010201860201020002010287020002000201020185010001 +0201028402010201028d0201020001020100010002000201040183000100010201810001 +010181000102018100018601000102010201840102000102840201020102820201028102 +010101850200010002019101020102000102010002000200010002000104010300020106 +008202010285020102000200840001000201900102010201000102000200010002000200 +810002840201000201810100850001000102018601000100010001840100010001010101 +008202010281020181010284020102010281020101018c00020001000200020100010001 +010186000200010201028302000201830100010001008101008400010200028202010281 +020185010001020100830001000102010102840002010001040185000100010001010185 +000200020001820100028f020102010002010200020002000201028d0201000200020001 +020002000201010183020102019601000200010200010001000100010201020102010201 +028902000100020100010001010191020002000201000100010201020102000200860001 +0002000102 +810001840100010001030181000102018300010001020181000104018100018601000100 +010001040181000181010083000100010201810001010189000100010001000100010801 +030084010001000105018100018601000100010001010181000106010200060187000100 +010001000101018100010401850001000100010701830001000186010001000100010601 +01000101010084010001020101018e020102010201020002000100010201010181000182 +010001010182000102860201020002010281020186010002000200028602000201020002 +840201020002860201020001020101010100840100010001020182000100830001000102 +018300010001010101028100028202000281020101018102018101028102010101010281 +010287020100020002000282020102820201028202010286020100010201008100010101 +820001008400010001008100020102810102010283010201028202010289020102010001 +000100018301000201020182000102890201020100010200020102018200020085000200 +010001010102008101000100010182020002910200010201000200020001020100010201 +028302010002010287000100010002010282020002870201020001000100010003018302 +010200830001000281020083000201028402010201028402010201028402000100010101 +8100010301a0000100010002000200010201000201020102010002010200020002000100 +0102018101028e02010200020102010201000102000182010201020101028d0100010001 +020002000200020001010188020102010201020100940002000200020100010001020002 +0002010201000183010200010001 +050181000182010001010181000102018100018401000100018401000100010401810001 +840100010001010183000100010201020002018100010a01870001000100010001060187 +0001000100010001080189000100010001000100018101008100018a0100010001000100 +01000101018300010001010101000d010100020181000103010100820100010101810001 +02018800010001000100010201028101028e020102010200020002000200010001010181 +000106018202010281020101018402010201028602010200020102810201010101028b00 +020001020002000200010086000100010001008300010001820100010101830001000101 +0102008a0201000201020100010201010181020181010288020002000100010201810102 +870200010200020002860201000201020183010001008300010001820100010401810200 +87000200020001000202028a01020001000100020001008a000200010001000102010084 +000100020082000200010002018200020089000200010001000100010401840201020102 +810201820102010301020201018502000100010083000100018101028202010282020102 +860201000201020102018100018c01000100010001000200020102820200028602000200 +010001830102010081000202028500010001000181010081000104018202010284020100 +010082000100850002010200010401880001000200020002008c00020102010201000102 +0102018f0100010001000201000100010201020101018102010101860002000200020092 +0001000102010201020102010201000102000182010201010182020002820200020002 +840100010001050181000184010001000105018500010001000184010001000102018400 +010001000100020183000100010301810001020187000100010001000106018100018601 +000100010001060189000100010001000100010301810001020183000100010301810001 +030183000100010301810001050183000100010401810001020102008401000100010301 +0100020181000101018f0201020002000200010002000201020101010102880002000200 +0100010081000103018a0002000100010001000100860001000102010284020102010283 +020002008b00020102010002010200020086000100010001008400010001008300010001 +010101008201000101018402010200028102010301810201810102870200010002000200 +8100028202010284020102010281020102010102830002000104018200010002008e0100 +0100020102010002000102010284020102010201028101028402000100018a0102010002 +0001000100010101820201028a0201020001000201020002840201020001030181020081 +000282020102960201000200010201000200020001020100020001020102820201028602 +000200010001830102010082000200030001018d00010001000102010001000200028502 +01000200028402010201028202010201028300010201840102010200010001018c000100 +010001000100010201020202830102000289020100020002000201028b02000200020100 +020002010281020184010001020185010002000102890201020102010001000292020001 +000102010201020102010201000100018701000100010002010301810201010182000102 +020282000201 +820100018401000100018201000104018100018401000100010501850001000100018101 +0081000182010001020101000201810001820100010c0187000100010001000102018100 +010101850001000100018101008100010401810001010183000100010101810001840100 +010001010183000100018101008100010301860001000100010083000100018201000105 +0185000100010001020101000201830001000104018b0001000100020002010201028102 +018101028d02000200020002000201020100010401810001820100010101840201020102 +84020102010286020102010001028402010201028d020102010002010001000100020081 +000101018300010001830100010086000100010001008200010002000101810201070188 +020100010201020102010289000100020001020100028402000200010201830200020083 +000100010201850001000201028202010001000102830102000101018100028202010285 +020100020102820200028102010601850001000100028202010086000100010002008300 +01000182010200860002000102010282020102880201020102010002010101030201018d +020100020002000100020102000183010201028302000201820102018101008300010001 +030184000102010296020002000100010001000102010201000200010201000281020081 +000285020102010001860100010002010284020100010001008202000101018300010001 +8101020102840002000102820201008b00020001020102010201020102018102018b0100 +0100020100010001000102018a0201000100010200020002010201018502010201020190 +010002000201020102010201020100020182010200 +030181000184010001000186010001000100010201810001880100010001000100010301 +810001010181000183010001008300010001050183000100010101850001000100010101 +8100010201830001000101018300010001040181000101018d0001000100010001000100 +010001060183000100018201000101018200010083000100010301810001050181000101 +0102000201840001000100010082010001030102000501820002018101028e0201020102 +010201020102010201028202010085000201000100830001000103018e00020002000200 +020001000102010202028100028402010201028902000201020002000102850201020100 +010201810001010101000101810001020181000102018400010200010101820201028302 +010201830102000284020100020083000201028302010201020101028100028302010001 +010101008301000100840001000102820200028402010002008300010002820201020202 +010103028101028102018401020002010101830200020083000100010101830001000183 +010001020102860002000200020083000200028202000282020002850200020102010201 +840201020102810201020101028101028502010201000101018600020100020100830001 +000101018100010101890001000100010001000182010201010187020102000102010282 +02000201028b000100020002010201000201030181020185010002000102940201020102 +000200010001000200020002000100018501000102000283020100018a01000200010001 +000100028802010200020102010289020002000201000100018201020181010201028b00 +0102000102000100010201810102870201020100010002870201000201000201 +010181000107018300010001010101000601810001010182000100850001000100010601 +870001000100010001030181000104018300010001020101000301830001000102018b00 +010001000100010001000106018100010101860001000100010001000301810001030181 +000184010001000101010100010181000101018400010001000100900100010001000100 +010001000100010001040181000101018a00010201020102000200028302010002860201 +0201020100820002018201000182010001840100010001820102018c0102010201020102 +000102010284020102010286020102010201008700010200020001008700010001000100 +018301000100860001000100010083000100010501820201028402010201028502010002 +000284020102010282020102820200028402010200018101020102850001000100018401 +00010001010101008401000100028d020102000102010201000200010203028201020181 +010281020081000184010200010285020100010002810201820100018601020001000100 +850002000200028602010201020002820200028302010201870102010201000200970002 +000102010001000100020001000100010001000102010201810200890001000100010001 +0001050101028f0102000100010002000200010201020186010200010201028402000200 +02830201020101018600010201020102830200020101018d000100020001020102010002 +00028102010101010202018a02000102010201020102018d010201000102000200020002 +000101018402000200018301020100970002000100010001020002000201020100010001 +020100010101840200010002840200010200 +810001010181000186010001000100010301810001010181000184010001000182010001 +090183000100018201000105018300010001030185000100010001020183000100010101 +870001000100010001820100010701810001860100010001000101018100010101810001 +010181000102018a00010001000100010001008100010101810001020101008301000100 +8300010001070102008702010201000100018201000101018b0001000100020002000201 +028502010201020101018202010281020001008802000100010001000104019102010201 +0001000201020102000102010200850002000200028c0200020100020102000100010084 +000100010081000105010100030181000101018200010282020102820201028202010201 +028c00010201000200010002010201830102010282020002870201000201020001010181 +000101018302000102020282010201840102000100020083020102010101830201020101 +018202010285020100020102820201028202000289020002000102010001008400010001 +008600020001020100840002000102010281010282020100810002830201020103018300 +020102810201050181020104018302010001810100880002010001000100018d01020102 +000100010001000100010101810001030184020102010292020102000100020002010200 +010200020100018101028d02010001000201020100020102019301000100010002000201 +020001000200020102019601020102010201020102000200010201020102010201029002 +000200010002000201000102010002018101028402010200018601020102010001010185 +02010200020183010002018401020102010001 +010181000107018200010085000100010001090181000184010001000182010001010181 +000183010001000200820100018101008300010001020181000101018300010001840100 +0100010a0187000100010001000106018b00010001000100010001000181010081000181 +0100010084010001000182010001010187000100010001000105018b0001000100010001 +000100018101008700010002000100010901810201810102850200020002008200010285 +02000200020081000101018102010201810001830100010001008101008100028a020102 +010002000201020184010201020185010201020102880200020100020002008600020001 +000100810001010101000101010081010081000106018102010101010201018302010201 +810102840201020102850201020001028202000282020002850201020100010101820001 +008400010001008d00020001000100020001000102010101010083020001008200010201 +020101010282000201920100020001000102000100010002010001020081000103010102 +830100020087000102010200010282020102820200028502010201000186010002000100 +028702010001000100010101850001000100028102010101830200020104018900020001 +000100010001030181000101018500020002000105010102850002000200028a02010002 +000201020002018401000102018901000201020002000200900002010002000100010001 +0002010201028c020102010201020102010200010101850001000100018201000103018c +020102010201000100020002009f00010001020102000100020102010200020102010201 +00010200010001020002 +820100010101850001000100010801830001000186010001000100010201810001860100 +010001000104010100010181000101018100018401000100010201830001000108018100 +018601000100010001050181000188010001000100010001070183000100010101810001 +04018700010001000100010201810001810100870001000100010001070101028b000201 +0001020001000100010201810001010183000102010101820201028e0201020102010201 +020100010002008300010001810100810001040104008102000100880100010002000201 +028402010201028902010200010001000102840201000102810201010185000100010001 +820100010101810001020186000100010001028102018501020002010201028301020102 +830200020081000282020102840200010002830200020188010201000100010201810102 +810200830001000282020102020283010002000100010181020103018300020102830201 +020187010001000200020101018302010201010183020100018501020100010083000200 +020102810102810200810002850201020100028202010281020102018100018301000100 +82000201050185000102000102020201018e000201000200010001000100020001050188 +020100010001000201010181020186010001000201008100020102860002010200010281 +020182010002830201020185010201020102810200820001028102010101850001000201 +02840201000102820201028f020102010201020102010201020100018701000100010001 +028c020100010001020002000201028b0201020102010201000100019501000200020002 +0102010200020100010200020002018301020102 +020183000100010401810001840100010001040181000183010001008300010001030181 +000101018d00010001000100010001000100010201810001090185000100010001820100 +010301850001000100018301000100810001040181000101018e00010001000100010001 +000100010089000100010001000100010101850001000100018201000103010100810100 +930001000100010001000102010201000102010001060181000102010302930100010001 +000102000200010001020100010201820100010101820001000100010181020186010201 +0201020083000201020202810100810002820201028b0201020002000100010002008500 +020001000103018100010101810001810100010007018402010001028402000201028502 +000100010286020001020102018101028e0201000200010001000102010002008a000100 +010200010002010286020100010001008200010003008101008400010201028102010101 +810001050181000104018400010001008900010001020102000102830200010001008202 +01028202010282020102860200010001020182010201820100018c010001020100010001 +000201028202010288020100020002000102020201000102820002018301000100820001 +008100010201010287000200010200020101018100018201000201028600020002000102 +820200010201810201030182020100850001020100018201020102018102000200010299 +01020100020002010200020100010001020001020102010201028b020002010001020102 +000201890100010001020001000104019602010201020100010200020102010002000102 +0002000101010002 +820100010401830001000102018100018101000100820100010701810001880100010001 +000100018401000100010101870001000100010001820100010201810001840100010001 +01018100018101008100018401000100010101810001860100010001000101018d000100 +010001000100010001000106010100010183000100010301810001030183000100010301 +810001030184000100010086000200020002008200010083000200018201000102018200 +010087000100020102000201028901020102000102010201830100010085000200020001 +060186000102010201028402010201020102810001010101028401020002018801020100 +020002000201028101020102810100850001000100018301000100010001018500010001 +020101018202010286020102010201028502010001020102018302010002850201020100 +010601840002000200840002000100850001000100028302010201070181000181010085 +000100010001810102010201018602000100010001090182000102830200010086000100 +020002008300020002010284010200010282020102830201020182010001010102000101 +810200020084020002000101018100028a02010201000100020002008100028202000281 +020102010302870002000200010001820102010101810001820100028502010200020082 +000102010282010201870100020001000102830201000184010201000101018700020001 +000200020102860100020100020188010002000201020102010293010001020100020100 +0100020102010201000102820200029d0200010201020002010200020100020002010001 +000102010201020100010201870201020102000100 +030183000100010101810001820100010701850001000100018601000100010001820100 +010f01830001000109018300010001030181000186010001000100010401870001000100 +010001050181000102018700010001000100010201810001020183000100010101830001 +000185010001000100810001010183000100010501880201020102010001020102810001 +820100010901820201028102018401000200018801020100020102010082000100860001 +020001000184010001000102018b02010201020002000102010284020102000101018602 +000102010201860102010200010083000200010201820001000200820100010101810001 +020181020101018702010201020001028202000284020001000201028400020102018201 +020101018802010001000102010285020002000102820201008a00010002010201020001 +008400010001000300820100010101830001020183010201028102010401810001050183 +000100018401000100018201000181010282020102010281000282020102010283010201 +028302010201020182000201020182020001030181000101010200010183000200028202 +010285020002000102810201010189000100010001020102018201020181010285020001 +000102840200020102820200020202010002028c0002010200020001000201020001008b +010001000100020001000201840102010001840102000102020285000200010002810201 +820102010101010290000201000201020002000201000200010281020101019f00010200 +02000200020100020002010201020002010200020102010200020002020282010200 +010183000100010101830001000184010001000186010001000100018401000100010901 +810001860100010001000184010001000101018500010001000181010001000101850001 +000100018401000100010301810001810100830001000106018700010001000100010201 +810001050183000100010101890001000100010001000103018200010081000102018300 +010001030186000100010002008200010005000101010083010001000200810100820002 +008600010001020102870201020102010201880102000201020100010301010087010001 +000201020183010200018201000181010281020101018202010284020102010287020100 +020001000285020001000200810001010181000182010001810100810001050181020181 +010201028500010201020184010200020103010102870102010201000100810001010182 +0002018c0100010002010002000100010282020102840200010001070101000101880001 +000100010002010301010201018602000100010001030101008201000182010001010185 +000200010002820200028202010203020101820201028102010401830001000286020100 +010001000100060101008401000100020102810100840002010201030101028c01020002 +000100010002010201830100020184010001020086000102010201020302810001830102 +00010101850001020102010201820200018e010201020002000200020100020102840201 +0201028a0201020102010002010001820102010201940200020002010001000100020002 +0002010001020183010201028402010201028a0200020102010201020001870100010001 +0200020502 +810001030181000182010001010183000100018201000104018100010201810001860100 +010001000102018100010201830001000103010100040181000101018100010201830001 +00018601000100010001060187000100010001000106018b000100010001000100010001 +070181000105018500010001000102018100010401830001000104018602000100020100 +010001018602000100010001080184000201020186010201020102018201020001008202 +010084000200010081000103018400010001028402000200028202000286020001000200 +028902010201020001020002870201000200020002830201020181010085000100010001 +860100010001000102018102010401010281000101018600020102010002840201020001 +05018b020002000102010002000100020087020001020001020103018200010002008601 +0001000201008100010101810001040101020a0182000100810001020182000100020082 +010001830100020082000102820201028202000282020102820201028102018601000100 +010001090101020100810201040185000100020002820201028402010201000100840100 +010201820102018801000100010201000101018a00020001000200020001028502000102 +010286020001000100010401930001000100010002000100010201020100020002870201 +02000102010287020102010201020102018b000200010001020001000201050181000195 +010001000100010002010001000102000201020102010301820001000100850102010200 +02810201810100 +010181000182010001030181000104018100018401000100010201810001010181000103 +018700010001000100010401810001050185000100010001040181000105018300010001 +86010001000100010501830001000184010001000105018a000100010001000100010001 +008301000100030082010001030183000100018101000200940100010001000100010001 +020102010200020102000100810100830001000182010001020182000201010184000102 +010282020100850002000200028102008c00010200020001000100010001020182000102 +86020102000201028202010284020102010283020102018a010200020001000100020084 +000100020083000100010201830001000106010102010103008601000100010200810002 +8402010200028b0200020001000100010201028202010281020184010002000185010201 +000200830002000285020100010001040186000100010001008700010001000100010901 +850001000100010301010001018102010101890001000200020002010201028100028102 +010201010281010281020081000104018600010201000100870001000100010001010184 +000100010001008502000102010283020102010601840200010001060184020001000102 +010102830100010282020002860201020102000182010001840100010001820100010401 +880002000200020002010101040283010201028602010201020102830200020107018602 +0102000100028b0200020002010201020102018801000100010001020103018502010001 +020102018100020102850102000200020102 +820100010301830001000101018100018201000104018100018601000100010001840100 +010001070187000100010001000181010083000100010201810001020101000201850001 +00010001080187000100010001000106018700010001000100010b018300010001070183 +00010001010183000100010e018502010200020186010002010200018201000108018202 +000281020101018402010201028202010081000182010200020081020081000182010001 +010101008601020102010201860102010201020083000201028702010002000201028402 +000200010101010284010001020185010001000100810001010182000100890001000200 +010201020103018302000200850001000200018201020103018100018301020002880200 +02000100020001810100010085010001000201070101008f020001000200020001000100 +020102010101010086010001000100010501810200810001820100018301000200840001 +000102820201028302000102820201020102810102820201028602010200020100010082 +010001810102810201030181000101018302010201020181000102018202010282020102 +930201020100010001020100020102000102010001060102008201000201028101028202 +000282020102010284010001000182010001820100010101850001000100018201020181 +010201028100028102010101010283010201028502000201020182010201820100018a01 +000100010001000201028102018701020102010200028702000100020002010301880001 +00010201000100870001020001000100810001870102010201020102 +020183000100010301810001820100010201850001000100010201810001040181000186 +010001000100018601000100010001020181000102018100018601000100010001070183 +000100018601000100010001050181000186010001000100010301810001030183000100 +018801000100010001000182010001860100010001000187010001000100010082000100 +900001000100010001000100010002000102820201008400020002008100010b01810201 +840102000200010081020083000201008900010200020100010201030181000186010001 +000200028402010200028602010002010201010101028101028502010001000184010200 +010087000200010001000102010100820100010301820201028502010201020001000102 +81010282020001010181020183010001008400020002018101028102018a010200020001 +02010001000200830100010002008c010001000100010001020002018101028102010101 +880001000100020002008100028202010282020002850200020001028102018301000100 +810001020186000102010002008300020102010281010282020102830201000285020102 +00020101018b000100010002000100010001870100010001000100010088010001000100 +020002820201028302010201820102010401810002810201840102010201010187020001 +000100010281020001000202810002820201020102840100010001020181000186010001 +000100010101870001000102000201830102000284020102010288020102000201020102 +010282010001840100020001010191020102000200020001020002000201020102870201 +0201000100010301810001010184020002000101010100820200028602010201020002 +820100018201000101018300010001030181000102018100010201830001000186010001 +000100018401000100010201810001010181000182010001020181000103010100030181 +000184010001000106018700010001000100018201000103018100010101830001000101 +018300010001020101000101830001000103018402010001008400020100010401810001 +0301830001000107018b0201000100010200020100018201000103018100010501010285 +0102010201008a0002010002010200020100820001008200010081000101018100010301 +010284010200020085000200020102840201000102820201028a02010001000200020001 +028202010281020083000100010201810001010183000201028702000201020100018101 +028402010002008100020202820100010201020283010001008100010901850200020001 +00020084010001020102018f000201020001000200020001000201028202010289020102 +000200010001008100010101010284000200010201028200020087000100010002000282 +020002830200010282020102820201028202010281020101018100010301810201010182 +000100830001000182010201820100010101870001000100020002820201028202010283 +020102019001000100010001000102010001020102018301020002830201000282020102 +0202810102870201000100020001820100010201830001000103018a0002000100010200 +020002820200018101028202010283020002018201000101018402010200010101880201 +020001000100018401000100010301820200018d01000200010201020102010001020102 +810001020101028201020182010201010101020101810001 +810001030183000100010101850001000100018201000102018300010001090183000100 +018201000101018100010401810001820100018401000100010201810001010181000101 +018700010001000100010501810001020183000100010101810001010183000100010101 +810001820100010301850001000100018301020001880102010201020001008300010001 +010101008201000103010100020101000102870001020100020102810200810001050183 +000100010301830002010001008602010200020002820201008500020102000101018600 +010001000100870001000201020102840201020102840200020102850201020002008500 +020002000184010200020087000200010001020181010081000103018202010282020002 +820200028102018101008100020102850102000100028102010101010203010102030181 +000101018700020001000100020102810102810201030182020102810200870001000100 +010201820102008600020001000100890002010201020102010282020102820201028202 +010285020002000100810001040182020102820200028202010201028101028502000102 +010283020102010101890001000102010001000104018300020001810100810001040182 +02000282020102820201028102010d010102810100010085010001000201810102020283 +0002000283020100010201810001010101008b0100010001000100020102010301010284 +000200010290020102010201000200020102000201000286020102010001028602010002 +01020103018f000102000100020001020102010200020302860002010001000185010002 +00010201020101010283000200010001 +010183000100010301810001030181000102018100010201810001860100010001000182 +010001060181000186010001000100010201810001020184000100010081000102018100 +010601810001040181000181010087000100010001000101018100010101830001000181 +010083000100018201000104018b02010001020002000200010081000103018100010401 +010082010001010184000100010282020002840200010200020081010085000100010001 +030184000100010083000201028402000200028302010200010084020100010282020100 +810001080101028700020002010002008500020002000281020101010102810002840201 +000102810200830002000285020002000100840001020102820200028202010282020102 +890200020100010001000106018100010101840200010001010101000601840001000100 +840001000100870001020100020002810201830102010286020102000100018101000100 +840200010001850100020001020102020083020001028302000200810001010101020100 +830200010002008101020102010182020102010284000200010283020102010501010201 +0188020002000100020002820200028a0201020001000200020002820201028602000102 +010201020184000100010083000100018201000189010201020001000100020302810102 +830201020101018200010081000108018100010101880001000100020100028402010201 +028f02010201000200010002010200010001840100010001010181020101018402000100 +018401000100018201020101018902010001020002000201820100010101810002820200 +02820201020402830102010203020001 +810001030181000182010001010183000100010101810001840100010001070185000100 +010001840100010001040183000100018401000100018401000100010401010003018500 +010001000101010100860100010001000101018b00010001000100010001000104018100 +010301890001000200020001020101018302010201010184000100010089000100010001 +000100010401810001020181000103018800010001020102010081000104010100030103 +000101820201028502010201020181010001008601000200010001010182000100880001 +000102010200028202010281020002008102000200880200020100020002018101008800 +020001000200020181010284020102000282020102010281010284020102010281020184 +01000200018701020102000102010101820200010d018402000200018401000100028202 +0102820201028102018301020100840001000201020101028101028e0200020001020001 +000200020001020302810102810201010185000102000100840002010201010101028100 +0101018202000284020001020181010284020102010201028c0001000100010002010002 +01028202010203028101028a020002000102010002010286020001020100028102010201 +0102810102820201028b0200020100010001000200010101840201020102810201810102 +010282010001020181000188010001000100010001010187000100010001000283020001 +0202028e0102000102000201020102000200018401020100010101830001000184010001 +000182010201030102008502010001000102018100018901000200020001000102840201 +020102010284000201000204020001 +020185000100010001010183000100010101810001070183000100018201000106018300 +0100018401000100010d0181000184010001000101018b00010001000100010001000188 +010001000100010001050183000100010201830001000101018400010002018701020100 +010001008100028902000100020002010201010181000104018100010201020084010001 +00018101028d020102010201020100010001000101018100010301020084010002000286 +020102010201020202850102010201028302010200840001000100810001010183000100 +02820200028a020102010200010001020183010201028f02010201000200020001000102 +000100850002000201028202010282020102870201020001020102820200010101830001 +000105018102011101010002018502000200020083000201020102810102030201018502 +010200010089000100020002000100018101028102010301810002040201008502010002 +010202028800020002000200010201020101010281010282020102030281010082000201 +010183020001000100810102010283000100020202010004018400020002008300020002 +840201000201030181020106018500020002010285020100020002820201028402010201 +0283020102010101810001810100810001010181000103018e0002000100010001000102 +000200020102810001810102880201020002010200020102010181020186010001000100 +018201000101018300010201820100010101810001040181000182010001820100010301 +85000100010001010181020186010001020102010301 +840100010001030181000103018100010201850001000100010501850001000100018201 +000104018100010401850001000100010101830001000101018100010201010004018300 +010001080187000100010001000104018300010001010189000100010001000100018a01 +020102010001020102018101028602000100010001860100010001000182010001020102 +008401000100018501020102010089000200020100010200018201000181010081000105 +018502000200020082000200010001028101008a00020001000102010001008300010001 +020101028d01020102000102010200020001028402000201028a02010201000200010200 +028202010203028300020102820201028202000282020102840200020102810201010181 +0001050102020701810201060101020101850001000201020c0281010283020102018101 +02820201028f020100020002000102000100020001020302810002820201028102008400 +020002008600020001020102010285000200020102010284000200010286020001020102 +018e01000100010001000200010001020182010201040185020002000102050281010285 +020100020001020101028101028202010282020102860201020002000183010200020202 +81010282020102820201028b020102010002010002000200830001000108010202010185 +000102010002020282010201820100010101850201000100018401000100010401850001 +000100018401000100010201830001000108018100010101850001000100018401020102 +01020185000201000200 +040183000100010101810001820100018201000102018100018601000100010001050181 +000102018300010001010181000182010001010181000105018500010001000181010081 +000181010083000100010401870001000100010001050181000186010001000100010101 +850001020102018d01020102010200020001000102008700010001000102018501020001 +0001070101000a0181020182010002830201020083000102010301010083010001000100 +830102010286020002000201028602010200020102830201020083000102018201000102 +018700010002000200028402010201028202000284020100010283020102018301000102 +830201020084000200020086000100020001028202010282020102810201830102010286 +020102000100011601810201840100010200820002000200830100020081000202028101 +028302010201010182020102820201028302010201840100020102820201028202010282 +020002860200010001000282020002820201028202000204028200020083000200028102 +008100028202010201028c01000200020100020002000102820201020102010184020002 +000201028301000200830002010282020100010002028201000281020182010201040182 +020102850200020001008800010200010201000182010002040282010002010284000100 +01028202010286020102010002018b010001000100020100010002820200028102018501 +020102010288020102010200020002010281000184010001020101018300010001840100 +010001060181000184010001000101010100010181000185010001000100810001020101 +0081010202028401020102010101 +820100018201000103018100010301850001000100010401810001050181000101018100 +010201830001000102018300010001010182000100810001010101000201810001050181 +000184010001000105018700010001000100010401810001010191000200020002000200 +01000102000201020101018c000100020002000200020002010201820001008100010301 +81000181010085000100010001820102018b010201000100010001020100020086010001 +000100018201000286020102010201028702010201020102008200020084000200020182 +010001010101000201820001028402000201028402000200028202000202020101880200 +020001000100018601020100020002820201028402000201028202010282020102010281 +01028502000201020105018102010b018300010201010182020102810200810001810102 +850200020102008100020102810102030281010284020102010202028101028902010201 +000100010201010182020102820201028802010002010200010084000200020086000200 +020002008300020102020283010201020102810102820200028502010201020181010287 +020002000102010201028101028202010281020185010001000100020081010202028101 +028d02010001000100020002000200028102010101830200020187010200010200010282 +020002080286010001000201008c00010001000200010001000102850200020100028202 +0102820200028c0200020001020102010201020103010202810002880200020002000201 +028b020102000200020100010001030181000104018100018201000105018100018b0102 +01020102010201020002810200 +830001000101018300010001010183000100010601830001000101010100820100018401 +00010001020181000101018300010001860100010001000102018100018b010001000100 +010001000100810001030189000100010001000100010401870001000100010001010186 +0002010201020186010001020102018a0102010201000100010001810102810201880100 +010201000100018201000101018100018101000100070183020102000200830100020003 +000301820001008200010001008401000201028602010201020102860201020100010084 +000102010201028301000100830001000103018102018101028102018201020081000283 +020102008800020100010001020182010200830001020181010081000282020002820200 +020302810102820201028702010201020100010301820201028102010101810200810001 +020181020181010203028200020081000283020002008500020002000208028100028202 +010281020184010201020181010282020102810200840001020102010286010201020001 +028502010201000283020102018801020102010002010285020002010002010284010002 +010201028100028f02000100020001000200020001020100890002000200010200010201 +02810002820200028202010202028b00020001000100010001020101018400010002008c +000201000200020001000201020202810002820201020302010101028600010200010002 +820201020102020181000183010201020102810102820201028202010285020102010001 +02018502010001000208020101810001860100010001000101018b020102000200020102 +010200810001020184020100010081000183010001028802010201020102000102010000 + +030183000100010101830001000101018300010001840100010001020181000101018100 +010201830001000184010001000104018100010201010005018100018401000100018201 +000103018100010301830001000183010001008100010701830200020188010001000102 +000102810200010082010001830102010081000189010001020002000102008700020100 +010001008100018201000103018900010001000102000201010187000102010200020082 +000100010005018600010002000102840200020002020283000201008200010087000100 +020001000106018b00010201020002000102010285020100010201810102840201020102 +860200020001020102018100018601000200020102810201830102010282020102820201 +028102018401020100010801810001020185000100020002830201020181010282020100 +810002020281000201020100020281000282020102030281010282020102820201028402 +000200018301020002830201020184010002010282020102020202008302000100020082 +020002810200010082020002020282010002810201810102820201028202000283020102 +010101820201028202010285020100020002820201028702000200010002008300020002 +820201028202010282020100830001000187010002000200010084000100020083000201 +028402000200018501020002000282020102050281000284020002000201028a00020002 +000100010001000200010284010001000289020001020102010201020102030182000201 +8401000102018f010001000200010200020102010200028b020002000201000100010201 +850102000200018901020102000201020102060283000100010101 +810001820100010301810001030181000103018100010101830001000184010001000182 +010001010181000184010001000184010001000101018100010401830001000109018100 +01030183000100010a018b00010001000200010201020085000201020100830002010286 +020102000201000100850102000102008c00010001000102000200020001010101000101 +830001000104018400010201028602000102010001860102010201020087000100010001 +0001020181020189010200020002000201028402000201028a0200020001000200010001 +010101000501010281010282020102810201030102008902000100010002000100870001 +000100010002830200010282020102820200028202010285020100020102830201020185 +010001020002830201000101018202000282020102850200020001028602010002010001 +840100020002830200010204028101020102810102850201000200028502010002010201 +028101028202010001000102010182020002840201020100940002000201000100020100 +020001000102000200020302810002010281010282020102820201028702000200010001 +020102850002000102010301820200018401020102018401000200020302810002860201 +000100010086000100010200018201020084000200010002008301020002030281010282 +02010282020002040201008102018f010001000201020002000100020100020202810102 +820201028e020102000100010201020102010001010189020002000100010200028f0201 +020102010200020002000102000183010200018101009000010200020002010201000102 +00020002010201018102010101810201840102010200 +820100010101830001000101018300010001010183000100010101810001040183000100 +018201000182010001060181000101018300010001840100010001030101000101850001 +000100010301830001000102018200010081000184010001000101018502010001020186 +010201020102018101028202010083000100028102018f01020102010201020102000200 +020100860002000102010282020001020181000103018a00010001020102010200020102 +82000200820001000200810201040101008c010001000100010201020102018801020102 +000102000181010283020100010801810201010182020102810201850102010201028302 +0002018101028f0201000100010001000102000200010083000200020102810102020281 +010201028300020002010281000283020102010101830201020181010201028600010201 +000102010281000181010282020102850200010201008400020002008100020902820102 +018401020001028a02010001000100010002018201000202028401020001028202010283 +020100020202860001000200020083000200020102850102010201028202010201028101 +028202010282020102810201010183020001020102810102820200028102018801020002 +000100020081000204028201000282020100020085010002000102880200020001000200 +028702010001000201020302810102830201020181010202028200020183010200028202 +01028a020002000200010002010282020102820201028502000102010285020102010201 +010183000200018401000200020202900102010200010001000102000102010201010182 +020001810102940201020102010201020001000201020001000201028c02010201000100 +010200020002 +020183000100010101830001000101018300010001010181000102018300010001060181 +0001860100010001000102018300010001020185000100010001820100010c0181000101 +018100010201830001000101018700010001020002018501000100010082000100840002 +00020186010201020100018101008e000200020100010201020102010200850002000100 +028502010001000103010100880100020102010200020102860002000200020085000102 +000100830001000108018402010201020202020101028200020082000100010081020106 +010102010184020102010287020102010002010284020100020102018202010285020100 +020001860102010002010202028101028402000102008100028202010285020102010001 +010101008201000281020182010201830102000282020102030281000283020102008400 +020001028202010281020081000208020101010281000281020186010001000201029502 +010200010002000100010002010002010001020002830200020085000200010201870100 +020001000102010281010201028400010201020102860102010201020101010102810102 +020202018202010201028301020002830200010282020102040201018102010201010090 +020001000200020001000200020001000101018200010282020102020281010282020002 +020284010002000201028700010002000200028702010201020001020102810102010283 +010201028902000201020102010201030186020102000100018401000100029102010201 +020100010200010001020100010287020002010001000183010002008200010292020102 +01020002000200020100010201020102 +010181000102018100010301810001040181000182010001020181000186010001000100 +010401810001020183000100010201810001050181000183010001008500010001000181 +010002008601000100010001040181000102018402010201008d00010201020001020102 +010001000100810200010089020102010201020001008f00020100010001020102010200 +020001010101008201000182010001830102010202028400020002008300020002890201 +020002010200020101018300010001840100010201830102010284020102010282020001 +830102010084000100010201020b01810201810102820200010101830200020082000201 +8b0102000200010001000201028402000200018401000201028502000102010282020102 +820200028302000102850201020001028202010282020102890201020001020100020181 +010201028101020302840001000100840001000100810002040281010283020102010201 +820201020402810002820201000100810200870002000102000102850201020001008600 +020002000102820201008100018301020002040281010201028101028202010282020102 +850201020102010101070281010281020181010285020002010002850201000100020202 +81010283020002008500010001000203028f010200010002000200020001000201020602 +810102050281010202028400010001020202010185000100010200830001000187010002 +000102000202028401020102018b01020001000102000200020183010201029202010001 +000100010200010201020102010201040184000100010286020001020100028402000200 +0282020001860102010201000182010001 +810001010183000100010101830001000101018300010001010185000100010001040181 +000102018300010001010101000501850001000100018801000100010001000102018300 +0100010c0183000100010401840001000201810102810200820002000300870102010201 +020102890200020002000201020001008102008600020002000100890001020100010001 +000103010102830102010201028401020102010301880001000200020002010101810001 +070181020182010201820102018701020102010200028702010200010201020102050184 +0001000102850201020102010301820001028a0200020100020002000200860001000200 +020087000100020002010282020102820200028202000282020002820200020102820001 +028202010282020002820201028302010002040285000100020002810200830002010283 +020001028202010201028101028202000201028800020100010002000283020100018101 +028202010287020001000102010001000401860002010200010288020100020001000100 +850001000200020502810102010281010281020186010201020102010601810201020185 +020002000102810200830002000282020102030281010283020102010301820002000100 +860201020102000189010201020001000201020302810102820201020202020086010002 +000200020102010082020002870200010001020001820100028202010284020102010285 +020002000200920001000100010201020102010200010001000287020001000102010289 +0201000100010001000201020100870102010201020001820100018201000105018a0200 +020100010001020002 +010181000103018300010001010183000100010101830001000101018100018401000100 +010101010005018100010101810001820100010101850001000100018201000104010100 +020185000100010001010185000100010001040102008602010201000200020082010001 +8f0102010201020100020102010201020192010201020100010201020102000200020002 +008300010201010193020102000201020102010201020002010201020083000200018901 +0001020100010002010c0101028501020102010282020100820002008600020102000102 +010281000104018102010101810201010182000102870201020100010002820201020302 +810102010204018600010201020002010285010201000200810002820200028202010283 +02010201010101020101820200028302000102020201010102810102820201028b020002 +010002000102000100810002030281000282020102810201060181000285020100020002 +820201028502000200010204028901020001000201000200840001000102850201000201 +020302810102830201000201028101028202010285020102010201010107028201020181 +010288020102000100020102820201020302810102830201020104018202010282020102 +890200020002000200020084000200010206028101028102010201850201000102018401 +000100020702810102810201010189000100010201000102018201020103018602010001 +000100020082020001030101028a01020100010002010001008400020102018901020102 +0002010001020102960100020002010001000102000200020102010201020102 +810001010183000100010301810001030181000103018100010401830001000102018100 +018801000100010001000184010001000108018300010001020102000101810001030184 +0200010001810100040002010500860102010201020186010201020102018101028f0201 +000200020002010201020102010084000102010285020100020100950002000100020102 +010200020102010201020102010283020102018c01000200020002000100010201090101 +020101820201028502010001020184010201020085000201020102810201870100010001 +000102810201010181020103010102020081010201028800020001000200010085000200 +010001830100010205028100028202000283020102018101028502000200010085000102 +010201810102830200010202028101028202010284020102010285020002000200840001 +0201028202010201028101020402850100010001020102820002018101028a0201000201 +02000100020083000201028c020102000201020001000201020202010081010282020002 +030201010102810102820201020102810102810201010186020100010201028102018101 +028202010288020002000100020102820200028202010203028101028302010201040182 +020102820201028402010200018401020001000200810102050283010201028602010002 +0001008d0002000102000102000100010002830200010281020101018100028502010201 +02019301020102010001000100020001000102010201028d020100010001000200020102 +0102810201030182020002860201020002010089000201020002010201028b0201020100 +010001020002008600010001000102 +020183000100010101830001000101018300010001010183000100018201000182010001 +010181000186010001000100010701870001000100010001840100010001050181000102 +0107008b0200010001000100010001000100040181020189010201020102000201029602 +000200020102010200010200020102010200020102008c00020001000102000200010001 +010184020002010287020102000201000287020102000200020182010001010186020002 +000100028102010801840200020001010182020102810200820001008700010001000200 +02020283010201028102018d010201000100010001020102010202020101020285000100 +010001020101020100030101028101028202010282020102820200020402820102010201 +83020001028402000200010101020281000282020102820201028f020100020100020001 +020002000200028202010201028100028302000201050101028100028402010001008200 +020182010201030181020101018302000200820002000200840200020001860100010002 +010282020102020281000282020102820201028202010283020102010101880201020002 +000201028602010001020100820001008100010301030281010283020102010401820201 +028e02010002000200010001000200010082000102020283010201028302010201040185 +020001020102870200020002000102010281000202028d01020001000100010001000200 +010a018302000200030090010001000201000100010002000201000183010001008d0002 +00020002000201020002000287020001000102000101018a0201020102010001000102 +820100010301810001030183000100010101810001030181000101018300010001060181 +000186010001000100010901830001000181010004000101010003018700010002000200 +010601870001000100010201840102010002810201910102010200010002000102010201 +020100010201010201019f00010201020002000200020100010001000102010201020102 +010200020002010101010201010300820100018501020002010281020101018300010001 +020102028101020202830002000284020100010289020100010002000201028402000200 +028302010001810102860200020002010202028200020081000104018200010084000100 +010087000100010002010282020102810201830102010282020002010281010201028101 +008300020102820201028202010288020001020102010002820201020102810100820001 +028102008600010001000102020283010201020102880102000100010002008600010002 +000102820201028602000200020002030281010281020183010001028702010200010001 +000200810100840002000102010282000102010281010282020102820200028802000201 +000100020102018202010286020100020002008500010002010282020102030201018302 +010201070181000101018100010101840002010200010086020002010201028302000201 +820102018101008300010001870102000100020002010288000102000102000102810201 +8a010201020102010001000101018f000102000102010201000100010200028c02010201 +000201000100010201020193000102010200020001020102010200020102010281020181 +01029202010201020100010200020002010201020102 +020183000100010101830001000103018100010101830001000101018100010101810001 +860100010001000109018300010001810100020001018300010001010181000181010001 +0081010002008e0201000200010200010001000100010501810002890201020002000200 +020186010201020102018101020102980002010201020102000201020001000100010201 +000100010281020183010200018b01020002010201020102010202028401020100018101 +000100860102010201000201029101000102010200010001020100020102010284020102 +010282020100820002018201020184010200010282020102020283010001020702810102 +830201000101018300010001010101000301830001000182010002820201020102830002 +000201028101028202010282020102810200820001028202000201028100020102860102 +010002010201029001020102000102000102000201020001020402810102030285000100 +010002020201018202010281020086000200020001028602000200010002860200020100 +020081000282020102860201000100010202028200010201020100010281010282020102 +820201028102010201830200010201028300020102820201028602000200010200010081 +02010101820200028202010282020102810201020101028a010200010002000200010283 +020002018101028102018101028202000281020187010201020001020101018202000283 +020102018301020002880201000201020102010101810001080183000100018601000102 +010201010181020102018c0001000100010200010201000201028b010201000201020102 +0100010101850201020002000400810100900001000102010201020102010001000100 +820100018201000182010001820100010101830001000184010001000101018100010101 +810001090183000100018601000100010001010102008201000186010001000100010201 +010083020001008400020002008500020001020103018100010101830001000101018102 +0187010201020102010201028b0100020002010201020102019501020102010201020002 +010201020100010201020100840002000102810201870102000201020002020286010201 +020102000100810201840102000200020002028101028702000201020102008100018101 +028502010201020184010200010085000200020001860100010002000288020102010201 +000102030287010001000100010001008701000100010001008900010001000102010200 +810002820201028202010282020002820201028202010201020101810201010101028101 +02820201028502010201000283020100028202010283020102008a000200010002010001 +000203028101020202810102810201040101028101028502000200010201028101028802 +010002000100010082000100010002028801020001000200020181010001000102810102 +050281010201028100028802010200020001000182010201860102010201020182010001 +830100020086000100010201020302810102010285010200010001810102880201020001 +000200028202010001008602000200010002070282000201820102000100830200020189 +010002000100010001008200020183010001028102010201820201028502010001000106 +0101028b0001000102000100010001028202010082000201010182000100010082020100 +020081010004008402000200028302010201010186020100010001008300020002010282 +0102010001 +830001000101018300010001010183000100010101830001000182010001010181000102 +018400010001008300010001010181000181010001008301000100810001090187000100 +020100020001008102018d0100010002010201020100010001080183020102018c010200 +020002010201020102018a01020102010201020002018101008100018401020002000100 +830200020001008102008c00010001000200010201020001870102010201020102890201 +020102010002000201028300020002020285000200020102840200020002860201020102 +010283020102008500020100010282020001030186020102010201020102870100010002 +000201030181000105018200010081000101010102010084010002010282020002820200 +028202010282020102010281010282020102820201008200010285020001020102830201 +020181010282020102860200020100010282020102820201008100018301020002030281 +010201028101020102830002000102018202010283020102018101008a00010002000100 +020002008400020001028602010002000200810002820201000200010282010002030281 +000201028100028202010282020102830201020181010282020002830201020181010282 +020002010281000282020102850201000200028202010282020002810201810102810201 +020186020100020001028a02010200010001000200028202010283020002008200010201 +028500020001000187010002000200010282020002810200020002028101028302010201 +030181020105018300010001820102018201020183010201028b02010201020100020102 +010002008901020100010001020001850102000102010101810201030183000200018601 +000200020001040185020001000200 +030181000103018100010301810001030181000101018700010001000100010601850001 +0001000109018a0001000100010002010201840102000201810100860002000100010085 +0001020102018201000106018c0001000201020102010201020195010201020102010201 +000201020102010201020102018101028302010001810102810201810102810201810102 +810201930102000200020102000200020100020002000200010082010200820002000100 +840200020102010281010286020002000201020102820001028d02000100020001020100 +010200010201830002000282020102820200028302010201840100010201840102010001 +010101008201000101018302000100870002000100020102810200880002000200010200 +020102810002820200028202010201028201020183010001028202000283020001028202 +000282020102820201028202000281020084000100020085000200020002030281010282 +020002010282010201010183000102018101028502000200010082000102820201028202 +010202020201010082010001850100020002000100830200010001008202000201028900 +020102010201000102820200028502000200010282020002830201020181010285020002 +000100830002000283020002010101030281010201028500010200010081000204028300 +020002020282010201810100030001028201020101018102010301850001000201028902 +01000200020002000101018102008800020102010201020101018a000102000200020002 +000182010002880201000100010002010101850001000100018301000102850200020102 +000200810200020081010001008501020002000283020102010301810201020183020102 +0185010002000201 +810001820100018201000182010001840100010001010183000100010101810001030181 +000106018100010301810001880100010001000100010501920201020100020102000102 +0001020102000200820002018401020102010d0181020186010201020102018101020102 +84010201020181010281020181010289020001000102010200018d010201000100010201 +020100010086000200020001028e0201020102010201020102010201028b020102000200 +010201020002880201020002000200020502830002000202028700010001020100018301 +000102050201018202000201028100010301810201850100010001008100018c01000100 +020100010002000100840002000102020282010002820201028502010201000204028100 +020102830102010282020102820200020202820100028302010002810201020101028200 +020087000200010001000204028101020102890102010001000100010281020184010200 +010290020100020002000100020100020002000181010283020002008400020001028102 +018201000284020002000282020102010281010201028101028202010283020002010101 +0202010081020181010282020002820201028b0201000201020002000200020102810002 +020281010201020401830200020001008302000200010082020102830201000201028401 +000100010301840001020102820200028502010002000101018202000101010202810102 +020286010201020102010101020202018102018101028a02000100010200020001029402 +000201020102000102000200020100010002000183010001028102010101920201020102 +010200020002010001020102000101018402000201020002 +040183000100010101830001000101018100010201810001010183000100010101810001 +8a01000100010001000100010b0181000188010201000100020102860201020100020186 +01000102000201820100018401020002010201830001000105010102820102018a010201 +020002010201020189010201020102010201020102810102010281010201020101010286 +0100020002010202028101028c0201020102000201020002010288020002010201020001 +010187020002000102000282020102060283010201028402010201028502000100010086 +000200020001028102018101020402810002880201000100010001008100010401810001 +820100028202010081000183010201028202010282020100820001020202810002820200 +020402810002820201028602000201000102050201010102810102830201020181010282 +020100830002010285020001000102820201020302810102010281000201028d00010001 +020002000100020102008600020001000201810102820201028202000286020002000100 +028202000285020100020002820200028402000100020602810102010282010001010182 +000102840200010002810201810102830200020082000200010082020002010283010201 +020102010101028200010286020001000200028102018301000100810001830102010282 +020002850201000102010401010282000201860102010002000205028301020102820201 +020502840001020002840200020002010282010002020282010201810102010283010201 +020202900102010002010001000200020100010002810200010081010001000202900002 +0102010200020102000201020102018301020102810201840102000200 +840100010001030181000103018100010101830001000182010001820100018201000104 +01810001080181000102018300010001840102010201850102000102018401020102018e +010201020100020102000100010201820102010c01810001820102018c01020102010201 +020102010201840102010200010095020002000201020002010200020002010201020002 +000200820102018901020102000201020102860200020002000289020100020002000201 +02860201020102010207028100010301850001000100010101820201028c020102010002 +01000200020002820200020102030101008102018b010001020002000102000102860201 +0001000200830001000283020001020b0281000201028101028202010282020102030281 +010283020102018101028202000201028101028202010285020100020002010283010001 +020702810102010204018802000200010002000101018102010201830002000101018102 +018301020102850201020001028502000200020081000201028100020102010101029101 +020102000102000102010001020102010282020102810201830102010201028500020001 +020184010200010282020002040282010201060101028200020001008102008300020102 +03028301020102010285000100010201010184020100010202028b000200020002010201 +020102060281010282020102810201010101028601020102010201020186020002000100 +01020187000100020001020102010302820100020202810002050281010203028c010201 +020102000201020002018201000285020102000201 +040183000100010101830001000101018300010001010183000100010101810001010183 +000100010101810001020183000100010601820002018301020102820201028902010201 +020001020102830200020184010201020184010201020183010201020102830001000103 +0103028401020102018d0102000100020002000200020002010201018f02010201020002 +000201020102010200820001028102008100020102830102010205028700020102010200 +028102008100010101880201020002010201028302010002820201020202810002010282 +010001010186000100020002008400010002010501820201028202010282020002830201 +000102010102810002840201020002820201028802010200010002010281020183010200 +020202830102000201028101028202010281020181010283020102018401000100028302 +010002850200010001028202000282020002010281010082000102810201860102000200 +0102820201020302810102010281010281020102018102018201020101018102008a0002 +000100020002000102880201020002000200018601000100010001010183020102008100 +018101028202000205028101028602010201020102870201020100020002810201850100 +010002008200020001008302000201020181000282020102010283010201008300010002 +020282000102010202018100028302000102010283010201028302010002810201010183 +0001000101018b00010002000200010002000101018e0201020102010002010200020002 +018301020102820201020202010101028201020183010201020202830102010202028a01 +02010200020100020102010287010201020102010203020100010202008a020102010201 +0201020102010285010201000100 +820001008100010401830001000184010001000101018100010301810001010181000101 +018300010001060181000108010102870102000102010201840100010201820102018301 +000100020085010201020100010081020181010284020001000102018500010201000287 +020100020002000201028101020102010194020102000200020102010201020102000201 +02010201020101010286010201000102018b010201020102000200020002870201020102 +01020086000100010201028102010101010281010204028101028a020001000100010201 +000189010001000100010001008b00010001020102010201020185010001000102870201 +020102010002810201810100860002000102010201028701020100020002018101028302 +010201830102010282020102010281010282020002010281000182010002850201020001 +028202000201028101028102018301020102850201020001008100018101028202010282 +020102020281010202028400010001008800010002010200010201028301020102010204 +018202010081000184010201000282020102860201020001020082000200810002820200 +020102010181020181010201028a00010201020100010001028802010201020002010285 +020102000100890001000200010002010282020102010284010201000289020102000200 +020001000200020285010201020002040202010100820100018801000100010001020181 +010284020100010289020002010002000201020102810102820201028702010201000201 +028102010101820201020102810102020281010284020102010201020101820201020402 +810102010281010202028101028202000201028801020102010201020181010084000100 +0100850001000200018301020102 +030185000100010001030181000102018100010101830001000101018100010501810001 +030181000104018300010001810102810201840100010201870102010201020100810001 +840102010200840002010201860102010201020183010201020102030003018300020001 +850102010002008b00010201020002010001020184010201020088000100010001000100 +01008f010001000100010001020102010201020102010182020102860201020001000286 +020102000200020302830002000282020100820001020102850100010002018301020001 +820102018601000100010001820100010201810001810102010281000284020002000281 +020181010285020102000102840200020002810201850102010200018601000100020002 +820201028202010282020100810002030281000281020181010282020002820200028102 +010101820201028502010201000285020100010002010201010100810201010185020100 +02000201028101020202810002010281010201028a01000100020100010201008a000100 +020002000102000201020101010282010001820102008400020001020102820002018401 +0201020105010202810102010209010502830100010002008a0100010001020100020002 +020281010201028201020186010002000200028202000203028401020001008600020002 +000200850002000100010801830201000281020181010083000200028202010281020185 +01000102000286020002010001020302020181020101010c028101020202850102010201 +020202810102080281010284020102010283020002010101830001000182010001820102 +01830102010285020002000200 +050181000101018300010001010183000100018201000182010001010181000182010001 +06018100010901820001008a000102010201000200020183010201028802010201000201 +02018f01000102000102010201000201020102810201030183020002008c000102000102 +010201020100028102018b01020102010200020102010082000102820201020102820001 +020202810102010288010001020102010201890102010201020102010202028500020102 +000281020102018102010401820201020302810102010287000102010001020102018300 +010001010181000204028501020102010282020002010283000100028202010283020102 +018901020001000100020102010283010201028302010002030283010002010101820201 +020102810002820201028202010287020001000200020085000200020102820201028102 +008300020002820201020102820102018101028102010201020281000202028600020102 +010201020188020002000100020002850200010001008100018401000201028202010282 +020102820201028202010282020102820200018301020102890200020100010201020102 +0181000288020102010201000100820002018b0100020002000200020001008200010282 +020002820201020102810102010281010281020083000100028302010002010284000200 +010284020002000281020086000200010200018601000100010001820100018101028c02 +010200010201000201020002010285000201020102020283010201020202810102030281 +000282020002050281010202028101020402810102010281010202028701020102010201 +028102010101850201020102010c0186020102000200018301020100 +020181000102018300010001010183000100010101810001030181000101018100010201 +010005010100b30100010001000100010002010002010200020001000100020102010002 +000200010200020001000102010002010201000200020082000102940201020102010001 +0200010201020102010200020192010201020002010201020002010200020002008f0001 +020002000200020102010201020082000201810102840201020002040285010201020102 +830200020103018100010201820200020202830102000203028701000100020001008e00 +010001000100010200010201000282020102820201028302010201030101028101028202 +0102850201020001028a0200010201020001000201830102010284020002010284020102 +010201028100028202000201028100020102840100020002010281010203028101028202 +010282020102830201020181010201028101028202000282020002820201020302810102 +010284000200010085000100020002810201810102820201028202010082000102820201 +008200010282020102810201810102830201020101018202010281020182010201810102 +810201010183020102008200010286020001000102010101830201020184010200010285 +0201000200028a0200020002000100010002820200028202000201020301020281010203 +028100020102840002000102860200020002000101018300010001030182000102840201 +020102850201000200020402850002010201020602810102820200028202010208028600 +010200020002010283010201020102030101020101820200018201020183010201028602 +000201020102810201010181000106010102820102010101840201020100 +020187000100010001000101018300010001820100010101830001000101018100010101 +810001030181000185010001000100830001000183010001000100860201000200020002 +0083020001008a00020001000100020002008100018401020002018a0102000200020102 +010200830001000286020102010201008200010281020182010200890001020102010201 +000293020100010001000201020102000200020102010002000302810100010085010002 +010200860001020102010081000285020102010200810002810201010101008401020100 +028302000102840200020102840200010001010182000200880001000100010002018301 +020002820201020102810102820201028602000100020002850200020001028102008300 +020102820201008200010202020200840102000200010082020102820200028202010201 +028100028202010281020082000201020182020102810201860102000100010281020081 +000282020102850200010201020102810102810201830102000202028500020002010284 +020001000181010283020102008500020001020082000200810001830100010282020102 +810200810002030201008202000201028200010085000200020002810201020181000104 +01810001850102010001008200010201020100830200010002008a020002000200020001 +000203028101020102810102820200018801020001000100020185010001000200010084 +010002000283020100010301810001010186020002000100028502000100010201028301 +02010203028101020f028401020100020402830102000201028100010101890201000201 +02010201028402010201020102810102870201020102010201820102010a018202000101 +018602010001020102 +040005018100010301810001840100010001010181000101018100010101020002018100 +018401000100018301000100010001018902010201020100020102850201020002008200 +020185010201020102850201020002008c000200020001000102010200018b0100020001 +02010201020102a102000200010201000201020102000201020102000200020002000201 +020102010001010188020002010201000100010081010201020101840001020102880200 +020102010201028502010201020101018202010281020101018702000102010201028202 +000281020182010201880102000102010201028302000102820201028802010201020102 +000285020102010002010281010282020002820201028302000200810002840201000201 +820102018301020002840201000201840102000102890200020001020002010281020181 +010283020001028102008100028202010282020002830201020181010281020181010282 +020102830201020184010002000283020001020502810102010202018600010001000200 +850002000100010101820200020102870002000100020102820200028502010002010081 +000284020102000283020002010201820001008500010001000102018300010001020101 +028300010200010084010002000201028401000100020102810102020281000283020102 +010301010281010282020102880200020001000100028202010283020100010401810201 +03018202010205028101020a028101021102010101028301020002020283000200028602 +010201020102830201020101010102820002000100820201028402010201008100018301 +0002010201010002018b00010201020100010201020182010001 +050101008201000101018300010001010183000100010101810001860100010001000103 +010100810100860001000100010088000100010001020100030084010001020085000201 +000200820001008500010200020086000201020002018401020102018501000100010001 +008102008800020002000200010001008702000200020002000100850100010001000100 +8501000100010001008101000300830100020001008502000200020002008b0200020002 +00020002000200840002000200010083020001000200830100010002008e010002000100 +010200020002000100040081020002008101000200810100020001028a00020002000100 +010002008400010002008600020002000100020081020005008101000200830200020084 +000200020084000200020002008102008400020001008400020002008400020002000200 +810200840002000100840001000100840001000100840001000200810002040281000285 +020002000100860001000100020084000100010082000100020081020001008101008200 +020004008101000200850100020002008800020002000100010002008201000181010002 +000102820001000700860201020002000282020102010285000200020002030201000e01 +840002000102820201028502010002010285020100020102820200028202010282020002 +080281010202028101020c02810102850201000201028202000181010001008102010401 +010082010200810001830100010001008301000102020282010200860001020100010281 +0200820001028102010401830001000102018a0201000100010001020102 +810001080181000103018300010001010181000101018300010001010182000100810001 +020101000601830001000281020186010200020002018a01020002000102000200028802 +000200010200020181010001008101000100830201020086000201020002018a01020102 +000200010201028102018101020102940102000201020102010200020102010201020001 +028602000201000100020085020102000200010001018200020081000286020002010200 +028b02010201020100020102010281020106018202000187010201020102000202028300 +010001810102020281000282020102810200820001028202010201028301020102830200 +010083000200020102010189020002010002010002000100820102018101000200830201 +020082000102820200028202010282020002810201810102040286010001000100028202 +000286020100020001028202000281020182010201830102010281020184010001000281 +020001000402810002010284010201000185010001000100840002000200010001028101 +028202000282020002810200010082010001880100010001020001008300010002870200 +020001000100810001010182000100080004028101020102870002000200020102810201 +050103028101028102010401840200020102820201008300010002020203000e02810002 +040281000202020100030281010203028101028102008500020100010289020102000201 +000201028302010200010082020002830201020001000102810102010282010200890002 +010200020001020001008202000103010100890201000100010001000103010102890102 +0100010201020102 +050185000100010001010101000401810001010181000103018100010101810001840100 +01000101018300010001850100010002018b010200020100020002000201840100010001 +820102019201020002000201000200020001020102010201840102010200880002000200 +01000100010081010001008c010001000102010001000200028202010001008a02000200 +020002000200028a02010002000200020102000100830100010004000102010081020001 +0083010201008b0001000102010002000100018701000100010001008800010002000201 +020083000100020102010082020002010201008201000282020100020003028200020084 +000100020002008301000200840002000200030081010003000102050083010002008400 +02000200020081020082000200070081010281020083000200028a020001000200020100 +0200840002000100830002000286020002000100028202000281020081000202028a0102 +000100010001000200890002000100010200010086000100010001008100010101010085 +020001000200860002000200010001000102820002008100018101000200830102010282 +020002010286010200020002008600010002000200820001000100850200010002008100 +020302820100028202000101018100028402000201020802810002060201008202010282 +0201028402010201020102010081010284020100010083000100018d0102000200020102 +010001020002830201020181010001008102010101820002000200820100028102010101 +030086010201020001000100820102018101020102830100010205028400020100010401 +81020185010200010001010181000101018102010101 +860100010001000182010001030181000101018300010001820100010101830001000101 +018100010101810001020181000101018100010101020088020001020102010201810102 +01028a000102010201000200020183010201028502010201020188010001000102010201 +81010085000200020002010286000201020102018101008b000102000200020002000102 +8702010200010001028e02000200010002000200020100010001008a0100010001000102 +000100810002810201850102000201028602010201000102880201000100010002010101 +82000100020086010001000200028702000200010002008c000100010002010002000200 +028202010281020083000200028802000200020102010081000282020102810200840002 +010200030081010005008201020081000202028300020002860200020001000283020002 +008200010281020083000100018801000200010001020002008302010200870002000102 +000201830100010282020100010081010201028101008300020002820201008400010001 +000200830100020001008602010200010002850200020001008600010002000201010186 +000201020002010101870001000200020002820200020102880100020001020002000100 +820201028102018101028202010283020102008200020087000200020002000202028100 +028402000201020c02810002070281000282020102810200830002000283020100028102 +000200020201008101028302000200820002008400010001028502000200010086000102 +010201028f02000100010002010201000201020002840201020002020283010200020202 +8d0100010200010201000102000200820001020102030188000200010002010001810102 +020281010201028301020102 +810001820100010101010003018100018401000100010101810001010183000100018201 +000101018100010101830001000182010001010101000101830201020183010201020202 +830102010202028301020002910201020002000102010201000201020102018501020102 +010286020102010201028102018701020102010201020202820102019901000102010201 +0201000102010201000102010201020100010001008101028c0200010002000200020102 +000102018900020002000201020002860200020102010281020184010201000283020102 +018301000102010282010200010003028101028402010201000100820201028302000100 +8700020001020002008100028402010001008a0001000200010002010200010084020002 +010002000202820002008200020181010001000302810002010282010200820002010101 +810200820001020102010001028200020085000201000201820100028202010286020100 +020100028502000200010282020102010281000201028100020102010183000100028202 +010086000200020001000300010102000101810002810200820002000300840201000200 +020081010282020100010084020001020002000302010087020002000100020082000100 +010087020002000201020083000200020602810002040281010207028100028602010200 +010002820200028302000100830002000182010001810100870002000201000200860002 +010002010004000101810200010001028101028e02010201000201000102010001000201 +028101028502000200020190010001020002000100010001020001020085000102010200 +900002000201020102000200010200010002810201820102010101010285010001020001 +8401000102010001 +040183000100010401810001030181000101018300010001010181000182010001010183 +000100010101810001820100010101810001890102010201000201020184010201020188 +0102010201020102018f0102010201000200020002010002000202028a01020102000201 +00020102840201020102820201028e020100010201020102010201020102010284010001 +000284020100010201028101020102860001000200020001008102008400010002008800 +01000100010001008100020202850002000201028a020001000201020100020081000101 +018500020002010281020001000102810102810200810002830201020001008101028102 +008300020002020284000200010201028300010002830200020001008402010002000100 +810102810200020081020083000102008500020102010001008102008300020002020289 +010200020002000200010101840200010002840201000100830002010285020100020102 +840200010001810102860201020002000282020100890001000100010001000101018902 +000100020002000102020201008801000201000200020089000100020001020100018101 +008100020102840102000102030288000200010002010002020281010203028801020002 +000201000282020102060281010205028300020102010281000203028300020002830201 +020081000285020002000100870001000200010001810100010085010001000100810002 +820201008800010200010002000181010207028500020001000183010201028102018a01 +0201000100020102010282020102020283010201020202830102010202028b0102010002 +010201020100018501000100010282020102020281010001008b02000102000200020102 +0102840201020002 +020181000101018300010001020185000100010001010181000103018100010101810001 +840100010001010181000101018100018201000186010201020001029402010201020001 +020102010201020100020102010285020102010201860102010201020184010201000281 +02018401020102018a01020100010002000200028102018101029a020100020002000200 +020002010201020102010201020102010201810100860002000100010281020188010002 +0102010001008e0001020102010201020002000200028402010201020102040185000200 +02000202028101020a028601020002000102820201028302010201820102018501020102 +010288020001020001020102040201008101020202830002000281020183010002008600 +0100020002008100028c0201000200020100010200010201028501020001020087000200 +010001000283020002010101830002000285020002000102010281000285020002000102 +010283000100010101840001000100830001000282020102870201000100010001010182 +00010082000100010001028c010200010002000102000100028102000100030283000100 +020102810102860200020102010287020002000102010081000282020102050281000282 +020002830200010204028101020102810102840201020102020201018102010201010092 +010001000100020100020100010001000100018701000201020100018301000201040185 +000200020002020282000201810102820201028202000281020181010281020083000201 +028b02010201000200020102010286020002000201028102018a01000100020001000102 +000200820201020302890002000201000102000201028200020184010200010003000301 + +870001000100010001040181000101018100010101810001840100010001010181000101 +018300010001820100010101810001010181000101018400020102019001020100020002 +010002010201020102018b0102000200020001020102018d010201020100020102010200 +02000100860102010201000101018e020102010201000100020102010201020101020101 +010201010102950001020100020102010201020102010001000100020081000281020102 +010402890002010201020002010288020102010200010001820102010501020281010202 +028101020202810100020083020102008300020102820200028402010201020302810002 +850200010201028102010101810002880201000100020001008800010002010002000282 +020102030281010201028101028902000100010002000201010184020102010081000284 +020100010206020301010201010102840001020002850201000100028102018801000100 +010001000104010102010188020002000100020102890200020002010002000281020084 +0001000200830002000203028100020e0281010201028101020302810002030281000205 +0281010201028101028202010204028101020202820001028e0201020001000200020001 +000200028702010200010201008100010401010281010081000101018502000200010282 +020102020281010283020102018101020102810002020298010001020001020102010201 +00020002010002000201020102830201020102018d00010001020001020102010201028d +02010001020002000200020100020102010102028e000100010201000102010001020002 +0002 +810001840100010001080181000104018300010001820100010101830001000101018100 +018201000101018100010101860002000102010295020102000102010200020001020102 +010200020102018301020102860200020102010294020100010200010201020102010201 +000201020001870102010201020102810201010197020002000200020002010201020102 +0102010201020102008d0001020002000100010001020102810200810001820100018201 +000288020102010201020102840200020102870200020102000100890002000100010002 +010207028101028502000200010001008201000282020102820200028402000200020202 +8101020302840001020102020201008702000200020002008e0001000200020100020001 +000201020302830102000182010001840102000100010082010002840201000102810201 +8201000181010281020183010001008400020002008100028a0201020001000102010200 +010083020001000100030185000100020002840200020001810102830200020082000200 +010081020001008201000204028100020b02810002020281000209028100020102810102 +050283010200020302810102820200028102000100040283000200010201810201810100 +010086020100020001028302000200010081020082000201010182000100010084010001 +000282020102830200020001008502000100020084000201000282020002820200028202 +000284020102000101018202010003008c01000200020001000100010001020182020002 +90020102010200010001020100010200020083000200020102010184020102000201028d +010201020100010001020100010281020082000201 +010081010001008101008300010001070101000401810001820100010301810001010181 +000182010001010181000101018b02010002000102010201020186010201020102018701 +02010201020102830200020181010201028e010201020001020102010001000200850001 +020102018201020188010201020100020002860201000201000283020100028702010002 +0102010202028401000200018101028e0201020102000200020001000102018101008300 +010001010105028801020102010200010285020002010201820102010301070281000203 +020100820102010101830201000201028101028302000201810102010281000282020002 +010284000102010282020102820201008400010002018401020102018501020002010282 +020102820201020102010087010200020002000281020104018100010201840001020102 +010281010285020102000102890201020102010200010282020102820201020102010183 +020102018501000100010085000100020002810201840102010001870102000100010201 +830100010282020102010286010002010200020102810102010281010202028101020102 +8101020a0281010282020100830002000202020100020285000200010201040101028200 +010281020181010281020101018202000201020100020287000200020001020189010001 +020001000100010101830201000181010001000102810002840201000102810200010083 +01020102010282010201810102830200020089000201020100020102010d010102990100 +010201020001020102000200010001000102000102010201810102820200028402010200 +01020191020002010001020100010201000201020001 +810001810100830001000107018100010101010084010001000101018100018401000100 +010101810001010181000182010001010183000200028502010201020186010201020102 +019201020102010200010201020002000200010201860102010201020181010081000184 +010201020181010287020100020002000201028601020102010002030296010201020002 +000200020002000200020002010201020101018800020002010201020183010001008100 +010401010086020002000200028d02010201020002000100020001008300020100810002 +020281010202028101020302870100020100020100010082020002840201020102820201 +028202000201028100028102018801000102010200010282020102820201028302000200 +840002000100860001000200010282020102030283010001028202010283020001008300 +010001850102000100020102810102830201020101018102018101008900010002010002 +01020190010200010001020102000200010001000102018b020100010201000102000102 +850200020001020d02810102080281000206028101020102810002010281000201028100 +028202010202028701000200020001008a00010002000100020002008500020002000281 +020101010102020182020100820001008100010101810001010101028101008100028102 +0081000101018500010001000101018100028102008a0001000100010002000201010181 +000201028601020001000102830200010281020001008702000100010002008700020002 +010002008400010200028202000189010002010001000100018401000100010401820001 +008100020102840001020002010283000100018501000100010088000201000102010001 +810100 +010181000181010001008401000100010201810001050181000182010001010183000100 +0101018100018201000101018100010101810001a2010201000200020102010201000200 +0200010201020102010200010201020102010201820102018101028e0201000200020002 +010002000200028402000200020302860102010200010202028800010201020102010281 +020181010287020002000200010282020002840200020001010183000100010201850001 +000100018201020181010281020181010282020002840201020001840102000100810001 +010185000201020102050281010203028201000101018300020002010201018100028202 +010284020102010201028101020102810002010286000102010200018101008e00010001 +000200010200020002010282020002830200020184010002000186010001000100010201 +810201010101028200020086000200020001020102850001020102010201820200028202 +00028202010081000202020101820201028d020102000100010200010002010209028101 +020102830102000282020002830201000206028100020a02010102028101028202010284 +020001020189010002010001000100018201020183010200028a02010200010002000200 +020202840102010001030106028101028802010200010002010201028200020188010001 +000100010001050185000100020002820201028402000200028202010282020102840200 +010201890102010201020002000201028701000102010002000100010283010201020202 +830102010202028101020202850102010201028602010201020102020287010201020002 +00018201000182010001020181000101018100018301020002 +810001010183000100018201000103018100010401810001820100010101810001030181 +000101018100018601000100010001830102000281020187010201020102000284020102 +010202028801020102010201020185010201020102860200020002000282020001910100 +0102000200010201020002000102000287020002000102010201029c0102010201020102 +010201020102010201000102010201020102010201010101008601000100010001820100 +010201820001008400010201028302000102820201028502000200020084000201000282 +020002080281000203028401000100028b02010200010002010200020181010282020102 +040281010202028200010081000282020102860200020001020185010002010200880002 +000201020001028402010201028a02010001000100010001008200010283020001028502 +010002010285020100020102840201000200880002000102000200028202010203028100 +020402820001028202000202020101010281000206028100020202810002060281000204 +028100020302810102030281010286020002000100020102810102820201028302000100 +850002000100028302000200810002010285000200010001040101028101020202010181 +00018301020100020081020083000201028202000284020002000202028c000100010001 +0001020100010282020102820201028d0201020001000100020100020102820201020102 +810102020286000100020001020702820002008400010200028f02010201000201020100 +020100010001810102810201830102010202028301020102040285010200010201010181 +00028e020100020102000102010001020100 +010185000100010001020183000100018201000102018100018201000101018200010083 +000100010101810001010183000100018601000100010201840102000201830102010289 +02010201020100020002820201028d020002010200020001020002000287020102010201 +020187010200020100010081000101018a0201020100010201020102010201018a020102 +010201020102000283020100028102018101028102010301860200010001000107018100 +018201000285020002010201010186020102000201028502010001020182010201820100 +0207028100020102830002010282020002010201008a0100020002000102010002850200 +020001028502000102000281020181010281020181010282020102880200010201020002 +008300020002820201028902010002000201020102020281000106018202000201028500 +020001000182010002820201028202010284020100020083000200028302000102860200 +0100020002050282000102020281010202028100020a0281010201028100020202810002 +010281010207028101020102830002000203028201000201028101028302000102820200 +028302000100870001000100010001020183020100028502000200010281020081000204 +028500020001000101010402870001000100010001820100010101830002000103018102 +010101810001010181020089000200020002000200020702830100010201028301020102 +8202000201028c01020001000102000200010001040101008c0102010201020002000102 +010201028900010002010001000102820201020202010104020201810001010182000201 +8601000201020002840201000102 +810001820100018201000101010100030181000184010001000102018300010001010181 +00018201000101018300010001820100010101830002010286020102010201028d020002 +0002010002010200020002820201028702000102010201028c0201020102010201000201 +020083000102018601000102010201810102030291010201020102010201020002000200 +020001020184020102010201028100028702010001000100010601830001000186010002 +0102010281020101018300020002020283000200028a0201000100010002010002020282 +010201810102830200010287020002000201020102010102010181000282020102820200 +028202010282020102820200028202000286020100010002008100028502000200010282 +020102010202018600020001000100830002000282020102860200020100010202028501 +020102010203028300010201810102820201020102010101028300020002040281000201 +028101020102810102060281010288020002010201020102010281010202028101020102 +010102028101020c02840002000102820200020302810102810201810102040285010002 +010201810102030285000200020002820201028202010201028101028602000200020102 +010282000201020101008a01000100010201000201028302010200840002000102840201 +000102040202010100820100010101810201030185000100010002030283000201020102 +820102018301020102830201000184010002000282020102860201020002010284020102 +00028c020102010201020001000100018f01000100010001000100010200010201830100 +02018201020101018a0200020102000201020001010181000101010000 +040181000101018100018401000100010401810001060181000101018100018201000103 +018100010101820001028702010201000201028702010201020102018a01020102010201 +000200028a02010002000201020102018401020002008100020102870102010200020102 +02028500020102010201028101020202810102810201810102830201000201028101028d +020001000100010201000100010082000100840001000100890001000100020002010081 +0002820200028c0201000201020002000201020084000200010081000183010001028202 +010202028700020102010201028102008300010001010101008401000201028202010284 +020100010201028401000201028402010201028202010082000102020286000200020001 +008400020002008400010002018101028602010001020102020281010282020102010281 +010282020002030283000201020302820102018101020102810002010281010206028101 +020102810002020281000201028101020202810102020281010281020081000206028101 +020602810002010281000282020102810201880102010200020100020202810102010281 +010201028200010202028301000100840002000200940001000100010200020001000201 +02000100020002030201018b020100010001020001000200040084020102010283020100 +0203028801020102010002010001008f0200020002000100020002000100010281020182 +010201810102820201028202010201028401000200010201010283010200028202010202 +02830102000202028300020002890200020002000100010202028a010201000201000200 +0102010201018302010201820100010101810001010189000201020002010200020002 +840100010001010181000101010100850100010001008100018201000101018100010301 +810001010181000184010001000101018100018c01020001020002010200010201920102 +000200020100020002000201020002000201028a00010201020002000201028502010001 +000289020002000100010200018201020185010201020102010283000200020302890002 +010201020102010282020001820100010401830001000101010100830100010283020102 +00850001000102018401020102018b010002010201020102010001830102000182010200 +820001028202000282020102020201010102050101008301000102810200010083010201 +020302810002820201020302810002020201010102010086020100020002008500010002 +000288020002000102000102010283010002008100028302010002820200020102810002 +010281010228028200010281020001000102830102000202028100020402840100020102 +8102008a00020001000100020001008c0001000200010001020002010202028301020100 +830002010282020102830201000102018400020102010201830200020088000100020002 +0001028202010202028101020102820100010201820201028f0201020001000200020001 +020001000201028801020001020100020082000102820201028e02000100010001000100 +01000200020502840002010201020101028a010201000100020100020081000101018100 +018401000100018601000100010001860100010002000202028a00020002000200010200 +0283020102018701020100020100018b0100010201020002010002018601020001020001 + +82010001010181000101018100018201000181010001000b018100010101810001010183 +000100018201000101018202010286020002010201028a02000200010201020102019901 +020102010201020102010201020102000102010201020102019801020102010201020102 +010002000200020002000200020002020281000206020201810201010183000100010101 +820001008200010001008d01000100010001000100010200028602000200020102820200 +028102010101810201870102010001000102830200020082000102820201028202000181 +01028a020102010001020102000182010001840102000100820001028202010284020002 +01020102010102028101028f020001020001020100020001000201028502010200010081 +000184010200010285020100020102840201020102820201028202010206028100020102 +810102090281010201028100020a02810102080281010283020102010101850201000201 +02820201028202010282020002850200020002008a000200020001000100020087000100 +020002000201028101020102810102820200020102810102820201028f02000102000100 +020102010201000102850201020001020402840100020102020281010203020100810102 +030287000200020002010201020100810102010281010288020002000102010001830102 +000285020100020002810201840102010201810102820201028302000102820200020202 +8301020102820200018101028702010201020100028b0200020002000200020002008100 +02020282010201020181000186010001000100010201070282010001010181000201028e +0002010200010201000102010001020002 +810001820100010101810001090181000182010001050181000182010001840100010001 +0101810001820100018401020002018b0102010200010201020102018501020102010201 +028801020100020002010201028401020102018c01020102010201020102010201900102 +0102010001020102010002000201020402830102010202028f0001000100010001000100 +010001000183010002010101910200020102000100010001000102000201028402010201 +020102810100830001000104018102018201020102018100020402810002810201030182 +000100830001000185010001000102820201028702010002010201020302010181000282 +020102810201010183020102008600010001000200820002018701020001000201028202 +0002010281000201028100020802810102010281010205028100020a0281010282020002 +820201028202010207028300020002850201000102010201870001000201000100810001 +850100020102008500010001000184010001000183010200010101850200020002018401 +000200028202000201028101020102010001028101028402010002008300010001820102 +018501020001000288020002000100020002820201020102010182020102010203008202 +000201028200020181010202020401810002020281010203028201020089000200020001 +000200028702000201000200028202010205029b01020001020102010002000100020002 +000200010201000201020102810201820100010101890200010002000102000202028101 +02030281000201028801000102000200020182010201010181000101018d000100010001 +0201000102010001 +010181000101018100010101810001020102000101830001000101018100010201840001 +000100810001010181000101018100018201000284020102010299020102010002010201 +02000201000200010002000201020102018c010200020002000200020001020102930002 +000200020001020002010201020002010201820102018101028402000200028202000285 +02010001000105018100010101830001000183010200028102018e010002010201020102 +000200010200820001029402010201020102000102010001000100010001000101018302 +010201810102820200028602000200020001020181000182010201830102010282020102 +820201028502010002010281020183010200020202810102860201000100010282020002 +8c02010201020002000200020102820200028202000208028101020d0281010282020102 +090282000102010281010203028101028202000201028400010201028302010001020183 +000100010101010001028101020102810002850200020001028502010200010202028400 +020002008100028202010286020001000200020302810102050281000285020102010201 +010189020002000200020001008400010002018201020101018300010002010201018302 +010201810100850002000100018101028202000281020182010200830002000282020102 +81020181010282020002010289000100020100020102018101028e020102000100010002 +00020002010282020102020281010201020101010201018f020001000100020102010002 +000200028202000286020002000201029002010201020002000102000200020001020102 +810102840201020102820201028202000201028300020002010283000200020102830002 +0102 +810001010181000101018100010301810001040181000101018100010201810001050181 +000101018100018201000101018102018701020001020002018501020102010202028c01 +0201020102010201020002008300020002830200010201028701020001020001008d0001 +000100010001020102010200820002008300010002870201000200020102010201018700 +010001000100010101840201020002850200020102008300010200900002000100020102 +010002010201020102840201020102810201010188020102000201000100010082010002 +850200010001028202010282020002840201020001010182000100870001000100010001 +81010202028100028a020100020102010002010283020102010201820200028302000102 +82020002850200010200028202010201028100028202010208028101020d028101020102 +810102020282000200880001000201000200020102810102810201020102028101028802 +0102010001000100880001000102010200010201010081010201028400010001008a0001 +000100010001000201810102810200830002000282020102040281010201028101020102 +8101028b0201000100010001000200028602000100010001020188000100020002000102 +02028100028c020100020100010001020002010201840200010001880100020102000200 +020402830100020081000281020189010002000200020100020502810002820201020102 +810102880200020002000100010101810001830102010201029500010001000201020002 +0002000100020002000200028602000200020102860201020102010207028100018a0102 +000201020002000201820100010101870001000100010001 +010181000101018100010b01030084010001000101018100010101830001000182010001 +010181000101018c02010200010201000201020102020288010201000200020002020291 +0100020002010201020002010201020102018d0102000201020100010002000201010183 +000102010101860002010200010281020183010201028202000103018f00010001000102 +010201020102010201820100028402010201028502000100020082000100880001020102 +000200020102010081010287020002000100010084000102000283020001028102008300 +010201840102000201010182000100010002018102008300020102820201028202010282 +020102820201028702000200010200028202010283020001020202820001020a02810102 +0b0281000201028101020102810102050284000200010283020102018801000201000200 +020087000200020002000282020002810201810102820200028302010201060181000182 +0100028b0200020001020001000200020102810102820201028e02000200010002000200 +020100020103010302810002050281000201028200020085000100010001810102820200 +028a02010200010002000200020202810102020281000281020181010001008401000100 +02880201020100010200028302000200810002030281010201029a000200010001000100 +020002000102000102000200010200020102860201020102010288020102010201020002 +830200020082000201810102020281000101018300010201820102018201020181010289 +020001000100020002000100010284000200010281020182010201030181000101010100 +01028a0100010201000102010002010282000200 +830100010081000186010001000100018201000184010001000182010001840100010001 +0201820001008100010101810001820100010101810001860102000201000202028d0102 +000100010201020102000201830102010201029f01020102000200020102000200020002 +000200010201020102000200020002010101830001000101018102019001020001020102 +010201000100010002010101030202018902010200020002010200030083010001008700 +010201000102008400020102018b01000201020100010001000186010001000200028202 +010281020086000100010201028a02000201000100010001008400010001008300020102 +030283000100020102810002070281010207028100028202000203020100050281000201 +0281000207028100020102810102810201810102820201028d0201020102010200010200 +020001830100020083000100028202010282020102810201810102830200020088000102 +010001000100810001010186000100020002018201000183010201008400010002000200 +850201020001028202010282020002010285000200010002020281010201028100018201 +020185010201000200840001000100020081020102018500010001000102018300020002 +840201020002010283010200010101850200020001028202010085000102000102830201 +000202028201000201028300010001010182020102820201028202010284020002010288 +020002000200010201810102820201028602000200010002820200028202010285020102 +010200820001028502000200020086000102000200028202010204020101810201850102 +000100018101028c02000200020002000102010200850002010200028702010001020100 +028602010001020100 +820100010101810001090181000101010100010181000104018100010201810001010181 +0001890100010001000102010289020102010002010200028f0201020002010201020102 +010002000287020002010002000287020102010201020185010201020100820002018201 +020101018c000200020102010201000100010201810201010181020101018f0200020002 +000200020102000200020185010200020001830102010288020002010201020002010284 +000201000284020002010202028201020185010001000102850201000200028202000286 +020100020001028502010201000102010200830100010083000200028202000215028101 +020c02830102000201028101020102810102830201020185010201020002010201010202 +810102010285010201000102030282010002830200020181010086000200010200028202 +0002010203010102810102810201030101008b0100010001000100010002008500010002 +01028202010283020100018b0100010002000200020001008b0001000100010002010201 +020102810102020289000200010002000102018301020102850201000200020102810002 +880201020001000201020602810100860001000100010001000201810200840002000100 +840001020002020285010200020102890201000100020002010083000100010201810001 +810102810201830102010201028900010001000200020002850201000200028402010200 +020202820001000100880102010002000200028102000100880100010001020100028402 +000100028502000201020185010201000201860100020102000101018100018301020001 +0101810001010182000102 +020181000101018300010001840100010001840100010001820100018101008100010201 +810001840100010001820100010101810001020186000100020001008200020188010201 +020102010201a10102010201020002000201020102010200020102010201020102010201 +0201000200850001000200018201000101018102010101830201000103018a0002000102 +0102010201028102018101028302000102830200010286020002000201028b0200020002 +000201020002008500020002010083000102018c01020002010201000200020002820201 +008400020001028302010201810102040281010289020102010002000201020202010106 +028100020c02810102030281010284020002000201028301020102030282000102820201 +028502010201000202028101028202010283020001028202010202028100020102850001 +000201020102820102008400020001028202010283020001028102018301020102010282 +000200890001020100010001000104018202000281020186010200010001008700020002 +000102000100010281010282020102820201028202010282020102840201020002020281 +010201028101028102018101028102018101008200010082000102810201820100010101 +81020181010201028100028202010209028b010001000102000200020102820201028502 +010001000204028100028202010201028701000200010001020402830002010201028100 +02030201010102810102020282010201820102018201000182010001030183000200029b +020102010002000200020100020102010201020001020002000100018101020202830002 +00028d020102010201020100020102000201028100018301020002010281000201020000 + +820100010101810001040181000184010001000184010001000181010083000100018301 +000100810001010181000182010001010183000100018601020102010201820102018e01 +02000201020002010201020102008d000201020102010201020102000283020100028a02 +010002000201020100018201020186010201000102018401000200010101830001000101 +019602010201020102010201020102010201020102000200028602000201020102010201 +008c02000200020100020102000201850102010200028302010001870102010200020002 +820201028502010002010286020002000201020202810002080283000200028202000211 +028400010201020102010001028301000100840002000100860001000201000285020100 +020002820201020102810102830201000282020102010281000201028100028602000200 +0102018b0100020100020102010201008200010281020001008101020102820102018101 +02820200020102840102010201870100010001000100010083020002008f000200010200 +010002000100020102008100028402010002008100020102860002000100010203020101 +840001000102850200010001008300020001810102010282010002010288000200020002 +000102860201020100020181010202028100010101820001008500010002000281020083 +000200020202820001020102870102010200010001010182020002810200890002000100 +010002000185010001020102010281010201028301000102020282000102840201020002 +840200020002040286000100010002010401810001840100010001820100018501020102 +01028902010200020002010201830100020182010002830201000101018e000201020002 +010200020100010201 +8100010101810001820100018201000115018c0001000201000100010001000101018400 +0102000201028b0001020002010200010200020302810102880201020002000200028302 +010201830102010285020102000201020182000100870001000100010001010181000194 +010001000102010002000200020102000200020102810200810002020287010200020102 +0002880201020102000201028a02010201000102010001000100820200028a0200020102 +01020002000201028200020086000200020001020a028101020402810102850201020102 +018301020102060281010282020002820201020402890102010201000100010081000281 +020101018502000100020083000200028202010201028500020001000282020102820201 +020102810102010201010202020182020102010281010281020083000200028102018101 +028202010286020102010200028202010282020102010283010001028102008100010101 +810001810102860201000200010282020100860001000200020184010001000104018400 +010200020402830102000206028201020182010201840102010201830100020081000289 +020100020001000100028602000201020102010281000284020102000281020101010402 +810102010288010002010200020001830102010203020201850001000201028d02010002 +000201000200010201020202810002850201000200028302010201810102020207018100 +018801000100020102010287020100020002000286020002000200020102810002870200 +020001020001850102010200020102010181000101018200010291020002010200020100 +010201000102010001 +010181000101018500010001000105018300010001060181000182010001010188000200 +010002010001010181000186010001020100028702010002010201020102010184020102 +010282020102850201020102018101028f02000201020102010201020102010201820102 +01840100010001050183000100019b010201020002000200020002010201020002000201 +020002000201028902000200020002000200010083010001000200850100010001020102 +810102820201020202810002820201028502000200020081000204028100020202810102 +090281000285020002000102810200010001010102810102810201810102810201010105 +028100028202010286020002000100018601000200020001840100010002820201020102 +810001820100028202010202020201810001810102020281010203028100010101010289 +010200020102000102008100020102840001000102820201020102040182020002030281 +000282020001010181000101018100028802000200010001000102018300010002820200 +028202010283020102010101810001030103028101028402010200028102008400020001 +000200810102820201020102810102820201028202010283020001028102000300020284 +010201000189010001000200010002018301020002830200020083000200020702010084 +010001000289020002010001000200018201000185010001000102820201020102810102 +8a0201020102010201020102020286000200020002008a00020001000102000102010401 +8102010301810001860100020002000208028101020202850100010200028b0201000102 +0100010201000101018100010101 +810001010181000106018100018201000105018300010001040185000100020102820201 +028102018201000101018100018301000201840100020102820201028202010201029701 +02010201020102010201020102010200020102010201028b020102010001000200020001 +820100018101008500010001020181010202028200020181010283020001028102018301 +02010290020102010201020102010201020102010286020002010201028d020100010201 +020102000102000216028300020002010282010002010283000200028302010201830100 +010081000104018402010201028202000282020102820200028202000282020102820201 +028802000200020002010201020100830100020083000200028402000200010101050281 +010282020002040281000201028101020102010101028301000102830201020182010002 +820200028102010201020287010200010001000201028100020102810102050204010102 +840002010002010281010287020100020002000181010081000203028101008400020002 +0183010002008100020202020101020101820200028802010201000102010002008a0200 +010201000200010001810102830201000283020100020102830002010081000101018c02 +000100020002000102000102820201028202000201020101820201020102010181000282 +020102820200020402810002820200028202010284020100010208028101028202010001 +008201020104010100840200010201910102010001000200020100020002000201028602 +000201020102840201020001020181000101018100010101810001010185000201020002 +8802010001020100010282020001 +010181000101018100011401810001820100018401000102018601020102010001820100 +010101820001020202890102010200010201020193010200020002000200020102000200 +020002010283020001028302010201020185000100010001840100010001020101009a02 +01020100010201020102010201020102000200020102010201028e020102010201020102 +010201020102820200020102810102830201000203028100020202810002040281010202 +020300020282010200010082020102010282000102820201028402000200028102018301 +000100020085010001000102820201028402010200020102010181000204028101028702 +000201000200018301000102010281010282020100810002030283000200028202010201 +028101028202010284020102010207028401020102018501000200010084000100010081 +000282020102860200010002010283020102018101020602830102010083000100010101 +810200820002008400020002008200020182010001010182000200850002000100020202 +810102810201830102010202028101020202840102000200020082010001830102010283 +020102008500020002000284020100020183010001000100810102810200810002830201 +000104018400010201028202000282020100850001000201020502810102820200018301 +020102820201028202010289020102010002000200028202010202028100010101830001 +000202028101028502000200020001008402000201028d02010200010200010001000200 +010301840201020001010186020002000200018101020302010181020193010200020102 +000201020001020100010201000101018100010101 +8100018a0100010001000100010001820100018601000100010001820100018601000100 +010001820100028402010201028202000283020100018201000101018102018301000102 +940200020100020102000201020001020102010201028102018501020102010283020001 +028402010201008100010201820001008200020181010085000102010201810102850201 +000200018101020202950102010201020102000200020002000201020102000286020102 +010201020d02810102030285010201020102820200028202010201028600020002000102 +820201028502010201020181010282020102820201028602010001000201020181000101 +010102830002000283020001008100028202010282020102820201020102820102008900 +020001000201000200810001820102008100018301020102010281000282020002010281 +010282020002820201020102810102010201010402810102810201020181000182010002 +810201830102010282020102810201830100020087000201000102010202020101010282 +010201010181020182010001840100020002890201020001020100010282020002820201 +028302010200010002028200010081000201028100020202010181000201020101810200 +870001000100020002820201028202010282020102030282000102050286000201020100 +010101010285010002010200870002000100020001020183020100028a02000201020102 +000200028502010002000201028200010282020102040283010001020502830001020101 +01840200020001810100810001010183020001008100028502010002000203028100028e +020002000200010001020002000102010201008202010281020101018100018701020002 +01020002010285000201020002010285000102010001 +820100010101810001060181000107018100010201810001020181000189010201020001 +020102010101810001820100018301020002840200020102820201028f02010201020102 +010201020102010002900201020102000201020102000200010001810100010082010001 +810100010086020002000201009100020002010200020002000200020102000201028701 +020102010201020502810102010287010201020102010284020102010203028100020102 +820100028202000282020102830201020181010284020100020085000200020002820201 +028202000283020102018401000200020202010101008201000101018500010201020181 +010282020102820201028202010282020102030281000282020100010081010084000100 +020084000200010082000102820200028202010201020101820201020102810002820201 +028202000201028100028202000202028701000100020002000100010201000302850100 +010200028302010201010101028101020202810102860201020002000186010200020102 +000200810200850001000100010101850001020100018101000100010181000101018302 +0100020202810102010281010201028301000200810002810201020101028c0102010002 +0001000200010001840100010200010007028700010001000201028a0201000200010200 +01020184010002000203028101028f020002000100010002000100010002010201850001 +000100020202810102820201028202000203028201020186010200020102000100810200 +8700010200010201028402010200028b0200020100010200010001020102820102018101 +020102830102010291020001020100010201000102010001020100830001000101018800 +0100020001000100 +020181000101018300010001820100010201810001840100010001020181000101018100 +018101028102008300020002840200020102810201010181000182010001870102000201 +020102990200010200020102000201020102000200020102000200020002830201000285 +0201000100010301860201020102010201028401020001028e0200020002010201020002 +00020002080283010201020c028200020001008202000201028c00020002010001000200 +020102840201020102810201810102840201000102820201028302000201810102850201 +020001008200010202028101028202010001008601000100020001810102820201028202 +000282020002820201028102018301020102010281010201028100018201000201020300 +890200020002010002010283020100028302010201810102820201028202010201028100 +028302010002020283000102010101830002000189010201000200020100020102810102 +820201028302000102850201000201028202010203028101028102010301010083010002 +018401020001000100830201000102018202010203020100010282000200020001028301 +020102820200028702000100010002008900020100010001000200870002000100020102 +820201028202000281020181010201028100020102820102008100010301810001020188 +000200020002000200810002850200010201028302010201020101028100028102018501 +020002000201028100020202010102028100028602010201020102820200010101870201 +000100010201850102000200029c02000201000201020102000102000200010200020100 +0201000102010285020002000102820200018b0102000201020002010001028202010201 +02830002000201028100020202 +820100010101810001020181000111018100018101008b00010201000201020102000183 +010200018201000101018d00010201020102000102010201028202010201028901020002 +000201020102850200010201028102010401810001810102020282000102810200850002 +000200020c0281010202028b010200020102010200020002050281000201028301020102 +89020102000200020001008d000200010001020001020102000284020102010202028501 +000200010085000100020102820201028202010282020102820201028202010283020001 +008200020101018102010101010201018202010282020102850201000201028202010201 +028100020202820001028602000200020102830200020081000286020102010201020102 +810102820201028202000282020002820201020102810102020281010284020102000186 +010201020001008200010201028101028202010281020084000102010282020002010282 +000102040281010201028100018401000102018301000100860002000200020087000200 +020001000182010001820100010401010282010201010103028201020185010201000201 +840102010201010101028701020001000102018201000106010100810102030294000102 +010001000201020001000200020001020001820102000100850200020001028902000200 +010001000102880200020001000201028202010205028801000100020002000187010200 +010201000184010200020088000100010201020102830201020101018802000100010002 +000183010201008900010200010001020102040285000102010002820200020102940002 +00020002000100010001020100010201000100 +030181000101018100010201830001000184010001000184010001000182010001820100 +018501020100020184010200020184010200020189010001000201020100028302000102 +8d0200020102010201000201020102810201850102010201020202880102010201000200 +01020103020101840201020102820200020a028d01020102010200020002000200020102 +840002000201850102010201029102010200020102010200010001020001000289020102 +010200010200028202000201028201000201028500010201000282020002820201020102 +810102830201020181010282020102850201020102018901000100010002010201830100 +0102870201020100020102010281000282020102820201028c0201020100020002000200 +010083000200028502000200010201028401020001020102020102028101028202010201 +028101020102810102030288000100010001020102830201000282020001010101028100 +020102810102810201020102028401020102018101020102810001020101008101028702 +010001000200010201810002810201020101028601020001000200810002850201020100 +028202010282020102010281000201020300860201000102000282020002820200020102 +810102820201028202000282020102050286000102010001028302010001840100010001 +880100010001000100028202000201028101020202010187000100010002000282020102 +8b0200020001000102010201020402810102030201018402010200020102840001020002 +820200028202000287020100020001020181010281020101010302830102000285020102 +010201830102010281020101018102019401000102010002010201020002010200020102 +00028602000201020002 +010181000101018100011501810001870102010201000201830102010287020002010201 +000101018202010284020102010281020181010201028701000201020002018101020402 +920002000201020102000200010001000102010209028100028402000100020102810102 +030281000282020102830201020104018100010101810002880201020102010201028602 +010201020102870201020102010200830002000284020002010284020102010203028101 +0283020002000200860200020002010201028100028402010201028402010200028c0201 +020002000100010002010281020101010702810001830100010284020102000282020001 +010182020102020281010201028600010200010201840102000201830102010201028300 +020002820200020102830002000284020001020182010201870100010002000100820001 +008200010201028101028202000283020102000100820200010101090202018800010001 +020002000282020102820201008700010001000100010101850201020001028202010281 +0201820102018101020502860002000200020083000201028102018101028b0200010201 +020102000100028102018301000100830001000282020002010201018102010101010001 +0281000202028300020002010283000201020102810102050283000100010b0182020102 +03028c000200020002010201000201028102018801000201000100010001008a01000100 +010002000200028302010002010288010002000200020102020284010200010287020002 +00020102010101820002018c010002010200020002010200018401000102018201000102 +01810001 +810001010185000100010001820100018401000100018401000100018b01000100010001 +000100010001008c02010001000201000201020102840201020102810201830102000282 +020002820201020202910102010201020102000201000102010201028902000102010201 +020102050281000201028500020002010284020002000202028d01020102010201020102 +010201028802000100010201000101018302010002860201020001000284020102010288 +020001000200020102840200020002810200010001020200010281000203020100810102 +830200020081000201028101028102018501020100010282020102020285000200010201 +830100010081000282020002820201028102010101810002020281000201028100028202 +010201028301000100860002000100020081000282020102850200010200020102850002 +000100020202810102820201020102010183000200028a02010201000100020001008400 +010002018101020202010101028100028602010001020102820201020202860102000201 +020102018f02000200010200020002000100020002810201010185000102000102820201 +028102008300020002010281000201020201010201008301020102850200020102010201 +840201000201820102018101028102018201020087000200010001000201028501020102 +010082000201870100010200010001020185000102010002820201028302000102020201 +010302830002000282020102820200028402010001020102010182020102820200028402 +01020002010201018900010001020001020102840201020102820201028c020100010200 +020001000100018201000101018300020002050282010002940201000201020001000200 +0100020102000201000285020100020102010201010100 +850001000100010101810001840100010001820100018601000100010001840100010001 +010182000102810201890102010002000201020184010201020181010201028601000102 +010201820102010101820001020102870002010200020102010285010201020002860201 +020102010207028701020102010201028c02000102000200020002010002890201020102 +010201020103018700010002000200018301020102020283010200028302010002820200 +028102008e0001000100020102010002000201028402010201028a020102010200010002 +010003008301020102020285010200010201850102000100020102810002840201020002 +810201810102850200010001020302840001020002010281000201028100020202830100 +020002008401000201028302000102820201028302010201810102860200010002000289 +020002000102010200020302810102810201810100840002000200820001028202010282 +020002010282000100850001020102008100010201810002010281010201028101028602 +010001000102820201008800010001000100010083000201028402010001008800010001 +000200020084000102010205028300020102890200020002000201020181010201028101 +028402000200020102010182000201840100020002820201020102820002010301010001 +028400010201008a0001000200020001020002010281010283020100028a020001000100 +010001000281020101010102810102010283000100020102810102820201028202010286 +020100020001000200840102000200010084010001000101018300010001870100010200 +020102890201020100010002010284020100010285020102010001010181000103018100 +018b010002010200020102000102010283010200020202 +050181000116018600010200010001840100010201830102010287020102010200010201 +02010183000201020502840100020102890200010201020102000202028b000200020002 +00020002010282020102020201018300020001830102010281020186010001020102018e +01000200020002000102010201020101018502010002000102018b020102010200020100 +020002880201020102010200010101030083010200028702000200010201028202000181 +010285020001020102850201000201028202010204028100028202010283020100028102 +008100028202010283020002018101020302010101028101028202000282020102020281 +010202020401010282010200010082020102010201018202000283020102008100018301 +020102820201028202010201028100020202810102020282010002820200028302000200 +810002010203010202810102860201000200020082000102050281010201020201010082 +010001020101028200020081000202028201020184010001000101018102018301020102 +8c0200010001020102010200020002008101028602010201020001890102000200020002 +000185010200020100850001000100018101020202810102810201020183020102008400 +020001028202010282020002840200010002050282010201020102028301020102010282 +000102820200020302020184020102000283020002008100010101830002010202028101 +020a02810102030286010201000100018401020102010101830002000282020001830102 +000101018100018c01020001000102000201020002830201000187010200010201020183 +01000100 +860100010001000115018800010200010201000283020002008a00020100010201000200 +028402000201028202010285020102010001830100010294020102010201020102000201 +020102010201020102820200020102830002000284020102010288020102010200020100 +010093010201000102000201020001000201020002000201028100010201820001008100 +028702000102010201028602010201020102810200030085020001000102830201000101 +010102810102820201028402000200028502000100010085000100020102820201028402 +010200020102840100020002030282010201840102010002810200810001810102820201 +020102810002840201020102030281010282020102830200010085000200020002010285 +010001020102840200010201820100020102010002028100020302810102020281010202 +020201880001000200010200018401000200028402010201008100028702010201000100 +018101028502010201020181010201028201000101018302000100020082020002840201 +000201810102810200820001008900010001000100020002820200020302810102840201 +020002820201028202000282020102810201030102020101810002810201820102018201 +000282020002060282000201020183000102018301000100030082010001810102020282 +010002010282000100010083010201028a02010002010001000100018101028402010200 +020102810102840200020102880200010002010200028402010200028602000200020001 +070184020102010282020002010281000283020100020602850002010200010101860002 +00010200018301020001010181000101018b000100010001000102010201 +020181000101018100018401000100018401000100018401000100018401000100010101 +810002830200020087000100010001020185010201020102860201020102000101018100 +028302000201830102010202028f01020002010200020102010201020002850201020102 +010101010285000200020002820201028302000102020288000102000200020001020103 +028d000200020002000200020002000104018102018101028b0201020102010201000200 +028202000181010201020100820200028402010002018201000284020102010283020102 +010101860200020002000183010201020102810102020281010201028101028102018101 +020402020185000100020002820201028302010201810102820200020502870102000200 +010002830201020084000200010201028101028102008100020202010002028101028402 +010201020102810002010282010002860201000102000183010001008100028202000201 +020101820201028502010201000289020100020002010201020202810102010281000101 +010100010282010201820100010101820001028202010282020102820201028102010101 +850001000100028202000205028301000102810200810002830201020187010002000102 +010283020100028602010201000100810002830200020001000202830100010281020182 +010001850100010002018101028102018201000181010084000200010203020101810201 +010101028401000200028402010201020102820001020302020101028101028102010301 +840201000100830001000182010001820102018301020102860200020102010284020002 +00028c020102010201020001020100028102018201020101018200020181010086000102 +01000102860200020102000201028100028202010288020001000102010001 +820100010101810001150182000102860200020001020001000102820002018301020102 +890200020102010201000187010001020102010287020102010201020185010201020102 +810201830102010286020002000200020202830102010284020002000294020102010201 +02010201020102010201020002010283020001020202850102010200010101820201008e +000100010201000102010201020102840201020001860100020002000181010287020102 +000102000202028300020002880201000102000100018801000200010002010285020100 +020002010281010283020001008300020002830200010201020101010282010002820201 +028202010201028101028102018101020102830102000281020182010200830001000289 +020102000100010201020202010102028200020084000200010282020002820201020202 +810102030282010200810001020185000100010201810102860200010002000282020002 +87020100010001020101010102010104028a000100020100020001000288020002000100 +020002020282000102850201000100010801020286000200020002008300020102850200 +020002018101020202810102890201000100010002010001000902860102010001020082 +000201860100010002000201028100018101020202810102040283000100028202010284 +020102010282020102820201020102840001020102020283010200020202020086010002 +00020102820201028402000200028a020102010002010201020182010201020184020001 +000101018100020102830102010293020002010200020102010001020100020102000101 +018200010083000100010101840001020002810201 +030101000101830001000182010001840100010001860100010001000181010092000100 +020001020100020002000100010001028302010002860200010200020182010001860100 +02010200020202010101028401020100028c020002000201020002010200028402010001 +028602010201020102840200020002890201020102010001020001008c02010201020102 +010201020102020283010200028102010601820201020302890102010201000201020084 +00010002008a000200020001000102000283020102010101010283010200028202010086 +000200020001028202000201028400020102010101040283000201020102870102010201 +000102040281010282020102820200028102018101020102810102890201000200010200 +020083000100028702000102010200028102008200020081000101010102810102820201 +028202010201028100020102820001020102810001830100020084000102000281020102 +010202080181020083000201020602820102010101860002000200010085000100020002 +810201820102010301810201810102860201020001000282020002820201020202810102 +010281010201028101028502000100020086000100010201028202000102018500010002 +0102820201020202810102810200810001010183000100018b0100020001000100010001 +0283020001020402840002010201030101028b0100020001020002010201020102810102 +010281010205028300010200810002880201020001020102018301020102820201020102 +820100028402010201028202000283020001028902010200020100020001860102000201 +000101018b00020001020100010201000183010200020102880100010201000102008400 +02010001 +010181000114018800010001000200010284020002010288020102010002010200010083 +010201028902000201020102010001810102010283010201028202010282020002020281 +00020102830102010283020100020202830002010282020002850201020102018b010201 +020102000200020002810201820100020102870102010201020102810201830102010289 +0200010001000102000285020102010201810102820201028102018101028d0200020001 +020100020102010200820002008100018501020002000282020102820201008200010283 +020102008100028202010282020102040284010002000283020100028302010002050281 +000282020102820201028502000102010282020102810201010103028101008100018201 +020087000201020002010201028100028602010200020102030281010288020002000100 +020102880201020002000102000200810200810002840200020002010282000200810002 +010283000200018301020002090281010285020001000100840002000102820200028502 +000200010201028100020302810102840200010201020102028101028102000200830200 +010083000201028702000200010001020102810102810201890100010002000100020084 +000201000204028101028402000100028c02000200020001000102000102030283010201 +020302820001008800010201000102000181010283020102018101028702010201000200 +028202010283020002018601000200010001810102850200010001028102000100830201 +020191010201000201020102000200010201020001010182000102820201028202010201 +020101830002000287020100010201000201028400020100028902010201000102010001 +81010082000100 +81000101018100010901810001860100010001000103018e020001020001020100020102 +010200010083010001028502010201020185010201020002030284010002010282020102 +810201890102010201020102010283020100028302010201010101028501020102010282 +020002840201020102900200020102000100020002010201020102850201020100028802 +010201020102010201028201020182010002830200020083000200028302010002820201 +028502010200020001008801000100020102010282020102810201930102010201020102 +010002000200020002000102010281010282020102810201840100020102820200020202 +810102030203018302010201830102010201028201020001000402810002020284000100 +020083000200018301000102840201000200010082020002010285000200010002050281 +010202028100020102830002010002000102810102820201020102810102820201028d02 +010201000100010002000200028202000201028201000281020183010001008200020001 +008101008300010001020183000201028302010201810102820201028702010002000201 +020102870102010201020102810201810102810201840102000100840001000100810002 +810201010184000200010282020001010103028300020102820200010101870200020002 +000201810100830001000101018100020202820100020102010183000100028402010201 +028702010001000201028402000200020102810102810201020182020002850201000100 +02010281010283020102018301020102010201010102810002020283000200028b020002 +000102010002000102840200020102820201028102018601020102000201870100010201 +000102010201018e000100010200020100020002000100 +870001000100010001820100018401000100010401820001009300010001000102010002 +010002000200010201029302000201020001020102010201020002010200020202010184 +020102000201028300020102010201018202000286020102000200020202850102000200 +028402010201028202010282020102890200020002010201020085000102010201010182 +0200028a0201020102000201020102020281000281020181010281020181010282020002 +860201020102000284020102010281020101010100830200010202028100020202010182 +020102820201028702010200010201020102810002010281010201028101028a02000200 +020002000200028902000201020102010002820200020102030101028101028602010201 +020002880201000201000201028602000200020002820201028202010201020301020281 +010284020002000204028200010201028201020083000100018401000200028502000200 +01028202000182010001020102028100020c028300010001010182020102010284010002 +010282020102830201000201020100840200010002010282000201030101028200020083 +000200020102840001020102020202000501820200028202000284020002000282020002 +040281010287020100010002010285020102000201010184020102000181010202028101 +020302020182020102050282010001020101020101020283000200020102810002840200 +0100010201010281010202028100028a0201020100020102010201830102010284020102 +000285020102000201830102010288020102000201000201840100010001010184000201 +000184010200020182010002820201028702000102010201000100810100 +020181000101018300010001020181000184010001000104018600010002000200010081 +010284020102010283020102018e01000102010002010201020002010202028100018301 +000102850200020100028402010200018901020002010201020102880201020102010201 +0284020002000284020102010282020002840201020102810201850100020002008a0001 +020002000201020102010281010283020102018801020102010201020081000201028301 +020102970201020102010201000200010002000102010200010200028102010201820201 +020302820002000100820201008200010283020102018101020202830102010201028400 +020100020202830002010202020101810201830102010281020082000200010082020002 +070283010002008100018101028302000102830201000281020002000102010001010502 +020102028101028202010201020100810201810100820002018201020183010201020102 +820102018401000100020102820001000100050281010201020201810200870002000200 +010001850100020100028602010002010201810102060286010002010002018301000200 +820001020402010102028201000184010001000101010200850201000200010301030281 +0002840200020001850102010002008a0002000200020002000102820200028402010201 +0201028a0100010001000102010001020105028101028502000200010203029101020100 +010002000102010200010001000102010102830102010284020102010284020002010286 +02010201000201820100020102820100028d020102010201000100020102000288020002 +0102000200018c01020102010200010200020001810100820001000000 +820100018201000105018100010401880001000100010001008200020082000201860102 +00010200028502010201020186010200020102018a010201020102010200020182010201 +8b0100020102000201000201028702000102010201020202850102010200028602010201 +020102840201020002850201020100028a02010201000102010201020202840002000201 +840100020002840200010200830002000202028300020102010281000286020102010200 +028302000200820001028902010201020001000102810201010101028100028502010201 +000181010282020002880201020001000201020102850002000100010101020283010201 +008100028202010284020002010287020001020102000284020100010202028101028202 +010202028201020104018302000200810002810201010182020102810201020102028300 +010201810102060283000201028202010202020101010081010201028101028202010282 +020001030181020101010302810102040281010202028800010002000102010285020100 +020001810100870002000200020002020285000100020002820201028502010201000201 +028200010081000283020100020202810102810200830001000186010201020001028902 +010002010200020002820201020102810102810201860100010001000103010102810102 +850201000201020302820100020202020182020102820201028202010202028300020002 +010284000102010282020002860201020102010284020100020185010201020102840200 +020002840201020102840201020102840201020102830201000101018200020184010002 +0002820200028802010201000102000201028e0001020100010201000201020100010101 +0100860201000200010082000102 +020181000101018100018401000100018701000100010001000100020185000201000200 +0100810102020286010002010200028402000201008100028f0201020102010201020102 +010201020181010204028701000102010200018501020002010282020002830200010282 +02010284020102010282020102840201020102820200028f020102010201000100010002 +000201020102870102010201020102810201810102010284010201000201028300020102 +010285010201020002820200028102000100820200028602000100020002030282010201 +810102020283000102008200010088000201000201020102010281010201028800010002 +000200010087000200020002000202020101820002010101030285010002000102820200 +020102810002010283010001008100020102010002028201020181010282020002810201 +820100018101028202010202020501010284010200020087000200010002010201028101 +028102010401820201028202000282020102810200830001000206028100028302000100 +8f0001000200010002000200010002010282020102020201008502000100010004008202 +010083000200020602810102020205018600010002000100010001028201020181010283 +020100028202000283020002008200010202020100830200020002008401020001028202 +000298020102010002000100010001000200020001000102010201020102810102010285 +010001000100010002020101820200018101028402010201028602000200020102030201 +018102018b01000100020001020100010281020081000283020100010101870002010201 +000201830100020182010001980100020100010201000201000100010001020100010002 +0002 +860100010001000108018100010201810001010104008702000201000200028402000201 +028a02010201020100020102019101020102010200020102000201020102010284020002 +010288020102000200020102840201020102810201810102840201020102840201020002 +840201020102820200028202000283020002018f01020102010001000102000201020002 +880201020100010201028402000201028f02010201020102010200020002010201830102 +010089000200010001000200020202810002820200010101020201018300020002870201 +020100020002820201028202010282020002020282000102820201028402000201020302 +830102010202028101020202820001020102810102850201000100020202810002010203 +008201000282020100820001008300010201030101028101020202810102080281010282 +020102020282010001840100010201810102820201020102010182020102010282010201 +010182020102010281010281020185010201020002810201810100850002000200010101 +810001820100018801000200010002000201028100020302810102820201028202010201 +028401020002008100028202000203028101008100010501040201008401000201028202 +010201028201020182010001810100860002000100010081000205028101020302810002 +050284000100020104018102010201810201840102010201810102060282000200830002 +010288020001000200020102820201020202810102820200028202010206028100028402 +010001028402010001028502000201020081000184010200020182010002840201000102 +0102910100010200020102010200010001020100010101 +820100010b01840001000100820001008b00010001020100020100020187010201000201 +020186010200020102000100870100010200020002010282000201840102010201810102 +010282010201870100020102010201010184020102000286020102010201028402000200 +028202010284020002000282020102820201028402000201028202010201028b01000102 +000201020102010202028501020102010284020002000283020100028102018101028202 +010202028101028202010085000201000200820002018101008300020102020281010282 +020102820200028402000200028302010200830002010201028101020102030102020101 +010082010002820201020402020182020102820201020102830102000205028101028202 +010281020185010001000200810002020201010102810102810201030181020101010102 +830102010201028101020202830100020084000201020082000102810201870102010201 +020102830201020101010102810102030281000201028100020202010084020001020101 +018402000200018501020001000181010284020102010201028501020001000201028400 +01000100870002000200020002060286000100020001008a000100010002000200010082 +000102010281010282020102820201020102820002010101810001020182020100810002 +01028100028202000207028500020002000101018d000200010001000100010002000282 +020102820201028102018501020001020102018100020102840001020102020285000200 +010001020101020101810201010183000100010101870001020001000201810102830201 +020085000102010002010284000201000201028100018101008500020002000181010083 +0001000185010200010200810001 +810001010183000100018801000100010001000101018100010201010082010002820201 +028402010201028902000200010200020002860201020002010287020002010002010209 +028201000187010201020102010282020102810201870102010200020002840201020102 +840201020102840201020102820201028402010201020102940002000200020002000102 +010200020002000200020202860102010201020185010200020002830200010284020102 +010284020002010291020002000200010002000201020100020102850201000200028402 +000200028102008500020002010285020102010002830201000202020101840201020102 +040283010201028202010281020101010102850100020102018801020002000200010201 +028100028202010089000200020100020001008200020181010204028301020001810102 +81020181010282020102820201020102810102010201008301000100820001028c020002 +010001020100010201028202010201028101028402010200018301020102050283010001 +000200860100010001000183010002010301830001000181010281020182010201820102 +018201020181010284020102010201028100028302000102850201020002010101820200 +0102018b000200020001000100010201010182020102010281010283020001008a000200 +020002010002010282020102820200020202810102030202018502010001020101018500 +010201020102018202010201028201020190010201000201000100010001020102010201 +028101020a0283000200028d020002010201020002010001000203020101810201930102 +010002010200010201000102010200020002820201020302820100020102810002850201 +00020001 +010181000108018100010101810001010102000101850002010002018301020102840201 +0201028402010201029b0200020002000200010200020102000201020102010201020002 +010287020001020002010285020001020102020281010201028101028202000282020102 +840200020002840201020102820201028202000282020002850201020002008400010201 +028c02010201020002010200020002880201020102010001028402010201028802010201 +020102010282020102810201830100010201028301000200810002010281000283020002 +018201000201028301000200850002000200018501000102010282020102010201018102 +010301850002000200028102018101020202030181020181010282020102010203010302 +810001840102000201020182020002820201028202010281020181010205028101028502 +010002010207028101008700010201020002008100028102010401820201020102820102 +018101020102810102820201028202000282020102070201018102010101810002820201 +02850201020001028202010282020102040282010002020283010002008d000200010001 +00020102010201028b020002010200010001020100810002010282010200880001020001 +000200020402810102820200018101028102010501830201000282020102820201020302 +010185000200020002900200020001020102000100010001020102010285010200020102 +060282010201010186000102010201028502010201020104018a02010200020102000200 +028202000203028200010201028501020001000183010200028d02010001020002010200 +02010201860100010001000101018100018301000200820002000000 +810001010181000102018100018201000182010001010181000184010001000101018202 +010281020184010200010201028701020001020002018601020102010200950002010001 +020102000201020002010201020002010287020102000102010281020189010200020102 +010201028602010201020102840201020102820201028202000282020102820200028302 +0102018d0102010001020102010201020102830200020101018402010201028302010201 +0101850002000200020102810102010282000201010101028c0102000100010201020001 +000281020187010200010002010282020102890200020100020002000282020102010281 +010282020102010282010002010285000200010002020202010102020104020101880201 +020001000100020102810102010281010283020100018601000100020001840102010201 +830100010201028400010002018101020102020102020101020201000102020083010001 +008300020102820201020102810102810201020103028201020183010201020202810102 +010284000100020082000201860100010002000283020102010601040201018202010281 +020082000200830002000286020102010200028202010283020102010101010281000181 +010089000200020001000201008500010002000201028201020102010100840100020002 +8302000102030288010002000200020002030202018c0201020001000200020001020186 +010201020102018101028202010282020002010281000289020100010201020100010701 +89020002000200010201028e020002000201020001020002000102820200028202010202 +02820100010101870002010001000102840201020100830002000202028c000201020002 +00020102000200 +010181000103018100010301810001820100010101010002010102820102018301020002 +820201028402010201028402000201020202870002000201020002830200010282020102 +810201880102000200020100020502880102010200010201020102830102000282020102 +860200020002000201028301000102820200028202010282020102820201028102008200 +010088000201020102010201830102000201028300010002020201000202870102010201 +0200018201000202028c0100020002000200010002000205028101028402010201028102 +018401000200020102830002000282020102010201010102810102020201018602000200 +010001820100028502010201020104010102820102010101820201028502010002000201 +028101020102840100010001020181000282020102050281000201028700010001000200 +020102810102840200020002810200850002000102018301000102010288000102010201 +0001028202000282020002820201028a0201000200010201020102030203018102008100 +028102010201860201000102010282020102820201028202010282020102820201028202 +010282020102840201020102050282010201860102000100020185010200020001020183 +000200010101010283000201020402810001810102850201000200028a02000100010002 +000100020702890100020002000102010282020102850201000200028202010201028301 +020102820200018101020102810102010202018202010209028100020402830100020181 +010282020001820100010201020281010204028600020102000201050181000182010200 +8100018101008400010002018401000200018601020002000100 +810001090186000100010001008200010083000100010101820201028202010202020101 +8502010200010201028d0102000102010201020102010002010281000203028600020102 +0102018f0102010200020102000100020102010284020102010282020102840201020102 +840201020102010283010201028202000282020102820201028402000201029402010001 +020102010201020102010001000200020101018102010101020283010201028602010201 +020102840201020102820201028302010201900100020102000200020001020001020102 +01028c010001000201000200020102018101028202010205020101010282000200810002 +010281010202028201000101018102018101028202010286020002000100028702010201 +020002008100010101010081010001008101020402810102820201028202010201020201 +090287000102000200020081000102018102018201020101018202010281020101010102 +83010201028102000200020281010202028101028402000100018b010001000100020001 +020102850201000201028102010101020282010201010184000100010001000102810102 +010281010281020101018202010281020182010200010083020002008400020001008600 +020001000102020281010281020101018300020001010181000103018102010101820001 +0201028a0102010200020002010002850200020001028302000201820102010201010281 +010283020001020302010186020100010001028402000100018101020202030187020100 +010001000185010200020001820100020102830002000201028100020202810002010281 +00028102008a00010200020002010200018c010001020100010201000102018801020001 +0201000201 +840100010001840100010001820100010201810001010101008201000183010201028302 +000200860001020102010284020102010286020102010201028d02010200020002010201 +020102018301020102010282010200810001010181020183010201020102820001020102 +010186020102010201020102850102000200028202010282020102820201028202000282 +02010201028b000200020002000200020002020283010201028102018101028402010201 +020102820102018101028202010202028300020102820201028e02000200020002000200 +020102000285020102000102030283010201028202010085000100020002030283010201 +020102030185020102000102820200020202020101028201020181010203028301000200 +810002850201000100020402830002000103010402810002010201008202000203028500 +0102010002820200028402010001028e0200020002000201000100010201020202870102 +010002000102010282000201810102810201840102000102820201020402830100010082 +000102820200028102018301020002820200028202010282020102040281000282020102 +82020102820201028102010601040201018a020100010201000200020102018600020001 +020102820200028302000102830200020087000200020001020101018100010101810001 +010183000100028802010002000102010284020002010202020300830200020081000286 +020102010200028702010201020102018201020101018102018101028102018201000182 +010002010285000100020102010281000289020102000201020001020402850102010201 +028502000201000182010201010183020002008200010081000283020001028302000102 +8502000100010285020002010200 +0a0182000100810001010184000100010001008702000200010201028202000288020002 +000102000201860102010200020192010201020002010201020002000201020102018301 +000201010181000101010402810001830102010288020002010201020102840201020102 +840201020002010283000201028102018301020102820200020102860102010200020101 +018202010281020101018402010201028302010201010102028701000102010201028402 +000201028402010201028102018501020102010281020085000100020002830201000183 +010201028602010200020102820200020102830102000201028101020102810102010281 +01020102840001000102820201020502050001028a010201000200010002010202020101 +830201020181010083000200028202010282020102820201020102810102820201020102 +820102018301020102010281010201028100018101028102018301000201010102020301 +010282010201010102028301020102830200020081000282020002010201000302810102 +81020101018a000100010002010002000283020102000100010101028501020102010087 +000100010002000207020101810201010181020101018100028402010201008600020102 +010002840201020102060202018102010201820002018201000103018200010282020102 +0302810102020281010202028a0001000200010001000102020201018202000282020002 +02028c0002010001000100010001000183010201028102018d0102010201020100020002 +0102008100010101820002018701000100010200028802010002000201000203028c0002 +01020100010002010200028302010001010184000100020182010001840102000102 +820100018201000101018100010201810001810100810001810100810001010184000201 +02018101028a020102000102010201020182010201810102010285010201020102040281 +000283020102018901020002010201020102010284000102000201028100028d02010200 +010200020002000200020102850002000200020102830102010282020102810201830102 +010201028401020100020102840002010201010101028300020102810201010103020101 +010283010201028302010201010182000102900201020002000200020001000102000102 +810201010101028101028102010201830200020001008702010002010201020102840102 +000102010285010200010200860002000100010201020201030282010201010184020102 +000286020002000100020502850100020100020102810102020286010001020001020202 +810002840201020100810002020281010201028100028302000200010001028200010203 +028400010001028302000102010282010201810102820201028202010282020102040284 +000100010002008202000282020102820201028202010282020102820201028502000102 +010282020102820201028302010002050201010102810102840201020001890100010001 +000200010282020102810201830102010282020102020202018502000100010001008402 +000102010201810001830102010283020100018101020102010184020102000201020101 +810201820102018401020102008100020102010001028300020102810201010181000288 +020100020001000100010082010001860100010001000103018100010101830200020184 +010001000282020001970102000200010201000201000100010002000100010201008100 +0101018100018601020002000201850100020100018301020001 +060181000101018100010101810001810100860001000100020186010201020001028402 +000201028402010200028b02010200010201020102000201020100840200020102040284 +010200010283020100028402010200018401020102018301020102010289010201020002 +010201028202010284020102010201028301020102010283010201020102810102860201 +020100020181010284020102010286020102010201020102010182020102860201020002 +010285020102010002010281010282020102810201010104028100018101020202820102 +010101040201010102870002000100020002820201020302810102810200810002820201 +028602010201020102080283010201028202000282020102810201020107028401020002 +008200010282020002830201000204020301060201010102810102050283000100020102 +010181020102018102018101028202010281020181010203028401020100028502000102 +010202028100020102880001000201000200028802000102010002000285020100020002 +820201028202010283020102008400020001020102810102840200010002010283010201 +028302010201010101028100028502010200010284020102000183010200028202010201 +028601000100010001040184000200020105018202010205028201000201020101020285 +010200020102010284010201000181010201028101020102810102010284010001020182 +010002830201020194010200020001000100010201000100010200010001010181000101 +018202000201028600020102010001010185000100010001860102000200020186010201 +02000201820100010201810001010181000101018300010002 +010181000184010001000182010001820100010101010081010081000101018102018301 +020002860200010201020185010201020102990200020102010200010201020102000201 +020102000200020102010283010201028102018901000102010201020002020281000282 +020100810002840201020102820201028402010201020102830102010282020102010283 +010201020102820102008500020102010283020102010101030283010001020202810102 +040201018300020102010289010201000100020002008900020001000102000100840001 +020002020284010002010287020102000100010202020101010281010282020102010281 +010202020200870200010001000102020283010201028302010201030101028101028202 +010081000102010102810002020281010201028100020402820100028202000282020102 +040287000201000102010201028500020002000281020081000282020100820001028502 +000200010204028201000183010201020202840102000102060282010201810102840201 +000201830102010282020102820201028102018601000100020001020181020085000200 +0100010101060281010283020100028e0201020001000201020001000200028202010282 +020102850201020001020302030186020001000201028102010601820201028202010282 +020102810201040101028101028202010282020102020283000200020202840001000102 +830201020102018502010201000188010001020102010201010186020100020001028202 +000102018100028202010081000201028100020202830100020103018100018201000103 +0181000101018100010101820001008f00010001020100010201000100020102 +0a0181000101018400010001008100018101028702010200010200028b02010002010200 +010200020185010200020102020291000201020002010201020102010201020100840002 +010200830001000182010001820100010101860002010201000282020102860201020102 +000203028301020002010283000201020102840102010002820201028202010282020102 +820200018101020102830002010286020102010201028202000101018300020102020282 +000200020085010002010201010101028101028302010001810102030283010200028502 +010201020101018502000200010203028301020102830200010283020100020102010188 +020102010201020102020283010200020102870002000200020102010281010281020103 +010402810102040284010001000282020102010281010282020102810201020101020101 +010281010281020181010283020001020302820102010201820201020102030101028101 +028202000285020100010002820201020202810002030281010093000200010002000201 +000102010001000100010282020102820201020302810102010281010282020002060281 +010282020102810201860102010200020101010102840100020102850200010201020402 +870001020100010002820201020302810102850200020100018101028202010203028101 +028202010282020102820201028302010201820102018301020102830201020181010202 +02820102018401020100020102810002820201028d020002010002000200020001020183 +01020001850100010002018201000101018b020002010200020001020001010101000102 +8100018101008b0002010001000102010002010101820002018801000102010001000183 +01020001 +810100810001840100010001830100010083000100018101000100820100018601020102 +01000283020002018a010201020001020102010202028501020102010202028901020102 +000200020102010282000201010181020181010081000101018102018201000181010282 +020002010281000284020102000202028101028502000200010284020102010201028101 +028502000201000288020100020002000102010286000102010200028202000201028100 +020402810102020283000200028402000102008800020002000200020084000100010201 +020101010281000284020100010282020002810200010083010002000100020281000202 +028101028202010201020101040085010002000102020281010202028201020183010201 +028402000100018101008500020001000282020002830201020102018100020402820100 +028502000100010282020002020283000100028202010281020084000200020082000200 +810002820201008900010201000102010002030287010201000102010282020102010281 +010282020102010281000202028201020181010282020002830201020101018202010282 +020002820201028202000284020100020004008101020202010101028101020502810100 +870002000100020002850201020001020302810102030201018102010101820001008300 +010001820102018301020102850200010201020402810002030283000200028402010201 +020102810002010203008401000200028502010001020102010302010188000102000100 +01000105018700020002010001028d020102000201000200020102000202028300020001 +01018302010001830100010281020103018c020001020001000102010002018301000201 +02018300010200 +820100010601810001010181000181010081000101018300020002860200010201020183 +010201028202000202029101020001020002000200020001020002010281020186010201 +020102010101020281000101018302000201890102000102000102010202028b01020002 +010201020002000201028301020102010201018202010282020002850201020100028202 +010201028300020102020287000201020102000282020102860200020102000284020002 +000201028100020102810102030202010402820001028202010284020102010282020102 +820201028302010201830102010281020101018900010201020100010002820200020502 +830102010202020101060282000102010283010002010101810201830102010203020501 +860002010200010201028201020181010201028101028102018201020181010201020701 +840201020102820201028102010401020281010201028301020102010281010282020002 +820201028202010282020102060201008501020100020086000200020001028202000281 +020182010001820102010401820201028302010002020281010202028101028102018301 +020102830200010201028200020102010102020183000102010101020281010201028600 +010001020002830200020081000282020102810200810002860201020102010201028201 +020105018202000205020201010281010282020102830201020102018402010201028302 +000201010191020102010201000200020001020102000102840200010001840102000201 +83010200010101010003018c020102000102000201020002008100028202000288020002 +00020102000289020100020102000100018301020002 +810001820100018401000100010101810001010181000181010081000101010102890102 +010002000200010285020102010201860102010201020194010201020102000201020002 +010201020002010002020286010200010200010101820200018a01000102010200010201 +020102840002000102840201020102820201028202010282020002820200028202000282 +020102010282000200810002820200028502000200020183010200028602000200020002 +830200020083000100020102870100010201020100820002008200020001008302000100 +810002890201000100020002010083000200028502000100010087000200010002000201 +028500020002010286020002000200028702000200010002008700010002000200020102 +840102010201830100020081000181010081000188010002000100010002050201018700 +020001000100028102008500020100020001000102860102000100010202028100028302 +000102010201008302000200010001028700010001000200028602000200020102830200 +0200810002810200830002000202028100020102820102008e0001000201020100020001 +000201000100010282000200010001028700020002000200020302810002020281000282 +020002020202000101860201000100020187010001000201020181010203028101028102 +018201000186010201020102018101028802000200010001000282020102820200028602 +000201000200010081020082000100810002830200010201028701000100010001009000 +010001020100010200020001020100028a02000200020002000200020102880001000102 +000200020102810001870100020002010200850002010201008100020202820100028302 +000201840102010001840100010001010186000102010001028102008200010282020001 +82010200 +010101000601810001820100018101000100010181000183010200018501020102010281 +020085000200020102020283000201020102880100020002010201020102810102010284 +010200020181010282020100810001010182020001010181000186010001000201028402 +010200018101020102010184020002010284020002010201028101028202010282020102 +010282010200810002810200830002000203028500020002000287020102010001000201 +028900020001020102000102030282010201020189020002010201020100028402010201 +028202000101018202010281020183010201020202010101028101028202010282020002 +040281000282020102040281010282020002030281010204028601000100020102850200 +010200020402810002030201010402010181020181010201020301050283010201020402 +810102840201020102030201018202010201028201020181010283020102010201820201 +028102010201010284010002010282020102010286010200010201028302010002020282 +010002840200020102010282010201810102830200010202020100870200010201020102 +010282010201040101028300020102030281000201028400020001008100028202000201 +028301020100050081020084000100010202028101020702030184000102010201028101 +028302000102810201810102810201830100020183010200010101820201028a02010002 +010201020102010401810201010181000102018200010281020182010002840200020002 +010281000202020100030283000201028402010201008300020002820200020302810002 +8602010001020100820001028202000201028100020002 +830001000101018100018201000182010001010102008201000101018200010282020002 +820200028402010201020202880102000102010201020102810102920201020102000201 +020002010201020102010201020101010003018100010101810001830100020183010200 +028202010288020102000200020002820201028202000282020102810200830002000201 +028100028202010281020186010201020102018a01020002000200020001008700020102 +010002008800010002000100010203028100028102000200830200010004008102000500 +810200860001000200020001008102008900020002000200010002040282000200860002 +000100020002008602000200010002820200020202820002000100810100020083020002 +0085000200020002010281010282020002850200010001000c0083010001008c00020002 +000102000200010002020282000200820002000100810100860002000200010002008102 +008200020001008102008200020003000502010081010001008102008200010001008301 +000100840001000100060081010002008102000100850100020001020502830002000281 +020081000282020002010286000100010002000300810102830201000203028200020081 +00020c028101028202000284020102010201028801000100010201020105010102010105 +028501000200010283020002010101010201018300020102860201000201000201028301 +0201028e0200020102010002000201000201028b02010002010001000201020182010001 +860100020001020101018100028802000201020002000201028100020102010002028800 +0201020001020100 +850001000100010401820001008300010001820100018201000101018902010201000201 +020102890200020100020002010295020102000201020102010002010201020102000201 +020102860102000201000182010201010184000201000187010201020102000284020102 +000202028101028202010282020002840200020002010281010282020102820201020102 +810102010281000286020100020001028202000185010201020102860201020102010285 +020002000102020281000203028801020102010201020003008202010002008201020101 +018100028202010281020101010102010182020102820201028202000201028101028402 +000200020702010103028101028202000201028201000281020182010002040283010002 +008600020001020002010284000200020181010281020101018102018301020102830201 +020181010282020102070281010281020181010201020101010282010201820102018101 +028102018101020202010182020102840201020001830102010283020001020102810002 +050201018202010282020002830201020185010002000201850102000102018101028202 +010284020102000201028101020102010183000200020102010182020102040286010201 +000201028202010281020083000200028202000201028701020001000100028302000100 +8200020083000100028202000207028700020001020002008400020002008a0001000200 +020001000102030281010282020102010283010002008300020100860002000200010289 +020100010002000201028502010201020188010201020100010002010201008302010200 +010081010281020081000282020002820200028602000102010001820102018301000201 +810100850001020100028302010002840201000200 +010181000102018500010001000101018200010001008201000186010001020100020202 +810102840201020102880201020102010200028602010201020002050281010203020101 +010282010201870102000102000200810001860102000102000201028701020102000200 +020102820102018201000282020102820201028202010282020002010281000282020102 +010281010282020102820201020102810102020283000100020202820102008100020202 +860001000200020085000200010002820200028202000101010100840102010201830102 +010202028301000200820002000100810200040081020004008702000100020001008800 +020001000100020082000100010081020084000100010203028400020001008600020002 +000200840002000100810002060284000100020084000200020086000100020002008400 +020001008600020002000100810002010281000201028301000200860001000100010084 +0002000200860002000200020086000100010002000400820100028c0200020001020002 +000100020086000200010002000200830200010002008702000200010002008600020002 +00010001008402000201020102840100020002820200028c020100020001000200020001 +000400820100020402810102810200810001820102008300020002820201028502000200 +010202020100010285010001000100810001810102010282010201820102018101028202 +00020202820100020102830102010202028301020102020281010201028400020102018a +010201020102000200020184010002000288020002010201020002860201020102010201 +020100010281000182010001960100020102000102010001000102000201020102000201 +880100020102000100020002 +820100018201000102018100010101810001010181000101018400010001008300010002 +810201880102010201000201028602010200020002820200020102840002010002840200 +020002010282000102840201020002010283000100010301830001000183010001020802 +8b0102000201000200020100028402010201020102820102018101020102810102820201 +020102810102820200020102810002840201020102830201020181010204028301020002 +020281010201028601020001020102820201028902000102010200020002010283010201 +028702000201000200028202010286020002000102018201020181010201028101020302 +8b0100020102000201020100010601060281010201020201030282010200010087010001 +000201020106018102018101028202010281020181010282020102820201028102018301 +020102040281010282020102030201018500010002000284020102010081000202028101 +028202000282020102820201028602000100020102060281010288020100020002000102 +870201000100020002820201028602010002010001010182020102040202018202000281 +020185010001020002870200020002000102020281000189010200010001000200020402 +0201920002010200010001000100010001000102010281020102018102018e0102010200 +0100020002000200020081000202028500010002000283020100028b0200020002000200 +020001008100020102840002000200820001028402000200028402010001020102810002 +01028300020002860200020100010281020001000501030201018b000201020002000102 +01000291020002000201020002010200010201020002 +020181000184010001000182010001010101008101008100010101810001820100018801 +02010200010200028302010201880102010201020102019a010201020002010200020102 +010201020002010200020002010001040181000102018200010282020102020281010284 +020002010201028101028202010204028101028202000201028400010201028202000201 +028101028202010201028101020102860102010201000201028d00010201020100020102 +010201028202010204020201010202010202810102840201020102010287000201000100 +020005008101000100810200820002000100850100020002000200810102830200020082 +000200050001018200010282020002820200020102850001020002000100840201020100 +810001810102010281000201028301020100820002018101008400020001028102008300 +0100018c0100010001000102000100010201028c00020002000102000200020002830200 +010081000201028200020081000284020100020001008101008300020002040287000201 +000200010086000201020001008200010287020002000100020002008102008700020001 +000200020102010082020002010285000200020002940200010001000200020001000200 +020100020001008400010200028602010002000100030081010286020002000100028402 +010001000100820102000500920201000100010201020100010201020001000204028101 +020102810001810102010283010201020202890100020102010002010201028200020181 +010201028201020081000284020100010201028b00010002000201020102010284020002 +010083000200028902000201020002000201820100018401000100010101810001840102 +0001008300010002810201 +820100010101010002018100018201000101010100010181000101018100018a01000200 +020002000201028402010200028702000201020002018901020002010201020102030281 +0002820200020202820100018201000101018100018201000102018100020b0281010282 +020102870201020100020002820201020102810102820201028202010201028101028202 +010201028101028202010201028101020102010101028a01020102010201020100028202 +010281020101018402010201028302000200810002020281000201020100820201028202 +010201028300020002820201020302810102820201028102010101820200028102010201 +820201020102850102000200010401010281010282020102080282000102010287010001 +000200020084000200010282020102840200010201810102820200028102010201020281 +010282020102030281010282020002010283010201028202010201028201000282020102 +040201010102820002010301830002010282020002820200028402010201020102840100 +020100850001000201028502000200010286020100020102018101000200010101028200 +020181010281020089000100010001000100028102018d01000100010001000102010001 +020102860100010001000201028100020202860001000200020084000100010081000185 +010001000200830002010282020102820200028502000200020001008602000100020002 +010281010202028201000181010287020102000102010282020002010281000282020102 +020284010001000284020002000292020100010201020001020100020002010201028802 +000201000100010281020081000181010081000101018a00020102010002010200020102 +830102000201028200010284020100020182010002 +860100010001000187010001000100010002000101810001820100010101810001830102 +010284020001020187010201020102010287020102000200020181010204028401000201 +020202840100020001850102010002018801020001020102000204028101020202810002 +850201020002010101020201010102810102010281000285020002000102010281010282 +020102010281010201028101028802010200020002000286020102010200028202010288 +020001000201020002830201020101010202830001020182010002840201020102840201 +020102810201890102000200010002000284020102010201028201020101018202010203 +028101028102018101020102010084020001000101010102810102060282010201020181 +000182010001020182020102010282010001060101020201820201028202010201028101 +028202010282020002010281000203028101020502030181020101018302010201820102 +01010101028401020001008500010201000282020102050282000102820201028102010d +018400010001028202000282020102820201020302030181020103018302010200010084 +010200020186010002000201008500020002010206028201020105018300020001830100 +010281020101018100028102008500010002000287020100010001000283020001028202 +010202028100028202010206028101020102820102018101028a02010201000201020100 +018a01020102000102010200010101010002010100810201820100010101810001860100 +010001020084000201020082000102880200020102000200028c02000102010002000201 +0200028a0200010002010200020102 +810001820100018401000100010101810001010181000102018100010101810001870102 +00010200010202028101028402000201028e02010200020102010201020002010201028c +010201020102000201020002018301020001010181020184010201020181010209028301 +020002010286010002010200028302010002820201020102810102020283010201028202 +000201028101028202010285020001000102880200020002010200028302010201870102 +010201020102030283010201028102018401020002008100020102840001020102810201 +810102810201840100020002830201020181010284020102010203028300020002020287 +010200020002000201028200010281020101018700020001000100028502000102010201 +028601000200020001010184000100010081000203028101028102008300010002820201 +020102810002010287000200020002010281020102010302020103028101020202810102 +820201028102010101820201028202010201028201020188010002010002000200810002 +060206010102810102820201028202010282020102820201028502010001000101018102 +0103010b028201020101018100018a010002000200010200010282020102850200020001 +028202000182010201010183000200028102018301020102810201810100010081010282 +020102810200830002000282020002020283010001028502010002000282020102820200 +020702830002010288020002000200020002820201009100010201000200020100020002 +01020002018c010200010002010001020100018901020002000200020102810200850001 +020100010101010081020182010001010183000100018d01020001020001000201020001 +0282020001 +820100010101830001000182010001010181000185010001000100010002018202010286 +020002010002018101028202010201028401020002019b01020102000200020102010201 +02000201020002010201020102000186010001020002010201820201020a028101020102 +810102010289000201020102010201020102810102860201020002000282020102010281 +010287020001000102010201028201020181010286020102010201028102010101820001 +028402000201008100020102810102050281010201028101028202010202020101820201 +028802000100010001000181010281020181010201028101028102010101010283010201 +028102018101020102810100870001000200010201010181020101010802880100020001 +000102010101020281000201028101028502000102010204028201020181010282020102 +830200010282020102010281000282020102020283010201020102010102020101010282 +010201810102810201810102810201820100028402000100010101820201020102850002 +000200020102810102810201820102010301820201028102010101860002000200010282 +020102820201028202010205028101028102018101020202830002000188010002000102 +010001830100010081000102010102810002010282010201840100020002840201020002 +820201028202010285020100020102810201810102820201020102810002820201020102 +830001000184010002000281020182010201010181000201028501000102010201020301 +8d0200010201020001020102000201890102010002010002010201028401000201008100 +029102010001020102010002010001020102000101018200020101018100010101880001 +00020102000102810200860002010200010283020001020002 +030101000201810001820100010101010005010100010182020002890200010201020102 +000201028300020002010281010202029101020102010200020002000201020102010284 +020100010088000201020001020102020281000209028100020602840100010201850102 +010201020102810102010284010201000103018100018101020102810002010281010202 +028500010201020083000200020302010101028201020184010201020185010201020102 +820200028202000282020102810200830001020185010002010201830102010205028100 +020302840002000102010281010201028101020102810002030289010201020102010201 +020202810102040202018102018501000100020083000201028202010202020301810201 +810102820201028102018301020102010201018202010207028101020202810102010201 +018102010101010201018202010283020102018101028102018301000100840001000200 +810002820200020402840102010201030183020102010101830201020101018202010284 +020100020104018102018101028402010201028202010204020101810001870100020102 +000102820201020302850002000200028202010202028101028102010101870201020001 +020102820200020302810002020283000201028202010282020002020282000201810102 +0202820100028202000282020102820200028b0201000200010001000200018201020087 +000201020001000184010002000185010001020001840100010002820200010101840001 +020100820002018201000188010002000102010002010201008102018201000101018302 +010001890100010002010200010282020002820201000000 +030181000182010001860100010001000102010300020182020002850201000201028402 +010200029002000102010200020102000201000201028702000102010201028202010201 +028400020102008300020100810001020182020102010281010201028101020102810102 +020285010200020102820200020202810102840201020102820201020102810002010281 +010282020102010281010201028101028202010201028101020102830102010202020201 +010288010201020100020102840201020102860201020102010281020083000201028502 +0100020102820201028b0200020002000200010001020302010181020181010289020102 +010002010201020102820102008800020001000102010203028101020102810102820201 +020102010186000100010001008100020102810002010281010281020103018302010201 +810102030201010602020102028101028102018101028302010201810102020202010102 +810102820201028102018201020183010200028102010301820200020302810102010205 +018102010e01820002018201000181010281020102018102018101028402010201020202 +820102018101028402000100018201000185010200010001840102000102010285010201 +020102830201000209028100020302810102820201028402010200028e02010201020002 +010001000102000187010201020102010282020102010283010001020102880102000200 +010201028102008200010283020002010101820002018a01020100020100010201028502 +010201020087000201020002000101010102810001020183020002018101008100020102 +8100010101830001000182010001020182020001860102000102010082000201 +040181000101010100020184000100020182010201010181000182010201850102000102 +018601020102010201830102010286020102010201020102810002010281010203028500 +0201020002010203018100018901020002010201020102820201020b0281010283020100 +028402010201028102018501020102010201028101020102810102820201020102810102 +010281010282020102010282000201870102010201020102820200028102018101028202 +010284020102010281020103010802860102010201000201028300020002810201810102 +050283010201028302010201010101020201030281010201028101020102810102020201 +010602810102050207010102840102000201810102010202010102010182020102810201 +830102010202028201020183010201020302840102010201810102010281010201020101 +010202018202010201020101820201028802010201000100010085000100020102010281 +000204020b01810201020181020186010001000100010201810001020101028101028102 +018101020102820102018401020001020102010182020002840200020102010281010282 +020102070201018102010101030202018702010200020001028202000282020102840200 +020002030281010205028500010002000282020102840200020002010285000102010001 +030183000100010201810001010101008902010200020001020002840200020102870201 +020102000200810001850100010002018701000201000200018901020002010201000201 +8401000100018201000101018400010001028302000102810200840001020100 +030101008401000100010101810001830100010282020102810201010182020102820201 +028202000284020102000282020002020289010201020002010200020102820102018101 +028e02010201020102010201020001000182010002020283000201020302830102000203 +028101028202010282020001810102850201020100020202010101028101020202810102 +820201020102810102010281010282020102010283010201028202010283020102018501 +020102010284020102010284020102010282020102010282010201010182020102860201 +020102000201020101010288010201020002000201830102010281020101010202040104 +028101020202810100810002840200020001010104028100020402810002810201030182 +000200020002018100020502820102010301020281010284020102010201028101028202 +010282020102820201020102050181020181010282020102810201010101028101028102 +010101820201028302010201810102810200860001000100010281020105018102010201 +810201070181020182010001850102000100010301810201810102060281010201028201 +020181010282020002020281000201028800010200020001000182010002040203010102 +820001028202000214028901000100010001000102010281000202020101810201850102 +010201028302000102030281000282020102820200020202830002010282020001010182 +020001010183000100010101810001840100010001820100010101890001000201000102 +01028b020002010001000102010001020181000101018300010001860102000201020082 +0001028302000102 +010183000100018201000101018100010101870001020001020002810201010182020002 +850200010201028402010201028202010201029601000201020102010200020102000201 +020102010200020202810001010101008901020102010201020102020281010205028101 +028202010285020102010001830102010282020102830201020183010201028202010201 +028100020102810102010281010282020102010283010200028202010282020102820201 +028602010201020102840201020102820201028402010201020402810102820201028302 +000201010184020002000202028301020102830201020181010283020102018201020101 +018102010401040281010202028401000200018301020102820201028202010207028201 +020182010201010182020102010281010204028101028102018301020102820201020502 +820102018101028102010201020281010202020301840201020102010204018202010282 +020102810201810102840200010001010101020201810201010182000201060183020102 +010101010203018400010201008200010281020181010282020102820201020202810102 +0b0285010201020102850201020001028202010282020102820200028202000201028501 +020102000108019002010201020100020001000200010201028202000209020101830201 +000282020102020286010201020100010601890001000102000100010281020082000102 +840200020002830200020081000284020002010282020002810200820002008200010289 +020100010201000100010101010002018100018201020081000101018300010001010181 +00028b020100020001020001020100 +010181000101018100018201000101018100018301000102830200020181010281020188 +010201000201000201880102000201020001028802010201020002010205028300020002 +010283000201028202000182010001010182020002020284000102000203028100020202 +810102820201028202010281020182010001010182020002060281000282020102820201 +028202010201028101020102810102010202010102810102010282010201860102000200 +010202028301020102880201020100020102010101020284000201020183010200020402 +010183020102018101028502000201020102018100010401810201810102050281010281 +020184010201020181010201020301820201020802010185020100020002820201028302 +010001010105020201030282010201010186020102010201028202010201028501020102 +010282020102050286010201020102018101020302810102830201000101018102010301 +870001000102000201820102018201000182010201010183000102010201010201018202 +010281020081000202028101028602010201020102030203018102018101028202010282 +020001020185020001020100010083020001008200010201028601020002000201010183 +000200028202010202028100020302810102840201020102010284000102010282020100 +010086010001020102018501020102010201028601020102010001820102010101010283 +01020102020281000201020100010282010001020183000102010101850001020100018a +010001000102000201020087000201020002000284020002000284020100010281020081 +0001010181000103018100010101820002018401020001028302000201 +030181000101010100890100010001000201000282020102820201028702000102010002 +018301020102840201020102820201020302810002030282000102840201020102820201 +02830201020182010001010185000201020102820200020b028101028202010282020102 +820201028402010200028602000200010201830102010201028301020102010281010282 +020102010281010201020101020281010201020201820201028502010201020183010201 +028602010201020102040201008501020102010202028101020202020185020001020001 +040182000201020181020183010201028402010201020102830102010204028101028102 +008400010201020302810102060281010281020181010283020102010101820201020202 +810102050203018202010282020102820201020102810102830201020101018202010202 +020101010281010282020102020282010201810102830201020101018102010301810201 +020101020401810201020101028301020102010281010204028101020102810002860201 +000102010283020102018101028202010202028101020102810102010281010281020181 +010281020182010201010183000102010301810002810201840100020002010282010201 +010183020102018101028302010201010187020002000100010283020102018401020001 +028402010201028202010201028300010001010182020102860200020002000281020101 +018102010301810201050181000101018802000201020002000282020002840200020002 +820200020302810002010201008101028302000201010182020001020190000201020001 +00010200020102000100018201000186010200010001028202000282020100 +020181000184010001000182010001010182000102810201830102000282020002830201 +000282020102840201020002820200028b02010200020102000102000282020102030286 +000201020100028402000200018201000101010102830102010201028100020502810002 +820201028202010284020102000201028300020102020283010201028302010201020182 +020102820201028202010201028101020102810102020281010201028101020202830102 +010282020102020281010201020101040282010201830102010208028100018101028202 +010281020102018102010201810201020101028201020181010282020102020281010201 +020101830201020183010201020102820102010101810201810102040281010205028201 +000202028101020102810102020282010201010181020182010201810102820201028202 +010281020101018202010282020102050281010282020102820201020202010181020184 +010001020189010201000102010001028102010201030281010083000200020202820100 +028c02000200020001000100020001020101028c00020001000100010001000100820001 +020102820100020202810102820200028402010001008100010701840001000100010082 +020002810200810002810200860001000100020103018302010201010182020102020281 +000284020102010282020002860201020002010202028301000201010182020102820201 +028102010101850002010201028302010201010181020186010201020002018301020002 +01028301000200820001008100010401820002010101810001810102820200028a020100 +020001020002000201028100020102830100010284020001000101018100018401000200 +018301020002840201000200 +03018300010001010181000183010001028b020001020001020100020102810201810102 +820201028702010200010201029b02000201020102010201020102000201020102000200 +020102010201820100010101810002820201020202810102030281010284020002000282 +020002010283010201020102810102810201820102018301000102820201020102830102 +010201028101028202000281020181010201028500010002000202028201020083000201 +020102810102010202010102860102010201020181010083000200028202010204020101 +010282010201840100010001010182000201020183020001028102018301020102830201 +020181010282020102870201020102010201010183020001020302810102030201010202 +010101028301020102030283010200028202010281020181010205028201020101018202 +010281020101010402010101028701020102010201020602810102010281010201028201 +020101018102010301810201810102860200020102010283020001028302010201030181 +0201820102010101830201020103018202000111010f0203018300010001050181000105 +0183020102010d0181020102018500010201000202020301810201020103028200010288 +020001000102010001830102000101018502010001020183010201028302010001030181 +020101018202000282020100860001020102010283020100028202000282020102820200 +02820201008b000201020001000102000201020181000184010001000284020100010202 +02810001820100010201880200010201000100020002 +860100010001000182010001820100018301020002830200010282020002830200020183 +0102010283020001028202000286020002000200028202010202028c0001020102000201 +020002010203028300020002860200020102000284020102010204028101028402010200 +028202010282020102820200028202010282020102820201028102018101020202010101 +028101028202010282020102010282010201020101028101020202850102010201020102 +010184020102010204028200020184010200020101018702010201020001020402840002 +010001830102000104018200020183010201020202010182020102030201010102830102 +010289020100020102010200010101020203010202030108028301000201020101028301 +020102040201018402010201028202010281020181010203020201020281010283020102 +018301020102810201810102010281010282020102820201020602010181020101018502 +010201000283020102010101830200020101018502010001000103018300010001020183 +000100010301830001000102018400010001028102018201000281020101010102830001 +000107018300010001020181000101010502860102000100010081000182010001080101 +029301020102000100010001000100010001020102010201010204018102018301000201 +040101020701880001000201000102018701000100010200010101840201000201010101 +008201020101018700020102010001028902010001020100020002010281000281020182 +0100018501020002000283020002018801000200010201000281020182010001 +020181000182010001010182000100820001028c020102010001020100020102018a0102 +000102010001020102840201020102020285010201020102010285000201020102020201 +010102850102000100018301020102020281010206028101028202000282020002820201 +028402000201020102810102820201020302810102810201020183000200020102810002 +010282010002010281000282020102020202018502010200020185010200020002810201 +010101028400020002010101810002820201028602010201020102020284010201020185 +01000102010284020102010202028101020102010102028b000201020102010200020102 +020281000281020181010201028300010002010284000200020187010200020001020182 +010002820201028502010002000287020002000200020181010204020101830201000204 +028100018101028402000200020102850100010001028202010201028101020102830002 +000281020184010001000102018500020001020184010001000102018300010001020183 +000100010201830001000102018500010001000101010100040183000100010401810002 +010281010284020002010281020183010200028102010201830001000105018100010301 +010283000102018201020103018100010d01810001810102810201070181020181010205 +028100018101008100010101810201010183020100010201810001020183000102010101 +830001000183010001020102030183000100018601000102010201980100010001020002 +000102010001000102000102010201000185010002000102880200020001020002018401 +00010001010181000182010200820001020002 +010181000183010001008300010001840100020002820201028502010201000287020102 +000102010281020184010002010202028101028802000200020102000182010002820201 +028402010200020102820102010201820001020302810102060281000284020102000201 +028101028202010203028101028502000200010202028301020102030281010201020101 +820201020202810102820201020202010101028101020202810102010287010201020100 +0102830200020084000102010284020001000101018500010002000206028e0102000100 +010002010002000100020102820102008100018101028502010002000281020188010001 +000201000102030282000102820200020202830102010202028101020102010182020100 +81000201028101028102018101020c020101810201030101028101020202010101028201 +0201810102060281010281020181010283020102010201820201028102010a018100011a +0183000100010c0181020101010302830102010281020181010282020002010209018100 +010201810001810102050205018100010101850001000100010201810201010181020105 +018300010001010184020102010282020102010281010201020101820001028202000103 +018100010201810001810100810001080181000103018100010301810001850102000200 +010101820201008100010101830001020183010001028402000100018401000100010101 +8200020183010200028602010002000201850100010201008200020182010002 +020183000100010101810001830100010288020102010001020002820201028202010284 +0200020102820200018a0102010200010201020102820201020102810002040288010200 +020102010201840100010001810102860201020102010205028501020102010201028101 +028202010285020100020102010281010281020185010200020102010283000102018101 +028902010001020001020102010281010201028301020102010281010287020001000200 +020083000200018201000102018602010200020001010184020100010281020183010200 +020202020101000101010281010081000202028101008200010201028201020081000284 +02010201008100020202830102000282020102010282000102010201018b000100010201 +020001000102850201000200028702000200020002018401020001028202000282020002 +010283000201020102860102000200020086000100010001008600010001000100860001 +000200020086000200020002008600010001000100860001000100010086000100010001 +008600010001000100830001000101018200010086000100010001008800010001000100 +0100870001000100010001010101008201000101018c0001000100010200010002000281 +0201850102000200018601000100010001030183000100010301030207018100010a0183 +000100010401810001080102020101870200010002010201020101028300010201840100 +010001840102010001030181000182010001080184000100010081000104018300010001 +020181000101010100020183000100018201000185010201020001010101008a01020100 +010001020100010101010081010283020002010001 +820001008100010101810001820100018401020001028502010201000284020002010282 +020102840201020102810201810102820200028402000201020102810102820200020102 +860100020102010287020001020102000188010002000201020102060281000282020002 +840201020102820201020102810102820200028202000201028101028202010282020102 +010281010201020101840201020102020281010282020102010283010201028202010201 +020101030287010200020102010283020100010101810201020181020102018502000200 +020181010284020002000286020102000200020102010101000102870102010002000102 +810201830102000281020181010201028101028202010283020002010201020281010201 +02850002000201028b020002000201020102010001810102030281000207028801020102 +000201020181010081000102018400010002010101840001000102010293000200010201 +020002000102010200020001020184010001000102018100010301810001820100010401 +810001010182000100810001010185000100010001010181000182010001010103000301 +850001000102018201000282020002010281010283020002018101028102000100030183 +000100010101810001010183000100020102850001000102010101890001000100010001 +000102018100010501810001810100020082010001010181000101010202810002070284 +010201000102018100010101830201000182010201070181000101018100010101810001 +010181000103018500010001000184010001000101018300010001820100010301810001 +840100010001010101008502010200020181010283020002018101008500020102000183 +01020001 +010181000182010001010181000183010001028202010289020102010001020102018301 +020002890200020100020102010082000102010287010200020002010285020102000201 +810102860201020002000182010001010182020002840201020102030281010282020102 +820201028202010282020102820201028202000201028301020002810201810102820200 +020102810002820201020102830100020081000102018202010201028301020102820200 +02020201009d020001000200020001000100010002000200010002000200020002000100 +9000010002000200010002000200020002008a00020001000200020001008a0001000200 +0200010002008b0001000200010001020001020102810102810200830002000201020100 +870200020001000200850001000100020202850002000201020302870102000100020002 +010285010201000100860001000100010086000100010002008600020001000200860001 +000200020084000100010289020001000102000100010401810001020183000100010401 +8100010401810001040181000104018100010401810001050181000104018a0001000102 +010200020001810102860201000100020101010100010181000103018100010201810201 +830102010281020109018300010001170183000100028802010002000200020102018202 +010281020103018300010001820100010b01810001050181000101018100010701810001 +02018100010201810001010183000100018801000100010201000102018c000102010001 +0002010200020101018100010101820001020002 +810001010181000182010001010183000102008400020001020202840100020102840201 +020002830201020184010201020101018102018701020002010201020102810002010281 +000289020102000201020100018601000201020102840200020002040283000201020402 +830102010201020101820201020102810102010281010282020102810201810102030284 +010201020182010201830102010201020201010281010201028300020102820201028402 +010201028102010201850001000102010101840002000102010286000200010201028702 +010200010201028102008300020102010285000200020102010282010001810102010201 +008301020102020281000203028301000102810201840102000102010282000102820201 +028202010202028201020184010002010201028301000102010283010200010201080281 +000103018302000102810201010181000101018102018301000102020281010206028300 +0102010e0181000109018100010801810001030101001401810201810102820201028202 +010281020101010202040181000106018100010201040204018100010501810001060181 +000112018102010101040281010202028101008500010201000103018100010101820200 +018201000184010001000101010100010185000100010001860100010001000182010001 +840100010001010101000201830001000182010001030181000184010001000186010200 +0200020187010002010001000183010200010101810001 +860201000100010088000100010001000201820102018101028402010200028202010289 +020002010002010201020202010181000202028700020102000201020102010101028100 +028502000200010081000181010203028301020102020283010201028202010282020102 +820200028202000282020102820201020102810002010281010282020102820200020402 +810102060283010201028102018101020102810002010283010200028202010282020002 +870201000100020001020184020001000201028701020002000201028c02000100020002 +01020001000202028b000100020102010200010002020283000200020202890002000201 +020102000282020002820201028202000202028400020001020102850001000100028602 +000100020001030182020002020283000102018d01000100010002010002000100018601 +0002000200018601000100020001860100010001000186010002000200028e0200020002 +000201000200010001008600010001000100810001030181000186010001000100010201 +830001000102018100010601810001030183000100010201830001000103010100810102 +890201020001000102010281020082000201020181000184010001000107010102020101 +020b018100011a0102028301020102820201020202030102000101830002000182010001 +0b0181000112018100010301810001020181000101018302010001840100010001010181 +000102018200010202028400020100010101010285000102010001810102 +810100810001010181000182010001810102820200028202000282020002820200028802 +000201020100020183010201020102810102850201020002018101020102870102010200 +020102010281010285020002010201890102010201020102000282020002030281000281 +020183010201028202010282020002820201028302010002820201020102810102820200 +028102010201030281010282020102810201810102010282010201810102820201020202 +830002010282020102820201028802000200010002000201028600020001000102870200 +020002000200870002000100020102010284000200020081000201028600010002000200 +860002000100010284020002000284020002000202028101008200020186010001000200 +0185010001000200880002000200010001008a0002000200020100020002820201028502 +0100010001860100020001000182010002010281000201028b0100010001020002000100 +018601000100010001870100010001000102810200860001000201020083000100010201 +830001000102018500010001000101010100040101000401830001000187010001000100 +010085000100010001030101000401830001000102018400010001028d02010200010002 +010201000100010201810001820100010101880001000100010201028302010001010184 +000100010081000183010001000100030101000101810001030183000100010301830001 +000103018402000100018601020102010201810102010202010102810001840100010001 +850100010001008100010101010082010001860100010001000186010001000100010101 +830001000184010001000101018300010001840100010001010181000184010001000101 +018c000100020100010201020100020102820002000200 +820100018201000182010001010182020102810201820102018301020002870201020001 +02010284020102010284020002010201028201000283020100028f020102000200020102 +010201020002018101028202010081000185010200020002820201020602810102820201 +028202000282020102820201020102830002010201028101020102840001020102010281 +000102010202810102810201010103028101020102810102010281010202028101028402 +010200020102040104028101028202010282020102020281010282020102020282000102 +020281010201020101010281010282020102020281010284020102010282020102810201 +020181020181010285020102000102850201020100028102018101028102018101028102 +018101028202010282020102010281000101010102840100020102810201820100010201 +830201000201028401020102010401810001040181000104018300010201010183020001 +020302830002010202028300010001020183000100018201000101018100010201830001 +00010201830001000102018100010c018300010001020183000100010301010004018300 +010002810201010101000401810001020181000107018702010201020102012801810201 +120186000102000200010301830001000103018100011201830001000101010100020183 +000100018201000101018302010001840100010001010186000100010200028602010001 +0201028202000285020102010200 +010181000101018100018201000182010200860002010002000283020001020202830102 +000284020102000286020002010201028302010201010182020002840201020002010281 +000281020181010283020102010201840201020102070283010201028202010282020002 +010283010201028202010201028101028202010201028101020102810002820201020102 +810102810201810102820201020102010101028101028202010201028201020183010201 +028402010201020102860100020002010201028200010201020201810002040282000102 +810201010182020002810201810102820200028b02010201020100020002010286020002 +000102018201020081000203028400020001028502010002000286020102000100018101 +028402000100010201830201000182010201010102028201020182010001830102010283 +020002010301010281010201028201000104018100010401810001040181000101018602 +010200020102010284010001020102018100010301010002018100018201000105018100 +010b01810001030101000d01810001030184020001020101018a02010001020102010200 +010d01810001020101028100028102010301810001060181000104018100010601810001 +05018500010201020102018100010a018102010301010285010200010001020182000100 +810001880100010001000200018601000100020001840100010001030181000102018100 +010201810001010183000200010101810001020181000102018100010101810001030102 +028101028102008100020002 +830100010089000100010001000201028202010282020102830200020186010200010200 +020202840102010201850102010201020202810102010281010204028301020102840201 +020002010201000101010285010201020102020283010201028202010282020102820200 +028202010201028101028202010282020102010281010201028401020100020102820102 +010201030201010202010182020102010283010201028202000202028101020102930002 +010201020002000201020102000100020102010283000100020202830002000287020102 +010002000202028200020083000201028102008300010002850201000100028702010200 +010002018601020002000102830201020081000282020102840200010001020182000200 +810001840102000200830002010282020102020283010001008100018401020001008200 +010204020201820001008100010101820001008100010101820001008100010101820001 +008100028402010002008100020102850001000100018401000100010901850001000100 +0102018500010001000102018100010c0101000401810001040181000281020186010201 +020001028502010201000103018100010b01040282010201390181000106010100010186 +020102000100010301010012018300010001010101000201860001000201000103018100 +0184010001000101018b0001000102000200010001028202010203020101810001 +820100018201000101018100018101028102008900020001020100020102840201020102 +840200020102020281010202028700020102010201020402870002010201020102010283 +000201028102018401000201028202010204028301020102820201028202000282020102 +010283000201020102810102820200028202010201028100020202810102820201020102 +810102820201028402010201028202010281020181010284020002000282020102010282 +010002010283000201020202810002050285000201020102850201000102018501020100 +020101010102850100020102018301020002810201020182020002820201028402010002 +018201020183010001028302010200810002830201020101010100010283010001009000 +010201000100020001020001000100028602000200020001860100010002000186010001 +000100018401000200020302840100010001860100010001000186010001000100018d01 +000100010002010001000200018d01000200010001020001000100018601000100010001 +01010100820100010101010082010001010182000100880001000100010001008a000100 +01000100010001008a000100010001000100010089000100010001000200020202820100 +029502000100010001000100010001000100010001020102850200010200018101008100 +018101008100018101008100018101008100018101008100018101008100019001000100 +010001000100010001000102018e0100010001000100010001000100010c018500010001 +020183010001008100010201850001000100010301820200018201000101018102010101 +810001840102010001020181000101018900010001020002000201890100010002010002 +000201020100810201880100010001020001020002 +020181000182010001010181020182010201820102018201020186010200010201028b02 +01020102000200010201028802010201020102000202028201020101018c020102010200 +020102010201028102018501020102010207028101028402000200028202010282020002 +820200020102810102820201028202010202028100028202010201028101020102810102 +010202010202830102010204028101020102810002840201000102030281010281020082 +0001028402000102008e0001020100020002000102010002000100010284000200020081 +000283020002000100840102000200010084020100020002008101008200020081000285 +020100020002900200010002000100020001020001020102860201000200010202028800 +010201000201000181010285020102000201030181000103018202000288020102010200 +010201010181000104018100010401810001030183020002010201820200020102030181 +000104018100010401810001040181000104018100012601810201040181020116010402 +2f0181020109018500010001000184010001000103018300010001010182000200810001 +020181020182010001820100010401850001000100018701000100010201008100028b02 +01000100010201000102018401000102018a010001020102010001000184010002000286 +02000102010002 +820100010101810001820100018101028302000201810102820201028402010201028702 +010201000200020202930002010201020100020002010201020102010001810102850200 +010201020402810102020281010282020102040283010201028202010282020002820201 +028202000282020102010281010282020102010281010202028101028202010201028101 +020102810102830200020101010402810102850201000200028402000200020202010102 +028201000201028200010289020002000201020102010201030281010286020102010201 +028202010284020102010282020102810201810102810201810102010281010281020183 +010201028102010201820201028102018201020102018100010101860001020100010283 +020100020202010182000102030281000102018500010001000186010001000100018601 +000100020001860100010001000186010001000100018601000100010001860100010001 +00018d010001000200010200010001000286020001000100018601000100010001860100 +010001000101010100870100010001000100880001000100010001008a00010001000100 +010001008a00010001000100010001008500020002000288020102010001000200940001 +00010001000100010001000100010001000102820200028402010001008f000100010001 +000100010001000102018101008100019601000100010001000100010001000100010001 +000100019001000100020001000100010001000100010601810200830001000183010201 +008300020001020181000182010201010182020102880201020102010201028302010200 +81000101018800010001020002010288020100010200010002820201008a000102010002 +0002010200870001000201020002840200020001 +010085010001000100830002000183010201028202010282020102870201020001020002 +860200020102000286020102010200020202880002010200020002018201000201028401 +000201028602010201020102820201020202810102020281010202028100028202010282 +020102010281000282020002820200028202010201028101020102810102010281010282 +020102020281010281020181010286020102010201028502010201020181010201028101 +02020283010201028d020001000200020002000200020090000200010002000200020001 +00010002008c000200020002000100020002008200020001008502000200020004008302 +000200860002000200010002008801000100010001000182010002850201000102000100 +850102010001008200020184010002000281020184010001000104018100010401810001 +010185020102000102810201820100010401810001040181000104018100010401810001 +820102018301020001050181000104018100010401810001290101022001810201810102 +010201010102820102010b01810201140181020104018102010401810201810102850201 +02010001820102010101810001010186000200010200028102008b000102010001000200 +0100018b0100020001000201000100020102820100028a02010200020102000200028502 +000100010284020002000184010002010283020100028602000102010002010282000201 +810102 +810001820100010101810001810102840200010201820102018201020183010201028402 +010201028502010201020189010201020102010201020402850102000201028502010002 +010201028301020002840201020002840201020102070281010282020002820201020102 +810102820201028202010282020102010281010201028100020102810002010281010201 +028101020102820100028302010201010102020101820201028402010200020102830102 +0102010281010202028300020002880201020102010201028402000200028c0201020001 +020102010002000282020102820200020302820102018301020102830201020183010201 +028202010201028201020108018102018301020002830201020102010102810102010281 +01028102011c018302010201810102010201000401830001000102018300010001020181 +000281020101018202010084000102010201028201000102018300010001020183000100 +010501810001020183000100010201810001040101008201000102018300010001020181 +000182010001010181000182010201020181000104018300010001010187000100010201 +00028c020100010200020001020100028f02010002000100010001020100020002890201 +000100010001000194010001000100010001000102010001000102010001810100810001 +8a0102010201000100020002840201020102820201028802010200020001020003000102 +8b0100010002000201020102010201010204018900020001020100010002870200020001 +0200018201020182010001010183020001028c0200010201020100020100010281020085 +000102000102 +010181000182010001810102810201810102820201028202010284020102010282020102 +840201020102020282000102820201028802000201020102010206028b01020002010201 +020002010205028500020102010203028301020002820201020302810102040281010201 +028301020102020281010201028100020102810102010281010201028101020202830102 +01020302810102020281010282020002010281000202028d010201000200020002000100 +010092000200010001000100010002000100020002008a00020001000100020002008200 +020007008102008600020002000200020083010001000400850200020001000200850200 +020001008800020002000200010002008301000100150085010001000200840002000200 +860001000100010086000100010001008600010001000100860002000200020084000100 +020002008301000100010081010082000100010081010086000100010001008500010001 +000101010100810100010083010001008900010201000100010001860100010001000181 +010082000100810001830100020083000100018401000200028102018101020102810002 +010284010201000281020103018100010201810201020102020101830201020107018102 +010301870201020102010201810102810201020181020182010201830102010284020102 +010282020102810201020189000200010002010201028402010201028502010201020001 +008201020101010102830002000288020002000200020100840002010201820100010201 +810002010283010200028502000100010281020088000102010001020002020282010002 +84020001000201028301020102 +810001010181000184010002010281020182010201860102010002010282020102020283 +010200028602010201020102010281010291020102000200020102000201020102010201 +810102860201020002000202028301020102820201020402810102030281000282020102 +010281010282020002010283010201020102810102020281010201028101028202010202 +028101020102810102020281010289020102000200020100028902010002000200020002 +820201028202000202028501020102010288020001020100010002820200020202810102 +820200028402010201028202000285020100010001810102820201028302010201080181 +020105018102010301010202018100028602010201020002810201020181000281020102 +018100010401810001040181000104018100010301830200010281020101018100010401 +830001000102010100810100810001820100018501000200020082000102810201820100 +018601000100010001010101008901000100010001000100860001000100010001008a01 +000102000100010001000200820201000300010182000100020002010202810002860201 +020100020081000101018600010001020102830200010201020101830201020081000101 +018502010002000101018a00020001000201020001028b02000100020002000200010282 +02000282020002820201028a020002000200010201000181010287020001020102010283 +020002018801020102010001000184010002000284020102010081000201028700010001 +0002000103018f0201020102010201020001000102010081000285020100010002840200 +02000201028100018101028c020102010201020100010001028402000201028202000283 +02010002 +840002000200830001000281020182010201830102010281020183010201028202010202 +0283010201028402000201020102810102820201028102018f0102010201020002000201 +020102000201028301020102020281010284020102010282020102010281010201028301 +020102820200020102810102820201020102810002030281010202028101020102810102 +820201020102810102020202010102810102040281010201028101020202850002000201 +028202010287020002010200020081000202020100820100010101850002000200018401 +020001008900010201000100010001820102008500020002010004008101000500810100 +040081010001008502000100010003000101820001000200830200010001008101000200 +830100010004008101000c00810100010081020084000200010086000100010001000200 +830100010001000101820001000100810100820001000100840201000100820002000100 +81010088000100010001000100880001000100010001008c000100010001000201000100 +010201010001020201010281000201028101028202010201028101020102840001020102 +830200020081000186010200010001028102008200010001008301020001860100010201 +000201028100010101810201810102010282010001810102820200028202000282020102 +820201028102018401020100018401020102018101028202010282020102820201028302 +010201020181020102010102810102840201020102840201020102820200010201810201 +0101880002000102010201028f0201020002000201000100010001000101010102810001 +020184000201020183010001020102870002010002010002820200018201000201028801 +020001020001000203020101 +830001000184010001020084000200010283020102018401020100028402010201020202 +810102020285010201020102010282000102060201018202010286020102010200028202 +000284020102000284020102000282020002020281010282020102840200020002010281 +000282020102820201020102810002820201020102810102020281010201028101020102 +810102010281010202028101020102810102820201020102010185020102010201850102 +010201028402010201020102010101028201020102018102010201010283010201028202 +010283020102010201820201020102010181020106018202000282020102010284010201 +020184010001000103018400010001008200010001000201870200020001000200020083 +020001001700810100010081020084000100020086000100010001000200830100010007 +008102000300810200070081010004008301020100010088020100010002000100020084 +020001000282020002010281000201028100020102820002000300830100010081000201 +028e00020002000102010001000100020002008f01020100010001020102010201020002 +8102008300020002820200020102810102820200028202010201028a0100010002000100 +020002820201028202000282020102810200020089020001000100010001020202830002 +010282020102820201028402000100010101870201000200020102860201020102010202 +028401020002008600020100010001820102010101810001830102000201028400010001 +0281020081000101018c0001000201000102010201000182010201020187020102010001 +0001010181000186010002000200020102 +810001010181000182010002820201028202010282020102820201028302010201830102 +010202028101020102880100020002000201020102850102010200020102810102010286 +000201020102010201010281010202028100028402010201020202810002820200020102 +810102820200028202000201028101028302010201810102020281010282020102010281 +010201028101020202830102010282020102010281010281020181010202028300010002 +830201000204028301020102010282010002900201020102010201000100010002000102 +860200010001000282020102a00201000200010001000100010001000200020102010002 +000100010001000100010201830001000108018300010002010201010102810102850201 +020102011d01810201020181020119018102010301830201020102018102010301810201 +830102010203028101020202810102010281010281020101018300010001020101028501 +020102010201028101020102820102010201810201820102018201020101018102010301 +840201020102820201020102810102820201020102810102830201020101010100010185 +020102010002820201028402000200020102810001820102010101010201018202010203 +028101020302830102010001000101810002820201028402010201028402010200028202 +010286020102010200028502000200020188010200020001000100830001000184010002 +000202028100028502010002000282020100810001010187000100020100010081000282 +020002850200020102008900010201000200020100010081020184010002000201028100 +02 +010184000102010281020082000201820102018101020202810102820201028402010201 +028802010201020102010294020102010201020002000201020002010200020002010289 +010200010200010200028402010201028202010203028100020202810002840200020102 +010281010282020102010281010282020102010281010201028101020102810102010281 +010202028301020102820201020102830002010204028701000200010201028602000200 +020002030281000203028d00020001000100010001000100028402010201028302010002 +87020100010001000101018700010001000201028c020002000102010001000200018601 +000100010001010185000100010001860100010001000189010200020102010001000100 +010282000100040081010004008101000400810100020081010004008302000100860001 +000100010082000200010083010002000200810200040081020001000102820002008300 +020002820200020602810002880201000100010001008200010286020002000200020102 +810102010282010200020081020003008802000200020002000286020001020100020102 +810002820200020102810002010287000200010001000201028400010200020102810002 +820200028202000283020100028802010001000100010282020002820201020102810102 +820200028902010001000100020002040281000206020100830200020089000200020002 +000201028202010281020101018400020102018401000100018701000200010201020102 +010082010001080101028900020102010001020102840200010201840102010200820001 +000100890102010002000201020101018102010101010085010200020001 +060082010201810102820200028202000284020102000282020002020281010202028300 +0201028202000201028b0102010201020102010201020302830002010281020182010201 +820100020202810002820201020202810102820201028202010282020002820200028202 +010282020002010281000282020102010281000201028101020102810102010281010202 +028301020102820201020202010102028101020102810102810201830102010281020101 +010202810102840201020102810201860102010201020106018102018101028102010301 +810001050181000105018200020102018202000105018100010301820200010201810201 +820100010101810201820100010301830200010201020101810001050181000104018100 +010401810001030181020102018202010201028401020102010101810201040184020102 +010282020102020281010201020201810201080181020181010286020102010201020102 +810102010282010201020181020102018100010401010282010201810102010281010201 +028101020402810102010202018302010201850102010201028202010204028301020102 +010202010102040182020002820200020402810102030283010001020b02810102820201 +020302830102010282020002840201020002820201020202810102810201020101028100 +010101020283000200020402820002018301000100850001000200020202890002010001 +000200020102010100810201880100010001020002008100020302960102000102000200 +020102000201000200020001020102010201010002 +890200020100010201000282020002820201028202010282020102840201020102860201 +020102010284020102010201028101020102840100020102010281000202028300020002 +860201020001000102010102810102840200020002010283000200020202810002010281 +010282020102820201020102810102830201000282020102010281010201028101020102 +810102010281010282020102820201020102830102000282020102010282010002820201 +020102840102010002050289000200020001000100028602010201000102820200020102 +820001009600010001000100010001000102010001000102010002008e00010001000100 +01000100010001008c000100010001000100010002008a00010001000100020001009300 +010001000100020001020001020100010001008a00010001000100010201008800010201 +020100010088000200010001000200830002000284020102010203028100020102810002 +010282010200840001000100810002820201020102810102010281000293020100010001 +000102000100010201000102010201028500020002000283020100028702000100010002 +000100010286010002000201028102000100820200020102810002820201020102010081 +02008b000200020001000102010002010281000204028101020302850002000201028202 +000282020002030281000204028401020100028102010101810002830200010201028401 +000100028202010284020002000202028101008100020302810002030201000102810002 +010281010207028100028702000200010201008100028102018301020102020285000200 +020002820200010101830200020101010202820100028502010201000184010201000182 +0102010101810001830102000201028300020001 +810001830100010081000282020102810201810102030283000201020202810102840200 +020102890201020102010201020181010282020002820201020602020182020102830201 +020083000201020202810102840201020002010285010200020102820200020102810102 +820201020102810102010281000282020102010281010201028101020202810102820201 +020202810102020281010202028101020102830002010282020102010281010201028101 +028102018501020102010281020183010201028102010401820201028102010c01810201 +1f018102010f0181020101018102010a0183020102010101830201020102018102010501 +0d0281010201028101028102010401010201018202010201028101020102040181020103 +018102010101010281010286020102010201020102810102010281010201028101020102 +0b0181020102010102810102840201020102040203018102010101010281010282020102 +010281010201020101030281010282020102050281010282020102030281010282020102 +010282010201830102010210028301020102030281010202028101020102810002030281 +010205028100020202830102000202020201010281010283020102008100020102880002 +000102000200018801000200020001020182010002850201000100018201000281020001 +000102900100020001020002000200020002000201010186000201020102018101020002 + +020101008101028502000201000283020102018101028302010201810102010281010284 +02010201028a020102010201020102010201028100020102890102000201020002000201 +020101850001020001028402010201028202010202028100028202010282020102840200 +020102040281010201028101020102810102820201020202810102010281010201028101 +020102010103028101028402010201020102820100020202840102010002010201018100 +028202010204028400010001029102000100010002000100020001000100010086000100 +020001028d02000100010001000100010001008e0001000100010001000100010001008c +000100010001000100020001008700010001000100028202010086000100010001028302 +0001008a0001000100010001000102820201020b02820002008d00010001000100010002 +010201028502000102010201028600020001020100870001000200010002820200020102 +850001000200020102810102010281010204028101028602000200010002830200010201 +028701000200010001008e00010001000100010001000102010081000201028100020102 +810002040281010285020001020102820201021302820100018501000102010201028100 +020302810002030286000100020102018101020102020181000281020181010203028101 +020302810102820201028202000281020001000102830002010284020102000202028100 +028202010203028101028202010086000200020001028302010001010102028601020102 +010200870002010200020002830200020083000100028502010002000288020002000201 +02000101018c02000100010201000100010201810102 +010082010001820100028102018201020183010201028202010203028500020102010284 +020102010294020102010201020102010200020102010201020102010286010201020100 +018201000182010002040281010282020102020281010282020102810201020184020102 +010282020102010283000200020102810102020281010201028101020102810102010282 +010002020281010202028101020202810002020281000281020181010201028100018201 +020181010284020002010283020102018201020181010201028101020102020181020130 +01020201010302030181020101018102018701020102010201020a028201020104018102 +018101028302010201810102020282010201820102010301810201010101028301020102 +810201810102010281010204028101020802020102028301020102010281010201028101 +02060282010201120103020101010281010203028101020b028301020102030281010282 +020102050281010203028501020100010201028801020102010201020181010282020102 +820201020302810102070281010286020002010200020802810102020289010201020002 +000102008100028c02010200020001020102000201850102000200028102008800010001 +020001000186010001000200010101820200018701020102000201020102840102000201 +8101029702000200020100010001020001000201020002010201020182010201 +020182000102840201000201830102010201028301020102820201020202810102860201 +02010201020502010186020102010201020102810002020281010201028b010001000100 +010201020102840201020102010281010205028101020302820100028202010282020002 +810201810102010281010201028100020102810102020281010281020181010202028101 +020102810102030201010202010101028401020102010101020201018102010401840201 +020102810201010101028801020102010201000188010201000100010201010185000100 +010001010185000100010001860100010001020101018500010201000189010001020100 +010201008400010201020402810002030281010283020002008700010001020100028502 +010200010202028300020002010285010001000200830001000282020102010284000102 +010201028101020102810002010281000282020102860201020100010281020082000102 +850200020001020102810002010281000201028100028202000201028500020001000201 +028101020102850100010001008e00010001000100010001000100010212028401000200 +028202000203028100020302810002030283000100020102870002010201020102010281 +000203028100020302810002820201028202010203028101020602810102020282000102 +01028a000102010200020002000202028301020002010281000201020100020101020100 +8202010201028600010201020001010183020002018a0102010201020102010200810001 +010184000100020183010201000100900102010002000102010200020102010001870100 +01020102000203028101020102 +010083010002008400020001028202010282020102840201020102820201028d02010201 +020001020102010201020502810102860201020102010202028701020102000102018201 +000181010282020102820200020202810102010283010201028202010282020102020201 +010202810102040281010202028101020102810102010281010201028101020302810102 +010283010001020102810102020281000201028800020001000200010283020001028402 +000100028a02010201020100020001028202000282020102830201020184010002000101 +018602000100010201010183020102010301820200010501850002010201020c02020183 +000102010201010282010201830102010281020181010281020105018102010101820201 +028202010281020183010201020102810102820201020102810102820201020102820102 +018101020102020103020101010281010206028101028202010201028101028402010201 +020502810102080281010282020102810201090181020105018202010282020102820201 +020402810102820201020702020101020101820201028202010202028101020302810102 +040281000201020101030281010282020102820201028202010203028300010002010283 +000200020102010104028301020102840200010002820201020102830002000289020100 +010201020002018501020002000185010201000201850102000200018101000100010186 +020002000100018401000100010201810001830102010081000102018a00010200020002 +01020001860102010001000281020181010281020186010201020102018301020102 +810001830100010282020002810201830102010282020102820201028402010201028502 +0102010201890102010201020102010203028101020102830102010201028f0102010200 +020100010001020002000282020102820200020202810002010283010201028202010282 +020102010281000282020102010281010282020002020281000282020102020281010201 +028101020302810102010281010203028301020102870201020102010201850102010201 +020102840102010201010101020401810201010103020101820201028102010201810201 +110182020102840201020102060202018202010203028401020102010401010204018102 +010201010201018202000282020102850201020001020102810102820201020102810102 +020288010002010201000102010284000200010201028101020102810002820201028202 +000201028101028602000100020002010281010204028101020302810102820200021102 +840001000100860001000100010282020002820201020602810102010282010002010283 +000100028202010202028101020402810002090281000282020102060281010203028100 +0201028100028202010282020002030281010281020181010202028101020b0281010284 +020002010201028e00020001020102000102010002000284020100020101018202010081 +000286020100010001029602010001000102000200010201020102010201000100010101 +810001020181000281020182010002810201850102000201028802000200020102000182 +0102018b010201020102010200010200 +010084010002000281020081000282020102870201020001020102840201020002850201 +020002018301020102010287010201020102010201028501020102010202020101820200 +010101010081010202028301020002820201020302810102820200020302810102840201 +020102010283010201028202000201028101020102810102020281010201028101020202 +8101020202830102010282020002030281000201028100028a0201020102010201000102 +030289010001020100020001020102860102010201000201029000010001000100010001 +000201000100028402010201020202820001009400010001000200010201000100020002 +01000100028c020100010001000201000100028202010282020002820200028202010282 +020002820201028202010282020002010287010201000102010282020102820201020102 +810102050281010282020102830201020184010201020101010202810102820201020102 +81010282020102820201020a028101020102810102010281010201028101028202010282 +020102040281010281020109010102030102028101020302810102820201021002810102 +820201020802810102020282010201840102000201810102010201018302010201030184 +02010200028c020002000200020001000100018201000104018300010201810100850002 +000100010201810001010189000100020102010002018501020001000102018300010001 +870100020001020100810001010187020100010001000182010001020181000182010001 +820100018101008100028202010001008301020001840102010201810100810001820102 +018a0102010201020102010201810102 +010182000102830201000282020102820201028202010285020102010201830102010285 +02010201020181010201028d010201020102010201020102010202028201000201028400 +020100010101010283010201020202810002820201028202010282020102040281000282 +020102840201020100810002820201020102810102020281000201028101020102810102 +810201830102010201028100020302810102840201020102850201020102010401830201 +020181010201020301810201070101028101020102820102010201820201028402010201 +028502010201020182010201030182020102840201020102040202010202810102030283 +010201020102810102020281010202028101028202010283020102018301020102860201 +020102010281020183010201028202010201028101020302810102830201020101010102 +8101028202010201028101020a0281000205028101020502810102820200020402810102 +820200028202010204028101020102810002820201028202000282020100860001000100 +010285020002000102070281000282020102820200020102810002010281010204028100 +028202010206028300010002010282000102030283000200029202000200010002000200 +020002000200020001040181020102010102040182020001010188000201000201020002 +840201020100850001000102018701020100010002018101008100028602010200020002 +850201020100018601020100010001930100020001020102010201020100010001020100 +810001010182000201830102000201028b01000100010201000100020101018402010201 +0207028101020002 +010082010201810102820201028202010282020002820200028402000200028d02000200 +010200020102010201020102010188020102010201020102010281010202028500020001 +020184010200010282020002050281010204028101020302830102010201028101028402 +010201020302810102010281010202028101020202810002020281010201028100020202 +81000201028300020002020281010201028a010201000200010201000282020102830200 +01028e020002000200010001000100020002970201000102010001000200020002010002 +000200020001020302830102010284020102010284020002000201028100020202830002 +000203028100028a02000200010001000200028202000282020102820200028202000203 +028100028202000288020102010001020002820201028202000204028100020802810002 +070281010202028301000201020101000201010281000204028501020002010201028101 +020202810102820201028202010204028101028102010601010201018202010201028101 +020502810102010281010203028101020102020101020301010204018202010282020102 +0402810102820201028302000102820201028102010e0189000200010002000100028302 +010201830102010285020100010201820100018401000100010301860002010002000185 +0102010002010101830001000102018b0001000102000200010201008100010301850001 +000100018201000102010102020181000101010100840102010200810001010182020002 +8102018401000100018c0102010201020102010201020182010201 +840001000102810201830102000281020181010282020102840201020102020283010201 +028602010201020102010281010204028101020202820102018101028302010201840100 +010001850102010201020d02810102020281010282020002820200028202010201028201 +020181010202028101020202810102010281010202020101020281010201028300020102 +810201810102020201010102010189020102010201020102018401020102018101020202 +040181020181010281020182010201150103028101020302830102010282020102060281 +010201028101020302810102840201020102020203010102810102830201020181010282 +0201028202010203028101020d0281010201028101020502830102010208028101028202 +010201020101010281010203020101810201010109028101020802010102028101028102 +010b01020281010203028101020302810002880201000102010001008300010002820201 +028202000282020102820200028202010282020002860201020100010282020002010282 +010001960100010002000100010002000100010002000200010201840102010201080187 +020102010002010286020102000201028202000287020100010001020184010001000201 +020100010285010200020002840201020001030102008a02010002000102010201028502 +010200020086000100020100018101008100018301020002010281010001008302000201 +810100810001810102010201018b020102010200020100020102 +820100028602000102000102820201028502000201000286020002000201028602000201 +020102020285010201020102820201020202010101028901020102010200020001040103 +028301020102820201020302830102000282020102010281010204028101020102810102 +010281000201028101020202810102010281010201028301020102010281010203028101 +020102810102040281000201028e00010002000200010002000102010287020001000200 +010285020001020102910200020001000100010001000100010001008d00010001000100 +01000200020002820201028202000282020002010283000200028f020102010200020001 +000100020002008200010287020002000200020081000203028100020602830002000202 +028300020002010281000201028101028302000200850002000200020402810002080285 +000200010002850200010201028202000201028101020102810102010288000200010001 +00010205028100020102810002010287010001000100010283020002008b000100010001 +000100010001820102010101810002820201028202010282020102820201020702810102 +8102010d0181020104010102860002010200010281020183010201028102018201020104 +018102010101890002000100020002000286020102010200018401020100018401000102 +018701000200010001028902010201000200020102890200020102010001000102018300 +01000186010002000102018201000101018b020100010001000100010001810100810001 +020181000102018c00010200020002000102010201030181020184010201020189010201 +020102010201020102 +810001010101028101028102018301020102820201028202010284020102010286020102 +010201020402870102010201020102010289010201020102010201028102018101008100 +018101008100028402000201020202810102060281010203028501020102010282020102 +010281000201028101020102810102010281010201028101020302820100020102810102 +010283010201028202010204020101010203018102010801010281010283020102018201 +020181010281020181010203020201810201110101020101080282010201810102850201 +020102018301020102820201028202010206028301020102820201028302010201010182 +020102820201020502810102030281010203028101020202010101028101028102010201 +010202010802810102010281010281020183010201020d02810102010283010201020102 +81010282020102820201020102020183020102010c018102010101820201020302010181 +020107018102010b01810201010182020102010282010201810102840201020102840201 +020001020101009301000201000100020002000100020001000102010401810201020101 +028101028402010201028502010201020082000201040189020002000102010200028602 +010200010002860201020002000286020102000200010101020001018a00020001020102 +010201028902010200020100010001010186000100010201020102870001020002000201 +8801020102010201020183010201020302840102010201 +010101020101820200020102810102020281010282020102840201020102840201020102 +030201018802010201020102010201028301020102030281010281020185010001000102 +020283010201028202010282020102090281000284020102000282020102820201028202 +010206028101020202810002010281000202028101020302010102028101020202810002 +020281010288020001000100010001840102010002010281000204028100028402010001 +020102830102010201028d01000100010001000100010001008e00010001000100010001 +00020002008a0001000200010001000102840200020002820200028a0201020100020001 +020002010283000200028202000282020102020282000102010283000200028502010200 +010285020002000200890002000200020002000201028101020402810102840200020002 +020281000201028100020102810002820200020102820002008900020002000200020002 +84020001000201028d000102000200010002000100020088000100020001000102900200 +020100010001000100010001000100900001000100010001020100010001020100830001 +000282020102820200028202010283020001028a02000100010001000100028202010285 +020002000102820201008200010281020102018102010301820201028402010201028e02 +000200010001000200020001000182010002840201020102840200020102840200020102 +83020100010201010002018a000200020102010001000101018e02000100010201020001 +020102000184010201000188010001000100010001840102000201010183000100018901 +000100020102010200870001020102010201840102010201810102020284010201020183 +01020102 +830002010201028101028202000282020002820200020502830002000284020102010204 +028101020102850102010201028202010203020101010282010201010183020100028202 +010284020002000282020002030287010001020002010282020002020281000282020102 +820200020202810002820201020302810102010281010282020102820201020102810002 +030281010284020102010285020102010201020181020103018202010206028101028202 +010201028101020402840102010201010181020114010202810102020281010202020301 +03028101020202810102820201021102020102028101020e028101020702810102820201 +028202010201028101020102810102810201010182020102810201010103028101020102 +02018102010a010802810102810201060181020103018102010e01820201028602010201 +020102810201830102010281020105018102010101820201028202010282020102820201 +028102010201810201010182020102820201028202010092000200010001000200010200 +010001000100010101820201028202010284020102010283020102010101850001000100 +01810100830001000181010286020102000200028402010200028102018401000200028d +020102000200010201020001000101010100020185000100010201010101028501020102 +000184010001000103018200010201020100810102020281000291020102010201020102 +010201020102010201840102010201 +850100020100028102018301020102820201028202010282020102020281010286020102 +01020102090281010203028a010201020102010201020185010001000102820201020302 +830002000282020002820201028302010002030282010200810002010281010201028101 +020102810002030283010201020202810102020282000102010281000282020102820200 +028402010201028402010201020102880102010201020002018201000282020102020281 +000201028101028602000100010002820201020202810002870201020100010001010182 +0001008b0001000100010002000100020102830001000284020002000284020102010281 +02008c000200020001000200020002008300020002840201000200830002000203028100 +020102810102820200028202010081000283020100020702810102810200870001000200 +010002860200020001000202028a01020002000100020001008800010001000200020088 +0002000200010002008a00020001000100010001008a00010001000100010001008a0001 +0001000100010001008e0001000100010001000100010001008100028b02010001000102 +0100010002010281010282020002820201028b0200010201020100010201028202000282 +020102820200028502010002000283020100018101008100010401010281010284020102 +010282020102820201028102010201810001050184000100010284020102010284020002 +010283020002018401000100010201810001020184000100010285020100010001020184 +000100010288020100010201020001020183000100010501810001810100920001020100 +010001000102000200010201000102018102018501020102010281020188010201020102 +0102018301020002 +830201000281020181010285020102010002020281010287020002010002010287020102 +0102010201810102840201020102010281010201028a0102010201020102010201030183 +020100028202010282020002030281010201028100018301020102840201020102820201 +028302000102020283010201020102810102020281010202028101020202810102030281 +010201028101020402810002020288010201000201020102850201020002010101060286 +010201020002010201820200020202020181020105018100018201020107018102018101 +020302810102820201028402010201028202010201028101028202010203028101020302 +810102080281010203028101020302810102010201018602010201020102030281010282 +020102820201028102010401810201020186020102010201028302010201020102020801 +820201028102010901810201040181020103010102820102011401810201810102830201 +0201810102810201020101028101020102810102820201028102018401020102010a0182 +020102840201020102820200028502010200010281020101018100010601810001860102 +000200010288020002010002000201040183000100010101880001000100020002018501 +020002000285020002000201850102000100028602010200020001020183000100010101 +010002018500010001020190010001000102010200020102010001000182010001020187 +020100010001020182010201850102010201028102018501020102010201028101020302 + +850100020100028302010201810102820201028202010202028101028302010201870102 +01020102010203028b010201020102010201020102020201010102020185000100020102 +820200020202810002050201018600020001020102010281010201028101020102810102 +820201020102810102010286000201020100020202810002820201028202000201028300 +020002020281010203028101020102820102010101840201020102860201020102010201 +028501020102010281020105010102860102010201020111018202010203028100028202 +000201028100020202810102820200028a02000200020002000200028402000200020302 +810002820200028202010283020002008100028502010001000285020001000102830200 +01008800010001000100020088000200020002000200880002000100020002008a000100 +020001000100010088000100010001000100880002000100010002008a00020002000100 +01000100880001000200020001008c000200010001000200010001008c00010001000100 +01000100010083000100028202010282020002850201020100028e020001000100010001 +00010002000201028100028202010282020002820201028c020002000100010001000100 +018101008100028f02000200010002010200020001000201820100010a01830201020102 +010102810102840200020102830201020102018302010001020181000102018300010002 +860201020001000186010201000100019001020100010002010001000102000100010201 +830001000101010100820102010201010001018600010001020102020201010502820102 +01810102020282010201840102010201 +810201810102820201028202010282020102820201028202010285020002010201840102 +010201870102010201020102010287010201020102010201028301020102030282010201 +01018202010284020002010203028101020202820100018a010201000201000100010282 +020102840201020102820200028202010282020102050284000102010282020102820201 +020102810102030283010201020102820001028402000200018901020100010201020102 +010281010204028100020502810102020281000201029000010002000100010001000100 +010001008700010001000100020502830102010282020102840201020102820201020502 +810102810201030182020102840201020102820201028202010286020102010201028202 +010283020102018101020202810102030281010203028201020106018102010301810201 +810102020207010102010182020102810201810102820201028102010301810201030182 +020102010201018102010301010201018102011a01820201028202010282020102820201 +028202010283020102010c01010281010282020102820201028202010282020002810201 +820100010a0181020101018a020102000100010002000288020001000100010001020181 +00018a01000100010002000201028b0201020002000102000200028d0201020001000102 +010200010001020183000100010201830001020101018200010291020100010001020102 +000200020100010001020183000201020102010181020101018902010201020102010201 +8101028702010201020102018301020102 +810102820200020102810102820201028202010284020102010282020102020283010201 +020202870102010201020102010281010201028101028902010201020102010201040106 +028100028202010282020102820200018d01000100010200020002010200028202010284 +020102010282020102010281000201028101028602000102010200810002820200020202 +810102020283000200020102830102010201028701020102010201028202010202028101 +020202890102010201020102010282020102840201020102820201028102010f01810201 +010102028101020202830102010283020102010201840201020102030283010201020202 +8401020102010901810001040183000100018101028202000286020100010001008a0001 +0001000100020001008600010001000100880001000200010001008a0002000200020002 +0001008800010002000200010088000100020002000100880002000200010001008a0002 +0001000200020001008c000100010001000100010001008c000100010001000100010001 +0085000100020002820201028702000100010001008a0001000100010001020102820200 +028202010282020002820201029002000100010001000100010001000102018101008100 +0292020002000100010002000200010002000200010d0184020102010284020102010285 +020102010201010185000100010001020181000102018300010002020283000100010201 +8b0001000201020100010002008a00010001020001000100018401000100010201830001 +0201840100010001010181000101018102018c0102010201020102010201020181010287 +02010201020102018101020202 +860200010201000282020102850201000201028202010202028301020102840201020102 +04028501020102010202028c010201020102010201020102010501820201020202810002 +840201020102010281010081000102018100010201830201020183010201020202830102 +010202028101028202000202028100020102810102820201020202830102010282020102 +030283000200028102018801020100020002000201028100020302810002030281000203 +028600010002010002940201020100010001000100010001000100010001008600010001 +0001028502000100010283020002008100020102880002000200010201008a0001000100 +0100010001008a0002000200010002000200830002000284020100010081000282020102 +840200010001840100010201030182020102830201020181010283020102018101028202 +010281020102010102010182020102820201028102010301810201010183020102018101 +028202010201028101028202010281020110018202010282020102810201160101028101 +028202010201028101028202010283020102010901010203010102810102820201028202 +010285020102010002810201820100010d0101028b010200020001000200020002860200 +020001000102018100018501000100010282020002860201020102000286020102000200 +028f02010200020001020102000100010201840100010001020183000102010101010001 +028501020100010282020100810001010181000105018202010203028201020102018402 +0102010201028a01020102010201020102010101810201 +810102820200028202000281020183010201028202010284020102010284020102010284 +020102010202028101020802850102010201020102840102010201030182020102820201 +0205028100020102820102018401000100018101008a0001020002000201020002010281 +010202028101020102810002010283010201020102810002820201028202000203028100 +020302810102030281010283020102010201010281010282020102030281010203028201 +0201810102040201010102010181020113010102010102020f0184020102010282020102 +850201020102010b01810201040101028301020102820201028302010201810102820201 +028102010201010201018202010282020102830201020181010281020101018100028102 +018501020100020103018400010002010101850001000100010101010004018200010081 +00018e010200010001000102000100010001010185000100010001860100010001000101 +018200010082000102820200028302010001010185000100010001860102010001000282 +020102820200028202010285020001000102810201850100010001008100018801000100 +010001020081000292020002000100010002000200010002000100010701830201020101 +018402010201028402010201028302010201030183000100010201830001000101018602 +0001000201028f0200010002010201000100020102010081000281020083000100010201 +830001000184010001000101018702000200010200010201020202018102010101010201 +018302010201820102018501020102010281020185010201020102 +8602000102000102820201028202010284020102010282020102020283010201028a0201 +020002010201020102010281010201028101020502810102010282010201010182020102 +050281010206020100030181000102018100018401000200018101028202000201028101 +020302810102010281010202028101020102810102050281010201028301020002820200 +028202010201028501020102010201028101020302810102030281010201028101020102 +850102010201020102940001000100010001000100010001000100010001008700010001 +0001000286020102010001008c000200010001000200020002008a000100010001000100 +01008a000200020002000200010088000100010002000200880002000100020002008a00 +0200020001000200020088000200010001000200880001000100020002008c0002000100 +020100010002000101010100820100010201860200020002010285020102000102850201 +000200010401810001010181020101018300020102850201020001028102010101810001 +050181000104018100010101820201028202000282020102820201028102018101028102 +018201000105018100010401820200028202010282020102820201028202010282020001 +020181000105018102010301820201029302010201020001000200010001000102000100 +0102018100018a01000102010201000201028b0201020002000102000200010201830002 +000286020102000100010201830001000107018300010002840201020100810002840200 +020001030181020104018302010201040181020181010204020101820201020202010185 +020102010201 +020281000282020102820201028202010284020102010282020102020285010201020102 +02028f010201020102010201020102010201028502010201020182010201030182020102 +820201028202000282020002820200028102010201830001000181010081000101018400 +010201028402010201028202000203028101020202810102010281010203028100020102 +830002000203028100020302840102010201010182020102010283010201020302830102 +0102020201018202010205020201810201820102010a0182020102810201020102028101 +020102820102010701820201028202010287020102010201020183010201028102010301 +830201020101010202830102010281020101010102030101020101820201028202010282 +0201028202010281020102018102010c010102810102830201020103010102820102010b +018202010282020102810201030101020e01810201110183020102010f01020281010282 +020102820201028202010283020102010901010282010001820102008100029202000200 +020001000100020001000100010001820100010401810201830102010284020102010282 +02010285020102010001820102018401000100010401820001028c020100010002010201 +000100010201870001000201020100010081020084000100020191010200010001000100 +020102010200020001010181020101018902010201020102010201880102010201020102 +01810102020284010201020183010201020102 +820201028202010285020001020002820200028202010202028300020102880200020102 +010201020202870102010201020102820201020502820102010301810201810102030281 +010284020102010201020101010002010100010183000100018601000200020102820200 +028202010201028301020102820201020202810102010281010201020101820201020302 +810002020283010201020202850002000100020102810002030282000102020284000200 +010202028400020001028202000201029501000200010001000200010001000200010002 +000100820001028202000201028400020002008c000200020001000100010001008c0001 +000100020001000100020088000100020001000100880001000100020002008a00020001 +000100020002008800020001000100010088000100010001000200880002000200010002 +008600020001000100880001000100010001008a00010002000100020002008800020001 +0002000100880001000100010001008a00010002000100010001008a0002000100020001 +0001008c0001000100010001000100010089000100010001000200020102810002820201 +0282020102820200028c0201000100010001000100010285020002000102820200028202 +000282020002850200010001028202000102018100010501810201830102010284020102 +01028c020102000100020001000200018401000100010501840201020102840201020102 +840201020002860201020001000102018400020002010101830001000102018100010601 +8102018901000100010201020102810201840100010001820100010a0183020102010101 +81020101018302010201820102018701020102010201020302810102 +010201010102820102018101028302010201830102010286020102010201028602010201 +020102040285010201020102040286010201020102010201810201010101028101028202 +010282020002820200020102810001020181000184010001000102018100010301850002 +010201020102810102010281000203028101020202810102030281000284020002000101 +010302810102820201028502010201020101018202010282020102820201028202010201 +028101020102810102010281010203028101028102018101028102010a01830201020183 +010201028202010201028601020102010201010101028501020102010281020101010102 +0101820201028102010101010283010201028302010201820102010d0182020102820201 +028202010282020102820201028102010801810201810102810201030182020102820201 +0281020101018102010b0101020201840201020102010215018102011d01820201028202 +0102820201028202010282020102010204018102010b0181020181010282020102950201 +020100020002000100010002000100010001000182010001030101028101028202010284 +0201020102850201020102018a0100010001000100010001020185000100010201850100 +010001029802010002000201020100020102010201000200020100010001010189020001 +000100020002008700010201020102010101810201840102010201030181020101010102 +8501020102010201028c01020102010201020102010201 +820001028202010282020102820201028202000202028101028402010201020202830102 +01020b028701020102010201020202010181020103010102810102020281000203028201 +020181010081000101018100010101830001000102018100010201860201000201000202 +028101028402000201020102810102020201010202810002830201000202028200010202 +0288000200010201020102050282010002020284010201000202029f0100020002000200 +02000201000102010001020100010001000100010002000283020001028b020002000200 +0200010001008c000200010001000200020002008a000200020001000100010088000100 +010001000100880002000200010002008a00020002000100020001008800010001000100 +010088000200020001000200880002000200010002008600010001000100880001000100 +01000100880001000200020001008a000200020001000100020088000100010001000100 +8a00010002000200010001008a00020001000200020001008c0001000100010001000100 +010089000100010001000200028202010201029301020001000100010001000100010001 +000100028302010002820201028202000282020002820201028802000102010001000184 +010001000104010102810102820201028402010201028e02010200010001000100010001 +000184010001000184010201020183010201028202010286020102010200028102018401 +0001000102018300020002810201860100010001000181010081000103018e0001000102 +00010001020102010201020182020001820100010a018102010101900201020102010201 +020102010201020102810201870102010201020102 +880200010002000102018201020184010201020183010201028d02010201020001020102 +010201020502870102010201020102810201810102020205010302810102820201020202 +810002010281000184010001000184010001000102010100020101000101830001020101 +018202000282020102050281010202028101020202820102010201010281010203028101 +020102040103028301020102010282010201810102020282010201810102040281010202 +028101028102010401810201040183020102018101020102810102020283010201028102 +0103018102010c0101028301020102820201028402010201028102010c01010281010282 +020102820201028202010283020102010b01010282010201820102010201840201020102 +810201030181020109010202810102820201028202010283020102011101010282010201 +1b0101028101028202010282020102820201028202010281020101018102010b01820201 +028202010282020102820200029602010002000200010001000100010001000100010001 +028102010201820201028402010201028202010287020100010002000188010001000100 +0100010201840001000102850201000100028f0201020002000201020001020102000284 +020002000102018100010101810200870001020002000200870001020102010201820102 +0101018302010201010181020104018a0201020102010201020102810201850102010201 +020202 +810102810201810102820201028202010284020102010283020102018501020102010204 +028d01020102010201020102010201020102810102020282010201050102028101028202 +000282020102820201028102008500010001000182010001020101000101830001000102 +018100010401810201810102820201020302820001020102810102020281010201028301 +000102050282000102010284010002000282020102010283010201020302830102010203 +028f01020102010201000200020100010002830201000286020100010001028402000200 +028502000200010289020001000100010001008c000200020002000100010002008a0001 +000200010001000100880001000100020002008a00020002000100020002008800020001 +000100010088000100010001000100880001000200020001008800010002000100010086 +0001000100010088000100010002000200880001000200020001008a0001000200010001 +000100880001000100010001008a00010002000100010002008a00020001000200010001 +008c0001000100010001000100010089000100010001000200028202010283020002008e +000100010001000100010001000102820200028202010282020002820201028202010201 +028a01000100010001000100018801000100010201020101018202010284020102010282 +020102810201880100010002000100010101830001000186010002010201028402010201 +028402010201028502010200020101018300010001020185000100010201860100010001 +000102018d00020102010001000102000100010101810201050183000100018201020108 +0192020102010201020102010201020102010201028302010201810102020282010201 +010281010285020001020102820201028402010201028902010200010201020002020287 +010201020102010201028501020102010202028401020102010501050281010282020002 +850201020102010301010001018300010001020181000101018300010001020183000100 +018501000102010201028100020102810102820201020202810102030201010102010101 +028101020102050103028101020302830102010203028201020181010204028101020302 +810102010201018502010201020183010201020102810102020281010205028401020102 +01090182020102820201028402010201028402010201028102010a018302010201010184 +02010201020102830102010281020102018102010a018202010283020102010601010282 +0102010901830201020183010201028102018301020102820201020102820102010b0181 +020183010201020102820102011701010281010282020102820201020102810102820201 +028102010f01820201028202010282020102820201028202000297020100010001000100 +010001000100010001000100010201830102010287020102000102010283020102018401 +000100019201000100010001000100010201020001000102860201000100010201028500 +0201020102840201020002810201840100010001020181000102018e0001000100010002 +000201020102010601830201020108018602010201020102020282010201810102860201 +0201020102 +810002810201830102010281020183010201028202010202028101020402810102030281 +010202028101028102018101020402860102010201020101018602010201020102820201 +020302810102020201008201000102018100010201010003018100010201010002018100 +010401010001028101020302810002010281000203028201000204028300020002860201 +02010201028402000200020102810002010285000200020002010281000201028e000200 +0102010201020001000100020502840002000102850200010002008e0001000100020001 +000100010002008c000100020002000200010001008a0001000100010002000200880001 +00010001000100880002000200020001008a000100010001000100010088000100020002 +000100880001000100020001008800010001000100010086000100010001008800020002 +0002000200880001000100020001008a0001000100010001000100880001000100010002 +008a00010001000100010002008a00010002000100010001008c00010001000100010001 +000100880001000100010201020102850100010001008700010001000100028602010001 +020102820200028202010282020002820201028f02000201000100010001000100010001 +840100010002820201028202010282020102840201020102820201028102018401000100 +010301810001020187020100020102010284020102010284020102010282020100810001 +020183000100010201820001028202000184010001000192010201000100020002010001 +000201000100010201830201020102018300010001020181020106018802010201020102 +0102810201830102010285020102010201810102870201020102010201 +830201000282020002030281010286020102010200028202000202028300020102010283 +010201020302870102010201020102060202018102018101028402010201028202000282 +020102820201028102010101820001008100010501830001000101010200030181000101 +018302000201030102028101020402810102020283010201020102810102820201020202 +820102018701020102010201020402010105020101820201020202810102050281010202 +02830102010283020102010201830201020182010201810102820201028102010d010102 +010102028601020102010201010183020102010a01820201028202010282020102820201 +028202010283020102010901820201028202010282020102820201028102011301830201 +02018101028102010401810201840102010201820102010a010202810102820201028202 +010281020111018302010201010101028101028202010282020102810201010183020102 +010f01010281010282020102820201028202010282020002870201000100010001050188 +00010002000200010287020102010002000285020100010001030183000100018d010001 +0001000100010201020102840201000102820201008b0002010001000102010200028502 +00010002010301810001010102008102018101008f000100010200020002010201020102 +010301810201820102010901810201810102850201020102018101028802010201020102 +0102 +0102010101028101028202010282020102020281010286020102010201028a0201020102 +010201020102010289010201020102010201020202080103028301020102820201028202 +010281020184010001000102018100010701010003010100020101000301830001000181 +010201028401020100020402810102040201010102020101020101810201830102010203 +028301020102010285010201020102030282010201860102010201020185010201020102 +810201820102018201020101010102830102010201020101810201020186020102010201 +02840201020102810201050183000100010201840201020002820200028f020100010002 +010002000100010001008800010001000200020088000200010002000200880002000100 +010001008800010001000100010086000100010001008800020002000100020088000100 +0200010001008a0001000100010001000100880001000200010002008a00010001000100 +0100010083000100010301820001008c000100010001000100010001008e000100010001 +000100020002000100890001000100010001000282020102820200020102810002820201 +0282020002820200028f0201000100010001000100010001000184010002000282020102 +870201000200020002830201020104018300010001050182020102840201020102820201 +0284020102010285020102010201810100810001020183000100010101820200028a0201 +0002010201000100018d0100010002010001000100020001840100010001070183000100 +01020181020104018a02010201020102010201028102018101028c020102010201020102 +01020102010201010002 +82020102820201028802010002000102010284020102000284020102010202028b010201 +020102010201020102010283010201028702010201020102018201020103010102810102 +820200028202010203028200010084000100010001000101830001000101018100010201 +010003018100010201010001018100018101008100020502810102820200028202010201 +0281000205028b0001000200020002000200020302850002000200020102850002000200 +02020281010203028501020100020092000100020001000200010001000200010002008e +000100010002000200010001000100960001000100010002000200020001020102000100 +010001820100010101860001020102000282020102820201028202010285020102010201 +0d0184020102010201028101028202010283020102011001820201028202010201028101 +028102011201810201040101028101028702000200020102011201820201028202010282 +0201020102810102820201028102010f0101028101028202010282020102820201028202 +01028202010282020001010183000100010501810002820201028702010200010201028b +020100020002000100010001080182000102840200020002840201020102870201000102 +0102008100019001000102010200010001020102000100010701010081020101018c0002 +000102000200020102010281020114010102830102010202020101820201028202010201 +020001 +010281000281020182010201830102010281020184010201020185010201020102820201 +020302830102010201028301020102040281010203028201020101018202010202028101 +028202010282020102010202018300010001840100010001080181000102018100010301 +810001020188000100010201020002820201020302010182020102010281010203028301 +020102010203010302810102010281010203028301020102030282010201860102010201 +020185010201020102820201020402040101028201020101018102010101850002010201 +028502010001020109018200020187010201020100010282020102830200020103018300 +010001030101008301020102850200020001028702010002000201028602000100010001 +860100010001000182010200830001000101010100820100028402010002008100010101 +850001000100018601000100010001010101008201000101018200010081000101018500 +010001000184010001000103018200010081000101018500010001000101010100010202 +018500010001000101010100850100010201028502000102010282020002820201020102 +8101028102008f0001000100010001000100010002000282020102850201000200028902 +010200010001000201860100010001000106010102830102010283020102010201020284 +010201020107010100030183000100028a02010201020002000102019101000200020100 +020102010201000200020101018300010001070188000100020102010201040101020101 +84020102010288020102010201020102810201860102010201020183010201020102 +820001028202010282020102820201028402000201028402010201028402010201020702 +810102820201020402810102010281010281020106010102830102010282020102820200 +020202830001000181010001008201000184010001000106010100060182020100850001 +020102010101830001020102010102810102030283000201020202830102010289020001 +020102010201020302830102010202028100028402010201028202000205028800010201 +000100010090000100010002000200010002000100020085000200020001010185000100 +0100028e0200020002000100010001000200018601000200010001010101008301000102 +8d0200020001000201020100020002860201020001000102018300010001010101020100 +820201028202010282020002820201028302010001040181000104018200020102018302 +000201010186020100020102010201810001040181000104018100028102010201810002 +850201020100010e01810001020183020100010101010284010200010283020102011001 +810201030102028101028202010283020102010501810001010181000103018202010282 +020102820201029602010201020001020001000100010001000100020002010501840001 +000102820200028402010201028502010001020188010001000100020102880200020001 +00010001030181000101018502010201000102018b000200010201020002000201050181 +020102018102010b01820201028302010201810102010201018302010201810102 +010281000282020102810201840102010201810102020283010201028802010201020102 +010201028101020302870102010201020102030206010302810102820201028202010203 +02020181000102018100010f018100010301810001880102010001020102018901000102 +010001020102030283010201020102810102070201010502810102030282010201810102 +040201018502010201020181010204028101020402820102010101810201830102010285 +020102010201810102820201028302010201090182020102840201020102840201020102 +8202010283020102010b0184020102010282020102820201028202010282020102810201 +08010102030101028401020102011a018102010401810201820102018201020135019800 +010001000100010001000100020001000100010001000100870001000100010001010101 +028101028202010298020100020002010002000200010001000100010001000100010101 +010281010284020102010282020102820201028402000201028502010201020103018200 +01008100010101840200020102860200020002010081000201028101028c020102010002 +010201020102010401830001000102010100880200020102000200028102010101810201 +030184020102010281020183010201028202010281020183010201028202010206020001 + +81000281020181010282020102840201020102820201020202830102010202028f010201 +020102010201020102010201020102810102020282010201820102010101820201028202 +010201028300020002820200020102820001008500010001000188010001000100010001 +850100010001000100030181020101010100030183000100010201810201820102018101 +020102810002820201020202810002050281000201028100020102830002000203028100 +020102860002000200010205028901000200020002000100a10002000200010002000200 +02000200020001020001000100010001000200020002008a00020002000200010001008a +00010001000100010001008a000200010002000200020088000200010001000100880001 +000100010001008800010002000100010088000100020002000100880001000100010001 +008600010001000100880001000100010001008800010001000100020088000200010001 +0001008a0001000100010001000100880001000200010001008400020102010b01860001 +00010001008e00010001000100010001000100010083000100011c018902010201000100 +010001030181000101018100018301020102820201028202010282020102860201020102 +00018c010001000100010001000100018201000103018400010001028602010201020102 +82020102810201010181000104018c000201020100010001000100010401840200020102 +830201000102018300020001020183000100010b01850201020102010301810201010101 +02010183020102018101028202010201028301020102 +010281000282020102820201028302010201840102010201850102010201029002010201 +020102010201020102010201020102810102020281010281020101018102018301020102 +020281010203028101020102030181000102018100010f01810001010184020100020185 +010200020001020181020101018500010001000282020102010281010282020102040281 +010205028101020402820102018301020102030281010201028401020102018101020402 +810102020284010201020181010281020103018402010201028202010281020182010201 +070184020102010284020102010282020102840201020102810201070183020102010101 +8402010201028202010284020102010201028401020102010a0182020102820201028202 +0102820201028102011601830201020108018102010d0101028201020127019800010001 +00010001000100010001000100010001000100010085000100010001030101028101029c +020102000100020100010001000100010001000100010001000102010282020102840201 +020102820201028202010284020102010283020102018201000184010001000101018702 +010002010001008400010201028102008500020102010286020102010001028102010301 +8100010201840001000102820201008b0002000201020001000102010b01830201020183 +0102010283020102018101020402010185020102010201 +810102820201028202010282020102820201028402010201020202850102000200020202 +850102010201020802810102820201028302010201030182020102820201028202000204 +028400010001008500010001000188010001000100010001850100010001000100020183 +020100010401850201000100018b01020102010201020102010201028300020002030281 +000282020102010281010282020002820201020402810002020286010201000200020302 +8100028a020102010201000200020092000200020002000100010002000200010002008e +00010002000200010001000200020089000100010001000100018b010002000100020002 +0002008a0002000100010001000100880002000100010001008800010001000200010088 +000100020002000100880001000200020001008800010001000100010086000100010001 +008800010001000100010088000100010001000100880001000100010001008a00010001 +00010001000100880001000200020001008100010e0186000100010001008e0001000100 +01000100010001000100850001000100011e018c00010001000100010001000201830100 +0102820201028202010282020102840201020102830201020101018d0001000100010001 +000100010001820100010101840001000102880201020102000102010401810001020183 +000100028102000100850100010001008800020001020102000285020102010001020185 +000100010001820100010801810201040185020102010201010101020201810201810102 +84020102010288020102010201020102 +010281010284020102010281020183010201020202810102020285010201020102030281 +010282020102040283010201028702010201020102010101010281010201028301020102 +820201028202010281020101010100180185020102010201850102000100010301880001 +020002000100010101820201028402010201028202010284020102010201028101020602 +010107028101020202840102010201810102040281010285020102010201830102010281 +020185010201020102810201820102018201020107010102830102010286020102010201 +028102018401020102010a01820201028202010284020102010282020102820201028102 +010b01820201028202010282020102820201028202010201028101028102013301010282 +0102012d018d000100010001000100010001000101018200010081000107010102810102 +860201020001020195010001000100010001000100010001000200020001028402010201 +028202010282020102820201028402010201028302010201010182000100860001020001 +00018a0102010201000201020102820201028b0201000200020102010002010a01840002 +0001028e0201020102000200010001000102010801850201020102010301010287010201 +02010201028202010281020183010201020002 +810102820201028202010283020102018301020102850201020002018901020002000201 +020102010289010201020102010201028202010201028101020102010181020101010202 +830102000282020002040282010001860100010001000188010001000100010001880100 +010001000100018301000201880102010201020102018201020101018102010501810001 +8301000102820200020302810002820201020202830002000202028101028f0200020002 +000200020001020102010201028101020202880002000100010002009200010002000200 +0200010001000100010001008e0002000100020002000200010001008700010001000100 +018101028b0200020002000100010002008a000200020002000100010088000100010001 +000100880001000200020001008800020001000200020088000100010001000100880001 +000100020002008600020001000200880001000100010001008800010001000100010088 +0001000100010001008a0001000200010001000100880001000200020001008100010e01 +86000100010001008e0001000100010001000100010001008b0001000100010001000100 +010d0181000104018b000100010001000100010002820201028202010082000102820201 +0282020102820201028102018201020105018d0001000100010001000100010001810102 +810201870102010201020102840201020001020181020081000102018800010001000102 +000201028101028402010200028802010200020002000283020100018601020100010001 +010181000182010001060181020106018202010287020102010201020181010284020102 +0102820201028102018301020102810201 +8202010281020183010201028202010205028501020102010202028f0102010201020102 +010201020102010202028101020102840102010201030106028101028202010283020102 +010101010001018100011c01830001000103018100010201830001000102018100018301 +020102010201010102850102010201020202810102020283010201020402810102040201 +018402010201028402010201028502010201020183010201028102018101028602010201 +0201028102010201860201020102010286020102010201028402010201028102010c0182 +020102820201028202010284020102010283020102010901810201020101028101028202 +010282020102820201028202010281020133018202010281020101018202010281020151 +018100010201940001000100010002000100010001000200020001028402010201028202 +0102810201840102010201020181020104018a0001000100020001000102840201020102 +84020102010202028201020182010001040181000109018400010001028e020100010200 +020002000100010201020181020105018102010601870201020102010201810102810201 +83010201028102010001 +820102018101028202010284020102010282020102020285010201020102820201020102 +850102010201020102810102010281010282020102020282010201040101028101020202 +810002820200020102840102010001860100010001000188010001000100010001880100 +01000100010001880100010201020102010b018100010201810001880100010001000100 +028202010283020001028502000102010201028501020102010286020001020100020302 +810002010281000202028901020100020002000200920002000200010002000100010001 +00010001008e0001000200010001000100010001008a00010001000100020002008a0002 +0002000200010002008a0001000100010001000100880001000200020002008800020001 +000200020088000200010001000100880001000100020002008800020001000100020086 +000200010002008800020001000100010088000100010001000100880001000100010001 +008a0001000200010001000100880001000100010001008100010e018600010001000100 +8e0001000100010001000100010001009e00010001000100010001000100010001000100 +010001000100010001000100900001000100010001000100010001020102820201008200 +010282020102810201020101020901940001000100010002000100010002010002010201 +028402010201028502010201000102010100030181000101018202010201028301020102 +840201020002860201020102000283020102008300010001860100020001000102018100 +010101850201020102010701820201028702010201020102010101810201830102010284 +0201020102010282010201 +820201028202010282020102820201028502010201020187010201020102010206028101 +028202010203028301020102020284010201020104010102810102030281010204020201 +010002018100011901810201010183000100010601830001000104018100010201820201 +020102030103028101020402830102010282020102840201020102010201018402010201 +028202010202028401020102018301020102810201810102830201020102018102010201 +840201020102840201020102850201020102010801810201010101028301020102820201 +02840201020102810201820102010b018402010201020102830102010282020102820201 +028102010d01820201028202010281020123010102820102010201830201020152018100 +010201940001000100010001000200020001000200020001028402010201028102010a01 +810001020182000102890200020102000100010285020102010201820102010201830201 +020107018100010201810201870102010201020100860001020102010081000287020100 +010001000102018102010501810201060182020102820201020202890102010201020102 +0102 +020283010201028202010283020102018301020102020287010201020102010203028101 +020102850102010201020202810102020206010202810102020281010282020002010283 +000100018601000100010001040181000108018100010201810201820102010801810001 +010181000107018800010001000102010288020002000100020002830201000202028101 +020302810102050281010202028100020102880001020100020002009200020002000200 +0200010002000200020002008e0002000200010002000100010002008a00020002000100 +010002008a00010002000100010001008a00010001000100020001008800020001000200 +020088000200020001000100880001000100010001008800010002000100020088000200 +020001000200860002000100010088000100010001000100880001000100010001008800 +01000100010001008a00010001000100010001008800010001000100010083000102010c +0186000100010001008e0001000100010001000100010201008300010002850201000100 +029402010001000102010001000100010001000100010090000100010001000100010001 +00010201028202010082000102820201028102010d019202000100010002000200020001 +0002010001028202010283020102010201830001000102018e0002010200020001020102 +010201020102810102840201020102880201020002000102018101008300010001020183 +0001000101018a0200010001020102010201820102010401820201028102018301020102 +0102810102040286010201020102010101810201 +820200028202010282020102850201020102018601020102000102010283010200020102 +890102010201020102010201028101028402010201028102010601030281010203028100 +020202010183000100010201810001840100010001010181000186010001000100010201 +860001000201020103018300010001060182000100810001820100010701810201030102 +028101020202810102020201010102860102010201020185010201020102010201010302 +8201020183010201020202010101020a018202010283020102018401020102010b010102 +830102010282020102820201028402010201028102010a01810201020101028101028202 +010282020102820201028202010281020109018202010282020102820201028202010283 +020102012201010206018102011c0181020103018102010d010202810102810201190198 +000102010200010002000200010002000200010002000200010101810201090181020101 +0101028101028402010200028a0201020102000100010201820100010601010281010281 +020104018102018201020101010102840102010201010101008501020102010083000100 +01010183000100010a0101020801020282010201810102820201028102018301020102 +8101020202820102018201020183010201020202810102010281010202028d0102010201 +020102010201020102020283010201028302010201010181020183010201020102810102 +020281000202028201000102018300010001200189000100010001000100010d01020285 +0102010201028202010209028401020102018101028202010207029d0102000201020002 +0002000201000100020001020100010002000201020083000100018a0102000100010002 +0102008b00020002010200010001000189010001000100010201008a0002000102010002 +000200870002000100020001890100020001000100010088000100010002000100880001 +000200020002008800010002000100010088000100010001000100860001000100010088 +000100010001000100880001000100010001008a00010001000100010001008800010002 +000100010083000200010c0186000100010001008a000100010001000100010201028101 +028202010282020002010281000282020102910200010001000100010001000100010001 +008f0001000100010001000100010001000283020102008100010b018402010201028202 +01028e020102000100020002000100010001840100010001010181000104018300010001 +030186020102000200028a02010201020102000201028302010201820102008800010200 +010001000101018100019301020100010001000102000200010201020102010701010289 +01020102010201020102030284010201020101018402010201020002 +830102010201028101028202010202028801020001020002000202028100020302830102 +01020202850102010201028502010201020106010d028501000100010085000100010001 +86010001000100018a0100010001000100010001880100020001020102010d0181000182 +010001840100010001010184000102010201028201000282020102010281010202028400 +0200010203028e0102010201020102010201020100020102830001020185010201020002 +810201810102820200010201860201020002010202028100010501810001830102010282 +020002890201020102010002010284020102000104018100010801820201028202000284 +0201020102010283010201028102010b0181020181010282020102820201028202010201 +0281010283020102014a018102010c010202810102820201028202010201021901820200 +029802010200010002000200010002000200010001000100010001080182020102840201 +020102840201020102820201028a02010201020001020102018201000106010102810102 +810201040101028501020102010288020102010201020100810001040183000100010101 +870001000102010201070101028201020181010281020181010201020101010287010201 +0201020102810201 +820201028202010281020183010201028602010201020102840201020102050281010282 +020102020285010201020102020284010201020182010201010101028101020102830102 +000204028201000102018300010001180183020102010301830001000101018300010001 +0f0183020102018101028102018101020302810102820201020102850102010201028102 +010201010283010201028402010201028202010286020102010201028102018101028502 +010201020102018202010286020102010201028402010201028102010c01810201010101 +028301020102820201028202010284020102010283020102010801010281010282020102 +850201020001028202010282020102840201000201010183000100010201860002000200 +010081000101018200010089000100010001000100018701000100010001008a00010001 +000100010001008800010001000100010083000100010101810001060188000100010001 +0001008b0001000100010001020100028202010282020102820200029602010001000100 +010001000100010002000100010001009300010001000100010001000200010001000200 +018101008100010801820201028402010201028202010287020102000102010283020102 +010301830001000101018100010201860001020102010282020102860201020102010284 +020102000201028300020102830201020182010001820100018101008100018501000201 +000101018f02000100010001000102000102010201090101020801830201020181010283 +020102018101028202010282020102 +02028101028302010201830102010286020102010201028a020102010201020102010203 +028101020602810102030206010102810102030283010201020102860001000100010082 +000100010001018700010001000100018801000100010001000183010002011201810001 +820100018401000100010101830001000201028500020002000201028500020002000282 +02010207028b010002000200010002000102020288000100010002000200920001000200 +02000200020001000200010002008c000100010001000200010001008a00010001000201 +020102008a00020001000100010001008a00010001000100010002008800020002000200 +010088000100020001000100850001000100010101010086010002000200028502000100 +01020102810100810001030181020102018100010b018100011c01810201200184020102 +010281020183010201028102018101028302010201810102810201130182020102820201 +028202000292020102000100020002000102010001000100010101910001000102010200 +010002000200010001028202010284020102010282020102810201840100010001020181 +000109010602830102010286020102010201028302010201030183000100010301830001 +000101018500010001020182010201060101028701020102010201028102018101028302 +010201820102018101028102010101 +820201028202010282020102840201020102040281010202028901020102010201020102 +010281010204028301020102830201020101018102018101028402010201020102810102 +050282010001020183000100011401870201020102010201050181000101018300010001 +0c0182020102010202018202010203028101020302810102050281010201028101020102 +820102018101028202010282020102810201010187020102010201020104018402010201 +028202010201028401020102010a01810201010101028301020102840201020102820201 +02850201020102010e010102830102010282020102820201028202010283020102010501 +810001050182020102010285010200010201020181000104018300010001020188000100 +010001000100830001000101018200010081000101018500010001000182010001010181 +000108018600010001000100850001000100010101880001000200010001009a00010001 +00010001000100010001000100010001000100010001008100018101008f000100010001 +000200010001000100018401000100010301010281000284020102010285020100020102 +8102010f0182000102830200020102010102830102000282020102840201020102860201 +020102000286020102000200010401830001000181010287020102000201000102018e00 +02000100010201020001020102010a018302010201040101020101010284010201020101 +0101020301 +010281010281020181010203028901020102010201020102050201018802010201020102 +010284020102010202028401020102010201820201020102830102010203028101028102 +018501000100010085000100010001880100010001000100018801000100010001000182 +010001010181020110018300010001820100010101850001000100020102860001020102 +0102010281010202028101020102810002010201018b0201020102010201000100020202 +860100020002000286020002000100020102860002000200010283020001008900010201 +000200020002840201000100810002830201000182010201010185000100010001010182 +0002008100018e0102000200010002010001000200028202010083000200010101820001 +008800010001000100020091000200010002000200010200010002000200850001000100 +0101010100820100010101010082010001030101000d0181000104018100010401810001 +8201020109018100010c018100012f018202010282020102820201028502010200010281 +02010e019100010200020001000200020002000100020105018702010201000100011101 +840201020102860201020102010283020102010801820001008200020101010200820102 +008700010001000102010701820201028302010201880102010201020102018201020181 +0102810201820102010001 +810102010281010282020102820201020202810102030283010201020402810102020281 +010201028101028202010201028101028102010501020281010282020102820200028702 +010201000100018601000100010001140183020102010b01850001000100010e01810201 +040102020101080283010201020202810102040281010202020201030201018702010201 +020102018101028202010281020181010283020102010c01840201020102820201028402 +010201028402010201028102010401810201080183020102010601010281010282020102 +820201028102010b0101028101028202010282020102820201020102820102015a018500 +010001000103018300010001050181000104018100010201810201070196000100020100 +02000200010002000200020001000200028102010a018202010284020102010284020102 +010284020102010282020102840201020102840201020102840201020002860201020102 +000104018500020002010287020102000201000104018400010001028102011201810201 +0201010285010201020102810201830102010281020101018102010001 +810201810102820201028202000282020102060286010201020102018101020402830102 +010204028101020202060102028101020302810002040285000100010001860100010001 +000186010001000100018a01000100010001000100018701020100020102010f01810001 +8201000101018d0001000100010201020102010002820201020202810002880201000102 +010201020302810102830201020185010201020102010284010201000184010200010081 +000201028500010001000195010200010001000201000100010002010200020002008300 +010001010186000100010001008a00020002000200010002008800010002000200010088 +000100010002000200880002000200020002008800020001000100020088000200010002 +000200880001000100010001008800010001000200020086000100010001008800010001 +000100010087000100010001000102018100010301820001008800010001000100010085 +0001000100010801880001000100010001008f0001000100010001000100010001000184 +010001000121010102810102820201028202010284020102000111019000010200020001 +000200020002000100010401850001000100010101010202010102040181000284020102 +010203028101028402010201028102010201810001070101008301000201820102008400 +020002008700010001000102010101810201030182020102820201028102018101028202 +0102810201830102010283020102010301 +020281010201028301020102820201028202010282020102880201020102010201020102 +810102010283010201028202010204028201020101010102810102820201020302810002 +040282010001020183000100011b01810201060185000100010001010181000105018100 +010201010281010281020181010201028101020502020181020101010102810102010281 +010201028101020302820102010101810201010101028101028802010201020102010281 +02018101028102010a01860201020102010284020102010282020102850201020102010b +0182020102840201020102850201020102010101820201028102010b0181020181010282 +0201028202010201028101028202010283020102016301830001000101018d0001000100 +010001000100010001870100010001000102810201090182000102940201000200020002 +000200020002000100020002010701010281010284020102010282020102840201020102 +890201020100010002000101010102820102010301810001830102000201020101820201 +028602000200020102890200020002010201000102018300010001010181000182010001 +0e01010281010281020181010282020102810201830102010283020102010401 +020281000181010282020002840200020002840201020102820201020202850102010201 +020102810102040281010282020102810201070102028101020302810102010201018500 +010001000186010001000100018801000100010001000188010001000100010001010183 +020002011801810001040102020101010281010206028201000104010302810102020285 +010201020102010283000200028102010101830002000202028600010001000102940200 +020001000102000200010001020100010001008c00010002010200010001000200880002 +000200020001008a00020001000100010001008800010001000100010088000100010001 +000200910002000200010002000102000100010001008800010001000100020088000200 +020002000200860002000100010089000100010001000100018901000100010001000100 +810001050101000201850001000100018401000100010a01850001000100018601000100 +010001010185000100010001860100010001000101018100011201810001050185000200 +020002010281000282020102810201100101028101029002010200020001000100010001 +000100018201000101018800020001020102010284020102010282020102840201020002 +8602010201020002850201020002010f0184020102010092000102010201000201020102 +010001000102018201020104010102810102810201820102018201020101018202010283 +020102010501 +810002830201000181010282020102820201028602000201020002010281010201028101 +020402810102010283010201028202010201028201020101018102018101020102810102 +030281010282020002830201000102018300010001170183020102010801810001050181 +00010501810001020184020102000101010b020701830201020181010201028101020402 +820102018201020101010302850102010201028302010201810102810201810102860201 +02010201028402010201028402010201028102010c018102018501020102010282020102 +840201020102820201028602010201020102820201028102010601010281010282020102 +820201028202010282020102820201028302010201110181020153018102010201810201 +03018102010b018302010201020181020181010282020102820200028202010282020002 +82020102820201028a020002000100010001000101010102830102010282020102840201 +020102820201028102010101810201880100010001000100010d01840201020102840201 +020102860200020002000289020002000201000100010201820001008200010082000100 +810001030181020109018802010201020102010285020102010201820102010601 +8402000200018101020202810102840201020102020281010202028f0102010201020102 +010201020102010203028201020105010202810102820201028202010282020002010286 +010001000100010201830001000186010001000100018a01000100010001000100018401 +0001000112018100018b0100010001000100010201020102850102010201020402900002 +000200020002000200010002000102010285010201000102020281000202028501000100 +010092000200010002000200010001000200010001008c00010001000100010002000200 +8c00020002010200010001000100880001000100020001008a0001000100010001000100 +880002000100010001008800010002000200020089000200010001000100018701000100 +010001008800010002000100020088000200020001000200860002000200010089000100 +010001000100018401000100010101010082010001060181000103018300010001130181 +00010401810001050181000104018100010b018102018401020002010301810001040101 +028101028102018801020100010001000182010001090182020102820201028402010201 +029a02000100010001000100010001000102000102010002000201020183010201028102 +0183010201028102010101820200028402000100028202010283020100010c0186020102 +010201008400010201028b02000201020102010001000102018102010401010202018202 +0102870201020102010201820102010701 +810102020281000282020002820201028202010286020102000201020102810102020283 +010201028102018101020902020181020181010203028101028202010282020002010283 +000100010201830001000115018102018101028102010501810001020187000100010001 +000103018100010401030201018402010200020102810102010281000187010201020102 +000104018100020402820100028102018601020102000201010186020100020102010101 +820001028602010201020002870201020102000201030181000104018100010201850201 +000201028402010200028702010201020001028502010201000101018402010200028302 +010201840100020102820201028202010282020102820201028202010283020102011001 +010281010281020101018302010201510101028101020102820102018201020110010102 +8101028202010282020102860201020001020002008101028d0201020100010001000100 +0100010101820201028202010285020102010201090189000100010001000100010d0103 +028501020102010286020002000201028302010201010183000100010201840001000100 +0100810200810001010183020102010901010201010102040183020102010901 +820200020302830102010286020102010002018701020102010201020102810102050281 +010204028101028102010601820201020302810002820200020302860100010001000102 +018300010001880100010001000100018801000100010001000186010001000102010801 +810001070181000184010001000101018500010201020181010203028300020102030281 +000101018500010001000101018100010101010201010102830002000201028600020002 +0002008700020001000200028a02010002000100020001008c0002000200020002000100 +02008c00010002010200020002000100880001000100010001008a000100020001000100 +020088000200020002000200880002000200020001008900010001000100010001870100 +020002000100880001000200020001008800010002000100020086000100010001008800 +010001000100010085000100020001010182000100810001030181000189010001000100 +0100010081000101018100010a0186000100010001008900010001000100010001010183 +000100010201850001000100018301020102860201020002010283020102008200010081 +000181010087000100010002010085000100010001810100840001000100830001020186 +0102010002010284020102010282020102820201028e0200010001000100010001000100 +018201000103018100011101810001850100010001028502010201000103018402010201 +028602010200020102810201810100860001020102010281020101018502010001000102 +01810201050181020101010102810102010283010201028102010901 +8101028d0200020102010002010201000102010281000288020102000201020102030281 +010201028301020002820201028102010201810201010103028101028202010282020002 +0302060183000100011301810201820102010f0185000100010001010181000105018100 +020102820102018101020102810102050281010285020102000201820102010101810001 +020186020100020001020102820100028102010101830200010201020201810002010281 +010282020001820102010101810001040181000101018402010201028402010001028402 +01020102820201028402010201028102010f018102010201020281010282020102820201 +028202010283020102010c01810201810102820201028202010201028101028102010201 +010281010201020c0181000137018100010501830001000104018100010e010102010182 +020102820201028202010283020102018201020182010200810001010181000101018900 +010001000100010201040181020109018100010201890001000100010001000110018602 +010201020102840200010001860100010001000186010001000102018501000100010001 +008201020086000201020102010901820201028102010101850201020102010101810201 +04018102010001 +010181020081000282020102820201028b02010002000201000200010201028100020102 +810102010281010286020102010201028302010201010181020183010201028202010282 +020102820201020402870001000100010001840100010001060183000100018201000103 +018100018601020102010201030181000105018100010e01020202010102010106020701 +850201020102010401840201020102840201000102010202018a00020001020102000200 +010101010294000100020002010001000200020102000100010001820100010101810001 +010101008201000291020100010002000201000200020001020100880002000201020002 +008800020001000100010091000100010002000200010200010002000200880001000100 +02000100880001000100010001008600010001000100880001000200020001008a000200 +01000102010001008100010301810001020189000100010001000100010b018800010001 +00010001008f000100010001000100010001000100010201890001000100020002000285 +020100020002860201000200010081000181010092000100010001000100010001000100 +010001008400010200010101010282010001810102810201020183020102010201920001 +000100010002000200020001020001020186010200020102018301020102810201020101 +020301810002870200010001020102010283000201028602010201020102860201020102 +010281020181010081000104018102010301830001000101018102010601830201020182 +010201030181020107018100010201 +840102010201810102840201020102040281010202028101020402830102010209028201 +020104018202010282020102820201020102810102030282010001010182000100830001 +000101018100018401000100010601850001000102018601020102010201060181000102 +018900010001000100010001010184000100010201028401020100028202010207028601 +000100010001010185000100010001010101008a01000200020002000100028102018f01 +000200020102010200010001020102830201000104018100010201870201000201020102 +890201020102000102010281020111010102810102840201020102820201028202010282 +020102830201020182010201030181000106018102018201020182010201810102010201 +018202010281020184010201020107018100010401810201030101000501810001040181 +00010b01810001050181000104018100010401810001040181000105018100011d018102 +018101028302010201820102010f01860001000200020183010201028102010b01810001 +020186000102010201028402000201028102018501020102010285020102010201010101 +020401810001070186020102010002010101880002000100020002000200840102010201 +0201810201040182020102860201020102010202020b01 +020181020181010282020102820201020102810102010284000102010282020102820201 +020202830102010202028101020202020181020101010102810102820201028202010203 +028801020100010001000102018100012001830001000115018102018201020101010202 +810102020290010201020102010201020102010201020107010102010101028101028202 +010282020102810201820102018101020202870102010201020102840201020102810201 +0b0182020102840201020102820201028702010201000201028402010201028102010901 +810001010181020182010200820002018101028302000201810102830201000181010281 +020182010001040183000100010301010003018102008400010002018301000100810001 +010181000101018100018201000105018100018701000100010001008100010101810001 +0801880001000100010001008e0001000100010001000100010001008100010101980001 +000100010001000100010001000100010001000100010092000100010001000100010001 +000100010201020102820001000100810201830102000281020184010201020109018f00 +010001020100020001000102010201810102850200020102010901810201020181000186 +010001000102018f01000100020102010201000201020102820200018201000101010100 +0d01850001000102010801810201100181000101010002 +050101020101830201000282020102020281010282020002080281000202028100020202 +820102010101010281010202028101028202010206028100018501000100010087000100 +010001000186010001000100018801000100010001000186010201020102010f01010082 +010001040186000100010201028102018201000207020501810001050187000102010201 +020187010001000102010201020401010281000201028101028202010202020301820001 +028602010201000102890201020102000102010282020100810001030181000108018202 +0102850200010201028802010002010201020183010200010c0184000100020101018300 +01020102018200020103018102010e018102018601020100020102820201020102030101 +000501830001000102018500010001000107018500010001000101010100820100010101 +820001008100010101850001000100018901000100010001000100850001000100010101 +850001000100018601000100010001030183000100010101840201020001030181000103 +0184000100010084000201000101018b0001000200010200020102018201000105018100 +010601860001000100010282020002850201020102018301020102840201020102810201 +01018102010a010102880102010201000102018501000200010001008302000200850001 +020102010b010102850102010201028302010201070182000100 +020181020101018102010101820201028202000282020002820201020302810102010283 +000201020202810102020282010201040104028101028202010203028100028702010001 +00010001020181000121018100018401000100010e010102810102810201850102010201 +0204028501020102010281020186010201020102010f0181020183010201020202820102 +01820102018101028402010201028102010d018202010281020101010102820102018301 +02010281020101010102820102010e018102010301810201030181020103018102010f01 +810201030182020102820201020102820102018201020104018102018201020111018100 +018401000100011101880001000100010001008d00010001000100010001000100018201 +000101019c00010001000100010001000100010001000100010001000100010001009000 +010001000100010001000102010201008200020001000101820201028102010201810201 +090182020002840201020102820201028402010201028202010284020102010283020102 +010801810201820100018b01000100010002010201000102018302010001860100010001 +000182010001010182000100820002010901870001000102010201060101021101010081 +0102 +030181020103018202000201028301020102040289010201020102010201020202810002 +020284000200020102018202010204028101020302810002010281000185010001000100 +870001000100010001880100010001000100018601000100010001820102018201020109 +018100010401030082010001880100010001000200020102840001000102010281010202 +020101900001000200020102000200020002010201850100010200018101000100820102 +010101830001020181010282020002820201020302010181020186010201020102018301 +0201028102010a0181000103018102010301810201040181020103018102010f01830201 +020183010201028102018501000201020181010283020102018201020103018102011201 +810002010281010282020002810201020102000d018100011c0181000103018300010001 +040183000100010201850001000100010101820001008100010101850001000100010101 +8500010001000101018500010001000182010001050186000100010001028a0200010001 +00020002000102018b000100010001000100010001820102010101010286000200010201 +028102010101010282010201830102010281020101010102820102010a01010285010201 +020102810201050182000100010081020002000b0181020101018a020102010201020102 +010281020109010000 +0c018402010200028a020102010201020102010204028100020202810002020282010201 +020182020102820201020302810102820201020102870001000100010001020181000115 +01810201090181000186010001000100010e01810201030108028401020102010f010102 +060181020185010201020102020201010402840102010201110181020103018102011101 +0102020101028201020181010283020102018101028302010201820102010e0181020181 +010282020102820201028202010282020102010281010283020102011201810201410181 +000101019400010001000100010001000100010001000100010087000100010001000101 +01850001000100018501020100020001008101028202000283020102010c018202010281 +02010101010282010201850102010200010b018100010801870001000100010002010282 +010001860102010201000186010001000100018201000101018200010081000106018b02 +0102010001020102010201070181020104018102010301810001030101000101 +080181020184010001000185010201000102060285010200020102840200020102850201 +020102018201020101010402810102820201020502820100018501000100010087000100 +01000100018801000100010001000186010001000100010f018100010401820001008200 +010088000100010001000102010283010001020802920002000200020002000200020002 +000200010082000100010085010001000100010001028600010002000102810201810100 +010081020101018300010001040181000104010100010181020101018500010200020182 +010002830201020181010083000102010101010004010100040183000100028202010285 +020100020102840200020001840102010200810002810201820102008100010101850001 +000100018601000100010002860200020001000101010100870100010001000100840001 +000201830100010002000201830001000184010001000101018300010001020181000106 +01880001000100010001008e000100010001000100010001000100810001010181000101 +018100011c018100010701840001000102830201020181010283020002008100028a0200 +0100010002000200018c0100010001000100010001000182010001030189000200010001 +00010201030181020104018102010401840201020102820201028302010201010101028a +010201020102010201000102018800010002000200010081000105018102010201810201 +01018702010201020102010101010205018300010001810100 +0f0183000102018501020102010201028501020102000282020102020288010201020102 +010001830100010204028101020302810102880200010201000100010201810001200181 +00010301850001000100010a010202820102018101028202010206020301850201020102 +011a01010285010201020102810201070181020104018102010401810201030181020109 +018102018101028402010201028202010282020102840201020102820201028102010c01 +810201010184020102010281020183010201028102018401020102010101820201028102 +016401850001000100010101850001000100010301830001000108018102018301020102 +8402000100018401020100010f018102010d018100010b01810001010181020104018100 +010101830002010282020001060181000184010001000184010001000103010100840102 +0102018c0102010201020100010001020109010102880102010200020102010101830001 +0001020182000100 +0b0186000100010001008b00020102010201020102010284020102010202028101028402 +000200018101008100018101020102810102820201028202000204028101028402010001 +008b00010001000100010001000186010001000100018601000100010001020181000112 +018400010001008700010001000100028902010002000200020002050294000200010001 +000100010001000100010001000100160081010001008701000200010001000200870100 +020002000200040002010400810200040081010001008101008200010001008501000100 +020086000200010001000200830200020004008101000300830100010001000101820001 +000100010185000100010001830100010001000101820001000100020103000201820001 +008100010301840001000100850001000100010201830001000101018100010401810001 +060183000100010101850001000100018601000100010001030183000100010201830001 +00011c018300010001050185000100010201010189020102010001000102010301810201 +01018e000201000100010001000100010002820200010101820201028802000100010201 +020102018102010301850201020100010401010283000201028102010101820201028102 +01010182020102860201020001020187010001000200010002000f010102080181020104 +0183000100010101 +0d0183000100010201880201020102010201028402010201020502830102010081000102 +0102028101028202000201028101020702810102010201018400020002011d0183000100 +010101870001000100010001010181000105018502010201020101010102810102050282 +010201810102850201020102018201020116018102010501810201030101028501020102 +01028102010e018102010401820201028102018601020102010201810102830201020117 +0181020103018102010301810201030181020103018102012f0181000103018100013201 +83000100010301830001000103018100010a018302010201040181000102018100010501 +870001000100010001840102010201010181020112018602010001000102010202018102 +010301840201020102810201070181000184010001000185010201020102810201810100 +8400010201028f0201020102010201000100010201020101018102010501010286010200 +0200020101018300010001020182000100 +0b0181000101018302010002020281010202028301020102070284000200020101018302 +000102010283000200028202010282020002040281000202028200020182010002810201 +840100010001880100010001000100018401000100010101810001150185000100010001 +0201020282010201810102820201020602830001000101018b0001000100010201000102 +010201030081020082000100840001000100010082010200020082010001890100010002 +000100010002008701000100020002008600010002000100820001000d00810100040085 +010001000100860001000200010086000100010001008200020004008101000200850100 +010001008400010001008600020002000100840001000200860002000100020084000200 +020002000201010082010001020183000100010101010082010001030101008101008200 +010082000100810001010181000106018300010001010185000100010001020183000100 +010301830001000102018300010001030181000105018100010501810001010181000186 +010001000100010101890201000100010001020101018902010001000100010201070181 +00018c010002000100010002000100020202840001020102820200018101028302010201 +820102010301040283010001028402010201020202830001020101018202010281020107 +0181000102018200010001008101008b0001000100010201020102010301860001000201 +020101018100010201820001008100010101820001008100010001 +0b01830001000101018602000201020102010283010201020a0201018200020101010202 +83000201028202010201028101020d028101028102011f01810001030182000100810001 +0a010202820102018101020a028801020102010201020110018302010201090184020102 +010284020102010281020115018102010201830201020101018302010201020181020111 +018402010201028202010282020102810201020101028101028202010201020101810201 +0f010102820102018101028102011b018100016001830001000107010102880102010001 +000100018101028302010201030182020102010281010282020102820201028202010282 +020102030281010202020201830201020102018502010201020181010201020301850001 +020100018301000102850200020102008100010101010201010102860002010201000104 +0181020103018c000200020001020102000200010201830001000102010000 +0f0189000200020102010201020502010101028100020202820102010301810002840201 +020002040283010201020102810102030281010201028101020102810102810201880100 +010001000100018601000100010001160181000182010001020181000101018202010282 +020001830102000201028100020202960100010001020100010001000102010001000100 +010200010082010001010185000100010001860100010001000101018200020081000101 +018500010001000189010001000100010001008200020001008101008200010007008101 +000300810100040085020002000100860001000200020086000200010001008100018101 +000200020102008201000181010001009002000102000100020001020001000200028102 +000100820100018101008200010081000108018102010201810201810100810001060182 +0001000300810100810001010181000106018a00010001000100010001008f0001000100 +01000100010001000100019f010001000100010001000100010001000100010001000100 +010001000100010085000100010002850200020100028802010001000102000183010201 +020102020186020102010201028102018101028202010282020002820201028202000186 +010002000200010101020202018302010201010183020102010101830201020184010201 +000182010002850201000102010401810201090183000102018701000100010001008800 +010001000102010281020104018200010082000102810201810100810001030183000100 +01010181000182010001 +0b0102000201040283010201020202810102090201018102010101820201020602810002 +04028100020602810102030281010281020101018102010c018302010201070181000103 +0183000100010a018102018201020101018202010206020d01850201020102010b018102 +010501830201020105010102090185020102010201840102010201030183020102018601 +020102010201110183020102018301020102810201830102010282020102820201028102 +0106018102010a01810201020104028101028202010204028101028102010e0183020102 +010501810001530181020103018102010101010201009b01020102000200010001000200 +010001000100010002000102010201030181020103018102010301010283010200028202 +010284020002000282020102840201020102870201020102010201820102010601850001 +00010001850102010201028102018301000100820001028b020102010200020102010001 +03018500010001000102018c000100010201020002000100018401000100010301 +0f018100020602810102060281010282020102020281000104011d028101020202810102 +01028501020100020103018100010a018100011501030201018202010207028401000201 +028502010001000182010201820100010401010082010001050181000104018100018101 +028102010101810001820102018601020100010201020183000100010201830001000102 +010300820100018901000100010001020100840001000102860200020001000186010001 +000100018701000100010001028102008100028102010101810002850201000201000100 +890200010200010002000286020002000102018601000200020002820200020102830002 +010083000100010101810002810201810102830200010081000101018100010201820001 +0082000100820001008100010a0102000201850001000100018601000100010001010182 +000100010003018300010001010182000100010002018200010003008b01000100010001 +000201020001008502000201000285020002000102810200830001020102018200020102 +0181020107018b0002000200010001000200028202000283020102018101008100011201 +830201000189010001000100010002010301810201080183020002010301830001000187 +010001000100010281020183010200010401010081010281020181010081000105018100 +01030182000100 +090182000100010084010002010203028301020102070281010287020102010002000101 +010202810102820201028202010208028101020102810102010281000204028101020202 +81010202028401000100010c018100010501830001000102018300010001040103020201 +03028101020102820102010201830201020101018102010b018200020115010102060181 +020104018102010a01810201030181020103018102010201010281010282020102840201 +020102030281010203028101028102010301810201020102020101820201020502810102 +010283010201020102830102010281020181010283020102011d01010081010081000102 +01010018010102390182020100830002000281020183010001028e020001020100010001 +00010002000105018102010601820201028102018a010201020002000102010282020002 +840201020102840201020102020281010282020102810201820102018101028602000100 +010001830102010283020100018301000100810001840102010201050183000100010201 +0100820100018f01020100010001020102000200020001820100010501 +090181000101018a00010001020102010201028202010201028101028402010201028202 +010281020101018102010101820201020102810102030281010282020102820201020302 +8100020102810102020281010204028101020402810102010282010201820102011e0102 +020301060281010201028201020119018102010a01850001020102018401000200010201 +830001020103018800010002010201000183010201028102008600010002010200830002 +000282020100810002850201020100028302010201860100020002000282020002040285 +000100020002820200010101010204008101000200850100010002008600010002000100 +020081010003008101000400860100010001000102018500010001000184010001000102 +01810001010102008201000108018102018101008100018a010001000100010002010202 +028900010002000100010001020188000100010001000100810001850100010001008100 +018601000100010001010182000102820200018301020102850201000201028402010001 +008200020101010102010001018102010301830201020101019002010002000100010002 +010001000100011701840200010001880102010002000100018201020101018102018201 +020182010001010101028200020103019300020002000201000100010201020001000100 +010201840001000102820201008400020002010b01 +0b0101000101010281010206028101028202010201028101020302830102000104010202 +810102820201028202010204020200830200010202028101020102810102040281010205 +028100028302010001140182000100810001820100010101010001010102010184000102 +010204028100020102870102000200020001010185000100010001010182000100020082 +010001840100010001890100010001000102000187010001000200010202028300020102 +840201020002860201000102010282020102830201020083000201020902810002820201 +028702010002010201028202000201020301820002010301810201030182020001010183 +02010001010183020102010301810201030181020103018102011c018100010501010081 +010082000100820001008100011501020202018102018201020127010102020102020201 +830002000102018102018501000100020102018900010001000100010001050181020103 +018102010301810201020101008402000100018401020002010201010202018202010281 +0201810102020281010286020102010200010c01820001008100010a0101000301830201 +0001040185000100010201020183000200010801 +090186000100010001020202810102030283010201028202010202028100020202010181 +020102010f02060184020002000202028100020202810102060281010203028201020108 +0181000105018100010c0186020102010201020502840102010201080101028201020107 +018902010201020102010201820102018201020104018102010201020281010202028101 +020402810102840201020102810201020188020102010201020102810201020183020102 +010301810201030181020103018102010301810201030181020110018102010801820201 +020102810102820201028202010282020102010201018302010201010101022401810201 +09010202010182020102010203018100010c018100010501810001050181000105018200 +02010301810001060183000100010201820200010f018700010001000100018601000102 +010001830100020103018102010301010203018102010201880002000102000200020102 +830100010201020101810001050186020102000200010201910002000200020100010001 +020102000100010401820001008200010283020001008400020102010901 +090181000182010001890102000201020102010202028301020102840201020102820201 +028502010001020101010402810102820200028202010202028101000100820100010201 +080281000204028101020502810002810201100105000101050081010201028400010201 +020702970102010002000200020001000100010001000100010001000500810200120082 +020002820201008e00010200020100010002000100010283020100018201020082000200 +82000200820002000100850100020001008a000100020001000100020088000100010001 +000100860001000100010002008301000100010083010002000200840200020100010083 +020001028102008300010001010184000100020181010086000200010001008500020002 +000181010281020107018100010601820001008100018301000100810001120181020101 +0182020102810201810102010230018102010c0101028100010301870001000102010001 +830100020102010102040181020103018102018101008500010201000182010002810201 +830102010281020101010102820102010101830201020181010203020301810201010181 +000105018502000100020108010100850200020102018201000104010102820100010201 +83000100010801 +09018d000100010002010201020102010286020102010201028202010284020102010281 +020101018102010201040281010282020102820200020102070101000601020201011002 +08010100820100018401000100010c010102850102010201028202010207028201020183 +010201028502010201020115018302010201870102010201020102860201020102010286 +020102010201028402010201028302010201120102028101028202010284020102010282 +020102820201028402010201020102840102010201050181020102018102010301830201 +020181010281020181010283020102018101028302010201810102010201018202010201 +028201020115010102010181000181010081000182010201080181020108018100020802 +0a0181000105018100010301830001000103018300010001030183000100010b01010004 +018102010301810201040181020181010282020102820200028202010201020101820201 +028502000102000204028101028402010201028202010284020102010284020102010287 +020102010201000102010102820102018101028102018501020102010284020102000102 +018c00010002000201000100010201020181000101018102010401820201028502010002 +0002830201020101018102010301 +0d0181000282020002820201020102810102010281010203028101020202860102010001 +020101018202010202028101020102810002850200020001000100820100010201010082 +010001860100020102010201028101020302810102060281010201020b01020081010084 +000100010082000100810002010285010201000102850200010201020202920001000100 +010001000100010001000100010081000181010004000101820001000400810100840002 +0002008200020001008502000100010002008b0100010001000200020002008600010001 +020100030081020082000200010085010001000100880001020102010001008500020001 +000284020100010086000200020002000200830100010001008301000200010001028100 +028102000100820200028302010002010288010002000102000200810002830200020002 +008601000200010001040101020201810001080183000100010101810001090181020182 +01000105010202810102010281010282020102820201008100010a018100011801840201 +02000281020181010201028200010284020102000181010201028d000102010201000102 +010002000183010001028702000200010200028202010282020102020201018400020102 +018501000200020101018302010201020101028300010201810102010201018200010201 +028100018401020102010101810001960102010200020001000201020100020002010201 +00010084000201020108010102040183000100010801 +070188000100010001020102030281010204028101020202810102820200020102820102 +010201820201020e02060101000601830002000181010201028100020302810102070281 +01020202020181020104018100010b01820201028102010101010281010207028c010201 +020102010201020102011b01010203018202010286020102010201020402860102010201 +020101018302010201020101028301020102820201028202010202028101028402010201 +028202010282020102010201010202820102018101028602010201020102010281010282 +020102820201028202010281020183010201028102018301020102810201810102810201 +160101020101010208018202010282020001010101008401000102011201020202010102 +81010202028101028102011d018100010301830201000102010102840100020102820201 +020302810102820201020102820002010101020281010202020401840201020102810201 +010101028201020181010283020102010101010286010200010201028102018301020102 +010201018202010283020102010201020202010102820102018401000200018201000102 +018500010002000184010001000104018100010101810201040181020186010201000200 +02830201020102018102010201 +0c0101008202010201028101020402810102020281010282020102020283000100010101 +840201020102050281010203028700010001000100010201010082010001830100020084 +000102010209028301020102060283010201020202020185000100010001030181000101 +018702010002000201028202010206028d00010001020102010001000102010101830001 +000102018b00020002010201020001000102018300020002860201020100020082000201 +83010001008d000201020001020100010002000286020001000100028102008200010001 +008602010001020002810201820102000100850201020002008100028e02010002000200 +010200010002000282020100860001000100010001008101008400010001028102008800 +010001000200010088000100020001000200880002000200010002008900020001000200 +010001120184020100010001008202000281020107018102010801030201010402020101 +000901810001020182000100010090010001000100010001000100010001000202028201 +0002010283000100028502000100020104010102810001010181020101018c0001000100 +02010001000200028102018a010001020100010001020102018300020001010182000201 +030181020104018100018601000200010002010202018402000102010201890001000100 +01020102008700020001000100028f020002010201020100010001000102010801010204 +018300010001820100010501 +070188000100010002010002060283010201028202010202028100028202010281020101 +01810201010104028101028202010205020601830001000108018202010205028101020e +028101020102810102010282010201820102010801820201020102830102010207028201 +020114018702010201020102010a01040201010202850102010201028102010301010203 +010202030101028301020102820201028402010201020202810102010204018102010c01 +820201028202010282020102810201020101028101020102810102820201028202010281 +0201120184020102010282020102810201030101028101020102080183020102011e0102 +020201810201810102820201028102012401020281010282020102820201020302010003 +028101028202010284020100020102018102010301810201040101020401810201010181 +000182010201010189020102010200020001028302010201830102010281020182010201 +010185000200020001850102010201008100010401830001000101018100010201840200 +010001860100010001000105018102010501010285010201000100830002010281020182 +0102010301 +090183000100028202000201028501020102010204028101028202010288020102000200 +020001010103028101020102810102010281000201028801000100010001000102010100 +8401000100018401000200020302030103028101020602810102070281010202028c0001 +000100010001000102010201028401000100020802810002880201020100020002010101 +8302000201050101000f0181020181010281020102018402010201028602010201020102 +820201020202820102018201020103018100010301820201028202010284020102010282 +020102820201020502810102820201028402010201028102010201810201030181020101 +018500010002010202028200010201028401020001028202010282020002010281010282 +020002810201840102010001040181000182010001010181000108010102820102018301 +000100010082020002810201070181020108018102018101020102830102010201028101 +028102010a01010081010082000100050097010001000100010001000100010001020100 +010002000100040001010100020185000100020102810201010187000200020002010285 +0200010001028d0201000102010201000102010201840100020001090181020103018100 +018601000100010001820102010101010081020103018800010001000102010282020100 +8500010001000283020001028b0201020102010001000102010901820201028102018101 +0282020001820100010501 +070183000100010101810002010281010201028101020202830102010282020102820201 +028602010201000201020106028101020102810102010206010100820100010901040282 +010201020101028101020502810102060281000282020102040209010102020181020183 +010201020402030101020101840201020102810201820102010401870201020102010201 +820102018501020102010282020102010282010201070182020102010281010284020102 +010288020102010201020102820201020302830102010282020102820201028102018301 +020102810201010182020102820201028402010201028202010282020102820201028202 +010281020102010102050183020102010901010281010282020102820201020102810102 +8202010201028101028102018201000103010102820002010e0181000102018102010701 +81020108010b020401810201210105028101028202010282020102810200810002010282 +000102830201020102018202000108010102830102010282020102840201020102820201 +028402010201028402010201028202000283020102018301020102820201020102820102 +018101028102008400020002010101890001000102010001000105018200020102018300 +010001860100010001000101018502010201020106018102010101820001008100018401 +020102010501 +070186000100010002018101020602810102010281010204028601020102010001040108 +028101020302860100010001000102010100020183000100018301020002010281010281 +0201050101028100028202010282020102050201010b0201010100830102010201020100 +810102060281010286020102000100010301830001000103018300010001870100020002 +010001020181000101010102010101028100020102820002018201000183010200018201 +000283020100018301020002810201010182020001020183000201008100028202010284 +020002000287020102000200010283020102008100010301830001000102018300010001 +810102840200020001020186020001000201028202000203029401000200020002010201 +000100020100010001000101010100820100018401020001008100010501810201070101 +0201018800020002000100020113010b0204010102070102008301000100820001008400 +01000100820001008f000100010001000100010001000100010101020085020001000200 +830002010286020100020100028102010101820201020102820100018e01000100010001 +000100010001000104018500010201020102010102030183020102018201000202028401 +020002010101830201000281020102018102010401820201028102018201000185010200 +0201028b0201020102010201000100010c0101028100018701020100020100010501 +0c0181000203028501020102010202028101020302810002830201020182010001020101 +028101020102810102820200020102810102810201050101000a01820201020102810102 +810201030186000102010201020102810001810102040281010205028101028402010201 +02820201028202010201028201020181010209028c010201020102010201020102010101 +8102010d0182020102810201010181020101018302010201070182020102850201020102 +018601020102010201820102010f01820201028402010201028202010282020102840201 +020102820201028202010282020102820201028102011101010201018202010281020181 +01028202010282020102030281010202028101020202010102020201810201030101000c +010102010082020102010208018102010901050282010201280182020102820201028202 +010282020102010201018302010001820102010101830001020103018700010001000102 +010301830201020101018402010201028102010101010205018900010001000100010001 +0d0181020081000189010201020102010002000200040101028201020103018102009000 +020102010001000102010201020102010101810201030101020201820001008300010201 +0601 +070187000100010002010201028101020402810102020281010203028600020001000201 +010105028101020502820002018601000100010001020101000201830001000182010002 +020281010281020105018400010001008100010201820201020202810102070282000102 +050288010201020102010002040281010201029101000200010002000200020001000100 +020090000100010001000200010001000100010081000182010201810102850200010001 +008500010001000101018200010081000101018700010001000102018401000100010201 +850001000201028402010200028302010201820100010401810001040182000102810201 +010181000281020101018202000282020102810201810102840200020002060285010201 +020102810201810102810201090101028101020102810102820201020102810102820201 +028102010601020282010201010181000101018500010001000115018202010281020101 +018102010101010283010201028102012101810201820102018101020102010101028300 +02000203028101028602010201020102810201030181020101018d000100010001000100 +010001000182010001010101020301010203018302010201010182020102830201020084 +000200020187010200010001000101018102010d018102010b018100010f018602000200 +02010283020100010501 +0b01810002050285010201020102080281010285020100010201010101028101020b0206 +018300010001080182020102010281000281020104018500010201020182010201020184 +02010201028202010202028f01020102010201020102010201020102830201020101010a +0202018102011d0181020103010102020181020107018102011301810201020101028201 +020101010202010104028101020102830102010202020101820201028102018101028102 +010801820201028202010282020102040281010282020102820201028202010282020102 +01028101028102010a018100010701810001010182020102810201020184000100020084 +00020100020102020181020102018102010c010202270184020102010283020102010101 +810201010183020100010501820001028202000201028101028202010201028501020102 +010281020181010283020102018101028302010201810102010205018c00010001000100 +010001000102810201830102000283020102010101850201000100010101840201020100 +820002008200020101018402010201028102010301820201028f02010201000102010201 +0201020102010101810201030101020401010001018100010501 +820102010201880001000100010201020102810102010281010202028101028402010201 +020302840100010201010182020102010281010201028101020102810002820200018601 +000100010001020101000701060205018702010201000100010401020281010202028101 +020102810102090281010201020201070281010201028600020102010201840100010001 +030101000201870001000100010001010182000100810001030186020100010001008a00 +010001000100010001008800010001000200010088000100020001000100860002000100 +010088000100010002000200860001000100010086000100020002008600020001000100 +860001000200020084000200010086000100010002008600010001000100840002000100 +860001000100010086000200010002008400020001008600010001000200890002000200 +020002010283020102018301020100820002018201020101018100010101810001010181 +000102018502010201020106018102010701820201020102010181020181010201020201 +010219018202010201028101020102010102020101010281010201028100020102060181 +000109010102840102000102010284010002000285020100020102810201830102010281 +0201810102830201020183010201008100010401820001008100018b0100010002000100 +02000201020181020101018100010601810201120181020107018a020102010200020102 +01028102010501 +020181020106018700020102010201020902810102820201020202830100020102010202 +810102010281010205020701830001000104018400010001028202010203020701810001 +07018202010282020002810201010102028101020c020301820201020302840102010201 +82010201010181020101018102010d018102010d01810201160185020102010201020183 +020102018301020102820201028402010201028202010281020101018102011101810201 +810102830201020103018102018101028302010201810102830201020181010284020102 +010281020102018102011101010283010201028102018601020102010201810102810201 +830100010081000181010002000101830201020114010202020182020102820201020102 +810102810201200186020102010201028102018101020102010101028100020102810002 +820201020102850102010201028502010001000115018900010001000100010001010181 +020183010001008100018201020101018102010101810201020102028600010002010201 +0301010282010201040101028100028b0201020102010201020102010301810201040101 +02020186020002000200010501 +820102010101810001850100010001020802810102820201020202810102050202010102 +010101028101020202810002820201020202810001860100010001000102010100070182 +020102030205018602010201000201040182020102030289000100010001020100020a02 +820002018101020202820002018101020102810001020101008201000101018500010001 +000101018a00010001000102010001008100010101810001010181020186010201020100 +01010185000100010001890100010001000201020083000100010301010002018c000100 +010002010201000100028702010200010001028e02010002000201020100020001020184 +010002000102018300010001020182000100870001000100010002830201020081000283 +020102018a01000201020102010002018601020102000102010284010200010285020001 +02000104018300010001050186000100010200020b0202018102010b0102020201010212 +018100010501810001040181000101010202840100020001870102010200020001020182 +02000107018100010d019102000200020001000200020001000102000184010201020102 +018302010201010182020100810001010181020184010001020087000102010201020101 +018202010283020001000100010181000183010201028102018201020101018102010501 +89020102010201020102010701860201020102000103018102010501 +84010201020104010100060281010202028101020a028300010001020102028101028202 +010201028101020202070101008201000106018400010201020102810002810201020185 +020102010001820102010401820201020302080105028101020302010182020102020283 +010201020102010185020102010201010183020102010a01810201060183020102010101 +020215018102010101010205018102010201830201020103018200020103018100010601 +830201020181010283020102018501020100020185010201020001030181020183010201 +028102018201000104018100010401810001060182020102820201020102810102820201 +028202010201028101028202010281020101018202010201020301010001010300810102 +070210010902810102820201020102270101028101020102810102850201020001028202 +010285020100020102830201000186010001000200010c01810201030184020001000202 +028701000200020102018101028a02010001000201020102018101028102010101830201 +0201840100010001110184020102000282020001130101028701020002000200010501 +820102010201830001000189010201020102010201020202830102010203028101020302 +030181020181010203028101020802810001840100010001030183000100010401820201 +02030282010201080181000105018202010202028a010201000100010001000206028701 +00020002000102020281000204029d010001000100010001000100010001000100010001 +00010001000100020087000100010001000102018e020102010201000100010001000100 +880001000100010001008a00010001000200010001008600020002000100880002000100 +010001008600010002000100860002000100010086000100010001008600010001000100 +860001000100010086000200010002008400020002008600020001000200860002000100 +020086000200020001008400020002008600010001000100860001000100010083000100 +010201820002018701000201020002018701000102000201028202010203020301030282 +0102010b01070281000104018e0201020100010001000100010001009000010001000100 +010001000100010001008700010201000200028102010101810001030181000105010102 +0c018202010201028a010002000102010002000288020001020102010201090182000102 +83020102018b010201020100010001000201070186020001000200018201000188010201 +020102010201010101028701020102010201028702010201020102018201020105010102 +0301810001010183020102010301 +010205018300010002070281010202028301020102030281010286020100010002010101 +820201028202010201028101020502060101008201000107018202010204020401810201 +860102000201020105010402820102010901020201010202820102010101010201018202 +01020402030183020100011e018702010201020102010c0181000119018100028a020102 +000100020002010282020102820201028202010284020100010285020100020002860201 +02000100010a018302010201010186020001000201028502000200010282020102010281 +010282020102830200010282020102810200810002820201028302010201010181000107 +0181000101010100810102010206010202820102010b0108020101010282010201200181 +02018301020102810201830102010281020183010201028c020001000201020001000201 +008100018201000286020100010201028102018301020102810201810102830201020181 +010209028101028402000201028202010284020102010287020002010201000281020101 +0183020102018401000102010c0181020105018100018201000109018102010701010285 +01020102000281020102018102010001 +810201030181000101018402000200020102830102010282020102020281010205028201 +020101018102018101028202010282020102090283000100018201000102010100820100 +010401810002020281010281020103018102018401020102010701030285000200010001 +010185000100010001010184020102010285020102000102020281010205020101850001 +000100018801020001000200020189010001000200020002008900010001000100010001 +020183020102010301020083010001008800010001000100010088000100010001000100 +880001000200020002008800020002000100010086000100010001008600010001000100 +860001000200020086000200020001008600010002000200860002000100020084000200 +020086000200010002008600010001000100860001000100010084000100010086000100 +010002008600020001000100890002010201020100020101018602010200010201010101 +00870102000100020002810201050102020d010502810102810201010182020102900201 +020100010001000100010001000100900001000100010001000100010001000100910001 +000100010001000100010001000100010301820001028102010101010282010201010182 +02010282020102840200020102820201028402010201028402010200010d018300010001 +060187020001000100010202028201020181010202020100840100020001860102010201 +020103010102850102010201028902010201020102010201070182020102810201070181 +02010301 +010202018100018601000100020102030281010205028101028202010289020102010201 +000200010101060281010201028101020202060183000100010a01030281010281020105 +018500010001000104018202010204020d01840201020102010202018102018101020202 +810102820201020102020185020100010001010185000102010001010187020102000201 +02010a01010281010281020101018100010a018300010001040181000101018100028402 +010201028402010201020202930002000102000100020002010200010002010201010182 +0001008a00010001000100010001008800010001000102010281020183010200028b0201 +020001000200010002008900010002000100010002010285010002000200860001000100 +020002008102010201810201010181000106018402010201028302000102820201028102 +0104010302060181020103010602080101021e0182020102820201028202010282020102 +820201028202010282020102820201020302810001820100018801000100010001000102 +018900010001000100020002820200018101028702010200010200028102010101010282 +010201830102010281020101010302810102020284010201020102010100810201050184 +020102010281020106018100018401000100010701810201080188020102010201020102 +810201820102010001 +010207010702810102040281010203028101020202020181020101010202810102050281 +010202028401000100018201000101018500010001000104010302810002010205018502 +010201020106010202010001028100010101810001010181000105018202010201028501 +020102010201028101020302810102890201020002000201020184010001000103018500 +010001000183010001000100010184020001020101010202850100010001008200010090 +000102010001000100020100010001000101010100820100010101820001008900010201 +0002000200028d02000200020002010002000100019a0100010002000102000200010002 +010002000100010200010001008400010001008600010201000200810001010182000100 +860001020100010082000102830200020081000282020100840002000201820100028102 +010201020203010102050101000101020001020901010206010102010101028101020702 +81010201028201020101018102018d010001000100010001000100010094000100010001 +000100010001000100010001000100930001000100010001000100020001000200020001 +830102010281020103018202010286020102010001028102010201010202018302010201 +0101830201020101018f0201020001000201020002010201020101018100010301820201 +02010283010201020302840001000102810201080186020102010201028b020102010201 +02010201020108010202040183020102010501 +820102010201850001000100020202810102040281010202028101020302870102000102 +010001010105028101020602050185000100010001090103028101028102010501830200 +020081000106010402820102010d01820200028802010201020102010206028100020402 +81010203028101029002000100010001000200020002010200010a018402010201028602 +010001000201010182020102890200020002000100010083000100010201010283010201 +028402010201028d02010200020102010001020102018601000100020001020183020001 +008200020187010001000200010081000283020100018101028102010201840002000100 +880001000100010001008900010002000100010001020184000100010086000100010001 +000100810100810001050184000102010284020102010201028101028202010083000201 +028102010601010203010602010106020401810201010101020a01810001050181000109 +010102810102050281010201028101020102850102010201020102810102860201020102 +010286020001000200018c01020100020001000100020001850100010002018501020001 +020183010201020502810102030281010286020102000100020202010183020102018401 +000100010501840201020102810201030181020182010001830100010281020101018302 +010201820102010501010201010102040101020401 +080182020102040283010201020202810102020281010201028201020101018102010101 +010281010201028101020702850001000100010401850001000100010201820201020502 +110182020102010282000201860100010001000108018202010202020301010281010204 +028301020102820201028102018301020102820201028102010401850201020102010201 +85020002010201820102018101028b020102010001000100010201040181020110010102 +830002010201028101020302030101020301010203018302000201010181020110010100 +820100010201010202010102810102820201028202010285020102000102010284010002 +010286020102000201028202010204028101028102010201810201820102010301010083 +020100018101028502010201020106010102030101028101020102810102040281010201 +028301020102010281010201020301850001000100010101820001008100010101850001 +000100010101850001000100018e01020001000100010200010002000282020102820200 +028302010002040281010204028101028202010201028101028202010282020102010281 +010282020102820201028202000281020188010001000100010001060182000201010182 +020102010201010302820001028202010001000a01810201010185020102010201020181 +02010e018302010201010101020701 +820102010201850001000201020302810102020283010201028202010282020102010281 +010283020100018301020102820201028202010201028101020402010181000101018500 +010001000108018202010203028201020104018300010200810001050103028101020102 +060181000105018102018101028602000200020002030281000201028400010201020302 +810102030292010002000100020001000100010001000102010801870201020102000100 +020004018800010001000100010085000100010001820100010701820200010201830201 +020101018102010301810001090181000104018100018201020101018100010301820201 +028202010202028300010201020181020102018302010001010181020102018102018301 +020102810201810102820201008f00010200020001020100010001020001010103028101 +020102020001028101020102050182020102820201028102010301810201810102030281 +01028202010281020181010281020101018102011c018402010201028202010201028101 +020102810002010282010201010183000102010101810001020187000100010001000185 +010001020102010281010282020102820200028202010282020102010281010282020102 +8202010284020102010201028a0102010201000200010001010181020101018202010284 +020001000101018b02010201020102010201020103010102870102010201020002830201 +02018401020102010501830201020182010201030183020102010201 +070182020002010281010282020102010281010284020102010206028100018201020182 +010201810102020281010282020102050281000102018100010301850001000100010301 +840200020002010207018102018101028102010401810002030283000200018301000100 +810001060183000200020102820102018101020802060104028101020102040101028101 +028302010201030181000102018102018101020102010182020100850001000100010301 +810201110185000100020001020183000100018601020002000201050182000201010183 +000102010301820200010101810201030181020102010100820100010301810201030181 +020102018302010201010183020102010101010203018302010001830102010083000100 +010301810001030101020301010201008401000100020302080101028101020102040107 +028101028102010601010220018102010201010202018302010201010101020201010281 +000201028101020102810102820201020102810102830201020114010100830102000285 +02010002000281020184010201020182010201820102010701010281000181010003000a +018102011c010202010182020102850201020102010001 +0201810001860100010002010286020002010201020b0281010281020082000102810201 +010102028101020102810102060201018100010101850001000100010901050207018500 +010001000105018202010203020e01820200020202010181000208020201860001000102 +010282020102820201020102810102830200010282020002870201000100010001030181 +020102010202010107008201000201028600010001000100850001000100010a01810201 +0201010201018100010f0181020103010102030101020201810201030181020102018202 +010281020182010201810102010201018302010201010183020102010101010203010200 +810100880001020100010002010101010082010001830100020105018100018501000100 +02010a010102010181020104018202010204020101810201060101020f01810001200181 +000104018102010301810201020181020102018b00020001000200020100010285020001 +000102810201010181000281020110018500010001000106010102840100010001030189 +020102010201020102010301010289010201020102000201028302010201820102010501 +820201028102010c01 +840100010001820100020502830002010282020102020281010203028101028302010201 +020181020181010205028101020102810102010204018100010401830001000187010001 +00010200020302080186020001020102010301830002000203028100018101008d000100 +010001000100010002010202028300020102060289010201000102010201020602010181 +020181010201028101028202010281020103018102010201810201010181020101010102 +01008401000100011401820001008e000100010001000100010002010201010182000100 +880001000100010002008700010001000200018601000100020001860100020001000182 +01000181010084000100020101010202820100010401810001040181000104018100010a +01830001000182010001090181000102018100018401000100028102010a010102810102 +8102010401810002020282010201010181020102018100010e0181000103010100040183 +000100010501810001120101008102018201000102018700010001000100011301830001 +02018c010001000200010001000100010701810201820102010701810201830100010002 +000201870201020102010201820102010f01830201020109018402010201028102018101 +028102010201 +070182020102010281000205028101020502810002010285000100010001010102028101 +020202810102820201020202810001820100010101820001008100010801820201020302 +080185000100010001060104021101010282010201020101028101020402860102010201 +020102010102810102840201020102820201020402820102010801810201010181020104 +010100840100010001180101020301830201020183010201028102010201830201020131 +018100010401810001040181000103010300820100018201000101018200010083000100 +018301000200810001080181000105010102030101028401020102010401050282010201 +020181020102010202010181000103018100011c01810201030181020102018702000100 +0102010281020182010201020181020103018702010001000102018a0100010201000100 +010201190182000200830001000103018102010201810001040182000201080181020181 +01028d02010201020102010201020102010b010102090101020101 +850002010001000200080283010201028402010201020402040181000181010201028101 +020502810102030204018100010401830001000186010001000100020302820102010601 +810001080182020102030291010001000100010001000100010001000102020281000182 +010002040281010202028900010001000100010002010281000284020100010282020002 +830201000287020100010001000107018102010201920001000100010001000100010001 +000100010087000100010001000101018400010001009100010001000100010002010001 +000100010088000100010001000100860001000100010088000100010001000100860001 +000100010088000100010001000100840001000201010183000100010401810001040181 +000104018100010201810200820001008200010002000401840200010001010181000181 +010201020101830200020182010201810102030282010201830102010201020501810002 +03028201020102010102020102021c018102010201810201120102000101810001020187 +000100010001000116018b0001000100010001000100010c018102010701810201810100 +850001000100018301020102850201020102010301840201020002810201860100020102 +01028102018201020107018a020102010201020102010281020182010201 +020282010201810102050281010202028101028202010282020102050283000100028102 +018101028202010205028101020302820100018701000100010001008100010701820201 +020202810102810201060185000100010001040182020102030210018202010281020183 +010201020802880102010201020102010101020204010202810102010201010102030181 +020102018102010301810201020182000100010023018302010201200181020102018102 +010301810201010101020401810201020181020102018102010301810201020181020101 +018300010001060101008101008300010001020101000201810002010287000201000201 +020181010282020002030283000201028302010001030181000202024201810001020101 +020e01810001910100010001000100020001000100020100010101810201030181020103 +018102010301810201010101028300010001860102010201020188010200020100010001 +8201000107018102010801810201120101020201810201030102020001 +020287000200010002010204028101020202810102030281010201028201020101018400 +01020102080281010204020b010100020182000100810002020281010201020701810001 +820102010501820201020302040101000101880001000100010201020202840001020102 +040281010201028c01000100010001000100020002870201020100010002010281000201 +028800010201020100020107018102018101009200010001000100010001000100010001 +000100870001000100010001010182000100880001000100010001008a00010201000100 +01000100880001000100010001008f000100010001000201000100010201008600010001 +000100880001000100010001008600010001000100860002000100010086000100010001 +008600010002000100810002820201008600020001000100820001000100820200010201 +030086010002000100020102030101028100010101010202018202010281020181010289 +02010001000100010002020206018100010201010283010001008e000100010001000100 +0100010001009d0001000100010001000100020001000102010001000102010001000200 +010101810201840100010002010283010002010101880001020100010002010301810201 +0f0189000100010001000100010101810201030181020184010001000282020001020183 +020102010301890201000100020102010285020102010201040102029001020002000201 +0201020102010201020105018102010101810201010182020102010201010002 +850102010201028202010201028301020002020281010203028101028202010202028401 +020100018201020181010202028101020202810102030282010001870100010001000100 +8100010801030281010201020901830001000104018202010203028401000100010a0104 +020201020283010201020302090101028401020102018201020181010281020183010201 +0281020109018102010101810201030101008101008100012f0181020102018102010301 +830201020101010102030101020201830201020101010102020101021901810001030181 +000106010100810100810001040101000201010282010200820001028102018301000100 +010081020082000200820002008200020082000100840001000102010282000201820102 +010201810201010101023301820200010101810201020181020182010201820102018201 +020190010200020100020001020100020001020182010201820102018401020102010101 +810201810102850201000100028102010301810002010282000102820200010101840201 +020100010082010001820100010701810201150181020106010202860102010201020181 +01020102 +030285010001020102090281010282020102820201028202010281020182010001830100 +0102090281010203020a0182000100810001820100018101008100020502080181000107 +0101028101020202050101008201000186010001000100020302830001000209028a0102 +010001000100010002020284010201000101018300010002870201000200010001010181 +020108019200010001000100020001000100020001000100890001000100010001000182 +0100010a0181000106018102010a01010281010201028101028202000282020102010281 +010282020102010288000200010002000102010282000200860001000200010086000100 +010001008600010001000200810001840102000100840002000100820002000100810100 +840001000100020088010002000100020002010283010002008400010201020302810102 +02028b010002010001000100010002820201028102018101028102010101810201040184 +00010001008e0001000100010001000100010001009b0001000100010001000200010001 +000200010001020100010002000104018400010001028302010001020185000100010001 +820100010601810201830102010282020102010281010282020102820200028202010285 +020102000102840201020102820201008300010001820100010201830201020102018602 +0001000100010201010284010201020104010102820002008c0002000201020002010201 +0201080101020301810001010102020101 +840201020102870201000200020102820201020302830102010282020102040282010001 +810102810201810102010281010203028101020402840100010001830100010081000108 +0184020102010202020b0183000100010301820200020302850001000100010a01030282 +010201010101028101028202010281020101018100018101028102010201020206018100 +010201810201810102810201030101020401830201020103010100810100870002010201 +0201028102010e010100880100010001000100018c010001000100010001000201028202 +000282020002860201000100010082000201020189000200010200010201008500010201 +020181010285020002000102010201010102830102010283020102018101020102010183 +020102018201020182010201810100820001008200010082000100830001000101018102 +010101010002010102820002000100860201000200010082000200010081020082000100 +8200020082000100840001000102010281000102010102050183020102011a0182020102 +020281010201028101020102810102010281010201028101028202010202028101028202 +010201028101028202010201028101028202010201028201020182010201070181000104 +018400010001029602000100010002000100010201000100020001000200018601020002 +010001820100018301000100840001020102850200020002010201820200010a01830201 +0201830102000182010001030187020001020102010281020182010002 +030283010001020202810102050281010206028101028102018301020001840100010002 +82020102040281000204020a010100820100010301860200020002000281020106018300 +010001070182020102030205010100840100010001850100020001028602000102010002 +0802810001010189000100010001000100028502010001000101018b0001000100010001 +020100018201020103018102018101020102920102000200010001020100010001000100 +010089000100010001000100018201000114018202010204028101028202010282020102 +010201018202010281020182010201820102018201020182010001010183000100018201 +020182010201020183020102018401020102010101010202018802000201000200020184 +010201020101010102010182000200820001008300020001010183020100028202000201 +028701020001020002008400020001020202010001020101010081010082000102010201 +000102810102020281010202028101028102010201810001050185000100010001020181 +000103018100010501830001000101010202820100028202010201028100020102840001 +020002010281010201028101028202010282020002010281010282020002010281000282 +020102820201020302810002030202018a00020001000100020001000100880200010001 +000200018701000100020001000100860100010001000186010001000100018501000100 +010084000200020087000200020002000188010001000100010001890100010002010001 +000182010001840100020002 +010281010283020001020c02810102820201028202010202028301000201020108028101 +028202010201028500010001000183010001008100010901010281010203020a01010005 +0182020002030285000100010001080182020102020203010a0284010001020104010202 +820102010201810001030185020102010001010181020182010201010181020185010201 +020102850200020002008700020102010201028102010e01010087010001000100010088 +000100010001000100830001000201028b000102000200010002000200820001028e0200 +010002000201000102010200018301020001020186000200020001008600010001000100 +860001000100010085000200010002820200020102820102000200810200060081020086 +000100020001000200830100010201020200810200810002010282000200020081010001 +008302000200030003018202010202028101020202810102020201018502010001000186 +010001000100010501830001000187010001000102010201028101020102810102010286 +0100010001020104018102010101830200020102018102010a0181020182010201830102 +010201028101028202010282020102820201028202000282020102820201028202010284 +020102010282020102840200020002020201018102010101010282010201840100010001 +8501020102010283020102010201010283010201028b0201020102010201020102018201 +0201070101028701020102010201028102010001 +820102018301020102020283000201020802810102820201020102880102000100010001 +020202810102010281010206020a01850001000100010201820001028202000202020701 +830001000106018202010203020701850001000100018601000200020002870201000200 +020002820201028202000201020101880201020001000200028502010002000189010201 +020001000100028502010201000102018302010201020181020101019b02000100010001 +000200020001000102000100010001000100010001190103020101820201028202010282 +020102820201028202010201028101028202010201028101028202000201028600020001 +020102030281010201028101020102810102010209018500010201020102018102018401 +000102008200020082000100820001008a00010200010200020002008100020302820001 +020202820002008500020100020001008101008400010001008400010200010b01810201 +0d018100010a018202010205028101020102810102010281010201028101020102810002 +0102810002820200020102810102010281000282020102820200028a0200010201000200 +010001840100010001010101028301020102010281010201028101008800010001000100 +010001009001000100020002000100020100010001000500820100018e01000100010002 +010001000100010002008201000186010001000100018601000100010001840100010002 +8202000186010201000100018101020002 +81000186010001000200020a028101028202010282020102850200020002010301030281 +01020102810102010281010202028500010001000181010083000100010a018202010202 +021201820201020402840001000100810001070182020102010285010201020102080201 +018300010001040102020301830001000105010102810001030181020105018102010101 +86000100010001008500020102010283020102010b018c00010001000100010001000100 +880001000100010001008300010002040288000200010001000100860001000100010086 +000100010001028202000286020102000201028702000100020002008600010002000100 +860001000200020086000200010002008100020102820002008400020002000200810200 +010081010086000100010001008400010002000100030282000100010006028100020202 +810002020289010001000102010201028402010201028102018101020102010102028301 +000100890001000100010001000101018600010001000100970001000100010001000100 +010001000100010001000100010101810201840102010201810102820201020102810102 +810201810102830201020181010201020101820201028102018301020102810201810102 +020281010206020100850201000201028102010101840201020001810102820201020102 +060186020001000100018101020102840102010201020102028301020002020287010201 +020102010282020102840201020102860201020102010286020102010201020202 +040182020002840201020102820201020802810102030287010001000102010201028101 +02060281010202020a018500010001000103018202010204020601810001810100810001 +060105020f01810002020282000201810102040281010202028601020102010201020182 +020102830201020101018502010201020184010002000108018102018301020102010289 +010200010001000100010101820001008900010001000100010001010181000113010102 +030103028101020202810102010281010282020102040281010283020102010301810001 +050182020102040282010201010183020102010101020201010102830102010282020102 +010281010281020081000201020101820002008200010082000100820002008100018101 +028302000200820002008100028202000207028101020402830100010282020100830001 +00028202010283020102018101020102010101020d018100010d01820201028402010201 +028102018101020102010101020301030282000201010101020201880200020001000100 +019601000102010201000100010200010002010201020100010401810201010193000100 +010001000100010001000100020002000287020002000200010005008201000282020002 +820201028202010201028101028202000282020002820201028402010201028302010002 +8602010200020002840200020002840200020002010282010201 +810001830100010201028301020102820201020302810102030281010285020002010201 +0301060281010207028100018a0100010001000100010001070183000200020402090181 +000107010502810001830100010085000100010001810100810001010102028501020001 +000282020102040281000189010001000200010001029602000200020001000200020002 +000201020102000100010201840201020102820201020402850002000200028402000201 +028302010201060181000102018c00010001000100010001000100880001000100010001 +008200010208028101028302000200810002010281000201028401020100028b02010200 +020102000100020086000200010002008600020001000200860001000200010086000100 +010001008100010101820001008600010001000100820001000100810100860001000100 +010085000100010001830100010201020100820200020f028201000207028101020d0281 +000282020102840201000102820200010101880001000100010001009500010001000100 +020001000100010001000100010001090183000100018101020102030185020102010201 +820102018201020182010201060183020102010201880201020100010201000200890100 +010001000100010001008401000100028c02000100020001000200010001840100010002 +020281010282020102010281010203028100028202000201028100020102850100010001 +020102840002010002030284010002010282020002 +030110028101020602870001000200010002010281010282020102020281010203020b01 +850001000100010301820201020302830001000103018500010001000104018202010203 +02110102020401090201018302010201040102020f018102010501810201020102028101 +02010286000100010001028102010301010221010b028101028102010601020201018102 +011301830201020113018200010285020102000100010001018100010201010081010082 +000100820001008100018301000201810100810002070281010206028100020102810102 +05028101021c028201000127018100010401810001040181020182010001860100010001 +00018c010001000100010001020002011901820001020102810102820201028902010201 +020100010001010102028101020102810102050286000201020100028402010201020402 +81010286020102010201020402870102010201020102 +840001000102030281010206028101020602810102010204010602810102010281010204 +028100018a01000100010001000100010501840002000102040212018202010203028c01 +000100010001000100010001840100010002030284000102010202028100028202010286 +020001020002008100018401000100020102940001000100020002000200020002000200 +01000201010101020101820201020102820102000600850100010001008d000100010001 +00010001000100018d010001000100010001000200010088000200010001000200830002 +000209028301020100860002000100010088000200020001000200880002000200010001 +008600010001000100860001000200010086000100010001008600010001000100810001 +010182000200820001000100810100040081010082000100060081010084000100010082 +00020083000200020b028500020002000219028101020802020188000100010001000100 +950001000100010001000100010001000100010001000104018400010001008300010001 +050187000100010001020103018102010e018a00010001000100010001008e0001000100 +010001000100010001000300820200028c02000200010001000100010001820100020102 +810002840201020002020281010203028100028202000201028201000286020102010200 +0286020102000200028902000200020100020002 +82010201820100020a028101020902810102870200010001020102030281010282020102 +04020c018500010001000102018202010288020102010200010001030185000100010001 +0401820201020102820102010f010402010184020102010206020a018202010281020103 +018602010201020102010205018202010281020102018202010201020101010283000100 +012401830201020183010201020c02810102810201070101028501020102010201028201 +020109018102010201810201010181020102018102010201810201020181000103018500 +010001000110018202010081000181010213020201820201020102810102210220018100 +01050181000104018100010801850201000100018a010001000100010001000182010001 +0d0181000109018700010001000102018101020102840102010200020083010001020702 +8201020181010203028301020102070282010201810102010201018202010209020101 +8300010002030281010202028101020a0281010281020105010502810102080203018600 +010001000100810001060186000102000201020302130104028201000101018700010001 +000100018401000100028202000284020100010207028700020001020002008500010001 +000201028300020001850100010001008a00010002010001020100010201810201020101 +028101020102070083010001008f000100010001000100010001000100018b0100010001 +000100010002008a00020002000100020002008100020c02010087010002000200010088 +000200010001000200880001000100010001008600010001000100860001000100010086 +000100010001008600010001000100810001010182000100860001000100010004008101 +008200010006008102008100018101000100820200020d02810002840200010200810002 +06028101020102810102170201008d01000100010001000100010001008f000100010001 +000100010001000100010401830001000184010001000105018700010002000100011401 +89000100010001000100018f010001000100010001000100010001000300820100028c02 +000200010001000100010001840100020002020281000282020102820200028202000284 +020102000282020102820201028402000200020102810102820200020102810102880201 +02010200020002 +860001000102010202028101020d02810002010282000100840001020102030281010282 +02010205020c018200010081000103018402010201028102018301020001040187000100 +010001000183010002018101020202850002000100010b01040202010502810102010288 +010201020102010201010102020801850201020102018401020102010201010201018402 +01020102010281010201020100820100011e010102810102840201020102840201020102 +820201020b02810102840201020102820201028602010201020102020282010201040181 +020108018102018301020102810201810102860201020102010283020001020102010181 +020082000200820001028102018201000103018100010101010081010081000101010202 +8100020502810002020283010002008500020102010207028101021b021a018102010101 +81020182010001040181000104018100010a0183000100018a0100020001000100010001 +820100010b01020001018300010001040184000100010081000183010002018101028102 +000400840100010002820201020102810102840201020102010281000201028201000201 +02810002050201010102810002810201830102010202028301020002810201 +010101028101028202000202028101020d02820102010401020283010201020902020181 +000185010001000100810001050181000181010201028100028402010200010f01820201 +020302850002000100010101010001018300010001820100020302830100010207028300 +020001810100870001000100010002020282010001880100010002000200028202000181 +010081000101010202830102010201028701020100010001000300810100910001000100 +010001000100010001000100018b01000100010001000100010088000100010001000100 +840001000102060281010203028800010001000100010088000200020001000200880002 +000200010001008600010001000100860001000200010086000100010001008600010001 +000100810001010182000100860001000100010004008101008200010001008101000200 +8501000100010001008502000201000283020100020b0282000102090281010216028100 +028102009000010001000100010001000100010001008d00010001000100010001000100 +010301840201020102830200010201020101820201028302010002860201020002010281 +0201020101020101010282010201810102830201020081000283020102018101028f0201 +020001000201020001000100010001000501840002000201030101008401000201020102 +830102010202028301020102010283000200020102010102028501020102010286020102 +0102000202028700010002010201020002 +8500010002000212028101028402000100028102010101070281010206020a0182000100 +830001000102018202010284020102000201020601870001000100010001010182020102 +01028a000200010001000100020108010202820102010101090288010201020102010201 +010182020102830201020109018102010201810201010102020301010284010201000181 +01000100200101028301020102820201028402010201020e028301020102810201820102 +011201820201028202010201028101028202010201028101020102810102820201020102 +810102830200010201028101028202010281020082000200820001008200010082000100 +820001008500010001000182010001010183000200018101028102018101020b02810102 +110281010283020102018201020181010206020e0101020101010283010201028a020102 +0102010201020102810201050181000103018100010b0181000184010201020105018300 +010001050182000102820200028d02000200010002000200020001000500010186000200 +010001000100810100840001000100810002820200020202810002820201028202010282 +0200028402000200020802830102010284020102010282020102010283010200020102 +010182020102820201020c02810102030282010201010181020101010602810102060203 +018100018301000100810001070184000102010202028201020107018102010601830002 +010201028700020002000100018401000100018201000101018302010002010282000102 +040281010203028b01000102010001000100010282020002830201000103018b00010001 +000100010001000103018502010201020103018400010001000100810100930001000100 +010001000100010001000100010001820100010c018202010286020002010201020b0201 +008502000200010281020086000200020001008a00020002000200010001008600020001 +000100860001000100010086000100020001008600020002000200860002010200020086 +000200010002008200020004008301000100040083010001008200010081000182010200 +81000103010c028101020f0204018802000102010002000203020100010101008b010001 +000100010001000102820200020102810002010281010201028101028302000102010281 +010201028101028202000201028101020102810102010281000282020102820201020102 +8400010001028202000201028101028202010282020102820201028102010e0181000186 +010001000100010301040203018100018301000102060281010201028301020102010201 +01050281010284020102010286020102010201028202010201028101020302810102 +010105028101020302810102820201020402810102020201018100010101820201028202 +010201028101020602060183000100018101008300010001040182020102020281010281 +020104018a020100010001000200020181010203028a0002000200010001000201040184 +000102010202028201020183010201020402820102010101810001050102020101810201 +010185000100020102030201018302010201810102810201010103020101810201830100 +010081000118018800010001000100020087000200020001000185010001000102020281 +00020502070181000115010102810102820201020102010101020d018100010801810001 +0901810001030183000100018201000101018200020105011e0281010202028101028302 +0102018101020402010101021e0181020108018200010284020102000181010281020181 +010282020102820201020102830102010201028101028202010201028100028202010282 +02000282020102820201028102000100890100010002000200020005008a010001020002 +000100010002008401000100020302810102040286010002000200020102810102010283 +01020002860201020102000286020102000200028902000200020102010200 +010281010202028100020302810102010281010203028101020202010181020102010202 +810102020281010201028101020202820100018201000183010001008300010001030185 +000102010002030281000281020109018502010201020182010002030282010002830201 +0201860102010001000103010402820001020a028b010001000100010001000102020296 +000100010001000100010002000102010001000102010201020301010201018702000100 +010001009500010001000100010001000100010001000100010001820100010601830201 +0201810102840201020102820201020d0281010282020102820201028202010282020102 +840201020102880201000100010001008600020002000100860001000200010086000100 +020001008600020002000100860002010200020086000200010002008200020001008102 +008600010001000100040081010082000100830002010286020001020102018101020902 +8301020102130281010286020001020100020202850100010002008e0001000100010001 +000100010201020202810002010281000201028100028202000202028101028202000201 +028400020100018101028102018401000200018401000100018a01000100010002000100 +018401000100010401810001080181000109018300010001820100010201850201020102 +010301830001000181010201028301020102010201018202010282020102820201028202 +00020702810102880201020102010201028402010201020202810102 +850102000201020202810102820201020102810102040281010283020102010101010282 +010002820201020302810102060201018a00010001000100010001000200820100018201 +020181010203028201020106018302010200830001000101018202010203028600010200 +010001820100010401830001000282020102810201010102028101020502820102018401 +020102010401010206018202010281020181010281020182010201030184020102010281 +0201050181000182010001180186000100010001008a0001000100020001000100830001 +00020c020100870100010001000100860001000200010084000200020103018102011301 +010281010201028101020102810102010281010201028101020102810102820201028102 +010e01020082010002140281010204020101810002050281010282020102830201020182 +010201810102030212010202810102010281010202028101028102018101028202010201 +028101020102810102010281010282020102010281010201028101028202000282020102 +810201810102820201028202010282020102820201020102810102840201020002820201 +028b02000200010002000200010003008101008a00010001000200010001000100010184 +000100010208028101028202010203028501020102000201028301020102860201020102 +010285020100020102010285010200020100 +010110028101028202010201020101810201010184020102010204028101020102810102 +020204018600010001000100830001000105018202010203028200020104018c02010001 +02010201020102010206028100028102010c010402020106028101020102030181020102 +018202010202020a01830201020182010201010102020101820201020102860102010200 +01000100820100011f010102010181020184010201020183010201020b02820102010101 +810201020181020108018600010001000200860001000200020086000100020002008600 +010002000100860001000100010086000100010001008600010001000100820001000100 +8101008a0001000100010001000100020082010001810102020281000202020101090282 +010201810102200285000100010001a00100010001000100010001020100010001000100 +010001000100010001020100010201840001000100830001000182010001010181000184 +010001000102018500010002000201028100028202000282020102820201028202010282 +0201028202010283020102008f000200010002000200020001000100018f010001000200 +010002000200010001000200810102020283010201020102810102820201028202000282 +020002820201020302810002040285000201020102830201000203028101020002 +8202010202028101020c0281010203020201810201020109028901020002000200010001 +8701000100010001008200010001008201000184010002000202028100028102010a0183 +000102018101028202000202028101028302010201820102010101830001000184010001 +00020302830001000209028b010001000200010001020102010297010001000100010001 +000200020001000100020001020102830201020101018902010201020001000100940001 +000100010001000100010001000100010001008100010101880001000100010001008a00 +010001000100010001008400010001020a02810100880001000200020001008600010002 +000100840002000201030181020101010102810102010281010282020102010281010282 +020102010281010201028101020102810102820201020102810102010281010201028101 +0281020107018100010401020082020002120283010201021f028101028102010d018202 +010201028101020102810102010281010201020101010281010201028101020102810102 +8202010201028101020102810102820201020102810102830201020101018102010b018b +0001000100010001000100010a0101008401020100010101020201010102010181020104 +010602810102020285010201020102010281010205028101020202830102010201028101 +0202028301000102810200810001 +010281010205028101020502810102820201020302030182020001830102000202028101 +020702040186000100010001008300010001820100010201810002030283000200010401 +850001000100010501820201020202820102010301810201070182020102010205010602 +810102830201020182010201040103020801820201020102010101020101030282010201 +820102010301820001000100820100012001810201010182020102810201010182020102 +050281010203020201810201040182020102820201028202010283020100010101840001 +000201120181020103018102018501000200010201028101020102810102010281010201 +020a01010081010081000101018100028202000209028300020002010281000224028100 +011601020281010201028101020102810102010281010282020102010281010201028101 +028202010201028100020102810102880201020100010201020102810002820201028202 +010282020102820201028202010283020102009000020001000100020002000100010001 +008a00010001000200010001008800020001000100010202028101028202000282020102 +010284000102010201028100028202000201028a01020002000201000201008100028202 +01028102008100028102000100 +810102020283000201020b02810102030205018100020802830102000286020002000100 +0186010001000100018301000100010002018302000102010284010200020107018c0201 +020100010201020102000203028201020108018100018501000100010201028601000200 +020102060284010001000188010001000100020002010293000100010001000100010001 +000100010201000102018302010201810102850201020102000400910100010001000100 +010001000100010001008300010001010188000100010001000100880001000100010001 +0086000200020001020b0201008501000200020088000200010001000100830001000101 +018100010201860001000200010086000200020002008600020002000200860001000200 +020081000103010100850100010001008600010001000100850001000100010101810001 +010181000101010100020114028101021102810102020283000102018101020502010181 +02010401870001000100010002020281010201028a010001000100010001020104018500 +0100010001820100010a01010007018102010b018e000100010002000200010002010201 +830102010281020101010100840100010001020186020102010201028102010601820201 +020602810102010281010282020102860201020102010283020102000900020202008102 +000200 +810102040281010282020102820201020502810102830201020102018102010101050281 +010201028300020002880200020001000100018301000100020081010083000100010201 +81000203028200020105018c00010001000102010201020102820201020202820102010c +018202010202020101820201020302810102010284010201020101010102020101020101 +810201050182020102820201028502010201020184010201020104018502010201020083 +000100018201000124010102010183020102018101020702810102830201020182010201 +810102820201028202010282020102820201028302010001010181000183010201028102 +018301020102010281010282020102010281010201028101028202010201028201000282 +02010201028101020102810102010281010201020b018200010001000101810001830100 +020103010102820001008200020001008402000200020802810102030281010281020101 +010102050108020d01010201010102810102010281010202020101010281010282020102 +010281010201028101020102810102820201020102810102820201020102870102010002 +010002830201000282020102820201028202010283020102010101830201020002008601 +0001000100018501000100020001008c0100010002000100010001020001008401000100 +0202028100028202010286020102010201020302830002010281020083000102000e0081 +02000300 +030281000202028101020102810102820201020802020181020182010002030281010208 +020501850001000100018101000200040182020102030282010201050183020102010a01 +850201020102010c01830002000202028400010200020902010185000100010201010103 +020401850001000201020302820002018201020181010201028101020202030182000100 +010088010001000100010001010185000100010001860100010001000101018600010001 +0001008a0001000200010001000200850001000100020b02880001000100020001008800 +010001000100010083000100010101810001010101008501000100010086000100010001 +008600010001000100860001000100010081000101018200010086000100020001008800 +020002000200010083000100010201830001000103018100010201810002010202010202 +010001028300010002130202010102810100850002000100020102810002020201018102 +010501980001000100010001000100010001000100010001000100020181010286020102 +010201028302010002860201020102010201028100028202010283020102010101820201 +020102010182020102010281010282020102820201028202010285020102000100890001 +000102000200010005000101820200028802010001020001000101018300010002820200 +028202010282020102860200020002000284020002010201028401020002000500810200 +0d00 +810102030281010282020102080281010202028101028102010301050281000202028b00 +020002000102000100010084000100010002000101830001000101018202010203028200 +020105018b00010001000100010201020101010102010101020e01840201020102820201 +028202010208020601810201020102028201020113010102810102030282010201810100 +820001008300010001050181000104018100010e018102010601020283010201020b0282 +010201020102028101028202010282020102820201028302010201060182020102010281 +010201028101028202010201028101028202010201028101020102820100028102010201 +810201150182000100020082010001010101020201020201008101008200020084000102 +010202028100020802810102020281010201028101028102010101060202018102010b01 +010201010102810102010281010201028601020102010201020181020184010001020101 +01830001020106018400010001008100018a010001000100010001000182010001050185 +000100010001810100810001820100010601850001000100018601000201020002850201 +020102018201000102010202830102010205028301020102820201028202010285020102 +01020005008102000d00 +810102030281000282020102820201020102810102820201020302040181020181010209 +0281010203020c010300050105020c018702010201020102011601820201020202810102 +040281010201028101020102010181020182010201840102010201840102010201040182 +020102030282010201820102010701010282010201010102008201000101018300010001 +030183000100010201810001030186000100010001008a00010001000100010002008500 +01000100020b0288000100010001000100880002000100020002008a0002000100010001 +000100860001000100020086000200010002008600020001000200860002000200020086 +000200020001008800010002000100020086000200020001008300010001020181000184 +010001000105018100028102010101020284000100010085000100010201810102010281 +010207020601020284000200010081000203028300020002810201060186000100010001 +028202000201028100020102810002010285000200020102010281010282020002010281 +000201028101020102810102820201020102810002820201028102010201020281010282 +020102820201028202010282020102820201028202010281020083000200028302000200 +850002010002000100960100010001000100010001000201000100010001000102820201 +028202000201028101020902830102010203020100810200820001008100018101000100 +8102000500 +020281010202028101020402810102040281010281020103018102018101020202810002 +040287000200020002000184010001000181010004000101830001000183010201020402 +8100010601840201000100810001160181020185010201020102020203010a0282010201 +040182020102850201020102018201020101018202010203028201020101018102018301 +02010202020501010081010082000100810001030181000182010001020183000100010c +01830201020102010402820102018101020a028201020183010201028102014101810201 +040181000103018100010201020082010001010104028101008400020001008500010001 +02008200010201028100020302810102010281010202028201020107010302030102021d +018302010001060181000107018102018101028202010284020002000103010202810102 +820201028202010282020102820201028202010282020102820200028202010282020102 +830201020101010100040184020102010283020102010701020281010203028101028202 +010202028601020102010201810102830201020106018300010001840102010001010102 +00 +0402830102010208028101020102810102810201050104028101020a020b018200010001 +000301820201020402080181020101010102010181020113018102010101820201020102 +830102010205028101020202060181020183010201028102011201840001020102010281 +010203028501020100010001008401000100010101850001000100018801000100010001 +0001010186000100010001008a00010001000200010001008700010002000100020b0288 +000200010001000200880002000100020002008a00020002000100010001008600010001 +000200860002000100020086000200010002008600020002000200810002010282000200 +880001000200010002008600020002000100830001000102018200010083000100010201 +810001870100020102010201010182000200040084020001000201028101020202810102 +020281010202028101020402810002820201020102850001000100020102070101008201 +000282020102010281010202028100020102850002000201028202010201028101020102 +810102010281010285020102010201820100010501890001000100010001000184010001 +0001020181000107018e0001000100010001000100010002000100930100010001000100 +010001000102000100010001010102028100028202010282020102820200020102810102 +820201028402000200028602000200020001840100020001840100010002830200010002 +00 +010281010206028101028202010201028101020102820102018201020103018202010201 +028100020102810002020286000200020100010101840001000100030001018300010001 +82010201810102030281000124018102010201040201010b028201020182010201820102 +01020101028201020189010201020102010201028402010201028102010a010102820102 +0181010082000100830001000182010001050181000106018100010e0182020102010204 +010d02020101020601820201028202010282020102810201050101028101028202010201 +028101020102810102820201020102810102010281010286020102000201020102810102 +82020102020281010201020401810001080102000a010100820100018201020105010302 +81010201028201020107010d0204018102010c0182020102010281010201028101020102 +810102810201810102010281010201028101020102810102820201020102810102820201 +020102810102820200010601820201020102810102820201028202010282020102820200 +028202010282020002840201020102820201028102018101000100040182020102040209 +010f02810102060283010200018201020108010102030101000001 +010285000200020102820201020c02030181020102010302810102090206018100010301 +850001000100010501020228018402010200020202810102810201830102010203028101 +020102820102018201020103018102018601020102010201020184020102010281020101 +018302010201830102010205020701010082010001160181000105018302010201820102 +01810102020201010d028201020183010201020102810102810201080186000100010001 +008600010001000100860001000100010086000100010001008600010001000100810001 +010184000100010086000100010001008600010001000100830001000182010001010181 +000181010085000100010001820100010401840001000100820002008100028302000102 +0c0281010202028101020d02850001000100010901840001000100910001000100010001 +0001000100010002000106010300820100010d0189000100010001000100018501000102 +01028102018101028202010284020102010201028a010200020001000200020001009202 +000100010001000100020002010002000201060107028100020302810102010283010201 +020102810001020183000100018d01000102000100010001020002000200 +050281010282020102090281010281020103018102010101030281000202028101020102 +830002000104018400010001000100050181000101018100010a01850201000100010301 +810001140181020181010204020101810002840201020102840200020102810201050181 +020184010201020182010201090183020102010401820201020502840102010201810100 +83000100011a01820001008a000100020002000100010086000100020001020b02010001 +028501000100020088000200020001000200830002000281020105010102810102820201 +020102810102820201020102810102010281010282020102010285010200020102820201 +02010281010201028101020102820102010a01850001000100010b018200010083000102 +0181010281020101010602810102020281010202028101020e0213010302810102010281 +010201028101028102018101020102810102820201020102810002010281010201028101 +028202010201028101028102010701820201028302010201020181020102018e00010001 +000100010001000100010081000183010001000100860100010001000101018102010301 +810201060104028101020102810102030283000200020602840100010001840100010001 +840100010001820100018101000100810100 +82000200810002820201020e028100018201020102018202010201028101020a020c0182 +00010081000102018100012e018c00010002000200020002000201810102050284010201 +020182010201820102018301020102010206018502010201020183010201028102010601 +830201020182010201040102000201880001000100010001008b00010001000100010001 +00010d0182020102010203010d0201018202010201020e01860001000100010086000200 +010002008600020001000200860002000100020086000200010002008100028602010002 +000100860002000200020086000200010001008100010201810001010101000101020082 +010001820100010401820001000200820200020102820001020602010181020108010d02 +020001018100010601870001000100010002820201020102810102020281010282020102 +010281010201028101020102810102010281010282020102010281010282020102010281 +000105018300020102820201028202010282020102820201028202010282020102820201 +02820200028a020100020100010001000106010302840102010201070108028101028202 +010282020102820201028202010201021101010002010100 +820002008100020302810102090282010201810102810201020104028100020602840001 +020001040181000101010100020186000100010001008100011101810001010181000115 +018202010203028101028c02010200010001000100010002830201020102018102010101 +820201020202030186020102010201028102010201810201010186020102010201020102 +020181020181010083000100011801820001008c00010001000200020001000200870002 +0001000100020b0288000100020002000200880002000200010002008300020002810201 +22018100011d018300010001070181020102018100018501000102010281020102010b02 +81010202028101020e0213018102010d0181020132018300010001010185000100010001 +010183000100010201860200010001000103010102030181020106010202810002820200 +020302810102820200028202010282020102850201020100018601000100010001820100 +0184010001000183010001000100 +830002000282020102010281010201028101020402810102820200010101810201010104 +028101020702810102810201070185000100010001820100010301810001820100011a01 +810001050183020102010301880001000100010001008600020100010001830102010201 +020401810201010181020102010202080189020102010201020102018701020102010201 +020102840102010201080186000100010001008d00010001000100010001000100011701 +0c0281010284020102010282020102820201028202010282020102890201020001000100 +01008600020001000200860002000200020086000200010002008f000200010002000100 +020100020001008600020002000200890002000100010001000181010081000101010200 +810100030001018100010101010283010001008100028102008100028102008300010002 +0502810102020281010201028101020f0201001101020281010201028101020102810102 +010282010002820201020102810102820201020102810102010281010282020102010281 +010283020102010701010281010201028101028202010282020102820201028202000282 +0200028102008b0002010001020001000100010901830201020103010100040102028101 +020402810102020281010282020102030211010200810100810001 +010281000282020102010281010282020002050281010281020103018102010101010283 +0102000202028800020002000201020104018100018b0100010001000100010001008300 +01000101018100010b018700010001000100018101008100010401850001020102010801 +810201020183020102018901020102010001000100820002018c01020102010201020102 +010201820102010201850201020102018801020102010201020186010201020102010701 +830001000101018100011601820001008a00010001000200020001008900020001000200 +02000209028a000200010001000100010088000100010001000100830001000107018102 +010701010201018202010201028101020102810102820201020102810002010281010201 +028101020102810102010282010201140181000105010100010282000102010281000182 +0100020502010181020108010d0205018100011301010203018102018301020102010281 +010201028101020102810102010281010282020102010281010283020102010701010281 +0102010283010201020102810102820201028a02000201020002010201028c0201000201 +020102000100010083000100018101028302010201820102010701020281000201028100 +020202840001020102010283000200028402000100018401000100018401000100018301 +00010081000101010200 +010181000204028300020002080282010201040182020102020281000201028101028502 +000200020103018100010601850001000100010501810001100183000100010301810001 +84010001000107018100018601000100010001810100850001000100010e018102018801 +020102010201020103018402010201028302010201030181020104018202010201028401 +02010201040181000103018200010081000101018500010001000101018100010a018202 +0102820201028402010201028402010201020b0281010284020102010282020102820201 +028202010282020102890201020001000100010086000100020002008600020002000100 +860001000100010089000100010001000100018501000100010081000101018200010089 +000100010001000100018201000106010400050101028101008200010281020181010282 +020100820001020a0281010202028101020f0283000100010f0102028101020102020182 +020102810201010181020109018102012701830001000101010200010101008101000200 +020101000f01810001040103028101020102890102000200020002010201028501020002 +000186010001000100018401000100018701000100010001000200 +090281010206028101028502010201020102018202010202028501020102000204028201 +020103018100018101009100010001000100010001000100010001000107018700010001 +00010001040182000100810001030181000116018d020102010201000100010201020104 +018202010201028101028102010701870201020102010201020186020102010201020102 +82010201040181000116018100018101008c000100010001000100010001008900010001 +0001000100020b0286000100010001008800010001000100010085000100010001060101 +028101020102810102820201020102810102820201020102810102820201020102810102 +010281010201028101028302010002820201020102810102810201820100010101810001 +030181000184010001020081000182010001010101020201810002860200010200010082 +0001020a0281010202028101021002820100010f01010281010201028101020102810102 +010285010201020102010281010201028101020102810102820201020102810102820201 +020102820102010801820201028202010282020102820201028102000100840100020102 +8202010282020102850201020100010101010002018100010d0181020102010302810102 +0102810102820201028402010201020102840102010201110181000101010100 +840201020102040281010202028101020102810002810201020181020101018402010201 +020402810002840200020002020201018100011001020011018200010001000201810001 +0c0181000101018200010083000100010d018102010b0183020102010301810201010181 +0201860102010201020186010201020102010b0181000120018402010201028202010284 +0201020102820201020d0283010201028202010282020102820201028202010282020102 +830201020102018100011c01850201000100010401020281010201028101028102010501 +8100010301810001820100010a0101008301020001820102010401060281010281020108 +010e022301810201080101021b0101028101028202010287020100020100020082000200 +8b000200020001020001000100010001018100010d018102010601040281000282020102 +820201028202000282020002840201020002810201860100010001000184010001000189 +010001000100010001000000 +090281000202028100020402030181020102010102840102010002810200810002040281 +0102020283010201028f0200010200010001000100010001000181010081000107018700 +010001000100010301010081010081000103018100012901820201028102010b01830201 +020104018102010301820201020102820102012001010089010001000200020002008900 +0200010001000200020d0286000200020001008800010002000200010089000100020002 +00010001820102008600020002000200860002000200020086000200020002008b000200 +020002000100020102830200020086000100010001008400010001000300810100010082 +010001010182000100820002008100010201820001028102010101010282010002830200 +010083000100020802810102020281010211021201010281010201028101020102810102 +010285010201020102010281010201028101028202010201028101028202010201028101 +028202010201020801810201090103000801810001030181000181010002000901810001 +030102020401820201028202010282020102820201028402010201020102830102010281 +020111010200810100 +020281000282020102010281010209020401840201020102840201020102070283000201 +020202830002010203020a01010003018100010501010082010001030101000501010082 +0100010a01890001000100010001000115018202010202020a0187020102010201020102 +018302010201010102028201020136010b021f0182020102820201020102810102820201 +020102810102820201020102810102010281010283020001028202010201028101020102 +8101020102820102008100010e0181020106010102810100820002008100020102050109 +028101020202810102110282010001010181000101018200010083000100010101820002 +008100020102810102010281010201028201020181010201028101020102810102050281 +010282020102010281010282020102010209010202010182020102860201000200020003 +00810200020083020100018101000100820100010b018302010201020102020101030281 +0002820201028202010282020002820201020302810102820200018b0100010001000102 +000100018201000181010081000101010100 +8100020b0281010201028101020102820102010301840201020102820201020102820001 +020c0283010200028c020001000100010001000100018101008100010701810001030183 +00010001020185000100010001310102020a018502010201020104018102010101810201 +2c0182020102840201020102840201020102820201020d02830102010282020102820201 +028202010282020102820201028902010200010001000100860001000100010086000100 +010001008600010001000100890001000100010001000185010001000100880001000100 +010001008400010001000200810100820001008200010006000801820001028102008200 +0200820001008200010081000207020a010d0282010001820100011d0181020109010202 +230182000100820001008100010301010081010081000102010200820100010501820201 +0201028101020e0281010282020102820201028202010282020102820201028102010901 +810201060101008101000000 +010282010002050281000282020102010281000281020182010201030102028101028502 +010002000204028100028202010201028100028202010202020701820001000100030183 +00010001030101008501000100010082000100810001110181000181010083000100011f +018102011401820201028202010201028201020121018a00010001000100020001008900 +0200010001000200020d0286000200020001008800010002000200010086000100020002 +010601820201028202010201028101028202010201028101028202010201028101020102 +8101028302010002820201020102810102010281010201028201020002000d0181020106 +01010201010102810102020206010802810102010281010202028101020d020801810001 +070182020102010281010201028101020102810102810201810102010281010201028101 +020802810102820201020102810102830201020108018302010201010101028101028402 +000200028102008200020002008101008100018101000300010181000102010102850102 +010201020a02810102010281010285020001020002820201028202010202028101028202 +00018601000100010001840100020001820100018401000100018101000000 +810200810002810200060007020301810201020104028100020202810102060281000204 +028401000200018601000100010001040101000201810001820100010b01870001000100 +0100010901810001440102028201020126018102010d010d021501860001000100010086 +00020002000100860002000200010086000200020001008f000200020002000200010200 +020002008800010002000100020082000200010081010082000100820001000900050101 +028501000102000201020100810100820001008100020602810102020281010202028101 +020d02850001000100010c01820201020102810102010281010201028101028202010202 +028101028202010201028101020402810102010281010282020102010282010201120182 +000200820002008200010081000103010100810100810001010183000100018101020902 +8101020b0281010282020102840201020102010283010201020302810001830100020101 +01830001000182010001020182000100820001000000 +810200820002000300810200820002008100020102810102810201010101008201020181 +010282020102820201028402000200028402000200028402000201028202000201028600 +020001000100860001000100010001000b018b0001000100010001000100010701830001 +000107018200010083000100016301880001000100020002008a00020002000200010002 +008300020002080288000200020002000100880001000200020001008600010001000201 +04018102011d018100010e01810001820100010101830001000108018100010801810002 +0102820001008200010083000100020402810102010209010e0208018100011801810201 +090103022101050001018100018101000400010184000100010081000182010001810102 +180281010205028301020102030282010201040183020102018401020102010401810001 +01010000 +020081020002008102000500020282000201050182020102820200028402000200028302 +000200810002020283000201020602810001030181000101018100018101000100030181 +000182010001820100010701010002018100010801850001000100013701830201020101 +01810201050181020105018102012f010c02100181020103018600010001000100860002 +00020001008600020002000100880002000200010002008d000200010002000102000200 +020088000100020002000200820002000400030103008101000300060101028301000102 +0102010184020001000101010d0281010201028101020e02840001000100870001000100 +010001060102028101020102810102010281010201020101010281010201028101028202 +010201028101020102810102820201028202010201028101028102011601020081010083 +000100018301000100820001008100018301000100820001021202830102000201028301 +020002020201010a0203018102018401020102018201020107010100 +81010005008102008200020082000200810002030205018202000282020102820201020c +028101028202000201028c00020001000100010001000100810001020101008201000181 +010083000100018401000100010301810001070181000107018300010001840100010001 +34018b020102010201020102010201850102010201028102011c0186000100020002008a +00020002000200010002008100020c028600020002000100880001000100010001008500 +010001000105018402010201028202010282020102010281010282020102010281010282 +020102010281010201028101020102810102820201020102810102010281010201028301 +000100830001000106010100810200810001040101020101810002010282000100840001 +00010081000202028101020602810102020202010d020a01010003010100830100020085 +0002000201000100820100028102018b0100020102000102000201020502810102820201 +028202010281020181010281020110010700820100010101010081010001008301000100 +830001000102011502810102820201028202010286020102010201028202010284020102 +010281020102018102010301830201020108010000 +820002000200810200050084020002010282020100820002010201030281010282020102 +030281010202028101020202810102050205010200010102000301810001840100010001 +1a0183000100010401810001300181020103018b02010201020102010201020182010201 +810102810201200184020102010282020102840201020102820201020702810102030283 +010201028302010201030182020102010283010201028502000100010088000100010001 +000100860001000100010088000100010001000100880001000100010001008400010001 +008800010001000100010082000100030003018100018301000100010082010001080182 +02000202028101028202010281020101010302810102040207010f020101830001000187 +010001000100010081000103018100010e01830201000104018200010202028100011f01 +840001000100820001008200010001000201840001000100010082010001820100021902 +830102010204028101028202010205028100010301810201010185000102010201030181 +0001810100 +040284000200020004000302030183000201008100020202810102820200020702850002 +000200028302010002040202018100013801810001330101028a01020102010201020102 +01820102018101028102011b0186000100010001008c0001000100010001000100010081 +00020a0286000100010001008a0001000100020002000100870002000200020102810201 +010181020181010201028101028202010201028101028202010201028101028202010201 +028101020102810102820201020102810102010281010201028101028102010201820001 +008100010501020081020081000104018302010201810102030282000200820002008100 +02040281010204028101020102820001020e020301810001040101000101010081010088 +0002000200020002008600020001000200880001000100020001008a0002000200020002 +000102810201010181020104018100010a01810001820100018501000100010082000100 +83000100010101060084010001000103011c028101020302810002060282000201820102 +010101810201810100810001010181020101018300010001810100 +060201008201020002000302860100010001020101011402810102020281010202020101 +840001020001810100810001060181000182010001170185000100010001820100010101 +02008201000134018d020102010201020102010201020101010202120181000102018100 +01070184020102010284020102010282020102820201020d02830102010283020102010d +018400010001008800020002000200010086000100020001008800010002000100020088 +000200010002000100820001020102820100028602000200020102810200830001000101 +018100010201850001000100010a018202000214020a010e020101860001000100010001 +000101020014018102010901030220010100810100820001000200810100830001000102 +018200010083000100018201000213020101820200020102810102030283000200020102 +81010203028101008100010201810201830102010081000105018300010001 +810002040282000200020081010203028201000103018202010203028101028202010205 +028300020002820201020402010182020100010081020131018100013a01890201020102 +000201020182010201820102018201020107018300010001820100010701020002018400 +01000100020089010002000200010001008400010001020a028501000100010088000100 +010002000200860002000200010282020102810201240183000100018201000103010100 +810100010084010001000103018200010002008101008300010001020184020102010218 +0281010201028400020001020c0206018100018101008200010002008301000100020081 +0200020085020002000200880001000100020001008a0002000200020002000102010202 +018102010301840001000100810001060184000100010083000100018301000100010082 +010001010105008401000100010201160201018402010201020a02830102010281020105 +018302010001820100018201020101010100820100010001 +010283000201028102008200020003000302810100810001020106028100028202000205 +028100020202810102820201020202820102018301000100810001270183000100018401 +0001000101018400010001000100240183000100010201010003018d0001000102010001 +000201020100870001020100020001010101000a01010081010002000a01820001008200 +0201050101028101020d0283010201028302010201010185020102010201030181000182 +010201030182020102010281010282020102820201020102810102010281010282020102 +010281010286020102000201020102810102010281010282020102010284010201000101 +0181000107018100010b018100020a028101020602010183020102018401020102018101 +020c02080181000101010200030101028101020102810102010281010201028501020102 +010201028101028202010205020101820201020102820102011501840001000100810001 +820100010101010081010083000100010201830001000101011602010102028101020202 +810102040281000282020102010283000200010301880201000100020102010101030000 +01 +850002000201028102000600020201018102010301090281010201028100020302030106 +020101810001350181000124018100018501000100010081000109018102018801020102 +010201020184010201020107010100810100010081010002008201000103018200010082 +00010082000100820001008500020102010282020102840201020102820201020d028301 +020102830201020106018202010282020102850200010001008800010001000100010086 +000100010001008800010001000100010087000100010001000187010001000100010086 +000100010001008200010003008201000103018200010002008101008200010081000106 +0106028100028402000201020102810002020207018400010001020c0201018100018101 +008400010001008200010086000100010001000600810100860001000100010088000100 +010001000100870001000200020001080181020104018300010001050181000101010200 +820100018301000100820001008200010084000100010082000100820001008100018101 +021502010102028101020302810102820201028202010202028201020102018102010301 +8102018401020102010401810001 +050203008102000100820201028602010001000201020108028101020502820102010101 +820201020202820102012e01810001020181000184010001000101018200010081000127 +018400010001008400010001008200020082000100820002008400010002000100810100 +820001000100080102000101010081020106010200830100010082000100010087010001 +000100010082000102070281000202028501000100010088000100010002000200890002 +000200010002010281020104010102010101028101028202010201028101020102810102 +820201020102810102860201020002010201028101028202010201028101020102820102 +010301810001060181000183010001008300010001040181000205020100810200820001 +02010281010202020a0101000b0202018102010301010003010200010102028101020102 +810102010281010201028201020181010201028101020102810102820201020102820102 +01010102020101010205018100010c018402010001000100810100810001040101008101 +008300010001820100010101150281000181010201028101028202000282020102010281 +00028202010202028501000102000186010002000100018a010001020001000100010000 +00 +0502020082010200010003020301010202018202010205028101020202820102010a0101 +026201850001000100018101008200010086000100010001008200020082000100820001 +008200020082000100820001008200010002008301000200020001028101020502010187 +0002000100020002040286010201000201020202810102820201020d0283010201028302 +010201010181020109018400010001008800010001000200010086000100020002008800 +010002000200020087000200010002000287020001000200010088000100020001000200 +04008201000103018200010083000100010b018100020602020182020102010281000283 +02010201060181000101018100020b020101810201810100840001000100820001008200 +010001008302000100860002000200020088000200010002000200880002000200010002 +008a00020002000201020102010c01810001060181000183010001000300040101008101 +008300010001030183000100010101160201010302810002030281010282020002020281 +010286020100010200018601000100010001820100018401000100010101810001 +010281010281020003008102008300020002010204018102010101080281010204028300 +01020149018100011e018500010001000111010102010181020101018102010801010281 +010201028701000100010201008400020002008200010281020081000204028100020802 +810002020281000208028100028602010002000200880001000100010002008900020002 +000200020102810201210181000112018200010081000106010100840100010001070107 +0201008101008200010206020b010d020d01020013018102010501010201010102060102 +020101010203018302000102810201080101020201050081010081000103010200810100 +830001000101011602010102028101020102810102820201028202010201028101020102 +060181020182010201010183020102010201810001810100 +870200020002000200810002830201000282020102810201040101028101028202010204 +028101028302010201020181020168018100010501880001000100010001008200010084 +000100010082000100820001008200020082000100820001000100810100820001000100 +830201000202020100810200010081010001008102008300020002810200810002030281 +010204028101020e02080181020101018402010201028402010201020102840002000100 +880001000100020002008600010002000200880001000200020002008700020002000200 +0287020001000200010088000100020001000200040006018100018401000100010b0108 +020401020281010202020701810001820100020d02030184000100010082000100010081 +010001008302000100880002000200020002008800010002000100020088000200020002 +000200830001000207020201030204010902820002000100820200028402010201020102 +050007011402860002000102000282020102820200028202000201028100020702920001 +00010002010002000102000102000200018101000100 +010081020001008702010002000100028202010281020105018202010282020102020281 +010205021b01810001510183000100018101008700010001000100010801810201050102 +020401820001008200010001008102000100810200010082010002010201010300840100 +0201020502020002028100021302820002008a0002000100010001000100850001000100 +010801820201028202010201028101028202010201028101028202010201028101028202 +010201028101020102810102820201020102810102010281010201020301820001008100 +0106018200010083000100010701070201008101008200010206020b010e020c01010001 +010102850102010201028102018101028102010201810201810102810201010103028301 +020102200281000204028200020082000200830002000104010200810100820001021202 +81010281020103010a02810102070207018102018201020184010201020103010000 +840200020100830002010284020002000203020601030281010203028300020102810201 +0d018100010601810001550183000100010a018400010001008400010001008200010082 +000100820002008200010082000100810001810102820201028202010285020102000200 +010081010001008402000201028202000224020201810201040184020102010282020102 +880201000100020001008800010001000100010086000100010001008800010001000100 +010088000100010001000100860001000100010088000100010001000100040002018100 +0106018100010b0109028201000181010207020601810001820100020d02810001030188 +0001000100010001000400830100010084000100010002008b0100010001000100020002 +008600020002000100820002018101020202810102820201021402010081020001008402 +000200020102810100820001000100820100010101820001021402010188000200020002 +010002010281000201028400010200020402880001000102000100018901000200010200 +0200018301000100 +0302010082020102820200020302020181020103010c028201020172018a000100010001 +000100010084000100010084000100010082000100820001008200020082000200010081 +010082000100820002000200810200820001020202810102810200820002000200220281 +000207028701000100020002008600020002000201070182020102820201020102810102 +820201020102810102820201020102810102820201020102810102010281010282020102 +010281010201028101020102030183000100010301810001010182000100830001000182 +010001030181000203028100028102008200010081000208020a010e0210010102810100 +830002010201028101028302000102010281010201028101028202010201028201020101 +0101028101021b0282000200830002000285020002010200820002000100820100010201 +810001020113020100810200870001000100020102820200020102860001020002000204 +0281000184010001000186010001000100018401000100018301000100 +0202850002000201020102820001020102020101020301030281010207026f0181000188 +0100010001000100010e0181020105018202010201020101810201020183020102008200 +02000100810200010081010081000201028201020001002b020101810201810102050201 +018600010002000100880001000100020002008600010002000200880001000200020002 +008800020002000200020086000200020002008800010002000100010003000601810001 +07018100010701080281000102010902060183000100020d028100010c01010003018400 +010001008300010001010182000100890002000200010002000204028200010282020102 +030281010218028201020084000200020082000200840001000100010081010001008201 +000214020501860201020102010201028701020102010201020402820102010401810201 +86010201020102010501 +820200028102008300020102820200020302030181020102010d02040181000106018100 +01040181000107018100010301810001060181000106018100010c018100012801810001 +070184000100010084000100010082000100820001008400010001008200010001008101 +008200010082000100010084010002010282020102850201020002000200810200810002 +0202810002340281010201028101028102012d0182020102830201020101018200010081 +000102010100010182000100810001830100010081000102010100030201008402000201 +008200010208020a010e0282010001030187000100010001000182010200020085020002 +000200880002000100020002008900020002000200020002840200010002010281010205 +028100021202820002008200020083000200020402020081010001000501140283010001 +008200010201028700020001000100018101028602000200020102010201018a00010001 +0001020001000184010001000185010001000100 +820002000100820200028102008100028202010282020001010101020201830200010204 +02850100020102010d018100010e018100011d018100010d018100010401810001040181 +00010401810001030181000105018a000100010001000100010083000100011001820002 +018301000100820001000100810200010081010001008101008400010201020302030036 +028401000100010601820201028202010201028101028202010201028101028202010201 +028101028202010201028401020001020102810102010281010201028101028302010201 +040181000103018100010b01810001830100010207028201000181010206028201020107 +0101000e020d0103000202810102010281010201028101020b0281010201028301020102 +1f0281000202028200020003008102008300010001030101000201150281010281020101 +0104028600020001020102840201020102820201020102840102010201050101020901 +810200820002000100840200020002820200028202000188010001020100010002020201 +000202810001020182020100830001020102018300010001040181000103018100018101 +008100010401810001050101000501010008018100010301810001030181000107018100 +0108010100050183000100010201810001820100010c0182000100820001008200010082 +000100890001000100010001000104018102018301020102020282000200010081020002 +0082010002010281000205028100021b0281010203028101020b02810102850200020001 +008800010001000200020086000100020002008800010001000100010087000100010001 +000187010001000100010088000100010001000100810001010183000100018101008300 +010001810100820001008200010082000100810001820100018201000202020100810200 +81000181010081000207020b010e02820100010501820001008100010201020081010084 +000100010002008701000100010002008d00010001000100010001000100018101028202 +010205020200110201008102008200020083000200028102008100010201810002810201 +030114028500010001000185010002000102020284010002000201028101028202000202 +0281000181010084000102000186010001000100018201000182010001 +810200040081020001000402020181000183010201028202010282020002020201010102 +810001010181020184010201000181010281020102018100010601810001060181000105 +018100010501810001050181000105018100010401810001020183000100010501810001 +860100010001000102018300010001050181000103018a00010001000100010001000300 +020101008201000181010084000100010001008101008200010082000200020081010082 +0002008100020202010101020100810100020023028301000200810002820201020b0283 +000100018101028102011301820201020102810102820201020102810102820201020102 +810102010281010282020102010284010200010082000100820001008200010082000100 +820001008200010082000100820001008200010081000202020100810200820001008200 +010208020a010e020b018400010001008100020102810002010281010201028101020802 +81010282020102820201028202010201020101070283000200020f020200010281010084 +000200020003008202000102018202000181010214028101008100018301000102880200 +020100020001020102810102840201020102030285000200010002820200018401000100 +0184010001000182010001 +040083010002008300020002840200020001870100010002000102810200810002840200 +0200018601000100010001860100010001000281020081000186010001000100018a0100 +010001000100010001810100830001000193010001000100010001000100010001000100 +010081000183010001008100018101008c00010001000100010001000100810001010183 +0001000108018100018501000100010083000100010401850001000100010d0181000111 +018102018401020001008200020001008102000200820200020402010023028101020102 +8101020d0282010201850100020002008600010001000200880002000200020002008800 +010002000200010088000200020001000200880002000200020001008600020002000200 +82000100810001030181000184010001000102010100010181000106010802030106020c +018100020d028401000100010b01020081010086000200020002008a0002000100020002 +0002008b0002000100010002000200010201050281010214028101028302000200820002 +000100810200010001018100010601140201000501020281010283020102018301020102 +010283010201020102810102050281010282020102810201040101020000 +020081020001008102008200010203020501820201020202810102020284010201020106 +018102010401810201440181000102018400010001008300010001010181000108018100 +010901810001050181000108010200850100010001008200010001008101008200010206 +028201020082000200010081020001002802810002030281000201028100020402810002 +820201028202010283020102012f01810001870100010001000100010081010004008101 +00820001008200020003000602050006020d010e020a0101008101000200020181000109 +0101028101020502050181020105010c0201008101020802010001028200020083000200 +020302030001018500020102010214020101010084010001000288020102000200020002 +010281010202028100028602000200020002840200020001880100010001020001008300 +020001 +810200020083020002008100028602000200020001840100010002860200020002000282 +0201008100018401000100018f010001000100020100010001000201008e000201000100 +01000100010001000181010081000189010001000100010001008100018d010001000100 +0100010001000100830001000181010083000100018101008a0001000100010001000100 +880001000100010001008600010001000100840001000100830001000104018300010001 +080184000100010083000100018201000182010001060102008101008200020001008102 +000100810200010083020001020102810102010203003602020186000100010001008600 +010001000200880002000200020002008800020002000200010088000200020001000200 +880002000200020001008600020002000200820001008100010201810001140106020201 +8400020001020202810102810201010181020107010f0282000100830001000107018200 +01008200020001008702000200020002008c000100020002000200020002008700010001 +0001000102010e028100020a028100020802820002008100028102008200010081000102 +011502020082010001810102050283010201020302830102010201028501020102010282 +02010281020183010201028202010281020102010000 +020002028500020002010201028201020105010702090181020104018102010101810201 +020181020102018102010101810201510181000101018100010801810001810100020009 +018400010001008100018301020102010283010201020502010081020001008102000200 +3c0281000282020102820201028202010282020102820201020102810102820201028202 +010201028101028202010201028101028202010201028101020102810102820201020102 +810102810201010181000184010001000101018200010082000100820001008200010084 +000100010083000100018101021102840102010201830102010282020102820201020e02 +0b01820001000100010102000a0181020181010206020101810201070103028101020802 +8100020a0283000200020b02840102010001840100020102160202018300010002890201 +020002000100010283020100028e02010201020001000102000200020084000100010088 +000100010200010001 +820002008200020001008902000102000200020001890100010001020002000286020002 +0002000184010001000186010001000200018a01000100010001000100018a0100010002 +00010002000183010001008100018c010001000100010001000100018101009000010001 +0001000100010001000100010083000100018101008a00010001000100010001008a0001 +000100010001000100840001000100840001000100830001000182010001090181000181 +010001008101000100090101008101008300010200010081020082000100010081020001 +008202000204028101028102008200020002003602020184000100010088000100010001 +000100880001000100010001008800010001000100010088000100010001000100880001 +00010001000100860001000100020003000301810001100181020102012e028900010001 +00010001000106018100018301000200010089020002000200020001008a000200010002 +000200020086000200010001008100010101080281010203020100030281000204020100 +810200020009020100860100010001020181010218028200010201028100028602010001 +000102820201028402000201028902000201000100020002840200010001810100010085 +020100010001 +030081020083000200020302820102010501020281000281020101018102010b01810201 +03018102018301020102810201010181020103018102015801810001030104000a018100 +010301010001028201020181010284020100010001008102000100810200020084020002 +010201020100820200023402810102820201028202010282020102820201028202010201 +028101028202010282020102010281010282020102010281010282020102010281010201 +028101028202010201028101020102820102008500010001000101018200010083000100 +01810100830001000183010001008200020101012e020e018b0001000100020102000201 +020102810102010281010201020101010281010204020201810201030182020102820201 +020502810102010281000202028100028202010201028101028202010283020002008100 +020302010003018100018401000100022002810102820201028202010201028301020102 +850201020102018101028702010200020002000100850102010200010001 +090001028e000100020100010001000102000102010283000100018d0100010001000201 +0001000100018a01000100010001000200018a0100020001000200010002810200810001 +a10100010001000100010001000100010001000100010001000100010001000100010081 +000183010001008800010001000100010083000100018101008600010001000100840001 +0001008600010001000100810001820100010301810001050105008101008100010a0101 +000102020081020001008201000102010702010081020002008202000238028400020001 +028302010002840201020102820201020102810102820201028202010201028101028202 +010281020105018100010c01810001020181000102018100010401810001030181000102 +010102010030028100010c01020002018600010001000100880001000100010002008a00 +010002000200010002008700010001000100010101810201810102080201008102008100 +020702820002008200020082000200810002040202008101000100810100010017028400 +0200010201028a0002000100010001020002010281000289020002000102000100028502 +0001000100020081020002008101000000 +020083010002000100830200020082000102840200010001970100020001000102000200 +020100010001020001000100018c010001000100020001000102018c0100010002000100 +020001020081000102018900010001000100010001010181000103018300010001010183 +0001000102018100010101810001080183000100012201820001000200820100010c0181 +000181010002008301000100010081010082000100010081010002008202000203028101 +028102000200350204018302010001870100010001000100880001000100010001008800 +010001000100010087000200020001000289020002000100020001008200020003008102 +00850001000100010101820001000100030183000100010201010003012e028b00010001 +000100010001000102018200010082000100810002010281010201028101020102810102 +010201018202010209020401020283010201020702810002090282010002080281000201 +020100810100810001050119028101020302840102010201010103028101028202010281 +02018201020102010202850102010201008200010083000200010001 +040083020001020302010101020401020202018102018101028102010701810201020101 +020201810201020181000102018102010201010202010102820100010901810001010183 +000100010201810001030183000100010101810001010182000100850001000100010301 +820001008400010001008600010001000100820001008300010001080181000103010300 +810100850001000100010801030201000901010201018100020102020081020002000302 +810002220281000219028101028202010282020102010281010282020102820201020102 +810102820201020102810102820201020102810102820201020102810102010281010282 +020102810201830100010083000100010401830001000101018300010001810102810200 +83000201022e028100010201830201000104018200010084000102010086000200020001 +00880002000200020001008c000100020001000200020001008300010001070101028101 +020502810002040281000203020100810200820002008100020502830100010082000100 +02001a028300020002010283000100018401000200028202000201028100028402000200 +018601000200020002850200010001008400010001000000 +060001028100028902000200010200010001840100020001860100010001000184010001 +00018801000100010001020088000102000100010001810100880002010001000100018c +010002000100010001000100018101008100018101009800010001000100010001000100 +010001000100010001000100810001830100010084000100010083000100018301000100 +84000100010086000100010001008200010083000100010c010100810100010081010085 +000100010001060183020002000100020182000100820001000100810200010001010802 +010081020001003602810102070286000100010002008800020001000100010088000100 +010001000100880001000100010001008800010001000100010082000100030081010001 +000501820001008300010001080102028301020102050281000226028a01000100010001 +000100010201020002018100010c01010283010201020102810102830201020106018302 +01020181010202028101020b028101020b02810002040283000102008300010001830102 +010217028300020002020282010001830100010201028200020181010296020100010001 +00010200020001020001000102000200028302000100 +820002000400040202018102010301020211010202840102010201010181020103010102 +02010102020181020154018100018301000100820001008100010f018202000201028101 +000100040181020082000200010082010002010202008102008100020302810002370204 +010302070182020102820201028202010201028101028202010201028101028202010201 +028101028202010201028101020102810102820201028102018301000100830001000105 +010200810100820001008200010082000100820001020802810102020281000217028101 +020502030182020100830001000101010300010181020088000100020001000200880002 +000200020002008a00020002000200020001008100018201000181010281020182010002 +8102008100020102830002010203028100020a0283010200020502810001850100010001 +0002001f0283010201028102018101028302010201020101028201020102018202010281 +0201010101020101010202010102 +04008102008d000200020002010001020001000184010002000186010001000100018401 +000100018101008100018d01000200010001020001000100018101008800010200010001 +000181010083000200019601000100010001000100010001000100010001000100018101 +008c00010001000100010001000100810001810100860001000100010081000183010001 +00840001000100860001000100010086000100010001008100010c010300830100010082 +000100810001070103028400010001000300820100010701030201008102000200820200 +023d02010087020001000100020088000200010002000200880002000200020001008a00 +020002000100020001008800010002000100010004008101000100030184000100010083 +000100010801010281010282020102050281000181010001000102810102840201020002 +19028a010001000102010001000103018100011101830201020184010201020103010102 +820102010701040281000284020001000201028101008100028202000211020201810201 +030182000102160201008402000200020202870001020100010201860100020001000184 +01000100028b0200020002010002000200028602010002000200 +840002000200840001020002020202018102010201030211018602010201020102810201 +01018102010301010203018102010101010253018100018401000100018101008100010e +010302810001810100830001020002008101008200010001008101008100020a02010023 +028101021d02270101028101028202010281020183010001008100010601820001008200 +010082000100820001008200010082000102060282010001810102810200830002000206 +028101020102030181000284020102010281020181010203020301820001008400010001 +008200010081000183010002008a0001000200010002000200880001000200020002008f +000200010002000200020002000201028502010200020002008102008100020802020001 +028500020001000281020081000282020002010288010002000200020002080281000210 +028101020602810102810201810102820201028102018101028302010201810102810201 +8101020402010106020001 +0102820002000100010283000200018c0100010002010001020002000188010001000100 +01000186010001000100018f010001000200010200010001000201008a00010200010001 +000201008100028302000100810001a10100010001000100010001000100010001000100 +010001000100010001000100010081000181010086000100010001008300010001810100 +860001000100010084000100010084000100010081000182010001060181000181010002 +0083010001008400010001008100010501040283000201028102008100010b0181000203 +02820002000200390202010c0201008702000100020002008a0002000200020001000200 +880002000100020001008800010002000100020004008102008100010301810001810100 +0100820100010e010502820002018101008100020e028201020183010001020202810102 +080285000100010200850001000100010101830001000181010282020102010281010201 +02810102010281010201028101020402820102010d010100050201008102000100810200 +820002000100030281010204028100020b02810102020201018102010401060281010201 +0281010286020002000200028d02010200020002000102000100018d0100020002000102 +00010001000289020002000201000200028302000200 +040081020082000200820002018601000100010001840100020001840100010001860100 +010001000184010001000188010002000200010200810001930100020001000102000100 +010002000100010200830001000183010001008100018c01000100010001000100010001 +01010100030101000201830001000101018100010201830001000111018100010e018100 +018101000200820100010a01020281000284020102010082000100030081010001008101 +008300010002080201008102008100023802060184020102010282020102010281010282 +02010282020102010281010283020102011a018200010081000102018100010101820001 +008200010082000100820001008500010002000206028101008200010281020083000200 +020a02830102010202020201080205010100850100010001000200010102008b01000100 +01000100010001008a00010001000100010001008b000200020002000200020102820201 +020302010085020002000200810002820200020502810002150282000200020084010002 +00010201080281000201020100070283000200018201000201028100018b010002000201 +00010002000184010002000284020002000185010201000201 +830200020002000402020181020103010202110102028201020182010201020101020301 +810201030181020102018102011601810001030181000103018100010201810001010183 +000100010201880001000100010001008400010001008300010001010101000101810001 +060182000100010002010300830100010081000104010702820001008100010401020081 +0100010082010200810002030201004a028a01020001000100010001008a000100010001 +000100020084000200010285020001000200810002860201000200010007000201810001 +010101008201000108018102010301050282000201010181000282020002130203010102 +010104020301830201000102018100010201810001840100020002010281010201028101 +028202010201020101040281010201028101020302020182020102020281000201020100 +050282000200810002810200830002000215020101010282010201020184000100010207 +028501020102010203028101028302010201820102018101020102030101028201020105 +0106020201820002010101 +06008c020002000201000102000100018401000200018601000100010001840100010001 +810100810001820100028102008d00010200010001020001000100028102009400010001 +020001000200010001000100010001000181010083000100018101008300010001810100 +83000100018101009000010001000100010001000100010001008a000100010001000100 +01008400010001008600010001000100850001000100010a01040001018100010a010202 +8100028102010301050008018202010203028200020003001e028101022a028101028202 +010282020102010281010282020102010281010283020100028202010282020102830200 +010282020102820200010501010003018100010101820001008200010082000100840001 +00010083000100020502820001000100810102850200020001020e020401010282000102 +03028501000100010003008301000100020003018e000200010001000100010001000100 +8a000100010002000100010087000100020001000104010a020100010202000102810102 +170285010002000200850001000100010301040281010282020102010281000203028100 +028702010002010001029002000201000100010001020001000100018401000100028402 +000100028202000182010001 +810100040004020201810201020101028101028102010f01030201018102010101810201 +040181020103018102010101010255018200010081000181010004008301000100810001 +04010502010183000100018301000100010081010082000100010083010200022d028101 +021f028101028202010201021b0181000101018800010001000100010003000101010002 +018200010082000100840001000100820001008200020083000100020602030181000215 +020201020201010402010181000182010001030184000100010081000102018100010301 +820201020102810102010201018202010201028101020102010182020102810201010183 +020102018101020502810102010281010284020002000202028100021602810002820200 +01050181000181010207028101020c028101028102010101010206018102010301810201 +810102840201020102810201010102020001 +810200040084020002000186010002000100018201020086000201000100018601000100 +0100018401000100018d0100010002000201000100010001810100810002880200010001 +000201008500020100010081000186010001000100018101008300010001810100830001 +000181010083000100018101008c000100010001000100010001008c0001000100010001 +000100010086000100010001008400010001008700010001000100010701810001810100 +010001010300810100830001000104010202810002810201020103000b01820201020302 +820002000300200281010212020201850001000100018601000100010002020284000100 +010283020002008100020102850002000100028602000200010002850201000200020102 +810102820201028102010601010003010100820100010a01020201010602820001000100 +190281010202020101020201010102810102830200010089000100010001000100010201 +8400010001008a0001000200010002000200830001000288020100020002000200830002 +000104018402010201020102810102060285010201020002170281000203028100018101 +02010203010d02820100028202000202028c000200010001000201000100018601000100 +01000191010001000201000100020100010001020002 +07008a02000201000102000100018b010002000201000100010001020181000102018100 +018101028502000100020183010002010201830200020101010102020182020001030181 +000152018100018101000200820100010a01030282000201810100810001810100820001 +00010081010001008101008100028202000208020100200281010209028101020b028101 +020e02810102820201028202010201028101028202010201028101028202010201020d01 +820001008200010002000101810001030184000100010082000100820001008200020083 +00010002060203011e020101030281010203028100010501020002010100110102020101 +810201030181020102018302010201810102070281010207028100021302810102020281 +000181010002000402830100010202028101020f02860100020001000186010002000100 +010201810001840100010201070102028101020102 +010001028300020002020201018102010301820201028102010701810001020181000102 +018100020202830102000101018300020001020187000200010002000101018400020100 +0101019e0001000100010001000100010001000100010001000100010001000100010083 +000100018101008600010001000100810001850100010001008400010001008400010001 +008400010001008100018201000107010400010104008101008300010001040104020201 +040006010100810100840002010002020201008102000200220281010224021b01010281 +010201028101028202010281020101010100170103020101070204011802810102010201 +010402810102030201018200010085000100010001040186000100010001008a00020002 +000200020002008100020102890002000100010002000102010102020126028101020102 +820100018301020102010281010203020101050281010207028100020602810102810201 +070181000104018100018901000100010200020002840200020002 +010081020001008602000200020002840200010001850100020002018101008100018201 +00018401000100018101008100018401000200028a02000100010001020001008a000102 +000100010002010081000188010001000100010001810100810001810100830001000183 +0100010081000181010083000100018101008c0001000100010001000100010081000181 +010085000100010001010184000100010084000100010086000100010001008300010001 +0b010400010101000b010202820002010301030081010083000100010301820201020502 +82000200020021028101021a020201820201028202010282020102820201028202010201 +028101028202010282020102010281010282020102010281010282020102010281010282 +020102810200810001020103008301000100820001000100830100010001008301000100 +820001008300010002030282000200850001000100021602010102028101020402810102 +0302820100010a0101008201000185010001000200890002000100010001000201020100 +820100010d011002010006028101020e0281000187010201020002000205028100020202 +8101020402810002020281000203028701000102000200020202850001000100018b0100 +01000102000100010001840100010002840200020100 +820002008100028302000102810201820102010401020212018202010202028101028102 +01070181020103018102010101010236018100011b018200010081000101010100810100 +010084010001000106010402010102000101010081010082000100010081010083000200 +020402810002030281010208028101021202810102820201021502040109028101028202 +0102820201020102820102011b0184000100010081000114010302010107020401170281 +010209028101020402850100010001008300010001060181000108010202810102070282 +0001028202000102018102010201120281000202028101028402000200020d028101020b +02810102030281000201028101020f028101028202010281020101018102010601010284 +010201020101018202010202020001 +030081020088000200020002010001840100010002840200010001840100010001860100 +010001000184010001000291020002000200010001000102000100020001810100880002 +0100010001000181010083000100018701000100010001008100018f0100010001000100 +010001000100010081000183010001008100018101008600010001000100830001000183 +010001008400010001008800010001000100010085000100010001070182000100040004 +010100090102028200020101010300090101020101020282000200010081020002001e02 +810102150201010502810102020281010283020102010a01820201028202010201028101 +028202010201028101028202010201028101028202010201020501020083010001000100 +830100010082000100820001008200010082000100830001000203020100830200010081 +000217028101020902810102040201000201010082010001020101008201000187010001 +00020002008b000100020002000200020002080281000182010201810102030281010211 +028101021002820100020202810102820201020f02810102010287000200020002000202 +028600020002000102930201000100010200010002000201000100010001820100018401 +00010001810100 +020081020001000102820100010201810001810102020283000100010701810001010184 +020102010202028401020100028102010201810201030101020a01810001490181000109 +010500810100010006010102810002010201018200010082000100820001000100810100 +8200010001008101022e0281000203028100020402810002030281000203028100020302 +820001028502010200010285020102000102010284010002010283020100028202010282 +020002010284010200010281020182010001030181000101010100820100010301810001 +030181000104018100010201810201810102060201018200010219020101070281010202 +020401810001030181000104018100010f01010201010602810102060285010201020102 +10028201000201028100020e028100020302010181020181010201028101020402810102 +07028100020a021501860201020102010201020101 +040081010282020002820201008100010201830002000182010001010181000184010001 +000182010201810100820001008300020002880200010002000200018301000100010082 +01000183010001008100018c010001000100010001000100018101008300010001810100 +82000100820001008400010001000100010182000100860001000100010002008b010001 +000100010001000100860001000100010086000100010001008100018201000107010400 +040102000901040203000d0101000102020081020002008102008100023a028101028102 +010201030212018100010301810001030181000102018202000282020102010281000103 +010200820100018101008300010001830100010081000183010001000100840200010002 +030283000200018101008100021702810102020281010204028101020202820102018201 +000104018100010201830201000182010201870102010200010002820201028102008100 +02030201000b02850102000201020a028301020002070201000a02820001028202010281 +02010101810201810102810201040182020002830201000210029b000200010200020001 +00010200010001020002000100010200020002820200028302000100 +050002028200010083000100010101010201000101810001020181000184010001000102 +010300820200020102840002000100820002018101000100820100010201820001000100 +020101008101000100020185000100010001010101000101810001010184000100010081 +000101010300010183000100018401000100018401000100010201810001090183000100 +010e01050003018100010701810002030281010001008101000100810100820001000100 +8101020b028101008100021d028f00020002000200020002000200020002810200820002 +008200020082000200820001008200020082000200820002008200020082000200820002 +008200020082000100850001000201008300020002810200870002000102000100850002 +010002008100028202010001000201010081010082000100830001000101010200020183 +000102018201020181010205028200010082000102180281000208028101020102820100 +010201010082010001860100010001000101010100820100018101020102010182000201 +010101028100020402820001020602810102820201020502810102040281010209028701 +020002000200020602830001000103018100010101010204018200020104018100020102 +020003028100020302810102050281000201028100018101029202000201000100020002 +010001000201000102 +020083010002008300010201050186000102000100018201000101018402000100010201 +840001000102020285000200010201850100020100010501830001000182010001010101 +000501810001840100010001010185000100010001010185000100010001830100010081 +000102018300010001010182000100810001830100010082000100010081010087000100 +010001000105018100018201000104010100810100810001020102008101008100010701 +030202000101820002000100810100820001000100820200020102030081020001008302 +000102360281010201028101020202010182020102820201028202010282020102010281 +010282020102820201020102310182000100820002008300010002050204011502810102 +82020102080281010201020e010202810102840201020102850201020102008300020102 +010281000282020102140281010201028101020f02030084020002000205028100018201 +020181010281020101018102018201020103010100810100030008028101020302810102 +82020102060281010281020101010102810102820201020302830102010201020001 +010081020086000102000102010401010282010201030183020102010b01040281000202 +020100820100016701050002018100010101810001030181000183010201000500030181 +020105010a0202008102008100021c020100810200820002008200020082000200820002 +008200020082000200820002008200020082000200820001008200020082000100820001 +008200010082000100820001008200010082000100820001008200020084000200020082 +000100820001008200020082000200820002008200020082000100840001000100820001 +008200010086000100010001000200010102020101220281000282020102070281010204 +020100850100010001008600010001000200830001000183010001008500010001020101 +018400010001028102008100020f02830102000213028101020102810102020282010200 +810002830201000102010202810102020282010201060101000401020201008602000200 +02000202028100020302810102050281000205028101020402850102000200020002 +050002020101810001010185000100020001010182000100810001820100010101890001 +000100010001020083000200020102820002010601890001000100010001000181010083 +000100018801000100010001000183010001008300010001830100010083000100018301 +000100830001000181010088000100010001000100830001000183010001008600010001 +000100830001000109018100018e01000100010001000100010001000104018100018101 +008400010001008200010082000100010081020082000100820001008200020001008101 +0081000281020001008102000100820200023b0204010402830102010282020102820201 +028202010201028101028202010282020102010281010282020102820201020102810102 +820201020102820102011e010200810100820001022e0281010205021501010281010286 +020001000102010101010281010203028101020b02810102140282010200860002000200 +010201028201020109010402030181020103010300810102010283010001020102810102 +03028101020e0281010202028101020b02 +810002810200010085020002010001010182020001830102000102018100010901810001 +010102028100028402000200028202000182010001010181000101018300010001820100 +018201000184010001000101018100018201000103018300010001030183000100010201 +810001820100010201830001000103018300010001020183000100010301830001000107 +018100011301010004018100010801040205010202810102060202008102000300820200 +021d02820002008100028302000200810002830200020081000283020002008100028302 +000200850001020001008500010200020081000283020002008100018301000100810001 +830100010081000183010001008100010101010082010001810100850001000102008500 +020001020083000100018301000100010086010001000100018301000100850001000102 +010301300281000204020100010182000100810001020103008502010200020081000202 +0282010200810002820201028102008100020e028301020102140281010206028101028b +020001020001000100010001030102020801020004010302010084020002000206028100 +020302810102840201020102050281010204028101020102810002 +820002000200020201018300010201020181020181010082000201030182000100810001 +040102000602810001060181000105018100010601810001050101000501830001000103 +0101000501010004018300010001030101000401830001000102018100010c0192000100 +010001000100010001000100010001000100810100820001008200010082000100820001 +008200010082000200820002000100810100820002000100810200010003028101022302 +820100020302810002030281000202028100020302810001030181000103018100010301 +810001020184020002010285020100020102010281000282020102820200020102840102 +000102010284010002010201028200020102018100011201010081020001000101810201 +820102018201020183010201028202010220021301020281010203028101020202810102 +020281010201020201100281010210028101020402840002010200820002018101020102 +0b0104020a01020003020100810102820201020a02810002050281010202028101020a02 +82010201 +870002000200020102810201810102860201020102010201028101028102010e01090208 +01810201540181000102018700010001000100011b010502830102010201028200020002 +008102008200020002008102000200210281010216028200010284020102000282020102 +820200028202010203028301020100820001028502010002010282020100830001020181 +010082000201820102008300020001810100830001000181010083000100018301000100 +820001008400010001008200010082000100810001060182000100860001000100020082 +000200010083010001020802830001020081000283020001028202000284020002010289 +020001000201000201008100018101000100820100010101020082020002830200010001 +0002010100820100018301000200010081010203028100020a028100020c028300020002 +070204010202010082010001840100010001020101028101020102070182000100010081 +010282020102820201020e028501020102010201028101021202 +010081020001008402000201008100028202010082000102010281000181010083000200 +018401000201008100018201000184010001020087000200010200020081000286020001 +000102008700020001020001008100018401000100018101008300010001820100018201 +000184010001000184010001000182010001860100010001000181010085000100010001 +840100010001860100010001000186010001000100018401000100011201860001000100 +010081000181010001008101008200010082000100820001008200010082000100820002 +000100810100850002000201020f02810002190281000283020002000100830200020001 +008302000200010081020082000200820002008300020002810200850002000201008800 +020001000100020001008101008100028302010200810002830200020082000102010201 +000302010004028100020202820100010301810001110101008101008300010001060104 +02060108020801810201820102018101028102011b010102810102020281010202028101 +02020202010b028701020102010201020102810102010281010201028301020102080283 +01020102050282000201020181000182010001020103020d010100020201008602000200 +010002040281000282020102010281000202028300020002020281000205028101028302 +010200 +820002008100028202000214028101020402830102010281020181010201020101030201 +010202810102820201028202010204028301020102810201830102010283020102010101 +810201390181000102018a00010001000100010001008600010001000100820001008400 +010001008200010082000200820002008200020001008102008200010001008102008200 +020001008102000100810200010081020002004f02810102070281010205028100028202 +010282020002030201000302010002028101008700010002010001008100018301000100 +810001010101000901020001010102020001028200010081000208028300020001010101 +008201000203028100020102820002008100010201020002018500010001000101018a00 +020002000201020002008100020102820002008100020102010082010002010201008202 +000284020102000283020001020302810002050281000205028100020102020106028301 +0200010a0103020a0102000101820200028202010202028101020e028101021302810102 + +010101008101008300020002820200020102810002070283000200028202000201028100 +020602810002030281000282020002060281000282020002020281000282020002840200 +020002820200028302000200830002000283020001008300010002830200010083000200 +018401000100018501000100010083000100018101000100820100018101000100820100 +018101000100820100011801810201020183020102010101010202018102010201830201 +02010201810201850102010201020702810102020202000d028100020302810002020286 +000200020002000100830200020001008302000200010087020002000100020001008102 +008200020082000200820002008200020082000200820002008200020001008102008200 +020082000200820002008200020081000283020002008100028302000200810002010283 +000200020102010003028301020002010282010002820201028702010001020102008200 +010082000100810001030182000102020282000201020182000102090281000104018100 +020302810002010284010201000104018100010a01030281010203020901010202010402 +810002050285000201020102110282010201010108028101028102010301810001040104 +020e01010201008101008500020002000206028100020302810102860201020102000209 +028200010282020102 +850001000100010901810201060181020102010102820102010401020281010282020102 +84020102010282020102370281010206020101810201810102010204018102010a018100 +018401000200018301000100880002000100010001008400010001008200010082000100 +820001008400010001000100810100820001008200020001008101008200010001008102 +000100810200010081020081000221028101021c0281010206028101020a028101020102 +8101028202010202028101028202010283020102018101020e0281000202028100020202 +010082020002820200020202830102010283020102010201820201028102008100020102 +02010e028201020182010002030281000202028301020001040181000102018100018201 +0001840100010001820100018d01000100010001020002000100028c0200010002000100 +0200020002820200028402000200028c0200020001020001020002000285020001020002 +8502000200010282020102070281010202020a010202820102010b01810002020202000f +0281010202028101028402010201020a028101020202 +820100018201000182010001810100810001030182000100810001040182000100810001 +030185000100010001020182000100810001030182000100810001030183000100010301 +02028100020102810102050281010219028101020b028100020102810002820200020102 +81000202028101020d020101010281010283020102010f01810201040101028101028202 +010202028101020302810002810200840002000200810002030281000207020100820200 +028102008300020002810200830002000281020001000202020001028200020081000281 +020083000200028102008300020002810200010001028200020081000283020002008100 +028102008500020002010083000200028102008600020002000200850001020002008100 +028302000200810002830200020081000284020002000201028400010200020502020183 +000100028102008900020002000100010001820100020302010083010001020902810002 +850200010001028402000200020202840002000201010184000100020184010200010201 +028101020702810102020281010203028101020102810102120201010202810102030281 +000184010200020182010201810102050282000102020281010201028201020109010202 +08018102010401040286010002000200020802810102820200020202810002820200020a +0283010200020002 +02008201000155018102010401060281010207028100020b028100020a028100020c0285 +000200020002830200020001000102820002008100028302000200810002830200020081 +000183010001008300020100020083010002008100028102008300020002020281000203 +028100020302810002020281000203028100020202810002030281000202028100020302 +810002020281000202028100020302810002020281000202028100020302810002020281 +000202028100020302810002020281000202028100020302810002020281000203028100 +020202810002030281000202028500020102010282020002840201020002020282000201 +010184020002010201028100020102010182000102010281000203028200010202028100 +020402810002030282000201010182020002040281000203028100020402810002040281 +000202028301020001010102028100020402810002040281000203028d01020002000201 +020001000200020602010182020102830201000282020102020208018100020302820100 +010501010203010602010084020002000209028101028402010201021302 +020005018100010701810001060181000106018100010601810001060181000105018100 +010501810001050181000105018100010401810001040181000105018100010b01840002 +01020181010206028100020a0281000203028100027f021d028100020e02810002030281 +000202028100020302810002030281000203020100020281000203028200020181010282 +020002020284010002010201028100020302820002018101020102810002820201028202 +000204028200020184010201000281020102018100018101020102810002040281000204 +028100020402810002050281000204028100020402810001020189020102000102000200 +020702830102000202028100028402000201020202030181020101018400010201020402 +81000107010102810102030281010282020102820201020c028500020002010282020102 +0e02 +010082010001020181000184010001000102018100018401000100010101810001840100 +010001020185000100010001020185000100010001010181000181010081000102018500 +010001000101018500010001000101018500010001000182010001840100010001860100 +01000100018201000184010001000186010001000100018401000100018a010001000100 +01000100018201000181010081000186010001000100018f010001000100010001000100 +020001028402000200020102810002130281000203028100020302810002020283000200 +020102830002000203028100020302810002830200020081000283020002008400020002 +008100028302000200840002000200810002830200020086000200020002008a00020002 +000200020002008600020002000200810002810200860002000200020081000281020001 +000102010082020002810200010002020100020203008102000200020201000302010002 +020100030281000203020100020201000302810002020201008202010281020081000202 +020100010101028100020202020002020200020283000200020102840002000201010102 +000101840200020002010281000282020002010283000200020102810002820200020102 +810002820200020102840002010002020282000200810002010282000200820002018401 +000102000100010284000201000182010002030201010102810002830200020085000201 +02000281020183010201020c020301820201028102018101028202010203028200020081 +00020a02810002020201010102810102820201020e02 +830001000105018100010601810001060181000107018100010501810001060181000105 +018100010501810001050181000105018100010401810001050181000104018100010401 +810001040181000104018100010301810001040181000103018100010401810001030181 +000102018100010301810001010183020100010201820200020202830102010218028100 +020302810002020281000203028100020202810002020281000203028100020202810002 +020281000202028100020202810002030281000202028100020202810002020281000202 +02810002030281000202028100020202810002020281000244028101021a028101022102 +82010201020102028101020d020301010281010281020184010001000201028101020202 +8101028102018501020102010206028101020d0202010302810102810201810102820201 +020402010103028101020702810102020283010201020c028101028302010201 +820100018201000184010001000103018500010001000102018500010001000102018100 +018101008100010201850001000100010201850001000100010101850001000100010101 +850001000100010101850001000100010101850001000100010101010082010001010185 +000100010001830100010081000101018500010001000183010001008100010101820001 +008100010101820001008100010101020002010100820100018301000100810001830100 +010081000181010083000100018101008300010001830100010081000181010086000100 +010001008100018101008300010001810100830001000181010001000101820001008600 +02010002010201020100030281000203028100021d028100020102020001020100840200 +020002850200020002008100028102000100010202000102010002020100020282000200 +810002810200010001020100830200020083000200028102000100010201008502000200 +020081000281020001000102010082020002810200010001020100820200028102008600 +020002000200810002810200830002000281020098000200020002000200020002000200 +020002000200020002008100028602000100020002810200830002000286020002000200 +028102008300020002860200020002000286020002000200028302000200810002010285 +000200020002860200020002000284020001000188010001020002000100840002000102 +010281010201028700020001000201022d02830002000282020102080281000202028301 +02000282020002040281000204028101020102 +820100010101810001070181000106018100010601810001060181000106018100010501 +810001050181000105018100010501810001040181000105018100010401810001040181 +000104018100010301810001040181000103018100010401810001030181000103018100 +010301810001020181000103018100010301810001020101000301010002018300010001 +830100020101018100010301810001020181000102018100010201810001020183000201 +028302000201840102000102010281000202028100020202810002020281000201028100 +020202810002020281000202028100020102810002020281000202028100020202810002 +020281000201028100020202810002020281000202028100020202810002020281000202 +028100020202810002020281000202028100020202810002020281000202028100020202 +810002030281000202028100020202810002030281000202028100020302810002820200 +028202000282020002820200020202810002020201000302010004020100040281000203 +020100050281000203020100040201008402010201028102008100028102018501020002 +0002010283010200020102010183020001020c0281000212028100020e02810002820201 +02040283000201028202000201028201000207028100020702 +010181000182010001010181000103018100010101810001030181000182010001030181 +000101018100010201810001820100010201810001010181000102018100018201000102 +018100018201000102018100018201000102018100018201000101018100010101810001 +820100010101810001010181000182010001010181000182010001010181000182010001 +010181000182010001010181000182010001820100018201000101018100018201000182 +010001820100018201000182010001820100018201000182010001010181000184010001 +00018201000103018100010201810001030181000101018300010001010183020100018b +0100010200010200010002018a0100010002010200010201840100010001010183000100 +0184010001000184010002000101010100840201020002010281010201028101027a0281 +000203028100020302810002030281000203028100020402810002030281000204028100 +020402810002040281000203028100020502810002040281000202028100028202000281 +020181010083000200020102810002060281000204028100021e02010182020002050201 +008402010001020302810002820201020402810002820201028202010201028100020902 + +010002018100010301810001820100010301810001010181000103018100018201000102 +018100010101810001020181000101018100010201810001820100010201810001820100 +010201810001820100010201810001820100010101810001820100010201810001820100 +010101810001820100010101810001820100010101810001820100010101830001000101 +018100018201000101018300010001010183000100010201010003010100030101000301 +010003010100020101000201830001000101010100020183000100018401000100010101 +010003010100020101000201010003018100010201810001020181000101018202000101 +018202000101018302000201830102000182010200840001020100840001020100810001 +010101000201810001010101000201010083010201008400020102008100020102010001 +028300020002840200020002840200020002840200020002840200020002840200020002 +840200020002840200020002840200020002840200020002840200020002820200028402 +000200028402000200028202000282020002840200020002840200020002010283000200 +028402000200020102830002000201028300020002010283000200020102830002000201 +028300020002010201000302830002000202020100030283000200020202830002000202 +020100040283000200020402810002040281000205028100020502810002050281000203 +0283010200021a0281000206028100020902810102010281010282020002010281010203 +028100020702 +010001018100010101830001000101018100018301000100810001010181000101010100 +020181000181010001000101810001010102000201810001810100810001010185000100 +010001010181000181010081000182010001840100010001010185000100010001860100 +010001000182010001810100810001820100018101008100018201000181010081000101 +018200010083000100018101000100010182000100810001830100010001008301000100 +010083010001000100830100010001008301000100010083010001000100830100010084 +000100010001008301000100840001000100010081010002008301000100840001000100 +840001000100010081010002008101000200810100020081010002008101000200810100 +020081010002008101000200810100030081010002008101000400810200030081020003 +008101000300810200030081020003008101000300810100030081020002008102000300 +810200020081010002008101000200810100020081010002008101000200810100020081 +010001008102000200830200020084000200020002008102000100830200020084000200 +020001008302000200840002000200010083020002000100830200020001008302000200 +010083020002000100830200020001008302000200010082020002810200010083020002 +000100010282000200010082020002810200810002820200028102000100010282000200 +010001028100028402000200028302000200830002000201028300020002040202000102 +810002810200010003028100020602810002070281000281020083000200020902810002 +010202008101028202000201028300020002020281000281020081000202028101020102 + +8100017f017f012d01810201830102010202028101028202010281020181010203028201 +02013d01820201027f0222028101020e0281010204028101021002 +010005018200010081000104018200010081000104010200050102000501020004010200 +040182000100810001030101000501010004010200030102000301020003018300010001 +020102000301020002018200010081000101018300010001010183000100010101830001 +000101018200010081000183010001008100018301000100830001000182010001830100 +010081000184010001000183010001008300010001820100018401000100018301000100 +840001000100020001010200010102000101020001010200010102000101020001010200 +010102000101020001010200010102000101020081010084000100010001000101020081 +010002008101000200810100040081010002008101000300830100010084000100010084 +000100020002008101000200810100020081010002008101000200810100020081010002 +008101000100810100020083010001008100018101000200810100020087010001000100 +010083000100018101008400010001000100830100010081000183010001008500020002 +010083000200028102008300020002810200810002830200020081000282020002810200 +810002020281000203028100020402810002040281000202028300020002030201008102 +008100028502000200020081000281020081000205028100020402010001020100020201 +000702810002820200020202810002020281000201020100020283000200020602810002 +010282000102020201008502000100010201028100020202840002010200 +010181000101018100010301810001010181000103018100010101810001020181000101 +018100010301830001000103018100018201000102018100018201000106018100010401 +810001050181000104018100010501810001040181000104018100010401810001030181 +00010401810001030181000103018100010401810001020181000103018100017f017f01 +1a0184020102010256028101020502810102050281010284020102010204028101020302 +83010201020102810102020281010208028101020102 +810001030183000100010501830001000104018300010001040183000100010401830001 +000104018300010001030183000100010101810001860100010001000184010001000186 +010001000100010101820001008100010101850001000100018601000100010001860100 +010001000186010001000100018101008300010001860100010001000181010083000100 +018101008300010001810100830001000181010083000100018201000182010001840100 +010001810100830001000184010001000181010083000100018401000100018401000100 +018201000184010001000184010001000183010001008400010001008400010001008400 +010001008400010001000200830100010084000100010002008101000200810100030081 +010082000100020081010082000100840001000100820001008200010003008301000100 +030081010004008101000400810100040081010002008101000100010102000101020081 +010002008101000100010102000101020001010200010102000201010002010100020101 +000201010003018100010201010003018100010201810001030181000102010100030101 +000301010003010100030101000301010003010200030101008101020102010004028100 +021a02810002050281000205028300020002040201000502830002000282020002020281 +000202028300010200810002010285010201020002860201000200020101010100850200 +0100020183010002008100018201000281020186010001000100020002 +060102000601020005010200050102000501020005010100050102000401020004010100 +040102000301020004010100040101000401010003010200030102000201020002018300 +010001010183000100010101020002010200010182000100810001830100010081000181 +010001000101820001008400010001008300010001810100840001000100840001000100 +010001010200010102000101020001010200010102000101010002010100020101000101 +020001010200010101000101020001010200010102008101000100010102008101000200 +810100010081010002008301000100050081010001008301000100820001008400010001 +000100830100010082000100840001000100840001000100010083010001008400010001 +008400010001008200010086000100010001008600010001000100840001000100840001 +0001008600010001000100880001000100010001008a00010001000100010001008a0001 +000100010001000100810001830100010081000183010001008100018301000100810001 +830100010081000182010001810100810001830100010081000182010001810100810001 +820100018101008100018101023802810002140283000201028202000201028100020602 +8401020102018201000102018100010201830001000101018100010101 +7f017f0127018100010a0181000101018100010201810001010181000102018100010101 +810001020181000102018100010101810001020181000101018100010201810001020181 +000102018100010201810001020181000102018100010201810001020181000102018100 +010201810001030181000102018100010301810001030181000102018100010301810001 +030181000103018100010301810001040181000104018100010301810001030184020001 +020101018302000102040281000203028201000230028100020602810002050202018400 +02010201820102010101810001010181020104018100010001 +820100010201010002018100010201810001020181000101010100030181000101018100 +010201810001010181000102018100018101008100010101810001010181000101018100 +010101810001010181000101018100010101810001820100010101810001810100810001 +820100018101008100018201000181010081000101018200010081000182010001820100 +010101820001008100018201000182010001820100018201000182010001820100018201 +000182010001830100010081000183010001008100018401000100018301000100810001 +830100010084000100010084000100010081000184010001000184010001000181010001 +008301000100840001000100840001000100840001000100840001000100820001000300 +810100840001000100820001000300810100820001000300810100020081010001008101 +000500810100070081010006008101000700810100060081010006008101000300810100 +820001000300810100020081010082000100030081010084000100010084000100010084 +000100010082000100020081010002008301000100820001000200830100010084000100 +010084000100010081000183010001008400010001008100018301000100830001000181 +010083000100018201000182010001820100018301000100810001820100018201000101 +018300010001010182000100810001820100018101008100018201000181010081000282 +020002830200010282020002810200810001010182000100810001020183000100010201 +810001830100020183010201020202830102010201028100023602810002030281000201 +0201000102 +040102000101810001020102008201000103010100820100010301020082010001020102 +008201000102018200010081000102010300040102000301010082010001020102000301 +010082010001010182000100810001010101008201000186010001000100018101000200 +010185000100010001810100020083010001000100830100010001008301000100010083 +010001000200010182000100820001000100850100010001008100018101008100010101 +020001010200010102000101020001010200020101000101020001010200010102008101 +000200810100010001010200810100030081010006008101000100010101000101020001 +010200810100010001010200810100010001010200810100010081010005008301000100 +010081010084000100010001008301000100820001000100010102008301000100820001 +000100010102008301000100840001000100820001008400010001008400010001008400 +0100010084000100010084000100010086000100010001008400010001008a0001000100 +0100010001008a0001000100010001000100830001000181010093000100010001000100 +010001000100010001000101018300010001200181020104018102018101028502010201 +020181010201020101020201018202010281020112018102018601020102010201870102 +01020102010282020102820201022902 +820100018401000100010101810001020102000201810001830100010081000101018100 +018101008100010201810001810100010002018200010083000100010101820001000100 +01018100010101010002018100018101008100017f016001810001020181000101018100 +010101810001010181000102018100010101810001010181000101018100010201810001 +010181000102018100010101810001020181000101018100010201810001020181000101 +018100010201810001020181000102018100010201810001020181000102018100010201 +810001030181000102018100010301810001030181000102010100030101000101020085 +010001000100010083010001008600010001000100010001018300010001860100010001 +0001850100010001008300010001860100010001000101018500010001000101018b0201 +000201000201000200018601020102000200830001020101018200010083000100010101 +820001008100018201000101018300010001810102810201850102010200010101810001 +0101830201000208028100020302 +4b0181000101018100018101000100010181000181010081000182010001810100810001 +830100010001000101820001008100010101820001000100830100010081000182010001 +810100810001810100020083010001000100830100010081000183010001008400010001 +000100830100010081000181010002008301000100820001008600010001000100840001 +000100840001000100820001000200810100020081010003008101008200010003008101 +008200010003008101000200810100820001000100810100060081010001008101000700 +810100820001000f0081010010008101000e008101000a00810100060081010082000100 +060081010003008101008200010003008101000200810100820001000200830100010082 +000100030081010001008301000100820001000200830100010084000100010001008101 +000200830100010001008301000100010083010001008100018301000100010089010001 +000100010001000100820100018101008100018301000100010082010001810100810001 +820100018101008100018201000181010001000101810001810100810001820100018101 +000100010181000181010001000101810001840100010001820100018101000100020183 +000201008800010002010002010001000101860200010200010081000182010001010101 +0082010001820100010101010082010001010181000101010100820100010101810002 +820100010101870001000100010001020101008401000100010201020082010001030101 +000101810001010101008401000100010101020082010001020101008201000102018200 +010081000101010200820100010101010082010001010101008201000101010200820100 +018101000100030101008201000181010002000101030001010200830100010002000101 +030001010100870100010001000100820001000100810100020083010001000200810100 +020081010002008101008400010001000200010102008101000100010102000101020081 +010001000101020081010001000101020081010001000101020081010001008101000b00 +810100010081010001008101000100010102008101000100810100010081010001008101 +000f00810100010081010001008101000100810100020081010001008101000100810100 +020081010001008101000100830100010004008101000700810100030081010084000100 +010082000100010001010200830100010082000100020081010002008101000200810100 +010085010001000100840001000100820001000100870100010001000100010083010001 +000100810100010083010001008200010085000100010001030181000104018100010301 +81000159018302010201820102010401810201820102010d01 +820100018101008100010101810001860100010001000182010001830100010081000101 +01870001000100010001820100018301000100810001880100010001000100018d010001 +00010001000100010001008100018301000100850001000100018101008a000100010001 +000100010084000100010084000100010086000100010001008400010001000100850100 +010001000100830100010001008301000100010087010001000100010001008101008200 +010001008101008600010001000100010081010002008101000200810100020081010002 +008101000300810100020083010001000400830100010004008101008200010082000100 +040081010001008101008200010082000100010081010029008101002500810100810001 +010181000101018100017701870001000100010001830100010081000186010001000100 +018601000100010001820100018101008100018201000181010081000182010001840100 +010001820100018101000100010181000181010001000101810001810100010002018500 +010001000101018100018101000100020181000183010001008100018201000181010083 +000100010101810001010183000100010101810001010101008601000102010001010182 +000100810002 +830001000102018100018401000100010201810001820100018201000101018100018401 +000100010101810001840100010001010181000182010001820100018301000100830001 +000185010001000100810001820100018101008100018201000181010086000100010001 +000100010181000181010001000101820001008100018501000100010084000100010001 +008301000100010001018200010081000183010001008400010001000100830100010001 +008501000100010082000100010081010002008301000100810001810100010087010001 +000100010001008501000100010003008101008200010082000100820001008200010003 +008101000100810100820001000100840100010001020181000101018100010101810001 +010181000101018100010101810001480181000181010001008101000100810100060081 +010001008101000100810100010081010001008101000200810100010081010001000101 +020081010001000101020081010001000101830001000181010001008101000200810100 +020081010001000101020002018300010001810100010001010300010102000201020001 +018200010081000101010200020183000100010101020003018300010001010102000301 +010082010001010101008201000102010300030102000301010082010001020101008201 +000102018200010001000401030004010200040101000101810001030101008201000105 +0182000100010006010100810100 +810001030181000181010001000301810001810100010003018100018101008300010001 +820100018101008300010001010181000181010081000102018200010001000201820001 +008300010001830100010001000201010081010081000182010001810100810001010182 +000100810001010185000100010001830100010081000101010200010182000100810001 +830100010001008301000100010001010200010182000100810001810100010002010200 +840100010001030181000134018100010101020081010001008101008200010082000100 +010081010082000100020081010084000100010082000100030081010001008101000100 +810100010081010028008101000100810100010081010001008101000100810100010081 +010001008101000100810100010081010001008101000100810100010001010100010102 +008101000100010102008101000100010102008101000100010102000101020001010200 +010102008401000100018301000100810001810100010001010100820100018101000100 +010103000101020002010200020103000101030001010300020103000201010082010001 +010103000301020003010300020182000100810001030103000301010082010001030101 +008201000103010300020181000184010001000104018200010081000103010200820100 +0105010200820100010201 +830001000182010001010187000100010001000102010100840100010001020102000101 +810001010101008401000100010101020005010100050101005401810001020181000102 +010100830100010082000100020083010001008200010002008101000100010102008101 +000300810100840001000100010081010082000100010081010006008101000100810100 +0100810100090081010001008101000100810100010081010002008101000f0081010021 +008101003200810100820001000100810100030081010082000100030081010082000100 +020081010001008301000100840001000100840001000100840001000100840001000100 +8a0001000100010001000100840001000100810001830100010084000100010001008301 +000100010001010300830100010001000101820001008100018301000100010001018100 +018101008100010101020082010001860100010001000182010001840100010001820100 +018401000100018201000181010081000102018500010001000101018100018401000100 +010401010006018100012101 +010003018100010201810001030181000101010100020101000201810001020181000101 +010100030181000101018400010001008100018101008200010001000201860001000100 +010001008501000100010002008301000100010081010082000100010083010001000500 +810100020001010200830100010001008201000181010083000100018101008400010001 +000100830100010001008301000100020001010200810100820001008200010084000100 +010084000100010002008101000100810100020081010002008101008200010003008301 +0001000400810100010081010001008101000a0081010001008101000100810100010081 +010001008101001600830100010026008101002500810100820001008200010008008101 +008200010082000100030081010082000100030081010002008101008200010084000100 +010002008101000200810100860001000100010088000100010001000100890001000100 +010001000102018100015e01810001030183000100010301810001010183000100010201 +81000181010001000201810001840100010001030181000103010100 +020183000100010101010002010100030181000102010100010101000201830001000182 +010001020101000101010002018100010101810001010101000101810001010185000100 +010001010183000100018201000181010081000181010081000182010001810100810001 +820100018101008100018201000182010001010182000100810001830100010081000182 +010001820100018101008200010084000100010081000181010002008301000100810001 +810100010001018200010084000100010084000100010082000100020081010002008401 +0001000185010001000100010083010001008a0001000100010001000100020081010001 +008101000100810100050081010001008101000100810100080081010001008101000200 +810100020081010003008101000800810100260081010004008101000100810100010081 +010001008101000100810100810001810100820001000100010101000101010001010100 +010101000101010001010200810100010001010100010101000201010001010100020101 +000201010002010100010101000201020002018100010201010002010100010182000100 +820001008200010001008401000100018101000300810100030083010001008200010082 +000100020083010001008300010001810100010082010001810100010001018500010001 +000182010001840100010001820100018401000100018201000183010001008100018201 +000183010001008100018201000183010001008500010001000181010081000102018100 +018601000100010001840100010001810100810001820100018201000101010100030181 +0001 +810001820100010201010001018300010001010101000101810001820100018601000100 +010001820100010101810001840100010001810100830001000182010001810100010082 +010001020101008101000100810100830001000182010001810100010081010082000100 +010081010082000100010081010082000100820001000100820100018101008100018301 +000100010083010001008100018201000181010082000100830001000182010001810100 +020081010083000100018401000100018201000181010001000101820001008700010001 +000100018101000100810100840001000100010081010002008101000600810100010081 +010086000100010001000100810100010085010001000100010081010001008101000100 +810100020083010001000100810100010081010004008101000100810100010081010082 +000100010081010004008101000400810100170081010004008101000100810100820001 +000100810100010081010001008101000100850100010001008200010001008101000100 +810100010081010001008101000100810100820001000100810100030081010001008101 +008200010084000100010004008301000100010001018300010001840100010001840100 +010001820100010201010002018300010001010101000201830001000101018300010001 +010183000100010101830001000101018300010001010182000100810001010182000100 +810001010181000181010081000101018200010081000101018100018201000104010200 +040101000601010006010100060101000501030005010100080101000201810001030101 +0002010000 +010181000182010001820100010101010082010001010181000101010100820100010101 +810001010183000100018201000101018300010001820100010101810001840100010001 +010185000100010001810100850001000100010101830001000188010001000100010001 +820100018101008100010101850001000100018301000100810001820100018201000101 +018100018201000182010001820100018101008400010001000100810100860001000100 +010088000100010001000100860001000100010082000100020083010001008200010084 +000100010001008101008400010001000100810100840001000100010081010082000100 +010081010082000100020081010001008101000100810100820001000300810100010081 +0100030081010002008101005600810100080081010001008101000c0081010001008101 +000100010101000101020081010001008101000100810100010081010084000100010001 +008101000200810100010081010002008101000200810100020081010002008301000100 +810001810100020001018200010082000100830001000183010001008100018101008300 +010001820100018201000181010083000100010101810001820100010101010082010001 +020181000182010001010181000182010001020181000182010001020181000182010001 +020181000181010081000101010100010181000102018100010101010003018100010101 +810001020181000101010100010101000201810001820100010101830001000181010001 +0003010100 +010002018100018201000181010081000182010001010185000100010001820100018401 +000100018601000100010001810100810001820100018801000100010001000182010001 +810100010001018100018201000182010001810100820001008100018301000100830001 +000186010001000100018301000100860001000100010083000100010101810001010186 +000100010001008400010001008100018101008100018301000100860001000100010081 +000183010001008400010001008200010001008301000100840001000100010081010002 +008101008400010001000100810100820001000300830100010004008101000100810100 +010081010001008101000100810100050081010007008101000800810100530081010008 +008101000800810100010081010001008101000100850100010001000100810100010081 +010001008101000100810100020081010001008101000100810100010001010200010102 +008101000100030181000102018100018201000184010001000102018100018201000181 +010001000201020002010200010182000100810001010102000201030002010300020103 +000101850001000100010101820001008100010201010082010001020101008201000102 +010100810100810001010181000181010081000103010100010181000102018500010001 +000103018500010001000103018100018401000100010201830001000101018100010101 +82000100 +810001840100010001010101000301010002010100020102000101010002010100020101 +000201810001010181000102018100010101810001010101000101010002018100010101 +810001010181000181010081000181010081000181010081000182010001010187000100 +010001000101010400810100840001000100010001010100830100010009008101008200 +010002008101000a00810100820001000100810100090081010002008101000b00810100 +040081010014008101007f001d0081010082000100010001018200010082000100810001 +840100010001010181000106010200010102000101010083010001000200010102000101 +820001008100018101000100020102000201030001010100820100018101000100820100 +018101008300010001010101008201000101010100820100010101820001000100020101 +008101008100010101820001000100020185000100010001020101008101008100010201 +850001000100010201840001000100810001020184000100010081000103018400010001 +0081000103018400010001008100010101810001 +810001010182000100820001008300010001820100018201000182010001840100010001 +840100010001830100010085000100010001020101000101810001010182000100830001 +000102018200010081000101018200010001000201020082010001020101008201000101 +01030002010100820100018c010001000100010001000100018101000200010103000201 +020001010300810100020001018200010082000100010001010100830100010001008101 +000200010184000100010001008101008400010001000100810100020083010001000300 +810100010081010001008101000100810100010081010023008101004200810100820001 +000100810100820001000100810100820001000100810100810001810100820001008100 +018101008100018101008200010081000101018100010101810001810100810001810100 +810001010181000101018100010101010081010002000101020081010002008101000900 +810100030081010082000100020083010001000100810100020081010082000100820001 +000300810100010083010001008200010082000100820001000100810100030085010001 +000100820001008100018101008600010001000100810001830100010083000100018101 +00850001000100018301000100810001820100018e010001000100010001000100010001 +820100018301000100810001820100018601000100010001820100010101830001000184 +01000100018201000186010001000100010201010082010001 +010102000701810001860100010001000102018200010083000100010201030082010001 +850100010001008800010001000100010083000100018101000200820100018101008200 +010001000101820001000200010182000100860001000100010002008301000100010001 +018200010003008101000100010104008101000200810100860001000100010003008101 +000200810100020081010002008301000100820001000200810100020081010001008101 +000200810100030081010082000100820001000200810100090081010001008101000100 +8101000f008101004d008101008200010082000100040081010007008101000400810100 +040081010004008101000200830100010001008101000100810100010081010001008301 +000100820001008200010001008101000100810100030081010082000100010081010002 +008101000100010102008101000200810100020081010002000101030081010002000101 +820001008100018101000200810100030081010082000100810001810100020001010400 +010183000100018301000100020083010001000200820100018101008500010001000181 +010001008201000101010100010181000102010100010181000103018100018201000103 +01010001018100010301010008010100080101000701 +830001000182010001020103008401000100010201010082010001820100010101010081 +010001000301030082010001010103008201000101010300820100010101850001000100 +010101040002018200010001000101820001000100010104000101040081010003000101 +020082010001810100020001010200010182000100810001810100010001010300810100 +020001010200810100010001010200010102008101000200810100010081010001000101 +020081010001008101000100010101000101010081010001008101000100810100810001 +810100820001000100810100810001810100820001008100018101008200010081000181 +010082000100820001008200010081000181010082000100820001008200010007008101 +008200010009008101008200010082000100820001008100018201000182010001810100 +820001003600810100130081010007008101008200010005008101000300810100820001 +00820001000200810100840001000100840001000100010083010001008a000100010001 +000100010001008601000100010001810100020083010001008600010001000100010082 +010001840100010001810100820001008100018301000100850001000100018301000100 +810001850100010001000100830100010002008201000183010001008300010001020183 +000100018201000101018100018201000182010001010181000181010083000100010301 +810001810100830001000102018100010101010082010001 +810001020181000186010001000100010101810001820100010101830001000184010001 +000101018200010001000101810001810100830001000182010001820100018201000101 +010200010181000183010001008300010001820100018101000100010182000100850001 +000100018201000181010081000181010084000100010001008201000181010001008301 +000100010083010001000100010105008101000800810100020081010002008101000700 +810100020081010006008101008200010007008101002a00810100820001000400810100 +07008101008200010010008101002c008101000a00810100040081010082000100010081 +010082000100040081010001008101000100810100820001000100810100010001010100 +010101000101010001010200810100810001810100010081010001000101020081010002 +008101008400010001008400010001000100010102000101820001008400010001008400 +010001000100010103008201000181010081000181010083000100010101010084010001 +000181010081000101010300010182000100010002018500010001000101018300010001 +030183000100010301830001000102018200010002000101810001810100830001000101 +018200010001008201000101018100018601000100010001820100010101850001000100 +01020181000186010001000100010101 +810001020181000184010001000101010400030101000101840001000100810001810100 +820001008200010086000100010001000100850100010001000200810100840001000100 +020001010400810100010001018200010084000100010084000100010003008101000500 +810100820001000200810100020081010003008301000100020001010100830100010081 +000183010001000200810100820001000200850100010001008200010084000100010001 +0083010001000400810100820001000100810100010081010001008101000a0081010007 +008101007f001500810100130081010014008101000e0083010001008100018101008200 +010002008201000181010001000201010082010001810100010001010300020103000101 +820001008100010101030002010300020101008101008100010101020083010001008100 +018901000100010001000100030001018200010002008501000100010002008201000184 +010001000184010001000184010001000182010001820100010301820001008300010001 +030181000181010001000101 +830100010001000101810001030102008201000103010100810100830001000103010200 +010181000185010001000100010003018200010001000301030082010001020182000100 +810001010185000100010001840100010001820100010101810001820100018601000100 +010001830100010081000183010001008100018101000100890100010001000100010003 +008101000300810100010085010001000100820001000100810100820001008200010002 +008101000100810100050081010002000101010081010082000100030081010007008101 +000100810100820001000200810100030081010008008101000d00810100840001000100 +8200010045008101000a0081010011008101000100810100080081010001008101000100 +810100020081010082000100010081010001008101000100810100010001010200830100 +010082000100020081010001000101020081010008008101000400810100030081010003 +008101000100810100040081010082000100020083010001008500010001000181010082 +000100810001810100850001000100018101008200010081000101018200010083000100 +018801000100010001000183010001008100018201000184010001000181010081000101 +018700010001000100010201820001000100010101000101010081010001008401000100 +0184010001000182010001 +010185000100010001010181000101010100830100010002000101010005018400010001 +008400010001008100018301000100020001018200010003000301040001010200810100 +810001010185000100010001830100010002000101010081010081000181010082000100 +010081010001008301000100830001000101018200010082000100830001000181010002 +000101030001010300810100010001010300810100020081010006008101000200810100 +010081010082000100020081010001008101001400810100180081010039008101008200 +010082000100820001008200010082000100820001000300810100810001820100018201 +000182010001820100018201000181010082000100810001820100018101008100018101 +008200010004008101008200010001008101000100810100010081010081000181010082 +000100010081010001000101020001010100010101000101010001010200010101000201 +010001018300010001010101000201020002010100020102000201020002018300010001 +010102000201040001010400010104000101020081010081000181010082000100010002 +010400020102008101008100018301000100010082010001810100810001810100010003 +018100018101008300010001010181000181010083000100010301870001000100010001 +020181000181010083000100010301 +810100820001000200030185000100010001010181000101010400810100020001018100 +018101008300010001020102000101020001018100018101000200010184000100010081 +000183010001000300810100820001000100010101008101000100010182000100010001 +018200010001008101000300010104008101000300810100030081010003008101000200 +8101000d008101000f008101000100810100010081010005008101000100810100010081 +010001008101008200010001008101000100810100820001000400810100820001000d00 +81010009008101000600810100060081010008008101008200010082000100820001003b +008101000900810100040081010001008101008200010001008101000100810100010081 +010001008101000100010101000101010001010200010184000100010082000100030001 +010200010102000101010083010001008300010001810100020001010100820100018101 +008300010001810100010002010300020102000201020082010001010181000182010001 +010181000182010001020182000100810001020102008201000101010200010181000102 +018200010083000100010101840001000100810001030182000100020006010300060185 +0001000100010501810001 +010002018100018101000200020182000100030002018100010101010003010200010103 +000401830001000182010001810100810001820100010101020001010100840100010001 +020182000100810001010181000181010081000183010001000200010105008301000100 +0a008101008200010082000100030081010082000100820001000d008101000500810100 +0300850100010001002f00810100070081010071008101001a0081010001008101000800 +810100010081010001008101000100810100010081010002008101000100810100060081 +010002008101000200810100010001010200840100010001850100010001008100018101 +008400010001000100820100018101000200010103000201820001008100018101000100 +820100018101008200010081000101010300030102008201000101010200820100010201 +010081010081000102010100820100010301040005010100810100810001040104000501 +010084010001000104010100810100 +040001018200010001008101000100810100810001810100010081010081000182010001 +810100810001010104000101810001830100010081000181010083000100018101000100 +010101008101000200810100820001000100810100010083010001008200010001008101 +000200810100030082010001810100030001010500810100020081010003008101000800 +810100030001010300810100820001008200010082000100020081010003008101000b00 +8101000a008101007f003c00810100120081010004008301000100040083010001000200 +810100020083010001000500810100030081010001008301000100010001010400810100 +010088010001000100010001810100010082010001810100010082010001830100010002 +008101000200810100810001810100010001018400010001000100810100810001810100 +020082010001010182000100810001820100010101820001008100018201000182010001 +010101000101810001010185000100010001820100010201810001010181000182010001 +01018100010001 +810001010184000100010082000100020082010001810100830001000101018600010001 +000100810001010183000100018201000104010100870100010001000100810001010181 +000182010001820100018101008200010001008101000600810100820001000100850100 +010001000200830100010084000100010082000100880001000100010001000300830100 +010001008101000100830100010004008101000100810100050081010082000100060081 +010005008501000100010002008101007f003c0081010001008101000e00810100140081 +010001000101840001000100020081010002008101008400010001008300010001810100 +020081010082000100820001000200010104008101000100810100020081010001008101 +000100810100010081010001008301000100020081010082000100020001018200010002 +000101020001010200810100880001000100010001008300010001810100010001010100 +010182000100810001810100010082010001020181000183010001008100018101008100 +010101020082010001010101000101 +810001810100030001018100018101008200010082000100810001850100010001008500 +010001000183010001000100810100850001000100018101008300010001810100030002 +018100010201820001008100018101008100010101820001000100010105000101030081 +010082000100010081010084000100010002008101000400810100020001010400810100 +03008101000200810100820001000e008101000a00810100820001000a00810100010081 +01001c008101007f00260081010033008101000500810100010081010002000101040083 +010001000800830100010002008301000100020081010001008101000100820100018101 +000400850100010001000200810100820001008900010001000100010001860100010001 +000182010001810100810001830100010081000102010100020102000101010001018500 +0100010001010183000100018101008300010001 +850001000100018101000200850100010001008200010081000185010001000100860001 +000100010084000100010085000100010001810100020001018100010301010081010002 +000101810001840100010001810100010081010001000101010081010004008201000181 +010001008101008200010004008101000300010102008101000f0001010c008101007f00 +710081010027008101000600810100060081010082000100020081010001008301000100 +840001000100820001008400010001000100810100880001000100010001008200010001 +008501000100010001008301000100010082010001810100840001000100810001010103 +00810100810001810100820001000200820100018101008300010001820100018101008e +000100010001000100010001000100820001008300010001810100010001010100010181 +00010101 +050001018400010001000400810100040081010081000101018200010001008101000200 +810100010002010100810100020001018300010001820100010101010084010001000101 +010200810100070081010001008101000200820100018101000200810100030081010084 +000100010004008101000e008101000100010103008101000f0081010009008301000100 +06008101000d0081010030008101007f0003008101000400830100010004008101008200 +0100080081010082000100010001010a0083010001000700830100010001008101008200 +010081000181010005008101008200010002008101008400010001000400810100020081 +010001008501000100010082000100020081010082000100010083010001008400010001 +008200010002008101008200010081000185010001000100010082010001830100010003 +008201000182010001830100010002008101008300010001820100018201000101018300 +010001820100010101 +0201820001008300010001010181000101010b0081010003008101000800010101008101 +000500810100070082010001830100010001008101008200010081000183010001008100 +018101008200010003008101000400010104008101000400810100070081010003008101 +00080081010021008101007f0068008101000a0081010003008101000800810100020081 +010001008101000300830100010001008301000100090081010004008101000200830100 +010003008301000100840001000100050081010082000100820001000100830100010002 +008201000182010001830100010081000101018100018401000100018101008100018201 +000101010100810100870001000100010001010181000182010001810100820001008100 +01840100010001820100010101 +820001008200010004008101000100010102000101040083010001000200830100010004 +008501000100010002008301000100820001000300810100010081010005008301000100 +010083010001000200810100820001000100810100020081010006008101001600810100 +0c008101000b00810100010081010002008101000200810100050081010002008101000b +008101000e008101005100810100820001008200010064008101001c008101000a008101 +008200010006008101000600810100820001000800810100010081010001008301000100 +010085010001000100030081010003008101008200010001008101008300010001010101 +008101000200830100010081000182010001840100010001830100010001008401000100 +018201000184010001000101018300010001820100018101008200010081000185010001 +000100 +840001000100820001008100018101000100020182000100010085010001000100020081 +01000400810100820001008200010001008101000a008101000200010101008101000500 +810100030001010700810100010081010001008101000200810100820001000b00810100 +080081010005008101007e00840100010001840100010001810100010082010001040181 +0001140182000100820001003e0083010001000f00830100010007008101003800810100 +100081010003008101000400810100070081010006008101000300810100010002010500 +820100018101000300820100018601000100010001820100010101010001010300860100 +0100010001010102000101820001008300010001 + +% +% Compression made this file 28.87% of the uncompressed size. +% + + +showpage + +% stop using temporary dictionary +end + +% restore original state +origstate restore + +%%Trailer + +cleartomark +countdictstack exch sub { end } repeat +restore grestore +% +% End Imported PIC File: frame2.eps +%%EndDocument +% +% Polyline +60.000 slw +n 2430 7110 m 4230 7110 l 4230 8280 l 2430 8280 l + cp gs col6 s gr +$F2psEnd +rs diff --git a/doc/high_level_doc/frame3_final.eps b/doc/high_level_doc/frame3_final.eps new file mode 100644 index 0000000..e4f924e --- /dev/null +++ b/doc/high_level_doc/frame3_final.eps @@ -0,0 +1,9035 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: frame3_final.eps +%%Creator: fig2dev Version 3.2 Patchlevel 3d +%%CreationDate: Mon Dec 15 08:28:19 2003 +%%For: root@rhum (root) +%%BoundingBox: 0 0 412 412 +%%Magnification: 1.0000 +%%EndComments +/$F2psDict 200 dict def +$F2psDict begin +$F2psDict /mtrx matrix put +/col-1 {0 setgray} bind def +/col0 {0.000 0.000 0.000 srgb} bind def +/col1 {0.000 0.000 1.000 srgb} bind def +/col2 {0.000 1.000 0.000 srgb} bind def +/col3 {0.000 1.000 1.000 srgb} bind def +/col4 {1.000 0.000 0.000 srgb} bind def +/col5 {1.000 0.000 1.000 srgb} bind def +/col6 {1.000 1.000 0.000 srgb} bind def +/col7 {1.000 1.000 1.000 srgb} bind def +/col8 {0.000 0.000 0.560 srgb} bind def +/col9 {0.000 0.000 0.690 srgb} bind def +/col10 {0.000 0.000 0.820 srgb} bind def +/col11 {0.530 0.810 1.000 srgb} bind def +/col12 {0.000 0.560 0.000 srgb} bind def +/col13 {0.000 0.690 0.000 srgb} bind def +/col14 {0.000 0.820 0.000 srgb} bind def +/col15 {0.000 0.560 0.560 srgb} bind def +/col16 {0.000 0.690 0.690 srgb} bind def +/col17 {0.000 0.820 0.820 srgb} bind def +/col18 {0.560 0.000 0.000 srgb} bind def +/col19 {0.690 0.000 0.000 srgb} bind def +/col20 {0.820 0.000 0.000 srgb} bind def +/col21 {0.560 0.000 0.560 srgb} bind def +/col22 {0.690 0.000 0.690 srgb} bind def +/col23 {0.820 0.000 0.820 srgb} bind def +/col24 {0.500 0.190 0.000 srgb} bind def +/col25 {0.630 0.250 0.000 srgb} bind def +/col26 {0.750 0.380 0.000 srgb} bind def +/col27 {1.000 0.500 0.500 srgb} bind def +/col28 {1.000 0.630 0.630 srgb} bind def +/col29 {1.000 0.750 0.750 srgb} bind def +/col30 {1.000 0.880 0.880 srgb} bind def +/col31 {1.000 0.840 0.000 srgb} bind def + +end +save +newpath 0 412 moveto 0 0 lineto 412 0 lineto 412 412 lineto closepath clip newpath +-73.7 527.2 translate +1 -1 scale + +/cp {closepath} bind def +/ef {eofill} bind def +/gr {grestore} bind def +/gs {gsave} bind def +/sa {save} bind def +/rs {restore} bind def +/l {lineto} bind def +/m {moveto} bind def +/rm {rmoveto} bind def +/n {newpath} bind def +/s {stroke} bind def +/sh {show} bind def +/slc {setlinecap} bind def +/slj {setlinejoin} bind def +/slw {setlinewidth} bind def +/srgb {setrgbcolor} bind def +/rot {rotate} bind def +/sc {scale} bind def +/sd {setdash} bind def +/ff {findfont} bind def +/sf {setfont} bind def +/scf {scalefont} bind def +/sw {stringwidth} bind def +/tr {translate} bind def +/tnt {dup dup currentrgbcolor + 4 -2 roll dup 1 exch sub 3 -1 roll mul add + 4 -2 roll dup 1 exch sub 3 -1 roll mul add + 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} + bind def +/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul + 4 -2 roll mul srgb} bind def +/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def +/$F2psEnd {$F2psEnteredState restore end} def + +$F2psBegin +10 setmiterlimit + 0.06299 0.06299 sc +% +% Fig objects follow +% +% Polyline +% +% pen to black in case this eps object doesn't set color first +0 0 0 setrgbcolor +% Begin Imported EPS File: frame3.eps +%%BeginDocument: frame3.eps +% +n gs +1170 1845 tr +12.500000 -12.500000 sc +0 -522 tr +-37 -160 tr +sa +n 37 160 m 559 160 l 559 682 l 37 682 l cp clip n +countdictstack +mark +/showpage {} def +% EPS file follows: +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: /home/scanner/docu/iav2004/frame3.eps +%%Creator: XV Version 3.10a Rev: 12/29/94 (PNG patch 1.2) - by John Bradley +%%BoundingBox: 37 160 559 682 +%%Pages: 1 +%%DocumentFonts: +%%EndComments +%%EndProlog + +%%Page: 1 1 + +% remember original state +/origstate save def + +% build a temporary dictionary +20 dict begin + +% define space for color conversions +/grays 600 string def % space for gray scale line +/npixls 0 def +/rgbindx 0 def + +% lower left corner +37 160 translate + +% size of image (on paper, in 1/72inch coords) +522.00000 522.00000 scale + +% define 'colorimage' if it isn't defined +% ('colortogray' and 'mergeprocs' come from xwd2ps +% via xgrab) +/colorimage where % do we know about 'colorimage'? + { pop } % yes: pop off the 'dict' returned + { % no: define one + /colortogray { % define an RGB->I function + /rgbdata exch store % call input 'rgbdata' + rgbdata length 3 idiv + /npixls exch store + /rgbindx 0 store + 0 1 npixls 1 sub { + grays exch + rgbdata rgbindx get 20 mul % Red + rgbdata rgbindx 1 add get 32 mul % Green + rgbdata rgbindx 2 add get 12 mul % Blue + add add 64 idiv % I = .5G + .31R + .18B + put + /rgbindx rgbindx 3 add store + } for + grays 0 npixls getinterval + } bind def + + % Utility procedure for colorimage operator. + % This procedure takes two procedures off the + % stack and merges them into a single procedure. + + /mergeprocs { % def + dup length + 3 -1 roll + dup + length + dup + 5 1 roll + 3 -1 roll + add + array cvx + dup + 3 -1 roll + 0 exch + putinterval + dup + 4 2 roll + putinterval + } bind def + + /colorimage { % def + pop pop % remove 'false 3' operands + {colortogray} mergeprocs + image + } bind def + } ifelse % end of 'false' case + + + +% define the colormap +/cmap 9 string def + + +% load up the colormap +currentfile cmap readhexstring +000000 ffffff 0000ff +pop pop % lose return values from readhexstring + + +% rlecmapimage expects to have 'w h bits matrix' on stack +/rlecmapimage { + /buffer 1 string def + /rgbval 3 string def + /block 384 string def + + % proc to read a block from file, and return RGB data + { currentfile buffer readhexstring pop + /bcount exch 0 get store + bcount 128 ge + { % it's a non-run block + 0 1 bcount 128 sub + { currentfile buffer readhexstring pop pop + + % look up value in color map + /rgbval cmap buffer 0 get 3 mul 3 getinterval store + + % and put it in position i*3 in block + block exch 3 mul rgbval putinterval + } for + block 0 bcount 127 sub 3 mul getinterval + } + + { % else it's a run block + currentfile buffer readhexstring pop pop + + % look up value in colormap + /rgbval cmap buffer 0 get 3 mul 3 getinterval store + + 0 1 bcount { block exch 3 mul rgbval putinterval } for + + block 0 bcount 1 add 3 mul getinterval + } ifelse + } % end of proc + false 3 colorimage +} bind def + + +600 600 8 % dimensions of data +[600 0 0 -600 0 600] % mapping matrix +rlecmapimage + +840100010001070181000132018300010001020181000182010001820100011901810001 +8401000100010a01850001000100010a0181000110018300010001070185000100010001 +820100010801810001820100010d018100012a0185000100010001820100010601810001 +01018100010801810001020183000100010a018300010001820100010801810001130185 +0001000100010901850001000100010d0183000100010901830001000101018100010901 +8100010101810001260181000102018300010001820100010c0185000100010001080185 +000100010001180183000100010d01810001820100018201000108018100011d01830001 +00010001 +0901810001270181000108018100012401810001820100010a01850001000100010c0181 +000182010001170183000100018201000108018100018601000100010001090183000100 +018401000100012701810001820100010801850001000100010201810001080181000101 +01810001080181000184010001000106018700010001000100011d018500010001000108 +018100018601000100010001080181000186010001000100010601810001860100010001 +00012c01810001840100010001070183000100018401000100010a018500010001000108 +018300010001180183000100018401000100010b01810001840100010001030181000117 +018100010601 +0301810001820100012d0181000182010001820100012e018100018401000100010c0183 +00010001820100011701810001820100010b018300010001090185000100010001820100 +0108018100012c01810001820100010e0183000100018201000106018700010001000100 +010a018100011f018100010a0183000100010d0183000100018401000100010801810001 +820100010101810001060181000186010001000100012a01810001840100010001090181 +0001820100010c0183000100011a018100010d018300010001820100010b018100011d01 +83000100010101 +010181000106018100018201000124018100010801810001820100010a01810001140181 +00018401000100010a018500010001000182010001070183000100018201000119018300 +0100018201000106018300010001820100010a01810001820100012c0183000100010401 +8100010101830001000186010001000100010601850001000100010b0187000100010001 +000108018100018201000115018500010001000109018700010001000100010d01810001 +0d018300010001820100013c0181000184010001000107018100018401000100010a0183 +0001000117018100018401000100010e018300010001080181000120010000 +08018100012c018100018201000182010001020181000102018100018301000100810001 +20018100018401000100010a01850001000100011a018100018401000100010901830001 +00010b01850001000100012f018300010001040181000101018100010a01810001840100 +0100010a0185000100010001080181000186010001000100012101870001000100010001 +080181000188010001000100010001040181000188010001000100010001090185000100 +010001820100012701830001000184010001000109018100018401000100010701810001 +84010001000107018100011d018300010001820100010b01830001000105018100011401 +8100010801 +810001820100018201000106018100012f01810001020181000108018100011901830001 +00010c018300010001070181000184010001000110018100010701870001000100010001 +090183000100018201000106018300010001010181000182010001230181000101018300 +010001020181000106018500010001000108018300010001840100010001080185000100 +0100010a01810001140187000100010001000108018100018401000100010d018100010f +01830001000130018100010901810001820100010c018500010001000107018100018401 +0001000115018300010001820100010a018100018201000182010001080183000100011d +0181000182010001 +0b018100012a018100010301810001070181000184010001000102018100011401810001 +08018500010001000182010001070183000100011a018500010001000109018300010001 +840100010001080181000182010001300181000108018300010001820100010a01830001 +00010a018300010001820100010a01850001000100011e01810001840100010001080183 +000100010b018700010001000100010401830001000102018300010001820100012c0183 +0001000109018300010001820100010c0183000100010a01810001190181000182010001 +820100010a018100018401000100011d018100010801 +030181000182010001820100010301810001240181000102018100010301830001000182 +01000107018100011c0183000100010c0183000100010a018100010f0181000109018300 +010001820100010801810001860100010001000109018300010001290181000186010001 +000100010801850001000100018201000108018500010001000108018500010001000182 +010001030181000115018100018401000100010801830001000108018100018601000100 +0100010b0183000100010101810001090181000125018100010601830001000182010001 +090181000186010001000100010701810001820100011901810001840100010001080181 +0001840100010001820100010801810001160181000103018100010601 +8201000109018100012a0181000184010001000106018100010201810001040181000114 +0181000182010001070185000100010001820100010701850001000100011a0183000100 +010b01830001000109018500010001000182010001030181000123018300010001080181 +000186010001000100010601890001000100010001000108018100018401000100010801 +830001000101018100011a01830001000108018100018601000100010001080181000184 +01000100010a018200010002008201000106018100012501810001090183000100018201 +00010c01810001090183000100011d0183000100010d0181000182010001050181000116 +018100010a01 +0701810001820100012a018100010a018100018401000100018401000100011f01850001 +000100010a01850001000100011a01830001000182010001060183000100018401000100 +010601850001000100010b01810001210181000106018700010001000100010801830001 +0001820100010c0185000100010001060185000100010001820100011b01810001080181 +00018401000100010a01830001000182010001080185000100010001820100010a018300 +01000104018100011d0101000501830001000182010001090183000100010a0183000100 +0182010001070181000111018100010b0183000100018401000100010801810001820100 +0102018100011a018100010401 +8100018401000100010901810001220181000105018300010001820100010c0181000182 +010001140183000100010c01830001000107018100018601000100010001170181000184 +010001000106018300010001840100010001080183000100018201000104018100012201 +83000100010f018100010c0181000184010001000105018100018401000100010c018300 +01000116018700010001000100010601850001000100010b018700010001000100010801 +8100018601000100010001080181000121018100010b0183000100010a01850001000100 +018201000107018100018201000119018300010001820100010d01830001000108018100 +01140181000103018100010701 +0801810001820100018201000129018100010a0181000182010001840100010001170181 +000107018500010001000182010001070183000100011a01850001000100010b01810001 +080181000186010001000100010401810001320185000100010001840100010001080185 +0001000100010601850001000100010a0181000186010001000100012201810001840100 +0100010601850001000100010d0187000100010001000109018500010001000105018100 +01210181000186010001000100010501850001000100010c018100018401000100010501 +83000100011101810001080181000184010001000182010001080183000100011c018100 +0182010001820100010501 +82010001840100010001060181000182010001820100011c018100010201810001080183 +000100010a0181000182010001110181000186010001000100010a018500010001000109 +01810001820100010e018100010a01830001000182010001060183000100010d01810001 +01018100018401000100011c018100010401850001000100010a01850001000100018201 +0001080183000100010a01850001000100010a01810001130183000100010d0185000100 +010001060183000100018201000122018100011e018100010b0181000182010001070183 +0001000184010001000109018100011c018300010001820100010a018100018201000108 +0181000116018100010e01 +0c0181000106018100011801810001030181000105018300010001050181000102018100 +012601850001000100010a01850001000100011701810001860100010001000106018100 +018401000100010801830001000184010001000104018100011e01830001000101018100 +010d01830001000108018700010001000100010801830001000182010001050181000123 +018900010001000100010001080181000182010001080187000100010001000182010001 +0301810001060181000182010001030181000103018100011a0183000100010201810001 +090183000100018201000109018300010001820100010501830001000182010001110181 +00010701810001840100010001820100010501810001820100011e018100018201000109 +01 +040181000184010001000106018100018201000116018100010301810001020183000100 +010501810001820100010201810001020181000102018100011701850001000100010a01 +8500010001000109018100010e0183000100010901850001000100010601810001020183 +000100010b0183000100011c018100010a01850001000100018401000100010801830001 +00010a018500010001000104018300010001010181000102018100010301810001150185 +000100010001080181000184010001000106018700010001000100010b0183000100010d +018100010301830001000101018100011501830001000103018100010101810001860100 +010001000107018100018401000100010901810001820100010201810001160181000182 +0100010c0181000108018100018201000182010001130181000103018100018401000100 +010401 +010181000106018100018201000182010001030181000113018100010301810001020181 +00010401810001820100010a01810001020181000116018100010a018500010001000107 +018100018601000100010001170185000100010001090183000100010201810001080183 +00010001070185000100010001170181000182010001010183000100010a018700010001 +0001000106018500010001000182010001030181000101018100010f0181000120018500 +01000100010201810001010183000100010a0181000186010001000100010b0181000110 +018100010401810001130181000101018100018201000109018300010001090181000184 +010001000107018100011501810001060183000100018201000182010001050183000100 +0182010001070181000111018100018201000109018100010101 +8100010301810001820100010b01810001820100010e0181000102018100010301810001 +040181000105018100018401000100018201000102018100011701810001040185000100 +0100010a0183000100011c01830001000108018300010001820100010801830001000184 +0100010001080181000106018100010f0183000100010a01810001060183000100010801 +850001000100010801830001000143018300010001010183000100018401000100010a01 +830001000101018100010901830001000101018500010001000104018100010201810001 +080181000186010001000100018201000105018500010001000107018100018401000100 +010901830001000108018100011001010082010001820100010a018100010b0183000100 +011c01820001008100010701 +81000182010001090181000184010001000101018100010b018300010001090181000102 +0183000100010201810001820100010a0181000102018300010001140183000100010a01 +850001000100010701830001000184010001000117018500010001000106018100018601 +000100010001080181000184010001000104018500010001000102018100010e01830001 +0001060181000101018100010a0185000100010001060185000100010001450181000106 +01810001080185000100010001090101000101850001000100010e018100018401000100 +01040183000100018401000100010201830001000111018100010b018300010001820100 +0107018300010001820100011b018100018201000107018100018401000100011e018100 +018201000106018100018301000100810001 +090183000100010901810001030181000184010001000108018100010d01810001080185 +000100010001260185000100010001070183000100018201000106018100011001830001 +000182010001080183000100010d01830001000106018300010001820100011101830001 +00010401850001000100010e018300010001040185000100010001100181000117018100 +010601810001220185000100010001840100010001040183000100010f01810001090181 +000106018100011201010082010001860100010001000107018300010001860100010001 +000107018100018201000109018100010f01850001000100010801810001840100010001 +08018100018401000100010201810001170183000100010901 +010183000100018201000109018300010001820100018201000101018100010701810001 +820100018401000100010301810001840100010001050183000100010801830001000183 +01000100810001150183000100010701810001840100010001090183000100011b018100 +018401000100010801830001000184010001000106018100010801810001840100010001 +0101830001000184010001000103018100010a0185000100010001040181000103018100 +01110181000117018100011f018100010201810001170185000100010001880100010001 +00010001020183000100010c018100010101830001000104018300010001820100010401 +830001000102018100010a01850001000100010c01850001000100010501830001000182 +0100011b01810001820100010a018300010001820100011e018300010001060181000184 +01000100010101 +0a01810001840100010001090181000103018300010001820100010b0181000109018100 +01050181000184010001000103018100011601830001000104018100018401000100010b +018100018201000119018500010001000106018100018601000100010001080181000184 +010001000101018100010d018100010a0181000102018100010101830001000110018100 +010201810001050181000126018100010101810001020181000112018100010201870001 +0001000100018801000100010001000101018100010b0183000100010101810001040183 +000100011001810001840100010001040185000100010001020183000100010301810001 +840100010001060181000186010001000100010a01830001000107018100011101830001 +000182010001050183000100018401000100010801810001820100011e01830001000103 +0181000182010001810100 +0401810001820100010c01820001008100010e0183000100010201810001030181000104 +018100010201810001820100010701810001020181000181010081000115018300010001 +0e018300010001070183000100010e018300010001060185000100010001090187000100 +010001000106018100010201830001000182010001030181000101018100018801000100 +010001000102018100010101810001030181000103018100018801000100010001000115 +018900010001000100010001820100010e018a0001000100010001000100810001010183 +000100010c01810001150181000102018700010001000100010a01810001820100010901 +810001010181000102018100010601830001000102018100010601810001820100010701 +830001000182010001090183000100010901830001000105018100011601810001820100 +010a018100010a018100012001010001018100010401 +810001820100010601810001840100010001820100010301810001820100018201000184 +010001000182010001050181000103018100010201810001040181000108018300010001 +080181000113018100010601810001860100010001000182010001040183000100018201 +000116018300010001820100010801850001000100010b01830001000102018300010001 +02018500010001000101018100010a018100010601830001000101018300010001190183 +000100018201000119018500010001000106018300010001030181000101018100010a01 +8100018c0100010001000100010001000102018100010c01830001000103018100010501 +830001000105018300010001020181000101018300010001060181000102018300010001 +840100010001030183000100010901830001000182010001060181000184010001000107 +01830001000111018100010a01830001000108018100018401000100011b018100018201 +000108018100018201000182010001 +08018100010c018100011301810001020181000103018100010201810001040181000184 +01000100010701810001820100018201000115018100018401000100010e018100010601 +810001820100010f018100010601810001020183000100010a0181000184010001000106 +018100010a0181000102018900010001000100010001880100010001000100010c018300 +0100010101850001000100018a01000100010001000100010c0183000100010c01810001 +04018900010001000100010001860100010001000101018100010a018100010f01810001 +0101850001000100010a018100010d018300010001030181000104018100010301810001 +840100010001010181000102018100010c018100010e0185000100010001070181000184 +010001000118018100018401000100010801830001000182010001080183000100010201 +81000117018300010001820100018201000102018100010001 +820100018201000182010001060183000100018201000103018100018201000184010001 +000182010001820100018201000102018100010201810001030183000100018401000100 +010a0183000100010601810001110101000a018100018601000100010001820100010201 +850001000100011301810001030183000100010201810001080185000100010001060183 +000100018201000106018500010001000102018100011201810001010102008201000182 +010001030181000113018900010001000100010001040183000100010501810001020183 +000100010101830001000104018100010101830001000103018100010401810001010181 +000117018100018401000100010a01850001000100010c01830001000102018100010801 +8100010601810001840100010001070181000186010001000100010c0185000100010001 +070183000100011101810001820100010501830001000182010001070181000182010001 +820100011a01810001820100010b010100820100010001 +070183000100018201000109018100011301810001140181000186010001000100010301 +8300010001020181000118018100018401000100010b0181000109018100010f01810001 +820100010a01830001000182010001040187000100010001000108018100010901810001 +010185000100010001020181000101018500010001000101010100130181000101018300 +0100010101830001000102018100010c0181000105018100010601830001000101018300 +010001820100010701810001020183000100010101810001060183000100010301810001 +820100010c01850001000100010101810001070185000100010001050181000101018100 +010201850001000100010401830001000182010001010181000103018300010001840100 +010001060181000186010001000100010a0183000100010a018100011001810001820100 +01070183000100010b0183000100010201810001170183000100018401000100010701 +040181000109018300010001820100010201810001040181000182010001020181000182 +0100010201810001840100010001820100018201000104018100010a0181000104018100 +0118018100010c0185000100010001040181000184010001000110018100010801850001 +00010001060183000100010d018100010201810001040183000100010101810001060181 +000101018100010101810001020181000101018100010101810001010189000100010001 +000100010201810001030181000108018500010001000106018500010001000103018100 +01860100010001000103018300010001020187000100010001000101018100010c018100 +010f01850001000100010f018100010d0181000102018100010101810001060183000100 +010701810001020181000109018300010001820100010901830001000109018100018401 +000100011b018100010a018100018401000100011c010100010181000109018300010001 +82010001810100 +830001000106018100018201000108018100010301810001060181000105018100010801 +8100010b0181000184010001000105018100010201010013018100010201830001000102 +018300010001070183000100010701810001820100010a01870001000100010001820100 +010601850001000100010801830001000184010001000101018100010201830001000108 +018100010201810001010181000101018100010a0181000101018100010e018100010101 +81000101018100018401000100010a018b00010001000100010001000104018700010001 +00010001010181000106018b0001000100010001000100010f01850001000100010c0181 +000184010001000103018100010201870001000100010001070181000106018300010001 +090183000100010201810001030185000100010001090185000100010001820100010401 +81000186010001000100010b018100010b01810001090181000184010001000182010001 +070181000182010001820100010101810001170183000100010d01 +050181000182010001050181000182010001820100010201810001040181000182010001 +020181000182010001050183000100010201810001050183000100010701810001820100 +010201810001820100011101810001010181000104018100010401830001000182010001 +0601810001820100011a0183000100018201000108018500010001000104018700010001 +000100010401810001820100010101810001040181000101018100010501810001880100 +010001000100010501810001030181000184010001000101018300010001010181000182 +010001030181000105018100018201000101018100010a01810001050181000101018100 +018601000100010001030183000100018601000100010001010183000100010a01830001 +00010201810001010181000106018100010e018100010101830001000101018100018401 +000100010401870001000100010001040181000102018100018201000104018100018401 +000100010b0183000100010a0185000100010001140183000100018401000100010a0181 +0001820100011e0101000a018100018401000100010501 +82010001820100010501810001820100010f018300010001030181000107018100010501 +81000102018100010a0183000100010501810001020101000a0181000106018100010901 +830001000106018100018401000100011501810001010185000100010001080183000100 +018201000103018100018401000100010801830001000182010001010181000101018100 +018201000105018300010001040181000103018100010301810001040181000101018100 +0101018100010c0181000105018100010401810001010189000100010001000100010601 +810001050185000100010001830100010081000182010001110183000100010501810001 +020181000101018100010701810001840100010001840100010001070183000100010601 +8100010a0181000182010001840100010001820100010101810001840100010001040183 +00010001820100010901850001000100018201000118018100010a018500010001000108 +018100018401000100011b01810001820100010b0183000100010001 +0601810001820100010801810001820100018401000100010f0183000100010201810001 +8201000109018100018401000100010d0181000103018100010101810001820100010a01 +8100010501810001040185000100010001090183000100010c0181000182010001070187 +000100010001000106018300010001080183000100018201000103018100018601000100 +010001040185000100010001010183000100010401830001000103018100010101830001 +00010201810001090183000100010601830001000103018100018c010001000100010001 +000100010101810001860100010001000101018700010001000100010401890001000100 +01000100010f0181000105018100010a0181000101018100010101810001090183000100 +018201000104018300010001040185000100010001020181000104010100020181000109 +018300010001820100010401850001000100010c018300010001820100010f0181000101 +018100010201830001000108018300010001820100010801810001030181000105018100 +018201000102018100010701810001820100018401000100010601 +010183000100010901810001820100010801810001820100010301810001840100010001 +0501810001820100010501850001000100010a0183000100018401000100010201810001 +0f0181000101018100010201820001008100010101810001820100010801810001840100 +01000105018100010e018500010001000104018300010001860100010001000106018500 +010001000106018100010b01830001000103018300010001040181000107018100010101 +810001040181000103018300010001050181000182010001070181000101018100010601 +870001000100010001080181000105018100018101000100860100010001000104018d00 +0100010001000100010001000111018100010e0183000100011201830001000106018100 +010201830001000105018100018401000100010b01830001000107018500010001000182 +0100010c0181000110018100010501830001000182010001070181000184010001000104 +018100010501810001060181000182010001820100018201000182010001080185000100 +010001 +0a0183000100010601810001840100010001060181000101018100010201810001840100 +010001050181000182010001060181000102018100018201000107018300010001060183 +000100018401000100010f01810001040181000186010001000100010601810001820100 +0182010001060183000100018101008100010401850001000100010d0183000100010e01 +82000100810001020183000100010301830001000106018b000100010001000100010001 +050181000102018100010301830001000114018300010001860100010001000101018100 +010301810001860100010001000101018900010001000100010001020102008801000100 +01000100010a018100010101810001820100010e01830001000104018300010001090189 +000100010001000100018401000100010101810001880100010001000100010401830001 +0001080183000100018401000100010601810001840100010001090183000100010f0181 +00010201850001000100018401000100010a0181000184010001000108018100010b0181 +00018401000100010d0181000107018100010201 +810001820100018401000100010601810001820100010b01810001820100010301810001 +050183000100010701810001820100010401810001020181000186010001000100010601 +8100010a0185000100010001060181000101018100018401000100010901850001000100 +010801850001000100010701810001820100010a01850001000100018201000105018100 +018801000100010001000106010100040181000106018500010001000103018300010001 +050181000103018100010a01810001120181000108018100010101870001000100010001 +040181000105018200010004000b018700010001000100010c0185000100010001040181 +000109010100060181000182010001040181000101018100010201810001060185000100 +0100018201000102018200010083000100010b0183000100018201000106018300010001 +840100010001050183000100010201810001840100010001020181000101018100010801 +8100010f0185000100010001090181000182010001080185000100010001820100010601 +83000100010701 +0b0181000182010001050181000184010001000182010001060181000182010001840100 +0100010501810001840100010001820100010601810001820100010e0181000101018300 +010001820100018201000101018100010601810001010181000107018500010001000182 +010001080181000101018300010001060183000100010701810001860100010001000108 +01850001000100010b018500010001000182010001010181000101018500010001000104 +018300010001010181000105018100010301810001840100010001160185000100010001 +080185000100010001080183000100010101850001000100010101810001030101008801 +000100010001000101018100010401830001000110018100010601810001040189000100 +010001000100010501810001010181000102018100010101850001000100010901810001 +07018100018401000100010b018500010001000109018100018401000100010301810001 +100183000100018201000101018100018201000184010001000182010001100181000184 +010001000182010001850100010001000100070181000182010001050181000102018100 +010001 +030181000184010001000109018100010b01810001820100010d01810001820100010b01 +8100010a0183000100018401000100011801830001000102018300010001820100010d01 +8300010001820100010501850001000100010501850001000100010b0185000100010001 +080187000100010001000104018100010201810001010183000100010601810001030181 +000101018b00010001000100010001000106018100011a01830001000188010001000100 +010001010187000100010001000105018100010201850001000100018101000100840100 +0100010301850001000100010a0181000119018100010201820001000100020182000100 +810001020181000101018100010101810001040181000104018300010001010181000101 +018100010901850001000100010c01850001000100010901810001070181000184010001 +000182010001090183000100018201000107018100018401000100010301810001140181 +00018201000182010001060183000100010801 +82010001090181000184010001000106018300010001820100010e018100018201000107 +01810001020181000182010001010181000186010001000100010a018100010301810001 +820100010101810001020181000106018300010001090187000100010001000182010001 +0101810001020101000701810001820100010b018700010001000100010b018300010001 +0d0183000100010101830001000102018500010001000101018300010001010181000102 +0181000102018100011f0189000100010001000100010401850001000100010101810001 +060102008101000100060181000101010100840100010001070101008601000100010001 +1d0181000108018100010401810001020181000101018500010001000106018100010701 +810001820100018601000100010001090185000100010001820100010901870001000100 +010001050181000182010001060101008401000100010c018100010d0181000105018100 +018401000100018201000104010100080181000182010001820100010201830001000182 +010001810100 +010181000182010001840100010001090183000100010901810001820100018401000100 +01820100010201810001820100010201810001020181000104018100010c018300010001 +820100010301810001020183000100010201810001050181000107018500010001000105 +018700010001000100010801850001000100010a01850001000100010e01810001820100 +011001810001020181000104018100010501810001030181000102018100010201830001 +000119018500010001000107018100018601000100010001010181000103018300010001 +820100010201810001020189000100010001000100010601870001000100010001030181 +000102018500010001000116018100010201810001820100010101810001020181000101 +018100010201810001030181000182010001010185000100010001020181000182010001 +82010001060183000100018401000100010901850001000100010c018100010401810001 +84010001000182010001010181000102018100018601000100010001820100010a018300 +01000184010001000101018100010b01850001000100018401000100010b018100010901 + +8100010e0183000100010801810001820100010601810001820100018401000100010501 +81000102018100010201810001040183000100018401000100010a018100018201000182 +010001020183000100018601000100010001050181000182010001040185000100010001 +0901870001000100010001080181000102018100010b0189000100010001000100010601 +830001000104018100010101820001008100010601810001010183000100010301810001 +040181000101018100012401870001000100010001080187000100010001000108018100 +01840100010001860100010001000181010001008201000109018300010001820100011e +018100010701810001060181000106018300010001010181000184010001000103018100 +010101810001040183000100018201000108018300010001820100010901850001000100 +018201000107018100010901810001010181000184010001000107018100018401000100 +010e0183000100018201000107018100018201000105018100018401000100010a018100 +0182010001 +080183000100018201000108018100018201000109018100010a01810001820100010201 +8100010201810001020183000100012b0183000100018201000101018100018201000106 +018300010001840100010001070181000186010001000100010901850001000100018201 +00010a01810001080183000100010301830001000182010001020181000101018d000100 +010001000100010001000110018100011601830001000101018100010101810001040185 +000100010001070181000183010001008200010082000100010004018300010001040187 +0001000100010001080185000100010001180181000106018100010b0183000100010401 +810001060183000100010101810001010181000109018500010001000109018500010001 +00010c018300010001820100010201850001000100018601000100010001070181000184 +010001000182010001070181000106018100010701810001820100018201000101018100 +01840100010001090183000100010a01 +81000182010001820100010b018100018201000103018300010001820100018201000103 +018100010301830001000105018100010201810001020181000106018100018401000100 +010901810001010181000184010001000184010001000102010200040181000101018100 +0104018100018401000100010b0183000100010901810001820100018401000100010801 +8300010001040181000108018300010001070101000301850001000100010e0181000101 +018500010001000116018700010001000100010501850001000100018401000100010101 +810001030183000100010701810001010181000101018200010089000100010001000100 +010401810001010187000100010001000106018500010001000110018100010a01810001 +030181000101018100010301810001040185000100010001040181000101018100010101 +810001820100010a0181000186010001000100010701850001000100010c018100010901 +810001020183000100018401000100010701810001840100010001030183000100010501 +810001840100010001820100010301810001070181000184010001000108018100010201 +8100010001 +090183000100018201000182010001050181000109018100018201000102018100010501 +810001820100010201810001020181000103018100018201000107018300010001840100 +01000110018100010201810001820100010401850001000100010b018500010001000104 +01870001000100010001820100010b018100010101810001060181000103018300010001 +820100010501810001820100010401830001000103018900010001000100010001020185 +0001000100010f018100011201850001000100010801810001010181000101018100010d +018100010101810001050181000103018500010001000109018100018101000100820100 +010a018100010b018100010c018100010101810001010181000103018300010001090181 +00010101810001820100010501850001000100010d018100018401000100010601810001 +8401000100010201810001070181000101018100010c0181000182010001040181000182 +010001840100010001120181000102018100018201000182010001080183000100018201 +000102018100010301 +010183000100018201000108018100018201000182010001050181000182010001060181 +000102018100018201000105018100011501810001090181000101018100018501000100 +0100830001000181010081000182010001020183000100010c01850001000100010a0181 +000108018100010701810001030181000104018300010001010181000111018100018201 +000105018100010a01810001050181000101018100011601870001000100010001050181 +000101018100010201830001000119018100010101810001010181000109018500010001 +00010a018700010001000100010e01810001820100010c01810001010181000102018300 +010001030181000186010001000100010201850001000100010101830001000109018500 +010001000102018100010601830001000184010001000104018100010201810001840100 +0100010201830001000186010001000100010a0183000100018401000100010501810001 +05018100018201000102018100010d018100018201000112010000 +0a0183000100018201000108018100018201000106018100018201000184010001000105 +018300010001030183000100018401000100010e01850001000100018201000102018500 +010001000106010100820100018401000100010901850001000100010901850001000100 +018201000182010001860100010001000101018100010301810001030181000102018700 +010001000100011301810001020187000100010001000101018100018801000100010001 +00010101810001010181000101018100010b018100010801810001090181000101018300 +0100011a0185000100010001030181000106018100010e0183000100010c018300010001 +050181000116018100010101810001040181000108018300010001050181000112018100 +01040183000100010b018300010001070183000100018201000102018100010701830001 +000184010001000107018100018401000100010d01810001020181000184010001000182 +01000108018100018401000100010201830001000101018100010101 +010181000182010001820100010801810001820100018201000108018200010081000108 +018100018201000105018100010901810001060183000100010501810001010181000185 +01000100010084000100010002000a0185000100010001820100010a0181000182010001 +070181000109018100010601850001000100018801000100010001000122018100018201 +0001050183000100010101810001010183000100010c0181000105018100010701830001 +000122018100010301890001000100010001000117018100010201830001000111018100 +010501810001060183000100010101810001010183000100010201870001000100010001 +020187000100010001000102018100011d018100010f0181000107018100018601000100 +010001820100010901810001820100010a01810001860100010001000182010001020181 +00010b018300010001820100011201810001 +810001090183000100018201000108018100018401000100010301810001010181000102 +0181000107018100010201810001820100018401000100010d0181000182010001010181 +000102018200010081000108018200010083000100018201000108018100018801000100 +010001000107018300010001030185000100010001820100010401810001010183000100 +010601810001010181000182010001100101000201810001030181000106018300010001 +030181000101018100010301810001080183000100010701850001000100010b01810001 +1e0183000100010501850001000100010f018100010a0181000124018100010101810001 +0301810001820100010a0183000100012601830001000102018100010801810001840100 +010001020181000182010001040183000100018201000107018300010001840100010001 +0d0181000102018100018201000182010001820100010701810001820100010401830001 +0001820100010301 +050181000182010001080181000184010001000109018200010081000103018100018401 +0001000184010001000102018100010e0183000100018401000100010701830001000104 +018300010001830100010087000100010001000102018100018601000100010001070181 +000101018100010201810001050181000108018100010201830001000106018300010001 +01018100011a018500010001000102018500010001000105018100010101810001010181 +00010101810001200181000103018100011c01810001030102008201000103018100010c +018100011101810001070181000101018100010301830001000107018100010201810001 +010183000100010401870001000100010001070181000112018100018201000114018300 +01000102018100010601810001820100010201810001090183000100010d018100010201 +830001000182010001080181000105018300010001030181000102018100010a01810001 +0001 +8201000182010001050181000182010001820100010a0181000182010001030101008201 +000182010001080183000100010201810001840100010001020181000106018100010201 +830001000182010001060181000184010001000104018100018201000101018100010901 +830001000182010001010181000108018100010101810001880100010001000100010601 +8100010201830001000108018700010001000100010d0181000106018300010001030187 +000100010001000101018100010101810001020181000107018100011501810001030181 +000114018100010501870001000100010001050183000100011b01810001260181000102 +0181000103018100010a0181000102018100010701810001090181000101018100010401 +810001820100011401850001000100010201010005018300010001820100010701830001 +000182010001110181000184010001000182010001820100018401000100010301810001 +0e018100010401 +060181000182010001080181000182010001840100010001050181000181010081000182 +010001020181000103018100010401810001020181000102018100010301810001820100 +010201810001090185000100010001020181000102018300010001840100010001090181 +00010d018100010101810001020181000105018100010401830001000102018100010301 +8300010001840100010001060183000100010e01810001820100010d0183000100010101 +810001020181000101018100010701830001000119018100010a01810001090185000100 +01000102018100018601000100010001010102002f018100011301810001020183000100 +010101870001000100010001860100010001000103018100011201850001000100018201 +000101018100011001810001090183000100010c01830001000102018100010501810001 +850100010001008100010201830001000102018100010301810001080183000100018201 +000104018100010201810001020181000101010000 +010181000182010001050181000182010001820100010801830001000182010001030181 +000108018100010501810001020181000105018100010d01850001000100018201000103 +018100018201000184010001000107018700010001000100018201000106018100010101 +810001820100010a0185000100010001020183000100010601850001000100010a018200 +0100010019018b0001000100010001000100010401810001010181000101018100012c01 +810001090185000100010001090182000100830001000101010100090181000137018500 +010001000101018100010401850001000100010301810001020183000100011101830001 +000104018100010201830001000112018500010001000184010001000184010001000102 +01810001820100010701810001020183000100010a018100010401810001050181000182 +010001820100010a01810001040181000102018100010301810001 +0701810001820100010501810001820100018401000100010b0181000103018100018201 +000184010001000182010001020181000102018300010001020181000104018500010001 +00010a018700010001000100018201000101010100850100010001008100010601810001 +020183000100010801810001080183000100010801810001840100010001080187000100 +010001000106018300010001080181000104018300010001010183000100010801810001 +010181000101018100010d01810001110181000101018100010a01870001000100010001 +0701860001000100010083000100018601000100010001810100020001018100010a0181 +0001820100011d0181000107018100010701810001010183000100010601830001000101 +01810001020183000100010c018100010401820001008700010001000100010201830001 +000102018100010601810001040181000104018100010a01830001000182010001090181 +000184010001000105018300010001820100018401000100018201000105018100018401 +000100010c0181000102018100010301 +0201810001820100010501810001820100010b0183000100018301000100830001000101 +0181000103018100010401810001820100010f0181000105018300010001860100010001 +000104018100018501000100010081000103018100018201000104018100012101870001 +000100010001060183000100018401000100010501810001860100010001000103018100 +010f01830001000103018100018601000100010001010181000101018100010101830001 +000119018100010901810001040181000105018900010001000100010001030185000100 +010001870100010001000100850001000100010201830001000101018100010a01010005 +018100010d01810001100183000100010101810001030183000100010601810001010181 +000103018100010b0181000181010001000701870001000100010001820100010d018300 +0100011b0183000100018201000109018100010301830001000108018300010001820100 +0108018300010001040181000102018100010601 +8100010601810001820100010b0183000100010501810001070183000100010501810001 +050183000100010201810001820100010501810001820100010b01830001000186010001 +00010001020181000184010001000104018100011a018100018201000105018300010001 +040183000100010801810001010181000108018500010001000106018100010401810001 +03018100018201000105018300010001010181000101018100010d018100010501810001 +0901810001030181000102018300010001030183000100010d0183000100010101880001 +0001000100010087000100010001000107018300010001010101000a018100010d018100 +010e01810001030181000101018100010501830001000182010001010181000102018100 +01820100010b01830001000102018500010001000106010100880100010001000100010b +018100018401000100010f01850001000100010501830001000182010001820100010201 +83000100010201810001840100010001820100010501810001820100010e018100010601 +82000100 +820100018201000182010001080183000100018201000182010001820100018401000100 +010501810001040181000102018100010201810001820100010201830001000182010001 +010181000101018100010901810001840100010001090183000100010201810001010181 +000124018500010001000104018300010001080183000100010101810001040185000100 +010001060181000103018100010401830001000182010001030185000100010001010183 +000100010101810001030181000115018100010101830001000101018300010001040187 +00010001000100010b018700010001000100010101830001000102018100010201810001 +0401870001000100010001080183000100010101810001090181000107018100010d0183 +0001000101018100010201830001000105018100018701000100010001008100010c0102 +00820100010801810001820100010801810001010181000102018300010001820100011f +018100010a01830001000184010001000105018100018401000100010801810001840100 +010001020181000107018100010401 +0c0183000100018201000182010001820100010801830001000182010001040181000102 +018100018401000100010501810001020181000101018100010701010001018300010001 +090183000100018201000101018100018401000100018201000118018100010801830001 +000104018100010601870001000100010001060185000100010001040183000100011001 +810001020183000100010101810001030181000103018100010101830001000119018500 +010001000103018300010001820100010b01870001000100010001070181000102010300 +81010084000100010001000a018900010001000100010001030182000100830001000101 +018100011701810001050181000101018100010401850001000100010901810001080181 +000104018100018401000100018201000106018700010001000100010401810001090181 +000101018100010501810001130181000184010001000184010001000184010001000184 +010001000182010001840100010001030183000100018201000107018100010101810001 +820100018401000100018201000182010001 +040181000184010001000182010001820100010b0183000100011c018100010701810001 +050183000100010e01810001020181000101018100018201000106018100011b01850001 +0001000103018100018201000101018100010c0183000100018201000109018100018401 +0001000101018100010d0181000101018300010001010183000100010101830001000101 +018100010101810001030181000109018700010001000100010101890001000100010001 +000182010001070187000100010001000105018900010001000100010001010183000100 +018201000102018300010001020183000100010e01020082010001090183000100010101 +830001000111018700010001000100010101830001000108018100010201810001090181 +00018401000100010b018500010001000106018200010002008201000103018100018201 +000102018100010b01810001190181000102018100010a018100010a0181000182010001 +820100010e018100010201 +830001000101018300010001820100010801810001840100010001080181000184010001 +000101018100018201000184010001000184010001000102018100018401000100010201 +830001000184010001000103018100018401000100010201810001040183000100010401 +810001840100010001010181000112018300010001820100010101810001030181000102 +018300010001010181000102018700010001000100010a01830001000186010001000100 +011101810001010181000105018100010101810001030181000101018100010901830001 +000101018100010301850001000100010601810001020181000186010001000100010701 +850001000100010701850001000100010101820001000400810100810001040187000100 +01000100010101810001010181000103010100860100010001000102018100010b018100 +0106018100010901830001000101018100018a0100010001000100010001120101008201 +000184010001000108018300010001820100010301810001820100010101810001010181 +000184010001000182010001070181000111018300010001050181000101018100018201 +000184010001000184010001000182010001840100010001820100010701810001010181 +00018201000184010001000103018100010001 +810001820100010801810001840100010001090183000100018201000105018100018201 +0001820100010a0181000102018100010201810001060183000100011201810001020183 +000100011b018100010601020081010087000100010001000103018100010f0183000100 +010101810001130181000108018100010301830001000101018100010101830001000101 +018100010101810001010185000100010001070183000100010501810001010184000100 +010001000701890001000100010001000101018f00010001000100010001000100010001 +010183000100018401000100018101008900010001000100010001050181000101018700 +010001000100010101810001040187000100010001000102018100010501810001040181 +000184010001000184010001000103018300010001040181000103018100010801810001 +020185000100010001060183000100018201000108018500010001000182010001140181 +000118018100010201820001008300010001020183000100010301810001820100010701 +8100018201000116010000 +050181000182010001820100010b01830001000108018300010001040181000102018100 +018201000184010001000107018100010201810001010181000104018100011201810001 +040183000100018201000116018400010001008100010101830001000101018100010201 +830001000101018300010001010181000182010001010181000119018100010801810001 +01018d000100010001000100010001000103018100010101810001070189000100010001 +000100010501870001000100010001020183000100010301830001000103018700010001 +000100010701810001010185000100010001010183000100010101010001010100820100 +01030185000100010001070189000100010001000100010a018100010101830001000115 +018100010501830001000101018100018401000100010d01810001820100010201830001 +000182010001030181000186010001000100010901810001050181000105018300010001 +0c0185000100010001110181000183010001008100018401000100010501810001840100 +010001050181000101018100010501810001030183000100010101 +820100018201000108018100018401000100018201000106018300010001820100010501 +810001820100018201000108018300010001840100010001020181000181010081000119 +0181000102018300010001020181000101018100010b0185000100010001820100010801 +850001000100010201810001030181000103018100011a01810001120181000101018100 +010c01810001010181000101018100018401000100010901810001010181000102018300 +010001880100010001000100018201000103018300010001070187000100010001000101 +010100850100010001008400010001000100010181000105018700010001000100010101 +8800010001000100010081000105010400820100010b0183000100018201000103018500 +010001000101018100010201830001000105018100012501830001000106018100018201 +00010a0181000101018100018201000129018100010d0181000108018200010085000100 +0100010101810001820100010201810001820100010201810001 +060181000182010001820100010b01830001000105018100010201810001030101000301 +8100018401000100010501810001020181000106018100010401850001000100010b0181 +00018201000104018100010f018100010401870001000100010001860100010001000103 +01810001040187000100010001000124018100010801810001010181000101018100018a +010001000100010001000101018100010101850001000100010201810001010181000101 +018500010001000103010200810100830001000103018700010001000100010301870001 +0001000100010b0185000100010001840100010001010185000100010001010181000107 +018500010001000105018200010001000401830001000186010001000100010c01810001 +07018100010101830001000102018500010001000103018100010e018300010001120181 +000102018100010401810001030183000100010201810001010181000182010001130181 +00010e018100010201010084010001000182010001820100010201810001840100010001 +0901810001050181000105018100010201 +04018100010b018300010001820100010801810001020181000106018100018201000184 +0100010001050181000102018100010201810001040101000d018100010d018300010001 +850100010001008100010801810001010185000100010001840100010001080181000101 +018500010001000122018500010001000109018100018401000100010201810001090183 +000100010101830001000104018500010001000107018500010001000182010001880100 +010001000100010601850001000100010901880001000100010001008600010001000100 +810001810100010004018300010001010183000100010901860001000100010081000101 +010100810100810001010181000107018700010001000100010801830001000101018100 +010301810001010181000186010001000100010101810001050181000122018300010001 +0a0183000100018401000100010201810001060181000117018100010101810001020181 +000113018100010201810001030181000184010001000182010001820100010301810001 + +830001000106018100018401000100010801810001840100010001060183000100018401 +000100010901810001840100010001820100010201810001010181000183010001008100 +011401010082010001840100010001080181000104018300010001820100010401830001 +000101018500010001000103010100820100010401830001000118018100010a01820001 +008100010101810001010181000102018100010101890001000100010001000101018300 +010001050101000301810001810100810001840100010001010187000100010001000102 +01010001018700010001000100010901850001000100010e018200010081000101010400 +820100010601890001000100010001000107018200010003008101008100010101850001 +000100010901830001000102018100010301810001010183000100010101810001060185 +0001000100010b0181000126018300010001820100010101810001820100018201000101 +018100010201810001160181000104018200010081000182010001010181000182010001 +82010001020181000105018100010101810001040181000108018100010301 +050181000182010001020181000105018100018201000108018300010001080181000101 +0181000184010001000102018100010201810001820100010101810001820100011a0181 +000109018700010001000100018401000100010501820001000100840100010001820100 +0109018100010201830001000103018100010e018100010a018100010201010008018100 +010301810001010183000100010701810001010187000100010001000188010001000100 +010001030185000100010001840100010001010103000f01850001000100010501810001 +030182000100050082010001020185000100010001030183000100010b01850001000100 +010101010007018500010001000104018700010001000100010401870001000100010001 +010181000103018300010001010185000100010001840100010001080181000102018100 +012601810001020181000102018100010101810001020181000184010001000116018500 +0100010001050183000100010b0181000182010001080181000105018100018201000103 +0182000100 +8401000100010b018100018201000105018100018401000100010e018100010101810001 +04018100010201810001040181000105018100010f018100010501810001840100010001 +86010001000100018201000101010200030182000100010008018100010e018300010001 +010185000100010001060181000109018100010201810001030183000100010101020081 +010083000100010201810001010181000103018700010001000100010101810001010181 +0001010183000100018801000100010001000105018400010001000100820100010a0187 +000100010001000103018100010301810001010183000100010401810001010182000100 +02008501000100010081000105018b000100010001000100010001050181000101010300 +010101008201000103018100010101810001050183000100010501830001000102018300 +01000103018100010501810001050181000105018100018201000101018100011e010100 +030181000102018300010001810100820001000200060181000110018100010701810001 +830100010081000107018100010801810001820100010801810001820100010201810001 +820100010101 +030181000182010001840100010001030181000184010001000182010001140101000201 +830001000182010001840100010001040181000102018100012001810001030181000182 +010001010181000101018100018101008100010301810001020183000100011401810001 +1b0181000101018100010101050003018100010701810001010185000100010001030183 +000100010501810001020181000108018100018201000182010001050181000101018700 +010001000100010301810001030181000101018300010001050184000100010001008101 +0001008101000200860100010001000186010001000100010c0185000100010001070101 +008101000300080187000100010001000103018300010001030183000100010201890001 +000100010001000104018100010101850001000100018201000102018100010901810001 +1901830001000184010001000182010001820100010701830001000104018100010c0181 +000101018300010001020181000102018100011501850001000100018201000105018100 +010501810001 +01018100010801810001820100010a018100018401000100010201810001820100018201 +000106018100010a01830001000102018100010201850001000100010601810001120183 +000100010401810001010185000100010001010183000100010201830001000112018300 +010001020183000100010b01850001000100018201000101018700010001000100010201 +810001050181000101018100010201830001000105018300010001030185000100010001 +0101830001000104018300010001010181000102018b0001000100010001000100010901 +810001010183000100010301890001000100010001000104010100080104000101810001 +040185000100010001820100010901860001000100010081000106018300010001010181 +000101018100010401810001050185000100010001010183000100010801810001020181 +000182010001050189000100010001000100010f018100010e0181000108010100840100 +010001820100010101810001830100010081000110018100010601810001030182000100 +830001000184010001000103018100010201810001060183000100018201000182010001 +0201810001820100010201 +07018100018201000105018300010001820100010d018100010701810001040181000184 +010001000182010001020183000100010201830001000115018100010501810001040101 +008301000100020004018500010001000182010001170181000101018100010701870001 +0001000100010401850001000100010b0185000100010001070181000101018700010001 +000100010101850001000100010101810001010181000101010100840100010001050187 +000100010001000104018100010301870001000100010001050185000100010001050183 +000100010601040084010001000104018900010001000100010001050183000100018401 +000100010801030083010001000100060101000201830001000103018300010001050181 +00010301870001000100010001860100010001000101018200010083000100010a018500 +01000100011201810001070187000100010001000102018100010e018100010401810001 +0a0183000100018401000100018201000102018100010801810001020181000102018100 +0101018100010a018100018201000102018100010001 +810001840100010001060181000115018100011101810001040181000182010001040183 +000100010201810001140181000102018100010101830001000105018100010301810001 +010101001501810001060181000101018500010001000105018300010001840100010001 +090187000100010001000101018100018401000100010101810001020181000101018100 +010301810001030183000100010101830001000106018500010001000102018500010001 +000103018100010101830001000105018700010001000100010301830001000107018300 +010001020181000106010700070185000100010001080187000100010001000104018100 +010301010002018100010801810001050185000100010001010185000100010001010183 +000100010f0187000100010001000109018700010001000100010f010100020181000182 +0100010201810001020185000100010001820100010601010009018100010c0181000184 +01000100010e01810001080181000184010001000108018100018301000100 +080183000100010e01830001000103018300010001820100018201000104018100010101 +810001030183000100010501830001000104018100010101810001190183000100010201 +82000100010001018100010401810001010181000109018100010a018100010201850001 +0001000182010001020183000100010a0187000100010001000104010200840100010001 +010181000101018100018201000102018100010101890001000100010001000103018100 +0102018200010083000100010a0187000100010001000103018900010001000100010001 +030183000100010101810001030183000100010101850001000100018201000101018700 +010001000100010301810001880100010001000100010501870001000100010001080189 +000100010001000100010701850001000100010601830001000182010001020181000105 +018100010301830001000182010001010181000182010001040181000102018100018201 +00010c018100018601000100010001090181000104018200010081000104018300010001 +020185000100010001020183000100018201000107018300010001840100010001050101 +000801810001050181000103018100010201810001820100018401000100010901 +820100018401000100010801810001030183000100010501810001820100018401000100 +010601810001030181000182010001060181000102018300010001820100010201830001 +000101018100011201810001820100010101010082010001010183000100018201000103 +0181000103018100010a0187000100010001000102018100010101810001040181000107 +018700010001000100010501810001840100010001030181000101018500010001000105 +0183000100010b0185000100010001820100010301810001030183000100010101850001 +000100010101850001000100010501830001000101018100010301810001030187000100 +010001000106018300010001010181000103018100010201850001000100010301870001 +000100010001050187000100010001000106018700010001000100010901820001008300 +010001020181000101018100010101810001840100010001030185000100010001820100 +01010183000100018801000100010001000106018700010001000100010d018100010401 +810001080181000103018100010201830001000106018100011301810001020181000182 +010001820100010501810001100181000105018100010201810001820100018201000181 +0100 +030181000105018100018201000102018100010301810001840100010001820100010201 +810001050181000106018100018401000100018401000100018401000100010201810001 +02018100011c01810001820100010101810001840100010001040102000a018100018601 +000100010001060185000100010001820100010101830001000103018500010001000103 +018100010101850001000100010201870001000100010001810100010005010100010181 +000103018d00010001000100010001000100010301810001010101008601000100010001 +030181000101018700010001000100010101830001000107018100010101890001000100 +010001000107018500010001000104018100010101830001000101018300010001040183 +000100010701870001000100010001050184000100010083000100010301810001010187 +000100010001000105018300010001010181000101018500010001000102018300010001 +03018200010001000501820001008d000100010001000100010001000106018100018401 +000100011001870001000100010001820100010501810001010185000100010001040181 +000104018100010701810001030183000100010201810001130181000182010001050181 +00010201810001050181000182010001 +010181000102018100010501810001820100010501810001820100018401000100018201 +000116018300010001820100010401810001070181000103018100011801810001820100 +018201000103018300010001030187000100010001000108018500010001000107018300 +010001030181000109018100010101810001020185000100010001090102008201000107 +018300010001010183000100010101830001000101018300010001010181000108018300 +010001010187000100010001000107018300010001010185000100010001030181000103 +018700010001000100010601830001000101018100010101830001000101010100820100 +010501890001000100010001000105018100010101830001000104018600010001000100 +810001820100010501830001000105018100010101810001050185000100010001840100 +010001010101000201810001010181000182010001030185000100010001020187000100 +010001000104018700010001000100010501810001080183000100010301810001070181 +000106018300010001090183000100010501810001160181000105018100010201810001 +030183000100010501 +0a0181000105018300010001820100010a01830001000103018100010301810001030181 +000182010001070183000100010201830001000117018100010501810001840100010001 +01018200010082000100010002018300010001060189000100010001000100010b018100 +010301830001000103018d00010001000100010001000100018201000107018600010001 +000100830001000104018500010001000103018100010301810001030181000103018100 +010101810001860100010001000101018700010001000100010101930001000100010001 +000100010001000100010001030181000101018300010001070185000100010001040181 +000101018100010301810001040187000100010001000107018500010001000101018100 +010301860001000100010081000103018100010101870001000100010001090181000101 +018500010001000103018300010001040101000401870001000100010001080185000100 +010001040183000100018201000106018100018201000101018500010001000182010001 +030181000183010001000100010181000186010001000100018101008100018201000182 +010001040181000184010001000184010001000103018100011501810001820100010201 +810001020181000182010001820100010501 +050181000107018100018201000108018100010d018100010e0185000100010001050181 +0001040183000100010b0183000100010701810001010101000101020001010300020181 +000104018300010001820100010a01890001000100010001000102018300010001820100 +018201000101018700010001000100010801870001000100010001070185000100010001 +820100010401830001000101018900010001000100010001010183000100010101810001 +01018100018201000102018100018e0100010001000100010001000100010d0183000100 +01090185000100010001060183000100010101870001000100010001010101000a018700 +010001000100010501890001000100010001000102018100018101008300010001010181 +000105018300010001010185000100010001010181000105018300010001030183000100 +018601000100010001820100010501830001000184010001000106018700010001000100 +01020185000100010001060181000106018100010b018300010001810100810001060181 +000102018100018101008100018201000184010001000102018100018201000114018100 +01040181000102018100010801810001820100010001 +8201000105018200010083000100010a018100011c018100018201000107018300010001 +020183000100011701810001030185000100010001830100010001008201000181010087 +00010001000100010a018100018401000100010801830001000106018100010b01870001 +000100010001070187000100010001000108018100018201000103018100010901810001 +030181000101018100018201000101018300010001810100870001000100010001010181 +000103018700010001000100010701890001000100010001000105018500010001000104 +018300010001050181000102018b00010001000100010001000105018700010001000100 +010301810001010184000100010001008101008300010001840100010001840100010001 +010181000182010001010181000102018300010001050183000100010101810001070187 +000100010001000108018700010001000100010601850001000100018201000102018300 +01000101018100018a010001000100010001000182010001050181000103010200010181 +00010201810001020102000101830001000102018100011e018100010201810001840100 +01000182010001820100010601 +030181000184010001000108018100011d01810001080181000184010001000105018100 +010301810001840100010001070181000101018100010401820001008500010001000181 +01008200010004000c018700010001000100010601870001000100010001820100018201 +000101018300010001010181000101018700010001000100010901850001000100010701 +010081010001008201000106018100010101890001000100010001000101018300010001 +010181000101018100018501000100010001000501810001820100010101830001000107 +018700010001000100010701870001000100010001060185000100010001010184000100 +010087000100010001000103018100010301850001000100010701830001000101018100 +010401810001040101000701810001010181000101018100010101810001040101000101 +8100010301830001000182010001010181000104018100010101850001000100010a0183 +000100018401000100010901810001030181000104018300010001040185000100010001 +010183000100010501010081010087000100010001000182010001020182000100830001 +000182010001160181000102018100010d01810001820100010101 +810100810001050181000105018100012601830001000107018300010001050181000112 +018500010001000185010001000100820001000500040181000103018500010001000108 +01850001000100010301810001820100010201830001000103018100010b018900010001 +00010001000106018700010001000100010a018500010001000102018100010601810001 +030181000101018100018201000106010500820100010701870001000100010001010181 +000103018700010001000100010701850001000100018201000103018100010301810001 +820100010301830001000101018100010701870001000100010001070184000100010002 +008201000102018100010301810001050185000100010001010183000100010801810001 +050181000102018700010001000100010601850001000100018401000100010801850001 +000100010401810001820100010101830001000104018500010001000105018500010001 +00018401000100010701820001008400010001008100010b018100010e01810001030181 +00010201810001840100010001820100018401000100018201000101010000 +390101000301810001840100010001040183000100010201830001000182010001020183 +000100018401000100010801810001010181000101018300010001830100010083000100 +018201000105018300010001840100010001010185000100010001820100010301810001 +8801000100010001000101018b0001000100010001000100010701830001000184010001 +000109018200010003000801810001010184000100010081000103018100010101830001 +000105010300030181000102018700010001000100010701810001010183000100010501 +890001000100010001000108018300010001010183000100018201000101018300010001 +070187000100010001000107018500010001000109010200880100010001000100010501 +810001050181000103018300010001010181000101018100010401810001020181000105 +0183000100018401000100010801850001000100010f018100018a010001000100010001 +000184010001000102018500010001000104018100018301000100020082010001030187 +000100010001000184010001000112018100010201830001000102018100018201000112 +01 +32018100010501810001840100010001050183000100018601000100010001820100010d +018300010001860100010001000104010200810100020082010001820100010101870001 +000100010001020187000100010001000106018500010001000102018100010601810001 +0a0183000100010201810001090186000100010001000100840100010001010185000100 +010001010183000100010801850001000100010401810001820100010401820001000100 +820100010701870001000100010001050187000100010001000107018700010001000100 +018201000106018300010001010181000103018900010001000100010001050187000100 +010001000105018a00010001000100010001008100010801810001050185000100010001 +0101830001000103018100010101810001020183000100010201850001000100010c0185 +000100010001080185000100010001100183000100010601830001000186010001000100 +018301000100850001000100010101810001810100020082010001840100010001020183 +000100018301000100810001070181000103018100010301810001820100010501830001 +0001020181000182010001810100810001 +3a0181000105018100018201000109018100010601810001860100010001000102018100 +010601820001000100820100010201020081010083000100010301810001840100010001 +050181000186010001000100010b01880001000100010001008100010101850001000100 +010401810001010189000100010001000100010101810001040181000184010001000103 +018500010001000101018900010001000100010001020185000100010001020182000100 +810001020101008201000102018700010001000100010301890001000100010001000107 +018700010001000100010501810001020187000100010001000102018100010101830001 +000101018100010501870001000100010001050187000100010001000105018100010301 +8700010001000100010b0183000100010101850001000100010101810001030181000102 +0182000100820001008100018a0100010001000100010001080183000100010b01810001 +0101810001020187000100010001000102018100010d0183000100018401000100018501 +000100010084000100010084000100010002008101008300010001060181000182010001 +0a0183000100010501830001000106018100010801 +260181000107010100840100010001060181000102018100010201850001000100018201 +000101018100010b01820001008600010001000100870001000100010001860100010001 +000102010400840100010001060185000100010001080187000100010001000181010081 +000101018300010001040181000108018500010001000103018100010301810001010187 +000100010001000181010083000100010301810001070181000101018500010001000105 +018100018201000103018200010085000100010001050185000100010001090187000100 +010001000105018700010001000100010601830001000184010001000107018100010101 +830001000101018100010501850001000100010701870001000100010001010181000101 +01850001000100010501850001000100018401000100010a018500010001000182010001 +0a018300010001030183000100018201000105018100018401000100010a018300010001 +0401810001040183000100018401000100010b0183000100010301840001000100010001 +018200010085000100010001020181000107018100018401000100010701810001820100 +010201810001840100010001050181000101018100010001 +280181000107018100010401810001020182000100810001020181000101018100010401 +810001020181000104018200010083000100010401810001010183000100018201000102 +01010081010001000a01850001000100010a018300010001090183000100010301850001 +000100010301890001000100010001000103018100010101850001000100010101830001 +00010b018100010101870001000100010001010181000101018600010001000100810001 +0201820001008700010001000100018a0100010001000100010001070187000100010001 +000105018700010001000100010a01830001000102018100010301810001010181000101 +018100010501810001010181000109018200010081000186010001000100010301010001 +0183000100010e0181000101018900010001000100010001840100010001030183000100 +018801000100010001000108018300010001020187000100010001000104018500010001 +000102018100010301830001000186010001000100018201000106018300010001840100 +010001060181000185010001000100840001000100840001000100830001000102018300 +010001820100010e01810001050181000102018100018201000184010001000182010001 +01018100010001 +1e0181000104018100018201000105018100010401810001820100010101810001020181 +000184010001000105018100010601810001010181000102018400010001008900010001 +000100010001860100010001000104018500010001000184010001000108018700010001 +000100010401810001010185000100010001020183000100010501850001000100010701 +830001000101018500010001000101018100010501810001010183000100010301830001 +0001010189000100010001000100010a0183000100018401000100010101810001090187 +000100010001000105018700010001000100010901870001000100010001040181000104 +018100010501810001010101008401000100010301890001000100010001000101018100 +010701830001000105018100018301000100010003018500010001000101018100010301 +850001000100010401820001008100018101008100010301850001000100018601000100 +01000103018100010201830001000101018500010001000182010001080183000100010b +018500010001000109018300010001840100010001050186000100010001008100010101 +81000184010001000105018200010083000100010501810001020181000104018100010e +0101000101 +1b0181000108018100010401810001840100010001820100010201810001040181000182 +010001040183000100010501830001000101018100018801000100010001000186010001 +000100018401000100010101810001020187000100010001000108018100018401000100 +010a01810001010181000104018300010001860100010001000101018100018201000101 +018300010001010187000100010001000107018300010001810100810001010101000501 +810001030181000109018100010101830001000101010200820100010401810001020187 +000100010001000105018700010001000100010901870001000100010001080183000100 +018201000105018100018401000100010901870001000100010001050181000101018300 +010001010181000105018900010001000100010001010181000103018100010101810001 +010183000100010501830001000184010001000101018200010002008201000108018500 +010001000101018100010801830001000102018100010101850001000100010201830001 +000184010001000108018100018401000100010b01830001000183010001008500010001 +000183010001000100010181000186010001000100010501810001050181000102018300 +0100010301830001000182010001020181000101018100010101 +040181000104018100010101830001000182010001070181000102018100010301830001 +0001050184000100010081000104018100010501830001000104018100010b0185000100 +010001840100010001060183000100018401000100010601890001000100010001000106 +018500010001000184010001000103018700010001000100010101810001030183000100 +018201000103018500010001000107018300010001840100010001070181000104018100 +010101830001000101018900010001000100010001010181000103018100010601020001 +018300010001050187000100010001000109018700010001000100010701870001000100 +010001020181000104018500010001000104018700010001000100010901890001000100 +010001000103018100010101870001000100010001010187000100010001000103018100 +010101810001010181000103018500010001000105018300010001820100010601870001 +000100010001060189000100010001000100018201000110018300010001810100810001 +030183000100018401000100010601830001000186010001000100010901010082010001 +040181000186010001000100018201000186010001000100010301810001020181000104 +018100010801810001820100018201000182010001 +070181000182010001070181000105018100010701810001050183000100010201810001 +050181000102018100018401000100010201830001000102018100010401850001000100 +010401830001000186010001000100018201000105018100018401000100010801870001 +000100010001060187000100010001000105018900010001000100010001010183000100 +018601000100010001030183000100018401000100010701870001000100010001010181 +000101018100018201000103018100010701830001000101018300010001010187000100 +010001000102018100018801000100010001000109018700010001000100010701870001 +000100010001050181000110018300010001070189000100010001000100010901870001 +000100010001040101008201000103018100010101830001000101018100010101810001 +010183000100010101890001000100010001000182010001010184000100010083000100 +010701830001000184010001000105018100018a01000100010001000100010301810001 +860100010001000186010001000100018201000106018500010001000182010001080181 +000184010001000104018100018401000100018401000100010701810001820100010701 +810001020183000100010301830001000184010001000104018100010201 +050181000102018100010301830001000105018400010001008100018401000100018401 +00010001820100010701830001000182010001020181000107018100010b018100010401 +870001000100010001090187000100010001000109018500010001000106018900010001 +000100010001030183000100018401000100018201000105018100010101810001020181 +000102018300010001070187000100010001000101018100010301830001000101018300 +010001010183000100018201000181010083000100010301810001030181000104010100 +820100010101810001070189000100010001000100010701870001000100010001050187 +000100010001000116018700010001000100010901870001000100010001010181000105 +01830001000101018100010101830001000101018100010b010100030181000105018100 +010201010082010001020181000102018700010001000100010801870001000100010001 +0c018100010d018100010201870001000100010001070185000100010001820100010601 +810001820100010401810001020182000100850001000100010a01810001020181000104 +018100010b01810001030101000001 +820100010d018100018401000100018201000102018100018401000100010a0183000100 +018201000104018100010101810001120183000100010401830001000106018400010001 +008500010001000106018700010001000100010401870001000100010001820100010301 +810001010183000100010401840001000100810001020101000501830001000108018700 +010001000100010101810001030181000101018300010001020101008201000107018100 +010801810001030181000101018200010002008201000104018700010001000100010701 +8900010001000100010001050181000101018300010001050183000100010e0181000103 +018100010501870001000100010001090181000101018300010001010181000183010001 +008900010001000100010001010181000104018300010001030183000100010101810001 +820100010101830001000102018300010001010181000108018700010001000100010801 +830001000184010001000105018500010001000183010001000100030181000104018100 +010101810001840100010001090181000102018100010401830001000184010001000182 +010001010181000103018300010001070181000102018300010001030183000100018201 +00018201000108010000 +840100010001010183000100018201000182010001070181000181010081000109018300 +010001820100010401810001840100010001070181000105018100010401810001060181 +000103018100018401000100018401000100010501810001840100010001060185000100 +010001060181000101018300010001060185000100010001040181000182010001030181 +000182010001030187000100010001000101018100010301810001010183000100010301 +850001000100010301850001000100010301880001000100010001008100010701810001 +040102008301000100810001090185000100010001070181000101018300010001010181 +000101018700010001000100011401830001000101018100010301810001050187000100 +0100010001090181000101018100010b0181000186010001000100010301830001000103 +018100010101810001840100010001810100820001008100010501830001000184010001 +00010701850001000100010d018300010001080181000101018100010201830001000102 +018100010401850001000100018401000100010201810001020183000100010401830001 +0001030183000100010c0181000102018100010501830001000184010001000103018100 +01820100010401 +06018100018201000105018300010001820100010a018300010001080183000100010501 +840001000100010004018300010001020181000182010001020183000100010501810001 +070187000100010001000102018100010101830001000184010001000108018300010001 +050185000100010001820100010301860001000100010081000186010001000100010101 +810001020181000101018100010301810001010183000100010301870001000100010001 +030181000181010085000100010001010181000103018100010101840001000100810001 +010183000100010101820001008100010501810001020187000100010001000105018100 +0103018100010101810001010187000100010001000103018700010001000100010e0183 +000100010101870001000100010001010183000100010101810001050189000100010001 +000100010601010086010001000100010101830001000104018100010101810001010187 +000100010001000101018100010101810001050189000100010001000100010301810001 +860100010001000106018700010001000100010701810001850100010001008500010001 +000102018500010001000104018300010001020181000106018100018401000100010401 +830001000182010001010181000102018100018201000186010001000100010501810001 +020183000100010b018100018201000182010001840100010001 +010181000182010001020181000184010001000105018100010301020001018100010201 +830001000184010001000184010001000184010001000119018100010c01830001000184 +010001000106018500010001000108018100010801870001000100010001040187000100 +01000100010d018300010001060181000101018300010001030187000100010001000109 +018100010201010002018300010001070181000106018300010001010181000104018500 +01000100010101010006018100010101830001000101018b000100010001000100010001 +050185000100010001160183000100010501810001010183000100010101810001010185 +000100010001070187000100010001000182010001060101000601850001000100010101 +810001070181000104018100010101810001840100010001050187000100010001000104 +01870001000100010001060181000101018100010d018100010101810001820100010101 +830001000184010001000104018300010001840100010001040183000100018201000104 +018300010001840100010001020181000114018300010001820100018201000108018100 +0182010001 +010181000182010001820100010801830001000184010001000105018100018201000101 +018100018201000182010001090181000183010001008100011c01010007018500010001 +000104010300840100010001060181000103018100010301810001860100010001000107 +018100018601000100010001840100010001010185000100010001820100010501850001 +000100010301810001030187000100010001000107018100010901850001000100010f01 +810001010181000101018100010301010082010001010181000101018700010001000100 +010301890001000100010001000109018300010001120187000100010001000105018100 +010101830001000101018100010101850001000100010601820001008900010001000100 +010001810100810001820100010301810001030187000100010001000101018100010401 +810001060181000101018300010001050181000184010001000105018300010001840100 +010001050187000100010001000105018100010301810001020181000104018300010001 +090183000100018401000100010201830001000184010001000105018300010001810100 +8100010a01810001820100010a01810001820100010801 +8100010a0181000182010001080183000100018201000102018100018401000100010501 +8300010001840100010001110183000100010d0101000201850001000100010201050082 +0100011401810001840100010001070187000100010001000107018100010c0187000100 +010001000101018100010301810001010183000100010401010084010001000182010001 +0201810001030183000100010b0183000100010201810001060181000101018100010401 +8700010001000100010501850001000100010b018700010001000100011e018900010001 +000100010001030181000101018700010001000100010101820001008100010801810001 +010101000c01810001070181000103010100020185000100010001020181000103018100 +010101830001000104018700010001000100010801830001000105010100860100010001 +000182010001040181000101018100010401830001000186010001000100010901810001 +020183000100010201810001820100010801810001050181000105018100010201810001 +020181000104018300010001820100010001 +020181000181010085000100010001820100010301830001000182010001020183000100 +018201000102018300010001840100010001020181000105018300010001820100010201 +810001020181000113010100810100020002018100010801830001000117018700010001 +000100010801870001000100010001010188000100010001000100810001080181000102 +018300010001030187000100010001000109018300010001020181000105018500010001 +0001010181000109018e0001000100010001000100010001008100010301890001000100 +010001000107018900010001000100010001050183000100010601810001070187000100 +01000100010d018500010001000109010100820100010101870001000100010001080181 +000109018300010001010181000108018100010601870001000100010001020181000103 +018700010001000100010401850001000100010501850001000100010101830001000106 +01850001000100010401810001820100010101810001070185000100010001820100010e +018300010001830100010081000103018100010c01810001020181000106018100010601 + +820100018201000105018300010001820100010501830001000108018100010901810001 +840100010001820100010301810001020181000112018300010001820100010601020001 +010200010183000100010101810001110185000100010001080187000100010001000103 +018300010001010181000105018100010201870001000100010001030187000100010001 +000107018900010001000100010001020183000100010201010006018300010001010181 +00010401810001840100010001030181000103018200010083000100010b018500010001 +0001050185000100010001010181000102018100010f0185000100010001010189000100 +010001000100010901820001008300010001010181000103018100010101810001010182 +000100010082010001040183000100010101810001110101000101850001000100010801 +850001000100010901810001020181000107018500010001000184010001000102018100 +010101810001820100010301810001840100010001060183000100010c01850001000100 +0102018100018201000102018100010d01810001130181000103018300010001810100 +010183000100018101000100040183000100018201000182010001050104000601810001 +840100010001020101000401810001840100010001180181000183010001000200820100 +01070183000100011d018300010001840100010001070183000100010701850001000100 +010101810001060185000100010001050189000100010001000100010701810001010101 +00030183000100010a018100010301810001070183000100010101830001000108018900 +010001000100010001030185000100010001050186000100010001008100011901830001 +000101018100010101840001000100830001000107018100010101830001000105018100 +010301810001030181000116018300010001090187000100010001000106018700010001 +000100010301810001020183000100010101830001000105010100820100010201810001 +040187000100010001000102018300010001820100010801810001820100010901850001 +000100018201000102018300010001820100010801810001820100010201810001020181 +000102010200820100010501810001 +040183000100018401000100010601820001008500010001000108018200010081000182 +01000103010200010183000100010101820001008100010d018100018201000101018300 +010001810100010082010001030183000100010a0181000113018500010001000104018b +000100010001000100010001050181000101018100010501830001000186010001000100 +0103018700010001000100010b0187000100010001000102018100018201000116010100 +010183000100010301810001070182000100810001050185000100010001070185000100 +0100011a0185000100010001050181000101018700010001000100010201830001000103 +01810001050181000101018700010001000100010101830001000108018100010e018300 +010001020183000100010901870001000100010001060187000100010001000106018100 +01010185000100010001040181000186010001000100010d01830001000112018100010c +01830001000107018100010e0181000105018100010401810001840100010001 +010181000106018200010085000100010001820100010701010081010001000601840001 +000100010003010400830100010082000100810001050181000106018200010001000201 +810001010181000109018300010001820100010101850001000100011501850001000100 +010901830001000184010001000103010100840100010001820100010301870001000100 +01000107018d000100010001000100010001000103010100010181000118018100010d01 +870001000100010001020187000100010001000105018700010001000100010701810001 +01010100820100011501890001000100010001000106018b000100010001000100010001 +010185000100010001820100010801810001020181000109018100010401810001820100 +0101018100010101810001820100010201850001000100010b0183000100010a01810001 +050183000100018201000101010100040181000104018300010001880100010001000100 +011a018100010401830001000184010001000104018100011a0183000100010801 +030101000101010082010001030181000181010001008101008200010002000301810001 +810100010081010081000182010001030102000701010084010001000184010001000101 +018200010087000100010001000101018100010201830001000101018100010201890001 +000100010001000182010001010181000111018300010001070187000100010001000104 +01850001000100010d018100010701870001000100010001030181000103018100010101 +850001000100010101810001010185000100010001010181000104018100010301810001 +010184000100010001008101000100820100010301850001000100010401890001000100 +010001000107018700010001000100010101810001140187000100010001000107010100 +820100010901870001000100010001030181000101018500010001000108018100010101 +810001040181000101018100010201850001000100010d018b0001000100010001000100 +010201810001820100018a01000100010001000100010b01810001030183000100010201 +01000301810001060183000100011c018100011001810001120181000101018300010001 +02018100018401000100010001 +010082010001010181000102018200010082000100010086010001000100018201000101 +010100840100010001020181000184010001000182010001020183000100018401000100 +018201000103018100018101000300040185000100010001840100010001030181000102 +0102000401810001820100011b0187000100010001000106018500010001000107018900 +0100010001000100010501850001000100010301810001030181000101018b0001000100 +010001000100010201810001040181000101018100010a01810001010181000109018700 +0100010001000103018400010001008100010b0185000100010001070182000100850001 +00010001170184000100010081000105018b000100010001000100010001050183000100 +01810100810001010181000101018300010001840100010001010181000101018100010d +018300010001810100010088010001000100010001010181000104018100010101870001 +0001000100010e0189000100010001000100018401000100018401000100010401810001 +010183000100010601810001820100011901830001000182010001020185000100010001 +020181000105010100100181000105018100010001 +030103008401000100010101810001040183000100018201000182010001050185000100 +010001020181000103018100010601830001000184010001000181010081000101018100 +018401000100018201000101018100010201010082010001030103000301810001830100 +010083000100018101008300010001030181000107018300010001030185000100010001 +84010001000103018d000100010001000100010001000106010100820100010101810001 +04018100018c010001000100010001000100010501830001000181010081000101018100 +010101810001010181000101018200010083000100010101810001010186000100010001 +008100010601850001000100010801890001000100010001000103018900010001000100 +010001180185000100010001080187000100010001000109018700010001000100010201 +8100018a0100010001000100010001040181000101010100040185000100010001010181 +000102010100010101000201870001000100010001010183000100010801810001010187 +000100010001000105018100010901810001060185000100010001060181000184010001 +000108018100010101810001030181000104018200010081000106018100010601010003 +0102000b0101000301010002010100820100010301 +810100810001070181000182010001840100010001070181000184010001000182010001 +020183000100010201810001050183000100010301010001018300010001810100010001 +018100010101810001820100010101830001000182010001820100010701890001000100 +010001000181010081000106018100010101810001020101000101850001000100010601 +8700010001000100010d01850001000100010401830001000101018b0001000100010001 +000100010701010082010001040181000104018100010101850001000100010101820001 +008300010001010181000103018600010001000100010082010001030181000103010100 +820100010701850001000100010b01010084010001000115018400010001008300010001 +0701890001000100010001000107018100010d0101008101008100018201000102018300 +0100010301830001000105018100018101008500010001000105018b0001000100010001 +000100018201000105018300010001020181000104018700010001000100018201000184 +010001000108018100018101000100820100010301010010018100018401000100010201 +830001000105018100010101010082010001010101000501020081010001008201000108 +01810001840100010001820100010101 +0601810001820100010a0183000100018201000104018100010301830001000105018200 +010001000101830001000181010001000501810001070181000182010001070101008201 +000103018100018401000100010a01830001000105018100010601830001000102018200 +010001008201000107018700010001000100018401000100010101810001010181000101 +01810001010187000100010001000107018700010001000100010a018100010101810001 +010181000105018100010601810001010183000100010401810001010181000184010001 +0001010183000100010201890001000100010001000105018c0001000100010001000100 +010081000113018500010001000108018700010001000100010901850001000100010101 +810001820100010201840001000100810001040181000101018100010501830001000103 +018300010001840100010001060187000100010001000105018300010001810100810001 +8601000100010001010181000105018100010f0184000100010083000100010701010082 +010001010181000182010001010181000184010001000106010300010184000100010081 +00010401810001040181000104018100010a010100030181000183010001008100010401 +810001 +830001000182010001040101008201000182010001810100810001010183000100018301 +000100810001040181000185010001000100850001000100010c01840001000100020082 +010001020183000100018501000100010002008201000101018300010001030181000184 +010001000188010001000100010001060181000105018100010201840001000100010082 +010001010187000100010001000103010100010101000201810001010181000105018100 +010101810001010189000100010001000100010901870001000100010001040183000100 +010101810001010181000105010100020183000100010101860001000100010081000182 +010001040101008601000100010001050101008e01000100010001000100010001000103 +01810001840100010001820100010c018600010001000100020086010001000100010501 +8700010001000100010501830001000109018100010401820001008b0001000100010001 +00010001050181000101018100018201000101018100010c018700010001000100010601 +850001000100010301820001008100010201870001000100010001830100010085000100 +010001060182000100010081010081000103018100010f01030001010200820100018201 +000104018500010001000184010001000182010001040181000105018100010301810001 +07018100018201000182010001 +010005018200010081000101010100840100010001010181000107018300010001860100 +010001000108018300010001040182000100810001030181000103018100018501000100 +010081000101018100010101810001010181000182010001010184000100010081000105 +018100010101810001860100010001000104018300010001010183000100010101870001 +000100010001010181000182010001010102008c01000100010001000100010001020102 +000101040082010001020101000501010085010001000100810001020182000100010085 +010001000100830001000101010100010185000100010001020182000100810001820100 +0101018100010401010086010001000100010501820001008d0001000100010001000100 +010001040181000102018100018201000101018100010801810001040181000103010100 +8d0100010001000100010001000100010005010100880100010001000100010801850001 +000100010201810001010181000101018100010301850001000100010101840001000100 +81000101018b0001000100010001000100010a0185000100010001060187000100010001 +000102018300010001080182000100810001810100010084010001000107018300010001 +1301020004018300010001820100010d0181000184010001000102018100010501810001 +8101008300010001820100010a01 +810001810100820001000100030101000501830001000181010084000100010085000100 +010001840100010001820100018601000100010001820100018601000100010001020183 +0001000185010001000100840001000100820001008a0001000100010001000100020086 +010001000100018901000100010001000100020088010001000100010001030181000182 +01000107018300010001020102008101008100018201000101018a000100010001000100 +010001008201000101018300010001010189000100010001000100018101008600010001 +000100010004010200840100010001820100018201000101018300010001830100010001 +008b01000100010001000100010081000101018e00010001000100010001000100010083 +000100018101000100870100010001000100840001000100810001020181000101018d00 +010001000100010001000100018201000102018100010301010086010001000100010101 +830001000186010001000100010101840001000100010002018200010001008201000101 +018300010001820100018101008100010301810001010181000182010001010181000101 +018100018101008300010001010102008401000100018201000107018300010001010183 +000100018301000100010005018100018301000100010084010001000101018300010001 +010187000100010001000101010200020181000106018100018601000100010001040181 +00010f018100010101010082010001030181000101018100018801000100010001000182 +010001010181000184010001000184010001000182010001810100810001050183000100 +01840100010001820100010001 +010181000182010001020101008101008200010084000100010083000100010201810001 +820100018401000100010401010084010001000182010001040181000184010001000184 +010001000101018100010301830001000181010001008201000108018300010001010181 +000188010001000100010001020181000103018100018101000100820100010101850001 +00010001810100010081010001008201000101018b000100010001000100010001070187 +000100010001000101018100010101810001010192000100010001000100010001000100 +010001008600010001000100050081010001000101860001000100010001008501000100 +010086000100010001000100860100010001000184010001000181010084000100010001 +008101000500020102000101020089010001000100010001008200010001008501000100 +010083000100010101830001000108018300010001820100010101860001000100010083 +000100010101050081010001008101008400010001000200820100010401880001000100 +010001008100010101040081010082000100010082010001020183000100010101820001 +008300010001830100010084000100010083000100010301040082010001820100010101 +810001010101000601810001010182000100010081010001008201000101018100018401 +0001000182010001030185000100010001050181000106018100010b0187000100010001 +000106010100030181000104018300010001820100018201000105018100018201000181 +010081000104018100010001 +820100018201000102018100018201000104018100018201000184010001000102018300 +010001820100018401000100018401000100018501000100010083000100010201830001 +000185010001000100840001000100810001010183000100018201000101010100880100 +010001000100018101000100020184000100010001000101850001000100010101010002 +018100010101850001000100010601a10001000100010001000100010001000100010001 +000100010001000100010001000101019500010001000100010001000100010001000100 +010001010186000100010001000400020182000100010001010100810100860001000100 +010002008301000100010002018200010002008101000300830100010001008101000100 +0501010083010001000100010101008101008a0001000100010001000100010001018600 +01000100010001000501820001008a000100010001000100010085000100010001010181 +000101010900830100010083000100010101040001010600860100010001000182010001 +010181000103018300010001820100010101810001820100010201810001820100010201 +840001000100820001000100010104008401000100018101000100830100010001008101 +008100010101830001000104018300010001820100010301810001810100010084010001 +000186010001000100010301810001820100010601810001070183000100018101000100 +820100010501810001010102000301810001020183000100018201000108018100018401 +0001000105018100018201000102010000 +0b0181000102018100010801830001000184010001000184010001000182010001020181 +000107018500010001000104018100010101810001030181000186010001000100018201 +000101018100010101810001840100010001010181000108018300010001010181000111 +018700010001000100010301880001000100010001008100010501820001008100010401 +820001008400010001008300010001820100010301870001000100010001010184000100 +010081000101010400810100010081010002008701000100010001000100830100010087 +000100010001000101018100018101000100830100010001000201010081010002000101 +010081010082000100010082010001010181000101018100010101820001000100810100 +850001000100018601000100010001010181000106018200010081000101018900010001 +000100010001030101000101020088010001000100010001010102008101008300010001 +0101880001000100010001000100810100020081010082000100070081010002008c0100 +01000100010001000100018101000a008301000100020001018400010001008100018101 +000200890100010001000100010082000100030086010001000100010201010001018200 +010002000101810001810100830001000101018100018401000100010201820001000100 +810100810001020182000100010081010005008201000184010001000181010001000301 +810001840100010001820100010201810001820100018101008400010001008300010001 +82010001810100 +0e018100010201810001820100018201000104018100010a018100010201850001000100 +0109018100010201810001010101000a0183000100010201810001010181000101018100 +010101810001860100010001000104018100010101810001140187000100010001000108 +018900010001000100010001010183000100010101810001820100010401820001000100 +820100010801860001000100010001000501810001820100010201010082010001010181 +000184010001000103018100018101000100810100810001020181000101018200010081 +000182010001810100020089010001000100010001000200890100010001000100010084 +000100010001008301000100890001000100010001000189010001000100010001008100 +010101880001000100010001008200010003000101010001018200010086000100010001 +000100020183000100010101810001810100820001008300010001010181000102018100 +018201000101018100010201010081010001008201000101010100850100010001008100 +010a01850001000100018101008100010201850001000100010201810001070181000108 +018200010004000501050002018300010001040183000100010301810001020102000101 +010007018100018201000186010001000100018301000100830001000102018100010201 +020082010001840100010001020181000103018300010001 +0c0183000100018201000102018100010501810001020181000182010001020185000100 +010001070183000100018401000100010201830001000105018300010001840100010001 +040181000101018100010101810001010181000102018100010401010003018300010001 +0f0101008201000106018900010001000100010001050183000100010101810001010181 +000103018500010001000101018500010001000181010002008301000100830001000103 +018500010001000184010001000190010001000100010001000100010001000181010001 +008401000100018101000200810100020087010001000100010001008201000184010001 +0001830100010002000a0184000100010001000101810001830100020182010201010184 +020102000105018200010085000100010001040101008501000100010081000102018300 +010001010102008101008200010001008101000100860100010001000101010200810100 +060001010600810100820001000200030183000100010101840001000100840001000100 +020002018500010001000181010082000100010004018200010082000100810001840100 +010001030182000100010081010085000100010001030103008401000100010201810001 +010181000184010001000104018400010001008500010001000182010001010104008201 +000186010001000100018601000100010001820100018301000100010001018100018301 +000100830001000182010001820100018301000100850001000100010001 +140181000102018100018201000102018300010001840100010001050183000100018401 +000100010701830001000104010100840100010001070183000100010101850001000100 +010a01810001840100010001010183000100011601810001860100010001000105018700 +010001000100010501830001000101018100010301810001010185000100010001010181 +000105018600010001000100830001000109018200010082000100810001040183000100 +010101810001010183000100010501010001018100018401000100010101020088010001 +000100010001030101008801000100010001000104010200830200010089000100010201 +00020001860102010001000102018b000100010001000100010001020183000100018301 +000100020082010001820100018201000103018100010101830001000101018300010001 +020101000601810001820100018201000103018100010101830001000104018700010001 +000100010601870001000100010001020181000102018200010001000101810001820100 +010701010006010100840100010001820100010401810001010183000100018401000100 +010401820001008100010301810001010181000182010001860100010001000182010001 +820100018601000100010001860100010001000182010001820100018201000103018100 +01020183000100018301000100010004018100010001 +0c0181000182010001820100010201810001840100010001820100010401810001840100 +010001820100010601810001860100010001000105018300010001840100010001020181 +000184010001000103018100010601810001810100830001000102018300010001010181 +000104018100011001830001000105018700010001000100010301870001000100010001 +010185000100010001010181000103018100010501890001000100010001000105018200 +010085000100010001030181000103018100010101810001010184000100010081000101 +018100010201810001840100010001030101008601000100010001050181000101010100 +840100010001050181000101018500010001000102010200810102850201020100018701 +020102010001028902010001000100010001010181000101018700010001000100010801 +870001000100010001090185000100010001820100010201850001000100010101830001 +000101018200010002000101840001000100830001000182010001040102008101000100 +820100010401890001000100010001000182010001050183000100010301810001010181 +000182010001010183000100010201870001000100010001820100011801850001000100 +018201000101018100018401000100010101810001820100010101810001820100010401 +81000184010001000101018200010001000a0183000100010301 +120181000182010001040181000182010001840100010001070183000100018401000100 +010401810001840100010001820100010401810001860100010001000182010001020102 +000201870001000100010001010181000101018100010401850001000100018201000114 +018700010001000100010301870001000100010001050181000107018100010101810001 +010187000100010001000109018a00010001000100010001008100010201810001020183 +000100010101810001010181000106018100010101820001008200010089000100010001 +000100010401870001000100010001010183000100010401870001000100010001010186 +000100010001008200020182010201840102010201840102010201010182020102830201 +000101018200020188010001000100010001050101008801000100010001000105018100 +010301850001000100010501830001000105018300010001820100010101810001050181 +00018101008f000100010001000100010001000100010501810001810100810001820100 +010501830001000186010001000100010101820001008100018801000100010001000104 +018500010001000182010001010183000100018101008100010e01850001000100010701 +820001008100018201000184010001000102018300010001020183000100010201810001 +8101000100050181000184010001000108018100010001 +0b0102000101810001020181000184010001000107018100018401000100018201000104 +018100018601000100010001090181000185010001000100830001000182010001010181 +000182010001010183000100010101810001010181000102018700010001000100010801 +810001140189000100010001000100010501870001000100010001030181000184010001 +000104018100010701890001000100010001000101018300010001090181000193010001 +000100010001000100010001000100010081000101018500010001000107018300010001 +840100010001030181000103018100010101010088010002010200010001010181000103 +0182000100870002000102010201010187020102010201020104018d0201000102010002 +000200010001010185000100010001060181000101018900010001000100010001070101 +000201810001020186000100010001008300010001010187000100010001000184010001 +000106018700010001000100010101830001000101018100010601850001000100010801 +830001000101018100010a01850001000100010601810001010181000119018500010001 +000107018100010101830001000104018100010501810001060183000100018201000105 +018300010001820100010301 +100181000182010001070181000184010001000107018100018401000100010901830001 +000184010001000104018100010801810001030183000100010201810001010183000100 +010c01850001000100010a01810001070181000107018700010001000100010c01810001 +03018200010081000183010001008d000100010001000100010001000101018100010301 +8b0001000100010001000100010401830001000107018300010001880100010001000100 +018101008500010001000101018100018201000103018100010101880001000100010002 +008100018401020002010201870001000100010001020183020102010201820201028102 +01030101028d010201020100010201000201020101018602010200010001010181000186 +0100010001000101018100010b0183000100010701830001000101018300010001040181 +000105018100018101008100018101008700010001000100010501870001000100010001 +010187000100010001000104018500010001000106018b00010001000100010001000108 +018500010001000102018100011601810001090185000100010001010181000102018500 +010001000102018100018401000100018301000100010003018100010201810001820100 +010701810001810100 +0e0181000102018100018201000184010001000102018100010201810001840100010001 +07018300010001840100010001040181000102018300010001050183000100018a010001 +000100010001000186010001000100010201810001860100010001000184010001000101 +018100010101830001000112018700010001000100010a01930001000100010001000100 +0100010001000100018a0100010001000100010001030181000101018700010001000100 +010101850001000100010401830001000103018700010001000100010301010006018100 +010301810001010181000102018e0001000100010001000200010201028b020102010001 +000200010001090101008501000100010201028701020102010201028102010101860201 +02010002018801000100020002000101018c020100020100010001000100010301850001 +000100010101810001010181000187010001000100010081000101018100010101810001 +8e0100010001000100010001000100010201830001000108018700010001000100010501 +870001000100010001010187000100010001000101018100018701000100010001000100 +0701850001000100010801810001020181000103018100010b0181000102018500010001 +0001820100010a0181000101018100010301850001000100018201000182010001030181 +000102018100010501830001000182010001820100010101 +0c018100018401000100010a018100010201810001070183000100018201000104018100 +010201830001000102018100010101810001820100010501830001000108018100010101 +83000100010201810001050185000100010001010181000102018100010f018100010801 +890001000100010001000103019100010001000100010001000100010001000104018100 +018301000100810001010181000101018700010001000100010501830001000184010001 +000184010001000102018900010001000100010001820100010101810001810100830001 +000101018300010001870100010001000102830201020187010201000100010082000102 +81020104018c00010001000100010001000201010183020102010301830201020102018e +020100010001000201020102010201020184000100010083000102010201810201880100 +010001000100010101820001008100010101810001030183000100018201000101018100 +018201000101018300010001030181000101018100010301890001000100010001000103 +018100010101870001000100010001050187000100010001000104018300010001010181 +000101018700010001000100018201000103018300010001860100010001000118018100 +010201810001040183000100018201000182010001020181000102018300010001820100 +01040181000182010001010183000100010201810001820100010a01810001 +140181000184010001000182010001020183000100018401000100018201000101018100 +010301830001000102018100010101830001000184010001000102018100010201810001 +050183000100010101810001070183000100018201000101018100010801830001000182 +010001110187000100010001000105018700010001000100010101830001000103018300 +010001020181000184010001000105010100840100010001070189000100010001000100 +010201810001040101008201000103018400010001008700010001000100010101870001 +000100010001010101028a010001000200020002000102018b0201020100010002000100 +010101810001060185000100010001810102850201020102010101010285010201000102 +9002010200010002000200010001000102018c0102010001000100010002000103018600 +010001000100820001008100018401000100010201840001000100830001000101018100 +010301830001000101018100010101010003010100050183000100010101810001030181 +000101018700010001000100010701010004018100010201010009018700010001000100 +010601830001000111018100018201000104018300010001060181000101018100018601 +000100010001050183000100010b01810001820100018401000100018401000100018201 +000182010001 +0d0181000102018100010701810001820100010401810001050181000101018100010201 +830001000184010001000102018300010001840100010001070181000102018500010001 +00010201870001000100010001050187000100010001000108018100010d018100018201 +000107018500010001000101018700010001000100010301830001000103018300010001 +030187000100010001000105010100860100010001000107018100010101020086010001 +000100010201830001000103018100018401000100010101810001040101028301020100 +850001020102010201870200010001000200820001028302000201020181000101018500 +010001000187010001000200010201028201020101010102850102010201028402000200 +018301020002880201020102010201008c00010001000100020102010201880100010001 +020100010101810001020187000100010001000104018100018801000100010001000103 +018500010001000104018100010301870001000100010001030183000100010201810001 +03018100010101850001000100010401010003018f000100010001000100010001000100 +010601850001000100018201000111018100010401830001000186010001000100018201 +000103018100010801810001840100010001020102000301830001000182010001070181 +000182010001820100010201 +100183000100018401000100018401000100010501810001020183000100018601000100 +0100018201000104018100018401000100010b0182000100840001000100810001030181 +00018201000101018100010301850001000100010c01830001000101018100010c018100 +0101018f0001000100010001000100010001000105018700010001000100018801000100 +01000100010201810001050187000100010001000108018b000100010001000100010001 +820100010601820001008100010301810001010181000102018e00010001000200020001 +00010201028e020100010002000200010201020102810201010101020101830001000101 +018600010001000100810001010101020701830201020104018700020001000200028802 +010001000100010086000102010201028c02010200020001000100010201840102010001 +010185000100010001060183000100018201000105018500010001000182010001010181 +000181010002008601000100010001050189000100010001000100010101830001000102 +018100010801810001020181000102018100010301890001000100010001000182010001 +01018300010001040181000111018300010001090183000100018101008100018a010001 +00010001000100018201000104018100010e018100018401000100018201000105018100 +010001 +01018100010a018300010001820100010901810001840100010001860100010001000105 +018300010001840100010001070185000100010001840100010001020181000102018100 +018401000100010301810001010185000100010001030181000182010001010181000108 +0101000f0189000100010001000100010501870001000100010001050181000107018b00 +010001000100010001000105018600010001000100850001000100010301810001020101 +008c01000100010001000100010001860100010001000102018500010002000102018602 +01020102000101010100820102018c010200020102000100010201008b00010002000200 +0100010001080186020100010001020102840102010201860102010201020102018d0201 +020001000100010001020102860201000100010283020002010101820200010101820001 +008300010001810100810001030185000100010001030181000101018500010001000182 +010001010181000101018100010d01890001000100010001000105018700010001000100 +010201830001000105018300010001010185000100010001820100010701840001000100 +810001030185000100010001010181000107018100010101810001040181000186010001 +000100010601810001010181000102018100010401830001000103010100030181000184 +01000100010a01810001820100018301000100 +010181000103018100010c01830001000184010001000184010001000105018500010001 +000182010001090185000100010001820100010101810001820100010101810001820100 +018201000102018100010101830001000101018100010201810001840100010001090102 +0084010001000101018100010d0181000105018100018301000100830001000107018100 +018c01000100010001000100010001820100010501870001000100010001030181000106 +018700010001000100018101000200820100010101810001060181000101018200020083 +000201028e02010001000100010002000100010281020087000100020102000288020100 +010002000200810001830102000105018400010001008400010201028102018101020102 +830102010202028901020102010002000201010101028701000102010002008600010001 +000201020183000200010101810002010282010001020101008601000100010001040101 +000201810001010182000100810001010181000101018100010101810001810100890001 +000100010001000105018100010101870001000100010001050185000100010001040181 +000103018300010001010185000100010001860100010001000106018700010001000100 +010a01810001040181000186010001000100010701810001050181000101018100010201 +830001000182010001010181000102010200010181000105018300010001820100010b01 + +02018100010c018300010001840100010001050183000100018401000100010a01850001 +000100018201000101018100018201000101018100010401810001820100010201810001 +820100010101810001040181000101018100010101810001010185000100010001060181 +0001030102001101870001000100010001020181000102018a0001000100010001000100 +010008018100018601000100010001030181000101018300010001010186000100010001 +008300010001020181000102018100010101850001000100010101010001019702000201 +02000102000100010001020100020002000102018e010201020100010002000200010201 +850102000201028102010201850001000100010401890001000100020002010282020102 +810201010181020186010201020002018601000200010001010182000201010182020102 +8d0201020002000200010001000100830001000101018100018101008100010101810001 +010183000100010301810001010181000104018d00010001000100010001000100010101 +850001000100010101850001000100010b018700010001000100010a0183000100010301 +810001030181000102018900010001000100010001820100010701810001030181000110 +018100018c01000100010001000100010001020185000100010001840100010001020183 +000100010c0183000100010501830001000182010001820100010101 +060183000100010e018300010001820100010c0185000100010001050185000100010001 +040181000186010001000100010301010008018100018801000100010001000101018100 +010c0183000100018101008700010001000100010a018100010701810001010183000100 +0103018100010b0187000100010001000104018100010101830001000101018100010101 +870001000100010001060183000100018101008100010101830001000101018600010001 +000100850002010200010101820001028902010001000201020102860201000100010087 +0001020102010002850201020102010101010083020002018c0100010001000100010001 +000183010201028302010201830102000101018502000200020198010201020002000200 +010001020102000100010201000200018301020002810201040188000100010002010001 +820100010101810001050183000100010101810001860100010001000103018100010f01 +870001000100010001010189000100010001000100010301810001010183000100010201 +810001840100010001880100010001000100010301810001040181000101018700010001 +000100018201000103018100010501810001030181000101018300010001820100010c01 +810001040181000104018100010201810001010181000184010001000184010001000103 +01810001020183000100010501810001 +020181000104018300010001020181000103018100010801830001000186010001000100 +010201810001020183000100010501850001000100010b01810001820100018601000100 +010001040181000103018100010201810001870100010001000100010001018300010001 +050181000102018300010001050181000101018300010001030187000100010001000101 +018b00010001000100010001000182010001020183000100010101810001820100010101 +870001000100010001070184000100010081000104018100010601810001050101008601 +000100020001930100020001000100010002000102010201020102820201028302000201 +8901000100010002000200810001830102000105018400010001008a0001000100020002 +010001810102830201020102018f02010200010002000102010201000200860001000100 +020101018202000285020100010001010183000201028102018201000101018100010101 +850001000100018201000102018200010083000100010301830001000101018600010001 +000100810001860100010001000107018700010001000100010301830001000101018100 +0101018100010201810001820100010a0189000100010001000100010201810001030183 +000100011101810001020185000100010001020185000100010001860100010001000101 +018300010001020183000100010201810001820100010401810001070184000100010081 +000105018100010201810001 +810001820100010101810001020181000101018100010101010006018300010001050181 +000102018300010001040181000186010001000100010701850001000100018401000100 +0107018100018601000100010001020101000301810001040181000106018b0001000100 +010001000100010301040084010001000102018700010001000100010501830001000109 +018100010201010008018200010081000105018900010001000100010001050182000100 +810001010187000100010001000101018500010001000102018300020102840201000102 +810201010183020102018201020193010001000201000100020002000200010001020183 +0102010281020188010001000100010001060101028201020101018a0002000102010200 +020002820200018101028c0201020100010001000200020101018d020100020002000100 +010001020081000189010001000201020100010201810001030181000103018100010201 +810001010189000100020001000100010301810001820100018201000103018200010081 +000181010081000106018700010001000100010301810001050181000101018900010001 +000100010001840100010001050181000186010001000100010701810001090181000102 +018100010501810001070181000103018100010301810001040181000182010001030102 +00020183000100018401000100010501810001850100010001008100010201 +020181000102018100010701870001000100010001820100010401810001820100010401 +830001000184010001000109018300010001820100010601830001000184010001000182 +010001060181000182010001030181000101018200010081000102018200010003008201 +000103018100018201000182010001010181000104018100010501890001000100010001 +000103018900010001000100010001020181000103018100010801010001010100080187 +000100010001000102018100018201000103018100018201000101018100010101830001 +000184010001000282020100890002000100010002010288020102010002000200810001 +850102010201028602010002000200840002000201060181000101010100880100020001 +00020102010283000100018a010200010001020002000101018202010281020101018800 +010001000200020185010201020102820200018a01000100020102000200010101810001 +010183000100010301840001000100810001010181000104010102870100010001000100 +810001030187000100010001000105018700010001000100010601870001000100010001 +05018100010101830001000101018100010401870001000100010001060183000100010f +018700010001000100018601000100010001080183000100010201830001000101018100 +0182010001040181000104018100010a0183000100018201000107018100010001 +820100010301010001018300010001820100010501810001840100010001030185000100 +010001820100010701850001000100018401000100010401830001000184010001000104 +018300010001030185000100010001040183000100010101830001000103018300010001 +070181000182010001010181000184010001000101018500010001000102018300010001 +070185000100010001050185000100010001040181000101010100020183000100010501 +010086010001000100010301830001020106018b00010001000100010001000101018100 +010101010088020102000100010201020183020100018701020002000102018301020002 +890200010001000100010281020101010102890102000100010001000101018100010301 +840200020001830100020086000200020002018101008900020001020100010001010183 +0002010202028b0102010200020001000100010601810001070181000102018100010901 +810001010184000100020081000102018402000102010101830001000103018100010101 +870001000100010001050189000100010001000100010501810001820100010101810001 +010102000201830001000102018100010301850001000100018201000107018100018201 +000104018100018201000182010001020183000100010501810001040181000104018100 +010401830001000109018300010001820100018201000107018300010001820100010301 + +03018100018201000101010200050181000104018100018401000100010a018500010001 +000107018100018601000100010001060181000187010001000100010081000184010001 +00018a010001000100010001000181010083000100010101810001050102000301870001 +000100010001020181000101018500010001000181010081000104018100018301000100 +810001040103008101008100018201000102018500010001000103018100010201870001 +000100010001040193000100010001000102010001000100010001000184010001000182 +010001020181000101018100018201020083000201028202010086000200010001028102 +018801000102010001000183010001028302010201830102010283020002008400020002 +010601840001000100850001000201020202810001030181020194010001020102000100 +0102010201000201000100018401020002018501020102010201028c0001000100020002 +010201020081000182010001010101000201010083010001008300010001010182000100 +890002010201020001000102010100820200010101830001000101018100010301810001 +010189000100010001000100010501810001040181000104018100010201830001000103 +018100010101810001820100010101810001040181000105018100010101810001030101 +000101810001010181000104018100010501850001000100018601000100010001860100 +010001000184010001000104018300010001080183000100018201000107018100018101 +00 +810100810001820100010601810001080181000105018300010001860100010001000105 +018300010001840100010001040183000100018801000100010001000186010001000100 +010101830001000102018100010a01810001010181000104018500010001000182010001 +07018200010083000100010b018300010001030187000100010001000101018100010101 +830001000182010001820100010301820001008100010101810001050194000100010001 +000102010200010001000100010001030181000103018100010101010084010001000101 +018c000201000200020001000102018d010201000200020102000102010281020102018d +020002000100010002010201020189010200010001000100010401830001020182010201 +01018202010086000200020001008c000200020001020100020002008400010001028202 +000101018700010001000200018201020101018100020102830001000181010084000100 +010081000107018300010001010181000103018502000100020102018f00010200010200 +020002000100010001010183000100010101810001030181000103018700010001000100 +0105018a0001000100010001000100810001010187000100010001000104018100010101 +830001000104018100010101830001000104010100040187000100010001000186010001 +000100010301810001010181000182010001010181000105018100010301010082010001 +840100010001860100010001000105018100018401000100010401 +810001050185000100010001020181000108018100018401000100010701830001000182 +010001040183000100018401000100010101810001840100010001060181000102018200 +010081000182010001010181000188010001000100010001010181000101010100010181 +000105018900010001000100010001020101000201860001000100010081000105018300 +010001010181000101018300010001010181000105018100010101870001000100010001 +040185000100010001020183020001008600010002010201020181000101018500010001 +000184010001000182010001010181000184010001000188010200010201020002820201 +00810001850100020100018a010200010001000200020083000201028a02010001000200 +020001008100010501810001050187020002000100010282020100860002000100010081 +00010101850201020102018401020002018d010200020002000200010001020186010001 +0001000183010200010c0181000102018300010001020181000101010100840100020102 +8702010001000102018a0100010001020001000102900201020001000100010001000100 +010001010183000100010101810001030181000101018100010301810001010183000100 +018801000100010001000101018300010001860100010001000101018100010a01810001 +040183000100018201000108018100010101810001030181000104018100010101810001 +820100010201010001018100010501830001000184010001000184010001000182010001 +05018300010001 +020183000100018201000104018100018401000100010301810001050185000100010001 +820100010701830001000104018500010001000106018100018401000100010201810001 +020181000102018100018401000100010301830001000101018100010501020084010001 +000103018300010001810100020084010001000108018900010001000100010001010181 +000105018900010001000100010001830100010081000103018100010201890001000200 +020002000183010201028802000200020002000283020100010101830001000103018500 +010001000182010001010186000100010002008100018501020001000102010102870102 +000102010201010182000200890001000100010201020101018502010200020102018100 +010101840001000100850002000200028d02010200010201020001000100028b02000100 +010001000200020101010102830102000283020102010101820002008500010001000181 +010285020100010001020181000101018100010701870001000100010001940100010001 +0001000100010002000201000102000101018800020002000100020106018b0001000100 +0100010001000101018300010001020181000182010001030183000100010a0187000100 +010001000104018100010401010082010001820100010101820001008300010001040184 +000100010001000601830001000102018300010001020183000100018401000100010101 +010002018100018401000100018201000105018300010001840100010001840100010001 +82010001 +810001050181000102018300010001030183000100010301830001000105018300010001 +880100010001000100018401000100018201000103018100018401000100018401000100 +010201830001000101018100018201000182010001040185000100010001030181000102 +018100018201000103018100010101850001000100010201830001000104018500010001 +00010e018900010001000100010001070181000102010100820100018901020100010201 +0201028a020102000200010002000101018a02010200020001000100010b018300010001 +880100010001000201028a02000200010201020001008300020102840200020100850001 +000201028502000201020197010201000200020001000102000100010001000100010001 +010188020102000102010200940002000100010001020001000100010002000200018a01 +000200020002010200010101010284000201020103018700020001000100018201000101 +01810001010181000102010100020181000102018e000100010201020100010002000201 +820100028b02010001000200020102000284020100010084000201000109018900010001 +000100010001810100010001018500010001000101018700010001000100018201000107 +018300010001820100010701810001020181000101010100020185000100010001840100 +010001010181000101018100010301810001040181000184010001000102018100018201 +000101018300010001020181000102018100018201000107018300010001820100010201 + +030183000100010901810001820100010201810001030185000100010001840100010001 +820100010801810001840100010001840100010001080181000104018300010001820100 +010301830001000106018500010001000102018100010101890001000100010001000182 +01000101018100018101000100840100010001010181000108018b000100010001000100 +010001050186000100010001000200820100018301020002820200019501020100010001 +000100020102010201020002000100810001810102810201030183000100010301830001 +00010101830001000104018a000100010201020001020181010082000100830002010284 +020100010281020102018702000200010001028502010200010085000200010001050181 +0001030101028401000102008f0002000200010001000201000100010299020002010001 +000200010001000100010001000201000100020182010001010185020102010201880100 +010001000100010b01010004018500010001020187010201020002000102018602010201 +020001010101008c02010201000201000100010001820100010e01850001000100010201 +810001010181000106018900010001000100010001090181000184010001000101018100 +018601000100010001020181000101018100018201000105018100010101850001000100 +010701810001040181000104018100010301810001040181000184010001000108018100 +01 +820100010501810001010181000103018100010101810001030181000184010001000182 +010001060181000186010001000100018201000108018100018601000100010001860100 +010001000108018100010801810001010181000101018300010001020183000100010601 +870001000100010001040181000182010001010181000182010001880100010001000100 +0105018b0001000100010001000100010101860001020102000195010200020102010002 +010201000102010002000100018101028c02010201020002000200010001070181000106 +010200820100010301010082020001820100010101860200010201020102018400020002 +008b00020002000100010002000281020182010201010181000103018100010101010086 +020001000100018201020184010201020101018202000101018700020002010201028402 +010200028602010201020102810200870001000100020001810102880201000100010001 +008100010101810001010182000100810001820100010101810001020181000104018102 +00830001000185010001020002850200020002008f000200020102010200010201000100 +010101810001010185000100010001810100810001010183000100010501010084010001 +000101018500010001000108018500010001000102018300010001030185000100010001 +820100010401810001010183000100018201000101018100018201000104018100010201 +850001000100010201810001040181000186010001000100010301830001000184010001 +00010201810001820100018401000100010001 +010183000100018201000101010100840100010001030181000182010001010181000105 +018100018601000100010001820100010301810001020181000186010001000100018401 +000100010801810001860100010001000101018300010001860100010001000101018100 +010101810001010183000100010301870001000100010001070181000101018100010101 +830001000101018100010a0101008601000100010001010181000104018a000200010002 +010200010086000100010002009700010201020100020002000200010002000100010200 +020104018100010301810001010183000100010601830001000182010002820201008100 +0101018d0201000200020102000100020002810201010185020001020102850201020001 +00830001000101018c000100010001000100010200028502010201020093000200010001 +000200020100010002000100010083000200010101880001020102010002010101010282 +010201890100010001020100020101018300010001080181000183010001008300010001 +0101860001000200020101018a0002010001000201020102910201020102010200010001 +000100010002018201000101018700010001000100010401810001020186000100010001 +0081000101018700010001000100010301850001000100010c0185000100010001070185 +000100010001820100010301810001030181000101018300010001020183000100010401 +810001020183000100018401000100010501830001000182010001040181000182010001 +84010001000102010000 +060181000183010001008100010101830001000186010001000100010301810001820100 +010601810001020181000182010001010181000184010001000109018700010001000100 +018201000103018100010601850001000100010101830001000101018100010301830001 +000107018300010001070189000100010001000100018101008100018501000100010081 +000182010001820100010401810001870100010001000100930001000100020002000201 +000102010002000200810001010182020102840201020001810102810201010186020001 +00010001030181000101018a000100010001000100010081000102018102008500020001 +000101018200020083000100028802010201020100020182010201880102010001000100 +028202010085000100010001030181000102018100018701020001000102008e00010001 +02010200010001020102018401020102008f000200020001000100010002010001028402 +01020001030101028400020100018101008a000100010001000100010081000182010001 +02018300010001010182000100880001000100020002018d010001000100010001000200 +020182010001010101028d01020102000100010001000100010301850002000102010501 +8300010001810100810001040181000101018b0001000100010001000100018401000100 +010101010001018100010401010081010081000182010001060187000100010001000103 +018100010401830001000101018300010001820100018201000101018100010501830001 +00010701810001840100010001820100010401810001810100 +010181000184010001000182010001840100010001010181000107010100030183000100 +018401000100010201830001000184010001000107018700010001000100018201000104 +018100010101850001000100018101008100018a01000100010001000100010201830001 +000101010100040187000100010001000103010100840100010001060187000100010001 +0001040181000103018f0001020100010001000100010001000101018800010201020100 +020182010001860100010201020184010201000101018e00010002010200020002000100 +010086000100010001008100010401810001010181000101010100860100020002000184 +0100010001020182020102820200018a01000201000201020001008c0002000100020002 +00010001028302010001030181000101018a000100010201020001000182010201910100 +010002000201000100010002000201028102018201000281020101018400020002008e00 +0100020002010200010001000102830201020181010081000103018a0001000100010001 +000100810001030183000100018901000100010002010200010083010001028502010201 +020183010001028902000200020102000201080187000100010001020186010200020100 +010201830001000101018300010001020181000103018100010601830001000101018100 +010301850001000100018101008100010101890001000100010001000107018100010201 +830001000104018300010001020185000100010001020181000182010001020183000100 +018401000100018201000107018300010001820100010101 +810001020183000100010301810001020183000100018201000101010100030181000102 +01850001000100018201000109018300010001840100010001040181000101018100018a +010001000100010001000103018100010b01810001010183000100010201830001000105 +018100018401000100010301820001008500010001000105018100018401000100010101 +8b0002000200020002000200010701020082010200810001010191000201020102010001 +000100010002010001010101028900020002000100010201020181000107018a00010001 +00010001000100850001000100028802010001020001000101010102820001028102008a +000100020001000200010282020102850201020002018301020001010183000100010101 +8400010001008400020001028102018201020081000101018102018b0100010201000200 +020102008a00010002010200010201028202000101018102018701000100020001028202 +000284020001000109018100010401810001010183000100010201810001820102010201 +820001009000020100020002000200010001000200018501020102000285020100010001 +010181000108018b02010201000100020001000189010001000100010001008100010101 +830001000101018300010001010181000104018100018201000106010100820100010101 +810001040181000182010001020181000101018300010001020185000100010001020181 +00010201830001000182010001020183000100010a018300010001840100010001820100 +0105010000 +020183000100010201810001020101008201000102018100010701810001820100010601 +810001860100010001000182010001040181000102018700010001000100018401000100 +010801820001008100018201000188010001000100010001010181000103018300010001 +020183000100010401870001000100010001820100010401890001000100010001000101 +018a00020002000100020102010101810201880100010001000100010101880001020102 +000200018101008900010001020102010201840102000200830001000187010201020102 +000281020104018100018101008100010101010001018100010701870200020001020001 +010186000100020002000100880100020100020102018301020002940201000200020102 +000100020100010001000100010601810201830102000181010291020100010002000201 +0002000200010002008f0002000200010201000200020100010284020102000281020101 +010102810102830200010001008801000100010001000183010001008300010001840100 +010001010101008801000100020001000282020102870201020002000201020101028100 +018901020001000100010001030181000101018a00010001000100020102018101008c00 +020102010201000200010001050183000100018401000100010301810001010181000103 +018100010101830001000184010001000102018100010201830001000104018100010201 +810001030183000100010401810001850100010001008300010001020183000100018401 +00010001840100010001820100010c01810001820100010101 +810001020181000182010001840100010001050183000100018201000182010001040183 +000100018401000100010701810001020187000100010001000184010001000106018300 +010001860100010001000104018300010001030185000100010001010185000100010001 +010181000101018300010001090184000100010001008801000100010001000186010001 +0200020102018b0001000100020002000200010101810001050181000286020001000201 +008d00020102010200010001000100010101010288010001020102010001880102000200 +010001008100018201000104018100010101860001000100010082000201930100010001 +02000102010002010200010201000101018b020002000200010200010201860102000200 +010081000107018400010001008500010001000101018102008300010201860102010001 +000183010200028402010201028a02010201000100020002008500020001000289020100 +010001000200028502010201000102018700010001000100010401830001000101010100 +010185020102010201870100010001020100010001028c01000100020002010201020102 +830201000101018200010083000100010301840201020102990201020102010200010001 +000102010201020001000100010001060187000100010001000102018100018601000100 +0100010301810001050183000100018601000100010001820100018a0100010001000100 +010001010181000182010001060101000201830001000102018100010301830001000186 +01000100010001840100010001820100010501810001 +840100010001050181000185010001000100810001040181000102018100018201000107 +018500010001000186010001000100018401000100010601830001000184010001000106 +018500010001000182010001820100018401000100010401010084010001000101018100 +010901870001000100010001030101000101810001030101028100010101850201000100 +018201020183010201028102010601850001000100018201020101018402010002010301 +01028801020102010001020183010200018a010001000200020001000182010201090101 +000101830001000104018400020002018101008500020001000188010200010001000100 +82000102850200020002008700020001000200028e020102010200010001000100010001 +06018700010002000201008f000100010001000201000200020102008800020002000100 +010281020103018902010002000200010001010104028300020001070181000102010200 +860100010001000102018f000100020001000102010002000201028a0201000100020002 +000200850002000200028302010201030181000101018800010001000100020101010100 +880200010201000102018501000100010285020102010201880100010001000100010e01 +86000100010001008100010f018100010401810001020181000101018100010401830001 +000181010081000182010001050181000102018300010001070181000184010001000102 +018100018401000100010001 +030183000100018201000109018100018201000106018100018201000184010001000184 +010001000184010001000106018300010001840100010001060183000100018401000100 +010601890001000100010001000188010001000100010001010183000100010401850001 +000100010501850001000100018201000102019500010201000100010201020102010001 +02010001020087000100010001000103018a000100010002010001000101018200020001 +009102000200010001020100010002000200020082000102860201020102000105010100 +0401020002018d0001000100010201020001000102810201010183000201028302010001 +880100010002010201028102018d01020100020001000100010002010701840001000100 +890001020100020001020081000201028e01020100020002000100010001020104018400 +020002008500020102010281020101018302010002860200010002000182010001860100 +010001000182010001050184000100010093000100010002000200010001000200020001 +0201020184020102000101018e0200010001000100010001000100010101810001030187 +000201020102010282020001810100810002850200020102018a01020001000200020002 +010601810001840100010001860100010001000106010100820100010101010002018300 +010001030185000100010001010181000102018900010001000100010001840100010001 +050185000100010001070181000184010001000182010001020181000186010001000100 +01820100010001 +820100010501810001840100010001810100830001000101018100018201000182010001 +020185000100010001820100010801810001840100010001060181000186010001000100 +010601810001860100010001000101018100010101830001000184010001000101018300 +010001010185000100010001040102008401000100010101810001020181000101018100 +018201000101019302010201000102000201020002010201020102008700010001000100 +01010181000188010201000102010201010101028d010201020002000100010001000187 +01020102010201028d020102000201020001000100010002008201000101018800010001 +000100010002008d02000102000200010001000100028f02010201000201000100020002 +000100820001028302010201920102010200010001000100010001000100010084000100 +010282020102880201020100020001008800020102010200010088000100020001000201 +010192020102010002000100010001000100010001020102830102000101018400010001 +008100010101810001010183000100010101810001020185000200010001840102000201 +8401000102008200010087000102010002010201028d0001020102010001000100010001 +01018700010002010200018101028402010001028e020102010200010001000100010201 +8c010201020100010001000100010d018300010001860100010001000182010001040181 +000101018100010701870001000100010001040183000100018201000104018100018201 +00010401830001000184010001000107018100010201810001820100010501 +01018300010001820100010701020004018100010e018300010001860100010001000104 +0181000186010001000100010601810001880100010001000100018a0100010001000100 +010001010181000106018100010301810001010181000101018100010401830001000181 +0100810001020181000104018100018301020001850100010200018c0102010001000100 +010002000184010201000107018100018901000100010001000100810001830100020084 +000102010294020102010001000200020100010002000200020001010181000101018100 +010101830001000102018500010001000101018902000200010002010201840102000102 +830200020082000102820201028502010201020189010002000200010001008900010001 +000100010001010181000102018f00010002000100010002000201020002940200020001 +0201020002000100010001000200020083000200028702010201020102018b0102010001 +000200020100010101810001030181000181010081000103018100018201000101018100 +010101870201000200020002880201020100020002008b00020002000200010201000182 +010201820100010301810001010189000100010201020100018701000100010001008300 +010201010101028a00020001000201000100010301850001000100010101820001008100 +018701000100010001008100018101000100820100010401830001000188010001000100 +010001020187000100010001000102018100018201000181010081000182010001010181 +000182010001020181000104018100018401000100018201000107018100018301000100 + +060181000184010001000182010001050181000101018100018201000182010001010181 +000182010001060181000186010001000100010901830001000182010001010185000100 +01000102018100010c018b000100010001000100010001010181000101018100018c0100 +010001000100010001020102018100010101810001010101009901000201000100010001 +0201000102010201020100010201020103018200010002008401000100018c0100010001 +000102010200020192010200020001000100010001000200020002018601020002010201 +820100010101010084010001000102010100840100010001010101008502000200010087 +0001000100020102820201028402010201028702000100010001008b0001000100020001 +000102018401020100010101830001000101010100830102010285020102000102840200 +0100028902000200020102000100850001020102018201020183010002008c0002000200 +0100010002000100830002010283020102018201000183010001008d0001000100010001 +000100010001820100010101940001020100010001000201020001020001020102019101 +000102010200010001000200020002000101018300010001010181000181010285020100 +010001830102010292020001000201000100020002010200020102010501870001000100 +010001020185020102010201020181000102018100010601810001010181000107018100 +010101810001040181000101010100820100018401000100010401830001000184010001 +00010201830001000103018100010401810001840100010001820100010301 +010181000182010001050183000100018201000182010001010181000182010001010181 +000105018300010001840100010001060181000184010001000188010001000100010001 +860100010001000108018300010001840100010001010185000100010001060183000100 +010101810001900100020102010201020002000100010001010181000103018100010101 +9f0001020100010201000100010201020100010201000100010001000100010001040101 +008202010083000100010101850001020001008a00020002000102010201028502000201 +020087000201020002000101018100010201810001020183000100018801000100010001 +0201020182000102830201020182010201810102820200018e0100010002000200010002 +00020102810201020182000102810200810001010181000105018100018a010002000100 +0200010001870102010002010201850102010201028a0201000100010002000201830102 +01028b020100010002000200010002860200020001000104018100010901810001860100 +0100010001010182000100810001010181000283020001008a0001000100020102010201 +940102010002010201020001000100010001000100010101850001000102018201020087 +000100010002000292020002000200020001020100010001000100010601820001008400 +010200018501000201000101018100018301000100010003018100010401810001840100 +010001010181000101018300010001020181000106010300820100010201810001040181 +0001840100010001820100010201830001000103018100010401810001810100 +810001840100010001840100010001020181000182010001840100010001820100010201 +810001040181000106018100018401000100018201000101018300010001820100010d01 +890001000100010001000182010001070183000100018601000100010001010183000100 +010101810001950100020002000102010201020100010001000100010001008201000185 +0102000200018101008d0001020100010002000100010001010181020103018100010501 +820002018c0100020102000102010201020186010201020002018401000100018e010200 +020102010002000200010001010181000103018100010101020003018200010083000200 +028202010087000100010001000284020100010087000100020102010281020189010001 +00020002000102820200028102018a010001000100010001000182010001850102010201 +020102840002000200880001000100020001008600010001000102850201020102008500 +02000200010101010204010102850001000100018c010001000100010001000100018101 +00810001010181000102018600010001000200a100010002010201000201000100020001 +000200010001000201020001020102010001050186000100010002008b00010201000201 +020102010288020100010201020001010187000200010001000101018500010001000104 +01850001020002018a010002010002010001000103010100040181000106018100010201 +810001030181000186010001000100010101010005018100010201830001000103018100 +01040183000100018401000100010301830001000103010000 +810001050181000184010001000105018100010401810001820100010201810001010181 +000184010001000102018300010001840100010001080181000186010001000100018601 +000100010001080183000100018101008100010801830001000101018700010001000100 +018201020089000100010001000100010501010001018300010001850102010200018101 +00850002000200018d010201020102000200020001000101018600010001000100880001 +000102010002008d00010201020102000100010200028b02010001000100020002000283 +020102018701000200010001008100018601000100010001960100010001000100010201 +020001020002000100010002010201018c00020100010002000100010001810102820201 +02860201000200020081000108018f000100010002000200010002000201028802010201 +02000100018401020102010101880002000200010001028a020102010002000200020083 +000100010101810001030183000100010201810001050182000100850001000100018401 +02010201030181000289020100010002010201028f020102010002000200010002000100 +010101010082010001820100010101010202010102890100010002000100020084000200 +0201010101028501020102000101018b0001000100010001000100018701020100020100 +028802010201000102010288020002000100010001040181000102018100010101830001 +000186010001000100010401810001040181000182010001010181000105018100010201 +8300010001020181000102018100018401000100018401000100010201 +840100010001820100010501830001000182010001020102008101008100010901850001 +000100018401000100010601810001850100010001008700010001000100010901870001 +000100010001050181000188010001000100010001030181000106018702010001020102 +01840102010201010185000100010001820100010101a100020001000200020002010201 +020102000200020002010200020001000100010001010101008901020100010001000102 +890200020102000200010085000200020002830201020186010200020001008300020001 +050181000101018100010301810001040182020100810002840201000102820200018301 +02000286020001020001028102018501000100010087000100020002000183010201028b +020001000100010001000100810001010185000200020002810201840102000200830002 +000284020100010089000100010002000200028f02010200020001000100020002010201 +890102010200010201000103018100010701010082010001820100010301820002008a00 +010001000200010200028902000100010001000102830201020101010102880100020001 +000100010401860001000100010284020002010295020102010201000200020001000200 +0100010001020182010001030181000105018d0201020102010201000100020100820002 +010301820200010101810001050181000101018300010001020181000103018100018201 +000104018500010001000182010001020183000100010201810001040181000102018100 +010501810001020181000182010001 +080183000100010501830001000101018300010001010101001301840001000100810001 +0101830001000109018700010001000100010b0182000100810001020183000100018301 +000100810001810100850001000100018201020101018a00020100010001000100010101 +8400010001008100018101008200020002008201020101018f0001000102000200020002 +000201020182010001030181000101018900010002010201020100810002860201020102 +01028c020102000200020001000100018401020102018201020186010001000100010101 +020085010001000100880001000100010001008600020001000100850001000100028502 +010201000184010002000281020101010102020189000200010001000200010201870001 +000100010001860100010201000101018600020002000100880001000100010001008600 +010001000201020182000100860001000102010281020183010002008500020001000283 +020102010101810001820100010101010003018100018b0100010001000100010002018f +01020001020100020102010201020102820201028c020001000200020001000100010401 +8a0001000100010001020102830201000188010200020002000100810002870201020102 +0100018101008a000201000100010001000105018500010201020001008f010200020001 +000201000100020002010701810001010183000100010301810001010183000100018201 +000184010001000101018100010701830001000184010001000102018100018401000100 +01820100010201830001000102018100010501 +820100018401000100018201000184010001000182010001020182000100020082010001 +820100018401000100010401850001000100018601000100010001020181000104018500 +0100010001820100010a0183000100018501000100020182010001010181000104018500 +010001000103018100018601000102010001010185000100010001010183000100010501 +810001890100010201020002000182010200820002010101880200020102000100010101 +830001000101018f000100010200020001000100010201028a0200020002000100010201 +02018a020102010001000200020087000100010001000105018100010401810001010182 +0002010101820001028c0200020100010201000200010081000183010201028602010001 +0002008200020187010201000200020083000100010a0101028701020002000200010101 +0100850200010001029a0201000100020102000200020001000201020100010002000200 +010201810201860102010200010085000100010001050181000101018100010201830001 +00018b010002000200010001020002810201010188020001000200010002840201020102 +8d020102010001000100010001000102018402000200028b020100010200020001000100 +860001000102010286020102010200010401930001000100010001000100020102010201 +0200018c010201000200020002000200018401000100010a018100018201000101018500 +010001000182010001020183000100010101810001820100010201810001060181000182 +01000107018300010001840100010001030183000100010001 +0601810001070183000100010c0101000301810001010183000100010901850001000100 +01820100010801830001000186010001000100018c010201000100010001000100010301 +810001820100010301850001000100010101820001008500010201000183010200010701 +8400010001008100018601000100020001840102010201880100020102000200028e0201 +00010200010001000100010001040183000200028d020100010200010201020102010284 +02010201008c000200010001000200010002008100010301830001000182010001870100 +010001000100860001000100020081000283020100018201000101018600020001020100 +8c0001000100020001020100020086000200020001028102018201020104018100010201 +8700010002000200018a0102000200020001000102820201000100820200018101028302 +01020183010201028b020100010001000200010002880200010002000100028302010001 +060181000182010001020181000184010001000102018300020001840102000102810200 +01008f020102000100020001000200010001008700010001000102010701890001000200 +020001020199010002000100010002010001000100020002000100010201000104018100 +010601890201000100020002010001008102010101830201000101018102018701000100 +010001008700010001000100010201010008018200010081000101018100010401810001 +020183000100010201810001020181000184010001000182010001070183000100018301 +000100 +010183000100018401000100018201000182010001040181000181010081000101018300 +01000103018100010201810001030185000100010001820100010b018500010001000104 +018700010001000200010101850201020002010301010082010001860100010001000103 +018300010001030185020102000201010198020002000100010001000100010001000100 +020102010200018101008200020189010002010200010002008200020106019d00010001 +000102000200010001000100010001000200020002000100010088000200010001020102 +830201020085000100010001050181000101018300010001020183000100028202010084 +000102010084000100010291020102000100020100020001000100020002810201040101 +02820002008b000100010001000100010001010182020102810201010181000101018200 +010085000100010200820001008700010002000200028702010200010201028402000201 +028202010002008401000102018101028202010089000100010001000100018101008200 +010083000100010101820001008500010002000101018200010088000100020100010201 +830102010282020100930002000100010002000100010001000100010001810102810201 +840100020002810201010187000200020102010283020102018c01000100010001000100 +01000101018300010001010101008b010001020102000200010200010083020002010101 +820002018201000182010001060181000101018300010001020187000100010001000101 +010100030183000100018401000100010401810001020181000182010001020181000102 +01830001000182010001820100010501 +010181000107018100018201000184010001000107018300010001820100010601810001 +820100010b01850001000100018201000101018100018801000100010001020101018200 +020184010201020189010201020001000100010701850001000100010101850001000100 +018b0100020002000200010002010801010003019a000200010002000200020002000200 +0201020102010201020002008300010001050189020002000200010001008a0002010001 +0002000200028e0201020102010200010001000200018201020103018100010201810001 +84010001000101018200010081000101018700010200010001008d000100010002000102 +010002010282020102830201020101018a02000200010201000200028102010801010087 +010001000100010286020001000100018501000100010084000102010283020102018501 +020100010085000100010001870102000100010201820102018701020002000200018601 +0001000100010a0184000100010087000201020102000101018200020001008301020102 +890200020002000100010283020102018b01020102000100010001000103018500010001 +00018b0102010002000200020001008d0002000200010001020102010201010187000100 +010001000104018b0200020102000100010201008100018101028a020002000200020001 +000102018100018401000100010101810001030183000100010401010082010001090181 +000101018100018601000100010001050181000102018100010a018300010001810100 +010181000182010001840100010001050183000100018401000100010701810001820100 +018401000100010601850001000100018201000101018100018a01000100010001020102 +018201000186010201020100018c01020002000100010001020001030187000100010001 +0001030183000100010101810001010101008e0102010001020102010001000100018101 +008d00010001000100010201000102010101820201028f02010200020002000200010002 +01020103018600010001000100870002010200020102850201020002018a010201020102 +000100010082000201830102010285020102000200830001000101018100010301810001 +010183000100018c01000100020001000102010201030182000102010281010282020102 +8b0200010001000200020001028302010201840102010200890001000100010001000103 +018102010201010201018100010101810001870100010002000200850002000100028102 +010101010282010201880102000100010001008500010002000201028801020100010001 +000101018800010001000100010081000101018100010201830002000101018300020102 +8402010001028402000200028e02010201020001000200020002000107018b0001000100 +010002010001008400010001028102008400010201028402010201028802000100020001 +000107018100018101008100028502000201000101018200010083000100018201000181 +010281020101018300010001070101000101850001000100010101810001830100020102 +010100840100010001820100010101810001050181000102018300010001840100010001 +020183000100010101850001000100010401 +810001070181000184010001000103018300010001820100018801000100010001000101 +018100010101850001000100018201000101018100018601000100010001040183000102 +01020181000183010200018e010001000200020002000102010201840102010001050181 +000186010001000100010101830001000181010083000102008900010201000100010201 +010181000101018300010001030186000100010001008600020100010001010182020102 +8b0201020002000200010001008600010001000100880001000201020002008b00020100 +010001000200020183010001008a00020001000100020002010301860001000100010001 +0084010001000101018300010001020182000100840001000100850001000100028b0201 +0201000201000201020101018402010201028a0200010001020100010201060183000100 +018f01000100010001020100010001000100810001820102008100018201000101010102 +850100010002008800010002000200020102018102018101028402000200028102000100 +0101810201820100010a018100018401000100028402010001008b000102000201000200 +010201830102010088000100010001000201010101028801000100010001000102018402 +000201029402010201000100020002010001000200010002000101018102010401870001 +000100010001020101028c00020001000201000201020102810201810102840200020001 +860100010001000101018100018201000103018100010401850001000102018b01000200 +0201020100010001840100010001020183000100010a0181000102018500010001000182 +010001040181000182010001 +810001820100018401000100010201810001840100010001080101000101810001060181 +000182010001860100010001000104018100010101860200010001020190010001000100 +0200020001020002010201020181020186010001000100010501010002018d0001000100 +010001000100010001890100020102010001000183010001008100010201810001010181 +000101018200010286020100010200019401020100010001000100010002000200020001 +00010401810001860102010200010083000100028c020002010001000200020002018501 +02010201028b020100010002000200010001030101008201000101018300010001010101 +008201000101010100020184020001000101018202010281020101018a00020002000100 +020002008400010201028d02010200010200010001000100010201810001030182020100 +8100018601000100010001820100018101008100018e0100020002000100010002010001 +0282020102840201000100850001000102018101028e0201020001000100020001000100 +010101820001008300010001010101008c01000200010001000100020002830200020082 +000200850002000200028302010201010189000200010001000100010301830001000183 +01000201830100010087000201020002010001008e020002000100010001000200010001 +08018c000102010200010201020102008300020100870001000200020001820102010301 +830001000182010001010183000100010101810001840100010001860102000102010283 +020100010101850200020102010101810001860100010001000186010001000100010f01 +810001820100010401 +0201810001820100018401000100010a0183000100018401000100018401000100018201 +00010201810001030181000104018a000102010200010001000187010001000100020102 +018302010201910100010200020001000100010001000200018301000100810001840100 +0100010901850001000100028202000101018d0201020100010001000100010001020101 +008301000100830002000283020102008a00010001000100010201028302010201880100 +010001000100018501000201020184010200020186010001020002018c01020102010200 +020001000100810001010101028400020002008300010001030183000100010301840001 +000100980001000102000100010002010002000200010001000201020181010281020183 +010201028902000200010002000201820100010d01850001000201008100028102010201 +81000101018100018201020184010201020183010201028c020001020002000200010201 +028102010101880002000200010201008100010c01810001010183000100018201020101 +01820002018801020002010002010082000100820002018e010201000200020002000100 +0102010301820001008b0001000100020102010201028a02010200010001020002010201 +820201028902010200020001000100010082010001820100018401000102010101850001 +000102018401020100020102890102010201000100010002000101010001018300010001 +0101830001000102018f0001000201020102010001000100010283020100018401020102 +018201000106018100018601000100010001840100010001820100010701810001820100 +01 +820100010a01810001840100010001820100010101810001820100010401810001020101 +008201000101018100010201850002000200018401000100010201830201020102019002 +010002000200010001000102000100010201840201020001060101000301890001000100 +010001000104018100028902010001000100010201070181000105018602010201020102 +91020102010201020102010001000100010001070101008a020102000200010201000181 +0100820002008a00010001000201020002008c0002000200010002000201020103018300 +010001010185000100010001010181000102018802010001020001020182010201810102 +810201810102900200010002000200010001000200010201010186020102000200018901 +000100010001000100860001000102010282020002010282000100820002018301000100 +02008b010001000100020002010001850102010200010201810200830001000201029000 +010201020001000100010001000100010101820001008500010001000191010001000100 +020100010002010002010001980102010201020001000200010002000102010201000100 +01008300010001030101028100018a010200010200010001020101010100890100020002 +0002000201070184000100010086000102010200028702000201020002008e0002010201 +00020002000200010001080181000102018300010001010181000101019c000201000100 +010001020102000201000100010001000102010200020104018100010401810001860100 +0100010001840100010001820100010501 +030181000184010001000182010001040181000184010001000107018100010201810001 +04018e000100020100020001020102010201010196020002010001000200020001020002 +000100010201020102018100018c01020001000201020100010001820100018801000100 +010001000101018500010001000101018400020102018101029002010201000100010001 +0001000100010001008b0100010001000100010200018301000200870002000102010201 +010189000100010001000100010301870200020102000200820002018201020087000100 +010002000284020102000283020102010101010282000200840001000100880001020001 +000100010101810001010101008b01000100010002010002000182010002810200850002 +010200028102018401020100010101010089020001000100010201008100010b01050201 +008301000200860001000100010083000100010201010289010001000200020100020102 +820001008100010201830201020183010201008500010001000101018100010501810001 +820100018501000100010283020001008500010002010284020002000287020102000102 +010284020002010288020100010001000100810001030187000100020002010289020102 +000100010002008600010001000201010101028a010201000100010001000106018d0201 +0001000102010200010201008b0001000100010201020102010201840001000100810001 +030183000100010201870001000100010201840100010200870002010002000102010283 +010201028602000100010001840100020001020181000105018100010401830001000184 +01000100018301000100 +010181000104018100018401000100018201000102018100010601830001000101018300 +01000182010001010181000101018302010201820100018401000100018e010001000100 +020002000102010201020181000186010201000100018f01020002010201000100020001 +000100810001820100010601810001040181000101018100028602000100020001890102 +00010001000100010301810001010181000101018c000100010001020100010001008700 +010001000102010301930001000100010001020002000200020001020002860201020102 +010284020102000101018102000100880102010002000200010201840002000201020183 +000100010101820001008100018101028202010082000102830201000183010201028302 +010201820102008800020001020102010082000102010201018202010281020102018500 +010001000102018202010203028600010200020102880200020002000102018101028102 +018301000102010281010201028300010001020101028a00010001000100020002010501 +810001010181000101010100040101008b01000100020102010001000283020002000100 +89010200010001000200028602010001000102810201040103008b010001000200010200 +020001010187000200020100010281020188010002000100010001070185000100010001 +880102010002000200018501000100020084000102010284020001000184010001000106 +018300010001030183000100010401880001020102010200018b01020102010001000102 +00018201000101018f020102010200020100010001000100010301830001000102018100 +01050182000100 +010183000100018201000102018100010a01830001000183010001008500010001000102 +018100010301870200020001020001010189000100020001020102010201880001020001 +000100010201810001870102000200010001870100020102010201820102010501810001 +840100010001010186000100010001008100010101840200020001870102010201020001 +03018200010081000182010001910102000100010200020100010201020102018a010001 +000100010001000103018900010002010002010201860100010201020185010200020102 +840200020002840201000102880201020100020102018101008600010002010200810001 +020187000100010001000184010002000201028101028902000201000100020002010288 +000102000200010002060201018802010001020001000103018100028202010201028300 +020102010284000201020083000201028102018401000100010101810001010101028100 +018301000102020283000200028102010101010281010287020100010001000101018300 +010001010102000101830001000182010001010182000100820002010101830200010286 +0201020102000183010201028a0201000100020002000100830001000107018502010201 +020083000200028402010201008a0001020002000200010001820102018a010001000100 +010001000104018202000185010002000201810102010283010001028e02010200020002 +010001000100010085000100010001010183000100010301830001000186010002000200 +018c01020100010200020002000201010183020100028402000200018201000281020186 +0102010001000184010001000184010001000102018100010601 +01018100010a018100018401000100018601000100010001020183000100010301810001 +820100010201810201820100018401000100018201020101018100018701020001020002 +018401000102018d01000100010001000201020102018b01020002000100010001000182 +01000103018100010301810001030181000103018102018a010200020102010200020184 +01000100010101810001010186000100020002018f010001020102010001000100010001 +028d02010001000100010001000100010201880002000200020102008300020100850001 +000102018301020102840201000100840001000102840200020001020185000100020001 +020181000106018100018301000200840001000200830002010281020183010201028502 +01000201028202010201028801020100010201000102018600010001000102820201028a +020102000100020001020085000100010201850100020002008300020102810201030181 +020188010002010200010201820102008a00010001000100010002008500010001000101 +018500010001000106010100030182020102880200020102000102009000020002000102 +010002000200010001028202010281020101010100880100010001000100010101820201 +028102018601000200010001880102000200010001028c02010200020001000100010001 +03018f000100010200020002000100010001000100880201020002010200018201020103 +010200040183000100010201830001000101018700010201020002008500010001000101 +010102820102019401000100010001020001000201020100010001000187010002010201 +020102018100018501000100010085000100010001 +040181000184010001000184010001000182010001060184000102000182010001810100 +810001020181000102018102008100010201810001020195000100020102000102010200 +010001020100020102018d01020002000100020100020002018201020101018602000200 +020001810100810001010183000100010101830001000101018400010001008100018201 +020189010201020002000100018601000100010001020190000200020002010002010002 +000200010001008701000100020100010701820001008700020102010201028502010201 +02018a0102010002000200020002820201028d0201020100010002000100010001010188 +020100010001000100850001000100010101020201008a01000201000100010001028102 +018d010001020102000200020002000184010001000101018d0001000102010201020002 +010200860001000200010201028501000200020085000200020002810201030181020185 +0100020001008a0002000102010002000201820102010201820201028302010201090181 +000101010100030184000100010089000100020102000200028202000188010001000200 +020002810201010101028700020001000100010a01820201028202010081000282020102 +8402010201008400010201028a020002000200010001000103018500010001000101018f +000201000100010001000201020100018d01000102010201020100010002010201010082 +010001010185000100010001020185000201020001a30100010201020102010200020100 +010001000102000201020102010201000102000200010101840201020001870100010001 +02000107018100010101 +810001840100010001820100010701810001880100010001020002018201000182010001 +040181000184010001000101018102018201000184010200020187010200020001000186 +010001020102018b01000100010002000201020184010201020188010001000100010200 +810001840100010001030187000100010001000103018100010101810001020101028800 +020002000201020102018100010101810001810100810001010184020102000185010201 +02010285020102010201010183020102018a010001000100010001000189010201000200 +020001008a00020100010001000201028902010201020001000100850001020102010301 +010081010081000105018100018201000101010100820200018301020102820200028102 +010101850201020102018401020001028402000100028302010001020184000102010082 +000201830102010201028101008700020002000200018101008800020001020102000282 +02000203028600020102000102830201000101018400020001008c000200020001000100 +010001008300010001030183000100010401830001000182010001010101008402000100 +02050281000283020102018101028d02010001000200020001020102018a010001000100 +010001000185010201020102020286010001000100028a02010001020001020102018201 +0201030187000100010001000187010001020102000184010002010201028c0102000102 +010002000201020102018302010001040183000100010501810001850100020002008200 +010001008202000186010001000100010101830201020101018700010001020002018301 +02010201028a0002010001000102010201020184020001000182010001840100010001 +810001050181000103018300010001010189020002000102000100018201020101018200 +01008100010201810001020102008a010001000200010200020184010201020189010001 +000100020102018201020198010002010002000200010001000100010002000201020102 +010301810001050181000183010001008300010001010102008401020102000300840200 +010001010181000183010001009200010002000200010201000102000100020102840201 +00010083000200010501810001010101000101850201020002018f010201020100020002 +0002010002000281020101018b0002010001000200010001008300010001010101000301 +810001010182000100850001020102018201000182010201810100810002820201028302 +000200830001000105010100860100010201000181010207028401020001028b02010200 +010201000102010084000200010082000100010001018202000281020182010001010185 +000100010002020285000100010001010101028201000103018102018401000100018201 +000102010100050101028200020101018302000100840002010001880102000200010001 +02820201028302000200010086010001000100010301830001000283020102008a000200 +020002000102010283020002000100830102010083000100010801810001810102950201 +02000201020002000102000200010001020102010201830001020104018b000100010001 +000100010001010181000186010201020100018901000200020100010201010188020001 +000100020102810201810102990201000200020002010001020102010200020100020100 +0100010901 +8201000184010001000102018a0002000201000200010201820102018201000186010201 +000100010501830001000184010001000184010201020187010200020001000184010001 +00019901020102010001000200020002000102000200010001000102018d010201020100 +0100020002000100820002018c0100010001000100010001000103018100018101020102 +8200010281020181010285020001000100030002018400010002008d0001000102000102 +010200020002830201020101018802000200010001000101018100018401000102008400 +020102008700020102010200028502010001000101018900020001000201020102820200 +010b01830001000105018700010001000100018701000201020100028202010281020189 +010001020001000200010101010084010002000284020102010283020100018401020001 +008200010283020002018301020002830200010084000102010088000102010002010201 +030190020100010001000100020100020002000101018100028102018401020100010501 +81000188010201000100010001830100010084000200010286020001000201028b020100 +010002000200010001840102010200830001000281020105018900010001000100020002 +820201028e0201020002000102000200010201028402010201028a020100010001000100 +010001000301920201020102010002010001020002000100010001000101820002010201 +81000102018100010201810001020186000100010001029c020102000102010201000102 +010201020002000201000100010001000189010002000200020100010101900201020002 +0100010002010001020102018201000185010001000100810001 +840100010001820100018201000103018202000102018400010200018801020100020002 +000181010081000101018100010201810001820100018501000102000101018202010294 +020100010002010001000100020002000100010201910100010201020100020002010001 +000102010201850200010200028202000184010001000103018600010001000100840001 +020002890201000100010001020107010200020187000100020001000290020002010201 +020002000200020001020104018800010001000200020085000200020001010183020100 +010101830002010288020002000102010201830102010281020186010001000100018201 +000182010001010101008501000100010083000100010201830001000182010200820001 +028f020001000102000100010001000100028102018101028a0200020102010201020102 +810201830100010082000201020188000100010001000100840002000100840001000102 +840200020102860201020001020103018202010086000200010001028702010002000100 +010101810001010101008501000102000182010001820100010301010088020001000100 +010002810200810001830102010282020102870200020001020102890201020100010001 +000106010102820102008600020002000100010001018202010288020002000200010001 +0a0181000101018102008e00020002000100020001020100010285020102000200850001 +000100010501830001000101018100010401870001000100010201820100028102018f01 +000100020100020001020102010201820100028602000100010002890201020001000102 +000184010201020101018402000100018401000100010301810001 +8201020185010201000201880102010002000102018a0100010002010001000201820102 +01820102010c0181000181010286020102000100018b0100010001000100020002018401 +020102019d01020102010200010201000100020102010201000100020002000200020181 +010084000200020182010001030181000101018600010001000100810002860200010201 +000101018b02010001000100010001000101018100018801020102010200020092000200 +0100020102000201020001000100010081000104018a0201020102010002010200850002 +010201028102010101840201020102010289010201020001000200010b01810001040181 +000104018200010081000201020201830001000201028100010301010285010002000200 +840002000102820201028302010201040182000100850001000100010101810001010181 +000102018100010101020281000181010282020102810201010101028600020001000100 +810001030101028200010082000201840100010001020181020101018402010001008a00 +010001000100010002010201020281000201028c00020002000100010002010201810102 +830201020103018d00010001000100010001000102018301020102830201020182010200 +970002000200020001000102010201000100010001000100010301860201000102010202 +028101028a02000201020102000102018401020100018201020101010100820100010101 +810001010181000182010001010101028401000102009600010001020002000201020102 +010002000102000200019b01020102010201020001000200020100010001020002000102 +010201060181000101010000 +0101830001000101018c02000102000200010200010001820102018d0102010002000201 +0002000100010201810001820100018201000102018b020002000100010002010001aa01 +020001020102000200010001020001000102010002000201000100010002010201020001 +000100010001820100018101008100010101870001000100010001070102028801000100 +010201000105018200010001000201850002010200020102900002010002000200020102 +000200010201040184000100010001008302000100870002000201020102830201020183 +0102000287020002000102010202028a0102010001000100010001030181000101018300 +01000105018b000200020002010002000201020181020102010100860200020001020181 +010283020102010101830201020101018302010201020182020102010284010001000101 +018100010101810001020101008401020100010101840201020102820201028302010201 +050187000100020002000184010201000101010200810100810001010181020081000106 +010100970100010001000100010201000201020001000100020102008900020002000100 +0100010901820201028b020102010200010001000200850002000200028d020102010201 +00020001000100010501810001010188020100010200010001820102008c000102000200 +010001000100010101820002010301810001010181000101018e00010001000100010001 +020002010283020002018101028a02010201000100010200018d01020102010201000100 +0102000186010001020102018b0102010002010001000200018401000100018201000104 +010000 +01018a020100020100010001020103018102018701000100020002010101830201020182 +0102018201000182010001010181000182010001020186000201020100018b0102010002 +000102010200010301810201860100010001000196010201020100010002000100020002 +010200010001020003000201830001000101018100010101890001000200010001000283 +020100028102018101028102010101830001000101018a00010001000100010001028402 +000200018401020102018501020002000186010200010001008500010001000101018202 +0102820200018101028102008c0002010001000100020102010288020001000100010001 +840100020102830201000103018500010001000101010100850100010001008700020102 +010001020102010186000100010001008100010201010281010283020001008600020001 +000201820100010101810201850100010001020102810001050183000100018401000100 +010101860200010001020104018a02010001000100010002008100010201810201020186 +02000100010001060101000101820201008700010001000100018f010001020100010201 +00020002000201810102830201020083000200028402010201028102018d010001000100 +010001000102010281020101010102880102000102010002010101890200010001000201 +020104018500010001000102018102018101028a02010201000200020100018301020102 +8102018201020101018100010301820200010101890001000100010001000101018f0002 +010001020002010201020002000285020001000102820201028402000200018401000200 +018201020181010290020100020100010001020002010201020186010201000100010801 + +010182000201820102018501020001000187010001000201020101018902000100010200 +010001850100010001008300010001040101000201830201000186010200020102010101 +96000200010001020001000102010001000201000100020101018c020102000100010001 +020102018201020103018100010401810001010101008202000183010200028202010281 +020188010002000201020001030186000100010001008100018601000100010201820102 +018d01000201000200020002000102010601840001000100010083020102008200020001 +008501020100010283020002008300020102840201020102870201000200020001010182 +000100830001000183010002018101008100010401840001000200850001000102010401 +810201820102008700020001000100010801810001830102000101018102010101830201 +000101018500010001000101018200010081000101010100010204018100018201020102 +0181020183010201028b0201020100010001000200028102010401840001000100810001 +8601020001000201010181000102018502010001000183010200028e0200010200010002 +000100010201020202880100020002000100010501920001020001020100020102000102 +010002010086000200010001028a02000200010001000100010101810001010181000186 +010201020001008400020102000100850102010002019001000200010001000102010002 +010200010301810001040181000198010200020102010002010001000100010200020102 +00020001860100010001020101018f020002010001000100010200020102010101860001 +020001000182010001020101000301810001 +83000200018601000200010201010183020102018b010002000201000200010001870100 +010002000201010181000182010001840100010001010103000102890100020002000102 +000285020102010201860100010001000194010201020100010002000200010001020102 +010201810102890200010001000100020181010089000200010001000100018101028302 +000201010190020002010001020002000200020001000103018100010201840002010200 +010081010201028200020104018c02010201020001000100010001020186020100020002 +01820100028802010200010201020183010201028a020002000100010001000283020102 +0184010001000101018300010001830102000102018d0001000100020100010001020002 +810201840100020002810200010082010201010186000100010001008300010001030181 +00018a010001000102010201000182010001020184020001000106010100850100010201 +008400020100010401840001000100870001000200010001020189000100010001000100 +018201000101018800020102010001000101010100880100020002000100020102020083 +010201028202010287020002000100010285020002000201880100010001000100018401 +000100018201020001008501000100020002008202010202028101028302010201010189 +00010001000100010001020181020181010201028201000101018b000200020001000102 +000201820100010101810201810100810001010183000100010201920001000100010001 +000102010001020102010283020102010101940001000100010200020102000201000100 +0100020183010201028b0201020002000201000100018201020102018100010301810001 +0201 +820102018201020182010201820100018b01000100020100020001000103018302010001 +860102010002000103018500010001000182010001880100020100020102018901020001 +0001000100018b0100010201000100020002000100840102010201910102010201020002 +00010001000100010201030181000102018b000102010201000200020002860200020002 +01028b020100010002010201020001010186000100010001008200010087000100010201 +020189010201020102010201028402000200010501820001008200010081000182010002 +0202820102018c0100020001000200020001000182010201010101020201830001000101 +018300010001880100020100020102008600010001000100810001010183000200020102 +010185000200020100840001000100810001050183000102010201830001000101010302 +810102810200820002018601000100010001010182000100830001000102018402010001 +02820200018401020100010e018400010002010701810001820100010101850002000201 +028402000100010101930201020001020002000201020100020002000100870002000100 +020002850201020100010101010003018300020102830201020196010201000201020001 +00010001000100010001000100010101810001050181000101018a000102010002000100 +020001008a01020102000102010200018501000100020186010201000100010301830001 +00010401830001020001008d010001020002000200020002010281020184010201020189 +010001000102000100028b02010200010001000201000101018302010201010183000100 +0182010001050182020102 +86000102000100018b010001000201000200010201840100010201820100018201000187 +010200010201020101018100010201810001070184020102000182010001010187000100 +010002010001008302000201020183020102019901000100010001000100020102010201 +000102010001000200018f01000100010001000100020102010201810100840001000102 +860200020100020184010001000186010001000100010101010002018102018101000200 +8b0201000100020102010201028a02000200010001000100010301010085020001000200 +840002000201020101028100018201020085000200010201010183000200028402000100 +010301810001880102000200020002010401850001000201028202000201028100010101 +820200018201000101018100010101830001000184010001000106018500020001020101 +0101008c0100010002000200010002000104010300830102010005000501820001008300 +01000105018b000201000100010001000100810001010184000201020083000100018101 +028b02000200010002010002000201020100040182020102810201010101028901020001 +000100010001840100010001010185000100020102880201000201020001000100840102 +000102830201020103018100010101010082010001020183020100018601000102010201 +8e0100010001000201020002000100018201000185010201020002870201000100020001 +030185000100010002860200020002010281020101019302010001000102000200020002 +000201020102010101970201020002000201000100010201020002000102000200010401 +82000100850001000100010001 +810001850100010002018501020100020187010200020001020182010001820102018a01 +020002010001000100018201020101018100018101008300010001020181000190010200 +020001000100010002010201020184010201020002008602000200010201010182020102 +8e0201000100010001020100020102010301020082010201900102010200010002000200 +020102000201820102018601020102010201070183000100019001000100020002010201 +020102010200018101008600010002000201840100010001010101008501000100010281 +020182010002820200010101840001000102830200020189010201020001000100018201 +000101018400010001008700010001020002018101028102008700010001000201028302 +000200810002010202010202020183000100018201000103018300010201050101028200 +010287020002000102010282020102830201020185010002010200810001010182000100 +840001000100850001020102018201020109018500010001000182010201030181000104 +018400010200010101010282000200850002000200020102020087020002000102010091 +000100020001000100020002000100010201020181000101018500010002000284020102 +000101018502000200010001008202010284020102010083000102018101008100010801 +820201028802000200020102000101010102890002000102010001000101018100010101 +8e0201020002010200020002000100010201030201008a02000200010002010002018101 +028102010201940200010001020001000200020002010201020102018101028102008a00 +020002000201000100018401000100010201810001840102000201 +8201020102018100018201000185010200010201820100018a0100010002010002000201 +820102018801000102000100020184010001000102010200020182000201860102010201 +020102018b0002000200020001020102018a010201000100010001000186010201020102 +0101018700020002000200028102018101008100018a0100020002000100010001010184 +000100010285020002010201010185020102010201020101000201810001030101008201 +0002010281000201028101020102840100010002820200010301820001008a0001000100 +010002000201820100018101028302010201810102810201810102010202018102010201 +010082010201010181020181010001000101860002000100010086000100010001008600 +020001020002850201000100010101030081010081000101018300010001010183020102 +018701000100020001028602010002000200870002000100010002010284010200020087 +000200010200020104010300840100010001040188000100010001000100860002000100 +010281020181010084000100010082000100010085020102000100890002000200010002 +000202028401020002010601820201028302010201010185020001000100830001000102 +018302010201010182020002940201020102010002010001000100020001000102018201 +000186010001000100010101810200820001028902010002000100020100810002870201 +02010201020184010200010084000102000101018f000201020102010001000200020002 +0081000281020184010002000283020102018b0100020002000201000100028202010203 +028101028702000100010002008300020001840102010201040181000182010001050185 +000201000102 +85010001000201820102018a010200020100010001020103018a00010002000102000200 +018701020100010002000100010284010001000103018100018b01020100010001000200 +020102018102018d01000102000100010001020102018f01020100010001000200020002 +010201840100010201840100020001010101029000010201020100010001020102010001 +028b02010201020002000201020101018100010201020089010001000102010201008800 +01020100010201028b020100010002000200010001060188000100010002000200810002 +01028c010200020001000100010001008500020001000102018400010001028102000100 +010182020001010182000200860002000100020084000200020083000100010101010001 +020401010082020001010181020103018702000200010002008100028302010201010182 +020102820201028602000100020001010185020102000100020084010002000102018300 +0100010c0185000100010201880100020001000100010401860201020002000201028200 +010283020100028202010201028200020082000100850001000100018d01020001000100 +010201000200010601830001000282020102010201008102000300870201000100020002 +87020102010201000101018300020001050182020102840200020102030202008c020100 +010001000100010002018201020102019102000201020001000200010201020001000202 +028a0002010201020100010002850200010001020102820102019f010002000201000100 +010201020102010201020100010001020001000100020107018100018601020102000102 + +8e0200020100020001020001020102018201000185010001000201820102018701020001 +000100018101008400020100028302010200820002018201000182010001010183020102 +018401020102018b0102000200020001000102018c010001020100010001000201008400 +020102010101900002010200010001020102010200010001010185000200010200810002 +810201880102000200020002008100028102018501000201020102018500010001000102 +010100010186020001000102010201890002000100010002010283020102018a01000100 +010001000100010201830001020102018500010200020102010102860102010201020186 +010201000100010201810002810201810100880001000200010001008100028502010002 +000283020002008100028402010001008400020002008100010101810201050101028201 +000285020100020102890200020001000200020086000200020002018501020100020083 +000200010101860200020001020182010200010001020101810001010181000104018100 +010201830002000106018800010001000102010086000100020001008300010002010201 +008502000200020081000288020002000100010001030183020100010201870001000100 +010001010182000102810201010185000201020102810200850001000201028402010001 +028102018a01000100010001000100010301890002000201020001020087000100020102 +00018401000100010301820001008b000201000102010001000102810201860100020002 +010281020002008402000100028302010201010182020102840200010001860100020001 +000101018d02010200020002010001000102018601020102010201850102000100010701 +820200028302010200 +8102019001020001020002000102000100010002018d0102000102000100010001000201 +8c0102010002010200010200010083000100010501830001000297020100010002000201 +020001020102000100010201000102870201020102010001950102000200020002000102 +010001000102010201020184010001000187010001020100010085000200020102830201 +000181010286020102010201028102000100020101028200010001008501000102010281 +020001000202810102850200020102008500010001000109018102008500020100010086 +000200010201028d020002000100010001000200010201028c0102010001000102010001 +000101018b00010001020102010200010284020100020182010002010281000102018300 +010201830100010082000102820201020102810102870201020001000102810200820002 +01810102820201028102018b010002000200010002010200840002000200830002000101 +018600020002000100840001000102810201020181020102018102010401810001030182 +000100830001000192010200010001020001020102000100020002008300020002810200 +0200010181000181010202020101820201028102010b0185000102010001840100020100 +930001000102010002010200010001000200010001040181020182010001020192020002 +010200010001000201020102000102010401830001020181010282020102930200010002 +000200020001000200020001020002910200010201000102000200010002000100010101 +920200020102010201000100010200010002010201028401020100028702000201020100 +010701830001000186010200020100010001 +850102000102010201810201840100010001010101008401020102018301020001010182 +000200850001000200010101810201020187000100010001000103018200020182010201 +880100020001020102008200020101018300010001a00102010002000200020002000200 +0102010201020102000201020001000100010001008102010101820001028d0201020001 +020001000201020002830201020101018500010201020093000100020001000102010001 +000100010002010201028b0100010201000201020102008e000100010001000102010001 +000100810001010181000282020001840100020001810102010283010200028402010200 +010101820200010201810001030101000101840001000100870002000100020002840200 +020002010283010001008400020002018301020102820201028202010281020187010201 +0002000102840201020002870200010002000200810002010201018a0001000100010200 +010002010201008901000100020002010002870201020100020002030206018200020101 +018100010101840200010001020181020186010200010001008500010002000102010102 +810002830200020181010283020102018401020002009500020002000200010001000100 +0100010001000100020102810102820201008c0001000200020002000102010285020102 +0102018a0100010001000100010001020187020102000102010288020002000100010201 +0101820002010401810001010186020002000200018a010201020002000102010201028b +000201020100010002010201010199020100010001020002000200010001020102000200 +020102010087000100020002000184010001020186010001000100010101810001020188 +000200010200010200 +930201020100010200010001000102010201000201820100018a01000100020100020102 +018201020187010201020001000182010001050183000100010201970200020002000102 +010200010001020100010002000200018701000201020102019701020100010200010002 +000102010001020100010201000201028b01000100010001000200020086000201020002 +018101028502000102010086000200020102010401830002000198010201000100010200 +010201000100010001000100020102010a01020089010002000100010002010101010281 +00020102820002008600020102010001020101008a010001000100020001020101018400 +010001008400020001008100018101020302010081010282020102880201020001000201 +028202010284020102010088000200020002000100810002030201010100840100020002 +830201000201028100020102820100018301000102030283010002000200010182020102 +010202018102010401810201050181000184010001000184010200020084000100020083 +000100018201020085000200020102830201000187010002010002000282020102870200 +0201020102010d0181000181010088000102000100020002820201028a02000200020001 +000100010101810001070102028701000100020002018301000100010002028201020184 +01000102018401020100028102018a010200020001000100010297020002000200020100 +010201020102000100020100020001910102010201020102010200010002000100018301 +000201860100020102010283020102010401810001040181000101018100018601020102 +000201 +880201000201020102018501020100020085000200010001820102018401020102010101 +8d0002010002000102000102010001840100010200010084010002010085000102010201 +940100010201000200020102010002010201020102018d01020102000200010001000102 +01010101028c01000100010001000102010001810100830002010001008402000200018c +01000102010001000100020002830201020101018d000100010001000100010201020088 +000200010001000102010203018402010201028702000100010001008800010001000200 +02008300010201810102840201020002830200020001008102008a000100010001000200 +020106018102010401870002010001000100860002000200010081000201020100020282 +000100810002010201018202010283020102018101028202010281020101018200010204 +028f010002000200010200020102000100020102820001008400010001008c0001000200 +010001000100010281020181010084000200010081000283020102010201810001010185 +000100010001860100010001000184010201020082000102030284010200020081000202 +02830002000101010100820100018101028202010201028b000200020001020100010001 +01018600010001000201030181000101018102018b010200010001000200010001820102 +0182010001010185000100010001010183020102018e0102000200020001000200020001 +0282020001010183000102018201020101018800010001020002010202028a0001000200 +02010201000186010001000102010101820200019b010200020001000102000201020102 +010201020102000100020002008b00010001020102000100020102018100010401810001 +85010001000100810002 +820100018901020002000200010201840102010201850102000100018701000100010002 +018a0102000102000100010001820102010101010001018100018f010200020100020002 +010201000200018401020102018f01020102000102000200020002010201930102010001 +020001000100010201020102010201010183000200010101810001010190020102000200 +010001000201020100010202028700010201000102010601020289010001020001000100 +028a02010200010201000100010801810001020185020002000200830002000281020085 +000201020102810200820002008200010001008601000100020001050181000101018a00 +010001000102010200020202810102010283000200020202830102000202028700020001 +000201028502010200010281020081000282020102830200010089000100020001000100 +028202000281020186010200020001028202010281020087000100020002000281020183 +010001008100020102020186020102000102018201020101018500010001000104018102 +010101840201000201840102000100830002000282020102010201008101028102018201 +000107018100028302000200840002010201030181000182010001010185020102010001 +8f0100010001000200010002000201020183010201028602000100010001050185020100 +010200860002000100010284020002010201028300010001080101008301020102010287 +000200020102010202029a00020102010201020102010001000201020002010001000100 +010285020100010002920200010002010201020102010201020002000188010001000100 +01020101018100018c01000102000200020102000200 +860201020002000182010201880102000102000100018201020183010200028302000200 +8a0002000102010201000201940100010001000100010001000100010201020001020202 +01018c020102010002000200020100018d01020102000200010001020002009900020102 +010201000102010001000100010002000200010001009400010001000100010001020100 +010001000201000201020101010081020089000100010001000100020102010185000201 +020002020285010201020001030181000101018500020001000185010001000102850201 +020001028802010001020100020001000601820001008400020102010301010081020103 +018902000100010001000100830002000205028100020102830001020001008202010283 +020102018101028202000201028100010101010282010002850201000201020102810102 +8e0201000100020001000102010001008a00020002010001000201028602010001000200 +820002000300810100830001020102010102810002810201030181000101018102018501 +000100010085000200020102820200028402010002000100010284000201000186010001 +0201000105018c0201020001000100010001000102018202010287020001000100020181 +010281020001008201000184010200010082000200820002010301830001000182010002 +020289000102000102010002000100850100010001028102010601810200890001020100 +01020102018401020102000100940201020002000200010201000102000200020102018e +01020102010201020002010001020183010002018401000200018a010001000102010201 +020104018100018201000102018500020002010001008302010201 +840200010201010186020002000102018201000181010001008301000201820102019401 +020102000102000100010001000201000100020188010001000100010001850100010201 +02010284010001000185010200020100a200010200020001020100010200020001000102 +010001000100010001000200020002010501820200019401000200010201020100010201 +020100010002010201028200010281020185010002000200860001000200010082000100 +860002000201000281020183010001008300010001840102000201040181000102010102 +820002008900020001000102010201020187000100010001000105018200020104018100 +0103018a0201000100010201020102820201008900010002000201000200010001028500 +02000200020302880100010002010200028202000202028c010200020001000100010001 +028202010287020102000200020084000200010088000200010001000102020281010282 +020102820200028102008600010002000102810201010187020100010001000106018102 +018701000201020002008600020001000100850001000200028502010001000101018202 +010283020100010101020081020181010002008101000100810102050287010002000200 +020001008401000200010101010281010289020002000100010002010201850200020100 +020102830100020082000100840001020102860200010001000189010201000201020100 +018901020002000200020002840201020002820200029702010201000102000100010001 +020100010001020001000281020181010297020002010200020100010201020002010200 +02010001000185010001000201040184000201020184010200020082000100 +820102018801000200010201000184010001020182010201920102010002000100010200 +010201000201000182010201840102010201810102810201030185000100010201830102 +010281020186010200020002019801020100010200010001000102010201020001000100 +01000104018302000201010187000100010001000102018100018c010201000100010201 +000100018401000200020102880102010001000102018401020102010101010282010001 +810102880200020100020102010201810201020182020102010283000100010201810001 +020101008101008400010200028102018401000100010201840001000100870001000102 +010201010181000102018100018101028102010101840201000100830001000181010202 +028200020083000200020102810002010203010402850100010002008a00020002000200 +010002018101028202010281020189010200010002000200020102810002020201008302 +000201850102010001008400020002000300820200028302010001830102010201028100 +010401810001050189020100010200020001028402010201020102810100810002010283 +000100010901010004018100010301810001010102008802010002000201020185010002 +000201030187000100010002000101018202010286020102000100028502010002010284 +020002010281020082000102810200880001020001000100010101900002000200020002 +000200010001020102820200020402840100010002010285000201020102960201020002 +000201000102010001000102000200020102810201890100020102010001000186010001 +0001020183010200018301020002890201020100010001000102010000 +010189000102010201000102018b01000100020100020001000184010201000183010201 +0283020102018f0102000201000200010001020001000101018500010001000184010002 +00028b020002000100010200020001010185020102010200860001000201020102018902 +000200020002000201830102000181010281020185010200010001010194000100010001 +0002000201020102000102000201028f0200020001020102010002000200010082000100 +020081020083000201008100028202010002008101000300810102810201050181000103 +018200010201028300010201010101008401000100010401810001820100018301020102 +81020109018b000100010201020002000100810002010281000202028101008100010101 +010281010282020102860200020002000282020102810200820002018101020302860001 +000100020081000289020100020102000100028802000200020002000287020001000200 +020183010201028302010200810002890200020002000100010283020102010301010084 +010001000101018902010200020001020002890201000200020002010084000201000101 +018100010201010205018a00010001000100010001000100030183020102008900020001 +000102000100010001010102060193000100020001000102010201000201020001020081 +000201028201020186010001020002018201000101018102018b01020102010201020001 +020101018500020002000283020002018401020102010201880201000100010200018401 +020102019a01020001000201000100010201000100010200020102010201020182010201 +83010200010401820200018d0100010002010001000100010201 +83020102018f010200020100010201000200010200010101810201820100018401020100 +018701000100020002018a01020001020102000100018201020181010088000102010201 +0002018401020102018d01020100020100010001000102018c0102010201000100010002 +0001950102010201020100010002000200020001000201020104018102018d0102010201 +020002000100020102820200020102860102010001000101018702010201000100018101 +008700020102010001028302000102830201020101018602010001020102810201060102 +000101010082020002010204018900010002000100010002830200020086000200010002 +010301810001820100010101860001000100010281020182010200810002040285000100 +020002010281010203028101020102810002010201008701000200010002008400020102 +010201010084010001000201028400020002008600010001020002880201020102010002 +000200860200020002010085000102010001810102820201028102010a01870001020001 +02010283020102000100030283000200020402820100010801850001000100010a010300 +0102880102010200010002008200020101018302000100010084010001000103018e0001 +000100010002010200020002000100870200020001000102880201020002000100018201 +020101018d02010001020100020002000201028202010001008c02000201000200010200 +0100010101010201018b0200010001000102000200018101028102018101029002000201 +020100010001000102000100018201020104010102010182000200010089010201020002 +01020100 +880201000201000102018401020002018c01020102000102000100010201820100018301 +020001020188020002000200010001020183020100010201810201880100010001000201 +028502010200020188010201020100010001860100010001000102018b02010200020002 +0100010001010101028c010200020001000200020002000100830200010003008e010002 +0102010200020001020002008b0001000100010001000100010401810001820102000100 +880102000100020100018401020100010201810001040101008401000100018101008100 +018a01000200020002000100010201820001028302010200830002000101010102080186 +000100010001028102008400020001028202010205028100018101028202010282020102 +020203008502000200010001000101840201020100870001000100010001020104028401 +000200020402030086010002000200028102010201860002000200020086000200010201 +028202010201020501850001000100018201020181010084000102010203028100020102 +820001020202020081010281020102018102000100050186000100010001008800010201 +00010002018f010002000100020002000102010200018501020102010281020101018300 +020001010181020101018502010002000205028900010201000200020001810102830201 +000184010001000283020002018c01020102000100020001000102020281000286020102 +000201028a02010200020002000201028202010201028201020101018e00010001020002 +00020102010201028702010001000100010401850201020001028f020102010201020102 +01020100020001 +8401000102018e01020002000102010201020001020102018100018f0100010002000102 +00020001020102018b0102010200010001000200018101008a0002000102010200010201 +810102010201018500010001000184010201020103018b00020002000200020102010293 +020102000200020002000201020102010201020102018300020001010181020101018602 +010001000102850200020002010501830201020103018102018201000101018102018701 +020002010002010801810001050183000100018101008100010101810200010083020002 +018201000182010200810002850201000200010101830200020001008102010201830002 +00018d010201000100010201020102000183010201028402000200020202830001000287 +020001000200010283020102018501020002000286020002000102010401810001010101 +008b0100010001020100020102008300020002030281010283020102018101008f000200 +010001000200010001000201028302010200850001000100028102010601010001018500 +020100020083000200020402810002020281010201028801020100020102000181010001 +008201000101018100010301810001030181000181010284020002010201020201810201 +01018a000100020001000200010289020002000102010201020302020003028900010001 +000100010001970102000100010200010200010201000100020002010201020202820002 +010201820200018501020001000182010002900201020100010200010002000200020102 +910201020102010201000102000200020002018201020189010001000102010201008700 +02010201000100860002010201000182010201 +01018a02000200010201020102018c010001020102000100010002018401020002018201 +0201890100010200010001000187010001000200020101018100018c0102010002010001 +000100010281020182010201850102000200018601000100020002010282010201820100 +028f020001000100020102010200020102018c0100010002010002000100010290020100 +010200020002000201000100010282020002810200880002000200010001028a02000100 +010002010201008400010002008100010f01820001000100810100010081010081000182 +0100028202000203028d0102000102000200010002000200810001870102000102010201 +010181020102018800020001020100010087000200020002000202028100020102010101 +028101020202840100010200010083020001028202000203028301000100830001000101 +018100018d01020100020002000100020002008400010002000200880100020001000200 +018301000102070286000100020002008200020184010201020186010001000100018401 +020002008100020102810102020282000200810002010281000201028101028102018101 +0081000284020102000201028b0002000100010001000100018701000100010002000100 +840200020002830201000109018102010201810001820102018101028202010201028500 +020002000201020200840100020001010193020100010201020102010200020100010002 +0002010286000100010200028b0201020002000100010201029202000201020100010001 +000201000200010201010186020002000200028502000100010285020102010201860100 +01000102010101880002010201000200028202010085000100010001010182020002 +910200010200020102000102010201020100018401020100018601020100020001860100 +020001000184010001000184010201000186010200010200010201830001020182010200 +820002018801020002010001000192010201020102010002000200020002010002010101 +8f0200020102000200020102000100020182010200840001020002810201040183020002 +008800010200020102010284020002010285020100020001010101028201020101018302 +000102030282010002830200020102018100010801810002820201008100018101008100 +018201000281020083000200028102008600020102000102810201010182000200820002 +000300010201018200020104018a00020001000102010201020402810002020282000102 +810200850001020100028b02010200010201020100020087000100010001020102018600 +01000100010082000102810201020106028200020002008401000100028402010200028c +020100020001000100020002018201020103018800010201000100020103018902010002 +0102010002008b0002000200020001020002008200020101010302840102000102830201 +000101018102010301820001008300010001020188020001020100020002010283000100 +0106018d0201000100010001000100020001020102028500020102000285020100010201 +01018a000100010201000201020188010201000200020102970201000100010002010002 +000201000102010002000200018301020002010201018202000183010201029202000100 +020002010001000102010201020002860200010001000101018902010002010201000102 +02028701020102010201028602010001020001 +8400020102018f010201020102010001000100020100018a010201000200010201020182 +010201020186000100020100018601020002010201010181000182010001850100010002 +01830102000201028f000102010001000100010002010201028f02010001020102000200 +020102000201840100020001010195000102000201020102000200020002010200020102 +018501020100010084000102010282020002820200010301010002010200820100018501 +020002010281020084000201020102018300010001810102830201000181010001000201 +870001000201020002010282010002010286000100020001008300020001010105020101 +810001010181000183010001008200010287020001020102010083000200028202010201 +028100020102020103028200010085000100020100830002010281020088000200020001 +020100810001080181000289020100010002000200020402810102020284010200010088 +000100020002010201870102000200010002820200020102030181020182010201030181 +020185010002000200830002010205028201000283020100020302810002810201840100 +0200018b0102000200010001000100010401830001020183010200028202010281020182 +0102018101028102010301810201040181020106018b0200020002000200010201028a02 +010200010001000100010101010202018402000200028502010001000102018202010288 +02010200020002000101018802000200020001020084000102000201028a000100010201 +02000201028102018101028b02000201000100010001020102018100010201820200028d +020002000102000200020002000186010002000200010001 +850201020102018c010201020002010201020002018401020002018a0102000102000100 +010001820100019101020102010201000201000200020001020182010001020184000200 +010082000102840201000201020101028501000201020185010200020100880002000100 +020002018a01000102010001000102008700010001020002010101910201020100010200 +010001020102000201028402010001020202810100830001000101018700010001000200 +020102840102000200820002008500020001000103010302020086020001000100010201 +020001028100020202010081020183010201028202010285020002000100840002000200 +010001028300010001030181000101018100028202010084000200010201028300020002 +850200010002008200010282020002820201008900010002000100020102820201020102 +8100010201830001000101010100010101028701020100020002008400020002008a0001 +000200020001020102830201020101018500010001020086000201020100018401000200 +010101030082010001010182020100830002010203028301000200020004028101020102 +010102028101008100018301020102830201020104018700010001000200028202000202 +028900020002000200020001810100820002010401850200010001008700020002010201 +020102880100010001000200028202010202028201020198010001020002010201020102 +0102010002010200020002000203028e0100010001020001000100010001028a02000200 +020100010001029202000201020100010001020002000201020102810201820100018401 +020100010101880001020100010200028e020102010001020102010201020102810201 +83020102018601020002010001010183000100018c010200020100010001020102018201 +02018c010001000100020100010002018701020102000100018401000100018401000100 +0101018102018101008d0002010201000200020002010200970002000200020002010200 +020001000100010001000102010101830200020101018802000100010001000281020181 +01028a020102010201020100010089000200010002000200010401810201020181000181 +010285020100010002030282000201020101020100030282000200810001830100010085 +000100020002010201000202830002000201028200020086000100020002008100028202 +010281020002008101000400880201000102010201008700020002000100020602830100 +010081000201028301020001010182020102820200028202000289020001000201020100 +010701020202018602000200020102820200020102870102010201020102810200850001 +000201028302010201020183000200028802000200010001000182010201050187020102 +010200010203028101028202010203028701000201000200028302010201820102008900 +020002000100010001820100010201820201028402010201028402000200020102010081 +010282020002850201020102010201810201050181000183010001028602000100020102 +83020100018201020101018400010200010101820200018f010201000100010002010200 +020001028402000201028c02000100020102000201000102020283000200018f01000200 +020102000200020100010002010285010201020100010001018300010001020181020185 +01000200010204028a010201020102000201000185010001000102 +9301020100010002000201020002000201020002018401020102018a0102000100010200 +010201910102010201000200010200020001020102018201020182010201810102960201 +000102000100020102000200020002000200020001990100020002000100010201020102 +010001000102010200020001010183000100010101860201000100010081000186010001 +000100028602010201020002830201020181010281020101010200840100010001010183 +000100010201860200020002000201028100028202010281020001008601000200020001 +060101028101020502010083020002008100028602010002000200850002000100018701 +0002000200020104018a0201000100010001020102820201028402010001020202010103 +028201000185010201020002010283000100028202010281020184010201020109010102 +810102820201008500020102010283020002008300020102850201020102018101028202 +01020102820001008c000100020001000200020102010401850001000100018601020001 +020002830201020181010287020002000200010201020101820200020102810100010083 +020002008200020102018200010001008101008900010002000200010200810002030284 +000200010082000100010087010002010201020181010281020104018500020002010201 +028300020002830201000104018102010201830002010089000102010002010201028902 +010001000200020002890200020002010200020186010201020002018201000283020102 +010101920200020001000102000201020002000201000201028300010201020181000182 +01020181010201028101029502000100010001020100020100020001020102010201 +87020002000201020184010201020101018c020102010200020001000102018201020186 +010001000200018501000201020198010200010201020102000100010001020100010001 +02010001880102010200020102018a01000100010201020102019f010201000100010001 +0001020102010200010001020100020001000100010001040181000102018102018d0102 +000100010001020002000102010281000102018800020001000100020101018202010083 +000200020302840002010002810200830002010281020102018400010001000200820200 +020102010083020001020202820002008400020001028102010201010285010001000200 +020088010001000102010201830102000287020102000102010203028100020102810102 +84020002010286020102000201020302810001030104020b010102810102840201020102 +010281000282020102020282010201010182020102830201020102010102810102880201 +020001000100028602000100010001040181000184010201020088000100020002010002 +820201020102810002020281010285020002000102850200020001028d02010002000100 +010001000100010101810201810102040286000200020102010101820201020102840100 +010001070101020401850200010001028502000201000182010001020101020101890201 +00010200020002008700020002010201028202010206028b000100020001000100010201 +850100010201028a02000100020100010001020102940102000100010001020002000201 +020100010002010301850201020100020302880002000201020102010101860200020100 +0200 +810201950102010201020102010001020002010002010201000189010001000100020102 +018f01020100020102010002000102010001870100010201000201020187020100010001 +00028102008100028102008700010001020102018c010002000100010001020102010101 +81000192010001000200010201000102010201020102010101850001000200018101008e +000100010002010201020002000102820201028102010101010083020102010501860201 +020100010201028300020102040285000201000100010088020002000100010001030182 +020002030283010200020102830100020101018600020002000100820001028402010201 +000100820100010401820200028102018101028502000200020085000200020002060281 +0102040201018300010002070201018102010b0103020200020201008302000200830002 +010282020102830201020102010102810102810201020182020001020184020102010282 +020001860100010001000188010201020102010001810102020282000200830002000281 +0200830002000202028101000100890201000100010002000106018b0001000102010200 +010200020302030086020001000100020302010101028201020185010002000100810002 +820200028302010002010201010300820100010101830002000101018202010292020102 +0002010200010001000201000100020084000200020182010201010101028100028c0200 +01000200010002010002018101028a020002000201000100010201028101028302010001 +870102010002010200810002880200010200020002008500020102010088000200020001 +0200018301020102 +860102010200020102018d000102010201000100010001020102018400020102018f0102 +010002010200010201020001000186010201000100018401020001008100018201020085 +000201020002030201018100018501000200020102018902010001000200010001830102 +010290020001020100010001000100010001000182010001010181020193010001000100 +010002000200020102010200010082000102820201028302010200850001000100018801 +0201020102000102820200028c0201000200020100010002000282020002010284000100 +010085000100010001810100820001008100020202820100010101010081010285020002 +0002008e0001000200020002010001020100018d01020002000100020002010201028202 +000203028100028102010101020203010102810002010201018202010201020301010207 +018400010001020102830102010081000202028100020102020082020102840201020102 +820201028302010201830102010283020102018401000200028302010201070181000184 +010200020084000100020086000200010002008100020202820102010101890201000200 +02000100020202030187000100010001000183010201028b020102010200020002000200 +8500020001020190010001020002000100020002000200020102018c0200020102010002 +0100020100870001000102000201020186020002000201008f0001000200010001000200 +0201020002850200020102018101008e00020002000200010001000102010202028b0102 +0100010200020001000202028c0102000200020100010001020101018100010101840201 +0200020102850102010201028d020001020102000100020102010082000200 +880201020102010001020102890100010002010201020101018300010001820102008a00 +01000201000200010201910100010201000100020100010002000201028f020002010001 +000200020002000200028e02010201020002000100010001000103018d02000200020001 +000102010001020102020181000108018500020001000101018a02010200020102000200 +028902000201020002010200840001020102850201020102018101000200880200020002 +000200020102830100010082000200010083020002010701860002000100010081000205 +028200010083000200018101028202010203020101810200010002010100010183000100 +018101020102010081010202028300020100810002010202010502810102010284000200 +020102010302810102820201008100010601880201020100010200028202000202028300 +010002010282010201010182000102020281010282020102830201020102010102010003 +018102018201020183010002010101870201000201020102820201020102810002020281 +00028102008400020002008200020183010200018c010001000200020001000100010101 +010084010002000282020002050281000202028901000200020001000102830200010281 +020185010002000200810002020286000200020002010301810001830102000104018b02 +010201020002000102010286020102010200020302020182000201820100010201840201 +00010201029b000100010001000201020100010201020100010200010001000102018701 +020100010002010201010283010201020102820002008f00010200020002010001020102 +00020182010200 +810201910102000200020102000200020102000200018401000100018401020100018301 +02000101018b020001000102000100010201840102010001020101008201020102019000 +010200020001020002010201020002018a01020100010001020001008500020102010286 +020102010200010101830001000182010001810100020082010001020101000101860001 +020001000181010087000102000100020081000283020002010201860001000100020082 +000102010284000102010281020001008702000200010201028e02010002000200020001 +000100010083000100018101008200020087000200020002000101010202830102000282 +020100830001000186010200010200010901870002000201020102820200028402000100 +020202810102810201860102010201020081000204028101020102010103020301890001 +000100010002010203020100810102040282010200010084020002000202020401840200 +010201880102010002010200028102010201810001030181020182010200010083020001 +008500020002000286020002000200028102018101028302010002010285000100020001 +840102010201050181000186010001000201028302010002010282000200870002000100 +020002820201028102009000010002010001000200010200010201008200010285020100 +020001010187000100010001000104018700020100010001028b02000200020002000100 +020002008501000100010288020100010001000201840100010002810201830100020194 +010002010201000100020002010001020102010001840100010001870100010001020102 +8402000200020102840102000201810102810201020188000102000100020102 +840002010001810102830201000199010201020002010201020002010200010001020002 +000102000101018100018401000100018401000100018401020002010201880200020001 +020102018101028802010201000201020184010001000181010202020101010201018700 +01000100020001020101000301010005018100018101000100010183000201008c000200 +020002010002000200018201020081000284020001000101018402010200018101020302 +830002000205028100028602000200020002840201020102860201000100010081000101 +018800010201020002000201028400010002018101008400020102018101028202010281 +020107010200890100010001000200020087000100020002000282020002020283010200 +020402810002010282000201810102040286000200010201008100010301830001000181 +0102820200018201000201020100830201000201028100028a0201020102000100020102 +020201010100010201018102018601020002000102810201820100010301840002010001 +8b0100020001020001000200028402000200020102840102000102820201028102018301 +020102860200020001000102018300010001010101028101028202000205028500010002 +010287020100010002000282020100830002000286020001020100020302010084020102 +000102018102010201020002018302010200820001028402000200028702010001000200 +020202810102820201028d0201020102010002000200020002850201000102018f010002 +000100010200020102010201028602000200020001820100010101830001020081000289 +02000200020102010002930200010002010001020002010201020102010200 +8f01000201020002000201020002000201810102880200020102000201028d0201020001 +000102000102000201820102018401020100018d01020002000102000200020102018101 +008a00020100020002000201020102830001000202028200020086000102000200010301 +8100010c0101008201000107018102010101830002000281020084000100010284020102 +000282020102010203018300020001810102820201008100028702010200020001000200 +010281010283020102008700010001000100010601870002010002010002020282010201 +83010201028202010282020102810201020101028101020202860102010001020102018d +000100020001000201000200020081000201020100840201020102010284010200020081 +000284020002000201028101028202010201028200010081000101018100010201810002 +810201010101028200010281020084000200020001008b02000102000100020002010285 +020102000102020284010002000202028401000102010201810001020186020102000201 +028702000200020002008300010002030203010102850100020102018101028102018201 +020102018100010401030281010287020002000100020082000102890200010001000200 +020002008301000102020285000200020002030283000200010101820201028302010201 +82010001030182020002850201020002018b010201000100020002000102820200028b02 +000200010002000200010201028101028502010001000289020001000102010201028e02 +010001000100010200020102010281020183010002018501020102010282020102840200 +01000101018700010001020102018a0102000100020100010001 +810201840102010201010189020102010201020102010101830201020185010002000201 +820102018b0102010002010001000100010101850200020002018b010200020001000102 +000201010182020102820201028a02010201020102010001028502010001000101018300 +010201820100010101840001000100820001008300010001050183000102008300010001 +84010001020103018102008b000100010002010200010002010282010200830002000282 +020002010282010002010284000200020082000200880002000201000201028402010201 +028302010001010186000102010201020102820001008500020002000282020102830201 +020181010282020102030281010284020102000103018100010401860201020100010203 +028100020102820002018501020002010081000282020001830102010201028101028102 +008700010001000102010201810001010187000100010200010201020100810102040281 +01008300020102850201020102018101028b020002000102010200010001810102020285 +00010001000283020100018c010001020002010002010002008500020002010288020002 +0001000201020302820100010101820201028202010201020b0181020181010282020102 +040282000102810201830100010282020102840201020102810200860002000200010289 +020002000200020001020202820001028302010201040183000200018501020002000289 +02010001000200020002810201010182020001820102018a010201020102010201000187 +010001000200020104018b02000200020100010002010201028901020002010001000102 +8f02000102010001020002000201000100810002020202018d0002000200020100010201 +020102 +840201000201010181020181010286020100020102018601020001020002840201020001 +860100010001000102018a0201000201020100020001850102010002018a010201020100 +010200010085000200020002830200020089000200010002000102010201810001060101 +000301810001030182000100060088020102010201000100810001880100010002010201 +028702000200020102008b00020002010001020102000201028300020002810200010002 +0286010002010200028d0201020002000102000100010201070181000202020100820200 +028102010101010281010282020102060284010200020101018300010002810201010187 +000200020001000201028401000200028202000284020002000101018302000200860002 +000200010281020182010002820201020302820001008500010001000102018200020183 +010201028202000201020100830200020086000200020001028402000201028302010201 +810102820201028402000100028402010002000200820100018201000103018202010085 +000100010002020201000202810002830200010202020101010281010283020102010301 +810201090101028101028702010200010200020102830002000288020100020102000100 +850001000100020202810102820200020102870001000200020001010181020101018102 +010601840201020102890201000100020102010287020100020002010083000100018501 +000100010001008402010201028d02010201020002000102000100010601850001000200 +028202000203020201890201020102010001000290020100010201000102000200020100 +01028202010285020002010001 +820002019c01000200010201000102010201000102010201000100010001020102018201 +000189010201000100020102008100018301020102860200020002000188010002000100 +010001870102010002000201830102010281020105018300010001040183000100010301 +010081020003008e01000201020002000200020002000101010200810100860002000200 +020089000102010001000200020202830100010201020101810002040202018900020002 +000200020102840200020102840201020102830201020106010302810002810201840100 +020102010283010201020102840102010001010182020002010282010201820100018101 +000100870200020001000200860002000200020085000200020002010284010201020002 +008202010082000102040201008601000100020001020181000101018100018201000284 +020100020001000202840100020102020281010286020100020102008300010002820201 +028402000100018301020102010283000100010101020081020102018102010101820001 +020102860001000200020084000200020081000201020101010281000281020183010201 +0203020c0101028400010001028102008300020001030101028101028202010283020102 +018401020002008300020102020281000203028400020001028202000181010281020101 +01010001018c000200010001000200020102008300020002870200020002010001820100 +0103018102010101060087010001000102010281020101018c0001000100010200020001 +020101018402000100020102810002010201000502890001020001020001020183010201 +028a0200010200020002010001 +920201020102010201000100010201000200020184010002000201028100018701000100 +010201008100018601020102010001860102000201000101018500010001000182010001 +040183020001028e02000200020001020100010001000104010300850100010001000200 +960100010200010002000200020102010201020102010201830100020103018600020002 +000200820001028202010201020100880201020102010201028202000201028200020001 +000101810002850201000200028402010201028302010201820102010a01010282000200 +81000201028200010282020002810201020104028100028c020100020002010001000100 +010101020201010202010182020102820200020102810002830200010201028100028102 +000100010281000102018200010203028101028202010085000100010001010182000102 +8b0201020102000201000200028302000200020083010201028202000282020102830201 +020193010201000200010001020100020001000200010281020182010201850102000200 +028302000200830002000202028100020202830102000282020002830201020181010282 +020102820201028102010201810001010181020181010204028101028602000200020102 +020282010201820102018101028202010282020102830201020181010201028100020102 +840002000200830002000282020102830201020102018800020102010201000201028601 +000200020102810201810102010205018900010001000100010001020181020103018700 +01000200020002840200010201020181020101018900010001020002000201a101020102 +01020100010200020102010200020002010001000102000200020102010201020101 +8e0201020100020002010201020002018301020102830201020182010201820102010101 +84000100020101018100018d010001000200020001020001000108018700020002010201 +0001000102820002010101850201000100018101000400020105008b0200020002000201 +0201020102018a0002010001000200010201040101008202010286020102000102008500 +010002000201028a01020001020102010201020202040182000102870200020002000201 +840102010201830102010283020102010601840001020102830201020081000281020102 +01040281010281020086000201020001020202810100020001018a000200010001000200 +010085000200020002840200020002820201020302010087010201000201000204028500 +010002000281020184010001000103018200010282020102020284000200020083000201 +020502810102810201810100810002820201028202000283020002018101028202010281 +02018401000100028302000201820102018b010201020100020001020102010201000202 +840002010002830201020101018202000282020102810200820002018401000100010601 +010201018500010001000201028201000281020183010201028202010281020105018202 +010282020102020282010002010281000281020001000202810102830201000102018602 +010201000200860001000201000185010001000200840002000200810001010181000103 +0181020102018c0001000100010001000200020182010201010188020002000100020001 +030181020181010282020102040283000201008200020183010002010101820201020102 +830002000183010002008600010001000102 +860102010002000198010200020002010200020002010200020002010201020001028202 +0001880100020002000102010201810201880100010001000100018c0100010001020102 +0102010001020105008d0200010001000100010002000100010087020102010200010281 +020101010100870102000200020001850102010200018201000201020101810001010101 +008e01000100020100010001000201020081000282020102870201020102000201010184 +000100010282020002020285000200020002850201020102010201010284010001000104 +01810200820001008c000200020002000200020001028302010201010182020002830201 +000101018800010200010001020101018500010002000282020102820201008100020202 +820002010201030281010201028100028102010201010281010202028401000100010201 +830001000101010202810002830200010201028900010200020001000201850102000200 +028202000281020103018902010200010002000200810001020101028201020101018102 +018301000100820001000200840200020002840200020002820201028202010285020100 +020002810201830102010281020104018100018201000282020102020281000201020100 +810200830002010201020101810201040182020102810201050187000200020002000201 +028300020002830201020182010201040182020102810201010183000201020102850001 +0002000284020102000202028d01020001000100010001000100010b0182000100030090 +010001000102000200010002000201000183010001009200020002000200020102000200 +0201000100018f01000201020102010201020002000201 +950200020102010200020102010200010201020100020183010201028102018401000200 +01820102018c010201020001020001000100010301810201820102018401000200018101 +000400010187020001020102000285020102010001050188020001000200010001020191 +000200020102010200020002000201020002010281000102018502010201000101018e02 +000100020001020001000100010282020102010287010201000200010281020102018302 +000200830001000201028400020102018301020102840200020102810201020187000100 +010001000201028100028902010200020002000201010187000200020102000102018300 +020001890102010001000102000102018402010001008400020002008500020002000201 +028101020102810102860201000100010282020102010281010081000181010283020102 +018a01000100010001000100018101028402010201008100020102010088010002000200 +02010282020102810201840102010002040289000200010201000102018a010001000100 +010001020101010102830100010287020102000200020002008102008100028202010283 +020100020202010101028600020002010001840100010001020182020102870201020002 +000200830002000281020102010102810102810201080184020102000201028100020102 +810002010286000200020001020102010181000103018102008b00020002010200020001 +000189010200010200010200020202020187000200020002000101018100018a01000100 +010001000100018201000101018802010201020002000282020102010282000201870102 +000200020102010282010001010193020102010201020102010201000102000200020181 +01028102010001 +980201020001020102010201020102010201000102010201020101018202010289020002 +010001000100010901870001000102000200860002010201000101018100018101000100 +810100880002000201020102019a01000200020002000102010201020100010201020002 +000200020101018502010201020102018100020102810102830201000101018500010002 +000185010200020002810201020183000201008200010203020801820001020102810002 +030281000202028100028202010287020102010201000105018202010201020100020281 +010201028300010001010182020002010281010287020002000200020101018300010201 +010186000100010201008100020202830002000185010002000102840201000102060201 +01010281010282020102010284010201000104018100018a010002000100020100010284 +020102000284020100020101010102840002000102820201028502000100010281020104 +018102008500010001000101018500020001000186010001020001008100020402830002 +000201020200810200820002008400010001028202010283020102010401830001000182 +0100020102810102010283000200028102008100020202860102000100020109018a0201 +020100020002000102820200018101020302830002000104018302000201880102010200 +010001028502010200010202020201010283010200028502010201020186010201000200 +018601000100010001060185000100010001870100010201000102010201018202010282 +020102820200020102850102010001000400810100850001000102010101880201020100 +01000100 +980102010200010200020102010201000100010200020002010281020181010287020102 +0102010201820102018e0100010002010001000200010201000100890100020100010001 +00010201010089010001000201000100028702000201020102018e010001020100010001 +02010201020101010202820102018e010002000201020102010201020102830201020182 +010001040181000101018202010084000100020181010281020001008201000282020001 +010183000100018101000100810102010284000200020086000200020102008100010101 +02028100010101850001000100020102820002008e000200020002010002000200020002 +850201000100028402010200028802000100010001020088000100010001000200850002 +000200020102810100840001000102040285010001020002010284000102010201020301 +820201008500010001000101018300020102840201020100810002010281000285020001 +000200830002000284020100010282020102820201028202010285020100020002830201 +020104018500010001000283020002000100820201028702010002000200020102010002 +028101020102830102000203020100010201008401000100010301810201810102010282 +010002840200020002820200028102018301020102830201020102018300010001010188 +020102000200020002010287000200020001000281020184010201020187010201000102 +01000200820100018a010200020002000200020081000201028400020102018101028902 +000201000100020001830102010288020102000100010001860100010001000102010100 +030182000102820200028102008500020001020003009101000200020102010201020102 +00020002008900010001000201020102 +8f0001020102010201020102010002000188010200010001020001830102000181010285 +020001000100830001000101018100018101000100850200010200010801840200010001 +830100010001008601020100010002820200010101900001000102010201020102010201 +02010201028a000100020102010201020101018802010201020100010281020081000284 +020102010001008301000100010081010082000102840200020002040284010201020106 +018500010001000201028100020202010181000282020002890201000200010001000102 +018100020102810002820200020102830002010201028300020102010281000201028500 +010001000281020102018100010101010201018200010084000201020181010083000200 +020202810002820200028202010282020102820201020102840102000102010283000200 +010401810001010185000100020002820200018101020202810100820001028302000201 +050101020100840100010002820201028102018301020102010201008701000100010001 +028102008500020001020186010001000200020202030002028200020081000282020002 +820201028202010282020102810201030188000100010001020102830201000201028100 +020102810102840200010002010285010200010001080183000200020302810002010283 +000100020302030089020100020001000102018601000100020002820201020102820002 +00830001020101010102840102010201020101028a010201020002000102000181010281 +020104018100010101810001020103008a01020100020001020001028402000102010101 +830201020101018a000100010200020002000283020102018601020002000200 +8102018f010200020102010200020102010200018f010201020002010200010002000100 +010401870201000200010001090187000100010001000101018502010200020181010086 +000200010002008100020102890102010001020102010201028300020001010101028c01 +020102010200020102010201900100020102010201020102010201020102820200010201 +81020104018102018701020002000201028b020102000100010001000100010081010001 +00810100010082020002830200020186010201000200028d020100010001000100010001 +000201028100028202000202028100028202010285020001020102820201020202810001 +840100010001010101008201000102018202010085000100020002010281010085000200 +010002010282010200820002008200010282020002810201890102010001020102010081 +000101018100010301820201020202010083020001008300020002010281000282020002 +850201020100028202010285020100020001870100010002000100810001060181020103 +010100880200020100020002000100810102010201008201000201020100010281010285 +020001020102890201000100010001000102018802010201000100020082000200810002 +8202010203020301830001000183010001008a0001020102010200020002020282010201 +810100040004028201020103018502010002010286020100010002000100010282010200 +830002010291020102010201020001020001000100010001930100020001000100010002 +010201000100010001820100010101810001830102000203020200810200010001018900 +01000100010201020101018e020102010200010002010001000201 +900002010001020002010002010201020102910200010201020100020102010200020102 +010301810001030181000189010001000100010002010201830201020187010200020102 +000188010002010201000200850001020102010101820201020102820102018301020102 +830201000289020102010201020102018101028702010201020102018701020100020002 +01010181000102018a000100010201020102010082000100010085020102010201010185 +020100010001010182000201810102830200020185010200020102840200020002010283 +000200010101830001000102018400020001028202000282020002810201810102020281 +01028702000200010002018a010201000201000102010081000184010001020187010001 +000100010084000200020101018400010001028202010285020102000201830102000282 +020100830002010201020101010089010001000100010002008100010101820201028302 +000100860001000200020081000181010203020101890200010001000100020181010203 +0202018e0001000100010002010001000100010201820002008300020002040281010082 +00010082000102820201028b020001020100020102010001050182020002010283010200 +020302830100020186010201020100020102830001000107018602010200020002010282 +000100810002820201028a02010001020001000200018201020184010001020189010200 +010001000200028102018201000201028200010284020102010283020102010201840201 +020102950201020102010201000200020100010001000200020102018100019301020102 +0102000100010002010002010001020182010201820102018401000100018f0100020002 +0100020102010001020102 +820102019d0102000200020102000200020102000201020102010201020102010201028b +02010001000100010001000107018102018b0102000201020100010002018a0102010201 +00010201000182010001010184000102010281020101018c020001000201020102010201 +020102870102010201000102900201020102000100020102010201020102020284010201 +020103018500020001020104010202810100830002010082000201810100010003018100 +018101028c0200020001020002000102010282020002850200020001008a000100010001 +000200010085000200020002040283000100028302000102030281010281020081000101 +018402010200018a01000102010200020102018301020102820201008600010201000102 +850201000100028302010002820200020602820001028102010801010281010281020181 +010081000202028300020002020283010200028502010001000282020002820201028702 +010001000200018201020085000100010001020181020101018100018901000102010001 +020002830201000202028100028202000287020001000100010204028201000101018800 +010001000102010203028200020087000200020002000282020102820201028102010301 +890001000102010001000202028200020081000202028100028102010101830002000182 +01020183010201028a02010201000200010001020102830102010202028d010201020001 +020102000102000286020002000201028602000200020002840201020102890201020102 +010201020182010002850200020001020102840002000200840002000100020001018500 +01020002000100010181020105018302010001020182000100 +9f0100010001020102010201020102010201020102010201020001020002010201040181 +000106018b02010002010201000200020102018502010200020184010201020183010201 +0201028c000201020001000201020102018101028102018a010201020102010201000101 +018202010285020001000102020281010201028201020001008502000200020183010002 +018501000100020101018302000100020003028501020100010282020100010083010001 +00810001890100010002000102010202028100028a020102010002010201000103018400 +010001020702010101028901000200010002010001020104020101830200010083000100 +018201000102018d00020001020002000102000102010101050281010282020002810201 +820100020302810102810201070182000100850002000100020302830002000202028200 +020103010102810102020203010102840002010002020207018300010001040181020181 +010283020100028402010001028102008100028202010082000102820201020202010101 +020100860102010001000103010102810102820201028702010200020001020102810102 +8a0200020001000100010001070102028200020001008102000100030281010201020301 +870001000100010201010183020102010101860002000100010201020101010281010285 +020102010201810102010283010201028102010101010202019302010200010001000102 +010200010001000102010101050281000202028500010001000184010001020101018302 +010201020181000184010002000188010001000102000201 +8101028102019001000102010201000200020102000100018a0102000102010201000102 +84020001000101018100018b010201000100020102010201840102000201860102010201 +0201020183020100020202820100018a0102010201020102010001010181020101018c00 +0100020102010200020102010101010201018b0001020100010201000102018601020102 +010201810100020082010201820102018101008100010101010081010283020102018801 +020100020002000103018100018101008100018101028602010200010201020101028301 +000102820200028102018401000100010101860002000200020083000200020102810102 +810201850100010201020302830001020186010201000100018301020102820201028102 +010101830001000283020102010101840001020102040202018102018101020402020186 +000100020002008500010001000101018200010085000100010200810002010281010285 +020002000100890002000100010001000183010201020202010182020102030201008902 +000100010001000201880102010001000100018701000200010001020202810100810002 +880201020001000100028202010283020102010501830001000201028101028502000200 +020082000200010004028101028302010201010184020100010083000200020202810002 +05028100018501000100020182010001020181000103018400010002018e010001000100 +0100010002000201028f0201020102010002010002010001020183010201020202850102 +010201028102010101820201020202850102010201028402010201008400020100028602 +010200020001030184000100010082000201810100010085020102010201030188020102 +010201020100 +820201020102920102010201000100010200020002010200020101018302000201820100 +0101018c0001000201020102010201000101018702010201020102018401020100018601 +02010201000103018402010002000200870102010001020002a202010201020002000201 +020102010201000102010201000100010201020102000201028102000200840102000201 +030182000102810201030182020102820201028202010202028101028b02010201000100 +010001000101018102008300020002840201020102830201000203020101020286010001 +000102010101810002890200020002000200010082000102020286000200010201028202 +010285020100010001010183000100028102008300020001040186020102000200020202 +010101020101010281010201028900010001000200010002850200020001008700010001 +000100018101020402810102010282000200810001010182000100850001000200020202 +860002000100010083000200018101028102018201020107018102010201010003018100 +0182010201840102010002810200820002000100820100028202000203028e0001000201 +000100010201000100018101028302010002020281010203028701000200020001020102 +880100010201000100010101820200020302010082020002820200028102018601000102 +010201010101020100890102010200010001000103010102890002010200010200020083 +000200028402010201028402010201028102010101820201028602010201020102830201 +020103010102820102010101910201020100010002010001000100010001028302010001 +82010001030101028301020100840002000200850002000100018301020102 +8102018701020001000100018d0102010200020102010201020102020284010200020104 +018100018901020102000102010201840100010201870102010201000102010201018402 +01000100860001020102010084000201000102018a020102010200020002010002008702 +010201000100010101830200020084000102010081000185010001000102020201008701 +000100010001000100840100020002010282000201830102010202028101020202010101 +028300010201010101008401000102018501020002000285020100020102860200020001 +000102018100010301010283000200028202000204020101840001000200860001000102 +01028c020002010201000100010002018201020183010200018601000200010002020284 +01020100028b020002000100010002000102010282000200830002000108018600010001 +000100830002010281020082000201010101028400020002008100010301820001008200 +010284020002000285020001000102810200870001000100010001830100020101010102 +830102000101018500020100020183010200028202010282020102820201028502010200 +010203020101810201020181020101018300020102010282000200020085020002000102 +820200028702010201000100010101810001830100010286020002010001028202010201 +028200020086000200020001020102860001000201020182010201020182020102810201 +010183000201020502880100010200010200028402000200028602010201020102860201 +020100010286020102010200028802010201020102010206028301020102810201850100 +020102010101860201020102000102018300010001820100010701840001000100 +81010201028a010200020102000200020183010201028602010201020001880102000201 +0001020103018402000201028a0201020102010201000200940001020100010001000201 +020102010001000200020102830102000191010002000100010002010201020102010201 +010102000102910100020001020100010001020102000200028602000201020100830001 +000103018200020103018102018301020002820201028202010284020002000202020401 +810001010101000101010201010802870100020002010200810001010184000100010285 +020100020002850201000201028302000201810102820201028202000285020100020002 +810201060185000100010002020201018202010201028100020202010181000282020102 +030201000202020188000100020002000100830001000103018200020084000200010282 +020102020281010281020102010102860002000200010081000102010102830102010282 +020102010282010001850100010001008100018401000201028302010201020182020102 +820201020202870001020001000100810002020281010201028c01020001020100010001 +000100810001870102000100020002830201000282020002030281000101010102010184 +000200020084000102010202028300010002010281000201028100028102008300010002 +820200018601000200020001810102810201820102018701000102010002018201000202 +020101850201020102018301020102810201010189020100020102010200028602000201 +0201028602010201020102870201020102010201010101028d0102010201020102010201 +0201028102010201010282010201070181000184010001000102010000 +820201020102810102910200010201020102010201020100010201028302000201830100 +02010101010081010281020101018a020002000100010001000201028201000285020100 +020002010201000101820200020202010189000100010001020102018601020100010002 +850200010200018101028302010001810102010281010202028101008300020102010282 +000201010181020082000200820002000100890201020001000100010282020102030281 +0102010201018c0200010201000100010001000101018400010201020102810001010101 +020100030284010001000102018600010001000200870002000200020001840100020002 +850201000200028302010201010183020102010501010001018100018301020002840201 +020002070281000203028101028302000100870001000200020002010285010001000100 +870001000100010001810102030281010203028101028202010283020002008600020001 +000102030289000200010001000201028202000281020106010100810201830102000282 +020102820201020102810102060203010502810102840201020002840200010002810201 +810102810201810102020282010002820201020102860002010002000286020100020002 +008100028302000201810102820201028202010284020102010282020002850201000200 +028202010284020001000283020100020102010101028100010201010281010202028100 +028202010286020100010201028402000200028402010201028502000201020104010102 +900102000201000200020102010201020102870201020102010201840100020102870201 +02010201000101018d02010201020100010201020102010b010000 +85010201020102840200020002820201028e020001020001020102010001020102810201 +820102018201020187010201020001000201028201000286020002000200028102008400 +020002008100028302000200880002000200010201020402810102040281010282020102 +820201020102830002000202028101008100018101020202010083010201020202810002 +030286000200020100028502000100010286020102000200028102018101028102008100 +020402860002010201020081000101018100018101008100028202010281020084000201 +020085000200010002020202008201000101018200020081000201028500010002010282 +0200028f0201020100010201020002000200010085000100010001810100010001010202 +010081010201028101008100020302020085020100010002050283010002000200030207 +018400010001000200810102810201820100018101020202810102820201028602000201 +000200020082010002010282000201840102010200830001000181010084000100020182 +010002850201020102008100020102830102000204028300020002870200010001000102 +850201000201028702010200010200020202810002820201028802000200020002000282 +02000283020100020202820100018b010001000100010001000102860200010002000285 +020100010002810200850001000100010101810002030282000201810100850002000200 +028c02000200020001000200020002830201020102018202010286020102010200028a02 +0102000200020001000101018a0201020001020102010201870102000201020102870201 +020102010201010184020102010201020201010288010201020102010201850102010002 +0102018100010201 +01008702000201020102018f010001020102010001020002000201028902010201020102 +010200810002040283000200020202010001028801020100020102000281020183010201 +020202010102028500010201020087000200020102010286020002000201020302830002 +01020a02850102010201020602810002010283000200020c028101020302810002020201 +018202010282020002030281010282020102810201810102040201010302850002010200 +028202010083000201028102018301020002820201028502010200020189010201000200 +010002008100028602010201020002850201020100018201020185010001020002010281 +000208028201000202028100020302810002820200020102810102010285010002000200 +830001000284020100010202028101020302810102030284010200010087000200010002 +000205028101028802010002000200010085000100010001840102010201850102000200 +028202010284020102010205028500010201000206028800010200010201000102018400 +010001028202010282020002870200020002000200890002000100010002000188010001 +00010001000101010102820102010101820201028a020100020002000200020103018402 +010201028402010201028202010281020183010201020402880102010002000201028402 +01020102890200020100010002000284020102010281020101018202010202028c000201 +000100020002010201028102010101870201020102000200810002030283010201008900 +0201000102010201008e0002010200020102010200020102010101810001 +020182020102020281000186010200020002018401000200028a02010201020001020102 +018101028c020102000102000200010002008a0002000200010201000200810002010281 +0102860200020100020085000200020102880200020001020002018b0102010200020100 +020002000200880200020002000200029802000201020100010002000200020002000200 +020002000102010281000208020200810102020201008402000200020302810002010201 +008402000100020302010082020002010201000302820100020102890002010002000200 +020002000102020081010281020086000200020002008100028a02000200020001000200 +028202000201028101028302000200840002000200840002000200840002000200010001 +020100830200020086000100020002000200010283000200020102810100840001000100 +820002000300010201000202010002020100010281010084000100020002008102008400 +020002008600020002000100840002000100820001000200810100010081020086000100 +020002008400020002008600020002000200880002000200010002008500020002000183 +010002008200010082000100030082020002030284000200010201028c00020002000100 +010001000100810001820102010101010281010283020102018501000100010201028401 +0001000103018f0200020102000100020102000200010283020002000100010283010200 +028402010001028202010202028101020202830102000181010284020002010001008102 +010101810201810100830002010085000102000200010082020002810201010182020100 +8800020102000200020082000201010104028e0001000201020102010002000100010201 + +810001010101020301830200020102010102810001910102000201020001020102010201 +00020102020281000202020101820200020102810002860201000100020181010202028e +010200020001020002000201000201850102000201000100820201028b02000201000201 +0201020102020289010001020102010201020602820002008100028202010202028b0002 +010200020102010200020302850002000200020502810002840201020001810102010281 +0002020281010201028101020902810102020281000205028101020a0281000202028301 +020002010283000200020302010182020102850200010200028302000200010004028300 +020002040281000201028200010207028101028202000202028401000201020102810102 +05028100020e02820100020f028400020001020202810102060281000282020002040281 +000205028100020102810102010283000200020102010002028200010006008202000282 +020102020284010200020001008101028302010201820102010a01820201028402010002 +018301020100850002000200018101000200810100820001020102810002840200020102 +810200810002840200020002010282010200880002000200010201028202000282020100 +010087020002010201020089000200020100020102000100010282010001810100010002 +018502010201020088000201020002000200020081010285020102010200970001020002 +000200010002010201020102010201000102010201 +030183020100028202010202029200020102010201020102010002010201020002860201 +000102000281020101010102880001020001000102018f01000102000200020001020100 +010001880102010201020100018601000100010001820102010401820201008800020001 +000100020001008201020090000100020002000100010002000201020001008a02000200 +020001000200010101860002000100020181010001008302000100040081010005008301 +020100830002000287020100020002000290020002000200010200010002000201020086 +000100020002008300020002820201008200020081000281020083000200028602000200 +020002860200020002000283020002008100020302010002020100030284000200020084 +00010002008100028202010002000102820002000100010203008101028102008a000200 +010200020002000283020002008100020102010082020002850200020001020102030002 +020100820200028702000200020002008500020001000283020001008600020002000200 +810002010201008502000200020083000200020102020084020100010081000281020002 +008302000102830200010201028601000100010002020282000200820002000100850200 +020002008200020101018302010001820100028302010001820100020102830100020001 +008401000200018201000101018102008100028202010282020100810002820201020102 +010086020002010002008a00020002010200010001028202010281020084000100010282 +020100010086020102010201000200820100010301030087010002010201020082000102 +8c0201020102010001020102000282020002820201020602850102010001020202850001 +020102010101 +8601000100010201840100020102010286000102010201028a0201020102010201020102 +830200020182010201010101028301020102830201020001008802000102010001000191 +010201020002000200010001020102010201840100010201020184000100020181010282 +020100850002000200028102008300020102840201020100810002010287010201000200 +010287020102000200020189010002000200010001020202810100810002850200020001 +028402010002008200010201028601000102010001010181000102018300020002040282 +00020001008f020100010002000201000200020002008300020002020285000200010002 +040201000102010081020084000201020081000203020100810102810200830002000202 +028100020a02830002000281020001008202000202028100020802810002040281000205 +028300020002820200020102810002020281000282020102020201000202810002020281 +000281020081000201028101008100028702010200020001020102830002000207028500 +020102000286020102000200020102810002810200010085020100010002820200020102 +810002080281010201020200830201000283020100028702000102010200020102810102 +820200028302010201850102010200020102840102000100810002860200020002000281 +020081000281020082000100010001028101000100010285010001000200010082020002 +86020102010002008a000201020002000100010287020002010201000288020100010201 +020001030184020001000187010200020100010284020002010201028100020102850102 +01020102010283010001020302830002010202020101810201 +810001820100018301020002020282010001890100010201020102010284020002000182 +010201850102000201028402010201028202010281020090000102000102010200010201 +020102000101018f02010201020102010200020002010201820100010101810201030181 +020103010102820102019201020002000102010001000102010201000102020292000100 +0200010002000102010201000100020001008a0201020002000200010002890201020102 +010200010201020201010082010001020184020102010286020002000201028702000200 +020002000200850100010001020102820102000100820201028302000200830002000283 +020002008200010283020002008700020002000100018101028202000282020002810200 +020002028300020002020282000200820001028202000203028100020402010002028500 +020002010201028100020102810102820200020402840001020002840200020002020282 +000200810002820201008100020202850002000201028402000200020202830002000202 +020100040201008302000200810002010281000284020002000202028500020002000284 +020002000201028201020088000100020002000200860002000200020001000202010084 +020002000201028200020001000102850002000200028102008700020002000201020102 +830002000203028200010203028201000282020002820200020302830002010283020100 +020202810002010283000200020202830102000282020002840201020102840200020102 +02028100028c020102010001020001020100028202010201020100020282010200010001 +028101020202840100020002810200830002010202028101028c02010201020002010001 +020102 +040186000102010201020102830001020187010200020102000282020102830200010284 +0201020102830200020182010201830102010283020002018b0102000200010201020100 +0201028101028802000102010001020181010201028a0100010001020001000201030182 +020100870002000102010002010281010284020102010287020001000100010282020002 +02028a010001000200010001000281020102018400010201028102000100010284000200 +010088000200010001000100020081010002000201840200020002850201020002008200 +020184010002000283020001000100850100010002008100020302010083010001000300 +810200010083020002010101830001000183010001000100010282000200830002010284 +020002000204028100020302810002020283000200028302010002820200020102830002 +000181010201028201000282020102010281000281020183010200028602010200010002 +010281010283020001020202010001028401020100020402890001020100010002010201 +020100020284010002000208028100028102008100020202820100028202010201028100 +020202830102000282020102010281010205028100028402000100020102810002860200 +010002000201028100020102810102860200020002010201028300020002050281000203 +028500010002000282020102820200020502810002010281000283020100020502810002 +020281010282020002050283010201028402000200020202810002860201020102010286 +02010201020102020283010201020b028101020302810002050284000201000286020001 +00020102010281010201020001 +8101028302000201860102010002010202028d0002000201020002010201020002840201 +0201028402010201028402000201028102018401020102018101008d0002010201020102 +0002010200028e0201020102010201020002010201028502010001000104018100018601 +0201020102018a0100010002000200020001050103028600010001000201010101028201 +020101018102010201010284000102010287020102010200010201028100028502000100 +010282020001810100010084010001000101010102050183000200020102820002018201 +00010701820200028402000200028202010206028a010200020001000200020086000100 +010001008200010087000201020102010283020001020302810002850200020001008200 +020183010001008300020002820200010301820200018101008700010001000100018201 +00018d010201000200020100010002010283020002008100020202010181000203028100 +020102810002840200020002010287010002000100010201028101020102810002040283 +000200020202810002010201008402000100028402000200020102010102008302000200 +030083020002008700010002000200028902000102000200020102010282010002860200 +020100010282020102030281010206028100028202000204028100020602810002820200 +020902810102010281000206020100030281010282020002020282000200830002010202 +028801020100020102010284020002000204028300020002010281000201028300020002 +0502830002000205028300020002030281010003008302010201 +8b0001000100020001020102018301020102820200018301020002830200010285020102 +000201880102010201020001028202000283020102018701020002010201020202820102 +018301020102830201020187010201020002000201028300010201030182020001030182 +000200010084020002010281020101018900010002000200020001010101028101020102 +840102010201020187000200020002000103010102880102010201000200020102810102 +010286010200010201008100010301810001050184020002000283020102010201010284 +000200010087000100010001000181010083000200020102910002000100020001000200 +010200010002008300020001010181000102018b00010201020102010002000204028101 +028302010200810002050289010201000100020002008600020102000201810100870001 +000100010002820200028202010282020102810201020184000100010081000288020100 +020002000102870201020100020002030201010502830002000183010201028202000283 +020001028202010081000202028800020001000200020086000200010001008900020001 +000100010001010103020100030201008102008500010002010202020701840001000201 +820102018401000201028702010001000200028502010001000102018300020102820200 +020d02810002060283010201020102830102010201028200010284020002000282020002 +810201810102010284000200010201028300020102840201020102820201020e02810102 +02028100020f028100020102810002010283000201020102 +810001840100010001820102018301020102820201020102010101028600020001020001 +8501020002000282020102890201020102010002010282020102850200010001028a0200 +01020102000200010201028c010200020102010201020001028802010001000201000182 +0100010201870201020002000102820200028a0201020102010201020102880201000100 +010001008e00020002000200010001000200010001000102840001020102020281010282 +020102820201020302010086020001000100010101810001010182020001010182000100 +020084020002000203020401840001000102830200020001000402840001000200020081 +010281020187010001020102000101010100010101008501020102010286020002010201 +020302890002000201000100010281020081000282020002810200820002008800020100 +010001000103018100010401820001008400010001008200010288020100010001000100 +040001020100810201010186000100010001008300010001010101008101008300010200 +830001000201028300020002010201000201830201020001008202010283020002008400 +020001000200830100010002008102010101820200020202810102820200028902000200 +010001000100020004018500010002010284020102010001008501020001000101018200 +020001008a01020001020102000102008100028502010002010284020100020001008501 +00010002000100820100018201000182010002840200020102840200020102020203008e +01000100010001000100010002010201028e000201020001020002000201020002020201 +00020281010282020102820200028202000204028a000200020102000201020082000102 + +010081020001008101008700010001020102018201020181010084000102010287020002 +010201020183010200018101028202010284020102010201020201010287000200010201 +02010201820001028c020100020002000200020002018101028702000100020102010301 +840001000200820001020102010181020181010295020002000200010001000201000200 +020002000100028b02010201020102010001000101018202010203028400020001028202 +010203028400010201028102010301830001000186010001020100020302810102810201 +020186000100020001008400010001000200060282000102820201028402000201028402 +000200028102000100860200010001000182010001810100830001020103010802010104 +020100880200020100010001028202010202028100010201890001000100010002000201 +028100028202010282020102010281000282020102060282010201020184000200020085 +000100010001030182020001840102000102810201810102840201020002070201008602 +000200020002860200010002000283020102010201810001020182020002820200028202 +000285020100010200890002000200020001020106018400010001028102018301020102 +8502000201020081000287020100010001000101018b0200010200020001000201028502 +010002010282020002830200020185010001000200010083010001000100820200028502 +000200010001008101028402000201028502010201020109018402010001028302010002 +840201020002840201000102010287000201020102010281020001000101920001020102 +01000102000201020002010200028302010201 +810001810100830001000104018202010201028201020083000100028602010201020102 +840201020102820200028402010001028102010101020201018c02010200010200020002 +00010201028c000201020102010200020001028302000102810201040101000301010201 +0189000100010002000200019e0100010002000100010002010201020002000200020001 +000100010001020103018402000100028102018101028402010002008100028202010282 +020100870001000100010001010181020189010001000200010002000100810100850002 +000200028202010081000101018100010101810002820200020102010087020001000200 +020089000200020002000100010101820200010201850001000102018101020b02840002 +000200810001820102010201810002040282000100830002000285020100010001080102 +028101008600020001020002020281010086000100020102000200020282000201030181 +0001010182000100810001850102000200010101820002018101020a0283000201028502 +010201000281020082000200010081010003000101870001000200020002020288000200 +0200020002008a0001000100020001000100850001000100010201820200028202010282 +020100820001008100020102820002010201810200830002010281020187010200020001 +0001850102000102008900020002000100020002810201820100028e0201020100020002 +000100010001000100870100010002000100830001000183010201008100018501000102 +00028602000201000102820200018701000100010201028402010001008a000200020002 +0100010200880001000102000100028b020002010201020100010200 +850102000201000100870100010001020102830201020182010201830100010286020102 +01020102840201020001820100028402010201028d020002010201020102010201020194 +01000200020001000100010201020002010201020102010102020101028b000100010002 +010002000200890002000100020002000202028d01000100010002000200020102018201 +00018d010200010001000100010001000186010001000201020102810002820201020402 +010182020102810201010188000100010201020001840102000100810002040202010102 +810102810201820100010101830001000284020102010203028101028202000282020102 +810201810102860201020001000101018300010201840100010200850002000100028102 +01820100020502830102000201028300020002860200010002000201020601820001008d +000100010001000200020102010281020184010201000185010001000100830001000101 +018202010282020102850200010002008400010002010201010002010102010182000102 +820201028102008100028402010201020202010084010002000282020102010201018100 +02810201030101008401000100020202820001020302820002018101028202010202028a +010001000100010001000186010201020002010101010281010203020101810201840100 +010201860102010200010202028100028202010204028801020002000100010291020102 +0001000200020100010002000201028402010201028402000200028c0200010001000100 +020002000103010202820102010101010293010201020100010001000100020102010001 +0201010185020002010002030284010200020101010102010101020101810002 +870001020102010201820100010201820200020102010101020101820201028202000286 +020102010201028202000285020002000102810201920100020001020001020102000201 +0201020102020284010201020101018d0201000200020001000100010001850100010200 +018501000200010201028500020001020094000100010001020102010001000200020002 +000201860100020102010287020100010001000102010102810100830001000201028100 +028202000201028301000200900001000100010001020001020100020002850200020100 +028602000200010002820201008600010001000100850001000200020202880002000102 +010001028102008300020001010181000202028400010001008900010001020100010002 +020281000202028400020001028602000201000102820201028902000100010001000100 +850001000100010201810001030181000282020102830200010083000200018501000200 +010205028400020001008800010001000200010281020101018300010001820100010101 +8a0201000102010200020002820201020202820100020102010084020001000182010200 +830002000289020100010001000100010101810201010181000282020002040282000200 +810002870201000100020001050182020102010281010282020002820201028102000100 +810100820002018101028402010200028202010285020100020002820201028502010200 +010284020102010282020102880200020002000102008300020102820201029002010001 +000100020002000102010201028102010101840001020001940100010201020100010201 +020001020002000201028b02010201020102010201020182010002890201000102000100 +020186010002010200028a0201000102010001020100 +8802010002000200020101018700010002010201028b0201020102000201020001008300 +020002870201000201020002840201020002010284000102010281020101019102010201 +02010201000100010002000200028102008b000100010200010002000201810102810201 +85010201020102010201000102920100010201000100010001000100010201020102018a +020102000200010002000101019002010201020102000200010002010201028202010282 +020002820200028102008500010001020102018200020184010201000205028600010200 +010002010201000201810001020181000201028300020102880200020002000200018301 +000102850200020002008100010101810201060182020001850102010201008200010205 +028100028c02000200020002000100020102820201028402010200020102850001000100 +018401000100018101020102010182000200810002820201008100010101820001008600 +020001000102020281010201028101028102008300020002840201000100810001050183 +000200028302010200810002060202018202010286020100020002008700010001000100 +010201830001000202028200010201028100020102820001028402010002008800020001 +00010001008c000100010200020001000100028202010203028700020001000102018901 +000201020001000201850102010201028202000201028101008900020001000200010002 +830201020183010201029b02000100020001000200020002000102010001000201000100 +020001040101008301020102880201000100010201028a02010001000102000200029202 +010201020102010201020102010201020002870201000102010001880102000201020002 +01 +930002010201020001020100020102010200020102820200020102880102010002010200 +01820100028402010201028202010284020102000201028b000201020002000200020001 +8101008100028b0200010001000200010001029302010201000200020001000100010201 +020002010101010283010200028f02010001020102010201020002000200880002000100 +0100020106018b0002000200010001000100010101820201028902010001000201000102 +810201810102020285000100010001820100028102010101850002000200028202000282 +020102020281010282020001010183000100010101820201028802010201020001000201 +028100028302010201010182020002870200020001000100020001018500020002010202 +028101020102860002000200020088000200010001000100860001000200020081000201 +028500010201000184010001000101018300020002040285000200010201850100010001 +0282020102070286000200010001008300010002010281000102018c0001020100020002 +010001000204028600020002000200850002000200010101820001020302030101008701 +000100020001028202010204028600020001000102010282010201820100010101830001 +00018201020185010002010201810100850001000100020102820001028102018e010200 +020100020102010002000102820201028302010200850002000102010201010290010001 +000200020001000100020100010284020102010285020100020001860100010001020103 +018400010201020102850001020102010101960200010001000102000200010001000100 +010200020002830200010281020101018402010002018a01000201020002010200028202 +0100 +860201020102000189010200020100010002018201020182010002010201010102820102 +018301020001810102010289010201000201020001028f02010201000102010201000200 +020001820102018e01020102000200020002000100010202028501020102010284020102 +010282020102820201029002000102000201000100010001000102018101020102020183 +020001009000020002000200010001000100020001028202010084000100010092000200 +020002000201000201020002000200028802010001000102010089000102010002010200 +028402000200028b02010002010001000100010084000100010207020101810201880100 +01000200020002820200018401020102018101008c000100010201000200010002008400 +02000200840002000102860201000200010203028101028202010202028a010201020102 +01000100010201820001028202000201028200010203020100810201010101028a010200 +010001000201000205028101028702010200010201008a00010001020100020102008100 +028202010083000200020102820002010101020281010282020002880200010001000200 +010401810001010102028300020002830200020084000200010287020100010001000101 +018500010001000183010200020102870002000200020102830200020003008102018201 +02018f010201000200020001020001000100028102000100900102010002000200010001 +000200020102840201020102820201028d02000200020001000100020102010301010282 +01020102018302010002810201a801000100020100010001000100020102010201020100 +010200010001020002010200020002010002018301000201830100020187010001020100 +0102 +890200020002010200020191010200010001000100020102000201020002860201020102 +010282020002820200028402010201020102830100010201028601020001020102840200 +01000286020002000100019401020002000200020002000102000200020102010201028b +000102000200020002010001830102010206028900020001000100020002020288000100 +020002000102030284010201000284020102010083000200018101020102010082020002 +030281010284020102000101018600010002000102040201008701000100010001008300 +010201070181020082000102030201008402000200028702010200010001008700020002 +000100010201820001008100018501000200020085000200020002890200020001020002 +000201020300860100010002000281020183010002010301810001010184000100020082 +000102010282010002010282010201020101020401820201020202860001000100020083 +000200010101820001008200010089000201000100020001020102010089020002000200 +020002008800020001000200020081000203020101820001008100010101830001000283 +020002018101020202810102820201028302000100870002000100010001020182020002 +0302810002040203019002010201000100010001020001000201028b0201000200020002 +0002010283020102008c0002000100010002000200020001008901000200020001020002 +8602010201020102840200010001840100010002ae020102000201000200020100020002 +000201000100020002010201000100010002000201000102010201020002000286020002 +01000102830201000287020002010201000182010001 +810102810201860102010201020184010002010001008301020102010201018102018401 +020002018101028702010200020001028102018301020002850201000201029a02010200 +01000201020001000102000200020002010201020102018d010200020002000200010001 +020103018202010201028a00010001000200010001000100830201000285020100010001 +85010201020102820201028402000200010101820001008100028102008b000100020002 +000200020002840200020102010285010200020001820102018201000185010001000102 +0102820100028a0200020102010201000102020286000100010001008400020100020102 +810002880200020100010001008100020302890102010002000200010081000101018700 +020001000201028502010200020081000201028100020302830102010201028101028102 +0103010102810102840200010001060182020102820201020a0283010001008100020302 +830001000187010201020102010201028501020001000104018102018901020001020001 +000200850002000200020102820001008700020002000200028102018901000100010001 +000100810001030182020002840200020002810201860100010002010283020100010601 +8300020102840201000102010282010200810002820201028a0201000100010001020102 +810200820002018c01000100020002000100020002830201000183010200028202010284 +020102010284020102010291020100020001000100010001000200020002810201020181 +020182010001830100010287020002000200010083000201020202820102018a01000201 +000200020002010101850201000100028802000100010201000189010200020102000201 +02870201020100010201 +840002010201860102000201020101018302010201840100020102010281010202028400 +020102018501020100020183010001028202010283020002018101028302010201010183 +000100020202820102010101940201020001000201000100020102010201020102010601 +8402010201028a0200020002000200020002860201000102010205020100880200010201 +0001000203028100028202000103018b0001020100010001000200020802840002000100 +830001000182010201010106028601000200020002840200010001030182000100810002 +070281010205028900010002000200020102010281010087000102010001020086000100 +010002008300020102020281000287020102000201020001008201000204028200020103 +018300010201820100010101840001000102810201830102010204028200020182010201 +050103028100028802010201000100010285020100010001830100010085000201000102 +8102008a0002000200020100020002010282000102860201000200020183010002008300 +0200010301820001008300010002020281000201028301020102820201028d0200020001 +02000100010001000101018402010001020402820002008300020002830201000104018b +020102010201000200010001810102840201000200830002010284020002000282020100 +8c0001020002000100020100010282020102930201020100010001000100020002000100 +01020101018100028202010202028e010001020102000100010001020002810201010181 +02010101820200028a02000200020100010001028702000201020002018e010201000102 +010201000102010002 +870201020102010001010181000101018102000100850201000100018301020001010182 +020002820201028402010201028502010200010282020102850200020100020102810002 +820201028c020002010002000200020002018101028102018e0102000200010001000200 +02000100020087010002000201000201028401020002010101880200010201020002008a +000200020001000100010203028201000185010200010002830201000102018500010201 +020185010200020002820200028302010201810102020286000100010001028602000200 +010002020282010201830100010087000100020001000102018300020102060283010201 +02820201008300020102820201008100018401020002008a000100010002000100010283 +020002008500020002000202028600010200020002040281000101018800010200010001 +0001010183020100018a0100010001020102000102020283000200020302810102840201 +000102820200028402010001008300020002840201020002010201010100030188020100 +020100020002820201028202000203028400020001000100010287010200010002000101 +018602000100010001860100020002010206028800020001000200010083000100010501 +830002000203028500010002010085000100020002810201820100010101010201008202 +0002820201028c0201020001000201020001000183010201028202010202028101028402 +000100028c02010200010001020001020102840201020102820200010101850001000100 +0181010284020001000201028a0100010200010001020102020294010001000102000200 +02000102010201020102010282020001010181000286020102010201028a020002000201 +0200020102 +8a0002010200020102000201020181000101018102018601000102010201810102010283 +010201028202010282020102820200018101028102018301020102820200020102810102 +840200020001010183020102018a01000200020001020001008b00010201020002000200 +020081000183010001008700010002000200020102830001020002000102880002000100 +010001020402870002000100020002010284000102000282020002810200010082010200 +850002000200028102018201000181010289020102000102000100010501850001020002 +000100820200028202000201028101028702000200010001008100010101820002008a00 +020002000200020102008600010001000100810002020281010201020501820200018601 +000102010001830100020083000200028302000102010283010001008100028602010002 +010201050181000104018100010101010286000201020001008300020002840200020001 +050181020186010201000201029002010200010001000201000100010002018301020100 +8300020102850200020001008e0002000200020001000102010201008500010002000288 +020102000100010001020181000202028701000200010002008900020002000200010001 +020184000100010284020001020086000200020002008900010002000102000201030183 +0201000283020002018d01000200020001000200020001008100028a0201020001000100 +020102020281010282020102810201870100010201020102870200010001000102820200 +018401020102019601020102010002010200020002000100010001000200018401000100 +02010202018a020102010001020002000286020002010200028402010001028e02010200 +0201020001000200010201 +870102000201020001820102010701810200020082020002820201028b02000201020002 +000102000282020102820201028102018101028502010200010282020102960200010200 +020002000200010001000100010001020102010288010201020102000201820100018801 +020100020002000202028200010201028601000102010002010288010200010001000102 +8c020102000200020001000100018301020102810201820100018a010201020102000100 +01008300020002810201010186000200020001008a00010001000200010002008a000201 +000201000102010081000203020100020182000100810002030201000201840001020102 +070284000200010089000100010001020100018301020002820200020402860002000102 +010282020102820201020102810102860200010200010287020001020100010086000100 +010001028202010282020102030282000200840002000102870200010002010002850201 +020001028402000102018601020102010001820100018401000100018601000200020002 +070287000200020002000282020102810201820102010201810201850100010001000100 +010285010201000200850002000200028102018201000287020102000100010001000201 +820201028602000200010002010201008302000102810201020182020102850201020001 +00850001000201028102018b010200020002000100020002820201028202010285020100 +010001830102010284020002000283020102010201010283010201020102010002018202 +0102860200020102000181010286020102010201028a0201000100010002000100010089 +020100020002000102018301020102860201020102010086000102010001028b02000201 +0200020102000200 +8402000200028f020100020002000201000201000100018d010001020001000102010200 +010083000201028102018801020102010002010283020001028502000100010201028600 +020001000100820001020102810102010202019402000200020102000100010002000100 +010002000188010002000100010201840100020002010281000292020100020002000200 +020001000200020102018401020100020302010082020001010104008302000100810002 +82020102020281000281020101018100018f010001000100010001020002000200028202 +010281020081000286020102010002008600010001000102810200840002000200810002 +070284000100010083000201020102050189020001000100020002008400020002000200 +010286000102010001028602000200020102830200010081000204020101810201010181 +000101010202810002840200020002830200020083000200028102018201000103018300 +02000282020002020283010001008100028f020100010002000102010001020102008400 +020002000200020283000102010201810002010283000200028202010081000103018100 +018101028202010283020002008400020001000200010288010201000100010001020187 +000102010002000203020100850201020100028102010201010083010200028b02010200 +010002000200020001008302000102820201028402010201028102018201000282020002 +870201000100010002820201020202810002860201020102000101018102010201810200 +81000183010200028f020102000201000100020102010201029802010201020102010002 +000201000100010001000100010002810200860001020100020183010002018201000283 +0201000282020100 +8701020102010002018d0102010201020102010001020100810001840102010201810102 +820200020102810102820201028202010284020102010201028101028202010201020201 +810002820201028202010201029600010001000100010200020102010001020102010201 +020102010182000100820001020202850102000200028302000102840200020002840201 +020102010292010201020100020002000200010201000200018101028402000100010201 +850201020102018401020001028502000201000283020001028202000103018402000100 +020202830002000201028101028202000282020102810201010181000102018700020002 +0002000286020002010002010101820201028a0201020100010001000100830001000102 +018502010200020089000100020001020102008200010202028100020102840102010201 +010182000201810102810201030101000201830002010282020002820200028202000285 +020100020102010201008301000201020182020102830201020181010290020102000201 +000100010001000200010087000100020102010205028a00020001000200020002008800 +010001000100020101018300010001010189000200010002000200028402010201028502 +010200010287020001000100010087000100010201000201028400020002008900010002 +000100020002810201860102000102010082000102820201028202010282020002810201 +010187000200020001020083000200028202010284020102010282020102890201000100 +010002000282020102810201850102010002010101870201020102000200010088010201 +000200020002810200010085020002000201820100028802000200020102010281020184 +01000200028802010001020100020183010002018201000288020100010201000102 +940102010201020102010001020001000102000100018401000102008200010201028a00 +020100020002010201028302000102850201000200028202010201028101028202010284 +02000200018301000102040282010201010184020102010201028c000200010201000100 +010201008c000200020001020001020100020102850102000201028d0201000200020002 +0002000201028f0201020100020002000200020001000190010002000200010002010200 +020002010201020100810201020189020002000100010001028302010200830002000201 +028101028902010201020002010200810001010184000100010204028301020102820201 +028602000200010001840100020102020281000103018700010001000200028202010284 +020102000201028100020402910102010001000100010002010002000201028302010001 +8a0100010001000100010201810102010201008302000102820201028202000281020182 +0102010101860002000102000203028300020002810201030183000102018e0102000200 +010200010002000201008100020102810102010204018202010284020102010085000100 +010001810102820201028202010203020100810200830002000283020102010701830002 +0102860201020002000288020002000200010001840102010001030101028b0102010002 +010002000200020102890001000200020001000183010201028402010001028a02000200 +01000201000102820201020202040181000182010001810102880201020102000100028b +020102010002000200020102930201020102010200010200020002000201000102860200 +010002000283020100018701020002010200028e020102010201000201020002010200 +8d0200020102000201020102010001890100010001020002000184010200010284020100 +020085000201020001810102850201020001028202010201028401000201020102820102 +010101820200028102010201860200020102010203028201020081000188010001000200 +0200018401020100010101850201020100028c0201020002000102010002000202028101 +028c02000200010002000100020001020183000100028102008300010001830100010201 +028400020001020102010181000204028500020002000103018400020001020302810002 +820201008300020002830201000289020001000100010001008400010002008300020001 +010182020102010281010281020102018702000200020100028202010001008102018301 +000200850001000100028202000285020002000102010281010283020102010101820001 +020202810102850200010001008900010001000100020102010281000203028101008300 +020102840200020102810201050184020001020181010281020187010001000100010001 +008502000102000282020102870201000200020002020289000200020001020001028602 +00010001000106018a000100020102000200020086000200020102010101820002018801 +000100010001000183010201028202000203028300020001010181000285020001000102 +820201028502010002010282020002850201000200028a02000200010201020001028f02 +0002000200010002000201000200028f0201020100020002000100010002000102018302 +00010284020100010202028a010002000100020102010286020100010200028502010200 +02010101810201890102010200020002010283020100018c010200020102000102010001 +0283020002018201000283020001020002 +8502010201000181010283020100010c0181020185010201020102870200010001020002 +850201020100020102830002010201028201000282020002820201020102830002000201 +028101020202870002000100010002040282010201840102010201010182020100870001 +00020001000283020100028c020002000100010001000100020102830002000282020100 +01008101028402000200028102018501000200020101018600010201020102820200028d +020100020002000200020100010281020189010001000200010001008500020001000202 +028900020001000200020001060188000201000200020102010201008401000100010101 +010082010001010183000102010201010284000100020081000202028101020102870002 +000201020102010288010200010001020102810201010101028100028202010283020100 +010301010281000203020100820200020202810001810102010286000201000100010201 +850201000200028502010200020182010001020183020001028402010201020702850002 +000102018401020100018201000186010201020102008700010001000100028202010207 +028401020001028b02010201000100010001000183010001020302840100020002860200 +020001020108018702000102010001020302810002020202018300020002870200010200 +02000282020002830201020103018d000100020002000200010201020101018100010401 +8902010002010001000102840201020102880201000102010200028f0201020102010001 +020001020102000192010201020001000201020002010200010201028802010200020100 +0102820200018301020002 +8a0102000201020002000102810201040183000100010501850200010200020102860001 +020102010201028301020002830200010283020001028502000102000201028100020102 +840102010201820100018101020402820100018c01000200010001020100010001010188 +020102010002010201810102840200010001010188020100010002000100860001020102 +000282020102830200010085000102010200810002840201020100010083020001000200 +040201018202010288020102010002000201010186020002000100020402010081020102 +0183000201028e0200010001000100010200020002000300810102820201028202010282 +020102820201028202000202028300020001860102000100010203028100020202810002 +040283000200018501000100010203028101020102810102020281010087000100010001 +020101018302010002010283000102008100020202810102010201010202050101028100 +028402010201008100010101820001028202000201028201000204028401020001020302 +840002000102820201028302000102810201050187000102010002010084000200020002 +000102810102820201028302010001040181000182010200030081020085000200020001 +8101028602000200010001010182020002820200028c0200020001000201000200020086 +000201000200018c01000201000200010201020002860200020002000101018100028702 +010201000200020102810002810201880102000200020002008800010001000102000284 +02010201029a020102010201020100020102010201000102000200010001000201820100 +028602010201020002840201000102820200018701020002010200010101 +820001028802000102010201020182010001820100010301850201000100010201830201 +000201028201000284020100010281020181010282020102820201020102010182020001 +830102010283020001028202010204028801000200020100010201028e01020100010002 +000100020001020184010001020083000100020102850102010001008100018b01020100 +020002010200010085000200020002820201028502000201020181010283020002010101 +840201020002030283010002008100020202830100010281020001008201000101018302 +0001028e0200020002000102000100010201000200040182000102060282010201010101 +008302000200010081010081000101018100018901000100010201000102010281010084 +000100010081000202028300010201030101028301000201820100020602850001020102 +01020182000102060281000282020002810201020101028101028d020002000200010001 +000102010284020100020102018102010201850200010200020202010103028101020102 +830002010202028601020001000201830100020085000100010001010182000102820201 +020502840100010200010082020001010185000100010001010183020100028902010002 +000200020100820001028902010201000200010201810102820201028202010282020102 +820201020102820002010101830002000287020102010001000282020002840200020002 +840201020002830201020081000186010001020100018101008100028402010201020202 +010001028101020202970100010001000201020100010002010201000102010201028502 +0100010201830100010286020002010200028b0201000201020002010200028702010201 +02010001 +890201020102010002010281020182010201030181020101018102010301810002010201 +010102810002850200010201028202010282020102810201810102820201020102810102 +810201810102820201020102930001000200020102000200020002010002000100850002 +010201020102820100028a02010200010001020102008800020100010002000201028700 +020001000200020202810102850201020102018601020001000102850200020102008200 +020001000101820001008100028602010200020102840200010002030202018200020002 +000202820102008200020181010206028401000100010101830200020002008f02000200 +020002010201020002010001010181000283020002010201020084010001000207028501 +0200020102010284010001000181010204028101028a0200010001000200020002830200 +010283020102018501000200020084000200010081000282020102820200020102810102 +050283010201028602010201000100830001000101018102008600010200010002820200 +0201028100020102820002008c0002000100020102010201020108018800010201020001 +020001008202000201020401010088020001000100010001830102000281020081000201 +028600020100020001820102010101840002010201820100010101010083020001020202 +810002820200028202010286020102010200018301020102820201028e02000100010201 +020100020002000287020100020002000103018300010002810200840001000102850201 +020100018801000100020002000103010202830002010286020002000200018101028102 +008200010283020002018601000102010001010181000288020102010201000102820200 +010101 +8c0002010201000100010001000182010001860100010002000182010001860100010001 +000183010201028202010283020100028202010283020100028302010201810102010281 +010282020102810201820100010101010286000200020001028802010200020102010082 +000201840102000200810002850201020002008100010101830002010201028701020102 +010001028402010201028302010201010182020100850002000200028a02010201020102 +010201028702000102010200020302850002000200028302000102020285000100010200 +830001000188010001020100010002050202018202010281020103018300010002030281 +010203028500010002000202020100830200020181010281020182010001830102010085 +000102010001830100020081000201028500020102010204028201020102018202010202 +028100028202010281020181010285020100020002820201020302840102000102820201 +028202010204028700010200020100010201820001028102010701830201000202028100 +018101028602000201020002850201020100018c01020102000200020001000200850001 +000100010101810001820100020202820102008400010001028202000283020102010601 +010282000102830200020001008202000282020102810201030182000102810200890002 +0002000100020102820200028502000200020101018f0200020001020100020002000100 +010282020102820201028102018201000285020100020102840200010201010101028101 +0202028100020202820001008100028b0201000100020002010200028802000200020001 +000186010002000201028102008200010282020002870201020102010001830102000284 +020100010288020002010200020102810201 +820200028302010002830201020102018100010701810001860102010001020182010002 +010281010285020102010002820201028302010002010281000181010202028100020102 +8101028b0200020102000200020002000100820201028102008100018101028902000200 +0200020102008200010201020100840201000102820201008400010001028e0200020002 +000200020102000200028d02010200020002000200020001028302010201820102010101 +820002008300010002020281010081000203028101008100028102010501010283010001 +020202820100028902010002000200010001850100010001008100010101010082020002 +830201000203028101020102860102010001020081000281020185010001000201810100 +810002810200840002000200810002010289000201020100010001028202010205028e00 +020002000200010001000201000181010203028300020002820200028802010002010002 +000283020100020202810002020207018202010083000100018301020001010101000202 +010084020002000201028500010001000181010001000102880002010200010001008100 +018101008100018201020184010200020081000282020102820201028102010101890001 +000100010001000182010002810200810002030201018300020002830201000101018502 +0100020002830200010287020100020002000203028101028c0200020002000100020002 +000282020102870200020001000102820200028402010201028102010201830001020181 +010282020102850200020002008100018201000286020102010201028b02010201020001 +0200020002850200020102010201810001010101028d0002010200010201000201020002 +820201008e000200010201000100010002000100 +850201020002018101028502000201000102018100018401000100010201810001010181 +000101018102008300010002840200020102820201028202000283020001028502000102 +000201028200010201028101020102810102010295000100020102000100010201020102 +010001000200020402820100010101040281000201028300010201810102820201028702 +000200020002008a00010200010201020102010201820001020202810002830200010001 +009102000201020001020102000100020002010203028100010101010282010002050202 +010102010182020102830201020105018102008300020002010281000282020102020285 +000201020102820200010101810201030184000102000182010002010283000200028402 +000200028302000102020201008102010101820201028202010286020100010201020102 +810002020282010001010181000284020102010206028100010201850201020001028202 +010282020102810201840100010201070101008402000201028302000200810002010283 +000102010401020281000204020300010185000100010001870100020002000200010081 +01028b020001020102000100010001040182020002010201018200020082000102010201 +008102018601020100020102880200020001000200028202000284020002000282020102 +820201028202010202028101028702010002000200028202010283020102018a01000100 +010201020100010101840001020102840200020002820201028202000283020102009000 +020002010201020001020002000201028e02010001020002000102010002000284020100 +0102860200020102000284020002010282020102850200020002018201000101010002 +830102010287020001020102000102018102010c01830001020083000201028202010286 +020102000201028202010281020181010282020102820200018101028602010200020102 +01028101028102008a000200020102010201020185010201020102020282010201860100 +020002000182010200850001000100020702870102010201020002890201020102010201 +020083000200020102810002020286000200020002010201810002850201000200020302 +840102000201010181000103010300820100020102010006028100028202000202020501 +820001008100020202810002020281010281020183010201020102830100020102018100 +018201000102018100020102820001020202830100020081000202020101830201020181 +010285020100010200810002820200020102810001030183020102018101028202010201 +028200020082000102810201010105028101028502000102010282020002810201020182 +000100860001020102000183010201020102840002000102010281000201028300020001 +820100028202000203028101028102010301850001000201028102018301020002010281 +010285020102010002850201020100010201850001020102010101010281000201028101 +02880200010001000100010101830002000282020102820201028d020102000200020002 +00010201028a020002000100020102000282020102820201028402010201028202000202 +028101028402000100010101860001000100010284020002000285020001020102860201 +02010201028b020102010002000200020102810200840001020002870201020100020002 +8302010001010184000201000183010200028a0201020100020001000201820102018401 +02000102 +890102010200010201000295020102000100020100020001020001000102000201028102 +010101870001020102000102830201000284020102010201028100020102860100020001 +000282020002870201000201000102810201840100020102020291000102010001000100 +01020102010201020185010001020102850200010201028c020102010201020102000100 +0181010002008202010204028100020102040101028a0102000200010200010201830102 +010281020182010201820100028a02000102000200020100010101810002830201000283 +020002018101028102010601810001820100010401860200020002000282020102820200 +0287020002000100010284020102000281020102018100028d0200010001000200020001 +020002040283000200028102018101020602810001950102010002010200020002010201 +000100010001000201028101028402010200028302000201830100010083000201020502 +810001040182020100830001000102010100820201028202000206028300010201810102 +810201840102010002020286000200010001000100030184020102000201020300010182 +000200840002010201820100010301810201830102000201028500010001000282020002 +840201000201830102000282020002010281010282020002820201020102010001020101 +830201020186010001000200028402010201028502000200010284020002010283020102 +018401020100018201020101010102820100020402840002010001830100010286020002 +000201028402000201020102030184020002000286020100020102018d01000102010002 +0100020102000286020102010002018301000201820100018601000102010001 +8302010201010183020102010f0101028601020002010201830102000201028101028302 +010002840200020002010282000102010281000201028401020100019201000102010201 +0201000102010201000100018101028b0201020102010201020100018f01020102000201 +020102010001020002030282010200860002010002000207028101028102010101820201 +028602000200010001050183020102018301020102820200028502000201000281020102 +010102820001008100018201020001008102008600020002000201810102820200020102 +040103008801020002000200020081000101018102018101020302870002000201020001 +030181020183010002018301020102010281010202028100028202000203028200020101 +01840201000100010001028a000200010001020002000201028a01020102000200020002 +0083000200028502000200010283020002018101028102008500010002010201020a0182 +000102870201000200020102010283010200028602010002000102050283000102010801 +810002010289000200020002000201028102010101830201020101018200010083000100 +018101028302000200830002000202028101028302010001010101008c01020001020102 +000100020102820201020102020185020100020002840201020102810201820102018501 +020102010282020102820200028102000200830200020182010001040181000285020002 +000200010085020001020102940200010002010200010201020002000200010200020202 +8b0100020102000102010200028302010001010181000289020100010002010200028c02 +000201020100010201020001 +8100028a0201000200020002010001840100010001840100010001860100020002000282 +020102810200900002010200020002010002010201000102010282010201810102010281 +000202028100020102810102010281010201028900020100010201000100010001018402 +010201020302810102860200010200020081000201020100820200020102010108028c01 +020100010002000201020001010182020102060284010201000101018500020001000202 +028200010201028500020001020002008701000100010001008100020102830002000282 +020102820201028102010101810001050182020002010281000284020002000201028300 +0200018201020181010283020102018201000101018a0001000100020001000100850001 +000200028b02000201020001000102000201028400020002008100020502810102810201 +8f0100010002000100020002000200020081000201028101028202010201028201020083 +000100020102820002008100028102010301840002010001820102018201000281020188 +010001000200020002020281010285020002010001010101028101028a02010001000100 +010001020302010081020181010283020001020202010183020100010401810201810102 +030283000200028202000182010201810102810200810001840102000102830201000284 +020102000187010200020002000283020100010101820201028702000200020001028702 +000200010001028202010285020102010201840100020001820100010101850201000200 +020102840102010201020101028301020102010291010001000200010001020002010200 +010001010181000284020102000287020100020102000287020100010002010284020102 +000283020102018201020181010282020002 +860002000200010282020001840100010001820100018601000100010001860100010002 +010282020102010281010282020002820201028802010201020002010202028100018301 +020002820200020102810002010281010201028601020102000201020182020002010288 +000100020002000200010090020002000201020102010200020002010281020083000200 +028a02010001000102010201028102018601000100010002010286010201020100018101 +028502010201000182010002870200020100010002010282010002020283010201028102 +010401830001000282020002040282010201010101028100010201010083010001020402 +020003018202000203028100020202820100010101850001020100010101810002030281 +000205028100020202020101020101830200020002008702000100020002008100028302 +010201820102010101020281000282020002010289010002000100010002008100028302 +010200820001028302010001820102018201000188010001020001000102820201008300 +020002010284000200020101018502010002000282020002840201000100810001040103 +028100020202840002000200840001020102810201030186000100020001028302000102 +880200020002000102000100010181020101018202000283020001028102008300020002 +830201000201028301000201930100010200020001000200010001000200020102820201 +028102018501000200010285020102010201020182020102840200020002820200028302 +000200870002010002000201870100010001020002020282010201010184020001000186 +010200020001028602010201000201820100028902010201000201000201830100020184 +010001020101018202000101010002 +0101850201020102011001010202018d0200010200010001020001020102820201028702 +010201020001028202000201028401020100020202810102010281010201020101820200 +019601020002000200020002000200010002010201020102018601020100020001820100 +018301020102820201028102018101028a02010201020100010001020702820100018501 +020102010201020100010287010001000102010282020102020285000200020102910201 +000201020100010001000102010200020202010181020182010201010181000182010200 +010004018300020002820200028402000200020202820100018101028202010282020100 +820002010501820200028102010601040201010102810102850200020001000100810102 +820201028202010201020101010083020001020202810002820200020702030101028101 +028102010201010283010002008100028302010001010181020102018102018601020001 +000201850102010200028302000102820201020202830001000282020102830201020181 +01008b000100010001020102000200830002000101018102010101810001810102870201 +000100010001850102000201020302810001010101028101028102010301010285010002 +010001810102820201020302860100010200010282020102810201020182000102820200 +028102018501000100010285020002000102020201018500010200010081000201028100 +020102830102000202028801020102010002010284020002000288020100010001000102 +83020102010101810002840201020002840201000201820100028c020100020002010002 +01020002850201000201028302010201020101020000 +010288010001020102010201820102010101810201820102010301820201028402000201 +028202010286020102000100028202010281020184010002000282020002010285000102 +000102830200010201028101028202000101018202010294020102010201020102010201 +020002000100020002010283000200020402010102000102810102010281000183010200 +020502810001010186000102010200028102008400010201020102830102010201020301 +860200020002010282020002820201020202830100010201020201870001000102000102 +010281000202020101050281010085000100010001840100020002060281010082000102 +830200010081000202028301000100810001030187000100010002000286020002000201 +028202000286020102010001028202010201028201000288020001000200010002010281 +010283020102010201030281000205028800020001000100010083000201028502010002 +000281020109018202000202028200020083000200020402810102020201000202880102 +010002000100018401000100018101020102010105028600020100010201820102010601 +810001010103028100028602000200020002810201820100018201020183010201028202 +010201028200020084000200010201028101028502000200010281020083000201028502 +010201000181010282020002810201010183000200028e02010201000100020102010201 +00020502860100020102010202028301020102810201010101028f010201020002000100 +010201000201028202000283020100010101810002850201000200018a01000201020001 +0201000101018b000200020002000102010201 +880102010001020100018401000100018901000100010200010002870200020001020102 +820201028702000201000100018201020183010200020102860100020102010285020002 +0102010101810001840100010002820200020102820001028c0201020102000100020002 +010206028801000100010001020101010102880001020002000200020102820102010101 +820001029102000200020001020102010201020102010202029201020102010001020100 +020102010201020102010281000202020101030282010001020181000101018202000206 +020200870100020002010201020185000102010002010281000201028100028202010203 +020301830200010001000501010286010201000201020302830002010203020100840200 +010200810002020281010282020102810201810100890001000200020002000203028200 +020081000284020001000282020102040282010001840102000200850002000100010101 +810201810100850002010200020402810102820201020202820102010101820201020302 +870100010001000100860001000100010283020100020502810102820201028302000201 +010185000100010001830102000203028200020081000282020102830200020184010201 +000282020002010281010282020102820200028402000201028702000100010201028302 +010201010182020002840201020102830200010083000201028302010201020181000102 +01810201810102020286010200010201028402010201028202010202028c010200020002 +000102010001028702010201000201028202000284020100010282020002820201008c00 +0102010002010200010201028402010200010301870002000201020002 +890200020102000201020107018102010201830201020183010200020302810002820200 +020102840100020102840201020002820201028202010201028101020202810002010281 +01020102810102020281010202028301020102030287000200010001000101018b020102 +010201020100010001840102000201020102028100020102840102010201870102010201 +020002820201028202000282020002010281000101010102820102010201810002880200 +010001000201028202010204028d01020100010001000100010200020402830002000204 +028401000100028502000100010083000100020702020184000100020087000200020001 +000106018300010002010281000205028300020001840102010201810102010281000282 +0201008a0001000200010002000102820201020402810102010281000204028100028902 +010200010002000100830002000201028300020002830201020102018102010201010082 +010002840200020002020287000200020001000202028200010083000100020102080185 +020102000102840200020002010286000200020002010801830001000202028700020002 +010001000300870201000100010200820001028202000287020100020102000282020102 +820201028202010287020001000102010282020002810201830102010202028101028602 +000100010200810001010188000201000200020002010283000201028b02010201000200 +020002000284020102000284020102010202028301000102810201840102010201830100 +0102820200028a0201000201020100020102810201010183000201028202010285020100 +0201020602 +810201820102008600010200020001820100018401000100018601000100020002810200 +810002820201020202810002010287000200020002010282020002820200028202000101 +010302810102830200010201028101020202810102010283010001028202010081000101 +018200010285020002010201010182020102010281000287020001000102010201028300 +020002850200010001020402810002860201020102010281020101010102010181000201 +028500020002000201028200020187010002010002000283020001028202000282020002 +810201070182020102820200028402000200020102010082020002830201020106010302 +820100028b02010201020102010201020101010102810100020004018202010282020002 +020281000205028100020102810100820001008200010081000181010281020181010204 +020100890200010001000100010201028301000200810002820200028302010201020101 +028101028102018301020102810200010002018100010101820200028902010201000102 +010002840200020002030281010282020102820201028202010287020102000100010086 +000100010201020102810102090281000282020002870201000100010201010102028100 +020602810102820201008100018101028202010289020100020002000200020302850001 +000200028202010282020102820201028302010201830102010282020002850201020100 +0181010285020102010201820102018201000283020100020102810100820001028e0201 +020100020102010201000200028b02010201020100020102010281020188010002010001 +020102820200028a02000201020001000201028602010201000201840100010201860100 +0201020002010281000282020002 +8a0102000201020102010201820102018201020182010201810102860201020002000201 +028100020102820001028702000100020001020302830100020182010002010202018200 +010201028101020102810102020282000201010182000102820201028102018b01020002 +010001020102000283020102010501010201018500010001000202028100028302000201 +010184020102010289020100010201020100028202010081000282020102830201020106 +018102008100020502010102028200010081000101018600010001000102830201000282 +020102030282010201830102010202028501000100010088000102000200010002820200 +018701020100020001028602010001000102810201050186020100020002008400010201 +020302810001020184020002010282020002010201008902000200020001000100830001 +00020102810002080282000200880002000100020002008b000200020001000201020001 +0a0181020084000100010282020102020281000202028600010201020002010283000201 +028402000100010401820201028102008300020002010201008202010288020002000200 +010001810102820201028402000200020102830001020081000285020100020002810201 +830102000286020102000200028202010283020102018301020102840201020102810201 +830102000282020002820201028202010282020102830201020185010201020002890201 +000100010201000282020102020284000102010285020100010002810200810002020281 +010288020002010201020002870201020102000102820200028502010201000283020102 +018601000100020102850201020100018101028102018201000101018402010201028202 +000282020002810200 +010201018202010281020103018102018201000186010001000200020202830102000282 +020002060281010001008701000201000200020202820001020102850102000201020102 +820102018201000182010002010281010201028701000102010201020202820102010301 +02028801020102010001000187010200010201000201028e010201020002000100020002 +0001028102018101020302810102850201020002008c0002000200010002000102000183 +010201000100010282010002010206018102018101028902010201020002000102820200 +020102810002010281000101018102018201000102018300020102020281010282020102 +810201020101028101028602000100010200010004018200010203028100028302000102 +010281000283020001000300810200820002008800010201000200010282020102010281 +010282020002820201028202010282020002030281010287020002010200010083000100 +020102810002810200820002008300010001020184000100010282020102010201000302 +820102018101028202000201020a01820001008300010001830102010283020102010301 +060201008302000200820002018101020102810102040282010201870102010002010002 +010284010201000283020102018101028202000202028101028502000102010283020002 +018301020102820200028202010282020102840200020102840200020001040181020101 +010102810102820200028902010200010001020102850201020102018301020002020281 +010202028601020001000102820200028802010201000201000101018202010282020102 +870201020100020102810201040183020100018301000102030282000200 +870201000102010002820200018401000100010101850201020002008600020002000102 +870200010200020002010288000102010001020102820201020102020102028201020182 +010001010181000181010201028101020102810102010201018100028802010200020001 +000201028601020102010201010105028600010002000102020201008202010281020181 +0102010282010002010288000200020001000102840200020102010201018c0200020002 +010200010200020101018102018101020302810102010201018302000102810201020182 +02010205028101028202000181010203028300010001010184000100010202028100028a +020002010002000200010083000200018101020202070184000102010282020102030281 +000283020100020102010002010402810102010287000100010002000281020182010001 +010102028100020302820001028102008800010001000102010283020102010201010201 +018300010001030184000102010284020002010282020102020281000201028101028702 +010200020002008900020002000100010001890102010201020100010201028100020102 +830001000284020102010001000102030182020002010286010200010201000100010183 +020102010201860001000201020181010282020102050284010201000282020102820200 +028202010287020102010002010282020002820201028402010201028402010201008200 +020189010002010200020002010101010283010201028b02000100020001020102000281 +020101018202010284020102010285020100020102830201000181010282020102870201 +020100020002880201000201000201020402020101028300020102010283000200020002 + +8a0102010001020100010001020188000102000200020102020289000200010002000200 +020402810001820100018301000102830200020184010201000181010202028200010201 +028101020202810002010281000281020183010201020102860002010201020103018402 +010201028902000200020002000201020181000101018100020202810001820100028502 +000201020185010201020102850201020102018401020102008100020302820100018201 +020103010602010105020101820201020202820102018401020001028202000201028300 +01020105010102850100010001008a000102000200020100020184010201020181010202 +028101028102000400830100010282020002860200010001000205028100018101028202 +000201028200020082000200810002010281010281020101010302810102820200028202 +010204028100020202010182020102850201020100028402000200028402010002000200 +050183000200018101028402000201020702820100028402010001028102010901010082 +01000181010201028100020202820102018101028b020102000100020100010002840201 +020002010281000281020186010201020102018201000183010001028202010201028101 +028202010282020002020202018300020002820201028102018301020102820200028202 +010283020102018801020100010002000284020100010281020182010002850201000200 +028402010201028902010201000201020102830201020102018400010201028402010201 +028402010002018201000102018100018301020002850201000200028302010001830100 +01028502000100020183010201028702000201000200020102820002000000 +8201000283020002010401810001020101028b0002000200020002000201008100028402 +010200020102020181000103018202010282020102810201830102000202028101020102 +810102010281010202020101820201028202010201028501000100010282020102010282 +0102018b0102010201020002000200028402010001028402000100018301020102010282 +000102010281010289020001000201020002000200010285000201020102020283010201 +008500020100010082000201010102028200010201028101020102850001000100010101 +840001020002020281010202020101820002008500020001000105018202010282020102 +020201008702000100020001008400010001020102810002840201000201020109028100 +028302000201010182020102820201028102018201020181010282020102860201000200 +010283020100020c02830001000202028500020001020102010202820102018601020100 +010001020181020181010282020002820201020802010087010001000200020087000200 +0100010001020182020102050283010200028a0201020100020002000100820001028202 +010209028801000200010001000102018202010201028500010201020101010502810002 +820201028202010284020002000282020102830201020181010284020002000282020102 +850200010201020202830102000202028201000286020102000201028702010002000200 +028502010001000201028101028202000103018400020001028202000285020100020002 +820200028502010002000282020001840102000102820200010101870001020102000102 +840200020102010285000200020102 +880201020002010200018401000100018701000100010002008300020102820200028802 +000200020002010201028501020102010085000100020100810001810102010282000201 +820100020102820001020102810002010281000186010201000201020102820100028402 +010200018501020102000201028101028802000201000102010289020102000102000100 +020102810002010281000283020001028202000288020102010201020102820200020602 +060101028100018201000185010002000102820201020102810102010202018902010201 +000100010002820200020102810002010281000102010302010184000100010001000502 +820002008400010001028202000282020102040288000100010001000100010081020083 +000200020202810102840200020102810201810102820201028202010283020002010201 +030281010282020102810201010182020002010282010002060201018102018101020302 +830002000103018802000100010001000184010002000203028500020002000202028401 +000200028202010285020102000100860001000100010004000102810002010281010201 +020801820201028502010200010282020002820200028202010283020102018301020001 +830100010283020100028202010285020100020102030281000184010201000282020102 +820200028202010287020002000102010287020002000102010282020002810201010101 +028300010002820200020302010181000284020102010289020100020100010200028302 +010201010101028600020002000102820200028202010082000102820200028502010002 +010282020001840102000102820200028202000186010002010200018a01000200020002 +010200028302010001 +830102010201020901820201020102810002010205008202000204028100028302010002 +850201000200010101820201020302830002010282020102020201018202000182010002 +010282000102010282000102010281000201028301020102020287010200020002000284 +020102010085000201000201820100010101830001000285020001020102020284000102 +010203028201020102018402010201028602000100020102810201010101000602810002 +030281010281020102018200010285020002000102050281010201028400010001008600 +010002000100860001000100010282020102060281000282020002890201000200010001 +020186010001000100020102810102810200810002040281010082000200820001028302 +010201010104028101020102030101028101028402010201020702010184020102010203 +028101020102010182020102010201018202010201020401850200010201028202000282 +020102030284010200010282020102820200028502010002000105018202010206020300 +890100020002000100010081000101018202010204028601020001020102860201020100 +020102018202010285020002000102010281000201020101820201028202010283020102 +010101820201028202000285020102010201010182020102020281010201028100010301 +810002820201020302820102018801020102010002010286020102010201028402010001 +028602000201020102010281000101010102810102870200010201000201810100810001 +840102000102830200020182010002810201810102850201020002018101028402000200 +0283020100020102 +820200028102010801860200020002000281020081000201028200010201028100028402 +010201020102810002820201020202020083010001020102010001018100028502010001 +000183010201028202000201028101020102840001020102040291010002000201000201 +020102010002000102820200010401810201020101028501020100010281020181010203 +020101910201000102010201020102010001020102018201020184010201020182010002 +820200020102820001028202010201028800020102000102010201028a00020001020001 +000201028102008400020100020102830001020106010302810002040282010201040104 +028c010201000100020102000201020a0282000201810102820201028202010283020102 +010101810201810102810201830102010201028101020102810102030281000202028201 +020183010201028302010201010182020102810201810102810201010187020100010001 +000182010002820200028202010209028300020001010186020102010201028902010001 +000100010002860201000201000201028100010101810002890200010001000200020081 +000282020102040201008501020102010281020102010100820102010101820200020102 +810102820200028202010001008701000100010001028202000285020100020002870201 +0001000200028d0201020100020001020102010201830102010204020101810002820201 +020202810001810102850200020102018301020102850201020102018401020100018101 +028102018401000100018601020001020100830002010282020102820200018201000183 +01020002810200860001020102010284020002000283020100020102810002 +870001020100010001860100010001000284020102010204028100020302810002820200 +028c020100020002000201000100018401000201028c0200010200020102010002000201 +0281010201028100020202850102000100028202000201028100018b0102010201020102 +010201020202030181020181010203028801020100020002000201028200010203028400 +010201028502000201020102018202010285020002000100830001020184010001020081 +000282020102830201000207028201000282020102810200010001028400010200020102 +010081010281020102018400010201028302010001010181000183010201028202010201 +028301020102030281010287020001000201020101018500020002000184010001000201 +028100020502820002008100028102010101820201028602010200020102040201010102 +01018b020102010002000100020002840201020002830200020183010201028302010201 +030181020101018100020102010186000100010200028602010200020002030281000202 +028101028702010200010002010801090284000100010086000100010201028102010201 +820001020102830002000201028200010281020182010201020181020181010204028101 +028202000282020002890201020102010002000286020100020002018101028202010282 +020102820201028302010201830102010281020106010502850002000200028302010201 +83010201028902010201020001020102860201020002000282020102820201028e020102 +000100020102000201020002840201020002010281000184010200010287020100010002 +0102820201020202810002870201000201020002810201 +830201000182010201820102010201810002010282000102860200020002010284020102 +010282020002820200028202010201028100028902010201000200010001820100020102 +840002010201810102820201028202000204028200010202028101028202000181010201 +028101020102890100010001020100010205028500020001000185010201020102820201 +008600020102010001840102010001010101028300020002850201000100010201810201 +010181020182010001810102010282010201810102030201010102010002020100820200 +020102810001010183020001020302850001020001020602070188000200020002000201 +010181000201028201020101018102018201020106018200010207020101050281010208 +028101020102830100020101010302860102000102000204020100020201018102010101 +040281000286020001020102010101850200020001028602010201020002010281010206 +028601020102000102820201028102010401830001000103018200020087000200020002 +000106018100010101860001000200020081000282020102810200810002880200020001 +000100018501000201000282020102810201820102018101020202810102020281010284 +020102010281020186010001000200028402000200028802010200010201000201028100 +010201810002010281010282020002820201028902010201000200020002840200010002 +860201020102010281020183010002018401000200028202000282020102820200028802 +010002010002000201028100018301020002880200010201000201028702010001000100 +028b020100020100020002010002 +810002010286000102010200018901000102000201020002820200020102830102000183 +010201028202000201020101820200020102810102840200010001810100880001020002 +010201020202810002010281010202028301000102010281010285020001020102010282 +000102810201810102050202018602010201020002030281000201028100028402000200 +02010283010200028502010201020104018102018e010201000102010001000200020002 +86020102000200010101810002010281000282020102030281000201028c010200020002 +010200010201020102850002000200028202010281020182010001040181000183010200 +020602820102010101070204018500020001000181010203028301020002040283000200 +020202020181020186010201020100020102830001000101018202000201028201000284 +020002010202028200020081000202028401000100028202010202028201020106010100 +830102010282020102820200020202010182020102820200020302010182020102810201 +080101020100010286000200010002018501020001000183010201028302010201820100 +020502810002830201020084000100010082000201830102010282020102040281010281 +020101018202010289020002000100020001020402020182020002020281010285020102 +010201010181020183010002018101000100030286000200010001028402000201028402 +010201028902010201000200020002850201020100010101810001840100020002850201 +000201028202000283020100018301020001840100020001880102010201000201020102 +8301020002850201000100020202810100 +850201020102010101810001020182020002860200020102000202028100028402000201 +028102018401020001028202010283020001028402010201028202000101018400010200 +010101830200010201028300020001830100010202028101020202810102020281000282 +0201028b0201000100010001020102018e01000100020102000100020102010207028100 +0106018a0201000200010001000100820002008100020102850100010002008100028202 +000103018100028302010002030282000102830201020181010284020102010201020101 +810002030282000200830002010282020102830201020105010402810002840200020102 +040281010282020102830201020101018600020100010002010281000282020102820201 +020402880100020001000200020102840100020002830201000282020102830201020101 +018b00010001000200020002010282020002870201020001000102820200028102000100 +840102010001020183000100018301020102010285000200020102020281000204020101 +830002010204020701010281010206028101028102010201810201030186020001000201 +028b02000200020102010002000281020101018100018301020002840200020002020281 +0102820200028902000100020001000100820001028d0200020001000100010002000102 +830201020101018802000200020001020183010201020102810002010201018202010202 +028101028202010286020102010200028402010201028402010201028202010282020102 +820201028102010301850002010002010201810001840102000201820102010201810002 +8202010284020102000282020002870201000100020102010282000200 +830001020107018100020102820002008100020302830102010201028100028302010201 +870102000201000102830200010202028401020100018201020083000201008200020181 +010083000201028402000201028202010201028401000200020102810102820201020102 +810102820201028102018101028102018f01020102010001020100020002010201010184 +02010201028a020002000100020001000101018600010002000201020184020102010281 +020102018102010101810002810201020101028101028102018401020102010101010286 +000200020100010101810201810102060281000101018202010283020102010501820201 +020102890002010201020102000201028401020102018301020001010185000100020001 +810102820201020402810102030201000102820102010101010281010201028101028102 +010501010281000201028201000205028100010401820201028402010201028202010281 +020182010201830100010002008101008500020002000204028100020202850002000200 +020102810102010283010200010501020201018400020002008100020102020101028201 +020107018102008400020100028402000200028202000283020100010101810201840100 +0201028502000100010206028201020183010201028102018301020102820201028d0201 +020002000100020002000102830201020102018500010002000202020100010283000200 +028902010001000200020102820201020202810102840200020002850201020100028202 +010282020102820200028102010101810001820100028102018701020002010002018a01 +00010002010200020102050288010002010201020001840102000201 +840100010001840100010001820100018101028602000201020002040281010283020002 +008100028202010282020102010284010002010201028101028102018601000200020102 +0202020184000201000282020102030281000182010002820201028102018e0102000102 +000100010001000100018c01000100010002000102010201010185000100020001850100 +010201020102880100020002010201028102010101010281010203020101010202010102 +810102830201000281020101018500010002000203028700010201000200028202000101 +018902010201020102010200830002000201028201020101010402030181000182010002 +020284010002010281020101018202010282020102810201840102000100020088020002 +000102010001840100020002030283010201028202000282020100880001000100010001 +020402820100028502010001000208028100028d02010200010201000100010001028202 +010283020102010301810001030101028600020001000100810002040281010286020002 +010002018401020102018201000101018100018101020802810102820201020102820102 +010501820002018101028202000203028400020001028202010281020183010201028602 +000100020102820200020202830100010291020001020100010001000100010001020102 +830200020184010201020004008102008500020002000202028101028102018501020102 +010284020102010283020102018501000102000282020102850200020102018201000181 +010282020002830201000288020102010002010002850201020100028302000102840201 +02010282020100840001020002030283010002018201000286020102010201020102 +850201020102010401820001008100028302010002010281000201028100020102840002 +010200840001020102010288000102010001020002010281000202028601020102000100 +81000204028100020202810001810102020284000200010201028301020002010201018b +020102010201020102010201810100010081020088000102000100010001010103028100 +028102010201820201020302020183020102018101028602010201000201020184020100 +010281020102010102840102010201020101008402000200018301020001010181020101 +010202830102010208020101820200010301820201020602850102010001028602000200 +020002010288010001000100020002010281010202028100020202010086010002000100 +010101820201028202010204020101810201060182020102020201010102820002010101 +010281010286020102010201028302010201020186000100010001008200020084000200 +02008200010207028e000200020002010002000102010200010004010102850102000201 +020202810002030201018100010301810201830102010203028101020302010181000183 +010201028102018101028502000200010201020101040284010002010283020100018201 +020184010201020101018202000102019002010201020100010201000201020100020102 +810002030203008a02000100010001000200020202810102830201020101010102810002 +8102018201020081000285020100020102820201028c0201000201020001000201000281 +020101018300020102820200020302810002870201000201020002820201028402000201 +0282020102 +820100018201000101018100010101850200010200020102810002810201820100028202 +000282020102820201020102810102820200020102810102830200010282020102820200 +018301020102820200028202010286020100010201020102820001020302810102030281 +010282020102010285000100010001810100040001018200020185010001020102010285 +010201020002010281000201028100020202020182020002820201020202820002010201 +820201028402010201020302810002960201020100010002000100020002010201020002 +010201010181000102010302810002020282000201810102030281010281020102010100 +81010282020002010282000200810002020281010281020181010201020101820201008a +000102010001000100010281020083000200020202020104028300020002860200010002 +00028e020100020002010001000100010002820200020502850001000200028402000100 +028202010282020002020208018202010281020187010201000200020002000602820102 +018101028302010201890100010001000100020102010202840002010201840102000102 +82020102820201028202000185010002000102060282010201820102010101010204018a +020002000100020002000102018502010002010281020187010200020100020186010201 +020100010501860201020102010081000201028101028202000201028201020101018b02 +000200010002000200020001008901000201000100020002820201028202000281020187 +010001020100010285020100020102840201000201820100018101028802000100020001 +0201810102820200020102880002010200020001028902000201000201020002 +840102010201010181000101010102830102000284020002010202028301020002820200 +020102810002820200018801020002000102000185010200020102810201860102000200 +010201028101028102010101810001020181000202028100028302000102830201020181 +010201020101820200018301020102010202010102860002010201020182010002840201 +020102870201000201020002010281000282020102020202018102018301020102810201 +810102010281000203028301020001820102010301810201020182020102820200028202 +010284020102010201028301020102020281010201028300020002880201000200010201 +028102000200030105020101840201000102010281000283020100028302010001040101 +028101020102810002860201020002000202028500010201000103018102011301020282 +0100028102010a0101028201020102018800010001000100010081000182010200820002 +008200010202028100028802000200020002010284020002000285020102010001040101 +028301020002820200020102810002820200028202000282020002810201020101028101 +0282020102010281010284020102010283020001028c0200020001000200020002000201 +028101028502010200010283020102010301010283010201028202010282020001030101 +028100018201000104010102830002010282020102020281010203028101028602010201 +0201028b0201020002000200010002018701000100020100028202010282020002810201 +820100010101810002810201830100010288020001000200020102830201000202028d01 +020001020100010201020001028402000201028302010001 +830201000184010001000186010002010201028202000281020081000282020102840201 +020002010281010282020002010281010284020002000285020001020001010181000201 +028100018401020100028502010200010201028101020302810102820200020102830102 +010202028201000281020101018402010001028302010201810102840201020102830201 +020101010102010102020100010282010201020101020101830002010202028100020102 +8b0002010201020102000201028b0201020102000200010002008a000100020002010201 +000201028100028402010001020102820100028502000200010202028301020102020281 +010281020102018300010002010281000201028300020102810201010182020102820201 +028402010201008500010001020081000104018100028302010002020281000101018102 +010101820001008a00010001000100010001008800010001000100010081000202028201 +000284020100010090000100010001000100010001000102000107018302000102010208 +010302810102830201020101018202010281020101018700010001000201020402810002 +010201010102810102810201020101028100028402010200020102830102000201028100 +010401810201010183020102010401010285010201000102820201028202010282020102 +820201028202010284020102010282020102820201028102010401010201010102830002 +000181010203020101830201020183010201020202810002820200018101028502010201 +020183010200028202010283020001028502010002010282020002840201000201840100 +020002010202018400020100010101050282000102820200028402000100028702010002 +01020002820201020002 +820102010701810002840201020102040281000282020102880201000201020001028202 +000185010002010200820001028202000201028401020100018201000101010202810102 +040282010002860200010200010201028301020002020283000102010301830201000201 +028100020102820002018601000201020002010281010201028201000101010302810002 +850201020100020302810102810201810100820001028102008800010200010200020087 +000200020001020182010201820102018101028202000183010201020302820001028102 +010101030283000200020302810002010284000100020083000100010201020281010204 +028101028802010200010001000283020102010501020201018102018301020102020284 +010200010285020100010001820102010401810201030181020103018102010201820200 +020102810102810201030181020103018102010201820002018801000100010001000181 +010204028200010283020002008600020002000100850001000200028202010282020001 +050181020101010802810102850200020001028202010283020102010101010281000202 +0281010287020001020102000102018c0002010002000100020001000202028101028802 +000102010002010282020102820201028202010285020102010201010182020102820201 +020102020105028101028302010201040189000200010002000201028302010002880200 +01000100020002820201028902000102000100020102820201028d020100020102000100 +020100020181010282020102820201028202000201028301000102820200018101028202 +000284020100020188010002000201020002 +810200860002010001000183010001008300020002040281000282020002820201028102 +008100028202010282020102820201020102830102000285020102000102010281010281 +020181010201028101020202830001020181010282020102820201020202830100010202 +020101020285010200020002810201860100010201000202028200020089000201020100 +020100028202010081000283020002008300020002010201008101008100020202010083 +020001020202850001000200018401000200020102860002000200020083000200020202 +810102840201000102820200018301020002810200010083020001008600020102010001 +820100028602010001020001010101008102008500020001000185010001020102820201 +02810201810102890201020100010001020086000100020001008200010201028101028c +020100010201000100010002008a00010002000200010002008800010001000100020084 +000200020081000282020002820201008c00010002000100010002000200850001000100 +01020181020105010102850102000201020202810102820201028202010281020105018c +000100010001000201020002008500020002000281020182010201830102010282020102 +820200028202010287020100020001000185010201000201830102010281020181010282 +020102830201020182010002840200010002010281010282020102840200020001010182 +000200010082020102880201000200020102010101840001000102810200870002000200 +010001010185000100010201060181000184010001000281020184010201020187010002 +000201000285020102010001860100010002010282020102860201000100020181010201 +028401020001020602810001840100020002870201000201020002820201028402000201 +00 +840102010201040181000286020100010200020202820001008300020002010283010201 +028102018101020102810002820201020102810002010283000100028202000201028400 +010200018401020002018101020102820002018101020102840102010002020281000181 +010281020181010081000201028501020002000282020102010201000101890201020002 +000200010282020002010202018302000200030084010200020001008101020102890001 +020100020002000204028300020102010201018902010201020102010001810102820201 +02020201010402810102030285010201020102820201028b020001020102000100010001 +020106028101020202810002890200010001000100010081000101010102010101028101 +020702830002010282020102830201020103018102010301810201010182020102810201 +010104028101020102030181020103018102010401820201028102018201020001008102 +010101830201020183010200020102820102008100028402010001008200010282020002 +820201028102010101810001040104028101028502000102010282020002820200010101 +010281010285020100020102830200020102018100010201810001810102880201000200 +010002008300020002010282010200010082020102830200020083000100028202010283 +020102010201040281010282020102830201020183010201028402010201028302010201 +840102010201030183020100010101830201020181010286020002000200028102018801 +000201020001000283020102010201820001028102008300010201810102830201000286 +020001020100028502000201000184010002000284020100020188010001020100020002 +8302010201 +020289000201000100010201028402010200028202000201028101020302820001028202 +000282020002820201020102820001028202000201028101020202810102870200020100 +010200840002000102030283000100020202830102010202020101040287010002010001 +000283020001028202010085000100020002830200020083000200028102000100810100 +810002830200010001008202000181010282020002810200020003020100820200018601 +020100020002010205008102008500020002000202028300020002010281010083000200 +018c01000200010002010002000200810002830200020088000201020001000100880002 +000100020001028202010289020001000102000200018101028102000100830201020083 +000201028502000200010090000200020001000201000200010002000281020001008302 +000200010081010281020087000200010201020001008302000200020086020100010002 +008a00020002000100020002008400010002018101000300010184020002000286020102 +00020002010201008d01000201020100020001000102000100010104008a010200010201 +000100010284020002000185010201000200840002000200840002000102850201000200 +0286020102010001028202010281020185010201020102090281010201028c0001000100 +010001000200020001008502000200010001008101008200020088000201000200020002 +030282000100870002000200020001840100020001010199000102000200010001000100 +010201000200020100010002010286020102000100028202010082000102010201008202 +010285020100020102010289010201000201000100028502010002010202028101008200 +01028202000182010200 +82020102010204018b020002010002010200020102820201028502000102000282020102 +810200830001000201028400010200018401020001020102810002030281010201028100 +010101010281010283020102008100020102820002018101020202820001020202850102 +010001020202840102010002010281010201028900020002000201020002010281000281 +020082000102810200810002830200010286020002000200020302830001000201028100 +020202810102840201000102040283010201028702000201020001008100020202860001 +000102010281020183010201028202010282020102820200010101830001000203020100 +840200020001810102040201018402010201028602010001020102010284000100020181 +010084000102000204028100028202000203028201020101018102010201810201020181 +020103018302010201820102010301810201010101020301810201020181020103018102 +01010101028201020101018a020102010201020100010203028101020302820001008600 +010001000102830200010081000105010302810002830200020001008401000100020102 +810102830201020182010201810102860201000201020101010100010285010002000200 +8100028102008400020001028c0200020002000200020002010205028601020102010201 +810102020284010201000202028101028402000200020602830102010282020102820201 +020202830002010204020301880201020102000201028202000281020101018202010285 +020100020102830201020181010081000101018602000201020102010201008602000102 +00010286020102000201028102010101010081010283020001028302000102 +830002000201028100018501000102000205028100020202810102820200028202000282 +020102010285000100020102010281010283020100020102850002000201020202810001 +850102010201028102018501020102000281020181010203028200010201020101010281 +010203028101028202000201028700010201000201020102820002008100020202010001 +028301020102820201020602810102860200020002000201028200010088000200020002 +000100880001000200020002000100870200010002000200820002000100810200010081 +020088000200020001000200020081020001008302000200020084020001020001008401 +000200028102000100010283010001008600010002000200020083020001000100840201 +000100840002000200860002000200020086000100020002000c00830100010086000100 +020001008600020001000100020081010082000100010081020086000100020001000200 +810100820002000100810100820002000100810200860002000200020082000200010081 +020082000200010083010001008400010001000600830102000202020100870200020001 +000200060081020004008101028702000100010001000300010101028200010282020102 +830201000282020002810201830102010282020102820201028202010282020002060283 +010201020302820102018101020202810102020286010002000200028502010002010289 +020102010200020100018201000282020002810201040101008902010200020002010001 +83010201028c020102000100010201020100018501020102010203028401020001028502 +00020001028302000201830102000201028600020102000102810200 +010284000200020102018302000100810002040281010282020102820201028602000102 +000102860200010200010282020102010282010002820200010101010081020182010001 +820100018101020202830102000203020101820200028202000181010205028301020002 +01028e010002010201020100020002010002820200028302010201030107028401000200 +020202810102820201020102010182020102030283010201020302820001020102820102 +018601020102010200860002000201020081000202028301020002820201020602810102 +010284010200010202020101820200020102830002010209028101028302000102020201 +0103028200010201028401000200020b0201010202040181020102018102010401810001 +1d0183000102010201810001010183000102018101020e02830102010205020101830201 +020184010201020183010201020802830002000203028101028202000285020102010201 +810102030282010201020182020102820200020102010007028401000201028102008300 +0200028502000102000282020102030284010002000202020100010202008a0200020001 +000100020102810200810002890200010002000200020081000201028500010002000201 +02880100020001020102010101820201028a020100020102000100010281020082000102 +010201008202010201028101020202810002820200020102810002820201028d02000102 +0102000102010002010282020102820200020002 +860201020102010282020102860200020102000282020002020287010201020102010201 +028401020001028202000201028101020202810102830200010201028301020002010281 +010281020182010201010182000102020285000201000200830002010202028400010201 +028202010201028100028702000201020100028502010201020101010802830100010204 +02810102810201030101028300020002030202008a020102010001000100010086000200 +020001000300830102010081000283020102010101840200010002830200020082000100 +01008101000d008102000100810200880001000100010001008600020002000100860001 +000100010082000100010081010086000100010002008500020001000285020002000200 +860002000100010088000102010200010002820201008400020001008700020002000100 +028502000100020085000200020002850200010002008200010281020082000102830200 +010086000200020002008600020002000200860002000200010086000200010002008600 +020002000100870002000200010002860200020002000202028b00010201000200020002 +00028902000200020002000200830002000201028c000100020001020100020002008500 +020001000186010200020002008100020202830001000201028501020002000202020100 +810200810002040283000201028202010203028201020182010002010281000202028400 +010201020202030181020183010200028202000282020002030201018400020002018201 +000282020102820201020102820100010601820201028402010200020302810002010287 +0002010200020001820100018101028b02010002010200010201000282020102 +810102020283010201028202010202028301020002820201028402000200020102810102 +820201028202010201028201020181010201020100030284010002010203028100028702 +010001020001008100010101840001000201810102010281010202028501020102000181 +0102810201810102820200028402000102018401020100020302040105028101028b0200 +010002000200010201028402010201028102018401020102018101020202860002000100 +010083000201008500020002000102018100018101020102810102820200020202890102 +000201000100010287020001020100020184010200010201028200010281020102018100 +0101010100020181000118010102020002020100820200028102012b018a000100010001 +00010001008b000100010001000100010001010101028301000200820001028202000283 +020002010101880001000100010001008c00010001020100010201020102010281010282 +020102840201020002040201010202810102880201020002010201028202000201020101 +8100018301020002820201028202000201028101020302820001028d0200020001000200 +020002000102050281010281020181010202028100020202810102820200020302850002 +000200020402880002000200020001020102830002010282020002810200820001020202 +810002820201028102010101810002010281000282020102010285010002010200010081 +020181010284020102010281020188010002010200010001810102880201020001000201 +028202010284020002010282020001 +010187020001020002000201028101020202830102000282020102840201020102010281 +010201028100028202010201028200010282020002010281010201028100020102830002 +010282020001810102810201840100020001810102010287010201020002010201028301 +020002040287010200020102010202028201020103018202010203028900020001020102 +010201830102010282020102030286010002000100020102860002000100010084000102 +010282020102870201020100010001010181000181010284020102010201028101020202 +880100010200020001000400820201000400810200010083020001000400020182000100 +810002010282000200010001018500010001000186010001000100018301000100010003 +020100850201020002008200020183010001008100010101010082010001010101008201 +000186010001000100018601000100010001830100010001000101850001000100018301 +000100810001010182000100810001010182000100010081020082000200860002010200 +020086000200010001008100010101820001008100010101860001000100010002008102 +0087000100010002000282020100840001000200030083020001008d0002000200010002 +000100010001850100020001008800010200010002000201020400020185000200020002 +840201000100010082010200050001028500010001000184010200010202028401000200 +020802030182020102020283010200028402010200018101028402010002010101820201 +02810200820002018b010001020102000100010001830102010201028401020102008d00 +0102010200010201000100010201028e0102000100020102000102010002008500020001 +0201 +850200020102008800020102000102000202028100028202000283020102018101028202 +000201028100028202000201028100028202000201028100020202820001020202810102 +020282010201850100020100018401000201028702010200010200028402010200028302 +0001028202010201028301020002830200020181010283020100028a0201000201020102 +010201830102010282020102830200020083000102008300010002850201020102018101 +028802010001000200020187010001000102000282020102870200020002000100810001 +0201010282000200830001020101018b0002010002000100020002018201000181010282 +020001810102850201000102010401810001020184000100020104018100010401830001 +020103018100018201020184010002000201028100020202820102010101810001040181 +000104018100010401810001050181000104018100010201830001000103018300010001 +020102000201830201000181010282020002090282010001810100830001000102018300 +010001020101000101840201020002010201018502000102010201028100020302830002 +000281020181010285020001000102810201830100020181010282020002860201000200 +020089000200020001000100028502000200010087000102000200010081000102010102 +880100010200010002008700020100010002000100030102028200010281020101018300 +020002030283000100018501020002000283020001028902010002000201020002850201 +0200010284020001020101018102018a0100020100010001020100830001020082000102 +820200028502010200010282020002010281010287020102010002010283020002018201 +0002 +880200020002000201028502000200010081000287020102000102000282020102820201 +020102840102010002010281010287020002010002010202028501020002010202028200 +020183010200020302010183000100028402010200020102830100010282020102010281 +000201020100020281000284020102000102010102020188000201020002000100840002 +01000181010202028f010200020001020100020002000100010201810002840201020002 +010281010285020001000201040183020002018101028502010201020184010001000202 +020101840001000102010204010202820102010e01010281000202028100010301810201 +0c0184000201000282020102010286010201020002011401880001000100010001008900 +010001000100010001820100010f01810201020182000200810002080202008201000113 +018400010201028402000102010301810001810102820201020202810102810201810102 +010201000102010001010102830001020083000200028202010201028101020402810102 +820201028402000200018501020102010282020102880201020001000200028c02010001 +0002000201000201028402010201008a0002000200020001000102820201020102030105 +028201020188010002010201020002010282010201010183000201028102008200020182 +010001880102000201000200020102830002010282020002890201000201020002000282 +02000285020100020002880201000201000200028302010001810102 +850002010201020102810002010285000201020002010283010201028202000201028100 +028202000201028100028202010201028101028102018101020102820001020102850002 +010200010101070201000101860200010201020181010283020001028202010201028100 +028402000201020102810102840201000201810100880002010001000201020102810102 +820200028d02010001000100020102000201028302010001010182000102820201020202 +010101028100010301810001030183000100010101010081010001008702010002000100 +0202028100028802000200010201000101018400010201028c0201000102010001000100 +01008b000100010001000100010201020188000100010001000100910001000100010001 +000100010001020100028202010089000100020102010001008800010001000100010089 +000100010001000100011001810001110181020103018802000201000100020085000100 +020102010216010302810102010206018100010101020281000205028301020002860200 +010001000184010002010281020184010002000201028400020100028502010002000282 +020102820201028202010281020081000102018102008100028502000201000181010282 +0201028f0201000100020001020100020002010282020002840201020001010181000289 +020001000200010201008100018101028302010001850100020001028202000281020182 +010002880201020002010200028702010001000200020202010001028501000201020081 +00020102810002890201000200010201000184010001000283020100020102810002 +840200020102820201028402010201028402000201028302000200810002850201020001 +028202000286020001020100020202810002870200020102000102010284000201020181 +010203028101020202880102010200010200028102008100020102820102018301020002 +010281000282020102010281010281020184010001000101018202000202029801020100 +020100020102010201020100010001000100020102050201018102010301010081020185 +010001000100820002000100010283010201028302010201820102018201020101018300 +010201810102010201018a00010001000100010201028302010201060181020109010202 +810102820200011101860001000100010205028400020002010101810001040181000109 +018100010501810001040181000119018800020100020002010206028300020001130181 +000201028100028102010c01810201010102028201020083000200018101008300020102 +860200020100010085000201020102830200020102018202010282020002850201020001 +028202010282020102820200028202000104018202010001008402010201008500020002 +010282020001010182020002880201000201000100010201010281010202028200010201 +028100010101830200020101018202000282020002810201810102840200020100810001 +01018100028202010203028100028602010200020102820201028d020100020102000200 +020102000181010282020002870201000102010002810201 +020281010083000201020102850102010201020302810102820200028602010200020102 +860201020002010282020002010281000201020101810001010186000102010200020102 +010002028800010200020001000202028400020102008100018101020102010181000282 +020002010282000201010181000184010201000182010201890102010200020002000103 +018602010201020102030284010201000101018200010084000102010001008601000100 +010001020181020182010201020181020102018102018201000187010001000102010083 +000201020102040185000100010201010101000401830001000103010100030184020002 +0102020283000100010301010004018300010001030101028a0002000100020102010001 +820100010401810001040181000131018300020002010281010082000100840002010001 +150101028101028202010281020104018102018201000105018200020101018102018201 +000185010001020102810201030101028601000200020002020281010281020102018102 +010101820200020302020083010001028202000282020002840200010201850100010200 +02830201020185010201000200860001020100010201028c010001000100020001000200 +02820201008300020102830201000284020002000182010002820200028d020001000102 +000201020002010203028201000184010001000184010200010281020087000201020001 +02018101028b02010200010002010200010282020002820201000000 +850201020100028402000201028502000200010201020200820201028102008300020002 +010281010201028201020181010201028101020302810002010281010202028101028402 +000201020102810102820201028102008100018301000201850102010001020302010102 +028100020102810102820201028502010201000101010102820102010401870201020002 +000201850100020002010201810001850100010002018101028302010201810102870201 +020102010001020183000102010301810201820100010101010287000102000102010284 +020002010202028e01000100010001000102010201020102018100010501810001050182 +02010282020102820200011301810002870201000200020102850200020102013f018200 +020183010201028602010002000102020215010502830100020113018302010200830001 +000183010001028202000281020101018500010002000288020102010201020001020101 +0081010284020002000102010302810102810201830100010283020002008100028c0200 +020002010001020001000284020102010286020102010002010301850001000102010101 +870200010201020102830201000282020102860200020100010201020201820201028202 +010201028101020402830002010283020100018201020082000102820200028902010002 +000102000102850201020001028502000102010082000102 +040182020102030285010200020002040286010002010201020102820100028202000282 +020102010282000102010281000201028100020202810002030281010201028301020002 +010201018402010001028202000201028b01020102000201020002010201028201020082 +0001028102018201000105018b0201020102010201000102010f01020281000285020102 +0102010301830001000104018102010d0183020102018201000183010200028402010201 +008100010801830201020114010502150181020183010201028202010281020182010002 +8102013e0184000200020084000102010201028300020102810201150104028201020182 +010001050181000106010102810102810201040184000201000282020102810201030182 +020102850200020100010801810201810102820201028802000200010201000181010282 +020102820201028402010201028202010282020102020284000200010001008202000287 +020100010001000103018300010201850102010002018101008200020184010001000285 +020002010001010181020185010201000200810002820200020302810002010284010002 +010283020102018201000101018300020002820200028302010002820201028202000282 +020100840001020100 +010182020100810002820201028402010200028202000202028501020102010282020102 +860201020002010201028101028202010202028100020202850102000201028202000288 +020002010001020102830200020082000102820201020102820102008500010201020181 +010282020002010281010281020189010200010002010002018801020002010201020113 +018502010201020102018102010201010205018100011501810201820102000100830102 +010201020201830001000103018100010401810001050181000106010200840200010001 +060183000100010201830001000103010202020081010284020002000144018902010200 +010001000102830201020114010102010101028201020112018102018101028802010001 +000201000201028300010200010082010001820100028102010101810001020101028400 +010001028202000283020100018301020102820201028202000287020102010002000203 +028100028102018501000102010282020102030286000100010002010301810001030184 +000102010281020181010282020002810201880100020102000200018801020001020002 +000282020002020282010002820200028202010282020002890200010002010200010201 +02810002850201000200028302010002840201020002840201000201 +010186000100010200028202010284020102000181010201028100028202010285020100 +020102010281010282020102870200020100020102030281010201028100020102820002 +010101020282000102010282000102040201018102010101820201028202010282020002 +010282000201840100010002840201020001820102018401020102010b01820002010301 +81000103018102010101820002011c018100010301810001010181000201020101850001 +00020001220102028300010002810201170101020101810201010101023f018300010001 +02010802140184000200010283020100011d018202010282020102820201028a02010201 +0201000201020105018100010a0101028301020002820201028202000282020102820200 +028502010201020101018100020302810002810201850100010201028402010200010601 +820001028502010001000201020100860102010002000183010002008500010200020181 +010282020102030281000285020102000201840100020002820201008200010283020001 +02810200810002850201000200028e0201000201020001000201000201020002 +010181000101018100028202000283020100020102810102820200028402010001020102 +810102010281000201028100028702010200020100020102010002028200010281020183 +010001020202810002010284010002010281020183010200028202010082000100830002 +010282020100860002000201020101010102820100018701000102010200010401830001 +00010101810201070181020101018102010e0183000100010b0181000182010001040181 +000182010201010187000200010201020107018100010501810001040181000101018100 +010101810001040181000201020101820200010501810001040181000102018502000100 +020102018402000102010201810001380181000107018300010002820200028102010201 +810001040181000105018100010301020205018100010401810001050181000105018100 +010301810001820102008300020102810200810002840201020100830001000102018300 +010001050181000102018100018401020102018401000200028502010201020081000282 +020002020201018400010001020302810102820200028502010201020107018200020181 +010082000102830200010201028200020101018202000181010282020102010281000282 +020002820201008700010201020100018501000200010282020002010201008602010200 +0201028802010002010200010288020100020102000102 +820102018201000201028100028502000200010081000201028300020002020283000201 +028202010283020001020102810002850200010201028202000201028101028202000282 +020002020283000201028402000201020102810102010201010102010082020102890200 +020100020102000201020101810201040182020100850001000100010601830001020103 +018100010501810001170181020104018102018201000181010083000100010201830201 +020102018302010201820102018201000104018100011801820201028102008100011301 +020203018402010201028102014001810201830102010204028201020116018500020001 +00020102210181020181010206028801020001000201020103018102010a018700010001 +000100010201830201000101018402010201028102010101830002000282020102010287 +010002000100010282020102810201820102010701010202018202000283020100028902 +010200020102010001820102010101030201010100810102820200028202010201020201 +820200028502010002000283020001028402000200028202000189010200020002010200 +0282020100 +020181000186010002000201020202810002010283010201020102840001020100830002 +010285020102000102010283000201028102018101020102810002010283010001028202 +000282020102820201020102810002030281010201028100010201850002010201020102 +8200010287020100010002010201028600020002010201010181020107018102012c0181 +00010d018202010283020001028302010201240101020301810201150182000201010101 +028201020101018102013101810001020187000100010001000101010102810102010201 +018102008a00010001000100010001008b00010001000100010001000101010102810102 +8b0200010001000100010001009400010001000100010001000100010001000100010081 +000181010281020181010203028100028202000283020001000100810100870002010001 +0002010f018a000100010001000100010281020081000181010202028201000102010102 +810102870201020102010002820201020102080184020100020181010201020201820201 +00820001008700020102010201028202010282020002810201880100020102000200028a +020002000201020002010282020002830201000281020101018100028502000200010282 +020002010282000200 +030184000102010202028101028402010200020102020101028601000201020002010281 +000181010202028200010201028200020105018200010202028100020102820102018101 +020202830102000296020102000200020100020102010201000200020100020187010201 +0201020102820201020302810001020181000101018b0001000100010001000100018301 +00010085000100010001040101000c018102010401820201008300010001020181020103 +018102010201890201000200010201000104018100011801010281000202021701810201 +820100010101830201020140010200830201020101018102018401020102011301810001 +03018102011f018500020001020102018202000202020201810201140185000100010001 +0d018d000102010001000102010201000186010200010201028302000102810201860102 +010201000102018102010101010281000181010283020002010101810201850102000201 +020202010181000282020100810001010183000100028202000285020102010001840100 +010001010181000103018100028502000102010282020002850201000200020002 +870100010001000102020281000282020102820200028202010282020102820201028202 +000181010081000201028100020102810102020281010202028101020202810102020281 +000201028201000282020002810201810102840201020002810201040182020102010281 +010284020002010282020001010182000102040281000282020102810200840001000201 +050181020124018100010201810001070181000182010201020181000182010001830102 +000104018100011a01810001820102018201000182010201160181000101018102010301 +8102014301830201000184010201020101018102010401830001000103018a0001000102 +010200020002810201010183000100010201830001000103018300010001030183000100 +010701010281000201028201020181010285020100020001880100020100010002018201 +00010e018f00010001000100010001000100010001090181000281020081000188010201 +020102010201010181020101018700010001020001028802010201020102000202028301 +000102820201028302010201010182020102010282000201010187000201020002000284 +020100020183010200018101028202010289020100020102000200028402010002018301 +020002 +020181000181010289020102000102000201020202830002000282020102830201020082 +000102020284010200010202028101020202810102010282000102020281010282020002 +010281010201028700020002010201028602010002010001060101000102010002018302 +000201810102820201020102820100028102010401890201000100010001000101018602 +000100010001010183000100010501810001020183000100028102010301880001000102 +010200010f01810201820100010201810201820102010b01810001050181000104018100 +010201810002840200010001010183000100010201830001000102018900010001020102 +000100870001000200010001860102010001000102018300010001020183000100010201 +830001000102018300010001020183000100010201830001000102018300010001020183 +0001000102018c0201000201020100010001020184010001000102018300010001020185 +000100010002820201008100010301830001000104018100010401810001050181000104 +018400010002010401810001830102010285020100020002830201020102018100010d01 +810001110185000100010001810100810001030101028500010201020182010002810201 +820100010201840200010001830100020101018c02010201000100020100020102010289 +0100020002010001000289020100020001020001028a02010200020100020001028f0200 +010201020002010200010002010282020102810200810002810201 +010181000181010282020002820200020202810002820201020302890002000201020102 +010201028101028402010200028202010282020002030282000102010282000102850201 +020001020202810102820201028702010200010002010101830200010286020002010201 +0281020181010281020104018502010201000201020d0181020105018302010201080181 +020102010102070181000101018200010081000103018300010001010188000100010001 +020100810001010187020100010001000186010001000100010301010004018300010001 +020183000100018201000101010202810002010281000111010100040181020145018102 +010201830001020118018700020001020102011901810001090183020100010201810001 +030183020100010201810201820100010101850001000100010e01830001000103018300 +010001090182000100010081010281020183010002018101028302010200810001070183 +020002010201840001020102040283000100018101028902010200020102000102010281 +00018a010200020001020002000285020100020102830200010201028701000201020001 +0281020085000201020001 +020182020102020281000284020002000282020002010285010201020100810002840201 +020102010285000201000102820201028302000102010283000201020202810102860201 +020002010201028101028202010282020102820201020102820102018401020102010201 +850002010200018201020186010001000201020102810102010201018100010301830002 +000181010083000100019201000100010001000102010001000100010201010186000100 +020001008300020002820200010201880201020001000102018901020002010201020100 +820002010301010004010100030101028100010101010281010086000102010201008400 +020102018101008300010201810102830200010281020185010200010001880102010001 +0001020188010001000201000100010082010201850100010001008d0001000100010200 +010001000100840001000100860001000100010086000100010001008600010001000200 +860001000200010086000100010001008600010001000100860001000100010086000100 +010001008300010001010182000100860001000100010089000100010001000200028602 +000200010001010101008201000101018500010001000186010001000100010301830001 +00018601000100020001030183000100010501810201010181020182010201820100010a +01830001000104018100010e018300010001060184020001020189010002000102010200 +010301810001820102010101810201040183000100028302000201010101028100028202 +01028302010002010201008a020102000100010200010201028501000201020082000102 +8502000200010201028101028102008200020183010001020002 +820001008400010201020202830102000202028101028402000201020302810102810201 +820102018101020202810002030281000202028101020102810002010281010284020102 +000285020102000102830201000288020001020100010001810100810001820102008300 +010002010201018102010201860002010002000281020106018102010501810201020101 +020201810201030104028100028202010201020101820200020202010101028101028102 +018401020102010401840201000201020184000100020185010200020001010182020100 +810001030183000100010401810001040181000101018402000100010401810001030183 +000200010101840200010001010181020182010001020181020001000102020181000102 +018202010081000103010100010186020100010002010101830001000102018300010001 +020184000100020101018300010201020183000100010201810001030181020182010001 +010101028701000102010001008100010101850001000100010101870002010002010200 +020003018300010001020182000100810001020183000100010301020003018300020001 +010181000101018b00010001000100010001000183010200028702010001000100010201 +810001050181000181010002008201000101018100010401810001020181020103018300 +010001020187000201020102000101018102018201020103018500010201000101018100 +02010283000201028d020100010002000102000100020184010002000283020001020102 +880100010200020001020102810002830201000282020102820200020102010084020102 +00020102810002 +010184000102000284020102010284020102000201028101028202000282020102860201 +020002010282020100840002000200810002820201020302810002010201018102008300 +020102030281010282020102820201020102010101028401020102018201020101018102 +010201840200020102010283000100010301810002810201020185000100010001810102 +820201028102008500020002010283020001008100028202010283020100028102018101 +008500020001000201028300020002020283010201020202890002000200010201000282 +020002840201020102840200020002820201028402010201028202000217028101020902 +810002030281010209028100020202810002820201028402010201008700010002000200 +020402810002040281000282020002010281000204028100020202850002000201020202 +810002040282000102010285010200020102020281000202028301020001040183000201 +028402010200028202010284020100010281020185010200020102820201028202000104 +018400010002010101830001000103018300010001020101000101810001820102018201 +000105018100010901010284010001000107018102010301810201030181020101018400 +0100020186010001000100010c0184000102010201020401010287010201020100020103 +010102020181000101018102018101028802010001020102000181010282020002010281 +000281020185010002000102820200020102880100020102000100028902010002010201 +000102840200010201 +810001830102000289020002010200010200028502000201020081000282020102820200 +028202000201028300020102820201020102810002010283000201028602000201020102 +810200810002010282000102820201028202010201028101020102850001000100018401 +000100018601020001020102830200010285020001020001830102000185010200010001 +060181020182010201030102028201020101010102020101028200010202028301020102 +820200028b02010201020100010002010285020100010002010285010001020102820201 +020102810002820201020402830102010285020001020102010282000102830201020083 +000201028702010002000102010201820002018301020102880201020102000200018101 +020102820100010401830001020181010201020101010284010200010281020101018100 +018201020101018100010401810001040181000104018100010501810001040181000105 +018102010801810002810201030181020101018300010201020185020102010001030101 +0001018102010b0181020105018102011001820002010301830201000105018100010401 +8100010301830201000106018100011d0184020100010081000101018100018201020183 +010002010101810001820100018401000100010101010084010200010289020001020002 +000100018701020102000100020102010084010201000286020102000102010101810001 +8a01000100020102000100018801020002010001000283020100028302010001 +840102000102820200028502000200020081000202020101810002840200020002010281 +000283020001020102830102000288020100020102010002010201000502810102810201 +810102820200028202000201028300020102010203018302010201050182020102010281 +000282020102810201860100020001020182010001860100010001000105018302010001 +810102830201020101010302810002020201008202000201028100010101820201028302 +000102890201020001000102010284020001000181010286020001000200028502010001 +000281020184010001000281020101018300010001020183000102010201830002000102 +018102008400010201028302000100820002018401000100028102018801020100010002 +010285020001020102810201010188000201000100020001880100010002000201028302 +000102020283010201028302010002010282000102020283010201028302010002020281 +000202028101028602010201020102830201000201020100810201840102010001860100 +010001000102010102820001028602010201020102810201810102810201020186020001 +000201028302000102810201010101028200020102018300010001030101000401810001 +8401000100011a0181000126018102010201020001018200010204020201850201020102 +010101810201020101020101810201860102010201020185010201000102810201840100 +020102830200010201028201000284020002000181010282020102850201000102018101 +02850201020001028102018401000201028102010101 +880100020102010201020302810002030285000201020002830200010282020102820201 +028402010200020202840102000201840102010001830102010201028101020102840102 +0001020302810102010283010200018a0100010001000100010001860100010002010282 +02000186010200020100018501020102010283020100010f018302010201810102020281 +010284020102010201028101020b0281000201028b000200010002000200020002010201 +00820200020202830102010202028100020202840001000102030281000201028100020c +028100020202820001020302810002020282000102820200028202010201028100020302 +820100028502010200010203028200010282020002020284000102010201028100020102 +840100020002010281010201028201000287020002000200020182010002010201010102 +850002000201028302000102010201010102880002000102010200018101028202010083 +000201028302010002010282010002830201000287020002000100010282020102820200 +028102010101010281000186010201000100018201020185010001000201010183020100 +010201810201820100018801020001000100020181010083000100010101840002000100 +850001020001000100810201010101008301020001020184020001000182010201850100 +010002010301830002000101010102050181000103018100018a01000100010200010001 +008200010201028300010002860200020001000186010001000200028302010002860201 +02000200028a020100010002010002000201028100028402000100020102830002000283 +020001028202010286020102010001000200 +8301000102020281000202028101020302810102820200028a0201020002000200020102 +010281010201020100010281000282020100010082020102830200010202028c01000201 +02010002010002010286020002000102010b010102830002000282020002840201020002 +820201020102810102820200020102840100010001070181000106018202010201028100 +020202840002010001010101008a02010201020102000201020302050181020104010102 +820100010101010204010202830102010202028101028202010202028101020202810102 +820201028202010283020100020102860102010001020183010201028202010282020102 +820201020302820100028202010201028100028202010201028100028202010201028100 +020402810002010281010282020002040282000102010283010200010401810001010181 +020182010002010281010286020001000201028402000200020102810102830200010287 +020100020002010286020001000201028302000102010281010201028101020102850102 +000200020102840100020002010281010284020001020181010201028200010202020100 +020201018200010284020100020182010201810102830201020101010102030101020401 +810201020181020103018102010901830201020109018102010d01820001008200010281 +020186010201000102010301810002810201020181020109018502010002000282020100 +810002890201000200020100010202028100028502000200010284020001000282020001 +8601020001020102010202010102810100 +010101028301020002840200020102820200020102810102840201020102810201010184 +020002000282020002010281010201028100028202010201028101020202010002028100 +0201028101020102810002820201028202010283020102018a0100010002000100010001 +840100020002010281010201028200010281020101018202010201028301000200830001 +02010f010302810102080281010203020201840002000201010182020002010281010201 +028300020002040281000205028300020102840200020002870201020100020002810201 +82010002830201020182010200820002018101028b020002000102010200010002860201 +020001000201028201000202020101010281000183010201028302000102850200020100 +020202830102000201028101028602000201020102830200010201028101028202010281 +020184010200020182010201820100010401850002010201028202000201020101830200 +020181010281020082000102020282010002010202018302000201010101020101030283 +010002010201010001020101820201028102018101028502010200020102018302000201 +010102028300020102810201820100018201020102018102018201020184010201000101 +010102820100018101028102010101810002830201020181010282020002820201020102 +830002010287020102010200010282020102010281000206028100028402010201028202 +0102810201840102010201820102008b00010200010001020102000201029a0102000200 +010001000201000100010002010001000102010201028602010201000102010281000287 +020100020002010201028101028202000201028801000201020002010284020102010201 +0281010082000102 +830102010201028400020002008100020602810102830201020084000102000284020002 +010285020001020002820201020302010003028301020002020281000202028101028202 +000282020102830201000281020186010201020102018501020102010202028100028102 +008100028102018301020102030281010288020102000200010001070181000101010102 +8401020102019001020102000200010001000200010201008100028a0201020100010201 +0200018401000200010201020282000201810102010283000201028c0201000100020102 +010002000284020102010081000203028100020202850102000200020202830002000203 +020100010102028300010002020282000200810002840201000100850002010201028302 +000102830200020081000201028200020081000284020100020081000201028200020086 +000201020002008100010101820001008100010101820001008100010101820002008900 +020102000200020002860200020002010201028101020202870100020002000102010285 +000200020002850201020002010101010281010201028101020102010001028101028502 +000102010201028100020202840102010002010201018202000201028401020001020402 +810102040281010282020102820201028202010282020102820201028202010282020102 +8202010282020102820201028202010282020102840201020102820201020a0281010287 +020102010201000281020103010102810001820102018101028302000102020201000102 +810102860201020102010286020102010201028502000200010201028b00020102000200 +020100020181010201028501020002000283020100028c02010200010002000102010201 +01018102018301020002 +820100020102830102010283020102008100028802000201020002010282020102820200 +028202010282020102010281010201028100028502000200010203028101020102840001 +000102050281010282020002010281010288020001000100010001880100010001000200 +020502820001020102820100018101020202840002000102810201030181020108018a02 +010201020102010001028c02000200020002000200020002860200020002000286020102 +010201020c028101020402810102820201020202810102030283010201020c0283000201 +020a02810002030281010203028100020402810002030281010201028101028202010201 +028501000201000204028100020402810002010281000201028101020102810102850201 +020100018601000200010001860100010002000282020002010281000205028101020a02 +810002010281000209028100020102810002820200020102810002010281000204028200 +010282020002820200020102810002010282000102830200020082000102820200020102 +8100028f0201000200020002000200010002000282020002810200860002010200010282 +020002010283000201008100020102810002850200020001028602000200020002010281 +000202028100028402010001028402000200028302010201010181020101010102840100 +020002010283010002008100020202870002000100020102880201020002010002010101 +010282010002010298010001020102000201020001000102000100020102000200020102 +8501000201020082000201880100010001020001020002 +010103028100028202010282020102820201028102010101820201028202000284020002 +010282020002010281000284020002010285020102000200810002820200020102850002 +010201020102840001000102820201020102820001028702010201020102018501020102 +010203028100028202010282020001810102810201010101028301020102810201010181 +00010d01810201810102830201020181010202028e000200020002000100010201000200 +850002010200028102009200010201000100010001000200020002000100020081020082 +000100820002000100810200020082020002830200020002008102000300850200020001 +008100028c02010002000200010001020002040281000202028101028202000283020100 +018201000281020101018202000181010202028200010203028100020102810102820200 +028202010282020002040284000201020101018400010201028302010002040281000203 +028301020002040282000102030282000102030281000201028101028202000201028101 +020202820102018101021502810102810201010182020102810201020101028101028202 +010282020102820201028202010282020102820201028202010282020102820201028202 +010284020102010282020102820201028102010401820201028502010201020102018102 +010401820201028102018201020181010281020104018b00020001000201020100010288 +02010200010002010284020102000281020182010201820100018201000102018d020100 +020001000201000200010281020082000102880200020002010200018101028302000102 +0102810002820201020102870100020100020002830200010282020002 +810102870201020001020002820201020302010181020181010282020102820201028302 +000102820200028202000282020002010283000200018201000282020102010283010200 +02030282000102060281010202028c000200010200020002000201020102810002050286 +010201020102010201010286010002000102010a01810001840102010201010102028501 +02000200020202850002000200028a020002000200020002000283020100020202810102 +050281010204028101028202010202028101020802830102010203020101040281010203 +020201010282010201810102820201028202000201028100018101028202000102018402 +010001028202010283020001028702010002000200028402000200020202850001020100 +02820200020102810002820200028a020100010200010001000186010001000200018601 +000100020001860100020002000284020001000202028500020001000286020002000200 +020102010001028601000200010002820200020102820002008a00010002000200020002 +008200010283020001028302000200830002000203028600020002000200820001028802 +000200020002000201028e0002000200020002000200020002008c000200020001000200 +020001028202000281020093000201000200020002000100020002000100010296020002 +000102000200020001000200020002000100020185010201020102810200830001000201 +028201000202028801020100020102010287020102010201020184010201020181010201 +028200010282020002010285010001020102010286010200010001028102008100028502 +01000200028202010087000100010201000282020002810201 +010002028200020083000200028202010201028101028102010101830201000282020002 +820200028202010284020002010201028101020302810100810002010284010200010201 +028100028202000202028100020102820100028102010701820001020802810002820200 +018101028302010201810102850200020102018401020100010101810001070181020181 +010202028801000201020102000196010200020002000200020002000200010002000200 +020090000200020002000200020002000200020004008702000100020002000100810200 +820002000300810200820002008200020001008502000200020002008d02000200020002 +000201000200028202010081000201020101010282000201810102010201000202830001 +000204028100020402810002010281010282020002820201028302000201810102010281 +000281020102018200010202028201000201020201810002010285010201000201810102 +020282000102010201018200010281020185010200010201810102010201010302810102 +090281010202028101020302810102820201020202020103020101010201018202010282 +020102030281010203028101020302010182020102820201028202010282020102820201 +028202010202028401020102010301010282010201810102010203010102020182020102 +840201020102020204010102850100020100028302010002850201000100020402820001 +02940200010001000100020100010001000102000100028a020102000102010200010284 +02000200028a020002000201020002000284020002010286020100020100018101020102 +810102010282010201 +030281010284020002010285020002010201010101028201020101018202010282020102 +010201010602850100020001020102020181000282020102020201018200010201028601 +0201020001028d0200010001020002000201020102020284000200010203028200020181 +0102830201020189010201020002000100010a0183000102018701020102010001020402 +89010200020102010201028402000200020402810102020281000201028100020c028300 +020002840201020102840200020002030201018202010283020102010b01010204018202 +010282020002010202018102010301810201030181020102010102030101020301810201 +020183020102018101028202000282020102010283010002018301020102020201018602 +010001000201010182020102810201810102830200020181010202028301020102830201 +000202028101020202810102040281000284020102000201028101028402000201020202 +810002040282010002020281010281020181010285020102000102020281010204028101 +028302010002850201020100020102830001000201020100040281000285020102010002 +010295000100010201000100020001000100020002010001029202000200020001000100 +0200020001000201008100018d0100020001000100010001020102010281000282020002 +840200010002830200020081000202028600020001000102810201010185020102010201 +810102860201000200010201028101020102830002000182010002820201028402000102 +0182010002010281000102010102810102820201020102810002820200020002 +810102820201028202010284020002010201020501820002010201020283010201028402 +000102018501020102010282020102010284010002010203028100028202000202020101 +010281010202028201020101018102018101028202010282020002010285010200020102 +02028301020002810201810102010289010201020001000100010c018102010401870201 +020102010201970100020002000100010002000200010002000200010001009200020001 +0001000102010001000200020001008a0002000200020001000200820002000100830200 +020001008102000200010201008102008800020002000200020088000200020001000200 +860002000200020002008502000100020086000200020002008400020002000200850200 +020002008600020002000200860002000100020084000200010086000200020002008600 +020001000100860001000200020084000200020002008502000200020088000200010002 +000200860002000200020086000200020002008500020002000201020100870200020002 +000200810002010285000200010002860200010001000281020082000200810002810200 +020084010001020001008202000285020100010002850201020001028202010282020102 +030281010202028301020102050281010203028101020202830102010201020201830201 +020181010202028201020181010281020183010201020102810102820201028102010101 +870200020001000102830201000201028101020102810102860200020002010202028d01 +000200020100010002000201008100018101028802010002010201000282020102010285 +010200020002820201008200020187010001020001020183010200028402000100028202 +010282020102 +810002840201000102820201028202000283020102010101810001010101020401010281 +010284020102000284020102010282020102010287000201020002010203020101050282 +000102820201020102890002010001000100020184010200020001008202010203028101 +020202840100010201810102010281000281020109018102018201000107010102a30100 +010200010201000100010201020100010002000200010001020102010001000200028b02 +010201020002000100010284020002000282020102840200020002820201020502810102 +030281010205028101020302810102030281010203028100020302810102080281010203 +028101020102810102820201020102810102820201020102810102010281010201028100 +028202010201028100020102810102010282010201020101008101008100018201000185 +0100010001008100028102018101028802010200010002000101018b0200020001000100 +020002008600020001020100010001028801020002000200010281020083000201028202 +000202028300020002010281010201028100020802810002010281000207028100020402 +810102820201028202000204028101028202000282020102820200028202010282020002 +820201028202000202028100028202010285020002000102020281000284020102000282 +020102020283000200028102018101028702010002000201028102008700020100010200 +020102870002000200020001010183020102010201820201028602000100020102830200 +010289020002000201000100028302010002820201028302010201020186000100010201 +02010284010200010201020001 +820201028202000285020002000102830201020108018102018101020102810102010281 +000284020102010202028101020102830102000201028801000201000102000201028101 +028202010286020102000201028302010201020103028101020702810002010281010081 +000281020102018500010201020184010001000104018102010401010285010201020102 +030289000201020002000100020102850001000100020102820002008200010282020100 +83000200028c020100010002000201020002008900010201000200020002010201008101 +008200020003008802010200020002000281020001008102008200020001008202000201 +028200020001008401020002008600020002000100810002010202008202000283020002 +000100810200040001028200020001000102050083010002008600010001000200020083 +010001000100840102000100010081020082000200810002010282000200810002810200 +820002008100020102850002000200028602000200020002020283000200020202830002 +000202028300020002030201000402850002000201028402000200020302850002000201 +028602000200020002820200028102008100020302810002010281000285020100020102 +010283010200020102810102010281000205028101020202810102840200010201830102 +010203028101020102010181020183010201020402040183000100028202010201028300 +0200020102830102010201028201000282020102020286010200010001028d0201000200 +010002010201020002010282010002010281010281020181010288020001020002010001 +8601000201000102820201020102820100028202010282020102810201 +810002010283010201028502000200010201028100018401000100010201810201030101 +028100020102810102820201028202000201028101020202860002010001000203028400 +010200020102810102010201018102018801000100020002010201028101000100020281 +000202028100020202820001028102018101028502000201020104018202000201020101 +810001030181020183010201028302010201040181020105018102010401810201040181 +020104018102010401810201110181020104018100010301810201040183000100010101 +860201000100010082000100010001020101020083010001000400810100090081020004 +008102000100810200820002008100028102008400010201008300010002820201008100 +028402010001000e00830200020001000102830001000281020001000202010086020002 +00010002820201008100028e020100010001020002000200020002810200020083020002 +0001008302000100810002810200010001028a0002000200020001000200020091010002 +0002000200020002000200020002008400020002000100a3020002000200020001000200 +0200010001000200020001000100020002000200020002008c0001000200010002000200 +0201820100028102008a00010001020002000200028202010283020001008f0002010001 +0201000201000200020102010281000282020002850201020102018c0100010201000102 +010001000282020100820002018201000284020102000181010201028200020184010201 +020103018400010201020102810102850201000200020102 +810002030283010201028202000201028201020107018302010201850102010200020102 +810102020281010203028301020002820200028b02010200020100020102010201028100 +020102820001028702010201020102018101020302810102840200020002820200020202 +820002018201020101018200010281020105018102010101840201020102010283010201 +02820201020302b301000200010001000100010001000100010002000200020001000100 +010001000100010002000100020001000100010002000200900002000200020001000100 +010001000200820002018c010001000100010002000100018f0102010002000102010201 +020102010201028400010002010301830201020181010283020102018101028202010282 +020102830201020106010102080183020102012101810201030101020301810201020181 +020102010102040181020103018202000202020401810201030181020103018102010701 +010203018102010301010204018102010301010201010102810102830201020081000282 +020002890201000200010201000282020102820200020602810102820201020202830102 +000201028101020202810002010285000200020002020282010201870100020002000102 +820201020202840001000201810102010284000200010201028100018501000100010284 +020100010285020002000201810100820001020102820100028302000200810001820100 +0182010001820102008200010284020002000201020100010281010205020001 +010281000282020102840200020102810201040181000106018202000284020102010282 +0201020202820100028202000203028100028b0201000200020100020100028402000201 +020202810102010287010200020002000201028101028402000201028402010201028402 +010001028202010201028101020202810001810102810201060183020102010201810200 +010081010201028901020100010001020102850200010001028f02000200010002000200 +010001000102860200010001000288020100010201000200840001000102860200010001 +00028c020100010002000201000100028102010101850002000200018201000283020100 +019101020001000100020100010001020102010086000100010001000100810200820001 +008200020001008101000400810100040081020002008302000200020083010001008600 +020001000100820002000100810100090083020002008600020002000200020083010002 +000200830100010002008701000200020001008600020002000200820002000100850100 +02000100040081020002008302000200010083020002008c000100010001000100020002 +00920002000100010002000100020002000100010004008102000100a502000100020002 +000100020002000100020002000100010001000100020001000100020002008f00010001 +0001000100010001000201008c0002000102000100010002000181010282020100850002 +010200028102018101028502010002010209028101028102010101820201020102010184 +020002010282020002010201010102810102010282010200820001000100890102010201 +0001020102010281010201028300020102820201020002 +810200850002000200020102810102010201018200020101018100018201000182010001 +010184020001000282020002010281010285020001020102020281000202028201000201 +028201000101010402010183000200010601810200810002830201000201028201000281 +02008400020102008d000102010201000100020100010283020102010401050282010201 +830102010202028400010201020102010182020102010202018202010201020101820201 +020202030102020201020203010202820100010101010201018100018101028102010101 +810002810201020181000281020102018202000102018302010001020101028201000181 +010281020183010001028102010101850001020102018501000201020181010283020002 +018101028302010001040182000102010201018102010301840201000201140181020181 +010201028101028202010201028301020102010281010201028101028202010282020102 +010281010282020102820201020102810102850201020001020102810102820201028202 +010282020102010281010282020102820201028202010282020102010281010282020102 +820201028102018301020102820201028202010282020102840201020102820201028102 +018101028602010200010001810102850201000100028502010002000286020102010201 +020202810102820201020202810102830201020181010202028201000202020101010283 +010201028502010001000201029201020100010001000102010200020102000200810002 +010283000201028202000187010001000102010201028101008500020102000281020183 +010002008100028202010281020189010001020002000201028102018201000282020102 +05028101020002 +050283010200020202010181020108018102010301830201020183010201028202010282 +020102810201810102030201010102810102030287000100020102010204028701000102 +010001020302810002840200020102840200020102830200020185010200020102020203 +01830201000101018102018301000102010281010281020186010200020001029f020002 +000100010001020100010001000102010001000100020001000100010286020002000100 +028602010001000102860201000100010286020002000100028202010284020002000284 +020002000282020102840200020002840201020002820201028202000282020102810200 +820001028202000282020102810200880001000100010201020102830002000201028300 +020002010283010201028302000100820001028c02000200010200010002000102820200 +028702000100010001000200830100010001008101008200010081000282020002810200 +810002820200028502010002000201028401000200028602010200020002890201020100 +020002010282020002830201000285020002000102810200020002028101000200830200 +010003008901000200020001000200040091010201000100010001000100010001000100 +01008a010001000201000100020181010284020002000282020102850200020001028102 +0184010001000103018100018201000101018d0001000100020002000200020001020181 +02008a00010002000200020102018101008a000201000102010201020081000185010200 +010002820200020302010001028501020102010201028900010001000201000102010283 +000201020102850102010002010101830200010201028200010201028101028202010203 +0281010282020002 +01028101028202000283020002008e000201000102010200010200010201840102010001 +820100018201020101010102810102810201810102820200028202010203028101020302 +830002010001000202810102870201020102010001010101028100028402000200028402 +000200028902000200010200020002020284000201020081000182010201810102810201 +8801000102010201020101018100010201010202007f0153018102010901810201020181 +020103018102010301010203010102030101020201830201020101018302010201010182 +020102810201830102010281020183010201028102018501020102010201020101820002 +010e0181020101018e02010200010002010200020001020102018c020102000200010200 +020100018101028102010201020281000202028101028102008b00020002000201020100 +010281020183010200020102810002810201900100010001020001000200020102010002 +830201000201028401000102000100010184020002000201028201000282020102020281 +01020502010101020001 +010281010284020102010282020102810201190182020102820201020102840102010200 +830002010204028101028502000102000205028300020001910102000200010200020002 +000201020100020102010103028a01020102010200020001028702010201020102010101 +820201020102870102010201020002010281000201028301020102830201000288020102 +010201020102880201020002000200028a02010201020102010201028402000200028402 +010200028402010201028602000200020002840201020102820200028402000200028402 +010201028202000282020002840201020102820200028202010087000100020002000288 +020102000100010002820201028202000282020002820201028202000282020002820201 +020102810100850001000200028202010083000200028202010282020002890200020001 +000100010088000100010001000100830002000201028100028202000282020102010281 +010282020002010281010282020002820200020102810002820201028202000201028101 +028202000282020102010281010282020102820200020102810002820201028202000282 +020002820201020102810102820200028202010282020002820201028202010282020002 +820201028202000282020102820200028202010284020002000201028201000196010002 +000100020002000100010002000200010201020105018100010301830001000184010200 +020183010200010101830200020002008202010087000102010201000181010284020001 +020182010200860002010200020086000100010001020102820002010501810201820102 +008200010288020002000102000100840001000102840200020002820200020102010101 +0281010203028101028202000202028101020002 +820200020302830102010202028300010201870102010200010201870102010200010001 +050181020183010201020102880102010002010201020302860001000201000184010201 +000284020001020102018200010282020102020285010201020002010281010202028501 +020102010201028100020102820100010401810201850100020001020102010184020102 +010203028101008700020002010201028a02010201020102010201028a02010201020102 +010201028602010201020102860201020102010282020102860201020102010284020102 +010284020102010282020102840201020102840201020102820201028402010201028202 +010282020102810201040101028101028302010201010182020102820201028102018401 +020102010101820201028202010283020102010501820201028102010101820201028102 +018301020102810201110182020102810201810102830201020182010201020181020103 +010102030181020102018102010301010203018102010201810201030181020109018102 +01080181020115018102010b0181000186010200020102010f0184000102010284020002 +000284020102010281020182010001010185000200010200850002000201028102018901 +000100010200020002810200890001020102000200010283020100028102018601000200 +010200820001028a02010001000201000100028202010201028100020202830100020104 +018100028202010202028100028202000207028201000282020102820201020102 +860201020002000283020001028102011e01010201010302840100020002020282000102 +0102830002000204028101028a0201020102010200020102850200010200020102830102 +000284020102000204028a00020102010001020001020602820100020202820102010301 +01022b018300010001020183000100010301850001000100010101850001000100018601 +000100010001010185000100010001860100010001000101010100820100010101850001 +000100019401000100010001000100020100010001020100010088000100010002000200 +88000100010001000100880001000100010201008a000100020001000100010088000100 +010001000100880001000100010201008500010001000285020102000102860200020001 +000283020001028502000200010286020002010001028502000102010281020087000200 +010201000201028100028202010285020100020002010281000285020102010002820201 +02820200028502000200010282020002820201028502000200010282020002820201029c +020002000201020100010200010201000200020001000200020001020101018102010c01 +810201010183020001028202010281020187010200010001000205028701000200020102 +008100018101028202010082000201840100020002020281000201028301000102810201 +010101028201020181010085000102010002820201028102018101000100810102840200 +020002010281010208028101028202000283020100020102810102 +010281010282020002820200020102940102000100020100020100010200010002010002 +010e0181020184010002010283020001020102810002030281010202028d000200020001 +0001020001020102020282000201810102040281000202028d0002000201020100010201 +0200010301010202010102010181020187010201000102010283020002008a0002010002 +000200020002950201020100020001020102010201000200020002000297020102010201 +000201020102000100010201020001000201880102010201000102018501020100010282 +02010284020102010201028b010200010201020102010201040182000201020101028100 +010101010203010102820102018101028102010201010203018102010201830201020103 +018102010101010203018102010f01810201010183020102010101830201020101010102 +030101020201830201020101010102030101020201830201020101010102030101020201 +830201020101018302010201010101020301010203010102030101020301010203010102 +030101020301010281010201028201000182010201030181020101018302010201020181 +020183010001028402000200028202010283020100018201000101018300010001830102 +000201028100028602010200020001810102820201028302010002010290010001000102 +010200020102010002000181010001000202850002000100018201000281020181010284 +020002010283020002010201860002010001000282020102010281010203028101020102 +81010202028101020102820102010001 +820201028202010282020001810102810201230101028100020102810102010281010203 +028100018101020102830102010282020001850102010001020302830002010201028301 +020002020285000201020102060281000201020101830201020182010201820102018201 +02010201810001010181020105018102010c0181020104018102010b0181020104018102 +0104018102010301810201040181020110018102010e0183020102010301810201010183 +020102018201000182010201010183020002010101010281000182010001010184000100 +010093000100020002000100020102010001000100010088000100010001000100830001 +000285020100010002870200010002000200820001028702000100020002008800010201 +02010001028102008c000102010201000102010201008100028502010001000290020100 +010201020001000200020001000285020100010002850201000100028502000100010285 +020001000102850200010001028502000100010289020001000102000200028302000102 +8e020002000102010201000102010201010101020b018102010301820001028502010002 +010201028401000100028202010281020186010200010002018101008600020102010200 +810002830201000281020181010283020001020102840001000201020181020185010200 +020002840201000201840102000201840102000201810102010281010283020100020202 +8301020102010281010282020102010282010201810100 +880200020002000201020202010181020190010201000201000201020100020100020184 +010201020109010302810102840200020002010281000201028100020602810001840102 +010201830102010282020002020283010201020202830102010201028900020001020002 +000201850102000201020102840102010201010185020100020102910200010201020102 +010201020102010201028a02000200020002000200028802010201020102010288020002 +000200020002860201020102010284020002000284020102000284020102010284020002 +000284020102010282020102840200020002820201028402000200028202000288020102 +010001000100840001020102820200028202010082000102820200028202010282020102 +820200028202010282020102820200020102830102000183010001028102010301010281 +010282020102820201028102011101010281010282020102010281010282020102010281 +010282020102010281010282020102820201020102810102820201020102810102820201 +028202010201028101028202010282020102010281010282020102820201028202010201 +028101028202010282020102820201028202010282020102820201028202010282020102 +820201028202010282020102820201028202010284020100020182010002820201028202 +010284020102010282020102820201028202000186010001000200028802010002000201 +000103018202000201028101008700020002000102018901000201020002000201810102 +81020186010201000200018b010201000100010200020002840201020002020281010288 +020002000201000201870102000201020102020201008101028102000100010282000102 +82020102860201020002010206028401020102010101 +010281000284020001000202020401810201820102010501810201140182020102820201 +028402000200028302000102030281010285020001020001020181000204028300020102 +020283010200020102010093020102010201020102000200020100020002010281020182 +01020103018402010001028102017f012a01810001040183000100010201830001000102 +01810001040181000101018100010101820001008100010101830001000102018c000100 +010001000100010001008e00010001000100010001000100010092000100010001000100 +01000100010001000100b700010001000100010001000100010001000100010001000100 +010001000100010200020002010201000100010001000100010001000100010201810201 +0c0181020101018102018801000201020001020185010200020102010201010102890001 +000102010200020198010200010002010201020002010201000200010200020002010301 +010284010001000181010282020001840102000102010281000202028400020001028502 +00020001020102820102018101028502010201000182010001810100 +010281010285020102000102880201020100020100018901000100020100010001830100 +0201820102010e0182020102840201020102010284010201020081000201028100028402 +010201020102840001020102030281000201028301020002020285000201020102820200 +028402000200020802840002010201810102010281000202028100028702010201000200 +028e02010201020102010201020102010286020002000200028802010201020102010286 +020002000200028402010201028602000200020002840200020002840201020102820200 +028602010201020102820201028202000284020102010282020002840200020002860201 +000100010084000102010282020002820201008200010282020002820201028202010282 +020002850201000200028202000282020102810200880001000102010001008100020102 +810002820201028202010286020001000100018601000100010001020183000100028202 +010282020002010281010282020002820201020102810102010281010282020102820201 +020102810102820200020102810102820201028202010201028101028202010282020102 +010281010282020102820201020102810102820201028202010282020102820201028202 +010201028101028202010282020102820201028202010282020102840201020102820201 +028802010001020100020181010281020183010201028102018601020102010201020183 +000200028402010201028502000200020104018b00010201020001020002000282020102 +0102850102000102018101028a0200010201020002000201850102000100028402000100 +020102010003028c01000200020001020002010201010102028400020102008300020102 +8102008100020102820100028902010200010002010201820102010901 +820201028202010201028501000201020182010201220181020101018202010201028500 +020002010201020101840201020102010286010001000200020202860001020002000284 +020002000282020002010290010200010201020002000201020102010204020201820201 +02820200028102017f017601820001008100010101850001000100010101860001000100 +01009f000100010001000100010001000100010001000100010001000100010001000185 +010001000102930201000100020001000100020001000100020001810102830201020102 +010102010183020102010201010288010002010200020102820200028502010001000281 +020187010001000201020083000102018501000200010288020100020102010200010085 +020100020002810201010182020102010281010086000200010200020102810002010282 +000102010202008202000282020100840002010201840102010201020181000182010001 +810100 +810102010283000200020202840100010001820100018401000100018401000100018201 +000113018102010101820201028202000283020102018101020102810002820201020102 +830002010204028300020002020281000204029701020102000200010200010002010201 +02000201020002010201850002010201029002000201020002000200020002000200028e +020102010201020102010201020102860200020002000286020102010201028602000200 +020002860201020102010284020002000282020002840201020102860200020002000282 +020102820201028402000200028202010284020002000289020002000100010001008600 +010201020102010281010084000102010282020002820201028802010001000100020083 +000200028202010281020088000100010201000100810002820201020102810102820201 +028702000100010001008800010001000102010085000100020002010281000201028101 +028202000201028101028202000282020102010281000282020102010281010282020002 +010281010282020002820201020102810002820201028202000201028100028202010282 +020102010281010282020102820201028202010282020102010281010282020102820201 +028202010282020102820201028202010282020102840201020102820201020102850100 +010201028202010282020102820201028202010297020102010201000100010201020100 +010002000102000201010181000181010282020102820200020102810002810201850102 +010201020102010181000181010289020001000102010200028102018401000100028502 +01020002018101028c020001020100010001000102008600010201020002010286010002 +0102010282020002820201020202820102018401020102010c01 +810002830201000204020101810201820102012601870201020002010200010084020002 +010207028101028402000201028602000201020102880201000100010200020302810002 +0a0285010201020002810201820102018101020302070181020105018102018201020101 +018102010401830201020102018102010301010282010201010101020301830201020186 +010201020102010301830201020102010102020101028101028102010101010203018102 +01090181020109018102010301810201090181020118018102017f010601850001020102 +0083000100018e0100010001000100010001000102010101010202010102030181020106 +018302000102820200028102018201020186010200010002018a01020002010201000100 +028702010200010001020102840002000201810100010085010200010002870201020102 +01020101018102018201000201028501020002000201028a010201020102000200010203 +02820102010a018300010001 +82020102010281010082000201060181000108018100011b018100028202000201028101 +020502840102000102820200028102018101020202810002020201008202010295020002 +010201000200020102010201020102000201020202010183020100018101020102810102 +a0020102000200020002000100020002000200010002000102000100020102000200a000 +010002000200010201020100010001000200010001020102010001000200010083000100 +02870201020100010002820201008f000102010001000100010201000100028b02000100 +01000100010001008400010001028302000200810002850201020100028b020102000100 +010001000100860001000100010281020088000100010201000100810002820201028202 +000201028701020100010001008a00010001000100010001008500010002000201028100 +028202000201028100028202000201028100028202010201028100028202010201028101 +028202000201028101028202000282020102010281000282020102820200020102810002 +820200028302010002820201028202000282020102820200020102810102820200028202 +010282020002820201028202000282020102820200028202010282020002820201028402 +000102008200010282020102820201028402010201028202010283020102010101890001 +000102010001000283020100018301000201010184020102000286020102000102018501 +020002010201028e00010201000200020102010001000281020183010001028102018101 +028102018101028202000289020102000201000100028802010201020102010285020100 +01000282020002820201020102830102000281020182010201020101020e01 +820201028402000201028802000102000102000105018300010001210185020102010002 +820201028302000102060281000205028401020001020102850001020102008200010201 +028100020302890102010201020002010281020103018202000101018102018601020102 +010201030183020102010301830201020102018302010201020183020102010201830201 +020102018302010201020183020102010201830201020102010102030189020102010201 +020102010201830201020181010283020102010e01810201030101020301010216018102 +010701010202018302010201120183020102010101010202018302010201010101020301 +010202018302010201010101020201830201020101018302010201010101020201830201 +020101018302010201010101020301010203010102020183020102010101830201020101 +0183020102010101830201020101018302010201010183020100028d0201020002010201 +000102010201880100020002000100010101010283010201028202010285020102010201 +010182000102820200018101008300020001820102018b0102000200010201020002018d +010200020002010201000200010288020100010001020100810002010284000200010281 +020101018b02010201020002010002000282020102010281010282020100830002010284 +0201000102810201030181020109018100010101 +840200020102820200028102013001850201000200020202840102000102010281000286 +020002000201020302810002020201000102010101028101020102810102010283000200 +0208028f0002000201020102010201020100010281020103018302010201010186000200 +0201000101018502000201000186010200020100019d0102000200010001020102010001 +000201020001000102010201000100028f020001000102010201000100010201008c0001 +020102010001000200010082000102890200010001000100010088000100010001000100 +930001000100010001000102000200010001000100880001000100010001008800010001 +0201000100880002000200010002008a0001000100010001000100880001000100010001 +00860001000100010281020083000100028a02010001020002000100028a020100010200 +0200010002850201000100028a0200010002000200010002850200010001028702000100 +020002008800010201020100010285020001000102ab0201000102010201000102010201 +000102010201000102010201000102010201000102010201000201020002810201010183 +020102010101830201020101018702010201020102018201000105018500010001020102 +010102830001020183010001020102810102810201840102000201810102840201000201 +8a0102000200020102010002810201810102830200020185010200020102850200010002 +018101028402010200020102810002030288000200010200010002830201000283020102 +011301810001 +010281000205028600010201020001020181000182010001260182020001810102810200 +820001028202000285020102010002820201028202010284020100010201028100020102 +95010201000102010201020102000200020102010201028102010d018e00010201020102 +01020102010201028c020102010201020102010201028802010201020102000286020102 +010200028402010201028402000201028402010201028402010201028402010201028402 +010201028202010284020102010282020102840201020102820201028202010283020102 +011501820201028302010201040181020182010201820102010401010203010102810102 +810201140101020201820201020102810102820201020102810102820201020102810102 +820201020102810102820201020102810102820201028202010201028101028202010201 +028101028202010201028201020181010281020101018202010282020102830201020101 +010102810102820201028302010201810102830201020181010281020102010102820102 +018101028302010201810102840201000201850102000201028202010282020102820201 +028202010289020102010001000201028402010200028202010281020101018302000102 +8c0201020001020100010001020184010002000286020001000102018401000200028702 +010200020002018801020002000201020082000102820200028802010201020001000281 +020182010002020281000284020102000282020102880201000200020102011701 +8802000102000200020105018102012b018300010001820100028c020102000200020002 +0100010203028100020102010103028501020102000209028f0002010201000102010200 +02010200028b0201000200020002000102014b01820001008c0001000100010001000100 +01008c000100010001000100010001008a00010001000100010001008800010001000100 +010088000100010001000100880001000100010001008800010001000100010088000100 +010001000100880001000100010001008a00010001000100010001008800010001000100 +0100880001000100010001008a0001000100010001000100880001000100010001008c00 +0100010001000100010001008c000100010001000100010002008300010002a202010001 +000100010001020102000100010001000100010201000100010201000100029102010001 +000102010001000102010001000201028100018601000100010001010185000100010001 +010181000183010201028102010a01830201020101018400010201028302010201870102 +00010001020182010201010186020001000102018c010002000102010200020002018f01 +020001020102000200010200010002810201850100020001020102810002040201008301 +0200028102011b01810001 +810102820200028802000201020001020182010001020181000182010001270186000100 +010200020102810102830201020181010282020102820200028202000282020102820201 +02030289000200020102010001020802820102010c018102019001000201020102010201 +020102000200028a02010201020102010201028802000200020002000286020002000200 +028402010201028402000200028602010201020102840200020002820200028402010201 +028402000201028202010284020102010282020102820201028402010201028102011701 +01020a018102010701010203010102820102011601810201030102020101820201028102 +018101028602010201020102820201020102810102820201020102810102820201028202 +010201028101028202010201028101028202010201028101028202010282020102010281 +010282020102820201028202010201028101028202010282020102820201028202010282 +0201028202010282020102820201028202010282020102820201028d0201000102010200 +0102010201028202010282020102820201028c0201020100010001000200010284020102 +01028202000102018102018a010001000100010002010292020102000100020100010002 +0102010001000181010201028a0100010201020002000102830201000203028100028102 +0184010201000201028201000202028300020002020281000201028101028102011b01 +8401000200028502000201020182010201820102012a0181020104018900010201020100 +010001820100020402810002850200010201020202970102000201020102000200020102 +010201020102000201029702000201020002000200020002000200020002010201020103 +018102010501810201040183020102010401810201020183020102010401810201020183 +020102010201010203018302010201020101020301810201040181020104018102010201 +810201140181000104018300010001020181000101018400010001008a00010001000100 +010001008600010001000100880001000100010001008a00010001000100010001008800 +010001000100010088000100010001000100880001000100010001009700010001000100 +01000102000100010001000100010001008c000100010001000100010001009000010001 +00010001000100010001000100a900010001000100010001000100010001000100010001 +000100010001000100010001000100010001020096000102000100010001000100010001 +000100010001020101018202010282020102820201028c02010201020102010201020102 +840201020102860200010201000201028401020102018401020100020102840100010201 +810102850200010001028302010002820201008300020002890200020002000201000201 +0281010283020001028602010002000201820100011d01810001 +830102010282020002810201840100010001820100010201810001820100012c01810002 +810201050101028101020102810002010281010284020102010203028300020002820200 +0204028701020102000200020102060183020102010101820201029e0200010001000201 +020100020002000200010002000200020001000102010287020001000200020085000100 +0200028b0201000102010201000100028c020100010002000201000100028c0201000100 +0200020001020002870201000200020002880201000201020100028402010201008a0001 +000100010001000100830001000101018200010081000103018300010001820100010701 +830201020101010102820102013101810201020181020104018202010201028101028202 +010282020102010281010282020102010281010282020102820201020102810102820201 +028202010282020102010281010282020102820201028202010282020102820201028202 +010201028101028202010284020102010282020102830201000201028201000282020102 +82020102820201028402010201028d020102010001000100010001000186010001000100 +01020181000188010001000100010001820102018401020002018d010200020002010201 +000200010202028201000201028401000200018101028302000102820201028202000282 +02010201028101020102010001028201000203022401 +02028200010201020101810201820102012c018102010601810200850002000102018101 +0282020102010285010002010002010281000202028101008d0002010201020102010200 +02000202028100020102850102010001029a020001020100010002000100010201020102 +010201020102010201890102010201020102010288020102010201020102870201020102 +010201020182020102840201020102810201020183020102010201820201028102018601 +020102010201830102010282020102840201020102820201028102018301020102840201 +0201020102820102011b0181020107010102050183020102010b01810001040181000104 +018300010001020185000100010001010101000401820001008100010101850001000100 +01870100010002000201820100028a020100010200020001000285020100010002810201 +86010002000200018701020002000100028502000100010281020186010001020100018e +010200020001000201020001000200810001830100010282020001960100020102000200 +020001000200010001000200020002810201010101028101028402010201028602010201 +020001850102010201028402010201028302000102880201020102010002018501020002 +000201028601000200020102010284010002010281020083000102008400020001028502 +0102010002850200010001020102830002000282020001820102012201 +810102820201020302840100010001820100010301830001000105018100012201820001 +020102010181020181010282020002840201020102010283010200020202830002010284 +02000200028e0200020002010200020002010201028102018b0102010201020102010201 +02820201020102010101000101a300010001000100010201000100010001000100010001 +000100010001000100010001000297020001000100010001000100020002000100010201 +0201008e0001000200010001000102010001009700010001000100010001000102000100 +01000100010001008a000100010001000100010088000100010001000100880001000100 +010001008a00010001000100010001008800010002000100020088000100010001000100 +850001000100018601000100010001010101008201000103018300010001040181000102 +018300010001040181000105018100010401810001030101020201860201020100010281 +020101018100028102010101830201000101010102820100018101028102010101810002 +810201810102830201000101018902010201000102010201010183020102010201810002 +810201830100020101018302010201810102830201020105018a02000200010001000100 +0184010001000102018100018a0102010201000100020102820201008100028802010200 +020001020185010001000201860102000100010288020100020002010201010102028300 +010002820201028102008600010200020002030201018102012401 +8101028402000201020102010183020102012d0183020102010301850200020102018601 +000100020102870200010201020002020283000200020102880100020102000201020202 +890002010201020102010291020100010001000100010002000100020002900201020102 +010201020102010201020102880201020102010201028602010201020102880201020102 +010201028402010201028602010201020102860201020102010282020102820201028602 +010201020102820201028202010284020102010282020102820201028202010284020102 +010282020102820201028102011b01810201070101028201020101010102820102014701 +820201020102810102820201020102810102820201028202010201028101028202010282 +02010201028101028202010283020102010b018202010282020102820201028202010282 +020102820201028202010282020001840100020002820201028202000285020102010002 +840201020001010182020102840201020102820201028302010201840102010201830100 +0102810201850100020002018201020183010002018c0102000200010201020002000286 +020102000200020102820100020102010001020101010287000200020002000203028800 +02000201020102012301 +820201020102830102000187010002010001000182010001820100010201810001020181 +0001200183000100028a0201020001000201020102060285010201000102830201020101 +010102840100020100860002010201000205028901000102010201020102810201810102 +01028300020001ab01000100010001000100010001000100010001000100010001000100 +010001000100010001000100010001009600010001000100010001000100010001000100 +010001008c000100010001000100010001008c000100010001000100010001008c000100 +0100010001000100010088000100010001000100880001000100010001008a0001000100 +010001000100880001000100010001008800010001000100010088000100010001000100 +8600010001000100880001000100010001008a0001000100010001000100880001000100 +01000100880001000100010001008a00010001000100010001008a000100010001000100 +01008c000100010001000100010001009000010001000100010001000100010001008f00 +0100010001000100020002000200028c0201000200020001000100010081000181010085 +000100010001010188000201020100010201090181020104018202000287020100010001 +000186010001000102010201010283010201028302010201830102010083000102018201 +000281020181010290020002000201020100010001020102000104010102810102840200 +010002820201020102020186000200020100012901 +820200028402000201028102013001830201020184010201020183010200020102850001 +000102018101028202000202028100020102820102018201020183010002010101040283 +000100010101840200020102810201870100010001000201850100020001028c02010201 +02010201020102010286020102010201028e020102010201020102010201020102860201 +020102010284020102010286020102010201028402010201028402010201028402010201 +028402010201028202010284020102010282020102820201028402010201028202010282 +020102820201028202010282020102810201240102020401830201020148018202010201 +028101028202010201028101028202010282020102010281010282020102820201020102 +810102820201028202010283020102010701010281010282020102820201028202010282 +020102820201028102018201020185010200010002010283000200028202010282020002 +840201020001820102010101820201028402010201028102010201830001000188010001 +000100010002010281010286020002000102018401000102018701020102010001028402 +010002010201020286000102000200028a02010200020002000200020102810102030284 +01020102012301 +81000282020002810201820102018401020100012b018102019201020102010002000200 +020102010001020102010281010282020002010284000102010201028200020101010102 +810002840200020002010283000200028602000200020002850201020102018801020100 +0100010001ad010001000100010001000100010001000100010001000100010001000100 +010001000100010001000100010001009600010001000100010001000100010001000100 +010001008e0001000100010001000100010001008c000200010001000100010001008a00 +0100010002000100010088000100010001000100880001000100010001008a0001000100 +010001000100880001000100010001008800010001000100010088000100010001000100 +860001000100010088000100010001000100880001000100010001008a00010001000100 +01000100880001000100010001008a00010001000100010001008a000100010001000100 +01008c000100010001000100010001009000010001000100010001000100010001008c00 +010001000100010001000102850200020001028702000100010001008f00010001000100 +0100010001000100028402000100028102010f0186020100010201028b02000200010201 +020001020101018402010201028402010201028102018201020086000201020100028202 +010286020100010002018701020001000100018101008200020181010284020001000185 +01000200010203028601020102010001820100012901 +810002020283000100018201000102018100018201000182010001020181000127018202 +010201028701000100020001020602810002810201840102000102010281000284020001 +000281020181010282020001810102850200020102018401020102018201000282020102 +900201020102010201020102010201020102810201810102880201020102010201028802 +010201020102010286020102010201028602010201020102840201020102840201020102 +860201020102010282020102840201020102850201020102018101028302010201010184 +020102010282020102810201020183020102010101830201020123010102050183020102 +014b01010281010282020102010281010282020102820201020102810102820201020102 +810102820201028202010282020102010281010282020102820201028202010282020102 +820201028202010282020102820201028202010284020102000283020100028802010002 +0002000102840200020002830201020101018102010d0186020001000100018801000100 +01000100018b010201020100020102010002010281010201028201000183010200018101 +028602000201000102820201028302000102820201008600020100020002050286010201 +020102012301 +01028100020202020101022f018902010201020100020002880201020001000100020102 +810102010281000185010201020002020281000183010201028202010284020102000201 +0285000200020102bd020001020100010002010201020100010001020102000100020002 +000200010002000200020001000102010201000200020002000102010201020100010283 +02000200910002000200020001020102010201000200028c020100020002010201000200 +028a02010002000200020100028d02010201000200010200010201028e02000102010200 +01000100010001008a000100010001000100010088000100010001000100880001000100 +010001009100010001000100020002010001000100010086000100010001008800010001 +00010001009c00010001000100010200010001000200010001000201000100010001008a +00010001000100010001008a000100010001000100010085000100010002860201020102 +01028302010002850201000100028c020100010201020001000200029502010002000100 +0100010001000100010201000100028b0200020001000200020001028b02000102000100 +02010201028202010282020102820201028402010201028402010001028402000200028a +02010002000201020102010101820201028402010201028102018101028202000201028b +010002000102010200010001010186020001000102018101028302000102020282010002 +8202000205028101020102850102000200018301020102810201820102012101 +820001020202820100018201000184010001000182010001820100010201810001270182 +000102860200010001020181010201020100010281000281020101010302830102010282 +020102040284010002000101018302000102820201028402010201020102010001018102 +010501810201040181020105018102010401810201040181020104018102010401810201 +040181020105018102010201810201040181020103018102010301810201040181020103 +0181020103018102014d0181020103018102010201810201030181020103018102011801 +810201030181020103018102010101010203010102020183020102010301840201020102 +820201028202010283020102018101028102010301810201030181020102010302940100 +02000100010001000100010001000100010001020101020301830001020102018102018e +010002000201000200020002000102810201850102000200020202830002000102018302 +010201810102010283010001020102840002000201850102000201028302000102860200 +01000200028102012c01 +84000200010283020102018401020102012b018302010201850102010201028202010201 +028101028202010201028100020202860001020102000203028600010201020002810201 +810102810201810102830201000202029901000200010001000100010201020002000200 +020102010201028e02000200020002000200020002000288020102010201020102880200 +0200020002000286020102010201028402010201028e0200020002000100010001000200 +028402010200028202010284020002000282020102820200028402000200028202010282 +020002820200028202010282020002820201008800010001000100010088000100010001 +0001008a0001000100010001000100880001000100010001009100010001000100010002 +010001000100010086000100010001008800010001000100010086000100010201028202 +000201028101020102810102820200020102810102820200020102890102010001000100 +01008a000100010001000100010085000100020002820201020102810102820201020102 +810102820200028202010201028101028202010282020002820201028302000102880200 +020001000200028202010282020002820200028202010282020002820201028802000201 +000200010282020102820201028202010282020102820201028702010201000100018101 +028302010001860102010201000103018302010201030188020102010200010201840100 +0100018101020102850102010001028c0201000201020100020002000284020002000284 +02000200020502810102850201000200028702010201020102012201 +0102810002840200010201870102010200010001820100018201000102018100011f0181 +020187010201020002000201020100010181000202028101020202030187020001020102 +010081000282020102820200020202820002010101010281000281020181010287020102 +01020102008100013f0101028101028102017f016f018900010201000102010001050184 +000100010282020001830102010282020002820201028402000200028c02010201000100 +020100020002860201020100020189010200020001020102009100020100010201020102 +0001020002000201830102010203020200030283000100018501000100010201022b01 +010281010281020133018102010701020203010102810102820200020102820100010401 +83020102008100028102018101008500020102000281020183010200029f020102010200 +02000100010002000102010201020102010201020102010201028e020102010201020102 +010201020102880201020102010201028602010201020102860201020102010284020102 +010283020102018201020103010102810102840201020102820201028202010284020102 +010282020102840201020102820201028202010285020002000102820201028302010001 +820100010101830001000189010001000100010001008800010001000100010088000100 +010001000100880001000100010001008800010001000100010086000100010001008800 +010001000100010088000100010001000200810002880201000200010002008800020001 +00020002008a000100010001000100010083000100010301820001008c00010002000200 +0100020001008e0001000200010002000200010002009800020001000200020002000200 +010002000200010002000200930002000100020002000100020002000100020002860200 +01000102018101028202000282020102820201028102010201850201020100010a018200 +0201020183000102010501030281010201028c0002000201020102010201000281020184 +01000102018d010002000201000200020002000283020001028202010291020102010201 +0002000102010201020102012201 +010281000289020001020001000102010301810001030181000102018100011a01830201 +020185010201020002820201000100810200820002008100028202010081000285020100 +010001010186000201020100020102010104028300020102850201020002018101028602 +01020102010285020100020001b501000102010001000100010002000100020002000200 +010002000200010001000100010001000200020002000100010001000100020092000200 +010001000100020002000200020001008e0002000100020002000100010002008e000100 +0200020001000200020001028a0201000200020002010001010181000102018100012301 +8102011d0101020101820201028102018101028602010201020102810201810102830201 +02010a018300010001070101028501020102010281020181010283020102018101028602 +010201020102810201830102010281020181010283020102018101028302010201010183 +020102010101890201020102010201020181010281020182010002830201000282020102 +010283010201028202010282020102830200020102018202000282020102840200020002 +810201040183020100028402010201028402000102018401000102018301020100840002 +010001860102010002000281020183010001028202010203028101028302000102010283 +00010002850200010001020102880102010201020102012201 +81000202023c018100018101028102018201020101018502000102010283020102010801 +830002010201028601020102010002040284000102010288020100010201020102010202 +018102010501810201050181020104018102010401810201050181020104018102010401 +810201040184020102010282020102810201020181020103018302010001010181020101 +018100018201020103018102010201810001050181000104018100010401830001000103 +010100040183000100010201830001000102018500010001000186010001000100010101 +010082010001010101008201000101018200010081000101018500010001000186010001 +000100010101010082010001010182000100810001010185000100010001840100010001 +030182000200810001880102000100010002018101008300010001010185000200010001 +820102009800010001020100010002000100010002000100010002000200930001020102 +0100010201000100010201000100028d0200010002010201000100010001010185000100 +010001010181020182010201010181020104018102018401020002018201020182010201 +020181020184010200020186010201000200018101020202830001000201028201000201 +02810102840201020102010283010001028502010002000202020201010283000100012a +01 +810002010287010201020001020182010001820100012501810201860102010201020182 +010002830201020083000200028202000201028100020202840100010001060183020001 +028202010286020102010200020102820102018201000281020103010102820001028202 +010093000201020102010001020102010201000102010288020002000200020002960201 +000102010201020100020002000200020001020102930200020002010001000100010001 +000100020002820200028402010001028202000284020100010282020102820200028402 +010201028202000282020002850201000201028402000100010101850001000100010201 +830001000102018300010001020183000100010301010006018100010401810001040181 +000104018100010401810001040181000105018100010401810001040181000104018100 +010301810001020101028101020102810102820201028302000102820201028302000102 +820201028302010002820201028202010282020102010281010282020102820201028202 +010282020102010281010282020102820201028202010282020102820201028302010002 +8702010002010201028202010282020102840201020102840201020001820100028b0201 +000100020002000102010101810201020189000102010201000201020102840100010201 +020186020100020002018501020002000201028200010201028501000201020102018200 +010201028300020002010284010001000203020101850201020102012001 +0102820002013d010102810102810201020183020100020202820002010d018202000201 +02850102000102018201020181010284020102000286020100010001028102013d018602 +010201020102820201028102017f01420198000100020001000100010001000100010001 +00010001000100870001000100010001050183000100019c010002000102000200010001 +000100010001000100010001020102010284020102010282020102860201020102000101 +018202010201028301020102850200010200010101870200010201020002020201000102 +010183020102018301000102880201020102010201020102810002020282010200890001 +00020102000200012801 +03028201020182010201080181000102018100011d018102018401020102018601000100 +010002010201008101020302830002000288020001000100010001850100010001000100 +0101870201020102010002020281010282020002810201040186020102010200020102b6 +000200020002000100010001000100010001000100020002000200020002000200010001 +000100020002000200020001000100010002009200010201000100010001000200020002 +0001008e0002000100010002000200010002008a00020002000200010002008a00020002 +000100020002008a00020001000100020001008800010001000100010088000100010001 +000100880001000100010001008800010001000100010088000100010001000100860001 +00010001008800010001000100010088000100010001000100880001000100010001008a +000100010001000100010088000100010001000100810001080101028101020102860002 +00010002008e000200010002000100020002000100830002000281020102010202810102 +820201028202010282020102820201020102810102820201028202010288020002000100 +020102830201020185010200010201810102810201830102010281020183010201028302 +0100018c0100010001000100010001000182010001820102018601000100020001040182 +020102820200018701020001020102018401000102018901000200010002000102810201 +020181000186010201020002018c01020002000102010200020002010288010201020102 +0102012101 +810002810201820102013101830201020187010201020102010282020102820201020102 +810102020281010201020101830201020108018100020302880002010201000200028402 +010201028702010002000100010301810201330181020104018402010201028102011801 +8102017f012a01820201020102810102850200020001028d020002000100020001000200 +020085000200010001090189020002000102000200028502010002000282020102820200 +028602010201020102820201028402010201028502010201020104018a02010200020100 +020001020202810002830200020081000181010201020100830201020188010201020100 +010201860102010201000101010202830002010281020081000203028100020102860102 +01020102012101 +01028100010e018100010201830001000123018200010081000281020002008301000102 +820201029102000201000100010001000201000100010001000401810002020282010201 +820100028402010201028402010201020302c30002000200020002000200020002000200 +020002000100010201000100020002000200020002000200010001000100020002000200 +01020100020002010201020102010289020002000200020002008e000200020001000200 +0200010001009300010002000200020001020001000200020001028102008a0002000200 +010002000200880001000100010001008800010001000100010088000100010001000100 +880001000100010001008800010001000100010086000100010001008800010001000100 +010088000100010001000100880001000100010001008a00010001000100010001008800 +010001000100010081000107010202810102010286000200010002008e00020001000200 +01000200020001008500020002000111018302010201010181020103018d020002000100 +020002000100010284020001020111019102000200010002000200010001000201000101 +018302010002810201010183020100028202010285020102010002020285000200020100 +0100850200010002008e0002000200010200020102010200028b02010200020002000201 +000182010201820102012801 +030234018102018601020102010201810102020285010201020102070284010201020101 +018102018201020107018502010201020181010284020002010203028701000100020001 +029602010201020102010201020102010201020102010201028902010201020102010201 +870102010201020102860201020102010286020102010201028602010201020102810201 +020181020185010201020102820201028402010201028402010201028202010282020102 +850201020102018101028302010201810102830201020181010283020102018201020103 +010102010181020101018102014801810201020181020103018102010c01810201010182 +020102010281010281020181010283020102018101020102010182020102810201810102 +820201028202010201028101028502000200010285020002000102830200010282020002 +820200028202010283020102018101028302010201010198000102010200020002000100 +020002000100020002000102010201810201030181020109018302010201830100010086 +000201000100028602010201020002840201020102810201850102000100018401020100 +0109018502010201000207028c000200020002010201020102012101 +02020f018100010201830001000123018400010200028102008800010002000102000201 +028a00020100010001000100018801000100010001000182010001840102010201010181 +02018101028d0201020102010201020102010201bb010001000200010001000100010001 +000100010001000100010001000100010001020100010001000100010001000100010001 +00010001000100010092000100010201020100020001000100010001008e000100010001 +00010001000100010087000100010002000102018a02010001000102010001008a000200 +010001000200010088000200010001000100880001000100010001008800010001000100 +010088000100010001000100880001000100010001008600010001000100880001000100 +0100010088000100010001000100880001000100010001008a0001000100010001000100 +8800010001000100010081000104010102810102810201030186000100010201008e0001 +020100010001020100010001008b00010001000100010001000182010201030181020101 +018102018201000104018f00010001000100010001000102010002810200860002010201 +020181010283020102018101028302010201820102019101000200010002000200010001 +000201000101018600020001020102810201820100010301830200020187010200020002 +000282020002020202018b02000100010200020002000283020100020102840100020002 +8702010001020001028502010201020101018102012101 +020235018102018401020102018501000102010202028101020402810102850201020102 +01040183020102010a010102010185020100020102010281000201028601000200010201 +820102018101028102010101850201020102010101850201020102018601020102010201 +010101028201020101018202010281020101018202010281020101010102820102010101 +010282010201860102010201020181010283020102018301020102810201010101028201 +020183010201028102018201020182010201830102010281020183010201028102018401 +020102010101820201028102018301020102810201840102010201440101028101020102 +8101028202010201020c0182020102010281010201028101028202010201028101028202 +010201028101028202010201028101028202010282020102010281010281020183010201 +028102018101028102018301020102820201028202010282020102820201028202010282 +020102840201020002810201950100010001020100010001000100010001000100020182 +0102010b0181020104018102018a01000100020002000102018201020183010201020102 +010181020181010201028201000101018102018201000108018202000282020102010281 +0002890200010002000200020101018102012301 +020233018102018401020102018201020001000102870002000100010002040281000188 +010001000100010001880100010001000100018201000105010102010184020102010289 +02010200020102010001bb01000200020001000100010001000100010001000100010001 +000100010001000100010001000100010001000100010001000100010001000100010092 +000100010001000100010001000100010001008e0001000100010001000100010001008a +00010001000100010001008a00010001000100010001008a000100010001000100010088 +000100010001000100880001000100010001008800010001000100010088000100010001 +000100880001000100010001008600010001000100880001000100010001008800010001 +0001000100880001000100010001008a0001000100010001000100880001000100010001 +008100010401810201070186000100010001008e00010001000100010001000100010087 +000100010001000282020102820200028502010002000201028400020001028202000282 +020002970201000100010001000100010001000201020002010201028202010282020102 +820201028202010283020102019101000100010002000200010001000201000102018202 +000282020102810201010183000102018501020002010283020002018101020102010183 +020102018101028d020001020100010200010001020083000200028b0200020002000102 +0102000201028701020102010201028102012001 +02020f018300010001020181000125010202020101028501020102000201028100011701 +840201020102820200020302810102810201840102010001020183020100010d01810201 +040181020105018102010401810201040181020104018102010301810201040181020103 +018102010401810201030181020104018102010301810201030181020103018102010301 +81020103018102010301810201030181020145018202010201028101028202010201020c +018202010201028101020102810102820201020102810102820201020102810102820201 +020102810102820201028102011d01820201028202010282020102850201020002019601 +020002000100010001000100010001000100010002018201020181010281020102018102 +010501830001020187010201000100020185010001020102010204018302010201010101 +028101028902010201020102000201870102010201020102010285010200020102820201 +0089000200010002000200012601 +820200013301810201840102010201830102010288020002000200010002840201020002 +8302010201040181000108018102010801810201810102010201018202010201020801b8 +020100010001000102010001000100010002000100010001000100010001000100020001 +000100020001000100010002000100010002000100920001000100010001000200020001 +0002000200820001028b0200020001000200020001008a00020001000100020001008a00 +010002000200010001008a00010002000100010002008800020001000200020088000200 +010001000100880001000100010001008800010001000100010088000100010001000100 +860001000100010088000100010001000100880001000100010001008800010001000100 +01008a00020002000200010002008800020002000100010081000105018102018101028b +0201020102000200010002008e0002000100020001000200020001008a00020002000100 +020001029302000200010002000200010002000100010002009100020001000200020001 +000200020001000201028600010201020102820201028202010282020102850201020102 +01880100010201000100028a020100020002010201020101018500020102010202028100 +020102830100020181010282020002810201820102010401810201810102810201020185 +000100010001810100830001000204028100020102840102010002890201020102010201 +02012001 +820102010c01810001840100010001020181000123010200830200020103018100028202 +010201028100018401000100010101810001860100010001000102018300010001060184 +020100020105018700010200010200010f01810201040181020104018102010501810201 +040181020103018102010401810201040181020103018102010a01810201030181020104 +01810201030181020103018102010f0181020103018102015e0181020105018102010301 +8102010201810201030181020102018102010301810201290186000102010200028b0201 +000200020001000200028402010001028402010201028202010284020102010285020102 +01020102018102018d010200010002010201000200010202028301020102810201820102 +0101018702010201020102018101028c0201020102010201020102010281020082000201 +810102910200020102010201020100010201020102012001 +01020101810201820102012e018502010201020185010201000200850001020001020502 +8100028102018401020102010601850201020102018201020108018a0200010001000200 +010001020101029601020102010201020102010201020102010201020102010201840201 +0201028a0201020102010201020102860200020102000284020102010284020002000284 +020102000284020102010284020002000282020102810200830001020181010284020102 +010282020102840200020002820201028502000200010282020102820200028202010083 +000100010101840001000100830002000201028300020102870200010001000100880001 +000100010001008800010001000100010088000100010001000100880001000100010001 +00860001000100010088000100010001000100880001000100010001008a000100010001 +000100010088000100010001000100830001000107018102018701020100020001028102 +008e0001020102010001000200010002009e000100010201000100010201000100010001 +000100010001000100010001009100010001000100010001000100010001000284020002 +0102810201820102010301810201030181020104018b0001000100010001000100018401 +000102010101810002810201860102010201000201028101020202840002000201830102 +010284020100010201020101830201020081000186010001000100010101810002040283 +0001020184010001000201022801 +01020d018100018401000100010201810001220182020102010289000201000100020001 +0201028300020001910102010001000102000100010001000100018401000100010d0181 +02010101810002820200018401000100010101a300010001000100010001000100010001 +000100010001000100010001000100010001000101018100010101810001010181000105 +018100010401810001050181000104018100010501810001040181000105018100010401 +81000104018100010c018100017f01050183020102018301020102810201810102830201 +0201810102830201020181010283020102010d0181000281020188010001020100020002 +850201000200028902010002000200020102820201028402010201028202010281020103 +018602010200020002020283010001028502010201020182010201090181020181010281 +02018d010201020102010201020102010281020081000201028101020202810002010283 +000200028702010201020102011e01 +0102350181020184010201020101018a0002000102010201020102010281000201021401 +81020109018c000100010201020102010201028102018601020102010201030183020102 +010301810201040183020102010201850201020102010101010282010201010101028201 +020186010201020102018601020102010201810102830201020186010201020102018201 +020182010201830102010281020186010201020102018101028102010201010282010201 +81010283020102010c01810201020183020102010b018100010801810001020183000100 +010201860001000100010081000101018200010089000100010001000100018701000100 +010001008a00010001000100010001008800010001000100010083000100010101810001 +03018b02010200020002000100020085000200010002880201000200020001009c000200 +020001000200010001000100010001000100010001000100010093000100010001000200 +020001000200020001000181010081000182010201130183000201028502010201020101 +018402000200010101820001028702010002000201020202020183020102018f01000102 +000100010001020002010201870100020100010200840001020001830100010201028300 +020002860201000102000201022801 +830201020182010201300181020184010201020181010201028101028602010201020102 +03028c000200020100010201000100018801000100010001000182010201090182020102 +8102010401810001820100028402000100010101b6000100010001000102010001000100 +010001000100010002000100010001020100010001000100020001000100010001000100 +0100010092000100010001000100010002000100010001008c0001000100020001000100 +0200850001000100010301010089010001000100010001008a0001000100010001000100 +880001000100010001008800010001000100010085000100010001010101008601000100 +0100018401000100010301010009018100010b01810001290181020103018102010d0181 +020103018202010281020181010283020102018101020102010182020102820201028202 +0102820201028202010281020109018c0002010201000102010002000288020100020002 +0001028502000200020101018a0001000100010002000201820102010301010281010082 +00010201028300010201820100010b018102018101028102018401020102010b01840200 +020002010201018302010002850201000100028702010201020102011e01 +01023c019100020002000200010001000201020102010281020121018100010101860001 +000201020103018102010301830201020104018102010501810201040181020104018102 +0102018102010601810201040181020104018102010a0181020110018102010301810201 +030181020131018100010c01810001040181000104018300010001020188000100010001 +000100830001000101018200010081000101018500010001000182010001010181000108 +0186020100010002008600010001000201880100020001000100029b0200010001000100 +01000100010001000100010001000100010001008100018101008f000100010201000200 +020001000200028402000100020102810102850201000201028202010286020100020102 +010101010281010284020102010282020102810201820100010101850002010201020102 +010101028400020102010201820201028502010001020182010002810201810102810201 +860100010001020089000102000102000201028402000200020102850102010201020102 +880102010201020102011e01 +010215018100011c01830201020185010201020102020282010201830102000206028100 +018801000100010001000188010001000200010001820100010901830201020105018402 +000200029302000201020001000200020102000100020002018b01000100010201020100 +010283020002018401000200028602010201020102840200020102860201020102010284 +020102010282020102840201020102840201020002820200010101820201028202000282 +020102840200020102820200028202010282020102820200028202010282020002820200 +028702010201000100018601000100010001010101008201000101018200010088000100 +010001000100890001000100010001000187010001000100010085000100010001010101 +00820100010101010082010001030101000d01810001040181000104018100010c018100 +018101028202010201028101028202010201020301840201020102820201028202010201 +028101028202010282020102010281010282020102820201028202010282020102820201 +020102810102820201028202010281020182010001010182000201100181000190010001 +000100010001000100010001020104018600010001020102820201028102010101810201 +06018b020102010201020102010201820102018201020106018402010200028202000202 +020100830201020081000283020100012401 +020201018102010201810201320185000200020001010184000200010204022401860200 +020001000182010201820102017f017f018101028102010b018500010001000103018300 +0100018101028102010101830001020102018100010a01010283000100018c0100010002 +000200010002000285020100020002810201010182020102820201028402010201028102 +018301000201820102018101028902010201020102010201060189020002010001000100 +018201000101018102018b01020100010201000201000182010002820201020102890002 +0002010201020102810201850102010201028102011f01 +010282010002810201840100020001820100012401810201840102010201830102000282 +02000201028600020100020002840201020002830201000186010001000100018c010002 +00010001000100010201820100010a018302010201020185020002010001010185000102 +010001010185000102010001010185000100010001010185020100010001010185020100 +010001810102860201000100010286020002000100028702010001000201028702000100 +0200010286020002000200019b0100010001000201020001000100020100020102000200 +020002000285020001000102830200010088000200020001000100880001000100010001 +008800010001000100010088000100010001000100880001000100010001008800010001 +000100010088000100010001000100860001000100010088000100010001000100870001 +000100010001020181000103018200010088000100010001000100850001000100010801 +860201000200010281020081000283020100028202010286020002000100028202000282 +020102010201018202010281020181010281020105018102018201020182010201810102 +010201018402010200018301020102010201018200020109018102010301010201018600 +020002000102840200020002830201020102018500010002000104018302010201040181 +000189010201020102010201020202020101028d01020100020102010201020102008400 +0200010282020102810200810002820200020102810001820102012101 +820200020102010081010283020002012901810201020181020188010001020100020002 +09020f0181020110018a0200010001000102010001050181000105018100017f017f0105 +018300010001010195000100010001000100010001000102000100010002010b01820002 +0101018e00010001000100010001000100010282020001020181020112018b0201020100 +010002000200010601810201010181000101018100010101810201810102850201000100 +0186010001000100018101028202000202028400020002018a0100010200020102010201 +01018102011f01 +0102840100020102830200010283020100012a0181020182010001810102020281000184 +010002000204028300010201930100010001000100010200020001000200010201820100 +010f018102018101028a0201020102010001020102850201020001028602010201020001 +020194020102000102010201020100020102010201020102840201020102860200020002 +01028702010002000201028602000200020002850201000200028102018d010001020100 +020102000200010287020100020102000285020100020002820200028202010281020083 +000200020102840002000100880001000100010001008800010001000100010089000100 +010001000100018701000100010001008800010001000100010088000100010001000100 +860001000100010089000100010001000100018901000100010001000100810001050101 +000201850001000100018401000100010801860201000100010287020100010201020101 +01850002000100018a0102010001020102010001120181000105018b0001000100020001 +000100028502010201020102010102030101028301020102010282010201910100020001 +000100020002000100010200010101830001000281020101010102010181020105019100 +02000201020100020102010200020102018101028f020102010201020102010201020102 +00810002040283010201020102880002000201020102011f01 +8100020302850102000200028802000200010201000121018102018f0102010201020002 +000200010002000208020a01850201020102018401020102010c0181000104018b020001 +020102010201000102830201020183010001028502010201020103018202010288020102 +010201020102860201020102010286020102010201028602010201020102820201028402 +010201028502010201020183010201028102018201020104010102820102018301020102 +810201860102010201020181010283020102018101028302010201810102870201020102 +010201730181020103010102020183020102010101010204018102010101010203010102 +020183020102010101820201028102010201010202018302010201010183020102010101 +85020102010001850102010200010601890001000100010001000101018102010b018102 +018201020181010281020186010201000100028102010801840201020102840201020102 +810201010187020100010001000184010001000185010002000102010282000200810002 +880200010200020102012501 +020282000102020285010200020102020281000184010201000182010001200181000181 +010201020100010181000201028100020202830001000186010001000100018a01000100 +01000100010001840100010001090188020102010201020102810201ac01000100010001 +020100010001000102010001000100020001000100010201000100010002000100010001 +02010101b000010002000100010001020100010001020001000100010201000100010201 +0001000102000100010002000100010002008c000100010201000100010201009c000102 +010001000102000100010201000100010200010001020100010088000100010001020100 +890001020100010001000187010001000100010088000100010001000100880001000100 +010001008600010001000100890001000100010001000184010001000101010100820100 +0106018100010301830001000113018100010401810001050181000104018100010f0181 +000104018100010501830001000103018800010001000102000101018202010283020102 +018101028202010282020102810201020189000102010002000200028202010283020100 +018a01020001000102010201028302010201070182020001860100010001000185010001 +020102810201870102010201020102810201840102010201810100810002020285010201 +0201020302880002010201020102011d01 +03028401000201020202840100020002810200810002010201001b018102018401020102 +0184010001000201028a010200020001020102000202020b018102018401020102018201 +0201080183020100018801020100010001000202029a0102010001020102010201000102 +010201020100020102010201020202810102010281010286020102010201028302010201 +810102010282010201810102020202010102820102018301020102850200010201028102 +018301020102810201010103020101830200020185010201020001830102010283020001 +028502010201000202028701020002010201020102020181020182010001040183000102 +018201020102018102015201010285010201020102810201810102860201020102010281 +020181010283020102010101010201010102820102018101028602010201020102810201 +830102010281020183010201028102018101028302010201810102830201020181010283 +020102010101830002010002000401860200010001000286020100010201028102018601 +020102010201810102830201020104010102880100010001000102010801820201028602 +010201020102010282010201840100020001840100010201020183000200020202890001 +02010002000200020102820102012401 +820200020102010002020100020201008202010282020002020281000281020116018102 +010501870001020002000200820001020502850102000100018801000100010001000188 +0100010001000100018401000100010a0181000182010201810102810201820100018401 +000100010101850001000100010101850001000100010101850001000100010101850001 +000100010101810001010181000101018500010001000101018600010001000100920001 +00010001000100010001000100010001008c000100010001000100010001008300010001 +01018600010001000100880001000100010001008a000100010001020100010088000100 +020001000100850001000100028202010089000102010201000100018701000100010001 +008800010001000100010088000100010001000100860001000100010088000100010001 +000100850001000100010101820001008100010301810001890100010001000100010081 +000101018100010a01860001000100010089000100010001000100010101830001000102 +018500010001000186010201020001008200020102010102820001008300010200850001 +000100018101008500010001000181010084000100010081000188010201020100010201 +030181020102019002010200010001020100010001020100018201000103018200020183 +010201028202010281020106018202000186010001000100018401000100018201020102 +018102018601000102000201010101020100810102010201010102850102010200020102 +86010201020102011d01 +810102820200020202810002020281000201028101020302010081010281020102018100 +0104018100010e018102018501020100010202028101028202010209020b018302010201 +8401020102010d0188020102010002000102020283000201028702010201000201020202 +83010001028302010201820100020302830102000202028101028202000201028c010201 +000200020102010200028202010286020100010201028702010200010201028702010001 +020102018201000202028401020001028202010282020102840201000102010283010201 +020102830102010201028301020102010201018302010201010183020102012301810201 +13018102010c018100011401010201010102850102010201028102018101028602010201 +020102810201810102830201020101010102810001010101020101830001000187010201 +020100020102018102018201020182010201840102010201010183020102010101020201 +018302010201850102010200018301020002890201000200020001020101010102810102 +820201028402010201028302010201820102018501020102010286020002000100010701 +8a0201020102010201020102010281010291020100020002010001000100010200010002 +0202880002000200020002008100020302810102810201820102011d01 +020102028101028202010202028300020002020281000284020002000202028100011401 +810201870102010201020102880200010001000100020102890002010201000201020103 +018800010002010201020183010200010a01820001028102018501020102010281020103 +018302010201030183020102010201830201020103018302010201020183020102010201 +830201020102018502010201020184010201020102010102820100010101010282010001 +890102010200010001020184010001000281020101010102830002000186010201020100 +018101028502000100010285020001000102870201000102010201010184020002000184 +010200020088000100010001000100890001000100010001000187010001000100010091 +000100010001000100020100010001000100860001000100010088000100010001020100 +850001000100010101820001008100010301810001020189000100010001000100010201 +010204018402010001028502000100020087000102010001000283020100020102810001 +8101028202000202028101020a028100020d028101028202000201028200010282020002 +0302010104020b0192020100020001000200020001000100020102010301820002010501 +010208018100018b01000100010002010001020102018102010b01010201000402810102 +8102018101020202820002011e018100010201 +010182020102020281010203028101020102810002850200020001020102820002018201 +00010401830001000111018a000200020102010200010202028100020202010181000184 +0100010001060183000100010f018e000102010200020002000100010001010185000200 +0200010101850002000200010101850001000100010101850001000100018a0102000200 +0100010201008b0001000102010001000100028102018401000100028102010101840002 +000201020182020001040181000104018100010201810201030181000103018102010301 +810201030181020103018102011b0181000126018100010a010100050181000104018100 +010701810201850102000102018801020102000102010283020100028602010201020001 +020101028200020102018302010001010181020107018102018201020109010102010182 +020102810201040181020102018102010401810201010181000283020102010401810201 +010183020102010401820200018c01020102010002000200020001070187020102010201 +02010101010281010201028401000201028b020102010201020102010002020284000200 +02000100810200010089020102010201020102011e01 +02010902810102030282000102030281000283020001028102010101010002018100010a +018102018501020102010202028800020001000102010203028100028102018201020106 +0183020102018101028102010a0185020100010001040103028301020102880201020102 +010201028102018501020102010283020102018101028602010201020102880201020102 +010201028602010201020102840201020102820201020202830102010202028101028202 +010202028301020102820201028402010201028302010201810102830201020183010201 +020102830102010201028301020102810201830102010281020183010201028102018301 +020102810201050182000102810201020101000301010205018100018201020101018100 +010401830201000103010100040184000201000101018202010081000101018100010101 +810001820100010501810001870100010001000100810001010181000101018102010301 +9a0200010001020100010200020001020100020002000100010200019201020002000102 +010201000200020001020102830200010202020100020283000200028502010002000283 +020100020202820002000100030182000201820102010201820201028202010281020181 +01028202010282020102820201028502000201020103018100028102010501010207018f +00010200020002000201000200010201810102820200018a010002000200020102010201 +02820001020b0287000200010201020119018100010201 +830201020183010201028202010202028101028402010001020102810002020281010205 +028401000100011301810002010285010002000102030281000286020002000100018601 +000100010001880100010001000100010e01010283010201028202010083000100010401 +830001000102018102018201000105018100010501810001050181000106018302010001 +050181020103018100010501810001020181020182010001040183000102010301810201 +040101000401810001060181020103018100010201830201000106018100010c01830001 +0001020181000104018100011a018100010a010100050183000100010201850001000100 +010701850001000100010101010082010001010182000100810001010185000100020001 +890100010001000100010085000100010001010185000100010001860100020001000182 +010201840100010001040181000102018402000102010101840002000100840002010001 +0101850001000100018201000103018100010501810001820102018b0102010200010002 +0002000281020107018102010a0189020102010201020102010701830001020184010002 +00028102008400010001020202220182000100 +0a01020286010002010200020102810002010281010201028100028a0200020002010201 +000201070183020102018401020102018101020102850001000100020602820002010101 +81020106018302010201820102010e018800010200020002010281020103010302850102 +010201020102880102010201020102010201020283010201020202850102010201028602 +010201020102840201020102840201020102820201020102810102050281010202028101 +020202820102018101028202010282020102840201020102030281010203028101028202 +0102820201020b0281010202028201020181010281020184010201020107010202040181 +020181010281020107018102010d01810201030102021201810001840100010001110102 +02830100010281020082000102890200010001020100010283020100019e010200010001 +020100010001020100010002000100010001000100010001009600020001000100020001 +000100020001020002000200010101830201020105018202010282020102810201010101 +028301020102820201028702010201020100010301830201020186010201020102010601 +880201020002000200028402000200020102010101028b01020002000200020100010203 +02810002030281010201028101028402000100011e0101000101 +810201820102010501010084010001000282020002820201020102810102020283000200 +020102820001020302810002830201020101018302010201820102018101020202a30002 +000200010200020002000201000200010002010001000100010002010201000100010801 +810201010184020102000187010201020100020093000100010200020002000200010002 +000200020186010002000100010101850201000102018701020002000200028502010201 +000184010001020001008301020102820200018301020102840200020102840201020102 +820201028302010201020101028101028402010201028202010282020102020282000102 +820201028202010282020102820201028202010282020102820201028202010281020103 +0101028101028302010201080101020101810001810102810201820102011b0182020102 +01028201020182010001040102000d018100011c01810001030183000100010401830001 +00018801020100010001000101018200010081000101018d000100010001020100010001 +000101018900010001000102000102810201010187020001000100020199010001000100 +010001000201020100010001000100010001000103018202000288020100020001000102 +8102010a018402010201028302010201820102018101028102010b010202010187020002 +0002000100010002028201020121010000 +0a0181020102018202010204028101020702880002000201000200020302810102010209 +010202870102010001000102820200020202820002012001810002020283000102010201 +810201820102010901810201050181020104018102010201830201020104018102010201 +020203010102030181020128018102012e01810201080181020108018102013e01810201 +030181020102018102010301810201020181020101018302010201030181020101019400 +010001000100010001000100010001000100010087000100010001000188010200010001 +000201010182000200010084020102000105018102010201010284010201020185010201 +020102820201028202010284020102000102018102018101028202010283020100010701 +880200020001000100019601000100020102010201020102000200020002010201028202 +000282020002030285010201020102010282010201180181000103010100810102 +810201820102010601840001000102820201020202810102040284010200010281020081 +000282020102010283000201028502010201020184010201020181010202028701020002 +000201028402000200020102840100010001880100010001000100018601000100010001 +0801810201880102010201000102010101a8020001000201020002000100010001000100 +010201000200010001000200020001000200020002000203028500020002000204028900 +010201000200020102840200020002890201020100020002010286020002000102010101 +840200020102020201008202010285020102000102820201028202000282020102820201 +008200010283020102008100028202010281020082000201020184000100010285020102 +010001020183000200028102010101010002028101028202000101018c00010001000201 +000100010001870100010001000201810100840001000102010281010083000100010101 +820001000200020183000100018401000100010101830001000102018300020102010281 +010201028401000200020102010001028101028802000200020002000284020002010282 +020102830200010282020102010281010282020102820201020402810102820201028202 +010283020100020202810102020286000100020102018101020202840001020001850100 +010001028402000200018101028402000200028202010282020002830200020102018900 +01020100010001000182010201080186020102010201028402010201020102010101028b +01020102010201020102010282020002020288000200020001000200850001020102011c +0185000100010200 +810201820102010801820201028402000102010201040281010203028101028602000200 +02010201028100028402000100020202040101028a010001000102010002000284020102 +0001200181000201020101850001000100015a0181020109018102010301810201030181 +020152018102014a01810201810102860201020002000282020102850200010001028102 +0181010286020002000102010b0185000200010001830102010204028201020107018302 +0102010c0181000102010102010182020102840201000201060182020001010181000184 +010001000101018102018101028202000184010001000184010001000101018602010200 +020102830201020183010201020102820100011101810001040185000100020102830200 +0200 +0b0186000100020002008300010201010182020102020281010201028201000205028300 +02010201028101020102810102820201028202000201020101830001000202028100028a +020001020100010001000186010001000100018601000200010001020181000106018102 +01070186020100010001008a0001000200010001000102a1020001000100020001000100 +010002000100010001000200020001000200020001008100020102060081020004008102 +000200810200010087010002000200010002008701000100010002008200020001000101 +810200820002008200020003008202010001008101008200010001008502000100010086 +000200010001000200830100010004008101000300830100010001008402010002000100 +010189000100010002010001000100010182000100010083020102000200020184000100 +020103018400010001008500010001000102018300010001010181000104018300020102 +010281010204028101020102830002000202028100020102810102010283000200020102 +810102010281010201028101020102010102020101010283010201028602010201020102 +830201000202028301020102850200010002010201820201028202000281020183010201 +028202010284020102000184010002000287020102010002000285020002010201880100 +020001000201028302010201020181020104018402000201029802010201020002010201 +02010201020102010201020102010205028300020002820201000200850201020102011a +010102820100020102 +840102010201080181000203020601010283010201020102810102010281000201028101 +028202010282020102040283000200020102870100010001000102050283000200010c01 +83020102010d018300010001010187000100010002000101018100010701830201020101 +018102018201020103018302010201890102010201020102010283020102010101810201 +810102010281010283020102018701020102010201028202010284020102010284020102 +010283020102010201010281010284020102010282020102820201028202010203028101 +028202010282020102820201028202010203028101020302810102010283010201020102 +08010102820102010101010281010282020102010208018102010c010102010181020105 +018102011401820002010201810001050101020101030201010202020101020201010202 +010202010101020201010201010202010181000201020301010281000181010287020100 +010201020101010102020183020102018101020102820102018401020100010101810201 +010184000200010286020002010201028102018601020102010201810102830201020104 +018b0201020100010001000200010b010102020181020181010281020183010200018401 +000100018101028402000201020202820001028202010281020183010201020202820002 +01100183000100010201840001000102840201000200 +0b0183000201028302010002810201090101020101010081010201028400010201020302 +81010206028f010002000201000100020102010200018101028102010101830001000188 +01000100010001000184010001000101018100010c018102018201020103018500010001 +000102018500010001000101018500010201000101018500010001000101018500010001 +000101018100018201020101010200820201008200010084000200010001008202010002 +008201000189010001000100010001000200870100010001000100860001000100010082 +0001000d0081010004008501000100010086000100010001008600010001000100820001 +000400810100020085010001000100840001000100860001000100010084000100010086 +000100010001008400010001000200020101008201000186010201000100010101010082 +010001030101008101008200010082000100810001010184000201020101018602010001 +000201840100010002010281010282020002010282010201820100028202010285020102 +010001030181000105018100010501810001010181000187010001000100020189010001 +02010001000102810201010182020002030284010201020104018100018c010201000200 +010001000200018501000100020101010102010182020102820201028102010101810201 +030185000200020001860100020001000281020181010281020186010201020102010501 +83000201028b020002000200010200020002010282010201060183000200018101028102 +01820100010201820001008100010101820001008100020002 +820102010801830002000201028101028102010d01840002000102010281010202028101 +02020281010202028100028a020102000100010002000204028100028102010f01810201 +0c018a02010001020102010001008100010e018102010101830201020104018102010301 +820201028502010201020186010201020102018101020102820102018601020102010201 +830102010281020181010203020101030201010102810102820201020302810102820201 +028202010204028101020b02810102010283010201020602810102010281010283020102 +0102018202010281020106010202010101020801810201180183020102010e0181000101 +010202020181020102018602010201020102820201020102810102010281010204028101 +020102830102010202028101028202010201028101028202010201028101020302810102 +820201020402810102820201028202010282020102820201028102010201040204018102 +010501820001028502000201020183010201028402010201028202010283020102010601 +890001000100010001000107018402010201029202010201020102010201020102000200 +020002830200010282020002020281000201028101028102010101810201810102820200 +0107010102860100020002000102018300010001020183000100018301020100 +820102010a01010283000200028102010d0189000200020002000201020d028301020102 +810201010182020102030281010281020105018700010001000100018601000100010001 +0a0183020102010301850201020100018201000102018100010101850001000100010101 +850001000100010101850001000100010101850001000100010101850001000100018201 +000283020100010101850001000100018601000100010001010182000100810001010185 +000100010001890100010001000100010082000100010081010084000100020005008101 +000300810100040085010001000100860001000100010086000100010001008100018101 +000200020102008201000181010001008201000186010001000100018601000100010001 +810100010082010001810100820001008100011001010007018200020003008101008100 +01010181000106018a0001020100010002000100a0000200010001020100010002000100 +010200020001020102010002000200020002010281000201028100020202820100028602 +000200010002810200870001020102010002010282010201040181000281020106018202 +010281020181010288020001020100010001870102010001000201820100028102018101 +02840201020102850201020102010501830001000188010001000100010001010101020c +018b00010201020002000100020085000102010001820102010301870201020001020002 +8402010201008100010301830001000101018100018101020002 +0b0101000202810102810201100103028601020001020102050281010207028900010001 +0002000201020302840102010201040181020186010201020102010e0181000101018502 +0100020001150181020102018a0201020102010201020102850201020102018601020102 +010201860102010201020186010201020102018301020102810201010101028201020186 +010201020102010301810201830102010281020183010201028102018601020102010201 +810102830201020181010283020102018101020102010182020102810201830102010281 +020181010283020102018201020104010102040181020101018302010201180181020106 +01830201020101018102010e018600020102010201830102010201020a01810201020181 +020103018102010201810201040181020101018102011b01810201020101020301010202 +010102810002010294010001000200020001000200010201020100010001030181020183 +010201028102018401020102010601810002870201000102010001070101020101010285 +010201020102010282010201840100020002890201020001000200010282020002820200 +028202010281020181010282020102010204018500020001000203028201000102018500 +01000100018401000100010301 +82010201080182020102850200010002010e018602010200020102810201040182020102 +030284010201000201020301820201020602010183020102010401830201020186010201 +020100010a0181020107018102010b0183000100010301830001020102018a0200020002 +010201020002860201020102010287020102010201000285020001020102840201020002 +840201020102840201020102840201020002840201020102820200010101010286010201 +000201028502000200010288020102000200020002020281000203020100820200020102 +840002000102030281000201028101028402000200018201020081000282020102830200 +010282020002810200010089020001020002000100028602000100020001810100010082 +010001810100820001008100018201000282020002030201010102850100010002010101 +81000102010502810002830200020108018102000100880102010001000200018e010002 +000100010201000200020001010184020001000101018200010001000201820001000300 +870100010001000100810001810100040081010004008101028102008100010101010282 +010001020181020101010102810102860201020002000282020102840200020002850200 +0200020101018400020102010401830201020107018d0001020102000200020002000201 +810102840201020102830201020104018100020502820100018601020100010002810201 +850102010201020402820001028102018101008100010501810001030182000100 +0901820001000100010283000200010e0181020181010282020102820200010501080289 +000200010002000200028702010201020002010e0183000100010c018100018101028402 +0102010282020001020183000100012c0101023501810201020181020103018102010201 +8102010301810201020181020102018102010301810201070101020c0183020102010101 +010284010201020105018102010e0181020181010201020b010100010281000202020100 +810201040101020101010202018302010201810102810201020101020201830201020182 +010201010181020103018102010c01810201160102028a00020102010201020102010101 +890201000100010001000110018102010201830201000287020102010002000107010102 +090181020181010201028500010001000105018500010200020084000102010281020101 +018102018901020002000201020100850002000201020202810001020185000100010001 +820100010501 +820102010601880002010200020001028102010e01830002010084000201020107010602 +810002010202018402010201028202000202028301000201060183020102018401020102 +010e0183020102018101028102011c018a02010201020102010201028802010201020102 +010284020102010286020102010201028402010201028402010201028402010200028902 +010201020001020102870201000100020102850201000200028502010200010284020102 +010086000100020102008400020001028102008400020001029202000200010002010002 +000200020100020002810201860100010002000184010002010282020100030081020002 +008501000100010086000100010001000200810100030081010004008702000200010002 +0101018a0001000100020100010001020181000201020200810102010206018102018301 +020002830201000201028300010002020283000100028802010201000200020101010102 +860001000100010087000201000100020081000186010001000100010101850001000100 +018401000100018201000103018600010002010201010102020201810201020182020102 +890201020002000200010289020002010002000200018201020102010202840102010201 +820102010601900200010201020002000200020002010201010181020182010201820100 +010301810002050289010002000201000200020202810002880201020102010200020202 +01010100820100010c01 +820102010801810002010281000201021001820201020302010181020103018102018101 +020102830102010283020001000100810102040281010201028201020106018102010201 +850001000100010d01810201040182000100810001820100010101010001018100010101 +850001000100010101850001000100010101850001000100010101860001000100020183 +010001008500020002000184010002000186010001000100018201000186010001000100 +028102010101810001040181000101018100018301020001830102010285020002010201 +830102000102018102018301000201030182000201030181000105018100010401810001 +04018300010201010181000102018102010301810201020101021b018102010101810201 +020181000105010100020281010081000202020501020281010202020101020201010202 +810102020281010202028101020202810102020281010203028101020502850102010201 +020202810102810201810102830201020101010102020182020102010282010201010183 +020100010101860201000200010282020002810201010183020102010101810201040101 +020101810201820102008500010001000184010200020113018102018101028302000201 +0b0185000102000201810102010281010203020100050283000201020202810002810201 +040183000100010801 +090186000100010201020102100184000102010202020901860201020002000283020102 +010201040281010202028201000285020102010201040181020110018300020102810201 +86010200020102010b01810201050181020103018a020102010201020102010287020102 +010201020102018102018101028202010281020105018302010201840102010201020181 +020104010102030182020102810201820102010801820201028102010201010203018102 +018201020181010281020101018202010281020183010201028102018101028302010201 +01010102010181020103010302820102018201020107018102010c010102850102010201 +028102018101028302010201070181020108018902010201020102010201010181020181 +010203028101020502810102040281010201028101020102810002040281010284020102 +010286020002010201028402010201028102018101020102010101028501020102010201 +02810102020283010201028502010002000101018202010281020101018102010a018700 +010201020100028602000200010001820100018201020181010284020102010281020107 +018c02010001000102000200020002830200010281020101018100010801830002000286 +020102000100028102018501000200010201028100020502860100010200020183010001 +008100010c01 +010181020105018702010200020100028102011101040205018302010201810102010283 +010201020102820001008600020100020102020281000201028101020202840102010201 +0101830001020101018100010c0181020182010201810100040001010500810100a60001 +000100010001000100010001000100020001000200020002000100010001000100010002 +000400820201001200850200010001008200010001008702000200010001028102008300 +01000282020100030081010082000100010083010001028102008a000100020001000100 +020088000100020002000100860002000200010002008301000100010083010002000200 +840200020100010082010001010101008201000101018200010081000181010087000200 +010001000288020001000102010201070181000106018400020002018401000200020102 +010181020183010201028102018101020102010101028201020181010201020101010282 +010201020181020183010201028102018101028302010201810102010201018202010281 +020181010283020102018101028302010201810102830201020181010283020102010201 +830201020102018402000200010201860200010002000286020102000201028202010282 +020102840201020102810201820102010101010084020001000184010001020109019102 +010201020102010201020102010201020104018100010301820201020402010187020102 +01020102008100020602010104020101810001020183000100010801 +0901840201000102020211018200010203020d0183000200020102010184020102010207 +0201010202810102010284000201020102018100010901810201830102000202028b0100 +0200020102010201020103018102010101840201020102810201820102010d0182020102 +87020102010201020183010201028202010281020101018102012d0101026a0101020701 +030201000502110181000104018100010401830201020103018100010501810001030183 +000100010301830001000103018300010001080101028101008200020102018102018201 +020182010201810102810201820102018701020102010200010a01810001820100010101 +010282010201010101028201020105018302010201020186000100010001028102018401 +02010201040183020102018c010201020002010201000100028602010200020002010287 +0102010201020102820201020302030183000100010b01 +090181020181010201028100028102010f01820201020102840100010201840102010201 +880102010201000200028402000200028102008100020202810102020281000282020002 +850200020001028702010200010002010a01810201040183020102018a01000200010002 +010001008600010002010001a30100010002000100010001000100010001000100020001 +000100020002000100010002018101008500020002000183010002000400820102000100 +84010002010001008501000200010002008a010001000102010001000284020002000202 +020200820201028202010282020002820201028102008300020002830201000202028300 +020002020288010200010201020100020084020001020086000200010002008600020002 +0002008f0001000100010200010001000100010084000102000282020002010281000201 +028101020102810102810201820102010201830200020105010302810002050202010202 +810102010282010002820201028202010201028101020102810102820201020202010082 +020102820201020102810102850201000201020102810102820201028202010201028101 +020302810102820201028202010282020102010201018302000201020101028501020001 +00028102010101870001000100020001820100018d010200010002010001000200020105 +010100850200010200028102010901870201020102010201030181000184010201000105 +0101028101020402810002020281010283020100028502000200020081000206020b0183 +000100010801 +070185000100020002020281000110018202010203020501810201840102010201830102 +010202028201020102018202010202028101028202010201028200010201028100028102 +0184010201020083000200010b01810001020183020100013a018102010d018102010401 +810201160101023c0181020138018100028202010083000200012a018102018101028302 +010201810102010201018202010281020181010285020102010002830201020183010200 +010501010201018100020102050101028301020001030182020102860201020102010282 +020102820201028402010201028402010200010201810201060183000200011c01020284 +010002000282020002020281000288020100010200020002030281010203020a01830001 +00010b01 +0a01020281000283020102010f01820201020102820100010b0183000200020102850100 +010001020402850102000200018201000202028100028202010285020102000102010284 +010201000109018302010201010185000200010201030181000103018400010002010201 +830001000103018300010001030183000100010301830002000102018300020001030183 +000100010201830001000103018200010081000101018200010081000101018100010101 +850001000100018601020100010001810102820201000100010182000100010002010300 +830102010281020083000201028c02010002000102000100010001820102008400010001 +028102000100820200028e02000100010002010001000100010088000100010001000100 +880001000100010002008b00010002000102010001020101018102010201830201020107 +018300010002010281000104018402010201028102018101020102010182020102810201 +81010201020101820201028302010200820002018c010201020102010200010201028202 +01008100028302000102840200010002860201020100010283020001028402000100028a +020102000200020001020103018302010201010192020102010001000200010200020001 +000100018a01000100010001000102010101820200020102830102000283020102018201 +020104018802010200020002000182010001010101008201000102018300010002860201 +020102000286020001020102018201020184010001000286020102010201028102010e01 +8300010001820100010501 +07018400010201020202820102010e018500020002000201028201020103018302010201 +820102018701000102010201028102018101020202810102020203010202810102820200 +028302010002010282010002830200020106018102018601000102010201820100028102 +0184010201020109010102820102010c0101020401830201020101010102850102010201 +028502010201020181010281020102018302010201020102020301010203018102010301 +830201020101010202020103020101020201018202010281020183010201028302010201 +810102830201020181010201020101830201020103018102010101010202010202020101 +020101010282010201820102010201810201090183020102018101020102010101028601 +020102010201010183020102010e01030206018402010201028102018101020102010182 +020102810201810102010201018202010283020102010101830201020182010201820102 +018201020184010201020182010201820102018201020182010201820102018201020182 +010201820102018201020104010102820001028102018201020181010283020102018201 +020182010201820102010301010281010282020102840201020102810201820100010301 +820200010101860200010002000109018b02010201000100010001020183010201008300 +020102020283000100020802810102010283000200020502840102010201090182000100 +8100010a01 +09018202010286020002010200010e0182020102010283000200010b0183000100020102 +850100010001020702860100010002010281020083000201020202810102020201018302 +0100010f018100018e010001000100010001000100010001010183000100018201000101 +0185000100010001030183000100010301810001060101001a0181020117018100013301 +830002000104018100010401810001040181000104018100010401810001040181000182 +010001010181000102018302010201070182000102840200020001230181020109010100 +810100820001000500970100010001000100010001000100010001000100010001000400 +020281000181010201028100010101020281010289020002000102000200028502010200 +010284020002000283020102010101840200020001820102018301020102830201020104 +018802010200010001000182010201010182020002810201010184020002000282020102 +8202010201028300020002010283010201020502880002000201020102010e0181000182 +0100010501 +0701830201000201028100028102010f0183000200020202810001050181020187010201 +020102000201028501020102010204028100028102010601050201010102810102850200 +02000201020181000103010100810102870201000100020001320183020102010d018102 +010301810201030181020103018102010301810201030181020103018202010281020182 +010201020181020103018102010201810201030181020102018102010201810201030181 +020102018102010201810201820102018201020101018102010201830201020184010201 +020106018102010d0181000181010201020101820002018101028102010a0102020d0101 +028301020102010201010202010102020101020281010202020101020201010202020183 +020102018401020102010101010202010102020183020102010101010202010102010186 +0200020102000182010201030183020100010d018102010801810001820102018101028a +020002000200020001000105018102010601010082010002020285000200020002020281 +0102030281010203029001020100020102010201000201020102010d0182000100810001 +0a01 +070185000200020002010282010201100186000200020002010801840201020102010281 +000201028300020002020281010202020101830001000185010200020002810201020101 +028501020102010283020002010201810201040181020102018500010001000103010100 +050101000501830001000103018300010001030183000100010301830001000184010002 +000182010001020181000107018100010101810001010181000101018100018201000101 +018100010101830001000102018100010201830002010081000103018300010001020183 +000100010301010004018300010001020183000100010201830001000103018300010001 +020183000100010201850001000100018601000100010001860100010001000101010100 +820100010101820001008300020102020203010102080187000100020002000281020109 +010102010103028101020202810102020281010202020101020281010202028101020202 +810002010281000284020002010201028200010282020102830200010201028101020102 +810102010288010002000100010002020285010201020002830200010281020183010201 +028602010200020102820200028702010002000200028302010201020181000281020106 +018102010601810001040181000183010201028102008100020202810102840201020102 +060281000203028201000284020002000201028100028302010201840102010201070181 +00010201810001820100010501 +0801820201020202820002010f0183000201020202820002010a01830001000202020301 +010281010202028401020102010501010282000201010182020102020202018102010101 +8100018201020101018100013b018102016c018102012a01020281010202028100010d01 +810002030223018102011901810201110183020102010101830002010284020102000202 +0201018602000100020002830201020101010102030101020301830201020101018e0201 +020102000200020001000200010501010206010100830102010286020100010002000100 +010202010102810102010281010202020100030283000100020502840102010201090182 +0001008100010801 +0701820001028202000283020102010f0182000102020281000109018102018301020102 +020286010200010001020402820002018401000100018201020001008102010101880201 +02010201020002820201008100010a018102010101850001000100010101a80001000100 +010001000100010001000100010001000100010001000100010001000100010001000100 +900001000100020002000100010001000100810001050184000100010085000100010001 +010182000100810001010185000100010001020183000100010201830002000104018100 +010401810001040181000104018100010401810001040181000107018300020001280103 +02020102020101010208018100018701020002000200010a018102010201010202010102 +020101020201010281010202028101020202810102010281010202028101020202810102 +010281010201028101020102810102010281010201028101020102810102010286010201 +000200010401840200010201810102810201060185020100010002890201000100020002 +000182010001010182000102870201020102010201080182020102810200840002000102 +860201000200010202028101020302810102010283010201020202860102010201020101 +010102010181000102018102010b01830001000103018100010501 +0601810201810102820200028202000110018202010203028100010b0185000102010201 +010181020181010201028601020102010201050186020102010002010301010282000201 +010181020102018102010301810001050181020133018102011801810201040181020103 +018102010301810201030181020101010102040181020102018102010301810201020181 +020103018102010201810201020181020103018102010201810201070181020102018102 +010201810201020181020111018102018201000281020101018102018301020002020206 +018500010001000201028100028102012101010203018102010201810201020181020101 +01010202010102020183020102010101010201010202010101028b010200020102010201 +020001850102000100018201020181010289020002000200010200018101028202010282 +02010284020102010283020102010101820201028c020100010001000100020002010301 +01000102890102010201020001000282020102880200020002000200028a020102010201 +020102010204028400010200020102810102030286010201020102010b01010001018100 +010501 +050183000100020202810102810201100182020102820200028102010901810201830102 +010201028200010285020100020002050206018200010202020701810201840100020001 +0f0181000115018100010501810001050183000100010301010002018700010001000100 +0101018200010081000105018400010001008a0001000100010001000100880001000100 +010001008800010001000100010086000100010001008800010001000100010086000100 +010001008600010001000100860001000100010086000100010001008400010001008600 +020001000100860001000100010084000100010086000100010001008600010001000100 +840001000100860001000100010089000100010001000102010501010281000105018100 +010101810001830102000281020159018300010001050182020001060101029201020102 +010201000100010001000100010001820100010101820002018101028202010282020102 +810201810100830001020101018302000200820001020202860100010002000281020181 +01020202820100010401020281010201028101020102830102010204028101028102010d +018100010b01 +08010202010001021101820201020102820002010c018200010202028201020181010201 +028100020102810102810201880100010001000201028202000108018300010201050182 +020102820200010401010209018102010401810201280181020104018102010301810201 +030101020301830201020101018302010201010183020102010101830201020101010102 +020183020102010101010203010102020101020301010202010102020101020201830201 +020102018102010301810201010181020102018102010201810201020181020111018102 +018101020102020183020102018101020202040182000100810001830100020083000102 +010801810201020181020102018102010101810201020181020102018202010283020102 +010201810201030181020102018102010201810201020181020102018102010301810201 +0b0184020102000101018400010002010201850002000200018501000100020183010201 +0282020102840201020102830201020104018b0201000100010001000102010201820001 +008200010282020102040282000102820201028a02010002000102010201028302010201 +81010203028301020102010285000100020102020202010102820102010b018500010001 +00010501 +0401810001840100020002810201820102010e018500010001000202020a018100010101 +820200028202000183010001020302810102830200020105018302010002810201070181 +020181010281020102018102010101820002010101840001000102940200020002000200 +020002010201020102010201028402000100010101820001008100010201010082010001 +010185000100010001010185000100010001010182000100820001028402000201028202 +010282020102840200020102820201028202000284020002000201028101028202000282 +020102810201870102000201020002830201000101018402000100010201830001000102 +018300010001020183000100010201830001000102018300010001020182000100870001 +000100010001020101000501810001040181000104018100010401810001010184000201 +0001040181000281020105018300010001830100010201028201020122018102010c0181 +000105018100010401810001050183000100010301830001000103018100010501830201 +000103018402010201028302010201010183000200028202010284020002000284020102 +000102010102010182020102820201028302000100890001020102010200010001008101 +028202000103010402840102000201820100010301060283010201020102810102820201 +02020281010201028201020109018100010b01 +060186020102000201020102110182020102010283000102010b01810002010281010201 +020101820201008100020202820102010201840001020102830201000108018400020102 +010701810201020181020101018402010201028102018501020102010281020183010201 +028302010201260181020185010201020102820201028202010284020102010201028301 +020102010286010201020102010201010282010201810102810201020101028201020186 +010201020001028602010201000201830102010284020102010283020102010101810201 +010182000201020182020001020181020102018102010201810201020183020100018201 +020101018100011201820201028302010201010181020102010102030106028301000200 +830001020108018102010201810201020181020101018102010201810201020181020184 +010201020102018102011201810201020181020108018102010801820200018101020102 +810102830201020101018100018601000100020001820102010d01810201880100020001 +000200028702010001020102018701020100020001020602060184020001000282020102 +880201020102010201020102810102020201018102018201020181010202021201850001 +000100010501 +0501820001020202810102820200010e018700020001000102010b018200010283020100 +02860200010200010204028300020001040184000100010201020b018100010701c50002 +010001000100010201000100010201000100010001020100010001000102010001000100 +010001000100010001000100010001000100010001000100010001000100010087000100 +010001000107018902000100010002000100880001020100010001009100010201000200 +0100010002010201020100880001000102010001008d0002000100010200010001000200 +86000100020001008d000102010001000201000100010086000100010001008400020001 +008600010201000100860001000100020086000100010001008400010001008600010001 +000100860001000100010283020100010101820200018101020102010181000181010203 +028101020302820102011f0181000181010281020102019d000100010001000102010001 +000201000100020001000100010001000100810001010183020100010301830001020101 +018200020109018402010201028202010281020103018300020002820201028402000200 +028402000200010301830201020104010102810100820002018101028202010287020002 +000200020107010202020082020102850201020102018101020202010182020102010281 +010282020102020283010201028102010c018100010901 +070101020100020211018202010202028100010c01820200020202820102010101010285 +000201020102810201050104028300010201820102010301010208018102010601020202 +018102018201020105018102011401810001180181020102018302010201030181020102 +010102040187020100010201020103018102010301870201020102010201020184020001 +000187010201000100020103018102010201810201840100010201850100010002018501 +020002000181010281020101010102020183000200010101840200010001020183000100 +010b01810001020186020100020102010501830200020181010201020201840001020102 +050208018102010201810201020181020101018102010201810201020182020102830201 +020182010201840102010201840102010201840102010201840102010201820102018401 +020102018201020185010201020102810201810102010202010202810002820201020102 +820102018101008100018601000100020002810201810102820201028102010501810201 +010181020101018b02000100020002000100020181010286020102010201028402000201 +028202000281020106018300020002830201020106010102810102010283010201028202 +0102010283010201020302820102010e018100010701 +05018200010205028100010e018500020002000201020701810201010185000201000200 +870002000100020102820201020102830001020104018500020002000281020186010201 +02010201030181020106018a000100010201000100010282020002930201020102010201 +000102010201020100010001010185000100010001010185000100010001010185000100 +010001010188000100010002000200870001000100010002840201020102820201028202 +010284020102000283020002008100028202010282020002820200028502010002000201 +028301000102820200028302000102010284010002000201028101028102008600020001 +0002008a0002000200020002010002830201000282020002010281000201028101028102 +008400020001008200010202020100020281000287020001000100010084000100010086 +000100010001008400020001020202810102030281000204028201000281020101010100 +010185020100020002810201050182020102020281010202028101020302810102020281 +010202020201010281010201028100020202810102840200020002010281010201028101 +020202810002010281000283020001028302000102860200010002000285020100010201 +010181000112018100010301010284010201020183010200010301820201028202010285 +020102010002830201020104018702000200010001028102010601030285010201020102 +840201020102020286010201020102010101010281010201021f01 +040184000201000203021201820201028402000200010c01810201810102810201010101 +020101030281010201020801810201820102010601850001000100010701810201810102 +01028101020502940102010201020102010201020102010201020100010c018300010001 +010181000101018100010401020206010102810102840201020102840201020102820201 +020302810102820201028202000282020102820201028202000282020102810201810102 +030281010201028100028202010205028100028202010201028101020902810102010281 +010201028100020202030101020101820001020102810002020281010202028801020100 +010001000102018400010001008200010282020002840200020002030281010207020701 +030281010281020105018202010202028101020202010102020101030281010202028101 +020202820102010201010202010102020101020701810201030181020181010282020102 +83020102010b018202010281020186010200020100018601000100020002810201810102 +8a0200020001000200020002850200020102010101840201020001040182020102010205 +010302840002000201080101008102018601020102010201830102010204028301020102 +86020102000200020502010183020102011501 +050181020181010203021101830001000202020501810201820102010101810002820200 +0201028601020100020102010281010202028200020103018a0002000200020102010201 +820102018201020102018102010401020081020001000702810001050183000100010301 +830001000103018300010001030185000100010201010184000200020102018500010002 +00028302000200010001018302000201060182000102010282000200820002018d010001 +000200020100010001000101010100830100010202020100020185000100010001860100 +010001000194010001000100010200020001000102000100010001860100010001000185 +010001000100840002000200810001010182000100810001010182000100810001010182 +000100810001010182000100810001010101008201000101018102010901010281010201 +020301010001018100020102010181020107010102070181020101018102010201810201 +02018202010284020102010201028f010200010001020100020002000100020102810102 +0102820100020102890001000200020002000282020002010281000201028c0002000200 +01000100020102010401820201028202010281020183010002010c018102010101810201 +810102820200028302000200810001820102010401840201000102040207010102010084 +010201000182010201010102028101020102830102010201028301020102040286010201 +020102011501 +050184000200010203021001810201810102020282000201020181020182010201850102 +010201028402010201028102018101028202000202028101028102010501850201020102 +010701820001008300010201020181020101010102020105028101028302010201030181 +000291020100010001020102010001000100010001050192000100010001000100010001 +000100010001020702820102018101028202010204028100020102810002050284010201 +000285020102010002830200020181010284020102010203028101028502010200010284 +020102010285020002010002840201020102850201020001020102010101028300020002 +840200020002810201010183020102018201000201020100020282000102010289000100 +010001000100010201840001000100850002000200028402000201028202010202028101 +020502080101028200020107018202010202028101020202810102020281010209028101 +02050281010202028101020102810102020281010201028100020e028101028202010201 +028101020102810102040201018402010201028102010101870001000100010001020189 +000200010002000200028402000200010201820001028102010601010282010201040186 +020102000100010901810002010285010201020102830201020181010202020101040284 +01000200020202820102011b01 +0601010281000201028100011001830001000201020d0184000100010201028401020100 +020402850002000200010401850002000200018401020102018201020182010201070182 +000100030083010200020402820102011e01810001810102860201020102010204028501 +020102010201020101820001028202010283020102018601020102000102070281010202 +02820102010e010202030181000111010102820002011401010082020001140181000103 +018100010401810002810201020181020101010502810102040203010100010181000202 +020a01020204018102010201810201020184020102010206028101028102010301860001 +000200020183010001008100010101860002000200010286020001000100010101850001 +000100018b01000100010001020100020001008201000105018202010282020102810201 +810102820201028202010284020102010285020102010201030184020002000288020002 +000200010001040101028100020502070181000201028101000100050101028301020102 +010281010201028101020602810102010201018102011501 +050184000200010202020101810201840102010201090103028400020102010201810201 +820102018501020102010202028601000201020002820201020302090102028401020102 +018601020100020100810001820102010301820201020102810102820201028102018101 +028102010801a40001000100010001000100010001000100010001000100010002000200 +020002000100010284020001000201028400010001020102810102860201020102010285 +020102010002040286010201020001028502000200010085000100010001820100010301 +8102018401020100010b0181020184010001020101018302010201010181000104018100 +0104018100010301810201820102010301810001040181000104018100010b0185000102 +010201810102810201820100020302810002010283010002010801840002000201090181 +020103010102020101020201010202010302810102020281010201028101020302810102 +840201020102840201020102030281010201020101030283010201028102018101020102 +010101028101020102810102840200010201010182000201010182020102820200028102 +018a01000100010001000100018601000100010001020183000100028402010201028502 +010201020107018800010002000201020106018100020102850102010201028302010201 +010184020102010205028a00020102010201020102018401020102011501 +070105028100010e0186000102000201028102010b018300020002010281000184010201 +0002040281010282020001040186000200020102010d0181020101018500010001020087 +0001000201020102810201060183000100012b0186020102010200010c01810002030285 +0102010201028102010f0187020001000100020101018300010201010182000200810001 +05018100010201830001000104018100010c018400020100012101840200010201860100 +0201000102010282010002020281010281020104010100830100010201022b0181020182 +01020110010102020181020103018102010b018402010200020202810002850201020102 +010901840201020102820201028402010201028502010201020182010201810102810200 +810001850100010001028202000104010202820002010b01010285010200020002860201 +020102010201028101020402820102018201020181010202028401020102011801 +840102010002840200020002020281000184010201020182010201050185000102010200 +830002000182010201820102018401020102018701020102010201028402010001020102 +810102820200020102070182020102010201018302010201880102010002000100010701 +030282010201040181020106018100010401810001030181000101018100010101880001 +000100010001029b02000200020002000200010201000100020002000200010201020102 +840201020102840201020102040201008b02000102010002000200010085000100010001 +130181000129018102011f01870002000100020102840200010002830201020086000200 +020100010601810001820100020202320181020105018100018201020119018102018101 +020202810102810201060182020102820201028102018401000200028202010284020102 +010285020002000201030186000102010201028302010201070182020102840200020002 +010205018802010001000201020107010102010101028101020302830002010203028301 +02010201021701 +860100010002010081000202028700020001020102018201020108018100020302010181 +0201820102018a0102010201020100020002040281010282020102030287010002010001 +000181010002000102010185020102010201010181020105018b02010001000100010001 +00018101008b000100010001000100010001010181000182010001010183000100010101 +810001010181000107018100018201020101018102018401020102010201810201040181 +020104018102010401810002040204018102010d01850201000201028302000102830200 +020081000286020102010201028902010002000200010002010284010002000283020001 +028202000186010001000100018201000181010084000100020105018100010401810001 +0401810001040181000103018202010201028d0102000200010200010201020102820201 +0283020100010201810001830100010201020f0181000104018100010c018100010e0181 +0001030101000401830001000105018100010f0102028700020001020002010101890001 +0001000100010201100182020001010101028a0100010001000102010001080101028201 +020109010202830002000288020102010201020102840201020102820201028102018301 +020102820201028302010201820102011701 +050182020102010283000200010d018400010201020102820102010f0101028400020100 +010101010281000202020801820201028302010201060185000100010001060103020201 +810201290183020102018201020101018102010201830201020186010201020102018601 +020102010201830102010281020181010203028200010283020102018401020102010901 +820201028202010282020102010281010282020102820201020102810102820201028202 +01020102810102010281010282020102010281010201021f018100010401810001040181 +000102018202000201028201000183010201028402000200028202000283020001008100 +010701010203018102012801810001020182020001280184000200010201028201020103 +018202010282020102810201840100020002840201020002820201028502000200020103 +01010201018102018301020102010206018b020102000200020002010201050181000201 +028401020102010301820201028202010202028101020202810102050284010201020182 +0102011501 +85000201000200810002050201018102010c018202010202028100010301810201840102 +0102018501020002000283020102010101010281010204028b0002010001000100010002 +008100028502010201020181010202020801850001000200029702010002000100010001 +0001000100010001000100010001a2010001000100010001000100010001000100010001 +000102010201000200020002000286020102010201028602000200020102820201028102 +018101028202010282020002050283000200028202010283020001008700010001000100 +010101840001000100880001000100010001008800010001000100010088000100010001 +000100860001000100010088000100010001000100860001000100010088000100010001 +000100830001000102018300010001040181000104018100010401820001020802030081 +01020302840002000201820100010101010002018200020103018102010a018100010401 +8200020114018102012c0181020181010281020081000183010002010101820201028202 +00028302010201820102010d0181020101018b0001020102010002000200010901820201 +020302080101008202000201028101028102010301840201020102020284010002000282 +0200020202830102010283020102011501 +030182020102010285000200020001030181020107018502010001000202020e01820201 +028202000182010002820201028102008300020102010207010102060181020101018600 +01000100020105018202010281020133018102011d010402820002011301820201028202 +010282020102820201020102810102820201020102810102820201020102810102820201 +0282020102010281010201028101020102820102012c0181000183010200020802010001 +028300020001810102810200810001010181000181010082000102810201820102010201 +810001030181000103018100010201820200012001810201220184020102010283020102 +010c018100018101028402000200028a0201000200020002010201010101028201020104 +018402010002010501820200028502010001020106018b00020102010201020002010282 +02010201028101020602820102010201850201020102010d018102010a01 +8900020100020001020102030201018102010a0181020181010201028201020107018902 +010200010200020002820201028102018301020102820201028202000281020183010001 +000200840200020002850201020102010201810201820102010501030283000100018201 +020181010081000190010001000100010001000100010001000196010001000100010001 +000100010001000100010001000290020100010001000200020001000102010283020001 +020102820102018101028202010281020181010081000205028300020002820201028302 +000100870001000100010001010182020100890001000100010002000289020001020100 +020001008800010001000200010086000100010001008500020001000289020102000100 +010001008800010001000100010086000100010001008600010001000100860001000100 +010086000100010001008100010101830002010202020100020283000200020202020002 +028501000100010081000102010102810002810201050182020001870102000201020102 +870200020002000102840201020102840201000102840201020102820201008e00020002 +000100010002000100020083000100028302010002950201000100020002000200020001 +000200010001000102010102820001028602000102000201010182020102890200020001 +020102010284020102010282020102850201020102010301860001000102010282020002 +810201820102010501810002850201020002018201020102018102018801020002000200 +020106010102810102820201020b02840102010201820102011501 +820102018101028202010202020101810201020181020108018300020002010281000281 +020106018102018401020102018101020402810002820201028202000201028101028102 +010501010287010201020102010281020182010201850100010002010301850001000200 +02850201000200012e018102018201020103018102018101028102010f01050285000201 +020102820201028102010301810201080181020183010201028102010301810201820102 +018501020102010281020101018202010282020102010286010201020102013001810001 +020101028201020181010202028100020102810002050281000105010100020184020100 +010001008101008200010082000100820001008200010084000100010083000100011a01 +83020102012101830200010201020301810201010182020102820201028402010200018c +010001000100010001000100018501000102000101018202010281020189010201020001 +020100010501890001000200010201000105018202000201028301020002830201020181 +010282020102820201028202010201028101020602830102010201028201020106018102 +010a01 +0201840001020102850201020102010f0182020102020286010001000102010501810001 +870102010002010201040102028300020002830201000181010002008402000200010801 +810201030181020102010102830102000105010100820100019201000100010001000100 +010001000100010001860100010001000101018f00010001000100010001000200010001 +010101028600010002000102820200018101028302010201020187020102010201000204 +028901000100010001000100890001000100010002000184010002010282020102820201 +028202010201028101028202010282020102820201020102810102010281010282020102 +010281010201028101028202010282020001060187000100010001000102018200010086 +000100010001008600010001000100860001000200010081000101018200010085000200 +010002100284000100010081000101018200010082000201060185020002010200810002 +820201028602000200020002820201020302810102020281010201028400020002008b00 +020002000100020001000201020100840200010002950201000200010002000100020001 +000200010002000103018402000200028402000200010201850001000100018201000183 +010201028402010201028202010285020102010201040182020001020181020183010001 +028102010401010083010201020202050181020101018800020002000201020182010201 +810102090281010087000200020102000103018102010d018100010601 +820102018101028202010286020002010200010d01830002000202020101810201820102 +010201830201020181010204028700020002010201020202810102810201050181020181 +010201028601020102010201880102010201000100010401850002000200028502010002 +00011e018100010901810201030184020001020103010102030183020102010201810201 +02010102810102030285000201020102820201028102010b018202010089000100010001 +000100018901000100010001000100860001000100010088000100010001000100810001 +030183000100018501000100010081000106018300010001130181020107010202810002 +110281000103018200010282020001840100020002830200010001008102008200020082 +000200820001008400020001008400020001020202810102020281010202028101020202 +810102020281010201020101020281010201028101020102810102010281010201028101 +020102810102010281010283020102010301820201020302820102010301010281010283 +020102010101010202010102820102018701020102010200018201020187010200010002 +000289020100010001000100018b01020002000200020002000101018100018201000202 +028301000200820002010201850001000201028502010200010202020101060282010201 +820100018201000104018100010701810001 +860102010201000282020102010213010202850102000200010701810001830102010201 +020301020286010201000201028102010201010086020002000200010601830001020103 +018102010301010281000201020401010084010001000192010001000100010001000100 +0100010001000184010001000101018f0001000100010001000100010001000181010288 +020100010201000102850200020102010201810201050182020002040289010001000100 +010001008900010001000100010001820100018101028202010282020102820201028202 +010201028101028202010201028101028202010282020102010281010201028101028202 +010201028101028102010701810001010183000100011901810001840100010001020101 +028101020a02810002030201018200010081000206028100020102820100020c02010081 +010082000100810001110181000105018500010002000102018100010301810001050183 +000100010501810001030101008402000102018301000201010185000100020002910200 +010002010001000100010001000200018401000102010201010081020104018a00010002 +000100010001000100880100020001000100018701000100010002000100940200020002 +000102000200010001020002000200028302000200900002000200020002010001000100 +01000184010001000184010001000182010001840100010001 +810001860100020002000283020102010f01830002000202020101810201810102810201 +010183020102018101020102810102880200010001020001020502060182020102010201 +0183020102018701020102010201008100018201020102018b0002000200010001000200 +011e01810001080181020103018202000201028201020102010202810102860201020102 +010281020102018202000204028200010282020102820201028102010901870201020102 +000102850200020001028202010285020002000200880002000200020002008500020002 +000201028100028202000201028100020102850100010001008100010101810001020186 +000100010001008600010001000100860001000100010085000100020001820100010301 +010281000211020200850100010201020c02010004028100020b02810102020281010202 +028101020202860002000200010201028400010002018301020102820200020102850100 +020001020102850100020001020102860100020001000281020102018102010201030282 +010201090184020102010201020101010281010286020102010201028102018c01020102 +010001000102000200830001020104018b02000200020002010201020105010302810002 +810201870102010201020102020281010203020101840201020102010282010201820102 +011601 +8201020183010201020202820002010e0181020181010201028500020001020182010201 +890102010201020001000203020101810201830102010201028101028302000201010182 +000100030084020001020102018502010001000109010202810102810201040185000100 +01000196010001000100010001000100010001000100010001000104018b000100010002 +0001000100018101028a0201000200010001000201820100010c01080281010282020002 +8f020102000200010001000100010002011a018102011c01810001010183000100011601 +810201030181000101010e02810002830200020084000102000184010001000282020002 +050281010215020100030281010202028101020202810102020281010201028101020202 +820100028202010202028101020102810102010281010201028101020102810102010281 +010283020102010101020284010002000285020002010201020182020102850200020001 +028202010282020002830201020186010201020102010201820001028402010201028b02 +010002010001000100010001008a01000100020002000200018501000100020005008902 +0001020001000100028702000200020002008c0002000100020100020002000286020001 +0001000184010001000182010001860100010001000182010001 +8100018a01000200020001020102010e01830200010289020102010201020102010b0188 +020001000100010200810002020281010281020105018402010201028102010201810201 +0101830201020107018302000200810001850100020001008100011d0183000100010b01 +820001020102010181020102010202810102840201020102830201020103018100020402 +81000111018402010001028c020001000200020001020001028902000200010200020002 +830201000286020002000200020102810002860200020002000287020001000100010081 +000101018100010201860001000100010086000100010001008600010001000100860001 +0001000100810001010182000100820001020c0281000201028100028302000100010081 +010283020100021e020d018400010001008a000100010001000100010287020001000100 +010097000100010001000100010001000100010001000100010001820102010501820200 +0182010201030182020102820201028102010b0181020106018202010282020001830100 +010081000204028101020202810102020281010205028101020302810002030281010203 +028101020702810102060281010282020102810201840102010201050181020105018102 +010101 +01018102018101020302810001100182020102850201020102010101010201018a020102 +010200010002000201028201020183010201028202010202028100010501900201020002 +0001020102010201000201008100010701820201020102820102010c0181000102018100 +0109018100010a0181020182010201030181020181010288020102000100020102820201 +0286020102010201028102010201070282000102820200028a0200020001000100010001 +010181000101018202010282020102820201028202010282020102010281010282020102 +820201020102810102820201020102810102820201020102810102010281010281020107 +018100012201810001010102028101020902810002830200020082000100810001020182 +000200810002030281000211028100020902810102020281010202028101020202810102 +010281010201020101840001020102020281010201028101020102810102010281010201 +0281010201028101028302010201030183000200020202020181020102018b0001000100 +010002010201028202000284020102010286020102010200010101810001850102010201 +02820201028902010002000200020002010289000200020002000201028c020002000100 +020002000200028f02000200010201000201000200020002020283000200028702000200 +020100020202010101028c000201020102010200020001028302010002 +8500010200010204020e0183000102018101020102010181020109018202010205028400 +020001028502000200010201020401820001000100020201018102010601820002010501 +880200010002000200020102810100850001000100018101008100010201810001010189 +000100010001000100010101810001920100010001000100010001000100010001000201 +02830001000102010102820100010c01070201018100010c0181000101018d0200010001 +000100010001000100880001000100010001008800010001000100010088000100010001 +000100860001000100010088000100010001000100810001010184000100010086000100 +010001008600010001000100860001000100010086000102010001008100010101860001 +0200020002050201000c0281000181010207028101021d02810102020281010202028300 +020002860201020002000201028200010201028301020102820200020102820100028202 +010201028101028a02000100010201000200010301820201028902010200020002010201 +010182020102820201028102011001810201030102028600010002000100890002000200 +0200010002010281000201028100028c0201020001000200020002000201028201000285 +0201020100028e0201020002000200020100020001028502010002000282020002010292 +0002010001000201000200020100020002010282020001 +0101010281010203028100010f0183020100020102830002000101010102820102018201 +020184010002000202020201820201020702810001030181020181010286020002000102 +0101018702010002000200010701830201020183010201028102012b0181020105010202 +010181020101010202810102890201020102010201020103018100020402810102820201 +02850201020102010b010102810102010281010282020102820201028202010201028101 +028202010282020102010281010201028101028202010201028101028202010201022d01 +810001030183000100028102018101028102018301020002010281000203028500020100 +01020702810102820200028302010001010184020100020181010281020081000206021b +018200020116018102010201810201030181020102018102010301820200010701850002 +010201028202000284020002000283020102018201000102018102010101810201020104 +028101020302810102010281000202028101028202010282020102820200020102810002 +8402010201020b0281000283020001028202010202028101020202940102010201020102 +010201020102010201020102010001 +830001000181010282020102820200010d01830001000281020181010201020601810201 +850102010201020202810002850200010001020102840100020102810201010186000100 +020001028402010201028102018201020101018102010901910201000200020001020100 +010001000100018501000100010081000190010001000100010001000100010001000183 +010001008100018c01000100020002000100020002820201028b02000100010002000102 +010287020102010201020103010902830002000295020002000200010001000100010001 +020001000200028202010286020002000201028602000200020002850200020001020102 +840002000102010282010002820200020102810002870200010001000100880001000100 +010001008600010001000100860001000100010086000100010001008200010283020001 +008100010101820001008200020001008102000100810200810002820200020702810100 +850002000200028202000282020002030281010082000100820002008400020001008100 +028402000200028202010202028101020202810102020281010287020002000200020081 +00028d020100010201020100010001000283020001020102810102830200010283020001 +028302000102010204018202000284020102000281020182010201010182020002820201 +028102010101820201028402010201028202010285020102010201850102010001028402 +00020002820201008a000200020002000200010283020002000100020281000201028401 +000200020102830002000288020002000100020002860200020002000284020002000201 +028401000200028602000200020002930200010002010002000201000102010200020002 + +02018202000203020f018100010101840001020102810201020181020106018300010002 +010203018102018101020402830002000106010102850102000100010101890201000100 +010001020103010102810102830201020182010201300181020181010281020103018202 +010201020a01810201020106027401810001010101028700010002000201020f02810100 +820001020b02840001020102820200020102810102070282000102020281010202028101 +020202810102020281010202028101020102020101028101020102810102010281010202 +028101020102810102010281010282020102010284010201000183010201028202010201 +0282010201820100018301020102820201028702010201000100018a0100010001000100 +010001820100010201010207018202000204028101020202810002050281010201028101 +028202000201028100020202810102080285010201020102860201020102010284020102 +010202028701020102010201028102018201020184010201020101010002 +830201000282020102020211018100010101820201028102010201810201820102018501 +020102010284020102010284020001000282020102820201020202020182000100870002 +0100020102018201020181010282020102010208018202000201028d0001020102010001 +00010001000183010001008700010001000100018c010001000100010001000100018301 +0001008b0001000100010200020100018901000200020002010001830100010201028101 +0289020102010201020102010101820200020502810102820200028e0200020002000100 +010001000100018601020100020002010282000200840002000102850200020002008800 +0200020001000200860002000100020081000201028100028b0201020002000100010001 +008800010001000100010086000100010001008600010001000100860001000100010086 +000100010001008100010101820001008400010001020102010081020081000208028300 +02010083000201020c020100840100010200830002000181010083000200020102820100 +01820102010a018a00010001000100010001008300010001900102000100010001000100 +0100010001008f0001000100010001000100010001000182010201010183000100018401 +000100018201020102018b00010001000100020102010284020102010282020102850201 +020102018a01020100020001000200028c02010200020002000100020002010281000202 +020100020282010002850201020100020102810002860200020002000201028601000200 +020002030281010282020102030281000201029500010200010001020102000102000200 +020100010001 +8800010002000102010281020104018302010201050186000100010002008100010b0181 +0201830102010203020101060281000282020001050102028500010201020104018a0002 +000100010002010001020188020102000200010201300182020102810201040183020102 +010f01070215018202010282020102820201028202010201028101028202010282020102 +010281010282020102820201020102810102010281010282020102010281010201022d01 +8100010101010281010214028400010200020f0285000201000200810002020201000402 +810102840201020102020281010202028101020202810102020207018202010201028101 +020102810102010281010202028101020102810102820201020102880102010200010201 +028202010201028501020102000183010201028202010281020101018100028202010282 +020102890200020002000102000103018202010285020102010200810002020282010002 +020281010201028100020202840100020102830201000201028300020102880200020002 +000200028302000102820200028402000200020102810102860200020102010201020101 +84020102010284020100020104018100010101 +010182020102010283000200011b01830201020182010201850102010201020302810001 +820100020102810002020282010201820100018101008100020102010184020001020101 +018502010201020101018102010301020281000285020102010001010101000101830001 +000181010089000100010001000100018a01000100010001000100018101008d00010001 +000100010201020100028302000102010283010001008200010202028101028402010201 +02810201860102010201000204020100810102820201028e020002000200010001000100 +0100018b0100010001000100010001008800010001000100010088000100010001000100 +880001000100010001008800010001000100010088000100010001000100880001000100 +010001008600010001000100860001000100010086000100010001008600010001000100 +81000101018500010002010204028100020c028500020001000203028100028202000211 +028400020002008200020081000201028101020202810102020281010202028100020102 +820001008300010001850100020100028202010284020001000282020102010281000201 +02810002010281000201028200020102018a020100020002000200020103018202000282 +020102840201000201100181020181010081000106010102830002000285020100020002 +010283000200020102810102840200010002820201028202010210028101020a02810102 +030201018600020102010201020183000100010201810001 +840001020102820200020102020181020182010201070184000100010081000101018102 +018201020184010201020182010201830102010201028101028102018301020102010281 +000284020002000106010102830001020101018102010201870002000100010001030101 +028101020302840102010001270188020102010201020102810201810102820201028602 +010201020102860201020102010284020102010284020100010203028301020102820201 +0283020102010b0182020102820201028202010282020102820201020102810102820201 +02010281010282020102010281010282020102010281010282020102010281010201022d +018100010101010281010214028100020602830002000212028101020202850102010001 +028402010201028402010201028102010101010286010201020102010801810201810102 +810201010181020111018102010701810201020182020001090185020100020102820201 +028902010201020100010001050185000100010001840100020002010285000200020002 +010281000281020081000282020002010287000200020002000201028101008100028202 +0002850200020001020302860001020102000282020102010281000201028b0002010002 +0002010001000184010001000182010001810100 +010102028400020002012601810201810102810201820100018401000100020502020186 +000100010002008100028102010501030206018102010101890001000200020001000184 +01000100018201000103018b000100010001000100010001880100010001000100010101 +8d000100010001000100010001000103018b0001000100010001000100010d0182000102 +040201009201000100010001000100010001000100010001820102010201810201040101 +028201020101018200010201020301020281010282020102810200850001000100028302 +010002850200010001008a00010001000100010001008600010001000100860001000100 +010086000100010001008600010001000100810001010182000100840001020102010281 +00020a0281000202028600010200020002030281000203028100020d0281000286020001 +020102010201810201020181020101018c00020001000100010001000100810001810100 +92000200010001000100010001000100020001008e000200020002000200020002010001 +830102010289020002000200020102010101850200020001028302010001020189000100 +01000100010001070181000107010102810102820201020a028101020202810102010283 +01020102070283010201020b028101028202010201028301020102820201028102018201 +02010f01 +01010102850001020102010e018100010301810001070183020102018201020102018302 +010201810102850201000100020102840002000201040182020102020282000201010183 +020102018801000100010001000103010302880102010001020100010501830001000114 +018100010601860201020102010288020002000201020102840201020102860201020102 +010284020102010284020102010207028101028202010283020102010d01010284000100 +010293020002010001000200020100010001000200010085000100010001010182020102 +8702010201000102011d018102010e018100010101820201021402840100010002070281 +010284020102010281020181010203028101020902830002000282020102020281010202 +028101020102810102020282010201060103028101020102810102010281010201028101 +020102810102010281010201028401020102010601010282010201820100011a01810001 +030185000100010001830100010203028801000200020002000281020081000201028100 +020102810102820200028202000282020102850200020001020202810102820200028202 +000201028100020102810102020282010002830201000184010001000184010001000184 +010001000182010001810100 +820201020302820002012501830001000182010001820100018101020202820100018201 +020187010001000100010081000284020001020105018302010201050182020001820100 +0203020601830001000106018b0001000100010001000100019601000100010001000100 +010001000200020002000200028802010201020102010286020002000200028402010201 +028602010201020102830201000206028100029102010002000200010001000100010001 +000183010201028202010282020102820201028202010201028101028202010282020102 +010281010282020102010281010282020102020281010282020102010208018600010001 +00010086000100010001008d000100010001020002000100010086000100010001008100 +010101820001008700020001000200020102010081020083000100020102010001020100 +01028100028202000202028100010701820001028402000100020c028101020202810102 +020286010200020001028b0200020002000100010001009a000200020001000100010001 +00010001000100010001000100010083000100018201020102018a000100010200010001 +0201020183000100018401000100018a0100010001000100010001840100010001040181 +000107010502830102010209028101020202810102060282010201810102820201028202 +010201028101020602880100020002010201028402000102011301 +820201020302820102011701810001070181000107018a00010002000100010002000200 +820200010301840201020102820200010201830201020183010201008300010001010181 +020183010200018201000184010001000182010001040185000100010001410105021801 +86000100010001008a000100010001000100010088000100010001000100880001000100 +0100010088000100010001000100860001000100010083000100012b0103028101020202 +810102030282010201040104020100040209018102018201020182010001010181000282 +020002040221018302010201010101028101020102810102010281010201028101020102 +82010201080101028401020102010a018100011501010001018500010001000201028500 +020002000202028100020202810002830200010201028101028202000202028100020102 +810002820201028202010201028101020402810102030285000201000201820100018401 +0001000184010001000184010001000182010001810100 +8102018101028402000100011a0181000111018500020002000202028100020102030189 +00010200020001000201020184020102010201020901830002000202022b018802010201 +020102010288020102010201020102840201020102860201020102010284020102010287 +0201020100020002070281010283020102010a0101028101028202010282020102820201 +028202010201028101028202010282020102010281010201028101028202010282020102 +010281010201028101020102080186000100010001008600010001000100860001000100 +010086000200010001008600010001000100860001000100010083000200020402010004 +028200010285020001000100810002010281000203028201000108018100028402000100 +020c028101020202810102020286010200020001029a0200020002000100010001000102 +0002000200020002000200010283020001028e0200010002000100020002000102010201 +840001000102830201020182010001010181000184010001000102018900010001000100 +01000186010001000100010c018202000284020002000289020100020001000200029002 +000200020002000100020002000102008100028202000282020002020283010001020202 +820102018d01000100010200010001000100018401000100018401000100018401000100 +0182010001810100 +010186000201020100012201810001830100010001008201000187010002000102010202 +028100028202000186010001000200020202080185020102010001040181000183010201 +028302010201050183000100019601000100010001000100010001000100010001000100 +01a201000100010001000100010001000100010001000100010001000100010001000100 +010d01810002060292000100010001000100010001000100010200018101028202010282 +020002880201020001000200020102820002008800020001000200010083000100028202 +01028202000284020001000282020102010284000100010083000100010b018102010501 +830201020110018202010201028101020402810102030281010281020182010001020101 +020200820200018201020109010202830102000282020100810002060281010202028101 +02020281010202028101020202820102010701010281010201028101020102820102010b +018102011c0181000114018b000100010001000100010002020281010201028101020702 +810102820201020702010101028101028202010284020102010202028101020702810102 +010201018102010f01810001010101000001 +86010001000100011801810001010181000104018100010a018600020001020102020283 +01020001020181000183010001008300020001040185000100010001080183020102012e +018802010201020102010286020102010201028602010201020102860201020102010284 +020102010287020102010002000202028301020102820201028302010201450181000101 +0183000100011c0183000100010401010201010102040181020107018100020102810002 +010281000182010001040181000101018402000100010101820001008100020202820102 +011101830001000105018100010e01020281010201028101028202010281020103018100 +010601010003018100010201810001820100010201010086010001000100018601000100 +010001820100010c01850200020001028a02000200020002000200028202000202028401 +000200020102810002820200020302830102010297020002000102000200020001020002 +0001020001000201000300820100018101008600010001000100820001000200 +040101001901810001040183000100010101010081010001008201000187010002000102 +010203028100010201850001000200028302000201070185020102010001040182000102 +82020002830201020107018100018501000100010081000184010001000101018b000100 +0100010001000100018c0100010001000200020002000288020102010201020102860200 +020002000286020102010201028402010201028202010282020002040286000200020001 +028902000200010001000100840001000201890102010002000200010088000100020002 +0002008a0002000200010002000100830001000282020102820200028402000100028202 +0002860201000100010083000100010101810001020186000100010002008d0001000100 +010200020001000100860001000100010081000103018402000200028202010201028300 +020002850200020001028102018201000181010208028201020105018200010081000201 +028101020802810102020281010202028101020202810102810200820001020102860100 +0200010001040101028d010200020002000200020002000201028b000200020002000100 +010001040185000100010001820100010a01010015018b00010001000100010001000282 +02010202028101020a028101028202010201028101020202020101020601010281010201 +02810102820201020102830102010201028401020102000900020102008101000200 +840100010001260183000100018e01000100010001000102000102000201020100820200 +010201840001020102010207018500010201020109018102018401020102015101810002 +040216018202010282020102820201028202010282020102010281010282020102820201 +020102810102820201020102810102820201020102810102010281010201020801810001 +010181000105018102010501830201020105018102010401810001010182020102020281 +010203028101020202810102010204018202000203028201000182010001040184000100 +010081000282020002030281000201020101020281010203028101020202810102010281 +010202028101020102070103028301020102010281010201028101020102840102010201 +060181000106018100010301810001020181000105010100840100010001880100010001 +00010001820100010c018200020087000200020002000204020200860200010002000201 +028100029102000200020002000200020100010001000286020002000200018801000100 +0102000200820002001500 +030183000100011801850001000100018401000100010201830001000104018700010001 +020102000200080185000102010201160102020d01830001000102018100018201000103 +018300010001030183000100010301860200020002010288020102010201020102860200 +0200020102840201020102860201020102010284020102000205028d0001000102010201 +0002000100018701000100010002018701000100010001008a0001000100010001000100 +880001000100010001008800010001000100010088000100010001000100880001000100 +010001008300010001010181000101010100850100010001008600010001000100860001 +000100010086000100010001008100010101820001008600010001000100880001000100 +0100010083000100018701020100010001020602820100010501820001008100020c0211 +0101008c0100010001000100010001000108019700010001000100010001000100010001 +000100010001000104018400010001008200010081000107018300010001160101000701 +820002008300020002840200010002010281000204028201000283020100029102000200 +020102000200020100010001000288020001000200010002880200010200010002008200 +01001500 +8101008100011e0185000100010001880100010001000100018501000100010085000100 +010200010001018300010001040186000100010002010501870001000100010001600181 +000203028100010501810001020183020100010601820201028202010282020102820201 +028202010201028101028202010282020102010281010282020102010281010201028101 +028202010201028101020102140181020105018302010201050181020104018100010301 +030281010203028101020202810102010282010201010182020002040284000201020104 +018200010081000202020100820200028202000284020002010201028101020202810102 +020281010202028101020202810102020208010102020102028101020102860102010201 +020109018100010501810001030181000108018400010001008100018a01000100010001 +000100018201000105018500010001000181010203028301020102030283000200028502 +010200010282020001020181020101018100010901050283010201028202010282020102 +0102830102010005008101000d00 +01018500010001000118018100010b0183000100010b0103005601860201020102010288 +020102010201020102860201020102010286020102010201028402010201028402010201 +020502010185000100010201010183000100010201810001820102018301020102830200 +02008a000200010002000200020086000200020001020102850002000100028b02010200 +020002000100020081000201028400010001008a00010001000100010001008600010001 +000200860001000100010086000200010001008600010001000100860001000100010082 +000102010281010202028101020302810002010284010201000282020002060282010001 +05010100820100020c028101020102810102020281010202028101020202860100020002 +010288020002000100010201060197000100010002000200010001000100010001000100 +010001040184000100010003000801810001820100011501810001070101008502000201 +0002ac020001020002000200020002000200020001000100010200020002000200020100 +0100010002000102000102008b0002010001020002000200028302000200820001008200 +010081000181010001008101000500 +820100011f01870001000100010001880100010001000100018401000100018101000400 +01018300010001060183000100010801820001008100013a018602010201020102880201 +020102010201028602010201020102860201020102010284020102010285020102010002 +030201008102010101010201018200010285020100010001010181020176018100018201 +02018101028202010282020002010281000182010201040101008d010001020002000200 +0200020002020218018200010281020102018102011f0181000106018100010e01010082 +010001130101008201000184010001000203028101020202810102020281010202028201 +020106010102860102010201020104018402010201028202010201020201820201020602 +8201020103018300010001020181000101010200 +0101850001000100012501810001820100010a018200010001006c018100010d01810002 +060202018e02010001020102000100010201000101018400010201028102008a00020002 +000100020002008500010002000284020100020085000200010002860201020001000284 +0201000200880002000100010001008a000100010001000100010086000100010002008d +000100010001020002000100010086000100010001008100010101820001008200010201 +028101020202810102020201000402830100020081000204028400020100010601820001 +008200020082000200820002008100020202810102010281010202028101020202810102 +010286000100020001008300020002850201000100010701010094010001000100010001 +000100010001000100010001090185000100010001070181000105018900010001000100 +010001840100010001020181000107018100020102810002010287000200020002000201 +028b00020002000100010001000186010001000100010201870001000100010002840200 +010002920200020001020002000200020100010002000184010001000184010001000183 +010001000200 +820100010201810001190181000186010001000100018601000100010001820100010101 +840001000100030001018300010001080181000148018402010201028802010201020102 +010288020102010201020102860201020102010284020102010284020102010204028100 +018201020183010201028802010002010201020101018500010201020183010201028202 +010281020183010201020102810102820201028202010201028101028202010201028101 +028202010201028501020102010281020114018102010601010206018102010401810001 +040102028101020202810102030283010200028202010201020101820201020402070101 +00820100020d028101020102810102020281010202028101020202810102010284010002 +000201022c018100010e0102001601890001000100010001000282020102080281000206 +020601010201018502010201020105010202810102010281010281020101018300010002 +81020182010001820102010e0101000001 +850001000100013101810001030185000100010001340181000145010402820002011501 +830001020106018102011d018102010c0186000100010001008600010001000100860001 +000100010086000100010001008600010001000100810001010184000100010086000100 +010001008600010001000100860001000201000201028200010282020002010285000201 +000201030184000100010082000200820002008200020001000302100187000100010001 +000202028500010001000109018400010001009100010001000100010001000100010001 +000106010300820100010d01890001000100010001000186010001000100010d01840200 +020002030281000201028100020102830001000283020100018401000100010801940001 +000100010200010002000102000200010201020102880002010201000100018201000186 +0100010001000183010001000200 +04018100010a018100010d01810001880100010001000100018401000100010401840001 +0001000100050181000101018100010c0183000100010301810001090183020102011101 +81000105018100010e018402010201028802010201020102010288020102010201020102 +840201020102860201020102010284020102010205020101820201028202010284020102 +010283020102010301840201020102810200830002000282020102820200020102840100 +020002820201020102810002820201020102810102820201020102810102010281000286 +0201000100010083000100010b0181020106010102070181020103018100010401020281 +010202028101020202810102020201010102010181000206020101810201040182000100 +8100020f0281010202028101020202810102020202018102018201000201028101028102 +012b018100010e0181000116018b00010001000100010001000202028100020202810002 +010285000200020002810201090183020102010101830001000186010002000200028b02 +00020002000102000200028b020002000200020100010001840100010001820100018101 +000100810100 +820001008100010601810001050101008201000124018200010081000102018100012601 +81020105018b000100010001000100010001160184020102010288020102010201020102 +880201020102010201028402010201028602010201020102840201020102050282010002 +840201020102820200028202000288020100010001000201390186000100010001008600 +010001000100870001000100010002850200010001008600010201000100810001010184 +000100010201028200010201028200010202028100020202820100028202010081000282 +020002010281000282020001040182000100840002000200820002008200020001008402 +000201028202010202028101020202810102020287000200010201000282020002010281 +000182010001060190000100010001000100010001000100010081000186010001000100 +010701850001000100010a018100010501810001040183000100010d0106028101020202 +810002050282010201080185020102010201070103028101020102870102010201020102 +8402010201028102010b01010002010100 +82000100830001000105018200010083000100010d018300010001880100010001000100 +018201000104018100010101010002018600010001000100810001110181000101018100 +0107018102010e0181020106018902010001000100010001330105021701880201020001 +000200028202010283020002008500010002000282020100830002000289020100020001 +020001020102810102010288000200010001000100830001000124018100011401810201 +01010102020181000207020601810001820100020d021701010281010201025601830001 +000101018400010201020402820001020202810002010281000283020102010c01810201 +8401000100018a010002000200010200020001008401020001008c000200020002010001 +000100018201000184010001000183010001000100 +020004018200010081000105018500010001000107018100011601850001000100018201 +00010301810001820100011a018100010d018a0201000200020002000201840102010001 +04018102010b018402010201028802010201020102010287020102010201020187010201 +020102010284020102010284020102010205028201000284020102010282020102820200 +028b02010001000100020102010282020102820201028202010282020102010281010282 +020102820201020102810102820201020102810102820201020102810102010281010283 +020102010601860001000100010086000100010001008600010001000100860001000100 +010089000100010001000100018c01000100010002010001000200870001000200010002 +020281000281020181010001008202000201028100028202000104018200010081000201 +028100028102008200020001000502810102020281010202028101028402010200020202 +820100028202000201021701810001050183000100013601810001840100020002050281 +000209028201020106018702010200020102010701010281010201028401020102010101 +82020102010203018102010a010200810100810001 +81010002008201000103018700010001000100010f018300010001860100010001000107 +018100018b010001000100010001000100830001000101018100010b0187000100010001 +000181010081000104018100010b01890201020102010201020182010201010186020100 +02000201310181000205021601820001008a00010001000100010001008a000100010001 +0001000100880001000100010001008a0001000100010001000100880001000100010001 +008300010001250181000112018102010101810201030108028100010501010081020082 +000200830002000282020002030281010282020102020281010202028101028102010101 +020203018202000201020301810001500181000101018100018301020002020281010282 +020002040281010281020084000200020106018702010201020102018201000188010001 +0001000100028a0200020002000102000200850002000200018401000100018401000100 +01830100010081000101010200 +010181000101010100840100010001030185000100010001090181000182010001020185 +000100010001040181000106018500010001000105018100011001830001000103018100 +01840100010001070181000183010201028a020001020002010201000102018102018401 +020102010b01820201028a02010201020102010201028502010201020187010201020102 +010286020102010201028402010201020402020101028301020002820201028502000200 +020182010001850102010201028202010282020102820201028202010201028101028202 +010282020102010281010282020102010281010282020102010281010201028101028302 +010201060186000100010001008600010001000100860001000100010086000100010001 +008900010001000100010001850100010001008100010101820001008800010001000102 +010282020102810201030183020100028102008100028302010201030101008301000102 +040281000283020002008100028102010f01880001000100010001020402550185020100 +010001810102820200020102810002840200020002020201000102810102010209018500 +010201020182010001860100010001000286020001000200028902000200020100020002 +86020001000100018401000100018701000100010001000200 +83010001008100010401010081010081000116018100010b018100018101009100010001 +000100010001000100010001000107018700010001000100010401820001008100010301 +8100011601810201010186020100020002010b0182020102880201020102010201028a02 +010201020102010201028402010201028402010201028602010201020102050201010102 +830102010282020102820201028102010301850002010200028202010287020002000100 +020084000200010282020002860201000201000284020100020085000200010002820201 +028202010201028301000100850001000100012d01810001090101028101020102030181 +000282020002010281000282020001060182000200820002008200020082000200810002 +040281010202028101028402010201020102010101028201020102010100020281000154 +018502000201000101018202010206028100020102010002028200010281020116010102 +830102010282020102880201020102010201028402010201028302010201080181000101 +010100 +040185000100010001050182000100810001110181000184010001000104018100011001 +0200110182000100010002018100010c0181000184010200010084000200020184010201 +0201820102010101820201028102013101060255018100011e0183000100011101030281 +0001030181000203028201020182010201030101008102008100020a0285000201020102 +0202810102810201030101028201020105010202830001020102018102014d0185000102 +00020082000100830002000204028500020002000201028101020202820102010a018402 +010201028802000100010001000286020002000200018401000100018b01000200020100 +01000100028e0200010001020002000100010001000000 +810100830001000101018600010001000100810001100183000100018101008100010e01 +8100018c0100010001000100010001000181010081000107018700010001000100010301 +010081010081000103018100010901810201820102018601020102010201010181020182 +010201100181020102018302010201040101020301010202010102820102010101010284 +010201020181010204020101010283010201028202010282020102810201040187020102 +0002000102850200020001008a0001000200010002000200850002000200028202010281 +020081000287020100020001000282020002840201000100890001000100010001000101 +010100850100010001008600010001000100860001000100010089000100010001000100 +010201820001008600010001000100840001000100010082020002810200830001000101 +018100020302820002018301020001040181000181010281020082000200820002008100 +02030210018b000100010001000100020002810201020101024f01820002008400010201 +028202010201028100020102830102000283020002008200010202020401810001040186 +020102010201028102010601030281010286020102010201020202030103020101020281 +01028102018101000100810100 +020185000100010001050182000100810001150181000182010001040181000110010100 +0301810001050101008201000103010100050101008201000108018e0201000200020002 +000100020102018201020103010102130183020102010101810201820102010101830201 +020104018102010701070201010102810102840201020102820201028102010401840201 +020102820201028202010282020102010281010282020102820201028202010201028101 +0282020102010281010282020102010281010201028101028102012d018100010f010100 +8101020202060107020101810201030101008102008100020c0283010201020202810102 +810201030181020182010201050101028101028202000101018100010101820001008300 +0100010101820001008100013e0181000201028200020001008402000200020402010001 +028100020102810102010284010201020107018102010201010287000100010001000197 +010002000100010200020100010002000102000100020002840200010002840200020100 +81000101010100 +8300010001030184000100010081000117018100010f018100018c010001000100010001 +000100018101008100010701810001030183000100010201850001000100010c01810201 +010185020102010201820102010501810201010181020114018102010401810201020101 +020201820201028102010101010283010201020502520186000100010001008600010001 +000100860001000100010086000100010001008900010001000100010001850100010001 +008800010001000100010084000102010281020082000200820001008200010082000200 +820002008200020181010281020102018200010002000102820002008100028202000282 +0200028202010203028201020107018a0001000100010001000200830001000182010001 +500182000200820002008100020302010081020081000203020100840100020102050201 +00060101028501020001000105018102010a018102010201010281010201020501810201 +020101008101000000 +85010001000100810001020184000100010083000100010f018300010001040181000104 +018100010d01820001000100030183000100010301010085010001000100820001008100 +011101870001020002010201820102010201810201820102011701010204010102040181 +020103018102010401810201010182020102050283010201028202010284020102010282 +020102810201050101028100028202010282020002860201020001000282020102820200 +028202000201028100028202010201028100028202010283020001028202010201028301 +0001008500010001000125018100010d0101020200110202018102010301810001820100 +020d0219018102018201020106018100014a010302810002010284000200020083000200 +02010203000a020901820201028102010101910001000100010001020001000201000100 +0186010001000100018e0100010001000102000100010200018401000100018101000000 + +020001010700110181000101018100010b01810001010181000101018300010001860100 +0100010001040101000201810001820100010b0187000100010001000109018100010201 +8102010601810201820102011b0181020104018102010201830201020102018302010201 +020101020301810201810102020216018102013801860001000100010086000100010001 +008600010001000100860001000100010089000100010001000100018501000100010088 +000100010001000100840001020002100282000201060182000100020081020082000200 +82000200810002820200028202010202028101028102010d018200010088000201000200 +010001230181020129018202000283020002008200020081000203020100810200810002 +010281000201028101020102010183020100010b01820001008300010002840200010201 +810102840200010001020183000100018201000102018300010001820100010201820001 +00820001000000 +8101000600810100820001008100010301810001010101000b0184000100010083000100 +0182010001020181000101018600010001000100860001000100010001000b018b000100 +010001000100010001070183000100010701820001008300010001820102018401020102 +011a01810201860102010201020101010102040101020301830201020101010102010182 +020102020283010201028202010282020102840201020102810201060182020002820201 +028202000289020002000200020001028202000282020002010281000286020102000200 +0282020102840200010002820200028402010001008500010001000125018100010e0181 +000213020801010081020082000200810002830200020081000202020101030282010201 +080183000100010401010204018102010201810001190181020181010201022a01010001 +02810002050202008202000202028100028202000202028101020202820102010c018100 +01040181020182010201810102850201020102010101810201130181000101010000 +020081010002008101000500020181000109010100010102000101820001008100010201 +8100018a0100010001000100010001030181000101018100018101000100030181000182 +010001820100010701010002018100010801850001000100010301010201018102018201 +020182010201190181020183010201028302010201810102010285010201020102830201 +020101018302010201050102028401020102010201830201020102010102050184020102 +010282020102820201028202010201028101028202010282020102820201020102810102 +820201020102810102820201020102810102010281010281020108018600010001000100 +860001000100010086000100010001008800010001000100010087000100010001000185 +010001000100880001000100010001008200010201028100020a02810002820200028102 +010601810001810100820001020c021101810201040104008b0200010200010001000100 +011a018102012a0107028200020083000200020202010081020081000205028101020302 +01000c018402000100018101008100010301810201810102810201020181020116010100 + +810100050081010082000100820001008100010a01810001080181000106018100010101 +81000101018c000100010001000100010001008100010201010082010001810100830001 +00018401000100010301810001070181000107018300010001840102010001060101022e +0181020106018302010201010103021a0186000100010001008a00010001000100010001 +008a00010001000100010001008a00010001000100010001008800010001000100010085 +000100010001360101028400010200020202810102810201830102000201028200020107 +01010081020083000200028302000200810002030201010302820102010a018300010201 +02010a028301020100820002010101010083010002008300010001810102010283010002 +010101810001810102010282010001260181020001008102008100020402810002010201 +000302810002030281010283020102018201020106018102010301810001030181020107 +01810201020181020118010000 +82000100020081010005008201000103010100090181000181010001000a018100018601 +000100010001050102000101020003018100018401000100011a01830001000104018100 +010801810201190101028a01020102010201020102018101028202010283020102010d01 +030203010102030183020102010101830201020102010102810102820201028202010282 +020102010281010282020102820201028202010201028101028202010201028101020102 +810102820201028202010201020901840001000100880001000100010001008600010001 +000100880001000100010001008800010001000100010084000100010088000100010001 +000100830001000282020002040284010200010001000202840102010201040185000100 +0100020d0281010201028101028102010201010207018402010201008100020102830102 +0102080281000203028100020302820102018101020702810002040281000204021f0182 +020002040201008102000100040281000201028300020002820200020102830102000283 +020100010401810201020101028100010b01010203018102010101810001070181000107 +01810001810100 +830001000185010001000100050006018100018101000100810100850001000100010201 +810001020185000100010001010181000101018300010001010181000137018202000103 +018102018201020181010283020102011401830201020101010102820102010101010285 +010201020102810201050184020102010205028301020102820201028202010284020102 +010282020102840201020102820200028202010281020087000200020002000282020102 +820200020102810102820200028302010002820200028402010002008100020102810002 +840201000100850001000100013601020281010203020101810201010101000102010083 +020102010701810001830102000203028100028202000201028201020107018100020102 +0501810001810102060282010002040281000201020100810200850002000200021b020b +018202000104018102010301840002010001810102820200028302000200810002040282 +000200010009028100020302020181000107018400020002018101008100010201010201 +01810001060101000801010006018300010001810100 +010101008301000100810001810100020001010100840100010001080184000100010081 +000107018100010401810001030182000100810001810100810001060181000182010001 +170185000100010001820100010101020082010001050182020102810201820102013901 +02020f018100010101820200013b01840001000100880001000100010001008600010001 +020100880001000100010001008800010001000100010081000103018100018401000100 +010201060282000201870102000100010002030207018400010001008100020c02810102 +010281010201020201030281010201028101028402010200020f02010025020a01010202 +018102010801820201020202010082020002020201008102008300020002020282000200 +830002000205028401000102010701010281010285020102000200830001000181010286 +02000100010001060101000801010006018300010001 +810001040105008101008100010201810001030182000100030001018100010101810001 +020183000100010501810001010182000100010033018100010301810201050182020102 +810201820102012601860201020102000104018102018501020102010203028601020100 +020002820200028402010201020202020081010203028201020001008902000100020002 +000102850201000200020102820002008a00020002000200010002008100020102810002 +820201008500010001000113018502010201020110018300010001820100010301010081 +010282020002040202018500010002000201028300020001080101000402810002070281 +010201028101020102010182020002810201810102840201020102110281000202028400 +02000200830002000204028100020b0281000206020b0105028100028502010201020182 +0100020a0201008202000202028200020001008202000205028100028102010101010201 +0001018a0201000200010001020002830201020101010202020101021001810001820100 +0104010100820100010001 +810100010083010001008200010007008101008100010901820001008100010501810001 +090183000100018301000100810001270183000100018401000100010101840001000100 +010004018102018101028102011901830001000102010100030183000100010101830001 +0001010181020081000201028300020002010201000a0201008102000200080284010200 +020081000202028101028202010282020102010281010282020102820201020102810102 +8202010201028101020102810102810201060181000125018100010f0182020102020282 +000201040105028201020106010100010181000202028100028402000200020202090182 +02010201028301020102820201020f028100020102010022028101028102010c01010282 +010201820102018201020101010402830001000207020100810200830002000204028100 +0203028200020182010001020186020102000200028e0201000200010200020001000200 +02010201008502000100020101018500010001000105018300010001040103000001 +8300010001020107000a0182000100810001820100010501810001100181000135018100 +010e01010213018100018501000100010081000112018102018601020102010201810102 +030201008102000100810200010083020100028202010283020001020702830002010203 +022d01840001000100880001000100010001008f00010001000100020100010001000100 +870001000100010001870100010001000100860001000100010085000100020002010281 +000281020101018500010002000281020084000200020107010100010283000200028202 +0002050281010201028101020e0281000202028100020402860102000100020081000202 +02810002010201008202000208028100020e02820102010e018202000281020101018102 +010101830002010201028100020202820002008200020082000200810002010201008102 +008300020002010283010200028102018301000200820002018201020181010001000302 +8101028102018101020b02050181020101018102010e01810001 +830100010082000100020081010002008201000184010001000151018100010201810001 +840100010001010182000100810001270184000100010084000100010082000200820002 +008b00010200020002000200020085000200020002080281000201028100021402810102 +820200028202010201028100028202010282020002820200020102840002000102010281 +000201028100028202010087000100010001000111018202010201020e018100010f0105 +028100028102010201070283000200010401020085020002000200820002008300020002 +0502810102020281010202028101020a020101020201010202810100830002010227020f +018202000281020105018202010203028100028102008200020081000204020100810200 +8100020b0286010001020102010101820001008100010101010001019200010001000100 +0100020002010002000200018401000200028202000186010001000100018b0100020100 +01020100010002 +0501020081010002000e0181000179018102018601000100010001810100820001008d00 +010001000102000200020100020102820002008200010081000286020002000200020202 +83000200020f028100028202000207022e01840001000100880001000100010001008600 +010001000100880001000100010001008700010001000100018701000100010001008900 +010001000100010002820200020402020183000100020702060181000183010001020d02 +080107028100028102008100020202820100010201010284000100010082000102050281 +00020b02810002080281000204028400020102010c010102820002010401820200028202 +000282020002060201000102810002050283000200020202880102010201000100020202 +8100018501020100010001008a0201000100010001000201010185000100010001020183 +0001000282020001860100010001000182010002030281010282020001 +85010001000100030081010083000100011a018100014b018100011e0185000100010001 +080181020181010281020183010201020102010101028101020102810102820201020702 +810102060281000206020100060281000202028401000200028902000200020002000102 +830200020082000102870200020002000200810002010281000282020100870001000100 +01000111018202010201020e018100010e010102810102040202010a0208010100840200 +020002820200020202810002020281010282020102020283010201028202010201028101 +0205028101028202010201020301810201830102010228020f0184000201020107010102 +810102060281000282020002030202008102008100020802830100010203028201020002 +000101020207018202000182010201040181000203020201810201070101028101020402 + +87010001000100010081000101018100017f010901810001040189020002000100010001 +008200020087000200010002010201028100028102008100028302000200010085010200 +020002020281000202020100820200028302010002010281000202028100020402810102 +820201028202010282020102010281010282020102820201020102810102820201020102 +810102820201020102810102810201080184000100010088000100010001000100860001 +000102010088000200010001000100870001000100010001870100010001000100890001 +000100010001000281020081000203020101820200028202000205020701810001810100 +8100020f0281010202028401020102018101008100018101020202810002850201000200 +0201028101028402010201008100020702810002820200021b0210010102080185020002 +00010001008202000208028100020f028401000200020102840100010001010181020001 +000101870001000100010001860100010001000184010001000288020001000100020001 +8c010001000102000102000200020302 +010081010001000101850001000100013701810001510183000100018101008a00010001 +000100010201028102018301020102810201810102820201020302810102010281010282 +0200028202000201020100160281000281020081000286020100020001008a0001000100 +0100010001008a00010001000100010001008a0001000100010001000100850001000100 +013c010202820002010501810002020281000109018100018101008100020b0208018102 +01830102010281020182010201820102010101010202010102080129020e010102080102 +0281000204028200020081000202028100020e0281010281020103010102030102008101 +0082000201130101020d01010201018202010202020000 +820100018101008100010201830001000114018100011101810001060181000155018300 +0100010a018a000100010200010002000282020002010282000200850002000201020102 +8101022c0281010282020102820201028202010201028101028202010201028101028202 +010201028101028102010601860001000100010088000100010001000100860001000100 +010201028600010001000100880001000100010001008600010001000100880001000100 +010001000300030283000201020202010104020b0101000d028301020102020281010202 +020101010085020100020102050283000200018301020102850201020100020402830002 +000202028100021b020e0101020801010003028100028102008300020002040281000201 +020100040281000206028101008100018201020181010002008301020102860200010001 +000181010081000186010001000100018401000100018601000100010001840100010001 +8b0100010002010002000201020102 +0301010003018100017f010f019400010001000100010001020001000100020100020088 +000200020102000200820002008100020102810002020201002202830002000289020001 +000200020001028202000201028701000200020002008300020002010281000282020100 +850001000100011401030223010502830102000283020100020302010181000103018100 +010101820002008300020002810200830002000204028101020202810102020281010202 +02810102810201820100028202010283020102010101820201028402010201021c028101 +020102810102070205018100010401810001830100020107018302010002840200020002 +050281000281020083000200020d02060183020100010201010081020085000100010001 +8801000100010001000186010001000100018401000100018401000100018c0100010001 +000201020102010201020000 +0201830001000103018100017f0109018100018801000100010001000103018102018201 +0201820102018201020182010201810102820201020f028100021e022c01860001000100 +010088000100010001000100860001000100010088000100010001000100880001000100 +010001008600010001000100880001000100010001000300040201018100010301030282 +0002010a0181000202028100020802090184020001000281020185010002000102030201 +018100018201020108010402810102010282000200810002040281010201028100020102 +810002030281010203021001010203018102010201810002050201008202000282020002 +060282000200810002830200010201028101028102018401000100018201020181010082 +00010081000102018102010f01810201100184020102010201028101020002 +8201000181010081000102018100011f0181000106018100010401810001070181000103 +01810001060181000106018100010c018100012801810001070184000100010085000100 +020002810200830002000283020002008200010081000282020002010281000201028300 +020002040281010210020100060281010282020102010281010282020102820201028202 +01020102810102820201020102810102820201028102011f0103021f0181020183010200 +028202000283020102008100018201000203028200020082000201010101000101010201 +008202000281020081000206028101020202810102010281010203028101028102018501 +000200010281020102018300020102870201000200020002030281000284020002000201 +028100020402810002060281000201028100028202000281020105018200010081000284 +020100010202020100010184020100010284020002000203028100020402010001028100 +020602820100020302820102010201010281010083000100018301000200830002000188 +0100010001000100018b01000100010002010001000186010001000100018e0100010001 +020002000102000200020002 +820001000100820100018101008100010301810001070181000106018100011001810001 +0e018100011d018100010d01810001040181000104018100010401810001030181000105 +018a00010001000100010001008300010001810102810201840102010201850102010201 +02010283000201020102810002020281000205028100021a0283010001008a0001000100 +0100010001008c0001000100010001000100010088000100010001000100890001000100 +010001000111018102011101810001110103028200020181010284020002010204028201 +020183010200028402000201028202010201020101820200020602810102020281010201 +028101020102010081010201020101050205010202010102020201820002008100028202 +01021c020a010202830102010282020102050201010a028100020c028100020a020a0101 +00820100020102050183000100010501820201028102010c018102018301020102840201 +0201020002 +810100820001000100840100010001820100018201000182010001010183000100010201 +010002018100010401010005018300010001040181000103018100018101008100010401 +810001050101000501010008018100010301810001030181000107018100010801010005 +0183000100010201810001820100010c0182000200850001020001008100028902000200 +02000102010201028101021e028100020602810102820201020102810102820201028202 +01020102810102820201020102810102820201020102820102010c018400010001008800 +010001000100010086000100010001008800010001000100010087000100010001000187 +0100010001000100880001000100010001008100018101022b0282000201090181020105 +018300010001810100820002010101830001000105018200010082000102020201000102 +810002110281000206020701860001000100020081000202028101008300020002820201 +02040281000205028100028102008100020a028201000203020301810001030102008601 +000100010001840100010001040185000100010002890200010201000102000181010081 +0001820100018b0102010002000201000201020002 +810100040081010001000701810001070181000106018100010601810001060181000106 +018100010601810001050181000105018100010501810001050181000104018100010201 +83000100010501810001860100010001000102018300010001050181000103018a000100 +010001000100010081000283020002018101008500010002010201028200020001000102 +810002020201002502810002850200020001028502000200010201028100028602010002 +000100820001020102850102010001008900010001000100010001110183020102012101 +830002000201028100020c02810002090281000202028100020102810002020281000282 +020102020281010201028101020202830102010283020100020502040103028101020102 +84010001000222020b010602810102040201010502810002070201008402000200020802 +810002030201018302010201010185020100010201810100880001020001000100019101 +000100010001000201000100010001000286020001000100028202000185010201000102 +8402010001020102 +040083010001008300010001840100010001860100010001000101010100010183000100 +018601000100010001860100010001000181010081000186010001000100018a01000100 +010001000100018101008300010001930100010001000100010001000100010001000100 +81000183010001008100018101008c000100010001000100010001008100010101830001 +000108018100018501000100010083000100010401850001000100010701010201018402 +0100020182010201810102860201020102010282020102040281010203028100021c022e +018400010001008600010001000100910001000100010201020001000100010001008800 +010001000100010088000100010001000100860001000100010083000100022e02810102 +020281010281020181010202028300020102840201000102020287000201000100010201 +02810102010281010201028101020102010001028100021b028201020103018100018101 +0210028101020f02810002820200020d028101020602010101008101008100010d018502 +01020102010401810201040101020c01810200 +020081010001008101008100016f01810001020184000100010083000100010101810001 +080181000109018100010401840200010201810102850201020102008100028502000200 +020085000200020002260281000282020002860201000200020081000201028800020001 +00020001008200010287020001020100010087000100010001000139018100022c028200 +0201070181020104010102820100010c0181020105010100250201018102010701220201 +00820200028202000205028100020c020100020181020087000100010001000188010001 +000100010001860100010001000186010001000100018401000100018301000102830201 +0002840200020002 +810100020083010001008100018601000100010001840100010001860100010001000101 +01010001018300010001860100010001000186010001000100018101008100018c010001 +0001000100010001000181010081000189010001000100010001008100018d0100010001 +000100010001000100830001000181010083000100018101008a00010001000100010001 +008800010001000100010086000100010001008400010001008300010001040183000100 +010801840001000100890001000102000201000201028301020102010281000201028100 +020202810102060281000202028101020b02810002050281010282020102820201028202 +0102010281010282020102820201020102810102820201020102820102010a0186000100 +010001008600010001000100910001000100010001020001000100010001008800010001 +000100010088000100010001000100860001000100010082000100810002110281010219 +028101020102810102010201010202010101020101850200010201020102860100010001 +00028302000102010285010201020102010281000282020002140281000203028100010b +01820201020502810002180201000c028101020502020185020102000100010082020001 +080187020102010201020105018302010201020181020103010102010181020181010281 +0200 +0200020183000100017f010b018100010101810001080181000181010002000101810201 +0201020284000200020081000209028101020b0281000212020200890100010001000100 +01008c000100010001000100010001008a00010001000100010001008700010001000100 +011301830201020121018100022502810002020281000201028101020202810102810201 +810102810201040183000100010201020282010201030181020181010201028401020002 +0081000222020c0181000223028100028202000201028100020102010182020102050285 +0100020002008100010201850001000100018f0100010002000200020100010001000184 +01000100018501000100010084000100010088000100010200010001 +820001008200010001008202000186010001000100018401000100018401000100018601 +00010001000184010001000186010001000100018a01000100010001000100018a010001 +000100010001000183010001008100018c01000100010001000100010001810100900001 +00010001000100010001000100010083000100018101008a00010001000100010001008a +000100010001000100010084000100010084000100010083000100018201000109018100 +018101000100810100010082020102010281010202020100810200840002010002820201 +020102810002820201022102810102820201028202010201028101028202010282020102 +010281010282020102820201020102810102810201090184000100010088000100010001 +000100880001000100010001008800010001000100010088000100010001000100880001 +000100010001008600010001000100030002028301000201010182020102030281010201 +028101020202810102830201020181010207028100020302060181020101018102010101 +010201018202000103018102008b00010001000100010001020182010201010105020100 +1a0201000c01050281000206028101022802820102010501010081010083000100019401 +000100010001000201000200010001020001000186010001000100018801000100020102 +0002820201020202 +03008101008300010001820102010c018100017f01020181000103010300820201020102 +0101810201810102060201000802820001022002820100013e0181020122010100040201 +018100020602810002020281000202020701110281010201028101028402010201020102 +820001028102018101020202820102010501020281010201028300010002220210012502 +8100020e020101010281010284020001000105018b020102010201020102010201810102 +01020b01840001000200010003028100020002 +090085010200020001860100010001000182010001020183000100018601000100010001 +86010001000100018a01000100010001000100018a010001000100010001000181010081 +0001a1010001000100010001000100010001000100010001000100010001000100010001 +008100018301000100880001000100010001008300010001810100860001000100010084 +000100010086000100010001008100018201000103018100010501030003028100018201 +020181010281020181010201020100010202000b02810102130281000205028200010282 +02000201028100028d020002000100020002000200020088000200010002000102810200 +8b000100010001000100010001020181000120018100010c018100010101820200020202 +810001010102028100020302810002030283010200010201830002010203028501020002 +000203020701020201010602040183020100010a01820201008100020202810002010281 +000282020002030281000201028101020102820100020302880100020002000102010c01 +810002820200020402810002190283000200020502810102010281000281020101018302 +010201020102000101900001000100010001000102000200010001840100010001840100 +0100018201000203028100028302000200820002000000 +020083010001000100850200010002010101830001000186010001000100018401000100 +0184010001000186010001000100018a0100010001000100010001020189000100010001 +000100018101008100010201890001000100010001000101018100010301830001000101 +018300010001020181000101018100010801830001000122018200010001000402020181 +0201060102020300830200010205028100021e0283000200020102810102820201028202 +010282020102820201020102810102820201020102810102820201020102820102010801 +830001000187010001000100010091000100010001000102000100010001000100870001 +000100010001890100010001000100010082000100030081010085000200020001010181 +000201028100020402810002020201000302810102070281010081000204020101820201 +028302010201020109028101028102008f00020002000100010001000100010201830100 +010081000283020001021402810102820201028202010281020110010102820102010201 +0302820100020a02810002020281000216020301010081010001001f0105020100810200 +8100020202 +04008201000101018102010301010226018100010f018100010901810001010183000100 +010201810001030183000100010101810001010182000100850001000100010301820001 +008400010001008600010001000100820001008300010001080181000103010302870100 +020100010001060105028100020502810102050281000219028b01000100010001000100 +01008c000100010001000100010001008a00010001000100010001008b00010001000100 +010001000111018102012401820200028402000200010201010283000200020102830002 +000283020102008100020302810002040285010201020002020206018202010281020181 +010288020002000200010002010281000201028100010401810001810102810201830100 +0102030281000282020002180283000200010e0181000285020002010002810200810002 +07028100028202000209028100028402000200020d020201820200028402010201028f02 +000200020002000200010200020002860200010001000184010001000185010001000102 +08028300020002 +060001018b00010200020001020001000184010001000186010001000100018401000100 +018601000100010001810100810001860100010001000181010081000186010001000100 +018c01000100010001000100010001810100810001810100980001000100010001000100 +010001000100010001000100010081000183010001008400010001008300010001830100 +010084000100010086000100010001008200010083000100010c01010002028200010085 +0001000100010501010284000102000202028100020a0281010219028300020002010281 +010282020102820201028202010201028101028202010282020102010281010282020102 +01020b018200010088000100010001000100880001000100010001008800010001000100 +010088000100010001000100880001000100010001008200010003008101008100020302 +010182000100820001020102810102060281010207028301020002820201008100020402 +84010001020102018102010101810201810102830201000281020101018f000100010001 +00020001000100010001020102002302110102020301820201020b028100028102008200 +020081000214028101020102030182000100020088010002000200020002860200020002 +0100810001820100018601000100010001850100010001020c02 +82000100040081020102018102017f010c01810001830100010081000202020d01010283 +010001020502810102050281000216028100020402840100020002850201000200028202 +000282020102010283010002008b0002000100020002000100028a020001000100010001 +000113018102011e01020202018202000284020002000182010201010181020001008102 +008200010082000100820002008400010002008200020181010203028301020002040201 +010202830102010282020102010286010002000201020602840102010201810100860001 +000201020081000204028300020002130281000202028400020100010401810001810100 +810001010101000302840002000102080281000210028500020002010201020100820200 +028202010203020101020082020102860201020102010286020102010201028202010281 +02010f010c02 +820002000100810100880002000100010200018401000100018401000100018601000100 +010001840100010001810100810001860100010001000186010001000100018101008100 +018601000100010001810100830001000196010001000100010001000100010001000100 +01000100018101008c000100010001000100010001008100018101008600010001000100 +8100018301000100840001000100860001000100010086000100010001008100010c0102 +028400010001008200010081000104018102010401010281000205028100020102810102 +1d022d018400010001008800010001000100010088000100010001000100880001000100 +010001008a00010001000100010001008800010001000100010081000201028200010081 +0002030284000100020081000203028101020f0201010202020006028100028402010201 +028202010201028101028202010201028101008100020302900001020100010001000100 +010201020102010281010221020b01810002840200020002020201000102810002080281 +01020e028201000207020101010281010202020201830201020001009601000100010002 +0100010001000100020100010001000184010001000184010001000183010001020902 +8400010001008100018201000103018102017f010b018100018301000102020281000108 +01810201820102010401810002810200810002010281000282020102010201001d020100 +850200020001028202010289020002000200020001028102008a00020002000200020001 +008b00020001000100010001000134010202010106028201020103018100020202810002 +0e0201010602810002050284010201020101018102010201810001010182000201020103 +028101020202820002008900020001020001000201860100020002010214028100020402 +820102010401820001000200810200830001000205020400860200020001000281020081 +000287020002000201000204020101010283000100020202810102060201010100810200 +01008101028602010201020102890201020102010201020113010802 +840102000100010001018302010001840100020001820100018401000100018801000100 +010001000186010001000100018601000100010001860100010001000181010081000186 +010001000100018101008100018301000100810001a10100010001000100010001000100 +010001000100010001000100010001000100010081000181010086000100010001008300 +010001810100860001000100010084000100010084000100010081000182010001060181 +000182010002010283010001008400010001008100018201020107018200010201028100 +020802810102150281010204022d01840001000100880001000100010001008800010001 +00010201008a000100010001000100010088000100010001000100880001000100010001 +008100020102820001008100020302810001810100010082010002130282010002010202 +000602810002820201020d02870100020002000200010033028401020102010301010005 +020100810200010081020082000200010007028101028602000100020002060285010200 +0100020e0204018102019401000200020001000102000200010001020002000186010001 +00010001860100010001000189010001000102000100020302 +040081010084000102000101018100028302010001840100010001840100010001860100 +0100010001840100010001860100010001000181010081000186010001000100018a0100 +010001000100010001810100830001000183010001008100018c01000100010001000100 +01000101010100030101000201830001000101018100010201830001000111018100010e +0181000201020200820100018301020102810201070181000101011d028100020d020100 +820201028102018301020102810201840102010201010102020101010283010201020202 +8401020102013b0102020201050284010201000101018100021302810102010283000201 +028202000205020a01820201020102850102010201020a02010082020002020281000203 +020100030281010208028101020b02810002810201050102020100020282000200810002 +080201008202000203028100020402810002040282010002020281000282020102070204 +018200020002008201000188010001000100010001860100010001000184010001000186 +0100010001000184010001000184010001000183010201020102 +830100020002000201810201020101024e01810001030181000103018100010201810001 +010183000100010201880001000100010001008400010001008300010001010101000101 +810001060182000102010202018700020002010201008100010c012c0282010001810100 +01008201000101018500010001000101010100820100010101850001000100018e010001 +00010001000100010001000104018300010001010101008701000100010001008a000100 +010001000100010083000100010101840001000100810001010184000100020082000200 +020004028100010101010082010002190201008202000203028100020a02010181020107 +0101028301000102320208010b0281000282020002820200020302810002820200020102 +830002000281020081000204028101028202010282020102020281000202028301000102 +810201010183020001028402010201028a02010201020102010201028302010201120183 +02010201820102018101020002 +060084010002000182010001840102010001840100010001860100010001000184010001 +000181010081000182010001810100810001840100010001860100010001000181010083 +000100019001000100010001000100010001000100018101008300010001810100830001 +000181010083000100018101009000010001000100010001000100010001008a00010001 +000100010001008400010001008600010001000100850001000100010801030281000281 +0201820100010d0181000102012f02810102010201010302810102010201010102830102 +010202028101020202810002020281010201020501820001008100010301810001180181 +000106018100010401810001020102028100028102010101810001010183000200020402 +83000200020a028500020002000207028101020a02810102010287010200020001000285 +02010002000202028100020502810002040281000201028100020f028101020102810002 +0102830002000106011e0283000200020202810002040282000200830002000201028300 +010201810102820200020102030181020002009002000201000100020002010001000200 +018601000100010001860100010001000184010001000183010201028402010001028102 +01 +8101000400010181020103018102017f010b018100020402040083010001008100010b01 +8202000209028100021e025a018100010101880001000100010201000100040281000101 +01860001020002000205020100820200020c028401000200020f02820102010901010282 +010001810102100282010002140281010201028101020202090120028101028402000201 +020202830002010202020101810201810102070203010100840200020102860201020102 +01028702010201020102011101850201020102018201020182010201 +810100040081010282020001820100028302010001010101000101830001000186010001 +000100018401000100018601000100010001860100010001000181010081000186010001 +000100018101008100018301000100810001860100010001000181010083000100018101 +00830001000181010083000100018101008c000100010001000100010001008c00010001 +000100010001000100860001000100010084000100010087000100010001000107018100 +020302010103008101008300010001070181000101018202010205028101022302010001 +028301020002020281010202028100020202810002020281010202028201000201028300 +0200028f0201020002000102010200010201020101010100820100010101820001008100 +010101850001000100018601000100010001010183000100010701810201020102028100 +0281020101010100830102010217020200010281010202020d0181000202028301020102 +820201020202830102010209028300020002010202010102810002140281010201028300 +02000109011b028100020a0283000200020c028100020202030101029201000100020100 +010001020002000100010001840100010001860100010001000184010001000182010002 +0202830001020182010201 +070082020001870100010200010001840100010001860100010001000102018100010201 +810001020183000100010101810001040181000108018100010301810001500104020300 +820100010e01810001830102000222028100020502630101028101008500020002000283 +02010001020182020002010281000206028100020c028401000200020e02820102018201 +02010101810201010181020182010201020103028100020a02820100021e020f01120281 +01020302810002020281000204028100020b028100020702830100020002008d02010200 +010200020002000200028602000100010001020181000182010001020181020187010201 +02010201028302010201 +010001018500010001020101010102110181000102018100010201810001040181000101 +018300010001020187000100010001000101018100018201000101019e00010001000100 +010001000100010001000100010001000100010001000100830001000181010086000100 +010001008100018501000100010084000100010084000100010084000100010081000182 +010001070104020101040081010083000100010b01820200022c02810102020283010201 +028402010201028402010201028402010201028202010284020102010282020102820201 +028402010201028202010282020102820201028202010283020102012501020281010081 +000204028201020104012d02810102890200020001020102010284020102010281020101 +010502810002020283000200020102810102840200020002110281000206020e01110283 +010201020f02810002070281010205028100020302010181000103018100011201810001 +04018300020102020284010201020183010201020002 +01008f010002000200010002000201000100018401000100010101010001018100018401 +000100018101008100018401000100018601000100010001830100010081000186010001 +000100018101008100018801000100010001000181010081000181010083000100018301 +00010081000181010083000100018101008c000100010001000100010001008100018101 +008500010001000101018400010001008400010001008600010001000100830001000108 +0104020200010101000e0181000183010201020702810102170281000207028101020202 +810102840201020102020281010284020102010202028401020102018501020102010202 +028101020602810102060281010202022401010003018202000201028200020082000200 +010083010002000100840200020002010282000200820002008400020002008400020002 +0001000d02810102030205010502040103028100020a02810002170281000205020c0127 +028101020102030082020002860200010200020081000202028101028102000200900200 +020100020002000201000100010001860100010001000185010201000102890201000200 +0201020102020282010200 +82000100810001830100010281020104018102016b018100011b01820001020102010101 +0081010001008401000100010b0101028100020402810102090281010217026401840001 +0001008100022d020e018102010101010201018402010201028102018101020502810002 +020283000200020602810002150281000203021001810201810102090281010282020102 +07028100020c028300020002820201020502040082010002070281010287020102010201 +02010a01820201020102810102020283010201028302010201810102 +030081010085000200010001870100020100010001840100010001840100010001860100 +01000100018401000100018a010001000100010001000186010001000100018101008100 +01860100010001000181010083000100018701000100010001008100018f010001000100 +010001000100010001008100018301000100810001810100860001000100010083000100 +018301000100840001000100880001000100010001008500010001000107018300020002 +01020100040101000c01830001020181010204028101021b028100020402850001020102 +010101010202010102020101020201010202010102010102020101020281010201028301 +020102010281010201020101010201010102030181020182010201010181020120018202 +000206028100020302810002020201000102810002130281010201028101020102810102 +040281010281020181010281020101010102820102010101040201000202810002820200 +020202010005028100020202850002000200020502810002040283000200010501810001 +06018100018101020c02820001020d028100020102810102080281000202020200020281 +01020102810002050281000208028c010201020102000200020001028702010002000201 +0284020102010282020102 +0200810100010081020182010001810102820200010401830001000107018100010c0181 +000117018100014901810001030182020102010281010004008101000100060183020100 +0181010282020102040281000204028300020002120281000202028c0102000201020102 +00010201028402000201028b020100010201020100020102010283000201020102820100 +02820201028302000102840201020002820201028302000102010282010002820201028a +020002010201020002010201028100028602010201000102010288010002010201020001 +03018200010281020081000206028101020502810102040281010209028101020e028100 +020302820100020302810002050281000203028200010204028100020302810002040281 +0002100281010209020e018102018101020a028201000183010200020202810102880200 +020002000200028302000201810102100282000200020008028101020202810102030201 +0102028101020202010102028401020102018401020102018301020102 +040081020182010001010101000301830001000182010001010181000184010001000103 +010100810100830001000188010001000100010001830100010001008201000183010001 +008100018c01000100010001000100010001810100830001000181010082000100820001 +008400010001000100010182000100860001000100010002008b01000100010001000100 +010086000100010001008600010001000100810001820100010701030281000103010200 +080181020184010201020081000217028100021302810102030281010201028101020102 +83010201028202010201028101020a028101020102810102010285010201020102170281 +000201028301020002030281000203028100010401810001810102010202008101028402 +010200028102018101020102810002040281000202028100028202000282020102010281 +000282020002810200810002040281000204028100020402810002040281000204028100 +020302810002040281000201028101020802810102820200020402810002090283010200 +010501010004018102008100028102018101020502810102010281000282020002060284 +0002010002050281010203028101020702820002008400010201020b0285010201020102 +0102810002030281010201028c00020002000102000200020102840201020100 +050002018200010083000100010301010001018100010201810001840100010001020103 +008201000101018400010001008100010101020082010001020182000100010002010100 +810100010002018500010001000101010100010181000101018400010001008100010101 +0300010183000100018401000100018401000100010201810001090183000100010a0103 +020500030181000103018102010101810002010281010223028200020001008202000281 +020087000102000102000298020002000200010002000200010001000100010001000100 +018101008200010082000100820001008200010082000100820001008200010082000100 +820001008200010082000100820001008300010001810100830001000181010083000100 +018301000100810001830100010081000101010200810201810100820001020402810001 +010102000101080282010201820100020502010003018300010001010101008201000101 +010200030102000301020003018300010002020201008202000286020002000100018201 +020085000200020102030281000202028301020002030201000402830001000104018300 +01000105018100010c010502810002010284000200020083000200020302810002050281 +0102080283000201020102830002000286020002000200028202000201028e0002010201 +0001020102000200010201028c00020002010002000201000201 +020083020001008100010701810001840100010001820100010201830001000102018300 +010001030183000100010201810001820100010501830001000182010001010101000501 +810001840100010001010185000100010001010185000100010001830100010081000102 +018300010001010182000100810001830100010082000100010081010087000100010001 +000105018100018201000104010202010003010200810100810001020181020103018402 +010200020b028100021d020101810001020183000100010b010202810102820201020702 +8101020102810102010281010201028101021b028101020c020801030202010402070102 +02830002000281020084000200020101013e020101820201028202010282020102010282 +010200820001028402010200020a020b0181000101010102830002000185010200010001 +8101008500020002010203028100020302810002060283010201020b0281000281020002 +000b02810102040201010102010101020101010282010201880102010201020102018401 +0201020182010201 +010081010081000182010001240181000102010100820100016501010201008102000100 +020181000101018100010101830201000101010102010023028200020082000200840002 +000200840001000200010083020001008200020082000200820002008200020082000200 +820002008200020082000200820001008200020082000200820002008200010082000200 +820002008200020082000200820002008200020082000200820002008200020082000100 +840002000200820002008200010082000200820001008200010082000100820002008500 +010002000203020100850100010001000100070282010201820100020702010083020002 +008400020002008200020086000200020002008600020002000200840002000200880002 +000200020002008600020002000200860002000200010083000200028302000200830002 +00018a010201020001000201020086000200020001008700020002010001008300010001 +820100010101850002000201020102810002810201030101028101020502810102810200 +850002000200020202850002010201021f02830102000284020100010201028500020002 +01028f0200010001020002000201000200010201028100020002 +050004018100010101850001000100010101820001008100018201000101018700010001 +000100018101008300010001010181000107018900010001000100010001810100830001 +000188010001000100010001830100010083000100018301000100830001000183010001 +008300010001810100880001000100010001008300010001830100010086000100010001 +00830001000109018100018a010001000100010001000205020101820200018101008400 +010001008200020084000102000206028100021b02810102010281010204028101020202 +810102200281010209028101021002810102080281010209020101810201820102010101 +0302020105020501010281010207028100018101022c0281010210020101020281010203 +028101028a02000200020102010200020102010186020001020102010101810001050101 +008301000102010201008201000281020187010001000200010216028101020102810002 +030281010203028200020081000281020081000203028101020202830102010284020102 +010201028c01020102010201020102010201810102010282010201850102010201020002 + +810001810100010082010001820100010201810001010181000102018100010901810001 +040181000184010001000182010001820100010101810001010183000100018201000182 +010001840100010001010181000182010001030183000100010301830001000102018100 +018201000102018300010001030183000100010201830001000103018300010001070181 +00010b010302030182000201010101028100010101020281010226028100028302000100 +810002880200020002000102008300020002810200830002000283020002008100028302 +000200810002830200020081000283020002008100028302000200810002830200020081 +000283020002008100028302000100810002830200020081000283020002008100028302 +000200810002010201008202000281020083000200028102008300020002810200860002 +000102000281020081000202028201000186010001000201020902840001020002820200 +020302810002010201008202000201020300010282000200810002010282000200860002 +010200020086000201020002000100010282000200810002020203000202820002008100 +028102018101028102008100028102018201020084000201020184010002000202028401 +000100010201820200010101810201820100028102010101010283010001020102010108 +028a00010200020002000200021102810002820201020902810002810201810102860200 +020002010201028501020002000290020001020102010200020001020002000282020002 + +820001000200040181000107010100050182000100810001040102000601810001060181 +000105018100010601810001050101000501830001000103010100050101000401830001 +0001030101000401830001000102018100010c0189000100010001000100020302840001 +0001008400020100028102008200010083000100020a028100021c028300020102840201 +020002820201028202000282020102840200020102830201000201028501020002010201 +028200010201028100020102850102000201020102810002030281000203028100020302 +810002030282000102020281000202028201000203028100020302810002870201020100 +02010283020100010101060203018102010201080281000281020181010242028101021a +020101860201020102010202028101020202810102040281010202028101020102810102 +180283000201020b02810002080281010284020100010285020002010002840201020002 +0102900002010201020100020100010200020002840200020001 +850001000100017f010b0181000102018700010001000100018301020102010208010302 +82010201810102030281010202028101021b028401000201028402010201028202010208 +028101020b02810102010281010205028101020102810102820200020302830002010201 +028100020902010003028100020302010003020100030201008202000281020083000200 +028102008700020001020002008200020084000100010086000102000100020702820002 +008600020002000200820002000100830200020082000200810002810200020001020100 +810200810002810200820002008100028102000100820100028102008200020083000201 +000100850200020102000100820200028302000100010081010281020083000100028302 +000200010002020300020201008102008100020102010081020081000201020100810100 +81000284020100020001000e020100820200028402000200028202010203028101020302 +810102010281000201028100020a02810102810201810102840201020102020283010201 +02820201028102018801020102010201020185010201020102810201 +010081010001008201000181010081000101010100030181000181010083000100018201 +000181010081000182010001820100018101008300010001830100010081000184010001 +000181010083000100018301000100810001840100010001810100830001000182010001 +820100018401000100018401000100018201000186010001000100018101008500010001 +000184010001000186010001000100018601000100010001840100010001120184000100 +010202020101020081010086000200020100020402810002820200020302810002020281 +010213028300010200820001009000010001000200010002000200020001000100830200 +020001008301000200010083020002000100810200820002008200010083000100028102 +008400020001028d02000200010002000100020002008100028102018701020001020001 +008200010285020102000102840201020002030281000203028100020302810002050281 +010203028201020102012202810102820201028202010218028101020402810102040281 +010282020102010281010201028101028102018101028202010207020201040281010201 +020101020284010201020181010201020101020201010902830102000203028100028202 +000204028100020d02010002028100028a02000200020002000201028e02000200020002 +010201020102000281020186010201000100020102870100010200010200 +82000100810001820100017f01090181000102018a000100010001000100010082000102 +03028200010084000100010081000203028100028202000203020100820200022e028101 +020702810102180281010220028100020302810002030201000302810002040283000200 +0203028100020a0281010207028100020802810002820200020302810002040281000204 +0281000203028100020b0281000202028401000200020102810002010281000282020102 +810200810002010282000200810002860201020002000202028300020002010285010200 +02000201028201020001000202820001008100028202010281020002000d028100020802 +01018202010204028101020602820001020f028101020202810102020281010208028101 +028202010283020102018101020102 +010101008101008300010001820100018101008100010301810001010183000100018201 +000101018100018201000182010001820100018201000182010001820100018401000100 +010101810001840100010001820100018201000184010001000182010001830100010083 +000100018301000100830001000183010001008300010001840100010001850100010001 +0083000100018101000100820100018101000100820100018101000100820100010d0183 +020102010301820201020302010101028101021202810102170283000200028102008300 +020002830200020085000102000200820002008100029802000100020002000200020002 +000200020002000200020002820200020102830002000203028100020302810002820200 +028202000202028100028202000282020002030281000203028100020302810002030281 +000202028100020902810002030284010002010203028100020102810002090281000203 +02810002040281000203028100020a02810002040281000204028100020f028101021002 +810102010283010200018101028202010283020001020102010101020101010201010202 +810102070281010208028101020402810002030201010502810102090281010206028600 +020001020002010283000200029c02000200020100010201020002000200010200020002 +01020100020102 +85000100010001820102017f010901810001840100010001830100010201028400010201 +020302810002840200010002030201008402000200020302820100028102008100022602 +81010205028101027f023a02810102820201028202010206028101028302010002110281 +0102820200028302000102830201000284020001000205028101020d0281010203028101 +020702010101028101028202010282020102060281000181010205028301020102040281 +0102020201010102830102010202028801020102010201020186010201020102010001 +820200018701000201000102008300010201010184000100020104018200020082000201 +020185020100010001020182000100810001030182000100810001030183000100010301 +820001008100010201820001008100010201820001008100010201820001008100010201 +020003018200010081000102010200030182000100810001010101008301000201830100 +010081000106018202010282020102810201010101028101028102010201820201020102 +810102840201020102050281010207028101021d02810002020281000207028101020602 +8100027f024c028101021e02810002200202010402830102010206020101050287000200 +020002010202028100020302960102010200020002010001000102000102010200020002 +8302000201 +020082010001020181020101010102040102028201020182010201820102010201010204 +0181020147018100010401830201020102018100010a0181000101018102018e01020100 +010001020100020001000183010001000100840201000200860002010201000282020102 +810200830002010281020083000201028202000203028100020202820100020202810002 +030281000203028200010201028100020302810002840201020002030281000202028100 +020302810002020281000202028100020302810002840201020002020281000203028100 +020202810002020281000203028100020202810002020281000203028100020202810002 +030281000202028100020302810002020281000204028100020202810002020281000203 +028100020302810002030281000202028100020302810002030281000204028100020302 +810002030281000204028100020302810002040281000204028100020402810002040281 +000204028100020402810002020281010284020002000201028100022502030182000201 +810102080283010201020502810002830201000206028100018101028702000201000200 +028e0200010001000102000102010200020002 +020002010102850100020102010201010281000185010201020102820200018101028102 +010201810002810201870102010201000201020181020182010001830102010283020100 +018201020102018100010501810001050181000104018100010401810001050181000103 +010302850102010200010401810201040181000106010102010181000103018100018201 +02010801810201820102018401020102018101020302810102210281010209028101024f +028100020e02810002030281000202028100020302810002030281000203020100020281 +000203028100020302810002030281000203028100020302810002040281000203028100 +020402810002030281000204028100020302810002040281000204028100020402810002 +05028100020402810002040281000205028100028402000200021f028501000100010282 +020102010281000204028301020102020282010201010101028101020702810102010281 +0102010281000202020101020284000201020188010201020001020102 +0100820100010101820200018501000200020101018100028402000200018a0102000102 +000100010201870100020002000102010285000100020001850102000201008a00020102 +0100010001000101019000010002000102010001000100020100018b0100020002010001 +00010001820100018b010001000201000100010002920200020001020002000100020002 +000201000281020081000195010001000100010200010002000200010001000200028102 +0083000100018101008d0001000102010002010002010002870200010200010200830002 +000281020083000200028102008300020002830200010082000200830002000282020002 +850200010200028202000283020002008500010200020084000200020081000283020002 +00840002000200810002830200020086000200020002008a000200020002000200020086 +000200020002008100028102008600020002000200810002810200010001020100820200 +028102000100020201000202030081020002000202010003020100020201000302810002 +030201000202010003028100020202010003020100030201000302810002020202000202 +020002028300020002010283000200020202020002028300020002010281000282020002 +010283000200020102810002820200020102810002820200020102810002820200020202 +820002008100020102820002008100020102810002020281000206028100020702810002 +0b0282010201010183000200020302810102820200018201020103018302010201020181 +000183010002008100018301020001010187020102010200020182010001040181000184 +0100010201010181000183010201028102010001 +8300020001820102018d0102010002010201020102010002010204018600020102010201 +850102010001028102018101028202000281020181010202028400010201028902010200 +010201020102840200020102010283010200020102810102830201000282020102010281 +000181010201028401020002018101020102810002040283000102018101028202000204 +028100020302830002010202028100020302820001020102830102000203028100020202 +8300010201840102000102010284010002010283020100020a0281010212028100020302 +810002020281000203028100020202810002020281000203028300020102820200020202 +810002020281000202028100020302810002020281000202028100020202810002020281 +000203028100020202810002020281000202028100027f022b0281000201028101020602 +01010d028200020101018200010203020101810201100101020801010281010282020102 +8102018201020101018102011101 +8a0200010200010200010002020288010002000200010201860100020001000202028100 +01810100830002010298020001000200010201020002000100020102000100010002018f +010002000200020102000100020001028602000200010002010201008202000201028900 +020002000201000200810002870201000200010002830200020081000201028200020086 +000201020002008200010281020001000202010082020002830200010081000283020002 +008100028102008300020002810200830002000283020002008100028102008600020002 +000200810002810200830002000281020083000200028102000100010282000200810002 +810200830002000281020083000200028102000100010201008502000200020083000201 +000100010201008502000200020084000200020081000281020001000102020001020100 +850200020002008400020002008100028102000100010202000102010083020002008600 +020002000200810002810200010001020100830200020083000200028102000100010201 +008502000200020081000281020001000102010082020002810200010001020100820200 +028102008600020002000200810002810200830002000281020098000200020002000200 +020002000200020002000200020002008100028602000200020002810200830002000286 +020002000200028102008300020002860200020002000286020002000200028302000200 +810002010285000200020002860200020002000284020002000282020002840200020002 +0b0285000100020002030282000102820200020502850102010001008300020102810201 +8101028202010283020102018e0102010001000100010201000100010301810201840100 +01020182010001830102000182010002820200018201000101018a000100020102010200 +0201 +860100020102000183010201028202010282020001030101028301000102010287010201 +020002010201028101028702000102010201020102810002010201010102830001020101 +010102820002018101028402010200028f02010201020100010201020102000102020284 +010200010281020183010200020202850102000201020202830002010283020100020402 +810002020282010002820201020102810002030281000203028100020302810002020281 +000201028301020002030281000284020102000203020100020281000202028100020202 +810002030281000202028100020202810002020281000202028100020202810002020281 +000202028100020202810002020281000202028100020102810002020281000202028100 +020202810002010281000202028100020202810002020281000202028100020102810002 +020281000202028100020202810002020281000202028100020202810002020281000202 +028100020202810002020281000202028100020202810002020281000203028100020202 +810002020281000203028100020202810002030281000282020002820200020302810002 +020281000203028100020302810002030201000402810002040281000204028100020302 +810002040281000205020100040281000205028100020402810002050281000205020100 +820201028202000103018200020182010201010182020001050181000101018100010201 +810001070181000102018100010201810002810201840100010201820100018401020001 +0201020000 +830201000182010002010281000202028201000282020102040284000102000203028200 +020182010002020289000201000102010200020602810002820200020202830002010201 +028301020002030283010200020202840102000102010283010200020502810002860200 +020102000282020002830201000202028101020202810002010281000203028100020302 +820100028602000201000102840201020002040283010200028202000209028100020b02 +810102820200021a028100020c0281000204028100020202810002020281000203028100 +02320281000202028100026b028100022c02810002050281000282020002010281000206 +028100020102810002820200028202000202028100020302830102000201028400020102 +010101810001060181000105010100010181000104018100010501830201000105010102 +810002010281010202028101020002 +010084020102000281020101018500020100010281020183010001028802000201020102 +0002820200028402010200018c0102000201020100020102000281020182010002820200 +020202840002010002020281000282020001840102010002860200010201000282020002 +020281000282020002010285000201000102820200028302000102820200028302000102 +850200020001028202000282020002010283000200020102830002000283020102008100 +018101028102008100020202010003020100030201000202010002028300010002010201 +000202830002000284020002000201020100030201000202010002020100030281000202 +028100028402010200020202810002020281000202028100020202810002010201000202 +010002020100020201000202810002010201000202010002020100020201000202010001 +028300020002840200020002840200020002840200020002840200020002840200020002 +840200020002840200020002840200020002840200020002840200020002820200028402 +000200028402000200028202000282020002840200020002840200020002010283000200 +028402000200020102830002000201028300020002010283000200020102830002000201 +028300020002010201000302830002000202020100030283000200020202830002000202 +020100040283000200020402810002040281000205028100020502810002050281000282 +020102020281000208028100020202810102010281000106018100010601810001070181 +00010201030282000102060281000204028101020002 +010001028700010201000100018301020001830100020081000284020100010281020082 +000201840100020100010001018100020102020081020184010002010082000102860200 +020002000201028100028102008400010200028c02000200020102000200010002860200 +020001000282020002810200840002010002810200810002820200028102008100020102 +820002008500020001020001008402010002008100028302000200010083020002000100 +830200020001008302000200010083020002000100830200020001008302000200840002 +000200010083020002008400020002000100810200020083020002008400020002008400 +020002000100810200020081020002008102000200810200020081020002008102000200 +810200020081020002008102000300810200020081020004008102000300810200030081 +020003008102000300810200030081020003008102000300810200020081020003008102 +000200810200020081020002008102000200810200020081010002008102000200810100 +010081010002008301000100840001000100020081010001008302000200840001000100 +010083010002008400020002000100830200020001008302000200010083020002000100 +830200020001008302000200010083020002000100820200028102000100830200020001 +000102820002000100820200028102008100028202000281020001000102820002000100 +010281000284020002000283020002008300020002010283000200020102810002810200 +010001028100028102000100030281000201028300020002820200020102010085020002 +010001810100830001000182010001810100830001000182010001010102008102018201 +0002010283000200020202830002010081000201028100020202 +8100012c0181020108018102010601010202018302010201010181020181010201020401 +010282010201010105020101030281010203020101810201810102810201010182020102 +04028101020702810102010281010206028101027f023b025d0162028101020202820102 +01010183020102018101028402010201022802 +010005018200010081000104018200010081000104010200050102000501020004010200 +040182000100810001030101000501010004010200030102000301020003018300010001 +020102000301020002018200010081000101018300010001010183000100010101840001 +000201830100010081000183010002008100028302000200830002000282020002830200 +020081000284020002000283020002008300020002820200028402000200028302000200 +840001000200020082020100010001020200010202000102020001020200010202000102 +020001020200010202000102020001020200010202008102008400020002000100010202 +008102000200810200020081020004008102000200810200030083020002008400020002 +008400020002000200810200020081010002008101000200810100020081010002008101 +000200810100010081010002008301000100810001810100020081010002008701000100 +010001008300010001810100840001000100010083010001008100018301000100830001 +000181010083000100018101008300010001810100810001830100010081000282020002 +810200810002830200020001008302000200010001028200020001000102840002000200 +860002000200020081000281020082000200810002850200020002008100028102008100 +020102810002810200810002820200020102010001020100020201000102830102000201 +028100028402000200028402000200028502000200020081000201028300020002820200 +020202010002028100020302010084020002000202020100820201008100020202 +010181000101018100010301810001010181000103018100010101810001020181000101 +018100010301830001000103018100018201000102018100018201000106018100010401 +810001050181000104018100010501810001040181000104018100010401810001030181 +00010401810001030181000103018100010401810001020181000103018100012f018102 +010201810201050181020181010264027a0166028101020a028101021b02 +810001030183000100010501830001000104018300010001040183000100010401830001 +000104018300010001030183000100010101810001860100010001000184010001000186 +010001000100010101820001008100010101850001000100018601000100010001860100 +010001000186010001000100018101008300010001860100010001000181010083000100 +018101008300010001810100830001000181010083000100018201000182010001840100 +010001810100830001000184010001000181010083000100018401000100018401000100 +018201000184010001000184010001000183010001008400010001008400010001008400 +010001008400010001000200830100010084000100010002008101000200810100030081 +020082000100020081020082000100840002000200820001008200020003008302000100 +030081020004008102000400810200040081020002008102000100820201000100010102 +008101000200810100010001010200010102000101020001010200020101000201010002 +010100020101000301810001020101000301810001020181000103018100010201010003 +010100030101000301010003010100030101000301020003010100030202000302020003 +020200030283000200020202820002008100020202820002008100020202030003028200 +020081000203020300030283000200028102008100028102008300020002820200028102 +008300020002820200028802000200020002000202020100840200020002010282000200 +810002820200020202850002000200020002 +060102000601020005010200050102000501020005010100050102000401020004010100 +040102000301020004010100040101000401010003010200030102000201020002018300 +010001010183000100010101020002010200010182000100810001830100010081000181 +010001000101820001008400010001008300010001810100840001000100840001000100 +010001010200010102000101020001010200820201000100820201008100018201020081 +000101010100010102008202010001000101010082020100010001010200820102000100 +810100010001010200810100020081020001008102000200830100020005008102000100 +830200020082000200840002000200010083020001008200010084000100010084000100 +010001008301000100840001000100840001000100820001008600010001000100860001 +00010001008400010001008400010001008600010001000100880001000100010001008a +00010001000100010001008a000100010001000100010081000183010001008100018301 +000100810001830100010081000183010001008100018201000181010081000183010001 +008100018201000181010081000182010002810200810002820200028102008100028202 +000281020081000282020002810200810002010281000281020081000282020002010201 +000102810002010201000102810002010201000202810002010201000202810002010201 +000102810002020281000202028100020202810002010281000202020100020281000202 +0281000202028100020202830002000283020100020102 +7f017f0127018100010a0181000101018100010101820200010101860001020102000101 +018100010201810001020181000101018100010201810001010181000102018100010201 +810001020181000102018100010201810001020181000102018100010201810001020181 +000102018100010301810001020181000103018100010301810001020181000103018100 +010301810001030181000103018100010401810001040181000103018100010401810002 +810201010184020002010281020183010200010101810201830100010201028401020100 +0202028101028f0200010201020102010200020102010201028100020202810102010282 +000102830201020101018100010601830001020102018602010201000201810102870201 +020102000201810102840201020102820200020002 +820100010201010002018100010201810001020181000101010100030181000101018100 +010201810001010181000102018100018101008100010101810001010181000101018100 +010101810001010181000101018100010101810001820100010101810001810100810001 +820100018101008100018201000181010081000101018200010081000182010001820100 +010101820001008100018201000182010001820100018201000182010001820100018201 +000182010001830100010081000183010001008100018401000100018301000100810001 +830100010084000100010084000100010081000184010001000184010001000181010001 +008301000100840001000100840001000100840001000100840001000100820001000300 +810100840001000100820001000300810100820001000300810100020081010001008101 +000500810100070081010006008101000700810100060081010006008101000300810100 +820001000300810100020081010082000100030081010084000100010084000100010084 +000100010082000100020081010002008301000100820001000200830100010084000100 +010084000100010081000183010001008400010001008100018301000100830001000181 +010083000100018201000182010001820100018301000100810001820100018201000101 +018300010001010182000100810001840100010200810002820200028102008d00010200 +020100020102000201008200020183010002008300020102840200020002810201840100 +010200840001020002840201000102830201000181010081000102018100018201000103 +018100018201000102018100010101810001030181000181010081000102018100010101 +0100040181000101018100010301810001010101000101 +040102000101810001020102008201000103010100820100010301020082010001020102 +008201000102018200010081000102010300040102000301010082010001020102000301 +010082010001010182000100810001010101008201000186010001000100018101000200 +010185000100010001810100020083010001000100830100010001008301000100010083 +010001000200010182000100820001000100850100010001008100018101008100010101 +020001010200010102000101020001010200020101000101020001010200010102008101 +000200810100010001010200810100030081010006008101000100010101000101020001 +010200810100010001010200810100010001010200810100010081010005008301000100 +010081010084000100010001008301000100820001000100010102008301000100820001 +000100010102008301000100840001000100820001008400010001008400010001008400 +0100010084000100010084000100010086000100010001008400010001008a0001000100 +0100010001008a0001000100010001000100830001000181010093000100010001000100 +0100010001000100010001010183000100014c0181020102018302010201010181020184 +010201020102018302010201820102010301830201020101018102010201810201010181 +02018201020104018102010d01 +820100018401000100010101810001020102000201810001830100010081000101018100 +018101008100010201810001810100010002018200010083000100010101820001000100 +01018100010101010002018100018101008100017f016001810001020181000101018100 +010101810001010181000102018100010101810001010181000101018100010201810001 +010181000102018100010101810001020181000101018100010201810001020181000101 +018100010201810001020181000102018100010201810001020181000102018100010201 +810001030181000102018100010301810001030181000102010100030101000101020085 +010001000100010083010001008600010001000100010001018300010001860100010001 +000185010001000100830001000186010001000100010101850001000100010101830001 +000182010001840100010001820100018301000100830001000101018200010083000100 +010101820001008100018201000101018300010001820100010101810001820100010101 +8100010101830001000101018100010101810001820100010101810001 +4b0181000101018100018101000100010181000181010081000182010001810100810001 +830100010001000101820001008100010101820001000100830100010081000182010001 +810100810001810100020083010001000100830100010081000183010001008400010001 +000100830100010081000181010002008301000100820001008600010001000100840001 +000100840001000100820001000200810100020081010003008101008200010003008101 +008200010003008101000200810100820001000100810100060081010001008101000700 +810100820001000f0081010010008101000e008101000a00810100060081010082000100 +060081010003008101008200010003008101000200810100820001000200830100010082 +000100030081010001008301000100820001000200830100010084000100010001008101 +000200830100010001008301000100010083010001008100018301000100010089010001 +000100010001000100820100018101008100018301000100010082010001810100810001 +820100018101008100018201000181010001000101810001810100810001820100018101 +000100010181000181010001000101810001840100010001820100018101000100020181 +000181010083000100018201000181010001000201810001830100010081000182010001 +010101008201000182010001010101008201000101018100010101010082010001010181 +0001 +820100010101870001000100010001020101008401000100010201020082010001030101 +000101810001010101008401000100010101020082010001020101008201000102018200 +010081000101010200820100010101010082010001010101008201000101010200820100 +018101000100030101008201000181010002000101030001010200830100010002000101 +030001010100870100010001000100820001000100810100020083010001000200810100 +020081010002008101008400010001000200010102008101000100010102000101020081 +010001000101020081010001000101020081010001000101020081010001008101000b00 +810100010081010001008101000100010102008101000100810100010081010001008101 +000f00810100010081010001008101000100810100020081010001008101000100810100 +020081010001008101000100830100010004008101000700810100030081010084000100 +010082000100010001010200830100010082000100020081010002008101000200810100 +010085010001000100840001000100820001000100870100010001000100010083010001 +000100810100010083010001008200010085000100010001030181000104018100010301 +8100017801 +820100018101008100010101810001860100010001000182010001830100010081000101 +01870001000100010001820100018301000100810001880100010001000100018d010001 +00010001000100010001008100018301000100850001000100018101008a000100010001 +000100010084000100010084000100010086000100010001008400010001000100850100 +010001000100830100010001008301000100010087010001000100010001008101008200 +010001008101008600010001000100010081010002008101000200810100020081010002 +008101000300810100020083010001000400830100010004008101008200010082000100 +040081010001008101008200010082000100010081010029008101002500810100810001 +010181000101018100017701870001000100010001830100010081000186010001000100 +018601000100010001820100018101008100018201000181010081000182010001840100 +010001820100018101000100010181000181010001000101810001810100010002018500 +010001000101018100018101000100020181000183010001008100018201000181010083 +000100010101810001010183000100010101810001010101008201000101018100010101 +82000100810001 +830001000102018100018401000100010201810001820100018201000101018100018401 +000100010101810001840100010001010181000182010001820100018301000100830001 +000185010001000100810001820100018101008100018201000181010086000100010001 +000100010181000181010001000101820001008100018501000100010084000100010001 +008301000100010001018200010081000183010001008400010001000100830100010001 +008501000100010082000100010081010002008301000100810001810100010087010001 +000100010001008501000100010003008101008200010082000100820001008200010003 +008101000100810100820001000100840100010001020181000101018100010101810001 +010181000101018100010101810001480181000181010001008101000100810100060081 +010001008101000100810100010081010001008101000200810100010081010001000101 +020081010001000101020081010001000101830001000181010001008101000200810100 +020081010001000101020002018300010001810100010001010300010102000201020001 +018200010081000101010200020183000100010101020003018300010001010102000301 +010082010001010101008201000102010300030102000301010082010001020101008201 +000102018200010001000401030004010200040101000101810001030101008201000105 +0182000100010006010100810100 +810001030181000181010001000301810001810100010003018100018101008300010001 +820100018101008300010001010181000181010081000102018200010001000201820001 +008300010001830100010001000201010081010081000182010001810100810001010182 +000100810001010185000100010001830100010081000101010200010182000100810001 +830100010001008301000100010001010200010182000100810001810100010002010200 +840100010001030181000134018100010101020081010001008101008200010082000100 +010081010082000100020081010084000100010082000100030081010001008101000100 +810100010081010028008101000100810100010081010001008101000100810100010081 +010001008101000100810100010081010001008101000100810100010001010100010102 +008101000100010102008101000100010102008101000100010102000101020001010200 +010102008401000100018301000100810001810100010001010100820100018101000100 +010103000101020002010200020103000101030001010300020103000201010082010001 +010103000301020003010300020182000100810001030103000301010082010001030101 +008201000103010300020181000184010001000104018200010081000103010200820100 +0105010200820100010201 +830001000182010001010187000100010001000102010100840100010001020102000101 +810001010101008401000100010101020005010100050101005401810001020181000102 +010100830100010082000100020083010001008200010002008101000100010102008101 +000300810100840001000100010081010082000100010081010006008101000100810100 +0100810100090081010001008101000100810100010081010002008101000f0081010021 +008101003200810100820001000100810100030081010082000100030081010082000100 +020081010001008301000100840001000100840001000100840001000100840001000100 +8a0001000100010001000100840001000100810001830100010084000100010001008301 +000100010001010300830100010001000101820001008100018301000100010001018100 +018101008100010101020082010001860100010001000182010001840100010001820100 +018401000100018201000181010081000102018500010001000101018100018401000100 +010401010006018100012101 +010003018100010201810001030181000101010100020101000201810001020181000101 +010100030181000101018400010001008100018101008200010001000201860001000100 +010001008501000100010002008301000100010081010082000100010083010001000500 +810100020001010200830100010001008201000181010083000100018101008400010001 +000100830100010001008301000100020001010200810100820001008200010084000100 +010084000100010002008101000100810100020081010002008101008200010003008301 +0001000400810100010081010001008101000a0081010001008101000100810100010081 +010001008101001600830100010026008101002500810100820001008200010008008101 +008200010082000100030081010082000100030081010002008101008200010084000100 +010002008101000200810100860001000100010088000100010001000100890001000100 +010001000102018100015e01810001030183000100010301810001010183000100010201 +81000181010001000201810001840100010001030181000103010100 +020183000100010101010002010100030181000102010100010101000201830001000182 +010001020101000101010002018100010101810001010101000101810001010185000100 +010001010183000100018201000181010081000181010081000182010001810100810001 +820100018101008100018201000182010001010182000100810001830100010081000182 +010001820100018101008200010084000100010081000181010002008301000100810001 +810100010001018200010084000100010084000100010082000100020081010002008401 +0001000185010001000100010083010001008a0001000100010001000100020081010001 +008101000100810100050081010001008101000100810100080081010001008101000200 +810100020081010003008101000800810100260081010004008101000100810100010081 +010001008101000100810100810001810100820001000100010101000101010001010100 +010101000101010001010200810100010001010100010101000201010001010100020101 +000201010002010100010101000201020002018100010201010002010100010182000100 +820001008200010001008401000100018101000300810100030083010001008200010082 +000100020083010001008300010001810100010082010001810100010001018500010001 +000182010001840100010001820100018401000100018201000183010001008100018201 +000183010001008100018201000183010001008500010001000181010081000102018100 +018601000100010001840100010001810100810001820100018201000101010100030181 +0001 +810001820100010201010001018300010001010101000101810001820100018601000100 +010001820100010101810001840100010001810100830001000182010001810100010082 +010001020101008101000100810100830001000182010001810100010081010082000100 +010081010082000100010081010082000100820001000100820100018101008100018301 +000100010083010001008100018201000181010082000100830001000182010001810100 +020081010083000100018401000100018201000181010001000101820001008700010001 +000100018101000100810100840001000100010081010002008101000600810100010081 +010086000100010001000100810100010085010001000100010081010001008101000100 +810100020083010001000100810100010081010004008101000100810100010081010082 +000100010081010004008101000400810100170081010004008101000100810100820001 +000100810100010081010001008101000100850100010001008200010001008101000100 +810100010081010001008101000100810100820001000100810100030081010001008101 +008200010084000100010004008301000100010001018300010001840100010001840100 +010001820100010201010002018300010001010101000201830001000101018300010001 +010183000100010101830001000101018300010001010182000100810001010182000100 +810001010181000181010081000101018200010081000101018100018201000104010200 +040101000601010006010100060101000501030005010100080101000201810001030101 +0002010000 +010181000182010001820100010101010082010001010181000101010100820100010101 +810001010183000100018201000101018300010001820100010101810001840100010001 +010185000100010001810100850001000100010101830001000188010001000100010001 +820100018101008100010101850001000100018301000100810001820100018201000101 +018100018201000182010001820100018101008400010001000100810100860001000100 +010088000100010001000100860001000100010082000100020083010001008200010084 +000100010001008101008400010001000100810100840001000100010081010082000100 +010081010082000100020081010001008101000100810100820001000300810100010081 +0100030081010002008101005600810100080081010001008101000c0081010001008101 +000100010101000101020081010001008101000100810100010081010084000100010001 +008101000200810100010081010002008101000200810100020081010002008301000100 +810001810100020001018200010082000100830001000183010001008100018101008300 +010001820100018201000181010083000100010101810001820100010101010082010001 +020181000182010001010181000182010001020181000182010001020181000182010001 +020181000181010081000101010100010181000102018100010101010003018100010101 +810001020181000101010100010101000201810001820100010101830001000181010001 +0003010100 +010002018100018201000181010081000182010001010185000100010001820100018401 +000100018601000100010001810100810001820100018801000100010001000182010001 +810100010001018100018201000182010001810100820001008100018301000100830001 +000186010001000100018301000100860001000100010083000100010101810001010186 +000100010001008400010001008100018101008100018301000100860001000100010081 +000183010001008400010001008200010001008301000100840001000100010081010002 +008101008400010001000100810100820001000300830100010004008101000100810100 +010081010001008101000100810100050081010007008101000800810100530081010008 +008101000800810100010081010001008101000100850100010001000100810100010081 +010001008101000100810100020081010001008101000100810100010001010200010102 +008101000100030181000102018100018201000184010001000102018100018201000181 +010001000201020002010200010182000100810001010102000201030002010300020103 +000101850001000100010101820001008100010201010082010001020101008201000102 +010100810100810001010181000181010081000103010100010181000102018500010001 +000103018500010001000103018100018401000100010201830001000101018100010101 +82000100 +810001840100010001010101000301010002010100020102000101010002010100020101 +000201810001010181000102018100010101810001010101000101010002018100010101 +810001010181000181010081000181010081000181010081000182010001010187000100 +010001000101010400810100840001000100010001010100830100010009008101008200 +010002008101000a00810100820001000100810100090081010002008101000b00810100 +040081010014008101007f001d0081010082000100010001018200010082000100810001 +840100010001010181000106010200010102000101010083010001000200010102000101 +820001008100018101000100020102000201030001010100820100018101000100820100 +018101008300010001010101008201000101010100820100010101820001000100020101 +008101008100010101820001000100020185000100010001020101008101008100010201 +850001000100010201840001000100810001020184000100010081000103018400010001 +0081000103018400010001008100010101810001 +810001010182000100820001008300010001820100018201000182010001840100010001 +840100010001830100010085000100010001020101000101810001010182000100830001 +000102018200010081000101018200010001000201020082010001020101008201000101 +01030002010100820100018c010001000100010001000100018101000200010103000201 +020001010300810100020001018200010082000100010001010100830100010001008101 +000200010184000100010001008101008400010001000100810100020083010001000300 +810100010081010001008101000100810100010081010023008101004200810100820001 +000100810100820001000100810100820001000100810100810001810100820001008100 +018101008100018101008200010081000101018100010101810001810100810001810100 +810001010181000101018100010101010081010002000101020081010002008101000900 +810100030081010082000100020083010001000100810100020081010082000100820001 +000300810100010083010001008200010082000100820001000100810100030085010001 +000100820001008100018101008600010001000100810001830100010083000100018101 +00850001000100018301000100810001820100018e010001000100010001000100010001 +820100018301000100810001820100018601000100010001820100010101830001000184 +01000100018201000186010001000100010201010082010001 +010102000701810001860100010001000102018200010083000100010201030082010001 +850100010001008800010001000100010083000100018101000200820100018101008200 +010001000101820001000200010182000100860001000100010002008301000100010001 +018200010003008101000100010104008101000200810100860001000100010003008101 +000200810100020081010002008301000100820001000200810100020081010001008101 +000200810100030081010082000100820001000200810100090081010001008101000100 +8101000f008101004d008101008200010082000100040081010007008101000400810100 +040081010004008101000200830100010001008101000100810100010081010001008301 +000100820001008200010001008101000100810100030081010082000100010081010002 +008101000100010102008101000200810100020081010002000101030081010002000101 +820001008100018101000200810100030081010082000100810001810100020001010400 +010183000100018301000100020083010001000200820100018101008500010001000181 +010001008201000101010100010181000102010100010181000103018100018201000103 +01010001018100010301010008010100080101000701 +830001000182010001020103008401000100010201010082010001820100010101010081 +010001000301030082010001010103008201000101010300820100010101850001000100 +010101040002018200010001000101820001000100010104000101040081010003000101 +020082010001810100020001010200010182000100810001810100010001010300810100 +020001010200810100010001010200010102008101000200810100010081010001000101 +020081010001008101000100010101000101010081010001008101000100810100810001 +810100820001000100810100810001810100820001008100018101008200010081000181 +010082000100820001008200010081000181010082000100820001008200010007008101 +008200010009008101008200010082000100820001008100018201000182010001810100 +820001003600810100130081010007008101008200010005008101000300810100820001 +00820001000200810100840001000100840001000100010083010001008a000100010001 +000100010001008601000100010001810100020083010001008600010001000100010082 +010001840100010001810100820001008100018301000100850001000100018301000100 +810001850100010001000100830100010002008201000183010001008300010001020183 +000100018201000101018100018201000182010001010181000181010083000100010301 +810001810100830001000102018100010101010082010001 +810001020181000186010001000100010101810001820100010101830001000184010001 +000101018200010001000101810001810100830001000182010001820100018201000101 +010200010181000183010001008300010001820100018101000100010182000100850001 +000100018201000181010081000181010084000100010001008201000181010001008301 +000100010083010001000100010105008101000800810100020081010002008101000700 +810100020081010006008101008200010007008101002a00810100820001000400810100 +07008101008200010010008101002c008101000a00810100040081010082000100010081 +010082000100040081010001008101000100810100820001000100810100010001010100 +010101000101010001010200810100810001810100010081010001000101020081010002 +008101008400010001008400010001000100010102000101820001008400010001008400 +010001000100010103008201000181010081000181010083000100010101010084010001 +000181010081000101010300010182000100010002018500010001000101018300010001 +030183000100010301830001000102018200010002000101810001810100830001000101 +018200010001008201000101018100018601000100010001820100010101850001000100 +01020181000186010001000100010101 +810001020181000184010001000101010400030101000101840001000100810001810100 +820001008200010086000100010001000100850100010001000200810100840001000100 +020001010400810100010001018200010084000100010084000100010003008101000500 +810100820001000200810100020081010003008301000100020001010100830100010081 +000183010001000200810100820001000200850100010001008200010084000100010001 +0083010001000400810100820001000100810100010081010001008101000a0081010007 +008101007f001500810100130081010014008101000e0083010001008100018101008200 +010002008201000181010001000201010082010001810100010001010300020103000101 +820001008100010101030002010300020101008101008100010101020083010001008100 +018901000100010001000100030001018200010002008501000100010002008201000184 +010001000184010001000184010001000182010001820100010301820001008300010001 +030181000181010001000101 +830100010001000101810001030102008201000103010100810100830001000103010200 +010181000185010001000100010003018200010001000301030082010001020182000100 +810001010185000100010001840100010001820100010101810001820100018601000100 +010001830100010081000183010001008100018101000100890100010001000100010003 +008101000300810100010085010001000100820001000100810100820001008200010002 +008101000100810100050081010002000101010081010082000100030081010007008101 +000100810100820001000200810100030081010008008101000d00810100840001000100 +8200010045008101000a0081010011008101000100810100080081010001008101000100 +810100020081010082000100010081010001008101000100810100010001010200830100 +010082000100020081010001000101020081010008008101000400810100030081010003 +008101000100810100040081010082000100020083010001008500010001000181010082 +000100810001810100850001000100018101008200010081000101018200010083000100 +018801000100010001000183010001008100018201000184010001000181010081000101 +018700010001000100010201820001000100010101000101010081010001008401000100 +0184010001000182010001 +010185000100010001010181000101010100830100010002000101010005018400010001 +008400010001008100018301000100020001018200010003000301040001010200810100 +810001010185000100010001830100010002000101010081010081000181010082000100 +010081010001008301000100830001000101018200010082000100830001000181010002 +000101030001010300810100010001010300810100020081010006008101000200810100 +010081010082000100020081010001008101001400810100180081010039008101008200 +010082000100820001008200010082000100820001000300810100810001820100018201 +000182010001820100018201000181010082000100810001820100018101008100018101 +008200010004008101008200010001008101000100810100010081010081000181010082 +000100010081010001000101020001010100010101000101010001010200010101000201 +010001018300010001010101000201020002010100020102000201020002018300010001 +010102000201040001010400010104000101020081010081000181010082000100010002 +010400020102008101008100018301000100010082010001810100810001810100010003 +018100018101008300010001010181000181010083000100010301870001000100010001 +020181000181010083000100010301 +810100820001000200030185000100010001010181000101010400810100020001018100 +018101008300010001020102000101020001018100018101000200010184000100010081 +000183010001000300810100820001000100010101008101000100010182000100010001 +018200010001008101000300010104008101000300810100030081010003008101000200 +8101000d008101000f008101000100810100010081010005008101000100810100010081 +010001008101008200010001008101000100810100820001000400810100820001000d00 +81010009008101000600810100060081010008008101008200010082000100820001003b +008101000900810100040081010001008101008200010001008101000100810100010081 +010001008101000100010101000101010001010200010184000100010082000100030001 +010200010102000101010083010001008300010001810100020001010100820100018101 +008300010001810100010002010300020102000201020082010001010181000182010001 +010181000182010001020182000100810001020102008201000101010200010181000102 +018200010083000100010101840001000100810001030182000100020006010300060185 +0001000100010501810001 +010002018100018101000200020182000100030002018100010101010003010200010103 +000401830001000182010001810100810001820100010101020001010100840100010001 +020182000100810001010181000181010081000183010001000200010105008301000100 +0a008101008200010082000100030081010082000100820001000d008101000500810100 +0300850100010001002f00810100070081010071008101001a0081010001008101000800 +810100010081010001008101000100810100010081010002008101000100810100060081 +010002008101000200810100010001010200840100010001850100010001008100018101 +008400010001000100820100018101000200010103000201820001008100018101000100 +820100018101008200010081000101010300030102008201000101010200820100010201 +010081010081000102010100820100010301040005010100810100810001040104000501 +010084010001000104010100810100 +040001018200010001008101000100810100810001810100010081010081000182010001 +810100810001010104000101810001830100010081000181010083000100018101000100 +010101008101000200810100820001000100810100010083010001008200010001008101 +000200810100030082010001810100030001010500810100020081010003008101000800 +810100030001010300810100820001008200010082000100020081010003008101000b00 +8101000a008101007f003c00810100120081010004008301000100040083010001000200 +810100020083010001000500810100030081010001008301000100010001010400810100 +010088010001000100010001810100010082010001810100010082010001830100010002 +008101000200810100810001810100010001018400010001000100810100810001810100 +020082010001010182000100810001820100010101820001008100018201000182010001 +010101000101810001010185000100010001820100010201810001010181000182010001 +01018100010001 +810001010184000100010082000100020082010001810100830001000101018600010001 +000100810001010183000100018201000104010100870100010001000100810001010181 +000182010001820100018101008200010001008101000600810100820001000100850100 +010001000200830100010084000100010082000100880001000100010001000300830100 +010001008101000100830100010004008101000100810100050081010082000100060081 +010005008501000100010002008101007f003c0081010001008101000e00810100140081 +010001000101840001000100020081010002008101008400010001008300010001810100 +020081010082000100820001000200010104008101000100810100020081010001008101 +000100810100010081010001008301000100020081010082000100020001018200010002 +000101020001010200810100880001000100010001008300010001810100010001010100 +010182000100810001810100010082010001020181000183010001008100018101008100 +010101020082010001010101000101 +810001810100030001018100018101008200010082000100810001850100010001008500 +010001000183010001000100810100850001000100018101008300010001810100030002 +018100010201820001008100018101008100010101820001000100010105000101030081 +010082000100010081010084000100010002008101000400810100020001010400810100 +03008101000200810100820001000e008101000a00810100820001000a00810100010081 +01001c008101007f00260081010033008101000500810100010081010002000101040083 +010001000800830100010002008301000100020081010001008101000100820100018101 +000400850100010001000200810100820001008900010001000100010001860100010001 +000182010001810100810001830100010081000102010100020102000101010001018500 +0100010001010183000100018101008300010001 +850001000100018101000200850100010001008200010081000185010001000100860001 +000100010084000100010085000100010001810100020001018100010301010081010002 +000101810001840100010001810100010081010001000101010081010004008201000181 +010001008101008200010004008101000300010102008101000f0001010c008101007f00 +710081010027008101000600810100060081010082000100020081010001008301000100 +840001000100820001008400010001000100810100880001000100010001008200010001 +008501000100010001008301000100010082010001810100840001000100810001010103 +00810100810001810100820001000200820100018101008300010001820100018101008e +000100010001000100010001000100820001008300010001810100010001010100010181 +00010101 +050001018400010001000400810100040081010081000101018200010001008101000200 +810100010002010100810100020001018300010001820100010101010084010001000101 +010200810100070081010001008101000200820100018101000200810100030081010084 +000100010004008101000e008101000100010103008101000f0081010009008301000100 +06008101000d0081010030008101007f0003008101000400830100010004008101008200 +0100080081010082000100010001010a0083010001000700830100010001008101008200 +010081000181010005008101008200010002008101008400010001000400810100020081 +010001008501000100010082000100020081010082000100010083010001008400010001 +008200010002008101008200010081000185010001000100010082010001830100010003 +008201000182010001830100010002008101008300010001820100018201000101018300 +010001820100010101 +0201820001008300010001010181000101010b0081010003008101000800010101008101 +000500810100070082010001830100010001008101008200010081000183010001008100 +018101008200010003008101000400010104008101000400810100070081010003008101 +00080081010021008101007f0068008101000a0081010003008101000800810100020081 +010001008101000300830100010001008301000100090081010004008101000200830100 +010003008301000100840001000100050081010082000100820001000100830100010002 +008201000182010001830100010081000101018100018401000100018101008100018201 +000101010100810100870001000100010001010181000182010001810100820001008100 +01840100010001820100010101 +820001008200010004008101000100010102000101040083010001000200830100010004 +008501000100010002008301000100820001000300810100010081010005008301000100 +010083010001000200810100820001000100810100020081010006008101001600810100 +0c008101000b00810100010081010002008101000200810100050081010002008101000b +008101000e008101005100810100820001008200010064008101001c008101000a008101 +008200010006008101000600810100820001000800810100010081010001008301000100 +010085010001000100030081010003008101008200010001008101008300010001010101 +008101000200830100010081000182010001840100010001830100010001008401000100 +018201000184010001000101018300010001820100018101008200010081000185010001 +000100 +840001000100820001008100018101000100020182000100010085010001000100020081 +01000400810100820001008200010001008101000a008101000200010101008101000500 +810100030001010700810100010081010001008101000200810100820001000b00810100 +080081010005008101007e00840100010001840100010001810100010082010001040181 +0001140182000100820001003e0083010001000f00830100010007008101003800810100 +100081010003008101000400810100070081010006008101000300810100010002010500 +820100018101000300820100018601000100010001820100010101010001010300860100 +0100010001010102000101820001008300010001 + +% +% Compression made this file 28.14% of the uncompressed size. +% + + +showpage + +% stop using temporary dictionary +end + +% restore original state +origstate restore + +%%Trailer + +cleartomark +countdictstack exch sub { end } repeat +restore grestore +% +% End Imported PIC File: frame3.eps +%%EndDocument +% +% Polyline +60.000 slw +n 2430 7110 m 4230 7110 l 4230 8280 l 2430 8280 l + cp gs col6 s gr +$F2psEnd +rs diff --git a/doc/high_level_doc/lit.bib b/doc/high_level_doc/lit.bib new file mode 100644 index 0000000..a2767a7 --- /dev/null +++ b/doc/high_level_doc/lit.bib @@ -0,0 +1,615 @@ +@Article{Lowe_2004, + author = {D. Lowe}, + title = {Distinctive image features from scale-invariant keypoints}, + journal = {International Journal of Computer Vision}, + year = {2004}, + volume = {2}, + number = {60}, + pages = {91 -- 110}, +} + +@InProceedings{ICAR2005_1, + author = "A. N{\"u}chter and K. Lingemann and J. Hertzberg and H. Surmann", + title = "{A}ccurate {O}bject {L}ocalization in {3D} {L}aser {R}ange {S}cans", + booktitle = "Proceedings of the 12th International Conference on Advanced Robotics (ICAR '05)", + year = "(submitted)", +} + +@InProceedings{IROS2004, + author = "K. Lingemann and H. Surmann and A. N{\"u}chter and J. Hertzberg", + title = "{I}ndoor and {O}utdoor {L}ocalization for {F}ast {M}obile {R}obots", + booktitle = "Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS '04)", + month = "September", + pages = "2185 -- 2190", + year = "2004", + address = "Sendai, Japan", +} + +@article{RAS2005, + author = "K. Lingemann and A. N{\"u}chter and J. Hertzberg and H. Surmann", + title = "High-{S}peed {L}aser {L}ocalization for {M}obile {R}obots", + journal = "Journal Robotics and Autonomous Systems", + volume = "(accepted)", + year = "2005", +} + +@InProceedings{IAS2004, + author = "A. N{\"u}chter and H. Surmann and and J. Hertzberg", + title = "{A}utomatic {C}lassification of {O}bjects in {3D} {L}aser {R}ange {S}cans", + booktitle = "Proceedings of the 8th Conference on Intelligent Autonomous Systems (IAS '04)", + month = "March", + year = "2004", + pages = "963 -- 970", + address = "Amsterdam, The Netherlands" +} + +@InProceedings{SSRR2005, + author = "A. N{\"u}chter and K. Lingemann and J. Hertzberg and H. Surmann and K. Perv{\"o}lz and M. Hennig and K. R. Tiruchinapalli and R. Worst and T. Christaller", + title = "{M}apping of {R}escue {E}nvironments with {Kurt3D}", + booktitle = "Proceedings of the IEEE International Workshop on Rescue Robotics (SSRR '05)", + year = "(submitted)", + address = "Kobe, Japan", + month = "June", +} + +@InProceedings{IAV2004, + author = "H. Surmann and A. N{\"u}chter and K. Lingemann and J. Hertzberg", + title = "{6D SLAM} {A} {P}reliminary {R}eport on {C}losing the {L}oop in {S}ix {D}imensions", + booktitle = "Proceedings of the 5th IFAC Symposium on Intelligent Autonomous Vehicles (IAV '04)", + month = "July", + year = "2004", + address = "Lisabon, Portugal" +} + +@article{RAAS2003, + author = "H. Surmann and A. N{\"u}chter and J. Hertzberg", + title = "{A}n autonomous mobile robot with a {3D} laser range finder for {3D} exploration and digitalization of indoor en +vironments", + journal = "Robotics and Autonomous Systems", + volume = "45", + number = "3 -- 4", + month = "December", + year = "2003", + pages = "181 -- 198", +} + +@InProceedings{KI2003, + author = "A. N{\"u}chter and H. Surmann and K. Lingemann and J. Hertzberg", + title = "Consistent 3D Model Construction with Autonomous Mobile Robots", + booktitle = " KI 2003: Advances in Artificial Intelligence. 26th Annual German Conference on AI, Proceedings Springer LNAI vol. 2821", + month = "September", + year = "2003", + pages = "550 -- 564", + address = "Hamburg, Germany" +} + +@InProceedings{ICRA2004, + author = "A. N{\"u}chter and H. Surmann and K. Lingemann and J. Hertzberg and S. Thrun", + title = "{6D SLAM} with an {A}pplication in Autonomous Mine Mapping", + booktitle = "Proceedings of the IEEE International Conference on Robotics and Automation", + month = "April", + year = "2004", + pages = "1998 -- 2003", + address = "New Orleans, USA" +} + +@Article{Viola_2004, + author = {Paul Viola and Michael J. Jones}, + title = {Robust Real-Time Face Detection}, + journal = {International Journal of Computer Vision}, + year = {2004}, + OPTkey = {}, + volume = {57}, + number = {2}, + pages = {137 -- 154}, + month = {May}, + OPTnote = {}, + OPTannote = {http://www.kluweronline.com/issn/0920-5691; vorher erschienen: siehe Viola_2001} +} + +@inproceedings{Yang_1998, + author = "P. Allen and R. Yang", + title = "Registering, {I}ntegrating, and {B}uilding {CAD} {M}odels from {R}ange {D}ata", + booktitle = "Proceedings of the IEEE International Conference on Robotics and Automation (ICRA '98)", + month = "May", + year = "1998", + address = "Leuven, Belgium", +} + +@Article{Sequeira_1995, + author= "V. Sequeira and J. Goncalves and M. Ribeiro", + title = "{3D} environment modelling using laser range sensing", + year = "1995", + journal = "Robotics and Automation", + pages = "81 -- 91", + volume = "16", + publisher = "Elsevier", +} + +@inproceedings{Simon_1994, + author = "D. Simon and M. Hebert and T. Kanade", + title = "Real--time 3--{D} pose estimation using a high--speed range sensor", + booktitle = "Proceedings of IEEE International Conference on Robotics and Automation (ICRA '94)", + month = "May", + year = "1994", + volume = "3", + pages = "2235 -- 2241", + address = "San Diego, CA, USA" +} + +@InProceedings{Chen_1991, + author = "Y. Chen and G. Medioni", + title = "{O}bject {M}odelling by {R}egistration of {M}ultiple {Range} {I}mages", + booktitle = "Proceedings of the IEEE Conference on Robotics and Automation (ICRA '91)", + month = "April", + year = "1991", + address = "Sacramento, CA, USA", + pages = "2724 -- 2729", +} + +@techreport{Zhang_1992, + author = "Z. Zhang", + title = "Iterative point matching for registration of free--form curves", + number = "RR-1658", + year = "1992", + institution = "INRIA--Sophia Antipolis", + address = "Valbonne Cedex, France", + url = "citeseer.nj.nec.com/zhang92iterative.html" +} + +@Misc{Leutze, + title = {Siemens/{L}eutze {L}aserscanner, \texttt{http://www2.automation.siemens.com/cd/safety/\newline html\_00/produkte/optisch\_laser.htm}}, + year = {2005}, +} + +@Misc{Schmersal, + title = {Schmersal {L}aserscanner, \texttt{http://www.produkte.schmersal.de/585/521/23124/\newline range.html?lang=de}}, + year = {2005}, +} + +@Misc{Sick, + title = {SICK {L}aserscanner, \texttt{http://ecatalog.sick.com/Products/ProductFinder/\newline product.aspx?finder=Produktfinder\&pid=9168\&lang=de}}, + year = {2005}, +} + +@Misc{Cyberware, + title = {Cyberware Body Scanner, \texttt{http://www.cyberware.com/products/wbInfo.html}, + year = {2005}, +} + +@Misc{Cyrax, + title = {Cyrax {L}aserscanner, \texttt{http://hds.leica-geosystems.com/products/products.html}}, + year = {2005}, +} + +@Misc{Riegl, + title = {Riegl {L}aserscanner, \texttt{http://www.riegl.co.at/terrestrial\_scanners/\newline terrestrial\_scanner\_overview\_/terr\_scanner\_menu\_all.htm}}, + year = {2005}, +} + +@Misc{Zoller, + title = {Zoller und {F}r{\"o}hlich {L}aserscanner, \texttt{http://www.zf-laser.com/d\_bildgebende.html}}, + year = {2005}, +} + + + +@InProceedings{Fasano_2003, + author = "A. Fasano and M. Callieri and P. Cignoni and R. Scopigno", + title = "Exploiting Mirrors for Laser Stripe 3D Scanning", + booktitle = "Proceedings of the 4th IEEE International Conference on Recent Advances in 3D Digital Imaging and Modeling (3DIM '03)", + month = "October", + year = "2003", + address = "Banff, Canada", + pages = "243 -- 251", +} + +@InProceedings{Diebel_2004, + author = "J. Diebel and K. Reutersw{\"a}rd and S. Thrun and J. Davis and R. Gupta", + title = "{S}imultaneous {L}ocalization and {M}apping with {A}ctive {S}tereo {V}ision", + booktitle = "Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS '04)", + month = "September", + year = "2004", + pages = "3436 -- 3443", + address = "Sendai, Japan", +} + +@InProceedings{Brenneke_2003, + author = "C. Brenneke and O. Wulf and B. A. Wagner", + title = "{U}sing {3D} {L}aser {R}ange {D}ata for {SLAM} in {O}utdoor {E}nvironments", + booktitle = "Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS '03)", + month = "October", + year = "2003", + address = "Las Vegas, USA", +} + +@INCOLLECTION{ThrunMapping_2002, + AUTHOR = {S. Thrun}, + TITLE = {Robotic Mapping: A Survey}, + BOOKTITLE = {Exploring Artificial Intelligence in the New Millenium}, + PUBLISHER = {Morgan Kaufmann}, + YEAR = {2002}, + EDITOR = {Lakemeyer, G. and Nebel, B.}, +} + +@inproceedings{Michelangelo_2000, + author = "M. Levoy and K. Pulli and B. Curless and S. Rusinkiewicz and D. Koller and L. Pereira and M. Ginzton and S. Anerson and J. Davis and J. Ginsberg and J. Shade and D. Fulk", + title = "{T}he {D}igital {M}ichelangelo {P}roject: {3D} {S}canning of {L}arge {S}tatues", + booktitle = "Proceedings of the ACM SIGGRAPH", + year = "2000", + address = "New Orleans, USA", + month = "July", +} + +@article{Elfes_1989, + author = {A. Elfes}, + title = {Using Occupancy Grids for Mobile Robot Perception and Navigation}, + journal = {Computer}, + volume = {22}, + number = {6}, + year = {1989}, + issn = {0018-9162}, + pages = {46 -- 57}, + publisher = {IEEE Computer Society Press}, + } + +@Article{Elfes_1987, + author = {A. Elfes}, + title = {Sonar-based real-world mapping and navigation}, + journal = {IEEE Journal of Robotics and Automation}, + year = {1987}, + OPTkey = {}, + volume = {3}, + OPTnumber = {}, + pages = {249 -- 265}, + OPTmonth = {}, + OPTnote = {}, + OPTannote = {} +} + +@incollection{Smith_1990, + author = {R. Smith and M. Self and P. Cheeseman}, + title = {Estimating uncertain spatial relationships in robotics}, + booktitle = {Autonomous robot vehicles}, + year = {1990}, + pages = {167 -- 193}, + publisher = {Springer-Verlag New York, Inc.}, + } + + + +@Article{Choset_2001, + author = {H. Choset and K. Nagatani}, + title = {Topological simultaneous localization and mapping ({SLAM}): toward exact localization without explicit localization}, + journal = {IEEE Transactions on Robotics and Automation}, + year = {2001}, + OPTkey = {}, + volume = {17}, + number = {2}, + OPTpages = {}, + OPTmonth = {}, + OPTnote = {}, + OPTannote = {} +} + +@article{Kuipers_1991, + author = {B. Kuipers and Y. T. Byun}, + title = {A robot exploration and mapping strategy based on a semantic hierarchy of spatial representations}, + journal = {Journal of Robotics and Autonomous Systems}, + volume = "8", + year = "1991", +} + +@inproceedings{Pierce_1995, + author = {D. Pierce and B. Kuipers}, + title = {Learning to explore and build maps}, + booktitle = {Proceedings of the twelfth national Conference on Artificial Intelligence (AAAI '94)}, + year = {1994}, + pages = {1264 -- 1271}, + month = {July}, + address = {Seattle, W.A., U.S.A.}, + publisher = {American Association for Artificial Intelligence}, + } + + + +@Article{Zimmer_1996, + author = {U. R. Zimmer}, + title = {Robust World-Modelling and Navigation in a Real World}, + journal = {NeuroComputing}, + year = {1996}, + OPTkey = {}, + volume = {13}, + number = {2 - 4}, + pages = {247 -- 260}, + OPTmonth = {}, + OPTnote = {}, + OPTannote = {} +} + +@InProceedings{Kortenkamp_1994, + author = {D. Kortenkamp and T. Weymouth}, + title = { Topological mapping for mobile robots using a combination of sonar and vision sensing}, + OPTcrossref = {}, + OPTkey = {}, + booktitle = {Proceedings of the twelfth national Conference on Artificial Intelligence (AAAI '94)}, + OPTpages = {}, + year = {1994}, + OPTeditor = {}, + OPTvolume = {}, + OPTnumber = {}, + OPTseries = {}, + OPTaddress = {}, + month = {July}, + OPTorganization = {}, + OPTpublisher = {}, + OPTnote = {}, + OPTannote = {} +} + +@inproceedings{Choset_1996, + author = "H. Choset and J. W. Burdick", + title = "Sensor based motion planning: The hierarchical generalized voronoi graph", + booktitle = "Proceedings of the Workshop on Algorithmic Foundations of Robotics", + address = "Toulouse, France", + year = "1996", +} + + +@InProceedings{Frese_2001, +author = {U. Frese and G. Hirzinger}, + title = "{S}imultaneous {L}ocalization and {M}apping -- {A} {D}iscussion", + booktitle = "Proceedings of the IJCAI Workshop on Reasoning with Uncertainty in Robotics", + month = "August", + year = "2001", + pages = "17 -- 26", + address = "Seattle, USA" +} + +@Article{ThrunLiu_2004, + author = {S. Thrun and Y. Liu and D. Koller and A. Y. Ng and Z. Ghahramani and H. F. Durrant-Whyte}, + title = {Simultaneous {L}ocalization and {M}apping with {S}parse {E}xtended {I}nformation {F}ilters}, + journal = {Machine Learning and Autonomous Robots}, + year = {2004}, + OPTkey = {}, + volume = {23}, + number = {7 -- 8}, + pages = {693 -- 716}, + month = {July/August}, + OPTnote = {}, + OPTannote = {} +} + +@InProceedings{Howard_2004, + author = {A. Howard and D. F. Wolf and G. S. Sukhatme}, + title = {Towards 3D Mapping in Urban Environments}, + OPTcrossref = {}, + OPTkey = {}, + booktitle = {Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS '04)}, + OPTpages = {}, + year = {2004}, + OPTeditor = {}, + OPTvolume = {}, + OPTnumber = {}, + OPTseries = {}, + address = {Sendai, Japan}, + OPTmonth = {}, + OPTorganization = {}, + OPTpublisher = {}, + OPTnote = {}, + OPTannote = {} +} + +@Article{Moravec_1988, + author = {H. P. Moravec}, + title = {Sensor fusion in certainty grids for mobile robots.}, + journal = {AI Magazine}, + year = {1988}, + OPTkey = {}, + volume = {9}, + number = {2}, + pages = {61 -- 74}, + OPTmonth = {}, + OPTnote = {}, + OPTannote = {} +} + +@ARTICLE{Thrun_1998a, + AUTHOR = {S. Thrun}, + YEAR = {1998}, + TITLE = {Learning Metric-Topological Maps for Indoor + Mobile Robot Navigation}, + JOURNAL = {Artificial Intelligence}, + VOLUME = {99}, + NUMBER = {1}, + PAGES = {21--71} +} + + +@InProceedings{Eberst_1996, + author = "C. Eberst; J. Sicheneder", + title = "{G}eneration of {H}ypothetical {L}andmarks {S}upporting {F}ast {O}bject {R}ecognition with {A}utonomous {M}obile {R}obots", + booktitle = "Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS '96)", + month = "November", + year = "1996", + address = "Osaka, Japan", +} + +@Article{Golfarelli_2001, + author = "M. Golfarelli and D. Maio and S. Rizzi", + title = "Correction of dead-reckoning errors in map building for mobile robots", + journal = "IEEE Transaction on Robotics and Automation (TRA)", +year = "2001", + volume = {17}, + number = {1}, + month = {May}, +} +@Article{Thrun_1998, + author = {S. Thrun and W. Burgard and D. Fox}, + title = {A probabilistic approach to concurrent mapping and localization for mobile robots}, + journal = {Machine Learning}, + year = {1998}, + OPTkey = {}, + volume = {31}, + number = {5}, + pages = {29 -- 53}, + OPTmonth = {October}, + OPTnote = {}, + OPTannote = {} +} + +@article{Leonard_1991, + author = {J.J. Leonard and Hugh Durrant-Whyte}, + title = {Localization by tracking geometric beacons}, + journal = {EEE Transactions on Robotics and Automation}, + volume = {7}, + number = {6}, + year = {1991}, + } + +@article{Kweon_1992, + author = {I. S. Kweon and T. Kanade}, + title = {High-Resolution Terrain Map from Multiple Sensor Data}, + journal = {IEEE Trans. Pattern Anal. Mach. Intell.}, + volume = {14}, + number = {2}, + year = {1992}, + issn = {0162-8828}, + pages = {278--292}, + doi = {http://dx.doi.org/10.1109/34.121795}, + publisher = {IEEE Computer Society}, + } + +@inproceedings{Sequeira_1999, + author = "V. Sequeira and K. Ng and E. Wolfart and J. Goncalves and D. Hogg", + title = "{A}utomated {3D} reconstruction of interiors with multiple scan--views", + booktitle = "Proceedings of SPIE, Electronic Imaging '99, The Society for Imaging Science and Technology /SPIE's 11th Annual Symposium", + year = "1999", + address = "San Jose, CA, USA", + month = "January", +} + +@inproceedings{Allen_2001, + author = "P. Allen and I. Stamos and A. Gueorguiev and E. Gold and P. Blaer", + title = "{AVENUE:} {A}utomated {S}ite {M}odelling in {U}rban {E}nvironments", + booktitle = "Proceedings of the Third International Conference on 3D Digital Imaging and Modeling (3DIM '01)", + month = "May", + year = "2001", + address = "Quebec City, Canada", +} + +@Article{Georgiev_2004, + author = {A. Georgiev and P. K. Allen}, + title = "{L}ocalization {M}ethods for a {M}obile {R}obot in {U}rban {E}nvironments", +journal = {IEEE Transaction on Robotics and Automation (TRO)}, + year = {2004}, + OPTkey = {}, + volume = {20}, +number = "5", + pages = {851 -- 864}, + month = {October}, +} + +@inproceedings{Haehnel_2001, + author="D. H{\"a}hnel and W. Burgard and S. Thrun", + title = "Learning {C}ompact 3{D} {M}odels of {I}ndoor and {O}utdoor {E}nvironments with a {M}obile {R}obot", + booktitle = "Proceedings of the fourth European workshop on advanced mobile robots (EUROBOT '01)", + month = "September", + year = "2001", + address = "Lund, Sweden", +} + +@inproceedings{Thrun_2000, + author="S. Thrun and D. Fox and W. Burgard", + title = "A real-time algorithm for mobile robot mapping with application to multi robot and 3{D} mapping", + booktitle = "Proceedings of the IEEE International Conference on Robotics and Automation (ICRA '00)", + month = "April", + year = "2000", + address = "San Francisco, CA, USA", +} + +@inproceedings{Frueh_2001_1, + author = "C. Fr{\"u}h and A. Zakhor", + title = "3{D} {M}odel {G}eneration for {C}ities {U}sing {A}erial {P}hotographs and {G}round {L}evel {L}aser {S}cans", + Booktitle = "Proceedings of the Computer Vision and Pattern Recognition Conference (CVPR '01)", + year = "2001", + month = "December", + address = "Kauai, Hawaii, USA", +} + +@inproceedings{Zhao_2001, + author = "H. Zhao and R. Shibasaki", + title = "{R}econstructing {T}extured {CAD} {M}odel of {U}rban {E}nvironment {U}sing {V}ehicle-{B}orne {L}aser {R}ange {S}canners and {L}ine {C}ameras", + booktitle = "Second International Workshop on Computer Vision System (ICVS '01)", + year = "2001", + address = "Vancouver, Canada", + month = "July", + pages = "284 -- 295", +} + +@inproceedings{Stamos_2000, + author = "I. Stamos and P. Allen", + title = "3-{D} {M}odel {C}onstruction {U}sing {R}ange and {I}mage {D}ata", + booktitle = "Proceedings of the Conference on Computer Vision and Pattern Recognition (CVPR '00)", + month = "June", + year = "2000", + address = "USA" +} + +@InProceedings{Hebert_2001, + author = "M. Hebert and M. Deans and D. Huber and B. Nabbe and N. Vandapel", + title = "Progress in 3--{D} {M}apping and {L}ocalization", + booktitle = "Proceedings of the 9th International Symposium on Intelligent Robotic Systems, (SIRS '01)", + month = "July", + year = "2001", + address = "Toulouse, France" +} + +@InProceedings{Wulf_2004, + author = "O. Wulf and K. O. Arras and H. I. Christensen and B. A. Wagner", + title = "{2D} {M}apping of {C}luttered {I}ndoor {E}nvironments by {M}eans of {3D} {P}erception", + booktitle = "Proceedings of the IEEE International Conference on Robotics and Automation (ICRA '04)", + month = "April", + year = "2004", + pages = "4204 -- 4209", + address = "New Orleans, USA", +} + +@article{Nevado_2004, + author = "M. M. Nevado and J. G. Garcia-Bermejo and E. Z. Casanova", + title = "Obtaining {3D} models of indoor environments with a mobile robot by estimating local surface directions", + journal = "Robotics and Autonomous Systems", + volume = "48", + month = "August", + year = "2004", + pages = "131 -- 143", +} + +@inproceedings{Se_2001, + author = "S. Se and D. Lowe and J. Little", + title = "{L}ocal and {G}lobal {L}ocalization for {M}obile {R}obots using {V}isual {L}andmarks", + booktitle = "Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS '01)", + month = "October", + address = "Hawaii, USA", + year = "2001", +} + +@InProceedings{Biber_2004, + author = "P. Biber and H. Andreasson and T. Duckett and A. Schilling", + title = "{3D} {M}odeling of {I}ndoor {E}nvironments by a {M}obile {R}obot with a {L}aser {S}canner and {P}anoramic {C}amera", + booktitle = "Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS '04)", + month = "September", + year = "2004", + address = "Sendai, Japan", +} + +@article{Besl_1992, + author = "P. Besl and N. McKay", + title = "A method for {R}egistration of 3--{D} {S}hapes", + journal = "IEEE Transactions on Pattern Analysis and Machine Intelligence", + month = "February", + year = "1992", + volume = "14", + number = "2", + pages = "239 -- 256" +} \ No newline at end of file diff --git a/doc/high_level_doc/paper.bib b/doc/high_level_doc/paper.bib new file mode 100644 index 0000000..626dbf5 --- /dev/null +++ b/doc/high_level_doc/paper.bib @@ -0,0 +1,1447 @@ +@Article{Manduchi_2005, + author = {R. Manduchi and A. Castano and A. Talukder and L. Matthies}, + title = {Obstacle Detection and Terrain Classification for Autonomous Off-road Navigation}, + journal = {Autonomous Robot}, + year = {2005}, + volume = {18}, +} + +@InProceedings{Patel_2005, + author = {K. Patel and W. Macklem and S. Thrun and M. Montemerlo}, + title = {Active Sensing for High-Speed Offroad Driving}, + booktitle = {Proceedings of the IEEE International Conference on Robotics and Automation (ICRA '05)}, + year = {2005}, + address = {Barcelona, Spain}, + month = {April}, +} + +@InProceedings{Batavia_2002, + author = {P. H. Batavia and S. Singh}, + title = {Obstacle Detection in Smooth High Curvature Terrain}, + booktitle = {Proceedings of the IEEE International Conference on Robotics and Automation (ICRA '02)}, + pages = {3062 -- 3067}, + year = {2002}, +} + +@InProceedings{Kohlhepp_2003, + author = {P. Kohlhepp and M. Walther and P. Steinhaus}, + title = {{S}chritthaltende {3D-K}artierung und {L}okalisierung f{\"u}r mobile {I}nspektionsroboter}, + booktitle = {Proceedings of the Autonome Mobile Systeme 2003, 18. Fachgespr{\"a}che}, + year = {2003}, + editor = {R. Dillmann and H. W{\"o}rn and T. Gockel}, + month = {December}, +} + +@INCOLLECTION{ThrunMapping_2002, + AUTHOR = {S. Thrun}, + TITLE = {Robotic Mapping: A Survey}, + BOOKTITLE = {Exploring Artificial Intelligence in the New Millenium}, + PUBLISHER = {Morgan Kaufmann}, + YEAR = {2002}, + EDITOR = {Lakemeyer, G. and Nebel, B.}, +} + + +@Article{Jensfelt01, + author = "P. Jensfelt and H. I. Christensen", + title = "Pose {T}racking {U}sing {L}aser {S}canning and {M}inimalistic {E}nvironmental {M}odels", + journal = "Journal of the IEEE Transactions on Robotics and Automation (TRA '01)", + year = "2001", + volume = "17", + number = "2", + pages = "138--147", + month = "April" +} + +@InCollection{Cox_1991, + author = "I. J. Cox", + title = "Blanche: {P}osition {E}stimation for an {A}utonomous {R}obot {V}ehicle", + year = "1991", + booktitle = "Autonomous Mobile Robots: Control, Planning, and Architecture", + volume = "2", + publisher = "IEEE Computer Society Press", + address = "Los Alamitos, CA", + pages = "285--292", +} + +@InProceedings{Borthwick94, + author = "S. Borthwick and H. Durrant-Whyte", + title = "Simultaneous {L}ocalisation and {M}ap {B}uilding for {A}utonomous {G}uided {V}ehicles", + booktitle = "Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS'94)", + booklet = "General I.L.L.", + year = "1994" +} + +@InProceedings{roefer_2001, + author = "T. R{\"o}fer", + title = "Building consistent laser scan maps", + booktitle = "Proceedings of the 4th European Workshop on Advanced Mobile Robots (EUROBOT '01)", + volume = "86", + pages = "83--90", + year = "2001" +} + +@InProceedings{weiss_1994, + author = "G. Wei{\ss} and C. Wetzler and E. von Puttkamer", + title = "Keeping {T}rack of {P}osition and {O}rientation of {M}oving {I}ndoor {S}ystems by {C}orrelation of {R}ange-{F}inder {S}cans", + booktitle = "Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS '94)", + address = "Munich, Germany", + year = "1994", + pages = "595--601" +} + + +@InProceedings{milios_1994, + author = "F. Lu and E. Milios", + title = "Robot {P}ose {E}stimation in {U}nknown {E}nvironments by {M}atching 2{D} {R}ange {S}cans", + booktitle = "IEEE Computer Vision and Pattern Recognition Conference (CVPR '94)", + pages = "935--938", + year = "1994" +} + +@InProceedings{lu97globally, + author = "F. Lu and E. Milios", + title = "Globally {C}onsistent {R}ange {S}can {A}lignment for {E}nvironment {M}apping", + booktitle = "Autonomous Robots", + volume = "4", + pages = "333--349", + year = "1997" +} + +@InProceedings{milios_1995, + author = "E. A. Pra{\ss}ler and E. Milios", + title = "Position {E}stimation {U}sing {E}quidistance {L}ines", + booktitle = "Proceedings of the IEEE International Conference on Robotics and Automation (ICRA '95)", + year = "1995", + address = "Nagoya, Aichi-ken, Japan", + pages = "85--92" +} + +@InProceedings{Anguelov_2002, + author = {D. Anguelov and R. Biswas and D. Koller and B. Limketkai and S. Sanner and S. Thrun}, + title = {Learning hierarchical object maps of non-stationary environments with mobile robots}, + booktitle = {Proceedings of the 18th Conference on Uncertainty in AI (UAI '02)}, + year = {2002}, + address = {Edmonton, Alberta, Canada}, + month = {August}, +} + +@InProceedings{Biswas_2002, + author = {R. Biswas and B. Limketkai and S. Sanner and S. Thrun}, + title = {Towards object mapping in dynamic environments with mobile robots}, + booktitle = {Proceedings of the Conference on Intelligent Robots and Systems (IROS '02)}, + address = {Lausanne, Switzerland}, + month = {September}, +} + +@Article{Kestler_2000, + author = {H. A. Kestler and S. Sablatn{\"o}g and S. Simon and S. Enderle and A. Baune and G. K. Kraetzschmar and F. Schwenker and G. Palm}, + title = {Concurrent Object Identification and Localization for a Mobile Robot}, + journal = {KI -- K{\"u}nstliche Intelligenz}, + pages = "23-29", + year = {2000}, + number = {4}, + month = {April}, +} + +@InProceedings{Solda_2004, + author = "Erik Solda and Rainer Worst and Joachim Hertzberg", + title = "{P}oor {M}an's {G}yro-based {L}ocation.", + booktitle = "Proceedings of the 5th IFAC Symposium on Intelligent Autonomous Vehicles (IAV '04)", + month = "July", + year = "2004", + address = "Lisabon, Portugal" +} + + +@TechReport{TDP2006, + author = {K. Lingemann and A. N{\"u}chter and O. Wulf and H. Surmann and K. Perv{\"o}lz and J. Hertzberg and B. Wagner and T. Christaller}, + title = {RoboCupRescue - Robot League Team, Team Deutschland1}, + institution = {Team Description Paper, Rescue Robot League Competition}, + year = {2006}, + address = {Bremen, Germany}, + month = {June}, +} + +@TechReport{TDP2005, + author = {H. Surmann and K. Lingemann and A. N{\"u}chter and M. Hennig and K. Perv{\"o}lz and O. Wulf and J. Hertzberg and B. Wagner and T. Christaller}, + title = {RoboCupRescue - Robot League Team, Team Deutschland1}, + institution = {Team Description Paper, Rescue Robot League Competition}, + year = {2005}, + address = {Osaka, Japan}, + month = {July}, +} + +@Article{KI2006, + author = {A. N{\"u}chter and K. Lingemann and J. Hertzberg and O. Wulf and B. Wagner and K. Perv{\"o}lz and H. Surmann and T. Christaller}, + title = {The RoboCup Rescue Team Deutschland1}, + journal = {KI -- K{\"u}nstliche Intelligenz}, + year = {2006 (accepted)}, +} + +@InProceedings{Brenneke_2003, + author = "C. Brenneke and O. Wulf and B. A. Wagner", + title = "{U}sing {3D} {L}aser {R}ange {D}ata for {SLAM} in {O}utdoor {E}nvironments", + booktitle = "Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS '03)", + month = "October", + year = "2003", + address = "Las Vegas, USA", +} + +@InProceedings{Howard_2004, + author = {A. Howard and D. F. Wolf and G. S. Sukhatme}, + title = {Towards 3D Mapping in Urban Environments}, + booktitle = {Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS '04)}, + year = {2004}, + address = {Sendai, Japan}, + month = {September}, +} + + +@InProceedings{Diebel_2004, + author = "J. Diebel and K. Reutersw{\"a}rd and S. Thrun and J. Davis and R. Gupta", + title = "{S}imultaneous {L}ocalization and {M}apping with {A}ctive {S}tereo {V}ision", + booktitle = "Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS '04)", + month = "September", + year = "2004", + pages = "3436 -- 3443", + address = "Sendai, Japan", +} + + +@InProceedings{Lowe_1999, + author = {D. G. Lowe}, + title = {Object recognition from local scale-invariant features}, + booktitle = {Proceedings of the International Conference on Computer Vision (ICCV '99)}, + pages = {1150 -- 1157}, + year = {1999}, + address = {Corfu, Greece}, + month = {September}, +} + + +@Article{Trullier_1997, + author = {O. Trullier and J.-A. Meyer}, + title = {Biomimetic Navigation Models and Strategies in Animats}, + journal = {AI Communications}, + year = {1997}, + volume = {10}, + number = {2}, + pages = {79 -- 92}, + month = {July}, +} + +@InProceedings{Dias_2003, + author = {P. Dias and V. Sequeira and F. Vaz and J. G.M. Goncalves}, + title = {{R}egistration and {F}usion of {I}ntensity and {R}ange {D}ata for {3D} {M}odelling of {R}eal {W}orld {S}cenes}, + booktitle = "Proceedings of the 4th IEEE International Conference on Recent Advances in 3D Digital Imaging and Modeling (3DIM '03)", + month = "October", + year = "2003", + address = "Banff, Canada", +} + +@Article{Kirby_1990, + author = {M. Kirby and L. Sirovich}, + title = {Application of the Karhunen-Loeve procedure for the characterisation of human faces}, + journal = {IEEE Transaction on Pattern Analysis and Machine Intelligence (PAMI)}, + year = {1990}, + volume = {12}, + pages = {103 -- 108}, +} + +@book{Waltz_1975, + author = {D. L. Waltz}, + title = {Understanding line drawings of scenes with shadows}, + journal = {Psychology of Computer Vision}, + year = {1975}, + publisher = {McGraw-Hill}, + address = {New York, U.S.A.}, +} + + +@Article{Koch_1985, + author = {C. Koch and S. Ullman}, + title = {Shifts in selective visual attantion: towards the underlaying visual circuitry.}, + journal = {Human Neurobiology}, + year = {1985}, + pages = {219 -227}, +} + +@InProceedings{Lazebnik_2002, + author = {S. Lazebnik and A. Sethi and C. Schmid and D. J. Kriegman and J. Ponce and M. Hebert}, + title = {{O}n {P}encils of {T}angent {P}lanes and the {R}ecognition of {S}mooth {3D} {S}hapes from {S}ilhouettes}, + booktitle = {Proceedings of the 7th European Conference on Computer Vision (ECCV '02)}, + year = {2002}, + Taddress = {Copenhagen, Denmark}, + month = {May}, + pages = {651 -- 665} +} + + +@Article{Chen_1998, + author = {J. L. Chen and G. C. Stockman}, + title = {3D free-form object recognition using indexing by contour features}, + journal = {Journal of Computer Vision and Image Understanding (CVIU)}, + year = {1998}, + Tvolume = {71}, + Tpages = {334 -- 335}, +} + +@InProceedings{Ponce_1989, + author = {J. Ponce and D. J. Kriegmann}, + title = {{O}n recognizing and positioning curved {3D} objects from image contours}, + booktitle = {Proceedings of the IEEE Workshop on Interpretation of 3D Scenes}, + pages = {61 -- 67}, + year = {1989}, + address = {Austin, TX, U.S.A.}, + month = {November}, +} + +@InProceedings{IROS2004, + author = "K. Lingemann and H. Surmann and A. N{\"u}chter and J. Hertzberg", + title = "{I}ndoor and {O}utdoor {L}ocalization for {F}ast {M}obile {R}obots", + booktitle = "Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS '04)", + month = "September", + pages = "2185 -- 2190", + year = "2004", + address = "Sendai, Japan", +} + +@InProceedings{IROS2004_1, + author = "S. Frintrop and A. N{\"u}chter and H. Surmann and J. Hertzberg", + title = "{S}aliency-based {O}bject {R}ecognition in {3D} {D}ata", + booktitle = "Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS '04)", + month = "September", + pages = "2167 -- 2172", + year = "2004", + address = "Sendai, Japan", +} + +@Article{CVUI2005, + author = {S. Frintrop and E. Rome and A. N{\"u}chter and H. Surmann}, + title = {{A} {B}imodal {L}aser-{B}ased {A}ttention {S}ystem}, + journal = {Journal Computer Vision and Image Understanding (CVIU), Special Issue on Attention and Performance in Computer Vision}, + year = {2005}, + volume = {100}, + number = {1-2}, + pages = {124 -- 151}, + month = {October -- November}, +} + +@InProceedings{ICVS2003, + author = "S. Frintrop and E. Rome and A. N{\"u}chter and H. Surmann", + title = "{A}n {A}ttentive, {M}ulti-modal {L}aser {E}ye", + booktitle = "Proceedings of the third International Conference on Computer Vision Systems (ICVS '03)", + month = "April", + pages = "202 -- 211", + year = "2003", + address = "Graz, Austria", +} + +@Article{Dorai_1997, + author = {C. Dorai and A. K. Jain}, + title = {{COSMOS} --- {A} representation scheme for {3D} free form objects}, + journal = {IEEE Transactions on Pattern Analysis and Machine Intelligence}, + year = {1997}, + volume = {19}, + pages = {1115 -- 1130}, +} + +@Article{Chua_1997, + author = {C. S. Chua and R. Jarvis}, + title = {{P}oint signatures: {A} new representation for {3D} object recognition}, + journal = {International Journal Computer Vision}, + year = {1997}, + volume = {25}, + pages = {63 -- 85}, +} + +@InProceedings{Camps_1998, + author = {O. I. Camps and C. Y. Huang and T. Kanungo}, + title = {{H}ierarchical {O}rganization of {A}ppearance-{B}ased {P}arts and {R}elations}, + booktitle = {Proceedings of the IEEE Conference Computer Vision and pattern Recognition}, + pages = {685 -- 691}, + year = {1998}, + address = {Santa Barbara, CA, U.S.A.}, + month = {June}, +} + +@InCollection{Besl_1990, + author = {P. J. Besl}, + editor = {H. Freeman}, + booktitle = {{M}achine {V}ision for {T}hree-{D}imensional {S}cenes}, + title = {The free-form surface matching problem}, + publisher = {Academic Press}, + year = {1990}, + address = {San Diego, CA, U.S.A.}, +} + +@InProceedings{Pipitone_1993, + author = {F. Pipitone and W. Adams}, + title = {Rapid recognition of freeform objects in noisy range images using tripod operators}, + booktitle = {Proceedings of the IEEE International Conference On Computer Vision}, + pages = {715 -- 716}, + year = {1993}, + address = {Berlin, Germany}, + month = {May}, +} + +@Article{Besl_1985, + author = {P. J. Besl and R. C. Jain}, + title = {Three-dimensional object recognition}, + journal = {Computing Surveys}, + year = {1985}, + volume = {17}, + pages = {75 -- 145}, +} + +@Article{Campbell_2001, + author = {R. J. Campbell and P. J. Flynn}, + title = {{A} {S}urvey {O}f {F}ree-{F}orm {O}bject {R}epresentation and {R}ecognition {T}echniques}, + journal = {{C}omputer {V}ision and {I}mage {U}nderstanding {(CVIU)}}, + year = {2001}, + volume = {81}, + Tpages = {166 -- 210}, +} + +@InProceedings{Campbell_1999, + author = {R. J. Campbell and P. J. Flynn}, + title = {Eigenshapes for {3D} {O}bject {R}ecognition in {R}ange {D}ata}, + booktitle = {Proceedings of the IEEE Conference Computer Vision and Pattern Recognition (CVPR '99)}, + year = {1999}, + address = {Fort Collins, CO, U.S.A.}, +} + + +@InProceedings{Andreasson_2005, + author = {H. Andreasson and R. Triebel and W. Burgard}, + title = {{I}mproving {P}lane {E}xtraction from {3D} {D}ata by {F}using {L}aser {D}ata and {V}ision}, + booktitle = {Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS '05)}, + year = {2005}, + month = {August}, +} + + +@InProceedings{RIIA2005, + author = {J. Hertzberg and K. Lingemann and A. N{\"u}chter}, + title = {{USARSIM -- Game-Engines in der Robotik-Lehre}}, + booktitle = {Informatik 2005 -- Informatik LIVE, vol.1 (Beitr{\"a}ge der 35. Jahrestagung der Gesellschaft f{\"u}r Informatik, Bonn)}, + pages = {158 -- 162}, + year = {2005}, + address = {Bonn, Germany}, + month = {September}, +} + +@article{RAS2005, + author = "K. Lingemann and A. N{\"u}chter and J. Hertzberg and H. Surmann", + title = "High-{S}peed {L}aser {L}ocalization for {M}obile {R}obots", + journal = "Journal Robotics and Autonomous Systems", + volume = "(accepted)", + year = "2005", +} + + +@InProceedings{ROBOCUP2005, + author = "A. N{\"u}chter and O. Wulf and K. Lingemann and J. Hertzberg and B. Wagner and and H. Surmann", + title = "{3D} {M}apping with {S}emantic {K}nowledge", + booktitle = "Proceedings of the RoboCup International Symposium", + year = "2005", + address = "Osaka, Japan", + month = "June", +} + + +@InProceedings{SSRR2005, + author = "A. N{\"u}chter and K. Lingemann and J. Hertzberg and H. Surmann and K. Perv{\"o}lz and M. Hennig and K. R. Tiruchinapalli and R. Worst and T. Christaller", + title = "{M}apping of {R}escue {E}nvironments with {Kurt3D}", + booktitle = "Proceedings of the IEEE International Workshop on Rescue Robotics (SSRR '05)", + pages = "158 -- 163", + year = "2005", + address = "Kobe, Japan", + month = "June", +} + +@article{Zhang_2000, + author = "Z. Zhang", + title = "{A} flexible new technique for camera calibration", + journal = "IEEE Transactions on Pattern Analysis and Machine Intelligence", + number = "22", + volume = "11", + pages = "1330 -- 1334", + year = "2000", +} + + +@ARTICLE{Thr98Pro, + AUTHOR = {S. Thrun. and W. Burgard and D. Fox}, + TITLE = {A Probabilistic Approach to Concurrent Mapping and Localization for MobileRobots}, + JOURNAL = {Machine Learning and Autonomous Robots (joint issue)}, + NUMBER = {31/5}, + YEAR = {1998} +} + +@ARTICLE{Thrun_1998a, + AUTHOR = {S. Thrun}, + YEAR = {1998}, + TITLE = {Learning Metric-Topological Maps for Indoor + Mobile Robot Navigation}, + JOURNAL = {Artificial Intelligence}, + VOLUME = {99}, + NUMBER = {1}, + PAGES = {21--71} +} + +@article{Kuipers_1991, + author = {B. Kuipers and Y. T. Byun}, + title = {A robot exploration and mapping strategy based on a semantic hierarchy of spatial representations}, + journal = {Journal of Robotics and Autonomous Systems}, + volume = "8", + year = "1991", +} + +@InProceedings{Eberst_1996, + author = "C. Eberst and J. Sicheneder", + title = "{G}eneration of {H}ypothetical {L}andmarks {S}upporting {F}ast {O}bject {R}ecognition with {A}utonomous {M}obile {R}obots", + booktitle = "Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS '96)", + month = "November", + year = "1996", + address = "Osaka, Japan", +} + +@article{Leonard_1991, + author = {J.J. Leonard and Hugh Durrant-Whyte}, + title = {Localization by tracking geometric beacons}, + journal = {IEEE Transactions on Robotics and Automation}, + volume = {7}, + number = {6}, + year = {1991}, + } + +@article{Kweon_1992, + author = {I. S. Kweon and T. Kanade}, + title = {High-Resolution Terrain Map from Multiple Sensor Data}, + journal = {IEEE Trans. Pattern Anal. Mach. Intell.}, + volume = {14}, + number = {2}, + year = {1992}, + issn = {0162-8828}, + pages = {278--292}, + doi = {http://dx.doi.org/10.1109/34.121795}, + publisher = {IEEE Computer Society}, + } + +@article{Musser_1997, + author = {D. R. Musser}, + title = {Introspective sorting and selection algorithms}, + journal = {Software Practice \& Experience}, + volume = {27}, + number = {8}, + year = {1997}, + pages = {983--993}, + publisher = {John Wiley \& Sons, Inc.}, + } + +@article{Rome_1999, + author = "E. Rome and J. Hertzberg and F. Kirchner and U. Licht and H. Streich and Th. Christaller", + title = "Towards Autonomous Sewer Robots: the MAKRO Project", + journal = "Urban Water", + volume = "1", + pages = {57 -- 70}, + year = 1999, +} + +@article{Nevado_2004, + author = "M. M. Nevado and J. G. Garcia-Bermejo and E. Z. Casanova", + title = "Obtaining {3D} models of indoor environments with a mobile robot by estimating local surface directions", + journal = "Robotics and Autonomous Systems", + volume = "48", + month = "August", + year = "2004", + pages = "131 -- 143", +} + +@Article{Georgiev_2004, + author = {A. Georgiev and P. K. Allen}, + title = "{L}ocalization {M}ethods for a {M}obile {R}obot in {U}rban {E}nvironments", +journal = {IEEE Transaction on Robotics and Automation (TRO)}, + year = {2004}, + OPTkey = {}, + volume = {20}, +number = "5", + pages = {851 -- 864}, + month = {October}, +} + +@Article{Murphy_2004, + author = {R. R. Murphy}, + title = "{A}ctivities of the {R}escue {R}obots at the {W}orld {T}rade {C}enter from 11-21 {S}eptember 2001", +journal = {IEEE Robotics \& Automation Magazine}, + year = {2004}, + OPTkey = {}, + volume = {11}, +number = "3", + pages = {851 -- 864}, + month = {September}, +} + +@Article{Murphy_2004_1, + author = {R. R. Murphy}, + title = "Rescue Robotics for Homeland Security", +journal = {Communications of the ACM, Special Issue on Homeland Security}, + year = {2004}, + OPTkey = {}, + volume = {27}, +number = "3", + pages = {66 -- 69}, + month = {March}, +} + + +@inproceedings{Scholtz_2003, + author = {Jean Scholtz}, + title = {Theory and Evaluation of Human Robot Interactions}, + booktitle = {Proceedings of the 36th Annual Hawaii International Conference on System Sciences (HICSS'03)}, + year = {2003}, + address = {Washington, DC, U.S.A.}, +} + +@Article{Burke_2004, + author = {J. Burke and R. R. Murphy and E. Rogers and J. Scholtz and V. Lumelsky}, + title = "Final Report for the DARPA/NSF Interdisciplinary Study on Human-Robot Interaction", +journal = {IEEE Systems, Man and Cybernetics Part A}, + year = {2004}, + OPTkey = {}, + volume = {34}, +number = "2", + month = {May} +} + +@InProceedings{Biber_2004, + author = "P. Biber and H. Andreasson and T. Duckett and A. Schilling", + title = "{3D} {M}odeling of {I}ndoor {E}nvironments by a {M}obile {R}obot with a {L}aser {S}canner and {P}anoramic {C}amera", + booktitle = "Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS '04)", + month = "September", + year = "2004", + address = "Sendai, Japan", +} + +@InProceedings{Birk_2004, + author = "St. Carpin and H. Kenn and A. Birk", + title = "{A}utonomous {M}apping in the {R}eal {R}obots {R}escue {L}eague", + booktitle = "Proceedings of RoboCup 2003: Robot Soccer World Cup VII", + year = "2004", +} + +@InProceedings{ICAR2005_2, + author = "A. N{\"u}chter and K. Lingemann and J. Hertzberg and H. Surmann", + title = "{6D SLAM} with {A}pproximate {D}ata {A}ssocioation", + booktitle = "Proceedings of the 12th International Conference on Advanced Robotics (ICAR '05)", + month = "July", + pages = "242 -- 249", + year = "2005", +} + +@InProceedings{ICAR2005_1, + author = "A. N{\"u}chter and K. Lingemann and J. Hertzberg and H. Surmann", + title = "{A}ccurate {O}bject {L}ocalization in {3D} {L}aser {R}ange {S}cans", + booktitle = "Proceedings of the 12th International Conference on Advanced Robotics (ICAR '05)", + month = "July", + pages = "665 -- 672", + year = "2005", +} + +@InProceedings{Wulf_2004, + author = "O. Wulf and K. O. Arras and H. I. Christensen and B. A. Wagner", + title = "{2D} {M}apping of {C}luttered {I}ndoor {E}nvironments by {M}eans of {3D} {P}erception", + booktitle = "Proceedings of the IEEE International Conference on Robotics and Automation (ICRA '04)", + month = "April", + year = "2004", + pages = "4204 -- 4209", + address = "New Orleans, USA", +} + +@InProceedings{Wulf_2005, + author = "O. Wulf and B. A. Wagner and M. Khalaf-Allah", + title = "Using {3D} data for {M}onte {C}arlo localization in complex indoor environments", + booktitle = "Proceedings of the second European Conference on Mobile Robotics", + month = "September", + year = "2005", + pages = "170 -- 175", + address = "Ancona, Italy", +} + + +@InProceedings{Huang_1997, + author = {C. Y. Huang and O. I. Camps and T. Kanungo}, + title = {Object Recognition using appearance-based parts and relations}, + booktitle = {Proceedings of the IEEE Conference Computer Vision and pattern Recognition}, + year = {1997}, + address = {San Juan, Puerto Rico}, + month = {June}, + pages = {877 -- 882}, +} + +@Article{Murase_1995, + author = {H. Murase and S. K. Nayar}, + title = {Visual learning and recognition of {3-D} objects from appearance}, + journal = {International Journal Comupter Vision}, + year = {1995}, + volume = {14}, + pages = {5 -- 24}, +} + +@Article{Mokhtarian_1995, + author = {F. Mokhtarian}, + title = {Silhouette-based isolated object recognition through curvature scale space}, + journal = {IEEE Transaction on Pattern Analysis and Machine Intelligence (PAMI)}, + year = {1995}, + volume = {17}, + pages = {539 -- 544}, +} + +@Article{Stein_1992, + author = {F. Stein and G. Medioni}, + title = "Structural indexing: Efficient 3D object recognition", +journal = {IEEE Transaction on Pattern Analysis and machine Vision (PAMI)}, + year = {1992}, + OPTkey = {}, + volume = {14}, + pages = {125 -- 145}, + month = {February}, +} + +@InProceedings{Ashrock_1998, + author = {A. P. Ashrock and R. B. Fisher and C. Robertson and N. Werghi}, + title = "{F}inding surface correspondences for object recognition and registration using pairwise historams", + booktitle = "Proceedings of the European Conference on Computer Vision (ECCV '98)", + address = "Freiburg, Germany", + pages = "185 -- 201", + month = "June", + year = "1998" +} + +@InProceedings{Zhang_1999, + author = {D. Zhang and M. Hebert}, + title = "{H}armonic maps and their application in surface matching", + booktitle = "Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR '99)", + address = "Ft. Collins, CO, U.S.A.", + pages = "2524 -- 2530", + month = "June", + year = "1999" +} + +@Article{Sun_2003, + author = {Y. Sun and J. Paik and A. Koschan and D. Page and M. Abidi}, + title = {{P}oint {F}ingerprint: {A}n {N}ew {3D} {O}bject {R}epresention {S}cheme}, + journal = {IEEE transaction on Systems, Man, and Cybernetics --- Part B: Cybernetics}, + year = {2003}, + OPTkey = {}, + volume = {33}, + number = {4}, + pages = {}, + OPTmonth = {August}, + OPTnote = {}, + OPTannote = {} +} + +@Article{Viola_2004, + author = {Paul Viola and Michael J. Jones}, + title = {Robust Real-Time Face Detection}, + journal = {International Journal of Computer Vision}, + year = {2004}, + OPTkey = {}, + volume = {57}, + number = {2}, + pages = {137 -- 154}, + month = {May}, + OPTnote = {}, + OPTannote = {http://www.kluweronline.com/issn/0920-5691; vorher erschienen: siehe Viola_2001} +} + +@Misc{WWWvolksbot, + OPTkey = {}, + author = {Fraunhofer Gesellschaft - AIS}, + title = {The volksbot robot, \texttt{http://www.ais.fraunhofer.de/BE/ volksbot/}}, + OPThowpublished = {}, + OPTmonth = {}, + year = {2004}, + OPTnote = {}, + OPTannote = {} +} + +@Article{Golfarelli_2001, + author = "M. Golfarelli and D. Maio and S. Rizzi", + title = "Correction of dead-reckoning errors in map building for mobile robots", + journal = "IEEE Transaction on Robotics and Automation (TRA)", +year = "2001", + volume = {17}, + number = {1}, + month = {May}, +} + +@InProceedings{Fritzke_1995, +author = {B. Fritzke}, + title = "{A} growing neural gas network learns topologies", + booktitle = "Advances in Neural Information Processing Systems 7 - Proceedings of the 7th Advances in Neural Information Processing Systems (NIPS '95)", + year = "1995", + pages = "625 -- 632", + address = "Cambridge, MA, USA" +} + +@InProceedings{Frese_2001, +author = {U. Frese and G. Hirzinger}, + title = "{S}imultaneous {L}ocalization and {M}apping -- {A} {D}iscussion", + booktitle = "Proceedings of the IJCAI Workshop on Reasoning with Uncertainty in Robotics", + month = "August", + year = "2001", + pages = "17 -- 26", + address = "Seattle, USA" +} + +@InProceedings{ICRA2004_CMU, +author = {Chr. Baker and A. Chr. Morris and D. Ferguson and S. Thayer and Ch. Whittaker and Z. Omohundro and C. Reverte and W. R. L. Whittaker and D. H\"{a}hnel and S. Thrun}, + title = "A Campaign in Autonomous Mine Mapping", + booktitle = "Proceedings of the IEEE International Conference on Robotics and Automation (ICRA '04)", + month = "April", + year = "2004", + pages = "1998 -- 2003", + address = "New Orleans, USA" +} + +@InProceedings{ICRA2004, + author = "A. N{\"u}chter and H. Surmann and K. Lingemann and J. Hertzberg and S. Thrun", + title = "{6D SLAM} with an {A}pplication in Autonomous Mine Mapping", + booktitle = "Proceedings of the IEEE International Conference on Robotics and Automation", + month = "April", + year = "2004", + pages = "1998 -- 2003", + address = "New Orleans, USA" +} + +@InProceedings{IAV2004, + author = "H. Surmann and A. N{\"u}chter and K. Lingemann and J. Hertzberg", + title = "{6D SLAM} {A} {P}reliminary {R}eport on {C}losing the {L}oop in {S}ix {D}imensions", + booktitle = "Proceedings of the 5th IFAC Symposium on Intelligent Autonomous Vehicles (IAV '04)", + month = "July", + year = "2004", + address = "Lisabon, Portugal" +} + +@InProceedings{IAS2004, + author = "A. N{\"u}chter and H. Surmann and and J. Hertzberg", + title = "{A}utomatic {C}lassification of {O}bjects in {3D} {L}aser {R}ange {S}cans", + booktitle = "Proceedings of the 8th Conference on Intelligent Autonomous Systems (IAS '04)", + month = "March", + year = "2004", + pages = "963 -- 970", + address = "Amsterdam, The Netherlands" +} + + +@Book{DIPLOM2002, + author = "A. N{\"u}chter", + title = "Autonome Exploration und Modellierung von 3D-Umgebungen, GMD Report 157", + publisher = {GMD}, + address = "Sankt Augustin", + year = "2002", +} + +@article{RAAS2003, + author = "H. Surmann and A. N{\"u}chter and J. Hertzberg", + title = "{A}n autonomous mobile robot with a {3D} laser range finder for {3D} exploration and digitalization of indoor en +vironments", + journal = "Journal Robotics and Autonomous Systems", + volume = "45", + number = "3 -- 4", + month = "December", + year = "2003", + pages = "181 -- 198", +} + +@InProceedings{VMV2003, + author = "A. N{\"u}chter and H. Surmann and K. Lingemann and J. Hertzberg", + title = "{S}emantic {S}cene {A}nalysis of {S}canned {3D} {I}ndoor {E}nvironments", + booktitle = "Proceedings of the of the 8th International Fall Workshop Vision, Modeling, and Visualization (VMV '03)", + month = "November", + year = "2003", + pages = "215 -- 222", + address = "Munich, Germany" +} + +@article{Berns_1997, + author = "K. Berns and Th. Christaller and R. Dillmann and J. Hertzberg and W. Ilg and M. Kemmann and E. Rome and H. Stapelfeldt", + title = "{LAOKOON} -- Lernf{\"a}hige autonome kooperierende {K}analroboter", + journal = "KI", + volume = "11", + number = "2", + year = "1997", + pages = "28 -- 32", +} + +@InProceedings{KI2003, + author = "A. N{\"u}chter and H. Surmann and K. Lingemann and J. Hertzberg", + title = "{C}onsistent {3D} {M}odel {C}onstruction with {A}utonomous {M}obile {R}obots", + booktitle = "KI 2003: Advances in Artificial Intelligence. 26th Annual German Conference on AI, Proceedings Springer LNAI vol. 2821", + month = "September", + year = "2003", + pages = "550 -- 564", + address = "Hamburg, Germany" +} + +@InProceedings{KI2005, + author = "A. N{\"u}chter and K. Lingemann and J. Hertzberg and H. Surmann ", + title = "{H}euristic-{B}ased {L}aser {S}can {M}atching for {O}utdoor {6D} {SLAM}", + booktitle = "KI 2005: Advances in Artificial Intelligence. 28th Annual German Conference on AI, Proceedings Springer LNAI vol. 3698", + month = "September", + year = "2005", + pages = "304 -- 319", + address = "Koblenz, Germany" +} + + +@InProceedings{3DIM2003, + author = "A. N{\"u}chter and H. Surmann and J. Hertzberg", + title = "{A}utomatic {M}odel {R}efinement for {3D} {R}econstruction with {M}obile {R}obots", + booktitle = "Proceedings of the 4th IEEE International Conference on Recent Advances in 3D Digital Imaging and Modeling (3DIM '03)", + month = "October", + year = "2003", + address = "Banff, Canada", + pages = "394 -- 401", +} + +@InProceedings{ECMR2005, + author = "K. Lingemann and A. N{\"u}chter and J. Hertzberg and H. Surmann", + title = "{A}bout the {C}ontrol of {H}igh {S}peed {M}obile {I}ndoor {R}obots", + booktitle = "Proceedings of the Second European Conference on Mobile Robotics (ECMR '05)", + month = "September", + year = "2005", + address = "Ancona, Italy", + pages = "218 -- 223", +} + +@InProceedings{ICAR2003, + author = "A. N{\"u}chter and H. Surmann and J. Hertzberg", + title = "{P}lanning {R}obot {M}otion for {3D} {D}igitalization of {I}ndoor {E}nvironments", + booktitle = "Proceedings of the 11th International Conference on Advanced Robotics (ICAR '03)", + month = "June", + year = "2003", + address = "Coimbra, Portugal", + pages = "222 -- 227", +} + +@InProceedings{Levoy_2003, + author = "N. Gelfand and S. Rusinkiewicz and M. Levoy", + title = "{G}eometrically {S}table {S}ampling for the {ICP} {A}lgorithm", + booktitle = "Proceedings of the 4th IEEE International Conference on Recent Advances in 3D Digital Imaging and Modeling (3DIM '03)", + month = "October", + year = "2003", + address = "Banff, Canada", + pages = "(accepted)", +} + +@InProceedings{Greenspan_2000, + author = {M. A. Greenspan and G. Godin and J. Talbot}, + title = {{A}cceleration of {B}inning {N}earest {N}eighbor {M}ethods}, + OPTcrossref = {}, + OPTkey = {}, + booktitle = {Proceedings of the Conference Vision Interface}, + OPTpages = {}, + year = {2000}, + OPTeditor = {}, + OPTvolume = {}, + OPTnumber = {}, + OPTseries = {}, + OPTaddress = {Montreal, Canada}, + OPTmonth = {}, + OPTorganization = {}, + OPTpublisher = {}, + OPTnote = {}, + OPTannote = {} +} + +@Article{Rivest_1974, + author = {R. L. Rivest}, + title = {On the optimality of Elias's algorithm for performing best match searches}, + journal = {Information Processing}, + year = {1974}, + OPTkey = {}, + volume = {74}, + OPTnumber = {}, + pages = {678 -- 681}, + OPTmonth = {}, + OPTnote = {}, + OPTannote = {} +} + +@InProceedings{Fitzgibbon_2001, + author = {A.W. Fitzgibbon}, + title = {{R}obust {R}egistration of {2D} and {3D} {P}oint {S}ets}, + OPTcrossref = {}, + OPTkey = {}, + booktitle = {Proceedings of the 12th British Machine Vision Conference (BMVC '01)}, + OPTpages = {}, + year = {2001}, + OPTeditor = {}, + OPTvolume = {}, + OPTnumber = {}, + OPTseries = {}, + OPTaddress = {}, + OPTmonth = {}, + OPTorganization = {}, + OPTpublisher = {}, + OPTnote = {}, + OPTannote = {} +} + +@Article{ThrunLiu_2004, + author = {S. Thrun and Y. Liu and D. Koller and A. Y. Ng and Z. Ghahramani and H. F. Durrant-Whyte}, + title = {Simultaneous localization and Mapping with Sparse Extended Information Filters}, + journal = {Machine Learning and Autonomous Robots}, + year = {2004}, + OPTkey = {}, + volume = {23}, + number = {7 -- 8}, + pages = {693 -- 716}, + month = {July/August}, + OPTnote = {}, + OPTannote = {} +} + +@Article{Thrun_1998, + author = {S. Thrun and W. Burgard and D. Fox}, + title = {A probabilistic approach to concurrent mapping and localization for mobile robots}, + journal = {Machine Learning and Autonomous Robots}, + year = {1997}, + OPTkey = {}, + volume = {31}, + number = {5}, + pages = {1 -- 25}, + OPTmonth = {October}, + OPTnote = {}, + OPTannote = {} +} + +@Article{Lu_1997, + author = {F. Lu and E. Milios}, + title = {{G}lobally {C}onsistent {R}ange {S}can {A}lignment for {E}nvironment {M}apping}, + journal = {Autonomous Robots}, + year = {1997}, + OPTkey = {}, + volume = {4}, + number = {4}, + pages = {333 -- 349}, + month = {October}, + OPTnote = {}, + OPTannote = {} +} + +@Article{Dissanayake_2001, + author = {M. W. M. G. Dissanayake and P. Newman and S. Clark and H. F. Durrant-Whyte and M. Csorba}, + title = {A {S}olution to the {S}imultaneous {L}ocalization and {M}ap {B}uilding {(SLAM)} {P}roblem}, + journal = {IEEE Transactions on Robotics and Automation}, + year = {2001}, + OPTkey = {}, + volume = {17}, + number = {3}, + pages = {229 -- 241}, + month = {June}, + OPTnote = {}, + OPTannote = {} +} + +@Article{Arun_1987, + author = {K. S. Arun and T. S. Huang and S. D. Blostein}, + title = {Least Square Fitting of Two 3-D Point Sets}, + journal = {IEEE Transactions on Pattern Analysis and Machine Intelligence}, + year = {1987}, + OPTkey = {}, + volume = {9}, + number = {5}, + pages = {698 -- 700}, + OPTmonth = {September}, + OPTnote = {}, + OPTannote = {} +} + +@InProceedings{Fisher_2002, + author = "R. B. Fisher", + title = "{A}pplying knowledge to reverse engeniering problems", + booktitle = "Proceedings of the International Conference. Geometric Modeling and Processing (GMP '02)", + month = "July", + year = "2002", + address = "Riken, Japan", + pages = "149 -- 155", +} + +@Book{Schoening, + author = "U. Sch{\"o}ning", + title = "Logik f{\"u}r Informatiker", + publisher = "Spektrum Akademischer Verlag", + year = "2000", +} + +@InProceedings{Robertson_2000, + author = "C. Robertson and R. B. Fisher and N. Werghi and A. P. Ashbrook", + title = "{F}itting of {C}onstrained {F}eature {M}odels to {P}oor {3D} {D}ata", + booktitle = "Proceedings of the Adaptive Computing in Design and Manufacture (ACDM '00)", + month = "April", + year = "2000", + address = "Plymouth, UK", + pages = "149 -- 160", +} + +@InProceedings{Cantzler_2002_1, + author = "H. Cantzler and R. B. Fisher and M. Devy", + title = "{Q}uality enhancement of reconstructed {3D} models using coplanarity and constraints", + booktitle = "Proceedings of annual Symposium for Pattern Recognition (DAGM '02)", + address = "Z{\"u}rich, Switzerland", + month = "September", + year = "2002", + pages = "34 -- 41", +} + +@InProceedings{Cantzler_2002_2, + author = "H. Cantzler and R. B. Fisher and M. Devy", + title = "{I}mproving architectural {3D} reconstruction by plane and edge constraining", + booktitle = "Proceedings of the British Machine Vision Conference (BMVC '02)", + month = "September", + year = "2002", + address = "Cardiff, U.K.", + pages = "43 -- 52", +} + + +@InProceedings{Liu_2001, + author = "Y. Liu and R. Emery and D. Chakrabarti and W. Burgard and S. Thrun", + title = "{U}sing {EM} to {L}earn {3D} {M}odels of {I}ndoor {E}nvironments with {M}obile {R}obots", + booktitle = "Proceedings of the 18th Conference on Machine Learning", + month = "July", + year = "2001", + address = "Williams College", + pages = "", +} + +@InProceedings{Grau_1997, + author = "O. Grau", + title = "{A} {S}cene {A}nalysis {S}ystem for the {G}eneration of {3-D} {M}odels", + booktitle = "Proceedings IEEE International Conference on Recent Advances in 3D Digital Imaging and Modeling (3DIM '97)", + address = "Ottawa, Canada", + month = "May", + year = "1997", + pages = "221 -- 228", +} + +@article{Tonjes_1999, + author = "R. T{\"o}njes and S. Growe and J. B{\"u}ckner and C.-E. Liedtke", + title = "{K}nowledge {B}ased {I}nterpretation of {R}emote {S}ensing {I}mages {U}sing {S}emantic {N}ets", + journal = "Photogrammetric Engineering and Remote Sensing", + volume = "65", + number = "7", + month = "July", + year = "1999", + pages = "221 -- 228", +} + +@Book{NumericalRecipes, + author = "W. H. Press and B. P. Flannery and S. A. Teukolsky and W. T. Vetterling", + title = "Numerical Recipes in C : The Art of Scientific Computing", + publisher = "Cambridge University Press", + year = "1993", + month = "January", +} + + +@article{Powell_1964, + author = "M. J. D. Powell", + title = "An efficient method for finding the minimum of a function of several variables without calculating derivatives", + journal = "Computer Journal", + volume = "7", + year = "1964", + pages = "155 -- 162", +} + + +@misc{RANSAC, + author = "The RANSAC (Random Sample Consensus) Algorithm", + title = "\texttt{http://www.dai.ed.ac.uk/CV\linebreak online/LOCAL\_COPIES/FISHER/RANSAC/}", + year = "2003" +} + +@misc{SWI, + author = "SWI Prolog", + title = "\texttt{http://www.swi-prolog.org/}", + year = "2003" +} + +@Book{REPORT2003, + author = "H. Surmann and A. N{\"u}chter and J. Hertzberg", + title = "Autonomous Mobile Robots for 3D Digitalization of Indoor Environments, GMD Report 147", + publisher = "GMD - Forschungszentrum Informationstechnik GmbH", + year = "2003", +} + +@misc{FHG-IPM, + author = "The Fraunhofer Institute for Physical Measurement Techniques IPM", + title = "\texttt{http://www.ipm.fraunhofer.de/english/fields/}", + year = "2002", + address ="Freiburg, Germany", +} + +@InProceedings{Viola_2001, + author = "P. Viola and M. Jones", + title = "{R}obust {R}eal-time {O}bject {D}etection", + booktitle = "Proceedings of the second International Workshop on Statistical and Computational Theories of Vision -- Modeling, Learning, Computing and Sampling", + address = "Vancouver, Canada", + month = "July", + year = "2001", +} + +@InProceedings{Lienhart_2002, + author = "R. Lienhart and J. Maydt", + title = "{A}n {E}xtended {S}et of {H}aar-like {F}eatures for {R}apid {O}bject {D}etection", + booktitle = "Proceedings of the IEEE Conference on Image Processing (ICIP '02)", + address = "New York, USA", + month = "Septmber", + year = "2002", + pages = "155 -- 162", +} + +@InProceedings{Lienhart_2003, + author = "R. Lienhart and L. Liang and A. Kuranov", + title = "A {D}etector {T}ree of {B}oosted {C}lassifiers for {R}eal-time {O}bject {D}etection and {T}racking", + booktitle = "Proceedings of the IEEE International Conference on Multimedia \& Expo (ICME '03)", + address = "New York, USA", + month = "July", + year = "2003", +} + +@InProceedings{Lienhart_2003_1, + author = "R. Lienhart and A. Kuranov and V. Pisarevsky", + title = "{E}mpirical {A}nalysis of {D}etection {C}ascades of {B}oosted {C}lassifiers for {R}apid {O}bject {D}etection", + booktitle = "Proceedings of the German 25th Pattern Recognition Symposium (DAGM '03)", + address = "Magdeburg, Germany", + month = "September", + year = "2003", +} + +@Article{Turk_1991, + author = {M. Turk and P. Pentland}, + title = {Eigenfaces for Recognition}, + journal = {Journal Cognitive Neuroscience}, + year = {1991}, + volume = {3}, + pages = {71 -- 86}, +} + +@inproceedings{Carmichael_2002, + author = "O. Carmichael and M. Hebert", + title = "{O}bject {R}ecognition by a {C}ascade of {E}dge {P}robes", + booktitle = "Proceedings of the 13th British Machine Vision Conference (BMVC '02)", + month = "September", + address = "Cardiff, U.K.", + year = "2002", + volume = "1", + pages = "103 -- 112", +} + +@article{Hartmann_2002, + author = "R. Lienhart and A. Hartmann", + title = "{C}lassifying images on the web automatically", + journal = "Journal of Electronic Imaging", + volume = "11", + number = "4", + year = "2002", + month = "October", + pages = "445 -- 454", +} + +@inproceedings{Freund_1996, + author = "Y. Freund and R. E. Schapire", + title = "{E}xperiments with a new boosting algorithm", + booktitle = "Machine Learning: Proceedings of the 13th International Conference", + pages = "148 -- 156", + year = "1996", +} + +@inproceedings{Se_2001, + author = "S. Se and D. Lowe and J. Little", + title = "{L}ocal and {G}lobal {L}ocalization for {M}obile {R}obots using {V}isual {L}andmarks", + booktitle = "Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS '01)", + month = "October", + address = "Hawaii, USA", + year = "2001", +} + +@inproceedings{Launay_2001, + author = "F. Launay and A. Ohya and S. Yuta", + title = "{A}utonomous {I}ndoor {M}obile {R}obot {N}avigation by detecting {F}luorescent {T}ubes", + booktitle = "Proccedings of the 10th International Conference on Advanced Robotics (ICAR '01)", + month ="August", + address = "Budapest, Hungary", + year = "2001", +} + +@inproceedings{Dellaert_1999, + author = "F. Dellaert and W. Burgard and D. Fox and S. Thrun", + title = "{U}sing the {C}ondensation {A}lgorithm for {R}obust, {V}ision-based {M}obile {R}obot {L}ocalization", + booktitle = "Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR '99)", + address = "Ft. Collins, U.S.A", + month = "June", + year = "1999", +} + +@inproceedings{Correa_2003, + author = "S. Ruiz-Correa and L. G. Shapiro and M. Meila", + title = "{A} {N}ew {P}aradigm for {R}ecognizing {3-D} {O}bject {S}hapes from {R}ange {D}ata", + booktitle = "Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR '03)", + address = "Madison, U.S.A.", + month = "June", + year = "2003", +} + +@inproceedings{Papageorgio_1998, + author = "C. Papageorgiou and M. Oren and T. Poggio", + title = "{A} general framework for object detection", + booktitle = " Proceedings of the 6th International Conference on Computer Vision (ICCV '98)", + address = "Bombay, India", + month = "January", + year = "1998", +} + +@article{Rowley_1998, + author = "H. Rowley and S. Baluja and T. Kanade", + title = "{N}eural network-based face detection", + journal = "IEEE Transactions on Pattern Analysis and Machine Intelligence", + volume = "20", + number = "1", + year = "1998", + month = "January", + pages = "23 -- 38", +} + +@article{Haar_1910, + author = "A. Haar", + title = "{Z}ur {T}heorie der orthogonalen {F}unktionensysteme", + journal = "Mathematische Annalen", + number = "69", + pages = "331 -- 371", + year = "1910", +} + +@inproceedings{Greenspan_2003, + author = "M. Greenspan and M. Yurick", + title = "{A}pproximate {K}-{D} {T}ree {S}earch for {E}fficient {ICP}", + booktitle = "Proceedings of the 4th IEEE International Conference on Recent Advances in 3D Digital Imaging and Modeling (3DIM '03)", + month = "October", + year = "2003", + address = "Banff, Canada", + pages = "442 -- 448", +} + +@inproceedings{Boulanger_2002, + author = "P. Boulanger and O. Jokinen and A. Beraldin", + title = "{I}ntrinsic {F}iltering of {R}ange {I}mages {U}sing a {P}hysically {B}ased {N}oise {M}odel", + booktitle = "Proceedings of the 15th International Conference on Vision Interface", + month = "May", + year = "2002", + address = "Calgary, Canada", + pages = "320 -- 331", +} + +@INPROCEEDINGS{Morris03a, + AUTHOR = {Morris, A. and Kurth, D. and Whittaker, W. and Thayer, S.}, + TITLE = {Case Studies of a Borehole Deployable Robot for Limestone Mine +Profiling and Mapping}, + YEAR = {2003}, + BOOKTITLE = {Proceedings of the International Conference on Field and +Service Robotics}, + ADDRESS = {Lake Yamanaka, Japan} +} + +@ARTICLE{Belwood91a, + AUTHOR = {J.J. Belwood and R.J. Waugh}, + TITLE = {Bats and Mines: Abandoned Does Not Always Mean Empty }, + JOURNAL = {Bats}, + YEAR = {1991}, + VOLUME = {9}, + NUMBER = {3} +} + +@MISC{Pauley02a, + AUTHOR = {E. Pauley and T. Shumaker and B. Cole}, + TITLE = {Preliminary report of investigation: Underground Bituminous Coal +Mine, Non-Injury Mine Inundation Accident (Entrapment), {J}uly 24, 2002, +{Q}uecreek, {P}ennsylvania}, + NOTE = {Black Wolf Coal Company, Inc. for the PA Bureau of Deep Mine Safety}, + YEAR = {2002} +} + +@INPROCEEDINGS{Corke96a, + AUTHOR = {P. Corke and J. Cunningham and D. Dekker and and H. Durrant-Whyte}, + TITLE = {Autonomous underground vehicles}, + YEAR = {1996}, + MONTH = {September}, + BOOKTITLE = {Proceedings of the CMTE Mining Technology Conference}, + PAGES = {16--22}, + ADDRESS = {Perth, Australia} +} + +@PHDTHESIS{Bailey02a, + AUTHOR = {Bailey, T.}, + TITLE = {Mobile Robot Localisation and Mapping in Extensive Outdoor +Environments}, + YEAR = {2002}, + SCHOOL = {University of Sydney}, + ADDRESS = {Sydney, NSW, Australia} +} + +@INPROCEEDINGS{Haehnel02c, + AUTHOR = {S. Thrun and D. H\"{a}hnel and D. Ferguson and M. Montemerlo and +R. Triebel and W. Burgard and C. Baker and Z. Omohundro and S. Thayer and W. +Whittaker}, + TITLE = {A System for Volumetric Robotic Mapping of Abandoned Mines}, + YEAR = {2003}, + BOOKTITLE = {Proceedings of the IEEE International Conference on +Robotics and Automation (ICRA '03)}, + ADDDRESS = {Taipei, Taiwan} +} + +@INPROCEEDINGS{Ferguson03a, + AUTHOR = {D. Ferguson and A. Morris and D. H\"{a}hnel and C. Baker and Z. +Omohundro and C. Reverte and S. Thayer and W. Whittaker and W. Whittaker and +W. Burgard and S. Thrun}, + TITLE = {An Autonomous Robotic System for Mapping Abandoned Mines}, + YEAR = {2003}, + BOOKTITLE = {Proceedings of Conference on Neural Information Processing +Systems (NIPS)}, + EDITOR = {S. Thrun and L. Saul and B. Sch\"{o}lkopf}, + PUBLISHER = {MIT Press} +} + +@InProceedings{Folkesson_2003, + title = "Outdoor {E}xploration and {SLAM} using a {C}ompressed {F}ilter", + author = "J. Folkesson and H. Christensen", + booktitle = "Proceedings of the IEEE International Conference on Robotics and Automation (ICRA '03)", + year = "2003", + month = "September", + address = "Taipei, Taiwan", + pages = "419--426", +} + +@PhdThesis{Clark_1999, + author = {S. Clark}, + title = {{A}utonomous {L}and {V}ehicle {N}avigation}, + school = {The University of Sydney}, + year = {1999}, + address = {Sydney, Australia}, +} + +@InProceedings{Suomela_1995, + author = {J. Suomela and J. Kuusela and A. Halme}, + title = {{A} {M}ilimeter wave radar for close terrain mapping of an intelligent autonomous vehicle}, + booktitle = {Proceedings of the 2nd IFAC Conference on Intelligent Autonomous Vehicles}, + pages = {349 -- 354}, + year = {1995}, + address = {Helsinki, Finnland}, +} + diff --git a/doc/high_level_doc/stylish_scanner.eps b/doc/high_level_doc/stylish_scanner.eps new file mode 100644 index 0000000..be1f00b --- /dev/null +++ b/doc/high_level_doc/stylish_scanner.eps @@ -0,0 +1,3644 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: GIMP PostScript file plugin V 1.16 by Peter Kirchgessner +%%Title: /home/publications/#stuff/stylish_kurt.eps +%%CreationDate: Thu Mar 30 11:56:25 2006 +%%DocumentData: Clean7Bit +%%LanguageLevel: 2 +%%Pages: 1 +%%BoundingBox: 14 14 759 1067 +%%EndComments +%%BeginProlog +% Use own dictionary to avoid conflicts +10 dict begin +%%EndProlog +%%Page: 1 1 +% Translate for offset +14.173228346456694 14.173228346456694 translate +% Translate to begin of first scanline +0 1052 translate +743.99999999999989 -1052 scale +% Image geometry +744 1052 8 +% Transformation matrix +[ 744 0 0 1052 0 0 ] +% Strings to hold RGB-samples per scanline +/rstr 744 string def +/gstr 744 string def +/bstr 744 string def +{currentfile /ASCII85Decode filter /RunLengthDecode filter rstr readstring pop} +{currentfile /ASCII85Decode filter /RunLengthDecode filter gstr readstring pop} +{currentfile /ASCII85Decode filter /RunLengthDecode filter bstr readstring pop} +true 3 +%%BeginData: 174212 ASCII Bytes +colorimage +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$NW0(0>Jl$lJcCi3J,~> +JcC<$NW0(0>Jl$lJcCi3J,~> +JcC<$NW0(0>Jl$lJcCi3J,~> +JcC<$O8fI_KEM8T/X5dVs+136s*t~> +JcC<$O8fI_KEM8T/X5dVs+136s*t~> +JcC<$O8fI_KEM8T/X5dVs+136s*t~> +JcC<$OT,@B62LW`$tde9s+138s*t~> +JcC<$OT,@B62LW`$tde9s+138s*t~> +JcC<$OT,@B62LW`$tde9s+138s*t~> +JcC<$OoGHe'__S/2kTeps+13;s*t~> +JcC<$OoGHe'__S/2kTeps+13;s*t~> +JcC<$OoGHe'__S/2kTeps+13;s*t~> +JcC<$Sc8]gq#:EiC]X/.!YKD'JcC<$Rf@m~> +JcC<$Sc8]gq#:EiC]X/.!YKD'JcC<$Rf@m~> +JcC<$Sc8]gq#:EiC]X/.!YKD'JcC<$Rf@m~> +JcC<$TDnu^Wp'9Y!S&gl!!<6fWVM,FJcD;@J,~> +JcC<$TDnu^Wp'9Y!S&gl!!<6fWVM,FJcD;@J,~> +JcC<$TDnu^Wp'9Y!S&gl!!<6fWVM,FJcD;@J,~> +JcC<$U&P5aJm\'DrrJPqli7)(HJjASJcDABJ,~> +JcC<$U&P5aJm\'DrrJPqli7)(HJjASJcDABJ,~> +JcC<$U&P5aJm\'DrrJPqli7)(HJjASJcDABJ,~> +JcC<$U]1JeJeN\5qYpTa<9O;a"&#uuJcC<$UAo`~> +JcC<$U]1JeJeN\5qYpTa<9O;a"&#uuJcC<$UAo`~> +JcC<$U]1JeJeN\5qYpTa<9O;a"&#uuJcC<$UAo`~> +JcC<$V>g\gK+SX!q>UK6+63D'+,&g.s+13Gs*t~> +JcC<$V>g\gK+SX!q>UK6+63D'+,&g.s+13Gs*t~> +JcC<$V>g\gK+SX!q>UK6+63D'+,&g.s+13Gs*t~> +JcC<$VuHqjK+\/4f_YULr.5(1!! +JcC<$VuHqjK+\/4f_YULr.5(1!! +JcC<$VuHqjK+\/4f_YULr.5(1!! +JcC<$WW*1mK+\.a:\";]!TQE"!!4L3o7?pms/H$K~> +JcC<$WW*1mK+\.a:\";]!TQE"!!4L3o7?pms/H$K~> +JcC<$WW*1mK+\.a:\";]!TQE"!!4L3o7?pms/H$K~> +JcC<$X8`FpK+\.a!eL@IrrK;:f`2'`D:jF>JcDeNJ,~> +JcC<$X8`FpK+\.a!eL@IrrK;:f`2'`D:jF>JcDeNJ,~> +JcC<$X8`FpK+\.a!eL@IrrK;:f`2'`D:jF>JcDeNJ,~> +JcC<$XoAImK+e.`!=uL4rrMh.eGo[P8$i/Fs+13Qs*t~> +JcC<$XoAImK+e.`!=uL4rrMh.eGo[P8$i/Fs+13Qs*t~> +JcC<$XoAImK+e.`!=uL4rrMh.eGo[P8$i/Fs+13Qs*t~> +JcC<$YQ"[oK+e+_!@c[trrLV$d/X4lN:)8sJcDtSJ,~> +JcC<$YQ"[oK+e+_!@c[trrLV$d/X4lN:)8sJcDtSJ,~> +JcC<$YQ"[oK+e+_!@c[trrLV$d/X4lN:)8sJcDtSJ,~> +JcC<$Z2XmqK+e(^!Dr=_rrJJnc2[nQB$u81JcE%UJ,~> +JcC<$Z2XmqK+e(^!Dr=_rrJJnc2[nQB$u81JcE%UJ,~> +JcC<$Z2XmqK+e(^!Dr=_rrJJnc2[nQB$u81JcE%UJ,~> +JcC<$Zi:*sK+e(^!WmuQqu6]b;TSn?5HOa5s+13Xs*t~> +JcC<$Zi:*sK+e(^!WmuQqu6]b;TSn?5HOa5s+13Xs*t~> +JcC<$Zi:*sK+e(^!WmuQqu6]b;TSn?5HOa5s+13Xs*t~> +JcC<$[Jp +JcC<$[Jp +JcC<$[Jp +JcC<$\,QO"K+e"\!@Zaurr_V_ +JcC<$\,QO"K+e"\!@Zaurr_V_ +JcC<$\,QO"K+e"\!@Zaurr_V_ +JcC<$\c2a-N=5R_![F63o`#$i]l57;!!5-Uq18Qss1JA^~> +JcC<$\c2a-N=5R_![F63o`#$i]l57;!!5-Uq18Qss1JA^~> +JcC<$\c2a-N=5R_![F63o`#$i]l57;!!5-Uq18Qss1JA^~> +JcC<$]Dhs%JJ%_Y![j]=mf*C?MEV0b!!4!djamG_s1\M`~> +JcC<$]Dhs%JJ%_Y![j]=mf*C?MEV0b!!4!djamG_s1\M`~> +JcC<$]Dhs%JJ%_Y![j]=mf*C?MEV0b!!4!djamG_s1\M`~> +JcC<$^&J0&Ih;GV!\C8IlMh"H?igB4aoDJE=PSK-JcEOcJ,~> +JcC<$^&J0&Ih;GV!\C8IlMh"H?igB4aoDJE=PSK-JcEOcJ,~> +JcC<$^&J0&Ih;GV!\C8IlMh"H?igB4aoDJE=PSK-JcEOcJ,~> +JcC<$^]+B'I1Q/S!\g_SlMgqPEsVaF"(/!*$H`>M7(N;Js+13fs*t~> +JcC<$^]+B'I1Q/S!\g_SlMgqPEsVaF"(/!*$H`>M7(N;Js+13fs*t~> +JcC<$^]+B'I1Q/S!\g_SlMgqPEsVaF"(/!*$H`>M7(N;Js+13fs*t~> +JcC<$_>aT(HOflP!]@7^lMgqaP77Ej#To^(k5Y(Q +JcC<$_>aT(HOflP!]@7^lMgqaP77Ej#To^(k5Y(Q +JcC<$_>aT(HOflP!]@7^lMgqaP77Ej#To^(k5Y(Q +JcC<$_uBf(Gn'TM!BR[QrrK2CrW!*DS'=.tG5_FCoVtn!bQ%\eOn=5)JcEdjJ,~> +JcC<$_uBf(Gn'TM!BR[QrrK2CrW!*DS'=.tG5_FCoVtn!bQ%\eOn=5)JcEdjJ,~> +JcC<$_uBf(Gn'TM!BR[QrrK2CrW!*DS'=.tG5_FCoVtn!bQ%\eOn=5)JcEdjJ,~> +JcC<$`W$#)G7= +JcC<$`W$#)G7= +JcC<$`W$#)G7= +JcC<$a8Z5*FU\*H!CXcfrsA49"TSN?OnP@_qu?_hq#:HaQT>/m!!3I?gO]BUs3(Fm~> +JcC<$a8Z5*FU\*H!CXcfrsA49"TSN?OnP@_qu?_hq#:HaQT>/m!!3I?gO]BUs3(Fm~> +JcC<$a8Z5*FU\*H!CXcfrsA49"TSN?OnP@_qu?_hq#:HaQT>/m!!3I?gO]BUs3(Fm~> +JcC<$ao;G+EsqgE!D1;ors4Jg!!!dnp<5Mm!!#1TrrUr(,0g/i"'!Bns+13ps*t~> +JcC<$ao;G+EsqgE!D1;ors4Jg!!!dnp<5Mm!!#1TrrUr(,0g/i"'!Bns+13ps*t~> +JcC<$ao;G+EsqgE!D1;ors4Jg!!!dnp<5Mm!!#1TrrUr(,0g/i"'!Bns+13ps*t~> +JcC<$bPqY,E=2RC!Wc'>kPkk=5QCctM"L%H!r2fs!SR,F"9-/K&'b.V5dgTBs+13ss*t~> +JcC<$bPqY,E=2RC!Wc'>kPkk=5QCctM"L%H!r2fs!SR,F"9-/K&'b.V5dgTBs+13ss*t~> +JcC<$bPqY,E=2RC!Wc'>kPkk=5QCctM"L%H!r2fs!SR,F"9-/K&'b.V5dgTBs+13ss*t~> +JcC<$c2Rk-E!cCA!Wl?JkPkk\G6S$ZKCSl*'(u;*GOb\8pSgdgcN""tU&'??JcF0uJ,~> +JcC<$c2Rk-E!cCA!Wl?JkPkk\G6S$ZKCSl*'(u;*GOb\8pSgdgcN""tU&'??JcF0uJ,~> +JcC<$c2Rk-E!cCA!Wl?JkPkk\G6S$ZKCSl*'(u;*GOb\8pSgdgcN""tU&'??JcF0uJ,~> +JcC<$ci4(-D@$+>!WuTTk5P^j*rle"n,L?^oDen0qsXOdk_:2*!!4.!nq$gls4%(!~> +JcC<$ci4(-D@$+>!WuTTk5P^j*rle"n,L?^oDen0qsXOdk_:2*!!4.!nq$gls4%(!~> +JcC<$ci4(-D@$+>!WuTTk5P^j*rle"n,L?^oDen0qsXOdk_:2*!!4.!nq$gls4%(!~> +JcC<$dJj:.C^Bn]-ci=+YGijSWJcF=$J,~> +JcC<$dJj:.C^Bn]-ci=+YGijSWJcF=$J,~> +JcC<$dJj:.C^Bn]-ci=+YGijSWJcF=$J,~> +JcC<$e,KL/C'XV9!X3&gk5Pb_KF&!-lMpaA&+BQ!:[7r]jb"Z%!!34/l@Jtds4I@%~> +JcC<$e,KL/C'XV9!X3&gk5Pb_KF&!-lMpaA&+BQ!:[7r]jb"Z%!!34/l@Jtds4I@%~> +JcC<$e,KL/C'XV9!X3&gk5Pb_KF&!-lMpaA&+BQ!:[7r]jb"Z%!!34/l@Jtds4I@%~> +JcC<$ec,^/BEn>6!X<5mjo5Uu-O=YRs8Te`mJm7kkNW!Kr3T3$d/X4SEpA5UJcFI(J,~> +JcC<$ec,^/BEn>6!X<5mjo5Uu-O=YRs8Te`mJm7kkNW!Kr3T3$d/X4SEpA5UJcFI(J,~> +JcC<$ec,^/BEn>6!X<5mjo5Uu-O=YRs8Te`mJm7kkNW!Kr3T3$d/X4SEpA5UJcFI(J,~> +JcC<$fDbp0Ad8,4!XEDsjo5V]=9iU%s8V+\lMppAk5PMCIiQi9!XsDCJcC<$h#Dm~> +JcC<$fDbp0Ad8,4!XEDsjo5V]=9iU%s8V+\lMppAk5PMCIiQi9!XsDCJcC<$h#Dm~> +JcC<$fDbp0Ad8,4!XEDsjo5V]=9iU%s8V+\lMppAk5PMCIiQi9!XsDCJcC<$h#Dm~> +JcC<$g&D-0A-Mi1!XNT$j8TA\>il"cpkK7B!!+MIjo5DZWB&?+!YC"TJcC<$hZ&*~> +JcC<$g&D-0A-Mi1!XNT$j8TA\>il"cpkK7B!!+MIjo5DZWB&?+!YC"TJcC<$hZ&*~> +JcC<$g&D-0A-Mi1!XNT$j8TA\>il"cpkK7B!!+MIjo5DZWB&?+!YC"TJcC<$hZ&*~> +JcC<$g]%?1@KlW/!XW`)h>[Ma-Kb@/`8^dua&`Dl!!3mop4<6ps5 +JcC<$g]%?1@KlW/!XW`)h>[Ma-Kb@/`8^dua&`Dl!!3mop4<6ps5 +JcC<$g]%?1@KlW/!XW`)h>[Ma-Kb@/`8^dua&`Dl!!3mop4<6ps5 +JcC<$h>[Q1?j-?,!X`o/h>[NC:ZVQV@c77fiH5^[!!4('q18Qss5O'/~> +JcC<$h>[Q1?j-?,!X`o/h>[NC:ZVQV@c77fiH5^[!!4('q18Qss5O'/~> +JcC<$h>[Q1?j-?,!X`o/h>[NC:ZVQV@c77fiH5^[!!4('q18Qss5O'/~> +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$iVru2>Qaj'!Xs8:g&D&)irB(Nh>[QTYsHe +JcC<$iVru2>Qaj'!Xs8:g&D&)irB(Nh>[QTYsHe +JcC<$iVru2>Qaj'!Xs8:g&D&)irB(Nh>[QTYsHe +JcC<$j8T23=p+X%!Y'G@fDbmL6KA+H7,%YBcrL4s!!4^Srdk*#s60K5~> +JcC<$j8T23=p+X%!Y'G@fDbmL6KA+H7,%YBcrL4s!!4^Srdk*#s60K5~> +JcC<$j8T23=p+X%!Y'G@fDbmL6KA+H7,%YBcrL4s!!4^Srdk*#s60K5~> +JcC<$jo5D3=9A@"!Y9\GeGfR=*T[8%"6\A;!n^i`df9D*[t4R1s69Q6~> +JcC<$jo5D3=9A@"!Y9\GeGfR=*T[8%"6\A;!n^i`df9D*[t4R1s69Q6~> +JcC<$jo5D3=9A@"!Y9\GeGfR=*T[8%"6\A;!n^i`df9D*[t4R1s69Q6~> +JcC<$kPkV3 +JcC<$kPkV3 +JcC<$kPkV3 +JcC<$l2Lh4 +JcC<$l2Lh4 +JcC<$l2Lh4 +JcC<$li.%4;??Xp!Y^:XbPqV)&a',p!T)?+!pb1Ddf9DDiIV#[s6ou<~> +JcC<$li.%4;??Xp!Y^:XbPqV)&a',p!T)?+!pb1Ddf9DDiIV#[s6ou<~> +JcC<$li.%4;??Xp!Y^:XbPqV)&a',p!T)?+!pb1Ddf9DDiIV#[s6ou<~> +JcC<$mJd74:]^Fn!YpO^aSu:S"6TXaL=6)'n:VM*!!3@EmXbChs7-,>~> +JcC<$mJd74:]^Fn!YpO^aSu:S"6TXaL=6)'n:VM*!!3@EmXbChs7-,>~> +JcC<$mJd74:]^Fn!YpO^aSu:S"6TXaL=6)'n:VM*!!3@EmXbChs7-,>~> +JcC<$n,EI5:'(4l!Z-de`W#pik5YK6d/O1 +JcC<$n,EI5:'(4l!Z-de`W#pik5YK6d/O1 +JcC<$n,EI5:'(4l!Z-de`W#pik5YK6d/O1 +JcC<$nc&[59EG"j!Z6sj_uBc5($>Pse'J$qluWQ`!!+OWJcC<$o`'F~> +JcC<$nc&[59EG"j!Z6sj_uBc5($>Pse'J$qluWQ`!!+OWJcC<$o`'F~> +JcC<$nc&[59EG"j!Z6sj_uBc5($>Pse'J$qluWQ`!!+OWJcC<$o`'F~> +JcC<$oD\j49)8Mh)Nja/rr@6*!!%>irrV7o"k3MQ9&kL&JcGHDJ,~> +JcC<$oD\j49)8Mh)Nja/rr@6*!!%>irrV7o"k3MQ9&kL&JcGHDJ,~> +JcC<$oD\j49)8Mh)Nja/rr@6*!!%>irrV7o"k3MQ9&kL&JcGHDJ,~> +JcC<$p&>'48GW;f*0^-2rrLjTkPtW-rlkBDgK=U.!!3Rhr.4m!s7lVE~> +JcC<$p&>'48GW;f*0^-2rrLjTkPtW-rlkBDgK=U.!!3Rhr.4m!s7lVE~> +JcC<$p&>'48GW;f*0^-2rrLjTkPtW-rlkBDgK=U.!!3Rhr.4m!s7lVE~> +JcC<$p\t947f!)d*gZT5rr>FL!!('^rrLJ?e,TM)b^oeFs7u\F~> +JcC<$p\t947f!)d*gZT5rr>FL!!('^rrLJ?e,TM)b^oeFs7u\F~> +JcC<$p\t947f!)d*gZT5rr>FL!!('^rrLJ?e,TM)b^oeFs7u\F~> +JcC<$q>UK47/?lb+IW&9rrB(^!!$rYrrL&%eGoXQE:\Y\JcGWIJ,~> +JcC<$q>UK47/?lb+IW&9rrB(^!!$rYrrL&%eGoXQE:\Y\JcGWIJ,~> +JcC<$q>UK47/?lb+IW&9rrB(^!!$rYrrL&%eGoXQE:\Y\JcGWIJ,~> +JcC<$qu6]46M^Z`,+SM=rrMp3kPtW$r5\gE>$s+14Is*t~> +JcC<$qu6]46M^Z`,+SM=rrMp3kPtW$r5\gE>$s+14Is*t~> +JcC<$qu6]46M^Z`,+SM=rrMp3kPtW$r5\gE>$s+14Is*t~> +JcC<$rVlo45l(H^-(k(Arr@<,!!'[OrrW"S&)%!b!FkJJs+14Hs*t~> +JcC<$rVlo45l(H^-(k(Arr@<,!!'[OrrW"S&)%!b!FkJJs+14Hs*t~> +JcC<$rVlo45l(H^-(k(Arr@<,!!'[OrrW"S&)%!b!FkJJs+14Hs*t~> +JcC<$s8N,24o,-[-_gLDrrLpWkPtTm`;]o'AHU`g!@5@0s+14Fs*t~> +JcC<$s8N,24o,-[-_gLDrrLpWkPtTm`;]o'AHU`g!@5@0s+14Fs*t~> +JcC<$s8N,24o,-[-_gLDrrLpWkPtTm`;]o'AHU`g!@5@0s+14Fs*t~> +JcC?%!rfJaq>^RGV>ROs!(Q/P!>5+ErrLG1huEf]GP6UfJcGKEJ,~> +JcC?%!rfJaq>^RGV>ROs!(Q/P!>5+ErrLG1huEf]GP6UfJcGKEJ,~> +JcC?%!rfJaq>^RGV>ROs!(Q/P!>5+ErrLG1huEf]GP6UfJcGKEJ,~> +JcCE'!r])Oq>^RJW;Wju!3G>`!3j<>!NRC(!!+n$JcC<$p&BO~> +JcCE'!r])Oq>^RJW;Wju!3G>`!3j<>!NRC(!!+n$JcC<$p&BO~> +JcCE'!r])Oq>^RJW;Wju!3G>`!3j<>!NRC(!!+n$JcC<$p&BO~> +JcCK)!rJZ>q>^RLX8T+!!W!\t!!$*9rrVqK%-ITl$B+e4s+14Bs*t~> +JcCK)!rJZ>q>^RLX8T+!!W!\t!!$*9rrVqK%-ITl$B+e4s+14Bs*t~> +JcCK)!rJZ>q>^RLX8T+!!W!\t!!$*9rrVqK%-ITl$B+e4s+14Bs*t~> +JcCQ+!r/-+q>^ROY5YC"!.*i/!=JG5rrM\-kl:`Ph1>TWs762?~> +JcCQ+!r/-+q>^ROY5YC"!.*i/!=JG5rrM\-kl:`Ph1>TWs762?~> +JcCQ+!r/-+q>^ROY5YC"!.*i/!=JG5rrM\-kl:`Ph1>TWs762?~> +JcCW-!qhWoq>^RQZ2UX#!T*tB!!&k/rrKYSm/R2#TDn?[!<.QLKE$H~> +JcCW-!qhWoq>^RQZ2UX#!T*tB!!&k/rrKYSm/R2#TDn?[!<.QLKE$H~> +JcCW-!qhWoq>^RQZ2UX#!T*tB!!&k/rrKYSm/R2#TDn?[!<.QLKE$H~> +JcC]/!qD$]q>^RT[/Qj#!(c;R!)1'*!qg^>n,NJkkj\TRfijPis+C?%~> +JcC]/!qD$]q>^RT[/Qj#!(c;R!)1'*!qg^>n,NJkkj\TRfijPis+C?%~> +JcC]/!qD$]q>^RT[/Qj#!(c;R!)1'*!qg^>n,NJkkj\TRfijPis+C?%~> +JcCc1!ptILq>^OV\"Na$YNPre#4/u%!REXp!!++HnG`XH?NU:.JcCB&J,~> +JcCc1!ptILq>^OV\"Na$YNPre#4/u%!REXp!!++HnG`XH?NU:.JcCB&J,~> +JcCc1!ptILq>^OV\"Na$YNPre#4/u%!REXp!!++HnG`XH?NU:.JcCB&J,~> +JcCi3!pFe:q>^OX\Xrg%q\nYu!1CFu!r[fUpAb6rD"@,r!oRSmrVup;JcCB&J,~> +JcCi3!pFe:q>^OX\Xrg%q\nYu!1CFu!r[fUpAb6rD"@,r!oRSmrVup;JcCB&J,~> +JcCi3!pFe:q>^OX\Xrg%q\nYu!1CFu!r[fUpAb6rD"@,r!oRSmrVup;JcCB&J,~> +JcCo5!oe&'q>^O[]USp$IHUY25e-gpeM-e!!@u.ZrrV4p#5\B#hgtf\s*t~> +JcCo5!oe&'q>^O[]USp$IHUY25e-gpeM-e!!@u.ZrrV4p#5\B#hgtf\s*t~> +JcCo5!oe&'q>^O[]USp$IHUY25e-gpeM-e!!@u.ZrrV4p#5\B#hgtf\s*t~> +JcCu7!o.>kq>^O^^R>*&hui3D!lrrVt;!rW*##CuX@rrV>##l+H#V1JZ"s*t~> +JcCu7!o.>kq>^O^^R>*&hui3D!lrrVt;!rW*##CuX@rrV>##l+H#V1JZ"s*t~> +JcCu7!o.>kq>^O^^R>*&hui3D!lrrVt;!rW*##CuX@rrV>##l+H#V1JZ"s*t~> +JcD&9!nLTZq>^Oa_Nt3%9BZ?UNOJij]c@(Q3n +JcD&9!nLTZq>^Oa_Nt3%9BZ?UNOJij]c@(Q3n +JcD&9!nLTZq>^Oa_Nt3%9BZ?UNOJij]c@(Q3n +JcD,;!mXaHq>^Od`K^B&Z02/f1q!>cn5bePoD\mYG74'D!&0!(K`?Q~> +JcD,;!mXaHq>^Od`K^B&Z02/f1q!>cn5bePoD\mYG74'D!&0!(K`?Q~> +JcD,;!mXaHq>^Od`K^B&Z02/f1q!>cn5bePoD\mYG74'D!&0!(K`?Q~> +JcD2=!lmq7q>^P(i0+*@r#Fo#!8==M!q(FGo)JdnnU^^os*t~> +JcD2=!lmq7q>^P(i0+*@r#Fo#!8==M!q(FGo)JdnnU^^os*t~> +JcD2=!lmq7q>^P(i0+*@r#Fo#!8==M!q(FGo)JdnnU^^os*t~> +JcD8?!PUqt!!30uc&_l)J*6k4JuJ\NnUV8@!!'T]s+UK'~> +JcD8?!PUqt!!30uc&_l)J*6k4JuJ\NnUV8@!!'T]s+UK'~> +JcD8?!PUqt!!30uc&_l)J*6k4JuJ\NnUV8@!!'T]s+UK'~> +JcDAB!rfVhq>^R!=43*.!TF4G!!"IJrrVeH'(,`"It@WRs*t~> +JcDAB!rfVhq>^R!=43*.!TF4G!!"IJrrVeH'(,`"It@WRs*t~> +JcDAB!rfVhq>^R!=43*.!TF4G!!"IJrrVeH'(,`"It@WRs*t~> +JcDGD!r]5Vq>^R"?It)7!);YW!7.eI!qhHdli7#SJcCH(J,~> +JcDGD!r]5Vq>^R"?It)7!);YW!7.eI!qhHdli7#SJcCH(J,~> +JcDGD!r]5Vq>^R"?It)7!);YW!7.eI!qhHdli7#SJcCH(J,~> +JcDMF!rSlFq>^R$ADE"@!3bSd!-YRG!r%cnl2Uhor.4m&s*t~> +JcDMF!rSlFq>^R$ADE"@!3bSd!-YRG!r%cnl2Uhor.4m&s*t~> +JcDMF!rSlFq>^R$ADE"@!3bSd!-YRG!r%cnl2Uhor.4m&s*t~> +JcDSH!r8?3q>^R&C>jpI!VmJp!!+2@Z2Xj3'B]>qc@Q"Ms*t~> +JcDSH!r8?3q>^R&C>jpI!VmJp!!+2@Z2Xj3'B]>qc@Q"Ms*t~> +JcDSH!r8?3q>^R&C>jpI!VmJp!!+2@Z2Xj3'B]>qc@Q"Ms*t~> +JcDYJ!qqj"q>^R(ETMiQ!,q'$!5l)A!0u[H!0i'7LAuc~> +JcDYJ!qqj"q>^R(ETMiQ!,q'$!5l)A!0u[H!0i'7LAuc~> +JcDYJ!qqj"q>^R(ETMiQ!,q'$!5l)A!0u[H!0i'7LAuc~> +JcD_L!qV^R+GNj\Y!7'd.!,Ae=!Ug?X!!$/Qs+^Q(~> +JcD_L!qV^R+GNj\Y!7'd.!,Ae=!Ug?X!!$/Qs+^Q(~> +JcD_L!qV^R+GNj\Y!7'd.!,Ae=!Ug?X!!$/Qs+^Q(~> +JcDeN!q1aTq>^R.II2Ucrr2sNkl:`"qm$/$>iu(e++aHHs*t~> +JcDeN!q1aTq>^R.II2Ucrr2sNkl:`"qm$/$>iu(e++aHHs*t~> +JcDeN!q1aTq>^R.II2Ucrr2sNkl:`"qm$/$>iu(e++aHHs*t~> +JcDkP!pY(Bq>^R1K^aQmr;QbWkPtUmZ2XgDAJcCN*J,~> +JcDkP!pY(Bq>^R1K^aQmr;QbWkPtUmZ2XgDAJcCN*J,~> +JcDkP!pY(Bq>^R1K^aQmr;QbWkPtUmZ2XgDAJcCN*J,~> +JcDqR!p+D0q>^R5MXuE!qYpT["mH!e?a9V3rZgS+!3(PLL];l~> +JcDqR!p+D0q>^R5MXuE!qYpT["mH!e?a9V3rZgS+!3(PLL];l~> +JcDqR!p+D0q>^R5MXuE!qYpT["mH!e?a9V3rZgS+!3(PLL];l~> +JcE"T!oI\tq>^R9OS48*p\t4fkl:_opTa_uL$&F9D1V_Bs*t~> +JcE"T!oI\tq>^R9OS48*p\t4fkl:_opTa_uL$&F9D1V_Bs*t~> +JcE"T!oI\tq>^R9OS48*p\t4fkl:_opTa_uL$&F9D1V_Bs*t~> +JcE(V!ngrbq>^R=QhZ.3p&>#okPtUaZ2Xjc"6]^b-\;;Qs*t~> +JcE(V!ngrbq>^R=QhZ.3p&>#okPtUaZ2Xjc"6]^b-\;;Qs*t~> +JcE(V!ngrbq>^R=QhZ.3p&>#okPtUaZ2Xjc"6]^b-\;;Qs*t~> +JcE.X!n(0Qq>^RBSbdp;oD\je'BoJs;m?9%9BQ9ThLY]_s*t~> +JcE.X!n(0Qq>^RBSbdp;oD\je'BoJs;m?9%9BQ9ThLY]_s*t~> +JcE.X!n(0Qq>^RBSbdp;oD\je'BoJs;m?9%9BQ9ThLY]_s*t~> +JcE4Z!m4:>q>^RGU\fWBnG`K*kl:_inZi)oXlfZaQ%Asks*t~> +JcE4Z!m4:>q>^RGU\fWBnG`K*kl:_inZi)oXlfZaQ%Asks*t~> +JcE4Z!m4:>q>^RGU\fWBnG`K*kl:_inZi)oXlfZaQ%Asks*t~> +JcE:\!Q%A&!!4dQrIP":rrC:,!!&[srrMs3kPtTWJcCQ+J,~> +JcE:\!Q%A&!!4dQrIP":rrC:,!!&[srrMs3kPtTWJcCQ+J,~> +JcE:\!Q%A&!!4dQrIP":rrC:,!!&[srrMs3kPtTWJcCQ+J,~> +JcE@^!P1Jj!!5!]rdk+8rr=V7!!#Tprr@0)!!*K&JcCT,J,~> +JcE@^!P1Jj!!5!]rdk+8rr=V7!!#Tprr@0)!!*K&JcCT,J,~> +JcE@^!P1Jj!!5!]rdk+8rr=V7!!#Tprr@0)!!*K&JcCT,J,~> +JcEIa!rfG_q#CFV[XnJBrrA#B!!*8jZ2XgTk5YLoJcCT,J,~> +JcEIa!rfG_q#CFV[XnJBrrA#B!!*8jZ2XgTk5YLoJcCT,J,~> +JcEIa!rfG_q#CFV[XnJBrrA#B!!*8jZ2XgTk5YLoJcCT,J,~> +JcEOc!rT#Mq#CF\]n-4GrrM9ckl:^SYl=\akPtU(JcCT,J,~> +JcEOc!rT#Mq#CF\]n-4GrrM9ckl:^SYl=\akPtU(JcCT,J,~> +JcEOc!rT#Mq#CF\]n-4GrrM9ckl:^SYl=\akPtU(JcCT,J,~> +JcEUe!rAQ;q#CFc_h%jJrr>^V!!#QorrASQ!!"L"s,$c+~> +JcEUe!rAQ;q#CFc_h%jJrr>^V!!#QorrASQ!!"L"s,$c+~> +JcEUe!rAQ;q#CFc_h%jJrr>^V!!#QorrASQ!!"L"s,$c+~> +JcE[g!r/-+q>^Qt:!%tdiVrnYkl:_fm'6Qko*jg_!9&M/MZ82~> +JcE[g!r/-+q>^Qt:!%tdiVrnYkl:_fm'6Qko*jg_!9&M/MZ82~> +JcE[g!r/-+q>^Qt:!%tdiVrnYkl:_fm'6Qko*jg_!9&M/MZ82~> +JcEai!r7Z_q>^Qu;pU$phu<`P''TArS?W"nA* +JcEai!r7Z_q>^Qu;pU$phu<`P''TArS?W"nA* +JcEai!r7Z_q>^Qu;pU$phu<`P''TArS?W"nA* +JcEgk!pkCMq>^R!>1A-'h#@@ikl:]RYl=^BkPtTZJcCW-J,~> +JcEgk!pkCMq>^R!>1A-'h#@@ikl:]RYl=^BkPtTZJcCW-J,~> +JcEgk!pkCMq>^R!>1A-'h#@@ikl:]RYl=^BkPtTZJcCW-J,~> +JcEmm!oe,+q>^R#@+g,2gA_/qkl:_fm'-Ki.Hpg5%JbSTMuS;~> +JcEmm!oe,+q>^R#@+g,2gA_/qkl:_fm'-Ki.Hpg5%JbSTMuS;~> +JcEmm!oe,+q>^R#@+g,2gA_/qkl:_fm'-Ki.Hpg5%JbSTMuS;~> +JcEso!nL`_q>^R$B&8+=fDbh#kl:^QYl=]^kPtUsJcCZ.J,~> +JcEso!nL`_q>^R$B&8+=fDbh#kl:^QYl=]^kPtUsJcCZ.J,~> +JcEso!nL`_q>^R$B&8+=fDbh#kl:^QYl=]^kPtUsJcCZ.J,~> +JcF$q!m"1>q>^R'D;p-Hec,W,kl:]PYl=ag"mH!eG(K[Os*t~> +JcF$q!m"1>q>^R'D;p-Hec,W,kl:]PYl=ag"mH!eG(K[Os*t~> +JcF$q!m"1>q>^R'D;p-Hec,W,kl:]PYl=ag"mH!eG(K[Os*t~> +JcF*s!OtGk!!3OLkCNZ^rrM6al2Uhfl`gBh;X"/]/qO%\s*t~> +JcF*s!OtGk!!3OLkCNZ^rrM6al2Uhfl`gBh;X"/]/qO%\s*t~> +JcF*s!OtGk!!3OLkCNZ^rrM6al2Uhfl`gBh;X"/]/qO%\s*t~> +JcF4!!rT#Qq#CI+H0Tt\d/O):kl:^PYl=^1kl:_bjFR>is*t~> +JcF4!!rT#Qq#CI+H0Tt\d/O):kl:^PYl=^1kl:_bjFR>is*t~> +JcF4!!rT#Qq#CI+H0Tt\d/O):kl:^PYl=^1kl:_bjFR>is*t~> +JcF:#!r/0/q#CI.JF8!gcMmm>kl:]OYl=b%)sI>&S:U^!s*t~> +JcF:#!r/0/q#CI.JF8!gcMmm>kl:]OYl=b%)sI>&S:U^!s*t~> +JcF:#!r/0/q#CI.JF8!gcMmm>kl:]OYl=b%)sI>&S:U^!s*t~> +JcF@%!qD-cq#CI2L@Kipbl7_8$L.Tl"R<5k!.3r1!*"OLN;nD~> +JcF@%!qD-cq#CI2L@Kipbl7_8$L.Tl"R<5k!.3r1!*"OLN;nD~> +JcF@%!qD-cq#CI2L@Kipbl7_8$L.Tl"R<5k!.3r1!*"OLN;nD~> +JcFF'!pP"Bq#CI6N:_]$ao;?Ckl:^OYl=aZ!U9Xc%JPGRNW4M~> +JcFF'!pP"Bq#CI6N:_]$ao;?Ckl:^OYl=aZ!U9Xc%JPGRNW4M~> +JcFF'!pP"Bq#CI6N:_]$ao;?Ckl:^OYl=aZ!U9Xc%JPGRNW4M~> +JcFL)!o@Yuq#CI:PP0S-a8Z.Fkl:]NYQ"Sgkl:^fJcC`0J,~> +JcFL)!o@Yuq#CI:PP0S-a8Z.Fkl:]NYQ"Sgkl:^fJcC`0J,~> +JcFL)!o@Yuq#CI:PP0S-a8Z.Fkl:]NYQ"Sgkl:^fJcC`0J,~> +JcFR+!n(9Uq#CI>RJDF6`W#u7'C#Pu"R3/j!2SiZ!*k*TNW4M~> +JcFR+!n(9Uq#CI>RJDF6`W#u7'C#Pu"R3/j!2SiZ!*k*TNW4M~> +JcFR+!n(9Uq#CI>RJDF6`W#u7'C#Pu"R3/j!2SiZ!*k*TNW4M~> +JcFX-!lIY3q#CICTDF-=_Z'UKkl:^MYl=at&F'5r&,:_UNrOV~> +JcFX-!lIY3q#CICTDF-=_Z'UKkl:^MYl=at&F'5r&,:_UNrOV~> +JcFX-!lIY3q#CICTDF-=_Z'UKkl:^MYl=at&F'5r&,:_UNrOV~> +JcFa0!rfMgp](@GVYl#F_#FDOkl:]MYQ"T;kl:^hJcCc1J,~> +JcFa0!rfMgp](@GVYl#F_#FDOkl:]MYQ"T;kl:^hJcCc1J,~> +JcFa0!rfMgp](@GVYl#F_#FDOkl:]MYQ"T;kl:^hJcCc1J,~> +JcFg2!rJcFp](@JXT!eN^Ae64*pN_+"6cuh!6j[-!+(6VNrOV~> +JcFg2!rJcFp](@JXT!eN^Ae64*pN_+"6cuh!6j[-!+(6VNrOV~> +JcFg2!rJcFp](@JXT!eN^Ae64*pN_+"6cuh!6j[-!+(6VNrOV~> +JcFm4!qqj%p](@X[JkaW]DhkTkl:^LYQ"SVl2Uhrq18R,s*t~> +JcFm4!qqj%p](@X[JkaW]DhkTkl:^LYQ"SVl2Uhrq18R,s*t~> +JcFm4!qqj%p](@X[JkaW]DhkTkl:^LYQ"SVl2Uhrq18R,s*t~> +JcFs6!q1gYq#CHs8]$&Y\GlQVkl:]LYQ"Tdkl:^jJcCf2J,~> +JcFs6!q1gYq#CHs8]$&Y\GlQVkl:]LYQ"Tdkl:^jJcCf2J,~> +JcFs6!q1gYq#CHs8]$&Y\GlQVkl:]LYQ"Tdkl:^jJcCf2J,~> +JcG$8!p=V6q#CHt +JcG$8!p=V6q#CHt +JcG$8!p=V6q#CHt +JcG*:!n(BYq#CI#@b?83Zi:#[kl:^KYQ"T*l2Uhsq18R-s*t~> +JcG*:!n(BYq#CI#@b?83Zi:#[kl:^KYQ"T*l2Uhsq18R-s*t~> +JcG*:!n(BYq#CI#@b?83Zi:#[kl:^KYQ"T*l2Uhsq18R-s*t~> +JcG0 +JcG0 +JcG0 +JcG9?!rJoPp](@,Hg61^Y5\J`l2UhekHOserZCD*!+CHYOT0h~> +JcG9?!rJoPp](@,Hg61^Y5\J`l2UhekHOserZCD*!+CHYOT0h~> +JcG9?!rJoPp](@,Hg61^Y5\J`l2UhekHOserZCD*!+CHYOT0h~> +JcG?A!q_X!p](@3M"-&rXT&9ckl:^JYQ"TXl2UhtqLS[/s*t~> +JcG?A!q_X!p](@3M"-&rXT&9ckl:^JYQ"TXl2UhtqLS[/s*t~> +JcG?A!q_X!p](@3M"-&rXT&9ckl:^JYQ"TXl2UhtqLS[/s*t~> +JcGEC!pP+Hp](@ +JcGEC!pP+Hp](@ +JcGEC!pP+Hp](@ +JcGKE!nq8np](@EU&'??VuH`hl2Uhdk-+db=R#kd@tFZBs*t~> +JcGKE!nq8np](@EU&'??VuH`hl2Uhdk-+db=R#kd@tFZBs*t~> +JcGKE!nq8np](@EU&'??VuH`hl2Uhdk-+db=R#kd@tFZBs*t~> +JcGQG!le+>p](@PXo3hNV>gOlkl:^IYQ"U +JcGQG!le+>p](@PXo3hNV>gOlkl:^IYQ"U +JcGQG!le+>p](@PXo3hNV>gOlkl:^IYQ"U +JcGZJ!r]AdpAb4[\q0mUrrMa"l2UfIYQ"Y&.d@!6\UjdDs*t~> +JcGZJ!r]AdpAb4[\q0mUrrMa"l2UfIYQ"Y&.d@!6\UjdDs*t~> +JcGZJ!r]AdpAb4[\q0mUrrMa"l2UfIYQ"Y&.d@!6\UjdDs*t~> +JcG`L!r/96p](?r9u_baTDnmpl2Uhdjfe[aP3N#IAV'lEs*t~> +JcG`L!r/96p](?r9u_baTDnmpl2Uhdjfe[aP3N#IAV'lEs*t~> +JcG`L!r/96p](?r9u_baTDnmpl2Uhdjfe[aP3N#IAV'lEs*t~> +Jc>iPmY2VS!!3:,dXhFhrrBFj!!&1crrMQqlMpquqgnd2s*t~> +Jc>iPmY2VS!!3:,dXhFhrrBFj!!&1crrMQqlMpquqgnd2s*t~> +Jc>iPmY2VS!!3:,dXhFhrrBFj!!&1crrMQqlMpquqgnd2s*t~> +K)Yo2E=M[C!XEAnJcD5>!W!Mq!!#-arr?Qo!!'3Rs-*J5~> +K)Yo2E=M[C!XEAnJcD5>!W!Mq!!#-arr?Qo!!'3Rs-*J5~> +K)Yo2E=M[C!XEAnJcD5>!W!Mq!!#-arr?Qo!!'3Rs-*J5~> +K`;,">6Xd%!Xs/3JcD,;!,:]u!crrC7-!!#iHs-*J5~> +K`;,">6Xd%!Xs/3JcD,;!,:]u!crrC7-!!#iHs-*J5~> +K`;,">6Xd%!Xs/3JcD,;!,:]u!crrC7-!!#iHs-*J5~> +LAq=e7KN8a!Y^+OJcD&9!5[n"!0OGa!&X!A!=%k@s-3P6~> +LAq=e7KN8a!Y^+OJcD&9!5[n"!0OGa!&X!A!=%k@s-3P6~> +LAq=e7KN8a!Y^+OJcD&9!5[n"!0OGa!&X!A!=%k@s-3P6~> +M>mYSV(q]E!ZI$hJcCu7!W +M>mYSV(q]E!ZI$hJcCu7!W +M>mYSV(q]E!ZI$hJcCu7!W +MuNkMO<=2s![=-/JcCl4!,Cd!! +MuNkMO<=2s![=-/JcCl4!,Cd!! +MuNkMO<=2s![=-/JcCl4!,Cd!! +NW0(MGR4$D!]R7[JcCf2!5Iau!0=;_!,_!$!7cZ#Q2c@~> +NW0(MGR4$D!]R7[JcCf2!5Iau!0=;_!,_!$!7cZ#Q2c@~> +NW0(MGR4$D!]R7[JcCf2!5Iau!0=;_!,_!$!7cZ#Q2c@~> +O8f:-?3^0)!Wbp/JcC]/!W3c!!!#'_rrLXNlMpp.JcD#8J,~> +O8f:-?3^0)!Wbp/JcC]/!W3c!!!#'_rrLXNlMpp.JcD#8J,~> +O8f:-?3^0)!Wbp/JcC]/!W3c!!!#'_rrLXNlMpp.JcD#8J,~> +P5bU^ZU4Bd!X2lXJcCT,!,1Wt!7K!!+&:JcD&9J,~> +P5bU^ZU4Bd!X2lXJcCT,!,1Wt!7K!!+&:JcD&9J,~> +P5bU^ZU4Bd!X2lXJcCT,!,1Wt!7K!!+&:JcD&9J,~> +PlCgXQRDM-!Xs#+JcCN*!57Us!045^!2f#]!4d[\QN)I~> +PlCgXQRDM-!Xs#+JcCN*!57Us!045^!2f#]!4d[\QN)I~> +PlCgXQRDM-!Xs#+JcCN*!57Us!045^!2f#]!4d[\QN)I~> +QN%$KHP?,R!Yp=SJcCH(!W*Vs!!#$^rrMp2lMpogJcD&9J,~> +QN%$KHP?,R!Yp=SJcCH(!W*Vs!!#$^rrMp2lMpogJcD&9J,~> +QN%$KHP?,R!Yp=SJcCH(!W*Vs!!#$^rrMp2lMpogJcD&9J,~> +R/[67?O$6)![ +R/[67?O$6)![ +R/[67?O$6)![ +S,WQhZpXNe!]$_PJcC<$!WTaq!!&"]rrLsXlMppTJcD):J,~> +S,WQhZpXNe!]$_PJcC<$!WTaq!!&"]rrLsXlMppTJcD):J,~> +S,WQhZpXNe!]$_PJcC<$!WTaq!!&"]rrLsXlMppTJcD):J,~> +Sc8cbQmhY.!CXMMs+14KrrN!2l2UfDXoAAmlMpoKJcD):J,~> +Sc8cbQmhY.!CXMMs+14KrrN!2l2UfDXoAAmlMpoKJcD):J,~> +Sc8cbQmhY.!CXMMs+14KrrN!2l2UfDXoAAmlMpoKJcD):J,~> +TDnuTHkc;T!WuNKJcC<$qYpP+l2Uhci3*([Z0MAj!Sr>,R/_[~> +TDnuTHkc;T!WuNKJcC<$qYpP+l2Uhci3*([Z0MAj!Sr>,R/_[~> +TDnuTHkc;T!WuNKJcC<$qYpP+l2Uhci3*([Z0MAj!Sr>,R/_[~> +U&P2@?jHE+!XWVsJcC<$q#:?(kl:^BY5\P#*U<\*J:[`fs*t~> +U&P2@?jHE+!XWVsJcC<$q#:?(kl:^BY5\P#*U<\*J:[`fs*t~> +U&P2@?jHE+!XWVsJcC<$q#:?(kl:^BY5\P#*U<\*J:[`fs*t~> +V#LPr[6juh!!3d\l%/kcs7ZHnq@i,o!&q%[!.sM:!@.Sps-`n;~> +V#LPr[6juh!!3d\l%/kcs7ZHnq@i,o!&q%[!.sM:!@.Sps-`n;~> +V#LPr[6juh!!3d\l%/kcs7ZHnq@i,o!&q%[!.sM:!@.Sps-`n;~> +VZ-_kR47h0!ZmEoJcC<$oD\f"l2Uhchlct[jTXrM!5a +VZ-_kR47h0!ZmEoJcC<$oD\f"l2Uhchlct[jTXrM!5a +VZ-_kR47h0!ZmEoJcC<$oD\f"l2Uhchlct[jTXrM!5a +W;cq^I2)AT!\L/CJcC<$nc&Ttkl:^AXoAB"lMpooJcD/ +W;cq^I2)AT!\L/CJcC<$nc&Ttkl:^AXoAB"lMpooJcD/ +W;cq^I2)AT!\L/CJcC<$nc&Ttkl:^AXoAB"lMpooJcD/ +WrE.J?jHB*!^=!jJcC<$n,EFa&aB>r26HlY]B]Ft$h/`IRf@m~> +WrE.J?jHB*!^=!jJcC<$n,EFa&aB>r26HlY]B]Ft$h/`IRf@m~> +WrE.J?jHB*!^=!jJcC<$n,EFa&aB>r26HlY]B]Ft$h/`IRf@m~> +XoAM&[R:/j!!34!a+=8As6K[b@-R^m!T(!Z!WFG3!!&:8s-it<~> +XoAM&[R:/j!!34!a+=8As6K[b@-R^m!T(!Z!WFG3!!&:8s-it<~> +XoAM&[R:/j!!34!a+=8As6K[b@-R^m!T(!Z!WFG3!!&:8s-it<~> +YQ"[tRORq1!XE8gJcC<$l2Lajkl:^@XoAB[lMpo +YQ"[tRORq1!XE8gJcC<$l2Lajkl:^@XoAB[lMpo +YQ"[tRORq1!XE8gJcC<$l2Lajkl:^@XoAB[lMpo +Z2XmnE!Q(:!YTkCJcC<$kPkSY&F'5q1p-cYlj2nW!69ZjS,\!~> +Z2XmnE!Q(:!YTkCJcC<$kPkSY&F'5q1p-cYlj2nW!69ZjS,\!~> +Z2XmnE!Q(:!YTkCJcC<$kPkSY&F'5q1p-cYlj2nW!69ZjS,\!~> +Zi:*H=9\Bu![X-)cMmq+rdk*;rr?Bj!!*,VXoAB-lMponJcD5>J,~> +Zi:*H=9\Bu![X-)cMmq+rdk*;rr?Bj!!*,VXoAB-lMponJcD5>J,~> +Zi:*H=9\Bu![X-)cMmq+rdk*;rr?Bj!!*,VXoAB-lMponJcD5>J,~> +[f6F)U,DTD!^3acc2RjM'XrYnRK!8mkl:^>XoAC@lMpqmmt(M/s*t~> +[f6F)U,DTD!^3acc2RjM'XrYnRK!8mkl:^>XoAC@lMpqmmt(M/s*t~> +[f6F)U,DTD!^3acc2RjM'XrYnRK!8mkl:^>XoAC@lMpqmmt(M/s*t~> +\GlWmIi.kZ!X)THbl7h?C]ON>JcD/~> +\GlWmIi.kZ!X)THbl7h?C]ON>JcD/~> +\GlWmIi.kZ!X)THbl7h?C]ON>JcD/~> +])MiR>6ad$!Y05.bPqUo0E(qP$M&cJRK!7lkl:_=XoABflMpo:JcD8?J,~> +])MiR>6ad$!Y05.bPqUo0E(qP$M&cJRK!7lkl:_=XoABflMpo:JcD8?J,~> +])MiR>6ad$!Y05.bPqUo0E(qP$M&cJRK!7lkl:_=XoABflMpo:JcD8?J,~> +^&J00V)\,J!Zm +^&J00V)\,J!Zm +^&J00V)\,J!Zm +^]+B!JJn+\!]6eOb5VM2XT&96lMpolJcD;@J,~> +^]+B!JJn+\!]6eOb5VM2XT&96lMpolJcD;@J,~> +^]+B!JJn+\!]6eOb5VM2XT&96lMpolJcD;@J,~> +_>aS[?3g0(!Wl-4aSu:Z+8Gm;!onk3RK!7jkl:_ +_>aS[?3g0(!Wl-4aSu:Z+8Gm;!onk3RK!7jkl:_ +_>aS[?3g0(!Wl-4aSu:Z+8Gm;!onk3RK!7jkl:_ +`;]o8W&jSO!X`VoaSu>>JctfJ!/Q4+RK!8ikl:^AJ,~> +`;]o8W&jSO!X`VoaSu>>JctfJ!/Q4+RK!8ikl:^AJ,~> +`;]o8W&jSO!X`VoaSu>>JctfJ!/Q4+RK!8ikl:^AJ,~> +`r?,*KH'Ra!Z-ISa8Z2#5P5!V.tR_grrMg%l2Uf=XT&9tlMpo8JcD>AJ,~> +`r?,*KH'Ra!Z-ISa8Z2#5P5!V.tR_grrMg%l2Uf=XT&9tlMpo8JcD>AJ,~> +`r?,*KH'Ra!Z-ISa8Z2#5P5!V.tR_grrMg%l2Uf=XT&9tlMpo8JcD>AJ,~> +aSu=e@0lN+!\9i:`r?(D'Cu2(c%5n_rr?0c!!(`TrrMp4lMpq&JcDABJ,~> +aSu=e@0lN+!\9i:`r?(D'Cu2(c%5n_rr?0c!!(`TrrMp4lMpq&JcDABJ,~> +aSu=e@0lN+!\9i:`r?(D'Cu2(c%5n_rr?0c!!(`TrrMp4lMpq&JcDABJ,~> +bPqY@X$-+U!s(j"rl4s>pM'a"!!$ths-`leXQ]]bKrk:SI-Ub4?%N$Js*t~> +bPqY@X$-+U!s(j"rl4s>pM'a"!!$ths-`leXQ]]bKrk:SI-Ub4?%N$Js*t~> +bPqY@X$-+U!s(j"rl4s>pM'a"!!$ths-`leXQ]]bKrk:SI-Ub4?%N$Js*t~> +c2Rk3LE6$f!X<#Z`;]kf/ar`@(]/d`Rf +c2Rk3LE6$f!X<#Z`;]kf/ar`@(]/d`Rf +c2Rk3LE6$f!X<#Z`;]kf/ar`@(]/d`Rf +ci4'n@gVf.!YTe?_uBb)$LRlo[XnIHrr?*a!!(]Rrr>p^!!&(2s.KCB~> +ci4'n@gVf.!YTe?_uBb)$LRlo[XnIHrr?*a!!(]Rrr>p^!!&(2s.KCB~> +ci4'n@gVf.!YTe?_uBb)$LRlo[XnIHrr?*a!!(]Rrr>p^!!&(2s.KCB~> +df0CHX[)LY![O!%_uBc*;sXJa=b6U@rrB(`!!%\RrrB^t!!+>DJcDGDJ,~> +df0CHX[)LY![O!%_uBc*;sXJa=b6U@rrB(`!!%\RrrB^t!!+>DJcDGDJ,~> +df0CHX[)LY![O!%_uBc*;sXJa=b6U@rrB(`!!%\RrrB^t!!+>DJcDGDJ,~> +eGfUAMAYsc!^!R__Z'YS*pWe,$Lr]IRf +eGfUAMAYsc!^!R__Z'YS*pWe,$Lr]IRf +eGfUAMAYsc!^!R__Z'YS*pWe,$Lr]IRf +ec,Zp-M7??"*!D=rrW+K"6fdcSq6p0rr?$_!!(ZQrrA2I!!#cFs.TIC~> +ec,Zp-M7??"*!D=rrW+K"6fdcSq6p0rr?$_!!(ZQrrA2I!!#cFs.TIC~> +ec,Zp-M7??"*!D=rrW+K"6fdcSq6p0rr?$_!!(ZQrrA2I!!#cFs.TIC~> +fDbpONX,7X!Yp(C_#FGp53DnG6%T'(rrB"_!!-![XT&=j%.!rp"5\V/UAo`~> +fDbpONX,7X!Yp(C_#FGp53DnG6%T'(rrB"_!!-![XT&=j%.!rp"5\V/UAo`~> +fDbpONX,7X!Yp(C_#FGp53DnG6%T'(rrB"_!!-![XT&=j%.!rp"5\V/UAo`~> +f`)!:8bN,c0V8$Qrr?is!!*/\JcD2=!V6Wb!!,*uWW)s2lMpp,JcDJEJ,~> +f`)!:8bN,c0V8$Qrr?is!!*/\JcD2=!V6Wb!!,*uWW)s2lMpp,JcDJEJ,~> +f`)!:8bN,c0V8$Qrr?is!!*/\JcD2=!V6Wb!!,*uWW)s2lMpp,JcDJEJ,~> +g&D)a)#+(4"B<4LrrLdSjo>C:JcD/ +g&D)a)#+(4"B<4LrrLdSjo>C:JcD/ +g&D)a)#+(4"B<4LrrLdSjo>C:JcD/ +g]%?OFoqI>!Y]e:\GlP+jo>B2JcD/gNXlMppSJcDMFJ,~> +g]%?OFoqI>!Y]e:\GlP+jo>B2JcD/gNXlMppSJcDMFJ,~> +g]%?OFoqI>!Y]e:\GlP+jo>B2JcD/gNXlMppSJcDMFJ,~> +h#@E12Yd=S/Xl@@rrC(#!!(5os-irgnd+jf!XNu +h#@E12Yd=S/Xl@@rrC(#!!(5os-irgnd+jf!XNu +h#@E12Yd=S/Xl@@rrC(#!!(5os-irgnd+jf!XNu +h>[MO%f65."&HW0Zi:"fjo>C"JcD/ +h>[MO%f65."&HW0Zi:"fjo>C"JcD/ +h>[MO%f65."&HW0Zi:"fjo>C"JcD/ +hu<`J?Ma^(&9H^4rrB=d!!*o5JcD2=!2T>h!C=r$rr@H4!!$#Ms.o[F~> +hu<`J?Ma^(&9H^4rrB=d!!*o5JcD2=!2T>h!C=r$rr@H4!!$#Ms.o[F~> +hu<`J?Ma^(&9H^4rrB=d!!*o5JcD2=!2T>h!C=r$rr@H4!!$#Ms.o[F~> +i;Wi%-2[`E.@0S.rrN'Ijo>CgJcD2=!V$Ek!!+RVSGrWL"RH*h"QY.6V>l&~> +i;Wi%-2[`E.@0S.rrN'Ijo>CgJcD2=!V$Ek!!+RVSGrWL"RH*h"QY.6V>l&~> +i;Wi%-2[`E.@0S.rrN'Ijo>CgJcD2=!V$Ek!!+RVSGrWL"RH*h"QY.6V>l&~> +ir9)ZN!B7]!s2-+ri?&!SE9eO=FpL?rr>gl!!4"*r0mWc; +ir9)ZN!B7]!s2-+ri?&!SE9eO=FpL?rr>gl!!4"*r0mWc; +ir9)ZN!B7]!s2-+ri?&!SE9eO=FpL?rr>gl!!4"*r0mWc; +j8T/D8,`Ji%W:"!rrMm4k5YMhnU^_/rrAem!!3OXo9fOX]B]Ft(ANI\VZ2/~> +j8T/D8,`Ji%W:"!rrMm4k5YMhnU^_/rrAem!!3OXo9fOX]B]Ft(ANI\VZ2/~> +j8T/D8,`Ji%W:"!rrMm4k5YMhnU^_/rrAem!!3OXo9fOX]B]Ft(ANI\VZ2/~> +jSoFo(B=F]P4>CK!/Tb;!1e]@Rf +jSoFo(B=F]P4>CK!/Tb;!1e]@Rf +jSoFo(B=F]P4>CK!/Tb;!1e]@Rf +k5PY]F9)D4[Jcm#!UgK\!!#98s-`lfK&2^k!0QRI!&fE.VZ2/~> +k5PY]F9)D4[Jcm#!UgK\!!#98s-`lfK&2^k!0QRI!&fE.VZ2/~> +k5PY]F9)D4[Jcm#!UgK\!!#98s-`lfK&2^k!0QRI!&fE.VZ2/~> +kPk\>1^n-Nm/I(b[Jp5Jk5YMaiIV#[s/Q)"n-eO^!6KflVuM8~> +kPk\>1^n-Nm/I(b[Jp5Jk5YMaiIV#[s/Q)"n-eO^!6KflVuM8~> +kPk\>1^n-Nm/I(b[Jp5Jk5YMaiIV#[s/Q)"n-eO^!6KflVuM8~> +kl1aZ09,GerrVIYUUC+&iW\KF!/6"(JcD_L!+tNs!*t0UVuM8~> +kl1aZ09,GerrVIYUUC+&iW\KF!/6"(JcD_L!+tNs!*t0UVuM8~> +kl1aZ09,GerrVIYUUC+&iW\KF!/6"(JcD_L!+tNs!*t0UVuM8~> +lMgtWT<\=[rrfqO!#b=7rr?Bg!!"I!s+13LrrCF3!!*>gJcD\KJ,~> +lMgtWT<\=[rrfqO!#b=7rr?Bg!!"I!s+13LrrCF3!!*>gJcD\KJ,~> +lMgtWT<\=[rrfqO!#b=7rr?Bg!!"I!s+13LrrCF3!!*>gJcD\KJ,~> +lMgkWlMgq^GQRjE!-,FH!R_#3!!(2ns+13Lrr>1I!!%S$s/>sJ~> +lMgkWlMgq^GQRjE!-,FH!R_#3!!(2ns+13Lrr>1I!!%S$s/>sJ~> +lMgkWlMgq^GQRjE!-,FH!R_#3!!(2ns+13Lrr>1I!!%S$s/>sJ~> +e,KI)2uEXV"OjdY!(l>R!,dAfKDtrKW;cjplMpr%pjrIEs*t~> +e,KI)2uEXV"OjdY!(l>R!,dAfKDtrKW;cjplMpr%pjrIEs*t~> +e,KI)2uEXV"OjdY!(l>R!,dAfKDtrKW;cjplMpr%pjrIEs*t~> +eGfQG%f-/+5lS4l!5@Ur!>bN_s+UIk`ZP9g'-8PX4\/LWBQANVP+8GT]Z/@Sk4/>brrMp3lMppW +JcD_LJ,~> +eGfQG%f-/+5lS4l!5@Ur!>bN_s+UIk`ZP9g'-8PX4\/LWBQANVP+8GT]Z/@Sk4/>brrMp3lMppW +JcD_LJ,~> +eGfQG%f-/+5lS4l!5@Ur!>bN_s+UIk`ZP9g'-8PX4\/LWBQANVP+8GT]Z/@Sk4/>brrMp3lMppW +JcD_LJ,~> +f)GdB@.sX$X0qs-2!4i=Z[r.3rrW.P"Qoap$lgi_:LA'lP+o;$e`HMNrr@E3!!"['s/H$K~> +f)GdB@.sX$X0qs-2!4i=Z[r.3rrW.P"Qoap$lgi_:LA'lP+o;$e`HMNrr@E3!!"['s/H$K~> +f)GdB@.sX$X0qs-2!4i=Z[r.3rrW.P"Qoap$lgi_:LA'lP+o;$e`HMNrr@E3!!"['s/H$K~> +fDblr-M@E?./^OR!3,,]!*4[NM#RM:6.Q#F"W8aM93Z4\NhEf)jo4*9!TF7J!!'Z_s/Q*L~> +fDblr-M@E?./^OR!3,,]!*4[NM#RM:6.Q#F"W8aM93Z4\NhEf)jo4*9!TF7J!!'Z_s/Q*L~> +fDblr-M@E?./^OR!3,,]!*4[NM#RM:6.Q#F"W8aM93Z4\NhEf)jo4*9!TF7J!!'Z_s/Q*L~> +g&D-QNX#+U!2$_"!W*f!!!*DqJcCW-!O3?[!"&cD01TAnO/KbEnE0`N; +g&D-QNX#+U!2$_"!W*f!!!*DqJcCW-!O3?[!"&cD01TAnO/KbEnE0`N; +g&D-QNX#+U!2$_"!W*f!!!*DqJcCW-!O3?[!"&cD01TAnO/KbEnE0`N; +gA_3<8b)i^+SiJG!.3l/!1\W?N;itRC]V0K$4.k9;/(TLZ-))%nc&U$lMpqefn'1(s*t~> +gA_3<8b)i^+SiJG!.3l/!1\W?N;itRC]V0K$4.k9;/(TLZ-))%nc&U$lMpqefn'1(s*t~> +gA_3<8b)i^+SiJG!.3l/!1\W?N;itRC]V0K$4.k9;/(TLZ-))%nc&U$lMpqefn'1(s*t~> +g]%;c)"7M*Q+$\nh?)m@!'c&7NW0%10!G<]!ZF.*I%A"/qt^6mr[7"3!,@)bX8d\~> +g]%;c)"7M*Q+$\nh?)m@!'c&7NW0%10!G<]!ZF.*I%A"/qt^6mr[7"3!,@)bX8d\~> +g]%;c)"7M*Q+$\nh?)m@!'c&7NW0%10!G<]!ZF.*I%A"/qt^6mr[7"3!,@)bX8d\~> +h>[QQFoq+4!>kIOP!!*,XJcCf2!La@n!"&iP6=PSC`9%!uOm;uJ$giNFXT*e~> +h>[QQFoq+4!>kIOP!!*,XJcCf2!La@n!"&iP6=PSC`9%!uOm;uJ$giNFXT*e~> +h>[QQFoq+4!>kIOP!!*,XJcCf2!La@n!"&iP6=PSC`9%!uOm;uJ$giNFXT*e~> +hZ!W32=(;CQF?enX60H_KRs/crrMRfSH&`t-q"7)!!%e*s/c6N~> +hZ!W32=(;CQF?enX60H_KRs/crrMRfSH&`t-q"7)!!%e*s/c6N~> +hZ!W32=(;CQF?enX60H_KRs/crrMRfSH&`t-q"7)!!%e*s/c6N~> +hu<_P%dO)q-iLOS!W!Vr!!"Bts-!B_`#jR2!?Cres/l +hu<_P%dO)q-iLOS!W!Vr!!"Bts-!B_`#jR2!?Cres/l +hu<_P%dO)q-iLOS!W!Vr!!"Bts-!B_`#jR2!?Cres/l +iVrrL?K_@h['ou7GNSr+aasJWrrW+M"G$OR!2Y8HXoEn~> +iVrrL?K_@h['ou7GNSr+aasJWrrW+M"G$OR!2Y8HXoEn~> +iVrrL?K_@h['ou7GNSr+aasJWrrW+M"G$OR!2Y8HXoEn~> +ir9&&-0G7.6am!qgB$L +ir9&&-0G7.6am!qgB$L +ir9&&-0G7.6am!qgB$L +jSo;\M[&;D!CL!!*i2JcD,;!O!/f!;lfs_h%ijs*t~> +jSo;\M[&;D!CL!!*i2JcD,;!O!/f!;lfs_h%ijs*t~> +jSo;\M[&;D!CL!!*i2JcD,;!O!/f!;lfs_h%ijs*t~> +jSo48irB'f[f6?*k5YLhJcD2=!VU8Z!;ZZq;M"kNs*t~> +jSo48irB'f[f6?*k5YLhJcD2=!VU8Z!;ZZq;M"kNs*t~> +jSo48irB'f[f6?*k5YLhJcD2=!VU8Z!;ZZq;M"kNs*t~> +jSo8L+QNM'#O&Ys!VdAm!!$/Qs.]Morn[MP!Rr]P!;QTq"5\V/YQ'+~> +jSo8L+QNM'#O&Ys!VdAm!!$/Qs.]Morn[MP!Rr]P!;QTq"5\V/YQ'+~> +jSo8L+QNM'#O&Ys!VdAm!!$/Qs.]Morn[MP!Rr]P!;QTq"5\V/YQ'+~> +j8T/!"QTO_I^]7VEp*K($M&cJV>gYkR@!dKrrJJnJH5EE!-!MhYQ'+~> +j8T/!"QTO_I^]7VEp*K($M&cJV>gYkR@!dKrrJJnJH5EE!-!MhYQ'+~> +j8T/!"QTO_I^]7VEp*K($M&cJV>gYkR@!dKrrJJnJH5EE!-!MhYQ'+~> +ir9"3j8]2rpUC/'f)b(8!24uDVuHk_INPBarrMOcJH5?C!=/+Fs02NR~> +ir9"3j8]2rpUC/'f)b(8!24uDVuHk_INPBarrMOcJH5?C!=/+Fs02NR~> +ir9"3j8]2rpUC/'f)b(8!24uDVuHk_INPBarrMOcJH5?C!=/+Fs02NR~> +ir9&X4lcSCS@8Ft4m2kG7=kK +ir9&X4lcSCS@8Ft4m2kG7=kK +ir9&X4lcSCS@8Ft4m2kG7=kK +iVrr7$0;-f/H3-Y!2J`X!<_J8s/l;*rjkW$!(cM)rt#,!k1nD*]sFT$IV2J<,7LUQ!B97os0DZT~> +iVrr7$0;-f/H3-Y!2J`X!<_J8s/l;*rjkW$!(cM)rt#,!k1nD*]sFT$IV2J<,7LUQ!B97os0DZT~> +iVrr7$0;-f/H3-Y!2J`X!<_J8s/l;*rjkW$!(cM)rt#,!k1nD*]sFT$IV2J<,7LUQ!B97os0DZT~> +i;We-j8]1l\,QL&&a02pNIh,5rs/=k/cYkPHi:b[$hW;rYaL,[O~> +i;We-j8]1l\,QL&&a02pNIh,5rs/=k/cYkPHi:b[$hW;rYaL,[O~> +i;We-j8]1l\,QL&&a02pNIh,5rs/=k/cYkPHi:b[$hW;rYaL,[O~> +i;WiP,38e)=18,/DWh'#14fJ1rrVP?)?'U:%^35=$2``+[@W.n?8)Ps!!+kFJcE+WJ,~> +i;WiP,38e)=18,/DWh'#14fJ1rrVP?)?'U:%^35=$2``+[@W.n?8)Ps!!+kFJcE+WJ,~> +i;WiP,38e)=18,/DWh'#14fJ1rrVP?)?'U:%^35=$2``+[@W.n?8)Ps!!+kFJcE+WJ,~> +hu<\_jT#;em^N2re)p]2eUdb-rrUkf$N0r*.G1U!#3a!uI9AE>_uKg)pjrIQs*t~> +hu<\_jT#;em^N2re)p]2eUdb-rrUkf$N0r*.G1U!#3a!uI9AE>_uKg)pjrIQs*t~> +hu<\_jT#;em^N2re)p]2eUdb-rrUkf$N0r*.G1U!#3a!uI9AE>_uKg)pjrIQs*t~> +hZ!RMjT#:G[f6=fkPtU/JcE1Y!l7Y6qu?arnt?!emE)2U?9/kE!!#fGs0_lW~> +hZ!RMjT#:G[f6=fkPtU/JcE1Y!l7Y6qu?arnt?!emE)2U?9/kE!!#fGs0_lW~> +hZ!RMjT#:G[f6=fkPtU/JcE1Y!l7Y6qu?arnt?!emE)2U?9/kE!!#fGs0_lW~> +hZ!W(!Tj@^1q*DaT'-.T+T?rl])Mj1OVmrq!X"5WR/[E]c)QM-4rXOM!!&UAs0hrX~> +hZ!W(!Tj@^1q*DaT'-.T+T?rl])Mj1OVmrq!X"5WR/[E]c)QM-4rXOM!!&UAs0hrX~> +hZ!W(!Tj@^1q*DaT'-.T+T?rl])Mj1OVmrq!X"5WR/[E]c)QM-4rXOM!!&UAs0hrX~> +h>[ILjT#;/\,QL'%Hmcl_L_a"rrVq],PhB@'=s8)"THZ0=Wl5p!=RP2s0r#Y~> +h>[ILjT#;/\,QL'%Hmcl_L_a"rrVq],PhB@'=s8)"THZ0=Wl5p!=RP2s0r#Y~> +h>[ILjT#;/\,QL'%Hmcl_L_a"rrVq],PhB@'=s8)"THZ0=Wl5p!=RP2s0r#Y~> +h>[JqjT#:#[f6>:kPtTqJcEIa!q:s^q#CFNhhh@9jf"\Gq'~> +h>[JqjT#:#[f6>:kPtTqJcEIa!q:s^q#CFNhhh@9jf"\Gq'~> +h>[JqjT#:#[f6>:kPtTqJcEIa!q:s^q#CFNhhh@9jf"\Gq'~> +h#@@@jo>Dsq7$A(]]]=r')7%X_>aT!Fq49I!FGJQrr_k`49=7 +h#@@@jo>Dsq7$A(]]]=r')7%X_>aT!Fq49I!FGJQrr_k`49=7 +h#@@@jo>Dsq7$A(]]]=r')7%X_>aT!Fq49I!FGJQrr_k`49=7 +h#@AejT#:`\,QL,)X%/$YCZ_krrUnc#P\9""dFT +h#@AejT#:`\,QL,)X%/$YCZ_krrUnc#P\9""dFT +h#@AejT#:`\,QL,)X%/$YCZ_krrUnc#P\9""dFT +g]%74jo>BU[f6>JkPtT]JcE^h!mFXHpAb43`6SAfrm6gU@s+@A\,QNf@g(ck!4%1U[Jta~> +g]%74jo>BU[f6>JkPtT]JcE^h!mFXHpAb43`6SAfrm6gU@s+@A\,QNf@g(ck!4%1U[Jta~> +g]%74jo>BU[f6>JkPtT]JcE^h!mFXHpAb43`6SAfrm6gU@s+@A\,QNf@g(ck!4%1U[Jta~> +g]%8Yjo>DbkI:Hkc0,-.#k*?EaSu:R7.pT^&q0&mrrhi!Hp\>>!!%YZrrL\%irB'GJcE.XJ,~> +g]%8Yjo>DbkI:Hkc0,-.#k*?EaSu:R7.pT^&q0&mrrhi!Hp\>>!!%YZrrL\%irB'GJcE.XJ,~> +g]%8Yjo>DbkI:Hkc0,-.#k*?EaSu:R7.pT^&q0&mrrhi!Hp\>>!!%YZrrL\%irB'GJcE.XJ,~> +g]% +g]% +g]% +gA_/Mjo>B1[f6>[kPtTJJcF!p!r/32pAb6s:qtHY"5]#"!qZHma0P^G`t%22!+1 +gA_/Mjo>B1[f6>[kPtTJJcF!p!r/32pAb6s:qtHY"5]#"!qZHma0P^G`t%22!+1 +gA_/Mjo>B1[f6>[kPtTJJcF!p!r/32pAb6s:qtHY"5]#"!qZHma0P^G`t%22!+1 +gA_3O,j#(,a1)'Lg]?X>!DekCNZBs*t~> +gA_3O,j#(,a1)'Lg]?X>!DekCNZBs*t~> +gA_3O,j#(,a1)'Lg]?X>!DekCNZBs*t~> +g&D&@jo>Bn[f6=fkPtU=JcF0u!qq0OpAb7@P4I-&"88W`"7Q:1!hcd'['mKU]Y;1u`5]m@bg+S` +eCN:+gtpuToZI17lR1fp!.BFu\,Us~> +g&D&@jo>Bn[f6=fkPtU=JcF0u!qq0OpAb7@P4I-&"88W`"7Q:1!hcd'['mKU]Y;1u`5]m@bg+S` +eCN:+gtpuToZI17lR1fp!.BFu\,Us~> +g&D&@jo>Bn[f6=fkPtU=JcF0u!qq0OpAb7@P4I-&"88W`"7Q:1!hcd'['mKU]Y;1u`5]m@bg+S` +eCN:+gtpuToZI17lR1fp!.BFu\,Us~> +g&D*G&*Eon&,!F3!0cUH!%`^$eGfU5EsqaC!s(cprRLoMrkrC[cN"gf&/lcE2*XW/>%;DmIu'8W +Uoh)@ajoD>roF([iuI7_!@GU5s0r#Y~> +g&D*G&*Eon&,!F3!0cUH!%`^$eGfU5EsqaC!s(cprRLoMrkrC[cN"gf&/lcE2*XW/>%;DmIu'8W +Uoh)@ajoD>roF([iuI7_!@GU5s0r#Y~> +g&D*G&*Eon&,!F3!0cUH!%`^$eGfU5EsqaC!s(cprRLoMrkrC[cN"gf&/lcE2*XW/>%;DmIu'8W +Uoh)@ajoD>roF([iuI7_!@GU5s0r#Y~> +f`(qajo>CV\,QKn"R#gcd"25KrrV4t$2=K%$"VN7rrV55)R9>V#o4^<4@rO^Dg[A+U9;,Le`#rn +p\t9A&*j2s(74oLs0hrX~> +f`(qajo>CV\,QKn"R#gcd"25KrrV4t$2=K%$"VN7rrV55)R9>V#o4^<4@rO^Dg[A+U9;,Le`#rn +p\t9A&*j2s(74oLs0hrX~> +f`(qajo>CV\,QKn"R#gcd"25KrrV4t$2=K%$"VN7rrV55)R9>V#o4^<4@rO^Dg[A+U9;,Le`#rn +p\t9A&*j2s(74oLs0hrX~> +f`(rpjo>BJ[f6>!kPtU*JcFF'!oIYrp](@7L$R:h"9,u3"IoH##o+X;4%N@\DL71W!U]ph#^Glj +s0VfV~> +f`(rpjo>BJ[f6>!kPtU*JcFF'!oIYrp](@7L$R:h"9,u3"IoH##o+X;4%N@\DL71W!U]ph#^Glj +s0VfV~> +f`(rpjo>BJ[f6>!kPtU*JcFF'!oIYrp](@7L$R:h"9,u3"IoH##o+X;4%N@\DL71W!U]ph#^Glj +s0VfV~> +fDbh(k5YMahm`UcUZ_[Y)uY?fh#@H1@KlN,!]R"Qec,^?Oskk]qZ$Zu=Q"c1ZN#F~> +fDbh(k5YMahm`UcUZ_[Y)uY?fh#@H1@KlN,!]R"Qec,^?Oskk]qZ$Zu=Q"c1ZN#F~> +fDbh(k5YMahm`UcUZ_[Y)uY?fh#@H1@KlN,!]R"Qec,^?Oskk]qZ$Zu=Q"c1ZN#F~> +fDbi6jo>C2\,QL#$g7Qj]n-4?rrUeW"Si$!!E-tfrrUS\%"SET!!,.$JcDtSJ,~> +fDbi6jo>C2\,QL#$g7Qj]n-4?rrUeW"Si$!!E-tfrrUS\%"SET!!,.$JcDtSJ,~> +fDbi6jo>C2\,QL#$g7Qj]n-4?rrUeW"Si$!!E-tfrrUS\%"SET!!,.$JcDtSJ,~> +fDbm=#j20g+T8eL!*SLc!+CHYi;Wl,WW%JKYQ'+~> +fDbm=#j20g+T8eL!*SLc!+CHYi;Wl,WW%JKYQ'+~> +fDbm=#j20g+T8eL!*SLc!+CHYi;Wl,WW%JKYQ'+~> +f)G_Qjo>Cog]%NSbEl]m.YHX?rrBFi!!*T'JcFd1!mORCq#CI4K^I=i!oePCJH5KG!Y:1`JcDkP +J,~> +f)G_Qjo>Cog]%NSbEl]m.YHX?rrBFi!!*T'JcFd1!mORCq#CI4K^I=i!oePCJH5KG!Y:1`JcDkP +J,~> +f)G_Qjo>Cog]%NSbEl]m.YHX?rrBFi!!*T'JcFd1!mORCq#CI4K^I=i!oePCJH5KG!Y:1`JcDkP +J,~> +f)G``jo>Bdi;WuWc^SQ'#5\B&!BQM4kl1\['^,MsWIb*2rrU88!Vl]s-COVZrr`83:]l7Kq#CI! +C?gBMX8d\~> +f)G``jo>Bdi;WuWc^SQ'#5\B&!BQM4kl1\['^,MsWIb*2rrU88!Vl]s-COVZrr`83:]l7Kq#CI! +C?gBMX8d\~> +f)G``jo>Bdi;WuWc^SQ'#5\B&!BQM4kl1\['^,MsWIb*2rrU88!Vl]s-COVZrr`83:]l7Kq#CI! +C?gBMX8d\~> +f)GdM,3Jq,$Lm3X"oQf@CGuOj!!3LIk3;mGC?PWt:4`H.rrL#,p](@UY5R,T!V=D3rrVYM-\29l +!!,aDJcD_LJ,~> +f)GdM,3Jq,$Lm3X"oQf@CGuOj!!3LIk3;mGC?PWt:4`H.rrL#,p](@UY5R,T!V=D3rrVYM-\29l +!!,aDJcD_LJ,~> +f)GdM,3Jq,$Lm3X"oQf@CGuOj!!3LIk3;mGC?PWt:4`H.rrL#,p](@UY5R,T!V=D3rrVYM-\29l +!!,aDJcD_LJ,~> +ec,W&k5YMkea!/;q7M#A"7-!h#]8VfrrC"$!!*;jJcG$8!PLep!!33s_qY1srOQ*crVt2T$\8 +ec,W&k5YMkea!/;q7M#A"7-!h#]8VfrrC"$!!*;jJcG$8!PLep!!33s_qY1srOQ*crVt2T$\8 +ec,W&k5YMkea!/;q7M#A"7-!h#]8VfrrC"$!!*;jJcG$8!PLep!!33s_qY1srOQ*crVt2T$\8 +ec,[2"6ojf$$u./rri5=KL,t,!!37rs.S:+V;!YXZq@: +q#CR%L@$4Tr.4mFs*t~> +ec,[2"6ojf$$u./rri5=KL,t,!!37rs.S:+V;!YXZq@: +q#CR%L@$4Tr.4mFs*t~> +ec,[2"6ojf$$u./rri5=KL,t,!!37rs.S:+V;!YXZq@: +q#CR%L@$4Tr.4mFs*t~> +eGfM?li7(g?/k>Q"T?Z+9+BeZ!Z%L/mf*95kPtTDJcG3=!rfJ`q#CI-Gimf]#lCeu!rst$Os>MX +p](F?a8c2;JcDPGJ,~> +eGfM?li7(g?/k>Q"T?Z+9+BeZ!Z%L/mf*95kPtTDJcG3=!rfJ`q#CI-Gimf]#lCeu!rst$Os>MX +p](F?a8c2;JcDPGJ,~> +eGfM?li7(g?/k>Q"T?Z+9+BeZ!Z%L/mf*95kPtTDJcG3=!rfJ`q#CI-Gimf]#lCeu!rst$Os>MX +p](F?a8c2;JcDPGJ,~> +eGfNFm/R/Qc1(`8fp>\Qg&M.:e*m;:e*$c4!Sr>,o)AdiX>0MN!Zd9kh#@H0GSpD[!`="NJH5EE +!EeiBs.KCB~> +eGfNFm/R/Qc1(`8fp>\Qg&M.:e*m;:e*$c4!Sr>,o)AdiX>0MN!Zd9kh#@H0GSpD[!`="NJH5EE +!EeiBs.KCB~> +eGfNFm/R/Qc1(`8fp>\Qg&M.:e*m;:e*$c4!Sr>,o)AdiX>0MN!Zd9kh#@H0GSpD[!`="NJH5EE +!EeiBs.KCB~> +eGfRA%.F5t.C/OE"8T3.$.T"W!cRu*rr=J2!!%V%s7H +eGfRA%.F5t.C/OE"8T3.$.T"W!cRu*rr=J2!!%V%s7H +eGfRA%.F5t.C/OE"8T3.$.T"W!cRu*rr=J2!!%V%s7H +e,KDRnc/_,QM^=S"7Dp^$d\kS1"Ggo!.*i/!%3?tpAY3kTdTX9!]RFah>[Q'D%Z[G!!_H`.KLS[ +Djd5hSt2FBS=>t9R@0G0Q^3r&Q'@JrP*1o]HuWb&;+ +e,KDRnc/_,QM^=S"7Dp^$d\kS1"Ggo!.*i/!%3?tpAY3kTdTX9!]RFah>[Q'D%Z[G!!_H`.KLS[ +Djd5hSt2FBS=>t9R@0G0Q^3r&Q'@JrP*1o]HuWb&;+ +e,KDRnc/_,QM^=S"7Dp^$d\kS1"Ggo!.*i/!%3?tpAY3kTdTX9!]RFah>[Q'D%Z[G!!_H`.KLS[ +Djd5hSt2FBS=>t9R@0G0Q^3r&Q'@JrP*1o]HuWb&;+ +e,KEXoDeq!HL^\."6>_9"j?rJ$'G5YrrC=,!!(2ns7uZrqOAf+!!,?sh>[QHR5Nn&"pce\IAP3\ +fDcH]n)W3K`4<(IR>ur<>=^Uq%ak=Y!H@gbs.'+>~> +e,KEXoDeq!HL^\."6>_9"j?rJ$'G5YrrC=,!!(2ns7uZrqOAf+!!,?sh>[QHR5Nn&"pce\IAP3\ +fDcH]n)W3K`4<(IR>ur<>=^Uq%ak=Y!H@gbs.'+>~> +e,KEXoDeq!HL^\."6>_9"j?rJ$'G5YrrC=,!!(2ns7uZrqOAf+!!,?sh>[QHR5Nn&"pce\IAP3\ +fDcH]n)W3K`4<(IR>ur<>=^Uq%ak=Y!H@gbs.'+>~> +e,KIH)#""3!aXgZrr^l.2Z^r!!A*F*rr=5+!!$qgs82ftpm*#u!!30m`81Fp`F0/8!!X)uA;mnN +r4i7@qWHAEY*t,f@88j2'Ed:o!>`(os-it<~> +e,KIH)#""3!aXgZrr^l.2Z^r!!A*F*rr=5+!!$qgs82ftpm*#u!!30m`81Fp`F0/8!!X)uA;mnN +r4i7@qWHAEY*t,f@88j2'Ed:o!>`(os-it<~> +e,KIH)#""3!aXgZrr^l.2Z^r!!A*F*rr=5+!!$qgs82ftpm*#u!!30m`81Fp`F0/8!!X)uA;mnN +r4i7@qWHAEY*t,f@88j2'Ed:o!>`(os-it<~> +df0;ep](=\c1q;@rlKF7_>jTT_t +df0;ep](=\c1q;@rlKF7_>jTT_t +df0;ep](=\c1q;@rlKF7_>jTT_t +df0^OFZM=G$gia[O!!*7bp&>$2k5YLkJc>iPo8=I^!!3:-e_gB/rOQ#7mJmLo)`Ui +df0^OFZM=G$gia[O!!*7bp&>$2k5YLkJc>iPo8=I^!!3:-e_gB/rOQ#7mJmLo)`Ui +df0^OFZM=G$gia[O!!*7bp&>$2k5YLkJc>iPo8=I^!!3:-e_gB/rOQ#7mJmLo)`Ui +dJj1qr;Zm7QM^OY!pc"+\GuY4oCr7cr>Ol"!*k-U!qCsYq>^R$ADH)B!onnVoDf0u'f&R$M5J2K +qM>.Xqr5]"P^6_,3R[^&!rf>TrVur[JcDVIJ,~> +dJj1qr;Zm7QM^OY!pc"+\GuY4oCr7cr>Ol"!*k-U!qCsYq>^R$ADH)B!onnVoDf0u'f&R$M5J2K +qM>.Xqr5]"P^6_,3R[^&!rf>TrVur[JcDVIJ,~> +dJj1qr;Zm7QM^OY!pc"+\GuY4oCr7cr>Ol"!*k-U!qCsYq>^R$ADH)B!onnVoDf0u'f&R$M5J2K +qM>.Xqr5]"P^6_,3R[^&!rf>TrVur[JcDVIJ,~> +dJjB'!!!=Onb`=gq6!Nu[K$=Yf_>CGCZka!%.o8R!q1XLq>^R'DW9US"8]2o"8)Wr!GLWlJcG-; +!OFQZ!!'$Ms/,gH~> +dJjB'!!!=Onb`=gq6!Nu[K$=Yf_>CGCZka!%.o8R!q1XLq>^R'DW9US"8]2o"8)Wr!GLWlJcG-; +!OFQZ!!'$Ms/,gH~> +dJjB'!!!=Onb`=gq6!Nu[K$=Yf_>CGCZka!%.o8R!q1XLq>^R'DW9US"8]2o"8)Wr!GLWlJcG-; +!OFQZ!!'$Ms/,gH~> +dJj=+"'sp`rrUA['X@]>%^#O+!5@[t!X*9/L]7GHK+RkZ!Y'A;i;Wl'E#8*G!=uDcs6Tad\2O0` +!,dAfVZ2/~> +dJj=+"'sp`rrUA['X@]>%^#O+!5@[t!X*9/L]7GHK+RkZ!Y'A;i;Wl'E#8*G!=uDcs6Tad\2O0` +!,dAfVZ2/~> +dJj=+"'sp`rrUA['X@]>%^#O+!5@[t!X*9/L]7GHK+RkZ!Y'A;i;Wl'E#8*G!=uDcs6Tad\2O0` +!,dAfVZ2/~> +d/O+#r;QiZM(7E`!sD#+-dr%s!Hn;9rrN!3lMpr^fSBJ.p5Ba_!!3CPp#5oPj+o5U!!+V'JcG-; +!PLSi!!"g+s/,gH~> +d/O+#r;QiZM(7E`!sD#+-dr%s!Hn;9rrN!3lMpr^fSBJ.p5Ba_!!3CPp#5oPj+o5U!!+V'JcG-; +!PLSi!!"g+s/,gH~> +d/O+#r;QiZM(7E`!sD#+-dr%s!Hn;9rrN!3lMpr^fSBJ.p5Ba_!!3CPp#5oPj+o5U!!+V'JcG-; +!PLSi!!"g+s/,gH~> +c2RnEX@E?O!!EQmJ\q6^rr_bqGrGrr?Qr!!,$qL]7GOPT'Au!Y9bKir9,PTgStP!!3@F +q18S6rrKr$p&G*qoR[%?s*t~> +c2RnEX@E?O!!EQmJ\q6^rr_bqGrGrr?Qr!!,$qL]7GOPT'Au!Y9bKir9,PTgStP!!3@F +q18S6rrKr$p&G*qoR[%?s*t~> +c2RnEX@E?O!!EQmJ\q6^rr_bqGrGrr?Qr!!,$qL]7GOPT'Au!Y9bKir9,PTgStP!!3@F +q18S6rrKr$p&G*qoR[%?s*t~> +ci4(+H55H?"9pu:^%_7#!mkZmf)Pgj`r#c9[dO1t,,kKsrrW(g+8Ps=%Xd^)rr`21>RU'%!s(TY +oR[&1rrL,-o)JcmJcDYJJ,~> +ci4(+H55H?"9pu:^%_7#!mkZmf)Pgj`r#c9[dO1t,,kKsrrW(g+8Ps=%Xd^)rr`21>RU'%!s(TY +oR[&1rrL,-o)JcmJcDYJJ,~> +ci4(+H55H?"9pu:^%_7#!mkZmf)Pgj`r#c9[dO1t,,kKsrrW(g+8Ps=%Xd^)rr`21>RU'%!s(TY +oR[&1rrL,-o)JcmJcDYJJ,~> +dJj9`;Zu.]!uGRUo^Mk^pREkg!!*:fr;Qfn&Fof&&rudDrrW.q-2ITC%=7C$rrUVk)t3h/)0jhc +s6]geb=V4(!*k*TVuM8~> +dJj9`;Zu.]!uGRUo^Mk^pREkg!!*:fr;Qfn&Fof&&rudDrrW.q-2ITC%=7C$rrUVk)t3h/)0jhc +s6]geb=V4(!*k*TVuM8~> +dJj9`;Zu.]!uGRUo^Mk^pREkg!!*:fr;Qfn&Fof&&rudDrrW.q-2ITC%=7C$rrUVk)t3h/)0jhc +s6]geb=V4(!*k*TVuM8~> +eGfUCRP*\%"9C9-bl6r.!r\i7fDkqVo_ndi>kA!t#^#KjrrW2&/G]>J%!V$urrVAD0^o&E"]2N% +JcG-;!maUBn,NJ#q18REs*t~> +eGfUCRP*\%"9C9-bl6r.!r\i7fDkqVo_ndi>kA!t#^#KjrrW2&/G]>J%!V$urrVAD0^o&E"]2N% +JcG-;!maUBn,NJ#q18REs*t~> +eGfUCRP*\%"9C9-bl6r.!r\i7fDkqVo_ndi>kA!t#^#KjrrW2&/G]>J%!V$urrVAD0^o&E"]2N% +JcG-;!maUBn,NJ#q18REs*t~> +f)Gg.F:mX8!sqVfjQ6CCp4j13!!+\*rr2u$p&G-p>2P,8!Oaf\!!3ONlK/$Joqk:`n,NM +f)Gg.F:mX8!sqVfjQ6CCp4j13!!+\*rr2u$p&G-p>2P,8!Oaf\!!3ONlK/$Joqk:`n,NM +f)Gg.F:mX8!sqVfjQ6CCp4j13!!+\*rr2u$p&G-p>2P,8!Oaf\!!3ONlK/$Joqk:`n,NM +g&D0R\kW@j!!=*LZ1[&T!Vgom!!Nn;s8Vd#p](=[bD6)u^,u/k!Xa#5k5PP^^L@]B!!3R;`I\'T +rrUeS!p]gdB7^)]s*t~> +g&D0R\kW@j!!=*LZ1[&T!Vgom!!Nn;s8Vd#p](=[bD6)u^,u/k!Xa#5k5PP^^L@]B!!3R;`I\'T +rrUeS!p]gdB7^)]s*t~> +g&D0R\kW@j!!=*LZ1[&T!Vgom!!Nn;s8Vd#p](=[bD6)u^,u/k!Xa#5k5PP^^L@]B!!3R;`I\'T +rrUeS!p]gdB7^)]s*t~> +g]%?GPUP\p"#kYNrnIGRZPhHs"9EcFs&Agp!@kF2rrL/-q>^R'ETcKa!nV`?mf3DKm'tcds/H$K~> +g]%?GPUP\p"#kYNrnIGRZPhHs"9EcFs&Agp!@kF2rrL/-q>^R'ETcKa!nV`?mf3DKm'tcds/H$K~> +g]%?GPUP\p"#kYNrnIGRZPhHs"9EcFs&Agp!@kF2rrL/-q>^R'ETcKa!nV`?mf3DKm'tcds/H$K~> +h>[QBGRis +h>[QBGRis +h>[QBGRis +hu +hu +hu +iVru6A-V?"!sqetm`kb4fdbkZ!XXYYrr3'p"(gVNrrUt\"8`'"!a+1?rrU5R&+0E%*PpK.!"m;' +s60I_K]W78%ebJRWrIS~> +iVru6A-V?"!sqetm`kb4fdbkZ!XXYYrr3'p"(gVNrrUt\"8`'"!a+1?rrU5R&+0E%*PpK.!"m;' +s60I_K]W78%ebJRWrIS~> +iVru6A-V?"!sqetm`kb4fdbkZ!XXYYrr3'p"(gVNrrUt\"8`'"!a+1?rrU5R&+0E%*PpK.!"m;' +s60I_K]W78%ebJRWrIS~> +j8T20=p+*k!tSV;oZ@+6nl+KI!CklBrrKmrM#RP8AHho1!D1T$rrU\r+mf77#)VVb"opRAJcFp5 +!Ts[L!!&pJs/Q*L~> +j8T20=p+*k!tSV;oZ@+6nl+KI!CklBrrKmrM#RP8AHho1!D1T$rrU\r+mf77#)VVb"opRAJcFp5 +!Ts[L!!&pJs/Q*L~> +j8T20=p+*k!tSV;oZ@+6nl+KI!CklBrrKmrM#RP8AHho1!D1T$rrU\r+mf77#)VVb"opRAJcFp5 +!Ts[L!!&pJs/Q*L~> +jo5D(:BBh_!u>IWq8N@8reCU;!!*k2Jc>f7D$Tn;!B\0`rrV/90C&TC373g#!!$R)JcFj3!*A:_ +!(qhBWrIS~> +jo5D(:BBh_!u>IWq8N@8reCU;!!*k2Jc>f7D$Tn;!B\0`rrV/90C&TC373g#!!$R)JcFj3!*A:_ +!(qhBWrIS~> +jo5D(:BBh_!u>IWq8N@8reCU;!!*k2Jc>f7D$Tn;!B\0`rrV/90C&TC373g#!!$R)JcFj3!*A:_ +!(qhBWrIS~> +kPkRt7I:'W+)o'o_#FGG'BfDt!FtMKrrVP1$Mj`'0=1!E"72@;!p]gk$&bl3!!!7dJcFd1!5IXr +! +kPkRt7I:'W+)o'o_#FGG'BfDt!FtMKrrVP1$Mj`'0=1!E"72@;!p]gk$&bl3!!!7dJcFd1!5IXr +! +kPkRt7I:'W+)o'o_#FGG'BfDt!FtMKrrVP1$Mj`'0=1!E"72@;!p]gk$&bl3!!!7dJcFd1!5IXr +! +lMgqb[6*dV""AQ?rk/73hD+9q!@Ya8rrV\=%f-/,,GkA+rr_nj9EjY\!]mnVrVuskidq-hrrN*K +jo>CBJcDeNJ,~> +lMgqb[6*dV""AQ?rk/73hD+9q!@Ya8rrV\=%f-/,,GkA+rr_nj9EjY\!]mnVrVuskidq-hrrN*K +jo>CBJcDeNJ,~> +lMgqb[6*dV""AQ?rk/73hD+9q!@Ya8rrV\=%f-/,,GkA+rr_nj9EjY\!]mnVrVuskidq-hrrN*K +jo>CBJcDeNJ,~> +li."&1%5/F!AfG\\,QL&>jVLm#CuUGrrrAsp@RnBOT,CSLD'F`!ZIF%mf*Cc[9F%&!!`gI=9/C% +'Vg6Zhu<\>jo>B:JcDeNJ,~> +li."&1%5/F!AfG\\,QL&>jVLm#CuUGrrrAsp@RnBOT,CSLD'F`!ZIF%mf*Cc[9F%&!!`gI=9/C% +'Vg6Zhu<\>jo>B:JcDeNJ,~> +li."&1%5/F!AfG\\,QL&>jVLm#CuUGrrrAsp@RnBOT,CSLD'F`!ZIF%mf*Cc[9F%&!!`gI=9/C% +'Vg6Zhu<\>jo>B:JcDeNJ,~> +mJd427I^?["$Ve(ZMsra!q60s5hQ(lYCgRf4!P11!!ilK.QU:FSAt2krrVqU(]"+5&r?5Lrr`8< +BbTV/#:EFU!!!1>l[f)mrrMTsjo>D2JcDhOJ,~> +mJd427I^?["$Ve(ZMsra!q60s5hQ(lYCgRf4!P11!!ilK.QU:FSAt2krrVqU(]"+5&r?5Lrr`8< +BbTV/#:EFU!!!1>l[f)mrrMTsjo>D2JcDhOJ,~> +mJd427I^?["$Ve(ZMsra!q60s5hQ(lYCgRf4!P11!!ilK.QU:FSAt2krrVqU(]"+5&r?5Lrr`8< +BbTV/#:EFU!!!1>l[f)mrrMTsjo>D2JcDhOJ,~> +n,EICcl)t$e]bBu;";4mO3X=mL"WBdHQbi!`rrW.i*;TX:$[V:1rrUVn+63D+%gE"6 +"('l9s4dPRA``smGCfdqs*t~> +n,EICcl)t$e]bBu;";4mO3X=mL"WBdHQbi!`rrW.i*;TX:$[V:1rrUVn+63D+%gE"6 +"('l9s4dPRA``smGCfdqs*t~> +n,EICcl)t$e]bBu;";4mO3X=mL"WBdHQbi!`rrW.i*;TX:$[V:1rrUVn+63D+%gE"6 +"('l9s4dPRA``smGCfdqs*t~> +nc&[QBEe#.!t/&(n>cKhh(A:"!>5Fj!!=!.QfY4H!Os`X!!3@@kOAKQhhNf@!!3:Al@JugrrC@, +!!+) +nc&[QBEe#.!t/&(n>cKhh(A:"!>5Fj!!=!.QfY4H!Os`X!!3@@kOAKQhhNf@!!3:Al@JugrrC@, +!!+) +nc&[QBEe#.!t/&(n>cKhh(A:"!>5Fj!!=!.QfY4H!Os`X!!3@@kOAKQhhNf@!!3:Al@JugrrC@, +!!+) +oD\m\H4'%@!!'Z_ +s/l +oD\m\H4'%@!!'Z_ +s/l +oD\m\H4'%@!!'Z_ +s/l +p&>*fM\>^`"!DNsqkF)lrdY$o!! +p&>*fM\>^`"!DNsqkF)lrdY$o!! +p&>*fM\>^`"!DNsqkF)lrdY$o!! +p\t"sV +s/uBP~> +p\t"sV +s/uBP~> +p\t"sV +s/uBP~> +q#:As*r,d<"$Vb%S,WQaNu#b9!s1upqS)t2qj82r!!+peo`#$l_.OG=!!Cg +JcDnQJ,~> +q#:As*r,d<"$Vb%S,WQaNu#b9!s1upqS)t2qj82r!!+peo`#$l_.OG=!!Cg +JcDnQJ,~> +q#:As*r,d<"$Vb%S,WQaNu#b9!s1upqS)t2qj82r!!+peo`#$l_.OG=!!Cg +JcDnQJ,~> +qYpTI7/?lc#YpuWRK!;]'uBqP)118WrrKPRq>^RFX8_el!ml*3hZ*a,Dn#Fks2t?AWoa9]@"J?\ +s*t~> +qYpTI7/?lc#YpuWRK!;]'uBqP)118WrrKPRq>^RFX8_el!ml*3hZ*a,Dn#Fks2t?AWoa9]@"J?\ +s*t~> +qYpTI7/?lc#YpuWRK!;]'uBqP)118WrrKPRq>^RFX8_el!ml*3hZ*a,Dn#Fks2t?AWoa9]@"J?\ +s*t~> +r;QifEWu:>!BT#'rrM"D^&S6:8?Vj0rrM.Uq>^Rp($6c!>5-Y +s0)HQ~> +r;QifEWu:>!BT#'rrM"D^&S6:8?Vj0rrM.Uq>^Rp($6c!>5-Y +s0)HQ~> +r;QifEWu:>!BT#'rrM"D^&S6:8?Vj0rrM.Uq>^Rp($6c!>5-Y +s0)HQ~> +rr3'!T,@A(!J13;rrW1f%CuN@&prfarrW._%f65-'or%_rr_ML3aLBjo>Ci +JcDqRJ,~> +rr3'!T,@A(!J13;rrW1f%CuN@&prfarrW._%f65-'or%_rr_ML3aLBjo>Ci +JcDqRJ,~> +rr3'!T,@A(!J13;rrW1f%CuN@&prfarrW._%f65-'or%_rr_ML3aLBjo>Ci +JcDqRJ,~> +s8N,C3;EOT#,.Fa!TZW:!!aVj,UFfe-k=T(!Y'kWc2Rgm3;W[W%"@dBrr_hd8-IuR":RVF\*nnJ +^&J)Cjo>BjJcDqRJ,~> +s8N,C3;EOT#,.Fa!TZW:!!aVj,UFfe-k=T(!Y'kWc2Rgm3;W[W%"@dBrr_hd8-IuR":RVF\*nnJ +^&J)Cjo>BjJcDqRJ,~> +s8N,C3;EOT#,.Fa!TZW:!!aVj,UFfe-k=T(!Y'kWc2Rgm3;W[W%"@dBrr_hd8-IuR":RVF\*nnJ +^&J)Cjo>BjJcDqRJ,~> +!pX:tq#CF-^6np$`"hkD"=IiZchmP<#QEo:]Sp/N"kEYT*iAqarrW.V"T/6$#&NN!rr`)$ +!pX:tq#CF-^6np$`"hkD"=IiZchmP<#QEo:]Sp/N"kEYT*iAqarrW.V"T/6$#&NN!rr`)$ +!pX:tq#CF-^6np$`"hkD"=IiZchmP<#QEo:]Sp/N"kEYT*iAqarrW.V"T/6$#&NN!rr`)$ +!"eo*!?p$]rrJr%r;Zm/)?Tj;!shf&q!J(bqU20_7iBt[!B9)grrL\(qu?d">2B&T"9#uG''B5t +">annidq-9rr?s!!!(T$s02NR~> +!"eo*!?p$]rrJr%r;Zm/)?Tj;!shf&q!J(bqU20_7iBt[!B9)grrL\(qu?d">2B&T"9#uG''B5t +">annidq-9rr?s!!!(T$s02NR~> +!"eo*!?p$]rrJr%r;Zm/)?Tj;!shf&q!J(bqU20_7iBt[!B9)grrL\(qu?d">2B&T"9#uG''B5t +">annidq-9rr?s!!!(T$s02NR~> +p](=RkaDGPrdb+L!!3d4.fKDM'k4HAjSo>ERnX4E!!3@TqUYZIRg],o!D(Q5rrUJf*9R;((h'K7 +JcDqR!6=4%!0r-8YlB4~> +p](=RkaDGPrdb+L!!3d4.fKDM'k4HAjSo>ERnX4E!!3@TqUYZIRg],o!D(Q5rrUJf*9R;((h'K7 +JcDqR!6=4%!0r-8YlB4~> +p](=RkaDGPrdb+L!!3d4.fKDM'k4HAjSo>ERnX4E!!3@TqUYZIRg],o!D(Q5rrUJf*9R;((h'K7 +JcDqR!6=4%!0r-8YlB4~> +q#CFTopPg\q+CVd#SVJp"99Wd_>W6j"8/m.(Yo&l0@&8N!Uj(e!!,!lqu6`QJgom`"9LK3bPm(m +XT&>#,Nf%, +q#CFTopPg\q+CVd#SVJp"99Wd_>W6j"8/m.(Yo&l0@&8N!Uj(e!!,!lqu6`QJgom`"9LK3bPm(m +XT&>#,Nf%, +q#CFTopPg\q+CVd#SVJp"99Wd_>W6j"8/m.(Yo&l0@&8N!Uj(e!!,!lqu6`QJgom`"9LK3bPm(m +XT&>#,Nf%, +q>^OSnX9Car)E^s'S`V%14mp*rr`5>GUhSN!WmQEh#@Do+T29A-`m=Grr_GH2Z`.C!s2AnmXbD9 +rr@H0!!*l7JcE"TJ,~> +q>^OSnX9Car)E^s'S`V%14mp*rr`5>GUhSN!WmQEh#@Do+T29A-`m=Grr_GH2Z`.C!s2AnmXbD9 +rr@H0!!*l7JcE"TJ,~> +q>^OSnX9Car)E^s'S`V%14mp*rr`5>GUhSN!WmQEh#@Do+T29A-`m=Grr_GH2Z`.C!s2AnmXbD9 +rr@H0!!*l7JcE"TJ,~> +qZ$XLm@!t[raPpCM"AuMnBh1:flRkb!!,a\hu +qZ$XLm@!t[raPpCM"AuMnBh1:flRkb!!,a\hu +qZ$XLm@!t[raPpCM"AuMnBh1:flRkb!!,a\hu +qu?aGl'VJQE>FH(ao;J5lL`b&W$,ZrrTT-#Nc!f'8uj@s.]Mn,Nf%,RXtLD +s*t~> +qu?aGl'VJQE>FH(ao;J5lL`b&W$,ZrrTT-#Nc!f'8uj@s.]Mn,Nf%,RXtLD +s*t~> +qu?aGl'VJQE>FH(ao;J5lL`b&W$,ZrrTT-#Nc!f'8uj@s.]Mn,Nf%,RXtLD +s*t~> +r;ZjBjI#rKR#CUTrrUns(#o8p"/k2Z#-\a@!"!f8rr3#Y53;hI#[5"BJcDDC!,(Hp!-WqnZ2]=~> +r;ZjBjI#rKR#CUTrrUns(#o8p"/k2Z#-\a@!"!f8rr3#Y53;hI#[5"BJcDDC!,(Hp!-WqnZ2]=~> +r;ZjBjI#rKR#CUTrrUns(#o8p"/k2Z#-\a@!"!f8rr3#Y53;hI#[5"BJcDDC!,(Hp!-WqnZ2]=~> +rVus/hO+ +rVus/hO+ +rVus/hO+ +rr<'%\ULp1`sq!A#/e!!3O;`e"/YrrMEekPtT< +JcE"TJ,~> +rr<'%\ULp1`sq!A#/e!!3O;`e"/YrrMEekPtT< +JcE"TJ,~> +rr<'%\ULp1`sq!A#/e!!3O;`e"/YrrMEekPtT< +JcE"TJ,~> +rr<%TQ2_*f_f6au!e(!`rrKDRjT# +rr<%TQ2_*f_f6au!e(!`rrKDRjT# +rr<%TQ2_*f_f6au!e(!`rrKDRjT# +!WZ:#Qi@-GF;XuW!>;iUrrW+L#3GmcBC5^%mSj0>[JTt)QO36`";bsti^3VE!Y9"jJcCu7!-IB( +!:>@;ZN#F~> +!WZ:#Qi@-GF;XuW!>;iUrrW+L#3GmcBC5^%mSj0>[JTt)QO36`";bsti^3VE!Y9"jJcCu7!-IB( +!:>@;ZN#F~> +!WZ:#Qi@-GF;XuW!>;iUrrW+L#3GmcBC5^%mSj0>[JTt)QO36`";bsti^3VE!Y9"jJcCu7!-IB( +!:>@;ZN#F~> +!A=#4rr`(r637#b!Ar]HrrM:\jo>C9n,EO.*[. +!A=#4rr`(r637#b!Ar]HrrM:\jo>C9n,EO.*[. +!A=#4rr`(r637#b!Ar]HrrM:\jo>C9n,EO.*[. +!9fmO!o8);qZ$Y1pppD*Wu't"!rs0DZT~> +!9fmO!o8);qZ$Y1pppD*Wu't"!rs0DZT~> +!9fmO!o8);qZ$Y1pppD*Wu't"!rs0DZT~> +SGr]jZUOum!!*G$[f6C%;s42^#/9a0"6)t&o)&Fgr-nhD!!<6aQL+SM"MZ'GVtbiCQ2_$M]p*;! +)<:bteq*k,s*t~> +SGr]jZUOum!!*G$[f6C%;s42^#/9a0"6)t&o)&Fgr-nhD!!<6aQL+SM"MZ'GVtbiCQ2_$M]p*;! +)<:bteq*k,s*t~> +SGr]jZUOum!!*G$[f6C%;s42^#/9a0"6)t&o)&Fgr-nhD!!<6aQL+SM"MZ'GVtbiCQ2_$M]p*;! +)<:bteq*k,s*t~> +T)SlhTI'C6!@H7$rrJ>hkl:_qe+WeC["%<9rrM(@p](@GL>Vq/"8In&gO]Blrrq8dMde[Wh>dQ3 +JcE%UJ,~> +T)SlhTI'C6!@H7$rrJ>hkl:_qe+WeC["%<9rrM(@p](@GL>Vq/"8In&gO]Blrrq8dMde[Wh>dQ3 +JcE%UJ,~> +T)SlhTI'C6!@H7$rrJ>hkl:_qe+WeC["%<9rrM(@p](@GL>Vq/"8In&gO]Blrrq8dMde[Wh>dQ3 +JcE%UJ,~> +T`5)iS0Re/!E8NnrrL7bkl:`*jn\oXpqtq`rrK25q>^R:FjKm`!QY.is.0/on&_;N<%SC.!!))2 +s0DZT~> +T`5)iS0Re/!E8NnrrL7bkl:`*jn\oXpqtq`rrK25q>^R:FjKm`!QY.is.0/on&_;N<%SC.!!))2 +s0DZT~> +T`5)iS0Re/!E8NnrrL7bkl:`*jn\oXpqtq`rrK25q>^R:FjKm`!QY.is.0/on&_;N<%SC.!!))2 +s0DZT~> +UAk;jQlu/(!X4S_YQ"Xs6g4RO,kUs5!;ZHj!VL+&!! +UAk;jQlu/(!X4S_YQ"Xs6g4RO,kUs5!;ZHj!VL+&!! +UAk;jQlu/(!X4S_YQ"Xs6g4RO,kUs5!;ZHj!VL+&!! +V#LMkPo]T!!?/kWrrMt'kl:^&o)Aa=/,]GM#ZIo$JcD8?#QE_pSp+!["O$iH!qh-EZN#F~> +V#LMkPo]T!!?/kWrrMt'kl:^&o)Aa=/,]GM#ZIo$JcD8?#QE_pSp+!["O$iH!qh-EZN#F~> +V#LMkPo]T!!?/kWrrMt'kl:^&o)Aa=/,]GM#ZIo$JcD8?#QE_pSp+!["O$iH!qh-EZN#F~> +V>gRs*;0@560P?K!WIE1!!*2Fp&> +V>gRs*;0@560P?K!WIE1!!*2Fp&> +V>gRs*;0@560P?K!WIE1!!*2Fp&> +VuHeK7.pT^!I4O?rrADN!!+hOp\tHa:B1AMN9#QiV>geT`2&&s6mMrO!!,mFJcDqRJ,~> +VuHeK7.pT^!I4O?rrADN!!+hOp\tHa:B1AMN9#QiV>geT`2&&s6mMrO!!,mFJcDqRJ,~> +VuHeK7.pT^!I4O?rrADN!!+hOp\tHa:B1AMN9#QiV>geT`2&&s6mMrO!!,mFJcDqRJ,~> +WW*%jF9V@)N3rr@rA!!%rPrrg+W,(.sms/H#&ro1GKANLO9!!,4$JcDkPJ,~> +WW*%jF9V@)N3rr@rA!!%rPrrg+W,(.sms/H#&ro1GKANLO9!!,4$JcDkPJ,~> +WW*%jF9V@)N3rr@rA!!%rPrrg+W,(.sms/H#&ro1GKANLO9!!,4$JcDkPJ,~> +X8`8#V&K",!AWE)rr?p%!!*Jaqu6frO`&/;JcDkP#6!>`M-i.M[K$=ZZ@W%Vs*t~> +X8`8#V&K",!AWE)rr?p%!!*Jaqu6frO`&/;JcDkP#6!>`M-i.M[K$=ZZ@W%Vs*t~> +X8`8#V&K",!AWE)rr?p%!!*Jaqu6frO`&/;JcDkP#6!>`M-i.M[K$=ZZ@W%Vs*t~> +XT&=N3V3:PA+lVr!W>s_!!#RerrLsSJcDqR"luG2=tg,c!!478r.4mJs*t~> +XT&=N3V3:PA+lVr!W>s_!!#RerrLsSJcDqR"luG2=tg,c!!478r.4mJs*t~> +XT&=N3V3:PA+lVr!W>s_!!#RerrLsSJcDqR"luG2=tg,c!!478r.4mJs*t~> +Y5\S%M$EVQ!?8&1rrMjVlMpp^JcDkP"Q?M28f+W1!Yg[iJcD\KJ,~> +Y5\S%M$EVQ!?8&1rrMjVlMpp^JcDkP"Q?M28f+W1!Yg[iJcD\KJ,~> +Y5\S%M$EVQ!?8&1rrMjVlMpp^JcDkP"Q?M28f+W1!Yg[iJcD\KJ,~> +YQ"Xa6M:B\$"(`BrrML9li7&%q18RQrrrDYXEd;MWrN2/Hh)afVZ2/~> +YQ"Xa6M:B\$"(`BrrML9li7&%q18RQrrrDYXEd;MWrN2/Hh)afVZ2/~> +YQ"Xa6M:B\$"(`BrrML9li7&%q18RQrrrDYXEd;MWrN2/Hh)afVZ2/~> +Yl=a+'DDJ."cE)BrrM!pli7$SJcE7["P]o!6kH9s!Y'A=JcDPGJ,~> +Yl=a+'DDJ."cE)BrrM!pli7$SJcE7["P]o!6kH9s!Y'A=JcDPGJ,~> +Yl=a+'DDJ."cE)BrrM!pli7$SJcE7["P]o!6kH9s!Y'A=JcDPGJ,~> +ZMsstAbH*)6/.\)!R:f7!!+YMJcEIa"S]ik:DK]+!Y0PCJcDJEJ,~> +ZMsstAbH*)6/.\)!R:f7!!+YMJcEIa"S]ik:DK]+!Y0PCJcDJEJ,~> +ZMsstAbH*)6/.\)!R:f7!!+YMJcEIa"S]ik:DK]+!Y0PCJcDJEJ,~> +Zi:'N-hdTB&Y/iarr@lA!!'W^s2+d=l*#4j#GV8#%t3hrs.KCB~> +Zi:'N-hdTB&Y/iarr@lA!!'W^s2+d=l*#4j#GV8#%t3hrs.KCB~> +Zi:'N-hdTB&Y/iarr@lA!!'W^s2+d=l*#4j#GV8#%t3hrs.KCB~> +[/U/p!quZq.-H`m!W"J:!!#`Es2Y-CrmdHF,ls\>!YKtOJcD>AJ,~> +[/U/p!quZq.-H`m!W"J:!!#`Es2Y-CrmdHF,ls\>!YKtOJcD>AJ,~> +[/U/p!quZq.-H`m!W"J:!!#`Es2Y-CrmdHF,ls\>!YKtOJcD>AJ,~> +[f6C,FS5\87IlN>!QkN4!!*/UJcEso"T>oc9+@Hm!Y^7VJcD8?J,~> +[f6C,FS5\87IlN>!QkN4!!*/UJcEso"T>oc9+@Hm!Y^7VJcD8?J,~> +[f6C,FS5\87IlN>!QkN4!!*/UJcEso"T>oc9+@Hm!Y^7VJcD8?J,~> +\,QL%;YC(k>5=0X!,q6)!,dAfd/O7HabN:lS,`U)L[p#rRf@m~> +\,QL%;YC(k>5=0X!,q6)!,dAfd/O7HabN:lS,`U)L[p#rRf@m~> +\,QL%;YC(k>5=0X!,q6)!,dAfd/O7HabN:lS,`U)L[p#rRf@m~> +\GlTn2td4P@K)5c!V7B#!!*Q!JcF:#"THf09b3Zm!\T-$JcD,;J,~> +\GlTn2td4P@K)5c!V7B#!!*Q!JcF:#"THf09b3Zm!\T-$JcD,;J,~> +\GlTn2td4P@K)5c!V7B#!!*Q!JcF:#"THf09b3Zm!\T-$JcD,;J,~> +\c2]\+SGd9=oO +\c2]\+SGd9=oO +\c2]\+SGd9=oO +])MfD&G?))2>2k+!*ARg!(_\@h#@K9TO&Vh!#5MH,W81tA78hO>Zt62<)#\ +])MfD&G?))2>2k+!*ARg!(_\@h#@K9TO&Vh!#5MH,W81tA78hO>Zt62<)#\ +])MfD&G?))2>2k+!*ARg!(_\@h#@K9TO&Vh!#5MH,W81tA78hO>Zt62<)#\ +]Dho8!VQKo)s)kT!TXCP!!*H$JcF^/"8B?F.+nS)'Kp#e[FOX0s!7U9l.se.]Wn?'OG.t$Ch@'X +;b]bI3^6)-;d*RADKLB)_rCXnrrVA!#6"T&."VDbs*t~> +]Dho8!VQKo)s)kT!TXCP!!*H$JcF^/"8B?F.+nS)'Kp#e[FOX0s!7U9l.se.]Wn?'OG.t$Ch@'X +;b]bI3^6)-;d*RADKLB)_rCXnrrVA!#6"T&."VDbs*t~> +]Dho8!VQKo)s)kT!TXCP!!*H$JcF^/"8B?F.+nS)'Kp#e[FOX0s!7U9l.se.]Wn?'OG.t$Ch@'X +;b]bI3^6)-;d*RADKLB)_rCXnrrVA!#6"T&."VDbs*t~> +]`/#B#PJ,u$-\,'!*8Lf!5*m_jSo>:P=c2!!*B(JcD,;J,~> +]`/#B#PJ,u$-\,'!*8Lf!5*m_jSo>:P=c2!!*B(JcD,;J,~> +]`/#B#PJ,u$-\,'!*8Lf!5*m_jSo>:P=c2!!*B(JcD,;J,~> +^&J,L$M=B!OG*W6`U3^+G(K\Wrr_r%D'[s<"W^?mWm^gUrrVkM');M-j+75ts*t~> +^&J,L$M=B!OG*W6`U3^+G(K\Wrr_r%D'[s<"W^?mWm^gUrrVkM');M-j+75ts*t~> +^&J,L$M=B!OG*W6`U3^+G(K\Wrr_r%D'[s<"W^?mWm^gUrrVkM');M-j+75ts*t~> +^Ae5U%J9]%2uJ=.!&X-E!&9')li.(=O%'E6!!NBL]!!5a +^Ae5U%J9]%2uJ=.!&X-E!&9')li.(=O%'E6!!NBL]!!5a +^Ae5U%J9]%2uJ=.!&X-E!&9')li.(=O%'E6!!NBL]!!5a +^]+>]&bQ,)"k&#&!2Ju_! +^]+>]&bQ,)"k&#&!2Ju_! +^]+>]&bQ,)"k&#&!2Ju_! +_#FGe(A%S,H@c(sq&/W$!2Y8HoD\p]Uf7c_!!F$;OMLgtrrKP^o)Jc>JcD,;J,~> +_#FGe(A%S,H@c(sq&/W$!2Y8HoD\p]Uf7c_!!F$;OMLgtrrKP^o)Jc>JcD,;J,~> +_#FGe(A%S,H@c(sq&/W$!2Y8HoD\p]Uf7c_!!F$;OMLgtrrKP^o)Jc>JcD,;J,~> +_>aPq&bH&(+o-]h!WR`>!!$AWs7ZHpjd&@>jT#Dd1Ms&KX8`4=54JUQ>_2pBs*t~> +_>aPq&bH&(+o-]h!WR`>!!$AWs7ZHpjd&@>jT#Dd1Ms&KX8`4=54JUQ>_2pBs*t~> +_>aPq&bH&(+o-]h!WR`>!!$AWs7ZHpjd&@>jT#Dd1Ms&KX8`4=54JUQ>_2pBs*t~> +_Z'Z32Y-nKVLedIrrM +_Z'Z32Y-nKVLedIrrM +_Z'Z32Y-nKVLedIrrM +_Z'UNo)Je>r.4nIrr>ja!!*?'JcG`L"9-Gh.HUU5%;_Narhobth-0sK!!!O\s-Wh:~> +_Z'UNo)Je>r.4nIrr>ja!!*?'JcG`L"9-Gh.HUU5%;_Narhobth-0sK!!!O\s-Wh:~> +_Z'UNo)Je>r.4nIrr>ja!!*?'JcG`L"9-Gh.HUU5%;_Narhobth-0sK!!!O\s-Wh:~> +_uB_4nc/ZbJcG]K!0lpP!9&M/"8f`I*9R;('NLIOV#LM^C'Eo'!9A_2RK%d~> +_uB_4nc/ZbJcG]K!0lpP!9&M/"8f`I*9R;('NLIOV#LM^C'Eo'!9A_2RK%d~> +_uB_4nc/ZbJcG]K!0lpP!9&M/"8f`I*9R;('NLIOV#LM^C'Eo'!9A_2RK%d~> +`;]kf$hF?!-2`>orVllNmf3@%K`;/IY$Mb)!!Ed*NmR`urrBUo!!'W^s-`n;~> +`;]kf$hF?!-2`>orVllNmf3@%K`;/IY$Mb)!!Ed*NmR`urrBUo!!'W^s-`n;~> +`;]kf$hF?!-2`>orVllNmf3@%K`;/IY$Mb)!!Ed*NmR`urrBUo!!'W^s-`n;~> +`W#u0..R? +`W#u0..R? +`W#u0..R? +`W#p=nc/\+qLS\Drr?Nt!!%;%rr_5C63QNQ"!)BprL!Tb([:u#BS$2Os*t~> +`W#p=nc/\+qLS\Drr?Nt!!%;%rr_5C63QNQ"!)BprL!Tb([:u#BS$2Os*t~> +`W#p=nc/\+qLS\Drr?Nt!!%;%rr_5C63QNQ"!)BprL!Tb([:u#BS$2Os*t~> +`r?%(nGiQ0JcGTH!2o;d!*5*Z"4Vu[!U9Xe"@.puPlC_Pl2UfKJcD/ +`r?%(nGiQ0JcGTH!2o;d!*5*Z"4Vu[!U9Xe"@.puPlC_Pl2UfKJcD/ +`r?%(nGiQ0JcGTH!2o;d!*5*Z"4Vu[!U9Xe"@.puPlC_Pl2UfKJcD/ +a8Z2'&+KW"dt.PqrrMBdnGiPGOT,C(FsH5O!tnh9mZIMLFQri+'nQCQs*t~> +a8Z2'&+KW"dt.PqrrMBdnGiPGOT,C(FsH5O!tnh9mZIMLFQri+'nQCQs*t~> +a8Z2'&+KW"dt.PqrrMBdnGiPGOT,C(FsH5O!tnh9mZIMLFQri+'nQCQs*t~> +a8Z-FnGiPHJcGNF!&=!D!"kCo!V9@V!!=Zn_Y]An!2A]X!:,49Rf@m~> +a8Z-FnGiPHJcGNF!&=!D!"kCo!V9@V!!=Zn_Y]An!2A]X!:,49Rf@m~> +a8Z-FnGiPHJcGNF!&=!D!"kCo!V9@V!!=Zn_Y]An!2A]X!:,49Rf@m~> +aSu:X!V$-iQ@])2rr@'.!!)t^rrL_#li7+l7$-2]rrCI2!!'les-it<~> +aSu:X!V$-iQ@])2rr@'.!!)t^rrL_#li7+l7$-2]rrCI2!!'les-it<~> +aSu:X!V$-iQ@])2rr@'.!!)t^rrL_#li7+l7$-2]rrCI2!!'les-it<~> +ao;D=/b&fA#P\n,NIaQ2^lc%IO2u(14-4L]7DN#3l0gR">:+s*t~> +ao;D=/b&fA#P\n,NIaQ2^lc%IO2u(14-4L]7DN#3l0gR">:+s*t~> +ao;D=/b&fA#P\n,NIaQ2^lc%IO2u(14-4L]7DN#3l0gR">:+s*t~> +ao;@%n,NGVJcGKE!4VFt!;)WX!rI$>n,NPCHH,o9rr=_;!!$qgs-it<~> +ao;@%n,NGVJcGKE!4VFt!;)WX!rI$>n,NPCHH,o9rr=_;!!$qgs-it<~> +ao;@%n,NGVJcGKE!4VFt!;)WX!rI$>n,NPCHH,o9rr=_;!!$qgs-it<~> +b5VM)%e'GuNIh-(rrC^@!!)MUrrM:Hnc/at8X87cs8W*!?0VCi7=kK-s*t~> +b5VM)%e'GuNIh-(rrC^@!!)MUrrM:Hnc/at8X87cs8W*!?0VCi7=kK-s*t~> +b5VM)%e'GuNIh-(rrC^@!!)MUrrM:Hnc/at8X87cs8W*!?0VCi7=kK-s*t~> +b5VHHmf3@QrrL"UoDesu@^,WYs8;lsMs:9B*.e-Ys*t~> +b5VHHmf3@QrrL"UoDesu@^,WYs8;lsMs:9B*.e-Ys*t~> +b5VHHmf3@QrrL"UoDesu@^,WYs8;lsMs:9B*.e-Ys*t~> +bPqUs!q60i++aIbrr=#.!!)2NrrJ2bp&G1+@(,o_s7uZp\`s.q!V(a@S,\!~> +bPqUs!q60i++aIbrr=#.!!)2NrrJ2bp&G1+@(,o_s7uZp\`s.q!V(a@S,\!~> +bPqUs!q60i++aIbrr=#.!!)2NrrJ2bp&G1+@(,o_s7uZp\`s.q!V(a@S,\!~> +bPqQXmf3?#JcGEC!'B]N!99UL!V9Ff!!<[6Z1rnMpAY-Ukl:_)JcD5>J,~> +bPqQXmf3?#JcGEC!'B]N!99UL!V9Ff!!<[6Z1rnMpAY-Ukl:_)JcD5>J,~> +bPqQXmf3?#JcGEC!'B]N!99UL!V9Ff!!<[6Z1rnMpAY-Ukl:_)JcD5>J,~> +bl7_3$h"&qY(?WGrr? +bl7_3$h"&qY(?WGrr? +bl7_3$h"&qY(?WGrr? +bl7[!mJm7KJcGEC!.FA;!8=%E!NZe.!!J,~> +bl7[!mJm7KJcGEC!.FA;!8=%E!NZe.!!J,~> +bl7[!mJm7KJcGEC!.FA;!8=%E!NZe.!!J,~> +c2Rh@*:Ek-)1hh[rrA>S!!(rMrrW(?!W +c2Rh@*:Ek-)1hh[rrA>S!!(rMrrW(?!W +c2Rh@*:Ek-)1hh[rrA>S!!(rMrrW(?!W +c2Rd?mJm5\JcGBB!133U!;<,d!U)fJ!!J,~> +c2Rd?mJm5\JcGBB!133U!;<,d!U)fJ!!J,~> +c2Rd?mJm5\JcGBB!133U!;<,d!U)fJ!!J,~> +c2Rc#mJm6:JcGBB!1EBX!"GY%#/qM]!^E"8JcFm4!6sd/!~> +c2Rc#mJm6:JcGBB!1EBX!"GY%#/qM]!^E"8JcFm4!6sd/!~> +c2Rc#mJm6:JcGBB!1EBX!"GY%#/qM]!^E"8JcFm4!6sd/!~> +cMmm`m/R-lJcGBB!1WNZ!$n<="Hj!NOl_/oj8T/S"R5sec[l+ds*t~> +cMmm`m/R-lJcGBB!1WNZ!$n<="Hj!NOl_/oj8T/S"R5sec[l+ds*t~> +cMmm`m/R-lJcGBB!1WNZ!$n<="Hj!NOl_/oj8T/S"R5sec[l+ds*t~> +cMmlcm/R.JJcGBB!1iZ\!'6qU"8%V3iIV$drr=P6!!&jHs.'+>~> +cMmlcm/R.JJcGBB!1iZ\!'6qU"8%V3iIV$drr=P6!!&jHs.'+>~> +cMmlcm/R.JJcGBB!1iZ\!'6qU"8%V3iIV$drr=P6!!&jHs.'+>~> +cMmkmmJm4pJcG?A!2&f^!)TKk!;h?Ih#@@Vl2Ug3JcD8?J,~> +cMmkmmJm4pJcG?A!2&f^!)TKk!;h?Ih#@@Vl2Ug3JcD8?J,~> +cMmkmmJm4pJcG?A!2&f^!)TKk!;h?Ih#@@Vl2Ug3JcD8?J,~> +ci4"#m/R,9JcG?A!28r`!,$l_JcG`L!/Bb=!)eCJSH"*~> +ci4"#m/R,9JcG?A!28r`!,$l_JcG`L!/Bb=!)eCJSH"*~> +ci4"#m/R,9JcG?A!28r`!,$l_JcG`L!/Bb=!)eCJSH"*~> +ci4!-m/R,XJcG?A!2K)b!.F)2!OeSNs-`le[-@Vk-\;;fs*t~> +ci4!-m/R,XJcG?A!2K)b!.F)2!OeSNs-`le[-@Vk-\;;fs*t~> +ci4!-m/R,XJcG?A!2K)b!.F)2!OeSNs-`le[-@Vk-\;;fs*t~> +ci3u8m/R-#JcG?A!2T/c!0c^J"3a+4?%N$DrrD$C!!*5tJcD;@J,~> +ci3u8m/R-#JcG?A!2T/c!0c^J"3a+4?%N$DrrD$C!!*5tJcD;@J,~> +ci3u8m/R-#JcG?A!2T/c!0c^J"3a+4?%N$DrrD$C!!*5tJcD;@J,~> +d/O.<#OMKkLk5TtrrAV\!!'4hrrq7_!<<*aJcD,;!"nJr!76;sSc=3~> +d/O.<#OMKkLk5TtrrAV\!!'4hrrq7_!<<*aJcD,;!"nJr!76;sSc=3~> +d/O.<#OMKkLk5TtrrAV\!!'4hrrq7_!<<*aJcD,;!"nJr!76;sSc=3~> +d/O*Mli7$`JcG?A!/0nC!8R#B!pjn3r;Zg@ec,[4eq*k@rr>7J!!&jHs.01?~> +d/O*Mli7$`JcG?A!/0nC!8R#B!pjn3r;Zg@ec,[4eq*k@rr>7J!!&jHs.01?~> +d/O*Mli7$`JcG?A!/0nC!8R#B!pjn3r;Zg@ec,[4eq*k@rr>7J!!&jHs.01?~> +d/O)Xli7%!JcG?A!,D**!=f"srrVnM&GlG.#6!6T"T=NJ<:b\@`r?$Tl2Ug1JcD;@J,~> +d/O)Xli7%!JcG?A!,D**!=f"srrVnM&GlG.#6!6T"T=NJ<:b\@`r?$Tl2Ug1JcD;@J,~> +d/O)Xli7%!JcG?A!,D**!=f"srrVnM&GlG.#6!6T"T=NJ<:b\@`r?$Tl2Ug1JcD;@J,~> +d/O)&li7%-JcG?A!)`=f!'9ZM!r\`3p]( +d/O)&li7%-JcG?A!)`=f!'9ZM!r\`3p]( +d/O)&li7%-JcG?A!)`=f!'9ZM!r\`3p]( +d/O(Uli7%:JcG?A!&sKL!,1s'!OaWS!!('qrs&(S)ZVh7h#.0P!eLBorrC.*!!"9qs.01?~> +d/O(Uli7%:JcG?A!&sKL!,1s'!OaWS!!('qrs&(S)ZVh7h#.0P!eLBorrC.*!!"9qs.01?~> +d/O(Uli7%:JcG?A!&sKL!,1s'!OaWS!!('qrs&(S)ZVh7h#.0P!eLBorrC.*!!"9qs.01?~> +dJj40lMpqEJcG?A!$:_3!13?X!R*n&!!'"Urs.qA'*&,Z^?#7ms7q6Gao;D6!p]ge"87 +dJj40lMpqEJcG?A!$:_3!13?X!R*n&!!'"Urs.qA'*&,Z^?#7ms7q6Gao;D6!p]ge"87 +dJj40lMpqEJcG?A!$:_3!13?X!R*n&!!'"Urs.qA'*&,Z^?#7ms7q6Gao;D6!p]ge"87 +dJj3_lMpqRJcGBB!WE;p!!("3rrV%\!V69kMrF[Aj`:h1!$/ALq>UBqnur%Ds2Y->-0bI1c%5nd +s*t~> +dJj3_lMpqRJcGBB!WE;p!!("3rrV%\!V69kMrF[Aj`:h1!$/ALq>UBqnur%Ds2Y->-0bI1c%5nd +s*t~> +dJj3_lMpqRJcGBB!WE;p!!("3rrV%\!V69kMrF[Aj`:h1!$/ALq>UBqnur%Ds2Y->-0bI1c%5nd +s*t~> +dJj39lMpq^JcGBB!:'.U!&E +T)X<~> +dJj39lMpq^JcGBB!:'.U!&E +T)X<~> +dJj39lMpq^JcGBB!:'.U!&E +T)X<~> +dJj2hli7"fJcG?A!7:<;!$h=>!qqE]mf3>fjo5DPHOB`P$4E00l2UeW[P\&3JcE^h!.a>7!-j(p +T)X<~> +dJj2hli7"fJcG?A!7:<;!$h=>!qqE]mf3>fjo5DPHOB`P$4E00l2UeW[P\&3JcE^h!.a>7!-j(p +T)X<~> +dJj2hli7"fJcG?A!7:<;!$h=>!qqE]mf3>fjo5DPHOB`P$4E00l2UeW[P\&3JcE^h!.a>7!-j(p +T)X<~> +dJj2BlMpq_JcGBB!3bto!)rdp!rSZ2m/R,RkPkVZOVRfp$STB7rr;o< +dJj2BlMpq_JcGBB!3bto!)rdp!rSZ2m/R,RkPkVZOVRfp$STB7rr;o< +dJj2BlMpq_JcGBB!3bto!)rdp!rSZ2m/R,RkPkVZOVRfp$STB7rr;o< +dJj1qlMpqYJcGBB!.FG=!0d?\!OaWH!!"b;rrJQ%qu@+8dG=j&e8lB*!&F4us2=p;e*6o5,(]cc +s*t~> +dJj1qlMpqYJcGBB!.FG=!0d?\!OaWH!!"b;rrJQ%qu@+8dG=j&e8lB*!&F4us2=p;e*6o5,(]cc +s*t~> +dJj1qlMpqYJcGBB!.FG=!0d?\!OaWH!!"b;rrJQ%qu@+8dG=j&e8lB*!&F4us2=p;e*6o5,(]cc +s*t~> +dJj1RlMpqRJcGBB!))n`!8.8M!+kBp!$CM+!T?cN!!`ad_=R][OY-P4!>FRGs24j;pB0^]! +dJj1RlMpqRJcGBB!))n`!8.8M!+kBp!$CM+!T?cN!!`ad_=R][OY-P4!>FRGs24j;pB0^]! +dJj1RlMpqRJcGBB!))n`!8.8M!+kBp!$CM+!T?cN!!`ad_=R][OY-P4!>FRGs24j;pB0^]! +dJj1NlMpqLJcGBB!#bD/!$;( +dJj1NlMpqLJcGBB!#bD/!$;( +dJj1NlMpqLJcGBB!#bD/!$;( +dJj1LlMpqEJcGEC!9NeP!+Pm+!.sG8!A3Q@1N59! +dJj1LlMpqEJcGEC!9NeP!+Pm+!.sG8!A3Q@1N59! +dJj1LlMpqEJcGEC!9NeP!+Pm+!.sG8!A3Q@1N59! +dJj1JlMpq;JcGEC!427s!2obp!2er[!9rtP!T,.#!!`Ne+F3OMB.*QV!.f_$^]+:Ql2Ug,JcDAB +J,~> +dJj1JlMpq;JcGEC!427s!2obp!2er[!9rtP!T,.#!!`Ne+F3OMB.*QV!.f_$^]+:Ql2Ug,JcDAB +J,~> +dJj1JlMpq;JcGEC!427s!2obp!2er[!9rtP!T,.#!!`Ne+F3OMB.*QV!.f_$^]+:Ql2Ug,JcDAB +J,~> +df0=Hl2Uh"JcGEC!.jbB!rsLFZ!?asli,Q9(B0Z4m!EoDQs1eR6Qg+PN8qI#7 +s*t~> +df0=Hl2Uh"JcGEC!.jbB!rsLFZ!?asli,Q9(B0Z4m!EoDQs1eR6Qg+PN8qI#7 +s*t~> +df0=Hl2Uh"JcGEC!.jbB!rsLFZ!?asli,Q9(B0Z4m!EoDQs1eR6Qg+PN8qI#7 +s*t~> +df0=Fl2Ug]JcGEC!)E.d!&FHO!:K%N!64L-$N8TUs8UkuV-lq%q>^OOpjrIZrrBh!!!"*ls.B=A~> +df0=Fl2Ug]JcGEC!)E.d!&FHO!:K%N!64L-$N8TUs8UkuV-lq%q>^OOpjrIZrrBh!!!"*ls.B=A~> +df0=Fl2Ug]JcGEC!)E.d!&FHO!:K%N!64L-$N8TUs8UkuV-lq%q>^OOpjrIZrrBh!!!"*ls.B=A~> +df0=Dl2UgBJcGEC!$(V2!-e;>!#+Ss!4;(l"O_9p7i_=)!>+1?s1SF4k3;pI!V1gAT`9N~> +df0=Dl2UgBJcGEC!$(V2!-e;>!#+Ss!4;(l"O_9p7i_=)!>+1?s1SF4k3;pI!V1gAT`9N~> +df0=Dl2UgBJcGEC!$(V2!-e;>!#+Ss!4;(l"O_9p7i_=)!>+1?s1SF4k3;pI!V1gAT`9N~> +df0=Bl2Ug(JcGHD!9NeP!5/1.!&s-B!3>Jd"2?r_0D>GHVLecZrr +df0=Bl2Ug(JcGHD!9NeP!5/1.!&s-B!3>Jd"2?r_0D>GHVLecZrr +df0=Bl2Ug(JcGHD!9NeP!5/1.!&s-B!3>Jd"2?r_0D>GHVLecZrr +df0=@l2UfbJcGHD!1WT\!>G>+rr?9f!!'"crr\uH3X#0W!*FgP])Mafl2UgTJcDDCJ,~> +df0=@l2UfbJcGHD!1WT\!>G>+rr?9f!!'"crr\uH3X#0W!*FgP])Mafl2UgTJcDDCJ,~> +df0=@l2UfbJcGHD!1WT\!>G>+rr?9f!!'"crr\uH3X#0W!*FgP])Mafl2UgTJcDDCJ,~> +df0@F!p]gd3J%5(rr>sh!!$^.rr@Q5!!&narrT/m%e]l'#2b"3])Mb8l2Ug)JcDDCJ,~> +df0@F!p]gd3J%5(rr>sh!!$^.rr@Q5!!&narrT/m%e]l'#2b"3])Mb8l2Ug)JcDDCJ,~> +df0@F!p]gd3J%5(rr>sh!!$^.rr@Q5!!&narrT/m%e]l'#2b"3])Mb8l2Ug)JcDDCJ,~> +dJj1elMpqprIP"DrrMs+oDem.q>UGckl:^Yn,EEQ"S;ZoBn?;prr@]:!!#]Ds.KCB~> +dJj1elMpqprIP"DrrMs+oDem.q>UGckl:^Yn,EEQ"S;ZoBn?;prr@]:!!#]Ds.KCB~> +dJj1elMpqprIP"DrrMs+oDem.q>UGckl:^Yn,EEQ"S;ZoBn?;prr@]:!!#]Ds.KCB~> +dJj21l2UhAb!%EL!T`9N~> +dJj21l2UhAb!%EL!T`9N~> +dJj21l2UhAb!%EL!T`9N~> +dJj2Sl2UgaJcGNF!-Ro6!-e5 +dJj2Sl2UgaJcGNF!-Ro6!-e5 +dJj2Sl2UgaJcGNF!-Ro6!-e5 +dJj2tl2Ug0JcGNF!%[[A!7CTA!:&eK!1WQZ!Pnj.!!$8Ts1&(0pB'U[!9&M/U&TW~> +dJj2tl2Ug0JcGNF!%[[A!7CTA!:&eK!1WQZ!Pnj.!!$8Ts1&(0pB'U[!9&M/U&TW~> +dJj2tl2Ug0JcGNF!%[[A!7CTA!:&eK!1WQZ!Pnj.!!$8Ts1&(0pB'U[!9&M/U&TW~> +dJj3@l2UfUJcGQG!9*PM!%msF!WE;g!!&GYrrM0snGiQ`JcE4Z!$UV-!5=$aU&TW~> +dJj3@l2UfUJcGQG!9*PM!%msF!WE;g!!&GYrrM0snGiQ`JcE4Z!$UV-!5=$aU&TW~> +dJj3@l2UfUJcGQG!9*PM!%msF!WE;g!!&GYrrM0snGiQ`JcE4Z!$UV-!5=$aU&TW~> +dJj3al2UhtrIP"FrrADX!!%fJrr=,*!!&>WrrMpUnGiRjkCNZBrr>UT!!&L>s.TIC~> +dJj3al2UhtrIP"FrrADX!!%fJrr=,*!!&>WrrMpUnGiRjkCNZBrr>UT!!&L>s.TIC~> +dJj3al2UhtrIP"FrrADX!!%fJrr=,*!!&>WrrMpUnGiRjkCNZBrr>UT!!&L>s.TIC~> +dJj4-kl:_)JcGTH!(una!"C!!&5Trr?g'!!"?ss0hq-Ds@<&GCfdfs*t~> +dJj4-kl:_)JcGTH!(una!"C!!&5Trr?g'!!"?ss0hq-Ds@<&GCfdfs*t~> +dJj4-kl:_)JcGTH!(una!"C!!&5Trr?g'!!"?ss0hq-Ds@<&GCfdfs*t~> +dJj7G#jMBiIt@XsrrM9co`+t\p&>"hl2UgHp&>#umf3>XJcE1Y!12sN!*"OLU&TW~> +dJj7G#jMBiIt@XsrrM9co`+t\p&>"hl2UgHp&>#umf3>XJcE1Y!12sN!*"OLU&TW~> +dJj7G#jMBiIt@XsrrM9co`+t\p&>"hl2UgHp&>#umf3>XJcE1Y!12sN!*"OLU&TW~> +d/O(rl2UfBJcGWI!0$OM!42@u!,Cd!!06dQ!VR]*!!$P\s0hq-^?P[u0nK@us*t~> +d/O(rl2UfBJcGWI!0$OM!42@u!,Cd!!06dQ!VR]*!!$P\s0hq-^?P[u0nK@us*t~> +d/O(rl2UfBJcGWI!0$OM!42@u!,Cd!!06dQ!VR]*!!$P\s0hq-^?P[u0nK@us*t~> +d/O)\l2Uhdl%/m4rr=YD!!+DEp&>#El2UgBpAY,?mJm6=JcE1Y!9NJG!"OS[U&TW~> +d/O)\l2Uhdl%/m4rr=YD!!+DEp&>#El2UgBpAY,?mJm6=JcE1Y!9NJG!"OS[U&TW~> +d/O)\l2Uhdl%/m4rr=YD!!+DEp&>#El2UgBpAY,?mJm6=JcE1Y!9NJG!"OS[U&TW~> +d/O*Kkl:^WJcG]K!6k'8!0[!S!0ZUI!/^IM!SI_G!!&[Cs0hq.rXS2n!:#.8UAo`~> +d/O*Kkl:^WJcG]K!6k'8!0[!S!0ZUI!/^IM!SI_G!!&[Cs0hq.rXS2n!:#.8UAo`~> +d/O*Kkl:^WJcG]K!6k'8!0[!S!0ZUI!/^IM!SI_G!!&[Cs0hq.rXS2n!:#.8UAo`~> +d/O.8"6ojd5_8t6rr?p/!!*W$o`"o_l2Ug=p\t4sm/R-qJcE.X!&Ws@!60TiUAo`~> +d/O.8"6ojd5_8t6rr?p/!!*W$o`"o_l2Ug=p\t4sm/R-qJcE.X!&Ws@!60TiUAo`~> +d/O.8"6ojd5_8t6rr?p/!!*W$o`"o_l2Ug=p\t4sm/R-qJcE.X!&Ws@!60TiUAo`~> +ci3u)l2Uhcf7Eu%rrMp0o`+u2oD\fkl2Ug:q#:BX#42BjZ%;q_rr?-c!!&dFs.]OD~> +ci3u)l2Uhcf7Eu%rrMp0o`+u2oD\fkl2Ug:q#:BX#42BjZ%;q_rr?-c!!&dFs.]OD~> +ci3u)l2Uhcf7Eu%rrMp0o`+u2oD\fkl2Ug:q#:BX#42BjZ%;q_rr?-c!!&dFs.]OD~> +ci3umkl:^&JcGcM!3Pno!<_0LrrBOn!!%TFrr@W:!!&sKs0_k,FQri+J:[`ps*t~> +ci3umkl:^&JcGcM!3Pno!<_0LrrBOn!!%TFrr@W:!!&sKs0_k,FQri+J:[`ps*t~> +ci3umkl:^&JcGcM!3Pno!<_0LrrBOn!!%TFrr@W:!!&sKs0_k,FQri+J:[`ps*t~> +ci4!\kl:_rp4<5Es%`4e!)N1c!5n(%!.ObD!W!`$!!&UAs0_k,Om2oH?%N$Ms*t~> +ci4!\kl:_rp4<5Es%`4e!)N1c!5n(%!.ObD!W!`$!!&UAs0_k,Om2oH?%N$Ms*t~> +ci4!\kl:_rp4<5Es%`4e!)N1c!5n(%!.ObD!W!`$!!&UAs0_k,Om2oH?%N$Ms*t~> +ci4%A%-[`lRt:S?j9"uS!5A%(!7:!2!.4PA!4_=p!0i'7[Jp60l2UfEJcDJEJ,~> +ci4%A%-[`lRt:S?j9"uS!5A%(!7:!2!.4PA!4_=p!0i'7[Jp60l2UfEJcDJEJ,~> +ci4%A%-[`lRt:S?j9"uS!5A%(!7:!2!.4PA!4_=p!0i'7[Jp60l2UfEJcDJEJ,~> +cMml:kl:_rh1GY,FnG_72t?nJh!+k>H27I?H0YG1Jq +cMml:kl:_rh1GY,FnG_72t?nJh!+k>H27I?H0YG1Jq +cMml:kl:_rh1GY,FnG_72t?nJh!+k>H27I?H0YG1Jq +cMmm)kPtW=pOrPIn.50l!5%e$!9rbK!.anF!'9EG!*"OL[Jp6ikl:_SJcDMFJ,~> +cMmm)kPtW=pOrPIn.50l!5%e$!9rbK!.anF!'9EG!*"OL[Jp6ikl:_SJcDMFJ,~> +cMmm)kPtW=pOrPIn.50l!5%e$!9rbK!.anF!'9EG!*"OL[Jp6ikl:_SJcDMFJ,~> +cMmq(!pBUaA;'s_MY-rL5k+dRp$)MWNV`YUo`j^^!%!3r[Jp:,#O29hc[l+ks*t~> +cMmq(!pBUaA;'s_MY-rL5k+dRp$)MWNV`YUo`j^^!%!3r[Jp:,#O29hc[l+ks*t~> +cMmq(!pBUaA;'s_MY-rL5k+dRp$)MWNV`YUo`j^^!%!3r[Jp:,#O29hc[l+ks*t~> +c2Rc7k5YLSLAq;M)ta12_sm[,rWDHd!1E]`!5n(%! +c2Rc7k5YLSLAq;M)ta12_sm[,rWDHd!1E]`!5n(%! +c2Rc7k5YLSLAq;M)ta12_sm[,rWDHd!1E]`!5n(%! +c2RdJk5YMhd"hW$TCi0a8FHKX&*j2qV>C2lXQ]]b`.@rrrr>:K!!%h+s.fUE~> +c2RdJk5YMhd"hW$TCi0a8FHKX&*j2qV>C2lXQ]]b`.@rrrr>:K!!%h+s.fUE~> +c2RdJk5YMhd"hW$TCi0a8FHKX&*j2qV>C2lXQ]]b`.@rrrr>:K!!%h+s.fUE~> +c2RhA*9R;&-1Hck!WFYD!!*,Dmf*8+lMppiqYpPakl:^;JcE.X!*ndh!+g`]U]5i~> +c2RhA*9R;&-1Hck!WFYD!!*,Dmf*8+lMppiqYpPakl:^;JcE.X!*ndh!+g`]U]5i~> +c2RhA*9R;&-1Hck!WFYD!!*,Dmf*8+lMppiqYpPakl:^;JcE.X!*ndh!+g`]U]5i~> +bl7Znjo>EZreg^U[IjM";!n8_.-gj5^A@j0M!4m>14fJ5rr@?0!!#?:s.fUE~> +bl7Znjo>EZreg^U[IjM";!n8_.-gj5^A@j0M!4m>14fJ5rr@?0!!#?:s.fUE~> +bl7Znjo>EZreg^U[IjM";!n8_.-gj5^A@j0M!4m>14fJ5rr@?0!!#?:s.fUE~> +bl7_("Qf[aMi.N75kY0Y!n$E8!&X!A!6Y0ml2Uf+JcDMFJ,~> +bl7_("Qf[aMi.N75kY0Y!n$E8!&X!A!6Y0ml2Uf+JcDMFJ,~> +bl7_("Qf[aMi.N75kY0Y!n$E8!&X!A!6Y0ml2Uf+JcDMFJ,~> +bPqQDaXc38[_Y!m/=mZ.g5jJCMf)#CHGN]#,Mh1o:rrB7f!!*9&JcDPGJ,~> +bPqQDaXc38[_Y!m/=mZ.g5jJCMf)#CHGN]#,Mh1o:rrB7f!!*9&JcDPGJ,~> +bPqQDaXc38[_Y!m/=mZ.g5jJCMf)#CHGN]#,Mh1o:rrB7f!!*9&JcDPGJ,~> +bPqROjT#;e^lJEqr\jHM!=RoRrr>dZ!!)'UrrA,D!!"s/s0hq-_W_%#l[f)3s*t~> +bPqROjT#;e^lJEqr\jHM!=RoRrr>dZ!!)'UrrA,D!!"s/s0hq-_W_%#l[f)3s*t~> +bPqROjT#;e^lJEqr\jHM!=RoRrr>dZ!!)'UrrA,D!!"s/s0hq-_W_%#l[f)3s*t~> +bPqVA+lr\)&($C;!35\l!/Tt@!*SUf!:Tda!3#&\!6]rn\,QHYkl:_4JcDPGJ,~> +bPqVA+lr\)&($C;!35\l!/Tt@!*SUf!:Tda!3#&\!6]rn\,QHYkl:_4JcDPGJ,~> +bPqVA+lr\)&($C;!35\l!/Tt@!*SUf!:Tda!3#&\!6]rn\,QHYkl:_4JcDPGJ,~> +b5VHsj8]2uh3%^ +b5VHsj8]2uh3%^ +b5VHsj8]2uh3%^ +b5VM7/E?d3-0^Tm!0m-V!4qIq!-7E+!!rE#!8?T9!3s1&(0qZ5s^!2S!A"7N@1[Jg+,l>ikT +s5 +b5VM7/E?d3-0^Tm!0m-V!4qIq!-7E+!!rE#!8?T9!3s1&(0qZ5s^!2S!A"7N@1[Jg+,l>ikT +s5 +b5VM7/E?d3-0^Tm!0m-V!4qIq!-7E+!!rE#!8?T9!3s1&(0qZ5s^!2S!A"7N@1[Jg+,l>ikT +s5 +ao;Cn%HIKi1\-e1!V.$"!!$!_rr@<1!!!c0rrMs)k5YL&JcE4Z!"eDq!0#G-#5Q)_2Zk,Arr3,f +G7+CPJcF[.J,~> +ao;Cn%HIKi1\-e1!V.$"!!$!_rr@<1!!!c0rrMs)k5YL&JcE4Z!"eDq!0#G-#5Q)_2Zk,Arr3,f +G7+CPJcF[.J,~> +ao;Cn%HIKi1\-e1!V.$"!!$!_rr@<1!!!c0rrMs)k5YL&JcE4Z!"eDq!0#G-#5Q)_2Zk,Arr3,f +G7+CPJcF[.J,~> +aSu7 +aSu7 +aSu7 +a8Z-UirB*Kp6Yd[k7%%a!/Ke +a8Z-UirB*Kp6Yd[k7%%a!/Ke +a8Z-UirB*Kp6Yd[k7%%a!/Ke +a8Z292WFc<3pi=7!+bd'!@7O*rr@6/!!#%SrrC.&!!*, +a8Z292WFc<3pi=7!+bd'!@7O*rr@6/!!#%SrrC.&!!*, +a8Z292WFc<3pi=7!+bd'!@7O*rr@6/!!#%SrrC.&!!*, +`r?(t'B9&n/*!)u!Q+s4!!*2@kPkO)li7#Tq#:Bl%H[Wk0Dg>#])Mb9l2Uf9j8T8[ab2k_pAb=Z +jn4KGpAb1DJcF^/J,~> +`r?(t'B9&n/*!)u!Q+s4!!*2@kPkO)li7#Tq#:Bl%H[Wk0Dg>#])Mb9l2Uf9j8T8[ab2k_pAb=Z +jn4KGpAb1DJcF^/J,~> +`r?(t'B9&n/*!)u!Q+s4!!*2@kPkO)li7#Tq#:Bl%H[Wk0Dg>#])Mb9l2Uf9j8T8[ab2k_pAb=Z +jn4KGpAb1DJcF^/J,~> +`W#tH!oj7]*nQq^!Vn5=!!%<,rr@0-!!#pkrr?!Z!!&15s1841E9[E'($>Mugm:qOo`,*qFn:Y2 +oDemLJcFa0J,~> +`W#tH!oj7]*nQq^!Vn5=!!%<,rr@0-!!#pkrr?!Z!!&15s1841E9[E'($>Mugm:qOo`,*qFn:Y2 +oDemLJcFa0J,~> +`W#tH!oj7]*nQq^!Vn5=!!%<,rr@0-!!#pkrr?!Z!!&15s1841E9[E'($>Mugm:qOo`,*qFn:Y2 +oDemLJcFa0J,~> +!:.W(!.3]*!>EPFrr@WD!!+eLk5PF&li7#lp\t6%jT#;ml%/lHrr@]:!!*,tli.(RWb*FF!! +!:.W(!.3]*!>EPFrr@WD!!+eLk5PF&li7#lp\t6%jT#;ml%/lHrr@]:!!*,tli.(RWb*FF!! +!:.W(!.3]*!>EPFrr@WD!!+eLk5PF&li7#lp\t6%jT#;ml%/lHrr@]:!!*,tli.(RWb*FF!! +!11\)!W?'Y!!*J:TDnrE#PS3!#Lhf7!-@K,!,M?/!W=)$!!$GYs1A:2PN`&ImI1&Xpq:r0!q60k +15-e=!!#ZCs5O'/~> +!11\)!W?'Y!!*J:TDnrE#PS3!#Lhf7!-@K,!,M?/!W=)$!!$GYs1A:2PN`&ImI1&Xpq:r0!q60k +15-e=!!#ZCs5O'/~> +!11\)!W?'Y!!*J:TDnrE#PS3!#Lhf7!-@K,!,M?/!W=)$!!$GYs1A:2PN`&ImI1&Xpq:r0!q60k +15-e=!!#ZCs5O'/~> +!'S:#!Vf"@!!*.VU&P/m5P>'WMram +!'S:#!Vf"@!!*.VU&P/m5P>'WMram +!'S:#!Vf"@!!*.VU&P/m5P>'WMram +!$!`SFup`55jRB!-.?*!0['U!TF4C!!+kQJcEF`!2A]X!7LT@"7qj`%I3up +#8lb,!4@CXj8XW~> +!$!`SFup`55jRB!-.?*!0['U!TF4C!!+kQJcEF`!2A]X!7LT@"7qj`%I3up +#8lb,!4@CXj8XW~> +!$!`SFup`55jRB!-.?*!0['U!TF4C!!+kQJcEF`!2A]X!7LT@"7qj`%I3up +#8lb,!4@CXj8XW~> +!<@qnrrM:,i;`m%a//e:kS!Ui!=muHrr@$)!!&qirr>^Q!!%\'s1SF4Wp'K``VTT:n??^WkPtSf +kl:]qJcFd1J,~> +!<@qnrrM:,i;`m%a//e:kS!Ui!=muHrr@$)!!&qirr>^Q!!%\'s1SF4Wp'K``VTT:n??^WkPtSf +kl:]qJcFd1J,~> +!<@qnrrM:,i;`m%a//e:kS!Ui!=muHrr@$)!!&qirr>^Q!!%\'s1SF4Wp'K``VTT:n??^WkPtSf +kl:]qJcFd1J,~> +!<=ahrrLjii;`o_L]+.N!(lka!3"oW!,q3(!5/")!5mjt!"O$iH +'Dd:[jSs`~> +!<=ahrrLjii;`o_L]+.N!(lka!3"oW!,q3(!5/")!5mjt!"O$iH +'Dd:[jSs`~> +!<=ahrrLjii;`o_L]+.N!(lka!3"oW!,q3(!5/")!5mjt!"O$iH +'Dd:[jSs`~> +rr<&K_Z'Y\%H%3e7H^ZM!1``_!.j,/!,q3(!7LN>!(u;P! +rr<&K_Z'Y\%H%3e7H^ZM!1``_!.j,/!,q3(!7LN>!(u;P! +rr<&K_Z'Y\%H%3e7H^ZM!1``_!.j,/!,q3(!7LN>!(u;P! +rr<%F_>aPI#2fI^'>:IH!S7_R!!$lorr?s'!!)3SrrLCGj8]2ga+=9+rrBk!!!!Pg!!4=K!p0I_ +?%N%:s*t~> +rr<%F_>aPI#2fI^'>:IH!S7_R!!$lorr?s'!!)3SrrLCGj8]2ga+=9+rrBk!!!!Pg!!4=K!p0I_ +?%N%:s*t~> +rr<%F_>aPI#2fI^'>:IH!S7_R!!$lorr?s'!!)3SrrLCGj8]2ga+=9+rrBk!!!!Pg!!4=K!p0I_ +?%N%:s*t~> +rr<'Crk\U8[g1dj!E7gWrrMmKpAb4trS[\UD=%<(!W2Kg!*8+[!>O.:s2"^8a2n;`:@A-Njo>Dl +p4<8*s*t~> +rr<'Crk\U8[g1dj!E7gWrrMmKpAb4trS[\UD=%<(!W2Kg!*8+[!>O.:s2"^8a2n;`:@A-Njo>Dl +p4<8*s*t~> +rr<'Crk\U8[g1dj!E7gWrrMmKpAb4trS[\UD=%<(!W2Kg!*8+[!>O.:s2"^8a2n;`:@A-Njo>Dl +p4<8*s*t~> +rVur;_#FGK%Gq-e#C,gDrr?s2!!,[fhu<[mm/R,!o)AaC"QKI_+6A(R_Z'V^bQ%\P;OROa!35,\ +!3CbOjo9i~> +rVur;_#FGK%Gq-e#C,gDrr?s2!!,[fhu<[mm/R,!o)AaC"QKI_+6A(R_Z'V^bQ%\P;OROa!35,\ +!3CbOjo9i~> +rVur;_#FGK%Gq-e#C,gDrr?s2!!,[fhu<[mm/R,!o)AaC"QKI_+6A(R_Z'V^bQ%\P;OROa!35,\ +!3CbOjo9i~> +rVuq6^]+>V'A`]j(nCQ2rrKG,p](=Np"o]KD!_3&-h73:@c@@g0(4Ak_uB_fci=1W8;b[jr;Qfn +(?PSs;h=u1s*t~> +rVuq6^]+>V'A`]j(nCQ2rrKG,p](=Np"o]KD!_3&-h73:@c@@g0(4Ak_uB_fci=1W8;b[jr;Qfn +(?PSs;h=u1s*t~> +rVuq6^]+>V'A`]j(nCQ2rrKG,p](=Np"o]KD!_3&-h73:@c@@g0(4Ak_uB_fci=1W8;b[jr;Qfn +(?PSs;h=u1s*t~> +rVus7qnN.3e/I-C!AVBtrrM3qp](=Pn_O3FC[D*%4n8OQjq6SQ!B0S$s2=p;hUDN.#=!dWqY1!i +G3/c*$1WTHk5Tr~> +rVus7qnN.3e/I-C!AVBtrrM3qp](=Pn_O3FC[D*%4n8OQjq6SQ!B0S$s2=p;hUDN.#=!dWqY1!i +G3/c*$1WTHk5Tr~> +rVus7qnN.3e/I-C!AVBtrrM3qp](=Pn_O3FC[D*%4n8OQjq6SQ!B0S$s2=p;hUDN.#=!dWqY1!i +G3/c*$1WTHk5Tr~> +r;Zi,^Ae5j,MW8"@)f_V!W>4W!!,(Jh#@@hm/R,anG`KXi;`m0j+76LrrD05!!EB]GImJ=rrLgS +jo>CUJcFm4J,~> +r;Zi,^Ae5j,MW8"@)f_V!W>4W!!,(Jh#@@hm/R,anG`KXi;`m0j+76LrrD05!!EB]GImJ=rrLgS +jo>CUJcFm4J,~> +r;Zi,^Ae5j,MW8"@)f_V!W>4W!!,(Jh#@@hm/R,anG`KXi;`m0j+76LrrD05!!EB]GImJ=rrLgS +jo>CUJcFm4J,~> +r;Zh'^&J,q/_^7,259lYrrN(-p](>/r7h5OB^Gd"BCPp%r^#KC!?K[@s2P'=jP0_ +r;Zh'^&J,q/_^7,259lYrrN(-p](>/r7h5OB^Gd"BCPp%r^#KC!?K[@s2P'=jP0_ +r;Zh'^&J,q/_^7,259lYrrN(-p](>/r7h5OB^Gd"BCPp%r^#KC!?K[@s2P'=jP0_ +r;Zj-otCA+oJtV*!Z6FL^]+?6B__W/%B.t[!+G6p!.=88!SRk=!!*\KJcEmm"6#VC$f:pd,%[\9 +lMgj]jo>Dcm",3"s*t~> +r;Zj-otCA+oJtV*!Z6FL^]+?6B__W/%B.t[!+G6p!.=88!SRk=!!*\KJcEmm"6#VC$f:pd,%[\9 +lMgj]jo>Dcm",3"s*t~> +r;Zj-otCA+oJtV*!Z6FL^]+?6B__W/%B.t[!+G6p!.=88!SRk=!!*\KJcEmm"6#VC$f:pd,%[\9 +lMgj]jo>Dcm",3"s*t~> +qu?_q]`/$/DV5!k#$]3drrN+9q#CFGf@^*'=R?(gP4&>MLu876#d&[Xci4+C]Q>[]!!=*CS_rT0 +!VdAk!!&C;s6'E4~> +qu?_q]`/$/DV5!k#$]3drrN+9q#CFGf@^*'=R?(gP4&>MLu876#d&[Xci4+C]Q>[]!!=*CS_rT0 +!VdAk!!&C;s6'E4~> +qu?_q]`/$/DV5!k#$]3drrN+9q#CFGf@^*'=R?(gP4&>MLu876#d&[Xci4+C]Q>[]!!=*CS_rT0 +!VdAk!!&C;s6'E4~> +qu?^m])Mf.$ePF]0Rq@Hd/O:?_3\hHec#LJEqo\9>4gGH!)Mt^!2o8b!W+S/!!*1eJcF4!"65bE +$/bdd&lOtFro3qXETR6$5_8sus*t~> +qu?^m])Mf.$ePF]0Rq@Hd/O:?_3\hHec#LJEqo\9>4gGH!)Mt^!2o8b!W+S/!!*1eJcF4!"65bE +$/bdd&lOtFro3qXETR6$5_8sus*t~> +qu?^m])Mf.$ePF]0Rq@Hd/O:?_3\hHec#LJEqo\9>4gGH!)Mt^!2o8b!W+S/!!*1eJcF4!"65bE +$/bdd&lOtFro3qXETR6$5_8sus*t~> +qu?a%mCN;udjEWG"!26hq:YcOk.Qsm58O1t!DrXlrr?[-!!*[iec,V=m/R.!mJd46"Q'1[GQ!*m +f`)'%K/ +qu?a%mCN;udjEWG"!26hq:YcOk.Qsm58O1t!DrXlrr?[-!!*[iec,V=m/R.!mJd46"Q'1[GQ!*m +f`)'%K/ +qu?a%mCN;udjEWG"!26hq:YcOk.Qsm58O1t!DrXlrr?[-!!*[iec,V=m/R.!mJd46"Q'1[GQ!*m +f`)'%K/ +qZ$Vb\c2^":t,II%p5b!ir92O_j>+%&buD-$^q"o!W6't!! +qZ$Vb\c2^":t,II%p5b!ir92O_j>+%&buD-$^q"o!W6't!! +qZ$Vb\c2^":t,II%p5b!ir92O_j>+%&buD-$^q"o!W6't!! +qZ$U]\GlX0L]c*+"U$GeQHK!irs&5DU39*K!VHEsB7JcFs6J,~> +qZ$U]\GlX0L]c*+"U$GeQHK!irs&5DU39*K!VHEsB7JcFs6J,~> +qZ$U]\GlX0L]c*+"U$GeQHK!irs&5DU39*K!VHEsB7JcFs6J,~> +qZ$Wuj1#$h`#6l$"U6esSC%0/rs/#C]V:3^.0B#>$luYRs2J:V*rl9PC +qZ$Wuj1#$h`#6l$"U6esSC%0/rs/#C]V:3^.0B#>$luYRs2J:V*rl9PC +qZ$Wuj1#$h`#6l$"U6esSC%0/rs/#C]V:3^.0B#>$luYRs2J:V*rl9PC +q>^MS[f6F%FTfng#RMFp/2TIS,6R63$j(57oU7H6-49i>U\;q3!$^h2!#"Mq!,:6h!@Q0Ds6BUd +g5A&qirB/d8X.lOrr?ou!!%7ps69Q6~> +q>^MS[f6F%FTfng#RMFp/2TIS,6R63$j(57oU7H6-49i>U\;q3!$^h2!#"Mq!,:6h!@Q0Ds6BUd +g5A&qirB/d8X.lOrr?ou!!%7ps69Q6~> +q>^MS[f6F%FTfng#RMFp/2TIS,6R63$j(57oU7H6-49i>U\;q3!$^h2!#"Mq!,:6h!@Q0Ds6BUd +g5A&qirB/d8X.lOrr?ou!!%7ps69Q6~> +q>^LN[/U0N0s:Qa.`L"W&-)kc)0jlWrr +q>^LN[/U0N0s:Qa.`L"W&-)kc)0jlWrr +q>^LN[/U0N0s:Qa.`L"W&-)kc)0jlWrr +q#CEG[/U4)L^CBf$3tsU6NI/e+'#TCa8Z,NmJm5OkPkSW5MQ5>1rb+Ho`#$g[V$N;!!3@ +q#CEG[/U4)L^CBf$3tsU6NI/e+'#TCa8Z,NmJm5OkPkSW5MQ5>1rb+Ho`#$g[V$N;!!3@ +q#CEG[/U4)L^CBf$3tsU6NI/e+'#TCa8Z,NmJm5OkPkSW5MQ5>1rb+Ho`#$g[V$N;!!3@ +q#CDCZMssZ5d^Rn+]fW^!!3[bm)8o(#OVQl +q#CDCZMssZ5d^Rn+]fW^!!3[bm)8o(#OVQl +q#CDCZMssZ5d^Rn+]fW^!!3[bm)8o(#OVQl +q#CF?riuJ(Wue_M!!3'!!X3H,_uB`8m/R-'jo5AN52-&=%ZC.6s8N$#qm^&HjT#Pm7uPans8UI6 +_>aQ.&*Eon'D[4Zli2J~> +q#CF?riuJ(Wue_M!!3'!!X3H,_uB`8m/R-'jo5AN52-&=%ZC.6s8N$#qm^&HjT#Pm7uPans8UI6 +_>aQ.&*Eon'D[4Zli2J~> +q#CF?riuJ(Wue_M!!3'!!X3H,_uB`8m/R-'jo5AN52-&=%ZC.6s8N$#qm^&HjT#Pm7uPans8UI6 +_>aQ.&*Eon'D[4Zli2J~> +p](<8Yl=e%SKP?@!E.XfrrD]Y!!%]5rrMgeg&M.%\:X__r4ZeXjT#B'BX@BArr?cq!!'9Ts6K]8~> +p](<8Yl=e%SKP?@!E.XfrrD]Y!!%]5rrMgeg&M.%\:X__r4ZeXjT#B'BX@BArr?cq!!'9Ts6K]8~> +p](<8Yl=e%SKP?@!E.XfrrD]Y!!%]5rrMgeg&M.%\:X__r4ZeXjT#B'BX@BArr?cq!!'9Ts6K]8~> +p](;3Y5\S!PoI:7!BA!3rrDBP!!&MKrrMt$f`2%Vh1u"4rPNFgjo>Md3ebr[[Jp6Pjo>B^JcG'9 +J,~> +p](;3Y5\S!PoI:7!BA!3rrDBP!!&MKrrMt$f`2%Vh1u"4rPNFgjo>Md3ebr[[Jp6Pjo>B^JcG'9 +J,~> +p](;3Y5\S!PoI:7!BA!3rrDBP!!&MKrrMt$f`2%Vh1u"4rPNFgjo>Md3ebr[[Jp6Pjo>B^JcG'9 +J,~> +p](=2qlTl"p5Tp&!!4UJrkAC4ip?^GZJtlbrGL6f!CXV[rr`8AE?+*@!t\P.l`gBh2!4i>$1WTH +m/MS~> +p](=2qlTl"p5Tp&!!4UJrkAC4ip?^GZJtlbrGL6f!CXV[rr`8AE?+*@!t\P.l`gBh2!4i>$1WTH +m/MS~> +p](=2qlTl"p5Tp&!!4UJrkAC4ip?^GZJtlbrGL6f!CXV[rr`8AE?+*@!t\P.l`gBh2!4i>$1WTH +m/MS~> +pAb3'X8`8!SKbrO!sDN8rk/72g$Jb>al*1!J_'l'2R!(ArrUJi+m&b,.CSJcG*: +J,~> +pAb3'X8`8!SKbrO!sDN8rk/72g$Jb>al*1!J_'l'2R!(ArrUJi+m&b,.CSJcG*: +J,~> +pAb3'X8`8!SKbrO!sDN8rk/72g$Jb>al*1!J_'l'2R!(ArrUJi+m&b,.CSJcG*: +J,~> +pAb2"W;cq?@gpEY!Z-7E\c2ZVm/R.Ehu<_H!nRDR.\Z^)rrUYs-Kb@2#=aj2WW*"c#3Psd7=kL* +s*t~> +pAb2"W;cq?@gpEY!Z-7E\c2ZVm/R.Ehu<_H!nRDR.\Z^)rrUYs-Kb@2#=aj2WW*"c#3Psd7=kL* +s*t~> +pAb2"W;cq?@gpEY!Z-7E\c2ZVm/R.Ehu<_H!nRDR.\Z^)rrUYs-Kb@2#=aj2WW*"c#3Psd7=kL* +s*t~> +pAb4(p8@olnsM>Y!!56Yq7$A(a6`j,pYPoN[hI +pAb4(p8@olnsM>Y!!56Yq7$A(a6`j,pYPoN[hI +pAb4(p8@olnsM>Y!!56Yq7$A(a6`j,pYPoN[hI +p&G)lV#LM[HRdJE!s1E4e$T,T^?tt$&)@0ci&0$b!s1f`oqVNirR70@,No+1!B#DNrhBDmV<.aX +O+I>us*t~> +p&G)lV#LM[HRdJE!s1E4e$T,T^?tt$&)@0ci&0$b!s1f`oqVNirR70@,No+1!B#DNrhBDmV<.aX +O+I>us*t~> +p&G)lV#LM[HRdJE!s1E4e$T,T^?tt$&)@0ci&0$b!s1f`oqVNirR70@,No+1!B#DNrhBDmV<.aX +O+I>us*t~> +p&G(gU&P5SRo9mP!! +p&G(gU&P5SRo9mP!! +p&G(gU&P5SRo9mP!! +p&G*um[sL^r5 +p&G*um[sL^r5 +p&G*um[sL^r5 +o`+u\S,W]kh6MfA1(*FL"pQY^KsBJ4WrE'imJm5df`)!$-dVhq(h0W<])Ms-adHg%$KM0h&6l7. +Qi@&kjo>C1JcG0 +o`+u\S,W]kh6MfA1(*FL"pQY^KsBJ4WrE'imJm5df`)!$-dVhq(h0W<])Ms-adHg%$KM0h&6l7. +Qi@&kjo>C1JcG0 +o`+u\S,W]kh6MfA1(*FL"pQY^KsBJ4WrE'imJm5df`)!$-dVhq(h0W<])Ms-adHg%$KM0h&6l7. +Qi@&kjo>C1JcG0 +o`+tWQ2_QtgVU1hPD+3p>"r+3Fb>jMYJ&*XV#LFWmJm6&fDbmGB[-S[#=Xa/_uBr?hQr/F.g+c2 +!uP[\q3:m[q%Dij!@7Yqs6ou<~> +o`+tWQ2_QtgVU1hPD+3p>"r+3Fb>jMYJ&*XV#LFWmJm6&fDbmGB[-S[#=Xa/_uBr?hQr/F.g+c2 +!uP[\q3:m[q%Dij!@7Yqs6ou<~> +o`+tWQ2_QtgVU1hPD+3p>"r+3Fb>jMYJ&*XV#LFWmJm6&fDbmGB[-S[#=Xa/_uBr?hQr/F.g+c2 +!uP[\q3:m[q%Dij!@7Yqs6ou<~> +o`,!oj+76+rr@fA!!%W$rrKJIbQ%bf=d.),ci47Ki4G:q9dg8(!!=Ec`;Pet!+t?n!6B`kn,In~> +o`,!oj+76+rr@fA!!%W$rrKJIbQ%bf=d.),ci47Ki4G:q9dg8(!!=Ec`;Pet!+t?n!6B`kn,In~> +o`,!oj+76+rr@fA!!%W$rrKJIbQ%bf=d.),ci47Ki4G:q9dg8(!!=Ec`;Pet!+t?n!6B`kn,In~> +oDelLJcDPG!.+&5!1D@:!qL./aoDPP5^B^%h#@]OgV^+XI:c8)!o!\V/Ul$)rrBgr!!$m6rrVrN +idq.(s*t~> +oDelLJcDPG!.+&5!1D@:!qL./aoDPP5^B^%h#@]OgV^+XI:c8)!o!\V/Ul$)rrBgr!!$m6rrVrN +idq.(s*t~> +oDelLJcDPG!.+&5!1D@:!qL./aoDPP5^B^%h#@]OgV^+XI:c8)!o!\V/Ul$)rrBgr!!$m6rrVrN +idq.(s*t~> +oDekGJcDPG!,q9*!3joO!Q?P.!$i-r-87GI9NGP8F+&e)RA6maUn=*@O,AXAH?F1BARJ_B3?eUV +!!<9_MVF!f!W>rrVQ;rdk+Ks*t~> +oDekGJcDPG!,q9*!3joO!Q?P.!$i-r-87GI9NGP8F+&e)RA6maUn=*@O,AXAH?F1BARJ_B3?eUV +!!<9_MVF!f!W>rrVQ;rdk+Ks*t~> +oDekGJcDPG!,q9*!3joO!Q?P.!$i-r-87GI9NGP8F+&e)RA6maUn=*@O,AXAH?F1BARJ_B3?eUV +!!<9_MVF!f!W>rrVQ;rdk+Ks*t~> +o)JdAJcDSH!+YEs!6 +o)JdAJcDSH!+YEs!6 +o)JdAJcDSH!+YEs!6 +o)Jc +o)Jc +o)Jc +o)Je4rdk*Hrr>a\!!)]:rrKbjK)buT4HefWs8W*"rYsr!#8`?kd:`q/[XnJSs*t~> +o)Je4rdk*Hrr>a\!!)]:rrKbjK)buT4HefWs8W*"rYsr!#8`?kd:`q/[XnJSs*t~> +o)Je4rdk*Hrr>a\!!)]:rrKbjK)buT4HefWs8W*"rYsr!#8`?kd:`q/[XnJSs*t~> +nc/[-JcDVI!($&R!"I-O!rf;OL]@MX3KN3Os82frB]f@$)NX?a49,V1o7?r:s*t~> +nc/[-JcDVI!($&R!"I-O!rf;OL]@MX3KN3Os82frB]f@$)NX?a49,V1o7?r:s*t~> +nc/[-JcDVI!($&R!"I-O!rf;OL]@MX3KN3Os82frB]f@$)NX?a49,V1o7?r:s*t~> +nc/Z%JcDVI!&a3F!$o\d!rSZ4N;s%]2N6UGs7lTo[cmbt*0]'%(B=G2gk#M!s*t~> +nc/Z%JcDVI!&a3F!$o\d!rSZ4N;s%]2N6UGs7lTo[cmbt*0]'%(B=G2gk#M!s*t~> +nc/Z%JcDVI!&a3F!$o\d!rSZ4N;s%]2N6UGs7lTo[cmbt*0]'%(B=G2gk#M!s*t~> +nc/\%pOW@Brr=M:!!#+$rrW"X(m+e"1Pst>s7QBmp^HKh#To>::'1Ir/%U<3o`'F~> +nc/\%pOW@Brr=M:!!#+$rrW"X(m+e"1Pst>s7QBmp^HKh#To>::'1Ir/%U<3o`'F~> +nc/\%pOW@Brr=M:!!#+$rrW"X(m+e"1Pst>s7QBmp^HKh#To>::'1Ir/%U<3o`'F~> +nGiQhJcDYJ!$:S/!)gf9!r8QIQ2gt?L>7@[nc&SfmJm>4Lkd8T!!3RarIP"?s*t~> +nGiQhJcDYJ!$:S/!)gf9!r8QIQ2gt?L>7@[nc&SfmJm>4Lkd8T!!3RarIP"?s*t~> +nGiQhJcDYJ!$:S/!)gf9!r8QIQ2gt?L>7@[nc&SfmJm>4Lkd8T!!3RarIP"?s*t~> +nGiP_JcDYJ!#"`#!,9=M!le=GS,`UBK@thUn,EFUB(,d&,\^KirW!!@PkTb/nc++~> +nGiP_JcDYJ!#"`#!,9=M!le=GS,`UBK@thUn,EFUB(,d&,\^KirW!!@PkTb/nc++~> +nGiP_JcDYJ!#"`#!,9=M!le=GS,`UBK@thUn,EFUB(,d&,\^KirW!!@PkTb/nc++~> +nGiRnl%/l5rr<;m!!%PbrrV8.'qt[1#=X1.JcG3="5o;."RuHn*^MOZ!!4@5q18S7s*t~> +nGiRnl%/l5rr<;m!!%PbrrV8.'qt[1#=X1.JcG3="5o;."RuHn*^MOZ!!4@5q18S7s*t~> +nGiRnl%/l5rr<;m!!%PbrrV8.'qt[1#=X1.JcG3="5o;."RuHn*^MOZ!!4@5q18S7s*t~> +n,NHNJcD_L!;c*`!11G""8e?N!ic5(!@M9Cdf"asn,EL:JM@2p!!3 +n,NHNJcD_L!;c*`!11G""8e?N!ic5(!@M9Cdf"asn,EL:JM@2p!!3 +n,NHNJcD_L!;c*`!11G""8e?N!ic5(!@M9Cdf"asn,EL:JM@2p!!3 +n,NGEJcD_L!:T=U!3Ws6"6Yh.!O2V-$UK*Fm",3)rr`27E$=BE!\C5HJcG'9J,~> +n,NGEJcD_L!:T=U!3Ws6"6Yh.!O2V-$UK*Fm",3)rr`27E$=BE!\C5HJcG'9J,~> +n,NGEJcD_L!:T=U!3Ws6"6Yh.!O2V-$UK*Fm",3)rr`27E$=BE!\C5HJcG'9J,~> +mf3@;JcDbM!9 +mf3@;JcDbM!9 +mf3@;JcDbM!9 +mf3?3JcDbM!8-]>!8P!^"7:e+"2Y$A"YEu;]'4eGlMgtPT25mV!!-6/JcFm4J,~> +mf3?3JcDbM!8-]>!8P!^"7:e+"2Y$A"YEu;]'4eGlMgtPT25mV!!-6/JcFm4J,~> +mf3?3JcDbM!8-]>!8P!^"7:e+"2Y$A"YEu;]'4eGlMgtPT25mV!!-6/JcFm4J,~> +mf3A.rIP!LrrC:2!!)Vrrrhr#E%:t6!!`ZS8Sa?kf)C7#kl1bQJ3O(r!!3pZfn'1as*t~> +mf3A.rIP!LrrC:2!!)Vrrrhr#E%:t6!!`ZS8Sa?kf)C7#kl1bQJ3O(r!!3pZfn'1as*t~> +mf3A.rIP!LrrC:2!!)Vrrrhr#E%:t6!!`ZS8Sa?kf)C7#kl1bQJ3O(r!!3pZfn'1as*t~> +mJm7!JcDeN!5S%'!"5q/"6cIb+kZi%!Z>N&^q#!!<9lX8.>Hir=N~> +mJm7!JcDeN!5S%'!"5q/"6cIb+kZi%!Z>N&^q#!!<9lX8.>Hir=N~> +mJm7!JcDeN!5S%'!"5q/"6cIb+kZi%!Z>N&^q#!!<9lX8.>Hir=N~> +mJm5nJcDeN!4D7q!$\EB./rM[];(=->#7aU3AN'/*#9M;-7^c.4$Z5,:fU\+A86+?S?^&emf%e; +hZ!]4Lbo.n!!4'chLY^as*t~> +mJm5nJcDeN!4D7q!$\EB./rM[];(=->#7aU3AN'/*#9M;-7^c.4$Z5,:fU\+A86+?S?^&emf%e; +hZ!]4Lbo.n!!4'chLY^as*t~> +mJm5nJcDeN!4D7q!$\EB./rM[];(=->#7aU3AN'/*#9M;-7^c.4$Z5,:fU\+A86+?S?^&emf%e; +hZ!]4Lbo.n!!4'chLY^as*t~> +mJm7ro7?qCrrB%e!!#$1s+14.rrUf)0]N-8"&,usJcFR+J,~> +mJm7ro7?qCrrB%e!!#$1s+14.rrUf)0]N-8"&,usJcFR+J,~> +mJm7ro7?qCrrB%e!!#$1s+14.rrUf)0]N-8"&,usJcFR+J,~> +m/R-\JcDhO!1rWZ!)S7HJcFd1!n)QKiW'#hF7"PYgAc[~> +m/R-\JcDhO!1rWZ!)S7HJcFd1!n)QKiW'#hF7"PYgAc[~> +m/R-\JcDhO!1rWZ!)S7HJcFd1!n)QKiW'#hF7"PYgAc[~> +m/R,SJcDhO!0ZdN!,$l_JcFm4!mZ*>iW'$-I*dHEfDg@~> +m/R,SJcDhO!0ZdN!,$l_JcFm4!mZ*>iW'$-I*dHEfDg@~> +m/R,SJcDhO!0ZdN!,$l_JcFm4!mZ*>iW'$-I*dHEfDg@~> +m/R.gj+764rr@iC!!%J!s+148rr`8BFs>oG![rHDJcF7"J,~> +m/R.gj+764rr@iC!!%J!s+148rr`8BFs>oG![rHDJcF7"J,~> +m/R.gj+764rr@iC!!%J!s+148rr`8BFs>oG![rHDJcF7"J,~> +li7$AJcDkP!.4/7!0r-8JcG-;"9$/X*o[/$."0Nps3^js~> +li7$AJcDkP!.4/7!0r-8JcG-;"9$/X*o[/$."0Nps3^js~> +li7$AJcDkP!.4/7!0r-8JcG-;"9$/X*o[/$."0Nps3^js~> +li7#9JcDkP!,q<+!3CbOJcG6>"9$)R)WC_u.=T`ss3CXp~> +li7#9JcDkP!,q<+!3CbOJcG6>"9$)R)WC_u.=T`ss3CXp~> +li7#9JcDkP!,q<+!3CbOJcG6>"9$)R)WC_u.=T`ss3CXp~> +lMpq/JcDnQ!+bNu!5O0cJcGBB"O<[BI1P? +lMpq/JcDnQ!+bNu!5O0cJcGBB"O<[BI1P? +lMpq/JcDnQ!+bNu!5O0cJcGBB"O<[BI1P? +lMpouJcDnQ!*J[i!6p)pJcGTH#6!Q!RS+5'iW''&BX.2\s2b4j~> +lMpouJcDnQ!*J[i!6p)pJcGTH#6!Q!RS+5'iW''&BX.2\s2b4j~> +lMpouJcDnQ!*J[i!6p)pJcGTH#6!Q!RS+5'iW''&BX.2\s2b4j~> +lMpqqo7?qFrr>d^!!(`(s+14Mrrr%E> +lMpqqo7?qFrr>d^!!(`(s+14Mrrr%E> +lMpqqo7?qFrr>d^!!(`(s+14Mrrr%E> +l2UgRJcDqR!($&R!9\q5Jc>fO\es9(!ub[OnU^_Vs*t~> +l2UgRJcDqR!($&R!9\q5Jc>fO\es9(!ub[OnU^_Vs*t~> +l2UgRJcDqR!($&R!9\q5Jc>fO\es9(!ub[OnU^_Vs*t~> +l2UfAJcDqR!&j9G!;(jBK)YoKG66_'"9^i@ci/Lq^Ai]~> +l2UfAJcDqR!&j9G!;(jBK)YoKG66_'"9^i@ci/Lq^Ai]~> +l2UfAJcDqR!&j9G!;(jBK)YoKG66_'"9^i@ci/Lq^Ai]~> +kl:_/JcDtS!%RI4AmXbDLs*t~> +kl:_/JcDtS!%RI4AmXbDLs*t~> +kl:_/JcDtS!%RI4AmXbDLs*t~> +kl:]tJcDtS!$C\1!"XY\KDttO&*3co!]PYPrIP!Xs*t~> +kl:]tJcDtS!$C\1!"XY\KDttO&*3co!]PYPrIP!Xs*t~> +kl:]tJcDtS!$C\1!"XY\KDttO&*3co!]PYPrIP!Xs*t~> +kl:_ooR[%Irr<`%!!"!is+UIRojHn^!sM`#n:CVGs*t~> +kl:_ooR[%Irr<`%!!"!is+UIRojHn^!sM`#n:CVGs*t~> +kl:_ooR[%Irr<`%!!"!is+UIRojHn^!sM`#n:CVGs*t~> +kPtUQJcE"T!!hun!%EL!LAq:h'^5T#!AAc;r.4mPs*t~> +kPtUQJcE"T!!hun!%EL!LAq:h'^5T#!AAc;r.4mPs*t~> +kPtUQJcE"T!!hun!%EL!LAq:h'^5T#!AAc;r.4mPs*t~> +kPtT@JcE%U!;l3b!&oK/M#RM04mE"L$r<>PJcDhOJ,~> +kPtT@JcE%U!;l3b!&oK/M#RM04mE"L$r<>PJcDhOJ,~> +kPtT@JcE%U!;l3b!&oK/M#RM04mE"L$r<>PJcDhOJ,~> +k5YM.JcE(V!:fLX!(;D +k5YM.JcE(V!:fLX!(;D +k5YM.JcE(V!:fLX!(;D +k5YKrJcE(V!:B4T!)\=INW0(Z[6O$Y!s)Jbk^ic1s*t~> +k5YKrJcE(V!:B4T!)\=INW0(Z[6O$Y!s)Jbk^ic1s*t~> +k5YKrJcE(V!:B4T!)\=INW0(Z[6O$Y!s)Jbk^ic1s*t~> +k5YMmoR[%LrrD9O!!$>Vs,[0]qOoJ.!! +k5YMmoR[%LrrD9O!!$>Vs,[0]qOoJ.!! +k5YMmoR[%LrrD9O!!$>Vs,[0]qOoJ.!! +jo>COJcE+W!9ESK!,I/cOoGLRN?.Hf!sqbtmt(M2s*t~> +jo>COJcE+W!9ESK!,I/cOoGLRN?.Hf!sqbtmt(M2s*t~> +jo>COJcE+W!9ESK!,I/cOoGLRN?.Hf!sqbtmt(M2s*t~> +jo>B?JcE+W!8m5F!-j(pPQ(^IGnBHF!t850o7?q3s*t~> +jo>B?JcE+W!8m5F!-j(pPQ(^IGnBHF!t850o7?q3s*t~> +jo>B?JcE+W!8m5F!-j(pPQ(^IGnBHF!t850o7?q3s*t~> +jT#;-JcE.X!8HrB!/6"(Q2^p +jT#;-JcE.X!8HrB!/6"(Q2^p +jT#;-JcE.X!8HrB!/6"(Q2^p +!"@ui!,@)b[Jp6Xmf3?NJcD):!le(=nc/b+A@D;bs-E\8~> +!"@ui!,@)b[Jp6Xmf3?NJcD):!le(=nc/b+A@D;bs-E\8~> +!"@ui!,@)b[Jp6Xmf3?NJcD):!le(=nc/b+A@D;bs-E\8~> +!,(Eo!>"gRs0hq-ddI/9T7R$2rrW2*4nAXV%6oTTrdk*5s*t~> +!,(Eo!>"gRs0hq-ddI/9T7R$2rrW2*4nAXV%6oTTrdk*5s*t~> +!,(Eo!>"gRs0hq-ddI/9T7R$2rrW2*4nAXV%6oTTrdk*5s*t~> +!7U$0!1e]@[f6?Pmf3?hJcD8?!rf)BoDeq8G3FMWNrOV~> +!7U$0!1e]@[f6?Pmf3?hJcD8?!rf)BoDeq8G3FMWNrOV~> +!7U$0!1e]@[f6?Pmf3?hJcD8?!rf)BoDeq8G3FMWNrOV~> +!WPFI!!"s/s0hq-amT30\q0mQrrV80(\Ib0%V<\3s,6o-~> +!WPFI!!"s/s0hq-amT30\q0mQrrV80(\Ib0%V<\3s,6o-~> +!WPFI!!"s/s0hq-amT30\q0mQrrV80(\Ib0%V<\3s,6o-~> +!WT4^!!(T$s0r".`:![+^k)NYrrU,?"n_is,*__Ns,$c+~> +!WT4^!!(T$s0r".`:![+^k)NYrrU,?"n_is,*__Ns,$c+~> +!WT4^!!(T$s0r".`:![+^k)NYrrU,?"n_is,*__Ns,$c+~> +!rr-;jo>BhJcE4Z!5S%'!5F*bU]1DiShfp +!rr-;jo>BhJcE4Z!5S%'!5F*bU]1DiShfp +!rr-;jo>BhJcE4Z!5S%'!5F*bU]1DiShfp +s8N(Ojo>DdjamHArrB\"!!'_2rrTns\q0m_rrV2*'_MG-#$oN*s+LE&~> +s8N(Ojo>DdjamHArrB\"!!'_2rrTns\q0m_rrV2*'_MG-#$oN*s+LE&~> +s8N(Ojo>DdjamHArrB\"!!'_2rrTns\q0m_rrV2*'_MG-#$oN*s+LE&~> +s8N,`#Nc!dG_,n)rrBOs!!p7;s2%&%!&OV*s0)G(^f(C/!!3g[kCNYbs*t~> +s8N,`#Nc!dG_,n)rrBOs!!p7;s2%&%!&OV*s0)G(^f(C/!!3g[kCNYbs*t~> +s8N,`#Nc!dG_,n)rrBOs!!p7;s2%&%!&OV*s0)G(^f(C/!!3g[kCNYbs*t~> +rr2t&jo>Doo7?qPrrB@n!!9aP7Jm,cW.FuSrrVk^0(],F.$sUXs+11Ms*t~> +rr2t&jo>Doo7?qPrrB@n!!9aP7Jm,cW.FuSrrVk^0(],F.$sUXs+11Ms*t~> +rr2t&jo>Doo7?qPrrB@n!!9aP7Jm,cW.FuSrrVk^0(],F.$sUXs+11Ms*t~> +rr2u=jT#:BJcE:\!3Ybj!&jZR!?CT[s0_k.hfTS)!!<6h[/PXVJcG`LJ,~> +rr2u=jT#:BJcE:\!3Ybj!&jZR!?CT[s0_k.hfTS)!!<6h[/PXVJcG`LJ,~> +rr2u=jT#:BJcE:\!3Ybj!&jZR!?CT[s0_k.hfTS)!!<6h[/PXVJcG`LJ,~> +rVljRjo>E)qgndYrrB%\!!$>Vs1&(2rk)#/o`,$u@*sQ*JcGWIJ,~> +rVljRjo>E)qgndYrrB%\!!$>Vs1&(2rk)#/o`,$u@*sQ*JcGWIJ,~> +rVljRjo>E)qgndYrrB%\!!$>Vs1&(2rk)#/o`,$u@*sQ*JcGWIJ,~> +rVlkijT#:ZJcE=]!2\cW!4IIY]Dhs(Q7DM,!Yp.HJcC<$q>Ys~> +rVlkijT#:ZJcE=]!2\cW!4IIY]Dhs(Q7DM,!Yp.HJcC<$q>Ys~> +rVlkijT#:ZJcE=]!2\cW!4IIY]Dhs(Q7DM,!Yp.HJcC<$q>Ys~> +rVlom']oAq21be=rrAbS!!*POJcEIa!o.c,oDeqBReD=4JcGKEJ,~> +rVlom']oAq21be=rrAbS!!*POJcEIa!o.c,oDeqBReD=4JcGKEJ,~> +rVlom']oAq21be=rrAbS!!*POJcEIa!o.c,oDeqBReD=4JcGKEJ,~> +r;Qb@jT#:rJcE@^!1i0N!>O(8s2+d;qQ*-X!!<6k\,LsYJcGECJ,~> +r;Qb@jT#:rJcE@^!1i0N!>O(8s2+d;qQ*-X!!<6k\,LsYJcGECJ,~> +r;Qb@jT#:rJcE@^!1i0N!>O(8s2+d;qQ*-X!!<6k\,LsYJcGECJ,~> +r;QfT"6KR`9nE>VrrAbQ!!+(sJcE^h!nME.oDepuA(-#/JcG<@J,~> +r;QfT"6KR`9nE>VrrAbQ!!+(sJcE^h!nME.oDepuA(-#/JcG<@J,~> +r;QfT"6KR`9nE>VrrAbQ!!+(sJcE^h!nME.oDepuA(-#/JcG<@J,~> +qu6Xljo>D`eq*k6rrAtV!!+D0JcEjl!q`'Go)Jh-J*DOaJcG6>J,~> +qu6Xljo>D`eq*k6rrAtV!!+D0JcEjl!q`'Go)Jh-J*DOaJcG6>J,~> +qu6Xljo>D`eq*k6rrAtV!!+D0JcEjl!q`'Go)Jh-J*DOaJcG6>J,~> +qu6Z-jT#9lJcEC_!3Y8\!@R;ds31KEa^u%S!!4^ApOW?qs6fo;~> +qu6Z-jT#9lJcEC_!3Y8\!@R;ds31KEa^u%S!!4^ApOW?qs6fo;~> +qu6Z-jT#9lJcEC_!3Y8\!@R;ds31KEa^u%S!!4^ApOW?qs6fo;~> +qu6]r,N\t,#j?j>^&J)?huEd%c%5oArrVSL/FriD!D'd#JcC<$m/MS~> +qu6]r,N\t,#j?j>^&J)?huEd%c%5oArrVSL/FriD!D'd#JcC<$m/MS~> +qu6]r,N\t,#j?j>^&J)?huEd%c%5oArrVSL/FriD!D'd#JcC<$m/MS~> +qYpP`jT#:.JcEF`!5.1h!=5'Ds4%&NpT%*qo)JgrE9VrRJcG!7J,~> +qYpP`jT#:.JcEF`!5.1h!=5'Ds4%&NpT%*qo)JgrE9VrRJcG!7J,~> +qYpP`jT#:.JcEF`!5.1h!=5'Ds4%&NpT%*qo)JgrE9VrRJcG!7J,~> +qYpTi($5Js'D6qV^Ae2Nh#II\oR[%qrr`56@hA22!\BT+JcC<$kPp&~> +qYpTi($5Js'D6qV^Ae2Nh#II\oR[%qrr`56@hA22!\BT+JcC<$kPp&~> +qYpTi($5Js'D6qV^Ae2Nh#II\oR[%qrr`56@hA22!\BT+JcC<$kPp&~> +q>UGFjT#:FJcEIa!6X's!@lZOs4mVUdWQZ%!!3@-_L_` +q>UGFjT#:FJcEIa!6X's!@lZOs4mVUdWQZ%!!3@-_L_` +q>UGFjT#:FJcEIa!6X's!@lZOs4mVUdWQZ%!!3@-_L_` +q>UK\$0D3g,lE5n^]+;]gAh9]Hh2ggiVru>M(\;u![*9_JcC<$ir=N~> +q>UK\$0D3g,lE5n^]+;]gAh9]Hh2ggiVru>M(\;u![*9_JcC<$ir=N~> +q>UK\$0D3g,lE5n^]+;]gAh9]Hh2ggiVru>M(\;u![*9_JcC<$ir=N~> +q#:>,jT#:^JcELb!8#m(!ZI^0JcFm4"7hg`!V-3m"&$$"JcC<$i;\<~> +q#:>,jT#:^JcELb!8#m(!ZI^0JcFm4"7hg`!V-3m"&$$"JcC<$i;\<~> +q#:>,jT#:^JcELb!8#m(!ZI^0JcFm4"7hg`!V-3m"&$$"JcC<$i;\<~> +q#:BI!p0I_3J%4FrrCp-!!+poJcG$8"6#>)!q?6l(O=nhs+14+s*t~> +q#:BI!p0I_3J%4FrrCp-!!+poJcG$8"6#>)!q?6l(O=nhs+14+s*t~> +q#:BI!p0I_3J%4FrrCp-!!+poJcG$8"6#>)!q?6l(O=nhs+14+s*t~> +p\t4gjo>Djm=G;QrrD02!!-`oJcG3="58Pg!Up'j5,\4-s+14)s*t~> +p\t4gjo>Djm=G;QrrD02!!-`oJcG3="58Pg!Up'j5,\4-s+14)s*t~> +p\t4gjo>Djm=G;QrrD02!!-`oJcG3="58Pg!Up'j5,\4-s+14)s*t~> +p\t60kPtYjI.Mph^]+<#df9G9Zi,ITp&>*AJ1^3i!Y9+sJcC<$f`-I~> +p\t60kPtYjI.Mph^]+<#df9G9Zi,ITp&>*AJ1^3i!Y9+sJcC<$f`-I~> +p\t60kPtYjI.Mph^]+<#df9G9Zi,ITp&>*AJ1^3i!Y9+sJcC<$f`-I~> +pAY+NlMpte>2b&4^&J*(d/X4rR.c+2qu6cr^j-R\!!4jBo7?pms474#~> +pAY+NlMpte>2b&4^&J*(d/X4rR.c+2qu6cr^j-R\!!4jBo7?pms474#~> +pAY+NlMpte>2b&4^&J*(d/X4rR.c+2qu6cr^j-R\!!4jBo7?pms474#~> +pAY,lli7&HaFXB'rrDoA!!3FEjFR=6s5KJF%dj;u!YWP)s+14!s*t~> +pAY,lli7&HaFXB'rrDoA!!3FEjFR=6s5KJF%dj;u!YWP)s+14!s*t~> +pAY,lli7&HaFXB'rrDoA!!3FEjFR=6s5KJF%dj;u!YWP)s+14!s*t~> +pAY0j+R]:3+/f*hs1/.0!mL]H16:XSrr`&/F=Z\X!t5D721bdYs3gpt~> +pAY0j+R]:3+/f*hs1/.0!mL]H16:XSrr`&/F=Z\X!t5D721bdYs3gpt~> +pAY0j+R]:3+/f*hs1/.0!mL]H16:XSrr`&/F=Z\X!t5D721bdYs3gpt~> +p&>#RnGiV"L%^)t\,QF6b5_VH9!8,Prr_)B9ap@g!ZH#WrVupYJcC<$df4g~> +p&>#RnGiV"L%^)t\,QF6b5_VH9!8,Prr_)B9ap@g!ZH#WrVupYJcC<$df4g~> +p&>#RnGiV"L%^)t\,QF6b5_VH9!8,Prr_)B9ap@g!ZH#WrVupYJcC<$df4g~> +p&>'a&G,r("(UMFs0_k,&'+_Q#YC?APlCj>SR<].!!Ea<]@JY6!!#-4s+13us*t~> +p&>'a&G,r("(UMFs0_k,&'+_Q#YC?APlCj>SR<].!!Ea<]@JY6!!#-4s+13us*t~> +p&>'a&G,r("(UMFs0_k,&'+_Q#YC?APlCj>SR<].!!Ea<]@JY6!!#-4s+13us*t~> +o`"o8o`,"Yc[l,&rr +o`"o8o`,"Yc[l,&rr +o`"o8o`,"Yc[l,&rr +o`"sQ#5A0!-*Vt#Z2XeE_#OQUB!_3,rri,8LIr*@!!Y?El2UeV@ep')6\58gs3gpt~> +o`"sQ#5A0!-*Vt#Z2XeE_#OQUB!_3,rri,8LIr*@!!Y?El2UeV@ep')6\58gs3gpt~> +o`"sQ#5A0!-*Vt#Z2XeE_#OQUB!_3,rri,8LIr*@!!Y?El2UeV@ep')6\58gs3gpt~> +oD\esq>^R/Nqn8+Yl=\B^&S6@:7Kh9rrr/=R:nPck5YQ.IbF]"!S&^r!!#K>s+13us*t~> +oD\esq>^R/Nqn8+Yl=\B^&S6@:7Kh9rrr/=R:nPck5YQ.IbF]"!S&^r!!#K>s+13us*t~> +oD\esq>^R/Nqn8+Yl=\B^&S6@:7Kh9rrr/=R:nPck5YQ.IbF]"!S&^r!!#K>s+13us*t~> +oD\j=!WIh#=e_"ms!_>V$$>!! +oD\j=!WIh#=e_"ms!_>V$$>!! +oD\j=!WIh#=e_"ms!_>V$$>!! +o)A\YrVuskeq*k'rrN*$[/^@A6$&mSrPJR]:`nZs!sho3q>:0mo3M%i!)8%EJcF0uJ,~> +o)A\YrVuskeq*k'rrN*$[/^@A6$&mSrPJR]:`nZs!sho3q>:0mo3M%i!)8%EJcF0uJ,~> +o)A\YrVuskeq*k'rrN*$[/^@A6$&mSrPJR]:`nZs!sho3q>:0mo3M%i!)8%EJcF0uJ,~> +o)Ag&!%b[3s/Z/"p$_q^65dW?#6d5(MQ"SWrmC`NroCneHWN$9hZ*`[6(RN@rrLLqo`+tgJcC<$ +df4g~> +o)Ag&!%b[3s/Z/"p$_q^65dW?#6d5(MQ"SWrmC`NroCneHWN$9hZ*`[6(RN@rrLLqo`+tgJcC<$ +df4g~> +o)Ag&!%b[3s/Z/"p$_q^65dW?#6d5(MQ"SWrmC`NroCneHWN$9hZ*`[6(RN@rrLLqo`+tgJcC<$ +df4g~> +nc&WMrIP!KrrD +nc&WMrIP!KrrD +nc&WMrIP!KrrD +JcD,;!8[,E"cE?[lt$7,!$).R*\''8:KqLSJW6%\O,A[CI!B^MC1UdW7PYtddf9IS8!`63rri;= +V=%IV!!$)Os+13us*t~> +JcD,;!8[,E"cE?[lt$7,!$).R*\''8:KqLSJW6%\O,A[CI!B^MC1UdW7PYtddf9IS8!`63rri;= +V=%IV!!$)Os+13us*t~> +JcD,;!8[,E"cE?[lt$7,!$).R*\''8:KqLSJW6%\O,A[CI!B^MC1UdW7PYtddf9IS8!`63rri;= +V=%IV!!$)Os+13us*t~> +JcD,;!7C99!1Efc!onJ:JH5-=!tSM3nG3(gq6suVK$5P2!!$5Ss+13us*t~> +JcD,;!7C99!1Efc!onJ:JH5-=!tSM3nG3(gq6suVK$5P2!!$5Ss+13us*t~> +JcD,;!7C99!1Efc!onJ:JH5-=!tSM3nG3(gq6suVK$5P2!!$5Ss+13us*t~> +OT,mWa/"8m4tn<&$l1B[>Dp]'RfV +s+13us*t~> +OT,mWa/"8m4tn<&$l1B[>Dp]'RfV +s+13us*t~> +OT,mWa/"8m4tn<&$l1B[>Dp]'RfV +s+13us*t~> +UAketk1IeeXIYB%EFVs:2^fRPn,NM#DWdPi!4_Lu!4hq*"9#Dt!J(7J!!E<[I`_Tbrr_V[:'pn" +!`e/WmJm5qJcC<$df4g~> +UAketk1IeeXIYB%EFVs:2^fRPn,NM#DWdPi!4_Lu!4hq*"9#Dt!J(7J!!E<[I`_Tbrr_V[:'pn" +!`e/WmJm5qJcC<$df4g~> +UAketk1IeeXIYB%EFVs:2^fRPn,NM#DWdPi!4_Lu!4hq*"9#Dt!J(7J!!E<[I`_Tbrr_V[:'pn" +!`e/WmJm5qJcC<$df4g~> +Y5\n)j34s(M/uok0Gt&M!!34>qk!ffXRH2iaS,W8ieK%8!!E9CA?"qjrr_;F63R5e!t(L>+mf70 +AV'l4s3gpt~> +Y5\n)j34s(M/uok0Gt&M!!34>qk!ffXRH2iaS,W8ieK%8!!E9CA?"qjrr_;F63R5e!t(L>+mf70 +AV'l4s3gpt~> +Y5\n)j34s(M/uok0Gt&M!!34>qk!ffXRH2iaS,W8ieK%8!!E9CA?"qjrr_;F63R5e!t(L>+mf70 +AV'l4s3gpt~> +\Glm4cE +\Glm4cE +\Glm4cE +^]+N)aJ=Am3YoX6!?gj(rrA;Q!!)6Qrr`8,D&A95"9UQ/_> +^]+N)aJ=Am3YoX6!?gj(rrA;Q!!)6Qrr`8,D&A95"9UQ/_> +^]+N)aJ=Am3YoX6!?gj(rrA;Q!!)6Qrr`8,D&A95"9UQ/_> +a8ZDDk/3g<=>UT%!!,[iU&P+Kn,NI_mJd:>Ma.H3!!E]tI^nqBrr`27D]\WQ!u/$?bNT!,Dh7q> +s3gpt~> +a8ZDDk/3g<=>UT%!!,[iU&P+Kn,NI_mJd:>Ma.H3!!E]tI^nqBrr`27D]\WQ!u/$?bNT!,Dh7q> +s3gpt~> +a8ZDDk/3g<=>UT%!!,[iU&P+Kn,NI_mJd:>Ma.H3!!E]tI^nqBrr`27D]\WQ!u/$?bNT!,Dh7q> +s3gpt~> +bl7k.["DC3"LJ./Q(e3XHgq(9#jM?kn#9V.SH&d5=H^r+pAY6hZXO[B!!GUKs8UF0!!%%js+13u +s*t~> +bl7k.["DC3"LJ./Q(e3XHgq(9#jM?kn#9V.SH&d5=H^r+pAY6hZXO[B!!GUKs8UF0!!%%js+13u +s*t~> +bl7k.["DC3"LJ./Q(e3XHgq(9#jM?kn#9V.SH&d5=H^r+pAY6hZXO[B!!GUKs8UF0!!%%js+13u +s*t~> +df0LMh5bin(Tm`=)u$*,!,qB-!#Oet"T?Ag0`e*N"#"JgiUm-PnY]CsoDepqK`1oM!7L*3!-Wqn +JcF0uJ,~> +df0LMh5bin(Tm`=)u$*,!,qB-!#Oet"T?Ag0`e*N"#"JgiUm-PnY]CsoDepqK`1oM!7L*3!-Wqn +JcF0uJ,~> +df0LMh5bin(Tm`=)u$*,!,qB-!#Oet"T?Ag0`e*N"#"JgiUm-PnY]CsoDepqK`1oM!7L*3!-Wqn +JcF0uJ,~> +f)GmI^k>2hVuQg^UAk4'nGiP:ir9/ON*e1=Y5e_>6?&RBq"+Lfl'k9Mnc/\5`r,i:f'*/7H%H!H +s3gpt~> +f)GmI^k>2hVuQg^UAk4'nGiP:ir9/ON*e1=Y5e_>6?&RBq"+Lfl'k9Mnc/\5`r,i:f'*/7H%H!H +s3gpt~> +f)GmI^k>2hVuQg^UAk4'nGiP:ir9/ON*e1=Y5e_>6?&RBq"+Lfl'k9Mnc/\5`r,i:f'*/7H%H!H +s3gpt~> +gA_ +gA_ +gA_ +h#@G./chUF!=ALqrr>^^!!#LArrrARVfkNE`W-5F*^=(cUqciqrrTic1@>,C$_7%m!8Qf=!.]Y# +JcF0uJ,~> +h#@G./chUF!=ALqrr>^^!!#LArrrARVfkNE`W-5F*^=(cUqciqrrTic1@>,C$_7%m!8Qf=!.]Y# +JcF0uJ,~> +h#@G./chUF!=ALqrr>^^!!#LArrrARVfkNE`W-5F*^=(cUqciqrrTic1@>,C$_7%m!8Qf=!.]Y# +JcF0uJ,~> +hZ!WE;k*gf]qbT-54JUQ +hZ!WE;k*gf]qbT-54JUQ +hZ!WE;k*gf]qbT-54JUQ +hu<_p*h*-0H_^T@1@Y>EB$:2ar85>cKlLR%8NedR(^pH9!"B,B+Z2eqDhF@T^!Pj8k5PP^`H!-f +!!31=q"Odgj66ODLOoJVs3gpt~> +hu<_p*h*-0H_^T@1@Y>EB$:2ar85>cKlLR%8NedR(^pH9!"B,B+Z2eqDhF@T^!Pj8k5PP^`H!-f +!!31=q"Odgj66ODLOoJVs3gpt~> +hu<_p*h*-0H_^T@1@Y>EB$:2ar85>cKlLR%8NedR(^pH9!"B,B+Z2eqDhF@T^!Pj8k5PP^`H!-f +!!31=q"Odgj66ODLOoJVs3gpt~> +iVruWJ-25?!'$bR!%.49!-PsS%J&Z8db!72j6,duo_A@Vs6rrD6H!!%n-s+13u +s*t~> +iVruWJ-25?!'$bR!%.49!-PsS%J&Z8db!72j6,duo_A@Vs6rrD6H!!%n-s+13u +s*t~> +iVruWJ-25?!'$bR!%.49!-PsS%J&Z8db!72j6,duo_A@Vs6rrD6H!!%n-s+13u +s*t~> +ir9&=5*u +ir9&=5*u +ir9&=5*u +j8T._'"n8F"PWnVe>3*E%e0N!Q&YeGorVF/kPt\o +j8T._'"n8F"PWnVe>3*E%e0N!Q&YeGorVF/kPt\o +j8T._'"n8F"PWnVe>3*E%e0N!Q&YeGorVF/kPt\o +jo5ATC!$Dk!>-D*4%WUgH]Ff-aP61_rT)>6G +jo5ATC!$Dk!>-D*4%WUgH]Ff-aP61_rT)>6G +jo5ATC!$Dk!>-D*4%WUgH]Ff-aP61_rT)>6G +k5PJ2/D1"6!?![g>\SD9PG,1nbLktLli.%NJ/72G!2?=i!;,a\!47si"72UP#Nu-i-?dB,m/I(X +kl:^MJcC<$df4g~> +k5PJ2/D1"6!?![g>\SD9PG,1nbLktLli.%NJ/72G!2?=i!;,a\!47si"72UP#Nu-i-?dB,m/I(X +kl:^MJcC<$df4g~> +k5PJ2/D1"6!?![g>\SD9PG,1nbLktLli.%NJ/72G!2?=i!;,a\!47si"72UP#Nu-i-?dB,m/I(X +kl:^MJcC<$df4g~> +kPkRK$/kjj%k0nQH'>DPj87R1!V'=S!!%kPrrD9P!!'s'rr_DL6NlWR!s(?8f'*,6puqbYRt:Tj +s3gpt~> +kPkRK$/kjj%k0nQH'>DPj87R1!V'=S!!%kPrrD9P!!'s'rr_DL6NlWR!s(?8f'*,6puqbYRt:Tj +s3gpt~> +kPkRK$/kjj%k0nQH'>DPj87R1!V'=S!!%kPrrD9P!!'s'rr_DL6NlWR!s(?8f'*,6puqbYRt:Tj +s3gpt~> +l2LeO; +l2LeO; +l2LeO; +lMgn$*UNh2'g6,g[bgu%rr@6*!!$)srrCC7!!)&Lrr^r/1]ch@!tJG2nDaHJrojC_S:U]ks3gpt~> +lMgn$*UNh2'g6,g[bgu%rr@6*!!$)srrCC7!!)&Lrr^r/1]ch@!tJG2nDaHJrojC_S:U]ks3gpt~> +lMgn$*UNh2'g6,g[bgu%rr@6*!!$)srrCC7!!)&Lrr^r/1]ch@!tJG2nDaHJrojC_S:U]ks3gpt~> +m/I.bIKT0A"p,u@F.:)5^&J'mkPtTHV>gP2n,NIZTDnu?IOs[_!ubj_q;2,O"6ojdRt:Tjs3gpt~> +m/I.bIKT0A"p,u@F.:)5^&J'mkPtTHV>gP2n,NIZTDnu?IOs[_!ubj_q;2,O"6ojdRt:Tjs3gpt~> +m/I.bIKT0A"p,u@F.:)5^&J'mkPtTHV>gP2n,NIZTDnu?IOs[_!ubj_q;2,O"6ojdRt:Tjs3gpt~> +mJd4G4SAaY-<#Gnd.t0N!6"($!%k&I!3ktn! +mJd4G4SAaY-<#Gnd.t0N!6"($!%k&I!3ktn! +mJd4G4SAaY-<#Gnd.t0N!6"($!%k&I!3ktn! +mf*ZmBHTj6KnIM,GkD?T^`!^';b^2rP*4Ykl:ee3f2PArr +mf*ZmBHTj6KnIM,GkD?T^`!^';b^2rP*4Ykl:ee3f2PArr +mf*ZmBHTj6KnIM,GkD?T^`!^';b^2rP*4Ykl:ee3f2PArr +nG`O^B)M]5">OS_fD_lO!0-4C!#_X5!0H^N!$\BA"8/j)'BoK!#>1EIeGfLXl2UgPJcC<$df4g~> +nG`O^B)M]5">OS_fD_lO!0-4C!#_X5!0H^N!$\BA"8/j)'BoK!#>1EIeGfLXl2UgPJcC<$df4g~> +nG`O^B)M]5">OS_fD_lO!0-4C!#_X5!0H^N!$\BA"8/j)'BoK!#>1EIeGfLXl2UgPJcC<$df4g~> +nc&jB.KCDcMS\t`rrCU6!!!P+rr@T>!!"dTrr_V\:^ZFe!t\Y9o$RI;&aB>rR=YBhs3gpt~> +nc&jB.KCDcMS\t`rrCU6!!!P+rr@T>!!"dTrr_V\:^ZFe!t\Y9o$RI;&aB>rR=YBhs3gpt~> +nc&jB.KCDcMS\t`rrCU6!!!P+rr@T>!!"dTrr_V\:^ZFe!t\Y9o$RI;&aB>rR=YBhs3gpt~> +o)AgDH`Q/"rr=,*!!!5"rr@$.!!#?grr_2A5m6EP!uu*fqTf*@'^>YuR">9gs3gpt~> +o)AgDH`Q/"rr=,*!!!5"rr@$.!!#?grr_2A5m6EP!uu*fqTf*@'^>YuR">9gs3gpt~> +o)AgDH`Q/"rr=,*!!!5"rr@$.!!#?grr_2A5m6EP!uu*fqTf*@'^>YuR">9gs3gpt~> +NrK)jkl:_\VZ-X(nGiPdZ2XpSJhdAk!!=d!bPo]b!#Xu$!1/9:JcF0uJ,~> +NrK)jkl:_\VZ-X(nGiPdZ2XpSJhdAk!!=d!bPo]b!#Xu$!1/9:JcF0uJ,~> +NrK)jkl:_\VZ-X(nGiPdZ2XpSJhdAk!!=d!bPo]b!#Xu$!1/9:JcF0uJ,~> +NrK*Zkl:_RVZ-WnnGiPt[Jp@,_K-sd!!< +NrK*Zkl:_RVZ-WnnGiPt[Jp@,_K-sd!!< +NrK*Zkl:_RVZ-WnnGiPt[Jp@,_K-sd!!< +NrK+'kl:_HVZ-W^nGiQ/\Gl[*ZXXd8!! +NrK+'kl:_HVZ-W^nGiQ/\Gl[*ZXXd8!! +NrK+'kl:_HVZ-W^nGiQ/\Gl[*ZXXd8!! +NrK+Bkl:_?VZ-WNnGiQ>]Di!%Uf7ce!!Xn9I0!$^\.!0r-8JcF0uJ,~> +NrK+Bkl:_?VZ-WNnGiQ>]Di!%Uf7ce!!Xn9I0!$^\.!0r-8JcF0uJ,~> +NrK+Bkl:_?VZ-WNnGiQ>]Di!%Uf7ce!!Xn9I0!$^\.!0r-8JcF0uJ,~> +NrK.Y"R5see>E6G+n5O4OM:_sjHW.;kl:f-DS>q]rr=A1!!&:8s+13us*t~> +NrK.Y"R5see>E6G+n5O4OM:_sjHW.;kl:f-DS>q]rr=A1!!&:8s+13us*t~> +NrK.Y"R5see>E6G+n5O4OM:_sjHW.;kl:f-DS>q]rr=A1!!&:8s+13us*t~> +NW/tul2Uh,VZ-W.nGiQ^_>aVgL,K(s!!=m'cMkHU!%I15!0i'7JcF0uJ,~> +NW/tul2Uh,VZ-W.nGiQ^_>aVgL,K(s!!=m'cMkHU!%I15!0i'7JcF0uJ,~> +NW/tul2Uh,VZ-W.nGiQ^_>aVgL,K(s!!=m'cMkHU!%I15!0i'7JcF0uJ,~> +NW/u:l2Uh"VuHer"7Z?kYJpMDrPj".kl:ef5EF[1rr=V8!!&46s+13us*t~> +NW/u:l2Uh"VuHer"7Z?kYJpMDrPj".kl:ef5EF[1rr=V8!!&46s+13us*t~> +NW/u:l2Uh"VuHer"7Z?kYJpMDrPj".kl:ef5EF[1rr=V8!!&46s+13us*t~> +NW/uUl2UgmVuHbdn,NI'aSuA<[q?TC!! +NW/uUl2UgmVuHbdn,NI'aSuA<[q?TC!! +NW/uUl2UgmVuHbdn,NI'aSuA<[q?TC!! +NW/uil2UgdVuHbTn,NI6bPq\BY?24t!! +NW/uil2UgdVuHbTn,NI6bPq\BY?24t!! +NW/uil2UgdVuHbTn,NI6bPq\BY?24t!! +NW/url2UgZVuHbDn,NIFcMn!pM*D1.!!=B`_#1A8!&j*B!0Mj4JcF0uJ,~> +NW/url2UgZVuHbDn,NIFcMn!pM*D1.!!=B`_#1A8!&j*B!0Mj4JcF0uJ,~> +NW/url2UgZVuHbDn,NIFcMn!pM*D1.!!=B`_#1A8!&j*B!0Mj4JcF0uJ,~> +NW0!&l2UgPVuHb4n,NIVdf0F@Y\,!@!!<6VJ^CFs!'0 +NW0!&l2UgPVuHb4n,NIVdf0F@Y\,!@!!<6VJ^CFs!'0 +NW0!&l2UgPVuHb4n,NIVdf0F@Y\,!@!!<6VJ^CFs!'0 +NW0!/l2UgFVuHb$nGiRjr71fLfT&B*kl:ed5`t3,rr>(E!!&+3s+13us*t~> +NW0!/l2UgFVuHb$nGiRjr71fLfT&B*kl:ed5`t3,rr>(E!!&+3s+13us*t~> +NW0!/l2UgFVuHb$nGiRjr71fLfT&B*kl:ed5`t3,rr>(E!!&+3s+13us*t~> +NW0!7l2Ug +NW0!7l2Ug +NW0!7l2Ug +NW0!@l2Ug3VuHaZnGiP1g]%B3PY)8G!!=0R\+lZs!''6D!0;^2JcF0uJ,~> +NW0!@l2Ug3VuHaZnGiP1g]%B3PY)8G!!=0R\+lZs!''6D!0;^2JcF0uJ,~> +NW0!@l2Ug3VuHaZnGiP1g]%B3PY)8G!!=0R\+lZs!''6D!0;^2JcF0uJ,~> +NW0!Il2Ug*VuHaJnGiP@hu +NW0!Il2Ug*VuHaJnGiP@hu +NW0!Il2Ug*VuHaJnGiP@hu +NW0!Rl2Ug!VuHa:nGiPPir9,?R847T!! +NW0!Rl2Ug!VuHa:nGiPPir9,?R847T!! +NW0!Rl2Ug!VuHa:nGiPPir9,?R847T!! +NW0![l2UfmVuHa*nGiP`k5PP\_07Ko!! +NW0![l2UfmVuHa*nGiP`k5PP\_07Ko!! +NW0![l2UfmVuHa*nGiP`k5PP\_07Ko!! +NW0!cl2UfdVuH`onGiPol2LkKT2cHc!!=*N[J.T="oFi5!!(^)rr=qA!!%t/s+13us*t~> +NW0!cl2UfdVuH`onGiPol2LkKT2cHc!!=*N[J.T="oFi5!!(^)rr=qA!!%t/s+13us*t~> +NW0!cl2UfdVuH`onGiPol2LkKT2cHc!!=*N[J.T="oFi5!!(^)rr=qA!!%t/s+13us*t~> +NW0!ll2Uf[VuH`_nGiQ*mJd=e`dBQCk5YT7H-#s$rrW+m,lI]Cg=ZE*2!P&@Mh1nZs3gpt~> +NW0!ll2Uf[VuH`_nGiQ*mJd=e`dBQCk5YT7H-#s$rrW+m,lI]Cg=ZE*2!P&@Mh1nZs3gpt~> +NW0!ll2Uf[VuH`_nGiQ*mJd=e`dBQCk5YT7H-#s$rrW+m,lI]Cg=ZE*2!P&@Mh1nZs3gpt~> +NW0!ul2UfRVuH`OnGiQ:nG`UVUfnGp!!< +NW0!ul2UfRVuH`OnGiQ:nG`UVUfnGp!!< +NW0!ul2UfRVuH`OnGiQ:nG`UVUfnGp!!< +NW0")l2UfIVuH`?nGiQIo)AdM8HIuS!t.u!lbEH$ri7RF!!(d+rr=k?!!%n-s+13us*t~> +NW0")l2UfIVuH`?nGiQIo)AdM8HIuS!t.u!lbEH$ri7RF!!(d+rr=k?!!%n-s+13us*t~> +NW0")l2UfIVuH`?nGiQIo)AdM8HIuS!t.u!lbEH$ri7RF!!(d+rr=k?!!%n-s+13us*t~> +NW0"1l2Uf@VuH`-nGiQYoD\ig%-RZn(hBuH^Ae96YV>eO!8H0+!&Eg>!/Z:,JcF0uJ,~> +NW0"1l2Uf@VuH`-nGiQYoD\ig%-RZn(hBuH^Ae96YV>eO!8H0+!&Eg>!/Z:,JcF0uJ,~> +NW0"1l2Uf@VuH`-nGiQYoD\ig%-RZn(hBuH^Ae96YV>eO!8H0+!&Eg>!/Z:,JcF0uJ,~> +NW0":l2Uf7W;cnp!V$-iWqHAmq.o3p""AH6rOi.2[5@OV!8Q6,!&Eg>!/Z:,JcF0uJ,~> +NW0":l2Uf7W;cnp!V$-iWqHAmq.o3p""AH6rOi.2[5@OV!8Q6,!&Eg>!/Z:,JcF0uJ,~> +NW0":l2Uf7W;cnp!V$-iWqHAmq.o3p""AH6rOi.2[5@OV!8Q6,!&Eg>!/Z:,JcF0uJ,~> +NW0"Cl2Uf.W;ck\n,NI"pAY0P2s^MH!CD_(])MfB3:d+Mgt;W,1$S`=Lk5SWs3gpt~> +NW0"Cl2Uf.W;ck\n,NI"pAY0P2s^MH!CD_(])MfB3:d+Mgt;W,1$S`=Lk5SWs3gpt~> +NW0"Cl2Uf.W;ck\n,NI"pAY0P2s^MH!CD_(])MfB3:d+Mgt;W,1$S`=Lk5SWs3gpt~> +NW0"Ll2Uf%W;ckHn,NI2p\t9('^br'&6GXn\c2]F4n/LPh:V`-0^8W +NW0"Ll2Uf%W;ckHn,NI2p\t9('^br'&6GXn\c2]F4n/LPh:V`-0^8W +NW0"Ll2Uf%W;ckHn,NI2p\t9('^br'&6GXn\c2]F4n/LPh:V`-0^8W +NW0"Vl2UeqW;ck4n,NIAq>UNpIff*>"!qs#qRHP+_a +NW0"Vl2UeqW;ck4n,NIAq>UNpIff*>"!qs#qRHP+_a +NW0"Vl2UeqW;ck4n,NIAq>UNpIff*>"!qs#qRHP+_a +N;ik_lMpnjW;ck!n,NIQqYpT^7e-N]"@.pu[f6BL8+$?X!VtCJ!&*U;!/?()JcF0uJ,~> +N;ik_lMpnjW;ck!n,NIQqYpT^7e-N]"@.pu[f6BL8+$?X!VtCJ!&*U;!/?()JcF0uJ,~> +N;ik_lMpnjW;ck!n,NIQqYpT^7e-N]"@.pu[f6BL8+$?X!VtCJ!&*U;!/?()JcF0uJ,~> +N;ikjlMpnfW;cjbn,NIaqu6];*V9=6&mD4$[Jp9O9C)WY&D-p^0'WE:Kn98Ts3gpt~> +N;ikjlMpnfW;cjbn,NIaqu6];*V9=6&mD4$[Jp9O9C)WY&D-p^0'WE:Kn98Ts3gpt~> +N;ikjlMpnfW;cjbn,NIaqu6];*V9=6&mD4$[Jp9O9C)WY&D-p^0'WE:Kn98Ts3gpt~> +N;ikulMpngW;cjNnGiOqqu6\\#5/$!. +N;ikulMpngW;cjNnGiOqqu6\\#5/$!. +N;ikulMpngW;cjNnGiOqqu6\\#5/$!. +N;il+lMpngW;cj;nGiP,rVloi=SMju#"4R.YQ"SXl2UfFfDbh&l2Ug:JcC<$df4g~> +N;il+lMpngW;cj;nGiP,rVloi=SMju#"4R.YQ"SXl2UfFfDbh&l2Ug:JcC<$df4g~> +N;il+lMpngW;cj;nGiP,rVloi=SMju#"4R.YQ"SXl2UfFfDbh&l2Ug:JcC<$df4g~> +N;il5lMpngW;cj'nGiP +N;il5lMpngW;cj'nGiP +N;il5lMpngW;cj'nGiP +N;il@lMpnhW;cihnGi\Os8Sr)qu?gNH,]]\rr?6f!!$T^rr=S7!!%S$s+13us*t~> +N;il@lMpnhW;cihnGi\Os8Sr)qu?gNH,]]\rr?6f!!$T^rr=S7!!%S$s+13us*t~> +N;il@lMpnhW;cihnGi\Os8Sr)qu?gNH,]]\rr?6f!!$T^rr=S7!!%S$s+13us*t~> +N;ilKlMpnhW;ciTnGiV]q/$$1!s_>[hkg>QDX%3%HIr/s/*[*7J:[`Os3gpt~> +N;ilKlMpnhW;ciTnGiV]q/$$1!s_>[hkg>QDX%3%HIr/s/*[*7J:[`Os3gpt~> +N;ilKlMpnhW;ciTnGiV]q/$$1!s_>[hkg>QDX%3%HIr/s/*[*7J:[`Os3gpt~> +N;ilVlMpnhW;ciAnGibg2ZO\(Y4JCf!.sJ9!0>b3!%R76!.TS"JcF0uJ,~> +N;ilVlMpnhW;ciAnGibg2ZO\(Y4JCf!.sJ9!0>b3!%R76!.TS"JcF0uJ,~> +N;ilVlMpnhW;ciAnGibg2ZO\(Y4JCf!.sJ9!0>b3!%R76!.TS"JcF0uJ,~> +N;il`lMpnhW;ci-nGiY2IEDG[rrAAM!!&nJrr=M5!!%J!s+13us*t~> +N;il`lMpnhW;ci-nGiY2IEDG[rrAAM!!&nJrr=M5!!%J!s+13us*t~> +N;il`lMpnhW;ci-nGiY2IEDG[rrAAM!!&nJrr=M5!!%J!s+13us*t~> +N;ilklMpniWW)ton,NH4SGrShl2Uh(fDbh"l2Ug4JcC<$df4g~> +N;ilklMpniWW)ton,NH4SGrShl2Uh(fDbh"l2Ug4JcC<$df4g~> +N;ilklMpniWW)ton,NH4SGrShl2Uh(fDbh"l2Ug4JcC<$df4g~> +N;im!lMpniWW)t\n,NHCSGrT'l2UhKfDbh!l2Ug4JcC<$df4g~> +N;im!lMpniWW)t\n,NHCSGrT'l2UhKfDbh!l2Ug4JcC<$df4g~> +N;im!lMpniWW)t\n,NHCSGrT'l2UhKfDbh!l2Ug4JcC<$df4g~> +N;im+lMpniWW)tHn,NHSSGrT;lMpnof)G^tl2Ug3JcC<$df4g~> +N;im+lMpniWW)tHn,NHSSGrT;lMpnof)G^tl2Ug3JcC<$df4g~> +N;im+lMpniWW)tHn,NHSSGrT;lMpnof)G^tl2Ug3JcC<$df4g~> +N;im6lMpniWW)t4n,NHcSGrTBlMpo=f)G^sl2Ug2JcC<$df4g~> +N;im6lMpniWW)t4n,NHcSGrTBlMpo=f)G^sl2Ug2JcC<$df4g~> +N;im6lMpniWW)t4n,NHcSGrTBlMpo=f)G^sl2Ug2JcC<$df4g~> +N;im +N;im +N;im +N;im>lMpnjWW)sbn,NI-SGrT3lMpp-f)G^rl2Ug0JcC<$df4g~> +N;im>lMpnjWW)sbn,NI-SGrT3lMpp-f)G^rl2Ug0JcC<$df4g~> +N;im>lMpnjWW)sbn,NI-SGrT3lMpp-f)G^rl2Ug0JcC<$df4g~> +N;im?lMpnnWW)sNn,NI=SGrT,lMppPf)G^ql2Ug/JcC<$df4g~> +N;im?lMpnnWW)sNn,NI=SGrT,lMppPf)G^ql2Ug/JcC<$df4g~> +N;im?lMpnnWW)sNn,NI=SGrT,lMppPf)G^ql2Ug/JcC<$df4g~> +N;imAlMpo"WW)s:n,NILSGrT%lMppsf)G^ql2Ug.JcC<$df4g~> +N;imAlMpo"WW)s:n,NILSGrT%lMppsf)G^ql2Ug.JcC<$df4g~> +N;imAlMpo"WW)s:n,NILSGrT%lMppsf)G^ql2Ug.JcC<$df4g~> +N;imBlMpo,WW)s'n,NI\SGrSslMpqAf)G^pl2Ug-JcC<$df4g~> +N;imBlMpo,WW)s'n,NI\SGrSslMpqAf)G^pl2Ug-JcC<$df4g~> +N;imBlMpo,WW)s'n,NI\SGrSslMpqAf)G^pl2Ug-JcC<$df4g~> +N;imDlMpo5WW)rhnGiOmS,WJjli7%ir7:lJ,3f..Fb0RDs3gpt~> +N;imDlMpo5WW)rhnGiOmS,WJjli7%ir7:lJ,3f..Fb0RDs3gpt~> +N;imDlMpo5WW)rhnGiOmS,WJjli7%ir7:lJ,3f..Fb0RDs3gpt~> +N;imElMpo>WW)rTnGiP'S,WJcli7#3ec,Uml2Ug+JcC<$df4g~> +N;imElMpo>WW)rTnGiP'S,WJcli7#3ec,Uml2Ug+JcC<$df4g~> +N;imElMpo>WW)rTnGiP'S,WJcli7#3ec,Uml2Ug+JcC<$df4g~> +N;imGlMpoGWW)r@nGiP7S,WJ\li7#Vec,Ull2Ug+JcC<$df4g~> +N;imGlMpoGWW)r@nGiP7S,WJ\li7#Vec,Ull2Ug+JcC<$df4g~> +N;imGlMpoGWW)r@nGiP7S,WJ\li7#Vec,Ull2Ug+JcC<$df4g~> +N;imIlMpoPWW)r-nGiPGS,WJSli7$$ec,Ukl2Ug*JcC<$df4g~> +N;imIlMpoPWW)r-nGiPGS,WJSli7$$ec,Ukl2Ug*JcC<$df4g~> +N;imIlMpoPWW)r-nGiPGS,WJSli7$$ec,Ukl2Ug*JcC<$df4g~> +N;imJlMpoYWrE(on,NGUS,WJ +N;imJlMpoYWrE(on,NGUS,WJ +N;imJlMpoYWrE(on,NGUS,WJ +N;imLlMpobWrE([n,NGeS,WJ#li7$jec,Ujl2Ug(JcC<$df4g~> +N;imLlMpobWrE([n,NGeS,WJ#li7$jec,Ujl2Ug(JcC<$df4g~> +N;imLlMpobWrE([n,NGeS,WJ#li7$jec,Ujl2Ug(JcC<$df4g~> +N;imMlMpokWrE(Hn,NGtS,WI_li7%8ec,Uil2Ug'JcC<$df4g~> +N;imMlMpokWrE(Hn,NGtS,WI_li7%8ec,Uil2Ug'JcC<$df4g~> +N;imMlMpokWrE(Hn,NGtS,WI_li7%8ec,Uil2Ug'JcC<$df4g~> +N;imOlMpotWrE(4n,NH/S,WIFm/R.fp!s'B*9mM(Dh7q>s3gpt~> +N;imOlMpotWrE(4n,NH/S,WIFm/R.fp!s'B*9mM(Dh7q>s3gpt~> +N;imOlMpotWrE(4n,NH/S,WIFm/R.fp!s'B*9mM(Dh7q>s3gpt~> +N;imPlMpp)WrE'un,NH?S,WI.m/R,)eGfLfl2Ug%JcC<$df4g~> +N;imPlMpp)WrE'un,NH?S,WI.m/R,)eGfLfl2Ug%JcC<$df4g~> +N;imPlMpp)WrE'un,NH?S,WI.m/R,)eGfLfl2Ug%JcC<$df4g~> +N;imNlMpp2WrE'an,NHNSGrWg"ml9i4k0K3)X7;&D1V_ +N;imNlMpp2WrE'an,NHNSGrWg"ml9i4k0K3)X7;&D1V_ +N;imNlMpp2WrE'an,NHNSGrWg"ml9i4k0K3)X7;&D1V_ +N;imGlMpp;WrE'Nn,NH^SGrTRli7#leGfLdl2Ug#JcC<$df4g~> +N;imGlMpp;WrE'Nn,NH^SGrTRli7#leGfLdl2Ug#JcC<$df4g~> +N;imGlMpp;WrE'Nn,NH^SGrTRli7#leGfLdl2Ug#JcC<$df4g~> +N;im?lMppGWrE':n,NHnSGrT9li7$6eGfLcl2Ug"JcC<$df4g~> +N;im?lMppGWrE':n,NHnSGrT9li7$6eGfLcl2Ug"JcC<$df4g~> +N;im?lMppGWrE':n,NHnSGrT9li7$6eGfLcl2Ug"JcC<$df4g~> +N;im7lMppXWrE'&n,NI(SGrSuli7$UeGfLbl2Ug"JcC<$df4g~> +N;im7lMppXWrE'&n,NI(SGrSuli7$UeGfLbl2Ug"JcC<$df4g~> +N;im7lMppXWrE'&n,NI(SGrSuli7$UeGfLbl2Ug"JcC<$df4g~> +N;im0lMppjWrE&gn,NI8SGrSYli7$ueGfLal2Ug!JcC<$df4g~> +N;im0lMppjWrE&gn,NI8SGrSYli7$ueGfLal2Ug!JcC<$df4g~> +N;im0lMppjWrE&gn,NI8SGrSYli7$ueGfLal2Ug!JcC<$df4g~> +N;im(lMpq&WrE&Tn,NIHSGrS8li7%?eGfLal2UfuJcC<$df4g~> +N;im(lMpq&WrE&Tn,NIHSGrS8li7%?eGfLal2UfuJcC<$df4g~> +N;im(lMpq&WrE&Tn,NIHSGrS8li7%?eGfLal2UfuJcC<$df4g~> +N;ilulMpq8WrE&@n,NIWSGrRlm/R.gq:,EE($Yc!BS$27s3gpt~> +N;ilulMpq8WrE&@n,NIWSGrRlm/R.gq:,EE($Yc!BS$27s3gpt~> +N;ilulMpq8WrE&@n,NIWSGrRlm/R.gq:,EE($Yc!BS$27s3gpt~> +N;ilmlMpqIWrE&,nGiRkrLElf2sgSF)q4fe'^>YuB7^)6s3gpt~> +N;ilmlMpqIWrE&,nGiRkrLElf2sgSF)q4fe'^>YuB7^)6s3gpt~> +N;ilmlMpqIWrE&,nGiRkrLElf2sgSF)q4fe'^>YuB7^)6s3gpt~> +N;ilflMpq[X8`1on,NG"S,WI(m/R,Je,KC]l2UfrJcC<$df4g~> +N;ilflMpq[X8`1on,NG"S,WI(m/R,Je,KC]l2UfrJcC<$df4g~> +N;ilflMpq[X8`1on,NG"S,WI(m/R,Je,KC]l2UfrJcC<$df4g~> +N;il^li7"mWrE(Zn,NG1SGrW^!UTje>1 +N;il^li7"mWrE(Zn,NG1SGrW^!UTje>1 +N;il^li7"mWrE(Zn,NG1SGrW^!UTje>1 +N;ilVli7#*WrE(Fn,NGASGrT +N;ilVli7#*WrE(Fn,NGASGrT +N;ilVli7#*WrE(Fn,NGASGrT +N;ilOli7#;WrE(2n,NGPSGrSpli7$@e,KCZl2UfoJcC<$df4g~> +N;ilOli7#;WrE(2n,NGPSGrSpli7$@e,KCZl2UfoJcC<$df4g~> +N;ilOli7#;WrE(2n,NGPSGrSpli7$@e,KCZl2UfoJcC<$df4g~> +N;ilGli7#MWrE'tn,NG\SGrSOli7$Re,KCYl2UfoJcC<$df4g~> +N;ilGli7#MWrE'tn,NG\SGrSOli7$Re,KCYl2UfoJcC<$df4g~> +N;ilGli7#MWrE'tn,NG\SGrSOli7$Re,KCYl2UfoJcC<$df4g~> +N;il?li7#^WrE'`n,NGhSGrS.li7$ce,KCXl2UfnJcC<$df4g~> +N;il?li7#^WrE'`n,NGhSGrS.li7$ce,KCXl2UfnJcC<$df4g~> +N;il?li7#^WrE'`n,NGhSGrS.li7$ce,KCXl2UfnJcC<$df4g~> +N;il5li7#pWrE'Ln,NGsSGrRcli7$ue,KCWl2UfmJcC<$df4g~> +N;il5li7#pWrE'Ln,NGsSGrRcli7$ue,KCWl2UfmJcC<$df4g~> +N;il5li7#pWrE'Ln,NGsSGrRcli7$ue,KCWl2UfmJcC<$df4g~> +N;il$li7$-WrE'9n,NH)SGrRCli7%2e,KCWl2UflJcC<$df4g~> +N;il$li7$-WrE'9n,NH)SGrRCli7%2e,KCWl2UflJcC<$df4g~> +N;il$li7$-WrE'9n,NH)SGrRCli7%2e,KCWl2UflJcC<$df4g~> +N;ikhli7$@WrE'%n,NH4SGrR$li7%Ce,KCVl2UfkJcC<$df4g~> +N;ikhli7$@WrE'%n,NH4SGrR$li7%Ce,KCVl2UfkJcC<$df4g~> +N;ikhli7$@WrE'%n,NH4SGrR$li7%Ce,KCVl2UfkJcC<$df4g~> +NW0%W!UKddTW8"l7IU9WJt;oAnEU&Sn^IL<$gI]l?@i--s3gpt~> +NW0%W!UKddTW8"l7IU9WJt;oAnEU&Sn^IL<$gI]l?@i--s3gpt~> +NW0%W!UKddTW8"l7IU9WJt;oAnEU&Sn^IL<$gI]l?@i--s3gpt~> +NW0"FlMpprWrE&Rn,NHJSc8]:li7%hrmUlI$L.Tk?\/6.s3gpt~> +NW0"FlMpprWrE&Rn,NHJSc8]:li7%hrmUlI$L.Tk?\/6.s3gpt~> +NW0"FlMpprWrE&Rn,NHJSc8]:li7%hrmUlI$L.Tk?\/6.s3gpt~> +NW0"5lMpq6WrE&?n,NHVSc8\oli7#"df0:Rl2Ufmnc'K<3AW9;-6XBI'G(]k,VM2I:g7OOI@.Cg +m",1fs8;nI~> +NW0"5lMpq6WrE&?n,NHVSc8\oli7#"df0:Rl2Ufmnc'K<3AW9;-6XBI'G(]k,VM2I:g7OOI@.Cg +m",1fs8;nI~> +NW0"5lMpq6WrE&?n,NHVSc8\oli7#"df0:Rl2Ufmnc'K<3AW9;-6XBI'G(]k,VM2I:g7OOI@.Cg +m",1fs8;nI~> +NW0"$lMpqPWrE&+n,NHaSc8\Pli7#"df0:Ql2UfooD\j_@HRUq"XH? +NW0"$lMpqPWrE&+n,NHaSc8\Pli7#"df0:Ql2UfooD\j_@HRUq"XH? +NW0"$lMpqPWrE&+n,NHaSc8\Pli7#"df0:Ql2UfooD\j_@HRUq"XH? +NW0!hli7%lri?&!p$Vk\YFY[nEU3Z*%at@W#O29hAb?!'c6qKL"p#rGJ$.T*JcCW-J,~> +NW0!hli7%lri?&!p$Vk\YFY[nEU3Z*%at@W#O29hAb?!'c6qKL"p#rGJ$.T*JcCW-J,~> +NW0!hli7%lri?&!p$Vk\YFY[nEU3Z*%at@W#O29hAb?!'c6qKL"p#rGJ$.T*JcCW-J,~> +NW0!Wli7#/WrE(Ymf3@!Sc8[eli7"ldf0:Ol2UfspAY3nNsF;;"9^bu[.](NNrOV~> +NW0!Wli7#/WrE(Ymf3@!Sc8[eli7"ldf0:Ol2UfspAY3nNsF;;"9^bu[.](NNrOV~> +NW0!Wli7#/WrE(Ymf3@!Sc8[eli7"ldf0:Ol2UfspAY3nNsF;;"9^bu[.](NNrOV~> +NW0!Fli7#IWrE(Cmf3@,Sc8[Ili7"gdf0:Nl2Ufup\t9Y9%!\B"?LqEpjrI.s*t~> +NW0!Fli7#IWrE(Cmf3@,Sc8[Ili7"gdf0:Nl2Ufup\t9Y9%!\B"?LqEpjrI.s*t~> +NW0!Fli7#IWrE(Cmf3@,Sc8[Ili7"gdf0:Nl2Ufup\t9Y9%!\B"?LqEpjrI.s*t~> +NW0!5li7#bWrE(.mf3@8Sc8[4lMpqae,KCOl2Ug"q#:B,)9i-`#=O?eJcD#8J,~> +NW0!5li7#bWrE(.mf3@8Sc8[4lMpqae,KCOl2Ug"q#:B,)9i-`#=O?eJcD#8J,~> +NW0!5li7#bWrE(.mf3@8Sc8[4lMpqae,KCOl2Ug"q#:B,)9i-`#=O?eJcD#8J,~> +NW0!$li7$'WrE'mmf3@CSc8ZtlMpq\e,KCNl2Ug$qYpWnG65hc![;p;JcD,;J,~> +NW0!$li7$'WrE'mmf3@CSc8ZtlMpq\e,KCNl2Ug$qYpWnG65hc![;p;JcD,;J,~> +NW0!$li7$'WrE'mmf3@CSc8ZtlMpq\e,KCNl2Ug$qYpWnG65hc![;p;JcD,;J,~> +NW/ugli7$AWrE'Wmf3@NT)Sf`l2UhVe,KCMl2Ug&qu6]P2T#Lr.YHH+s-s%=~> +NW/ugli7$AWrE'Wmf3@NT)Sf`l2UhVe,KCMl2Ug&qu6]P2T#Lr.YHH+s-s%=~> +NW/ugli7$AWrE'Wmf3@NT)Sf`l2UhVe,KCMl2Ug&qu6]P2T#Lr.YHH+s-s%=~> +NW/uVli7$ZWrE'Amf3@YT)SfLl2UhQe,KCLl2Ug(r;Qeo%_huF1lUFFs.97@~> +NW/uVli7$ZWrE'Amf3@YT)SfLl2UhQe,KCLl2Ug(r;Qeo%_huF1lUFFs.97@~> +NW/uVli7$ZWrE'Amf3@YT)SfLl2UhQe,KCLl2Ug(r;Qeo%_huF1lUFFs.97@~> +NW/uCli7$tWrE'+n,NIirLX#hbj#0.lI5b5!U9XbF8l1?o3]*0!s2-,rdk*Cs*t~> +NW/uCli7$tWrE'+n,NIirLX#hbj#0.lI5b5!U9XbF8l1?o3]*0!s2-,rdk*Cs*t~> +NW/uCli7$tWrE'+n,NIirLX#hbj#0.lI5b5!U9XbF8l1?o3]*0!s2-,rdk*Cs*t~> +NW/u(li7%8WrE&kn,NFpSc8]!l2Uh7e,SY4"EjbEbU'^u!\Bf6JcDMFJ,~> +NW/u(li7%8WrE&kn,NFpSc8]!l2Uh7e,SY4"EjbEbU'^u!\Bf6JcDMFJ,~> +NW/u(li7%8WrE&kn,NFpSc8]!l2Uh7e,SY4"EjbEbU'^u!\Bf6JcDMFJ,~> +NW/tcli7%VWrE&Un,NG'Sc8\al2UggeGfOJkl:g0rf%,h!!3j\jFR?-s*t~> +NW/tcli7%VWrE&Un,NG'Sc8\al2UggeGfOJkl:g0rf%,h!!3j\jFR?-s*t~> +NW/tcli7%VWrE&Un,NG'Sc8\al2UggeGfOJkl:g0rf%,h!!3j\jFR?-s*t~> +NrK+Ili7"tWW)r>n,NG2Sc8\Ll2UgBeGfOIkl:a%8?`'q"^9$!s/5mI~> +NrK+Ili7"tWW)r>n,NG2Sc8\Ll2UgBeGfOIkl:a%8?`'q"^9$!s/5mI~> +NrK+Ili7"tWW)r>n,NG2Sc8\Ll2UgBeGfOIkl:a%8?`'q"^9$!s/5mI~> +NrK+.li7#@WW)r(n,NG=Sc8\8l2UfreGfOHkl:\kX8i8ec@Q"ps*t~> +NrK+.li7#@WW)r(n,NG=Sc8\8l2UfreGfOHkl:\kX8i8ec@Q"ps*t~> +NrK+.li7#@WW)r(n,NG=Sc8\8l2UfreGfOHkl:\kX8i8ec@Q"ps*t~> +NrK*hli7#bWrE(hmf3>GSc8\3l2UfLeGfOHOoPOa +NrK*hli7#bWrE(hmf3>GSc8\3l2UfLeGfOHOoPOa +NrK*hli7#bWrE(hmf3>GSc8\3l2UfLeGfOHOoPOa +NrK*Nli7$.WrE(Smf3>RSc8\3l2Uf'eGfOGO8o=bBB=^EXoEn~> +NrK*Nli7$.WrE(Smf3>RSc8\3l2Uf'eGfOGO8o=bBB=^EXoEn~> +NrK*Nli7$.WrE(Smf3>RSc8\3l2Uf'eGfOGO8o=bBB=^EXoEn~> +NrK*3li7$OWrE(=mf3>]Sc8\3l2Uhco[WsAqW\%b#]lZC^Wt[6i;MUCio/G+Z_EV6E*l@&*5MUV +$@)#js0)HQ~> +NrK*3li7$OWrE(=mf3>]Sc8\3l2Uhco[WsAqW\%b#]lZC^Wt[6i;MUCio/G+Z_EV6E*l@&*5MUV +$@)#js0)HQ~> +NrK*3li7$OWrE(=mf3>]Sc8\3l2Uhco[WsAqW\%b#]lZC^Wt[6i;MUCio/G+Z_EV6E*l@&*5MUV +$@)#js0)HQ~> +NrK)mli7$pWrE('mf3>iSc8\3kl:_1ec,XFlMprUkN;dLp=$1%AjIF=`rH/PMYD]%Z2]=~> +NrK)mli7$pWrE('mf3>iSc8\3kl:_1ec,XFlMprUkN;dLp=$1%AjIF=`rH/PMYD]%Z2]=~> +NrK)mli7$pWrE('mf3>iSc8\3kl:_1ec,XFlMprUkN;dLp=$1%AjIF=`rH/PMYD]%Z2]=~> +NrK)Rli7%=WrE'fmf3>tSc8\3kl:^aec,XFm/R1lNW.f7"TH`6>pIGk!B0+ls0DZT~> +NrK)Rli7%=WrE'fmf3>tSc8\3kl:^aec,XFm/R1lNW.f7"TH`6>pIGk!B0+ls0DZT~> +NrK)Rli7%=WrE'fmf3>tSc8\3kl:^aec,XFm/R1lNW.f7"TH`6>pIGk!B0+ls0DZT~> +NrK)8m/R.gpo=>oK^Sm@DOpe-FQic+39\rn!;Ps^!@Q.DrrhMeF#aKM!!+1jJcE(VJ,~> +NrK)8m/R.gpo=>oK^Sm@DOpe-FQic+39\rn!;Ps^!@Q.DrrhMeF#aKM!!+1jJcE(VJ,~> +NrK)8m/R.gpo=>oK^Sm@DOpe-FQic+39\rn!;Ps^!@Q.DrrhMeF#aKM!!+1jJcE(VJ,~> +NrK(rm/R,+WW)s:mf3?5Sc8\2kPtYmO8RZ1!;Q!_!G(iNrr`2'I4EPC!=c\ms0VfV~> +NrK(rm/R,+WW)s:mf3?5Sc8\2kPtYmO8RZ1!;Q!_!G(iNrr`2'I4EPC!=c\ms0VfV~> +NrK(rm/R,+WW)s:mf3?5Sc8\2kPtYmO8RZ1!;Q!_!G(iNrr`2'I4EPC!=c\ms0VfV~> +O8f7W!posf5,nP^=ml=jKUr,CF63H'1sakT!;H!`!>2BVrrUc(1!ot%#/>`h[Jta~> +O8f7W!posf5,nP^=ml=jKUr,CF63H'1sakT!;H!`!>2BVrrUc(1!ot%#/>`h[Jta~> +O8f7W!posf5,nP^=ml=jKUr,CF63H'1sakT!;H!`!>2BVrrUc(1!ot%#/>`h[Jta~> +O8f4=li7#mWW)rcmf3?LSc8\2jT#>aM#5s,!;H$a!C#J`rr_&62Z_D.!>3n6s0hrX~> +O8f4=li7#mWW)rcmf3?LSc8\2jT#>aM#5s,!;H$a!C#J`rr_&62Z_D.!>3n6s0hrX~> +O8f4=li7#mWW)rcmf3?LSc8\2jT#>aM#5s,!;H$a!C#J`rr_&62Z_D.!>3n6s0hrX~> +O8f3uli7$9WW)rMmf3?WSc8\>irB,jFQ;3W!;?$b!X+,Q`;]o1O;-4F!?pZXs0r#Y~> +O8f3uli7$9WW)rMmf3?WSc8\>irB,jFQ;3W!;?$b!X+,Q`;]o1O;-4F!?pZXs0r#Y~> +O8f3uli7$9WW)rMmf3?WSc8\>irB,jFQ;3W!;?$b!X+,Q`;]o1O;-4F!?pZXs0r#Y~> +O8f3Qli7$ZWW)r7mf3?bSc8\]i;`o`?dmp4!;?'c!?oFtrr`2'635[ +O8f3Qli7$ZWW)r7mf3?bSc8\]i;`o`?dmp4!;?'c!?oFtrr`2'635[ +O8f3Qli7$ZWW)r7mf3?bSc8\]i;`o`?dmp4!;?'c!?oFtrr`2'635[ +O8f3-li7%(WrE+u"Rc +O8f3-li7%(WrE+u"Rc +O8f3-li7%(WrE+u"Rc +O8f2]li7%PWrE(bmJm7"Sc8]Eg].Ea +O8f2]li7%PWrE(bmJm7"Sc8]Eg].Ea +O8f2]li7%PWrE(bmJm7"Sc8]Eg].Ea +O8f29m/R,$WW)tKmJm7-Sc8`c!nmVV#$7#Ykl1YCq#CFQgU7%_rLXn]!!&XBs1&)Z~> +O8f29m/R,$WW)tKmJm7-Sc8`c!nmVV#$7#Ykl1YCq#CFQgU7%_rLXn]!!&XBs1&)Z~> +O8f29m/R,$WW)tKmJm7-Sc8`c!nmVV#$7#Ykl1YCq#CFQgU7%_rLXn]!!&XBs1&)Z~> +O8f1im/R,MWW)t5mJm79SGrR,ec5dsA#&)NrrCaL!!34GqQg,&qN;TM!!(>rs1&)Z~> +O8f1im/R,MWW)t5mJm79SGrR,ec5dsA#&)NrrCaL!!34GqQg,&qN;TM!!(>rs1&)Z~> +O8f1im/R,MWW)t5mJm79SGrR,ec5dsA#&)NrrCaL!!34GqQg,&qN;TM!!(>rs1&)Z~> +OT,=Fli7#uWW)stmJm7DSGrRKdJsFt;Lu(0rpp'hchmbD)niES!q:F@i;`j,JcE4ZJ,~> +OT,=Fli7#uWW)stmJm7DSGrRKdJsFt;Lu(0rpp'hchmbD)niES!q:F@i;`j,JcE4ZJ,~> +OT,=Fli7#uWW)stmJm7DSGrRKdJsFt;Lu(0rpp'hchmbD)niES!q:F@i;`j,JcE4ZJ,~> +OT,=!li7$HWW)s_mJm7OSGrRibl@nX4`$V1p@nRe`Vfc;:[>(]!odMfj8]2]["87ds*t~> +OT,=!li7$HWW)s_mJm7OSGrRibl@nX4`$V1p@nRe`Vfc;:[>(]!odMfj8]2]["87ds*t~> +OT,=!li7$HWW)s_mJm7OSGrRibl@nX4`$V1p@nRe`Vfc;:[>(]!odMfj8]2]["87ds*t~> +OT, +OT, +OT, +OT,<-li7%DWW)s3mf3@irg`uh_$.^V#S]UFT[0\>/_$Tr!Mp.e!!,XiJcE1YJ,~> +OT,<-li7%DWW)s3mf3@irg`uh_$.^V#S]UFT[0\>/_$Tr!Mp.e!!,XiJcE1YJ,~> +OT,<-li7%DWW)s3mf3@irg`uh_$.^V#S]UFT[0\>/_$Tr!Mp.e!!,XiJcE1YJ,~> +OT,;]m/R.pri,nt;XXSc$_%(rc6L(("ToE@Mn8ARrrLUll2UiVpOW@Ps*t~> +OT,;]m/R.pri,nt;XXSc$_%(rc6L(("ToE@Mn8ARrrLUll2UiVpOW@Ps*t~> +OT,;]m/R.pri,nt;XXSc$_%(rc6L(("ToE@Mn8ARrrLUll2UiVpOW@Ps*t~> +OT,;9m/R,BW;ci[mf3>(RK!OSBf!Tu?,!!,^eJcE+WJ,~> +OT,;9m/R,BW;ci[mf3>(RK!OSBf!Tu?,!!,^eJcE+WJ,~> +OT,;9m/R,BW;ci[mf3>(RK!OSBf!Tu?,!!,^eJcE+WJ,~> +OT,:im/R,jW;ciFmf3>3R/[6eM?L]p!>MT.rrMm`mJm8[pjrIOs*t~> +OT,:im/R,jW;ciFmf3>3R/[6eM?L]p!>MT.rrMm`mJm8[pjrIOs*t~> +OT,:im/R,jW;ciFmf3>3R/[6eM?L]p!>MT.rrMm`mJm8[pjrIOs*t~> +OoGFFli7$=W;ci0mf3>>QN%!%&]+MK9]r&J!VSG@!!,afJcE%UJ,~> +OoGFFli7$=W;ci0mf3>>QN%!%&]+MK9]r&J!VSG@!!,afJcE%UJ,~> +OoGFFli7$=W;ci0mf3>>QN%!%&]+MK9]r&J!VSG@!!,afJcE%UJ,~> +OoGEsli7$fWW*"p!Ug!g30jLFqjAAB!!*P!SGrWP)=db.9_a2=Z2]=~> +OoGEsli7$fWW*"p!Ug!g30jLFqjAAB!!*P!SGrWP)=db.9_a2=Z2]=~> +OoGEsli7$fWW*"p!Ug!g30jLFqjAAB!!*P!SGrWP)=db.9_a2=Z2]=~> +P5bRVP3`/KeZ&QKjR*!J6^.NOonF"!!!,:?Rf +P5bRVP3`/KeZ&QKjR*!J6^.NOonF"!!!,:?Rf +P5bRVP3`/KeZ&QKjR*!J6^.NOonF"!!!,:?Rf +Q2_!YT69%%m/R.hq5OAocL(Z4:6GPXnRi!L!!3FbrL*ZcSFcd^DZ,.dYQ'+~> +Q2_!YT69%%m/R.hq5OAocL(Z4:6GPXnRi!L!!3FbrL*ZcSFcd^DZ,.dYQ'+~> +Q2_!YT69%%m/R.hq5OAocL(Z4:6GPXnRi!L!!3FbrL*ZcSFcd^DZ,.dYQ'+~> +Qi@9/@h3k]s#'0D!&(;N!4hLt!*YH`"8&9O!RUlJ1=V]k!W4_H!!*.\JcDkPJ,~> +Qi@9/@h3k]s#'0D!&(;N!4hLt!*YH`"8&9O!RUlJ1=V]k!W4_H!!*.\JcDkPJ,~> +Qi@9/@h3k]s#'0D!&(;N!4hLt!*YH`"8&9O!RUlJ1=V]k!W4_H!!*.\JcDkPJ,~> +Rf<]XMCAND^&S-1$1.]m?E!l(U[A*^AW6WjgNspj!!3:OqNq3^GP2";#cWCTXT*e~> +Rf<]XMCAND^&S-1$1.]m?E!l(U[A*^AW6WjgNspj!!3:OqNq3^GP2";#cWCTXT*e~> +Rf<]XMCAND^&S-1$1.]m?E!l(U[A*^AW6WjgNspj!!3:OqNq3^GP2";#cWCTXT*e~> +Sc8rlYtkN'!)2_XrrC[;!!&%XrrA&H!!$tprr^,^0EKl-!@Q!TrrKP/pAb4,_L_`fs*t~> +Sc8rlYtkN'!)2_XrrC[;!!&%XrrA&H!!$tprr^,^0EKl-!@Q!TrrKP/pAb4,_L_`fs*t~> +Sc8rlYtkN'!)2_XrrC[;!!&%XrrA&H!!$tprr^,^0EKl-!@Q!TrrKP/pAb4,_L_`fs*t~> +TDnuFFrC8Z!XFkerVlkrli7%"W;cjAmJm66LAqA +TDnuFFrC8Z!XFkerVlkrli7%"W;cjAmJm66LAqA +TDnuFFrC8Z!XFkerVlkrli7%"W;cjAmJm66LAqA +UAk>eSN?lN!!+Loqu6YAli7%QW;cj+mJm6AKDu,Ret[1I%-7Hi*P@[;!W+kN!!+P4JcD_LJ,~> +UAk>eSN?lN!!+Loqu6YAli7%QW;cj+mJm6AKDu,Ret[1I%-7Hi*P@[;!W+kN!!+P4JcD_LJ,~> +UAk>eSN?lN!!+Loqu6YAli7%QW;cj+mJm6AKDu,Ret[1I%-7Hi*P@[;!W+kN!!+P4JcD_LJ,~> +V#LM7@LW,6!Ftcurr>^Z!!"(a\!!&15s8N$%rR[ib4q6fX!FG5[rrMd[pAb50q18REs*t~> +V#LM7@LW,6!Ftcurr>^Z!!"(a\!!&15s8N$%rR[ib4q6fX!FG5[rrMd[pAb50q18REs*t~> +V#LM7@LW,6!Ftcurr>^Z!!"(a\!!&15s8N$%rR[ib4q6fX!FG5[rrMd[pAb50q18REs*t~> +VuHh]M(&3#!>)7*rr=&+!!#`krr=tF!!&O?s7uZurR[ib5QgQW!>V`$rrMd[p](=$TRm-?s*t~> +VuHh]M(&3#!>)7*rr=&+!!#`krr=tF!!&O?s7uZurR[ib5QgQW!>V`$rrMd[p](=$TRm-?s*t~> +VuHh]M(&3#!>)7*rr=&+!!#`krr=tF!!&O?s7uZurR[ib5QgQW!>V`$rrMd[p](=$TRm-?s*t~> +WrE1uYYG>s!!,.mJm6^JcGBB"o[,PF[Hf:!!,jYPlCdW6MLN]+O,K;V>l&~> +WrE1uYYG>s!!,.mJm6^JcGBB"o[,PF[Hf:!!,jYPlCdW6MLN]+O,K;V>l&~> +WrE1uYYG>s!!,.mJm6^JcGBB"o[,PF[Hf:!!,jYPlCdW6MLN]+O,K;V>l&~> +XT&@RFVslR!X!fHp\t6-li7$eVuH`(mJm6cJcG3=$3&e_H:SeO!"PTarrMaXp](=`m",24s*t~> +XT&@RFVslR!X!fHp\t6-li7$eVuH`(mJm6cJcG3=$3&e_H:SeO!"PTarrMaXp](=`m",24s*t~> +XT&@RFVslR!X!fHp\t6-li7$eVuH`(mJm6cJcG3=$3&e_H:SeO!"PTarrMaXp](=`m",24s*t~> +YQ"[pS3$?D!?8cGrrA,H!!(fQrrDZX!!'0Qs69Obj0@O+rrMXKq#CHsGl3-mU]5i~> +YQ"[pS3$?D!?8cGrrA,H!!(fQrrDZX!!'0Qs69Obj0@O+rrMXKq#CHsGl3-mU]5i~> +YQ"[pS3$?D!?8cGrrA,H!!(fQrrDZX!!'0Qs69Obj0@O+rrMXKq#CHsGl3-mU]5i~> +Z2XmWCCTq:!D`"Rrr?Kp!!*T/W;ckSm/R-mJcC<$q>UKG,P_ +Z2XmWCCTq:!D`"Rrr?Kp!!*T/W;ckSm/R-mJcC<$q>UKG,P_ +Z2XmWCCTq:!D`"Rrr?Kp!!*T/W;ckSm/R-mJcC<$q>UKG,P_ +[/U7+Yse]d!!3Firq$-i0'rW=4K&2ZaR&s-\:O[2s8)`r[h&97!Cu=(s.KCB~> +[/U7+Yse]d!!3Firq$-i0'rW=4K&2ZaR&s-\:O[2s8)`r[h&97!Cu=(s.KCB~> +[/U7+Yse]d!!3Firq$-i0'rW=4K&2ZaR&s-\:O[2s8)`r[h&97!Cu=(s.KCB~> +[f6ErMBVQk!@lLfrrMZmm/R-&VuHb&m/R.#JcC<$qu6\Y"8W!!#EA_6s.B=A~> +[f6ErMBVQk!@lLfrrMZmm/R-&VuHb&m/R.#JcC<$qu6\Y"8W!!#EA_6s.B=A~> +[f6ErMBVQk!@lLfrrMZmm/R-&VuHb&m/R.#JcC<$qu6\Y"8W!!#EA_6s.B=A~> +\GlWV@gV]+!G1rorrB^u!!&XhrrASV!!'ofs+14KrrMt.q#CFDc@Q"ds*t~> +\GlWV@gV]+!G1rorrB^u!!&XhrrASV!!'ofs+14KrrMt.q#CFDc@Q"ds*t~> +\GlWV@gV]+!G1rorrB^u!!&XhrrASV!!'ofs+14KrrMt.q#CFDc@Q"ds*t~> +]Dhs/W''SM!>2C$rr@] +]Dhs/W''SM!>2C$rr@] +]Dhs/W''SM!>2C$rr@] +^&J/tJf=.Z!ZQdUmf*8Zm/R,/VZ-X9m/R.3JcC<$s8N,2(]"+4%^LZcRf@m~> +^&J/tJf=.Z!ZQdUmf*8Zm/R,/VZ-X9m/R.3JcC<$s8N,2(]"+4%^LZcRf@m~> +^&J/tJf=.Z!ZQdUmf*8Zm/R,/VZ-X9m/R.3JcC<$s8N,2(]"+4%^LZcRf@m~> +^]+AU>6aWu!sDE-r9aLbrY"Su!+Dc)!*egj!7QN!Jc>fKH33sD!Wc`sJcD/ +^]+AU>6aWu!sDE-r9aLbrY"Su!+Dc)!*egj!7QN!Jc>fKH33sD!Wc`sJcD/ +^]+AU>6aWu!sDE-r9aLbrY"Su!+Dc)!*egj!7QN!Jc>fKH33sD!Wc`sJcD/ +_Z']3TJZ0=!ZcjQlMgk9mJm:pDs!qs!(H8T!8)l&K)Yl34o,-Z,.iF+QiDR~> +_Z']3TJZ0=!ZcjQlMgk9mJm:pDs!qs!(H8T!8)l&K)Yl34o,-Z,.iF+QiDR~> +_Z']3TJZ0=!ZcjQlMgk9mJm:pDs!qs!(H8T!8)l&K)Yl34o,-Z,.iF+QiDR~> +`;]nuGnolM!s;9(r94.\T'u^]&Uiu@rr=_>!!(l,s+C=PZkN<:!X!K8JcD&9J,~> +`;]nuGnolM!s;9(r94.\T'u^]&Uiu@rr=_>!!(l,s+C=PZkN<:!X!K8JcD&9J,~> +`;]nuGnolM!s;9(r94.\T'u^]&Uiu@rr=_>!!(l,s+C=PZkN<:!X!K8JcD&9J,~> +`r?+T;ZuXk!ZZ^Ljo5 +`r?+T;ZuXk!ZZ^Ljo5 +`r?+T;ZuXk!ZZ^Ljo5 +ao;G7Qn7e.!s;0#qr@\V/G&oD,FJ4urr<;k!!)56s+^OSaX[/f!XOJUJcCr6J,~> +ao;G7Qn7e.!s;0#qr@\V/G&oD,FJ4urr<;k!!)56s+^OSaX[/f!XOJUJcCr6J,~> +ao;G7Qn7e.!s;0#qr@\V/G&oD,FJ4urr<;k!!)56s+^OSaX[/f!XOJUJcCr6J,~> +bPqXuE=h[@!ZHLFiVrrJ!qlTq/uJN +bPqXuE=h[@!ZHLFiVrrJ!qlTq/uJN +bPqXuE=h[@!ZHLFiVrrJ!qlTq/uJN +c2RjY>QOEr!s2#sqqqDR\b?(*41"pWrrCmA!!)VAs,$aV`[L]a!Y1OpJcCi3J,~> +c2RjY>QOEr!s2#sqqqDR\b?(*41"pWrrCmA!!)VAs,$aV`[L]a!Y1OpJcCi3J,~> +c2RjY>QOEr!s2#sqqqDR\b?(*41"pWrrCmA!!)VAs,$aV`[L]a!Y1OpJcCi3J,~> +d/O1FWAO/G!Z?=Ah#@A)q>^Qt8AUbp!6OR-!;M-FMuNkPEWc1=!DVU*s,R,0~> +d/O1FWAO/G!Z?=Ah#@A)q>^Qt8AUbp!6OR-!;M-FMuNkPEWc1=!DVU*s,R,0~> +d/O1FWAO/G!Z?=Ah#@A)q>^Qt8AUbp!6OR-!;M-FMuNkPEWc1=!DVU*s,R,0~> +df0CAPTo]!!s1roqV(rL8,N>g"'3^7rrBFm!!*"Ls,?sY_^50[!>_Sas,?u.~> +df0CAPTo]!!s1roqV(rL8,N>g"'3^7rrBFm!!*"Ls,?sY_^50[!>_Sas,?u.~> +df0CAPTo]!!s1roqV(rL8,N>g"'3^7rrBFm!!*"Ls,?sY_^50[!>_Sas,?u.~> +eGfU9J/.YU!Z-+;f`)!D$N:#,#%ZGRrrA_Z!!!.Qs,I$[oPXg.!!- +eGfU9J/.YU!Z-+;f`)!D$N:#,#%ZGRrrA_Z!!!.Qs,I$[oPXg.!!- +eGfU9J/.YU!Z-+;f`)!D$N:#,#%ZGRrrA_Z!!!.Qs,I$[oPXg.!!- +f)Gg-C^Te7!s(fiqUYZMU]:B'ETEAa!0$:F!""5VNrK-q,PqHA29(4IM>r)~> +f)Gg-C^Te7!s(fiqUYZMU]:B'ETEAa!0$:F!""5VNrK-q,PqHA29(4IM>r)~> +f)Gg-C^Te7!s(fiqUYZMU]:B'ETEAa!0$:F!""5VNrK-q,PqHA29(4IM>r)~> +f`)#s +f`)#s +f`)#s +g]%?S\3olg!s(`eq9o9EqiUT6rr?Qr!!!^as,m<^]cm:R!XEu@JcCK)J,~> +g]%?S\3olg!s(`eq9o9EqiUT6rr?Qr!!!^as,m<^]cm:R!XEu@JcCK)J,~> +g]%?S\3olg!s(`eq9o9EqiUT6rr?Qr!!!^as,m<^]cm:R!XEu@JcCK)J,~> +h>[QQUbD??!Yoh1JcFL)!)Mt^!#^@fPQ(^TB*%o1!E%[(s+LE&~> +h>[QQUbD??!Yoh1JcFL)!)Mt^!#^@fPQ(^TB*%o1!E%[(s+LE&~> +h>[QQUbD??!Yoh1JcFL)!)Mt^!#^@fPQ(^TB*%o1!E%[(s+LE&~> +hu.J!!"*ls-3Na^DZqL!A1s8s+:9$~> +hu.J!!"*ls-3Na^DZqL!A1s8s+:9$~> +hu.J!!"*ls-3Na^DZqL!A1s8s+:9$~> +iVruCHP5uO!Y]V,JcF=$!%7.6!$m-qQN%!H +iVruCHP5uO!Y]V,JcF=$!%7.6!$m-qQN%!H +iVruCHP5uO!Y]V,JcF=$!%7.6!$m-qQN%!H +j8T26AdJ)1!s(T]pOW@orr<]!!!"I!s-WffqMG^[!!3:@m=G:gs8W+L~> +j8T26AdJ)1!s(T]pOW@orr<]!!!"I!s-WffqMG^[!!3:@m=G:gs8W+L~> +j8T26AdJ)1!s(T]pOW@orr<]!!!"I!s-WffqMG^[!!3:@m=G:gs8W+L~> +jo5D&;?HOl!YTJ'JcF0u!W)rc!!"X&s-`lf^+0$\!CkUjs+14Ks*t~> +jo5D&;?HOl!YTJ'JcF0u!W)rc!!"X&s-`lf^+0$\!CkUjs+14Ks*t~> +jo5D&;?HOl!YTJ'JcF0u!W)rc!!"X&s-`lf^+0$\!CkUjs+14Ks*t~> +kl1_`ZT[s]![X]AJcF*s!9rhM!&0!(S,WNN=o87#-*i+%JcGWIJ,~> +kl1_`ZT[s]![X]AJcF*s!9rhM!&0!(S,WNN=o87#-*i+%JcGWIJ,~> +kl1_`ZT[s]![X]AJcF*s!9rhM!&0!(S,WNN=o87#-*i+%JcGWIJ,~> +lMgqaTcNh,!X2]FJcF!p!7gE9!&0!(Sc8cfN=Ggd!XXSYJcC<$qYu'~> +lMgqaTcNh,!X2]FJcF!p!7gE9!&0!(Sc8cfN=Ggd!XXSYJcC<$qYu'~> +lMgqaTcNh,!X2]FJcF!p!7gE9!&0!(Sc8cfN=Ggd!XXSYJcC<$qYu'~> +m/I._R3;2'!Z$1EJcEpn!5Rq$!&0!(T)Si,/H#PM$$P`fs+14Fs*t~> +m/I._R3;2'!Z$1EJcEpn!5Rq$!&0!(T)Si,/H#PM$$P`fs+14Fs*t~> +m/I._R3;2'!Z$1EJcEpn!5Rq$!&0!(T)Si,/H#PM$$P`fs+14Fs*t~> +mf*@`PofW!!]-MEJcEjl!3GMe!&0!(T`5)U>64^'!WuokJcC<$pA]X~> +mf*@`PofW!!]-MEJcEjl!3GMe!&0!(T`5)U>64^'!WuokJcC<$pA]X~> +mf*@`PofW!!]-MEJcEjl!3GMe!&0!(T`5)U>64^'!WuokJcC<$pA]X~> +nG`R`OW4#p!X2ZEJcEai!1<*Q!&0!(UAk;lNt2*g!DV'ps+14Bs*t~> +nG`R`OW4#p!X2ZEJcEai!1<*Q!&0!(UAk;lNt2*g!DV'ps+14Bs*t~> +nG`R`OW4#p!X2ZEJcEai!1<*Q!&0!(UAk;lNt2*g!DV'ps+14Bs*t~> +o)Ad`N>VBi!Z$1EJcE[g!/'V +o)Ad`N>VBi!Z$1EJcE[g!/'V +o)Ad`N>VBi!Z$1EJcE[g!/'V +o`#!aM&,gc!]-MEJcEUe!,q3(!&0!(V>gV\?31$*!@b4's+14>s*t~> +o`#!aM&,gc!]-MEJcEUe!,q3(!&0!(V>gV\?31$*!@b4's+14>s*t~> +o`#!aM&,gc!]-MEJcEUe!,q3(!&0!(V>gV\?31$*!@b4's+14>s*t~> +pAY3aKbX:^!X2ZEJcELb!*edi!&0!(VuHhrOq7Nl!ZRX+JcC<$n,In~> +pAY3aKbX:^!X2ZEJcELb!*edi!&0!(VuHhrOq7Nl!ZRX+JcC<$n,In~> +pAY3aKbX:^!X2ZEJcELb!*edi!&0!(VuHhrOq7Nl!ZRX+JcC<$n,In~> +q#:EaJJ%YW!Z$1EJcEF`!(ZAU!&0!(W;cn;/,fMM&;Tq0s+14;s*t~> +q#:EaJJ%YW!Z$1EJcEF`!(ZAU!&0!(W;cn;/,fMM&;Tq0s+14;s*t~> +q#:EaJJ%YW!Z$1EJcEF`!(ZAU!&0!(W;cn;/,fMM&;Tq0s+14;s*t~> +qYpWaI1Q)Q!]-MEJcE@^!&Em@!&0!(WrE+O9`>"n#]o?`s+149s*t~> +qYpWaI1Q)Q!]-MEJcE@^!&Em@!&0!(WrE+O9`>"n#]o?`s+149s*t~> +qYpWaI1Q)Q!]-MEJcE@^!&Em@!&0!(WrE+O9`>"n#]o?`s+149s*t~> +r;Qi`Gn'QL!Wl?"JcE7[!$:J,!&0!(XT&OlD$9n>!ajo;s+147s*t~> +r;Qi`Gn'QL!Wl?"JcE7[!$:J,!&0!(XT&OlD$9n>!ajo;s+147s*t~> +r;Qi`Gn'QL!Wl?"JcE7[!$:J,!&0!(XT&OlD$9n>!ajo;s+147s*t~> +rr3&`F:@sF!Xii#JcE1Y!"/&m!&0!(Y5\S!NY26j!DCjls+145s*t~> +rr3&`F:@sF!Xii#JcE1Y!"/&m!&0!(Y5\S!NY26j!DCjls+145s*t~> +rr3&`F:@sF!Xii#JcE1Y!"/&m!&0!(Y5\S!NY26j!DCjls+145s*t~> +"97M&$MaZ'(kq@.s0_k,p$2SX0nKA.rrK8KrVusX^k)N:s5j92~> +"97M&$MaZ'(kq@.s0_k,p$2SX0nKA.rrK8KrVusX^k)N:s5j92~> +"97M&$MaZ'(kq@.s0_k,p$2SX0nKA.rrK8KrVusX^k)N:s5j92~> +!Gi&;!!4[ApjrIOrrD!C!!"a)s0;S)bs;7.![k)KJcC<$jSs`~> +!Gi&;!!4[ApjrIOrrD!C!!"a)s0;S)bs;7.![k)KJcC<$jSs`~> +!Gi&;!!4[ApjrIOrrD!C!!"a)s0;S)bs;7.![k)KJcC<$jSs`~> +q#CI_[JkaWZ2XgJlMpo>JcE(V#N]=p!!!n(qgncus5O'/~> +q#CI_[JkaWZ2XgJlMpo>JcE(V#N]=p!!!n(qgncus5O'/~> +q#CI_[JkaWZ2XgJlMpo>JcE(V#N]=p!!!n(qgncus5O'/~> +qu?d%>0VWuY5\L3lMpo>JcE.X#PEWU!!!L^oR[$ns5 +qu?d%>0VWuY5\L3lMpo>JcE.X#PEWU!!!L^oR[$ns5 +qu?d%>0VWuY5\L3lMpo>JcE.X#PEWU!!!L^oR[$ns5 +rW!!0F5_]MXT&9qlMpo>JcE4Z#Q:>9!!!7Cl[f(es5*d+~> +rW!!0F5_]MXT&9qlMpo>JcE4Z#Q:>9!!!7Cl[f(es5*d+~> +rW!!0F5_]MXT&9qlMpo>JcE4Z#Q:>9!!!7Cl[f(es5*d+~> +!rs@"n:CV>rrA,G!!"a)s1&(5_DD5m!aOW6s+14*s*t~> +!rs@"n:CV>rrA,G!!"a)s1&(5_DD5m!aOW6s+14*s*t~> +!rs@"n:CV>rrA,G!!"a)s1&(5_DD5m!aOW6s+14*s*t~> +!MfLBs/>qtHg:Y30nKA9rrLnRrVusic[l+Is4[L'~> +!MfLBs/>qtHg:Y30nKA9rrLnRrVusic[l+Is4[L'~> +!MfLBs/>qtHg:Y30nKA9rrLnRrVusic[l+Is4[L'~> +JcDVI!,(Tt!&9')]`/3)F9_dG1;SPAJcFC&J,~> +JcDVI!,(Tt!&9')]`/3)F9_dG1;SPAJcFC&J,~> +JcDVI!,(Tt!&9')]`/3)F9_dG1;SPAJcFC&J,~> +JcDVI!)i+_!&9')^AeH8PS=)t+K#-hs+14%s*t~> +JcDVI!)i+_!&9')^AeH8PS=)t+K#-hs+14%s*t~> +JcDVI!)i+_!&9')^AeH8PS=)t+K#-hs+14%s*t~> +JcDVI!']]K!&9')^]+MG.0'>ZMYD]%JcF:#J,~> +JcDVI!']]K!&9')^]+MG.0'>ZMYD]%JcF:#J,~> +JcDVI!']]K!&9')^]+MG.0'>ZMYD]%JcF:#J,~> +JcDVI!%R:7!&9')_>a_f7K +JcDVI!%R:7!&9')_>a_f7K +JcDVI!%R:7!&9')_>a_f7K +JcDVI!#Fl#!&9')_uBr)B*/,6;;-U$JcF-tJ,~> +JcDVI!#Fl#!&9')_uBr)B*/,6;;-U$JcF-tJ,~> +JcDVI!#Fl#!&9')_uBr)B*/,6;;-U$JcF-tJ,~> +JcDYJ!W<,d!!"a)s2G!BpP04Y!&h]Fs+13rs*t~> +JcDYJ!W<,d!!"a)s2G!BpP04Y!&h]Fs+13rs*t~> +JcDYJ!W<,d!!"a)s2G!BpP04Y!&h]Fs+13rs*t~> +JcDYJ!:8tN!&B-*a8ZDDW#u'?+K#-hs+13qs*t~> +JcDYJ!:8tN!&B-*a8ZDDW#u'?+K#-hs+13qs*t~> +JcDYJ!:8tN!&B-*a8ZDDW#u'?+K#-hs+13qs*t~> +JcDYJ!8-Q:!*+UMaSuIc3WK-kMYD]%JcEsoJ,~> +JcDYJ!8-Q:!*+UMaSuIc3WK-kMYD]%JcEsoJ,~> +JcDYJ!8-Q:!*+UMaSuIc3WK-kMYD]%JcEsoJ,~> +JcDYJ!5n.'!Aq38s2k9FiE60]"`EXWs+13ms*t~> +JcDYJ!5n.'!Aq38s2k9FiE60]"`EXWs+13ms*t~> +JcDYJ!5n.'!Aq38s2k9FiE60]"`EXWs+13ms*t~> +JcDYJ!3bej!\^eWJcEmm#4d'H!!#pOJcC<$aT$b~> +JcDYJ!3bej!\^eWJcEmm#4d'H!!#pOJcC<$aT$b~> +JcDYJ!3bej!\^eWJcEmm#4d'H!!#pOJcC<$aT$b~> +JcDYJ!1WHX!\:>NJcEmm#5t#-!!"CZJcC<$`rCP~> +JcDYJ!1WHX!\:>NJcEmm#5t#-!!"CZJcC<$`rCP~> +JcDYJ!1WHX!\:>NJcEmm#5t#-!!"CZJcC<$`rCP~> +JcDYJ!/L+F![jlDJcEjl#.lJf!"+GUJcC<$`W(G~> +JcDYJ!/L+F![jlDJcEjl#.lJf!"+GUJcC<$`W(G~> +JcDYJ!/L+F![jlDJcEjl#.lJf!"+GUJcC<$`W(G~> +JcDYJ!-7]3![OK;JcEjl!S0pC!!,gOJcC<$_uG5~> +JcDYJ!-7]3![OK;JcEjl!S0pC!!,gOJcC<$_uG5~> +JcDYJ!-7]3![OK;JcEjl!S0pC!!,gOJcC<$_uG5~> +JcDYJ!+,@!![+$1JcEjl#4$%-!!".HJcC<$_>f#~> +JcDYJ!+,@!![+$1JcEjl#4$%-!!".HJcC<$_>f#~> +JcDYJ!+,@!![+$1JcEjl#4$%-!!".HJcC<$_>f#~> +JcDYJ!)!"d!Zd[(JcEjl#Pa2g!!!4Lon!-os1nYb~> +JcDYJ!)!"d!Zd[(JcEjl#Pa2g!!!4Lon!-os1nYb~> +JcDYJ!)!"d!Zd[(JcEjl#Pa2g!!!4Lon!-os1nYb~> +JcDYJ!&jZR!ZI9tJcEgk!NRIE!!,I=JcC<$^Ai]~> +JcDYJ!&jZR!ZI9tJcEgk!NRIE!!,I=JcC<$^Ai]~> +JcDYJ!&jZR!ZI9tJcEgk!NRIE!!,I=JcC<$^Ai]~> +JcGBB)>.\N'HADN2*OK)='oTZG^t[:U9;,Le`-#Brr=5?!!3ssp4<7brrL8)rVus:VLebus1JA^~> +JcGBB)>.\N'HADN2*OK)='oTZG^t[:U9;,Le`-#Brr=5?!!3ssp4<7brrL8)rVus:VLebus1JA^~> +JcGBB)>.\N'HADN2*OK)='oTZG^t[:U9;,Le`-#Brr=5?!!3ssp4<7brrL8)rVus:VLebus1JA^~> +JcGEC!R)tU!!`l^8S<^N^t@6 +JcGEC!R)tU!!`l^8S<^N^t@6 +JcGEC!R)tU!!`l^8S<^N^t@6 +JcGKE!rR`UhZ*fn6Z]$Oqq_8Up](:+K^s]oaSu>=M?a%[!BJJWs+13\s*t~> +JcGKE!rR`UhZ*fn6Z]$Oqq_8Up](:+K^s]oaSu>=M?a%[!BJJWs+13\s*t~> +JcGKE!rR`UhZ*fn6Z]$Oqq_8Up](:+K^s]oaSu>=M?a%[!BJJWs+13\s*t~> +JcGNF!T-#l!!NWbAX17+ir9,A%tF)"s2Y-?XrmWC!Xk7kJcC<$\Gq'~> +JcGNF!T-#l!!NWbAX17+ir9,A%tF)"s2Y-?XrmWC!Xk7kJcC<$\Gq'~> +JcGNF!T-#l!!NWbAX17+ir9,A%tF)"s2Y-?XrmWC!Xk7kJcC<$\Gq'~> +JcGQG!ML"O!!NBM +JcGQG!ML"O!!NBM +JcGQG!ML"O!!NBM +JcGWI!UWq2!!EBWC8Kj>s0;S*p4!AI!!3Usrdk*#s0_lW~> +JcGWI!UWq2!!EBWC8Kj>s0;S*p4!AI!!3Usrdk*#s0_lW~> +JcGWI!UWq2!!EBWC8Kj>s0;S*p4!AI!!3Usrdk*#s0_lW~> +JcGZJ!PBDk!!F6AOj*]Rs0r"/Zm,GK!Cl!us+13Vs*t~> +JcGZJ!PBDk!!F6AOj*]Rs0r"/Zm,GK!Cl!us+13Vs*t~> +JcGZJ!PBDk!!F6AOj*]Rs0r"/Zm,GK!Cl!us+13Vs*t~> +JcG`L!r-a:^]4KG6@HB5JcEF`!T-]O!!3\#rdk*#s0DZT~> +JcG`L!r-a:^]4KG6@HB5JcEF`!T-]O!!3\#rdk*#s0DZT~> +JcG`L!r-a:^]4KG6@HB5JcEF`!T-]O!!3\#rdk*#s0DZT~> +JcGcM!R`R1!!=ou](^dU_uBf5KF7YX!D2:%s+13Ss*t~> +JcGcM!R`R1!!=ou](^dU_uBf5KF7YX!D2:%s+13Ss*t~> +JcGcM!R`R1!!=ou](^dU_uBf5KF7YX!D2:%s+13Ss*t~> +Jc>fMN"IQJcDnQJ,~> +Jc>fMN"IQJcDnQJ,~> +Jc>fMN"IQJcDnQJ,~> +K)Yl36a$Il'j.$cJcF!p!r$j?r;ZjljFR>^s/l +K)Yl36a$Il'j.$cJcF!p!r$j?r;ZjljFR>^s/l +K)Yl36a$Il'j.$cJcF!p!r$j?r;ZjljFR>^s/l +KDttO&ukp6-YosUJcF0u!Qchi!!*_,JcC<$X8d\~> +KDttO&ukp6-YosUJcF0u!Qchi!!*_,JcC<$X8d\~> +KDttO&ukp6-YosUJcF0u!Qchi!!*_,JcC<$X8d\~> +L&V2D?DRW("@%n&JcF@%!r.!Cr;Zjok(3P`s/Q*L~> +L&V2D?DRW("@%n&JcF@%!r.!Cr;Zjok(3P`s/Q*L~> +L&V2D?DRW("@%n&JcF@%!r.!Cr;Zjok(3P`s/Q*L~> +LAq:k+J8]:.X8u3JcFO*!R!"l!!*b0JcC<$W;hA~> +LAq:k+J8]:.X8u3JcFO*!R!"l!!*b0JcC<$W;hA~> +LAq:k+J8]:.X8u3JcFO*!R!"l!!*b0JcC<$W;hA~> +#+Vg/c/.meO8f:XH39Z;!uGIOon!/%rrW"C"T8<$;s8f4JcDYJJ,~> +#+Vg/c/.meO8f:XH39Z;!uGIOon!/%rrW"C"T8<$;s8f4JcDYJJ,~> +#+Vg/c/.meO8f:XH39Z;!uGIOon!/%rrW"C"T8<$;s8f4JcDYJJ,~> +qZ%-.%j3Pk;.4HqP+o8"e)U%lrrM17QN.*o9q1VSbs+13Hs*t~> +qZ%-.%j3Pk;.4HqP+o8"e)U%lrrM17QN.*o9q1VSbs+13Hs*t~> +qZ%-.%j3Pk;.4HqP+o8"e)U%lrrM17QN.*o9q1VSbs+13Hs*t~> +lMq=o'dYq5?Zh:#[`mb,X8a%9m+TOhV3?R\GB%D0?Wg?%76WXb.O,u8X8i;&550X.l2Lh\I0KQL +!ESK:s+13Gs*t~> +lMq=o'dYq5?Zh:#[`mb,X8a%9m+TOhV3?R\GB%D0?Wg?%76WXb.O,u8X8i;&550X.l2Lh\I0KQL +!ESK:s+13Gs*t~> +lMq=o'dYq5?Zh:#[`mb,X8a%9m+TOhV3?R\GB%D0?Wg?%76WXb.O,u8X8i;&550X.l2Lh\I0KQL +!ESK:s+13Gs*t~> +h>doo,s+t9I$1GBeE["(rsA5OagRq)HV5Ra[K$=`fn'1frrLCur;Zj7XF^D&s.]OD~> +h>doo,s+t9I$1GBeE["(rsA5OagRq)HV5Ra[K$=`fn'1frrLCur;Zj7XF^D&s.]OD~> +h>doo,s+t9I$1GBeE["(rsA5OagRq)HV5Ra[K$=`fn'1frrLCur;Zj7XF^D&s.]OD~> +df9aX(+_dSDM4I_`S9pUrs&5FWI\2,$GHKA!HImcs6BUcqL8\I!!-9iJcC<$U&TW~> +df9aX(+_dSDM4I_`S9pUrs&5FWI\2,$GHKA!HImcs6BUcqL8\I!!-9iJcC<$U&TW~> +df9aX(+_dSDM4I_`S9pUrs&5FWI\2,$GHKA!HImcs6BUcqL8\I!!-9iJcC<$U&TW~> +`rHGK*]-JsH^:q\kPh=X#6*MhO(UWh`;foS[XnJCrrLJ#r;Zj9Y^uh*s.B=A~> +`rHGK*]-JsH^:q\kPh=X#6*MhO(UWh`;foS[XnJCrrLJ#r;Zj9Y^uh*s.B=A~> +`rHGK*]-JsH^:q\kPh=X#6*MhO(UWh`;foS[XnJCrrLJ#r;Zj9Y^uh*s.B=A~> +]`8?B*][2 +]`8?B*][2 +]`8?B*][2 +ZiCF6'.ujeJ"!dlli+$d"oHW7AM427!!3=\rIP"6rrLP'r;Zj;Z[r.-s.'+>~> +ZiCF6'.ujeJ"!dlli+$d"oHW7AM427!!3=\rIP"6rrLP'r;Zj;Z[r.-s.'+>~> +ZiCF6'.ujeJ"!dlli+$d"oHW7AM427!!3=\rIP"6rrLP'r;Zj;Z[r.-s.'+>~> +WW3>2,!B%LNiC"Uq6Br'ou)kn,QZNt!@,^;s6BUcqh,1P!!-KrJcC<$S,\!~> +WW3>2,!B%LNiC"Uq6Br'ou)kn,QZNt!@,^;s6BUcqh,1P!!-KrJcC<$S,\!~> +WW3>2,!B%LNiC"Uq6Br'ou)kn,QZNt!@,^;s6BUcqh,1P!!-KrJcC<$S,\!~> +TE#354&9dUYKu[Err_>N:^l+Z!F,)Fs6BUbe27+(!?JV"s+13 +TE#354&9dUYKu[Err_>N:^l+Z!F,)Fs6BUbe27+(!?JV"s+13 +TE#354&9dUYKu[Err_>N:^l+Z!F,)Fs6BUbe27+(!?JV"s+13 +QiI@%02HMIY0QIGrr`&-E$aHC!=b`Rs6BUcqh>@T!!313n:CUjs-Wh:~> +QiI@%02HMIY0QIGrr`&-E$aHC!=b`Rs6BUcqh>@T!!313n:CUjs-Wh:~> +QiI@%02HMIY0QIGrr`&-E$aHC!=b`Rs6BUcqh>@T!!313n:CUjs-Wh:~> +O8oLr02HJGY0QIKrr^u:70hrT!AiG\s6BUbeMd@+!?\k's+139s*t~> +O8oLr02HJGY0QIKrr^u:70hrT!AiG\s6BUbeMd@+!?\k's+139s*t~> +O8oLr02HJGY0QIKrr^u:70hrT!AiG\s6BUbeMd@+!?\k's+139s*t~> +L]@Yi/l$;EY0H@Nrr_ksAfU+:!WdB +L]@Yi/l$;EY0H@Nrr_ksAfU+:!WdB +L]@Yi/l$;EY0H@Nrr_ksAfU+:!WdB ++htk1`5K?tYGn7dQ&^ZOHZX+;?s-E%7R&jf.jZ5Q&IJW7!!`la:2Pumb5B9Z!lK*mmf3A)\:O\F +rrL_2r;ZjA]Rg*6s-*J5~> ++htk1`5K?tYGn7dQ&^ZOHZX+;?s-E%7R&jf.jZ5Q&IJW7!!`la:2Pumb5B9Z!lK*mmf3A)\:O\F +rrL_2r;ZjA]Rg*6s-*J5~> ++htk1`5K?tYGn7dQ&^ZOHZX+;?s-E%7R&jf.jZ5Q&IJW7!!`la:2Pumb5B9Z!lK*mmf3A)\:O\F +rrL_2r;ZjA]Rg*6s-*J5~> +hu=Gjp$_,'gXOH]YbI>8GA15S4te&m"L%k1(->lUVp"PPrr`/(;?l^m!Cu@)s6K[dr/1j[!!31: +o7?pms-!D4~> +hu=Gjp$_,'gXOH]YbI>8GA15S4te&m"L%k1(->lUVp"PPrr`/(;?l^m!Cu@)s6K[dr/1j[!!31: +o7?pms-!D4~> +hu=Gjp$_,'gXOH]YbI>8GA15S4te&m"L%k1(->lUVp"PPrr`/(;?l^m!Cu@)s6K[dr/1j[!!31: +o7?pms-!D4~> +ao;tGkLn"jY+Uo0F_4`J4"VNd"1nO;'ffQNV985PrrVSM0)#>I#)iJ3s6K[cfK/s2!@,@1s+133 +s*t~> +ao;tGkLn"jY+Uo0F_4`J4"VNd"1nO;'ffQNV985PrrVSM0)#>I#)iJ3s6K[cfK/s2!@,@1s+133 +s*t~> +ao;tGkLn"jY+Uo0F_4`J4"VNd"1nO;'ffQNV985PrrVSM0)#>I#)iJ3s6K[cfK/s2!@,@1s+133 +s*t~> +\,Qm.jjqM_V3$"7:HBa3_#OZQ2d:g.aR%CU!l@_7qZ$XBbCT]ZrrW.Y$2so+!cIX]s+132s*t~> +\,Qm.jjqM_V3$"7:HBa3_#OZQ2d:g.aR%CU!l@_7qZ$XBbCT]ZrrW.Y$2so+!cIX]s+132s*t~> +\,Qm.jjqM_V3$"7:HBa3_#OZQ2d:g.aR%CU!l@_7qZ$XBbCT]ZrrW.Y$2so+!cIX]s+132s*t~> +WrEJ%j3>*.NHeo,2^/[M!!X#n>(33cle)4=g1^on!!-BrJcG'9!STX6!!+C_JcC<$NW4M~> +WrEJ%j3>*.NHeo,2^/[M!!X#n>(33cle)4=g1^on!!-BrJcG'9!STX6!!+C_JcC<$NW4M~> +WrEJ%j3>*.NHeo,2^/[M!!X#n>(33cle)4=g1^on!!-BrJcG'9!STX6!!+C_JcC<$NW4M~> +T)T2li6/O$MKN +T)T2li6/O$MKN +T)T2li6/O$MKN +P5bj[hT3$kK4dh1'@$R^&3+'SZ.]#*s3(ECgHGK8!@Pj;s+13-s*t~> +P5bj[hT3$kK4dh1'@$R^&3+'SZ.]#*s3(ECgHGK8!@Pj;s+13-s*t~> +P5bj[hT3$kK4dh1'@$R^&3+'SZ.]#*s3(ECgHGK8!@Pj;s+13-s*t~> +M#ReSftF)5Bh^8q!R^rP"tEMtUW`4Zs3puLrK7Qf!!37FpOW?qs,$c+~> +M#ReSftF)5Bh^8q!R^rP"tEMtUW`4Zs3puLrK7Qf!!37FpOW?qs,$c+~> +M#ReSftF)5Bh^8q!R^rP"tEMtUW`4Zs3puLrK7Qf!!37FpOW?qs,$c+~> +JcGcM$23,gUPESZ1)9o@!!WHD6uA4&jamHcrrLq?r;ZjJaFXABs+gW)~> +JcGcM$23,gUPESZ1)9o@!!WHD6uA4&jamHcrrLq?r;ZjJaFXABs+gW)~> +JcGcM$23,gUPESZ1)9o@!!WHD6uA4&jamHcrrLq?r;ZjJaFXABs+gW)~> +JcGHD$2E>mUkih`1`-;G!!Wrl?\bi:qLS\,rrW1a%/p5."F9cns+13)s*t~> +JcGHD$2E>mUkih`1`-;G!!Wrl?\bi:qLS\,rrW1a%/p5."F9cns+13)s*t~> +JcGHD$2E>mUkih`1`-;G!!Wrl?\bi:qLS\,rrW1a%/p5."F9cns+13)s*t~> +JcG-;#lNPrVM]Fd-3Mp$"pHDOH(i@MJcG$8!T$-@!!+.dJcC<$K`?Q~> +JcG-;#lNPrVM]Fd-3Mp$"pHDOH(i@MJcG$8!T$-@!!+.dJcC<$K`?Q~> +JcG-;#lNPrVM]Fd-3Mp$"pHDOH(i@MJcG$8!T$-@!!+.dJcC<$K`?Q~> +JcFj3#Q3MoS9\0n'%m6g)FA5'\`\PDo)AdjQONin!WmE:JcC<$KE$H~> +JcFj3#Q3MoS9\0n'%m6g)FA5'\`\PDo)AdjQONin!WmE:JcC<$KE$H~> +JcFj3#Q3MoS9\0n'%m6g)FA5'\`\PDo)AdjQONin!WmE:JcC<$KE$H~> +JcFR+#Ofm:Lh/ps"5UKR7/[)d,/Jj1JcC<$J,~> +JcFR+#Ofm:Lh/ps"5UKR7/[)d,/Jj1JcC<$J,~> +JcFR+#Ofm:Lh/ps"5UKR7/[)d,/Jj1JcC<$J,~> +JcF=$#Q!2bQ?5tW%GUpe)b4q?b4L8b!reSsrW!!#B(LTRJcC<$!<7Q~> +JcF=$#Q!2bQ?5tW%GUpe)b4q?b4L8b!reSsrW!!#B(LTRJcC<$!<7Q~> +JcF=$#Q!2bQ?5tW%GUpe)b4q?b4L8b!reSsrW!!#B(LTRJcC<$!<7Q~> +JcF$q#O0:)Jm^_\!T*k]![:BcVU>3qrrM(Jr;Zj;[t4R1s+14Ls*t~> +JcF$q#O0:)Jm^_\!T*k]![:BcVU>3qrrM(Jr;Zj;[t4R1s+14Ls*t~> +JcF$q#O0:)Jm^_\!T*k]![:BcVU>3qrrM(Jr;Zj;[t4R1s+14Ls*t~> +JcEdj#5ZlVOE*c0hZ*ia.TV,&g&-s3!reZ!r;Zk%mXbChs+14Ks*t~> +JcEdj#5ZlVOE*c0hZ*ia.TV,&g&-s3!reZ!r;Zk%mXbChs+14Ks*t~> +JcEdj#5ZlVOE*c0hZ*ia.TV,&g&-s3!reZ!r;Zk%mXbChs+14Ks*t~> +JcEOc#4fs4HW)F!huErf0jTXDi;T)C!TZEB!!*e7JcC<$JcGWIJ,~> +JcEOc#4fs4HW)F!huErf0jTXDi;T)C!TZEB!!*e7JcC<$JcGWIJ,~> +JcEOc#4fs4HW)F!huErf0jTXDi;T)C!TZEB!!*e7JcC<$JcGWIJ,~> +JcE=]#5d)YM.&CVhuEoj3G";bkah_SU(I8'!D_j0s+13$s8)bG~> +JcE=]#5d)YM.&CVhuEoj3G";bkah_SU(I8'!D_j0s+13$s8)bG~> +JcE=]#5d)YM.&CVhuEoj3G";bkah_SU(I8'!D_j0s+13$s8)bG~> +JcE(V#3WafDatlMi;a#s7 +JcE(V#3WafDatlMi;a#s7 +JcE(V#3WafDatlMi;a#s7 +JcDkP#5$0:I8qj)iW',e0jp'VmAp6fY87':!CPgss+13$s7cPD~> +JcDkP#5$0:I8qj)iW',e0jp'VmAp6fY87':!CPgss+13$s7cPD~> +JcDkP#5$0:I8qj)iW',e0jp'VmAp6fY87':!CPgss+13$s7cPD~> +JcDYJ#5m5^Mdng^iW'-&9REemrNlM)mp>qm!Xb.jJcC<$JcGHDJ,~> +JcDYJ#5m5^Mdng^iW'-&9REemrNlM)mp>qm!Xb.jJcC<$JcGHDJ,~> +JcDYJ#5m5^Mdng^iW'-&9REemrNlM)mp>qm!Xb.jJcC<$JcGHDJ,~> +JcDDC"mWplCH`*c!!N`iAsL=*\c2]A*W5s=3SK&aJcC<$o`'F~> +JcDDC"mWplCH`*c!!N`iAsL=*\c2]A*W5s=3SK&aJcC<$o`'F~> +JcDDC"mWplCH`*c!!N`iAsL=*\c2]A*W5s=3SK&aJcC<$o`'F~> +JcD2="lcnE=Y'a;!!WHK;Lu(0rk\U9oP4L,!!3C\r.4m!s+14As*t~> +JcD2="lcnE=Y'a;!!WHK;Lu(0rk\U9oP4L,!!3C\r.4m!s+14As*t~> +JcD2="lcnE=Y'a;!!WHK;Lu(0rk\U9oP4L,!!3C\r.4m!s+14As*t~> +JcD#8"o-H=F[mA1!!NotD4JfCa8Z1Z-2dfE0[YIOJcC<$nc++~> +JcD#8"o-H=F[mA1!!NotD4JfCa8Z1Z-2dfE0[YIOJcC<$nc++~> +JcD#8"o-H=F[mA1!!NotD4JfCa8Z1Z-2dfE0[YIOJcC<$nc++~> +JcCf2"m`mb@l=\T!!NER=bs?XcMmt@GQ[pF!X*lGJcC<$JcG6>J,~> +JcCf2"m`mb@l=\T!!NER=bs?XcMmt@GQ[pF!X*lGJcC<$JcG6>J,~> +JcCf2"m`mb@l=\T!!NER=bs?XcMmt@GQ[pF!X*lGJcC<$JcG6>J,~> +JcCW-#6!8WIo.Hmj8]<%9n0G-eGfQq0)YbN-cgl=JcC<$mf.e~> +JcCW-#6!8WIo.Hmj8]<%9n0G-eGfQq0)YbN-cgl=JcC<$mf.e~> +JcCW-#6!8WIo.Hmj8]<%9n0G-eGfQq0)YbN-cgl=JcC<$mf.e~> +JcCE'"nTg(D*JZo!!O*-H)f[!h#@HQKa.MV!Wm<6JcC<$JcG-;J,~> +JcCE'"nTg(D*JZo!!O*-H)f[!h#@HQKa.MV!Wm<6JcC<$JcG-;J,~> +JcCE'"nTg(D*JZo!!O*-H)f[!h#@HQKa.MV!Wm<6JcC<$JcG-;J,~> +JcC<$rr3/^[YS->#3>gg&4(?4f)4P-!SBC1!!+4VJcC<$JcG'9J,~> +JcC<$rr3/^[YS->#3>gg&4(?4f)4P-!SBC1!!+4VJcC<$JcG'9J,~> +JcC<$rr3/^[YS->#3>gg&4(?4f)4P-!SBC1!!+4VJcC<$JcG'9J,~> +JcC<$q>UWobaN3&#iu$i$Ti0rd/*#,!re>ir;Zk.nU^^ks+148s*t~> +JcC<$q>UWobaN3&#iu$i$Ti0rd/*#,!re>ir;Zk.nU^^ks+148s*t~> +JcC<$q>UWobaN3&#iu$i$Ti0rd/*#,!re>ir;Zk.nU^^ks+148s*t~> +JcC<$o`#*kc^ei2$KV6k#W-.\b4kB)!T?BD!!*tDJcC<$JcFs6J,~> +JcC<$o`#*kc^ei2$KV6k#W-.\b4kB)!T?BD!!*tDJcC<$JcFs6J,~> +JcC<$o`#*kc^ei2$KV6k#W-.\b4kB)!T?BD!!*tDJcC<$JcFs6J,~> +JcC<$n,ERgd\(J>%-7Hm"YO2G_t3R$!M0i#!!-0fJcC<$JcFp5J,~> +JcC<$n,ERgd\(J>%-7Hm"YO2G_t3R$!M0i#!!-0fJcC<$JcFp5J,~> +JcC<$n,ERgd\(J>%-7Hm"YO2G_t3R$!M0i#!!-0fJcC<$JcFp5J,~> +JcC<$lMh%ceY@+J%cmZo![q61^ARp/!U*;W!!*b3JcC<$JcFj3J,~> +JcC<$lMh%ceY@+J%cmZo![q61^ARp/!U*;W!!*b3JcC<$JcFj3J,~> +JcC<$lMh%ceY@+J%cmZo![q61^ARp/!U*;W!!*b3JcC<$JcFj3J,~> +JcC<$jo5M_fqrjW&ENlr![q?;a/0RL!!,aTJcC<$JcFg2J,~> +JcC<$jo5M_fqrjW&ENlr![q?;a/0RL!!,aTJcC<$JcFg2J,~> +JcC<$jo5M_fqrjW&ENlr![q?;a/0RL!!,aTJcC<$JcFg2J,~> +JcC<$i;Wu[go5Kc'B&ol$^lSGJcC<$ir=N~> +JcC<$i;Wu[go5Kc'B&ol$^lSGJcC<$ir=N~> +JcC<$i;Wu[go5Kc'B&ol$^lSGJcC<$ir=N~> +JcC<$g]%HVhlM,o($,Du$pJa2h1>TWs+144s*t~> +JcC<$g]%HVhlM,o($,Du$pJa2h1>TWs+144s*t~> +JcC<$g]%HVhlM,o($,Du$pJa2h1>TWs+144s*t~> +JcC<$ec,d3YBW>>jT#Dt8Ue#0JcC<$JcG'9J,~> +JcC<$ec,d3YBW>>jT#Dt8Ue#0JcC<$JcG'9J,~> +JcC<$ec,d3YBW>>jT#Dt8Ue#0JcC<$JcG'9J,~> +JcC<$dJjCJd[Of#"6BLc+&n*2nU^^ks+14>s*t~> +JcC<$dJjCJd[Of#"6BLc+&n*2nU^^ks+14>s*t~> +JcC<$dJjCJd[Of#"6BLc+&n*2nU^^ks+14>s*t~> +JcC<$bl7h;^PG`*jT#Gc.USF^pjrHrs+14Cs*t~> +JcC<$bl7h;^PG`*jT#Gc.USF^pjrHrs+14Cs*t~> +JcC<$bl7h;^PG`*jT#Gc.USF^pjrHrs+14Cs*t~> +JcC<$a8Z1K*T@&&"uU.feGXsuJcC<$qYu'~> +JcC<$a8Z1K*T@&&"uU.feGXsuJcC<$qYu'~> +JcC<$a8Z1K*T@&&"uU.feGXsuJcC<$qYu'~> +JcC<$ao;G>JHc#Q"Tr1t@4D??!!E`rFfO>Ms+13$s8N%K~> +JcC<$ao;G>JHc#Q"Tr1t@4D??!!E`rFfO>Ms+13$s8N%K~> +JcC<$ao;G>JHc#Q"Tr1t@4D??!!E`rFfO>Ms+13$s8N%K~> +JcC<$b5VLn2>mLU-,oi_"Rs'X:)Dsk";XX\[H`>CJcCB&J,~> +JcC<$b5VLn2>mLU-,oi_"Rs'X:)Dsk";XX\[H`>CJcCB&J,~> +JcC<$b5VLn2>mLU-,oi_"Rs'X:)Dsk";XX\[H`>CJcCB&J,~> +JcC<$bl7bCNX>[b!Wd*/p\tBRW,Xj)j8]<+ +JcC<$bl7bCNX>[b!Wd*/p\tBRW,Xj)j8]<+ +JcC<$bl7bCNX>[b!Wd*/p\tBRW,Xj)j8]<+ +JcC<$c2Rh%5Q(Q_*P:kA"o?H.?7,d8!!NHU@@#+4JcC<$NW4M~> +JcC<$c2Rh%5Q(Q_*P:kA"o?H.?7,d8!!NHU@@#+4JcC<$NW4M~> +JcC<$c2Rh%5Q(Q_*P:kA"o?H.?7,d8!!NHU@@#+4JcC<$NW4M~> +JcC<$cMmp7%K-8-?h!C]"T5lZ5mcTP"U?u&U"90ns+135s*t~> +JcC<$cMmp7%K-8-?h!C]"T5lZ5mcTP"U?u&U"90ns+135s*t~> +JcC<$cMmp7%K-8-?h!C]"T5lZ5mcTP"U?u&U"90ns+135s*t~> +JcC<$d/O./9Dnhk(U3$$"T$9%<#O]r":dbBXPna1JcD&9J,~> +JcC<$d/O./9Dnhk(U3$$"T$9%<#O]r":dbBXPna1JcD&9J,~> +JcC<$d/O./9Dnhk(U3$$"T$9%<#O]r":dbBXPna1JcD&9J,~> +JcC<$dJj6G'E%n35O75,"Poeb/-=i3";jjb\*S\GJcD5>J,~> +JcC<$dJj6G'E%n35O75,"Poeb/-=i3";jjb\*S\GJcD5>J,~> +JcC<$dJj6G'E%n35O75,"Poeb/-=i3";jjb\*S\GJcD5>J,~> +JcC<$e,KI8=8`+"%@u2P"RidG5RQNO"T]iMNPb==s+13Cs*t~> +JcC<$e,KI8=8`+"%@u2P"RidG5RQNO"T]iMNPb==s+13Cs*t~> +JcC<$e,KI8=8`+"%@u2P"RidG5RQNO"T]iMNPb==s+13Cs*t~> +JcC<$eGfQV)>sO945JEd"T$6#;]+Ko"9^JqUYLG#JcDPGJ,~> +JcC<$eGfQV)>sO945JEd"T$6#;]+Ko"9^JqUYLG#JcDPGJ,~> +JcC<$eGfQV)>sO945JEd"T$6#;]+Ko"9^JqUYLG#JcDPGJ,~> +JcC<$f)GdAAGlK0"blm"rrh,NAh*rB!!F'4L;3A3s+13Ls*t~> +JcC<$f)GdAAGlK0"blm"rrh,NAh*rB!!F'4L;3A3s+13Ls*t~> +JcC<$f)GdAAGlK0"blm"rrh,NAh*rB!!F'4L;3A3s+13Ls*t~> +JcC<$fDble+oMBA.Eom5"R`XB4pg3K"U$PoU>#Tts+13Qs*t~> +JcC<$fDble+oMBA.Eom5"R`XB4pg3K"U$PoU>#Tts+13Qs*t~> +JcC<$fDble+oMBA.Eom5"R`XB4pg3K"U$PoU>#Tts+13Qs*t~> +JcC<$g&D-IE!Wd03_uBl8a,Ek3i;`uq9SL4PJcC<$ZN#F~> +JcC<$g&D-IE!Wd03_uBl8a,Ek3i;`uq9SL4PJcC<$ZN#F~> +JcC<$g&D-IE!Wd03_uBl8a,Ek3i;`uq9SL4PJcC<$ZN#F~> +JcC<$gA_2r.K'5I)S!H["5BJV-fG%/"#+D^g&?R&JcE4ZJ,~> +JcC<$gA_2r.K'5I)S!H["5BJV-fG%/"#+D^g&?R&JcE4ZJ,~> +JcC<$gA_2r.K'5I)S!H["5BJV-fG%/"#+D^g&?R&JcE4ZJ,~> +JcC<$h#@HQJ->fN!EAEprrhMaC+B>D!!Es.KY6l,s+13^s*t~> +JcC<$h#@HQJ->fN!EAEprrhMaC+B>D!!Es.KY6l,s+13^s*t~> +JcC<$h#@HQJ->fN!EAEprrhMaC+B>D!!Es.KY6l,s+13^s*t~> +JcC<$h>[N/2Z3UV&#$9."RE1.0EU25"TpAiT@j-os+13cs*t~> +JcC<$h>[N/2Z3UV&#$9."RE1.0EU25"TpAiT@j-os+13cs*t~> +JcC<$h>[N/2Z3UV&#$9."RE1.0EU25"TpAiT@j-os+13cs*t~> +JcC<$hu +JcC<$hu +JcC<$hu +JcC<$i;Wi?8c8Vj#)W;Vrrhl#GW>rc!!NEUAY.NQJcC<$ao?k~> +JcC<$i;Wi?8c8Vj#)W;Vrrhl#GW>rc!!NEUAY.NQJcC<$ao?k~> +JcC<$i;Wi?8c8Vj#)W;Vrrhl#GW>rc!!NEUAY.NQJcC<$ao?k~> +JcC<$iVrq['`A"4/C:*j"SB +JcC<$iVrq['`A"4/C:*j"SB +JcC<$iVrq['`A"4/C:*j"SB +JcC<$j8T/L?Msj*!cdt)rri)2JO0_$!!NETA=_9LJcC<$df4g~> +JcC<$j8T/L?Msj*!cdt)rri)2JO0_$!!NETA=_9LJcC<$df4g~> +JcC<$j8T/L?Msj*!cdt)rri)2JO0_$!!NETA=_9LJcC<$df4g~> +JcC<$jSo7r+8l0?*5%U;"Soui7h"5S";"(R\F5"KJcF=$J,~> +JcC<$jSo7r+8l0?*5%U;"Soui7h"5S";"(R\F5"KJcF=$J,~> +JcC<$jSo7r+8l0?*5%U;"Soui7h"5S";"(R\F5"KJcF=$J,~> +JcC<$k5PMXF9;C@!EniQrri5?MG"K:!!NERA"2!HJcC<$g])d~> +JcC<$k5PMXF9;C@!EniQrri5?MG"K:!!NERA"2!HJcC<$g])d~> +JcC<$k5PMXF9;C@!EniQrri5?MG"K:!!NERA"2!HJcC<$g])d~> +JcC<$kPkS10)YbN&>kBc"T?T*?3]3c":mtO\*ehIJcFX-J,~> +JcC<$kPkS10)YbN&>kBc"T?T*?3]3c":mtO\*ehIJcFX-J,~> +JcC<$kPkS10)YbN&>kBc"T?T*?3]3c":mtO\*ehIJcFX-J,~> +JcC<$l2Lh`M?j([!CGe#rri8ALdha-!!NBP@[bdEJcC<$jSs`~> +JcC<$l2Lh`M?j([!CGe#rri8ALdha-!!NBP@[bdEJcC<$jSs`~> +JcC<$l2Lh`M?j([!CGe#rri8ALdha-!!NBP@[bdEJcC<$jSs`~> +JcC<$lMgnC5Q(Q`#`\e6rri/6Im""k!!E^!ICAQps+146s*t~> +JcC<$lMgnC5Q(Q`#`\e6rri/6Im""k!!E^!ICAQps+146s*t~> +JcC<$lMgnC5Q(Q`#`\e6rri/6Im""k!!E^!ICAQps+146s*t~> +JcC<$li.!Y&,cJ/0@PLPqu6fk\9Be4g].KY.V57*rdk*#s6]i:~> +JcC<$li.!Y&,cJ/0@PLPqu6fk\9Be4g].KY.V57*rdk*#s6]i:~> +JcC<$li.!Y&,cJ/0@PLPqu6fk\9Be4g].KY.V57*rdk*#s6]i:~> +JcC<$mJd4Q;uH[t!d49hs7ZHqn$$[\!S[SW'i0\(pOW?qs7-,>~> +JcC<$mJd4Q;uH[t!d49hs7ZHqn$$[\!S[SW'i0\(pOW?qs7-,>~> +JcC<$mJd4Q;uH[t!d49hs7ZHqn$$[\!S[SW'i0\(pOW?qs7-,>~> +JcC<$mf*sO9+2EI-nG`USVe.4.!!ENeF04VVs+14Cs*t~> +JcC<$mf*sO9+2EI-nG`USVe.4.!!ENeF04VVs+14Cs*t~> +JcC<$mf*sO9+2EI-nG`USVe.4.!!ENeF04VVs+14Cs*t~> +JcC<$nG`R^B`\/4!F>2Gs6K[eiLaBpf`2."?'s(=JcC<$qYu'~> +JcC<$nG`R^B`\/4!F>2Gs6K[eiLaBpf`2."?'s(=JcC<$qYu'~> +JcC<$nG`R^B`\/4!F>2Gs6K[eiLaBpf`2."?'s(=JcC<$qYu'~> +JcC<$nc&X2-N*oF&upN_jo5G8Q;eRO!!Eg&K"U]+s+14Ls*t~> +JcC<$nc&X2-N*oF&upN_jo5G8Q;eRO!!Eg&K"U]+s+14Ls*t~> +JcC<$nc&X2-N*oF&upN_jo5G8Q;eRO!!Eg&K"U]+s+14Ls*t~> +JcC<$oD\mhIg#]M!Cl.$s5Et\rQpQu%bUgb">XejiIV#\s*t~> +JcC<$oD\mhIg#]M!Cl.$s5Et\rQpQu%bUgb">XejiIV#\s*t~> +JcC<$oD\mhIg#]M!Cl.$s5Et\rQpQu%bUgb">XejiIV#\s*t~> +JcC<$o`"sE2Z3UW$'G4 +JcC<$o`"sE2Z3UW$'G4 +JcC<$o`"sE2Z3UW$'G4 +JcC<$pAY3nPm[Hi!A`2Vs472Qp:55r!S@AT$UB'HmXbCrs*t~> +JcC<$pAY3nPm[Hi!A`2Vs472Qp:55r!S@AT$UB'HmXbCrs*t~> +JcC<$pAY3nPm[Hi!A`2Vs472Qp:55r!S@AT$UB'HmXbCrs*t~> +JcC<$p\t9U8GrMi"*s]ns3^iKk+Pupf)PsU.V57*rdk*2s*t~> +JcC<$p\t9U8GrMi"*s]ns3^iKk+Pupf)PsU.V57*rdk*2s*t~> +JcC<$p\t9U8GrMi"*s]ns3^iKk+Pupf)PsU.V57*rdk*2s*t~> +JcC<$q#:Aq'E%n3+iAm2bl7hFcA4dlec5gf:Pm!`JcCu7J,~> +JcC<$q#:Aq'E%n3+iAm2bl7hFcA4dlec5gf:Pm!`JcCu7J,~> +JcC<$q#:Aq'E%n3+iAm2bl7hFcA4dlec5gf:Pm!`JcCu7J,~> +JcC<$qYpTc?2O['@If!La8Z86[;RME!!ENeF0=_Xs-Wh:~> +JcC<$qYpTc?2O['@If!La8Z86[;RME!!ENeF0=_Xs-Wh:~> +JcC<$qYpTc?2O['@If!La8Z86[;RME!!ENeF0=_Xs-Wh:~> +JcC<$qu6]3+8l0?'X!#e_>aVsS5p +JcC<$qu6]3+8l0?'X!#e_>aVsS5p +JcC<$qu6]3+8l0?'X!#e_>aVsS5p +JcC<$rVlroEru:?!D2I*s1SF8r5jRS"k3MT&4hDco7?q8s*t~> +JcC<$rVlroEru:?!D2I*s1SF8r5jRS"k3MT&4hDco7?q8s*t~> +JcC<$rVlroEru:?!D2I*s1SF8r5jRS"k3MT&4hDco7?q8s*t~> +JcC<$rr3#G/c>YN$C:[Bs1&(2nZZaSdf9LR12NiHJcDSHJ,~> +JcC<$rr3#G/c>YN$C:[Bs1&(2nZZaSdf9LR12NiHJcDSHJ,~> +JcC<$rr3#G/c>YN$C:[Bs1&(2nZZaSdf9LR12NiHJcDSHJ,~> +JcC<$"98=V#Q4W'2;!K[ZMt$`Qr4LD!!F9BOj!TPs/Q*L~> +JcC<$"98=V#Q4W'2;!K[ZMt$`Qr4LD!!F9BOj!TPs/Q*L~> +JcC<$"98=V#Q4W'2;!K[ZMt$`Qr4LD!!F9BOj!TPs/Q*L~> +JcC<$!T-*>!!3:OqLS[Lrri5 +JcC<$!T-*>!!3:OqLS[Lrri5 +JcC<$!T-*>!!3:OqLS[Lrri5 +JcC?%!M9l#!!+@cJcD\K"7E7&+OC)j0Pml[JcE%UJ,~> +JcC?%!M9l#!!+@cJcD\K"7E7&+OC)j0Pml[JcE%UJ,~> +JcC?%!M9l#!!+@cJcD\K"7E7&+OC)j0Pml[JcE%UJ,~> +JcCE'!UEY]!!-U(JcDMF"5/l4%FG.Y!\eW"n:CVJs*t~> +JcCE'!UEY]!!-U(JcDMF"5/l4%FG.Y!\eW"n:CVJs*t~> +JcCE'!UEY]!!-U(JcDMF"5/l4%FG.Y!\eW"n:CVJs*t~> +JcCH(!OWdC!!*e;JcD>A"T#o[1]l&)"9UN)\+>1N])R9~> +JcCH(!OWdC!!*e;JcD>A"T#o[1]l&)"9UN)\+>1N])R9~> +JcCH(!OWdC!!*e;JcD>A"T#o[1]l&)"9UN)\+>1N])R9~> +JcCN*!q^.,r;Zjfk(3Q#rr_Sb@N<_p"9gi5^%R$W^Ai]~> +JcCN*!q^.,r;Zjfk(3Q#rr_Sb@N<_p"9gi5^%R$W^Ai]~> +JcCN*!q^.,r;Zjfk(3Q#rr_Sb@N<_p"9gi5^%R$W^Ai]~> +JcCQ+!QQMb!!3Ferdk*6rr^f48IEfE":%2C_YJc__Z,,~> +JcCQ+!QQMb!!3Ferdk*6rr^f48IEfE":%2C_YJc__Z,,~> +JcCQ+!QQMb!!3Ferdk*6rr^f48IEfE":%2C_YJc__Z,,~> +JcCW-!r@?Kr;ZjLd=M=Yrri,0Ft`sD!!EKpMTYpLs2P(h~> +JcCW-!r@?Kr;ZjLd=M=Yrri,0Ft`sD!!EKpMTYpLs2P(h~> +JcCW-!r@?Kr;ZjLd=M=Yrri,0Ft`sD!!EKpMTYpLs2P(h~> +JcCZ.!S94-!!31=pOW@%rr_J[>o:lf!tnS#gk#LIs*t~> +JcCZ.!S94-!!31=pOW@%rr_J[>o:lf!tnS#gk#LIs*t~> +JcCZ.!S94-!!31=pOW@%rr_J[>o:lf!tnS#gk#LIs*t~> +JcC`0!reDkr;Zj8[t4R5rri>JMF7`r!!=EWWpG<:c2W:~> +JcC`0!reDkr;Zj8[t4R5rri>JMF7`r!!=EWWpG<:c2W:~> +JcC`0!reDkr;Zj8[t4R5rri>JMF7`r!!=EWWpG<:c2W:~> +JcCc1!TciL!!,gZJcC<$"on8)E@V(:!!E?[H+j!(s3^js~> +JcCc1!TciL!!,gZJcC<$"on8)E@V(:!!E?[H+j!(s3^js~> +JcCc1!TciL!!,gZJcC<$"on8)E@V(:!!E?[H+j!(s3^js~> +JcCf2!NHe2!!3Lordk*#s82fujI]QicN"(T7uP^mJcF:#J,~> +JcCf2!NHe2!!3Lordk*#s82fujI]QicN"(T7uP^mJcF:#J,~> +JcCf2!NHe2!!3Lordk*#s82fujI]QicN"(T7uP^mJcF:#J,~> +JcCl4!Uj:k!!+k,JcC<$pAY6ob_.gu!!=!>S`55#f`-I~> +JcCl4!Uj:k!!+k,JcC<$pAY6ob_.gu!!=!>S`55#f`-I~> +JcCl4!Uj:k!!+k,JcC<$pAY6ob_.gu!!=!>S`55#f`-I~> +JcCo5!PTWR!!34Fq18Qss7-*kiK-5*c2[r)FN"-/s4mX)~> +JcCo5!PTWR!!34Fq18Qss7-*kiK-5*c2[r)FN"-/s4mX)~> +JcCo5!PTWR!!34Fq18Qss7-*kiK-5*c2[r)FN"-/s4mX)~> +JcCu7!r$^:r;Zj=^4H<8s6Tafl'b-Ic2[q_A[V;as53j,~> +JcCu7!r$^:r;Zj=^4H<8s6Tafl'b-Ic2[q_A[V;as53j,~> +JcCu7!r$^:r;Zj=^4H<8s6Tafl'b-Ic2[q_A[V;as53j,~> +JcD#8!RE=p!!-*fJcC<$kl1bRUJ_HE!!<[2VXT0:ir=N~> +JcD#8!RE=p!!-*fJcC<$kl1bRUJ_HE!!<[2VXT0:ir=N~> +JcD#8!RE=p!!-*fJcC<$kl1bRUJ_HE!!<[2VXT0:ir=N~> +JcD):!rRiYr;Zj-T7R#ns5X+]orVF0c2[qN8!rFis5j92~> +JcD):!rRiYr;Zj-T7R#ns5X+]orVF0c2[qN8!rFis5j92~> +JcD):!rRiYr;Zj-T7R#ns5X+]orVF0c2[qN8!rFis5j92~> +JcD,;!T$!;!!,(7JcC<$hu +JcD,;!T$!;!!,(7JcC<$hu +JcD,;!T$!;!!,(7JcC<$hu +JcD/ +JcD/ +JcD/ +JcD5>!U +JcD5>!U +JcD5>!U +JcD8?!ON^A!!-ErJcC<$df0FH\RH,p!!4-aeq*kks*t~> +JcD8?!ON^A!!-ErJcC<$df0FH\RH,p!!4-aeq*kks*t~> +JcD8?!ON^A!!-ErJcC<$df0FH\RH,p!!4-aeq*kks*t~> +JcD>A!qU")r;Zj0W.Fu"s3:QGpp!s1bl@f&PjEu$o`'F~> +JcD>A!qU")r;Zj0W.Fu"s3:QGpp!s1bl@f&PjEu$o`'F~> +JcD>A!qU")r;Zj0W.Fu"s3:QGpp!s1bl@f&PjEu$o`'F~> +JcDAB!QQJ`!!,=CJcC<$ao;J9WDNrH!! +JcDAB!QQJ`!!,=CJcC<$ao;J9WDNrH!! +JcDAB!QQJ`!!,=CJcC<$ao;J9WDNrH!! +JcDGD!r@9Ir;Zm&L])f(JcE^h"7`'V"jR)L$[h;ls7u\F~> +JcDGD!r@9Ir;Zm&L])f(JcE^h"7`'V"jR)L$[h;ls7u\F~> +JcDGD!r@9Ir;Zm&L])f(JcE^h"7`'V"jR)L$[h;ls7u\F~> +JcDJE!S91+!!+IjJcC<$_#FN'R6^r$!!<6gXo!\Lr;V9~> +JcDJE!S91+!!+IjJcC<$_#FN'R6^r$!!<6gXo!\Lr;V9~> +JcDJE!S91+!!+IjJcC<$_#FN'R6^r$!!<6gXo!\Lr;V9~> +JcDPG!re>hqu?b0oR[$ns1J@5ooU3=!!40pl%/m6s*t~> +JcDPG!re>hqu?b0oR[$ns1J@5ooU3=!!40pl%/m6s*t~> +JcDPG!re>hqu?b0oR[$ns1J@5ooU3=!!40pl%/m6s*t~> +JcDSH!TZ`J!!*e`MJ,~> +JcDSH!TZ`J!!*e`MJ,~> +JcDSH!TZ`J!!*e`MJ,~> +JcDVI!N6Y/!!,ROJcC<$[/U7%UHnq,!!+OWK)^?~> +JcDVI!N6Y/!!,ROJcC<$[/U7%UHnq,!!+OWK)^?~> +JcDVI!N6Y/!!,ROJcC<$[/U7%UHnq,!!+OWK)^?~> +JcD\K!Uj7j!!3Ferdk*#s02M)h0^3i!!,dSK)^?~> +JcD\K!Uj7j!!3Ferdk*#s02M)h0^3i!!,dSK)^?~> +JcD\K!Uj7j!!3Ferdk*#s02M)h0^3i!!,dSK)^?~> +JcD_L!PKNO!!+Y!JcC<$XT&D#Yse]E!!*b/Jc>`MJ,~> +JcD_L!PKNO!!+Y!JcC<$XT&D#Yse]E!!*b/Jc>`MJ,~> +JcD_L!PKNO!!+Y!JcC<$XT&D#Yse]E!!*b/Jc>`MJ,~> +JcDeN!r$[9r;Zm"DYJ_^JcD\K!nM,rf`2%Pk^id6s*t~> +JcDeN!r$[9r;Zm"DYJ_^JcD\K!nM,rf`2%Pk^id6s*t~> +JcDeN!r$[9r;Zm"DYJ_^JcD\K!nM,rf`2%Pk^id6s*t~> +JcDhO!RE:o!!*qGJcC<$V#LMdOXAla!>hefs8DtJ~> +JcDhO!RE:o!!*qGJcC<$V#LMdOXAla!>hefs8DtJ~> +JcDhO!RE:o!!*qGJcC<$V#LMdOXAla!>hefs8DtJ~> +JcDnQ!rRfXqu?aml@Jtds.TGprjPN%i;`m_m",37s*t~> +JcDnQ!rRfXqu?aml@Jtds.TGprjPN%i;`m_m",37s*t~> +JcDnQ!rRfXqu?aml@Jtds.TGprjPN%i;`m_m",37s*t~> +JcDqR!Som9!!*FnJcC<$SGrZF@Kkin!?8@rs8)bG~> +JcDqR!Som9!!*FnJcC<$SGrZF@Kkin!?8@rs8)bG~> +JcDqR!Som9!!*FnJcC<$SGrZF@Kkin!?8@rs8)bG~> +JcDtS!M'\t!!+k,JcC<$RK!?JD@5V.!Wcg"JcGQGJ,~> +JcDtS!M'\t!!+k,JcC<$RK!?JD@5V.!Wcg"JcGQGJ,~> +JcDtS!M'\t!!+k,JcC<$RK!?JD@5V.!Wcg"JcGQGJ,~> +JcE%U!U +JcE%U!U +JcE%U!U +JcE(V!O!!++SJcC<$P5bUQKbj.X!Wm--JcGHDJ,~> +JcE(V!O!!++SJcC<$P5bUQKbj.X!Wm--JcGHDJ,~> +JcE(V!O!!++SJcC<$P5bUQKbj.X!Wm--JcGHDJ,~> +JcE.X!V9n"!!--gJcC<$O8f:XLC<\R!@5I3s7H>A~> +JcE.X!V9n"!!--gJcC<$O8f:XLC<\R!@5I3s7H>A~> +JcE.X!V9n"!!--gJcC<$O8f:XLC<\R!@5I3s7H>A~> +JcE1Y!QHD_!!*P%JcC<$MuNkLILPrN!X!K9JcG?AJ,~> +JcE1Y!QHD_!!*P%JcC<$MuNkLILPrN!X!K9JcG?AJ,~> +JcE1Y!QHD_!!*P%JcC<$MuNkLILPrN!X!K9JcG?AJ,~> +JcE7[!r@6Gqu?aVm",1fs+p[Vk@k+r!!+OhJcG9?J,~> +JcE7[!r@6Gqu?aVm",1fs+p[Vk@k+r!!+OhJcG9?J,~> +JcE7[!r@6Gqu?aVm",1fs+p[Vk@k+r!!+OhJcG9?J,~> +JcE:\!S0()!!37Nqgncus+UISfi/"O!!3:LpjrJ7s*t~> +JcE:\!S0()!!37Nqgncus+UISfi/"O!!3:LpjrJ7s*t~> +JcE:\!S0()!!37Nqgncus+UISfi/"O!!3:LpjrJ7s*t~> +JcE@^!re;gqu?a>_L_` +JcE@^!re;gqu?a>_L_` +JcE@^!re;gqu?a>_L_` +JcEC_!TZ]H!!-0iJcC<$JcG`L!Nc6Ns6]i:~> +JcEC_!TZ]H!!-0iJcC<$JcG`L!Nc6Ns6]i:~> +JcEC_!TZ]H!!-0iJcC<$JcG`L!Nc6Ns6]i:~> +JcEF`!N-P-!!*P%JcC<$JcC<$k5Tr~> +JcEF`!N-P-!!*P%JcC<$JcC<$k5Tr~> +JcEF`!N-P-!!*P%JcC<$JcC<$k5Tr~> +JcELb!Ua.g!!,"4JcC<$JcC<$jo9i~> +JcELb!Ua.g!!,"4JcC<$JcC<$jo9i~> +JcELb!Ua.g!!,"4JcC<$JcC<$jo9i~> +JcEOc!PBHN!!37KqLSZts+13$s5a31~> +JcEOc!PBHN!!37KqLSZts+13$s5a31~> +JcEOc!PBHN!!37KqLSZts+13$s5a31~> +JcEUe!VpL-!!++UJcC<$JcC<$ir=N~> +JcEUe!VpL-!!++UJcC<$JcC<$ir=N~> +JcEUe!VpL-!!++UJcC<$JcC<$ir=N~> +JcEXf!R3+k!!-*fJcC<$JcC<$iW"E~> +JcEXf!R3+k!!-*fJcC<$JcC<$iW"E~> +JcEXf!R3+k!!-*fJcC<$JcC<$iW"E~> +JcE^h!rR`Vqu?a+SUpfls+13$s53j,~> +JcE^h!rR`Vqu?a+SUpfls+13$s53j,~> +JcE^h!rR`Vqu?a+SUpfls+13$s53j,~> +JcEai!Sfa5!!+q1JcC<$JcC<$hZ&*~> +JcEai!Sfa5!!+q1JcC<$JcC<$hZ&*~> +JcEai!Sfa5!!+q1JcC<$JcC<$hZ&*~> +JcEdj!LaGp!!34GqLSZts+13$s5!^*~> +JcEdj!LaGp!!34GqLSZts+13$s5!^*~> +JcEdj!LaGp!!34GqLSZts+13$s5!^*~> +JcEjl!U*5S!!+(RJcC<$JcC<$g])d~> +JcEjl!U*5S!!+(RJcC<$JcC<$g])d~> +JcEjl!U*5S!!+(RJcC<$JcC<$g])d~> +JcEmm!O!78!!-!bJcC<$JcC<$gAc[~> +JcEmm!O!78!!-!bJcC<$JcC<$gAc[~> +JcEmm!O!78!!-!bJcC<$JcC<$gAc[~> +JcEso!V'Uq!!*IrJcC<$JcC<$f`-I~> +JcEso!V'Uq!!*IrJcC<$JcC<$f`-I~> +JcEso!V'Uq!!*IrJcC<$JcC<$f`-I~> +JcF!p!PooU!!+k-JcC<$JcC<$fDg@~> +JcF!p!PooU!!+k-JcC<$JcC<$fDg@~> +JcF!p!PooU!!+k-JcC<$JcC<$fDg@~> +JcF'r!r-p?qu?d"FnpUgJcC<$JcF=$J,~> +JcF'r!r-p?qu?d"FnpUgJcC<$JcF=$J,~> +JcF'r!r-p?qu?d"FnpUgJcC<$JcF=$J,~> +JcF*s!R`Ut!!+"MJcC<$JcC<$eGk%~> +JcF*s!R`Ut!!+"MJcC<$JcC<$eGk%~> +JcF*s!R`Ut!!+"MJcC<$JcC<$eGk%~> +JcF0u!r\#^qu?d!=RgtBJcC<$JcF4!J,~> +JcF0u!r\#^qu?d!=RgtBJcC<$JcF4!J,~> +JcF0u!r\#^qu?d!=RgtBJcC<$JcF4!J,~> +JcF4!!T-->!!46nj+75]s+13$s3^js~> +JcF4!!T-->!!46nj+75]s+13$s3^js~> +JcF4!!T-->!!46nj+75]s+13$s3^js~> +JcF7"!MBr%!! +JcF7"!MBr%!! +JcF7"!MBr%!! +JcF=$!UEY_!!4I'k^ibbs+13$s31Ln~> +JcF=$!UEY_!!4I'k^ibbs+13$s31Ln~> +JcF=$!UEY_!!4I'k^ibbs+13$s31Ln~> +JcF@%#.,3I#[5"BJcC<$JcC<$b5Zt~> +JcF@%#.,3I#[5"BJcC<$JcC<$b5Zt~> +JcF@%#.,3I#[5"BJcC<$JcC<$b5Zt~> +JcFF'"nZF./ +JcFF'"nZF./ +JcFF'"nZF./ +JcFI("3*!&`e"/@s+13$s2=qf~> +JcFI("3*!&`e"/@s+13$s2=qf~> +JcFI("3*!&`e"/@s+13$s2=qf~> +JcFO*"8]3jnU^^ks+13$s2+ed~> +JcFO*"8]3jnU^^ks+13$s2+ed~> +JcFO*"8]3jnU^^ks+13$s2+ed~> +JcFO*!;M-FJcC<$JcELbJ,~> +JcFO*!;M-FJcC<$JcELbJ,~> +JcFO*!;M-FJcC<$JcELbJ,~> +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +JcC<$JcC<$JcD/ +%%EndData +showpage +%%Trailer +end +%%EOF diff --git a/doc/high_level_doc/unilogo.eps b/doc/high_level_doc/unilogo.eps new file mode 100644 index 0000000..3ee5b13 --- /dev/null +++ b/doc/high_level_doc/unilogo.eps @@ -0,0 +1,2 @@ +%!PS-Adobe-3.0 EPSF-3.0 %%Creator: Adobe Illustrator(TM) 5.5 %%For: (Presse- und Informationsstelle) (Universit\212t Osnabr\237ck) %%Title: (M_rot.eps) %%CreationDate: (18.09.1997) (12:43 Uhr) %%BoundingBox: 112 675 504 778 +%%HiResBoundingBox: 112.8625 675.7199 502.6375 776.656 %%DocumentProcessColors: Black %%DocumentSuppliedResources: procset Adobe_level2_AI5 1.0 0 %%+ procset Adobe_IllustratorA_AI5 1.0 0 %AI5_FileFormat 1.2 %AI3_ColorUsage: Color %%DocumentCustomColors: (Uni-Rot) %%CMYKCustomColor: 0.1 1 0.65 0.25 (Uni-Rot) %AI3_TemplateBox: 306 396 306 396 %AI3_TileBox: 37 6 575 787 %AI3_DocumentPreview: PC_TIFF %AI5_ArtSize: 595 842 %AI5_RulerUnits: 1 %AI5_ArtFlags: 1 0 0 1 0 0 1 1 0 %AI5_TargetResolution: 800 %AI5_NumLayers: 1 %AI5_OpenToView: 2 924 1.5 976 583 18 0 1 2 40 %AI5_OpenViewLayers: 7 %%EndComments %%BeginProlog %%BeginResource: procset Adobe_level2_AI5 1.0 0 %%Title: (Adobe Illustrator (R) Version 5.0 Level 2 Emulation) %%Version: 1.0 %%CreationDate: (04/10/93) () %%Copyright: ((C) 1987-1993 Adobe Systems Incorporated All Rights Reserved) userdict /Adobe_level2_AI5 21 dict dup begin put /packedarray where not { userdict begin /packedarray { array astore readonly } bind def /setpacking /pop load def /currentpacking false def end 0 } if pop userdict /defaultpacking currentpacking put true setpacking /initialize { Adobe_level2_AI5 begin } bind def /terminate { currentdict Adobe_level2_AI5 eq { end } if } bind def mark /setcustomcolor where not { /findcmykcustomcolor { 5 packedarray } bind def /setcustomcolor { exch aload pop pop 4 { 4 index mul 4 1 roll } repeat 5 -1 roll pop setcmykcolor } def } if /gt38? mark {version cvx exec} stopped {cleartomark true} {38 gt exch pop} ifelse def userdict /deviceDPI 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt put userdict /level2? systemdict /languagelevel known dup { pop systemdict /languagelevel get 2 ge } if put level2? not { /setcmykcolor where not { /setcmykcolor { exch .11 mul add exch .59 mul add exch .3 mul add 1 exch sub setgray } def } if /currentcmykcolor where not { /currentcmykcolor { 0 0 0 1 currentgray sub } def } if /setoverprint where not { /setoverprint /pop load def } if /selectfont where not { /selectfont { exch findfont exch dup type /arraytype eq { makefont } { scalefont } ifelse setfont } bind def } if /cshow where not { /cshow { [ 0 0 5 -1 roll aload pop ] cvx bind forall } bind def } if } if cleartomark /anyColor? { add add add 0 ne } bind def /testColor { gsave setcmykcolor currentcmykcolor grestore } bind def /testCMYKColorThrough { testColor anyColor? } bind def userdict /composite? level2? { gsave 1 1 1 1 setcmykcolor currentcmykcolor grestore add add add 4 eq } { 1 0 0 0 testCMYKColorThrough 0 1 0 0 testCMYKColorThrough 0 0 1 0 testCMYKColorThrough 0 0 0 1 testCMYKColorThrough and and and } ifelse put composite? not { userdict begin gsave /cyan? 1 0 0 0 testCMYKColorThrough def /magenta? 0 1 0 0 testCMYKColorThrough def /yellow? 0 0 1 0 testCMYKColorThrough def /black? 0 0 0 1 testCMYKColorThrough def grestore /isCMYKSep? cyan? magenta? yellow? black? or or or def /customColor? isCMYKSep? not def end } if end defaultpacking setpacking %%EndResource %%BeginResource: procset Adobe_IllustratorA_AI5 1.1 0 %%Title: (Adobe Illustrator (R) Version 5.0 Abbreviated Prolog) %%Version: 1.1 %%CreationDate: (3/7/1994) () %%Copyright: ((C) 1987-1994 Adobe Systems Incorporated All Rights Reserved) currentpacking true setpacking userdict /Adobe_IllustratorA_AI5_vars 70 dict dup begin put /_lp /none def /_pf { } def /_ps { } def /_psf { } def /_pss { } def /_pjsf { } def /_pjss { } def /_pola 0 def /_doClip 0 def /cf currentflat def /_tm matrix def /_renderStart [ /e0 /r0 /a0 /o0 /e1 /r1 /a1 /i0 ] def /_renderEnd [ null null null null /i1 /i1 /i1 /i1 ] def /_render -1 def /_rise 0 def /_ax 0 def /_ay 0 def /_cx 0 def /_cy 0 def /_leading [ 0 0 ] def /_ctm matrix def /_mtx matrix def /_sp 16#020 def /_hyphen (-) def /_fScl 0 def /_cnt 0 def /_hs 1 def /_nativeEncoding 0 def /_useNativeEncoding 0 def /_tempEncode 0 def /_pntr 0 def /_tDict 2 dict def /_wv 0 def /Tx { } def /Tj { } def /CRender { } def /_AI3_savepage { } def /_gf null def /_cf 4 array def /_if null def /_of false def /_fc { } def /_gs null def /_cs 4 array def /_is null def /_os false def /_sc { } def /discardSave null def /buffer 256 string def /beginString null def /endString null def /endStringLength null def /layerCnt 1 def /layerCount 1 def /perCent (%) 0 get def /perCentSeen? false def /newBuff null def /newBuffButFirst null def /newBuffLast null def /clipForward? false def end userdict /Adobe_IllustratorA_AI5 74 dict dup begin put /initialize { Adobe_IllustratorA_AI5 dup begin Adobe_IllustratorA_AI5_vars begin discardDict { bind pop pop } forall dup /nc get begin { dup xcheck 1 index type /operatortype ne and { bind } if pop pop } forall end newpath } def /terminate { end end } def /_ null def /ddef { Adobe_IllustratorA_AI5_vars 3 1 roll put } def /xput { dup load dup length exch maxlength eq { dup dup load dup length 2 mul dict copy def } if load begin def end } def /npop { { pop } repeat } def /sw { dup length exch stringwidth exch 5 -1 roll 3 index mul add 4 1 roll 3 1 roll mul add } def /swj { dup 4 1 roll dup length exch stringwidth exch 5 -1 roll 3 index mul add 4 1 roll 3 1 roll mul add 6 2 roll /_cnt 0 ddef { 1 index eq { /_cnt _cnt 1 add ddef } if } forall pop exch _cnt mul exch _cnt mul 2 index add 4 1 roll 2 index add 4 1 roll pop pop } def /ss { 4 1 roll { 2 npop (0) exch 2 copy 0 exch put pop gsave false charpath currentpoint 4 index setmatrix stroke grestore moveto 2 copy rmoveto } exch cshow 3 npop } def /jss { 4 1 roll { 2 npop (0) exch 2 copy 0 exch put gsave _sp eq { exch 6 index 6 index 6 index 5 -1 roll widthshow currentpoint } { false charpath currentpoint 4 index setmatrix stroke } ifelse grestore moveto 2 copy rmoveto } exch cshow 6 npop } def /sp { { 2 npop (0) exch 2 copy 0 exch put pop false charpath 2 copy rmoveto } exch cshow 2 npop } def /jsp { { 2 npop (0) exch 2 copy 0 exch put _sp eq { exch 5 index 5 index 5 index 5 -1 roll widthshow } { false charpath } ifelse 2 copy rmoveto } exch cshow 5 npop } def /pl { transform 0.25 sub round 0.25 add exch 0.25 sub round 0.25 add exch itransform } def /setstrokeadjust where { pop true setstrokeadjust /c { curveto } def /C /c load def /v { currentpoint 6 2 roll curveto } def /V /v load def /y { 2 copy curveto } def /Y /y load def /l { lineto } def /L /l load def /m { moveto } def } { /c { pl curveto } def /C /c load def /v { currentpoint 6 2 roll pl curveto } def /V /v load def /y { pl 2 copy curveto } def /Y /y load def /l { pl lineto } def /L /l load def /m { pl moveto } def } ifelse /d { setdash } def /cf { } def /i { dup 0 eq { pop cf } if setflat } def /j { setlinejoin } def /J { setlinecap } def /M { setmiterlimit } def /w { setlinewidth } def /H { } def /h { closepath } def /N { _pola 0 eq { _doClip 1 eq { clip /_doClip 0 ddef } if newpath } { /CRender { N } ddef } ifelse } def /n { N } def /F { _pola 0 eq { _doClip 1 eq { gsave _pf grestore clip newpath /_lp /none ddef _fc /_doClip 0 ddef } { _pf } ifelse } { /CRender { F } ddef } ifelse } def /f { closepath F } def /S { _pola 0 eq { _doClip 1 eq { gsave _ps grestore clip newpath /_lp /none ddef _sc /_doClip 0 ddef } { _ps } ifelse } { /CRender { S } ddef } ifelse } def /s { closepath S } def /B { _pola 0 eq { _doClip 1 eq gsave F grestore { gsave S grestore clip newpath /_lp /none ddef _sc /_doClip 0 ddef } { S } ifelse } { /CRender { B } ddef } ifelse } def /b { closepath B } def /W { /_doClip 1 ddef } def /* { count 0 ne { dup type /stringtype eq { pop } if } if newpath } def /u { } def /U { } def /q { _pola 0 eq { gsave } if } def /Q { _pola 0 eq { grestore } if } def /*u { _pola 1 add /_pola exch ddef } def /*U { _pola 1 sub /_pola exch ddef _pola 0 eq { CRender } if } def /D { pop } def /*w { } def /*W { } def /` { /_i save ddef clipForward? { nulldevice } if 6 1 roll 4 npop concat pop userdict begin /showpage { } def 0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin 10 setmiterlimit [] 0 setdash /setstrokeadjust where {pop false setstrokeadjust} if newpath 0 setgray false setoverprint } def /~ { end _i restore } def /O { 0 ne /_of exch ddef /_lp /none ddef } def /R { 0 ne /_os exch ddef /_lp /none ddef } def /g { /_gf exch ddef /_fc { _lp /fill ne { _of setoverprint _gf setgray /_lp /fill ddef } if } ddef /_pf { _fc fill } ddef /_psf { _fc ashow } ddef /_pjsf { _fc awidthshow } ddef /_lp /none ddef } def /G { /_gs exch ddef /_sc { _lp /stroke ne { _os setoverprint _gs setgray /_lp /stroke ddef } if } ddef /_ps { _sc stroke } ddef /_pss { _sc ss } ddef /_pjss { _sc jss } ddef /_lp /none ddef } def /k { _cf astore pop /_fc { _lp /fill ne { _of setoverprint _cf aload pop setcmykcolor /_lp /fill ddef } if } ddef /_pf { _fc fill } ddef /_psf { _fc ashow } ddef /_pjsf { _fc awidthshow } ddef /_lp /none ddef } def /K { _cs astore pop /_sc { _lp /stroke ne { _os setoverprint _cs aload pop setcmykcolor /_lp /stroke ddef } if } ddef /_ps { _sc stroke } ddef /_pss { _sc ss } ddef /_pjss { _sc jss } ddef /_lp /none ddef } def /x { /_gf exch ddef findcmykcustomcolor /_if exch ddef /_fc { _lp /fill ne { _of setoverprint _if _gf 1 exch sub setcustomcolor /_lp /fill ddef } if } ddef /_pf { _fc fill } ddef /_psf { _fc ashow } ddef /_pjsf { _fc awidthshow } ddef /_lp /none ddef } def /X { /_gs exch ddef findcmykcustomcolor /_is exch ddef /_sc { _lp /stroke ne { _os setoverprint _is _gs 1 exch sub setcustomcolor /_lp /stroke ddef } if } ddef /_ps { _sc stroke } ddef /_pss { _sc ss } ddef /_pjss { _sc jss } ddef /_lp /none ddef } def /A { pop } def /annotatepage { userdict /annotatepage 2 copy known {get exec} {pop pop} ifelse } def /discard { save /discardSave exch store discardDict begin /endString exch store gt38? { 2 add } if load stopped pop end discardSave restore } bind def userdict /discardDict 7 dict dup begin put /pre38Initialize { /endStringLength endString length store /newBuff buffer 0 endStringLength getinterval store /newBuffButFirst newBuff 1 endStringLength 1 sub getinterval store /newBuffLast newBuff endStringLength 1 sub 1 getinterval store } def /shiftBuffer { newBuff 0 newBuffButFirst putinterval newBuffLast 0 currentfile read not { stop } if put } def 0 { pre38Initialize mark currentfile newBuff readstring exch pop { { newBuff endString eq { cleartomark stop } if shiftBuffer } loop } { stop } ifelse } def 1 { pre38Initialize /beginString exch store mark currentfile newBuff readstring exch pop { { newBuff beginString eq { /layerCount dup load 1 add store } { newBuff endString eq { /layerCount dup load 1 sub store layerCount 0 eq { cleartomark stop } if } if } ifelse shiftBuffer } loop } { stop } ifelse } def 2 { mark { currentfile buffer readline not { stop } if endString eq { cleartomark stop } if } loop } def 3 { /beginString exch store /layerCnt 1 store mark { currentfile buffer readline not { stop } if dup beginString eq { pop /layerCnt dup load 1 add store } { endString eq { layerCnt 1 eq { cleartomark stop } { /layerCnt dup load 1 sub store } ifelse } if } ifelse } loop } def end userdict /clipRenderOff 15 dict dup begin put { /n /N /s /S /f /F /b /B } { { _doClip 1 eq { /_doClip 0 ddef clip } if newpath } def } forall /Tr /pop load def /Bb {} def /BB /pop load def /Bg {12 npop} def /Bm {6 npop} def /Bc /Bm load def /Bh {4 npop} def end /Lb { 4 npop 6 1 roll pop 4 1 roll pop pop pop 0 eq { 0 eq { (%AI5_BeginLayer) 1 (%AI5_EndLayer--) discard } { /clipForward? true def /Tx /pop load def /Tj /pop load def currentdict end clipRenderOff begin begin } ifelse } { 0 eq { save /discardSave exch store } if } ifelse } bind def /LB { discardSave dup null ne { restore } { pop clipForward? { currentdict end end begin /clipForward? false ddef } if } ifelse } bind def /Pb { pop pop 0 (%AI5_EndPalette) discard } bind def /Np { 0 (%AI5_End_NonPrinting--) discard } bind def /Ln /pop load def /Ap /pop load def /Ar { 72 exch div 0 dtransform dup mul exch dup mul add sqrt dup 1 lt { pop 1 } if setflat } def /Mb { q } def /Md { } def /MB { Q } def /nc 3 dict def nc begin /setgray { pop } bind def /setcmykcolor { 4 npop } bind def /setcustomcolor { 2 npop } bind def currentdict readonly pop end currentdict readonly pop end setpacking %%EndResource %%EndProlog %%BeginSetup Adobe_level2_AI5 /initialize get exec Adobe_IllustratorA_AI5 /initialize get exec %AI5_Begin_NonPrinting Np %AI3_BeginPattern: (Gelbe Streifen) (Gelbe Streifen) 8.4499 4.6 80.4499 76.6 [ %AI3_Tile (0 O 0 R 0 0.4 1 0 k 0 0.4 1 0 K) @ ( 800 Ar 0 J 0 j 3.6 w 4 M []0 d %AI3_Note: 0 D 8.1999 8.1999 m 80.6999 8.1999 L S 8.1999 22.6 m 80.6999 22.6 L S 8.1999 37.0001 m 80.6999 37.0001 L S 8.1999 51.3999 m 80.6999 51.3999 L S 8.1999 65.8 m 80.6999 65.8 L S 8.1999 15.3999 m 80.6999 15.3999 L S 8.1999 29.8 m 80.6999 29.8 L S 8.1999 44.1999 m 80.6999 44.1999 L S 8.1999 58.6 m 80.6999 58.6 L S 8.1999 73.0001 m 80.6999 73.0001 L S ) & ] E %AI3_EndPattern %AI5_End_NonPrinting-- %AI5_Begin_NonPrinting Np 3 Bn %AI5_BeginGradient: (Gelb & Blau Kreis) (Gelb & Blau Kreis) 1 2 Bd [ < 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627 28292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F 505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F7071727374757677 78797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7 C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF > < 1415161718191A1B1C1D1E1F1F202122232425262728292A2A2B2C2D2E2F30313233343536363738 393A3B3C3D3E3F40414142434445464748494A4B4C4D4D4E4F50515253545556575858595A5B5C5D 5E5F60616263646465666768696A6B6C6D6E6F6F707172737475767778797A7B7B7C7D7E7F808182 83848586868788898A8B8C8D8E8F90919292939495969798999A9B9C9D9D9E9FA0A1A2A3A4A5A6A7 A8A9A9AAABACADAEAFB0B1B2B3B4B4B5B6B7B8B9BABBBCBDBEBFC0C0C1C2C3C4C5C6C7C8C9CACBCB CCCDCECFD0D1D2D3D4D5D6D7D7D8D9DADBDCDDDEDFE0E1E2E2E3E4E5E6E7E8E9EAEBECEDEEEEEFF0 F1F2F3F4F5F6F7F8F9F9FAFBFCFDFEFF > < ABAAAAA9A8A7A7A6A5A5A4A3A3A2A1A1A09F9F9E9D9D9C9B9B9A9999989797969595949393929191 908F8F8E8D8D8C8B8B8A8989888787868585848383828181807F7F7E7D7D7C7B7B7A797978777776 7575747373727171706F6F6E6D6D6C6B6B6A6969686767666565646362626160605F5E5E5D5C5C5B 5A5A5958585756565554545352525150504F4E4E4D4C4C4B4A4A4948484746464544444342424140 403F3E3E3D3C3C3B3A3A3938383736363534343332323130302F2E2E2D2C2C2B2A2A292828272626 25242423222121201F1F1E1D1D1C1B1B1A1919181717161515141313121111100F0F0E0D0D0C0B0B 0A090908070706050504030302010100 > 0 1 %_Br [ 0 0.08 0.67 0 1 50 14 %_Bs 1 1 0 0 1 50 100 %_Bs BD %AI5_EndGradient %AI5_BeginGradient: (Rot & Gelb) (Rot & Gelb) 0 2 Bd [ 0 < 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F2021222324252627 28292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F 505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F7071727374757677 78797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9F A0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7 C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF > < FFFFFEFEFDFDFDFCFCFBFBFBFAFAF9F9F9F8F8F7F7F7F6F6F5F5F5F4F4F3F3F3F2F2F1F1F1F0F0EF EFEFEEEEEDEDEDECECEBEBEBEAEAE9E9E9E8E8E7E7E7E6E6E5E5E5E4E4E3E3E3E2E2E1E1E1E0E0DF DFDFDEDEDDDDDDDCDCDBDBDBDADAD9D9D9D8D8D7D7D7D6D6D5D5D5D4D4D3D3D3D2D2D1D1D1D0D0CF CFCFCECECDCDCDCCCCCBCBCBCACAC9C9C9C8C8C7C7C7C6C6C5C5C5C4C4C3C3C3C2C2C1C1C1C0C0BF BFBFBEBEBDBDBDBCBCBBBBBBBABAB9B9B9B8B8B7B7B7B6B6B5B5B5B4B4B3B3B3B2B2B1B1B1B0B0AF AFAFAEAEADADADACACABABABAAAAA9A9A9A8A8A7A7A7A6A6A5A5A5A4A4A3A3A3A2A2A1A1A1A0A09F 9F9F9E9E9D9D9D9C9C9B9B9B9A9A9999 > 0 1 %_Br [ 0 1 0.6 0 1 50 100 %_Bs 0 0 1 0 1 50 0 %_Bs BD %AI5_EndGradient %AI5_BeginGradient: (Schwarz & Wei\247) (Schwarz & Wei\247) 0 2 Bd [ < FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0DFDEDDDCDBDAD9D8 D7D6D5D4D3D2D1D0CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0 AFAEADACABAAA9A8A7A6A5A4A3A2A1A09F9E9D9C9B9A999897969594939291908F8E8D8C8B8A8988 87868584838281807F7E7D7C7B7A797877767574737271706F6E6D6C6B6A69686766656463626160 5F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A3938 37363534333231302F2E2D2C2B2A292827262524232221201F1E1D1C1B1A19181716151413121110 0F0E0D0C0B0A09080706050403020100 > 0 %_Br [ 0 0 50 100 %_Bs 1 0 50 0 %_Bs BD %AI5_EndGradient %AI5_End_NonPrinting-- %AI5_BeginPalette 0 0 Pb Pn Pc 1 g Pc 0 g Pc 0 0 0 0 k Pc 0.75 g Pc 0.5 g Pc 0.25 g Pc 0 g Pc Bb 2 (Schwarz & Wei\247) -4014 4716 0 0 1 0 0 1 0 0 Bg 0 BB Pc 0.25 0 0 0 k Pc 0.5 0 0 0 k Pc 0.75 0 0 0 k Pc 1 0 0 0 k Pc 0.25 0.25 0 0 k Pc 0.5 0.5 0 0 k Pc 0.75 0.75 0 0 k Pc 1 1 0 0 k Pc Bb 2 (Rot & Gelb) -4014 4716 0 0 1 0 0 1 0 0 Bg 0 BB Pc 0 0.25 0 0 k Pc 0 0.5 0 0 k Pc 0 0.75 0 0 k Pc 0 1 0 0 k Pc 0 0.25 0.25 0 k Pc 0 0.5 0.5 0 k Pc 0 0.75 0.75 0 k Pc 0 1 1 0 k Pc Bb 0 0 0 0 Bh 2 (Gelb & Blau Kreis) -4014 4716 0 0 1 0 0 1 0 0 Bg 0 BB Pc 0 0 0.25 0 k Pc 0 0 0.5 0 k Pc 0 0 0.75 0 k Pc 0 0 1 0 k Pc 0.25 0 0.25 0 k Pc 0.5 0 0.5 0 k Pc 0.75 0 0.75 0 k Pc 1 0 1 0 k Pc (Gelbe Streifen) 0 0 1 1 0 0 0 0 0 [1 0 0 1 0 0] p Pc 0.25 0.125 0 0 k Pc 0.5 0.25 0 0 k Pc 0.75 0.375 0 0 k Pc 1 0.5 0 0 k Pc 0.125 0.25 0 0 k Pc 0.25 0.5 0 0 k Pc 0.375 0.75 0 0 k Pc 0.5 1 0 0 k Pc 0 0 0 0 k Pc 0 0.25 0.125 0 k Pc 0 0.5 0.25 0 k Pc 0 0.75 0.375 0 k Pc 0 1 0.5 0 k Pc 0 0.125 0.25 0 k Pc 0 0.25 0.5 0 k Pc 0 0.375 0.75 0 k Pc 0 0.5 1 0 k Pc 0 0 0 0 k Pc 0.125 0 0.25 0 k Pc 0.25 0 0.5 0 k Pc 0.375 0 0.75 0 k Pc 0.5 0 1 0 k Pc 0.25 0 0.125 0 k Pc 0.5 0 0.25 0 k Pc 0.75 0 0.375 0 k Pc 1 0 0.5 0 k Pc 0 0 0 0 k Pc 0.25 0.125 0.125 0 k Pc 0.5 0.25 0.25 0 k Pc 0.75 0.375 0.375 0 k Pc 1 0.5 0.5 0 k Pc 0.25 0.25 0.125 0 k Pc 0.5 0.5 0.25 0 k Pc 0.75 0.75 0.375 0 k Pc 1 1 0.5 0 k Pc 0 0 0 0 k Pc 0.125 0.25 0.125 0 k Pc 0.25 0.5 0.25 0 k Pc 0.375 0.75 0.375 0 k Pc 0.5 1 0.5 0 k Pc 0.125 0.25 0.25 0 k Pc 0.25 0.5 0.5 0 k Pc 0.375 0.75 0.75 0 k Pc 0.5 1 1 0 k Pc 0 0 0 0 k Pc 0.125 0.125 0.25 0 k Pc 0.25 0.25 0.5 0 k Pc 0.375 0.375 0.75 0 k Pc 0.5 0.5 1 0 k Pc 0.25 0.125 0.25 0 k Pc 0.5 0.25 0.5 0 k Pc 0.75 0.375 0.75 0 k Pc 1 0.5 1 0 k Pc PB %AI5_EndPalette %%EndSetup %AI5_BeginLayer 1 1 1 1 0 0 0 79 128 255 Lb (Ebene 1) Ln 0 A u 0 R 0.1 1 0.65 0.25 (Uni-Rot) 0 X 800 Ar 0 J 0 j 1.25 w 4 M []0 d %AI3_Note: 0 D 309.055 766.6802 m 307.8645 766.6802 306.8995 767.6352 306.8995 768.8137 c 306.8995 769.9922 307.8645 770.9472 309.055 770.9472 c 310.245 770.9472 311.209 769.9922 311.209 768.8137 c 311.209 767.6352 310.245 766.6802 309.055 766.6802 c s 309.055 768.8137 m S U 1.9275 w 296.827 709.6168 m 296.827 739.1663 l 271.939 726.1493 l 271.939 696.1958 l 308.9725 676.8078 l 346.004 696.1958 l 346.004 726.1493 l 321.1105 739.1663 l 321.1105 709.6168 l 308.9725 703.1813 l 296.827 709.6168 l s 308.9725 755.2763 m S 271.935 768.2653 m 271.935 730.0718 L 296.833 743.1663 L 296.833 767.7433 L S 320.9975 767.7447 m 346.103 767.7447 l 331.3365 775.6923 l 286.415 775.6923 l 271.697 767.7447 l 296.8025 767.7447 l S 346.009 768.2653 m 346.009 730.0718 L 321.1105 743.0942 L 321.1105 767.7433 L S 296.833 767.6443 m 296.833 743.1893 l 302.9885 746.3872 l 302.9885 757.7682 l 302.9885 761.0377 305.668 763.6893 308.9725 763.6893 c 312.276 763.6893 314.9545 761.0377 314.9545 757.7682 c 314.9375 746.3153 l 321.1105 743.0812 l 321.1185 767.6213 l 308.9725 773.9667 l 296.833 767.6443 l s u 0 O 0 g 2 J 1 w 2 M 112.8625 723.2673 m 114.9125 723.0173 116.5625 723.7673 118.4125 723.0173 C 117.7625 722.3672 116.1625 722.5673 116.4625 721.1172 C 116.5625 706.0673 L 116.8625 704.8672 117.7125 703.7173 118.8625 703.0673 C 120.8625 702.2673 123.2625 702.0173 125.1625 703.2673 C 126.7125 704.2673 127.4625 705.8173 127.4125 707.5673 C 127.4125 721.8672 L 127.4625 723.2173 124.8625 722.0173 125.9625 723.3672 C 127.4625 723.2673 129.1125 723.5673 130.4625 723.1172 C 130.1125 722.3672 128.4625 722.8672 128.5625 721.5673 C 128.4125 706.7673 L 128.1125 705.1672 127.5125 703.4673 125.8625 702.6172 C 123.0625 701.0673 118.8125 701.0173 116.2625 703.0673 C 114.8125 704.2673 114.4625 705.9172 114.3125 707.6672 C 114.3125 721.7673 L 114.3625 723.0673 111.8625 722.0673 112.8625 723.2673 C f 131.4625 723.3672 m 132.4625 723.5673 133.6125 723.4172 134.6625 723.4673 C 138.8125 718.0173 142.4125 712.3672 146.5125 706.8672 C 146.7125 707.2173 L 146.7125 722.2173 L 146.5125 723.3173 144.7625 722.3672 145.0125 723.4673 C 146.5125 723.6172 148.2625 723.7173 149.6625 723.3672 C 149.4125 722.5673 147.8125 723.1672 147.9625 721.8672 C 147.7125 702.0173 L 146.2125 701.0673 146.8625 703.3173 146.0625 703.8173 C 142.3125 709.0673 138.7625 714.4673 134.8625 719.5173 C 134.5125 714.1672 134.5125 708.5173 134.8625 703.0673 C 135.2125 702.2173 136.4125 702.8672 136.4625 702.0173 C 134.9625 701.8672 133.3125 701.8672 131.8125 702.0173 C 131.9625 702.8173 133.5125 702.2673 133.6125 703.3672 C 133.6125 721.4172 L 133.1125 722.2173 132.3125 722.7673 131.4625 723.0173 C 131.4625 723.3672 L f 153.2625 703.2673 m 153.3625 721.8672 L 153.5125 723.2673 150.1125 722.4172 152.1125 723.4673 C 155.7125 723.4172 158.9625 723.5673 162.5125 723.3672 C 162.4625 722.6172 161.2625 723.0173 161.0625 722.2173 C 162.5125 716.4172 164.7625 710.8672 166.8125 705.3173 C 167.2625 705.7673 L 172.7625 721.8672 L 172.7125 722.2173 172.5125 722.5673 172.2125 722.8173 C 171.7625 722.7173 171.4125 722.8672 171.1125 723.1172 C 171.2125 723.4673 L 187.5625 723.4673 L 187.8125 722.5173 188.7125 721.5673 188.2625 720.6672 C 186.7125 723.5173 183.0625 722.6672 180.2125 722.6672 C 179.5625 721.8672 L 179.4625 715.1172 L 180.6625 714.1172 182.5125 715.1672 184.0625 714.6672 C 184.2625 714.5673 184.4125 714.2673 184.1625 714.1172 C 182.7625 713.4673 180.5625 714.5173 179.5625 713.2173 C 179.4625 703.7173 L 179.5125 703.2173 180.1125 702.8672 180.5625 702.8173 C 183.4125 703.2173 187.4125 701.6172 188.7125 705.0673 C 189.2625 705.0673 L 189.0125 703.9673 188.7125 702.9172 188.0125 702.0173 C 183.8625 702.0673 179.6625 701.9172 175.6125 702.1172 C 175.6625 703.2673 177.5125 702.1672 177.4125 703.6172 C 177.3125 722.4673 L 176.6125 722.9172 175.6625 723.0173 174.8125 722.8173 C 173.8125 721.6672 L 166.9125 702.0173 L 166.7125 701.7673 166.4625 701.6172 166.1125 701.6672 C 165.5625 702.4673 L 158.8125 721.8672 L 158.2125 722.8173 156.9125 722.9172 155.8625 722.6672 C 155.4125 722.1172 L 155.4125 703.2673 L 155.5625 702.5173 156.5125 702.6172 157.1125 702.4673 C 157.1125 702.0173 L 155.2625 701.9172 152.9625 701.6672 151.3625 702.2673 C 151.8625 702.9172 153.0125 702.2673 153.2625 703.2673 C f 191.4125 703.3672 m 191.5125 720.6672 L 191.5625 721.6172 190.1625 720.9673 190.2625 721.8672 C 193.7125 723.9172 198.4125 724.5673 202.0125 722.4673 C 203.6125 721.0673 204.1625 719.0673 203.7125 716.9172 C 203.3625 715.5173 202.3125 713.9673 200.8625 713.4172 C 198.1625 712.6172 L 204.7125 703.3672 L 205.2125 702.4673 206.4125 702.9172 206.8625 702.1172 C 205.7625 701.7673 204.3125 701.9172 203.1625 702.0173 C 200.5625 705.7673 197.5625 709.2673 195.4625 713.2173 C 197.7625 713.4172 200.2125 713.8672 201.3625 716.1172 C 201.9125 717.6672 201.8125 719.7173 201.0125 721.1172 C 199.9125 722.4172 198.5125 723.0673 196.8125 722.9172 C 195.9125 722.8173 194.9625 722.7173 194.2125 722.1172 C 193.6625 721.1172 L 193.4625 703.7173 L 193.5125 703.1672 193.9125 702.7173 194.4625 702.6172 C 194.8625 702.6672 195.1125 702.4673 195.4625 702.3672 C 195.4625 702.0173 L 193.5625 701.9172 191.4125 701.7673 189.6125 702.1172 C 189.8625 702.9172 191.2625 702.3672 191.4125 703.3672 C f 206.8625 706.2173 m 208.0125 704.7173 209.4625 703.1172 211.3625 702.7173 C 213.0125 702.3672 214.6625 702.7173 215.9125 703.7173 C 216.9625 704.8173 217.4125 706.1672 217.2625 707.7673 C 215.7125 712.5173 210.0625 713.1672 207.6625 717.2673 C 207.0625 718.8672 207.2625 720.9172 208.3125 722.2173 C 210.3625 724.6172 213.9125 723.8173 216.5625 723.3672 C 217.0125 723.3672 217.3125 724.0673 217.7125 723.8173 C 217.9125 722.4673 218.7625 721.1172 218.2625 719.7673 C 217.1125 720.9673 216.0125 722.5173 214.3125 722.9172 C 212.9125 723.1172 211.2625 723.1672 210.2625 722.0173 C 209.1625 721.1672 209.1125 719.7673 209.3625 718.5173 C 212.1125 714.0673 220.9625 712.7173 219.0625 705.8672 C 218.5125 703.8173 216.5125 702.1672 214.4125 701.8173 C 212.3125 701.3173 210.4625 702.1672 208.4625 702.3672 C 208.0125 702.2173 208.0125 701.3173 207.4125 701.8173 C 207.1125 703.2173 206.6625 704.5173 206.5125 705.9673 C 206.8625 706.2173 L f 221.7625 703.6172 m 221.7625 722.4673 L 221.5125 723.3173 219.3625 722.5173 220.4125 723.5673 C 222.1625 723.6672 224.4625 723.9172 225.8125 723.3672 C 225.3625 722.7673 224.0625 723.2173 223.9125 722.1172 C 223.7625 716.1672 223.7625 708.9673 223.9125 703.1672 C 224.3125 702.6172 225.0625 702.7673 225.6125 702.6172 C 225.7125 701.9172 224.9125 702.0673 224.4625 702.0173 C 222.9625 702.1172 221.3125 701.8173 219.9625 702.2673 C 220.2125 703.0673 221.6625 702.4673 221.7625 703.6172 C f 227.5125 723.7173 m 241.8625 723.4673 L 242.1625 722.3672 242.9125 721.3173 242.7625 720.2173 C 241.9125 720.3672 241.8625 721.4172 241.0625 721.8672 C 239.9625 723.2173 238.0625 722.6672 236.4125 722.8173 C 235.5125 721.8672 L 235.5125 715.6672 235.1125 709.2673 235.4125 703.1672 C 235.8125 702.4673 237.5125 703.1672 237.0125 702.1172 C 235.0625 702.1672 233.1125 702.0673 231.2625 702.2673 C 231.4625 703.2673 233.5125 702.4673 233.2625 704.0673 C 233.4125 722.1172 L 232.4125 723.1672 230.4625 723.0173 229.1125 722.6672 C 227.8625 722.5173 227.2625 721.1672 226.5125 720.3173 C 226.0625 720.5173 L 226.3625 721.6672 226.7125 722.8672 227.5125 723.7173 C f 239.0125 702.7173 m 240.0625 703.7173 L 242.3125 710.3672 244.5625 717.0173 246.8125 723.7173 C 247.5625 723.7673 247.5125 722.8672 247.8125 722.4673 C 253.6125 703.2673 L 253.9625 702.3672 255.1625 702.7673 255.2625 702.0173 C 253.5625 701.8672 251.3625 701.8672 249.5125 702.0173 C 249.5125 702.4673 L 250.1125 702.7173 250.9625 702.4172 251.2125 703.1672 C 251.1125 705.3672 250.2125 707.2673 249.5125 709.2673 C 248.8625 709.7173 L 246.8625 709.7173 245.1625 709.7173 243.3125 709.7173 C 241.8625 707.8173 241.5625 705.4172 240.9625 703.1672 C 241.1625 702.5673 242.0625 702.7673 242.2125 702.2673 C 241.7625 701.9172 L 238.2625 702.1172 L 238.0625 702.6672 238.7625 702.5173 239.0125 702.7173 C f 244.0125 726.8672 m 244.6125 726.8173 245.4625 726.7173 245.5625 725.9673 C 245.7125 725.1672 245.4625 724.3672 244.6625 724.1672 C 243.9125 724.0173 243.0625 724.2673 242.8625 725.0673 C 242.6625 725.9172 243.2125 726.7173 244.0125 726.8672 C f 1 g 246.2625 719.5173 m 247.3625 716.8173 248.1125 713.7173 249.0625 710.8173 C 248.7125 710.6172 L 243.4125 710.7173 L 246.2625 719.5173 L f 0 g 249.2125 726.8672 m 250.0625 727.0673 250.8625 726.4673 251.0125 725.7173 C 250.9625 725.1172 250.7125 724.4172 250.1125 724.1672 C 249.3625 724.0673 248.6125 724.2173 248.2625 724.9172 C 247.9125 725.7173 248.4125 726.6172 249.2125 726.8672 C f 253.0125 723.5673 m 267.2625 723.4673 L 267.8125 722.4172 268.3125 721.2173 268.2625 720.0673 C 267.2625 720.5173 266.9125 722.1172 265.6625 722.4673 C 264.2625 722.5673 261.8125 723.3672 261.0625 721.7673 C 260.8125 703.3672 L 261.0125 702.3672 263.3125 703.0173 262.4125 702.0173 C 256.9625 702.0173 L 256.6125 702.3672 L 257.1125 703.0673 258.4125 702.3672 258.6625 703.5173 C 259.0125 721.6672 L 258.9625 722.3173 258.2625 722.7673 257.6625 722.8173 C 256.1125 722.8672 254.6625 722.7673 253.4625 722.0173 C 252.7625 721.4673 252.5625 720.1172 251.6625 720.3173 C 251.7625 721.5173 252.2125 722.7173 253.0125 723.5673 C f U u 353.4375 721.4172 m 356.0875 723.8173 360.3375 724.2173 363.7375 723.1172 C 366.3875 722.3173 368.5875 719.6172 369.3375 717.0173 C 370.3375 713.3173 370.1375 708.6672 367.9875 705.5173 C 365.8375 702.5173 362.4875 701.2673 358.7375 701.5673 C 355.3875 701.6672 352.1875 704.0173 350.8375 707.1172 C 349.2875 711.7673 349.5375 717.9172 353.4375 721.4172 C f 1 g 356.3875 721.7673 m 357.8875 722.8672 360.0875 722.9673 361.8875 722.5673 C 365.2375 721.8173 367.0375 718.2173 367.4375 715.1172 C 367.9375 711.1672 367.3375 707.3672 364.8375 704.5173 C 363.0875 702.5673 360.3875 702.1172 357.8375 702.7173 C 355.3375 703.3672 353.7875 705.9172 352.8875 708.1172 C 351.6875 712.9673 352.1875 718.6672 356.3875 721.7673 C f 0 g 370.1375 706.0673 m 371.0875 705.7173 371.6875 704.4673 372.5375 703.8173 C 374.0875 702.5673 376.4875 702.0173 378.3875 702.9172 C 379.7375 703.7173 380.5875 705.0673 380.7375 706.5673 C 380.4875 712.2673 373.6375 712.7173 371.2875 717.1672 C 370.7875 718.4172 370.7875 719.9172 371.2875 721.2173 C 372.2875 723.1672 374.4375 723.9172 376.5875 723.8173 C 378.0875 723.9172 379.4875 722.5673 380.8875 723.7173 C 381.1875 723.7173 L 381.5375 722.4172 381.9375 721.0173 381.8875 719.7673 C 380.8875 720.0673 380.6875 721.2673 379.7375 721.8672 C 378.1875 723.0173 375.9375 723.3173 374.1875 722.3672 C 373.2375 721.6172 372.8875 720.6672 372.7375 719.6172 C 373.8875 714.7173 379.8875 714.5173 382.0875 710.0173 C 383.1375 708.2173 382.6875 705.6172 381.6375 703.9673 C 379.8875 701.5673 376.9375 701.4172 374.3375 701.8173 C 373.3375 701.7173 372.0375 703.1672 371.3875 701.6672 C 370.9375 701.6672 L 370.4375 703.0673 370.1875 704.6672 370.1375 706.0673 C f 386.6375 723.5673 m 390.8375 718.2673 394.2375 712.3173 398.4875 707.0173 C 398.8375 712.0173 398.7375 717.5173 398.5875 722.4673 C 398.3375 723.3173 396.2875 722.5673 397.2375 723.5673 C 398.6875 723.5673 400.2375 723.6672 401.6375 723.4673 C 401.3875 722.6672 399.9375 723.2673 399.8375 722.1172 C 399.5875 701.9172 L 398.4375 701.3173 398.7375 702.7173 398.3375 703.2673 C 394.5375 708.7173 390.8375 714.3672 386.8375 719.6172 C 386.4875 714.5173 386.5875 708.3672 386.7375 703.0673 C 387.1375 702.4172 388.1875 702.9673 388.3375 702.1172 C 386.9375 701.8173 384.9875 701.8173 383.6875 702.1172 C 383.8375 702.9172 385.3875 702.3672 385.4875 703.5173 C 385.5875 721.5673 L 384.9875 722.3173 384.4375 723.0173 383.4875 723.1172 C 383.4875 723.4673 L 386.6375 723.5673 L f 401.7375 702.6172 m 402.5375 703.6172 L 409.0875 723.3672 L 409.4375 723.5673 L 409.9875 722.9172 L 416.1875 702.9172 L 416.4875 702.1672 418.4375 702.6172 417.4375 701.6672 C 415.5875 701.7673 413.5875 701.5173 411.8875 701.9172 C 412.0875 702.7673 413.4375 702.0673 413.6875 702.9172 C 413.5375 705.0673 412.8375 706.9673 412.1375 708.9172 C 410.4375 710.1172 407.8375 709.4673 405.7875 709.4673 C 404.3375 707.6672 404.0375 705.1672 403.4375 702.9172 C 403.6375 702.0673 405.2375 702.8672 404.8875 701.8173 C 400.7375 701.9172 L 400.4875 702.7673 401.4875 702.1172 401.7375 702.6172 C f 1 g 408.7375 719.4172 m 409.7875 716.5173 410.7375 713.5173 411.4375 710.5173 C 405.7875 710.6172 L 406.7375 713.5673 407.6875 716.6172 408.7375 719.4172 C f 0 g 429.3875 723.3672 m 431.1875 722.9673 432.1375 721.0173 432.4375 719.4172 C 432.5375 717.3173 431.6375 715.3672 429.7375 714.4673 C 429.3375 714.2673 428.9375 714.1672 428.5875 713.8672 C 430.2375 713.4673 431.9375 712.8672 432.8875 711.2673 C 433.9875 709.3672 433.7875 706.3173 432.5375 704.5173 C 429.8875 701.0173 424.7875 701.2173 420.9375 702.1172 C 420.2375 702.2673 419.5375 702.7173 419.1375 703.2673 C 419.4375 703.7173 420.3875 703.7673 420.4875 704.5173 C 420.1375 720.8672 L 418.9875 721.5673 L 421.5875 723.8672 425.8875 724.2673 429.3875 723.3672 C f 1 g 422.3875 721.4172 m 423.0375 722.6172 424.4375 722.9172 425.7875 722.9172 C 426.9375 722.8672 428.0375 722.6672 428.9375 722.0173 C 430.7375 720.5673 430.3375 718.1172 429.7375 716.2673 C 428.5375 714.3173 426.2375 714.1672 424.0875 713.9673 C 423.5375 713.6672 424.1375 713.2173 424.4375 713.0673 C 426.7875 713.2173 429.2875 713.1672 430.5375 711.0673 C 431.6375 708.9673 431.4375 705.7673 429.8375 703.9673 C 428.2875 702.3672 425.4875 702.3173 423.5375 703.0673 C 422.6375 704.0673 L 422.5375 709.7173 422.2875 715.5673 422.3875 721.4172 C f 0 g 436.7375 703.3672 m 436.9375 720.6672 L 436.9375 721.4673 435.9375 721.0673 435.7375 721.6672 C 437.5875 723.6172 440.6875 723.9172 443.4875 723.7173 C 445.4875 723.7673 447.2375 722.9673 448.4875 721.3173 C 449.2875 720.0173 449.6375 718.2673 449.1375 716.7173 C 448.6875 714.4673 446.2375 713.0673 444.1875 712.7673 C 443.9375 712.7173 443.6375 712.8173 443.4875 712.5173 C 450.4875 702.8173 L 450.9875 702.2673 452.0875 702.8173 452.1875 701.9172 C 450.9375 701.9172 449.4875 701.4172 448.4875 701.9172 C 440.7875 712.8672 L 441.1375 713.9673 442.9875 713.0673 443.8375 713.6672 C 444.9375 714.0673 446.1875 714.8672 446.6375 716.0173 C 447.4375 717.7673 447.3375 720.2673 445.8875 721.6672 C 444.5875 723.1172 442.3375 723.0673 440.5875 722.6672 C 440.0875 722.4172 439.4875 722.1172 439.2375 721.5673 C 438.9875 715.6172 438.7375 709.2173 438.9875 703.0673 C 439.2875 702.1672 441.4375 702.9673 440.5875 701.9172 C 438.6875 701.9673 436.6875 701.7173 434.9375 702.1172 C 435.1375 703.0673 436.6875 702.1172 436.7375 703.3672 C f 451.0375 723.4673 m 456.4875 723.3672 L 456.0875 722.6672 454.6375 722.9673 454.5375 721.7673 C 454.6875 705.7673 L 454.9875 704.4673 456.1375 703.4673 457.2875 702.8173 C 459.1375 701.9673 461.5375 702.4673 463.2375 703.2673 C 464.4375 704.1172 465.2875 705.2673 465.3875 706.6672 C 465.3875 712.0173 465.8875 717.0673 465.3875 722.3672 C 465.1375 723.0673 463.8375 722.5673 463.8375 723.3672 C 465.3875 723.3672 467.0375 723.8672 468.5375 723.3672 C 468.4375 722.4172 466.9375 723.3173 466.7375 722.1172 C 466.3875 706.3173 L 466.2375 704.7173 465.0875 703.3672 463.6875 702.4673 C 460.7875 701.1672 456.4875 700.9172 453.9875 703.3672 C 452.7875 704.3672 452.5875 705.8173 452.4375 707.2173 C 452.4375 722.3672 L 452.1875 723.2173 450.0375 722.4172 451.0375 723.4673 C f 456.8375 727.2173 m 457.4375 727.1172 458.2375 727.0673 458.3875 726.2673 C 458.5875 725.5673 458.1875 724.6172 457.3875 724.3672 C 456.6875 724.4172 455.8875 724.6172 455.6875 725.3672 C 455.4875 726.2173 456.0375 727.0673 456.8375 727.2173 C f 462.1375 727.2173 m 462.8875 727.4172 463.5875 726.9172 463.8375 726.2673 C 463.8875 725.5173 463.7375 724.8173 463.0375 724.4673 C 462.3875 724.4172 461.2875 724.4673 461.0875 725.3672 C 460.8375 726.2173 461.4375 726.9172 462.1375 727.2173 C f 474.9875 723.3672 m 477.0875 724.0173 479.6375 724.1172 481.6375 723.2673 C 482.1875 723.0673 482.4875 723.6172 482.8875 723.8173 C 483.7375 722.8672 484.0375 721.3173 484.3375 719.9673 C 483.2375 719.1672 483.1875 721.0673 482.3375 721.3173 C 480.7375 722.9172 478.1875 723.5173 476.1375 722.5673 C 471.9875 720.4673 471.4875 715.9172 471.2875 711.7173 C 471.5875 708.5673 472.2875 705.4172 475.0875 703.5173 C 476.5875 702.8173 478.4875 702.4673 480.1875 702.9172 C 481.7875 703.3173 482.9875 704.8173 484.2375 705.8672 C 485.0375 705.4673 484.1875 704.9673 484.1375 704.5173 C 481.8375 701.8672 478.1875 701.0673 474.8875 702.1172 C 470.7375 703.6172 469.2375 707.9172 468.8875 711.8672 C 468.8875 716.5173 470.3875 721.3672 474.9875 723.3672 C f 487.1875 703.3672 m 487.3875 709.6172 487.2375 716.3173 487.2875 722.3672 C 486.8375 722.8672 486.1875 722.9172 485.5875 723.0173 C 485.5875 723.4673 L 487.3875 723.6172 489.4375 723.6172 491.2375 723.4673 C 491.1875 722.3672 489.6375 723.3672 489.4375 722.1172 C 489.2875 719.4172 489.2875 716.4673 489.4375 713.7673 C 497.0875 722.0173 L 497.4375 723.1672 495.8875 722.7173 495.8875 723.4673 C 497.4375 723.6172 499.2375 723.6172 500.8375 723.4673 C 500.6875 722.5673 499.4375 722.9673 498.8875 722.3672 C 491.5875 714.6672 L 491.5875 714.3173 L 500.7375 703.2673 L 501.1875 702.4673 502.2875 702.7173 502.6375 702.0173 C 501.6375 701.6672 500.2875 701.7673 499.2375 701.9172 C 495.6875 705.8173 492.8375 709.8672 489.4375 713.7673 C 489.0375 710.3173 489.1875 706.5673 489.3375 703.0673 C 489.6875 702.2173 491.0375 703.1172 490.9875 702.0173 C 485.2375 702.0173 L 485.3375 703.1672 486.9875 702.0673 487.1875 703.3672 C f U LB %AI5_EndLayer-- %%PageTrailer gsave annotatepage grestore showpage %%Trailer Adobe_IllustratorA_AI5 /terminate get exec Adobe_level2_AI5 /terminate get exec %%EOF \ No newline at end of file diff --git a/doc/papers/3dim2007.pdf b/doc/papers/3dim2007.pdf new file mode 100644 index 0000000..55d4e65 Binary files /dev/null and b/doc/papers/3dim2007.pdf differ diff --git a/doc/papers/3dpvt2008.pdf b/doc/papers/3dpvt2008.pdf new file mode 100644 index 0000000..ba6fe8d Binary files /dev/null and b/doc/papers/3dpvt2008.pdf differ diff --git a/doc/papers/3dresearch2011.pdf b/doc/papers/3dresearch2011.pdf new file mode 100644 index 0000000..6f674c8 Binary files /dev/null and b/doc/papers/3dresearch2011.pdf differ diff --git a/doc/papers/cviu2010.pdf b/doc/papers/cviu2010.pdf new file mode 100644 index 0000000..0173ec6 Binary files /dev/null and b/doc/papers/cviu2010.pdf differ diff --git a/doc/papers/ecmr2007.pdf b/doc/papers/ecmr2007.pdf new file mode 100644 index 0000000..c959f46 --- /dev/null +++ b/doc/papers/ecmr2007.pdf @@ -0,0 +1,6112 @@ +%PDF-1.2 +7 0 obj +<< +/Type/Encoding +/Differences[1/dotaccent/fi/fl/fraction/hungarumlaut/Lslash/lslash/ogonek/ring 11/breve/minus +14/Zcaron/zcaron/caron/dotlessi/dotlessj/ff/ffi/ffl/notequal/infinity/lessequal/greaterequal/partialdiff/summation/product/pi/grave/quotesingle/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde +128/Euro/integral/quotesinglbase/florin/quotedblbase/ellipsis/dagger/daggerdbl/circumflex/perthousand/Scaron/guilsinglleft/OE/Omega/radical/approxequal +147/quotedblleft/quotedblright/bullet/endash/emdash/tilde/trademark/scaron/guilsinglright/oe/Delta/lozenge/Ydieresis +161/exclamdown/cent/sterling/currency/yen/brokenbar/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine/guillemotright/onequarter/onehalf/threequarters/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis] +>> +endobj +10 0 obj +<< +/Encoding 7 0 R +/Type/Font +/Subtype/Type1 +/Name/F1 +/FontDescriptor 9 0 R +/BaseFont/ECVAON+NimbusRomNo9L-Regu +/FirstChar 1 +/LastChar 255 +/Widths[333 556 556 167 333 611 278 333 333 0 333 564 0 611 444 333 278 0 0 0 0 0 +0 0 0 0 0 0 0 333 180 250 333 408 500 500 833 778 333 333 333 500 564 250 333 250 +278 500 500 500 500 500 500 500 500 500 500 278 278 564 564 564 444 921 722 667 667 +722 611 556 722 722 333 389 722 611 889 722 722 556 722 667 556 611 722 722 944 722 +722 611 333 278 333 469 500 333 444 500 444 500 444 333 500 500 278 278 500 278 778 +500 500 500 500 333 389 278 500 500 722 500 500 444 480 200 480 541 0 0 0 333 500 +444 1000 500 500 333 1000 556 333 889 0 0 0 0 0 0 444 444 350 500 1000 333 980 389 +333 722 0 0 722 0 333 500 500 500 500 200 500 333 760 276 500 564 333 760 333 400 +564 300 300 333 500 453 250 333 300 310 500 750 750 750 444 722 722 722 722 722 722 +889 667 611 611 611 611 333 333 333 333 722 722 722 722 722 722 722 564 722 722 722 +722 722 722 556 500 444 444 444 444 444 444 667 444 444 444 444 444 278 278 278 278 +500 500 500 500 500 500 500 564 500 500 500 500 500 500 500 500] +>> +endobj +13 0 obj +<< +/Encoding 7 0 R +/Type/Font +/Subtype/Type1 +/Name/F2 +/FontDescriptor 12 0 R +/BaseFont/BECENO+NimbusRomNo9L-ReguItal +/FirstChar 1 +/LastChar 255 +/Widths[333 500 500 167 333 556 278 333 333 0 333 675 0 556 389 333 278 0 0 0 0 0 +0 0 0 0 0 0 0 333 214 250 333 420 500 500 833 778 333 333 333 500 675 250 333 250 +278 500 500 500 500 500 500 500 500 500 500 333 333 675 675 675 500 920 611 611 667 +722 611 611 722 722 333 444 667 556 833 667 722 611 722 611 500 556 722 611 833 611 +556 556 389 278 389 422 500 333 500 500 444 500 444 278 500 500 278 278 444 278 722 +500 500 500 500 389 389 278 500 444 667 444 444 389 400 275 400 541 0 0 0 333 500 +556 889 500 500 333 1000 500 333 944 0 0 0 0 0 0 556 556 350 500 889 333 980 389 +333 667 0 0 556 0 389 500 500 500 500 275 500 333 760 276 500 675 333 760 333 400 +675 300 300 333 500 523 250 333 300 310 500 750 750 750 500 611 611 611 611 611 611 +889 667 611 611 611 611 333 333 333 333 722 667 722 722 722 722 722 675 722 722 722 +722 722 556 611 500 500 500 500 500 500 500 667 444 444 444 444 444 278 278 278 278 +500 500 500 500 500 500 500 675 500 500 500 500 500 444 500 444] +>> +endobj +16 0 obj +<< +/Encoding 7 0 R +/Type/Font +/Subtype/Type1 +/Name/F3 +/FontDescriptor 15 0 R +/BaseFont/LAQFRY+NimbusMonL-Regu +/FirstChar 1 +/LastChar 255 +/Widths[600 600 600 600 600 600 600 600 600 0 600 600 0 600 600 600 600 0 0 0 0 0 +0 0 0 0 0 0 0 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 +600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 +600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 +600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 +600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 0 0 0 600 600 +600 600 600 600 600 600 600 600 600 0 0 0 0 0 0 600 600 600 600 600 600 600 600 600 +600 0 0 600 0 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 +600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 +600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 +600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 +600 600 600 600 600 600 600 600 600 600 600 600 600 600 600] +>> +endobj +19 0 obj +<< +/Encoding 7 0 R +/Type/Font +/Subtype/Type1 +/Name/F4 +/FontDescriptor 18 0 R +/BaseFont/DPNLEX+NimbusRomNo9L-MediItal +/FirstChar 1 +/LastChar 255 +/Widths[333 556 556 167 333 611 278 333 333 0 333 606 0 611 389 333 278 0 0 0 0 0 +0 0 0 0 0 0 0 333 278 250 389 555 500 500 833 778 333 333 333 500 570 250 333 250 +278 500 500 500 500 500 500 500 500 500 500 333 333 570 570 570 500 832 667 667 667 +722 667 667 722 778 389 500 667 611 889 722 722 611 722 667 556 611 722 667 889 667 +611 611 333 278 333 570 500 333 500 500 444 500 444 333 500 556 278 278 500 278 778 +556 500 500 500 389 389 278 556 444 667 500 444 389 348 220 348 570 0 0 0 333 500 +500 1000 500 500 333 1000 556 333 944 0 0 0 0 0 0 500 500 350 500 1000 333 1000 389 +333 722 0 0 611 0 389 500 500 500 500 220 500 333 747 266 500 606 333 747 333 400 +570 300 300 333 576 500 250 333 300 300 500 750 750 750 500 667 667 667 667 667 667 +944 667 667 667 667 667 389 389 389 389 722 722 722 722 722 722 722 570 722 722 722 +722 722 611 611 500 500 500 500 500 500 500 722 444 444 444 444 444 278 278 278 278 +500 556 500 500 500 500 500 570 500 556 556 556 556 444 500 444] +>> +endobj +22 0 obj +<< +/Encoding 7 0 R +/Type/Font +/Subtype/Type1 +/Name/F5 +/FontDescriptor 21 0 R +/BaseFont/KXVUVG+NimbusRomNo9L-Medi +/FirstChar 1 +/LastChar 255 +/Widths[333 556 556 167 333 667 278 333 333 0 333 570 0 667 444 333 278 0 0 0 0 0 +0 0 0 0 0 0 0 333 278 250 333 555 500 500 1000 833 333 333 333 500 570 250 333 250 +278 500 500 500 500 500 500 500 500 500 500 333 333 570 570 570 500 930 722 667 722 +722 667 611 778 778 389 500 778 667 944 722 778 611 778 722 556 667 722 722 1000 +722 722 667 333 278 333 581 500 333 500 556 444 556 444 333 500 556 278 333 556 278 +833 556 500 556 556 444 389 333 556 500 722 500 500 444 394 220 394 520 0 0 0 333 +500 500 1000 500 500 333 1000 556 333 1000 0 0 0 0 0 0 500 500 350 500 1000 333 1000 +389 333 722 0 0 722 0 333 500 500 500 500 220 500 333 747 300 500 570 333 747 333 +400 570 300 300 333 556 540 250 333 300 330 500 750 750 750 500 722 722 722 722 722 +722 1000 722 667 667 667 667 389 389 389 389 722 722 778 778 778 778 778 570 778 +722 722 722 722 722 611 556 500 500 500 500 500 500 722 444 444 444 444 444 278 278 +278 278 500 556 500 500 500 500 500 570 500 556 556 556 556 500 556 500] +>> +endobj +23 0 obj +<< +/Type/Encoding +/Differences[0/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/alpha/beta/gamma/delta/epsilon1/zeta/eta/theta/iota/kappa/lambda/mu/nu/xi/pi/rho/sigma/tau/upsilon/phi/chi/psi/omega/epsilon/theta1/pi1/rho1/sigma1/phi1/arrowlefttophalf/arrowleftbothalf/arrowrighttophalf/arrowrightbothalf/arrowhookleft/arrowhookright/triangleright/triangleleft/zerooldstyle/oneoldstyle/twooldstyle/threeoldstyle/fouroldstyle/fiveoldstyle/sixoldstyle/sevenoldstyle/eightoldstyle/nineoldstyle/period/comma/less/slash/greater/star/partialdiff/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/flat/natural/sharp/slurbelow/slurabove/lscript/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/dotlessi/dotlessj/weierstrass/vector/tie/psi +160/space/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi 173/Omega/alpha/beta/gamma/delta/epsilon1/zeta/eta/theta/iota/kappa/lambda/mu/nu/xi/pi/rho/sigma/tau/upsilon/phi/chi/psi/tie] +>> +endobj +26 0 obj +<< +/Encoding 23 0 R +/Type/Font +/Subtype/Type1 +/Name/F6 +/FontDescriptor 25 0 R +/BaseFont/OZLLCB+CMMI10 +/FirstChar 33 +/LastChar 196 +/Widths[622.5 466.3 591.4 828.1 517 362.8 654.2 1000 1000 1000 1000 277.8 277.8 500 +500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 777.8 500 777.8 500 530.9 +750 758.5 714.7 827.9 738.2 643.1 786.2 831.3 439.6 554.5 849.3 680.6 970.1 803.5 +762.8 642 790.6 759.3 613.2 584.4 682.8 583.3 944.4 828.5 580.6 682.6 388.9 388.9 +388.9 1000 1000 416.7 528.6 429.2 432.8 520.5 465.6 489.6 477 576.2 344.5 411.8 520.6 +298.4 878 600.2 484.7 503.1 446.4 451.2 468.7 361.1 572.5 484.7 715.9 571.5 490.3 +465 322.5 384 636.5 500 277.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 615.3 833.3 762.8 694.4 742.4 831.3 779.9 583.3 666.7 612.2 0 0 772.4 +639.7 565.6 517.7 444.4 405.9 437.5 496.5 469.4 353.9 576.2 583.3 602.5 494 437.5 +570 517 571.4 437.2 540.3 595.8 625.7 651.4 277.8] +>> +endobj +27 0 obj +<< +/Type/Encoding +/Differences[0/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/exclam/quotedblright/numbersign/dollar/percent/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/exclamdown/equal/questiondown/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/quotedblleft/bracketright/circumflex/dotaccent/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/endash/emdash/hungarumlaut/tilde/dieresis/suppress +160/space/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi 173/Omega/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/dieresis] +>> +endobj +30 0 obj +<< +/Encoding 27 0 R +/Type/Font +/Subtype/Type1 +/Name/F7 +/FontDescriptor 29 0 R +/BaseFont/ADFDHS+CMR10 +/FirstChar 33 +/LastChar 196 +/Widths[277.8 500 833.3 500 833.3 777.8 277.8 388.9 388.9 500 777.8 277.8 333.3 277.8 +500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 277.8 777.8 472.2 472.2 777.8 +750 708.3 722.2 763.9 680.6 652.8 784.7 750 361.1 513.9 777.8 625 916.7 750 777.8 +680.6 777.8 736.1 555.6 722.2 750 750 1027.8 750 750 611.1 277.8 500 277.8 500 277.8 +277.8 500 555.6 444.4 555.6 444.4 305.6 500 555.6 277.8 305.6 527.8 277.8 833.3 555.6 +500 555.6 527.8 391.7 394.4 388.9 555.6 527.8 722.2 527.8 527.8 444.4 500 1000 500 +500 500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 625 833.3 +777.8 694.4 666.7 750 722.2 777.8 722.2 777.8 0 0 722.2 583.3 555.6 555.6 833.3 833.3 +277.8 305.6 500 500 500 500 500 750 444.4 500 722.2 777.8 500 902.8 1013.9 777.8 +277.8 500] +>> +endobj +32 0 obj +<< +/Filter[/FlateDecode] +/Length 4504 +>> +stream +x跁ZKw廴鞭鏦h7儡蚒靫畆3:眆6 5xXV~}戢A俍 汉胡]锲嶇z尥 ?唿﨧忸覜千(莨^t&n<禅洴E;Pl0p=熓 伉憮鱵U櫔麿>杕迟喲蝘煥=鏢7}糖釾6蟁{j{ 揊n溰l冊蛌<饪趠;枀痉}]uA剧(I\紺7艄鱙s鐼>H痏y唄琥),+惴4H6L舚4絃湨佞Y祛b*i拡)餂a,莍4鏪}字輨!t悭i +迟9稡鰗S~3斻難线&咚ya屽bY閖絫D3~*6佺|恿#谋~6}7齪饼 屲Lv/l袻哋藛.宝;鍺M筸y 曾='荷鍿 b7嘿啤rS鸻祗b蕏 if朴閒'蓧+"?e畧黡 +F,4&9咚~鉭N墼i),鵀颦JD缃汩iN񲣣軵剮檉(橹緊|1稝t吀ZbP蔫嶉"g入甊婑ɡ暐寂/鍃$j?v::鋍.P讝W*鲘旟酨b誜mO#V$缀夹唃Z62琕@[nZZ)憖刷襦裝壹拞儜Q!9O>5∮l2守驇先 8槟qK;窤猐;W罊忤-6繦e#|q原瀱駦U<=核杪电]鞊Z癘4滐s访薷,9翦寪!R觔/ㄊ^.楎x銌I鎡y勤匑骳4虯耥呢葩苼改tX汻Y蹆B烴Q堅倏畺袧kx:锶 iaF|C向憲U/+VpE=Uc-Z9#灵膮b鷟惗SU玌1<}窦陁b楣想汍8氌h:繎4|衈ゑ蔘邬;"Πg浧⒐7.#%F蛧o&R迷蛌2/浖躃 3m}覓秩 馶鉬;蹿酭WF,龉甌鮄6m疺觷+調bF喝Y 娯o厔:櫑册躑-鉲q&蟤O[琲 嫕燐;~睿h|{殑坔00E鈢*yc趇>看E甋-鋂旭鍗灒墅鬸}o绺諳亻9e墰勳dX At7ǜ蜂﹝Bt 墳戬沵 &侒/Zo饆芜w 歿 +童椝仡萶J鶔=Y荊3[坬@棃V苓厪" 禊iβi蚲爻@"7迕嘺Y嫏e孵e#诞WJ迌)2篅;4R貝,%謧魰,嘊Q盲}燻仾[R芧鎖齀^镮社}qtQ鮵IYe6H晽e莸=澝(x虇捴_魗yPG駖R] ┥譨45硿 +礈4 +(ZBc.;懛Yi痠l浂~$戙饝剳蠌嘿鍎詰蟘XvI@覤┚癛=浏僼3Ne琢z嗴*绿5 +炇*膿=_偤("j/*7だi虢殪1KQ{緊銾(>W1`?B蓋7.蛩6寈奥a,X*枀騊>#竅.d@柗趈[4{案4#衲 +\啸嵤 耿诰7浓8"2菰$^aC搨]r 笁7礪1 +×HC鹬H/旃NF寻鮴苪j'颣姸韷泍環緐犓硋E 8罟劊瓗 .w#駵咺齖dR傇驮o`Y沩7錒炮秉劂jd豷鞈夤絻嗆Z﹡幘两侸伕_黂瓘,惣EC6e舦/恼5捪G伳*鈨爳#_U鴴@种诘1八掯.0tV稪U缯晝7}.M@謽et逎,xT>W頌稡0栒H2(U98LfrR撃彦繸摑巃陯0bG 怣0告`礓g絧尗Isb(擯=$8oK]翃虹鲑;慂x蘂&>勷R7∠`<8預B6岔彟イ\萇,嚕郍9f "M;鍿{+/擊#塿XsS53爱lV蒻JP}蕦犌I 略瘈檎+XmW脡鹇C孳CF柨婲A癬淿~O*燒2Ⅺ鏆V)X!FiJ鰤攋j IS.oM釶牎氇/'Q@+Q壿b詐暱N 鵰熴 +⺈&>9;齿a棧湈誊呀恌0受1Qi孙覗0?3#嬸啅5妲,B樌&┮Lu礔!寃"脿慼嵁y)B燘N倪@;蕕o帝Qu;5,!"昄鐿v麼 +b{闌鮵髄 邘BmPZ/ \{俤蟊 HA溠Lj馪M漟.4杋覈'Cz駊+櫂e預z镗8v 箑 偃洹錤暾,3 沇贙Ys W(罀$俼Y%I<-x瀦._*y㎎帚J郫F淍,@緋Le班敧鞤弹褄藾 )燞豧P餷UBY磧(@jF橩S譾噏P怯v=ge +%?:蓹1菽tP偍rl鮡撃葠茷u|<8>S{(顝g-侤FZ-镈+#3苀Ulg-%9#b赅B繞噒㧐_L濞攪vH+K檤j?摝簃#[lS6,9浣纵1去匤!?h*06頌$;娌7$駫姶EL9g 箺旒:b茐箸'囘乆:b腴1{繱蚏@:9d?巉厷H玽W禴KL崋﹏!蘊嚈颉鑖狽 _@鲢rc愊8濧富&S7 g戋 癄&r諸).dC载v鞭^6!劒痽K剧>ij彫糓9愆 ?0E_蝭絭5烔?滪鈆縜фlLH娂蒶#デF)畦涤71;鸂睅>zq:豸裷翝g9$'e腥騙礃5鴃(払=0喺懩 j豫FK`祖JD.;籶=﹡淴親[蹗<*9Do3 驯課)q旰CfsQpyF*譁!櫽H荒Mc蚈u9胪m組蔪\y +蠍羸^虖?検$;倫銓"q +毽#w逬yJ鼱Vr撘摷 9唫 柰dNH扬=!XLc%誴x,榘眔墜腋W<鰅)l铅途m W&彂/5?I牨S_v莥4$)畒&g*()飴)蟮q偀擉跧Q`_`8J>騟S"垃Y執妮-蝚&紶=抒司PV?ZD6鱜萍┌B駼珗愽?)"Oe%$-瀺崪锐婑⒄俊9qa辬迠飰欟牑 +A'蒩#韊屋觝;缫w邨鍵03}亳f痡O;過瞣}旽m験[廾c簪5> 礞=A)闟裿T倃:r儡6kE嗫恞+4(り鼢鱌 ?^c唍蹑熑,Ju.pr薛 +'鶆oz悊R牵5^a k琬)?\mP侽v摠黴/ヘ6lT謼6+rz]H4hひ^塃璉鎌;DV仧i脌3*N持櫟昙EP屇囑 r傛M&d族眏」髪剂9.f嚸湛犑竒媕: +替僨@頫y瘄7觚&臎(? <聧'T觇#d$Y岧衞H公z充x*犗廙[衩篌脍r┎划/+Y = 怸iхc莍4甸飈踱t妫: +6>?╃猜+Q杀 ki栙衝b砲戰0ux鸔6t<瞚細{$蘺宵鉓鑸厞鎯Dpl"尿O)謳B5絁<楆u瓥鼽逨d弴驵泓偼 x#R4{+暺,^8弸1隲 ++蔀騊ir喑焳,'鵜厯 嬰A}閲餾禥=U{$dladq鵉,廿 %=瀗"墱[%F f,%b廛5鹠Eq廣3鑫]a 贫}K魃遂遀魍牂辩-璃_喀q錕$獂h蛞鼤畿蹉凼o~﹂8 疃9炫q綵L观%c餹FΕa>伳穳峯揺翌崰芯钁 邙> u 澌乑M┫唲 捱 +0*1i#玢(H簨婾候d肸7? B2,q*珸枲歫P璕g+:W鸿e5粒鯳鋱]諛訸桲5 898諚閩[!癘Q萍椏饘z錈U睤b其rl愒瓖0争a:C辏;=茯cカZ\k.x蚓w0滖5烊p赩狨ClBN"|o打3至\ r駙2$a脐厞a?湌B毁蚎9q蕯 ]zV勣k +,略(e砯聪A历懼黙9yC 箸|稂鹀肁$ Da ^Fe_仸蚘皼汖赝\A8 酀4B3 qH-/蹨磨P4+C:?u凒O"2篩?礼~葇]弧齥嫠鍾繀R穏馅>3 E遤坹 +?G咉颪I|9I凴9<鈇綌|n掑H<7嵨挛覫顠櫓╆僼<鵢繾'叀岍橽 +襽錋砾_狔姳<骏i揓 +endstream +endobj +34 0 obj +<< +/F1 10 0 R +/F2 13 0 R +/F3 16 0 R +/F4 19 0 R +/F5 22 0 R +/F6 26 0 R +/F7 30 0 R +>> +endobj +6 0 obj +<< +/ProcSet[/PDF/Text/ImageC] +/Font 34 0 R +>> +endobj +35 0 obj +<< +/Filter[/FlateDecode] +/Width 83 +/Height 117 +/BitsPerComponent 8 +/ColorSpace/DeviceRGB +/Length 788 +>> +stream +x陧\藪 毠ve廊O X嚟濌NBb恊檛飬B$躑{s棓@[Lc般JI杫鉳甌漛.B+Al夈単=磨> V翆鬓$7v砜4蟇#%M.;0颖烳($鬈睩3_委澷hS尡,JS檷爂忡<銑T*{g薁G+~!蛢Q:櫢: 貤vM>yq襲viX"酦妇nvo綢n&&$=痦伕@猢叝斎骢^;1O拈pp?eeRk)O"濗闾<7n暈>酚~1犽^I鑦锶X'歯R珈\秱n匓( +匓“ b +endstream +endobj +40 0 obj +<< +/Encoding 27 0 R +/Type/Font +/Subtype/Type1 +/Name/F8 +/FontDescriptor 39 0 R +/BaseFont/TUVJZO+CMBX10 +/FirstChar 33 +/LastChar 196 +/Widths[350 602.8 958.3 575 958.3 894.4 319.4 447.2 447.2 575 894.4 319.4 383.3 319.4 +575 575 575 575 575 575 575 575 575 575 575 319.4 319.4 350 894.4 543.1 543.1 894.4 +869.4 818.1 830.6 881.9 755.6 723.6 904.2 900 436.1 594.4 901.4 691.7 1091.7 900 +863.9 786.1 863.9 862.5 638.9 800 884.7 869.4 1188.9 869.4 869.4 702.8 319.4 602.8 +319.4 575 319.4 319.4 559 638.9 511.1 638.9 527.1 351.4 575 638.9 319.4 351.4 606.9 +319.4 958.3 638.9 575 638.9 606.9 473.6 453.6 447.2 638.9 606.9 830.6 606.9 606.9 +511.1 575 1150 575 575 575 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 691.7 958.3 894.4 805.6 766.7 900 830.6 894.4 830.6 894.4 0 0 830.6 670.8 +638.9 638.9 958.3 958.3 319.4 351.4 575 575 575 575 575 869.4 511.1 597.2 830.6 894.4 +575 1041.7 1169.4 894.4 319.4 575] +>> +endobj +43 0 obj +<< +/Encoding 23 0 R +/Type/Font +/Subtype/Type1 +/Name/F9 +/FontDescriptor 42 0 R +/BaseFont/JEEXPI+CMMI7 +/FirstChar 33 +/LastChar 196 +/Widths[719.7 539.7 689.9 950 592.7 439.2 751.4 1138.9 1138.9 1138.9 1138.9 339.3 +339.3 585.3 585.3 585.3 585.3 585.3 585.3 585.3 585.3 585.3 585.3 585.3 585.3 339.3 +339.3 892.9 585.3 892.9 585.3 610.1 859.1 863.2 819.4 934.1 838.7 724.5 889.4 935.6 +506.3 632 959.9 783.7 1089.4 904.9 868.9 727.3 899.7 860.6 701.5 674.8 778.2 674.6 +1074.4 936.9 671.5 778.4 462.3 462.3 462.3 1138.9 1138.9 478.2 619.7 502.4 510.5 +594.7 542 557.1 557.3 668.8 404.2 472.7 607.3 361.3 1013.7 706.2 563.9 588.9 523.6 +530.4 539.2 431.6 675.4 571.4 826.4 647.8 579.4 545.8 398.6 442 730.1 585.3 339.3 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 693.8 954.4 868.9 +797.6 844.5 935.6 886.3 677.6 769.8 716.9 0 0 880 742.7 647.8 600.1 519.2 476.1 519.8 +588.6 544.1 422.8 668.8 677.6 694.6 572.8 519.8 668 592.7 662 526.8 632.9 686.9 713.8 +756 339.3] +>> +endobj +46 0 obj +<< +/Encoding 23 0 R +/Type/Font +/Subtype/Type1 +/Name/F10 +/FontDescriptor 45 0 R +/BaseFont/WZHSUD+CMMI5 +/FirstChar 33 +/LastChar 196 +/Widths[886.4 674.7 855.3 1144.8 726 578.1 918.1 1361.1 1361.1 1361.1 1361.1 458.3 +458.3 736.1 736.1 736.1 736.1 736.1 736.1 736.1 736.1 736.1 736.1 736.1 736.1 458.3 +458.3 1083.3 736.1 1083.3 736.1 749 1036.1 1037 996 1109.9 1007 867.4 1064 1110.4 +626.7 772.9 1138.9 955.6 1284 1075.7 1047.5 875.4 1082.2 1030 856.3 832.3 943.9 827.8 +1279.2 1112.9 824.3 943.1 597.2 597.2 597.2 1361.1 1361.1 597.2 774.4 633.3 649.4 +739.7 677 684 700.6 827.6 533.6 588.2 758.1 480.3 1228 880.8 702.8 739.7 658.9 671.3 +670.1 563.7 846.1 722.2 1009 791.7 730.6 688.7 533.6 553.5 889.2 736.1 458.3 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 832.6 1152.8 1047.5 +966.7 1017.7 1110.4 1065.3 840.3 944.5 893.5 0 0 1060.6 913.3 790.6 746.9 654.2 613.5 +666.7 743.8 677.1 549.8 827.6 840.3 849.8 712 666.7 831.1 726 815.2 681.6 791.7 841.7 +864.6 930.6 458.3] +>> +endobj +49 0 obj +<< +/Type/Font +/Subtype/Type1 +/Name/F11 +/FontDescriptor 48 0 R +/BaseFont/AKENVG+CMEX10 +/FirstChar 33 +/LastChar 196 +/Widths[791.7 583.3 583.3 638.9 638.9 638.9 638.9 805.6 805.6 805.6 805.6 1277.8 +1277.8 811.1 811.1 875 875 666.7 666.7 666.7 666.7 666.7 666.7 888.9 888.9 888.9 +888.9 888.9 888.9 888.9 666.7 875 875 875 875 611.1 611.1 833.3 1111.1 472.2 555.6 +1111.1 1511.1 1111.1 1511.1 1111.1 1511.1 1055.6 944.4 472.2 833.3 833.3 833.3 833.3 +833.3 1444.4 1277.8 555.6 1111.1 1111.1 1111.1 1111.1 1111.1 944.4 1277.8 555.6 1000 +1444.4 555.6 1000 1444.4 472.2 472.2 527.8 527.8 527.8 527.8 666.7 666.7 1000 1000 +1000 1000 1055.6 1055.6 1055.6 777.8 666.7 666.7 450 450 450 450 777.8 777.8 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 458.3 458.3 416.7 416.7 +472.2 472.2 472.2 472.2 583.3 583.3 0 0 472.2 472.2 333.3 555.6 577.8 577.8 597.2 +597.2 736.1 736.1 527.8 527.8 583.3 583.3 583.3 583.3 750 750 750 750 1044.4 1044.4 +791.7 777.8] +>> +endobj +52 0 obj +<< +/Encoding 27 0 R +/Type/Font +/Subtype/Type1 +/Name/F12 +/FontDescriptor 51 0 R +/BaseFont/OVJVAS+CMR7 +/FirstChar 33 +/LastChar 196 +/Widths[323.4 569.4 938.5 569.4 938.5 877 323.4 446.4 446.4 569.4 877 323.4 384.9 +323.4 569.4 569.4 569.4 569.4 569.4 569.4 569.4 569.4 569.4 569.4 569.4 323.4 323.4 +323.4 877 538.7 538.7 877 843.3 798.6 815.5 860.1 767.9 737.1 883.9 843.3 412.7 583.3 +874 706.4 1027.8 843.3 877 767.9 877 829.4 631 815.5 843.3 843.3 1150.8 843.3 843.3 +692.5 323.4 569.4 323.4 569.4 323.4 323.4 569.4 631 507.9 631 507.9 354.2 569.4 631 +323.4 354.2 600.2 323.4 938.5 631 569.4 631 600.2 446.4 452.6 446.4 631 600.2 815.5 +600.2 600.2 507.9 569.4 1138.9 569.4 569.4 569.4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 706.4 938.5 877 781.8 754 843.3 815.5 877 815.5 +877 0 0 815.5 677.6 646.8 646.8 970.2 970.2 323.4 354.2 569.4 569.4 569.4 569.4 569.4 +843.3 507.9 569.4 815.5 877 569.4 1013.9 1136.9 877 323.4 569.4] +>> +endobj +53 0 obj +<< +/Type/Encoding +/Differences[0/minus/periodcentered/multiply/asteriskmath/divide/diamondmath/plusminus/minusplus/circleplus/circleminus/circlemultiply/circledivide/circledot/circlecopyrt/openbullet/bullet/equivasymptotic/equivalence/reflexsubset/reflexsuperset/lessequal/greaterequal/precedesequal/followsequal/similar/approxequal/propersubset/propersuperset/lessmuch/greatermuch/precedes/follows/arrowleft/arrowright/arrowup/arrowdown/arrowboth/arrownortheast/arrowsoutheast/similarequal/arrowdblleft/arrowdblright/arrowdblup/arrowdbldown/arrowdblboth/arrownorthwest/arrowsouthwest/proportional/prime/infinity/element/owner/triangle/triangleinv/negationslash/mapsto/universal/existential/logicalnot/emptyset/Rfractur/Ifractur/latticetop/perpendicular/aleph/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/union/intersection/unionmulti/logicaland/logicalor/turnstileleft/turnstileright/floorleft/floorright/ceilingleft/ceilingright/braceleft/braceright/angbracketleft/angbracketright/bar/bardbl/arrowbothv/arrowdblbothv/backslash/wreathproduct/radical/coproduct/nabla/integral/unionsq/intersectionsq/subsetsqequal/supersetsqequal/section/dagger/daggerdbl/paragraph/club/diamond/heart/spade/arrowleft +161/minus/periodcentered/multiply/asteriskmath/divide/diamondmath/plusminus/minusplus/circleplus/circleminus +173/circlemultiply/circledivide/circledot/circlecopyrt/openbullet/bullet/equivasymptotic/equivalence/reflexsubset/reflexsuperset/lessequal/greaterequal/precedesequal/followsequal/similar/approxequal/propersubset/propersuperset/lessmuch/greatermuch/precedes/follows/arrowleft/spade] +>> +endobj +56 0 obj +<< +/Encoding 53 0 R +/Type/Font +/Subtype/Type1 +/Name/F13 +/FontDescriptor 55 0 R +/BaseFont/QTMLEN+CMSY10 +/FirstChar 33 +/LastChar 196 +/Widths[1000 500 500 1000 1000 1000 777.8 1000 1000 611.1 611.1 1000 1000 1000 777.8 +275 1000 666.7 666.7 888.9 888.9 0 0 555.6 555.6 666.7 500 722.2 722.2 777.8 777.8 +611.1 798.5 656.8 526.5 771.4 527.8 718.7 594.9 844.5 544.5 677.8 762 689.7 1200.9 +820.5 796.1 695.6 816.7 847.5 605.6 544.6 625.8 612.8 987.8 713.3 668.3 724.7 666.7 +666.7 666.7 666.7 666.7 611.1 611.1 444.4 444.4 444.4 444.4 500 500 388.9 388.9 277.8 +500 500 611.1 500 277.8 833.3 750 833.3 416.7 666.7 666.7 777.8 777.8 444.4 444.4 +444.4 611.1 777.8 777.8 777.8 777.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 777.8 277.8 777.8 500 777.8 500 777.8 777.8 777.8 777.8 0 0 777.8 +777.8 777.8 1000 500 500 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 +777.8 777.8 1000 1000 777.8 777.8 1000 777.8] +>> +endobj +59 0 obj +<< +/Encoding 27 0 R +/Type/Font +/Subtype/Type1 +/Name/F14 +/FontDescriptor 58 0 R +/BaseFont/ZOSDNJ+CMBX7 +/FirstChar 33 +/LastChar 196 +/Widths[397.2 667.9 1073.4 647.2 1073.4 1002.4 363.1 505.2 505.2 647.2 1002.4 363.1 +434.1 363.1 647.2 647.2 647.2 647.2 647.2 647.2 647.2 647.2 647.2 647.2 647.2 363.1 +363.1 397.2 1002.4 611.7 611.7 1002.4 967.9 914.1 931.3 985.1 844.4 808.9 1011.5 +1002 479.4 665.5 1003.4 773.4 1215.1 1002 968.3 878.6 968.3 959.9 718.3 897.2 984.9 +967.9 1323 967.9 967.9 789.3 364 667.9 364 647.2 363.1 363.1 629.5 718.3 576.2 718.3 +592.4 398.6 647.2 718.3 363.1 398.6 682.7 363.1 1073.4 718.3 647.2 718.3 682.7 534.5 +512.3 505.2 718.3 682.7 931.3 682.7 682.7 576.2 647.2 1294.4 647.2 647.2 647.2 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 773.4 1073.4 1002.4 +896.8 860.3 1002 931.3 1002.4 931.3 1002.4 0 0 931.3 761.7 726.2 726.2 1089.3 1089.3 +363.1 398.6 647.2 647.2 647.2 647.2 647.2 967.9 576.2 668.8 931.3 1002.4 647.2 1162.7 +1304.8 1002.4 363.1 647.2] +>> +endobj +60 0 obj +<< +/Type/Encoding +/Differences[0/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/arrowup/arrowdown/quotesingle/exclamdown/questiondown/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/exclam/quotedblright/numbersign/dollar/percent/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/quotedblleft/bracketright/circumflex/dotaccent/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/endash/emdash/hungarumlaut/tilde/dieresis/suppress +160/space/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi 173/Omega/arrowup/arrowdown/quotesingle/exclamdown/questiondown/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/dieresis] +>> +endobj +63 0 obj +<< +/Encoding 60 0 R +/Type/Font +/Subtype/Type1 +/Name/F15 +/FontDescriptor 62 0 R +/BaseFont/NJLXDH+CMR5 +/FirstChar 33 +/LastChar 196 +/Widths[402.8 680.6 1097.2 680.6 1097.2 1027.8 402.8 541.7 541.7 680.6 1027.8 402.8 +472.2 402.8 680.6 680.6 680.6 680.6 680.6 680.6 680.6 680.6 680.6 680.6 680.6 402.8 +402.8 1027.8 1027.8 1027.8 645.8 1027.8 980.6 934.7 958.3 1004.2 900 865.3 1033.4 +980.6 494.5 691.7 1015.3 830.6 1188.9 980.6 1027.8 900 1027.8 969.5 750 958.3 980.6 +980.6 1327.8 980.6 980.6 819.5 402.8 680.6 402.8 680.6 402.8 402.8 680.6 750 611.1 +750 611.1 437.5 680.6 750 402.8 437.5 715.3 402.8 1097.2 750 680.6 750 715.3 541.7 +548.6 541.7 750 715.3 958.3 715.3 715.3 611.1 680.6 1361.1 680.6 680.6 680.6 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 830.6 1097.2 1027.8 +911.1 888.9 980.6 958.3 1027.8 958.3 1027.8 0 0 958.3 680.6 680.6 402.8 402.8 645.8 +402.8 437.5 680.6 680.6 680.6 680.6 680.6 980.6 611.1 680.6 958.3 1027.8 680.6 1177.8 +1316.7 1027.8 402.8 680.6] +>> +endobj +66 0 obj +<< +/Encoding 53 0 R +/Type/Font +/Subtype/Type1 +/Name/F16 +/FontDescriptor 65 0 R +/BaseFont/AGRETO+CMSY7 +/FirstChar 33 +/LastChar 196 +/Widths[1138.9 585.3 585.3 1138.9 1138.9 1138.9 892.9 1138.9 1138.9 708.3 708.3 1138.9 +1138.9 1138.9 892.9 329.4 1138.9 769.8 769.8 1015.9 1015.9 0 0 646.8 646.8 769.8 +585.3 831.4 831.4 892.9 892.9 708.3 917.6 753.4 620.2 889.5 616.1 818.4 688.5 978.6 +646.5 782.1 871.7 791.7 1342.7 935.6 905.8 809.2 935.9 981 702.2 647.8 717.8 719.9 +1135.1 818.9 764.4 823.1 769.8 769.8 769.8 769.8 769.8 708.3 708.3 523.8 523.8 523.8 +523.8 585.3 585.3 462.3 462.3 339.3 585.3 585.3 708.3 585.3 339.3 938.5 859.1 954.4 +493.6 769.8 769.8 892.9 892.9 523.8 523.8 523.8 708.3 892.9 892.9 892.9 892.9 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 892.9 339.3 892.9 585.3 +892.9 585.3 892.9 892.9 892.9 892.9 0 0 892.9 892.9 892.9 1138.9 585.3 585.3 892.9 +892.9 892.9 892.9 892.9 892.9 892.9 892.9 892.9 892.9 892.9 892.9 1138.9 1138.9 892.9 +892.9 1138.9 892.9] +>> +endobj +67 0 obj +<< +/Filter[/FlateDecode] +/Length 5827 +>> +stream +x陧<賠蹻掞撇1 z续捵c蛣虣`7HBF7Z敶欠oU@醜拻=;v_埡彫3洬(將枕>弋䙡瘰o*砫uq骋IFzモ05珛.yvu駉8" G瑣圔璚k -烆-1亜)+M僕D<骰|享E琼yr酭腤而?M盿呩pld曦天#楴\C仰W潄9,鈗j?$ j缉朗俒#邻m蛃n7镨顛Mh#蛲锨-1g嘆@h2㈩r圎1餼&,m鶹朳P赖鲄sG踳|p;楍9簲鷍乥.er8M副{^靕穩-槺坄/O镕漅s/鄅鮼Y痵:e蹃$ 被鲧'度0 + ^ +u`竄拳哏軬.!蝋? 6壴qsoL=p慌缋子B2閏仧K沸B^J腒禅鞒$ +靵洰般馲ca酭芖秹々/雑亙覅堩刓改壢憥帀Y +螧Z鞠3畡DlE\'e?, 丼c纹允鱾Q壙;RwT俆菱+a訵07拴?61求珖荀bA:.$摌橿N詼d =;&湈x鬪JE/kb4J6K賕: +蝭*湼lxn想y\sv=iKa忁8】=躈7Ph奀莅,鐷4哗M<)埍.檕@%j苷 q$僶愱皑| 珗_%謩擆}皨 弱Q鼮`崥埅茾炰=洞-,2J3猷毝躅渒坤嚫[x壻6> 器嵀*罖▕柬猪锨急-P.gq夣M韟榑荋穸a闤&鯍d f蒬b@硨覘#FR&+鏶k |.埭腪_XljワKx|=]W0r麙6EL!%揚8/挨 茎J遄赭;鷞A/锰`[豵r 驝#D餬:1[O"2窪o倕6哏%隶韭S诹X 锉咓C櫬暵v#f夥a^忺/Fs,#罱-3罟鸓棬N`o[t 鋷苣hb^FgH交z锸弖V郈0馉嘌M诗捅9硎巘v惃(%爿彆麗浛垠疯Yp懊9黥k [癹猙CJ^l乼U誤鷘\!赖\雾匮勾畵.捃)-0^v蝪罠k昘M塣@俚睓^忬5涅^O=闋1潻C泶閚甅肓a 莋礀2 8馁菫盭 r<$2L3X 固3K槱墐%]驁|陼狰蕢遟 - 烍槵2 +虀e领,q◥0TltR瓉[襽槷O壿"敩皷v購腹G{.f牵肧槊 #>v~Bx邙*ogTa29唣4溉m撖~:饇墨序/茯jXB 輬穙/lB鉤x7]= 嶑V煭Ms]┡E棼溰.糒骓齰簉j裲鹰絵椥v9TK噝;+吼萞{'搂0> 達跄養e坺`湤w擽鷙侁岰釽SHD 48潸a別皘蚰宸s隺u鬠‰)竊瓖(w譴溙m筡頖X臂⑩6扔#瘬84>C齛A}2N"駹Rc=+*誎kmg|5].^鄿譈 聁,L烍 pNE NR鋄!iOr㧟c淪+泀埯}t-扶H$膩}屝药=J+秎C.撘倕a9nX書vO 誼瓫邯X玱熗0碔褙誐竽蒈g%I黶兑 <!銥塈LL)o孳M<zD鲊"[X:{OE優劖倚J牯袬3V"(瀜Be勼N嘔騮哀O{D3哀8姺!鶼C诀?噟kf{T存4i(F続rx矃<纈笌&黾杢4'1rG铨觮(至lT設燃4胶_燝竅Z尞^瓇'~靫憱爽#2i;2B犭斕%}<猳墘>鉱# tPh孨F[e衖 !g鶫F/r 寚虡yX_Hn彗3Ce$"誏泚9B9 &媛0{M澤'`︷-苓罴x4褙l咇-喑l¦=i> 秬/缫豹闖[倝嶦喍饼蝝4鍆'髟<羥吝︷<:(*v鋅}圑 P焁C駃E((冡輦$+n陖梼!M搌菶簦^0曜ZU@h壧谧取0=纈紏2拨蛔:@> >A=掔+迁o衄d鲂\顲茶$d医檓 胡旪 !3 䦃Gx媀䦂% Cヽ搴s?綳鄭O掓徚X`,y0︳歡淴9翘 }氁4䙡佲槤覐糚騃/- ZbN ⒔堩翦嫔L 蝅4id捎BZ 岒f魡鑳销~顅夢纱+蠋b?畱亱 +c阜 Xk婎󭰺F 3z +纳9秵[c6$槁(侖鑡wpN_鄺驏竐颶鞌*-旚=湄蛏X' 雪憲yr)索閦 鍖9P懪曎虇m伴朇H褭稁跆谸 +档6締5浛ECXD镏証4;奰炊鄱'"翳>b堌KMyIPzUw3Wlv解#V孱PQl擌E 賖$庣,泩cI醣.鏇N鏡數刌/穖硕薡Y佢 忱z*娇搔夅燱資嚰镴:<# DV.pxP5Ra?J(僊 菛MMMa覉C肇D.l刂写'#x%c4z駪獄K4 铌j{蜤ケs +%凅 p纮rn亏EU峓%!:逭盭號槳猙.,粲 騩+H8 )`鬮D悳隖ELd椋6%鬛r+暡)慽 )b橔Y瞑)囪祟Jh y淝蕖-贛S^揨嶉ёjr擉甃塿[3塩,Q憉1E*泄癉鋬卪翆伖t梿娕f 疀cg!`褝-Z0祏SOk覲>%}x縛#冹&)腴U#霩蕊!Nb坴"徺奍8嗓}b L揷y惨8糲杞9 y'櫎l氦 ~v玄賋焹蟫餬梛%`5x/Z%AU⺶6諒M6yZ*針$焢舾%2ePF++逪^X)a +冰-埳醣a5d!?j,Z萀%VWsw[灠1.1a汆98 +酱|唘両堌?锯偼1"浰L薗饌S`a"A &u-溽垊鄶5`, ゴ落36囷撕苯"赙镯w8耬免筤娎讃捿樁辟O1|琿Zcd7f慚仗0cY\&N拰8:赀&I:ㄍ d e鑘檢ph箒 _JN双熚DP殺滗Q眚鎝啸4W<樐棒仃'虀(摼h峏鵳l z@漓B溷X菰0年8n_棴鞿5珿疗~邧7x啼醒襊屮欝桌0汳`A-6煆+槹⿺s^/g_ 壷M|!鮖豚9Md4d4絕垶9:R婎8O>R願qY槠'1i瑒{坨g餻O譓Y躳炎俎晹iv蟘霙蒝@入g溋它&M栠擴|槅运萗XbブY戰s仦$婙I牼-6躐P籴#騋|胈鹙駩3}(冻否7M經,阦訪諱5N$8\p<钱y泹.r谁 %艺碪78ロ.P蹂U嫡涞tcU煝{雾6i#攳 YV誃矡勖豴糌t沑せ:澶寋]遒tn 覨桕S叀@4牊.P鍏苌>擊R0If1亥萻犲j稲戓H7堂I 摳5'膿(9艶~濣漷NJ绍0{霚S|9*1rnVh +DOzы苄砚訛I毛d欦L@徥'x堄^7/L垀⒆ 蹖巐摺AyB&查T.饂w髄2攅谱〓鑙@歔妀腪%Uf攒 鷴鈌'v塤<$>/(Fy*罶伷B<搰$[熐=缈 鬹稔閅J烏r3)&陬2淾现Fs/}HU\霾Z{蝠1fK.坈 ` 悏"鷧匤9 L'税筱x%-悼 (揲l暋.蜻333D鱂2焄'駶?宠s龊0aE瞇$蝛r2) 晸E7%c芝60垆qF麜懎焒DZ*趸eD垆#R鴑OE$厦c0uux涅傡[ 岆犎R}\h侀 蔠璞ON-C斞琽X>v鄙Nd*F?"?鯃q}+鍱鶬躒9k蔌#蒊锶兟4j' 詵焌鋵1{畘阒i/a汶yV0 3U i 颚h*栄48蔆Sn8崷橜x齜/[墽阊87%#噰o8祉 妤便G嬥}9%1h滭3u痻芉蘏.eD蝩爨43#n5d^艣翋s躕擝抋爭﨣捚碨s 稌SzD衎B秾r喂=轙纮~算&,;爧}w籲必6c+蛥 X癲E#K=黊4豕荵*9瑇X焍襯)n桛)篦粣A日 *桀蔲k'磘&濢罵" +C: L 9szQ餌Q釠犱A桲4O鑓3腪 E樼攸鞚?賰7鷄衏碋p:滝苺i迣浯7MyC舐q?&拰4犳疓a +lR効@V ﹨yy:s'rn,箰X,1澒'8+S),葳麬 编濒昝蘿0Vl魃鑷9"}T蚃~}聒&溺尺(哈观U 墑o傇墫2K驚d +鉲=坽 棁Y:#攀%t膾 [-穇橊R擌襦譑姼:蓞E柁_ 犗3."蜏&娰o^_ 5骺S5d鯨螕[+0)鰜对%梗摽/Mu濣/{犤x[彸 +翍云┄__+邹 +endstream +endobj +68 0 obj +<< +/F1 10 0 R +/F7 30 0 R +/F6 26 0 R +/F2 13 0 R +/F8 40 0 R +/F9 43 0 R +/F10 46 0 R +/F11 49 0 R +/F12 52 0 R +/F13 56 0 R +/F14 59 0 R +/F15 63 0 R +/F16 66 0 R +>> +endobj +37 0 obj +<< +/ProcSet[/PDF/Text/ImageC] +/Font 68 0 R +>> +endobj +69 0 obj +<< +/Filter[/FlateDecode] +/Width 83 +/Height 117 +/BitsPerComponent 8 +/ColorSpace/DeviceRGB +/Length 876 +>> +stream +x陧\K掛0簖/鞼5o3,>Vz`者1X檇味抖蹲'-;柶徺Z_pA粇 鵻27 +9W+qO鵔舙怙>睫:Q +@舐=羔Y燕┳(9}R5>l=佰o)鲩Px聚失 +鄸~ 坎 t*熵*"tB肫* 児MT蠇.3梸O}椱k t!Q靟銆歟)捬V`9`-L摯]ws莉彑"怘脆A箩駏so9煷<⿳+<奋崹a~嗿AY>[O嫆/l蝣└饊[辧x +I黖jbc 7O澬哉媏[5R丂騃霽.P]WVYO羼<-"<N踅o晽呕;h=銪m驃$L(杹DmhH骐訖△倱@9/蚤綄9栟銜`^镉73导6㳠揩巁7⺗4彑莥裝戲鴈z驪 遾x哉臟馝GD酡#XfZ_qvo-6迴砉舭q{係+睄^,Y)S撷进h:B檉Z蹝f|9[D鼝_^.'`+巐t#'C什s詺鄓0賿譝鳵$骵gP%w磯(昍#媫!r頃軩穧#B袕荻Oz塎jG#/譙謨 蔀D︵2M莎)SJ鏝簾1臽独H孌3詍鞶繃 E魦勧4醺虝菹j}]tG^H&e嚪珁c8罨溇qz惗墜`[ue $),齮 羦椧=)m㤘!蚞渠偐n鼮4剫x室6荾T闷z錒xH攷豖揬諿5彈渷曆n麥嚬M`/劉T蔛R洵X O遊5 Wa> +stream +x阱<賿跢掞|d菆X詤C帀X峝{fCV垭 h h鯖GP@侅栐綽_圔]泉;掣垼8^,桉邂鶇X$Q..:停X/Tefq钎壶轵勘G 鯴GZ/Vj赶7粆覷嚜┕主Od1觖'伐}洂懘m煄儻錂m嵲鷞顟靼J%葿E墹N桽Ha哫,V}囨鷅,饝,譓蹡蹅`]qhS8r貖哋d秷'考2WRl+!軚筸U}4節 +Vs涿桾匩m埸啜t~j p谪F}技.B榚壔s逭輙V◣t獽╞鰛E敧 't$2鹹祓晠堂58>9貘a:E"拏岱SIG1鄻膤A 倽烎皿辱郎(拐!╦盝"擓郿轎i蕻M鸸$R闄吓彳胇'Q siv;蹰1S辬縔N稧EY徣訌肐 醽菵fw鞞C羜{4礊No8鳓進丱#搙砡劺Ц?剀?卒~3^G夞仧帶}镅.`だ絉匡餱櫥9<&'rMG睠艌%睈罉= Gi+/ cT渚童铆抟呖镫;虓Mp73丩螼鄰u:~e?甈l&傖欚騍W鲁.'Y=hQ 縙瑃|zM骒S堝审1阕1擝䦆鼶垬蟼秦鴈蘙鮕* #胈)1觺Wnв?5N娷矫顟暙~3'"5i^7乀 倓5_箄 +<埳{b(Y2$敤睮4鈱坰%@%垖N塐"嬷焆 鐰痝(sr3I騉<"H鶺8惢pn79惂+$麳1昑-)P菿珰,rV聐微.锻Ms碕o苯iZ :]xS稙6糰mxS靛姐.譵cn莅胢俅.殏∕嬕幆 V弤#^隟74u珈顱 燱砡MG鍒北鸗"`轚",梍S碗`M4aI脇 圢榕K3饯蜱罫z@/+荟- FS}C謇P +q臕耽逻g酐*渚IB$ $7蜅 垁<]vNT-K~}佾'X萄>腉騻7m笨錬?T魂Wk3Rg瘐篿賠絯砿畩豃鱲 *:D+,*@.焓胢痽#祄xUm泸徛%禖I嗸`敾谷梬+3宫媇塰,乀h釲蹓、*幻荻鋔+.結军钫泲埢(E禎,C灩e褶庥咝'\UEed嫹 逸簧X2q譭钦放吶-m趲 骰昌吣避nq\擘fb啪D韧譔鋙泘4? /#e蒗藟崿2,▅Y棁w吧M麞哏.Q02住睉;壶,"朘X鞾$壷挺"A麞'2睭T<璔蜔Y糸g蘹橊舎_m珻 蟮寰-徊>T鯈e伪 c:o4祇簆uZF=7>X滱烍瘾 =M捪阘鯙'2-E潜H禅Vnn聟^貗)揝>鹹 +0,錆齶Q,@嵺u贔烝t@惻>M伝m睈3:"Yh搞6|^!唥i桩浐4匡娊濆芬y胎 牃WmS颼( +r/扛h奯 +8Y诞w墻uB%甋I`毰[ ?x卋縪涽:f6躕B独C鰓eA3黀Q䌷tCOC豓uY槆M)炛5耜广i椔充>c挊 褟 !鐪蓽饩灡4z曆げ蝤A-穗c蕉; 疵购c 裶}说tzT帆jO0c饤泠衠sU嘓6圧#5SL= 黅I!筍^'8(嶌,>蓀6囲y摍阬2遟#躀|纆饳鬄嚲 袱捬鋲飯宋0, v9機け綍苲攄鶵瞹>俓栖p诛~蟥试s{=瞺4恺x澽9NL嬮缌5Zv:I=lS汘<ㄙe6}丌鶵<嗔叐2藿w積[G┘}隇鯔{6.g@穨覭t=Pg)eQ拀紌胄zO绪A笻-;h8[~Y划B哧﹃ .喟庠g门fC鷲`UB .A疟~[ PsE夵鷠>鄈侍z篅1*$q#%C攦>C歟崖%C+Vv 褘脖j缫E 濷戙>cNt@鵢氛暌+澑齂c+贪:;~E;p蟙l编{掩觟ぅ岕d>j愍釔$'O +m註鄹o1u紴t髈甫乏)30`縖e羳8( 仞/,狉m裶∴(p鯾童╔豽灾0g7恥@_<h碕y?絤x;犔3c殛師蟧沵俳艁w<.淥T敋貊迆h贛賐憸Sf瀽穽q觌)嬋呱I嵌枞樖!十仑扤 汇萋w:z搭綒(檤谧6X审1辑&(o$雐:^犍臰!q擥/楼;嵙髅憮誻{皐譌1~j蕸敦贉&ó%b)懘qP辬%6E䦛b榑鱡<鮹蔱y'5=g}誖/)k③7酽2=s$"冣S蟙f8鍳$x)%S滘 啣\摃赗觎`~綕bチ圞|恳TYN炰9滎}獣蛷鑽茩 r!2O[e9<&/峨銝宱 F彫Pla蕹>8j驙K鐶Vgfd嘾o!U!兦聦敎 寵壬揜$镠楸+3vD 6n{胯濘柚樷婣撹q哲焔褈磑 岠明c<=Z钊KA孱嘎.萅0吥榥憣.;棴;勯2絥.F糝籧z韉+揘/22谋榕ケ褯赘y扣o丿e鈦V漍!柌+籑!"wAO蒍t=]鵫C_踏8YV橱{欱挓6譚磡2嶽 x&橔C鰓絥J!笧幬-m咒姡憕@F6V孻 仔o3к)*S癡2輶(g汁J}6#譓>傭Wc貨 ^泩 f皢 +櫑 蟖訝鹆婼,▲吮l珤pF+D'瞝7跉6嬱Yh舵d@J乿1籖h疃E蓓E`板猉康M 尊仱膎`\-9殹鷋cQC 徣H'蕁湹葧吵%C捹厫T~xZ$恅怳Ⅰ乢晧D1揹u4薂k幘2奚_:字壗7 +聢 考画型>歯.苶q膲56x扺锝媥咾7┡K|薄╠藞Nj忰≮r儏舗鋛堑l'畟:7i{Q瓤a 璐e本-78疍褘,XH$`辔v` ++ 昿穌曹6~<瘈臣6疼C古S粕,9庠脈[昘2壐鰣噵踅$僯抎P菕 *P拝8嫿un鋠儘觔^V桋-狧h](櫑 I裲WsrC/_族|鈥u 閮L澞m茏D茠e2g爖P馸恮裰N黎L~桤}仜ig俺 雡_.澝嵣晶m;伙]:.!H}y.c7峴a搑∪"笯 I砲猯隀_訂畯L\虚识赑即2脄r_媞B鋲%毋愧Gj鶖詚鍾Z趸s窝淹d韌9Yz鵬y鹕'淞涹欎鎿赏$x驣9鹂唰嗤=聫19ASC;h }B红爙圴]3\6a鷔甒HLK%F檬蛱猭I=24J砼)饠]rWfq^鍩r縻c#欺5鴖璇rC湆僩髖顗\鑟朆L"癑b$難镩R匀稃詁2 \8X% z敃缟>町H谻#O茓F购d恗沅i5|] '恋茿=屗zt歊4$|k`5rH_泑Z`=孫z熤瑾 >1 ㏒蔩顡W仵偭/心Z懈鴯<3*矸zㄋNl礘顅~玦掁}汑鲾L>聱gs^3樹D\?橖颣題,&蘉计}"p +!l +{猤蘤6T,s,抜嚣c鵳q踯盓<!沪-焢 4势o ?o癎僛(寔娥RM1_FPT8'OX嫅L剷G +E"驁赧 1廙&簮 By(齮)gV堮S)mL7譯\5舎[$粘娳}:c}D-,絫H7客箏}鞊5g5=3:譹鬞3虹+ 揖欱I専X伌株吓a C赠览耛諬繦銘罻=4P=觵s鮫g濚态 +c听鶟=G*菆<b蝢滛‘僄Ⅺ?堟N%媠D纃煷92榙獋%{帩(Q鬫稌尙Q汣鯔?柸冹U忇%0c&3)4q锩yU!=a 6 ?秙"悩\菝ㄋ忟娔骫楱0A芎'.]'挪告h籷穲岇" 儘8u 砞kc脈P挓浍:埞耭攋畿>搋SmN8膹?邺蟊隐2}"&薰HD汒塸x{ 鮜5eX苈"(F t箅飕E劼蝫S愰辇?E/菷閂阎媅凭途\_闶蹵b2习8A钦5\ri渣f飶驣u3郰塧 +訓aU藃-[硢聢屓餱蛪铡B誷玣_仙岜腅詫它暮櫖:g<曽F烱厇'促蒀&鈮r鵝J蝏 V>*5+D5穤^饁熵&膯歾豚m娟倌虱"宎=禃#j: >懴Zt  6V=羦O99+潫渵LI禵3壞zyS謽70 h"&+愅D2q克醇4&筏搐琗丕彗,~q锯綻Iㄒ駕(怂鎬j緓榉2D/*PR╒铗TP6~H%輖汪荣{4哜簍椪讦9p遏髻8餀椞7∨q阹鶂oK镲:nt閬淎濺<鯡伔-v洇陗欺贪Q豀9i>o7)&Urb"CXl\#頾柑暡~{!猊蛼嚠憷(鲶s,顱8鶜 +胞&bn[龛J枬lqywcY}?X汈 +endstream +endobj +73 0 obj +<< +/F1 10 0 R +/F8 40 0 R +/F7 30 0 R +/F9 43 0 R +/F13 56 0 R +/F11 49 0 R +/F12 52 0 R +/F16 66 0 R +/F6 26 0 R +/F10 46 0 R +/F2 13 0 R +>> +endobj +71 0 obj +<< +/ProcSet[/PDF/Text/ImageC] +/Font 73 0 R +>> +endobj +74 0 obj +<< +/Filter[/FlateDecode] +/Width 83 +/Height 117 +/BitsPerComponent 8 +/ColorSpace/DeviceRGB +/Length 886 +>> +stream +x陧\K柮0簖/碣貂M0N`偕$幜拻拻毳礦汸bnT縱匸邝曕 /堖d+鄀a髁w, &寞觷'檊1f2痸 缅}o沦 柄劃;i乱=掎z)W>C欺.4~餈 `sS芬8噥瀀s荠0Q⒂!慖::疃D氯2_敲塨呃荜<]`;5觎嬊小 騊刀凜糞# 岬榤荥H騩g3 縍H?Jn辎MxF胺爑98;Cnd洦+:聀rvf懜N fY毞 踦j/V=灦|fU7脐I:355l鯇6锘頨嶓弤'戸蝫'0蜲M矵玿嗀n<厩漖蕱菬觍wfi犌'97箴&@镹V奰輷/烚ocN荟淛dL肯}襜4翥妢蜭Z鈨峬憅cz肋欢曛md0o猥俏V鐄翴~4譬壯紡 +;拎L4緥mi梩苔s蓰  N肖CQω# 講忍k#'偬kDgxM<神跈:婕遺R)[舎鼱砷x$|霦撺w掄 +V隰(j鏛R萷.弚J+B=﹑l浘{)謨v(槽gL熼.NK靽e<恕衖Y 鴇窷噎~蕹啭>硣l袒s蜿&*t酺>re3殈碲牦0"蔞> fY裪讕噥浌#揘憣秸笓簶槨R籍4k渋卺$C " 囤Z檢W>韦,归6嬡磌 b7隼嘌f譾璌摡膧壺彈塷 :瞥t)[q"嫕u畯C狜窖佑N跌?`╚哠a4篙蜟枖敂敂敂敂敂囹咏H +endstream +endobj +77 0 obj +<< +/Filter[/FlateDecode] +/Length 5196 +>> +stream +x诃[Y撣F拁達裲 6!卻~h]v堵j蚅劋P$ 8(Y挢緳鵨 蓝4辻鐵VV謺晻W/<左./潴撣G/鼖赝拫刍0蒤/0睕F废:徕?z\dn32<7L/a@糩,砑Z$檽7 ?r蜉-朼9O氇須愫+電0夌詗潖 ]0盨韄1溸缜 艉叾訖吰8't雴A 閮祝%]!o簰'.朅蕄D巍.`[(PV鴙橲3l淢冼z桇"牿R閘g1gx&辺%濻鋗果掳?太貭r鮁~椟婖+珄B嗏z;7"i趓勎'瞢措-Z S灆 -涥N._&4F囎E.鍭2 尠階弚&7枉|7IG蹎VO摿)4襷[(舕}慕8r\証a蟷歱x?j!;;僡*奙 坝絕(=1IfAハe稶:旆2;翼.瘖3锨U7洟菴4鵐.7匳W纝迻-P璙坪駥$y4峜嵛G枯侧﹒M.6Gar:mE-Q撳sw 膠塺W ,癟[ch姕诽E涆m楏貶_哊k净b舖2 gQ`V=羌鉜HbA垛>憊〝]m]℃>&,B瞎D浻弓w5,"b饽夔_ +|yC&GqS揆Xw粹J[烴H%銈* 磏籠 梙y螧阨W钏\攴蒹)nP瓒9 戯mH礹]mi/楅u挂s5蝬t0揿$px%,("S*_鷩SB賘&掦$Jz(毣嘿C啫O蟋>5戠|占)!増臈%诓Zc礠|-&璀y㏄贑冫?Pl杳1J为IF嫐孹6巃脂1S厹估泪+@觅侁嫧Y4枠Tiy谙4濐鐟⒋k袏癙酮說'6姂lh臒辟仧烘泹656趤宄np嘻=*殆^‘.犁ry^.q䝼)鲊]抱b瓼)蒑橪紫hS縬2,S3,r屿d鎣儀0t巪hyB隟J穚歼+'?駔颚蘔籅阢V'%5[頇Lえ焽礪d禋藀獑伇- D}"蘭ZE  z`慇濉畚缧w`桟咺琗飰博:6筙!.@营襜末:a T鏝f牦跃習2╆A3虈ay啲{T秢Ft瓞栩r孜+.d蠈桓〆Em他- 仗0S俙W毽E宫冖裦9>kv耯鼙)&#%g撁*合薂N粌JGi_祀 `=cg森吶Go=欀B﹁\u脂=}鯁e垖5踘邿玃泷嫜&!! +j獟)殦戽%朚爸W鷊]6?琡Z`刎W +疣 |&5S\bō梜朸%篬扮$9 y邟rcLU{鈄7?3鯕t聜%鍶+YoBE`=X諴Afグ璁 u +/'蔹![B 皡ˇ弅嵭)中)1皇k%<1夡Lf}蘎W繮渜\C*檵税q俻*Tf功焅媀鹁B嗋fYЗ牣 ZN川R*+d)阢NDos|P途l[閍冤 侵5徑塷j-揮漮D物d$&損自{2{巆*e┲F發沃錐[bK%[ 憨诚:饋v螓`T\鲸. Lz線蘣Iq=只cOvl淵0雞肸曶绹琇02樲`cΧX舳名 s鈾%殲6舲Gc济邞絒p~F愶味E庒Op瑌{s鯊?縵瞳?焦鵳/席灲禰H豁$%磶楞0蛇叵崛尲W:Q恎涪i/?8p^ +妤老炴)朑t餽趝霧6狺f0鍎9阯(妽l"j4?诇J '滒召㈢?拍7tt8抶藘a>1嬦f 6脢iH怅K庬檼/4q搎+賗灧g笞<dWZ賞趫#7瀹瑫h暦H狖西M~鼐~yus>蹇c哉 L檧鈂喻L啚殘僊D6a亽頄KP!$'=7 /庠缣aIa孧婸/哕戋陚涠'绚1侂骸嵷爣%p*^7檤Z突%¥湜X賩鏛/fH綌K煖骭g=衼穒=3摈娶{籅冷螆兞{轌 +擇托背'zIF;镭w"<貄坞&鉼麙B峹騋P8羳褝`僫"捝S鞁渻3岠剫卯nΜ 鳹弰1妮藁 瘰^倖x9雞~妉3;I?0b(營>0厓s肢龎涆賗炠 $s|隶梁葝@餑+S#&H糌软k1l@唱W1僐磜W&vZ殾荦竅偝j脴勗苽,怛奒懄硥F袿-稙慑鮐梵fǹ槙+T汭鞥,齍n:渴&佧}乡0澂^ビ2p噯_奐雹髰1BV驱婗蚫b籑t驷轱,勫騞Y賖&25m q噊M z囅(矫蟁誻冄鴰咣a冋f駑 +c腏D馥﹤b翸蚃o豉\峮&wJ,"pXd儐vQ绢@蛶v4癠Af}棤弢/?K"T掵r>Q暋<龞胖_e詃c%婷>牪Np/氅緔I霉7y貹#H.斔kR鶞飦駻掮h遚饟呙a髋緢P2v巯緯嬢梏 8>谯^教跙粂M狿[\瓩s騰w:觞G觥廙g瀩歪笘鬵躥惱錩襹.P'o藹^淧镪ψ +d揸U荨礼畻櫢绲鈰Rd'I徽'$餫40 l Q汻枹靴oA埉躸9rb&]?L\i 鑭H"象%鱒醱侎拟p憚顖皠籑]k農昅]┪f:蛎弴洒择冐嵪o= !碰<悑n娬~H}轟R裌xx臙醾@脸癜3g +x$w郄;R 毲K靕UN8E8皙6'U;`h贌x蹙(r舞胈姸!b眊悽=鴽o~=quk吂j T嗾煝芼琣 uz"批?钫"耓聢3}鮝蒻桏5*N劯;钥 |戗G喈$C循颚b8oh嚕5騴毦肣醰3歧骾尖悟*o電/9劺广齰UC<}盠BV{瘌*蜦#O<$栀盺t"吸"嘰4%鳊縊789H凬#哞櫜?A3絧Z肘舂x騥慠zIjQuDg嶍?$g+%&薠J远$x+"3lP3Q@鉅0 '庯銂Ns?碃?伨搾)駙詜I3ks堚 +f(纆/退83崲挆╕1伷邂5>'齔鸏暥慾IB6燪ma8t聭d>獂~=閏V +endstream +endobj +78 0 obj +<< +/F1 10 0 R +/F2 13 0 R +/F6 26 0 R +/F3 16 0 R +/F7 30 0 R +/F9 43 0 R +>> +endobj +76 0 obj +<< +/ProcSet[/PDF/Text/ImageC] +/Font 78 0 R +>> +endobj +79 0 obj +<< +/Filter[/FlateDecode] +/Width 83 +/Height 117 +/BitsPerComponent 8 +/ColorSpace/DeviceRGB +/Length 872 +>> +stream +x陧\ 7s髦 D趦菨jU0@`{]----瘲1FB嬣姁!炠>9 +km* }/r:蟟A缔唭f`谂婒u偨3do堋z嚛1鳉}俑O踔!賷鹹73)铞饅 A鹪`O瑆,'-纉綉坩鸤j鋻襗鵰e閏遯仺怖歹疼窟適/ +誏罵|悻)榝芖档乍C宱G8ヰm6+cU啌4瀲H窓灁╪ッNd烏忏v瀶コ,#挩翥E貫硘)B圳u6藕筸嚇鑕餑:{x4靏tW鱭玘,`南L戌冘xk"+喂%臷a笋汦轠沂瞯Ag瀼gg`nkⅧ脂澺彠菏靶礃唷逭2L絶' >秎砈嗠_褬嫊]@_;篼[d.HD鄒盽Y*A7w侠7衒m馮比8襏 綯9$A+蝰7T犵B覎"嚦铟8諓&2襶75 +ZE6麛q枪婣~鹙傴&( ╨劫; ,)> +>> +stream +x+T032472T0AdNr.W憫厬灡X佬烫ˊ列(dj猔h``T Td捪k +endstream +endobj +83 0 obj +<< +/R7 84 0 R +>> +endobj +84 0 obj +<< +/Subtype/Image +/ColorSpace/DeviceRGB +/Width 514 +/Height 375 +/BitsPerComponent 8 +/Filter/DCTDecode +/Length 42040 +>> +stream +AdobedC +  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYw" + }!1AQa"q2亼#B绷R佯$3br +%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz儎厗噲墛挀敃枟槞殺¥ウЖ┆渤吹斗腹郝媚牌侨墒矣哉肿刭卺忏溴骁栝犟蝮趱鲼 + w!1AQaq"2B憽绷 #3Rbr +$4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz們剠唶垑姃摂晼棙櫄ⅲぅΗī炒刀犯购旅呐魄壬室釉罩棕仝忏溴骁栝牝篝貊鼬 ?箬%@=蟡qF兩閹籀&6彯i衿T湋灨 f萕$鹒0跐 ;#u80c9 SH9砷H})A$笠q殦pSr襄N玎w燿獓i"l 撉jqv9鋎v剴=ju褡宼ぼH$麒}i +扏攒y郹=)=@R!憎┪y餁 #湻40幖g譀湉lS倰F8颯糮\恵懲 丮#穕逾d耜i瓈N褠y缫梱炧XP $T`颬?'<鏈&輨噻9 酴課2k00Ny'蝡*閡xw 亷j亽r9悭&勁櫴灆颬偰p8<殥A斏┣Z?n隆h1 +燎<鈵9(bA銡{|扞= 00W 姝堿輴x颪 A苸 囵H'翻4$怉=r{8 pjd仦j儊扝 $d9<亖慠!2寔憘8= 6F蕁鄎遥蜲_JS8⺄Z +怘=馬踏!鋑GJ垎$仠z}h嶧9#覜M陙2X㧐c=陖\兩5,8┏p>.鉊厒D{冇6r[瀓K癩頁裍u5iF-<:啳╘珪w91遹 8膣)d樉衟 )(b@设;V塜L{'h錇强劊du隦e暀鼻E棎仠`拁灤8傫O@ $8eF3搨摇Y +绢珳{{砸6銌橦 欔(癨.Fs < 潐r=MU壸zR 8射姴缺& &¤1X;9;s両q=牥 鄳Q螔 a"塹I$馮!d蜨<,A脨'姒1 $搨Wz}iャ埩'瓜AI眲Q捘股)褺I *PB怈'犃#溤]tr 頳 q佉攄 親鰡9$M4 绷甚5v膌]NL 0v憗捆( p甾扡CHf┨7蓾爯?*睬倇}@`=z謮溏c字 $ +暼9sQ>qMzfQR耇d < +izd鶶 岀醒Rl鳍'wR軭荁9R +摓狻P冷狿翋y┌XT 巟3淪. `巗B0H59錈4脨zSrrq)0F9蚈 +桖OJcD=1R樍RH< j .亊梨''糕$q老jVc滀RC 翩'趓GS僈潸 +@咔8嚫P1覛 O(I4濱d鄴I嗯饈)QK i厑c0P"46饫|騪)9v牢)腊R<* 栗 e c捉.0jsh9檄4$臨`嚴8娠Sd`鐟镻俱q芝B膎9鋩)0D爡b黉巰T膫8憖=隊敾镜bRNq*l芆JxA磼2{:Uv#C逓$1艻洒ふbFGA狸j揣89|鵾c巬閯ɡ啔A-礜镨)1sx,lcpz[<鐠MY竝,F0繒@孌宔?1 z腼T槇倓晝懬灆媋#怚苸灥<嫲!@羝B駛嬙鋬憎镵\ #9圩>昮hK.爨Kf2沚 艶R昗萡99$鲻膝:`緄R@胄岲Q(螥A溻欱.C*懛p'G颛M )1亴毄d%@ tg蓼6dgO睱dQ贕9I翥5!;唝9鋌惵'$佦侩N郆HRA=y鏈F}坮膎 魅b:慐缹tg闒劉單3覙顏B =蟌Y$f=i 撓尧'妤 c8T$6N餾颲!r:歷0}h3A徠 烰)劢#玄侷膝DI8>烰s笰碿憡$3 5,m磄丆逛J4!$庻u`@ 虸.O.0?*@I+p@热宒栁i騳坺垝1恜}盄瑎癊$侷8>b3伹=閼a>`勭 l傟a悾&2孕F魍?$&''揕9$鹵燙麦倄?圣Q巼鵖%3撚姉Εy巖zc躌蓘1憺<詢嶰qU;B詃 Z剴F銗:翕.$劊8b1庈誜C篌@鎵2eH }* <H頷32I⒗9'8鞷 呹@嗓T`A8彮r 鄐慍`@Q=QR噖*鄬U苨寑j6IH笼(`<淯\rI鏉,%蕬脆岉╆, *0:`鏠0pj貳X亮騤崦Cr2s'p v/^倎B L8寎im9'=}*q 蛄#"Das8辖4灉OB'+磥48$dyeH>铬*1=摇|6鷆礙獌紓r1Iu憪r9雳8f8缲*`抪O9荶7 !$u4巈A麫g)NT`溺歯TdH9臞@噜幘旚 rQ廕Q dN3鳸鑓@@s侳0N魭O澹45潯 y#}}*`w#搨9鼄)潃cP鬆菙-+s#=<釃BFs誅2估,s]8H裼絍23 $d鄓绛RB' @>4已華 (0)>I8暇).$)((7`j{tGB莾渃=* "濴g彪姂q=3 hD[$寑==hs3挰6;t#咧"虅廘s殲8趃_j捘J 圔[r5`蹝洃Wq`視F 蕭q扆)憦碏F釰T宒g4<彯{覑 !q炣v<傑绠r*Hs笽?J6W*评9骏5儌A<5182@廞蟡劺瓵 q霘O鯌3呻詩t嵃?p娎鐝石バ8$憖9鋩@碛*涌曄rj8IpGK]腂NH8謦2y'岒i鋤 7蹉拷X朢) 焃薫 惝)I淨FsA3銙9#8荗ZBx偉0砩懬s@@<:鄑っl<鐞*Nw}JTN@芀M括翈>cLB寭爷楿8抲胛{碸F 屧%澷5yJ 寭厏`{r $罀裈纴6O覒抶N厒Q#={婴 卷你牓該)撋1fQ滫瀒$| z髪@PO┩V$8侌I4駻>昁@"2z + *GS宑)Jw 劀寧)駹<詤巬閰u⑧Zh霌巋$ +儞扞臯H 9麨攣巔粅哇F9躏M韈崸熻)Sh贤仧Z@veH#'=Zv劾扇8)皜佣I寽JL:88δ鶗8,硡p亻?危iw@>礰G懜懘p}&#9&*8$跷I=〣7c鱠溆评勼溹裰歟Q1mぇ`zLd+4蝗<zb氾割9汕颛78'$筌R 1荍h,s嶨jj瀥;菿 錅鳓珑蟐1酽 鋩A詁H濑℉ (懺w0I'F7豶y!b8=矷珔嗓,缹褙c淭 靹($幘灭b 覭$ .e*膸1廮茩3 {鹺Urp蝓$4JP膾~顈@墲#Ⅴ +w'=巗O(L[老$ +fA 扏讪FA81Or$` 跬0 u$糚  46q倓蹶}莫*#8枢鶷2?汒埨=N*糯仪剰 G'p,膼払掕Fs灋砸#g;T(扰 2H'疪Jfq2Y搭2$L$ 29鷴H$鶵#渼  鈨巶g$鷞R頴亗&襉C廠M #<y\d妌2A懒A摀) @鳍繨矔>Y伷sU哱懹4搶湠齫@BHO~粢础wz撧Ryh<阋$j01濶hn羢8苲悭Hqv妤)-98TlX綥`(鞞r(I强J埄f鄿髑Z渻"nE`灆雳蕯l儞層b弒吷蝡s>碼窌S寀奤漉蟌k銈 躉'=)胸溿>漣洗岕瀐*K`W?SH囝0爯q籁 w兓灆4む=j,騷;P蛼C溤d侳h$'歅舝G8pG8鐟H3甚4蝗袅49>咙)蠕恾)寣鲦侤9(r姆揑骻╄FpiA辽$齣#:0H8$鷳7vW芝#$ci$虥@PA=I鞵癵墟敒膈搨z欻 轚慇a犩:詆*霡虶 {y隌躽:{T厄 `rE9##福8p纁 f啴.6\{v籀粧むd灎R<涖$H碓TD烎Tq偋M)$蚰熎獏 鐞=j膁冎唨 pI<笪*Gp芆巎=  8 ?櫓地.7{糍 .H撧榬膾x鞟* 払悧鐚馬9 u$v5.醼4 +c<歏 ?Zh鄏i 8鈺l墍Hc2 d!潴V%H5\湲?*hB d伬&$囵j祇菧璂繾倅跬4缷R鵪醒N0拕`~4錼  8ノF2h鐠<*"9匥寕I驹 畐dO(9 瓼譂0隢繶.衫欽饄銥yˋ螿\娶掳鰉罍99-│O$慛.=h @<囿N,捡溤bA(z烎叾捠}癶砟>囵~昫#*d'#礡PNzs于H9'佖P袲孿珎{d雳wF ZUrA$g>建蝼怟c禣oj`9硈溿 W#香Ry|d1聬汙rE +r圄A+90K)9夛簸. rO淅RN0zR蝫t阸譄99';q蜲1 懬0瀝GK8鶳I#B)A顯\熓F;阋#9樨SNA *L撥儨覟N 狇僋A'X1渵4dd灊)噶蜨缵宒y阧BA PU 鐟湂jX'u`f#滝鄟儜邭Bq:詢p#绲4伋#7$M)8#狤^'#=隶pFJQ岓RlUa螻兀t\劢咐汨) 齤PLg犕 *蜙"榎寕H藄襽疗@2y 鐸麲ZW ''8)P2$覟G<C闕c 93逇d +8磘=┉滎0z +`809謦R峡J<亓?.3 1矽@@ ?!拤<殤y'$%#b扺滫襽Kns;謺凥I$鄑镼 侫 MJd;V冏5払15' 抪9橐*I冷4镞<缃HAg4!^9撘妚$;攱=i鄬{Z@巠:Tm噻1嶣]跂L$=┾ 夾嶮 *w`7BX驚X擣9#隖#NrZJ.嚆燸h 搨{s,pG80〢嵜戇椰脐 鋊t v+垊;韸U@;A _聵壣##绍撟;Tx }沩I紣AZfrH y +舺寶j{q丄圽摓 +~;S蕗芚3巟'8雩t'灨(~R僅Ws儉I鈿?%H NH>=B'癄12):憣鎼8齣褠3鞞乩g廕蜲) 6z詀稖41懾爍:GgN缼 雳虆A泸ヲd+@孺肩pH艪(0$炵 澩茜У,r琁 UG+燘yjI╅趹T兎# 廧h轡񙫎> 鄐丂茞'p顉](A郎4厠爘靖)2{慇 b(趣8'煡麘湠福*H$抺`鐜絽*wv rj恶翿?(類趵9覙aW$d`搻~ +A儗嘤裵綠QR怮2Tph惾c苲鏁落E2A 氵(u丘#1N陲(.@妔%U鋈=齣吶B1#疌妏*=s-鄒jL %H1$B酯\饃莭钳酭 H錈ZA +{葔9'8淩艈A8颧博lq貫*況z268n  *pI#謵枑榍&(孎P炱?匹!6R$#痳iI$O'ˉ1'vh`= 侳鏷/ⅱ d鋊詸蟎$憖pE7y湈{f侫鋟=qLv$尢0I阈ug溧`湓HHl酴僭!$巬)XC ?b 9 q<邮G&08串+R@+;9!纅? +QJ獰@{TnI{@n)F .2rH=)]I1Ol.I蝧跍!q訿隠4 x=M!p屇$髠iP##g8"搥=閔$&2_帞蠥@9=)闎 +侽ㄎive>鱭際鼥<绡贱燐銺N繰 烊 rs  +X溹dz殣率粔圊侶辅g, 4 $荙镴!D'抸PA#'烝 f@酵=P&[pr89⺷f@H苃 翬匒A捓銥咩SB堺B劀i栺儛"r rh欵2v恠酅>冷Hp)蜺( c灕8m蜪pI8鄍iY6 畿酡羇明dy媴9庻,) 鹄漋'$=J$E#'溡z deX儉@RAc逘`蟌侧怤H銣殗SL 憗夽 2*\($戈(贐滅覀4)u聻劄ae)W`s埔2j8,$`B膎*炰雯D$!袘袵z{o+=*2T怳y酡韸韸憹鋹Q廘p?:q/懺悌鮎捘H$w41W'躌菾o` +OX*7"C笇畄倅簟膅拎Jz嵽囊00F 謿c,泦HPA*杰8}@偯k9懤燰皜 衫#5}4P,2D蝢8ㄡp冧$ˋBp}i欳 疾8紝'闧 塄D亴p抒寏U<  !饚滫S9 F+1齅 憁?魍颓|袻,P苻`茯)I!8巯4nhm$ct︾鴕í(f *:粝jp 芆SOzs 蠺n鳶廛Gp*5 渮酽岀搥ホ馉v%G鄬佊讦pX滬c恓;y冃詠Nx蟩J耯惾lx前  `02)BA<詨 x橥衞#嚾\駜嫂H$倻I妫g;鹉渮謦 !(G'h碲洉 J岀< +ppI$u犂=(W剙>枨2W '搁C狧 幥03蕒{0hT 褭K韥想L(倅籀戮k遨3S垱"蛊@<@V(9$鐮颪劻缮鄁湤RIl汶丣$溹8gQㄉ闉sL е乶x-  詫#*籌恟Ni頡*}挥YT }sLc鱮s闅L兩懒殚ML曏H顉妝M>ld缃J9 +ⅸ$$猡蘰九!{憣妷c亯9'3竴霳I=*EaL9/偯##慭F@=s擁Q艃eA笃M4ㄆ赓'缰葮 偂吏8&7侫E蟡M 贸@q鞱"冷=3錠嶩84訣GQI  H鎲%1隢;Tx,惂轁絒鬼舁0x溆 榩:Z樢O1*7$侜又cp荓馡告ERlO=j=奝Ibb鶐8镈;K鈥0凩3鋎8臖)'鐑a慸繱狸O颛p胣阆峰E砀'塥 '秞7A蛄9?(L栱憖h蜇湷`撔碷0,膅俔箕t瀃 鄐生R飄(戋懬)g悧e8蜙AZc2 +岚^鏋 af!杂悋`@~魮憸J烴魕 G等 3郓Fq覞d]\荺~Tl\醱滛鈦屫Kd捓鷙 尡(餙SO*cE-毋=嚨0*'N94呢I/<歐!惽亾晴Ovp4J6GC娱E舝0v捚<:燅乫渞⊙B搻;A#鋷9齢A缺9xg?ZY 餾与J闚親9郿齣\3!w#=粆OzE屼m񍌕(rp,Q蝙爴驇H镋裸2$褹 热'(湗蚰灖牗寚8鼼J]<q摿#歺*夌$冏蟥b敛I睔hi堜髵⑷v,f?D齢 + $i0]睧Fg0ORb洀'甼CK"X +萆鑮)剸80涌礖2@8秫 蹴鞰1迲碁O4,xNzR憪3H`去鶐 Ju2z炚,﹪H d疧=-@焗r$觥渢 +++闒U癆Rs橼昺貈UI螧GJw楶p0}=i $済。P"1樝9sI宕紑@J$ '#8) 尋鐏渰P-E柆<'孲宍e鄎力宲1入J丄=鎿N醘O2 雮9棱瀂r2駟R?1從sU暻朩$糟<{zU竑"榝跔啻崚O胳)4+ )#鬣懗,~u娘%嶬dS-%&S灏"&I鷮6.侒c0鷙4 Hjq呓<竝H寁<彮]祤9eX蓃螻缧v嶄/6伝贏該vi湝4嚯ry嵥9醛Z4(*爴=槎7nnP@ +{z}jH1 vs](弐H聦N)蘒1m]摀4&銯0驒,hZ})$R蹳<:銣}{覺耫$l搧撛z鸕M庫妕;嘼Jr" #4琂爳 燆i7dNA==;乳儠%#礙 +2D#|恵z戳)uRv19?Z伐豄┻莑%\硛螶oDCvWe$i>Ds|踏鬄9脵/怑覐 闬N}pMZ僨n碦8尹俻<85滢艌凌q蹚坨娼橗隦dF 萆(䲡J攭>瓏菪Fi狧$胄噥綮魦擄 +d >粯O貶.櫫%Hb@=i`r2q]v♂)M导9 鵒n爁㎝岘F寛n :*悥 +{EC媄3eR-]3瀸眀9'佋諈v@U詼td甾瘽VP昂申|紦鷐鯕n捯%闗!黴丷恹-阱pZ@HS佖Savx#湈2= 隦R0r0:懮赜怉/茕`{s@3憯eNH8<歿 ld镼8艶1岤S5$D!坆]裾廘S簇R@ 渧e2 +n 刡z鳏轡眻聬9 >斾E`q滮*禮T)r溧*蘂 X滙M!X怖鶈0w厢M徜a亼丛d$$y鬎ド茑2I44;hM昿爯I=Oz `N釧颚"`bx>{廽鉈飈)9鹰HF祛#9溆'覟掅I鄴I4? +# 扞<``丵H迨 "t痁U%A赧 `搸Rv殲^h諍怚>樓蕷-鑬>;l'''訌Z覢z椧G/惼9r 撈Glg烍2瑥2棃稭3轾针t庽图絗%#$亐@I5も厼%軝OU=dq郗sI珤夜屯XK"~P_o璌 d犎 O#黭N[I銔葏荺趿#ㄣ5泀n皴 ["磳铮 鬱3搾佽j0閬脍1<灖摾堲L6 >S>$翲$T!6Kow<槦薭8 w绠*霿.|鏨偰IRz姡%冠羈I朐z⺻珢H蕨8粑颥錱7E桀Id7 u艶 兩8轫K 艠 $`湝 5\9<`楼+败B渹q缫爾NW闇rj耬 +rq匸2缎 甚85\C綄唨 苮?8BX 摄,p*Q膩U朽卬A#8臝,V髝鍪abF鑈'獡囹=暝跜3;儊嶨璏碔lNNG乶^ s 齇CS赮灋.k腐s-c,侼{WU$X鮱y8%H/g渮瀥臬o 嗷7B&T!蜛F渵Bm鑼戋(磶颉摗攵vg"PFT2}ju级渇)鉷}翎%-St@惆8麿颟妝q +俓 簝3{u泉u沄賰m蹧窲1穜S8' CqdJy h軩樼:䙡~U局%I恅蔄8?虦U逡监 + +[.X亼宑蝽隬憩衇苠韒銿炣P8'!_便*6はr6P9$v鼜醄摄觱聗w+rH廃寏f嚦1磄nA;渀戩g*洼^[,)衊8?6L拻浒P@9璵橏3#灓岕媒5- r,}娏Uk@笲Dor@a竸8#狛觉^h欶Fc戧}墙kB罀%1*览鷗>M BFnr$c8绳槮猨30$o辋}(3缿格?聤=n+瀤W4g鏈鵣09濊q"絫;7g#8>犘憫扩#$寎})磦1腚迡鵄Ё謵)$`g姄a1髮81鄮jS0=y郼抭&NGG鉘匎\T功W喩せD GbOO& 嵢厐@z弋 *1坜"C撋 y:徫墦m塘埪g R9勚~饮 "沋厐,圓8:O_j=喩KG#<昤O∴WCk 爬抍h0寣=}iD|(晲怓 g 鸀jUF瀬crE,& 沿湊利~担&1樔B齇J輠X錀藹2伈;抶汶>擪d灓c戼錚隴жVl阙8詼墬 掳=y踱,糩倻u稂雤鏞奍U偘寛賳@ 佦愙篡茹 +F$O=8 b寷;"% I荓彟EX阜e癚 +I#$熋$V娵壯! 嶩'彟yR+偲0Lcx鼀隭诗n醔布4!囹 席 颮Z7*(Wp 噜忒, 9愚5[ s拎{駥~^2撳躦%釩縌郺衏= 笾%奌3$L<駻 z]挺) +$$挔髢佑渭捩I2n!OA嚆诮,-nen奴=妄!Dw'4锏蝯漇# 篝ボ楞9镆籲麔Ev-ピ頊惹託庘阣#l2*]&寨颿2珹蔋_6Y蕚i 艶z踊>U卦襱霛Q盼蛧99.@拦@>勗~ 啥槕秀醐樸擻朻齆X晫6恟&V掖朴剾o 1娧)郹3俴踳e;尅校晛{RE4$$簸1鯲亚塩-D渹O抓\xbH刣税-詠廯:鎜鯄8#巔栁仁伾湋戦L浤婴,&#n )/. d~曄<4溘]L淽:{槡B v鄑_聙@HL槇'JG籶 卋s詯9缫氿鎣$c>犱\鱿p43盜 +凅 mt; <郾H閽2zg8*艫2 膩川;敉?*+m銀@$tZ3#',捓u魍B栻5蒔 伻$蠻-7,8锴4(紆﹚_1寋ub.St寔'兤q酊pj<;M!鵏噝(8銚9荿淰掶l2*掄闍帻鼸I篐醗bA$搾0I赧<*,V3厜垻Lr鼮rSNkrIqO s庛с閇"剮 瓊88献忕U通笧2奣0$′岨|螔ㄘ靌ZZ榙f凄剙腸恟G?漢Z燮 拃搧';v蚗XvBA葥'湉qV<阸袘8"⊥粖芼柉1>褣N笪=[泊Hc 萠 ㏒ 箅N7嗕0焭xu"B>bs偋寁?滳曯m蝀%谷#A锷vpd 6樍廊?\J厄;e r聻 wQ6憥1u視詡0>騃e=?酛眹暽龄泪訌ǐ璎` n999>(鳞H伭OcS蓟8 雽餓&d,Ok癧睗8F楓\瓳艻懲<艪邻 u萧泱│* 裨+搏2爡 g嫌8; 癳%pp{c织8抠堮="籏絙跲.&R剭I8羧J5涘謔贙xY!豥戕籶悮w秴F 锳j驩徊g佇: #慤 9"絋hOk1侤鄲@ b猟$醛T3+⑵汣愼荅欘ig刐6 p2 㑳蛒H馐c渱黈B=霝kVt崄bE,T2@##)d?/絪篰泏%y&Bs滜㊣4莝⑾扚矰讶20En秿iRC儢yTW贚p赝q喘'妁壡Q佔拷R剛4揨樈p%含{I=3湉┃硼=柒%XcJ映窄4輕3=淀簮姢"舡叴簿W翰楳!$vu挟s[%ebYZ事适&Kd鋋匲鋊抸奒垭X`+kn/c%Q樂茔霘驯碁'ch?o 睭鶻}蒚廚q\恿.隦B鋐.^7}超{豨3?岮u$e0$"广;臾$時鷟4牜6 2?*嶺n18,9R213郐1隭螕嵈M暳$dt88妾8#z 腩q荂芝@) !-曣惀:Fd岫 >89黿豅H谾駩H峊錾茹.襵錅>熛姯pb 鋻0A褠刣8_l肘 .@??? +*?18蝳瑜95 鰡)8`JF@*H x汝*矩炤' +P岀4貜>熊pp脙鐰 E,囂9R ]捏竵撟瞉袳囫#@I-滅q哧j{惇Rcj暼$耧貞 N{恴缇*ix鎷 9轻T扠.Y窮 +鍊笺$笕铬*"8鄰裣5)r;扱蜞g戨蟦焿ε澳 艑C烵J梜 43H* 烎颐S瓾Qzc症俸V赂`@#$騲舂Z'w摋渀_匹遏 2p茑$s儚Q蝘 +#r霫繥<耵#窑*艭!磇捤怎傈}j篔6clFg? +9]異X矌#絳鋞*鶝F <黡*9嶦PK#绉`j桓23w>A缃J奫嘡斯ePI{`Uc0襆 *9艶Ol髋N鍯(!蛱>o⊥F 楬$!@\┿*B{(蹿Rt錆悤8燎 zu芌懾跷~骏d# 1偁炵嶩螸9雠\簮;0 ?J$領"6徭8x蹑撌.a]巔1$訯埔厥唁q闉 鐘愃$S(G ;义r\隑e{;nr)焚筎懾褚)I%洿壅疡9滓 玬/Z膾3G0o碁 U_ +磓叺籐y侻䎀H稆坠 +v^胄圴IZ[瀧rMdq208*鼳#姮衱V苶k饚-話$钅梱N_荞Td鹁鹄q0${hw9`澙`z醍兠>沒$ p顈b}秕閁[G +╳!~=N8荿蒂6諬59c崜蓙~vC2p<E'-M=澦Z?儱眎#{淍鄥躾罄齤譬h 俵ck笙值5-f;u1皿蓪dt蒦<$ +侭倉単%筗譈ネ鞉9嗀獎`捾0省#向Μq2-膾C紘*;孋`B 1剰&鰩痥o+ x雬N:髌+Y7⑿E5踴潯/4R)>\袹C V$> 曧胼蕫伪]剧嵸$臏鄃}.筫 %籈m记櫵I亽G3苉馍E嗄 `2惹ō右蘶谢╦黧蟾/m7毟3襞oi:緯l勇_橽H匊+妸馮堒艸狕弞to滀A槒J暛氄O轎唚祍嚼韨r3鶹?艾'8憭 齳确駡(A g祏鳅彘秇歲<8+澙炪=F>磆;儵贕)夋BP#>囑ㄜk眩"32鐬 +渰z'a-郊 凅伭豸4霔氋捱楾騎d熇訨vv@澪扥0=蝚3?止,n 0H%?CQ拠杒峭v岄眧犗籀6﹠荼W2遚$嘍f$4满Z>(鏱毖>璻>跻/諩肢>瓵胘P忹j?‘|隁|lBAo恴咙I#譵]u-恈矜嬋 儷+5Ic鼌4篥珒鬢眆X*俌(UxZ畖D傈栶 z 愾ч?R(鹝穌z1熢uK?愛備9閷赧┪縳&躯2h埔焐擱嗷 偫憥 \'H@C摐廲职|;,1 鋧處@$ 撠q顂[Y(X抷躴擙G醊EUj饺褬 悜败鋍=x﹤4$ +e~l`prI9裂 +q伹話z鶹z陽^d瘣D =駩=騸淭(6畷缕琎7敇賹 |命h歱e]p=S黨ъ0#B*$甍?(峆c迦 t艷J碱匜pU1炤~6鍛2)槕撛禘B搝撛[槺荿I隠穩4b|呺岝=j軕0"孎r 俽A圊=X雅t"頏'd>g`2u8$(*[.N@F '巰訴?樢\8==kSP処p8`^F吁钝 0FXciL齤?v +拠懚岝'?XY岏#曺G + 漍o $1zwé!劢# '8蟐GL沭猻粿孌砾孖(艍谷黫K哬徣_pQ#?粚8b$)2嗼;鄜<5\FU釔(=硯憬(6醺,隋$@:筘v鳗$礵晩!%q俽9镉5%( HP騫$v19$佸3: r砸斱5悏 + 髮uM+Oq堝`8摄±#毢奇五軆?8'P `繒(挖蘷 bA紎杭鱓m0fA裊X酻d箉~3}I5罚hP7$疄\f@T摓5ぞ[猗ノ)#鰲犗愄迁'闕t3鱙霞*帠焥O/庡:焜 嗝積轻NgO衒 +8bO鮖b-G56q 1w +N瘣?K 閝 N}匵MT搼k 鷢?+磼韲呒礝m匛龈忀且8I^睁檹纶媫錎z@?杍聏Js2趿'鶹饡[牼擙伥徳 +P灏筼y&~啌溁亷洲籗麺L毅?=詬 +娭6Akj;$鲧陎 +蟋腎耦~狆*坂砂08鷾 嘀<蜵$; ?J*a+鄚;昫@#7{摿惘8厢U^ lL孈;-滜銕+GQ媔參佋髵?昗H儮碋v(,A9>縙驭筪褼5fF-軛怘8%駺鐝~誳虓蘃`K滖=>烏R鍠8)e(' 幺.鏅cD 9$寑请Cj怼 G緂 FT蒤鬁IF乘袪岕<9>:Tl財[憮:d䲡4!e薏$墝E簉}zg郑v$≠咥d%<2x蟖碓誸DP漤絑箲周@扜'鄗酡荩f1愀 %抭Z%t2皆5.致 0 寃 +厺K&H$彄:2A獺c捙D天墥@矪稬蜨 勦p09倾I4揃!H袿櫦;錋c=j膁<脔8 ` Ys肩侤绌閷姝 偆I 伹~^諞m$慖:唰畓酂蠺饌$7B霅3詖>膚Q9峝PYr8;\}GQ荿ⅴ秹蔗 卞;A1躦?6扖$峌@ 23硐n敜脕竷搧 誜萊TFy\囓?9C晒刞鄟y#颌/L嫺++1' X$荥t蹟鵋)y陏雭*;#+榘烁T 9宻舂.Y岥Qv1鄗g 簮疏"(2}9猡&`Y旽Ua怬弌|嶴 +2碇$ya0s彈<倇绠kD歐`涇c膢通 暲鋹??枝U $$e礈餉苧?危垝|胰頗埳酁 +|摖簃[锵腚舊劬.>V!T <鄛3TX廆G谉庐'1l$9'8 :+琫9扞鶜>z"F 鼆 莝儊邐%櫮駁;櫶2g寪2?0*O7彀1v/$y$懶u=j2芛濽%9渟憦缿熉瀾M法 駾ER3霃姓壭鍤A懥帬巹撉垮T#f嶤>藗9#$霌蚗鸚昽#8轅$溧+せ癘MH鎡H#滰7瑺rFp隯$7V伬﨎'涑礝') r1歺磏⑩_⺄m淴g鶜莧鄱=舁Lup琮驡'槑宱寍枒=IQ奆籺<雳L之kdg瑀994鄪嫧荘6?Z 妬y#;F.I 唚颇_&5,A曉鼱p枝v姼洷裑n澳槝 <麒rs鄣\ +$ +麤vC 该`廭膈-獴U撏\湞膫s3肭sVLfI E`鋍$q熡烸^|沶钯蝿◣gi汕箪i!#@N$簏!覃纕H蝯1蹮支笀[茼,怚膒s馬睁D粓掿8# +)#'萩蕃<ㄒd幑=j嬆桸艪 擬 上n輏k5懏腶咨$cp8蟔;鞇&Zk擅XH?{巬R鶓72鹢Q[e2蹗寿Y8 s荗皎m8菛p v緝m$ 甛嗐'<{s侙!c鋭BHP櫫廖}9酾X醸0c寽s儗侚g螃4sy`>Px鋠#馥$炦s!踶9鋸訆牎!悁蔋9躉#羿{袌JL奣≒v席缰崳b畇酗!9!0@1圈澺;蓈a3斮'?O璛1睂3&$8$A隦蹝辯嫬佋懤羯5$nd侱, 鑡w`r=认^鮌5"囱暡L3怘 優: #庝r橞亮郁┵ap浒I( a燎蟥f崲<狶eA 紝銙{d摕聡觓戴 $a溉O#懶鶷S"曮pv#(8#巟隦$V娥s聽9I$颭E\砄n朗鏻)慎绝ドm舗厱 鹰Fe偂z1霂瓷$ 6#剗餘LRG~^鰌X 亷^F*h51Y鰉@8咦4氜岚Vo0*'${齣b%Pll =p3荖>範,3 憪GQ鶷q睂 掋) 忈S袣尭!HrN霡*$I鍝@缹宒脨rE@,h,蛡v秡扥'姇徒V;Op#蹑陞rr籓襊 t漗藟J5蠹89鐞1塾<笸d/2HIHB@閹琊咙+F<采侰/@$H蟗9颰弧2#1@Cy9郎峀s:oX枢笕==涪iD腥爲!P 実吭RㄝpH(<拀y∩ K. + 娾G$}M:34娎C8蟐脦囫臜啖d uB3湝c撺W1矫 +@a '#Qp胞q""& v ?繱楁9`t +'雬?歷F埼Y羈NFG~芵騚桽` 戻pRkD鄱7B 蘔F+樹l∑Mr騮踆+V亘爳黴宺j90D酅渦蟦sS 6堶芬8濺寕p{G詬[?0$圍庻-运n躇1K#懓报$ 餓'k殅E_PX8计$皥悜,Kc佭伐t:2K'gQhl[jrD5挲潣昚寃碜…_> 橠嶗dN 迁颸窈庲裄仲<嶤詰圬TQ5請"蔹鐸薉鐞=峔kY賷xI[:砍掍噃# +0惄苨貛k煾兜呚厢蹨审忎G險店d~"◢f镹R㩳覃?櫘4謬媅;"Kh寣>勦娢亢懃嶔淃║G圊 熷R sQ7 魀?Pi弣4袤D-燏`凒 +9$艝玛g-$I%蟁OROzAG*戃z謸扟騵侚 +屒戛焥4惯q闞d嵌jU吹佢 +祢駸洖@雠0> .v}勻 8蘮伥岀 +a粡8觱;)'芤鎒rI隻p彥鬉U唾贖P=墾菊!uf嫸W硲vG*@rH 蜰;qYm{6蚋$3 粩NO'戃~T4韗T靑3'闙'钋P灾|蕭r 豸? +B痎隦4T纪:$淋凁7Q冊; +0颩愩鸽E+.%覒羱H<~嗶溾砸懟b逅o'吏鋐;胶 +K競ap>炦症俿 +Le軖!錅s幘撇wZu +仮8]s" -餍")8吿$滀8 :慤$+FT1旾(@鑡瀝q廮je拓(|蓐w盽%顒Z]鄉Y6鳅QT<涳嵊e莖淨O晠-*& 籤熡⒛涉d鞨榥%哋{Z玾h帕V%I!p@ p8髋Z葐@L诡Ol{泸ǖ疯J"C纟++膶纗Pq肷⺄%g滫熷Py 扐礈鼉彲?竎咥&评.溧滕襯撗 "s+滎#稳$现樁K%袠颧8$怈 x壾U荁捏&ō蔑Q+黍裹)D頙m#;6@\FO珲4鵱Q!朙TA=熉ㄛ#fb辬餔艻== +墺a=b掎D疀;%r$薮藟$w∞8流1鍖$揆菮B+術筻斋h挪,Q葫姮T0$騃鄰P錣S\ k备F⺈袖q觙@(砷1辖Gn%搠9釄9 `绻酛挔滍/ 谹@㩳8霠珿lFq,j駾;Fp0Orr絁d>閮颟诠~ TS9K偒$r寁8跞#焃瞓 :將H赑扤忐蟌斩枏AA|r 膁齫0VW崏H阚ё迡Tcw%Am籋$戕凲捗i$渄巠獗qak<盧燿懶瀯嚟g蒻5岊KF蔩x'A胂犿V擺#塉菮鋻鲼雯鋶 :侳3?畧A厶H.1:矟寈羚鹣J凢g8l剶d侅x镶Yp轡i"韚pq衼秀豒(亐萛抮Q g氍鈼5;曹E碦F述駪W蜰I螶娾闓詵F埵bO2(x瀫 y纫@PbB +愝y9氵=>堙9蠬胮%躍3 =玧s检鯡'瓕=[Vu#Q騿'╋廽揽戩t駈Nn疈杤 ̄签oe谲塥5蕗+c.2A#' 銚X鱲Wsjf;貖凙 錋0GQ+詤H穊庸[F杧<{庻諿j簭<槣 鲷黬崵秷逼鑄纏A羚=3)6韒4`:搨珚磾ケ肓螠U礚M^輊C H:災V (R輁tL炣扥蚺_瀁B`1#3Q_[5罅o$H +2x8&獘kB+鸳;Y[箹 Uem ' 瘰%饈岮p孖#=B;~u亍}[8茆碒鹤c頜E雒熀U *坲u 鲩妑荸尀礐R儤=48!5URg亷绊ON3标G-UV院髮`脾3<}*⿷弞rF7@雉狿H桺斕匿湚r听@'>浴薁裆'欱鐾W*#潠g搢鋖8霿цG錛櫾 :輡薑樍 (蕶~炧c酾哕筎X幪 壅絪鴔T嫈梤q#徠灟R5-G8h飩  +j譞"x株xeR纘(zs濵s揱>@赂赛{~]g峀牔襣g騂(i8$喨l=s龄z折 鬶&K磒C{0闉鯈煲3 憙媵矲JH8暷庹予e7巨m H+0 嘰3芆L侙巊ar溺p寽彲Q闊Z谈箹kh`梐F峱T嵤H$ #'郇┈頲芬襥L謘QOx  撒琞+'r辣覮l;撛彔鼹 +喪鎤遁侷7釬'9闇灉T3],赲&"呫戀HH8胫7紸1aJ傫>儜蟐窜mX碋轔1咴-E僡鍅t鲸瑈|卻U>CH韱 洺宺O鉎揋:%仫0@蝭潲3⒈奆*缻爞 +'<齍焧慐0]铖|)`A巖} +7Va匝eP绤零'< 搸@=J铄暦兤NNr:侀灍J# +6E`c囹=y>鏉;I0J機<幠鹵齷≦})2g(凵c蜂l懇昈顡9李O衐謚琶媭鋗价転O$~4劁栤y>z'8繠H }1R\鯽 蓃g#扜5砳綰>GyRc<'`<N}3 +2,jrx9#鋞舄[R敞( 顸轫 +%2-軰dz=I诔m&z,輊Y浍$鋷A濧珌Q%實"(FF3抸鲢?協'貶豷徙C@$侷麈擧铒礱$(# 懥#蹆自皂c/俀p1!荀'缫Ф,61 q彥チ蝈嗞.R鑣 rpq情Vp适[j.鏱 抪x未V柆鷦妮@殄煒R尀躦両,蟆#(#=F 9)譒优q(楻鷖跓f>醁穈9?P准愴瓔7礟母g$1=匙廰臗ol嶜要應亹y==侈焢鎔&!F蠫寔Tm4丮捘c~騀 8郎烚暐摀od;kp鸅-膸籅`2馮<%澵1. +]较圭誺hHW`抆Q漓{䲡刁c驥 !罬瑰3詿岁k5u&腨i襅x键6s祻%9苶{娙皋撉1愵庶鄮縹 KH"曈2萅I%撹:TwQ礂1獊摴I巟>墙7瑵稍炛醖&饎麗}GNk:[0绤)?@#x趵┹眘' x些<甾琝H孏陧褸埨偨亮隨侸WcL鉉\ ]偁D#svJI9-p颉僻渹p灵煡vp:Y煷D落吱%#倇c'颥麡喙傛怄IK選g垧喇語/K'劤超萊u$7岭鶌祜礃rb9@凄88霨z沩eYKN岊,雰兝席8缰遏齜Xm2E鰽昝腙)Bqm艼签󈛀冐罌OW6E鶂`=;餳4I-A镦 悿をH$錇茑{u湛鈁藳H洆冒 汩揬鯉F鰖刴ue!!?:!=稢]嫾嚌鎸撓$阙悙L针[槆w=8螼师覆1诙&鉵效鋵黺6杹qcb諫扜$?/鏦瓡D穛泼a崅1 鳃V#俞蓟7 !r;(泫徢诋i2ΑpS躸 毙ZD&戫a羆銦5辈'$<鹭H!-鍜_`Wppq?E_c>k^PE闪 戸舮淼╗C5d溵堁记nn2膕滝酚5<4<8嶚=6襁屻螫氽沢&< 珎:8〈y葨u蜮-儛w<│瑔6鶔扻伷s飷1隥阜d#塶!凲旴990¨;k笇摮冐詭>搞妿6), Jv厉<I'Ⅲ@唌扟L摯!)?瓳/f捼纘$﹍陏S帬EC%罞碔r瓴N *輽擮,G潃8RI 瀥'娡搠lKS\Gp芷管營=}zr絫揬的^\HSfP热 +.-=阍3审<チ+#9 [#2繕吝蝕 А=j$易@M=囀 耰#$駻 v郤頳峘將$ ps須K4螅: pN 櫫愕:\踈$DA炰u>祵濆n俩lZ銭 術滨5rI膁頛H8鹲褬n臕詰捸唖RO (鉞家沓'汩N;垎庳B估D Bd9鋻AN掬幷埳r"IH'绷'1冴M,1蓀阃G炓/=0H趵9Z$侹w%媭 扇鐚蹯3氁蒃y娙痮na辕m壧@~8麈璂 W*IL-慑I=9z郩k怪=R;20prx={T衬鞫+4]褣猍傘恳數wA舟樚"蛼 N鮗z]1盕?y\p 呻寁臠!溮D屖F鈳998隢6"$y$0U=O蝿簛2氁x鋻BB9A熓E捯牘m浡$`儜W#磌XC3盰(寽刓u蛲eE$愜蒳$N\1媚q<佦脍珪囱(愜嘉嶭o荣侷羝{踱v5◥+0嚆矜测D劋亓FGr;t4藅孳0 +VIY 8㑳3篧a/I k凥庘酿20I=i桏.L%w禖捈兾=@ó燳l 暼!9蜧S宷LYN歉H)!p8雭辄篠鎖$68巌Q|礼犎扝8錾#剽+鰒) +$9鐷寧齴鸔2噾緌#禢T8鑚IZ9L}騊#$邕$q鞪kK酝塮k5纖epw屶鄳餃T$:榳^!'壤鑡弞,i┟2寳寘 0?釤胜詅*>瑞rp9um!歛* 慭葀 < 眨k稁Z02 2p9 {觀贛*皧I脖怚l='緄cobaP`x袦術鷚'VKVR2U斯$q2eA怤xw?醃F蝃汬襀S蛼<盾H迖酯(湍獀6`<K賢WH@鲜F?!侜Rvv%愰孥蛻$_*T鐚鷳蚞#$k,牏A\`抸纁毣1硳7cLwuιDe堒0 p2^y莑R數筋uQ:m!f6稐2獡#~1幗个閈e@选&F嘢=氇謋k{9" 玚8醍f-n阝m璟4 K圱$丙宑 z:魀8鐼J局\艼脍刯钘/涓翇八廘I`[3砣6  +3~脬摺譀╅rY N.m渘巟芔嚳□潯蕲I譽道颚C些?PpG液ZI^&v陠B凵+倰 <阕U;葠Lc$O瓀4r\Z.@F<@j却Au淚p'>Z\閖+沎侳9#瑨楝躟葇≤8銎?T2鄢1屼庎幷o.9X璥刽,K膶=獹-.妌>偏h赔鍎rObC=~蛎2pOs忬鶹菽r鶘#.FA#'詜譬蒇宐]|鼗∠Q頌=砓芣蒓@rZ) +#憻C鑚xPm輰鳗 =饫H *噻咙阔姘颽吨唐(R+6pK1犳υ8N2)躯C珆I襄[v垞騚熔43.稍偅憖詺视 +h溌6.@#觽G犸G=蘭叚 $s濬J嗏 TWR#+^8 稙fh翈GT搼幗0r:T襔诒 慒泥ds烝T`28` 鷬-葪翐 淡馊  1Ub蝇.1火埊潎 x 鐞y鐐kV9砑;{WF竴慑J攡=聣M1穝 -O谝蒞嵼@绵?2?1S 桸@d.Ar:T)瘤#冾*茥;臿q:4慸!$焅弎P6蘘r爢\8?08鷳毰紊摺 鑟}楪%鋩斳@6≒zw舌 +e窏闎"TP d抪OL戂鵘璅A+汿崡 )'1 䎬狼紺a6N町Dr躦;zzW%揿伈\/蓹實9鋵d鄿冮Um鎐 蛞傺槀p@蕼溽x隬l慚笂7G1盫01邇鐽~勗Z姭哠0 醲膚?鳜-傱酝m#%W胷s仛e孠ai)洙, A荺{ZH中G!篏 !@6H' *(〉8et潐贠8]R枛緝G+-淔W/℡,s東邕+`氽9,t訐Kj+i苘睓ヌ 匬y洔=恭~詵S 9l'8詐QOp役軝 +#!Q3鐰ó衆jKvH:珋H鑡審z鈢l;廴侄犎HH瞍g'鶌堵 眖X g圹腫!!8如衾z娵c"HI$>晝婱で{hG閏6^|AgD!,F秩=vL牆守珏钳Lv隥-铡` +HT嘆<烲g4疤稹ZDtu#1訴wN昝V!&%usS'&樿葋m樉餔嗋翺唞猊笩&d##濰瀓寂^)腄#<}=鸔f涁咵┸蕃[偯# '8=lf焨獲<绱R.@牢3:v酹>IL的@F 疞弤p}z誨峷dSG:鋤yR靚M 嚹楘>F渹)%巟?C支僓[睐7* +H驶攘lx鄐彞b4 虙9A頺FyP苈7郖扐9 ?蚀.ek 输 qi#r 縻薮-諆*'2樝bon昁U斳Z佸9敹)9齷弗鹰敨$q捓潱=:舢>壊vv5-弩!G岤g妸8+,撉得袕N菑覡$唘祔腜鐉褡溹鄿饅qV%嗮@`;H'閃=U頥寠bE蘬$怗粑? + 唵濮沠镚庂t `殩)萮劆!V 寥#=GM+鋿恾8苨扤r=:.譨}D抃媺妷0@<冺5+I鰤J噶h0pEM鰘9袨:t%&@r1料c4]祣仾%衣I$咢 墍A艫楇Un$e繋2~}岒p8黴m 雪蜽渘$c镉5 邩冥 挕I'=AB諆vH襐*溏2sD$ 0暮捀n嚛${*徤1眚嫄 恜@R话潟旲$@8;豄b灓L"贎琧欵善 珞洒梐h筘躄w踖].xRH热*r=Mh^>`!%`捒徳廕途穒l萿嬏屆!9;駥鷡U跡=i&[(C%H $1偁怚*|仦睛i急;d珣捵0蔣蘞8(A'綨G殚Kζ-礄# !`鐎O#@*>翁.[Z+掄BbPo錟4吩D狗>g裂42&DT!<憺倮爂2 @砠腦 疘荏 +嵟眞}8 +獟纫Cpr$謁甯d8堌=Hd傈毵倒芿"@螸=滚Xf ,aA`o?{闔鑙麓堀蚼移I.B債覛杛奠螁0晤8 撐q渦范(.虬糴刵膎 H料#8ǒb['"擝F湝侤蠕湚=玭鲕l/K跱 竻鞱B1卹\8<=EIop3虽鄞▓yZ-Las搱 爭 撣cL彝帶l' paN頿;3韀攻wb鋻m悿L剴c热轅乳H酲牭In-鎹蜤ˊH$∴$-*藛u'o'颖#蒪憯P`尡鼀傈}ZL涆BY欿`e溹摾PT氵須-^-%鋻镊#幘!{@か繧8殪z3l"轄p&弎8鋑袑璂j4蚂F鬌$$a儉=1窖t硻"UtDd<撐zc撾诖a歩 0悾赊$$硅z`焅驲EЮ鱩u 僰欠60H駚莀J畕n3HE純 L寕缿相3]p椞広IK0 '岝绶N礜*轹甤 +"悁8@鄛*蕚m稤,FR鄬pH#Ч璖﹖ 瞇)⒁1.] J囿兿捉f閼0wr拍`F2x# 鼚jY5睉f昫c#!儌B9愕%遗c8/ #1戭?\謓Z4侂八計詴".]赂鐢:pqo塋3n +亪$%1巬rZ5A壣%K卹=覘$晒%,NA黝?祈$.ぉh撃遨$偢 `H肷#⑸r崱2Iq络蹁q岝讹媲髶H H输t汝H溣绺圝餦"R +9酩 \勅!H欑8PGL濱蜙鞷Ar$慘.3生妴嬲巧剴耒+9蕊鵕X-膼罗Q$$de0 扇/e⒃z_転^畓#↑é+紴[?酔E豭:4(gP狎I'+徝4 d禵 +=,奫P蚑矇$8*I痛怽`耖莕Bvn阖狙 d $s咣絝蒾2\C"D飩 $dz姝:悰备'扤GJ綥 + GF'8=pq霴镃j+閎H甆Ao蔃屼優>暞(p2@0pI?楏獋 y輣d9Q珀O_\訰N傚P9,Xr3H鷙~弧靂庉債嶹鍔幠#鵪長潳Ym鋖寬 !入求⿸O-#佐㑳%7%; 搻s螼鏒輹8镱惗藎#叭j皻I.'h陨2H21廚㧏#塵鄽@輺'=u蝚揊+91򠿂$u窃規禲諐{$澃巳8$>纞u塹м缹抂H,え8頕GJK蓂罭;:屻庉-頽Y腤R yp莬u$駨|譚# v尡j#捰i岡 ($懬璒%艒痪4 g昐8媳5o礖V廨X葂d鵟 懥8Y笟f秵K"&V9垒屶寃 t5惰4 焊i,楤\1炪8"簅.&転\g,樭兦ON;Ve糝 #I"G$; 鼻BM~洰R8墠Z23苳庝泗巢c緞蜊疤皞胮$侼F9#8閵dJ!2D扟B罖8?煡G缟6皓*K轔^pz庻藰g涗,ゅ򦕮 畜歲v縱N勸瘟I\*P筵恠迊pね/憘 )1q 佮e凘#0OZ;⒀>@ 9c零〓򀖴跫Q 3"MRcG緔9Δ6扫9^K湬偣 倊嚪7饕 '.NA脙鑮G啶罀J暮8~0匚鏐m玕鐶叚耐赲 勫儉蝳Fd慪 场R\Ny攘<毜ut䏝$Cd 2紏*斄..%Q2|笉崁r;`圄8玓侪50紝裗OR/怶dv渰[O0,pF P#烓 '48缒堣I* 9# 鋊隥%閐{嵿(劭n緮斓Mz0葇劓箯bA<:巶甂 6蟩:瘉呯`餆臏泮U7p奔a]怷鋎灲*H[芅褉rqP赩HiH13巹1弉3冸廧Dd劝r]鼫鄏I镂?:鸵疊1佖酙趝寧G鄗V禐 憵I%販`F{瘠襈萜澭J1&霓c'$侙鉄o9髜LFX`90}城郑駽\(赸pr!黳?齌鮡R骪7澒类鐐鶵掍I-弄e广泛2i酁Jr=++R崀謋8rg玠戩3鶸媺^8蘃 d栂 z<o床/?\泱鞒頙哟h" %{2N=撑K崽怘$1:鍤L8憙擓q虴p颥侶悟$y苨#趨 !&h[ +^7.渵鶶. 嵀∪軤! 2N8黴鑡虸 dY琓99顁qVa砳 囂B '侳0q丬覫連C"]s$'广鞷K夙侳A増 + <罅缰妻蜄F(菶郎鄵飺i晈珸2n!.屟6枻g]涯憛'繼A笥4;@趻7G搚b谩9凈颭乃"掤1*G c#婿yUm靿2B* 嶨搞彞 贿笒$FRX!l NFx斛麋覚o8鐩x嵤遘Fs蜧n*窐.8E蹘0O叭5钪T/侽$w跗xM翟.環窉[糄(6 $侵諕}n芓?68廘桩sN,Q蘃fR<$帢> LyP98銦Q邭J[_$w${m鎦m沈 BF0q巟如宗衍YLD権崂#`'$c怎猹>p3漆 {#滜v' s怈A颖l=:烴)蕀从頚 皰,@p% 搾q歹頞L歞筑S咲6!累$;:〉歱瞵漤藶緽支父岋! +筛7★寁⺷M&栰D2;偠@ <帟VIo$fp└駛=Nq閂" L瀒%06=zY鍣NDe278 惴 郣经t"2Av皎Wr$抪A肜锪肱)[府`炚D鹅1!诬s袀xj&趇%戹 刼#=xV頨$F佊;<8^z狡~緯Ik5鍵h籠笇備$搼* ,嫨!%O^弍1彞]=宦瘳E9尡 p3猓詃鸑謀秬p8vqi!-F 僀羛B$9$ 侁z*缄肿6牖煊.猥侇鑚萝皝cdC鵯 +髑=}狵唳[Y #:O遥炓穜EP. (*]PaNFH镪艒!?29 29衱鶶焘曎 D$#89==;冶!笎鑴!|t霳8==ijZ蹈WBXDJ鼻 c?=盪d苡\Vbz餈席衠R乞C~扬E噈~囓i.Ⅵ@z摓1侟鍠描4态-贗 :g剥\詘R饑e 巹寖貛趔n!S"r帬绋潴U6Urト*賎:蹊j到貪裞鸉潴鰲QY2噹WBNU< +*钆vnD|1铎鄄鸑聒{ +炥9!我犂蟎u嚮/5睝鵱 Rr咙堚戉D萡, rG≦Ed蕤l婜5X?98樾 +藫2A寬塸1垮渧螶(璦 P朒X6O藈㧟颦5塕-靝v灏3锴鉋]I23籏吶╉X黯o1U傗!$,9 w鑼U耬]B耉Ic潰蔈普窍95曫Yb弜慣哱朢@ 跸UCkt刳C,訝dh1憗廖x=眾l潥@!岮P暫儦(鑟FI%b_2q缿q寫貜O诗yd<诬溷䲠QX萀檛餃$奵,'熕*.RI'亍7g?N碤We=娨9语ce-鏼'e~剙;v q +腛斲儵庂⺄QD禠L#怈轒6\ 鶂?*穝y/"谤楃Fq睨QY=貛屋ngl澌[#岀 │Eu +拳(庌<唘 Np3E袥縧6肠T 嵐U牭1捱<0 濱E(粙┍ +鶔 +7-郄~靡槢!!怢慖湭 gZ(描gE鰪>$-噢c0s讕б Y,2爌`懴z窳'%Xgm胏9左籃涚&阍0`C雭E{埭!y鏂蔍'菳18>\w4&郇蘔 +d* z?#焃(玅VQ5劯9蒪A觘扻騀& +p1'组E咍$袀rb(3'榾禝3幚徣鏌qva溉<=H碸剸袷騅QJ椸铅;*,[狶w]表`岒>統悱UY 峈m頨傸钵98齖S#eJ潘9$ 麼?*(﹞惿=哫%袓膓宍?"1颭,戼睝菾怷亲簪姅7盽ê窎H鍽肌烨?C屸鶻褘3y膑F9(5"+N#@U O蔸q屧j沩w +园悿亹?3T7Urv(b2N彙熐讵Z%蟾炟鄜8`燃蓥潉j +p~n<颟-銲gs/)濺##胍*麍r7氒(赾S:~絆組O<侶a憟憮=0FG~碤ZR訰,轩胰娔竧P'$rq1O捹恧h槅!譳v98漢ⅱ{!3橾攔昝?石N璨泿F 嶡蹁袳d 萉檰B流稆.^21#<鋹Xg鳴E_@Di&9XC妩曦蒬$鄎鑣之菔怽まJ4$#$(8'銺EU鮈;#y'2\L5]爭鄑轼詪%8,鞁;2I cE_w绩+繕~f'钛E +endstream +endobj +85 0 obj +<< +/Length 72 +/Filter/FlateDecode +/Name/Im2 +/Type/XObject +/Subtype/Form +/BBox[0 0 2384 3370] +/FormType 1 +/Matrix[1 0 0 1 -141 -218] +/Resources<< +/ProcSet[/PDF/ImageC] +/XObject 86 0 R +>> +>> +stream +x+T032472T0AdNr.W眳灆X佬栽P夏T撂蠿宪翿烈腂弦?萛%+槽 +endstream +endobj +86 0 obj +<< +/R7 87 0 R +>> +endobj +87 0 obj +<< +/Subtype/Image +/ColorSpace/DeviceRGB +/Width 1377 +/Height 1485 +/BitsPerComponent 8 +/Filter/DCTDecode +/Length 107785 +>> +stream +AdobedC +  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYa" + }!1AQa"q2亼#B绷R佯$3br +%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz儎厗噲墛挀敃枟槞殺¥ウЖ┆渤吹斗腹郝媚牌侨墒矣哉肿刭卺忏溴骁栝犟蝮趱鲼 + w!1AQaq"2B憽绷 #3Rbr +$4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz們剠唶垑姃摂晼棙櫄ⅲぅΗī炒刀犯购旅呐魄壬室釉罩棕仝忏溴骁栝牝篝貊鼬 ?H:趭((QK(碦t孯R鳡RRF(隌锧倞ZL0Gw4 (鞩溠)h4PG4t>詃PGOJ8Aj1KIE +(4f@5(4~Q@ 迵4絟竂J)i(h傽kE'=鶵襌J)hユ)(h5QEQ@SA5t5}(P (-h僵)}>QG4P 蝖聙 +)i(hRz掩 孯R襊0拋/覓4RR襊J)(颎j)(磜ぅ( +ZJ8イ +=à 1EPE%.h擰EQ彮QEZ挆J(v((3G酙E-)s@ KHM4擰@Q@zQ@潻E'zZ?镵I@顰ぅ);欽ZJJ; +QEQE'z/謯(燼E%t顯=á-'謻拋囍?%-怰 +Z;Q@ @()QE借kI迾 +(ね/J(隕R鳏顯:P  +Z(燼趭:Q@倧j (QE磾(&h黨楍5 :袳c敠佉 IEQR1(袳僵((あ敋J( +(借ぃQER襳奐(Ew +怭鳍奐Z 愋襾镚J(牃(QGP0犙EQE訯顴屢襌鰻簸(黨?ZNQK魻bQK迬敶Q@Q %AKIK@ E擰@ 見AG鉆泞h歊)(q(4磾QBPh"幵QEP0鞥v並颎Z問摰-鈯 )~攗Ph(糱IE-%~4hQ迯苺訯EQ謴锧 迻愼觫R鳡bR(~碦襊R酰4P鳵訾Q镋QGJ(s歋L鵕vイ謯9鬛儨袬&)h埃4Q@=i{ +C@))sIH幋R1EP!hR餇c瑕o?穁1L軫鶣>層7翌㎡鷀)花軥緧蕸窺糚馡鞰((魝浐嵲)哗w +wj l褢趢忞E 燘袵LQ~tR傽j(4R襋@ I鵔K@ GPK鳵Qz1/襽覟磃拃 +(謱c緄){R颕Eア?J^鬚c(4櫏 +(Ph燩Gát(燼EQE)i(燼EJ;姻%J)h擰E-擯襰EZJ(鞥笭瘼挅亝%-QG-PE1ER +1A +(=)((燗EPEs@聤(qFqG4籀愺J:Pi/v瘼?*1IKI謤 +_z1I趢拋EQJh4溡訾(((蜤丒QE(挃襊仛J(E~JZ( +^hア撘亱I迶襌i(SEj(聤(襌袬 @イQE.hh +郇週5;w>曰("樓瞍 sE?u籗}h翣n且嵲蘻衳 7Rn){P稲瞀繀鎭nぽL⺶P1Q竎璅)q灤.釆e~霺ZL &xㄟ42緕=jel豭g0, +镠 -Q謽Q(奓zQ@ !-;RR:J`R幋PQE/jJ=ih8鎶)h(鶳-'C(彞P趦謯9(燘QKGzu1KH-%J)z艳 +J^碢 鞩E磾RR夾見=瑁-奪8挅)hQ((%)B鳎立亝%-:)x)(脍(-{衖(i;R袬 謼PQE- +1@ (4 + !襊!i)M%P}锠aE姻鎶((鎬詡奪(4Q)h:(鞞%絟(袬 E~4擰E(顯 E-('ZR鈸淧0袬滄傽 Fxむ);矷欽3:怰f屝奓鸔Z)攻鈯L褳M 帰怮趢{掩Z`磾P验E~敼'z?)s簪亰(((%EPK僇zR斃N(P)(AJ}=i){(齣E済歓 !謱q颣镚q@=閽v橗1@撓璛厜胪W=xpz#AE擱3E&i3HZ3I歀驦Q欱i3屢sE&h)<襌f岏@镚zL襊ㄏzm鎬4f拰鈥Py<覂趢E%(憬-%-)qFhQGSR;裀P~4QE緄s隌 J;褚徶怰簌莦J9.8ǎ=(隌衵QI_`t已迠`J嶛試厐&旾%[嵆VW慣blu玵)$R +;Sル欽Z)~擰@zJ\bJ)h鳡BQ@bf庺b){奐S@ 迬鬛@z((Q@儦(/jJ(( C)M!椆あ(イ燼E))}QE%-QI@い&4祠淨w鉀覘4wネ74範B蠴&i3@莊4q趯簪歽4緮f4Pㄍ74犘矺覔>魒鈥v +1Eb帞Q迉 +(鞥-'z(螈屟@Ph(v +JSE +(爑燼8E +J(隌.sE敶啂P?*ZJ(-%(鞟燩 哎イ葼戨@聨詃c&E-, 苃.饺⒘qh撎O +,舚轧穑蜲Z,$うy韶焰冊鉂焋z F3嗛E榎Ri3Hz褮泴ZJL褮@;<褮m詸8と鞩Lc尺𯷲vO訰I3@ + 敊绲&!佗4珞砃桃奵$)嬛)坁(鳎-0iOJLzEP>詆R笸@眯Pz~4倴iGJ:聫C@).O酖锧謥讱=)M +):u=墵嘁J(((E0 +( +嶊N*7燚G%)隝@BEZF猚痋责]S/j姄長)袱PR衖; S@ E(沥4v燩0(Q迠(iFh鞞抨)>絟k@u +(@)(奜镵@聯)MQIK@z(镮@參(RR袬%)掩魒)创优拹齣縅} 齣3HO鉆4g欯?4zfy&8QM螶(AJ3M鈥)sL呻趯矹M2屝驚π4()1迵隖h4QEQ3@Q@(牃3@z)(幋櫌亱&h顰4欦磾櫌倆RF{褳i3FhGZZnh瘢4梗9は(&h=hsFi3I(zTr萐w)熵Rj$湠Υ刵g9r9褛$灒隥R摓丨綒0霈sH撄ㄞ哌D蹖襣Q湂Jj) 杀s魻s迱 覑E;!]侀苅(#X.斊 熺4QGz(1KE(甫i{{掩拃詴唩熷E呆85b.臠礦6 +i$ロM @4擯 QA鞥6杸 +ロGj(襌訾顯-'AEwワA!ZJ(?J8顴% +Z(─!!G41郎獟萠漅嵣r)=i 窿镫Pri1[狧琳} h=溃3U瑙焘O祽7蠶鰡CE 闔涰 螸Pgoo省チ簦"鰭$3縝?* 蘻姉"?kZP@鞧* +r?蛗煕簸29#Ivゃ艄#豱r;s4亪?x襰孯4逛畔|: +6F}j汴i陗QX苑Czw>奾4g娎評衕燾矱6俬禧袽蟌:S戽妌h"悋 +)櫏;)ひ}i鄐N桃巋@H >歺4纕sFi(0?6幵闘襢Z:襢摽;<衖 磃 .hr(︾謳3M.h&&i 煲f"屢s迻洑3顯 +{Q歀驟/sIHM! i賉扮帧'#逌Ni+#挘攃裤@胪(崲攢) ㏕悱%P瀞熉帵愐潗A腠M>灁溞撻K+(莦m/9@o苾KHz驚 c'蠷'提僵%8Q搥O&瀮撢报烷-糊 #4櫘cx<籀摎(*Bq梗9稱簺(=(鞖3荏Fi圫驻ね1亵=榇f4g4櫍謤*E9╯R)捆"t〦D*U鞩GAGj`/覔杸4R袬〨CJ=i=魚c縵?ㄧ(`Q@锧{R酩C8颎Z悱 隟I@ I(E8ㄝ甍臚d鎭g*"侃(iFE%(憮蕲Fj歶霁Q4並B籁纯ZSH:F1Gz;PE縅'鉑IFx燽襌衕碦Q@ I謻拋<袺A鞞臓QK巋)(磾SY偐'牎*錇U扖!$F7潗;ⅩTtR銑閷lrJ\3趻3奛3TH橗h;堑#s 狛T&{褤霘"敒8も悓 +=鞪y>倵孭y里FOZJ\孭>礌g$(&敀S嘕N:戅·#訤溈v毭}(\~5實?4f摰&kA偻4苎vh螶ojMろI膳歀笈&M)wS聦钔.i紌Qvi礼Qu鏋z`H)恿鳓ㄍ%纕i3I3EZ)3I渨⑻g謳糗湫N9-Q歯}&嶸;幫2J\佫嶸+≠鎭镮竮觲. +\󠑽妡2?濋唤徲??g!s歉;QM|嵪N)踎⺻峰G硱饯{上斾})罗rp!r~旪攪#軓緃/丿?巛钦h鯮'诿 %Zm 奤绎淊X耦i 跜筊岏W啈}<囩J5?p?c 鲂頟鞥hQ譆=HZ^艊穪桬k?u宱O隣_\ㄇ殻緌O夭^"&55蜰m;/y苶8xjN8莦螿:榄x奿灂9剀#焙鐘谄蓽8てEt唣徛牫] 些o.S慐呂巊m銑杩,67珜笕3Jmrh皊U旂?b亚&瘙}廏'>ts碪伐("驢;9$酯贕q@e裈屇鋧)遦言醡槒\R皊y鵟Q代婅Z鸌碯'鞅)FDU`瞗C詯?囊hjG=盀磍? 甕!t踮簸:鬧F,c糟(Wf挑pq隱咣栵.茂錛荜V2 j闊接廰M"\櫹89囫妡c +*{蒯哝[怳簭NW=M譓哭隡鞱糹嚟s嫐CJi )Q酡丩(E碦Q@銻衖zT┮'痁*a摇Z擴!隟G~擲(ネ 4QET鞬趭N聽b袬hN鬚 ?锠0イウ9镚%)酡岏@ KIE杹@鎬Jd4jB3@姃)& 镇 )乢T礼HW.)碢)荱G&璄4 ,疛p镸^斻T迠(襌欽)hわ@叄鵔趲 奐/z()(i;袺@ 覗幋u颣E%-Q鯛aEzRP覿倢撆+0_s镼秊y[+钒微塣Gg漪)'薤6韲秕 "簋x峰]*9e;钐靮t獯F憍鍛哓窡笙酾fO2頵0 嶢ち璦釥掮昣难`鍲M!社瓉燸g潫L忧囶丑ltb鞦kw霊蒬籁熂塃呂!硇SpkJL=盙#=蕘鞥儩亇k y躰楐評絖蘏皊墙H;譎t[鳙鶌q襱輧野s 滄煙悹g9畤Bu更跅旌7y丼碐7K]嘍颻萄稤涝砑巓厎+ 4}S4綐*鲑沃荶镋類棘9髹N依 唣K啬K碧獪*_,鐚㑳 [OQ乴@tS砫 h飸G眻颈.堢DlF0s)~!戥鵚F5薝閖G錓煴{y9锍蔊躢鳶治b哧翤慀徎n?:=黻偸釓魁驩'$习鳫d焧'$v?逃鰌mP]傧<焾d輵獲膑?軐·=|q胆R]铻al}{涌/ S侇EYmv祠(? +o鲥徼|愉廰{J凜A磺(鉔磺E+kW燇誈)?蜻r前s灶=t EH4 钑X陾d珥 鳶Nz?鏕,{=N逑鳪A椕硊ij爋顖弶?:g.I擇j-^}虯嶙&q系?啁x瑂s992>4觪1觑忳; 见沖饛 5/?汔⺷唀愼f#際]侯j4寇殠g缱u刳x?镏r{熎洖q逓乮w:飙4g爿*橼Wy阔灑愁td褩sV垹逍汴k煝媷+顃琛A鵼霢ン碼*&龟(腹|螆] 繬=拸烽$筡\|* o燪M:蛨-?A\鱶C宻H9nt?鄱莪坌籮1\1覗澝礅`>璔爿q醅>犵R根F89莏x*y9 +掣蚐.8'隨z晿t性X猡9573熉MEWAQEQEQE]抉动譅&雀+*賹GM殖%M_O鼷指鋠50S唢n*凒袳'建5!'JQE% +(⺄R5S)h=z? +zu S/紹*!ィ'酅V)b(燛>淳j1P0>(P0磾E镵訯@儹驦a +J^詝(HわJz襴鎼h颎{;P>碿)唇ㄢ傽QQ梢5u56聺M齣E8 +璝媭(@Y^旉D)h4P!1E槛丗i(h燪@聤(4磫((5拃>鬛(犙P'茪Wd積q鷗3邘*郿馩迫銛?J>敶U&;-P ( +GJ((((((,4蔸翩8=*蠖O5潔!a鵟戼 X庎SpE瀹佺璫挝嶩>L; 辿妰薖1績Q8;R鎍艃rq歩湠2~灥喾S襞5B侼NzR鎒r;:(2z8U飪鞥豗q巌练6镻帲甇COFQ⑧J螭3m壬鈵:3!>縅.D'讠6H 鐨p雩膛蕠飈=*D鸟Qnz礳痦ZA7⿻F挵擰ElsQ@Q@Q@(4((枓(イ锧 J3苨M +)qE%-P (ぅユ亼K腘z褚珰(5\ + +洕4:PrO5!S搸1T< +淘j甅;f:u 惙 (y,x/绛(设*( *s幋鉷估 ~Ⅱ2HN)辸#T x醽%m橥 >^繀E$8Dd妉W>j渴8哊湱iu釩轾Qp/>獞7 +{q爷*)躄A贩Z%qΚ岞Ж燎*9豼Q]' QKE%磾 +^詖Ρ罓9ja電Ry&涢X詝奒? 烸乂忏G\wn煃W窤摴r*腃%#?摭sXH鐴Y~1L鉄+|纙狒AK:襢嵚 E&hRn鞟#)(珩F酅)qI簚聙 籔\~Twウ铨h呲槆T:vǚ 訒 并畬*P卅凧(ミT貉奻7驟G秆@婟(イ(=(4P) +(敡牑iR齢Z^敎QLB烰@9ヅ +N茥qB;奪C謹欣=桧趲倧J嶰j7燚-IJ齣淳9V"5^珿@S)粽S +3G見3E锠(4b(鶴EQEQEQEF!y=4-喨=虭灴螌條殅t6藻;鑲奪J阅(q锧 E):RPEi@ E;>詷挅拃 +( +\QN.舦駨j2奬qI@聜p2h 劚悭Df5鼙蟧J<绁;0:衄衚燻>储,0M<涄濬1簸2箖?酜鋎湔巕/佒愂⺁lR@85=! +喋隢憙SR荓P"攑嫹!})}呗8$親嘈"-w=q蒥( 孯3Fp:歅}闠\.q5TcvLナ.褋K孮])X鋘霬Z>敶%%-PR袳Q(8リ3'z(c妏阨9寊鏃槧/ǎ>攃4锫擑h;RRづ;權P弞J\4Qs@ 旫餆Z#疪去4)8閄MjuSz 2M踦卞7牋妮?嶸i虒坎;,@倽%檋 r+H膟鶇2GZ9as枪B终燰薲烎 惸v9'?JQ#|宆=蔨K|鈿-, ?Z綪c? A滙O憢$U捿YB睬潱障,~q熵姜)龞2N@l駛霁綵恪ъ榹dVXcQ聤揾锱JTz +^i!{dD镐Q飨z 獙,蓵K牏棩帟槬怱夢FphTR瀭5|蘱幋橦cp0i鏁簹: 鍝棺eb[燍G腈銽4毕耵黫/咛釻sZ欖\J7-嘷qP 8┋G跬U踄擧_覎缵F9/Q齢}ㄟ9*3踱廋@o4呄覚袣3锧迃h軁i剼C蔂84基湓g) K戅9=*P(R攣)儳驙gP凓zHs虲磭趢)MJ ht樸迠Z9Pih鎭迬{b丯づ%.)h=- =i訮u.)h槬4(隖(@aI煡.y奮潻h蟡1tノE'謤痁C鞪%驤i=h4f攖逌=楮衳15F9颫橍u+9#jJ霢覕錊i2帓F臆纾奫a觼黖謸&d奫S媲骺J7疾f玌錴┈u=h鞨JZ)储悶ys摎JPO酖隌qA鰻怭h並@顯攦酢E2奧鈳越 +瘠阋幵攕GjA@P苕J?QIE0 +(E摁P)h )h*7*9)踱恠J荸%! +iV挃c駹淯樈*絏姌梺NΝ:jqL挆隝邭@(R袳QQE敶擯奷彺`殨焗虲捛q+HF煳sI庣:+環q7p% +ZO鏚L琅6椃J1@孮))q奛R褜sFh.M-啋澠1I@ +z +LR銑(qL=jC託8&撥&#嵈A9&Gj1镾鸌w"騑8D <h4r.料.鋌$陷鉁cC邾;>D蝾7薗衠K祡){酰瘢;h)O=@や褍G*v(俐J~倫 +1鶴蕛瀅#%(髋)4r13 R馣趽隢m夁)G-)縅qづ 鎻j1@歶'4b)GJ(1閝E4sJyイ"z_-樷枈((9Q@ 迻('牋(彞PEPh(Q@ KEwLP袳QEQE~4敶P巋(((;SI困S$郟29l靓骻泖N)s\骻M5d(錇燬m副敒茰5 +3/J沋m懨佨娌殖E梶褞礵[N鐟T,G趏t-擑WZgt1V枢徆啛pO醺S犁歷As iρJ4y\轴靓嘌`箚t賃rJ+3>譕v貋隙+寲M踩緧齣42鐨1岏IZユe4R鶄/X 緃鎻4U/7奜4鳍繼驠)聁Y辤 h0酾壡璬 盢笪:補隡笄璮y瀠4歈6k/昔$拣h~g見ユ烝Etv=)3鞬P0(鎺鬚苃苺 +ZO鏓-%((燗KIK@)hう -P:RR(@%2N ㄞ 謷暕%攗4*蘁蚗嚑唇)氓5:S閫RR岩QE福倴 + 锠(悳 +*wv񬮮晲襅8┼cp1Jk*柔敭颎S灂D儹/锧袱< +閕1-'A@4個咏琚 +O茤LqKEQEMQ@M-濋hづ-溡b孯栈5D1橦Q(H盨ペ咻?昣椖杊-阩/鳬‰鯴濒 K盭F洽歘*O橒恶}1L>* dA蟣t=脰}唝Rp淫>[~T嚺o屈冣箋" 杨>Y祗g齕~T醝9㑳馮(粀U尒萸广*>b?蛏囜O}陯Oy磣鴊(h迵63*} =區僮_笕f&ǒ但媡\\屈Z爘Kx?澹~t.旹兄]讀馢4閄Wd孡泷ㄛ]箕は籗鰬波t?伧>倧靕烝\僮oZ邼h 兮+撤A撾R炅ㄔf把n;幄洼柟毛J擅>}2j詶 憭G;蹱甚[@=匩嫔裠dQ4 2徠)孺G?'曲訜!'莒?瞁#册>?诋0咚衞f#餃Q恝W焥楚投洦:_癥篈畇I搑<廀$鉠 酆猓 雹路鰨i`O鼄i~挺(薦尾嵞p嵞寠绀粬I *轸>鏺溟c搒HF8鸉 +鈤(',: 溏肢.凝Y;`贕燤.y'甬#{炂攜絭(鳋C顅j襑︼繯鲰$ 熉笩逓球"OFロ藐辡nu-(,}馡エ'萢頺壝wN历Q砑冴辡wェM纮c涵 詠\~炌珑 +9懗诘岡導MA2妔)魜O缫槷%驕 ~4yg許爱哘N貆({sJ煤EU烯⒘r:)2}jR灁X.堮JAi<ㄅ8G庉h癨剬QS㖞h実謰辱﹟瑸郤  怮VD)麾灦n#$Q`筃娋殀瑇L}j_扉堜;,忍瀭4θ$R畼狘爝21膳8F品啓鑈妛鰘}枬呂`'蚒8畩}=,薨n肖供挷.飒)=9歁⒐$;c按*幘%ln荗枴0:&襆=┨Q2党榗辽咄d氃'扢If飬]O;,k仧S]=9瑹缅iJ鐑+璾p^;o*~旔礏##iΡ猡 5髑J峡婀 倍頟:f簕H +娴V鶱:j裗椀43Hc)@ 隝:ㄍ7<褮}纝)s@&h顯'妕g殞樱<瑠)碦あ兦j*Q襽茒ZA((QEQER鸔1@Q(4t5)抌熎*9@詿視榇;譑寶@iE-X姭幍f.1L )覠<覲qN(犚PE-%QE枎訮弤磩覒迬f彞4孨0縵歐vvZ懟6="*U伝馣遽将8gS檻KRを黔ic>dDrh臡癛銣瀐肮園ⅵ+灑慣倄鵾QaQSm茿捉!徸 慶4c狿sAA8⒘蘀EL覌 槉幗*`爐埒補裇`9( ,.b,g&3R:11vX9垁'覓η9酯⒘藽兦ON䲡5vX9坴溿9^9QE儤铬镾u鈰1伾&晎觻) ,ダ鍈牥e搒8t俩笄SJ衆矋"巁4.齖;:詒時 mF%ハ郑#?|t螶癤烎EU卹癪y/鰖g餁洘Z?r6鱼>s毎 +X迉})5q躴2=>斮 I芴~抙腚E孻3溿隒Z纙:y蟐iG4腄-iE酄6鄪`:8銓a@/樃隤m94沊T驇%cu觱6/錗贏T佂;X.8y`鏱鹮HYI麐鵖1A!艁鲜=;繼;b婔&ZTP0鶷ms渷J2*暠苡痦*=x─憦Z|!9$#;K囿芋璾^=覓呜琂TEY驗堈S3+4m5dZ又苬钑Fz鰵6烰烬漲茩1雭@hgm?J]丹4*Ar>哊辤v娮](wcR畻|FZ]⒎譓圀凜鳨B9蜖"z+潞af澬~T锍? +WA#歑9I鐫t濺淫k镋衧曦藹8T僋攷H扶/.验E泄檪4毃2譗妷璦PO阢8郣n]媿*o韣*kON餐繗晒渜Dk(;=腑hB圥潞镑oSh痶;> )>Sr瑔巩盟)5$}氧:#诏贋t葈 1锤沉"磋鈥2帞綕朑蔚ㄅ鎓9邑魆I龡'B舛pj0:鈵s32N2?L覽M洤;K狸(fs儆姥 荅漷去郟>c濢琬Y襺抧 t|{Pq@s溠硵l3]'髓)x螦E脺 っ(0H:艷醈>蠶祡c01I?鱉u8鷷1GE衧葋扛h0>狳騝籁騍覌犳9)扛*<狳蠵`C豎t>s欜[驙B?!疀菴趽焐镋泄巋@冫猿Gj杈谈閅a-$lc黨9嶰P攤B烏8面H\溷孴F<伵r完w訋匼灩鳗农$qS%┫犝F1譄弩讑漨\7蠋啇x=iJ躑坎穉N#zC(鵥偅8㑳{靘鑘6ob)`軂窜zqW蜎s恞Q媩~Wo鵘$zQ鋵 +@V/*袉擟@蕚!K鋬诋y>敘9 +豏臬~Q'暈[h簸夙V供苑馺P2亴I拉QbV桑靔(3诘蜌鋊铒昆Y?J瀑莦<睝5, ┧+邐1|聪-+:L溉勔3魪夷迺$p7j閾D}:弒氃傾廯;楎'萻袽dn鄠k$#扙C6 +嶾 +.5│)7) 荥b籭t雔佹._z逡 宏*湢l*竱Fu>u栔☉ɡW` 炉5p┿敡J铔}>考Z[7q榕/!像cQS鵁皎蛙镜纤6v鸍QZ~:7j贾#>4胹1 +埑琈Tc%2漍5d塀岰蝭4Z維"M:Q鎨TtUr佚缵搚酽袳恠1蹓颒I=M%%;!]嫐3IE14Q@啅聙愌酰?E拋 F}( :R鎿&彮/zN齢摻i^i{RP%s!4g峵:VB瘰-嫥#W8稔MJ)膝:躵O醃P庿3( 踮邥N栻7DcZ血T婶(蔏id, 捡XwjpG团vs╭韁濔+jグ0u!<+G2]Os: F}?R汕+nd~餾鳷u+【歟鞶伢R.鑾睙l症垛X摎v恡y(X設ナx#鳝硸$嗂>荚'9 +iR&E礸kVF跲w2韽J闊#<獗X[軍糟页祽䦶砊屓4敶攩QEQEQEj`隣OZ`翕G旚镼 hヅ閔燽QKILR4(@v +(爑幝庺 +z)M繬 +SH)建觯bJd炘耖Q梢郗%+N斈(苅孕0z莹G絏嫢WZ{唟:冬窤唾犗8獳"%囸t窃觀h'>灻瓞庖]1U鵦r;cIk箊}P伈 陋嫨簬zn9"B憦攄鷼~ _*阘肟铂A册囃.>旛廼蓶B蕞i)颍7VoùRQ膝;"y潸婫磗F>唨鎍A訮閙O,願鍵鵴]i=*搿81] 馧 扰 +8湃{RZ8-Rv銑s佐3( IGZ@-Q@訰兮挀裢蕘婨~4~J^@ih檗-摰hx\洯.)v鶸林﹋6?Z芫ed瑀狜#HH1:跬@CqXIjw凌嫛椇諞p珿鳹z毠hpy踉椂綰攚)纁娤5﹕p,灵Y羛( 嵽萘.俲tU*8ヂ聬\琟@3熤撎s苆蒃諥8!茜4凸0郣銣 +v鎿随瑋\訂29⒚! +1肉 灅ZV 悁; +x 5(老J24葋鳨(l旾Hン4Ly/錗0;盧n螸 +B{@ 骵=9堑l嚤鈼x^h咔HG㈡`x$S 峤i'ScwpF 4裶8io微iL勽鈰 +鋶u;瞚你珞5i3兩2躻n圭&簫*o2>[8鳟99銿鏅w盚fF'櫓6撩b溩済5漼p喂晭岣乆饞5脽蚀 渲Z渏+佈囚)頲W;T握鶶񢝗□QRWA鎱RQa婨'4fwイ鳡枓 參僂0 +(も +SAわ@黔-%烰(&)* 鈷(Ph +Nii(锧4jO蕣F拎&?t|:谇9╛崔臗s攸腣]氟象隯Eq3訣佧运酲hjh!儗拿夤岲b該識刳r+曉O頫v?4 娴V械v?估蝑现附W#=s]访y堢2g=G徐榱>歌*E鐠i睍懽歱7pz妯CX摲忥z設 憔jY=臘鋛憦q@垳u铒X'鵷V坫zz奛t啉3<zVv?礪 *+屬H蘝黏=%!Q@Q@Q@ +:永N霺遥'5"廕峺j愻ㄇ郀 盓QH殜)*-)h狛擰襽'Q鳳荃ロI謨蠵)MAE:Q苎鶴行謱R袻掩屢(=*7/J嶉乚e=篠})\qJ(f[橬灵迒慝4丸N驷?漢M枣<鐬zR橹亱(89郔'濵4N郗9'覠岟+|港歾酤敬挓謸茰銕疵驕u儏锧揌Fiv2)@顮袳 qQ穁挌@胍cV爴i=*鳗蓖/蚖w躽(@q奌C\>誋宆蜴瓰刡狵乸炵败围聉0熫渠棹U%E0F胜畠枓屝ERQE擱c迻 +))iR + 襾E PzP膝byq螭棩 隕腰琚弞\`qI(b绫kK迴髱脯峸<忶醐幍摦屬炦溲懈頰跓熩"璧條?y岥证=3\l翥眝>齤U莦>*d鶷擧q磳`W-﹣1Rs止}H~碜9943斦~i衏秖]酌As儝鐭Nk 朠H饣 M誃 p)螇A闒@頸漩$`靓/蛯ㄢ燆?) 鏛0P:亷薜 6s蜚卦 广# +墢鲏肾78 t呪湢痆l[戇冣硩>!巜梐俲幁蛷勋JqVv*Fa褮 %!Q@Q@(燩帞煲R揙^i儱={涱殙~)郥c啝  +(鈯@t)h枎()1(隝@ +(櫏b;秧Lǎ醒鳳zPEb佉蝷1KI@ EP見 TrT濌9(获7╅Nj|\(>潲P8A少[Be|戲Ο藓Z* >锟2[@N1袵衄噁欱+4馆耷tえ扑q~id掮螳憓*f*葬m結eGJ挊>"z创R848鞞靓(4sK((-!m)斏FQ締烮'(~ 8嫅垛P?櫒j砒澎紂擖蚒s亰苲3緸姵蠈誂讑\w瑣頬DA〣醹╆熁酾獉) 啘8缵(x鏁F焮犉:夿?*枦y轼P{:R%F*dMj论g\ +=)膓*隱鄑↙|裶鬲痁`30寶."!恑Td湆褟渷R*髴@ tSz +楡qH,T1郤H臵h5妟("0x鞷GZLsFz鄒ダ梨澐=恰燿b<帞隯q踖z~擨o磘 wtn醧*4!oub!窔畝屾瑺%g殊,j 礝璗8性羜*Q貞W蔁挛矩搈?师J痚蜏_願+を掎EPE敶Q@z);袬參4 (4fJ?LR駧福稷亯(顴-'鉋处恥ネ%敶擰8u4煃%!J(黨襮Y贺As忬蚷椭懵O8頯Z隯,鋍瑡C1鑛嶨嫅琊㏕T152灷T擩g5蚸@'泽I 囿\鰻箇哉!=蘃伱龊譭)?z箻瓑\m8膝u~B-@+膝&剭^O=F;宣佁湻猃)1-茿隞Tㄈ8'迋咹膽撊ㄈI'灻4﨎実瘿篦;G$岥5冣湸螶迀嗼乎舋l掋!7遄豓^?鈄躻e|絀討擲X趷墈廋R芶w狋=)) (( +磾馌 +/jz1O^h绉55HzTc椡K(??R雳漢莏(4(T潻@鞦(溡襷掩詛掩夽黔-PgQ見Z;QES$镺4:K9'娪贩.9蝢>*+ 3蹚隤咻3%{pMf3;J<摊<骊b膾儱% \ +Z觕巖rz*蘛醌1鐾偸s逎巌;@)镮镵I@ 醒GZ1@ +(*)zq镸?ZQ謵覫Ji(Ei鑝墻O筅?昣.躾昺C0膢疣襞8rz妌y趛5 謹烰A滣=9?- 襾巶0s2}{衧镮見-'=閔蝬({QI鳴H棅((1E 9詞4% +)h鎬 +镋q翰砭恵峠 之椿o橑?齴薾滚琷顆褄 6瓩1鞺攞5壭j儕|j[dX繎恍T謕钋R\@H轼覼n4JqU,x 檄4ElU9'ㄞ N%攞薹a躇A靕芃嵰#;8.6┾a拳{洘悓9$鎬駨Z埿(4 +鉸殩 +`蟴22:P3f`3W痛{OL謊簇*阆呂锩4V%S臦x鷣俩鐥q雭酹艍肉+:盹H*I5(痀$姢'U攷ho[Nz.=j(fP:溣'}嚆4 群S粊药4|只C粧*瑠K它*蘶礻1轻Q璽u竓攽@専:/CY颟A饣I瓧8蒵V燭鲫i帥貇蚰鞤g撨姤袱畮揘$侑矮uGI$轳s蠻觋<ЦsE}hsIGSK蟡@h簦>磃'酖酖酔~T佳'鉋-&yPR衖1^潻(~4QG驙?9I借>裟 肷"侊G J(わM嵭 X矓zVGR礂熱4品9玂蹩卥E 諱氟靦舓帕電G婹鹴〢=$胍%.r c{g灅讴俾$'"癧厣鍦 t嗾2&峝O粨薹!媎[Io篇蹹~諔褔~擻,4)#欱d~舾羚w伞皔=瞚垗姜<上证q鶇FN:瓻F?3扻5硒潀胒嚰5泄顜++P圤琲P|軞C2糭嘯s唴y甼P3v霎矍HⅥ諥澟 +_癞+P嵌jnU琡薮Q趭@!隝Jz襊NP:RP(ア +^4斁個湸捂灤阋{zS尥IE.hME*);規磭)酩奪N魌隚ZZ)JZ 嚗-潻h +1Gz(鬚Le掼键菧zSIJA闊錍vF敃鎽j砼姜羔廚8霃鑛!;毠3蹀茜詓U盛 K沚d豼儴硵Y嫢Vf:hEぇ斦)瞄LQJzR@'z(?J)絟(iOJF镸缃7帞夾HwLo袅8⿰砨腲艓+j_昽仢"?系;m1q磢)胱q遺^槪=E&1跀)7骚c"(((淧E濟~4絟鞥R酡拹泞愌@參1~Ph鞪>磢i 瘼岥P(イ狋4穗-轌c9系nx塹r剋胫+|蓨痞鐄顟╂掉 霝k#Mh閽砀V姹:S;祶M=狪-鈲7/铰楩y扟脠墀cHbK/a<歛-燉O焣M27d8鶳囗娉疕2d:出Y黬l糋驙dqS-瑼鰣笰麛3Ny鏍,鎭"买{諛a驅彞T蔰c螗蘺玤M摦qU宕x苧 F +黼膪UW,撺 $;')喉瑟9l⺄磆捡哮S<藜Un菤6鏓溔OP1LqN軭 盨$剄凑u|鬇*物摪'趤拤软R壪4伹酛)8蔂 +w漌 绁:/蘪!OV +fHl襣讖皈t+6澷鷘穾 ]k,崲y)熧匐;阖E缕噩mM妀趝瓾5訚(彺I廈s~,尔硵;6Xㄝ蹔W娋8搗璶犵鳅氫锟闶q韀 燀刼弦帮阄_ 9狩h魻tRh +Q襽)h(レ(鞧j;殤i旛锧 跇>鮅Q徑@QN-(ぅ鞵0锧8ウ攂枈JZ(顴-QEQEQE鯛(;袳"."辖;惍剛i=Q'i&.儘戛<謪魚e渶 2? +蚐吃f糓盦串8R襸艺渹玅誕Vb鞰iM>槤槬4;蠫RzQ邐- u=ii1顯 jJSMi駣氒吂劄浛隆,|K斴这螛rc歾妫寬妠"廄+<伹迉だ銡:4/~詣s鞩瀥4釓 (犵凕k渵棍畻^U廇5躺鲝璭Ws秵粮OZ氊昿zs耀S褗売痹踋堆円董飂d(>跏YJ旼\譳圓`*YD $稂#長+6:b凳 )て?籈狼1K辁T2ZH鼼J/%< 招~4\}捶'8虀Ыo}缎薚際做燇(tчV⒎1p*-?鐮箓O戈h<;wㄚ蔠颶苮GWZ夛? +莔+<;螄h}W?5)i-H聤(甂莏 ァ泯a㑳謿寮t3ak]4ǘ霅鯋z*逶瀕踢A鶸YT?矚巓扳荪1)氓 隢((8ろJ:PNJm9(C尧5'饸5 &鈯3Et阙円円佉f杻謧y +^訮Et(奐Z((Q@sES L棔4笤})徱N鸥{t茹情Y⿲蹅剰执,[嘷|廧痺K 舋$演Ys覴"鞥-jpXQ炴U姵j矓鷅vвPzQE 隝N>倲籀!醇銡OzA謤iЛ)84覯:-;跟奾要Rd畽役溋鮌JON* m6忓V傶注yp趆鋟4sJ緃 +ZA襞-!镚 b斠} -烰Z(澓RA(昆%(R袳茙h8翩)Q簦QG酜@聤1E +\襮J(腀霽鋷璼rwwqm埶"錇+}V$G渰2籫e)F1諟炘┥璅挟胉 >嘁bw酴鋺弐淩 獾a之c@彮R}20分67_笈*9誘h动pz冗滷uI忨风T图#4); +\綞竽秛摈巤觀騁Q髶U縭(*罠烰Vk 塌欰q&q阁P鬄T严&佨潷p~瘵#綍G徠猔恪  +.W嘽随珅倨油( 9h隘rc!X覮瓋倊'8├苃!柒NE8HO95V6焇础N锖訶N銉r>垂#&谬御S2懧66様恘 )59m膁燋jAatzF膡w4{愵lR=*烙n埝Y5J=鸯?:|瑹i3!=7烻ZI∥O剃*U袥?<茙F虧:B踦[Lg8D愡髡 +"u婁>O>磏bN茏V歎!+dXT +,呿懫晇霱'+昘vc銯冞笀鄜T霮琿駃鱊2"|zhE⒐習諁A=+∞爍鶶湃U 碿镋烡/m}(A捇F? +鰘L瓝骨-姥弞(燗(づ-% R襌0ぅア拃鬛鵔屝GJ8P )镮Fh欦q9JO錔:P!sI@!<倚h蟡J14~4漣zt-0&6?)┆)9S戁諓脾q觵&笡o揝;郭锄氻<"哥归峪Qv1懒⿺wǎ82衄櫊Ρ5em>?x潜!程?疮{鉤濁摑邽蛆讜2u[礢瀞^a&葆隿)癋啸# +(1銇6/5訛曃x裺豀?憽9藴SQ7硰H骚顾鏚 2{艪#抇籒慓闏 +(デ敚&)OOj1際?J(霶IK@=zS)锧馮劲z%碦ワ奬Q粒蓼`zqGjZN 已簪 +( 鎶(EP(^聮椏濊Q酽迠(L摜>汖(;v踦紷瑗=<襢*;$&箅M 鎎'!>鬴妚aE襊!hb +(奮詳QE%-PHii奪JZ(わ@錏h黏犙@~敎R衵:1-(嗓c趭>槧幵t94漢8づ4!)瘜sN=;S[◆1溂#nɡ巜磬c+$ ]夻鼬譯o*5蒘=:/Fju閁泮c瘵灾,衠瑣T甼/U溷苿6y1泱疨餝n痦勘#鵚氹k漟畿侟胍<A"ci#?6D)i-H聤(5哮晓@嶠醍偘|a ?謤<騈垶性瞘烴 }郁#f攗9鷼QH`z:乙濊"屶u燫灁 +ZZ(殡储j!鳘^偄<^}ǎ");鈯*F磾t;ER) +(4盖=;QHwi>){P) 傽 孮FsE0 +嶢R +c簸垃殉``袘Y9?闛漁勲?y昻l甶淭穇耱囼∣璟芈泊兀礪嚗Vj蘁椀:殱=┰(=(?(=h⺄94c謥K烰A顰蝘{RPM4酾m(НLz:优 p5鬰䦷W薮詆黭#Ene_CLWME1q攆恡<歎長蜰 :搹j1(礉{PzsI4燽旣b挅{鈼熉(鈯(4磾干Q抓QI鵓隐t冘Q鳵⺶QK鵓郗:u 3? +3K@匋(i徠((鎶(鎾4倵黏)v4Q@ 赺聵姥E3GZ(>源擱袶颏\襊(4繱Fi>擯袳 R礃鸓KI鳴@-&ih(墙-橑犙E袳;袳 O聳奀HAJ)((i(赔撻EぅB襋E茥瘼擈齢SI焻(犙簦馉乙R)4泗i穰根O覠Mn櫐10郦┊收亶=@:呢撟忞]}潳鋤%O堲﹟袔j(翯舂垃Yń/U镒钪焭显唜蟡馘$孰R9Px黭衸傩@=J箫s:鼉{瘗尝0魘觍ut磾# +(衄O4襁冶糝淮 撹埂佭妺<5,澃*#躿Sb9阨GJ齝}M-!Q@iqE啑PK迴攖譃崔噧NZq镼MQ )y:sFsGaKR0嘌EtR}h}矱%-QK孕QE +_JJ)QE(隌 G(鶵&)Z^ *9:T啠搸煃Wa蚷[↘u&0R:毞{ XB鱯乊O[D蠲甔共1f,z摎N碢;V葚嶂U荶Q@婮8V滾舸%益怭KI歕I恏&悡帞%!4@8溂sBGE8歈?露A膈=(乿G卪婔)慌]ei辩(_馣滝?昚攰9)聛xg匦zP8槿箝Gq@ Ev(4工- 楅G謷 G酖R^ 荫I馌鳏Q憡:养(顰燩G﹊3H楅E繬舾G見JZ:QE僵ZZJ(i)h@@ E%-奪A@兊鎼 K趻杸z:艳侊@)ii())i(G酖酔QEQE0hI迉 乙~4 +Q(bf帞Q@倞Z(衕滿ド1F1@儱t狑燼ERR煡%0 +\襋@ I酰駹))- 襾溄U螸憦趾3麆鶊8甋SP5% `q熤韩 |埱^:-O堲袐?&/肢閵敖k&j:#逑礮:巚LKq濵鈕 辊A齥给x链塹倥p m8位? 熡x;*ZJZ +(衄(m雙&G值螶恬'B搅穷y渿#=权Z抇1遥LG6明瘼朡変AR0擯w碤@wh)逬1E釆m=h荼QK貖孁 %(─吹# +)(Q@Q@(@碤奰鈦K簸燘褜纯J磠8ZC謴z燗妽鶷ゞD^趽*1rvD禟?├愕W粆鬄x^醌瓺V^y舋[戂]駻@Z1迠朽z炸籙a姵"隰ウ疦搓c +QH&s!隝LB騣?/鉌h郠I淨@'4碢J +Q@存踻T卼烰骒踡鬐屎5婚|'泩Jzg9鄐醐 tg覍髪Z'N 烎 Z)zZQà躌h黫)i~4 +(Fx镋(系磗A訾燽簦9B(磛@jZO(イ隚ウ1唇4攧-%PE-(/J%QE-巌(枓枠磨ぅ(ア枈(vぅ蜯敶Q@Q@媒=-! E穑"QQE擈ア悇ィSらK酡亯P!iJZJ /_ZZ%)b(8 +(9 (褗L袺G酅匋hh歽澢aM=)岀5l岪v赛M`溘G烰娴睦轻]洘睬烰瀚讎礨Z8izV, U/硡廊姝殠U3瀭e敜Q1J(爑謯S謷N攖9zRR夽;礒黸5E黒馝-觙佊T宆鬛EhQEh隕S(縕礉8碢E巶 gu4雝,|秩?危D3>|∵=膯8㥮緕VS朂詗PΒ逛V綏sl咡uP歏)^+hr冤+(簸鳇i{gR2&璅j玅PぇS渵蠢3鞩謯J((镋E#懤4.E&Gí&v┚s綳zU9y 摁煺$RR襺((鶴簪q迾 Hzu44犁醑忦虚LZ3遭5荦,~漮桡6壨sU茱命&藹駳煹C鵭c\飐 跊'宾#謤<撆欮稚闓_魏O嗧䦶v緦+燅y-侪蠂 挖彮64w敶濋j@(C药赉:U衢U锲t麩呷敺 佦酲{晕:幚'13琬>妃詘┊出蓗0(1奪1F!隚jZN4爍(^扎BiW欽p籘g颰儱E黅%Q@=Q奀.h鶴(@ +(R4攂 趭^詡 +)h奓垣v阙ド-!JS8G晘雳窥巜U_jDg煚"$囩'~y5(竀<+阕S)?tc苎y=愒)CV=娔/RV芘粸*N栽rt獙,eZ粸媌歡A覠'Q-(隦~熹P姷@*半Vb步)佴)ロL穁^碦Q@ P瞗ァq@}7lR汸{U臦層*叀C欤*教G疶铤q襽3S#脂颱比┯瑿躧曄始g位 ~mⅣ3鵚'茳癭笰鼌vP剽舤,疩姃48職荸OOZC滓 +zP:z銥磛鈦婩3篆G4(辄MㄩE(鎺})i敶Q@%--&Ph鞦h4f徫)zQ4Q@'J\RRsG鉋'隠楍ね^碦R4R`渳hMiE&iEP袸 ?(愕_溠E0奪Lb悈奰8襢)h覬(4P 顴PE%(璌E&R?((愧丗((謦4礄擱)3@酡枠倴亯莏? +ZNs迠3E&}(锠BQ籁 )>唺1顯4}(2(4Pi9碢!)iH鈷亝Rg4S <覽4訜癍<御V&2C5贰)噫龟顆狺~!驇*Z<+潩(JJZJC<E M00x醐焽耨u>Q3剖E伾R漘鴗唛 鱋隩囖枔-HQ@j 釠L垸T姊廦寇?蕗<澠 痯蛆晏凎彑SV柢 槜扵bι缃H蒲N=h(0(鯛u敶OēZj灳'jg馪á槔モ丂奮隚j;掩槃b惱u迯jZ`!礃%禙粵舁轗#岝鄽 +郹穠臘ナuPN铞E>g9s鶵J熹爑 髿扜0>瘿: +.g掏玊T$$瞹M<(;褗蒯鎙3G椟﹒襾 徥=j9(礉MER身Q銑B镹魳4紛p1*膖啦Zj熚奰:擲GJp(磾〡'Ju5:R鐪UZy霁dF祚锧{冤帧姗棴C躧潌瀹揊m赲踣祥\靯證<B惍;91KD 0Fi脩跉礌岕畵凬翎G庺S覛4刽=刘绲:'襾嬽烰Z袳J(隕-QH9顴/'J^1H i繚i;倚屟酯樻;驟!-%(燗E斃(ィ隌 KE擱袶(Ef丗(4QA(8イ銺焃>碦焭N蠢(各 +_损(4Q@襢枓 馝椀J:Rw}h`Q酰(}(8@&=﹉聮枈LPsKI襾-櫊b襌襊KI孯P!hぅ鶳4溞q迊囈 燽 鳴敓JNs@扭郣4Pf問覔)i僃(鶶嚡駥泫智嚳闾VN綗)};~礸C綎+rˊ綦\醴; 郤:+筙支Y軒玕:甖=+7Moo 1i1O臬$ゾ#=1\佩胈k$惰璫=繊TcvL錯s燅陛y 燁泗5k徙鞩G猇g$2\E搾?鉝|j哗聛僁^=8R覧:牋J 2PLN +@颴Z遘傄]2宼S奿o鯍鷩o鎗怊─8'?齴垶溣b1u~邺郥+涙绨y躡挙跰+n);S埮!锧EQ奡@)xぇ!O*隦帨S;袳敐 +CHb郠荍;Q篆 R源繬舸Q@ KPQ\蔯?;p*Z叀2窐xPB從8皣h迆儚之蝎s宷殯P塦4|郁畕9粸フ('q'瀩h顴/z耷'wp:Z82D-(>斏;T斏RN刺i9}颌肑銂Rz擣I4擒lz暍缅d"珿P殮>詣X)A颪衢N)脺袹8爑R瀲=i蕄)wS鞟苅鈐曠站3T疧溡P鳂*~礚鎁ド俩`1濭址#䦟眠 +纾蚽-乃飸鶺E┫塣椴#禧夽=槔c絭h櫷+s夿GAH((淬覒} +.}h媵4:q跅R襢(颎覑-P(}(`琚夽-鳏デzZ酖( Jh繨Z1G銡(?ZJ^斂%hぅ 4碤@ 迻僵? Q@4:N) Z)(襌4倫呄斂'R牙 @鳎瘼>攓I迻 +)?JZ(*>创'謯3)(儕\袬聯奮詳ZL袬襋謼1墛8(@w>茨b?*拪)(隚OJ3@聳拸蕵 +qIG?擱袬Q瀐斻Hx4##]瀓-+?缃j蒱梟3U3[K"S蜴闺=N?耯漓1脂^ЫV 寝琋&鲆g5跳sX蛁'/<烲馰糰u鰉(拉嚇磴凯:!忣珞璶r8韞穅?=8⺷褁 癕; n sZo從譽酜q$骞3z:9妢G6孲#D寤棅kc隡)萅z缂I&跡L疂誒Uk 侄#橵D=鸋$裢U膒,<觱'?7隵,,荎X1駃n:A 瑥环rpj/礮坼籉哳銑A@襞IW]6 +嶍 +u{^蛑+玾奾+:r>阖皈M縕寠性!騨#觳>8鯛懘碤@;P)F))V椐颯┙訯Et佤=螙惸4R袬們覐燼廕( +)輩7圚1狝kkWs渞遉蠘<災~5┄`輞縅N茢m萎鍤d憰~A燻b牼澁f掭Ga跉騀J8f#妗9'&硞}N珼爼栣蠶E玈((p"瀍)`Ic躬2軭g厥豲海璛节~呜&M齵`Z骏诂*砈pcbU昁AnS意3j秖矗$黠婖劮8XP8轮.痝o媱屏祖放0錖4嶶 0A舂='趻洳靝C鎗5 痬澒鍙蟥GN衆宷J 4銻姏Xd*5}%岤PJ3HI +h鼼ZL欬'滄┺煐昢H$竤扯9;SBf:熮U韬t珫$!重>5Ppm25睜11蹚覟寎\U-&鸑懁笉3艭g+j.1腇4E_N磢h缫巤9イ鈼碤鯛4磾Rh?%/錕I孨 +(燗搳)i2hs(鳍@PKE% 奐1@ E挊碦b杸 +:袳QK趷 KIGj`Ph + 鬜REP糵悀4Q趯鶵SR鎾屢磄? +@w隟IA&sJ()( ア +J(燗歓O聦鸓j(ESJ(鎬 +;sE0? +S簸顯w衕犳樎拪Z%-))搭斢MQ@犛.:骉甇晉棠x玧v蕠?畔J黲p;濠惯C%K樝阣忷誆2G鹊*Dì噤仠VGA锁穢 e9X壆 瞼?J愦B讆 骩摷濑?齤霢随鸿.pb絚喸W椭甡凓汈婬6馞3昣矢H囿糮蓭n?瓀‵霿4&vC酔諔"] Q闙F 頵?飙F馝2鈃挢γ +[HX0载泵V凓T馹C>V7峎竼;愤.Tv4盇 垪鱪碭 ^a'?瞥tu膣3鱑Sh毷黏瀖鰻滗楇C:歓JZ亝Q@ HyR篿併陧粫考睑X膔+{\R^FF袣柏R*{4烎介(Dhロ@ 铆7彐)嶗>榽 E-殍拏)i圝\QG4G鉑趯P(;Yb堆$e皅M}蚦縬$ g=﹗糃鱼次;sV惎c& )z憺佼橏>⒐IH钎uQ愌F}EKCB襍蓖'sHa趻旚隝@5鹃荶w釆N豹g7瞳vv巜duL鴼蛶7z慕i07~璋5保K穂#‵镯VJ;拶鱟m膢v?0瓉夜璪烊0nq5見媒7!_Q;p( 巨NN?:祙滞kg鯱tp拷躶耕rx險豦?1<}M7U瞂 突薘骣 +笥肱h榉縜栣妴骳廴轸譲z姁Δ9f潪:姈PFp)厐闑FePq窻bx3=纖 @⺄洩睖c'(謘侄<2すT?晄N+(駽寙 {S@u.腢)鬜З.隫`篚珪Z鵺Z坑4愎2Z3 |#隢阨▇Q?熓摱==(伸?ZQ顂@ +i)i(}i介搦鰻岟t膪R艳(鈯9系 8(歓O聦J@-(檄%-&~礉:覟攩(顴4@#4v酰 Z)8LQKGZJ>纯wア怱i9イ4R袬áh顴鎬襼攚iHa歈G燘w隕 J(燩 襍sE%襊:矣1K()E +>攚 +zQ4t颋(ぅ4斃Z1A %/fR氧Q@ K溡t儕1A奛許丒 +(镕h-Rrh躌~T灤q趶Q?J? +>4>碤@4櫏で.O酙('覑4闖:`蹑#(仄:U呹縕2姑`焜娅硅a"l珢繫W漳裐#d轋+!8葑诟j孆牰挝轟頟Mf7l甜9贖香]*鏿鳜o 缅閺!#~u敖x隴凑6贀@d馝飒屽@(檄uI9kw緮Z勿5兆G3学穑1b熂,?怋q)篪峗ⅱ遑!o邩Л=F>ΝL痈X 莔# '\鱾I3]鋍9'坻閉U蜯醇戲灂藊(靮燒 +暿H臌乙RQE啌鳰-'饸騇Lnk矩練褂蠾K宵4z9nF}篟S垽绲礁て(hQ謵}iG4u54阛鼕)(狖R鎬3龆瞉n)垮N1rvD蔎*靷娦Lん"徛;g橤+o请031镕+Uta瀌8晏i齘D齤={V匾8'姁i躲W諢q}n=2z鐵鱥率躦鱧鵖槥/8絈L,$斋c鯰鸦渷 +橼 鲩 2铔A覠颴秒琅eR +圃ы 复h 9#5積骙艓燽5?[$ 岠WI浃 燁嚷承剽6翼蛌G職~xk咜I4嚶V=1V惌u缏6翘邜爔J躸箶⺄X4奐5 ,#伃,d!唢R4爫鰼q灁r呂fH諸( >穢踟Am鉯 苤稂#}p勗褁z:O0lpE4訛4-*oz中韁靭&X輓n]憙菍婧!C氥( 馧悱!噀踍<椰h=FsX砻0* 躾詧 ^儣->礱鈪 dv%{觬ji醲Wv  +烺砶X鉁朐庿2/e9△'蜘飢#瘠y 1c憎︻郥 gm管z敉B畐d溞丸i欐"攽倅 UF妲?C際\4勩紸$槫鈒缔|:2岂基恳价~[婔_唡闂圑Jc鑦茅イM- ⒐P邪=俩⿵毿FN8=闋篝4泱 +鬰变O鈈p)盖8靓H1阧-&1@イ9鞞 EPG鉋QE>敶s帨R`聙案(も枈(RR訰v(9; IK愚愋!h燪歚b忬謥%-? +J(袳qE((s +(銻鎼镠E/銡?N攗犙@椀鳍 +_鏓S +J)Z1I迼8攆R(民てih燗(聤O- +(犘I迼%1QHA趯Ph0JB枔云ぅ)(('謯(E}i 鈷楖袬%PI酯4斝 I豏酩)坈曢执Kt脎=j激gw$v舠U茴渺慎l崫 +2k萿[债玟⿶>雷汸噏'Ge*辊1磮的Qu%凯f巻鞄鱉圓'ㄍY鎉懫凐T ~裖薱溯躻呄麼9齅u等xl隳w谜_\>&z斁QEfh敶Ps‘kl7-宔忬5彝䥺<2悶爝4QH(れii?勑搄J|攵斫渠6'/鈹Q酩瘢縕J^濗@徘4敼4各︴8丧蔂}(0~読]趾簗讝c?蛸k臺釭鳦覞M昀 +( +CKHh;P蚺7|岇悱_里L;L皲r:T阅b枈C@#鈻枈Jk#8鏈i 泼(3x$擄Fw&z烏裍鴳e壁%'懣g衄{ 6wW )F剱=k歒搰遍Up=t<>浵:iF悈鉛h鶗硯礲i$居霁K鰣錦鋸‰[^:昮痄2/ ,埫=蟹枃6x鐨ooZ搊Q4匛&F{酽灴SR蜝懤留各魻h9sVAMX蹵j6轈犇瓰_覘O祂譫崟H頜!斿|v$譳'.吀溵踐屻i璻韇扫Km#F纄{,"/#&'岚茮w}+捲4+.9顮蜚v +>`y<貄9,>层籀3磾磤CH遲覛C行9'蓪}頖裏匹籡2 c'8'WxIń:酾茞6~7JQM奟E锧Z;3幋 03𯭑墙-笥9uf +QIK趢 R}M跨4(爂灁Q囱(R幋渮Q@ +? +;袹(#4槧袶(燘杨h硪層}( +怃wぅsERア奰 袳 +J_聮Ph(燫鴼J {袵規hh燪LbR齣(燘袶)s@聤)-)镮揑! 趯QE%.h隝\鸔顯階8%/際hi94雌%? +Z)(IKE1 GN敼4)(z袸((@QE挆胫挊命鎺:(磾Д'J*=M酽鎶\拪Jb)r8=*莘8qT%cb Wb!Yd毬┷噝g弌躘X+佹0媳琺60?) /汍[簶g +3齥_耊H趧{鴆苆!#j稱l戾宄*1证擿岝▏Z<4k芷恐腋 闩硄鳍g^}O堳)(Z(⒊5 +((蘈1+#毛婥>ck萹j损椪橚 z(Q@ I跂慅騧H僿z狉$o8k?悗瀋3\贍r躠苅)菐))O茤(阨滕萤Z_茒(鎱煴>魁bq[z黿6?惍>.+酕伵%/zC舦xQE8i1G9弞Q钱)3鞬溞東薳琊疇t四3{e]G5詗*栳イガ悽(4磫#?胱P?h寧6J殬怮EQE!镸s刢)茩6<椣M0<"鰉艷f鐠'#:鬫鴷藷咭&裣馢茺d覢时涉倣湠+ㄔ/喅峄K`襜e:槩2糔%籲Z氒OR壱I_1M>媽蛀[?<蔶&提: + +畝獐^DD溢臟躧墇T比Q) 焔4r;Rh輑埚塿篢"f轠q9蝖69鉁 '滓標3jWWWW蕣r v巘霝糑+儙 7~+鉴|樽+咄=84畏覞M臾R 'jZJ迷A宻憗鳸l熉甹媼卋x+寋>潔wR~<赎觔俼)瞄奱>瘁 @鎼Jzs屝H燗亷糝匂絟<馡瀥40 E繀'見\褮1GZ@恈疜灤QHA鳴倾E 音SH>攡t~b徠(謻 +J)i擱襊G^擰迉 +Z(EP襲磘燽Q趭(~Rd毅襽 溠EQ廕/=槩枓 袴q覗(雌QE%裹) ! )(ラ@)*J\淧荍 4煃奯聯4R溠LaEF(犘 犘>耿 +?J)b;鎿乙P:(う04QA鎿瘼傽QLAE%)E0 +(ら趢(&t*兡w帅g 砵弞抜6&x醍7朳{9 蠊蟋*潣c'9$鍓9W脽. -z衄風V 泺J誗醙rM?尴瑿]闰H磦艔 :炫qzh垅$}‘複+喎膠攡--%-dlQE2C堌廕涎,鄉Z裺'徠猧J虭`賐r>@.袳(JF镴iJ^芘q<刞;葉1瓻 z塪譵浭泇碡9脒>暲7酽6FzRR欽'ZZ巌GZJQ謤歾御Ψ\P碢U隱z @$|!X儴鶹鎶?鈂玸 +槊顁饩_ぅぎ梦 +9簪倄鎭侖珩イ)y奮q'魌$; 濡z鶞~U覹1危g哏祥]8閍閕;抑'@QERR襊lqq龄7>*Z佋洦廯*z((CM恊c组Hx阺K4碦~4 +-QE礄鳍 I翩3@簦燼I3幋攻鎼劌'zZ:籁钎'^魴4{u馉イ鞦h楏屟苲b杸\袶iIE0慖E-敼奓袬QH橹廄i2(長IE)JZ? +J3@ E%3GJQI@呪挅徥枓夽滚ぃ駹鶵QH)垂の( +(7p踱u%&耜?:C"兩 挋鰟搳,苎殌轄颩鸼{⺄Xe溠U>鼐斢{;w4Uxq捆?Z,485渘?艎,52=i (闑e鮟I箍:,4虉;妅M阫,Xg苡 駚髯鬆v5M訿u3韎YOy薊ㄟP0 灤]暢\^{b愝o攘閄/簉}恭ヌ荧悌﹕.4kZ牰崘2茨d~颶喁ey颹鋗蝢擓咒|#蝌A訴,馿D摸Z蔃+歳r;i罖dP7揮勽潓.赭5嗧RK宸旳h午晇AU"(UzV敥+ +!$T_J歂淭5襯靱_繧鍡鞥p67ㄇ螽鄎\#遥稹聳怰諪))i(攺j、氟#!戤軂5}s:謋妦Y嚕敷Χ璄RQE攪-!锧U鴺莜?⻊k檦狄jm{15so芻歰zSIHAEP@隕*簥a霘xΨZ\)(#5唬 殂++{F霄x g纩偤0麥丿1酎(飱\襲蟖A撻A悭'謻晄円=f吜モ$防詍=*镋sVJ訛琦镚Z岘郃KIKX泤Q@%-!锧6~_"-J_3NA濻乂4 佣19.z 窄黎3b9鼌qP<OsM78閮邹!\楫麭#鍏Bt漉6 U 帟嬉89xp减Px4hl阡`溒?锟7鹹?鐞?G隬觫{熌襺┙h黡枝翤儶/之#-A$r(術j|B糕 郩oH緆'悳"惇7戕键\6z夂澲撟烃攈閕i)jFQE# 學/'/噿xpX疇7耳;9>祊+姃3/鱥M蕫;娴鋷t巾灤滓8蹛菒>敌玾9^睋鲡z!悼竕汨#/*1HIA=q全霰3垀讕i~迍g(m6`續绂A5屖1禛?i] 嬚&濚歹?昋窼;銿 +x蚑:吋j 1躑)&CψCk韎﨓/赾鲦迸;w##4珁n脡}) 暃/P ;螌佂c} 阃\泳 枊牴M*z襶娙戚:Q*兠~绰瓶槫u蛔睠佈囩K氟5 pE&徇瀸:7燂V峱E鋟獠L崒n8杵峖(痊9糷螭⒘cW%fy|引QE偲32鈼鞷`饱+7鞷鷬_邓鞥偲濚3 /$螦廕,43Eg浨Po覌+;頀g)~佝倠(>鯚銮傫莏,4{QY岂(鹀鶴`4xkY遧J>筑擷,Zrw翣菔}酔偲J帖T劲彽K(癤狱i>禌雯GqG讠酡羉K4~5涼﹠i>'á羉O s2碔徑奜>L}題h癤这侴璬|宴IE偲瓵鑙r+#颮鶎G,h癤$JM迷V^飺摁仪=O鏓偲抉際d_Z {擓'裹璋X煮S歡寀a娛峗==i>鞒Yt謚^AcW韎隡7戹襄Yfx摈許M#瑡F冨5~貫mZ7躲㖞4咣忶h? +4S_砻麊愡z)琕誰赚拢:蜖1糐鋧嵱z{ +Cx輩s懑Z澷|Ck邾耦?e.荄o$#I雩舠M鈁u?t戨Q7奲膖饯{徹媳詝ハS!濩黊甉糝柯囼菻 sK谀}幊蛃麱惾谦右磋g皧I艹赶磛御vDo旑蟌焞痓+c苡K`騳?i-遮 6尤ǒ%!嶌)鸗/ 嫗X~&榞坲u乃{69s\轐=螬u梑;苹稴*訰jV睂y楦愪o?0誓蚰喳r挑頉\crk柂>5羪H\鲮V弒穙蹃懲@'宼O矢碓妲廴狸叟?蹵/鈟廍霎k&巬i{i奔$簄]跛?濡+'4櫓鰭頡幸mR峋魟&鄇烰:泽2筊鑋K肥9镣K-排舄9莈* ks4譗ci攇aa舝胯+F骃欢sX0骙愬 Z:U婳'樸&懢忙矕 ss惽*剤輩痚徳折踲3$m沂q忣ì詻淘鍥s倾Z嚳8瑌壘糝s凒覤7(C +( +i銻襳'誛&W=$8沼赀覃x{鶑s 謧災t湚wJC奃塊僆A隌(敘:S>歾b奯茒u}珄E鉕﨎発犙4趵囿 +槊溫瓚s6斷魻 +=馱#袁唼^p~曠[鞭湷0V=閕=.玉㏕乃蜉DO汞2.rjE緯z9險睃坸n挑諌瘜焎N>O,g癔4準r⺷ .1tK肒归焉酒鏚甛伳?憉袤汕┃韾经>鐮龎0lN?圵札珻豅>逻笥魻胤晀筐撥g"F+x瀪1# +=瑊嚢╲?`l)E夛& +塶筇茰|GpFL秧P{ 澃辩齛犡5梅.H檱鉔氪eZg蔺皺 齛沧 5Zs钫 者+1'緄{T?锿~"怌j93:减uRb@鳔动憖p:鈼禖粷徫1xi厨谉酮r1闙 隟"=]GKE逑酻沊仪Ef黭蠟駱<詍p腷й敯斯逕i>X &.6蹚胃O=嘚) 屋Ni{vW闸vrx; L誈4ゐ夜R鞦銮5>贓靦o>稢T焂澤茳{V6鉏殫Q舱(畣媕s7%虰oec藴麣╂er7L{滮i嗎浌:袹靨%鬀阨福]洨笭Qv4泹2) PM=[ 靤Q妘1暉;uW v帟焬=;珂櫣菭鞽^`匀鵈'譂虑Ⅷz[(瓡gPW諘简M2洒畓;譊 +弆覯. 噻歸#蜐辽鐼g紉P{氁妇筢騪j呍夊 `c欯 9︽僆RP耿屟 E'jJwa隚z1Et翣0) +\皺b<噥V/59n塇驊鷚5Fw趥 m:;h哝p袡檊$%裬←TpDB皤霔S麹N}.-螶粼囟夘戞a 腸揦w鲇X紣芖,G℃眔r岇: +像ha~8 8璵(%楤稡 +哅z茔遘5镹5遐碇-8z敓貋WGcO膱燁訤簀#]1焮偏73顢鋥悱pZ砽罕n囃4* 篸&鸽|G& 󓇾=}闆榔猓=9MA契`nJNM $層 ┯z⺶厑F|I霈m!库{~0舓2鮔z;+x桺刿敘)%-%-H聤(=)CJzQ@Y鴺^鱸诅祖j錥Y鴻_m殒矿50翣la镸斵攧/sG鉏@隌(w +i隟HZ(:矿氝規4鑶8鮓?]鈁ua蜭V鹊屟摎81]gg巌鏃鑘"枔.h-'捥gV#嗼 t滴Y)祇嶷茂碑學o堲鑭袳懜QERZC@1u栎緯7z岀螼M*Z劌QE9C邐}2C6n7笺㖞\󼏰a狓@7c)隲 -凝y憟蟸i瓌#n +1恨lrx▔6c+0(@蕒&釭5鵌S伥'i坋溶酂J栆硁2厱0qQK冢蟣渨2=櫱'瀓h鉢s5ENj;P霊騺歶(2廷蓸mlq]飥 稄椞lW潷Pk褆 F9!鈽-師覗挅 +(鬼s婧+忇譈k炛忷X1车4&s衆.5舟6l%%A+嚮萻帵糊*x跮厡 淯埡鄚纙b恉0\彮5"`3qrE4蟧蝒Oo殎 !"0I3括 +葄冭W掤#.16冏=jG箑儔恻Z鞩!T=蛂}╈k気,褳指鹆潏珂<鸖D1=q蛃棨 乽輘若5!肳4殄\On晟闲 塶T砸A切5憅恫韕EH揗avI茹貖箎y,壭鹄T礈5趻q2kGScm諯!4y衫鶶~:‵$侂M; 珢8#8︺視嶪>*9I o怤8\d獍*菁嗲灞: 劄A蜞c颟c繎`d柵穤帣Гs色L枀v2醅騭檇腅A阩畇R苿ロAぉ(uQ@))q(f蘟0s@3Gz(f屝:意4工.(4n4福i躨w6R4亷iwZ6<矦r;鸭烎 9燚赝q 焃w斈t4輱鑘轔z7歈zS 鈽[蕈珽9,鋐 歷atV躨閽q毝歵嶞(&D銈3E傱1盓j蒻j睆 萸R賂寰敩(丯閂 @r{TfH茾h<覔cT俥陷3岎 #蜇PS蔍Τ撧亷;襚Ss顴; ┐P鎸)(ri9づ;(功觻${pwS憞@jh 灁屴昚e#)L靡槈w硐5<覻薙i (((4倵4敼屟奮UB偾jL庈覈 pir爁35霆]L0p紾片鏹滏疎3'剔潊4I羮j裙蜾 '鶸9領萅桔垡崃狽耲麤{鍬?g毞釨睪m.3槺焢+2e鬄s[Z t '臝+E+鉬琭閐j浅寏u.zP閊Ef舘 <}?Z跖93辏鵙擭|V鑙5;t8臔kゅ1|Hv叟'#kdT↘m$w4t'?扔哑荻⺷薣s\1?}险 灓熌乙d鶹@u?櫎e2Y鞹糡l$d弞`4OS烲氉馉Ps:畗隿溍c1,颣I迻(() -!/讎麺/G4o嬲?S醍痏鉛矸5?S鯛 4訋i绁0 鎾旡8%跉軪;4餴碦qE :侈=4犇?萕8zZ梏狺d!]Xs,巌)G侩I]gR幋v:)qGA&MiG謱僈@X萣嘽WI薰?稜鰨 +關QE懓QERR魣受c镾S *痳 齮((CM>[m霂)茪(仉奰s;t司 "F>諆{3螒﹛+w录闂灳a㑳蟡忓J徿@職2嬗堙|V覽*欍1箂躾謺+fⅹ*菆S0熺CB9 杼W帊虯袭Ei蕤12A獬櫅1+宨彞"奟蛷覗1座裵剼晙S廕@B驤缰︺庻/抭G攝Pjc絲78缤a焃箦勸^夃p囉㖞7臾詝帠挅侾QE C\繄\嬼^轤缟疇)釬?)5Q%滃偬%獰蕸r@{詖B?*蒃挮R憙僂&G牓QH*響棸姣昛`|:hLJ浦"E旛瓲2 熏睌`45q'c `[輴虻P憾毼R帣╃蟋. +gi荙Z7w盺槠\(憅笻鑚,is"9凋8p乐揫=濲偫g" + 趿 紪3蕿苺*0煭7ハ$鷼*'z3僈)(閨観鈸'襾$灤敊@倱)隌34R18燪鳴;袴(燘QE L殷(&4&宑\70iv惹.鷌覍慹#覕NG僈磰擁 +_捶`?*⑧X7m颚逼?*"o=惹崂<}*,R咊⑧N穝{豕C怬z鏈adNn0猞吃甿b欵e誔溺5 稇vd佉灐S诊o4>?假v'扞R鸨嘍婈扽 +謇_$瞮怗_茊2茡&-櫹h6dd}iY吺y=ǐ⒄9;#迌C8媳⒘r . Xc84蓁=i 噄ヘi鍱)<蟡n覨 揑枲sHE + づ.94dA謤I1F(i礼M勼E)袶O闘襍籔蟩)I'%QEQE工4f幗9P搧蔂芆,P5$q藒T抃c錙攞S`甖p貇 by4漢竂Zr淪)A簹剀襵h巕姹廧匕;;綦祌?J覆e形垚蓮针皊i=鉥錨?'銦隵筪鄞隨L球袵┧婅J脢7萜*絫fO堿:i戼廚o2腧酴糄 覫钳5KCm趜绋8甹蹪勔7V@P吽m╅ +绛0"錘+g'攦3 鷙舡o 価愐e,イエQE擱覱Jy罪熸k糼:芥:9鲣$齅4&  +N苺魻t(磵KCP窺E諡囑=;嗀餿 +1诤=;嗀鯣虍9菉鳐b何N1);褱烎cjLR齲と鞞-霘Z汵泅8瀖诤:,?7齬j桦偗膠>QEdlQE敶`g- (('螸詴宵{邵?蕜;酼?賥刢嘼>府{QQ&#豓鲃疌c錦v陑{鱌* 頥躀筽銖~晈睦曇砷錈+;P@翑 頴执糘4涧?#焞P犁n捐MR璢rz瘞*$1覙c镽酊裃r娖#閃-G食郤>)6jA覍sLB氼|凶8砌舚*p}k佛x?豬擖m契-'-2B(=+擇1Q〨 鵿從譞zW#鈘#銖+穨MTD蘗矐蕞gk鋠5~狫9-兛 ;佣G=;F :吧懥 S蕀S渇橪AQL筁攗電WC贷!\N0銽忲9BI4鴘=!懧塙幹2蛑kY rH香]鏇糯}ゼ矣P嵢\J;醅┅GC5渆g辨谈蒦昬Ub23W5 )礤uPU嘦狉?鮙穐vаq]wg.'d_礯絫淔v肌淬9䥺瞸:u氋諫^䴙瓢 视i\醴;0颋m摓聮+滈 +(巏W毛岮吃)仞タ⊿AH閰- エ((C覑籁=)J? ke絆鐡婁擤[釶.嚳?璻2u>鎮i-%&H唽f旚イ┉譂逇阅ē詿簁ケ眬z 﨎梗職榄P滌萕V┣婅Lpi/JL齥ㄢsJ(苅;衽)犚 +_笾 驥I寃爙h謿鈐瀎 +绱翟c漷5罻=J +(⒉6 +( +(-PEPEPS%壡冏>⒐稐堟+蜷浊严颥yL77人*"B泒3戥 燌曔z?茸$fMV闑b<覛'溳Gx 菾楖}=+s$l依?蛲骏s标罄]&顡滓伏H野籊擮? z鐓逛UaV畓甹礸-蔄G<8ⅳb請X齤蘛O淨迵?-P/Q]莿@8鮨齥坁弟xMJ鑀 Kzhm鶵襷R$(C夜c鸘p鍢恒夜`jk冎1戻毃墭 缼EMMq5dZ9IO絟諻躳}險h陵qI嗎奓G镵I:{RH狼jn(4]梜烠螶 N;骔%镆:q蚙};!f*远纀;馳Z^<=柯 坻曌勼獆L鐋hZ邛趐2睪?鉢-叫;p合面h疤>? y琀89舝昭澊郔4 鏍=1V殷 ,0橄 +I蘬1閄硉Q4T扗T9#緄赯 淨GjJ(ZS讈@ 歗));!qF(2M隌4w8頊Pwの)xhRbu.E﹍zo4鼘驚`)4b$(Tx 7 +2疥/zhl牋$雳"&6羊z、$;34K餁4P駧qJe嫃斦jZ蝎|褨Z褔S矲腺x璦鄽r偑獗唛>.背癶汷F+9帼啺稂D砽颦bLs离Y6V7l衙;镻Mk,NQ詡0h竂&3nz郩s9輥* 鶶DM灁葅N鋻X詄伧4))D,i fI-H!oJw晭 ZLf=x!C0GZ敂厑 +彮.摁n4凱襢襮歀袬葼歰J(OZZm?孭奿隟)(sKJ%弗6 +^;Q]椽牃mX桙(8bB5_)oJ蝔芴ORi圢鈻摳)翠迮%簂 絋5=0豑 +)繮0枬稐m7sH8綩pj T鷄墑^韸L!a噽谍k蛹2wxz冂?鋀欽68=w鏭忈3幻慃1䲡-蝜O聧兣W?zz簯翿樟68$*:|謜HLR徕躵噷^%P FdU哮Id笐a峚@袞c扤zq閈躏s k爘>慜y餁k紓3躒H)埮壩1N任;档崧>&9?璪氊痣b窨赟C)5-%-AAEPQ趭;P歺搷^<~f~髛k柴8频r:⺷荓>c䓖蠸!4敠拏C迬擰H侊E#R嵹E;腤Omp渃zp+梟冴+┓]栋忲 +朊淴Р趤謹齣鳟RqM/J)郠跖-7Q;sI单嚓眊?S]`i j9~+|G〤郃EVF罞PE碦w((v撵y劳<訵C6矎颉蘹X蹶x伭-紧鏸h輥$ +4K痊=FYN6搶灱W樃$~fKs秊昶C暲+k]s$z`c <㑳蘉 +yd#弞璧k╪纠!+榓邙闅挋晀鰽鳘娆\彅S殐*$4%b H棚S攀_椰Dx 荍w"臾 +b>霄 禣c徫竨傣SR+鞗磾瓷 +(舢C呢^席5诪暻x煗Y;~靱<毃頚2á姴J&>課腕=8╣!"沨$*{奀/=僵h!|苕敒q蠢d嬈{/色dd`誝T莗i殷雒鑀J談4m閺隭簓墛㑳 闉*雵聐諂"瘖"髚?0 僳扥瓃姗洠^F;腛閊J梅]jt醊審浴姕儕甤覢G!(洒ㄦ 炂R骝5夳氃組舶鼾*/C=&R:姺 烏ae|Q娦柸錙9 S!憅迼 +慖簦=2::規4餴A'J)r zM%;o`Q歊)膭!PN釉RdS@鎺鼕2)礃 Q溾椀? K佦4f%丽>440寀$~t'戼9鳏蔂 蘫H#糡C4丂刕)羉榧Uj(o0 凐U2炉镐u獠猷癩柬'4;jz]弟遦戙foc蹥淉%飺=嵓#熐氭-曁 9>斲垾G!詢臾p眀骣?簨h莦乶,肢8镮代R竂澁槣 +o T{覞6逌R滜n)ヘ&検jU垰弎>'攝鏃薖:驚巌y嫂c!?]驶眱霍0iqR;.养 鈱R袬福K孮慇 E.h蔂}M%f拪\(攗ぅ甑*矊淯 +%虥c;:杤J4隟H)OJ@,#"q耕P2)dc風狌$c'5f誶苄镴"=公g +w佂U壒"惔 耳選ゞ莄U砦蹣入窹剹+嬎憻& 燎>Q䲡琪凗&廠]鐐巘|J迼膕b>o帟}隂5 }頔u#劎f拚蚗蘊沊υ焻q俄尻旯鉺 +卤諊:n汩歮匦I'&:臯+邐橶帧C單3S憭1I爑娑<紦<潎瘳\骩>a錾~t橦镋- エ(()Д:愻::爸.9*醿\l管禄O0:誊c錚?#\\縸)!眙τ┙鑔QH庺Q@ +(jho錊 碢Vs從:阞廻躝+桛:晷m穭閉xs;牙?+ㄢ)1J})_Z\{醇鸔/昨覟欥2茖I誨螦槷喒闹f礤沲裌_墳QY殔RP袸A锧 EG絴罌嗩赶8((杸 +巙嬯 迆6:8甚6o轄'i' {U馴:34X隥 l' T牡(2沔宻舤r閞辁E澨7茑x香Zz勣YV鏟SK蔈輳眨4B* &0$6qw_tZ瓓穜8U|{f S兑伬1啲D8择}(Q覞 R薦邊鋉t3\"譿醽 >縯3M_覗撘枡EP暻x湻龊轝擎k5区V9鷼K2h睤q8釫#迸]鱃苷I觕穕h!G=﹋7/#F> %籒 +)弱燘s鞵渭d +渳)7)(簩u+j1道8蟌膷禲膒3糣庶 溩e= +朕.J…n蠛&’"橨J蕒?S^$戀錃抣詎W褺?S漷i厇碪づ;Q\轆 :儦鑗?h祩锆'躓?淰緰⺪$'枌鋑覄&姃/$ +r \榺脔择T膷|薼紲~梣飯慤,$賠鸠龙謱 0騀y镮殥t!荍姢=(鈸.)1MネQ4f +J\鸔L鏃4dQ慇h隟3)4槪 P珰LR侊@Q匦悘zP=1茆颩黫q頷1觱S1砸c苄BR鵪"鎿"?嫅Gq4贱隱4}蹪癩53隟竛昗庍H娕?##9プ奘y勵哑_*理X>沼I詜鵣I晽i 佧U鴶kk聭掃{'8尒蛺澛眃W蟓偀戺兦要 霘i倾E屡深醗86戅 +彞&釆@8输4孽!娔'"擇︻4f奛)94b夿h4槩 袳QEQEQEQEQE-)%, 桗U8籔琦Q;|冝樺墹イ燾4 +(婳$l4贑@ M躊0Z+虭:.h?洃4萯爖Q倆S譩z詑q2鰠JT齅E缿q隑,邿豉堫3]縼巘yW赂璌嬾#鶺e3粊oK9MP?jqP?5謳鼁I䓖W鏵)5躛扦1庻眠⿰鋫k荲┮(縅uEnw[姈刮盩'蠺「 D4zHX餽1Z纨寇5姖+k每l5,h阨i)j + +(魻魻簦y?37齭O鋕垪齛m馕u櫩霘#\T苋遉e2歯i腵覯"RP:袳:気)詬覙嗰E-唘g捀螿与]Z徿e使CAU孋~8鸿5c浀- cR?笙ó蒳:kR,vzf誸羯k隥幙綺癞 +g㎏郋+)麬ぁ纡#蔹'6捊.Y枯壪舁暴礗X 廨8t[嗿 帧o[玟禃兢瘼殣舢Q糮1艧/Z殀`鬠蟣1膎]-瞛鰲N笔埱飃?卙V隵y╇尺]ZN"XIQ滘jw#扠撋((癨 H隟戨\$M<O矈栛V航撋秹Ku繮(竀 帬S霒掣裕絹e峛嵻# 焜榍ZMXb灂z藫蜂<鷔芝5"襜:刢鶵喴t沟&軤悙Y篺涵?F从呶迄駜#v瘴h殞9広K坵|?囖簃H湉潊dB 闊_U=@+烋巭礞忎kzg Tj埋><憽 淒跔臱攕权盧茍馣OR躣T0)凾0-'籀!薦飭x衛窿Z鄧Z锛8釫e\酋狤?勗颣I迻侭(5苮燓C)X滕譯\g壪麼W款酋獛淙挞懞~"柆懭2pFj+勦zy''奍匷喩彬謥;葬y;XCZj貺 㑳7(@緄)SH 圊燖x<襋O 餳6a差6纐`笷=閅穳騿:襌X!趿uQ剽-M{讝k駱踣M淁专苝晊瘖g/s&*鈌H閵慓槷3紛甶r鵚?吰覷XsI挙奰j\a榍隩き 浳峞萍*琖 扅5俬C诫%嘕掸蓡x壚<僆 溧0鞹kZe 什榤$zRcCh顴!階4c94( +( +( +( +\RQ@4见:倚sFM)镸桑&拪\褤@隟@ 歓A奪(P0鏃&奐z4舁閔<襋E'4R袬匉RS谎@埔幋碻g(=(顰锧 u=h(((((((GZp`)4+桗Pむq戟6\姳拚O$扥zQE(鈨謸-8tσ灁 +4襍殣P!駥*= 2軮5kn 0(&煂歲 慙軺%攣邾i乊鰼 嚽JZ詥/S鉥錧wl瓽`ErZJ匃0┊'閪喍я唘\T鲘M働哭 篜植閈咊fg筕栖鲭一 甿%t+/=Z贫荲/i驱 s阔5Z蓙嚙95處啸 PG泔IL5丰楚溍龘Xc璵鴒?消啌:篫JZ虪()ZZC謤G廛nK忣'5臠?z遉<[燀笯#\\琪 + +桞隡イ鎮B % R袬丄袳(朐dzˊ1> @妙溦殯D甫Q O蠷5(苆'貲纤vF J>黇だ酏)鸙/da邱dv∝鱝啵颍b熱諎丌槓憘I翎"巰颅l_顝蕪-?*NナP杜o0蠷鶠誧bt~T喃ゆRL<J]佾X倢J泿臹綅玊Qp盨 巻搃#"愼⑨b浧@扇侄T陱扤WGj筛u蘨f♂>檄疼w逇;[諍 l諒误 V祰j阑虔/t郅蕲 鸍秡娺T7Gmつ鯢㑳1閁餂m嵙 澻柅2  C$G寽!?.}qLQ:驤X帰悄鸢X#x;C*頢鵷b銰j搞q?欍儍*mF耦霩峲 e 3殢#酎楦狻 а奀姇G躴RㄠPG旘8鏄E/'#只 燌愘g⺻w 楜s袿5=)i=)iQE%q'9zF?璿U苮頃 澌c?璗w%檇銚覗歄8iz諕9~娄a"g殭N &愽珫<蝚た隯焞錩讧ゝ塡PQx<鳔&1焃q!>m8酽宍鄎*F>魳ZtV厐#侚請G憺?聸K +` 郀夂(槑唲耴霞d1 筮纸.Qz~柳詂]#灟鹳劂 舁%釁Y谪霆螨觌G濩/錱?椴g櫘甇鮋85受沩r.*件u昽勮命C􋬉苮蠽nv?夼h绻4z-4)躒侄|7!#琎[^涝纇cGZ)i-@聤(ろKI趢8_.5倆顓O曷竰燉嵡z罴c!a\Wp'鳢鯛l獂ぅ'欽孽燩h鞞値唩E-!镴)7瘼枈C:篫JZ@磾P1h⺄Q@ Ev燗ES)QKL奐\PIK迊@ KヅE4BD 饆虾哋1Yに亴廕涨.qN耬 +T6鴵y胓虔I纩U_吕豪徛 t牘 镻_菎鐩*熞牼忷孢蕜K<靣?4猡w胛)罣OJR爗諄O聬尪B8鋪HS聆燛r9y雠&趩4Fы1槱Pp)2m寝4礏d暻U')凶yY!\#碡~aw筇R)靑 +ZAKLQE舢+臏雿螪_錧┊/膟踘b;#'cd溴}(墘\詭@c4炮qZ詐鉁 歰A兩⺶6G酘eYNfs颭缃,趋馅橸KsDY磡K分兄Lo睧oz州粺Zど`{殭H#'絎 d扝4,9罎徥qAOSU鑬印<<+Z/S +犟-[鸺餾\弿夸%l閴核^嶕隲圏LmO1?讨鮺枃侠Njc宲x 8S臞y8;瀳'41J珵;匀 R:3碿牗"m+典嬏]诫 .睘H昬沴d>耿挃P!iG%从謻汙-+RA隌崢'5:嘱姟葅馤Gi#dx/痁0j萎+鉙z醕焗g傶HX4l蝭鏄庼 萭$#鋷諔\_*'瀃=kf=ZVe>Z餛T`4XgFEy夏簛閻?uR雮宦O缩<衽镖礰F咏掏@抽瑛pEnx 浕瑃?槵;銤>膿蒺鼄辸鵈m堟6v1(8臫J>C副絋瑰3藓b8 鱗閈凳盎'#q鷼闧顭‘^靊靮?SQ[7命D7 礲鱭[舃哙Z琨纋爋P+'{驙Ru纏腴[^鏢_鱖盄舕鴞岻?輏阎鶵襴エQE敐﹊;P 峊g屄客珕\+获墱g䴓忔章畖v4 縥Jq颩燣J;QE +Z(P迶 +亶愧屟H矈( +ZA鞬1H~敠QKLZ;RR掩棭隝E/N艚 溲謤 f搹茥嚉殹杸/xdc腝{医W漻W?饜艔7_ Χ*B觘峞夈q昿T廲N#;纙y嶠4筐廼唧趴镢峧袾鄀=瞎繊4?席﨑o癍ZJ@e閏エ聚黫4嚣鬫峣袴々濤嚘蠝覎N蜷銚ZQ啎`,0i肕,砬_皤t範5*齻晓} 縞)馐詔秬1S倚cek>$"@垼T擯EPEP暷鴮尿L/崤v钎q>#林陚;墭$鱼 9銽tI拉Lz朜9丧/<焃>栉FHp<鳏YVc橺欈0奈Q覚X酵雇i诜>淰^j輨榝S闅"&_j)3IVH郞璉炳<歵D秾m腚业ヱV~詫+曬鼽u婂隹跄3[U鳱Z腇+V=)峨勏錠zq慭G"釉9M.1*3Y夊_q褏j6鶹^①el鋳,潽x椢8飳㑳Y蹛jX 鄪1遥‐溏ME@[痗N筡廧郴蘋 )覒蜱<鶳F)(啋渮Sh(((@(鈶N .1@!榕-碦鳎f拪((Z(斱vxu((澸汮(蒇f:屨#V顝頰\`*6攗=)ZZ( +P))2hX韽虴RJ~lzTtQEQEQEQEQEⅶ坅I酲EXQ罓N)蝦挠h敘(歮溲@噒牰T 96杹慬鰀Gl;鳜鍏j$驙 ded 諰r渦)1H#Ie! +鄐蕃C;#d`t'淭束4\ 7m"m*爗z)#洿9'尻kp&过x骓荭槈o1龡5筐w踥泐忔+纖簅嗞7P潩啼梗c綂轅檅X鰼,卻茏K彇够噹鐨覍沴绡琖<:dW/v犦)艸?3]N9甹覘h3Z狰L鑭E-D∈}kN俜[瀑*+?P_躈緥Vt敷45缽D笯漀:RV讎$款熷X蔊J仞鼽u蓍i)jFQE%ǎq2悳\皲寏m\-啁琥譽 E\G骿岙瀑_迾賂籀S殯HL):掩-Q@Q#嵬$儚sE&遺)氅hb亣J;阎丠u}hR齣J)礉á E1L镚oz(擱搓:襴酯iH`zUyMX5Zn唩9c䴔1鶺℃細述[ 蘸穈(#瀯逴^懱6\7!秝TW*S鈣G⺻阢柽鉛噬;*LW|O1l? 4燄戧g屈嶸kK\?$Z欍蛝{鵷翧⿷.闃鈼+軂~n陎勤z鵥伃阦⺗禟X.w&k婠谠煍k扣Z弡~狱)騾巫+鹀R韝q脲Rk;I鸻O馥`;JZЕH蜇A$;.Kc +( +( +(笩擙(鵚m\7韗P:8檹NU社佫歩rwg森L頌孒"}8跖$剸鋍逑🀘=奛飙/)咸宨;4COZ|,U'長4>敁 +喁4禸sS銕酹話\汶KnI笍?嘕崰S愨h筚卛曾Y髑>恳筼菳幼'5悠@?蟡<围k忶櫗挈'栥)鞷6W哃G徫斂\+堲I Q礈/'鉗3漉 Z^5J宸鞱g$T/嵈j|G璆N屷'夽J茉u!樰yjXOj姕寊 +C2髿啲 凯V#C謷渮ShQEQES"橬S儕(=h"籀莹S廕LPQE +\袸@(隖i({矣i氓QE碦P:奐({藥z 4t悐Zá彮-=;伐2&0;瀐r您袳QEQEQEQEQE$櫸褼i個!( +A謻 +Bii唨丧=)#(?絍疡联戸┝ZY〇B*789蜤U勍$泴w┮l娝G螶昫#+蚳溨仪ye牢z謋顂y苖4蟶譏喹j:_閈悌歷篛閉/戮硘v痏碌綄毢辫q-1sX7gt鋼子氝+ r概a +b绉z#酔*珙?沅y 咧Πn0.=铆oW0命E 即I$u|樯霚R威鱉e樽嬉"泈k壱|~4窳舃峬p堽t扣(鍛嵁滉I瓵u怘腳Z鑭'znup7? #斤KH)j@(J(_尶泮??沇y撵;f贿q齭瞳偦\=: } +2炵)濊%啅(爑燿'慏冧覡8鎵>AE&h[K)1K迱繰襌EP 簪((h`%/CE楍ぅ顯Д'aHPyw +m鳗2h擄馦甅<9髿檊憐6~礬p)荔N郳K澢驺镾肉(銾辅R壉巠44裥S盪p&JW勡莺R"奮潹 奖R.w5q苆屎g8麸p臂 産疷-+俣爐蜃熉(((+嗰频8 ++=+喿5藢(?72W庣妟菃lu^敔+(鵾猡任2*缺9蹼酾!磙懾08;迂3C奙魍7傣y"癳3L4)峈芚矒倷E[吡鋐睞#∨a楦⺷Jv島SO螫L伪7禢X⺶%勵 拷i 陥渳謚`~羹暿漟OO51虪庿5葂岱k閹 譝8p悘亸JF 躸\G燞襣Z歑z 屯1泭 @揣L嵐G穁┩G俩規簸鎶IeHㄤ\嘣2們覕酽鳡bQK鳵PEPEPEP儜M41葼袳PzPzShS趢奮)((ρ@見(1KIEQEQE兼4a妉-舂Go^W隌Q@Q@Q@Q@Q@(襍a灁:p管漩╀;P㑳Z +){RP乙Q@=*3謹襊0燪歈襽qE(铊1妏niA 暯狜[84!:觾耀戤+朶5V駚|廕~x蚖斿╜嶈H_熹t揲[c 崁m羟5B遗%俺w慒蜙舢偲働1納橷8Q嗧森`9昕u滶曌偷埱j┆沩俐<孴r(TFkeM)s#櫿n瑠爱蓭熾[噩[争=鎖狰G國藤c~胬傈Mt膃H處銥 p悿溆=)传螻)垥z譡鄜5甿+抆照/鲈{:9鷔H铬=2枦逎A!EPR敶气堵}姰簖{苹宂@}S螂\ 䙌i嶔*82瀒攧挅拋 謳鬜2e +IG8?N圆c碎@h)隚ZS規sG4鸳Q(;>奐({QEPq趭1@ + -&r(8燽4QE 要娃瑲7zQ|8敝朞組E&鈹})(篆[嫢T^祌*V幤恡聤(E +A鳗驜% A 芭 隯:D皞\la瑟@vzv焞h攡偔TP祢铀栖q廕杹Q@Q@Q@zW瓻縚2NUO閉絩3钵媑菪獔檯摴晣|g覛S潨g4雴Qu!O桓wQ瞜8/忁.F+B +嵒wA兣6C禂c丯DfY晀赣$*q伏伖b{親h#tㄘT*&R"0i>概=風颮1Fq冭鸣颖蝳i亾讵;奪,\ r珛駬o诇酨+捕薃lO9A\/姛~絪熵8(/|'妪) f洑C\Gxびh犘M=ih?JJv3H:忧NMGS)墅&昇>%R`暻z堄懓4k50姙U鵺v∣JmQ@Q@Q@Q@<纙)萷}q%=噏覚@Q@zP:倚zPOZp镸hOJh隞qZJZZ((RQ@ +:衵襌J( +(斿u* )s邾2v鶄巰TT瑀s芤PEP((((*x侻AV撳\PS煒(9ī\顁i(燪E-4蠳i((-)鈷 颖锧 )pM!垂鈿:倚鏈琲擯柳ㄘ湟K隡 漸愄V&饒=kwIynu焊K!c偝?钼暟BO~+Z麻$架歃F~F8偦 懥U嶗遍L擃驲?xq权燁5晉鸙関儝9={职瑳釚圭廧委耺C2邸鶺4xf鷼閺\W2麳阊峺绂狊I烰Q謽塖璾^ +鏪S詌?夜D9沥峧狡锳hJZh敉:侭(犙E8忯玸瑜:喁Ngc豔爔淆e穘懔? O!颭欱aH:R袬倲h奞趤貦9墙:Q(徶朹鮢皚(あ槑幅規iM'颟(3歋H;REPE閵(R襌)h=啋(細4C2>陚?J蠼E岁,{哈f籮|悖麵s)(⒐N愧( +)廿 \瀐`趓(9Wks謾R管=3@ +崥}E)帘@ +z岩屾愋鍟^繡皀蝫鼹U"0qRD8=&l49祅俇蜊r0'璘4擰EQEPzP:PEP嬻 Rb K詃PtR灤Q((燗1E w +Z(((cm(隟孮@xQ巋1@s@ +爳$j#崵oN*$湠擰E敐閔瘁見((((慎狥|)6贔lPzSh!鎶((P S坤濣zQ'Z9闙磃 3悐鰻CJH驑"弌|訪匸nU搸{R]畴LG▁2犹癥37醆屪sZ陊^W暠荖O鳺v ? 嫍`鸵=珍砪齭<冭X毦gr9#mN嚸谶趫稘祁=搿橞 d悃j蜊);袱N2G晍傑5扭N剩r儏醍歳r8玈Pz謁!?蔚k/Q瀄琊5u~h|h氏A\詿毪x譏鑛洆齦燂笙Lm- 莏ZIu,51\聉夂澓>:)(JJ(燝#0C?茸熯鰡疉窨鷭珇)?^i桍E.x糡嶏Q$)3K顴 +p莦m(爃@:_鮢,b/H +tRs镋1]-%/zZJ:{酡幵P謯()iQE%-敶QE敿袳 +(*颊`読灰専z涍4?56)蔟i嬛燂@N辊U$5v#L 灁P04槬枈(GQV沐猚颱群U ; e#薩錝 +"珵h寇r*7鸌;桗璺紗潉w訵漒5蒀鎈\8頩F5轝`刿c浇Z-'zZ@QE!鋀焝򐯖沭隵倆W瘽谳慎臬嗏fm?s#皑3祶;V2矯⿲s昆,O!莑僆侱嬿i匀鶶l啈臚陇4聾绰1R慙4彙p}i頌羝&54犳4\R/QR慟伖栗8#r;粵i鎢禪鍂px閇鱏叟k鰔曲 N晳╢稚0麅慖櫦磞: ~Ud3E}7=G汈踨N=J婕嫖疹/嫉\纸 G錤9(爚曆F&證k:鋸碶瘆嫃戎倻k6l霚u黭J 屖砛约K!h譎3鶺7/3砷缸瀦bR亗=榻)h*曇鳦#\=8䲡/银C﨏洱葼磟愱)詡杺B( 9_墙:飋诪_5鑯7弡\s蠓䝼k/裤嘤-鞀M杂*F阩3H悽挅(隕 c?煭:O鮢镺擙Y(鄗袾Q燪@(Z=w鰻螗鞩)QGj1Z(颒:QL枓Z)(8 +3I)v疰8獉U群 +hD訯E0S麊鶺ka艒?笸晀猳_耒齭_錊t&颪( y罹q璢热襄^刱系翇f#p9䲡p躄弆臾0`御閆1i徳 +}5鶳羘=G:SS顝錕瓮愑)Zi)啢4}iT2p勗*济 w鈪3GU'联嚝# +靯X4Kz+#瞩5d(啶诱=#A沬zS泚括嶮oJf}iv1@ 认啘hQ揘*zA歺!"aL㎡9鈦R矗4酡冎()sIE.ii碢é溢ZB8ハ櫊(P跲)譸╥窬訛c*WP~e镼溞iGZJ^鈥範zP9ZJZ(pi瘵l褚泭F瞌奰D銡m?長<@5bシE扥潅犽栚!此' +:{読2萚穙礁V>TG鱧咧┯嚟%鈵聤C覓zRf拪3EPEP帞J(aq"耣V聻爓ī(佒( +Zテ)TOS@ 楇AoJe?pるHzf幵#t +)E抸溾挃廽Jp)答phE)sH PE;\C;R[屲G楹炨UI蟡u[匵羈zS昂赚譗N溽c蠸琒韾[畍射6R P糄伍=Fy珇1P膾F}3[F7g<缢c[J砚gei {V孆趐謺8[oV@X.8阚礶7稾8?┉7w+-9/S氟殜Q鴮蜙畁O跻鰨t濤pk歝鸊瀦bR 奝{卼^鉡碟忛\牾夂/ +萵躦-:R覩ZuQ@ IK@[曝6郑折A5鐥躙5z嵏抖a;&简齳鄐AOdR~Za4%'zS覑!E8SE.(,GR?5G<詮 $<矱.h訯E# +Z_J)t颋i:u凯gア亐鈯(燘襋Gz`s趭(鈯)hあ杸(玀蕃読睋I丒 4à灁S覜M"r*銾M;U群P咞处:萤);溢Rw燗)JZ@ 鳘靅獦晇.誋 h`2_鮉舢嬗=ap*幞T蛰[谴_錊奪AKH(=+讇]n錋蜨$痌^}瓘鴿]z铨*岣櫄yqN>h鳝 B樼慜ㄜ徥5"臾奰)铆s砫'SIJNM%!鈽EILo鏎辅Xx渍鼸Xj﹒'敍荘x=勸U蚁y +蔄蟴榔zU蘩鐡哉^A璬頓U晧zT泂蟡塠袋ZLb奝b仠馤歗}sOQ +猹銣f淗QH[nsP;n?要k潿v队曜EV8嗋絪6栨y昈5硙ìx祱趨{纳喹F䁖踝舷adx;!礤珲?^>反專<m=8胝 +@3腃峬K9毳萾c俬櫚=(葑$糾!'慩鰻色]7@F?漦#蟋3岼鋷p漘勣嚹g葀赶醆蟅'該]褓笼=+ +=qJ8るK@A骳醍徛燆耳忛\靯鴆峛 z師#諫ju AEP(4P/鉧䥽m]䝼k/秋k褆k彵譌蠱y3恴鳎 鲭奿9瀦詔聤(燗J:鸕R岝鯛e堦F#H +TR括匝E-H臓Q:恐怰QH-廽(隟EQ@(EZJ(i P要驮摘-&'摰+cU獦鳡(.z虵[4) 4斞謤))钎4u妘c夿8アNPG&)~磜)1@9ア摫i;R(钎2炃孲 QE(隟欯)趢r{諈聙)#-栗4" SMh!Y>lSK4鮊鎷寏缅锲sQ暻&嵒:!╗颿盃B撹)s4淨砸z馬u韧G覞Y狸猾R昮i谬=済<5C阞koJ( 5/SIKR0{袬Q@ IEQ見\褮JZ3KIG謵镴:Rb僉4擰@!ロF)樹誌g瀫)鎿pθ~n斳驚覂虳翣 墟G痁僑'│窾p婚垷pま* 魠).馯肤マMYF苏鴺bBa.)牴└RJ望Hm#0埂3,銚扅牒"$蠣7篦赉クA@ +)i- +(舣< :刨a彍馸唞W瀔侗vIp軚Q4叡K謵5Q嚀欽\d 莦拠o紸渟弞蓶X逪^珫84剘4哯4&rFn4^@s姺虀v朆LV#J[jx侜譋q:H{楪䞍]4V5w泵H踴4誰u錗:Q魙) 4):Rg4(膋炰T} 栮淆辦答ls詫*忖蹛勦 v~9鸉葼鶺M蝄G耾j'R珕羟璚輺=3氷8Q 踒謀#衄0鉙冇$U鞞庋斨崌84哯K瑄9'跅uE﹫厄阨櫒C臃)cI*2耠韂穱3卼养嶾G耹#剋拖=j\誺<灴漸3埊> 潴隮哋-嘉锸GRz~厂8侺 婂;(- 92躃)觎O隥鳡r3Es3琎謹Rw霵总V締@詍消b祂h F転>qAKs貤牕S>侭(4唭Eax楚Ac鼚y髑泓胍黇37囼5婧烾荓C4 Tg┅熉F)J((魸借$U?cP迷T莨z)p=(X梃燪HaGQH枓)E%/Z` +(1i:(燗溠趭0謹Q)唺;衟i擰GZ;UI鶸3鳸K#4蛽Q痾{>雇8)6 :亷摓礿郩d珢*凬爓5!-﹢)(礌RS蓖(sK覑?}齮_鏭溄k添裤絖鏭毥2灺奪AKHAEP髆@儵辌䏝敷5'ヨO$rd?萎$葝sO^%^刄7+b:rdft簸艶G獙 +:⺶龚(i 95 髿@R恌#殲A岀紹唅 $#噇业珿文Vu簓V冉裼電园UA鋀Y#为&pW瘺賍;75M唕E_裕sq8姕W;惆娵i簏3室宍,r[5詨,k盁^j扏}ie併>垇绛=$e飸Q98=!撴'鄭Γxq蕽泌懖@;x镸庿黔&)鍓驣@ 镕iM&(E!b寋q趭\Nh4碢i氓6ZZZu勸J簪NZ(┩)x颕E(⿹慟 +03@r**櫣臘x4敬僵;0 +x镮@魻欟剄N 镕iqJNNi鯾羊yT紵拢47i1N悐oCJe$骉欩(彪E8擱鈷 +)ph趆(*h*h(チ擱佂P(R慔:姻隌 E古%工((4м恥崦M橼攕謤&i柔P&Oz厛,}燗抓!鉁 `鏇廧iE ユRB郲<訿S留鞞﹜:遍]逌H搹4怦x8_vi0晆裖Nq.;炂\tгq狾A!EPN籀撝2|J7i鹲鶺檍}W膻5!Rt媽v济Rbj慂M謽#訪9擰ERS嘕"58?匒NSGP"v妋梃ぅ@@~(蝸锧聙2(=h燗鞥Sh枑聦P:P):袳QE炘/CF}i;欯H儕?S蕃+悱T笓(7HNzt∩g'謵儨P!蕒SM>$N5r.U8鬲瀶J^i(幋繨(敶cw0p苅觼X垫?濯:粞5鎣g*唼函蟑M妠 磦杹Q@x孚佄}do鎘襉J骩鄜踧灳c}:毟"ヽ揊*0帔['璖%N!鑙濵8舂4潻x蝖5$#t╠颯荍咢1*I譀 +yaO较CRX镨0*牣葲补}F骼+F'+b%耤#躄!駜诨戠KS嬛5[ks汝+SZV筗赙w蟋瑪b3訆銥纭 寠q唄d慚 V噎 朤#UA璃碙yP_^i9 鎶C g廕(てhロI冓>碿屟K鯛ぅ J3鳴I苮燽鎶N鬬E巋跧稐&屝m妦荬6滛鞷y0}(莲I*蘵1蛉4焹镴屩亄r>剜Jft)5#碉J#雌I隌宄HH'5!-嵚0<瀞L.Pモ瑌z擹q窹*f攞痤1靔庳陴wq頷 隣茏xoN彝*,埞 鵶鴔柕騔蓂$K $矊g痮茥R飕x#c?3薱袽u x鐬{U共RB'O蕽壒蟳R4綝J讃瘿烶瞠欌襝縜旔x-~v疬旸赚z睜 9雇;[胻菫:屘捏H d匴,缞呫 Ddb95b{2RzSIP2*#酩(B阋歘 +LP(輾わK@ x酯=('f摗ネ蠴褗J)q顴4 +3A僃8奬Q;PzZ3@酯Q)规棷J濇缆滝¬"Wq鞶灁\鷖E&( +QE$H]篓&殜]偍婧]#MX蛿e螦閆B涛ぴ藌U牫笱'$焃`f灎r}*霬是m话/共{Rg懴%怉颫 S邾1"す2脯MU鱘V苧f果.doS\SwgYR襜娙蠶謻怰儕hD兊h閲pG謫洉簢謫R荟xNbC*J喸搈=J錝P (J(=(欌筤]﹖S^b b輈螨O灒揕oc)3跬J鼘TD`RR襊妐橹)聛弸慥閁颲(S緅(v9ォv鳍挅 +(燩14P佫彮丂倢已@ KE(燪@%-'zZJZ) iJ醳熆 Fk疖S@:觝噻廕#=)棉%忥U鑷A"疍x臥墾L磛#Rf槄I戁岥{鐨Bs@ NZfi蕔h鍙鼅[dq姣蟑K+蛅釴徑&>汞J!絽イ(=+.够滅㖞63^杬W歗 菸?椋:▔暫<鶶#;{酩{$kr)膶S9u詀圁ミ姃哊!~:20 *:炸昻1錈Z?Z縦 卪I]橴vE薶定砘抝 \c)]gw9BV醤@岣⺷*'x 煡vz潹箒袔pH1曖檾2s薰[澊ex貕N>斺 +杊儳0z廋U咷+琻F:諛儚潍n=苃豖n^個Q荍寧84驧!4f枎1襽棴!^8'Q@侷鎶PO謷3@ 龙襚sI/槬鎺齢鎬)>磄(8R雅裤E)i)1@Q焭n(钊阧 }i涪z1酲 +慩;,}}:(蹚\歅?姍FEH骺Z擧矛煭W阒 S袛憮%=e屓鬲t著gQ捣"{嫋A芅>暱z蔾x52騅*鳢9剳"伾扰Y痉炦e+簜,<QI +:kr7oQrEP摧&{> ]玳M4錌缾8}6銻>磭隟梠s@ 4g孲睅砸(({欱h昆碢sKE!鰻? +LqE/"3G4Q(/ 謱S`7孮憡^敐)s94笭鳐`)範趢,I"MW 寱蹾轔JbL玉幋c$`u*h-辡5$毜cλt缅聎&篬+#G:氈軐猆Q*閦Z[(抇欳鶹簬s笸;謷姴8況wa巗隒q蟸並/ +獿L姞c馬*誽O酥A羃怞!v鐾s傧=rs氋詃賔忙x琻暶&z)YQRPЛ-4Q歜怠軧G]漟镰-4驸?鲄Gs-阙颟_圐咙猨QEQI@邙D麊伎T>?谓C_钘x脲汅 Pp蕖*&鞷5F(Rv;P:褵N絷>ZЖ"隨=瑙d鶴L (5 磾QE)i)hM鈸8扭h簦灤-攠(攗趻枓 APs姤qWMR搞4I0sR?耷j`莦x鷅枔ㄢ擯∑*蘲鷔U骆蚉w歩)|J`/澟iを浺椛4瀉謦驧#K錅y啅4鶵'癀Q i''覝 鏈! 欿鏤z紐5檩4場甓g䴕疜鞨}籁(=+惋驭勻%`O鈑C^ir女$錂熌誅L瘞i郹R/S)階 H莆郁+ M|鵧J嘻F23覐'踢Z@6s@赏另P角4∵M1橳w4簝蟹h ]瑛礸攘8瑟6裯uQ鱐V矊 +歆#姮-R獾0"憇茹幍蟢殈O錽氳9T2&鄏3懲DL琲 8唬剮F嵪*g峞]樯-[J*芚G钎c珮a珫I刨澭拻#ue<园x#颯d驪紉镼b艠9_J劖;qS妏 岨堜S慘鏌碩褷Q9⒗@氚s殢<獐`巎 `+挘#C M +8肱(>啇FiH(Q(4 +R馞=h((RP ャ% ^)F)穗@(酇ペ1臚)hUA) +巸(8绛f)6淩謥撻O{徫|h黨确郎e甾裑瑘>ΘQLGO岖95Kv构# >耜k绸霽SiQ瑩$rnEd鋤~錺煒z姝斡* +鋛憡臇;ub< +孆聽9=i刞嘤脯X/x E!00╭P仛C謵櫪&)哛G +4PE!嫻2h缫Ni)跦づ%`褗1FqF)1@ 岓F)q@i1Jx镸栗IN(9P:歰cSZ萣r罜68鰻栟H錖 d笉Lⅶk <颁`b2<災2:t2G祱菱\-.8$O酅褗2h跕 欯 m(鈼濵;wh膝>Y▌氎葱駟橚礬`銬頲Cm$╀鶹鏌駚Z佰G膉N#I-蝁謗 DU]&i鄝4淰6=;秧岥P,1N料Z"c#$撻I9鶇I帔T 蹓4誝[/烗j訉幖姦.钳j危5ぎ掏ZBDq鷖Y誫Pp鱩忈飧欒4櫎鏆M蠢PyЕ.⑾鲊禆8 䲡a窹5鬼秅6鵘姭菍玟虱P (4磾煰0]饝戝 O95辔峹?閼.韵袣郑a蓼ja锧 .03Gnz揁噖=c1裾佉支N6廕)p=讠胪'颔F{袴hsIKI@钮4倞3J)(!h(ろE閔隝@ %QE(=*旂僕O莳W襺 +e>NI僐Tk证$|肇睂猢EW9Z"P爏視x磕M6v佣 +Q謵嫩.氧4}hb +ZQ@9).i]W +簖,gS䏝疈) )i-QE!4彊鶜舫^i H淉鳋uq#は)膓黔7滬R$o&崬樷j7朴徥悌厢I鼄*TO樼&芊>3颮纮0j:犿ZS嵸旾Yl阚c礖-v#伝8蟡^櫐!^櫯F= KM*n鞨i惾儜詗琺CII婭脄V鑍夔殟悗倱姈)8唬噿)-槵奊謵?b+矌醦雰5限2落求-sJ泿荺+)h迢P輏&姁挏0櫛gxg#丩5y!7\莸}}閄.>=*駥U粵3 +珌')c]$wV頎\,A錫9甑HL.菺c蚖>漂^枓v9=5Hf$鳏>悐4QA孯敘;鈱R9犫亯趻梼F=#。(庺干づ.)p)碢鰥LsH(J鳓d褵s@豬,& +弚梗q荶6烰]瑉H4a迉#詾C懶豻&椞o蝷%蠈鉄Hp@甥求,w9侵槏m;M#Q穒6旾拜詅 %テ幾狟)a3^V屰筨~Ξs,+彩鑳錐bB=)宒禞葻)蹼舁Dg橳qU仡cH@>!C籶&毻b孽 })漢1x楞=i=唼葼粆)燫4洏幋櫑ro从%R鈥枌q謱{懗1M&測際@F)sM燘鈹b汮:1jXr$里Q娆@3(8燝MCw℅ $k瀧氹鯘+K昞1僞}c;A1u8鞿s晗4[Y幍hFU蘠Iゑ姧, `幍C崻{襃L4霧蘨GJㄇZ啌Ex5b)鎙"1&&砉\q跍;p3]弲n%俱娷堆l,@23~C5琱深c,DVmぼ軠,m鵙矸嘺丆]I擙甄5瑚R"?▅<氌4yV敿堈0-冏慗#c&ヲ@Q捍2c 4c<)7HO堇犉\穴 峜答ri姤膳J膘灱t-苄戲及#镴 u墙:>勔跋_Z}A撔:瑉毞 踡佨認d懯p=辍 l┪5焩;i8銑绗为 ﹪#飼墼酽n򴙐祌潈薙KS3歕鎬MR斸p駋蜘璢燊G撮g:u`U圣闁驱乄hQERR襊k兀鳠跎繒yvO汋=_7欓淇5搴椵o袊衅z嵑T)嚘q@哠' 螼Z]婬:覂僚/q襾弿*u黬J8燘c苎KE 6 +(鞦iR襌鐨;乙Q@ I瀒sERs歚-QZZJ(/jJ(燪趭(イh= Q斧陀蕞\R9聒)騷鉓z鈥r >:z莹D殡臬衪醌婿8イ)s顯 蟡_ j\G見3( +h +^奾<欲S鰬!kAMw悭p:?:胆<|踹 +E=兘:涋滰倞(5娉駋.~v( yぼ躂x崛齤&3%瓷#<*)0℅舂OZ妌#lzR爼x鎲晑7s 鄽y 4鏈D6[9舏YFB=O?匬秶钇1負隱H亃zc誑6GY]帰奝3叶01謷(の:8磘n1宍R 8螶VQ'魛i繜z夆>0蹽曋瞪盘@ +o踩澀訴N揫 +簕 #9跖J拹刧嶨-牛#`懴Z瘍衭cT铹 奉z gnく=缆毈8╡」4荍6)3胒敤!謵拀if枓hE(迶R觫 氧ぅ(QM苺$诰j绛3'謼'韮謴/=楣8;P!㥮!︼>达1噝n1@幌.箜@)4鄥=?*U澴C3)'!犣敛伺I岎)窕┃;妻怞榔U┊湸?J啒F:屩F&薫窟51:珲3p墳Tg暽U陊P巻q4QE`tv%8vτ嘕z鶸>nu┋Z寻2△嗀V哳U*埤式L(( +z:U琮q鋕5_癔Sw\_蛩&}O酽囆苸倶s󫻓!2(9;R鈸盃b鲡潻GZ(耩j埋U<泷┰绛(足Fi)E!婭淨謯QECKE%-%/ǎ敶QL(幋碢A=謤舄3醌陀璔袱牢擄歮9蝀觝俗>樃麰8g鯛 c5^嫢QNH蚠坾ⅷDV攇JQ見`=EyQ@ +iZ(1棱潗*籋FgXE紟i阩各Л栗06魋漐彍~5邐罂Z礬g抭鳺 +EKaii)hQE嶗My湡雃|鲼疞c&佳2葄e忬5Q寫宲E9q矾4蔑LC%XvF鐀■Z|v戤 *鵃< +=j喈醛+"蛯`逑^ζm:辩穠QE1 N*W镖殻$t黫[8=嚡^8<`NΣ缫仭籿寕国P刵9#5!5G侷9簸;<蛸釩 g(U睃閲`n鼚t<袅 *c鼖鳔滗d(尲烠讱h崉翥&煖#4s軍娽c#1i!鸯\產炧b'zz揉裠谫櫁v煞>} +隑级8dn=I:*蔨q戦帧覌.53宿)#萮"O+豫从$堿頖漲酜I0I礋QY:/〈q1陱=4刞骫e讋.嚤瑈鬕唹舊樯片躺"挱惮>d *B"⑻忆y觫澏#( 褍J(2h9Pz8ぅ犘(巋鎬.O4F汶K歲|瀭嶄v荮=)v跓 枖J錋"笺b鮜屧嗎R﨡宮鞞v撠訓6=LfL#_々c抠砽(v滘:qo!趇V贔邵业菆偬d僸?{1krE浘苡5*圬M1失専J蓠6焛m%3萹盢H蜲V媚锥;紖$f甝#3yjX蟮qi(8>钥c楙‐*8\3u; 杸#[2寶屆幖P!昴鶶{揁1啧庻3A 呻Ae9ㄩh砻覔>聯c趤噝(.( 证?*殤,鎿)賶碩kZ=鍺酜筄1s臨&C枣园(Bx護o嗝恌x综璲A醷倔3Vň辩Ii+鬋Wm鬕┫蕦}8疘廚硛|'展⿲衿06廰Z*(赔涃M頮O╂董|)i=V籢/;T焥P=愈叚4尌Vr闕漞j$ njW笁牚6s& 榕^埼总%?wДVy輳- +唺asIE (#=zRd唽{Rp)標滛#鏢N!簈Rg歀c#4'%盧憡n茑鋳 +G刊z惷c怎ト->源匒949>创})汧:b9鄓皂嶑邚U-%硟Q7C廕q鍗5罷'趷蕩s!lq\披鶙覟WG)緕s\!樂&甫钕F毚D鵔淰f +Q謨A阧@(4儦PhT鳝?楆+5&贀荟-摜蹞縔)螕l}R)())h +簾鼉.侩#^U~>I哈f絎S鏜甅5鮫酽囆舿镺~蹿@4t钎.G_J?圥: +3jZC@A髏哉t醌#覇 (zQHF堑h枎訮 ヶぅ(4攡ug 袸E0(燼E:QE(襸zRRC舀\U妾3锴Ze9睔m$膳`P==(%N乓℅訳QT"q覘 ムS儹-籁!s覚)俩Z倂4 壈q毇拊X⺶&hnj慪緯:[宖 绁05<&I篆箫荧蝲/蛌*鬸掃AE-4SQE嵚汅6鎖??套腛5掮諒螳垬搞4笄鉓& c隢q岥1擁趮t噃轾折"样導q镮chg3伆c址銓"诤〣淑j梫Fa稊 硗4 軎禔>魀{Z滣0蕬渻甘寇岶a垙复虖蜲*q詂薜M碐报谖&讨刮)丹+鶶?成?x鎭芟e 岞狌~5p豀;妅YJ:h 昘g坜(q螸諆k0L$6苼軆!9筲澅H( 帲c溠@R;袸戌篆/(89)3儛q*:(r; 礰7#薏柰雹m.袭*渝(埕ǚ鏋0s鳵i1橣辚g袜偾1#閬*e糽v?岾Z玅u8Y1{#蕁焃5襝tl>棰t泳 鹈?QS霶k3蔤蔭"EB忠疶"絣莋/迠# +嵈 ?鍎Q臗燴>c 忈4瀃zW㊣犴=騶3鑚鸬孆译>牡姀c<矴杒裚耉膓)麰B彚H繄4綃謄p>SQ鍛只冡凾g3}Q欷W qf2;R诨饡甥歛馥喵Z^蔆鲳顁^[Q宸燄娸w酾 O袋嶍蔄磲茕<碁i67 醂厘煭/"溢 魍蔄磲茔1鞱騙+硰乱狦N#鳪庠{)穱s胳jT硽C颉醍<33蹰R蔂m晐昖Q&廳彭鈗 錽=弓齩硫橹蔽瑣胳沏抪O#藓8tx>lH=佾穤p狗#鋵c F=瞲む袹琟菞I珶楏ň'祕a痦膴m醾碳{ >*峵<垤rsν備嗿祝D2娠困轻隲錀`;W鞐s菣媀擒b)雂2#8疞]鍛o┅SJ睠蜊.}驩丌^+润皶u*7c9殡mr"垀 +/耀"^*]7徝窉#s鬦.榬燋唬q )嗱!袚鳸*K/P錬餶鋙t_漂冕;d拀峩叼#'隥点瀫 +貒Ro :孏% sW#背嬵[>ⅹ5虈9~*&?y骍b5{毦dq +^ =I鶹Y憓!椥~t靷碰件掰u]H{5H绒匆s謤盿纩鞶檥EE+{SI$湟R仦擱$r憪*O&Op稑渓4r9)j莱 ?鷬錌8て=~暊4媲-8i菟g趢箾8生謽佑4醢煗蘡'".躳~镜炊q)乌p窂乻鱋錕;舛*; S((9孉l溏eH秗灒򆰲( -l濰?<鱨V +盦颙粥.1WG\b愢.&6閺j"鵑晴[鱤6鹅(暗H膌g熺S-=Y崻H蔐q坏s党8成$6k哰灁v +(ⅳaK趻Q磦(闇栈S閼UU薩醌@-蟚k55熤磋(敶_P宇3o錨Y弒z鼀O*蚪GK巰渵fCFzS疞=)?Q犁JC軗9)h勺蕃 +j聹岤心-R^9%P矣i氓f拪`:拪) :R袸-矣x%P襢(i(砼嵭)裢]a臦4椭挏輎湓個$A又蠻牯]P夎颎j9鏄ぃ煡@娅\諃y迾2c"Х鞵?5b攮04bP~𠊪舁猢砸GA]赫驶醆7嚁6硂懤 枓枑倞(?阙_鱋虔8绶'5+崭鐿螵B`s*6﹞d馫6KLDL9酽7蹄巖1R0鐜j5⺶獾&[5(詑?虱q7钭?旾怑w-.[莦s{觷婁蠬趙D胗螧?*P +'迉懽螅?徑.锳#g欽]锤罓Bc巌:vI?((熭;P86 *??#@│稓溉sWx造腋抠唔g镏瀤镮 ,橐g1M骨璉滝4骆I睕酽龓o铪党烰9顯]樋d淃啅餐偾z\鸓1<墪窩歅砱顡鳹謘趯{ +.;槪蘥郳 徛溃h=囧E舠$J例瘰媺G駳邑緜崏E洛w y ]責瀂pPa|{уJ/椇卞E!(呾g鳫dY鑙﨑_筇R秊/ +4?禖/卺鮫譁m闱躗O城鵔 龈}O隟雳GV4y鐢L_筇~Th 雳}O階簝粘臾y11@<鏯 龌`o簟/"'銯?(儒燚儮仧謺愵Z1銲话僻[㏒鞆9醅);y3鞰馽4停[棥匆N绣cEow險K嫨?;[珟L蝵旵祓鲘Q @"牘Tl4&晟 掜㤘:y╒橄G@)v畓 +軾穕犠鈇鬦屔1闦8鞦aN2嚈忊=#b~暠彔で覌吿&n褱鳎葴鬉恐屻緃竆塞-藇駹靥~瓱j)\wfH渝# +p觗=YkR棴贅4筑/鰃4+K% 矆覵w鰈Y:粡j? Qp筆X脦敘5d袳媓忦妏1 RQ鳴vDiK钥⑧ t袱=( (燫!(ユ摎C +?K僃娱E颇镋;i鶴磟裻!4烲S=h郠p斑蕦訅_JM碎@み僚&駺.c雇`: ;WNN+樦N蹱迡齅Lj/9=^M鳐GEBす}7┄廧醷灅Д74阋Q見@H +p攂 qV鶳 s丶? [_+N瞸6链k| aqZ Q@倰枓 )躱錨W蓎$~Z膻=et*蚪Dcx3M悱3=荶e (ア 溃康 覑 +雇Y^昞u 鱁跟 +)0(⒗lQE f奞@Q4(涪孭iv礋JZ`(隚zJ(h@QE0篣 庻y鶸奓 鲫i)[(S僐 +`閵}K閃Ⅺ礔.祕旴&irq趣蠢Q;褗A~個择U*5V搿觥'5<U邨黬歚i臯牚馯4稆 留o錧乳\?:榈忛]扩)磾(婋=p*蟊黖Z;鯒w5HL紾S苄f妛穗G)9}h栗J)p=qJ¨p~敓?oGcJ2棜v=6戦E繪奐v 砉颋覧纎瑗埏K秼咂寶]4籑苎膝)Rh贛統4荐4恣=(貃:. =i)Bb曅 盀{P酡,3瘢4龣籁( 2>y舂<撥僇"像 T"筜見抖堁n3隣KH寋媰餁梀&獎橜瀒GJ簃""趱8-邻+鞅K谀k2堹隐Uㄖ多r刮)蕱昙yx胫й.努+頳dz徫徥的枲}1Q5艠闍)4*<2]L荦(全乞消畘憻黏7栦|?姱h霿嘗鈳9筃袦鳄甫嫆%Nzs耀欥3鋆瑞h +Oj炃鳣黶HfaUw貗!66zQ苞R\銣Rnc邭5兌z讯洆隝煭=E狉爓 隠&0蜓暔瓜8#=Z,$恃口檺h'潃y~:Ro8泧妪7}i怀HHM&}34叏?z#闙造/馫袱.=h,;Q慞檺雌窣2Oi幖 +弞(イ觫4磾QE/酟縅5}恢|D濵%9&愋絡Jh鼽┞%幆E鱦寏姣艒ⅷD緮絲酰燼J: +u1誟烰:誯炴 蕇筲摎伹蘪qH 篣丳E椰-06<83珽丘夫W崃槒-奱KIKA((Cw高始:b靵i1=6*笳鑨颱0=x?JSG8" :隫$陖{T 筞LC 僔V㧐9臯兀=j斱倇椘 w4逯T向墾$碪鋎痧f陔pp皚*t誱郢=霋; B跖?>募*顆)}H.闱達渭 +犁<]<9颈銴蛮瀯zK/风^~簞1姘ヽ债q)?Z~$齔]魈S蝘C5櫱&L鸗壇渭ej昲愷;]鈹0辖q聒哋鈂 O圛旮Z~澎g仃w~Tf刽衷巼焭5x6靓浜S靘du(55H瞎5\烁綔欍 9詂'搳憃愼4hK/辖(e鞹配g鴩鏝鸗x)豓e矫=枞W 寠w灲赛璋F;PH[螼_謴9 隕备zRq隟吭,櫱~=j-愎マ敬瘰v–7俼揈枈弍>8X ? +s0浲L烰\詄齣7{補溲a/顴咺2j=绛吃裛%蹺 l詛輳L裛$躆>蠢J7(丧躴L 鏆Hn碭 =ㄉ颭ミE~M.j-仫歖?<蠭靑泧o蕧汩E~h墙G紌䲠o魍B!千"櫦{衐碭yh[v鸦躊cBI(ю︼s<罦面c 鑺>倵#蠺~h飱<央G(s1陸兟(?AN8雳|:Ry睛嶱鎑))s幍1G)d4浘礬酞z鈸蟎pEg9牰*櫤A#4嗩>睥嫑矷侩T聚b鉓7駥濠厵wn񤮔1脤訫獴?垀y鵜>晫谠 鳠r p鄽W]巧.迄lw︻鳟u跌2I齤6汩K=述S靦矍4絩#齭U漶聃ロ`奣&棜) Mp9 隤>縯{奮%,<吸螤g"榥 ̄鸠=}j橄吲B诃椃塊 .纰涁胏p4圃癔7k樯鎂6箆赇5>輛)a|螰揤丗L孂誺譵楟Z婓1弒'璒_U]吾麰o貧夵G蠑1o+怮N丧礓W这t忊3蒚95x哵瓤峚i哈u>贓*靗>籺[毇& 9懓MP-K'缘N+#饰rI&'=驨づCl "J~(坤 T橏写燬戕梞 R丯莏P1LAdjy鞸?G獂L鏒V輆xD摚 =J荬7窺E(k}觀M泯袣絜鹃)>腈?⻊i◆f漻◤Z朜剟(R1K腼A烏iy臮Q全C)1 砥奲54T (枏4Sh隕P(奐ZZ 5/n)hJoJ\驡zJ(钫 巻手}沥&94敪鳗(仉淪4v攖 +駐1v舄0闅_聛EQKLU[烏lU[瀯衻蕂絍 苸礩蠡昩紷8篢胍}jp?:h贬◣?伩晇跖xh伂艓柽驶Z捸碤E +( 糾禨绊壹徬燺菎驱so錨| +▔庝tぅ奜,哋z孁p8+Q笈&1ii{@ 5礲爳瞎塇5﹗兄5;J酿i緆S蕙罓c兼4襮@yG橚'氃鍣5D: +P9 <凐狝u(#毊)霉=┸V6l.贓骩0澝婃綮椛畳賬QN郚zf惼3窑P^($}i宐宍灨аG3膺w\ +拹)蟊r|賨y岮朡-鈧;S鐥q{8:a-螭k箵0黫*9廼$O矅a択7 R1?Z蜐N顪訞懹"摣>*c[愩彯 J核擏Z缍鄙 vdS鲇诈緡B5y饖w霈嚢娅 n)鹹鮤畣泅Rj渢缰猖j匠#牮4沋}鳇a眴鷅瞘蟌犱钆轇5 鵙裶扵僣挗瘩轆鮴So頳猀丱郯 /<想Ju徍*魟馟穉鮤枎礏u谹"钞H興JNO輯暄:忢鴠i蛂,MG跟秧貆Z'a 囼4嚹0矢謲<姻誦v?饜翺喒%c证 J=純暄:摨艥9酩剛,ck~UぼOZ=純晷:o眸颚潁{!畃撾'鈏{y諣tg_?蓍M> bq绸閈qA'z=紘鮴扣<涹v_顨盟zd鲆aq瞪O:苣c娔鋛FOj=曥!刭:萜065疹I漞d衕霾峅韀庬徠榰[岀>暈.9蚈禇q(畢萤N驱a弦榦2UR1)M蝾?g艃{?a鞮鸤7礏A"3"&3广q鈿f~錈茩済4c姏铂21滮i7蕮oJ. 琰"0)艵 IΡ离;襾慔Z亷jI=? +垘1H鎿4I@ 欳8籀F3J=F(jUZr< +@0iqJ!=闃﹑ &`锤雩b澏)p1阨FFh&荞F1趢篙据( 荖i銻 .M9i卅1丟cN-择嶦F犮芝坰帞艨8鬿閉 s~ 恔鷇q]%!Q@Q@+蕌<辇7褒Mz遍^S▽Op髹B4喧R `SJ曃y?JS謷亝'袬 +3毑8璝N(((#X庺糛R0镴i?ZJZJZ(;謷(h4RP觫(摻敶J)qI鯛糕╘q毦黆 庺3 =z;S﹥钣4y獐切U +擯:RE攗!GZ﹗姓盪.x!橭J笼j籶f瀐J"zT悱AcS@陴宵"甿+诞/#'q,埴Wh) 婨PEPmD鉔甿锨"P秦.22<二U缟*悪(?i苮ラ)踴隩+苡*Y嚙n*!蜮qH踸覻壢鞪瓚僅c A-Xe哩e鑘`f輗и.>鳐m轂祲q藄Rq@爐&亯E%(挐1@)薎稊 P倲 +Q@纛[癞氊|偣7飵潞媉圾SB,m郤J~䝼楬蟎 肉憜;S!鷅#G牑翣だヅ芐冖恷Η=* ~f>c簟b /R(鈦鼇镸1悒8pi +绲+"詺3Bw≠O 浙n@╚li'癎6璑j婫帣卹縶弞鉃鍣簎;蓱辽∣揲N鍺65t+XW乊ZpkX:UFT湟吺妦:鶳鞞 +奿┅瑱驚鰿僗硃N;皱亦艠|苼^)\uī倞)) *P襟Q'^2 zR簦J@jv28PQKE(ィ雨z衶}i逬LzPc颍4碽p)=瑕u澯瘼i1譃G4@ 䲠c)c E7々;RS僵p淍h慜坤#弞U恞QU瑻蕅H圈*}%Fi1N垭F苄/5:-1R奬R毅舚)H赦潕N(>躦隟硰zu顯芻S閝@ 詂歕S嚪謤4b煂襝h8倾@苼K纁`鈹sKqJ(,}j:憙@夃g9鵚K\讉:|冄囼畺慙(QE#t,郧鷀如锔餮疭=+说~/.耄烅@ER縎虲CL镹鐨Oz%揋`hWㄧ皤+耀/Z布 +:奮=瑕#Z闒R创磾{Q/Z)(枈(颎j;Q@ 趲烰AE-倢PNτQ@隌 ~暉q薮$鑛>恪砸R灕怭嚟+长QE +JZ(Λ熿滑-繒y鷆mw差<垸W犱zU!2Jp.sM;u*壉冨遵/耀遉LS籗GZRi馪K蕙虲- 氘+绌r毮渱皮iM燼O)裢)/Jq4躌b幋建 9&44杏^簨q甤J鍮 +戥啠c骚稪岧1M胍52@黠E(`捩儌i)T2t駣咰驓瘵衠P鉙л鈵(鏉忿 +v81亇i臕妏y` Ι+T)寑巎\KSh1恪9&, h\E翠U?34鱕' V簮Tc氱 惁~9颶恩J 4(uE黂c詯R!爁澐妏PG鉆鱇驓聹|衇削Q*脂>Fj) @腴E > N=j銾呴襾3@6槂、奟M%(桡赯(ゥq顯 4锤LqGj\fQN4`Pi)劓16枎魌4啙E爏坤艷譄E7 ip(=(6Z尛LG"惌G皐ㄚ:濒琧飱<砎qF(*q酾佖S鳆{倚1佒-8 +\r}(弗鶶$PG# n(4靌6溞!6襾N艵.?齌遧覟E-h意滺i樻孲迸&(1镕)詖寋R褗Q芝宻螶墄9⿹<靥GM鸣WQ\總Nl+àS(QE#t1謫5 蘬從拽曟z墪佤暱&爇c殈=#蕙~щQ灤1 阙擓S殣魻&)iZ步Vj聇訾&>奭w(# +_幛t掩廽Z)((QEzR S嘕m/j\驟梢钞z袚钪u岭I丠4/襽 (Ι鷡酅G执#1Y袐願Q)h; +璘灌j艺K-囃Vm决j砱y6齫@8駧jq跔嫅S覥7|*3雸廭軍飓嶐壂s#+博QERR袬鮯*桡?籲? +篚氵U t粻絴二U甾繒R$鞷(*@躷犱猥造9想P灤 (賻鬾?ZM绺鈵撇鄓娅薞湔yi焨"邦5箂冶n> +vぇ銑e +x2攖嗘"P砃惹紽:莹蹑澸毤忧轄 鶴uV珏-5永~Q鞰3u*N@橥P烝J'順覅慔妽涺璆苄uB@>sP尚詣5搩@娺臯PdUb>aV#xR{ +爒鏃亴qKHcH;i魧2(瓽 +^鋦禃 h爱>槱 T?ǐ簉@5ㄛ螋565岰. 布>~单 蝢僘弛昩G +;萝q鞩;覗荄溤漦"陟cZ蛻U{8貑镱毨滭 +藓`乐沁4W璛~溤熉惼Z(隟廚磰%宻S牗#┯'亸zB{^y4斈sJ繯h +馦*@軮妘&9魻h=)@呻K巕@茙)E.=)>攧%(\)H4F{P{S) {戕檨姁1M&=bj#簟𗪧阒歄(芤u=緮z1Z礈邐1樝缫奯姥@岼))i (颋h僄P魻RR礄)i(隌 E碢E(訾顯 +;P囱K2C蛑|鐭麓钪u *鏎镚z1@ +絠鈽渴烜9蚠帹C织苆腗E%- 孯f4礡珛知]p 4#$醌vxUS祅9苅艕*a譅姮/ 7&?鈍'O鮛訵a\勂u)= ̄⒒ +憛Q@Q@u3稬?羯繒y顊鳢@諄:U蠶撳熷^}溦!1銧蚃GsP侽覟E4!∨C酴[姊䲠R}閔1 +侼9╡镮仚q鱉c9瓔灋鯌?搛9螶 i掖驧 箫@)h寥)(- 鍫C嘮摦=i珜Zp鈥/i3閉E根>甲-苉Х?(狜X蝳h R帞啌g袣i齢9τ:m歧>揁 < +嵨V=*'醜b+ZN誘}甑N:PS褙`5"琊帞碦瀭惸(ダ噫菠5k茔i瑱~鰗f篽8P:瀣4d +9爃4 +銘Y于J賜J嗠I珝J=$/任z哺又& 8韕r85-X誌=荕tp5#bsR矔85G軂T&д稪吅蕴03P穁fV儫J^E-$~:寧*銑橭罃q!&庁籀 4儙敿b殸2Le8糅逈巠墙-z(9)?鄁N摭镺'廅唨隞~稹h靱弗=倐p(镉駹篝ぽ(n勪汛襊X04y'# <慇 銼鼻41 霟!褚棸'=.4閲R % 覒2枌Q@Q@Q@c鬛@@ 讑B1GCE.i3EQEQ趭))@ぅrSG訲5,z避! 逎kC肋赕с]}"炨EP (+王[凗瑶m^恴鬅f畿琦44r蝉?Z帴楋嫷:n})H)8{焃O镴兀撨蠢_錒(奓褮@-%/稪`-們襽 +ZAK@鉋碢:岩徠 镋d+>~酢'J蠝馌 丧_邱ii +@8<=kAJ鋥狰昴KER鈵1E.(,*;熀誸鸽蕞]r 02限臬v *j祅9 覈*(篢-0: 凖1?槷竟 糸驱3譚((カ铪珊蹨鵪\$h譫6咻瀔:U!1菐=髮郑m妯@鐪TD郥瓕滅5 &n櫉囊僑q=*冀*bF5 嚨P镐VE麦[2帰↘y廷^赃'趢 =O錿鈹排+1V<瑲<湏W变駥S锧q覞兾E[[~zT蒶鞱dGvMtp +未&:V恜4凉-殘H(=hM臍e4铬QQ磤t欙暫uㄩ7{覭宷E ㄜ餳.3Q籷i<栅惏毼鈽ME9鵮*_巾ZS毻摥5t顑;秩o柋4髝+X>Wh蛸鈽N 79噯" 歎隟灤噑" g苰瓔蜹馲R錦源i栃{ '=* b=z殤%$恵T嘵攳-lRe*9研U謭P;{Pf嘌?滼 FJ}2 (苆<饮S!? (Ru鞞uσ幋E龋'sF=犮雹燽幋鞄敬迌<驚籀帔S隚工yラ/~i嚟0G?N綮q揌9陗敻陒Rg閵O茙濗K趶稷棡敇鐘L渃覘盖8蝖惜8)@呴阋搩F(3E(隞Gjn(镕)q%挊)E'覘b}hj0hz彞%袬b=((Q((%-.jHFH漢佛3 ?傧隴晀~紵禄JC +(J罂5壩s煺鑷鲓棇|鏜 敿颬舂纣*伞0奡愧鎼 湚A迶襴牎A妲嫢@*x(鎶B5h%-敶Q見(ZJ3揁 +M&ihイ-挅孮@拰驚梢钞9>韌躷"1JM)zs@)搂[I>[c镺sv嵑鶶 囷 +O瑿そJ7錡Q*h鈼&を_彅奡o 陝g趮襾R$*q窋pco蕥qT畑蚷媦q潎颡淤汤韺⺄缆?毜n0ELt伤si +盏%嫢J絠蒶.>Zx稐丰訵[\弳淶軱g;O甼7诌筠1鮨R镑,褗琽m玮3鬺/璈馅#京X 8[矶叵鸗無?蝰E僞鉊汇+冮藁Mj)艄醽襓$@S氫谖q*悪(?0酴叅凂lsw4腂輏 M\趋?Z嶿:釺*苺3锑wG絏刽ZO靕捁傈閄.V7w險掴a軕垠&啓栿TFPx5<;u岦繚4xr<礴迡摴H镮閇_饙\豉}梗珟/鏓傛.=ㄞ紌V宵#Sc.~  zy嬮[?饙O咸繚饘嫌rc隕傝.jzH=+[欛髯螫 8薮X.g冥乄旼逽@橎uj= +kv鈹摅哉碃L科燩4s虌╤S鹖鳐鹢絓魞J,9躢\WC龏果泸{H熙⒘s憬舢圎|~Tb忥徥蝨帞m鋀E龏??*?盙髑錏傜:T~#腚] {|~TX.s籊4c氳勘粡蕮g飱,;滪宼95褲A羛)?X.s 隖祎_貈薃鵕bE傜=穾敾Mt貏控`tq須,9恧襪4k┡2妗#氳連憳湱0t韧&9又愼鶹潸,妱餶*[wF 兣龟):訆鶵揌酴悞1Pc滫匀p(%QE膋R揑GjC擱覩糞R襱((wQIwィP駵RQ@鈥鬛>>鞵洘瘾騮鶸)'G惶q5咖>W*|t#x +2鱻舢糞CjV1颢c)悓堖籓5谘;抭綶儚)砸琑銏鳺cQp逼樹6夕)⺄鍂yR鄎拠+(竂9廐鳳c浖r}6*滕.8.A蠗 顭皈3c鍔S鬊s鶺[Qp鄙}瀢8H%吏CO-螼"\竗孲竂祈皘1Qgu 5誦\v9避鐩y1/豱3彸9钭P\V9ビ;郯/鰐鋸魋鶺IE+佄>鐟鰏顁9齣\严釭KE淊渭圤7/裏w寉,?郈黭あ媴巔樽}裤I龥w瀈a_癞拪.9忙葶齂逰4熧窡罄逰5襋E虑6t肓,?茡60︶5已E虑44畚饞?轤瘰f#}癞帄.9哽滑s?郆楙2鑥鉣 \,s抠穏?茝燠蒙鉣づ 鹩.駹闂C锈G>篣注徠楙*缪?铼吲⑨∠稌u鑷瘢&绠阔犈R竃7'簙tc\w 麿鳹⑨d`c\z?F熤/璠\,vh氢聴lr褵卭b孮p0F?鳎鳶啀/v忬?醄敶\,a\膻cK$O+v.0N)?4夲E摖5籈 o焿?酖,窟嬽 +茛媶,Z煰鳵b蕑隱碤p心# i裡$_址h 熦4嘍|q*怪\v1盵~F旇圑z從V1Fh竂毗舙0$Q'y楎礃⑨c跨包莮唀侗E憡4g灚鵖勘[䓖识(⑨c忰^攈柮胫⑨c#䴖愦㘚篆j8㈧v2眴谉疓*>w?蹼[8㈧,dc躯燒z_靟忼篆ZZ.G2c|蹰F3胫\ 摚痠胙龓?绶9篆Z3E缕_:蟘|蹰弿鵰消但3E豖绳㖞忹疜龓矿?齴胀- m!'?钣弊䏝燐痁訯p2F尶筘?齴専笤?齴症媻芖4笤⺄嘑^覒胫']幤W*蟘|蹊OO痁糛ac,枞y戻蹰控藦跚蹼Z枊厡熿d灖胍?绌V.2睏䏝憧齴C憧齴注媮4U1控=O篆jN( #E_餆/*蟂|蹼W8㈧,e ?绌?FR痁碤v#(h:蘱^溭J岔驨A娪ア郿b痠忼驻筵胫\f@裈薱|蹰盨䏝燐痁詼Qv2埞^餆/*蟁??齴肘( 'E\q1熦?瀵;篆zZ.缕G"蟘|蹊:(炃胫\V2?盙?飨^忟Q=狂晓絢袳缕A裌䓖銦齴C飶lQE莄h唪胄t@宸蹼b.1?飨^儮G痆Qp睉龐M狂晓4锜麴飶l袳缕?/?裣4璀赼|终\V1?柏鯓~_齴C 缦莐n.1D=D?钼欭7i醐(竓aN?z刽鎻靬绀x鸁瓠蔤.#i2d蟫M7&n?讨Qq孛]莭煗J滜(繊nR裵0螐7Jo<Y隱碽媼CS諸@i崲#}s[魯\}磠,槵 L忍囵+挨o篽赶!捍 #+.8鼄*嬠v兜U?l湈櫖滥Z鬴{s歾╂U摨 *胱=)梙簪橢f枦Fx詔σE&hg趲逬nis@ KL4工仮洑3L@Q淧筹Fi规屝矦い襄@σ傽 'J''廧'J▇[=*m窑>A]Es +''諦?A]0{Q@倞(((((((((((((((((((((((((((挅JZ(挅JZ(((挅JZ((((挅J)hア(((((((((((((((((((((((((((())h=)JS覑魻1諤鹟?讨3V殖忘鋞捱讨;i崙鮚\y瓉臲汕礦榖b=e|訯`6sK炚u4y偆c柰Fd\M瀐虴 鶵鶄$謼5 慼謤&謤sP奯0P雇 昳<褳c4f珰_9i垷4Tr芤l益珯棶G40,Fyz歘=}hI:f┕鋛瀓Y&u瞷P5归^ (|!] s~ `tb:0鋨:`奐ZQI@ E%碦Q@ E%-RQ@ E%碦Q@ E%-QEQEQEQERRE碦Q@ E%-QEQERRE碦Q@ E%碦RE碦REPEPEPEPEPEPEPE%碦Q@ E%碦Q@ E%碦Q@ E%碦Q@ E%碦RE碦REPEPEPEPEPE碦Q@ E%碦REPEPEPEPEPEPEPEPEPEPEPE碦REPEPEPEPM= :歾驧yBj?澹6珿<翡V指怜#転組c颁鏄9Y%姝滅讷N悭!Q代(膍_)根禸>镩N+悃镽_/橪馁R垘yz滚W銉G 燰)樝鞒紲3醌b蜎Q`葩窓DE?ZC织}墖lR齾 dR騲 c镎?/v厬"Q诈轇{煭_{c慓鰗z(,g)霃茝):g爈跐秊亻╕轏z&?Z玄>邼;9可型騝4(裆5}氃g,肗鎤L~丹4襉)9(鎫擂达gu嚭t饡Y)!4耈g)!5妄瀺O'犳岴顫馯楛驘?顝瘭耈m项d鲩Xa嘤玖溹釉=觭3偶囬?,凤o/+貈9(6+,埋7噴璹|隼鉓>+蝻7辋54迦鏉龤Ц⑻/c1糯繕>療鲄e61鳗?矴Rh 淖劒>鰭逿筐旼>抍隮N湂q癨ph癪&燑%q汐連忴J|唼隫X4f,墿 X7究燄晱璝僌^鐜躍砍?{瘼義饡鶼7郑>G酹訔抠鞀,埋/耉缛呦饡燍?黧璗F溇i痒&0糑筐暈'酴姌疅齤┃ 2.韸,]壸臨w黧覘蜚?_:2冂烊GcE榏v%>*愻'Z據壓龖>薛C寽覽L)⒙鍯)焪鼁 酲oM谡 熼Md]駸jQOl}h皊!.z x篚4燄擼泾=恻旛襪埩X9梑侎-猁恶c阧剸稔}恻蚠=秠蒗幛祳,韧>%#媥縕Q鈁析駘耽篯畒覞.<)肮梒0鴴[批&M拂O鏝m犮me厝剮﨧J|E◣癆7赣ms霘擕:甜!QE儧嚷剰P0-4D:壩 儚鯷黭h関x?3N]2誉yH|轋$Z訟|辐翬?飽:]諃)F沨3骝0張u, 鼪黫G5#, 綶黭ti枺⺋/鰑馹謤0 钥鐒O鳫5#, 鼜@t隨,W酩+@sy?饜j?笃黨剝S~G黭{6xG鰁馴浫窿咴颃⑦?鉏峵N灯<叆躲 骝9岑陖醿?鉑 < 鼜mIR矗M蚺Z﨔鲻ピ胦糈冼t扣簬?誁'黭{>x漢箘u虷+駹k殙颦青品玖k籑 怎PV/ tqE络5獄A|И?佼孮p刮.*甭-魿O'軎敼鳍醩河r癈+R[烦颎u齃C踑mz冂蓩5颗w瓰栺5 恢忺眿5繆8⑨s^k@c葖氡〦薹>馃Vb媴q|ň沬 薮 Q1E骆诘岿h鸮<"繁G酔骆局>匸黫誠昘{+峵? l謼R嬳d舳黭z徛瓜叮/[x飭o靓珳y0峵Tb箒怉|辐仰齞燌鲀o癍? +>趲哀o瘠調?躩杩 +( 滅靓瓱-G靓< #畮:5mLD?魉P诋珡栟j瑷.s1鰄臭4熪:86~Et礃.s僘訧9磳~&濤敞兺劁屪CK@\嫖粇 揀 i縷:侉铓4c朎'躍>O萉p9岑j⺌# zO妁矜燋誳 xW? +wO9癔_@矯忲槊]角6#?醌t ?険綯cт(府`~毭DS泾礌绡J緄G' $u镴}h{S咐鞰頎迉岟?87纯漢痡v8愕 Z(盹M闛LzR兿(<~4盖襾 R鋨4; +Q社鬆c姕g伭際x=sJv#擄@=濑T嬒訋q 鹯I>功@n锵錊'>魳9H銘N銑Pq鞲礉I鎿丠q豵颫B廜9q8a箚zS 靓撏(镣.0)櫯.NiXS繞隢軭b銡Zh4範イaEPEPEPEPEPEPEPIKE%-PQKE%-PQKE%-PR袳QEQEQEQEQEQEQE敶PQKE%-PEPEPEPEPEPEPEPEPEPEPEPIKE%-PEPEPEPEPEPR袳QEQEQEpO;鸕苃'袺謤 Pic襽zR來I臾S;銡\qE槬Fh)蒑莮怎P!h=ǎA弦(>源`荶)讼})r}╆)4`s灤钼q嶮R憡L鈥g'=<笸;t鷍)莰蜽=?樓襽渜屢 rF=u-3H99 RイS硴L>;奻h@'溠撨%韸NA)@鯛Q鳵$郻毠)秒? +qм棢пM^3轸#>z層酬;(8栀䲠 繒=ぼH苅CcplZRN34戇4辿=鄴}iy4虾{S饅喤8duド4衠K繌J@+u 闇S2&濫<觼臚3+&闬jp1r( R憵@乙c夿M H嵋≥栫礘1LQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEp 奪ns广" J)犱PN(纙覔 钎0縕Zn鞖L馌&洘茲@囿豎灻鳏 q'^h鼛輎{sMR +3摐~4Nh'寠L=h詂電J(~敼=)Z&俰?荭U=篵槄=G.y镸`茀\u4鈞敬9隌9鈥~tg謨渜M 搨G鯛R潸褞:G4?溆皅覛2>旑h 膳(滣デ禧=GZQ!嫓ui厢@#工)譄94JH魻S鄣*=)犫\}┴馦Q撋?m埮.)-8/=1@勍;宒 +6恲更=>S斛S篪Rt橹棬魻墙8情Hh" qK呻z 鯛c嚢'癀榔H#Zu笮 >繚-0 sH纏Cu&0@苃䴔荍4鞉; +A訂==i鉁s寔掋鑙Bㄨs酽.A頍J~r{@p)悒J@W{颛敬Bq迼 w/蟎鶳(9〧9礒恍詩Wy-聰 9趣'=804乮荀镮懴4狥(z)BvE 莏R=JM弥J@Uσ鎬zS 昆扰FYwc4 z(妚赒幵磤-%- +((燣(QH)((((((((((((((((((((((((((((((((((((((:hzqJ)S訮Fh碇 +]爵鏉系0 \84僇q酩鈼?/R~T滯郒&%P'QIG&p1杏Cz"N倵橥3w)Fs-8 庍7?辊遴g幋鎜LSza''#欯px%N@8趣V襞A(E4侷`P╲戃 +r=y?"G譀汝sE<绲.i'&恎I簲b鲚N硽I覐zg9 酰橑4灁s籁鈹t#情J爩嘁酂9鐭jPI^Z8闅NZx蹴G龄P躲緃S?酘 砣т烎v1 =%'縥xl7il鈽rE?JvG啵腼歠訋H幙~^詄@霟J愻膳)*GLSw訰u{1藦сK仛b8)~b3歜(OlS8泷鎭併80畗?:P瓉侜无i鄄F鐨許lg篥\g94鑡慖寣靑B砷烰R<`顠}7滚榗'趢锧*{v吃1奟琋=(蕆3蠸緶{滮E( >3H憺iv齣竎苾竧 :b嵻0廿P'狲溢孲{Pp`;Q滝灤2烶(X愕" $SJ栥?>5)迉$<斖迉歸^3F) Q21J PFE +L(翣u +鎹Ы0慖戁)R汬h鳡C &y4竿!婨创敶 +(Q@Q@Q@Q@Q@6@Y鳔RPH啵.?墡sV6酾P((((((((((((((((((((((((4Ph犙HB)7R親]茒O蕣`p嚙zm恉巌4“}(Fi茔歀鎺sL)i鄽r齢)~lwぃsJ罍I儚s@SN9琅!頸迶鳵3迻 wぅ g灁)阨3荍p鳽#炟莦k"溂功!h$鶷m肧胉戻PsL=橘锖潴@隝\{G4黗R佒0=隢艵7秫S夨0蠣'J1@ +n磧8s迎'鉒炦/d珧︾犵块@\`qK)伈q擓S笪9軎撓е潕: 锧 +鈨屻?c于浨0=巭攔8搔儕x:Bu颣酚ヅ-*蹶)爗歅1苄'傑t9廋@#'願JNGN蟴芅Mz#蓖Hdu嗓N嚟H*q#O摾J1憺鎬@{心w垾熕視{h<`R恞隦tz戦廽E ??Zv&摐笕爡闑惝"榲貜聬瀯P瞨@電`nzq顰'8濰?J瞾K郇侵梛憫M +酅魍 T灁鈥P狏?(0@lS侖ほ蜯 殷豏q鈵 栰9鳎挫J=()JPs;R溉物A84泶m心优4/>旔1H愮-歾娱0(鏉C{意L驥F(燽襌袬 钇8EQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE%Q@楽OZudP4Q囱LG 荶p鐘`酰((xjwQL疗ipM(刧歕莦E隟弞P)9(#幋Zn託B<沭wq*|gg$E(($撝攕迉)鎶Usy宐7鉔+?8廧E9湟7徫潙隖0=(繬i膼h弁s苄徸4O4}i胜幋q妑懛焃6勔2恪3老鉐跥jj尠ホ<#妏$眎笭Cdq奲砪璏珐1z`?:漣}*\q顯 轻F?:p钎!塏''4嵋 鎽 幸酯P:駳m8q 8亼伵 芆$P1K8(爡擑鎬w)w +01昆1灵@ 摐E.脤悱71N$m*zR扤1H斃=匥壑\v 奾#)\"榎喞:9V黫wb亞y颕慛4L +PQr*X 籀Y9閄`9S偅奓S韽聴p 秊覕zh<笙*恴鈥>渰R嗼z寋鈦庣繼滣O3>闺J&a又匲^4佑羚4#:⺶噽: +犈4縩1N 6F:*0櫊 庿Zq愢;SH)膧z丂l寶z2奜旝趵抚1(轺y=蜱+龛)滗`僊 瓜慩鳐倩苦i@'Xc詅w>簟x鍋猓 钋"(胻:qJY}r(|z 4恆x阒槆q鑣舂秾w朽wダn灉uだa#♀嵟z奦<詒8U诬佳焃v饃AX鍐 須檾猧湃胍て奪Byはs覑8鶵4R襌(%Q@楻襋@ HN)i(dQE-QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEy饩W(=)獃>b鏌淪1讚@~0{RdzS妍猧槮r 綁#4笭跍鈵滚鞮)蓮Jq$噝:1L雩扖 鑙T&l溿&毀嶡)J +6N 倎y別馌汕"莖J^儕hl渂師_jS 苅脺-0;>寸Q畜H爈緃 d歄;覯=W"{N)軴 A]牅(膛{鏆70牲〡躳iP愒牥=i婪殦b槅錅鋌湧睋覕u亯z幺妚r2y hC鉄鎑m赦 鸕(鎭鑬歏龋 巼螃2$mO穓1騻絵*梜jX NNi!$  +鲤呤寭摓G7'跬0$#鏇憸m#鑙籦渵U霟>x斅x顯莇褮niI鈥 阨zws奪86M:⑶(録%晾(<源倴亝Q@Q@擯袽~--Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@ +endstream +endobj +88 0 obj +<< +/Length 68 +/Filter/FlateDecode +/Name/Im3 +/Type/XObject +/Subtype/Form +/BBox[0 0 2384 3370] +/FormType 1 +/Matrix[1 0 0 1 -36 -212] +/Resources<< +/ProcSet[/PDF/ImageC] +/XObject 89 0 R +>> +>> +stream +x+T032472T0AdNr.W憫供灐)X佬(chjnh╜idaj Rd捪\ +endstream +endobj +89 0 obj +<< +/R7 90 0 R +>> +endobj +90 0 obj +<< +/Subtype/Image +/ColorSpace/DeviceRGB +/Width 716 +/Height 573 +/BitsPerComponent 8 +/Filter/DCTDecode +/Length 89046 +>> +stream +AdobedC +  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY=" + }!1AQa"q2亼#B绷R佯$3br +%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz儎厗噲墛挀敃枟槞殺¥ウЖ┆渤吹斗腹郝媚牌侨墒矣哉肿刭卺忏溴骁栝犟蝮趱鲼 + w!1AQaq"2B憽绷 #3Rbr +$4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz們剠唶垑姃摂晼棙櫄ⅲぅΗī炒刀犯购旅呐魄壬室釉罩棕仝忏溴骁栝牝篝貊鼬 ?鬩护苊?(8<浮;朢J亴6歬萗槩>9:9*.S詆1撒鎬鰃銧9<継脚2I +N }q彲8bU^珞=I* R嚚エ'妍#荂呔h\硂l2轾髢@QL2叢 73覝3仦zZ( +( +( +( +( +a3._,3烴躍3&Y+:廘PB珅)辽帣?螖偱詵龄=厨~磍F 恲~恳 "r葝瘪巼倉旾%H诹pp}戏#瘠$崞X磄wA:聒dSJ7飺n鄍榭憻O蘥癀 邸fVR 儗騷癎鉆s鎔肜?覜/8;3'$0勵B綜錌.rS>滺翆睪t菘s鴅祲uy O)缾-騺'猔rA黍}^潈酱跸鳴 昊[鍾偾螝G孖摰檟珞U縯H 7蜰?茘 囅 GU馥 +亓l|蠃F8螶0 r =9#赢?~Y+鲟民4A朠膍~鞳7栫$c璅牶0(>F:騷忯#  銘劢9A耡9$r}F@膭釓#笥Thr呿凗y爞使$炀鐨~颹潴xq4`钰23盈?向ㄤ  +x轾訜q骉d鼫 縙(農酁9>礇Qv+rs蝾溏熼ptx豶q旭颩2$*7c6靏9旴熅w0<睑P酻]輮N驹惹铪Eaz?]L旃芴1吏謤%7搻1炘~驎:尃K$丯韤g绡鉔贚埱)褛ls6憧S煡+砟I贠訋齣7,7憹$z繚#面F陊|wB:~T駚2N蓑嘕b7豔~X區=y麿鏒籷p躯HН戕Ux砝?痮5v铗酕z泷 +s韩K!蜃搀肓镗妉hò +9/潺~&惇l滭漕睐鄑 晉}襕仦撄~T軖z梶a8q莑謫诏,牔B呭睅'穁4W"N銗:;幋B櫇鬲&妁沭>r枪塙t嬋O旻N 過( " > =瞚醧9?膔瓜粑N + V$$酑碛謤#w*菜 N壬S烜~緯'楟9*紥NrGL珞)T#((OO&wG溁槠 +凗~蛊*岀縗S旴.`Rc.m蝬4夿湺茔恒羽 ((((((((寍驌竌8纍颏?99葝z霟棉銪_#'$o鶁䝼晛X睖抭簾錊$7!W庄"憶z験俐刦炪匬 鄘绶o茡忩=耷dk23麸H蹸椽珸`铢3帪氵9緁b淌珡a胱 + 畃, <実閹hr堂獌=饅Rdn2>G 憔?鏟┸>怛c滜妚6矕,<衠殚貂 h╞8vWs|/N5QEQEQEQE#d)*lp 苅+喪(n=裹樘JF1麯渀S:岼! 8鷼0pr毁-侚~ベ[ /99貊荍PCe芾錙狑轻妌v!T髣脉鶳诲Ggi!壢敷矄勿x<笙9妓咕a懬 :@遯缠粌H>l瑝'酎镃d鴄鼀翳:@HNL+rH蒾40eF名脕8褉:.州疗s想Nb@+6靚.q趱镵羭豼x< 葯u恾?)F<腷T\u陑聱+G朿煍1擙:R *aT鼏?" 讧kl蜪圹(mm忎}6;細s3駟醳衠螩忿e 麏駚娱秕簝娈錽凅g=8A限N=魁to;+#鶓H鼓g2dF3/謤rL.升{t⺄ 區9Ч糸酯亝rU胱=)2 慇rU ?=彲垭@ +|n鈝 g8?^0o捭+u鱿酩a甘瀁l?1;X笄稪qR]綝*藗I漉橥/杳+<~^丛<艕蹔鱝碓 \K;A痖鞪梳F褌8砬鳳).f#楘O黏戋 孖蔟蝌P|纭苲懚91q :徸瑻嶓 侴<緮3d鍘碲哸塺駥詔鄒鎲!ZV 狟 澕幖焈(菤󂟋獩612 +铥S搻枯泓鸓琁,NW' zs眙弙衱Lz趑>鉇俅玚d蔽G肱9ND_3秠1;!~s藨鱶蹉疈 p蓫s驏;⺶!]蹃:9镞坑黨2鄛惜Oz$j浏痁d`燔獂埕殚M@(.蘥痗畜Of |珳m席玺颬X/?/Pwq澙|攲笥hrJ|彁渜"?欩鐣腱x悱2r黴如?$=B * 1%z齷 !錩98郼JR~g` m闊韁3|驮¢轫榔M 媽觚)B惾絀蝵襟H*橸9;?w?8咍噻 貙3該夫?齩JB笹史蘰F钶29銕iI羨劁ɡ聋逳hr忳羏荙篱扅閪m靝x 餳E 驙噻鍤M猅,8< +UVX9$9_!RQ罵w[稯逋),c7&姤@E冨=.T|蟎觜B銶干蹻顕9⺶鵃1r<.{P\ `鏹=O↑x捾/蝡G麸覘J噌rK:6Pjs宺o隝硬;u9XP鋽7<2儴蹴K丈脇x=) ;潃lɡoぺ8L管C懳G隌@*#!r,巗岭旘 u焭na"愮8塍K彉(抒8傀拪j扜*W0iQEQEQEQEQEQEQE]轈"ⅷ膕巠趑隞琄;匱9艷饲l`佑Ga呆\優灴滷牒'f愪摲x趑⺻icVy#鑨閾9觳D嚏 yS庉2)瑸Z爤`=p;I(弜*捤A9襄@摆籄m蘻儝=O=鎼.~柢@$o脙Q鶌岊蹘pQ8>渇剷賅h91铅FG隌)4忩巠b0鴔歨S;谚 8齢w$hW +2B0;q镹_濵QH邕痖@AD8'鎙'座P U!mP扅鸕c9s渱牖秀穁RG咈专噻KEPEPEPEP颽筗鄯>雇4壁Il攐*>擗,賒 伻蕎阍彮e,蕏榔刊lP苫z銉嶧~焵 9蕼t4莼#RU譣臸}F"懙y懚;夗3觜uYV梙迨柶H峡"滆嘬△(d 81徯~t&@蓼渴wu=q)I藭茔r鋚8鷞驫︽伳憒藥Qコ*萗@戫(纁樕7 m }r/謵*捯瓘蛔穉託顝粁1v審_K:<媤'萒2惢穛檫N肀$fg鈖:u丽鞪I;龀r 侓酲澯n憉#<冞ZH濨脂T愌澞宍z𤸾8.︵貔筙`vQ&錕l頱甈盧0Fq +@#!'銓pO^燀蹊X,錦寖顉箝﨓 +捽d灊3幙烰嵵E巐+HD 彅聱襈R靸伌:捈?/1柮签 +W苀p 織J巟倬忧署客芝 +^`脥疸 忬迉$鵜先>鱘廚樓4埩&y:q烰骩3r -橡鲲酽8,2罽r腿殚@评20i翳:c@Q|憯X@聎绉鵰蝰挷8沱,k颚v嵎F3捿=鶢 w鞶穓鍸q瀩磩y嚆黬S调礅pF淝=O8↓鯜 态2w;q錀bJI`侐亼覊d'脨葯>颺sQ$s6譭#遢術坌R?j.~G憪89楃@I V8X鱜c=聟nP宥煜${uκ宆s箠碄艪?78顉~B撌阃鏿噊Lw咓邼杨{8=}◣BX宀zA鶵F╂繧&A?萐bhv嗥國q魶r菞蒳F躶倄缲Ry藘谷袒霝攰橕80熵<流鳏1銬#髋篶?x绥馅*3痪&鉶s浑鄯錗慍& 0#8霢丽鈷d 搨8wU<;哃\声#躽鼹{R#嶐'9([=?介'RR鐡倹@'#№弞~6籱/蚯Nx,$ 9鐼'!廀B8鲷vc戙n@繇强jl + 陏痋?介锧翼庒p儝y理郗=扖沈$ 撓箝LEFI媎63嫌衪⌒bs 9 銇艷範G尷_`兝檑│$娧菙_98#oL恜zH,宜彊Ps聟@睤件=O绊黔13浒宯鵵8鑨?覟筒WfQ(巤鐭繱UG辌&9>йht  >k鄬樨P/[x鰱.O}s炴惙e\m#89䤘郌={(H誏1>P蟸盖=h@3惛卲=G#?砗芏龥泚螻繅黹H '庛#豑x*|鸅嵡齄箩槸淛寣N阈fヤ`/&B5罞廜覘i!U半湌輢Gj6侭`2彉9 "洕筛72p畫:奬朠蔬|崿?缃79m鄀 ^(X蹧*>駆䙌楦薯*护遄wl`泗Cl]凐檘9珞 溧 t稆暦穿Q滣䲠鷱昞臂蒷嶰々((((((((e*W焨櫤u=vY徦颞=H雰症Dx卖I$;z:P蝀猠$`8射;弌n!#qv;Q;扜>(,V7v聯>=?_鏠W`@O遍詆訰A\鶳宩爆H + 徆;LQ盺fb+z絳 +PUY 6pX宑岝籀﹊i蹵Gn==h0{级$(I銦N9狅'蓪*苺爂巟9邭槻镪橇胉鐶錒酇搷瑅蹴戅"琂 畐鯪汧:c渝<殀R3愅St汶僋厒!S'{硝àB&,e_q叙~# =﹋哃矊寪'鑮=絠袶騀 $30鉯埋现,QQ8b狽:g尀槯袶 rzZ(罆!N g號.嵢 @酋帼t杠X錥怉4臆瑒霳汩A`f=駶脤m^G蛉Hb瞔濭糠?(y鴝䥽僃w渘%]r黨劭铩*雴Rr?Q懜*鋬懝虹鼰蕫м!鐁漉?泚赬艙9O螛羢>[m崊z約肤2;&L(S枀汝 +燆q殚M>b簞e +铅 G,q!I7n'/^q鶳*'(|粉蹃衵`鄪V$名泷鲲歚- .萞7(ngJ蘣8;]=r咖zM4壝頏~`阌蕰X;栖$|翮鳓坡H鄀rT駩輖蟦On臾,亀7U皔>烸@y斃N櫎UBq騂G89瓭.>p8雰侴 驂倱暶?犗ozF繵華睝y莬1壚蜃>H欕殚跁戯fo/ '瀤缬8F筆c鄃躏@ } m褌料_/螖2褥T䥽翡`Ld鍂佤靬 Bv91O:琥.窆M叄9 专?覓 躀;鋍盂?蕯y趚o蠠鎕UWy 劝艸9绡甇隞娛#J韾QX觬v DХNNO幙!F派YI狼s螩顯Pp根@愷撹Z6>1&~P?>跨覛缅m両幐銘轷1_(d%S62GQ;鶂q(赭釲E=陷 +l8時胠壣龘苮?JI|鸹A縴F;}?欮鏤涅=H我3趻P父鋫TC{瀒&%杣輰肜眄齅,锹+@~|P壢&)\1i瘲 蟶? 疢0鲮8=h 甯=.;襺尕粮嬜畄辋┕蘪枧|甂ゃ??誱*侼O=>椽Q篊鹀譊G=员温}3娱腴鵕铢-9俗襽r颗 沃'n)A篪羖&pOoO堑#t匁<=鶢澮zs譅1;テxQ帶瀧蹰@ 鐒N?漪_wF 鏳( 幺r. JRH +@?狒膞nb莻=O8;a#t蹁噅U,q1zPHn +梸栗留h|釸<(8玺缈螭宑萠愥Kc殛{P@F 萚g巤彞8%cФy鮎*bNq嫌陒P*釅遠鲩軁}i]婛j2p3鵾 :#顼騲5詬遬佅钻{觻罔:"!蟖跉7晣竎箮A冷鷖(J9q霚w橼v侒,Х酰鉦瓦遨齵~1;庈Q涌緃e_玖庫Q烚呶擄a湽W 緘簌曳;軥蓣U囃鶑cJ X鼱 [侽#c驊虍纟I=?^)W*1繺抮y鸁囚偒鱭0儫&CG夹IV艪<~ ~41O鵫 燊r焇疮圻Tp脔臊)2浌D$w?埀丁讷x9鳡暼亓78它09鄬r)>襮1鑋犻龙sJ渱 Ns齢鬛EQEQEQEQEQEQEE濠mQx齣棵兏0X戯躍虍鎐埋燓( ;鄙,刮?@scF魔.I$`.3軂X瑺剴F#懺v拽Z橦,=s岏嵟cN~c侒 a[# *镟嶰肭#奲蕊濞(烊Q寖蟸q臞c疤頃 痣趩b扰H蹝盟佄h509 +酅#?i鑔s庉}初>2*鐈fv!挨屶鷠j?/+!P<0xN9J惏 +Q[=嬩zv颪@掬笱@滕c9蚶鶒沈麲3巟4左$vr7鵯p+吁撚9遬沃 洓嫒Q=堨=i禧. r鞷r a蹫啐za揹窽uB3區:^r:馠6茒2G夋p8郎黜2H !蓪滃I:s胍袄蘊91谉脧z宒頤NI唍28趵?旽U薱j鍃y稀罓 -PL搗贸@貊гr|L\ #y*AY9蕦箅灋攇o櫠Oo诹 +鹧忬8,ダ膬iRs惜ЛnFw2夺椘A跚nO錒Bvg餇贌擒鏀'$>骺覕靗`(%槓梤鋋y_嚣Ss綹Ef q咟=聰鞞K鮣 楄RsT汢眗O 衔運'v廨yㄢ爯 .=谋0{8名?9?術舁樣8崵雰&阚'驙Wb23|爝)!'兩纭OM+JW嗂FpH閹r@升y臢dL繑艑o宮 瀮廀#>辕楁蘋灉O槓1蝱PM#$綽姱溿憺0絲s)+'铞'q缨殍)dRK蚵Ir羛3老OLsL}(%昮t^On,I2'柿酬幸ど;晛+憤搞走臧W膉w22!A靰8弱鑣謪懼8験1孱览:跸J磰萄a#巼弢g9鎾4鴓;哒}熕0脐辀1琡彔GQ*X遛藽m戏=hR>"朠8 c8镪=閏m;1_傦雕籬?绡_) F6{夌隌 UU孞rq蝵灲縕6>w'=r)抬c# 碛評<蠶笆3鍖 Zk(P钔$,H~#叻鏑琱$悤蘓,x粶琰臾0劭1蝾酎)X60Ihn{~](Y觋膮==迎,%fm:捛8奧$4竌亙軓嶗;聍x2`j%;VV舍旔}s鳵M旾r })[嚇鵻轋?啐j(i嶵?#誁 0(6$w愚墭厴$嵔 嚣鶶妽q蹪Z関'酎b貥*抪?壒n"o,b{甾晙S1閽2K酲m蜁彍躾齲`貥J呫;鐭黏昚硷/栘>z圜y ` +珀{嘘濖/'a9dl^*倾鷞胸芷6M葮8#巠碛譄'"^齓?$柤NM$l20>Za嗩噹疘 +a F鋸煕辋sO據Zd6踣戇螗bA|n繬6彲Ozd] 恷*討硐隓XRr9=i蘗w`?粶瀒~`垁絸?4 +aH湻 Nz灤)_濴痃T嫺l戊鐎9疕浛w算nI`?_zi;暰`21渵唶3勆n䥽迎9 -蜪:{㧟悹标@ ~彷扛炵麸趨]W"v嚣=>揣s)祁_ lP 363=:䲠?@赇*{襚0p]鬂怇帮ObAvx +I/$敷[9 鵒={歴cs60 +尠蟔镠袦3鋑p>紵r)G兏1莨8頌yK9峲懰g眶と摷慕s栂蠷6躰`莢~?憼昙+蜞u顯2`*汤锴B +擎m鼅磰A)愪: ;d(q .y 幙 30x镗螗膎  d捘u[彯I颟轵爬A=4懔-熤0@崅捗.?蘥q>g聀貔爳F襀i9谔Q秀鐨S侺o2湳?:~TJ +捘 d?_聯p,\颢騻2Ns兣&<-虡莖苺&C)4((((((I缴A.p0O#憡PB)9莒v篁"搎Lm3rK駷糳wΒ}.~nX`8飵駠趧'q+恞圬琦S灶vl梿湘=j换2氨6゜T扥#詔渝`p岅p滬匦旤"K1艷n挫失$(蜨Z峝髜)*'幥ˉ +*睮鞅廖?zP彻Y敀[伇厨岏髢竻$焞c撎G;变3隙;觞閹XKci 鼝榱閹鎬`U\#^;NC"哷钗窆*'缨╉课cP痃聽@#\厐寑犁}8翣窝膽)F暼^8=y隡RH?yUSd@891;T枨&a抯跟鍋鮫翘9千FQ0<7溧{q艷覂6^< `0;P喂蟸斞p f轓?A撠s +懁c膧嵼F{烴21@ 踿]旵,溉鶂摄y99缭(谔\渘YG#,渢'烴酦cG=J簻捦 u "墛剹w!=w簭攼3鞞砿Y +7\*zq悀狦玉d'濰H0Kt閹<韽49 壢瀒Q(锍-F98=笸G,汤rW仦;帬p;妤掅梦鋆莌闔'8襞7%Ps弧射g犿袚歞P>rP#辩劂圭帞4摖FOS7g>举,禅 +P0Fs凒舄嶒欅!~\pA<;<鸕禖JH络?徘=\)鰱榔纝:g繺搨0@#腙1U 袮3tc-998|毖s灳)e9篥(f蛄蟐3瞅\踱塟A琊虪.薪}鸔/&p嫻 8=:%9舐爁 +絎冏鬆VeAJ|沊8R7/耷釣)挵|+3 c?堟29d葽s埸馌w(fc U睐墟E驢~u蹚N3齢v蓸 ^0}.寂蜽轾;03咕t鹰_3m9;髉8螶W$鶃W$H紽鹨H羷VU馃筠鱪槱.:{襂翜崠A┫!>`x慇 v.D0dP2<d蜦襂A儚o癀攕p@ N樟蛆顲蓱( 狣,睐}(懨 e:Y鶀(榒0蛭QW 涌Н.X鞘瘛\獣e睐}(扱T㏎妇隌藛澑=;喉惛 垘z髪I%菫蔜(邠趪`H鵓蹐N銵<,H# s忦 泥L潱 衶 宵螓2N縕榰%d钰珞鈥4-眑禪p:癀 +Z0 橧鵄憻蕬i坧豐扵o鍔$滅屙^4{銤X&8R8鄐芋:硙爀筡 z=}i.C/钬Nr蹘黀泘0膢唞.W蓚米螂@9+9Q渵b晘f@NJ嵡' 3 ~?8\撔 L8@J嵒F酦q師=n2Fy窝I飱R醱g9=?: +771打I烒黠A  偺wr>爗g颉y*尮6 r=*偷[$诽A 2庉?*6X/2[%H閺餃 N苲鋨酠e:萷 z;q牤轅(懛炧N錊蕩K|[y蝢咦>b7l[ 斸尢1腹#冏堞p飹@~Tt热鷡t魙#sA骚東倂;a> +( +( +( +( +( +(~鷮稢8?SM晑绶仸+>鈜惛P稠匾y夽尯I椱3蝢q灤!A颛蠉?│鄊fb\:`蕎I澀疮渵6,Y'.纜脼櫱2hK!]吔5崒%H4X<觉+00 +ぐ 昦搞冯MF'pd岮#p<襞FG扐,s偀{縇r*6晪姳+惽dd貅銽拍七!X綶箐{Z&e q澝羄ppy7瑀岾0犮亴{!l 濩0<=蝥訜d1E籦侧蜲_lcvM5"5蕝岰伷pq綼q獭無鹀<錘yr胐憛\绉3冔+4ㄒyi籦d #觼洒 K垐O;涽$y鐰M晴g葿pq忴胪5苈癌%p踃柪f#∠_o鏝4j9袤gh$ s追9朷焵狾髁9Ιye墹,≥灖8s鶡Z睱XG絇釴F=綀苃6F偓v*倄陑z沲鉪Y厰嶧2X{粝6I$椛L鵔p g嘮@,( +繖9%癅膪齢pr轥B;+噻訙QA=c,vI3*;渟$9鏌潵];堏?~鎬h@y,菿e惐瀭偂3>兏齴P@2@潷.@吩酎 勞2笴包泥煆O謤嫬棂*S轼嘤囁亾卨p嚒?>剓yd,y>噶缰め W蒤懾向&lO %H0p3B釯"Q筥埭蓣9T綾<2媳@僬O$跗6y&m+湋芖觻}z珋8^y$胜88; 銖aKEc橨㈨?/5 垌祼曓S彆洔p孕aVFW <鐏炃6桅V劑pq籶?6rO=0~絡@并y`.迕.髰9蝯鷥鳵H~I聭#佨1撾兾z嵓莉呠覝特p}N\O胚9~U4琂\澛M脤}域褡寃脍* 1I'樄Y驴'3俿弩雕蹘QQ9?*x灲Nq抭L騠塡 y`紝錅g>嚗LrA;癦,2m9楦鄪OK嶘澉郼9#肢<y搤?v!I$笞@)辸栁 +窋褟S焍x<罅 v偨憧閷d帻)8,UJ槻q膗笞冸K府坰w\倊亲"梟I 1宄蟦#"岵蹅#鄣 py陒屼42\兑﨨逊8A;亲斸賞伋腚篱DIvG哗鮲齣应7鎻oN螶s,x$l#膻~殙哈h>c4y 79 H殡焴弗E"' "{迎綷J +编鋨]h黯秫( +湤g熆献瘰0躘挧 =y鼚 A8菡綹滖胍2[鴻Wn#p蟔JF忄売謵錋贜K`垓ぼ宮士PO緼躊扻'6$├趱a,蝡z郄鏛v干\-8鳔3$EWpEU,}6_锧 懺g慗@#dL摯 +烓⺄r紥Fr鰻q儔:#轫Jr翑岋$lb∑??茋-寝!GV箕敇贜稷c1獉粭E潮~R03儨鐾/BJ┶醀c?鉓槭1!G枺噻╃炦49)悷6彊弎镒鬆*[>wa謼v狎 (Q霃n(,xVq驆钨n=8?b 荠蹅殃?C鏻zc侽枝╬Wp瘮*爎O^*E莘 焌uQ@Q@Q@Q@Q@Q@2挝亷:儙r 6)箮[#镐齴P@,W6蜲\孯!蹆8韽\JB$7淍*T>ws憫仵︶!lD0逝9='舂>dq煒c-蝠}箅箰騱T/О=v_孑9乩t坥缜镹P|"施9U3幼殈G*嶝 ?紋>h蒡`齫4泈掄茴 +p亵鼹尹″Y0ノ蠖N脤8郤ど缶iN藢绋?é:y[攲験)n=!1 薫p@螸麕jPG贘嶯7v9䶮J嘾厴崴J濈j捒3.7^(^剙?^$J0煋睂焞~F愵1t/宲z岀H (R太彌 D268pPx鷰( 髝蘔819槬H儁謓U稇献?J>lJ)酺> 鄍9酾︺1軂NI蹉疧妁PD(Z7*膼A认^y蟧jv邞 邴^黤兏^C宒瀥4焘ly}Oo咏G"韅'p竛糳缱?匜N$)-螬`00;泱κY<柭鶓n鋝清C彼尠rf寭\蹑慪O #`钋揠衱鸀2侸Xr廅茂*5B%攰D +bp萧?n袢q稻L釃~{q锧Af笸縳x=iA7 勶#=Fwn(\ 廇任2 +cH +搻 彅?|渜6.奷\=8胱?J~`O挞@ 烶3郄鏗瘓廖>P+/n爒区.潋's粋T0`F}z~](睉缉&v%1嘋a辇)职硩\)VMyw=NECw槹$)1BYv湆剌WW懜e`s蹫:忕@咘(l?螶璿U儿侘1釒2滁露褑#绉s5f歽]rIFz'鐘幢+.扑岊E韼 沈>%HV餙~x摄瘾 ,P 2we<29"轎~v1惴#Vwo迯$怞灖{t玺粒蜧.U郭I麋#秢0}狜L慤[nr9<黜蠷m,b.Y櫍輪$ 鋍颃夹*`n7緓靟擁NNR沋?,=蔽:!%醏w9 ?/=>魁n斣嶦1$筁庈褰;馌wn 笭蘅{9鋍滫v穐 {裆权I +撉<绡O铭籁妡,筊齭廚鯛龣B豺#胂O讕凑壴#r浬汕肓枪 A驃癚板瞴滸饭橥>7苎濱'岓脎B哺\m2c 71廘裣礗鐮-箼CG渊9u栗雽t虷嵓F蝃齘y:L(萢籵武}祧窆倐y捂y~T噕OP韾央況 +HU壣愢co`G3鵖佪蝵i鄞尓鷱又溧$8P1傎青A泷*A)?,z腴HP0677q辋M 厰槤頗隙?瞄@QEQEQEQEQEQE G7瀩dL榦渞U0x鄽\韭蝲癅'$|劲戂,V膍窝蝢檐`aG蘌[n1<鷝⺶78艭 =+7 %7' 潱诪鸳瑏媴騁匱弅$鐐) n`|嵜赶覕t_ fU8觞笸)8by蟀`侊魻钰v摶#湠權"悆皢\埨 #'歊邷Kq蟐緷)芈E卽珍@蔤M>Xmt^{鸕燰;B~>`戫霦.繺孑陗搭籟cg3?(6偸5躾撛u*#NTq凗籄,9向眾秖3>`ng'& 膋騷蝥Re谪=z黪爂pm笠}鹲鳴髉v.顫z +M窹慄筺0Q縫;Hx$崑躇 麥樒~<绫靔?!("*J 焬候:烚&%b怂*麃H1親N鐯l 8锷鯛,ep~笺斛S婏如珑%拭=:蕴o# yU莕>滙鞱谔晄竛]泐般.K #  ;?^ 6I1湿|膔(}9鳔舶 8с齤?0镘;稽粱绺}(L峋NN*欪t 簈r2怮p9黿鳙.v濑灬 c 滣獙=膲 +J'$ar0y 澶x#r23駵綦幋%癶<9鵺摳聍0 +揾*軴#秉籖w莰纕1絪)洡Xe吴駫'鶳阙綺萜2 p1爪i('+鱽}1;齤$焣V-椶Ie .9忬臝艎<惸煑屶w⻊餳ja倐8'2z搶{qH皝 怱 麮霂繊9e F8蹸7蹒幗8锱*,角榃'寽q锿B秉ㄘF銧M膩顂请LDo惐l砹芣炯>烵j&6,3咕bGl寫巸犵"岇萩怓 腠渃'恳*∈*p楉莬~'縩 壍rU娻'$z鷱Lu镾 %W!pK6NN}0?茮牿A儝$O'@鉵荮8銥冸澘\訅R勷9=鳖{uq蕄S 你荥<鄐覙梳)灔槦鑡訌聙,H嗜烨 #溧R:茮,Q愲2(橄c優r :r跘鶚};H蝐,6壤<倆巟8Ik哷グ@ 澝诪綇_ZiI嗢囮?1鷱现み濌+聼S韤}*v騅`7,#'璈咹qF漉溷稱( 憭P$t牢G傧雇4+.禄祖'$dx姊I聲+7O竭樯飨Oz99媣嫫9?慄 鎬鍦7p茜擋盂)F炱Gg$1鋑炦嵯'憡rl;1罳訜N渧莏E\斿Is硐~0y4ao卤企衧傈;ARぬv1 =耱冘T(1憸髮u褥:嚟* /馕pG◆, 鵂 I:9P3梭栬pN?*刳Ap幺姞儓裆谅9葅俰Q坉I#o=8ny 銘憥_煖鮰 灘塌钗?戙舄q:垖沺儜入讕;qVc敒蛔兑2q锧\ 0J騾餾JFA!!B璑奢蓇薵憫寏個nC尫c懤4}蠺g'蕐榍T +N聗C儞砸灮H 鶉^3A,pr 渁絆= ',藕8~=7p$ +|透禓翮豫p0q竌絆觞'm +鴇胉zw6-眻cfTOBz懭縻$Vum孈~89PА +ca銯 磢 :鐡@*)UBU记2爌q#8JC廘㥮/%$鐹c@,y`:eTy>鼁幋囩6`3徣殼aZ晋玉葈8=(籜*懨w苽劧!扇n厩縹迶妸cx=I9犵鱈Sk噡q鞞 +oPn{狅N>u鞘軳z绛7b鶐 `珡櫧{`訄$) o晩嵼堇斛襩rO=z歖朢}鸔俻崆' Ps攂0y殪? +|/*3溜惜4籃$]絶玪]菃 h垒悹熷齣)Y梹= +]窵渝麅鼛)搏m}妱7$鹋BQ:mW2皿cq粑y琊*圑_4g憹9晾荺濷\襽FBbF3法'榍6*钊n(茂 +,皡'j9(枚^G< MI\碼賉3>炬/8旴艕r_ 樵x\c=$m+yR滍^#rr:鷞P饮茚YW1宑兿=鑿w橃辮鳇䥽|rzUT紛9bGeF 悆茑裎込T袧栰厴 wO鱍髿K議-X┶H1畆;駥p8 +抷#30鬲s聦[冎 v +橽樨騤X翯#5+恲?xⅴgE$ag 嘤m]阔熂x<>哚U 佝a>l侐g胡_~E-*)夋崵bT+0rr炃璖E"U,I驉X灓帑6聙'Er凛6 +HP33掞Y`粰檰: g谣甭@ 盩觖狱舄眔i$檭n萜_*居寀黹顯 剑bf溜衫惝?1`躎 饶.F8任' H抋愴塻络羿jlsM狼蠕餑S'DcgX#$ye1呻頖 +ei/蛦b岨鼶T袷C昢\扞\熾侕镹\,湊CFr1阻h瑂濕澺疤Bp8镨z +tR鍈鎙6v廄瀦8M#'x 巖pq盈Of媟`m'n#佦腴行b}摇俷'9雭蟸sK16F袧98顊灊})鄝d :褡■纋們衦}ML檈嵺耜 里朐RU7"霃<懆朓7T 3侕?*透#,P怈閷鬁=hGS睴碿胥=0;蒩]踌f0r呻鶀8惧~吋畒9>烓帙[弤繮3纒(} n?A熼C$粯嵞oP7rH飦䏝z諊郖|爭逴~zG.q熙1灍犻鯛 +鶓 c轅揽\q衧鎹跕蚀y|迩A清蟴癅螩鄃穋彉8鋥S 鬐罹灳澫$+M伫咶1狼a讕靖=Y钵,A悵膅柄箜1颩xy'滎|=y霘a墬n_=1岨 攇i鍲9畇袕缜樁b<n纭理灴Jfd鶊藀;覞纥蔣_p9#佔肯鏎"(艛3y>彠SH屔0$)d?湂9:m%熖o粌幙*距潋q坠膿樜9c李q{c萓倳#afS鑣琊=iV8槳鉽胏巣u傈E4E6疖湺x丽蕊魻*碣禈.鲕3烻鵀)x1綌愀缬擊uX腮穖g鋞#в逕匵 r竎惈'熓捆 l#笥鷔)豓1礔1绢s颒 锹*60膌fm胔v閬3揁伤O2呦4咽`?籰=Fx黨俫+釤鏙临捓s零熐左哫喠7/\ 3穚蹻綱U 'n |04m彬*籍 ={兏仠錡#兦?O蕘渙蝰1 +pI8锴!?(~G乥1撚炤{R珸柶1昞7蛺?J +V 8谲 zPp\搾 趐刻gw(荽l}峄狑鼌 v9,1#敉4湋>b2:J\v钶#'ws3屢唋  e l庅hp朷槺)竊恜s@ 憫卍 dp:勤樄,伔糽t8证p靭簵@瀦pp:d D罆 pp:彲逘I礲嬒p&v垓翳:sqO朶聫!4筤 A鼏inB蠖[`澷鲭許`c蘕蔼脪焤z䏝P罈U 頼紟уc♀1鄸fX濬眼鑪~茨F|0ごえ89硐9脃汙#t槐鱹:r:抂 鳱;濭佞 +|佃籶Y簌u>,VI2嬑?\襫1蜏忥u鋜(楣_x避溺貃酏MMU幷圖;溷*@#<鷮P袳QEQEQEQE0靨仠r:歁-戊奝0鋮#桋檨`{愀AX摉lZh@珕耺朴滛轫NE +|9n庌迶苕|};P榙棋恴鱯;p_RiH膵驏'$1Mx俔及;I4p╗k 勩s~g疛s鹈n餃騴侢!U貣\{8媵0 rs柱8U 娩/溣Ce 伹 幗AT9摄<燄a (~]钳緄J俋矢佑g昺瓥轷だ +樒ZS)崈鍾)鐜鎭屼+|$绁 懒寞3s(!H鋥{鳕$\"訕槥=鷖芋┤#k胓=泉騾斸㩳撳蜛伴荖縙p( +EN#憦+$榍#敾.謲嶡'c刧穅q躍XnQ29仃絋 =~H +8Q蚬!c譸#6+栚p>L廇鷞該刦 嵺零x镫膝60蹣rGP鼳黎1帶Km悞y斻溹 ~%碸bIB揋惀壾瞄讙 缍j5g墁$獀6@$辋摄臃S臒&N#.過誅矸<"8n伫{徸煣JQ,屘wm l嗣vm=;w5,蚿绎0皪晈彅c 苮蟔CP:瘨憏l抳9攘#绠;u┉曓|8A;肴== 8秳麑黉瀺锶n漅簮弟J窫6祉 y&2w Q亴~c冯T鞾绻瀄+1ll-珒鬃'(鈒f,鍕2W侶t銦za蚓c,琘硶W蒕寪q攘─UC'樐熭蟔Q已4a袰粡a蝱~^"蟫Yg=G朓<渻扝=*蕀9;寴C蟛鼫7w#訳;e_ 棐@蘐 rq濰鷥W鉘0YU辫3評煃C~Cm價$m8窥䲠鬊"P燘楻29鷗e掾GFeY[漉8A碇*羈[yC渄搩$]$6qe蒡#辋zUu2  t锿=A担羈r')c8釂0y 萧叞XV罵臏幺哉咓〧 ,醼零р璍I闒zv(s箇厣$搹疦個 嵼6頢嶧I沭彞,S鵮P┴HfW疯>2HI_ +眒千s".墳;胍 +犼抸c廝3灍>!Q G8轼鶌`dV 昹w幥骨q層%定M粊郒鐘J 筹n=钳\掖a/柅筽= 髒w苢灵芜犌_/渨嗒劻Su认鍙Z扵R@匜_瘭J奒c: +:蝘傛7ww 穙v巰u锵颫F緂烁"鱪x9"戼 濦=齭籁eq"獟A飶o┿犫$FifP?(萬鮷鶷`缣骩xF 蹉峰@偯軳F}9鳔;凟唜苢鵳?屓≤4,Ae軤g :f鄬蔮p蔬+_狋鳡 A 嵐邞 {綦稌欤 軁汶慤 郎* 蝾)'<僊K冩aa9!W鷊?J絸YX瑇9郑-(烩 )煕讙j毴0T'nF烴i鈞妼糎 "鋷9c@9頗s愗 +:_<QIz阌殥7X惹藟 МF{斷v憹F +寧縇擁@掋hnJ8'<蹶3镹1穠1}y瞎求槊d9es咯Β|析(x孕ぁ倇'鶶ぢ⒊宦紩翘}笤 +橦.N:鹻鳔6X踙BxP{}(D躓1硭_\g冖󻽉9?1剛G$偮v呃 u鈨虔iz鉂捁'x織)懭澨硖幠~t `l瑁 +舿紇 俉9T*x琰彮m3pC}?ぐ升珩情镲I磀/蓽:s@纝/#3狱)榬>R束dd齪x飿菒NI|霋x>b愪褤揉q嶢鈥 官龄袢戸琦觗l柠p覨6儗|欪妅#艼F]FF>n灌2鍨 鵫 7岣羧>逌辤懓鋪妻命鶷j艠!dog鎙筮◣燔a|n9'撟綣堞.6騬Fz炣r{鰻/$d*D q +H<繾"瓞艜p犵#儌Zpsn>艑蜾濶:佣F:p(莙8鯛纮灎)贆壚螻恳歐噬A嶟 9鲱9?:c鴕贤#Gn橀B卵*IC怤3胄倅1╡W y99觯 甥蜙藇z赧4貍*勩忊n潏香R邦荞幙馅 蘒攏a髳 +渟亼唏冂]徃?QS0愴縜 欤躷彞9釨U婎wS崰t苢柞]實垏鐍嫂c'罟%窀窭蟕q专npL@侤沽莮紆>7疗~@H芮玤>範 á((((ipI鋚x0$ uh~遻ㄩMq駵d{髪E?.霩9齮*;咶p渷幝溂L苗 y長 圷p舜<穦齢舠碻盕毋灵蹚皿算m矍=驝|7陀兤=弦憄Y#╅贼>`堝2u!壿彠鳵-眬擄`伹釭4則98>>燓猈夯蝧嵓c隌 諽'#:;U垞9^O|R)$蠲餏Х汶J嬺 嵜$'煰Zv茱_黋豸燿攎 #=>礈澀翠`穙_zxq磻罪u4v#済垮跀彉6rs罓d昩0y镮磩繽簙P驚8RU8纎珉Ud錮墀p缭{s辇*觻錘2J鋼蹱~-宕臢F頬=衿y9EFy扚]乊C笽?¢颪8V扪熠6\S橄鎗5s?,崰鶓s饔更彿ozFTT"4WUd`s紌`q建?#騎'?輓a$bTl闔b3囯U皎\3aBm,T>厣妤'[*Nr:0Np(蚔栆9F*宮+流 潱p比屢]螣濌岚1<`峈kK]闏肺艃#徦W\譆a#袏=]|哎悙羠1?蟴G0y蕚橈藦蘒籜斆 h刃#j)n扜?)掗+撑)赺*9 z~*Y埝Z0aQ驊蝱^(褢膭驹\dA8熋4fH+斎#+抓V,<鵱*\}?璍0/ 肪;O/偫辄^繀? e_ 蔓z彪嶫a|艐#j侳@垠玊J8P 7q堍﹀呖錠H  x 鳘s掦楴緁1绡J峑C扠飢轱熐璉8\)|鵾猗刵]鹍跔胐sU潽 瓼S鑘%:/T蹒4)AL*3饭蹒覙HY焎 無_酛P喑r蕶$搧炟(鸅 '9車痮_n=E5繳'吚`繖憧oj尗+撐v鐀8#訉渵攪y 怷11唠y弉柱普'$d`K纁=峡;觸鎉#n釱+Hv6栁;烵篚@e;|剧%A欗4荗/恧悌'黏r}6:笄溞j,d硢萴酃額儳鈏Lq塄琗a 嶽镽H牜 笽P:咳鶵48f,讇1格粑>濪[鳜l郞=庇2.[p=s惜衵O澈锩牢X$) +葖膏9'唠组W;綟`辆1胼表䙌黉竎皳髇 [蹉攻i7m]蓑 zc)鄂翘胗庍Zf_bT儛莵芋527楾d衯黫扰晿7=0?齮仲H蘁yQ3豤恳#/曮H袯邻9樵覣蘡|觊0#搦绋c)L(陷 q曹7栺輶豛9鄓黨F!鍐 C|▌t粛堆*0莍8薮V腝仚 臑剪9g 抆B1訝飱tRnC+ Sd 焈_z滅w!=鞺-漹2鱳*攷 +rВ毋.!聫篠'誎笐$鹎錺{裰潠 9'儨 cち$甥g@s巗4噃|%(斛覵鳑s碟)%wz撓(l亞#鳾煒趿L賀7菳$9鍤-ˊ轎9:跚鏏"午3!9_Q辄:悅爜擎?蟡?67鶑萧 +q0瓮頃b醛撴2s澫倂鐎9?/9老$嵏 2=齷6抪罥繼A|g雽cC侴捋鐡觾>淨焥紇(洈eq)\弆烲鳡︱Wq窝a蜰8(9f,8!Ks8篻M凇qS"錊鲜da#焈烙&蒙蜪#鲟搶z 蛟m棿19<荖(葌U忴~T<穜}齮Q.郎(淩0獎瀙}@黨綳h婍f灸NpX!龄m嶦! )- 1f件え港翘2~a慎A<辨I紃帼襾酼蛩怉 +冱籖v,Oi>]睙凤$駨亱#vd绂iJX蚂8稟寀めI(1?海熑鉃v稔 8腔巧g@剣'$g灅f  铢?螶v@L潤岝 +?齌l_1皂脤砬_RJP乀燯 +T卓蟆@R*寣瀞轱迱蚬+熀N蕨*F脽恍溞$%"]%u8]莯;8ˊT#濕?u裥'座S頕[o +U}G c鷉⑤鲢<順't辁Jpu?tm篾鍡錸幼甇"8R瞞G懛mRq北暑绌鞰躊1f谌B壤t樽奬H芃睇d卆袃飶J"馘颬卌$ 潽z岀]*t3,9#絮>H 瑗0ta戃<襀c糯`2s捈悒霩鐭z笉憘r嗣``g鷰$e ],s屼泸香RPMnbA:樴朡柫8盹䙌h&罆8b烁O<鄴qQ潬!s"頬!=r}镠菢臱;F#8\躵z灁P儉樸柪{燄鞞wy瓳蹫髮绉N攮G.8eI|蝷寬;愰R!懏榣; 惘險鐟VV菞愁鶃W儊褥s殚襽Yu 褦哗 :t螸箨+P钽胛}+"$L臇纈pA胗鬃峕庛 +烷#?=檬堘X酁煒虋蟰/4蛔a∠#箅鶸2琫贓<9< q渇-班:娂W?)黿脎^塛nB(Fa聦gozt蜭蟐<駧鏈N蘮(_$ 濷> +`竃枢鯚濑f潉1蹠dq灆N褡=汝{熉J,嵒兵鸖銹7辉A1眽1虍薷<鎳褿鼑貊Р鞭 射>烰3籬f1陵{灲*k嵙 绕0y?欓H失q丘帲广鐨s/掎聛8q伞唚 P 9煭KT釠怺1彔= 08SW熂献歯碣!塨孤cr穃R`$Jd撚雭酯.p2T3(羚A?绲 怹Ld 禬湪 弒镛彊钵%笊LzS@U"|ズ鸺濭刊ˉ`鋾 /~焫ɡ鎿.ホ熃蝮#m躈东钿n闍#仨Ks.压X澙飞髚爚漣0v:跞郹sZ昿l籟亙華躢扎{R┴<鉰濜?纫.茓?焕b!; 繃lQ綀*罧鋙绨瀢 +摓A礼L7gq壬;䴙銉R硁,NFXr0樸w蛝蓽窼笘c?聙盠H魣c卂R驰迎燪澚C駬虅~娇OJ6菁0,2螛|较>磧x蹃祱!@*/8鲡%垵9虅e9 睑8┆w樤駚虅熕?N +弛((((>>Q曞溉)熙霂zt9廴頍聡佰亮? +b@Sr亸棫\}G^嶘R麍9鲰4豢zp呜*4`⑷Y婎'O馉 鍊U霴託];w 犓|囒п/尠X鄿隞3|憙宮槷Ga1飶JE*"澕3懽廭1Hq迦垛I88<l<`灱PL`灱㥮齴\悕薳O'o'蕷C,r|罡冿跖I萷~c憦a@聃l槔9)牆潷嶽_奟籘}+蟐M)\铄綼幗>'x鄝8鷡_錙7橀酢A;X:f 铍迉*J@|*8:3*t?\u;覫m倨7苧;4 gp V2 髚瘨}n過E0伕 +7仙v?C齴藹蘥掇銥)釗b銜$烒&飧A暑 玤擄怚跤yo晽q 仠卆偹渢4膇v錝2;坮Aa v+襄臝饰$q寣鄍1冸镼B 搇m鱄r0縴N;c戂5%廛0)u9\酂榙`pzr-0纻 湌Cдk,鵱V暦箚8韥閂h彠?{=轸$c苰蔂 +>a$ ,x䶮6U*∶鉯郼n{寀98Жp猌9僺嵌Ni +簄c菢K.F1鏎 酛矷驋 鐝诗炔M:m葎c鴷['?=*$迅`熙fP<肢被撳\鐉| 0?Q与@C t柯JN*腒 8 籹╅球隤怺e(我2 ?追ri酚6鐪,鐬G鎨粝\PW蟪%7鏸,燾扎z|v4貜"p8蟗23鞶粮v?+FF逌93許檖橮"|F靷A_系X芡拎燉[銘趻4]亜qv訙瀓+f轓塡d珪'遫st簶~x蒷g卓魻 P堁%A-'鼩G`ZC碿nz鄿g覝0$&s寱泗vra3谞r焧潱.寸迤3蟴rw:烒r4ㄛ `(廧$\9tq〩9ㄍB閱惍呋?^傀簁)摹v(_O片Q蟌f@6=H“w湩蛢88)兎┿(bW1鸀趄*s徑0K鐟*E窝滅=帳$ hp@c暳 篪T碢r沋8$犁徶愢p-碿{耠J蜬a[+黅n8}韮鎬?.Tv;璒@]Y罵梯o箅MYJ#撈Z&蝦罀I銘師襽0荼庇h*2GPM签醌UVR仂^?3@6!X絷睨?绲F咵mポ貙 凃隦萐_'归妸LZM猶礝27~煭$丵蔑1DX-莀9\<潱dlv>訧|高 艍 Pzq .J爳3渢鉆 @#.<踖C7:"俈S#|"##逎>C a媟@坈=楂+Rs得頶$跚狲Pf(2茮v#榳帻?: 顚d懶e蒨O_篝<蠾澅銇詿]Mnd朗L珣嶌 9嚣挪rI=N)brA馄 +?想J7|牀鏷鏾熓)8X鏾轚銣Grv亴恦 囖<v8嗛#疨Z@9. 荅e阹哮渣 灍齨蚧ClP +φ3橀B +爉P嬺g䴘?*U 釒?9!?LQ亐w%[縪o/%Nd呭z 哥幙Nt#cp\(蟘腠鳵 菎莌\yd鷬,pyaJ憫麲:v-禌-潤餮餆瞄K捘孒睘泿88壤乡J7J卹r@蕮蟹')ぐnWc 'J赍@nFX#蕖 +睪嶃qq289鋊*i秷鍪DゅI8烯臖W鲊,d彁麕2碛砖隌晳*`灙:v滕H2F~丨~l搹@1劢8蚊0゛尡懴8У#.睍">Wv;夣#驙凅,,犪A躿u=id`6崕`#巣症巳稆I聉^濜丬淤櫍母N7?l2绉酟rLc蕩}: 吻8躻膈稆Sv鍄愀9巖7 >V亲啁襽辦1另戏Q侢嵈q聮仡=殄撏G>W?o迍碁櫲#n}:槀vO鞶/$憜萦'櫂(=q罓(:湚ZE;炂杸 +( +d泇靋oQOěm扏寣瓱淃2髱/琰馦S蝎o~S轉酊忩(<)h/>Sz釓4洉O煋岇~氰s鞞陧鳬?uㄩ煢j棘F8Q岛钕輆侂恾鐎3崫绪C咙j皆筨rE$憦橬:z]変)轆A貔:T)Xn"0髵攘隽ㄝ儳湭喇騁鋗碓寏-賽J!焋be9 +}斒!垻#$琊珧 +逃r$4'斛鐨訝氹 +駷璃S\ 󏍔磻腸;&蔱V8倾豏8?iCc颽P缈~#萈釱髴燇症i蹚5賸날鐚蹯3顯 5>VW蘛寀霨a冇煣c纱扤%rp:斛U莡v +罒擧熼Q$w]$;`?蟡Ie巭S$鄰辁Vu2瘸;r>槠I窘嚠9沥曂彰)h(%墬ㄎ嗉忬1WA*豓u'=$ 3岓顷s=h匱斆BQpl刣c堽|zUk肾傻w&掌砬# z6{z睁gE+.p宋0s螻繂k"S棏A`H9pq+颖辖]劗蠘乔A#t绫徢溦>LM禕枉匙陒6{ 鐇]現蝧嫌z|缢,!!NGQ鬆摵V茌4齤x梛羝&籸癪啃U搶mU閹: +p 並Lc t1螹8)剴F 6?系7_篪P瑷胣 1讘唀 79GZ挌p靭Sw 兎︶鵸隒m顂鶳nAgBI 倆鼸J u戏 烯岼銆8}Q@(kt'>攕z子G O\&0闠aq灩>煣c隌 +sG蘋~p?#㤘K(,仫) 鍹孫n6徱?檺dr7憦蕗,說脫儌鏽W泳膝X# 姮@c陵v0_篝藻@E#*蕶=鸕1 +b w酴瑇C&X瀡Ё4廑塮 9棦銋黨8夠娽vs!?齴O1#竱12 ?!F9吏鲫i]X9bpp<莢屏貴;烏ī(x) +=籔^!#厪 n3鵖N<狸蹕藑過熺麜GVwxA緇裱G"靦 癴\/葆@4J G匯NGq=)隼嶈V 豤磂身湏毹c"H@)1!檫&&Y姃 E绡酅檦帳|雠!P3凲寫z z慒丯z#蝃燇2g蛱幁撨趢勎qz?'p!懊!rI幗〨Q愜噻 ;揌$"縩虧g眶 胳c潽q;徯襹瓰c>a\狛:禕鮑鄵绛+鶂菪:#捀摺鶐z廰祝>f胓绷釓p?^魨嵞;p8瑁=席~>O穛宒c邹芾祁J3?.;馢 \酀嬝鷙t;c 寠N>Q驎苝>U}Ih矔褞毗伓鋍亷I旸2腰$堂$;ztкpVM蹤y\糤s鲝jF嵰=!楓k&瀁呼惘篆 鱈r>R+)滫z楼!p臓( +(醧納澉颱?糱B,`p述R8=炅P ??n潃貊鎬嗼塢H六煱碎>猷;器顊镮v鋍![o#蟸皿囔z#銮s瓓C憛V;7儔$9=1C侹#虹熱i_衹?>箥 +臸6Dg羔F;;鳙 0蓧秨靍b?系O8_1x8鏾峰妶癥WvcàfC$~课1球)+豵阁鞒渰淪f!\皁-G遱渷韫銡矱G &%2v嶯=闖(((`d畱遧;壻憸R~G^蜜& +翯*@=>b?苺渄恜q缨煒| 88鎽築H鶅`n8'?5'I6u哏3腁$p爜蹮a鞬蓃洘88%x突9廖O<边`鄠屠象4填RSq嶣糸RLYP;嘜L褾O*扤F~旈rNA鎬3窅A申s逎ME夣>搓(*让;l88j猏涑g{" . +)镒燆(7n刮颀主鮾鞘 嵀碿朜鑮莏^2莌 鹺H8茂搞?I箶9f(柞鈥.[泎徍尿Gj-袛U邼脨軀G5q渟亖Y+椺c 牙袅M$(M +r6犩宑伐ejw扠2H轠秠#9MjJ幜v<篙 夕Fy&/d2]'g#O縚蕗7簇葕礮4^q<狰謲f>g尦默W.编 >q+J +c癓38T鸀溣楫 F趐剜84Q 颭#,3棒rjヲ7&苧漤#'倾S礈颬剷p紥8<8 ;湡N銾身貫 +205赾Fz溧?齭須嗧輈$9$ 趓FH?闵>斧劋_.)b>\6;u扫&L苁),櫢 c#炪P郦陋嶨$99#=q<槺a潝Q惒g迗槚i7帛$*愠S鳸y畐1`纴蠕罾l髱=q淧d焤捓HX nL憪Fl篪;U!H 6逦12_тzT蚬P艶, >1冇灒蛳譄 徊瀃'啃P堒"+7w?.孒沔 `g鐿^濌v鵘 +駮T :zE_#* d|繂8(慲賯p鄮胶T-#?/zb皤@脜蔹彞7n*>=tou蹨嗕9洊6w善ztgx路yl翮伕惪98覑闁\姆p9鉅珏9岟`=}凯4崳q堐淩鯌k`9茔阌緡駹.Xe@ A麌詿_jn坡淗0>PF8娠廅2澚X0贗bD剬v鮎\%蘡咖坑)s<(`#唛K懣柷A訌謤 萛ne蕪涙S衐若硪時# ㄤ<:w齮牫1羇茹鮫B=~`@术c鑮?聙v塑疢c酂槦Z\鞞N尜艻?6擗苨秫压恷翗輥朽d貅?У#0寭冤9 +Hwn紤WQ&纖P酇 濄g'懬zC埫"匹@w y郧j騉粊'$愎臘#<J螽F= q}麁H皩rxE=区諐 .铌/C麺莮莨酲T笖\J蠉「A? 巹翳*@艶誨么n1祒<糸\2S }Oざ$劀a 'P>Л&wm8m颗莨隟\岼憹*怍蔂%轂69&0缅g钅銧雯C峑1糶1巗#2罔>驹茐[pt渱鹹*皮9 2豟銖);(筅#韇4矽v陕H驻鶗(]繿}茸喳袂閹M盭蠔Q餔n'珐>艋c憆溒喔BH26y脎黨Kf輶箃< 貁瀦諍7蠂t;儏q顉~渇QEQEQE5N岣1*軍@笉肼颃M5裤茴=W0綬y;姛篐9鋡緔] +莺\>v溧c勦t'渜P(X烨 .89Z( +( +蝦飈F0#瀲誒貢RB pz- f(岆x麙{螾郿寿#撳哈,擏4#uU66釉=鞤嫹F$pP绋=Z偫?<6挔\@8蘾8]谩>*螉V敀挋A愴耤<擔藷QS|>l蜟*@'=z徥珼櫍'v#w烒 纟c%L埻斻璦ZB砠F尛鬄O'9鋨?5v钺й橠*昌莛匿v#鹕娅[彺_炒e稹0X&\腴>户睰#糀|轿襃#1峎臂鯰dU緈ょn{U)抈(s磍9藇襄歎;唒G訮鉹2鷮uW悁渆'q增=G^?*峇圵P胻g瀯絠d!妧獁.蛄蕦亷}GJ咶叩$f=蕿Gl8H姍浬苓z0W濧鷔郓*rCyq橩惸`幺FG(褩)觨穇_ 詻"莞喑7躤懥绉' f羊鋠湋渱S舄砾甔$粝如8=亢i徒;簙橏)pO@1戴茿靭Q匦皤I噤%3箱Oo^$ gs磂X 鷗隨衁6躴驌鲌煡d漱l迳q桦镶=J械g5莨 s苶GA: f抄F BYH v$幼癍908黼趢#C騻ca8QI>鐨(呹n垣扷@ g ;v<6審犰酎蚒`@ +g~'5d 毃彅礋`[1維竊A 羿紌欣別b虡`I8I⺄駥{2}蠫臀@?諐*g 伕>FFy#侙 +嵸U戼Fw颁/v鷵覞.wnb摹9韥尪?AM I*Kgo(損d%宎B銀繭[誐`臮梡繰B蓙冚劭覒@蚱>SB1钻{zR 瑎0闗8闓B琰麁2醪rwd1?|鋶8*懎q葭 +9踢岺/2e彪髹沸T6嶣取┶1钋=盒&- +溷$纔'⿺pzpc>匃>繒Q訖a)#,陑?u搨9O`;煰卾`uGE硐 +瀷吰I 衪8习睐R7u'筈湻/5>j 3灎湆s辱h锣*3/$!1择JcN3扎s硪兊擅(,罣'$繌Z謓╳讹rPE>V + +瓾8 佚h`K喋擅z鴰倹 9谇07L}?:F +_*p澵襞/蕄洚:拕z9樨螠#;鸺I辭_Z0$辱蔌蜛鬝MbN謚##竧潴佡q 籹|蔑F>bx留U$hdu-#寿G?全埮 鋘_\c5YCqB>rp9=> r暒 +1?莫A吴F88]疥^s裊顬粪u舁Q乻(蜰濧#,Gn搋*怘" 3嗃渃sq転(杦(W怉蓮瀲远8摳壁_pw?e褄耦x鎮!6Hq懥窭息専髪N珪| 熌脤Np紮0N颓唍ゾ兎ㄒ*蠲Gt+埔兤x鄲FqK拰X輳8菶<aHP%嶠?蛘环狱鶴泍9?<+盀哏4f躃pw簬快/8塬" c?Pツl《鉲*~忡6z崭)薾a򩗙Llx刼乚?49oA席鳸槞0,$鶊鵴勦q霠 á((宒B爊顪熖酡ByP3艷~荟む耇m;x!N1e无 儫嗥Zod7砣9樯屬呂銋,+霍┠4渀d`{=䝼毧vEQ灓lo衵蹊湍 鵉qOZ%${歬1 +剸鵑#渜抜AY9焦~_jh#dGp阡mm仼衫$ D擜髉y碥酹Y 厍N),爯})詟`溡EP7!L't~g 眍~烏Kp-^~榲黬培苁 鳁闅9%Ae 煏AY睋牵灷?x,W 2]GT<鹈胄7+;崩s9臂危0 突p 更ピtof^:68** 兇3岷鬺綮@(2e麅痳@竳斍$`@%塒秀佈:~ +癛Y7 綢9RFy六O釟&尬瘛;#V8闈沽 驘聙+j3頉rcT铑A跞 <灁*$覮朗臏|в姾%財8l*1雭9q戅错R8VF>Y騋I2 郭H81&5l戇;澤 8帶斧KI啐99##鶸L澙c宺sM懚F妄蠴Z}5BA繇@蕼塤i8蜧\t銧#vvQ骄l輤=蟂鵸鬠苻X.Tf;<燄腼臚7y墠燞艛g 翮 b +E瓮扭梜d络鳘EK楼@(縰={鄰_oi酅0g:砿8艶Or;泸I洪2憤8鹑 +<╙鱝簄躀蜙苲4a峜劰8\r=j8"H浲撳哘另倊繚W瀎斻9t螿肭o鹄. 粊罭胮%y鐡 +杌勃抭廅﹉橞v摶噶#緾邠Z俓|Ж疌T-)7钬嵥)#渞j颹孶s$緾@n#铑?3s锥~攰崿0>酒吚忴F[on䴔<>魻`B 3訋1迉r獃萔8-;沁酯!傢贎繽糋A燆i珡憄樌Q儫2)>]欅YX6W辊<~螠'辱5堒儋>耢|帣ゃq闛睜 +80''擐覍+湵7<B19L'橈迺zS囒苳d@~Q9鄗{f勞!膟苲鐭N斦`B嵣挧O酦 Xr舜侼T徦趢鶃*湠繕゜澶n9n怯妶懝嶴苶#/g畇顯袳!P5l6C#8旕蒖X=汝z0>W=9分忈缥躦屼騷9躹躵vH顉z詰c<(阌迾O60[$邍Z5>g蛽礕_S謤&猻它话?慄*錞湊GS巟*x輩ふm.庘w鐆汤佨t鵘6滮8蠺o櫔搨#F酅'j曍O航O怎 3DiU媯.]0B颃xㄝ挔s議艦幺Ts紜$=8= i懙3/E'咧臰伿嗠驌貃![飷207烝=篚Y埳#8帬{脾p ,B帴彲@#r捘 (m9?(*U穈潬s盈箧泴轰 硳~\3组"6Q伖衫噻腩脰m籌漉 垭⺶悬%79:稬滝泮qHp e彅`鄵剜鍑v矔輪ox鬡=;1嵞宒侴碎闛.A攳蝿黠M蒐淝荧22犁庝PH(T +X惛桔8儛e{瞘 駻 ~UT歉埠睤W挘i@厚僔H蕿>S哸d觖緹忬獞0氠涚鱻T溿#分U誑謷@3筢凔巼粝j碍崿3穫牰C3顁*H(旛,Ns嶊 + )#=痖@6d1<儊魅9$酊 +R蚓l嵜7 +謵0$ +?坤鹯{2瓙P拀W9,=佧銑r"渹?壪?楃H0芻 +镐狾( `つ7 耕驼W韫隟傐:e 托垦}?m!悢蚨 憛厈滛O骢$硛壒嗕垖2>v飨FG橝芚螰3䏝aB嚴 e夠3驢s闪g蓀s鈹帬辖-綽"厮咘bA颌绌=嚣鳕壝<瀎y 蘔懴軦?o>Z 侽_澒稔M_飳6T瀲i热膪予(( 絒~烎欉 + 暟鉔\宀深i嚇領.y赂L~\p1肉溍s怈`r)3婶88鵵FG蘳鶁蔗 ## c咏(帅宋H 懽吖鏀gr@1鴞覱鏿風撊羿Ps*/p疗#?缰2栛9d=?>,熽坭{g麸P钍y'$幐*s4敶寨~|(IF韹HS # 惌闥|z c++e縱%hz8荍&m1;9e@$鈲絨埸擿r橖 o#鴶廕7?憳`胲|\煒RHL勶Fv蚴寭袔E#7钌Iq椂q嵿z崊剩r蕕9#軒XI;w駸旂y銮鳁卡V,I粀类躠;奒,V4悞3邃卋'郦-G) ER7勃瑑$=侯圉>7Iy缣蕿橄rGZ豓颉=TB=z说%紨#蹌1:?嚱\縤スD崅頊崉2O綞jY\铂殄 ;*撒zm1軳艅揼9 +估蹼叩jPMbB錐ON*:; ,卂% 悃^&◥F樖糕5s涌Л,梙繵,<镀碡>rq6q钳9<躞@d7聩v?┇PBf限馗軂樴du辋qEyQ*┧8鏖_|#*(吰庸ON冼\姵;狥"宮宑巹侶且迟鱝=熾@<变躴箢L湈+A癠秴鵻麧座J両恟剪=鷡& +c廭3乡@t|d罘妫z*s懯冏>痾^Ardx8鈹gp愤; 鶳!'鴺1NB偫潬}摭去` a麲*2镢q潸 P栘H-拕皈灌駳嗹% 灋冘1栖6v蜧8硗+n*9^窃4L傲Q聼╅䙌椁绌珂黼莹琾棠秗;3跁T偒髉纔3擏OaB綐d.pz炘2**G'︺Hy^A7琮焅P;H$岝<员湸$齤岒矸w,:貆jH撤'w<驚QE5烝瓭鶊 w銙OO*a +蛡氰3覐1懬'佊彮**9蹍U伷:馌T禓T峥毵求J<弩熇~敠(%鰝I里御异+褑 Q#P誢T+r2r=&侒9!q邷p>)$萆B倮乎8鞮 B |p:裣S頹i箁s7q蹶j 臰9揉傑ゃ蹱鈥TppT<57$名H例W5+)PU蜙-渰 邼W楀業7d3偣 鈥;傘+:^).鎸}P}32zz!胠NGh惗A$扇'<}牋籥I>'s枨扎脾粥 9y鷵該} 紵^AQ鐣a2'}!l -繌~荡刴$t/鱃l毬#痊}3濷?卪Y涉R捭-O鉆颁1幑e'>命魧挭a1\1=楊廎垤Ё釭撄)e额比$便n橔g嫶*@8<籁*2T*HA軭鷘鰻 矞\编帨镠Wa漏慄嚛酏x茳7$哣'軒丽埩锆V漤9贶缑)m燻)埋#慨?5f鎔(]T愮;Tw畘漽歬-滒S致,捻U+冔缍8鶷`r e估OP$.~ 鷞熷d-扞#$貅>o+#=?鮃彌縅1噏镻X +狇'隣 摕沌襞L=4崒`寖1殑缓題.d仐'1态FH哿琰)n胉裎=I@(Q秔z鼪分* q苧烎/歱鍁pr<z覗佰p$'8茿F /昕:#貆泺馌 +巔2?蓊I蚆飚襵⑸狗p誊幚b摑tP$ 隌N嵿扅D鐜且 6傲繺H:c論蘢釂X/荖O鏟"$Jm8g宒廜V\ `|潳岨洨拹褡<搩湏UfDb9lr搧U2 mt擞巎茤p)葙聦q徝谁j))槿脾鵦2) 儉28'済鬃紿針接q衵q证`3鮛R嵯魻);pR, 呧熐坶Nu 鎚跔獱x鼸*pR怉zc<蹉黫儑%忀鼜@贀y,茕聍嚛g覛+传gN:h溾A渙拎庎怬lgㄨi厗I%N 闍閾灖趢.$2w詞T6诽8疙戨荄 ]谾鵴鱓禓=vN燒jjB吺懓q韪珀佞PK儫1A*琸茂M喇2Fr萁*贀x%wgx嬜蓦T媡rI-磫鋪忣鍃'@琅&1亐*0G蓦炰熋姕0鄦廚0 <"聄$3!I螿住'灁q!睗籃@8q腓嵛 &鄍@更颡;4艃,}Id汚ts閾HB⿷ 屚潱=騪繀*巇萁`羼螩羽崙鉢 +E缱>孕y咨b厘s ?聶笽憹腗G!釓0ql靐譳|瀁\冭灅擄@ T擴w(Э[`bt#懴a昵+r89n儫欳鼥 +()嵏绍c\=冂б~W弞UP醕鱫箫B1耸8:0鵣m6:/BZOO髤 9 +缣l)榒+鑨锧 +0e[筓垼 r{匽2m ~旸*葞3,2湀o燊8玍嶾1$箧0聼狋 4QEQE7踱呂琨輝=;R6▇\怈蟔抿+綣師琵;P@ /A鶖黯靭)I𛻥蟖傈iF@ n无侐x=矨?#rp粔民坠(:4纔>宻胍1軨8鲭鵕76q儜:O忾A漤%s燂蚩ws颓+豤麺,稁`沲#)!& 誇>夸話}脧鍤pA-PT5R禜a* 鬡e銦:\*┓柼c课骄"26鰮!InI,儽殮醰$虮蘷Hz囫鲊n黀[i6nJ╈咿忂àm粦<硿m慘g.}:昽聙 辌 w軇eO@靱Q8a赜K鼕s赴蒄8蟄?'穑v憧 +r蹎F'戓[+ed懯m 焮'8祿 6G$鯪~骄骏_靖dに擅铌鲨:q擏毆閵娘趧嗆 羝3頊s@瓴3,6dM :rG檖\)弉妮瞀A==px鱛Z咇&'勧F $诇rE,郌y*匯6喯脒鬆娡YoLBP 嵙櫛嶰犵邾i +教わ亍Lcq鋠f򸷇笯5膗妘A湱射 慀贗贔?球4H琔我X跟}阌阀_:Ld +I壬* 衐繄-.=爊, l_橹$歄8o-@騉>望赂8v8<焎冥砋.煷!>_j.槙,戃灤 +/2襮 +x搧懰dC齠殌$騀5* 綱s 9nI=?n9<:c唿 A篜D潝v8鳙,裐C藪3賧#禛'壣$稲?灊緝珸.Y奉 唌偃8圩Ё^+N=@; 蝢扥焞An紟齵#麺^掺O鮇熥(s甘沉弌擕慗v鶐HL廭紾泫Q苰#&r{⺌{赙䙌┦Hcq闛踉D┢Lg$嫌/w障PW*?N跨奆玵琰齢r筷捐篶>(8蛳蓰壸=2}鶳滭蘁~<7謺A枉利怯>辞鱶灎炪彞8煖蚩 忑:UI 昻儵蟅缵\1;p宻湋想酩 0櫸8\t翕8E圩薧`騵P蜰珏函@i崪1軂锔>翩懜<歌Gg钎8鹉d^煃壠夷秕>O显'o鱺跨酡?郻[灉摀自馌 "擃v2笞*鈵p8n1J#扚N1蟌cmo8'jpz泫l~',面蠸曼郼3O@3J. 鄲>8:熾H{矁絹满忦顯*憦咳躽酾7艸'}9泙V G蛥\d~t呞H P恟Go轱@)稄hV\d滛嚣=;p胿S讈苦&鈞[,跦莮8=#bc芋?,泤 粈FG?篇LB3躷螩灴傇㳠憲醼鋍9l*侽莶y8=@?刃$r9阸膣黺⑽)9怆憻瓽揣鱣kG\t闇徣熞(惹9蝻樨&%攼猉 瀥9珩 瀩W+梔$q內#珀j{亅岚T9鼛=仾ゅz>H+灅鲷盱}h疼倻 6蠣跚#5>顾(伬a廮_潍p桫 舌鐚=xy=>T箓B +鼳鐬煇 $r{濑綼垒岤 >绶覕梙8{秒苕+橙P郺繈嶤>hUoF锵璈rI p?嫹?囼 ?:v_o +>d鵊%煚bH9$戲纭Q嵇Tc沽掳9锎w#鵖ち塺VPH9>幚覺29^珏详狋擶凃R21儉G㎏ 悧PeW,8郣崱壛!O<老炳绡隑挮 {2巹冐峁 nS偸煑+6\;葞蜼5蝯抴w岭昲╢廼蹸g甆 zSTiYT:簡 單顮t鑈徦隌3$钔磑M1渦蹉迦绡*艀s刲;g澢睐*z銕犩韁焩% +o俚dy呄\g$⺄釒嬂8豷倻佣g聍(RT讫:w橡 苄黠2l朙.装<絷您R; C躓湡覈, ;婘-彥聫茢啅鳝渘!婄鋖rGh鳡 +蛻A驱鸸!N6憨 戺>cs訋>輵噜鬢N >X耜s拁揣!濥R迬8f?殳痾URT0R翂o減躯镨=鼉儫綥灉I7o +;9$$芰羘2Gb:/狅塥U澨胿/=航? +Q9'1cB?鐘気度e"FNe愢扊蕩哏殏C4v虮'# GO*C7搯l扊y$HU;N5*蔀驮S(瓭蓪<鄎咏1騱9 +慢{*B 炣巎6伿2怌r?,鳡608蹏熔咟{⺄&P 鐪d廇疢;宩@|漪<缱?Lq扏鼂J淝籶7~饅w繇覝b 熀7JhVa僷W,{vョ蛧 鉶x{}筨c儗渧鶶ノ藜q灩=)皩4渃燁愎渝8崗#Ds99鐅{溷8q邹<蝳椋芷蠲幙蝷[栭老Z莊g湡淛FxQ妯﨨暙)!$+燎fq镲衄uY|偯o8先s攐c;pO斌萤Lj1川 ^勧v缱拂O瞍痌r6眫冼腭a;晿 茯J醳噤vw苺饵<澝#煰輔|奬<薄a囩.q佔v;1廢鳔寕梁vV額 ~楽5 劤@V9n紟繍慎V +核p8<∠殚O禼瑩y乺ぉ礁顂熑耈飏0c媣N2A千穁嶧X愉8$u绌向黯X*( gny?琊婥 +<眬!A9b綁8?齍疿zU萚档O簨签$)倢烶:R&蠐&褹趐G^(`襽藣蜑珳cg岝狻.込2r9纞 A=峂/涛翭`z彲=:t隤I熂瞵r9熺欱k8厍顜玳鶵矒);I拎郛h 掿W鳾唿鏀钋迆徹*b呫麧走慗@荖0s鯛e楊~辋镆摐軳冸睨}1碣喊鳋棼仂}痭霉鶳吲坐 +怊焭F=~~_御P僢A藑笞荭uE硘嬃 g ?$7_鈕阆o獩灈婔_#е$ =緷i/轣r>*&a蹉鵕/A蹽=q荇﹢p3楋頸v0绛F娖Y#y;稖9琦S蘙訦K缮r +s郕暽$[>紆DC仢绍鷱蕗+}79呻凒鲫=id剺觟錭顀瀓谈髖蹗9c9?s酲 O\闺I袬8-羂z聺61'\茹 +W#tl0 9囿鲊锧陨Ah鄒鲜迴头勐鷇z弉 +z:簏蝵*H1嚀䴙鉐vm)挘t鷞Tq Z犓軃骘翥姚l東g攓慧:妔8]蕅=={殘鷣卲 #GQ觜鮇!>qI>^焧{䞍`恞膏d鐪|烻鶓齢y9S豾献H*0*[9=楚许J2;T扅冏呖Fl潯zt#臊逜字 r%观笎x9墅_Jⅱ8蓳j昐鎛泩銈:{臬鄙煑T0 }0x珏昑FHиK渊躑'屼v<1@癜dUO 從{U傔$飶粶'蚔s哣]慅稚8任1縅档ZVU( 萑8$岤螩vA莍;B8$ u;v從)92瓩0蛷 +O;忺SY朜_!媯v0,噻;G獋P﹩ B鄬6恞缲盃>g-8疗q搫㧐堶媽+,娂' n鋖Rz篦徑,R1輰%@荾q忈Qa綰# > s>Z{靍愵焫滭跦鋺蕩淩撴_渱7r!s:'fvL鶢1:髱:(8=i蹋)冲卫嬮71(Rs 笄檹鈕D;c%暏鑩湋 +蹉訸 :(o+6G鱘佀D噝@|翤_0讼_ROd fe览驚+v篝恍塓N檫詾?椀63昫潰`?H装須ta曎Q<6a=嬀}:籯 d1潯憷)鎜+閾隫*%扺騄趣 +漲藈?OJ緻Q@B羭唰i'=緷 J<冢f?x蝡睃/刈劺鐦鹵〩%x;y=槊樫Al寧&欿壥产嵜>敬蓴Nτ刊鉕;|菻蹅89>潖с跁咰.麕1@:SU鼯 9脍蜏 *|909请L勬Y埼7c煚Ч8]扮馌n ,N槛I䲠Z 铧)蛵死胲鹶 +讔遨mP亯!r鹮凌剜獠貐扱儛0鍝 q枋*菷褉瓝您Nk5Ha獉颽老 '齼H#圴\;|獦兆'冓樭單p.堂qㄏPQ!菤勩撗x v鬳麰 +p( 噩2rx80{儊G7實q槛38'= +炚 9 $洍# GQ辽R=筳{喑"`韃88胙嚗U笖舊HuR(L鋺嶰??趏J﹊蜕悅xa8<赢螬頬'粆趋Qgs&N筌珀*e姮qe酖0pH錛骑!H,[呧笄A槔2U"l濬~囉颲;s"#nf^洀箸妸!<4Q澃p:A +j侇颿=3恏A坨2露1霝紷r噊3che饅汴瑛&蹻匲娙阹Ws詭3沕3絩H:矠邫局2賏%轓G炟鄮>旵P锰s尺h苝v鼹t#+勤嗆鷈9绶穓﹡H粦鲏<twmv9*2=??屙K糿唑扥Q肫症M趟8'y$U汱孖鄥S8陒?!a濦朿宷軣隥鋘eNG<憥;*m鋪竴ch +9誦c稰h龞L{杠_緎湈圏煭iA椃F 摫!O~鯖bqTqs熻*>士p =P賴万 倃.OLs妐9\G猫$庎g螭浍`鄊簍=闢y蹇g鵓jG索>蝼=y鲭䎬爒?席n(\醻鱑O笸'FI栎@斛蒲鱭焙宍t謦 da劄0JL裨鬾泫溢驺=W 轸隌 +O鵪佞覽縉'座疦=~熺趩縉熺?嫹W羅 aO鱺骏; 活,軬芬恘鵻摖粝O鏎'鲊渱迿鞨貀鞚嚟=虫7啕谩靓d<份^濷8瘥瀒 彊~蝣訌哧謟廜09*?t=峡O髶@t}:縪zoW;1/疣u鷗鶊rN噊Za89#鐮靐洩忲廲渄麈l+鲹犯ē9菢z煡JI0 uN烸襽!模>S9"]N<撔qR蛺缻躾\赭ㄈm2?A/钌' 疠h舞嚆庍x~t27z $缎289膈㘎Q(蝀笱縉[?w搸齲?)#懤宿|銕Fz淧╜{伾跟p玊樼兤C隬$bm薱 6凕獢潖f缵荇鐑酢\.J疠r#轼泓鎽巬Oo聵Ny=顜闵⒍x 鷴=j筻缨O髝>啽魕"尅bOlg=玧N??雧 + !?*d)#忕R旐,N梦8廕 d.|?秘bX詡86翥@ !U钡$c9鏠叭郎帱<8; +杣饊>樓Nr扜{喯咙鼁蕎q诬韓铧1榕#鍥$豯0_篘釒f忰濦n䴗x笄宺D噆(#搩艫阺陒4d!3巟洎?囼ㄛ駨驶I%沶A$囹y8;FN騭<緌摺臦 +縣P儨潸-y枘nU踢s9lu趋G~礱;堢,H8竤U`惼谐亾輧宑貃!獳 濶鞳縒圀0r噋,啵s9矎Z6倠撩鼱78 缳G>斨"Y7>79+绘?G酦c .o饺?.s岓実審C9朇筜J铪#妻,N) 伛囕l戵濭%彴08雳蟸-逮 庚qMv) 俆嘆= 蓗/X石@扩l`s>厢隞6稆*曑I%I>屒凖a 嗆J9闪陗_pc宥鏡蚔,囝a席zP ≤V36覓&@輧=r;肖aX 悅v檘麲aMEV "慑燶濅r╈8'縕Q檇]闾翷u 齢菿`櫅3唒0騯鸠疁?xZ9錼垗O荀9#`F袷d2鄦A靛 煍鱌R3)墺c毓窷{7,狩"tvo*緆U銿Fr:藷鍛]貱c 4371氆謳 +圀7s虪o|b( +X櫚0H柒噹讱x菧綵K锄?<6r2A黫>`雽黺 + m0螰<熾膻E+<W zO隣P90;>顉﹑賴囙s若譅U転p9*$-髲枯硴牲j覐欜'=AD蒔q;a@忔粩鋵#灴琊惧ufV<鋿蟖垴睚jH蘒1wN纂Q粮D崪eB(腵q3览 :q鞶錇 $﨏鋺1咧2%82!(爼2p澓8MA34呭搇{)\撚 ㄡ住9閄%s)'恾輖靬IuH, 郯絹兦C@ ": ,寗0擎 闉琨lF*\詫鴲=檥( +峳$[jP鄴yzi`莚嚾帔冇砖 纮=欹-]"?.耞op蟸7樍絝aV>1G>咛燌礭悪塢梥锠c瀞岭邰謙徭"@%>柘9臌P挓&4Q啑赶TN驴3`O達隣澕思> {鵗i篕債頪s谞 %,(拿9^=ZY$畐)+貋廚广譈` f +侘=}交pw彌<巕:}h犘弁'悁r y荖綦郯娣霝袴/]Qd +t帼'鶺C@S%%bbS衶k瓹嵰8醁pH镩翕;2鵪,#'>鼜N礲p蹪@所扎QN仳x庚,wQ$?戡炷g t'Z┹)掱gf(瀉鶑泷猸-8蒡梧A鐜漋苑,[┢}楖鎬" bT餢餙N=嚪?Zp'v}媵/?雥g郯䲡~7撔煏 O8缈謤$q慃囸'灲?棴<佹9驛脌[;A餅孤?鏝$'+OOD锜й糸籁鏾?唛H:/N緧'酰迤>^弾?缵憗冃z瀐9>嬚堳鳓倷怯?twG饀\l忴}蠣>g凎嚝z 9 諳?+d'鳾溡熂F崌C轷>*0p縸鳅熞殻 +$*懮箜J ∈湺z{c譓R玚#S聑чW\火 蕿魁jiS祤^枪憎赮蛉 埙窘椁.[;3瀰Fz?O聙I躼5=Oе榸c撁сN犁rA?Z '?湃'檫F宒鐡闓K菳G茹飛献PJ0楞袨c躌6徆69n88鮹i?袸疗?{洛cⅸ8强'帟<¢抸?襽0%['佇蹑*7懘H雰&災2鏹0賿SHpC攤噶荗_V 0p:茦拁n螧.{@P0憮:c酽\F%F铉 zuUq卭鄛1齤+咘v辳兞 +欳搩战x'-熇qP壤┤潴冔,?聙 摣c瓳酏*6蝫s如蕖cls齢F(泐:*壡徂瘡氋1貁琨鯙Fi{Tf-橐鵺憺$撥9螼z桎浦r}繈3锷蒄$V苝s冝虹奢r;?齒>鎬}絅xq叁.:忬颪,J吧*佄:灂8倂靋枪?8+"A晌研2噤)蟠=鸗->闍拎騴䙌襄SO^杠s莔靳晴堑E諧茜$~=@768芨圊戋8钳皑貝僡榒a陕灩牲=H8闌嶨'寊髑~Na鵟{耖胛v炵+ 茬炪眴<兦=*湂M魳3钇lg@zv;Mw=綇篇Hc|63砹艸#Z嶗9P硭萗m嚢賶 胔 诿;鱟#>瞺昇X鎵沠Q3s冺霋陌蜰J?$ 砫m8d\餘8>偾l湟Uf岊蜪s髑鏎UJ T鄝NGn:驧2,戝_8@@1#饀L笻L寣 臏t雎忹顟7潽跠婁3O'褴還%(紥6颖Q翩?蕯騚騏稘嚆>9R竇d蘅.0{泺Tg痋"C骓垥偉9?顑煫 +>u.呣A濹砾巣t蒨2=a@聾遳稄洔9?@ :錊趭 S鳑>焃sAp臱彈q_碿紽[$Ff.勫1w$=╆ヤB聩痍6bU旽>`BQq#N晋$驰0h8阃99唈HH3.賷疵h4vA+雉粣i#暡]@N愣OE* 咽$j2<灯$朦M溦4麊 灕H滋摴千5$-"凉 蔥℉蚯痎疎"愂 +怉迻#W;O1憺臾p闈Х=灰秪\n胛1蠙黊嵌(犆( +.x驈痲唠N` 聉兦宋:~TnF$综蹤Ⅹ琰煡8檙 鐚g佭恐贩!W 傈#隨 膗设=皴@N3烄O_轼P榗r踨N?嘕l(獉砝 +瀫t=i0Y\錍1#2?_:遙HTc8'穛趢&pB鏷 !82砥q99鶶鋷*⒙!Y綼彄x蹊9 f鎡C節庿膅o8鍛巣鐣YYe <穝篑變黭ii "蚴寏h献奷錼H`区v縝莘z0峥Zw2| 搥3宷減Hc讥c1's擄膻$抔蚗P╜Mny;Gn{囯L;蘣庁苨頍o鹰O8 跟箜泽鶌w錇 辋z酊{姌9u=j#嶞輘抿n訄搼幟眶+B(蒴=W妙zVu懱r蟣g灊?敏;_鮫傘hq廚跨趢%C[擐穙(2_ 韺霤 e8}(e旴铑'玄}借瑛/c镖溂w,G8酊P8-,藺=齌0趘菻嵼区Ar狛箢> +G8徆 疷7HrO\耠M v瑋 ya%囸髁闕pp/滬m鷗'8',劬 H0r &R3帞 3犖~縚筮4一S媸抉__茰炉羯/J昢g拭迩ゾc塛疞d翮鶵`怈g 1宐氋;1+嗋憥>溞胮l1#傒?8俼艫 岝?'/< :隝]@ +r 0甾仢牨<@%髲铆蕬騮84KWcl#死\煍s镩K =2脼=恍n虥X2芓 )蚶|搞濶)叢燃=齺鼚?v粥v8蓪癛+澚觥J扤v`3層郿799箨O鋧﹜s磀悌3呖酅 >噗TO<瀐bI冥`c>嚍?*p#pf;玫7蔩橧谕螓c=忋@&T屻邷読圃q煍A侜灂2E&<餙N熓$慖S朿H9'Z蝜q煈v廧伷_o藠惫>U!yc詆5麪熂z~!却崄'hu?琬T渃z,m滺%莖9兀6ㄍ=﹩譗f鈁社1`煚n鬼踱箂[,l?籧廯A媵 $*arH麔湋渄泔缜芝`ボer];岀冮䙌8<8$r\鷊鼄qS6w F蹊[埸鷝r`,]眰3袔荥\s@珏+蹩1S威y缱檫妺 钴敕儫胂< +F$兕@c笾氞活(3麺朐弉= +鄝{`帳錙疭 绉J9#$錘9$e=鷗绉A@兛災|曣=.鮆|%杠 9缈n扅9N;誟 场峓9*p裹庄Jc潏鄱疳O蛼摐憙濱╀\FT*v蟔蝚 7( 彐l,0px8猞 \#J0ORc#9#932綤蕟9跚 +c谂F骊He苲t/~佟啅a魔伆c,pF"9#x@F課s#4*粏G'汶|覷刯瓼荮v恬3蔑N H2# p嚼貊8~?荨贌j 唀Q钗2 S1^!m剜噻楦绤6@$V搆*橩1\g-審A陒烰C"媦Ta嗢*0r漫t釰葘H ++/8彥?稪&4踕 FW~裨騲A從鸗姰炫贾邷(矽?q8鑫)恘無殝#*(>~踂#電E()2桖熸翛灩,gr橳`d韨3l騭坶H~u ? %兹菤Eq7Wa瀣{琁躦熤攏奓怰Bs寉佣8息饉溞カ噵+籵@8=Q-鏀u($y搉帬pN鮶&>@v蜉香y呙澕l颺革伹鉉 {c疈)f漉Z搧*亖88圉眭)枷驼';8rq 贩苺寿惯晴埴Tq 屼砾x叁埘Gf爝6z駺镫遥M粦A 牉牲s荶?3e朵熆蝰烗G獫L霪s繇9(\韾屼g蹫啒税0藔它篆M絜谿葺嶢?昋允堌 916#9gJ&鍋# )輰欙Tu9<攧7围#;~u鄏{宺h=仫I7$嶾鬢/鱚?陿10俿:伭述=*I4. 鶗術癄鵧讉*渡熔嗇訿 甀銧8'圯憴T4'審疉煛霱!峭鮔餦9鐅 癤2卙乳申H痵罷%鐟 +E诜CB2 w g酩扢鲝+岓箑>ⅲ敀靝L;敖絿?;鼱{S邧X穬:nJ錅醨昖c憎嚣鳡,p紏9缃:B_?)?拢gT`mS7箜OO慩徍舜u<?с@哊uC\蠁7.葯峉ic'熼]5zRMeI啈U2錞v鄛z缨x%羍 +竍珵p:帨璛{ぺ瑇钱z觞3險6偣蔊 蹎(0s,a>髠>@GUj#鲏$<"銚岉顊u)$屶酏?藠郸"騉藨席=胶值`d抯儵殖4蛰)PN荩鳤>灲*$铢盎 H巽p?*愴蒹m胮~l撓A4gi猫U$绌䲠娯m↓0獦+祥(恲;P鄚纆?绁?,0N\d?聶8'.Nq枝+>^柸%瞫鼑怛唪菩O?Lt顯 鵖 s砼) 蠓$ 銗Q$鼑~y衹G;蠿P 览伾'驙`[=z\0 @s迾 莘挔伭#苞慔*78硐w蠣泫冂p朊w-橼嗞F1澼z廧B$()'+烶>⺶鈬r$翥★@ $噤漪#?鐨 躏烅頖.W岵J餓情@x6斟H]紌嶧>儝H=纵絿.@=若绻靓泤蝌╕B哛~b 鋟鞢\0t|仝9#黨醁偫}顦肷LS冀偷堗朐B桶鋯绵鮚I雉 刲濄v$眍古Y%|阐 H凐Q5醄怗Bq苆皍M!鵄溷?3鵽褧]辩o;q宑炠黴@輥地嵷錆磸3磞Q弊'<* 鵤帆ch^忙煼*0U>\ a廘{w阌kp慩瀝珳怇紸卧R?(`幺8厢O窇H揞3俿泸3妸Rc d''#=8'鵦馉` O失,򯵍#侟豎蝡~v$c绡n該6迄"0X麨 9唅G柿e樁x鋨& 4漵宷虮鉾#鷆鷞謘 狍鷆蚹FVBr$`钌箅PMr阮8憙9狼:捅 +x徠2?A胱"xce豓H踦趕0咝彮R|8'OVjH銀dX鉘吻 +s{V迼b秩e$}弌C魻 +6zT17 +Qc=O~暫脧瓾簌4根傰莕莕紾泜#8我宾絷z}c罽:N3岧jo沩盂膻}*醎w=捺阋' 燍h==>熺謤(",c澫寎.}繿鱆鋺庛+盂渮圆`[銔粶`>颈0<豟zu鋑馉r珒減:m'鐶'8镹c堾9A;>糶尀儊M 8鲚@賃 Z3秣簬8旹驢33 膾O鶴,sHpA0蔷錘宮懓胐樭子#А,娮>f箦淗T.Fo>2j巠鍚m,I靫沁?F爚媖y #$>)v8DM籿+wg!F1軫訮褹%睊e巼 +>摁V)Byy扸 +齳繺詭h纃乁n櫳 l p@v[!R{哥=v儙0Y+1笉A*DN褋葟>齫C2j书 /橷=X泐每覓U1锲迓bC笎闕+ 偰篪粔物輫 瑍G)岓(溷规%邫怓_虘v &硬/畡2憙卪豁E=魅z煣錛囂@7淰\盧3渄斪菙X呝撛渞{廃錚 览3咭樆,VBwp#宇H湑*?1Q98Lol 磉黨噧: +E皘d9"L樒)鄜鵄鉾蓍衟i$*@?#g羹$ 亝+R徽M椞b锩颏q勋]d 8酺?翑樼]绹轨I嵷2IF阕蜹4o 颬T'蘋V怯嘢佭璚煏作.羾,O\幥}x"淟hcY78*聡 8錙酨F噡&3貽?椨#襽 ei2Wf2G聆蹁銦茮,v em翿兕1;忞須~纜3I25肾鋨镜V褫4娺?态OS袩膴13 84宒i2K a9檄#m 1憰焭`莆噧萧2擄N2筶.y髑鐨f 結巗迧艡篝顯^Q塖幑嚣頔8豉廘.1鴼n})v曐]厍<酤唨: 3*牗蝱鏬$摿=7牳[墵o眷V={濵t +@v;yv圹褒zz枤郯W鏆坰郭屐?*s〆3刘堑e藘 1 +;{羟9 紑溽8=N_瘾wm膷儊"7轨*豐vv擏[9?/秡清溞 $@A"'搨pP=-減[屻擐o违C麎嘋鎸1=O枫鞶隃]鍋^x=;y鎬)甎騸P>繃_ 鰼'帩?/錖P羳<徝?*D砥ps宼圁鈥^GL/#訰H讳$=s切ocJ+粈38#壪OJqR靀扝愎#撾蟧|P?`朄莗`[v?,慦哨J"F8'呄∴>镜N蘭bBm9鐷憧嶷"`醁鋚>溞礈X(m叵Q熽>攣Xcj宄蕫e䎬鞢 涚(宺d還銚莀z弞昢鐸es莹羟鉅 {7H瞡 蒼圏奲磇鲜7缆砬灳繒U, +;3.訉鐭^狌珞 嶄鋜W袢#(蓱V5SC湆炟={玳Hnl*汆軐zsUvXA轷n荸2匢 吳逑#鄣M鏙0鋎焈茹鳰7,p3磧鱴a婚Q3n;夰 c姇砀19$跚鴰8蹚\囫羱JPw犄c?瓽鏙d +KB磄g8躩%r62I89缧J&0_3渝圩闓鏎)*豟p檓攘 ~%*Evh嘛;漉v4茟踳菟岜Q弢杏:~V}I\佭瓼=:P咥08G鵔癏G?@O鉏終26~{=薰U]盖菝s 齣 尓"憣3t妁?Z漟$;HU%]P9z5= -銣:0如N樛g,唧3;)*赶蛼?>:焭  x鱸姢v戯謤*r巁鋘辱y誇X鵩 +U黦隤;LcBK搁 +筠梛曞湸e6~耧千謤$,肝馃+佔侇G^繊C柬`"-礦B铕2弋v*5e_篫Uc:縚N9槺ng罳 韤>9e +痹q +m栅MAm爘浅g鮎2'ymZ 鳣莵柶6緢顜]:z?п@馵挤b輦锷S摾雫曆済=rW緾((梶1藃v嶨枫N+佅23痭G酅 Q.=>S眄靫槗 +I嶨縹汶O 览錑6 辇) c$t靬盹顯 B 侫\笮 胂j操苓{锆鹘肯ЛV媖 A +N蛛寸錩\像鞸疽d8; 萟y炘8%1;嵭凗}*吧U数憷鸀邞礩|"A賨駧齴8Hs袔絵癸煩4剕狜鰧~?戶I儍#撿9蟐>昇渓'*~焿麋姀昐澵竩帻1综驙?qC茹幩腠灺/~崄岒}r9銚橹38莑眄垓J痾F8h蔑鐛7琰MVeY-輿n$徏zu秣s綦V%!%]</5!恉QI趓锵>擐綰D{掺怯щ襽$ 嘜筠惞IT綪 傑儉0I蟁18悡惃Kn苝v?忚=). 辀wPTr鄠牅^?L4B*Y崬2A銎?*Q槪蕫C`潣#颉;6 0|聭0>k,=g:I戀V%7暈闕L1毵3僽,纜堌@=Tp=?匩)淚$矀拭.减汩搔HY鞞2v幙( $J瘓-!c恞皢c韺'灱5稩屖IL;s蝄麕x历姨cb鏷驄瓋篓羂镠郏,w#*n3d灆96囀J磧藆( 鐷>奁涹"随)r1伌g熀镫妋簅dH渇F圄圩彵鈹0b$^"Rb0N23訋7眯 e/ 覫3術3Ow$ 曏iFRB檺$gj歒 +飼=劁q巰L鍹妁厠d貣~:炳情锧1L 負 徘/颢A鱎n/*J糺夺橜栛鱍:鍺SEf癊# ,O7胬驚蠞糿ZC苗$熕徠戰8|K*顗喞黳А4袩;頫#䏝S鲪X7;楞疉SIbNi慹c崀yz:Gb鳆訦剙n4榗 畐 俒p8銼P晬Y嶇8鏋c 输<﹍g=葼薉+篗爞A炘|挈.I貪O忓%v|躢 =}i>倗恘=h)構9蟛爩堆讓罅醅昚咮d泯凃刊制-B傐姽g@Ola=:qXs猛]熌T!P匡'#縏9厀+孎鄥邕穋趣峔躂珓,v穧巬I辖惢a/备 <饃8閵1m疙FP01渻滘r9惴94Q皂lUPA飨J痵!i翗搨u=~镜3X唙鶕肓酁?骚#~GqZ仄衧栱镮煍~g階9烰A阧汆弢馧8O愩廽h=3奟AWZ%]綶暼`苦?┃@涊W*馤l匟萵1塍酴yl馌< PXL6仠`\s]Z隗l槅9a滘0{{Rj_4析`烴请鷔@G;p:g痖橛廫姁t 8檑报觟贔H\鷗镗瘵QK酈 +8屈鵓晈rY皉s=~竟玵()磪` +7c栰2:烏0oUv;绕27 挔{j要;X寬v騁~ё圷貿萡噋=圂ー&5VB灳灆9莄隡$!Jnl`sy'縉鶵鶌鍂6镙髲Lc傲鄮! B2怘p闪:OL.G憪}9三Oz`摳b($/c򻵸!$鍡x-尓穝懳哶斿鶊上l|鷘?J<蝀拁轱伛鲼舁Q氨|(傔咷<﨩H粥;n8水2=s%$朢'9rx=)黧f NFzz8呁籕兩佦顪ú輁*滭蓑襁魻 .ReCr1蹴?3a+囏齀 * #嫦W<躏垡澕p護藵&'?Z捣nx$u脒瞑+9P昂!A.K<動┷挏 9F鹄 遰?*#粫欐扐驌8蟶q觚qW莶襭6秡s莩哕鷗]槚%J熃廋髊@尰最鋈请揁虣)耷^麌忼)粌`菭搹Vk23琫嗧欠簖ζ纴蕿s6S鶜禮竩W顉e3焜d卌v 竏`湴囀*禝紨懘儐胨s鵪螫FSz厔9T=NT瀪鲸菬8 \ 旄朐j蜧 蝧4里9)2[熰琦凩,燧嵓q[;/,.w悖髲9鮏苰蹧8澾0zv╖bK鵔曒忦嵼緹蕫紟 v跐A鼁P;B粋:酶L鷰=觏忌錡竫QA楞$擋? 骲-)vo<镒;5'梟A潈嶧A_s@蝐*晇慸 懬旸f"*)$`搥?炚j鉔呔s娆脻(}={焇鋛PF1R棠許W檵yl2蘋閵w 禇=柯 #鍡俼N;Pe8 @む铒)'I誇O錔%)c傌?1咵6云N{幅鞞0偨/虗m8$9 >詷.6虆X翩.榇(Ve?{;wF;X菕cхNBR9i嵻?!水兀魎芖蠷H7旧([岏=齮摡伓977颉蜧`銕鯆#R*s)UV蟁柯}糟j簅蕨葀. 岀k1绫鞽+)*屖s+嶰蔊馃nA2I#)F坡?=я钱i喜VYJT捈8*=pX茮p嶯摮<彧袏撲箐ip3嵞鋵鏺庉s火芣%蕟\澝+s飦煭P輩签篚玾L褼劆E宄$陣螵寃杗絲=ZF?(9 +V9?鐨A@攮;(懴穁`頏鞳@YH亗y?=X,Fs撟譀戝嶤d瀒H 錼J筘h=([L;u3$騏G苨哌隴D箥[h纍愈䲡)1^"#夵辛FI*{s醍峓矱楏N跚89鍃鄒霝y +奀辜皕尫耀$Vr畣Lcq胗岤鲷й\〾)S潷迾:鶳/$8 胮x荗е猏盄醱e\蒷 徦鼄I1$嘸溿詚誟伝誊 .鼛2@Ё嵋0郀\ㄚq傒靳鞵_槍{/c*]褷aU誇皫勸邖V絴3脇qzrH'$rG~t*鋛昄;込9銓廋兺VYe@2湇緂3劁魑G k柟Ur +畄谆t<灍酅)唂8;篱侤=┩0津1繱?C叙z鋥U*5 鏞,圣额'a9楞#覝掖%XBG+s撹:渕>:$嫾y幠宮{蹉柄酽欎#遨大股8>紃;Q8vfG扚)褉 ;q象$$蹏pz/蘊A茹蜚馉 -8罟+蟦榄2寒H爌 c=闲g颡嘻J}靈‐g熸*r槖V''滯縕惨 %P牵瀲舁薵!_+冃耖5 +s摕筠鉘A*礼厾y1o耷y榔xO瘵C禙 +0A蹒5T2-軞C$崁H劢Z )8漶S 葼e ;皙剝>鉆`蕶 ?i鵚 駷哬G钣湝v7'惥呑瓜穓澒'{簏雩#&WjNF!熺U济蒛4呝Z轉`鼕6鐭c覛eL騱怤q邚]WU,.~疥T壐w荶z少#Q籬藇8櫊L疼嬳,帨q鼆玃閟燃@錇2执 衍00帱湋忒nGlB泪皴d兎,蒹升1R種顓A氢H'娸廜柗g9)n3法?ea諊n9 ^嚡^渴1庖偕_%剁唖蹮#v珣楦躙灙2A=侈甡l$肋7 繜8妽刎錉蕽輟g朦%祲B瘣H橙蝦=囉芝'薫凫呷Rav撳举8a槲:Z]牆斾觞Nh6忊鍅_丘咭@Tu ⺳I?y禵!<{沭黼騭 朗{硎褤"韃衢>l釋~g;;}?鋋"dP聵Wac冴9仨('j偶彎s鵶彮! 长F s碜?珉JK0X太眭x +1郭彥貅魻e;2爘a3變Zi僷=毒H龙琊颪 +?蘸 A諺t鶗|妖#廞@,I,<练痏簌S$傡蘐鑢<雩鸘!)泿^(2%aS驎#隊1莸滼雽圜鼽蚃 橮0砦|焃@p9#烵髪\㥮蛼w +1抓1Tl宮晔砬_耀09腓GOJ椽 従盐s睃*gV*埔;週u8擞q2=y碡瀮镸!渨蝬_细靬4瑰喟叽93苶G骏 塓羂d渧?!与@ 蓿倓隽9煣蟥e庵E<2}#=彔厢辪漠 3瞻@如詗閼组樼;0繫蘻d庄陏($0醦H峭懴у拽j掃w%AW 寫翘逓澖鸴觤0岯戞)鑠w`庉臭钳湢aOa霟(N )哿9鉽q䏝S'*#9 r?)0杞蓮{g酩泇1悬=P.#賾笁鍒!O^葒柆 -1侳p@#蟒床扝 蛇胾 =骨鏐抌 33_~;{cㄣ"〞璚v苩鷉沴⺧D蛅逼@?酕詙U袄EA球J[p柒m胾镁釓@q﨔9塂璴@_迻五蝵|箨8镻繡$Ns禛v酁X蛆远霼bWs燁鐍H锢'侀Q:琱#N 扼蹳''敕{P蹥5B h◇ +9wn:{鵕R)鰏$ ^v/赛:笸H32C吆<Bq吱I-aU`那祦抟p}驙'W7*62bI眄颫(垕ae 驋庚鋩u莟\~濕Q跐撊轊腦餢屶~敁J瑢b_茼膟;#V渢'驙n%b]c幞鐫膤<5q&-%暣尺?飛鞶GW泩澥D盗g'麁忬丣驤蘒Z鷐!鞃8鯛塈x 瓜%yE9r痈鬈q胍7迊哥墟惪飍萈け#庉:U]嗕滣橛)O@<o阢⒈=2;SKnB?+eA]!纔'vO钳簟妵LXg鶶 !-搧笯$<~4.Q忀wcm榔3鶳孇*恵7)7杄f  ~繄ぺI蝌r3`zTs唊Y腊?.葙蒙hS后甛 n=: 齐倊啿H;򞑖實纑F;徱甇.刳"死赑eQ兞G隣x0 錅}:9赶=柿輿-''v8萸'9晁熌Pこ$[嫵1Rs'*q*k1,\畽!xz{民 %Em崟Be飳`1@<庡r7 兝<乫珫蕘讕憎OU千CZ圥已@鋩x?梦A'缵|錽箉縻熼M A'丽蟧謹+{ 焭^償_滫髲)崘0佘{S)@縍H燻~b 6OB9鰻 鰈栓纳嶊晾销V0贱湷s頌姘t蝎y 娛管x餃醐 +玊尞屏#'蕦Z晿v(臸 +H鄞03驋px隠"?文扺'xg9:>斆I"`昒翍G<$g鹜獜睴(〒$m刍颿$髑L鶳f*娛pg#G=蝢镵澪QA搃|酇$抭热8闙An yGTP瓛畑>茜9 +蔅霽%T拎cs怗Q熛4痦%X吳 +羄=;~LW憘砀韊^9?氵#◥8*页o筍厉螻?.檕t噆#d 砣?橏>傥 ?y鱅x莂侊I錷U9捸 祥妳処20S囹3岲f,鴫 8N=G=y齫@K欍怇&鋍齛幑8(柪q刞偃0?Z77矰I}AZR畃>q⺄營綆 n圉欠cs蛋!7 cw~泮鵬筨q箁c 0Н坤释"盩璎还蝦靘S!捎p堢= 荺q錔/鲗邈螅翆n1 #驺}灌琯仦圀4厤U@q鍦n噤z銑摍?绀eO4s&#+#瀲轫UU丢ㄘ咐h懺熚差( + 鄖d0妣q@闥<芖9 +UI\cуPH38?堢弊璟,]纋A肭崛齣刴 輕:~苺*-穼哹x3烗7舁n囶鋐R0'l囗'шz~s圈]+'$ns陵O痏蓲 圔侼G^23廮訮h虌"2邅凤黿絷9酲mN膒~P~x鞘G衱绛(p6税#1  潸c#雙`\菙$惘p}=? 倎&摐t裸<齴歡Kq竚eeR;鋗惹^=z巌_-N嫫:倇x=┪w0r⺻? >FO虒眚'<扊鬄yΡ蛞 0(來亐G')$`q砩?Qt繦萑A'緘@@c掕)藣+c ?Q@o,E,v8I祁韲^O紷I!龇顚 醷gp鶁b+唺=;摰巬茿虵6台I\+恲<寔焲1R]d泤l錒n4g縊O鑼;  +膕幚彔腠顯 &Xf斷`玠從SX7&5箆苳F<隣埅绍c(統<蠝S*哤C*0 i?Ju竌n髠}硪袆蟥伾`⑵縲X)莖进f欴q$s鶋)历頽>%歐@"曗R錓Tx5AfH挠7n8#鼕# +D媞㎡h纜芭竚鄑'擑Lw:懛小輬u!鏂斬阔(阕)4K;B騒裼$跬+栁<*続鷣呲侒J徘剩+笹湝覑9w0z)'b飷趡濢怘ごru奇砥)dF辝榔z餘 鮎)0 #d鄋戻鈵!刲堻9nS侂:]箉Z2缾A^厣>旼Pu{H] q&BrN疥 +瞴盉脅0;绡衄埠x厤_灨'!棫$P;q穯G)%S龗戨詮桁別C(c渷3寃淑穴IZd%4aJm穄刮p淑<宍'圛78咸:g焇佬欩6瞷.8#螫E!s膏楚5 H盹鴗〢ei9*s忳罋粸9设庚7=熓$4奊*?槑34袊#q '粝O⊥V4滛 \rs衏 楺P掛跥 I)'wf璓 6g鐝锧芇鄬f罴駨辋vT嵽BW朾pr?狫r 馌犁=讘C0?8昴銺拫򦒯纛?/蕸>bW黨輯瑆J翈衹pH>暟艫 +┥-<冮磉5媗襜Vt鵻V=s齅k<実$Vi98缮霃Q=篜扯w圪 悹袦兦lt卿,称gUd7<z'Xn帪鼇徧懦9,盼洲#t88緷X1`86z渜榱鲲酹韙$P1灵嘽辖:4颥《(U8雉雳虄y纀侹g寭冺@ #MC99郿'翕 頗$搥X{庈驨崏!vQJ$s岭槿上酫9Q菓J崂稀镫@8钇O#聓t料工A(翂R<亖缨5O${B咂糮顼{p摇2庶 .88泓:焲乄i蛊 扇潲琥S怑啇騅m帟 9|=挥vp3象#石籮捥A蟶鼾i厸 c彞8+'rg 3朽c膪S忌v寲声螨~\睐1埤Y胥飤啍!,劎玟#Z惿'8$$輶d簏〥甗 06?哩UH贁鐶?吊#慣'?禧鹷鮻J%揾<癜堇幺Y8衫$~韱菘扫Bto齄tb r?更貅鳡 歐91珐泗芝骕纍嘽q訌缤B翈笈 铥噜 碉8隸Q33蝾\玱暩>>眚搥 诿cp.=*>Cdo蕚FU䴗P]>驴8撓p靯7阚蹼渆_煈筊q樽vA辮{眸/=yE $測漽锧聪禡$ 沈7#郫域槺 +W !*z笞颞p1簏M珤}ㄋ鶐D冮戂鴜9o)儛与謸 " 舝瓑>V鄐遥8忰櫱<义該喪鱿'鶎䲠#淌'戚 A冐镶{S监eR)*y?勭朂9c&q眸v酯藧xm音屦0?褶h箩辑莊C韓g*O3麽2暼噤摕鮳q縥3=3惹过)0;鞊摉r囵}1杴 湝斷蹴Lw&H呂|紈+e 炝#n滕U 瀌+杘,m憜Al:{~f%庒.漤茇 菂赛猝VT埌撜?酫f胹柶銥8<淧I(彦雳藴夺咤銥=2肛J1喘8蘙Y1'龙S三侭喽^Pw1寲|彼6蟘徱%?襹瘮|浐騳Δ扊\'ho琥觲nS傼X涠X0=1螿F篼穊@<& !秤wv=@缳n$-像n聫|鶶鏃僳鱂銓崩捞$鐗O餹;q:郟姧 契f8舌銥$陉╣n阕鈬梔学绌綮)嫋B1a褘1 滮iA. +.H#$*$翕意a*O^?*咹琣V0}nz駚SO簞M臛 蘆褒)#* 1$爪>淧E>梤儛 如=H蝳:訴U毖8 儙{专鞼爒-畆透GPq湝憡D睭虔G27rr@$s殛((蛷扛`寫献硅)蹭(怢dt2靠O挠b[,$|话A陏闉斠|2~B3熀00踫踺嵇#杄Q湊6d渶0G縎ZG*貟3蜞H K留=鑐V #`I溧z-邹s椳=O$d鷖=(d式疼?|廭G_Oj奮cu#G=v帢#R然ス\埌壤隙~pㄟ2,F雉~d?'馉2摶rW筐r}隢T"樵)4X>醄弢cХjd艥d厶尐燹>娛覨稍吣 +懮顁禔g掄錣b 撌釅9鋈? 068鉯|熢淘舱p=塿9>鼅F?鍌俆-> 3鷱珉@,構vRR1闏L?掯═y藘朰鸸?辤s夫^措B税hNH砉叻譂M楻5錨 {+9櫊 +Hx壬k嘡r*獇?櫕F颭仚l鈷f't#灒匔,蕭R!圇湽?玉‵痺go伬2獻!ea熑 +靃!.輝?葅~匆%i 眸焈螇d>j<哵w>紛?諫Iy9e,9<躾NI7>4奁M薯彈9Q住欠4P唷B崅I^z}z#HdD}9#s宺y竢渭傠鰽=8|座^78申z氵徶29; 儗c嶨謹H被3,j?<扝雉黼@ . 劕K`鋛汝}+欛/斪AQ2優s灴e1o 妬罸a抸u跗{=彰;戾穈$0濑>&"环+嶵帲羹>&頨x H羿Z 溷责~u(霫@$>"爞q擢奻N头# r~答ベ穏q砷蜨Zq篎*K`雞"灜鐭SA攬,;GG拭\q墧2矃h伥雬唿G鬆 B鵡Q`Ka$貔K>粼7晁W聐眭9鶵碏0闔 ╮脌珲9 輼堄儫蝗氢1@嘦 藀r +G螒翓冥噤`;d沭齤缐 +屁∪\缮咙N1跂(罶!+8薽醭@9鵼绲*+9牨=09ヾ匇驺烜{伥 <0z幗X斯>1鍒'>暞罳 悙I2Fw粊蝰済僗aHCz[畇妻御Q浼掇\巆Km#18鶂bUrㄡ郭騕恴u#鵓@唃q沏9悌)略1&fp  g宻忬閇焍嵮K籋B4x$t+康XHc嶴澧o屻vч@Ic'棓蜂蘆潬`z尀I8舡磛P\萊=翃&r0>晎轝b*倨;泱軴酉罴q t и能葡煑蘲挪3翩 +mUV寭p噤澗A;K將鋪禓鼚v鱚>^y題M3v确d|撔鄘,欩0揉物鰢琦;幁昹惆瑛y8橴9;~F*A+9腧鼺 贁昦9蝱|唔SU#(ln眚奠螾鵗JМW灅P??aA爡衮GN躷O右>軀~oL叠=@哐s掃O贍鵣6覝徆鴙泺ho)w`橡{惴# 秭吊=Q_铧輻o唿s鵮繑鄵韠{P0[頿O?邛靓y!Qa+髱國裏簏鵣戲u丘z無j,?阵侟顰r覃符t#鍡珙?忀?埙=蚓RJ?伥_焨课(;#澑_閼眵O43aQ篼符~绮瑱n篾扊啕B鵭 摮渧鳆牁纍"$b1>l$泭39o灑I潤摨??芟颀螾"枯;相溷燒泝隢%1綨З紂靑#搱'?s鼅酋麳軗锷b8唼忼稔縫1犽埩#%x<褡師O枟鱟r繓~w无駜審茠97縴捸6瑛绋$塬囄笃摾鑧隌 蚨錬牅3摲尻A<倗煑.输!镒憗徛懃葥N呃 鼻啁~c餩0 翘 呃辋郀?猄鍯癮9_滀t鐝沷锧*# @砝0袭hY +6Y嶳<怺献'鵶HmA骢锟穙泗R?z{$*榏嵚|(铨G蹽1寔0韺`|L|挪ゑ鼹汩休囧箦d拜唼[籙1衜鲟rG琦J颜y.狝 n黪*衫V` 申yn澘/蔴櫶7I*?C窚駨箫RH'瀡7(# r菗訙PK)掍>f$z敁6蒯 懓9f;虹痋詬旙w"4`00?笠9@*\$F3s叻=1@ 8p*z齇阨憘~薁駰$po9玳R(o碏v$瑀'RS皲耧Q+"<:y浠勩凈漪鞞臂 +2焔W; ~紐4釻.% "J剪]q困XX2X4'駛羯P綡bB隼更A?87摌YO=1煢 %@W '犡鞕8(檞脐G0r1摨讖~i彻3蜿<$G阕*l;D0柺漉o跫}I#6栳[炪G"#v鉲R0莂墕G淝蟥詶[潃(辢橭泸 +Rv琌儠!@&ㄏcqr"]i 0蠳?O鉝Yp俼榫 卡瓆X7,"村H錞|0\価01堑3壒yA鰼訆攢纻 -W媗艣)?27P锱)嶞堇哱鐪偋=D]<ㄤ@=?ēH蕳 逍鬡=y颮Q@疇驙-5趭#戯膝p34頳6pF罏J艉J髕丬$鉮2懒0罰懜l倄魁B ιKFX`廽螃YUX%2FG#=c滽囩#9J砥檇秾a 鮎L$D-褆埰,`c9社巼腼@蘬bY/掘'慡nC`蕄3'oj+蜀鸡吨鵋4鹷埬 澑f苬鹄q胧~4e^2,粫輛.鯯xe+H劢忎3坃*e^Dj,⺶猕M锚H汆駧?䎬 0恧T娺+*H戶8"I昫W藔x芑@8;Sw!D9惃*郕?燍蚛 +岲2!3烲巋1現莧i#|($'躏鳹`^:v惴4P┐Mu*U圽0躟r?螷B+c8utys碒q憻槗熤溕GVQ>壽湳LLF呋%P$瀓眅脻On2l垥壬灆1鏆衵弚1髮摓y牰d<`瘶à挧岁x=r9飱P#DT繟#朎庶 ~廀%U,笮8鵽PD叭果儺O?6q鳸s迦I# 6I蔪r  箨}g<&m=齴湂阂)99I8<'∠穗^D罆軮叡勘鬨g'焜咹曟%$J湩9#9@*3lv01輤S喦:t鏇.,'極3蟸j&2 P蔏w熃澻筘UBcx嘴新|遑~鑄鋩@<G鏖N圔_銭Q$a( 螋銗s蟐k(d',7疸銧鈼~飓'v疦>n:涄爦8詜懁e検 峡康"禦=陸惥V邜 ?J浲 囓 1摽駋巠?覟2禔-崇F=嬜=}}p8o a8<~鳔O$勈异b溹鉯熕斎# +.X嵤G粄>驹胾j.心 21甥達蘻V~(昇r>S前熷锨譺盌芮搸鳳X/簭8!彊貫縶茺月BB昩I泪2y_怙清颴Z\慗d筓!A!~V蒇值穷贝`!laP}蚜墵 `鄂P[扵ry*y/E齤3!1鐀; 鲝LRj蛊帀豥㩳S叙}^,泱疥{?摁んH\<z炨H/c䏝譖A_旛_酧钜&~L┣=4o,习6霞z冼?LRy!,Wn 麪凖飏?R罷恟擈忓Jr +鯯g簬-+′4$邁皿V(H辡燐镄徣F瑑|A姱"H8⺋J礽X4m幢鐯{鷖⺮@BpTm}/藝?6Ir!'錽犱'飡夜粞@\痪@'1纂閵襕a筡塊 驉~b(鴙憳#W +w騼傔{烚4剢`虋c $鞳S髎瀩旰4&0赯ES岀從 +JvU孏崼鼸Y憳y朄w1;Np茜'灱}(懾o2HbN繥S嗙籲$+;W 尊I1Y軋[j9阷?C鞞FV%梖'刮Oi +-埾1$磣nG礳=鑢4H迨樍蒲'?昑暤笗^gr峡j1詭櫪(.@俏轝髉傸wOcB3.[x輴H;嵖7她k s,O?阡}` 岝汨j躧飏M)C=李$t另哌顡躊紃砽`/惉rT n滗巬鑙T(g,ō拝萡w捽睅糣Z&粮f +Q +叭 0I醦珲┿R綧8e嵥rO 霝O?^38R蹃 蛷暲 缵怞( Lc'9\r[w#?埅K+?氁+#向禬23椏9?|#,gU墛㏑'審:^/+?贘9 韆亹i瀎"贤禘躢/ 溏vT'仆虓'2m29俳滺猇1窵!弲.NG冇Y髢c+2﹎霅Ww蚇2囡-妩罧6J <::⒕l<T1^\荏,p箟硪B墅儐E牢y脔牲(纀C(.{p鄹揓陌@72鄝娔6G-粴垨"歠61P3蜚-堑LA穽Ω撏>S?廇魻!$f芑K\獛$g 悧b)%官樊v琊4睅6M跦吮]糳烓酽D蝑y 捙c .J鋑種>絵I搾踕烨%p1屋邊9G1H 碱S潂 ++s1PO ++'>=i6贂qT(鵵99<膩β咥c昤Ga:~囍懭+倃;F}嗢嶰轸Z葙鲮赮塒 +x鼀,.昜虗栙唑= ""}繾其尐=接夽駺T烚蕨#禊蹝37剩nz 䲠s/$`p1'?U疏B猠T錐 熢駧逬*;窝珤H馇垭W"XH>Vq!m霂絸猶皧F蹹q錘譓籘0?虨}彲5*坊q忺w舁dR:说J帬駙}隬2Y 厤湒is焋H=跈$"奅`網!I@'欅+妞珵婪\g侩P<肝N/t'79媵%,冨6mRs鵁祥Irフ'譾1灻煰^zP挶捨1搴3 +|堕実螃谻甯C騴`徙㳠繒H胻插圽s鲾:侟=醂3'PR煷#曺K燽W珤浵=S g38 +H$uf锶1v&騏  >匶#U`*(噤l>湈,隆=)g9轵枌䴓4愞A*囎栠N簹=衩颢kq冯认∨Z_ ,>/虪鍨冂9s鑘(((()U垣蕏 -Z蚴榷J憹瓗T憣+sf,/鎬n豔zw8殛閉漡1闹O#兘刞2Fs^OZ氝涞i聊叾ⅹ鏹镘j 涽*顺窟9S儛蝯滮O\ +岙a8泖扬G胠eo3 矁帶呀NO\粝z砳啤叭酺)Uq臊泫s庽P扩h囟永 騃^巨}[;彅悃pz 0UY :u#<岤 +km1邈%賞9;兵渟鴙z珎 偦萵唣#樾弞敱R"碿'遐p`@郼ǜ +'虅 埭x飵:w,lI%Y垥#k`絾瞼7肊6pw3亸虩蘒TR妛:敂Xc*s=幤マ玟T刅 pF0}y惆*+:┠娺1搥點'蝽帟 !P鈯1扏飨畓{仪:%先%s蜱a仵鲭N6!9軐 #该偻E#杝29#鏤┣ 飦碲!L墐挬毡七N刞绉4I"D憱S:gr狏>秒L馨秪P怷卬缉:丂涕#4崠 噐+弱=}=$忍F硫縲龗z`g跷z嘹矎莛9P{溹尀*饥 .L嘶蘒 J韃蓿3灩PD螉该,| w饈i拕3蘛槏蹦w(8;卿}z壹安7俓否c獮顭*;秈u0N d}=yY庡N賷髨彻y刻#*蓫垘=y>驭xZP厛9S聹|鱺`<紖@w2a稆JWaT昄]>鑕齴詁U薌級 .銆躤~灅梵o=笎鼝H珀碜 rO萼-O杬p1 +E 濮!Q8岨櫐> (釙?NO4Tz0'cPr}賊.迚蝣$4婇驕耇萠5滉F:r2:~擋\擕鉅來湉尿(a崱I堭94岅U忣睻垲=$宋wcvFH鵬嶧裵H聽y?O曮z摸雏Р訷Q菒1瀲睜M!慜毉築xp{}j!,-尅Q9>a+麥慎O=柢>I菹?帕釦蹕(C慉暲谝ps9厢慇哖w~鏿)辏熞濖3 芔~S闊詑Qボw8 鄹<`済鹎4倅备_鎠黹@β裞9 肭糕)S;<绌$馫 d)E囿亞齵z{淫洗多_L鯛 AR:C嗼嶨 +?0s籁 9'欗妷吖1罵2T袞缈 屢$圣媑#亼巠历{蟪#0}荩渁B?!歿~難C戣9\c$=M@e%銏'W'i悃颫31!B劾貁g?wO|v 铺~XJ亽 澉Ul诱Uツ',蓝胬c>=z{樕#`哛K.F6攓荢肾7S伙榩I跚A舌s诪(bbWdF妏p\}簈鞰Hah*C般pS8#樵⺗杂q堽s诪FX澙倉鷿刊4/Ub絯:崿y渄廭s@pF+礀拔釭q燎)~辖6嘥i*F2;釒{牀.w>鞎2$g屶zy緍標瀦aFe=;P暲 8Ry唡錆灉酲B蔤 *矑dRq穩HLz侽酭3尫$?/S裸 跚菹JTp\沏珑<硋跚[ I")2钇鲔9=x鐭I鲊7J0奜@羢呄B緒,UVb&z絆8糸赩CU樼2粓镓蹉灊h卬#"嵸b艍pU?N兛颟爧蘺|苨餆F吏馵鍌*(Q1膑蘈徇s喫z 羲G'H没nm(^= ~1Y 愢1˙3鍦埣fX!寉h1藌抸煣|鳔紛/桅HNy惘H)]搑`Jp酎G_j9h"I] 9菭齨疵0R(&Q'8霩:歊_|猉拔I8$s胱鵰迓w綜梪乳寧=?Z"欵堨.e鋹@蟧雯厔r政h6喫邵砥1襣{垥貢車9` 艻A>紏h\#嚿73观2 黳1={E1h]1讵嶡9樾Y儺Hb琝镂F}};殠m+麘0%胹憻=08 cY"@齫俒=谷惝i尼e*椽辍忨嵩姱6雞UW &JeF +阍=篢$a坈U?18,A'槿 J(ySs#曠#囜阉藔渳3擐逡矟抱#y軽t9惜)0&'eq熅义H';w眍 f◎鰕[娽捐舠撣撺Kj穈B筦鑪c濼烠香鵏 嵥刡旄2旲*i=⿱藴)U巔拣巚尓瀦te唜X蹈fd ㄡ[Ж珞霆选鵶伝t@趼 н鶷鎉2鼆'l爖詂-2蛏l 傘8莝詆诪x +蘕*熒 槛C褶1J"莅岸@=佰轻穡隦貲e0鞋艛8鄬>'橹l錉萩睃?v贍樎前荦榚:治煡A |譸 潺#T*瀉.A @cl翥藓樏,j83c>( +( +( +( +( +( +( +カt閫鋤岕霁磩0FAv'鱽蒈3尨`z* 橳唒 驑騰?=rs炪#毐盺詡7#v虄龙擁臛ij4r"6nz赭莮 6顶X得4恠椙<{璝騌寘C睌l餾岭荖恭,蝗巕叻S.蚍6膊钙令 #?榕1裋l煖徑 顼p}:Sf塟B% 渶 q鐶嵩b悊憰#蓱Qr巠u'3座)A(f贅孔1钱s隌 愌鞺苒窐嘒p9?徑8*/棿峷` n@`绂:冔撊懯IdU62?媔郿\愕$R?4.鋎c/∴渜渦蹒趢De沃DB莈a佉涘茟;嘛P'艭\寏45作匘2庈攇3眭莏徧1:+p酁y鄰蕗 U膃@苋2剳摳g叻╠FR@雰朦7杘1䁖莩8:}r>+儏橬A=r8荶|夜]般nNGN糲1壁Y兩9+#疛0>C熅麫忬斱骮&球帻y腠Mo3懙J≥惫9榱銥?τ刀偑n*p~n3濧 cq鱪[&欯8P2琌#袂j坣delㄘUr:LOg惾牰X6 憜蝯寀鷬p峷)0'9p> f惃?1Rq髆9霅z巎幇種癖<'$凎8=坤(仡7u沏赛?圁撌豞k+潳uNA<~UF@*H荿z笤Q+絻宷A耥H袸@S瀜伷@>鼸#獱9釅滣K6×阸䏝S薒@\愀<鶶H?2湋幖v胂|~T瀃邈栧絸琦鏀憘 r34'R巔 z*B'?.$蜊埼:~筒*6 鄎LV8枨应iz溼F>^Iδ'曎蘮(W埑怶s鑣镸 uc谍:8鈽纍捋攓房蕽8`XA 唷嶺a莃z齫 +  嶨^}?覕佥憪f筅4 >Q寔岤z謤澹 A$靖栗⺌驤Wpb孛N8]軖!r$x毓f]肝N1庄nZR%|櫢唣~4'烫&邹U2碱G^窫S; )p?3显SG#',賏瀡?74(+髆 騹z烵\澉(UVi7! 8鋑鷔覉恫.S錯荽.I<酖;彯G1D嘶t2向豣s尊龄歳v0嶡x専@:lz髺*瓹 巣銻2⒚俽刴,;y#溲r鉯f露[i cL^3廘sT岅櫲悏s実'彗鴜=3須6梤6 #顚銣揠鑮)~P郯球z喥萸yhど*錐r屼W狅篆NN謉脗躷燮=NG'啃P5Ij 孹y嵭硄煚擑;$圼1崸蠭 >qR* 掖hK乘*鐎9麟北#霃1?╅訆x,aC 糰F廭庛49潃c箜`2s抯饭漼'憺j8^G"U 懐 +F襉3`渦2I3啶2愯89上S湉O苺蓰憣垏9羉羿鏉蚱蒡3I皘>跨覝Y%趘7椄繮 蓥䲡Y.&Pa驑6畓焅 ?薿)33禮)?嘰琊Е+9#c1驊q寽滅$訿檔赌w,天x8 庛鶠}ipd敤,應`>?锆髪Kt Q*-窃廾3谉zt{ #琝飴p2K}忬鳕,仧$P7gb`u0 )訅I鶍哅*ㄏ_蕣Gr9#g滅'熚H, ET搻W 蟂渟轷葤gu薋W$岜炪豨'#"a(凧Iq堪$幺犿@怀fPQ潱鴱縈繀N垜 yp钽H藆?鐘谭{鱝櫾 軓|憸(+n骳)32@PgV*孝2>Ft/貂欂捄嗃 +熮c.黱8睨{b-L騂鄉s颢go蠆xV琂醰胄=O$醻n>渰諳?1懀寪q荗騢烑P産sB濝鶖瀓s!傝弜_醍?0囿羟_AS鉨C( +]('秔2}N3RW(d痗謤*y嗇晞l [霭*?@殥凉暎吺(茑 栚珟悃v玵瘶莱葲碁剄#懬礔毯d#\╬zQ:Y蹸1嶀vD墉9躵МOS樵銘H扠堄c#麎0棬霌秕│溓5朌oB?欱佫0c寣鹗x请@<<窧瑹*'獦鷰=9雰譂鏗浞nQ氖0 +)o拙>菊fQ厵颹9+窊荢炟1妝粱u#!軓鱬滸鏎瀕浜lbY乞%F狲u帼啢嶻L剱+a笐莃A崹媩銫餈昝鬅\~偒!!&E\醻e廜綗聙)砉螫At燞q髏鐞:詛и$O庘躵Qz懹隫僛*lU%2 艶9鐭UA+慍吧咸2>⑨燓=?288;G"搭]鸶荜焫駫>`q踛巬A颲]踭伓彼抷鋶?v8 +2睴~k+ 蛔辂緸"軌>VT卢伇有熷沶2Q礈1+F,d燉湼荿佟b&]虙$愣4洸鳡h荻*豥c瓼4.D帴]]犁i郹騁* 胳5F簬灓*rb:8l'擙h7m賗r8b 鲧 +\垗#o=G_n溨勾eX葦appT>=机vηhe崣$X2|必 ce熓暣抴n7!h髲綖匂鱦0(卑:d=铰癋躎審棬{酎擘4{瞕}想颒,j粅缙?愈>龇))9 ?6翧9轷訾穉 ti=篵菲唸笌v憈fRC\#<瑍<h-甃:o蕠弆g啧4s锢b纓G=k.83嵏聊|控;=秦酲裙-懠帥2仵-豈-菳8颃z氝:"37v盹衪D#i +z匼g鯛xCr7筄 +G 懴覝恩$ 渆{郫N笛e鳾孎1c=~t僆m匷鋞 b 1_A肒K,@鏂NG=}涤<醻VC清W听 屶\c3a簠}9鈥0叺 H>滖蠣Ztv2挪D!棊?麺ne 圵898i3躄踏滎鷔羿P哖駞p畬N6`顀OR6I.<紥v溏\沭颷+,I4█鍊?{坶N媭d梙3鲙s擓鈥1E鶔\*鸸`{滗~碋畛ヾ"A} 聻搁蹚=s柑麃O鱴Nq=M9 -鵂 hl珧褮飑FB.J钕蘱鱮9硝ザ秗C<毂募彅m幰}y'分羋<踕艪oA/豤 噋鼻藺陖zP2[#KSo惞#盖j'飓p挪嵒烖x鉷蝛a-6d搨^赶_萧-殟护戰9>瀐'蕶抷J宒*渻𑅃?@})埔H軵K晪%ALz你骁穦 +K濯46:湈y厢躴佚)菩z髮儌{幗}Me↘f<.A衾韼剓笃*F祿鞞y讵汕铅A$~5! )$t酂S~苹q8;v牰钍c3;廚鼆~緯+う0閯讵罁3瀝9n a竷x9氵< e針';g:cg獟J0盉屃9|鬁濱繇姃+朶3эX1DLn8=HqW p*郹s屼岤t鷅+a頥閷郔 +r###铙<&H$抯跸j掓)肈#慶蹷楋聻1宑>镜c熹H(a苸紡謹Cwq徠)瘽竓膆鑳z铅}>怌,s时懛o藪7>s骻O*&^- 阖觽p粓"nc¢檑驙 ++ca#> +>> +stream +x+T032472T0AdNr.W憫━瀴X佬吕T侠P列訪宪蠵烈豑弦?萛%+盙 +endstream +endobj +92 0 obj +<< +/R7 93 0 R +>> +endobj +93 0 obj +<< +/Subtype/Image +/ColorSpace/DeviceRGB +/Width 711 +/Height 568 +/BitsPerComponent 8 +/Filter/DCTDecode +/Length 54963 +>> +stream +AdobedC +  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY8" + }!1AQa"q2亼#B绷R佯$3br +%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz儎厗噲墛挀敃枟槞殺¥ウЖ┆渤吹斗腹郝媚牌侨墒矣哉肿刭卺忏溴骁栝犟蝮趱鲼 + w!1AQaq"2B憽绷 #3Rbr +$4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz們剠唶垑姃摂晼棙櫄ⅲぅΗī炒刀犯购旅呐魄壬室釉罩棕仝忏溴骁栝牝篝貊鼬 ?魵( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +(a硨冏i ☉P鐂Gq忨3ゴ虋劏苧q飹kybH癴pC(g矱PEPEPEPEPE0葕踄7'酯F粏q?:妶\Fv蛎v0Js忓ObWR8{éP##8#}E &3懽<䲠)懭$癟0$c9EPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP:揚忍nbE.鶝 拎'9镾2哛PjZR权r3骻>囈,QEQEQEQEQE2箧v鄮A錅c渰煣4+K 藗@K崳畍駫~甫I2デ嗣9^F伾蕊⺳垵8~胬恀^'U<佔愎 [p>k篇p O蘽Z碤($怈_飗缈狉9鞳)q==FG9鷙齢j)牍0(>$>T9麌犌=GB>註!縴] +紷帻NデFr[ + 驂$帩晴JbR苔8鍐9-隌 +飼%鱣v$o肷8犵(<扼 ++匬膾仄2>恐p鲃恟N=(蝠帯姪酈6 c瑳%d2F~['<渢]胘b髼*gP#在 +exY矑8諨鶛1任=[瀦駣咖炔兊 . 炥儨U擕h1%:&1鱅旄'邭僖u镯唴 r萜_3杞;0 *<旣亩胬卖鉘PEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPU孑瀜+瀹g/sc儫@jO齀蒡/闁寋騈3i軜dAUT-純蜪蚅 丅萒+(茳潵鷔K +d忔VP<望硞N?S﨓21f慟#E徦 颉朐踵姺Qw'疼幷苸晶幍%5:9留$蘏+旙-fO!3訯n6冨6褚%((((((ㄢ廸嗀芘(g蕠2>v.Y弊ME+ Ay0賜櫳嚣鶸姡s!秺8詎憸v'摐q唠襽&惔[!I了T笙SL姰W* a "儘脦8?页歩泑厞崑!$.鍾帕娠徛喐溮;"#<壙|燜G=鶳茷F槫弳-芅FX*zS抙cyw*熅r恴裼QYl焧咁 +*蘍QW&鎛?^:v i6倡脫6铱9銓幖廄(Z)T枢 縧73哂酯.Lj]*e陃儏鲢郐qY疒9t*$鵎UJ橱彠袱uXI9U鄯 K m +8;t B銲即*s炊鈘7c蹁s阩:葕枇晢A舊グiD垗6嗨蜧槶湏寋U鹼磥觧哂KMb@<髶)誖黱厓鶖跋9惹迉^9 ++籶贎=饄霂蔟╧皯3暽 +O万擈q髏偽q摲%簩7稗紆镒)皪惾勴H詃)9老N糲^鸼3t泎伖~8荲<謦K耎獶洎 g渨蟖炚JYIb力 .(9樽+9莮{R. +&餔缦脤帛蕑莮r=h笏#箥Tm衫n澢蒌齲ˊeyL12$渀 評<:fb9蓇\湋衟欆zSJY3c亗a-誎N3择螻V斟Ym湮紨q)善 軆宒搼耀鳪K栟鈁塜.hEps蟶} >V禖srB愳69l0鐬G8锟6H褏 +艔藴摀庂繇@琚((((((((((((((((((((((((FP蔝*F= b匾$P繪畑岶 +寊⺌絢n#祏L!b阸芆?nA{慸p$ 绌旵佇巤鳝!訛堤鴝]3謑湌8蜙P:硅袮X踫挘┿?Q@+F&6Cg)b .鲟|竆v莗:绡 2捺3.舗鍔 翳 鶳嬯6j,I卩Wq躈~铷蝳}*吳$x抈@\c鍏:K3亷}V返簢韗M2 D d萆 A\|傲嚇菐:旍FJ杄 8餆究仹磻-筣L僠E嵨襼S湬%辽=~TI;!2~靧)9搴髮宐慺芟皣析l玝N7鲺轼V ー仁慭:疩撠騫/#XK筙!%它膾犩gNF@)鴤輈稒,:枍c`犩?氥0G趾[P⒅-呚1摓胀x夽 囡$劂 溽8$m=G;證t隦 I徣z( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +神栚D?$x32极,A6/蟐W=3>晀$e* 1尀'隌袽芑備diQEQEQEQEUMJs癳8b 蟶q蟡稱\騦b嶵卄粓=(姽TI$槙yI)竌@';睝签w襭$睍THT*v噹斔ㄚo0f5?2瀀g稬從鋟r7惒!孞虀@ 螸u鯛 q,呬)' 笪0?狅毈L榈Z鎉' 湌r#^绨臬)Y尤嚍7\馆3(憳;v甇艫酊WO`1й 1嵓9/U剒}恉1哣8B┪y9撒颹喌(鋳$ukdH踲98睐PQ@Q@Q@ST0-狼AuQ@Q@ }a绷#層+Y嘠櫋[ Z5!劋楞瀞抓iк\:uQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Uk嬰[g <鑾FB撐=q榱鎬,裈沄癡e7Q頒串y8*3n渝埩鐵hF姠毥儢 r'岀5鲱浨鶵寣颏q戏iS<ほ(v9蝧磔7屳*鐭彲i抶嘗岻鸑8s厢@d丒")l饵6N9a漈x(H2p御Vt)觔}≠﨎貮削z觚=霔x.掴$R.rg剚<燓w%2 $T鄰Nq+H垿 排膓姬蘓c滒納嶯0i掄苒诮结u7a2x痏jHw癘1⑸*:黦忬卣訓KЧ繑#;!g!<嚣犏&@&D 櫪 懬硍戕7棅\Oo浍虬c煣蝷:+5扼pme惝F{鳇辉兤v峁 +絳幋已\宵&腹苰醶~u^缙q蹈Z皭兓塘Q鷡4忠'嫞 +瑹q笨GQ衾峅/宑,Z86B2灴N烎譗\h駢驣谯峡^据涾君 "鋫 + `zs颕郎閁睢V墛腔's`憸n将寚臨堃U#!vF:炴揣媇G瀍媔荞l鋺? 惛-b%v2曺鬃匾I篇V! +鍸潋@莚I鐨绠祘Y5 塝眩}槊q;憥=~碐$y$鸉0躢p仦Z胴C!"H詡cB|<p :誘򑫩叿朷牪G料<髝=x鑢#猪鈃9倻e.篌)<侢:䎬 諻蕧Ap猆婍胬薲c;麕孼 #3扼穤留酁怠 #躓iWl繖晱b倂刡 +9蹒值瓅Rm;昬朙駫21嶪汕慷;Z骖$+?iE侾蘃.zd`蹒󇪧3-軍瓗3渃亗y魫k佛I$俠9蒮鐭O萈c鰳熗憫I " +I迳砦2@├卟4-$,诽讙}s蚭穳&gS鰦|g飝t笕q显鲫q "'s贄F堀cc=餼幐< 憩Y靪捥pr雽摉麵胗郧q璠Y|能 坻>^rs荿c柄Tk鈣+/鰓fe 劬=甚ó糛d盉蒱沂胵茭u蕗阝苘4蛳Q轌蘃阹 <渧覔P矋%穣爃#菢8c'>鐘姒.鴙瓓,檒;0m犵8c滙隩[U 崨d +( +s?N貭 mOX泛焙劸T冊蒹c<亐1w跡ん(c+0Fl偧s亷Gf竎]儻.#$ Yq:鹴;)pq连玈y-鈨"y0n薋IYI跎入術筅5èc噊斖澣1湈q濷=7 ,6黉 若Z熖@7铉#J$B臗ーp@<姪,i*3v禄nz炠箱;&驳 ,觱,GS骳8镲@狙莘sb=q斛T12偑罍8#戺囋`馫 厡洢芰U軝*89清揓謖F圧/1丙竟1\鋷欬h鋝G*+琀^偾獨0"iSi佅Q?NG鏫噳 =籤;朻縰7a眄\鸺籑熆b2)}脦鉆犠 偰T!`灁}?# 细m輢0\}竞Z2郾b熂&e!8k讗=z垰虠|溥竏鐚} )u陔髠zsS9s谁债天$磰㘚v鐞@?N2k( +QD |臦 渰絀 馧玛鱭ZY-芴陲癮夘G_^灱'k欌1鯵粉HDr嗼Gd绺霟s隌敶QEQEQEQEQEQEQEQEQEQEQEQEQEVイ^jL铟~QB*}H<鳇篤凛x_RBa3F0r訇NO^j晓脑脊%x]P 眓摓+* (pq(齬缩炳敬 jQ蓧曚o,&G′~橔5鬳|日2@冉鷚蹎E趤&61f萁OP 鍓'x閷瑳Z/-鉟T佩fD v鐏澻p(%鱍藭罅菪缬蓼嬅饔2垊N琀W 7羹JqK嫆0e3懕餙瀓Tv髽 +I(歌NFEq聒SQ218?87c迎B竨2_(!b䥽nTA]逶-轅@eb#鴠筘u蛃雝#迎鲿th嶬v漩*}>n@鯛逺廚6-鋲#>P憙m#犎潴烒風队 'CdS7^GE泱臷氛 庁塭2&鼡懥繱#¢驋j跇.揾弔F谢幝pT c4Jk岮$憺-l2`n埭#渶}4穴j>@t 崨q_0@S戃}?J;;VR興覣0枕=21󔯭)楘|j瀍硣俓球醨r2H铮yk{u湪!Yp鑡r + +*诿q4柼\郉塍7 惽犖A蝬麺i稁$sF3%AR渹蝧讱Kkc鉠瘲r籆唗=#=>魱 %D"[<<`~?匥y-崪 G伭鋥铸胆仕汏Ux珍U`3潉A\髑堥V撑40#わ 渁=饈歔Vky&WR#凄2p9?^逬XV"2扚z g呔~溨蛯b+嬙还}萹* X侳yp憺s跂蜋&9bp +郹駪隊 鰁F憡+側B,蘩鲼燳纍Blm}?>曆I識狗}湃8V哨躦$渄炤谎5袠惨`辧 r广r減y陗^輍浉眥wE慺Fd邌l悞C4媡1甍p[儙 =2}獼H'鍥o餀T3>噌驾$苧g%懘d鄊=}}蚾 审l槼pcg蚴偣鵃頚 羿q滙Tdh|6(FT 耒篆i艽[f夫"gc騲槠+vN 襽Tu隬:*579 x鐜縉滜@#峝侗訏9=;SW薚e% a棢箅@.%硋,憚*0T靚灖?掮榕U敗|0縇SA豀=J泫PDe喴@(珝胿q瀜O?x:圆[cr~攠&%縵F^烗G;&+*7kS垭鶷e矤09閇7QiD頬亜e97g=鷠k5" |膕瀦跚[4鲹x101M镾樥Q偺F2@?苺"蕨;恎n3蟎蹼V#勌罺<>3盩扝琦w霏剢4;劻>`UrH8#冓'Gk鰦杤吸滣闲~TVT+3Kd8蹁s#Z嬐譖鞻1躉=駿e莨y7塢籜{~据s本&蹊w7猑襏 陃餚恠鴇役矍l"rrI衫玳O𗯤嶒U ~],_g 衊p~^凝yR 獚姰98%廜蠚=@咈>LW渄u肓繇I鬟R2)`- 鐚鷆涌;嫾獞闾A彉烎內H":G陘竎顓滕bq Y躵?N溣暠/铳@昴t'逑|郤U湨乒C)\ 嬢O'堚漖堯錱(芣噇E$呻廜Фh1碵O案蚰!藣П瞒=陰t讬Z轩扥缒.鮏 7 劁}k};0B僆N遫飐鞮歵C9U哬@V>by鐬绝 Km\L,X.]愴~ . `:鄸閻1韂Ms髭擰\F-aJ嶣<]鵣兩8樨婧 +)32!NㄦgD蘱鶏 骨?牲(W7苘Z谫穿$&R 貇a驇泲`鋝舌-䴖錓eГ睕捚2丸纔阸忕]kU墬蕰L 郎Q岝'5叚埔\賵銯箞撼9声 0<<鲺肄3 碤拡焅 +枲砳槂)岾怉翥颟(((((((((((d.U胜熑P璁sZ疹, 梜%禛脺=>\笕腴>忊y峄e2O囎,йwtTQ\C9"c眮苲TQE悿帋@噯牢;彞r毣辢M软0T驏F膬佇笃OL譥\邘麵Ajf嫨Bd稾7e *H瀝s寊+A.5_<彬X╓#!8^@9莑熲绋瓹Jt嘕暼|德%FF绷隣簿競y^t奃t%rぉ 8缱焛,>t匒fG萦яg+搸辊5M'xPM祊QQ睴#O榍= +璀A孎.莉谾佄U#煕譶h,J灰2姼9\9y婀莄,h慤VE醁dz /N:*Q93$r菳綸X愄p9+衦(T薹蛏颌#c恲 蝦I汶自庰0%6爁,6葍h+0{ 9甽_枆 ~0狆2O\鸀嚠*7F咑翝阹朴朶硐\/\t :鞕茨萡#铋鱔3焲w舠稉y%,杠A$v泱脎礹]F瞆FI)L'嵺7:渵u廆J"堏4愢<1滛Z峫&f8*惉w敁廮Z瘒(N蠤蟖⺻ヽ楓箵$扝-萪Ol颃q跁UP釘I蝢惜鎼=習B試 谷\`c工\o_=U_绷x ) *G8鐬y虭帎+c鱧笚溉 酎"H氃瑴:珙干y鐝 @ 冿? 苺2*籰慭 懬$ 仧Bq鳹莾除?纲腴䏝#;30c+k拎o艒縬恒=;{=冀澀m瀈浿1蛊pB嶪и臭$0@D 9W>gub9汕9嘀咜 ,.崄$gzT6鞘剤f妉1"c8巠?廕v礨芈$02蒹弢袅轸绛I)篹ug戰嶄昌蜲|笕汩S"!\/ 紳莺1陒E"诓(FO,烢闛瀧8 =磳%顚崸h醳潺泺鸖T蔰巑鶇%泸萔'刽脎88g}胠妏( 囹牉y荝:w泀郌hw识r┪9PU窅前G鋣eF u,zw8⿳#M&|ca闇鐡鴖芝螊纟緁[8rq玄b2塥#3廅顯亹q2纛{q垴'f唅蜁)霝縲隥5蘍玕dpT<m搼轻UZ2颐4维辳( &0y鐷RG隌祒1 +蔡╂0t'疨=:q]-r撽V6:腘2b峝惣i徏 懥缈跟斩5H踳(缕K鲧鐰m\H&錏e眆蹃Y:寉摰O駊8鑡灹 +t"規詉w'枅鞷9上骏a揸k{m欥!躳奣,I'鴛鰻v桁橨蜀A胂<蹴抓l犄70榉瀝}TE搩陒g 纜o8 廰R舙nKX)圏qV噲4(茸C)>橎O袞Yc{囔/&v)鄀<漉飱傠肦q*K + WB +躟zg吖翯^/L赧/k6:啒慫L$a b +0 `鷬艊C紪J堎FK>v8翮8膽%9鐘'嵍矏聂$8脍*[n6*佅 +(=稆斋$=姮始n郎橙鉘[i蚯x6瘩s>_9脼纮q肱u癆櫻c1梳$蝡@n輍灪{;萈曝 t蹠Vm亓=陒徠#惯寍i狕乡诘 ?h婇0宎%QC2x蜧筇觺m02嫩蘤>c怈+優惝{=c[IZ鼗攚1Ae$d亷蟐$夀O0+尿.v懶.O\哖哮V?$Y唂U輗@c嫌 瀩5b9e宮u T^U錼国h舘+%薋樏H|礡 0 t)1虤剆垸 +3)6*s搾z琊л I U坟~G&7 H;IR0=舊y'[ !6醾巼qpxmneo'钌1间 1飼+ _C缒捓 (囅贐0錢滜岀)戁-4X(a竻q`g詝)<袺8ICHQ6軉鋎珏蜪鐸鰻 dOt@鸤++社觮u%叅扞)h袀 8'崩5.3劾汯8!39厢趻驸晚鞯紣\菢r蹏Rr颏q橹囲栴:罁獋 凊鷰嚨.g叆 gs;凹亷嚀頹稼奯#+*沔O3wO鲙>蓍锻 奍hVE哨wdt茄B鐘贓ApKw儞=3i4埐KQw邦O\T㏄6哢繾1忎*M鈝2琄偸2s聦摕]^窌d 5l獑 +F'8削0酡X!菩/+溔?矡疛嶥鸇盚沍R@w{.鼡M陬#0F0F=8#身:PV +慔橳獤r缳忴V勚K-*﹑]蒇vP3淑儨8弰奦W`vw 湈侃韔鍐趚] \獥8 竢q烗 \秞臼|J肥8E黕劼!Au駷镐|眠焨q癔.饄輧獢+D殖F6>_F>枥寥倾5憂2屠繺湝TApi癫Y?tg穨чD搰 6(螸/Jz剩`鹉錅t闊SO邧~掮P'鎬4檾+3G抴 悾厯蹘x锿2y 糄 鄙C 鞴R $=N琗钿"磖楏Q9-阺湝姭r辌惢怗$`?=T=A~0澹7嚏9懳pz岤摐溾騤腈+咈 o,G呴翥=zB dN岽惂訛赶B1詒zb#1`偃S骵=y韰牋唌Vd:Eb堦僿?($@"]欍!d專.凵艪#8'疭娤奾O^\#,轤臤L褜旻:亷1岦宁@P冴識模 籎 泽磶紹岚{鋼臰抷澶V.懋ピ0^IAA"膰j騪*蹉->瓜z敥<,2蛸 侤闚z箫(9'&I0>勂]Fs:#>敄乘 燃6d 騻X嗠穙C忣噜vㄉ;HFa 籲酥橌樋x%蜪迬湈嚳缭MJv朣辣K萨9鋚zp}o螏=j釯涃I悕攘櫂nz麘D@ ╁A軠駳O$df +'孴餑95S酞63忔1臺1F"i銓yg锴廃z灤z茵藋)bHu 郿曯9'!絸癵e 猟e.8C扤s彮C-劾QE +樆v湝搸鳜蚥窿蘈闢@M$`0螮辱}蝖z捃墷ev3(貍[0Vd娄赠C`e#98襞U痨7鷟-蘗HW*B拒簏>摘鱫(y"驐%K98另蜤g5巘藮県咛Le0櫱$.襯F迍w苲謅庮(ぢ_錁`0x鋞矸ui鰗枤詪i_,窱责wm飹y黬瓶{ 叕s芷dbv*+c儝3@鶈褶>/瑐鋻.I8妽^蚴%庅d崍嫾JY['鍲n蕊螦"篗?Q]JX鎂膟m#缈缬睖sY&诺T*剳w檨V/蟩3`X述6,挾晴q*s濧悃… 粦孳K-蔔缢搇q)Q灩8羯缈z衜:)啬"4櫃 惹寻@慎囿Pc #N< +m聻:*q熤2!襜蚨芐 $o嵪8頖~3詁╖粕s移c鍣Ws&9輰宑+ x恘h聮c铕齷AV耰濪l瘛邍P7Fg管7#4!勾晳\闯&\9赬3訋CX咊A;e固坬笴8:t瞇m2G縫c. nzー1璖m-飧G5 滻`33芮?轄o韘纫$UW 窚}}阓祗=6Db埀憥裹洀鰍舤2楱壊HJジ-; +1仫擑2 [XnV粌+紟A9I ;诪z{P.龞u琡9憘=}涸薻p穜榥B)9埗0舠済彉"磤DX罵# 妥w7P^訥m穓Qㄌ '}9乴DgvA鑢1膻}*[V1(`蹭減G祎,\>荩fV0FpT駵9銓巎揁R 6$裣退ps9绺9惴W髽89S娱TVy]釆穃≮Gq舆昺郊edH萓偽T9'俻 陑銉秜j垨搇狡9绺;89猡D]牼@'遵檗耽觔x湯:>(chn17腴T惴劏!^C喥x衫卿NMWX屴Y砀<価je碷蕎:d鷳貃T8諵谷9錌\r}1歉6Q#7禙8^O#L耠蟡-*8 +Oㄏ鍩謻+Tb户P >冱*漃<说$7?p搹^:鼽狪U鉖E称O 邕a衶Q朠:X轧#$Jh$ O~捡謵H[伻<膻qI) +秃$M墚迅'щE$wd8Q鰿 H$wl>I罫鉮 =8缇*;d$袔q@MJ愵\笄Q僎湈ば帞<俄 !攤8!9觌U髪8q +c洣("嚫.K;稴5Z)囙崩9縻狅@墅N鬺屶渳8鷠{缈#*派l鵋`*昤T怗 幵闦ネ.J) +廲迎c貶抽慫惂錚Y珏u G8=:骪.飫bX汽蕾炟'?Z穥 +D &,韘鲌 鄞w嗙刡|岀ps湊=yず]奵憡 a撓@s俼rO癸翸s秕鎦4 $偳╆S@瓊竩垝1揉梟y樵T $<曩翆;p3懽侊YP傓刟 t蕩鳖j勒#f辵R0A99<泮 +洽4R錖辒H9麪s樽鹋H挮踖cd趚;簈=2O#欍&Z@N:qW穊&龠濆w蝽魻 Wy訚乺駭顤杳餚9囚C' 兤;<渨阖SUp(\鄠a荿焽昢[x@6*岫$懮銤=yt蔷 rw漶j捪妁s#笪FANF@畮茈睎:拁l湇鳪鎧!京xI%勌 #胆躀}bn娲 _3?+?齍_EI"-<秦W追nkf:h%g塡 甇鱵兀6駽q%J?$$拔蠺蝱蹉衃跥H蹟A:恟絳q哂緓/翊顃 4J$T0鲭鴙6 ㏎7\!Y鍣@?=8'8R洍徫筒'縊On3託\#vO1轃蕖牢;rs優3霘劼*矸-:刻s"t鬁估 塂籸NCI>`蜰q@$qH;19埻 S驋嵣滗~琛VbTr靝踧拽_n+汃欵%俓#y禙z醐X艿 ︰p?/旲9限9 V?嬣磋鍍;D 胉熚4鬶鼪K-と廛舜Y儝1aN7[玔棔 W梔HJFz濧砦 +傽7}糶 繠['痁咺宺[`窕眅缣@v禣~儙hVKx鈩芼姫踌< 潳c鹶Ш纆+滚嵾r笞#闅ㄒ嶀U6釫p(q蜧`X熑鷉胯& 滗鮃摿?O讑休2橙霢F8;H砦v觪oE埼 dn'I阕巣g蕞3Cn筢犱'┆韝%k朢&%)恱蕟>囿@K**~% X(C貟2J鲷镚灐敩)礣y&銆鐐F斛3]o旐阼C全繿鱡鼛:笸l,鳖.2RL綦嗜O娱@鉴5;m !02d?窤1颙neJ媭釂vm;廆q岝Q?要$娧&X蒛T鶉 肈N=2翮癃"此""庌Zd +v惴*喵h5,d 崶佄0刮涝2\9m賁 S#Q寪槛摸灂2(·lb?篃:絷\+刃0]人/鼓嚡ЫX箲姴堠 9舌鋤s1ZR矷逑+2,壪$釃岿歨箥鎻2:Vl钰捓c粸湇豩K8 +1愌d倨Oa椣('Q湭&啵滠F:扥<广?Zc2#+'?0`撨璉=*睆j葎g哴崪宒t榱*负岎9FUS渱 巖>>琌h臧寛敘籬薲篦成=+>9-劕棘2vpL煍g范j螞4+,蹠槓槞徧s3植銤腉睉兎!{1瀩W鯛 <笧臬郌汙 +`s灆55多短F@上渣織帧7冺>j彆8 @檫 $S呬N天db #tY<{吠荍z Xw鰞?1$< 抂耏&恘I9 老鐨"rp6}介蓪*1=?Jou`~Ln靳翩j暁6dA:Ns炚I9`X寙-蕃鐞6澣 ~?藷邠 乧`70EU(^絳UMF軷 轟鍁傃耠謵唔&1#轾?O蔁o虣` 躃Bょ岨M道弞%尅札制 笤m5[nA鎬y痁 y眨拁a熡=<鹴sY狗騖>刣g螵晏刴$s黔]]FG內 該燄黴毃囫熇鐘2騝q$斊$uド=)学樶w*鋪8欶 /I《呲盪$撐銣侢8$` 袹'(U,pM!uCJ>GK寸·镽)#?Q@ +K>歹厸扏}盋侴==卋J)}9苶粀鈥B豹H 雿螧9臜罺t8斛岳v/窗8谑:"F3跊$ゝa亖'懽俘魼 +1鼱=pAR壺辣砿T攃壠I缳*嵻m 如9殍~渟颲嵞2c"A(#俼懴=盖╇@)$け,牅駺\d饅蹒={調.wN虓茑箸?唈驡i r鐈8 鷊"┶cvu蝼瓞0怉<~&X簿\h厒厮6岱宺H<銦氓 +&歈$ b*囨c蹱樽豧堤0=蔍k h諘[v鏕+廇=pGN Wy#尓瑧篇 葎鐬+抸4瓮9蜊毋髗*{頖F蠡 +FyzO厐_趢s脄x纸bxD狲0鄄推~锾x峬EPEPEPEPEPEPEPEPEPEPEPE5貿輦獙扤鏽1q鉀X溻3#g;柏f 必2U慩鲼<撻閆d 葆淄葘r0q瀫撋舄"p/t鎵[蠉#b钨 亹0q?苺5顄 ?得o$)p扐 抷閷u镽b8a]F8\)#蝣髤;后8>剒s崲H嫨墁 +J錓劚黪d抖R6g(#i 蜲ДW婻-2剌紪A嫶裮>[8胂N=4栚狧-谵▌n,\牦蟴>[X[-膅鋋 馋粷=zp茡<-玚〒滗w'嶾 寧繊[嫡c捵l7Bw*I*r*:zf眜箙努X禐?*囁\ 撥帳鳝}5n$*Y窇Jw+`凃疐=j铒oe8+苧N?!<頷顟瑘#BOQ筃:鐐:廀Σ9原\琲塡莕T 諍p鹰 +*Bいd嶯帻3蝧酾 )_*技傚qg 撉謤$8hF>;1觧q9=i栁#JE m 嵞搼瀼腔+J[(aF|韥Kl_欸蒦s豦G^z,046信B7笐辽Ж醅,e9Q莑CBI9峰>斍穚 哿頗8?听(1'橕6rN8涎G蠸eV%胉嶰'?)B<坡6榍搋臘T鋻['廭{8x蹫6琰?蝘: c9)轙緉-唆鄞琰 m3!q 羆~建漯0B倆OwFe~~潸r%嘼膕嵻駙O^覝ln寋鼰;r1料篾鯛握9 软璏枢濑a壴r?^洷亢*惏肷o\n3<二4 屫 惜Je篢玱#\燊國訢8# +;偅 7性[IRu(1袖*@y虸nc邏wm<箝Jm丶d岒脺 鈥"'"挃宑=(( 鳕$佋肖2噤鸔躾嘤鉆$啬 ?甾!4芝0З鋎z睨{TC魻鼼禘KeLx?鷅< 鵖+侳辸_隌1wD 1攘绶筌}i揖]'-/,r鋺炤N鄘w颕&vJ慎Ps嶯?捭艴酉斯檞翹繲{x#兣Stg藁20H苶z惴4拿 稻`茑`濶8閼Sn⿰.獈V憘s鱴镯4禽 起r'優烗:廫Po蝁K`甆23庄滕舆Mh瓮屚嵒O'wC影噹j馶LG #蒹鍊趕亸8霞<4=12浬+惸駷zq鈥3韆 m竝錕$鹓`醐て辽,pLj矑7$g8蜲ДW8*貲 洎 帬g=~緰#惲""`鐎訜0儗:巬澗UY膏鄋圏篪誮楷=3扐8?L箜鳸 +6劇滩0痏銭o=嗖鏒!硜+夕跬t4QEQEQEQEQEQEQEQEQEQEQE敶Q@WqH%磻濫佇╨蝪;c狌Z愕铻j;)#0*GB}舫3(デ堜W濜u雮襳;攕@hVox$E% yi01礛cl縩-搂暡C愵А$w鐜儕撁瑝╕3鋮缕H9n< ~罩蚢n\L悹往r王#蟴<-桿檧rT跋筵<舢-"@茆C(1惜蟞俄e猥鑂7蛸7n`x^s呓t燠Fv栦 T紙Gcp#我d扏46b8鄏6聹.GnG伛T铪 档篃鏘e矂伕q叨:廫揦磫烀,鑷 卭攤I鐭C觼熲:8恝i漬eU$亞惝=q-鈴n牌吆2p>炘7O&59迦泚儫蘔7猃\Y畎预1呮 $ 1搸8泷9c旵G"簽AS恏-谢㏕3粁(鄬缈Lq炚(鶏晃 c*VUe*#哩图D摲 y<阌廕枮a}3&!. ).薖T侽岝GУN耠K@&0C+艫 ┶鶊撈@臜穵"fp艈愕W9む 憸zV婇柮暉硆:夵)彛:2矒耕 8犩懲f荆 顜P抓F@醔銓悝襉O猗]J)ZB盝緅坆买珢<[j鼩%愑!q儑蝵や瀮璗椕h漓簱0弒焴嘈K璉&G h虱A0砬\崳:雳沀 涭勃础倗鱄菸I8墙>o '梥Ld澒鋛巟苉:顲紗#槯b嘶lcpv阌<X]U涂,J厜敀鄏91梀H朹/0P+驉=z髱Jh耙2间71=?\Uw廯堞@3苶圁鼋s-6呟楞#孔9阨3 ePv绶癸EJ.d绋 誌缟滀g*:0q渜@ 胏> +c1c94敗I酎(ホ曷愷z鎬 +r9C吒霂絠kE8笕逈J22;腋]鏵J鄒袹痯{RP8499銖謾J1巋奱舂璖{鉵顈>姜F塙q拽?Nh蒖=躇揌T倅CV-y,亗惀晧荗蓑敘惉=GL{wj炞[p!{恾_旭Vc2yYF糗s 屼帩O*翨&銻閻{鲰熶q茀_0瀑mc尞嶙=弱T!尞"U$r0熇Ы"爑+碻),犩语v=獿槜i.F]X)#鞄蒼肢D"祳Gi#2饛答#;}H切c#9=垨kl)fS(臎 //5,z| 6A8蝢!礀樮%睋998閇67眣P n俣>ya人 1佅(煔呤宮YEA#U <<;s,M絔遠GW 圎(珂'犵灲kjU迹.P匲8R:d0G縋8 嚩,L営皩 1憣嶯y靬畚h"O悎遨诽o-Wa\渆緲'怓3氷,}巟征韉莼嗘<#9甪&釨莙,I>躼兀譾蠽篔< 篱 蜠>湪 +殍((((((((((((琠h/(各轾舛Ju楸撕;緃Xk宍熤秥?>Ёy伯貿蘮廊琦Qk+wu埔⑼毙g#9'k 糱8$(9阺@*俳洫3r6磰1"]7 匚3+%eH糓81/杝熱笄c閆鋪 }h9<0_(&Y箈 l``濬G瑛t┦0萊擞=Fi嗈籐Q鉯\mQ 樢昀/b咂雬W$ t檑虧P豊扔藀0醰桳9Px=氍赴盭轋礡閬指鞧熘殮060葡篐~牅笪s@$6鰏28貛萓e?罍=>嘀=䲣猪5諟R貹bL A^zGLsaRO*刳,[乱靀(Oq鵘櫘氣&HI\摪H\t*x鶐q犄殠5砭U;巤''=GLr:S4=廒,H豗H 苞98;眂㎜t駊eU匯\g滖犕Qi'}X蜀4麑{O掭^甏QEQEQEFWv$qI&$瑜Fr8汕5z莭R錰亢峺-朴寣熼佐熩棥!詙>閽 ̄q颷F抦蕖稘=彮6HFv錮d1逕齛锧X喝&豥 G荟螩臚気醬衐朶`鍥憧舡G穐鋶酓,懅rN8焠泅{v崄倍R:紝8蹊 ?Z&4K +泚h{姱%洧y鯨A$eN邤s渀z鐜Mh瘩<已佹憺[$侂慤菊頤軺羒戫=駿swk2 +0UP|n麨y蚐o<盧孫奁這O逯簷u倷)$蹫考2c軄佔玌y&矯皥濚鵿c鵤s挥qn潙's乃削1腠*.絒朢眗坮[09.rx斫#Y瞄9 +覕泥Ty u縻趢霃^澇@垳沐苶x,Wq* +x,囵[ +z枣 觖癩+競|赧<aj廊虸'27cq岤zT実巈K圸9Q!刍駈濋b扞[蓫T吨枨$灨1鳳V峫A蒬=绉l姰+z JP!YH{瑛忶B風笀4濰@iM鄲}蝖攽滛檓峫鈸枙C?SPcev治鍯帙`¬q舢徝 堬5 錫峁霫轱鵚Z0@)h(((((MG"嘑 4(扶}?钀湝95R眙~裪! 貥`O$紈'*瞽nYxe8胵魻 豹iE泆憨酀旬y|彽P評68蘰h$P'=3Z嶝%崓!~N9颸呬3YN鲎靉L跨緻 `蕇 )P@U蒡鄎鴡诂 粒稶v 恉%壡|驦齮5@瑖蔅┞ 撥z烽U奡B寪1亷漏f(榟C怉i:`N氅(+沊萊;?煭g袬+獢+掇 僴T郹鲲湘h]^T郾#nNH'0{毼4沎*橃 +U,#啁誩/鎄學鶀O鏤b闻槚c&琙_Od艩`33鑬Uj(套34匟 遻抷蹁灥]N巔z赈饌\i0M 铆虉瓹彄憸q鳃骪葺嵧斺'=7t?C襽 89敘6h贎2狜>佾v諷0r=z{[壺蕸斷芅‰躊z嚹錢悡"Q兦Ns=A毬璷4?埬籓蠒萛8爝z,(膩幢吗$駻鑯辄X$8諀雦郭Y±r恞'>wF畐OL朞{★髎廘鶷&rR6xN,*0H9搞 餓 &&埆F +╠峼g瓽藢亙8燜幨,┺#躻go39xt闅 ,lS唌蛼\2烒樽恴馱nヂJ$畩XI毙淧U菄奈'O8g尞袐#忈#佫 +Oi*缅軤属9'𙇇F曎鱠霧蝅9.~顈阺驅u莕t&>飼寔嵖*9hu~nw环6O'#;倿'pW尪骖@蓓C?诞4蜓 wp:0廊p醅雼燺3;懟9茿弱^1\p%P戗癏J葕 +澷寑x戣礲5y惿$籎飞"敫r柢z3Ko ,?gM蜹藛S`办H蹨3奲e"#洇\O轣 驁霾*⿸?0鄚Е@靟O益)!/-炟b:).臚`宑l栢鵟d熃 a佇Uso0i*鼟[?+d鄑 c廃話;F袂蕡巳R=棱s仳I>$$濭贔[鵹 艑L堈 `尼晉韤z|揓慖*豤zJ鐡顯dq鏾9nr扚2I8韮\遴 +酑n贘鐪}耄pd b蛘怖 +偦佖A雮幥9陏死任Fq襽;/.嶨簀寮 +G豱"Ps楖孕EPEPEPEPEPEPEPEPEPEPEPEPEPEPM晭茯O╪呮gX额鵶郎轸C1c抮~)訮F.靂L噶x橼剛8鲰躂,漩莝鞷袬[I瞱曁Lo慷F鲟赧瑘4 ]F0鱒廼, 炼6露?宒d=O閗&[椎謒綦kx蘲N砘y$3偿舥捙z$饶y亯3恲 +籕梎)驌G=机R侍憭圿8^繃Z}.睥Yh|栉坢腚购熶5I$瀍{)3蛱q伢英爭=繙袽8(菿}JYw$26蓼9殜伨$廰叄肋怉#ilp 劳:奻虮憄萋e.2*<ㄖ1鳊羝扃缵/裏碴m缗交J*芼,尞禚=辊玽遡蛴韃Iy8蝬苶z*接芷跘呛礇崃②w栠|饦e_wm=x#锧辁:宺蒼dr蛎躿sW+KIoX%琎HKK蕟溴筈灉肢O-躴=h>i5)貙Q 晆2 渧=荖滸}oF-5戮dh繞xG;ⅳ>*_I4掅!囂:烲:觘 汭l噜㧏1(/g禃t鵨奟妡秨$峁鐮;骪蛿綣畵J熏浶儐弮渮冺頹批x庢樵べ嵕V坙z誱:隤 萆暏,#1桮#裣焵僪`趠[蹹+籶Ic=廽墙碁1柺,ECmb$dg骅.)$戃]僾 1WOg烝弌耶.,挴$T2腖I F@圄獉1氞@!=鼂詛<貔硵y叭<翲dQ躯續紆狧圿>>葭 納PX灎~U眏敦'`>Bd 濦嘖e<筩;皘糜魻 +亪酎,Ns巬Z}\ue羿 逛:A(_1~`8Q!%彨c=佂aQ撽k6鶼R,7侸犵r~囬5m!;# 午x諑0F gz胪r{躳{fご冺7怺嗂e慡v3寽f穟榣⒉v#g%2–N: +兟V㈢\墭)X華镓~9 璧^蛭搡 訠H晌cj盓q:噮v4扗+)l:鋍澦埨^8陃湺2y5nv9$|p!l兿∴ ++m沄u匱鐋r裥恟Nq鴃彮Op睌(抮7坬摶p摄烺送J-醜<+m +默J宼9碹穤񞉼$尹籓文$狝;y贕)睱w°F"涓蜫騃$倄=)鼦貟1 +甀鉧肓袢0俎猈 N~m仂*'膸敄9褢T帩 +oy0清 蒱3苳d櫲5nB9+ p雴fP爭@駛徏G"喺 +晆悆髄V'o藦悓Ga閬uc!袇d/曒禢硳pO威系&禊貸咢馠 轿聬"J$f蕁e`.x螧K0ay咎、b罦钌l撚#9刍 慪7锻-乥@湿惣g1<巗讱訏H脏獭壛gD_寺湠 RGNH亰蝒b%F揻舎T<憗憹胗'姪u螳熟雰磀p楞8苮9瓂c7J哑f`狞児-嶄q艪'τ:姯-沏腕c3钷6A%N2 +A橄L鈥c0;碻竛lc#艫苝=钩%孪 睰淝朂長0V鶂=s螩&保潱o$嵄r +FF3荿=1Zq墊禖樴ev'-紸艬S@炒jヒE(&:+欘}珶誃霆&NJ獝琬x瓋#$粯煏1ul該戲漯F惉絘9#V Gpz9衳 蝥?潞赉|嶗躶勭语熉*((((((((((((((((*?"/?向撐+穨鸦櫓((((凱屦7>謎訯@Q@Q@Q@ +JriP蕄\藻ER臫,@阸専蕽EG K {绻''4鏟i訮{禂厶3yLA璼洦圬>#Ky惥菝捗B0\zt=氆8鼺d%庩O$j@𘕣蒲俽y鋥W'硉鞀W╃8璨鴒J櫃浞fv9,erO鎗玿?L2n p{∑?杊M +L$錧H椬ㄣ舄}k罢<﹎縈ie0蔋肴鲟s醍{P/4媾蘞 n !簍䦶㎝j2]狈/橑d>nFF pN9蟡褌蛭鱎y掴孝*郕.r擒姝c杆dd'*臝3儚чR禍騼濷囿専Ёu毽ZHKd姢绑#偃镶丱mJ懮 $Q摳鉷溏q荖{3кjs0禉+传虔PFp@錃跟姘ㄑ﹨鶫摕br?~厕訋纨銰窎 闪=冰VU逈蹇稾s}鲋Z澤涆[ cpp濔8猞庣KL儲L甆W蝧8 圪Q肚坛虘匋5謝]>鎞濓.瞄瓼淝qy段91 1苓O谓>莆 T贩]抱┥'4b((,埲蔉A曞q+坳1<2l-'#虔V<馎h麺+彅崒ц蝷7.昗 +k绘W!該蟹 儛pzt"';#幅KL<`骑跔筱 x聟91}至1'渟戣id磍霧郼9^1渢P幟`EP( '>?|l g妽b驤otg# @.X +幖g恲銋夆22)b; 懬S7p  +:,-侨q?奕錽佋弞p媽&擈憲;嗋Jn缪O$妞憡鶎鐉#駬舌澢擙嵯狊=昋穘 +UUO#亷滭8p(x處羱B崓风8限`:匓d鵤橬銻妼':呂='=i4yX皣;q碻鄏<槳飍 7鮓=w0' r{g袑3P9UC惂$銕-_ 鍲谷 M?萜pNq蕬sQ厹g鄞嵺 `|谷菹\}Gz#愳伿惸佯[懜 ~Y螧J\\IKX1曚@菻, +rx A@%箠蜦969F霬7c'$摕蟎U&32磳爨n&\)阖rs粝5諻蛘滠末n崃/\廧撎撎.鑝f鵦8#w<@EN"K囼醾駧狉:8<錽8l惉p#奟>[i胝,1囧%Cyf2nr3嵓搸H范R<秿挨.儝19媳苺2}埅惬膗R?熆5礨HUv塨0ALv閉''Ag +綶 +[/?♀8檓@P那#+60胬> 粖逽)J)𭧛\鐮>蠾{^Mc 嘅赩$岕#穤鯕(((((((((((((( Yc2_ 狋砷Q叮hッL朒l兞h滔恹u軕EHBB8<z`銖J d?3l + `嵔8<*(甊\NA)抏!倫:渀泱╓抛"P+iU &岽麚尊雹付駏鎈6飑侶V镹\檇H鄡侐3J歙.?軭踕[x;姽鷳c駇饴VX蹳撴}t跶\鴽SX# 埔W優9轫虵|C-觵咓G Nzc酎(需7$嬫]HB巔v聒縕 wXc)餏小堜钄W滳c栧耫赤0g拥4膪擁c,@贜ON(谚8梊講Dy裓|併 銡ck毚懏.g貒8;9黨舀1ΜJ┘i魦╦#瞉^擽X嘽否鞞烢y|楘糰|双攒2护q戧)嘥猿王粽科=N婒]C9鹵氤T8竞臌鮖嶪KI""帴;讜扫^J粷9'朅沿}W鸘緌缗髑l鵧~t焞磫娵Y穼鐿"紵{c=3I跟蹩碈<栩紽崆8㤘彮 箑砟褲+髱G?1鶌騖戃袬礂V頣$1a儜隮zBn!}鵁x鵋雉5%嶧:鏈矷我9( ⅩTz'4傹管惑賻ju飲憫佊鶵 馈隙?梛\&D枕f滭fbq巣擔祝 _M?mym遉O簧簜MlSQk橘忞o+薝 *臝嚆7?1笾=Hj趒楙_裤K淆㥮癔+漶弦蹁t剖陑2渻\喎僧\#N:V 0舌笙絚xr鰇mbW孰,3煭nk奵>羜yR筕鋩OO\鶳P$;"BA]武H =谕[íX伒瀦浞鹵 +゜/v6 +琓缲 鄔f葱>nC盢6鋠 曠o9<Go8氯+pv鴕06{~4#fm96栧睩FO股#寀q椝棄m蹸(X颍#qC⿳v1M8*~'(?4聶132ㄜB嵺菠(灎a莀Bph憚j芓v窐莗Cs窂]<鈹棇挧 Vc鱭儍<&獻&蓑姪b9a狼'8輳z斕睭陞Y梿^約>狞Х罖兯Yg薇鹗\+9蜨#%岞*Iu*捖頠8瑚=硴蚐彉Iw/廾HB绔获Nq@f箆屃;Pf7)軂l眯巤1#H;ch鲟堍D令{滬x"!c_晝 !p1躻##冮訏U|布靘 9;懴多{P█.瀉蹏弝藥`k a*2筘彌?zy繀x@j魥(((((((((((() '覗錥Q菚惾F杖鐅~\廃梈朥 aim嗚恉-~a饭蜲@吆謽牟S峰^2N銓/=;~5玸yumsi疄[12 贜O迱/8X恗&-4睜鶗r[Mj圹郗カ綖殜瓡掐=晾钱 +扞樮"扔湺3`鬁U┋fKk&_(I +捘8=yr:s@[Z倜甿-$!媹袉诨FJ#8誨閦|2F遖Q!R<鋩8萦#9繛弃x,R8'勃囏8c𒅅鈤祕3[\莡葓呒轵$g電嶄沒 +梥4焗3G{f燵(i,#督C枃禳柫苨'弍q玬p彩铡0蝰q'r愎c渮屪9{&獁,烛K忰D3駌;g(k[0.;圴尣穃 煑>茲i%撢胋痷禋H?/ 锣撟У3K榼叝nM噄$寣 鐚d?砫 跬紦yfvRb*7旟d`凃袅蝖刏嵺狥$O莺竍姟I9 c<濑8睥{蛻33-'~x垠䴔9 僌-摹&斃靽9Ef荗N)翮猨P琐Ko6 貯蹦`b~雖錇8=鏎 _Cka 备(;嘇鵁螣,谀枛职Ios6&1 Q8鄗鹩矊<泏垊騕,慳X 儝}:抺w*XI,q芟K2C+渮<齫@m&袳詰勝2L價栖宼蕿;垡誠&5,dl輰p善x钳5,耉l+2Ky嶵| +A3?昗嬠3 擁翯渞C鐆萸c鞞n跔嶅{ 鄌$񵗔$驫鶜;E3嶡暡挢腚郾瓭B孬%bT$#ib1伋#纀橌(#` 6寣騱q驻僱ctnAuR搁滀c疩濳澌 +2'o絵A绂rE;L臮x昩6TE1fI<謄I滗9锱W烦饭仚頃鋽y辥 \19'渹;4<ㄝa壎褩b軒8撉犿霁2赲0銉+"粣*蔡橳B乄nIS怚辖j5,O杢%C)S q預T謿づ +(TR1滍<;I强#:pA$zm〢$r,萅葙怗N儗+"h嶓6V%7c迩|pr1b3麮憮-斉s矑XT惹dr瑏x>lc渧 +稰軪 詶M粄 踺贤訌蘥#疛"瀈!籱l椢G#┊ 覺@[瑣囏v货>咱kG熊5喝梣鵛孫懔< 3Jp屇灊尺*鏔袒v+狱>絢M既kk盱2J饉`>鼽 '∠痁庲终%wh轧 ~F黹>獲vNw;╣-褉c=G;⺷.<葇翙%露Hs十[崋,&w砣 鑮z羯Dd敧洱瞰 鉸,r~c湬z抭鋠`gu=i靧k6鵙X犹6&2嶯渢蹒s盭瞯戶⺶滶N([&0FH^欓厢F()藢臂訜񘀔pMH癫,:魍XX彈qb膗*#&x`0F3幋 d湆㥮4l1抯8;y4虙哀'蠷g渜G膌 u黹D錑蕧笷Alcw=")'滓箺 +仚衫炘鹸 >Pr翔2笸_/睤酅攟莬扝鋷瀲觻6v嶝萛 巼渄錣虉 脪2{u窂9峓c@1闉繅?漈謤孮OU蘩y銇熞橜 +绉'娀-鋜":882惜錤q钖画匹闾9羄刊?A娰; 讙9.袉虑堓棇銕貭9%[浫>詹8*箮5L.y<J杓L絚 !D鄋>滖\磪Y蒃亟唖]O嬍j蜄鼱u笭 +^"m蕶賽錊]豛榮羚*潨綞爃遜,紷8麒羟覞璈祚q澖NO|- 5抐 t鐿Px橄鬆 KX/犁v秞摄從饶 獭TmW'錋腼樽$廊8Q椱2簮鼹t5 #+膾1岥琰=3BB曵 zt鱿C宻 楁Y6澝'88s巬1卣Vg,J鵻bp03婿荓O対栗鄳诇忛@斸緒e `寣gl箜晛.疿莔綱鍙'熋犮X蛌徭"89m/: 袂L廞[6@F奤餈V-暵9'庍Icf栻&X+M裏HS绪O#剌掓薔匲屠,F#RCH豝z宐硁o 甿璫s: X 扝溏鲻[1飹IQ鏳脰 9S忈lb-j6忉veY2:y狌bz*)/6F!塂&<U麇姛FZ奲R,哖6=簩` (g8i}~V疐<痱鶁-^A抡鑤QEQEQEQEQEQEQEQEQEQEQER`g=閕筸鄊鵴澷镩@韻皜剜憫歶A2q禫昔蒡弌行<衤5驋紁N椰:翮r讑絳ri摛qC$nH裚6v9:{T撀裫)'怌(!?-揕载6:;Nr#00H鄿鋝煡c[礮郊2v抃梟2q'蔥冏1S藑到捶憞7癢@w2rGC朼软殖qu<e歠舕du2G=鷓{T厚髈 G駺2>鎴 9'9跸C幋穒;j:m溮館LI|摐錻#滕憎W1晴凸@,b慄@e鋚?LV.唻凉fQ朰-禃穞 /#缪僈3節嬵s螨顅?脻9tr韞*$r鹧崩2pH*zj紈&邃稨褈udV胵契 溷煛朋j荗唄$U0I鏄蓄L8銡籸79@铪xBI皜耕I腠@w凡圹柖粏Bd`1旗鉷99>^誻Oo碄梫鲆$"g鼱`千*?c0@楓扝\癳蕮还9=)蜺篶'枊a 漯鷴y飱&<嘼胎]侶'8*`宻弞c婌E驢莍旵JB駚o^黷-a覷鳌_0紱8F :裔e萩3|2塥1?楎猴D8,鋹げ滍=s仠`{妸Y芈Y鍮*挔融A' 鄡.}昊枔!J癛夊酺$曧挡鋷澀漏I$)4槓'︶螋'喀{Lh陝该Da駧G=A镺vE唗} ',9覗E$Cd)躿怎溒馼璜  +9#儙 鲧4械袅kd條翫8诬q咊89鶀EG痞崨Y穱X蒤捁蒦*&!欱叉iTym竧i `戏N轨8圠哘p6:;q絨#pQO疪=&2.c杋圆局fE$餦寑s蝢农6駞u`襪bQ苭sAR23赛馲3lsG񔨭擐M)铑聨+皤朽t2@?t&dM蔨!祊<鞂]q撋#?併#哛d2茟甉贁頡篒?6A溷泆益贛 +) + pI駛1寶头房K啀X+H嚪轓21儊衯隌FX爲$<>+絹 亼撛q1瀓K滼躖2墂& 髏3岀笄R>Z⒅趦{h5pdU1鞑pq 翮宒U9-u ㎝黗惞里鴝貅 !鄆`$Wc潙6I$c迩ut零尹W^_挭垅 贗穜僪嶰98膸芐" erN佥酎閹糣鍐毣bk梖Et!壥湠橆pA銧蟴4蛿赉i'W皆鸍F媹 铖貛湠澓z襂投4/(* <鳋*蹬)8貤N w?(9.轎$vf%蝯麋鼂R}ぇ苘偔宐V1?鞈4痟藘結I釂zz篝?='9a钵蕅蝦8肭T2距a锲h驐a%郼緘象j& 渀f&穚Y媑磜蠕瀓]AQ0闲毌乘n还綦R摵X鼆`N鸓枛焟悾8$灍昢阂 ge眣QI \!=髲灾枀b埪F仆侟蛯# 嵡pz怇碧5%濿$渷嵏蝯`WP +-:<徏J饄霒抂翠( 焅撓堟+!!>狑蠣糸霘况萳V祦芨靬寥懭螰 冢禝/鎷吐DP噞3yl阩+-5つ胰姼<#玸逜l6C穬(ny^螩邐緊l豇0#.鍈岗軖N +戇`VM票sq)+s,q傎er`3Y豔Q$酂N腸=狣E懠貋 +渨w*找u鈮枕銟C<扚s?R_^G拶鹆r炕7#閾T藾棣X'!U涡 +'I飺趑钟穿c秈'億捅2 (A;棷8C2蓒 `D|艻霚n{sZ焞h鋮'0<(孤:q袬螇犐憒*仵\鱘瀞鷸ND尹琔*9'0/;P!>0I萙y8粑x珉^塣k`忐*夈B女硛;漶9疛(((((((((((((yH m|>=痡fy瓭诒瘗 c鶹熳 錟id>Zcv3讙+侎L遠S垟錣B稴寧y例>K碛Ir#9`6嗠:q业$&[+珯Hfi" l専攦騉_鹞鞑J$PO棊wc御餶!{5t墹&V浍|茑r2 ^昷:T.鞂m鞘f$d6}搁湞范tcs"篙扑鎒郴穕gz1跓扽癧垿嵲鵏8S讉8鋞榍,DBD!媑 +绡鉆G春6怌滱%佨を桨s儙0&簰B拭b(yg##亷#縗姪v-*聸沔El+戯熀Y:摓赝V;h-洳鬄菀/9L琓母=3焅蹯($詰E疮眱? 撔)蹑狦<钟埏蹈i𡫚歉彌鄙7q莑z赢..寤屚葔禉釘會-紒岓$鸘-a悍敳(橕愴$q比<銓t鎬4祐XL清芦箖|谷斾t韼@j,B鎖樭%6H=瞛 -バ廨妗貄 F鋟8'鑚m:uk9.10c q驎 +憫抸/,M4硤驉$E`03<}if*秗1uU9bA F3弱cRA肮"Wx犡崴罍籓~)懩r御Mt迤:`s螩衊葴3i<-芻V晌3帢肷荖qI4"(p?q#*#%*}K輎凡y翪pa縱r@冂搞藜孼' nc苁N$g顑聻軲V%KL插衻惛9 wó)vU!維騻岗鄚腮I鞸獻'鶣.挪XHX >e翡佖TL< 2D8蹡'ey#鄁2c襆殦,鹜傷騎尟~/#<~U眒 j獮S蔦犃 '鮐An喃*fm蜺咶1鶂蝫g=zPd膌勦捥;) 佖孭R喝\颥r咰霝I%zdG,`儩"尞T3 s実4R贝#`6鞷I減q#屼Pf葙輄T4c. ,v濰$7蛭OB*糺卑2X矛剶8?(#'濬 g]3<U`X?w扥?廱l *F鍆06灩銘噲G<本c癅面衮恲栣竈拶41;瑹9,9l錅埳3丼:I鏄酭 2冠ePO现┧p + @9黿帨;U sp 盶 -痎=-8男蛽 Cau^Uw鷣Fk,+"税婄-熡穅q羽璳3X疮彆f鐅躀$懒uY晒f/关枉瀤#寁銑bf 邖?绉鉒wgeN3曲P蘤朏d烓鄏?9cU捈S檑*#h鶑?4&q*7u圌暺觼扚3轸Z垩4容D!扅艔a 3老@塵%4>\濅`见乳肱k 矇P0焢'宯鑡E蹁K1菞+36凿溿N?漚Ow,凸鋑q麹I=(貊$耇Vd忣蜾'霂灂愳]aJs窔@8揁爾FI玅H,壖.QFI'梶蹴摺hx鄨咘=窭琥UvfrY'謤b霫d%I麾 +.奏仠隦茟耈,3実) ;郫4縞s5{r<脮p2\0={9 懄塩躝p $=眘;}欯&6pn想QX;6傷愢s熉7&肪譩秺賆垎.K肥%抷c宼S頗+9逄嗘gy'~Y仵漪1U欴汷#;O刊錗傓{ +筺3侂砷@ +<矧 麯灳哏5眅io`{戎N( 怗9鳄彔郎镼剣K叿3cR9_黭*铑K俨X滖顯猖慳*n髑 s'隮祸剧d欒I踉h庁'裹N泽圵虈瓼@??妩,E姆2y锲蛆妫Iq U凝卦g螯囧L穫k砂粷滀>议篟@N諽槹芾班NC~_Zn捣k'歽_肌8`88<瀧U辞洳﹙!N3驏彘{撐c虍e拣0鋧#徎.6)<4奛In7畝舐 攈嵿6prdq妉幃a?1o銆 +{@.Fq莬鈦!x2颮9eS償惚}甏省@汤Tdds湢绡##bX窸腢B彽`)[+耀烃%q=#y#槐栥幑畻满跷-地V! 9鬆瀶((((((((*)d4{漊Y饵萆鉆袽B臚z慛((( 滾睔E撊h5*扖鎟I哇轾W9㈱莝迹*D禿 曥8倉苭V片醬&1他茓+簅-W鷾c廚kI睿 %贤#HX!捝諜g暿墖 嫄q驇q]V襩~顼仢蒯Kd犓a灉詾+Lo03湌恟:t鯛 A7!d|窌"嵜Q 蹒烺j詓繘3(協`懌 ?)强5呜?f,愘E++2SA @蜧氶Cz籄 +蛼箭4兀嗇匠勭{ +y錼krN8lg瘗H梣騎p9}W樽寭P<蛩(*]9p3嵐<汶佒.__o+3従/+夫k2"sn%热俐g璱K%垳! 躀; N{俼閹:俰躠戄e賰煑篱卿z鈥*`o!232zu鞷"疮迮庶末蝡?/S媥氼RN6 _钎lF*橮X笏ms@W&%$3$捌:`s螿 +詝K鹊A鵲偱离 +2鑡YS+^n讪0=> 飼C7 袵訐3@!悳g濱?鐨f煔灎頤@燮j岬單"檘內鼁{巤q千狗72~Ec嵻鵴肢躚nS*bF\语繐.p欩Pt霝亵猼RXc##迉426鏦d峚幅喑uc眸L侯\ 9献衽+ %ug 厘>脽绍頿тR@榔{s +丯帳<劝腀巼v4︽踧26嶰锧 }h謆4vVc衫槔8 5崔J蜦r駭=2G_5s^淢╝wa划{磃88Q<槧誶 齳ぅ磊Ny螶s1灁z! {簢w蛢腚缨Z燀Q媎鞓Tq涡9鐚捛螂扩M论谀g构`J擎eS .O緲醅雝E尮#q銚鷡t$酉t㧐脪+}>撺C,A,I缮憧溤o!旳y5朢5晾 +銕x顉鏎Y豄tw+',AD 间s箂?蟻慠尡2滗"7皤uS陣黿C际,7 輟炁忈躸Dup~S笧>s胗駹 瀀闵Q刍;F[渻懨u泷醛顩虓cf#a]栗V撖O嵞 幰0亷I蝦y>螔頕TV7# 莀N齢O槆`\#湊7c8媵<叅宱 釔梎羏燧2嚪邹& |熔j9 ++帉亏弱$ 禊v]$傎(陓料46垕 G;『,郎搮錅w9g瞢鴈曾稽$蹨e庒榍L+>|津}; +会馶韧箯槫帉s貊鳡願((((((((ve*認G胱螬) R鄳疗q@g''攻((姧柿]窻A#=砇Sv嶅瞫寀8溩潋o薠洱橓娛0/輢9鼽F2_X鸍彸!w派Z烩M庪(b20W +z岏岭诒韀e菘旕然|众渄 儙s妆锧芦;1"菏哺S藔PrA#8 慍>鐸\醈d +p <鷓{揗圝BI姣輞 ∪ 9銇澼苸叞荔#  頊q紷# +传垨FE&妝i翘举=1 PK 牼>7尠枘~N&M娵晿1m軠8' +晥C#+lU褥 軀钙N3U穂Y"绬鵃驡@N8塬販瀭"濦淹"R鵌nzd焆缹炰TI2W╙爐婍鋺鑯^N+ +3*轣H蟅宍d娡y儉A`r吜nxy9鎬&髬7|j@9厍q錞渞 <ゑM磩~谤導銣r`笈痊剢B扚鑸跧`wvB鏿囚鈾}~虙6箦W,W*`帶伬8里螩@ st-菀-迅}粊,涹筢2A霚py=馯Uw8-驡鲀FIB9;駻艵/旐":⒏c翴朢I# +z袂T*鋚F} 驡 騡兞魃趜sP 鏺紀$r|@銓ts貙 鲬疖29`潸1蟣愣赵@壚m蓫罙脎忈a溨lp<券>恚=8<麑Kk裙vFG-8?噉5岰騟]08=7=货玥虱鎦?xw澑閽F銓g痎 0*F罽榒c昒上馻骨:魍M,柚衲鴯銶睮侶\哣榔?пH#勡4&F+!寣g籨tRжUPF栁q豍sЖ隫凑嵂Wy"$鋹;g璖愬$烏i瞊夌f颦b_轍A9< ⺄潂㧐煜蜬缱侩K<)潾&IC;88日f%槗詼窄D豧, 醽C宍鐝梭虵鷐'$rW篙廫弤:b也疖FKGo畜稞(]B>蓂橌驅t 宮:d 簧竲 㤘笥Ah觼?*39谑荔戏闚 詁URr6卨Q萳zz~b渙a +B%6'd鄑鳡[) R鸦,嵜#;囧汕:j!T-d [諦》h槨*蕩埴煕湓q*IY醜PA鵶94姲塂犁pA"澞|?0留忈鎭渣蹋滀G:9 d巸$匔(蒎╢咝d痣粝碗4呖敥w籱嵏彅偧廚'Ia咤圀<2W0I8N俌鋱醛!T\B蝭脉Kr9' +s磓*酈l($dq打x#耠U蠔i7y蕫窀均t狸莦n%櫺 E漰蔄揲术轻Sy-加$x赨1磊;簐9颯1穫4lI屎y>爂擖>IRFi &7r@G<鋟^6湈={讙簢v脧/*A恗%皅冸庿囿QFヶ P癱嵞癙r渄p8=:妕H9?知韑𶿓`:鹯Z 6孎>T 暻#w,糶疛[{v+*#82I煒'怋鋵鱽璟].提w!軤1蒕 焅"UX鎐!柴篏蒔{8CA镈╠&"e柪N闪樽痸禊6G鄲A;鍞耜 隫/A匪B鸃]隊彪吩鲼銈 注I]蓵X2脦飻G璚嗆]笌T夁彪瀯_旕怯H:TC皞QI*dq抨礲跲x兀濗gq萫@W$跋p(1)F徫掶e361斍s竖z鎾K[i|樭虝T 9f3饅搨~_a 齆缥圢'寉c'現8#瀫~9妤澩县&#a8RFO嘗1聴3 v$;IB08さ傘>Y oK騳囗檐喾鎪(+y'VU區I羯繇L篨獯劮+懮?录~9蟎師:c驅澆/ 扜\搹w4+澨幕q芃D玩;`ㄘ鸺灋鮨G栧\倷+昪憦彞Tlg彘顯 +崩珩珫V =蒊O]蟕3域5&庫膊盤茔\橐-!杅-哣t上Cr#g]l嗆$Cb禢莨8<彉鷗硪X :9䝼?蟳oJ,h$n諽v膋刮A赬)銗x闡囥幵]翬+/蛡O捃 N侏Q)pN2淯嫊慍4↖8!忦鋑t04芈''鉾с@辖"S匭*^缧}顑с毄2q秀衧S2 +燩吘_R?:iA{2NF}簙y鮌P2鐆+┯O<}, *s屼m⺻泿2!i咜9璏WQcZ谹Ke秋!;.O螋 XeH渽8溆Ω扜b铎Ilc$灥%孂wL(孎颹彠紷rH&廖x賒 +A 渀孷鲊》M:蜴)w1誌^O0姹.gy,%硨g4,穕#X愢J〢99=i{宄@ 屟烵蝹sb((:({陒EFL髝:毥膴*pO%厚䎬¬k-吜% 汩 +>寛鐣CrWy熆3r /敓命g幅鳏Fp跧鵞傛17/阀?/險銘F惾辌s烴{s@ c殿2湁 #灆鳍;沽_魤詬;灵閾肢'份亲<\)'帩? +出筿捏*{旜笣罺欆 虨偍I+JGlq脤鷞R擎<1(f轎錳w9%曍窊伻炠 =*yb2,b闵:酹K$馵烂c>澓:P锑4m濿iへf斆翘憥帶憻龉衾聕鰣0!N?_c颵㩳竑#%硲桛^昩9eF_儗c倃:窂腜抄lL蓇罵1冺射T屈%秧 +虛t页n鋺.K09 (\}q]弴<;[耍洔镲謤:J( +( +( +( +( +( +( +( +( +(狹陉q葞諗嘨<╆棭鎬.袳QEQEZ钚]l虖BH)圉?鈑栒錈L絀IUT3g籭嚤 绉=k拨KsD咽佈 +懥M軮<雹ei滠q譹檄k qV%!%廈$藨<ㄞ?/j衹M懎銁$鲢岻.峠,+ 躯-礔8棒咙(*MP骂0珔a坼佄H'戇蕲趉6 eFULx.5?脩搶=5dhzxX訹諉禹唄C9x2Gr.P軈P萹 衺=kC矺共膹菔6`N0}靇A~薁矃 壤狼4丶?汥唖(骦H L蒛恇L`煖優q讕z役k稰<_赇嶧.1祲牲箫拳籽,[`X鵗d齀頹暓啞嵺,&M籙@膣撆e酮%該耝C箖⑸!承eS寋-㎏etS卹勂!谕仳p类駺脎雄h趡鱏龇 砀?濋标;U<玸濭觞:q]Zx`涉Z'T6T{尫N0馥:4蹧hj阕Z錥es愄[:琰瀒潫餄椒3u|寕zWr4,>*聍隠傽訝,"8侎李=忕@匹qq诽m>鄌沨')n5[蹠U杤tS昍㑳踈xWO熖?紝筍 +1亷8蟂顴焻t隮式 砢佄s盂#擿嗣溣裔悅3懤9韽z2M3蘭憚*6鵃Tk釐,F栊 &鼡偪靷1堑y>{歮wA趆VK扝鄺<e掴悃穇蕗8哥(帪謏o慈cc0<n<觚y?漸Av{W73<憥Gw!o哕酁W徱8濎頄a訉揋樼p鄎蠾qf煙踝]伎麺饐i唧陔_&8_1銋9=? b=?* 涌绲艨麺饐i唧陲_&8M韤2p;Q笐寽zWwf=铳鈎3N炞饕4 _r捽秚2?#O夯烋旬{"仠焃砜 涌绲啐艨麺饐i唧陲_&8:r9Dp?宮?L凖w_饐i唧陲_&忴C4稆韜}/@鍋盐>譻u时%du1*殿憌cg 帐刌3膝v觍檇&y稖鞈丼趵?齶/䝼8上z栚阝騩.'朙g +3侢q' 錅WCQi秢,f9c"尵0:珉糗}2@+uj庲贗#槏x1歭堈硛榇銧8'9黬烃$.懛L-鸳H梠RI嫌疶V[8弩K鵽y邠朐Pfx虗Z2紇獈7錟-#鞹;伷瀔}|Hc庌 1便冰秉犋馯锻璳FW=z髸rb!$d灴囧N镭]a馦 禾酖獪A?!拄Iw泴韺7䥇涮  2簖i綠遷琱6+撞倪蓮M苽睈{|嫇砹(6变狁帆g奯睅v畸 巩.=*咈d#69垸T乼娒/8%切b9_偝 |軮杓撉nj_盚狛魘衠巬??J椟IS#珜w8﹡悉d'#$.G z仦~T=嵲Ye`2I(x9 濭?t熉湋]m鎀(偨肮切/8k}眙x穖 + 9蕬馃瞥铑lM矫3(,x悅辣/7郍瓳75儨╄A#鶅^檃3\i鲇>7骨猕U/鈻9VU3#$侩氻魚tk䝼(Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@s5尵埇:G2柄`忞] cxE劭䥺缧(鋖豉涸垼她淠鋡生舂,飬祷Fm薵t戭<宑>,Z揭>c?-簈羚е)萖gh\z僎m`NT鋟蚷M璏4l捽6r 0~欢闾皡絧3廝S瀪\SI雠]鸐墊 徍硲l 廩侓麰Uか!瑝%栦O霃锧憅*T_>梗#栽嘹d銸幥"忯Bp^p=v儫讑>鏃p=I閂剜冞 +鰖r-牖胼O@nPx~94賮FbG'8麳!砓y歸L鐖旾荗􎳶]閥4鵃限鸌lPq$F噟jIt玺%艱L ;rO=q +胺擌[吷嫗W炦-#惜稻誟q*帮FzK長\6绽?嚣黥?H%衛1lG$zq徱碱8褼颔w#茏酧-?PQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@c﨓丝䥺当X*鴙熀耨@吐3[<e纫/誘龓鬄竸淲E.O髣姫幜H89圊-]Vy鶈9湝⺄屙$滟^ S蝉7_麇柯!d箟f2!uE;3礗:摐|莞镣W嘳矑o*Fx(聼梬=My闹驰阄咹笥z熚^GY]2叭`r徰^縆@?E{泗W瘣Q@ 丂B囋元畚褤賨溩璔@L↖u洨C忓⺳Q瀯a}鸚YU垣╡#恏邵o抶Z 聼.Z6Cae噒閗 +2!恟;泓鸗憆誉〉lQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEUeCh桌岨嵯洇疭&'咹J拔2<竺赾糂3> +>> +stream +x+T032472T0AdNr.W憫叀灩1X佬乙X县B列訪宪蠵谅豑宪?萛%+伯 +endstream +endobj +95 0 obj +<< +/R7 96 0 R +>> +endobj +96 0 obj +<< +/Subtype/Image +/ColorSpace/DeviceRGB +/Width 728 +/Height 636 +/BitsPerComponent 8 +/Filter/DCTDecode +/Length 22946 +>> +stream +AdobedC +  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY|" + }!1AQa"q2亼#B绷R佯$3br +%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz儎厗噲墛挀敃枟槞殺¥ウЖ┆渤吹斗腹郝媚牌侨墒矣哉肿刭卺忏溴骁栝犟蝮趱鲼 + w!1AQaq"2B憽绷 #3Rbr +$4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz們剠唶垑姃摂晼棙櫄ⅲぅΗī炒刀犯购旅呐魄壬室釉罩棕仝忏溴骁栝牝篝貊鼬 ?魵( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +)FX=樵QEQED+热术 h(\!(n烙[搻B9'狌 h獞+L娔`庁姝EPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP22y理!#錨ЫKM 0廋@(7]蜑%PEPMu軐21N#.Fq@ 珃哉Z)濭L'sVh(((((((((((((((((((((((((((((((((((((((J%軜e#'PM鏾WL{Pq0+仇b)l9n:幽2K!2dc9 +狖 +蠍 } 珟dhg,@瑟釻2 f\鋎臬呅ue绛2辑谋b軲MHFGJZ(((FxBG公?lc=溔A茾:U(h(((((((((((((((((((((((((((((((((((((*的虓祊23毘T盥3u9\ +镐2*恐гQ"l滱=d憱^蕝槕躥Ib92j[ツ櫹-垡 %繮8哧G9?^=QP09賻8 á((((((((((((((((((((((((((((((((((((((((*)敿eW碢Ym⺁W%颟F籉q滙RQ@輪撚8 彮i遢巕屝v垃dA蟴灎I諞iNq蚈@Q@Q@ pJ惌代4侱i +E9*=蚮@'孭Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@S儴e9+((B<娛笇/+礗阌璝鷰K'蕄_痮襽/9枴$矍憥1SPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPMe4(:Y萆鋮敉]q"狖煡YP@:(((╆ <礮溏t貵晑奨檦R疙朦獅樐悵膧7J-6蓙*zヽ(x俄罭8颲((((((((((((((((((((((((((((((((((((奩$.=Z*奔噁嗄鹷鴫{鈥-裊R'`紝<J窅滃堹幋f姫仔├苻郤鵔夨鈥.裀弁缙[nu蚆@C煙%徧q/j枡#壺u毇kr虙4吐銣z*8錓FQ僒QEZ駲#V2%}k5黝;鱪餅捣PMo芨92 W觪=x~奂鲿;币璓EPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPY左珇 9'礭弝?时;4敻;KcqJ褢筫.y犞挛8釃U蚖x曁- +┶罏q覠a虫=帬$聙1睦琮*樷膽芼流猱j E0J燿GX趋#蚯鯛 趜(劜扞8olU失╫骺牜QE5圲,xdì憓0lzc娪寲岾 "s!u#~碵He乚 螼璗唤呫h憢18i7 !=铬 許w 踨7u苰E1貿K;Q該丆葢尰獛檆}莁執 +$$寓2K綞宭89鼅t=OT-} +>f燎[ g蹄鑚1–桡馉 擵\讵︵睊q驋{V課 仐hP9\pO鬆 荘枋z0连M籨阽n 電F债H5>爏y檭; 6砍恂簋c)扻杀窝譹眄侵炳譹<=~癀鸧?緭憦紷钣蓾A脥糳c帩99誘1`芖:4哬0F>h:(巙嶡翖+<姧檄%lG'蚏Gb凕j嫡鴿區5B湢8 '憿X\#帟!p%睮霝橤XIEr圭凶獡婵.0 h撝,8VB=23赎k7W唐2诫;;礁# 珕卾倅绶8;6憩Pc灤戤膯lf1蜪2矎t瀁B洎灁璹+#f8 inb噰o浶rh[樬7$ 霝⒈( P艵留濑Ub冠殉戁蜨膑{u&4h * ,@>代((((((((((((((((+64*=隞瞮鑫硰慇鉳+c;H8歘>0db A9 儌;<咷|\`褛樜f$=)碢託Wq唙a鐽i擯扥$揑 %.h%耿挆+Ls&=6憥d<鐨Z(PE-擱袬 1KE&(L衵閵(yl蝷R <袌0y蝘粗'i荶)T症p灥"}袹pz倵灅⿴:猓zf (令*H>s@ 犚鈽功杠;g&j7鸓D室T鍸z妱J)i(Y櫛扤:R具6檔\}8"猂P恅*AZ蟉]鄛* 轴兵P訮 + 閾謨@擯战5埡 >漏樱.E|gi裃EQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEJ觊礞Q2熐膣R9[隦葮u<朕焳ng坙ul抓YQ蔟┠0@"@#、恜8Q@ 3I(R莟鯫萉崭 t拼J篇XOz贸6懙>欕[2dPá(((((((((((((((+2P恩げ 媰佢搓弟>t$ 嶹4R(wo禃偤╇酾]驑諛c%cyW鳘1溦Q)$n錻综⑽纲焤Nj\劾nA勪d麸X#唐5 +广OR熓僠伍23;=4RP鳔 +h隣鞵軔# 9﹨U#x鋟<S8P剚弞()h)hQK((ア奪((ア丞c慤翍7渇E%]曅难莙槜旴0O?A隩( +U<詧A,z +撿亦$憡q礀P-鐸({"wo橉W畜蕺:V蓼画 陷 O隭Л6髍3S殔p"1衠M〩权"z敉27-@痁樖#M清M芅LbC説6 +牖衽7蘌藼錈S慛"s迾-廋|O +20IQ桋鞮p崓煭34鋗徎兦鋔h溥7鍔亯c栮in憹欩涻﹙灱c>礥瀝鄝s穝{歑.僇Y棎?嬘堑Y"歾覀辱iЛ瑜番$,P蜇瞡;I闑4`┧c/鎼c<簸 賋ゃ舁2v暽贜H庣! 2I(峌膅熥5辅-嚚┷L褮CE.iRF嵜≮谩(Ψ擮 +冉t舂k3F戁9嶶1碿ZtQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEV9栭;S逃$$8>胀扻扞$騃4f拪\見m8P睖V.m氨盖知嘏鏫⑧`|>偖j6$r炦O襽3neY=01Y囿V\6鶸a@褚)聙%_Z8轑霧lu劳@淡!濵抭S<唧芆裕O8汕{旨2y+靦橡噶-ce淆3/鯫7?g&攦;鋐衾,ZdK虒享蠽W唧?鉔K;t"S焇漍"<笃?S4;W=p1O +( +妘/姡$颟h } 瞈K输绋 蹼b"*氃筽=訝((.鈏5-幙Z6%o馨!硐鳹蔮凚FY瓆^$X|溃{8踌惤 c焠h荛r,I(T 灟;謂畤T恷繃蜳磫枓@苰4v4覴G. 8酲驣烰秈攽朵滗幋枓Z眀睥岺竤燊r偏Pぉ 9v緤傄_:'吴Td憧支(((((((((((((((驳櫴"B鵤霏)G籺PI堑r驦驢^BI>=嚨74櫌)E%( +沪"=剡W炧姢*炸#舔$|瑍У7P糩壡桘梻>Q犿 灤膾R1K9 TB*Eㄅ犙傗%懞剚g[E蘡晿1;Wf烯鰻 +镸7褬畾6m臔8琅BS9$c縥堃u!歍C$妸2藹ZCEL虽\4d羿齣MC,咺^C膛=MJ傽 E%碦Q@Z-羋h 蜀劭瓃洵鎘y襏洎殛;婋h((((((((((((((k0PK$鰻 齔肷囀B7勺硝*旦\ 嫸+偒騼霂鮏4碦Q@ J)j3#v鈥,E 萖/獙殎槜R劂儦n隽3謾@HNz欽(h袿)猗^椿蝖 4b 呺鳺Y\暞$ 轿@惴=雫+欍塎靉$y(Nz=~z娒还汗[╒41D莙RA獺 e`e-螯銕?茛臭侗\肛A +醽弦((烋'蛦nH+榜觞J莻i-錣bm3]呿草4/苰 屶,f)^6 攂8室u苟巈8=q跛iZ牨F奌薋突+詑覨"崈╄T}Q@Q@Q@Q@Q@Q@Q@Q@W祬鄬瑩4頾錠(:FVV#趻(膓崻: 詳Pn¨零狿賍A x 忲>菤擗.9-%}憸e9鳡jy瀥7菴61e,#Q匲`8V蝢軐jK籧m 專r>礬 `鏆i啼 1憙岓弦橜i )4屿3R坯8=昕V 臬碹呫隌 +i)M6奓褮Z4巯德w H 锴_鏫謐CE-r闠?锧Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@gk鵙瀀'|瘘kF弓Vs-雿艖灴S((79jC幵7ZJ栔W嗎$屷唒q鞰跔跬0E:$V潦*7(#4(# 伭g?蕶M~袺H)E9x爲ZLRh;乃$D鄪邔\苴B!chw|筆:焴緯們J抟嬷H鎁1(丐pH  +Wk鯷浜嵜9u谳}F*V咒-駼乹袙Nj睟迂裙`鎏IR;g閷猆婏Bgn@8?>鎠q;JsF潚銪q!鶑9Ukx#戜Yfm觜UЁ殍睪s菢񍌹灒謤5á+栕c ǔ @#*@阫烋錑蚍追辄<7/(覨幨Y姕#8鶺;i鍁HX渲迮6"砟 +GLz缬慭劈..<膾M灞巠鄐如RアZ礿嵔vg蘠嚆炚YT搧Wm蹺灂&蓓硋虧闺弞a隝KMZ蜒颿磼E*髐򷕻汦v鬡v憈j熐 +F;v㑳Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@ f +'祌72戴#昮'卼:粹]醈菩=}J鎕(杸S V N)勪諎\;@F;dj盃奬RP覿wqN倞s JJ)纴跐v#ォ腿$ 1扴w)揬Mp郐憸鋺撚>灁Q@>胾矼俼j88闉j院曚汛o1*?惇:ンo`粣亾寽+М籬膾.B簡鳡 (+尰E庩dQ匴`秌钞sZ0首 +Wd嵱' 奐q"O墮[ !0谇'>疙M兠.9WR 﨑隯6Z湍 f3G瀞鲊峠粭X詠刔s'(吹簥 鸶轴.hl7^(z( +( +(猈:嵔囱捻杝儌>^漼悱ZtIe=AU^寅)-袎#LU痦T祩C癐N呋 N:耧Y/~2聈-撐羁W箥b笐 c磦GnEGEQE(S $a $b╔n#锽鶙! C67^OU d3Vt萟kc鋊頁[(赃G蹞,W寕枫淩縟1嗆S豕导泏DRx;_鍉軔#轺77 2e\嚆讱4覰`U姲 儌ja(( = +v庽A漷灯[N肿 2騎8)$WP>%Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@2GX鉭c匬I>扎现&0X盫ef!T┢; hS禁d鉮膇惥㑳J奐Z)(敘e峸I犖2蔈-h簬,1玳灾霪慸撇`Hbx頌鯛m廽AJ帙+<阈攦(ゥF +罆=p*F9b@衯H吷陒V酊u倍嶖粩@3|V=磇%耀輦K鞘9==卼鐾绬槺呺衠迉2'吹竾 恫nUC":vWkpj陱粧逕懍-n藺:嵠0#:盛枈((ア奪(+バ鏕);'p签$W7[:萕{v';恈򠤵鵓Q@e肴蟗蹲鄃氃╪洱杕lm踷崵4鉓ぇJJJu%%Mmr痔錟X:`倨尧 ZvkX<刡罒|p=;⺶桏跭鍮虶Ej[霔Q緁氖{彙j勰k}3滒c~Πh炏X庢y爦5]圪缬璢T-t.bb1>殓;珛 @ >卸\24$片F鮨畿M筬^<yz甞Υ榌$e 摆FA蕬戏4譇w薍叭∶`斛R5搴J<鑾樔c幙Z&援& RUz齷?惇油%沫,郓(誱頎れN錣1f$抮I阨()h)h +Z)E:T枛骀!.阍鲲[,c蒮逤鯛zС簕9H聮Wo?膝K╔5簳f;Nq锲=*泜A<[軲馅卩s*鋩艻莕暣C)怗z鈹侄卻瞯 '+厢@礖Z3萻cT峧kw"k亪佄s忓Ym@ E%碦Q@ ]囩i-鋮篋A冂忕=W磇:$?\PWEPEPEPEPEPEPEPEPEPEP8/<藱a?)旤洀.9虏5蹍栧"VDq購Q +楷羖,'乗鞄;;湷I鳡Z)(酠範 }E鏗_o 撓|猬k騾稁22钨糯耕-罉.鯬v屶d宻N郊栻Eip6古1浲尦oyA99揉s閺隠珰JG5妹)82鶸GF崐翰瓣翣奐(ZIC坈h#簫*ynCgh炃礪吩#仏(錞峸c自 m5钾 I鄞擈憧综逈 -驡>r酈X>7mn岷RbbH艫苃緞躖,z懭齣 T cD懤/磚=阩豳J盫pA鞥kkV"鸍朏)<銿UX6R ,蒙Pp gb愛$j4轶 d;8齤v憢;31闕嗓躹扚x$bq贗鄳( m輰Fv9蕊敉-僳纱 By 环c(┈裤/蟥h迠)$ :鳗(Σ哛`冝滶q撉錗$y纹+焅堉董Т.*wF頀;?狱k(RR襊QKI@ E-擱襊QKE%碢QKE%碢EPE-:5"甎w2}h碨滲涨鳁8?%V謶Λ瑆R6Fr=A闙]鸯洲豀pd懾偞獎罪耍鄹匜L胶gx隥&穕瞰禘蹳@胄K,q!e1b;t8 栨O..匚+坜B葤$蕑8媳瑌B8翠h ,d檦fc十z 襽(Z$O1Y +潵硞H殡鳹厲湕p$兴$N瓎认#帢瑑]=:d('&U癋GOf蓍牟随,1$惽揧gWK局e塬e憬q贘SI@Q@Q@y蠫&1紺c=2*Z男.翆诨蕆炪羹繌祄EPEPEPEPEPEPEPEPE菠1磼0TQ扢dk穛旣*淙3?烰莽+O3淑,&橜RP袳ゆ匯A$;襏*8撖/5鯼頮r: +庩苴蘠vFe;s晴P揤鮄 砟孻p{Tx.茴*蔀 zs酋歽歐奇<郥"湦嚱,栵抎卢<5*=搶睈?鍝dхR圮亩髩8,A苢另УEi:yHZF崍喈A>灴埈H芘 詺剨厑*囹:嶍.排筆▁鵌/\(綯/.⿲鯭忒oZ蔻弓 K鲟坤9鲰秏E欏侶1怽G=表@軥pu=峳R芺曘le┣祐1荷簻A霈虲I73囱0+=:(煝W檲*鄐诂[羍nD發] m豷鞞+!P$J$瞇%yQ嘹 m蕿幼螵諺31F條g珒瀧忬d*p纼岓I]l6惷q#$﹑ 鏈濪,"O.6nB }聒P%錓;p紏铵璌;燍鳑氷%俳s眱/=﹉祵2AiR癴PFA蟸?J欸X鉭c匭拀;嫧m昛g鄎溨=j猑9鋍$`熥k}痕审|殉餃g荿4n睩*}.啐&,0G?6o巾ZL馌儃$h8 :DY#da昦=珰坑d磃u嵯 轷畮9>T堷氲伵=2昤#J揩郅W臩1I;p軁忒GE-)h(ぇ蜳6Fs强媿胵 gM6妑XB倆瀭 v31啀2鍱CE=聠! e靀`5//宸 >^枩臢6 s撾J矹圦$uF辍馉R7 膩濰4擯翊ps濶xg砌f02s侀KfYR5.罠}氆氨幣!ff奇=颃Ms焍D 3X笃;t雳⒎朻(裒対8畱Z=Ih q鶊软⺻殡ku$9盖椣9蝵繚dA4B6?uz黥验 +X(h脎8]濣恩弅+<嗨37Nq燓礛=鸬礁戅bpB鄥<亹y=恍塜痬F&96 歉閄:殴唓"醲渹}s擑襥扚/铈U]>靃垠玬〤ua1箮6eq-$q巬z魻 JWv|ofm'8暓> ,Ce.􍌹VU:崷A+鞆?1豙#繟\ 8閈Yv%塭 +洎8蟡阤孠瀑 +闠戕節B+;,3:dq鷬迖Q稏 䌷&呚?Z’鸷!u>`求泸 #M0 嚆9(あ奐([y使p3韂渘睩畤*}A糊.V汵呚pG088䲠r((((((((瞮雭構nZS子泄(-2褎;1蛁厜H趢 +(Z)(5糘wq 濶#Γ3, 癚焭豰/鞏,% 8A瀦s茹R皂&禍d29阸隩áF&S70<1怯*9鋚ì蘻4鋗幁跦8a悀担奌^+敊7t艷>氳擅N惴>斒讖S榖.栺扻 8霂渨终D骩答菢%曹r9}=/倄鄃%t'R婒e圛渎U劄fr00}jxn,-鉡Qp尭?x9陑W/Jň7"0穑罘Lt砼S豆狗簡X;幗卆S2,奲,$oZ#訴u扸M禞籝渄钊0k9礧H驰d霂Ux4]iwQB!3D 悜料N欑侜諯++`A鰲(&X璓+髍約镄pkZ+豰朓瀉) JF;魃鼾+澋椚摮#x墓鋥謳"IDC樹S虬 佊襽4D1_F棾o剺抒#NFy4-師D敭B0谙侽樵W5Eu口6哸3 焴晪y;鄃6m赱蝭里祥Y敂祋sn簘繖!腹贘皛Py睚+6Yn#V!蜯W* 郿驚 j杤垛;]蛝v餆z蜏"*獜)榣鐓螿9獬澡#L*陀=M_V#‘粫P玵0P0sY援宙鸷cQ祍憻陶Wv戀劐槖O紾屢憖9#驙 e "干L}曲bⅳR蕆宷C蘕$鐏Z)-%奐((ア奬Rth襀▋,=榇Phイ輂H 葛辣糓+ 逄湠~晳Ei豭d咵x贔f/粀Rq譂u<綩Us砹寧a%,]s愘蟬盈镾6\ym迦 鍐0>fQ"E宭y蝀騹藘酲w睂!麪蛊惁1崰亖枣屝/驾:;WF%C铤銮—T赲I迻拃W'$毩-YB#鍿袕吱鎶\觟E((<995刮1絰鄓?野檠J鹑睤臸NA苎P[螚0$辩c29╄((((((傗"0⺄蹭甅S之L%T潪峴{W篬>T蝫`瀓QEQE爁搳 0\ {堝Fv +憸躪6蜊8H6FUO膻x畘屝6孥綬1嫌б洑J(sI歅@ =-- 困+*H慉H戏魻4庤執J!Gi宺膧衪-hb 袳仧63@衾f&垤"+9$q峡箅P\剀Zh雯8p<﹎mo:,/窎xH'o 鼼zψ定Rc+,G`q(盂┓]q髾0#C\QEQGz)i)hj坶棃师輭c亴?鑜,b祹7鞓w鲭W枔D糒mT?輓煘*溨R剺FC喓}F閙-嫳`X鞷8?J纬k岯幔濰Χ嬶e@/恜G↑盄5v薓烐6x*┢X5朞2V12弑O∠G灮T '檡.v鄹趋綺鏗趗馑鍥i3渄 徬TPt谎(忟頀31cs;0%I<}9镯]>f楀腧廮聣琻`圛,.‵s轷酎k敞."1J粦簩鈥9酐筆篅錊蜨艷矾酻貸盫pA+筓牔rQ]s0葼辤暁(轅磀岀+I稈缣h訥硂枺h蝯馰a禡癋;悌鸀f^y^g龠o谁)绎D^a穦c8'螂]&焩[J 鄜f 俠呠 k盯8螃]靿,L剭籒W渟镼8觮'"籎(別*臱Ar)+椿祹沽 鋟J.D +它冱哇豜\﹁af_S=i玦p蝇>S d+ J煺B(U0)腎o4K篨dA渆攣N幰釾既鄳8萊s⺮]能[=鸡6(/伮邕峅eοu*倧dg);}k8脎 m%u陲泖?R粂bI銹让宓{1iy刔8:煰'啭CKI@ EP]饯雞m死q渮泱"伏;tH{V鏮oQZ撷(((险>蒱vI瞗麥g8#>(熣nM拯崘UN帕壤9黬%碦Q@ IE-sL冺!Pw7簏E2\90 +9向蠻y<倍0睳FV-酜~忓O濷&&揷蓮酇 +卧霦鹾8岗6 q瀲>4溩啔xIm錹魣rs翠t'蝼sJya"<禦側蒗圉19\H掐犬晾锴u=?ζ敹薺Z斜嵷 yS~妰爹轪俪o椲9蝚z(((((((((((((((((((((((((((((((*ヵ攚發恆囕q誐[8{媦mヲ鍮弻猓S癒z蔟q膈甐xd窌v乎Kek錾鼰0#%r2 姜 bxeh錜毻劀n傷O8嚣徑jk蛛$q_C拾A>匳l.崶躵岉 q瞢Q@煟Je!%2偋皒+B +( +( +5粦q}刞哑 '鷡裚\}栁Y睊儊顇璹tQE+孶zJ( +|h襀▋,=I稉〤k剼輠鷱馉 +胸I!I戹卋@nz霎炇;(宷 讹橌䎬甐$}B(<-磪$dz譇﹋+f"o(8p;鎬4琚牶Y気懦狫q禌犵(3V祒B踳殑■╨贖颾沟伨蛅0s冇畜5z薖y&5鋇M丘?^煑5u!%扷\<樮s(+{8恁欴f&f苜<?:礒QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEV恭<腬拦`0-s汁(垑>|r 萈伭R#欢I3嗎俫鵗鋨偄4鱥{x鱣錮D<澻U +c.湣睱lS$=? +錳*巍毒!綪@y \m歔v<8芄n惝御WG\,=奸,g #+秵A41葼卽 3讱拪((k[訢珈P嶥 A泮=\轧视<耏`玳⺮U $OJJQr?*( v痗.b抙[顟肜?椎Yx,癎$sF祸禢聩嫌>5Y峇歠`sf &翌d華8]瑤20pF=h惼A's覝攎nxa熞3Ct順淺Nw)Wn'8>#奰磻%%R燃2;鲟4薄殛饱軄剣;`:g礪椞hc2d錐x鳕撮[肭窑焊K[v欯臰 讚灒9吥D +潳礟烾徥圼2俭慖兾>棯巾虊"F媽煣灁T5嵉镱o 8z潋Of 霙[眒~ 呚慦搹5j鱉傰僈8鉹瀜殚薤PEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPP[[EkHb搾2O?峅E`x亴鏲s深?璥Wk{j棖 駷Cc8>蹬P]囷T{ywL跚q焠+潾Zu俨籝pJ鉱佋((徵垽'(A 蟣t鷔QRQ@ B姸2Х狱趺)(Y%V鋍q齤憎嗞蒖v/4n61氪嶨'瀒株桼膎膭H娰fn:漪訵vSY,▁ v3帨鯈WRQ)!伻 +B消F駺#氥fp霞鄗鼢門#Q*玩,a@^閇 +G4瞠錊8 Gn5j颅(屌賂签鳜紺U复b焒啪Fc筜y鐜嚙鮲mB^VrU苝;噊笈67嫡my詼'鎋锐@:d戃6槕)湌灎嵸肫ㄣK[杳0唇堘蹌上\z㘎砮g擣8檲-绘<*幁,#D鍚/}徸苄KO繆2层r炠&EPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP\fm/<ゎL馷漞犏k遹mEt;粡隌战紬3,Q),O茺V鎹5( a釒x;将CM雏 瘮[s箯l麀Uv +( +(8+翼n澽Da#c.瑂情X,柸蚰釮攇|脽笸d袿逼@C鵕*p纼y治潿(&\拢i~I饉qUc詥趗嬏hd臢?:雖绯粭虅乞'砻巎錫xz賾d欻姃G9兩阌5籃畋教1☉X彆r[*啗某7$)2.3糜笄婌h =JW篬[玸頊秀?犸Z昖钍 誕:扵虴iow$阁m皏弩炵^a{暩d +d9S袳QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE +endstream +endobj +97 0 obj +<< +/Length 72 +/Filter/FlateDecode +/Name/Im6 +/Type/XObject +/Subtype/Form +/BBox[0 0 2384 3370] +/FormType 1 +/Matrix[1 0 0 1 -36 -192] +/Resources<< +/ProcSet[/PDF/ImageC] +/XObject 98 0 R +>> +>> +stream +x+T032472T0AdNr.W憫叀灩1X佬乙X县B列訪宪蠵谅豑宪?萛%+伯 +endstream +endobj +98 0 obj +<< +/R7 99 0 R +>> +endobj +99 0 obj +<< +/Subtype/Image +/ColorSpace/DeviceRGB +/Width 728 +/Height 636 +/BitsPerComponent 8 +/Filter/DCTDecode +/Length 34447 +>> +stream +AdobedC +  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY|" + }!1AQa"q2亼#B绷R佯$3br +%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz儎厗噲墛挀敃枟槞殺¥ウЖ┆渤吹斗腹郝媚牌侨墒矣哉肿刭卺忏溴骁栝犟蝮趱鲼 + w!1AQaq"2B憽绷 #3Rbr +$4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz們剠唶垑姃摂晼棙櫄ⅲぅΗī炒刀犯购旅呐魄壬室釉罩棕仝忏溴骁栝牝篝貊鼬 ?魵( +( +( +( +( +( +( +( +( +( +( +( +( ++V'埠X釾蕯 灖呲槽X湘鞻'A彠Oz(甂鸼䓖銒l_黴聙:+槅鸗$奰它6廭G昨/缈8酷@mF移琔羨OA媵5k潗wlSn.%箺虣司1揁:葋鉫u= +渻O;夅R盡".s卋+蒌!y潕鞏9'4z( +鬃B握 1槐瀒ln~議撿倏?.s*張饼灩$0c幖汥怢/Q@Q@Q@r健稻p╒';愽鑛z暁^Z簲虋 寧?齴甜屈?璷?咫齥~ +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +(9屈跞3T.V賑嚾wg)7t衺祑(偅轿H䝼硦!_rcq容衺8胄f憼XK眽I!s59譪筟rㄍ%QGGvy9イ +园.m同e憁媘9y伸F旳kl'宇軰飲k`0贕=G跋鏤趍稚X夺湝躏幟驙鈯且5QpR趀"P滐钳+b2=銰骀u剚S責姶得p繊QFDd脊?璮R袹匔烁`実銉@ 乂*q恞镣%lxq埥憆v樕#稱Sk謕Co缜賌_櫜y$,Io2mu鑡焜$簃P茤ㄆ馗W 鱮1齴s且0-6坦08霎室u憾巈8=q#} P莺A"r@霏+P穞喲懧c$z~&臒襻齯日E啎J4c8畚z帑~uo襻齯日=>蜮匟遬)挔屻渦秫b幄>8 *>l寧z烝Z阍輋u[f\D PKq涌璫i聓 Q#xN=弎彠鑛fK洓I╔_sd蹁tQ@g陑忲曽3~=诫B钡鳹h轩#;`>煏>踈俫6奅懾.>魁j之&蓚捋Hx譵@`璺Oㄏ漠),瑂=:灂絓悫x絟屯掉遞(U, 8球4蠋uz-馗砊i L勵 '灴N@甕IV 1恠韧噄"4M儌#裢ej鞫讙nYF!l惜f主#燈OQ襼胣铲辠[n6c摈鰻 诜нKe:愅錱鏝膚阒猂鄗kks ,M=粌鑚j4岼 8 2囁>w畢X2哛 +憪G +鋔/恛^慨k>穦Io鷉G鍳觚+()(k[嚨窱 +Ys:b孵60" B甎~lq赛3鶺5S踋蟞绦HP傲⺶ 喻-]5睖渘夝w鷬汞芰r舵懯侶鑡:5QEWA崴樐Ol[.0:~U涎@叇kI8.殒摿v娣h((((跲凗 +盓W鹠鼳m煥?镟 U囤显黟Q鲔O凗 +盓W鹠鼳m煥?镟 U囤显黟TGT裁煷'萷z䴙繀]ⅷ经b泂p##熶8鶶秎?缈8哚@U85+K塚(硇m#鶶頾#稓輁赐祊8:⺶f(((((((((((鍤(q媸戠︽4抃Cm杊驯3\呰妄淆uo鎕菢駡d. 搹蕗:鉼nóg+}襖`)縨煒镟產4闉hb8G餏3評*玽蹈x\偹寫应hmm煒镟2忐踜?0吡G踡珂+將;?囤咸?黟Q鲔_圑 +(享犊篌}蹲a總甘(雏m5 H斜箞価稚鼌q碢S>礹3D⺧帀3硴翏(檣吶?濵c袬ZkV,磳 !赛醉講]岏茂棱购(匕匳}~躄獔7a滖侁z骅 腠t賔6yvО玱甛!39q.茶x<';錈熸轸觚)襵J咶l鬮黭潰:7窩迕+7`笊獥Z赸[2[0V艼上\鶹= e縯尗帉劭牔QEfG co喧{Vu%h闦票鵎甆y微杸 +((((9鞥QEQEQEnN翯;泱獢P頉/鳷m煩镝Pm煩镝m篚?5?踤珀h鹠唿齇 AI@蓂<硕Y蝡蘃ㄩ((Z)((JZ(,椁岶橱優/钎v%漖昁.v9舢2摸?砜氇1]QEQEQEQEQEQEQEQEQEQEQEq棢tR匨R諬樷p湃c嚶耥\礴鼊.氆3[zd9俫笁d蚣/ 庺kT>M\篇&@拘H闺L?jy,恥`揠鴝V巾襘焚b,坛*絧?09蚢轇-頩%q"a 隌QEQEQERQEQEQEQEQEQEQI@-PEPIER襌IEQEQEQEQEQEQEQEQE敶擯襋EQEQEQE-%PKIE-%-敶Q@慈毯暫27>J祀涴笏3d碄m鐜s氶((((((((((((顲欿%奨葀-骴c'凔膻zC鶡甬枈婵.跨? +V.s蛩頗䲡襋@做魢?酖魢?醈-`]螲3`]螲3已@做魢?酻u =琑の@ c黭朔 鶳 磾QEQN娮笑贩筠i亴趵臊8鰻 |RV扎厰勆o 庝憠9'箫屟d鶯c鞴i:挙坳3@碫啎o刨闼D.8香郛 +5螜q礡"澥8$ }Ma`斟襫谪N眰萈~b1瀒#穮顳B鍇湉0蹜忒C篆u0!&8T`p? +恻愤砪o6銣鶳窦nVDda0廉债!Y<稓1&q窗襄YRh瀖鼟<槄蒷骴霘亩碁閳2錐O8晴V庑;侴忥7_5穏d;d %渽嚣気6虗c2F厁d+爙蜍膪SE網*鲍侟J蟓橎玦 挭 箑g枣N脱輋P)跚LP*鰮扻0/韦滛V澟盏篇驧鍵n廃}Fy:HX6ny蹴顯[樽w1鶒耏3r:唜$俈嶶陔詆5穉┷匍蠪麢鹉沔=j抵 闫f碽#Ks肭P恫负蒌& c?Z杴*wx矇諘併字疉珹j-焓;巇飵{5鐟侴f糖燱绳T俙擟a8 z螼^啓娵5V1[(3"I 鐏圬5 澼㈩揶8袾舀NOz珩 桑0蜀 #8靓U蚔hЭ扻\0憥鬲tQEQE錑|霧m'8磳 +盨寖E=&t嵮蔌幐鐝∠*:r#8r!骣鷬栟乍#鲪乒芼.? +鳔P栍礞卵&7H 糸祥T曷$鞃,鍒\@=M6,P< 侚q鵓4歾0 \P*嵜y!s&勖su宸炇N杻8閾絡k! +筠破/蕐=疌MI 5姜皢弼$裣@s鐯41披Y椖蒧晢3滝齳㈢J捰o< 88-X副61炉梚紊渘m糢 卞軯檉c魻 +>E>D嵾;沨躳3侂M5by鶳4QE-擯鲉Xn筊F佭絫锁z@放E欁聋儻阸]EQEQEQEQEQEQEQEQEQEQEQEV烹[腠鍷'悿eA8_O璷P軯餥磻囊层絆55QEQEV壙遨+z惯I欋uKg婨PEP嘕Zh隢垜Df 顴"1V Al&匂鼻彅杽餙矾閅,m窐:)坼拌俭殟|姏晈2}h雅$$glg +3[諺裪P眦/!{銖?LvPa-屇澨~@鷓+K蓹塭寪D{R惿╘3c!蜀砬舄膛槼X湌{缨di潙潝渹x齢峇蠛d珧%歽鏠琫1扐吴=yG鳷稏$G,病1DK 善@蓐XR蕐鈬tqG顈 8旤鄮鮎鲢匣櫭V|兎班~氆8 +粋闺咧犤" l2 凓驦4ドP;A時鱵2凗皟觻p?.礠F闫:g搳汌嘬蝊诠鄎@-ONi)(9g俇&陔秀5JY?x聙;候=庚h6b蘗,NI=挈r圪["蟞'抲.K|籛1仔滖訳($婌÷滍=宗琭辈櫻#v 6獞蜱寋e 爡溡QEQEQHzP袶狄-澆hk娆>c菚v聺膁 灁苇Mn懠&怗~c螼l檤礵C侷vT讉莏d`頶趕帢#穇襽,\蟩k%X恧k鍱==耵隮碤@匽錚嵉囃8蹘s鴅橦斿IqJ琔伬銥Fh钷89?漖1虏0懀R錋==5V赆&戄#d.艣s幺亷闰9i潖R&5沎2"椀墻C晄齴藨贗苠槖O3'覔&H}2h鎬%FU夽F]#:熐侙f橫鎺h許yf?\Q蝬镮4阛鎯焃 %Q@Q@Z%6穾缶1 #液枢((((((((((( 霛"揸幡w3c!H荓zS扲0桏1zn赛+RbTP砉1撾Y鞣蛄邰6鋹s汕璱袬Q@矍,q4辳g!秴阌姎(?VB殧針陛湡q渵+爱o6翷 n;侀洽((1SYZKy7茔$编 +妧 SE::蝼韒櫰靟烰n跅#奢埚憔1CⅳHr|$侧8莕Oq擳ff垠1挡r? +帳 尼ZER膾6&疉p!1,Q耂r@8lt$Pf+z}=屪-gy;,C/罰@-髏鄃b铢 塭?>G9銮襽*H蘯/v虧缓戕籒胸;I43J懏;岶8『騛X喴标s彯? +M>趉洂 eIo綀靓"\^珟G蝢z鈥 #h蝧欽(簟 + =x爩娬桰h4嘁杛噤>\t鐚鎬3b戓p癖VGl孶棿 デtI茯mt?瓻TS嚱Z幫-鍀e侳谙瀮8戏^䲠]#.0#粡醐M4鹓磑!Djv1M2y螶┅葫﨑 /鮜亹 缈5{胵)抷媩垤y祥@7V砕JRd#硙 AZ簠蘻呌HY众闕鐯?诵蘴h$扂Pi 昆=qL=琅+Sh蛵籡Q昚#vy鼌o揲採A嫒D侤:抸v晛cvl2锓 虎湈,徠+e;)!刲AG(錢类冊u5塯,膾NI=樵QE\哟骺w陉姌蹾社=酅 1惹JX鍜&1蕼T&賃侶c玲;阋N剞f6秔Cq冿灁;Cq俼譂渖6刎悙渳=?:F 帴熊愎M玾H,a侐覕#t95T妡妭蔏(n3艶qIfYR5歧`>並($l浠濨╆#'樽癃uf鷇氫 ,(6F鱃瑻Q@Q@z 1O|耇W  0任@兆'≯テ7X=A諴EPEPEPEPEPEPEPEPEPEPEPEPEPEPEPX^%S顿皏偫熓穔 默v.N襒戼PQ@P:奅-崵懱RY2m硐<;wF莪釀4亴嬫鵄?S*=栓e8荾連8zDq)i-:姍%Bd3冀﹥(,﨎"cw灊s锧m呿c鋥禸X仦9鄜啣挡1堠咵&.7!)亲妵M惻ㄛ层%麦锴醐峬.e蜓 i 1)鞒椀s胎X{RT覨駞蠓瑖嵁 鳷T``q=i(0/渫:饵s讖~(迶妋5#C%媇L v1φ慎=FF2)杝 覨 ~靦泷N龠ME懿0靇?8珞b橸偙U柒隑瓵;陖忴V畷K9罴衮8蝭唿烰Ha箻埠朵r3?釆揫s*ぐ憛尡?7憥:鳔藄p趇X樮) 鵴閺R;v桰.bU潤x胂榕B$牉兊]i.my +冩媋wnZ蝧湊>烏%论仝 積栤 器(G<耵惴i菪Gb8<`t<23Q霟十Y5艈爦袽滭旬r脩渨颱,%蘈跜m'苶Z栣a踛7断硴燊曹運P&Ibo7$矋淋z 韥谣秈燹9c <2鳆7訜z[h烚y^渌#欵铃皕螶絨叉(闸hZ iD<}焉<襽2蒠#y2^W@q偳d?Z+飸 +粔8Q>暚慔tt&h愣db蕄#钒磶鹷6汛d噎=︷喭f6#<7у4踴..Lw然Ir9畣-B1*nU傑"珕莼#狘槉w凥#荔°彪M奆塡2 罵9蚷甓][h%浹sk+2笣"宔溹S+パ 碤$_*莶頽9 9鷃鈥9+CY6鷦國d;$g灱}sYQEP`H艪蟸Eu蕏塔映晖utQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEV/# ;曵廚GZ东#襻齯刃5EPEP]g,9 L 囈瑰1荜 )d'ZvV肕7逄仮 \u莬觮X裛i溷2!萷MD4項B)柿g,x柝蟦諞mo-豫!MH~5衃PP┤ 珩 ﹏$8刁H懛)緺9J錌;簛伣q巣u5<覅)$kl%QKc炨酻渻#$懤犻@c夺rv偆碌/熕矟穕!q8:ME屻*鈟?7疩姛Q7磿@奝&{渟詔隌&荮 #`C;.釵?7<彣銑謶栍B塂波|mt\0奢?嘮螲涔陡緲LfL2:秡v莏建H鏕 "m俱梠皇mNvk8戁U贘訪邩篪幍攚!e;旪;5j钿婪 ,h.8汶U茳4^?.褣)%pN综佊 c霟鱥惉P堜┒槚\纰窳肷荿 (馌钜<陣贡 麸R?佼d70瓽o顪8魍2谄[邀▌c,圹;H郹u橥l枰棅TE_衬踓a湻RI厢踑6騑2溿 乏@霌岓鵕A獽kq郇M琘社鴓1v5哮檰雃溶;訾剾䴘?'Z.鏂驵O2獧F岱襽"攏舖iZ:\撵2O罾<鲭9 X鏂帊宔X僐藑u2:I<尞rA<蹙昷[禐+Ss淎!誋$灱衄S]枏!桲穎粁夜亵-⒏[dT H乥A绍z:H阏<乯戃珼}?J5枏鸕}卶憹靖齭Ua5 牬a嗋;岓WC縡 + 闬q橖99q鍹痳'蜮3せGFS7#<劜8羟^蓁痪鸎 娥陋N. 挚#C框^诧$岛駼硟?:夵+蛽塔驺廭斣扝2;#匩 k豩Oq崦`8醌茿眲y捤(E 濐黿p\L获4兲c髛}j淤號﹑B槝 0q=弊?鄆1脋 ;<]B 蹖}3.垌7攰澟摄帲h崿厣H6`H蕘憻綒怺欙嵈F,l軅9>漼<⺌ъ dDs +翸⿸rx'鵗袂e,姤[P徆r扇鋨T`[6.2,輺q茿橐謠6 c焞踋;詾務鹷对`蠹礷+睅9\嶧 1鞥3.歘M傒Q!乴蹴脂滽l炇PT啂-·^0规*薶l4}0朏趯渧'迉*[镻$絘%忧!c窚g蝯姹7v搾+N鲩>fi'禸$v]○r苶:蝤_跩$ )S傄z詂 .g2+?翢楎镺X"6备窤) 虓:u圊X治墻祴%佳.閍8)臌僺p$g.v($齭Ui[%QE[&j0H刿搶g岨地P蔄R2+蛋 o咳P( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +婕C;第皿袮鷡u抑',帅诿孎氵@Q@Q@蠩}{I塖遑凝嚆=8臬歷渓剃觳G q桩r?п3t笎y@r烗忬罩+┽-厬偢榍5Q4 +G@箎Z蜬{$ll懮S懳y闇馷B:葕鑢诓5{9Z[y儔Q籨qa幭烊O赗G;(豋|S<髖l鑫BH8'熋荞N髣栄(B:09$p})步昂a-╔挰亙9渵W3#矫D+逕'楞幝A$}29搐儗駣巰:c}i奊=罋!.w0咴 3幍5魲-$捥ゃs窿痁(S*\c寧魡A豑x4i.榜-阜卋騺3膰d亰5y 槂 Q鲙s瀞鶶"礊e2:U&璄⑥圝=X亸铆V鹵踪吀檮C?(惘跟詅鈙3H|抗?/右禸痄>l杈汚o皤V9 欬迤喁>潮f%槣抷桑鸿鬕\4m!蟅c1Rc鼄科8唰窑娳i冲D騝'趠娮䙌縝琍搟0b e3圌s敉M懆尼銐懬FY#醍秺淇眔鋼/,rY捏VW贸y竔潼汩桩拪犷,鋳醐&犖zJ,mg9蒕慎Z珲X麰轿dBO犂+禎f秴槣抍4魝遺D娯鄹(煚﹉(妭赆-m辤\d/^N(篦Y4g蘽;2OEq觠黩r娗1=j瑩躄歒釡憵铌灗 应膋&%X'惕襇 +BN八9 氺幷&娾7L,=寑(暓醳 嗏, 侊?摡橐i7汉;H鲺讍餅"H琦f5"裇蝘.湆|>雇K1桋浞}曘l倰f^{鞼6w8U撹*(a仴鸤k笫g射q垧$qG韷溼F*J*9\憨r狧Q喳P擴(D鍵"歎谘编c廜aWV赢n ,?s惘'规沏灌氼珤浙=FU弙I苒絆<{s@ Im'岢銉腼主Gi- w9f岻>5Q@Q@Q@Q@澕塊0$輝$忞]er讑墨 褳? +阧倪怇簭鋕D擡KV%N;鋚?渵弛Kg鰲厡v彶=瑂0{{u V`猋 +9$S驹c捣ISl鳞+貂5憾笁彑"浝cTnv灊N犜w:rGei晆哶澵 缈襽-莡",蜉凨u#藆鐁撟倉:籜:溫Q0秹F伔 渨T@m甯o.CJ憘駜彠鉆U嚟, 甓笻|襮渢赭┐絃Vy#1礋敯$岥v猺k{dW幷 0蝧燌?cP*占Q)_軚弙F[險7騆m<幙Jmt-蛳n叭炔&TpJ佔摺甪璄uS$傄釤枫@^'梍衄 +t幰H午,膾}M6 +(44O A蠱u杖锜凗牃毹(((((((((((((((唿偋鐱-Z3.:2w>?襽9 +( +(; 2U汷劇廈8猈.煩鎘ypq寏欭)/湮>X`GJ話,2爟香@j }哹帶錸铬夤蒷腪牬iI晈咍秨氙甪簋FU%&绎!0 j觝蚺驑Z  M巗炣諔66F +9Xrq僑ldX0b@$`=A隌紣$s$悳凷髆隭hy[1耍J闡*U<徶!@宕哰hnt q*ZイHe翼劂!v耢q*QEQEQEQEQEQEQEc鴬鯥(\樭摓躐Z甂鼌C#Iノd'嗀0揽#@QEQEQE1輈B2鳫?鐪魅訛"h容FqM{Ky紣D靭 $)┻駀峑= +s恾╟穫1苢尓丼P'墊胢馓纓?櫘z椭+$s匢夢譻#琿彻篓$烜+億E;ylU綱+鵓Tn磋ケ彦 d<蹼5qX:哛H N~風x4`0"?樐s荖8垄綌\,盜nvc8$v撉F䴙笛矄RSpk2鉎嬱垆;`OR(錓V!s迥S>鵥?EY哫..Y`rD瀊倃A认鸧盡贡狗塶%F莞镘Cs責ЫR-籿Ur9hI鋨,3!-盧985U3P醆鄜t1蘌Fx黴鵖h┉乨Eb#恆狼>栽&慼hqFRlむmMr\染`霵1榇c襞C@Q@4<璑荼湺蘧Z飓伄肎w揕呬fv;瞂錈樞( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +鸟睩*;*竊迎m諲籫%+" +6O^?*鎕(絚ㄏd卌赑滍a咦舄笊鏞$钙-廘殥握铉=佞 酲(ひu3tLS侐懫颻瞥鮗F揝櫮戫倩漆呴岀冯Yt睭覱篻bNld黨躾リ Q;??櫓蛯撻懱 b0蘃<亨麋璯淌顅}裴rv:毿吁!d獮_頧掽傐臂O讱栟%穠+ FQ戺壿學>:譝q2j…d)d&"e纀皆u+杢h録躠敃#袏陓;.<J9z象蚹W?釂墚F愦侚譇@Q@Q@Q@Q@Q@Q@Q@Q/2北VQ窥誾臭禺*W朐慇QEQEQT礽浞鹰&"]桍w"gi<汩止C@e笐\3困a_颱驐m誁鍦Q俌 g>W膙籉瑕 嶡Z剅簋zA}稹<;tYJ騽麃趾轨鈿遂艀寀鶳*8cJITP=p(2%H! 戶 (((((((((*)釒奤軑詆-煠A%将$$ \潽膫09阫B┴Z蚸]=纀9_栽7PZ&殄T煚顯裈烾盚胀蘢7@O"堳[ s认万髑錊há箐泎靈q鵗S$ 寻F啬刘а@W蟷en摥绿嘨rO?桗だ!}捾').~鑕``g隴Md遡V遚;7D楁3棕z2蹳腂#2鋮#襄蝚苫T懻莫訏胣r@'报扏/貲燠#3$樸渨5@n>滮齮傗;X$塮u;Q鄲鼱1酋荍襢4稬血$c滅=1\霿8#踥,孖旾/] 銘R}甕炓Y溕淇躋B拀笙_C@o捠宸W[泦;S=Ily憬e 凼咽籡z屾疌񣹝酿cj碡9鄎颳b捵ZYchD7n 9>櫹X2挰A7鷟謔髮芅荂S/弒q奔矐3ld9>炲窌(!\佅缥O譅( m]W鶌慝壈悈俘u_+稜(((((((((((((((菂淆ro鋔臗v%よ,寻遭8( +(/桀毹冒笎@8惹綦鳵jry簩韺a二\J碃辻Sy2>#焊昴乀泮泾悍4\簦=憮援釕憣廧a魻E H猿HiY^*闡 2= :辡稘%旕憵栽,m;嫧Q:曄蜑儳eC屣>g葳佞嚆跖Ep迥@籊鍻酴$屍羀 歉s/蠲 8c鐝襽$涌!m]W鶌黼兎惷nA幙訮鹚麵"U踡b1憇挷|冱z顺"材:[9瘐宗爩寵类%尟鶧2'縗c醌:%YK蔥 *1冘獍u=9豉UY儯彆踱ㄢ;e桋瘋泆Kl恄p$趿媵鞼k徱礸疤n瀌,r@喋噅鑝鮧9誋檆$gk鰻 +疂# <3";匰憎興]@癏U'巃灘W鍤腩-⒑$榻A#熉/4慼袽蓀∑鑺錇v锧` + 陒S虂&輓Y摰硢=}耖K8au0櫜釠qQ展鷚è;I#;湷I55嵞怘)G,藷谩夾謤:浣操k$D9錇A什嵫 *碒f}岱翳8莮龚4軿KM盜驚3幗?Z縲=濂翏[竱愥肌嶅7v魻 +醖(T(~`OA汕#峰YU巩勖}*覒滜9^>+ +(&磚庲s匶撹3]舙JJ癳$09vD箽晖辸蘼B`zPQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@g犄rY噉鎚#8囿Z洰[藂d +e}L録(矕w-J惢gFz}:TL{WK狔熧铑;>燓家]轹鬃靨K勂#懫趢9猧隦:4r28) 弞岧^=翟霈 3熚( 媹釒5糹w硩哗9<灲*呭诒髣$T飛=zT贓踪nw粎厗紫釧历~祅﨟nt珫ku犯G S1辇鉆 訵w瀟藢oP佤犬 k骋2i3c!v耢q(Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@s嶬婸岢)W 鋷灊蚼-蘉r鲫鶗Ypx垿[[ 踊我瑣昐x蒙腻$FFC N哣咓(Rq彊C1]蹬暤虊$+簍'5懎0莑g祫+e聻6圳﹃Q$/6k贅冭忘$漩舡m<^釬+/_O霉2)d侫$LQ #﹌琠K遨,(v>?4%宕fX$猛Hc缨<$簞葺箠H|艗C偕'5Kod^韯扚瘄d鹶琄媥d稁{5S唖n鐪r u蟖@IR;A4倿mUPN寀麝眜c%管 犑跚'謤*訚歄潏8{彔ρ@鳪#莘;#蹮^:~甹秛à 渡YbX}飾风岪Q@t窎 yL∮s`#1佔裣閈舧QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE裂EQE澡2o覷q-婟{Z嗱V觰O磽+亞Q詂5煟撺攷$RRB2螟q炤跆P帹&3磫68轷 +Z綒菝龈dV(紳)Q抭颸譍4吧-滀 溉缮屩f +C▅b#=9 +擰@`竼($G禮$p@惙萑臬幎 啅P/3@C=Ib砨覡>a`雩D預wa吷>灖御+d"AF*s跸醍@u畫2d\F[?\渵T┚痍H秬r溴樸阀?虱袳QEQEQEQEQEQEQEQEQEQEQEQEQEF"孞d◥餥熎あ嗈W椡G睟?z殜(樦4啂O2 @戭s俊蟂灅::骢"w瀔║Jq蹑^踇4Kla>䲡jg翟l烐)#10O荻Iz顸U羡煖F'8蹒v掎豉贪銿T炪=pGNZUEr#r雭俉+sK簜钴轱6`佘{憺齍檚u难蕀昜9梜I域稆詺T信<霵臖寮睘ж 遡3 臌迹懬q诔氅卜櫘&瀁i1艻#i9鑪q淳F暁9!<)\泷aO<,k##]亖镻胀CO柷梭Y~q礊伥鳘tQEW}\ wQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE裂EQE-紴L堷rCu$柆+1!GLs:UE┘庰5滉6枍X嘰鋞儙ji<洅盐u迈绺螼像F搉鎓6寽鄗R+G):韑r?葼炴xY6瞘鋺F7騭䅟+B窾bI AEuZE杌囤s鍰禢I惘阃A(w,cnNz着s謐ト 羠蝧鼇甆 +( +铽伄疓詃縔|訳d#曪i袳QEQEQEQEQEQEQEQEQEQEQEQEQEQETS虗B蛉p2jZ…*⻊(挗((s胔ヮ$翘}巗鼌W#郇籲R5O衢c塶ZY*2絢Oй桃箤y)]鐪q屸9i隬u ,採0鹥>焃/j1m莗t麟鶶(:g搳埯M-躁袒9#唓宻倇鶷眪眂Y轴Xmy{弤 c昰剸 3 奇惝r?嬼勄媠~s%轌0 W瀝?瑧Z!笐 Q瀦諾P龞;sB$p伹讼暱U孭^-矫%@x騂苝{~f)B黜v釾酜uc凕L9ⅸ顶h?g37p]夕q笶@鱒窆I'u K6卅嵺掳&&(((((((((((((瞊F饕Z辒k笢q埸j虲qnV蛎藧H1*j↙^[+菻幷ns=k涀揠虶%橩 罀{zV骗x玱 娶搤昼$ ".mfh捺聙 炔n#< 鐨紒+6迅鄃謵u躃m/ 攍c5$ >Th纑Pcw嵊蚺GS赸蚲!x[ AEtw哞扞傕)鸳<䴔+櫕Q荽6re?;滗幟uV +( +阾+3oi姹;辫;:瀚耙e皬蟯lS/QEQEQEQEQEQEQEQEQEQEQEQEQEQEQET7V閡n腥X+c%z跬MEq1埉I*嶵g卦Ub?氆3U(圬Fc錬 8 :G柭0b碱陒g耠MtZΓ5F 莅寖诇觖P鞪赞Z4K嶚K?'q;D ;萫箋喕@09繡荁NO蜘x岺箙刯旤鄏沁1lj矋爡|q逺O懫I{襏廿禎P_<麛R乸tZm嵞案H2r .F您v虎琄`n畐旃?彾+檼7崐簮C?Q訳;雼5s8菛w扐惘C4呼7-)節# &恔%+~4光x 'M!9<幗?缰;甂鼌:棣[vkdW榗j稢献尧$橹旃繞见q*srl^0慶莳)∵L煲mF'$荤'鹜uTP$>團<鶞縸~b甕ipX蘢墹,Wo蘁?椀_ +( +( +( +( +( +( +( +( +( +( +( +( +( +*鋠覣珫櫠苇Pk瓒扞3歊[%贝烲\·Kmq杢#p! '+8I稊$猆妴戻R当鈞罋轣w2?@帄Y偍%壚溞袳,昂ZC#1#6怔`gUz瀒H"\6葐逹扞?QE踃>埝/淖g%觤賠@见q(Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@]鼽譜嬶W(,HPI j孶鞦 阠S:)嵄嵜煭Tux鎺8!I`佊q蟸祴Mn诞邬o;y貥料|覗$I 靓碃蟸{枡#柼凲"萕,+窑烱娰IK眒岗 o^z~U挆 壻蕼U5mX?V=8 ;儱4枰琇J垼c/v<:諦者韀憀株Qb)砲Q李~@g嚌烴9 +a┉Z纥;vVf禸68,*(((((((((((((((((9儤\DB萒'=〇:邰芎济;檢~兊OEr3C.绺g咷軕9銧隮B嗋'萛钊坌糶HPáWY Ha湆鬺>m!_ 繻Gy鵌'>燓盭QEWkЖ]>(yjx鶺]?囶歿W壣-p8\p?C@鬛EQEQEQEQEQEQEQEQEQEQEQEQEQEQEē:馬U{秫鸸甅鼚r2 nA +頧g茉TQ@Q@HI?x抭寶帳 幵14狜P醰搾3;c报\猡Wd纹+竊嚆#尧暦9'╃亖@ ,OzCEz=橐Fc+挧r嗎侢])QEwI碽6y笺~q喧U?P勾呤垯X范8萧隮簗g締R踀Xn8耶鴨X婢崲慸_, ┤阧爳7奩詒y莬w┽怣 +J爡u 3?R毱@r褽<材#曳m蹈.$%哸#0 ~(V娢辉'俿V3L済榱玽布鲩$4,偈7QMEPEPEPEPEPEPEPEPEPEPEPEPEP7s5酱挰~aA澒JK[労稩 硛輟猝ㄦ孧 颇卽*q讱I%鞠惩砜8)扬蜃疼v迿飱幹-m\喾^供滖8圛雸 蜜彥?璬AL轡h!{I憬_桩<氕峫ct%C拁e:誡8曉-姃槪彮G,O 攽J恵df沒v霥爘8橥r役HRTe鋩H 6==h虠%魟僢!<偖I 麄2?痊昊5橾> 9W萡H9狼Z㏄EP]員砉lえ癞~喉蒸竩r∩觜4PEPEPEPEPEPEPEPEPEPEPEPEPEPEPMe 冃莹;T 詅1=23齤+?AB +(孶)!伻#礭諠d豫d`阸偋#牚#: +嶠鮙祶.3财靤湠泋蹉炟鳘鱲蜊瞬d(匚( +JZ(苅 .砣胕趓:O幸U+攨'Y~e1-7駜兦鉆梨琷2翤P$ 6!-1禕粎$zZ( 绍蔜鷃 x"箞 +rN1R^ZKe"$踳2喞9欠镸祿蔀91潓雰]rzv榝糷n朒w陵=~悼ed泞躙宯c塾臬碢EPEPP^M鰗Iκ倛H萦=囩Sf3.昿狜!wss踷圏銒虚2匏肱\7撐? +阊2挰A慮枔z字bG\2潉顼>輍Q@Q@Q@Q@Q@Q@Q@Q@Q@跶稫频ve#'r暈5fC$gJ拃 +( +瓆r稏扟虪v冚 +砐>(W0郯蠔嗙岞泱 +嫨N 8*{u即r:U5隨顜P惂9郟gu蟦亚+D蛯:觀賓388$庻抲$笉m韺奧鍺wg瀯v*甍旱筟媢杣曘!ztQ轴&焟mcbK7\鳋g颥*懑a挦舦*v蘖荶鈎(畤.;勏圣H9﨎龟唣屈?o袳QEQEQEQEQEQEQEQEQEQEQEQEQEQEQE萰氤T渘f毕P R唿単"≒EP怌$颥Q.鏽8VS[碧RU]蘂3螻糢囚燉1Z嵈梬杢崜&c闛<隤7O歡(佯|癇渟廘隫o糸,v梩ebB囿鵘&锧 xXdQ?2R[@1娘鍑8輰筅*园A%脮峳@,yw$舡埓xb経栴禂8藍O璷,埲*纻=7J右,]4総: 胂9=y獈)梍舡豠H"XńsX'Xe绍#瑻釽w瀟藢oP佤犬k惨i袘Uv溿籈PEPEPMeR0AN8楳堤岸r孎H艷璢询s鬁C'苢鑙"呫在F$?@ш+,`H*FA鏉\螕琀磁#+匠懽玷+((((((((姧qk,穛L桹&3>祌 +(m#*您@荆g%轠kmL v醅絉鹕igd+?0$癸辁謘J1槺 n89蝧K,睳幞戜`19鈥G曳譈N +p穌%邨隮w殀秗E;裳P@庱竫賾嘊WAc瓽)賢&烀顬J鏷轙2B璎Q橦 :弞釠幰J鐐F+Xj睠チ&E昘傚AR9鄃+" +)( 俗?[tV窧俄Ry8螶鑘(((((((((((((()T 抸 +uCv%と,壤S宓wI59]N9乀á +(4tI牍昋敨8i胂櫊 +"梭 c- +⑧扏蟧JJ袵扠1~蟬>!鐮归閆柡耻o睰r6NG甼3N方7B狮(e\帶钿s镽,:姦廿-c'甀#(}|j踄wp}k+莫N湦B t5盰陲鼈'鐱9隴O?懔搿﨎筈]W踉!@鬡n祔%オ榏VGl 騫螯贻櫆谇鰻伫钳OT贷嚌畺G 盐/o隟┸Eoh辺r抐3Z&5晸輑.7@8脒痡讪;xZY[j/S屨5B+9篓re +9向醒EQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE脐p%迭盙悐F9艪5V燓爦Q@ +:詭熹98nA,c9'鋃}咟秗 11嫌薮5;鸞󋸔*3塇(@礙(U珩?65.罠?轥鎗X侳鐐GF?.h8脎熉i,,Ij-熦蹼X1霄.斘X扽19酹1i/5篂儽~渟貇}猐69lo鍓慪-竨$砝鯛帺j褃篯络M=9䲡柇 士櫠В8娆へL "M癫㏑0N隌8WK;窑C8?+ 鉿湦埲锚傲耒}溼[,2v窀巭勑送R{塒鸥彗岝 6眫蔜(篡賆H3 u┛眔餕C?x拊JYd檭K#尦qNY +G"寏駐滮A䲡r鯰-砢#y>潀=9%/別司葈1瀪廎k胵>m酶鬠 5k +莏-丷2w煕譅 #V娛"乵罓q蟂+5窴玹0羀8 桩*5屿誃媂p9@MZ娞渣珮`獲咸*╚蔸鼽ū2簝\y,K趺n 缍 蚐Bh鱉f3s苤+#`U伭 z`隯G氂蓼!7#儊媵棫j迟62e蛏轸舢.硪hl7^+k2)嶡f(-嵖Ooj雑9d买0%QKu猓椿婒!$G辘審-蘸][2 +厣^絪@][ +倮n絨S袳V筀o"呓:q醌4Q@Q@蘸][2 +厣^絪O1 )扷(蟐(桲;[付uI6硉jm抅$$^H睮粋q=辋S误[f蜑_l9┄递淲a<褪萺帊偨:~T駉貎☉k8藑s肱ME纳o! +t$H^GTA諛 +5絍;膨!\飘I灱z嵇P猭島嗇Z8限b~f炚強J4)b)n 7逪 脅埂XE 筌栰=鏜5 ;#@瞡 +瑗rpwt陵3臬1&]E厵幞w夼とg?fV 8/攘鞞●缒;烊#4隧N 'P璋蓶,;dzg也鍖3曝,孴阙榸磬;垨X況7C孴灯X5岨j*禙鳺]m0阜嶶A9堑r谲鎪A僃P6rz酁謢]$Iu9 'JQ@n鴇7檖Ca@PWO8?象*唣屈?o袳QEQEQEQEQEQEQEQEQEQEQEQEQEQEQE蒶燓爦蹩 +蠩P(贩荡硔0儫<9鉢鮋ur鱎+HI*妰'=4霒鹐鞃o|霩A>裤P暐徜V a拺捑莵齅G琙 +龠椱A'(帞&618U咵蛘欛?=縊騣fC+[<6锘粺|c瓝o>67韻箑3徝咏f橼俒r侹r3 <珲 +Y簘縟纃忬}靲8情@ 嫏8,褯 򍿐J晵{d当倒H孚K葸兎隩,&竟焑尖2眮?.Ny┐{喜贛1)躚}~Q忞謤5峁戭Kw'*齍囍X錧押簝尒娶)$嫄唞骕7i曻-坥磽)o 敬祐d1ypJ懳sq霂骏U氼;xd劻:霞:寀騮 u"F+2箦x讕x娌俞菞%醇哥 菒{橖0 Sj裓[ v禌8; V&_y乜7<褡毩G氾駙凢デ揄凿t=Oz穧-14鈶U@坋戻'訋縵簅暐xYYw羛饞z蹶-#沫,~S灘8黭#鹯8爥QVk;Os攮E+"1鍌H岀萭廧俸眣幑鏯=䲡焬"jmA+e泇蛧犖G#疧J臑顊禥<漠{=n钝5;嫒砿內鵫憱k"楀扺<∩畾;{mKm,Z錪撋$艼纚帟b鸓桇 +>牯'昨 ;峟Cv!矰pN蠿}嫖8 糸[,≡蔉# 娿扝褜嫻$@092N弞胩 檻欦2面鷝7╤B众Y亦癛0=N:琥V1VQ+oZ俭畩C+個B禪廮欠錣G慇戒鲔鼨7V迲ソ甚默邚9=+艆$秠儒X`pA 燭7Q<鲲r,孛疩蛂v航莅UY7狛鋞n?Y颤釪`蛊3撹?葼 8P +#9vU标}闖]T搆瀳W( 欮*Yrq堊q╄ +*秸姯q @俿鵖?磍j7 ⺌ +穀W哄当d@沂ぉP0?5F,w莊粂釹蜧袏聭赮G9w%夣&/闦甲 (p2櫸O畄鷞VzF蚋H褲廍Q抝6[狊鍟cL23镓證d4+X钛Z%q硈鋼>WK袨)c负`瑣绉C恾y╩憈滾}癵迨瞨x象鵇6S;Q棬漚j)驳艿罣l) 鷊鯛_]"俥舞喡0[儉3譅i宥卪裕)膜2鋪幑韽陶w/+紞朾w1签膣毐ue%蔅槫錦NF@#稯篆_捗眵W1) D蔃茳囘5嗇軋恙頃Wqf #帪攮W$mh9%h閦撡Ff駛x^z徸娤 号躓 ,Ai 秕鳘璉@RP?咫齥煯兠蝓縀PEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP%萔䝼*匢<<,,&(( Zu磜w"9e.3#侊Z~ 磵鞞窐岏璛袽$@ll|龙w笼i36椁.{g狕閆哔I龜.^F嶮ト8 幟疋R欹 $/妪鹭8閼襄N织Z{杹O睿8:拔O霃聙3)S摲 +Kp 8?绛% +` + 陑 +籫d撑v钅儞N+WC窇`I天巡"炜7^具>6凋b矵d9鍍d┼z齤Y璣谛瓋ゾ{9=s鞞 m-折:苒瓭煕蹴X篊5drY盪<伭<~5<谙沬s/綟!褉嚤3N案硞籬<*3粸欎P綦Hi錁泊搉;:鲘R詵YL檸s寘8韂C旾83*p+ +!揟2鄄イ,琞鋵P啑デ頱G懝唒{u欘2g壯N59e鄃n欗莀Z話7羗2盗S/#8蟐晪獴cd杇 q2.淝 O詚c3U桑壯$U豘@r66觚漡m璵Vsqea)蒮V#醅M椽厧q*k{i甠l1碁>Уm'=g鲏攂翈{鰻 ;8Ub/#瀫鹽23朴簇m虙]紕' s帟Z 烚Qo0_( ,v耥蕞1愕#*;rx鎿hア)h溃枈L +粗溃枈L +Z|fy闻=閌俒<窹籧8抖掙aK=阫獘O禜]旲,c{Akエ佷奶綾pNp9燎N B撼H6稷崒@%夒与@.F無穬蘃虥L`dt霃^+昹$(POA诘但ó違Q&形1热 丬諱`Q焜 Yg4宲h,睨觲88f掖5 mPKH耦*18yg. Sq9; +=@8闊][丛.俭菏U 错9溏(b6虮箰J拳3鵪蚈{p譝RNy;q姱@C鍄嬫珂2Z硉l愃oi澧/#'㏒襓#VT憰\a8隌Z@被乵|$冃縙銦颅k:k]槥軼梯8 '璼$俽^痀曜6猅0v阌(瘩&x+8%s岨54眆%9$4m%K`鈥攨 兇MJ(+O@8/樖陙 鄃 J虪P}EPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP)#.!a酛麑c潍鼌g"≒EPJsIE=なQ犯煭2(sIESW d蜹'_覚SAwqn嗜 纂顯$簰矦诛 厹瑣!蹘2GcL缸mcL煤fRk棦6沎箳U昑Gn帯锣摓荦雡& 狥镹谓囥\3佱vF臟w}=3挔1酷鰤.芗姮Wj┿vH8鳙A;6磃 f;\圻9莦纱憾蟞e昜ps)翥⑥";N踐^谖t峌4`卾吧'k毢俌g節榳硑岞=闗絡忖5DN0K#Ij掏].掩3$F8茇1Ur)G}毁沨2s侀SZM 2氝晓-?Nh艜紧懗亠 熛蕃&9穣%u呍閺\兦蕰u+h烦$蝁A膣徶[簽埇J`8麺Iu}iX 2饉s嶺z 侀舄ke;Z 騪N饫w黔T,艠捘鋼蝖耓幖詵$滽佸! !'\>苷z(k哋9脊PNK层'5i( -2[繷d堾濭煃6鱊柺5id堫8I向猀籈"2怉鳔躙Ks/3梶c4`贌#虸釔nI芮 gé]費i4酨 .rN;衽U+31N蔂 d埰╳#崿8鑮)6>茼lcvq8乡6iZiG羦9$3鵖(蓝樭粹6驐c离=kb 薽:/"磽 铧dt}窘霟2轡,b5晞aJ鐝男蓆虯欏X捦哵i|彸椴鵒)VX斌n0;缵燷R鮝, ]*;儒鋐v=K揁 歊H 憺j谝{睫Bo蹖3醌Mリ/穦L跢褭吏隮被漆鉬F +WV絰?=餅=瀺qp7I麜z澼=*翫t虸滵庖5吮椟q$ +葨陏裄Y澱zl灥 >無\$1c{3摇'憾{YJ;颇e黬 +((淺$郹g6 Q@Q@ Zz糤 uT跞郡媶+k*E!S索豎QB俁@ 颮PEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP1&PP$F绉&勃瞢'洨\61嗃子忛U(((((((((ぅ)h(((((())i((((((((((((*[yし昬壎呼8虴J(复v捯s杊該阸STJV瘦X5瀫 +( +( +( +( +( +( +( +( +( +( +( +( +( +( +(8鞷!繘蘚ob胛r <認竹\圀5揁Q@Q@Q@SG 潮dm(蹈gdX%,杠彮;霿箜?4?禺缵oh唿鸒~AE+)V*绬覗8杜;(6姷漼+am鶈哏N廗綍r鹅q骯Sき靮彲tk鄕G鉆舻厁霒蜚9柰祥殜驤钩圚鸧3侾搹B1Z慼w2膾+0= +刷瀽逩(剘稔zA}馉 +_聫鳪绀 +娶%蓄a呬i!*奨酁邊eE]坝た鵱猚飛嚣5q|=q黃D92x顯訴#觓}A8<齷?Z{xp;nAlp +`謤0+u<:檙娄G鐟N剆䴙框^0( *廒}懀韦d2!a焛镔 +鬡溅<蔐睦8+?c销z齴愧丹褜w裑辞l狫窷悒苶*宵#燈丒o9O_疷d裧*鍛嚄糶伻靐*姳岿鯚氁郁C*砠, 汬缱=}婇眯m驢藷(^龚SB鶧0[0<觖P =i='緡鳴酾燓酅.墇挷醿熇殅畨t 缒 禱r3肉2ó甿藽!娯4丯衇癘n裟-^8ZH'Us倇巗鶳/Eu哓竺o瘢摸x沩4妊V8跴(H 渄Uh+CC惔/ +行- A4譗EQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE跳怇?瓹鶜森o屈跞3Y4QE儇([ p濠汩Vj啀 ?郷V[ Ic&衦嵓B鱁仯S6溁36<滞V繒!矙銪榉A苨酋锤V R塸.1/A訋щ辚ガb(L !-氨>偕EPEP il蘗f'$4%+*.s%QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE冣+<⑤F6!顉`?]口8,8>銘@ihS@T1e 铖滯橖k64? C蠱u訯EQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEs>#忴霅瞜c膋嫺焤1濬 兄=QEu7鼈鐵-$∮a1哢嶰SH#糩iQ9貭r9惴3V窰,&R鄿袂5-暏vP樷,T讹烰♀9崕 8N漰;J桬P-賿殓C攳:烸ZuSN屒e|餐=0;bEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP\柗h肿c槚S烗擎k:胶躨覇嗥<>咷鉆}hh圑牃檄 﨎揽@uQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@蠄5(*v3宒灴挚坢膚I8bL脨{`YQE骤框 凗縔侓訯湥?璱PEeZ藩.]^澨籶x汁W3 榼FHlg#脳8'碛璽QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQESYC)V :/ 6譺梦2s莖椰圑牃壑t鼋匷_9RpH鐝伪4? A蠱u訯EQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEs$爮澥?蘍刼躙栁;q蟒{漤鈐M=-粝:)2礤#弤FiUe穽3卼R#笙^鮌褙V邋'媌腉錐s搥K02:謁酩朣,R$旪聙:=嗀p揽#W陠 郷Ts射$肝-廫 +,鉑.乷1譱瓞奂栭2曐w凿伵[赢牻 2F>0廚q螶結:2A袼F羴蹽搛髌?Z譅((((((((((((((((((((((((弓骆=DI$M艤q隴-QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE蛒崗踓^0#Ч紪嶢#p笴販糸閉u亭j> +>> +stream +x+T032472T0AdNr.W憫箲灡1X佬滦\下L列蘌侠蘃烈菻下?萛%+叭 +endstream +endobj +101 0 obj +<< +/R7 102 0 R +>> +endobj +102 0 obj +<< +/Subtype/Image +/ColorSpace/DeviceRGB +/Width 720 +/Height 576 +/BitsPerComponent 8 +/Filter/DCTDecode +/Length 37318 +>> +stream +AdobedC +  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY@" + }!1AQa"q2亼#B绷R佯$3br +%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz儎厗噲墛挀敃枟槞殺¥ウЖ┆渤吹斗腹郝媚牌侨墒矣哉肿刭卺忏溴骁栝犟蝮趱鲼 + w!1AQaq"2B憽绷 #3Rbr +$4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz們剠唶垑姃摂晼棙櫄ⅲぅΗī炒刀犯购旅呐魄壬室釉罩棕仝忏溴骁栝牝篝貊鼬 ?魵( +( +( +( +( +("濧,舧v溜Q勖橑J}嘬$徥@Asn'趙2豺0H隨襝嫖O襽0d宇抋r嬡s戫D6,飞.:c嫌5縀P河栣鍫_錠釻H(#8╋O6悒胂46F[ {u蘈竊毌ǔ%〆赥}噘䲡6$*拁镺0#' 0f +wD6V膻x荝q蝫s蜲鉠趨加$c儝r?螶蒭!C!OB{Q橽29V枟x0I$>Y3蟡Hql鄓珣[]昆=庇'煣4c甩荞冘R(&<${񳤀喇~+蹐徥缱烏f 欑粋Y@丕=(rㄍホ蔏.Q<姸颏h]MA51*多鄿|P;$紖襆鳸8TJ8^灸驲岾锲A憥碨DFUf孤廧o泧 +N3谉命驚tYe=A瑡(T抋8n漪味23岓镻52鶊臢T颛>92览傟鹑鶹嵔閼縵8錼;zW"稊▕鉩n1硪牳胰儡偆嚆蠵&躍23d`p>o龈鞻珶 sc?洿迂7蚌鳝,cR廊( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +)蘄=: +( +( +($=鵂ㄥI瘲(Lu淑4泙?wi?3q撻劭J@麠aR@晾蟐繊W昮XH#溿彮C5蠐!S0 "察.Ol覄嚆鄯j 鸈w#Y綱鰻 垿巂 n;U+松a紿悽‐妃狑)laf掮01荓s焜σY睞?u眡憶d娢痹c楪肚?象@闌懶彮Rk銲v儛'?N酭M"!Xt<焜矱 $嶧)h((((((((((((((((((((((((((((JZ( +(╣笌軨H厣MEG 惼 +髳;T-} +g蚼1<鋤(TpH腴M衮=X擄U/u禩吰F淁.w(V膜(m,1砖銓鏖*繕UI畿VJ]競H嶺9󂒅f;暆aFf'j9w郍滛Q殚氕4 +p鄐Y媙!橺iV,Wq蜯H桌\m蘽償$q跚[惏]*捹扷f蕲餼零嘜譃讋腪Du竫殖勧愢憦~@泓鈥-4窾RF3靠88`(珏'块姞襠`p$R2s郁 舞2O7G~;Rf=ㄨO~0?LK<佦趶4砬鶳渨2}?聲_縩29^盖ㄅg p銚嚣>'煋贰篱彞Ou 詷藝\劄:z鷉$()雺c<8雯l.鬂死*py蜲Oo支I晉C翟扺澂烝叩R娪贴鉹pz <棊O03;Iu1V-垑I!Q薼w?欬蕭d1R幑垭@譜J酦'墼Uc液cm 绐渨ヂ[vO奚蟩@0埔J[ㄇ5r8C$nO蔔值憝#峰cL錅J7狟蹭gq聳(Y犹'认执l堇]蘶哖@鄍y鮐7琣斾3訋旛祬&骎0郄錊QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE 讱B奨堆笇g>搓(覔w戏跐E憉y]诶 p9䲡瑂<5僪DJy@艈F~熞4/頴洞B.翕哎欼溂嵐埰Mnj曙F墣妥婿,omq冮a9隞:m/嚀K規*蘶3.遐Ч:K菛xlw'譀uu0睏$w飵js孡1咤╢渔岻LHS傽ピ奩J g<ē*鋦受f橏捘涗寔辒}TRrz~U伔蹍b1旇>偂d埄1蔊.件燒j帄N鬚湟儕J(狴蜰}猆摗螸櫔魟鈥'掆H +'+鞼5礎$撛1阋必抝[ig=x<熻hぬ7 昦O滺爩宄tN矽&並82鐣8庐#痤(許Y $ 鈿 +<$)黴@QH@=)h(((((((((((((((((((((((((((*朾$炘佋︷顺轂(訰)  庺eH#訮袳釞﹑KW瘰臂貞鞶noyd鹓4什yr,r6赇莔# 懴<鐘D&憙#Zm!(V + m躻酾A~谺"樶|糜&4{h 迁甶槼y&5?2UC#Br鄴[Уe`P跀Rb湂I +:崩{NL)#o执楸3潬 謣1?笴儒繝 嗞羭丈縻螬w.雄0s止荚:狥Uln噤dt5螰蟥嶗>鵌榍aW鶫勈Y6 昨鞞OI嶊2)$$契 儜殸骭,$hy鲲Q61*p84氌11L毼)Tzí_赗鋏Sz晆0dP秧N9M;佸9蟷娅蟤$ +鰫x5栴p%围 +F閃u禞W +脪=js@撓绪om<滅(蚹/滝釮繱嵞H豸霈雝W8\渟诂蘳2鋵}迉抓N簝o 磡<淯ó#i3皭0$尀r08騀c 傈诽9:T鲶0漝蛏3靳菭牲hM , VijZ+| +H荙鴳K4喺%泤躶辖OEA纈孌|使,:躎QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQET/m佬砟lr@<姒!稺宯;癘}躀 絿9u霁莵揁 A4炡燩箥悆x癄朡杠FG<{璒$i*釫 3.檏#1't鈥%芗チ崝怎/ml賛敱T酁>%蔸Ee懳熷@e墽誖b窭臊@q嬹+窐#oLg殤m钛禳痪9瞹*璟A !n<阒,^j+s A #8=6G1怓}规橜4枳虝8蹳:|~e脉垠P誦]n鸗机玺睑V觛i蹗劂=3X%;19$湫燛抰G絨舌~祕k{ 6F@2v邼g漫\'≤3脍苐蔆摆~mrˇ"PN:鏖V韈颦l飨zbB媐妛.侫1Q剀;,+屏q蝭闅3*0N9c鼑酹栋G曨v皩cfNs詔薪F汃i(绡=*釼攳貿#:玱泃 價3 l~虀U脿B?t湋;-'q髑4揑嫦$8f$f"璢:R貟Wб*䴔澮t蹃焅溞浥-k ^FFFq舑K$b8牀,]革揁#庨e増 u鐟诋jV錂-@iCa苲睁楢Y攼0x>汒瑿N1瀐M2HCf塇]叵'讷p冠跲|pkz&V甄鋚亊*{dO陈6)侊@4閾劻胲爚ur*錔亐Ny?儉>怨艶z鈥+]孛w嶚S阫-璭Y蒰">匁g5导櫠.栫戦O2NO_z蚀怚?飺a昈%$鷊娬\沔險岬H銔6錭%嗩辊猬EPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPQ\1HT巴KUYv=v菻|N 鉶"X9圩煭W緜k尪:廴哮eP!Q蘬窹X胶 RR尡P艪鯛 櫼<*R0v滖碲炳A8+朧6侼GH錓扤6(0菫繚S堻昀`+襽.\LL!d>P珡冷鷬x #纕澞x鵒髪」9%瓜5a(╙寒s9胛zLTH讳垝1P_\腣T U$湊J1$崄V_咭矿0$魑s@耭&ur'ju4穕Y1諊轾T 1慚d躼嶧9揱4糕z +c8>,睴 |截豤i"'膫(饘S` *仠rq譀=蘰d1算!}hΘU5蝁s戦舀7Js蘄陏4琼@莤b1,i栣浌b訩;兓錚@\)疦r猶@襅鄝EnAh朚綁n奨_ +R `1鴙㑳"厥嬺UIцi$臅pa;g .~鹎q>(5嵻60蛷煰颚"!d`A绂:喳XG礫骒Xf*;) FS9黨#Q穾_,'p1詞5泭縹傓5+箸~Cdb㏄3[秺媘0FN={(蹜;s:夥譶逊q:b3273骮妯憎0s御TT旬 +豑B8#灒紗o硺班庀-櫢=嵆錷軴狚j +,#恠兦公P%!F #8\y鶢 +鑉5 倜0%r'峢A樤CP`v4薴疽汚漪{zu┾蒃l 容劔戏h8s弋1鵖悬爉閬G杽摫rF 荶}Q侻譿L6 +]热虵"竘|罀譃藪$`鐜)#邐uQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEG3攭豟8螼茍P[x寝頷橖LL $q9B 佝阵寞p09绡_LT墪驞j蠛俆爩~F釵1蓫龊滒1栴}慨*O>鈞KD_;p漶袖s鵁蕗(L隋ⅶ饘;燇娰秧賒蚻暿俼鞵趇_7葆?*諺&跏 1烓 V&8悡)n嚀轸秱c#ㄌ厗7d ?ve蕙J)!贅5 X8向44 Q,w獛GJ┏98悭tY钲箒?{/圭撚衄"峜b +8镯H鳗衮Н<酽g鯛c殀姫谻戸τ釅"麝}Ik笓npk^4ⅱ"s帶栽W蕦颼q冇迉骈`R 'e酊諸<&欼-抮ORh樮:榽駹徣H#P窕i錘99]涉朜y蚫蓂婺萢@X0蜧Y钬藺\v8 !Xa比鹻徱ザVHBv施X厌I扏c侴N囻6釢Y姩萟M,嶡 |笇姟u=緍籒O?鐜鮭睥H贸璛7A萇3#-蝱:.7'*爲 c毌A尃 9罡宑p2=玽瞝嵰.r}8璆uD,u Y鳄锍钿鈾A<羟糕A濑l Sh玤Q蒫~疥銵噷`倭錾餆]bsZVf&i濒3詞)骂'=Xpz雯C!\n薰x⺋酹揘※Y欮/q怯黬躮6扷貀-蝢怇MEE WQ#殩 +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +(0Fi?竃6go∏黬齉,嵡违櫪{c蹚(H羆6喥?厢ZVV鹇榔 ,o!{]Kme糮斌:燆*闛 hERrJ颀(C粟騂2汤 )撴a喯<x>濌ホj!Nq错焣唿雳L靼蹪秩?!齷咳 幚竊玟|*{渢镻桿垘w}萏>\銕釜撨\鵬2y菪办>漥53nf煩隌扅姥1C羗匚□}*溝%技*籹社x虘腶騹29齅g^橇 +蘌`-#躉Z)(瓄极pN25cI'牣"*帄1@躈 弡rp琯vw,,z毞┍3*鐎躬9苎4i +籉ib憵Y渎澥懦?齬)懯󚅆a蓼#雀6bTr;s挈@ 猌P3諄=*:瑂兇<懪AF軕袃荿橖恢グ n俖輹?2onEj,;y +△n辁猝/0粯DxP1硝﹕櫺專珥嶰N荸箣捸or2V慴.移╆嘏f\笘軋!槑今熤甃嬫磔s<熕礣床斯HA#佔(齲9(m欁v9 1Xb>V O{(\Y[T 1軁*茎 屡巭鰄Q@ `rs@驲茖鍌╟庻\{"8- x珫p晛贖怖潵1莦薎$.l0 c<针旁畛鷈国 +氳3^辣⑨趵鳝P猅偅 詂瑼磌q/8]&:<諃aL;G(鼏(dtl湪\佔u醐]>G蟐 +2錢s栯[鶩镬糨q粝畝!*13忔qW"噇aUD`嶨'(A娉銙弤) 褳x1"嵦旻8<玄XJ崟嗈A=i岵旄(((((((((((((((((ㄧ2圶廓襳 窑:紴]媢廮锧 4嘙臊+&+檂砲旲II;堧蹔宫N]2 +禢x#忬鞾膶灲盄 -撋 鳗0mD塏@廠眄QPE7¨攢w =%0&O'n*毗~& 楞隝(hqO鏛咱洤8 0府僄硹 鋻=颀+焠曈X& pC=yF鸋 w卺Ot'襄Y 罔C帯A氚3 敉T急婋h|兾H隤7徲閇}*烟@峉憗侢EV}2,酜鄴(9齷縕o5哗0煞8趋比辋x両d%H┼S.唹^B厠 釒xt#W戊徃p0z溿8 v aY媠兝=*Z`q`W撉_Л/狉:鈥:卿萪.鼙p+棙0e认bs巣V直*${76x珲琁0el1a灨隌 W茨 +9陜徠ㄢ呆葌囊g%0J祊贪;!5塟殝l鑈YtS籪汧氵4f=射侀鵦熞7$鐓銓帼uK; +99绲I#岒勻建J=螀# +~`粈=}猽攄 |鍓9?梟~昖*Ua8釒?J汗焬嫕万鐆鯛FM讶pT( g鼘UT 搧巎喴弍p胱璍h鵃湡隌(((((g9鋍俰訯@R>$=Xs鞰M L'拌=)豒]0[炘翌~Q笧GU构@食!oc,-iFK扤x跗;}*;⒒憻)+拵薩c+哤m=狼jzq臖F韥0) 8i缺糮-狂蝖藤竜苢V鲰<2铅:#VY7悆懛$觜T瞞簢c芓份藿襽'F軍##8=┰嫄搸敬QEQEQEQEQEQEQEQEQEQEQEQEQEQHK1I=┇"巢岊^腷EPEPY鷽0/ZL捸聛磙+T旪%2yar7g=C狫)"$d邅蚐!B|菫8f甹 甤2}祢O镻\H佋︶磓哥懽鬆%O-xf楴M!l扞娠Jh(襮隦D綿柒h燯 +VVだ軃:值c_g韗g垸PW閉d 錋L胮]g==玼禌pb q憖h虺G,R?刢q1灷馳珁nX笡鐁y煣昅gㄇq滁褰? +恫+67!'硲隡p洺怷懥缈сUK滥H违癑8奅萉镐8鄮捡襽(((((樛)/$w>嵠 f蹵#s蹥奍\(疗踊'犿R菻e#q#拌yN関茟桝磀滖鑯魭7Q)v慬j曄B:銽sJ顠>|p薷墙6r慬㏕迩-艬g焎U懿L幯)#燄 b郺翯&[~顁A缬齤癋J蕊磤硢<};謐H匑F3疽1盈~糸gkkS!9鵄 Nq_3圢莶8'夑z`f筹u6I-儍崿:寃2怛Y卫;GO笊鋻Mh鞬3礁18殩赎yw }噪稞++4桓謤:?鞬6-+宼噜{iom\d\E弙*挄unf'狎坵寎亚襽:歿囒n鑸>o0鋞黨磠暪xgq( 澿冮X螆汮n0 = +功菝漠 oH4,C9鵉j6潑C J琋pB戼猹栓Z窸哽壬蟦~"l<7 (fg +氜q8|+!F赨睈jj凰m婀蓱 AVA#=h((((((((F;T幝奪(((畂\ 迱P峵曀闓淘%62}TF#杏鎚伤sQ#庛夿>個妌=($1L撔穌鷖蚞幼}趒惞'埸淯N诈&"戵糟O]h$詺纕莒溺'9閇7襍岏徬娐Zvhh斻s:揕﹤)^X畓魻焦]紝7Bx歒 栠﨔a<恏) H*Ob2? +k 滙@+寝淟+nc紴s蝭挢石鍘)7#8?(iUYU萔9 t蚗廞笁B潜P_z P}=)孫酅ow2> +g'/oJ涧D襈$(絀醐b@搥:揢带蘶9T:礇aD(扰鋐$湠Л6殟慘@ F3K廽4伾={b +伔8鯅1葼"蓘s曧腚戉膞薁芙Nzdt際漈鼑<忬庺獙\,rO=边迴伽轛M霳TO譬+A唃F-凅湊x蟔掖b 蕄0O萸H玟#鐚笈7~%X裾I'=);6𥙑I硿擉z佄3襽=)i荍狼?墵L|偕鶳袳QEQE(懭倃6rx長所鸉azm=~-1q怚4摔Y`h?g>&CnPH=*饺鐁/鬾茺骉mekR竍=酏Ne0齐萣弉y傽n欬蛳 =嫌5I鶐2劬瘙烰;彻,莻[欶m聂隌o6鑙騨y鐍樏m肢f暃,臚=(,5,:|铀瀹磔俼丯婂銄臇9 貂&V抷'櫾!$憧蕗(稄x:G昏芦\Z\[`虒广=Eu-t?杧荲'?8琈vT栤3佔gc懺W$R瓽ZNs镵近絽幪4磩恞V饨*姦拶蓮擋5-氎9戠`|偨zsg囩祌*Zg\:, 鞞 r衿祸$鉽>煆b?糡c潓udt55吝p 你;蓖Uwl:嗕6絵ETR⺧祭;尡?齒ν4孫蘰Il=!Cr u隩耥迉悹3L4·ⅵ傏I豰)"8i+Q4#L S茲2錇@#恞冢癧?黿又州W歉s0 tmmm1>QM6v迕y)戫清襽0R賎琪I戏6[(%\l +}Tb2璶<!s9卤蹩ir$o氱 kyJ6p}E4Hr蝵絟w[梟炿磵$u稞+=j张迥肖R晒A揉v裍,60Hc謤1冏一($H8U氬怡鐘罟_z觇(闡2灎寠G$劢A贑 4(((((((,郕输瘌酎j;媺D?hB暌 q寁c譚畡l㑳3F 炵*d-碠nJ7蘩?Z侴軂鑀; +M礼Jdi>V亲 选悳g仦*恵嗾ub~灋冫羵爯璵Q@ !吥焥 oJ霓`蔯毩()@鎬 8 徫渧鞷犵<炘衙W8靔FW囑UU03@fy\&鋨' 鐝,$[兤>礦褬N]R6%H眄V侽"6鉾熺,+$1絀薱摓^r珜"睂Oу蚎%膆,r&=:v;舘#n聋q詞繒N轙1YYB卐~2@?5*N沀 ?鸢\g詫蹴垃3<綟虂98秕疠4nrp苶he#I+6H羹t趸3 +爂;:野銜a1y,8闇T八.F鄟笓汕_私[烆<釦W澢,YO氾藣吋騴c8獥l为赉5q荁}(n梧7榲楃 彲[舂紤%+r2 ^腣u搅&8U輻i'□疺褆晳朷腊#=吁趑4.Ai,轏.9螊[:4 +籤G?镔裔锘*}尡! 蛤諛暽$鎬4!2N徐渔鋺留愣qYS^够暥)`T6懹46_\M88B)(陀萪C萢儨@ 劖鎜Uc議#沭&d#g管z猬履昵数嶷.F:u琥夿啭Q[抶翥聆 +,>\绡Zc鄑畯庚鄎抸9獪 櫏j炌K萜蕼籝:R#涛遾3G疙@箨~\"E潷'恳ǖ跛)S)留餼攩 +\A徠穖%Kky%)x1澷=鵓&H>曆j7Z硘嬫怉G"稙 H鋩U1撾鞞'8颮猅渀煒~由ai"岘6*叴2姄1葼c 蘱l+o7?聵4V嵥Cy$y銇?@>%;艶:86壊稫5 义 6糝HFT4C冭 籙H冁n晅尔蘗憙9'v:*枬c/)尴蛋F +憻讱 {7ucO緙f庸FH1腱=杲?綊w,烫v嘠1;S鎵<芓B P縳蹁陇%0埅;(傈J)ㄩ 24((((((秃劋.JU9EC3呖裤Y_jB% ┐愢儨粝>祘RvXq)d┦獪㘎r3荃琄a嫣1惝}Z崨sn纀旻~暕ukb d蘙蹼殚忛YH9iE^尧/pd1幼5<ZB 莏幰誱@蓈沏毌ㄜ`湝d熼@膛爻u'&璱1,坐q昒$徲Dg檆 稡zT欹侗]j]跙.TE禋l鞞xj[m0f;>PJ;唝:w舄p弁5爼$pP昒深?圂蚙堦[腜捓2髳Oc撚誁o,,:,噺痾<脚i'i +1鋞?3h 炵舡-鈸}迥悈师;z~璘党嗎gp瞑儐?鞞6|孎H\0膓俯8+@Y#!薝鶚>漻雩[舝诛G鍲违般?h/a嚆U佤鵧2〣1潧緇}*訴r! A蛭2?1K(╃怽>g'櫥薋`X鄬?Z>^jn跖k擏~D蔲 惛诟=厢L6W穽5P牊愾閵蒏┿,D囨霝滺殞霚昹xtMB屿"o+恦}:殏X寉V*c7湽ρ噎C} ゅ禼︻2+#=2囫%趢&u瓙}(y$Ir0a渄S霒''酾と3f?'s(RDF容b+‖{\臂卬G凯V(イ&弳?艑SCn岝嚆疨隣W@0褔鵋$`比轋锛尸)@B(谇8 銣踵3U襒)G渦9=樗u N怖v羟J畜漧梤# +*@zR]/:1e;RG↑环t羳涠:伷娅j7_ju罹湫\渃9qV瑯4v,x镄{ q臜1鴮繍剃4D +嚩焜V臃J芓辘縙櫯TK桶4h鵽柷?址m[がWqLd稙萇顩rOФ|aq兇nTRj恃4b.6G鉆 !銠d?.B辌2 r ケ粋3!% 匢. +l渶/s:琎YK0a芀?ZI瑱\)郹w}彦@VB>g''>情CKnJs<?zl+ 吆G9^~N煰酭$$嵦舩#=莂燆*瑩顆f\摈542E-腵 磊[侂40 碳>b擗+;@9<㑳VY7A蹼Q瑡Ns@n&VhwF籔鋩1户隀芅8釩G錗悁G4碢#n鵶嵷跚閆dds稀臦叶鵵c镧煣o隬&慳墹|韄J +)軤u狊衐灁濊-墙)VG*阔爩WJ7A 輵騚E2O公qH邻V +_~Kn!巣=?苺5槵鹋 &%Z06鍔駧i鷝3$y防\ &∮淢朜F 呶3蹔覇劚 #栮]=hj( +( +(霼卽c寑纃瓼G謺:20拾栽倮侷$%Q@ h驯p憧8估'P2O讑延-\Z藃x糶#?蕗$娹 0軈=y鐘星槰鈟槑褢蟂N y2 竱燻c8鳝 jFz伐"#㈨3$鮜30?滵#憡肮p恰荚Eo)<2滬貊Xゴ ` 61蟌{Ry`晈I=q5Fk竏*\D束]YQR仁咳9b>'鑯啞iB(b舦偆喽}急$穃擏e 康Ia昮F镦; u睐妭f崘"樰堔T泚鑮*Kg稨鉮耼吶 u巕翩/0c7 + <1U鲋_$尟昍G=猧 [湌2醱 黠@ey$*崟1緯鵦!;63U伨5x!H#9?鐘蝬贙脖0B豒搻拶?ZO:朗腈 痲谉筅ズ(+E晌褧錘FA?5g! S4N,p圥壍硛C bh`A争R0\求lfr@鑮;~暉4$#湷搶P1V-f6颢帩z姰y)軥昘:哠怓EGs笅f恧僓t蓹斊Q蜱環P 贝Rq?ZeoKL沑d*乒嚾槮r:冺@SI鏂庺s镕H鞥d鶵g歓N\鐚9=臝謽G哀$駬J皌憱 pp苸湚$>Y 帼t+3夺$8>俱庻▽X8P$ps屾6 巡:-藣莫翡d姗M瀎Y%iA窞菤速F皀w90稞/eQ\(Q磄# 巎炦jM=膃刟蓪;d鄛逜T&UYT偣鄰JM糛秬x8m H孮) oE"呼5乑:l滏8恏F5GVYA蚷^[(e 碣兾3@詣獾びl%y缃5羧旣驚儦+M慈]钳|詢O胵镏2)C[②r"\)'躑\ +嬲$豞cl滺袶\(= 璞亖Es縢碞簹櫖頠s ( i禹)済ny>f@*绫<值刲nX挶H稑d湊pp古t4P:T#u9舤乀1 OS幋*?7特綆h濹0f'秹2厍报灞窌諍c梹h&潫j趠:輪J{凗4賢铏t67"1閗RM.2囁v 踳JCエ忓愶'iV懸塡v:m?Z塼少rv/<AA⿸梳谅 GZlq睍Saf +&6砜阙/颡据裺FkR驳烩#s蟦咧3O4(b(b秶d侷_柷瘥~骏6诰knU搁]漴&0HN1唪2毶僇P礃N焫 +觼Z袹.%偀Q旟址+惐邃c蜪纤碹臬鷆3XD\(88獁恛tB#2m懒鶑L~\譁0Gl峷拪((((((((((((([Vm趯弈蠻*硘O讧88i冸?偏P值4$H吀 :薧,rP]jm98ZCaJ+炲唖@緑#6:鄃$V覬7"z+mc]0=( du锧qi8%蠗1屨獽3吽漪w;\DiX 騫U跶匼;1骻'镸夾,j胄-Fia2弨A|1撟5錒蕠`  +職釿绒溷犻Q捛扞>範帹躩) +,d89,.Z#棊;5D||帘焜壍7熔佭'5'邜T钽姪EN殟翲I`剨櫟7體*?竬齥;<:S镶hFmL"诐1荢譴'|酹_c朌執?tf2蹒滙:擻mG<鬁)浦輶;璦e茡,;柃\橲5&遨#n3滖婃C分4銧瀶鏥駺H`匝jRG@F:G"7)m鋿鵾 V\: 嘝\?o〧雺綱傽瑾?趒na祳巹wI ">强鉆9燎'秊樤a2;{蹙仱 +秝丂h╖eE;89侵抂竎M勖{)魜T1`'┣Z.1捨z)>磁粤`-牉N煦魻 +オ&雙厣V腓?* A=<葷3嵗屝;M摠峀"&郈懟~荟蝢E騳w鈥.闂m6(\烠跬Y:郏 鲐囅旳kc-瑂/*b6呻鴗ǒ37`畐(螦冔閵瞣⒒騚1>讗n27cпr-.&9蟸穓赻J-Q@Q@5彻q済渃酯 )h(((((((((8d骯I:nPq镽Vf!}8)侨錑簋掸@导跺銿f侰挙)'甼#閉t闾!` N琝拽;ㄙ5旞1* +薔I鈼 .nZ&c隊~T娜坈X怉wx=> wZ5劏'鐯晴U鍓;dR肘J抔c嗃淯K@$t8锧8售cR品Z$g 剨vI郎顯龆/=珲獐ED沜]iE. + 苉;Q濵 +爑谫\富娸偠X炈>#1l顊㑳檸)笭 6誛蘛北NI&嚄+遯联)m+mr@OJ弌鸵4ふFG莭枣鉨s黒VaQ蠵q;媣螶虉踳纬"S,4鍙J6G俗鬆 ?8洱禽帨c4桴LyrC伻莀17Z譓F&B\a郛j/.d01騷}7pM9d +x$鸼'鹠砌a!=; +仒硸c抷&櫦S楁 2}N( %j閷Z +p:Q┠咛鐁SU赐遠 1nH醐9cYcd~唨9锫枑3@4諸郭溉历譂裃m&顩Mei膦7}值錯X樕嵏4丠菉Zk濫Of筰 蛭榞寣獾SNx$I@藚Q屻 ;T B2kR.p|) 捹c另橛@頰 nJ3|瓙セ糳髑zケ= 雽娰糟笉"濂PY涗 璚杋集6[X89)蹚G庱<盼~\Q$拺 9`笞=闝珪有鑫Iwλx%`g r廮蝷+疲#z1颛鉠3谪,W'?T謝X禭9 {}0*G籝|H!莅恠拙(おB6醷r酓q聬桔逓1箌﹥徢=赍暋4懭繾渵Bx凞赅篁缬躎{Gj袔翴j紀詬q轷⿴$p萪RB黓惹鏎戂0&4w荝牅Td`璲(h鍨I腖湲7c$rG璮栞y"K齢蒦繕゛騪ZFW;縕u躺#oUU'.8彪縜戻鏁O鸏A4蝵熤恉`佉&F&お釬RI;午恏kN筄(B+欙揥霕Y 侫雫武\呕脝Z#傱辧c/桙潲E觳鉺庈g娷簣Mn閷渆~祲d5詬%瀙s@讘沇贩慞史?珲nnл=n暢}n&備~鞉C}}NZ鰙仭\伌8 +欽暭 +C +艌羚?漥6恣n7c岕虴mi ╝ +m葑抯Sq⑶旸蛻&溚磥侷簦nm陏鐬j91樜劯 専C幵!l2'臃:歴0rs#筕|轿(鬛Hs變嶦A=以3痤}尟筽pN;~5QEQEQEQEQEQEQEQEEF輳鯜R裊#萫Q巖2s扆3@* 糕/*c飨_閁疇綉賏${Tz飨JmB[)𵤏灳J谵F$t鄮q﨓+2錟貙1橼炑忒X=I錈蕸1妓嚪*d<悋摐鯛$B屆:諘YY-e蝥F~NS嫖A螼jQ姛PqR舥4roX憘5_p鳎p 無2!G*=涑 / +1簭ZPW謤$巌Ra*籵54笰|n28á俟~q带p_绷ω$y洔<孮╜6*U離#O" a 錇=>>,iM亏j瓡;鼼蝓鰻:炄遬m菍郿{*洘臀O衯厢徫.#唄@弬Tn +A;zO5 ] 3g犁冓檟>獐輒= >PpGNG釟<抺s=(晌s揔迶pG酅O艨邻旣奝8苃:衵奯C讑L鄪FiZ檡簇垆9 ;g岊)浺啡FA sf s恨"NIQ擑P%詋刷}衳 鐘僵%*,2G絉倾@t諹糝蒡5+*腻翊kN*/Sp 阖痔'.2玳幑 娱愋 7#烏玜吋賞凣\ 鐏廕D鞀(`{8il脃a6q徼@球7DgB睎?0P艓9=3蜘4媜. 崁@A阒?8蕻瘵lm*槣侀赛/!6摊"赬頜咅3鄹赧 $g@B.NN X7o淠錡B!qE父i斈y'?蚀E糎KЬB侞=3迉( M羗鎱绶凇蹈9 q: 帨侪垨徐W砮.q蠢A绛> {) 8=坴>硅A*嵌綡/贾W20K`摈?漦轺6胿绍蕗pN隰PEm8阉徍`諐F歜T眆f>礁-2Ljx 佇{儙恭氦盜-蝢糟儫藲s対崋W 鷅渶P`铤{P{C$R頞4杽(Gl酴n`穾"驎De?}A銕烴濋n 汉!『{r+. 觚j呎歍藂1杠Wi潇9麒1徫2殅珺+偢+1忚症;v蛙c娧胺侹 塭M!Izt0i`H-珣莘q燄 eFY<駥)頱}}+f->贔谏2广n6绡帧揔v潔紐l旄现2 均*E)2撉嘤颽,{]H6=O#鹋5d7艶s(h昩W囝J宝隋\&C櫔7钛wd鵪殥"h鄙:齢,K鐊}E哠另忛[u懍!F?/]3項[I拻26撟v}?史掘/憜=霒輥冸氳{WeV 份⺶j&962蓀?嶙?"K4w9岡犮nr濑n7/)rx;禁t啎c貨C 齴j-蓳鲝Mьs:鸘(パ]P矄n濵p燠橆狕Uk椤匭漀銹px霃螔揄~苇#)l噌刮3巕襞\0搒p港酑H'dS@ 纔蝢卓 憙qs竼%r:f-"檂 (駼;=Z殌 +( +( +(4ú$l;洙跚Z}Q@Q@&鸦w|c-QE!8<鰻m跱 c岕2戙"$s莖覟莏搨狸hB +)_粠8( +弞 r茕%'Z)h# 嶧}(崁6脂屗fL帣苢oI$垶 瓳'忨i輇婂詥析Aw$瞖蠫鬡,拥 PVW,銥s姇ll6!寧rz阒-鍜hK姦 ;Nr=9┌漃蓪?U瘹[`1曺S'笸I龝e<矜缮&鞙m野祶B錸$稴鍫銕я鮧E禍觗M訙漡雩Kq<褋,庒z9J`c~4%H.\n 尼H稂隸姆1I∟蛰鞒阸夜樺x(q絬%膋)灏N0GN磶'd. 入佧騢q呹潎#済穤r愱戓梠N丝痡01插IP狜=鹓徶)_BZ諭2猇M佥胂缛琟桰鋲了d鳕Q识嶂歩B.萸'>敳#C&苚榰俩諳Dl藤$m$z囹E<) OP14憪Y称8 7@Jx]膅$鷖淧x``〓u跬奜n敡歫喽 =诰Y巕灤跈く:w▓隌zV緱彶u$9晳ZN7讼8j隇R6櫆\VX夥o昛襇脿壤颴}謿陾僿VZ賟`宍鳜 y 3?J逽笰鎬9$AE2_鮢璤Db筶滎鶉鉛\ +咖O4v3]c(昴暽 聩~[頁济/蝀1灆荍撘崌襽-Iy,奤Kn#揜F(.拉料Q莮s眸囈梜c鈥66锰筡rB熺[蠃羚絩贛谪# 9 瓆w 8歒榔9缭*#灶L儏# rH莦sst歊鄑鵗+#e旣殖债yn緓?*掃慨竇1$ :鬅閄gP2,哻紸g痡'考竻@鑮T锧t鋣4珌|鵄9Zi▂Ji1`9崘憧n祽л(X宯.2粂+醐;ma;$C'&,h履ym灝=-盗9賲 T09 Uw󢪕wF>駬(庯M/D0c滕N:燻u齥4湪qV9V鉘扻騊繮n!E愺9愢戇TO"2% ??要d鷡U。洛O趣冿御f7kRro诙霟簶O'?垞宼繒W?xU.ncBWuS扊?耀稱ZZ唔檙vt=獻;{崚鐀贖 潿Q<揢鎎V6x騹 .8;~T毴P岚燒zvR\笚vF1锿l34%鼤I`L頤}簈孭G,瀉F茈騽焈譅疾ka箚q5珫DTo0渀*鋝盈=䲡箳锣3n @鼁b0曛準稢wp@>啰憡奍B0 A5Bm4;嗧T斓A)(f^9#诏C猍!RLc杖I靍~馡鞘9J弯x殔Y~^{銥)Y9抒;Nq⺮RP N 社枢睨Me贮瓞耢b纆<X-騂B愀赏f裌矝q 仨鏍:e裿袚翣 +嘏-<賋墝k|牅鐑鴼Aou纟f鳇鶳h﹨澷$pG鸆锇茕~^湲S8缭fY2 +I圈秊o'h团h+ \6@垸Uh鼭巇-(!侾 18*i'\頕霊襽!凅钋B +羻 e欏硨q貁殣 搮热轫X> 栧vG筁D熀I>剪橔P>Ψ7╩菳糴u9齵6W#4n3懜`N德扵樸#nGC冏8鄰繴溱J/憸/鑯昛钭2狩#s螄t挬 窿繀^扝缡$`"捠闲|#J絡ZL$摨湦荞焲w鳗嵓rn躖旻3湈_4瀴逅4扝鲫X磏c=O_S1=攰螣L憲&鋯壤T嘜鏨l.">iW%JFNo縴yl辝荺2+澑i<孳驕 鯛T踿H#鬃殽:逑冯Z怓$eYd扏=zg舄wQ鵺2!m踇h=rJ═m9荿{bヅJ7xX4NU嘊*站﹕叆>j稰x*R揾魻H婈r2)瘴舥<)9^膏陨┸$[~V }9 +鸑鉬邠8琰*7抗t趀#軫 o裓鞐w鉻颓Lq杖`耮悃9蜒X {p掶咮膶?*攋`bn1礒bK㎞睽18珉Qs#嗊硂e蹊~婄邛榘L土 +w鰠唿荊鳳"9昘帣!2麑i划p3X楠\刢闓鳷┇8|J驱搹駹 ! k!p髋'籴<-wz猕Μ鴽w垡叶鶁f绡索~?贍蝲綞'賎笼襰鞞箒%B切源烔X;奍嶯惇铵N?鉡4P 谖 ~?薁5以r藟0=$4hx 繵DBɡU丛fS蚯q之!@c竵汕Z+)0瀑61膻qUhj/<(勸軗*ば矢寽 ╇@毢殑裐儍唿JH/ㄩ掍4懖%q衏鶳稲╳T蹎D@23酹鄡!f秕(;OC)(䴖0K穈@楞5I嶿滛 #F漠槿汙倣伹嚗J栱42NYU#霝ч螫跩瑇L塍D邾瑏爿6~C郫:渄 +箉2慑41幑;~欗Lg-0)ゲ忆D"澀祤b千1焜嶀磯dts" 癸N礖6Z 1郗H|睙晉鑡謤c声GOO箫QQ@頄("暼?也顧Z褓"搻絧=*野r85J噔|鸓啍/砣`]漰願< 鶸)甍0d迅苢膣PkEq#V綳"厡鋍躑恶压G▽u?{讱.x歡芔N2q烒* Sq5i,z$瀤銓b睕Rk蒨Eid&L 礔GA炪>单$,(纅惢丑q訉鸓窇貤@帒抸釂N烚諎⑶淠)Mq巜{雠J x六喺梧08y鷆症訴I鎉 笄Lc9 >ojU!1P拶玅豈4fH*8枪 +圼M鐈B6濧>扪EQEQEQEQESX鞷H'版滶V娸a;槼躲礈? 酴U;H鶈 源P桇!妙s1伹_璒䱷1 跎q蹒璛"叆e>r`p0z源Q@E<+26N T碢u磯B砣`I1溹墿X燠prq⺻бPp窗癕槐0?2怹;寤捸旗~~Un=7 +D 脙臔t 3球yg惪腅_( ╜c衵欣d6軕丽(g'<欶P8蝬8 +梂揫菮遁8}鄁狹{7肢堂鎛Gn⒋'!`H诨匃栆?鶨=跭8揁Q2鈞X瀿>=徯屩}鬺識@KJ =+v%)瀚: +醆帲綝w&H倓$) 竜^89 +#冓/!;<淰捎杒9V1钍t<笙~H?峐Z`4琁$侶銉堑a綋ゴs碃嶧蹨扜^J鶃燎衍贔m4媌\栭瀩興蹷欇!A朵;騁敷 +V攁|面$B?嫯;r*鸜Z)U);!瞦话z姺厛騋熛CP橭A`t"@b$髝0O巬隖谧O慘2g 鲧bQZ梚m鋷曒綇=獞铥4X翮蝷 $/ 遠樝! u 硊薣l*?糽u鑣(娫簥`栣2\淯3,Cオ{鍥黨lKli優б$r寉&b顁y稔}(*娰m6姿咮3鱯辋R贲(胠萫=嶢鼄?腜Ub沽#<崔舸嵋nF*}﹥]4ィ悥aW +劈桓8'i墙n((濨 +/f5:\买yi f霈[を頴\c8拥E@&F@壬鞬\邩飉尴4鏆V崎\噤e:{蠤`A冊罀顈 +qP鱏i7@ 搄碹伔8臿5迕Fci R0x螡鳆+f9 攰4廱1謶 34蝬隮)ㄜ${r膔(廟k鬁盃 4硜垑N銥Fq籀q#>嚏辫? +"铙>NF1Dz瑎窓秡`g2咄輪埤恬M}.&%S鵗i鐋XN跲#黬E"2`蕗#揓姿 遷&6柫噿喋j饼-符燒]T>ww|簂葼g佋皎浒笉A俑c'i+g0朥,pl淤晀箑衫申h'H鞔L鵖 R辌p哭趒] x 1H@=@5禹]籿嵏1*/槽燠洇1帨⺶蛣Q済焭C摓ku芆諐14X1f'∥1@W=xヲ咷'彞m.捇踻嵎鳣滕誷ハ絸)磘bzpL6嗲5e'u!侚鷸$扤i忱鲵l恅**稉8 銉貂眙獻:2耆It;惘5n,尮 帔幋于#2獓{(rAq*x#F!/.橝 彲鄈#D溕8W曀<区*鹐崠F +媿~(z( +( +( +( +( +( +( +( +( +( +( +( +( +( +珃洯&H_骗S蔔罡⺶ 娔A"271?膝C5繖2,別,wn笃_丘醳誗`戞咵U輵斘膪焞衲恢A菩@荢升MQ +B#T 搧Ne1鵛c徶3攒8%潒n\駷繚S+v0X虑獟I#^躧E [绿嶯􄂑=┏ M竏镘A{'? +. 臓(@^兎n逕L諗R#D?3n,創搞8稆妏覡杆蔱聻脌:q镻緵7"5朶轆`3儙繅沲 7l捾儚Q9鲺蝳驫蒻冃怲7M?匼KX/X3[)衾跗*o;^)馉 -l劀d鐚嚒x跔鐇e%綾灖佅j烬卪=&鳶[A嚌矵=2 + 8笮鏖匔$j<Ж向蚟敢呕碾! 鞘4鸐0]!瀡6g%p{P憆 #贩!}R)la榙,鹷玾6让,(#侴<觧驏Nn躼消 鳳%Y鵬 3pH=}:O搅G?坪(鈳<樸D-議5%s#L姐遚黬h祜 +4n鄺霘( .Eq ;Ue婋Ea3彥訯@l栿D7I=貶╳H醍玏>b(豿蹉譢lA鰻 儱儱-*盫 僝皍 紓2+湱7i 軹YA?施V35惧蔳渵F(筸壉pPwc廧値c岞暔3Fh8隶loz`.h(ア)H%更1@ E)*k[ss72OF; Vv*:x#菸耢iXij#&b愠蚭P煼躽[7辣虸qL毕蜘Q@)0@ :澵祥RE线#o`q*拃6庠鄑虅妻&+|幥锅べ朿H耆态0蕄G妅xй娈斫9"悲 1Eo+=@鐾[苍K碢燃7栯Zt薝漐牃婒窓丮狪傧l院鼌&4π鍆%[宱bI鐵O疇径氀%柠餧渌3}3鵚IYz2蹛9 @擰EQEQEQEQEQEQEQEQEQEQE88嘁袬嵚@詡:c>絠苫hn樆3 ;羔Vk 莐 亝<ZJ{$c/ㄩ挙S(鞞\襋EL炭e宍oz訋#擯搐銻Q@E萻懧鐬鼜瘭袳@抸[秜kl<菷 䲡払L儨q乄+R稾%V@縪CS漍d庂oQ節甧.CE^佶Gh:09戀澪Y嶪4%谲,帬wey;?4袬 [簂緈:鐅O=k U潅獤c 宙傑n's_Z夀鋉簞铧qP鴗9詒桏U漐t[sW|z 觚* 囚燉1@=S吮愵 +1幐$+鵔<樜蠳3职5+婧匬帽 ;hⅱ((((((((((((((((]( 厣酾T2[E#閽s濷q凓S81≧@锧Q$,qIMeV棋##·H:rNO^Nh"荠惉@0脰毋屸 (阈t 髵=-PEPEPP]蹕玽劚P劁}jz((# q;R袬 R'r)詼'YL6佑簑躏@瑙8uu=惺餒齤鬦o.喏z謚%mE$亂A幆臵FX(u苊 gón 怗B(56F杳Nm2'翆樝*暤舯I梖PN*5HK伒=I( t1窳黫$覝.c1螧1V跶脰汕 +x}o呋=I揣挷|}ZQぞ虣T78朕郜{>r*强z繒RM)騾c詍?Z|ZP埯秭:围]F亘%薀B=J輸朾=向R搃$bs8?Z奭Fw搑,郦忿i囁匢g囫衱鐮⑽韓S皭u_*棋叻p輰<鈥0$礊2、o泚$柍屏Z&砷晅9#'淨@賷@ ni嗓1H!嵜媰揮.s嶨9"m隇S唍宖熙S荤侕d$K篎 +3寶蔧&]胻詃炸羧R]臈P>雤炚4棖癞L獃鞘rj 8Qt|弃`P膴81ⅸ=p1M笣-_&q:毶冈v<≤兿鏤e欼29c=髯?i敻] ?D惽〤嵞6T侊U顨烰$j6鋑飵4譣-& d靜錦跫磺偉躈篵恴姠l7H0F .A软( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +NwF1碢 c澔Og譄H)h@$庣&(((((浗p莗迈9镮/{掛8霂; + +掙翀PWh樣* 扚rO耀H毂順硵羦RF箫O0-4綾'h?4釬嗄拋懤 蕗9;邀瓲倄{u碕2腋5+o2卄嵓08跽媐Θ胣Y~噏@4秧m鹈箁A╳燁譏Z1.4e 碻戃 U羍j 祶O\mq鞞~箝Fj隷M磀 A鑡L婭碝牛轝鐡迂P/<<哆俜q鵦"蛉I孔x清忞]%謶*%OP瓜字湚= Ssc揁箄貭F埯澻謸祎衕侗珘' 扚&媕!e,瑍Q +~9鎬9嶞)w婇揇l煍}介?绊|悋~饉<熋sL惆8餁P菻蒨;裼蹑篻,8W\裘t?办⺪渃骈@蓇邵;dQ糲氶A,HiT羾徦N垠邵>7囥躹卫vs蠏F碿g?6~l鹻绁I銱8皂 *煙鼑专畉5傓IZ奛 +c>輍不, F@2c81鳳鹕# R递埙盖榕J4 (%%vt香U嘁歬閙欵X蒨>蹍濸緀&Q忛P瓧扻塄2擖#鴳.釋箜淪囶$摉8R4浡n埑 忁虳闞FF釘怗~助,朑q傎篢慭,&X态Fn镞8锧37Z>憇>Gb7|z髪G扬 焉鷉+S 爾轫V臾-贗,脺椩翮奨魨F'WH>e9z:讹!蜧@*暋x訩虩t怓h抶 0芯 l.衦3撠鸘(u ╜1轓FO疌毐m↘! -暿@莩h袳QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEZS 絼/*蹎靏湭靍 廖@餅礜L^適+>_鞒轾~偗P材1榙嗸雽5屭$? P$~F(#氖蓑燰E鋤*虋鬯逘燉鸋+誵留嵇蛀狪揚\屏T零鐶鉆晈/襄鞆x v珉I,[?虡m}9:d*踩琘熷;Hg`=┗锌隩 尸s紈4覐,粂1宥2<箅舀D瑋C墍c寑$q1苉[by陹pNs狱g拈>"+窚|_~hJ$q朶蹓W圬踵鋐J)a祱鋑84((((((((獨毣i蟋jY婔7H$JT渨霟nS磒臉nr縻鼄依揜紱渀祥W& l3??jXT狖蛝MMQ蕇垹砿<3鵀(xQ輂哬zr}A㤘Q4I4f9*軥$g驙 +歴z3胉汕zrF碴RLW>Zgy象>荩 $o瘵崣嗱[╣,郙U6樴┸0I8⺗薰㏑鄫祦惯饅c埴?迻5p銜C4殜`攭~|珜辋E^c$仂)iē)fr?壉擓S((((((((((((((((((((((((((騁|覓g'V榍醽鳸(挖|頉瞦瘩幷%誦8裸颉T.{抮M:n芽p嚆焭k熭筨P囿姃毷J苺htrA門+靰鑯魁cW|第W?J湔鏦s朄;熜儫馅4(((((((() S旉B 4 d朤 胗湛1)SdwJ萪 渦[uWR) 鳌Q挭狾\a $R胕閺繲攦幸袬 e軈rFF2.盌!墒紮l躏* 蔉H稀Κ*鋪$擄@ +槙デ#4匾7e響#pitu侅A苸啢E"M3昻аEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQH@a廋@ E1 矁G>齣 1攄( +鄙% [D舜喦檗YJx轫@袳T0\G9p囨C祦僑Ve j撋erwd纼PQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@W禂8憄谎庬焧=檄X⊿瞽嵡i (j)|茞wG蹖c +悓CH埍═鵓á((((((((((((((((((((((((((()~ 仄}┰PH@Q:KEQE%C>T񼙗蔆;50(((((((((((う蕝鉫V(O禦[.nc=(Zj钋蛯鸖eB$缿屼w摉$Xm8鐬妩J( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +(鏸蹖鐾=ih(( +endstream +endobj +103 0 obj +<< +/Length 72 +/Filter/FlateDecode +/Name/Im8 +/Type/XObject +/Subtype/Form +/BBox[0 0 2384 3370] +/FormType 1 +/Matrix[1 0 0 1 -36 -212] +/Resources<< +/ProcSet[/PDF/ImageC] +/XObject 104 0 R +>> +>> +stream +x+T032472T0AdNr.W憫供灐)X佬滦\显T列訪宪蠵烈菻下?萛%+盽 +endstream +endobj +104 0 obj +<< +/R7 105 0 R +>> +endobj +105 0 obj +<< +/Subtype/Image +/ColorSpace/DeviceRGB +/Width 716 +/Height 572 +/BitsPerComponent 8 +/Filter/DCTDecode +/Length 85649 +>> +stream +AdobedC +  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY<" + }!1AQa"q2亼#B绷R佯$3br +%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz儎厗噲墛挀敃枟槞殺¥ウЖ┆渤吹斗腹郝媚牌侨墒矣哉肿刭卺忏溴骁栝犟蝮趱鲼 + w!1AQaq"2B憽绷 #3Rbr +$4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz們剠唶垑姃摂晼棙櫄ⅲぅΗī炒刀犯购旅呐魄壬室釉罩棕仝忏溴骁栝牝篝貊鼬 ?魐8儡'岟Ι 傢傸琬 猎溏o9O%O,O爟袕Zn悫ZL '孲|↘0诨荺慠PU丈 +s 熱C濬褩晾$i衾H鋎扥ZFV +`=z鐘Y_藣茿L呓]Y@Q蝢 +攦憙wp蹒鼩`YD憤碹:v噷_髪` +虺>hHv悝=┭沩_$r/蘕?!<儫覠!dx僭汗 +T滍$珩囚儘炅诗y?L\绿 獖\<劂弒D膟M祫挶; @亓:tθU鐚^M罆w萓=q鵾S溱鲮#呥燘廋忬5撴#\6:d漪<㑳n@Z#驌灚料0&(7 韽聴蠈#K袆/懽r棔迯湳'镮(-'崃苨子,*@砻蔋銮┤蒁幦UU[ 0 廋@芠?鮎4柢:城 rCq垡恖壈鳪讼\O`慃=嶨襽6戇.p#唞74y軆$dN9䴓e恲o孤碓s徶o1荱羚啧⺶荼!s姕封z訛@甘岏焭b*鍮9'痣颫嘺<紕6(躃熃!zpqD欝#幷e艪芆_光I孻b奨$杘_a苮蹰V(谑';赶%橲N萺 +咐<銣鸕9甗ob0 熼要葋ga硂V}挢蹶袁尸"酃W8 煣瘿dh-;臋\q~s@韄6)cz!#煰z駊v(+7`t*;-^6t佧鄛= +t +~t%穡蝱e絳PQ鍮9臅秉O布a*鄮G q秀擬脐褋d鶚H%VG软荶`伶Ge蹘w{蝣%9┫9+RG峭鐑師<|栦J嘰佑忓*1w鋟,腘晡#~℃"芩2躻h=は!~_?襽&遡&ed鐡餁尣挷/毼A 陎腠L咹'caZ,}屿=猷圔崗bY娻c晪0扖 +Ptc廫楳ゅA8泸琦T3LP兘諍錅go_^{z曍<键翡q撣(3L榖洉穖P0s撻鞦L;U屗!,:鷰?1#r徊s$'繇殟(鶕1&@^傈?^(@戗,e乣xC瀫g唣<)$W 憣亲]u芘<荍|q鬎R>r咿菰:zTq晋傢茉赎癿莄锳囿寥翣輪訙q庛鼜蕱 2戟匿呴MT]恢%W?6庝w70=GZP8e 抭巟䲠仒葼2瀱$ J餈=)0#9爉2梧1H螑 =3搶騸4鎢\ g擓Q顀穼戦H + s鱬Gκ瓙蹎虃丽1鳳`2\匊銓绠=:Se蠓)弫 瀥<㥮_Z#+!x`F噍{"EI亀Wd氵螨(( ];)閹<烸庈S渖1 LeCy霂>溣C獴售婂霌19绤Qax鉢mT#侷徸鬆VH]赇e埼0;筮!6苧H;靳5錾.锛蘄c炪绿葲稐擉熑4鋱奇R跸,@餆S臡攙G8垩rq髛=x⺷Z)毫"ζS鋷勤渃颌遄z嗫$2=^q隌_80@绋韍戓o#蒫妻儳O枝撶鵜X 寑3赘蟸jV崱iK?y儅襀銥茆+癶艫"',粒聹湉J袌梂 瘶 _\c8蟝O3卒`8扇宒U嚷啍+-嶀OO\怇⿲aO澗赉O5]怂鑯P燛銦R全*籥虌寸宔A餆^鮙5p盝窇軓\!@ +<瀦1#+9>潽#0hQ0]軃9*y8鏌+ec箴CpY詫c=W詢Oiq0 挏1垧$MR樌,禝=q邷T晖籯l';UC笃$ 凗zU戭u~ 蟎c:䲠f奾 Nz莹((((((((Σ:2Cs上O璅pO偫$苑}袄v 毊J<髢翣斡鱹sL`7彁8$qN爽n2H d苡v幪抬9历t*韂蟼zr7~?楃O貄濹櫤`琥⺄07`樏|d?]粶扝蹫rx荍X';v8祁GQ涌z秾侻"靉幖1誙+$堘鰃-诸*衉2Vx 0牢~鼯魻a误挩4獑&c煒瀯绉評Mp狩缮9 +焃dV 芆)棋'=究F臲C爌瓭伥齷,4樳亶蕇瓻2$g2课畃9>絡T崀凸8懴Or[ぬa-鍫=s屶鐘v小cP! 惢綾'帩qI彊藙"P徍y釃OU<9寽F轄t螥?囪$[v=@倾8B琘p3呂}%}睒笆H`牣F3z焈JX酼K~娚6gn;鷘DP/斆ha*Xt銕=岺TE!|oX斛r*泚R@$婿镼M闬H.紗廊$觚M<膽愹7*=I碊P!za兵c訜錛紁F晌8')褨$+嗃硁/廆zt=鶳袢=阔v屻4 纎躓n輲r?SMYp fIcv{q拽n憦艻钽43$◣哷雩$嫲?"摀#hHD跎稂縅Xg鱷8Fx嵌(昉▉佢B鉵艷I'颽聳 +?''兾?.jH矛}酀蓑ch粝zL9 +惹裕裨黥4凞揌戾Py9榍nzT耵$懥b1殝$3]20蟧nq*拜硘瀎6盍苲鷅笂.v8:敯@'狌粀禙虦? +'i/(@瓡鵊9 隠 2侕颮矄9( 疵梧I8+惣uq dW$惸g讓J奦u!F釽𾋓礁黬H豅O守羯倾@瓶gu#; O\S憊P榛鴻F鈾+倰括ZtAWr 宑p:{S暶3湬零?謿>P9儞1?JX|y憬G  凄犲>軴酦屶fDX鋍3滯=!鍡r挧犮秇V02崕举!捂薫瀸1庍吁つrU簩戣i>梧:昁@;1r嫿v嵸 +#与昨鶷D「$Jp湊I鵴<襁!翝辗) ma熐鶶0罥芞1抯痾Y]1綌?8c儍燇鳵)P6喊Ub硆r98埔8=?fMl槓s@ 򍿅崵Fc臙$k迤砢d禞q仵霃违P涛 鵃趠{JA9WJu荗Jh[5綻寣寑zc$/'v + 琰翑仕粇j辋})^!*鴅};聒P\2)侘I1莀1鴅栖F菖A$齪?全2`I俑鋶咻隡 惡FH 83濫V朑廿鴳<鄿=#隌澚7蝪錝?1椎Y坣PJ倎繿郇銓v*ヾWE$c恜や9>紅顯 &GM懥侤W#<;Jt學蜽梾fS佦岕楞幋,4奵睏  c豤﨔,R簫鑋刲惴秀鶳 +gX鈵繿$巤覚.'oR 翮J憗:H=>檑M%2 $岤c#{%篤<溃;摐p辱zKq$k|湘 擑碁羸~h$>P9錒?嘠晴B.豅,JH,a3懫q⺄*\6< +6c<踱*葏A!繅I蕿q左⺌┻| +bx隠竃bE*錫8妆綦@ 慘 蠗戞#袂8=i蠬憏盚罍渆荤 鼄*1-!I呓響鷠Y劇嵥"頢禉>`y硝MP&q9术=縕牋#晱? 59~}㧏1羂u':z誴!'3憫払懴爵spys+副r:冺渨 +坢8T恦爂 8鋑肭^煃DN艵2.0狊嵌8羯を"矵襠旲I$u砩絟b鍠Iw粸[庈{酂aVW鱴_3敱醀稱2j倍g藮r銬#颢e&U ,脼}9䲠i)PO'$皓)0蠕侜S(((((((('&枡&6`慇E灌諙a闯1蓓U '额仉@f輹}軥琅O0`竟匲#鋖銚鬃冥+耼躴摾=(ec擣e耟偰秙闑W塿* 8绠? +~詭磸o8腍Ll|鄥社譆 om篅矞兇幙熜妢視T&佧硿H8盹B( # +F=>0'樿萢住廴雭熉5愬C萸#V鷡4乜v鐠LaTT1,LQd.x蜹悝3钳J擣dw漕噶襠⒈R諤_殂偦r嬪>@ f3)w輵寭嚽nO_菧Q盃Ue q瀤樵4硌巜潳湷1窿!衶qH6+捺r剗2y呻咭$, 2嶌瓡 泽酦++[7体豴8R?萧║研(LAw?1靟锪fg "7 +[瀪矲琫h滍e呭#歌3<2攘懺r嶧px=?蚤篅1 +胿UI髮蹰忛Q苵9>\軂3齢V蚱鎼铢病8 3臮嶅!楋$惷8镗&抷+埃 +鼏G蕬~恃堵2銉甚 凰@J-袀9鑪S栴槃`Jy>凑"崡绡絁ād@蕦菒根I?h扗.]剨!R冊c凗qO27萎伭8妗曑a}旄s栚A徦詾Y#鏱N$u *D 蚋Rr鈙千jkH瑢*x=麕敓籙 H3d897位p 騈z凓P垞b eCp}y倾邾,o鍰.釡)竃p臐╮n膝96曑o鋨壤$a)専潏zR@A悅s詅唗b奵fe~敩蕭 #=3忕@S#R粏$s灴齶2O9V瀮吞舩$怇W4劙庶楞:髱憧Nh鋩8+租灈虋媲鸤瘇q鴝覠滄莅T嵽劯 !诂a嵞憧<+D瓙某`@?/覕@锼e巚戣椎1嚃1贜y~"闼fc*A蟘詞FQ6;_閼趰鶏*Q姃粊埘C圦7箰懨趢9晽万B捾v齅HXy`爴 馪#*搼樊p}z懾 銇玺2">w2O镮qk鏯銖9偵)B$q橡裣酯w<屚*_q3頷)`6芠.A?煹1C[ Q(竑`;=S幷$瓐$啖ん槏neq(P頻撈9;P Fc0鶡" {髮SVgS" +炟=秤奷`H烩n$t88闉?菓熑cn嫶c蜰G`8隌 +婇2/挩F +g c寎氵&;薲S轀輳OzT,覄 $n=<褴冺M7D尗鍛聲|;;~d惂戏)BヴQ葥8z撾I笎贬Yc2> 弆RK蓛o樏莯G 0槖68艶菍雳4L m&完x肫1=9鶶銐激G`?y鄎灁錳P"肌9 駥?蓂W001剁R雁n;駸\t臷鞂 vVN6#+Nj 處懜@竍~3侟7i ?1婆9荞觼@ 栞-墔弙3蝠s*'昪D\晄'h#=,S鋂v猏'削0@殪:鈽"Xa嵦#Cd'媒G"&捏2扩 $惚颲\0 ]菮0J昗s2 蒷渹=贻瑳荐囿@($ +I9蠷鵫B偁呴懸@ QEQEQEQEQEQEQEQEQETS6胱渮T碢 <侘#鶷-艪'5胊v=\Q渜@ě>骏K竸 "鍂p爍鶷'玡擄(払P(笋B;:O 崩恰昅钛YW管3螯企d 熕璛X蘌頸刧s齢W丬8l儨r9╙傚yYX +Z溔恬)# 化<绡a(歍唎x薱93@ 瀁3羂s邘鼺?齍1抆E +0:b"+鵯崅A' +s渢ⅳh葙$揱C#u烯诠P 3SfW檨oO#xTf鉷d,|!x9鄐辇j腵3)A李*p1詗y墨FU&e*y$鋨熺4鱙領膮蚧2R认^阁KN$fp遳{ 彔戕瀳錼@< 8鋬蟡_鵧IY艭3﨏磦Kr薷潺@淙焫.J冂垓顯 -磍斫両H 徫顯=>焃懶;鉵c g驺駣6侾|瑗6麲J腣N窾閹贍劉C磦F8O遨譀4XR.8胐/S滺A 0f%x 觞i響L*︼棞胂襽菷 蒂癅 ⺮O剃认偳v9dc灉鶶$梧N3憣~x*h''4"#埱衽;x枢痪)眒0rFA26笾92` 躢! I驿dp愣N阒楾⑾&Z-/ ` 戻q膝XeV凄F{#槜Mps澵89 Y<T翮8鼆8鳐x撍~7!靟翡酴抐X鴳x$聻<袏f鷾P拃B`C}鎋O\sQdn@I 蟡槯;*蛠蔸wy. v髥:鬄X憞疼$婆`򻯜n*蓉@8膝,瓴2 +胛 $獟l026渀瀐貜s'x`gJh蘫.豽黹窇蠣 軋8轎-柶忒戕!窢;戇=4岷I,+6帚萧傈 L幝VI1陣酹╫魱騹*>颪x=z鷬搄 yU抒 李4HQc$a7钯吾競1爪:"5铺 t鷊赜's # +C摳岎3煍g趻T髍伾襣mz耔h旮!4錢瘷8睑T憤崆殻摯阕渄褶8Xp99en1苨9鏅pw勻c嘝&;1齌6H帯肩_憥廫q帨 倘K|焓11坠覛'd蹅!9溜湡\T~g湇0拢搥虈狌=hUV2::0施岒;煰o4$0匑[$儫焕痖A嶥8Sc鍣9?:S襀2"7嗱雯]佝|cs尦3n,扜更.Qr市 $%<熷憸鶵喱H渵e3訌謶#r]笪'#竿6CP0W飁A狡*C* ]ps鵽~U^5L巢3 +灖撢湏"F@Wi䌷#祁s{驚 $&觕゛吴'痖gYbp慮wHz(#匨)戁6嶘'勥鋷樸=*$I驕栘o訛见鹵Hn 綹baFw`苢鴙娲m鏶I賮纷礷偉vD鐜0N1{溏(蜞鄊,)c玉^镵H3亾撥倚EPEPEPEPEPEPEPEPEPMv毓苅媳2 R悊r'Dpsg姃\n$ 褛*X  饪(zJkc(w覱L喑矐侽藖佊廽#A  格哌5!(辒j2埞胵軓Oz+昿2 徫瑸h晹鲒\懺*凝馊N g -3g'蛊掭 辇)e懭 僴q7~>b9c 体FFN}A琦P昐籭's矕;龍媵*>茕n蕚A愎脒.c+:,I硄箨1眚鰻鈶,褋C4\駹堊%遂愴漕!1韮胫榐&窰乳0 綦螬踄貀e 蛦8躏衯*K}p1宷帧赸Sb蔯i_怩沾(Y崴d帬#wz誜檭磪o紤笪?鑘UM◥0悒鵽炵幐镖濼L釮e#ka簮q:愕C蘞﹀B4j甇`綵PH⑤藭p閫0珩琰He/剸惹=懱踂搩子叩FQt趤9餒霂p軝J3z7c<鄔鯛_1衻Q妬挏0n=㈱垺6` 絲~&傭#7# 阚焃d钆`2I. V\1徧篽`X<幋n巗镫L杊崃懚冘(&$ 艀$c8;訮H'駨1NS^=qN媞6儓=G鬃奩慶]葞蜑 上簋"篇X佀擒(iwn`6 =△鍁m塍镸忳愵~C屶t?xR00弱>S馥F岒⺪絲 *峾田B0 +伬#?懲8暦顇犁躦P:鋯帆p};覄+&Wh\漶抯O蕰w鶑8 +膝"Dㄅ蔡rH,s岝趢Dr嗷l8郎阮y隣Wq閾撏Dブ3,"牲[y鵄>?JBㄏ;# 壁>e■琦ㄛ穦守l|浇徑 )%rK +g嬿0曙蜨<煱橩6p岗3靬齢罷1`'┣Zk@ 1抒'?J%圝0Kc麪?廭袁J檖@'凊鈥笣; +i5bダ#ā2 Vb妥$`s豎 +yq吚抳羯濑膖C琢%百缫梮]+獙s9 +@奭塴铢pw皮s.yA柷j瑦颼罦伬,0q蹚昲袉灏?ZX罒k&1'9迺_3%誷藅<忓@.)蕫嫓囫螻遭猒r匯柏膣s迲;ip貄℉鐪~u$y戙t蕩A鄒&(^Fk抪烜)1y孶p>枞s蹉*eky*1煍廧c9劙h亜帿宑轼佔驙 D$'h伹颌Fg+搻恚斚■sE絑嵀袀猇遶|馒$﹍g(^S路+鲀d. 蜦?覗4蛟票裆颏-笙4論#驁 dr2oBO=(Habr鄄= +帾Iu呚>漻 S3H宐u禺]2l愕J螘}壉pz绡*s睑R:橾忨qs鰽酊i^Q.魟0/vH8$t)'峚嶒"镁B┹#徖冤:9Hm迷s诪熶TR.p改o.嘈滹鄑#~A*昞銥1灅〆B褧慶芄6罄=Q騼FC掵聻冃滙砖镾]耈瀀焎屻唑VeS+`mI]麿ooZd賛婇&]9闇gj_( +渐# #撉o隥33蝐ER8oO菬A@ 檵2琻娔^rN=诚颚鵴蕚6t<漲灳9QB1媽彁珤=:芋癣&躠I湴?蕗+葲|筪H螨*q術弤鎻6C 繦技喦捭庍嘷Jq蘎#'済撚弞S:圱$%G輅俗禀>糅鐒H諱 +v懽折uP屝筽?7瘇誌LA*顒bp ;`U鑶!98Z瀶Cu(((((((((牳?uF 羝jz奨窚鋵zPY6o蓊 W-更荥5,郚z剓踞u錡◆v諣$暺Wt`钕?鐘o楁槗I楎J,孑祥顯^E芫fI&>紂弢z覵1鹼畫竩夕> 2%WsU#+邹鈭洧3濬>:cX潵埨香擊長漍彼?#胬<喦ld詰镘%9wr m滵頪.龥y\翮8殡迉戙塯Y剱藮崩P=y绨#篆)%鍞旘渀3煒0莗}柄凵$X^ +6>p3岕阌徶∵Fm氖$#i艶q徱剾U犮暺x#煩冂劁H诡O秪個,膃]榗唕NFzOHδ踓"豦f鎙澉鷙 芠 籷`x?O匹忾+箾'8惴y锧垇29T >g頇?%倳f鄿v霂)g` e*%E容渀燓穅遭& Ooq荶PPp厸灳浴I芚x=x> +Hイs88'侼鶷r-酶 矬$狼儒Nx$齷螼js,P6a顧泗 2H邐勅L; +簗>鸽莏Q豁向T铍灱~T駙pN蠦zu琰鶶9藑銋鄰?鉐7l嬍W寙亷焃H体嗶'!X擖+憊匇侹=p}鷉涚Y<儳9阕R"U\0<`?ZV,s恲詄ヲ朎C菓哌跓禐2畍撦Jab夺*谀$灳鶢堅6釡簏Gx%iD灌.>鼛>敾漐$峌K澪 d民 渱T3~尿C蔱8荓袅?旾(2氽锋'熥.=@鮎>P 惝1埸鳡,v\m桧蝳z検h!yPX擄宒qM=_pLt9'抮}9(#谭;Kt vg濧範垆桶|蔃蠕酾E:鶛$(歠撶贎8x艪XT奆_?# Q:䲠柃9 F>R<Ja懥h鋵I 湊欠斛T撬+#+浏o痾兲1飰鼍湌s苸輪I7鼇6鵯Еs缨隡v_66,a?"澞z< r鉽w X8l 邕覒IY] +.寔帶睜无qf悩鄻=y顇05堛a邘 +YJ孨d!9=\rhi6**9 嶰革灩憱"P/崓佅a拥K]Z!T髇鵊8匘E}羶晧i侅{磳蘐X苧苬'ha8椣Mれ q 缬滷╢筡2盨祹込 c熢#埋媐}孉t鵌d,凈眸P =豀澛︵0 +渦瑛}(.覑 +韂粃62O隡糤1伔x沔懴9鼑JD崣檈憌瀡0~櫌浃勄 .喙螧z凗E疏馆 g蜽oO^N01U +2>钑T6:n鐯狘*v濬],烁儨犉I辉)O亝,Wg?:DF龗a~<`焜LF雪嬎 紴谷'種舄#ゥQ恞湒v㩳PJy{綺,m\<:渃4.JAa蝯uh兒眝梧$q詚笈#N翃3浏 0蟐q鶵檵FM !龄鋟'駹肏60y c颢&小仄x9'燅顟 `厡堇8昲郇ˊV08V濑y X?牋绫儨p3_jZ( +BqA8=*杰#鵑螯鎥-巣妤##慪P鎅怨#撧礣a@珩(((((( +2ij)焗\S潐b 檫瘿°=榍榕2R 鵊>垃`;f*F#卄如'肢侳K& 輝顊_Jk頰0T鋝>濌%l 擈儍蟐?皮髾a皜僳湩極}rE盬R'渢獳T虽Gj9P'=j仅tZB脸濣戂=hx4jd=?茽误*oe1鄍y騫掞升侚W''佋cуLT輹uT)躹灅-情@鵏^;H睊7任}s姕+" 粖?9胗9胄か&.翬.6礎悊9,痪PHu钠K<韋U-#?N}盜祽Yg鏱8褥~橖{f-卋埐1恪鳅5#恄!]W亝#96&鋸1O (Cq+;X滅燓$磫6r怈m<懹冯奷l*/ #庈弞%f2獏er{0q臘,1U嵖膭'顬zc紿-Q瀑8?,唀VdQ Xno沷廚匍籁yw62橮#gㄩ锧 +噅E铄囚'丵艖盶F佸K0$鷘镸 + 吀%斜T穦鄮wT侽3r敁(脫s襽.冶e:9齭弦q蕪捨瓡 佨z跬檶击吚 p6q:訒塙I6f%[8E籤 ?听馞r>RXe絧=甫萙8$h萣 Zo擳&剽bn睁膻M?鎜v讷7讖0俶緔C!RK匪91F+,穑霂CJ)f,w+爗MH=s訓蠒卄1+詗(&6RH$|叵鳵$^LEa\*瀤鯛惾衒!等8氰hr熏y.8;W飍鶷e禙%賴擞=n?^"Nn!^U萛缍O謤G *増`呄o^玫 驏-<鄬`伹n徐*匬^Nu鼼鏛g矋* '屣荗~hI⒊卨鐀9c寏="寱s0槥爙軠箅Nx螓葬榔Nq彟i翵7钲渾戊庈馌+嚆憡%6跼釡9羂!姴索辛OV<:齣J+矀}@彇汸渾芆A>磽惐2侐z蝢跁F\甂(*: R>g$戵疗qG捿 +砫摕Q:觺砉祤 1苳灱f +亷慖,!H郔Y潐nX実3k0m1V轫鶷戓ん C&NI=?扫dIZ8;瀞千9鶸埵3认4!塥[p# 鳕椡,@U$ ~+ψb19Q廞踱燪眃枚 0惴馉lq:;*y'耥N怤(9閷裼迶艍憿e/!#:v讱$巌'F1豷渟忒\笄OJI鞅$2/,8c茔馥G払後}( +S:滝鐾5=蠞 嵨F鱿梵$ B萚nNNN +篋9w?Jfc朌"辣bNz鐮妞a$晔r郾 <笞颚 飻dA藁}z~4E0咤&鴵w' 向?鐨"评弁暳凄3O'9晵P膽柹#泓h;W慪u9'<~tj ゲ彈1滝廀' 峭岒GRq鴆歴尮,婘7T2珽w9!G4襀# $1?Uf懀. F[#懭<僔g鬄) (牤bp糳澉>啝懓]&%恫=!腼@ a潝e\.s>ns憸赧崐昖繮A8l 鐚~uZY!咸F嘱9糸V瘿b>旯涡y疕&摋U奂捠瞹?*bHp_攣灊~烰%1c歷 蜞c+J%跔v撉|諸n绖P鍬)熔>单m嬘铕狆=?:瀽g紻Y誜62P1擁J$;貼觾鎬%ⅰ沐!X銦_пH3q灖隌濹e変rz諸e$滝蚈v鎃8#? +瑺I3熉禂偅>鯍)擅z僙别>>((((((Fr昘C鏥##襽*F丷搞8翕籒=)园b9俼C. <溆U凐鐬賷悿 ~|溡难!財繭 H#gf8n溹狱饯8a搹s@従$u)捀羁S⺻'8晪┸妙禢遯怇稪(0H*@= \灁Lv0#c禜|巬 ("u蜚wU骕蔽r?J北]c|棏勿q烲10&薸檧V霌溣<+\;7侒m羚朕"蘮" l熲?楇Q甥"H #Y簩懬?鈽慑鏷S嵙xn@9⺶J哷瓮艫绉8v鈥$萌岆$圔|籊Rq熛帞魀7頕l8 NW肭8渳MD餌0嫆|铁憥n4>X8侭!W椬9螩亰T $I&Ye9{t;4a去ON4亓嶶懺樜p浒' 摐E,@3铲k礗 13@C册cI6%veq冮槔險^D[6D匑R瀃嚡a苕УYIO尗s躣ю."Tx憊砩軇n$c漼Z鸥瑎01埪郼?绛L#L"0L擱8朐熤-c.捈|冂緝颞b%脪浶檁#秉8龛EH驕㏕W鵆"泵g陖砃1gr*燶 渮?玳Pm稶UmT.w 銚槿懯+O `匿懴Q鵾寛g"5V~O 瀦觔'`6q$u縚鏡肛3舜t_涘=^粼槨8肂3礼:9 +o攽紝s戂慠$辢gG5$zu稞8牳窓v#H惒6q+佑<( 妬&b#戟 1榜儞1#寊)!v2nir匑P贠?併&湇"埳豎抉邿槥掭!Y錧 +噜镉8滗sD榙/uu芅O隔寫瓼H咴隥$ 鞂#)愂pNI橄`甾&轎uE9Q责3镻霉眩2q怯姉&摺珙凕F匤1餒=O?h勴4g踨sèQ9湊孛砱,p0;瀥黫萨F夿 d呝憫{~枣 He!US霅84"0*6T+鵗m&eU'k&]噾燇轫B郦TàrG鈤'>^鈱1扂徖熤0屓F1X^(i≮m$哈庚id愢l蜪8莖覛,k+~I螻児鈥0诵32"増q [oj悁骈蠕赧幚騒.3抶跬,"鋘9`縺1鵖鰩:耧L脟g,`?.磋鱵k稿毕(篊*$鄙 +牘;焠`fgP錚 +=s邷SW~鎻葬w呧庛撚N悡攻郼(滎V凌G^(穴H鍸懭憧鉏鍳&u蒪絨ZB踒梽咡GC垭覊lA鋵嚆痭3=( 愛玛 +xq? +搆H犱兿O箅Mh汽訨糮佅繁f崟H菟+朁:鐨v湄锍n 駜寃鳕 +;$'佦皓債噚m馨 +H8?J3父wE; +$渦跬"秂e]厒s統'3怯犻I鵆1C妩窼寸廅郥呠0 澢=癸$@龓U禽$鄑$v湫N偨波'栣綸厝躏Ipd,讶脿 蜚摕鍘磽M釬<0^rxy晢[p 想焠挷R>钪q燎<鏆LM穊埲刍`<聃蕊R y剦dt-恴O斢X明鐄$bRz_zi`eq+Hけ%(q蟐搁尧屇^O滐p+宮# z`{t$3(X箁#8u;<~g覛媘v8N0Nh霬D榲"!F$p0蟌h贉H耛盖-荖汆黠S0≤坈?廓I'寋z䲡6/匰匛v8?向g彇寍';禑I囘轅Y谤3瀩?\U棊C8赥?Q蕞40m觳A銥:t齢痛+$萎2噦跙鋟'鵩#sy旲v288I 舒]7'gc9#~昛W!K,9#绉Rd`陪孛'顚>箭sM|濟灒奱*"9鞘偳舭) +G樜A9'99荗违TQeo3;釉溏=初鈽硂"=棛\^.h蕸窇!憤踿9惘C盹J咲M縢Ez_聟呇櫵d}躮沉颩'2郢鄱;碐r蜰誤2N1g>现椡X4M癲廜n鈷X运T岔/|依m蜪n傥070p1膣3<评+縺{}9銇逌#`丼伬巯汨:h +(w~O~(褬0: 楞訰軶[塾鶵Ah綪!実'#怬4濹%%Or缩4懺'vK?.話,.N溥鍖m<n籀2昂3qz觞驥(迀禁C H认?с@ #(]H鵕現<箅H顺虘_9雽:S6懙吾詚SWx10 帢鴬云F u绁C晴HG p2穙痁慏`"伕d8萠痿"C2惷h8*8|廽s9Y飽规(H$`3W=Tp包*"@覈h踳2Tc擐N;滪圱I殂х@F焉'鲉岓宼RsFd<銯zq咭繺 a塅e郿鹮⺮O岼H濿輘訜l`{P搼芩堠岏郄酩嵻"┸蔰鑨灋鈏&蛘#艌'k)鐭A滫惘J|尙拭J翮3襽 %x噩dmVR倇g82朄ト儨(=A蜙相8〇趂;^WU桻c炃8鞶琫鋓敧 纃r1零<鸓嗰鎂塥~`9Q憧鏨庐倬 ;q迉.袳QEQEQEQEQEUK睹`羟隫陼啁厦U5s肱IL悧l滖于+湝 +QR? +v9韼黷wrH蝭悱:U檱:溆&a,#鵳A9|榾I麋6匋鼱l艾*烁v,煽*考埝?螇d$崾* 暳<翥癃涑[畇咦鍣6盽 $彞N蠼0臒橌疙Kn螉娍(\g便螢Y諝2W-灊憮DcL` 鋧阕秖R攩Wu鵛XNy3D绎t#妁ㄩ鴰x=*3守X荿樸:) 肮尼傸崪w綮: I 虞;袒@鵊s岧)c峑bKn𗖮JU崜';唓鄹鷔 6nIs亼吜a仠z簏臚庱@U3( yq憖08蟌x`9冷|嚍泷鈥Cwg2瓦o8惘妃P-$艶@$凐酽3紵1iA6G=磕A儎iQ徥W㧟б好迹90Al笙<麋箰B媯蘏扻) I玄鯤H +z$馚2笘 +H=3嚣 嗢8=i隋铃27g顉瀩z歍#&?洨跚礔懤·揉$俒8}Xs=?社瘿 唺89鋎+7=絲歵0,秨至9$滮I舉L0 8=OL矵cL 膧牅d訑摶 湉jBY暲@O?峎K嗱訡k#(铐Pв?N(1.P 脙蝭)&b掝唌)拀簪H賐宑<?楏樒寿('8=䞍徫辿H 躻帔馡:B欝X碹输.{鳵!憄賋綬H鏆酻dc麬 l29愶1膱268!#>熚暆cG2勏q_5鵖铂o) 廮S;2#ym灨c&遐诲垀*;r踃驶QI蕬笋8>瑍`I$社遥咮,' ((鸜Fd1羽鈽灏華 J憗荗\簪DakhHRxn揪鬖瑩0!8蹳o?肉"祇1N蜇|潊wdp/*&y觬d蟾颍>利酩嵄劧o7h<溷據y4鏵&I#R氏睍lH囫@ q;T曖兀叾懭 悀啒?3亴*螿荿櫐缓輆樕俣抮}遍殪iv"G搅羂錈^;s丽2Y勠+顯莯鋱苝8e%&V*~P雰:t惘ZH丌吉2柸@'畕徦歴>軈酞w咙9锴縥采 +欍8c濧鄡尧髠硵吩w妗p痻#Fc +8马珧珲&惼)0GL渳:琦鯛鼠4 沴7 +r@ 鹮鵘6A] 鸊#z1~unx2幢'n毃3,8 6臋U0d簚9=G*+滩纋rG箝U瓓0Q&譆v┵;煒?┃78發1若鉆宀礤簮Fz旽\|F^8橛丧)禙`9O:PJ1:怇: s羖绶^瘣p圬d 殻%溶茕抂斧B蔎╚9H呒ER *茊,#u虰堞鞇#|狕u )w5嘸懛bC楞魻q$5|嶯}(镐w濣'黫渄溣盖鈎蕃屡0I胂知鲷雩8{<=閨卢r眠隝蕩奜<謵8#抙3憥鮜}j峓勬1鞞QEQEQEQEUy2I恞臱1$q@螬 揚鐪愉m=齤 9%OlqS凥狍Y唖曱权@溷泀/橁:蹊7y,x薵Zt燹瞤3傣颋^m23鸴AUd樅銣9腚@矬"28覠悤'鎈c卣`pq煯:U#尒8N劘#霃~9 +筕\兇t)蕍瞸)9﨏右%B 6釭=傭x㥮=FJ嵷偰腴莹暮靑a嫙拽,-絼憁Nz_疛Do`c'<幟8閂銴2鵒酅 (Fn橚t剀'Y6釗?膝,瓵/擥,s瀜锱*br4O躰@I#鯛F菜r艭伆rq羽?滻#鉷Q8幰85菙拡腥& <獏鐑鶜{1啜=y 笮鄪cF4恅拠0盹怎雩瘹`"0A艬擅.銓淭屟0撏񠵯垒烓麫"lA怲慉饞瞕A^CR2溧?莬枝L洓*I囗(霴縕嶬馕譺@贠坦~T*垼敐脅鸁覂 3. R6辫?杴㈱莶m薾(銣襞D@仏@6鶉b=竟鞞濧悘/{3m祚嗓DW.厝檙Xp1豼蝡z訙兑 4膪觸詠W;=Cu>儚謤(鵜8q寱搸哏帧u蓵 =臛衼蚄 +;博\銉朐耠")m術#綦@ l頥 d _=閽嚈F 兩KW 9趚*~煈麺B+W y鷠(翋袒_嵡畒爪\铂o/梻p籧v3=*M$b17彞6D<構n~@^B'=x@孄昆軅3皌2弭% Pv灅婶丬~t咆]明{N釹⺶–韡821苲齷萆(奬彌kc疉?萐#i侶Qy捥8霟系J遒I6鋎I削9$: +妚零=橠I:任翀(q専c庌糅塕7赽$黥蓪趨濧认8銘球酩罐b,峥X{郟DR4qy騨^*8鄃6O6`鋎 p粆齴灁枵J鏷燾9$巗笌Z崕 +; 蝱鲢1q弭h<~4嘌,#2鞞8'糸P%悩#恱悯"蝙|yd挋A蟂熥鼩ri箆塊挩蛼A膈睨x$b$.#q=1&#$5s(}脝>睃闘2&P褋晿/=GRy踵PsI偣V媕 鮌#酊RK,R$刟Al穃岷袂9彰^2ON9っ鍗鵼芆绁2S墧耻n#g蘱幚帲胏V蚀n嗋礋C弢*yx瑆'wOW%6瘻2 FV頊焇溞沓吢R%粺鐡诃掁bmO)橔裼斛*0倯窇灊┳@唱熔斁T t鷘T9 -}檄86*湲s欱1]谷碂n~骏; 専榪摁$\滀1碛\Um`W$流0HO_z盄(-#桏Cs(l鹺S3zt颙穓嫳櫥p*8`'*帢S嵄碃(騬) +件tXU楢 摇U勉蕲P袳QEQEQEU[# Z贍 +菤1N*)b8兽RaH%卿* +╂0%q9矖'謽鸋粎G)c偳$幘磋U偪|H阌覅峕I M(壎湝(<X9巭锤膟a#=颃qH!苶ZP ! z鋤鸓1霼谫減z匝Z/毩㈦嵷1彠镾Y[1!''>>6cH帱)屻宗紀#偠K/%?椺妡2鵆朇' +菫樓N 厐鍍1 崢=<肢蔮78` 礴=鬁d}救W{2"珏落=痹樜eG焤+3畠3儝=/樣圐縬Q9=0=廮镹2n.q亷>丽鰻℡nL_ r98鉙 #rQ /╇詾j$髺%!石E*8'肝?Jw'o,L莺崸<寋価hf怘1 ?3MP% 黣!G詃~i墴 G$~T%+鱪x;>!豷葞弼籹骳鸼'C轏 \x9闉qD酔贸,褠Sj侷黿(嗍崉[0=z跸7)*(刭>Lu 忎{Pヌ襉圓:岱u'字氭42R+澽X)9艫䲡'抶bIC樥B隔檫<焭I瓨$〇旾鉱釛瓜N敬m0|* +怗翕墮擑Q; 憔 敿彾h鲠罖7撥鄮@=?腵浭F|$=较荜{踱$曓8鵜I3 9撚 p銶埨錇 =砃+4`.@傧椢=o茊浭vy\(酻w|'儝:;P欵p孶谱曪涌nz妼)奙執罾扻2Ht飳u d"D4m1=閶'餁8觥"膔y綦撺J6d*.裂@$g隤gAx*e渱嫌#朕扵$妴@@P砝$儙逖$S赜o灙 蒹 (0惀6#@6甍へE襃敛喇$镼嘬:鍌1AV1谞 }B!忕殜毓 )!槣銘弌脤zS鐁矮斟#葸齲蟡dF 8|欄柠P鉼惏fめT莀]睍蒐q貟z繇隠1鸔 +钌苰脒2B1h劃孒h袓烫軒;u8#堭蹎韮nNz?朾T-埔牳> 阕隣嶰5儔J3遴8?槧2〣1瀧s廃~x肱9 +偒箮8绡8酽H鴓示`p苢佄~緶S佢徏籶3;v2*c 菸N1灓R[g噬;1<69闅Ic崝y拳xe'搼鞳s(o嚛r?".銾#滵& 鸉p渧={r笁泎鱑FN}*4寰`ぞ3熕冸 Ezd$岓煡B(藁w搁雭趱#3o0 |踿衾爲䅟` +@x#庄J斒A 傌琊1鑡荶p翆<琠v +宑狼譀n鴳褾藢s灱~BI< 藦棪NGL蔂芏[薂day聦s巕詞斍昍"継;簡l` c?хS唙Bpwd 劁{鏟凰%粭 +6 +铉#:6R衊.6玼揉v9淃 h?)򷏐=荢R>鮤T/铗8儙O:嗞%朑r%嶩$8聙F0.d厊lc佊5 l捱)捂$|偾\$淭#蜮pB禝8樨s鵗*辌lf餘0=1廜N考`d2H崵dr;冏旋)$匴潗8茕1<雄銿x骝埳恟98现殎C紜'.珸厍=t厄1@R-喽D你9漩o騣C劻U|癡1$2zwz觕%p褴mPA +G$1虔Q莀j_辻翗卆fFS蜚痵1獮b'j跋~?C>5@%椝竛d绂?2琐!i7r䜣悃#< +y蕻樬g>S閹~灖躊o灏W樝湯1td3酊Q囀时1滪篾廮~)頳厝eEVcFCg*R碧n劙_皆㥮LM酫僮'鳏b襀嶺鋝1憖3廭j r?趾?;3摕H簟\賕<:缱<牉1;弞L侳缌葶?齤l`g9bB$:Rs.U廚@鄔8 1p9n b槤8臜がm戏Jr鉧蝪髑S+g 納g #gGZ8 A笞"W#仦0{誽笄L`绻蹜屼毌s@09*zs@)A< S}駷燥衢儞Va蒎窭蟡:U仄 _(拦N椞p8=;z*?y孹訳寥 U葞PP琚(((+>噫V繇Z 苢鏎)2殆H^厝ls熺@\酤t廓遹@ R3s羚隝#緮'R偑菾'=&靋灁誺 栭 ub禀猊 +2窭认bpq闕伆2 44smVi\9惴鳏y涿瓶(R8甚蹉?嗐hq6捔q懹攻w"H鯤qN@湉+L稷`(a8閾幑9燇8崴0+偯硨 駺俐|S5憯徒 蟄呻邚隦4` 洗G$搾1䙌衾v'k`+`戣鑪詾t鄙埵0莘b対紲徧~U 7e|酀唿阒淃桔墥-菒偃绡9",杚捓c9o隢Y#驨醒剀刘 R@T ]彈茹=i<1d&6敞o|鹍P +qF +2匍御RFEq*鵗塞=>澟-〦RcQ(f氯T湈肯歺#j8 >G滙@ 06;轚^侘n类u銚徛ぼD缣uF2邫稄^鏗栏es^z +!肏<樫"銁跸L@蜉渽2伤4夽冿訌疋塻!)$侶鋤髞1T/槥枌勦`瀥5#嚷炤孹}e樼陎鞞 !ux鋓S7湿亻*DR産辸c偅 v墹TbF_3.x 62OЗ缱跊4E炉摷 +%夌肷隌 W塩 +IH坃iQ絮煥︰沱`w堮嶴柞.綢dH賲1優湈愀縣E]*墎巯l瀫銥;P咛)"e罖6袼s#蚯颢]F毁T寙S蚬珏'肢愐6謴鐂懙O$鑉;TQ沫厊<楆q!奅)  + c酷NfD<詖xS懒撓N;蛹窺>艶‰岏酊`Sm偬NB;慆^Iff- P7.倯滀煯x螶IiC;栚q'''巬0sH7蟺綻+頁睨5(h狍湥爊}高豸巇 淇 +GS 袂4$r|貥8L' 囵S钳z/尥*[1怗|鏡8FY;罾 灴绁9c?)寈`8-(陵}?偏箶!B 癙19渃?^,yxF愴榓壪__A杏#;囗 <銧鈥$7DXS挘q9求úZ鉸 虈G?焃v茰 昚XH6灅靰i%WX$ n懞.簌澘齮>E簲r駬朾G茭)矕聼-]N蹁饈?狡jTv n呋#9疕0瀁P灌褡謤QdT2F20 趇[~~P鶸}ъ使忣棒缭`姅馁%%d鏎泩鈝蒪爳勸臘矮愱G4對P4 'ㄣ颃5f9r剀?C蝖&9C,p拵|G┣ 蹶0榣*钰棬=锶Pv鵟q<斾蠑墜$滁p8顯矕I2Ibd吳=)e滲*禔躽鄘{-羏*颜昜# 蹰煣ZB禹俅|菐A 俿上Z!b犔酔 #&榏漈$Gc寽瓼;慠蔇R际基豷佅}*蓟柶%vX=q@a(A怶厍亖廕玴帖>湴'$g?1茭肇鉛慗1L"滗q锶*澞D蓆d#麦恲1廕懾)c穘9鋞3((驥鵼蕝砥 㑳$"鍢慩蹋,{O 奂2台蘐)繽笭 @踘峜+l勂0滸n蛪 +甥=:zf欮琽y6VB爮\酴#b-$晥凁滕翴楰jJ忰@lzqN蛸.we檾遁紿9榔N85]2)wp绤V1廘缨>则╃靹錣@闪 x t:"HE览o,爍=z{R亴fF @蒹巟=G!uYe昫br里>飈阚Л8哗b莍廊\d`px=;B薼L{堒鄃#灆理4蘄谔O钕 饅蝭9ハydc讕d鄰~蔌=閮>J=JA靭~r釘|珜=9陑耜Bmq暼hv;z c扲1彈9珩滯杷`#鎈`gAnq詰奭莖b@#!y^斦#;wn=茷1_ДJ櫫頍证p3溤Ql詷螸1渳;u$l尡笃9゜R  奰抴8螶Eb鳙術辐調戵p8瀤鞷幍Z霔>魁j兛9)冿 赳鲘(閃擑舄"%P蟎鬁咰擑@雬x隻頻椽qP[臬QEQEQEQEUi$劀:砓.^C鈥+儒蜲镼u5# +@9鞞5猇S輨溿#U躳H哉E#+.懴U67d#舁W扙Ed餢3@ 3◥檒q身莦Iw/6 笈Bq湌c湡ǐ骚,cy^y'湈糮MK碸_棏!A$媵牰(C捙[挧畒> +Q溘矃怉 d滝雽F鍭s+,xLoс@答菚厡.r2捎焲_aU憌J.闗p抭帳p*'暆Y#<2c$S蔽髶衏廧擏{19噻8潃<湈A:*竩%埰^=巠魍KDQ*H 藹l徯r}:蜊棘腉瀃顑偫r>漲DQ洛懨 寋c<⺄哤b荿焧珉鷾~| +恲 r9;s祿蘒R 憺 n'8脎螳+$琎滩3顟T煈睪阍~,X$S g縉99鳗p傖 禭個q 瀤=9欕X/0v錦弩贼区修n翝t 鳏 +陈Wl醳#摄瘇8c$院`B飹y 顟,2崶8` u鲣話鱤輫` 帚觞wN寢鋎鐭$嵗鷃鋧H鐼顿#T(]w澨氽9缱実鯌@T&21x=zs烲Sつ穛# @`'□赧蟡剟U祫~郎绷m刮[鸖顨D嵵B捎驿肜悃9籴lNW2g:g懫2M,@瓫2I2C讕较4鹵O櫸躳=:餘$};T64姪1!!X摳)憗;堉|窰濭O0蝭=8叁灁?imǹ(惏,y 潲*'/st陥U2U扇nq戯嶅9A谸増芡 撹y(/T$!`炳鱋O錙輸砝陷9镒朦>宜q艠匜屼麟榍/濢菵\ =3料Z,聮E_rq^!們0s隤<t厌 +澘t:鐬僵 B鹞/R9壬'渦 U被 蔉H酽h x;}?欮锼︴Y3霝緯$r6捙G岿"側rB/# +0G'湡皈mP`r7紼;fO,膊沈m=?匤狶x拴 Y踤 9乩錬y蠕|舺鹀"葓螌 a橤瘿f驥+01?鐮払"eTr茂镑矲K;4q柬`m雽巌X皍>織謤#s Ё轾N秏裧灲蜰i>icS髛餏>\囩Q浕kfeyQw{9蝌,娔`>熊擔S窨塀q 銖茥t#糄d錈栗=)憚\忰隋;g┡昘堍枅_,s1"萬撌+俼彌?嘢鶶+@騀%軦献皈@蓷0紥2怷恲沲糸@ +Ye*粀寀荖ㄥ"F%旳!~\g騭笾濢j鲺FS3銣熛G0y园尣ь鬣s魻8蛱$A鲏惤?3P剔m2Kgв>偷澷Fq竻$寽怬緼﨧:pv磨)a?w:9坋C"3鉾釓n炚NHA$*珺曐-佇:;U囒 d)萧╟嵞QJI<(飵2}边孕Dx +宖,遹榬s巬{=)"o墬q!vt锢ン;3嘪!皃敨(猫懄09=璓_嫉|鬘;C鱶宑礑$T!s訋辅廞@蹘Η喦藖颯( 抙試奪F锧 绘:萹隦P袳QEVl仂qZ5@屡热>>擿鶶睋衹iJ泺I奱n滣屢2*B簋4懨-蚂龄惴S琹y9肜豸腵恞3顯黄n!y'专ē既2*lO +i|傎\u蝬?5W瀩N(#!g詐 冿鶜O1yi%絩?/勤. 革苳wc藂怞驶溹O妣y⿲.$Ve弾T嵷飵?Д詖砾N0>4d#d∏ 胗?Z`U憆r覅f$m鋚?琦ⅷ!bI羟l}{T粁}珤面渃==)扜 L??悃痡敶耈8U,v`:悳w悭3%塷8 +灏 窕┿樵襺襭匞FQ帢=鸖枷1do8萷陈=櫌.?xH>)"9M:其秽 r?Q卣y沯韧7輌3舆炚+⒋d勎孼5l儞蝌ztCRCQaK0热/汪Ym眨\lp: s訏;揖 +D7A阺3撝'a缎!@p賞Cs訛3Vu.e壣0C<1鶁绰綳擁h穹9$鯺=夒J虙v蓮ㄤ噥镏&&尓勵)衪朦忽讶胣竢T炃]b┸P岉8s殨d嶡嶡摀;rO|赧齷]猀V\m 瘋s躏K傤Xm銗溺驯R琑F* v'疙疦 +DJr牚#戨吒鈥$`C1E聋千狭⺄x腍篛;~竂軫韤/v鄟焈JqCH罜錧瑉yNG錍 噤鬁垙n鰨筿擔)UB 潬筮`W傆:帶ш0ynIQ2F言筮朑蜳怶Za苟\uB茚鋒DKv懭IU鋻x蝵擧菒@P藤莀fV債l>a殚謾&7櫡宋諶q弢J珻瘮0ww珐欠f0)峆嗸鷖NM蕠`薰8蹾?O5愮pun羱vX8^榮-零:歇弙~f<鄭胄翮皈I篅枥瑠2p筲撋r玩2 傕v绻胗48-徏籘鷾鋚x籁* R洔c8 `袂秨~#:熵 f1憎42膰v啵藶縲℃"蹾 un.;鬼尧]苃激:9估ゝfxr噕]q仧系W4Q秅(! %[8銕?@%5.窀 u蝱鸕I宕岊鎉%=?b鵪a +O葂萿霝s*嵢Bφ F 炘%>y2穜靣?齍:-nKe坮蛊3;Jt⺋嘎嶓wn>莳K佡|賤课$鉶訌aW*Fd谸鋊鐜縍;謪7*r榙';b矏` +观鲉 +銗s壚 L9,WVe>爙O'徥,篎绒f鋆 :缈腠Tと壏f5u媑=8上鐬祕2墓o攲濬W哌5D0.H軆惜{琦PuGxp +紞爎sx*'!爗鹰S传 憛H9u斛褺 潒磣=8M!縵}仳1姱吚蛑C伕9:侙召暭;坣黎pF}E%X,x鋑6/1 t#隓玞儗煭,h@鄰a漴G?酭8d{w▎6a殲<髢撉鉆嘅1J囨^Sw\cX 柷q淪剂9羚> 蜀礪飰餼宼閂~o3-=唓J玽也? P"響U黫兞鎱 b遄隬O軴欠絊圐`珓'=G#p G逓LhxzS唥*l|%8w泮;A鎲$駸譀覘?0O菊%GV(((酙$糖p雯涱瀜荶*;朻x鳡 +酕襈xǚ赭鵃)櫯 +Y 牸Q 哣o\1 鱅閁H>bK窅鉸搶豸 P;訑q儉i樻Px麸Hv哛阈:u*'劀G筀9鶐9脉9>#e:1憠趕祒顊8黴Q<瘽]Wq诨x 追Z嵰'L诧+椳t*󕖬r幡-颉$)9弦咾朠轪8称qL#玑T啇cx$笮u臞栶鶂蕦鄋a嶰C?BI 瘈Cd酎蔂(h鋺檉龁x鼾jgS鎬rwgi顪z雳P傃d+F蘗J┫瓜颟貴埋A_=3@ 愁羝麋6@ +e谀q苆6UV 》7 膏寑N?<<1,⿵績槔(髚$p籒砻>鉁*3;1 +,仠2霨)箾f摐汶Q鉪C蘥厝F=8'^羍F+朑nV蟸莽豘VyX!.O走*X膡CG宑*w𕷂?1鴝齢PF瘳2'*狉CJ梫颬,3锽嘲$紒彲庍w?;藤蔑f肼 P`:凕\銕:HF訋龙籀4j裙W F咙C#,汼鎦v8V銓銖襽脃a櫂!980苘8镛懁 岊⺻繇R藔呂@X8`+#宑p鳇閬罣翤M机{p:詰抍( 3丧m2扷X26酅 x${N聹"鱿l葢貾 龥哮婴8I错}观䎬Hb0=L9蠩I辞>駟9缱訋*急埗K3 幕dH*张笒3藣飾绫<{鈿R,IHcH2^{9噜L姟橆迴錀?烕xl[▌cv﨏m-庝c=V翏(8a *麅∑N娞維o橖胄阋*#t尠v埳 嫌?弞.>V+>& 燃>:R⒙$%D寚`1剚蠕吱迨(E萴剌笙<搹菉琔銹卐歅@8洄3庻⒀mF蛎,N=N誔 +* 崙熂侀鳙m藋O9P[9^剧N +#<鋖墒 惴Z蝩o'2'ylN8飂蹿&18NF[ 绠Me喊1騱偦)<圏剚淙↓隗弒殜b苑^躻╃T 栧禙萘惝逳;6 e8囿盂44&E聹+8>笺唑獛0@0銙#8珟姈鐒M0lgj+8#哱筅3邐v>^)侲 幑弗G^r婪@GAR?v庉*欣 c蠵d鋧) 鎱 8玠蒗;Ukq鬅鱉Y'顃(EF:舆钣YO箯j__l/堀爝'aK躌kG_泌BjJd_r烜Q@Q@z煃e禮'焭= eh褞櫎鄿鄜t籭蹴@l^8齣6岎 颮吃覮(21覒;仹8T +9=h @鉾禘#獉prG牘|喞 镚愜韅s讱笯9鐎i巰n;髪鞍苫 2噏 M儫CJi芙T&懶埱藔y葼陋穞滗T#谯忬謺萩蟦詠钇8敉)H嚾 tr缱`:2饦蟎熓澅7|讶Xu潲H棐ch0鴈w.v0@8隡H爯瞖冻祍鞊ctl2WH餆衰V妨|羵鄋#$+*秥褱?V捰颧嵁╃ ~~袱穩簄u&<漕;庇>渀咋EY垙薭He9佝TX3}犎槿';姚 1塪`eB 8"瀈`窾xX廘詣棌>o Nz蕗污潱m囗V \駳I脋t仐 绉銥"G檪@8#敉F7甃*@楞鯛 l$@p^[恗*煲9` 认哀霺g禉釦鼼"E;嗏#9捤0.N)嵏=*辑yI飨n忒錰;v#湥m躙箝胍∷#" @ 奿E笎"(I0T勸芆s﨧8旗c* l孎庸>噾N6疃鎎JK`)Q宷鴞詪tL紲 羴$0$q=阧桦 滩B觛(痃帩s5E勋攳籛*7`琊=猟Uf 嘇1QI &芓擋t5筼:VWVY[蹉4苩i 杅H28羟Jj珥qRBシ兠7 +vEn请?毃Hbpv汩殡LIボ2YAV=簋{英b闕貋z>殛s2vㄎ秙轷櫽*C 0繌33yB呙Nq榕H姯 餆_CQ靍輽r8杫t缭("豓y7mp01莕滖@ N∕IA#踳^z2U攏$dd'9鳔醔厀F绎9$V=x紕E頕鉧V鐎9艪K$R<瑰\營y'9絢A4"HB9〕铬斛8 @e!8T ﹏O鉟N T錞6y\稡席鏪}/P^I衄溮戝卡X蜹u苶q庁 +侮粈'v攟侠##→,Ai繞堠奢'cVU *灱 惜_茮k蓇]-府郍8?(b@P郯;W醂Wd%扡寬躿 +賚*"綾8酨鋛鳹+5穜汲z#鵓B矕$}躣{$Y2炝\翊.q酏xI<9s嗕辇x考醽襽7萓蜹p攸h堾V撓#搩茔螃0y38泮H琞雨G1X 蝬锧 =r1詑宙愪叭_晄@9沫衐鬁猹|1搳0旉((*o 升*j() Z誖餭o^З鶳BI$訜滦r})ざ畗)T淧霡噤毋荂4ztn0朋訉粽愢dP>q)rG98鞧瀧検c磄熷Q虈?|r *t價?t鰻G8 6&%憸搳rジ8贠<鲢*Xm朙 0 p8! F熐>敱LBm9v蚇鲴╒ 扏<腙j瓖夔o:焃/沴h孉鄃&蘕[彾jR抒;69c誉忔?齌纤>ze笊?缫%寭6+憥説I;d 奉#鹰SR0UW吷鄷?J0dU+盰A縞纂@y畆$松髆e靟巼鶷駯e -//詖7GB ORH +*珋@tc軣!蠏嬑由a8雉䲠鎉藯谘偭躲蟩逈*o`C囚:S尃艸*烫v$疦=(2p3幢9鼆(埄鄯笻c&L鲟歇螇  0滖熕簪5~笸%p贎螿忬Nr巜託d'殭_0昤TO8 +&邩偋珞ㄥ)愗鄞o'矾=x!匮1稊殴嘃;x9Y3髳ぉ'熾ItYI8;鐎錊r0G'颿#>鋵幵(?kR=21涹ㄆ詳;`綜;)蝳8黿鶷幀讃躷秨<(3JUIa旭叩=c>n郕*鷔枝磳 ,澒際;rTFX2`A螧?齌(+,d怈nM1T鵉91螫癢萪$)8<~$劁恲莁~捡靐劏 + 鋵懤历qK蚧x\r<焍>磰Wk:pA!稂絠涑H +剀}3迉2鐺!8胏?x匒bY負瀀耥L樒YU0銥榥寝斔皶Xdnye揁(Rsㄖ!莻肠I锷綦b逛 慞ry愨c漆缈狷憟iUl`秢?8凃 詂à}艫鬑PJn零G66d俄靟p?莽鏝GWS鍛吏轼RE"腮Ab2詪髳O蜁8e鯛J0!z嶧y如孴Y乨28n菐3B珌#P(羟I嫫 盬勞s鴖@*椽僱籅~紥q~U哖㩳*搼侀唣黣u2磺$圶 鄴庛璌$|1m蘜J 駜藬2 泙F:z臝抧%f1彊X鋵凐U5Z!.杉7埔r8洒鲲S釣y庉@FV響?濊3$13(fG%眰!噉烖Te惾瀊鵥N2夔懺簋y(撳'〆l:裾y轀p:雽qP旻8鉓?萜0Os灲鸓H<珗諨H0课赶=$f醇尿峷嵙N銈O#屾掓5,E|榆{鷊軒诈&#媔]奨V鐿個4e級とR#無髿抜 $^啢炜J峹豍讶>^/滍専覡Z憐P嫂!qL?tT楔_櫢2吹朔'69硡lz減7nON瘁@ Hi扟9"榞Pv恴P爳3FO&銘<C0疗z鎬,R私躲f( +鲹颃時-Vz\ <簸#煃#潼籸'8筂籙旔C頱臝镣恲xpp$@,h"畒躈^O40眑峆`|爭砼5皰+;,豒弌囚=奢1瓡l儙8#妔9Y充呣:簖:PZWT邙寤;s鵂 +北弲b~d%y'凊酴nq勴悈迍es軁s譁3葘懗2傲鹷踱狪蚵afy) -苢亷D咺蓋B@#瘊T嗌,瘨綼蕫>9'笈2DR怘 N猅 ws磉飔羧 +,c!i*咘橬:2螾7Go揉顲类稱M懖氏*:8疥ibd@u/ ~渢廰砑竫蹋 熌d^(* B怉 +O+擊怯裢l十6怘x'=cu錐筤\嶢8辄诫Op +Q暒橸K$鄰УM#伮磲斻寀f睒~U|谉雥蠓,A;筽6蠴屮VTyx儡藼澵唓些ㄎ(0厡.硜黬茤弧攐 郹c冏寃镛22睮1瘤汕|s荿:T謕〨Pw便啃阈屈硨e!繬=顸珵櫂玡槣撛汶献醐8T/渹7獉8顈渴伯V=貐;嶹'詆躵(xFP7/甍瞹蟧Zt +世悡粈~n哭=*|j0'-點9=>烎屫浒蝵隔ΘI籯禞0r?橡4睒奧oS戯r夺.Eo0g8?>澡T哱扇攲)<甾笀尯膊u9蹒,`纎-检瘇ydd亞萛'9>璆1a倳FV󼞽=*M敎= 鐬誢7ヘe曺!A褡>苺 $騡鏼思'鳇O稡zRD9DXt:`};46 Lj Nx譮[紝魫;F蛥<6G'術谉筌x佴_08敫笄鑩猡埯桿 + }0J$Ap祯鋊缨z檲7淑兦v碹隌7晆VV壴P1寣8焃祌6鉯.[囵?SP矬 +斳兾9橛岟z~R (卺皽3蝬#4伽; #$|+;H;髪k攔厵13粝_^翕UK8'/#撓^h唅L幫虽x蹨{庛榕@鍖C 髵 鄐帟&c`撚9:K㤘s2咐缬鷞}h╇组N@Kp唤!2O痁暀諻eTRd牺:t鮎FO懜lH丿碳銮螘$4{W 3(6侭笞庻^`蘄X3菧 造 F臶;酊b牄巚埠榉+樯A q笎S礘扥范鏝1觯翇拎钕9蝳x$j ┏㖞糶咖~趑#.鮸酦rI;sP8(1=~礹;q驌?J佷@~釂噜搾Nz璑Yw阸渰P;J1u尒;Wq膬吁橄j朾縡f 鎫靷鄔泮U\ pFs梆S*3俽沏撻姾wIU驕!窍橄旷&M檿崼虔]蔸覽rC凅懯zp/Z{羧?儿崙驖'<`&C恠衊=虴'捘传2<阹D>P=⺶0D+~I}赛6鵔<被y藝S朶s隝*厑菓23麸D$ +K晽凃仦糶豥黪ヾQ賶ep蹖{|3T滗绶zb沙$G+;佷斛酊S儻敾觝* r"$*澾1 膍悃z憠蚓pA#'8膝# 禇喊蝭覞 ' g戸 涘醾c駨*Y櫜:缍酛6床窢韸\*l瀀煡5榚Xc侳迖鷡t-扚<9 +(>溤樹瀜貃 +nL摈囼靌埭d搶燄籎2cU`L騷~s茮o涘`x=#冇:H艳!$?6z┼y脎鵖g0$2@,`综襽++ 甫m J配筕酑yl:侂'恳熒芦+瓼cuJ8ub鲓e\8荖橍ㄡ懼9 Uz})鐌#g +爫綀殑矱澒巟 涘奕 +愢湬荿N}~M>鋡8豀K1実'#疨伻鲼l妊眽貥銃灒И*'^s詺虜<溿鱝 无绲,猵$纆干4夷酖<馦軥睿uE簫.7T[ㄝ@睿uE簫.7qQnK簫7P郇逷睿uM緧7P郇逷睿uO4华&%#8r9)蹧iQ'尧66g9|懜脙@%鰧rq;ia袚炣4劁b!宼﨏譄nwO,組<翴o/%7aI隆窻珎4舾u屹9鏇;  +O糖9Z!A額繀H篙牢s貆i憻攤2O=x锷¬2q吜'嶰<丂%%G;r叵_笄缦.xFp3欢 賂nR粠1帲?烙"bD湴r2飺鯛 贂 羱_檢溏緓?齭歟3bGq肫q燎許Ló3 列)旮徲4叵2[苾&C 侀澒鵢輽HRq览 ;P#l#*侘粡^19ㄥ 惉X嵤鄴{凈9^3(鎂<8螸渇⒐CTT}}pNOE负B沘,移wa睘?飘y鶜M +騝 箛瓽Oj痳瑸S(R 鋍炤莦C褰隀儠<蜻.A彮[ 虩粩3罡\G8⺷"瞈E哘邘A〇$ぎ锪';梹8糸瀓P憺'p忀砀}噊@媸[sn}靨 丘災鐝錝鍴Te$棎F?齌蓌厡i勆2 $鄑腼慛U囁2<抷驚L 备R#佚 81.@e祈剜鼹槙 H#)bWv鋥珧鈥$勞 `4 舵9醲艷湥鴻T9?邱5c罻\弞q`W;@橄玳@ 兓湊鐝蕭BJ鐭3跀嗼姺$p@i$ @珐靟謤bG蝱卪荀4[n仪 +Lc! 8閾岥R仐,U乛<莏嶘箯vI%埰a庸槪埲;檨q戃~T!憙rUO;ㄧ +&砌茗 6J餾戂髪咈VB橝 :pOA类騪X6g豎#岎匠镯(p (b橧g!x'R四蜂釧朢2A?N厍謤藔#末宷蝯慗&D﹟愇A/"*EF娹S伩櫁飨徇劓}吥 +瑊鷓I8羚╜7茕其韑彅忓虿7茠*硖1=9鼂'槴:蔅膏滀炟鳘睯膁眊QI 澻囫\]_$ #攮3賯X摕赩(云Wr兗怚=9<詏Q筣孎啶3湘(8崜藣変2}(K菨跙`t镖惵L榟诗|您 坭j6S鍓$攣子榍"-锣6 ,< n錖% +唄AG+畃iF侚6鉷l⺌: +U@eA.怘榍緖Pp9a煍笞酲輿j t?*,y鵼鐟慞鍋 豾?Js籫済蝱t䲠 U簛䙌)66觽H:C9镒駹N7 +3宺yΩm榔9蟌BI;'訉}=3A /C瑜3唿*0F櫊 7qI殢uM詎Q揁f屧y4&阇佘>#i耛港蹏>磪呻M`鏹⺄侺v?ui茿H['4殢4範鏃4翆酾;#彲<翳}3隌畇捆8苲s踱v夒慇櫍;gīR (输嬻ㄑ沯尪達?RyM$0箰毕c賖#茂MRG^=q宻I銱埲帴FI1类煰5Sl3笻8吳q?醾烨T肭lz:阋R$萣〆l鹓穨)Z*醂輬v#疧骲h弁V崊昨隫堍I嗀t倾庍BFz`s苮z霁5d,vcI颱 濎樎ㄎG9镓s3K睧 +鄶AIy拋#}:鄛9${sT疾K.p0<岨vz穚銖錚2哢诋\p始嚪O +讳&疔湈;w嘣污eV轚7暼lq? q痈げ$@X&釯8狸?椏Z慬y嶥 9 煋! ∑襾I;<t#毥枟橪嬭勺囂W涘`Cap0[嘺氅b鵇l○N(=硯個芣罷 N秨*ど!搆> +~Rq娱憞.I,Xs螯鈷&.$vV苨组幙S@>TQ墹!>鄎U菶惇斳喋 I#9顇阙(79闓n9黫鏺竨2芅Bs想@祛 nyX=w 仦 j褼琂歉6:w瘤珞λ儞!c6湑c伛肷J娙?|8倅聙+;B狶[鋽\*H$渟鑩fc鲺|i_櫰3躳仕61祳煳予:g#朑葇頉pXやgJ覙N蓵6憛Rq悀nx銦猠iH帕G籬)灱 寁鶷o !I罸绉@GJ渓ic#鎓%廫巬?请@佦)b烨w蜲Z#峸0崄Ul!\c坆鵞檆n8蜙\~t復FGI(q薮##`#緎毵@漕<鸖xYx s签 $7d<錊蜝>a;A9g鶷懕蛴vY鹃;q蟬簸{乪r漶?蕝伛b5 孒`x顂D萊8o槕藂鴖耀Il#昑蒴閂\`崒[扇*E蒹g=x輳枉O悃璄箇3s_z憜釋懭} +d幦7:C畃肝x橐 窻!V笌7旾pS冊庿F笔嬺?輇b9櫹隣h^?,瓢拜蜸濬29% 笄駧瘄t +芚(/q炪佄)糷挜Cq搧惹繰躤9002o芬撮簒 鶌昀e=<銓{>cr~义< u牗-kp +<恒摓 +樋 h奃扝N@$z濧4辞汲癝 犱兞琰mp5莜鱅纀@8~54v寘v )鉯=F\裰$DE倄鄮前i霾l潕#,d 讉x犁痏馉牰*妵-誑zu绶8ㄢ墥R婝!鶖mA软撨 )"E蚀夾fa吽 銣牗Q鎾<,俇Y9訐廋@蕟Q憜 +疼U幗= k T\*鐪q>轉扞∝@*#走唛拥VUt屛B鋪麯沔>漼@盶s1#h#8=8踵s@崉 8慄#c媪8=蹊*i(衿豑I^鐬qǚ8黑駾c#雰 Tx釹"F琧 ~寀鏈鹗惉Ё蘁虛oj惓:瘯 標&V<棷<鋸#皻I"銩礏%Tes憵俌&J鱘7l庿鲭鞵37 n:u>绌*+,寴垈湴,:閁噮6"儗膪羝}(T梬惪箭運繾g銓_Z絬#軈Q 犩熸>禑7z詫r踌~镜pO*饰Ta谀a莑=h)褷聠>橎⺶39X乷/専鹣螃+L^GE蒔陌*9酟\* 藧剆嶰'觞緮樝枲,!f +pq倅={v転y|漠缥I黥窥鐹HA*[4n!s艷pA苢鯛瞡/镫蟦pHB8酽g夿軁4?4櫐鎸隶\2醩靔< 圡溹`m隦23怗2:J庅蚲+33諌#暀 X煓睳9髑錊\ycn%G饚秒芤 ebP玚c髱Zd蠬捄$凵(r=楅G賓PKc8蝳=h鍷|彬訛啍8坉兀绲0[1嗪幺殯3'鐚:惚 WyUp32i$翲p;觲P閜q溣DS朑輹吾袔,銖i9#駈}猠凥胒(帔席 m4+)m噻#=i6 |踏8a代湏请@晼Wye AR:1旭榖eaPm +pA蟩顇螼Zm床鶢6婷cpn=髮?: 辠b渙嵟q撉v:鈥)歔堫\.7廅仃zs蕙囁慱1/蔜Yq> #T騉"鼊8?绁K鍙5d嶥 +9c3莮嚉傉A穝 C+ 蟽蟘廃T√钞鹭6=N垸%阞蕘| 銇胲烎*O%Nr蠐熌s向(蔏J nB$ 0x翳})涅*鄿|噽3j/3I#!.@损x泓奅_5YB榳s胏x顯+(+輼嶺鳋;".趴x藭柒B鲟麩覜3凇闪#/囃F上q揉鷰h#;懀A;*2"8+9~巽犉;U#弯&瓠衫鈺摴圫8鐜\y烃^鬒pK:e隔鐪=M7#`竊J橥?虶擠繧';x?j亷燃*+ 懾4 詛 p腌摳N8$抶嚣+%# W螸灊徑B葝誘V~RB羋x汤圌p嫆Q巤彟3B夈峍8'9蟐翩嶸懖+.2 绨跚|&鴲曑妔24頤Zj3骮>`腱{妜y5m棠鋟蟔zz鹅餏929(VV我=he 0zdLo_滸 u鑨4鷮FCd粨焈䝼rR2孴p湊q座驨尦Wu2旯绶zd砽媠8仳z羟4M$8蹒酴*扬t +盿 +妘d 蔊抮恍u<=(劾慬⺋赮⺁o御,s↖W敧 +'#帑g廕怨$r仌`G,N袨s舉ngi&阼6!;6u'陏頍F;洣Q囁络墻跮鑺eq扥q蓼y$h咚j蛤C 嚆噴26d卌慮Q鰮嵔\徝5鎎L~韛n莁;d`鷆蕲掁 眀l1 宼\優课狵逅朙a9#4悪 +爔@\呬 4绒FU(d噡Cp3蹰M嗆崮睈cU^I=Go螒說 +⿺&o$:c餵@C*爾4(耀7蔝睴锧&1]N鍱 +U瑛r8?缯P2L娊Z2C缴=-糉F嶒 N>裆$瀙 请颮糺*2嘼'i=G^盅<$T8^_8㑳T0H鸘18蜪8d =?袡M背攼佋幗:UG藠9TL·,軈身疗3迉*tN鋛窑慥7?殥.嫦E<鹚茹璕N_儿S/蕝Wic瀝菕H(&浭孌(P8鄃8\JF2黱n; j%朙濻[钙s䙌hげ,7g佦пN7o>柃0娱鞷蒫9? 慜氵55緷栤]蜙8s烚?Q3H脰橼濇藴锴衹+Y羧!J睋?.K{庌納u穮.F猩峡搨1黔e'vO~=纭I)l寁鰻 @`快飨譔箴欎)h畍zd9FGR盃 諵潦剳轻訌/殹0"聵掳蒈s焠熚鶈P0A丽猬ylN2C1靮冇鼮x0*c拔$"&8G輫剘扃''镾/-2鍔錘x恪翥痁掁鶆顆R#+儴~归RD幞岾e.厗:燐搴cCm<$帯咸蹒诂槃H#)稡~iz 绡8磯$苹*麸揤瑅0$a絸 u现⒍扝趘欥?@O m倾詝>#C婬鉧/$T砥Fn:炤範H '1惢9H#齮铣*繑# 0b@$?嚡供K鵯Spq_=#9<叻5+*;( $貅鄜PieU昚I\1#>溏瘵简|v綪;q儗?ZE吻H7萷X銓灆1N$ɡl($dw席?>鎈ya$弜$~)! ^Y#$l澞d>掴2I鰉{;樽儗dg庁隣h炭X鋩匐儜锧 ERl駸涶蹰,%鶁蜾P9睨5[ +Df.e蹛;认┢j夀@ .9;駬渵#yw筈籲鍝轻Q }7芨鐸1酊躁,p棥<凕 ;(oG,湁 9'8 鷗訒|穓惄潾帲幠熔ぼ嬺0蒷u8?楎,M k篅9-!?Ё酲6"7赒faq懬c瀜想Da嶰薇a78鋠ЛM<1瞸括, 9';&赬s袑t鲧Ua淌ф8O糘9$鷡=Ln媜憴Qq鱬踃w9盹謷 5(胟顋圄螿豸酴咛e&7R3:t#顸h1&+脺鲼燜 橭%waN齢 鸧K疌逮U椾bXv煏hF凅 eT濱%8绁46I(<劅峡镺罰[,矸'藇骲I2I#O蜚熉灹_1$~t欄 岊1芅:Q窫i 聛抷?=@U +搊突'1趥爯Nx橥BYl鼌po\u黨芨r珣繺撟縜覜y q欠恳; 岁{sL曇Ry6?Nl媧祻$g=篢 礠瞺飍蟔?Z拃 +h*2恵dSv笎惲悜陵8睑~礀錔钙闳溞RT`n)瞏菄 7r7v齣YN硭讇rN1趱6膩F1>8=鞞 (L(膻O4鷑[v06惝{莹寷漑s絹酂z (@<嗖?J]8l灅苮v鶅悭0 樹鐪誽dX咪驑a籭@F >脂 &>T\IT钌D囀]T狘T扛EvC? 嬎d滗亙赢}zb囂毕#蔧捞H嗬刿飵潊O4w恗诂猺錇:髑犁璘圑[蒼+g 裣煗Yw扡B7s丬{髁鯛 +)$V2坉ir鉰充般仠撊<{煡7r8豤搇ㄘ-鴳{擨$壦H]酀pt峡$拳NY窈0沔1理苃|惽0v翵x尺識貕0轝22?/q幅rn +Gs0q,@:8該蹲y灶*0<$撓n=zP癆,fR鸏姚{忱秕1E淹斉"*鼛8癀驲T`庅T|鱃蜲蝥S鏡蝐撌 +坦$巤駸N腃,p﹒紸X霴禔㑳E贖f參貰獵湲;掖^I^A"6a寧Nx=鹵酺32愌 皰4鍑巠羿}} 6ピ樖v済?'謬F奡l瘤' 儎 n碛廃雯X蕁~Vt菗zs?聅I+r尶uF{ 滅鶄h嫆釋徾;pc侙僆s倅T鵾( 窭<Z钡詙k 剺遡郼*3羿J夽^LG4|獝y'畆zzi崥?辩j0>c泽龄巌X2|椦 溏渜鑮i懞D猂L !傤闍莮樕胂^船^8銯fP娝禽?0%W Ev8$鮏烯;囿熚聲;緉N?糜< 醌BG嶮崅*A鶉3䲡厓d 舌鄏z跚J咹踚+亹3襄鷖鴉④/藧O>綁?醓YV肝=*硹萐對aHx91簸E它缅n2JIW[碥囃唓渧?绛3yH膥Rp粏釖=ONG鶋,!>钜渃妽v 3郍~偅P佇厩>r-NH+1E谫#螻逫鍏庍K尐-9 +瓙Dap 鋘<Z4聢滋辳鐲dY奫 +&'vz齵冇髏R飴T2璎C>纷瘰H泊韣U憳傢輴=鱶S种/5写&訁聄0}湖4 琞1盉6〒#r熽荥Zk粻飽寳`I 零幗)L挷菛銅1*-n杁$1y鋨课#3粋UK`$``蹶7捽兑E"6溇O\襞皹- +暼`\橚鱨q姅iSyē'>:H鐏魻阘蹥$令?犁譓k儇 銘卓笮U涤Y2痛皫闺鐵qR盷氏!嶧y胄熜7椛mq求c慛臖yl9q轷<硽X )-我Q强赢驲B敼-蘻踵`s>)+昉 s齆}瓜緌欯X鵦k锣w`p~4`鼞肌\宲;騈3莀A@ &赃縦崕2F =r;v肱H!x\艁鋪灻徥+腟o攏8*嵸闊@{英 汹}佥渘蝧子橼氫偓0仐*{倇篾T耥)c岒蝦H${晈ぬU $箭q*dJ撠+鉿3憻A熋襽墨$苁谾i8\鄏8=嘽OQ濫S逛t儕e蛹[, +aT <9漶墼T籏3r岜筄#鲧幵qp闎螃靌6=:褾;嗛Qe 眭⺶誺2091吶#灍蠟;b4[&Tc凐* 昐m炖d詩S踢!胮0rU[廀黬0霄旪領%Yq1齮獩'I傲718庚h:酣垏*蹟d炟隦撇齐 +`s郛?Z抦牍蛱E )\NYG蜳 泱锧|舎RDr'1咝噪Ghr =O$翮~<2矊獞匼灉JoE.]睊?73香@嵁A珏>銥斣n闪}鷘黬%w0`UX刦1羈=>`楊gzFx螸3胍蘇B7抸汴3邭嶣4f7T溼靳鉁)昑L娛r霊0齮袏邮 +J児[瀞;:J~蘲纖gw|c臾差#;J趿@H悆茹丣`t隌圲2k繟1䙌))b筶8>叵镽獏ぴsFeV\鶁W 肉$F *糋蜔┆9凇鞑0a岓嵼=岺\l? +M*︰渻?帴3oRJ╇鞬d&糟i閼廚詻2+繾畇酊P片 槺49m泉'$QK澺洰睿埘9%HRQ嚘鷥@ +Y斎H~攐er;x橷e ,駨誑]q]糾犁駹F0鍑棔柒Ac9阨%rc F=5[r喠霧 &镛mx#糠4G鎩轥_紇阌秈29!営讙hlJ虣 /R瓋:~Ds鉵馨蒡:奞澩1磸"欠q沏磢hA鶌囵蟡uE涊责例0@请邞Of3倅仛B檻\帑奣遒砬簦j-伕実)4趢啾86檤&+-淳89*琜裔d熕>d熌F6鐚 妲f孍y=麨濌綳:珠涙!橣98锧Gl濨蕚s變冇е$Q壬垬g` 2 d蹶zc幝朚轑閨逡8話媯I$n?(x4XC)8懽侴狲H1l馈Pq2Np{Ugc ,.HX8兞=F巆+<丁 +.迆緷x苲殅纳雳7D0R狟'庉OLP汙|"仕斴*踧!篟题HB猙78e'纟 .^hZ5#'饈籹QJ殇)R.1蒘H*IN9$`g樯扅塍v\拔8=沽鳔K晼T,2N阌躎Nc潳餡 ~^7笃 (f屲;2Hiz|瓕駷1熃P囔窉]麙UM繱廄Os屝1耞(稬 L騪篥銕尸Ⅰ奉憖呤B扅Y箝1蕞Jd\+o]慛 渢靫9贏(g,矃u.1瀮=黔"埰骟倂亴郭O<} +2z9`Yq0H<踵S辰v懱j葅:濰=;耖 倘嫼0^7`銣鵄_A@+瑴攘- c闉~>?10{`熇廠莏钌x筬贘,FIㄧ颛舤醧鰎爨A鋘\}幼走戫'@㧟X2p9耜{知s嗘8鋞鵸鳗鍬妔!R擎<澕zJ;梞翊d#鹑 P懜<佅L<(2@ B甯酘谋类鄒=O滙鞸󸃱笇3p#懳A惹^偲hCI9 s=殚Э晅>ě$鷇q佭鷝%跣VY"M爠犁<齄慈y>u 貅 o穋#鲨;SWO-櫇a6亙侕傟錤&B佌姈DP菐9:O>焱!s9鐏魻 囉EL伕礇$c糡q凇Tqy蛉B岜3熄5弁.叽逕薇('郛>碈H呍侍 凗<宍鷾q螼_*!((蒻1>3 #F8悅蠞7o棫9昄ATH9b @倇g廽哛臆y+餯F酁OLt嚳j勡M赠Cc嵔膏s庄^y-$y!8 熄=*擓褖;)$c渮g螵驸9$Q>y菠鐚w鏎泲: +/慰2拁a:t=~冮MP粇醗p K囿冴aXb怆#潬6O塑餓冷v黥Д腕娕寗|7N矩(h2c?URF `9#7蕿臙掴洆$nR倨7#滯灅6飇l|)穅z訲瀟2櫚嫊>淭戩抦鋵鯇+徑徠滀+9鋯訬牺懟ds疗{`bB稳酖-*F3甚)n槴暩砪黎O鍦}i钸x 惉89ЭJ +fM  I胄N玸堓戰 d8衫┘蛫婝|沏b穇\gZ尙ダf眰x阺術4∧惼wFy滚鈜嶩咪Rr1脗;#amペ勪t楞=狾鵲煭D〾"熁E,竆(鐏辋湸 +穑9鏖请鶷m瓶#*蓶+搥X潋3Nr╙澲<?9秕4欩 +紜.骁躦驙湵 +a 9' 奰竂' *#^=獂験#)9l凈鐘dK磮乴E:嶡<煭= +時9膝0D芦卾搧拱s齷;橌8-tRFzg鹰<枅F n浔cH亮A赛駳U辮[h鄚1酹%x"XC儴鸇L孯 dpJ灴J戃&荇c岀轼6唒 c'忦菛D[H q鴅攏'謇亲JU輳rz褛槺潳 寧NsW4Y縻n@R韦32 熕>躋刀@蝦@?JVP闡咰 階PXx麾牟H$c#сJ3. 8 Zr崻Kc龟j86f岦瓬醻g撺=鉝旗耔H,+4圞卶笰t寏t-釙稩nq尣傽v岇p2M#*谩拢FFwq烴{s妦Yc緑窝屝y`N$U# z轷颣扝n焃皌 +衎*$ 阸謤09Sd崋鋍8?1Udrh?+玶Ny{侕2o觜<\獝靝0=y嚣564c斡灱rOZ\熀漈Kg鼩2飗r 繇( 旗2箌偸秠绋)&哏柏$ 9`r0滕S%u颏鈓鐤滬 +k释.T愘r2A锴~桟 2K"搐 糌r3撐Fz鷠i"**.0榉0$鷔戛an蹜Id-俋觜T? 呪m郺^z`>?銹^\)6沽讧x;;:#H櫿紣99輲}xi 晒K夵%c大濤稁{`v颮K&鮵]22婈v凖I鳃s顯 塭奜櫾▅.qzu\P驂h晞奷m彆鄴潲簋$幮I>)$ +湠2撶$鉮苬煒滮F@鳡 +ú惮p +吼00Nq专滸橫殥Q%悁NNyEM綴a轁踂渄 J鄃炟舁顖,翭 Wj寏9鲟愕5wK/櫨'曖 +璜哖J>齨粼R8R扐+哿O 綇NJ扸S*檲耬]詀軭n@蟩陠H竔+餻9=芅8苃X86+H幃踗帔蟸冂4謆餒蘗b.D鍍g''}(崒(蛎D>X鵆@廀鷊的#愛Y誜(`{pOont蓈橝*勻犁I<撉Ы0<1 H曙#锆u緼H9FG*(O, 膅>>欑#鹰6t,矻蕆郒'愘w嵊佭x苋@P脜_;籫sP嚷6.挵媖櫃9#碓U橪ghr@-楞9u9亮GU誑@惣裼鬼9vv#縿!N=H=鬅璆#墩嵫Gt韃滖責|X.pA9搶=y=(=箯`\潈zt{v鈣玾lb鞃╁@U暪#哝缲S埵瘣撜s鑪=;昢 ;e倴X笥<動覰欅nRG_茎N1帨殖蜍(匸DpG 衵Sw▍土V虌撌亴搸?葼 涤#鶇$=3::訛哪U(S駜飪:匋卯+U翄蜁;錟[o|q恤肾瑌J馽xUYK鵦/湵%H<廲殚@B睉嗜*O!z阊唖鐶j85.$樥傜T宻OsU-鐌闼揷"px'岨Y鳐崫爫郭硢c>,8z轩LQ鵱6"Yp0抒邿jj<e,))e噻#wQ0zv]F怃pK 2s赭4騸RāIFP╟侫=厉 ザ[诗.鐰捂1儗q熚楤汫>c,r2鵓蟗Fj$翷醂'?8鐞v駻砦 +|j|荄%`鍚e'焩脎<)懅x幮粩2湽3旄>酮驳谢P窻W8?愮詁!QV4嬐~0闻扇荁:縊胜瑨l糴庘戆*冷}z) <膌暟浉$}s湉-蜛胊}9躀d幅4:紝虁旳誼v +佔##qb怭"侽1鐑鲝艴弩V鰕C晧幾c繺gg忎佗Y葶@J怲H9I槊wТ$筊%S術懽姜蹡s鱅f 膧9郼佊iXnI唚`傘帢闉尖圣竢2哬rrO\z鼹R\#墢枴羣-虎禓$烗4$W (扇藍g#驙(2x檗愵c$qㄏf9鋵衿=篝 RJ譱3宱c蟎#膃A`羷崄:嶨?A顯 eI'XN懵#宑轧 犹Q凌6'灒0V丌aB62;胶夷⊿钭b怗國佸)缴d,Kg切b堶y优篖鉷bs遮槮G碫O輵鄢艴ゝ#xPP;儉IR佤"v岇鶙v[ 觻s上殬梂brP v5 yD瑱!n7鋷1眸造鴃c 燎s@g杝娑猬亲=E9ca磖硸;話1衠翥酾"0稵苋罖蝫鵀 0].葼5G╚$98鐽r鳇馧塿L倮i1変pp?*j@VW;滅 1<鄮)茇@z鄍x( 碾9=8讶仱X鲹諉$漼胄愇.FTc恐鳜p$襁牋靿F颩酆IS 凎乥r=﹏酣C禠穠觾襄熚怗x凃亴O鏠鶊&t孅N杏攸琛皔8荙﨟俭(絪w刘蝾粩A庶7?覝w鶅vc憥h?挮疈:PlUV6_紈&}y庂d润c1崰y|c^C鹰K!騝U@膿柷滚F睿>骏& nfS袓熾N_0粁殚L7!2.\巬騵6q9 +紤減$粝@x哣,┝簦x6su:+)拾5茒cw,虓疗O推89(我# 8逮敶PL@胮<屼溻呣I/纒脒蝽O rr朴孯/ 懹9螒 o^7c溻堜穿\羚'濭n19bx 忲O(獑#8蝧彯i摠滔 p絲鳅鱼b #!8䲠荂脪| +們$s夕8 ;z'=鹲J6硸淋.H#玄5L#v6銥On9翣吉e2rH#w銣廫T #滒qI)TC!d侜詌|掽喥迠x狼^E4嗃l獙7Q瀧u舄唯押*n@pU:嗐搹鼋{v@E#yy社 3e徧p珻G袚; 9& +6懈6:t黿*夦G丹~r矩<烒W?叻ndb1 pl滝U悑Ie躍{)繴n89䴗qIF觐 q;1唛侢4址X贂蠬矿蛪社稱9惜8!3<gV,!'哈翻+>鵦犯!,y蒖@T 蹁酁堑7dc.&YFRq訿`傽 $[愿s籯n'FG;I 霂Bc禎%p匴)椚^$|譁蓹寗y偑Cc柪9#с颪<豅癌dO旐 q旲骄>S紐hN寧溧撈y捉"旻溔か痷8 檑譂7透b9$ A;瞦滀幑飪跊(R6掽& *\ g=8`渟佽(+A29pJ ~qr娚D懚繮 3ji坋I ; }徣煯1餘9i53骞拎t蹉:<+怽粀8凃漯x腴P瞁F咢RNq扂2:慥fX;鈈X砻=茹p鵾v夕j-畳鍲TE嫕顼q竤设s>$2獪2齇疞渷焇鮦祳>耶覤8t区匝$q萏#r垗陉p纐腚H萩20W*М蚜^I 1hx浯奬7 8温膸絿讕擡-忣布|彊佅崷├w ず淕uXd" h褾>U痵狸9銥縕訵佸恅>荘zG瞾 唀思爟穿嘆3躶齣鈏e-魁kl#i恱 +6岅*珶B轟廞齣肗劉#G(6根8┦⒖<呎D胘飜镯題齣 +y憯l|s嚷焅餑ˇE俨d欆 鐪圄#9=猠.Lこ'甍'鮌粩峸+|蔽W鷰驹騴哹N謄Vc;泋I x?6邨$裨b爳 栢+箳B ) :伕 渀思宦g┫ 炤赶 +D浂 跱鋌>Pq{.肽 V嵥怓p<#忿#风S}猵7聪騺唄@苮<訐蟡袝K珗藫!YA仁8鄜t廂佢岅孚鲤汝z;銿hkNT9?籤Ia.朱OK嫰0樺iP肮$T 氵>苺4c惏)M煦h?.0r;貘犳%lp-旴悌蝦q湠k5g篕匞 厺旲]=:?绛'诋嗋蔖(贙(\撍pz 檑j3碕e薱,鞀wdc幗s\羟蜌g#鏗膬*脧__е痋;儮醧莬騉\宮n2s;乗蹶=:屝_歈",o/退c$.靤扐8醌1i层鍽磄r├8蜛烒4yV9f坧 +#戼S孮呛靇藧8 p 离鞞FS睔6P2u3#<啲繡K 仛&&=饲峤A <該C鰛ct耐)a子冄Fy^礊S2*売狼9鷬l2+v幀K哵蘋}┦堭1錯%9飼'鴝q帢舂搇; Q扥P9鎾[p瘾a屇_8袭0C21佢 擮m碐8VXF9 ↖$&Q蓱2~㘎U唝1%Q軖wB 砷2*[w蘜ZY必99'齵vv腸晻G扰睳1凒銑嶱 i' Pw扷诚c涌伐$ K> +1#錸Lcv3z訝V鸏婈莫佺q岝樵涇b楨f谴e稖鐜酴+d軂f$N;}h 櫂&3 +0晤^$姑aC盾{qL礟覱&#;翊8<撊9T始←漤E'(袳hr= ~4&I5署偕泫r(恆乥 萔9S`P 颋-I囹zL 锸砢m趚 煰請哖錦d訙 u~T镮c侼20"鱢揲捛Ёn L潍嵞 sLPd谘!L跎vI$O9 巼燓縅敯u +2xcd靃$扤⺄袤淔懟鹋K` J29B9 鲩M 八胠^z1$8:P酄F*8滻*C暳隽靓aa蒭>呸噷<]臕90紡聙腈.聅芅L嘤睻$g遴/?Jr憾v脖斝/嵼B侳=夛䎬觎胉|膓迱 dnV撛蕧錛歖<郻堯 'I=x鰻材甦v?3衠衭/嫫|vy=?:z&転琋I清I楖978m+底r肥F茜>+頶8霝ZG-U絷 +_,琉鄿鄪g&饩X菰 軫q灋溡X昿W1脀阹{驲o軐^闺炥W苰惜1惛GW 苢儫鯥荍4垓硱q悟zv!fV'2z鸓P述闔X+渄 +Q\屠銈iXi`ZH誙兏)悃躊嵺嶡圹瀓9m`櫡K +;ca殦o蝃'憣v`$ex% 搹S 72搻I8雠5Zdd 蛦稢蹊*|qjv0>c2q篐喴藴憥?摁鱱 ##>塃驢6鏶<湆烴澘JV +K8b|<>(L$ +侤RN凑r鄍{P突螌゜9A'邚L熇T萣EYd[*莨@#:㑳*<繿|*-''<(澨l鶃1=聒P.罻RLx晞>頌鳐惯G*1愹=称ry閮硟n随7b@88?$&[]!丼脉?s锧萐l体渁窇竴~PF21镫镼輩i蘋顁s2醲$`倾W骃f荽6亚=垭U爂^B憹7^~Q炃懽熤Q@蚱 <摐渦鳔J慘q#K髆;|读緉9jR)UV0u鐚|仫5栄Q>a;浼M渄 恾(U虋.$鄃*9繼竈jw1WQp昖鐡廰斾8管Y冗忈髋BP癧2eT錺K'侂@ +娪 嶵&Y2嗆虨熕ǎo祲藽6p嶒頤' W湉_oz欵 璸拻抾洶鄿渄c芬槫]De1u  8镉e*決斩F$n=y胱緄`GYB匿M葊澨G烎s3桬X'=嬪<=E5vJ兲孎翏8铺e 胴{鯛I5忳nCm@葘:ん#03b9蝢撣#媝簚a 渭69楞丷嶍и<'槻 '$胫鯏錬俽s熺苸範 +熬iD1洛I$t繽°AHO梔庡J簂3押岤嶰Ojy_x暀轂=齒 笥尊ヾe掔匼D岇39囹O?Z傛"f孾斊炀+'縭y>焃GeYl惇yoC>笺克鳶詳墺Fti湗 漠:w'俋q跀笌Ss錥袋艀 驅c?61赀︱◢=秋$Pq磏\煯s垓臵^(9燸鋼=#4ó f惢|(8焣侜Tn?糬髝rIQ渊悌鷾~ 塛L去嗴籲衐ak7p{刬38 rN郼袚i爆擓_暧 詤樌祥V>e.0K=苨如磅 +銯博H 湞6O瘄T2P 爘1幑雯&& `&吆x#跸O脢玿賄宭m罎╲%艫申3拥J*]澑8,}H=O*I.a轕`r!攷}苮摱Z2 煓x<頟8鋍銝 +P彌uB_5RIdq籎wcz浉疸宼闓=徑H柉糖臎W帢洒珏敮湺 +=88蟴F駻w<檊!恈溿秖鲄:H觩f< +9W`ㄉ*;~)+2v偸WvU霡旞C瑊J懡X33 畜摯4 +穉酛鄵屶t 済9幦196儌 9@3隣Kw}猙 P罽J8躟;w﨨峃佶 髳~iN>逛蕗"+0堜?/螡Kg湬酏M倴a醜鈚x79诪豍3;F>R 鹉潸徦+)鋻1廜∩⒄59X蛰@\郼#卓簪C媨噛6%,i硃0脒熓$HU魅 +邃x灲1I=蕾鎌頨B*蛮萑'訐殥lヌe +垻B豝N3擑t靓,od橸s戺%窱>O欶c驕 兾匂阒#褰埸爢w=}1鳶酟軱閭硕2蛯 灍Q鵾 + (埳tN諹窅O詗?9y掣%骩虖i w戇#=w-粓文$m鵶湋雽缇y5+)掆鹯69 銇=:w滭%>PX冴#卂.- 蒭昞 郀1虸&( =N8羿囫@怋J酓尓J:阈搁B).=诬亷x$Gl啥f +x愮#s*K亯 禝鋈'Л"虘c滜b8L=庤澙p螦轱@蓆X幰锘=:9i.圆,!欃鱟 q镄8Et慏睭S亐7琰櫡0*3橷Pc胥瑻 芪Eyl`=2G^爮螒Y&?擣鱬a蹚訰紓賆7湒<疄WbI樸yl惴A@ +"U}$$=M678婭 凵芆a焣NWX鉟%鵜聠8鑮:襽流慁$㏄v` 珏銦萊0雮 謦f!AQ8Z崝F嗜漑{濶>恐渽假$dt悃O耜iv愘S9l漩潻7銙A0b,融G^z䶮*偅媟NM#栲oG鹜. 苢莬Pwep3蜲o髪 羪肾孎A郤姪`9邿xR尿X澕c狱鶳酺鶐愀蕗D洂 =?蟐5P 3蜍 邕6窭蹘Ny:十a玵e鏙_r罃孵珨P.$.萈灉滛镆5窰囟~b儵莖錖叀嶄g8聨r}I绉謹"*醨P3翮鹋D泇 囝]9'├1R蘾誁(鰭!蜧L忩)\"L +d=< 01嶂A䴘O茥2 e鵄竨李1愈妞嶨A1$7\)褎悪0!駟9鼼jX⺳刦 *FA#9=p0疀N2\1-撉A扐9阩V*V檚嘐喟霚A擎i諚蘕蓢f恻g 撐y鷠M 81杠;D,''诡8榕F#翯鰃蛄麍陊/c尀枚)铈]褾孊J続8鋋H$< +h藞N$9`顀蹰敉)u诃H寑¬侳8n溷ёか@蹨溙剭羦挘#螵寮t鑍Y佛8鋚1蟩捉L )梫3'澻t3礐6Zu,v紋 吏t#o驙4焍 +[|R◎亳1苳t蟘羽ǚAsp憪遺(w*8脒=;T2 ;c畓c0;)S蛵<泩袆!僁墀土#幑?Zj刹e +t蚱莨^瀮}G覙逍帘坚们喥鉵珉戨姃-襇.櫴沽 廄伹lTn吧0*7常)$t)9(&B廨#w!狰I8硇滜香M浱悙TE3呣>S=G肓臝;6螜業O9餃zR羭 (;#8S歇烗荺麈+O跺D抐)紶) 驗=睑P&嶽坆x$8 綺誓烗2 =酋 潕@伔酁:鐮zZ詈O魘7;!\憗靤胴q@>m眕汥D褍怉伸X戂┼墽Ugr?^r}1?;褓胠釸!@f$尀s熖w猓H丐袼蘢豹洇镳4萴@0熨4胥岒>糍鈏缈杹;銆{磓0偓僩蛺顀腼L穯3 +<`岂38蟔孕9J棓臎4H$抮y绉е:o伩c>A荔d倨s閃~淔汰+y羟#熖詥 XQU x~\鷕9漨簷劜>纒崱C1c腚氀heQ蒫侫,W=淭*2A溆L`泊巜gk湈3謤迠Q3'; 锴qI*胵 >霚%I8f欝03磬dt跬ㄑ&*轻(耶@!I鵢 g憻_住5ZKF栧c,P[幟:c熘1V*駫y蟡lL$?勳陒s玉 +廳沃6缵[ +z駜>nq徶憀B36x邕渦淯Im邅0鮑荓' 慏H䌷6d蠵y,#3噖v 笙=辉 10斊Av轆领>8酴騒+319_nx翥鶳陯"xGc 梊六桨L詸P g!G$3Z昚&is忳G *蘬 /b:4yxWs 罏?^*)$&懚+m3濶:岳 + w氵脍碑.#2蛂揀馱 + 灒#遍ht擪<怈>釦鄏 殍A餃褿$F谳]L.AN#q邕>齾B伟[ w扝星-蠊8OO=鼨'峈0朔k飽;@>鬰T8 W'搶 撟$熤刿紖堿曃阌Fy鷘ㄋ壡$#1")-.q霝鄮蓍遠v$L娩^Xn 巋覔 R笕槓 G茑髑銡扏)|3>3鲃x蒕9滓|樞汽哋-'g烝搻y酾(#*朠I2め(89▎+x蓣F)1(捂<?"屦觿;W堼楦阨憠穘l搐+A懭霚緝撨欵"7匩>V9@鲣笪{褶m]阡m'g逛c#鄃/樧 +N莠TF睋 ;qC $CY倕n燂龂83I#G'wS彥绕H q<,)#蚍s侴痑5 <罦zBAXt苳d鐭Vπ懘r殳箑霝;鹮燄鈲诗1麃恶兦p?I%岪萟藖2xy镼堌)#趡laO鰿禁c<鸖<#虒儒窕~n#g衐v⿲ld;倄?~B枒瓾a偸~紤*E腀e樸宒扢E2q偣 +縊=4║XJ惞U1;f3 澻98U9z阍釉1轉U 纒E纀虥譨9沏劭^建n +:゜2Ox=9?苺諫`(rH +?x6巬s熷覠禎胣"2樭烎+$,H嵙Vs(雽CN蔊02 r2==VTFぞ崃蝬?楃Q瞗+惒a7GN3苨烖詠3尣 道皒\$芖* t祸98e!8棷<~瓣H顸i5(敤芨'肯z2w<瀙1苲~\P]/8W>濟zQ9躕霑\c姂]\吨 脆噻覛T浼M寧?*o谭saS1﨧8+!pS8茾辅鋌霎嗄塈$. 揝284!w0牅麒>斷9'-嗢{R.舦U1鶐\鼾) "*wQE鋍鴽:<-0'8銣贱SfM8c*q?灛r:t5~h蕂rG蔢⺄ .x-g颛d#io箅L編9婁# <窾 (8炵( 哻抯佤mn< c UeaB($98`zG綻览 n-胗甹J`"L2X廘"橳e($Os覔鍓s碼GS)H$x隢 T灙r?楑凸s礖釘>槻#虎,樮j 霣襛@'∠鉄M`I\60y悒 +6丬T*鋻3JeH#8鈶梡艸 (锧;d;K;伻1愚櫛抲蜚 忦幺曊|詒琗eA匙?1Y劗1嵸 =刮腠@汰m1嶳>魑rv懽颉欃鉪E% '渃淭紋VG98谅恾z鏄K飯:鶔(-騹rz屁撋濞P} 闟蚍C捓転&瀬呦X[g蘼0|蟾g?4釼9総bG>9##撉>l 犒 剳朣S榜剮@牨$倢$'狅弦鑶s涙8碜锧 Hc3r90:c寁┭B/;A<炴珁K乒R籤2綩獕戩3![鹀9袄惧e鵉!睘:8>X'y銕@鞳笮"9;Q譾驵3r剻-如,O9$3讇*!盭諞v}%VeTc崵鹞=:G $涀)皅99泮&u槝|寎q荘14+嵁噄悧悃汕閄")壤⺄:哢<ゝ蜪汕覒c1杄 +吻$q滜绂OZ 糆 +H=AO`莗uV寖荝x?覀V@押9$|米酩x憭bwp:刾qK;1!Nv錞8肭^答(垗I艸P茞"﹀櫠醶淩;3影觜Q. 瀜3A忆G錋%h`騚O錔<能顅聩嵜v<`c奓 c#8#颚粩|翁 U颪m呎[io紶蹉更哺C篖y~耕抺)W2脟$#+戏zH *缹彅庉*gL>陵9{鈥 7熁薒c篌}:ZGex+7uNy)卛%%P岕亲痏皈葏觝vC旮想@幻鄴舜r@脒艹#8沐*絹鵋p'j倊"嘢匲@0篳椎5K珷G沐'?Z懹vIg>8$嵳塽%佨搞=>斣xR屍1#H']牅a懡q玄u噊G鄭76跋寖:v璳}溷*H8$tF}戟)竺1硳榤現郹鮨PB(軤 ,H頢,霝pN鈞鄡怐態阑B7懟3伻o娄穼D#1M籶rs<巟鄮85%簠嗆DYcFe;巕惹9湫qo编们%鯆毡撨=rC幺鍮姌╭磢顓{8?hb泑げ1f]踫?鼵+D乘$eYQ 撜X鋎绛5鉭晩n蓴]噾瀥:1握嵲渀 99=8胫樭頒塙p楞G奚膪qO篋`翭/򴽟%佅4ws">橸@n8#稴蝘 Jm,@78`O\G_騤R┕m1W蘗g滜象pivy瓿!dr6铋曄п侵Q屽W-故滙?*t[膉\. +宮? )║XyM堅 `K荔橡疑礥f實=x岭建# +Rcb6瓒(#>~#"O2y.dg?腞态w哹bu劾''灲絟T|葲J*@贎鄓汩鞮撶濄h買lnd缧`椰堧鍰0轃懞q璊a 藅$髑'hB慔'懟彅)涷ケ鍰罏A帢阺,%D2菒咟&崦n90O秞矆Q"!@P畆W屶笞鏯)*豟Al s蟧^is]厐挈p茣晭麳W#侐焈箝@问b:让bXu=zx泱ЦhJt91<髋<>ed濷?酠p 緌锋迈銥(蜕a寁膻{S0脖.Y 鰽眙颧(q穝 嗐* ($熌*;.@絨O殔J髠1鶶F买/$窀泓?*z║ +濒nX 慘风 隔;PA,1u磧l2;I3墟T*栗$熖乙覨餂 u鵼盹@ )eL -觧y3J泀跗(d詃嶨QB铉p0s6醾6噤c滝阩╘<滘I<櫍 9肫?鱎2H9OA苮簸(H櫏奙嶤H躢 +y8脎淌Vf0亜岭乡LY奊埇屛\禊埱L\沲Αd壠d崣 $ 䜣9c廄;朏I U剁9<{}9ts姦`柝]!樴#$z +仢n#檺$#'8牘Y 慹谖詎霋鄮:M愄$肎栟 i08^Ho詔2 x骼rI6霫_#D虥6淦艜7z缱})慉1塧Y6癅YY蝫n缍H<齄upfi0bR糳濶O 襽妴R尾2﹍r&槬姡%e噩熋#媲蛊:-8ㄙ螫桃u錽3苳z鷙崸讠僁嶩眢H濑9ⅷ<9'烒香迺"x蕱趨1?5詴旓趞跷@葶緍1蜘*I錋閼( |5嶡てY暠$;#4#4h頮hq[儊诪s呓I鵥v*1p缟鋛酩$绥F畋洮?w垴鞞C痭笯KC硟悿dC蜲Cす>kY恆 驕wr;瀒訁変a,墐级銣|龟Tu汩O91F鸦,R7:煰;m塥N3翠 2G缬璂鲥 &az3mq3稂=闕b1捆(rH'邵艸鄎熌鳓琎垺%圣ym疙幖帻"$C爽mb;;懽8aOK唄HQ]卄粁=r}8$a鈶,X 鐜灳燓獚瓧i!D侾9'99鐬h竝h驌刦9#黸y悷).w!閹}CA屗4萗梤嘦l鱯雰酩蒲ッ刪Y`*zdc讕zd轞c憘E$M<鐬銘$i H$u醰颤阖鏅化eD肎囀隔=p01抣k;xaL糾灒on(H' +?濨]敯鏾浻ㄣ橼瀌厔屃鼠e[鼁{<∣氿6伖A箝峡覞.炱C#怟d渾$g44S#攳穚搞恞)睱罼G綔咐(x遍觾暇j#鵗&0渾:8聛$ě;镘[$荂@嫞*9,#滖圈祭礁穹憻迩経耓d缻?6N?xt佞t@ 捥[錜織U鷡=@鶈B]婆蔧羜伛艪RlT仿霩諊H>rq觚hJ赠 掳薽 p#邚z{.6腟nd鮚3荖?(湋郸A$ 9趿踱撍 U&繞鐪宑q=笠V N檞o8>疸风D港71X⿵|鸓c53涉a憭鋡┍)晃塒徏rI#種岳42|貰~i>c穼齤z,<3!P[h舌t褡47哣C縮18nOc瀒岓-3m尗~^軗拽Zt娦冥h#皩Bx绶螫葯H竒8銥:w敁,(%場腙G"愳fR2茂鉔f}爛9`_泴┓(Yr6漩秡P@Xe&梥pN}>Бpf{`Q&妊BU壬#穰!鳂l涠撚駹8PT钿n<佨彠鏝U鍒v3Nu, W懭㑳2翨ㄚYH>玳@ +淠爬^>l冰@  |黷⺄e辳0=x#備n, 8吗1賷z頖4舝尡菿;幟9⺋'颿梱 +案=耠顷jJ3砨漕c詂専窑d)8蜙=?SH 壖芚曣;(ueF駼嘽扥篦-fHv*醱&Lp{q詞tB昋亙岓I#缚}囉寣溿4鄓昄1惘襽構 穾~@w'应sK近頌Q賹锶怯irTlb2屶麑襶圇煰O棊,ua#(_龙馟蔱鑧*趿獢'cocM埁U(>^FT~瞣rsI\r蘩訾mr昤痩s焃V!d\7p怎兀W敔f 廫?系9穕;1g`躮 屼gv贸逼zRH=爘焯0钹廫Pv聙20梧x靓啶ck抅嘽亙*qur迌扮擁>槝鶖8c澝诪=恭#鄉脇n鼁壚舌Scm鉿utl+閺^衄0伕鄃康 >\d\y.@沭膝**U +0RcU~o驾;}h2甋+懘䲠 +#桬 +Ns碿q=烯)ec詔鎾D橦鑄鈥#嗂r9:毆3'摓搓)琗任N8"Q 3钩撉罓O3'xP;`绻䴓齢h褖,3済烴E)e\n d郿4j夺鋷F)匝籹d 桨yé抲p"乨\u/窡蕗鉨敓囩n捺d駬仛搟龣櫃<困%F@?JfA0%搯摄8苮雩y妿伆*g%唕~謴#2w嵾/镺R鎄 牎术零=!礸bD塭P幠孚6愂y喠v蝯鷗ft鶗] O鎓1:{玺鎹獞(F稵Izm鄐衧胐䙌║ 壉誠fL溼(脎穰⺋0#c0e宑縭NG鋩+瑸If貖?9麁?齤W鋋墘~rN89鐐:qM 栙B|紓X寍絶v>U6J鉩gke咹c荇辁P譹 StD 8I3弰+迦軕貍0O攓姚H"Bヶ釛亓b8擠T琜撓!佅C栂9蝯~4p筶磂|皏)a凅dr9伹NG\T<吐hC#n9蜦?9攧D豥r3弢㥮岰pXw 穨012}(6,g3v惀H曏泥鴙yAh/蓀lx鞪 堂吤蹉$潺M:B#X擉擏Ks狼O6 gy槲霂鋛J矵♀W9A摄詛覛1椏鲗a抴?聻笉潨憗掍醧拀{zR;( 絵+樟!蜹c哂3,$8`6A_茥i橪r籒y羇螼N濤}(綵随D鐒p藛$廀鵖cq$噄ds蚬T$剮S萭(莱醧 抪O瓽5$$$葲 T(蜲q涘r*S 鄃 飹)W"旟@s偫渹邜琰jE$埜朡髝N?楅M1晬婩3深yC夡怤憕|钽#蕈们 /&Q槍pz{%+{脫+eF3班鬄夔咬U)P辧冩鶑S坭(1Wiq陕巹q沺c騺撨灊;R娵If鵵:魛悓GS彉=pp=#o漎*>蔸盂h 晤@苢T` I偕Q椼無^鎽b屍翤@鶍u紆;誜彍鐏訆l尓嫪s茹稢MP湾7騪~岺頟;0s騻I霝?*d庰粱o樖訝檄5貞O啼&3昐渮9u靍UA琾a蟡巗可FF呓X伻_┿行四.稌)O繋欪熤%祽掏惷==弤E>E瘫鶍bd亴蹴御P祚Nnq!#鷚鲘x$m<鲷酎i蘏${眰犱1廰烚斿P$k娅1bx寝琦熓z*S&C梐s酩 銯懝匸嫌镺e惎蘃;c p:旿H缾莚禂弞M@ +駛爢\滒;P忳A6 ln狦)?糾畤n:N>淪_薑堶嵒p睈滖瀲犮轫@ +,懝8(脸粸A銖O堑'HK. 甔:銘芝昄*G=概&6!翋H蒇範l3咘N蛊=)籜7敥,n9鐞A +31钴q增8執徃60F'8鐨IC欺AU=8?:dWhp.y咙敬 觵牜F肆>敱樚#=py8檫 釭o{苲~渝]:钲徫8&<剙8里蜦)I3訆D6讶孹p23敉*>心伾芫估酓A耡 gLv)a#宸+曘縊zq g 󑭟8v2籶~S妏;责G$s臘<攽四9=範D艸勿瓽C\墜b^N躦+9莖Jssu#?覝翈6癚邘 +)谀pq淭q潙勆憯卋;蝭>$gtj~n@瘭8>llp鐣8#搾I颙爛r殴'炥躁 +挅g +狇'42竑fg8飷8爩然旽t撊?q墖螊凟R6訆'x]晤逬>`H<佉滾鶓x虈w班熻(wU撖,@散EVB铛<鈪$%J2A鞶蜽1+囊lp2兩鲰P頯98苅p2:tエ娗驠>nI瀩h朞")$m!Ur{qR覷暢祦亮凌i甐HI +%# 躊啥"盿>\ i8*缺cp/灖?酭PFE"抯+儊渟颕yq紂驅蕯博PH躏@I(哨T穹岏迶 9>茞崣S艫樽擔~t┗h邆蓠襽D薷悒<岕9вWq0歶k扚L$錇啐zV岺p!~K/灆(蠘F# \G4咶z懭荍uPR.靯匚OON詰T"/в> +d[DjJㄠ1O+# 霫湄rX庂9鍳>K>0H佔惪咏Eo'檏:〆y*Jsd筂莐$z={P芣@xle$s前?#1旟{m锑v據gpQr酳巸h嶦 z1迨``戇隌|朢荣-0犾<堽u嗍睎}署~敹靎穀G8b( 孴`!w 嬍濺3潈鍀钱禚t猝閽0漤憘y鋻=僵RH,I$'#A&鼃蘅楕 +`圙 +(]鵶芅*EP2q偳'烒5旲q#渞)YU浦寖熄9診窔蔝枢嵸酨\*筺={銧螶>d蚰P|燄] C,wa+>絨鵓澟膧8邻S#憺絨镫C鍞 ~Q巔}齫JK$\.ゃ螈駣Z汝Hd>&C +篶9荂襄3eEH+8$焇,憠H 畵4歛櫛计ON3惡"4[d谂X>PG獞@垻B7斅拜 ㄞB-0鄯忈饭6_誘B靟 侟<呫E@萸瘇MG,Q竂'hq% Zv亽z琥w1+1瀝3煣銑b7)?*獞)栙UX 矞l$幔_,3臏廧r⑵騂蕥ら灩Μ撬8Q宄來$;&g%)软據4Jv.~辔9<鷣3g# 9#泉鍳m7洼1n弱苆XH8*7@鯛Nd2潃%8胂)c?礁缱丰讷Ew#墁d.乙/煑⺷h茀僲]李駥㘎P8嶾)`@l攘89I 錔騁8诠s灊閽H頁乳蝰趢\艬A蝡1邽嶂穾F宻燇歞xTc鸒O臾$ 1\鸓|翈A<`c +槆杦09蝢颭劭樢筓 p淘 )姄躢#鬆 罜侯|ON繜覞.ijN靋酡g1#宔T憵"b穑灛牅P澺圮鐨i忓貥D!F>則潗<儸j\r@$*#H2Y9#3皲竛 +軼帞琀禢8盹C*盧 S憫行爩鍕d鐪q鞞籗ljx噜3 +s09\昢炟阌凯I#崢u歶5we穋鵴轱蹕鋞历S '2ZD荅蕢Vv蔽I闅w孪|忞K-嶩u2C 薝c瀝劂颛詑T抯74笠w憸銑G ;FF0q蝬鶥3@X|=GN櫎贑e[傎`y韺N忒9T*匬亐jE]撋<溞@8> 原 埽焩i+On0扜膴橧* 8鋤Rn]鹷 匚3)訮MeW`<鷰E6d丱M#鐭z拃锍$彁),迾鳇轸Q@zq謿◎2*9齣鬚Y叮6 牢4挧$`(Β凘8$擓歶5T(老Ry9阺@ +endstream +endobj +106 0 obj +<< +/Length 71 +/Filter/FlateDecode +/Name/Im9 +/Type/XObject +/Subtype/Form +/BBox[0 0 2384 3370] +/FormType 1 +/Matrix[1 0 0 1 -36 -208] +/Resources<< +/ProcSet[/PDF/ImageC] +/XObject 107 0 R +>> +>> +stream +x+T032472T0AdNr.W憫攻瀰)X佬略P螪列訪宪蠵烈繲夏?萛%+∑X +endstream +endobj +107 0 obj +<< +/R7 108 0 R +>> +endobj +108 0 obj +<< +/Subtype/Image +/ColorSpace/DeviceRGB +/Width 516 +/Height 419 +/BitsPerComponent 8 +/Filter/DCTDecode +/Length 43993 +>> +stream +AdobedC +  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY" + }!1AQa"q2亼#B绷R佯$3br +%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz儎厗噲墛挀敃枟槞殺¥ウЖ┆渤吹斗腹郝媚牌侨墒矣哉肿刭卺忏溴骁栝犟蝮趱鲼 + w!1AQaq"2B憽绷 #3Rbr +$4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz們剠唶垑姃摂晼棙櫄ⅲぅΗī炒刀犯购旅呐魄壬室釉罩棕仝忏溴骁栝牝篝貊鼬 ?魵( +( +( +( +( +( +( +( +(4碦R抪8馌 +zpqE&A钹"樜X)厬廫^(闕g慘镻 M窌胏岎}雧E3虘W?F$笮螻漲@J乩*紈z恳4轟-儛x_\窔!-碼檧==*矢}郭K 韓抅08-専藦_ >I0 69荖礁╕ 笽R0PY'′~C螫鈓*0 z鐪w⺄3堆'3巚 3蛆舄"=聇$羘)齫垡琩P[% 渄{ +C#2跺l}样u▽鞈gvV悖c灊{7局蜈NG?=E7矢 滩mU' +鶐军銣绥n埩; s&23/蔃 礴狱猹fHn2X+2偋=?/n4Q斄I艷 䙡vw6鯯侤鳓搅錍 x闊cPY|癤鵇|圄<#痫颮2T摻x頊\2惥f砟(l廮莾怼,)頑彣戲flm~@'Э>輎<1儩l灆鶳層$煳"^幁趱54R筆dF]纁岒}粇5#3竎y繾G=rJ` 釙N旑葉;瀩OHu峝 箰?\ 帧f|惻T/蓍6NP3靐豟N;巕MuvP聻 㑳_;@肆:秡視EM娋b鱃$$煡J劙$軄磟媵, +吨^8蟎U 鹅4嵖78$v$n<}“;6庣奦刣筤16<胐c$d 帔z觩!!嘋軁)7nm\^緹JP锰+侐簟乥9噻驺#?蘴'4銮鉑IHC\(1謤Q頴R`0 tc弉煏;h莼1謴煆99鷙S藣亻淭鸦q1跐E&>l鬁c 溏碢EPEPEPEPEPEPEPEPEPE5篳 際q憘3@ 颚I落騷OJk6 g儊H淫d+brx^哏&.8?.^.F茔ǎ]襡龄 t&&褧贎b鴩O簋EA$np n摓紿⺗(G襾+壁>铬凣$0谄0@C恤砷5L莗# 闉N借姑l9pジ99:_藲z躇亐o迀(萢芠髲聻瀓瘶颢韇珪鄓5n橙"F荞蟾=3 熡 愃.`@刴"I u搁X%,r@#敷辁襶bT8R濌#o)bU|蘾蕊炣隳娨橙N)帉3Z崑[M0谲让渽3餆窑IAwF蛩93顚莏9c隩(r<眮 ==9⺄颦$$懞 .9靬](U損.y8=x T嘱奂妒'< 煭D-+A'1巤臢7嗙9輦Rx8鷗鴯傑:盪蒔挤<w弦卆 诋 y馗8 馰/罅RG8䲡%媦fBAd;皗z~tQ ?2HH鄶^8鲧鶳襂 ?x1=粡譄 (<凴r- z氵澡#DV "操9=牋庢i0 %H薵ha莂OY莪竽h骄焅㑳 +ò 黄7rz9徨"龑2c傎瘇*考亾騿=X翥4瘸$X 彊筺Hl跚J痩﹕,Hl偁OO^sVJ>[1;縻'湊苧郉s戨覇,6飁Uq喯帔煡W笒Cv;b辱3荂瀩Z沺p柽Y萈F=圭冥凛讖螭t$nv呻9焈z#腅# x@j兜 E +漪実唧蚃!ydc1l&SL簬 臱悍 8燎阆<W.ff\廘g8;*駝u缹p}缜\TGY"B籘/By庌繖╮E麊>nH#鞞A濾3mU辽t?N}: 噕謃,Y睂pq佦*(b鬽$($姴岏缕S膏恴儗滬~tb4;GLz弤=}3$屖@羆*v"马Wn笺住梧綇嶰蠧 ,+湌H$/颡Xei#俑9搊8胗?昜w 瀋2憸劁恴{~ 繳爳5鋋塏橄Lv餁lh蕸A蛸翊(#穨x>T楖攸牘纎? 3萖)P鋶樸革詞(巠U7 F腵焈犐岧@ M颚蕻>'畒#讉G镺M 踳ep繾抸绶?郑缶O,e帶粥#杋.苢恵 帨笪}崛#2粕曄 樊?例y;<忁p@荁O闅鵘廟蜕9埒p=鐰捇,HW;圭颀=Ig'([蛂2O铗?旚萣@ +9溜佣3Lt膽﹍鏹2 8#酴 +s箇v9^琑;)~q箊怬愃嚂`T{髑Z膊漊A 珕;訰1昫nB螽泸銓倊跨U橷/沈B邈寫鶡聹R7驅l7檯9鐜咭扻扏圬昇茔廅:膜0pnl>=>爵Q眓焰DTq穒N:u飨J祄?槵w滁q{)矅h2#9F<8樽榆S! } +(z{(嵦鄹躹9噊jM襃 +潽獈}3g宼齸灁 *[{b$",6F7/憸箨s@ +c哄堛懾g鵗榈UH傺p!鵘X]昱wd荺镹紣[MJ傁羢# {zu鈺/&68戻;羏Dm庶dpN3渢慎想V0绍:f,臕]丗蜧繇D夋n\釃*v鹁炃憵C塊eUG饛攇幋篱' 1;A缕y>3渽\1 pH=盖鉑挫*有:zTa睊 晌F}2q灤Ij涆g蘕巔9琦滺}束,6囹8鞪琘 砻s9?O"L凃Q旄靓 e*#.銓A1a惢c又$笙紽$ +0豙崸渮S篌疗84壏昄 钳酾.qO芭-5萓0PSH牖o +ps蟧.>brzc┰SB沇`c(9系-R 鳍(((((((( H<qC6褱蟖歎 O範氺6吧迈爞 mn@4崟抖訐湆慟旽R茵L戃:檾8b ?Nx#渟@涉蓾2w.1席<㑳橊O+洱鈟茹簹窤慪z幘抚=潄堑ThXe$-3$A䎬*%"〖翱7'銑惾"$思6N銫侀殙k¬@C0ry筮锧猐T6rA髮錅z試sn 狾:貂*礋琛c尣搾v渷撒57)B>锺0:_`ⅸ-KrX銕zS湮U洆 ;2y/'8O鏡L劵A^s蜽糸滣/1蔪#cp`籸`鋨_Wki:藠u睩馠遘蓝N?/4趞蜵韶 髮@阚)B谸蘇`鄰R?绦`'x园.穙系X蜉BE媸睃Hx汶颯壝"鍒败師缬螃蒳嫫$炖l鬬11鹰16棘疗鞈蚓pH?嘊Id嵠懒K$v&01>B[佽O酷J +*y`韓!鵆3※瞦答n3Kyr1Vwlv寊達茰b + H脏9g<訰珨粰w訉鬁鐚OZx$@ 狊HOS4扗HCQ豤q^q顊t0UL擴 菫z訫:n*r顼笪9榔?檄5K籦嵷鑩$⺄-e#?6:r}⿷\Fa;(a)9区誐E尠 窽 N9==(崡w!/q@+v]員ydg犐﨏酾%腞#>貔>蟑ex撶噻"p:琦绲20蔣 +鋏A庿胗坜4cpd怤2 ?銡Y娿鐟UW芦#f$0B麡暳0x*2$[(藁rO 餙G89a鱄漶==-艸B求.>a蹉赶颭<迸匶'駜蜲|熐X)阱KG>HDJ嵏啜蓗FA9'$v3汽軴烧港~緸絠衿'p庫G雨!@S"≧~R$c簸#$B)晭;穚=qN>糝鵃JNH+攘蹚鏚鰨鸇n僸 nB闒Zi@悎P翡8閹冔譅漀鲵声I8>䞍撥渂阅p 圊==忋殐3肉2KF靪ЫX稲娙X.8讧;O_璍9l幅臗呑 +Up0爩qQR艭/蔏 跸Z?嚋黷`霵O?Z呥;+?笾溙 1板C@匴 囗^s豐{$t餒貂;n鮢籶#?泮Ub6敯fS嗂>{s强謤' 蠬冩t熺冖鵡濖)908荿;"膭N挲 [;W┿膈┲<'p<嵟g-30螿垣應⒊4瘨X酇岭苲q汁ь晌K1宥蹯:~E=pB:酎M9桊蹘G;睙覝酶!I8缵櫢颫3nv脒:傯偂槃\灩<弉煡I濑於 v钊繲 $$秖邚O㏑Y&}y=3覕郅醽^ 9<觞1@襏Y4<~~#覗t楧砂JL)湉g耶lh衝>`S鰾蕶$_7,a{岧3燄0 O1#aPT榮囚齳㏄o勂*踴'滮? +B冷嵯RI8 焥Q纤prP9鐪t9yT,躓;臭瘭rc鄞舐o<冞殏3+靊J"8#擄?4暭藛C砜tq恴絟乪咷態蕼恠偳蕃HF錂H?^嚡橛緘:*厱纳笄>焮<悃у bGGm临\扵惈濱鋎帩9 瀏c槫3k彠畘縕曐d!鄿翡蹶浆b氖t\灋鼼舂蕦奯h奇8c寧綩9 K&la憏萜3Z戜# +T唖+8<}H#優熥廮zX萾 #^譹嶼@ z#,3訆B >iw]亇粓杖麛.s搞憗绳T疟у)/酽P缾6[#約蹼 N ?5YmPp8酙!奟ZXU熅粑8 b(((((((f +2N#s驉pG$b扚 +g闔雳霾I4嫀wu锥(砃7鵈y'h鋥uS.d蘫弪庄?旸隶92<紴[<}j 鮥 ?蘱屽q_箝@血耊.墒摕2閅洛緇窳9檱抬帔惴隥JX彄irp輳锧刺p8g呖^熱Q胎芯d臓nR赭&gGdL{w泓(8惡1::庺g,鄀<绠;g?JP\ce8鼱濬钳襞292D眲蔰滒O@x酏EX忔!1芘[#8倾襽"嵵 类H?0c袂n:.Jㄏ9 T衙. 1:z鼽〆滩釙敄>'鷔頷m豜琀a寱_SK鲿潹H!壣?噉帻j咛茜522">g}=:J9婍窗9u9撒稂#甹闔K獕7ap鋶g<幐R+F揞鉧起H蜨=茿:~uf&c#椿慖 .鼡蟣o謤% 笰 +NN tb1憎?*'w2遁漽烸O."嘂 q搸恳斊 羇寲嚣牲$Fg ;1宒.x隠i份J8&諰廞術灳絡躠(”窗8韸8鱘!\+鲊痋1@n 椑U?嚙n煭L燿 +撛b嶠b裙Rx怓?鮌縲価8 醼 J牊锦(y侲筗8 +~S廄}┤ +纆鴲w頖Z侢y%誵捿9缬4]嬏綣憌 缻荀吏情P瓶g屓3?q8x9橄<愉F% ."-崳挱讉:銦N敨棏穋b.AQ鱵﨏驙,l笒2釩诗擕脪Fzg忛踊鉼崯p怕I + `q>92襄7*泔 瘇z酴?h墡鴺岗Xn抷苲 +8暓鶓(妙<7\:鬅O(2*9F蕼翡}A璄mV滀8摄q恪沥蕈M*zt裸黨掗FdS#鴝q庣\2a#fpO|⺷ 翘G刴踀N['=镐z扝訦6vq鵦翥?ZPu,帚媲l彮$q糽X0藃蔋瞒銖瑽憟萑鄹e上阙3dm(醨丽_馉 +/$鷖廅川 矀c?楖#>#%I8;s袔pON咭'斎d 3/┫狱K+&]斡亴瀐J駶狕b&'窻粙颡呻怯>啩*6r9苰隌 冥 +_Ob1拽*?*Yq嵻p躷銮_螔6蘧[3 @FFx?桱s捗 Js彣砛`垇A-唿J*d]j(訯EQEQEQEQEQEQHHQ扏硗5:昻3臯攏窫dS#詽Su惴б06渷曣x狽考)+怤@1巤乡@崚T20\莉z瀩囙鏑崜橶pU 8-黒{銻F沐l#=FI缵0s禝08=rs򹃍.亪蒮仏蜪胍聢<菴K" 惪?\騤褽筎澈J@蒛褴z~T篃ya兗n`X`6q佭6鬟" +笞犽祖1?w;V^wN:g$`(j.1F芽6A輲絰.3昻'9鄁 ,軴X睦( +矢壤诰哏,q枒dc#挥丰T頴H 懖2 +;榬{廄)閣1晧馆0~距c蹞@嗥炳痱q鞲?滼1宑両,n{覞@ HN8系佽s籀y鄖牢酷@:b櫣鱅击~鄐0T屼i*趒抪3魻&Q; 酕q畜弢鋉1BH鍾 +禞c`記鲖#頠潷#炥軪W蛱D摈`1签НZz皪b嶖芅\倉0y蹑灛9w]銔8戏柞+m覓q喦в嵅驰o#<渢9镒1點矠<霆槞倶,q 鷆?抓9寗朥f@y撂燁O_鏠\JC葟#匯9l|~]= 2襮 梒 晌鎂8莖nx⺄鸃橙犑 y]== 鶸@冲p果 g衐粝~铡mY0磢3席锧[QP1(A $0鋷^吢Dw罾;蜯B H姙$颃"+9R0/<寧齤(瓮﨨\嗼窛r}滚Wv竽C;[湌s R,v醦N=强HY檳蜧<寖訛Gj埡+飗8佖笥9Й郼~9@8\另Q2爀M # 壬汶%& 瘘愵$g疉M8斔峰茹>鐬x请@J盚蟧/}FH帢蹑滝会莅r蹣佦978P吸l_忏圣惄Bq蜱?T惿丟樳w/阺蹰LY-鰡H妼8 u囫z隫<纃Y dL戵澒=忽祁?JP轉,躢痋鋑@+|-烒99鎼H<な簝籿q鴚*#D!d鍍 88忒onG憰e,+H席jU泀Hx*刑ē渕c翉#=;帩镻1O+cF悹P{t嶮=$p法繯瀮枫鎬%/窉W1''亷揪黃刯琲 &嫌!.T(*1nF邁} 1誌叩+8頖瘇J羢尪>濔錊8貕懖爼`O~O'"倩 馆旿髲~絰4ds* 彥强酜 ;dl +y荶?含伾廭:寊z qP壅决NA8<&\p龟8琰 +埙巔1:毈8镹#>殝{0U!?4婺h 邊羲齅R栣V鄦WU'冿讘(笏Yn]B癘9=篤3躣偛0绝^橍琰郩昤I6%F$韺Z驉y#鉬1子襽4b訡( 򄜽n斧)$挭g藫煙鴛涌Z艆b6蹖寕1冺媵璌D1F曞W'轾qv*玴vdu轻圣h寄;湺pG:廲QG燻瀼綦R*鵑踄秴萀щZ 輴Fs鳞闉究滶*H8亷>銖鏢蠲d8澉8纛z觗dTc( 冄崩<~]h爼楓vnNO_鶸i$难12 巕子 蟛 窇#蛏卿*蛲鎛髴風笞1'{rh#伌=耠黹鶶e懄艶F2>邼N鬂燚l a濷镻J渤窆8頍8镫趢AV墅\g箝>濄&yh抹'特鐪髲lS軯PB韱]n酊璑3!&融笺?Q8 弙 嶡$弦 +竦朵舮=)柖f 9`O惪锼㈩\f 蟔°>0`噌Nㄆj补驥 `狪旗錅~y9э昉錊'筦銮酯(籕U囄鐮=E<媽滎9扰L珜g撾U章盭觛;Nz)餅9=v蚶t(m瞅嶩艻膻 + ++;恲>豉.沂G;併)騧u爮L灉h贆FwmQ懴~s镩N.珵9.:灥D事89c憵]黍)_沬#8_謤*柔燬鍓98惜\g疪,3淠鄴H<_蘿 妿笯w;廞老aU鋲菽捜R<騙骒p 焭 +O 8#Pz.x0\<c濷╋鳶- 8a咐8獼/d*1/4n顆4a釲桸举闲5.諁逶誕巕躢燆i羈,bbY}嶯3''飝觜#软 绶j +\t蹌;决y#肱O-8螾A燇爪2(C4g%裹表SB l,J瘹! 蹧=8髑JcJm剾gL1}根I$Z癝c9疼單v灒茉W+3 /怗C'框頷<嗔/0NH雉'憡-7//湝wzZp5敭杓贝崸O鐡熤旟1#@;`g?N{z蔤蜦衧络瓜^9暈?8 )鋍據s蓿P 畍g>S濧26[萺m>邌3#1鉞*7~8;麦9蹒翼唂I≒胒搌鮺T i ╂內$#T2Z$0s 盈甴 创c?ZZ(94QEQEQEQEQE z僓e驎H趭鋹@便漍<2錙裹)) 頬鬸峘N朮擉o9=┊$Lp{ 烶qji2F羀泸]3/P Zd`^圛+u#幗鷡攺蔺挮生w惒:22駟艷#黫K爀Vu.9薱8鰻寕yZr昩J巕憪w哦潳灴鐨r噘GC@s礎霟鏣畧Dr3;Fzu荺䴓玠d錋酎*旉d8P$稌>Q苳箝@肮谏!_0毇 j:矋ㄤ+S懳F{g滕U名/v釕倮a 銓撠鳍捋蒀妗惏9$c'8艻^Z挶%慇$m\阀8鉁$na2y dw釟秆GpG绕]H'沸騈GZ甎,堶nda麦盹渳=3@[釪 蜚fy(GQ0;^4FH岭巤妯e选]憫柬憻O\煚煽鈥&蓍苟抳?L食籧,%脤鋺郓UれT凕<>烏^KX喰)<湠@檉!\&襭喔芆lr{ +Y'蓹?v#(r2A\遥6Y#V`r 1 d仧Pz熐歋3扄鑋 蝬?襽'W #t&@X洄C2{馦滲U鼙$`{颀M%竐劕A饊曓y':奺预-仰绷a衏垹)毺w" 髮g狘9?_Q臦W罵I$8麑?5md 酙* 儿e;G憻U爳fc)䴘2苁Y x善q:~?廧K诟cS樽奃O祱埒9 兦螻V<v廭i蜘#4y奝%饃廮筵EIfl銚䙌H0X現34x8 畇儗銑U塙J偳<蚯?熱Q噅5]啜阚4-辋M#@r9嚍烲R<媖 .@社訲3湘0 *A霊莖^EX阝7蝄戦貁觗c悁愢屻媪峡щK眞n.pRH鶶)h貍p~R冎*侼wn.Rq礼'ERG$m隙q妿GP椞%丷Lc緃G%眨q"鉦呻苨烗O敐:v镼φs 玸苮>橖)萊$$ W>!* (限m\g庉EN\$ Z尰埳鍥铐l噜荗門;<2;榗#<駧贍懟虘诇湈Op?鳳刯T尰堆兓佇~}?SLi6c灶酖o]V蛸K-笖S蝌q叻|Pj诶$8勃dq05=w0nzv哩缉晧X賤K惝3痈蹑蹹旯痡p 嵃珂G?\ZO-諦n%侳;~_Zq晜 z饆䲡+5菣祑暼S诬q阌犳 +_ +6D9樯1CH$g}彍/e$聂虰餖洚A'.焻媟`|8顯 "+詠 堻)Uw杘'薋阷恪9襞H鵅臮刣囵}>荩ec莒滙懟岏隌UF喷穘(ǎ悍蛟认堂4P伹= ,X鋊v酰瞟$撨9(9鎬瀜攮 瀝s膝3 +椢闱侢sN$6傔C@欎N8EPEPEPEPX>S冸屧QD|潿Fs憛)鲡J尀8h鲻!碁@轼*(b錛x;繖&樢$1厄q寣栥鹋4;櫵Q詜君i潨靋佊嫔韥荗笠BC.龛B&S+8 =3熄J;怌)$讕縎D#;鲁菮T_lzv稆P觧f 根P)献坶RG9慩穑逼G=*渫鉖2辩:滣瀓eo涾F 焦霃鏎 +6s#<>誕滾角\巺Nps脎鑚iD瀁 蕬=?x沲爊峳6讕澙鷅 颔g貭 +' 9晴怇結T騹媴邈 侟呟2(X)'qs8鐜x麋54l2*瓗搧戇#%暵F3岓=O胴駧,~\7*u诩儛3忞Sn鄐儍円戙G*]閼襽#h矢2Ш0邱a+*0B8闪蹁齷G,{蕿葁帶&X(n鋟趒礼鉊f诹旾t愀▕1d;9潑8稔ML$鍴霭 `嗐T欰滹P$鄙8x砩\*$懀浰朣'橈=磲!S<吳z廃zd䲠,<匵*z~T爯27$g$擃z{g覛燔圸"Tilv廃訖 >鲮嵦22}=螼qFU恅g囿鶵y熀i嬥m芗p轷<~睅X侷蘹8H#89黪ㄦ yIG;焠=s@A-&5婎鍉l悒=钎&辙屒蚛豰雽溿縊5軯阞eE憞#犗赘$l惶x~12@;0 n$r89陖Oc鞻? 2rX*宒儫鎗笀樚媭@b@=睞##弒覓8X稑貈l罅?栨 滠胶1Y雾mu螭v韓氽渵^淰騧0)悃S軂}Z酶鶊6*埫}?Nh屪,,\EI汕n邼!櫃襏俫|煍1佅x鶵辻"!羝sZ%/⑴.n$3[8歱4踀鄝0q嚣猱m仙.灛y|鷝c=}O5 1蓫莐H臚L鎾4<磻涠y;s讈 罫彈h鋍齆 XA攃\銊;9\|z錕鎫;ew('疈蜜?4眈樬/4n<+z徙稱彞I{K.宯;t9HT矤悓(<侶=F1轻蔻B鹍$40 樵鷆攮I教6觼竊q蹒葒c/欜缮 鲻肱F/1T寬0I=莰唓4lJ澣C6轚?囼镼K(uV兏檱慰A鏎]K 劜 ##+鵺玳Q穆)@,瑜0 灖耵O駍fBY鐅鑨Fy雭鄣Al鼡 x9''nh詒擛6╊K诽~PU憥\H?濑4PG'冔紾蒦 胻酽) 伬aH'扅UU诂理\榩s弤h,;樽8g撈N1P猟bO_榒姍X6v溿ZZj(梚綦N((((6澵墙P7Iv汚拫<{k@F5淢鱔崳?/9 +厱bV +〗9`8苰<渝e尨k縇眄砬=9鎬)椴H虂HFa扚rG鏩 +3.  厍鈑1Q鎾7T驩烁岝嚡Z熲賳x#衭80昀!RrI跸1鵗d⒈慹蹆邦菫9'譂7媸弆}2VY2l甦%A d:鋥泸黨欣.側_' 苢;鳏h#}貜2餃餑'閂毡鶡%r咐0配g銌<郳n羒YK朩*W=?N3S獕Y0寖懭设?/J` 4轀n鶐wcl`~u#Q"匜Nw(齲榕W捿 +H虅Ep 巰zg?dR苼 a鉌o漴A$灻"* 褸X(*嵛G~;~t睄+d 諒銖^}i3 X衞狎酆帩3颒n"iUXF;嫵i莮估┱榿崄Lc迓鲲域舄谒"q锣 韽9 e栟8鉦9AI齳臙 HT磶镫Y采#*z畿,I蝢幘紐HD-*@蒁9閁O ╞溏袂O笈g'O/(r裥殚H"i剔n>陮滬q鹰\嶥`"W 衺鲪寏_烰g毉%x偌!轂乴滽玜1凅6疫煺埇\;詐蛶W霂绛J襚|硩硒鵻-诇缈c蟡_擡纟噞嶬话zc衼芋噵,@ |O曠螬虉(${X弋s衭 wo)凛徑-擐|d 裢YO2M 8$1 +脤c煣痲Q黎錔拨頠s擋鐝Z锻盶 3 b r!q斳0Cㄣ9429S,q鶆t88#?< 軯z滗c?F0爟髷>A蝯{鷡t]鋻)0.y鄎1橄J<蠕x檬p $缧慜Tt<掌蘭^9E-绍?_脩鶳h(晀碻哵}獻+E!@5/'幗;袬sDeL#爌爌}?泉绷泵墷嘼鄝憔j肈2厊螺Np3缨改v9厉($[ 湇:倉曬磥尫擁$*眓 欰q姭時N^y镒NB砹镹<;撨扮4,檛E9輥荗s@O&柀啙!r3亙岓Qy%C屶鄛OL~}F娝瓦楡1蹚髿V7Mㄧ#'8茹襞i襐3 \1濶G?Z惌+(1遄殍(W#謲8认焷!@F8<擖i9獩灞滬 " 2済<*"@r蠉爒?9傈河篯W渓# 宼6)搇g刔H銖隡vBY@箐叵氵х鯛M%悸y蹒熷靰i褆芻躟q儗蓑P$憛嚆vz據"<蟢x佥敨m`莤鄘邹璮e 顸'燇郑uUI蠒08-甴)惶2#?:&fl┢I<熕萐*#0珂99琰4凿鍼耪@莘茭R0]N 黹乡鉾戊実9玳酽嬝晤q惜诗<蠺钹佘颏?p衿}:球 #q8u苲撉痏!簨f嚓x蠕sY婆佖eT滝秕轫A硙蔝%Fx腼䓖P蒾#1(Rq笷;u猶^囊0*X3靀=簕R5笵Q2g<帣翡瀪礘hWRIl儜趢-Iw淌産$纞梲嗘鍭槃Y;嘚焃猘%(苝萸j憼o-痹 詑绋9]劺粆;忶⺄6貱NA`v={PbE'v;<燄眑頔S亾F蘗9上輁 鸼? 婀9R;=3镹>硢# +膏熞1槗!慪筓#鷔鋡綵vG'谫s窡檱滅х硐5U2N鞋 铪1JxF1梖 凤3嶪蟔塌P堬v墒 p|亲}(6.P饃零憮譬:m荣O酴翴#厥YFAM転8鲭荍赞'奇 騼湡~0=*X<蹞+.聐q嶰L~悡1b瑓 +'侕毪y扞滩伿灖溿兝鞞S萸kn%敱-c種渵5泂獧 +l19':9ス篒硞>@z撔蕨6B鉼 +锎龟r08跟癹.I搚\搯 `t昳 弳&e&?>晋U+︴2: 扺漌H-e骅砬岿潑厪鋍闊篪鳜5暥 累座g鵾2<艌钷0~颻缨=c"*蓵趡}=噉#哫 +擿)蝬擄骚#糝a>X穖0~\飨銡o溵X遯揉`S:`6_z巹3灻襽,X\4蹃31轀烽隒2@:FT伔鲢疨I绛WYJ炔厎宀牱嚱:iL擡濦鵾扂じ-,墖8$^z 蘙)耢尾鄏悈A 滕=:T微\俔妧$3B湈蓁y欻Y 蒷寘峭冏闓oДK$t菞大恾q碜U)匥塅3兞鷱覔万I 瀋*顧苶荿邥X"5g鵓2rrz_$抣M憽*F渹@迁酽墺虐朿窅G'$瀦S]Y<賒U0Wid朦噁挽姵硟冘黯'v鸨;(婆#';裵膤翀睏粂艷^旝x.w鏹摫 w鷃︾o5pQ齭`麩n虿:{銣u鶸'杆+FYz吨Q:绻8笼i熆婈=釴#8H滕s訄F闥G弢髿*WL埗襓qj(2牌7 .H绡<0?8尓;敒s鴡t #(銆zT+#rF榯升s朦%bC珬\0z佋酴]吻${>缱昅!Fs哥熴M%HFd1≒C {{v-$Q樔Rc>齭V 「览=朠!gi>p?昚A儛A=Zj6G粊粌鵕)>Z髶 u>愕9^u"吷潼萜躻黨8Bdc觼忬鞰e9b<(9=8瓵輥蹛O熺Q:艸哨 '?忈@ +Oˋ衝輴F?袭iF馑1烴сP薽,鐅F~bq糸颫V錚鄞崹21:䲠樳嵅)苊8<颖螳n渦墙= %zm~ZEpY3< 席N方#H"鰙颿莖礣怓窳s腠鳸诺崏8c懭n胝Y爩譹_槓踴>?:b鄏r@^旪 s筗99)Q昛@傩_z惇 W*崊砮Sf鞇Ks檫璍払 俅`#=:~僰m6 1滕w4喇鹆\曃x{l蔝垒壬'楬110橄!$9霟^4泸9;頞锧 谅 銔擞{H焐g#?椊88廾麟撺0燩d琉H#飃:蹊晒櫜g.0H={&郒BU;如帢槿⺗趄豼嗜x煑‰嚣鉅x暃s岕惘種烵z9鄞&0ry#6{忂.w8荟飶長娦d脖 +3箆巬颃}殇4? 灨8镯忩ht擩d2::8R纃鹍衾腼舊无s ~V瑁=蝳Z$|f7094#鲌'噜{荥9N舏6旋闊隞撤 %皐(~I?绉謿韧鍫-扝r;清5rA,+鞷面W銚生g燓U窫6m='闛>=)渺:d焈=j磐 匳g^欞嚡гUym$W,跘嵆咭郙+.I鋞頹xA咵鵟唡(,燎\3茺H浆丣斒2绉珥W%^ U歊6椙L('9ケ栁 ;FcQ28i鍧[&1笘#狘0:鸗尕.<6r>P 轼鯈V窊1嵤H z8  s梒眬懹儗娄 |*Wo +岏蟐9`Yr$0.疩钳zowo-H桖x 30HZ&>iir蹉?9剓鉻\絸x~5],W昐賬n鐬愕N芓;苾vS= 1 >煩1bBA#篆Y.棋;#袂螬#勶蘾渳x肭A@ 2髎5z扞?檝a 鳋漵于朒9b翉Q磜倾N2T. nl轶1筛贕W?*鐏知蟙m圏磼0q9'kN+ ,堦泸Y槞1$寲鱿X\R0 -邜,w薷▇岳F9'瘵浞戝.FpI1⺳S脓6fS穒8亲託/ 眄S 鮵藍鬄櫕kc +#抌A苟黯=狧4P髆9 篝嚆溞"r鳞R黹贮訢m徽[栂nh鵜w(芐0=@趿隦ゼQ鞧X話~Q蜦+椛_蒿 +0嫾∏L亖扊5 Qm橁YOA黼笈i琄樬2亹NH?C凇8堙NF A'R7 g`w銑iG滪nc,Hq戂耵拊隣F 鐮P翡焃#+籔戀I9蟔茂J蠪,琖缢nM莉y覒 h#rO`3O三j诹 +亹r>a裹8?恀輰扜箛R;冺8$綯<滍r1嶰琰 +s樼1 7@P帮且⒏塧晩>Hl+訋:褙T惇塋`_ jc傐d窾*$w嚡゛躻紪# +d8'!O?сM$専攦黊 绛K;,d岥=簘jK+瀤阆鬆 #c洹鄯t剡髁}啧鼢靓 鱶c钽瘇絡H-'2灴蠆4贗胗絈/樔洎 鋞舎!優:昿碄2薱=EZVb叶秩R(_Z"4输o闓d貂?甾槏逛<>^P .镞翓寬-怤3'煭8 !Nv岊8_a赈唋H闾_吭穑铥鳋f厸%癠佽7}G蟒旂窾ga+鐆樔:z+H忘[r2鍙'Хzn@B6K.鄘~5r!敚躹耠抯奯 蓝蠙綰^O讼(a <鯯更荖熡鵕J珡30  z弉O>唸.%;滻n@\庉賶醿@I貔湖;魻 "_/侤蒡胂4*Xps=y错犌8998蠋䲠2  ~桎耥襽&O02O'=+:駑G宍{蹩 LbF蓪.w緯漴[i+腐EQ荖?夢S炟昚哘怈?w撾廈i梹1-9qGQ臲#is)#炤u,2w· +廫`鄔Z爂)9PT凎O瀩i濚褋 >む鈟碲ㄇ##z潾'o`}y詥璧0rかc:U[厣o;b 0戫鹰6x&%嶡z}齮nJ3c鋀鶝##蟎娅!C2~;嶯O鐬旇鈩¥瀗{扵?*夋壢Dl 碱社'坌鹲@懻2棭S湡\䴓镼|騶犮$ 芝 +筱~@ +焴( !U錅}哚缈bu 博趓8 v赏ZH噩w;r惜礧f0簵d 磏a辽$訋賦允贳l8=耳馌媖<じs髇#z4Q巗緲3P"睂湑bN溹~渮*QT3mb2軗狱z{PS鐜%R哸零誏1瑘c眂亚惑龙sRH#pX㤘烀嶨R"Pd`c庂BL泇# 1;巟韼絳$拷FM螌6嘋早跗 苯$*┿返Uie娻床,煏POp0y=粺j婁獺懫U潐W蒤v<柲篇db#熛$灲GZ蠚镋谇撛渃廚呶%籹磉x98>>o陞g-P +釓^{oO~:d獉6駟艪莏璵w熁f% 竊g吁#瘘襝s!o湌P1>絽L!憌`骶磼8V藗y鄭厣P褿 +N8=rZG'RA犩rs炘D3`B 欙閹蝖磳HT炱脰w^:w綦R#eWQ寙$dp< +兺,箂驕慀沏#擐隌.3悝褢笧伧酹蓓I紈朐 审4k桽虁p{w碇C1Q2v钋8茿?Z崄Ybf愄p98蜨鄰$D9TRIq鱐cz討烴鮬B挶].ps詚u<舁5賮O澴,r9襽>p4帿詣1{ c璝>K.I,O撻铅G>斎P6堇J+蛋19钜C$h^E>g菮 +唓黼皷 *撫鵺)'a妰'3EP笝v犪>w<~N)3w;技頵錒$cН酲械習夺甭a糡#銿-壪便焈б+1*('nNq瀼罝S祲 g痍:妠( 鑿>OJ`J錚K甍^膠f +-譹纀忦ㄢ [%X宸}轌OP蟖R惀蝈廯{v镒Mo#un>镆.萀k舌n)mn艫a熲lR ++ +< 蟠`鐑@ 冤]羛q挡H?泔SCVf!Fz`b6菣錭类g惝zt镴乘A,權2zP谂)翘FI9'=?梲  g便凒)&靨A怘1訜辖TGYdc8蝧#蛄珛g绷3~c靰*碙 ^T份|澖G9翥痁)q屈瑻瘿D声祯\lw稂9雛x饄眧粊<渁O'Z蝘R9X偣拾w狘莀璱夈宭s蔳'燊q跚g*.呫62p幟Z'm悾枢?菍o=榉R;然*pO,(萩Q吰#p 冂乏=(^/&鄊_,卌窘秫Qn埢遲a.v =N{p*lR.莠@c橌9,m鼘чN~箭hn TRY鰸艊閷p=j吿k霧P懊=彾?J姿)}$?t弉/]g,x y秡鲫hDE睳=.烵N#[<_阶亸髿尐#稟廱{慡狔wt8J朠D僢霣s肜攢罀Аau#8闇岯%櫿鋌I苳{w<1#)紸F骂搧讓?嵩S#疾3扚:済跟娂蠅漴!:~!莫 R$芸7'廮陇F蟛遼o鲉2G 齫@ 2;/O惜SWn~锟鹩 1d(簉瀦{f2跢<橜d鹓宷系Y晜恶柞䲡噛t辀d~閇嗃鲝滕蚀飛:a>b8內^氌念C"''+?鷚 冂@ 盄蹆c'╉弢锗琔^轡簈憸蹚J炐A咈 卑dv 绲. +鵵獻@8\熎1嶤d胜"芖糟;6w倃8槒 W訮忌戞痪z9'z.7y橏㈱c`}篢X #`c=1胗3@-觝澖p6趴Ac鶶wU佶c犁'=)c墕LHe羘齷挬99*2rs鵶邹%] 09 +g畇詓4.澌r竑钱~絪I&Y輸彨g#8汨:聺竃J酇请蟦朋朚褳T1蜲?璒g(胘掻汕銨錾腼O伩y皽)B8哂圌憵` *1炦脺zPY7i +鉰.6灨=齷棰轪" 9蹅 惘52皐栞蚀`昴巗?蟘 * 1笙?鐡@R7轢er嵦G4TKS⒖榖Xn<SEU嵸H$+┼畃J杛dh姪f?0q侢牥藁rpv駥J嶣1 d郹 蟴墺Pm 爛T惂寧h扞% 郊哲览鑈占,9 憸v䲡$0ˊ:喽6魅举xI02‥Q/l嘁!擳搾绉?Jp,"BFZ\凵伶* 擰(槲s擋o,4{暺駘炃穝R祱rUpF掮G螵 `俆s+熕邹I)摀摄忩hk `咿-2/;r9畴逌铕BA術=-郴n>Q_綄q渻迉'F 膧w怓q如=j=褤#1 +偕幥殡䏝訥蝸姁狫宭#Tg趫窯$e維廞幖(軈溈e镓戼w籁埆N戶胗?箱錎 (慇!Wv85 +|槓*兑0z俻z4.E!鷚锴嶂〣s <沺y<騻蛨-懬侩UbRl灉@,嵏eWp~織璛奯.釚I8鉷'鐜*娒潳礃'澕灱{炿鋙悕蝡pN躟~N邼j+:掘q捈徣l微7We-濦~犝! V拶d蒇瘙~促不惘O灁`╕楁c9?螻邅j!pF8迈鋠鑩跚鉔\鋊卯py老?L鼽\Z阍帨}?v岓5i哘琯∝9橔t︾h'x 塾熃;tㄎ$@懮(m 货 P霑;悃^8=币t℅下飨馃Л鵎c巭顰嗐痃庍8窦;P{聒渜迉姴C 蛎捏搧滅螋籀6?u阿錇L妃殣-旐Rvs 穙簖)撲,gn菹佇d訛擐4K0崼 瀥胂n?懊w朄g滣閁:鋗#v;~ⅴ\尣PO?uxb 玟*泐$d|豒畇瀦巠 +)<溹.2ppx$=N它:誀4麪寑2:}1塗+ 庪瀥脂邬`c;9g桩{`繇Na>鑃,pI#踆f成榈椏$w=錜$橓w愬v}軒>\O駹 !+搫鵳絀_4墉F傥NNH绳>羲vV0儨9'u梩c\dd烰嬺v2舙=偝V4`橓q缮膣v霏9-1+扤X=?/漏弈D埉羉稆Pc壡@:笈G18檄h隶32.2G9賢瘮榅颁鄟煢}h攲綵帱耷$駵s追^N84捼9蠓#珿R>橔P,矂 F鄛zZ褗% +尠8=s:?昒癏踒iNI@懹蠻搞UgD 7摳幟应(x灔Ic2Ez齭諽鉎蘚r2d4瑕7S*SV隽尵f砬h*P;V(q擶Wt >螨釬s鴕z焻@太"刔oz~jH0C湲xl溹鹯*(U;茗M宋*9銧鄐@*;< j2憱焲屶P!暏辒滭1籵#徝$}櫁;\+o;:峏婑I扊Q滀疧襽"炥,p0褜寎{袽簴1 gbdc痋袬HQXcr)#惽*6H丈艪谑渄滳濁F脮=s詂?嘕↖N`6戕潚W蟎r归䏝`④6Q賞楞灒蛆颙.繳軐O w怯'诃"'辋Z穼\惘ZU憒蛤H8垭埸}6X7﹏p:g廅滯村b黏矋纁?{zs┿#C9=?烰爴偋圊'滜檫椰珣椒8<倅銓w鳕nm不銔唖痯>据5L竇杖8綦豸 暄6鍰3脆/庌鯑拇3}z毞p2by$a E#!G5VQ杕3Nr;*6|罖P@n廋稔{,X,T#郾齄疵&誁=膲娚1@2图p8*x荑鳫汝?疲竲 +籋廰RDvJ镛3疮L褊唨6P6鄃帶刊OZl瞞尅"睊穦=)褕S室{灩wJ 补|珶]K塀yD*c痭拚氡C逼H襄拽礠HJ&⿲風駥戻q灊I玵橏,賫?嚀着[,88?5銹2獭1萵9籹騼摓齬Mgj捤崩279蟖蟘蟖@呍E絓,y蒨y腼颬洈777N厗N祩>襈Ab 9骂#臾琫泘I#惘:P濏!〆 <##93)`$wfM靨狚z齢幮D%\亗B cL泓妱U蜾膭26/菐借J+杊薍蹧2憰惝y臯吖焣^RwQ晤ZJ醔銖騤鬮Y] M9荿滙顯 碔!T懰19鮼嵇詒酞y|李麌渀3VQ'5 +8#n*齤tU5h锣稠'5莩[rrx=课i尕 "2憯懫z +"+⑶&rrs憥橚募浫<炚テ*7Q>滝獞FR馮<寔夸@S 2j元嗕3?(屰FA99绲b活enq豍袶Z$u2N8<螜,8骞;F嬆0 +垿嗼W=0q婶"-Z厩8P燻撽9┹釛蘀愬庄=1U `g{RIn矁n靟邿\{I竡涡H8莦tJZT +踨 9郼熡疨ㄚ鳃v d'郫鏎绳睶C憥^腁k惘匑 诬單z鬅J8b#U*ㄌ佇(/Q中鬪∏皙q5傧>f8妤簴Qm祤阢=y肫}?銾]翚G8鶡<弒@橦第览礊L瀊B0壩8鶷n幡匩H 蝳訰y9宐I +鋪兦泫I1"匲蓅庌n>赉逅t钱*籆2跚玑3琪?wpOS頍K濖\6@惴Jf3l膍錓z伹ZH亐鵦 鷘3 q; 芀t惰泜AL鐞=i挟渗(9诬惚碡OZ鰼亖漪a限?梠镾a|0'裤(G_"-扰;{踚w湝I嘃檫4墦蒌7藗N镝蟧覟s%榣镪 -宒廧嗙堐9嶧1啭奞愳򿞝銝?蠌6醈鞤絯1<)i鱀81仠{燄薀!倻峋S稔s鳳X3*膫=0=8睨x!佮:)Il蘹8?竭贓v醿湪8'寎螿N1Y独突 zs瀲熎 FF!cq2ON咦灥3驢+紘Q c9滕?籡Pw g鎜A*绞槷I千oW汶V*嫹0$嶨蘱湉膣誟,Q熎>\J瑍`z~辋GN绿`匀湕 铖肢恷昽巾湝鄏9眄轾Y纑FVC臃8('6P騪繝8鳅zgGI@2谫?煼礿L涘R (Y惑燓絞滮&)蕊ZV淇槷3+懾};llB㏎寸栭圩疦\桺$聹函n齤j^痣庈惘鞘狧朦@z袢Vg9䲠夜!:鱿昻B扨6?瞎(]J6鬎OW╋S谂q 寞;跚z,;d +胃=錈皤6*蕵賴=3佅NxG%矺o{ H漶盈N1際!XS鋟 箏s徬刽珜cv偔監PNG遥;Y貮-寙呖魻 '斉 +:帕鏽T衼鶁u慔粖dx<1;埒Ya惣mw卿+ '=(=9曫谷S屼貊珧蚦籏}z9赲t疥炪籿Ns溣懚濧m& + j+儝z颃J砶 Y,貕羖佄H'=*暏鸭B2 +罇?秘惴'8⿷w悡8Ra簽~Z烆VE8C嘼筬绡n紂舀斸7:獥邆G$霃覓GIn8 n [X1掝睰u8=q荦(竨X9a嵖L霏 鯢藺P0Ps戁沷Au#a认q肷鲦?~N瀉楞彔@xY蜛P +鄮00x砦2{雳`N溃0靣}墷[茹旑u+凛岏韽c症s戱藛b=s須S-幢`硛呄d儚筅牳橰o-8凖\廚絠矁 #V绡向懴徢殲I#)U錉 <`齷+榊$-$娷轍凗\堠寵x趓@f邶8橛ZY錌@%z笞#z鶷; !蒪2O'諍玭Gi>^Pl憧支%H虣p +鄧0L4*橯A籪3鱯凐鈯p庨ds騺瀞抓騏顎庂猢虩繂A豀悃l耢?:櫐d舍>頖彮B㘚"d鷵*i鋂 '帬䶮潍DFG怗\P駟>敩ィ垇赁s詭s2姐m 消_酠俚S(胊弞扙輛夽!_O揘戹舗X<搩*7慠3凎Z栣莱剚撳$灈}?S? ┾羆pxí憸#$zv醌柤镭飞 蠡誁芺I类渝 +0至懒碹隦2顓3儤憏陵EE -鍥9GC澑⺶!bm餐湻瓳鵒猃?c22" 磢8苶C餯鶔誘+畑#$瀳|栢47恾裼@挝袉eP橮7pq湌O6箧v`q媲䲠c1F叿1兎'}{訰8暐eu輨O4鲚桂藰鳒=q鵖H$齡蛊qOie敧>R@翠 @l181@!pN鷼2鎈耎78玳Q +W怠h蘟撴2漉1蝚ね篭,崁;撖,l膼;塡渨戏K鋭a 姇飼黵qL惼P滌Rv韺u2湊^>:F7镛8H {;a曘甙1烽谉oz蘦9^8蟡関vx貑#;硱\q鴙鑚 V7E-避呚#'8#魻 嵉X兇5) *菕6G渲嵲l%X. 溹笥唧獋匀yH# <騲鲦'穳旽v浦l嵓穅?茮=!擫鵅__9w(蚵30aI冸=ㄎ"崍\湈浐zv 歍K髣#鶹擯Y淗9苶:懽归衄+"臆緇7藔蹚B3鳹簴Q 韦 ~繇謤'm鵉蠯帶荃颭 QR3蚬e +<漊欐Y勄%`酅*釡#闄!,贈P豣I 餅繒Y8澿 Bz,S.慜3'朏忻抸笠Y;F鵗)z惜憌a 脪狜鄠}='讱D穪垙$商`兂仠{`帪*D仚J鼒雮 =圌鶷寷e蹏\|9倾%復嚃Vi9R夽n02y鯛'岊厴(s呠 +@?篇f@UA8枪=~镫叿抍濝$祥Mh庍2/悐d跷3绪镖fJ缅桜Y +堗樽诃F觢T13)8霚鐝帧礣嵷燮臕+ 瑈<噜t肷┲`w葐R鐠s:c羽鎬%嵡柅|&~8閵)谖堼Xry2d4XRARS忬9IC;篎1''歜幕弔\rO鴙玽飓鈱 x9Z#執漓I`錠a攏9;z\Z葐%f!搨?峌掛磍@H惝覧握(U?烰|1)](皗c甹眕,軠% +<.0 9f4楼寣蹧v 讜'сN\;Sp慣6:s扊彞2酛矕 +N:F{ ~鯛崐0}糋}牲+$]<旗珧鉃v$宍 ?槬笇UK0V苲鼡魻 +2逃K&7y黬'鶕灒щK2ym眤#詆絁^B彣䴘(Kv+滭屶g暧铂Jw<灾tR蒩羇鱵荿昺e鬆?(.N?L2/﨤尡$拖錚萆(鼕$q狱殀erFs滀^繚W歜.^N鞇8又蹢@S#<7幅硕x聹r3冇焣镈_,k8鄦蟐苡m尯 対脎畝5瘧n\ pzJ厑 0o焣?<鈺哽鲛P憢d7'8T荥鷟曞 砀{{f'蕺騻pygg譍.翶扏畍悭,JRw寲偃荓轸䲡"赬豢:s隌f箎祻檯S兾 ;&qn`漓8鋚i澳侮/抸绉昚崀鵟騍9蜽?4)o1緗bV狀>灳%|+笹献珹.銠6笃ED烁:ldv嚣漶@ f蛝儷pI渧;@軌(吮 c滅↑N&腸侸毞鱡%k塍/LC/氁#儉q冔=/蕰鈺ι(G%O'O酔笍胬r⺪>鱶u畖##w任颻苺堀檹# 炪稯皎鲄弆h偕缮'H赧b$@n^ⅱ)A-儒{9 $,aO2x鋧褞OSYz嗎p v0{Ej>Ko纁磧灨(;~uRdY/癮I嗊雰祥@憗霝锩c鶵腡8銣z~t?y跌豶r輖L嵸镒es傎鶐s嶪阋瀁蘮郾 搶廕1郹pzS +~驕$5H2b+N銘躎徐f8埍芓S缨1姴 n,1泗ヽ屲斲x倲 /憺微怚*$@,s砾夒庉~,[nC7*呭=翔ET/櫚p8^櫕岅N錫1儊煰n遉:HO栿飹﹥扤x蜲鐘號 敁{d+幼黬簵 +?枾广垧須昂{碃S蠡 d缱礩 X泯(PTy9響扎' +6Dg嗛0qMKeG&E芑rv灆╅毚邢q)YE.徔酹涨-FYcYf纭t膪u須蘚@y礰+I*ジS大I漇綉^J鵴畆9$撣4涘固噣;.r1諘WY3) m]├'?*墤Lド,<皩A鄎5b'X爻H@0U-盈=zP恶飦E掬dW艬犂I犾稳#優詠2鍙$擄FphFr軮?S@a冿镼绁<+7E婶瀈=峡4鋼` f3\鲟彮/4c$p宋{聸.讖巍8颔S內蔂 惾T +m溷縗~鵗Gs烁澢p鶊蝳䲠7+唽2p8圈G亸O馉 袎)隆$袂q聰1亴0^ ?它qY⺧mq犁ˇc紌<甔)赱:`溿邾 6賞A袿8碇,*q4華{$环懝O堸Ccv3壑斏宍烠 0l蜲\t呧闺Zj<ⅹL\cs涌殖=聱夜#2n蹞寭9隌8X0圐\@6:g璯掏 w@钳$q; 话O狑莮絠%o甍`{湆P湦k郄FG杹<j睝瘤 9E%rH-#恍嶅摹311颱趱At66禔l幘昒vf]挝\餽O#ī 惼餽贤组@. +4M鎑躵rqQk'櫁)鼀*@鐟扊G酲頤辷b~鹞钏湠)豩秔还~6裎\sa湬 槂`痃殡鶸#朙唋鬚G蹰戟じ X妿$:礷亭寜謆蕏靟e8蚱_1X蜪U$<鶎縴鱠88鏖䎬玨 r*4叭;`u酹rF3&GPW2蓠鵪l籓 +K蜧瓦*BB銂铍渔/~j y赵榬ON 腴焅覑 +傃;聋紦三0}h黍4⿴∩ 澻圄偓[˙軣釸I攸3Tb_2`w1Vl9<巠 u﹪私饹鬲渟9#齮$;Z}鞡A'90汶U98%嗎鲊^8) 湳鄋'9zQ晲頼楞#c跟觖睱m>G藢;w銻彬鋛鋩8匴yZI膷导坍样轱娀vH纱惸`飨?浌3鶴: ; X抶 泓:菠竒蒹W絮9懾*竍蔝噶u!蜞緌0絰箧玂q袌,6q<hnT贘2 鬫l4L 0G ==粀ápJov/躦?懯渶卲尃aq烵蝷&钨r1穪类w酢阗/樚 菬髿|屗髱YC蛊=cpiG 2媡墵颾2{c鼜鲁s1:\8乳侴逵隬'嶧28>揪礜鸹B脁<~?.=欠聙8輭r +翯PW転~bqS&2瓹6拔R8銧颵騗G迩q執y9蝡q佝]粃S^釪 +?*]搞=聒硍脆蠕髅0輳lQY勭o +(L鑩$洖緫蹰砲獔Y%'侄锠>hd伿趣35譒俋$B谷稆U[6a:鋫?襽9材5*狙蔰庣杯7形~IWu許枰Fr矄O9V墊任"蹨铘飱曧 栫8齴5W|謦醦@=?蟴 蝦@*'9?湫抦i1瀯済鼩増#遨彲5%蹡軁I%Q搸O覟褢蹚Q䙌閳亖;0q入g貚昋6z3仈仠q隡PX鼱擁V鋍 +dn 嘡A縉斴狮8徆<|?穗@$N! ;覿v=噅G`A,A須C蕦uy)s蝮? 羝3謫R$v9蟡;I< 簸9颫P膢犻⺮M(垴煍u噯'Z.罠X *冞?溲蝽8v$}?)8 r)鏿鄗炤┤1怶兩橗?#抷惴酤9p *3袴ZB錘Ty濌;9蜲瞤 鯛 ]敁亷zw 'u>炚8}.褹艵5澰晆+冃詰束苬'膻髎?8g9萳t#電牝bW8黎估'蚺J襆c赾}糴N1撚螯峍k杣谀jY.骝皉豣I玺鷗⊕鷇-识q詔E脦鏆e诬餓蒼翎zpr泚 1黹肢叔鋑'9 謋U*屷O]糶=K渴#鴱'帪兼╀恪黔I渖府灌P凷oIgO櫢~}脂嫄p泖pw7q冇薍9Q績寍=MZ劒#*wr(靮搩慇;敇&K! T錅鑫{`蹶尙呜e鵣|?楼uh厶Vl( 籬=q泉尘>鞏P2Gn#霠I咷儛}LS7/鳓9萣:}i练鄍< (_7hz絟0#魔H蔹仮7寻[s +I銣d熢T欩埩銥Yw|チ<`冐z4疖岚 鐝髪l&鷘8顷i #S_翨渕膕蔷h埍毋l{?齤拹╨dg创PZ8u旵+~b$覚%m$RI=:S[詣 z傽讨-辌*噜_崿XD琜3埸k 宷要龔 厊0柽N欟a鈊$p鈿3鋠畧iJ"O翖#1ReZ菗麲''徱9稇蹅顊[舁<貂疅2焉", 嵛~5疵11C灒懬螁*EX鵹2茜埸砲hFVvPy\褊舀\i役钶蹜z绉犌@>彳泫T q蜰pF?螶巏y`b!w朕x!$g睜 RH螺Q儗G蘃?<灂暆U9 u隒?槧3d伹 c<3L零?pu#h 滎辁t犪v澞t黫! usS,Q扊饉^=G鴠(bH<獤 +甇C苆q6W ~緳=i.(x燎q弱鬆 +k倆淫{籱9򼃻砮F靤葼,M鋿累寲髌?Jn+宔侓?)牖`A8蝱颃zRg +扞 .z香@ 孞ぐ鲡槵亀翰宲H芅{R"滝螻燇沈ua懥t=畴4鰤銬茅 o_~釜E$m駵溏=?螞pqf-L#p1摃青j[藯摲秖遥g^櫷4包麨b9踏 談檿1╞Yv綮N=裹?q|帣<鬅|(q$騷z熓歔tm磥墚请P$鸁4g鎬$o 'vH千洖攦q姃?(r9l`泭惂鴪>垣!R滅慡既U攎pA$窃TN#fTI6{,rr恖买聃〥悲0 B~R缇齍X餓嚣%2E‥\pII#筲#, `1侟E傌zg颔x抹 蘐9髑穁孈XeO藴d宻@1嗂竘 輩席胍纓v嶐]1幷 .幐隌 +粡N偆\ 划6?茠1诲9蹛s睨~&Av1善0Y冷襁(Hcbv侒 鸽閂H膘_8榔A'b2L鍭"朠~z`弒*跅骫逗 n{煩銑!tp潺愍 V +藧嵛I'<缃j^╰ M漓!楞锋;禌*(尫 +O輁Fq咙(!3镯Z[9膶7n落溧Z$29H廅0B茜燇诖頉32!撔zg#949穎vi i撊阌B矘P~鴳惷y噤聍 匆,2q寏t%=^嚐?c$鄋滕謦PUA` 渘*;"褦l?9 ?瀧覲;θ褃侴逯瀳翙7棠嚆?0?2H\钶徝幅顯梋他響蝯Q(br ~氠Y槹錑疦螯橮伯鮝负I>虐6吠!rゎS帬専J乿;d称泶韈俼#?嵋浰t悡嵜y赧 @$dC歡"N膽鎼痄尓'铍(Y憕r勪鄛茻LT弚槱#蹅Fi雌.B*z溿''9<{P@>*(職痊翗d疦i88隟@y3皩摓牉{5^m6轞P槅g*;#郻樌禊乧棊Z艞D缆瀮9㘎䴙齥6KI Z&*磵抵 `狋RO>凕奷惲r氦奊瓽謤9噉砝c标?茦AS=桱圚.y 滀襁<~响H橳+6甯鐜[哨O>燓簈yG z:.泈n 歉Эj凞c虒++s7 鷙鑩_{*寧5腙}*葔'$郹v绉N齤?+r甔noJf涨^yы挱H(h$M炕c騉o璅枋臜銹澟cf*x鷾u4*G庐餈釅荍腸s&瑢񦔎y1鑘u掾晩<錅暵壩3弆pw 1佦殍*`Ig蜲9鳡 ,蜥侅8苲酹rP簶 鏤偲@!稛r?>打U誁%杆銆;鸓樼膡d`Q攫^=H镖贄c廞鴔訆嶹cfv7pTd齴徶 2鄒N粉P 湳Nx稔?謴?蚆I$犱s请U櫡禙w灂+B饐b跢9?N踕P筒6Q+骶渀焜,2N}鳷╁忰粊莺.;詛C>褣銆_Z壸o蚺 '匫,C $9屳嶰q戌)vy郇ZE$)圻*H滰U$ $n8#=#巣f$u5d:=荗筵秨槐 )?囎@ x 岓J +8S烰竘旟a蔣橣@^8蟣褡險e媚$M儺 叨s姌楲c呭狏氵:2趁w2B┥蜧萜O幺v 艬呼zry茲:*匱!UI*yL摐冺V'2枢HC|磉茿鴕=i逸殆@樹麑芎阸從P奥)`c,p9 ++1奸6苁籉r9=椺Et踨<悃房際鍐0 饄矐恤泓隌 噋#}9(q31眊$銕}疥E,Y.<鐝聙┕妼騫讖W錊 昁甎 )炣灤祱\+軠蹼⺳JT跑磬騪 莍霂憸 聒R/狮Wv1弌S瀤# 竒#>烖踊PFT|珟z~<觔VW惓錓=9占糉pF>鯪iFH缈#紿r蜽彋烳#.zg忞䙌iA现 +む`变佋憧錊9 ' 荏>脆1軞D莘骐撣迼9系-5烻I犁=q劳"媠叻/'逛 麏o軶佇沌nzJ羿曯~t堐廛雭抪F8兺)"骂89?1,Wcc瀧R)*x,PWr0p9鳇:⺶籙,W鍿尊霘s(a跢8蝢祡0N軂U"湪34Я2萙0]佺?泔Y议/諰b讲?擓V y甾0c睼%]d蜍烠?齯 秾眣N蛯3pI螼с左 +橁虩繭<襽9僥I+a佢X'?0y╪-$嶹H夭嗂絩'瑃詌=8荗怯瘿)#頀0Us礀潸>全綤n`q磹{w鋘廄縊璽ri栂.r-艷RK('/蜲ZWm *及<憺O8垣挷eLD}0溧绁@挔6竷善~ΖK +K"偂$g捬綛瓵鵼e荓鋥T峣X}銙瞁?炂,OU賬o2s螼酋狽胿T湠V>蘶扐嚆緎;檓鰊u; +煦9鞄荐N?5F 篐绪去!7蓐蘨匟X鶉#)#娜>b@88;g烽锶pb卽绳%zw鲰P=趹晙 d#>Re暏e"Q鱃8s傈辉0*D狁9#?朑は,蠠昘扒拽O覟b$`箄轂=zt:諊礵癈骂i3刘8谲32瑀 r蛝GQ蟌42槿炘詬;蹃蜱9J役紎葘牍Ytq殡咿樁蕰))炠鐪簏侜柟o,系d(F>`8橄l綦@"d]厘p6'侚%摾七(鞗s8嚪j-K縦 d|<瀦〦稑8Ge赲uf9蝬=聙*:挤⿻ほ&鎥'w轼珩t艾rh櫎1鵄1=∨=b+4鏰潜稆炸趑Q欇旳愻珐&(Ky梅 ${<詨m7兮Hc班gpzc淬碪{几m揽P~"勰嘎:笞=~F +F0"濭&}4V嚁-0>cE.恲銕躁)嵓2鉯^wz鏾Rrrh窚懛^s)耘0棑9鬝y烻N辽9<帪敶敶刣bF1<{倚EPA奪(奙 仄{倚IAg鈻爩鍓摄趷╃#滅徥漄偰蔱逼=z箅@J囱錒` =??鉔eL1q穚贗8惴螫儜8テ 苰4熁衶娱瀂nV垠/B)硜嶪阧J( +J(顯N凑?9V`3惛$聱R*3灱漉]轰c9(煾筵歾癮 鰻寣R*呴熌揁◢糬[ P 飪社瘵;倚Siㄆ撽3冹rz巎凮脆栁[彣9+V6Hub葼櫡 喳堌K鰐X沶 e睴,=:v=r+p$*r=﹉t┏驦%萊s9餅囖虋 3攆PF'偧遈:(>;苕M m藎漶$黥 .僴=睳}j槚)譫J'Nx犁逌写[橮!鱴瑛9?璤`H鵑Gl親崵 +]@<嶡"3a兪)懩d蔢 衾zg 3F760U_j襤)W%9力:4忠!8v帮鞞虎碒?09en8漪荗聽沗廼堭)澔鋠郼诏K$AJ栖*G騹s灒=="繯S!佄9*OR3蹑*杉Z;yj縳瞺bN1鵦戨臰峐 螗%彔p简zz~-睈a歕<鋋<<棄sK6駷邕畑⺄^(鄲"q絆\`g'9镆驥,躤by ~}9鷝证愢<+葃;Q1习镻莕.&vf姨C `駺_聙2颻r垺1瑊鸹1哱?缈酜a煏D +撋頕q朽﨎崔賃d蕡*<绌'姓d岡膟c灱(l*o豿\)犗Z殉+|("L炪苞s9黮2HdV鵤 8刘8砬O勃s谷f闪茾{*奒8$p嗚G>旕A斩 0縊J枈屇噕T遻#9﨏颛亦g8f揾 [?0D躑Y;;c*B8苢颒H9>絷)犈-QESY窆C`鋎gQ@(((((貅ア(((L 儙E-PjZ((餁03 烎Q@ EPHT62寥蟡(((((( +儗pr3跂((((()h +( +( +( +( +( +(? +endstream +endobj +109 0 obj +<< +/Filter[/FlateDecode] +/Length 3913 +>> +stream +x诘藇鄹u忒笑г9>f椖y搞L邑顪炆,h 敦Pも蓔}AQN婚F父.I$嬊5o/ox#Y\鎷蹏E殫q.Tzq{鵮枯䙌聱v;,怸慼紿玠飙d玪*8Q嬽n衩誑,.叟?xMQ&B5"嫵b篎>On铣R"N2媏I鐈S?扑曁襀@洍itmィ煐"崕轄.頊O蹉 辬 #%#毆7zu颠sGGu享齊斞眓飒▆`醇5~滚藨Up褌嚟鰶錔$_慼 荽寁硇vvd0嘦誔5鄖i蘎譱B$嫊(憠秆聿T褘椬瘷N洶Q$Y,JhE\瞏?9Y琱帋S 被*撗晓W6蒘;<馂~_语 貀探隹庫峗-毒 ┚衩n@? _;"zG∣羦/句I徂|鈴魗GSo*侚繼$栘軮Q.+*漶?i嵬4@?斿t|*4V{O,讳革 9)b澷5玈z*N/ <笒L鴞甦壂NS礉驇v膀zs錎l鳓@I赗/| +t餭苞硸芪5愕(匑恷倧顒炓Yらwd'鰍Tja筯:d駆酼)恥鋩[(^扬怯m厧涤gN,霥愹Q|JQ&q( +>`䴘e蝼&愞w0昸使B)醥M堥4晗悅磆.它% p腪r 恵7鐓箏H葰E@H(U婓襮刓r捛bJ)I3f酙y膭枛8!%撶你I误3熖c9 恊A&習J漵眨Qg6堑『HF9評倦m#较昋絿狮渤SZ嵨9菊Ρ: 2擾*⒕羠愥zw鑊, 討贆齪#y昃6G美衎[.莛絽{5x冑顄M吩e鈔 ,:萌a[鉀悒7鯁亇;餻C\∨-稝b~裢陃u桄隦0u麻$谻迈5U +赎蕃[*_6x?Λ慜圫啈嚩;睫s{Y=雒q踦o]魿c.8哦埴>m 2C=灗Q叠齒wH#﹙囶槅Aaㄞp@,–,U褕nW趏N栺aXD悎~幹(<┫KACU镯,*敐p色眕Ct 鷍g隠6G盭嫓x-/ét’u{)鶧J1u濏嵫>w嘅繰骄唌a#阑a猾禬桫浒縛D涾)`毫揌(HU≠﨎H +d疵菢BEGj 6$橈O7\/楧^Xj5隠fK2>滗;;v忑撏,W村紧稅E\(.K掱冎?檃,*筮,=法9gMm殩l乙謘?8t +.8瓰蠔EiV0犁蓾暴=齉铼O2倈$IdbIth翛魧;%8"连z ;别絋鑒|凪V:U*煊 +濳E炴j\C2岴r&s┲P羬⿸:捫Br燹K5y/Ur|/臕鈪鬪 AtJ豓5匛煋D 0%娜痷最:%{惶A羀);莜祍小鳪P7 t苆┓:_M;rl疀朥唳m駢X=t8筦 & +虤樕:虣EV05寭FV(wI' 4D"' 昘讱劀悥蕅B丩陕賻J 鐱弮n/h縞Γ n z息K蹫劉K;g柱凷/!w蜳鶃#呌噔0WA釗'婮蟏Dk󃤼i繼-d擝 TrwM飾i訳6搿砭馮蝽悐!制Z \8*?xm犒}'w铞5c瘆=%0 +v駒煡-MW\鷣婄痯TF剋郼美皆殶RE舨唙囘6 >-E俰,e1N灁蜌ss焛饻苸F4%W~q瓠_w樟澿詘!2P$"面D圠3謓)z`1魔1 C&T$\e傔芁笧j桾'0爩> 羴sKZa!7伬0=芶=?櫝保〾-:,侁a狅@歫紼)1$貶l淄Gx }vB4YN2朢s* ~*J拊齈褏e r1L咓?蜩樊nB佤 w℃潦xN汬d孪4Z:迫& +濻骅/0疏劶(痣T?Q)"ND@% 恚罓阸 )$|.7レ言O9槞6 喗BD髌&*<礲c稴暧尡叨蛦 魋剒gMJ[憌=貎眵<梜 モ硒艳朆6#6Mu8¥敧&〆d3P裄>梮蘆(. h貢R磬朢"赲虖綹L#71攋1詓儱m態諚蔰2`瓉朿=3僆冠 ;B顁2T,c団a t擠ō!味罀襟漲%p纆 +,N8i淮吜k 踆c魹鰦;p } + +G靇V儩sc唃陚?=袥0U6!蠤蘩4'G帽鶭罅峱寨频恅l鰠 +u4鯚贞|!纆F絧頄n艢2 +攢裰"t1鯁4Jき8针纷<闅>窒凿僵鷆g岗7哙BT%朎魐w幯繆哽7?2E0幇 C鸽- 逢騆塵-喝'責膡篓+7$V劏FA盃竤屺=M讳+H|f鏸猲)蜩寻Q侊╞%=x潢鈎Ad糜鞸籖D颁P店!B.鎔akMe哵浬^陧X+v@ 9S墓c#撄x惌 踲h霞DPR;粻鞃璸購 +颔轛覐K鸹畕[Fu恗lx擻*,烀oN鐻W1愥]pP +仑窭 %鲇戮類腓仜p嘭蚮奴ubX@4摓0h瀉嶵qN跕N鬬竈iW褼籋嗴\1﹍1(澚懲眏VkzE-  蠐鍚=R&Σ"釭,|嗏9?酐隇璤@ ヾ婳S駼QJ酋椏a甼I璠敏鴒<)侑熟s 晀>@姛tux淮L+5赉nE諸z幍]蟷 ++蘴洳6w铖巹KOqI胎Up觵B2L帱;. 0D咸劻ka/䶮畴3Q讋t偓慷瘾骼Ig橑飵蚉瘞魒*闏1+,膐x鱿5:|覆熎W爿霴)|/咠邊岨鵥蜱cdr渺S~r脈n:}鹩)Y袦?苞榺葋 +/窌脥Ou)鄫 ㈤y嫪煅}尡悖琰)轕*(箬宿Ы銒/ M_|悲v鼱&輷/微\(朾唍N5曲岆7趭徐uM: +] +B瑁盪S茔`廊皺趩~C烊M理龁J,閛0棹ó?期 泉賦羶\鼙:鬂垬 螁掚EUe劗竬=膪鰡絘鵳莯鏹砡<4虂瑥蟿綯俅.= T堲Y綊 Y}1^~<貕k>v錥堔V輪htg攂x睛=XG%s竰疖瞘芐櫁6椣 缘Pg +;绉4AgN.4?? +endstream +endobj +110 0 obj +<< +/F1 10 0 R +/F2 13 0 R +/F6 26 0 R +/F9 43 0 R +>> +endobj +111 0 obj +<< +/Im1 82 0 R +/Im2 85 0 R +/Im3 88 0 R +/Im4 91 0 R +/Im5 94 0 R +/Im6 97 0 R +/Im7 100 0 R +/Im8 103 0 R +/Im9 106 0 R +>> +endobj +81 0 obj +<< +/ProcSet[/PDF/Text/ImageC] +/Font 110 0 R +/XObject 111 0 R +>> +endobj +112 0 obj +<< +/Filter[/FlateDecode] +/Width 83 +/Height 117 +/BitsPerComponent 8 +/ColorSpace/DeviceRGB +/Length 1671 +>> +stream +x陧\ 东 eO靿='鲣g2M眯萒>9=>烾隋f"傋u淙#?/B堄 G夿5辥魠鷛cLig9D憕#e刳縬-p<灟擳e戭c{@2[罋[fGH% 稶n珨=銖窷 ?阴膂-dwd7萢媹碕 `祖R鎟[鞤#鯿巯q,`唓傠m+閼[顴衕歉厃]6軣[7嘱y詪踙1锓峄/蛤紸 G1l銧淠/V廚鴁= +-,會惚斑Cts╙蟞徻]\c畂79x疗駯郕响d茺e壘a駈L(o!囻齐|茄謣, +赘蠮r9躓C襔e唼蔆犊迿6 +j丗Lg>焬e獒遺O#W墋[p圳at;3彜┴㘚婽8!-x陶礡 +w7F"-`7{睭鸢飈97弩nG闺o蔙嫚炦绤k##vJ樑懡c唂螗B:6嵩1分 *h!nj邙鐪彛Q鑴+Hp萨L'怮, }RNE)D7绕齸鄷f膴I瀮S漞#歟爻9O 嗕3?'庭猳刽S:奊魨 +猊Te鼌-氃蘟舀]委E7\-=/ao1ι蟼X焏_^a橷D5%+*闽珃涀*够篍,4涤傣R邵IV-悚垟/=@L:`n〩/蝃pm-軴mG1湯蠅苀嚝1,=庴O+i袱V姻,^7gF躠 ,壻-D7z*+m46T8 Xvt朧#wLes帠鈙H晶1餯rB閨7XS[枳m蜽?凸vj鎪綹皂7亸塝E符环焠覙 疅声笿襃r=篧滚QS{戴慛Nr靘质弉+/!︼;狠\鶷9峣 縐驖D迄鏸褑櫾}W誫+畘犼NR狔䥺峚颤蹒n滵\8[苴Gi莵L'黡+廮夐2?eF縨EJ>8騕篯壼淌C=绽佄扼 硑蚘z雎喞8膌螛>谲>嘃"绸沝球勥崟舜邃挲聐~駎e'C楢e蹾螀胅僬穾 漣C郿排觺 +2#擖$%so :6 丿&6炍E!矼6幾G嗾叞〝]8L瑩(蕤/濲hS龀租踉ゾ谑偿>9粧1脲*9榜%Q凸\矹臈Z岈 /钊狙e`I2OΗ^测阴F<昱沍鯰佊t畡償啍5罀蝕駏 笙國+Y穂炁>C莎 %煖巈|x*<(鉒哧熲:鋞)_I玈柍'oX 飿狵x焊5 R槒~Jg> Q榑献-俔7瑞1穴@?;q 竞R缔癳*&"銻憑%B鱭蘒 迯9r淙#G┧?6屾 +endstream +endobj +115 0 obj +<< +/Length 71 +/Filter/FlateDecode +/Name/Im10 +/Type/XObject +/Subtype/Form +/BBox[0 0 2384 3370] +/FormType 1 +/Matrix[1 0 0 1 -69 -112] +/Resources<< +/ProcSet[/PDF/ImageC] +/XObject 116 0 R +>> +>> +stream +x+T032472T0AdNr.W憗櫛瀾9X廊能H螸霖繞县蘕聊耚显?萛%+煀O +endstream +endobj +116 0 obj +<< +/R7 117 0 R +>> +endobj +117 0 obj +<< +/Subtype/Image +/ColorSpace/DeviceRGB +/Width 474 +/Height 568 +/BitsPerComponent 8 +/Filter/DCTDecode +/Length 30703 +>> +stream +AdobedC +  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY8" + }!1AQa"q2亼#B绷R佯$3br +%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz儎厗噲墛挀敃枟槞殺¥ウЖ┆渤吹斗腹郝媚牌侨墒矣哉肿刭卺忏溴骁栝犟蝮趱鲼 + w!1AQaq"2B憽绷 #3Rbr +$4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz們剠唶垑姃摂晼棙櫄ⅲぅΗī炒刀犯购旅呐魄壬室釉罩棕仝忏溴骁栝牝篝貊鼬 ?魵(<鈵V詎蛵「俳嶃88榍緌RZ芮un撃IG廲J牿/抃荐O笾擇>!巌匟營?聹G#"攲奲b魍鋎S09銘-1狲娱(pG镸>仒梜4趚a業d坹=q熤 H ]^茵+0袙H昣Uu贷䙌B3EQ圦E (@ bC3歠邲Z{u拺HJ(櫨 栌9N=~qSZ]4喤鲬仉體^靳澁*v2Z>骄uけ2(4埢⺗67sQ鰩動’w#`0$A#@灖謻<啜銻H#9粚_-欇娲fA}y*6咐鞱阽彅姃槝攪H鏃牅v燚w,R萑`瓗 赔V頣嘃f諑#疥H岯N镵﹙\98=w屧9Iぐ'槌釋乹誋爒綀g$gq鋫zU{+檔寧:盩=Kc鷆9ǖ-躗1yY>PXg焭穒胟j訮9Vz荛睺镌l纪=歩鍮{S$郤,x)篴a╚!#hTa<铒鳵辩~诋`T~圂*覝慨ㄐ# 鈥r3A鲭H +1Z儴QEQEQEQEQEQE5昡J簡Sdl0b8*陇wv 9跔pa彣﹩{謁-嵉4.s3迺爣蔋P內蹮楼7砸涗wC妰肉1^い#=j岊pi1寸Ty銹袽无#譂@pi伌駣}&s迉笴YKο刉*徽Yw脽拽鉓赢>拽畚H, c︻甼AHe凶?菸殥!舒 郿鍄G怎捁誐9襮东_梍胸=ii1社(2 +(馝!n斱q(薾GJ{!攪-#tZ眦#FU彰}k+H丙篶c姹煆\V戛舉廴G塭斻h冢擈靖脒璯$畽譐r錅謌D8_聺Mlm9訾崑($v腚[瀏頃解(笀砂鍁盨鶄=!Vík泅兲g-,y繺i$苰\又v;Ar 鬁欶─e瑧}モL挔7=承}j恎擊V2B垖J;棻齴v蚘RD齴刼SjDq酽)z觘轘迉掉 泻Y'?臓?0i涒<$+!fd zq迵翻;C墵JG;K煰o覅!无蔋襜7扎S旮喏 eq=*r@#'8毎碤E2B((((妎 怫(*灐{f潰,園?0郩蔾⒑晆 Ж# 襼EAび捄mq占s膔 姱9樰訤A谩|駧*鰙Fk(<泆_1X:乽扼#m瑒7枝鱂塥5,秢|薚Scq$j悖E-Y朽綦訮 悳`忦";S c"夤╉眄5ジ\cp= 撺tk"1掳'夜莚.#h漋)弍鄵竳c?単Sk潣;鸊 阼邾 袃籁0 +(ES8攞觟仛k#.譭4唩宒R7JE"fe韁g岓\稼暥熲歶c哣%G 庉譇誼蝚+嶡撻S4奁%6ぎ毞b縈.="x籑懺by%麋鵗褙<圇樸嶪巅)刷&9>熮t4 i$䥺嵁ut竹o蒎塗侧:r?鱏鞺t薚嗇R争t液r爻耈^Ab牅t㊣郎ㄣ峛bz瞄Mv.踂36搝l5薎 谣m跧=2珦NE +1Q2琱膍=檳9_駹/}2dp< i7{+浔#3S 栟p臃皂呭汫浮靤恰3I焖8塧t揨せ]菫@朦┍"]:輬纕_=q焃io悕宿z>bC*钗s娱R炆汮)sJ#罘唐顉~饸u蕯窽洙L錇z殜7/鈱 up婘P(聛E +r犚,痾qcps忀夫}蜖蹃0 訐撆Cxロ%Pq5ェ4鸴茆11趧洁+R窡鑊-莃 +佋熞87!r=堑:9$渰qN(()C)V`Z*з薣Iq9_栗n*I-樔遺3OΒ,jF這B@I燗q懹-E5腜(2全灋ц*Zgk旛巽艹彁羊{疺9峃碣渃4佗YP珝溯H隡験fWYn0蔔Aピ户塏@84攒s刊8)!謦ぅ燗Q*2XㄏARTUF*Ic覔*)綁 g&撏銋$e簸螭T{酲筡綝憜莞$旽a联玼,扝 +*n+嵾J-魅援婁拀妚蕱撞滥7*瓗Fq熎 Q沨l毺桋ふc崙稛敯n汭#箧碽 睭L銽E:*盆寤D缰嶯9愀5蛸*;雩帟F#zu'^F{倚IKHh濋(容岓Ek+S%谾嵐蹃蚯縅5森cnp剝2靜A俟v 汛s%窌j蔍鄵冐筠簉p2j江狈W夀w扤q帶* )nq2駥棋Jq\獵*z棑昴_鵩IQ$癱f莲巣謊禎1欼 蟒TyK|禀;露0=5Q2┭'t5乇诳:5诩=i覗ㄊ鶻 ,/$皶$n庇紸{\[檃})~}嶊疥E皧9頵.=蒖守 髪|J$p轿勩<-冻采粄;q:簪濂硛3訛泽9b蘬赙忇&w雃o/欝+熃'苍p嫕D⒎踆+x?;搘^L* 7'獝垾糹柣H埼k^$8(倓; qJ:帿逍:0慩㏄T =3V钬2 p>誖wZ墝 g8NT)6A権z僙6E舅+彈狷V%蘰讷 +rq腼] +B03N;慱H QB龄v(竘!\喟"<毦=扱E +( +)*).Q8P6q爄75RN矬#Ow纐V +(Q@桃,L 扏>U-?峴倄6 p(缢a:`秢鋛唧妷G洨袯勘wQM鶛6暪對y繽牠z+:鉒3j輢儁g曘右歕D蕁窜R餁緁6s徍px(ⅷ(R工;鈥T8澗RFO8玹朽襤ㄊ ヲ咭+濶O\驤ps鳴a[*yc甶 衻j變T(⑦BH蝢譜d怟k声?搗淶2飏 #|磻髊蕊鳹挾\:幍崻-+n 凌s櫕諷PMJc=智EH7MH鎷~M蜂z鳐嶰2 纻H雽O,v騳虶革$幺5}Ne鹭v岬慗欢嶘 )$蒤)=(宮Fp=Nh儴彉烎碤@ 5 詮qX橗o诇V<獬lC髆[荺AS-蜒KH声曩肓苢奭{鈿e@环=┉2*9鋎酢胓孬m>逭2膒泺I鄜碮,V0,明1鏥qu) *晛〆峞8 哯Vw躬擳y"H唯B嶰<舂s苆嬊$\佔 +q黑# 0z馝麙剏斷怓q灲↖ +),oL諰V2捋镊xi鲄X駵{zsZ崖 [侫$5肒摚n ex懥.c*绕闅懍*鵺)+憞槞艷o?螇,5浆Y潷,:┯呕如 +d輤岀佚ka濰 #洚9窿U沰К襙c;扚F6儙?隬f2l塞{訤閖u皱斢弇}DYw撈9?6=Tr)Hfz栫滦3>x<鄪#"樜壍摯镗臾儉hC棐35衈8嘔eU#評䲡c胆簰?蛭E撣幙X擽8琅8璠24隹釽3\碂航*軶髿質 w'!竎渵zTOQP槞1歀悾}:S!"颈u灆4訖|眬|姺*&#p嶋屧WV餧:剙U 諍]Kmr玱4╠卩0飸謹`R袻(((((())88巹c>羯,n饧姃憜T嚆迊5<烲P莉C +V銗2~帲凐2nG謧侀@ 紵N昍c銬磳(A熥:匃ガ栖>狌銮鉙Ev6棑h=O篝▄矈w織鶛楒杨$勆 c +鎿J/祠Ku(慖灏'£y黬焓弆0$:醾鋧}3F亾J!夯'袂衄韎huΕI髏k6v翂$帨襪al溿顇簦娲9./j@1K@鈦(あ傽 E吐3幤玒L眏辦桖vFS濭酾I滉'b $浲R牿+,%8e,9橛璌z僸摉诌鎘蟷il刓Kd 昪庿⺶獤钒剉/禱萄i讏[-*硐吧猲蹣聼2|泛6#D卌bw"垾w扙.脦q>趏碄$蜾寽偖0Ed\i譻J唟秵3髦?孔簟籰墑y汼v-k,ZT&SpO#樨鸗v憱竧*始= 0i扛kw咺朄垸锱> 爾V歋#柸c鉙玾f霒4躍釜1??Zh粊.62窛'螉迁荙庈t┵BO蔋鑬宯w揣PO臬9揘$穠u%橻灚娱X-y[Ld寖8搧貍+l0# 坐k涶\Ej.Vu+澧#偳<徲5何S鎖A"d% 渃懥鼸+&y臛i侪"嬪碻g組湈糚磽堵*源R慇哅 s耤晈!艶}ju务C'颬湲9阖鲼閂獎收.A颱t聦恪珉趽5啯摺= 欘a鬅虉.﨨0礼莲盇 +虐儏~瑌?螶僄F抺┸$1 {争#强鎗⒋箙i趎7睐 '鎓习*J@嵏)lp M仃)戯秋 +缪{SN9您溠$>酞1,2~時k7违嬑AbO犂棛si縲塔QMV C奷(((((/t{鱻轏碧K& 认R3戸 4扒#YA8c 夦 輂2枃xnH郐嬩|貊?楑*+xa,b#-譲5-\SKS +拰U愊5 寷緀#覎艊蓛943d犐阨罖 AA: #躌騉lP:t沥`膶61詂1b銦>JH鄎嶍鱶`赠淩谤槂j嵔▽H擎r萑&+61:R唀萡 + $郑^( +斶憘q[⑷~c9<`琰骦蛝x萸J恼鞤$峐 +哛A q凓塱:(>g'4蜞f濧'璗伔$m$烏y +侹x鈪é筙樬v驟#0f\4g拋動Xв_An衽`y&4懴s2(##3郗n繬X寧k;Ii%灶J48z昽実5秩棰鵼遒V窈"椝IP"Woa庈v;}頫%rr@舄害搊4f釯л +軂G絘Mu6暕.昳40G#+y 7$ zg囈猂遢heJ彾^涞莴~筐叇5寮孔裸9牢jr梲灗#懃匷=Fps從~旊 IR睓し/櫰 d巖G隯q0c覅通'k枫葕7賠`壽俊荶s埔;eB?+拁緯'9鵝8五訟澕騷⿰U @螸酽葤鵏be髖+;s>裕3 d溧鎬稓 +垺貑媳鞾~% $辘 d猡沾鯲s鐬越E嶯0H5Vp拜C)(['廜*製莩r嚻q鞺o脈崢8鋑熤撠覠舋孕讯党n嶧埭8傭V釆=3岤c'僚ehw撣寫FDqeJ鍄菪缇?伃筨鸇j矒R嵢陵=3予j kG挮尜I.[疰嵜 z簸+賍p{6%Kq)= ]蝆W貧妌踺穚夕i&怌 壤悐X佔奲池l馵燨1虓庫NI'戉+!UG茑7 =聩T爞 4船>g{ +A烒ウ",F~c赣$}Q@Q@Q@滅敶QE!纭-3藼獭乪艶y獁z禃吚嗞鉪7P:u趷\荔籟韌 2第v/o_Z7瑝礢}OZz阩谬Y.t_甄k卦芫p滶%峕qJ捫~彡(弱ㄌ\u芓^訮L灃犨 +幋焗~D<V>es椎7商'q幤氁蹚┆亗H≯驣=8ぺ4&鬌柹9笝鎾@.99銣~WUc`儠 }袂乥蘳邘*+禉a釨/8T浆ki?#3N阁" )U湷eA肷+\g`銘XG く3[u0刿eQ'蘱(~旉C椰愧=)hTn2)魯 GJ擞^O6鉲Gq"霯#廚醅m仄x钎Q-F4昺'嬿孫蜨蹮Ls>鏓6祹殮;`湆畗)浫e 蛸M滏爆-u<繏,W轅鶸埈缣o%櫎u崨餃d笞 +Wあ赟尤絵,1D9|?!QKL%∝x蜇佖猹摡涤n[_硳pWv;Ux譟INV蹋6X宄弉hr譩r蹤_再妢拃蘰蚛Y70 +筍煒t諔rP63.G呶央U赞]B醤 肢氌5蛖89 *6嶅偯':V磟,U|├蚋Co$晦鮃o:隟熑WK懑屈0S)契鬄++VD/jL" + }N2i薖r 陏=蠏?梏 腟]\隣<皹'┤滕远迻:)򷤯濤/C)=篠6倄4骈H戃U!訯Hs魁淧!慎唟膈壞(?劯g嗾翨嶩⒏Y暦p9鶉撠;I\薠鋼T潟00頊g?+L緁 d握'8殞棐 2苭0=8览戕痡f挝襕舍gU祈漀N=G(Y粟*r幓w)靇) @#歍O-QU壼躉'箅W$禗慣$尋r@)峨菘鵎镐v鶸X粟i~匜M菫sD恶MjxH裒>C,珣绍N%2}鋘;鎷赱T4#*雪Q#侀N╠y#崫奱FzuМ8\銮O执8Z>姀g.>敔>ya +b苞)榺渄u悱#<兰鶳$当鼷绁;緎钎-肖 镩J:rs@參悙1煡-R鋛L.C'J7夢υ恝6蕧uq搹旛润颵禯V痙3_逘/紡旛荿觉英鈃匿v4門滚摝涙;┿' +j枍y樅}Γou鰦缅伻磏o搃帑騣驰$c96 G秊尞Ko柒蜪8Z#9詬G=鼏葸EI)/酟mJK#8Pr*x!卹睜9芆鎕86>歹t韙痓'y% :凕n?片败I=Ozv@}赶COP1挔}iくt埁艶h壬20;T勦f錬乩SZr :dgp8╠ yrXb L$屾艸阧媩a (吏詮笢邘瘆8CM夋巫;'v3鶹g>鯀狧半Pn蕲C;'];1悝H98=Z;+虾摎vsM''歎P藸儗歋H?JS謤 +((燽JZJ@敶 C尧H蜨3電殥倱v癝s螶u%0FE且夽!酩+8颪a7 憺攦┃P6{詓矩 +I,2证"╦畋Y4咶}zJMN<襀幸簇瓲嶩鐢%C 89钱′Vu血瓗`苌纤擑TWz勚qF愊2D0:燄衽Z睩S7 亴隢慘v鋍5L藃睌]尮莼滫c譀=诿wo嵷蜨VP003蚒褌寷&1K瑁})許&飍寛F趱 2:S 穑侊際褽亖tp!邴)$d>4阣j懆D/l籁U 渨94那Rㄍ長D+#1v`呗{P庌i$朤𖊤廖z酹P伌迊EP!c-SUUs濶 蕣Y圲Q扞慸GwE9d苮鯛vcP1捉2Y+煑 {矣KRp)歃3嗞:鸕怮H崤"(認x[.瓡S熜籜扥縓竐m匇{w 㑳2v6&遚u/#|餵ir!g)寄嵱8鐾b燝n#v??漍輰畒膣覴頓à $尖_1Y{供J慩徎渜隩b箰F#Е*U灌q頺D焉(H碠n紅蠐8韸p榗懴;欜碖I `:S嫙搅镹 B)娡"e*S=蟸待!1琰歸冭ih $悲鬄╅電橬任QL#I1傲6"塚6|.躵p;})u+G,QQI*@H柒8麿jv駮7B炪瑜C$r泇葡砬凿籁`漠颧Q@頖,15p 0任﨑詳Q@]峍 営嶧3NQM.K托蔂QIU%篽 ; s儙z}*M亘潘DZ懩q硿酇'+簻 冺QK<#殢Oq-/巸h?置錦'pq岥t %#Uq ~礽Kq佖M)_榒41袍BE`覙_5 蛋O +7(笢l豅垛伫q2}j誡[(=2*虈 苆媖葼漹岝<歀附oaf磹E傡6寽k?D>1$噛'囙摘蘗1韸裳碍qC*髴搸鴳誒ZROA9z妅 舄0B瀜GjC蠷H蛶源骑@朽h敀3$n圣B儗烰C抖+i+kW"禫5-&8S轾`⺷拌6F<0 獠|?4F赕4蜱r4d澥F@拳歱販N-kZ邜Z硺+栨僧d6拧y欦倉+xI罓FA醛j娲阹_K*Mt9簪80B$毄2Ik%袏3m滐;@嚋鐝SS贗$栬耶<羝G拥f烠睶叉[R珨## 襌憙L虠蟗窾D鱍P栫歓cu耵)!銑ZC渜-g咻內叭8缵桟鹰桲鸇崏鏵v 钋粝Jv撮k8蹮痏5j艷俞嗈q+F q麲镑齤R鞯7敋n哙坒.摌?τ芋ň蟫CE2苫喥@唿@豻;H95YL釛\憧座崭#8壍珳u鈯搉蟮2jr;NJ憗兦弭" #0@膘+>A潢0╀}OZR4ぎ煔4h'耿扂 + )i┮滰!歓kv燽夽r*m#\H + 丧r抦`詂痹2"'悺O飱$実$史m颂败箳- 纐'3懹鶹J瑆(訃膒m槚w~-lZ畏V盐焩A窺鈓d易gQT5(o1 ;蠔>5=瑆図 X豉q忨侗锑擳箺Ψ$渘垈@Β團,婎 +π粠语廭:袐;*ナ歧$朜滝駩J犦鶵 2醌%倇%pc ;秤镜09C3.\垥@A撖裹J娪P祷b栻颼7ci~"尘簼鍫碵鷸yL髱羧 +葼?0\n镠厠癭鞱Q驇1帞赔BN絟(傖髐o +H翨K*9#鼮暐鍴Y% + z礵i秈O* Bg<撛}+"\E%'b8F蒶鍿x%矆蚼囑剺澃~*+fY棛荤8=繚i尸:fRc8>革TR酗豦+ @-转k] 8緈?0钳z睉渄dvㄑ 萓堣E) 镗髗*憙w躽 搥)irr;sKL #W敹狪$鲡杒h0 鷥奻牉e吢m躖~措x彂ne躤D$鬁`妲瓖U擳撛5暵萀A]:症夆K忯則V榭 娰!]H 2<僈棻j坏逼瑆[灟,mf簩= I@7鳎8怯礑諻>ht緌+?裦厺"I A9旾"&巬 剮5櫓]jR%*!舽U巣乳弎V%幰贆'慖7`灉熟9{8O鴖JGi禜W 宋 R翼偷矰a1bF9fR_';幮踆晱裿㥮敱沛梷珻c`9?峕撼昈xG腆奞撔g4S頍 +@忔邇屻蹰風椀撒癛蔏s鰼隟鞍籙 +==s蚎詎 姏奸褣=弹g賚喾菘蕧Sv1 f<&苃町溕)?它+ⅱ灘1b蹗IC倷#鵴稠f 冢$ +}∪@d櫌Y!酧!豔<zq鞰哇m  7愪z沐5佰y綣祗d2$鍙S弦暀镀}睽抃i鈌備惄亽藔I` {A瀉瀥焠菀俱姱猕n姿縚#却-笘 oO执{V[绍領F擻:镫齓墱S 渀冶嘤A鞮攪<瀒男鄺萬仌s辉 虋睍l笃 ▅Hk e1?弉~祐蔣^2矰cd;zpq帧娗 昬\gё珚|$彆粄UE鮡訝鷣 y冹` +0缘f )`tイ#渻-#0U,zM l渢5藎瀂熮?{w爄]<7K腖&=⺪x蜦酩kTk蘸/.銶姏瘟飶_%糞G4ユ +"Lr澉蚘ゾ宸数覍冻\圮;鬯/ +9E饭镵E )窢QE +嶩銠p璁;dt(爄踒媔l2钴爙 Dmup.悗膬ZtT颍EZ]u +(ⅷ((ⅱ箰;爄]裃/r鉵 廘姃j翁):以Sg` 鋜(d娔繛 鍦A1v磎睪答s徲#f 缵碍肰繄埪:櫪9;欠G=}8:痧W敽SR襓洳打縱F/川dq螶濾*阩緸<屆lj彅{z砸 ^ ;梭Fzc8瓐汍贙虒S+犮覜穿G嚼$Ri 抲0 $煚獝#$笫霖JAE<9泸獻2N檬h0lz鏓蘽繇隡氅1|撅s.=@6v6奣攅硨偣鄡䙌*砰_呈BeB渽G= #捺?A酽31!!芸Q韧G懶韚$2艃[;O皔j虌rQ烰稭l*娨c7a簕T=┵県bZ矶藮鑋礩W*2qi-膗;W枮\Y屄6b創顂閆7榯婩歏曓 遨┫?伂6︱--翸&鹂2r9砹 +閘eY-錒腍+姚5$〦ソ}Xⅰ秹釐朓辀]30 z烰旂u瓘=;!h 蟴P稚:M繦釒藂恟G_5嫟豄k#I$PBpb?夔耥V5}8躩^s讷B%衿y社鶸逝祠/gG.髡W2)獱雨鐍2ぴ磧-2D埔垕(悓仦jM犁讴6謌*丳'@z鋥*Y辗cn贠>$`NIa2VH虉2iD*V 鏆慏髬斱IM粐q煭jq;]撗MGWS慛R憵Zk(a凓v瑳2{⿲ou$v瞍8崀f靭}1隯幠:抮s豓u龒蒎堍;Ф劺m鶅N殳褡璂曆袯N2届E润巁(;B彅O?#[U碸E紂躋@-宯==闦qVDV殰跦( (({R袳QEQE x 已@B@-兹S磀奌&.OSc隨*呰)n^S 抺UmIM鸄,嚼珪^'捳亿E嶴褬=鶳緳臸j:暭呀勱# +豹菛r \帲阍Wr 圢g 檰 Q笍L諨 村D`D{ 3例Nk`謙鉱轁x邯J<狈骣堀++HJ舂裊 +n<冺QN@艻=i掷陎}Nw疠@鉁HQ撘帲僎愬 +Q庯R崿墂 +J橢q懠`話D@鶉4鶚;q#症#訴gM铑+;暦22夾v5含C)H 餶濰b>+怞 ,/#?C[錔腣爡8焻D/┵奞糧荪 +I8贗x镴&7lC.萼s帣飱uY嚷)誡F童-+1弎瓣*#溞9啹搵R] +6鲙n颽[6傞-兮"@麊p8钳璱+p篯狠羪Uv鷅瞣 )–y w闡d1芩灅3>漦ⅱ尽塹錦蠫莅黻9嶧zR誯k袀?3fJ騀?*蜂rF状塜昿@$疥Jh燲8^釜6楆酚厮鶷馦苟7蕈檾⑸Nq烎磩 8u5FE* 蓺Y^PZ3z镑J&掃E以 8T 5u]褍+ A憑^_Be箠[$擪2F;t姊J谂jt覘;Q/ut5褧裖2叭 N硺(((((((埻嫊噆|萛7n齤Z(爈(/=箮9^&%~d8  *z璼q錙k#3HW憺抺褚撠╛汣'U硯 硖ヮ$P匰>Y冹酂CV-"諣緡3ヅ磰翬TT憣c粀觭p +n( 訌颅Z]$苪I呐X7Q犂轼謎+茼敠∷d走練v鐼p釛bH8L0ri騀LE個z*鸽門蝬ふ0栦猘A歒Y恡銥敹 +T)%l∏9留G+稞抟1蝧Mb燿侙諤>蟳-凋,{#焭誖睩s祮FF+5$喂視;6磃5聫鳬,&菟FWi蝛r磅x6陑u揖Jˋ=A=3[u1輾字0~_"Y +靫笪#隦)鄎迶屻'襽c*蝪蠶E嶯R敽壜ㄉ>倿i(%骬3祧鈉諶H$佔璱o璙戞 +7撊8萤睐謁緱imv1DG鼦礜扗簢:倰E癳r '(稏cNr紀e_洨岰[溮桃Z埦^鋠=5筁UH +4p +}\SKS挰'x!:d謀j働骻朽/欗Z艶z飧蚮+自RXRY%0眰J湺8硪ΓIj畂儎&.]啪X习) }慔蕫G厢[懌珹d1彼岨弖m砞7虫DT chx鳍wや焒H藷JrKE"QHNCord諙輆,诧尓徢8;暄鄳堻#}k;J硉k<铺瞕鳖;螦氌獖涸渭攋.N3∫b$X兮0[+啿潂毪儻#閆5脴8灵O#5Zm觐g2糶.吁虷\1觞伶掭姿x 1帣箋鞸鴲队媹寂)鑬qQ_XG~#YcRw$nU\z6:舁V蒽甂Z戮K徤M%箪;V=諜-騅 h(藥1匛轼訯Td踤(QEQEQEQEZ鍪+卣d.r糾禂矱&8膳 ╙JN%N卍蝢蹒灍]板'-聤(QEQE^鶮槵鋥8D缱镼jk罈祷嘳跗3鑣全祮簍\砀k堒MgуQ+y^钔~>_譺蛰き$褻.4mu+零{qY疀ㄚj l|倣褝7mC鴕}? +軌赱X]A>:(8k?O誉嗈薳欄#=徽R*鋪荂T暰促话笔P鷰鉄鐪'叩Bb&En+嶾ㄈk$訫雮叶0 gm睖戸苅赢%$.验奤_1+瀦鶷YM+湺+苻Z!戅帚旹-躶懹冷Y稅扶近尙 怈鑣廭kK烏[常4訿/螿 m鋟9~I嗓q態p Y蟤/aA8Ξs從歴v螦@橥s迠*攋篪"f>LP 眮薾 g忬姷 -8b8>昁MD壹藡埑#缣槺g蹨寬OzzT窖>5救瑭*櫙$x挜@9RIns鳴銸$抒nO鶹8,熨7贒⺋2m坻w荺})!朒9x隘零訐捉9泯蒚脯B铪蒫#嬠舞 +獊=鸀2.:譏^~GGX縑u ".@菕}+P&ガ*VO迒BPd氬鏷吴佝,㥮藳chQt況遁/zZ)隔ㄥ還≒;y冷姃2oc梥2D~e苲蹥粴 +茻t/N%E晧29+Dp藂i垣 僋Τ*鉺搧撛#幨P3邾V76垲 冺巟嗀Ts瀥蟦1Vd慭鲟褡尧援>蚦$芈筌越崰$柗mpn_輸Tm爳9=鶸姭}捚8让鉺紌囜V┇跼*r>]倞(QEQEQEQEQEQEQEQES_v瀑嶘=3N;&]B6H9б8K疵i膉9h=授嶄枍k&蒮筺0=9霁h哪冤#%O${qMVh褽S;┧jP[)V儊;T b斠Ij痲钝嘟KXaT,纴驇軓髪贛qqn牞惏 炚:&6Gj鳅┰!烲沨p#l湳\憧#炘濃 Vn趎浀J郻f鳗鞻U 潴p[h\;僾镸靍 %a瑢ln鬂Sq冓ТW[HV\鶃6NNq=(揓.珏卆蒊 筘2鴞瑿k惸W{偁溹aL臬c阜8潲詑笍b鄳軄視奟V3$wG 侹y嫷睮2qV:蕌揦Y圵Qy=獸;U~*酇镼9憙G礕F蝧RS3j膉薮筅`詟鋑aIK溣H4Z婃H瀡>-T皂揠O窆苶?覔馗$鋼嚠`撓傉<1=乴?诞辡6勝$姘< +Gkzh1抸酅例Mtt殡g孞5錀酢SR絔;O氶愿寎哑I8┊o茅雷罟n';x劭侄|G3翣8 頟c燽3X>厲襓倔怯譗7铯ua爾R赀艨z巶Ps隞yɡF$tz耖N畩梋名晶<螡牘6R{``p?Y堧慲鍱^櫪嚣衂"GqF#峷獡御R幉*E.镳圏墣P $鷼IW|d撠S璀 雚p3溜P9. +靲/俆笙璈I鶙 7鹫k磞-緄|c8螨I鶵e$抦絲+ R妎頉p檟$dy}廕莰 婃唗Y#n )+ⅷ增r-QTdQM;樊賰焈juQ@Q@Q@Q@Q@欑(()23岒( 2 V禉氣G_) 鐰b璘6英7)4x埄凱c=铮I摺9l詨S72 錇9乡Qjh蚫虄鲬愱}=,諠珑 *9鋵Z黍冨m 鋈§mI;v.舚梫顰層懼H招錢*絺8皦f宥鵖e傕\D2,)伋犌C且曓崴杠藏滗宐A佭璒%2:矠噤S^<繞漉谽訇SGg泀"茋8'郑*齭Q曛 p4g{ 668 ;猝[]{甁2vF姴+V 妷⿲扥栽Zg涼艰腞r j 侴躍睥3凵J┕Jn苢戸Ш箷筬銄 R;Iq2佚?昣_0.O瞀1騬x颶f硯莈t在aIA鋟丞1Us5搻 ànp!鵗()氓-%-%儜儊<孯袬帖9e$轐媔\虾擟'1炘填霫ES ((((ΓnPpG抱PEPH d`鶵袬Q@Q@W嵓唃rRz懬隫(爄貖轌 駾>慠袳葚SY稅)訮 (mPx9D)"哠:鼴( .蔥dkr$z冔缨絔)梀 (#h鑙糇m圼)$挶r湩.g 暏c讈隠后$睚瓿a睍 2?,砸vU<R"鞞=+t57R垂扸$埣0癖摄==j辶耟uc奼熷*檁粣yh干賆扔带琩竓X頇睞Nj癃龀t$ 貵姚;侕 +蒱tTr敍栢wonx `c=!f仉9 寍佞v︴|鸓$舕8*&-1鐷韧H !hb +((燼EPQE6G屒瑨E渫H鍛r崶菍u蚛搚T茼3蝥U}2循趛螢B菫儼滳肇椐hE竖酤倔[J陡.难9施)CkI*A鑚ァV;儂g孶7求瑥6瑴G鞂8身R冇兺c>4淯穠WVdB <笾箿C +$鍒_纬觖 花鋽鄱J蝯鳝2蚻鞶>b罖藴暆踲:渁jw粆 磤2A)i+C怹( +( +( +( +( +( +( +( +( +* k.遮轅 :徶Вq粹炻(燗EPEPCH臾SUB畿溆à 倶1蓼c磄擊ǎ墤惨3庂な]荄 >n昗P闯qp籉I>煛OP阐r茖醕V)Pw轷わm ︺喂"夻 + md7u鍧佩墛2笨X渨芬璆n-乊榒 -* +2s+_F_村|酗∠桉竽@&9 21Z蚲豀E帧聄~+8虳v:玗投+洹鉀|游10霌鞮蒷8搞#1 8鈺' 嘁E蝛l孩莆衿g$<{*R*弓NQ裃Tm嵢q鍴Z0爩仏泱Q? h[ol懶(笣6檉挋*:歖喇y胪2,+:疭K歚) +JZ巊蜮f炦Z+鑕j睱&EidX椆5絤 傧Udi屽朡B翥醍峊(瘄覀茎猝蕰>īl阡U涡:< +)s晳疱老8=齣FpI'軗氄+R殩汩錐*9b蘖伭2轀w`  攘?昪畬氐P<鵯豼蹒譡岋*M60侍NX駳菸妘e熟譯齢+p韝1该/支E聲慔 r{丏6馜]臓$玈&:,QL2(擥吴3I0c$682,IEVK煙d奣侒1#磕U寖宻歐媅婨S$(((((((<檇)瀣r臮0K簌T源# 伓掬6擙鍁6Hd蝪懾怎晊Y\"34k楔飶j覨WEu9Vw)鬴"暐燉a宰 P卪珿:姡!慁濺邘qN< +Zc溧徝4vF)輸Pq驕55;)p *GY`/&栞鳗f嵮硟筿殦M曇 墽奊i贅惣c皓w/姑c盾m襂">n$q@孳浔gv芀g<炠 Kb襍^f>腡n<秦ra 文(倾S刪鈙,FT櫯U頵猓詐;H!z鬄ie!cv 駳dq/嶰==,Ld麡鎮z扭辠瘇泇ω限飵尒l幍P圹Gx亿4伋髥<钱?爷寥黭Uef/菷躃gGOZ#<褗g4欩盠C.&[xZW握霂禌} 精21'虈=獸1,竎灂昸0+99閺症]4,2v-6fA懻埩<:lJ y$払|?/Z篅(A 9恓8礶;穘 hQ抝镍8扳焜-窧v胄鈵,匟吱山Z +拹 R儦 z卐霌鵙悛痋'侙骦d銚冶\蹽 夋,筬3䓖韵c|:\榻C嬱簀援#撟$幷膊;F怯鶷 +[y t 顈r.8:}*缀瑀望Y>懘髱?*HRx銘妸轈*'#盈隥蛈誧顂;責0A鈿q瞢Z錦捸V9倿>P--窼]!f)詳Z( +)#99牲﹉((寕3娞益h町l%淛蔣塵抸襫谈潦-畣寫兞 劁fㄩn褭l?48蹞蹩ō涂嶩.;0瑯芓M)i﹖戒帔黻iQMF娝褑E:JO@I酯= 3k0r藢4>狹p$厶籄9惝?槯奖y虥秥甘巤琥t舂(\`颣VZ鍗炪D熀W#3U/`i$F餕1硇酹@` +Z福>WtT喿!俨仄s熐&6憤吐I(d<ㄇo(絼J^7黑$'酨+g'魻0巅q跗)c0*薔N迵淦A;緯*()久烟m暒$扥&奵;dS!-E<孯*鈹z心$ 渢2 p9憬U眲L飐塙*[鱝j %drP糏閃^屿皔q綰*G鎗mvm獭 ud憒直仌 苶:Qy糓槠=)#$4.1蟎苑梭+v*籐-c" eK漪(庅媞炤陎0@ +碡2;歳▍N 9另Uc77w +* +9绲'蓉z廧F*P債LO$`n飱dkkR匚3)5]6f8蒻蚨蠬'q?朵gRVJZ`' 炣S閽RR*$帶:)r1弞F' /銡$m圼=M: 腊<{ +除霘x 福⑧儊PL1i馉錃[芟A%涽 ]驇 炜Ztp琗gr膓< 觤!t茴p_潈牜渃*N!hfaEPEPEP隆l\TOo 覧rT棌%H襞LW渹Fz幑伬奛噐嗙濬錔TA`冝3膾琑M曺T,#豾d c:赋欖-8胄烏玒髦油j\铲駦t>蓐栈y餉1$1Pr;奒M jZIK覇尃S卪面腠唑`w缭裃靜磭鏷B>s隠藃ZL優zT61蒇ぱ +a8#仼轭&淽楻3迻悓"9 +頴RGB軂粹隋8sD壗v瀱┥杄T\'E莦OCH甿 i闭偖T瀝:誖秩m+測w^1S,&倩<髝>ЛJ[ 栥謰\/授苠#訡LIr]鉫H躇寏5魠癷櫎櫕> VI-伾'娲隃衩w*5缱C鳷薚mEㄊ觳`{~r幀r{姶拕1鶍屐N甹倘寭 昳v9+籋[!麪U赶"璙Z籉纔雰蕻苀WTu 耕圜鳘L胜U顧$2*Hn;S爩孯\N)6.鈜寭擄M曊6灞々嶰譀(]8蟬R袬]愛:66 亷*E酯0)) 槐訯Q'ls衶W袙奲抳侤ld妢 灂Y芹%bz哛А4埢x=)2㈨疩岗#乛抚.B;介I莃~攃溣泞(QEQEQEQERs揔E聶$*O>竒巠燎jR20k7S諉泂n捓)泈始髿婴歾*r奟kG,洂磴籀]c焢8тz襫\g#{頖)餁巏冨0X滢T醧倊昪#'ékr檾钋_b抇J $渀nl掃犸R$矷>^譧[ 敉-諟R粕$漪E『$`?!騁_┵劉ヾ4qHF#Vf 鐏逌譎膌旽`Xz瘾E狢 6G_4E i*ㄆUfaC;/>鏅|訂l1拽^*頋墭eGe纄A郩桠F@Z5$篦j紌l1j2]"(2!V橛щR⒅乞 箷疓5蛼Z $6嫫玽伵wS|B撤尵6廃绡醀fe1/>_Q幸芳邾n瑝-f2"EG1b1(穨&88社%仄 u.g{2.r隔9PP鹴/0毾詔i槹77 9臬>*y.廊A签⑸0岼旂逻焯綿,橪m亸掖# ┉僳頥  醅2q歕讥:m93儛q幋$t輲魺0OC舓壧|s颕Y橲%鋹绕C>8?吱觌$, 菥蠤:熇V茛C&裠PW寋 Y源)+n/腧6y8泭N0镄}i-鋸,?聭検x丬縮鸽Z)>fY +世酙=[々)佋G#n3懭8序*蝫q癈莩B鏷葑亦q覍嵷=q@r#'貨|a#>A鬛E +巖DLW痡拪潣攘2c汕~r溺敨湝沭眻磕 z冶聻邌i ,煒屻趷*8)詓笉廆3M埢掀z/牔|6譈S9雠M彌>裍Z(!EPEPEPEPEPg淨@3Gz@Ic惹#+釄銕)I-篃}d黯揨!TqA三j图/ +揓f`,F2q支ㄦ"%Yy=iYn_磽\t:恾E4e溹7翳淜羹!煡+(u 酱c━怞#恞Ib5堩撘潙澒)嬓F;T済卐遉9`矘5似每"38螓绛;薥┣)託柈i ;3[!窣掋 >闯2怶喀=iB*n徫s娠鞤{^,|瑒q巹Zd动q蓫嫶偢鄪l瓌 u< +z‥ +*亐 2> j-v3贊霼=秤U貟X撍擑I臟騘,&搉鸲饁阈鳘V蓅蚤=谳( .榆q䎬瑲磸B3S譂>~桙M򧊹苅翌h#f千扮萡9#簟篥4攘哮諟吩x襎殤蔢 芠;S 盍)H射4 管2;PWB贛#Eq臛p力l}臙巼$ $戅澣宄#渱乪<錇誢頔o]茻3釘旭汾┹l歃揾)|z灱T秈N7h喥焂庢P綯*葖,G蜾彮n菩墣y&7廽。[l洞y槞鋍‰相k^I#囹88+"q3鏉桵 +SN荻稗頍赙鞖R+鐪?峧媓懀_,骞?>庖;曐8Y9P躘DB琣$鷑Ei蒨%邴G蕕`妃jG耕<f蛑Fm姟 *p丆c5C圿R耸要重派I轉瀊镓H岉4 ##俉侒數Fb袳(()拞10O糋猗欼 1鹿o鈈xZ|(.3鐚摎EZ抒"(逎0jSmQE +( +( +( +( +( +( +( +( +(昆嵷PO黫鄡墟氶總~Ba幋豟+鋵撏"窗郷8`射vT0G$A創A9\==閶}Hf旟鸄繸陡 +殚TJJd藘溹g竿^荖MJ4欼$叏x7tz哉 ;騴鴈筂 ジ\蘕3欩rNO3B藹U$渂箯"遥r$$撥d泗5旫$v釟T?SmX,跷~糡m!uQ┈莌鎾澤Q臆馬"n1隠e9際ばF炩 +X蚂釈t觞hi滳*⒉悌^昡嫽|鋼圳仱賔_-&?籒丆HP獣1R#2T噔-id>eQ0D +0fPH4O彼灙 `渇Ⅱ拘U硐|ft4!“qQ遰鼮膻qNX<獵~忶-袎?椰缬Wruu#g.=)岵H<L雳c镽闍y黬I8u呼2W3紑<源锐侴S社8雩dn9胍/qhR 滗 v牥@'侊@ EPEP$d*FCu绛8`S,ヂ珏8jZ畲aEP ((((((((((1骻'1跂t匵緙Q膏g謻%'rw仝 );&岓柵)輵磳w)Zk 阍N]N:v绛*崳膇娒2oOF鸳憡Z(7卂@-P +N3佇P"柌=駱<樌猇J沿[#¬H旽羿qG壻汵.媞:F鄮爞q鶃VW$挘佂d鯌薊y0q熇T2纅檍蘄R菕2x-!嶩缱籀"O薇&NI4浇︰}馎[SeD囷d9虭韲 ╟鄗諕婎墀鮔.ゥH梳n鉘dO>鈸暀笷鱖鞄瀊,`滒顰 鶈壃Z_*閊萘 蘓揑启x榰 诈'9%Bt歆囑(N禳孽5b:\愂岀jO{峌P堂╇F矜l寥蟡u! 漶L慽q鏾=i?钋S棕P qb撎\砼9慩侤辱q取T*:o]7懶o腸 撣恱СR蘰4豜;.茯9迱罩QE2D镵EQEQEQEQEQEQES#9wyn囗9留г_g嬳?h踲V闗EP ((<奪(T(4*獉 +u2Im鄴@鮟壚搔 CJcrzMp騚`'8靭~4$b"$>1蝘挾ぴQE2(=@枈篷坡 嬆$w1芉皜=j曥(%膀侒6皇@锠`B岠%9溏腚Y璠;e钣俔m扝鄘`驧竲驗=赫変TT褡W1:鉀靏_3銑煾砬│G嵜=闘鄲=痢Lh0卫缽胦啌r佋噻旽c簡罙搶阒H哨s憣/a躶I刵鰀揊颌 螋 qN塢詞鋧zt颪(竹吺+|脦旐綥籱D^z4悫s{v缸"敦Z8p熨繱?錤s-瀜隤柩氭闥搐G'詫忖烨( O蘺弦sΓNv[%\T備Tx唢朠A=zw鞾氟$Qy撡=.@普;V擾h1珉蟌"y憫8鮪)璑X諘){疌 +枕銯椝繈 +}Z鄣淺啦)灙z妿赛= Z*颅S澷-?岟-Y! 搧P軿k桯爪鎙3.靏蓖e蒇>,谯擈懜H 庈:;lkJ*O辷E浰嬋O碝7撇:摀?腢谒M6;4X瓋鵑茱l琄糟鷚ず部蓭t4+E .Q抩!抋V霊G犭R囡'w镠F%钵狋GCL途傃E +( +( +( +( +( +( +(${w圦炵覠IH鄱闒h(&ih(( +策鈀扰duI鑢p脂V棋鹋#j踏H閹熚ぅ疪泿湣Q葓]F:妞鼢$261^俯*b+$?遚=;P焛髜s徾9J2R2<稪u&鸦w|b枡E!8階 z谭戞護讯腵冏!Xw&珿V飸礚?C舄鷝ㄔ!A蜓v.锣畗縅< #.T-畊Tk洍鋀S篧l麝)鋎鋹2xN ?缃#寭晾>緮噓}2y琅*=侀bf<&'済跂殼捓 颪9倞((((((((((9壤<笠枈((((( +跲3K嶢ア#m)薱懽跓H抮A镠嫷B侼;摀@荢X憣)9?:Rj婈S磼N障舆:4奪J 洫賕y懺`肄渖 z鉂鶯Ym華<搞УY-韁鳅%顫2暘锋A%2W許%T|舿Q萛徢鵓G舜渰7蔹 偑'瞘<驻\佄98=*9H.霳:傻賌icEUa渻哮炸%egA鏿=NC?L择苣眳U(〧砕Z妙_('嫦鑨够拷KG+?w?桻N灶Z74D&躓颀i鯶a皢$媋!FF胸溏箜迧銻J4]鱶~.+傷納Svy侤瓸;90Y7俓m 謶a #:d;U劓嬷唷虣g)?*幘櫑w摓1=)\眆m/0I鯛趹UPa@.F嗉鋵籀肉(凊%}噂渨@>爟dn錯|ta冥#=h#:lQ琎呶 9绕 -w癚E((((((((((((((((kt RD瀂`1蝦M;<鈻佭KNDH!尺疭抶#V庫F枋巠权5YD]軇鉲M冿?Z稾'檯淰?冥H鄃詼~2v6z盺e8:]磠\2"淬旷7Eだ鵉z僔.暿〣x<幥隩Ba?y夳繊'朴nO﹑ 您|勑i蔳#Z2 +宂箮]c嵲fd屲彉)閾4蒨I婎'燁詫羱f%p9⊕) %$b-5丿%ɡ阢搧栯荶# +7HG@z妡碄$丗H諼晹粚砦>$S敜紝MI鏋K$(辒亪pTt濧+j掬 暎eC鹽k/F愝j:屟Xo-6┸镩冏^忸鐀1S u55Sko識,蔢碄︶:猊╜孊)@c刭a鳓5糽蔔r疭汃{寬唔嬿暑扩TI鋵曮1夕j敄﨤扡┐喨bA}?蟌)&慤單榚9Z拀藬U搲j*^~A湉sQ6毹>bwj瞚頔渵dlX懟岊)種憜 伕猡攽唤5宷藼!rOS豍$IES$((((((((((((((()1骻'Z(03渦アk"寱鑮)詢8绛-FbS*扇epz弞I+ a圆S軨JH喸 +檄"撽*n7鉾|tk2\i惃%嵰衫擖舑Fr溺衄"/釾櫆度K!熞X趨斳&I遙鍒刳8?+b漷T燫y'侂R(f 颟镨圈蓼+栦3<5N慀'#紾崁硖憫鉅3鞐dyd榇>証潦灞h窹9D[U7s済:殜(頕惽睭珖攤' +拪(圮(QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE%&B昞u镋 瑒欼|M2 U陋艈I鐝蘍ED衂M鶁ǹ)Gp;T>垶S1硗S#ea>翐mm7抳┼鷼(セ)鐹野$*羉埸jH壛,I$憧颌奷船9湿梟2k+眥猍凼翀褸贕#隕3za'.懪[几7舵1撽}轸QZM遬(╖州嘔 + 民沎V蟱i狵%褰肹匪D8(7么迦宙降腤p,>∑*Z(獘篖维*J+ +d彴唂U寀-脍(d臸>(QEQEQEQEQEQEQEQEQE +endstream +endobj +118 0 obj +<< +/Length 72 +/Filter/FlateDecode +/Name/Im11 +/Type/XObject +/Subtype/Form +/BBox[0 0 2384 3370] +/FormType 1 +/Matrix[1 0 0 1 -37 -212] +/Resources<< +/ProcSet[/PDF/ImageC] +/XObject 119 0 R +>> +>> +stream +x+T032472T0AdNr.W憫箲灡1X佬滦\下L列蘌侠蘃烈菻下?萛%+叭 +endstream +endobj +119 0 obj +<< +/R7 120 0 R +>> +endobj +120 0 obj +<< +/Subtype/Image +/ColorSpace/DeviceRGB +/Width 720 +/Height 576 +/BitsPerComponent 8 +/Filter/DCTDecode +/Length 44480 +>> +stream +AdobedC +  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY@" + }!1AQa"q2亼#B绷R佯$3br +%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz儎厗噲墛挀敃枟槞殺¥ウЖ┆渤吹斗腹郝媚牌侨墒矣哉肿刭卺忏溴骁栝犟蝮趱鲼 + w!1AQaq"2B憽绷 #3Rbr +$4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz們剠唶垑姃摂晼棙櫄ⅲぅΗī炒刀犯购旅呐魄壬室釉罩棕仝忏溴骁栝牝篝貊鼬 ?魵( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +)1Dfq侂P盿業S裑=簕sJ(懂L[n|#揘J 箑-r惁煋z剗v3蹫彅稥VYB彳snwG玉蚘V +(Q@Q@Q@Q@Q@Q@Q@ w趧宖湩 夆Pん坤0T6N~磱脖=敶 +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +()煋.棑2x}jdBUZP亼暶⺮M簭螎 +^滜*1H淪<#┫倾S6I: {嚁DF硨;鷆L'嗛6涟湏2p?Z乺閜X%#j滛鐪阕覟L夷騿 闻F苮n;猞孳2禅勅S?{闓|S,T 駺狼鮆漳熁 e苝1伻闇溦$栂L鄎姢頰8蜩:(2 +( +( +( +( +( +( +(! +噖C臛 囸$∪橥C鵕闦K晼hYC$z uQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@G44蝭9鈰*V1惎冮俽J傐K匼鋹2ORGL跞膂q蔉勌FT 1荺躁宸篐r6"$莞4X蜪89膳D帒軭緅"8-O<鏢5煔- 煒~|*9艕窾0膶ㄅq3苶>%睗c(蹝u}W#侴璚慤蘳 p:`:襓b鴡 涌秞酹Z39{芽RQT`QEQEQEQEQEQEQE5鳩鶸E;X)膍舄u,譃培A帞匒`膔:d 斍qR礷QE +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +珄$1鶏糶鳅~礶幷'k潬o2/欏8B0_巖犴S'汹/飗;蝀8%Bd岒O隫;s堮*蓾~9 +)幬A湏颢q寭蟕:<躁芨粂8鋫6灱髿則IXu彼瑦/ 蘕侽~?爵頤 L#勖葁1$r +銓R\锔 +扰媘,2弉斻$`G#JC! d灴蠸!氙觚|埈庅祩&wA蠡co$oф*d*V%YKIA#s}qP d驫敾B苬镤秠腽*C0C菗贡抯 黴%g +)1!pC`du)酢若 +( +( +( +( +( +( +(#燒Q獫猭嚿;u█跞雯f餠C彏誰 銾廘T懟!霊锽b攐﹏奐Z((((((((((((((((((((((((((((((侥2粋 潋x<j〉e.賫峅貈: 徥2F瞐仡]軄儞镛7圽-/*>紼C澡媞Z]綶$`昹 濶N? 埅ろ1{w瓢!lQ 8锿E枎#葨B'о>c叩暸2徊+;滛翮鷘贂V8岮Vs礨u苢1滬覷妨麓鹀沃莼筤夸S_3廿m u蚦^夽CA<)kS(((((((嗙璙7 斴灂V胉鉃及蹉)熓丠览篱KP砾\又Λ9毘 +(Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@ 懚.09b{ +凸惒,潦騼災q盹Zn侱do豪僒淸42搂 7b8\g幷26ひ2VE叆V扐煙.J99(崙{) c酹7y7刍Bw(2r=:觫Gh瓹吮\(9蝬幺熺Ssn[峣"(蜇m薬溉1佭-0R 鐜菒q跚=,O瀅藺蛘99譊k 窅K+3cu#垮E儥[O腈2T7P+哶,仄8袅揟$ 盠癢 9 /菍}* 扙B觋襭I滻颕珬室 9;槻鶉錰犗9r:戯Z礑)C #霅豰膗霝務旮溦Zn +(ⅷ((((() d)j剿鬉41臸貛I倨ME弞_镮-嗏建1)r咿?溲埴!翴鴱鉜H宽礝結禦$U"&晧琚姡((((((((((((((((((((((((((((甽笓Tg'罹T/篶~笛溹鳟m甃鬆p审寘bB~櫸MgS≠匫4/DR燮激nWo刊4謈颋Q1b =蝴v,绊鞑虹k1缮橹9a潅澢鴫訯mDきa财瀉;姾(&99嵯 溉8'{z漀螊R飳卜,蘃8䴙Bv岔>浸[4X槒$p$厗T,厍ㄤu-囿m(;I髇笪I<~$@萄眃b朇2p枚zt螝づq錺O,瓊v珐究S@'g鎶+#羪E貉C骻$u鐨 Z胻B$K傃#c r:=:g蟓泇/3A隓堈&IEV(QEQEQEQEQE孊'牚LK签┊X/n縕凁ゝ蠽W8⺄勼镲Jx茉!s簦"汧h噓䲠f浲悭bX.蓠WtJ +0滝+:7|zQ;捬I滛オ2 +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +(璫羣啶a 檉,跟粘QMs箏n0脝閮R胀i凿鸿蕱辥$眓b錍l廜ㄢ1r嶆;*ˊ9宒j絪楙%o.0I@:鷡52";x;z煥乳徶¢∮N襈E!鄪槝v灆?CNG7臵)!曎8鋍岕赭硑^Xe;顊懹窑@岙 #RA鱴祁}8kp夽貢e凥騂瞎顊v*笊輩ROMS慸尙rd2捤 \哻老盔肇笁d 蕄死O職&j隰!付I聿X豱=1颲mrma-澟rs=i ;夁偋$郹灻>糡誌ks)N皴 +(楺EQEQEQEQE眔鋚鬲 + X歖*貂$漉ゝ餘趰緃郑鵾T岩佅\ +(詁佋J\ v彮:闉:U圱摷揚毣黬 4e7衂(ⅷ((((((((((((((((((((((()沎誊巹鬛EQEQEQE1敳-z`t晪隋溁b=罀>3鴃猪a({㎞禜_i(w#鶁:帮tM"ナn塈&A肜轻帰襜' 鸞+懟q綦慒F$頋.:$g赢?聳&V憡汝cPG馂踼>熴Hm齸"籇g泏Sh秕娆垓野w*[卆嵓~u4羶#虓|蹉渃徱琜&=b胪R2浶枈(0 +( +( +( +( +( +JZdZ旾茕揕=i莩M5B躋J~礄)(駹r}s@ +jQ香颕垭K鞬幗城岧9h螸⺋狊橥]9隩徲姾Fi:傃EFAEPE剠=($撘┫6釺p:RM6髱j:!N诔V(9聤((((((((((((((((((((((((瞡6.櫱輅28=G$}kZ矁7wg藣e賭亸9蚅嶈钌槵Q媘xH湝┤K竚繧&孚!苢炪垸鉂錯" 罾r鐪鐑螿萩聐r崕]r7u20;せ飍^1錌2.A萟=&璟癶.清m9=旯f 2:()阷3戯灂5栄l$n阕讴nDKQEQQEQEQEQEQETSF闲J枈潑R)C冞 2Ч0 C:"顒c欽S t}h鹶(檫ャ8镗奀奞赭酽 嵇:篪言撺N^拊v珣溒縅0zq熖Uc挠Fu6$*孊) '3ROj4ハ,觨8*j:)纶=i勼譅)Δ#j(璑((((((((((((((((((((((((J捃$懢A/?閆禆肥1.帙P憥a}阣oG$3$3灬[:PRXB0%[3岤f速+G 喈v#疛堾#7栦1蹨摓y彞"有W%絪镚O\~⺄c鶴幙Z炣w▃弉%郭"%眏)匯OAV`#0U砷T鏄骨A镮$吅煡DMCgD!mXL'廽R{S 鲦ぽ 4*^紂M锴婩Q[hQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEVb-焓 +獧b惯鱯鵷Io峻厣 狋8鳃运〉祣脤h娶+p弩箇08鶉N;{耘錣劌昪=P|膩軂=i8捵 ;萒♂Ow侀痢@2莫噄<p:亐 锪焸4}S聒q/  顀=y臤 +単;X濱l珲\I%PYO>黺愕I~雄Q$羯轸枿礒UQ@Q@Q@Q@Q@3蝢鞬I@9墒热联,0H舂f雌<4/O駹械&慢?Z\鳅uれh'耠LB廕O玺狕8邕荗/隦v酏(鑨碛证剚(镩隠陑g料4jo^倗秡雳郹~4"!4耰I殐 '0覔跉N9闅E!>粝櫸N)T4~g狕諛8\0跧甾嵠趬璄V菤QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE斒熩.鍢`X暲 +s熡玒L鼐窺" 邥{@霨84舶``瀓=轵6N384.+@&榸u鶵撏1*MR8際懠@苨兿覝鶞絏8U#s?.h9[aTAP?;晱#渻O麔,y搧9n靋'#O隔跽捩QZ丒PEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPY皘殑踁鹞A撐褳镜r4僎7q'帮灉麥#jZ輞eHWqC$lw1荿:泷#)壾)嵼s詓宼鐝支擧瑳Q:吧8'"]8母T剮3R蚥壅芻d$超樒2 鶶m菛#A!,2X/扜c蹫絠3 +6襓=厚瀩归R敼尭PQG蓪 o媒2-QEg8QEQEQEQEQEQEU9閃*敊t!︾歋讖聮犺:冇迊佝 c)觞?Jb吁P{耵⺄t绋䲠9稔w槿ル顂巋А┝胗謷S1転{R摰}鏟3d抸WbL鳋tL'磵oJ|i;Fq僋H聺蜏儚且は竆帳阚4X!燸zpq涌鑙漓9藅苳糸H  +CU5洴:帨鶶#qA + +)#>? 麥熃哥$4d撠埸驨F'9沭鍡筶 o9旖1膣誀#右硋頓嫄i 8? 犁y;=睙n礽楯烼[88#=轷F,(((((((((((((((((((((((+1F蚇@头$26{潺?媒i謈:敗PH['v6.碛圻=3S#j=}堁羿尮繤l怗J辥皥"佹n绶8麿:R唯 s:仦O聺+]82I蔃=~澘)_◤錒c笝$B酺d 驨V59w闇c圮妀+<櫈9懕"#9Y27`o;饅P+_B儬?JZ硺((((((* 憯緅z妐槏&Tw)瀒)z儰r⺄踵愕5qN#炦酟L;珩3趲O? +>囬@呴詔酯;N攢;L憜1顯n5'*64丩衱5&r殭#G鲝>尧z忬眄JI赬c觫聄!豉N眙爳 @琊香K溿撺03僉HS巗锴^摱1札L齢纅 +ɡ黫腸8球鶵肎藘蒼J膧a冇驵廜螑}衠语`u&攄Hy9 烽熥鶳遠蝠$!76UHI缃;8!绷>犕\竀泉羜帪礁#镅蜙|澻z7sL剸溻1L>U捃9'>Μ蚂霔OДRV [.F醹鬄y擎i馤j兇\vPx潸覮塃碸ⅲ嶡<粝0j罞P (((((((((((((((((((((LO↙孹2獪E,8霃笋:蠍刚?v∥翝軹gㄏn;T融栵衟"m愺诲躹mR}@鳇盌: u;馠船 逅 溧 溿ae>灊h嬏谾"U#樨襁j寥OJZA琅-YQEQEQEQEQEQE蒄c"烳竳 nP=)3鵕稴fu隣趛=)┝橛酾9鐨bb`鋐倇t﹜咦绁鶷 hw赏 :F塝滀z慶┿ 蹒酊幼#z怇&F1済a96&\t靫斛觭寧巨槧禰帩皅奿bx仱 傧鸰螌3榔=1湠璅s瀧恑 s潬餏G^韭泙y8駚NbX躰绌黫0Ywd.3據 -胵齌9褊鼜 Wh gi>垂#|胗+蛆锧%C0 +癮S兾?:cD幨r2綻1{sR埼闳8b橓絩?蟌忕Vm .浌\銧锢5F)7顨0 (袤8徬烏誤ǎ$岉鋡颲|艁F9S趑狀6莡昃z鬅蕰奟etm億e7n聅=03V⒒]捘1湠?L寘m崟p籿88顇)》U僶鄿怬o梅J[ +羳*A4禌 df羇9OA综橄5f犾P鉿辏鮷U&e*mlY24辏 ((((FP蔝`袳QEQEQEQHG)h((((((((((怶PB轣U攦鱋~紇_营r佌@<Z襷緽C驹9蕵:)黴艷~i与凇曭p)文aW╇MP/颏RVV8鞷彌媲94:g9!$`'?蕘7q0鱊=8认畾迿;鳐$鸕`B脿鈦「鐡x鳐#痩u莖蕫<<騣3骴溿砸(9厳 锋 +选 *W#8豏 沏楞灆m判m$|>闱紂擁Rrwc#倆懹滯uFv盀nK熠9<`88悃'栧䌷~R'/蘁 餴圩Be爩覭klnp7搞豱镠悐靁K,r1:盍8 鹷㑳#9*喇齼 0>茟G苋硵9镞穰np剙A嵌H砝?酅韣傭斎X鄊邅灱zpq篆5皃Sr  +?肾營豏C废腙p?狿縬K d{{tjIm(2侫苊摐 渰內熖%穘#儨m砷蟔Z胬娠豒&cR:({m$=)翭-硍蓐q岤庸#,QU處蓑 饉<磪H^q渹}(( 闌L:更<﹑N襀雰Ja 灛}耖覘1ⅳ粴&1巗扜)RQ9 lp8蟡孡 +耠K槯E[C^姭跍 8=3诂#T銾^-n:(QEQEQEQEQEQEQEQEQEQEQEQEQEQEU ̄呀;2N~:z骔?Q鎄撎鍃9#姍lkK獗.X YP焣\\鄑!70顯cv榆q怎酽柑+!9dyS烵剩(﹀]-LY,跟c腴"液n憿K鮬N鯸[袘N膶$塢<骄Z戾嘚O觴悿駠/"oA礍39鋨T篁GF1雽忬锧=鄂夘=i$输rr <詴fp(QEQEQEQEQEQERx:妶S橬:馫凇顃EqQH碓iI糸譀甶勞>б帣?QN?现毮兾~)#°瘠$焥宷I詛w䲠緶u鰻膻予{S噉s跊巟9黔Bg^G謺ya1瀲丄8<冿B噇t1Xaq瀮弎AR0<齲黫YH~;w +忣rj噕鄑飵敬娍6蓿ㄏJ^#擊湟`t芓髞襾嘰}2;{R>fpy橛в鼕C贼'覡谈ng焃牓瞯.纮s莺㧟橼昞#$荢?齴&'薴H蹇y=:熺J蔯 尞込g袂)摜卨亐鐇rM3匬vN2>烻J闎8Q o7BO隚塩栁 8轾w蟡@;骮釃滣隡 狗$*俽Fz縎O苊瀙z鏖鶶Y壦d7 }Q巌 if ,清0?C埘℡A壊T)99㘎d詇洈俌r 篝U崁3渁}>Q鞰 +M!&#憕\1-恲橄)鹥 鯻隟语c'軭砑巸囚w 土a闓L漢RN0鸆羟?8蝥鯾:鸁~;rY 9銮OZG#3?塑)橛慚9#粑O?鉓躃撿隌%@<-`8ys頌z熚氊^?,觾胕蹵鵶蜯.1z?齩瘠=啚['p額斴爩g9駧}(蚱 8勦}I圌琀=wt隦G+D鏸鵊4迄Y銖幼P@嚆伹鉆贚袔錢+^=d+岕撉z;噭'r1鞹ボ耇斞ⅱ奺梺岾V`覽Q@倞((((()9婶鞞 EPEPEPEPEPEPTo爽嗙q咙{U辍┼賿0蹥AC冿S-峣|h|jJK29朗2帔羯#宗成k啀淙慖8齤jM,眱楞鵶遥墷03Bo,{鐪绲#K=GC禘浠膟1憘绝砝鶶潋 Q?頻帩}驟籉"幢\香莖萓姢a%fQE2B((((#謨括驚%$揌EG#潲P \d炚 閾譃I=MFy5 *擁AO佬x試揌'幑y龋彲謵迊嚱`寧↑ u亰@'煣$Sz撓緄z鳓銕l:鈦![qs=:砧;焴熺)囵8砬Zh#攳#i;緳钳?8pB滜䙡:>o攔O簌~斃9)9=;{!9聹r8胲P鄠~窭?^q鵕绺a}8⺶絧 搞=齮姼拥敆fx4靣镊舂>筨0<_螜.V\1"伄禠zu)蟐逸1烝镠d昧!3毜┆. 绫 S)鎾:甘歶f|巳8=sVa疙!辖Rg<┷TZ㖞=8舄譵十y9)"X\礓溆珫8 +O~*$QE2B(((((()酙-S>`C!惹NN2A翥iX2哠怓A斺肘袳 +|壅廸砀识v戨磙$鋼T顛 豥;w2#<撏L峣n6b 蜢 愛Y躦駪{R}楨F -1l颃sN奷,駜#麐騃G蝓-浩许S粷wy脎皓6Zi4緆F$邦胢銣{ +I5膥`冥蹘老C蟡岯 鍞G 临!袭x胱讓 +m杰SFcU崸k鷰灤.W湖甛叧#‐I羮*a跖OUm$g釡6z鷳蜧^熰*誖芈j蚊]丁`グ3佋7糑y窽邧蹫O糠~*鞵`D戩 結2+犵緼莦L猧=肆乥间O晡砆蝌騡ty!蟸鮬蜁c椑O鸲}i奝巢%r)i檯Q@Q@ ER$襡DRI鞶琿P砇f態1爭;逊'袱際:烝I乳鶵$Ru鳏18酯瀝1J脦广"=阌 旭侴蹰G^q齲燽G^伥ち悌>漣@渢94?_蝷C m=腍樨酾v:w熤欦渘$:@噥驕b?7穘8漶幵' 饄侷<r螛弫膏褰>斅J湌8oC灂 虑蹒灋?詛庎{ /[垀Y9 `滖)YJ齏嵼蟌i?p6冇秨{S髥@趿鎽D圥c,v儞z*"g!H8.鷓z訙s尞訒僮:繀)+(蹖?^煭2奟NZBC怘9繼浇堻*誺蠲8銖聧肷V+8!圥9踱,I聜溷鱠帨锧鸭7樴<忕撾M9$|$憱L倉襄鵕.vgqVNTd?JcF踺擐泗爅漯 Fp:C嗐ら苝7s7c隠媝[99倭腠镹%U:,|8<騣=莔$偸@n[灾 <3焈鍤慒禣]糲覔鐀嵼蕮屻脎譒斒迓屶讕)摳[ㄣ燇殨稹HQ穛聻欎t胝~跕% +0躦瘵f8蹞<滙烰zePx琥*嬏g懶u;P_盾颃M"竷斱dt) 疙q@F+3无/50 `1䏝S&臐O┹兿8=}M牆s佂I%_z栱烓)籠盓o晱U?楅@菫[p鐀郼戇黨rp蔉A{鏛b叔綱.ry@><氵迉穜=&聍髮pd(鼄蚞衫$懛`戕à蹖2i4Teq憹膾y=I52搾y绛W實慥P抶?x`sB扏飦孯m诶鋞軸Jz 幗若獙N亮G6gx%16I寬1荺T\栦訂1E鞘枻兑u.@鼀蘝PH#臬袢颿慤 +玔扱EF!EPEPEPEPEPEPM})胏侳pj18n@莖zo厶h誘摴rrFs惜+枺ヮV")-觭>郿2@8#瘠妋睭Y淑薬I'8觞﹫Ia7 鍴2纀1荿颛繭為鈊宒曕8橄襞fu4i儠実-Cj籱9臡Z渕Y貖A+8UX鼢s戣f V[軠"1e(F貒<撔翕揟]C,x%豴犁¢焣O6欣鍵'6 :莝Y穠u +1M钌C笄$褑 W;攤8镯y磼,2㏕迿-訉z+I i< 撐1伹箅舄(f购8嗣@i \1'倧江#慪(翐L*+nPz巔I邕)񰦮蝈o況n蹫Q千\zU卹钅)F #鴩#惩5m錎愛$bH#v扃詂Sn篇Kī>蒫慳) 髭;<{⒑甘0ak.鏳J!暆堘 +61?񬰩墡Us +肥0:渨 鲰T潓M&崐"-镕X扇崞s亽Gj'DLyeAa2嗍垎%R迤~\向珃楥輛!!晹0YQ耕渃=耿 -#蓸漪鷓*T峊+FQQ堒憼 Ч腠U(-Y鈮東1^NA@?畭瓟*bX}陑娷 w8'3碲オF輩QL悽妽 +暷w壤ㄘ鈫8嫂l1巌1篟H$)<斵糝懪哂 Ol慚跤簑#呲涢Hb瀫鷓sBd9敔櫹畓Sq鯛`@,O &py蟡V胂^d笕餁Q蹨!渜襞*<{c4w<傽8专?cz藿=x扇^8ΧG)亀逤盈=橤玉馠2Gc視哫:跚b91顟懬=功挧袉钎:%鑫S:鶶x8蝸ur0蛺藿鷖颙9q任;揌W#羯锵[迋§:c哕灤&(弑6 #`鹻:*r9;嫯1钡#崢67寽辖&y\I衻軌縱C蓯l#o\= +剷馏1吤u9;z76獤8$惘犉 F?*哖r:g9'瘠U涅椾pUF>Br 肓赧雠5F +喯*Е00A再77$`鄟锷侵2澾19w5 .釨 駚渢軌撳鼠钳G?E,噐齪jA9s巋#89证k~厠k慈Y耀寭歭懇櫪 尀=?5 +嶡 稯屈:訍懽1覞贴l顕8$扝绡?<摿''Q戦!㏎粠覝账懱z75:癮臥獿翽. +<]銼篃)(蹾1Q8=闪潴@Z描dQ@Q@Q@U竩2鵌'掻r瓾?_楌隫牨W`;橔5&]=述妊>蔩k盍 髱}sR晤av:甗 +?1$B*禜噷 杚K腑墉,嘽 灌 裼咧犺z货,冒6雄5 +\怬玄TyM盋t= 罵莱r c{}j;莴;B駵x檫疻新诐尨wk謺P,a匳=銥熱Zr,H琧醽辽# Q無崯d榠I8躇姣奇H~嫒羃墙DN姱T帜Nf怐摯,lq萛襁*瓻菶;瀐O9+炪p隙=)-#濰鍚J.Ao=0H漶蠣珽:!抂嶊7+卨袅鞬}史.$UW +(?畺.颚Y<*Ot渷娱4閉c +VO櫡岀'廫zzRL讹$n埙嵴渞H镄lv藃:羉+}ˉUb0~\餈妻谷1R纘坧粶扞A閭{⺶矪%6螆%潡#穇N;眢.g憼##x貅!m%h鋕y寷淁?z旬p臢8>-#黍w勠術9苨莲r:L醌[OI鑇尙瀍睏`膸Glt溜Q塪g撍u讪F宇O\R6,B頦 軈巯n千錙ep&_$)]ü')4*銗H$p{g疪誟7尞豖磀p?<骎獞屨楻R詒68臅淋c,貭烰L} I撝儚j)?_"茻蕣SI隌砌ハs奀@鎽A臃4訍sN=零糇= +岞美5"撓\鼜LP4$兤M狼渨罓恞躻1滙餅螩软閼J茑済<鈵銓巼:徛晱瀧p懹瓽?琊寖羟肤碇憜(粑x)虍錡9?Q熚##8猡<畓89?檄鬮!<|纐憻JF^?)赧胱酩C亷蟡s(,~o|庍^賺#>腞巖Ku擎系861嶢u螝 摐d叁櫎?Ry萖缅8 9鷆4 喁$<甀鄡伧檗湰r渀a髊炃範n\ 0 鹴岞2摾鍃8蕊叻n茦 }忏飃撉ㄩ鳶 F繠0羜冸龙Ry,脐p~檐0?!傮宍2癘聱鳗"絙 埭鄳氢=j5a;斈烼4燣e3鷗1@肍'; 鐘- 捘麋9⺷ LF蛸#& M=呯q@'袂O丘* s寣滀熞泝朱0~nI?4P +悐z3闑h|噐嗖憫浑擋κr膁抸1帩A鞳爰aNH0鄎虳塄羙n邅跖!/'8)H闪84D{*y鋥{v雩埩廠'寃#稪E禛徏208邊9bO汕jo遵佑穰掺$u且D妜鳔Q*p渣鶶D桫#讦|T粘S$專詙莏镣謪隠D 茻LQ@Q@R}5崎N &咬=痹qV僬,罖騫臨瀡FW@渱膫骨@鷘ゝ从l媳暒#X 潳撧漴邰夆嵐Q羈脺?9姊妘\掃-匩渃欦舂g&(颍R劺;~9惜岕:|譭萬鹷∪T6Xz鏌+2m 7C{慞: _=Y誴B懮g姳" 玤袗1V9#/ZvM7曀 鄲OO~黆0,p1>c枯py鞹o[谭u&F鍁+粇r< +筼 柺2/F''搳吇7挼8摺厄*獹碼,!y錅筮篚7DB&;v┢8琥T岅銎b掝RIS螥q糸P忆蒤浒>s嘈 +韐齷膾 +<m𬂾`y幵 ,A昡家23擉c8砷L嶃歅"'a蛄pI#袚鴓>敓緧虸i0摳廜`8顴脳嶁埵$.0I=苳c訆.鈷0R幬 pS岞>漵绳$e欱堂頴FS# s桩*;⒖#矏秧*N89磉=(47轢窂蕧PeUF屑v秫愉R菳载d{~Z≮9褥jF!T辫M_C暱z錜[tlF衺a驹2喭U偰前1$峸*n]敃亮螣#C%陇﹤Nr膗阌脒皓5) (轝:鋪渄Gc螼錝謀煜'飽x!庫!鄬灅睨qS!fq工R佊8+谉穰槤7F览↖扫"茹-憣砬< ^崛悖奀膝'N詆燅犚CA謺'鉆娘溾旘I3H2濭隡轱隌!W?Jkr~翠#熺H'畒:坰:6z|x(G疦z*<z鉁烖dq蟌妻澅J>铷4讓羟4嬿F23@h惹渧8黪^詟浸湚V憺($⺻=閟胉d}郍o菬)糿鼹悠X顼`?齌喣蜪&9;H3岓馈NC鞞!=q撟揅 ?蟴S蚝嵗抭滣閾M 瘤绡^I壤=犻!g阀\R宯郹﨓 泗>皮V3潬襾魻(s臃 珒R+v>3HGN)伻镺)欄翿鑘煃Hd蜀璃颬R#躿痈淜TF@Fぼ8屳Ka箑d 霺袩±鐜麶"6捺'#~>昷鮻粔ZD +臢徥F;悌)$&fy鄁b乀嵖+ 騁|酂页j:';纺l8a䴗*惩ヲv2寿頊v齲鏀<9"哴1离佛閼蕈P騄)ypA輲?(#刊庼V%禘aa F1筟?1噎Urd@–剕n@9莬䲡<協惼J扺庌鮅滙嫽e}]&{R!)?.翤啉焞屿W腸+鋱r}毹uH溑"%=;⺶鹔薡B蝈@\鵚冏攮/磌.捒_膪Z%扡k?C狱k&97灻鏥_k靧%?py鎗嶌悿R8膱e .溥撺6E5v:In扡矄S鱓9扝苢熺Q莏d?.y#焇嚱;{蒇"塩 聭打81扅8唘eVrIa騻=辫01?X g ; +F躦#翻:H%蓪憣摓竟N冲恷3垬=个颶9pT暲9#姤1氬wB!FI')I + 'rI╙I9:⺄,r?椛軟N鎩痲,ci:5o橮F惲9钳疛掃n覉>餃犮 忔;T7E稄;"5*G栛sO^)3X璴6%戭寫栨m?/托&湪瀃pY阕迴8J皩#.埱鶵 + 2r垼爂埸*Ko]翵 L貆咐)'碇1蹾瞰p逸:疭&U9$?L馪#濆鉶83晱c庌: +ZtR觠寑)3奡G鏗c[欽wQ跊@袊 </錑"'裢;鳪O4渮儜痁 g垡曄'9Q@uA==2iP\箬p:@>瀲歨<趿  鋧:7戇濭40扅─嵥詎憼渹2z謼 t8鋑胪&3蜚=(梧wu#髪fy悝O笸9N慔y瑛?焃U:p 伷}Gn?=G畛熀;dq枝篖A鋍) G艻9荶b{ +zp~渨镃玸諒B向r噶跚NR彅)惚鮌2f榾D孉禓8憧N36E Hd崨9鵢┢鲭Aa蜉/ 摐95杆尫<髍 廄=})悧a鴐0 gy8潋Jy!硸;T俇}1翳*5S倖菩N呓絠耾漄渶!'<炃P&坴ㄏ索q萻嗕戯溹g語0h荘G瞥沜2oX嶰 烴颦E@8揥d5鲢驺俿轼覱9汝98淪荻8香L n>革灉zS2@~`A=z鄡鴖險.晘b 槿鐬8颲側$腚啁Tr躵T2ょ#3H;=?,╛焊!H#灱渟牯'o誊戺$=?乡S8-竻護豐dV`湋冷焃V+汒崄惏鵳攸z徠`q孵V表C;囁邚销T漤\瀭瞳昣畋+礊9肭辋sM 岚睝<崩?镕p狀鑇#Нzt( l萧&憌I\a朄i烸K.r冃y溏牘Y 栚983継艶r:裝y栧FG刵,C侴_鏗泇悹.yj酸>Y1C濌柆?(#D顐#澺嗋剉茮!蜚 +w澞r08=?:慛@9^1呹扊u 籄盍若c廽礳S寘清闥0 F纤献迾溔p7yz忨恪6玳欵=$闡穋' 鐝J@8汨=┷s灖{箅謵俋>=ZlxW螾:g沽臢瓫rvO萆9&燙捥zq苨诂,:濩t4L萅<繷城9霂O鳶 潋O打腍贯鑢螿鵖:?N:慔*r庫;c隒)*詞规堊鱀郹78隒(  訬ё<~旑 w囚<0灥湑:㊣I(0懁3..q镐倄w穘祏#3%1%峌P;}9?岶U)H萫`r樟3䌷Y狗奦;9c髏鷃唑6诤<I 瑧.8兀峄銕纐QD蚲up輆榶圶3轼擋+:@箃 +筫\onq侵牷焍( +;奥d錋'瀜向8黐頶縱1^崯9%m万:Q^檉=交B +*闓c犱u鞸郅&誐眳sGo□@ん)iR羴鷴(稰rIr鼯h挶+鍌蛝A荺焴姜>族+ +(g鉽餅欕伶璍惇膾郳n韼8舁a%T昩iKU悍Rpq纤?7貓戒6遪^O+鋗(9%吃鲟*|Q笟/9w碊0戱廮CO翈E !L朣黋:t黫 f*0"i漪闕鈦穥碅$aDEgiC趣a囂wd搧0?*敢lD,腎[9 Tb +杁9'櫲4l墭芐%S9a>9粖P2五跺囀#徛'櫟 +elW燎=01<)yEh乬/锲H酁兼歀姴; Kq:7ls?#7[鎤P$7芑J湇焈V5FeA潔*=硜靫@鵾F蒹搸伧 +b咮1$锲A;汨? +E][B胶案\nF錅6郃b{q胪X巉.Q1$惝Y\#l[1<<阒曫>c(蛟X仏=0N橎峞gヾH 9捾 ~UZgX貑#G 霟q鳸㎡ p潸泸52释a+攡??騣#艿I@pMFB聯螗ろHbw4繇@耐&@=)z襚g穅詩:C慛霅I黨X藧\0}Jqx鞨r>唇G#pq@ ^q>鐡轷=壩:g @飸詅亪8荙)8贏>苕淚1幐g:i'h芆99(趙缹厢B[ 侶嚣缵8贉N煗(?:扞閷灁密u鲢熛(麼88籁a劂=@<熉' +藺 +9b爩荗茀#v7t相1)H藹p=0=?Zlg#$├鯛]!2赶蒎壁浾彬xlr}齅:Ba嵾xq轷c$伻蹂过JlH沌"M$侸寥蝱<衐;迄#`瓬?,笮傾墉,*忝}E4 #皳;_侤涷腚L攨'b,gg玠內绉4獩P$ 0#裣q鳵嗳縫3匟99鑬P蘷eU胓 潴嶰C訋 +響H\菭*;隼;:|纚?聽厺煋8*3鳃醌斞A琿廫3屧g 螮汝}r)n竍$=i擈宍q)悇I9' 疲摶&=9<`禛L撟鉐2熔[9帩3軄湅4億鄬09醛oCXG薰2c萂\6觼乡O2[佋c镜H釠 嶇8-粐o恻O覄9]2Kue実寽s乡Om踇蟡#9佉漈`蕙O洴C9=裹*KQN轔R⺷'x札j{pd庝灩%埃,N0I肓P肺W +x㏕Uf, 9鷵Mv/涹d瀀冊` +c幑麲C鳵)贏,C7鸮3䙌j@\8-搷罏剰皓4祮 1S娠U溻RA5`>e@0减镂*筬钅隽9#鷚に鐶9]F:鷙阨筢I9*紂l@b瑺ch;熞朥bH`B撔渜:pV0G!z6:c觜T屏$.q郁R2澥3亐1>瀓=蛻懺羟s鞞'/鄖黬t]栦rH榕C扸A尀:ui囶FO~3啧+ep0佅辐詆`阚с夔*q灒~崔1兿掭s謶l,`鳔g=1岨謿奪"98鋞謦}涣鄑泓:詀趵荍]3扟齸}qRnW蘰G;屻篆#s逌q吩g搶B9=谎殚J{1p臘H;4蒱&z訿鉂溣"聤B0iy"&*.)!px糲疴棡刽╢?粿W8鶋袅襢%卾櫐1└U^d褊礛&躙vs弋}?J崳朏_11 抭蟣b戙/卟 !脃尮_?闱2^疺=轍貣蜉稘Ns幖$P=禄F綽臋龠灥>蛯衻 訏A#:鈺&搌K驕. 餅Mo納$頽r>問H$骴_ +%y覂Uq湺rW'#廜j#葝6鋺唕hl優1鶳M硂|BU輸w鋚>ⅲY^{圕@Pn恜s=駵S袟嵎)夈鶅溉<訾 *$伆闣贙=睴+Eq揊^&X3蚋x趛⑨刞矒恴滖濷q鳶 鍜蔅0o鋝粚怇涪 飥#,6p:郼辩廕C縹[d陓喬 #x炘:顦4cd兙9鲧7 r6T瀤&⒍_晨#bYAf∏~x锧i鍵2(X菳懛z銓 + 4挬 惲B滀 ?jX傩0Q2渃溷縙)Fcf 哑鸉r={侂豗d\鰷;烲 +籎1慗蟾盱:曰恐眔攑P銮~=F*%扞$b6)彅Fz帨酲)-r& 阑伓2N@胱9鶶移 +硎3/懥黥掖緯,绊~q湷H@蹫zRt7疄剱隿gv頜責鍼B0$伹S喧缱螭薱nr*2=@*ic俵彆O^A胛iIN$(诬s政,蚊沴乨o-觉澭o;::p:5欼A&Lq湕q煡Kf懄]iT鍢`dIq-'泓j<.屇m粝颟B60躢豤9<鶶%(恆K0#'塾4萒}蒺2=K1蟫鷗俳遗歌6鄎;岓2[濭聭筏C%$幘+O氎q.?<鷾瀂bl扽羉#N鈵[i躃)=:訄膎I8A巖2@磧,8 K ex汶焜s *\8$澵蝬Д.xc壤'桱a蹎~EH杠綷<9階LYxS怷/蝢Ur F_z2/,A'怚⺷_ 懬oqC皯盉O灱覘 T 骴渰=*hC籦3嶯O_镹(72夙唣嘁-阡彵=簊閷Z寣8鷠?跚84N>緷=归苃V0p/螼O譙蔁"/沶q摐v潫+rp;?Z戜f )鋵凗xZ9bOc幝樰q1僥<3w7鴔貙憺攱Co颿灨莢Oq渮廽E;cRO I#囲1侴8f乽x茹==砇)酞yu_'" 峰9鲡 V肱1'fB~H釨^$"芆_N欕镛{C*4M匯垉j郛уVUV6 垽绷 侙_鏗抧F!!1`H9黹J面"糂佶 驊7^9婶黏窇| +D腁潵@羚蝯=阤MI_;嫹茿箱h仴&BP>A悌3鯛褠褧隍6YF駦鉯#輋酻c yF 済毑圥矻xb 3郁隤0竃|碻!G\鋸B{Q╚/犢\d咰#Bsbざ}zcg焜li +-0剣骁#钻9 +.蒯EfW a鍘}嘮h窼r氖v俗=囧X澊 壹)壴 芠I缇旹么j夷郘>V×羹u:C* *羻脸>闺讱b$/醑瀋n9簦P紌"()  H踿$帲讠2簷3;厕"湐(甍蜦O蠷Fq崻F騂`~#篆m2BG'絍y2.Q羄済<嶯z炚8q2V蟡j鸯70料9欑譒旍En脁鋿*v g={皎葮y籘枪;夈'jaA潬 g'ЧZR殒樕w=癏\^zvねcV(葶V胎0縻隤D 秗/I1嫡~E祁0~煛<簿";x3dQ荍z)*襫鳙吶#鑡亴~u%縛咷/0琟1 +吳縙愕>醎禧Z5*I2*渨殡{婴怗箌邓/1 I8媵 p*2N2广=iw~d娹[纞E +f%巖]{鲰5nI蘣冟e@8岅VF 昽鍩筅硻垊$ +"G0声簑叁喤%74L闘~_7/ sRt墘蝦鋝皮#擙*宂痙鈽z歺圜Π琰(詔鉃3撚跉q各牑}颧敮#円h梈vH=y848併$dT`怚9缈{焜8h 帼F3衏嶢泫歩缍>)酇]犵哥侚R澘w8艷疢;;楞(沭 0硐滀u 庁攃87q@2漠3災dg亖穾xZR1鞣'?(&筽铣h谻rp:32ZE#;>鐚zg颣1MI玹銚4"酇i8PI鐚z鯛唫G]蛔s翁廘螑堅8锢'彯}=)'蠠9崭Z/膖鋈9 &y亮<弄愈鼔郤H煍s邭s亽 嶧3钎D"鞥)黟A<亴5"汉嵷W П臊j寶w钙u/宄|遻﨎$3s%?椞B>寓efQ搾 窳傋Z 窶讯C7(9Z Vc祮;鋬妆䲡襽煾Ozp(鶍8蝫q)rF咬摾`LRm 马邻0靠繇L, +~eq骚D'腮躲8`8跻4祽+騶嫋'a雉v踊=He +Sl29酏i鹶謇#aT岟锳; p鋵`g齴歜v(#痋z)W艷9蹁璑慅酏O蒌F~`@ 熁滕s鼜瑽Tn9?Z泇?忶寭籷H黠鵾tG"邖|(1餈v鐎3鷡 ?q 扊}}i3蟔Q碜 +錜筶8橼嶯葚龄d鷙齤L8懫鼂覾(庉峡镠粚撬帪搐辩9髑^ZW< :襚嶡鳡bzv8湵=1赛)鸽懶酯_簋ES(9<{qIs廮nFO=zN堆膪S壣頜*溹渮糲篚H籐LV蜰M/!b)GAA#$B倉zjG聻>7aHG +,5.偝髑郒绺╟pz鐘xe曫22G鬆枆卨#q壬蝱c歐哷wAT{|葕.Fr9*bA>n2^剘c3霷祸鏽?\U尦嗡"F;9BJ=赫笵帴#,瀺屻烰M爆狵醽aw?3焃*--m虝@L/%A邕<+涗噥龙P捤覚梻3銕晶0>殆# ;翴:.釽p鑮篟vv 3!7\;=隣vfp錦寕紆酎i檇E啓坄達~?q4Rrp<边*zt籀M(琫O讕橂Of!C躮峎 胻oO~0熚PQ兪鲲摐蕽司 +6\bll+  Fp>a绪9KF7s晌6寀黛?.0摀⺷碼2巀8恈nOb:幖v"實絩@玳傽璦伲2F#E覇P靣釖=~敻H麩;唜'宼Z墬湾T偑6亐W痮h琼$+89 c嬑X耒|畇銖蕢尜.莓]A缈Vc;$Gv*$尗>c伬齫R輱i渔躎浱u#薙潬d湈軠霁p爢/:櫤湝秞具J!Q匪攩弻宑8緯虣Y[2 澻t鲭歏保3藏d5元# qW|巽橔P守晌曩鋨4劀溿 兝?琥 +'F圬芝繼>EdV+愮s梖耫d餏>脑R<筜旝1丬榆rY寀9)乨蒮.噶>?酅顬鍒e煗[摯庘 蕃汚 覜b僺`镑醛q上5FGD噑s荏5VY轒蔅m介]苎F.,観昺*佘吏鳋t綼6髴落屈鶸`$2~砟x沏憜'zU腞 f沏*憚扐窅T{鋤Q=物飛<訅'襽AFwd~H呋sc蹫右 +6O9=鬅笤域儦L惪t8鎼钇砝lX骼虰镥HF蜦陪撐z釧彌1=e]J錋JL篙籜佖+筕?( +闲{S饫v ''滖郗U轞鱰s膣T鯼;w'郯颮崶+pA满c鶵盥犱搷絸枇b ^縅j挳∩9钳J2V=I闇}?香Q-純z5`:9留4岓覞 +M榙s髄=9?*E8巯8┇亞󏶌2z +, +@[=:z湂L +[┼宼鶷蚴顎OTHd 輘郫覒j餇膐<磉衺i媍w熃+綆泺~#唠M贗I<}/璉~c奷 閭n聶硂S2◤>腸鶐*6}舝zw=G_覙&"#0莑屢m=q且銚戦覒詥齢皊ka@Q揉鋡猗,3窑nUrA峥:'&8∏z鹎殞d缫()妠O)=vv<徫佒侴粠湯憮趽┼$乀偫9禝慠*怃3暺O字徧P怇愢憰廃4Q㩳i'R娻Ku齤h譲`c国鐨7U宐 l狞谩蜲觞緯:澣x#濿4g!q紲<痋S&*琹7*悌陎黬GU鶍颔p罏1舁'm,]w'A濞湖 +=舚継煲as們#+`1V菘栚 + #~^荚J堊坷世2[;x甾屓1驙9 |脺c3熓倸+<`(鴄*甇8齇_鏚*嵅8 荲#-;,'9踿9=敬驈#韾@6撚渞@鼄}h槶+ 1詿R?J奀*B> MJR?+/1x磊Ac +#qr亰俋搧苰鳡+对#v9 鶶<窪R踩Ob;泳g|<f毾悿`籧帢圄燴,s /%Xc歝!-!`け,G==轶yf3冠喋雰郫n磶 \┤欠j釳ス 8H鐬加$!籡癐領眸熺RF翪吠热ㄤ;J囔xPw? ob捡瘱Z8r⿺ <z飱缙逭9 Nq轭s烏z3繭!A?Zf怅 '摃 懺u+9nu觺闋(抴g'酹砨0"H浂玬懝蹉辙琺@轶濌浌譅籄,y +W #nq9区觷免詜鋘嵥N }絽Y;Q&~蠶癟 缅鑯:T腵 陸z#烗)p?Z^汩G@($9髑覔J_^煗熷@G7蟒T锼鵕:勏c臃狜C済譀羖c芬湢 n鰻bgO]&W9/ 亖荺鏅杗q躎瓵N焪評ㄣ潳p{扆i熀\橅<抺@轜 沱疦Ly;Xc|絟涳\佚*-$Dg8線)O9\筶饃? 偦J揁~V叁険J鋏灌庝憢黊囿)r~\9=?5折懫x9鼇%pw甍碛3w夓 lZv褵P建.N蠿罚d a*3苮=龟~窗嗖錐n9鶸:詑?>zSJ涫\F菽8A嶲溏焇;舀~~GV儒_<瀥硪杊貕# 喃`0_畱痒伇塴鍎#秖乛鉝Z蜛1邘'RyP:`.NOc宻艶s訛*tEXS昡酃詿蝷eトQ摀巗H8RH<{S⿴轍:纭f r-炜98h髞灉TBB>n㈨蟖颧曑籉Q駬冿⺻鏆蔑P沽l咦屧+H奲p喱}r历耶|濜fg倗儫闉該蚧壼;笙Q廫c5#寘F1W 鏸'5%逥,Q呠褉 )溏緕齤d+-尡б堽D9,OSH3 2纐吱苫皳~鈉p2F*崟喡w8>礶夅P)^颣6 `R*梧9胮0r91阨^=孨A寊z}jk#ㄉV晴U婀茻1#c糟<潙qr暚X+=弉*崢p狦鄃!堎聳?.訏{3S p094'X矚$$霚岦荇├(帱:鸘m缥蜙8藄⺻ 鵣m膢攢3鶷&蓪^a'?椧湊猺 '辊鏅蕗抂<棱Q杠8狥N!ㄎT羟)蝌F:鉃Fq4у}:d蒈cF飳/QM0蓱朽绛=fTm$濵'濳Oo橹枀^D,鱂3灴狋.BH轻4霑3*'鶝秨F婽"恦髌?镾[冩衾辖Booo日5\(髋S}ャ 抷镩]D镊=C氅銿d鐟拁o狱*1(0媀R9閹欓拆9= N瓼é8煚KYn;1i犾UH\ddz).,翮证=F) u徘^翪駿=q'=(B晿 s鞷 n绉錛嘵 <⺶蒬  鄿sQ+俩 菧穰(;f櫄l崗闪鷬Dnz訚@\俼邐lc襄H緜d'雗躕渵]J#槢{拽O\U#)-,l;嬺>a邹慜#驄E&Wh郂Р$#肢捐甌燖B澷{~=9觥剈V癐b蔏p':灊3Sv崩b_繝2k>闞棴煖7zt阕犗螳$`.笕' 28橛欼4&怘a+G蕸諌d焣滓澕D粵{(& :c殑3$*哫厪g态0威{蓄!曒H`J崩08蹁鹺 +w#棥,b'"2侲 臰#'*m蜰銎r囎鼌A4綵`駌>F)E貺U趕湇琀螥~儵㈣9[W&B蜵.B嵜n>钎 W1%]7ds偧c]U晻J0?(!盖>建啬|苨磡F2澦888,6悇狛抚稠e`剟; 8鋨8飵緮汧N衱$佊>;蠾MEs紏菅 n齩蕭R"埑;匧>床*0誑p缬?微慣9悈蟬庄智s@$2!Q襉%繄u'瘐獬嗤蝗弾H=漓:廧82)h0溏x菖R屗*鍾Wsl,O<蹴餁皖uS鴏賔P6`'齭)-乇YD欄虐熷臝 嘾i玉鱊缮19?蟌畣KI 稵/3v鯸焥鳸尤_\s蚎遑尌X88@繇W鲰$1肴辋苿*泹鵊=1毪S4僿z灍Z)慳穓X觴8 Mfgl渵dR艼请另鞮Z豶犃萦蓿犱):紲Rc'溞宻屼 +\尀:R6妚0{鳏[蜬p9ɡ髲~"昉U鄙┈K溧h`@楏X{ 崭 巭_N魞h敔8<裝y蘼D轠=i$墮荖涝9閫z筠=9a芞s;曋"脛骼鵕y.r2鵊Z瑄鋬有b熥倆+潰揃穴b;{*A胓瓜o纚哲阊w~y猆;仮肧惧O>2潺3NPA BpF3熺L8\0C溒1螦熷Rka藪8;咰:斳 gq蛆朐韺.)2Ш?粡)転[(厜傭S啼纒宒NU8霭8娠臊)>m娜w0S朴A楞4{+E#籤渀$壛9V'v莮齮愬Ia撨隝磭岣f9錜*bE>X\g恴uzTr7n`z s鶶蝬*)[愛T漶迁4贉w蟮癈寵欠сLC繾褧懶g:=汰侹a睠t=5婆>2@薫栂b D琛鈮 $褡>旪濡u#鍝犌诉?J\睉Q]艀`筼^3吁,禠仏oS幖g装Jo工豙錦!=;笞4*#S崨 +A鐬!察懮羧矟gb8Q郫櫁愘;_c2)%{鳘r\J,Z2磊zs爪y 9轁赩U橖9颕;2焫樂$8鸀酒セ浧*>cUw濸|览報 u閷饄>繗&F1佋c?嘋昨騂;鉈軅v镩0?湟)x搇ddg1雽}jMR哺魷)B k}肯絅鬆嵍鉺|琗zt鉅尯荒铑d 羿赧离请K1i"埉\p$)暇E;掆$5bv7椀褡?忬W虖sne系9唕P潃憺 鞮突禺]]G掬u霝栅沋r冇瑬tiLe 檑絔;a 創竷翮謭矮m姩鶊蒤*6G粟7梧5#錺v>魁j珯(XF>爗=科槈榰身妔2g3与飵槰遭B厵r 饅{鄪揈胺1P怘n)笔\[h2zi?z抛 v$寣蹶uUE鄬扥齩視5銳)狼9<儚玸7藔pj攎捣厀岭哂耥Vdq8濑\U-&结哺(粆0Q8洙詘俜倇@=y,j 30w鷑愎4I+<嵡溷?Jㄇ鞲-蝬謦/*;o&M泩1nOS橥R3梄譲瓈]骨N:s鵕l簍賜G\#u覝巸幅9▎砀滠*梧)8闛ozH,\89齵鸔r筣&*$岥鎰nps邔4@U*晖铅y䴘)媩蕉溧鈧[*觻 觽v蔺yㄤq滅jdn上;2G|};牳菩l詾dQ)銝f槵熔詂 TrP実#皎錅蔕头=嚗A$滱8^渨╨0d兯S晀y`L⺌)邪Y楪潈佅溏霚缈z"I$R豠減1郫疛"堸鞘;睘荆7:5mY卛z账v%I#鋡睨毻0镢;}Nx齅[磻R輭`9 鳊~昳阺T嚮"K!8蒴碲爂妻=q觞:B䏝萕+ 巗鴠*3鲉 枪 aGl熃\'+mv9壤'☆Ad鋞q?*H┗ H X湌N蟾4A釔|軬M[顐1烒~t峲!rA嚆帣銼"稀"6鈊抶銕滛颒7爫枋眼s炪螃偹 u -$宑p簬灴缵8c鱔s渃>鼳爒'U嶶1磍┗ 畓鷤9P椿鸣汼iP躣铬泉艱嶱鶋=逎扩槻箮5鐠@l騈3懳d4#1圚8-苶簙f惣6杄M褠遏<~旚q鍏愪.摐9=y7!~ep﹍憸2B"2管rNpq=uu"P$0B:~8<幽T泍任q?\{P售\lB勻3钱zu!祯|輖拎疧篪謅蝼鶇X腂癛>f=0;z乐儰rC虂颇襞P-蹭H$(<懊$#犳E.ヨ资l牢'癀籈1缉!尗g#佦? +傄` 岯便趕炚:怳Y悓渽a漱U[q曎0;=稀黻j%纁Y饜轛;H1贠=?J喘3"PA徝'轷ㄉ钳'榊w"秘I蟌r湬譅輶GRzJ甌y鶴q笘$R}鞈闅b忀懟撔銡埶戲($I<&$優媯婯RN ?J m#鶶$\/^@1誉l9>B泺锥q36銕濋$續炠荶N蒇}(洆翤s蟶也#?\蹶s 廻如嵻鐘曶29g徥烠68'抸(胐捈嶧9#8亲勡C軇8;嫊巄q 勹i 潱: ~ IQ磵膹御S!@蜫巕4B恦3香M鵞<帟&:|=Fy<褙齢)nOs仧螡露T綦佦螗;蟄热=q镸顠繂1徧T∠曚鋾<徸upz更揑繯捈u鑨> +渃21 韽/綆w6濦:~灧堊j##$Gl吚.2寥s暺?阶<䲠譞阚$銗u=璏侬,Y眾5w恴S縱亓 彈擄献5B,苹bp蘊L}j占瑇飵99痓 c$ 馯鎐捓偸G$悒﹦懜嵴唓料>彉 }'~斮渢cj剖|6玱O蕸"`苸革邚錘bF硖蕘嶩S腼劢#|莞沅#-袩仍!楨6孉礜IA冭溞z函攲?^?JlQ?晙F~\v=:v#廫T莚bF炘輭&香 0c駣婂K j壝澢玽95f0纜犁酢咐VT,逎{毇)Y橑曎侗B;3蝽鎟3镽E6淫悓7 凱t瓜錜芷龄ER埼2Bgv瞌>紾鉈皰24枧 0npFp9繇Y跾珰馰)8吚V脤鋑儫)#崚Bp02zJYH赬﨤 7蓽米聆P"◥籸 V!99烠H逊k帒!薿.0I 呰ps撚е4婎姩H鵨nwf蒹) ?玅矮N祁s蚎簎9]0b鼘u飨煃QV!蔕捉i-嫁Jy[w38睑㑳:jYXp搄潱,>交鷓}i痵+脕貝i.&d朌~ r9轘彉烗X駥彙蚒蘐VDq(WG^溣X鲟 黸苢 +c 鍍q亸菉嗢艶v3.=鬄啀劉ぱRp憄P=OG箅O!bQ.灓d廸銓Q) +D筨2N駧L9'泞8澵w ;~=jа偓 +秨q撠阚鴨撒nW +Ct髑讖蕭fv孒c /$笙4n蟪p}?/錊n!2s>疥X +B90憔*%? 捓熂q擄HmT +絪蟴f-_B幂?!3骱訢0n N=G鏠漆s驉Nx4$邻I邠裵P巢%扏U骨Z∩c礕N鐘<≯9稔zR9bXc8籁se #q26==})清q兗骍鉈滹R =C 岕:淔=0鵑A9鄘v!J深Q R鍃Tc是?齍,1)!&<憫薲鳇4诜fN>'=猟垕波摹寪d跸裤T` me8 :R&x`r7w;"o趚'89潴与N9似ス_Ё%,0瓼= K鎺H膝QiH?簓镃0hF煦+塾.O掣&鬁韅堲齄斚3鏦懯傸紎汶嶵徃>~>9蟡H萣 朸=鎮舟%20rI蹜済蝯~)&gv憯&;`:黼塽鸣`d s哂Л+**獉蕽>W8黶8d窗鳠沺 晢H=x离3 bH9<仺IIW$ q输绨=闐 + $偧呰 +d磻2#%$6巧'N3烗)*L侼H!旔黹蚔g&-$犎 汫$亖3A; 过趱酙$:` 2嘰d:P5嘎孽溏v=醛栂Ldg峰Q诂Z栜t鏸t辋:H'饢馑-澺A腚N熃l轱芝;T鋚py⺷望肖*{埁w杗:筦QU忱 銖笸"嵩瑏橳pA`褙裕缵q潳嵤(霨荔搮g闈眲S3g+7萜頪笈G9M囂籄鳅P$铒b迨|?9=簐=(IA峊0岪~ b0X 3Cc,6T鐜紒愚懃悪,)~撊<銖左!倕'矾UV!髼览l3跒_jS搧宍c胂秇Lr嶔.¬ [齣 鱮q髚斬#!丄驆加r拭r噶!Uzc唑叺5竑$悐y蟴 )(N〗A㑳vL(鲜1 暰镙L趱煣隦循9>I>Qb纒淬蝚7萇槼S>紝T綱訿v鉮鷝UX橌悿s1鞩}H. q盥鞾u蹻1烲筠%紑c +s籷$┫A颬鶔柔VB鹥搧秕,V罾I2&T '嶯:囫䏝T顃?uj舎 才凃邦=3;T馜檇夽0 + <嵾堼(A4愷pz泷[s[#湳=$e)逨6l)S蠕 翥尊︰X8/媝躸$0F囧 禾H扞9=i寊靀蟶獞尀紆橐昏y"-傐~閨'媵o0P:段夲銼塄v#h*6甋8=癸U疃`mE*m*:c$帶JL需Yn邸^x9|姒m瀒&鴰qSLdeX妽#~腍< '岟'wr!#恲S%8##mQ荍蠚頱辒r錪 <騀;q鷼m貓Ss馗X鶃\擈窭=裹;剰rJd\o蛄<9k9镧/0{z/,3脱哈.=F?:屯Q-郾u貶!e_亜悃$殚B 尸NUp湨F楙軺骏K皰任TN崛wnl檑K .X 鄬葋漈1r@: pJ0圦 溧撛};vl猉*寽鄎c拽酦釷OR赲,螆瘡棞c氵5.稌贀$渃U!彈呠s灴椀L鏊禉9羿w鷲 +皅倆#篢@5$pO?O9o橓懚Ns:q:)塧 +琙Lp狥3昱4>Bq袨;S鎑(絣^)條 潼脿弦&@dTg!G帑u鳜糵M鏿e$r* 午8瑁玾缵巃:H糪, +[# +l橌J邟~]絨垸誷r%H鋎9a敧苿鲹<恵淪< v(寪 * 鉷鋜3斍?R巔O^绰 e8,B捈慖欵X 罆M〕儞渃自釉K( 軥~*睱獱Y9荶歠s#g撻Bb擼膯8涗!)錊8锴0M#b爎w]*++^I&ざo0rz枝槯珬勀旴漉臚 :71C2肓锵簸X蔃*}O#疭UsU袗筫Aps堼i!憢硓9郼唠熓浟?6D1嚸偶卬2@$u戏鉌⒂q绩 +I ;T柱Y琜?睫渀P氪捔wt鄳詞6鮌丬I蒭鋑< +i蕎ZC堢kaI9$c?;所Ns狼0 畢ZVa俯$躿v汶O屒寲簜~:猕欧溉錞0纍s呺iw+L恧'#讵T溹m萊:鐬{諗鶐H髪KMF 汣Uzg?齤嶺)Ge\78萦5 X宲0,8<谢>鰍迾搃暺QI縱W犽8ㄋ(!3膏搞弉祋 +I鐝\< nb9謦b斞Qe褕$┼钇@跹 +XG∏j熕TV蓌k#D遐[<8鋈#D觗稒e 滘O^蕨颍ts蚂蹛g畓H≧ $猗驚潎榿萈軥献驙沒1K +[z sSM潈霶 咊睑磞鋘趑昗父2 羄x鳏4宒蕙鱜b輹%v6f蓼8l=O1 礨溷腚蟖覛Q Сd:s清Cc孯衴&谑欝 `帥s辇pi6帖 㧏O989 谯叐0 ++灨遥奆EV1+悆 8篱螻A?髹<{U凮鋹[βrs灖岏O1y2赤舙sL)1M)! 仦F鷬﹀乊;Wqz w"澮芟朚《0QUs邞隡3瘲6 倂瑝'歡虁6顑绉&*鋷缫誥]d1` 磥呺*櫺H嵐>0辋qY亭凗40iF俿瀤=縅Nf懨雜g + d9S怬R?N茊締9#鄮觜U%-鐋柮OVgV 1y=肯ǎ淥栧霛Ed@7;q献殸Y薽 x#y老蚘褟0 Bx2q鞮朡8赲p*粫挻葌滎I溶Nv鋼请鳴 蹐a屌J|縰L崈/9脒昨ㄢ,.8旾,}蒂EH<0+o$ ,#¬#鎂~渰焥╟冰錢詄溿痊e.O#搩戟穠b鏁詁7<y蓛籲z灆猸0爂 +鄎Q嫟"瞼NYG┝荿潽o曚弎S胓伻:U0jf恊^}?疲掅!O薷V$8蟐+"I筸|Ж艷={9$1堇鋡球k輾ㄆw(d8GZǚ覨 +爜幗?>8磥$l(蜷株I贗=}ù樭 72歩澺辩岿A鋯R '{株诶#滙镺X Bp(鋋鯓瓚蛡c1 `9社御T盇39;y9V=Z3绳惐喃9萱历q佖姒I屪c?<{ps稀渊汮3b嶥\ +r莍千S鮏图2矑у錇癍5^@2透醶'镴骺+兓崵c8=i颌Y发+蹞祒L>礪u<汵鎈1閂V鉎.@^苳`;*&⒀阮 f輧镉れ8*嶊甒vQ綜dg5秽zdv$5- 7{詏p Q页l顚{;に8厢O崒)<8餆鐘塒`pH逑=匟 灩稔G镠D奭T0 抷?溆> +I荙DDH葲c#渷顷(塡l驗;>絡屫謋 +(歌z驢U u鐾(+;x=)z傝它Z9穋;_ё鶌.绋=1R磎 H輲熺琘橄;釜銙苶絟砫蛊*韾*霽 dq冴8玅蕉D-蹒姣@1*$嗕撚;鹰(9Am` /忽黯5嶪V嫜"簠L拾J虩tc宼缍+3P簴璪R;%嘢(灶蓓6HK?籹佅S赢千N魱犣Z8O轒&sc滅镻蒴7晄絖B洬<媙v蔽H鐭犵,)鍢鋆裷Z.'瀡F(B傄g倊g灴3齮dd敧筰a'+終m狼Lz鄜敘峧薲!(鋲I%ZM營..{s$1 +@寕 +.&濪徧Kw趓w#h''諔贤'$硻鍓$ "U慉P犱髱澓*h﨎谤巚ez偯灵X踠DBe!6丷q摶>緼跒fgO2H褸 桿羂倆`z*枂rn]H|磻諩%h潦ㄜW懥 锥1OH杛q$$採8鋝8锿YB 摒槑袠 樕霊9鉂n|藅t/|膱*NON3蝧⺻v%詉蚵F幛?2~RW圭庍="亓wC銕橛擗隢歒H寢斧0鐚瀪優滬T1A',頑O菻>亖䲠zj+MHF稚 郄Q<谣捜U 2 $嵕^燾燅=*>T煾络怤A镒跔1,$"雸绍yg撾娠慗萸戊蹻=S*#dr釉R龤诒瓾$騱s肫=狶n駯p +1,胷n98另齣皤J岎琾+1轕浞^H荿熺,勭+nB饿r@ 埻'責痵U鋮d #厬貑8圮8昲#頦鎸q寧潽ケ墷Wy0竒躽苻球iI]斠匀騽*p繂,猥(989树舓.鬋娇t杠櫱Q岞?佄*dRm葃漞蟥$е婢偾s!妝g K 悱O  +桤b鄝OL"T郏糶嶃絵璚$`茷j0(9桱V眧蔏F:[䙌憱Vc穙Py衫砬隑[dPv2:zv镪)鰎!亘e +'<㑳*"\ 綿渻懮切廟?JvD股h萀v霣(98*;z笤`;垿Rp鍁恴s躶袔誶4|Ⅸqy娍)0=;`S>娘2$蓽!G 戻v!T]Y$W践L多m=^*EG筆9聨靬闇馳>蓃蓂8 ? 姝Az<矐橑F嬻(8`:箅MK3е:朰#Y2>X鋖1鐲/L~籀勐囃Y7戄Ys兾F{徯鋲\F籇k磦{n藲勡2筛潽嵗茾AL驟 +h,瞕萍玻怇矾兺匞苫東鷝*樇搚R邥b佊o\>" NT6 焜.?f鰁鰸B朥c髄#犎媳镸扝|1虪7蘲@#幖麕鯕 膭'?塈忒镚抆(蘦X#x$酎虀+│$PDe怤襂鳊r1虲 詏,$C濌0y软康Q屇敦1##畑翡~t鹒U%10pX鸴済虀6衍皁 +車岮嶡n3I%肷疾啤]Jd搾C.絡hT蠲p0O=L猓凞A︹ 柠c耵黶J欹om 跎y沿2惘=岹5章昚儌響嗎圁隨誚x'捈r8眙琦Sw:籩pS鎁'v@9ZZ枖z [!鞘$躹<酏 J祉蚬\@<齍^4;'h=s=诡)褽蓟2 *裎1擊i_BU嬏箄撳fb09#"晐 ?u餒1渟轻鶷腣BI! r:OP6瞧郥2q$t y柺jq'8献皈F6蔉釗嵷8猭Gw尪潿0:s邷淨极W穹|聺萷觬 憣 鴚膪T $tQ捘r盖t0Q%^埅8'呴隙A猞Y鋞徧ET瀲6zr=?7糢 +endstream +endobj +121 0 obj +<< +/Length 72 +/Filter/FlateDecode +/Name/Im12 +/Type/XObject +/Subtype/Form +/BBox[0 0 2384 3370] +/FormType 1 +/Matrix[1 0 0 1 -83 -36] +/Resources<< +/ProcSet[/PDF/ImageC] +/XObject 122 0 R +>> +>> +stream +x+T032472T0AdNr.W檳瀰9X镭啬R显\霖蘌县繰列訪宪?萛%+" +endstream +endobj +122 0 obj +<< +/R7 123 0 R +>> +endobj +123 0 obj +<< +/Subtype/Image +/ColorSpace/DeviceRGB +/Width 510 +/Height 916 +/BitsPerComponent 8 +/Filter/DCTDecode +/Length 32717 +>> +stream +AdobedC +  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY" + }!1AQa"q2亼#B绷R佯$3br +%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz儎厗噲墛挀敃枟槞殺¥ウЖ┆渤吹斗腹郝媚牌侨墒矣哉肿刭卺忏溴骁栝犟蝮趱鲼 + w!1AQaq"2B憽绷 #3Rbr +$4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz們剠唶垑姃摂晼棙櫄ⅲぅΗī炒刀犯购旅呐魄壬室釉罩棕仝忏溴骁栝牝篝貊鼬 ?魵( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +(+]$L鶹a#=+N饝憣d毟捛H貺f珵打佴瀓 N1E1 K奐z岏@ ㏄惔%"瑒V丷賗 徶惼3OT` +U'p权,i尭4塱!9=*仄8渊OzWe3蕨H旻(EPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPI憸Tm*帟O欂远4婽RR((((傝 瑔l6瓄 蛭M\H悓4螖颥i暍!擲ネ +2j掳酹珦(7Z哛,n9$鏄6S<-蛟擽嶡y〥TUd 宐欝湟邦k+84辍y⿻齅H4QEQEQEQEQEQEQEQEQEQEQEQEQESI7%攆熂bE0H #H搳@sMzk渟殜s僐P汢紃矒熄,鸲v=馱鎌F3U8;壁∨6婻袙 1癟U諘Z盷萳S1靕^[骪芝藖S,奊Z憭QU锑>;S减 í驷A隢/Z殜圠嚱B鰼,+嵒+灴Zひ .)颾sU玌塣L姅Q姠F覅'=W滝︰篱E莃荶PG=葉儦E壪E&夬1傧8c礻Z査Hj+)q歳莵Aw└'瑽鋼臠I>舄ld鄡V}銚B聽eN(劂迵j(EPEPEPEPEPEPEPEPEPEPEPEP联移蕆紛礖zs@U姷[Ps妸H:7c4檷:T2蒘萺qU%R)񄱵殒l馮仨40姣敍朘愒wfi4r吽f\穁咷绛R缚娤m荇括U璯p侌鐮5湚SH)付\c揓嚍4g灥綄n\郣{&sK9婱8隞砫誃sOS苃薲(蘩Ue摎y#+錇a9_#璅N;垣跷h祬筟揜 '$qN(A*MS$BM@S#礘$躳EK/s殯貃曵6撗Mj+*AK榲E8臵@輕i淼NJ妐梤衽 躿彋B9虭\1H\ㄍ+藶Zc詍{躣悱^ )l2皩9rN1V @鳐X麦迱J3N +( +( +( +( +( +( +( +( +(杸 +( +))1@(* w鮞毷R扚 P [wz,楀隩8#殼&q'歿H鏍q艵A$紴*彪Ro1厚T坆iwMⅷ/蛰6褢慣t檃GH鷃S爹6i蹋鴰*噯蕿佻2.vgEEVQ@j3(iwLS襶#彦 4z訢慇'8鐟LB蘹玅穊捁樴鋬S!=hp楞nhUz{R亣^j"H鉁/J墹 (HL_0冎熀G鴆F姽聨)64奞8港妼虐綦KF2黶+幍.Ef艬毘厧GJVj奾4闌QEQEQEQEQEQI@攆暲Z)(i(&i\イ妛hあ媭碦QE繸)(($拳R+&廪`錏\w&D~`蹆P1籀鎶制w +) (s%&(侘}殕狱B犠%髐玲x-B& 與'觀橘wElf聴僆E(b丗)񍔇;訿f淣8<隦( T`捀荬+m=4伬颩(玫*謥栤U(p5EPe哅H.茑T/氋 R3鐞)伔=b绛 +I .╆抷V烸 gs!{唖軗N窅 z05剸>*伒H隲完t臲9P}E-Ed㧐-﹫畢睂( 敶鼰JM琈 oJv驢昘(虰I'揓1E啓a2g`qJ敩R揙Q撏D丅菶))C楞謹蛽恓竘酽撻J羠罁嫔`縲D撾F(1i nM|Z 4嵘筦萖t猡(N偒$阋!=閄w%IA<;<9;稍伾5"5S跷t岥翳摗"<脀^k^"顚g笖QKT@RR掩 +( 褮((c隡庝觟sI@-憡o4Q@倻=)(4 \by>匆sH 0q溞 f檽I,捩IE0拪(あ+溫(奐(h拪JW4SM 4SsFi卵I歀1i3A4櫎; 歀襌asFi耿4RRf歕觭E8p4罭 彔AJ):5`靡磁Es2禁U刨捳,癐S缓幬,瓈:{珠芷Z祷悥轗9Y棒甼,佘\殹S]荽珏蔼,\湒?漜7viMis{9釻惘55|7峛)oSA:8%I!- vH矪+s^c 媚纼戣k梆瞽奰r灆珒"J梃ǎ箞Ph +( 袳QE磾Q@RR袸@ IER袳敶PEPGEW1窺E%-擱 I欱iぱq;4櫐鎿4;&歁7u!jC办褮fh3Q睿ua浐屝矷歩jM鶭nh!嬛妌h軱C矹 34犘砄4鄅鉁 0S2X3IK@剳E )P4m隴gj!sZA%ty-勧'蕂^諕6:|%u~1$[目Z洵作g隓帧I9盯鋳凬む*[|qRi}K閛8 蜯v贔琁,脇J漪釅"鷬鬳麏=匽5qTvZR裑釷E-%RR袳QE%-PEPEPEPEPEPE-%tTf歁&k掔E噁層3Fh竂~i ね5殎覭SY﹨?u2砸!4叒-詅$<襢$軰孩 sF陱4範鎮卅f悮~7Ty4騢軲!僋 H 8p4(4鄇%5 鏃4贐Fi扝 # q趣 1X峒'5腄0囯]讖蜴鐨狎憤瑂籀0?J +嶕u7Cc>簇爝9VV茟}K?脞鷬!鱐c爱箞麭tJ覚56 +(4VEPEPE-擱袬敶 ))i(QKE%-PR袸@碢EnHM4欽:噁4绦Z-Q揌Z楳8殞 揑歩4勑矷歯i3@Fi&iAǔK簮僈殝u&數&i益)耿3IE;4功倚仹L酅-L啝Z(`3I癵4犚妯伣)琋臃痡yㄘ鈥<勰揰桐齛綌W7q捗妉P貓"懸揳"て)jM囄巖Mz殫 f媟翢肸ss訵’躝牠i*l碤[釸袳%-PEPQKEQ@(ア(QGjJZ( +(5搔揗-M&肝冰︻&M74芤@ +M4欱i範&4勔f4RRSsFi碢鏃4贘~h74@.i梗4煊仺閔 .h罭x +h)聙 F)嘤殠a1隢蚏諶)4贃i5+鱽伢]驱+n洗映(躒懗TvbK餗9m鞅鈫򪏉|賭薌慗.#枋薢W彞D龉miAm,"T`銈 z 舚 +糔q诟1另婋4材;儙薮︴&z(奪()h +(敶Q@Q@ E-擱襊E-擱袬 E-QE糓4)等u奙う揌M斃 !4Ph))i(ぅ敂弗7螗ヅ乙鈼 +\P礌(燬傂N-8 +@T)燬謤夿isLbRD悳Q`6 +~酙恏癨M礌R袬J))i拪p4攩榾瀒奱pi&罍覭SX嘣L獺喦吃l4謏a5i仂3M卹E i鎊聽4&q殖51╔2鮾暙びM4勢+箥鄳J8 說j敉SG对愶P馋a\>薄躨!=╭)K1櫣鈥をjU垶黬t懲A9?鰆尬zS秢RXcW蘞帞魻 +Xa趷躑'杏L-炂槵W R.O熶抭夫摸秢a=冶')慝0t}.{樵*潤瀚协郖kt +?:tQEl5E焃62滐奪*屄(燽QKF(RR袻4R袬 Aア詳碦ぅ奪((ア蜕俲秈+>Ti蘕驧uW9婤n茢I颱iAナ畔3奙囫毆奭艄G蘕龋p_}桢b衸簸2猥o簸,hb袛S阵Tr}jT| +F敯TM4菒烏*-) 糢/0d&〡瀊f殺辳殞焭2j擨.祚LoznM4+%S1@(QE2HZJ锐 %棎UY溟炥酰uuB历z)p騗Ne旘zJ橨萰.L6醳9-賮*臻" 荢J幩D鵄腼X\拗3<T~Y隯>X豋漨o釘0 ,伻>韍薶-GjHRRJ$e迁\贅ˋ 奡璅翌澐yL* 堝晣訰胳袸7q]謰~范j"\x垜慥l苪,渳彡*+-Q躋QZ\%砗蝯庘佤S[虮擳濻t襩n槯qY將淭帰挐敶R擰E +)hQE()h(イQE>(1)h +ZJ((イ4啂魋@4工瀭恓&h蚅栁猡R鈼2+*襏羆葚S捗巇>R卛 闍mK9L 靑Dlz)瓉恚蠷*2R諫1V#=\政(ヌ莇U6Q戕6'?{娍IE靥筸*筊:娳u 9內ΔK墯台厴毬瀡箰砱o鸠j灾軥H#昵-衄is崼蕈s:q耆痬拍垍晎Um戾#鳜sS矧堏9`捗迓娖燧+堚弳鶳c劀俆*X,x峐6躸IH爉旪諺虵,7迉W谠L騗zn]厬R;viI(甥炸DV褋垲:殏?06 洒鑉褍8)"38'钌跬U~7$$=*F墧Fф,)茮1~闛兄f森1蓵a)谳;{R_路1蔇嬔匯d个)iWs剀墎S鲾5賉攮耼A嗩Ω晜h[%w}*黽途7僕(钞=垽$5塱獱!口巴鋺XC[&炂M4#L +垚O晽)埻塃P ZJ( +( +(颣@ EPEPEP1訯E +(訰'牘Vn倳裓瑔姸禠z歺摈ヌ囀R澏%M<[K榡%雯j跕3^跊幠+n-H"^)伽邇Hc讕1R +兾殁@zP2Z*?0w2寀燚工'姰d螩Q橦阧爱[軰窾?;r撴{[塙# +妘uB jr违 滄幋QZ磾((JZ(挅(敶P!(ア亽yg8DO +H猡㈠5`鐡R%跋'",T觿茡刚媖( +慗3u燣s慡a芤礗nz檉趣2jBqL躉J92屸澑謽蓄鎰埊zF8ㄋf琹<曤琍wぼg灑5鵢斣痩H棱6/C歫 侂Arz原忈燚膖&摊揙"珿lOQS箚鏋公&坻<[9ヌ;U巣b5!禨芤}檥M!抈M1绁=S迱毨>j豓y!鶹柈閅"O牞骞q丨猚藝*`陥8鶑P=ia疾返7蜨y抴臟,惉抲酴V 例i3:e駸J淩# &~:獨|关ppqT臈 衙}EHiz6J$!ehA挨2徑?CH窟GS)d!儅鈟臠CI;涅1馋鞶)荕娄?謥;厖3B2疟苡盦鵵帓g隟檱ej@<1L骕}鑿酧嶢$垛zb 步y褞辅Z偾j霷袖q辕EJ">凷Y +濫U6c(ヅ(Bh脯6姌[Hz-1鉪<9愳芉E-1XJ(Q@聤((4QU娼价彚)5Gc=7R(4ね稗ⅳRjn013巶aOjiJ岻虸撻H棤▊zR剋=1S$g+厔/爖R琡sO H礃ヅ +ZLREPEPRN( +:LQKEQEQEQEd隤nT1+鋷礧s譇⿵玟Xk)&%蠷*P輂イ{豱=>皱n/* E貇錖:TP榯1瞹肬j虦!,kA獗礛]鄐嘨+僨罖G*)1舢Y5圬.翫畣肞庼肓)5b枼尶vG;谈O =:懞P"雪=q*諃閖曜閂赳䲠>淯靗R袳ns墎)稶(礀4癇r9PS^5q 予 +嬉"zTod潽3臼ゃ$Tol扇`kS惃a娙芼"挼Z6猈vgH trj轨.B#珫 z﹕+-砝辥筛箳^er}AP#H衛諢R.27稪细$莏-Q轔пM%U肠I`4亯胂謧}镕阬伢蠵娔臬綳(A閉<腵vャ8臲昆吏2SR収Q@碢EPEPEPEPEPEPEPEPEPEPf炳?璥窟5滑}仉 罕攱壪氘s岎Y袔跴絩k7\暷檂:枝-5,竘腿嚾*a尧忣 +攖牎拀肞T螨肞T!暼$c寀6闡鸇湏髐_鮩5绯7/凕F;&蕬訴唫孢5+`幷メ餯&塴i 闻薐)6dR稪.渠瓇昽O锧鸘D閂粞洔 +倒2贈QEn`QEQERS].罣8裏:泶'啓抠轾諩谓u(! +?黉9&t筝An34獰SYW>!8穽>\耸Y1,枪溆 宻诔u;F噐蹀硍9;(枯弫TU`X茪Nz覱LVnM浧 .菐倫拀3侊@)1困5隣=1C豩i隢8镆憐鎮媒'豜I婍<)h +( +( +( +( +( +( +( +( +( +( +( +(2祪蘡刂陗档珶蕨嬡諶芨湩堷恾kcA烙侵秉Fxz氋袉4斛匀竘透b}袿 涱Uz瀘筆T睉蘃咮:5绮s1銙茏犥[J5鏪!c莞惚涾囅鴊?o蚭M鳙[#7жQ-!关摀M4磫u~璜篳H'讴/wL弮臬庝薴k袳箑QUoo#矉|9灾L!`钫.InR媨W烆 q檇U鱿5蔕琝蠍覑?簝ù琋櫷f牿5:+ㄈ穻?=`遤S\6 ?犗皙鋪󀩉7$21_zg謳磳 抸PH佉洔烎u芭s巌&敎 +E鈥 is4驤O({槤馧=)4逥-愬ZQ鹰1唅u lzmQ]QEQEQEQEQEQEQEQEQEQEQEQEQEcj琮!G5忞Z罕J?钪OcYKr惚渗儥Z扪F4R颣k擅H跴缘卄凢欄*[工U憓: +~*5*@i8鵭 +歰籔Rc!8禇\$ 注:铤zUI,`|SLV葬%沏氌鸶袍閇h秓">問覭娛o2o 粫fi衵鈸鴩证 Y添舄{I^泌;-櫙U飊愠仱悂伬酴f!墹s匭氣+卓.}i)$屷&2纡怛b蚩攙股の'NMs7s1IX^炴悳Q烎聅H) $聛眤 +ns苅=h]旁q8嬰M< 离@y$歋灁嬜4Bb'4􈮈绛拭{ +i潴N韸i齣' +C笈!Vj衄di:{S膅┅(憐 +u"岕鶳4E? Ye3樔h﹟爗覮G謺咷E?薺iF魻腰C隞A籀徏> .f痠D d' +З\K19RN*寂k鐿_i浬壙tХsYq(鏿<腵2岥TJ頉("儻"m 澉9徑I1g4魟溾亱湚 簸镸&梉 鑵奀譄恖揋a钎44鉓肱(麬!悃Ja<鸖騫M# 贏-噥!獅~;Q8跿5i!湈1OS灁躌)#8隬虉M咆糈(⒑8Z)(Z( +( +( +( +( +( +( +( +( +(( ⺪U"s蚙 軭s瀓鶹,;\{Q戦Q:'V缫2'籊─28飱P缰 }21c頸戚{&4O秆辉Us冾试槣?Q@;椧楀5W|锚)<z&(&cU澱囜N腛(1S長(8;h)枥4粡-fkg 忥 +,j柂俒'y鈥阺洸i腰蠟隆sS0祿v: 鈧I迼8鎻1∧ +a$馧桲傇RiA莏氼-卅涇sNAE抚)ZS覙:KrOzi臾~语J:Hs0EwZr]P雍迶馞;R僊J2u堯)X协煭)騫酴砄B潤閿敶Wq鍓E-%QE磾RR襊袸E-Q@Q@ KERR袬 E-%磾擱袬 M>[c)魯<1<鏅禮>髆偔軃'斻鴯Qk#姹f玝u#历歨# E9>誘埔叔姜xQU7,觫僂!酙臮鸜z&*藑覷)0$q許勷熴隤郤J冊 +Wh郏)黨1§ R1!鞩鱕囆裵-泃?)濦靀} W膬くVqa嶢鱠j—O40刡?+X.儿h 灤羘dLi冞8qXn萎剫N&8i2I獄喨p鏉淪8翕 l!鐘p長櫋DC湩歩魻u豔i介輎ごc=(镆櫆S寥鏇嶕CROF!GR銥糝%欺迱2i紛v颶[々_p狼 <蕳#<徫0O +醖zUQ]磾P袸E-擯袸E-擯袳QEQEQIE-擯袸E-%PGj)C@迩>ΙW&9i躬b皯珽鏖旇绝X4敠挍t誠毚p認0J憗J*x~錡5氝q緮妤?璘fS脋5W礳#T/Jt_~橰C鏖"墠%+tτcCd麊玆5VR # +J)3@姿im驕容>YV4,V壦灊匲悫%天20Ks梟I58镸A荍y顅EY O翞瘁謿Z =G觟h苆V宺逕跊宼瀓蔻N骡雍褟j峉嵙O嵋欶h姧f$奓f搎E;燒jLqJ6従?ZWД袳-w`QEQEQEQEQERQQ\射莉潱8 -o\X銝厣鱇甆h7 s毐u孑\<6軠郩9穚諏5ЕАh譓wb8衾 +婕!鎦2唕@<J閖圄&⒋參8Z叺,簥Y鈩fWT婀}G囊V裿祴%淖'|瓮5f懄僮茗偽v1骋爱惦軦钝"騁SY!^c亖腼R:Z寥蕨櫜$炨-\,2k5甦朞1'返@腆萪摨a镾皮馳秏貤{8姒摆oc溦p1纉恭/w嵸釆j<奝 5√ wλ$p甧慣{殽&眑旣)乽鸗l杲MS獺y廯須坘 +剝l寝〔47┿<裈譜硱|觇O礜/-剓歘棻4\,Ji 1o-\|偿Gqyo&C*= R袃R溶(畒's变渔櫘g+9J#Zp冬P)H奬V]N棯8M(獯Z櫑aK慡b顑`Q恑iY娙n=)A4锃5W嗩雩揊(#丒衘/^碻O茡u黔-靪^魙蘡!5I\瀊N /A杂?\淪) HH頸岥@頍zC"/V齣r壨 瀒銕2*敆衿俎1帟ZM\`埩?J綱撒慒ー鏆]s搨kn.鱌滫殫霿纤4(蒃WA-敶((((J6O5j﹋佝蠜?荬y瑟N>z>錠 摎馁嗩a秱V欵O┇讆%硡O柶Fp彩K妜严m 鰘戊捉罪n +|=卐槐9懮>鏄桶d熉(赟箮T]矱匱iq?-X@_伮 +S祒寀鳗-嵘阈z親橨歞穻'祾误私镃;\K较衵T +谦T剚莦A鳵ㄧ礎*茻4q欯zH電柶憡砩42n皮菏d媓欳陎RI锂Z_,z'd铃伬)BV9蔮裏稨Y壅峑嗁H鵃 隫`Q秮曓%\.蚔篍=飘\d"#邱QA +)I覐3$U困侂J;md嵹S'zU惛デsJ(臢胿cq隌v(隣P岕)咏b祮鋳2ir;f狣嶴跅 灤員 鈫>kn<慔Os耀绞※榗險d裕9U>職隁Y蟴cH発,葺8 l3隢K;壒瀩舅色Q睕┴%霶彊唦礒% ,~昩=&2s变>Д]廘锣" !统图潏H=[1E嶰$醌J椽淪臖w:璦@ィ8鎳&))許姳(>啌 Hん璔7;9r@} +禟缲sO暟鰤櫪) 廞Y細RV8I髋)傭R0OaM@驼箄W.@j萣},z;萻!v鷾U鴗匫郩2j瑘鎙7"垚}is3昭%擪該V#2Nv-#q魃踵VX彚53*7BVs鞥廓禥%峐H麘奯<徆_sM-+)/柮︰ +餦芬欏1膪歈幁鵓>鋣4唅[寘鯮iy"靥r臒┃狸EI礊%乄袣Q鞝S掠W盯+つ(V(Z`%磾S%!尲GRj+烁l2吾W呓q:灚>.翑Z塉臚.E璫[{0[悆涩f*潸歰G!(:悐?佟3)pzp(惆,堿-笍男O.褱w5 V愴S莦櫇-"善{Z磳!襂9阖z謀幾綇衵S]掴M蠝v2爩d蹯(l"罕c 抭R嗂05 y&m蝚b゜2i!蟌v 飦M%Tc 戵謺@褤巌H b[kgA\$祵犮迍?s!蝭Ψ%靆煥I檴 +现<孒9C{sㄝ傗ナ羕滒'杖%1寖俲よU嘁侫譀4氥e鋎煉A%挪;MS滄uF珛u跐珑琙灾,╭F F襪<趱^򰕅觥E欽-Az顀,7邾{u3u Z[萕3?2=.i0dw耶茫F湑Q蹑6套F烷'梱.腸曳獍匫萆鶸し顮Q風嵨r=%潲祜鶸4d彃}y瓊~魞穰#uY酵篩=MY8H)緖 +)扊1黫1@>鼕=41rE8"麣.n}腢戻,逜OvQN=閈凣98麺;b廀R劉0貳(譃鶶膅覑歆m儷 +54/8!=﹕!瑾储o纪鴔N&:&BO蠺玪%X +蹣颃癀 ) >偔牐SEV"袸E-敶RR襊Tu-N逳劥7vQ哉-c_喤LqbI閈{甲扤y鞾蕍BD鳁逮d鏻c畀aU#]犩 +{捌砧*▓;摕AX鶟)[D +K癳W5#s謼兝郣酖zE4c籁1H葱3m^供-"9=匯Fr愰$幹,灲嚟fk7HN; +p<涘$ +*髪M刢諅G佉 N躀減5%戼jH嗓P姆A丂x89鞟 歩b,:P螃硛v屝N駣d坴憖k{C[=k 钪稒u祷+i莚d4驽匞T.5x麾4.j岤吷gH楇蚷c泴鑳.纞5墈x'0搮5滣Q揉^Bj骩7r竘wば譺8,襰豤,V覯!a}j[X鎁Vu鋟璛裚鏢娡搔Z奺/菠0怉n5喯u+-坪)&渀r*!lㄇj=Mh歞;廚朡橾佝B¥|癨Z撬_笺) >阦隢郬幬5靂%{d<.蠷lvH 披籀徍吔 岹SN +AE繭:S箩G挨仨~Δ)vz腋狸G酦15(OjpCE缊 tR'組匙奓犼>詟`JP待泺cc踱楓U齣埳鞬粿黫o纪妑((n彾[(忀SV刯)pAN繴 ) >倲[桘艔哉(丟aRQ跐E0: +)詡枟笭催13偯?Z@uQElbQE0 +(ě;x寬癠#0PK颸豆=箓啪n酺禎r[襜樷⺷尃q揦蕔崱J葏厣+d濱5+6F莰哋-昆f獗:璥c來Q騲竑=p)])媋3皍ɡi铤覶达Q蕃"跥赙牚H蜶Yg骒* +鶔湠聲2S揤TRlq廣0/~2廧j仠摀HOsRhK繼1殙敬刑=8)v诩撢n=3Ar{詶Q \`d?;T9潐R 锡x韃鉒f'錨I喾=;茵YЖ L 恾8桍igb!噞x謸檠$裙鉄il#7FG9璕眿w芡讚彊秲SBX麣 犍>倧4 c庂"鋳t2mq姺(y惈p=単L尣垜畴lw曦'箲Q7炥礏IwH>晘0睊艠炠鞷帐L櫘P3[紃c朡恓⑸ 2噾2=ZIr鄢钎@髌紵絇嗗qDj:篝';a颲I JV(#鳳煰ja=┾3镺 !幽 ~E埁_粿+┲狜v+ 纰酯容[J祳J[廃齤A巶ぃ袪v +\QL奬QJJuG$馟煤~("罰3*趣褗娻皥8oZ1I'2J眄/4I鳏Q-酙牚薼凐s酴Dj:J龔詅{;獇L2繒#$ tV|瓔(s朮禝!蹖Ue倄],tf箎襼淡P園險睕w詡贖錨:冓**灊3Lq脐衣3鵕焨4俇]萘哦醼'N篈o!p9鏌tB .刅錾!蠔膚肬塩$耸:b,g竬0嵱礭朇r鉷楎 廔鸱缼磭:w臰h憧LP鳑* +:懺J襓<罀N9!n圭擄YM肾杅跓t蓼喨腏;S倎跐E1 E:J\RU鍢璆雳7bp1 %礡驸d,J祳8p+4涤v忲E'禀}鱲鷼W鸤C迺G鉖丁麃哞*稟袳吔kV3妎b娉s楄[夜杅.]蒮=8搸i赶$V.M0倛樻幋GrFM韺lC栴})X回cq歯2h瀥6吇 +@輹染柘n\纱p偀o;| 4X姿&碒芌 質▎_б[{湵隠D +wI闙J ?t釲1幐9鈪呟1Rもげ!&)粠p玘Di渊5,qoH蔺倽<趣#1駆蘰I堑^0H蒎E燂6hcp鱈扪>V'4U姧=c7歋,!塊r䥺F犦NF齾>TO;$ 瀾6=X郣;*欍_`7'.艔|痒W?ALWc简I禄zs奻d9圃 歺圀$.=坴y橚8嫶}m|殧[tP 藦"稜墯zqTf皬敃>频mA珶钛mCて]tqZ幷CF[M _2幝鑗陸V@u衄ynweI蕘亙]+睉J5 歖ぐcq湂7'c櫽鎎諚] 袶嗾w稵憰I f怹n鑋螬丨梭N扐0=Ya貞'-妘$qdg公Rhkl洊vf膝]仰嵴 *+H惪x乊4q刌 +隣劬3}M/皆9憇*℅秫btT丂(竵n誛<湔戗冩j嵻k$胮(Y +K72炧5Va稶e[Mh +Z)(jh:啨嚒-S鯈W*5LQ璠獘鲄[鮢珟<觋 牃J)磃拋謤r~斒.29鏱宾QT慗*M嶉R菸樑D禣蝘2[慠yZ鉳"/煈姀QBDH鄵Vq9>儦"會鋄G珳Ur'4姳蹠肴B::$8i窡EL夺IU剩f\ G搉慘攧fC>Ξ﹣O3灐)p惓⒙N m躖fy8崭 蓵p* &扖%f黴E慁檃鈎2~2j1$瘺7稟P g亾臾纰鈦<砝A笣37崤0D靬8"盾r臍.'i9<焥'瞟n8S及(偅辫9`fb 8儦4矲肀A舻礚!P1垃怊rw#閂l礓]貟:@"袑药=跠>齅_啬r邥E:嘬1.ラ戶﹎a標綐渧&殢<e責AZ缊㧟撾@儒c9~婾~Z7Wb笰鞮] 2]胞ゝ綁&荇姗"i軃R^*檇;A R 鐷u8嫪╲善M]!俜论N'桤1亗sv谺篳榨秿$bryHd9(3(P#9C丩档#2}M>绲R袳H倞(4潲猬誨 +M堽楜m:?)uX5f觍QIRE4P0┼鑚 责}覯柂7玼M钧S`9~皤UU>瘊諝Hdw戟搁V'WU荍偄y6潽2i顅=U詞圣#??sJ羢M櫮麸S汽#竸亢iD哣肜蛅鷐镖⑸釻腼CCZ歶$]MDFjXz +戸`)藮麘^偆T!=&憹?嶸oaW蕫苒睱扊瀀<焇7螪}MF譴x蔌 +d栐2 郑扻奆愓2钋'隣 d+厜^ee'経搉~馽W拋栦襺漺"$皤R%oj槾p皋i5酺7烨<抜眼▇@J$@鋗蟡玵'菻忀'VQN] *囐巔.}*笂04*仠b┙年臥w_紺v +<)'1盾蕕f#癍鉪.钶MG.購絒4"X欼,L@〦 倓bfPk偦濧'喘騬}k:鶣笈|佔謵-;T7耧R灂啁)墪碜絓嬵o;T}覹⑾杋 d哧蝚點б崇麩峢濒'眹g危t唔U=B闼竨 毣wt郇頤s+`灤栤} +PO,撀(覣尊琕[j=雗R{柖軲 H鐨h<鈥-G遥戈)馮wtE3蓼:崩4 |_|U毇w姳T勈殷)SdXi簜,UY?謿稵啐iδ%2I6 揙'&5K叱苬煗机 +@\2|塍遉矌[9 K+随on譙欌阽鏮訰j-Q璖流MW姳荭柀瀄站誔M坱|U玗 "耕昞t╃WP +蛐擖#5芲;Ms俽I僧玊o馨8甉>啯'XU4珧oT凃8醻:$C瀯P荜#<颯迷説NI鶸坺殑S0翏F繰~(稊8鶷曹cg4蕊@8 柠"jp恶 QKp呫廊 +肐撹(矃搼UN*戲*躳狣t猻nY鯢3軍-的覔絧*`%眾t +U>nM;睜Re/'8嵃鄗毧8T6娩黫旲Q\徿礝P4*Z@7SZ*U蹜V繂惸*颠(燯懸鏹鈽橒騏FzT绛T%s蚚n磫 镼蟁哧 13>軕&庿娲阆梇秀蝚襉鮞慂 +zT7陞JzTW熽許+[X缃^O鮱F豴~祕?鮰咷8鵃"碄聗?T+@聛=孧7櫘O鹒⒏-墇c5&欦珰嗞H誨6zR[夢i6罍周]襨菳呺[裻?J:椥嶛 +V苅`闅e寝$\E?t2,HY~礶氬蹼抂両!6_嫡礴1T瀯质湂鈓`(Q硞yO斏潴覇婅hEU毌2 +盡 昫XiI余簜,U7Zj錝鯁挏!瓽Z搢嚍:鉼M聜:袎bG&创昨t 联-礳"甕韠橏rA鏇*;2r流 T垈紌崭>錔'jM醌潽?1bf髋Z鞩曲簝礝p~AU陷41殙5藽填镣t殞珋k浀!u,磍J妍栈HW1鋿缃A '=阧1痊囨匮袳那孶竮殽j ,8u5(魏@#,OjI讧p杆 +幾%莼v&搼TZ!妐朿W溹f#檔僆 +孕Tw*殚T%-鏳裘﹗phO(眸嗇61*k忰u现槚邈P\岮q駹谤橕浙T砘齤衢Hb昢桡mY璽:})墔6-Z=MU磋7zCtㄧT儱G1&0i(?|栅熽臫V-嶰璠LS摇诲@㎡Jk菛麪齢U灖眯詓 氫5d钫周#9甆翕Jh灓6秚睯戯X9惾筦+{K]濱湟憅6"b麝z橯恐縌氟肦A鳗uX猰魍[獚觔+鍩z楛|%uW爺8犬Rx牅袇`;kCL*臦梽Q颲瑎7冸M8顃栦$w5v鮱R!劺玴凷$=*楍璡=*燅!jU狧n>啜{T镃+QQ仇5蝂`;缰篗H~镳5蚚0Fb誋]K26YG紿2Us*颸)弦B移戵 +-桅.3V犼j琞MZ逢j +(^ 荅>Yg?鮱lH扊辁U(G鶣5rO簀鼯逯锠y+嶪?)F5ロQ/j@请O1韧1瀗b鮶^!鱉P蝞鮶篽[冐埔??磌?H廮 +蛯Zr懇瘁 4f{"溓槫Le +Q晓癟7: 頣,#憬r椆7H舥穃荺'覄OQzH弓+-芅獗X+sIC酡ED賴镌鮚糺z2溤慅鉗75$|谊妾鯁瓰昋均傠旤+摽芹W5蛰?J浏辜苃D'+滣玍G7{6寍'^睄E鋏Gzoa莝頤妇嗒扆罺恹偉菫啯熂j<:歭CX*蚔忥姵奌n>瑷{T?tT=╞2/鮃鑛毝8f憬t殙t9jp[隡3煓jX镢xTNxΔ9箯M:腹f玃w獝瀂栽g 揙等B"鐪鈼`AV% 丳 >l*趢I颧`個#q竍ns磄蕨|T]珚 镴魢=淪镠縱嗛@灂"Q灁蹰@エM)鞷妱濫K@ +Ot 猗=({T妦QQ 9\%1y瀫撘{T隆'7j歝驫o i蔕u"?泸*箄簀殞耷鞻8礇M 靍耔絟U $…_ +xVi旫懹B q瀐P(bi 1㈧ 臗7u8隠淉m首G鱱蔧滢譝u+暫徻h灑轥哐騭蚢dG曳磶b辖)^緅z糺sB*75$x詆餁PD绁T?|站誏M埊w+暯忈舢齓鶺%x愈觥 ㄦ<疿燈羹礒+醌戵7盦荛#麄SO*躝pT= S#V陷5Pu4貕"X*臰嬶姳BCp~QP灂-茿Q敇:欩够q扢tZt9n 搧T'loZ眒彽D鲄Uh讂騇Y +稱?圥w:樉骍;誋嬰V犼jCW叅z@H[5b:訌J63G櫈8_絆↖粒{S@n从E#2吜"傕*  +xFH臾o斸憭M5篠蘪qL=(b嗓邽鏀#41 +弎4ь蛹腸4右- W`晥U扫R穼`>槧 >Q钋穰碡z殼谔#⒈珣涉蟡S冎煍括ドL)连y攀萕$+洟X)內5蟤澓渵5穕 Uc搳 +*顷}*3簀顸縅烺?籑nK亍菕U讠e霁P:SP2Z2籥YO咬?觇C"=i93L *9衷 +奯鯏t墉tq鶺+r覱液浢垘=+敻=G +4忰峴1鎪阋坬颙E呢儵┆z殲*緅X:殘R猎谊篇糺匍U4貖穱~暼葭恧抵迃襺珨忲訰輏鰶竉!'"ū鶖V啔3v碖a拈 +U>喃Q}罵遲誂哉橱MT6"H +癹確|U躷-茿Q74槍}L枯5乌魍t:欭籠肀9狜LX1琨芦硘銑砲w]E`[滾?臯`=jG4 隡0蚑緩z8獝[*扢6 螻羯 ,{S眮妅寕(S}X)'OZ捴疽釜7 蕆}j譃狢轻@鈂敯C磀謙殟6V搕舉^葠蘇琊牄捽掭M0V-h毼觗Yd%鄔B)慭!t$萮 G橻2k験"槳弞d'余o8眑獾JЕ1杛 珖)娺w晎bPJ嶦j旼R埲5D矚$[:霏Tj媘<(y憥O祅婅4霈鞥腛競蘼礇íw谤太風哖2E腄z娣+&P﹜8^N+X訾U#孇?G窑4莰榭;V8鹰鶶B{砀?肻鋻7蘷镜衙茥甧多侴'殧载怃溨梄Z苌伐n氟盧嫄肔bG敋h鶏P媝W殜O鯁qC'GA=史熽蝳+枦?Z簨名臭甞s䴕"z巁踅;V䲟 鷼缭7甬婯弍heΖ=*:殬簟 54MA麱━9門限5l舄熌i*摭敏甆Уu椏耆瓸桄聱鏆')9ea外廽%布V枒皖O\Q-妿鏛焢Uň嗒夨[嬵 +69:毝~楠儵δIV*糭~琍嗐牗OCR躷鑙01uS圼忈畓帨譋⿵菘蝃w猍詯贵蔶鍘鉾F9z祅?j忞C:堈;妾眯齤F粤.v$氃孆R+6=譧症饍閃訩b帰[攄鎹1濄,:鴉,Zu妳鎲:鑖6鶹~苠貞閆S懕楢.蕖剋4Zi隞i dj憙.j顤 2FqVl\<傢☆匕k/S弔+P 啧〾JlS*歴磰弄匐I犁"帛c/1B硁鶓2褰=6DA欫?&瑲H+t4:H酴邾V葵SD矞.$孡絿a[ 直m鷛鳗蠧訳G砪虐x斋0幣僒/>菖P见鏄.嵄隫廞Ut郉'隫忁奱蕹畘笾弞胃-幋-i佧7`雳,=jf鞨)紒Vj瓁Fz%,销pZ实寢愪=i犥┺}H輷Y2趇墣轾鸖sZ碇箔 +E6領>炸O9>-y7[?/or)m?泸C鞱諓蒳 滅啮*M茤墚_ $h燿娑#歒3o#m瓢h掅弆RB斗.hha尒<姣\帖踌w壯S>c閃g!'.3蔻茘$$sN弙戽埳 +sSG,yB4b|驼譼s宻W嵏S毌v侶銼#!.赬dr5卲]8鳝h.j畱潙S'=殪Luu欯?eJ牶`$玳Z謶yQ勽〆'!鑚8;試ˇ勈酵Mz嚬颣撆T#V猔錃lE-F@憮僜讨,听3]l4噷c蕖x羁 厧dY6;㑳·繿肝OJ冫12跟S栜兠鳵lkBtTQZ忣 +o簀狅V垲毃(`I攉5Z縑)!?v爚T鈸S,皞5まdl瑈e陹莆_巉濴渻]M釬`rT +鐨芮nf萆< +b[<筫 庘甕L挦怼~偁'赋hn1颟1鵳()1栢?!珇鮙MX疯詯蝪r€帖俭ZqN揊 +5WV4磏憷獨D/$岕珃 +.n$(=燏奀雕曟獱(.I踿3毇! ㄢ碆ER H08疙V鼽殾x0@6 +搏腮bZc僚 +$+姇膩懼ê3,纞xc"へ緮V瀝*s許8明A"#$5u>齂@-P僻9黬V鞷7J嵑61%s5?@竱礜z雨3謤膳C鯫霰鳷索臟L +玨 l猞=jJ岝4幩>妃Suy"腔k熉焑R焜陶|C8e9暹1`CN42[蘐}獂坅溹Tl''-T完譎侔酴q4 !演 S-爷U80粋=辋`U9U罓2X$彎1U#< +4$ +0MH3錅*Q%沽涉晖z錥5p: +6V洅Tq: nmロAⅳ 狅R瀱絁遲!2痵S列諂妲儭ピ OCUSV廋USM耿*@1Ef璝忣 +璙S +ho簀牜M職:明 +盪猁鮞ej%P_漿 +我潝什g\吁?2跶,#9:卣u昦,茹s跬 H泄`m唛Y`6;絪耶A8漖$#n:姟縟 /9!罞砧銻6幷%鉊BF?膤jX詢転魳弯9j莛k:t4哸k蹦轩俽: 觮 m嘻徶┸%U偓俟6(~暎2嫵f┴B澙l棸Fp贤B駩@淸#哌謶w4啤鵆d殎 >2k)婍b9 ≯q E惷惕ja:5fR堐~K煡 窢0軴i詾>瘠1拌腞'灐颟>袨嶚Uh嗹'~q臞S袣`=u*嬳 Xn蘨PI|P﹑7R}u*ΣF仹 坰檀哊堈N踿蜈涙G'蕭溆|'&C@壼bp9Tj%蟉 8B{籔︶鸈<飨L筼螑=O鏎苫;@黫聐I?孈3摎w悾I嫔Dd敀w%/惥攜 灁;L,f敱5櫕5 2+WOP睯桨櫾盠O箣u绰nB屴P S撴Bc'顨r菎渜姂斚浕娆苗JM剴輩iY伌0ZE"箠鋵痴r% 弟氄26蚮轇束溜LF岛劧fK9s醌P>痄6餏.巭軅`X蚙 I=)骕`R3;y妏1I爳2iGJ颧'>@z原鱉Ez懢楠BeQ栽痿5\w┼鑙-罆:毚z┺酔%-H聤礶>嗒礽>唳鼏獛礽獌6旋鸁璘嵚8醛 2爼汝;P仒!漎9e隲錂躽瓔9 竊K>y躆g岛''迊"艀S 9詗Hw鏸L )#m垓~t 昤M<披墙Y栞a慜^醋"GP踾^4I$籎嚴敉 /YHpO5牱慬潖抸> 父隯v ~兢g4P羹"哕搹0誠缃= j罁[碽欀閮}湻組|琐r~F!;諞阄褍Y37耸f珼+2怫H檾枾翌2E .鏕8"P霉伻Q2M! 許#尀и6m檒:T搻戭lc4K貒N晝#'9毃貺%V`1妛垅巣t2揞q憵l匤惸b斁r)'7K孕檹―#誣-篦峕紤寷蘥 T邶ep怗 +,$iih练变V任:=礇!萛娴h#R-徝{R湈鬱愕A%&U滱魻D〔x 型儌qP[顣?J檨.8q謨焃 lpU{銰谔犘噋奩Uf nc鳶Ze故哱X瓸Lr躊-櫽i,咶S怣:兀 +瞥4 j穧僤Y[楱SS明M%笁顨:毚遲誕杂`磾T佳IE((~AUj襽PM?5TU寔UE6珢=▼镌 鎰;#b暀)a`VrB烟V 庻0 毄@- +32+Vl,懳kR,q诓W["瘁c瀵<垫掂a +L袟>論23V゛娤hD敝p:找8猥ZGj睭咧愗廛t瑊樸氊$c璮 8)*)/T疩<率8 fF,H02A湟(,be'斧綝j回捛砸膧xD嶓1f亸58猓矀1r钴/AO1紤23姃EX鲧趷( +$雗蝪蹒5m#融_妭馔\孲Bex贗F騫瀭!Wし垊苲T毂p迱'q!B橥X蛩FU繱屧…軉Ee5#<@eT硔恉杚覞z?rY@t珁S蟖QK  fm,瓼;V膃_幝猍鸔;V腘X>茞!3<偋揨m鱊j擱蝣咋9>孕2斧U臤荬#}覷GZt誂M创Sw疢皿訰o^炭( h)V5e>瑕W麊獖t誙縎殏/縎歨eK燉嬼畁莟Xc畺琮b&7駹EW熓劚\誩!h伣n+ 彍阒歐m1!:泋粓:虑蟍VP諉澦t\'屪Mm鱉`榍骼5!#/5g#$餵蘓 砨昺=sVc剋瓩虌-C儞C2*i Hh谈赥c镽is溈鑚螖屩窄V繧xz鶸{H?涘$醒P{苜弟摓j踏戽猉0*疼奰`T!竿Or辉8Q歭I挡G5,望︺1t 仄i剳 2-W幷龄 Y伕=j枼'0趉6鵒溙zSD葌vO/撄kZQ麩鲁@-虷d篓蹨V粘c>Z址雯(癏荶2@錃窣臮}罁薙雙眍*疗鷤艍q嫂聧魡+冻迤淄Z篩Bn垖幷旘N扩鳓"x袯崚Tg]觬#kg隠姑+R獞I/骻织磛鋏渵u咑倗麓総钆E燪嵜T趥瓚醍HM(\臸睰洉趲W@镠 罺!麜焛D 懰5hC(Bt誕V_迴, 鄥嘧>恩*棠H,迩媤豥 穹挌巯鰒o6v6X滏硶2糢<瘠薋匶O*á鎣崲U贤镸'5Tt2聯X~齅Y撞<6r*:葸 ;鼟7jk`航帠泯b&>|廧跊挓J窃囅B棹銡}玭簖EAb暌y嫊)*摫.鍬籤?裶X`~籥搉39彼弭:矺+FI* pr{ +:葝蚥6V壨N疷#隨璽"式X嶫蝘櫍<調薸n$孌@3V'"栦栃碤m,供92>@ 9﹦蹭琞提 2 +)譎V8齤鞖|n笴祷示惽狞?; 洝j Z>S覇弾U%>Bs冥.G$-岴;侓獁q<5.IM ${#糦` +i2藡I3閅oh饾J訹茷4姝哕P靔'u駝<譂ぱ世!鞾㘚o椎\矇2 短龚h贷>[0聜j5隅蒬'迻K萉F臑-/ZY"G莚G%既莥畿勇m鍢}贽鏌97茿\讥q宥陃'樣lm螵2[9鰛*x襀疠)Xw x Wh蘮j构狊#!h儻 Tmj刧(<馌恬o巶寊┉a#娂cQ@!h哕8…/ V置贼云p(剸)e;y鶹獱1Ryt5~^匀`&祅%措h垍wu望)\ay⒍L\誽S溞u;蟌x崇颲D鸽奜(u顯)c頖z豀- Q巕蕖匢<涨F蟒椤* +塥1 RB门T_P'霷+<'棪rW氃笅螀'卌Kixc035b]%?)S亽*迧 )/i囜U捖劬鈣>K(eTf慥3牿13焅Ui5[8Ud_aVt薳k嶵`V撑*侓V0蜷婛j +e罏槊4L液绽卹Bl$H摥蝐 +刂=维d旤豞j茬;>碮&>k棫晪獇⿸紝柂mp儵?,3砱kqUq 富惪推=(嗋梳Y妰QN屇誴$橓畊歷漥夌&褓A湔%HT诠-秧&Bwv瀚2佻5(六!A鳷鉗 4閄.$t-瞌t万稟@師鸝嶙d* *K彗S弞葞葠:5~O4表p岺d侓7闻绲R烗w坬k>逺桓憱%耮唉蒄蔳-懲T擙}Z!9<鳘晓荚N)蕵rh\`S鵂 b姳%A鱞_惽妛餬殻 Nv @7i +髴F(9攗 譁+奲彈$RCPN1蚈@镻躷擕碟R+sF?v縅F爀9%姊"珨経壠蚏静欱'嘏TzPM咛!j骫楽/*侂XP枎苑F5R岑/現瘫'淩踦搿6牢姤GS殎%☉z曃侄n劃土瓫BV0=(嫶壹妫揶Α軜wc4XE潅灒⑥薮 趮f0グ踐鯔6p L.OtZv芷,崤Q认":QE2)A\悱  +懝A殫祀~uAe媜抬4,? +痱蚴A冷W3yv85眘<~cm,}>Xt傚w[|組a!毳d踤Y投<聐誅塶1F閭搧[獤馌$啉V邷氊=/|楪bda毑EQk 淩釭bc,G礷o4# 臯!鄀u +Fp憬P綁6诘笧rCJR1恢滍鍵1O穫禦隥税0湟'幾<椗I,j1P瘹88Щ睆憡C贓墭雩5&U獟軋*ē蟬XFGi$u⿹堵乖媭楦胖.惼隦X(F釟嶿=dr#W "eHY1萶*+ 餵i藨僚0饶淰& R7QV瓲*'璗璤穙茯hh.5P&@$匝酺L侂V`抷'd4\I"懁 +!N}j59榮\h+幞﹐fAmV^;xZ!樍2M>蠃1謮墻bCm,鉸$9b8~j溽;#,\5沶夤蠲1蛌:S[[X&5%協>轊8ln半舑翟ヘ譙6j5b3知鯓齤 +-4玀)镸纤L搸1Hz泮褝民爞=瓬v困緑4奲 5螶湏U$鎼葽鶵?薗鞨F8颳V;鵜鷬霘Xj1/Wf]窣fd鞿 "鄎醅gR噜r釼 +z5F7凴+x4H廕氝垟{Vn;H&#暪玥ld鬺褨`*z +爧0詷鲣妕M$GRG5N曼缎Id47錹J5A鳍9怽呼 廈) ;8qT#箇擮璈_I符g*暧忽5n諩xTWU+ R8n偉@獸Alr(^8ǎ8苝萘t 娉x蓶&p~4 崏a臮懀欯P8*F$曹5 +UFz諸歖葥A$5z宊lc璟)湗s蟐*摪毠搑莹1[S貵稆恠HYRP換磮!m K-df*[僔喔x!Pz撧歎w(慡N敫OJD硁3FS骍9槖zR;M澰蹞圼'孶VCa愤n檆影趍錋黭8_糺郥傶釄釜竂#m 姧,ジ輾g)%墷EX%h苶籁N@Hス檶噐銗摇-(2檅'$捘(1#妤&檞遗 >朽9燗# 琹j0$%%{綦ZtE聫业#旂16骦)hxF郿员8ゆh┊秩臋[夆T犕Zm\s蕹頴`錡鈻腉sg瀯Z!f=zU崰rRl刲Y薀g1Ok 渜颵厄0系-掌P影ヌ蚚(骚V<}*3s!j #p﹑阧2-[杀JA 籏t刣zTx<娮JNGABmhk壊U姜G濜争吅甂鞺鈦%}艘:挅)筠:鈹[診穚1czR驓a1黅焗h  甚0v-N/ +F]榖.,偙 M-蛓YR蘉U7閷*熌諨I蟴 k~,誚'樋!Rㄚw?y>i@乌'w鈥L7/轈Z飵d?漋伃篼冂c遠ヒ攢bp踆rń轆禄~裪講w嶼云H1[楂鎅w8e髎/消5{RD1l邎'埼aeen:9榥;叐qOr&嶸m6i倴墕zT廪acl閉 摹 d鳕x's$掋暁煾鹁第澢蒫扊&63N]瀶:壑乛;鏐N +r攡伃答#榾黫寐9爓0-4摩鹛x鎁V .行-z妶縕#+诙ヰ贖@癱荸S怛&>櫍PV睈输浔现4韪W'隨\龠X燈圶侟K泉嗧}1E茣片挆2啣鸝J忢q泐詡xI隦衸%牖!5a頲.Q=甏j 裧繨范躊+2瑩0Z赣F`#c=ヲW; +鍃龌舁 寊U佂LtG0I8﹒僡室]10跋j(丨)殣 W鈯).N躥檟H祃zQE2^򶳞俿W〈墦$螉)x硡橴 优摰1EBaLGQ&& QAC爥吧゛@奌拕箆pk'瑴袳fK軜;R 0(=蒫$存XGaE刅楁マq穼QE鑈H娆BET0Dw变殮蔠g(獸埓.$轋顣#\剩!ááGrY瞚L騝 4 僒M>A酡袶规粅やRW(牘$"◤;x5貫*焉-暑+GH秺Y:E蒅D憿訆Y帱妦($螏闗)鋻遤3 +E袻孖>鬛K┋Bk> 煭kZ囨_蕣(涠皔_4J醚唊"犍韜,1Bz%S#〾q釳Dn阼8醞做澺鴑k)繿E簹綄%寨淦氅}轶O;.蔻奻r噩$懕橽琮*秃X Lg揈檘贁bKA苨屧x寥$cE辱^嗱x9tn +"婯:G变宥 +(&d胏椄供鼒瀵錏備r膴鶊膳Sj晿d熚擰@*~U购釹惤P +endstream +endobj +124 0 obj +<< +/Length 71 +/Filter/FlateDecode +/Name/Im13 +/Type/XObject +/Subtype/Form +/BBox[0 0 2384 3370] +/FormType 1 +/Matrix[1 0 0 1 -140 -109] +/Resources<< +/ProcSet[/PDF/ImageC] +/XObject 125 0 R +>> +>> +stream +x+T032472T0AdNr.W墿榦dj`琯`╜f`ゞblbnbaRd捪灐L +endstream +endobj +125 0 obj +<< +/R7 126 0 R +>> +endobj +126 0 obj +<< +/Subtype/Image +/ColorSpace/DeviceRGB +/Width 332 +/Height 575 +/BitsPerComponent 8 +/Filter/DCTDecode +/Length 14782 +>> +stream +AdobedC +  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY?L" + }!1AQa"q2亼#B绷R佯$3br +%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz儎厗噲墛挀敃枟槞殺¥ウЖ┆渤吹斗腹郝媚牌侨墒矣哉肿刭卺忏溴骁栝犟蝮趱鲼 + w!1AQaq"2B憽绷 #3Rbr +$4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz們剠唶垑姃摂晼棙櫄ⅲぅΗī炒刀犯购旅呐魄壬室釉罩棕仝忏溴骁栝牝篝貊鼬 ?魵( +( +( +( +( +( +( +( +( +k1仠歶Cpp冝4é犅滖譂@倞(((((((((((((((((((「=q籀XH蕄跬F祉侸撐绶*[4頨夨巼穘*J4yq8鞻褽v!y򛴸踑鬛E2((((((((((((((((((鍓dR绫舄E,U騂䲠譸fwG r9烗X.2p7箭(D薭QVsQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@!zR訵 V#曒绷霋y8㏕逦8< 徥nQ蝀2r*旳像|匠+4uH 螾 +0^!藂凖祯ㄛ{q栯蟡G(p+澚d阱裼覗蘪x鋠S晡fQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE^魬蜯X獁幁匇 +Ob楂)訝鄓頸_俼卓+筮x阋+d鄧'穕詻頗藗<抶#轷槹^^Wv梣n~ ~~溣沨躝A業hP搾FjJ喿齆@H齤j- +(!EPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPYX獬櫅朼麲#?J炲鐾9Lu莦 y茹 鉫r藖炊永 變隡9僬'骘鷡砹#'悬輳犸H8R'烤;i笅買<麖;QNT裨鏛~e0G滨賶p臒鯣鐨 Wc $颢鋺兣QDe89 巰蹴唣x7`n4EE}Qb(1 +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +(3疘鸃鐎紤跉* 8複憇#Ss頌G=7官筓钞渦?祥@W醱傲s訆X0W=x 酤~旈:魊@荺鶳&醣儗镗佇隢bdG扚A郿b8 v0~锃H酙8U A$貂試纤嵜w 灾N 6鄲酻.騷3SX137'-耰r矪(@((((((((((((((((嶞$q鑚慔鋮$`熎 垟怎舁6鶑L閅轿;羂t33u9惀q鎛 /b郦08灋攁恒s逗H窹z2觞─HwfN; +掻ZL忳(粧 粊.p)t;薲p0GS*尓巬NqV,dd彆52.藕( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +( +((_澮篇yEF>枭8c廚旊@N)冾餞Odt鶹os*袯儠l?*斛詮髈鍒蜪:RF;喟,qJP琔軖烵oP鏺笍鯷鋤觗怉,s曧O 渘R2誋鄝%I 詛)=F 1榔Qz~t雈 z鄴艊実 鋌1Y[覶砑B纙瞍;]4iQE∪QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQHN4捓Bp痞时 咕亰?潩娀{sSH +8 `溏兄h頄H泪x疗rzz訕莫3嚣帕Q8茿/癀暀U狈0 pN~mI1鬁憦L覾棊IQ戌鵖b,A輴<悱>R菗渕蒪緮懦v!胍氥 嶡O$櫤aH賠#!滅奆挏4$寃隦謬#Vv +(Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@RP@%T壬磉圐揢V釟fn榇桇煵髮鐘涜k蒳$ $)跛b悷9鳞d杫苲u +晝wS懯怈#圻姅tKp賑如聺1m瘈Ib囑恾褏~ 伹鉐蘻怈凒T纄怖溿規倆H崋N9^笺佊橇尓鞶8骚(G +鸞=)T读熬1伇i5嬵OJ潨+(蠕猹豦w±缱拁%膩A 噶狚j撔芉稼,袽F亣B3N2 +( +( +( +( +( +( +( +( +( +( +( +( +( +( +;ry4殎:鐨#}譒Wv82 2.8△▄^#R +哷0F1仠s$&3俪幋6>噜髮烎H翗鸹抠&懅Q梭鼻?{鶴r湾9綼=A$dxa蟶v╢m>\ q滯t j艆m`P,犱nnO?N* O;O宋!j悒 鍞騭老@系5唉"篸 w3灤, + 渻JA煕 阊1;秔NKu4%鈥r泷n錉寲O軹黜&芾`pzrB.i瓐熌橍罰@蹫q镹嵝s霂旡窺E(((((((((((($#ㄤ/騪 ' {~!佊矾臾蜙壊@銓淩-璴T萖$}{w5扇s*Km@03;g$#o殗毙6桑鉿 珌窝酴%%洊 r9胪,k嗼A'N=?)劑d1幖噻咒耕跠`巟绶╉Q抬~s佅齩zzW,b*) _U料a燇鳵# I;w焝Q痶虈 砣鶵履寑A摲#璓硙1胂J%苮8?琥腋躌D燾a 堇':{S0 H沐n进蚄渃pR;單:{妰zd噜;z觗9l1愢晌*+鬁龛3#諈8潒-瀜轼覡H蜊癑3侽=1@痥懄3燎8瞒ㄡ6H豀>b簡w媝=奱X芗/B={Qa﹖ w7g,巨炯cn巕濿皈8k鼫:k鱻P{樭??聙C博+pgq苆敜娕rs優鵗籛<68x憡Là蒭粀對00x1讱d仱'j撓-诂caU`&茳鵾䲠 +"债>蝸p@郻Κ,p鐰聻 玼⒇鍤礃QE +( +( +( +( +( +( +( +( +( +( +﹡鳧L軴j稵o報"亴滅ケ%"%Sw藨兞?53尾/n軦雳6crG$'螯縅BJ;3t- T#霻x蔋Hw隫p<憘^ 菷sV仈6YX(C涁釃蘒侁}}:岯x?.罅?8*R砀|莌錺凈x根[咖驙橓$ㄣ㏑A咳↗鶔@};U呧|蕗_兢专獪 芹覒i陟kDc谳W儨qO]庎^9醧徫滧蟒陚W濶x*H阷 r>oЛ{溏j!H纤徥沽(纔0I籁9<銉貂m$268䲠虐rpx蓗M2a卤9,瑁)陃F:l1升(檺獤C胑彲"壬籶蕿蔵$ d鯓>Vc僕,沘炃Q芷S,袳g0QEQEQEQEQEQEQEQEQEQE勦d8s'Wf躿灴_閆/厕C腮O"苍郌H9'璂帤 F浅`n抯悾焥锿0q冇鈺HbCq儨{{雳櫢a伻&蒴9f 䲡c/輅H圮匔g)兞=伶昤63d恳氊泭I澷8槧wI$7覗=噁審>跨"F鈥'8=yC盀A帑v4H倂鉐򣡒稬7#0鶁ldsb:wЗ nKc?h+寲\n⿷,mv蔿J壤笸I劂#N 趱2鋌B@沱\u&颰J楹6诨陵r3撰s/颱F9CP适7崰鍮NO衪з9鸎q絪8*栨3粌4h秀 +)9系-QEQEQEQEQEQEQEQEQET訦)鉸璕N侾鬅,战E聢AzgV嗒额搞恴擄鞾藄畳懗觨Q衪 và$'?_楼濵蜛,p{仧疲摋\~U,= peS8#y5+nU'n7t疩C1岾 9⿺根睋卐鋥lU[8 r睅W恠躴䙌鋩し9'┎X 讧鼄2Af#'8D昋  +廕w六N迅`鳓鋶 儭属?)09n燮?咷斧 3巟悱;犎#榎&氁Fe砪'宲?檄J鵍翢頳扊鳗⺄ rH圴蟸鉓a彅嗆Wz伝i]6z`泮廽h\~ +泾c渹H#HΞ臹G<:馩 +A;貎伹=W笞穇裢1\愮9蟸 49*7荮O蕼c篵J'忓Q蚤_ +-偵+筃褟鬄溤p74m紷瓾悃獣>d\&8鞘rOo甶 `0罶溣3Ktl袶A去璑((((((((((:踹鞶ㄊ9&燪渾e希;u.A7l虙`8席酙槕扏 `餶7观 珻!%蝀尊禱Q蕭杏G%忋Pl憐蹣|;I吏颯徎轂@媵9i V搥pGp珂7鱽9g籲憔Q牢1硇T9爬 騲 ;{諉F屏_槔鈋 徏 乡庺0崋 O橧隞 圩 &傑幞釴{蹉;頳}衯N9畱Eg, +2﹍r}齍1La 鋟漩2%U钗Gc焃涾A狈_髪H︻悪芚#x<鼺P 嵞O^")!H'n6穇酶胗闈翂<摀仔S$t}L/">ZWQfO8顉w鷬D. ;~挈絿缗H仝B19歞7)蘥幁詾MDK"赌焣P徑镲Y钞;!<@![$佦邭k (+p?>炊鍎,OP( T暻掬`焜d4鞗}=P覺堎 +7爷肢c姠礃QE搪((((((((「m0酔MY2 輦鏷庌窘7cJq鎐X鞻 $VC雭熻8鄙禎詢驗_烴緮9~Y諛`铤*c惂%y}澪籣A兎宗<`瀲覂轸篈荿嚡鄇M:-I[ Pyo箜WJ$鐶8妯r崩躽?*9 1灆苨掖壦W{慳 7/9'y*扏裸ЕjМ链pW URH鐚注糸忞鞢=9d邙q卿yΙ8鶕h>銡X鶒闖般<籁懮垞  鲰@"1搷/臬'^狕勒p尐<?.煃>"~e u 庝u臞4巣屶g?/C腚OR~lnY诬抭9Πn鈕粧<熓慓R' 鍉广烎萪踃(1认n$纮蘶/蕕ljaP=$廲n皭捁芩寽] 鲯EB8,轱P矮%N8 +鸊昙 G{tMl踗鵟?齤扤釡喳U`錒`y荙SJ 缆炳F凩柗 d `撨愞烰覸迠 k(戵2崻27s莹諟南 #Z赋灛n甝*蝋((((((((橠q蜇'ф+9諚齦dqR輁;旼7z凮1lz珃6顅S儕豵~ +=}冲犉 +穹>聫=p>S霃簖*'m尼p;s殩停}E?tw<颭?姚.躢 O蕭)潽2З?耶[I1 欠T<#佅f戨R.2$鄜D奁3畦虹 尯崫Z珣楖 昘檹^勸)澥X憲翘O>綇贁4W孾C胏^#▼蹌;14卑ULu谫蹉菣閻7 ?^}枹F2G薮铁撣凎c樵酲n佶m牔螸圉腠B! rG\n^?螸p聭<6z}}=建oK +0|芰伩湆宔{ +侽1礎郥瀡pT佌WTR3dpGJ杢E;-亙镾BIT兓*籵S憙杏憹~?*W-畦r$鲷镽D踈:綛uQ黼廓~a +A^閵憂H +хU:i櫢6mE 0聼Y趞嗍c 岏麓kT顜戝晜(QEQEQEQEQEQEQEB蛞2劉崧1韸 戯[WGNG輑╋YY鄃23瀔)-N|簯69c橄aM纭苰:R01臕袆┓や摓齍 H骨N} 4) +藮8h=j+A晖c∏礫眬 e堢鼕j7a舩A濞聁骻壭悒憐飨?鉓b,W帳`騷^逜煗C'Q聫\f$8暗 洙8 }xゝ衍屢噔1茿Rh.:cq泸Г`/蔄#''Jj巣d鷝詟0*rA ~煗2[6c()魞慘[濻((((((((珃盟##N??則镉掖oX琻 +'昋'@x0zVr莒¥FS罠螹5_懪[孑兤 扒3鳷3紆ㄇj0f 湈紡瘛潏禽漩\岧jEB>匍Q ;渦且瑿(6H"少T##r0s酯L儌a蟧捠K97m瀤曃懒暡Pp$驦竖芏Y咰9菪麀U m.)6p:傌!坶@BR诬跖+/苲/iT璈zv阚5&╁ [98EF)酨?嚋~?醀 0鉽罟䲡Rl'$1=3燓礫F曐F糶tHOp)t9Q窑璑窺E(((((((Ж#>阌熓脝]寈哨GJ胆抍理詆溦0 mq骻?忶獬栫e% +頗b#P股诠臮=;嶚魅@*3彲璑]0A蟡dY8Zy鋚}y'!,褠F菁 珳觚ju] 煍宻邔馤塆踢0胾.菬瘵).ゾ圌鳘G4樕惐A寫 轼{Sc 觝.FO?峀p 8\倓 亷魩Pd&@|1&Vr鵽齤E崵榤6秪滣歹H誃扱 N泖@閺遐晩sw6渱臛QY0尪N2#彠錝?2 蹃艷謶B嵺搶03迁<}i挐堛?1V 8?w烴齤$P$[1靔B6萠kc;囩蚄)燧身螻唻枻, 0櫁$g∏訌7`Nv葴 g8M擛wg仢米赜@+潩8騢皵妵>S)n裣=W瑽@+<慥苌*砿%H'啭誺R燿0S诅=籘硏博a(%倿~觉 K抸l=Cc>秒S)R繤鹶9=z|跨药M 躎* 瀲?J0蒨曏r8.U刴懬掏烴黀胮`tbO]2AUv豶G^詩<'n9嘁笷b罭崴|8寊R 洉7蒇 + 窼傎雽铑?蝖Q吥lv~c=鐯3.佐芘妴Rs臫t蜾*{T磎 ^鑭H灳旈蒰聦'滙灊籘$2jA喠=6帞喴酵=8煶` n﹊儇w*韒>聤(QEQEQEQEQEQE譵╗衒滺zs@草慀f<鹒爗瓛,J汋q旟A#-鷞Ui.$瀔&龠扑A扝侔瀤>#绠Fs⺻谡`Lc酴F瞆Z膯e$匜_ '氎圥r;戸!亮牍c攮5刋a惹;槮f掛N|灯磉xg +8鉸=O險V1酇1钎※H峺l滅Д;眗G眃輈sUx摄謨w讋c誟v1毈寑G焜M褎 .r1焠砞媌臬ds誷焞g羫6皙 9銾l郯黜JZ2鄗t秫Qv="鼉悆>䶮覅间 +ょ縎>啐z,9 x~敜艙匬3荝G4]嚦廱w.糮q.r纂N鹀`*=咳AGB>頗 cqE貃8韇qtH%q)遤g卤嵐盖o錟2樒眼8冉B嶽=8且媷砞嚈 6{g})鄿}軃< Rp繿~&"69 酴税$湶,W唜Z嶳\苳&炓P06渃撚酽刺Wnv亗r?*摼腨荿A*H頨╘忛鑚! s蠣嫂薫k灻9)"錀TZ垂c)TEPy'骏j諹剫鰧F孉绲j直蒯-倞(0 +( +( +( +( +( +Bp 趑ア +FR8a其㥮昁y驢厣]拣<⺷ f#x9鐬;㑳嬡 皆a粇濋嵶熷N彲镽n,扝` 'LPXW#擋鞰c.(擓R PI!)h +( +(((((Π蕬躷=樵至R0Gz然(>6翥>跨症#纩2:⺷riO 鵶=>凯D8P圉帼"瞙飳晳I竘}:樱朕扷ep#亴詯F细ㄎNy鏍萁.J+6制s廊={>c8上;0_檁n9?*hF蒕间 z耠Wc%aa儊儗?齴7m(?粠$u苲彦眗<睊x?S迶)q#(莾鱥[ +9 +捏灵倶31\冇=~緮,j2兓#( 焜儢我廟y垹m*s=Z墲v皦r犵'狱J導 s惛鑘,yQ(c謵;樼p~q3Q肋xH倾4両#*1嶨$#蚓Nw?绛!?9\琊磉鬆)V艁冝傒!簹蘁 `更僵宀9?x}耜:馦贘卄 +B98胍啡躤{u鶙馉t鲜s鱻Zi#`鶃 <+n綛9n*@唬 擞寲c莦聍c橼4揔q-O鶷]q焅州e$$多侳O袏噪ZD猱觟硿((((((*垖懚褻c孴訮4祛9MliGO~跨瘿 v$c蟓籴I梜}駣艝.F\儙樼5寱廁U鼿y虷庛卋^隣Q撚钷絰锧! +儙磘V凄Hh2n黺8硝鬈1螶暰b腸I2勭 +L-觪0搶n*蒃銉臔氲蠕b.-1儦x暵%#滖膈ㄍ(夕z搳EYu&W朄懁蝡>柘痥0.蝃撚颌仲-裵>lr}j舓踫汐W汬QEYQEQEQEQEQEQEQE!g獠瘯扚b莄G閆誎RWb@Ns姚KCj2磻:詰尪0璅*h薽悌琎镠橮 嗆;辎5-亗s巣妝0=7c<8!,0湃9<侊踱鉔B?8=餴K{z鐆情Jws邽溡,躈FB濷鎫R~Ro7郼無鏜3.0A#擄⺮J!A\幚?^敜b蘶飨LC:憪Xs孲O蜏+}:~U4ㄉ;6餓厢妽坴q$M"摼a苝@ zc)阹 怓v巤焭L}茑6B灉 +LF躵:}铭<皈1S%営彌笄湿03伱:~ⅲ擅31驖糳鳋T旁t8-#疞翮4沎o?*鐣+蹵惘4龔N*$@^萀3+q#唟Jn葡$0^?4饘rv钰H?5r 廆pzq滕1b_篈扜 c.C箝堑Yl$巍筣层c詸Pz曂Od,酻婘8>6O颿彞(晁`侪KE瑰Q@Q@Q@Q@ +endstream +endobj +127 0 obj +<< +/Length 72 +/Filter/FlateDecode +/Name/Im14 +/Type/XObject +/Subtype/Form +/BBox[0 0 2384 3370] +/FormType 1 +/Matrix[1 0 0 1 -83 -282] +/Resources<< +/ProcSet[/PDF/ImageC] +/XObject 128 0 R +>> +>> +stream +x+T032472T0AdNr.W亼瀬X廊嚷P宪X霖蘌县繰列热\显?萛%+o +endstream +endobj +128 0 obj +<< +/R7 129 0 R +>> +endobj +129 0 obj +<< +/Subtype/Image +/ColorSpace/DeviceRGB +/Width 274 +/Height 624 +/BitsPerComponent 8 +/Filter/DCTDecode +/Length 10740 +>> +stream +AdobedC +  $, !$4.763.22:ASF:=N>22HbINVX]^]8EfmeZlS[]YC**Y;2;YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYp" + }!1AQa"q2亼#B绷R佯$3br +%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz儎厗噲墛挀敃枟槞殺¥ウЖ┆渤吹斗腹郝媚牌侨墒矣哉肿刭卺忏溴骁栝犟蝮趱鲼 + w!1AQaq"2B憽绷 #3Rbr +$4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz們剠唶垑姃摂晼棙櫄ⅲぅΗī炒刀犯购旅呐魄壬室釉罩棕仝忏溴骁栝牝篝貊鼬 ?魵( +( +( +( +( +( +( +( +( +( +( +( +J)(ii碢é鈻((奐(h(奐Z((((((((())h @Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@敶QEQEQEQEQIIu苎u襥3@>奻hq源萄悒︽汨QEQEQEQEQEQI趢*%5肼W祅符礿!h4 ZJ)(sFi耿乗vh43@\SHM!5cN亩H ▉N簹N4歯h癨~詔g"B伽-丩!oZ,窔)擲h淘((((袸(qX嫭敊銘q喤4甃#璢V 29镍'@橬85贯坩6懢q隡#'咱4&A4 勓慙泤dRf觪JiびBI)h0欽\RP趭2)呴豔I奻 誜WL辖X.hQE壈QEQEQERZJm-.(眜,L唜8晊(##<薟$粬4=镰k.n&丩h1殗^睶氯yU廓a甔塁@鏋M&i屶R皼M0皑虣猀%碧镡毺 FMZ& '泭欱誠⒐g苔* 躍 S 朌瘁%T-J嶱筦娠M*詻埂D.L^搖@X褤O擶'軲/Q鈸4&逧C秆E傛軍2+愯复f榋浘潊蘇3Qnb\袽屢且f洑3@\u-0\僊蚔抗5橙{ +i\R晳蟢昕6瓬s],C舣75喓wS舥^諱>\冪Z\氊Z壠jL)工咰覙皮挮揨迸3M&54ゆ汿!hh4褱覔MZRi3HM6 4R嶯)1N{P2>h卑蛫劰>E9 \仍abijr妼)&嗭鏉糡E盠/U蔒薭AH_毈(\滿+>*竎 f(?替US篆8 +|⒐g台ncY醜躳娷訅s条=l瘹59Rx肸z圹,冷巴U=&h#嫱tZlh枒+jihX!蝚芉E缺]唈S*笋Qg=獺 汼Sj堥0&拹1i1J(笭 +QNC@)UsSF-攼袨豫EM丮+Y堍=倞v " 觬E揗$跬d慦'$z,4蠭4鰧曂;XZ不瀓<詬f撍8璖D虮犛僑J慔)"]卅鏀s覛Q+辆嶆檭镵姭z5'檻Uㄉ僚&刢鴺治0捚&祋氂艿,嵗n"6烏嬦 sf萇C]鞺&T姅饌KcHb滶 +( +( +CKE7--&)@ 跢)h4n(ネ(Q@Q@Q@%託qね&h燱X"lY阍峙`x檲酹DH惘*矌j啤Y3恑帥2頌X慎?J鄚;/棯犗 舧)&擲8懄>妋- E%あZ( +(︽ 袴3Ki4洨I0 SD;忀EA秆Ua(犘Z( +( +(樓驪緖SD萂茉馯 驲6圠悮婕K&^5畡溩1䲣Z欱{溳鹕Jh峷僐^ 矈噊僒O"詁o霁裞mǒ3RRU9鐴z5儔-"l鮍T勊i溮*柪捁葓.颲n畍MD膍鐴$=8慔M`xn騕竆逝埈硽fJ5銽襤 4鄇驨輮5%G +v餳谤愱)浌ド;帳&is@V泜 <歝6)墜淨慞礊斴"鍗聤療z($w5=B J 粴k6M4L髿".M铈 妭90j赂".-ね.jK迶P磩S 8/1K1諉+煱s酘K尻X8產轞J夼簧P1 +輏敪g(\5龠秈\綠缘輟襈:幑T鳔+6峥庪笗s]暁饧 +郵JB递Qq碐逖鍔枈W場 +c/6)4T 肖姴Pi姭榎T送0G妜ーB丕f憖"愗勪qQ04泸覂殺Jf脂巴F脦j攤(モ奲眎咵W29j挸N茘\狭虷3 姲)9Ж0*湁P+<垣璌KSvUH隌"暺E@戏傿W%鐼歱臔5`L拻)q^.觘汸妢箞餙oMu诙甙>馲癊$襤ㄊ#XA.擃+g^蝭瑓Q奷躠鶷O懹;(A爓:o垌i湉j韐欚c┍p175益n悒と"M跟Jn7PIL-F陃03Q';9圈啨15n\奵QS$R盬E7*/QE懓QEQIM萃戈倄:豫6p)珤 Ee<談&慔4猲洧@造說怬奬g*氘Σ鈌 +z淡萪5鳓l誑FM&琝]9輙c 阫-FS#祂kwK毰F骡@ s@4禹J[仢/冨踧4Y3]偠:峁冀Yxa婔糞%a|F膅 0l奵i狖恑+挆悱0)=镠颧a櫷eFW愷j瑒JI5觯a璈梣4獓<諃.O0妝AH0)r* +逖O軪%QH阿(*7闖葼M\猓,I[&榗腑Fn"魔="R縉=@剬%X<誀{┍2痞 儠﹗\尧`v佢硾灾貉,偙S搳拮Sl1阒皣訄ь丩 :l;+>⒓"RToF陽処gz牏鈐.Z∞sW$"璪褦晜69妞4艩揗坧jw3U潏4戌<渝府薼A pi※т-`侥芃J瓉Mw橭 W+H ;朓蟴xj\麔驮Q`箆(倞(挅c淭jIn1 P+ )歝!"Ε盓醓虳w +衠5绛Z3!7秘S澗^84胝_ 3豑D5we舎e$楽ubn雂 臽儢#?屠 砩Ρ篵り亶辖z^/潳@傥+J罴>4襚tu鋛V)(LV*,$T*jN)輮舋 +咾|sW⿸ 姤&&憰萳S&1O5m蘣k8ьCFE莃"茞撝澐灁!古!拑膳1愓+3迠嬎4S蠽f萄汗N嫃う瞌 +庋E ((痻矂8mm嗴g愬堧R.$芓驪i 郯:# +沓∕靟L悈u5:颮<驝v3醪>苿k敌雬 U"故詺U$a謽囨闭q鲄譗鄼断492+柇 弯k 纐奰w2,蕝纁壑摠 jl巏W"槾优)4啇芈歯qR:gx蝚鉩7pi*2y=W跁#琈<蕘 *f潗4嘤{S7`襀.H┩8拲N.?S3顴+奱#4瘣*矵CsY%sI2G|Q(臔突歫懸瘮巄馊 <b X巗R釸=-B$答涝氐$且QE"娳嬱睌儚斨o嗩 簁+Q埄|A9娝gy舃x^鉧紕K軱没檺ㄣ瑼nIvl駬R Hy銽仓苸 Z绫-h孳隲9晄隠 桲媡蚏y 贴B撤qLD啲XK錩B愠 +9k)9坳w1嫬"厣n+v9r+呑d;豉 u諲Z6鮍Z;3%th巌Q荖(54L\ +B犚袶3)綸MKN獗NH2:R,8r +|蘚'屸娲橢@瘐5q% 鈺I蚆$&@閆&g拭4RmoJ(,蚮Na儕籙鍖搼\駐f襑+ 惺H鉁蔌璔柮F4槉TpO4忉zQ╤0蓼I=j# 颩 揈傚%8H1U僸Q0qS蓂骕岂& F!颳鋥V潀-嘇*`UI梣 囹k属〇儳EhH鞷ie觍T蛄8H礷nR沗=+煆檽=蛅Z沃8嘧8)蓍L捨/#経#"猏]愵錃1"覠j湏歍彲J`j +%构ys喇驟楰ヂ{亰笊G螄藁_ >\珛詥瑣苧&彍f+q\直sso<(嫄6氳嗌塊鹉sND沏寽诱溜Le猓璄;氐慒j!L1>h)鞱Y}h錫蘋M#40Q糲+1! y狜圜㈨ B(zQSQN,))h,崳V* -Aj觝M&e2G莠95ˊ#慙h詫b璗!g9鏇*魫8Q鉦x琭檽婡畕歬 O屸欳g5iY渗2剜誌`a{V挡肣攖F嘱Y/8闅姗菇=帄%q镽8豔T驩躣l蚮lQ諉mY篧'#0颙缛鈽簬) 戕時縅v8鄃謷Q儦T護嘭PX礌鍓瘤1婊?〆櫡1)0凤鰅楓睬3M駀[Rt骉+?暙*撁qM悗-8ZB)贸EB蜽 淪皊以"P{覊a虊h.闏愭屢f讣袸(茄EQEQEQE%r8o橥u跖x灶牔垜9/f$調b=3S吓拪ΜC)荜+4N*G R@穆瓕)鋗#覒EK/n聅-,;ǐ%荍F*3J賘EZァ憱臛鏈醌FVr=暝悳X>K犇脍囀绿%M礩CP蓉╁Aヽ微┽借B5á娎 +( +( +(竜6粨\'増7麉4LWC+<霏盔殈!:,煴#"銧Vk6Br閃Y鹭+輦m\撐:W8$譍y淡軓J嬗俰嫨!郣渃逈铬劧69 &}*oSQU6Т撌箮@q啫酯4膋^皷iル翰姶q䦛焜<5祻D痄瀗 螻+c/嚯l鍒熀佼敻柵*)B丵1逇f簪蘚艑丂`j筨5楢>P箃A9Zk蘱粒憞9g +:TlEV*溣灏巩.(@(蓉(((C壹Z&]B@9縪簁项泒敉杵/r瘩y憫灂獒m薵叭鞨l婣$]邾l 能嵤z)k;C2C蛈qJ睤?)樠 `餎sI湚栾箞焜鐢鞮:堻r) ?V〆;h谆k郑=XS謽@"`淭^$yB佒~諛闏t瓲汬\v▅,壤Ro聯旖<3We?氐H鋉粶颭儬a袑中厥[徚aRGh YR獼L#a< %舂3欱Egr+<礒咋qH5i碝慪` 骎帞蹒8I杀仛*]W(捖(()(;嗃 烢5玟頶8昶猴軜,\顡亰鋻9`)6)6葪铉4蔁QW⒊;p輎鏝G瀋NC5剑\\5螌駵膚J玪蟚xピx9-嶟Dl|糕沟蓃kgR敟?璪菧#ㄡ偫{愁滰禉oЩ皮2*_莒8T蚯&礱`秷迚歁eb孼r F}*K8銊+"昭檸苐璁y'趻H甪a=1nG i攎鳙\栐 Y期Q$办hKQ6靣>k韄:P皙p溦瀞TJ3p屁<姺0<)-簶鶢6騭焃艿颇zaA亹3瑆J_4硯TYS恔柦娼瘤裣+H8" 忳W臬0\暸M-闤軈  璉搜匨囂s淤譖眠毶貉晭a%[爱嗏e錇5#b H揑簋墚$Q岤諌禛 俏Ej檮慐罿堢5}TOkh躺默姁91B璠6<)Dd觀#讧A賳z)瀃zQOAY4QEr滱EPEPR$籁fg喤嫉$v燣宓+柡繏A鰽伦[:j{牣Am#一 a9荆Q碞ZX瀅FH黎7 +晡M埾]醆k[堗糋)煲[旜8鸴笙:D円e\ 滥兘R譣WM慬玹Ψ8圓S*8 `鈫|袎蒳2j仇狜g溦鑈l燎J@妛 >敺 橣:歚)0{n1嬴*f廙lvn暻H 尛u馕E鳏蔆踺陀侼k{F樮h褩<ㄅejV砛匞\值叓資滀摎灒秴V躺 +埽|7+*迾Id5捨`} U游視Vf!毅謲弥]EC"殶4婆4K)2澵 嫂冖bH璖箻疴梮5\玽j瑓vY娶犥hナ5h:B((氳}i訮W鯴 融M_X铝眣琅RyV蠲=普 "愶s熢勩5慸9;j己h歖文屾2"R捾9甤_暁鏯液;橵欅牣>w2悟摐*;矇C嶦F".pY椳Sa囵h*腷詭誦8b 愈騣皑 苨P9呻V>>Y蜯j7oi: )*劋瞟扐閵zN+嚉3gh霎{D訢瘳2p鄎颷`曧芏说1囙屿鲜ㄇ亽 $2#恞E莄E淞鈿%餁拆j5瞪赦禦V0qw')愒縢畤适熹隫禢jAn礬鐹 畝j椛菱.Er暭*(ヌ脮QE丒PEPEP{泡n弥湲懫p*R#"1H鸵g彴ι,锐莦}晻姁[驙g3〧&;I=k礄;H涤;棷=戗枫钤粫褚'5t橶妖燒歰俳+掺08` 嵠>韙F圪│貜颭v-tXv斮\5旋滫Cx踊 fM>绡朞襭0c"簅%烤h驔]唶; wJ纼只k剴嶦g磍摭*鍤 雹浯壞堎侵凘 拢}蔞#c|廕d泲蠷訴奂呥-P叇揔M"09*予-%- LQKEQEQEQEQE%&A牅MAf鍴K烄hv2eXZ墍8╂釽x,##"烲w H鈸#帧;呔!T\⺶`F@哊i凛>#訮厁鈽Q嘡?*昘0颧`S欔奾*E驫4k詐}猇際hJ躡 +0霈!苸1犃} *"攰#囶t> +stream +x诘<賠跦掞z*B凲誳詄硕l(髂嗇 塜G惠_?yP 临vll凜#+Q;硦>=?{9G氤饲W逢,蛞聩棠╃3yIx鰔齟鲽鲮骜靇 PQ3l;=U{囤灲痕*旌:1戧W`[鶓g旅jX殕齕枘3阷U嗉G脋漫M苡.eWigU滫☆WqO'剿*辚+饞 u娺:司灍蠒姷偽v$墵铰v趉j'﹣vm2鈲筘x"=Eho飢#5 岍$=nr f郜豵W椪2蔯j靓猠鲭l5m]=;B汦0}m戫请跩~/蝮捞緹G酟"邍橱债坻粬'靻Z磺L5OV搰衏_Y霿U]缤沮瓔 7U[Y篮x俅2炚-~ -5!Nc堟:鬵W洰^m篙 ~a +I癈摱 O.4緊67m烇藎}h +易yU煫x嗃6閘E飽闺傅se苉O?xfUuu7?骑y富y秊涳飾颚碛n}Q1@P3虼!2<灖羖q嗊rww$z7^罶y)唆儏,z&忖躦鉦觥玣w稳kxKl啷蒯墈鷞C<莜牢k.jvE韽潍痌/牎贿 L糠X韋Amh枇y輦谧 渚泈鼔&星s<戼騀籗d蘚y眝i+-\r丕呉!導S櫥д焻\琉t侐翲痔駃戏s键罹理悰囡):騿 匠,w 羰 欭G?9玱 C洢漶X2n槏i妸E|d3硉愞8埉'Xa缞蠶0璍+!⑷鬇sf曗2症bKuh_ 顔虿;偑g辢O朰O擨N0蒜隀7Bfy5 芒U澿 s"際o?勗稁6権讷O瑨$簰d柇6\凓齖3*斃t诚篚价7 ;d5諯抙鰯愤髚荢m彣|╆⑤l ['2耒 +傊 L褜r#d佰鞆b踡y叹暓0媲Q阰軇鐬r}U幅鷤嚳o娬骧~たjrnR! +炚- u苜3闱核戍e P香U*劔L+躚阿鈝橮裯餣VT菒凳鳆rdm^㤘 饼副+着3.}坞|肥荴诐 ㈢臍蕑 7跰謆 峸U耍Hf淌2/?Q@*郗y娺*瀁c柰踠椊p潙+si騿3L扻鎡賎綮筴;">纯{阰 h2Z%稸恕5袔*A2l澾嶤u鯏庭中繗鼯T擡+3 嘬'俫嶦?鰁U<瓣隁丞尔wCw撜c汆租鐀懼Dゐ + 轡< `F.kH盇欂)k媕囒芭p +蟚Ts8尉T櫞H岞O'k[F偑朎嗕m昼=k(媜@瓬;麨L豷葎蒿 [!飩嚯|U4 |浔傏":踒g咹5罷"1边兠喬冴9萁鬳Ek嬃檙﹀匤*A囌:OkЕ餃姫[n{?*賨玔*l驇膠對_sMk稗]籄6閆Wj琘 m擎/2鶃 2^簂货甔}甩u慝C1{5h 僁隙y謤怏,4m巎_<喠&儎崗e1赋%赢|烉L梱滵裊ce鐲O烩O額薰Px:烖睆Hb9鹘8橶@瞳g鮐9 C(絓嘀!"D枌碥LB嬀輼xv壅阿鲚穯aHAa妵.奂秽櫡(韶)玱|萣L(劑b;a<%駤穕5{唏+~軆nW 窙7h井除f鶁q蟏V\lE畁柜%B0徇蔻[V7y蔺9|j* 谓 +9鑱鏗钜GR伇踓d褅瑬/漈':R4苧唬*畬8璖褈8R攉Q鳧慎b萉D塡峪犰 楐R騁揻B萁`\z8L帛M垲y蹶颺]/シ瑌uT楂y%瘕1厛7姕s/乴FP>h<u嚔囃莝"hX跤o簂"筇;g淼瀲fVg;姾榯H悿撑Q涫﹒ +K爷仇膣/Q欻R穊耀4镮# 蔾↑[蹷/螷兄掍鋰>曩-Pet,xs歧uN喕哛嚴4拨¬兩<3o1^s ,|嬯:gBJ3>xLwuH衷xI2朧晐覟!]C 2咣g暺% 駡d/Fh q涷楝 漯2oJn塳奻d陗.0芻!捩鄡&|`]哫うO鏠蕧喋q圩糳股鳄眛A昱+烎&v紗陿版,鷪癆 衜⺄w,RD4贔礼%m(e廬呡2旌+殜脑膬厳% 3c%td8寰褎輏儣-?黚弳=岦崟昉;p{t驡薐芣禛嗆鞮0苯d嘔F恷%R#w痀^D3{蘻v C雑{|夈nw(2閜嬲抿-s觐惹%KZ [jk骇m袯*~|馞亙頞战!採S椨懨 SDO 奜=尠ペ殉T D蕓8MW]捹鐔=.傲%=G||S鏨踐馡錆2Vt君c桩+,莒,u得 堚0瑄6霈簗Y2砵%6鴯猾嚕 孮Gz鲑[z O:髻忁 G扴k,p 8&U1ⅰ孲E*(爮\満忔oV-啊588菵関S犂囿D茝9擛A2L#vkk黈咅弣鐲低匯wmV掗暕啪.剩&櫋Dh嚭n@>奕ⅳ5堒wyZ摀毗亾%(%擡[Xl艓圱B?匛徎e琚碞'椆kda嬕R/(柳,珬s2 ^实撛2騏洴yi 崩慘Q!i}.!=貸鄳|{.K肄g嘟a冟%^]V享 B請哘罤鬢貞C胵涔&`g辳:稻\猊T8峟% 13闪N1/.vu 柽◎C惄編0镦总xd躗J呿S麯 GJi█JU"Be@鬋彖L83(@ +撫陦愳2踧慟*踖隠&?&鑽瞽毫X肣鍕Y郡XG砙蚡胾葔<~U Y謍兹D 藮4U俦(酛廁繣>褁.5(砢"RI尢 釬稍/p扩0<r<尫櫡H 顳轩桳n鏙醔&0逞镼峤!|2G檂"迯bO陭R臡瑘釮贋&鰤<﨔囝頜Q畇灤 +F9f 鎐RB 騩Lu +嚌咰Ym"棟,;i怃`g*O木Y腫&,5黤IW j!近挹%鎛懛?~幜蓀罭~澟繾鴲 +"亃蹠}t$栙A'I畓倌鷣P倹h,Y^~攵?菼狲[}軮f牭ne禣#t谂貃顾?1*鉮辵c'螫&u頽<駛祕\ρ>飫絑丱投r+/Q者嗴J1螺g鹽繄2xqt>瘗LA率呿 +~'鈳塜8囷嵃匚思鵁 tS议員偡 憱6徔2漶X俏 鑫J茩/8a5J0睪~D陆,8i熾X挝歩3*蕌m˙唒*4炞硴耚v襂Q',傹琽彭+迅暠0忪荊,Y驠鏂]莜P=y;;T VaSU"7!p籡A3悳!鄚汞<u嘦鉲zY\* @莤U軵PH制+%喃 X=煹謍頻Tq(p 氡酮斯xX麽Q⿶`  `W窔>欜哫袲坚[w垐査嚕婴0笴\纍8(e3n+O壢哹%l讀族婏亨鴤愋;<-偫u鴧s^T 2oUm_爹j倡蔎B3.艚黿者墄誣睓>b +O1ㄑWヲUd罆闊Kn槿Q賙+狾?鐞 斊甙。刋鳕6Z躝挛=);>\胭jv屏5崿s$K}:奐俞餻斎郣r掩訰i9E +毧爮/輈栳駻嘋竑 [礄8u丳擌;鐏,餏嶡粋=.D阙}(蝶隘輐E彼蟉@+缋R粐亙邶$苖8?9塯%y +>E*吨徼糨窏n|篲褅j靜%t藞B4N唄镻塸L.$碄=F近陛髑丛眀;[M嵀捱-$栩誵,v熃鼗0*訥塴橍2Quゴ摺]&k痡ㄈ峴蹳共偉圓V罋/d攅"fZHH褝D.懂#柤#B]宋毂$祖.鴪^傏谟T嗾輄亩儿\A憇j{+0,频=c籺*糖泳韪4責F) [ 犸n罦<みWk損q DY蚋慙讂6轌沷饅V觃(妣遾3怆『|a痠4O疹6bc鷓_秧XGnlm. h级YwTf4*n脬潴a64瘐T先嶆雺G9盗L湂鯷$毵m0 岾﹋y1滲赫偒8On屶 肸` 攵`鱀)澃3嚋僋Y(0.媂1W锞,8e+喉 馊媶呷沂{麚k変!瑊秺莽凍T黟{-[醬d:K*怐< 剪*$飾莅厇嵑梹鴐SDX,禲賔粶#y_並斲峳]Y\後搡猂1&骊郌閄烐H殰r罅段 +> 鈊蕣?k`焗闼 犿]Eh|犿JF3絤;丈馺-=仪舃qg-塼an妢p锨8 晀{#}B孽/疽9浅腆 4,绫}涅疩鄀晊檐^/+.崤夏諣 種e釙M0 h,8啔3咎 寲d嵄礲k島摓($荌#緂'"顡跄澜膠/v+WN +±x瑨8r/蜂6^,縜A犊 &騷納B礰叻)6 , 鴥 聊香姠[艬8簅厐e挡婈suRnF庸軋6-米霰曯 蒲t裕磑o/贱n泚叫7笕g +煲d峾蝯敵_N馢极鵈噳鑏1槿^嘬~T漝]滠2Z疫7堦意O5p槬騾乕蔈A* +1枰突垸SF簩咱q昞显翋艀针VxI=蜔Z柫焞\v+{諀,Su鉄+膹M注{闅鲐尌耖R訴\>=Wb昃揳瀱T F#sod霳瀄f嵨{S梻f!犖韈>P觍<僰瀟 噭驸h~俚 錿珺5,)睼!! +剔]猄r播洄鲳鼣+H鞓W:5蘴㎜敲e51g煑 丝Q耟O餩/犭 +endstream +endobj +131 0 obj +<< +/F1 10 0 R +/F3 16 0 R +/F2 13 0 R +>> +endobj +132 0 obj +<< +/Im10 115 0 R +/Im11 118 0 R +/Im12 121 0 R +/Im13 124 0 R +/Im14 127 0 R +>> +endobj +114 0 obj +<< +/ProcSet[/PDF/Text/ImageC] +/Font 131 0 R +/XObject 132 0 R +>> +endobj +133 0 obj +<< +/Filter[/FlateDecode] +/Width 83 +/Height 117 +/BitsPerComponent 8 +/ColorSpace/DeviceRGB +/Length 1263 +>> +stream +x陧\ 挙 鮊苌;錘箵#羦怬籌uM: +I轐临m2e蕯姿, Sy怡 9+俐k7奜崌圼g荈橃喷=gha竌)焠岶dS 终d'{蒨cA纓炾FCy$\-I.)9僣;蒙瑕袭`*僲C 瑖s覰-爗!坸0,膃冔1终頼G腭弃蓐u=瘎t堃l蠶莛񪡳垷i謸B郤楊腍V_I蘦码竾羔gV簐2a>;钍5堋湡~?l[jD 胊蟧汅阥==.eBcx撌脉y瘜0璃Q& n*%[h-昤諍 ++驚蕥S_懧鍮莩89竚臾H赥歌猈娘*袘In= 萄橽緥#茐鸢9#Qfz炽q撨洯娣鮸0 艾'岗㑳!农笼銆萴巿8{^X*膚fPP奱:鴁㈠楪\kc巷J-?N嬫鈱!蝯,臢|粪_㈱#乫%Eo蘌^寭襤G岏}睕HI"&9錪脳e)顡(X諈KgN#@d7峼/薌=跑2N亃S䦷6ii1f饧閱7Us轸r玴餉┴;翘`箤)p崺塗D;藑.s驩佹-鞥UM&3鰰犪掀`覻鳤I8璯,^nZ5&>鉶G8茻5躝\蔴YY*鵡M咳敳-犍_z槅3韽薮泷屣庱5媟o璒覼浆缰焴)E5幽$3蒙,邘鯩婺A橖/镸沃黉9I釗[羠煵硂/濷DG赨A#Wn&0郛[ bxM~K01x䎬E+醾⿲1姛QE蝕ST外@粏J8轂J_o0絟飗z暰渳e6露4桊`轐in謑['装幕M始/纓3|渚+^ mf襄啮m眊w懈8圁┝Ls稀苅穾\缹觃M/Txp访赬過w6B椀蟒篆-只旨&瓠 同⻊穸eq _紩邓UmLa俹lK+O:`4f耩 +3|#.x]<馆嬲t煆lzk桛R髑8蝺 楎v廳淂槎籛揕叚/鍰v齥鮪~Lg鴼?+ 7 畇)鮐 +璴6秪 &駭滅^8螹7)攴X5<峺毎浼"5i}7蕒e忬)841S籺訑)S2e蕯)S啜 +endstream +endobj +9 0 obj +<< +/Type/FontDescriptor +/CapHeight 850 +/Ascent 850 +/Descent -200 +/FontBBox[-168 -281 1000 924] +/FontName/ECVAON+NimbusRomNo9L-Regu +/ItalicAngle 0 +/StemV 85 +/FontFile 8 0 R +/Flags 4 +>> +endobj +8 0 obj +<< +/Filter[/FlateDecode] +/Length1 1662 +/Length2 20606 +/Length3 532 +/Length 21546 +>> +stream +x诂穋t鋧&湦c郇囟m跱:籧垤囟潕瓗;;閄喻筇虣骷3_f螄Z鄹龅筕Q挭3奪8歒J9:Y橷J@{37W5G{%G^F5K+7繽9'<%ジ嫢)梃 a +蹭h[Z$,llV^^^xJ福摋 惺犙T应ェg?&3※腴 +磖Pp反st卜t齾vT反-_乿qe]Y%i嵈&@谝烈旁犫ff4(-\-i_]v~,ゆ属K` +pu4⺷臭4穞鶪p瞭汉]V.牽59鎣n+犋/BN.-掰偐8簜\蚞N 肋*R 6鳺 p滓卵茼煍 骔 2:@枮b橸,甆vcsr䦆啗+辛?0\,璍],,]]曼毗:'赊陨晌隷迬产 WK化L瓞lc殐:33+_,朳9澔ニ +D笙绦%aj徼`鞍 +犀@譭&带郡%睚k钛材鼰ˉ莒鞌L揽o 囡1u3?嚻卧鏲j大?y齡km育?蓚L朎粤阰kX榅-篔=--T sk繵S豢5麠\恿乱鑐*+憰呭?4瑏娑4侒*K溋遶龐?长笘ú胬R屣$4紲䲣(:Z?8bb帪FV.#脒垪嵜骭@馰4=ga齏/#閌頷裣歙僉,䦷4蝞柌嬂坡塔餇鎛..囙_鈕U鸰{ai閕i 穓R4萷凎 "易缂)銵匙樿2J\ +郭* 5籰缜?S> 連炣岒6oTD\ 銄矣o涜琼S)m}eT&!難笳剎;啸$/ +d縗,,錏Vv柍唂J,TaS团r恏y z毙:娱 廂c翬>﹠鎙z杵1.留Eu牼跥 7mfp,蘣硳Q>鴯f珲YE<溠:びE5D蓈)5(&$vdXek拺T$F儇1杚1Mg代眝癢疹k%爳粬政 阕~c睇醣c歡0娬C罸]驲v迵^9ㄡ+[>液縷僇砻:"懒∷)晪煆驆沢"$q铓sり炝 ;&9忮K1缟津]n艍)胨鳉邘K汨k6趁-90Sx 蜃;壄徶/蟱VMbu渧#瓘[m"喰淘掽y'澵諴鏕0l%惔 +DY蚮2q:A賌雍l#$"竩n励赧w4b#甴T俿簯>癉/]S她橖D渚漯蠫J4充6]taY蚘齳?甤軥qN +O.菫1圚鴠胸啚.奃嗗鵃k5娚褭g譿筨餑Y)1: I獒蛞|頨遫E9Y<s* +S(vj=~魎诬.!D亁!謦=/5j?R-`)>姥埙P鋵 ッWl%D/偼p%r戄X緍v<捀,U?kch觵跺k鮂c8綻摋竮痡ㄚ輽v媘`选燷y茜S蜺碼D$槩?Jи禰^.龎畊圥蓍{$捂?H暨遮眿o慇匃.緉烏=)i惍X5ig鏻!薂琤 +怹憎臃U4袗>>鄾Eo楌 O|K烖}另-l +鐒攪跺渟~ -CQ u麶柹螷 'c濚料u`2壷⒅嫰d鷽禸/d觩烦蘌鼎Y磈Bu骚沇[:Z4蠱柤9縲Q摫9谊鰪64阎錢 瀿俟顋le/t葟酾捽滜賐誽5窏( `夼XR鄩l歠饻=\悧>9.?圝K媩 驹*擝崧bV韲R⒀敒/{m6X鸂谅b1桚w'r;m&2:膱At髲碣-徚o}q陰埕2)桝捒!衉/D+9蕤厔5譤-嘧k甞匿p%峷P}b晖劵煴W┗r,<浌dK韼Q!"+ T呃蜵-?譙薛禀 4僵+埗QBI涣^X|>Y敳~+Z浄境&R9鲒針 -":亩R&16A"嶕澯騪):G磽-Lm*U@ +契.歊祑潜¢'蚇5|8{n馽G,?H)(\螜e _恣貢s讎穻 狪{##J+囄綏疚Mw1tY賹'1,svr炛og[ 綜K虴毮W蚗iM瘽煓 姑 袷puU览7缊t5酭< YT$糋絛涞w"姭ake廹酶y=鴌鳺i蛪z$oF壐褊鬰x鹦716V┻趁W鼒ㄢ)r藑カ怲(0鍮┣楫!E=B~3}.蛟I鍻#謽3r乲 '锣8_涓险轿击[村忇d1宊鐆餂9殾砠傪K:駁P_鼟信媕沊еF*d_[ho凑巩揪輮秣,諞R$煰隋);d鎌鳀鼔1賥r擔邙d閬{`跏}鼒p鵊h姴 Q笔梺F~蛸譶do*ao/p馀產T 嫠輠觸鵛;鞶暲.6 +餧j + %沵疂挴 /漽軀R+臗4>繘瑳U蟉淳豌@珧 +朖s玎地豧L>澣荛P嵔蛕臩湬聰鮴e6h嚷O;Gm匉 選贕0惦橖[ 筚件v -s凟#諌A#"4諁' x筂Y0qA縘3 O儱3m杉AⅪ强.y.1杊2 lI{鉒 潳獀螟珂3Z噃 豯g惧懡5蛓葌[嚂谚維2^蒆2睾3誳s摥憐3wkFKYh餅!镡驞讑I震K哉=>fL锩K筗晇宸`{=鼿軒〒*=佫iepZ-餢旷 27cS}说﹢艧8鷧眸]椫溊O恗Im森哬乘滦ǹ骦/綃?瞷{嬁M駑復誆穒P弈1韘~8 Ps磒9~c憉鼜.錟\K煔撏倝:橥@C重d+@詚`淘Ut弎骧嘪鬹`u@U 耚7lb$玀姾觢!?os鑧w 雹|c 庱盶x遭英痙 蓀h4j!較V蚴S槶fI煢vy2-"!J?膴E恹\>H\寱¥ +ⅲcK鵧袬Mzモ聎A;Lz-W+G8桧xHg/鼅e敗苟磻8012G{嵵鳧龎6谲 眣F;R檈6笹 +族莿]抧,* !t桏M構Щ(>纩犗LE貅V2Wt螤(dO#4a*甬时k焀O端X常V1膘i枸z49篋K?菰c@F虎7ǔ(=:,乩,酠vc亐 wR淚3诽!繹荔`詂8壑稓锬"C兓橧^佾曌]嬩 <4/3櫂Zv韥C羂/v\孿d袾!蠑 b顮萳饎犇$iB駍I咁weq}蕌 睾濌灈単款-"y,M鰋敢E +浻n犑佚z=圮癌湈wog縺c_癕z5潫梞踩 a憃4$5术|I悯8_X 鹉[4d賉踎 l鑧怚c4蠮b*vt8酑NG!蓄)藋W伓寺b]д蛶晭畋<6坢蹵=躎w孃賷il>瘴峐7眰}Г](O I鵕趨邜'犩Z蹰瞮!穔g践侁'BP(杕BC|=L1j騷=鸒俎r鏩娼W#'靬I+a茦vx:/哿<种}LVf闦6n贲/端崽?=%)v粚84觟;_U瀻:nM汻j绊=謖 +鸞&$澙踘蛓摱$O1苨,sP&6胳鎕鴏徊遫靱g*2爋怠瘢癄;鞈 c笄饓=,嵖^蕠;!,/!浵蹽C鞽1Z錧9:W灱.Y樔.g鞼2l餲 +鮈R缀~:Bw^D雳翮"跌礜 諍E婨譒殖`偌鬋薕3腳1翊覎坝(啠82忻%9#觱-!痄tK鞊7-G6毯?籼筋}騢1凶▄雓 r菁Uǐq丐-:淓錘毯c*滺M式]>KWt$撵J?~阋岿╠5倯>铙5銡b亃:弛s朲T)虈保醮S袂=?勤N覤鴚g辸Ne÷*, 愨钙.业[庈睡J痊 剏+2T髻腕DY眴儲鐴埌蒡輻x考№m銚蹇u凯浩+ +-L畄贵8 O缻V] 畃^2qY落鋯j赗唴髲H鷔悜淇n呧C@劄)鐵w[綁A辽R鋣蔾燓枨 疀適桞8Q崏铍)砼镐妥嶙M║.睽o o溆铉凣pr +NLcx-t冠q2>?偸JZ劕aL@eB譢TS/\賈"儌睽3<剸 UwT 袾瓒Ym狇"π皕┿c泯?ie樿Z秳直鱰j(嚧尥畢僚騝惚{6#7?咑{阸C紿嵶芜m1\墡狚.諂鮓!n枼a=鉗q針'薥ZI_儞Uq-]) +斅eO姎T焒時襸2淋,%黒<躽;)*i +h蕄m 瀋3所?銯焏舞t湀0"k朄_潽蚇囹H鶍}靸hN祝n瑎5qIG骞屪饇h拮a鬣F-%6*檀ly縘6庥# yXIe=↖錞鈑;E鏏韟憶眇嗿摗伍ua堍,籊漛F 出},放U趃 nX鞰鍫P5 +カ鑕8i溓F +Us鸷鹜 鴱啿歘$I7y嵇 QTr7恘詧-0:些sS昑Vn9v心$嗔帒駒:z鶱~LC U郒 ;:k$嫱/鎯: -F軁c@櫤莴冧v午葈砩+5F0膽1Х 猥頞浜瑨榉?墵vS+泾窻製↓X)琔艀w誉fu@/擷^)幧q紳疼Mh疨0尢亮4b*?Ek捫Y'瘨頫m盔 w,v^;キ逿A%5;俞6<鮫"颵$Xa緪R3攁5b5!蓻}#_W鹁蘿豐V_jjG_<鯲!莐琓糶2]?臃圜"H"g禢 +笊}枰{7媯戌謁DN埯度D蕮&1o3{猧=鐉!5-c黆I' Q瓂&K7剶;W嚈描璑=鵖 瀘 r#8(v">仇 制 -鵱愝X觡P姙9|3}鱎呅)耠梠蚈堙V;r懛o麉滱血冇`WwAg1贡糰棛Fk止讂ㄌ|掂N簱蠀H圧+b敋蓩布Z蟄_儼④+沟瑋尞 K謲7峆 t/j$_/趽 邹"/=?洂 頮:8`軆gv鯍照﹜㤘鴻Ey喫/,]蕱抛ECD93 +棨t%绚[g+祶亳b6T侍"鐮/K0闩譑攺奩+饃b<荥'0Ub蟴+,編P]268E jU泇 m輌p%瓒;% r叧_oˇx1槶*q )嗹 wD醩4泔=`朕lN盏款莪拤}淖鈿八7酠_KJ5事sF3Wh撯F ;<c邉瞉T躧酀l|6閚艣惚,囖O朼;涰*暸5郑jp儱t[吪&痗Ay+4縘η[晬+札57柞4磴鲔圓Mk钏x)&T!鼉D8V鯳n''=U>掯8w便逊\繢8#伇霮龄G(裺锽V++>_Aw鬥镮!鴴▎狳yV)璯茛俠,靊鎰;疥Kk嗀C魕kV蚏;/Iqy 气蘯7ɡ珚侚註啁 颣遡钵t!j%%^}秎Sy苁y硎]5跭頊榌s逓瘯恹岱對w淫檎9p!W 皖y6Y'Y ce 緊蹊蹉O!寤7B;X{醖M煭W燏X犒壍譚挳(J咴崕斀埜w堓憋 P,#2RRl辭+赭.wRx#HT灋髪輲TA;2眎$q佖%43苸W\眕閾儨`_R扶&S駸韸dg+3E达x+>eф枇-眲ノl桒.鈊-l"膢F隠aO#<砶 #]er)騖,} "T瓦肗,C3軀唔屹k豆:Fa=罎$5嵞 3鼵wJ/c ╢)~ウ⑽1詯Y琚"5e~1胆uB#抍 +俋V#=+m, UY^ 夝u7uuフ^榵K釰9蹺娋(_栗剉玜脊S鍽喠 臜^aU =喀弐韷=嗚hc$仨玹+剬T }漰T濊瑂DI柜伽.'看鬷葝^熂 毾燨s&梳玩"娋JO X x3&泏粳浍廐z 鮾偡6螱a0CHQ$S UTcHK兰\邞摴琕 皰蹛e3 j杻S#狇d 闁 E魕瘖螬W皤膁,oa甎綒儡僔q蛘叡%啙秚ルx踂\0暁苏Mp竅瘷騈1鰐嶱`痄E<村u6/龖-穚#gF~b 6Z恅X㱮郎 *P該|殷魪 褜:4C6椹付-譅u饚?~CgL1 zTG]馼讑I,赭敘O筅p動姛O:+A凕泷<3$? |;jP5餗x4& ∧狰誳SX抩9` 少殧拎珍c򦫎尮籌m"甪.'l 9枤%犧朔穇烤&耎帓徢#颥謣蛐粚e/3姵悆嗊g]蓅蘓嬁笸iv+禀*^>'[菩鍁哋囶%.yw紁糀梄\9k?d燏:燺津阔倅B%%溵x1潜0屉九JG[翣醖'lo膮$騸7錜鍽G^&o-L鵨鵄崎熵啥騔qM秳蔠pT击誥P 瞰鵶x'鞏M2$_'嵼%荵颗 謺纾瀉6~yz〗bK峥殏^纄圣慁y豱[Qi:駅 +迖鴅龆涀T蟗苒15沧7檣<鵇髅笴:N櫟)荅砤%Y鉗5C侼辂仓}5i!1愷|H;特廧T路 q蚶U-0M抵庣 峰2顣ocje q镳󃹰I溸O[S茵縋氜噮$T靪~㎝查棣i&13'鷸珥p嬎?洖hN0 oW锇匹л2鄚砟0曗[朻G;鍹瞯鞨!*.峉皓O匠嵀啍喔贺1蓧 伨L羙2%1荐j郶姸c!永t<隔hL^趙`'焨"p^i 锦7 5Pz +-勨宗;xX辚/焼(阆繶.=惖 窌W銋T悺<麽1棝覶["_W< t4m;~b綨Kb狱琥9~O縄*<氼俰曊呇蠈皺乿7髲,R6韍1*谦o艰S[奟昬礽D悩e怪sw膈杊3鉖臺5Px鯼 +/湌憜凌3JE5~悱dr9秊鹳度猴跌嗥繉忧BW2'學ウ蹮.謍:筌 +鴲畜q蔁桘E}苘n绝貅寜7邠GHm 84Z \^yPg侸鴩噤偑=を8駤 E虈s 0h|9租5伵儸岡熌J?2l烻赵詵$馃鐤N 墠!u/吙b碔鏌忧ZY祥省摥LHO^辎{祩 9G/閐>桛^vO{z犣∷蒼%燨 真蓶洬hA& a:馅糚rX晛8y-2u&慥ろ0WEG媹)螩X鏀蠏歇~ 琯襯髲眿d4*J)hx袳"s擢霂18幄%鄿畹q%菗恭urMR瞽j漙)ud鰇$胶 qF諍婋7咶d.5逬怨 輑獂蠗鸶璸Y锻>棖x$ Bw盤Q'6挴2Qz郊$a馎禟阻<{VM f9G愐閡I酈%诂倧4xZg~y й.揩,决0Y楴y疞0ng萃+ 6杽畯C-q駧4 錳饫咝@%ヂn/Jr0︽駃縨i捶#~m临WF烦NP 0郀劽鄕?Z 箳锧 `因=4瞶 +溚u?1=_ 撩t&S郢晈辝識a樢&\氥_襐紘勤eTz抎["譙L鱙."徫g$薛慞*酶閴7楷A .樝 硾椘娂7憜nd蹴i躨w +鄩穬f鄱漚鋸o2擙GQL3垩卿▼\錫橔摜 we%!M 兲0匇1/齁幭炉W瘢Pz坹槕詃藴鐎3\侙鲌V縋4諶櫳=釢碧颚瞉xDWr媈桡ap嘺懱貸,Is嘚窾b韝Mc岻g疶嵨皢 餾B:/轹y25裭2縍榴b陸儳/皲 ^ &KGec{$虊HS橝/3侭f興/&;终BC+鈄雏耑瘁I愓绐Dd亨毎5t郻IO岆2 +?べ媖骒BG!穓中64D魚4侉~-颵4珃'焫>k晾3-xsa 刈嚺Q鮜訴i*:鰕*洉埦柛h1#f #謝)MQA&T涺W;s鯻岅窙e/娬榛P队畔54|鹭俫訐艖|B!笝 厀┨9岺3:*z,&鐻L粒厺蕳/KZ禾樮脐m{i3H魐潒呆Cb爅Z+(kぜ艃w#8慼o凖\g$鋏芎驊B=鼈冔沞讚a员tb鷷(晩8C猊謔3[鶽蔔釷潱懨8腤g濨嬠Yi]Zf4榹EH\灑%冄捽掯媱bMhT娒啅L鋗禩\騵s Ut啊@簝艩R4}描= 俛╗m1~8泠瘲<缮p颔')("纹;糢鯡棿=/E扼 给qg+Co;`湕%籇懧%邃灞2)兢舖8+C兛禐p{\昌r騨8饱蹾盱矧緯掲G9烔亣睯9.甁~ 狶vh 媹牞R焰s捽A2/叻猓侂浲飃猨x瀆嵤飂}柮┋LYb~鮃蘶 靳竌W麀K媍餇彫絓奙d賱愹-Cz軖^,鰆l^傟謭.u7 悅晣|U銘橆験P4x,博h 繂璕鏣傥z?椬掚@錎| ⑧迭t芟犌煽zN7卻嬤婚渔騞椖 惔墓hZ錐4"u艇遢宀s衵X,9>sxR á簖*庮袸蛲羝e%緫!╗*I/杮-,^34卛织AaIq擃吇Kc府>寏'Х履牐琵O乷鱞qW2d瞰楖瓸椲櫞坶<I勧塣Y沄=_4>ыCn屏=Z烻歐禨 ! +崅1N;[s喦 菎*j$,镖S雀'頾啚Y执鰸AB5 課ろ晝硃Y繴B髖s剾nyS埌に蒵兤B( >:撴#4$(Z肙汇博j挧逫[:_壡唩5櫼0g犍 耟皯攚h酛腓F漎)=騁撖玠k59^k跊wp}兟,W后fF鑴鏛滐 剃靠Gdkl嶹焉QP0d熼"=輾t蝕澺&≯ ? +I輓 +娾9岧Z鼱郻  +-勭俯71惠f雲鮇w) =cI:异2篙Hq責瑰俰X沥鍍>嬀暤汈萶厡b要{V* +雴耍駣6a"萹硴忸箥鄨~G.u\鷺甑珞(,瀞t蹦uqg鍲]0窱'C +R綆裟玐2沺.i!M'(&啠|w醩法 m粣逇$d\__华ND噊図q"蘝!飙< v冁誗幤糚縦PF蛭 慑NIacQA綮6嗚紤钏'禎]懶奞% 增*,\伣(L17y 塝毻V; 涛掋蓬捯_/玐x緔取礦曧譀冨3m+v槀k葘? .;f~璭9畀Q7 ;0·$/k,岁廷墰r籍T>=鯁KFiB灙閝)9匤り _<&&蟅 刐I0礝?筶]笯坝蘫_:r誥亖1佁e7$揉釀﹌鼂砱s愸礪"齤+y L堧偖,僃说軀嶃鋷 o&羪驹yUl檡o犽=桼5媃M毒A*m"朕L'A鯂)铑ye蕭]諩鵞袸^ xs労l辊痃皫鋳旐 +r孥 鋭幖醏{k饍馮鹴梚*7R褱揈 :q瀃隓齾=旸Q2ld獜)ZU白岏MFg=礤$[U班"Q舃摏S毃禉庫敎'疝褑$"济S鞯俞;衼僗^] 董8迴閒╪蛟qF8i椗e碃[ 鏝艰喉%2n僬~ 陋-x別nL況挿澅硎P懛聉会}F颼舚L溁C熧"缝谙筠輩!誱朼搀ECX杸纘亇M#鰣>78X䲡>宮ば諵y*ca:7长~KhB呬S}鈨!懧帉ス4聺b撥sM慸d阉踝[圔鳫魜顪I氲獯*Z 惪ez躕枯6滓4I梱N搽蠽箳然WS繻怫匢oO;誁G鋒 3獟䙡T橜蔘鳕鮅%闁2耆择浉椓猽墉祩{3L荞;厭鵍)M鼹騚忝)L榈兪闸傄稻h儗TJv2{繞;941鰷43w鄁州7b憏擑庽e澿egC陎i畟3蒾穽£票1V;j翥就慜5`篿 2*{pg7*\醓N娞犱 堑呄搖-客榌露飜p迌_槌煔>]h吒砫 +'v嬊B谞?c灗?f!邲搀毚 霽)锢昷saf."B,馶;0香巐 +⑩什铛竱 (摔臕\j o劚拴栀佐"傾3R阽鈰xu&龍冃k簪鼌e~歝'窞j#=磠螃V曁 +暚躤(b嬨A㱮Gw{狱M3罎/頨J麉±bi刽╔8S惃m%沁廃圑砚@,櫆已V{滁4穖蛑`kf榞壀亠幵砇u鸶 捡kuGVr5羉p<]枈<|乙朞mMY4`p胆鸒\<4湎醥蓦f鋶9眾Xd醇炽S厦"B蟼-2蝎骈Q,觮3僻怹:_xSIu譴/C谗椨拈怸/Z$B╡rKy喑冝昑g}7裴P赑R *7 闾婌麦w[Q鳰褠PM騙鱹,R]xc塉'U客V郬VpQCG 踉}管 g餑1釵鞑Lu#鱧锳攩圭棊y龠>唵搪%愶R浠攼(4瞘6#腝jw摇9=?]揲-l\蝤縟原#溡]>銡0畖炞赁=8tf毗厌跀O线椙'2s9旫@褸0腦'^样 灘k櫈韉yg趂 +襎騲M鑗)莲敜+2"c2_#镫瀂`濭5N▆!n6儹娩kc諰[;洸巷圤=砶坛+鹲 +参fM4蟀圦娯紟п﹩泺=Z++鐌7m骵y稢锧鱥疘eO爊煃%瑢Y千;劲偠錺 jw驪t:岭=4辩垈s4=鳎澋GX匮鈚爚 ヘ蹺势%~┮撤8旭'"-卫嬣畓}jsV.懕_荘D i*蜇藠9诬L:S黹仹xI郙}<4雫鑝rze<v蹵捡酖洵<橳陃谢駘釘耺鉑 l1蜡; w)`7L灜D 磋r祓x.(誘頒> gs疭酽aSu牝2众蠠黮A, >5w挙韱=w_5颸g+;[5佁G┐m>mY叒sr. 頖-鏒谕錢1碽敚攥:=藴8孞"惼脐煥 湇砵I闄F\H2宨]汎;2a 焤瞨S傛j劚l庢H隴靬s=息麅嘌c萜R)輛^O`v蒏蚪鸾.卤壀塆0,Vd痨(9W +N臲廬濈a鯨搩Hx:褔0*霍稽 +G5>G}鴣胰鵜'S帆}g嘷E8;潟胞u疚^謿啃09!>Gum:gN +U K#泮觧:%*l赛[愅:Z$紖带y."禦涍媄幥糚0泩晉耷/S^犨q旝埔醣嬞9毮'm瀦囿1赝臷9RAk y罟J謝芌nV畁Qz&敹甇w廲j舼Wom3c陦甏m紀)=崇c$]官Dc+|;飥匩4僲:狾|ym5P(伃f簃(5m { 6-玄e炁4歾 > U疪哽*壤畑[5傥栴调喦訞v{屖志+kZK鼯倢?惽5諫S ゛翑芷b欉d藄銂%釕溒,O薈袱12签] 鼢|揕 GU亴讻?|`L22 献続}v厳?W鈴c3秒酛R,xzテJ7C\軖Z)^T`\[|6剗腭X怼鑂3`tg TreBg僈媾.墧踼埓 鷏蕠/穻D-⒌訉髙jydズ3鍞甗踇$躻)聒=儽韶;盦鹃颻sbE駠乴m 黌6俣暄?髬躴^ K.取6/'I9鬑豲槒!衘屔2允洩%,╔濷vKon M賓c%抍q>r~甇摙9溪缉 柈Gj^,,%C夆r遯=…`痚[i羏牍页焔帔(#隁带鎤5)M襮 J饥R欵爮璨屄1B焹栅S孱E\鵞殄|`~躸n踉(aB)幃謭}(0註峱(L艁lYГ e8犪灴輆.叁餲 鑆=y鋸$叶絧^煪Ku擸婍F酮奝}8/>靮f妼3$骿pNL4kv靠塰",踕Joo嚟C.$憕翾l腞6dX#斗渘%W5vR睍PM餿撖8YH!qm$杗衚6袗乧<熖踂a官; 9閩W0h;7銽e釭馯o3S痹p d霤隒顆謽^tE版簆:Q p虖x浍 w滝檸JE,鴬Aゼ騱K=酑\筶+Yf7 sx蓞轤勺棉[h懿t潛 瀹]参箁"V},H_鲽'/青勜锃8閮 m奇3螈oS歯簏T!.遇L跢蹢葆B 虡j崋冎N5禼k zW1鳸F0赆>z柱#嫜釾f +頪`}鹛t~跣討v蔉婶 +騨7_a>m鼅哫﹠=mq0畚鵬朶t=挵鷼Ш{5/ 眷抬洈汪篌犷 艪3蔡縋逴K炈B㧐坽&'≈籟r$nG6滛V$S惗UK虔須19ㄜ-8鵶/O邋)駕6ⅠOr鏴6H骿3h聎l0匹H狓P鮳c 0逢凖儿箰 +碁$牘|剭H狅65hZ朓"Gj郆$肵讛>m k藿9?<$郢絃嵬$9<鬵蠋Cb)<ㄛ堾< +Z#烺Il嫀胵蘥訂痤EF9q栧{斨E褣龜遭翰嫵`嘮徭]腘.呈鈱,a +m#5g,6┇浗衃@艐n眘s紑翢h絃糧 觋瘣N景}11 %ГV傳诬循_fq陔LQ澯狠O(($殃/"湕Qc澷侹0< 痏沶E|賣1湺蟹弚&v悎$7?%砋匭gG呞zI麇Lz>?廘嬶3踳H箇c攱脥Ltc -岅&0/薝酇U>}鏨崥.R'8j xO蒼犭綇摉意鹜y 乜L/鲂Zr|揎 G88>`缳o'歷ZΥ瞹顠<闊(悉昶Cd T蠥6榜礹pw 栌|=\&r剬傍y伞逫/籛踨 谅冫鲛ㄈ幜U烉捐:`踎輬 +!@u堸3蔿WR┰虰7S熬5刺鞫肬-C占+砬0X胱FI雘喋 饉d$|+涥設1勧蹻.$龍呠荎鬛)爅5雄拹縀-f榢蹼f{+湶黌講啄N諦 垍骭筴著iべ *)e嗕y刱.ガ靈)秦诌_觨矞﹚^产瀪屭]f鵘0Q杗V喀,5co踈酽袪蕅W麽e壣J.)蠈7`S膣枙k4|扪&聟嚎2?9捗瞉+# 厃袟#笂椏|沢k鎡 C谨嬱:8?f劙菅SO_蜔[F耹进2C(M翁嬻fb愯餥9縞r鏠铣|o,(政V捸 #聪%<拄6aL征∣h05e+F粅y5囟D哻]赨aS紪YuZq勨湁7TNt婋輹輻 叐<鳔-` +fgl,Dw覘迾衄椑x迪那茻1駱驉U K碅圥乷衤;mV琐姽'*>&u>6瘡壉2霊溧aFH镑伌痦犀蠠礁铐!t疞顶'狖鸵.6皋璔}g.=聁餎颽6鬁巺}璅沽蒓謙\_\鹜=兖.贴抓2很荱v@I陴忌蕔F\#遄u嵸8PR.蜯1ky7 耑 +砗L*桾鎺>叵罚p2f處!S072s只0儌 2>.D陣Ε:郔,薀锞榽{p7^5搓Y/G)q糆E墈C年擦姿"Nㄢ筮鉒#輊杛8敫塴辕7惪M&鱴1堽 ~栘AK舵dB荰j$婘C=Z1c诞;痙餗櫦籥漀彨B~.,5@)伧銭凱頰/.湢夢x]厗燯4j)掷J獒遞'= 5z焟?q{樗瞌N2饮^F@傫-Ot溙敺iGh饧鴳饹f嚳3d呸N6ero +聮禁/.嚂英泡胒薾j.隴謷M鳞Q╗榩憺覭毆鳭/璄吷殥譚嬔A黭爥D贛i魥'敠jド癉D麩>)'吘1o芣t# u LхY黛哛;俅瞄[Zdv+懷H槰>枇P疬xG鏻:Ξ垱噊悂:x6`监yV趣1fG8眝縯P窥&54kio秔顸1}]<茊呦q饢&払簳疱权R莡癛槹蚖X)婲滖n廐=.蓔璭XD]鯁*傽=蝒柙Ck$啍伿茺G黪顷觼Gs篡m2==耿r3鏦2N=邰&瞾敹滑'(0lo(2M'鷼_零Γ$i[賹 +mJ譻E膰榌唹B +0{ '盛y樍磽&还貀-!3&S荋_倏y%ZB|I孿D色z銊佅蛆\3G6<膷砱 窱1n蒉鍨?I錁覦窓;Og f殾霂=3".崜"(o^鷡饊镃! 譵按H*$偤lE馉佷W泌恺 \K欳欓x!}%zT琌8铫rc~巸萒輚訋鏟3衅P+#fY鞾琞畕籑挕觐司0+矵%4鵞沿 ?判茩诖熻n邨裎焤78K舃2y+^G姾zo>鳉螱 ,t覥_V嶼Yi&棠2﨏l氞嶫3彸"+R煎蹩3p u摁呢欐t gv咏觪坩t1L蟭w0轁&N髜堶亏>嗔tU7麤u$4鮒灍议踣#J*U/>嘊<>蟽v/+挶6妠R<29飌<.fΕ嵺怦G蔾6餰`溄~,y煜;膈"▕唐:`蟯ur楑c}$e+;tu爮o,l筛餮'9咍O叵A48VO6淚劳脶* 簮Ijq抱{玝.缸K但; {耧熤V聲l航 涻歭]I槉h胁I鰇邨Z:窶]Y扣瑵屙卥.嶥,6糄瀧G梵<孟,8$婶螀灀T茾';<_7状yOS艴nB凪長姫Cj槏濎豉t> 9越~馂*P~5%)睡鴺耠蔮铐"J?栈,L斑朾歋q+黨S^韽!&7 挂亪Ml-志H2勌踺鬝qhM赒q鈨.踻.袐諳欥弿糥5篁K}  o#釤x钾簳A 澆⺻9!右d靴w?涬椇I譈,叨ChW戶劖Z['嶝L鑖=5蓻蓏呵dW垇1+H甬,?y劺rN 灳_0錽逳鮙沦.x⺄`~驕崍<藓蒍鷫]矁綀曍~阊仓Q縲xx泽闓aN2zs勎`X秣哬袘X褊K攏緕∞新N бv亦=,4餭i1証$3媃*,讆锗2CG齢 霌狰V饚!拠 ]l邶)澎G逹L7{z煞;f'护]F2,橺啋 i蛦龎狱樛6e9<鎻W6⑥Ⅴ袮*儔W%G痾燥 +覆冥羐z绤弊)霺D詤w~?&4%Mjw圢j緡Q爣t腿唇myd柸|x{炥U1鏆)Y起嘿.D\褜〕烮睫?!雝Gl弜L h*Yjp铜Fkウo +k9膹 焺n;熬謚5谜WBz阜瘣km褯j 貽鳁撮R嬣%嵷zU媯螧┒琠嘆!-餷A砹'黑nx昛怐)\婨酜錈qA峇FF7贙捩鑅wq頋9惧怍鵌f\癥Nd癏M毤54 圹 +貐6灲苛蓻袉寋梓底j<魮>~^}|)8 +P胁p.pJ< 嵛纩^`o\ ?E姧≈柈丸l領桧1/<姭$ 荇RU&K8鶨賢笪G1 kA豜?U豘χ颞~榱輘C%3咙+7I洅榑(' s蘢%$雯u&:g眉y绩8湣$焗闋-jX鯨4糊Q)禎&鱼鵷祂*鋾爼=″綣撟VJ)B[]c&焂)坷N'匲鱫^磑~s圱£s褣S\嚍'k隭N鬣邿+9弧叮1?Z嵅^枏QVmqq1P撝䴕褶h胜)~漟-リ_Qpゾ椎浐钀)雭m鵝秬糺0 哲差蟹窎蠲蹅V旑珖薦*磟wWSBxZ&#W!澽討}猰鰯# '擑糜ea酈;囟He &务R靘H父毅蔋柫S褍,俍:\g燴蜑硩汏emR簂  蹑V茹82惼v# 妐_w麁武le)R擲sf+5ZXぢ踼 娐"!O鰶螪儥遇Q螮<:e廯沤P4>繦7Ф塠cr$韨V昦z(:Uv茞柙[縘N>1V薋7Rz陜熉zl璻痐鼘3捪QK-0]鉗鯖庖m! 翹偬:Kng莍-S耟X9`WC玡麻侏j5WP^`荠琤L斬蛑h舘7厯A靡鹍 夌峎蛤缦,B +脄WT[~顅炃a:聀茄cd?宻拀輺ㄝ-eμ捈a熩'[煸8n6觨痬,7a1藶⊙x戞訠#璳o掻恀[O=b^+5臑 M觤w~幒碜`k鶛- +㈱嘎潿魏@]lU鉹JI"E拊:聤 64櫻S蜶eA襂肒=恚&十陲cT I鎨/辆8鷹潋川蝗囕_鶎1BI}8賖Bct搳萙譎椲成z|銙禑^駱攈2擃酮!V*f嚎c譠 +齠)4鲼遒 g給rgR9M﹨+蝯寕侭* だ贘誓涾鼔 +?M鍟 l魂涷 5譝,糎幗9苅塽 (蕶VN啲蟋c鴈C傤b穳轡疢擋l%佴榪1B&y諻鷖k\矠>泇f辚H牗龠$唗畞u蒖禾2煎髄# n6/鍏3羊v +砣轌\ 7c忍筻1%=u燌旐朔jp睹?XZ緖錤闏#皚智釺賞瞣N僂D颖蠊變c掴p褦谚e蔐p^屎]c靧 脨袝泮劷%JD駅f遹揼鋡踭闧HC髠7z]w~+SB2W{KH2嚡e倰挋鉇?2盧 莸{r+6痺&K跑#7`嘫プシs葇助5s酙}笾9奀b;.玐整溵嗆1s儤=螨麻 猾O鍀@救 T#.4%V氋H軁])錇R鍑B辄 啤&7C辗E辀稱睄嚘 |kH?;俭U繪历W#糠鈕霩原糕:酁]$崓8z鵊 嚱 c(麇J髡実捍趥譲够鳮*.51g谥鬷厕&} BF眝茶q;F衘g妮3C0痟`$皌郇重Q&霅e:锣諳<譔m蜾as[垜駌褫鎇紇6LP3ITY比沎Ma蠷5UYl+9禾!3鴕 >澼乤Ъ癪'$<昌1辈+鳶e烗詛滇鵤P們'端K2|呵`呲果桕頎姠,捲)n_惬(鈴(蘤 呦,处i璼.踶O8皳湒fp窆(t閳\iN6鰰?#冋!p桞':讓輄8|瑅=N)鸋踝gi|颸C柆n&祹p1"睸啽灹"佁B纍 +奘枳橡7 +攖赍韅S沰a'e同:nh::1胴恩3冩;R+91%`嶖r}蟻鎈|`Qa3;4珛5Fp氻 掞沺抎)+鷺Vu0x}<8邢G滮L^R::簕J>蛰雀'_晸*_9罨狼炨.j1葦顟檋K.怨S-韋摒&w歚鍡%1鮆q[搿钖,撜胇钩燙1>Hdx娆駣乺壽创乲s勎挍體蘐N@U胺99mH俣曃筈阮鞁.骾b丛齍罧倜w羉徆攲∕'畨*烜(劼笝|衧鬛M狾*Gb攉蚨K1N瓴/x堕X|彖7掚鯢拫闐T勩2醽>鶁4? 臃i菂]氡>鳺噚2卾爄縶拀-N73仏#!|娈养牸;i97漘 冤5H儇'焗$8MQ賟閨o榾%冉tm +w+驆綀炰菂]reMI誉5ul樷虡| >T襈㩳Al謄彯帄4U镘t,鉠蟒D勵F<菿"<|%sD蚈瀄鮠PRHK闣嚽藺徘E蔼aN飥H-艠譤!乪冇褐侎w薽梫W鴧齸:$<壚芪以磐艳耘栢?敩 +endstream +endobj +12 0 obj +<< +/Type/FontDescriptor +/CapHeight 850 +/Ascent 850 +/Descent -200 +/FontBBox[-169 -270 1010 924] +/FontName/BECENO+NimbusRomNo9L-ReguItal +/ItalicAngle -15.5 +/StemV 78 +/FontFile 11 0 R +/Flags 68 +>> +endobj +11 0 obj +<< +/Filter[/FlateDecode] +/Length1 1679 +/Length2 17875 +/Length3 532 +/Length 18831 +>> +stream +x诂筩t&;┴X眒Ul鄱m跧浓囟m鄱Y睋S秣躅輌熡瑚彽苨O\准鐇諼騄苬&段磳t \Y C'E;Y;NiZE3 gk繽+ )⿶伋厺伋 @湍 lb`b0rrr聬勳=-烫*妀斣4)`桉毧濶f部&講6&段!䦶昄L捂&S k悳紗劕BLV fbk怿yCk #磪憠瓝 %涝`廊沃剽熞滆㧏 8 N&F軱軑LQ霱m,湝>,f段{鄉鞍5瞯1'伩rS%d飄髯骆/樇潛硴懀吔3鄌Tya玳ln帱Ol'嬁j濋_Kc;#J鷹/蘝亝蕾妮鶡X&c '{k徔傎;Z+ ' [虁鄅bf鄅lm怃/?甍:K鲻蚨麠塘沦赡跀啈閛L#缈蓖,la [S;#每迤.5q黈(䴔士I圪Z{孧La鑕頊P鼰盠鬟G-沸G彖鼓拂B嫼X[攸肋Ec` k襽枍祦#酂卌aq5氨蚌9Wk5g?0!l威2D巳J曲o眳摠吇壉紖硲9涝历o簋%W56q炊5鵎蚩讐佱胯斖-尙la凊*[Z胈撖U綘垚埇f埝踆X8+{貨礼(5;yKP形郋巳 爀bg鴞轌N&煾b硨伋;@媮巵瘅?>y淫/0"禙v 拻硜哔麩窛姯厓媺勷逨01p2Kj溻桫w"-?$&&&F0g1+4稾瘺DZZ琖桖瑝#6抒篒韵薣练櫸崕󹦚O僿`g访湇e醀T僗咴咱鶽d瞇磖劽扖D]* 鱃攒炦oW髬屙鹼t聩騆 +Y樻堵嵒蝞葽 擸而TZ_:c鲸+/娺櫅88(x譆Z赅y6懭?m氌2c*!l幰Ξ 瓇詯脯6 倊醪,[穂%艜w苰g鯯洋p鳑f乴<嫌謼H發兤Z1/|/茉B <罰脲或Vl1薰G>!肢*W|膚e_;)嵕.貙1贝ゐ18 廃$鍩(-露鉒踉9耴辻辉糞頃+!r&鈝歸bn 6礄蹿 H.E +真鯷鑕e9U麙-7裉楤筓巁扤s3D?湊疛+cv\9( 濈)yMX!娻誢*PToO麏F)*氪<艍侺'-焊嚺*鬦R 峕軵b枪gNAlr烩1囉:M _滜?}j_嬜S 窜们綖EV卍]缇s藝Q}拚眷蝴se(┈,[謴肢s烁-TH猟眝滩 賙煇'芗B浬d罣 @"覢标?巭C圁Y謈.睰伭 粀藽2Ы7旞数桰o5B篎L灐郰:3i +pM脿(K黤 #X廥/(唥Ngc绔Uv~骹掞郍G咧d卒轋i濲寯Y豀;渣ヱ/昧霩揩vUAm Sm賟渕{ ☆4 ML6甇虨操 奄5|Sx)F4顰H酀ak騛J笅恆*n牿79牡5瘭y箌,ㄛ孟饍n4嬄劢鞘gM眽 茼=o叅N焒W"I韬綼,V靽Xc!mYw峘ゲ%*肘龀E 宼▽t)琜w櫮諥D\衑裇?f%飡)垅腅汚N抈玽赗荔猟鞮0h妴]雖Bt:侪幩霞垡E呩漱噘穴 "+M% 鲣践9EK鮾蒐嬊o*(E,uK卢跉齍拨X筢蔌\b1-纀I<桪駺K勜]ГUY8y}鶱S /匫\"呡y瀕界l噖罣鉙嬁扏F糢園;礩Kb@ ?F栂,yx謒w强篊滑q0店:c{t"繹r塋熾堗A袛轭榻倏鉍m禺F煟{#:姆鎒娐牻彚H=;恘泉蒐U鈸u%憻{菐褠o&嘻愀 #)gf蒨䅟=娧 揍W^(狈で?Jq呤FP剣4⿹鶕+u攪錈烅_毼Ey;s帗荢扎梽dz5驐y庞v图鰫B膞 梯笐sve鶑$穢|f&]5Z颠,Z頻 噟?漎[捳諶渍懄D,裊皭K硺湶@O鲄嘬+":@妢o怅!+k鞫惸 粮宨M ?+2z謶1 祵?毳I晾a聁s}竿涊O>壽T譊~T刼0栔IS a 蠴傆B豕俇m霤荀泉;币鐔簵$*圇屒};瀎╅^鳃植p泩}Lg⺶<能l標鍥c赩Nc祮`#椮琁O蟪鸗须V[闒瓺湏罇運薇1坲尺UG<赛阿4$GS(p⑺&窻簻铚醻G篇噍塩v:%G +V;婶LaRv衪茄&ьt鞷;|w7臀F砆膒妗=?2^簾@圦瑬锋箆%%姗蹏 o' 鳃橛W謦]r┥9岂Dl泣胋醤&WIy侥3򱸱b8X&#Q珇卵丿4輟dv筇x轷臨H!絕+> +籷仌I広/]灥隸鋉41聦9砜奈@D}謤銯>$)扣嶡蓜iP撯<麺5Y檱抵u 斪Z]未K阉打0UA 襳樟!峔@氖%蜮=幨5麥塊簝jTQOq|>╪庭h乩+臾 bv*/9QH扄6"塏v鷩~7A%F萬S矒ypp凱 Q洕腖岭組f防!里慓/櫁;3购{斲瑆維w痜 9d`递岅40M0鐎}<.gR +鮲5劤攡9㑇$wAU> 裼(兆?麚爏筼咅6<目W莳刉v闙 jw(>oP兘1|忾\,膤/潘M眇襟d靣鰒>歛,敎S虀稄伮 厯敀珶Hi0h簅_媐绋i'F傓絽B荼u罳;6LH柂-aDz$a ゐm塼卤ɑ= t0g:糨y18豒~鮅足#狙溅袧r塽j7嘞湠櫀;U螑6胧$\厩頩謏塘;7xa^籤Y糹 h袖.雨W$嗃t<]鎌S袏A@蛧x╘v魉挅BcZ褌kTO々驺洊盰 鳊┹鍹t膌4 剽+<#A=_䌷9筲跜彘 s卛响fq癥j b7來虑j醲暫*敡闎>nI5擵@枡<魧l遾0%槦賏&獜 薙銺c0膷澏S=湼1 + J轗銆В徉2剕緀q+-"l氟B騞尦9戄瘶8jJe!q徾J/觤N:覟N0,纟咳p摘a苼紜凼韫袶9 %D傺胧郛4K簎{惦6ⅲ辗┴" 葻52,:[8蹷3:髴st摼/纂壥族 z锎x鮬<UA`飜源{→驒P卨搏蛔.2籹榸/*硑5N} 奁)預仒)}苧ㄉ^0TUU屾 窜腙G[巽rm擅i焚貅 =I)欑Hz%鱼b55?蒁鑡"晑熫榷碲{J9║Qv.j穋y{'魽幦,(Y倓N魞n玧->3H/,儌餢2T躋1斑1ko稽g3o谅顤呂d 齋R#C诈8'!a暰痟t'bD紡謪VzQC%2辈 莹M邀z5墝跢`w_恳;娯B,劀"M醂 !楴x熪頧钮澈鉽Y隨 +bQ'':檨呅Dg燞i 韍.d纳8%嗮~続~%c脝橮婀 噍$)前s蛛O炏償;葹?"5鬭鰓zq,肵谠 go眝B涢E偅溙v&%嶯 62鏪臒讯d39禒YEOD瘜抇!#尙(\噶l+H*{悈?<纁梋蕞塩E鎯 G筒 璜{5N!)淿哌纹@\8嚽5孢= -襉o1?皧GWS=鎰c2秾'溪n3 (f#樢3Mgz4浒 88v+妰+uC镬9蘣qD¢籵躋遑 }"Q>R'E:mh癬 AoKh End^|Q襽53糶 w+,.辮*ぎ蓄次蟡竩奣ns弴0p-Mkb(悻7从fg鞱$䦟賾lC腱K諢H嫈忈| +"篖柕增判糝X迲嬤A}狞9y8虢蠑莈%=嶅Y@- +伅宼镁 呇楮懹蒚詀_熱T6攼g嵚ム褳8H t`B&R +q-瘙聮Qn頲~&詏 韝頁黶塛2t!暴t%騬>> 钂匰4玪b煡/隠4B荖錣 +夨ml缳劧-v矺邔 /.晱7J h犪LHY獸扞_bibz%{鉞#,"狋榎 v B粨v A5 ow喅蔏害軎罜臄殇涗X怕碓=誚A攑x蜴鼆"覵獝`故S倧呉<愥鳴& Y╓憥wr舊╡K0畜橈燈&c睩膞D!Dn寷!'瑶b/1j$"尋躱 橉r$聪 +'鄃<綰厍znu)by?秡&DW葖嵠u叩G檦燡,"QF牮杺儚t欦Bz如!詶蝙躤梓鄜rA"#觩't崶鮲;а8b竸级冀9D(夂W?YH駠傛瞸椁?湯1*/噇郏鲉P硠盲8A往缊.漂哰鄫( 颟蠽滁G誫B 錘2r减p.哢Xf現拻n倃y艋鞶\G建冶谲Oo腨'8*svclL淺d!-=赱挠/e獍鐇8闼./A:D$"侗検(-襗焜&(+侹魭M惧q嬆 +濅9A3f1鞷讝w丳 釞)jy +Z噃H:PP嫸?咋 +騚2W%/$/孹VQ鲂泺mY劼=炼丷尵, aE黟i爢&+鲶3?V0駢脺隽:7石8nIk幖hf菎yV廼搱圙 T⿸4稊=$1 +)瞞k抍撑lL﹖聰K鮫鯝J惉R窄=鶓X炬宝d婕8<匘畖u>.辐.fr1fu1鹓洣'6J 糾 H蹨&.,"蔮yХj縶e 閩1 崟劘-C郆mt2锈聼霊:襘k5K缗瀛雥+汌 ik#=痶敼<*壨P06r|死鐌R$A舡F祟融%)緺|咥笉4R萎致賃K\鉗P+聀褙炌P♂t*Q謋c\ 鹊昘 A 貯錯M1嘿&査遳i:W循,\墿D屛鸑厺p揟]毒~鱩鵰^鼠,-V<8讳}0\m 7羋V攮鄜|僎婷j酓pX咙菞rG-p汬=w忏2)f侱"蒹.0s:蛬猀6壢 :篩f営崎钽畫驑0Q烻蓰娌鵩Rh;.怬P律斲嘱檩缚晊甓*衻穵l8:=駈-A歌F慧 C墣笭栒SkI(][邺w艬嬰;P棹4n嫈ㄥ 繥俻&沪孀[岯7刘4稃A'吓拜怱搎L%bmI姌; 臄@9οu镤岉蚪&k$蛤[●9籤h5Y艤b饶SlDo穽嵂7|yW滖劙耩U,/そ隍9x3zhu碝H22DQ嘢qTY閿k{j \箟革"訅r^腢栋,砏檹漭宜#誰涂馏7嫒F暬秷-@?kTb葊钇4` +桺眘s !?譫蜈V_ca鵤14g罫薛╙* 沠|"2:A'磒i[H銱!*P齀E鯁'H=篮尾m戄1尘up逡GX)!u 鵭:#=栘齼p遡 9K|Fhe` |喙sl覅矂崚珕貀鄌鏸#"[ポ莽恋潾輄fL狃緢穫f*鵕5=菍9硠氟篎A挸 (;^乺摇稟E飤t薔p怙Xb【A酰o$鬠畢X絻 m陂 怜,8oGUi9w廐窶k渑0煕b矱琜锢荍性:!L屸'逕屜脇媏︿>=.慓+驌)谑HRB嫔胦f堻(Ox%H偤a莔Β愄堾昏1鰹鄜蹠倸欲臁焉擣r杄h澡Q茑诪1 Q7Sl圇龓禾蘯6鄪󸡙3$?B峕j懾彀倍跾蔀u\uq鉼渨鸸E瓬 橭惶薴跡#柄oG魌n擮鶱側9aB{i,g+囷劅j愚[{.bn")]讔绚-P鋥-tиH鮜./杀弃Z_&7 f?溿C gl,U%l山蝎ō貽矓计涻材94格ν+觗G惚枢Zk5臐壂4醵bg%榲1v鵺塓*F笼朋!崣杣鯬\4 ()Jt谩'}竰:z凙MN K,P+(["怎愵$k犹咘锴6堻H)裬b85,匳!S[齬殏騗濴崪ワ狜鸚|D揎M鎡sy 庚p@^P爜氟3=铖4寀佴*6鬙鴀<黜 +◎w搓&%|Z5蛭飉}j粗:I羘瞉荾痠R{ +wb狑I髭侚=u柼7糒|->4<垍灈)%筠岔槲传o&1躕L f蜽C9jf轮8KjkKMd曭2W& +>JY8 'R隯!n.4w"uF攂ax> 庨穮捇tljg撃M 晿g慒qkL枣喚ek鳴箙JoI 闲x=孓儛餈0鲔師;+eJO瑡齴$坭X螾UV鵰`蔕e瀶f!匜獽齸禳ku唌臍_瓈Oj%kゾ呴X夕`:p>)敓 巳躭萎9.燗z焋 Kf畲j*峄IT'@z怚,Ve霺r_d驟5鞑`Mn]甆, X槄帝rG眩噗瞧-3倢 鑇(;燾ゝ&麮t颞G`W]溋.铰2&[?薑=煎>犪K:G藵e榆4蹣p菖 +5hl岪斀藨0轠eb;M♂QQ6驺o豮见攁茗园?Z +岁a5A 戩"I锠堋 $7H偑cw+托Bv燀P2úg?q漓m('1榽P`T鞄 TXP隞諤[柉9鰋芛兴g楢詈E俶L厱磝-俻薗鮯aT|牱嚢9W衮3棦j9x酼Kv?ⅰ W嫘su荭I殧媇灀秏 刹Ve沔眽LB椷JIx絉髁彫彵胩嗋怤b蠣 5Q翖'窙羐鸋,J +輅:JE)鐍f莦墂’ 0/宑|\鄐乪[飱寇 欸 5誤絸L<擩蓁訷 Z(館~緪惱e7 +隥q銗薴邯j簚蔜'E\漐F%*]{<猴计+m弰架糁u疝詅9翟佰{|@n霪A(P誓者)%r)v J谝2_嫱萅闁+埧V?-芹zg鎪蛓霐pП∈㏒续u鴡s閍X:8鍬穝衧顖郾螝) 薧n.P'Ma}C壀敯摑&9O+A;%赌┥F╣Z抬蟙4 x磎N ?&W孞$馇槍郐l.洏腷a(谡剹船D,?f@hD;?颢竌腆^beヘG"[0稦n逶 怃1紉终:U 7 瓃G{d`:孆=1hA^[歇 >瘡熮M!繮葰_埻慮幧妎谗飛R 傥 箺q02d輽"]I诉8鰯r&q7@$骸饾瘻崸g罀礗'鄑鸤刾霘覬S涠遇叭9r鹈lff渁廤踱靄熧WS#+l鴽婡4摞|h %R+"c劰'㈨遐駢rb縬刉N媹歸}馣#vm<藩曆紾{bEr鏳*q 黷_躌0\瞢1狚B昫誺阴聵;骝:6忏閱)寽]b`2瑿 +w#玠鍖籥婒?崧曵嚯 nLuau5沠Wj+▏綴 +疞烔I +F`/Y淩灟m簿牔狻Z諛ay阎p_{躤gcEQhn橖校x愚W飳諙*F5睝S菟臣n脎&攑攷<_Q繡礛n?"`<穥 ,盡 赍q`>璝'g:旋|荪╢zs螹?瘑犹鞯鱶n袾WB傢(J鱪;飌D+I趮n晇痥g/汕Yl垘匟V纸"1嚡恣人餂VEObjz噮.覉" 慐賖WD簿@*曱S1.|6鏿睿伐枨綫茄:楊5僢愓q^50陇82骣Ⅷ.O鋼&jk簷哧eb2h $氡膀G膊剕ㄨWO洁jk%]製O1顗 槮鶀死ji].`鄝醣6U/c-㈩驵) y#歩y]鎥謃恑鼋蕴针)诫袻丵I':E壙邉魩蜦0苆鉫陕庺汲o姁:府N侕敹4ぃ肞c骖El石3娸B笰S椚.<嫼蟯>才鄗&邚魋Q骩葬煹横橒CFP&@踨;Zq#N倞 頊&徫糗c≦.NM+ 嵕鎟q荮e%夽鲁7窐d慼Km盨轰芛豋 殆Е脽峂篂骴50>毼囘%莩[泮鴝z佔锝k?9耱峩=泈官^65赎 韞蔟 熷狖濜Qao6`)懟y4 a庬忲脊a箉醛鉀痑仂鸅'殙遜:.諄磆壯 Q隞 戔3噭 +)踏秨M踋竁L.b砙]+鉗訑]宮\璢<úH饀稣; 3塚罧+[作*m岛!rzW#资簺X梫4酺瘤F+'螧造鞾轊T錔2 +5#r媚嬿4/^鯌 +嘀膺匶Yd涺_ ^)7.勼彵朸谭k' 蕤矢麠I玂x 4偐信b=Hc魇"錼秈酹麛L縈鐈6忽)>饪蘩\ 爖俟+駪3E昴N舽 \@]騒-!玷ql擅教3)uZ葊缗脫岾w總ヽ綎@莏ón:$l┧J-裎8F迋0+u>:qq常]軎铪i 6aMLT_鋜  雬貮"s¢ )纡锑劎桊Z鴚穹蟽噠0蹚:<燕韌⊕g#l~}+R% 髉B!.g:\B孆宦f#@鸍黄鍲7(⒗飵Va6N鎷cx8逎)A籛∨K7!蟽狒F盚wп絽屉铈'綤|诳 巈$y鶿,鐧員a:8釴gmWjc[)磣濿猄sb资&&丮驫~C製X却`~m敿6悱"愖f罤 轠6羕]XNJ溆"厝:9$┉踊 *媶躣t +}踲粿聪峞傁y巄M$;0岂 +佽M髊烙祯++n僰k欰浈塓 +%夈V瑬i纸慤E桔E@剎侞n5赇t/1j~鷶鄟2z筝蝞a薑镛**葫撾奛,Bm瘢cI瞼1161a坨T崖瞰9cj奸築碯=n"c耷 +抳7⊥T=带u3螸えf閑A蔊\XL尮絾r3%{f虇1W迲匞湗唳sl8昍R蛼YE)扖w5怗D0▍喝娪挥9躳,5邳薚:<禌y/''o7(A饩 繄彎H'| ;K勚)P$9騊fu;"8狱囓鑗w峈 +j逮m  Rq!;+*j76e-WK 0 T鉒輹y'A/55蜽/餖z正r&d>Y饧9帴暻晟+qlea<:诂墮鄋GM頟榌肸/% M謜z溆滾[w %e匾{=瞯RHoZ蛢&A悲>9)!m=>覍粏8N ._;5萻8棢&u櫍.杝i摅黯椌`q鳧1){]Ii{詔niO.辑塰>F +Z盌蹾Z7W)3{墪Iq靫搩銙 奋|*鲆Mq鶈CZ CQ*w,fT4z┴}!y棴熻嚪kQ=槷*躁非B^?嵵"W`◎)4p{R;消酮MN禥迏C咦9罿D厄挳疓媴绎K幚4P0蹋橿{Qz詼V锩蕑XQ滹 &c2@俪:瑻!蝸@\-睩╁41娾z/%畆覍j$结"肛橝ZJK M亀擤!鲁蕇#"b@)hqo洌-qn)勂艚塟酇糀杤祜2浡;|d-垙T=硑)w詛8锪罨淇 !dz鐱栚 +,L0~-俻J0孱e臈誖 J 汝鳝鹰踁.蛠 .s.0桱 +叞)e擂魬濼ij2_N殀蹋D# +萡揀nW济(蝸薟拟没壞{d{甘|Gjs懫垷[1脇殭郲_ 遘覜j砐濑#Xb趈~c%K鉃ㄖ-紘x着枿鹙zP{揓$O搖映*!+ +b"S&郰/LD鈪!燽nr寍嵢\髶U:T椽t;瀸徑軋Jjw> 60J_4/f哄>瘰N(鷢宜6⒛'螆咾,椽>r1懵d?蛘+UPX6秩fmk攵鼈颼DO樎躧6跴宲]超晸A;恞似Wn4肁諝鬛/耶h&1B阈綎G_J捐u>um 硶师瞮U鬩憈F個轱S7.輳*鶜凶L2@*劤&賩鄿$姯蒤屦戮蛲臊DK籚l/+8蜯|%湠 h瓢乾M睝1╆黼[贅9Z掶厷 ,,kv鬧}x瓆v|砟=mh%m蔽嶊'"d(粧J酉捙3j5虧枡姷碜2赫镋>wR']?]豃qR2娤#? 漰嵐+;鳤見穾"憅ga嬭 !a2:茉 擪殦 ; <塻)蛡SJ敢俹o3﹍z麌r蠋z+i9獓,雚h瓢湪翎s:9齪8簧僫缭3z鴩 i阏伺s喷w铸螣 .癳EVM澔哌N<磊躴0骸睉s嗈,s)W駄3]9%籄舫嶾櫾CZ综陛^儲A霵顔)4_黄痉a *蠣娯紙η;筡Yj*└諟d迊H櫴闡 ⑺,醋k&摁XB^顥SK敾患o] +阰69提桐焧>絭A(i跊N嫬5T$冉〃2隓E睩鯗麩0晭Q渚获垼k鏕wz袹^-衄癙 +藾徭S7钮@v,7e篹珌』8殑跨 k)V64K=.mA$` #荊A.<ル齘W疻鉓0mciR嫭 *廃H劝焅掞鶌%+鎙W僓.).丕噪=C莰闑-?屟A蹹魄2棂g鎰b束~yY+]q嵵v芲V獑"诡舃..鲾{2跘f﹟K獙Eo濕5詘柜- 籞8l呛柿 ;Wt釟 珜7,3渳MBb哤^陋]鄝T$晃蕜騿截朓偽dl費 瞟窵"-46嚲'S3; 齯P侀癪< 梻#g儃e遲貯es獑硛螿煱y鑾L!8,鋎O{K?澦縡嗯熐'5銾6z螙鐥BN8:X5'姅踪熅{+Y僁<:y椭諗数!╧乩诹9跺Uj此鳈";?祠儏馂01$1-愺M嗰斲Lx鳀hc?7栍 tzy '-玳僌I馱妙b咴螬Dv皆#畂G~W8<碖幬瘤~みlPY衲+拌漈+i崔釕\??勑F D預汖>螝贼絷X 揠穂-檝3汽6锥.ys姶>d /亖 +黡憩掔\>燷[耣峌? @5釘G pu|R挗j7<碘n糹堖H刪脥ㄢ=+V禌5r撋廥;滐K膼? <訊苌O=0Kp A鍻/纽1+( +⑸xG綉5捐P饩ζN蹯M℃稰'nL~牁航饚Er尴橭X些瀣#8彽澬 鄲A鄣5煟卣齞\鸲馱綬縲~桇1j慡驣锾 =>UU>a虸翭錡濵独脾蜮s9)&|,Q奴z志^C閱珰厂TS賸弤笈澥歨玫覫,鸑IJ&阇f裠3胴栚憂K"5X8W~囃 臲蚄=跹FqU絺枍珳.暑9暷覹?AIBvq{I声岲崹<橰塢,=ん卿*鮾;%9叼0=_R傓:=ㄔ膬ド1瘏i榙迩`~0憔v琲'w鵽P譊态裒PF偹笏}TA塥U:嬐敫..{鍁i&|絧烽慘uV獪lp寸a讫遍hI榲BZ+ャ肤85籢尅"|鈿鵨;疨禥:WaK }T磱>k曠洷7F%)v﹜=<┏P籤>壬诈{zd0瘷Q煃te^#璗&訁蹒o縂讧版誵颣|吜0驣 榞.k撑繼郁琋兹J'2褩切n苃岏"T'&%W:'鷲z刧翢<呚:磗埭Tt;F 先佛徯!鐛飦>鶚豮8韰斀"鵡,!%S鄨k土'泃VP潥j)庘苋ㄐe;抇f2楢Y(孉莛+$yXa$MP缚杰勻▁>胾撋I嗒ξ钣果褍虰9z撏Y 怂$鬓漊篳畕A誋铈 [蓊瑱zX7/b&鸕3(澿墜芝嘖水3盛熂惭>厁s噲Tk{鐭媰!axYz6E 纡>'IJk峋H 袧禣绾贈鱆汨 + ビ鍲跔矧k螭輝莪g椅狱殗K癈鐈蕋偖T)→u塶M湊麌恳.鈚9w檰1葡 Z=&棲 8帒{榹鋻镠F73.Wr8饯遄`$庸彐偶I毯曗真 (鰲y3~编覹á6d鬁⺁礠寐fam懄#廦瓿 O<嚛|!8]犭>F+靷晉3梋$:pd8yv咤R?s楹 妍鰛竩"鶶&-j锤&0皴v榺牼D颵4R MF-倣洜挜э惫軣WH@qs騫摱)U6瞪C'm)7讖┫8傀鴌 <嬤 逛曗-私 M瓪鬭M#{l真鷚鱣户z@铉/7鷍昷洒曗:憷{ CGPkY, 0鷺1j)亙gVz鎓)ta鎝廭!騁蓍熒D2@仑聩玚抄惕钢/y<妯鞎洛M鵯 鴒h糸nㄇ梦妿鵌.vRcGt80濽诜+(:S*#x撍罐弪t菗趛紛霷茾渼H=-繋(鑙皅h?V:哳歾T戮浭箠e簯w{!I?4G h 涵6a摤|衞@輲}悚w1.奿J躞5咛闠典4誱堬捋x╮-蝹v堧c铟mq淲u;悬倶J鳋醟,T嬎VR忔yL杆?様暟"$踅R榀却鐆骢喝sUf\$y?=茀wK拫偔Be忊+{汰L蛽j:(_碑坅體:蛘媏乯才SxR臒攩FdrxT:盉晍員Q錏*3肁x罐Aw瞶~漑%RI楀B墑%Ο黜7漍+ゾC祊=e7R4霋鏱皡匡狮籮锉 +7﨑7w5鲀8!┙鈰噥朎䅟%岜~玏A把闇徚}敷癜 团;隵^?>!廃垓湓(祈捓!〩鵪:u蟭數.)J 玵ヤ酂7絴隵缡佅垷傯繌裂一沞狻芆娾v7+(3/t.6 !幕Z-寿pS鱰發% +W(y>撤孮;%f蕚- 趫2Bc霖2笉]b4o蚶Z嚪砷 櫷J痸确烠. o3匱m沯疲O崉s=%茤?縤-1h胅饑:蟂( t#y'瘶酇蜩孍 h -糺d1坾聸Ё啎⺄Bx~捂繸鴡衭姨.l-跭疤q-Cohj揋坙摦a厔cL#R梵+4搜*敹酵奇s<@:|化謂瓊麼WS7T#f諡q訉殕Y巄<4?Z礡e垇&x晤4V$'儓#E餒蜆>vP鑒9濹硾D钏6_-伔B6\!Гx嚳呴|_󖶓vJ綄?酅H9巪G:# 移ZS浶&鑼=}~h崉?匕3Z3毭飑#pV犒C=v|I阋埀﹤\懁=$剉0糙獖▋熷廟尓&y屚8诰,珃g詊 闥氢o桂&s簦+E彍 蚧敨Xa;肐?i 划湻4.箴1(f(弄鐖,[eo犾-q待fC2V-娡命c僼╆蹟曀聨j襐=A-S豉~嬎虍疣扤0d;嬸V裼dT鐡<椫襻GX甽泖>嚖t悥s些飕B*a隳Nn癐⑵p.敱W?wz 傴澡C殦貃忡鄛櫴|&鹲Z=-覴h=8蚮 +7鼶♂\|苴=鼤搼亻_|c襐|鞲*(}脼1 樘垅|薎I8猄№椨劃堵」跺"裈秐゜z饧堲g^2n麺醞1遐b 菔5cdG鬿O!鵬%";︻+т藡[詋k;f3*{*-|彣<"/_C柴 /庹鵝嶥>覔佂h噶鶹矀Q_oD搡}_@ 镘 " fa]. +endstream +endobj +15 0 obj +<< +/Type/FontDescriptor +/CapHeight 850 +/Ascent 850 +/Descent -200 +/FontBBox[-12 -237 650 811] +/FontName/LAQFRY+NimbusMonL-Regu +/ItalicAngle 0 +/StemV 41 +/FontFile 14 0 R +/Flags 4 +>> +endobj +14 0 obj +<< +/Filter[/FlateDecode] +/Length1 1644 +/Length2 19058 +/Length3 532 +/Length 19991 +>> +stream +x诂穋t錩.踲V拵蚇:v冶憩囟m踲襋嵌m飡鲑珙{顥s鰢5苚V諀戛zj嫓D^塣胸(fk鉊咸吏 knm桁(ck#M4u5裁憮 ; 溙mmD 渶?j@c缆`驸鈧#圳;槢9═炸ii辋域O佬?<o:殯(璴憩6N!䦶/*'3 滥 +枔讗P壦膩6@+汲@谲h権:}仝S#胈,AG姥hd型h鲝`t6wt 0w:8亾-儡迫寿&"d鏯7满/樇摚憙節鄌Vy髏23p'罚鵢7乐鋙け瓚?%姣咨儡ts'!`l頷ge帼7鱛0;裵v41齇t牘亙醒/蘝后焨䲢 祆u埚_Q搩箵#惺帣錹N#Э筂蚼I[3涌砥蝪醩:AT 鮛贫6Vc ,邤3D䁖慀縀y锬/忴=Wh1g++Y肟痫al襽v寱伱'芾谲数s峥MG疑鄌3mL +履吏o9蠿捃扇 `b`醴S搏m齏3籼LL脓lfndi驩胭WEuFiA1E 篠&W|'ew豢烃G-2镀箴垚惌罁a帏洃摍冫擃_0y1pr0wh檳鵢忂瀟 尐崙?芒鋎`c黽峻пcn 鵞? 現U譌8!乶@#赣h豦>軛 襼--鯧瞿ak灞v$讧ネ﹑,嚟蚯乕堄!躜癒/Z-}瓨} +費Az9挕焹颺*`/齱窜膟炋姿箙滒姸2=~(嗻y卨3懫'譫^w&阬"璒D 漄 仞)曞g暖 ||(st+-Au葇4> R!條F)齏:釄遒魰= }悫|Y掲 綎u踭}Q涷邼2硼琹蠕醨+暓*袸O9)g袚ㄘI6va郲磭:"籈湞櫺Y禂坏Ne裙(!~"萶屏)夵W~=#覜檮饄匿E婬{g储X%鬞 L6s]煒嘿箟B缪Zp敕bi泣卡&*K浧Z鷖鯪q伊~厼"談貳Z輖[侁 O镙p=?導倘5╲a"觖!sYa猰3覠徠褍谍濛1癵鉬8B鐡蒁叔颳嗇饳<`en.j纡><嚍^:戔z抆?棉\諂鈉1礚h`Rf躤 + &*;馧U@i叜@O *蘎G屳"$~砞S慒訍n郟+轃gx7=枳{|P5u糼'厴/v蠇闀麻椏o]#+峨7\酟cy墩h庂菈瘁-#5"2妦s鸧K,彫%奬,覿<^:渢q殊\/矢紸澵V腍U礠亲m9v'忞(&H3W峢疪$%芺翨&R鐫阽A贁b|怼<~歕1S楋C趋H靲p>p m椀貜強鈰Um魉3銚!j暣T( +凃玍夐魞t峵`捝蕇&K.4褅佲鄑I? 琺<#)~b帮>=8矬邴Hp~`l_*NЭ綱~N8X#*蔳藓G[+3&槹N醭9gKq{笤R艞N*J嬋锚獙楲≌c贿<共间 +-鵴棃H,{ &衼冪mK万%窅z]靹遾顷1@~L$湽脳峟.yf<撸\獕銱泗Ymj泾0U鵴\碕7顗{汒\T蚆hK +滗"R|娳Xr磼<汬髍婊3纋櫶X瀧f"ㄩ蝘ォ估鈜軪曾 XC+[ぞ`!j~嘸愫毹 +nx4蛷e-顅(4贿,鳏牒K|H迬F洖e#[磑'?"灯鴺匆砄頃&_圦4_鼇理b4HTAJ 枮5ス螆柇e刓墐延檄y嗶謡毚+啬鋇洸 + 棄臏y櫰羊h4w愛qp寴垼ZB_=gvp毆#綉濋揚\~ 嗓w!禭{X( 2訩⒑f|jmS齄#璷閄~AU3%wE]A慇鎦?Y/$氞=緥鴙H8<彟鈣 +镬嶞鳋y諐唕E鳮kV阐!ta1参葷颷抡雀┷骘祻胜LP膨鐘歞s鰅髶蕚㤘7o[遊m甸擱琜-A怐猫鳾巩AG/<竬b烗釔倡歔觕2U圲檡@q!芐3 +鎖Q薖;均 :输﨨pk殇d齡TG8褡%踭Yoì媨a +f"肔eJ,唣伕,.y溂岒诛z壼勃辢x絆傁摲g柝毊鵶箴独sM垶淓b髙L呹霍 +茷0t3I蠘牺貁鈲&%赵/鴃$o^=擃抚 糚隧c御r満剋穉裪鈹辬#膶$X.4讳蔛A&$鸙Q匏鱣[@y奇;Sw^ x/?怍{Li忍J賘咯`VY .麻DV賤蚳#2W艚屢[栲嫃屙>棑T9~西鲑?1鎈靿YSg獏Z 讣^a▅9D楧败9瞎8] +~毘,"﹌v姏fX呻/Q癞v庉怚S壏简ZW尛k模&憯1#&鋥a竟y.^h^9麡問2攔]臔 Ozqk庇鉿`/这m垝q蘿C裡;O ; +䲡x+V鸰慧/佼JG琵(t慱矇蜞溋P蠑懰悝岃 P欸Ay璓2牄咹7BN嶡5趷区鱪#汨9湘 ux$"R劚i嵐=籆踓\嬹鐰鶦7洬邡凸 ]K}嵠Q懾 d`WdR汆>憉A>])4鸣b(傟-熁跺;^<眡嵁皭2@梍檚仈OAk萝(茠褋佨窢蛓捴硛现葥R1'<諃:壜(輙|╕d77='u.锆ツyH赑Z{翧觴9H蹡%^]6扡]G﹜Oz畬萛钨olD辥襚啀獔㖞洶e糌痘%6椫L月c髰c藁o|7鋝C旮棇%l庎w埇闟%8慔\5辮b'整$珇せ 楢FL?唸C9帖僦q蘵 冯@拊;; 誦阘hK臰 +夅7鴍#/g7zCPB到D衖zbP炞b栞均x稥4噿Z 亷|Е8趀.o巇HN坐7氚鉘?t!:Z+d冐每 e)7R斘斈蛔鼅揮隮稫儺V韍ew掴郓綧FYK囼NaYEjnc崱錼郼1傡.1瑥、2孑w3痵2垓l6bK岒-F殲6y確j|+Y銴-O*懭堒F?7S慼馨6\s㈣#X喽}髟-'7e" R澡霘秨允i'G厄 3東6鬑- +繎帔1盷 鹰Y RrM%癰Q*吱覇溶麫D o懮囒先'魌d詘熬,;Pe3臂韅6哂鬅賎隑唇P畦C揀K,柠&FY祬察慫纸:.?麣7EKY鋽K証椥/R3訄笋鐜V搕毎?鑃ZX9&+'S擗iS貄.U噔椺"J;惎哊瘇Mpm闙叟煘a] %艜*k6=Z憎*Sj @EG糨& /D*_愛!鏊]但鳙Ay6qNz蘟夀}=3g畡肣8腃滅昚h嬳_w犾叾`1"檦c2b狙鲢甜(`棒-冚9pCt賄? "溒I鬰姦+!0P2股>襄c[覚+髨 G迨1螂 +UガL$J蚘裐3C峥!慄B鋿{RG39厀F=毺湄呃K伤不胠廾a2裤沍醉*赴I潫;ㄠUg^iU蜧cx抄4萚;2F陡 << 颜?E淲p,ZF#凟.PY]"洰я读V?&Z4軦鑼嬣nt綆/x4%oqQ栮芥秎O阍淬敄8櫽芓1瘌1M鋅S{馟:诽豥i誵;屺 U6m乤=*撣錫n犙踉 叁A &:(鑓扳d^碖p蝱x-#jL-N誦鉦跶駌uq s岲-_惢刨筀f祐mZ)輶箣_) 劁wg2GxC a#簽儗2钧e皑jw今咤騔 FQ叶R"qi#7wЮ?6澍賂n篾(春B[恂k +ヨ莛U麧)&#鵛C鉃=m扏'黽煱E寒8瞲ct蕮癱ж拆#-oW鲍L偛@OF煑蕤嶢嗳&泚挂D38)滳d$jo钧薨Ut%U稶_'o禙r 恪漟d#>赻&駜Qp)p8殊J謵骆Sv<蠌%#]7$Q昴S你=誓~7鎌 ㈥仩苗枰p窟瓅7D芥5揦保oUO 捜:苝?禛焷 淪j镺v謲-/\铥=j岃霹◇劄4跒{<蜅 0唫凯碕襵[G裿捱醑y(願β[,C駒料S4*ヶ/軇X&艚ptx赴dCI萌娺{釄玬Z唾耜n豔z襤1糏搄~rS^ tem懀U7彭瞦F烮娥5Y姨?x翠霟荒梙2) う舕Fs虊/$]鄣壕魨酫隴6R觌醹A*5%槿7J漹ZN)EⅦf#W%杳谠鈞Z-誘X碊P(婋)dKC皺况"k~圫U陽[:焽溟坪守冕耧C貯8戝䴕斡=悐o!tnb瓠M攤釜[e齦蜷b眝 $;+覴q) 鴠-昁?媶鮭%UQ7簀/昞Er7誩( 迉 s悝庽x槁H睦V睂タD"癜4x璺啖i鷉爍徵Z~]媲92<靮漙CB*9vC建━洩rzBa帇c+億f9銨mm砶5"蓔 _骔O#捒X僬;鉽-/Ygエ姍 +! +r鎶9駡i )2 涮QZ垲凭⒓?碉賁! 擀 狖穅 K8髪XH: 欠殡J8Xo靘5#byd筝豇曺姜4&嚠螾!ぃ鮩N 诐<Np悦*砩WWF.6顛巕)X錝耪圃邍S垱新~3M庿攌i鳶*禑厰q鈙啾萻鮔対R萆"W憈;@疣旁 N6: +汇w A蘲旙h菍E1[v鞋+ _箼啯@o薞&朂s澪#被 ^憄猄VJ楶,F佛7G熣d啭皁A哢(舜=纽菧冢鸮U>愨狕_佩徿10赃OQ誱騺%9.o繾晩&.\靠琋s&沄\~O,l?;R69侑x霴o0RI噪Ow竵G棓閾O}啃4J籾閁P塹闹蟋T俜t鋡炍种p痵懨Xa瞾j韼*x1斔;眾煡7d_q拣r$(+vi鬋檄B隯H*杇r秡鹚爪`~簜揫I*慶'j↗e盟怺B^z囥LО普蝠釹pt"弘幢M貣X64攺}i5D蟘嫤m8猲淹婖3煫鮀#栱S&澸鶑薑槬x)嗺,肂罡:^梱9墆洹鰒}じ*釓k +懫嫯lOs嬠+(>镓idt[裏B嵺氶犇%r訪=L屙撳褌蒂葻/t6惏锡M價檢瞈K 童tK[T沲牭h(鑮皂3钘纲爣D{n');FC*0|7`古>岠⒎淉鼗巉銑kI"彁<@嵄裹{诰_ t凜q稚-吝疇 T/-穁VX^Xc友2柔⒛湈L{歖kFSiOx邙粐髲曲扷艐K剥刵W:9b{t羉 嚧 \荇鋵K蠊"纘炚w瓮K宠v4":穩 5Dw倒舛耛"'`z?諱U:^徾S羊54紱52>啞Q#"_;徇+0EAzX阽$3抖梵0憷 -ts鎜MD枖 >韢$:朸嫌J寻梽+鬯歾F8Z;9喁:i宱屽-WGf辖ReP0o瀍Ud'38or帺錻3.&杽&;茧罷|-JI鑮鱱{Og) 陲/j!廯0s)?x'%賜鑠髄射~Y槸猄Mcl璎?滰?6洇螻W稷擳A穮:7,VRK犡=韄恲B'>氥'#挈[忞瑞v `=u飹譼泊s&4i+ 滵6|怮遱t*夨О癞F 橑⺳噇瑝 +嬑浢8鹵唱lM/?役8鼆4'幺|!剄〩瞞6玊\(詏螝髨H蔃罻`^Y坃泟XR&谟V"玱om棈q-}5>孄#5! W铴u(2蹄 獀盫貫惇] 襭K樏i嵙倀 幉彦胗堆 )顐X零5+.|乯W沪s鄽恏`墛  +疣挅粙5凡蠊N$x郅$睰Pe殶1?膄LQ%#腹鱜澎`貮B5p2⑽e訫*g螇*韠|*貇#1籃粞 ,緘X秛jl緡 +礟x`昰+戧賸‵+%rVa 镻玃漿礙芿脦vL5悑沛5=峉噐R`5篘|数矽ik鋊緰9l~茼;E欖焅N鰙Y豷巄P>汴玄[頗g幍+>F爩ぐ$J3脋?礿[臞W逃$蘖 *衧蒇t獹^'彩"J#穉暧Y颥 潪a亡)O稦輤暐XA岴 |J溿杠宖P7Y'(荼柟 +倹ㄨvz.崴B鮧P珞祈w@挳誚岾#馕r+?鞛eE:Q覇摖跃蛆跋彄礴aYcN-閿秴煴蝕甪%+2滰?]<=C斻踾2仵奔ns遪|谺raF矪邵b翪鈢荅+衜50Z嫠筞`Z +腽u匶(攛m6<羲淚 +c^=蠬湸*鎻犤 o^袮_ R8+qPv?伛溴泑T俥l#`缱Q賋 +A1gH_I仦LDo氫餦}mSPy仜J歗Y*&帬作,8A飿y4F 綔o)%乊Q奲F巧Q6)i嚍)w^禝*榥束 +F庈*k溍狶鮪,z&槼帞,釷/ KHp>$] м鰄輻狊珐愀嗱+)B1昌鐺^ \撖>膮f 栿滢1$)転m埒 鵼惛3熣ヒ緄炱LD+ +擮栺]だo媵嫔勎{LM⑩纱j=腆z猦3S断[w[/腍;TB持,Z粀浙 +u嗺量抶抃8'=~Ew凣摯'妅roz唊,"K舥*P-x暻F朵釔$=TX@b_s~ 6|% 洧@fH鲶r睧og焭Y=1)e黶澕&A#sR埛:Z輔派51g皭楯鹜寯$檣 闐ⅳ>DZv晜>2C (J敷潱咋溧鸧蝘9Y暏0素8赥窽獨JKLS謺:旫8迷i?歸叶杌!;e蕅Vm胼PRt篚9駜侸oZJ 浔潪jO竄QU{!K\海[>罅(蠓m#?4=貰!図#锃恞蔡FZ别韅燋nk扡帞IW幷秒V舝溬剮茸F栅摔蕲GMn壷禼N%遖7ㄝhE骊畫(c︱`痖jUH饂覥M.|3q綪o懚8.F踅F&Mv%7`.絤(G拯H 罋麺43?A裲馍IVS#y腡袍:躌焎纣M剚} + 擹訕貫k匇ib蚸猧鞸色奋K撜汫ⅳ&蒞'j)航蜒c2p旭( 鍭9 蓋袜簎:3O蠵蚣-褗搽頻w 坠潥(4訨Z=N蛶4隉礝00G釬&:稳%榃_恔盅dY^斫U饾5牛,W勋躌]歎蕖q黹娠%-械硰磹林:禷侙q缂搳E,Jh謀'-z/?+9魟y=顙栲`钟B4.Igy>襲收4 崃0>a*璘杌! 0b玻^!%?隯艏(sVIYM弛岡詂凸囑搣銷6要{} ﹏廀涐牣骅礗k驰#D9+緰%鶾楎 +q/;鳗]33 怚Qu簤Z_~T`ea辣鎅眞奟Fg菝威蓢@=筩倠圠@:r斉坎9^J訦5尾E箙涺#3&菝[)0\夘Y眪⑤g'{骽 I惿绮蕤@zH踾ob3u,棾4 禩醙蜓!C-鮑[燞e現猣踻g謱霝魞+訯蒰w鸒7艂嶡g塎{J蓖樨N偽 +叻躜0憂^nh/秊q綅1笐7M詌蚚ナn 綪5?饐+j<&R=x剱顇v~sI]檏聦糭馕2d7;Xe蹉'猂/1 啶0zG敢竗B8c椌x磕=(艴QH脜貤走Q/"Jq5he|?U0q;f梍禁#.湵5 sJ|p孳k樉诺夢衽3f1豬0冢鄍pq棯譬摵SC.躴岸仐lXj腍蛾搇咲W#3☉举藱xaEK鲳橔l熦灇(yAEe耛BK'穜Q[薻鶻dtR蓩@&%m啖s-u?柍瑕翀尾闞(梟栯S煬)*/> Qgx)gl?Z节暀1躠弑8脠=\|捚 刑椚午彨攃斍藈x`扏t +蚯)晑壷喻颥}G *戶蛝鐋庇c墾杬kf{忖4p%]tE 懻輚do湽A2鱭/咱9垞℡1=塢`聭

!5a迵註k;;佪Y懭j萧禃o0餄u鵍s-笻嬕鰲挦彾m(9耭u>.0扅ni灛R钃+D篸擗椣兞DO:贛% +娧!尺\夨A娊誼叏}n|┎嗎f%$尅=s蜺K鉬婐q}-扮c +踽鎑S,:?Zpd⿺撱 i職= +J綀偫8燻x48屃GT%8侭飉 蕓 +3 +bF縌Vご鈊煫/3!怮A[4喾颭总 稱vPk|i庆鑖+r压菦唠cTzB0J{戩t土:嬲捍濔媿劤~x┱潔Z +@箱g>灔諑2话U黁躚梩 ,6铽1囷/惨[{謑憻 +轚p靰淄巹=,&^+Jb邂Wy g窴梵c尳0uv7卛&┨ Z'鮺 鑐莚 \a?$嚑 +撻》ユa窌跷w矯j徶閾廮琦A#巭B%挐A08媓# 涐紥}f糥:a蜘櫢戤炊杍獊iq『LH8┮捠隶瓱涩蒓劍"谈>锼9!墀&%rS 飺捱炮鄆aD榃惹硓惼f罶R戛`梤笻s 茆"\"謃跒$旺襽鎐惸(藁颈r6虿п蔰鈎U4@A鋮嶯覟mB慱%?#抻&迗篗摦"趇v:懮几9猺~嶳5^壖&8顀[ +縜噮 肹谵p猍◢獧槽鎦殴~х葩摂炚?r揨@lB:鄁枀鱸悲Z瀌癃G桯lD2膟5搤tr`v紼检醃q嚧猦靻7湉3兄﨑.TI垈踆Q7V鐽0熟鈼蠇迶俄>穻B掺鴤賌效鴣?伅]蘎*漯,鞁n>袭9K亏旂7袅芨0び袮f刕&餀蓓Xu鯰鱑=f,╰w莬靵瀏塎A,scA!俞蟶龊U廘|2拔h}躻,2#dP(膁| 揘蹌袂谌JE洲纫ㄧO剚麇;拃L瓵憩.7@碖6饐cZ`畖@x厴綑帖:v詠鴜沵骱繘v|箳@?9q觾匒申耜Y粳$#u帑(s6摸涭~)瘎糗擘L折扢Ge逤}1dc*衰P縗1芬w~#Nu页 =吆 々嵸O苖痶泒0T苚3滇欞 ] 旈憇4枝啐E$P鍯暯韅8^汯Cc慪#篁O"紂382k骽(AV/L褶矼蘴縼藶 +&7XYr柮7A$报$B鏾+$!暌维L\#EwYg1Nu淡婗偽q:*馨唵<.尩搬RE3縯#U坺嵧YHC倜z︴qJ鹢Ff皭.芊a噆髆P楶鹤 . 嘹 栦H@^刔挙ar傻<13];膱∵@ZA鏵2Narc9刘 i\+UQ 迭Z'@^K漇=蔰$跿雞} e猽-Y策嘮杻单u-㈤5fsr..*)/&$R龑翯搊角佧%UFC讥 ?u鱚轋7k聽H輬沉8aC烾焐(B曰A掷|赾?9佩预HE邂3+牺O撏WKM鬛T-靳 傮C涠o菌~?矢\瓵睍寗6x逾2i咥珥~$+啶窺 叟媏)C]氢,+鸎L#1>z鑪`㎞3娺辙m踅苬5mS湑鋄燭4东崽 p諓T弸U黏2jaI8譴x瘕 L3@枟o褵糤P 蝛乭栁蟺燑深`o稣束蝛槫CTM赼6H闯 ' J*-bΙ-牝鳪d麺舳栎D紣钼闊轅锵徢&B暃鐵F▍I惱┧!啉鵮#42萯1w#苖甠a譞釠G龃?鯽篦飫1C2閝橗dě绅1; 対笏軴&荮荢鸹屘狈錍3pX癓瞫儂贒U糝滌Z澚KF% .]n%焀H.1觪J识5qV.7r!_娈,磹D ēDW:Uw侢礹I盈炏2檭蒞眛!焀ㄕ少!穼k鱏=iI4j噉鑩d9閞_c+匓<< -"U舕2l诰Z!'匢R5蔻m6绁^蝎Y藾吊n鐇餿k蘾3G 冩瀱у[/U芷瓸#U谾oE/B尠T葦峡S )/澅ek峵!"a6t萅慢♂嶑宒"6Y鹘6@汈慪7ok%ю5#|苼韒B耹鯒>+輋E瑘AoU躁儏聙w獀龡%姃!彿塝]炢?$堭鹰(瘻 )Wge/$7pp)躩=噼5(_膴$擀G2哧z暇c緲阸┅97l'忬n8妟s墣妽}%腕璖u舵r淑蘍 讷類-X 4"叚@阒a xB擫3脬繉67a(早5蓧騀謱 Z鑓&!販I猯?!)查|W sb_U鼹嗋怏ojВ肓檮9J3诶(*蹊三岳窼m燊+NY +h3A晡髣枞gR/觉隷霎vTy爙2虡獯虗.=1礳C嶟 峨蘿鄌稚靺者D秲 `谌8{|吳燳殌-bz劧= 8 屐鸗抡蟉H>eI谞D^柱O晅瓉猡繮却:ks蔔w妍wFLl\)喸笚@鲠H凰!n碟4NVξub3)f喗`贜5雫罻7 玈."z蜍a堊罏z7龊辙闢y:琭%<'znr囶懎彙寄SW)*瞨她盳l儃獤鄂>盉凛鶆螝盏兕逝D癡懸}z +醵V gE僓覐/!黣Y青h臥珯'HI廣;慃lf岌"b,鈞鵂'Q泦=篌:餀v=笅(R闼鈗O 训w狜邱SX?蟗籞塖',孷匋骳s逎糵5&skcs](9ぱ%諌鵿V&UUu~蔕嘉;J>3d> &鏉;1偩(纾漣37P蠢鵸寪馕饄訵y键q;}鞔1XN龉猹憵動&捲 鲵賈沆n x姁'闒:)wAIuu恗餗瑏顡]簲NⅫ翞02r宏!塳(鎣誩褲zDf+灿吪姽3虰?c桘)g侪舙俥Y縂4h玼e撞u眺i桻遮^Q赈ry廠藐砒%撁瀓7)秉`緅橁7灔葵1虾=]玘稍;簮遬9蚢齎捀垡?I咜"nIp泃甁]u併鷖扟揢H LDLnM肞鰹艱鷬$僱_*镜n窇梇&雄W┸`鬢鳁?5XC崲L舘f耹v藚MV\P跽Y摫鼣豓湊駽g闤饹0MX哿脠噠a6dP6_Ws祣 Z~蚂愍uDdS>.bJ橠Ц杴腐pDg/灅0i 羥|MN液f7┉38 +9饁~X葽^TQ ~f嗆龘r頒吹鱜J蛓呏腴 p-嚖B帅 +{愱M 薔#惓3锬昚嚕'X%o偷*5U洙夞鲣3N2}w虉 +谢屒/ j湒牭福 +锚NB氍 !:/甸`裚迥b苘-頳嬹 蛊= 観椇]|ZN葬惁睁趓惬i圮`劶辄r柿妁魼6O|rJ?黯篺=S2.髇&褥荋-儃t>嘘囌}+莼8 郋鳸e鉼d8鈺]軑歜盒4m Mm聠鎢 鴎wbo)Zo╃"榉:緂磁買鐗YC堩&諔蓓=2覧3e^闺埢x鷥(+濏C耟S№KLg1g0蹪捪散賻扗泛X诺n'"酯(<湤F]儽r >\f厼:u%\D9 EE8詑滘1U.臭 揪7m览q僷$Z炇馩E/憯纙}圊侊翘X+軐絠 擾V*)鋨/.8N 邞1渱焯]雜. cjPE+R +顂矍莏<缍+D2*:Β5,6=k鱁鬠蜽}枈総誳敍ms呼v0' it﨎s箝韸溏H9塭圙C侶揯a6簱k'炣J枨~蛟I蚪&冄餰4!X+(偨冶 D剨嵂k頥yq吀%秱3嬉Xv:e +(#袡珍旛櫔+谤妲禋"兤矂a1嶫'镉 錛F?HIjQs鍏w馗崟 \:{+脆~砭[L薦頷砀*熒j街d_鬋8H4繗癘1瓇a雛;唚B_橀庳~e张N礟瓠b(0-wHI迉菋燖z貋腬.5溆,鋷?{E>庐譚~Y攸奅~夆僡@魪羛k +眱wa>\$Y筦~雕A1s蝬圃|#T7蚳懡c垓>狇4 訫}痚L湁$ゞ 竧迵讝向kh桛9I8╋頡簿呺Mov4薚n牡q冰r剤滬褅攞3莤1al8U筡kPJHHKH +﹦t 2Z&S)i6畦槃訞欼*51I闁PDb !羁莝d鸻k +俏R鐪漯l彂罞/艛^)%宗鲴s銥S%<妀星腍贯榫齑涑/I蒻:伒?-fO生跏F嗞丨挬n泯w"24U70u|聼嚔E懳H虬l杛_陮|茾=a葡暍慂抱姚薊引Ng"WWR蹓O.)鈇i捷鳧FQ灡蜨嵏溍輛+兜鵤睽纝r.埩//n剽腍E.T灬堍; )DtM0\璍No墆<廹U㧐 +]$黌動吽黍!D]u `剠[齋龋\I匝昛荐そ;苝移釐铵蛝,Z&Z觥 緲.y"劵笲酑恥qpr?e濌凋.\ア嬑雋鬀 弧癌$p}紾齻&eK]穂尫彉肒L9憆S7p亼挡¨ >1冮O鍀⑽ 凕U7历т J}-fm晌=al詌 $?+鴏(oL(玶 g'蛁硑&倿橼D@1埦?hiy,>]鶜(鷗鷮电扢[T曬x闤桩憡 xQi8昽絍i\{枛ZN庅"c榶;w:簍_[$刔52U[% 埊拷+~潤x踥ReoF.&擦j齫Y$q揼婷摋7lH/+c鲑熎苛\ Y4^碬0D疈鑾0艃9zZ uv8沞4沿!T弅任骳鎁o*矅{h遶/,0 xo? <提`梍m>埾"(O呋*筪桭盨迊g俰啭-光,]U:Ⅻ鳂渽"贤$耣临5彶Y $夙![a/嚱洂(CTCR5囚}S隿|插ケ$_胉魗*練BXp">2鼭碤9謚;OKE邅龎=?熐⺳3K婌]蟲衷?紸K%+樤o` 嬽*鳊殪`5y<缩7N軬1悅噡 且`j欉s}c2o]9&6懖Z/薍蓪m軙側 軶屌0媱FfF嫧巎y宯WI飩g寄鼣-棒橿膳z嘒1I惖 笡?闓蟜EP8>A蝓r tZ卟M爹甸齌洰b +嘣弴條G<惣 聤隩蒆j6m鑎o适"浱3继屧忞毨_(萵唆,禔悓鳮q邭Ywn]坕戢v阺盽M渍ㄑ# 闙C奄J/颩喕韟2倢R騕崓员l愆呷塵=*F扮 栚觘'9n梷梣滵&t焿>R槟毚鸖{5#炫:哲漈鮋笍痒棘pPRcv!DV;3隖BA罷礨岰6 ]he!顀6靦Q6籰3gs遯莛蠄3鏙V(\桱菽瘽=e炗螥熘5_棞錵&$6耫_p瘶惆ρ*J帼之7%蒸吐82祕,欈拃4?LL氍屚!=x驣q fx:F剎w#荶1粊赲棸i埍陳iHi檾謀4~o释|2梈醈&夅蜈0Z#煐囍豖9澽Q頿┊崬8tP_}>峺趂抦1-\2<麋呿泆忍xYQ踪濯灗倜鉠硖C#媣岯%>,<5儰p踃铑)椒耻吤篕齅韷枢$翋很傄 +庹a~[7啪袓\膿譒'{tk爱/卙訲蠔經锦#oqt%瘔t`h普AFG险0{OC奰雯樠5.HW`&曆惀;F璛謫;劷霾c2頼0玾%私劙eE歅!S栔刺剆jㄧ \塵铙佊穚),Q焂痕kNE$2W]7狃eem$嫉箅>u"0谙;蔊 鄔j|Hr鮛激坙硥@l趆 ,\"麞!8檖左 OEN P^黻冂 !岭庛乡5 ,iUHh妎俴6;戃2-冤週g樔纜0/竰Z搟t47E噺~D呏y:黾殠嚂56;澨忿膣u糀 H?誽仟0飲戛廚掠瘥i& N葠丒ZlY 蜔2x會 橋籿Qd+VK煡s測谯\7D皿+o鶀1溮 +颤懐gU1涇鵾6緷鯝A.褛\掔敼 狞隬X薥蘹u*l& +坊 m'葕袝捴6聽D蒮Q奆1欃鷭飊T∞釯渦2筫騱"窖xvt悮w;-(ye$ dA眫孶 Q█>摗_.Q簫忭a.掹=穧庻M艾5&0芸琎}+P輾&s.&{|_瑷/7曪珘勏p,K>m墪>恦0?v:惘灐咵h+x錏絔c渐I氃喤餩)#灔,>瞖暏哨 QK?0Lt珉"tx蝺3喘>)0Es]蚱ZS掊喦[為畋斕 謱鵚媒瑘\;3L磅渫u=/緕xUu鱇夸脓7D菶d8F\Δ鐛d憂嫰t焭&P/L朕港/|`Dju2H/6慰 +J7> +endobj +17 0 obj +<< +/Filter[/FlateDecode] +/Length1 1674 +/Length2 12391 +/Length3 532 +/Length 13291 +>> +stream +x陧竐P渕&娀wh=竸嘹袓5.!@囝www稝pw囙捗橱7;g蘅Ζ牍椎值鬪UO覲猨皥汣L2;gVv2刂耘Ib 醀dQ殐鍧Mlo + 崵#心 睋2q +磥)懒舷廈悇貃8-Az-um&&I榸騠洞芯=m 龆@;7mC  ,6@獛疾,^VY :%£bj6(偼vN@`笙`3暁椄郿4繖萃A{牐-厣轫vX:氊9空蹤俑罌騱@鰩7 7鞃L怃靌秝紋U晵'Ng悏骭緷纎0b瘭i1s+タ񷮭再lp;逅0;氽榵践~#硍唻匚騙0仏&庢6@'񘽽羁<S&鲻6[C牢N@ V7焒蝟-羦(l蛬紳懒䦶苘毗?0W犮kf迋01囏賦虂(l7.楚5∨- 䁖i蓿W矬縎烁刎(涁 ?{鸲hLo鴎俑7`彞-仄e谮倴貥;扛濆[wX8xX哈儩d李@sU俺`ab骎缚錤v鍬G瓠做蛨濤0M靥陬疦瘘硖=伔烗>洈Ⅳg纽鼼[鮩$5=靵酛[ b䶮嚳$$ /畏XX8~^n髉琩忪v璞巢硈迆沱瘬量袶蹤A! g;蠓丙O[O爨敆z';?逺3G欠a鴞Q? h唕壖`溩脇I舭Nリ沼9凳鍓凑i5実簺_ 敬Nw畇\藠瞹牴砘;喁[.䏝守G魢塱蚗/j沄y誃淓卹@賉 妗鱶W嘔7+旜x:3V襌墓%娎摣施朅 +皳pvK鯼g劝#g詛E1雠Ep'}艙凞囲 JO3|巑8秷m讝Pi蝡x冑悸蚼?-[e耥簩L.拍N3!0rQ8溈5珞o?6_O鴏,ta蛔l幾厵难湪w焨Wv6L堚~b疭愧醈 +9伌戦_撜%垮掰)#妕:橘y 膞{K7x硝怗呒税j鬊u; }LS|業(Z倇 ++榖=V査{鵽^?麛 n鼗ⅵ媠旈*韾"充>碗揨緃帇衭鴦'禉`Eo瑼k箼塊尫O颐g蒣滆=嵱闸4C 茦鵪膈錋:氮絵Sq砓徭e硵髞z鴧譻療4?嘃發X~Z朔]O趠!j6沐夁-?.bU瘄U<0梟A-f铔殥WLq晱薗>玨鯛洬鋿%#d\螯l剴;扢"\R嘝阪*cf蝯+寤卅V$*椬笟懋T;D抆尷  '鋾&E.揄趰鷺践愼彶桇[诔兗 K)颁?q<幪b┵嵄7#p4 簑`n以薢'V-朝E6*炨鋈鸏逸叹渏趴 =堟q z$vΥやRN圍>溉$憌z+糶預ゥ:锈M丒 | +\K話緦萊 塽臆qd叭"豜T^Ip嚉\朋 J韫烯裢萾孉J_3 77A鈂M轳谥V l倯b覇u!纗各鍑姡}#X* E 5B侕n-6:g丹嫆=儿閞QLd 憴*x晞>戁Z#鉹蔝鰔/V旨j蒏扅/G萎枆! +軁柸z^H甅ds&#&,f23瓐^顖jND拖%vG)!*槰欜 h縿滣槡藪.n縉.R通)W燆嬒垭8\Pr\I后:残蓭绣藚v琬{丹.]録HV讫sX鳲{Z*Ei攭w痃5 +Um}BY漙瞅莦賿1帷剨s亂>lr贛^2,P床盟Qr0C{舕;坫m)厒r4~圫拒煆褈夽1;l湰m旓覗"襦i趁w,n7J嚉<藶骒嵴~菄! c醔}脸)r"BE竵W褹鉒6煖Kw~V摼墊7齷廃l&0eU8鐻闌儔y"2舀x<玨拵]玜7a碞鎮J*甖1Ab東{擣,說挚嫸蟊珮TtO萾緪映F%g4&8焂鹣頓侼貦騫铄N恜疪;旟 藖VR辑孻 扃蘊嘙W +扳J!\磅 壙揩<~ 67瘐G?怏)鲉叭T 5嵬rj&袴漢/騡ytA5*y%飨沑7T棗绞擷UoX囬y莄A竑U蠫錚逋&Q<á午_鮭躨*u瓈M櫤:,5Xf9茚u鐕WiE箷R灕鍸9O返n擭 匯ak靁0卬煅D]} M癷豌蚜)+%寨懌噁k畡v騉h亰#っ,蜔鶇W紁硜q:[!挧1!S&(1疇殫p(X鐾城H妪7當甂燷(纩;摊*VaM馡!菄()汀堋-脂|$原y鬏<5i媘K軲煏%鴲私眻镜疶i'蜲寕鹋~[}褴b镙9)B=;絆偓 t巈U賂何鴉奪慸0H敫~/娷U]mVz犯E 朋舟鮎払疒(﹚巴賫腋q阚OP髦(預n閗訂Yl:e哺 Rf鑖i禮s琁z酬廹珐v) xn"豜&^7⑦n,k雕'纠e媬Y皂氀鷝 姤^恪怌>磊aU>f 53L范焾D0}_}鄗4侤=睭fQf7{1錶閐{K武;徻繶蓩`闆!x$I冘L?鏠墕C桼i踩y+"綐$9,登窅紸>遮U萩.Q葒4&轃~eJ壳+椛'繀?鹕篙颎Le飯仝廑*T:孔1-鯥o%:G?:_i*锢霔yim諁濋I裲銛碘^a&÷t鸹,n袇畁悝>d峪蔇忥袿戧aD哕翟礞n碚鎙觙䝼 猞瑹軴钲I硅drF-k*朐驒*#,筎8蕫Y庪'动]LW壽X訮曠么—閫涾s m|>aw)+屁-鞔C7鋊.N要:汳M憡v桠U砹c +犟蠊6 昰g逗瞸@1鲘[x確,tuy聙缐r猔盌@幂G(+A鹓绻奱K竩7u愔橄}t钀,,聞x!沒= 喸诒鷼L開 Q竎膶梿7t粖J靫阡&蠇眇滇tMj+架s^>.E5襏?俁0齶<8i琠艧柊陁]2徫│鱪析0- 9糤滖5膞庶 J頠w弟膪媅6v?棯$$濔8US顪崍辜凒洆搣朖 +6=A蛼B肼鶄$U=舏鉺佁l}嚲驝?[鲫B慀[拒>"彿)鸫*W_}::B牜9糏@邪繄腲\R .唚(臽-貁q<9铗债烵驷0f洈絝液%σ頹Zx3傝/循蚷O5TA镵gZE錚c#炬 .鶰'鬬q㏑蚕╣m榡霡熂珮7瘞圬s<}胠砆扮嵕RH;釴Xx燛?u5紵o*I幸t(致w?HpξV萒'Xq1A稜Bj mXa異qX)諺1謹'賟a 灀 O^(緯皒g=*t迦2拺钽#N厜8赡>j 5p艻茫蓕M灼AbK%'48簏晤灑/Ox4胺隍Pl4愴J-萡gw2 棦^嬔澣 F,畄梅9倞]邗郙孕M柘}梡:巂蘥3卆胔`美聪鉥C 7?預灛$r鴈_骗T 5䙡 熓窨覊.MZ姍癚=ヂ佭撎 矞"0輷&XP劀 t固橱QX49巖侖g&%釗+腔蒕ZdX&.g腠F_S崏i鰄矝蒽s鴳焍5O +}逦徚戏$d.-;*(綥0賂鍓琏糁怀fg^+贲c垔婂崮攈t,=秺X,匤搛:縕G!"埕b 9j缪褐暓)C哮8龖Y 貂鴓]!齎tQぱ落瓅#g廗R綳|姢<愜J:aHS F樘! #踆?跏誌W b趧'獐三搇秅{+藨繮粋燨幓醌皰┛Wt~更┰勦\仭y赎鮅@缝)蘠恖 +帞$?朲E!6壨狵AC#\\USb|O鄶D敫.l$`Yo癓s舉;$昰x幦V o齬*#荽簑關% +ㄦ{颤鸍浠7娅^袭4瞈{Yp9\熨擪|憽j0K诸梙P#` 滳捚論襣m] c槡飼Vj輙均蘏隳g錛'o~訓m "橣>S輱靴 nJL +叩K棿&窗娔攔"焻姏5F>X48雝M\,z0滕既Mfa1-sB嚎=SS儓聮Φ柰!蜭9嫊<蓄H氏蒚.8┾j4$廡6zpO鲇l绋D:媋棼鰹飛祙殗8*)2m憅齻幑>掭4J +东▽殑&(NV冂H椊挒蝡膿 +鱝)敕$S_N曙5'.3禍'槟賠烲鉃盷H {#緍薪xu~馃OSX绨Na+z婠6媲:⒎簵墎[6n蛉P獻 湗腆誑侴珙@梔燋 FN鴗0 薌$h妒C銠0桊黙 m ~)[g粇&FtE8儱┢蒨G礣"排秛4F鑼1諴d荸l韒4KMd撣炵蝂/籔s}(ii镍x粓 櫵╁縟6瀗"9'>軤8钯v'E杪綒Y趟蚤d鎖vR訚民级b扎WE縉姪&褱㈢xOe5M)^↑帣x掌:$HM1XA;崒蹸b>甑M葁YzD扻_搥5,1 椪57詋9:鶭3纔孾5贙】埜鴮偼绘che荮^55+>,葻@弣顉肈 .F顅鏁n_g毁f雓崪璉乾>cB燛G*鏝陟駷跣罡4半I窀 呆& -,p螂俉H篺/ ]骆^饃簾撾Y!托*諞1胵8渿OCL |H緪蝓5堟C醺麜B#5娀C}4凘YJ'蟢癕B +槄H絣匲樁絳靠.汘@慉aS厲駋9cM揶N:撦g墥フd弰l>瀄覑<旀+齸.F庪頑 菥跥|!襞^"]y }礈]陙\F, z殏兛 +暮1鈢\潻 医ū俓'遇"+5F=C饉NeL#.蘆/-6Q惙觝)逹j_L5鄸=★> 粀@~[蚈S澻渵縋-歮A邲lj燴<38G傤E;盌4`!G7鶩LK垤頭)Yー摦)縭+iH簦崯L歀2a醁O!}W抌籆焘e∶瑳?氃l鑘1諚婖f^m啂禡邈(K 讹_B 坜1敝L 敲靑斕Mh蛏憐C]&E-邒1:?H瑦N椾避85TU 蒖@獳X.Z\然w}b橧jv@蛍鴣鼛 趌::袣趾飤鄾翬)焭L*袵Z薈F浩腓|蒋萿eTE耀壥G5淾#iY跰翝+垰8邭BU;p鯸$"G胯"s"k旣O^蹗#3炾琀>;鶕醼麯胻截56尸胳O L辖画rN朥雌踎VUzt颡ィ娧A垢>y?齔馜亅pt临<]埗暽踫细扙O袣篯鮆N4埫刍幞,>蠕Dx猧fc鮏#覉Wu毒//aX⒕鱵竔儊Lc誕ⅴ桴酓p8讆橻鉷緁嫻<覈嫭E>D7暄!$頷+鍼袠繡v鱸5璒'Q 赟鴗b閘諹B抣m,囃q+降L┹蘬亞8錞e搘篐漽"頃95[0y蓯鸢;胠#q雍J课A帗{ydF/砰無畽讎B_痯k兄Zt颖]y塑{vd∣e`碒J^~圳 f潠 1倉鶱o膭鼭Gmg;鄒烓魿:┽)t.缿輄菎#~鄭n╦︷駧 憈鎝斃D 咗惃3OW哑釴浻Y1债狲櫱h!銁 Cz鵃浶杗掺豛( x鉿>Tv]蒇编D黳9檛糰援铢Dd) 系蒌o缵猛B邡饥4奛E褯8=89椯燏x6戹>/哂X州U岖T聳嶃=LQ灟7捖橓麂zse 9彈~阹p婍峳P[怞4娼"9)棌鷛澵藴訙p籲崟=TZ{( +恔萼Pfkh嚘何S郹T. +u[` |眃?|廪 陜4间R30*a誗-s 霾齬 $y愊_v-暈 K{_)襟t暒岴A荌烇鏡X諏e嚗$其wum呚+q薏鞮愆L;桚佻爃Yz┧b?˙ +缌饉e=陁!觪離3鞽|悼6正`C帻}s^蚰邆妘!豿v~矠~<}庶訯╉x笚乧焬綝"碷$Ra8埀T榰粃瘌%聭楽Ez耫) 04!輯嫋襢\9煮@漸C闺铠1菮3熝n斛珶fe=7P╒O1忁璏M显*ホb鶭p厂(谀;W&檢O邗佐 +6vfw;幆@(澠夭+荨X,嶒靝:Z鯍$□?ю钗'!:鎥L)v7乙`渋Z氍舍膽鞄)侲蹝P`U欚k0T肉ǒ[9wfJ倔椖{!梣1碀' 鶡z鳧< 馢U$撠磂,jOHY >2芳H灦簲粖>杆o牚?蚞赙窳ㄜ'L皺邥嘬iLc`惦r琧-6僷洍+眜i詽b榄G杌N R譣珑鹰R&w2鉹IWO=g 9佘ТM^'党鞉7~yE.]溊/|i$銱芒)2>嬧喗S苗夒2岪;笏郸 9~掹揫S荹(阃9m苿蕜R"驶橡`)*裠居鵱2T;焜貏G#瑸qの'乚圥祝1F=_癊諼%袈逈3ǖ+TN语剒j*郱绮K蔔?穳F州f樾缤7轖刉;鐵^L䲠tu@Tq進5_HQsD甎L%苢i^l$3@伨MA呔櫀艒a赽8*{蠪閅捽 0A已{拁5v頮劬鎝0d匯M#鬆匽4鬾黫qF濝2:贖I毷2虉暠a佘裠H80訊a 1垭[;軜帒u(s2k牎冚 酴蠞k蒆'┇宽搒Q廹鹢4檹91q G裱u 沬F緘D +4勸3䙌j瀳Glzc鴎`1㈠zX閛D郕kIQ#=鹃F 擼"`y*n唽常Jm︴H< l鲍澴YΥX睝硚lF!H鈓 欅瞘顣T處酠哸)?M0 P9户鵍げQE辚砯7 m'"侎D娑O7o爼喙辑嶌絙铀m駤浐蔁ゼ沈"歞A-\[俵p?zぴ/|*0u♂苙^'{d柈y.浻Z膯B鬀冰8&d吊脠椾彙m㳠1-鏂鋭檣.卺抑嫏艍O8藤&Y<糚8懌4嬉&Ge幛]僀V下摬钉{B'朝佝璢猷*諤HS郞&5盐 &U 斡F顃刨銺Gi觾u^%觔z寴Q枇<瞫峭3椱奅r肷鈩Z蚡*脥擭餹騪箨]A!=ε抓竇m彑x铢*{7婳NX*S*PX1焻鬲pら$繧舐gw ?&谙L咒g轣x埸x扣=维衏>}ЮK沪鐚P'羐t&躉y@胎詽<.Y鑚榾z俹Х5塴に;5だ蕳v2!s奡傠偅啲聎岻/D&QG騫饚嗞F陣D煬瑷觰z./Yvg珄鉩 @@妮loc~?Z3<\s6纼澀1(鍷V秨孿V琗S鴶J敹 74懻J 1t$^袙V0=~X{龢8答曮頴I8镨 +s*Xq靣臯1O淜JZ換C3飡Z儗@;橠r +K板錉繳熸傃桿雤緹n5kBe旄洯寘$G俴Jm孟,56腪醼{FcA憚銗U藭ES飼V芅r樗べ覴黃O#臚弘抡xvp簏哼&}'炋横脨d葔絩銕OJ艅k凚犔彍=U瞟盕撜2#辧h蒧 \鯆E瓠h+掊鋎*摑L隦;0D匠&L>0櫏#荋潩橌/#m湐伎繋0蜠eyRe攖'紦續菜0咢o炭*耋"鎻M煾銨讉i W3h恄責R蔫禍郖HJZ妳h%q淕扣x硕塎n倨G m葀B歙TlQs0Т闖6x/>脓<游譵|4I韷妖圙醱疊%,!晙s盺W耈准+屵"笳溷促&皍%蛔笪錯Yv>夻<众p轥鯓緻岙*#畯鑚KF四 曠 'Oフ--U9j%蝓 馍蹢s+&+獠裛伬-綽:{暺髨??憨sぅG杽W[理Bh]*鹘秎 茵狙/獴 +兢5#揰賕 鑜:T礱悮捭Q昤鍑5y謼洯揄嬁?亝案肑2蹳鳝L 帹邉M3豗鴭C. +攼LawCjU|v馯O圀12拷褫*k豮鼚 Ek3诽w(覄(LF倜+$4fm孏;勩tS/KQL斮v鮢u-蜃S摄1俟壪瘖n婔纍k>3醻?幛嵗Q=j謊s;佀犤鳙O,B+鵨b轃凨4鏆0#gD9q鉑趨5G菟G*∈羲涞袝鱷层鮨I黆閸w恣"洆g e鬴55椩v俥Y/$'\泺d謢%灐棏k滤娽庿絶>B槷[D{,>9*夻U濵:絎韽挸祄嫾溠僀qI蘆9U赡綄fcH虙%t淡摺↑Cp貵1罔s披恹詼酕"n<gQ~#渌媊烣B哖喾F骁1y 梥ミh洧i 鯎鯝!{ +欱傀D鍯噯)U鈀+L畩jUH蠛儃阇弖F^ F槙d/~祑^L"梟&XF駰%賫]籈f]祣Ne鐣2,81V0(⑨荄\敾语n羄┘蠒 奈绗x窊AD嘪輇牌c敳藹92&v貝RQ皱髩孯eBlCA唑葺籨$ +.7%/ 逕薽儲Wmq L?-~5鵾y^茤圛|祁飛橨邭-斗.紪(/R%歯媽PhOnw鲫飿Cb! 蘢R.ン鸕刷孉欚=鳉埀邝幖8歽#煔璪f4頏犥y,:翺0rd曒獙D鞽`K砋: 戬-4;崴?L:q嚄T猍蝮"煋uCg蠯昞yt碔迤S,洚苀茁奘76E崥鶳刭8N e?U~煔"嶙BR挀俪淃辈"?薟钣;雉侠3*傞主.nHh*A,婑亡f(Tw悓蚺莟B\R?螭~貖 檵滘:u&廰劻耿咲筿⊕室3:F%檭~C}奢+/R顑9觶H燤苣59>dO苌韜]梃!%綻梪w=E盅曾幸稆溋蕞3)煸穸SKlI鷜粲棢 R螲 縞-DI5w 唓ウ跧W髗 酪.T杛鼈>膹攐@讼u繥-5@徙k2z氓3 +雿ㄨ>B芫筌#疪>迹Q廡掆;R}嬗[撥b8A3X殇膄穷2&泳S鱺聓@li< VHq瀅選鹭^XAi碛爑IX杆蒣+[卅湘@鱺齔%:濊蕯2h$9餔m戍j匀.1(齒胠鞯鎯蕔筛鲛g贓輖ɡ衶5仴J愜Y貺肣#Q[肒H鷏钔;0甲脢 觹鄋萋锢['鸑.eB⺻X/勠挬 +5Wum_倇X磸烼劜烗邨莳癗|?Ay.;铁N^b'彝娾SF'|緢佁7%飩摀 愙"獯獤%qc$A勮A墢服薝#2鋫RXtT硲蚮:V+2魛泸晗.-0n:+巂6 ;湓&硫歎-氽];/勷Ms歘烇aB媰恕R┭ru敛煅~*鹙葍d秧w缥+j*颖m疇驈7:M>>!I帯4]<選狈81 v~Jbq煡f9鐉(悏#橓|G$飖瘃吤稰fo騜┭!?曈Y槟-q鲋鯦缤複捭 垽糅7挠䦅"Ct 库渜]#i妊扨櫷'忕鳢荴擮ㄇ蔶蒸霟s镠唧B邲o╢t[27媝~y喛穘%#7撫宗3.M虸躻榺05y&gk/~鶯抺剑]仹踳∶1R{衩瘻吾楆2=0箞鹣崅P櫟oi彁$<膑 樛瞕r藂l舥耦 % 术.筸!帙zb二n怭;@M妉飇A懲k櫈賁爽钕 淔夛T渼m戳矬RgJ8(墚 7o囕誢Z3帞& *:平R,i>b鹦湼h:#疄G幟岮亖少唏骑8睃Я䥽9瑈N鏾鷭0!膰hV 犵D駃K*瞧.轌$I嵊e讁+櫎☆笁塀嬐m搱#遹w蠫/蕯&啴1O:调紜/6v%]*g1h[[q虺[eyt壹錻v豳Kx鎞鍫O沛g?莇f睁戊葑k>{ N3鑥-怽蛠擝-2^0袣}戭猧N;r嶄.A"稧9稨M彽 2擜馋Ij齷e诌&傡髗ω[$[祝bE簨裻< +/扇鱩uK {"&胜阵綊$吗殟I +'示F醀俩]懬饘POM6涢*紼靎+讷(R)卆,i !骝詍W;C r貚>kQ証M肘敭嗣韧K$MO=/蜦[^]`П歟慟&T猌uO_k0喣}!ooZzF靺摬轇鳨/鷶2e穬禉QW腔]腷-犉?趚Y}1%垕5Е#JdW攅~嵂難)鞧掴>忺@8\尓kz寥F3蛢 <~?挐剈呩鞆 +F喇頓{覘]T,'n轌0R哫鸤騕w喇{弽@搇B噆L<荖AB遺欛[]扟呑з迱|$鋙?0c#驯籩凓缳K仚 心bk鈎嶒A焴 +endstream +endobj +21 0 obj +<< +/Type/FontDescriptor +/CapHeight 850 +/Ascent 850 +/Descent -200 +/FontBBox[-168 -341 1000 960] +/FontName/KXVUVG+NimbusRomNo9L-Medi +/ItalicAngle 0 +/StemV 140 +/FontFile 20 0 R +/Flags 4 +>> +endobj +20 0 obj +<< +/Filter[/FlateDecode] +/Length1 1658 +/Length2 16021 +/Length3 532 +/Length 16912 +>> +stream +x诂篶xem&籦s哦蛫+兜b妋鄱瓓m鄱*NN竭谆w焳檗?謚蚲蠘肭$'VP63娵:330,l孿湐靗潇竐M,屐p滗@Cg ;[1Cg @hXX誊苘pQ;{wG 3sg暘:5--J1囨搮-怙+汹无h朦7保2p6L-瑏QyM)9 晞*@h t4(Y[d-寔禢@j#历睗瓑?91鼚%08-輰侖ㄨ鯜G 'Э '櫍…筮8,l嵀]L餡nj/@鰩v-lS皊rv2v窗w &䁖溛鎲鋠缠貦43v辋嗼玼6窗u8轀蒭榅8賉妄7樈E縛8Y貧':#刑醒桎7踢t?/谯[僳頮V儏汹帣錹Nc缈雇,l)[S;3涌&.:AT 鮛&v吨)濗邤3H䁖狓繀z锶/楕>仔.种r6噙;饂,酂E鉨q1幢皏s株背6:)g每-5鸎 涌Nn@ gcs踹~齂甹kt炊鮛-331潑箙睍?[5R/饘2j猨涘鷒K吙S喱鈔ㄥ嚌<GD奈 郔咸爂ec䓖"怄`蟒咪黈 <0tv磒h-湁鵢忂瀟K橈镀v&虓渤…蛇Q麩窛厓 PJ靜X樃YY%5vqt;Z或 h w籰P蠫w嬻瞐慛爷~i櫹0l2帧桯xk*f戦荑笗m驜怍v埢q,魭f鐙杤薂;z烞n覶榐瀤Hz悿胼K欹⺁摉0蠗駔9窅V轣什'棷愧槄m頶+指泓3 勥潐:藮怓洣铊/t匕)繒錱ク <<虷 4+ma <沺T:焜42pi ;屢}髵8S2蛌綥2d]d5磿浳{/:Gε3B-#@运)9锖諕逷紕姕珐闫诋GzH坠HJ!朤'塵歅>4睕~# u┠塪}c閦ot鴈蕣5L&卯JTM +9VQ[0旨嫰d鄯鬬so4(~擲逞? B惥>鴷0澃婱硋!UL甔8文0败頻拋 熝&.挚[眗U@ 罧$ap攎橶捎陟慤扔蓏+3榣4^RN銘检A霁檬弤揪 z矌憭0=抏J鯭9VI.粷菿蒂颍噡魦曱戯W嫋拹$栲Jbv椝km鰼6k釒0;棫/畄e淶r盉鞱Z 碁晫z7=烰D]{eo熒搉甊}坅闛8 忊愷$∧鵴|黃F!倫诹)牯G<梺w侒3綵廿@y┯r4栔>螲o餏V撦w廋Ngv瓗|釿uaV觷麴=軨'%駦膄 $%0P§26籱焣o3zs$鹂4 ]氲C汯5璷A>衝貞襍/-3卯W*%9T≮I{畬酫 ) 犓D% G嵟剛 峰烄>$紀^騊坃>)"飅k劝wo沴r煢w嘸渗'眠)V瞟J慩;E=&{鞿M蜿8j镇紷桱 +艢\挠5丿Fwy錿腩u;櫌韑縺9癪楳],`囱E~^烂凶圇畒}遢Q)YM'铍髡w,C*z/辨 dU]S&CC;L嬏]侲1kl0O嚠顇g置)fW \Yw}$达噔U缱剆X娙q<0孞(廚B厗%'r`逩YHQ軃绕2葫粷e%奋K癇靷 Y丆.@ 請賐oか选?`{?⿴$览#/ 囒幩镰 惖 贜f 淋0餌汒Ml)夿MW锳YPF浾軐_5,码 彊3l$s睉(瓃汋~>惜1铺桿鐠)*+c`"U@(廬礲嫬``*髕狶痬6懬*7輶檗鵵5K"貴-慓4(y巳q唿>+块娮⒂爔$3:苢∞眅芣骃n:柬隗鄌lU鞖3!嚘YW厗<韖%% 菳f頯E猸_"1棵-硣n颱1X翟'鈖ZfWz:7D筚&U"d. 氘Ze2淵%浺`哬篕贅!9玂悸鲆惒H祗ソ& .$婵嵎wX,桟Kp_cj糂抨縔怙<燠詖讬HUU=诡qaZl|結嵕苭劾G~Q鍫≮:阴燓鷔纙狱栌淛` 4甶?娒I敺jO孪澉I匵%_绤T 唲:UB梠顼泣h$O2?齠雤苢=vh9郼)M罫Tv伪@qN憺F1-胂-i蚍旄'5銟よa橥@J├Y贗攑1% LI 5!撣継_D坤斏彮5M鲊瘕嫚9禌䦟玅8Hq媹pa弋m彼c佧.\;)烹Al閎C僁 襾 +Y#蒟竽洞a徳墓p霝<那Ga*鈶晛靅游es$Fdァ徠ru蚁怭U[鲐螴1X牘M%0$a)K2缓"汩梩荅1~``ou&庭F豭攴匁x柖餶A}痈p压&岯b)c䥽诎?趺]龌_悮钊1;洖9!C 茸3yGb%湨FBw蹱皛-1昫Д?5;獐労輛踂2yp庵 褣P~Zv1FgT`_?齴 瞺攭X譔T/瞮Xn3撆時裺&m!J%zwN7澲 晟e鲌礀.o檴㈤DD辽圤蚰枘猷聳 塍扟8?桐Tu8輺捻乍K锳>馏密桄*7&滀j3謚cb +j-桃肏粄⒊鮆髝獍{蹺紪椷}庠HHaa{C饰+5"轛穙跥v脴<$歿馶罯毻俦R恦)C8U嵗雛芳痓碄魼酵cS赪錶鞺u稵廦k:镇锹}g潕-i_鬺!?&X掼韸岵忑廲⑧Y.誦:1enyA寊t T橮铙Q#砟I\|e虝A珸 涼餅梬'j淣頾阸瘵]诽G:q綪読 +巾3}噻f@!許鐶m溱.鍕T>)玨1 镲-|廁al$)hd鷛N|X蕪贞PTtV5x眆肗 +rW襼谎Dzb蕝勀3醂p:燄胓冭[竡W乬湃u:皮陡>偲e]G锟洬56糯镳轲鉇Y玣Y%+n=[j贁\輈pC円 l4麐鶷;.{綇 焷z塖萞誚 >衿9f煽倗矃c>+岴5 k>*<^{蒣n讑;3:w}$$圅a捬'鐈嚮(V鲼持兤拄5蒐嵘%&禉萲殄 笢:鑉白桾跄豣劰顽=h8铒ぁ"SJ +聒 ?峥U3Mk萫y;诈/再u Q錏b踉!鉼鳑!` [%]^綼槈?a6Au耔#VF蔜y迸楨)?fr剜F3韶D>‐祼8褣_]Fa胴0*.嶹盠屳酮l⿻?S簽u*NJ粒cA℡i绦蝜n7:覶鬻5═鎤K呅颅h:刳p|'壊5墸4{n挮4釯1'晶肱 嬖Q1O!o櫖7<紶 B蚦再綐]P綶从<蟒┇鷻b0蕣L~C4<;嵪碳蝻"B玢%乩q?%鍓4l觘缥x曉x9謙斯V#5d颴徂斌1?嗕琋崱踊跘@翸V蚺&蚹飂1衔諼诈0寋軀*煭搶:1:CW'+;部毾箽;0tg\汛駸峬;蔷/羉幨>W蹭骸麵ix/O慴阖樝O锽ūd宝o覄栍G涠6憸ё[霈5ueq/,8蘅j A 汵Z鉿糚=囏蘳錿羇棼:Pq0:瘦銰玬B塤<鍰4w髏D蓣靄汙諒^AF鷘ガ蟶.寝&十Z+唥髄I跪禋<窣嘬慉q犄^傳+ &\锱/Ly +w-螯qzb9鴭"材D+O)鞓g墩Y兌貂机沔嚐餎裰|橄Y伿 頝嗧B_gY怯Q-爄対,6q礂攄 “,燣斅靓賵!栈PAㄟ蛨4'9蕧惱'9响屩rX:擞O,鶷X'﨟愯$酘4肉訒卓硋僋L在兢 @M!b笕Jp犩&⿻H@艶/h["0hl炄蹬! 模彡0\)瞩}hJQ鵢鐪S7K_!镕DpR忍_6lu疄*;室1荝!nGqR72 敽r餫旈噝$(gp諱, s"wy"=.y棳M)穻詉爪8嫾\8诠鵤5俌岔 褾6,i煛镂閳2%-c 賗MF*M6惮"O嫶O){h1扖vM家膍麻XL|E|c舱蜆/靾曞暔0|族竘単蛂埕,铋昗卭o翴 4H嬸Z*)L箽lY8鈡pU=额遯cG#恁眜p垯榀◆瓯,r&VK]:鈘妡uv `R錻z杵溴⿱嵁YK塝DJ/霨耇\TRT娎2a+搗楲U驌W2衂缩 刜髭JM>)C)+挘巒穊贠&Q$g廐8滷考4>耼酑闿薣hD]G霆P鯅嚰 縦<靯3?驼j饹^脂F箞瘶4[蔁跃z邤懰錛囘n嗒Tw肬";n繴人vDvg喥[ecE R383<覍頝曀'79F 轀/W~Q覟罡爓:赵瞱鼇詫( yb咂塛嗵5D3*绑P o輰=`琯n烥 K戕吖鈆銨屛47譇^}'■澹t)j# IG維\3算炋IR蜤!琺轨薁儵5鏅-E睔婄蔑?ShIL堖#鳥j 褊頾x樭挱Q0i> L`8肁啞A9p吡}魼藻鎲:V 矟S*崼幞賈鼱6负^pU-闘T烫魀!$g秇 蚗s碡ン`紨Rq!甘 /躱箋惒m綎宋Q鍆,;饣葰&7.蟅 +7f墁$a活,灬弧, #秩賏WA屩捠 衞8 癯嬪 ,(vN傣鰵冬K}t9KE6琌jnq,L腂Z倠i=嬃BNU捽穰XI皩撢<`=σM鎡^4#瞊mjA俠彋だBE&0憏J=u颧┘沅шv\e 莇颐r( 5n.纍蜄/47aF ""馛徣 + +oz. <+褂齘穽6w:近綷v?y+#息`%GGg鋌田抈陴Ul僶( mrjY鉩,=蚁眿;b诂SDM%歛紁閒f毜IU韒i枃8喎橹m<乙H淬孬嫊∩UhL缒蔬^f觶惺 殞鷪礇妹 qE"蟪鼷B▃新鞃氟溍6)[掳+.枕M'摦y<[咳靔愘Kq6;EG|塍鈸噯汌f1罽俏鯁S*槦 +軴.歲<>芤裶塝EC0衯;k-煨桟c芘俍e扨#-萒额禁`;$&BBd`(v蕢 轼舠\呻沩食-|(}犞73<由姛pb躇#CUv戱MH?&w@M麑稷1X乽悦烖6抡N-~I}mm伆穕Ob(鹣蓯盐h餀h瑋<巰鬫擼.Dr盖て>v5甶R娉:\叕沴{.姚g烐fQ= +(骊Q哃|Y/5u縹闼Wi稘綸韼}u +亐/伻硘 F⑨0 !@;k陖淦|#Y{灞79崘弡Hz\莫肐l'薑峛'a屇L8瀥楪[`h?涉嵙a4迕g=X:*♀pa?Zy伴 T朹C蔲猌_铅m>齓+k羫_廼恽q<庲XD@z盖G橺#剨薸%猞擯:岘`aj1湉V猄箵 桗棽焌6 47)~w祒!W-!%2昺4q蜫k犐玱f8F墉也 + 匼L*岬忏#阷mhJ珶N朕r甂疝ILh;k'沑飄<摗 k晪)怅缱坡衒QL箟`XZ巛穸[z躷`!(58)柲趱BAFq痎尋;撦窋"澖藁襽G;鹇b?~*驆Tw 鰵掱5K矗>钘1舸l伲粅^; |p鮗x徸恁 抯d瑬釲呈豳佸沣mZ:R +7_;*飍e恀姣%J翼{$:|58羨#{者赉鏿冂eo检峱a皋湣S)?LpJ裊Z秝 税衲S蘛.忋厤 秊hFc紺"毃嶔恚Dκ荞囎Gn%奼k3鷎堘VQ点EK#佁QM勷8,+1?,碲3=縸欱桄V~Rjィ蒟攗蕣鵄Awju萟覸 +G$/鯦鱎8 ,俢ぬ惓笃p3}Wc9BS娅J浶氣U6OFW,r扱佢盂w0唒I% 摺g懰尡b礴[At剫QW陪螬8邁mV, 3壖lrA5鰂嚜膁拗ik_賗BO4喀%~鲤樏怖-耪 椁釡鰳懝冼LV駂 /w0鲇周秹席景蕨'馠猬~犬癓裃LN1R鳱藓f換⿺氱"g~b髋9d铑旙+0孄徬:d漷迫浉璩黮I峯[蛅2 =普騌龊筠 4吺细Q媅褻泝偃 v鈺禘欣c驝羸監孔偕沐]瀺羌n%蚍]:翷玜D嵠欇尸3XHyr 龜稔酑"写霹怊&Y竓s颻|嘚nj}s枛y扛e珮躃锏徇x铏弋哒━6y_n !膉餍香洎 隊Q滑叽$銧譮:爥s ,"f蘁l宾`╜-eZ閤 儌2泠|_汱1噼u覟(嫢澏c^t/ZCH 堿(`(E桫g㈣锑姽9磹謢KM罦鞚赴u秜q .牻q7矒k鸉瞅*8谼=]9}9}聣9&'~,w`2欔'6蔨F[抛損躽V,'7靿^F~⒐霮^ 淤8塬0ga漱K盈T鑶炙├{7輪偼劷E頍3Fl墵 Ks竞Ue$?龣螹虋6=LA睈g&蘜梠*F浚"2v0孄*'UL靿6yIh鮫瓢X"]輎殉l諴2棧鄙泵劾b媫h埝s鹠:螘梣颞輊f-陹 r馱_a?騿?O鵛_+~d6\9蓦瓒 |FQ缄35S塨債q$濳y榻瞡部卒:+dИ8a苯`_ +綀帘~)ⅴ嬣0}0妰扤5N煼K錻夝B蛬=潊n嗾舰5#娏|驑6[ aM輯P 籪y猋YK符>i鐡5刅抸p蓼榧席U冈U寇<錍廥欌(.d悒@噆邁譣T$鏘脮畡)t憄DZ漊9鵬巼w鄬胼:96严駢k辒駣嫢溋}審oAI桍經xF泜v弆c&!謤普袱g~W#倛eFg3xv蝊稑cF劇鰤~0::K_ 6 昡懀d傊莶q8醿>W膌uJ鉋<#鹾緇觮5t劆*鎅詋灰髤-充G*r/JB0槣7敧5暳犛Cj摻)e-P悦衉n莄/陦n2晊D;Rv胬*瘈@阛豮%拂M瑬2!J}旈7m!Qim.デ騦! 阳E黒]91T蜊焧櫳,EX_])g(櫯瀨6C8F/&嵦瑂鵢よ饀;M殨 䲟3m{Dz<俠鈟Oc6w憖6◤<師梢痴仡g0壍!鎲Dι酶婦(捨<瓷*`(钒nQ舽Yュ鐛&臬>! <5 +4VA鐣U庂4錋'8鲨(婷幠槖b齆萬驤l!rPYo椸o那踽 虂3礊#崭E栿奰夯偾#绍蓵犭鰯%wXl挸泍鵧 )榲tY蠦x$e'糬A:鴻M炷勉:F擸H刮=1g7%罏狴筂)#6X窆)i5c]註F緾戭)祫岈Paゎ氶罴 (2O畬唓聃=菲圇e歕坂鳄> +jO眊~醥苟UO 渆3+馒-z藊?扈╧W#姲A笈6U5享9匭*圜8Q碩m氾J6 '燪遖麌?>來u缵f蕿Z=b<艈;靡>" 鷻'薼6_夌 G冖6徒赑h&獣l彐[)^#鲣 Uw欄 U兏2EU鴸8應閜洹4D馜9X洬)T_痽酪Ov禫wF懴岣 梘^嬆噐覘&猆#1 L觻o +?+BA0q灥P冟8^06鹿57夋K,旁1旖r帆N観W4U幐k2лqb5痿媛摟呩S脚遨QOd箯60X潛鷛~醦餥k凴w隦体M=Α8b逼@紜|%娞穯垙+鯯<-鏷坑 #琂 ;%86CU粙 唬旽7M岳鴪蘰4c滂錊W8僊9 񂇥薤f酂 9\喅铨=洼&If偀N 櫸膀~淦@娖齸誾風樷/损r帋$b 㑇龣8寀ツX赂熇呱鮰叙5XH|叏驧巾掼Y甕:3襥X <.c?9 l 1訆蚵閫膒:薐vo/^-c0銹|鑰礹0铤Q%酌簛欏娕+(瓌q旈踚乶道'鈃9;疘m鸪#愡垶叏1I$*Z檯蛂潕粣34U濉$ F9_[9P{m?"屧騻鉡惓V颕蜑bQ稂2宫搴V钾lO%y&9u^韼++*鬮魣谋逷 滿殭蟠,N靘i30簠脂%誋D?籹~爥J=$>;嗯紀n+E彗鯹4SdI &|溛茼u`#臠0炚4Yrq0媠秱霩嫋鍊咯腺鍐藜EP/滊F8傧鶎旔u' t7 剛3a #ㄞ荲踜13厃8N怾l$徱Y[y潱)饩幚媤褐长罵#dQuS炐sd{禤%蜭始 \2顷I隺牏% +魄F邑 <9"y挊舢鬵.逧 w胨/晼yp{N翸_坥鷽c僃玘 +硰ヂp*4兘乸k鳆T S趘x捧Y雖9案]焛(螩]厒5u羫j聦$棒}叽3-*灄紓\秓Q鼜门$l髊穨y|鱈捀鉶0M产喻坔"崽鑘凴,>J匈iL挔杆)眹hx艶pr;胭棝耸1'伐鏄浰m眶泖蝃辈uMB#酼帉28s儘勳潨擄0r頌e嶉僫t镐Ti薥y噐2蝽殠0O觲I3椕x:鴭摖0Bi頲q2﹦蝻檦1鏹65T荀lH匯搇醶r俺l锒撲儳![UV僣%竱枞n$Y>巬G2BN +J*丐+狠9誔楴*3薂&梘R4軆w +畝d9W #7 慪 }}郎D繣d睙T縂伛=氦b摯 f瓴[氣V.0x檱>餉$x鋭F繸3伆範/ШYK孤2k 篏?[)'b愽c曉蘿髿A_1} _瓣鮵| _oAmY磷!Cn!%r螺祹F6鵬,旫7迄`TP扪泘囻H穙z >a|=箟/<曾弍廎E 閃C|笫怀q蚜k暛 +韼B+觧R4朡E鲜T8A:冓縯﹞摩~靁6沘"竄vs +芿Bu绐|垡覭x丩憜鐒搦Vr’x刐b耛嶮倜z鄞6冨zv^N鸺)dG欒韙M_+袮鯯昦隌顺櫫液迩 +嫔倐瞞鳚\x縕履祫錏淔緿㈠\B'C琌喑峦錅d.BNa鉑钭嬧较-$D唾"鰩C&X8嬓鴸瓐颏f頩會揣橶O%X橒:!/A+堼 >JSy2柣kbi雋傜紛''i2释旃I+p甫4ujZ#]I慊h. X>绺盍H?潣& YS? +騔 榜2#n^Q{魅琒'梆2>黉 劬踵蝒英畂侕N崇n涓UU浈Cfyp紃糐邻熑"O輝 竓S霚&R"u畡A[+骕恠MPl羋(祮e赱fW樕紆逖躆蓋=碝;騽X茱蚅淏諨孨7C?"鰽聩?>@(B鞟J脕l蠵蜲!詐躄*.-( j驾 2ˉI羺疟=唵㈡丛n闭遳f2齍殙.Cm螀趨zK章妼勳郾%}E擾鳚,WX壼2h\[榦F洇靬荧;塴擇"E)7Q#鋭Ik顃hu罞锓#8,+m瓟魟;∞8艶恡-迾墶寨J hc彭m4屵)风z`q7C蔬忬r'G0J[抵=闼W祬僌hpFu涓C相錓琜gQ荁吔,7 +^,d(磛.L$潪悂皝皣r→聬涙qL漥 X參櫦7 枺鼴緎 hv臄司薋9麛肁J噓-&+u蔚P&@c譪瞁勪6侞Shhl|08綷 攫m泟所 +棚龉鲿7瑥:餥[疵>陬輶2痳5?懀踰'#N桽O等昂颎,$:炳硎搉<&籦頪=m憒;P窔笤褦讨:噯p玴:_`?$ cf栻%!媔}焔{mrl 糋鏦朠 繳崢$郚P?薔糊頜鞅y澽譴+mB}椰懈虵峍琑u邒抏n籦#{g耻)僪艤CC4L嵑識Q) ㄋ韧3}菺伃Kwo嫻NZ5# 袽l-鬮袻&@擀%%(2 0済5\\y匬窥絪`"鲽c>珒O笿2黂n}妍 埓':﨏喇鳊送趫-u/~葶7Y 3哘敌NJkQ斐sO羭l<`扣鎅#-7T$‰黿屻叏'a塧 z摨ˉ嬤A#霣@k襌鯍暾1X/[媫Q刺)^桩旬V睕f:証B乡竁$Ljぉxu#J蝍恵 z〥(宫磹组憃2蘸)QB战pT鏄#~庩8炊燿Oh罻N r吓薍e=麌"蒷H]幓頬鷍ep 狖+>祈`〓X"+y 薯-5騶骎宔zO廝靾鷰轊q#約#7扽g/禣n!嵉骖圃瘁r36瘗敤蜑tj﨓%B:辂;Y対 客-硯醿殻 眀驲I蘽 鬻膐$W@郼塮⺈稡糖穻^AaBV嗓茬]抱!d珀$緭鹝繗&ァ腛⒄ +,>(y橏;b*广,:熟,実听泿鳃hk@Lg5尾牲 J_鹕|t=Ⅳj饼記&yX'器# 0y;丶鳰 藻N%賽(鱬cuW鸯td豥0$4}x迻駾來dA摌绥w殁蚦骝卤舳泬4p唬/S+畽\轩^}琪擤Q'jK= 5酱=儙5k戊#?0俹 翦c>腀.悴U退葡:桉芀6籋転d-塢)訞T' G佗仼筸鼞妑,抹K蟫艵翹阻L.F眆馭78'歳#I^ 靻.UA~焟iQNv丛婋A!w丆+:+oE賌跓軩力胂9~ㄞ羕笳职4眞籁7=,竇酲!J'圞D漥dm%!翣=櫴#诳薧騰湊悢3Q肜場cSMO祛H5辫{曋ァ0規己5灳"绂P湞7 喱 ゅ餇 +|n\噾槐 ?V壂姬媯 +TM猥∨*隸)1}牋近刳蛰€~郺佶'猋柯j捉&淳勐W萸祱瘇 +K互混″[F腕幝 玱3A韈`鬡0惀護0螳$ k+鎿Q轃# 类q挹顝摵厙)屖鴾韱硐b脌W腁淛:艫墩TSSLE峊"熉7粯k〕,0yh廅K病G>┊W茁#荰宣>鲣玳o)6&|J惡蹈J槪.55覄v.Q:饍# t豃?`诫屠~,3M符V踐/8趢悌4 j7mih枔(漌z糷精應+耎檯φL.牋p駻iD諱`亁隘囘鍖铏┽9Q榨茙|鱚醫 ユ欛j,潆,sDQpeVM尣鯳z?枱濰熏涉%漶哃縼, %嗓濍#y 5RI7>柢"*7E(嗓&9/坪5k疺埰.=J,Ik<+47A钜d棧艳⑸諭鈄|;+嫀}5=!T __炤./]A颭褸\\慩蟜Ic鼥F TV碔$]黓C嶚%c,b魫#昘麉($zaU4趮0珰x@TW*,枃ol8踎軬+{Z_崞}6 佫4韋鎓  +v*F槗沟寒菳]n吺脇Nsf銑凌8锨4S醩绀os鐊KA T虊嶿gfY&'<=o靕 %l>陴Ir鰊③餾*脹\X4$)*%绱駨?躶{蠳鉘睚j_楱萻on/9黺p铒鶦酯7篼淧$X痴'4‵pcM7騍h蔮闅++&8沿l縋2瑳桕Z幌#"傌V+岓滝ⅰ翦3A畎1+娫至;h蔩鎟.嵚2!骻濳╱5s:嬑夥 R 隄I祐>6pkZ拧桿_泋╔蝅.|葠Y戾 0紻f烅粱 惉=硋蘿=`=包摴N攩G顕:^-䦆r帒x娍Yq蜹怍 塬a|!*阔鮟_& Jtn1膨瞣bN>頓 桿T紕3戧苍` J6馕廓巩t?瘞s巀4衤\E姯瞻呠m#﹖>溬誂s\慦尗%唿-副wa#69x?WF`蕇箯訂Gˊ{夣欺砡VSw佈 i钆纁 蛴p蜊x⑩jn+乾 L"!8M4+魿nP鐮 壳xK蘵壛5轌隿&戚?-訏>毐队]吅蟥鷦z偣綞X-|!晝!^挀5:园弸 浚入"鴠纒.Jt倯鑻{撪@#W2餗媼P竑V2吏鋠1'劅腭瘨翶Vz描愘'FV埾瓗 +懗.亜郏x峁闬蛋炪6愳沞T9Tり徲 S;葢u嘖賟)o*螧锆毮暠鮗7x嶱舝捇玘留S0慇[ +R帟d頚z榠2谧狖g 5謃c噩A坺[楽6yZ[炫 x嫚nl&z-l邶凎& V鄥}f$+z摐恅抚H秥"-阍綖鏯噛却X?塰"Um驓$0媻淭幒*岓壑HWMW湶ar缤ド=晸?eH侇"聺朰寵:Q>棅崦姅/8僪壼o喡缍K榄",z祃{t惠攸禛]3J撕7玸~篙p澫-lW&fe;k!#叄袾u毛 f$I@捚8S晌啤J8-采]р7t璖e烙荜暬R眦玚S>.>/i剖].B:踻琻脍3薈賽訷駑Re酶y!b懏79應殸胍hM 4鼫K梃櫠-撪>fK(z6{榈鮧恙卤U濦LL&砞昺b摂+60媞脠钿UZ纓椒檮V?|6:粌GxK主&蓄,PW靉胨84i栉寊S恞瑗9愚 笺dZ!$<E}ǎ扽譬茎&馅Y0猟0U7?z7赪6% 馨式x⺋篕朲蓙 +N`7媼00*6'z4bWW% *-揥坍5 /s乭a⺋7a}] 饕W:&99卦伯善旧薵/f1柵筌縶竷Hw巋瀈餅痂x戈E絋蒡配!x访Y藩g2藙醧纃^禣箥檝U燝)曢 式敠丗4p蚐Fx輠狔鷁:k抬橆fP黐Q%鲝s瞀2忴筰AR[g!鷅.q{.^+_鯄T[梉5*峎RbF;餠蟮鍩wl0^?{鏿 婽AoQ6h魎胊鑼F@嶲w%呮kT.~匤巋堧庖瀗弮埼p鬢檮4'<=滿 舴p耋M&+ S醔蠏Q[qJ'铸dJ蟵)槐眊f4腋[塌h5帅蹨{f莾辘舋.倭a旟朵)sl虎潩鱆/筕R馘卜颬螽-W鞮M飾/)3<醐;吙潸怆5嚺]Q濏3i赊踍斤壏*輽;民錍慲嵑魞g?畑踙:yoT峆瞀瞈/匯nhr惠.蚱>.9I潩N霕^w`OC眶朳梬.sM火$叽,=I_F掐w{磢65Z8t颧鯒.桵3921鯪Z掐蟪罹^危7缧S巛檒G邃Nm5p0, H蜪M,*上M,舒旜 +endstream +endobj +25 0 obj +<< +/Type/FontDescriptor +/CapHeight 850 +/Ascent 850 +/Descent -200 +/FontBBox[-32 -250 1048 750] +/FontName/OZLLCB+CMMI10 +/ItalicAngle -14.04 +/StemV 72 +/FontFile 24 0 R +/Flags 68 +>> +endobj +24 0 obj +<< +/Filter[/FlateDecode] +/Length1 727 +/Length2 5964 +/Length3 533 +/Length 6525 +>> +stream +x陧扷T溳柈!Hp 紁/ 富Cp噦*牋鹇兓wK<8A侹餔!@`殪镙=9丬漲緐虫滐z壮7贅 !顅Pw7 PP牗.(纁cS魝0w7%0*h !3!塯xlEw/槪扩弱(@戳'{0`鄋"<o>赍 耩=`u劰狁K萃 4那氵%_.鏮?w7xu楞譹s1迈ws8\禚汋?阘W<郷 +wW 犿亃过]j'6髊齵U喢戾酨煚0P@鵁y樂 + +褍!鞚`7舣< 騱?媰_譢KKQ佺_鳠U=0 a鼦X鹂?]騻,挚wV籑偻ss 纍?揓A凛?圤=3m耣裧]h篝仾+ 垑 +=+k镢uC5^雩IP?/L8 \aU3瑐怭M愞:拹西H︽朣悆|藂歠蚂锪q′盼+B餴髶垑亜I7鍟Z_鱙3 +軵L磏Uc靨Pf舃kwP(匵 +$8琨炗烩%/(XEt~﨤溅x6O愐橉*萋O粔蚌~Jh棙*I吢芄曘蒡檨f澊?&y:a脔RB锝:i>蓱\酛v殧泧a妴 京p挦偢x苊E氬(鐲臻 +W︿宆'酹觠㘎舻 Y砄0┋N>1詃淠|腍 i^jg啔邰 -4丿y\覭B >薎:'啭擘唔 2茁h崺廲%拰o毢l 骗z7転阑{Z.}p硉9,忻/慟丙困nh堕槣jU遊T蜈Z130q>-!H.>0S"廤螼H锋昳=蓋("P兵糈E5睠 4酬#3>awgRl咝I拖^鞚=pG鸫E¢X%郧勑飿:p(鷧喍籐1,倍d灥鰯Ju屝h鈮M錌柃靫蹫Y媊3;圪0v赖 3认诉麡R朋瓚4]漈 茘円腥挳鯴尉菜[対颴课虅h&奨f庲逇瀍4 `$F$攒!n&諫z7寒軣]彇<'q蟗7幛};z>穛瞁[韁猆x腤6V.鐐>; 蹥>灴棋郃1沟5.浣裏2<鏮qzg爛眊PHi糥笼8咜3燃[楏;v騿瓣罨吆(}跄9柌ln(粠VH厖[旊dZ潒艳|Q範搉n!1)?; +T誻Ue髕纲)祏膅Q=鯤桨bD痊X'-w躹餾晛%]cSn怼z^喩I3Za Q儦Pk筥[=~沸掭唲s菹剶烧+s晶爯遷運4訥Qw~3 挰钷Kr<偰`脕渾薀鵴撍,窓諐/ >(嶙:%L 伐So昗叼從 A鈎賷glH,&[^鯹褴##Y鏕嫛_/aE{|瘄t*  ∈豰6/晚d9C;狃 1m3^f馣囷(鷉蕋揌/葉馾@摸 9t鄈&剏顮vV>溯慎鐘孀.諰P磼颳邀H1播:噸5HwKqE28繋ldi鈼氄纑ocU武嶒PP艷杉榊y>C毉圄搒辝6蜣)u槓/B獔亠 R栩X顋YS钨慃Q{稇)肘 礝/Ac觋>?彻閟 +径L}億2 +9@癛詖7礞7鷪絁逖V3,";oW壊涋焦鉄C#鯿瀇詍a嚽疜W倀] W馐△X +淽4軛姹t|l +躿4w氂m 煥螸┼ 9熭E!?壗n烴&f?IN疼韒〗慏乓K1`F売'~圪3e2%蚖 1煎?)礼眱9鸙喳课R蔁Es閤詪樗誶5% +e缜残%Ql蚦xlJ毀5琚顑灛鲽Fe/誅u迲笟=焮熭T昰72 4[⒕b菪騭)騶a_ tp4'脧嘇棻xA[霙(袻鼏~Zh闅茷榶糧玚燅D{諟溬臼#抛畿椠hOi0 沋I}嚳k/S螄鯦4瑞,凔\f槱憓,b*[託驛B}-琷+s蘜T伖TYG飈g桄J7鮶}Т醹臽=〾泽Xt鷔|r鱲懚溑欏礛郲艆"∞X臅$e脺RHNc韃(誼9BM祪5H顒箱+>.嫖飺罏s'NE0Ayar+Q枯缎衋覕Ifl"2EH厀鱡鏄Q1颠扒 垻穧龕_拃7I瘂鄗硬 tM)6>桌蜍 o&>烴O <5醯e嫁22破閙,瀊,[=*,@|峏@%4DTb0IG藦曜圗玆4哫 s忮齿ㄒ84拘邔4)烹iUk瞕+卋tac疥蕯r専/^x'0/-CЭ$啀铚L$葜m娍劇瘒2'U7匋)|鎵H桶9鞯]e嵼闹h\Q3E<激#b扵 缂?爧穔C{賔汀*琨&贁腢4舔妕洹=W棪巧6Df鎪x屫羋F搘q樒(儿t蒅/锘,-嶬扻涣 +胧笹榠<#嗢c:R驘>q户!`訬鶿硆駢ye芳H亊~,綿)fi'(9垶X菂贙縂矄秹眠剖那訢慙逳T,|2遐R稜蛹懒Z;縩偦夠y鵌蝸&6FMS鶾(氣c呅熦@乛gmH>|谥∑郗沇餴騵<|(酳z(散9夘,0銗 sI鹻晕!鰢嬅9帳嬪o2ugK簩)櫐O u噿I辂问荱y".啯聹鳾%5搛战vm\澩!d樾*鰄樺 -|颙): Lぺ9鰭篷 炠脽*庐z#Yu偸鼣⑧`yh_,*罎O,嬱 R+辕骍&@.{$焁Ko''尃溯骂(]銪煷允椐1犛lIo皾K`/_q屩8nǘ罈&Cv痝笝犪vG叜}恐V敿&#錁櫜郇哺襴6e%l%K)~狔諭*繚f$9s:0嶧z糶8勑 : +踔崐U蚊邼c-跦aUa6]*痁誂s逸P`-)叶e司植饔B固8软憽窯媯.= 3泬撇IvG鱯如;p问F +&襽布T庫踱> +暑Z t&T髤&fBGn$a驃VNR翻r`靛装柝JN0 ^龝岿11冊[N臎[凌e1娢*$峒.%7騼卅284耓踊v滭嫐殉=(7cx膘鶄1粐I5瑯"嫐&泸瓫隐&稇縬s嬙U騥鲕W疱b;逆/陉髭 悈庞mO婾璘擲1扇;U嗘+6贅翂)-Q蓠G棸 y骣鵷&8 m?^\毹誓|笣百Xr.〨V懧鈛砄 @V'U鯲鳆q捋蝢KF壅锥2恋d济玜(_鷵q搿$%擌﹩9埄 Z鹌轉腹韵帖y玃镦~D磝\揈$碏]2-#y锋藨R!k<奱襋蠈Lb;+!;BxTO)[1嵆籀d>粰;譬礜織3+c"精` r|l讀Y广"鬻S,睵恌嘇?g崙裥yq煭CGK(鮷x,蕲bSx'}p瓀朂姀炉3B麛:袣腔U歘帵瀙C赨3+匈=l#思陠UEs膨谱倸蝵5嗄7魆4UYd瀰2暛〓m. 爐3l袗卵j拼乩夅k羧a黠泏楎滵3押 sS;m饌邠塌dv防惹甿鑨W媗拦豿鲃緹*3v"yEe彖1wg营9乿L弍Y?呾Fn# >D"澫-V<轺邈O弃窷$筈4鑈_>-t颞楔シJ迲爰CO*.1倜珴;z瘪t藔l##N^<9隙s渝 i睾壄裰 璐邋<6B8(L9賄8%}澘W點F箊7S8毡椸畜 訜Z徖Q@爩羞b仳蘔"!噧蹚 jKI埆M玅唲HgYUi叹%杌祎骸t箦 ,跶豨瑊c60n躋5韹@=z坓搌馤Dr_炨;巭b<銽c屎⒘瀝~rF竎哱r肪麥5uh{b 戄嬓>w﹝I8沆玪孃K椵砭7}O鎻4qaFc灶∥0伎剜蹃n_"S$YIy-濲郏S抄繶 "q黷"x Ur鶧蕞Y%/ 鋑GjK/鄞-螳峼zO翊暳4>a巓衣根cOM雫oN它&4援,寫8n玃琟豩馞 Y胞s0愀_G狾織U趃犅1跄Xt眴a,w恲+N謗b鏌4d项觹戌 &冢棉l"橕+}Wp5縤覷 y2鼣7f2淐M埍_甝JP复zrg;YBU)镆6 {湉蛍婰.h >a甦綳餆z*鷰层5dG勈廄>R鹍蓈朕q碓vX猑倁骨p.)Db#獗4稐#69^$e%碬陬轎磴鄁am>>絋b/桧曢:[嚴B +聬rRS +櫬T +y<4駻嶟_卍Y甤11豮3H楊淤 繄p藰) r-2 ;HQ鈖/6E醸f伝畭棒s:Aw$纂+囥鍼唸<碃t汵i踈:榘/Tq稊&ys蚗 v篐;时 YЩ蒮M鶞拺W胡墡樊M|F掷y琹3簽;'屧绥宓c氇銠茕\䴕=q+#鐻靹3给(D螏𴝎肫佗俓[y(rx!.扃璎z諯韦7漤緕紊(甖艙碡L~^躭e袎呿/t绒={苤6硔鷙膧$鷸窶Fc~3B覩䴕癄8岜兎O{y攃鐶鳉е,接 蛨&薇p,o瓯{扯m5铧N镊疍捖J賟遺巅'E/4D琔Z#錣E蠕W礤:旗`n ^VUkF:緯uZ钽屸噵d碮噅б=%9鐶'y畻/:zl'A諣-挗Q詡汄;螣吥E.Z4掏 弖屧徰男c訵陓p5籱S惘畎Y 纗_亓o鬴&O惪∫壳"嚭41J業炠灴|帉V靶翧鉦甪)Zo篜孏蛎O孛/劵+厮?,鏊 +endstream +endobj +29 0 obj +<< +/Type/FontDescriptor +/CapHeight 850 +/Ascent 850 +/Descent -200 +/FontBBox[-251 -250 1009 969] +/FontName/ADFDHS+CMR10 +/ItalicAngle 0 +/StemV 69 +/FontFile 28 0 R +/Flags 4 +>> +endobj +28 0 obj +<< +/Filter[/FlateDecode] +/Length1 720 +/Length2 3873 +/Length3 533 +/Length 4425 +>> +stream +x陧杫8旓壳4┠豾f,俪 腿Ncf0楺寎"黄2凭W柸.2謭霣謉"KH,?=窟刮鱳9座颸鐈炿诡乡髜搠膣荀 櫎&掠 ╃壛J偉朗@m)K丂ZAAm/$ 嬺蔫腊He XII▏t:=黍r黍2 P垠n逝 Rj^(8 劼爱H魴 4髣) P用ho)殄婦H`0亗c丯H 龥沆 T+嶐果蠏/宜麑 (驀Tx茐鹉xHg磻缳|31悯ws=#^齕咶y鼑}嬼B=H/踢瓤貭H鎭俴b\<怈衉)敺0Fa岙@g槆7騉堿猬s5u魌敉Z挚娖0kp鱛犊b苂眈BmAg 项庮黰2] 伮桶0 鎱鳺膺〈<齼$e淞莱踪>仈J讛Wui丂 +J瞤//$鹓'滮?cg訷怘$鹄*&2鈖( 9* S礟8馪汮X狾熐U 飗㎡縯忎Y_:|)ub(栙G汞簀0赵抆胔廍畓g2S(椶纫0Xo佼濲P祽nf诜鞠c厤螒129z.SwK輝\兓!qtЦ +n挕抻霆_=;>潁aq逽虪溤圊q#鳓雅;到G硇4蒕,8┴咔荎踾?A&~篣a枞9硱%N@墜nS(銟済&熵饿 x]銫L娍B:'7牎!%I楓(晵Z憷6痝鉏嗈R骦#蚄霽D&謣|N7宿=禌鑏V鞋鋜G<綋]竊mBk$>d=萃襵27屽朜v堁;|Y蓻?93隬i獡薮-Q.6黛愊抒!↙濝N孬湉序箧眰译E5'i蚿韱W$+v胨w^簊擏8n爖龛轮枼鎖&溴b4橀潾%!栰'-Y秝k [徢斤猙鷿d鴾 >屬尻rl挳.农轃锇x_s釚襾阌9偉!尷鋝蒽糇27‵駞爘煗試' 觓m((FQx{U& 騒e斟V/_娣LR円:讨毽柂帀呰d萝Y8僬韬6D.秡㈱犎lAmf9#魖匊\'掯仺稃寧F27N-实N呮沙鏆垠r}"4nN*o0']顚>牭7/z胊+^(麁Wf像佩DTB韠镓U@U`eZ戸鱔XeW[憞岮N7l焏絚`x魸T銪o畳-4訤f釉鄩a仉)鉐/眘I蠸韘呙_)<7琧 :儒_箚攥o+x罻 R+M<珠銄rb袭伞\;[忺僯p苾珇z7待掲侉v科ⅷ墎 (xF0鍴R=笮r羐昦j捸楕y韞o82.熊o仐痐W%疄.a:=蠯晿1鑬[圳絾j醻魤能禐炬2峥 +濌);~,骨[y_√蝈嵮$M00堊闾荳郶鐸Fc准#h懇 魡a昌r蹞覟稲[鏽J|I脲捷`&央趘1嘹扥煩Gy!#噶M猅俥pBq筎$=籹8ぺ9=殟猱匸趥桵躒呣/愉嘾掬鏁o櫷!j[緤拜泎u旍/0&襡E瞴aZ蝬锴罫娢沋曄撌tT閪#讌^划@赨踾ε2n祐 葇9 4 BJ奛~甽$P(/笍v翚鋋B廕 yNxy夥仚 +魕洡葀┅;痸;}QD魺敁 颺w遂騼;弌jQ4 Pg7崿銦}庂/筶豫&芃v紋L葽): 謟B雍>O实Dh愔E鞻n-8哥Nv痂y_魶_.疪(弦|e齼+'谾=nユ謄袑堭/f樀&纟q︸$^孈其A?/蒜窬#>矦 忦i訸 糨K柜 鰻淼+桎駃b毶:$l鸖≌頄焿欂8\岅╆"#碻r 鰠袕嚙NE獥驫駓7G求琂5妽餳dfo#榑nT懻雋 [鱸韁6i.帖楨E|k蚂0朏|#弋祉箤Aㄢ,鯖 +O肄}Co.e輲/癛rejx髐eyVwη擥y&"t綋痘秊惓%殽+鱉1X鄵'膅-密筩:"勍鳚皈-> +S_]1巆:F竍'逅{肩{5戧)^"ohI蔇賺wNQ总盵叢 w叜龤垒 碡鲧7蝩胁 +尨K/岀溑虖鈖+|零[@根_ 綅7.k媑"t+o|C鋖q/@<記<O豫む漞"贉j魞挔耬&簕约"\蕑/u兀.郏馑隳犰G 毁-X悇h喈S5棵暩註拵浞Zh褅zg莵<会瑘R忡=籷8*觋^扏︸H鸟犌鄋嶎蕓 G販E0瘢1諫 )=mQ骕貘#<)灅,9V蛢6EysS针襖 /u擲g汜3ベ柼糋甂藧FZ斐'Q_4錪擰浾1U>簝~)DZ茱e鬴廬'镜 氓烔獑'J醘袪%{7鄛硳g庪W殑珃涷U$3|K&鸇3莤鐋茫秦)xgМ谗y鵊虬蛦诱I眕&棈!m锆~jI銋浇鰌煏+^峹篽w9蹳q摣 +慪癉Z回巢晿厶粦@v]鹔酕齶" 1呈谆f-~a频34s!埇9R@K檻?拈 +絰.踪鎷'藗8*fo輿])5赗手嶕經rw俐軨W輩ZB鬽霻F蠧麴P曃贞栬塆E嫍屁.魪稠昁o 88H鞳zy洉趎S_6禨灧d嬮>??郿^溃嫈.J譽3<;;3H6恷 踗玫 x豟攓鈽_x籭珞剙BuDW蹕5&=騼o雗w眴[,l囷^没笨斵苵U券估澉桡zb譥6u厾v揭愝径 r +u砵2U栯p巡c^:嵺?豏 3;r垠凅衎(劃^邹麝國茄壥餣h齶o &蚯[褠Z愊鶕瘰詂2贽i茅]荂+ko龘r娱訃$鈁盲 +$私韸8珠妆Z'忷ゲt妳刺分<"慠斡氘^誩%%3/Z簎陧莏厀|X宩h诜巘娘 [n( 嘽I'W=<9>d颜=馵箃 G⑴SS絽廬莪 轗xu陆瓹焇I瑶泾珂!3倆宮 +%悰繑>o@謁洸p╤趱>儝摯B垭i 遃1]毬寓暫Kbm黟坞5譻 +!V!栣锺,荍吩MC 広 g东莍戥C獯标驔撝文役\;"5軥2蹛h>棩]33|獻榹I8-糖$鼮坰jq@F]"継9廬鰁壈YQ薙&4媋瘖 Y啴枎_\旊{!钗mQ/&饵EhRt`沞矔镸H岛m﹎#法-鄷歱g~~p=敲毼,弟今共w9偼梟(臈鬨魑y萶a0殥&+tx鴔筼4茾蔀l7`剐>翘嘉訷t好e堍8夦郯簧羝磻尺趪绤僳w"籲fQ脰 +鷂^7?a鰼录盀h槜;2`3 +endstream +endobj +39 0 obj +<< +/Type/FontDescriptor +/CapHeight 850 +/Ascent 850 +/Descent -200 +/FontBBox[-301 -250 1164 946] +/FontName/TUVJZO+CMBX10 +/ItalicAngle 0 +/StemV 114 +/FontFile 38 0 R +/Flags 4 +>> +endobj +38 0 obj +<< +/Filter[/FlateDecode] +/Length1 721 +/Length2 5246 +/Length3 533 +/Length 5798 +>> +stream +x陧桿T\蹡唭 勦爌嘊;=丳痢 +U伮B)\%椸.!8 .5@版渟镯宴鯧弤胙{飮5琰?=鱶Y, :锨ub+禌&1蕺.忲縢r&7鋓2闹氹/!蒥鵩毎<贺'%@eS潈豉TH锺E梹罯D)皊%嶂皾-EJ_,FwK:赶S\崠e佼~\瑗鰶W$罱_ 妐1;s楒彅Idpe9VU$v鸀辧$蓮Z沠鄎Y胧u\狪脓y rT.帪笨垥匥峿|窰Eg饶[.射蕅褢蘃歸sB满砆FTyr杄瀪呄#J 拒~盔魂鋩趫{嘾X儇煚浸瑠 邴黉lSHA%凷枥^戲mO扵v鮱戍N啲TB展賌S6魕]'概轠S弯E!'j)祅J畨#K敘跡熢垚oPCSu::腙 +BW,;m譁\FgZ8塊鈈倫(s糊=飘|zbG; + 宓邼6O"峵,i8.;磳榤|%-"LQ/^瑗塕$Q=[U稔Y蕓搦fD郕箿9椐dI縵6甍6`慱N/_0趋;O +X承0_>稨B啩菷jk尧{莲汲5瑇摧S簝 鉲"~)湙蔜衃臎庿#*醐蘵畅\霾!B誌咎U苆彡筱愉%7v觼闧DtO@;&觡鸭V3>梻bM"BG穛Bd?儂鍟8e戸M錱z寉歼in%h厚3旡"E….q{f\ 曕𼙰Z暁捥aLK.:k桧~.演眢$&凓|_騾絣:琴 +~d宩嗔儱*m韰R濋赴/x|鶉it>螜锩 煻] 氙 +釒槼訓闧 R伦8UD腅7"+駊oI钤n珐禬碬-.BrC0^q9膄峇%驋?綮嗋簟\c{U頯]iv鱅豩`頒1q椬绛鰯佻瑭榻vk#j?緵贮騷嘋褋羟 聙W┑A5?To嵵啠6D臜炆漡韷y?纒?呩XK釺t(_b皐 饊;p亍bqj荄湃Gv氎I濈堑搴53C~sw7L9萼韀C璂莿S粱忥Q渼伃,E捙"%i厇乀FTky+ +bG猽沾I@=乧.旵V畐%?s齵睛517尒欔h6Q鑽▋lf欐鷄月w紴RLE5?铻羭昪崘a嶫琸 窕~持"xT% \尘轷蘮/ +(cbH鸌1黌肣亚]'3qg沃;摂M祫櫵髳煦Ol:鷇k蹌炿n叩拔V胲楮i烺'.~ hB!5夽 @%鯞讽eh撵S3 -n7趽ㄏ9暶4鐞嘥V! dv纼r(q=必AY大(,细_匲U +厚#F暌n~陝L舘0宄 +[F&.)笧=/p硎+'3榖徨 0AJ飧摢C 褩uE傳媝埤j58親 9f0Oジ/fu +韆<3*砽溙豼E-,М1薨mX繗!o晟bA1Q疶K9蝭JN *`ぜR)翊命.*<;E籼u埵.i-岐R@軼B禴A-:Y葆飆 誀柡竵+瑡1)'6f4}末虰儏稨mp<糴+z9庨樘 蘭 誛塤5W<挈邢%篽?37\I&0桘殘!6#a獟W憞隞莹5㊣z~ц:脑庮薢Uu鱎&嚑pG}z鮼鞤秓 SY靉緽7~ οD宠瑷?&澖誽l;t嬿M渥韁o丫諘碒併C佡醸醃4}5hk+/沥拯 〈_奴,x盟虸肵fKN)愹拹洼{走(绞& T咒Bj0n@;W炥7櫉.矉跑S$&V髷鯷M掓姧tx/=d柑輔~毙諏U柣V烥g-z)丝鱽崦+%晱2郷膿裞賄8燝 中y 爷D飅~<辒R?4賻zs渁;畿婿#謻跾筶t 牻0謻a%(&閨#n⑥敫+Kˋ謿&割嫶沺&`(Ew~k 溉.)8蕘幵Y涭蟣|m 綒犥闓$GAp娨5F讧-僚筺4M凓b邨 2W右赅#+ジ:wNV"a#屐翣R5T/WA鹧餕z$<断柏帬诜L箑$n縌鹛m%鷗L~xΟc!c餸雛O佐蚗V卑獑偉%鈃gp洹:g>/龂q熋蝫O\k侵曫馅sや勴jsㄣ瞀汪踯7醐\i六Cg脇Bl!櫳[>*I8躞T袑.aF6D坓隧%g倢Ll碙n$E迥T3V訂柙t廔膂e"嘘I蹧秈腩絓螥Y+N`蟬<襶=/r@伛Pr(!? +b:瘎'g骊5t鬆1+ +;81.yX-IM扠匠-[^h3j纪I7o咤H≥肓埬讂眥簓陓歰嫡炒$陂阏E弸d缙漚 =∏%鬂焍菭gZ6愫X?cU燠昮i 素-ET鈐gaYl`?j嗳:虠kt薴乾L +G< 䲢!佔伉8<8!+垁 x7眨B鹠燒宠1+Q咊樥Lo#悮#|圩L7堢罯F瑢謇芮&D 4椺鳲*晴)r既{狰wS/摁俧栿{垆吩蒍鹛枲梄OgiGh鈎妐b_委d G骥巨Qc;}qi軕镮=稡碙#緒獨o4栅┈u 肒淰黤~6$媾舱⑻碤亽| 瓠b>.裪骃收輌湰氈粛o8賆"龚涳讛(M妲}"該QdJzB砽! rk惻gJOㄝ卤辷 +;H2-D崂y, j避剺iXe'*箹汝,?嵵礫^烐8>Γ齽cW焔RF4`餶點T梪)/DW{^ib囦au鑛\r.Dd=1Ty6V敂~泵窒餛冺氻w裙i?e'阺K昫葄' T愔"-M偉n4v齓〞#Rfg熸O鼲仇减!袾\捛|vH欨An憙寀vb羛瀜TF4畅 8-$粽椪睭%I娣# ~鸔娾は9?=恁;8='n|Z瀂Z|j钁zg=x 3骰{销9I6%" jk苸刺顒W彜庾r绿'坲劒cぜ.V殌g淐Q zNPCM辏l箼倍D篘e淸姏塳玓0浿曎- 譈o~5伧隬u*﨧E妓1忲5; OIP 莥惼躺犾瑴踖k譂配^忧惤李溈郷dr鍿N笝奣②&!丛叀&o岆憕礮_2T篗瀍╤=~K8甞嬄煿S鋼躲(戺,uA~谒p+刭2s吪沷"u"4欴Y4肨蠀Q侊瘾+鈒lA:e眄F啯z3臓逿W/z刌攵篤%杬#BQQ嵽:樂婩佛樂^-i叾爇d(#榃m簿SY忡J搦Bbe囹踁偀X:$eqm'暡 墥n潵u迟镅茇#仏x鋀膔峍kW;z粝諿熲+T渀碨灭纯|Z.[U湙F怩舟& wl,鶚)烰]麃雴Z=:秣(帅Tyauk晉楣uSé8+^/o忧i澁4yj?(嬋n嘕=釠lS葿K刴$9裈R駂斥(擇盉&趰 苩邮 揾偐y鶰_$邏z靈"f毒颏%齲沥噡M朼溦Z曌 T%'硪$萙:幹^0G&葡鱡.!O獉桁讘{贿V檘雄鹄撰t曂嘌竉>黾敝沬YR榡驥q9rq誨 ~$穮鑢#v;鯇罃Yb猵V熺v傯餜qQl:|X傶trh忡苁藒>踤澐c` 綘"(騹A/l→盁軄L0诶M,FS峊祥m啾孁4器鹦Xr懆f悤僚8F[}4&╅鯺啉6瞢4`]nK t帩趸h+礏?傔訑穈蓉枊轵 :Ne呥磜Jd餞蛆{$D槊E徼輩3C;洏良%A峌逪L鏙顝鰼c= 鼢駼?;靀",崐+遏*3杤釾梻8烞-b;嵘俇綖慠魑{ ' +t鈸^瑛楂.稱麹衢T"耏qY紧W勪蛽/抽}z88W貯e绊溮譪剹舠 6e*蟁觖Vlc旟U飙*啁ZF魭丈惩鵵葲撙-襺o鹯h帊%躸嘨J愀uyBs♂&榅謑郪鄄YO杍K暄$螳 Cclm$@ x近24D曭&W毖b勁鬛(汩K.Q(遏(痜矖潅p绌睋&耯.藪wu筺蜂>O$\'Ub=E飢價]鞈-麳躄程+:d邔鍚しiz懲Z戮蠴>bO臔馃砩MR嫂絶l;i虪&麴 Cq街K薺IMw{d菊刯,7?/6?Yh 鼊癰郷螢ex'OJQ芣\*-e婲駴筓W苣裯詈*ro鱍qo解s2"悶鶲>祀'鰑厗焷餴#@ u5aj馼5W_ 洲茈d骚赐}摫仛軋錛澈z齼禒诏"鐸佼血〝2粽a亚玧6n斞-]9鋢m贯e疷.o賚0T佸0婞M沒鈵 =靭h\奪-E:佟2A}麋媜R1悑鐔!w囕廸_R?秏畛剀'歚韼N1?6膣聝V+檒0b鱡_2t杅W(/s`p攗柃E娪C│刓15嬗璿蟐禜躰Tˋ毻3绁nl栬|麊F櫦4~M蝀礷Tm蚣B儘I骀穉l淆[衽To莯穛7\Q徳u;嫰0欦妥暇GJQ镍x粱i-5膔M喢HcO鼞珕B輳6饄姴ex橮Z箾Rd焟#牾DC~蕴* ?,纲⻊稍|lv羠獖K袿切俧&幪S#{+.V%aU頺i鬭r咪踴扇祥A濷濚锹yP颸NV髫洙诚pOM'OUi陈R懈y"鍚2"灇]s 銒;,x児'罫O骯9R樛幃T黖^o美 + +秔B繿N鰔x} +endstream +endobj +42 0 obj +<< +/Type/FontDescriptor +/CapHeight 850 +/Ascent 850 +/Descent -200 +/FontBBox[0 -250 1171 750] +/FontName/JEEXPI+CMMI7 +/ItalicAngle -14.04 +/StemV 81 +/FontFile 41 0 R +/Flags 68 +>> +endobj +41 0 obj +<< +/Filter[/FlateDecode] +/Length1 722 +/Length2 4152 +/Length3 533 +/Length 4704 +>> +stream +x陧抔8\k磺(Q!z紾孵杞 脴魵(!z.z圢勮濊紻跠耴飣摅^g跨斯畏s澋謬琬~隵+搸>={ + H荡阅wK朗獔個=" 悙獅聙侭@悩休Ho匝取腮嘖 ( +AA砝p孛 鈠bvP垏7(觜xq嚑 鰘j磪8B?ㄔ犡_步'驘-/数 锐')'饚噛!~m妮~;1悯鱬OL禚G锄6 +簋殚AVc萠lZ{ě脒籮`訬y匇@镻w(b醢s:a類?u荥$w沱搩_]Y貲G嶜鸚S 厈x#!@锌f剛 >H辔xwse蛿醰{(嗃僎);攤  +妧b@1隆n5%H\LH\餙瘴厒=< w燐馅z7!  {嚁J(虃V狅墘U鑁V∧O籍r┞S2R<趉銓櫻H%銬(羊獠ū兢q39H档^唌 玏瑋V谨j 囷Y錎M硂  8錪拴%k竄 綹蠢>5D沈R\4>鴙N駒(2*诅#儿 *獠_CB縌≡產o櫈{く憤.桝鉗?膎)賂K徘藫,薰齦n寡觲洐綛w燍綻鐡抧U猌㎡鱹蛛樒j4*琩+-蚙最戭秕h6䎬涣Tn跌uO0kk( 坪櫈堳坧I8\-炀髨'@榐[偼垲穇9,鞩6e'霪1!猘恻,明泅篲臝?漫釲愊佀駀碤遘B簃螛3榯貖* 懥凬w狂 )恤溘鉬fn蟂冐嶰Ra兗坥祆))壃R帟i访鏹E6!hf (*伻鐉暸寸杨35檺[Tz 脈狴]P灔碯_}l鱖飼閜5gf颐$罧F5ck诓0逥锣酯5撕g灂,5阍M籕eKW垪褆. _恲稭^.; +剥0愞撛C-q嬁!誒芷pze煘兯瀄Q,(娩旝鰎1驾998膕Ozu埌 搠s餒蝴=栒Tm熍F迿z|]2f>"漜!捺n駱a摦R鮨"何&^J呥 +1拠-9\_f紨槚,抇頉滎N,}诇粟V昮N麡`SihZ)#q禗蔓s*駐儁\ng# /&?w庠g嘨懸Qc4矟S葀瑰乪l劣黪+Z攥焂Y乔9鯲.p殞坁E滬飾c"$家敧愀9錶Mx0u桏紻庩pZ蘲嚼N蘣r &j?樍ん-歡,l-c轫#躄鮈.消鞊輦蕷㈡梞$<燶贾9V溾韅\岝汜馟㎎h力ⅦK瑬C鐦珣絋ぜm^憼碣侊1飛昷K&z8Q*-?a9鉫U1尹猦$焫炩d荄X箃2觟5\镆鄗/晟:哺鳬@废z錴諀隞{J珕:劔眵罘鷔崼[硋m$阥s逡勺mXi'蟊伖尠賚矮-贕w5>:(i;欔癀.S鴼 3=]裹碀y!7U漫уLz/c汔GesL=E展09鮋E#Tc;斦r5揙%37举鋆輏懷馥&_9 ++層䱷a!7FQ`k眎圬B$"隱fp>gO輲)杂 /顡曁A柿 砈鸓哲琼<囏*ь2缓\5Q6停┰杫夊朇ec +峣 i狈 )iF Y,7l烪W~隤,1鱫8*i3趲厺D晥5蒪洂眄粁泆}賗戚薭PY届=>"骄%3鷩洜尕蠌贚z卌~冫\絉妨3俇踯j轈}好粻 郪|EU;鈯閌U !蹞馈屑4a戧<k揦/拶謅伡u俅篾o9麪恗韄 7匇腸靰茡Y留速E僇_瀺铼誹vnJi傊袣庚Io+^從轑罀鰪W蚌%;鳰Y*7z.9wч-濑哛j=欏& 砪 L摣/没兹~纡g踐S'^栦显蕮`}饚dtx&稉x劬佢覈dぎ貲学0\氷mr-勛%驩h寱bA&u蠯輀 p蒋o5蕜 釠V菥'8kW/巳+寶b+]醌侉A*.Es:戰~ +勘: 漮鲜hG讣mD椷2"驭H擹B飽s豀bQ摒獮W觗 3踘=,<Z辺戅鱍夺榲I 藁R坅襅=. 所恦畮東輊{荦ī狄丷鋱$@眾>靠t}烖崷`飘(秠蓻磜慡8o$7崍H鵼 fs&9b跤?oN⑼Tf[轖`b7^"}鯇F菩D 1vZ浏仌S:駭曁诜,烹窜勋喳 ?"$#鮘\郎$誩x惫#p殠C遄鬋k蓙/R扰瑻挫鈴冶A胏课南&夔槆EQ- 鋇撲\賜=聀6偻1At竻摷 c1于艱E韃= L/攞3V +8s瞤踮c.甍碖&鑕鶾荨bHXM囸浔孝佧G癈雄湊莆優$\'%E睊1僨+YsNfA蚞aP ;螖佁6 贎g媖W浀nw7S$捈*甹zf测'掙┻榎殮<俊oF H譹蜍靭滨哣/齮4袒"3尼5%#*梻改>Y(]名修N僪E綱k鐗+u-n澤磥鰎l鯳澨婌5YU陝hA羯兤阪豗袯媧XJ齣Oa壖爪幉D樣j證=9@吉U延懎濿貽栛ⅵ偾錏#i舩匩,l胥`]I咡匥%A 蕿氙 My(硣i-u藯岎}睗-K|刊嚷 呷~庿貸v嬚槗l=d鷶H噍颠鉅&睪qs鬯Lu6馒m蒅&;虎d荴J\紉C,丩墊6Q綥ZR=鲃(粧掿@羗q俴;哄l1?鲡RO};檒谝'壘綶@v寐縩-8g; +&刂7A&~ +约u[0菾笋祮紎斦=mZ1瘨鎪LF [觞蓨稯炴σ阞6郻逞'骵眕|首a扷=-勺劖1瀄F覅蠿⑵S冏进_硞y1鴌 讚nCi虃E<妤3蓃兘Z噾Wм煽亵 +泤Wzo忤蚪k旭[蒴<)i@=蟷OkT.懩箔搝1拖ucS>雐!pY蔙m菐鮳奾鋲糋I鷄[噲?}kU艀=嶕bz@娣輷P狒-媺p嚸W槤 |?顛扃撵 I酗Ⅵ-jG笓5( S 鑐@峧獡甝8)珽靂]i碲m%忝t5;臎`E頤料廼s婙 〇 庚N鎾镮鐯嘁u噯xSBn_vvu(@g衰q硣WKJ黺G蕫踋秖O/魖c捦+絫k \0蛷乮|聯%v蔘榹[.F`⑴.聑t樯t_'/CPEo磌33a礴篁~膴g9酏qoO禫9莼Xz抇哝塸疃r 椌;豒-'╝焅慄p襨s@保蠑槾9丸踅廴#н磒Ja琸庝6I貄S觕U 痔熧+c襔3:8=骬v.z z唙,户杫~澁|{ +S鯷r0疚N+蝑靍H%u8*dX硤愎_C~?丌騸閉颷鐺簅6糴巤m;n/0z捖d&T珪S预,oLY0I +IwX麕0oD臹>岃5dI +毛r奄#迡惛婑娍[塿傳<悷k鬣 酠¢李,駹蟊s榹F<>駪3缀cL薢6闀P锧>=Of┅J 耑Oc> +endobj +44 0 obj +<< +/Filter[/FlateDecode] +/Length1 723 +/Length2 2318 +/Length3 533 +/Length 2857 +>> +stream +x陧抷<噪仑蕱%蚈至0c浥a霷葰 竺,賡2〾R塪'DB%'R創,Gu=茏绢簏髚窟象y尴鱵溼hEバ酘-$0烦逞稐DY贉忾D*O1LB@牨:H,(嬖10镁狿)O邵&䎬郘'傯-0%Н[B'0-D:)懑T6*鸀&0(厑葱m.@) 劓$P)@错┷鐏41乜狷衍夾"巽蒧砜鲫/e<橦婙噣Jf蠥`G%4蕪R7;H 2?Vm鑨堰H8RO △=O "唭"?罁B羙y怋鴳d粆8摧<:籞h|埏E<態w臒阰1蛳x籊4b8鄥蠦 愛马淑嚸,)⺄8玉濬鴊獐Pff责(]籽GH]= 褿狞旴 a6>嵰E圁g衕 咡3l喵8篙" !qz癀硹埛腂a醿三魚輐:~醊罞fN3珑容覹 /h瀻:\暬鎂鈑/咪檝E&闕2養宖,敟嘭+kナ紓冂S.>g1*鐌觶r峵嚤 +)] '鐭S婓Y鸕z%汹3@濩QSx!抁$]U<納^Im#ip7 軱Pz魷巈0盓妿穨鼋駔ぞ佢9c尪M!'粽Aɑ悋薭檮煱嵓櫗 c貑+Jq;芲a屻棌7o薦v<鴧@_>鯉V騕欳筁Y?N蟃ci.=加W-寖ev鉱np9l 獵a"痕筴wv&颞謭垾烦uИ:正喦%阕孞'y動驃兡"繄(G嗸畀'伃O攟r之}"植A 褥h[絔閲rP総6?黸翙隂Eu眷9qa唿藒耦郄/磼醛'綇仏i.骧繦`99Zz鈱辢躡n^佒|+r绷躹F1雘 .I*鹘殲肒鍴d覟G瘨d%紺:|E芑瘐]B>硻*L虒Z8[璇≈2g?9皔繧qE叕伔~gQ蛩喙C楖K^噑-貢惉鼛#2]矈琗甙撰灰6黃篯j~酣鯯!誝!狿淸晩曼渶u鍧演赼nb*; 3V鲉皱 +'Jyv5O?滗)差峩馦4畝3;餪 +A稦僭Rul棇ぶqsIZ魧沫冓扡墽峖!oOV,甘城Ncdw蹹}朻 N^N*Q莌 鍑M#";g唯軭弟翛蕽0_斉甾恋u/~酰嬰姴蟜溗 `/恭蓉tE蟡伻惔鞜d氂Q8y厾∏+这+麖H骢h楑ru1#竦C硰3J:u竇鯒E稈,{曮陫E霎/o椒酺爓 楂骶1 |;狙.w讇7 -斕At@庶罠4B麹蕂g蠆:删0*{a傗憫眯n齞_涅㘎R'汆sA8時U8T⺶材I秀$I媞Z鬎[蝃A:吻蹺彍瀖:#覿'z8v飜摖膊v)棠摞卍?钣r]M&Z5胿禾匚鉠 $霯娯U髫W8廛翶P_竆溦裡哓蒔誺GA跔x>臘!MMi仙椛8)GrE庬H胃zQl溓p鋘狋餓[;ジ紽栓 帹隨煼<轎荝s"k#4闂j*UJHq勰劫$\耱&(垅A%匧t建.䴗契痧ㄡ>\|憉-閱綛內蠕,篲I"娭%>'k3 +x囥g贲襓岩 滎搦bl眘@y "卒䱷v綗KHY<+u]$Y昩籰隬錣粅B0]BoW邈蛠騟踣枂 蕟"GE=n坝.z?"O1uOIAC=cU}L毐'd沊r}o_仸昂虤Xl弳[妛lf鯂}鷧&|腹恶扨ぶ1ujnU5S胲眂E栚猗鬾1撽y%鯿O'摒鐰?v狷惒(X<7娈9Y|%9Wb攬c67筺x蓿淮琳@錛v眹緖T勘却c3o缿剖X缀輞ⅲ噮觧鲔e|V[臂犟糣/6;芕j訠硢)瀰&G罫磨2#3鑘cdlT粖婴斞F炲%/扪鋶J魫 +醨朰寪芪籍槕X︾艍'-$h# 蹢O[Д0m膓媅!8r簎p"煺癇k誅s楝劅y婳[愥c頡+青鰫:>←jtlf晽餂鄢5硠^?@ *袿c7"=O^磣礡;:H3he8_惬)q遂O眭(孚菐$L8蒸█馘鏍7宻y-5鵔^韢閶5'DW匠澌N瑧裧宫<\鍂 淌蕔x鹣s乙`饓~瓘JE~~乮0举濲X r鰉矫燒[扒$氰礒I佣q┰0:蝟豰疩佧椥l淼}畳) U9鞔福杉廸bXBb啎梷',挩鯋/ J7⊥羦螏)29煮繜%驹rM函*c靡隓!啰蔰G梠4堵 u駓淽︻-#靳苴 \{佒O叿鲱綱d珓t裘媨v輐"<書4S`熯 +c綉晜F\YX-n8?1崣4┿"K5?呀范L鬊t儏俉W禶冾~=]K瑗稧ov瓝?|绩殤灌繵 漕<痉+x韮6]$ц%莢P趯4栧镧516)漞奌> +endobj +47 0 obj +<< +/Filter[/FlateDecode] +/Length1 1162 +/Length2 2962 +/Length3 534 +/Length 3691 +>> +stream +x陧搚<攎矍暐 掛i"厶豦洷藮$J4虆a芵贖劜%"{"凲Y 賶靍3榫哕=?镧<柞蟯咩鴿侩8蜸舭)i$嗚 di \6训喢 &乭2朒蠥揂U尲pB@繳UyeD&蝴挵.d@\[鈍膬$#槧. &鈭嶺愳+H傍Y X 娜@ p8:K叁teHp"J柯/骺7H颏h61D纮NYS"m;恌祀滨Цg娖斶n湛q4嬻+儓w"$绖I?S蟺刻檧﨩jHF惆嶩3`緽XO=,臉c蓭. n茿鍻次m[怑炐5狄楛k9K [忣萧5氈 渻 %肄靠睕.翍埩剛"&懶 媝K纮ば,耸坉Z @隞郉$A~d菅$悁澣X鐭/傴媗忨HI牆 +欥鬄仨&鼺*;鬚;嫈a;鮲"y5d鬟q暆;ⅫN愉遯X ~铐閰莖_(2往o⒓僠盀8达oZHhG袇寀}7軄妣揽N黲.績{Q暨 +E敠㊣#Ti銜W敂埃/+崢()Q宬?剅1(梩I駜幀6e/頬BF{U 鼻 "褝呍拉斨LCd滈h蓍.6棑j孂焢L*;I陵?蒒1_H񨊩0蘙ズ9_E焅べ詫恹羄燓]W趖P%合筎釢最嶣摯 4s`\Ф剴ン晰fk粃M噐嶏鍾崸 u#/迾\\*昗X*蜼毘U肮叿sJ食嚹1^嗡U &3馫坽霋Fv蟉柞j鮄,c 逿 (J伀鴱祄m嫐)淃Wa涚妤f>A搹麆n斾%x卂2 +惧l尗翔澼僜'.萺i崛玭鏙炂}釅潈=1 才W压ko飷gP1k霙錴娚晬街76 }烈ねP圩N蘢+榭6焘8麮PiN佊鳛'$/蚧#X 64%0劦蕳&5,( 21lVf+鶓k񠵱毋|柬 j浊*嫈涳镞#墓摩鵐濄]o~靖翁g瘠膛7K 栩a 龅癖%W搁搕.e獈荇XCAy餼麛~K@所c秜汚+揠_泡^j4_qu_嬍蕓7)6 )m愮涳2嶴炯G竓6%?uX马P夥$v遵/獜涎鼈 0丰f)剡噣2嬢鸽懺狛D +沪Jヌe此([-穃纩^匍黙8廏濂 鞉M 34a翧?w焖kF5+n /E倓pD靟(=熇3甲)弎攔|褀c>w!娮l籒}骟6┣魫 鵤h儓s4橳蘪?T *╞: +8蓄=Zch撵坐腡R*bz辪枙桻騰k茔e陝刜EN沶槹c>旓*歪,楕竨6),`駬誼-峿f徟mNpV'}涑,仹髂JE砄LV龉粏★?徾=i>gP鑡孿3齵海Z碗k隢f泑语l9v絞啹?膏_覙4!]愠N稺頜兿鸺摠~-酱飖8 -嚬J灒{? 韑斳芉|鐐筡V梪嗑q緫葵3K豭O儖 i1珕銝}4GZ淇!矽"07Y潭r簪悘犔琻享9f5烌刈撝O?-7筯凣啉焥S5旿1y⺄敜;&橪>,w陣岜|職w2&巋蕴pW%{ /#1U豆E?;诱.G怡嘓荸姓挡&]匨煈 馣颜閯鵜Le梣ORz稕(&稷d|iU呇.艱8镥閘0簻{zk筎Qj鼵匡操64衵^9龃近寻擹藨跫瑽k&鱃砋b狄; +"H┓梼t砡hQ蹰[*%bA钶镤=o'\M $)3!y-桑{鶴x0O[泗K4Rv箱呍4輁c鑖砥p┛焺劒瑠╧塪跣韸☆mq0C?橏=瑳蕏=胄,眅:} 0偾肥腅+%b鷑调隲V?'颒龢-7&N緫熦*2鬴衿%颦穼栉辙 c%輣恙鵴唽,r _c牗髎K5含优'^俟u@y4n暿翬砌鏮迼料5s諂犭軡镗o_0黯{c 談烿紩挹S$}宂黿牚啭呫L駰簓8 珞_ G&憠x4 栟熿 +endstream +endobj +51 0 obj +<< +/Type/FontDescriptor +/CapHeight 850 +/Ascent 850 +/Descent -200 +/FontBBox[-27 -250 1122 750] +/FontName/OVJVAS+CMR7 +/ItalicAngle 0 +/StemV 79 +/FontFile 50 0 R +/Flags 4 +>> +endobj +50 0 obj +<< +/Filter[/FlateDecode] +/Length1 712 +/Length2 2111 +/Length3 533 +/Length 2642 +>> +stream +x陧抷<旐莔QC"矟1f蕁F茽恾{iT鰅媪0 c娜Pc-I^,QdIYSR鲮籰/ +I楱N稆溵笙鶞午耛厷栟覊K搹俅餧FI +7\讑)m!1F應v8|祟1%恍2(5;1N L颡}古9V徖\2Y玒缒叢鮅埠蜘虄俑4S簙靆媇L壜鋧q脡r寝程枮 66 痼-N蹣媛>d =rH雑jbw烀悫餮!BEFVc焆畱Qf6丗!嶙1糋;&檞97譑.CevF嚲曙, r幞`挊6昩(,yW諭p鏛+A^餴歲y蔢Oz8搭楦蹆;X/轩X吽EK 宴*_褝殛鵹9h輔籘譢趗襞隓S旣 昢捂振蛙赘s蟜4嫒;休>嶅玱肉;橔I昼擁J/FGI创K腭畷掻|騜I59 "~r#YM刧倬 k婑樋躅R( 栩岝-j]邐I溛 JJ9挡 蓐諩サ冀z镔%鐀HTf+D鯬r=晛Lf,糖*腺-c&"?~7Y豭Q逸aoV焖VDi隫xa婫G{E桎cTDT5o妬締峙t魔涫騵诈M拌<_笵蘀:P枏孒5鷩a圣L -際浤Ik牵(埔寜閥瀔=+此З^-0琂济娅>M[媷o1莭辡摴7雮虨{7鯵叆胖~M僺挫 託濇譢馔鐅96^)-J炱,忸漌9l$!fm揵襘眰緽h簷贀桘鼄{竲#u鏐劣@熺熧枛免挀E啿467d3\轾!-}綨WxO 誟k垦\u樽鈍匭耱v朶_凌k俔1 +ks7p镕)厈hD篇|:F自3 蘴隿4懸|黳*豴Q-盚*fu铬=S畀{q予"u庹pi牯浜筩P秌uE螵W渗蚺鴕E%AV*p糹觇迣駮給H 県诧檤昲礠;繾i畖詬塯V8測/夤y`c趹4餽魷涕嬧T +濆{嫓b叟怔螠鑐v倲崏w厧0jr{箁"緼肥!r漿鮪'{萜S Kms䓖!蘬褀!謖*昱墷34藂< 鄈歮 =鑒)%i8[.#?1+/+毅痻幼乒;阘婲讙dq0x8{z7蝄- +崍∫矢.5漊牖"削そ\2株髏壑.M]}4鶱3[镔4沯cb锤謇宏_sE搘v48G賥澉(]柵3w.|舛$M=灼~!#媃馫椬u綡`0L$h7霠岂 bd鍪b+H鵸pAo罰I忨《7Q嚾veRx槮#臵mu▔p8衽8)J;踰M 5(鰥胗 +/ 诲嫗&HZ埥曋蝎鮑穊8窤噄顎aH攫皛凁蛁 'P⌒6D暥l長HP暈-}馈0} g3恟钶犰&騛5N瀟f冥备hq掸-箟w K"恈-忔抹5煒缓軀F*`XU<{g兲k籥瀞删5V)9紊Q;享難s略O~N礡dpl喩9苴[杢3:咱漃u)eqL窽識22柣韍錱嵉坈蛏q拜2浘]铴g氦驳栅蟢Y廵=a搗Ng勉#黙烒O抳 !湹畱管鏳翆-X`g"g咤ozo9G!c9騔攚4繈f銬88泬齄&c覒诠'}(y阯唝@bzi-乇栿GH(;;臣3佤("婑鑟S”; +1谷$5cC箸娮sP d齁矬n誠5濡T箮槮彚 +迭X}O[霴<麛nUH!鈜?*棦c歶* 梤r軰暔N,$sDZ7*半1燇s袝Cd62訁idt堪絪溱糚櫋硩U+[郂劉e]鱖战S:〓.58\{.冎sy駲iee E懦8c惑R帆e剆运詋缠4鷁f/隋M汃|\襟檆M粷{跍軆(u墷惛焂 4莓寽?很幫'椱7呵韔薧朼蠀q漧.屗0`:瓙4&F +l顕!zCR鱤鞳吠Z陴=s&"^Vr絊秋嗻/'$G󁷙騱n j +endstream +endobj +55 0 obj +<< +/Type/FontDescriptor +/CapHeight 850 +/Ascent 850 +/Descent -200 +/FontBBox[-29 -960 1116 775] +/FontName/QTMLEN+CMSY10 +/ItalicAngle -14.035 +/StemV 85 +/FontFile 54 0 R +/Flags 68 +>> +endobj +54 0 obj +<< +/Filter[/FlateDecode] +/Length1 724 +/Length2 1831 +/Length3 533 +/Length 2372 +>> +stream +x陧択8旊+M!ez)f 啞4FN5r8T2f^c槂f喥攃鍞 !刪Hr蘗'C斨(t矂,╈¬{]坏快k圩~/飣=黧ī;帘dh蒬p郒$泪澻﹥醁 慍e2, 崓6 牎P5囚bQ)>営BX:娶拡 O澍tQ塇湗$* ,8~齾 8俵抲燩$ SI P莜P6 o&&A[繢湚垝蘢袀2 盏c奦E,1挚→92F#铱赃t"滼 沥p@g扐鉭 挬魺U慒%a缿:斄w伿钉rA=旵級462?器 D揍 ~^;?忲籮O28凕A駰齕嶞崏E:Rd?編赹塈2(嚾 Y6﨨en武瀫pcC裊C" 4 鴂嵨 瓯衅0@ Fz)I,揉|ń) $A32‘<辳狵}{香 葝vI帎陸灋籞趕恭踊F=6笩n"Ik5=敖N }}[z`1J徳!1<觹c洫7+渉^"鹼^ !玬"U鱟'fG矖x憺番)JewM]漩轜Oa:A棖f谮?;r(b )╤┪mr!趡 抵\鴺fn挮彪夀躤[﨨 硁媴fcBY裋甿I郄я%k碃浑]阞糚廮6鲜v鵬鹒\绿漼1簂鳐y騂冩7¤o鶿獀^f╇+k賡銥s 蝰滒$揨鍌gJ鵊<;愀n<艓犨众鸲楄暮 擥奬o譬衞寙wA*吶8临1順&saNt后Wx\畈 +簘;崂跃P鲖U稯w't鴠邽┴惋P灉挲窾童,渹l7Ur囁e隇桹i0W艉汝盅 +f隵覹3pi*_縵 *驷<㈨錘瘽茚(l宵芕DI頿擝页炻g稉*伄[?>鹼9鐳\(踷U鳡铭e礽汾a鬸43R8鄘m,缱 y堟j垬$m鵔w)じ2璧-雗荱嶋侟$舼倳0?K忓B杄[ 堏yr唵S@粃g毑膏訹楄丢9拼LGpq眗島兮5 8搛∫G鲁龇殟爝L⑵磍澽){!^%倯斳0夥議骪鶈)俑J苛Z渑Bgur蚔A作蚚3缶2鎵魟VKX吡鲇磖Ofn $S珖塮*澮w芆 ?eN"d鴚歏迎{y罯搩b4坮 +遤_, 鎭'稣m堹&┍揟絓0糐冁伀b朹GM觧 箟M輒斐誦M!<8氬偹>:[恷滠D~鲅恼騝撦虴i)嶫辦"弲Z鈣攃傩6^苝<成压dKi5衤靵3韥n<c葢";嬃G羁榅M{M+貼}i凿茟锛煽R5O-*.飥雍? +7o庞駢U 苰&,xv}to.销h鼸[犷5本笼w曾v5.鵃夷=磿琦糨C 賫鑎c§]3}艭恊6K1盻+-炯]薍螤 +襱Yo馠卿9彰孼KX鸽如EE?lG絯]湋3娙d (e-xs廣(=v瞏*P肰~cFl;*逵碿!碷驙+袮顝"韞qW 駞陆齢_毝腉繕铚S猟_仉 + 蛈怑鶐琦*宔窔|袋7圂QV斒澒Uo状K漒T\?H>o檝 碃e焝E堉缆q追.崣瞩ノぞ^*霜RZ{籁畿 瘀P嗦=遗Gw擰譨>l冈熻邜 濿黢欺9譝"敝劜P唓憫鞂ゃF蒣拨1糴}通鑍U絰绌#師'+f斟!/. !1胨ex## s槂[4i琕3q]3}.x掹饡寲S| D;4窋c庩*V 箮敕葑oj"萀婍函6d‘Y9*Y&{7kzbl~BZq\98\顬r饗霄V勳 瘋电.暖糞筫柭湛L萗疳鲓甐6獍瑯Wg餎L|坪du踅 拔 {1> +endobj +57 0 obj +<< +/Filter[/FlateDecode] +/Length1 713 +/Length2 1304 +/Length3 533 +/Length 1836 +>> +stream +x陧抺8T荱甤󇅒栯峚唵\J3.吤萴)寵5,媛虤楶{;旀處⒇谪m卹M鍁.rKN斎Qr澼vkN<?9濈蟴匡w}呦z紫H纤崸sBAFc桶秬!罋aFF嶾 +Cm瑣 荔 挡的兕睞 GN攢 厖已d誩 郰 賭Y 鴓h 蟙瞢or弨t3 B0垗0_ere38鹾L鏕}j< 攑J:囃t悂0麂H脒P}盥g2=┈狰=}薛 ︵+僜纼C轨檄$p潔繿~12!毯馶燲愵链pAe蚶5d?G恖m 罍L魆騮C絮b镁偍?bW輐5鰺礵9\(燻0(?=3浧0Σ門.酜(嚻Nr,v8l驴P4tup 期 +乏银\.葐佷? Hi 9[ 力讪鶒功>}噎銮^堹Y8q緁g藬"S片?鈊rぷ /QぎCJ1淮&qP矦燯2牴撗VGy9o[篕綒佳紂 ⅡqqA2蕛3魘8猘巾5媫鲝5<怮 濼_邧播9歉烢] _梕w8疑贳-X墫+~雏衺莧D帴﹙7逸 +*飊0!<肹5硘}聃P/墾Q鑳聺O>(爞. 袜w潛{[K耾艡响P蓖憾7稩穕浖瘩=°洂17鄄愷h眘"幄V釥堼+7R翩袪;e幒%D阫潲[t>鬇轕颿c|遾5什BDY鹶v(ec}J酿淣f葻篜ゐx鈚兗传0p愨;*瀝C&j馫20澯呾e数Xgt2盹)uAA?f_~曯]X)囓,6?祮迴撻轪璏嫛疲鹩飭V曤苶+诨>乩K;j*/$(U T]?縲镶jx牳礙z;鉢W乎馇A8hX覱濬B砇Te駙独+z簜H荇b櫰媋qy鯩i"3C{顶艁6@憢>$V#昙催糤婌9)s壈纎s v +Es趏唄)湛潛vvqi6 佺矽iI豋稳髒蔄F酽b萤c珑$~坏鴴 趕 U)J7蜈Bqc蠤;1-yR*鮢a瘖墦釷潎鲪uSsL 5 # 瑅*+弄i}験?*nX竲贤U邥厠bY眹輈驖梠屯N巻L扃肺█頮f焴茄ㄞw丟$=騮u9哑夎I嫕#疋9絊w<顦m4呮菉縷飞泍K齑﹞~亏 /婮裏-FN酩漚|軃{VN3 +4,Sk璭 寷,啨k蟅lZ葪o--1籬/ж"铷殗唛緱I怩骻87Mh壇Zz ?8眭_>ht抛娧SU韘w楧2廓I櫖T喌坊=QL2\Q]灋6o>{绰N琥羂K!M}21ur娫}阚泬|\/瘜蘧T 荤\弊礎鉎0<濒!隱"_素z5╈鼠?擗鶠`汎mP噼殩k=]/媸籿7獐E鰲橀灹繅畣o\蜘紞骋L皚辕U?鲷婻符偾磽栵%0$狂a,命褧⒘}蒭院燃稊\D|戲8sn&鐁!|軘艸燦彣4團侪8 窻y,$#AK駶>蔄恕瑢k攼W軙];腹>炘鰥A莬暡+煦メ|所I\褡|牤e諐鶭[~0箹咘//'hL愂9,*7侙h族 +endstream +endobj +62 0 obj +<< +/Type/FontDescriptor +/CapHeight 850 +/Ascent 850 +/Descent -200 +/FontBBox[-341 -250 1304 965] +/FontName/NJLXDH+CMR5 +/ItalicAngle 0 +/StemV 89 +/FontFile 61 0 R +/Flags 4 +>> +endobj +61 0 obj +<< +/Filter[/FlateDecode] +/Length1 717 +/Length2 1396 +/Length3 533 +/Length 1927 +>> +stream +x陧抺8T牵秜Sn=雅RF屘︿6a*譭Vffi.11工B-鯪I棫P$r熫sIE!工溤S戁壱99C粆瀋蝧;蟉k{唢w}燉N讔al # d*`镡A兠袤`P燶(僖p剝 鵆$ 兀a"" 鏫鎬-!L 竴#a俵2X "- x探<`>;C 哃 )傕`剫!蜛压,0迒刟?0/ 鍵 9'剅"俌+*栍`唊a福愅v9s耱Q齀9[艋巖聞笭蹄.磟逻裓`r猼菷樁躟6 惥#Cn垁癅6烇肻h!剕pDW'g/贜y燏]s甡(鞆9髚M-|H蜷掑Fc宸`/.n0\銩4dg嘑D洑c + 洅-窨:鱮B楴($绍耣舅騲0W0f!蝰纏棠0躚 <^EZP╫鱌枱穖7墩銛椪6}簃=T妷律(++FМ吞vD;Y菨頗}(搛嘅割钌鳦麞鄹~V7+ 譒u睳鰷桒莤曺噆#紴婑祡=5)GhsH唬t齜О痑k鵨粀:_(辪証搟9N&龛貊5◥1f新[n&bq*勆u鹜O媻啈z空|瓘唙蕦蒖慫赫U廜xKq)\誸茢P#絫V②崪节k踔陁徨3~z3}殟y^5O) 賸釗_騖2<襃-匠1IA↓A+誧銀#!E匚泟綷 飚籱烮 酉M芘Z翊 獛 B/櫍d华gl鞪誼芄w︴鰧AE櫵t|迎輠}諂 +g嶌怽EKR籲壁索 $す欧隷_k寎S櫂c'粤5僂 %挗7讦镦瀇,笰#򵲭叴9憙_虲3L芅*篖-S-緀X'9呑b;40U -_ i岞2;蕘疳屜絢y6偛m ′ +菝瘾嘶辉 荽甞>飜6敆 8n熦'痖戀斠]eOy偿洳俘濸呠K靤晬 +:y#Aj嫶|6c腰s炬g咳峄f+[!qAwlL朴惕1典o淮7fA}_琒&嚺K屋x远t邌.)皃髏亷>8非<菸瘭8赟:{^鐘睠5獠a肰鍋O愹ET%邩_)%俳挣甾棘U}轑扜秺忉丈*巘轨1逥?E1涤耰c鴏}7湝鱤蜥珬5酵儠w7鸏霪i 扒枬淡Zrb殒`5跥沛=z{魪鞏汀FN柄榁蹙峕{;=蟋瘆鈹%颶厎 丿_`慛鄖Gre^sq统冎kQKEp[驚,/瀂%xぱ堊{'?捑M司)獅呤竊Aк╙;+铯瓀Az莥xya?纃 Or@^(泼p +endstream +endobj +65 0 obj +<< +/Type/FontDescriptor +/CapHeight 850 +/Ascent 850 +/Descent -200 +/FontBBox[-15 -951 1252 782] +/FontName/AGRETO+CMSY7 +/ItalicAngle -14.035 +/StemV 93 +/FontFile 64 0 R +/Flags 68 +>> +endobj +64 0 obj +<< +/Filter[/FlateDecode] +/Length1 721 +/Length2 691 +/Length3 533 +/Length 1205 +>> +stream +x赟U 謚L蒓Ju讼+󙬕碦p 4W03郣Uu.JM,商蟬I,I礡0创4Tp,MW04U002225忖RUp/,蔐(Q衟2Wp蘉-蔐N蘏餗,蒆挏槪湡湙ZR┃犩槗襌擹淶T枤⑶舉h◥挋\敋灆钎r揼^Z緜9D8ゴ&U朲T t梻袧 +@W︿珏T*い辂mK簠dgaq横n99~壒 鉇釀!潣洐S U悷[PZ抁む洘抁攪4<6咴斕襖tY蠏臏蘢羌魷T]C=cS圖f盵fEjJ@fIr咮ZbNq*X<5/)佬;D哐=5腳蓘奶紥愂俆刯0RQf匓磥瀬!P!耎県柟%绉d妤+$妤$ダ0邃擾Q LC簴 +咶 +F胆 +C2 KS=]L , 土⑸E﹜%嗄0専 ぴ詩詃sD3鉼d悼&|9pU)|讐s77蘎徻d(閣緄rkS具糌s鐜k雦^1筇=鶝6Zs踑s達y2-3酥%熶阁^Ψ 嬻J趽}9鎋夲哺+l墸5鼹_ ?軟华%a縶T耗嗐6醾驭,夛v3k0枡2<柴鏪辫R閆頻e蝯 6騨? 猶芨s)_磺3四侃F&磀<暠sЯ捸X佴:&潍笏'o钫┻y剆ue毛玵篼硾3t\鼤[$r玈 4c疜E忿+捍rSV姀'_縜2鰑颣+vp蟲7鏽桵诩+魸_-{镊~箒^)o哮傒婽I杞1葛铦>呴膦L娣栱g2)近蓦D^c]Q,'$'兄齔胥浘 癖l>槮硊y斪錄;'4茷滇麞5Kj纥_{(鞐j缄35档宾\K<n鬗薠n裻 K葬鳅>嶙UOf&宏JsW<豗昃噩v綤 窡厵除旅;^*/ 荪l瓢$?O38韇鳗5櫮咛赗1S欹C幕 :惘4洡t愍q抁瘙樺拶鱴%>鮕茈q%u梢プ巿隩yW巳I鱨{鍪拙j猥趶舑鐣/藚?芪窖鄂绕筭|钫駔鸯+q禀 +嫃D椖8桙壬?&跌L耭仴+,凓K"?菧鉸⺶y懻5*+頪"x飰郢5訜,k]!隚S2'御7J%趖渣厐k詟aa@rNjbQI~nbQ6<8 +endstream +endobj +1 0 obj +<< +/Creator( TeX output 2007.09.14:1617) +/Producer(dvipdfm 0.13.2c, Copyright \251 1998, by Mark A. Wicks) +/CreationDate(D:20070914161805+01'00') +>> +endobj +5 0 obj +<< +/Type/Page +/Resources 6 0 R +/Contents[31 0 R 4 0 R 32 0 R 33 0 R] +/Thumb 35 0 R +/Parent 3 0 R +>> +endobj +36 0 obj +<< +/Type/Page +/Resources 37 0 R +/Contents[31 0 R 4 0 R 67 0 R 33 0 R] +/Thumb 69 0 R +/Parent 134 0 R +>> +endobj +70 0 obj +<< +/Type/Page +/Resources 71 0 R +/Contents[31 0 R 4 0 R 72 0 R 33 0 R] +/Thumb 74 0 R +/Parent 134 0 R +>> +endobj +134 0 obj +<< +/Type/Pages +/Count 2 +/Kids[36 0 R 70 0 R] +/Parent 3 0 R +>> +endobj +75 0 obj +<< +/Type/Page +/Resources 76 0 R +/Contents[31 0 R 4 0 R 77 0 R 33 0 R] +/Thumb 79 0 R +/Parent 3 0 R +>> +endobj +80 0 obj +<< +/Type/Page +/Resources 81 0 R +/Contents[31 0 R 4 0 R 109 0 R 33 0 R] +/Thumb 112 0 R +/Parent 135 0 R +>> +endobj +113 0 obj +<< +/Type/Page +/Resources 114 0 R +/Contents[31 0 R 4 0 R 130 0 R 33 0 R] +/Thumb 133 0 R +/Parent 135 0 R +>> +endobj +135 0 obj +<< +/Type/Pages +/Count 2 +/Kids[80 0 R 113 0 R] +/Parent 3 0 R +>> +endobj +3 0 obj +<< +/Type/Pages +/Count 6 +/Kids[5 0 R 134 0 R 75 0 R 135 0 R] +/MediaBox[0 0 595 842] +>> +endobj +31 0 obj +<< +/Length 1 +>> +stream + +endstream +endobj +33 0 obj +<< +/Length 1 +>> +stream + +endstream +endobj +4 0 obj +<< +/Length 33 +>> +stream +1.00028 0 0 1.00028 72 769.82 cm +endstream +endobj +136 0 obj +<< +>> +endobj +137 0 obj +null +endobj +138 0 obj +<< +>> +endobj +2 0 obj +<< +/Type/Catalog +/Pages 3 0 R +/Outlines 136 0 R +/Threads 137 0 R +/Names 138 0 R +>> +endobj +xref +0 139 +0000000000 65535 f +0000855253 00000 n +0000856641 00000 n +0000856290 00000 n +0000856491 00000 n +0000855417 00000 n +0000015923 00000 n +0000000009 00000 n +0000721950 00000 n +0000721751 00000 n +0000001823 00000 n +0000743822 00000 n +0000743612 00000 n +0000002961 00000 n +0000762966 00000 n +0000762770 00000 n +0000004102 00000 n +0000783284 00000 n +0000783074 00000 n +0000005235 00000 n +0000796894 00000 n +0000796692 00000 n +0000006379 00000 n +0000007523 00000 n +0000814117 00000 n +0000813923 00000 n +0000008477 00000 n +0000009423 00000 n +0000820944 00000 n +0000820756 00000 n +0000010328 00000 n +0000856391 00000 n +0000011246 00000 n +0000856441 00000 n +0000015824 00000 n +0000015984 00000 n +0000855532 00000 n +0000034430 00000 n +0000825673 00000 n +0000825483 00000 n +0000016909 00000 n +0000831776 00000 n +0000831585 00000 n +0000017846 00000 n +0000836786 00000 n +0000836594 00000 n +0000018840 00000 n +0000839946 00000 n +0000839757 00000 n +0000019845 00000 n +0000843938 00000 n +0000843752 00000 n +0000020822 00000 n +0000021788 00000 n +0000846889 00000 n +0000846694 00000 n +0000023404 00000 n +0000849563 00000 n +0000849375 00000 n +0000024356 00000 n +0000025371 00000 n +0000851700 00000 n +0000851513 00000 n +0000026339 00000 n +0000853935 00000 n +0000853741 00000 n +0000027347 00000 n +0000028357 00000 n +0000034258 00000 n +0000034492 00000 n +0000855651 00000 n +0000041527 00000 n +0000035505 00000 n +0000041379 00000 n +0000041589 00000 n +0000855849 00000 n +0000047970 00000 n +0000042612 00000 n +0000047882 00000 n +0000048032 00000 n +0000855966 00000 n +0000575722 00000 n +0000049041 00000 n +0000049332 00000 n +0000049365 00000 n +0000091556 00000 n +0000091850 00000 n +0000091883 00000 n +0000199822 00000 n +0000200111 00000 n +0000200144 00000 n +0000289341 00000 n +0000289634 00000 n +0000289667 00000 n +0000344781 00000 n +0000345074 00000 n +0000345107 00000 n +0000368204 00000 n +0000368497 00000 n +0000368530 00000 n +0000403128 00000 n +0000403423 00000 n +0000403458 00000 n +0000440928 00000 n +0000441223 00000 n +0000441258 00000 n +0000527059 00000 n +0000527353 00000 n +0000527388 00000 n +0000571533 00000 n +0000575521 00000 n +0000575588 00000 n +0000575802 00000 n +0000856087 00000 n +0000720268 00000 n +0000577612 00000 n +0000577907 00000 n +0000577942 00000 n +0000608797 00000 n +0000609093 00000 n +0000609128 00000 n +0000653760 00000 n +0000654055 00000 n +0000654090 00000 n +0000686959 00000 n +0000687255 00000 n +0000687290 00000 n +0000702224 00000 n +0000702520 00000 n +0000702555 00000 n +0000713447 00000 n +0000720119 00000 n +0000720175 00000 n +0000720349 00000 n +0000855770 00000 n +0000856210 00000 n +0000856573 00000 n +0000856596 00000 n +0000856618 00000 n +trailer +<< +/Size 139 +/Root 2 0 R +/Info 1 0 R +>> +startxref +856739 +%%EOF diff --git a/doc/papers/ecmr2009.pdf b/doc/papers/ecmr2009.pdf new file mode 100644 index 0000000..9657c1c Binary files /dev/null and b/doc/papers/ecmr2009.pdf differ diff --git a/doc/papers/icvs2009.pdf b/doc/papers/icvs2009.pdf new file mode 100644 index 0000000..278bc0d Binary files /dev/null and b/doc/papers/icvs2009.pdf differ diff --git a/doc/papers/jfr2007.pdf b/doc/papers/jfr2007.pdf new file mode 100644 index 0000000..c4b2052 Binary files /dev/null and b/doc/papers/jfr2007.pdf differ diff --git a/doc/papers/jfr2008.pdf b/doc/papers/jfr2008.pdf new file mode 100644 index 0000000..845460d Binary files /dev/null and b/doc/papers/jfr2008.pdf differ diff --git a/doc/papers/ras2007.pdf b/doc/papers/ras2007.pdf new file mode 100644 index 0000000..7e4ee63 Binary files /dev/null and b/doc/papers/ras2007.pdf differ diff --git a/include/grid/Debug.h b/include/grid/Debug.h new file mode 100644 index 0000000..cef8ad2 --- /dev/null +++ b/include/grid/Debug.h @@ -0,0 +1,18 @@ +#ifndef __DEBUG_H_ +#define __DEBUG_H_ + +#include + +/** Printouts for debugging + * @author Andre Schemschatt, Uwe Hebbelmann, Sebastian Stock + * @date 14.2.08 + */ + +#ifdef DEBUG + +#define DEBUGPRINT(msg) std::cout <<"[Debug] "<< msg << std::endl; +#else +#define DEBUGPRINT(msg) +#endif + +#endif diff --git a/include/grid/grid.h b/include/grid/grid.h new file mode 100644 index 0000000..d4253bd --- /dev/null +++ b/include/grid/grid.h @@ -0,0 +1,115 @@ +#ifndef __GRID_H_ +#define __GRID_H_ + +#include "grid/gridPoint.h" + +/** + * The class represents the base class for all 2D views. + * It contains a two dimensional array of gridPoints, + * the offset (in absolute coordinates) of the grid and + * the size of the grid. + * The size of the grid must be set during the instanciation of + * the grid and cant be changed afterwards. + * + * It provides methods for adding and setting information about + * points to the grid and obtaining a point and writing the grid + * using a gridWriter-object. + + * + * @author Uwe Hebbelmann, Sebastian Stock, Andre Schemschat + * + * @date 12.02.2008 + */ +class grid +{ + public: + /** Array containing the gridPoints */ + gridPoint*** points; + + private: + /** X offset (absolute coordinate) */ + long offsetX; + + /** Z offset (absolute coordinate) */ + long offsetZ; + + /** Width of the array */ + long sizeX; + + /** Height of the array */ + long sizeZ; + + /** @brief The method frees the internal array */ + void clear(); + + /** @brief The method allocates and initialises the internal array */ + void allocate(long maxX, long maxZ); + + public: + /** @brief CTor */ + grid(long offsetX, long offsetZ, long sizeX, long sizeZ); + + /** @brief Dtor */ + virtual ~grid(); + + /** @brief Adds the information of the given point to the grid */ + virtual void addPoint(const gridPoint& point); + + /** @brief Adds the information to the grid at the specified coords */ + virtual void addPoint(long x, long z, unsigned int count, unsigned int occupied); + + /** @brief Sets the fixed values for a points */ + virtual void setPoint(long x, long z, unsigned int count, unsigned int occupied); + + /** @brief Returns the point of the absolute coordinates */ + gridPoint* getAbsolutePoint(long x, long z) const; + + /** + * Method checks if the given Point is in this grid + * @param x The absolute x coordinate + * @param z The absolute z coordinate + */ + inline bool contains(long x, long z) const + { + x -= getOffsetX(); + z -= getOffsetZ(); + if( x < 0 || z < 0 || x >= getSizeX() || z >= getSizeZ()) + return false; + else + return true; + } + + /** + * Getter for offsetx + * @return offsetX + */ + inline long getOffsetX() const { + return this->offsetX; + } + + /** + * Getter for offsetZ + * @return offsetZ + */ + inline long getOffsetZ() const { + return this->offsetZ; + } + + /** + * Getter for the arraysize (X) + * @return arraysize x + */ + inline long getSizeX() const { + return this->sizeX; + } + + /** + * Getter for the arraysize (Z) + * @return arraysize z + */ + inline long getSizeZ() const { + return this->sizeZ; + } +}; + +#endif diff --git a/include/grid/gridPoint.h b/include/grid/gridPoint.h new file mode 100644 index 0000000..a90112d --- /dev/null +++ b/include/grid/gridPoint.h @@ -0,0 +1,92 @@ +#ifndef __GRIDPOINT_H_ +#define __GRIDPOINT_H_ + +/** + * The class represents a point in the grid. It contains its + * absolute coordinates (x, z), a counter how often the point + * has been found within a scan and a counter how often it has + * been found occupied. + * + * @author Sebastian Stock, Uwe Hebbelmann, Andre Schemschat + * @date 11.02.2008 + */ +class gridPoint +{ + private: + /** The absolute x coordinate */ + long x; + + /** The absolute z coordinate */ + long z; + + /** Counter how often point was visited */ + unsigned int count; + + /** Counter how often point was occupied */ + unsigned int occupied; + + public: + /** @brief CTor */ + gridPoint(long x, long z); + + /** @brief Adds amount to the internal counter */ + void addCount(unsigned int count, unsigned int occupied); + + /** @brief Adds fixed values to both counters */ + void addFixed(unsigned int count, unsigned int occupied); + + /** @brief Overwrites the internal counters directly */ + void setFixed(unsigned int count, unsigned int occupied); + + /** @brief Returns the occupied value as Percent */ + float getPercent() const; + + /** + * Getter for the visited counter + * @return Count + */ + inline unsigned int getCount() const{ + return this->count; + } + + /** + * Getter for the occupied counter + * @return Count of Occupieds + */ + inline unsigned int getOccupied() const{ + return this->occupied; + } + + /** + * Getter for the absolute x coordinate + * @return the absolute x coordinate + */ + inline long getX() const { + return this->x; + } + + /** + * Getter for the absolute z coordinate + * @return the absolute z coordinate + */ + inline long getZ() const { + return this->z; + } + + /** + * Checks if the point is smaller than the given point + * @param p the point to campare to + * @return true if smaller else false + */ + inline bool isSmallerThan(const gridPoint& p) const + { + if (getX() < p.getX()) return true; + if (getX() > p.getX()) return false; + if (getZ() < p.getZ()) return true; + if (getZ() > p.getZ()) return false; + + return true; + } +}; + +#endif diff --git a/include/grid/gridWriter.h b/include/grid/gridWriter.h new file mode 100644 index 0000000..13c9f84 --- /dev/null +++ b/include/grid/gridWriter.h @@ -0,0 +1,126 @@ +#ifndef __GRIDWRITER_H_ +#define __GRIDWRITER_H_ + +#include +#include + +#include "grid/grid.h" +#include +using std::string; + +/** + * The class represents the baseclass for all writers. + * Writers are used by the grid-class for writing the + * internal gridPoint-array to a file. + * Writers for a specific format must inherit this class. + * + * Furthermore it provides static methods for creating writers + * for each format. + * + * @author Andre Schemschat, Sebastian Stock, Uwe Hebbelmann + * @date 20.02.08 + */ +class gridWriter +{ + protected: + /** The referenz to the used stream */ + std::ofstream stream; + + /** The filename of the file to be opened*/ + std::string filename; + public: + /** @brief CTor */ + gridWriter(std::string file); + + /** @brief Copy-CTor */ + gridWriter(std::ofstream &stream); + + /** @brief DTor */ + virtual ~gridWriter(); + + /** @brief Method to write the grid */ + virtual void write(const grid& grid) = 0; +}; + +/** + * Class for writing the grid as a PPM to a file. + * The PPM is in a greyscaled format with 100 tones. + * + * @author Andre Schemschat, Uwe Hebbelmann, Sebastian Stock + * @date 20.2.08 + */ +class ppmWriter : public gridWriter +{ + public: + /** @brief CTor */ + ppmWriter(std::string file); + + /** @brief CTor */ + ppmWriter(std::ofstream &stream); + + /** @brief Method to write the grid */ + virtual void write(const grid& grid); +}; + +/** + * Class for writing the grid in the parcel-file-format + * (this writer is used to store each parcel during the convert) + * + * @author Sebastian Stock, Andre Schemschatt, Uwe Hebbelmann + * @date 20.2.08 + */ +class parcelWriter : public gridWriter +{ + public: + /** @brief CTor */ + parcelWriter(std::string file); + + /** @brief CTor */ + parcelWriter(std::ofstream &stream); + + /** @brief Method to write the grid */ + virtual void write(const grid& grid); +}; + +/** + * Class for writing the grid in the gnuplot-file-format + * + * @author Sebastian Stock, Andre Schemschatt, Uwe Hebbelmann + * @date 20.2.08 + */ +class gnuplotWriter : public gridWriter +{ + public: + /** @brief CTor */ + gnuplotWriter(std::string file); + + /** @brief CTor */ + gnuplotWriter(std::ofstream &stream); + + /** @brief Writemethod for gnuplot */ + virtual void write(const grid& grid); +}; + +/** + * Class for writing all parcels to one world map (own format) + * @author Sebastian Stock, Andre Schemschatt, Uwe Hebbelmann + * @date 20.2.08 + */ +class worldWriter : public gridWriter +{ + public: + /** @brief CTor */ + worldWriter(std::string file, long minX, long maxX, + long minZ, long maxZ, int resolution, + long vpX, long vpZ); + + /** @brief CTor */ + worldWriter(std::ofstream &stream, long minX, long maxX, + long minZ, long maxZ, int resolution, + long vpX, long vpZ); + + /** @brief Writemethod for the world map */ + virtual void write(const grid& grid); +}; + +#endif diff --git a/include/grid/gridlines.h b/include/grid/gridlines.h new file mode 100644 index 0000000..8972487 --- /dev/null +++ b/include/grid/gridlines.h @@ -0,0 +1,50 @@ +#ifndef __GRIDLINES_H_ +#define __GRIDLINES_H_ + +#include +using std::vector; + +#include +using std::string; +#include "grid/grid.h" +#include "grid/line.h" + + +/** + * Class calculates all lines of a grid using hough transformation. + * Consideres all points with a percentage higher than "isSolidPoint" variable. + * Contains a method to write the lines to file (GnuPlot or own lin) + * + * @author Uwe Hebbelmann, Sebastian Stock, Andre Schemschat + * + * @date 25.02.2008 + */ +class gridlines +{ + private: + /** Minimal percentage for a solid point relevant for a line */ + double isSolidPoint; + + /** contains all lines of the grid */ + vector lines; + + public: + /** @brief CTOR */ + gridlines(grid* g, int max_distance, double isSolidPoint); + + /** + * @brief Creates the lines for the grid g and stores them in the vector "lines" + */ + void createLines(grid* g, int max_distance); + + /** @brief Returns the vector with the lines */ + vector* getLines(); + + /** @brief Writes the lines to a gnuplot file */ + void writeGnuPlot(string file); + + /** @brief Writes the lines to a lin file */ + void writeLin(string file); +}; + +#endif diff --git a/include/grid/hough.h b/include/grid/hough.h new file mode 100644 index 0000000..993ea88 --- /dev/null +++ b/include/grid/hough.h @@ -0,0 +1,64 @@ +/*************************************************************************** + * hough.h + ***************************************************************************/ +#ifndef _hough_h +#define _hough_h + +/*************************************************************************** + * INCLUDED HEADERS + ***************************************************************************/ +#include +#include +#include +#include +#include +#include +#include + +extern int sht_init(int sht_resolution); +extern int **SHT_alloc_histogram(int x_max, int y_max); +extern void SHT_free_histogram(int **histogram, int x_max); +extern int **SHT_init_histogram(int **histogram, double x_max, double y_max); +extern int SHT_get_hough_lines(int nr_pts, double *x, double *y, + int sht_resolution, double max_rho_d, + int **sht_histogram, int depth, + int *nr_line_pts, double *x_line_pts, + double *y_line_pts, + double xmin, double ymin, int unsorted); +// int **sht_maxima_histogram); +extern int print_hough_lines(int sht_nr_line_pts, + double *sht_x_line_pts, + double *sht_y_line_pts); +extern int SHT_get_max_distance(void); +extern void SHT_set_max_distance(int max_distance, int drange = 721); +extern int SHT_Print_histogram(FILE *fpr, + int resolution, + int **histogram, + int average); +extern int SHT_calc_line(int resolution, + double max_rho_d, + int **histogram, + int i, int j, double *m, double *b); +int SHT_show_line(int resolution, double max_rho_d, + int **histogram,int i, int j, + double *x0, double *y0,double *x1, double *y1); + +#endif /* _hough_h */ + + + + + + + + + + + + + + + + + + diff --git a/include/grid/line.h b/include/grid/line.h new file mode 100644 index 0000000..2482687 --- /dev/null +++ b/include/grid/line.h @@ -0,0 +1,62 @@ +#ifndef __LINE_H_ +#define __LINE_H_ + +#include "grid/gridPoint.h" + +/** + * Class represents a line object starting at the gridPoint "start" + * and ending at the gridPoint "end" + * + * @author Sebastian Stock, Uwe Hebbelmann, Andre Schemschat + * @date 25.02.2008 + */ +class line +{ + private: + /** The starting point of the line */ + gridPoint* start; + + /** The ending point of the line */ + gridPoint* end; + + public: + /** @brief CTor */ + line(gridPoint* start, gridPoint* end); + + /** @brief Returns the length of the line */ + double getLength(); + + /** + * Getter for the start x-coordinate + * @return the start x-coordinate + */ + inline long getStartX() const{ + return start->getX(); + } + + /** + * Getter for the start z-coordinate + * @return the start z-coordinate + */ + inline long getStartZ() const{ + return start->getZ(); + } + + /** + * Getter for the end x-coordinate + * @return the end x-coordinate + */ + inline long getEndX() const{ + return end->getX(); + } + + /** + * Getter for the end z-coordinate + * @return the end z-coordinate + */ + inline long getEndZ() const{ + return end->getZ(); + } +}; + +#endif diff --git a/include/grid/parcel.h b/include/grid/parcel.h new file mode 100644 index 0000000..a2666af --- /dev/null +++ b/include/grid/parcel.h @@ -0,0 +1,30 @@ +#ifndef __PARCEL_H_ +#define __PARCEL_H_ + +#include "grid/grid.h" +#include +using std::string; + +/** + * The class represents a section of the map and inherrits grid. + * The grids will be added to the parcel + * The parcel can be stored and read so that it must not permanant be + * in the memory. + * + * @author Andre Schemschatt, Uwe Hebbelmann, Sebastian Stock + * @date 17.2.08 + */ +class parcel : public grid +{ + public: + /** @brief Ctor */ + parcel(long offSetX, long offSetZ, long sizeX, long sizeZ); + + /** @brief Adds a grid to the parcel */ + void addGrid(const grid* grid); + + /** @brief Creates a parcel from the file */ + static parcel* readParcel(std::string filename); +}; + +#endif diff --git a/include/grid/parcelinfo.h b/include/grid/parcelinfo.h new file mode 100644 index 0000000..3b23ef6 --- /dev/null +++ b/include/grid/parcelinfo.h @@ -0,0 +1,85 @@ +#ifndef __PARCELINFO_H_ +#define __PARCELINFO_H_ + +#include + +/** + * The class contains the information about an already created parcel, + * such as offset and filename, but not the actual data. + * It also contains the parcel height and width as static members. + * + * @author Uwe Hebbelmann, Sebastian Stock, Andre SChemschat + * @date 15.02.08 + */ +class parcelinfo +{ + private: + /** The x-offset of parcel (absolute coordiante) */ + long offsetX; + + /** The z-offset of parcel (absolute coordiante) */ + long offsetZ; + + /** The filename of the parcel */ + std::string filename; + + /** sets whether the parcel was needed for the last scan or not */ + bool used; + + /** The width of the parcel */ + static long parcelwidth; + + /** The height of the parcel */ + static long parcelheight; + + public: + /** @brief Sets the parcelsize */ + static void setParcelsize(long width, long height); + + /** @brief CTor */ + parcelinfo(long offsetX, long offsetZ, std::string filename); + + /** @brief < operator */ + bool operator< (const parcelinfo &parcel) const; + + /** @brief == operator */ + bool operator== (const parcelinfo &parcel) const; + + /** @brief Checks if the parcel contains a given point*/ + bool contains(long x, long z) const; + + /** @brief Sets the used flag (true) */ + void setUsed(); + + /** @brief Resets the used flag (false) */ + void resetUsed(); + + /** @brief Returns whether the parcel was needed */ + int wasUsed() const; + + /** + * Returns the x-offset + * @return the x-offset of the parcel + */ + inline int getOffsetX() const { + return this->offsetX; + } + + /** + * Returns the z-offset + * @return the z-offset of the parcel + */ + inline int getOffsetZ() const { + return this->offsetZ; + } + + /** + * Getter for the filename + * @return the filename of the parcel + */ + inline const std::string& getFilename() const { + return this->filename; + } +}; + +#endif diff --git a/include/grid/parcelmanager.h b/include/grid/parcelmanager.h new file mode 100644 index 0000000..4ddbe0d --- /dev/null +++ b/include/grid/parcelmanager.h @@ -0,0 +1,101 @@ +#ifndef __PARCELMANAGER_H_ +#define __PARCELMANAGER_H_ + +#include +#include +using std::map; + +#include "grid/parcel.h" +#include "grid/parcelinfo.h" +#include +using std::string; + + +#define PARCELINFOFILE "parcelinfo.conf" + +/** + * The parcelmanager manages all views of the map + * (Views are represented as parcels) + * It provides methods for adding scangrids and creating the entire map. + * It contains an internal memorymanagment for managing the parcels + * during runtime. + * + * + * @author Uwe Hebbelmann, Sebastian Stock, Andre Schemschat + * @date 15.02.08 + */ +class parcelmanager +{ + private: + /** Typedef for the map */ + typedef map parcelmap; + + /** The map for all parcelinfos and parcels */ + parcelmap parcels; + + /** The width of each parcel */ + int parcelwidth; + /** The height of each parcel */ + int parcelheight; + + /** Last viewpoint (X) */ + long viewpointX; + /** Last viewpoint (Z) */ + long viewpointZ; + + /** The resolution set as parameter */ + int resolution; + + /** The minimal found x value */ + long minX; + /** The maximal found x value */ + long maxX; + + /** The minimal found z value */ + long minZ; + /** The maximal found z value */ + long maxZ; + + + /** The path where all infos should be stored */ + string path; + + /** @brief The method frees each (not used) parcel */ + void freeMemory(bool all); + + /** @brief The method clears all internal data */ + void clear(); + + /** @brief The method loads a parcel specified by info */ + void loadParcel(parcelinfo *info); + + /** @brief The method creates a new parcel */ + void createParcel(long x, long z); + + /** @brief Method keeps min/Max-X/Z up to date */ + void updateOuterPoints(const grid* g); + + public: + /** @brief CTor */ + parcelmanager(long width, long height, string path, int resolution, bool resume); + + /** @brief Dtor */ + ~parcelmanager(); + + /** @brief The method adds a grid to all affected parcels */ + void addGrid(const grid* g, long vpX, long vpZ); + + /** @brief The method saves the infos created so far */ + void saveParcelinfo(string filename); + + /** @brief The method loads the parcelinfos from file */ + void loadParcelinfo(string filename); + + /** @brief The method combines all parcels to a worldmap and writes it */ + void writeWorld(string filename); + + /** @brief Merges all parcels into one grid and returns it */ + grid* createWorldGrid(); +}; + +#endif diff --git a/include/grid/scanGrid.h b/include/grid/scanGrid.h new file mode 100644 index 0000000..cd9a7ab --- /dev/null +++ b/include/grid/scanGrid.h @@ -0,0 +1,47 @@ +#ifndef __SCANGRID_H_ +#define __SCANGRID_H_ + +#include "grid/grid.h" + +/** + * The class represents a 2D section of a scan. + * It inherrits from grid -> the internal representation is an array + * + * @author Uwe Hebbelmann, Sebastian Stock, Andre Schemschat + * + * @date 14.02.2008 + */ +class scanGrid : public grid +{ + /** The position of the robot (X) */ + long viewpointX; + + /** The position of the robot (Z) */ + long viewpointZ; + + public: + /** @brief CTor */ + scanGrid(long viewX, long viewZ, long offsetX, long offsetZ, + long sizeX, long sizeZ); + + /** @brief DTor */ + virtual ~scanGrid(); + + /** + * Getter for the x position of the robot when the scan was made + * @return x position + */ + inline long getViewpointX() const { + return this->viewpointX; + } + + /** + * Getter for the z position of the robot when the scan was made + * @return z position + */ + inline long getViewpointZ() const { + return this->viewpointZ; + } +}; + +#endif diff --git a/include/grid/scanToGrid.h b/include/grid/scanToGrid.h new file mode 100644 index 0000000..91e8f57 --- /dev/null +++ b/include/grid/scanToGrid.h @@ -0,0 +1,95 @@ +#ifndef __SCANTOGRID_H_ +#define __SCANTOGRID_H_ + +#include "grid/scanGrid.h" +#include "slam6d/scan.h" +#include "slam6d/globals.icc" + +#define WAYPOINTWEIGHT 10 +#define SOLIDWEIGHT 5000 + +/** + * The class provides methods to create a 2D scanGrid from a given scan. + * It sorts out points not relevant for the grid and tries to + * reduce noise within the data. + * It also marks free spaces between found obstacles. + * + * @author Sebastian Stock, Uwe Hebbelmann, Andre Schemschat + * @date 11.02.2008 + */ +class scanToGrid +{ + private: + /** The minimal height of a scan that is relevant */ + double minRelevantHeight; + + /** The maximal height of a scan that is relevant */ + double maxRelevantHeight; + + /** The resolution of the grid (centimeters per gridunit) */ + double resolution; + + /** The maximal distance */ + int maxDistance; + + /** The distance weighting */ + double minimalWeighting; + + /** the spot-value of the laser */ + float spot; + + /** If set, ways between the viewpoint and found point will be created */ + bool waypoints; + + /** If set, neighbours for each point will be weighted */ + bool neighbours; + + /** + * The method calculates the weighting of a Point + * based on its distance and an internal formula. + * + * @param distance The distance of the point to the robots position + * @return The calculated weighting for the point + */ + inline float calculateWeighting(long x, long z) + { + double distance = sqrt(pow((double)x, 2) + pow((double)z, 2)); + return this->minimalWeighting * distance + 1; + } + + /** @brief Calculates the normvector for the vector (x|z) */ + void calculateNormvector(long x, long z, double& xnorm, double &znorm); + + /** @brief Creates a new grid and sets the offsets */ + scanGrid* createGrid(Scan& scan, const double* transformation); + + /** @brief Creates the free points between the robot and the occupied point */ + void createWaypoints(scanGrid* grid, long x, long z, float weighting); + + /** @brief Creates the neighbours for the given point */ + void createNeighbours(scanGrid *grid, long x, long z, float weighting); + + /** @brief Method adds a point (and maybee its neighbours) to the grid */ + void createPoint(scanGrid* grid, long x, long z, float weighting); + + /** @brief Method checks the grid for values which stand alone and deletes them */ + void killAlonePoints(scanGrid* grid, int distance, int neighbours); + + /** @brief Checks if the points lies within the relevant area */ + bool isPointRelevant(const Point& p) const; + + /** @brief Converts the coordinate of a scanpoint to the grid raster */ + long scaleToGrid(double point); + + public: + /** @brief Ctor*/ + scanToGrid(double resolution, double minRelevantHeight, + double maxRelevantHeight, int maxDistance , + int spotRadius, bool createWays, + bool neighbours); + + /** @brief Converts the scan to a grid */ + scanGrid* convert(Scan& scan, const double* transformation); +}; + +#endif diff --git a/include/grid/scanmanager.h b/include/grid/scanmanager.h new file mode 100644 index 0000000..8c01a1f --- /dev/null +++ b/include/grid/scanmanager.h @@ -0,0 +1,48 @@ +#include + +#include "slam6d/scan.h" +#include "slam6d/managedScan.h" + +/** + * The class manages all scans and the frames of the scans + * It reads all scans and frame information and holds an object for the + * scans and the transformationmatrices + * + * @author Uwe Hebbelmann, Andre Schemschatt, Sebastian Stock + * date 14.2.08 + */ +class scanmanager { + + private: + /** Vector for the transformation of all scans */ + std::vector < std::vector > metaMatrix; + + /** @brief Reads the frame files that were created by Slam6D */ + void readFrames(string inputdir, + int start, + int end, + bool readInitial, + bool correctYAxis); + + public: + /** @brief Ctor */ + scanmanager(); + + /** @bried DTor */ + ~scanmanager(); + + /** @brief Reads scans, frames and the transformationmatrix */ + void startscan(string inputdir, string outputdir, IOType scantype, + int start, int end, bool readInitial, + int max_distance, int min_distance, + bool correctYAxis); + + /** @brief Getter for the number of scans */ + size_t getScanCount() const; + + /** @brief Returns scan with number i */ + Scan& getScan(int i); + + /** @brief Returns transformationmatrix with number i */ + const std::vector & getMatrix(int i); +}; diff --git a/include/grid/viewpointinfo.h b/include/grid/viewpointinfo.h new file mode 100644 index 0000000..ec3b8d4 --- /dev/null +++ b/include/grid/viewpointinfo.h @@ -0,0 +1,45 @@ +#ifndef __VIEWPOINT_H_ +#define __VIEWPOINT_H_ + +#include +using std::vector; +#include +using std::pair; + +#include "grid/scanGrid.h" +#include +using std::string; + +/** + * The class manages a list of viewpoints from which the + * roboter has taken the scans. + * It provides methods for adding a new viewpoint, saving and loading the + * list. + * + * @author Sebastian Stock, Uwe Hebbelmann, Andre Schemschat + * @date 22.02.08 + */ +class viewpointinfo +{ + private: + /** Typedef for a viewpoint */ + typedef pair viewpoint; + + /** Internal vector for storing the viewpoints */ + vector viewpoints; + + /** The path where the file is created */ + string path; + + public: + /** @brief CTor */ + viewpointinfo(string path); + + /** @brief Adds the viewpoint information of a scanGrid */ + void addGrid(const scanGrid *grid); + + /** @brief Writes the internal list to file */ + void write(string filename); +}; + +#endif diff --git a/include/model/candidateOpening.h b/include/model/candidateOpening.h new file mode 100644 index 0000000..37437e9 --- /dev/null +++ b/include/model/candidateOpening.h @@ -0,0 +1,45 @@ +/** + * @file candidateOpening.h + * + * @auhtor Remus Claudiu Dumitru + * @date 15 Apr 2012 + * + */ + +#ifndef CANDIDATEOPENING_H_ +#define CANDIDATEOPENING_H_ + +//============================================================================== +// Includes +//============================================================================== +#include "model/plane3d.h" + +#include + +namespace model { + +class CandidateOpening : public Plane3d { +public: + static const unsigned int NR_FEATURES; //!< The number of features required for the SVM. + +public: + std::vector features; //!< The 14 features required for the SVM. + std::vector edges; //!< Coordinates of each edge (uh, lh, uv, lv). + double edgeCoverage; //!< Percentage on how much the edges correspond to edges detected in Canny. + +public: + // constructors and destructors + CandidateOpening(); + CandidateOpening(const Point3d& pt, const Vector3d& normal, + const std::vector& hull, + const std::vector& features, const std::vector& edges); + CandidateOpening(const CandidateOpening& other); + virtual ~CandidateOpening(); + + // operators + CandidateOpening& operator=(const CandidateOpening& other); +}; + +} /* namespace model */ + +#endif /* CANDIDATEOPENING_H_ */ diff --git a/include/model/commonTypes.h b/include/model/commonTypes.h new file mode 100644 index 0000000..af2a40f --- /dev/null +++ b/include/model/commonTypes.h @@ -0,0 +1,32 @@ +/** + * @file commonTypes.h + * + * @auhtor Remus Claudiu Dumitru + * @date 15 Apr 2012 + * + */ + +#ifndef COMMONTYPES_H_ +#define COMMONTYPES_H_ + +//============================================================================== +// Includes +//============================================================================== +#include "model/point3d.h" +#include "model/rotation3d.h" + +#include + +//============================================================================== +// Typedefs +//============================================================================== +namespace model { + +typedef std::pair Pose6d; + +// the maximum image value +static const int MAX_IMG_VAL = 255; + +} /* namespace model */ + +#endif /* COMMONTYPES_H_ */ diff --git a/include/model/graphicsAlg.h b/include/model/graphicsAlg.h new file mode 100644 index 0000000..84559c1 --- /dev/null +++ b/include/model/graphicsAlg.h @@ -0,0 +1,102 @@ +/** + * @file graphicsAlg.h + * + * @auhtor Remus Claudiu Dumitru + * @date 18 Feb 2012 + * + */ + +#ifndef GRAPHICSALG_H_ +#define GRAPHICSALG_H_ + +//============================================================================== +// Includes +//============================================================================== +#include "model/plane3d.h" +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace model { + +class GraphicsAlg { +private: + typedef double Type; + typedef CGAL::Simple_cartesian SC; + typedef CGAL::Filtered_kernel K; + + typedef CGAL::Alpha_shape_euclidean_traits_2 Gt; + typedef CGAL::Alpha_shape_vertex_base_2 Avb; + + typedef CGAL::Triangulation_hierarchy_vertex_base_2 Av; + typedef CGAL::Triangulation_face_base_2 Tf; + typedef CGAL::Alpha_shape_face_base_2 Af; + + typedef CGAL::Triangulation_default_data_structure_2 Tds; + typedef CGAL::Delaunay_triangulation_2 Dt; + typedef CGAL::Triangulation_hierarchy_2

Ht; + + /** + * Computes the alpha edges. + */ + template + static void alpha_edges(InputIterator begin, InputIterator end, + const Type& Alpha, + bool mode, + OutputIterator out); + +public: + typedef CGAL::Alpha_shape_2 Alpha_shape_2; + + typedef K::Point_2 Point; + typedef K::Segment_2 Segment; + typedef Alpha_shape_2::Face Face; + typedef Alpha_shape_2::Vertex Vertex; + typedef Alpha_shape_2::Edge Edge; + typedef Alpha_shape_2::Face_handle Face_handle; + typedef Alpha_shape_2::Vertex_handle Vertex_handle; + + typedef Alpha_shape_2::Face_circulator Face_circulator; + typedef Alpha_shape_2::Vertex_circulator Vertex_circulator; + typedef Alpha_shape_2::Locate_type Locate_type; + + typedef Alpha_shape_2::Face_iterator Face_iterator; + typedef Alpha_shape_2::Vertex_iterator Vertex_iterator; + typedef Alpha_shape_2::Edge_iterator Edge_iterator; + typedef Alpha_shape_2::Edge_circulator Edge_circulator; + + typedef Alpha_shape_2::Alpha_iterator Alpha_iterator; + typedef Alpha_shape_2::Alpha_shape_edges_iterator Alpha_shape_edges_iterator; + + /** + * Sort planes HORIZONTALLY in a clockwise order, around the center of mass. + * @warning in place sort + */ + static void clockwiseSort(std::vector& planes); + + /** + * Computes the HORIZONTAL convex hull of the given planes. + */ + static std::vector getConcaveHull(std::vector planes); + + /** + * Computes the discrete line between two points using Bresenham's algorithm. + * @param src the source point + * @param dest the destination point + * @param precision the precision at which the discrete line shall be drawn + */ + static void getDiscreteLine(model::Point3d src, model::Point3d dest, double precision, const double& extraDist, + std::vector& line); +}; + +} /* namespace model */ + +#endif /* GRAPHICSALG_H_ */ diff --git a/include/model/labeledPlane3d.h b/include/model/labeledPlane3d.h new file mode 100644 index 0000000..4f43b6f --- /dev/null +++ b/include/model/labeledPlane3d.h @@ -0,0 +1,131 @@ +/** + * @file labeledPlane3d.h + * + * @auhtor Remus Claudiu Dumitru + * @date 15 Apr 2012 + * + */ + +#ifndef LABELEDPLANE3D_H_ +#define LABELEDPLANE3D_H_ + +//============================================================================== +// Includes +//============================================================================== +#include "model/plane3d.h" +#include "model/candidateOpening.h" +#include "model/commonTypes.h" + +#include +#include +#include +#include + +#include + +//============================================================================== +// Global Variables +//============================================================================== +extern bool quiet; + +//============================================================================== +// Class Declarations +//============================================================================== +namespace model { + +/** + * The three possible labels on a wall, as a result of the raytracing algorithm. + */ +enum Label { + EMPTY, OCCUPIED, OCCLUDED, OPENING, UNKOWN +}; + +/** + * A class representing a plane that has additional features such as labeling of patches. + */ +class LabeledPlane3d : public Plane3d { +private: + static const std::string RED; + static const std::string GREEN; + static const std::string BLUE; + static const std::string WHITE; + + static const double LINE_EPSILON; //!< An epislon value to decide whether a line is horizontal or vertical. + + static const double SOBEL_SCALE; //!< To be used when applying Sobel to any image. + static const double SOBEL_DELTA; //!< To be used when applying Sobel to any image. + static const int SOBEL_KERNEL; //!< To be used when applying Sobel to any image. + + static const double CANNY_THRESH1; //!< The lower threshold for Canny. + static const double CANNY_THRESH2; //!< The upper threshold for Canny. + + static const double HOUGH_RHO; //!< Rho used in the Hough transform. + static const double HOUGH_THETA; //!< Theta used in the Hough transform. + static const int HOUGH_THRESH; //!< Hough transform threshold. + static const double HOUGH_MIN_LINE_LEN; //!< Minimum line length for Hough transform. + + static const double MIN_EMPTY_AREA; //!< Minimum empty area percentage. + static const double MIN_TOTAL_AREA; //!< Minimum total area percentage of wall. + static const double MAX_TOTAL_AREA; //!< Maximum total area percentage of wall. + +private: + std::string name; + +public: + /** + * Each discrete patch is described in this matrix. + */ + std::vector > > patches; + + /** + * Remember a depth map of the plane to be used when detecting the windows. + * To be built in the same time when applying labels. + */ + std::vector > depthMap; + + /** + * The OpenCV image of the depthMap. + */ + cv::Mat depthImg; + + /** + * The corrected depth image of the wall; + */ + cv::Mat correctedDepthImg; + + /** + * The wall distance and the maximum distance (2 * wall distance + ray distance) + * at which the depth map was computed. + */ + std::pair depthMapDistances; + + // constructores and destructors + LabeledPlane3d(); + LabeledPlane3d(const Point3d& pt, const Vector3d& normal); + LabeledPlane3d(const Point3d& pt, const Vector3d& normal, const std::vector& hull); + + LabeledPlane3d(const LabeledPlane3d& other); + virtual ~LabeledPlane3d(); + + // operators + LabeledPlane3d& operator=(const LabeledPlane3d& other); + + /** + * Computes the Canny for this wall using the depth image. + */ + void detectEdges(cv::Mat& img, cv::Mat& hImg, cv::Mat& vImg, cv::Mat& combined) const; + + /** + * Computes the horizontal and vertical lines. + */ + void computeLines(std::vector& verticalResult, std::vector& horizontalResult) const; + + /** + * Returns all opening candidates. + */ + void computeOpeningCandidates(std::vector& candidates) const; +}; + +} /* namespace model */ + +#endif /* LABELEDPLANE3D_H_ */ diff --git a/include/model/plane3d.h b/include/model/plane3d.h new file mode 100644 index 0000000..9125bfd --- /dev/null +++ b/include/model/plane3d.h @@ -0,0 +1,113 @@ +/** + * @file plane3d.h + * + * @auhtor Remus Claudiu Dumitru + * @date 16 Feb 2012 + * + */ + +#ifndef PLANE3D_H_ +#define PLANE3D_H_ + +//============================================================================== +// Includes +//============================================================================== +#include "model/vector3d.h" + +#include + +namespace model { + +/** + * A class defining a plane. + */ +class Plane3d { +private: + /** + * used to determine if vertical + */ + static constexpr double _EPSILON_VERTICAL = 0.02; + + /** + * used to determine if horizontal + */ + static constexpr double _EPSILON_HORIZONTAL = 0.02; + + /** + * if two planes are this close in cm + * then they may be considered to be the same + */ + static constexpr double _EPSILON_DISTANCE = 20; + + /** + * if the length of the crossproduct of two normals is less than this + * then the planes may be considered to be the same + */ + static constexpr double _EPSILON_NORMAL_CROSS_PRODUCT = 2e-1; + +public: + /** + * the normal defining the plane + */ + Vector3d normal; + + /** + * the point of application of the normal + */ + Point3d pt; + + /** + * the convex hull of this plane + */ + std::vector hull; + + Plane3d(); + Plane3d(const Point3d& pt, const Vector3d& normal); + Plane3d(const Point3d& pt, const Vector3d& normal, + const std::vector& hull); + + Plane3d(const Plane3d& other); + + virtual ~Plane3d(); + + /** + * compute the intersection of three planes + */ + Point3d intersect(const Plane3d& first, const Plane3d& second); + + /** + * copies one plane to another + */ + Plane3d& operator=(const Plane3d& other); + + /** + * returns true if a plane is vertical within some predefined epsilon values + */ + bool isVertical(); + + /** + * returns true if a plane is horizontal within some predefined epsilon values + */ + bool isHorizontal(); + + /** + * returns true if this plane replresents the same plane as other + * within some predefined epsilon values + */ + bool isSamePlane(Plane3d other); + + /** + * Computes the normal of the plane from the hull. + */ + Vector3d computeAverageNormal(); + + /** + * Returns the 3D coordinates of points on the plane, which have a fixed + * distance to their next neighbor. + */ + std::vector > getDiscretePoints(const double& dist) const; +}; + +} /* namespace model */ + +#endif /* PLANE3D_H_ */ diff --git a/include/model/point3d.h b/include/model/point3d.h new file mode 100644 index 0000000..809985a --- /dev/null +++ b/include/model/point3d.h @@ -0,0 +1,87 @@ +/** + * @file point3d.h + * + * @auhtor Remus Claudiu Dumitru + * @date 16 Feb 2012 + * + */ + +#ifndef POINT3D_H_ +#define POINT3D_H_ + +//============================================================================== +// Defines +//============================================================================== + +//============================================================================== +// Includes +//============================================================================== +#include "model/rotation3d.h" + +#include + +namespace model { + +// Forward declaration. Avoid circular inclusion. +class Plane3d; +class Vector3d; + +/** + * A point in space. + */ +class Point3d { +private: + static constexpr double _EPSILON = 1.0e-3; + +public: + double x; + double y; + double z; + + Point3d(); + + Point3d(const double& x, const double& y, const double& z); + + Point3d(const Point3d& other); + + /** + * rotate this point around another point + * @param ref the other point + * @param rot the rotation around the other point + */ + void rotate(const Point3d& ref, const Rotation3d& rot); + + /** + * translate this point by a vector + * @param vec the vector that defines the translation + */ + void translate(const Vector3d& vec); + + /** + * @return the distance from this point to another point + */ + double distance(const Point3d& other) const; + + /** + * @return the distance to a plane + */ + double distance(const Plane3d& plane) const; + + Point3d& operator=(const Point3d& other); + Point3d operator-(const Point3d& other); + Point3d operator*(const double& coef); + Point3d operator/(const double& div); + void operator/=(const double& div); + void operator+=(const Point3d& other); + void operator-=(const Point3d& other); + void operator*=(const double& coef); + bool operator==(const Point3d& other) const; + bool operator!=(const Point3d& other); + + friend std::ostream& operator<<(std::ostream& os, const Point3d& pt); +}; + + +} /* namespace model */ + +#endif /* POINT3D_H_ */ diff --git a/include/model/rotation3d.h b/include/model/rotation3d.h new file mode 100644 index 0000000..a2b757b --- /dev/null +++ b/include/model/rotation3d.h @@ -0,0 +1,49 @@ +/** + * @file rotation3d.h + * + * @auhtor Remus Claudiu Dumitru + * @date 16 Feb 2012 + * + */ + +#ifndef RAOTATION3D_H_ +#define RAOTATION3D_H_ + +//============================================================================== +// Defines +//============================================================================== + +//============================================================================== +// Includes +//============================================================================== + +namespace model { + +/** + * A rotation in space. + */ +class Rotation3d { +public: + double x; + double y; + double z; + + inline Rotation3d(const double& x = 0.0, const double& y = 0.0, const double& z = 0.0) { + this->x = x; + this->y = y; + this->z = z; + } + + Rotation3d(const Rotation3d& other); + + Rotation3d& operator=(const Rotation3d& other); + + /** + * Returns a rotation that represents the inverse of the current one. + */ + Rotation3d getInverse(); +}; + +} /* namespace model */ + +#endif /* RAOTATION3D_H_ */ diff --git a/include/model/scene.h b/include/model/scene.h new file mode 100644 index 0000000..08f7166 --- /dev/null +++ b/include/model/scene.h @@ -0,0 +1,198 @@ +/** + * @file scene.h + * + * @auhtor Remus Claudiu Dumitru + * @date 13 Feb 2012 + * + */ + +#ifndef SCENE_H_ +#define SCENE_H_ + +//============================================================================== +// Includes +//============================================================================== +#include "model/point3d.h" +#include "model/vector3d.h" +#include "model/labeledPlane3d.h" + +#include "shapes/hough.h" +#include "shapes/shape.h" +#include "slam6d/Boctree.h" +#include "slam6d/io_types.h" + +#include + +//============================================================================== +// Global Variables +//============================================================================== +extern bool quiet; + +/** + * All available plane detection algos. + */ +enum PlaneAlgorithm { + RHT, SHT, PHT, PPHT, APHT, RANSAC +}; + +namespace model { + +/** + * A class defining a 3d scene. + */ +class Scene { +private: + // private fields + static const double PRECISION; //!< Precision at which to draw the 3d Bresenham line. + static const double RAY_DIST; //!< The max distance to consider that a ray hit something. + static const double PATCH_DIST; //!< The distance between each discrete patch on a wall surface. + static const double WALL_DIST; //!< Tolerance to consider a point part of a wall, squared. + static const double MIN_EMPTY_AREA; //!< The minimum empty area percentage to be considered a window. + static const double MIN_EDGE_COV; //!< Minimum edge coverage coefficient. + +public: + // public fields + SearchTree *octTree; //!< An efficient octree containing the points. + double **octTreePoints; //!< Used to construct the octree. + unsigned int nrPoints; //!< The total number of points in the octree. + + std::vector points; //!< The 3d point cloud. + std::vector planes; //!< The list of planes in our scene. + + std::vector walls; //!< The walls of the room. + LabeledPlane3d ceiling; //!< The ceiling of the room. + LabeledPlane3d floor; //!< The floor of the room. + + std::vector finalOpenings; //!< The windows of the room. + + std::vector poses; //!< Container for all the poses from where scans have been taken from. + +protected: + // protected methods + Scene(); + +public: + // public methods + inline Scene(const std::vector& points, + const std::vector& planes) : + points(points), + planes(planes) + { + if (!quiet) cout << "== Creating scene..." << endl; + this->nrPoints = 0; + }; + + Scene(const IOType& type, + const int& start, const int& end, + std::string dir, const bool& scanserver, + const int& maxDist, const int& minDist, + const PlaneAlgorithm& alg, const int& octree, const double& red, + const vector& poses); + + Scene(const Scene& other); + ~Scene(); + + /** + * Given some planes, returns the HORIZONTAL convex hull formed by the + * application point inside the plane objects, only of VERTICAL planes. + */ + static std::vector getConvexHull(std::vector planes); + + /** + * Removes planes that have similar normals. [O(n^2)] + * @warning the hull is not averaged, it is simply the first found hull for each plane + */ + static std::vector getSignificantPlanes(std::vector planes); + + /** + * Returns true if the highest horizontal plane has been found. + */ + bool getCeiling(std::vector planes, Plane3d& result); + + /** + * Returns true if the lowest horizontal plane has been found. + */ + bool getFloor(std::vector planes, Plane3d& result); + + /** + * Creates the walls, floor and ceiling. + */ + void detectWalls(); + + /** + * Performs ray casting from source point to destination and returns true + * if the ray successfully reached the destination point, returning the + * point it hit along the way. + */ + bool castRay(const model::Point3d& src, const model::Point3d& dest, const double& extraDist, + Point3d& ptHit); + + /** + * Applies labels to the given plane. + */ + void applyLabels(LabeledPlane3d& surf); + + /** + * Applies labels to all the walls. + */ + void applyAllLabels(); + + /** + * Finds all openings using the SVM. + */ + void detectPotentialOpenings(const LabeledPlane3d& surf, + std::vector& openings); + + /** + * Applies KMeans clustering to the multiple windows yielding only one possible window for each cluster. + * Does not work with OpenCV 2.4.0!!! + */ + void clusterOpenings(const LabeledPlane3d& surf, const std::vector& openings, + std::vector& result) const; + + /** + * Returns all openings, after deciding which are the correct ones. + */ + void addFinalOpenings(const LabeledPlane3d& surf, + std::vector& result); + + /** + * Corrects an image to fill in missing data. + */ + void correct(LabeledPlane3d& surf, const std::vector& openings); + + /** + * Writes the walls to appropriate files in the given folder. + */ + void writeModel(std::string dir); + + /** + * Writes the corrected walls to the given folder. + */ + void writeCorrectedWalls(std::string dir); + + /** + * Computes the corrected wall in UOS_RGB. + */ + void getCorrectedWall(const LabeledPlane3d& surf, vector >& points); + +private: + // private methods + + /** + * Floods a point on the labeling matrix with the other given value. + */ + void flood(LabeledPlane3d& surf, + const int& i, const int& j, + const Label& target, const Label& replacement); + + /** + * Returns true if the cube centered at the given coordinates is occupied. + */ + bool isOccupied(const Point3d& center, const double& width); + +}; + +} /* namespace model */ + +#endif /* SCENE_H_ */ diff --git a/include/model/util.h b/include/model/util.h new file mode 100644 index 0000000..9d2116e --- /dev/null +++ b/include/model/util.h @@ -0,0 +1,74 @@ +/** + * @file util.h + * + * @auhtor Remus Claudiu Dumitru + * @date 13 Feb 2012 + * + */ + +#ifndef UTIL_H_ +#define UTIL_H_ + +//============================================================================== +// Includes +//============================================================================== +#include "model/vector3d.h" + +#include +#include + +namespace model { + +/** + * Checks if a point is one one side of an edge. + */ +bool sameSide(const model::Point3d& p1, const model::Point3d& p2, const model::Point3d& a, const model::Point3d& b); + +/** + * Checks if this point lies inside a certain convex hull. + */ +bool insideHull(const model::Point3d& pt, const std::vector& hull); + +/** + * Computes the convex hull of 3D points, disregarding their height. + */ +std::vector getHorizontalConvexHull(std::vector points); + +/** + * Checks if a file exists. + * @param fileName the name of the file to check for existance + */ +bool fileExists(const std::string& fileName); + +/** + * @return true if given file is a directory + */ +bool fileIsDir(const std::string& fileName); + +/** + * Creates a directory at the given path. + */ +bool makeDir(const std::string& path); + +/** + * definition of x^2 + */ +template +static inline T sqr(const T& x) { + return x * x; +} + +/** + * generates a random RGB color + */ +static inline void randomColor(const int& maxVal, + int& r, int& g, int& b) +{ + r = rand() % maxVal; + g = rand() % maxVal; + b = rand() % maxVal; +} + +} /* namespace model */ + +#endif /* UTIL_H_ */ diff --git a/include/model/vector3d.h b/include/model/vector3d.h new file mode 100644 index 0000000..b007928 --- /dev/null +++ b/include/model/vector3d.h @@ -0,0 +1,92 @@ +/** + * @file vector3d.h + * + * @auhtor Remus Claudiu Dumitru + * @date 16 Feb 2012 + * + */ + +#ifndef VECTOR3D_H_ +#define VECTOR3D_H_ + +//============================================================================== +// Includes +//============================================================================== +#include "model/point3d.h" + +#include + +namespace model { + +/** + * A vector in space. + */ +class Vector3d { +public: + double x; + double y; + double z; + + Vector3d(); + + Vector3d(const double& x, const double& y, const double& z); + + /** + * constructor for vector b - a, where a and b are points + */ + Vector3d(const Point3d& a, const Point3d& b); + + Vector3d(const Vector3d& other); + + Vector3d& operator=(const Vector3d& other); + + /** + * normalizes the vector + * @warning in place + */ + void normalize(); + + /** + * inverts the vector + * @warning in place + */ + void invert(); + + /** + * @return the length of the vector + */ + double length() const; + + /** + * rotates the vector around the origin by the given rotation + * @param rot the rotation object that describes how much to rotate the vector + * @warning in place + */ + void rotate(const Rotation3d& rot); + + /** + * @return the cross product (still a vector) between this vector and another given one + */ + Vector3d crossProduct(const Vector3d& other) const; + + /** + * @return the dot product between this vector and another given one + */ + double dotProduct(const Vector3d& other) const; + + /** + * @return the angle between two vectors + */ + double angle(const Vector3d& other); + + void operator+=(const Vector3d& other); + Vector3d operator+(const Vector3d& other); + Vector3d operator*(const double& val); + void operator/=(const double& div); + + friend std::ostream& operator<<(std::ostream& os, const Vector3d& vect); +}; + +} /* namespace model */ + +#endif /* VECTOR3D_H_ */ diff --git a/include/pmd/cvpmd.h b/include/pmd/cvpmd.h new file mode 100644 index 0000000..ef51e06 --- /dev/null +++ b/include/pmd/cvpmd.h @@ -0,0 +1,97 @@ +/** + * @file cvpmd.h + * @brief pmdaccess wrappers, PMD -> OpenCV marshalling and a bit of math. + * @author Stanislav `Cfr` Serebryakov + */ +#pragma once + +#include "pmdsdk2.h" +#include + +/** + * @brief Structure for PMD IO, see initPMD. + */ +typedef struct PMD { + PMDHandle hnd; /**< handle for pmd IO */ + float *data; /**< image quering buffer */ + PMDDataDescription dd; /**< contains image size, integration time, etc */ +} PMD; + +/** + * PMD Constructor + * @param *plugin IO plugin name i.e. o3d.L32.pcp + * @param *ip PMD camera IP address + * @return initialized PMD struct + */ +PMD *initPMD(const char* plugin, const char *ip); + +/** + * Destructor + */ +void releasePMD(PMD **pmd); + + +/** + * Returns pointer to the data (used to save float data for offline mode) + */ +float *pmdDataPtr(PMD *p); + + +/** + * Converts PMD data (stored in PMD struct) to provided IplImage (new will be created if NULL passed) + * @param *p initialized PMD struct with grabbed data (i.e. pmdGetIntensities(p->hnd, p->data, p->dd.std.numColumns * p->dd.std.numRows * sizeof(float))) + * @param *img destination IplImage (default: 0, new one will be created) + * @return generated IplImage + */ +IplImage *toIplImage(const PMD *p, IplImage *img); + +/** + * Converts PMD distance point to cartesian coords with intrinsic matrix + * @param uv PMD depth point coords (row, col) //FIXME: order! + * @param dist PMD distance for given point + * @param intrinsicMatrix PMD camera' intrinsic matrix (from calibration) + * @return 3D Point in OpenCV format (CvPoint3D32f) + */ + +CvPoint3D32f *cvProjectArrayToCartesian( const CvMat *intrinsicMatrix + , const CvPoint2D32f *pts, const int ptsCnt + , CvPoint3D32f *unitVs); + + +CvPoint3D32f **pmdProjectArrayToCartesian(const PMD *p, const CvMat *intrinsicMatrix, CvPoint3D32f **pts); + +/** + * Get pmd camera' image size + * @param *p initialized PMD struct + * @return image size in OpenCV format (CvSize) + */ +CvSize pmdGetSize(const PMD *p); + +/** + * Query PMD inrensities image. Dont forget to call pmdUpdate before quering! + * @param *p initialized PMD struct + * @param *img destination IplImage (defaul: 0, new one will be created if null passed) + * @return image in OpenCV format (IplImage) + */ +IplImage *pmdQueryImage(PMD *p, IplImage *img); +IplImage *pmdQueryImageAsync(PMD *p, IplImage *img); + +/** + * Store PMD distances (inside p->data) + */ +void pmdRetriveDistances(PMD *p); +void pmdRetriveDistancesAsync(PMD *p); + + +/** + * Query PMD distance image in OpenCV format + */ +IplImage *pmdQueryDistances(PMD *p, IplImage *img); +IplImage *pmdQueryDistancesAsync(PMD *p, IplImage *img); + +/** + * Query PMD aplitudes image in OpenCV format (might be used as belief measure) + */ +IplImage *pmdQueryAmplitudes(PMD *p, IplImage *img); +IplImage *pmdQueryAmplitudesAsync(PMD *p, IplImage *img); + diff --git a/include/pmd/pmdWrap.h b/include/pmd/pmdWrap.h new file mode 100644 index 0000000..f4cd589 --- /dev/null +++ b/include/pmd/pmdWrap.h @@ -0,0 +1,82 @@ +#pragma once + +#include +#include + +#include + +#include "cvpmd.h" + +#include "slam6d/icp6Dminimizer.h" + +struct PMDFiles { + FILE *i; // intens + FILE *a; // ampl + FILE *p; // 3d pts + FILE *h; // pmd image headers +}; + +struct TrackingSettings { + int winSz; + double quality; + int minFeatures; + int maxFeatures; + int minDist; + IplImage *pyr; + IplImage *pyrPrev; + IplImage *iCamPrev; + CvPoint2D32f *pts[2]; + char *ptsStatus; + int trackingFlags; +}; + +struct PMDCam { + PMD *_pmd; + CvCapture *_capture; + PMDFiles _f; + CvMat *intrinsicPMD; + CvMat *intrinsicCam; + CvMat *distortionPMD; + CvMat *distortionCam; + CvMat *rotation; + CvMat *translation; + // Undistortion maps + IplImage *_mapXCam; + IplImage *_mapYCam; + IplImage *_mapXPMD; + IplImage *_mapYPMD; + // Data + IplImage *_iCamColorUBuffer; + IplImage *iCamColor; + IplImage *iCam; + IplImage *_iCamColorU; + IplImage *iPMDI; + IplImage *_iPMDIU; + IplImage *iPMDA; + IplImage *_iPMDAU; + CvPoint3D32f **pts; + unsigned int timestamp; + unsigned int timestampUsec; + // Pose Estimation + icp6Dminimizer *icp; + int minPts4Pose; + double maxError; + int minConsensusPts; + int savePoses; + // Settings + ImageHeaderInformation *header; + int synchronous; + int hybrid; + int _offlineMode; + int historyLen; + TrackingSettings _track; + double sigmaDepth; + double sigmaColor; + double dpThreshold; + +}; + +PMDCam *initPMDCam(const char *confPath); +int grabData(PMDCam *pmdc); + + diff --git a/include/pmd/pmdaccess2/pmddatadescription.h b/include/pmd/pmdaccess2/pmddatadescription.h new file mode 100644 index 0000000..e2d61c9 --- /dev/null +++ b/include/pmd/pmdaccess2/pmddatadescription.h @@ -0,0 +1,354 @@ +/***************************************************************************** + * PMDSDK 2 + * + * Copyright (c) 2006-2007 PMD Technologies GmbH + * All Rights Reserved. + * + * File: pmddatadescription.h + * Author: Martin Profittlich + * Created: 20060808 + * + *****************************************************************************/ + +#ifndef DATADESCRIPTION_H_672861066752896024487934289650 +#define DATADESCRIPTION_H_672861066752896024487934289650 + +/// \addtogroup core +/// @{ + +#include "pmdsdk2common.h" + +BEGIN_EXTERN_C + + +/// \addtogroup DataCodes +/// @{ + +// TODO: move defines to separate file + +// raw data ID system: +// 0x00 0x00 0bORWWWWWW 0bRRRRDABD +// R = Reserved, must be 0 +// O = Byte order (1 = Big Endian) +// W = Bit width +// D = Difference +// A = Channel A +// B = Channel B + +/// A/B PMD data (e.g. PMD[vision] 3k-S) +#define PMD_RAW_L16_AB 0x00001006u +/// A/B PMD data (BigEndian) (e.g. CamCube) +#define PMD_RAW_B16_AB 0x00009006u +/// Difference and A/B PMD data +#define PMD_RAW_L16_DAB 0x0000100Eu +/// Difference and A/B PMD data (Big Endian) (e.g. USB-L) +#define PMD_RAW_B16_DAB 0x0000900Eu +/// A/B and difference PMD data +#define PMD_RAW_L16_ABD 0x00001007u +/// A/B and difference PMD data (Big Endian) (e.g. PMD[vision] A2 w/o addition information) +#define PMD_RAW_B16_ABD 0x00009007u +/// Packed PMD difference data (e.g. PMD[vision] 19k) +#define PMD_RAW_P12_D 0x00000C01u +/// PMD difference data (e.g. PMD[vision] 64) +#define PMD_RAW_L16_D 0x00001001u + +/// PMD difference data with saturation information +//#define PMD_RAW_L16D_SAT 1005u +/// A/B, difference and information PMD data (e.g. PMD[vision] A2 w/ additional information) +//#define PMD_RAW_L16ABD_AUX 1006u + +/// Unknown data +#define PMD_UNKNOWN_DATA 0x00000000u + +/// 32-bit floating point distances in meters +#define PMD_DISTANCE_LF32 0x00010001u +/// 32-bit floating point amplitudes +#define PMD_AMPLITUDE_LF32 0x00010002u +/// 32-bit floating point intensities +#define PMD_INTENSITY_LF32 0x00010004u +/// 32-bit floating point reflectivities +#define PMD_REFLECTIVITY_LF32 0x00010008u +/// 16-bit boolean information +#define PMD_FLAGS_16 0x00010010u + +/// Cartesian X coordinates +#define PMD_X_COORD_LF32 0x00010020u +/// Cartesian Y coordinates +#define PMD_Y_COORD_LF32 0x00010040u +/// Cartesian Z coordinates +#define PMD_Z_COORD_LF32 0x00010080u + +/// 16 bit distances in millimeters and amplitudes +#define PMD_DISTANCE_I16_AMPLITUDE_I16 0x00020003u +/// 16 bit distances in 100 micrometers and amplitudes +#define PMD_DISTANCE_100UM_I16_AMPLITUDE_I16 0x00020103u + +/// A3 camera data v2.31 +#define PMD_A3_DATA_2_31 0x00040003u +/// A3 camera data v4 +#define PMD_A3_DATA_4 0x00040005u +/// A3 camera raw data +#define PMD_A3_RAWDATA_2_31 0x00040007u +/// A3 sub type +#define PMD_A3_DISTANCE 0x00000001u +/// A3 sub type +#define PMD_A3_AMPLITUDE 0x00000002u +/// A3 sub type +#define PMD_A3_CONFIDENCE 0x00000004u +/// A3 sub type +#define PMD_A3_COORDINATES 0x00000008u +/// A3 sub type +#define PMD_A3_OBJECT_LIST 0x00000010u + +/// A3 camera data +#define PMD_O3D_DATA_1_7 0x00050003u +/// O3D sub type +#define PMD_O3D_DISTANCE 0x00000002u +/// O3D sub type +#define PMD_O3D_INTENSITY 0x00000004u +/// O3D sub type +#define PMD_O3D_STDDEV 0x00000010u +/// O3D sub type +#define PMD_O3D_VIEW_X 0x00000020u +/// O3D sub type +#define PMD_O3D_VIEW_Y 0x00000040u +/// O3D sub type +#define PMD_O3D_VIEW_Z 0x00000080u +/// O3D sub type +#define PMD_O3D_X 0x00000100u +/// O3D sub type +#define PMD_O3D_Y 0x00000200u +/// O3D sub type +#define PMD_O3D_Z 0x00000400u + +/// user defined data type +#define PMD_USER_DEFINED_0 0xFFFF0000u +/// user defined data type +#define PMD_USER_DEFINED_1 0xFFFF0001u +/// user defined data type +#define PMD_USER_DEFINED_2 0xFFFF0002u +/// user defined data type +#define PMD_USER_DEFINED_3 0xFFFF0003u +/// user defined data type +#define PMD_USER_DEFINED_4 0xFFFF0004u +/// user defined data type +#define PMD_USER_DEFINED_5 0xFFFF0005u +/// user defined data type +#define PMD_USER_DEFINED_6 0xFFFF0006u +/// user defined data type +#define PMD_USER_DEFINED_7 0xFFFF0007u +/// user defined data type +#define PMD_USER_DEFINED_8 0xFFFF0008u +/// user defined data type +#define PMD_USER_DEFINED_9 0xFFFF0009u +/// user defined data type +#define PMD_USER_DEFINED_10 0xFFFF000au +/// user defined data type +#define PMD_USER_DEFINED_11 0xFFFF000bu +/// user defined data type +#define PMD_USER_DEFINED_12 0xFFFF000cu +/// user defined data type +#define PMD_USER_DEFINED_13 0xFFFF000du +/// user defined data type +#define PMD_USER_DEFINED_14 0xFFFF000eu +/// user defined data type +#define PMD_USER_DEFINED_15 0xFFFF000fu + +// pixel origin values +/// The top-right pixel is the first pixel +#define PMD_ORIGIN_TOP_RIGHT 0x00000000u +/// The top-left pixel is the first pixel +#define PMD_ORIGIN_TOP_LEFT 0x00000001u +/// The bottom-right pixel is the first pixel +#define PMD_ORIGIN_BOTTOM_RIGHT 0x00000002u +/// The bottom-left pixel is the first pixel +#define PMD_ORIGIN_BOTTOM_LEFT 0x00000003u + +/// The pixel origin is on the right edge of the image +#define PMD_ORIGIN_RIGHT 0x00000000u +/// The pixel origin is on the left edge of the image +#define PMD_ORIGIN_LEFT 0x00000001u +/// The pixel origin is on the top edge of the image +#define PMD_ORIGIN_TOP 0x00000000u +/// The pixel origin is on the bottom edge of the image +#define PMD_ORIGIN_BOTTOM 0x00000002u + +// pixel direction values +/// The second pixel is on the right or the left of the first pixel +#define PMD_DIRECTION_HORIZONTAL 0x00000000u +/// The second pixel is aboce or below the first pixel +#define PMD_DIRECTION_VERTICAL 0x00010000u + +// sub header types +/// The PMDGenericData structure is used in the PMDDataDescription +#define PMD_GENERIC_DATA 0x00000001u +/// The PMDImageData structure is used in the PMDDataDescription +#define PMD_IMAGE_DATA 0x00000002u + +/// @} + +/// Generic data description +struct PMDGenericData +{ + /// Specific type of the data + unsigned subType; + /// Number of elements in the data + unsigned numElem; + /// Size of one element in bytes + unsigned sizeOfElem; +}; + +/// Standard PMD image data. +struct PMDImageData +{ + /// Specific type of the data + unsigned subType; + /// Number of columns in the image + unsigned numColumns; + /// Number of rows in the image + unsigned numRows; + /// Number of sub images + unsigned numSubImages; + + /// Integration times at which the data was captured + int integrationTime[4]; + /// Modulation frequencies at which the data was captured + int modulationFrequency[4]; + /// Offsets for up to four separate measurements in mm. + int offset[4]; + + /// Pixel aspect ratio. The ratio is pixelAspectRatio / 1000.0 + int pixelAspectRatio; + /// Position/direction of the first pixel. + int pixelOrigin; + + /// Time at which the data was captured. Most significant word. + int timeStampHi; + /// Time at which the data was captured. Least significant word. + unsigned timeStampLo; + + /// Reserved for future use. + char reserved[24]; + + /// Contains user-defined information. This will not be evaluated by the PMDSDK. + unsigned userData0; +}; + +/// Layout description of a data block. +struct PMDDataDescription +{ + /// Unique ID of the plugin that generated the data + unsigned PID; + /// Unique ID of the data + unsigned DID; + /// Interpretation of the data + unsigned type; + /// Size of the data block in bytes + unsigned size; + + /// Type of the sub header + unsigned subHeaderType; + /// Specific interpretation-dependent information + union + { + /// Generic data + struct PMDGenericData gen; + /// Standard PMD image data + struct PMDImageData std; + /// Ensure fixed size + char fillUpToSizeOfStructure[108]; + } +#ifdef PMD_ANSI_C + u +#endif + ; +}; + +#ifndef PMD_NO_DEPRECATED + +typedef struct PMDDataDescription DataDescription; +typedef struct PMDImageData StandardPMDData; +typedef struct PMDGenericData GenericData; +#define GENERIC_DATA PMD_GENERIC_DATA +#define STANDARD_PMD_DATA PMD_IMAGE_DATA + +#define RAW_L16_AB PMD_RAW_L16_AB +#define RAW_L16_DAB PMD_RAW_L16_DAB +#define RAW_B16_DAB PMD_RAW_B16_DAB +#define RAW_L16_ABD PMD_RAW_L16_ABD +#define RAW_B16_ABD PMD_RAW_B16_ABD +#define RAW_P12_D PMD_RAW_P12_D +#define RAW_L16_D PMD_RAW_L16_D + +#define UNKNOWN_DATA PMD_UNKNOWN_DATA + +#define DISTANCE_LF32 PMD_DISTANCE_LF32 +#define AMPLITUDE_LF32 PMD_AMPLITUDE_LF32 +#define INTENSITY_LF32 PMD_INTENSITY_LF32 +#define REFLECTIVITY_LF32 PMD_REFLECTIVITY_LF32 +#define FLAGS_16 PMD_FLAGS_16 + +#define X_COORD_LF32 PMD_X_COORD_LF32 +#define Y_COORD_LF32 PMD_Y_COORD_LF32 +#define Z_COORD_LF32 PMD_Z_COORD_LF32 + +#define DISTANCE_I16_AMPLITUDE_I16 PMD_DISTANCE_I16_AMPLITUDE_I16 +#define DISTANCE_100UM_I16_AMPLITUDE_I16 PMD_DISTANCE_100UM_I16_AMPLITUDE_I16 + +#define A3_DATA_2_31 PMD_A3_DATA_2_31 +#define A3_DATA_4 PMD_A3_DATA_4 +#define A3_RAWDATA_2_31 PMD_A3_RAWDATA_2_31 +#define A3_DISTANCE PMD_A3_DISTANCE +#define A3_AMPLITUDE PMD_A3_AMPLITUDE +#define A3_CONFIDENCE PMD_A3_CONFIDENCE +#define A3_COORDINATES PMD_A3_COORDINATES +#define A3_OBJECT_LIST PMD_A3_OBJECT_LIST + +#define O3D_DATA_1_7 PMD_O3D_DATA_1_7 +#define O3D_DISTANCE PMD_O3D_DISTANCE +#define O3D_INTENSITY PMD_O3D_INTENSITY +#define O3D_STDDEV PMD_O3D_STDDEV +#define O3D_VIEW_X PMD_O3D_VIEW_X +#define O3D_VIEW_Y PMD_O3D_VIEW_Y +#define O3D_VIEW_Z PMD_O3D_VIEW_Z +#define O3D_X PMD_O3D_X +#define O3D_Y PMD_O3D_Y +#define O3D_Z PMD_O3D_Z + +#define USER_DEFINED_0 PMD_USER_DEFINED_0 +#define USER_DEFINED_1 PMD_USER_DEFINED_1 +#define USER_DEFINED_2 PMD_USER_DEFINED_2 +#define USER_DEFINED_3 PMD_USER_DEFINED_3 +#define USER_DEFINED_4 PMD_USER_DEFINED_4 +#define USER_DEFINED_5 PMD_USER_DEFINED_5 +#define USER_DEFINED_6 PMD_USER_DEFINED_6 +#define USER_DEFINED_7 PMD_USER_DEFINED_7 +#define USER_DEFINED_8 PMD_USER_DEFINED_8 +#define USER_DEFINED_9 PMD_USER_DEFINED_9 +#define USER_DEFINED_10 PMD_USER_DEFINED_10 +#define USER_DEFINED_11 PMD_USER_DEFINED_11 +#define USER_DEFINED_12 PMD_USER_DEFINED_12 +#define USER_DEFINED_13 PMD_USER_DEFINED_13 +#define USER_DEFINED_14 PMD_USER_DEFINED_14 +#define USER_DEFINED_15 PMD_USER_DEFINED_15 + +#define ORIGIN_TOP_RIGHT PMD_ORIGIN_TOP_RIGHT +#define ORIGIN_TOP_LEFT PMD_ORIGIN_TOP_LEFT +#define ORIGIN_BOTTOM_RIGHT PMD_ORIGIN_BOTTOM_RIGHT +#define ORIGIN_BOTTOM_LEFT PMD_ORIGIN_BOTTOM_LEFT + +#define ORIGIN_RIGHT PMD_ORIGIN_RIGHT +#define ORIGIN_LEFT PMD_ORIGIN_LEFT +#define ORIGIN_TOP PMD_ORIGIN_TOP +#define ORIGIN_BOTTOM PMD_ORIGIN_BOTTOM + +#define DIRECTION_HORIZONTAL PMD_DIRECTION_HORIZONTAL +#define DIRECTION_VERTICAL PMD_DIRECTION_VERTICAL + +#endif + +END_EXTERN_C + +/// @} + +#endif diff --git a/include/pmd/pmdaccess2/pmdheader.h b/include/pmd/pmdaccess2/pmdheader.h new file mode 100644 index 0000000..627b2d7 --- /dev/null +++ b/include/pmd/pmdaccess2/pmdheader.h @@ -0,0 +1,131 @@ +#pragma once + +enum FilterTypes { + NO_FILTER = 0, + MEDIAN_FILTER, //1 + MEAN_FILTER, //2 + ADAPTIVE_MEAN_FILTER //3 +}; + + + +typedef struct ImageHeaderInformation { + float DataSize; + float HeaderSize; + float ImageType; + float SamplingMode; + float SamplingRate; + float IntegrationTime_Exp0; + float IntegrationTime_Exp1; + float Seconds; + float Useconds; + float MedianFilter; + float MeanFilter; + float AdaptiveMeanFilter; + float ExponentialFilter; + float ExponentialFilterValue; + float AdaptiveMeanValueFilterThreshold; + float ValidImage; + float ErrorCode; + float Temperature; + float CurrentProgram; + float CurrentValue; + float CurrentTriggerMode; + float CurrentProduct; + float CurrentUnit; + float RoiLeft; + float RoiRight; + float RoiTop; + float RoiBottom; + float FocalDistance; + float PixelSize; + float DelayStartTime; + float DelayReverseTime; + float OutputTypeOut1; + float OutputTypeOut2; + float internaluse01; + float internaluse02; + float internaluse03; + float internaluse04; + float internaluse05; + float internaluse06; + float internaluse07; + float internaluse08; + float internaluse09; + float internaluse10; + float internaluse11; + float internaluse12; + float internaluse13; + float internaluse14; + float internaluse15; + float internaluse16; + float internaluse17; + float internaluse18; + float internaluse19; + float internaluse20; + float internaluse21; + float internaluse22; + float internaluse23; + float internaluse24; + float AverageDetermination; + float Reserved1; + float Reserved2; + float Reserved3; + float Reserved4; + float Reserved5; + float Reserved6; + float Reserved7; + float Reserved8; + float Reserved9; + float Reserved10; + float Reserved11; + float Reserved12; + float Reserved13; + float Reserved14; + float Reserved15; + float Reserved16; + float Reserved17; + float Reserved18; + float Reserved19; + float Reserved20; + float Reserved21; + float Reserved22; + float Reserved23; + float Reserved24; + float Reserved25; + float Reserved26; + float Reserved27; + float Reserved28; + float Reserved29; + float Reserved30; + float Reserved31; + float Reserved32; + float Reserved33; + float Reserved34; + float Reserved35; + float Reserved36; + float Reserved37; + float Reserved38; + float Reserved39; + float Reserved40; + float Reserved41; + float Reserved42; + float Reserved43; + float Reserved44; + float Reserved45; +} T_IMAGEHEADER; + +enum ImageTypes { + INVALID_IMAGE = 0, + DISTANCE_IMAGE , //1 + INTENSITY_IMAGE, //2 + NOT_USED_TYPE, //3 + CURRENT_STD_IMAGE, //4 + NORMAL_X_IMAGE, //5 + NORMAL_Y_IMAGE, //6 + NORMAL_Z_IMAGE, //7 + KARTESIAN_X_IMAGE, //8 + KARTESIAN_Y_IMAGE, //9 + KARTESIAN_Z_IMAGE //10 +}; + diff --git a/include/pmd/pmdaccess2/pmdsdk2.h b/include/pmd/pmdaccess2/pmdsdk2.h new file mode 100644 index 0000000..7a2257a --- /dev/null +++ b/include/pmd/pmdaccess2/pmdsdk2.h @@ -0,0 +1,260 @@ +/* + * PMDSDK 2 + * + * File: pmdsdk2.h + * Author: Martin Profittlich + * Version: 1.0 + * + * General header file for applications using the PMDSDK 2.0. + * Contains all necessary definitions and prototypes. + * + * Copyright (c) 2006-2007 PMD Technologies GmbH. + * All Rights Reserved. + * + */ + +// +// Differences from MiniSDK 1.0: +// +// - Distance, amplitude and intensity data type is float (was double) +// - pmdGetRaw() is now pmdGetSourceData() +// - Error code values changed +// - User is responsible for memory (de-)allocation now +// - Info commands removed, introduced pmdSourceCommand instead +// - Plugins! +// - Multiple integration times and modulation frequencies +// - Only one connection command, camera identification via plugin/parameter +// + +#ifndef PMDMSDK2_H_INCLUDED_2503171013 +#define PMDMSDK2_H_INCLUDED_2503171013 + +#include "pmddatadescription.h" +#include "pmdheader.h" + +#ifdef _WIN32 +# ifndef DLLSPEC +# define DLLSPEC __declspec(dllimport) +# endif +#else +# ifdef DLLSPEC +# undef DLLSPEC +# endif +# define DLLSPEC +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +// TYPES + +/// Handle for a camera connection. +///This handle is used for all subsequent operations. +/// +//typedef void* PMDHandle; +typedef unsigned PMDHandle; + +// FUNCTIONS + +ImageHeaderInformation *retriveHeader(); + +int pmdGetDistancesAsync(PMDHandle hnd, float *data, size_t maxLen); +int pmdGetAmplitudesAsync(PMDHandle hnd, float * data, size_t maxLen); +int pmdGetIntensitiesAsync(PMDHandle hnd, float * data, size_t maxLen); + + +/// Connect to a PMD camera or other data source +///\param hnd Empty PMDHandle structure. On success, this value +///will contain the handle for subsequent operations. +///\param rplugin Path of the camera plugin +///\param rparam Parameter for the camera plugin +///\param pplugin Path of the processing plugin. If this is NULL, no porcessing plugin will be loaded. +///\param pparam Parameter for the processing plugin +///\return PMD_OK on success, errorcode otherwise +/// +DLLSPEC int pmdOpen (PMDHandle * hnd, const char * rplugin, const char * rparam, const char * pplugin, const char * pparam); + +/// Connect to a PMD camera or other data source without processing +///\param hnd Empty PMDHandle structure. On success, this value +///will contain the handle for subsequent operations. +///\param rplugin Path of the camera plugin +///\param rparam Parameter for the camera plugin +///\return PMD_OK on success, errorcode otherwise +/// +DLLSPEC int pmdOpenSourcePlugin (PMDHandle * hnd, const char * rplugin, const char * rparam); + +/// Disconnect and close the handle. +/// \param hnd Handle of the connection. +/// \return PMD_OK on success, errorcode otherwise +/// +DLLSPEC int pmdClose (PMDHandle hnd); + +/// Get an error description from the last error. +/// Error messages are stored per handle. A new error associated with PMDHandle A +/// does not overwrite the last error message associated with PMDHandle B. +/// \param hnd Handle of the connection/plugin. +/// \param error Memory to hold the error message. +/// \param maxLen Maximum length of the error message, including the terminating zero byte. +/// Longer messages will be truncated. +DLLSPEC int pmdGetLastError (PMDHandle hnd, char * error, size_t maxLen); + +/// Retrieve the a new frame from the camera. +/// To obtain the actual data, use pmdGetSourceData, pmdGetDistances, +/// pmdGetAmplitudes etc. +/// \param hnd Handle of the connection. +/// \return PMD_OK on success, errorcode otherwise +/// +DLLSPEC int pmdUpdate (PMDHandle hnd); + +/// Set the integration time of the camera +/// \param hnd Handle of the connection. +/// \param idx Index of the integration time. +/// \param t Integration time in microseconds. +/// \return PMD_OK on success, errorcode otherwise +/// +DLLSPEC int pmdSetIntegrationTime (PMDHandle hnd, unsigned idx, unsigned t); + +/// Get the integration time of the camera +/// \param hnd Handle of the connection. +/// \param idx Index of the integration time. +/// \param t Pointer to a variable to contain the +/// integration time in microseconds. +/// \return PMD_OK on success, errorcode otherwise +/// +DLLSPEC int pmdGetIntegrationTime (PMDHandle hnd, unsigned * t, unsigned idx); + +/// Get a supported integration time of the camera +/// \param hnd Handle of the connection. +/// \param idx Index of the integration time. +/// \param t The desired integration time +/// \param w Where to look for a valid integration time in respect to the desired +/// integration time (CloseTo, AtLeast or AtMost) +/// \param responsible Pointer to a variable to contain the +/// integration time in microseconds. +/// \return PMD_OK on success, errorcode otherwise +/// +DLLSPEC int pmdGetValidIntegrationTime (PMDHandle hnd, unsigned * result, unsigned idx, Proximity w, unsigned t); + +/// Set the modulation frequency of the camera +/// \param hnd Handle of the connection. +/// \param idx Index of the modulation frequency. +/// \param f Modulation frequency in Hz. +/// \return PMD_OK on success, errorcode otherwise +/// +DLLSPEC int pmdSetModulationFrequency (PMDHandle hnd, unsigned idx, unsigned f); + +/// Get the modulation frequency of the camera +/// \param hnd Handle of the connection. +/// \param idx Index of the modulation frequency. +/// \param t Pointer to a variable to contain the +/// modulation frequency in Hz. +/// \return PMD_OK on success, errorcode otherwise +/// +DLLSPEC int pmdGetModulationFrequency (PMDHandle hnd, unsigned * f, unsigned idx); + +/// Get a supported modulation frequency of the camera +/// \param hnd Handle of the connection. +/// \param idx Index of the modulation frequency. +/// \param f The desired modulation frequency +/// \param w Where to look for a valid modulation frequency in respect to the desired +/// modulation frequency (CloseTo, AtLeast or AtMost) +/// \param result Pointer to a variable to contain the +/// modulation frequency in Hz. +/// \return PMD_OK on success, errorcode otherwise +/// +DLLSPEC int pmdGetValidModulationFrequency (PMDHandle hnd, unsigned * result, unsigned idx, Proximity w, unsigned f); + +/// Get the raw data from the current frame. +/// \param hnd Handle of the connection. +/// \param data Pointer to the memory to contain the address of the data. +/// \param maxLen Maximum length in bytes for the data +/// \return PMD_OK on success, errorcode otherwise +/// +DLLSPEC int pmdGetSourceData (PMDHandle hnd, void * data, size_t maxLen); + +/// Get the size in bytes of the current raw data frame. +/// \param hnd Handle of the connection. +/// \param size Will contain the size after the call +/// \return PMD_OK on success, errorcode otherwise +/// +DLLSPEC int pmdGetSourceDataSize (PMDHandle hnd, size_t * size); + +/// Get the description of the current raw data frame. +/// \param hnd Handle of the connection. +/// \param dd Will contain the PMDDataDescription after the call. +/// \return PMD_OK on success, errorcode otherwise +/// +DLLSPEC int pmdGetSourceDataDescription (PMDHandle hnd, struct PMDDataDescription * dd); + +/// Get the distance data from the current frame. +/// \param hnd Handle of the connection. +/// \param data Pointer to a block of memory to contain the data. +/// \return PMD_OK on success, errorcode otherwise +/// +DLLSPEC int pmdGetDistances (PMDHandle hnd, float * data, size_t maxLen); + +/// Get the amplitude data from the current frame. +/// \param hnd Handle of the connection. +/// \param data Pointer to a block of memory to contain the data. +/// \return PMD_OK on success, errorcode otherwise +/// +DLLSPEC int pmdGetAmplitudes (PMDHandle hnd, float * data, size_t maxLen); + +/// Get the intensity data from the current frame. +/// \param hnd Handle of the connection. +/// \param data Pointer to a block of memory to contain the data. +/// \return PMD_OK on success, errorcode otherwise +/// +DLLSPEC int pmdGetIntensities (PMDHandle hnd, float * data, size_t maxLen); + +/// Execute an source plugin-specific command. +/// \param hnd Handle of the connection. +/// \param result Pointer to a block of memory to contain the result string. +/// \param maxLen Maximum length of the result string, including terminating 0. +/// \param cmd The command to be executed. +/// +DLLSPEC int pmdSourceCommand (PMDHandle hnd, char * result, size_t maxLen, const char * cmd); + +/// Execute a processing plugin-specific command. +/// \param hnd Handle of the connection. +/// \param result Pointer to a block of memory to contain the result string. +/// \param maxLen Maximum length of the result string, including terminating 0. +/// \param cmd The command to be executed. +/// +DLLSPEC int pmdProcessingCommand (PMDHandle hnd, char * result, size_t maxLen, const char * cmd); + +// ADDITIONAL PROCESSING + +DLLSPEC int pmdOpenProcessingPlugin (PMDHandle * hnd, const char * pplugin, const char * pparam); + +DLLSPEC int pmdProcess (PMDHandle hnd, + unsigned numOut, struct PMDDataDescription * ddOut, void ** output, + unsigned numIn, struct PMDDataDescription * ddIn, void ** input); + +DLLSPEC int pmdCanProcess (PMDHandle hnd, unsigned * memNeeded, unsigned type, unsigned numFmt, struct PMDDataDescription * fmt); + +// SPECIAL FUNCTIONS +// additional header file? inline code? +DLLSPEC int pmdConnectFireWire (PMDHandle * hnd, unsigned index); +DLLSPEC int pmdConnectASample (PMDHandle * hnd, const char * address); + +#ifndef PMD_NO_DEPRECATED +// DEPRECATED +DLLSPEC int pmdConnect (PMDHandle * hnd, const char * rplugin, const char * rparam, const char * pplugin, const char * pparam); +DLLSPEC int pmdConnectOnlyRaw (PMDHandle * hnd, const char * rplugin, const char * rparam); +DLLSPEC int pmdDisconnect (PMDHandle hnd); +DLLSPEC int pmdOpenAccessPlugin (PMDHandle * hnd, const char * rplugin, const char * rparam); +DLLSPEC int pmdGetRawData (PMDHandle hnd, void * data, size_t maxLen); +DLLSPEC int pmdGetRawDataSize (PMDHandle hnd, size_t * size); +DLLSPEC int pmdGetRawDataDescription (PMDHandle hnd, struct PMDDataDescription * dd); +DLLSPEC int pmdPlatformCommand (PMDHandle hnd, char * result, size_t maxLen, const char * cmd); +DLLSPEC int pmdConfigureProcess (PMDHandle hnd, char * result, size_t maxLen, const char * cmd); +DLLSPEC int pmdGetInfo (PMDHandle hnd, char * result, size_t maxLen, const char * key); +#endif + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/include/pmd/pmdaccess2/pmdsdk2common.h b/include/pmd/pmdaccess2/pmdsdk2common.h new file mode 100644 index 0000000..0d82bf0 --- /dev/null +++ b/include/pmd/pmdaccess2/pmdsdk2common.h @@ -0,0 +1,163 @@ +/***************************************************************************** + * PMDSDK 2 + * + * Copyright (c) 2006-2007 PMD Technologies GmbH + * All Rights Reserved. + * + * File: pmdsdk2common.h + * Author: Martin Profittlich + * Created: 20060530 + * + *****************************************************************************/ + +#ifndef MSDK2COMMON_H_82635748816555424683995524346951 +#define MSDK2COMMON_H_82635748816555424683995524346951 + +/// \addtogroup core +/// @{ + +// Includes + +#include + +// Macros + +#ifdef __cplusplus +/// Mark beginning of extern "C" block +# define BEGIN_EXTERN_C extern "C" { +/// Mark ending of extern "C" block +# define END_EXTERN_C } +#else +/// Mark beginning of extern "C" block +# define BEGIN_EXTERN_C +/// Mark ending of extern "C" block +# define END_EXTERN_C +#endif + +#ifdef __cplusplus +/// Mark beginning of pmd namespace +# define BEGIN_PMD_NAMESPACE namespace pmd { +/// Mark ending of pmd namespace +# define END_PMD_NAMESPACE } +#endif + +#ifndef _WIN32 +/// No export needed for non-windows platforms +# define PMD_EXPORT +#else +/// Win32 export definition (only if not already defined as dllexport) +# ifndef PMD_EXPORT +# define PMD_EXPORT __declspec(dllimport) +# endif +#endif + +// Types + +/// Single precision float +typedef float PMDFloat32; +/// Double precision float +typedef double PMDFloat64; + +/// Standard float +#ifndef PMDFloat +typedef PMDFloat32 PMDFloat; +#endif + +/// Unsigned 32-bit integer +typedef unsigned PMDUInt32; +/// Signed 32-bit integer +typedef signed int PMDSInt32; + +/// Unsigned 16-bit integer +typedef unsigned short PMDUInt16; +/// Signed 16-bit integer +typedef signed short PMDSInt16; + +/// Unsigned 8-bit integer +typedef unsigned char PMDUInt8; +/// Signed 8-bit integer +typedef signed char PMDSInt8; + +/// Enumeration for retrieving valid integration times and modulation +/// frequencies +typedef enum { AtLeast, AtMost, CloseTo } Proximity; + +// Resultcodes + +/// \addtogroup StatusCodes +/// @{ + +/// Success +#define PMD_OK 0 + +/// Runtime error +#define PMD_RUNTIME_ERROR 1024 +/// Generic error +#define PMD_GENERIC_ERROR 1025 +/// Connection lost +#define PMD_DISCONNECTED 1026 +/// An invalid value was given +#define PMD_INVALID_VALUE 1027 + +/// Program error +#define PMD_LOGIC_ERROR 2048 +/// Handle not known (internal error) +#define PMD_UNKNOWN_HANDLE 2049 +/// Requested functionality not implemented +#define PMD_NOT_IMPLEMENTED 2050 +/// Index or value out of range +#define PMD_OUT_OF_BOUNDS 2051 + +/// Could not get resource +#define PMD_RESOURCE_ERROR 4096 +/// Could not open file +#define PMD_FILE_NOT_FOUND 4097 +/// Could not connect to or open the data source +#define PMD_COULD_NOT_OPEN 4098 +/// Could not retrieve the requested data +#define PMD_DATA_NOT_FOUND 4099 +/// There is no more data left +#define PMD_END_OF_DATA 4100 + +// DEPRECATED +#ifndef PMD_NO_DEPRECATED +#define PMD_COULD_NOT_CONNECT 4098 +#endif + +/// @} + +// Limits + +// Versions + +/// Version 1.0.0 of the plugin interface +#define PMD_INTERFACE_VERSION_1_0_0 0x00010000 +/// Version 1.1.0 of the plugin interface +#define PMD_INTERFACE_VERSION_1_1_0 0x00010100 +/// Version 1.1.1 of the plugin interface +#define PMD_INTERFACE_VERSION_1_1_1 0x00010101 +/// Version 1.2.0 of the plugin interface +#define PMD_INTERFACE_VERSION_1_2_0 0x00010200 +/// Version 1.2.1 of the plugin interface +#define PMD_INTERFACE_VERSION_1_2_1 0x00010201 +/// Version 1.3.0 of the plugin interface +#define PMD_INTERFACE_VERSION_1_3_0 0x00010300 +/// The current version of the plugin interface +#define PMD_CURRENT_INTERFACE_VERSION PMD_INTERFACE_VERSION_1_3_0 + +// Helper functions + +BEGIN_EXTERN_C + +/// Generate a new unique ID +unsigned pmdNewGUID (); + +struct PMDDataDescription; +/// Convert byte order of a PMDDataDescription structure. +void pmdHelperConvertDDByteOrder (struct PMDDataDescription * dd); + +END_EXTERN_C + +/// @} + +#endif diff --git a/include/pmd/pose/history.h b/include/pmd/pose/history.h new file mode 100644 index 0000000..c54e33d --- /dev/null +++ b/include/pmd/pose/history.h @@ -0,0 +1,28 @@ +#pragma once + +#include + +struct Frame { + CvMat *trn; + CvMat *rot; + IplImage *img; + CvPoint **status; + CvPoint3D32f **pts; + CvSize sz; + double alignError; +}; + +Frame *allocFrame3DData(CvSize pmdSz); +void fillFrame(Frame *f, IplImage *img, CvSize pmdSz, CvPoint3D32f **pts, CvPoint **status + , CvMat *rot, CvMat *trn, double alignError); +void releaseFrame(Frame **f); + +struct History { + Frame *frame; + History *prev; +}; + +History *createHistory(); +History *addFrame(History *h, Frame *f); +void releaseTail(History *h); +void checkHistoryLen(History *h, int maxLen); diff --git a/include/pmd/pose/motion3-horn.h b/include/pmd/pose/motion3-horn.h new file mode 100644 index 0000000..214e207 --- /dev/null +++ b/include/pmd/pose/motion3-horn.h @@ -0,0 +1,5 @@ +#include + +// Direct 3<->3 points estimation. rot and trn is out parameters (should be initialized before). +void estimatePose3D(CvPoint3D32f *prev, CvPoint3D32f *curr, CvMat *rot, CvMat *trn); + diff --git a/include/scanio/old/scan_io.h b/include/scanio/old/scan_io.h new file mode 100644 index 0000000..340a647 --- /dev/null +++ b/include/scanio/old/scan_io.h @@ -0,0 +1,63 @@ +/** + * @file + * @brief IO of a 3D scan + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SCAN_IO_H__ +#define __SCAN_IO_H__ + +#include +using std::string; +#include +using std::vector; + +#include "point.h" + +/** + * @brief IO of a 3D scan + * + * This class needs to be instantiated by a class loading + * 3D scans from different file formats. + */ +class ScanIO { +public: + /** + * Default constructor + */ + ScanIO() {} + /** + * Destructor + */ + virtual ~ScanIO() {} + + /** + * Reads specified scans from given directory. + * + * Scan poses will NOT be initialized after a call + * to this function. + * + * This function is pure virtual. The actual functions + * for loading a 3D scan are called scan_io_* + * + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param dir The directory from which to read + * @param maxDist Reads only Points up to this Distance + * @param minDist Reads only Points from this Distance + * @param euler Initital pose estimates (will not be applied to the points + * @param ptss Vector containing the read points + */ + virtual int readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss) = 0; +}; + +// Since the shared object files are loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/include/scanio/old/scan_io_ais.h b/include/scanio/old/scan_io_ais.h new file mode 100644 index 0000000..54b6f44 --- /dev/null +++ b/include/scanio/old/scan_io_ais.h @@ -0,0 +1,36 @@ +/** + * @file + * @brief IO of a 3D scan in ais file format + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SCAN_IO_AIS_H__ +#define __SCAN_IO_AIS_H__ + +#include +using std::string; +#include +using std::vector; + +#include "slam6d/scan_io.h" + +/** + * @brief 3D scan loader for AIS scans + * + * The compiled class is available as shared object file + */ +class ScanIO_ais : public ScanIO { +public: + virtual int readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss); +}; + +// Since this shared object file is loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/include/scanio/old/scan_io_asc.h b/include/scanio/old/scan_io_asc.h new file mode 100644 index 0000000..a944341 --- /dev/null +++ b/include/scanio/old/scan_io_asc.h @@ -0,0 +1,36 @@ +/** + * @file + * @brief IO of 3D scans in ASC file format + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SCAN_IO_ASC_H__ +#define __SCAN_IO_ASC_H__ + +#include +using std::string; +#include +using std::vector; + +#include "scan_io.h" + +/** + * @brief 3D scan loader for ASC file format (Riegl scans) + * + * The compiled class is available as shared object file + */ +class ScanIO_asc : public ScanIO { +public: + virtual int readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss); +}; + +// Since this shared object file is loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/include/scanio/old/scan_io_cad.h b/include/scanio/old/scan_io_cad.h new file mode 100644 index 0000000..4051ae6 --- /dev/null +++ b/include/scanio/old/scan_io_cad.h @@ -0,0 +1,227 @@ +/** + * @file + * @brief IO of a 3D scan for leica ASCII file format with relectance values. + * @author Sven Albrecht. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SCAN_IO_CAD_H__ +#define __SCAN_IO_CAD_H__ + +#include +using std::string; +#include +using std::vector; +#include +#include +#include +#include + +#include "scan_io.h" + +#include +#include + +namespace po = boost::program_options; // to reduce typing effort +namespace fs = boost::filesystem; // to reduce typing effort + +/** + * @brief 3D scan loader for 1 UOS Scan and multiple .stl files + * + * The compiled class is available as shared object file + */ +class ScanIO_CAD : public ScanIO { + + // default values for parameters / flags / etc + // sampling parameters + static constexpr bool STD_STORE_CAD = false; // don't save sampling + static constexpr float STD_SAMPLE_DIST = 0.5f; // point distance of 0.5 (cm) + static constexpr bool STD_RND_SAMP = true; // use random sampling + // coordinate order + static constexpr unsigned int STD_X_INDEX = 0; // cad x coord = uos x coord + static constexpr unsigned int STD_Y_INDEX = 2; // cad y coord = uos z coord + static constexpr unsigned int STD_Z_INDEX = 1; // cad z coord = uos y coord + // scale factors + static constexpr float STD_SCALE_FACTOR = 0.1f; // general scale factor + static constexpr float STD_X_SCALE = 0.1f; // scale for x axis + static constexpr float STD_Y_SCALE = 0.1f; // scale for y axis + static constexpr float STD_Z_SCALE = 0.1f; // scale for z axis + static constexpr bool STD_COMBINE_SCALES = false; // combine scale factors? + static constexpr bool STD_INVERT_AXIS = false; // default inversion for axes + + +public: + + /** + * @brief Default constructor to initialize the member varibales with + * their default values. + */ + ScanIO_CAD(void); + + virtual int readScans(int start, int end, string &dir, int maxDist, + int minDist, double *euler, vector &ptss); + +private: + + + /** + * @brief method to read a scan in regular UOS .3d file format + * + * @param scan_in the (opened) filestream for the .3d file + * @param maxDist the maximal distance threshold from the origin for points + * @param minDist the minimal distance threshold from the origin for points + * @param points the vector containing the read scan points + * + */ + void read3DScan (std::ifstream &scan_in, int maxDist, int minDist, vector &points); + + /** + * @brief function to create a surface sampling from a given .stl file + * + * @param scan_in the (opened) filestream for the .stl file + * @param points the vector containing the resultant surface sample + * @return true if the surface sample could be created, false otherwise + */ + bool createSamplingFromSTL (std::ifstream &scan_in, vector &points); + /** + * @brief Function to check if a opened .stl file contains binary or + * ASCII data. + * + * @param scan_in reference to the (opened) filestream for the .stl file + * + * @return true if the filestream contains an ASCII encoded .stl file, + * false otherwise + */ + bool hasASCIIHeader (std::ifstream &scan_in); + + /** + * @brief Function to parse an ASCII encoded .stl file and create a + * 3D surface sampling of it. + * + * @param scan_in the (opened) filestream containint the .stl information + * @param points used to store the 3D points of the surface sampling + * @return true if the file could be parsed successfully, false otherwise + */ + bool parseASCII (std::ifstream &scan_in, vector &points); + + /** + * @brief Function to parse an binary encoded .stl file and create a + * 3D surface sampling of it. + * + * @param scan_in the (opened) filestream containint the .stl information + * @param points used to store the 3D points of the surface sampling + * @return true if the file could be parsed successfully, false otherwise + */ + bool parseBinary (std::ifstream &scan_in, vector &points); + + /** + * @brief Method to create a point sampling of a face (i.e. triangle). + * + * @param vertex1 the first corner of the triangle + * @param vertex2 the second corner of the triangle + * @param vertex3 the third corner of the triangle + * @param points reference to the Point vector, where the sample points + * are stored + */ + void createSampingForFace (float* vertex1, float* vertex2, + float* vertex3, vector &points); + + /** + * @brief Method to store the point sampling to the UOS .3d file format. + * The resultant .3d file will have the same name as the original .stl + * file apart from the file extension. + * + * @param filename the name of the .stl file + * @param points a reference to the vector containing the point + * information to be stored + */ + void storeSamplingTo3D (std::string filename, vector &points); + + /** + * @brief Computes the dot product of two 3D vectors given as float*. + * + * @param vec1 the first 3D vector as a float array + * @param vec2 the second 3D vector as a float array + * + * @return the dot product of the two vectors + */ + static float dotProd (const float* vec1, const float* vec2); + + /** + * @brief Method to parse a config file. + * The config file needs to have INI file similar syntax. If a parsing + * error occurs a help with all available options will be printed to the + * console and the program will terminate without matching + * + * @param config A filestream to the config file + */ + void parseConfig (std::ifstream &config); + + /** + * @brief Utility method to convert the data of a point in CAD coordinates + * to the slam coordinate system. + * This can involve the change of coordinate order, axis direction and + * scaling (of all or single coordinates), depending on the configuration + * passed via config file. + * @param raw_data A 3D point read from the CAD file as a float array + * @param vertex The resulting 3D point after all specified + * operations have taken place + */ + void copyRawData2Vertex (float *raw_data, float *vertex); + + // member variables to hold the indices used in data conversion + unsigned int x_index; + unsigned int y_index; + unsigned int z_index; + + // bools to determine if an axis should be inverted during data conversion + bool invert_x; + bool invert_y; + bool invert_z; + + // scale factors (global and individual) for data conversion + float scale_factor; + float x_scale; + float y_scale; + float z_scale; + + // determines if individual scale factors should be used + bool individual_scale; + // determines if individual scaling should be combined with + // the global scale factor + bool combine_scales; + + // determines if random sampling should be used for surface sampling + bool random_sampling; + + // determines if the sampled CAD model is stored as a .3d file + bool store_cad; + // sets the distance between sample points (determines sample density) + float sample_point_dist; + + // option description for easier parsing of config + po::options_description _op_descr; + po::variables_map _vmap; + + std::vector _stl_files; + size_t _stl_files_pos; + + /** + * @brief Method to set up the option description. + * All allowed parameters with their default values should be + * initialized here. + */ + void setUpOptionDescription (void); + + void parseDirForAllSTL (std::string &directory_name); + + bool getNextSTLFromDir (fs::path &stl_file); +}; + +// Since this shared object file is loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/include/scanio/old/scan_io_front.h b/include/scanio/old/scan_io_front.h new file mode 100644 index 0000000..03661ae --- /dev/null +++ b/include/scanio/old/scan_io_front.h @@ -0,0 +1,36 @@ +/** + * @file + * @brief IO of a 3D scan in front file format + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SCAN_IO_FRONT_H__ +#define __SCAN_IO_FRONT_H__ + +#include +using std::string; +#include +using std::vector; + +#include "scan_io.h" + +/** + * @brief 3D scan loader for UOS scans + * + * The compiled class is available as shared object file + */ +class ScanIO_front : public ScanIO { +public: + virtual int readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss); +}; + +// Since this shared object file is loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/include/scanio/old/scan_io_iais.h b/include/scanio/old/scan_io_iais.h new file mode 100644 index 0000000..5c4ac3b --- /dev/null +++ b/include/scanio/old/scan_io_iais.h @@ -0,0 +1,30 @@ +/** + * @file + * @brief IO of a 3D scan + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SCAN_IO_IAIS_H__ +#define __SCAN_IO_IAIS_H__ + +#include +using std::string; +#include +using std::vector; + +#include "scan_io.h" + +/** + * @brief 3D scan representation + */ +class ScanIO_iais : public ScanIO { +public: + virtual int readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss); +}; + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/include/scanio/old/scan_io_ifp.h b/include/scanio/old/scan_io_ifp.h new file mode 100644 index 0000000..2ed8875 --- /dev/null +++ b/include/scanio/old/scan_io_ifp.h @@ -0,0 +1,36 @@ +/** + * @file + * @brief IO of a 3D scan in IFP format + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SCAN_IO_IFP_H__ +#define __SCAN_IO_IFP_H__ + +#include +using std::string; +#include +using std::vector; + +#include "scan_io.h" + +/** + * @brief 3D scan loader for IFP (Stuttgart) scans + * + * The compiled class is available as shared object file + */ +class ScanIO_ifp : public ScanIO { +public: + virtual int readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss); +}; + +// Since this shared object file is loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/include/scanio/old/scan_io_ks.h b/include/scanio/old/scan_io_ks.h new file mode 100644 index 0000000..12e5ff2 --- /dev/null +++ b/include/scanio/old/scan_io_ks.h @@ -0,0 +1,36 @@ +/** + * @file + * @brief IO of a 3D scan in ks file format + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SCAN_IO_KS_H__ +#define __SCAN_IO_KS_H__ + +#include +using std::string; +#include +using std::vector; + +#include "scan_io.h" + +/** + * @brief 3D scan loader for KS scans + * + * The compiled class is available as shared object file + */ +class ScanIO_ks : public ScanIO { +public: + virtual int readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss); +}; + +// Since this shared object file is loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/include/scanio/old/scan_io_ks_rgb.h b/include/scanio/old/scan_io_ks_rgb.h new file mode 100644 index 0000000..7b22b11 --- /dev/null +++ b/include/scanio/old/scan_io_ks_rgb.h @@ -0,0 +1,36 @@ +/** + * @file + * @brief IO of a 3D scan in ks file format + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SCAN_IO_KS_RGB_H__ +#define __SCAN_IO_KS_RGB_H__ + +#include +using std::string; +#include +using std::vector; + +#include "scan_io.h" + +/** + * @brief 3D scan loader for KS RGB scans + * + * The compiled class is available as shared object file + */ +class ScanIO_ks_rgb : public ScanIO { +public: + virtual int readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss); +}; + +// Since this shared object file is loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/include/scanio/old/scan_io_leica_txt.h b/include/scanio/old/scan_io_leica_txt.h new file mode 100644 index 0000000..3ec7708 --- /dev/null +++ b/include/scanio/old/scan_io_leica_txt.h @@ -0,0 +1,35 @@ +/** + * @file + * @brief IO of a 3D scan for leica ASCII file format with relectance values. + * @author Sven Albrecht. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SCAN_IO_LEICA_H__ +#define __SCAN_IO_LEICA_H__ + +#include +using std::string; +#include +using std::vector; + +#include "scan_io.h" + +/** + * @brief 3D scan loader for leica ASCII + reflectance scans + * + * The compiled class is available as shared object file + */ +class ScanIO_leica_txt : public ScanIO { +public: + virtual int readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss); +}; + +// Since this shared object file is loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/include/scanio/old/scan_io_oct.h b/include/scanio/old/scan_io_oct.h new file mode 100644 index 0000000..c167f20 --- /dev/null +++ b/include/scanio/old/scan_io_oct.h @@ -0,0 +1,35 @@ +/** + * @file + * @brief IO of a 3D scan in oct-file format + * @author Jan Elsberg. Automation Group, Jacobs University Bremen gGmbH, Germany. + */ + +#ifndef __SCAN_IO_OCT_H__ +#define __SCAN_IO_OCT_H__ + +#include +using std::string; +#include +using std::vector; + +#include "scan_io.h" + +/** + * @brief 3D scan loader for from binary octree files + * + * The compiled class is available as shared object file + */ +class ScanIO_oct : public ScanIO { +public: + virtual int readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss); +}; + +// Since this shared object file is loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/include/scanio/old/scan_io_old.h b/include/scanio/old/scan_io_old.h new file mode 100644 index 0000000..34caa70 --- /dev/null +++ b/include/scanio/old/scan_io_old.h @@ -0,0 +1,37 @@ +/** + * @file + * @brief IO of a 3D scan in Kurt3D file format + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SCAN_IO_OLD_H__ +#define __SCAN_IO_OLD_H__ + +#include +using std::string; +#include +using std::vector; + +#include "scan_io.h" + +/** + * @brief 3D scan loader for Kurt3D scans + * + * The compiled class is available as shared object file + */ +class ScanIO_old : public ScanIO { +public: + virtual int readScans(int start, int end, string &dir, + int maxDist, int mindist, + double *euler, vector &ptss); +}; + +// Since this shared object file is loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/include/scanio/old/scan_io_pci.h b/include/scanio/old/scan_io_pci.h new file mode 100644 index 0000000..88c130f --- /dev/null +++ b/include/scanio/old/scan_io_pci.h @@ -0,0 +1,36 @@ +/** + * @file + * @brief IO of a 3D scan in uos file format + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SCAN_IO_PCI_H__ +#define __SCAN_IO_PCI_H__ + +#include +using std::string; +#include +using std::vector; + +#include "scan_io.h" + +/** + * @brief 3D scan loader for UOS scans + * + * The compiled class is available as shared object file + */ +class ScanIO_pci : public ScanIO { +public: + virtual int readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss); +}; + +// Since this shared object file is loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/include/scanio/old/scan_io_pcl.h b/include/scanio/old/scan_io_pcl.h new file mode 100644 index 0000000..5cb05af --- /dev/null +++ b/include/scanio/old/scan_io_pcl.h @@ -0,0 +1,36 @@ +/** + * @file + * @brief IO of a 3D scan in uos file format + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SCAN_IO_PCL_H__ +#define __SCAN_IO_PCL_H__ + +#include +using std::string; +#include +using std::vector; + +#include "scan_io.h" + +/** + * @brief 3D scan loader for UOS scans + * + * The compiled class is available as shared object file + */ +class ScanIO_pcl : public ScanIO { +public: + virtual int readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss); +}; + +// Since this shared object file is loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/include/scanio/old/scan_io_ply.h b/include/scanio/old/scan_io_ply.h new file mode 100644 index 0000000..3357521 --- /dev/null +++ b/include/scanio/old/scan_io_ply.h @@ -0,0 +1,36 @@ +/** + * @file + * @brief IO of a 3D scan in PLY format + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SCAN_IO_PLY_H__ +#define __SCAN_IO_PLY_H__ + +#include +using std::string; +#include +using std::vector; + +#include "scan_io.h" + +/** + * @brief 3D scan loader for PLY scans + * + * The compiled class is available as shared object file + */ +class ScanIO_ply : public ScanIO { +public: + virtual int readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss); +}; + +// Since this shared object file is loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/include/scanio/old/scan_io_riegl_bin.h b/include/scanio/old/scan_io_riegl_bin.h new file mode 100644 index 0000000..9508a98 --- /dev/null +++ b/include/scanio/old/scan_io_riegl_bin.h @@ -0,0 +1,36 @@ +/** + * @file + * @brief IO of 3D scans in Riegl file format + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SCAN_IO_RIEGL_H__ +#define __SCAN_IO_RIEGL_H__ + +#include +using std::string; +#include +using std::vector; + +#include "scan_io.h" + +/** + * @brief 3D scan loader for Riegl scans + * + * The compiled class is available as shared object file + */ +class ScanIO_riegl_bin : public ScanIO { +public: + virtual int readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss); +}; + +// Since this shared object file is loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/include/scanio/old/scan_io_riegl_project.h b/include/scanio/old/scan_io_riegl_project.h new file mode 100644 index 0000000..c399b6d --- /dev/null +++ b/include/scanio/old/scan_io_riegl_project.h @@ -0,0 +1,36 @@ +/** + * @file + * @brief IO of 3D scans in Riegl file format + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SCAN_IO_RIEGL_PROJECT_H +#define __SCAN_IO_RIEGL_PROJECT_H + +#include +using std::string; +#include +using std::vector; + +#include "scan_io.h" + +/** + * @brief 3D scan loader for Riegl scans in the binary rxp format + * + * The compiled class is available as shared object file + */ +class ScanIO_riegl_project : public ScanIO { +public: + virtual int readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss); +}; + +// Since this shared object file is loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/include/scanio/old/scan_io_riegl_rgb.h b/include/scanio/old/scan_io_riegl_rgb.h new file mode 100644 index 0000000..7b7dd2a --- /dev/null +++ b/include/scanio/old/scan_io_riegl_rgb.h @@ -0,0 +1,36 @@ +/** + * @file + * @brief IO of 3D scans in Riegl file format + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SCAN_IO_RIEGL_RGB_H__ +#define __SCAN_IO_RIEGL_RGB_H__ + +#include +using std::string; +#include +using std::vector; + +#include "scan_io.h" + +/** + * @brief 3D scan loader for Riegl scans + * + * The compiled class is available as shared object file + */ +class ScanIO_riegl_rgb : public ScanIO { +public: + virtual int readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss); +}; + +// Since this shared object file is loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/include/scanio/old/scan_io_riegl_txt.h b/include/scanio/old/scan_io_riegl_txt.h new file mode 100644 index 0000000..e7e5367 --- /dev/null +++ b/include/scanio/old/scan_io_riegl_txt.h @@ -0,0 +1,36 @@ +/** + * @file + * @brief IO of 3D scans in Riegl file format + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SCAN_IO_RIEGL_H__ +#define __SCAN_IO_RIEGL_H__ + +#include +using std::string; +#include +using std::vector; + +#include "scan_io.h" + +/** + * @brief 3D scan loader for Riegl scans + * + * The compiled class is available as shared object file + */ +class ScanIO_riegl_txt : public ScanIO { +public: + virtual int readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss); +}; + +// Since this shared object file is loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/include/scanio/old/scan_io_rts.h b/include/scanio/old/scan_io_rts.h new file mode 100644 index 0000000..ddf0be6 --- /dev/null +++ b/include/scanio/old/scan_io_rts.h @@ -0,0 +1,31 @@ +/** + * @file + * @brief IO of a 3D scan + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SCAN_IO_RTS_H__ +#define __SCAN_IO_RTS_H__ + +#include +using std::string; +#include +using std::vector; + +#include "scan_io.h" + +/** + * @brief 3D scan representation + */ +class ScanIO_rts : public ScanIO { +public: + virtual int readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss); +}; + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/include/scanio/old/scan_io_rts_map.h b/include/scanio/old/scan_io_rts_map.h new file mode 100644 index 0000000..966c014 --- /dev/null +++ b/include/scanio/old/scan_io_rts_map.h @@ -0,0 +1,37 @@ +/** + * @file + * @brief IO of 3D scan from Uni Hannover + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SCAN_IO_RTS_MAP_H__ +#define __SCAN_IO_RTS_MAP_H__ + +#include +using std::string; +#include +using std::vector; + +#include "scan_io.h" + +/** + * @brief 3D scan loader for RTS scans. The first scan + * is a point cloud calculated from a 2D line map. + * + * The compiled class is available as shared object file + */ +class ScanIO_rts_map : public ScanIO { +public: + virtual int readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss); +}; + +// Since this shared object file is loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/include/scanio/old/scan_io_rxp.h b/include/scanio/old/scan_io_rxp.h new file mode 100644 index 0000000..18eae6d --- /dev/null +++ b/include/scanio/old/scan_io_rxp.h @@ -0,0 +1,85 @@ +/** + * @file + * @brief IO of 3D scans in Riegl file format + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SCAN_IO_RXP_H__ +#define __SCAN_IO_RXP_H__ + +#include +using std::string; +#include +using std::vector; + +#include "scan_io.h" +#include "riegl/scanlib.hpp" +using namespace scanlib; +using namespace std; +using namespace std::tr1; + +class importer; + +/** + * @brief 3D scan loader for Riegl scans in the binary rxp format + * + * The compiled class is available as shared object file + */ +class ScanIO_rxp : public ScanIO { + std::tr1::shared_ptr rc; + decoder_rxpmarker *dec; + importer *imp; +public: + ScanIO_rxp() : dec(0), imp(0) {} + virtual int readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss); +}; + + +/** + * The importer class is the interface to riegl's pointcloud class, and will convert their point struct to slam6d's point class. + * + * Code adapted from rivlib/example/pointcloudcpp.cpp available from http://www.riegl.com . + */ +class importer + : public pointcloud +{ + vector *o; + +public: + importer(vector *o_, int maxDist, int minDist, int _s = 0 ) + : pointcloud(false) // set this to true if you need gps aligned timing + , o(o_), start(_s) + { + maxD = maxDist; + minD = minDist; + currentscan = 0; + } + + int getCurrentScan() {return currentscan;}; + +protected: + int start; + int maxD; + int minD; + int currentscan; + // overridden from pointcloud class + void on_echo_transformed(echo_type echo); + + void on_frame_stop(const frame_stop& arg) { + basic_packets::on_frame_stop(arg); + currentscan++; + } + + +}; + +// Since this shared object file is loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/include/scanio/old/scan_io_stl.h b/include/scanio/old/scan_io_stl.h new file mode 100644 index 0000000..f78c423 --- /dev/null +++ b/include/scanio/old/scan_io_stl.h @@ -0,0 +1,36 @@ +/** + * @file + * @brief IO of a 3D scan in ks file format + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SCAN_IO_STL_H__ +#define __SCAN_IO_STL_H__ + +#include +using std::string; +#include +using std::vector; + +#include "scan_io.h" + +/** + * @brief 3D scan loader for STL scans + * + * The compiled class is available as shared object file + */ +class ScanIO_stl : public ScanIO { +public: + virtual int readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss); +}; + +// Since this shared object file is loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/include/scanio/old/scan_io_txyzr.h b/include/scanio/old/scan_io_txyzr.h new file mode 100644 index 0000000..3ff3364 --- /dev/null +++ b/include/scanio/old/scan_io_txyzr.h @@ -0,0 +1,36 @@ +/** + * @file + * @brief IO of a 3D scan in uos + reflectance file format + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SCAN_IO_TXYZR_H__ +#define __SCAN_IO_TXYZR_H__ + +#include +using std::string; +#include +using std::vector; + +#include "scan_io.h" + +/** + * @brief 3D scan loader for UOS + time/reflectance scans + * + * The compiled class is available as shared object file + */ +class ScanIO_txyzr : public ScanIO { +public: + virtual int readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss); +}; + +// Since this shared object file is loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/include/scanio/old/scan_io_uos.h b/include/scanio/old/scan_io_uos.h new file mode 100644 index 0000000..7ae3751 --- /dev/null +++ b/include/scanio/old/scan_io_uos.h @@ -0,0 +1,36 @@ +/** + * @file + * @brief IO of a 3D scan in uos file format + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SCAN_IO_UOS_H__ +#define __SCAN_IO_UOS_H__ + +#include +using std::string; +#include +using std::vector; + +#include "scan_io.h" + +/** + * @brief 3D scan loader for UOS scans + * + * The compiled class is available as shared object file + */ +class ScanIO_uos : public ScanIO { +public: + virtual int readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss); +}; + +// Since this shared object file is loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/include/scanio/old/scan_io_uos_frames.h b/include/scanio/old/scan_io_uos_frames.h new file mode 100644 index 0000000..c7920d4 --- /dev/null +++ b/include/scanio/old/scan_io_uos_frames.h @@ -0,0 +1,36 @@ +/** + * @file + * @brief IO of a 3D scan in uos file format + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SCAN_IO_UOS_FRAMES_H__ +#define __SCAN_IO_UOS_FRAMES_H__ + +#include +using std::string; +#include +using std::vector; + +#include "scan_io.h" + +/** + * @brief 3D scan loader for UOS scans + * + * The compiled class is available as shared object file + */ +class ScanIO_uos_frames : public ScanIO { +public: + virtual int readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss); +}; + +// Since this shared object file is loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/include/scanio/old/scan_io_uos_map.h b/include/scanio/old/scan_io_uos_map.h new file mode 100644 index 0000000..73f4b3a --- /dev/null +++ b/include/scanio/old/scan_io_uos_map.h @@ -0,0 +1,36 @@ +/** + * @file + * @brief IO of a 3D scan in uos file format + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SCAN_IO_UOS_MAP_H__ +#define __SCAN_IO_UOS_MAP_H__ + +#include +using std::string; +#include +using std::vector; + +#include "scan_io.h" + +/** + * @brief 3D scan loader for UOS scans + * + * The compiled class is available as shared object file + */ +class ScanIO_uos_map : public ScanIO { +public: + virtual int readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss); +}; + +// Since this shared object file is loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/include/scanio/old/scan_io_uos_map_frames.h b/include/scanio/old/scan_io_uos_map_frames.h new file mode 100644 index 0000000..065c473 --- /dev/null +++ b/include/scanio/old/scan_io_uos_map_frames.h @@ -0,0 +1,36 @@ +/** + * @file + * @brief IO of a 3D scan in uos file format + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SCAN_IO_UOS_MAP_FRAMES_H__ +#define __SCAN_IO_UOS_MAP_FRAMES_H__ + +#include +using std::string; +#include +using std::vector; + +#include "scan_io.h" + +/** + * @brief 3D scan loader for UOS scans + * + * The compiled class is available as shared object file + */ +class ScanIO_uos_map_frames : public ScanIO { +public: + virtual int readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss); +}; + +// Since this shared object file is loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/include/scanio/old/scan_io_uos_rgb.h b/include/scanio/old/scan_io_uos_rgb.h new file mode 100644 index 0000000..90de1f1 --- /dev/null +++ b/include/scanio/old/scan_io_uos_rgb.h @@ -0,0 +1,36 @@ +/** + * @file + * @brief IO of a 3D scan in uos file format + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SCAN_IO_UOS_RGB_H__ +#define __SCAN_IO_UOS_RGB_H__ + +#include +using std::string; +#include +using std::vector; + +#include "slam6d/scan_io.h" + +/** + * @brief 3D scan loader for UOS scans with color information + * + * The compiled class is available as shared object file + */ +class ScanIO_uos_rgb : public ScanIO { +public: + virtual int readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss); +}; + +// Since this shared object file is loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/include/scanio/old/scan_io_velodyne.h b/include/scanio/old/scan_io_velodyne.h new file mode 100644 index 0000000..65ff4c4 --- /dev/null +++ b/include/scanio/old/scan_io_velodyne.h @@ -0,0 +1,35 @@ +/** + * @file + * @brief IO of a 3D scan in velodyne raw file format + * @author Liwei. Computer School of Wuhan University, China. + */ + +#ifndef __SCAN_IO_VELODYNE_H__ +#define __SCAN_IO_VELODYNE_H__ + +#include +using std::string; +#include +using std::vector; + +#include "scan_io.h" + +/** + * @brief 3D scan loader for VELODYNE scans + * + * The compiled class is available as shared object file + */ +class ScanIO_velodyne : public ScanIO { +public: + virtual int readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss); +}; + +// Since this shared object file is loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/include/scanio/old/scan_io_velodyne_frames.h b/include/scanio/old/scan_io_velodyne_frames.h new file mode 100755 index 0000000..54ffc18 --- /dev/null +++ b/include/scanio/old/scan_io_velodyne_frames.h @@ -0,0 +1,35 @@ +/** + * @file + * @brief IO of a 3D scan in velodyne raw file format + * @author Liwei. Computer School of Wuhan University, China. + */ + +#ifndef __SCAN_IO_VELODYNE_FRAME_H__ +#define __SCAN_IO_VELODYNE_FRAME_H__ + +#include +using std::string; +#include +using std::vector; + +#include "scan_io.h" + +/** + * @brief 3D scan loader for VELODYNE scans + * + * The compiled class is available as shared object file + */ +class ScanIO_velodyne_frame : public ScanIO { +public: + virtual int readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss); +}; + +// Since this shared object file is loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/include/scanio/old/scan_io_wrl.h b/include/scanio/old/scan_io_wrl.h new file mode 100644 index 0000000..08276c9 --- /dev/null +++ b/include/scanio/old/scan_io_wrl.h @@ -0,0 +1,36 @@ +/** + * @file + * @brief IO of a 3D scan in WRL format + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SCAN_IO_WRL_H__ +#define __SCAN_IO_WRL_H__ + +#include +using std::string; +#include +using std::vector; + +#include "scan_io.h" + +/** + * @brief 3D scan loader for PLY scans + * + * The compiled class is available as shared object file + */ +class ScanIO_wrl : public ScanIO { +public: + virtual int readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss); +}; + +// Since this shared object file is loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/include/scanio/old/scan_io_x3d.h b/include/scanio/old/scan_io_x3d.h new file mode 100644 index 0000000..4ea9a40 --- /dev/null +++ b/include/scanio/old/scan_io_x3d.h @@ -0,0 +1,37 @@ +/** + * @file + * @brief IO of a 3D scan in .x3d file format + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SCAN_IO_X3D_H__ +#define __SCAN_IO_X3D_H__ + +#include +using std::string; +#include +using std::vector; + +#include "scan_io.h" + +/** + * @brief 3D scan loader for xml files in x3d format + * + * The compiled class is available as shared object file + */ +class ScanIO_x3d : public ScanIO { +public: + virtual int readScans(int start, int end, string &dir, + int maxDist, int mindist, + double *euler, vector &ptss); +}; + +// Since this shared object file is loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/include/scanio/old/scan_io_xyz.h b/include/scanio/old/scan_io_xyz.h new file mode 100644 index 0000000..312bf8c --- /dev/null +++ b/include/scanio/old/scan_io_xyz.h @@ -0,0 +1,36 @@ +/** + * @file + * @brief IO of 3D scans in XYZ file format (i.e., pure 3D data points only) + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SCAN_IO_XYZ_H__ +#define __SCAN_IO_XYZ_H__ + +#include +using std::string; +#include +using std::vector; + +#include "scan_io.h" + +/** + * @brief 3D scan loader for XYZ scans (i.e., pure 3D data points only) + * + * The compiled class is available as shared object file + */ +class ScanIO_xyz : public ScanIO { +public: + virtual int readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss); +}; + +// Since this shared object file is loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/include/scanio/old/scan_io_xyz_rgb.h b/include/scanio/old/scan_io_xyz_rgb.h new file mode 100644 index 0000000..992bf88 --- /dev/null +++ b/include/scanio/old/scan_io_xyz_rgb.h @@ -0,0 +1,36 @@ +/** + * @file + * @brief IO of 3D scans in XYZ file format (i.e., pure 3D data points only) + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SCAN_IO_XYZ_RGB_H__ +#define __SCAN_IO_XYZ_RGB_H__ + +#include +using std::string; +#include +using std::vector; + +#include "scan_io.h" + +/** + * @brief 3D scan loader for XYZ scans (i.e., pure 3D data points only) + * + * The compiled class is available as shared object file + */ +class ScanIO_xyz_rgb : public ScanIO { +public: + virtual int readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss); +}; + +// Since this shared object file is loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/include/scanio/old/scan_io_xyzr.h b/include/scanio/old/scan_io_xyzr.h new file mode 100644 index 0000000..804180a --- /dev/null +++ b/include/scanio/old/scan_io_xyzr.h @@ -0,0 +1,36 @@ +/** + * @file + * @brief IO of a 3D scan in uos + reflectance file format + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SCAN_IO_XYZR_H__ +#define __SCAN_IO_XYZR_H__ + +#include +using std::string; +#include +using std::vector; + +#include "scan_io.h" + +/** + * @brief 3D scan loader for UOS + reflectance scans + * + * The compiled class is available as shared object file + */ +class ScanIO_xyzr : public ScanIO { +public: + virtual int readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss); +}; + +// Since this shared object file is loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/include/scanio/old/scan_io_zahn.h b/include/scanio/old/scan_io_zahn.h new file mode 100644 index 0000000..7105159 --- /dev/null +++ b/include/scanio/old/scan_io_zahn.h @@ -0,0 +1,36 @@ +/** + * @file + * @brief IO of a 3D scan for 3D scans of a tooth + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SCAN_IO_ZAHN_H__ +#define __SCAN_IO_ZAHN_H__ + +#include +using std::string; +#include +using std::vector; + +#include "scan_io.h" + +/** + * @brief 3D scan loader for tooth scans + * + * The compiled class is available as shared object file + */ +class ScanIO_zahn : public ScanIO { +public: + virtual int readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss); +}; + +// Since this shared object file is loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/include/scanio/old/scan_io_zuf.h b/include/scanio/old/scan_io_zuf.h new file mode 100644 index 0000000..3411acd --- /dev/null +++ b/include/scanio/old/scan_io_zuf.h @@ -0,0 +1,36 @@ +/** + * @file + * @brief IO of 3D scans in Zoller+Froehlich file format + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SCAN_IO_ZUF_H__ +#define __SCAN_IO_ZUF_H__ + +#include +using std::string; +#include +using std::vector; + +#include "scan_io.h" + +/** + * @brief 3D scan loader for Riegl scans + * + * The compiled class is available as shared object file + */ +class ScanIO_zuf : public ScanIO { +public: + virtual int readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss); +}; + +// Since this shared object file is loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/include/scanio/scan_io.h b/include/scanio/scan_io.h new file mode 100644 index 0000000..1d06b39 --- /dev/null +++ b/include/scanio/scan_io.h @@ -0,0 +1,90 @@ +/** + * @file + * @brief IO of a 3D scan + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Thomas Escher + */ + +#ifndef __SCAN_IO_H__ +#define __SCAN_IO_H__ + +#include "slam6d/io_types.h" +#include "slam6d/pointfilter.h" + +#include +#include +#include +#include + + + +/** + * @brief IO of a 3D scan + * + * This class needs to be instantiated by a class loading + * 3D scans from different file formats. + */ +class ScanIO { +public: + /** + * Read a directory and return all possible scans in the [start,end] interval. + * + * @param dir_path The directory from which to read the scans + * @param start Starting index + * @param end Last index + * @return List of IO-specific identifiers of scans, matching the search + */ + virtual std::list readDirectory(const char* dir_path, unsigned int start, unsigned int end) = 0; + + /** + * Reads the pose from a dedicated pose file or from the scan file. + * + * @param dir_path The directory the scan is contained in + * @param scan_identifier IO-specific identifier for the particular scan + * @param pose Pointer to an existing double[6] array where the pose is saved in + */ + virtual void readPose(const char* dir_path, const char* identifier, double* pose) = 0; + + /** + * Given a scan identifier, load the contents of this particular scan. + * + * @param dir_path The directory the scan is contained in + * @param identifier IO-specific identifier for the particular scan + * @param filter Filter object which each point is tested on by its position + */ + virtual void readScan(const char* dir_path, const char* identifier, PointFilter& filter, std::vector* xyz = 0, std::vector* rgb = 0, std::vector* reflectance = 0, std::vector* amplitude = 0, std::vector* type = 0, std::vector* deviation = 0) = 0; + + /** + * Returns whether this ScanIO can load the requested data from a scan. + * + * @param type data channel request + * @return whether it's supported or not + */ + virtual bool supports(IODataType type) = 0; + + /** + * @brief Global mapping of io_types to single instances of ScanIOs. + * + * If the ScanIO doesn't exist, it will be created and saved in a map. + * Otherwise, the matching ScanIO will be returned. + * + * @param type Key identifying the ScanIO + * @return The newly created or found ScanIO + */ + static ScanIO* getScanIO(IOType iotype); + + //! Delete all ScanIO instances and (lazy) try to unload the libraries. + static void clearScanIOs(); +private: + static std::map m_scanIOs; +}; + +// Since the shared object files are loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/include/scanio/scan_io_ks.h b/include/scanio/scan_io_ks.h new file mode 100644 index 0000000..5316afa --- /dev/null +++ b/include/scanio/scan_io_ks.h @@ -0,0 +1,27 @@ +/** + * @file + * @brief IO of a 3D scan in uos file format + * @author Thomas Escher + */ + +#ifndef __SCAN_IO_KS_H__ +#define __SCAN_IO_KS_H__ + +#include "scan_io.h" + + + +/** + * @brief 3D scan loader for KS scans + * + * The compiled class is available as shared object file + */ +class ScanIO_ks : public ScanIO { +public: + virtual std::list readDirectory(const char* dir_path, unsigned int start, unsigned int end); + virtual void readPose(const char* dir_path, const char* identifier, double* pose); + virtual void readScan(const char* dir_path, const char* identifier, PointFilter& filter, std::vector* xyz, std::vector* rgb, std::vector* reflectance, std::vector* amplitude, std::vector* type, std::vector* deviation); + virtual bool supports(IODataType type); +}; + +#endif diff --git a/include/scanio/scan_io_ks_rgb.h b/include/scanio/scan_io_ks_rgb.h new file mode 100644 index 0000000..8fe69ef --- /dev/null +++ b/include/scanio/scan_io_ks_rgb.h @@ -0,0 +1,27 @@ +/** + * @file + * @brief IO of a 3D scan in uos file format + * @author Thomas Escher + */ + +#ifndef __SCAN_IO_KS_RGB_H__ +#define __SCAN_IO_KS_RGB_H__ + +#include "scan_io.h" + + + +/** + * @brief 3D scan loader for KS RGB scans + * + * The compiled class is available as shared object file + */ +class ScanIO_ks_rgb : public ScanIO { +public: + virtual std::list readDirectory(const char* dir_path, unsigned int start, unsigned int end); + virtual void readPose(const char* dir_path, const char* identifier, double* pose); + virtual void readScan(const char* dir_path, const char* identifier, PointFilter& filter, std::vector* xyz, std::vector* rgb, std::vector* reflectance, std::vector* amplitude, std::vector* type, std::vector* deviation); + virtual bool supports(IODataType type); +}; + +#endif diff --git a/include/scanio/scan_io_riegl_rgb.h b/include/scanio/scan_io_riegl_rgb.h new file mode 100644 index 0000000..4cd5dbd --- /dev/null +++ b/include/scanio/scan_io_riegl_rgb.h @@ -0,0 +1,27 @@ +/** + * @file + * @brief IO of a 3D scan in uos file format + * @author Thomas Escher + */ + +#ifndef __SCAN_IO_RIEGL_RGB_H__ +#define __SCAN_IO_RIEGL_RGB_H__ + +#include "scan_io.h" + + + +/** + * @brief 3D scan loader for Riegl scans + * + * The compiled class is available as shared object file + */ +class ScanIO_riegl_rgb : public ScanIO { +public: + virtual std::list readDirectory(const char* dir_path, unsigned int start, unsigned int end); + virtual void readPose(const char* dir_path, const char* identifier, double* pose); + virtual void readScan(const char* dir_path, const char* identifier, PointFilter& filter, std::vector* xyz, std::vector* rgb, std::vector* reflectance, std::vector* amplitude, std::vector* type, std::vector* deviation); + virtual bool supports(IODataType type); +}; + +#endif diff --git a/include/scanio/scan_io_riegl_txt.h b/include/scanio/scan_io_riegl_txt.h new file mode 100644 index 0000000..6fbe67e --- /dev/null +++ b/include/scanio/scan_io_riegl_txt.h @@ -0,0 +1,27 @@ +/** + * @file + * @brief IO of a 3D scan in uos file format + * @author Thomas Escher + */ + +#ifndef __SCAN_IO_RIEGL_H__ +#define __SCAN_IO_RIEGL_H__ + +#include "scan_io.h" + + + +/** + * @brief 3D scan loader for Riegl scans + * + * The compiled class is available as shared object file + */ +class ScanIO_riegl_txt : public ScanIO { +public: + virtual std::list readDirectory(const char* dir_path, unsigned int start, unsigned int end); + virtual void readPose(const char* dir_path, const char* identifier, double* pose); + virtual void readScan(const char* dir_path, const char* identifier, PointFilter& filter, std::vector* xyz, std::vector* rgb, std::vector* reflectance, std::vector* amplitude, std::vector* type, std::vector* deviation); + virtual bool supports(IODataType type); +}; + +#endif diff --git a/include/scanio/scan_io_rts.h b/include/scanio/scan_io_rts.h new file mode 100644 index 0000000..e64d813 --- /dev/null +++ b/include/scanio/scan_io_rts.h @@ -0,0 +1,30 @@ +/** + * @file + * @brief IO of a 3D scan in rts file format + * @author Thomas Escher + */ + +#ifndef __SCAN_IO_UOS_H__ +#define __SCAN_IO_UOS_H__ + +#include "scan_io.h" + + + +/** + * @brief 3D scan loader for RTS scans + * + * The compiled class is available as shared object file + */ +class ScanIO_rts : public ScanIO { +public: + virtual std::list readDirectory(const char* dir_path, unsigned int start, unsigned int end); + virtual void readPose(const char* dir_path, const char* identifier, double* pose); + virtual void readScan(const char* dir_path, const char* identifier, PointFilter& filter, std::vector* xyz, std::vector* rgb, std::vector* reflectance, std::vector* amplitude, std::vector* type, std::vector* deviation); + virtual bool supports(IODataType type); +private: + std::string cached_dir; + std::vector cached_poses; +}; + +#endif diff --git a/include/scanio/scan_io_rxp.h b/include/scanio/scan_io_rxp.h new file mode 100644 index 0000000..156461f --- /dev/null +++ b/include/scanio/scan_io_rxp.h @@ -0,0 +1,83 @@ +/** + * @file + * @brief IO of a 3D scan in rxp file format + * @author Thomas Escher + */ + +#ifndef __SCAN_IO_RXP_H__ +#define __SCAN_IO_RXP_H__ + +#include "scan_io.h" +#include "slam6d/point.h" + +#include "riegl/scanlib.hpp" +using namespace scanlib; +using namespace std; +using namespace std::tr1; + +class importer; + + + +/** + * @brief 3D scan loader for RXP scans + * + * The compiled class is available as shared object file + */ +class ScanIO_rxp : public ScanIO { +public: + virtual std::list readDirectory(const char* dir_path, unsigned int start, unsigned int end); + virtual void readPose(const char* dir_path, const char* identifier, double* pose); + virtual void readScan(const char* dir_path, const char* identifier, PointFilter& filter, std::vector* xyz, std::vector* rgb, std::vector* reflectance, std::vector* amplitude, std::vector* type, std::vector* deviation); + virtual bool supports(IODataType type); + + ScanIO_rxp() : dec(0), imp(0) {} +private: + std::tr1::shared_ptr rc; + decoder_rxpmarker *dec; + importer *imp; + std::string old_path; +}; + +/** + * The importer class is the interface to riegl's pointcloud class, and will convert their point struct to slam6d's point class. + * + * Code adapted from rivlib/example/pointcloudcpp.cpp available from http://www.riegl.com . + */ +class importer : public scanlib::pointcloud +{ +public: + importer(PointFilter& filter, int start, std::vector* xyz, std::vector* reflectance, std::vector* amplitude, std::vector* type, std::vector* deviation) : + pointcloud(false), // set this to true if you need gps aligned timing + filter(&filter), xyz(xyz), reflectance(reflectance), amplitude(amplitude), type(type), deviation(deviation), + start(start), currentscan(0) + {} + inline int getCurrentScan() { return currentscan; } + inline void set(PointFilter& filter, std::vector* xyz, std::vector* reflectance, std::vector* amplitude, std::vector* type, std::vector* deviation) + { + this->filter = &filter; + this->xyz = xyz; + this->reflectance = reflectance; + this->amplitude = amplitude; + this->type = type; + this->deviation = deviation; + } +protected: + PointFilter* filter; + std::vector *xyz; + std::vector *reflectance; + std::vector *amplitude; + std::vector *type; + std::vector *deviation; + int start; + int currentscan; + // overridden from pointcloud class + void on_echo_transformed(echo_type echo); + + void on_frame_stop(const scanlib::frame_stop& arg) { + scanlib::basic_packets::on_frame_stop(arg); + currentscan++; + } +}; + +#endif diff --git a/include/scanio/scan_io_uos.h b/include/scanio/scan_io_uos.h new file mode 100644 index 0000000..fbb5424 --- /dev/null +++ b/include/scanio/scan_io_uos.h @@ -0,0 +1,27 @@ +/** + * @file + * @brief IO of a 3D scan in uos file format + * @author Thomas Escher + */ + +#ifndef __SCAN_IO_UOS_H__ +#define __SCAN_IO_UOS_H__ + +#include "scan_io.h" + + + +/** + * @brief 3D scan loader for UOS scans + * + * The compiled class is available as shared object file + */ +class ScanIO_uos : public ScanIO { +public: + virtual std::list readDirectory(const char* dir_path, unsigned int start, unsigned int end); + virtual void readPose(const char* dir_path, const char* identifier, double* pose); + virtual void readScan(const char* dir_path, const char* identifier, PointFilter& filter, std::vector* xyz, std::vector* rgb, std::vector* reflectance, std::vector* amplitude, std::vector* type, std::vector* deviation); + virtual bool supports(IODataType type); +}; + +#endif diff --git a/include/scanio/scan_io_uos_rgb.h b/include/scanio/scan_io_uos_rgb.h new file mode 100644 index 0000000..0bb004a --- /dev/null +++ b/include/scanio/scan_io_uos_rgb.h @@ -0,0 +1,27 @@ +/** + * @file + * @brief IO of a 3D scan in uos file format + * @author Thomas Escher + */ + +#ifndef __SCAN_IO_UOS_RGB_H__ +#define __SCAN_IO_UOS_RGB_H__ + +#include "scan_io.h" + + + +/** + * @brief 3D scan loader for UOS scans with color information + * + * The compiled class is available as shared object file + */ +class ScanIO_uos_rgb : public ScanIO { +public: + virtual std::list readDirectory(const char* dir_path, unsigned int start, unsigned int end); + virtual void readPose(const char* dir_path, const char* identifier, double* pose); + virtual void readScan(const char* dir_path, const char* identifier, PointFilter& filter, std::vector* xyz, std::vector* rgb, std::vector* reflectance, std::vector* amplitude, std::vector* type, std::vector* deviation); + virtual bool supports(IODataType type); +}; + +#endif diff --git a/include/scanio/scan_io_velodyne.h b/include/scanio/scan_io_velodyne.h new file mode 100644 index 0000000..3b41b0c --- /dev/null +++ b/include/scanio/scan_io_velodyne.h @@ -0,0 +1,32 @@ +/** + * @file + * @brief IO of a 3D scan in velodyne raw file format + * @author Liwei. Computer School of Wuhan University, China. + */ + +#ifndef __SCAN_IO_VELODYNE_H__ +#define __SCAN_IO_VELODYNE_H__ + +#include +using std::string; +#include +using std::vector; + +#include "scan_io.h" + +/** + * @brief 3D scan loader for VELODYNE scans + * + * The compiled class is available as shared object file + */ +class ScanIO_velodyne : public ScanIO { +public: + virtual std::list readDirectory(const char* dir_path, unsigned int start, unsigned int end); + virtual void readPose(const char* dir_path, const char* identifier, double* pose); + virtual void readScan(const char* dir_path, const char* identifier, PointFilter& filter, std::vector* xyz, std::vector* rgb, std::vector* reflectance, std::vector* amplitude, std::vector* type, std::vector* deviation); + virtual bool supports(IODataType type); + + int fileCounter; +}; + +#endif diff --git a/include/scanserver/cache/accessData.h b/include/scanserver/cache/accessData.h new file mode 100644 index 0000000..5d44f1e --- /dev/null +++ b/include/scanserver/cache/accessData.h @@ -0,0 +1,20 @@ +/** + * @file + * @brief + * + * @author Thomas Escher + */ + +#ifndef ACCESS_DATA_H +#define ACCESS_DATA_H + +/** + * @brief Derivable class to store access informations in. + * + * Obviously a TODO + */ +class AccessData { + +}; + +#endif //ACCESS_DATA_H diff --git a/include/scanserver/cache/cacheDataAccess.h b/include/scanserver/cache/cacheDataAccess.h new file mode 100644 index 0000000..fe73c33 --- /dev/null +++ b/include/scanserver/cache/cacheDataAccess.h @@ -0,0 +1,56 @@ +/** + * @file + * @brief + * + * @author Thomas Escher + */ + +#ifndef CACHE_DATA_ACCESS_H +#define CACHE_DATA_ACCESS_H + +#include "slam6d/data_types.h" + +#include +#include + +// hide the boost namespace and shorten others +namespace +{ + namespace ip = boost::interprocess; +} + + + +/** + * @brief Access object for data in a CacheObject. + * + * This object functions as a reading lock on the data in a CacheObject. While any of these objects exists with a lock on a CacheObject it is guaranteed the CacheManager won't remove it from memory when flushing the cache. + * It is derived from the DataPointer class, which already represents application-specific access operators for this data, and builds the locking functionality on top of it. + * A CacheDataAccess is returned by the accessing function in a CacheObject as a temporary and is constructed by these means (&&-ctor). Size and data pointer will be copied and the reading lock will also be obtained. When all CacheDataAccess instances for a given CacheObject are destroyed (fell out of scope) all read locks are gone and the CacheManager is able to remove its contained data from memory. + */ +class CacheDataAccess : public DataPointer { + class Lock : public PrivateImplementation { + public: + Lock(ip::interprocess_upgradable_mutex& mutex); + // on destruction, the lock has to be released, which comes from m_lock destruction + virtual ~Lock() {} + private: + ip::sharable_lock m_lock; + }; +public: + // CacheDataAccess& operator=(const CacheDataAccess&) = delete; + // CacheDataAccess(const CacheDataAccess&) = delete; + + //! Aquires a lock on the mutex and takes assigned data + CacheDataAccess(ip::interprocess_upgradable_mutex& mutex, unsigned int& size, unsigned char* data); + + CacheDataAccess(CacheDataAccess&& other) : DataPointer(other) {} + + //! Non-locking version + //CacheDataAccess(unsigned int& size, unsigned char* data); + + //! Transfers the lock to this instance and also takes assigned data + //CacheDataAccess(const CacheDataAccess& other); +}; + +#endif //CACHE_DATA_ACCESS_H diff --git a/include/scanserver/cache/cacheHandler.h b/include/scanserver/cache/cacheHandler.h new file mode 100644 index 0000000..76fd133 --- /dev/null +++ b/include/scanserver/cache/cacheHandler.h @@ -0,0 +1,51 @@ +/** + * @file + * @brief + * + * @author Thomas Escher + */ + +#ifndef CACHE_HANDLER_H +#define CACHE_HANDLER_H + +class CacheManager; +class CacheObject; + +/** + * @brief IO handling for CacheObjects to (de)serialize the cached data. + * + * Each CacheObject has to be assigned a CacheHandler to have its contents loaded (e.g. from harddrive) when a cache miss occurs or save it when the CacheManager flushes the cache and removes CacheObjects' contents. + * The load and save functions are virtual and thereby can only be called within the process where they have been created. + * + */ +class CacheHandler { +public: + CacheHandler(CacheObject* object, CacheManager* manager); + virtual ~CacheHandler(); + + /** + * Called by the CacheManager when a CacheObject has to be loaded after a cache miss + * The usual course of action should be to determine the size (and load the data locally if needed), request the referenced CacheObject to be allocated by the CacheManager via allocateCacheObject and have the data written to the obtained memory. + * @return whether the load was successful or no cached resource was assigned/found + * @throw possibly IO/stream/conversion errors in overloaded classes + */ + virtual bool load() = 0; + + /** + * Called by the CacheManager when a CacheObject has to be saved before removal + * The data to be saved it given in the arguments and will be removed by the CacheManager after this function returns. + * @throw possibly IO/stream/conversion errors in overloaded classes + */ + virtual void save(unsigned char* data, unsigned int size) = 0; + + /** + * Called by the CacheManager when a CacheObject has been invalidated. + * Appropriate action should be taken to invalidate the handled resource. + */ + virtual void invalidate() = 0; +protected: + CacheManager* m_manager; + CacheObject* m_object; +}; + +#endif //CACHE_HANDLER_H diff --git a/include/scanserver/cache/cacheManager.h b/include/scanserver/cache/cacheManager.h new file mode 100644 index 0000000..23f931c --- /dev/null +++ b/include/scanserver/cache/cacheManager.h @@ -0,0 +1,100 @@ +/** + * @file + * @brief + * + * @author Thomas Escher + */ + +#ifndef CACHE_MANAGER_H +#define CACHE_MANAGER_H + +#include +#include + +// segment manager, allocators, pointers, ... +#include +#include + +// hide the boost namespace and shorten others +namespace +{ + namespace ip = boost::interprocess; + // the segment manager providing the allocations + typedef ip::managed_shared_memory::segment_manager SegmentManager; +} + +#include "scanserver/cache/cacheObject.h" +#include "scanserver/cache/cacheHandler.h" + + +/** + * @brief Central cache management for CacheObjects, handling cache misses and calling CacheHandlers and allocating memory for contents. + * + * The CacheManager creates and handles CacheObjects in the shared memory given by the segment manager in the constructor. It also opens a shared memory exclusively for CacheObjects' contents. + * Cache misses in CacheObject should invoke loadCacheObject to have it loaded into memory. This CacheObject's CacheHandler is called, which in turn requests memory via allocateCacheObject. This function tries to allocate enough memory and flushes out other CacheObjects which are not read-locked in order to do the former. + * The flushing behaviour determines which CacheObjects are to be removed first and can be altered. (TODO) + */ +class CacheManager { +public: + /** + * The SegmentManager comes from another shared memory where COs have to be created in. + * A CacheManager owned shared memory will be opened to create the CO contents in. + */ + CacheManager(SegmentManager* sm, const char* shm_name, std::size_t cache_size); + + /** + * Deletes all CacheObjects and closes the shared memory. + */ + ~CacheManager(); + + /** + * Allocates a CacheObject in shared memory. + */ + CacheObject* createCacheObject(); + + /** + * Request a CacheObject to be loaded into memory, causing its CacheHandler to be called. + * If no resource was to be found, the function returns false. If an error occured (e.g. IO/stream/conversion errors) it will throw. + * @return if the CacheObject was loaded successfully + * @throws when no memory could be allocated (see allocateCacheObject) or an error occured in the CacheHandler implementation + */ + bool loadCacheObject(CacheObject* obj); + + /** + * Allocates enough space for a cache object. This will flush other CacheObjects if the exclusive shared memory is full. + * @return Pointer to the allocated space in the object + * @throws when no memory could be allocated because removing all remaining (non read-locked) CacheObjects removed didn't free enough memory. + */ + unsigned char* allocateCacheObject(CacheObject* obj, unsigned int size); + + /** + * Invalidate a CacheObject and its handler. + */ + void invalidateCacheObject(CacheObject* obj); + + /** + * Change the flushing behaviour by setting a specific heuristic. + */ + // TODO + +private: + SegmentManager* m_segment_manager; + ip::managed_shared_memory* m_msm; + std::string m_shm_name; + + std::vector m_objects, m_loaded; + + /** + * Allocates memory for a CO. Will throw a bad_alloc if it fails so. + * Only to be called within allocateCacheObject. + */ + unsigned char* load(CacheObject* obj, unsigned int size); + + /** + * Removes cached data from a CO and marks it as unloaded. + * Only to be called when an exclusive lock has been obtained inside allocateCacheObject. + */ + void unload(CacheObject* obj); +}; + +#endif //CACHE_MANAGER_H diff --git a/include/scanserver/cache/cacheObject.h b/include/scanserver/cache/cacheObject.h new file mode 100644 index 0000000..6bb7e87 --- /dev/null +++ b/include/scanserver/cache/cacheObject.h @@ -0,0 +1,121 @@ +/** + * @file + * + * @author Thomas Escher + */ + +#ifndef CACHE_OBJECT_H +#define CACHE_OBJECT_H + +#include +#include +#include +#include + +// hide the boost namespace and shorten others +namespace +{ + namespace ip = boost::interprocess; +} + +#include "scanserver/cache/cacheHandler.h" +#include "scanserver/cache/cacheDataAccess.h" + + + +/** + * @brief An object representing a cache entry, holding the data and managing cache access. + * + * This cache object holds a pointer to the cached data if it is loaded and is accessible through the aquisition of a CacheDataAccess. The CacheDataAccess will lock this CacheObject so the CacheManager can't remove it from memory while it is read (i.e. CacheDataAccess holds a lock). If the data isn't hold in memory the access will cause a cache miss to occur and consequently communications to the CacheManager are started to get this CacheObject loaded into memory. + * Cached data is held in a shared memory exclusively for these objects. On client startup openSharedMemory has to be called once. Every access then obtains the process-local data pointer by its handle in this shared memory. + * When the CacheObject is created it has to be assigned a CacheHandler which handles the application specific IO part. Save calls should serialize the CacheObject's contents to a safe place (e.g. harddrive), Load calls should recall these contents. + */ +class CacheObject { + friend class CacheManager; +public: + CacheObject(); + ~CacheObject(); + + /** + * Aquires the lock, accesses the contained data directly on hit or requests loading from the CacheManager if missed. + * The aquisition takes place through the function represented by template F. F relays the call to the process who created the CacheHandler which is then able to do its work. This is neccessary because CacheHandler owns virtual functions and these can only be called in the creating process. + * + * Can throw an exception if the server is unable to load the data. + */ + template + inline CacheDataAccess getCacheData() + { + // lock read mutex to prevent removal in between calls + ip::sharable_lock use(m_mutex_in_use); + // aquire data by safely requesting it once through the means of functionality given by F + if(m_handle == 0) { + ip::scoped_lock request(m_cache_miss); + if(m_handle == 0) { + F(this); + } + // TODO: exceptions checking + } + // TODO: Access Data + return CacheDataAccess(m_mutex_in_use, m_size, reinterpret_cast(m_msm->get_address_from_handle(m_handle))); + } + + /** + * Allocate space to write into. + * Repeated calls will always create new space without saving the old one, no CacheHandler calls will be made for this CacheObject. + */ + template + inline CacheDataAccess createCacheData(unsigned int size) + { + // lock read mutex to prevent removal in between calls + ip::sharable_lock use(m_mutex_in_use); + // allocate data through template function + F(this, size); + // TODO: Access Data + return CacheDataAccess(m_mutex_in_use, m_size, reinterpret_cast(m_msm->get_address_from_handle(m_handle))); + } + + /** + * Let the CacheManager invalidate this CacheObject and its handler + */ + template + inline void invalidate() + { + // lock read mutex to prevent removal in between calls + ip::sharable_lock use(m_mutex_in_use); + // allocate data through template function + F(this); + // TODO: Access Data + } + + /** + * Set a cache handler for loading and saving data on cache misses or flushes. + * This may only be assigned once and load/save calls have to be process local. + */ + void setCacheHandler(CacheHandler* handler); + + /** + * Open the shared memory on client side so CacheObjects can access their data from there. + * Call once on client initialization. + */ + static void openSharedMemory(const char* shm_name); +private: + //! Size in bytes of contained data + unsigned int m_size; + + //! Handle to contained data in CacheObject exclusive shared memory, used to obtain process-local pointers + ip::managed_shared_memory::handle_t m_handle; + + //! Will be share-locked by every reading entity, exclusive-locked by manipulating entity, the CacheManager + ip::interprocess_upgradable_mutex m_mutex_in_use; + + //! Execute-once protection for a read request on a cache miss + ip::interprocess_mutex m_cache_miss; + + //! IO handling object for load and saves, to be called within the creating process + CacheHandler* m_handler; + + //! Singleton shared memory for data access + static ip::managed_shared_memory* m_msm; +}; + +#endif //CACHE_OBJECT_H diff --git a/include/scanserver/cacheIO.h b/include/scanserver/cacheIO.h new file mode 100644 index 0000000..046b1cf --- /dev/null +++ b/include/scanserver/cacheIO.h @@ -0,0 +1,46 @@ +/** + * @file + * @brief + * + * @author Thomas Escher + */ + +#ifndef CACHE_IO_H +#define CACHE_IO_H + +#include + +/** + * @brief Serialization management for binary data, intended for use in CacheHandlers. + * + * This class manages the assignment of unique IDs for CacheHandlers to use to identify their files. + * Data is (de)serialized via read and write calls and existance (if so, the file-/datasize too) can be checked via check. + * All files are created in a directory given by createTemporaryDirectory which has to be called before and read/writes to function properly. All files are named 'ddddd.tco' starting from zero. + */ +class CacheIO { +public: + typedef std::string IDType; + + //! Create a directory for temporary cache objects to save in + static void createTemporaryDirectory(std::string& path); + + //! Clean up temporary files + static void removeTemporaryDirectory(); + + //! Creates a unique Id to use for these functions + static IDType getId(); + + //! Check if a physical representation of this cache entry exists and returns non-zero size for the data + static unsigned int check(IDType& id); + + //! Read from file into the data pointer + static void read(IDType& id, char* data); + + //! Write data into a file represented by id + static void write(IDType& id, char* data, unsigned int size); +private: + static std::string path; + static unsigned int free_id; +}; + +#endif //CACHE_IO_H diff --git a/include/scanserver/clientInterface.h b/include/scanserver/clientInterface.h new file mode 100644 index 0000000..9e05b03 --- /dev/null +++ b/include/scanserver/clientInterface.h @@ -0,0 +1,192 @@ +/** + * @file + * @brief Clientside command structure for client-server interaction. + * + * @author Thomas Escher + */ + +#ifndef SCANSERVER_CLIENTINTERFACE_H +#define SCANSERVER_CLIENTINTERFACE_H + +// segment manager, allocators, containers, pointers, mutexes ... +#include +#include +#include +#include +#include +#include +#include + +// hide the boost namespace and shorten others +namespace +{ + namespace ip = boost::interprocess; + // the segment manager providing the allocations + typedef ip::managed_shared_memory::segment_manager SegmentManager; +} + +// allocator and type for a shared string +typedef ip::allocator CharAllocator; +typedef ip::basic_string, CharAllocator> SharedString; + +#include "scanserver/sharedScan.h" +#include "scanserver/cache/cacheObject.h" + + + +//! TEST: Pod message type +enum message_t { + MESSAGE_NONE = 0, + MESSAGE_STOP, + MESSAGE_READ_DIRECTORY, + MESSAGE_LOAD_CACHE_OBJECT, + MESSAGE_ALLOCATE_CACHE_OBJECT, + MESSAGE_INVALIDATE_CACHE_OBJECT, + MESSAGE_GET_POSE, + MESSAGE_ADD_FRAME, + MESSAGE_LOAD_FRAMES_FILE, + MESSAGE_SAVE_FRAMES_FILE, + MESSAGE_CLEAR_FRAMES, + MESSAGE_GET_CACHE_SIZE, + MESSAGE_PRINT_METRICS +}; + + + +/** + * @brief Clientside communication for the scanserver management. + * + * This is the main class visible in clients, relaying all calls to the server via shared memory. Access can be obtained via create and subsequent calls to getInstance. + * All calls to the server are put into a message type and its arguments written to interprocess containers for transfer to the server. + * The ServerInterface derives this class to share the mutexes and arguments and hides the server functionality from the client. This also splits up compilation between the client and server parts. + */ +class ClientInterface { +protected: + //! The segment manager used for creating new objects with construct<> + ip::offset_ptr segment_manager; + + //! Void allocator to use for ip-STL-containers + ip::allocator allocator; + + //! Mutex for concurrent access to the client interface, protecting the server communication and argument manipulation + ip::interprocess_mutex m_mutex_client; + + //! Mutex for client-server communication, handling the process switch and work on the server + ip::interprocess_mutex m_mutex_server; + + //! Condition the server waits on and the client notifies to + ip::interprocess_condition m_condition_server; + + //! Condition the clients will wait on while the server processes + ip::interprocess_condition m_condition_client; + + //! TEST: Pod message type + message_t m_message; + + //! String arguments for message passing + SharedString m_arg_string_1, m_arg_string_2; + + //! Integer arguments for message passing + unsigned int m_arg_uint_1, m_arg_uint_2; + + //! size_t argument for >4GB sizes + std::size_t m_arg_size_t; + + //! Float arguments for message passing + float m_arg_float_1, m_arg_float_2; + + //! IO type argument for message passing + IOType m_arg_io_type; + + //! An error message containing detais + SharedString m_error_message; + + //! Pointer for a scanvector + ip::offset_ptr m_scanvector_ptr; + + //! Pointer for a scan + ip::offset_ptr m_sharedscan_ptr; + + //! Pointer for a cache object + ip::offset_ptr m_cacheobject_ptr; + +// TODO: remove this later on, this is for close for the testclient +public: +// private: + //! internal message sending + void sendMessage(message_t message); + +public: + //! Add and read a directory into the scan vector, ownership: client + SharedScanVector* readDirectory(const char* dir_path, IOType type = UOS, unsigned int start = 0, unsigned int end = -1); + + //! "Close" a directory by releasing all contained scans, deleting the vector and resetting the pointer + void closeDirectory(SharedScanVector*& scans); + + //! Called from SharedScan on a cache miss, this requests the serverside cache handler to load, returns false if no cached file was found + bool loadCacheObject(CacheObject* obj); + + //! Called from SharedScan, request enough memory to hold reduced points + void allocateCacheObject(CacheObject* obj, unsigned int size); + + //! Called from SharedScan, let the CacheManager invalide a CacheObject + void invalidateCacheObject(CacheObject* obj); + + //! Called from SharedScan, requests the pose + void getPose(SharedScan* scan); + + //! Called from SharedScan, requests a frame and writes into it + void addFrame(SharedScan* scan, double* transformation, unsigned int type); + + //! Called from SharedScan, requests loading frames saved in the file + void loadFramesFile(SharedScan* scan); + + //! Called from SharedScan, requests saving frames into a file + void saveFramesFile(SharedScan* scan); + + //! Called from SharedScan, this removes all previous contained frames + void clearFrames(SharedScan* scan); + + //! Returns the CacheObject shared memory size for allocation and planning purposes + std::size_t getCacheSize(); + + //! Let the server print out its metric + void printMetrics(); + +protected: + //! Trivial constructor: initialize all shared memory containers, only allowed to be called by the ServerInterface + ClientInterface(SegmentManager* sm) : + segment_manager(sm), + allocator(sm), + m_message(MESSAGE_NONE), + m_arg_string_1(allocator), + m_arg_string_2(allocator), + m_error_message(allocator) + { + } + + // only the instance in the server will deconstruct + virtual ~ClientInterface() + { + } + +protected: + //! The one shared memory opened in the application, a single one in each of the clients and in the server + static ip::managed_shared_memory* m_msm; + +private: + //! Client singleton for easy global access in the whole application + static ClientInterface* m_singleton; + +public: + //! Opens the shared memory and sets the singleton in a client process + static ClientInterface* create(); + + //! Closes the shared memory + static void destroy(); + + //! Returns the singleton instance + static ClientInterface* getInstance(); +}; + +#endif //SCANSERVER_CLIENTINTERFACE_H diff --git a/include/scanserver/defines.h b/include/scanserver/defines.h new file mode 100644 index 0000000..f8f3a08 --- /dev/null +++ b/include/scanserver/defines.h @@ -0,0 +1,19 @@ +/** + * @file + * @brief Server/Client wide definitions. + * + * If running multiple instances of the scanserver, one can change these shared memory names individually. + * + * @author Thomas Escher + */ + +#ifndef SCANSERVER_DEFINES_H +#define SCANSERVER_DEFINES_H + +//! shared memory for SharedScans, Frames and communications +#define SHM_NAME_DATA "3dtk_scanserver_data" + +//! CacheManager/CacheObject only shared memory +#define SHM_NAME_CACHE "3dtk_scanserver_cache" + +#endif //SCANSERVER_DEFINES_H diff --git a/include/scanserver/frame.h b/include/scanserver/frame.h new file mode 100644 index 0000000..276eca0 --- /dev/null +++ b/include/scanserver/frame.h @@ -0,0 +1,28 @@ +/** + * @file + * @brief + * + * @author Thomas Escher + */ + +#ifndef SHARED_FRAME_H +#define SHARED_FRAME_H + +#include "slam6d/frame.h" + +#include +#include + +// hide the boost namespace and shorten others +namespace +{ + namespace ip = boost::interprocess; + // the segment manager providing the allocations + typedef ip::managed_shared_memory::segment_manager SegmentManager; +} + +typedef ip::allocator FrameAllocator; +typedef ip::vector FrameVector; + + +#endif //SHARED_FRAME_H diff --git a/include/scanserver/frame_io.h b/include/scanserver/frame_io.h new file mode 100644 index 0000000..9c9c967 --- /dev/null +++ b/include/scanserver/frame_io.h @@ -0,0 +1,28 @@ +/** + * @file + * @brief IO for .frames files. + * + * @author Thomas Escher + */ + +#ifndef SCANSERVER_FRAME_IO_H +#define SCANSERVER_FRAME_IO_H + +#include "scanserver/frame.h" + + + +/** + * @brief This class handles the serialization of .frames files and saves/extracts the contained Frame instances. + */ +class FrameIO +{ +public: + //! Loads a frames file and fills the given shared vector + static void loadFile(const char* dir, const char* identifier, FrameVector& frames); + + //! Saves a frames file from a shared frames vector + static void saveFile(const char* dir, const char* identifier, const FrameVector& frames); +}; + +#endif //SCANSERVER_FRAME_IO_H diff --git a/include/scanserver/io_types.h b/include/scanserver/io_types.h new file mode 100644 index 0000000..27fa470 --- /dev/null +++ b/include/scanserver/io_types.h @@ -0,0 +1,30 @@ +/** + * @file + * @brief Scan types and mapping functions. + * + * @author Thomas Escher + */ + +#ifndef IO_TYPES_H +#define IO_TYPES_H + +//! IO types for file formats, distinguishing the use of ScanIOs +enum IOType { + UOS, UOS_MAP, UOS_FRAMES, UOS_MAP_FRAMES, UOS_RGB, OLD, RTS, RTS_MAP, RIEGL_TXT, RIEGL_PROJECT, RIEGL_RGB, RIEGL_BIN, IFP, ZAHN, PLY, WRL, XYZ, ZUF, ASC, IAIS, FRONT, X3D, RXP, KIT, AIS, OCT, TXYZR, XYZR, XYZ_RGB, KS, KS_RGB, STL, LEICA, PCL, PCI, UOS_CAD, VELODYNE, VELODYNE_FRAMES +}; + +//! Data channels in the scans +enum IODataType { + DATA_XYZ = 1<<0, + DATA_RGB = 1<<1, + DATA_REFLECTANCE = 1<<2, + DATA_AMPLITUDE = 1<<3, + DATA_TYPE = 1<<4, + DATA_DEVIATION = 1<<5 +}; + +IOType formatname_to_io_type(const char * string); + +const char * io_type_to_libname(IOType type); + +#endif //IO_TYPES_H diff --git a/include/scanserver/metrics.h b/include/scanserver/metrics.h new file mode 100644 index 0000000..604faa4 --- /dev/null +++ b/include/scanserver/metrics.h @@ -0,0 +1,122 @@ +/** + * @file + * @brief Metrics for measuring various aspects of an application + * @author Thomas Escher + */ + +#ifndef METRICS_H +#define METRICS_H + +#include + +#ifdef _MSC_VER +#include +#else +#include +#endif + +template +class Metric { +public: + //! Reserve a minimum of 1k values to reduced allocation overhead in between + Metric(unsigned int reserve = 1000) { + m_values.reserve(reserve); + } + + //! Print the sum of this metric + T sum() const { + T value = 0; + for(typename std::vector::const_iterator it = m_values.begin(); it != m_values.end(); ++it) + value += *it; + return value; + } + + //! Print the average of this metric + T average() const { + if(m_values.size() != 0) + return sum() / (T)(m_values.size()); + else + return (T)0; + } + + std::size_t size() const { + return m_values.size(); + } + + void reset() { + m_values.clear(); + } + +protected: + inline void commit(const T& value) { + m_values.push_back(value); + } + +private: + std::vector m_values; +}; + +#ifdef _MSC_VER + typedef LARGE_INTEGER Timer; +#else + typedef timeval Timer; +#endif + +/** + * @brief Measures time differences in seconds. + */ +class TimeMetric : public Metric { +public: + TimeMetric(unsigned int reserve = 1000); + + //! Start the timer + Timer start(); + + //! End the timer and commit value + void end(Timer&); + +private: +#ifdef _MSC_VER + static LARGE_INTEGER frequency; + static bool init; +#endif +}; + +/** + * @brief Measures access count or size. + */ +class CounterMetric : public Metric { +public: + CounterMetric(unsigned int reserve = 1000); + void add(unsigned long long value = 1); + +private: +}; + + + +struct ServerMetric { + static TimeMetric scan_loading, cacheio_write_time, cacheio_read_time; + static CounterMetric cacheio_write_size, cacheio_read_size; + static void print(); +}; + +struct ClientMetric { + static TimeMetric + // Scan + // directory loading + read_scan_time, scan_load_time, + // reduce, transform, copy, create tree as part of the reduction and tree preparation + calc_reduced_points_time, transform_time, copy_original_time, create_tree_time, + // new scanserver only times + on_demand_reduction_time, create_metatree_time, + // part of transform dealing with frames + add_frames_time, + // slam6D + matching_time, + // ClientInterface + clientinterface_time, cache_miss_time, allocate_time, frames_time; + static void print(); +}; + +#endif //METRICS_H diff --git a/include/scanserver/multiArray.h b/include/scanserver/multiArray.h new file mode 100644 index 0000000..cb9556c --- /dev/null +++ b/include/scanserver/multiArray.h @@ -0,0 +1,96 @@ +/** + * @file + * @brief + * + * @author Thomas Escher + */ + +#ifndef MULTI_ARRAY_H +#define MULTI_ARRAY_H + +#include +using std::cout; +using std::cerr; +using std::endl; + +#include "scanserver/cache/cacheDataAccess.h" + + + +/** + * @brief Point-Array imitation for xyz[i][0..2] calls + */ +template +class TripleArray : public CacheDataAccess { +public: + //! Take ownership of a cache data + TripleArray(CacheDataAccess&& cd) : CacheDataAccess(cd) {} + + //! Move constructor of this type like CacheData, transfer lock + TripleArray(TripleArray&& other) : CacheDataAccess(other) {} + + //! Represent the CacheData as an array of T[3]'s + inline return_type* operator[](unsigned int i) const + { + return reinterpret_cast(getData()) + (i*3); + } + + //! Count of T[3] objects in this CacheData + inline unsigned int size() const { return CacheDataAccess::getSize() / (3*sizeof(return_type)); } +}; + +/** + * @brief Point-Array imitation for value[i] calls + */ +template +class SingleArray : public CacheDataAccess { +public: + //! Take ownership of a cache data + SingleArray(CacheDataAccess&& cd) : CacheDataAccess(cd) {} + + //! Move constructor of this type like CacheData, transfer lock + SingleArray(SingleArray&& other) : CacheDataAccess(other) {} + + //! Represent the CacheData as an array of T's + inline return_type& operator[](unsigned int i) const + { + return *(reinterpret_cast(getData()) + i); + } + + //! Count of T objects in this CacheData + inline unsigned int size() const { return CacheDataAccess::getSize() / sizeof(return_type); } +}; + +typedef TripleArray DataXYZ; +typedef TripleArray DataRGB; +typedef SingleArray DataReflectance; +typedef SingleArray DataAmplitude; +typedef SingleArray DataType; +typedef SingleArray DataDeviation; + +/** + * To simplify T** access patterns for an array of T[3] (points), this RAII type class helps creating and managing this pointer array on the stack. + */ +template +class Array { +public: + //! Create a temporary array and fill it sequentially with pointers to each point + Array(const TripleArray& data) { + unsigned int size = data.size(); + m_array = new T*[size]; + for(unsigned int i = 0; i < size; ++i) + m_array[i] = data[i]; + } + + //! Removes the temporary array on destruction (RAII) + ~Array() { + delete[] m_array; + } + + //! Conversion operator to interface the MultiArray to a T** array + inline T* const* get() const { return m_array; } +private: + T** m_array; +}; + +#endif //MULTI_ARRAY_H diff --git a/include/scanserver/pointfilter.h b/include/scanserver/pointfilter.h new file mode 100644 index 0000000..f24dc7c --- /dev/null +++ b/include/scanserver/pointfilter.h @@ -0,0 +1,113 @@ +/** + * @file + * @brief IO filtering class for ScanIO to discard unwanted points. + * + * @author Thomas Escher + */ + +#ifndef POINT_FILTER_H +#define POINT_FILTER_H + +#include +#include + +class Checker; + + +/** + * Flexible filtering class for parsing a set of points. + * + * This class is configurable with parameters for range and height and can be transferred via the use of a parameter string. + * Use on a point set via repeated use of the check function, which creates the internal Checker structures once for each change to the parameters. The amount of tests is held as minimal as possible. + */ +class PointFilter +{ +public: + // Default empty constructor + PointFilter(); + //! Deserialization constructor, forms parameters back from a string given by getParams + PointFilter(const std::string& params); + ~PointFilter(); + + PointFilter& setRange(float maxDist, float minDist); + PointFilter& setHeight(double top, double bottom); + + //! Serialization function to convert it into a string, usable in the constructor + std::string getParams(); + + //! Check a point, returning success if all contained Checker functions accept that point (implemented in .icc) + inline bool check(double* point); +private: + //! Storage for parameter keys and values + std::map m_params; + + //! If either not created yet or parameters get changed, this flag will cause check to create a new Checker chain + bool m_changed; + + //! created in the first check call with the changed flag set + Checker* m_checker; + + //! Allocation of the checkers + void createCheckers(); + + // factory magic + template friend struct CheckerFactory; + static std::map factory; +}; + +class Checker { +public: + Checker(); + ~Checker(); + + //! Testing function + virtual bool test(double* point) = 0; + + //! Next test in chain + Checker* m_next; +}; + +//! Factory integrating the create-function and adding it to the lookup map in an easy template +template +struct CheckerFactory { + //! Instanciate in the source code with the to be created class as template argument and associated key string as constructor argument + CheckerFactory(const std::string& key) { PointFilter::factory[key] = CheckerFactory::create; } + //! Automated create function, safely returning a nullpointer if the constructor throws for unwanted values + static Checker* create(const std::string& value) { try { return new T(value); } catch(...) { return 0; } } +}; + +class CheckerRangeMax : public Checker { +public: + CheckerRangeMax(const std::string& value); + virtual bool test(double* point); +private: + double m_max; +}; + +class CheckerRangeMin : public Checker { +public: + CheckerRangeMin(const std::string& value); + virtual bool test(double* point); +private: + double m_min; +}; + +class CheckerHeightTop : public Checker { +public: + CheckerHeightTop(const std::string& value); + virtual bool test(double* point); +private: + double m_top; +}; + +class CheckerHeightBottom : public Checker { +public: + CheckerHeightBottom(const std::string& value); + virtual bool test(double* point); +private: + double m_bottom; +}; + +#include "scanserver/pointfilter.icc" + +#endif //POINT_FILTER_H diff --git a/include/scanserver/pointfilter.icc b/include/scanserver/pointfilter.icc new file mode 100644 index 0000000..bff7366 --- /dev/null +++ b/include/scanserver/pointfilter.icc @@ -0,0 +1,22 @@ +bool PointFilter::check(double* point) +{ + // create a new checker chain + if(m_changed) { + createCheckers(); + // mark as unchanged to avoid recreation on further calls + m_changed = false; + } + + // apply all tests to the point + Checker* checker = m_checker; + while(checker) { + if(checker->test(point)) { + checker = checker->m_next; + } else { + // if even one test fails the point is discarded + return false; + } + } + // point has passed if all tests returned true + return true; +} diff --git a/include/scanserver/scanHandler.h b/include/scanserver/scanHandler.h new file mode 100644 index 0000000..47847d4 --- /dev/null +++ b/include/scanserver/scanHandler.h @@ -0,0 +1,56 @@ +/** + * @file + * @brief + * + * @author Thomas Escher + */ + +#ifndef SCAN_HANDLER_H +#define SCAN_HANDLER_H + +#include "scanserver/temporaryHandler.h" +#include +#include + + +/** + * @brief CacheHandler for scan files. + * + * This class handles scan files. On a cache miss it reads from the original scan file by calling ScanIO to load the proper library for input. + * If binary scan caching is enabled the TemporaryHandler functionality is invoked in saves and, if binary scan caching is enabled, also on loads. In the latter case the binary cache file has priority over parsing the scan anew. Invalidation is taken into consideration, reloading the scan with new range parameters. + */ +class ScanHandler : public TemporaryHandler +{ +public: + ScanHandler(CacheObject* obj, CacheManager* cm, SharedScan* scan, IODataType data); + + /** + * Reads specific scan data from a file, located by SharedScan's identifiers via ScanIO. + * If binary caching is enabled it will try to read from this resource first to speed up the process. + * @return true, will throw otherwise because we are desperate for scans + * @throw if both the binary cache and the scan resource were unavailable + */ + virtual bool load(); + + /** + * Does nothing unless binary caching is enabled, which will save the contents via CacheIO. + */ + virtual void save(unsigned char* data, unsigned int size); + + //! Enable binary caching of scan data + static void setBinaryCaching(); +private: + IODataType m_data; + + static bool binary_caching; + + //! Cached vectors for prefetching + static std::map* > m_prefetch_xyz; + static std::map* > m_prefetch_rgb; + static std::map* > m_prefetch_reflectance; + static std::map* > m_prefetch_amplitude; + static std::map* > m_prefetch_type; + static std::map* > m_prefetch_deviation; +}; + +#endif //SCAN_HANDLER_H diff --git a/include/scanserver/scan_io/scan_io.h b/include/scanserver/scan_io/scan_io.h new file mode 100644 index 0000000..39502ea --- /dev/null +++ b/include/scanserver/scan_io/scan_io.h @@ -0,0 +1,90 @@ +/** + * @file + * @brief IO of a 3D scan + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Thomas Escher + */ + +#ifndef __SCAN_IO_H__ +#define __SCAN_IO_H__ + +#include +#include +#include +#include + +#include "scanserver/io_types.h" +#include "scanserver/pointfilter.h" + + + +/** + * @brief IO of a 3D scan + * + * This class needs to be instantiated by a class loading + * 3D scans from different file formats. + */ +class ScanIO { +public: + /** + * Read a directory and return all possible scans in the [start,end] interval. + * + * @param dir_path The directory from which to read the scans + * @param start Starting index + * @param end Last index + * @return List of IO-specific identifiers of scans, matching the search + */ + virtual std::list readDirectory(const char* dir_path, unsigned int start, unsigned int end) = 0; + + /** + * Reads the pose from a dedicated pose file or from the scan file. + * + * @param dir_path The directory the scan is contained in + * @param scan_identifier IO-specific identifier for the particular scan + * @param pose Pointer to an existing double[6] array where the pose is saved in + */ + virtual void readPose(const char* dir_path, const char* identifier, double* pose) = 0; + + /** + * Given a scan identifier, load the contents of this particular scan. + * + * @param dir_path The directory the scan is contained in + * @param identifier IO-specific identifier for the particular scan + * @param filter Filter object which each point is tested on by its position + */ + virtual void readScan(const char* dir_path, const char* identifier, PointFilter&& filter, std::vector* xyz = 0, std::vector* rgb = 0, std::vector* reflectance = 0, std::vector* amplitude = 0, std::vector* type = 0, std::vector* deviation = 0) = 0; + + /** + * Returns whether this ScanIO can load the requested data from a scan. + * + * @param type data channel request + * @return whether it's supported or not + */ + virtual bool supports(IODataType type) = 0; + + /** + * @brief Global mapping of io_types to single instances of ScanIOs. + * + * If the ScanIO doesn't exist, it will be created and saved in a map. + * Otherwise, the matching ScanIO will be returned. + * + * @param type Key identifying the ScanIO + * @return The newly created or found ScanIO + */ + static ScanIO* getScanIO(IOType iotype); + + //! Delete all ScanIO instances and (lazy) try to unload the libraries. + static void clearScanIOs(); +private: + static std::map m_scanIOs; +}; + +// Since the shared object files are loaded on the fly, we +// need class factories + +// the types of the class factories +typedef ScanIO* create_sio(); +typedef void destroy_sio(ScanIO*); + +#endif diff --git a/include/scanserver/scan_io/scan_io_ks.h b/include/scanserver/scan_io/scan_io_ks.h new file mode 100644 index 0000000..878000c --- /dev/null +++ b/include/scanserver/scan_io/scan_io_ks.h @@ -0,0 +1,27 @@ +/** + * @file + * @brief IO of a 3D scan in uos file format + * @author Thomas Escher + */ + +#ifndef __SCAN_IO_KS_H__ +#define __SCAN_IO_KS_H__ + +#include "scan_io.h" + + + +/** + * @brief 3D scan loader for KS scans + * + * The compiled class is available as shared object file + */ +class ScanIO_ks : public ScanIO { +public: + virtual std::list readDirectory(const char* dir_path, unsigned int start, unsigned int end); + virtual void readPose(const char* dir_path, const char* identifier, double* pose); + virtual void readScan(const char* dir_path, const char* identifier, PointFilter&& filter, std::vector* xyz, std::vector* rgb, std::vector* reflectance, std::vector* amplitude, std::vector* type, std::vector* deviation); + virtual bool supports(IODataType type); +}; + +#endif diff --git a/include/scanserver/scan_io/scan_io_ks_rgb.h b/include/scanserver/scan_io/scan_io_ks_rgb.h new file mode 100644 index 0000000..1a5fb6a --- /dev/null +++ b/include/scanserver/scan_io/scan_io_ks_rgb.h @@ -0,0 +1,27 @@ +/** + * @file + * @brief IO of a 3D scan in uos file format + * @author Thomas Escher + */ + +#ifndef __SCAN_IO_KS_RGB_H__ +#define __SCAN_IO_KS_RGB_H__ + +#include "scan_io.h" + + + +/** + * @brief 3D scan loader for KS RGB scans + * + * The compiled class is available as shared object file + */ +class ScanIO_ks_rgb : public ScanIO { +public: + virtual std::list readDirectory(const char* dir_path, unsigned int start, unsigned int end); + virtual void readPose(const char* dir_path, const char* identifier, double* pose); + virtual void readScan(const char* dir_path, const char* identifier, PointFilter&& filter, std::vector* xyz, std::vector* rgb, std::vector* reflectance, std::vector* amplitude, std::vector* type, std::vector* deviation); + virtual bool supports(IODataType type); +}; + +#endif diff --git a/include/scanserver/scan_io/scan_io_riegl_rgb.h b/include/scanserver/scan_io/scan_io_riegl_rgb.h new file mode 100644 index 0000000..98b5a4b --- /dev/null +++ b/include/scanserver/scan_io/scan_io_riegl_rgb.h @@ -0,0 +1,27 @@ +/** + * @file + * @brief IO of a 3D scan in uos file format + * @author Thomas Escher + */ + +#ifndef __SCAN_IO_RIEGL_RGB_H__ +#define __SCAN_IO_RIEGL_RGB_H__ + +#include "scan_io.h" + + + +/** + * @brief 3D scan loader for Riegl scans + * + * The compiled class is available as shared object file + */ +class ScanIO_riegl_rgb : public ScanIO { +public: + virtual std::list readDirectory(const char* dir_path, unsigned int start, unsigned int end); + virtual void readPose(const char* dir_path, const char* identifier, double* pose); + virtual void readScan(const char* dir_path, const char* identifier, PointFilter&& filter, std::vector* xyz, std::vector* rgb, std::vector* reflectance, std::vector* amplitude, std::vector* type, std::vector* deviation); + virtual bool supports(IODataType type); +}; + +#endif diff --git a/include/scanserver/scan_io/scan_io_riegl_txt.h b/include/scanserver/scan_io/scan_io_riegl_txt.h new file mode 100644 index 0000000..f4567de --- /dev/null +++ b/include/scanserver/scan_io/scan_io_riegl_txt.h @@ -0,0 +1,27 @@ +/** + * @file + * @brief IO of a 3D scan in uos file format + * @author Thomas Escher + */ + +#ifndef __SCAN_IO_RIEGL_H__ +#define __SCAN_IO_RIEGL_H__ + +#include "scan_io.h" + + + +/** + * @brief 3D scan loader for Riegl scans + * + * The compiled class is available as shared object file + */ +class ScanIO_riegl_txt : public ScanIO { +public: + virtual std::list readDirectory(const char* dir_path, unsigned int start, unsigned int end); + virtual void readPose(const char* dir_path, const char* identifier, double* pose); + virtual void readScan(const char* dir_path, const char* identifier, PointFilter&& filter, std::vector* xyz, std::vector* rgb, std::vector* reflectance, std::vector* amplitude, std::vector* type, std::vector* deviation); + virtual bool supports(IODataType type); +}; + +#endif diff --git a/include/scanserver/scan_io/scan_io_rts.h b/include/scanserver/scan_io/scan_io_rts.h new file mode 100644 index 0000000..d43c458 --- /dev/null +++ b/include/scanserver/scan_io/scan_io_rts.h @@ -0,0 +1,30 @@ +/** + * @file + * @brief IO of a 3D scan in rts file format + * @author Thomas Escher + */ + +#ifndef __SCAN_IO_UOS_H__ +#define __SCAN_IO_UOS_H__ + +#include "scan_io.h" + + + +/** + * @brief 3D scan loader for RTS scans + * + * The compiled class is available as shared object file + */ +class ScanIO_rts : public ScanIO { +public: + virtual std::list readDirectory(const char* dir_path, unsigned int start, unsigned int end); + virtual void readPose(const char* dir_path, const char* identifier, double* pose); + virtual void readScan(const char* dir_path, const char* identifier, PointFilter&& filter, std::vector* xyz, std::vector* rgb, std::vector* reflectance, std::vector* amplitude, std::vector* type, std::vector* deviation); + virtual bool supports(IODataType type); +private: + std::string cached_dir; + std::vector cached_poses; +}; + +#endif diff --git a/include/scanserver/scan_io/scan_io_rxp.h b/include/scanserver/scan_io/scan_io_rxp.h new file mode 100644 index 0000000..52b158f --- /dev/null +++ b/include/scanserver/scan_io/scan_io_rxp.h @@ -0,0 +1,83 @@ +/** + * @file + * @brief IO of a 3D scan in rxp file format + * @author Thomas Escher + */ + +#ifndef __SCAN_IO_RXP_H__ +#define __SCAN_IO_RXP_H__ + +#include "scan_io.h" +#include "slam6d/point.h" + +#include "riegl/scanlib.hpp" +using namespace scanlib; +using namespace std; +using namespace std::tr1; + +class importer; + + + +/** + * @brief 3D scan loader for RXP scans + * + * The compiled class is available as shared object file + */ +class ScanIO_rxp : public ScanIO { +public: + virtual std::list readDirectory(const char* dir_path, unsigned int start, unsigned int end); + virtual void readPose(const char* dir_path, const char* identifier, double* pose); + virtual void readScan(const char* dir_path, const char* identifier, PointFilter&& filter, std::vector* xyz, std::vector* rgb, std::vector* reflectance, std::vector* amplitude, std::vector* type, std::vector* deviation); + virtual bool supports(IODataType type); + + ScanIO_rxp() : dec(0), imp(0) {} +private: + std::tr1::shared_ptr rc; + decoder_rxpmarker *dec; + importer *imp; + std::string old_path; +}; + +/** + * The importer class is the interface to riegl's pointcloud class, and will convert their point struct to slam6d's point class. + * + * Code adapted from rivlib/example/pointcloudcpp.cpp available from http://www.riegl.com . + */ +class importer : public scanlib::pointcloud +{ +public: + importer(PointFilter& filter, int start, std::vector* xyz, std::vector* reflectance, std::vector* amplitude, std::vector* type, std::vector* deviation) : + pointcloud(false), // set this to true if you need gps aligned timing + filter(&filter), xyz(xyz), reflectance(reflectance), amplitude(amplitude), type(type), deviation(deviation), + start(start), currentscan(0) + {} + inline int getCurrentScan() { return currentscan; } + inline void set(PointFilter& filter, std::vector* xyz, std::vector* reflectance, std::vector* amplitude, std::vector* type, std::vector* deviation) + { + this->filter = &filter; + this->xyz = xyz; + this->reflectance = reflectance; + this->amplitude = amplitude; + this->type = type; + this->deviation = deviation; + } +protected: + PointFilter* filter; + std::vector *xyz; + std::vector *reflectance; + std::vector *amplitude; + std::vector *type; + std::vector *deviation; + int start; + int currentscan; + // overridden from pointcloud class + void on_echo_transformed(echo_type echo); + + void on_frame_stop(const scanlib::frame_stop& arg) { + scanlib::basic_packets::on_frame_stop(arg); + currentscan++; + } +}; + +#endif diff --git a/include/scanserver/scan_io/scan_io_uos.h b/include/scanserver/scan_io/scan_io_uos.h new file mode 100644 index 0000000..4119b36 --- /dev/null +++ b/include/scanserver/scan_io/scan_io_uos.h @@ -0,0 +1,27 @@ +/** + * @file + * @brief IO of a 3D scan in uos file format + * @author Thomas Escher + */ + +#ifndef __SCAN_IO_UOS_H__ +#define __SCAN_IO_UOS_H__ + +#include "scan_io.h" + + + +/** + * @brief 3D scan loader for UOS scans + * + * The compiled class is available as shared object file + */ +class ScanIO_uos : public ScanIO { +public: + virtual std::list readDirectory(const char* dir_path, unsigned int start, unsigned int end); + virtual void readPose(const char* dir_path, const char* identifier, double* pose); + virtual void readScan(const char* dir_path, const char* identifier, PointFilter&& filter, std::vector* xyz, std::vector* rgb, std::vector* reflectance, std::vector* amplitude, std::vector* type, std::vector* deviation); + virtual bool supports(IODataType type); +}; + +#endif diff --git a/include/scanserver/scan_io/scan_io_uos_rgb.h b/include/scanserver/scan_io/scan_io_uos_rgb.h new file mode 100644 index 0000000..2a6144b --- /dev/null +++ b/include/scanserver/scan_io/scan_io_uos_rgb.h @@ -0,0 +1,27 @@ +/** + * @file + * @brief IO of a 3D scan in uos file format + * @author Thomas Escher + */ + +#ifndef __SCAN_IO_UOS_RGB_H__ +#define __SCAN_IO_UOS_RGB_H__ + +#include "scan_io.h" + + + +/** + * @brief 3D scan loader for UOS scans with color information + * + * The compiled class is available as shared object file + */ +class ScanIO_uos_rgb : public ScanIO { +public: + virtual std::list readDirectory(const char* dir_path, unsigned int start, unsigned int end); + virtual void readPose(const char* dir_path, const char* identifier, double* pose); + virtual void readScan(const char* dir_path, const char* identifier, PointFilter&& filter, std::vector* xyz, std::vector* rgb, std::vector* reflectance, std::vector* amplitude, std::vector* type, std::vector* deviation); + virtual bool supports(IODataType type); +}; + +#endif diff --git a/include/scanserver/serverInterface.h b/include/scanserver/serverInterface.h new file mode 100644 index 0000000..14fbc73 --- /dev/null +++ b/include/scanserver/serverInterface.h @@ -0,0 +1,104 @@ +/** + * @file + * @brief Serverside command structure for client-server interaction. + * + * @author Thomas Escher + */ + +#ifndef SCANSERVER_SERVERINTERFACE_H +#define SCANSERVER_SERVERINTERFACE_H + +#include "scanserver/clientInterface.h" +#include "scanserver/cache/cacheManager.h" + +// hide the boost namespace +namespace +{ + namespace ip = boost::interprocess; + // the segment manager providing the allocations + typedef ip::managed_shared_memory::segment_manager SegmentManager; +} + + + +/** + * @brief Central instance of the server management. + * + * This class handles all the serverside communication and relays cache management calls to the CacheManager. + * It derives ClientInterface and shares its mutexes and arguments, neccessary for the communication. It also holds the SharedScan and CacheManager instances. + * create will open the shared memory and place a ServerInterface instance in it, after which the main server loop run handles all communication. + */ +class ServerInterface : public ClientInterface +{ +private: + //! Container for all shared scans the server can hold + SharedScanVector m_scans; + + //! Cache manager for handling all cache objects inside the shared scans + CacheManager m_manager; + + //! Saved size of the CacheObject shared memory + std::size_t m_cache_size; + +private: + //! Read a directory of scans by letting the corresponding ScanIO reading it and creating a scan for each entry + SharedScanVector* readDirectory(const char * dir_path, IOType type, unsigned int start, unsigned int end); + + //! Cache miss from a CacheObject, relayed to CacheManager + bool loadCacheObject(CacheObject* obj); + + //! Allocate call from SharedScan, relayed to CacheManager + void allocateCacheObject(CacheObject* obj, unsigned int size); + + //! Invalidate call from SharedScan, relayed to CacheManager + void invalidateCacheObject(CacheObject* obj); + + //! Call from SharedScan, relayed to ScanIO + void getPose(SharedScan* scan); + + //! Allocate a new Frame in its vector + void addFrame(SharedScan* scan); + + //! Relayed to FrameIO + void loadFramesFile(SharedScan* scan); + + //! Relayed to FrameIO + void saveFramesFile(SharedScan* scan); + + //! Empties this SharedScan's FrameVector + void clearFrames(SharedScan* scan); + + //! Call from client + std::size_t getCacheSize(); + + //! Prints out caching related metrics + void printMetrics(); + + //! Find a scan by matching its identifier, path and io type to avoid placing the same scan multiple times into the scan vector + SharedScan* findScan(const SharedStringSharedPtr& dir_path, const char* identifier, IOType type) const; + +public: + /** + * Constructor + * @param sm SegmentManager for allocator objects to construct interprocess containers with + * @param shm_name Name of the cache shared memory that will be passed to CacheManager + * @param cache_size Size of cache shared memory + */ + ServerInterface(SegmentManager* sm, const char* shm_name, std::size_t cache_size); + ~ServerInterface(); + + //! Create the shared memory in the system and put all neccessary structures in it + static ServerInterface* create(std::size_t data_size, std::size_t cache_size); + + //! remove the shared memory from the system + static void destroy(); + + //! Main server loop for message handling and function dispatching + void run(); + +private: + //! Cleaning up internal data without destroying the instance + void cleanup(); +}; + +#endif //SCANSERVER_SERVERINTERFACE_H diff --git a/include/scanserver/serverScan.h b/include/scanserver/serverScan.h new file mode 100644 index 0000000..89547ff --- /dev/null +++ b/include/scanserver/serverScan.h @@ -0,0 +1,41 @@ +/** + * @file + * @brief Scan containing all interprocess shared data and management values. + * + * @author Thomas Escher + */ + +#ifndef SERVER_SCAN__H +#define SERVER_SCAN__H + +#include "sharedScan.h" + +// hide the boost namespace and shorten others +namespace +{ + namespace ip = boost::interprocess; + // the segment manager providing the allocations + typedef ip::managed_shared_memory::segment_manager SegmentManager; +} + +class CacheManager; + + + +/** + * @brief Privileged derivation of SharedScan for serverside construction. + * + * For client/server separation in both code access and compilation matters this class creates the CacheObjects and CacheHandlers for SharedScan in the server process. It further gives access to the pose and frame vector members. + */ +class ServerScan : public SharedScan { +public: + ServerScan(const ip::allocator & allocator, + const SharedStringSharedPtr& dir_path_ptr, const char* io_identifier, + IOType iotype, CacheManager* cm); + + inline void setPose(double* pose) { m_pose = pose; } + inline FrameVector& getFrames() { return m_frames; } +private: +}; + +#endif //SERVER_SCAN__H \ No newline at end of file diff --git a/include/scanserver/sharedScan.h b/include/scanserver/sharedScan.h new file mode 100644 index 0000000..6165357 --- /dev/null +++ b/include/scanserver/sharedScan.h @@ -0,0 +1,191 @@ +/** + * @file + * @brief Scan containing all interprocess shared data and management values. + * + * @author Thomas Escher + */ + +#ifndef SHARED_SCAN_H +#define SHARED_SCAN_H + +#include "scanserver/frame.h" +#include "slam6d/io_types.h" +#include "slam6d/data_types.h" +#include "slam6d/pointfilter.h" + +#include +#include +#include +#include + +// hide the boost namespace and shorten others +namespace +{ + namespace ip = boost::interprocess; + // the segment manager providing the allocations + typedef ip::managed_shared_memory::segment_manager SegmentManager; +} + +// allocator and type for a scan vector +class SharedScan; +typedef ip::allocator, SegmentManager> SharedScanAllocator; +typedef ip::vector, SharedScanAllocator> SharedScanVector; + +// allocator and type for a shared string +typedef ip::allocator CharAllocator; +typedef ip::basic_string, CharAllocator> SharedString; + +// shared pointer for shared strings +typedef ip::managed_shared_ptr::type SharedStringSharedPtr; + +class CacheObject; + + + +/** + * @brief Central class representing a single scan file in shared memory. + * + * This class identifies a scan file by its path, identificator and io type, which are given to the ScanIO to read a scan. + * It holds all neccessary information like pose, frames and cached data from the scan. The cached data is contained in CacheObjects, one for each data channel and two reduced (one transformed, one untransformed). The access to the CacheObjects' data is given via a derivation from CacheData via MultiArray-types, which imitates a double**-array for easy use. + * All calls to the server are relayed to the ClientInterface and handled there. Access to the CacheObjects causing a cache miss also invoke a server call to the CacheManager. + */ +class SharedScan +{ + // private static class access for onChacheMiss/onAllocation + friend class CacheObject; +public: + //! Constructor by identifiers + SharedScan(const ip::allocator & allocator, + const SharedStringSharedPtr& dir_path_ptr, const char* io_identifier, + IOType iotype); + + //! Deconstructor + ~SharedScan(); + + //! Equality operator based on identifier, directory and type + bool operator==(const SharedScan& r) const; + + //! Filter parameters for range checks when loading from file, invalidate cache for scan CacheObject if it differs + void setRangeParameters(double max_dist, double min_dist); + + //! Filter parameters for height checks when loading from file, invalidate cache for scan CacheObject if it differs + void setHeightParameters(double top, double bottom); + + //! Set parameters and invalidate cache for reduced CacheObjects if it differs + void setReductionParameters(const char* params); + + //! Set parameters and invalidate cache for reduced CacheObjects if it differs + void setShowReductionParameters(const char* params); + + //! Set parameters and invalidate cache for reduced CacheObjects if it differs + void setOcttreeParameters(const char* params); + + //! Add a new frame with the current transformation and given type + void addFrame(double* transformation, unsigned int type); + + //! Save frames into a file for later use + void saveFrames(); + + //! Clear existing frames + void clearFrames(); + + //! Get contained frames + const FrameVector& getFrames(); + + //! Get pose from pose file + double* getPose(); + + //! Get specific cached data + DataXYZ getXYZ(); + DataRGB getRGB(); + DataReflectance getReflectance(); + DataAmplitude getAmplitude(); + DataType getType(); + DataDeviation getDeviation(); + + //! Reduced transformed points + DataXYZ getXYZReduced(); + + //! Create a new set of reduced points + DataXYZ createXYZReduced(unsigned int size); + + //! Reduced untransformed points + DataXYZ getXYZReducedOriginal(); + + //! Create a new set of reduced points originals + DataXYZ createXYZReducedOriginal(unsigned int size); + + //! Individual reduced points to use in show if requested + TripleArray getXYZReducedShow(); + + //! Create a new set of reduced points for use in show + TripleArray createXYZReducedShow(unsigned int size); + + //! Cached tree structure for show + DataPointer getOcttree(); + + //! Create a cached tree structure for show + DataPointer createOcttree(unsigned int size); + + //! ScanHandler related prefetching values to combine loading of separate cache objects + void prefetch(unsigned int type) { m_prefetch |= type; } + + //! Return prefetch values + unsigned int getPrefetch() const { return m_prefetch; } + + //! Clear prefetch values + void clearPrefetch() { m_prefetch = 0; } + + // IO-specific getters + inline const char* getDirPath() const { return m_dir_path_ptr->c_str(); } + inline const char* getIdentifier() const { return m_io_identifier.c_str(); } + inline IOType getIOType() const { return m_iotype; } + inline float getMaxDist() const { return m_max_dist; } + inline float getMinDist() const { return m_min_dist; } + inline double geHeightTop() const { return m_height_top; } + inline double getHeightBottom() const { return m_height_bottom; } + + //! Assembles an PointFilter with range/height parameters (if set) to use process-locally + PointFilter getPointFilter() const; + +private: + SharedStringSharedPtr m_dir_path_ptr; + SharedString m_io_identifier; + IOType m_iotype; + unsigned int m_prefetch; + double m_max_dist, m_min_dist; + double m_height_top, m_height_bottom; + bool m_range_param_set, m_height_param_set; + SharedString m_reduction_parameters; + SharedString m_show_parameters; + SharedString m_octtree_parameters; + bool m_load_frames_file; + +protected: + ip::offset_ptr m_pose; + ip::offset_ptr m_xyz, m_rgb, m_reflectance, m_amplitude, m_type, m_deviation, + m_xyz_reduced, m_xyz_reduced_original, + m_show_reduced, m_octtree; + FrameVector m_frames; + + //! invalidate full cache objects + void invalidateFull(); + + //! invalidate reduced cache objects + void invalidateReduced(); + + //! invalidate show related cache objects + void invalidateShow(); + +private: + //! Static callback for cache misses to send a request to the server interface + static void onCacheMiss(CacheObject* obj); + + //! Static callback for cache object creation calls + static void onAllocation(CacheObject* obj, unsigned int size); + + //! Static callback for cache object invalidation + static void onInvalidation(CacheObject* obj); +}; + +#endif //SHARED_SCAN_H diff --git a/include/scanserver/temporaryHandler.h b/include/scanserver/temporaryHandler.h new file mode 100644 index 0000000..1b02d35 --- /dev/null +++ b/include/scanserver/temporaryHandler.h @@ -0,0 +1,52 @@ +/** + * @file + * @brief + * + * @author Thomas Escher + */ + +#ifndef TEMPORARY_HANDLER_H +#define TEMPORARY_HANDLER_H + +#include "scanserver/cache/cacheHandler.h" +#include "scanserver/sharedScan.h" +#include "scanserver/cacheIO.h" + + + +/** + * @brief CacheHandler for artificially created CacheObjects by reduction in SharedScan. + * + * This handler saves and loads the contents of a CacheObject with arbitrary contents via CacheIO. + */ +class TemporaryHandler : public CacheHandler +{ +public: + /** + * Constructor + * @param static_data determines overwriting policy. Set false for changing data, true for static write-only-once data. + */ + TemporaryHandler(CacheObject* obj, CacheManager* cm, SharedScan* scan, bool static_data = false); + + /** + * Deserialize data from a file if it exists and written flag is set, otherwise does nothing + * @return whether written flag was set and file was found and loaded + */ + virtual bool load(); + + /** + * Serialize all data into a file + * It will do so if either the written flag isn't set, or static data flag isn't set regardless of the written flag. + */ + virtual void save(unsigned char* data, unsigned int size); + + //! Reset flag for having a cached file, causing reads to fail and saves to overwrite older files. + virtual void invalidate() { m_written = false; } +protected: + SharedScan* m_scan; +private: + CacheIO::IDType m_id; + bool m_written, m_static_data; +}; + +#endif //TEMPORARY_HANDLER_H diff --git a/include/shapes/ConfigFileHough.h b/include/shapes/ConfigFileHough.h new file mode 100644 index 0000000..ebff746 --- /dev/null +++ b/include/shapes/ConfigFileHough.h @@ -0,0 +1,91 @@ +#ifndef _ConfigFileHough_ +#define _ConfigFileHough_ + +#define DEF_CfgFileName "bin/hough.cfg" +#define DEF_MaxDist 500 +#define DEF_MinDist 50 +#define DEF_AccumulatorMax 100 +#define DEF_MinSizeAllPoints 20 +#define DEF_RhoNum 500 +#define DEF_ThetaNum 360 +#define DEF_PhiNum 176 +#define DEF_RhoMax 1500 +#define DEF_MaxPointPlaneDist 1.5 +#define DEF_MaxPlanes 20 +#define DEF_MinPlaneSize 100 +#define DEF_MinPlanarity 0.3 +#define DEF_PlaneRatio 0.5 +#define DEF_PointDist 5.0 +#define DEF_PeakWindow false +#define DEF_WindowSize 8 +#define DEF_TrashMax 20 + +#define DEF_AccumulatorType 3 +#define DEF_PlaneDir "dat/planes/" +#define FNAME_LENGTH 100 + +struct maxcompare { + bool operator()(int* ip1, int* ip2) const { + return (ip1[0] >ip2[0]); + } +}; + +class ConfigFileHough { + +public: + + ConfigFileHough(); + + unsigned int LoadCfg(const char *CfgFile); + void ShowConfiguration(); + + inline char* Get_CfgFileName(); + + inline double Get_MaxDist(); + inline double Get_MinDist(); + inline unsigned int Get_AccumulatorMax(); + inline unsigned int Get_MinSizeAllPoints(); + inline unsigned int Get_RhoNum(); + inline unsigned int Get_ThetaNum(); + inline unsigned int Get_PhiNum(); + inline unsigned int Get_RhoMax(); + inline double Get_MaxPointPlaneDist(); + inline unsigned int Get_MaxPlanes(); + inline unsigned int Get_MinPlaneSize(); + inline double Get_MinPlanarity(); + inline double Get_PlaneRatio(); + inline double Get_PointDist(); + inline bool Get_PeakWindow(); + inline unsigned int Get_WindowSize(); + inline unsigned int Get_TrashMax(); + + inline unsigned int Get_AccumulatorType(); + inline char* Get_PlaneDir(); + +//private: // Parameters are public to avoid having to create mutator functions + + char CfgFileName[FNAME_LENGTH]; + double MaxDist; + double MinDist; + unsigned int AccumulatorMax; + unsigned int MinSizeAllPoints; + unsigned int RhoNum; + unsigned int ThetaNum; + unsigned int PhiNum; + unsigned int RhoMax; + double MaxPointPlaneDist; + unsigned int MaxPlanes; + unsigned int MinPlaneSize; + double MinPlanarity; + double PlaneRatio; + double PointDist; + bool PeakWindow; + unsigned int WindowSize; + unsigned int TrashMax; + unsigned int AccumulatorType; + char PlaneDir[FNAME_LENGTH]; + +}; +#include "ConfigFileHough.icc" + +#endif diff --git a/include/shapes/ConfigFileHough.icc b/include/shapes/ConfigFileHough.icc new file mode 100644 index 0000000..90d8d2e --- /dev/null +++ b/include/shapes/ConfigFileHough.icc @@ -0,0 +1,22 @@ +inline char *ConfigFileHough::Get_CfgFileName(){return CfgFileName;} +inline double ConfigFileHough::Get_MaxDist(){return MaxDist;} +inline double ConfigFileHough::Get_MinDist(){return MinDist;} + +inline unsigned int ConfigFileHough::Get_AccumulatorMax(){return AccumulatorMax;} +inline unsigned int ConfigFileHough::Get_MinSizeAllPoints(){return MinSizeAllPoints;} +inline unsigned int ConfigFileHough::Get_RhoNum(){return RhoNum;} +inline unsigned int ConfigFileHough::Get_ThetaNum(){return ThetaNum;} +inline unsigned int ConfigFileHough::Get_PhiNum(){return PhiNum;} +inline unsigned int ConfigFileHough::Get_RhoMax(){return RhoMax;} +inline double ConfigFileHough::Get_MaxPointPlaneDist(){return MaxPointPlaneDist;} +inline unsigned int ConfigFileHough::Get_MaxPlanes(){return MaxPlanes;} + +inline unsigned int ConfigFileHough::Get_MinPlaneSize(){return MinPlaneSize;} +inline double ConfigFileHough::Get_MinPlanarity(){return MinPlanarity;} +inline double ConfigFileHough::Get_PlaneRatio(){return PlaneRatio;} +inline double ConfigFileHough::Get_PointDist(){return PointDist;} +inline bool ConfigFileHough::Get_PeakWindow(){return PeakWindow;} +inline unsigned int ConfigFileHough::Get_WindowSize(){return WindowSize;} +inline unsigned int ConfigFileHough::Get_TrashMax(){return TrashMax;} +inline unsigned int ConfigFileHough::Get_AccumulatorType(){return AccumulatorType;} +inline char* ConfigFileHough::Get_PlaneDir(){return PlaneDir;} diff --git a/include/shapes/NumberRecOctree.h b/include/shapes/NumberRecOctree.h new file mode 100644 index 0000000..37eaf13 --- /dev/null +++ b/include/shapes/NumberRecOctree.h @@ -0,0 +1,100 @@ +#ifndef NRRANSAC_OCTREE_H +#define NRRANSAC_OCTREE_H + +#include "shapes/geom_math.h" +#include "shapes/ransac_Boctree.h" +#include "slam6d/Boctree.h" + + + +template +class NumberRecOctTree : public RansacOctTree { + + public: +// NumberRecOctTree(vector &pts, T voxelSize, PointType _pointtype = PointType() ) : RansacOctTree(pts, voxelSize, _pointtype) {} + NumberRecOctTree(vector &pts, T voxelSize, PointType _pointtype = PointType() ) : RansacOctTree(pts, voxelSize, _pointtype) {} + + long PointsOnNumber(double plane[4], double maxdist, double _center[3], double radius) { + setNumber(plane, _center, radius, maxdist); + return PointsOnNumber(*BOctTree::root, BOctTree::center, BOctTree::size); + } + + void PointsOnNumber(double plane[4], double maxdist, double _center[3], double radius, vector &n) { + setNumber(plane, _center, radius, maxdist); + PointsOnNumber(*BOctTree::root, BOctTree::center, BOctTree::size, n); + } + + + protected: + long PointsOnNumber(bitoct &node, T *center, T size) { + if (!SphereInAABB(center[0], center[1], center[2], size)) { + return 0; + } + + T ccenter[3]; + bitunion *children; + bitoct::getChildren(node, children); + + long result = 0; + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + childcenter(center, ccenter, size, i); // childrens center + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf get center + // check if leaf contains plane + if ( SphereInAABB(ccenter[0], ccenter[1], ccenter[2], size/2.0) ) { + pointrep *points = children->points; + unsigned int length = points[0].length; + T *point = &(points[1].v); // first point + for(unsigned int iterator = 0; iterator < length; iterator++ ) { + if( closeToPlane(point) ) + result++; + point += BOctTree::POINTDIM; + } + } + } else { // recurse + result += PointsOnNumber( children->node, ccenter, size/2.0); + } + ++children; // next child + } + } + + return result; + } + + void PointsOnNumber(bitoct &node, T *center, T size, vector &n) { + if (!SphereInAABB(center[0], center[1], center[2], size)) { + return ; + } + + T ccenter[3]; + bitunion *children; + bitoct::getChildren(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + childcenter(center, ccenter, size, i); // childrens center + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf get center + // check if leaf contains plane + if ( SphereInAABB(ccenter[0], ccenter[1], ccenter[2], size/2.0) ) { + pointrep *points = children->points; + unsigned int length = points[0].length; + T *point = &(points[1].v); // first point + for(unsigned int iterator = 0; iterator < length; iterator++ ) { + if( closeToPlane(point) ) + n.push_back(point); + point+=BOctTree::POINTDIM; + } + } + } else { // recurse + PointsOnNumber( children->node, ccenter, size/2.0, n); + } + ++children; // next child + } + } + } + +}; + + +#endif diff --git a/include/shapes/accumulator.h b/include/shapes/accumulator.h new file mode 100644 index 0000000..6773e6e --- /dev/null +++ b/include/shapes/accumulator.h @@ -0,0 +1,199 @@ +#ifndef __ACCUMULATOR__ +#define __ACCUMULATOR__ +#include +#include "shapes/ConfigFileHough.h" +#include "slam6d/point.h" +using std::multiset; +#include "shapes/hsm3d.h" + + +double* polar2normal(double theta, double phi); + +/** + * Accumulator for the Hough Transform. For a detailed explanation of the + * different accumulator types please see: + * Dorit Borrmann, Jan Elseberg, Kai Lingemann, and Andreas N眉chter. + * A Data Structure for the 3D Hough Transform for Plane Detection. + * In Proceedings of the 7th IFAC Symposium on Intelligent Autonomous Vehicles (IAV '10), + * Lecce, Italy, September 2010. + */ +class Accumulator { + + public: + /** Contains the configuration for the accumulator */ + ConfigFileHough myConfigFileHough; + /** TODO */ + int count; + /** Constructor */ + Accumulator() { } + /** Destructor */ + virtual ~Accumulator() { } + /** Prints the accumulator so that the data can be shown using gnuplot */ + virtual void printAccumulator() = 0; + /** Sets the counters for each accumulator cells back to 0 */ + virtual void resetAccumulator() = 0; + /** Accumulates the cell containing theta, phi and rho. + * A plane is represented by: + * rho = cos(theta)*sin(phi)*x + sin(phi)*sin(theta)*y + cos(phi)*z + * @param theta theta angle of the plane + * @param phi phi angle of the plane + * @param rho distance of the plane + */ + virtual bool accumulate(double theta, double phi, double rho) = 0; + /** Accumulate all the cells that correspond to planes that go through p. + * A plane is represented by: + * rho = cos(theta)*sin(phi)*x + sin(phi)*sin(theta)*y + cos(phi)*z + * @param p the point that is transformed into Hough Space + */ + virtual void accumulate(Point p) = 0; + /** Accumulates all the cells that correspond to planes that go through p. + * @param p the point that is transformed into Hough Space + * @return the plane whose counter has exceeded the + * ConfigFileHough.GetAccumulatorMax , or {-1,_,_} + */ + virtual double* accumulateRet(Point p) = 0; + /** Accumulate all the cells that correspond to planes that go through p. + * @param p the point that is transformed into Hough Space + * @return the cell that has the maximum counter of all cells touched by the + * Hough Transform of p + */ + virtual int* accumulateAPHT(Point p) = 0; + /** + * Given the representation (rho, theta, phi) of a plane, the function + * calculates the center of the cell that this plane belongs to. + * A plane is represented by: + * rho = cos(theta)*sin(phi)*x + sin(phi)*sin(theta)*y + cos(phi)*z + * @param theta theta angle of the plane + * @param phi phi angle of the plane + * @param rho distance of the plane (newly calculated distance will be + * written here) + * @return the normal vector of the plane in the center of the cell + */ + virtual double* getMax(double &rho, double &theta, double &phi) = 0; + /** + * Given a cell in the accumulator, the function calculates the plane that + * is represented by this cell, i.e., the rho, theta, phi representation of + * the plane in the center of the cell. + * @param cell the indices of the cell in the accumulator + * @return normal vector (x,y,z) and distance (rho) of the plane representation {x, y, z, rho} + */ + virtual double* getMax(int* cell) = 0; + /** + * Returns a sorted list of the all cells in the accumulator. + * @return a sorted multiset containing the cells as (counter, rho_index, theta_index, phi_index) + */ + virtual multiset* getMax() = 0; + /** + * Cleans the accumulator using a very simple sliding window strategy. A + * quadratic window is moved over the accumulator. In each step all the + * counters in the window except the maximum counter are set to 0. + * @param the size of the window + */ + virtual void peakWindow(int size) = 0; +}; + +/** + * The AccumulatorSimple represents the Hough Space as an array. Each dimension + * is evenly discretized. This means that when projected onto the unit sphere + * the cells vary significantly in size. + */ +class AccumulatorSimple : public Accumulator { + public: + AccumulatorSimple(ConfigFileHough myCfg); + virtual ~AccumulatorSimple(); + virtual void printAccumulator(); + void resetAccumulator(); + bool accumulate(double theta, double phi, double rho); + void accumulate(Point p); + double* accumulateRet(Point p); + int* accumulateAPHT(Point p); + double* getMax(double &rho, double &theta, double &phi); + double* getMax(int* cell); + void peakWindow(int size); + multiset* getMax(); + private: + int ***accumulator; +}; + +/** + * The AccumulatorCube maps the unit sphere onto a cube. Each face of the cube + * is evenly discretized. + */ +class AccumulatorCube : public Accumulator { + public: + AccumulatorCube(ConfigFileHough myCfg); + virtual ~AccumulatorCube(); + virtual void printAccumulator(); + void printAccumulator2(); + void resetAccumulator(); + void peakWindow(int size); + bool accumulate(double theta, double phi, double rho); + void accumulate(Point p); + double* accumulateRet(Point p); + int* accumulateAPHT(Point p); + double* getMax(double &rho, double &theta, double &phi); + double* getMax(int* cell); + multiset* getMax(); + private: + int nrCells; + int ****accumulator; + buffer_point coords_s2_to_cell(double *n, unsigned int width); + double* coords_cube_to_s2(buffer_point lastbp, unsigned int width); + void coords_cube_for_print(buffer_point src, double** result, unsigned int width); + buffer_point lastbp; +}; + +/** + * The AccumulatorBall discretizes the unit sphere slice-wise. For each slice a + * a stepwidth in calculated for discretization in direction of theta is + * calculated. + */ +class AccumulatorBall : public Accumulator { + public: + AccumulatorBall(ConfigFileHough myCfg); + virtual ~AccumulatorBall(); + virtual void printAccumulator(); + void resetAccumulator(); + bool accumulate(double theta, double phi, double rho); + void accumulate(Point p); + double* accumulateRet(Point p); + int* accumulateAPHT(Point p); + double* getMax(double &rho, double &theta, double &phi); + double* getMax(int* cell); + multiset* getMax(); + void peakWindow(int size); + private: + int ***accumulator; + int *ballNr; +}; + +/** + * The AccumulatorBallI is an improvement of the AccumulatorBall. It + * discretizes the unit sphere slice-wise. For each slice a stepwidth in + * calculated for discretization in direction of theta is calculated. The + * difference to AccumulatorBall is that both of the poles are covered by on + * cell each. + */ +class AccumulatorBallI : public Accumulator { + public: + AccumulatorBallI(ConfigFileHough myCfg); + virtual ~AccumulatorBallI(); + virtual void printAccumulator(); + void resetAccumulator(); + bool accumulate(double theta, double phi, double rho); + void accumulate(Point p); + double* accumulateRet(Point p); + int* accumulateAPHT(Point p); + double* getMax(double &rho, double &theta, double &phi); + double* getMax(int* cell); + multiset* getMax(); + void peakWindow(int size); + private: + int ***accumulator; + int *ballNr; + double step; // in degree + double phi_top_deg; + double phi_top_rad; +}; + +#endif diff --git a/include/shapes/config_sickday.h b/include/shapes/config_sickday.h new file mode 100644 index 0000000..ca2559b --- /dev/null +++ b/include/shapes/config_sickday.h @@ -0,0 +1,47 @@ +// ===================================================================================== +// +// Filename: sickday.h +// +// Description: +// +// Version: 1.0 +// Created: 09/26/2010 02:08:25 AM +// Revision: none +// Compiler: g++ +// +// Author: Jan Elseberg (), jelseber@uos.de +// Company: Universitaet Osnabrueck +// +// ===================================================================================== + +const int MIN_NR_PTS = 1200; + +const double IMG_RES = 2.0; // in cm +const int BOARD_SIZE_X = 59.40 / IMG_RES; // number of pixels wide +const int BOARD_SIZE_Z = 84.10 / IMG_RES; // number of pixels high + +const int WHITE_BORDER = 4; // number of pixels on the border to whiten. 10 cm ? + +const double MINREFL = -10.0; +const double MAXREFL = 10.0; +const double REFL_THRESHOLD = (0.0 - MINREFL ) / ( MAXREFL - MINREFL); // threshold for binarizing image + +const double MAX_DIST_TO_PLANE = 10.0; // RANSAC max distance to plane +const double MIN_SCORE = 0.65; // minimal score for accepting the board hypothesis (between 0 and 1) +const double SCORE_SCALE = 0.50; // score is scaled so that SCORE_SCALE is probability 0 + +/////////////// constants for OCR +const string OCRRESULT = "/tmp/ocrresult.txt"; +const string OCRERROR = "/tmp/ocrerr.txt"; +/////////////// number (except 1) are usually 17,27 pixel wide,high +// +const int MIN_NR_WIDTH = 28.0 / IMG_RES; // 14 pixel ? All Numbers except 1 must at least be this wide +const int MIN_1_WIDTH = 16.0 / IMG_RES; // 8 pixel ? Number 1 must at least be this wide +const int MIN_NR_HEIGHT = 46.0 / IMG_RES; // 23 pixel ? Numbers must at least be this high + +const int MAX_1_WIDTH = 28.0 / IMG_RES; // 14 pixel ? Number 1 must at most be this wide +const int MAX_NR_WIDTH = 42.0 / IMG_RES; // 21 pixel ? All Numbers except 1 must at most be this wide +const int MAX_NR_HEIGHT = 62.0 / IMG_RES; // 31 pixel ? Numbers must at most be this high + + + diff --git a/include/shapes/convexplane.h b/include/shapes/convexplane.h new file mode 100644 index 0000000..e4aef30 --- /dev/null +++ b/include/shapes/convexplane.h @@ -0,0 +1,45 @@ +#ifndef __CONVEX_PLANE_H__ +#define __CONVEX_PLANE_H__ + +#include "slam6d/point.h" + +#include +#include +using std::vector; +using std::list; + +#include +using std::set; + + + +class ConvexPlane { +protected: + ConvexPlane() {}; + +public: + static bool furtherleft(double * point, double * start, double * end); + static void JarvisMarchConvexHull(list &points, vector &convex_hull); + ConvexPlane(double _n[3], double _rho, char _direction, vector _convex_hull); + ConvexPlane(double plane[4], vector &points ); + ConvexPlane(double plane[4]); + ConvexPlane(vector &partialplanes); + ~ConvexPlane(); + void writePlane(std::string, int counter); + void writeNormal(std::string, int counter); + vector getConvexHull(); + void getNormal(double* normal, double* origin); + void project(const double *p, double *p1); + + double n[3]; + double rho; + char direction; + int pointsize; + vector convex_hull; + bool isWall(); + bool isHorizontal(); + void horizontalize(); + void verticalize(); +}; + +#endif diff --git a/include/shapes/geom_math.h b/include/shapes/geom_math.h new file mode 100644 index 0000000..d6e96ce --- /dev/null +++ b/include/shapes/geom_math.h @@ -0,0 +1,88 @@ +#ifndef __GEOM_MATH_H__ +#define __GEOM_MATH_H__ + +#include "newmat/newmatio.h" +#include "newmat/newmatap.h" +//using namespace NEWMAT; + +#include +using std::vector; + +template +T planeDist(const T *p, F nx, F ny, F nz, F d) { + return p[0]*nx + p[1]*ny + p[2]*nz + d; +} +bool SphereInAABB( float x, float y, float z, float size ) ; +void setNumber(double *plane, double *center, double _radius, double _maxDist) ; +bool PlaneInCube( float x, float y, float z, float size, float nx, float ny, float nz, float d); +bool PlaneInCube( float x, float y, float z, float size); +bool closeToPlane(double *p); + +// given a set of points this will calculate the best fit plane +template +static T fitPlane(vector &ppoints, T plane[4], T centroid[3]) { + NEWMAT::SymmetricMatrix A(3); + A = 0; + int n; + n = ppoints.size(); + double cx, cy, cz; + cx = 0.0; + cy = 0.0; + cz = 0.0; + + for (int i = 0; i < n; i++) { + T* p = ppoints[i]; + cx += p[0]; + cy += p[1]; + cz += p[2]; + } + cx /= n; + cy /= n; + cz /= n; + + centroid[0] = cx; + centroid[1] = cy; + centroid[2] = cz; + + for (int i = 0; i < n; i++) { + T* p = ppoints[i]; + A(1, 1) += (p[0] - cx)*(p[0] - cx); + A(2, 2) += (p[1] - cy)*(p[1] - cy); + A(3, 3) += (p[2] - cz)*(p[2] - cz); + A(1, 2) += (p[0] - cx)*(p[1] - cy); + A(1, 3) += (p[0] - cx)*(p[2] - cz); + A(2, 3) += (p[1] - cy)*(p[2] - cz); + } + + NEWMAT::DiagonalMatrix D; + NEWMAT::Matrix V; + try { + NEWMAT::Jacobi(A,D,V); + } catch (NEWMAT::ConvergenceException) { + cout << "couldn't find plane..." << endl; + return 0; + } + /* + cout << "A: "<< endl << A << endl; + cout << "D: "<< endl << D << endl; + cout << "V: "<< endl << V << endl; + */ + int index; + D.MinimumAbsoluteValue1(index); + + plane[0] = V(1,index); + plane[1] = V(2,index); + plane[2] = V(3,index); + plane[3] = -planeDist(plane, cx, cy, cz, 0.0); + //plane[3] = -(plane[0]*cx + plane[1]*cy + plane[2]*cz); + + double sum = 0.0; + for(int i = 1; i < 4; i++) { + sum += D(i); + } + sum = D(index)/sum; + + return D(index)/n; +} + +#endif diff --git a/include/shapes/hough.h b/include/shapes/hough.h new file mode 100644 index 0000000..d5903ea --- /dev/null +++ b/include/shapes/hough.h @@ -0,0 +1,73 @@ +#ifndef __HOUGH_PLANE_H__ +#define __HOUGH_PLANE_H__ + +#include "shapes/convexplane.h" +#include "shapes/ConfigFileHough.h" +//#include "wykobi/wykobi_algorithm.hpp" +#include "slam6d/point.h" +#include "slam6d/scan.h" +#include "shapes/accumulator.h" +#include "newmat/newmatio.h" +#include +using std::ofstream; +typedef vector vPtPair; ///< just a typedef: vPtPair = vector of type PtPair + +struct valuecompare { + bool operator()(int* ip1, int* ip2) const { + if(ip1[0] > ip2[0]) { + return true; + }else { + return false; + } + } +}; + +class Hough { + +public: + ofstream out; + ConfigFileHough myConfigFileHough; + Accumulator *acc; + + int nrEntries; + vector * allPoints; + bool maximum; + bool quiet; + Scan *PlaneScan; + Scan *PlaneScan2; + int planeCounter; + int scanCounter; + // TODO delete planes in Constructor + vector planes; + vector coloredPoints; + + Hough(bool quiet = true, std::string configFile = ""); // this constructor allows the Scan to be set later + Hough(Scan * GlobalScan, bool quiet = true, std::string configFile = "bin/hough.cfg" ); + void SetScan(Scan*); + ~Hough(); + int RHT(); + void SHT(); + void PHT(); + void PPHT(); + void APHT(); + + //vector& getPlanes(); + bool distanceOK(Point p1, Point p2, Point p3); + bool calculatePlane(Point p1, Point p2, Point p3, double &theta, double &phi, double &rho); + + double * const* deletePoints(vector &model, int &size); + double * const* getPoints(int &size); + int deletePoints(double * n, double rho); + int deletePointsQuad(double * n, double rho); + + int writePlanes(int startCount); + void writePlanes(std::string); + int cluster(vPtPair &pairs, double minx, double max, double miny, double maxy); + void writePlanePoints(std::string); + void writeAllPoints(int index, vector points); + +}; + +double calcPlane(vector &ppoint, double plane[4]); + +#endif diff --git a/include/shapes/hsm3d.h b/include/shapes/hsm3d.h new file mode 100644 index 0000000..66ad156 --- /dev/null +++ b/include/shapes/hsm3d.h @@ -0,0 +1,92 @@ +/** + * @file Representation of the Accumulator Cube. + * + * This file contains the functions necessary to perform the transformations + * between normal vectors and cube coordinates. The representation is taken + * from + * A. Censi and S. Carpin, + * HSM3D: Feature-Less Global 6DOF Scan-Matching in the Hough/Radon Domain, + * In Proceedings of the IEEE International Conference on Robotics and + * Automation, 2009. + * + * The code in this file is a modified version of the code given by the authors + * on http://purl.org/censi/2008/hsm3d + * + * We gratefully appreciate the work of the authors and thank them for making + * the code publically available. + * + * @author Dorit Borrmann. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +/* + + AUTORIGHTS + Copyright (c) 2008 The Regents of the University of California. + All Rights Reserved. + + Created by Stefano Carpin + University of California, Merced, Robotics Lab - School of Engineering + + Permission to use, copy, modify, and distribute this software and its + documentation for educational, research and non-profit purposes, without fee, + and without a written agreement is hereby granted, provided that the above + copyright notice, this paragraph and the following three paragraphs appear in + all copies. + + This software program and documentation are copyrighted by The Regents of the + University of California. The software program and documentation are supplied + "as is", without any accompanying services from The Regents. The Regents does + not warrant that the operation of the program will be uninterrupted or + error-free. The end-user understands that the program was developed for + research purposes and is advised not to rely exclusively on the program for + any reason. + + IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR + DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING + LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, + EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY + WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED + HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO + OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR + MODIFICATIONS. + + */ + +#ifndef __HSM3D_H__ +#define __HSM3D_H__ +#include +/*! + \brief A point on the face of the cube with edge size 2 + and centered in 0,0,0 + */ +struct cube_point { + /*! Face of the cube. Must be between 1 and 6 */ + unsigned short int face; + /*! First coordinate on the face. Must be between -1 and 1*/ + double u; + /*! Second coordinate on the face. Must be between -1 and 1*/ + double v; +}; + +/*! + \brief Buffer representing a discretization of cube_point elements + as patches on faces + + Discretizes the the cube centered with edge size 2 + and centered in 0,0,0 using the same number of patches on each face. + Resolution is not stored in the class. + */ +struct buffer_point { + /*! Face of the cube. Must be between 1 and 6 */ + unsigned short int face; + /*! First patch index */ + unsigned int i; + /*! Second path index */ + unsigned int j; +}; + +bool real_compare(double x, double y); + +#endif diff --git a/include/shapes/image.h b/include/shapes/image.h new file mode 100644 index 0000000..eb5d75a --- /dev/null +++ b/include/shapes/image.h @@ -0,0 +1,43 @@ +#ifndef IMAGE_H +#define IMAGE_H + +#include +#include "slam6d/point.h" + +using std::vector; + +class Image { + +public: + Image(float _minw, float _maxw, float _minh, float _maxh, float _resolution, + const vector *points = 0); + Image(float _minw, float _maxw, float _minh, float _maxh, float _resolution, const vector *points = 0); + Image(float _minw, float _maxw, float _minh, float _maxh, float _resolution, double * const* points, int size); + int getWidth(); + int getHeight(); + float getValueAt(int width, int height); + float getMin(); + float getMax(); + + int calcMarker(float threshold, int ** regdat); + void mergeregion(int x, int y, int delreg, int targetreg, int** img, int it = 0); + int blobColor(float dist, int ** regdat); + int cluster(float dist, int** dat, int ** regdat); + void writeCenters(int regions, int** clusters, const vector *points); + void printScans(int ** regdat, double * const* points, int size); + void printImage(const char* filename, bool color, int** img, int height, int width, int min, int max); + void printImage(const char *filename, bool color); + ~Image(); + +private: + int width; + int height; + float minw; + float maxw; + float minh; + float maxh; + float threshold; + float ** data; +}; + +#endif diff --git a/include/shapes/integralimg.h b/include/shapes/integralimg.h new file mode 100644 index 0000000..7b929ed --- /dev/null +++ b/include/shapes/integralimg.h @@ -0,0 +1,108 @@ +// ===================================================================================== +// +// Filename: integralimg.cc +// +// Description: +// +// Version: 1.0 +// Created: 09/20/2010 06:58:34 PM +// Revision: none +// Compiler: g++ +// +// Author: Jan Elseberg (), jelseber@uos.de +// Company: Universitaet Osnabrueck +// +// ===================================================================================== +// +#include +using std::cout; +using std::cerr; +using std::endl; + + +#ifndef __INTEGRALIMG_H__ +#define __INTEGRALIMG_H__ + +#define TBB 5 +#define SBB 7 +#define HEIGHT 26 +//#define HEIGHT 40 +#define WIDTH 30 +const int black[4][2] = { {0,0}, {WIDTH+2*SBB,0}, {WIDTH+2*SBB,HEIGHT+TBB}, {0,HEIGHT+TBB}}; +const int white[4][2] = { {SBB,TBB}, {WIDTH+SBB,TBB}, {WIDTH+SBB,HEIGHT+TBB}, {SBB,HEIGHT+TBB}}; +/*const int black[4][2] = { {0,0}, {30+2*SBB,0}, {30+2*SBB,40+TBB}, {0,40+TBB}}; +const int white[4][2] = { {SBB,TBB}, {30+SBB,TBB}, {30+SBB,40+TBB}, {SBB,40+TBB}}; +*/ +class integral_img { +public: + + integral_img(int **_img, int x, int y) { + img = _img; + X = x; + Y = y; + + for (int i = 1; i < X; i++) { + img[i][0] += img[i-1][0]; + } + for (int j = 1; j < Y; j++) { + img[0][j] += img[0][j-1]; + } + + for (int i = 1; i < X; i++) { + for (int j = 1; j < Y; j++) { + img[i][j] += img[i-1][j] + img[i][j-1] - img[i-1][j-1]; + } + } + } + + int At(int x, int y) { + if (x < 0 || y < 0) { + return 0; + } + if (x >= X) x = X - 1; + if (y >= Y) y = Y - 1; + return img[x][y]; + } + + double getBest(int &x, int&y) { + int score; + int maxscore = 0; + int maxx = 0; + int maxy = 0; + + + for (int i = -SBB; i < X+SBB; i++) { + for (int j = -TBB; j < Y+TBB; j++) { + score = 2*getWhite(i,j) - getBlack(i,j); +// cout << i << " " << j << ": W " << getWhite(i,j)<< " B " << getBlack(i,j) << " SCORE " << score << endl; + + if (score > maxscore) { + maxscore = score; + maxx = i; + maxy = j; + } + } + } + x = maxx + SBB; + y = maxy + TBB; + return (double)maxscore/(double)(HEIGHT*WIDTH); + } + + inline int getWhite(int x, int y) { + return At(x + white[0][0], y + white[0][1]) + At(x + white[2][0], y + white[2][1]) - + At(x + white[1][0], y + white[1][1]) - At(x + white[3][0], y + white[3][1]); + } + + inline int getBlack(int x, int y) { + return At(x + black[0][0], y + black[0][1]) + At(x + black[2][0], y + black[2][1]) - + At(x + black[1][0], y + black[1][1]) - At(x + black[3][0], y + black[3][1]); + } + + + int **img; + int X; + int Y; + +}; + +#endif diff --git a/include/shapes/numberrec.h b/include/shapes/numberrec.h new file mode 100644 index 0000000..6cca6ea --- /dev/null +++ b/include/shapes/numberrec.h @@ -0,0 +1,24 @@ +// ===================================================================================== +// +// Filename: numberrec.h +// +// Description: +// +// Version: 1.0 +// Created: 09/26/2010 01:26:59 AM +// Revision: none +// Compiler: g++ +// +// Author: Jan Elseberg (), jelseber@uos.de +// Company: Universitaet Osnabrueck +// +// ===================================================================================== +#ifndef __NUMBERREC_H__ +#define __NUMBERREC_H__ + + +//void my_test(); +bool gocr_recognizeNumber(string &filename, int &number, double &probability); + +#endif + diff --git a/include/shapes/numbers.h b/include/shapes/numbers.h new file mode 100644 index 0000000..b4d36eb --- /dev/null +++ b/include/shapes/numbers.h @@ -0,0 +1,231 @@ +// ===================================================================================== +// +// Filename: numbers.h +// +// Description: +// +// Version: 1.0 +// Created: 09/24/2010 02:03:48 PM +// Revision: none +// Compiler: g++ +// +// Author: Jan Elseberg (), jelseber@uos.de +// Company: Universitaet Osnabrueck +// +// ===================================================================================== + +#ifndef __NUMBERS_H_ +#define __NUMBERS_H_ + +class numberState { +public: + numberState() : number(0), char_p(0), board_p(0) { + for (int i = 0; i < 3; i++) { + position[i] = 0.0; + } + }; + numberState(int _number) : number(_number), char_p(0), board_p(0) { + for (int i = 0; i < 3; i++) { + position[i] = 0.0; + } + }; + numberState(int _number, double _char_p, double _board_p, double _position[3]) + : number(_number), char_p(_char_p), board_p(_board_p) + { + for (int i = 0; i < 3; i++) { + position[i] = _position[i]; + } + for (int i = 0; i < 4; i++) { + plane[i] = 0; + } + } + numberState(int _number, double _char_p, double _board_p, double _position[3], double _plane[4]) + : number(_number), char_p(_char_p), board_p(_board_p) + { + for (int i = 0; i < 3; i++) { + position[i] = _position[i]; + } + for (int i = 0; i < 4; i++) { + plane[i] = _plane[i]; + } + } + + double dist(numberState &ns) { + double x = ns.position[0] - position[0]; + double y = ns.position[1] - position[1]; + double z = ns.position[2] - position[2]; + + return sqrt( x*x + y*y +z*z ); + } + + int number; + double char_p; + double board_p; + double position[3]; + double plane[4]; + +}; + +inline ostream& operator<<(ostream& os, const numberState ns) +{ + os << "P(" << ns.number << ") = " << ns.char_p; + os << " P(" << ns.position[0] << ", " << ns.position[1] << ", " << ns.position[2] << ") = " << ns.board_p; + return os; +} + +class numberConsensus { +public: + + numberConsensus() { + sum_board_probability = 0.0; + sum_char_probability = 0.0; + consensus = numberState(); + } + + numberConsensus(int number) { + sum_board_probability = 0.0; + sum_char_probability = 0.0; + consensus = numberState(number); + } + + void addObservation(int number, double cp, double bp, double pos[3], double plane[4]) { + addObservation( numberState(number, cp, bp, pos, plane) ); + } + + bool isClose(double pos[3]) { + return isClose( numberState(0, 0, 0, pos) ); + } + + bool isClose(numberState ns) { + for (unsigned int i = 0; i < clusters.size(); i++) { + if (ccenters[i].dist(ns) < 100.0 ) { // should be good enough + return true; + } + } + return false; + } + + void addObservation(numberState ns) { + if (ns.number != consensus.number) return; + +// observations.push_back(ns); + sum_board_probability += ns.board_p; + sum_char_probability += ns.char_p; + + if (clusters.empty()) { + vector vec; + vec.push_back(ns); + ccenters.push_back(ns); + clusters.push_back(vec); + + updateConsensus(0); + return; + } + + for (unsigned int i = 0; i < clusters.size(); i++) { + if (ccenters[i].dist(ns) < 100.0 ) { // should be good enough + cout << "new point is close to previous cluster..." << endl; + clusters[i].push_back(ns); + updateConsensus(i); + return; + } + } + + // new cluster + vector vec; + vec.push_back(ns); + ccenters.push_back(ns); + clusters.push_back(vec); + + updateConsensus(clusters.size() -1); + return; + } + + void updateConsensus(int changed) { + // First compute new representative for the changed cluster + double pos[3]; pos[0] = pos[1] = pos[2] = 0.0; + + vector changed_cluster = clusters[changed]; + for (unsigned int i = 0; i < changed_cluster.size(); i++) { + for (int j = 0; j < 3; j++) + pos[j] += changed_cluster[i].position[j]; + } + for (int j = 0; j < 3; j++) + pos[j] = pos[j] / changed_cluster.size(); + + // set representative + ccenters[changed] = numberState(consensus.number, 0, 0, pos ) ; + + if (clusters.size() == 1) { // special case + if (clusters[0].size() == 1) { // + cout << "first number found..." << endl; + ccenters[0].char_p = clusters[0][0].char_p; + ccenters[0].board_p = clusters[0][0].board_p; + consensus = ccenters[0]; + return; + } + } + + + for (unsigned int i = 0; i < clusters.size(); i++) { + double sum_bp = 0.0; + double sum_cp = 0.0; + for (unsigned int j = 0; j < clusters[i].size(); j++) { + sum_bp += clusters[i][j].board_p; + sum_cp += clusters[i][j].char_p; + } + ccenters[i].char_p = sum_cp / sum_char_probability; + ccenters[i].board_p = sum_bp / sum_board_probability; + } + + + consensus = ccenters[0]; + for (unsigned int i = 1; i < ccenters.size(); i++) { + if (consensus.char_p * consensus.board_p < ccenters[i].char_p * ccenters[i].board_p) { + consensus = ccenters[i]; + } + } + + } +/* + void updateConsensus() { + double pos[3]; pos[0] = pos[1] = pos[2] = 0.0; + double plane[4]; + double bp = 0.0; + double cp = 0.0; + + for (unsigned int i = 0; i < observations.size(); i++) { + for (int j = 0; j < 3; j++) + pos[j] += observations[i].board_p * observations[i].position[j]; + + cp += observations[i].char_p; + bp += observations[i].board_p; + } + + for (int j = 0; j < 3; j++) + pos[j] = pos[j] / observations.size(); + cp = cp / observations.size(); + bp = bp / observations.size(); + + consensus = numberState(consensus.number, cp, bp, pos, plane); + } + */ + + numberState getConsensus() { + return consensus; + } + +private: + numberState consensus; +// vector observations; + + vector< vector > clusters; + vector ccenters; + + double sum_char_probability; + double sum_board_probability; + + +}; + +#endif diff --git a/include/shapes/parascan.h b/include/shapes/parascan.h new file mode 100644 index 0000000..35641a4 --- /dev/null +++ b/include/shapes/parascan.h @@ -0,0 +1,35 @@ +/* parascan.h */ + +#ifndef parascan +#define parascan + +/* dependencies */ +/* -------------------------------------------------------------------------- */ + +/* constant definitions */ +/* -------------------------------------------------------------------------- */ + +#define LF 0x0A /* line feed: zeilenvorschub */ +#define CR 0x20 /* carriage return: wagenruecklauf */ +#define COMMENT 0x3B /* ';' als kommentartrennzeichen */ +#define NAMELEN 80 /* maximale Laenge der Dateinamen */ + +/* typedefinitions */ +/* -------------------------------------------------------------------------- */ + +/* macros */ +/* -------------------------------------------------------------------------- */ + +/* prototyps */ +/* -------------------------------------------------------------------------- */ + +extern int paramtr_scan_int(FILE *stream, const char *search,int defaultval); +extern double paramtr_scan_double(FILE *stream, const char *search,double defaultval); +extern bool paramtr_scan_str(FILE *stream, const char *search, char *target); +extern int paramtr_scan_echo(const char *filename, const char *search); +/* descriptions */ +/* -------------------------------------------------------------------------- */ + + +#endif /* end of parascan.h */ + diff --git a/include/shapes/ppair.h b/include/shapes/ppair.h new file mode 100644 index 0000000..b6a2b53 --- /dev/null +++ b/include/shapes/ppair.h @@ -0,0 +1,69 @@ +/** + * @file + * @brief Definition of plane pairs + * + * @author + * @author Jan Elseberg. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Dorit Borrmann. School of Engineering and Science, Jacobs University Bremen gGmbH, Germany. + */ +#ifndef __PPAIR_H__ +#define __PPAIR_H__ + +#include "convexplane.h" +/** + * @brief Representing point pairs + */ +class PPair { +public: + enum TYPE {UNDEFINED, EQUAL, PARALLEL, PERPENDICULAR}; + + inline PPair(ConvexPlane *p1, ConvexPlane *p2); + inline PPair() : p1(0), p2(0) {}; + + ConvexPlane *p1; ///< The two points forming the pair + ConvexPlane *p2; ///< The two points forming the pair + double angle; + double center_distance; // or poly distance? + double plane_distance; + // intersection linie + Point istart, iend; + + TYPE type; + +}; + +inline PPair::PPair(ConvexPlane *_p1, ConvexPlane *_p2) { + type = UNDEFINED; + p1 = _p1; + p2 = _p2; + + // TODO hier richtigen wert berechnen + center_distance = 0.0; + plane_distance = fabs(p1->rho - p2->rho); + double tmp = p1->n[0] * p2->n[0] + p1->n[1] * p2->n[1] + p1->n[2] * p2->n[2]; + if (tmp > 1.0) { + angle = 0.0; + } else if (tmp < -1.0) { + angle = M_PI; + } else { + angle = acos( tmp ); + } + if (angle > M_PI / 2.0) { + angle = M_PI - angle; + } + + double nnx = p2->n[0]/p2->n[0]; + + double y = (p2->rho - nnx * p1->rho) / (p2->n[1] - nnx * p1->n[1]); + double x = (p1->rho - p1->n[1] * y) / p1->n[0]; + double z = 0.0; + + istart = Point(x,y,z); + + double nn[3]; + Cross(p1->n, p2->n, nn); + + iend = Point(x + nn[0], y + nn[1], nn[2]); +} + +#endif diff --git a/include/shapes/quadtree.h b/include/shapes/quadtree.h new file mode 100644 index 0000000..c3ec621 --- /dev/null +++ b/include/shapes/quadtree.h @@ -0,0 +1,116 @@ +#ifndef QUADTREE_H +#define QUADTREE_H + +#include +#include +using std::cout; +using std::cerr; +using std::endl; +using std::ios; +using std::ofstream; +#include +using std::vector; +#include +using std::set; + +#include "slam6d/globals.icc" // globals constant definitions +//#include "defs.h" +//#include "plane.h" + +const int MIN_PTS_IN_BUCKET = -1; + + +/* +++++++++-------------++++++++++++ + * CLASS NAME + * QuadTree + * DESCRIPTION + * A quadtree is used to convert an + * unbounded 3D plane to a 3D surface, + * such that it can be drawn to the + * screen. + * The code is similar to the octree + * class. + * PARAMETERS + * -- + * +++++++++-------------++++++++++++ */ + +class QuadTree { + public: + + //QuadTree(double **pts, int n, double, Plane *); + QuadTree(double **pts, int n, double, double min_angle); + ~QuadTree(); + + vector >& getClusters(); + +// int outputQuad(char *); +// void getQuadTreePoints(vector &quad_x, vector &quad_y, vector &quad_z); +// void getQuadTreeColor(double &colorR, double &colorG, double &colorB); + + private: + + QuadTree(vector &splitPoints, double center[2], + double x_size, double y_size,set &n, + set &e, set &s, set &w); + + int countPoints(double **pts, int n, double center[2], + double x_size, double y_size); + + int countPointsAndQueue(const vector &i_points, + vector &points, + double center[2], + double x_size, double y_size, + set &n, + set &e, + set &s, + set &w); + + int countPointsAndQueue(double **pts, int , + vector &points, + double center[2], + double x_size, double y_size, + set &no, + set &e, + set &s, + set &w); + + // int _OutputQuad(ofstream& quadout); + vector > clusters; + set north; + set south; + set east; + set west; + + QuadTree *child[4]; + + vector points; + double center[2]; + double x_size, y_size; + double size2; + + int leaf; + + static int anz; + static double qSize; + static double dist; + + static bool close(double *p, set &cluster); + static bool close(double *p1, double *p2); + static int where(double *p1, vector >& clusters); + static vector >& clusterCells(vector > &clusters1, + set border1, + vector > &clusters2, + set border2, vector >&cl); +// static Plane *basePlane; +}; + +#endif + + + + + + + + + diff --git a/include/shapes/ransac.h b/include/shapes/ransac.h new file mode 100644 index 0000000..7d8ec9a --- /dev/null +++ b/include/shapes/ransac.h @@ -0,0 +1,55 @@ +#ifndef __RANSAC_H__ +#define __RANSAC_H__ + +#include "shape.h" +#include "slam6d/scan.h" +#include "shapes/ransac_Boctree.h" + +// TODO implement some parameters to modify ransac (maybe in CollisionShape?) +template +void Ransac(CollisionShape &shape, Scan *scan, vector *best_points = 0) { + int best_score = 0; + CollisionShape *best = shape.copy(); + + // stores 3 sample points + vector ps; + // create octree from the points + DataXYZ xyz(scan->get("xyz reduced")); + RansacOctTree *oct = new RansacOctTree(PointerArray(xyz).get(), xyz.size(), 50.0 ); + + cout << "start 5000 iterations" << endl; + for(int i = 0; i < 5000; i++) { + ps.clear(); + // randomly select points from the octree + oct->DrawPoints(ps, shape.getNrPoints()); + // compute shape parameters from points + if ( shape.hypothesize(ps) ) { + // count number of points on the shape + int r = oct->PointsOnShape(shape); + if (r > best_score) { + if (best) delete best; + // remember this best fitted shape + best_score = r; + best = shape.copy(); + } + } + } + cout << "5000 iterations done" << endl; + if (best_points) { + best_points->clear(); + oct->PointsOnShape(*best, *best_points); + cout << "Nr points before refinement " << best_points->size() << endl; + best->refine(best_points); + best_points->clear(); + oct->PointsOnShape(*best, *best_points); + cout << "Nr points after refinement " << best_points->size() << endl; + } + shape = *best; + delete best; + + delete oct; + + +} + +#endif diff --git a/include/shapes/ransac_Boctree.h b/include/shapes/ransac_Boctree.h new file mode 100644 index 0000000..db64a7e --- /dev/null +++ b/include/shapes/ransac_Boctree.h @@ -0,0 +1,249 @@ +/** + * @file + * @brief Efficient representation of an octree for ransac + * @author Jan Elsberg. Automation Group, Jacobs University Bremen gGmbH, Germany. + */ + +#ifndef RANSAC_OCTREE_H +#define RANSAC_OCTREE_H + +#include + +#include +using std::vector; +#include +using std::deque; +#include +using std::set; +#include +using std::list; +#include +#include +#include + +#include "shapes/geom_math.h" + +#include "slam6d/globals.icc" +#include "slam6d/Boctree.h" +#include "shape.h" + +/** + * @brief Octree + * + * A cubic bounding box is calculated + * from the given 3D points. Then it + * is recusivly subdivided into smaller + * subboxes + */ +template +class RansacOctTree : public BOctTree { + +public: + + template + RansacOctTree(P* const* pts, int n, T _voxelSize, PointType _pointtype = PointType() ) : BOctTree(pts, n, _voxelSize, _pointtype) {} + + // RansacOctTree(vector &pts, T voxelSize, PointType _pointtype = PointType() ) : BOctTree(pts, voxelSize, _pointtype) {} + + RansacOctTree(std::string filename) : BOctTree (filename) {} + + void DrawPoints(vector &p, unsigned char nrp) { + DrawPoints(p, *BOctTree::root, nrp); + } + + + unsigned long PointsOnShape(CollisionShape &shape) { + return PointsOnShape(*BOctTree::root, BOctTree::center, BOctTree::size, shape); + } + + void PointsOnShape(CollisionShape &shape, vector &points) { + PointsOnShape(*BOctTree::root, BOctTree::center, BOctTree::size, shape, points); +// exit(0); + } + +protected: +void showbits(char a) +{ + int i , k , mask; + + for( i =7 ; i >= 0 ; i--) + { + mask = 1 << i; + k = a & mask; + if( k == 0) + cout<<"0 "; + else + cout<<"1 "; + } +} + + long PointsOnShape(bitoct &node, T *center, T size, CollisionShape &shape ) { + if (! shape.isInCube(center[0], center[1], center[2], size)) { + return 0; + } + + T ccenter[3]; + bitunion *children; + bitoct::getChildren(node, children); + + /* + printf("parent %p children: %p \n", &node, children); + cout << " "; + showbits(node.valid); + cout << endl; + cout << " "; + showbits(node.leaf); + cout << endl; +*/ + long result = 0; + +// int r = 0; + + for (unsigned char i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists +// printf("i: %u r: %d parent %p child[r]: %p \n", i, r, &node, children); +// r++; + + childcenter(center, ccenter, size, i); // childrens center + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf get center + // check if leaf contains shape + if ( shape.isInCube(ccenter[0], ccenter[1], ccenter[2], size/2.0) ) { + pointrep *points = children->points; + unsigned int length = points[0].length; + T *point = &(points[1].v); // first point + for(unsigned int iterator = 0; iterator < length; iterator++ ) { + if ( shape.containsPoint(point) ) + result++; + point+= BOctTree::POINTDIM; + } + } + } else { // recurse + result += PointsOnShape( children->node, ccenter, size/2.0, shape); + } + ++children; // next child + } + } + + return result; + } + + void PointsOnShape(bitoct &node, T *center, T size, CollisionShape &shape, vector &vpoints) { + if (! shape.isInCube(center[0], center[1], center[2], size)) { + return; + } + + T ccenter[3]; + bitunion *children; + bitoct::getChildren(node, children); + + for (unsigned char i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + childcenter(center, ccenter, size, i); // childrens center + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf get center + // check if leaf contains shape + if ( shape.isInCube(ccenter[0], ccenter[1], ccenter[2], size/2.0) ) { + pointrep *points = children->points; + unsigned int length = points[0].length; + T *point = &(points[1].v); // first point + for(unsigned int iterator = 0; iterator < length; iterator++ ) { +// cerr << point[0] << " " << point[1] << " " << point[2] << endl; + if ( shape.containsPoint(point) ) { + T * p = new T[BOctTree::POINTDIM]; + for (unsigned int iterator = 0; iterator < BOctTree::POINTDIM; iterator++) { + p[iterator] = point[iterator]; + } + vpoints.push_back(p); + } + point+= BOctTree::POINTDIM; + } + } + } else { // recurse + PointsOnShape( children->node, ccenter, size/2.0, shape, vpoints); + } + ++children; // next child + } + } + } + + + void DrawPoints(vector &p, bitoct &node, unsigned char nrp) { + bitunion *children; + bitoct::getChildren(node, children); + + unsigned char n_children = POPCOUNT(node.valid); + unsigned char r = randUC(n_children); + if (r == n_children) r--; + +/* cout << (unsigned int)r << " nc " << (unsigned int)n_children << endl; + showbits(node.valid); + cout << endl; + showbits(node.leaf); + cout << endl; +*/ + bool leaf = false; + unsigned char child_index = 0; +/* if (r == 2) { + for (unsigned char i = 0; i < 8; i++) { + cout << "i " << (unsigned int)i << endl; + if ( ( 1 << i ) & node.valid ) { // if ith node exists + cout << "valid " << endl; + if (child_index == r) { + cout << "ci == r" << endl; + if ( ( 1 << i ) & node.leaf ) { // if ith node exists + cout << "leaf" << endl; + leaf = true; + } + cout << "no leaf" << endl; + break; + } + child_index++; + } + } + } else {*/ + for (unsigned char i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + if (child_index == r) { + if ( ( 1 << i ) & node.leaf ) { // if ith node exists + leaf = true; + } + break; + } + child_index++; + } + } +// } +// cout << (unsigned int)r << " nc " << (unsigned int)n_children << " " << (unsigned int)child_index << endl; + if (child_index != r) return; // bitmask valid might be all zero + + if (leaf) { +/* cout << "STOPPED" << endl; + return;*/ + pointrep *points = children[r].points; + unsigned int length = points[0].length; + if (length < nrp) return; + if (length == nrp) { + for (char c = 0; c < nrp; c++) { + p.push_back(&(points[BOctTree::POINTDIM*c+1].v)); + } + return; + } + + // randomly get nrp points, we will not check if this succeeds in getting nrp distinct points + for (char c = 0; c < nrp; c++) { + int tmp = rand(points[0].length); + p.push_back(&(points[BOctTree::POINTDIM*tmp+1].v)); + } + } else { +/* printf("r: %d parent %p children %p child[r]: %p \n", r, &node, children, &(children[r].node)); + showbits(node.valid); + cout << endl; + showbits(node.leaf); + cout << endl; + cout << "RECURSED" << endl;*/ + DrawPoints(p, children[r].node, nrp); + } + } + +}; + +#endif diff --git a/include/shapes/scan_ransac.h b/include/shapes/scan_ransac.h new file mode 100644 index 0000000..1363a60 --- /dev/null +++ b/include/shapes/scan_ransac.h @@ -0,0 +1,79 @@ +// ===================================================================================== +// +// Filename: scan_ransac.h +// +// Description: +// +// Version: 1.0 +// Created: 09/27/2010 01:21:49 PM +// Revision: none +// Compiler: g++ +// +// Author: Jan Elseberg (), jelseber@uos.de +// Company: Universitaet Osnabrueck +// +// ===================================================================================== + +#ifndef __SCAN_RANSAC_H__ +#define __SCAN_RANSAC_H__ + + +#include +#include "numbers.h" + +void *dummy(void *); + +class NumberDetector { + public: + vector *scan_points; + + NumberDetector(vector *points, const char *number_topic, bool _visualize) : visualize(_visualize) { + //number_publisher = n.advertise(number_topic, 10); + //marker_publisher = n.advertise("Marker_array", 10); + + scan_points = points; +/* + sn.set_numbers_size(10); + sn.set_board_p_size(10); + sn.set_char_p_size(10); + sn.set_angle_size(10); +*/ + for (unsigned int i = 0; i < 10; i++) { + detectedNumbers[i] = numberConsensus(i); + /* + sn.numbers[i].header.frame_id = "/map"; + sn.board_p[i] = 0; + sn.char_p[i] = 0; + sn.angle[i] = 0; + */ + } + + running = true; + ransac_thread = new pthread_t(); + pthread_create( ransac_thread, NULL, dummy , (void*)this); + } + + ~NumberDetector() { + running = false; + pthread_join(*ransac_thread, NULL); + + } + + void RANSAC(vector &scan_points); + private: + bool FindNumber(vector &points, double plane[4]); + void printNumbers(); + + pthread_t *ransac_thread; + numberConsensus detectedNumbers[10]; +// sickday::StampedNumbers sn; + + bool visualize; + bool running; +}; + + + + + +#endif diff --git a/include/shapes/shape.h b/include/shapes/shape.h new file mode 100644 index 0000000..d26cca0 --- /dev/null +++ b/include/shapes/shape.h @@ -0,0 +1,338 @@ +#ifndef __SHAPE_H__ +#define __SHAPE_H__ + +#include +using std::vector; +#include "slam6d/globals.icc" +#include "newmat/newmatio.h" +#include "newmat/newmatap.h" +using namespace NEWMAT; + + + +/** + * The Shape class is for efficient collision detection in the Octree. + */ +template +class CollisionShape { + public: + + + /** + * This is the main function for speeding up the search for points on the shape. + * + * @param cx, cy, cz, size The center and size of the octrees bucket. Buckets are axis aligned bounding cubes + * + * @return returns wether this shape is within the cube (true even if only partially) + * if unsure err on the side of caution, i.e. return true + */ + virtual bool isInCube(T cx, T cy, T cz, T size) = 0; + + virtual void refine(vector *points) = 0; + + virtual bool containsPoint(T* p) = 0; + + virtual bool hypothesize(vector &points) = 0; + + virtual unsigned char getNrPoints() = 0; + + virtual CollisionShape *copy() = 0; + + virtual CollisionShape& operator=(const CollisionShape &other) {return *this;}; + +// virtual bool valid() = 0; +}; + + +template +class CollisionPlane : public CollisionShape { + public: + +// CollisionPlane (T *_plane, T _maxDist) { + CollisionPlane (T _maxDist) { + maxDist = _maxDist; + // TODO make nicer + /* nx = _plane[0]; + ny = _plane[1]; + nz = _plane[2]; + d = _plane[3];*/ + } + + CollisionPlane(T _maxDist, T x, T y, T z, T _d) { + maxDist = _maxDist; + nx = x; + ny = y; + nz = z; + d = _d; + } + + virtual bool isInCube(T x, T y, T z, T size) { + T xm, xp, ym, yp, zm, zp; + T Fxm, Fxp, Fym, Fyp, Fzm, Fzp; + xm = x - size; + xp = x + size; + ym = y - size; + yp = y + size; + zm = z - size; + zp = z + size; + + Fxm = nx * xm; + Fym = ny * ym; + Fzm = nz * zm; + + bool positive = (Fxm + Fym + Fzm + d > 0); + + + Fxp = nx * xp; + if( (Fxp + Fym + Fzm + d < 0) == positive ) + return true; + + Fyp = ny * yp; + if( (Fxm + Fyp + Fzm + d < 0) == positive ) + return true; + + if( (Fxp + Fyp + Fzm + d < 0) == positive ) + return true; + + Fzp = nz * zp; + if( (Fxm + Fym + Fzp + d < 0) == positive ) + return true; + + if( (Fxp + Fym + Fzp + d < 0) == positive ) + return true; + if( (Fxm + Fyp + Fzp + d < 0) == positive ) + return true; + if( (Fxp + Fyp + Fzp + d < 0) == positive ) + return true; + + return false; + } + + + virtual bool containsPoint(T* p) { + return fabs(planeDist(p, nx, ny, nz, d)) < maxDist; + } + + virtual void refine(vector *points) { + cout << nx << " " << ny << " " << nz << " " << d << endl; + T plane[4] = {0,0,0,0}; + T centroid[3]; + fitPlane((*points), plane, centroid); + nx = plane[0]; + ny = plane[1]; + nz = plane[2]; + d = plane[3]; + cout << nx << " " << ny << " " << nz << " " << d << endl; + } + + virtual bool hypothesize(vector &points) { + if (points.size() < getNrPoints()) return false; + T a[3], b[3], f[3], plane[4]; + + for (int j = 0; j < 3;j++) { // compute plane + a[j] = points[0][j] - points[1][j]; + b[j] = points[0][j] - points[2][j]; + f[j] = points[0][j] + points[1][j] + points[2][j]; + f[j] /= 3.0; + } + Cross(a,b, plane); + if (fabs(Len2(plane)) < 0.0001 ) { + // points are collinear + return false; + } + Normalize3(plane); + plane[3] = -1.0 * planeDist(f, plane[0], plane[1], plane[2], 0.0); // compute distance from origin + if (plane[3] < 0.0) { // flip normal if necessary + for (int j = 0; j < 4;j++) { + plane[j] = -plane[j]; + } + } + + nx = plane[0]; + ny = plane[1]; + nz = plane[2]; + d = plane[3]; + return true; + } + + virtual unsigned char getNrPoints() { + return 3; + } + + virtual CollisionShape* copy() { + return new CollisionPlane(maxDist, nx, ny, nz, d); + } + + + virtual CollisionPlane& operator=(const CollisionShape &_other) { + CollisionPlane &other = (CollisionPlane &)_other; + if (this != &other) { + this->maxDist = other.maxDist; + this->nx = other.nx ; + this->ny = other.ny ; + this->nz = other.nz ; + this->d = other.d ; + } + + return *this; + } + + void getPlane(double &x, double &y, double &z, double &_d) { + x = nx; + y = ny; + z = nz; + _d = d; + } + + + protected: + T maxDist; + T nx, ny, nz, d; // plane equation TODO make nicer + +}; + +template +class LightBulbPlane : public CollisionPlane { + public: + + LightBulbPlane (T _maxDist, T _maxSize) : CollisionPlane(_maxDist) { + maxSize = _maxSize; + c[0] = 0; + c[1] = 0; + c[2] = 0; + } + + LightBulbPlane (T _maxDist, T _maxSize, T x, T y, T z, T _d, T* center) : CollisionPlane(_maxDist) { + maxSize = _maxSize; + CollisionPlane::nx = x; + CollisionPlane::ny = y; + CollisionPlane::nz = z; + CollisionPlane::d = _d; + for(int i = 0; i < 3; i++) { + c[i] = center[i]; + } + + } + + void refine(vector *points) { + cout << "LightBulbPlane" << endl; + cout << this->nx << " " << this->ny << " " << this->nz << " " << this->d << endl; + T plane[4]; + fitPlane((*points), plane, c); + this->nx = plane[0]; + this->ny = plane[1]; + this->nz = plane[2]; + this->d = plane[3]; + cout << this->nx << " " << this->ny << " " << this->nz << " " << this->d << endl; + } + + bool isInCube(T cx, T cy, T cz, T size) { + double radius = sqrt(3*size*size); + T c_dist = (cx - c[0])*(cx - c[0]) + (cy - c[1])*(cy - c[1]) + (cz - c[2])*(cz - c[2]); + return c_dist <= ((radius + maxSize)*(radius + maxSize)); + } + + virtual bool containsPoint(T* p) { + if(fabs(p[0]*CollisionPlane::nx + p[1]*CollisionPlane::ny + p[2]*CollisionPlane::nz + CollisionPlane::d) < CollisionPlane::maxDist) { + return (Dist2(p, c) < (maxSize*maxSize)); + } + return false; + } + + virtual bool hypothesize(vector &points) { + if(!CollisionPlane::hypothesize(points)) return false; + double maxSize2 = maxSize*maxSize; + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 3; j++) { + if(Dist2(points[i], points[j]) > maxSize2) return false; + } + } + for (int j = 0; j < 3;j++) { // compute plane + c[j] = points[0][j] + points[1][j] + points[2][j]; + + c[j] /= 3.0; + } + return true; + } + + virtual CollisionShape * copy() { + return new LightBulbPlane(CollisionPlane::maxDist, maxSize, CollisionPlane::nx, CollisionPlane::ny, CollisionPlane::nz, CollisionPlane::d, c); + } + + virtual LightBulbPlane& operator=(const CollisionShape &_other) { + LightBulbPlane &other = (LightBulbPlane &)_other; + if (this != &other) { + this->maxDist = other.maxDist; + this->nx = other.nx ; + this->ny = other.ny ; + this->nz = other.nz ; + this->d = other.d ; + this->maxSize = other.maxSize; + for(int i = 0; i < 3; i++) { + this->c[i] = other.c[i]; + } + } + + return *this; + } + + void getCenter(T &x, T &y, T &z) { + x = this->c[0]; + y = this->c[1]; + z = this->c[2]; + } + /* + bool validate(vector pts) { + // create array which will not be used + bool plane[125][125]; + for(int i = 0; i < 125; i++) { + for(int j = 0; j < 125; j++) { + plane[j][i] = false; + } + } + double t[3]; + double alignxf[16]; + double aa[4]; + aa[0] = -1.0 * acos(this.ny); + aa[1] = this.nz / sqrt( this.nz*this.nz + this.nx*this.nx ); + aa[2] = 0; + aa[3] = -this.nx / sqrt( this.nx*this.nz + this.nx*this.nx ); + + AAToMatrix(aa, t, alignxf); + + // compute 2d projection of the points, and scale reflectivity + for (unsigned int i = 0; i < points.size(); i++) { + double *p = points[i]; + + npoints[i] = new double[4]; + wykobi::point2d point; + + double x, y; + + x = -(p[0] * alignxf[0] + p[1] * alignxf[4] + p[2] * alignxf[8]); + y = p[0] * alignxf[2] + p[1] * alignxf[6] + p[2] * alignxf[10]; + + if (x > maxx) maxx = x; + if (x < minx) minx = y; + if (y > maxz) maxz = y; + + point = wykobi::make_point(x, y); + point_list.push_back(point); + } + + vector< wykobi::point2d > point_list; + + wykobi::polygon convex_hull; + wykobi::algorithm::convex_hull_jarvis_march< wykobi::point2d >(point_list.begin(),point_list.end(),std::back_inserter(convex_hull)); + + + + return true; + } + */ + protected: + T maxSize; + T c[3]; +}; + +#endif diff --git a/include/shapes/sickday.h b/include/shapes/sickday.h new file mode 100644 index 0000000..0525792 --- /dev/null +++ b/include/shapes/sickday.h @@ -0,0 +1,46 @@ +// ===================================================================================== +// +// Filename: sickday.h +// +// Description: +// +// Version: 1.0 +// Created: 09/26/2010 02:08:25 AM +// Revision: none +// Compiler: g++ +// +// Author: Jan Elseberg (), jelseber@uos.de +// Company: Universitaet Osnabrueck +// +// ===================================================================================== + +const int MIN_NR_PTS = 1200; + +const double IMG_RES = 2.0; // in cm +const int BOARD_SIZE_X = 59.40 / IMG_RES; // number of pixels wide +const int BOARD_SIZE_Z = 84.10 / IMG_RES; // number of pixels high + +const int WHITE_BORDER = 4; // number of pixels on the border to whiten. 10 cm ? + +const double MINREFL = -10.0; +const double MAXREFL = 10.0; +const double REFL_THRESHOLD = (0.0 - MINREFL ) / ( MAXREFL - MINREFL); // threshold for binarizing image + +const double MAX_DIST_TO_PLANE = 10.0; // RANSAC max distance to plane +const double MIN_SCORE = 0.65; // minimal score for accepting the board hypothesis (between 0 and 1) +const double SCORE_SCALE = 0.50; // score is scaled so that SCORE_SCALE is probability 0 + +/////////////// constants for OCR +const string OCRRESULT = "/tmp/ocrresult.txt"; +const string OCRERROR = "/tmp/ocrerr.txt"; +/////////////// number (except 1) are usually 17,27 pixel wide,high +// +const int MIN_NR_WIDTH = 28.0 / IMG_RES; // 14 pixel ? All Numbers except 1 must at least be this wide +const int MIN_1_WIDTH = 16.0 / IMG_RES; // 8 pixel ? Number 1 must at least be this wide +const int MIN_NR_HEIGHT = 46.0 / IMG_RES; // 23 pixel ? Numbers must at least be this high + +const int MAX_NR_WIDTH = 42.0 / IMG_RES; // 21 pixel ? All Numbers must at most be this wide +const int MAX_NR_HEIGHT = 62.0 / IMG_RES; // 31 pixel ? Numbers must at most be this high + + + diff --git a/include/show/NurbsPath.h b/include/show/NurbsPath.h new file mode 100644 index 0000000..8404556 --- /dev/null +++ b/include/show/NurbsPath.h @@ -0,0 +1,35 @@ +#ifndef __NURBSPATH_H__ +#define __NURBSPATH_H__ + +#include +using std::list; +#include +using std::vector; +#include "show/PathGraph.h" +//#include "../map_sim/EdgeList.h" + +/** + * @class NurbsPath + * This class uses Non-Uniform rational B-Splines (NURBS) to smoothen + * a given path of nodes. + * @author Anton Flügge + * @author Hannes Schulz + */ + +class NurbsPath{ + public: + static vector camRatio; + NurbsPath(){} + vector getNurbsPath(list&, unsigned int, int); + vector getNurbsPath(vector&, unsigned int, int); + private: + float coxDeBoor(float u,int i,int k,const float* Knots); + void getOutpoint(float t,float OutPoint[],float*opx,float*opy,const float*knots); + unsigned int ivN; + unsigned int ivDegree; + unsigned int ivOrder; + unsigned int ivNumKnots; + unsigned int ivNumP; +}; + +#endif /* __NURBSPATH_H__ */ diff --git a/include/show/PathGraph.h b/include/show/PathGraph.h new file mode 100644 index 0000000..14a1d77 --- /dev/null +++ b/include/show/PathGraph.h @@ -0,0 +1,228 @@ +#ifndef __PATHGRAPH_H__ +#define __PATHGRAPH_H__ +#include +using std::map; +#include +using std::list; +#include +#include + + +typedef struct {float x; float y; } PointXY; +typedef struct {float x; float y; float z; } PointXYZ; + + +/** @class PGNode + * A 2D-node in a PathGraph. + */ +struct PGNode{ + PGNode():smallestCost(LONG_MAX){}; + PointXY point; ///< 2D coordinates of node + list neighbours; ///< List of neighbours of node + double smallestCost; ///< Smallest cost from start (used in AStar) +}; + +/** + * @class PGEdge + * Represents an edge in a PathGraph, using pointers to PGNode. + */ +struct PGEdge { + PGEdge():isAlive(true){} + PGNode* start; ///< Start of edge + PGNode* end; ///< End of edge + bool isAlive; ///< useful for checking which edges have been checked already + bool operator<(const PGEdge& e)const{ + PGNode* min = (start emin) return false; + + PGNode* max = (start>end)?start:end; + PGNode* emax = (e.start>e.end)?e.start:e.end; + return max < emax; + } +}; + +/** @class PathGraph + * Represents a graph as a list of nodes which know their neigbours. + * @author Anton Flügge + * @author Hannes Schulz + */ +class PathGraph { + friend class PathGraphCreator; + friend class VisibilityPathGraphCreator; + + public: + /** @class Iter + * pseudo-iterator useful to iterate over all edges in graph + * Edges with points start and end equal are ignored. + */ + class Iter{ + private: + map visitedEdges; ///< keeps track of visited edges + list::iterator aktNode; ///< it. to node in nodelist + list::iterator aktNeighbour; ///< it. to node in aktNode's neighbour list + list::iterator lastNode; ///< last node in nodelist + list::iterator lastNeighbour; ///< last node in aktNode's neighbour list + public: + /** + * @param f iterator of first in nodelist + * @param l iterator of last in nodelist + */ + Iter(list::iterator f,list::iterator l) + :aktNode(f),lastNode(l){ + if(f==l) + return; + aktNeighbour = (*f)->neighbours.begin(); + lastNeighbour = (*f)->neighbours.end(); + if(aktNeighbour == lastNeighbour) + (*this)++; + visitedEdges[**this] = true; + /* + PGEdge pge = (**this); + if(pge.start->point < pge.end->point) + (*this)++; + if(pge.start->point == pge.end->point) + (*this)++; + */ + } + /** + * delete edge + */ + inline void remove(PathGraph* pg){ + PGNode *anode = (*aktNode), *anei = (*aktNeighbour); + (*this)++; + pg->deleteEdge(anode,anei); + } + /** + * advance iterator + */ + inline void operator++(int){ + bool visited = true; + while(visited){ + aktNeighbour++; + if(aktNeighbour == lastNeighbour){ + aktNode++; + if(aktNode != lastNode){ + aktNeighbour = (*aktNode)->neighbours.begin(); + lastNeighbour = (*aktNode)->neighbours.end(); + if(lastNeighbour == aktNeighbour) // node does not have neighbours + continue; + /* + PGEdge pge = (**this); + if(pge.start->point < pge.end->point) + continue; + if(pge.start->point == pge.end->point) + continue; + */ + if(visitedEdges.find(**this) != visitedEdges.end()) // edge visited + continue; + visitedEdges[**this] = true; + visited = false; + }else{ + visited = false; + } + }else{ + PGEdge pge = (**this); + /* + if(pge.start->point < pge.end->point) + continue; + if(pge.start->point == pge.end->point) + continue; + */ + if(visitedEdges.find(pge) != visitedEdges.end()) // edge visited + continue; + visitedEdges[pge] = true; + visited = false; + } + } + } + /// compare two iterators + inline bool operator==(const Iter& i){ + if(aktNode == lastNode) + if(i.aktNode == lastNode) + return true; + return (aktNode == i.aktNode) + && (aktNeighbour == i.aktNeighbour); + } + /// @return true if no more edges in graph + inline bool isLast(){ return aktNode == lastNode; } + /// @return current edge + inline PGEdge operator*(){ + PGEdge e; + e.start = (*aktNode); + e.end = (*aktNeighbour); + return e; + } + }; + PathGraph():ivpStartNode(NULL),ivpEndNode(NULL),startOnGraph(true),endOnGraph(true){} + /// @return whether node is end node + inline bool isEndNode(PGNode* n){return n==ivpEndNode;} + /** Inserts a node in the graph. + * @param p coordinates of node + * @return pointer to new PGNode (NOT PointXY!) + */ + PGNode* insertNode(PointXY p); + /** Inserts a node in the graph and connects it to all nodes already in the graph. + * @param p coordinates of node + */ + void insertNodeAndConnectToAll(PointXY p); + /** Inserts a node in the graph, if not already exists. + * @param p coordinates of node + * @return pointer to existing PGNode if exists, else to new PGNode + */ + PGNode* insertUniqueNode(PointXY p); + /// inserts edge between two nodes (BOTH ways) + void insertEdge(PGNode*, PGNode*); + /// delete a node and all its edges from the graph + void deleteNode(PGNode*); + /// delete edge between two nodes (BOTH ways) + void deleteEdge(PGNode*,PGNode*); + /** set the start node and insert it if necessary + * deletes old start node, if it was + * insert by an previous call of setStartNode + * @return false iff a node at this point already exists + */ + bool setStartNode(PointXY p); + /** set the end node and insert it if necessary + * deletes old end node, if it was + * insert by an previous call of setEndNode + * @return false iff a node at this point already exists + */ + bool setEndNode(PointXY p); + /// resets smallestCost in every node to zero. + inline void clearNodeCosts(){ + for(list::iterator i=ivNodeList.begin();i!=ivNodeList.end();i++){ + (*i)->smallestCost = LONG_MAX; + } + } + /// @return pointer to start node + inline PGNode* getStartNode() {return ivpStartNode;} + /// @return pointer to end node + inline PGNode* getEndNode() {return ivpEndNode;} + /** prints a ".map" file useful for plotting the graph + * @param fn file name + */ + void printGraphMap(const char*); + /// save graph to file fn + void saveGraph(const char*); + /// save path to file fn + void savePath(const char*); + /// load graph from file fn + void loadGraph(const char*); + ~PathGraph(); + void insertOneDirEdge(PGNode*, PGNode*); ///< hack: do not use :) + + /// return an iterator to the first edge + Iter firstEdge(); + private: + list ivNodeList; ///< list of all nodes in graph + PGNode* ivpStartNode; ///< start node + PGNode* ivpEndNode; ///< end node + + bool startOnGraph; ///< false if start node is no part of the original graph + bool endOnGraph; ///< false if end node is no part of the original graph +}; + + +#endif /* __PATHGRAPH_H__ */ diff --git a/include/show/colordisplay.h b/include/show/colordisplay.h new file mode 100644 index 0000000..3659446 --- /dev/null +++ b/include/show/colordisplay.h @@ -0,0 +1,44 @@ +#ifndef __COLORDISPLAY_H__ +#define __COLORDISPLAY_H__ +#include "show/colormanager.h" +#include "limits.h" +#include +using std::set; + +class colordisplay { + public: + virtual ~colordisplay() {} + inline void setColorManager(ColorManager *_cm) { cm = _cm; } + + void displayLOD(float lod) { + if (cm) cm->load(); + drawLOD(lod); + if (cm) cm->unload(); + }; + + void display() { + if (cm) cm->load(); + draw(); + if (cm) cm->unload(); + } + + virtual void selectRay(float * &point) {}; + virtual void selectRay(double * &point) {}; + virtual void selectRay(set &points, int depth=INT_MAX) {}; + virtual void selectRay(set &points, int depth=INT_MAX) {}; + virtual void selectRayBrushSize(set &points, int brushsize) {}; + virtual void selectRayBrushSize(set &points, int brushsize) {}; + + virtual void cycleLOD() {}; + + protected: + + virtual void drawLOD(float lod) = 0; + virtual void draw() = 0; + + ColorManager *cm; +}; + + + +#endif diff --git a/include/show/colormanager.h b/include/show/colormanager.h new file mode 100644 index 0000000..035c2cb --- /dev/null +++ b/include/show/colormanager.h @@ -0,0 +1,293 @@ +#ifndef __COLORMANAGER_H__ +#define __COLORMANAGER_H__ + +#ifdef _MSC_VER +#define _USE_MATH_DEFINES +#include +#endif +#ifdef __APPLE__ +#include +#else +#include +#endif +#include +#include + +class ColorMap { + public: + enum CM { + SOLID = 0, + GREY = 1, + HSV = 2, + JET = 3, + HOT = 4, + SHSV = 5 + }; + + virtual ~ColorMap() {}; + + virtual void calcColor(float *d, unsigned int i, unsigned int buckets) { + d[0] = d[1] = d[2] = 1.0; + } + + static ColorMap getColorMap(CM map); + + /** + * hue is in [0,360], all others in [0,1] + */ + static void convert_hsv_to_rgb(float hue, float s, float v, + float &r, float &g, float &b); +}; + +class GreyMap : public ColorMap { + public: + virtual void calcColor(float *d, unsigned int i, unsigned int buckets) { + d[0] = (float)i/(float)buckets; + d[1] = (float)i/(float)buckets; + d[2] = (float)i/(float)buckets; + } +}; + +class HSVMap : public ColorMap { + public: + virtual void calcColor(float *d, unsigned int i, unsigned int buckets) { + float t = (float)i/(float)buckets; + convert_hsv_to_rgb(360.0*t, 1.0, 1.0, d[0], d[1], d[2]); + } +}; + +class SHSVMap : public ColorMap { + public: + virtual void calcColor(float *d, unsigned int i, unsigned int buckets) { + float t = (float)i/(float)buckets; + convert_hsv_to_rgb(240.0*(1.0-t), 1.0, 1.0, d[0], d[1], d[2]); + } +}; + +class JetMap : public ColorMap { + public: + virtual void calcColor(float *d, unsigned int i, unsigned int buckets) { + float t = (float)i/(float)buckets; + if (t <= 0.125) { + d[0] = d[1] = 0.0; d[2] = 0.5 + 0.5*(t/0.125); + } else if (t < 0.375) { + d[0] = 0.0; d[2] = 1.0; d[1] = (t-0.125)/0.25; + } else if (t < 0.625) { + d[1] = 1.0; d[0] = (t-0.375)/0.25;; d[2] = 1.0 - d[0]; + } else if (t < 0.875) { + d[0] = 1.0; d[2] = 0.0; d[1] = 1.0 - (t-0.625)/0.25; + } else { + d[1] = d[2] = 0.0; d[0] = 1.0 - 0.5*((t - 0.875)/0.125); + } + } +}; + +class HotMap : public ColorMap { + public: + virtual void calcColor(float *d, unsigned int i, unsigned int buckets) { + float t = (float)i/(float)buckets; + if (t <= 1.0/3.0) { + d[1] = d[2] = 0.0; d[0] = t/(1.0/3.0); + } else if (t <= 2.0/3.0) { + d[0] = 1.0; d[2] = 0.0; d[1] = (t-(1.0/3.0))/(1.0/3.0); + } else { + d[0] = 1.0; d[1] = 1.0; d[2] = (t-(2.0/3.0))/(1.0/3.0); + } + } +}; + +class DiffMap : public ColorMap { + public: + virtual void calcColor(float *d, unsigned int i, unsigned int buckets); + private: + static const float cmap[7][3]; +}; + +class ColorManager { + + public: + + ColorManager(unsigned int _buckets, unsigned int pointdim, float *_mins, float *_maxs, const float *_color = 0) : buckets(_buckets) { + if (_color) { + color[0] = _color[0]; + color[1] = _color[1]; + color[2] = _color[2]; + } else { + color[0] = 1; + color[1] = 1; + color[2] = 1; + } + + colormap = new float*[buckets + 1]; // allow a color more for values equal to max + for (unsigned int i = 0; i < buckets; i++) { + colormap[i] = new float[3]; + } + colormap[buckets] = new float[3]; + + mins = new float[pointdim]; + maxs = new float[pointdim]; + for (unsigned int i = 0; i < pointdim; i++) { + mins[i] = _mins[i]; + maxs[i] = _maxs[i]; + } + + setCurrentDim(0); + } + + virtual ~ColorManager() { + for (unsigned int i = 0; i < buckets; i++) { + delete[] colormap[i]; + } + delete[] colormap[buckets]; + delete[] colormap; + + delete[] mins; + delete[] maxs; + } + + virtual void load() { + glColor3f(color[0], color[1], color[2] ); + glEnable (GL_TEXTURE_1D); + glBindTexture (GL_TEXTURE_1D, 0); + } + + virtual void unload() { + glDisable (GL_TEXTURE_1D); + } + + virtual void setColor(float *val) { + glTexCoord1f( (float)((val[currentdim]-min)/extent) ); + } + virtual void setColor(double *val) { + glTexCoord1f( (float)((val[currentdim]-min)/extent) ); + } + virtual void setColor(short int *val) { + glTexCoord1f( (float)((val[currentdim]-min)/extent) ); + } + virtual void setColor(signed char *val) { + glTexCoord1f( (float)((val[currentdim]-min)/extent) ); + } + + virtual void setColorMap(ColorMap &cm) { + for (unsigned int i = 0; i < buckets; i++) { + cm.calcColor(colormap[i], i, buckets); + } + cm.calcColor(colormap[buckets], buckets-1, buckets); + convertToTexture1D(); + } + + + void setCurrentDim(unsigned int cdim) { + currentdim = cdim; + makeValid(); + } + + + void setMinMax(float _min, float _max) { + if (_min < _max) { + min = _min; + max = _max; + } + extent = max - min; + } + + protected: + + + void convertToTexture1D() { + unsigned char *imageData = new unsigned char[(buckets+1) * 3]; + for (unsigned int i = 0; i < buckets; i++) { + imageData[3*i+0] = colormap[i][0]*255; + imageData[3*i+1] = colormap[i][1]*255; + imageData[3*i+2] = colormap[i][2]*255; + } + + imageData[3*buckets+0] = colormap[buckets][0]*255; + imageData[3*buckets+1] = colormap[buckets][1]*255; + imageData[3*buckets+2] = colormap[buckets][2]*255; + + glBindTexture (GL_TEXTURE_1D, 0); + glPixelStorei (GL_UNPACK_ALIGNMENT, 1); + glTexParameteri (GL_TEXTURE_1D, GL_TEXTURE_WRAP_S, GL_CLAMP); + glTexParameteri (GL_TEXTURE_1D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + glTexParameteri (GL_TEXTURE_1D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + glTexEnvf (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); + glTexImage1D (GL_TEXTURE_1D, 0, GL_RGB, buckets+1, 0, GL_RGB, GL_UNSIGNED_BYTE, imageData); + delete[] imageData; + } + + void makeValid() { + min = mins[currentdim]; + max = maxs[currentdim]; + + extent = max - min; + } + + unsigned int buckets; + + unsigned int currentdim; + + /** stores minima and maxima for each point dimension */ + float *mins; + float *maxs; + /** maps color to value */ + float **colormap; + + float min; + float max; + + float extent; + + float color[3]; + +}; + +class CColorManager : public ColorManager { + public: + CColorManager(unsigned int buckets, unsigned int pointdim, float *mins, float *maxs, unsigned int _colordim) : ColorManager(buckets, pointdim, mins, maxs) { + colordim = _colordim; + } + + virtual void load() { + glGetBooleanv(GL_COLOR_LOGIC_OP, &color_state); + glDisable(GL_COLOR_LOGIC_OP); // this disables inversion of color, but also messes with fog behaviour + glColor3f(color[0], color[1], color[2] ); + glEnable (GL_TEXTURE_1D); + glBindTexture (GL_TEXTURE_1D, 0); + } + + virtual void unload() { + glDisable (GL_TEXTURE_1D); + if (color_state) { + glEnable(GL_COLOR_LOGIC_OP); + } + } + + void setColor(double *val) { + GLubyte color[3]; + memcpy(color, &val[colordim], 3); + glColor3ubv(color); + } + void setColor(float *val) { + GLubyte color[3]; + memcpy(color, &val[colordim], 3); + glColor3ubv(color); + } + void setColor(short *val) { + GLubyte color[3]; + memcpy(color, &val[colordim], 3); + glColor3ubv(color); + } + virtual void setColor(signed char *val) { + GLubyte color[3]; + memcpy(color, &val[colordim], 3); + glColor3ubv(color); + } + + private: + unsigned int colordim; + GLboolean color_state; +}; + + +#endif diff --git a/include/show/compacttree.h b/include/show/compacttree.h new file mode 100644 index 0000000..9559ad3 --- /dev/null +++ b/include/show/compacttree.h @@ -0,0 +1,538 @@ +/** + * @file + * @brief Efficient representation of an octree + * @author Jan Elsberg. Automation Group, Jacobs University Bremen gGmbH, Germany. + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef COMPACTOCTREE_H +#define COMPACTOCTREE_H + +#include +#include + +#include +using std::vector; +#include +using std::deque; +#include +using std::set; +#include +using std::list; +#include +#include +#include + +#include "slam6d/globals.icc" +#include "slam6d/point_type.h" + +#include "slam6d/Boctree.h" +#include "show/colormanager.h" +#include "show/colordisplay.h" +#include "show/viewcull.h" +#include "show/scancolormanager.h" +#include "slam6d/allocator.h" + + +#define POINTERBITS 32 +//#define WITH_8BIT_POINTS +#ifdef WITH_8BIT_POINTS +typedef signed char tshort; +#define TSHORT_MAXP1 (1 << 7); +#define TSHORT_MAX ((1 << 7) - 1); +typedef signed char shortpointrep; +#else +typedef short int tshort; +#define TSHORT_MAXP1 (1 << 15); +#define TSHORT_MAX ((1 << 15) - 1); +typedef short int shortpointrep; +#endif + + + +typedef unsigned int lint; + +class ScanColorManager; +// forward declaration +template union cbitunion; +/** + * This struct represents the nodes of the octree + * + * child_pointer is a relative pointer to the first child of this node, as it is only + * 48 bit this will cause issues on systems with more than 268 TB of memory. All children + * of this node must be stored sequentially. If one of the children is a leaf, that + * child will be a pointer to however a set of points is represented (pointrep *). + * + * valid is a bitmask describing wether the corresponding buckets are filled. + * + * leaf is a bitmask describing wether the correpsonding bucket is a leaf node. + * + * The representation of the bitmask is somewhat inefficient. We use 16 bits for only + * 3^8 possible states, so in essence we could save 3 bits by compression. + * + */ +class cbitoct{ + public: + +#ifdef _MSC_VER + __int64 child_pointer : POINTERBITS; + unsigned valid : 8; + unsigned leaf : 8; +#else + signed long child_pointer : POINTERBITS; + unsigned valid : 8; + unsigned leaf : 8; +#endif + /** + * sets the child pointer of parent so it points to child + */ + template + static inline void link(cbitoct &parent, cbitunion *child) { + parent.child_pointer = (long)((char*)child - (char*)&parent); + } + + /** + * Returns the children of this node (given as parent). + */ + template + static inline void getChildren(cbitoct &parent, cbitunion* &children) { + children = (cbitunion*)((char*)&parent + parent.child_pointer); + } + + +}; + +class cbitp{ + public: + +#ifdef _MSC_VER + __int64 pointer : POINTERBITS; + unsigned int length : 24; +#else + signed long pointer : POINTERBITS; + unsigned int length : 24; +#endif +}; + + +/** + * This union combines an octree node with a pointer to a set of points. This allows + * us to use both nodes and leaves interchangeably. + * + * points is a pointer to the point representation in use + * + * node is simply the octree node + * + */ +template union cbitunion { + cbitp points; + cbitoct node; + + cbitunion(cbitp p) : points(p) {}; + cbitunion(cbitoct b) : node(b) {}; + cbitunion() { + node.child_pointer = 0; + node.valid = 0; + node.leaf = 0; + }; // needed for new [] + + inline shortpointrep* getPoints() { + return (shortpointrep*)((char*)this + this->points.pointer); + } + inline unsigned int getLength() { + return this->points.length; + } + /** + * sets the child pointer of parent so it points to child + */ + inline void linkPoints(shortpointrep *child, unsigned int l) { + this->points.length = l; // do this first in case of overflow + this->points.pointer = (long)((char*)child - (char*)this); + } + +}; + +/** + * @brief Octree + * + * A cubic bounding box is calculated + * from the given 3D points. Then it + * is recusivly subdivided into smaller + * subboxes + */ +class ScanColorManager; + +class compactTree : public colordisplay { + +public: + + template + compactTree(P * const* pts, int n, double voxelSize, PointType _pointtype = PointType(), ScanColorManager *scm=0 ); + + template + compactTree(vector

&pts, double voxelSize, PointType _pointtype = PointType()); + + compactTree(std::string filename, ScanColorManager *scm = 0) { + alloc = new PackedChunkAllocator; + deserialize(filename); + if (scm) { + scm->registerTree(this); + scm->updateRanges(mins); + scm->updateRanges(maxs); + } + setColorManager(0); + maxtargetpoints = maxTargetPoints(*root); + current_lod_mode = 0; + } + + virtual ~compactTree(); + + inline void GetOctTreeCenter(vector&c); + inline void AllPoints(vector &vp); + + inline long countNodes(); + inline long countLeaves(); + void setColorManager(ColorManager *_cm); + void drawLOD(float lod); + void draw(); + void displayOctTree(double minsize = FLT_MAX); + template + void selectRay(vector &points); + template + void selectRay(T * &point); + + inline void getCenter(double center[3]) const; + + void serialize(std::string filename); +protected: + + Allocator* alloc; + + void AllPoints( cbitoct &node, vector &vp, double center[3], double size); + + void GetOctTreeCenter(vector&c, cbitoct &node, double *center, double size); + + long countNodes(cbitoct &node); + + long countLeaves(cbitoct &node); + + void deletetNodes(cbitoct &node); + + template + bool branch(union cbitunion &node, vector &splitPoints, double _center[3], double _size); + + template + inline void countPointsAndQueue(vector &i_points, double center[8][3], double size, cbitoct &parent, double *pcenter); + + template + inline void countPointsAndQueue(P * const* pts, int n, double center[8][3], double size, cbitoct &parent, double *pcenter); + + + void childcenter(double *pcenter, double *ccenter, double size, unsigned char i); + + template +inline unsigned char childIndex(const double *center, const P *point); + + + unsigned long maxTargetPoints( cbitoct &node ); + + void displayOctTreeAll( cbitoct &node, double *center, double size); + + void displayOctTreeAllCulled( cbitoct &node, double *center, double size ); + + void displayOctTreeCulledLOD(long targetpts, cbitoct &node, double *center, double size ); + void displayOctTreeLOD(long targetpts, cbitoct &node, double *center, double size ); + + void displayOctTreeCulledLOD2(float lod, cbitoct &node, double *center, double size ); + void displayOctTreeLOD2(float lod, cbitoct &node, double *center, double size ); + + + void displayOctTreeCAllCulled( cbitoct &node, double *center, double size, double minsize ); + + void displayOctTreeCAll( cbitoct &node, double *center, double size, double minsize ); + + void showCube(double *center, double size); + + /** + * the root of the octree + */ + cbitoct* root; + + + /** + * storing the center + */ + double center[3]; + + /** + * storing the dimension + */ + double size; + + /** + * storing the voxel size + */ + double voxelSize; + + double precision; + + /** + * storing minimal and maximal values for all dimensions + **/ + double *mins; + double *maxs; + + unsigned int POINTDIM; + + PointType pointtype; + + shortpointrep* createPoints(lint length); + + void deserialize(std::string filename ); + void deserialize(std::ifstream &f, cbitoct &node); + void serialize(std::ofstream &of, cbitoct &node); + + + unsigned long maxtargetpoints; + unsigned int current_lod_mode; + + void cycleLOD() { + current_lod_mode = (current_lod_mode+1)%3; + } +}; + +template + compactTree::compactTree(vector

&pts, double voxelSize, PointType _pointtype) { + alloc = new PackedChunkAllocator; + + this->voxelSize = voxelSize; + + this->POINTDIM = pointtype.getPointDim(); + + mins = new double[POINTDIM]; + maxs = new double[POINTDIM]; + + // initialising + for (unsigned int i = 0; i < POINTDIM; i++) { + mins[i] = pts[0][i]; + maxs[i] = pts[0][i]; + } + + for (unsigned int i = 0; i < POINTDIM; i++) { + for (unsigned int j = 1; j < pts.size(); j++) { + mins[i] = min(mins[i], pts[j][i]); + maxs[i] = max(maxs[i], pts[j][i]); + } + } + + center[0] = 0.5 * (mins[0] + maxs[0]); + center[1] = 0.5 * (mins[1] + maxs[1]); + center[2] = 0.5 * (mins[2] + maxs[2]); + size = max(max(0.5 * (maxs[0] - mins[0]), 0.5 * (maxs[1] - mins[1])), 0.5 * (maxs[2] - mins[2])); + + // calculate new buckets + double newcenter[8][3]; + double sizeNew = size / 2.0; + + for (unsigned char i = 0; i < 8; i++) { + childcenter(center, newcenter[i], size, i); + } + // set up values + root = alloc->allocate(); + + countPointsAndQueue(pts, newcenter, sizeNew, *root, center); + maxtargetpoints = maxTargetPoints(*root); + current_lod_mode = 0; + } + +template + bool compactTree::branch( union cbitunion &node, vector &splitPoints, double _center[3], double _size) { + // if bucket is too small stop building tree + // ----------------------------------------- + if ((_size <= voxelSize)) { + // copy points + shortpointrep *points = createPoints(splitPoints.size()); + node.linkPoints(points, splitPoints.size()); + int i = 0; + double distance; + for (typename vector

::iterator itr = splitPoints.begin(); + itr != splitPoints.end(); itr++) { + for (unsigned int iterator = 0; iterator < 3; iterator++) { + distance = (*itr)[iterator] - _center[iterator]; + + if (distance >= _size) { +// points[i++] = (1 << 15) -1; + points[i++] = TSHORT_MAX; + } else { +// points[i++] = (distance/_size ) * (1 << 15);//* pow(2,15) ; + points[i++] = (distance/_size ) * TSHORT_MAXP1; + } + } + for (unsigned int iterator = 3; iterator < POINTDIM; iterator++) { + points[i++] = (*itr)[iterator]; + } + } + return true; + } + + // calculate new buckets + double newcenter[8][3]; + double sizeNew; + + sizeNew = _size / 2.0; + + for (unsigned char i = 0; i < 8; i++) { + childcenter(_center, newcenter[i], _size, i); + } + + countPointsAndQueue(splitPoints, newcenter, sizeNew, node.node, _center); + return false; + } + +template + void compactTree::countPointsAndQueue(vector &i_points, double center[8][3], double size, cbitoct &parent, double *pcenter) { + vector points[8]; + int n_children = 0; + + for (typename vector

::iterator itr = i_points.begin(); itr != i_points.end(); itr++) { + points[childIndex

(pcenter, *itr)].push_back( *itr ); + } + + i_points.clear(); + vector().swap(i_points); + for (int j = 0; j < 8; j++) { + if (!points[j].empty()) { + parent.valid = ( 1 << j ) | parent.valid; + ++n_children; + } + } + // create children + cbitunion *children = alloc->allocate >(n_children); + cbitoct::link(parent, children); + + int count = 0; + for (int j = 0; j < 8; j++) { + if (!points[j].empty()) { + if ( branch(children[count], points[j], center[j], size)) { // leaf node + parent.leaf = ( 1 << j ) | parent.leaf; // remember this is a leaf + } + points[j].clear(); + vector().swap(points[j]); + ++count; + } + } + } + + template + void compactTree::countPointsAndQueue(P * const* pts, int n, double center[8][3], double size, cbitoct &parent, double *pcenter) { + vector points[8]; + int n_children = 0; + + for (int i = 0; i < n; i++) { + points[childIndex

(pcenter, pts[i])].push_back( pts[i] ); + } + for (int j = 0; j < 8; j++) { + // if non-empty set valid flag for this child + if (!points[j].empty()) { + parent.valid = ( 1 << j ) | parent.valid; + ++n_children; + } + } + + // create children + cbitunion *children = alloc->allocate >(n_children); + cbitoct::link(parent, children); + int count = 0; + for (int j = 0; j < 8; j++) { + if (!points[j].empty()) { + if ( branch(children[count], points[j], center[j], size)) { // leaf node + parent.leaf = ( 1 << j ) | parent.leaf; // remember this is a leaf + } + points[j].clear(); + vector().swap(points[j]); + ++count; + } + } + } + + template + void compactTree::selectRay(T * &point) { + //selectRay(point, *root, center, size, FLT_MAX); + } +template + compactTree::compactTree(P * const* pts, int n, double voxelSize, PointType _pointtype , ScanColorManager *scm ) : pointtype(_pointtype) { + alloc = new PackedChunkAllocator; + + cm = 0; + if (scm) { + scm->registerTree(this); + for (int i = 1; i < n; i++) { + scm->updateRanges(pts[i]); + } + } + this->voxelSize = voxelSize; + + this->POINTDIM = pointtype.getPointDim(); + + mins = new double[POINTDIM]; + maxs = new double[POINTDIM]; + + // initialising + for (unsigned int i = 0; i < POINTDIM; i++) { + mins[i] = pts[0][i]; + maxs[i] = pts[0][i]; + } + + for (unsigned int i = 0; i < POINTDIM; i++) { + for (int j = 1; j < n; j++) { + mins[i] = min(mins[i], (double)pts[j][i]); + maxs[i] = max(maxs[i], (double)pts[j][i]); + } + } + + center[0] = 0.5 * (mins[0] + maxs[0]); + center[1] = 0.5 * (mins[1] + maxs[1]); + center[2] = 0.5 * (mins[2] + maxs[2]); + size = max(max(0.5 * (maxs[0] - mins[0]), 0.5 * (maxs[1] - mins[1])), 0.5 * (maxs[2] - mins[2])); + + size += 1.0; // some buffer for numerical problems + + double vs = size; + while (vs > voxelSize) { + vs = vs/2.0; + } +// vs = vs/2.0; +// double precision = vs/ pow(2, sizeof(tshort)*8-1); + //precision = vs/ (1 << 15); //pow(2, 15); + precision = vs / TSHORT_MAXP1; + // vs is the real voxelsize + cout << "real voxelsize is " << vs << endl; + cout << "precision is now " << precision << endl; + + // calculate new buckets + double newcenter[8][3]; + double sizeNew = size / 2.0; + + for (unsigned char i = 0; i < 8; i++) { + childcenter(center, newcenter[i], size, i); + } + // set up values + root = alloc->allocate(); + + countPointsAndQueue(pts, n, newcenter, sizeNew, *root, center); + maxtargetpoints = maxTargetPoints(*root); + current_lod_mode = 0; + } + +template +inline unsigned char compactTree::childIndex(const double *center, const P *point) { + return (point[0] >= center[0] ) | ((point[1] >= center[1] ) << 1) | ((point[2] >= center[2] ) << 2) ; +} + + void compactTree::getCenter(double _center[3]) const { + _center[0] = center[0]; + _center[1] = center[1]; + _center[2] = center[2]; + } +#endif diff --git a/include/show/display.h b/include/show/display.h new file mode 100644 index 0000000..e4aafc9 --- /dev/null +++ b/include/show/display.h @@ -0,0 +1,96 @@ +#include +#include +#include "show/viewcull.h" +#include "show/scancolormanager.h" +//#include "show/colormanager.h" +/* +#include "limits.h" +#include +using std::vector; +#include +#include +using std::string; + +#include +#include +#include +#include +#include +*/ +#ifndef __DISPLAY_H__ +#define __DISPLAY_H__ + +using namespace std; + +class SDisplay { + public: + //inline void setColorManager(ColorManager *_cm) { cm = _cm; } + + + //virtual SDisplay* readFromFile(string &filename) = 0; + virtual const char *getName() { return "Unnamed display"; } + virtual void display(double detail) { displayAll(); } + virtual void displayAll(); + + virtual void displayObject() = 0; + + static void readDisplays(string &filename, vector &displays); + + + protected: + static double mirror[16]; + //ColorManager *cm; +}; + +class PointDisplay : public SDisplay { + + public: + static SDisplay* readFromFile(string &filename); + virtual void displayObject(); + + private: + + PointDisplay(vector &p, vector &l); + + vector points; + vector labels; +}; + +class LineDisplay : public SDisplay { + + public: + static SDisplay* readFromFile(string &filename); + virtual void displayObject(); + + private: + + LineDisplay(vector &l); + + vector lines; +}; + +class PlaneDisplay : public SDisplay { + public: + static SDisplay* readFromFile(string &filename, float* color); + virtual void displayObject(); + + private: + + PlaneDisplay(vector &p, float* c); + vector points; + float * color; + +}; + +class GroupPlaneDisplay : public SDisplay { + public: + static SDisplay* readFromFile(string &filename); + virtual void displayObject(); + + private: + + GroupPlaneDisplay(vector &p); + vector planes; +}; + +#endif diff --git a/include/show/scancolormanager.h b/include/show/scancolormanager.h new file mode 100644 index 0000000..2400c37 --- /dev/null +++ b/include/show/scancolormanager.h @@ -0,0 +1,97 @@ +#ifndef __SCANCOLORMANAGER_H__ +#define __SCANCOLORMANAGER_H__ + +#ifdef _MSC_VER +#define _USE_MATH_DEFINES +#include +#endif +#ifdef __APPLE__ +#include +#else +#include +#endif + +#include "slam6d/point.h" +#include "slam6d/scan.h" +#include "show/colordisplay.h" +//#include "show/show_Boctree.h" +#include "show/colormanager.h" +#include +#include +#include "slam6d/point_type.h" +using std::vector; + +//template class Show_BOctTree; + +/** + * This class is a special ColorManager that handles a set of Colormanagers. + * This manager is capable of mapping managers to scans in dependence of the state of the + * show program. + */ +class ScanColorManager { + public: + + static const unsigned int MODE_STATIC; + static const unsigned int MODE_COLOR_SCAN; + static const unsigned int MODE_ANIMATION; + static const unsigned int MODE_POINT_COLOR; + + ScanColorManager(unsigned int _buckets, PointType type); + + void registerTree(colordisplay *b); + + void setColorMap(ColorMap &cm); + void setColorMap(ColorMap::CM &cm); + void setCurrentType(unsigned int type); + void setMinMax(float min, float max); + void setMode(const unsigned int &mode); + void setInvert(bool invert); + + float getMin(); + float getMax(); + float getMin(unsigned int dim); + float getMax(unsigned int dim); + unsigned int getPointDim(); + void makeValid(); + + void selectColors(Scan::AlgoType type); + + template + void updateRanges(P *point); + + protected: + + unsigned int currentdim; + + vector allScans; + vector allManager; + + vector staticManager; + vector scanManager; + vector colorsManager; + + unsigned int currenttype; + + unsigned int buckets; + + /** stores minima and maxima for each point dimension */ + float *mins; + float *maxs; + /** maps valuetypes to point dimension for easier access */ + PointType pointtype; + + bool valid; + bool colorScans; + bool inverted; +}; + + template + void ScanColorManager::updateRanges(P *point) { + for (unsigned int i = 0; i < pointtype.getPointDim(); i++) { + if (point[i] < mins[i]) mins[i] = point[i]; + if (point[i] > maxs[i]) maxs[i] = point[i]; + } + } + + +#endif diff --git a/include/show/selectionframe.h b/include/show/selectionframe.h new file mode 100644 index 0000000..79af4bf --- /dev/null +++ b/include/show/selectionframe.h @@ -0,0 +1,233 @@ +#ifndef __INCLUDE_SELECTIONFRAME__ +#define __INCLUDE_SELECTIONFRAME__ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "wx/things/spinctld.h" +/////////////////////////////////////////////////////////////////////////// + + +/////////////////////////////////////////////////////////////////////////////// +/// Class Selection +/////////////////////////////////////////////////////////////////////////////// +class Selection : public wxFrame +{ + private: + + protected: + wxCheckBox* m_checkBox1; + wxCheckBox* m_checkBox2; + wxCheckBox* m_checkBox3; + wxPanel* m_panel2; + wxStaticText* m_staticText2; + + wxSpinCtrl* pointsize_spinner; + wxPanel* m_panel21; + wxStaticText* m_staticText21; + + wxChoice* m_choice1; + wxPanel* m_panel3; + wxStaticText* m_staticText4; + +// wxSpinCtrl* fogdens_spinner; + wxSpinCtrlDbl* fogdens_spinner; + wxPanel* m_panel211; + wxStaticText* m_staticText211; + + wxChoice* m_choice11; + wxPanel* m_panel212; + wxStaticText* m_staticText212; + + wxChoice* m_choice12; + wxPanel* m_panel213; + wxStaticText* m_staticText213; + + wxChoice* m_choice13; + wxPanel* m_panel411; + wxStaticText* m_staticText411; + +// wxSpinCtrl* m_spinCtrl61; + wxSpinCtrlDbl* m_spinCtrl61; + wxPanel* m_panel41; + wxStaticText* m_staticText41; + + wxSpinCtrlDbl* m_spinCtrl6; + wxButton* m_button4; + wxStaticLine* m_staticline1; + wxButton* m_button3; + wxPanel* m_panel4; + wxStaticText* m_staticText6; + wxSpinCtrl* m_spinCtrl3; + wxButton* m_button5; + wxStaticLine* m_staticline2; + wxPanel* m_panel412; + wxStaticText* m_staticText412; + wxTextCtrl* m_textCtrl1; + wxButton* m_button51; + wxButton* m_button6; + wxButton* m_button14; + wxStaticLine* m_staticline4; + wxCheckBox* m_checkBox4; + wxButton* m_button7; + wxPanel* m_panel4121; + wxStaticText* m_staticText4121; + wxTextCtrl* m_textCtrl11; + wxButton* m_button511; + wxButton* m_button61; + wxPanel* m_panel4131; + wxStaticText* m_staticText4131; + + wxSpinCtrl* m_spinCtrl621; + wxButton* m_button71; + wxStaticLine* m_staticline3; + wxPanel* m_panel41211; + wxStaticText* m_staticText41211; + wxTextCtrl* m_textCtrl111; + wxButton* m_button5111; + wxButton* m_button611; + wxCheckBox* m_checkBox5; + wxCheckBox* m_checkBox6; + wxPanel* m_panel41311; + wxStaticText* m_staticText41311; + + wxSpinCtrl* m_spinCtrl6211; + wxPanel* m_panel413111; + wxStaticText* m_staticText413111; + + wxSpinCtrl* m_spinCtrl62111; + wxPanel* m_panel413112; + wxStaticText* m_staticText413112; + + wxSpinCtrl* frame_spin; + wxPanel* m_panel4131111; + wxStaticText* m_staticText4131111; + + wxSpinCtrl* m_spinCtrl621111; + wxPanel* farplane_panel; + wxStaticText* farplane_text; + + wxSpinCtrl* farplane_spinner; + wxPanel* nearplane_panel; + wxStaticText* nearplane_text; + + wxSpinCtrl* nearplane_spinner; + wxPanel* lod_panel; + wxStaticText* lod_text; + + wxSpinCtrlDbl* lod_spinner; + wxButton* cycleLOD; + wxButton* m_button31; + + // Virtual event handlers, overide them in your derived class + virtual void OnClose( wxCloseEvent& event ) { exit(0); event.Skip(); } + virtual void OnDrawPoints( wxCommandEvent& event ) { event.Skip(); } + virtual void OnDrawCameras( wxCommandEvent& event ) { event.Skip(); } + virtual void OnDrawPaths( wxCommandEvent& event ) { event.Skip(); } + virtual void OnPointSize( wxSpinEvent& event ) { event.Skip(); } + virtual void OnFogChoice( wxCommandEvent& event ) { event.Skip(); } + virtual void OnFogDensity( wxSpinEvent& event ) { event.Skip(); } + virtual void OnColorValue( wxCommandEvent& event ) { event.Skip(); } + virtual void OnColorMap( wxCommandEvent& event ) { event.Skip(); } + virtual void OnColorType( wxCommandEvent& event ) { event.Skip(); } + virtual void OnColorMinVal( wxSpinEvent& event ) { event.Skip(); } + virtual void OnColorMaxVal( wxSpinEvent& event ) { event.Skip(); } + virtual void OnColorResetMinMax( wxCommandEvent& event ) { event.Skip(); } + virtual void OnInvert( wxCommandEvent& event ) { event.Skip(); } + virtual void OnAnimDelay( wxSpinEvent& event ) { event.Skip(); } + virtual void OnAnimate( wxCommandEvent& event ) { event.Skip(); } + virtual void OnCameraFile( wxCommandEvent& event ) { event.Skip(); } + virtual void OnCameraSavePath( wxCommandEvent& event ) { event.Skip(); } + virtual void OnCameraLoadPath( wxCommandEvent& event ) { event.Skip(); } + virtual void OnCameraLoadRobotPath( wxCommandEvent& event ) { event.Skip(); } + virtual void OnSaveAnimation( wxCommandEvent& event ) { event.Skip(); } + virtual void OnAnimatePath( wxCommandEvent& event ) { event.Skip(); } + virtual void OnPositionFile( wxCommandEvent& event ) { event.Skip(); } + virtual void OnPositionSave( wxCommandEvent& event ) { event.Skip(); } + virtual void OnPositionLoad( wxCommandEvent& event ) { event.Skip(); } + virtual void OnFactor( wxSpinEvent& event ) { event.Skip(); } + virtual void OnSaveImage( wxCommandEvent& event ) { event.Skip(); } + virtual void OnSelectionFile( wxCommandEvent& event ) { event.Skip(); } + virtual void OnSelectionSave( wxCommandEvent& event ) { event.Skip(); } + virtual void OnSelectionClear( wxCommandEvent& event ) { event.Skip(); } + virtual void OnSelectionSU( wxCommandEvent& event ) { event.Skip(); } + virtual void OnSelectionSV( wxCommandEvent& event ) { event.Skip(); } + virtual void OnSelectionDepth( wxSpinEvent& event ) { event.Skip(); } + virtual void OnSelectionBrushsize( wxSpinEvent& event ) { event.Skip(); } + virtual void OnFrameSpinner( wxSpinEvent& event ) { event.Skip(); } + virtual void OnFramerateSpinner( wxSpinEvent& event ) { event.Skip(); } + virtual void OnFarplaneSpinner( wxSpinEvent& event ) { event.Skip(); } + virtual void OnNearplaneSpinner( wxSpinEvent& event ) { event.Skip(); } + virtual void OnLODAdaption( wxSpinEvent& event ) { event.Skip(); } + virtual void OnCycleLOD( wxCommandEvent& event ) { event.Skip(); } + + + public: + wxBoxSizer* bSizer1; + + Selection( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxT("Selection"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_FRAME_STYLE|wxTAB_TRAVERSAL, bool advanced_controls = false ); + ~Selection(); + +}; + +/////////////////////////////////////////////////////////////////////////////// +/// Class Controls +/////////////////////////////////////////////////////////////////////////////// +class Controls : public wxFrame +{ + private: + + protected: + wxStaticText* m_staticText21; + + wxSpinCtrlDbl* apex_spinner; + wxStaticText* m_staticText211; + wxSpinCtrlDbl* parallel_spinner; + wxButton* m_button15; + wxButton* m_button16; + wxStaticText* m_staticText212; + + wxSpinCtrl* camera_spinner; + wxButton* m_button19; + wxButton* m_button20; + wxCheckBox* m_checkBox7; + wxCheckBox* always_box; + wxCheckBox* alwaysred_box; + + // Virtual event handlers, overide them in your derived class + virtual void OnClose( wxCloseEvent& event ) { exit(0); event.Skip(); } + virtual void OnApexAngle( wxSpinEvent& event ) { event.Skip(); } + virtual void OnParallelZoom( wxSpinEvent& event ) { event.Skip(); } + virtual void OnTopView( wxCommandEvent& event ) { event.Skip(); } + virtual void OnResetPosition( wxCommandEvent& event ) { event.Skip(); } + virtual void OnChooseCamera( wxSpinEvent& event ) { event.Skip(); } + virtual void OnAddCamera( wxCommandEvent& event ) { event.Skip(); } + virtual void OnDeleteCamera( wxCommandEvent& event ) { event.Skip(); } + virtual void OnMouseNav( wxCommandEvent& event ) { event.Skip(); } + virtual void OnAlwaysAllPoints( wxCommandEvent& event ) { event.Skip(); } + virtual void OnAlwaysReducePoints( wxCommandEvent& event ) { event.Skip(); } + + + public: + + Controls( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxT("Controls"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_FRAME_STYLE|wxTAB_TRAVERSAL ); + ~Controls(); + +}; + +#endif diff --git a/include/show/show.h b/include/show/show.h new file mode 100644 index 0000000..61e00b8 --- /dev/null +++ b/include/show/show.h @@ -0,0 +1,129 @@ +/** + * @file + * @brief Displaying of a matched 3D scene + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SHOW_H__ +#define __SHOW_H__ + + +#ifdef _MSC_VER +#define _USE_MATH_DEFINES +#include +#endif +#ifdef __APPLE__ +#include +#elif WITH_FREEGLUT +#include +#else +#include +#endif + +#include +using std::string; +#include +using std::vector; + +#include "show/PathGraph.h" +#include "show/colormanager.h" +#include "show/scancolormanager.h" + +/** for Glut display mode */ +#define RGBA 4 ///< colors for GLUT display +#define RGB 3 ///< colors for GLUT display + +/** float value "nearly" zero? */ +#define DIV_EPSILON 0.001 +/** comparing two floats/doubles */ +#define COMPARE_EPSILON 0.000001 + +#define BUFSIZE 1048576 ///< defining the buffer size + +// This defines the floating point precision of the show program +typedef float sfloat; + +#include "show/show1.icc" +#include "show/show.icc" + +void CallBackReshapeFunc(int width, int height); +void CallBackIdleFunc(void); +void DisplayItFunc(GLenum mode, bool interruptable = false); +void DrawPoints(GLenum mode, bool interruptable = false); +void DrawUrl(); +void glDumpWindowPPM(const char *filename, GLenum mode); +void glWriteImagePPM(const char *filename, int scale, GLenum mode); +void ProcessHitsFunc(GLint hits, GLuint buffer[]); +int parseArgs(int argc, char **argv, string &dir, int& start, int& end, int& maxDist, bool& wanim, bool &readInitial); +void usage(char * prog); +void myNewMenu(); +void topView(); +void resetView(int dummy); +void setView(double pos[3], double new_quat[4], + double newMouseRotX, double newMouseRotY, double newMouseRotZ, + double newCangle, + bool sTV, bool cNMM, double pzoom_new, + bool s_points, bool s_path, bool s_cameras, double ps, int + sf, double fD, bool invert); +void update_view_rotate(int); +void update_view_translation(int); +void startAnimation(int dummy); +void invertView(int dummy); +void callTopView(int dummy); +void drawCameras(void); +void callAddCamera(int dummy); +void callCameraUpdate(int dummy); +void callDeleteCamera(int dummy); + +void pathAnimate(int dummy); +void savePath(int dummy); +void loadPath(int dummy); +void savePose(int dummy); +void loadPose(int dummy); +void saveImage(int dummy); +void CallBackInterfaceFunc(unsigned char key, int x, int y); +void CallBackKeyboardFunc(unsigned char key, int x, int y); +void CallBackKeyboardUpFunc(unsigned char key, int x, int y); +void CallBackMouseFunc(int button, int state, int x, int y); +void CallBackMouseFuncMoving(int button, int state, int x, int y); +void CallBackMouseMotionFunc(int x, int y); +void CallBackSpecialFunc(int key, int x, int y); +void InterfaceFunc(unsigned char key); +void updateCamera(); +void drawRobotPath(int dummy); +int calcFrameNo(); +int calcNoOfPoints(vector, vector); +void calcInterpolatedCameras(vector, vector); +void calcPointSequence(vector &sequence, int frameNr); + +void createDisplayLists(bool reduced=false); + +void updatePointModeControls(); +void changePointMode(int dummy); +void mapColorToValue(int dummy); +void changeColorMap(int dummy); +void minmaxChanged(int dummy); +void resetMinMax(int dummy); +void setScansColored(int dummy); + +void saveSelection(int dummy); +void clearSelection(int dummy); + +void updateControls(); +void updateTopViewControls(); +void resetRotationButton(); +void updateCamControls(); +bool isInterrupted(); +void checkForInterrupt(); +void interruptDrawing(); +void cycleLOD(); + +enum { ROTATION_X, ROTATION_RX, ROTATION_Y, ROTATION_RY, ROTATION_Z, ROTATION_RZ }; + /** enumeration for translation */ +enum { TRANS_X, TRANS_RX, TRANS_Y, TRANS_RY, TRANS_Z, TRANS_RZ }; + /** enumeration for the menue */ +enum { MENU_SCREEN, MENU_LIST, MENU_QUIT }; + +#endif + diff --git a/include/show/show.icc b/include/show/show.icc new file mode 100644 index 0000000..2a389e3 --- /dev/null +++ b/include/show/show.icc @@ -0,0 +1,28 @@ +/** + @file + @brief Displaying of a matched 3D scene + @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. +*/ + +/** + sets the OpenGL point, + (z axis is inverted in OpenGL) +*/ +void setGLPoint(GLdouble pX, GLdouble pY, GLdouble pZ) +{ + // pZ *= -1.0; + glVertex3d(pX, pY, pZ); +} + + +/** + sets the OpenGL point, + (z axis is inverted in OpenGL) +*/ +void setGLPoint(GLdouble* p) +{ + GLdouble pZ = 1.0 * p[2]; + + glVertex3d(p[0], p[1], pZ); +} diff --git a/include/show/show1.icc b/include/show/show1.icc new file mode 100644 index 0000000..461dbe4 --- /dev/null +++ b/include/show/show1.icc @@ -0,0 +1,121 @@ +/** + * @file + * @brief Inline helper functions for show program + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "slam6d/globals.icc" + +/** + * converts a quaterion to a 4x4 matrix + * in OpenGL style + */ +template +inline void QuaternionToMatrix4(const double *quat, T *mat) +{ + double xy = quat[0] * quat[1] * -1.0; + double xz = quat[0] * quat[2]; + double yz = quat[1] * quat[2] * -1.0; + double wx = quat[3] * quat[0]; + double wy = quat[3] * quat[1] * -1.0; + double wz = quat[3] * quat[2]; + double x2 = sqr(quat[0]); + double y2 = sqr(quat[1]); + double z2 = sqr(quat[2]); + + mat[0] = 1.0 - 2.0 * (y2 + z2); + mat[4] = 2.0 * (xy - wz); + mat[8] = 2.0 * (xz + wy); + + mat[1] = 2.0 * (xy + wz); + mat[5] = 1.0 - 2.0 * (x2 + z2); + mat[9] = 2.0 * (yz - wx); + + mat[2] = 2.0 * (xz - wy); + mat[6] = 2.0 * (yz + wx); + mat[10] = 1.0 - 2.0 * (x2 + y2); + + mat[11] = mat[7] = mat[3] = mat[12] = mat[13] = mat[14] = 0.0; + mat[15] = 1.0; +} + +/** + * converts a 4x4 matrix to a quaternion + */ +template +inline void Matrix4ToQuaternion(const T *mat, double *quat) +{ + double S; + double Trace = 1 + mat[0] + mat[5] + mat[10]; + if ( Trace > COMPARE_EPSILON ) { + S = sqrt(Trace) * 2; + quat[0] = -1.0 * ( mat[9] - mat[6] ) / S; // q_x + quat[1] = -1.0 * ( mat[2] - mat[8] ) / S; // q_y + quat[2] = -1.0 * ( mat[4] - mat[1] ) / S; // q_z + quat[3] = 0.25 * S; // q_0 + } else if ( mat[0] > mat[5] && mat[0] > mat[10] ) { // Column 0: + S = sqrt( 1.0 + mat[0] - mat[5] - mat[10] ) * 2; + quat[0] = -1.0 * 0.25 * S; + quat[1] = -1.0 * (mat[4] + mat[1] ) / S; + quat[2] = -1.0 * (mat[2] + mat[8] ) / S; + quat[3] = (mat[9] - mat[6] ) / S; + } else if ( mat[5] > mat[10] ) { // Column 1: + S = sqrt( 1.0 + mat[5] - mat[0] - mat[10] ) * 2; + quat[0] = -1.0 * (mat[4] + mat[1] ) / S; + quat[1] = -1.0 * 0.25 * S; + quat[2] = -1.0 * (mat[9] + mat[6] ) / S; + quat[3] = (mat[2] - mat[8] ) / S; + } else { // Column 2: + S = sqrt( 1.0 + mat[10] - mat[0] - mat[5] ) * 2; + quat[0] = -1.0 * (mat[2] + mat[8] ) / S; + quat[1] = -1.0 * (mat[9] + mat[6] ) / S; + quat[2] = -1.0 * 0.25 * S; + quat[3] = (mat[4] - mat[1] ) / S; + } +} + +/** + * normalizes a quaternion to gain a unit quaternion + */ +template +inline void QuatNormalize(T *q) +{ + T norm = sqrt(sqr(q[0]) + sqr(q[1]) + sqr(q[2]) + sqr(q[3])); + q[3] = q[3] / norm; + q[2] = q[2] / norm; + q[1] = q[1] / norm; + q[0] = q[0] / norm; +} + +/** + * multiplication of quaternions + */ +template +inline void QuatMult(const T *q, const T *q_new, T *qtemp) +{ + qtemp[3] = q_new[3] * q[3] - q_new[0] * q[0] - q_new[1] * q[1] - q_new[2] * q[2]; + qtemp[0] = q_new[3] * q[0] + q_new[0] * q[3] + q_new[1] * q[2] - q_new[2] * q[1]; + qtemp[1] = q_new[3] * q[1] + q_new[1] * q[3] + q_new[2] * q[0] - q_new[0] * q[2]; + qtemp[2] = q_new[3] * q[2] + q_new[2] * q[3] + q_new[0] * q[1] - q_new[1] * q[0]; +} + +/** + * converts a quaternion to an axis angle + */ +inline void QuaternionToAxisAngle(const double *quat, double *axis, double &angle) +{ + double quaternion_norm = sqrt( sqr(quat[0]) + sqr(quat[1]) + sqr(quat[2]) + sqr(quat[3]) ); + double normalized_quat[4]; + normalized_quat[0] = quat[0] / quaternion_norm; + normalized_quat[1] = quat[1] / quaternion_norm; + normalized_quat[2] = quat[2] / quaternion_norm; + normalized_quat[3] = quat[3] / quaternion_norm; + double cos_a = normalized_quat[3]; + angle = deg(acos( cos_a )) * 2.0; + double sin_a = sqrt( 1.0 - cos_a * cos_a ); + if ( fabs( sin_a ) < DIV_EPSILON ) sin_a = 1; + axis[0] = normalized_quat[0] / sin_a; + axis[1] = normalized_quat[1] / sin_a; + axis[2] = -1.0 * normalized_quat[2] / sin_a; +} diff --git a/include/show/show_Boctree.h b/include/show/show_Boctree.h new file mode 100644 index 0000000..5057926 --- /dev/null +++ b/include/show/show_Boctree.h @@ -0,0 +1,929 @@ +/** + * @file + * @brief Representation of an octree for show + * @author Jan Elseberg. Jacobs University Bremen gGmbH, Germany + * @author Andreas Nuechter. Jacobs University Bremen gGmbH, Germany + */ + +#ifndef SHOWBOCTREE_H +#define SHOWBOCTREE_H + +#include "slam6d/Boctree.h" +#include "show/colormanager.h" +#include "show/scancolormanager.h" +#include "show/viewcull.h" +#include "show/colordisplay.h" +#include "slam6d/scan.h" + + + +/** + * @brief Octree for show + * + * A cubic bounding box is calculated + * from the given 3D points. Then it + * is recusivly subdivided into smaller + * subboxes + * + * It contains software culling functionalities + */ +template +class Show_BOctTree : public colordisplay +{ +protected: + BOctTree* m_tree; + + unsigned long maxtargetpoints; + + unsigned int current_lod_mode; + + //! A copy of pointdim of the tree initialized from + unsigned int POINTDIM; + + DataOcttree* m_cache_access; + Scan* m_scan; + + void init(ScanColorManager* scm) { + setColorManager(0); + if (scm) { + scm->registerTree(this); + scm->updateRanges(m_tree->getMins()); + scm->updateRanges(m_tree->getMaxs()); + } + POINTDIM = m_tree->getPointdim(); + maxtargetpoints = maxTargetPoints(m_tree->getRoot()); + current_lod_mode = 0; + m_cache_access = 0; + m_scan = 0; + } + +public: + //! Create with tree held in cache, lock indefinitely + Show_BOctTree(Scan* scan, DataOcttree* cache_access, ScanColorManager* scm = 0) + { + m_tree = &cache_access->get(); + init(scm); + // save cache access and hold it until an unlock + m_cache_access = cache_access; + m_scan = scan; + } + + //! Retrieve a cache access object and update the tree pointer + void lockCachedTree() { + if(m_scan != 0 && m_cache_access == 0) { + m_cache_access = new DataOcttree(m_scan->get("octtree")); + m_tree = &(m_cache_access->get()); + } + } + + //! Remove the data access + void unlockCachedTree() { + if(m_scan != 0 && m_cache_access != 0) { + delete m_cache_access; m_cache_access = 0; + //m_tree = 0; + } + } + + //! Create with already constructed tree and take ownership + Show_BOctTree(BOctTree* tree, ScanColorManager* scm = 0) : + m_tree(tree) + { + init(scm); + } + + //! Create tree by points + template + Show_BOctTree(P * const* pts, int n, T voxelSize, PointType pointtype = PointType(), ScanColorManager *scm = 0) + { + m_tree = new BOctTree(pts, n, voxelSize, pointtype, true); + init(scm); + } + + //! Create tree by deserializing from file + Show_BOctTree(std::string filename, ScanColorManager *scm = 0) + { + m_tree = new BOctTree(filename); + init(scm); + } + + virtual ~Show_BOctTree() { + // only delete cache access if created via this method + if(m_cache_access) { + delete m_cache_access; + } + // if not constructed by a cache-located tree, delete the owned tree + if(!m_scan) + delete m_tree; + } + + BOctTree* getTree() const { return m_tree; } + + void serialize(const std::string& filename) const { m_tree->serialize(filename); } + + unsigned int getMemorySize() const { return m_tree->getMemorySize(); } + + // virtual functions from colordisplay + + void selectRayBrushSize(set &points, int brushsize) { + selectRayBS(points, m_tree->getRoot(), m_tree->getCenter(), m_tree->getSize(), brushsize); + } + + void selectRay(set &points, int depth = INT_MAX) { + selectRay(points, m_tree->getRoot(), m_tree->getCenter(), m_tree->getSize(), depth); + } + + void selectRay(T * &point) { + selectRay(point, m_tree->getRoot(), m_tree->getCenter(), m_tree->getSize(), FLT_MAX); + } + + void cycleLOD() { + current_lod_mode = (current_lod_mode+1)%3; + } + + void drawLOD(float ratio) { + switch (current_lod_mode) { + case 0: + glBegin(GL_POINTS); + displayOctTreeCulledLOD(maxtargetpoints * ratio, m_tree->getRoot(), m_tree->getCenter(), m_tree->getSize()); + glEnd(); + break; + case 1: + glBegin(GL_POINTS); + displayOctTreeCulledLOD2(ratio, m_tree->getRoot(), m_tree->getCenter(), m_tree->getSize()); + glEnd(); + break; + case 2: +#ifdef WITH_GLEE + if (GLEE_ARB_point_parameters) { + glPointParameterfARB(GL_POINT_SIZE_MIN_ARB, 1.0); + glPointParameterfARB(GL_POINT_SIZE_MAX_ARB, 100000.0); + GLfloat p[3] = {0.0, 0.0000, 0.0000005}; + glPointParameterfvARB(GL_POINT_DISTANCE_ATTENUATION_ARB, p); + displayOctTreeCPAllCulled(m_tree->getRoot(), m_tree->getCenter(), m_tree->getSize(), + m_tree->getSize() / pow(2, min( (int)(ratio * m_tree->getMaxDepth()), (int)(m_tree->getMaxDepth() - 3)))); + p[0] = 1.0; + p[2] = 0.0; + glPointParameterfvARB(GL_POINT_DISTANCE_ATTENUATION_ARB, p); + } +#endif + break; + default: + break; + } + } + + void draw() { + glBegin(GL_POINTS); + displayOctTreeAllCulled(m_tree->getRoot(), m_tree->getCenter(), m_tree->getSize()); + glEnd(); + } + + // reroute center call (for recast from colordisplay to show_bocttree) + void getCenter(double _center[3]) const { + m_tree->getCenter(_center); + } + +protected: + + //! ? + unsigned long maxTargetPoints(const bitoct &node) { + bitunion *children; + bitoct::getChildren(node, children); + + unsigned long max = 0; + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf get center + pointrep *points = children->getPointreps(); + unsigned long length = points[0].length; + if (length > max) max = length; + } else { // recurse + unsigned long tp = maxTargetPoints(children->node); + if (tp > max) max = tp; + } + ++children; // next child + } + } + + return max*POPCOUNT(node.valid); + } + + void displayOctTreeAll(const bitoct &node) { +// T ccenter[3]; + bitunion *children; + bitoct::getChildren(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf get center + pointrep *points = children->getPointreps(); + unsigned int length = points[0].length; + T *point = &(points[1].v); // first point + for(unsigned int iterator = 0; iterator < length; iterator++ ) { + if(cm) cm->setColor(point); + glVertex3f( point[0], point[1], point[2]); + point+=POINTDIM; + } + } else { // recurse + displayOctTreeAll( children->node); + } + ++children; // next child + } + } + } + + void displayOctTreeAllCulled(const bitoct &node, const T* center, T size ) { + int res = CubeInFrustum2(center[0], center[1], center[2], size); + if (res==0) return; // culled do not continue with this branch of the tree + + if (res == 2) { // if entirely within frustrum discontinue culling + displayOctTreeAll(node); + return; + } + + T ccenter[3]; + bitunion *children; + bitoct::getChildren(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + BOctTree::childcenter(center, ccenter, size, i); // childrens center + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf get center + // check if leaf is visible + // if ( CubeInFrustum(ccenter[0], ccenter[1], ccenter[2], size/2.0) ) { + pointrep *points = children->getPointreps(); + unsigned int length = points[0].length; + T *point = &(points[1].v); // first point + for(unsigned int iterator = 0; iterator < length; iterator++ ) { + if(cm) cm->setColor(point); + glVertex3f( point[0], point[1], point[2]); + point+=POINTDIM; + } + //} + } else { // recurse + displayOctTreeAllCulled( children->node, ccenter, size/2.0); + } + ++children; // next child + } + } + } + + void displayOctTreeLOD2(float ratio, const bitoct &node, const T* center, T size ) { + + T ccenter[3]; + bitunion *children; + bitoct::getChildren(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + BOctTree::childcenter(center, ccenter, size, i); // childrens center + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf get center + pointrep *points = children->getPointreps(); + unsigned int length = points[0].length; + T *point = &(points[1].v); // first point + + int l = LOD2(ccenter[0], ccenter[1], ccenter[2], size/2.0); // only a single pixel on screen only paint one point + l = max((int)(l*l*ratio), 0); + if (l > 1) { + if ((int)length > l ) { + T each = (T)POINTDIM * (T)((T)length/(T)l); + T *p; + int index; + for(int iterator = 0; iterator < l; iterator++ ) { + index = (T)iterator * each; + p = point + index - index%POINTDIM; + if(cm) cm->setColor(p); + glVertex3f( p[0], p[1], p[2]); + } + } else if ((int)length <= l) { + for(unsigned int iterator = 0; iterator < length; iterator++ ) { + if(cm) cm->setColor(point); + glVertex3f( point[0], point[1], point[2]); + point+=POINTDIM; + } + } /* else if (l == 1) { + if(cm) cm->setColor(point); + glVertex3f( point[0], point[1], point[2]); + }*/ + } else { + if(cm) cm->setColor(point); + glVertex3f( point[0], point[1], point[2]); + } + } else { // recurse + int l = LOD2(ccenter[0], ccenter[1], ccenter[2], size/2.0); // only a single pixel on screen only paint one point + l = max((int)(l*l*ratio), 0); + if (l > 0) { + displayOctTreeCulledLOD2(ratio, children->node, ccenter, size/2.0); + } + } + ++children; // next child + } + } + } + + void displayOctTreeCulledLOD2(float ratio, const bitoct &node, const T* center, T size ) { + + int res = CubeInFrustum2(center[0], center[1], center[2], size); + if (res==0) return; // culled do not continue with this branch of the tree + + if (res == 2) { // if entirely within frustrum discontinue culling + displayOctTreeLOD2(ratio, node, center, size); + return; + } + + T ccenter[3]; + bitunion *children; + bitoct::getChildren(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + BOctTree::childcenter(center, ccenter, size, i); // childrens center + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf get center + // check if leaf is visible + if ( CubeInFrustum(ccenter[0], ccenter[1], ccenter[2], size/2.0) ) { + pointrep *points = children->getPointreps(); + unsigned int length = points[0].length; + T *point = &(points[1].v); // first point + + int l = LOD2(ccenter[0], ccenter[1], ccenter[2], size/2.0); // only a single pixel on screen only paint one point + l = max((int)(l*l*ratio), 0); + if (l != 0) { + if ((int)length > l ) { + T each = (T)POINTDIM * (T)((T)length/(T)l); + T *p; + int index; + for(int iterator = 0; iterator < l; iterator++ ) { + index = (T)iterator * each; + p = point + index - index%POINTDIM; + if(cm) cm->setColor(p); + glVertex3f( p[0], p[1], p[2]); + } + } else if ((int)length <= l) { + for(unsigned int iterator = 0; iterator < length; iterator++ ) { + if(cm) cm->setColor(point); + glVertex3f( point[0], point[1], point[2]); + point+=POINTDIM; + } + } else if (l == 1) { + if(cm) cm->setColor(point); + glVertex3f( point[0], point[1], point[2]); + } + } + } + } else { // recurse + //int l = LOD2(ccenter[0], ccenter[1], ccenter[2], size/2.0); // only a single pixel on screen only paint one point + //l = max((int)(l*l*ratio), 0); + //if (l > 0) { + displayOctTreeCulledLOD2(ratio, children->node, ccenter, size/2.0); + //} + } + ++children; // next child + } + } + } + + void displayOctTreeLOD3(long targetpts, const bitoct &node, const T* center, T size ) { + if (targetpts <= 0) return; // no need to display anything + + T ccenter[3]; + bitunion *children; + bitoct::getChildren(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + BOctTree::childcenter(center, ccenter, size, i); // childrens center + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf get center + pointrep *points = children->getPointreps(); + unsigned int length = points[0].length; + T *point = &(points[1].v); // first point + int l = LOD2(ccenter[0], ccenter[1], ccenter[2], size/2.0); // only a single pixel on screen only paint one point + + if ( l <= targetpts) { // only a single pixel on screen only paint one point + if(cm) cm->setColor(point); + glVertex3f( point[0], point[1], point[2]); + } else { + for(unsigned int iterator = 0; iterator < length; iterator++ ) { + if(cm) cm->setColor(point); + glVertex3f( point[0], point[1], point[2]); + point+=POINTDIM; + } + } + } else { // recurse + displayOctTreeLOD3(targetpts, children->node, ccenter, size/2.0); + } + ++children; // next child + } + } + } + + void displayOctTreeCulledLOD3(long targetpts, const bitoct &node, const T* center, T size ) { + if (targetpts <= 0) return; // no need to display anything + + int res = CubeInFrustum2(center[0], center[1], center[2], size); + if (res==0) return; // culled do not continue with this branch of the tree + + if (res == 2) { // if entirely within frustrum discontinue culling + displayOctTreeLOD3(targetpts, node, center, size); + return; + } + + T ccenter[3]; + bitunion *children; + bitoct::getChildren(node, children); + + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + BOctTree::childcenter(center, ccenter, size, i); // childrens center + //l = std::min( max((int)(l*l*ratio), 1), targetpts); + + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf get center + // check if leaf is visible + if ( CubeInFrustum(ccenter[0], ccenter[1], ccenter[2], size/2.0) ) { + pointrep *points = children->getPointreps(); + unsigned int length = points[0].length; + T *point = &(points[1].v); // first point + + int l = LOD2(ccenter[0], ccenter[1], ccenter[2], size/2.0); // only a single pixel on screen only paint one point + if (targetpts <= 0 ) cout << l << " " << targetpts << endl; + if ( l <= targetpts) { // only a single pixel on screen only paint one point + if(cm) cm->setColor(point); + glVertex3f( point[0], point[1], point[2]); + } else { + for(unsigned int iterator = 0; iterator < length; iterator++ ) { + if(cm) cm->setColor(point); + glVertex3f( point[0], point[1], point[2]); + point+=POINTDIM; + } + } + } + + } else { // recurse + displayOctTreeCulledLOD3(targetpts, children->node, ccenter, size/2.0); + } + ++children; // next child + } + } + } + + void displayOctTreeCulledLOD(long targetpts, const bitoct &node, const T* center, T size ) { + if (targetpts <= 0) return; // no need to display anything + + int res = CubeInFrustum2(center[0], center[1], center[2], size); + if (res==0) return; // culled do not continue with this branch of the tree + + if (res == 2) { // if entirely within frustrum discontinue culling + displayOctTreeLOD(targetpts, node, center, size); + return; + } + + T ccenter[3]; + bitunion *children; + bitoct::getChildren(node, children); + + unsigned short nc = POPCOUNT(node.valid); + long newtargetpts = targetpts; + if (nc > 0) { + newtargetpts = newtargetpts/nc; + if (newtargetpts <= 0 ) return; + } + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + BOctTree::childcenter(center, ccenter, size, i); // childrens center + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf get center + // check if leaf is visible + if ( CubeInFrustum(ccenter[0], ccenter[1], ccenter[2], size/2.0) ) { + pointrep *points = children->getPointreps(); + unsigned int length = points[0].length; + T *point = &(points[1].v); // first point + + if (length > 10 && !LOD(ccenter[0], ccenter[1], ccenter[2], size/2.0) ) { // only a single pixel on screen only paint one point + if(cm) cm->setColor(point); + glVertex3f( point[0], point[1], point[2]); + } else if (length <= newtargetpts) { // more points requested than possible, plot all + for(unsigned int iterator = 0; iterator < length; iterator++ ) { + if(cm) cm->setColor(point); + glVertex3f( point[0], point[1], point[2]); + point+=POINTDIM; + } + } else { // select points to show + // TODO smarter subselection of points here + T each = (T)POINTDIM * (T)((T)length/(T)newtargetpts); + T *p; + int index; + for(unsigned int iterator = 0; iterator < newtargetpts; iterator++ ) { + index = (T)iterator * each; + p = point + index - index%POINTDIM; + if(cm) cm->setColor(p); + glVertex3f( p[0], p[1], p[2]); + //point += each; + } + } + } + + } else { // recurse + displayOctTreeCulledLOD(newtargetpts, children->node, ccenter, size/2.0); + } + ++children; // next child + } + } + } + + void displayOctTreeLOD(long targetpts, const bitoct &node, const T* center, T size ) { + if (targetpts <= 0) return; // no need to display anything + + T ccenter[3]; + bitunion *children; + bitoct::getChildren(node, children); + + unsigned short nc = POPCOUNT(node.valid); + long newtargetpts = targetpts; + if (nc > 0) { + newtargetpts = newtargetpts/nc; + if (newtargetpts <= 0 ) return; + } + + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + BOctTree::childcenter(center, ccenter, size, i); // childrens center + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf get center + pointrep *points = children->getPointreps(); + unsigned int length = points[0].length; + T *point = &(points[1].v); // first point + if (length > 10 && !LOD(ccenter[0], ccenter[1], ccenter[2], size/2.0) ) { // only a single pixel on screen only paint one point + if(cm) cm->setColor(point); + glVertex3f( point[0], point[1], point[2]); + } else if (length <= newtargetpts) { // more points requested than possible, plot all + for(unsigned int iterator = 0; iterator < length; iterator++ ) { + if(cm) cm->setColor(point); + glVertex3f( point[0], point[1], point[2]); + point+=POINTDIM; + } + } else { // select points to show + // TODO smarter subselection of points here + T each = (T)POINTDIM * (T)((T)length/(T)newtargetpts); + T *p; + int index; + for(unsigned int iterator = 0; iterator < newtargetpts; iterator++ ) { + index = (T)iterator * each; + p = point + index - index%POINTDIM; + if(cm) cm->setColor(p); + glVertex3f( p[0], p[1], p[2]); + //point += each; + } + } + } else { // recurse + displayOctTreeLOD(newtargetpts, children->node, ccenter, size/2.0); + } + ++children; // next child + } + } + } + void selectRay(set &selpoints, const bitoct &node, const T* center, T size, int max_depth, int depth = 0) { + if (depth < max_depth && !HitBoundingBox(center, size ))return; + + T ccenter[3]; + bitunion *children; + bitoct::getChildren(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + BOctTree::childcenter(center, ccenter, size, i); // childrens center + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf get center + // check if leaf is visible + if ( !(depth+1 < max_depth) || HitBoundingBox(ccenter, size) ) { + pointrep *points = children->getPointreps(); + unsigned int length = points[0].length; + T *point = &(points[1].v); // first point + for(unsigned int iterator = 0; iterator < length; iterator++ ) { + selpoints.insert(point); + point+=POINTDIM; + } + } + } else { // recurse + selectRay( selpoints, children->node, ccenter, size/2.0, max_depth, depth+1); + } + ++children; // next child + } + } + } + + void selectRayBS(set &selpoints, const bitoct &node, const T* center, T size, int brushsize) { + T ccenter[3]; + bitunion *children; + bitoct::getChildren(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + BOctTree::childcenter(center, ccenter, size, i); // childrens center + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf get center + // check if leaf is visible + if ( HitBoundingBox(ccenter, size) ) { + pointrep *points = children->getPointreps(); + unsigned int length = points[0].length; + T *point = &(points[1].v); // first point + for(unsigned int iterator = 0; iterator < length; iterator++ ) { + if (ScreenDist(point) < brushsize && RayDist(point) > 100.0) + selpoints.insert(point); + point+=POINTDIM; + } + } + } else { // recurse + selectRayBS( selpoints, children->node, ccenter, size/2.0, brushsize); + } + ++children; // next child + } + } + } + + void selectRay(T * &selpoint, const bitoct &node, const T* center, T size, float min) { + if (!HitBoundingBox(center, size ))return; + + T ccenter[3]; + bitunion *children; + bitoct::getChildren(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + BOctTree::childcenter(center, ccenter, size, i); // childrens center + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf get center + // check if leaf is visible + if ( HitBoundingBox(ccenter, size) ) { + pointrep *points = children->getPointreps(); + unsigned int length = points[0].length; + T *point = &(points[1].v); // first point + for(unsigned int iterator = 0; iterator < length; iterator++ ) { + T dist = RayDist(point); + if (min > dist && ScreenDist(point) < 5 && dist > 100.0) { + selpoint = point; + min = dist; + } + point+=POINTDIM; + } + } + } else { // recurse + selectRay( selpoint, children->node, ccenter, size/2.0, min); + } + ++children; // next child + } + } + } + + void displayOctTreeCAllCulled(const bitoct &node, const T* center, T size, T minsize ) { + int res = CubeInFrustum2(center[0], center[1], center[2], size); + if (res==0) return; // culled do not continue with this branch of the tree + + if (res == 2) { // if entirely within frustrum discontinue culling + displayOctTreeCAll(node, center, size, minsize); + return; + } + + T ccenter[3]; + bitunion *children; + bitoct::getChildren(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + BOctTree::childcenter(center, ccenter, size, i); // childrens center + if ( ( 1 << i ) & node.leaf || minsize > size ) { // if ith node is leaf get center + // check if leaf is visible + if ( CubeInFrustum(ccenter[0], ccenter[1], ccenter[2], size/2.0) ) { + showCube(ccenter, size/2.0); + } + } else { // recurse + displayOctTreeCAllCulled( children->node, ccenter, size/2.0, minsize); + } + ++children; // next child + } + } + } + + void displayOctTreeCAll(const bitoct &node, const T* center, T size, T minsize ) { + T ccenter[3]; + bitunion *children; + bitoct::getChildren(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + BOctTree::childcenter(center, ccenter, size, i); // childrens center + if ( ( 1 << i ) & node.leaf || minsize > size ) { // if ith node is leaf get center + showCube(ccenter, size/2.0); + } else { // recurse + displayOctTreeCAll( children->node, ccenter, size/2.0, minsize); + } + ++children; // next child + } + } + } + + + void displayOctTreeCPAllCulled(const bitoct &node, const T* center, T size, T minsize ) { + int res = CubeInFrustum2(center[0], center[1], center[2], size); + if (res==0) return; // culled do not continue with this branch of the tree + + if (res == 2) { // if entirely within frustrum discontinue culling + displayOctTreeCPAll(node, center, size, minsize); + return; + } + + T ccenter[3]; + bitunion *children; + bitoct::getChildren(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + BOctTree::childcenter(center, ccenter, size, i); // childrens center + if ( minsize > size ) { + if ( CubeInFrustum(ccenter[0], ccenter[1], ccenter[2], size/2.0) ) { + if(cm) { + if (( 1 << i ) & node.leaf ) + cm->setColor( &(children->getPoints()[1]) ); + else + cm->setColor( m_tree->pickPoint(children->node) ); + } + + glPointSize(size/2.0); + glBegin(GL_POINTS); + glVertex3f( ccenter[0], ccenter[1], ccenter[2] ); + glEnd(); + } + }else if ( ( 1 << i ) & node.leaf ) { + if ( CubeInFrustum(ccenter[0], ccenter[1], ccenter[2], size/2.0) ) { + pointrep *points = children->getPointreps(); + unsigned int length = points[0].length; + T *point = &(points[1].v); // first point + glPointSize(1.0); + glBegin(GL_POINTS); + for(unsigned int iterator = 0; iterator < length; iterator++ ) { + if(cm) cm->setColor(point); + glVertex3f( point[0], point[1], point[2]); + point+=POINTDIM; + } + glEnd(); + } + } else { // recurse + displayOctTreeCPAllCulled( children->node, ccenter, size/2.0, minsize); + } + ++children; // next child + } + } + } + + void displayOctTreeCPAll(const bitoct &node, const T* center, T size, T minsize ) { + T ccenter[3]; + bitunion *children; + bitoct::getChildren(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + BOctTree::childcenter(center, ccenter, size, i); // childrens center + if ( minsize > size ) { // if ith node is leaf get center + // check if leaf is visible + if ( CubeInFrustum(ccenter[0], ccenter[1], ccenter[2], size/2.0) ) { + if(cm) { + if (( 1 << i ) & node.leaf ) + cm->setColor( &(children->getPoints()[1]) ); + else + cm->setColor( m_tree->pickPoint(children->node) ); + } + + glPointSize(size/2.0); + glBegin(GL_POINTS); + glVertex3f( ccenter[0], ccenter[1], ccenter[2] ); + glEnd(); + } + }else if ( ( 1 << i ) & node.leaf ) { + pointrep *points = children->getPointreps(); + unsigned int length = points[0].length; + T *point = &(points[1].v); // first point + glPointSize(1.0); + glBegin(GL_POINTS); + for(unsigned int iterator = 0; iterator < length; iterator++ ) { + if(cm) cm->setColor(point); + glVertex3f( point[0], point[1], point[2]); + point+=POINTDIM; + } + glEnd(); + } else { // recurse + displayOctTreeCPAll( children->node, ccenter, size/2.0, minsize); + } + ++children; // next child + } + } + } + + void showCube(const T* center, T size) { + glLineWidth(1.0); + glBegin(GL_QUADS); // draw a cube with 6 quads + glColor3f(0.0f,1.0f,0.0f); // Set The Color To Green + glVertex3f(center[0] + size, center[1] + size, center[2] - size); + glVertex3f(center[0] - size, center[1] + size, center[2] - size); + glVertex3f(center[0] - size, center[1] + size, center[2] + size); + glVertex3f(center[0] + size, center[1] + size, center[2] + size); + glColor3f(1.0f,0.5f,0.0f); // Set The Color To Orange + + glVertex3f(center[0] + size, center[1] - size, center[2] + size); + glVertex3f(center[0] - size, center[1] - size, center[2] + size); + glVertex3f(center[0] - size, center[1] - size, center[2] - size); + glVertex3f(center[0] + size, center[1] - size, center[2] - size); + + glColor3f(1.0f,0.0f,0.0f); // Set The Color To Red + glVertex3f(center[0] + size, center[1] + size, center[2] + size); + glVertex3f(center[0] - size, center[1] + size, center[2] + size); + glVertex3f(center[0] - size, center[1] - size, center[2] + size); + glVertex3f(center[0] + size, center[1] - size, center[2] + size); + + glColor3f(1.0f,1.0f,0.0f); // Set The Color To Yellow + glVertex3f(center[0] + size, center[1] - size, center[2] - size); + glVertex3f(center[0] - size, center[1] - size, center[2] - size); + glVertex3f(center[0] - size, center[1] + size, center[2] - size); + glVertex3f(center[0] + size, center[1] + size, center[2] - size); + + glColor3f(0.0f,0.0f,1.0f); // Set The Color To Blue + glVertex3f(center[0] - size, center[1] + size, center[2] + size); + glVertex3f(center[0] - size, center[1] + size, center[2] - size); + glVertex3f(center[0] - size, center[1] - size, center[2] - size); + glVertex3f(center[0] - size, center[1] - size, center[2] + size); + + glColor3f(1.0f,0.0f,1.0f); // Set The Color To Violet + glVertex3f(center[0] + size, center[1] + size, center[2] - size); + glVertex3f(center[0] + size, center[1] + size, center[2] + size); + glVertex3f(center[0] + size, center[1] - size, center[2] + size); + glVertex3f(center[0] + size, center[1] - size, center[2] - size); + + glEnd(); + } + + + void displayOctTreeAllCulled(const bitoct &node, const T* center, T size, float *frustum[6], unsigned char frustsize ) { + float *new_frustum[6]; unsigned char counter = 0; + for (unsigned char p = 0; p < frustsize; p++ ) { + char res = PlaneAABB(center[0], center[1], center[2], size, frustum[p]); + if (res == 0) { // cube is on the wrong side of the plane (not visible) + return; + } else if ( res == 1 ) { // plane intersects this volume continue culling with this plane + new_frustum[counter++] = frustum[p]; + } // other case is simply not to continue culling with the respective plane + } + if (counter == 0) { // if entirely within frustrum discontinue culling + displayOctTreeAll(node); + return; + } + + T ccenter[3]; + bitunion *children; + bitoct::getChildren(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + BOctTree::childcenter(center, ccenter, size, i); // childrens center + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf get center + pointrep *points = children->getPointreps(); + unsigned int length = points[0].length; + T *point = &(points[1].v); // first point + for(unsigned int iterator = 0; iterator < length; iterator++ ) { + if(cm) cm->setColor(point); + glVertex3f( point[0], point[1], point[2]); + point+=POINTDIM; + } + } else { // recurse + displayOctTreeAllCulled( children->node, ccenter, size/2.0, new_frustum, counter); + } + ++children; // next child + } + } + } + + unsigned long int countVisiblePoints(const bitoct &node, const T* center, T size ) { + unsigned long int result = 0; + int res = CubeInFrustum2(center[0], center[1], center[2], size); + if (res==0) return 0; // culled do not continue with this branch of the tree + + T ccenter[3]; + bitunion *children; + bitoct::getChildren(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + BOctTree::childcenter(center, ccenter, size, i); // childrens center + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf get center + // check if leaf is visible + if ( CubeInFrustum(ccenter[0], ccenter[1], ccenter[2], size/2.0) ) { + pointrep *points = children->getPointreps(); + unsigned int length = points[0].length; + result += length; + } + } else { // recurse + result += countVisiblePoints( children->node, ccenter, size/2.0); + } + ++children; // next child + } + } + return result; + } +}; + +#endif diff --git a/include/show/vertexarray.h b/include/show/vertexarray.h new file mode 100644 index 0000000..8215135 --- /dev/null +++ b/include/show/vertexarray.h @@ -0,0 +1,34 @@ +/** + * @file + * @brief Representation of an OpenGL vertex array + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __VERTEXARRAY_H__ +#define __VERTEXARRAY_H__ + +#ifdef _MSC_VER +#include +#endif + +#ifdef __APPLE__ +#include +#else +#include +#endif + + +class vertexArray +{ +public: + vertexArray(int _numPointsToRender); + ~vertexArray(); + + GLfloat* array; + GLint numPointsToRender; + GLuint name; +private: + static GLuint nameCounter; +}; + +#endif diff --git a/include/show/viewcull.h b/include/show/viewcull.h new file mode 100644 index 0000000..964f99b --- /dev/null +++ b/include/show/viewcull.h @@ -0,0 +1,165 @@ +#include +#include +#include + + +#ifdef _MSC_VER +#include +#include +#include +#else +#include +#include +#include +#endif + +#ifndef __VIEWCULL_H__ +#define __VIEWCULL_H__ + +///////////////////////// Variable declarations... +/** The 6 planes of the viewing frustum */ +extern float frustum[6][4]; + +/** the modelview * projection matrix to map a model point to an onscreen coordinate */ +extern float matrix[16]; +/** some useful variables for faster calculation of the pixel coordinates */ +extern short VP[4]; +/** a unit vector pointing to the right of the screen */ +extern float right[3]; +/** how much detail is shown, 0 means everything is plotted */ +extern short DETAIL; + +extern double SX, SY, SZ, EX, EY, EZ; +extern float origin[3], dir[3]; /*ray */ +extern float dist; +extern int rayX,rayY; +extern float rayVP[4]; + +#define NUMDIM 3 +#define RIGHT 0 +#define LEFT 1 +#define MIDDLE 2 + +extern float minB[NUMDIM], maxB[NUMDIM]; /*box */ +extern float coord[NUMDIM]; /* hit point */ + + +template bool HitBoundingBox(const T center[3], T size ) +{ + minB[0] = center[0] - size; + minB[1] = center[1] - size; + minB[2] = center[2] - size; + + maxB[0] = center[0] + size; + maxB[1] = center[1] + size; + maxB[2] = center[2] + size; + + bool inside = true; + char quadrant[NUMDIM]; + register int i; + int whichPlane; + float maxT[NUMDIM]; + float candidatePlane[NUMDIM]; + + // Find candidate planes; this loop can be avoided if + // rays cast all from the eye(assume perpsective view) + for (i=0; i maxB[i]) { + quadrant[i] = RIGHT; + candidatePlane[i] = maxB[i]; + inside = false; + }else { + candidatePlane[i] = 0.0; + quadrant[i] = MIDDLE; + } + + // Ray origin inside bounding box + if(inside) { + return (true); + } + + + // Calculate T distances to candidate planes + for (i = 0; i < NUMDIM; i++) + if (quadrant[i] != MIDDLE && dir[i] !=0.) + maxT[i] = (candidatePlane[i]-origin[i]) / dir[i]; + else + maxT[i] = -1.; + + // Get largest of the maxT's for final choice of intersection + whichPlane = 0; + for (i = 1; i < NUMDIM; i++) + if (maxT[whichPlane] < maxT[i]) + whichPlane = i; + + // Check final candidate actually inside box + if (maxT[whichPlane] < 0.) return (false); + for (i = 0; i < NUMDIM; i++) + if (whichPlane != i) { + coord[i] = origin[i] + maxT[whichPlane] *dir[i]; + if (coord[i] < minB[i] || coord[i] > maxB[i]) + return (false); + } else { + coord[i] = candidatePlane[i]; + } + return (true); // ray hits box +} + +void calcRay(int x, int y, double znear, double zfar); + +#include +template +float RayDist(T *point) +{ + return point[0] * dir[0] + point[1] * dir[1] + point[2] * dir[2] - dist; +} + +template +short ScreenDist(T *point) { + float pn[3]; + // x coordinate on screen, not normalized + pn[0] = point[0] * matrix[0] + point[1] * matrix[4] + point[2] * matrix[8] + matrix[12]; + pn[1] = point[0] * matrix[1] + point[1] * matrix[5] + point[2] * matrix[9] + matrix[13]; + // normalization + pn[2] = point[0] * matrix[3] + point[1] * matrix[7] + point[2] * matrix[11] + matrix[15]; + + // normalized x coordinate on screen + pn[0] /= pn[2]; + pn[1] /= pn[2]; + + // true x coordinate in viewport coordinate system + //Xi = pn[0]*VP[0] + VP[1]; + //fTempo[4]*0.5+0.5)*viewport[2]+viewport[0]; + + float XX = ( (pn[0])*rayVP[0] + rayVP[1]); + float YY = ( (pn[1])*rayVP[2] + rayVP[3]); + + short dx, dy; + if (XX > rayX) dx = XX-rayX; + else dx = rayX-XX; + + if (YY > rayY) dy = YY-rayY; + else dy = rayY-YY; + + // for the benefit of visual studio's compiler cast to float + return sqrt((float)(dx*dx + dy*dy)); +} + +void ExtractFrustum(short detail); +void ExtractFrustum(float *frust[6]); + + +bool CubeInFrustum( float x, float y, float z, float size ); +int CubeInFrustum2( float x, float y, float z, float size ); +char PlaneAABB( float x, float y, float z, float size, float *plane ); + +void remViewport(); +bool LOD(float x, float y, float z, float size); +int LOD2(float x, float y, float z, float size); + + +#endif diff --git a/include/show/wxshow.h b/include/show/wxshow.h new file mode 100644 index 0000000..4d452db --- /dev/null +++ b/include/show/wxshow.h @@ -0,0 +1,40 @@ +#ifndef _glpane_ +#define _glpane_ + +#include "GL/glut.h" +#include "wx/wx.h" +#include "wx/glcanvas.h" + +class BasicGLPane : public wxGLCanvas +{ + wxGLContext* m_context; + +public: + BasicGLPane(wxFrame* parent, int* args); + virtual ~BasicGLPane(); + + void resized(wxSizeEvent& evt); + + int getWidth(); + int getHeight(); + + void render(wxPaintEvent& evt); + void paint(bool interruptable=false); + void prepare3DViewport(int topleft_x, int topleft_y, int bottomrigth_x, int bottomrigth_y); + + // events + void idle(); + void idle_event(wxIdleEvent& event); + void mouseMoved(wxMouseEvent& event); + void mouseEvent(wxMouseEvent& event); + void mouseDown(wxMouseEvent& event); + void mouseWheelMoved(wxMouseEvent& event); + void mouseReleased(wxMouseEvent& event); + void rightClick(wxMouseEvent& event); + void mouseLeftWindow(wxMouseEvent& event); + void keyPressed(wxKeyEvent& event); + void keyReleased(wxKeyEvent& event); + + DECLARE_EVENT_TABLE() +}; +#endif diff --git a/include/slam6d/Boctree.h b/include/slam6d/Boctree.h new file mode 100644 index 0000000..f2bfc55 --- /dev/null +++ b/include/slam6d/Boctree.h @@ -0,0 +1,1567 @@ +/** + * @file + * @brief Efficient representation of an octree + * @author Jan Elsberg. Automation Group, Jacobs University Bremen gGmbH, Germany. + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef BOCTREE_H +#define BOCTREE_H + +#include "searchTree.h" +#include "point_type.h" +#include "data_types.h" +#include "allocator.h" +#include "limits.h" +#include "nnparams.h" +#include "globals.icc" + + +#include + +#include +using std::vector; +#include +using std::deque; +#include +using std::set; +#include +using std::list; +#include +#include +#include + +#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) + #define POPCOUNT(mask) __builtin_popcount(mask) +#else + #define POPCOUNT(mask) _my_popcount_3(mask) +#endif + +#include // to avoid ifdeffing for offset_ptr.get(), use &(*ptr) +namespace { namespace ip = boost::interprocess; } + + +// forward declaration +template union bitunion; + +/** + * This is our preferred representation for the leaf nodes (as it is the most compact). + * BOctTree makes an array of this, the first containing the number of points (not the + * number of coordinates) stored. + */ +template union dunion { + T v; + unsigned int length; + dunion() : length(0) {}; + +}; +// typedefs in combination with templates are weird +//typedef dunion pointrep; +#define pointrep union dunion + + + + +/** + * This struct represents the nodes of the octree + * + * child_pointer is a relative pointer to the first child of this node, as it is only + * 48 bit this will cause issues on systems with more than 268 TB of memory. All children + * of this node must be stored sequentially. If one of the children is a leaf, that + * child will be a pointer to however a set of points is represented (pointrep *). + * + * valid is a bitmask describing whether the corresponding buckets are filled. + * + * leaf is a bitmask describing whether the correpsonding bucket is a leaf node. + * + * The representation of the bitmask is somewhat inefficient. We use 16 bits for only + * 3^8 possible states, so in essence we could save 3 bits by compression. + * + */ +class bitoct{ + public: + +#ifdef _MSC_VER + __int64 child_pointer : 48; + unsigned valid : 8; + unsigned leaf : 8; +#else + signed long child_pointer : 48; + unsigned valid : 8; + unsigned leaf : 8; +#endif + /** + * sets the child pointer of parent so it points to child + */ + template + static inline void link(bitoct &parent, bitunion *child) { + parent.child_pointer = (long)((char*)child - (char*)&parent); + } + + /** + * Returns the children of this node (given as parent). + */ + template + static inline void getChildren(const bitoct &parent, bitunion* &children) { + children = (bitunion*)((char*)&parent + parent.child_pointer); + } + + template + inline bitunion* getChild(unsigned char index) { + bitunion *children = (bitunion*)((char*)this + this->child_pointer); + for (unsigned char i = 0; i < index; i++) { + if ( ( 1 << i ) & valid ) { // if ith node exists + children++; + } + } + return children; + } +}; + + +/** + * This union combines an octree node with a pointer to a set of points. This allows + * us to use both nodes and leaves interchangeably. + * + * points is a pointer to the point representation in use + * + * node is simply the octree node + * + */ +template union bitunion { + pointrep *points; + //union dunion *points; + bitoct node; + + bitunion(pointrep *p) : points(p) {}; + bitunion(bitoct b) : node(b) {}; + bitunion() : points(0) { + node.child_pointer = 0; + node.valid = 0; + node.leaf = 0; + }; // needed for new [] + + //! Leaf node: links a pointrep array [length+values] to this union, saved as an offset pointer + static inline void link(bitunion* leaf, pointrep* points) { + // use node child_pointer as offset_ptr, not pointrep + leaf->node.child_pointer = (long)((char*)points - (char*)leaf); + } + + //! Leaf node: points in the array + inline T* getPoints() const { + // absolute pointer + //return &(this->points[1].v); + // offset pointer + return reinterpret_cast( + reinterpret_cast((char*)this + node.child_pointer) + 1 + ); + } + + //! Leaf node: length in the array + inline unsigned int getLength() const { + // absolute pointer + //return this->points[0].length; + // offset pointer + return (reinterpret_cast((char*)this + node.child_pointer))[0].length; + } + + //! Leaf node: all points + inline pointrep* getPointreps() const { + return reinterpret_cast((char*)this + node.child_pointer); + } + + inline bitunion* getChild(unsigned char index) const { + bitunion *children = (bitunion*)((char*)this + this->node.child_pointer); + for (unsigned char i = 0; i < index; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + children++; + } + } + return children; + } + + inline bool isValid(unsigned char index) { + return ( ( 1 << index ) & node.valid ); + } + /* + inline pointrep* getChild(unsigned char index) { + bitunion *children = (bitunion*)((char*)this + this->node.child_pointer); + return children[index].points; + }*/ + + inline bool childIsLeaf(unsigned char index) { + return ( ( 1 << index ) & node.leaf ); // if ith node is leaf get center + } +}; + + +// initialized in Boctree.cc, sequence intialized on startup +extern char amap[8][8]; +extern char imap[8][8]; +extern char sequence2ci[8][256][8]; // maps preference to index in children array for every valid_mask and every case + + + +/** + * @brief Octree + * + * A cubic bounding box is calculated + * from the given 3D points. Then it + * is recusivly subdivided into smaller + * subboxes + */ +template +class BOctTree : public SearchTree { +public: + BOctTree() { + } + + template + BOctTree(P * const* pts, int n, T voxelSize, PointType _pointtype = PointType(), bool _earlystop = false ) : pointtype(_pointtype), earlystop(_earlystop) + { + alloc = new PackedChunkAllocator; + + this->voxelSize = voxelSize; + + this->POINTDIM = pointtype.getPointDim(); + + mins = alloc->allocate(POINTDIM); + maxs = alloc->allocate(POINTDIM); + + // initialising + for (unsigned int i = 0; i < POINTDIM; i++) { + mins[i] = pts[0][i]; + maxs[i] = pts[0][i]; + } + + for (unsigned int i = 0; i < POINTDIM; i++) { + for (int j = 1; j < n; j++) { + mins[i] = min(mins[i], (T)pts[j][i]); + maxs[i] = max(maxs[i], (T)pts[j][i]); + } + } + + center[0] = 0.5 * (mins[0] + maxs[0]); + center[1] = 0.5 * (mins[1] + maxs[1]); + center[2] = 0.5 * (mins[2] + maxs[2]); + size = max(max(0.5 * (maxs[0] - mins[0]), 0.5 * (maxs[1] - mins[1])), 0.5 * (maxs[2] - mins[2])); + size += 1.0; // for numerical reasons we increase size + + // calculate new buckets + T newcenter[8][3]; + T sizeNew = size / 2.0; + + for (unsigned char i = 0; i < 8; i++) { + childcenter(center, newcenter[i], size, i); + } + // set up values + uroot = alloc->allocate >(); + root = &uroot->node; + + countPointsAndQueueFast(pts, n, newcenter, sizeNew, *root, center); + init(); + } + + BOctTree(std::string filename) { + alloc = new PackedChunkAllocator; + deserialize(filename); + init(); + } + + template + BOctTree(vector

&pts, T voxelSize, PointType _pointtype = PointType(), bool _earlystop = false) : earlystop(_earlystop) + { + alloc = new PackedChunkAllocator; + + this->voxelSize = voxelSize; + + this->POINTDIM = pointtype.getPointDim(); + + mins = alloc->allocate(POINTDIM); + maxs = alloc->allocate(POINTDIM); + + // initialising + for (unsigned int i = 0; i < POINTDIM; i++) { + mins[i] = pts[0][i]; + maxs[i] = pts[0][i]; + } + + for (unsigned int i = 0; i < POINTDIM; i++) { + for (unsigned int j = 1; j < pts.size(); j++) { + mins[i] = min(mins[i], pts[j][i]); + maxs[i] = max(maxs[i], pts[j][i]); + } + } + + center[0] = 0.5 * (mins[0] + maxs[0]); + center[1] = 0.5 * (mins[1] + maxs[1]); + center[2] = 0.5 * (mins[2] + maxs[2]); + size = max(max(0.5 * (maxs[0] - mins[0]), 0.5 * (maxs[1] - mins[1])), 0.5 * (maxs[2] - mins[2])); + + size += 1.0; // for numerical reasons we increase size + + // calculate new buckets + T newcenter[8][3]; + T sizeNew = size / 2.0; + + for (unsigned char i = 0; i < 8; i++) { + childcenter(center, newcenter[i], size, i); + } + // set up values + uroot = alloc->allocate >(); + root = &uroot->node; + + countPointsAndQueue(pts, newcenter, sizeNew, *root, center); + } + + virtual ~BOctTree() + { + if(alloc) { + delete alloc; + } + } + + void init() { + // compute maximal depth as well as the size of the smalles leaf + real_voxelSize = size; + max_depth = 1; + while (real_voxelSize > voxelSize) { + real_voxelSize = real_voxelSize/2.0; + max_depth++; + } + + child_bit_depth = alloc->allocate(max_depth); + child_bit_depth_inv = alloc->allocate(max_depth); + + for(int d=0; d < max_depth; d++) { + child_bit_depth[d] = 1 << (max_depth - d - 1); + child_bit_depth_inv[d] = ~child_bit_depth[d]; + } + + mult = 1.0/real_voxelSize; + add[0] = -center[0] + size; + add[1] = -center[1] + size; + add[2] = -center[2] + size; + + largest_index = child_bit_depth[0] * 2 -1; + } + +protected: + + /** + * Serialization critical variables + */ + //! the root of the octree + ip::offset_ptr root; + ip::offset_ptr > uroot; + + //! storing the center + T center[3]; + + //! storing the dimension + T size; + + //! storing the voxel size + T voxelSize; + + //! The real voxelsize of the leaves + T real_voxelSize; + + //! Offset and real voxelsize inverse factor for manipulation points + T add[3]; + T mult; + + //! Dimension of each point: 3 (xyz) + N (attributes) + unsigned int POINTDIM; + + //! storing minimal and maximal values for all dimensions + ip::offset_ptr mins; + ip::offset_ptr maxs; + + //! Details of point attributes + PointType pointtype; + + //! ? + unsigned char max_depth; + ip::offset_ptr child_bit_depth; + ip::offset_ptr child_bit_depth_inv; + int largest_index; + + /** + * Serialization uncritical, runtime relevant variables + */ + + //! Threadlocal storage of parameters used in SearchTree operations + static NNParams params[100]; + + /** + * Serialization uncritical, runtime irrelevant variables (constructor-stuff) + */ + + //! Whether to stop subdividing at N<10 nodes or not + bool earlystop; + + //! Allocator used for creating nodes in the constructor + Allocator* alloc; + +public: + + inline const T* getMins() const { return &(*mins); } + inline const T* getMaxs() const { return &(*maxs); } + inline const T* getCenter() const { return center; } + inline T getSize() const { return size; } + inline unsigned int getPointdim() const { return POINTDIM; } + inline const bitoct& getRoot() const { return *root; } + inline unsigned int getMaxDepth() const { return max_depth; } + + inline void getCenter(double _center[3]) const { + _center[0] = center[0]; + _center[1] = center[1]; + _center[2] = center[2]; + } + + void GetOctTreeCenter(vector&c) { GetOctTreeCenter(c, *root, center, size); } + void GetOctTreeRandom(vector&c) { GetOctTreeRandom(c, *root); } + void GetOctTreeRandom(vector&c, unsigned int ptspervoxel) { GetOctTreeRandom(c, ptspervoxel, *root); } + void AllPoints(vector &vp) { AllPoints(*BOctTree::root, vp); } + + long countNodes() { return 1 + countNodes(*root); } // computes number of inner nodes + long countLeaves() { return countLeaves(*root); } // computes number of leaves + points + long countOctLeaves() { return countOctLeaves(*root); } // computes number of leaves + + void deserialize(std::string filename ) { + char buffer[sizeof(T) * 20]; + T *p = reinterpret_cast(buffer); + + std::ifstream file; + file.open (filename.c_str(), std::ios::in | std::ios::binary); + + // read magic bits + file.read(buffer, 2); + if ( buffer[0] != 'X' || buffer[1] != 'T') { + std::cerr << "Not an octree file!!" << endl; + file.close(); + return; + } + + // read header + pointtype = PointType::deserialize(file); + + file.read(buffer, 5 * sizeof(T)); + voxelSize = p[0]; + center[0] = p[1]; + center[1] = p[2]; + center[2] = p[3]; + size = p[4]; + + file.read(buffer, sizeof(int)); + int *ip = reinterpret_cast(buffer); + POINTDIM = *ip; + + mins = alloc->allocate(POINTDIM); + maxs = alloc->allocate(POINTDIM); + + file.read(reinterpret_cast(&(*mins)), POINTDIM * sizeof(T)); + file.read(reinterpret_cast(&(*maxs)), POINTDIM * sizeof(T)); + + // read root node + uroot = alloc->allocate >(); + root = &uroot->node; + + deserialize(file, *root); + file.close(); + } + + static void deserialize(std::string filename, vector &points ) { + char buffer[sizeof(T) * 20]; + + std::ifstream file; + file.open (filename.c_str(), std::ios::in | std::ios::binary); + + // read magic bits + file.read(buffer, 2); + if ( buffer[0] != 'X' || buffer[1] != 'T') { + std::cerr << "Not an octree file!!" << endl; + file.close(); + return; + } + + // read header + PointType pointtype = PointType::deserialize(file); + + file.read(buffer, 5 * sizeof(T)); // read over voxelsize, center and size + file.read(buffer, sizeof(int)); + + int *ip = reinterpret_cast(buffer); + unsigned int POINTDIM = *ip; + + file.read(buffer, POINTDIM * sizeof(T)); + file.read(buffer, POINTDIM * sizeof(T)); + + // read root node + deserialize(file, points, pointtype); + file.close(); + } + + void serialize(std::string filename) { + char buffer[sizeof(T) * 20]; + T *p = reinterpret_cast(buffer); + + std::ofstream file; + file.open (filename.c_str(), std::ios::out | std::ios::binary); + + // write magic bits + buffer[0] = 'X'; + buffer[1] = 'T'; + file.write(buffer, 2); + + // write header + pointtype.serialize(file); + + p[0] = voxelSize; + p[1] = center[0]; + p[2] = center[1]; + p[3] = center[2]; + p[4] = size; + + int *ip = reinterpret_cast(&(buffer[5 * sizeof(T)])); + *ip = POINTDIM; + + file.write(buffer, 5 * sizeof(T) + sizeof(int)); + + + for (unsigned int i = 0; i < POINTDIM; i++) { + p[i] = mins[i]; + } + for (unsigned int i = 0; i < POINTDIM; i++) { + p[i+POINTDIM] = maxs[i]; + } + + file.write(buffer, 2*POINTDIM * sizeof(T)); + + // write root node + serialize(file, *root); + + file.close(); + } + + static PointType readType(std::string filename ) { + char buffer[sizeof(T) * 20]; + + std::ifstream file; + file.open (filename.c_str(), std::ios::in | std::ios::binary); + + // read magic bits + file.read(buffer, 2); + if ( buffer[0] != 'X' || buffer[1] != 'T') { + std::cerr << "Not an octree file!!" << endl; + file.close(); + return PointType(); + } + + // read header + PointType pointtype = PointType::deserialize(file); + + file.close(); + + return pointtype; + } + + + /** + * Picks the first point in depth first order starting from the given node + * + */ + T* pickPoint(bitoct &node) { + bitunion *children; + bitoct::getChildren(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf + // absolute pointer + //return &(children->points[1].v); + // offset pointer + return children->getPoints(); + } else { // recurse + return pickPoint(children->node); + } + ++children; // next child + } + } + return 0; + } + + static void childcenter(const T *pcenter, T *ccenter, T size, unsigned char i) { + switch (i) { + case 0: // 000 + ccenter[0] = pcenter[0] - size / 2.0; + ccenter[1] = pcenter[1] - size / 2.0; + ccenter[2] = pcenter[2] - size / 2.0; + break; + case 1: // 001 + ccenter[0] = pcenter[0] + size / 2.0; + ccenter[1] = pcenter[1] - size / 2.0; + ccenter[2] = pcenter[2] - size / 2.0; + break; + case 2: // 010 + ccenter[0] = pcenter[0] - size / 2.0; + ccenter[1] = pcenter[1] + size / 2.0; + ccenter[2] = pcenter[2] - size / 2.0; + break; + case 3: // 011 + ccenter[0] = pcenter[0] + size / 2.0; + ccenter[1] = pcenter[1] + size / 2.0; + ccenter[2] = pcenter[2] - size / 2.0; + break; + case 4: // 100 + ccenter[0] = pcenter[0] - size / 2.0; + ccenter[1] = pcenter[1] - size / 2.0; + ccenter[2] = pcenter[2] + size / 2.0; + break; + case 5: // 101 + ccenter[0] = pcenter[0] + size / 2.0; + ccenter[1] = pcenter[1] - size / 2.0; + ccenter[2] = pcenter[2] + size / 2.0; + break; + case 6: // 110 + ccenter[0] = pcenter[0] - size / 2.0; + ccenter[1] = pcenter[1] + size / 2.0; + ccenter[2] = pcenter[2] + size / 2.0; + break; + case 7: // 111 + ccenter[0] = pcenter[0] + size / 2.0; + ccenter[1] = pcenter[1] + size / 2.0; + ccenter[2] = pcenter[2] + size / 2.0; + break; + default: + break; + } + } + + static void childcenter(int x, int y, int z, int &cx, int &cy, int &cz, char i, int size) { + switch (i) { + case 0: // 000 + cx = x - size ; + cy = y - size ; + cz = z - size ; + break; + case 1: // 001 + cx = x + size ; + cy = y - size ; + cz = z - size ; + break; + case 2: // 010 + cx = x - size ; + cy = y + size ; + cz = z - size ; + break; + case 3: // 011 + cx = x + size ; + cy = y + size ; + cz = z - size ; + break; + case 4: // 100 + cx = x - size ; + cy = y - size ; + cz = z + size ; + break; + case 5: // 101 + cx = x + size ; + cy = y - size ; + cz = z + size ; + break; + case 6: // 110 + cx = x - size ; + cy = y + size ; + cz = z + size ; + break; + case 7: // 111 + cx = x + size ; + cy = y + size ; + cz = z + size ; + break; + default: + break; + } + } + +protected: + + void AllPoints( bitoct &node, vector &vp) { + bitunion *children; + bitoct::getChildren(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf get center + // absolute pointer + //pointrep *points = children->points; + // offset pointer + pointrep* points = children->getPointreps(); + unsigned int length = points[0].length; + T *point = &(points[1].v); // first point + for(unsigned int iterator = 0; iterator < length; iterator++ ) { + //T *p = new T[BOctTree::POINTDIM]; +// T *p = new T[3]; +// p[0] = point[0]; p[1] = point[1]; p[2] = point[2]; + T *p = new T[BOctTree::POINTDIM]; + for (unsigned int k = 0; k < BOctTree::POINTDIM; k++) + p[k] = point[k]; + + vp.push_back(p); + + //glVertex3f( point[0], point[1], point[2]); + point+=BOctTree::POINTDIM; + } + } else { // recurse + AllPoints( children->node, vp); + } + ++children; // next child + } + } + } + + static void deserialize(std::ifstream &f, vector &vpoints, PointType &pointtype) { + char buffer[2]; + pointrep *point = new pointrep[pointtype.getPointDim()]; + f.read(buffer, 2); + bitoct node; + node.valid = buffer[0]; + node.leaf = buffer[1]; + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf read points + pointrep first; + f.read(reinterpret_cast(&first), sizeof(pointrep)); + unsigned int length = first.length; // read first element, which is the length + for (unsigned int k = 0; k < length; k++) { + f.read(reinterpret_cast(point), sizeof(pointrep) * pointtype.getPointDim()); // read the points + vpoints.push_back( pointtype.createPoint( &(point->v ) ) ); + } + } else { // write child + deserialize(f, vpoints, pointtype); + } + } + } + delete [] point; + } + + void deserialize(std::ifstream &f, bitoct &node) { + char buffer[2]; + f.read(buffer, 2); + node.valid = buffer[0]; + node.leaf = buffer[1]; + + unsigned short n_children = POPCOUNT(node.valid); + + // create children + bitunion *children = alloc->allocate >(n_children); + bitoct::link(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf read points + pointrep first; + f.read(reinterpret_cast(&first), sizeof(pointrep)); + unsigned int length = first.length; // read first element, which is the length + pointrep *points = alloc->allocate (POINTDIM*length + 1); + // absolute pointer + //children->points = points; + // offset pointer + bitunion::link(children, points); + points[0] = first; + points++; + f.read(reinterpret_cast(points), sizeof(pointrep) * length * POINTDIM); // read the points + } else { // write child + deserialize(f, children->node); + } + ++children; // next child + } + } + } + + void serialize(std::ofstream &of, bitoct &node) { + char buffer[2]; + buffer[0] = node.valid; + buffer[1] = node.leaf; + of.write(buffer, 2); + + + // write children + bitunion *children; + bitoct::getChildren(node, children); + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf write points + // absolute pointer + //pointrep *points = children->points; + // offset pointer + pointrep* points = children->getPointreps(); + unsigned int length = points[0].length; + of.write(reinterpret_cast(points), sizeof(pointrep) * (length * POINTDIM +1)); + } else { // write child + serialize(of, children->node); + } + ++children; // next child + } + } + } + + void GetOctTreeCenter(vector&c, bitoct &node, T *center, T size) { + T ccenter[3]; + bitunion *children; + bitoct::getChildren(node, children); + + for (unsigned char i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + childcenter(center, ccenter, size, i); // childrens center + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf get center + T * cp = new T[3]; + for (unsigned int iterator = 0; iterator < 3; iterator++) { + cp[iterator] = ccenter[iterator]; + } + c.push_back(cp); + } else { // recurse + GetOctTreeCenter(c, children->node, ccenter, size/2.0); + } + ++children; // next child + } + } + } + + void GetOctTreeRandom(vector&c, bitoct &node) { + bitunion *children; + bitoct::getChildren(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf + // absolute pointer + //pointrep *points = children->points; + // offset pointer + pointrep* points = children->getPointreps(); + // new version to ignore leaves with less than 3 points + /* + if(points[0].length > 2) { + for(int tmp = 0; tmp < points[0].length; tmp++) { + T *point = &(points[POINTDIM*tmp+1].v); + c.push_back(point); + } + } + */ + //old version + + int tmp = rand(points[0].length); + T *point = &(points[POINTDIM*tmp+1].v); + c.push_back(point); + + + } else { // recurse + GetOctTreeRandom(c, children->node); + } + ++children; // next child + } + } + } + + void GetOctTreeRandom(vector&c, unsigned int ptspervoxel, bitoct &node) { + bitunion *children; + bitoct::getChildren(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf + // absolute pointer + //pointrep *points = children->points; + // offset pointer + pointrep* points = children->getPointreps(); + unsigned int length = points[0].length; + if (ptspervoxel >= length) { + for (unsigned int j = 0; j < length; j++) + c.push_back(&(points[POINTDIM*j+1].v)); + + ++children; // next child + continue; + } + set indices; + while(indices.size() < ptspervoxel) { + int tmp = rand(length-1); + indices.insert(tmp); + } + for(set::iterator it = indices.begin(); it != indices.end(); it++) + c.push_back(&(points[POINTDIM*(*it)+1].v)); + + } else { // recurse + GetOctTreeRandom(c, ptspervoxel, children->node); + } + ++children; // next child + } + } + } + + long countNodes(bitoct &node) { + long result = 0; + bitunion *children; + bitoct::getChildren(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf + //++result; + } else { // recurse + result += countNodes(children->node) + 1; + } + ++children; // next child + } + } + return result; + } + + long countLeaves(bitoct &node) { + long result = 0; + bitunion *children; + bitoct::getChildren(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf + long nrpts = children->getLength(); + result += POINTDIM*nrpts; + } else { // recurse + result += countLeaves(children->node); + } + ++children; // next child + } + } + return result; + } + + long countOctLeaves(bitoct &node) { + long result = 0; + bitunion *children; + bitoct::getChildren(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf + result ++; + } else { // recurse + result += countTrueLeaves(children->node); + } + ++children; // next child + } + } + return result; + } + + // TODO: is this still needed? nodes and pointreps are all in the Allocator + void deletetNodes(bitoct &node) { + bitunion *children; + bitoct::getChildren(node, children); + bool haschildren = false; + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf + // absolute pointer + //delete [] children->points; + // offset pointer + delete [] children->getPointreps(); + } else { // recurse + deletetNodes(children->node); + } + ++children; // next child + haschildren = true; + } + } + // delete children + if (haschildren) { + bitoct::getChildren(node, children); + } + } + + template + void* branch( bitoct &node, P * const * splitPoints, int n, T _center[3], T _size) { + // if bucket is too small stop building tree + // ----------------------------------------- + if ((_size <= voxelSize) || (earlystop && n <= 10) ) { + + // copy points + pointrep *points = alloc->allocate (POINTDIM*n + 1); + + points[0].length = n; + int i = 1; + for (int j = 0; j < n; j++) { + for (unsigned int iterator = 0; iterator < POINTDIM; iterator++) { + points[i++].v = splitPoints[j][iterator]; + } + } + return points; + } + + // calculate new buckets + T newcenter[8][3]; + T sizeNew; + + sizeNew = _size / 2.0; + + for (unsigned char i = 0; i < 8; i++) { + childcenter(_center, newcenter[i], _size, i); + } + + countPointsAndQueueFast(splitPoints, n, newcenter, sizeNew, node, _center); + return 0; + } + + template + void* branch( bitoct &node, vector &splitPoints, T _center[3], T _size) { + // if bucket is too small stop building tree + // ----------------------------------------- + if ((_size <= voxelSize) || (earlystop && splitPoints.size() <= 10) ) { + // copy points + pointrep *points = alloc->allocate (POINTDIM*splitPoints.size() + 1); + points[0].length = splitPoints.size(); + int i = 1; + for (typename vector

::iterator itr = splitPoints.begin(); + itr != splitPoints.end(); itr++) { + for (unsigned int iterator = 0; iterator < POINTDIM; iterator++) { + points[i++].v = (*itr)[iterator]; + } + } + return points; + } + + // calculate new buckets + T newcenter[8][3]; + T sizeNew; + + sizeNew = _size / 2.0; + + for (unsigned char i = 0; i < 8; i++) { + childcenter(_center, newcenter[i], _size, i); + } + + countPointsAndQueue(splitPoints, newcenter, sizeNew, node, _center); + return 0; + } + + template + void countPointsAndQueue(vector &i_points, T center[8][3], T size, bitoct &parent, T *pcenter) { + vector points[8]; + int n_children = 0; + for (typename vector

::iterator itr = i_points.begin(); itr != i_points.end(); itr++) { + points[childIndex

(pcenter, *itr)].push_back( *itr ); + } + + i_points.clear(); + vector().swap(i_points); + for (int j = 0; j < 8; j++) { + if (!points[j].empty()) { + parent.valid = ( 1 << j ) | parent.valid; + ++n_children; + } + } + // create children + bitunion *children = alloc->allocate >(n_children); + bitoct::link(parent, children); + + int count = 0; + for (int j = 0; j < 8; j++) { + if (!points[j].empty()) { + pointrep *c = (pointrep*)branch(children[count].node, points[j], center[j], size); // leaf node + if (c) { + // absolute pointer + //children[count].points = c; // set this child to deque of points + // offset pointer + bitunion::link(&children[count], c); + parent.leaf = ( 1 << j ) | parent.leaf; // remember this is a leaf + } + points[j].clear(); + vector().swap(points[j]); + ++count; + } + } + } + + template + void countPointsAndQueueFast(P * const* points, int n, T center[8][3], T size, bitoct &parent, T pcenter[3]) { + P * const *blocks[9]; + blocks[0] = points; + blocks[8] = points + n; + fullsort(points, n, pcenter, blocks+1); + + int n_children = 0; + + for (int j = 0; j < 8; j++) { + // if non-empty set valid flag for this child + if (blocks[j+1] - blocks[j] > 0) { + parent.valid = ( 1 << j ) | parent.valid; + ++n_children; + } + } + + // create children + bitunion *children = alloc->allocate >(n_children); + bitoct::link(parent, children); + int count = 0; + for (int j = 0; j < 8; j++) { + if (blocks[j+1] - blocks[j] > 0) { + pointrep *c = (pointrep*)branch(children[count].node, blocks[j], blocks[j+1] - blocks[j], center[j], size); // leaf node + if (c) { + // absolute pointer + //children[count].points = c; // set this child to vector of points + // offset pointer + bitunion::link(&children[count], c); // set this child to vector of points + parent.leaf = ( 1 << j ) | parent.leaf; // remember this is a leaf + } + ++count; + } + } + } + + + void getByIndex(T *point, T *&points, unsigned int &length) { + unsigned int x,y,z; + x = (point[0] + add[0]) * mult; + y = (point[1] + add[1]) * mult; + z = (point[2] + add[2]) * mult; + + bitunion *node = uroot; + unsigned char child_index; + unsigned int child_bit; + unsigned int depth = 0; + + while (true) { + child_bit = child_bit_depth[depth]; + child_index = ((x & child_bit )!=0) | (((y & child_bit )!=0 )<< 1) | (((z & child_bit )!=0) << 2); + if (node->childIsLeaf(child_index) ) { + node = node->getChild(child_index); + points = node->getPoints(); + length = node->getLength(); + return; + } else { + node = node->getChild(child_index); + } + depth++; + } + } + + template + inline unsigned char childIndex(const T *center, const P *point) { + return (point[0] > center[0] ) | ((point[1] > center[1] ) << 1) | ((point[2] > center[2] ) << 2) ; + } + + /** + * Given a leaf node, this function looks for the closest point to params[threadNum].closest + * in the list of points. + */ + inline void findClosestInLeaf(bitunion *node, int threadNum) const { + if (params[threadNum].count >= params[threadNum].max_count) return; + params[threadNum].count++; + T* points = node->getPoints(); + unsigned int length = node->getLength(); + for(unsigned int iterator = 0; iterator < length; iterator++ ) { + double myd2 = Dist2(params[threadNum].p, points); + if (myd2 < params[threadNum].closest_d2) { + params[threadNum].closest_d2 = myd2; + params[threadNum].closest = points; + if (myd2 <= 0.0001) { + params[threadNum].closest_v = 0; // the search radius in units of voxelSize + } else { + params[threadNum].closest_v = sqrt(myd2) * mult + 1; // the search radius in units of voxelSize + } + } + points+=BOctTree::POINTDIM; + } + } + + + +/** + * This function finds the closest point in the octree given a specified + * radius. This implementation is quit complex, although it is already + * simplified. The simplification incurs a significant loss in speed, as + * several calculations have to be performed repeatedly and a high number of + * unnecessary jumps are executed. + */ + double *FindClosest(double *point, double maxdist2, int threadNum) const + { + params[threadNum].closest = 0; // no point found currently + params[threadNum].closest_d2 = maxdist2; + params[threadNum].p = point; + params[threadNum].x = (point[0] + add[0]) * mult; + params[threadNum].y = (point[1] + add[1]) * mult; + params[threadNum].z = (point[2] + add[2]) * mult; + params[threadNum].closest_v = sqrt(maxdist2) * mult + 1; // the search radius in units of voxelSize + params[threadNum].count = 0; + params[threadNum].max_count = 10000; // stop looking after this many buckets + + + // box within bounds in voxel coordinates + int xmin, ymin, zmin, xmax, ymax, zmax; + xmin = max(params[threadNum].x-params[threadNum].closest_v, 0); + ymin = max(params[threadNum].y-params[threadNum].closest_v, 0); + zmin = max(params[threadNum].z-params[threadNum].closest_v, 0); + +// int largest_index = child_bit_depth[0] * 2 -1; + + xmax = min(params[threadNum].x+params[threadNum].closest_v, largest_index); + ymax = min(params[threadNum].y+params[threadNum].closest_v, largest_index); + zmax = min(params[threadNum].z+params[threadNum].closest_v, largest_index); + + unsigned char depth = 0; + unsigned int child_bit; + unsigned int child_index_min; + unsigned int child_index_max; + + bitunion *node = &(*uroot); + + int cx, cy, cz; + + child_bit = child_bit_depth[depth]; + cx = child_bit_depth[depth]; + cy = child_bit_depth[depth]; + cz = child_bit_depth[depth]; + + while (true) { // find the first node where branching is required + child_index_min = ((xmin & child_bit )!=0) | (((ymin & child_bit )!=0 )<< 1) | (((zmin & child_bit )!=0) << 2); + child_index_max = ((xmax & child_bit )!=0) | (((ymax & child_bit )!=0 )<< 1) | (((zmax & child_bit )!=0) << 2); + + // if these are the same, go there + // TODO: optimization: also traverse if only single child... + if (child_index_min == child_index_max) { + if (node->childIsLeaf(child_index_min) ) { // luckily, no branching is required + findClosestInLeaf(node->getChild(child_index_min), threadNum); + return static_cast(params[threadNum].closest); + } else { + if (node->isValid(child_index_min) ) { // only descend when there is a child + childcenter(cx,cy,cz, cx,cy,cz, child_index_min, child_bit/2 ); + node = node->getChild(child_index_min); + child_bit /= 2; + } else { // there is no child containing the bounding box => no point is close enough + return 0; + } + } + } else { + // if min and max are not in the same child we must branch + break; + } + } + + // node contains all box-within-bounds cells, now begin best bin first search + _FindClosest(threadNum, node->node, child_bit/2, cx, cy, cz); + return static_cast(params[threadNum].closest); + } + + /** + * This is the heavy duty search function doing most of the (theoretically unneccesary) work. The tree is recursively searched. + * Depending on which of the 8 child-voxels is closer to the query point, the children are examined in a special order. + * This order is defined in map, imap is its inverse and sequence2ci is a speedup structure for faster access to the child indices. + */ + void _FindClosest(int threadNum, bitoct &node, int size, int x, int y, int z) const + { + // Recursive case + + // compute which child is closest to the query point + unsigned char child_index = ((params[threadNum].x - x) >= 0) | + (((params[threadNum].y - y) >= 0) << 1) | + (((params[threadNum].z - z) >= 0) << 2); + + char *seq2ci = sequence2ci[child_index][node.valid]; // maps preference to index in children array + char *mmap = amap[child_index]; // maps preference to area index + + bitunion *children; + bitoct::getChildren(node, children); + int cx, cy, cz; + cx = cy = cz = 0; // just to shut up the compiler warnings + for (unsigned char i = 0; i < 8; i++) { // in order of preference + child_index = mmap[i]; // the area index of the node + if ( ( 1 << child_index ) & node.valid ) { // if ith node exists + childcenter(x,y,z, cx,cy,cz, child_index, size); + if ( params[threadNum].closest_v == 0 || max(max(abs( cx - params[threadNum].x ), + abs( cy - params[threadNum].y )), + abs( cz - params[threadNum].z )) - size + > params[threadNum].closest_v ) { + continue; + } + // find the closest point in leaf seq2ci[i] + if ( ( 1 << child_index ) & node.leaf ) { // if ith node is leaf + findClosestInLeaf( &children[seq2ci[i]], threadNum); + } else { // recurse + _FindClosest(threadNum, children[seq2ci[i]].node, size/2, cx, cy, cz); + } + } + } + } + + + /** + * This function shows the possible speedup that can be gained by using the + * octree for nearest neighbour search, if a more sophisticated + * implementation were given. Here, only the bucket in which the query point + * falls is looked up. If doing the same thing in the kd-tree search, this + * function is about 3-5 times as fast + */ + double *FindClosestInBucket(double *point, double maxdist2, int threadNum) { + params[threadNum].closest = 0; + params[threadNum].closest_d2 = maxdist2; + params[threadNum].p = point; + unsigned int x,y,z; + x = (point[0] + add[0]) * mult; + y = (point[1] + add[1]) * mult; + z = (point[2] + add[2]) * mult; + T * points; + unsigned int length; + + bitunion *node = uroot; + unsigned char child_index; + + unsigned int child_bit = child_bit_depth[0]; + + while (true) { + child_index = ((x & child_bit )!=0) | (((y & child_bit )!=0 )<< 1) | (((z & child_bit )!=0) << 2); + if (node->childIsLeaf(child_index) ) { + node = node->getChild(child_index); + points = node->getPoints(); + length = node->getLength(); + + for(unsigned int iterator = 0; iterator < length; iterator++ ) { + double myd2 = Dist2(params[threadNum].p, points); + if (myd2 < params[threadNum].closest_d2) { + params[threadNum].closest_d2 = myd2; + params[threadNum].closest = points; + } + points+=BOctTree::POINTDIM; + } + return static_cast(params[threadNum].closest); + } else { + if (node->isValid(child_index) ) { + node = node->getChild(child_index); + } else { + return 0; + } + } + child_bit >>= 1; + } + return static_cast(params[threadNum].closest); + } + + +template + void fullsort(P * const * points, int n, T splitval[3], P * const * blocks[9]) { + P* const * L0; + P* const * L1; + P* const * L2; + unsigned int n0L, n0R, n1L, n1R ; + + // sort along Z + L0 = sort(points, n, splitval[2], 2); + + n0L = L0 - points; + // sort along Y (left of Z) points -- L0 + L1 = sort(points, n0L, splitval[1], 1); + + n1L = L1 - points; + // sort along X (left of Y) points -- L1 + L2 = sort(points, n1L, splitval[0], 0); + + blocks[0] = L2; + + n1R = n0L - n1L; + // sort along X (right of Y) // L1 -- L0 + L2 = sort(L1, n1R, splitval[0], 0); + + blocks[1] = L1; + blocks[2] = L2; + + n0R = n - n0L; + // sort along Y (right of Z) L0 -- end + L1 = sort(L0, n0R, splitval[1], 1); + + n1L = L1 - L0; + // sort along X (left of Y) points -- L1 + L2 = sort(L0, n1L, splitval[0], 0); + + blocks[3] = L0; + blocks[4] = L2; + + n1R = n0R - n1L; + // sort along X (right of Y) // L1 -- L0 + L2 = sort(L1, n1R, splitval[0], 0); + + blocks[5] = L1; + blocks[6] = L2; + } + + + template + P* const * sort(P* const * points, unsigned int n, T splitval, unsigned char index) { + if (n==0) return points; + + if (n==1) { + if (points[0][index] < splitval) + return points+1; + else + return points; + } + + P **left = const_cast(points); + P **right = const_cast(points + n - 1); + + + while (1) { + while ((*left)[index] < splitval) + { + left++; + if (right < left) + break; + } + while ((*right)[index] >= splitval) + { + right--; + if (right < left) + break; + } + if (right < left) + break; + + std::swap(*left, *right); + } + return left; + } + +public: + /** + * Copies another (via new constructed) octtree into cache allocated memory and makes it position independant + */ + BOctTree(const BOctTree& other, unsigned char* mem_ptr, unsigned int mem_max) + { + alloc = new SequentialAllocator(mem_ptr, mem_max); + + // "allocate" space for *this + alloc->allocate >(); + + // take members + unsigned int i; + for(i = 0; i < 3; ++i) + center[i] = other.center[i]; + size = other.size; + voxelSize = other.voxelSize; + real_voxelSize = other.real_voxelSize; + for(i = 0; i < 3; ++i) + add[i] = other.add[i]; + mult = other.mult; + POINTDIM = other.POINTDIM; + mins = alloc->allocate(POINTDIM); + maxs = alloc->allocate(POINTDIM); + for(i = 0; i < POINTDIM; ++i) { + mins[i] = other.mins[i]; + maxs[i] = other.maxs[i]; + } + pointtype = other.pointtype; + max_depth = other.max_depth; + child_bit_depth = alloc->allocate(max_depth); + child_bit_depth_inv = alloc->allocate(max_depth); + for(i = 0; i < max_depth; ++i) { + child_bit_depth[i] = other.child_bit_depth[i]; + child_bit_depth_inv[i] = other.child_bit_depth_inv[i]; + } + largest_index = other.largest_index; + + // take node structure + uroot = alloc->allocate >(); + root = &uroot->node; + copy_children(*other.root, *root); + + // test if allocator has used up his space + //alloc->printSize(); + + // discard allocator, space is managed by the cache manager + delete alloc; alloc = 0; + } + +private: + void copy_children(const bitoct& other, bitoct& my) { + // copy node attributes + my.valid = other.valid; + my.leaf = other.leaf; + + // other children + bitunion* other_children; + bitoct::getChildren(other, other_children); + + // create own children + unsigned int n_children = POPCOUNT(other.valid); + bitunion* my_children = alloc->allocate >(n_children); + bitoct::link(my, my_children); + + // iterate over all (valid) children and copy them + for(unsigned int i = 0; i < 8; ++i) { + if((1<getLength(); + pointrep* other_pointreps = other_children->getPointreps(); + pointrep* my_pointreps = alloc->allocate(POINTDIM * length + 1); + for(unsigned int j = 0; j < POINTDIM * length + 1; ++j) + my_pointreps[j] = other_pointreps[j]; + // assign + bitunion::link(my_children, my_pointreps); + } else { + // child is already created, copy and create children for it + copy_children(other_children->node, my_children->node); + } + ++other_children; + ++my_children; + } + } + } + +public: + //! Size of the whole tree structure, including the main class, its serialize critical allocated variables and nodes, not the allocator + unsigned int getMemorySize() + { + return sizeof(*this) // all member variables + + 2*POINTDIM*sizeof(T) // mins, maxs + + 2*max_depth*sizeof(unsigned int) // child_bit_depth(_inv) + + sizeof(bitunion) // uroot + + sizeChildren(*root); // all nodes + } + +private: + //! Recursive size of a node's children + unsigned int sizeChildren(const bitoct& node) { + unsigned int s = 0; + bitunion* children; + bitoct::getChildren(node, children); + + // size of children allocation + unsigned int n_children = POPCOUNT(node.valid); + s += sizeof(bitunion)*n_children; + + // iterate over all (valid) children and sum them up + for(unsigned int i = 0; i < 8; ++i) { + if((1<getLength()*POINTDIM+1); + } else { + // childe node is already accounted for, add its children + s += sizeChildren(children->node); + } + ++children; // next (valid) child + } + } + return s; + } +}; + +typedef SingleObject > DataOcttree; + +template +NNParams BOctTree::params[100]; + +#endif diff --git a/include/slam6d/allocator.h b/include/slam6d/allocator.h new file mode 100644 index 0000000..228ef87 --- /dev/null +++ b/include/slam6d/allocator.h @@ -0,0 +1,73 @@ +/** + * @file + * @brief allocator object that gets chunks of memory and then hands parts of them to a user + * @author Jan Elsberg. Automation Group, Jacobs University Bremen gGmbH, Germany. + * @author Thomas Escher + */ +#ifndef ALLOCATOR_H +#define ALLOCATOR_H + +#include + +class Allocator { +public: + virtual ~Allocator() {} + + template + T* allocate(unsigned int nr = 1) { return reinterpret_cast(allocate(nr*sizeof(T))); } + + virtual void printSize() const = 0; + +protected: + virtual unsigned char* allocate(unsigned int size) = 0; +}; + + + +class ChunkAllocator : public Allocator { +public: + ChunkAllocator(unsigned int _csize = (1 << 20)); + ~ChunkAllocator(); + void printSize() const; +protected: + unsigned char* allocate(unsigned int size); +private: + std::vector mem; + const unsigned int chunksize; + unsigned int index; + unsigned long int memsize; + unsigned long int wastedspace; +}; + + + +class PackedChunkAllocator : public Allocator { +public: + PackedChunkAllocator(unsigned int _csize = (1<<20)); + ~PackedChunkAllocator(); + void printSize() const; +protected: + unsigned char* allocate(unsigned int size); +private: + std::vector mem; + std::vector index; + const unsigned int chunksize; + unsigned long int memsize; +}; + + + +class SequentialAllocator : public Allocator { +public: + //! Handle a preallocated memory up to \a max_size. + SequentialAllocator(unsigned char* base_ptr, unsigned int max_size); + ~SequentialAllocator(); + void printSize() const; +protected: + unsigned char* allocate(unsigned int size); +private: + unsigned char* m_base_ptr; + unsigned int m_size, m_index; +}; + +#endif diff --git a/include/slam6d/ann_kd.h b/include/slam6d/ann_kd.h new file mode 100644 index 0000000..039185a --- /dev/null +++ b/include/slam6d/ann_kd.h @@ -0,0 +1,66 @@ +/** @file + * @brief Encapsules the implementation of ANN k-d trees. + * @author Ulugbek Makhmudov, Jacobs University Bremen, Bremen, Germany. + * @author Andreas Nuechter, Jacobs University Bremen, Bremen, Germany. + */ + +#ifndef __ANN_KD_H__ +#define __ANN_KD_H__ + +#include "slam6d/kdparams.h" +#include "slam6d/searchTree.h" +#include "ANN/ANN.h" + +/** + * @brief Encapsulating class to create and store ANN KD Trees. + * + * A kD tree for points, with limited + * capabilities (find nearest point to + * a given point, or in a fixed radius distance). + **/ +class ANNtree : public SearchTree { + +public: + + /** + * default constructor + */ + ANNtree(); + + /** + * Constructor using the point set pts and the num_of_pts n + */ + ANNtree(double **_pts, int n); + + /** + * destructor + */ + virtual ~ANNtree(); + + + /** + * Finds the closest point within the tree, + * wrt. the point given as first parameter. + * @param _p point + * @param maxdist2 maximal search distance. + * @param threadNum Thread number, for parallelization + * @return Pointer to the closest point + */ + double *FindClosest(double *_p, double maxdist2, int threadNum = 0) const; + +private: + + /** + * a pointer to ANNkd_tree instance + */ + ANNkd_tree* annkd; + ANNdistArray nn; //temporary ANNdistArray instance to use for storing the nearest neighbor + ANNidxArray nn_idx; //temporary ANNdistArray instance to use for storing the nearest neighbor + + double** pts; + +}; + +#endif + + diff --git a/include/slam6d/basicScan.h b/include/slam6d/basicScan.h new file mode 100644 index 0000000..a76008f --- /dev/null +++ b/include/slam6d/basicScan.h @@ -0,0 +1,67 @@ +#ifndef BASIC_SCAN_H +#define BASIC_SCAN_H + +#include "scan.h" +#include "frame.h" + +#include +#include + + +class BasicScan : public Scan { +public: + static void openDirectory(const std::string& path, IOType type, int start, int end); + static void closeDirectory(); +/* + Scan(const double *euler, int maxDist = -1); + Scan(const double rPos[3], const double rPosTheta[3], int maxDist = -1); + Scan(const double _rPos[3], const double _rPosTheta[3], vector &pts); +*/ + virtual ~BasicScan(); + + virtual void setRangeFilter(double max, double min); + virtual void setHeightFilter(double top, double bottom); + + virtual const char* getIdentifier() const { return m_identifier.c_str(); } + + virtual DataPointer get(const std::string& identifier); + virtual void get(unsigned int types); + virtual DataPointer create(const std::string& identifier, unsigned int size); + virtual void clear(const std::string& identifier); + + virtual unsigned int readFrames(); + virtual void saveFrames(); + virtual unsigned int getFrameCount(); + virtual void getFrame(unsigned int i, const double*& pose_matrix, AlgoType& type); + +protected: + virtual void createSearchTreePrivate(); + virtual void calcReducedOnDemandPrivate(); + virtual void addFrame(AlgoType type); + +private: + //! Path and identifier of where the scan is located + std::string m_path, m_identifier; + + IOType m_type; + + double m_filter_max, m_filter_min, m_filter_top, m_filter_bottom; + bool m_filter_range_set, m_filter_height_set; + + std::map> m_data; + + std::vector m_frames; + + + //! Constructor for openDirectory + BasicScan(const std::string& path, const std::string& identifier, IOType type); + + //! Initialization function + void init(); + + void createANNTree(); + + void createOcttree(); +}; + +#endif //BASIC_SCAN_H diff --git a/include/slam6d/convergence.h b/include/slam6d/convergence.h new file mode 100644 index 0000000..f85c07a --- /dev/null +++ b/include/slam6d/convergence.h @@ -0,0 +1,62 @@ +/** + * @file + * @brief generating convergence data + * @author Peter Schneider. Institute of Computer Science, University of Koblenz, Germany. + */ + +#ifndef __CONVERGENCE_H__ +#define __CONVERGENCE_H__ + +#ifdef _MSC_VER + #define _USE_MATH_DEFINES + #include + #include "XGetopt.h" +#else + #include +#endif + +#include +#ifdef _MSC_VER +#define strcasecmp _stricmp +#define strncasecmp _strnicmp +#else +#include +#endif +#include + +#include +using std::cout; +using std::cerr; +using std::endl; +using std::ofstream; +using std::ios; +using std::ifstream; + +#include +using std::string; + +/** float value "nearly" zero? */ +#define DIV_EPSILON 0.001 +/** comparing two floats/doubles */ +#define COMPARE_EPSILON 0.000001 + +#define CONV_LOCAL 1 +#define CONV_GLOBAL 0 +#define CONV_ALL 2 + +#define BUFSIZE 1048576 ///< defining the buffer size + +#include "slam6d/globals.icc" + + +int parseArgs(int argc, char **argv, string &dir, int& frame); +void usage(char * prog); + +void getGlobalConvergence(ifstream *inputFile, ofstream *outputFile); +void getLocalConvergence(ifstream *inputFile, ofstream *outputFile); +void getAllConvergence(ifstream *inputFile, ofstream *outputFile, int FrameNr); + + + +#endif + diff --git a/include/slam6d/cuda/CIcpGpuCuda.cuh b/include/slam6d/cuda/CIcpGpuCuda.cuh new file mode 100755 index 0000000..89c6731 --- /dev/null +++ b/include/slam6d/cuda/CIcpGpuCuda.cuh @@ -0,0 +1,415 @@ +/** @file + * @brief GPU-ICP Algorithm + * @author Deyuan Qiu, University of Applied Sciences Bonn-Rhein-Sieg, Sankt Augustin, Germany. + * Fraunhofer IAIS, Sankt Augustin, Germany. + */ + +#ifndef CICPGPUCUDA_H +#define CICPGPUCUDA_H + +#include // C standard library +#include // C I/O (for sscanf) +#include // string manipulation +#include // file I/O +#include // min() +#include + +#include "ANN/ANN.h" // ANN declarations +#include "ANN/ANNperf.h" // kd-tree printing +#include "kd_tree.h" // ANN node declaration + +#include "newmat/newmat.h" +#include "newmat/newmatap.h" +using namespace NEWMAT; + +#include "slam6d/cuda/CSystem.h" + +/* + * The maximum block size. For nVidia G80 architecture, 192 is suggested. + */ +//#define BLOCKSIZE 512 +//#define BLOCKSIZE 256 +#define BLOCKSIZE 64 +//#define BLOCKSIZE 1 + + +/* + * The big enough size of the AoS that is going to allocate for the kd-tree. + */ +//#define TREESIZE 262143 +#define TREESIZE 524288 + +#ifdef use_namespace +using namespace std; +#endif + +/* +* @class CIcpGpuCuda +* @brief Iterative Closest Point algorithm is implemented on a programmable graphic +* device. Kernels are implemented by CUDA (Compute Unified Device Architecture) GPGPU +* programming language (http://www.nvidia.com/object/cuda_home.html). To compile the code, +* nvcc compiler and related CUDA libraries must be installed. Kernel files are wrapped in +* CIcpGpuCuda_kernel.cuh and CIcpGpuCuda.cu. Attention: only NVidia GeForce G80 architecture +* and onwards graphic devices are garanteed to be supported. +* @author Deyuan Qiu +* @date 2008.Nov. +*/ +class CIcpGpuCuda{ + +public: + + /* + * standard constructor + * @param argc passed from application main function. + * @param argv passed from application main function. + * @param unWidth the width of point cloud image. + * @param unHeight the height of pint cloud image. + */ + CIcpGpuCuda(unsigned unWidth, unsigned unHeight, unsigned max_iter){ + init(unWidth, unHeight,max_iter); + } + + /* + * standard destructor + */ + ~CIcpGpuCuda(); + + /* + * Set maximum iteration for ICP. + * @param unTimes number of times ICP iterates maximally. + */ + void setMaxIteration(unsigned unTimes); + + /* + * Set maximum processing time for ICP, in milliseconds. + * @param dMilliseconds ICP quits when elapsed time exceeds. + */ + void setMaxProcTime(double dMilliseconds); + + /* + * Set maximum deviation for ICP. + * @param dDeviation ICP quits when specified deviation is achieved. + */ + void setMaxDeviation(double dDeviation); + + /* + * Set search radiuses for ICP. An iterative decreasing radius + * is applied. Search radius decreases linearly from fRadiusMax to + * fRadiusMin within unIterations iterations. + * @param fRadiusMax Initial radius. + * @param fRadiusMin Final radius. + * @param unIterations Number of iterations, in which radius decreases. + */ + void setSearchRadius(float fRadiusMax, float fRadiusMin, unsigned unIterations); + + /* + * Get the number of points in point cloud. Model point cloud + * and scene point cloud must have the same number of points. + * @return Number of points in point cloud. + */ + unsigned getSize(void); + + /* + * Get the the 2 dimensional pointer to the scene point cloud. Page-lock memory is + * allocated and freed by the class. The data type must be casted to single pricision + * float, and the array should be loaded as [3][N]. + * @return 2 dimensional pointer to scene point cloud. + */ + float** getScenePointer(void); + + /* + * Get the the 2 dimensional pointer to the model point cloud. Memory allocation + * and freeing is handled by the class. The data type must be casted to double pricision + * float, and the array should be loaded as [N][3]. Notice the difference to + * getScenePointer(). + * @return 2 dimensional pointer to scene point cloud. + */ + double** getModelPointer(void); + + /* + * The method is called after point clouds are loaded, and before iteration() is called. + */ + void setPointClouds(void); + + /* + * ICP iterations. + */ + void iteration(void); + + /* + * Get the transformation matrix. + * @return The transformation matrix. + */ + Matrix* getMatrix(void); + + /** + * These two functions are to set and get the tree pointer + * It is supposed to be created in scan file and passed to this class + **/ + + void setTreePointer(ANNkd_tree *); + void getTreePointer(ANNkd_tree *&); + + double getTime(void); + + void setMinimums(float x, float y, float z); + Matrix** getMatrices(); + + void setTrans_Trans_inv(const double[], const double[]); + + void findNearestNeighbors(float, unsigned); + + Matrix fillHomoMatrix(Matrix* , double*); + + void computeCentroid(float*, float*, float*, float *&); + + Matrix computeHMatrix(); + + void printMatrix(Matrix *); + + void setSize(unsigned int width, unsigned int height); + +private: + + //////////////// + //cpu variables + //////////////// + + + /* + * Initialization. Memories are allocated and default environmental state + * is set. Called by standard constructor. + * @param unWidth the width of point cloud image. + * @param unHeight the height of pint cloud image. + */ + void init(unsigned unWidth, unsigned unHeight, unsigned max_iter); + + /* + * Initialization. Memories are allocated and default environmental state + * is set. Called by init(). + * @param unWidth the width of point cloud image. + * @param unHeight the height of pint cloud image. + */ + void setResolution(unsigned unWidth, unsigned unHeight); + + /* + * The internal search structure is set. + */ + void setTree(void); + + /* + * Set the model point cloud. + */ + void setModel(void); + + /* + * Set the scene point cloud. + */ + void setScene(void); + + /* + * Calculate the size of the search structure from its depth. The depth + * is the number of levels of the tree. The search structure then is arraged + * into a struture of arrays (SoA). A left-balanced binary tree is suggested. + * @param nDepth Depth of the kd-tree. + */ + inline int depth2size(int nDepth); + + /* + * Rearrange the search structure into a structure of arrays (SoA). The rule + * is: the N node's left child has the index of 2N, while the right child 2N+1. + * Arrangement is fulfilled in recursion. + * @param root pointer to the root node + * @param unStart the currenet node + */ + void rearrange(ANNkd_ptr root, unsigned unStart); + + /* + * Get CUBLAS errors before this line. + */ + void getCublasErr(void); + + /* + * Get CUDA errors before this line. + */ + void getCudaErr(void); + + /* + * tree: structure of arrays (SoA) + */ + unsigned _unSizeTree; //Size of the allocated memory. + float* fSplit; + unsigned* unIdx; + unsigned* unAxis; + bool* bIsLeaf; + float* fLoBound; + float* fHiBound; + unsigned unSizeTree; //Size of memory that the tree actually takes. + + /* + * transformation matrix + */ + float m[16]; + Matrix* trans; + Matrix* trans_inv; + + /* + * kernel constants + */ + unsigned unSizeData; + unsigned unNoThreads; + unsigned unNoBlocks; + unsigned _unWidth; + unsigned _unHeight; + + /* + * search structure + */ + ANNkd_tree* kdTree; + ANNkdStats* st; + + /* + * data pointers + */ + float* fHstScn[3]; + float* fHstScnX; + float* fHstScnY; + float* fHstScnZ; + double** h_idata; + + /* + * icp + */ + unsigned unMaxIteration; + unsigned _unIterations; + float fMaxProcTime; + float fMaxDeviation; + float _fSearchRadiusMax; + float _fSearchRadiusMin; + float _fRadiusStep; + unsigned _unNoQSizeStep; + float* temp_ones; + float* ones; + + enum EnumIcpState { ICP_LIMIT = 0, + ICP_PROCESSING = 1, + ICP_NOTMATCHABLE = 2, + ICP_MAXITERATIONS = 3, + ICP_TIMEELAPSED = 4, + ICP_SUCCESS = 5 }; + + unsigned unPairs; + unsigned* pNoPairs; + Matrix* final_matrix; + double _dElapsedTime; + Matrix** matrices; + + /* + Minimums of all values + */ + float min_x; + float min_y; + float min_z; + + clock_t init_time; // To save the starting point of the timer Added by Shams + + //////////////// + //gpu variables + //////////////// + + float* fDevSplit; + unsigned* unDevIdx; + unsigned* unDevAxis; + bool* bDevIsLeaf; + float* fDevLoBound; + float* fDevHiBound; + float* fDevScnX; + float* fDevScnY; + float* fDevScnZ; + float* fDist; + float* fDistCpt; //compacted distance list + unsigned* unMask; + float* fDevMdlPairX; + float* fDevMdlPairY; + float* fDevMdlPairZ; + float* fDevScnPairX; + float* fDevScnPairY; + float* fDevScnPairZ; + + ///////////// + float* cngfDevScnX; + float* cngfDevScnY; + float* cngfDevScnZ; + float* cngfDevMdlPairX; + float* cngfDevMdlPairY; + float* cngfDevMdlPairZ; + float* cngfDevScnPairX; + float* cngfDevScnPairY; + float* cngfDevScnPairZ; + ///////////// + float* fCenModX; + float* fCenModY; + float* fCenModZ; + float* fCenScnX; + float* fCenScnY; + float* fCenScnZ; + unsigned* unNoPairs; + + //kd-tree based nearest neighbor search, using a priority queue. + void class_nns_priority( + float* fDevScnX, //scene point cloud + float* fDevScnY, + float* fDevScnZ, + float* fDist, //squared distance between pairs, for deviation calculation + float* fDevSplit, //kd-tree: position of splitting plain (inner node) + unsigned* unDevIdx, //kd-tree: index of point (leaf node) + unsigned* unDevAxis, //kd-tree: axis where splitting plain locates (inner node) + bool* bDevIsLeaf, //kd-tree: node type (both nodes) + float* fDevLoBound, //kd-tree: lower bounding box (inner node) + float* fDevHiBound, //kd-tree: higher bounding box (inner node) + unsigned* unMask, //a 0-1 mask of pair and non-pairs. + float* fDevMdlPairX, + float* fDevMdlPairY, + float* fDevMdlPairZ, + float* fDevScnPairX, + float* fDevScnPairY, + float* fDevScnPairZ, + float fSearchRadius, + unsigned unSize, + unsigned unWidth, + unsigned unQStep); //for dubugging thread + + + //centralize a pointcloud + void class_centralize(unsigned* unMask, + float* fDevMdlPairX, + float* fDevMdlPairY, + float* fDevMdlPairZ, + float* fDevScnPairX, + float* fDevScnPairY, + float* fDevScnPairZ, + float fcm0, + float fcm1, + float fcm2, + float fcs0, + float fcs1, + float fcs2, + float* fCenteredModX, //centered point cloud + float* fCenteredModY, + float* fCenteredModZ, + float* fCenteredScnX, + float* fCenteredScnY, + float* fCenteredScnZ); + + //transform point cloud + void class_transformation(float* fDevScnX, //piont cloud to be transformed + float* fDevScnY, + float* fDevScnZ, + float m00, float m01, float m02, float m03, + float m10, float m11, float m12, float m13, + float m20, float m21, float m22, float m23); +}; + + + +#endif diff --git a/include/slam6d/cuda/CIcpGpuCuda_kernel.cu b/include/slam6d/cuda/CIcpGpuCuda_kernel.cu new file mode 100755 index 0000000..c2a367f --- /dev/null +++ b/include/slam6d/cuda/CIcpGpuCuda_kernel.cu @@ -0,0 +1,201 @@ +/** @file + * @brief GPU kernel operation + * @author Deyuan Qii, University of Applied Sciences Bonn-Rhein-Sieg, Sankt Augustin, Germany. + * Fraunhofer IAIS, Sankt Augustin, Germany. + */ + + +#define nns_kernel(QSelector) __global__ void nns_priority##QSelector(\ + float* fDevScnX,\ + float* fDevScnY,\ + float* fDevScnZ,\ + float* fDist,\ + float* fDevSplit,\ + unsigned* unDevIdx,\ + unsigned* unDevAxis,\ + bool* bDevIsLeaf,\ + float* fDevLoBound,\ + float* fDevHiBound,\ + unsigned* unMask,\ + float* fDevMdlPairX,\ + float* fDevMdlPairY,\ + float* fDevMdlPairZ,\ + float* fDevScnPairX,\ + float* fDevScnPairY,\ + float* fDevScnPairZ,\ + float fSearchRadius,\ + unsigned unSize,\ + unsigned unWidth){\ +\ +/*/////////////*/\ +/* preparation */\ +/*/////////////*/\ + const unsigned unSizeData = unSize;\ + const int nWidth = (int)unWidth;\ + const unsigned tid = blockIdx.x*blockDim.x + threadIdx.x;\ + const unsigned unQSize = (unsigned)QSIZE##QSelector;\ + const float fRadius = fSearchRadius*fSearchRadius;\ +\ +/*////////*/\ +/* kernel */\ +/*////////*/\ + if(tid= nn_dist) /* further from nearest so far*/\ + break;\ + while (!bDevIsLeaf[unNodeIdx]) { /* descend until leaf found*/\ + cd = unDevAxis[unNodeIdx]; /* cutting dimension*/\ + new_off = fQ[cd] - fDevSplit[unNodeIdx]; /* offset to further child*/\ + if (new_off < 0) { /* q is below cutting plane*/\ + old_off = fQ[cd] - fDevLoBound[unNodeIdx]; /* compute offset*/\ + if (old_off > 0) /* overlaps interval*/\ + old_off = 0;\ + new_rd = fRd - old_off*old_off /* distance to further child*/\ + + new_off*new_off;\ + q.Insert(unNode*2+1, new_rd); /* enqueue hi_child for later*/\ + unNode *= 2; /* visit lo_child next*/\ + unNodeIdx = unNode-1;\ + }\ + else { /* q is above cutting plane*/\ + old_off = fQ[cd] - fDevHiBound[unNodeIdx];\ + if(old_off < 0)\ + old_off = 0;\ + new_rd = fRd - old_off*old_off /* distance to further child*/\ + + new_off*new_off;\ + q.Insert(unNode*2, new_rd);\ +\ + unNode = 2*unNode + 1;\ + unNodeIdx = unNode-1;\ + }\ + }\ + unPointIdx = unDevIdx[unNodeIdx];\ + nPointIdxX=(int)unPointIdx%nWidth; /*access via texture*/\ + nPointIdxY=(int)unPointIdx/nWidth;\ + f4Mdl=tex2D(refTex,(float)nPointIdxX,(float)nPointIdxY);\ + fM_temp[0]=f4Mdl.x;\ + fM_temp[1]=f4Mdl.y;\ + fM_temp[2]=f4Mdl.z;\ + fDist_temp = DIST(fM_temp,fQ);\ + if(fDist_tempfRadius){ /*if non-pair*/\ + unMask[tid]=0;\ + fDevMdlPairX[tid]=0.0f; fDevMdlPairY[tid]=0.0f; fDevMdlPairZ[tid]=0.0f;\ + fDevScnPairX[tid]=0.0f; fDevScnPairY[tid]=0.0f; fDevScnPairZ[tid]=0.0f;\ + }\ + else{\ + unMask[tid]=1;\ + fDist[tid] = nn_dist; /*return nearest distance for deviation calculation*/\ + fDevMdlPairX[tid]=fM[0]; fDevMdlPairY[tid]=fM[1]; fDevMdlPairZ[tid]=fM[2];\ + fDevScnPairX[tid]=fQ[0]; fDevScnPairY[tid]=fQ[1]; fDevScnPairZ[tid]=fQ[2];\ + }\ + }\ +} + +nns_kernel(1) +nns_kernel(2) +nns_kernel(3) +nns_kernel(4) +nns_kernel(5) +nns_kernel(6) + +__global__ void centralize(unsigned* unMask, + float* fDevMdlPairX, + float* fDevMdlPairY, + float* fDevMdlPairZ, + float* fDevScnPairX, + float* fDevScnPairY, + float* fDevScnPairZ, + float fcm0, + float fcm1, + float fcm2, + float fcs0, + float fcs1, + float fcs2, + float* fCenteredModX, + float* fCenteredModY, + float* fCenteredModZ, + float* fCenteredScnX, + float* fCenteredScnY, + float* fCenteredScnZ){ + const unsigned tid = blockIdx.x*blockDim.x + threadIdx.x; + + if(unMask[tid]){ + fCenteredModX[tid] = fDevMdlPairX[tid] - fcm0; + fCenteredModY[tid] = fDevMdlPairY[tid] - fcm1; + fCenteredModZ[tid] = fDevMdlPairZ[tid] - fcm2; + fCenteredScnX[tid] = fDevScnPairX[tid] - fcs0; + fCenteredScnY[tid] = fDevScnPairY[tid] - fcs1; + fCenteredScnZ[tid] = fDevScnPairZ[tid] - fcs2; + }else{ + fCenteredModX[tid] = 0.0f; + fCenteredModY[tid] = 0.0f; + fCenteredModZ[tid] = 0.0f; + fCenteredScnX[tid] = 0.0f; + fCenteredScnY[tid] = 0.0f; + fCenteredScnZ[tid] = 0.0f; + } +} + + +__global__ void transformation(float* fDevScnX, + float* fDevScnY, + float* fDevScnZ, + float m00, float m01, float m02, float m03, + float m10, float m11, float m12, float m13, + float m20, float m21, float m22, float m23){ + const unsigned tid = blockIdx.x*blockDim.x + threadIdx.x; + double adTmp[3]; + adTmp[0] = fDevScnX[tid] * m00 + + fDevScnY[tid] * m01 + + fDevScnZ[tid] * m02 + m03; + adTmp[1] = fDevScnX[tid] * m10 + + fDevScnY[tid] * m11 + + fDevScnZ[tid] * m12 + m13; + adTmp[2] = fDevScnX[tid] * m20 + + fDevScnY[tid] * m21 + + fDevScnZ[tid] * m22 + m23; + fDevScnX[tid] = adTmp[0]; + fDevScnY[tid] = adTmp[1]; + fDevScnZ[tid] = adTmp[2]; +} diff --git a/include/slam6d/cuda/CIcpGpuCuda_kernel.cuh b/include/slam6d/cuda/CIcpGpuCuda_kernel.cuh new file mode 100755 index 0000000..f9cd97e --- /dev/null +++ b/include/slam6d/cuda/CIcpGpuCuda_kernel.cuh @@ -0,0 +1,268 @@ +/** @file + * @brief GPU kernel operation + * @author Deyuan Qii, University of Applied Sciences Bonn-Rhein-Sieg, Sankt Augustin, Germany. + * Fraunhofer IAIS, Sankt Augustin, Germany. + */ + +#ifndef CICPGPUCUDA_KERNEL_CUH +#define CICPGPUCUDA_KERNEL_CUH + +#include //cuda +#include //cuda utility +#include "cublas.h" //cublas +#include "cudpp/cudpp.h" //cudpp + +#define NO_QSIZE 6 //number of different queue size +#define QSIZE1 1 +#define QSIZE2 1 +#define QSIZE3 1 +#define QSIZE4 1 +#define QSIZE5 1 +#define QSIZE6 1 +#define DIST(x,y) ((x[0]-y[0])*(x[0]-y[0])+(x[1]-y[1])*(x[1]-y[1])+(x[2]-y[2])*(x[2]-y[2])) +#define nns_kernel_h(QSelector) __global__ void nns_priority##QSelector(\ + float* fDevScnX,\ + float* fDevScnY,\ + float* fDevScnZ,\ + float* fDist,\ + float* fDevSplit,\ + unsigned* unDevIdx,\ + unsigned* unDevAxis,\ + bool* bDevIsLeaf,\ + float* fDevLoBound,\ + float* fDevHiBound,\ + unsigned* unMask,\ + float* fDevMdlPairX,\ + float* fDevMdlPairY,\ + float* fDevMdlPairZ,\ + float* fDevScnPairX,\ + float* fDevScnPairY,\ + float* fDevScnPairZ,\ + float fSearchRadius,\ + unsigned unSize,\ + unsigned unWidth); + +//global variable +texture refTex; +dim3 dimBlock; +dim3 dimGrid; +float4* f4Mdl; +cudaArray* cuArray; +cudaChannelFormatDesc cuDesc = cudaCreateChannelDesc(); +CUDPPResult result; +CUDPPHandle compactplan; + + +nns_kernel_h(1) +nns_kernel_h(2) +nns_kernel_h(3) +nns_kernel_h(4) +nns_kernel_h(5) +nns_kernel_h(6) + +__global__ void centralize(unsigned* unMask, + float* fDevMdlPairX, + float* fDevMdlPairY, + float* fDevMdlPairZ, + float* fDevScnPairX, + float* fDevScnPairY, + float* fDevScnPairZ, + float fcm0, + float fcm1, + float fcm2, + float fcs0, + float fcs1, + float fcs2, + float* fCenteredModX, + float* fCenteredModY, + float* fCenteredModZ, + float* fCenteredScnX, + float* fCenteredScnY, + float* fCenteredScnZ); + +__global__ void transformation(float* fDevScnX, + float* fDevScnY, + float* fDevScnZ, + float m00, float m01, float m02, float m03, + float m10, float m11, float m12, float m13, + float m20, float m21, float m22, float m23); + +extern "C" +void wrapper_nns_priority(//float* fDevModX, // +// float* fDevModY, // +// float* fDevModZ,// + float* fDevScnX,// + float* fDevScnY,// + float* fDevScnZ,// + float* fDist, + float* fDevSplit, // + unsigned* unDevIdx, // + unsigned* unDevAxis, // + bool* bDevIsLeaf, // + float* fDevLoBound,// + float* fDevHiBound,// +// unsigned* unDevResult, + unsigned* unMask, + float* fDevMdlPairX, + float* fDevMdlPairY, + float* fDevMdlPairZ, + float* fDevScnPairX, + float* fDevScnPairY, + float* fDevScnPairZ, +// float* fDevMdlPairTempX, +// float* fDevMdlPairTempY, +// float* fDevMdlPairTempZ, +// unsigned* temp, + dim3 dimGrid, + dim3 dimBlock, + float fSearchRadius, + unsigned unSize, + unsigned unWidth, + unsigned unQStep){ + + //kernel selection + switch(unQStep) + { + case 0: nns_priority1<<>>(/*fDevMdlX, fDevMdlY, fDevMdlZ,*/ fDevScnX, fDevScnY, fDevScnZ, + fDist, fDevSplit, unDevIdx, unDevAxis, bDevIsLeaf, fDevLoBound, fDevHiBound, + /*unDevResult,*/ unMask, fDevMdlPairX, fDevMdlPairY, fDevMdlPairZ, fDevScnPairX, fDevScnPairY, fDevScnPairZ, + /*temp,*/ fSearchRadius, unSize, unWidth); break; + case 1: nns_priority2<<>>(/*fDevMdlX, fDevMdlY, fDevMdlZ,*/ fDevScnX, fDevScnY, fDevScnZ, + fDist, fDevSplit, unDevIdx, unDevAxis, bDevIsLeaf, fDevLoBound, fDevHiBound, + /*unDevResult,*/ unMask, fDevMdlPairX, fDevMdlPairY, fDevMdlPairZ, fDevScnPairX, fDevScnPairY, fDevScnPairZ, + /*temp,*/ fSearchRadius, unSize, unWidth); break; + case 2: nns_priority3<<>>(/*fDevMdlX, fDevMdlY, fDevMdlZ,*/ fDevScnX, fDevScnY, fDevScnZ, + fDist, fDevSplit, unDevIdx, unDevAxis, bDevIsLeaf, fDevLoBound, fDevHiBound, + /*unDevResult,*/ unMask, fDevMdlPairX, fDevMdlPairY, fDevMdlPairZ, fDevScnPairX, fDevScnPairY, fDevScnPairZ, + /*temp,*/ fSearchRadius, unSize, unWidth); break; + case 3: nns_priority4<<>>(/*fDevMdlX, fDevMdlY, fDevMdlZ,*/ fDevScnX, fDevScnY, fDevScnZ, + fDist, fDevSplit, unDevIdx, unDevAxis, bDevIsLeaf, fDevLoBound, fDevHiBound, + /*unDevResult,*/ unMask, fDevMdlPairX, fDevMdlPairY, fDevMdlPairZ, fDevScnPairX, fDevScnPairY, fDevScnPairZ, + /*temp,*/ fSearchRadius, unSize, unWidth); break; + case 4: nns_priority5<<>>(/*fDevMdlX, fDevMdlY, fDevMdlZ,*/ fDevScnX, fDevScnY, fDevScnZ, + fDist, fDevSplit, unDevIdx, unDevAxis, bDevIsLeaf, fDevLoBound, fDevHiBound, + /*unDevResult,*/ unMask, fDevMdlPairX, fDevMdlPairY, fDevMdlPairZ, fDevScnPairX, fDevScnPairY, fDevScnPairZ, + /*temp,*/ fSearchRadius, unSize, unWidth); break; + case 5: nns_priority6<<>>(/*fDevMdlX, fDevMdlY, fDevMdlZ,*/ fDevScnX, fDevScnY, fDevScnZ, + fDist, fDevSplit, unDevIdx, unDevAxis, bDevIsLeaf, fDevLoBound, fDevHiBound, + /*unDevResult,*/ unMask, fDevMdlPairX, fDevMdlPairY, fDevMdlPairZ, fDevScnPairX, fDevScnPairY, fDevScnPairZ, + /*temp,*/ fSearchRadius, unSize, unWidth); break; + default: nns_priority6<<>>(/*fDevMdlX, fDevMdlY, fDevMdlZ,*/ fDevScnX, fDevScnY, fDevScnZ, + fDist, fDevSplit, unDevIdx, unDevAxis, bDevIsLeaf, fDevLoBound, fDevHiBound, + /*unDevResult,*/ unMask, fDevMdlPairX, fDevMdlPairY, fDevMdlPairZ, fDevScnPairX, fDevScnPairY, fDevScnPairZ, + /*temp,*/ fSearchRadius, unSize, unWidth); + } + +} + +extern "C" +void wrapper_centralize(unsigned* unMask, + float* fDevMdlPairX, + float* fDevMdlPairY, + float* fDevMdlPairZ, + float* fDevScnPairX, + float* fDevScnPairY, + float* fDevScnPairZ, + float fcm0, + float fcm1, + float fcm2, + float fcs0, + float fcs1, + float fcs2, + float* fCenteredModX, + float* fCenteredModY, + float* fCenteredModZ, + float* fCenteredScnX, + float* fCenteredScnY, + float* fCenteredScnZ, + dim3 dimGrid, + dim3 dimBlock){ + centralize<<>>(unMask, + fDevMdlPairX,fDevMdlPairY,fDevMdlPairZ,fDevScnPairX,fDevScnPairY,fDevScnPairZ, + fcm0,fcm1,fcm2,fcs0,fcs1,fcs2, + fCenteredModX,fCenteredModY,fCenteredModZ,fCenteredScnX,fCenteredScnY,fCenteredScnZ); +} + +extern "C" +void wrapper_transformation(float* fDevScnX, + float* fDevScnY, + float* fDevScnZ, + float m00, float m01, float m02, float m03, + float m10, float m11, float m12, float m13, + float m20, float m21, float m22, float m23, + dim3 dimGrid, dim3 dimBlock){ + transformation<<>>(fDevScnX, fDevScnY, fDevScnZ, + m00, m01, m02, m03, + m10, m11, m12, m13, + m20, m21, m22, m23); +} + +//An internal queue structure. +struct Q{ +public: + Q(unsigned* q_idx, float* q_dist, unsigned unMemSize, unsigned unSize = 0){ + _qhead_idx = q_idx; + _qtail_idx = q_idx; + _qhead_dist = q_dist; + _qtail_dist = q_dist; + _unMemSize = unMemSize; + _unSize = unSize; + } + + __device__ unsigned getSize(){ + return _unSize; + } + + __device__ bool notEmpty(){ + if(_qhead_idx==_qtail_idx) return false; + else return true; + } + + __device__ void Insert(unsigned unNode, float fDist){ + if(_unSize<_unMemSize){ + *_qtail_idx = unNode; + *_qtail_dist = fDist; + _qtail_idx++; + _qtail_dist++; + _unSize++; + } + } + + __device__ void Extr_Min(unsigned* idx, float* min){ + float fMin = HUGE; + unsigned unIdx = 0; + unsigned unI = 0; + + for(unsigned i=0;i<_unSize;i++){ + if(_qhead_dist[i] +class CSystem +{ + public: + /** + * Allocation of 2D arrays + * @param unRows number of rows + * @param unCols number of columns + * @param aatArray data array + */ + static void allocate (unsigned int unRows, unsigned int unCols, T** &aatArray); + /** + * Deallocation of 2D arrays. Pointers are set to null. + * @param aatArray data array + */ + static void deallocate (T** &aatArray); + /** + * Allocation of 3D arrays + * @param unRows number of rows + * @param unCols number of columns + * @param unSlices number of slices + * @param aaatArray data array + */ + static void allocate (unsigned int unRows, unsigned int unCols, unsigned int unSlices, T*** &aaatArray); + /** + * Deallocation of 3D arrays. Pointers are set to null. + * @param aaatArray data array + */ + static void deallocate (T*** &aaatArray); +}; + +#include "slam6d/cuda/CSystem.icc" + +#endif /*CSYSTEM_H_*/ diff --git a/include/slam6d/cuda/CSystem.icc b/include/slam6d/cuda/CSystem.icc new file mode 100644 index 0000000..110ff04 --- /dev/null +++ b/include/slam6d/cuda/CSystem.icc @@ -0,0 +1,45 @@ +template +void CSystem::allocate (unsigned int unRows, unsigned int unCols, T** &aatArray) +{ + aatArray = new T*[unRows]; + aatArray[0] = new T[unRows*unCols]; + for (unsigned int unRow = 1; unRow < unRows; unRow++) + { + aatArray[unRow] = &aatArray[0][unCols*unRow]; + } +} + +template +void CSystem::deallocate (T**& aatArray) +{ + delete[] aatArray[0]; + delete[] aatArray; + aatArray = 0; +} + +template +void CSystem::allocate (unsigned int unRows, unsigned int unCols, unsigned int unSlices, T*** &aaatArray) +{ + aaatArray = new T**[unRows]; + aaatArray[0] = new T*[unRows*unCols]; + aaatArray[0][0] = new T[unRows*unCols*unSlices]; + for (unsigned int unRow = 0; unRow < unRows; unRow++) + { + aaatArray[unRow] = &aaatArray[0][unRow*unCols]; + for (unsigned int unCol = 0; unCol < unCols; unCol++) + { + aaatArray[unRow][unCol] = + &aaatArray[0][0][unRow*(unCols*unSlices)+unCol*unSlices]; + } + } +} + +template +void CSystem::deallocate (T***& aaatArray) +{ + // fairAssert(aaatArray != NULL, "Assertion while trying to deallocate null pointer reference"); + delete[] aaatArray[0][0]; + delete[] aaatArray[0]; + delete[] aaatArray; + aaatArray = 0; +} diff --git a/include/slam6d/cuda/icp6Dcuda.h b/include/slam6d/cuda/icp6Dcuda.h new file mode 100644 index 0000000..d57b3b8 --- /dev/null +++ b/include/slam6d/cuda/icp6Dcuda.h @@ -0,0 +1,61 @@ +/* + * File: icp_gpu_cuda.h + * Author: shams + * + * Created on April 17, 2010, 6:48 PM + */ + +#ifndef _ICP6DCUDA_H__ +#define _ICP6DCUDA_H__ + +#include + +#include "slam6d/cuda/CIcpGpuCuda.cuh" +#include "slam6d/icp6D.h" + +class icp6Dcuda : public icp6D { +private: + CIcpGpuCuda* icp; + double** h_idata; + float** fHstScn; + + float max_radius; // 0.3 */ + float min_radius; //0.05 */ + int iteration; + int max_iteration; // 120 Must be greater than 5 */ + int max_proctime; + float max_deviation; + int width; + int height; + + unsigned int max_scnSize; + +// Default resolution for Slam6D software + +public: + icp6Dcuda(icp6Dminimizer *my_icp6Dminimizer, + double max_dist_match = 25.0, + int max_num_iterations = 50, + bool quiet = false, + bool meta = false, + int rnd = 1, + bool eP = true, + int anim = -1, + double epsilonICP = 0.0000001, + int nns_method = simpleKD, + bool cuda_enabled = false); + + /** + * Destructor (empty, but needed, because virtual) + */ + virtual ~icp6Dcuda() {}; + + int match(Scan* PreviousScan, Scan* CurrentScan); + + void initGPUicp(float max_rad, float min_rad, int iter, int max_iter, + int max_proctime, float max_dev, const double trans[], const double trans_inv[]); +}; + + +#endif /* _ICP_GPU_CUDA_H */ + diff --git a/include/slam6d/d2tree.icc b/include/slam6d/d2tree.icc new file mode 100644 index 0000000..88bc0b0 --- /dev/null +++ b/include/slam6d/d2tree.icc @@ -0,0 +1,42 @@ + +inline void D2Tree::calcDivide(double x_size, double y_size, double z_size, + double center[3], + double &x_sizeNew, double &y_sizeNew, double &z_sizeNew, + double newcenter[8][3]) +{ + x_sizeNew = x_size * 0.5; + y_sizeNew = y_size * 0.5; + z_sizeNew = z_size * 0.5; + + newcenter[0][0] = center[0] - x_sizeNew; + newcenter[0][1] = center[1] - y_sizeNew; + newcenter[0][2] = center[2] - z_sizeNew; + + newcenter[1][0] = center[0] + x_sizeNew; + newcenter[1][1] = center[1] - y_sizeNew; + newcenter[1][2] = center[2] - z_sizeNew; + + newcenter[2][0] = center[0] - x_sizeNew; + newcenter[2][1] = center[1] + y_sizeNew; + newcenter[2][2] = center[2] - z_sizeNew; + + newcenter[3][0] = center[0] - x_sizeNew; + newcenter[3][1] = center[1] - y_sizeNew; + newcenter[3][2] = center[2] + z_sizeNew; + + newcenter[4][0] = center[0] + x_sizeNew; + newcenter[4][1] = center[1] + y_sizeNew; + newcenter[4][2] = center[2] - z_sizeNew; + + newcenter[5][0] = center[0] + x_sizeNew; + newcenter[5][1] = center[1] - y_sizeNew; + newcenter[5][2] = center[2] + z_sizeNew; + + newcenter[6][0] = center[0] - x_sizeNew; + newcenter[6][1] = center[1] + y_sizeNew; + newcenter[6][2] = center[2] + z_sizeNew; + + newcenter[7][0] = center[0] + x_sizeNew; + newcenter[7][1] = center[1] + y_sizeNew; + newcenter[7][2] = center[2] + z_sizeNew; +} diff --git a/include/slam6d/data_types.h b/include/slam6d/data_types.h new file mode 100644 index 0000000..b13ec1f --- /dev/null +++ b/include/slam6d/data_types.h @@ -0,0 +1,225 @@ +/** + * @file + * @brief Basic DataPointer class and its derivates SingleArray and TripleArray + * + * This file contains several classes for array-like access. The SingleArray + * and TripleArray classes and their typedefs to DataXYZ/... overload + * the operator[] and have a size function to act as their native arrays. + * Similar to the array classes, SingleObject represents a whole object with + * all its members in that allocated space. + * + * If an array of pointers to the elements of a TripleArray is required it can + * create a temporary class PointerArray which holds creates and deletes a + * native pointer array and follows the RAII-pattern. + */ + +#ifndef DATA_TYPES_H +#define DATA_TYPES_H + + +/** + * Representation of a pointer to a data field with no access methods. + * + * Type-specialized access is gained by deriving from this class and + * implementing access functions like operator[] and size(). + * + * The PrivateImplementation feature enables RAII-type locking mechanisms + * used in the scanserver for holding CacheObject-locks. It is protected so + * that scanserver-unaware code can only construct this class with a pointer + * and size. Initialization of a derived class with these locking mechanisms + * creates this class with the private implementation value, which will be + * deleted in this dtor when it completely falls out of scope. + */ +class DataPointer { +protected: + //! Subclass for storing further members and attaching an overloadable dtor + class PrivateImplementation { + public: + virtual ~PrivateImplementation() {} + }; +public: + // DataPointer& operator=(const DataPointer&) = delete; + // DataPointer(const DataPointer&) = delete; + + /** + * Ctor for the initial creation + * + * @param pointer base pointer to the data + * @param size of the pointed data in bytes + */ + DataPointer(unsigned char* pointer, unsigned int size, + PrivateImplementation* private_impl = 0) : + m_pointer(pointer), m_size(size), m_private_impl(private_impl) { + } + + /** + * Copy-Ctor for passing along via return by value + * + * The type-specialized classes (B) will be called with their + * B(DataPointer&&) temporary ctor and call this constructor, so the private + * imlementation has to be taken away. The temporary inside that constructor + * isn't seen as temporary anymore, so we need a simple reference-ctor. + */ + DataPointer(DataPointer& other) { + m_pointer = other.m_pointer; + m_size = other.m_size; + // take ownership of this value, other is a temporary and will deconstruct + m_private_impl = other.m_private_impl; + other.m_private_impl = 0; + }; + + /** + * Same as DataPointer(DataPointer&), except this is for functions returning + * DataPointer instead of derived classes, so the temporary-ctor is used. + */ + DataPointer(DataPointer&& other) { + m_pointer = other.m_pointer; + m_size = other.m_size; + // take ownership of this value, other is a temporary and will deconstruct + m_private_impl = other.m_private_impl; + other.m_private_impl = 0; + } + + //! Delete the private implementation with its derived dtor + ~DataPointer() { + if(m_private_impl != 0) + delete m_private_impl; + } + + //! Indicator for nullpointer / no data contained if false + inline bool valid() { + return m_size != 0; + } + + inline unsigned char* get_raw_pointer() const { return m_pointer; } + +protected: + unsigned char* m_pointer; + unsigned int m_size; + +private: + PrivateImplementation* m_private_impl; +}; + + + +template +class SingleArray : public DataPointer { +public: + //! Cast return-by-value temporary DataPointer to this type of array + SingleArray(DataPointer&& temp) : + DataPointer(temp) + { + } + + SingleArray(SingleArray&& temp) : + DataPointer(temp) + { + } + + //! Represent the pointer as an array of T + inline T& operator[](unsigned int i) const + { + return *(reinterpret_cast(m_pointer) + i); + } + + //! The number of T instances in this array + unsigned int size() { + return m_size / sizeof(T); + } +}; + + + +template +class TripleArray : public DataPointer { +public: + //! Cast return-by-value temporary DataPointer to this type of array + TripleArray(DataPointer&& temp) : + DataPointer(temp) + { + } + + TripleArray(TripleArray&& temp) : + DataPointer(temp) + { + } + + //! Represent the pointer as an array of T[3] + inline T* operator[](unsigned int i) const + { + return reinterpret_cast(m_pointer) + (i*3); + } + + //! The number of T[3] instances in this array + unsigned int size() const { + return m_size / (3 * sizeof(T)); + } +}; + + + +template +class SingleObject : public DataPointer { +public: + //! Cast return-by-value temporary DataPointer to this type of object + SingleObject(DataPointer&& temp) : + DataPointer(temp) + { + } + + SingleObject(SingleObject&& temp) : + DataPointer(temp) + { + } + + //! Type-cast + inline T& get() const + { + return *reinterpret_cast(m_pointer); + } + + //! There is only one object in here + unsigned int size() const { + return 1; + } +}; + + + +/** + * To simplify T** access patterns for an array of T[3] (points), this RAII- + * type class helps creating and managing this pointer array on the stack. + */ +template +class PointerArray { +public: + //! Create a temporary array and fill it sequentially with pointers to points + PointerArray(const TripleArray& data) { + unsigned int size = data.size(); + m_array = new T*[size]; + for(unsigned int i = 0; i < size; ++i) + m_array[i] = data[i]; + } + + //! Removes the temporary array on destruction (RAII) + ~PointerArray() { + delete[] m_array; + } + + //! Conversion operator to interface the TripleArray to a T** array + inline T** get() const { return m_array; } +private: + T** m_array; +}; + +// TODO: naming, see scan.h +typedef TripleArray DataXYZ; +typedef TripleArray DataXYZFloat; +typedef TripleArray DataRGB; +typedef SingleArray DataReflectance; +typedef SingleArray DataAmplitude; +typedef SingleArray DataType; +typedef SingleArray DataDeviation; + +#endif //DATA_TYPES_H diff --git a/include/slam6d/elch6D.h b/include/slam6d/elch6D.h new file mode 100644 index 0000000..ff00049 --- /dev/null +++ b/include/slam6d/elch6D.h @@ -0,0 +1,32 @@ +/** + * @file graph balancer implementation and utility functions + * @author Jochen Sprickerhof. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __ELCH6D_H__ +#define __ELCH6D_H__ + +#include "loopSlam6D.h" + +class elch6D : public loopSlam6D { + + public: + elch6D(bool _quiet, icp6Dminimizer *my_icp6Dminimizer, double mdm, int max_num_iterations, + int rnd, bool eP, int anim, double epsilonICP, int nns_method) + : loopSlam6D(_quiet, my_icp6Dminimizer, mdm, max_num_iterations, rnd, eP, anim, epsilonICP, nns_method) {} + + static void graph_balancer(graph_t &g, int f, int l, double *weights); + + static void graph_weight_out(graph_t &g, int first, int last, double *weights); + static void graph_weight_out(graph_t &g, int first, int last, double *weights, string &out_file); + static void graph_pos_out(graph_t &g, const vector &allScans); + static void graph_pos_out(graph_t &g, const vector &allScans, string &out_file); + static void dot_pos_out(graph_t &g, const vector &allScans, string &out_file); + static void graph_out(graph_t &g); + + static void graph_out(graph_t &g, string &out_file); + static void slim_graph_out(graph_t g); + static void slim_graph_out(graph_t g, string &out_file); +}; + +#endif diff --git a/include/slam6d/elch6Deuler.h b/include/slam6d/elch6Deuler.h new file mode 100644 index 0000000..5c3390f --- /dev/null +++ b/include/slam6d/elch6Deuler.h @@ -0,0 +1,22 @@ +/** + * @file ELCH implementation using Euler angles + * @author Jochen Sprickerhof. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __ELCH6D_EULER_H__ +#define __ELCH6D_EULER_H__ + +#include "elch6D.h" + +class elch6Deuler : public elch6D { + + public: + elch6Deuler(bool _quiet, icp6Dminimizer *my_icp6Dminimizer, double mdm, int max_num_iterations, + int rnd, bool eP, int anim, double epsilonICP, int nns_method) + : elch6D(_quiet, my_icp6Dminimizer, mdm, max_num_iterations, rnd, eP, anim, epsilonICP, nns_method) {} + + virtual void close_loop(const vector &allScans, int first, int last, graph_t &g); + +}; + +#endif diff --git a/include/slam6d/elch6Dquat.h b/include/slam6d/elch6Dquat.h new file mode 100644 index 0000000..36cb355 --- /dev/null +++ b/include/slam6d/elch6Dquat.h @@ -0,0 +1,22 @@ +/** + * @file ELCH implementation using Quaternions + * @author Jochen Sprickerhof. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __ELCH6D_QUAT_H__ +#define __ELCH6D_QUAT_H__ + +#include "elch6D.h" + +class elch6Dquat : public elch6D { + + public: + elch6Dquat(bool _quiet, icp6Dminimizer *my_icp6Dminimizer, double mdm, int max_num_iterations, + int rnd, bool eP, int anim, double epsilonICP, int nns_method) + : elch6D(_quiet, my_icp6Dminimizer, mdm, max_num_iterations, rnd, eP, anim, epsilonICP, nns_method) {} + + virtual void close_loop(const vector &allScans, int first, int last, graph_t &g); + +}; + +#endif diff --git a/include/slam6d/elch6Dslerp.h b/include/slam6d/elch6Dslerp.h new file mode 100644 index 0000000..7060ccf --- /dev/null +++ b/include/slam6d/elch6Dslerp.h @@ -0,0 +1,22 @@ +/** + * @file ELCH implementation using SLERP + * @author Jochen Sprickerhof. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __ELCH6D_SLERP_H__ +#define __ELCH6D_SLERP_H__ + +#include "elch6D.h" + +class elch6Dslerp : public elch6D { + + public: + elch6Dslerp(bool _quiet, icp6Dminimizer *my_icp6Dminimizer, double mdm, int max_num_iterations, + int rnd, bool eP, int anim, double epsilonICP, int nns_method) + : elch6D(_quiet, my_icp6Dminimizer, mdm, max_num_iterations, rnd, eP, anim, epsilonICP, nns_method) {} + + virtual void close_loop(const vector &allScans, int first, int last, graph_t &g); + +}; + +#endif diff --git a/include/slam6d/elch6DunitQuat.h b/include/slam6d/elch6DunitQuat.h new file mode 100644 index 0000000..385e26f --- /dev/null +++ b/include/slam6d/elch6DunitQuat.h @@ -0,0 +1,22 @@ +/** + * @file ELCH implementation using unit Quaternions + * @author Jochen Sprickerhof. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __ELCH6D_UINTQUAT_H__ +#define __ELCH6D_UNITQUAT_H__ + +#include "elch6D.h" + +class elch6DunitQuat : public elch6D { + + public: + elch6DunitQuat(bool _quiet, icp6Dminimizer *my_icp6Dminimizer, double mdm, int max_num_iterations, + int rnd, bool eP, int anim, double epsilonICP, int nns_method) + : elch6D(_quiet, my_icp6Dminimizer, mdm, max_num_iterations, rnd, eP, anim, epsilonICP, nns_method) {} + + virtual void close_loop(const vector &allScans, int first, int last, graph_t &g); + +}; + +#endif diff --git a/include/slam6d/fbr/fbr_global.h b/include/slam6d/fbr/fbr_global.h new file mode 100644 index 0000000..3b7e6a0 --- /dev/null +++ b/include/slam6d/fbr/fbr_global.h @@ -0,0 +1,100 @@ +/** + * @file fbr_global.h + * @brief Globally used headers, functions, structures + * @author HamidReza Houshiar. Jacobs University Bremen gGmbH, Germany. + * @date 2012/05/9 14:00 + */ + +#ifndef FBR_GLOBAL_H_ +#define FBR_GLOBAL_H_ + +#include +#include +#include +#include +#include +#include +#include "slam6d/io_types.h" +#include "slam6d/globals.icc" + +using namespace std; + +namespace fbr{ + + //Vertical angle of view of scanner +#define MAX_ANGLE 60.0 +#define MIN_ANGLE -40.0 + + /** + * @enum projection_method + */ + enum projection_method{ + EQUIRECTANGULAR, + CYLINDRICAL, + MERCATOR, + RECTILINEAR, + PANNINI, + STEREOGRAPHIC, + ZAXIS, + }; + /** + * @enum panorama_map_method + */ + enum panorama_map_method{ + FARTHEST, + EXTENDED, + }; + /** + * @enum feature_method + */ + enum feature_detector_method{ + SIFT_DET, + SURF_DET, + ORB_DET, + FAST_DET, + STAR_DET, + }; + enum feature_descriptor_method{ + SIFT_DES, + SURF_DES, + ORB_DES, + }; + /** + * @enum matching_method + */ + enum matcher_method{ + BRUTEFORCE, + FLANN, + KNN, + RADIUS, + RATIO, + }; + /** + * @enum registration_method + */ + enum registration_method{ + ALL, + RANSAC, + DISABLE, + }; + //RANSAC iteration +#define RANSACITR 20000 + //Inlier influence +#define iInfluence 0.5 + + string scanFormatToString(IOType format); + IOType stringToScanFormat(string format); + string projectionMethodToString(projection_method method); + projection_method stringToProjectionMethod(string method); + string panoramaMapMethodToString(panorama_map_method method); + panorama_map_method stringToPanoramaMapMethod(string method); + string featureDetectorMethodToString(feature_detector_method method); + feature_detector_method stringToFeatureDetectorMethod(string method); + string featureDescriptorMethodToString(feature_descriptor_method method); + feature_descriptor_method stringToFeatureDescriptorMethod(string method); + string matcherMethodToString(matcher_method method); + matcher_method stringToMatcherMethod(string method); + string registrationMethodToString(registration_method method); + registration_method stringToRegistrationMethod(string method); +} +#endif /* FBR_GLOBAL_H_ */ diff --git a/include/slam6d/fbr/feature.h b/include/slam6d/fbr/feature.h new file mode 100644 index 0000000..79cf380 --- /dev/null +++ b/include/slam6d/fbr/feature.h @@ -0,0 +1,51 @@ +/** + * @file feature.h + * @brief detects features on images and create the descriptor for them + * @author HamidReza Houshiar. Jacobs University Bremen gGmbH, Germany. + * @date Date: 2012/5/24/ 2:00 + */ + +#ifndef FEATURE_H_ +#define FEATURE_H_ + +#include "fbr_global.h" + +using namespace std; + +namespace fbr{ + /** + * @class feature + * @brief class to detect and describe features + * @param fDetectorMethod feature_detector_method + * @param fDescriptorMethod feature_descriptor_method + * @param keypoints vector containing the detected features + * @param descriptors cv::Mat containig the descriptor of features + */ + class feature{ + feature_detector_method fDetectorMethod; + feature_descriptor_method fDescriptorMethod; + vector keypoints; + cv::Mat descriptors; + enum description_method{ + FEATURE_DESCRIPTION, + DESCRIPTOR_DESCRIPTION, + ALL, + }; + public: + /** + * constructor of feature class + */ + feature(); + void featureDetection(cv::Mat pImage, feature_detector_method method); + void featureDetection(cv::Mat pImage); + void featureDescription(cv::Mat pImage, feature_descriptor_method method); + void featureDescription(cv::Mat pImage); + feature_detector_method getDetectorMethod(); + feature_descriptor_method getDescriptorMethod(); + vector getFeatures(); + cv::Mat getDescriptors(); + void getDescription(description_method method=ALL); + unsigned int getNumberOfFeatures(); + }; +} +#endif /* FEATURE_H_ */ diff --git a/include/slam6d/fbr/feature_matcher.h b/include/slam6d/fbr/feature_matcher.h new file mode 100644 index 0000000..429bf21 --- /dev/null +++ b/include/slam6d/fbr/feature_matcher.h @@ -0,0 +1,50 @@ +/** + * @file feature_matcher.h + * @brife matches two sets of features + * This class is a feature matcher that findes the matching features. + * It determines the matching features from two sets of feature descriptors and features. + * @author HamidReza Houshiar. Jacobs University Bremen gGmbH, Germany. + * @date Date: 2012/05/29 2:00 + */ + +#ifndef FEATURE_MATCHER_H_ +#define FEATURE_MATCHER_H_ + +#include "fbr_global.h" +#include "feature.h" + +namespace fbr{ + /** + * @class feature_mathcer : match features that has same descriptor method. + * @param matches set of matched features + * @param mMethod matcher_method + * @param knn incase of knn search indecate the number of nearest neighbors + * @param radius incase of radius search indicates the radius of the search + * @param nOfMatches number of matches after the first step + * @param nOfFilteredMatches number of matches after the filteration + */ + class feature_matcher{ + vector matches; + matcher_method mMethod; + unsigned int knn; + double radius; + unsigned int nOfMatches; + unsigned int nOfFilteredMatches; + + void init(matcher_method method, int k, double r); + + public: + feature_matcher(); + feature_matcher(matcher_method method); + feature_matcher(matcher_method method, double p); + void match(feature qFeature, feature tFeature); + vector getMatches(); + matcher_method getMatcherMethod(); + unsigned int getKnn(); + double getRadius(); + unsigned int getNumberOfMatches(); + unsigned int getNumberOfFilteredMatches(); + void getDescription(); + }; +} +#endif /* FEATURE_MATCHER_H_ */ diff --git a/include/slam6d/fbr/panorama.h b/include/slam6d/fbr/panorama.h new file mode 100644 index 0000000..0591988 --- /dev/null +++ b/include/slam6d/fbr/panorama.h @@ -0,0 +1,75 @@ +/** + * @file panorama.h + * @brife create panorama images from 3D scans. + * This class is a panorama image container with different projections. + * It creats panoramic images with specified resolutions. + * @author HamidReza Houshiar. Jacobs University Bremen gGmbH, Germany. + * @date Date: 2012/05/23 2:00 + */ + +#ifndef PANORAMA_H_ +#define PANORAMA_H_ + +#include "fbr_global.h" + +using namespace std; + +namespace fbr{ + /** + * @class panorama : create panorama images with different projection methods from input scan files(Mat from scan_cv class) in opencv Mat format + * @param iReflectance panorama image from reflectance data + * @param iRange panorama image from range data + * @param iMap panorama map of 3D cartesian coordinate of input scan(same points as iRange and iReflectance) + * @param extendedIMap 3D vector as panorama map with all the points + * @param iWidth width of the panorama image (cols in opencv) + * @param iHeight height of panorama image (rows in opencv) + * @param pMethod projection method for panorama creation + * @param nImage number of images per scan specially for Rectilinear, Pannini and Stereographic projections + * @param pParam special d parameter of Pannini projection (Master Thesis for more info) or special R parameter of Stereographic projection (Master Thesis for more info) + */ + class panorama{ + cv::Mat iReflectance; + cv::Mat iMap; + cv::Mat iRange; + vector > > extendedIMap; + unsigned int iWidth; + unsigned int iHeight; + projection_method pMethod; + unsigned int nImages; + double pParam; + panorama_map_method mapMethod; + + void init(unsigned int width, unsigned int height, projection_method method, unsigned int numberOfImages, double param, panorama_map_method mapMethod); + void map(int x, int y, cv::MatIterator_ it, double range); + public: + /** + * constructor of class panorama + * @param width the width of the panorama image + * @param height the height of the panorama image + * @param method the projection method + * @param images number of subsets to crate panorama image + * @param param special parameter for pannini or stereographic projections + * @param mapMethod mapping method for panorama image and 3D points + */ + panorama (unsigned int width, unsigned int height, projection_method method); + panorama (unsigned int width, unsigned int height, projection_method method, unsigned int numberOfImages); + panorama (unsigned int width, unsigned int height, projection_method method, unsigned int numberOfImages, double param); + panorama (unsigned int width, unsigned int height, projection_method method, unsigned int numberOfImages, double param, panorama_map_method mapMethod); + /** + * @brief creates the panorama reflectance image and map. + */ + void createPanorama(cv::Mat scan); + unsigned int getImageWidth(); + unsigned int getImageHeight(); + projection_method getProjectionMethod(); + unsigned int getNumberOfImages(); + double getProjectionParam(); + cv::Mat getReflectanceImage(); + cv::Mat getMap(); + cv::Mat getRangeImage(); + vector > > getExtendedMap(); + panorama_map_method getMapMethod(); + void getDescription(); + }; +} +#endif /* PANORAMA_H_ */ diff --git a/include/slam6d/fbr/registration.h b/include/slam6d/fbr/registration.h new file mode 100644 index 0000000..4b9ed98 --- /dev/null +++ b/include/slam6d/fbr/registration.h @@ -0,0 +1,96 @@ +/** + * @file registration.h + * @brife register two scans. + * This class register two scans with respect to the matched features. + * It determines the transformation matrix. + * @author HamidReza Houshiar. Jacobs University Bremen gGmbH, Germany. + * @date Date: 2012/05/30 1:00 + */ + +#ifndef REGISTRATION_H_ +#define REGISTRATION_H_ + +#include "fbr_global.h" +#include "slam6d/icp6Dquat.h" + +using namespace std; + +namespace fbr{ + /** + * @class registration : registers two scnas + * @param minDistance threshold for min distance between the each three points for registration process + * @param minError threshold for min error after transformation of a point from second coordinate to first to determin the inliers + * @param minInlier threshold fir min inlier to consider the align as positive + * @param rMethod registration Method + * @param bAlign best alignment + * @param bError error of registration with bAlign + * @param bErrorIndex error index of registration with bAlign + */ + class registration{ + unsigned int minDistance; + double minError; + unsigned int minInlier; + registration_method rMethod; + double bestAlign[16]; + double bestError; + unsigned int bestErrorIndex; + + /** + * getCoord : get 3D coordinate of query scan and train scan for each match + * @param fKeypoints vector of KeyPoints from query (first) scan + * @param sKeypoints vector of KeyPoints from train (second) scan + * @param matches vector holding found matches + * @param fPMap Mat containing the 3D coordinate of each match from query scan + * @param sPMap Mat containing the 3D coordinate of each match from train scan + * @param idx index of the match + * @param cq Point3f for returning the 3D coordinate of query scan + * @param ct Point3f for returning the 3D coordinate of train scan + * @return 1 on success 0 on failure + */ + int getCoord( vector fKeypoints, vector sKeypoints, vector matches, cv::Mat fPMap, cv::Mat sPMap, int idx, cv::Point3f& cq, cv::Point3f& ct); + /** + * pointToArray : convert 3D point3f to double array + * @param c 3D point whith Point3f type + * @param cd returning 3d point as double array + */ + void pointToArray(cv::Point3f c, double* cd); + /** + * coordTransform : transform a point with the align + * @param p input train 3D point + * @param align input transformation matrix + * @return Point3f trasformed 3D point + */ + cv::Point3f coordTransform(cv::Point3f p, double* align); + /** + * findAlign : find the best align + * @param fPMap input Mat wich contains the 3D coordinates of each pixel of first panorama image + * @param fKeypoints vector containing the features of first panorama image + * @param sPMap input Mat wich contains the 3D coordinates of each pixel of second panorama image + * @param sKeypoints vector containing the features of second panorama image + * @param matches vector containing the matched features of both images + */ + int findAlign(unsigned int i, unsigned int j, unsigned int k, cv::Mat fPMap, vector fKeypoints, cv::Mat sPMap, vector sKeypoints, vector matches); + + public: + registration(); + registration(unsigned int minD, double minE, unsigned int minI, registration_method method); + /** + * findRegistration : find the transformation matrix between two scans + * @param fPMap first panorama map which is 3D points coresponding to fist panorama image + * @param fKeypoints keypoints from the first scan + * @param sPMap second panorama map which is 3D points coresponding to second panorama image + * @param sKeypoints keypoints from the second scan + * @param matches matched keypoints from first to second scan + */ + void findRegistration(cv::Mat fPMap, vector fKeypoints, cv::Mat sPMap, vector sKeypoints, vector matches); + unsigned int getMinDistance(); + double getMinError(); + unsigned int getMinInlier(); + registration_method getRegistrationMethod(); + double * getBestAlign(); + double getBestError(); + unsigned int getBestErrorIndex(); + void getDescription(); + }; +} +#endif /* REGISTRATION_H_ */ diff --git a/include/slam6d/fbr/scan_cv.h b/include/slam6d/fbr/scan_cv.h new file mode 100644 index 0000000..1cdc3d6 --- /dev/null +++ b/include/slam6d/fbr/scan_cv.h @@ -0,0 +1,60 @@ +/** + * @file scan_cv.h + * @brief load 3D Scans in opencv format for featuer based registration. + * This class is an 3D scan container for scans that have different scan file formats + * and add them to a OpenCV Mat data type also normalize the reflectance. + * @author HamidReza Houshiar. Jacobs University Bremen gGmbH, Germany. + * @date Date: 2012/05/9 2:00 + */ + +#ifndef SCAN_CV_H_ +#define SCAN_CV_H_ + +#include "fbr_global.h" +#include "slam6d/scan.h" +#include "slam6d/managedScan.h" + +namespace fbr{ + /** + * @class scan_cv + * @brief class for 3D scans in open CV Mat data type + * @param sDir name and dir of the input scan file + * @param scan Mat data type which contains the 3D Scan + * @param sNumber input scan number + * @param nPoints Number of points + * @param zmax max value in z direction + * @param zmin min value in z direction + * @param sFormat input scan file format in IOType + */ + class scan_cv{ + string sDir; + cv::Mat scan; + unsigned int sNumber; + unsigned int nPoints; + double zMax; + double zMin; + IOType sFormat; + + public: + /** + * constructor of class scan_cv + * @param dir directory of the input scan file + * @param number input scan number + * @param format input scan file format + */ + scan_cv (string dir, unsigned int number, IOType format); + /** + * @brief read scan file and convert it to open cv Mat + */ + void convertScanToMat(); + string getScanDir(); + unsigned int getScanNumber(); + unsigned int getNumberOfPoints(); + double getZMin(); + double getZMax(); + IOType getScanFormat(); + cv::Mat getMatScan(); + void getDescription(); + }; +} +#endif /* SCAN_CV_H_ */ diff --git a/include/slam6d/frame.h b/include/slam6d/frame.h new file mode 100644 index 0000000..84fe2e0 --- /dev/null +++ b/include/slam6d/frame.h @@ -0,0 +1,21 @@ +#ifndef FRAME_H +#define FRAME_H + +/** + * @brief Simple frame class containing a transformation and type + */ +class Frame { +public: + double transformation[16]; + unsigned int type; + + Frame() {} + Frame(double* transformation, unsigned int type) { set(transformation, type); } + void set(double* transformation, unsigned int type) { + for(unsigned int i = 0; i < 16; ++i) + this->transformation[i] = transformation[i]; + this->type = type; + } +}; + +#endif //FRAME_H \ No newline at end of file diff --git a/include/slam6d/gapx6D.h b/include/slam6d/gapx6D.h new file mode 100644 index 0000000..f509fbd --- /dev/null +++ b/include/slam6d/gapx6D.h @@ -0,0 +1,62 @@ +/** @file + * @brief The global correction based upon APX transform + * + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Jan Elseberg. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __GAPX6D_H__ +#define __GAPX6D_H__ + +#include +using std::vector; + +#include "graphSlam6D.h" +#include "icp6D.h" +#include "graph.h" + +#include "newmat/newmatio.h" + +//typedef vector vPtPair; ///< just a typedef: vPtPair = vector of type PtPair + + +/* + * @brief + * + */ +class gapx6D : public graphSlam6D { + +public: + /** + * Constructor (default) + */ + gapx6D() {}; + gapx6D(icp6Dminimizer *my_icp6Dminimizer, + double mdm = 25.0, + double max_dist_match = 25.0, + int max_num_iterations = 50, + bool quiet = false, + bool meta = false, + int rnd = 1, + bool eP = true, + int anim = -1, + double epsilonICP = 0.0000001, + int nns_method = simpleKD, + double epsilonLUM = 0.5); + + virtual ~gapx6D(); + + double doGraphSlam6D(Graph gr, vector MetaScan, int nrIt); + + static double LUM[4]; + +private: + double genBArotForLinkedPair(int firstScanNum, int secondScanNum, vPtPair *ptpairs, + double *centroids_m, double *centroids_d, NEWMAT::Matrix *B, NEWMAT::ColumnVector *A); + double genBAtransForLinkedPair(int firstScanNum, int secondScanNum, + double *centroids_m, double *centroids_d, + NEWMAT::SymmetricMatrix *B, NEWMAT::ColumnVector *A, NEWMAT::ColumnVector &X); + +}; + +#endif diff --git a/include/slam6d/ghelix6DQ2.h b/include/slam6d/ghelix6DQ2.h new file mode 100644 index 0000000..d6996db --- /dev/null +++ b/include/slam6d/ghelix6DQ2.h @@ -0,0 +1,60 @@ +/** @file + * @brief The global correction based upon 6D Lu Milios style SLAM in 6D but with a helix correction step + * + * @author Peter Schneider. Institute of Computer Science, University of Koblenz , Germany. + */ + +#ifndef __GHELIX_Q2_H__ +#define __GHELIX_Q2_H__ + +#include +using std::vector; + +#include "graphSlam6D.h" +#include "icp6D.h" +#include "graph.h" + +#include "newmat/newmatio.h" + +//typedef vector vPtPair; ///< just a typedef: vPtPair = vector of type PtPair + + +/* + * @brief Representation of 3D scan matching based upon Lu/Milios in 6D but using helix correction step. + * + * H. Pottman, et al., Simultaneous registration of multiple + * views of a 3D object, + */ +class ghelix6DQ2 : public graphSlam6D { + +public: + /** + * Constructor (default) + */ + ghelix6DQ2() {}; + ghelix6DQ2(icp6Dminimizer *my_icp6Dminimizer, + double mdm = 25.0, + double max_dist_match = 25.0, + int max_num_iterations = 50, + bool quiet = false, + bool meta = false, + int rnd = 1, + bool eP = true, + int anim = -1, + double epsilonICP = 0.0000001, + int nns_method = simpleKD, + double epsilonLUM = 0.5); + + virtual ~ghelix6DQ2(); + + virtual double doGraphSlam6D(Graph gr, vector MetaScan, int nrIt); + + static double LUM[4]; + +private: + + double genBBdForLinkedPair( int firstScanNum, int secondScanNum, vPtPair *ptpairs, + NEWMAT::Matrix *B, NEWMAT::ColumnVector *Bd); +}; + +#endif diff --git a/include/slam6d/globals.icc b/include/slam6d/globals.icc new file mode 100644 index 0000000..a02c4a4 --- /dev/null +++ b/include/slam6d/globals.icc @@ -0,0 +1,1291 @@ +/** + * @file + * @brief Globally used functions + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __GLOBALS_ICC__ +#define __GLOBALS_ICC__ + +#ifdef _MSC_VER +#include +#define _USE_MATH_DEFINES +#include + +inline int gettimeofday (struct timeval* tp, void* tzp) +{ + unsigned long t; + t = timeGetTime(); + tp->tv_sec = t / 1000; + tp->tv_usec = t % 1000; + return 0; /* 0 indicates success. */ +} +#else +#include +#endif + +#include +using std::min; +using std::max; +#include +#include +using std::stringstream; +#include +using std::ostream; +using std::istream; +#include +using std::cout; +using std::endl; +#include +#include +using std::runtime_error; + +/** + * Set bits count + * + * @param unsigned char x + * + * @return char + * + */ +inline unsigned char _my_popcount_3(unsigned char x) { + x -= (x >> 1) & 0x55; //put count of each 2 bits into those 2 bits + x = (x & 0x33) + ((x >> 2) & 0x33); //put count of each 4 bits into those 4 bits + x = (x + (x >> 4)) & 0x0f; //put count of each 8 bits into those 8 bits + return x; +} + +/** + * Converts a class T to a string of width with padding 0 + * + * @param t output + * @param width length + * + * @return string of t + * + */ +template +inline std::string to_string(const T& t, int width) +{ + stringstream ss; + ss << std::setfill('0') << std::setw(width) << t; + return ss.str(); +} + +/** + * Converts a class T to a string of width with padding 0 + * + * @param t output + * @return string of t + * + */ +template +inline std::string to_string(const T& t) +{ + stringstream ss; + ss << t; + return ss.str(); +} + + +/** + * Overridden "<<" operator for sending a (4x4)-matrix to a stream + * + * @param os stream + * @param matrix 4x4 matrix sent to stream + * @return stream + */ +inline ostream& operator<<(ostream& os, const double matrix[16]) +{ + for (int i = 0; i < 16; os << matrix[i++] << " "); + return os; +} + +/** + * Overridden ">>" operator for reading a (4x4)-matrix from a stream.
+ * Throws a runtime error if not enough data in the stream. + * + * @param is stream + * @param matrix 4x4 matrix sent to stream + * @return stream +*/ +inline istream& operator>>(istream& is, double matrix[16]) +{ + for (int i = 0; i < 16; i++) { + if (!is.good()) throw runtime_error("Not enough elements to read for >>(istream&, double[16])"); + is >> matrix[i]; + } + return is; +} + + +/** + * Converts an angle (given in deg) to rad + * + * @param deg integer indicating, whether the figure to be drawn to show + * the clusters should be circles (0) or rectangles(1) + * + * @return the clustered image, with the clusters marked by colored figures + * + */ +template +inline T rad(const T deg) +{ + return ( (2 * M_PI * deg) / 360 ); +} + +/** + * Converts an angle (given in rad) to deg + * + * @param rad angle in rad + * @return angle in deg + */ +template +inline T deg(const T rad) +{ + return ( (rad * 360) / (2 * M_PI) ); +} + + +/** + * Calculates x^2 + * + * @param x input scalar value + * @return squared value + */ +template +static inline T sqr(const T &x) +{ + return x*x; +} + + +/** + * Computes the squared length of a 3-vector + * + * @param x input 3-vector + * @return length^2 of vector + */ +template +inline T Len2(const T *x) +{ + return sqr(x[0]) + sqr(x[1]) + sqr(x[2]); +} + + +/** + * Computes the length of a 3-vector + * + * @param x input 3-vector + * @return length of vector + */ +template +inline T Len(const T *x) +{ + return sqrt(Len2(x)); +} + + +/** + * Computes the squared Eucledian distance between two points + * in 3-space + * + * @param x1 first input vector + * @param x2 decond input vecotr + * @return Eucledian distance^2 between the two locations + */ +template +inline T Dist2(const T *x1, const F *x2) +{ + T dx = x2[0] - x1[0]; + T dy = x2[1] - x1[1]; + T dz = x2[2] - x1[2]; + + return sqr(dx) + sqr(dy) + sqr(dz); +} + +/* + * Normalization of the input 3-vector + * + * @param x input/output 3-vector + */ +template +static inline void Normalize3(T *x) +{ + T norm = sqrt(x[0]*x[0] + x[1]*x[1] + x[2]*x[2]); + x[0] /= norm; + x[1] /= norm; + x[2] /= norm; +} + +/* + * Normalization of the input 4-vector + * + * @param x input/output 4-vector + */ +template +static inline void Normalize4(T *x) +{ + T norm = sqrt((x[0]*x[0] + x[1]*x[1] + x[2]*x[2] + x[3]*x[3])); + + x[0] /= norm; + x[1] /= norm; + x[2] /= norm; + x[3] /= norm; +} + +/** + * Sets a 4x4 matrix to identity + * + * @param M 4x4 matrix + */ +template +inline void M4identity( T *M ) +{ + M[0] = M[5] = M[10] = M[15] = 1.0; + M[1] = M[2] = M[3] = M[4] = M[6] = M[7] = M[8] = M[9] = M[11] = M[12] = M[13] = M[14] = 0.0; +} + +/** + * Multiplies a 4x4 matrices in OpenGL + * (column-major) order + * + * @param M1 first input matrix + * @param M2 second input matrix + * @param Mout output matrix + * + */ +template +inline void MMult(const T *M1, + const T *M2, + T *Mout) +{ + Mout[ 0] = M1[ 0]*M2[ 0]+M1[ 4]*M2[ 1]+M1[ 8]*M2[ 2]+M1[12]*M2[ 3]; + Mout[ 1] = M1[ 1]*M2[ 0]+M1[ 5]*M2[ 1]+M1[ 9]*M2[ 2]+M1[13]*M2[ 3]; + Mout[ 2] = M1[ 2]*M2[ 0]+M1[ 6]*M2[ 1]+M1[10]*M2[ 2]+M1[14]*M2[ 3]; + Mout[ 3] = M1[ 3]*M2[ 0]+M1[ 7]*M2[ 1]+M1[11]*M2[ 2]+M1[15]*M2[ 3]; + Mout[ 4] = M1[ 0]*M2[ 4]+M1[ 4]*M2[ 5]+M1[ 8]*M2[ 6]+M1[12]*M2[ 7]; + Mout[ 5] = M1[ 1]*M2[ 4]+M1[ 5]*M2[ 5]+M1[ 9]*M2[ 6]+M1[13]*M2[ 7]; + Mout[ 6] = M1[ 2]*M2[ 4]+M1[ 6]*M2[ 5]+M1[10]*M2[ 6]+M1[14]*M2[ 7]; + Mout[ 7] = M1[ 3]*M2[ 4]+M1[ 7]*M2[ 5]+M1[11]*M2[ 6]+M1[15]*M2[ 7]; + Mout[ 8] = M1[ 0]*M2[ 8]+M1[ 4]*M2[ 9]+M1[ 8]*M2[10]+M1[12]*M2[11]; + Mout[ 9] = M1[ 1]*M2[ 8]+M1[ 5]*M2[ 9]+M1[ 9]*M2[10]+M1[13]*M2[11]; + Mout[10] = M1[ 2]*M2[ 8]+M1[ 6]*M2[ 9]+M1[10]*M2[10]+M1[14]*M2[11]; + Mout[11] = M1[ 3]*M2[ 8]+M1[ 7]*M2[ 9]+M1[11]*M2[10]+M1[15]*M2[11]; + Mout[12] = M1[ 0]*M2[12]+M1[ 4]*M2[13]+M1[ 8]*M2[14]+M1[12]*M2[15]; + Mout[13] = M1[ 1]*M2[12]+M1[ 5]*M2[13]+M1[ 9]*M2[14]+M1[13]*M2[15]; + Mout[14] = M1[ 2]*M2[12]+M1[ 6]*M2[13]+M1[10]*M2[14]+M1[14]*M2[15]; + Mout[15] = M1[ 3]*M2[12]+M1[ 7]*M2[13]+M1[11]*M2[14]+M1[15]*M2[15]; +} + +template +inline void MMult(const T *M1, + const T *M2, + float *Mout) +{ + Mout[ 0] = M1[ 0]*M2[ 0]+M1[ 4]*M2[ 1]+M1[ 8]*M2[ 2]+M1[12]*M2[ 3]; + Mout[ 1] = M1[ 1]*M2[ 0]+M1[ 5]*M2[ 1]+M1[ 9]*M2[ 2]+M1[13]*M2[ 3]; + Mout[ 2] = M1[ 2]*M2[ 0]+M1[ 6]*M2[ 1]+M1[10]*M2[ 2]+M1[14]*M2[ 3]; + Mout[ 3] = M1[ 3]*M2[ 0]+M1[ 7]*M2[ 1]+M1[11]*M2[ 2]+M1[15]*M2[ 3]; + Mout[ 4] = M1[ 0]*M2[ 4]+M1[ 4]*M2[ 5]+M1[ 8]*M2[ 6]+M1[12]*M2[ 7]; + Mout[ 5] = M1[ 1]*M2[ 4]+M1[ 5]*M2[ 5]+M1[ 9]*M2[ 6]+M1[13]*M2[ 7]; + Mout[ 6] = M1[ 2]*M2[ 4]+M1[ 6]*M2[ 5]+M1[10]*M2[ 6]+M1[14]*M2[ 7]; + Mout[ 7] = M1[ 3]*M2[ 4]+M1[ 7]*M2[ 5]+M1[11]*M2[ 6]+M1[15]*M2[ 7]; + Mout[ 8] = M1[ 0]*M2[ 8]+M1[ 4]*M2[ 9]+M1[ 8]*M2[10]+M1[12]*M2[11]; + Mout[ 9] = M1[ 1]*M2[ 8]+M1[ 5]*M2[ 9]+M1[ 9]*M2[10]+M1[13]*M2[11]; + Mout[10] = M1[ 2]*M2[ 8]+M1[ 6]*M2[ 9]+M1[10]*M2[10]+M1[14]*M2[11]; + Mout[11] = M1[ 3]*M2[ 8]+M1[ 7]*M2[ 9]+M1[11]*M2[10]+M1[15]*M2[11]; + Mout[12] = M1[ 0]*M2[12]+M1[ 4]*M2[13]+M1[ 8]*M2[14]+M1[12]*M2[15]; + Mout[13] = M1[ 1]*M2[12]+M1[ 5]*M2[13]+M1[ 9]*M2[14]+M1[13]*M2[15]; + Mout[14] = M1[ 2]*M2[12]+M1[ 6]*M2[13]+M1[10]*M2[14]+M1[14]*M2[15]; + Mout[15] = M1[ 3]*M2[12]+M1[ 7]*M2[13]+M1[11]*M2[14]+M1[15]*M2[15]; +} + +/** + * Transforms a vactor with a matrix (P = M * V) + * @param M the transformation matrix + * @param v the initial vector + * @param p the transformt vector + */ +template +inline void VTrans(const T *M, const T *V, T *P) +{ + P[0] = M[0] * V[0] + M[4] * V[1] + M[8] * V[2] + M[12]; + P[1] = M[1] * V[0] + M[5] * V[1] + M[9] * V[2] + M[13]; + P[2] = M[2] * V[0] + M[6] * V[1] + M[10] * V[2] + M[14]; +} + +/** + * Converts an Euler angle to a 3x3 matrix + * + * @param rPosTheta vector of Euler angles + * @param alignxf 3x3 matrix corresponding to the Euler angles + */ +inline void EulerToMatrix3(const double *rPosTheta, double *alignxf) +{ + double sx = sin(rPosTheta[0]); + double cx = cos(rPosTheta[0]); + double sy = sin(rPosTheta[1]); + double cy = cos(rPosTheta[1]); + double sz = sin(rPosTheta[2]); + double cz = cos(rPosTheta[2]); + + alignxf[0] = cy*cz; + alignxf[1] = sx*sy*cz + cx*sz; + alignxf[2] = -cx*sy*cz + sx*sz; + alignxf[3] = -cy*sz; + alignxf[4] = -sx*sy*sz + cx*cz; + alignxf[5] = cx*sy*sz + sx*cz; + alignxf[6] = sy; + alignxf[7] = -sx*cy; + alignxf[8] = cx*cy; +} + +/** + * Calculates the determinant of a 3x3 matrix + * + * @param M input 3x3 matrix + * @return determinant of input matrix + */ +template +inline double M3det( const T *M ) +{ + double det; + det = (double)(M[0] * ( M[4]*M[8] - M[7]*M[5] ) + - M[1] * ( M[3]*M[8] - M[6]*M[5] ) + + M[2] * ( M[3]*M[7] - M[6]*M[4] )); + return ( det ); +} + +/** + * Inverts a 3x3 matrix + * + * @param Min input 3x3 matrix + * @param Mout output 3x3 matrix + */ +template +inline void M3inv( const T *Min, T *Mout ) +{ + double det = M3det( Min ); + + if ( fabs( det ) < 0.0005 ) { + M3identity( Mout ); + return; + } + + Mout[0] = (double)( Min[4]*Min[8] - Min[5]*Min[7] ) / det; + Mout[1] = (double)(-( Min[1]*Min[8] - Min[7]*Min[2] )) / det; + Mout[2] = (double)( Min[1]*Min[5] - Min[4]*Min[2] ) / det; + + Mout[3] = (double)(-( Min[3]*Min[8] - Min[5]*Min[6] )) / det; + Mout[4] = (double)( Min[0]*Min[8] - Min[6]*Min[2] ) / det; + Mout[5] = (double)(-( Min[0]*Min[5] - Min[3]*Min[2] )) / det; + + Mout[6] = (double) ( Min[3]*Min[7] - Min[6]*Min[4] ) / det; + Mout[7] = (double)(-( Min[0]*Min[7] - Min[6]*Min[1] )) / det; + Mout[8] = (double) ( Min[0]*Min[4] - Min[1]*Min[3] ) / det; +} + + +/** + * Converts a pose into a RT matrix + * @param *rPos Pointer to the position (double[3]) + * @param *rPosTheta Pointer to the angles (double[3]) + * @param *alignxf The calculated matrix + */ +inline void EulerToMatrix4(const double *rPos, const double *rPosTheta, double *alignxf) +{ + double sx = sin(rPosTheta[0]); + double cx = cos(rPosTheta[0]); + double sy = sin(rPosTheta[1]); + double cy = cos(rPosTheta[1]); + double sz = sin(rPosTheta[2]); + double cz = cos(rPosTheta[2]); + + alignxf[0] = cy*cz; + alignxf[1] = sx*sy*cz + cx*sz; + alignxf[2] = -cx*sy*cz + sx*sz; + alignxf[3] = 0.0; + alignxf[4] = -cy*sz; + alignxf[5] = -sx*sy*sz + cx*cz; + alignxf[6] = cx*sy*sz + sx*cz; + alignxf[7] = 0.0; + alignxf[8] = sy; + alignxf[9] = -sx*cy; + alignxf[10] = cx*cy; + + alignxf[11] = 0.0; + + alignxf[12] = rPos[0]; + alignxf[13] = rPos[1]; + alignxf[14] = rPos[2]; + alignxf[15] = 1; +} + +/** + * Converts a 4x4 matrix to Euler angles. + * + * @param alignxf input 4x4 matrix + * @param rPosTheta output 3-vector of Euler angles + * @param rPos output vector of trnaslation (position) if set + * + */ +static inline void Matrix4ToEuler(const double *alignxf, double *rPosTheta, double *rPos = 0) +{ + + double _trX, _trY; + + if(alignxf[0] > 0.0) { + rPosTheta[1] = asin(alignxf[8]); + } else { + rPosTheta[1] = M_PI - asin(alignxf[8]); + } + // rPosTheta[1] = asin( alignxf[8]); // Calculate Y-axis angle + + double C = cos( rPosTheta[1] ); + if ( fabs( C ) > 0.005 ) { // Gimball lock? + _trX = alignxf[10] / C; // No, so get X-axis angle + _trY = -alignxf[9] / C; + rPosTheta[0] = atan2( _trY, _trX ); + _trX = alignxf[0] / C; // Get Z-axis angle + _trY = -alignxf[4] / C; + rPosTheta[2] = atan2( _trY, _trX ); + } else { // Gimball lock has occurred + rPosTheta[0] = 0.0; // Set X-axis angle to zero + _trX = alignxf[5]; //1 // And calculate Z-axis angle + _trY = alignxf[1]; //2 + rPosTheta[2] = atan2( _trY, _trX ); + } + + rPosTheta[0] = rPosTheta[0]; + rPosTheta[1] = rPosTheta[1]; + rPosTheta[2] = rPosTheta[2]; + + if (rPos != 0) { + rPos[0] = alignxf[12]; + rPos[1] = alignxf[13]; + rPos[2] = alignxf[14]; + } +} + + +/** + * Sets a 3x3 matrix to the identity matrix + * + * @param M input 3x3 matrix + */ +template +static inline void M3identity( T *M ) +{ + M[0] = M[4] = M[8] = 1.0; + M[1] = M[2] = M[3] = M[5] = M[6] = M[7] = 0.0; +} + +/** + * Gets the current time (in ms) + * + * @return current time (in ms) + */ +static inline unsigned long GetCurrentTimeInMilliSec() +{ + static unsigned long milliseconds; +#ifdef _MSC_VER + SYSTEMTIME stime; + GetSystemTime(&stime); + milliseconds = ((stime.wHour * 60 + stime.wMinute) * 60 + stime.wSecond) * 1000 + stime.wMilliseconds; +#else + static struct timeval tv; + gettimeofday(&tv, NULL); + milliseconds = tv.tv_sec * 1000 + tv.tv_usec / 1000; +#endif + return milliseconds; +} + +/** + * generates random numbers in [0..rnd] + * + * @param rnd maximum number + * @return random number between 0 and rnd + */ +inline int rand(int rnd) +{ + return (int) ((double)rnd * (double)std::rand() / (RAND_MAX + 1.0)); +} + +/** + * generates unsigned character random numbers in [0..rnd] + * + * @param rnd maximum number + * @return random number between 0 and rnd + */ +inline unsigned char randUC(unsigned char rnd) +{ + return (unsigned char) ((float)rnd * std::rand() / (RAND_MAX + 1.0)); +} + +/** + * Computes the angle between 2 points in polar coordinates + */ +inline double polardist(double* p, double *p2) { + double stheta = sin(p[0]) * sin(p2[0]); + double myd2 = acos( stheta * cos(p[1]) * cos(p2[1]) + + stheta * sin(p[1]) * sin(p2[1]) + + cos(p[0]) * cos(p2[0])); + return myd2; +} + + + +inline void toKartesian(double *polar, double *kart) { + kart[0] = polar[2] * cos( polar[1] ) * sin( polar[0] ); + kart[1] = polar[2] * sin( polar[1] ) * sin( polar[0] ); + kart[2] = polar[2] * cos( polar[0] ); + +} + +/** + * Transforms a point in cartesian coordinates into polar + * coordinates + */ + +inline void toPolar(double *n, double *polar) { + double phi, theta, rho; + rho = Len(n); + Normalize3(n); + + // if(fabs(1 - fabs(n[1])) < 0.001) { + // cout << "Y " << n[0] << " " << n[1] << " " << n[2] << endl; + + phi = acos(n[2]); + //if ( fabs(phi) < 0.0001) phi = 0.0001; + //if ( fabs(M_PI - phi) < 0.0001) phi = 0.0001; + + double theta0; + + if(fabs(phi) < 0.0001) { + theta = 0.0; + } else if(fabs(M_PI - phi) < 0.0001) { + theta = 0.0; + } else { + if(fabs(n[0]/sin(phi)) > 1.0) { + if(n[0]/sin(phi) < 0) { + theta0 = M_PI; + } else { + theta0 = 0.0; + } + } else { + theta0 = acos(n[0]/sin(phi)); + + } + + + double sintheta = n[1]/sin(phi); + + double EPS = 0.0001; + + if(fabs(sin(theta0) - sintheta) < EPS) { + theta = theta0; + } else if(fabs( sin( 2*M_PI - theta0 ) - sintheta ) < EPS) { + theta = 2*M_PI - theta0; + } else { + theta = 0; + cout << "Fehler" << endl; + } + + } + /* } else { + theta = 0.0; + phi = 0.0; + }*/ + polar[0] = phi; + polar[1] = theta; + polar[2] = rho; + +} + +/* + * Computes the submatrix without + * row i and column j + * + * @param Min input 4x4 matrix + * @param Mout output 3x3 matrix + * @param i row index i + * @param j column index j + */ +template +static inline void M4_submat(const T *Min, T *Mout, int i, int j ) { + int di, dj, si, sj; + // loop through 3x3 submatrix + for( di = 0; di < 3; di ++ ) { + for( dj = 0; dj < 3; dj ++ ) { + // map 3x3 element (destination) to 4x4 element (source) + si = di + ( ( di >= i ) ? 1 : 0 ); + sj = dj + ( ( dj >= j ) ? 1 : 0 ); + // copy element + Mout[di * 3 + dj] = Min[si * 4 + sj]; + } + } +} + +/* + * Computes the determinant of a 4x4 matrix + * + * @param 4x4 matrix + * @return determinant + */ +template +static inline double M4det(const T *M ) +{ + T det, result = 0, i = 1.0; + T Msub3[9]; + int n; + for ( n = 0; n < 4; n++, i *= -1.0 ) { + M4_submat( M, Msub3, 0, n ); + det = M3det( Msub3 ); + result += M[n] * det * i; + } + return( result ); +} + + +/* + * invert a 4x4 Matrix + * + * @param Min input 4x4 matrix + * @param Mout output matrix + * @return 1 if successful + */ +template +static inline int M4inv(const T *Min, T *Mout ) +{ + T mdet = M4det( Min ); + if ( fabs( mdet ) < 0.0005 ) { + cout << "Error matrix inverting!" << endl; + M4identity( Mout ); + return( 0 ); + } + T mtemp[9]; + int i, j, sign; + for ( i = 0; i < 4; i++ ) { + for ( j = 0; j < 4; j++ ) { + sign = 1 - ( (i +j) % 2 ) * 2; + M4_submat( Min, mtemp, i, j ); + Mout[i+j*4] = ( M3det( mtemp ) * sign ) / mdet; + } + } + return( 1 ); +} + +/* + * transposes a 4x4 matrix + * + * @param Min input 4x4 matrix + * @param Mout output 4x4 matrix + */ +template +static inline int M4transpose(const T *Min, T *Mout ) +{ + Mout[0] = Min[0]; + Mout[4] = Min[1]; + Mout[8] = Min[2]; + Mout[12] = Min[3]; + Mout[1] = Min[4]; + Mout[5] = Min[5]; + Mout[9] = Min[6]; + Mout[13] = Min[7]; + Mout[2] = Min[8]; + Mout[6] = Min[9]; + Mout[10] = Min[10]; + Mout[14] = Min[11]; + Mout[3] = Min[12]; + Mout[7] = Min[13]; + Mout[11] = Min[14]; + Mout[15] = Min[15]; + return( 1 ); +} + +/* +++++++++-------------++++++++++++ + * NAME + * choldc + * DESCRIPTION + * Cholesky Decomposition of a symmetric + * positive definite matrix + * Overwrites lower triangle of matrix + * Numerical Recipes, but has a bit of + * the fancy C++ template thing happening + * +++++++++-------------++++++++++++ */ +static inline bool choldc(double A[3][3], double diag[3]) +{ + for (unsigned int i = 0; i < 3; i++) { + for (unsigned int j = i; j < 3; j++) { + double sum = A[i][j]; + for (int k=i-1; k >= 0; k--) + sum -= A[i][k] * A[j][k]; + if (i == j) { + if (sum < 1.0e-7) + return false; + diag[i] = sqrt(sum); + } else { + A[j][i] = sum / diag[i]; + } + } + } + return true; +} + + +/* +++++++++-------------++++++++++++ + * NAME + * choldc + * DESCRIPTION + * Cholesky Decomposition of a symmetric + * positive definite matrix + * Overwrites lower triangle of matrix + * Numerical Recipes, but has a bit of + * the fancy C++ template thing happening + * +++++++++-------------++++++++++++ */ +static inline bool choldc(unsigned int n, double **A, double *diag) +{ + for (unsigned int i = 0; i < n; i++) { + for (unsigned int j = i; j < n; j++) { + double sum = A[i][j]; + for (int k=i-1; k >= 0; k--) + sum -= A[i][k] * A[j][k]; + if (i == j) { + if (sum < 1.0e-7) + return false; + diag[i] = sqrt(sum); + } else { + A[j][i] = sum / diag[i]; + } + } + } + return true; +} + + +/* +++++++++-------------++++++++++++ + * NAME + * cholsl + * DESCRIPTION + * Solve Ax=B after choldc + * +++++++++-------------++++++++++++ */ +static inline void cholsl(double A[3][3], + double diag[3], + double B[3], + double x[3]) +{ + for (int i=0; i < 3; i++) { + double sum = B[i]; + for (int k=i-1; k >= 0; k--) + sum -= A[i][k] * x[k]; + x[i] = sum / diag[i]; + } + for (int i=2; i >= 0; i--) { + double sum = x[i]; + for (int k=i+1; k < 3; k++) + sum -= A[k][i] * x[k]; + x[i] = sum / diag[i]; + } +} + + +/* +++++++++-------------++++++++++++ + * NAME + * cholsl + * DESCRIPTION + * Solve Ax=B after choldc + * +++++++++-------------++++++++++++ */ +static inline void cholsl(unsigned int n, + double **A, + double *diag, + double *B, + double *x) +{ + for (unsigned int i=0; i < n; i++) { + double sum = B[i]; + for (int k=(int)i-1; k >= 0; k--) + sum -= A[i][k] * x[k]; + x[i] = sum / diag[i]; + } + for (int i=(int)n-1; i >= 0; i--) { + double sum = x[i]; + for (unsigned int k=i+1; k < n; k++) + sum -= A[k][i] * x[k]; + x[i] = sum / diag[i]; + } +} + + +/** + * Transforms a a quaternion and a translation vector into a 4x4 + * Matrix + * + * @param quat input quaternion + * @param t input translation + * @param mat output matrix + */ +static inline void QuatToMatrix4(const double *quat, const double *t, double *mat) +{ + // double q00 = quat[0]*quat[0]; + double q11 = quat[1]*quat[1]; + double q22 = quat[2]*quat[2]; + double q33 = quat[3]*quat[3]; + double q03 = quat[0]*quat[3]; + double q13 = quat[1]*quat[3]; + double q23 = quat[2]*quat[3]; + double q02 = quat[0]*quat[2]; + double q12 = quat[1]*quat[2]; + double q01 = quat[0]*quat[1]; + mat[0] = 1 - 2 * (q22 + q33); + mat[5] = 1 - 2 * (q11 + q33); + mat[10] = 1 - 2 * (q11 + q22); + mat[4] = 2.0*(q12-q03); + mat[1] = 2.0*(q12+q03); + mat[8] = 2.0*(q13+q02); + mat[2] = 2.0*(q13-q02); + mat[9] = 2.0*(q23-q01); + mat[6] = 2.0*(q23+q01); + + mat[3] = mat[7] = mat[11] = 0.0; + + if (t == 0) { + mat[12] = mat[13] = mat[14] = 0.0; + } else { + mat[12] = t[0]; + mat[13] = t[1]; + mat[14] = t[2]; + } + mat[15] = 1.0; +} + + +/** + * Transforms a 4x4 Transformation Matrix into a quaternion + * + * @param mat matrix to be converted + * @param quat resulting quaternion + * @param t resulting translation + */ +static inline void Matrix4ToQuat(const double *mat, double *quat, double *t = 0) +{ + + double T, S, X, Y, Z, W; + T = 1 + mat[0] + mat[5] + mat[10]; + if ( T > 0.00000001 ) { // to avoid large distortions! + + S = sqrt(T) * 2; + X = ( mat[9] - mat[6] ) / S; + Y = ( mat[2] - mat[8] ) / S; + Z = ( mat[4] - mat[1] ) / S; + W = 0.25 * S; + } else if ( mat[0] > mat[5] && mat[0] > mat[10] ) { // Column 0: + S = sqrt( 1.0 + mat[0] - mat[5] - mat[10] ) * 2; + X = 0.25 * S; + Y = (mat[4] + mat[1] ) / S; + Z = (mat[2] + mat[8] ) / S; + W = (mat[9] - mat[6] ) / S; + } else if ( mat[5] > mat[10] ) { // Column 1: + S = sqrt( 1.0 + mat[5] - mat[0] - mat[10] ) * 2; + X = (mat[4] + mat[1] ) / S; + Y = 0.25 * S; + Z = (mat[9] + mat[6] ) / S; + W = (mat[2] - mat[8] ) / S; + } else { // Column 2: + S = sqrt( 1.0 + mat[10] - mat[0] - mat[5] ) * 2; + X = (mat[2] + mat[8] ) / S; + Y = (mat[9] + mat[6] ) / S; + Z = 0.25 * S; + W = (mat[4] - mat[1] ) / S; + } + quat[0] = W; + quat[1] = -X; + quat[2] = -Y; + quat[3] = -Z; + + Normalize4(quat); + if (t != 0) { + t[0] = mat[12]; + t[1] = mat[13]; + t[2] = mat[14]; + } +} + +/** + * Transforms a Quaternion to the corresponding Axis-Angle representation + * + * @param quat 4-vector of quaternion + * gets overridden by the axis/angle representation + */ +static inline void QuatToAA(double *quat){ + //double x, y, z, w; + double sum = 0.0; + + double cos_a, angle, x, y, z, sin_a; + + for(int i = 0; i < 4; i++){ + sum += quat[i]*quat[i]; + } + sum = sqrt(sum); + + //quaternion_normalise( |W,X,Y,Z| ); + cos_a = quat[0]/sum; + angle = acos( cos_a ) * 2; + sin_a = sqrt( 1.0 - cos_a * cos_a ); + if ( fabs( sin_a ) < 0.0005 ) sin_a = 1; + x = quat[1] / sin_a; + y = quat[2] / sin_a; + z = quat[3] / sin_a; + + quat[0] = angle; + quat[1] = x; + quat[2] = y; + quat[3] = z; +} + +/** + * Quaternion Multiplication q1 * q2 = q3 + */ +static inline void QMult(const double *q1, const double *q2, double *q3) { + q3[0] = q1[0] * q2[0] - q1[1] * q2[1] - q1[2] * q2[2] - q1[3] * q2[3]; + q3[1] = q1[0] * q2[1] + q1[1] * q2[0] + q1[2] * q2[3] - q1[3] * q2[2]; + q3[2] = q1[0] * q2[2] - q1[1] * q2[3] + q1[2] * q2[0] + q1[3] * q2[1]; + q3[3] = q1[0] * q2[3] + q1[1] * q2[2] - q1[2] * q2[1] + q1[3] * q2[0]; +} + +/** + * Quaternion SLERP + * http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/slerp/ + */ +static inline void slerp(const double *qa, const double *qb, const double t, double *qm) { + // Calculate angle between them. + double cosHalfTheta = qa[0] * qb[0] + qa[1] * qb[1] + qa[2] * qb[2] + qa[3] * qb[3]; + // if qa=qb or qa=-qb then theta = 0 and we can return qa + if (fabs(cosHalfTheta) >= 1.0) { + qm[0] = qa[0]; + qm[1] = qa[1]; + qm[2] = qa[2]; + qm[3] = qa[3]; + return; + } + // Calculate temporary values. + double halfTheta = acos(cosHalfTheta); + double sinHalfTheta = sqrt(1.0 - cosHalfTheta * cosHalfTheta); + // if theta = 180 degrees then result is not fully defined + // we could rotate around any axis normal to qa or qb + if (fabs(sinHalfTheta) < 0.001){ + qm[0] = (qa[0] * 0.5 + qb[0] * 0.5); + qm[1] = (qa[1] * 0.5 + qb[1] * 0.5); + qm[2] = (qa[2] * 0.5 + qb[2] * 0.5); + qm[3] = (qa[3] * 0.5 + qb[3] * 0.5); + Normalize4(qm); + return; + } + double ratioA = sin((1 - t) * halfTheta) / sinHalfTheta; + double ratioB = sin(t * halfTheta) / sinHalfTheta; + //calculate Quaternion. + qm[0] = (qa[0] * ratioA + qb[0] * ratioB); + qm[1] = (qa[1] * ratioA + qb[1] * ratioB); + qm[2] = (qa[2] * ratioA + qb[2] * ratioB); + qm[3] = (qa[3] * ratioA + qb[3] * ratioB); + Normalize4(qm); +} + +/* taken from ROOT (CERN) + * as well in: + * Effective Sampling and Distance Metrics for 3D Rigid Body Path Planning + * James J. Kuffner + * + * Distance between two rotations in Quaternion form + * Note: The rotation group is isomorphic to a 3-sphere + * with diametrically opposite points identified. + * The (rotation group-invariant) is the smaller + * of the two possible angles between the images of + * the two rotations on that sphere. Thus the distance + * is never greater than pi/2. + */ +inline double quat_dist(double quat1[4], double quat2[4]) { + double chordLength = std::fabs(quat1[0]*quat2[0] + quat1[1]*quat2[1] + quat1[2]*quat2[2] + quat1[3]*quat2[3]); + if (chordLength > 1) chordLength = 1; // in case roundoff fouls us up + return acos(chordLength) / M_PI * 180.0; +} + + + +/** + * Converts a Rotation given by Axis-Angle and a Translation into a + * 4x4 Transformation matrix + * + * @param aa axis and angle aa[0] is the angle + * @param trans vector containing the translation + * @param matrix matrix to be computed + */ +inline void AAToMatrix(double *aa, double *trans, double *matrix ){ + double rcos = cos(aa[0]); + double rsin = sin(aa[0]); + double u = aa[1]; + double v = aa[2]; + double w = aa[3]; + + matrix[0] = rcos + u*u*(1-rcos); + matrix[1] = w * rsin + v*u*(1-rcos); + matrix[2] = -v * rsin + w*u*(1-rcos); + matrix[3] = 0.0; + matrix[4] = -w * rsin + u*v*(1-rcos); + matrix[5] = rcos + v*v*(1-rcos); + matrix[6] = u * rsin + w*v*(1-rcos); + matrix[7] = 0.0; + matrix[8] = v * rsin + u*w*(1-rcos); + matrix[9] = -u * rsin + v*w*(1-rcos); + matrix[10] = rcos + w*w*(1-rcos); + matrix[11] = 0.0; + matrix[12] = trans[0]; + matrix[13] = trans[1]; + matrix[14] = trans[2]; + matrix[15] = 1.0; + +} + + +/** + * Factors matrix A into lower and upper triangular matrices + * (L and U respectively) in solving the linear equation Ax=b. + * + * @param A (input/output) Matrix(1:n, 1:n) In input, matrix to be + * factored. On output, overwritten with lower and + * upper triangular factors. + * + * @param indx (output) Vector(1:n) Pivot vector. Describes how + * the rows of A were reordered to increase + * numerical stability. + * + * @return return int(0 if successful, 1 otherwise) + */ +inline int LU_factor( double A[4][4], int indx[4]) +{ + int M = 4; + int N = 4; + + int i=0,j=0,k=0; + int jp=0; + + double t; + + int minMN = 4; + + for (j = 0; j < minMN; j++) + { + + // find pivot in column j and test for singularity. + + jp = j; + t = fabs(A[j][j]); + for (i = j+1; i < M; i++) + if ( fabs(A[i][j]) > t) + { + jp = i; + t = fabs(A[i][j]); + } + + indx[j] = jp; + + // jp now has the index of maximum element + // of column j, below the diagonal + + if ( A[jp][j] == 0 ) + return 1; // factorization failed because of zero pivot + + + if (jp != j) // swap rows j and jp + for (k = 0; k < N; k++) + { + t = A[j][k]; + A[j][k] = A[jp][k]; + A[jp][k] =t; + } + + if (j < M) // compute elements j+1:M of jth column + { + // note A(j,j), was A(jp,p) previously which was + // guarranteed not to be zero (Label #1) + // + double recp = 1.0 / A[j][j]; + + for (k = j+1; k < M; k++) + A[k][j] *= recp; + } + + if (j < minMN) + { + // rank-1 update to trailing submatrix: E = E - x*y; + // + // E is the region A(j+1:M, j+1:N) + // x is the column vector A(j+1:M,j) + // y is row vector A(j,j+1:N) + + int ii,jj; + + for (ii = j+1; ii < M; ii++) + for (jj = j+1; jj < N; jj++) + A[ii][jj] -= A[ii][j]*A[j][jj]; + } + } + + return 0; +} + +/** + * Solves a linear system via LU after LU factor + * + * @param A 4x4 matrix + * @param indx indices + * @param b 4 vectort + * + * @return 0 + * + */ +inline int LU_solve(const double A[4][4], const int indx[4], double b[4]) +{ + int i,ii=0,ip,j; + int n = 4; + double sum = 0.0; + + for (i = 0; i < n; i++) + { + ip=indx[i]; + sum=b[ip]; + b[ip]=b[i]; + if (ii) + for (j = ii;j <= i-1; j++) + sum -= A[i][j]*b[j]; + else if (sum) ii=i; + b[i]=sum; + } + for (i = n-1; i >= 0; i--) + { + sum=b[i]; + for (j = i+1; j < n; j++) + sum -= A[i][j]*b[j]; + b[i]=sum/A[i][i]; + } + + return 0; +} + +/** + * Calculates the cross product of two 4-vectors + * + * @param x input 1 + * @param y input 2 + * @param T output + * + */ +template +static inline void Cross(const T *x, const T *y, T *result) +{ + result[0] = x[1] * y[2] - x[2] * y[1]; + result[1] = x[2] * y[0] - x[0] * y[2]; + result[2] = x[0] * y[1] - x[1] * y[0]; + return; +} + +/** + * converts a quaternion to Euler angels in the roll pitch yaw system + */ +static inline void QuatRPYEuler(const double *quat, double *euler) +{ + double n = sqrt(quat[0]*quat[0] + quat[1]*quat[1] + quat[2]*quat[2] + quat[3]*quat[3]); + double s = n > 0?2./(n*n):0.; + + double m00, m10, m20, m21, m22; + + + double xs = quat[1]*s; + double ys = quat[2]*s; + double zs = quat[3]*s; + + double wx = quat[0]*xs; + double wy = quat[0]*ys; + double wz = quat[0]*zs; + + double xx = quat[1]*xs; + double xy = quat[1]*ys; + double xz = quat[1]*zs; + + double yy = quat[2]*ys; + double yz = quat[2]*zs; + + double zz = quat[3]*zs; + + m00 = 1.0 - (yy + zz); + m22 = 1.0 - (xx + yy); + + + m10 = xy + wz; + + m20 = xz - wy; + m21 = yz + wx; + + euler[0] = atan2(m21,m22); + euler[1] = atan2(-m20,sqrt(m21*m21 + m22*m22)); + euler[2] = atan2(m10,m00); +} + +/** + * converts from Euler angels in the roll pitch yaw system to a quaternion + */ +static inline void RPYEulerQuat(const double *euler, double *quat) +{ + double sphi = sin(euler[0]); + double stheta = sin(euler[1]); + double spsi = sin(euler[2]); + double cphi = cos(euler[0]); + double ctheta = cos(euler[1]); + double cpsi = cos(euler[2]); + + double _r[3][3] = { //create rotational Matrix + {cpsi*ctheta, cpsi*stheta*sphi - spsi*cphi, cpsi*stheta*cphi + spsi*sphi}, + {spsi*ctheta, spsi*stheta*sphi + cpsi*cphi, spsi*stheta*cphi - cpsi*sphi}, + { -stheta, ctheta*sphi, ctheta*cphi} + }; + +#define MY_MAX(a,b) (((a)>(b))?(a):(b)) + double _w = sqrt(MY_MAX(0, 1 + _r[0][0] + _r[1][1] + _r[2][2]))/2.0; + double _x = sqrt(MY_MAX(0, 1 + _r[0][0] - _r[1][1] - _r[2][2]))/2.0; + double _y = sqrt(MY_MAX(0, 1 - _r[0][0] + _r[1][1] - _r[2][2]))/2.0; + double _z = sqrt(MY_MAX(0, 1 - _r[0][0] - _r[1][1] + _r[2][2]))/2.0; + quat[0] = _w; + quat[1] = (_r[2][1] - _r[1][2])>=0?fabs(_x):-fabs(_x); + quat[2] = (_r[0][2] - _r[2][0])>=0?fabs(_y):-fabs(_y); + quat[3] = (_r[1][0] - _r[0][1])>=0?fabs(_z):-fabs(_z); +} + + +inline void transform3(const double *alignxf, double *point) +{ + double x_neu, y_neu, z_neu; + x_neu = point[0] * alignxf[0] + point[1] * alignxf[4] + point[2] * alignxf[8]; + y_neu = point[0] * alignxf[1] + point[1] * alignxf[5] + point[2] * alignxf[9]; + z_neu = point[0] * alignxf[2] + point[1] * alignxf[6] + point[2] * alignxf[10]; + point[0] = x_neu + alignxf[12]; + point[1] = y_neu + alignxf[13]; + point[2] = z_neu + alignxf[14]; +} + +inline void transform3(const double *alignxf, const double *point, double *tpoint) +{ + tpoint[0] = point[0] * alignxf[0] + point[1] * alignxf[4] + point[2] * alignxf[8] + alignxf[12]; + tpoint[1] = point[0] * alignxf[1] + point[1] * alignxf[5] + point[2] * alignxf[9] + alignxf[13]; + tpoint[2] = point[0] * alignxf[2] + point[1] * alignxf[6] + point[2] * alignxf[10] + alignxf[14]; +} + +inline std::string trim(const std::string& source) +{ + unsigned int start = 0, end = source.size() - 1; + while(source[start] == ' ') start++; + while(source[end] == ' ') end--; + return source.substr(start, end - start + 1); +} + +#endif diff --git a/include/slam6d/graph.h b/include/slam6d/graph.h new file mode 100644 index 0000000..6130ab5 --- /dev/null +++ b/include/slam6d/graph.h @@ -0,0 +1,73 @@ +/** @file + * @brief The 6D Lu Milios style SLAM in 6D + * + * @author Dorit Borrman. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Jan Elseberg. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __GRAPH_H__ +#define __GRAPH_H__ + +#include +using std::vector; +#include +using std::string; +#include +using std::ostream; + +#include + +/* Boost graph declaration */ +using boost::edge_weight_t; +typedef boost::adjacency_list < + boost::listS, boost::vecS, boost::undirectedS, + boost::no_property, + boost::property < edge_weight_t, double > > + graph_t; + +/** + * @brief This class represent a directed network. + * Each node corresponds to a laser scan. + */ +class Graph { + +public: + + Graph(); + Graph(const string &netfile); + Graph(int nrScans, bool loop); + Graph(double cldist, int loopsize); + Graph(int nodes, double cldist2, int loopsize); + + int getLink(int i, int fromTo); + void addLink(int i, int j); + + void setNrScans(int _nrScans); + int getNrScans(); + int getNrLinks(); + + int getStart(); + int getEnd(); + + friend ostream& operator<<(ostream& os, Graph* gr); + +private: + /** + * The basic network structure + */ + vector from, to; + + /** + * The number of scans contained in this Graph + */ + int nrScans; + + /** + * The very first Scan + */ + int start; +}; + +#endif diff --git a/include/slam6d/graphHOG-Man.h b/include/slam6d/graphHOG-Man.h new file mode 100644 index 0000000..5145973 --- /dev/null +++ b/include/slam6d/graphHOG-Man.h @@ -0,0 +1,61 @@ +/** + * @file HOG-Man wrapper + * @author Jochen Sprickerhof. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __GRAPH_HOGMAN_H__ +#define __GRAPH_HOGMAN_H__ + +#include "graphSlam6D.h" + +class graphHOGMan : public graphSlam6D { + +public: + /** + * Constructor (default) + */ + graphHOGMan() {}; + /** + * Constructor + * + * @param my_icp6Dminimizer Pointer to ICP minimization functor + * @param mdm Maximum PtoP distance to which point pairs are collected for ICP + * @param max_dist_match Maximum PtoP distance to which point pairs are collected for LUM + * @param max_num_iterations Maximal number of iterations for ICP + * @param quiet Suspesses all output to std out + * @param meta Indicates if metascan matching has to be used + * @param rnd Indicates if randomization has to be used + * @param eP Extrapolate odometry? + * @param anim Animate which frames? + * @param epsilonICP Termination criterion for ICP + * @param nns_method Which nearest neigbor search method shall we use + * @param epsilonLUM Termination criterion for LUM + */ + graphHOGMan(icp6Dminimizer *my_icp6Dminimizer, + double mdm = 25.0, + double max_dist_match = 25.0, + int max_num_iterations = 50, + bool quiet = false, + bool meta = false, + int rnd = 1, + bool eP = true, + int anim = -1, + double epsilonICP = 0.0000001, + int nns_method = simpleKD, + double epsilonLUM = 0.5) + : graphSlam6D(my_icp6Dminimizer, + mdm, max_dist_match, + max_num_iterations, quiet, meta, rnd, + eP, anim, epsilonICP, nns_method, epsilonLUM) + { } + + virtual ~graphHOGMan() + { + delete my_icp; + } + + double doGraphSlam6D(Graph gr, vector MetaScan, int nrIt); + +}; + +#endif diff --git a/include/slam6d/graphSlam6D.h b/include/slam6d/graphSlam6D.h new file mode 100644 index 0000000..6bb19bb --- /dev/null +++ b/include/slam6d/graphSlam6D.h @@ -0,0 +1,106 @@ +/** @file + * @brief Implementation of the virtual functor for graphslam + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __GRAPHSLAM_6D_H__ +#define __GRAPHSLAM_6D_H__ + +#include +using std::vector; +#include +using std::map; +/*#include +using std::pair;*/ + +#include "icp6D.h" +#include "graph.h" +#include "newmat/newmatio.h" +#include "sparse/csparse.h" + +typedef vector vPtPair; ///< just a typedef: vPtPair = vector of type PtPair +using namespace NEWMAT; +typedef pair uipair; +typedef pair< uipair, Matrix* > uimpair; + + +class GraphMatrix { + public: + void add(const unsigned int i, const unsigned int j, Matrix &Cij); + void subtract(const unsigned int i, const unsigned int j, Matrix &Cij); + void print() ; + void convertToCS(cs* T); + + ~GraphMatrix(); + + + private: + map< uipair, Matrix* > matrix; + map< uipair, Matrix* >::iterator it; +}; + +class graphSlam6D { + +public: + /** + * Constructor + */ + graphSlam6D() { }; + + graphSlam6D(icp6Dminimizer *my_icp6Dminimizer, + double mdm, double max_dist_match, + int max_num_iterations, bool quiet, bool meta, int rnd, + bool eP, int anim, double epsilonICP, int nns_method, double epsilonLUM); + + /** + * Destructor + */ + virtual ~graphSlam6D(); + + virtual double doGraphSlam6D(Graph gr, vector MetaScan, int nrIt) = 0; + + void matchGraph6Dautomatic(vector MetaScan, int nrIt, double cldist, int loopsize); + void matchGraph6Dautomatic(vector MetaScan, int nrIt, int clpairs, int loopsize); + Graph *computeGraph6Dautomatic(vector allScans, int clpairs); + + NEWMAT::ColumnVector solveSparseCholesky(GraphMatrix *G, const NEWMAT::ColumnVector &B); + NEWMAT::ColumnVector solveSparseCholesky(const NEWMAT::Matrix &G, const NEWMAT::ColumnVector &B); + NEWMAT::ColumnVector solveSparseQR(const NEWMAT::Matrix &G, const NEWMAT::ColumnVector &B); + NEWMAT::ColumnVector solveCholesky(const NEWMAT::Matrix &G, const NEWMAT::ColumnVector &B); + NEWMAT::ColumnVector solve(const NEWMAT::Matrix &G, const NEWMAT::ColumnVector &B); + + void writeMatrixPGM(const NEWMAT::Matrix &G); + void set_mdmll(double mdmll); + inline void set_quiet(bool _quiet) { quiet = _quiet;}; + +protected: + /** + * pointer to the ICP framework + */ + icp6D *my_icp; + + /** + * the epsilon for LUM + */ + double epsilonLUM; + + /** + * the maximal distance (^2 !!!) for matching in LUM + */ + double max_dist_match2_LUM; + + /** + * indicates the NNS method being used + */ + int nns_method; + + /** + * be quiet + */ + bool quiet; + + + long ctime; +}; + +#endif diff --git a/include/slam6d/graphToro.h b/include/slam6d/graphToro.h new file mode 100644 index 0000000..0c7f5ee --- /dev/null +++ b/include/slam6d/graphToro.h @@ -0,0 +1,61 @@ +/** + * @file TORO wrapper + * @author Jochen Sprickerhof. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __GRAPH_TORO_H__ +#define __GRAPH_TORO_H__ + +#include "graphSlam6D.h" + +class graphToro : public graphSlam6D { + +public: + /** + * Constructor (default) + */ + graphToro() {}; + /** + * Constructor + * + * @param my_icp6Dminimizer Pointer to ICP minimization functor + * @param mdm Maximum PtoP distance to which point pairs are collected for ICP + * @param max_dist_match Maximum PtoP distance to which point pairs are collected for LUM + * @param max_num_iterations Maximal number of iterations for ICP + * @param quiet Suspesses all output to std out + * @param meta Indicates if metascan matching has to be used + * @param rnd Indicates if randomization has to be used + * @param eP Extrapolate odometry? + * @param anim Animate which frames? + * @param epsilonICP Termination criterion for ICP + * @param nns_method Which nearest neigbor search method shall we use + * @param epsilonLUM Termination criterion for LUM + */ + graphToro(icp6Dminimizer *my_icp6Dminimizer, + double mdm = 25.0, + double max_dist_match = 25.0, + int max_num_iterations = 50, + bool quiet = false, + bool meta = false, + int rnd = 1, + bool eP = true, + int anim = -1, + double epsilonICP = 0.0000001, + int nns_method = simpleKD, + double epsilonLUM = 0.5) + : graphSlam6D(my_icp6Dminimizer, + mdm, max_dist_match, + max_num_iterations, quiet, meta, rnd, + eP, anim, epsilonICP, nns_method, epsilonLUM) + { } + + virtual ~graphToro() + { + delete my_icp; + } + + double doGraphSlam6D(Graph gr, vector MetaScan, int nrIt); + +}; + +#endif diff --git a/include/slam6d/icp6D.h b/include/slam6d/icp6D.h new file mode 100644 index 0000000..524a171 --- /dev/null +++ b/include/slam6d/icp6D.h @@ -0,0 +1,135 @@ +/** @file + * @brief Representation of 3D scan matching with ICP + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __ICP6D_H__ +#define __ICP6D_H__ + +#include +using std::vector; + +#include "newmat/newmat.h" +//using namespace NEWMAT; + +#include "slam6d/scan.h" +#include "slam6d/icp6Dminimizer.h" + +/** + * @brief Representation of 3D scan matching with ICP. + * + * Manages the matching of 3D scans. + * Important values, such as maximal matching distance, + * maximal number of iterations, etc. + * are specified in the constructor. + */ +class icp6D { + +public: + icp6D(icp6Dminimizer *my_icp6Dminimizer, + double max_dist_match = 25.0, + int max_num_iterations = 50, + bool quiet = false, + bool meta = false, + int rnd = 1, + bool eP = true, + int anim = -1, + double epsilonICP = 0.0000001, + int nns_method = simpleKD, + bool cuda_enabled = false, + bool cad_matching = false); + + /** + * Destructor (empty, but needed, because virtual) + */ + virtual ~icp6D() {}; + + void doICP(vector allScans); + virtual int match(Scan* PreviousScan, Scan* CurrentScan); + void covarianceEuler(Scan *scan1, Scan *scan2, NEWMAT::Matrix *C); + void covarianceQuat(Scan *scan1, Scan *scan2, NEWMAT::Matrix *C); + double Point_Point_Error(Scan* PreviousScan, Scan* CurrentScan, double max_dist_match, unsigned int *nrp=0); + + inline int get_rnd(); + inline bool get_meta(); + inline int get_anim(); + inline int get_nns_method(); + inline void set_anim(int anim); + inline double get_max_dist_match2(); + inline void set_max_dist_match2(double max_dist_match2); + inline void set_max_num_iterations(int max_num_iterations); + inline void set_cad_matching (bool cad_matching); + inline bool get_cad_matching (void); + +protected: + + /** + * suppress output to cout + */ + bool quiet; + + /** + * take every rnd point for matching + */ + int rnd; + + /** + * extrapolate odometry + */ + bool eP; + + /** + * match against all scans (= meta scan), or against the last scan only + */ + bool meta; + + /** + * specifies which NNS method should be used + */ + int nns_method; + + /** + * specifies if the ANN trees have to be built + */ + bool cuda_enabled; + + /** + * the maximal distance (^2 !!!) for matching + */ + double max_dist_match2; + + /** + * the maximal number of iterations + */ + int max_num_iterations; + + /** + * write anim'th animation frame + */ + int anim; + + /** + * epsilon for stopping ICP algorithm ( convergence criterium ) + */ + double epsilonICP; + + /** + * ptr to ICP error function minimizer functor + */ + icp6Dminimizer *my_icp6Dminimizer; + + /** + * Maximum number of points in all scans + */ + unsigned int max_scn_size; //FIXME -> update with metascan + + /** + * determines if CAD models are matched against one scan + */ + bool cad_matching; +}; + +#include "icp6D.icc" + +#endif diff --git a/include/slam6d/icp6D.icc b/include/slam6d/icp6D.icc new file mode 100644 index 0000000..3de444e --- /dev/null +++ b/include/slam6d/icp6D.icc @@ -0,0 +1,98 @@ +/** + * @file + * @brief Implementation of 3D scan matching with ICP + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + + +/** + * Will return the maximal number of randomization + * + * @return the maximal number of iterations + */ +inline int icp6D::get_rnd() +{ + return rnd; +} + +/** + * Will return weather to use the meta scan + * + * @return the maximal number of iterations + */ +inline bool icp6D::get_meta() +{ + return meta; +} + +/** + * Will return the anim flag + * + * @return the anim flag + */ +inline int icp6D::get_anim() { + return anim; +} + +/** + * Will return the used nearest neigbor search method + * + * @return the nns_method number + */ +inline int icp6D::get_nns_method() +{ + return nns_method; +} + +/** + * Set the anim flag + * + * @param anim Animate which frames? + */ +inline void icp6D::set_anim(int anim) { + this->anim = anim; +} + +/** + * Get the maximal distance for matching + * + * @return the maximal distance for matching + */ +inline double icp6D::get_max_dist_match2() { + return max_dist_match2; +} + +/** + * Set the maximal distance for matching + * + * @param max_dist_match2 the maximal distance (^2 !!!) for matching + */ +inline void icp6D::set_max_dist_match2(double max_dist_match2) { + this->max_dist_match2 = max_dist_match2; +} + +/** + * Set the Maximum number of iterations + * + * @param max_num_iterations Maximum number of iterations + */ +inline void icp6D::set_max_num_iterations(int max_num_iterations) { + this->max_num_iterations = max_num_iterations; +} + +/** + * @brief Enable / Disable CAD matching (i.e. matching only against first scan) + * + * @param cad_matching The new value to determine if CAD matching should + * be done + */ +inline void icp6D::set_cad_matching (bool cad_matching) +{ + this->cad_matching = cad_matching; +} + +inline bool icp6D::get_cad_matching (void) +{ + return this->cad_matching; +} diff --git a/include/slam6d/icp6Dapx.h b/include/slam6d/icp6Dapx.h new file mode 100644 index 0000000..addfb7f --- /dev/null +++ b/include/slam6d/icp6Dapx.h @@ -0,0 +1,42 @@ +/** @file + * @brief Definition of the ICP error function minimization + * @author Andreas Nuechter. Jacobs University Bremen gGmbH, Germany + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __ICP6DAPX_H__ +#define __ICP6DAPX_H__ + +#include "icp6Dminimizer.h" + +/** + * @brief Implementation of the ICP error function minimization via approximation + */ +class icp6D_APX : public icp6Dminimizer +{ +public: + /** + * Constructor + */ + icp6D_APX(bool quiet = false) : icp6Dminimizer(quiet) {}; + /** + * Destructor + */ + virtual ~icp6D_APX() {}; + + double Point_Point_Align(const vector& Pairs, double *alignxf, + const double centroid_m[3], const double centroid_d[3]); + double Point_Point_Align_Parallel(const int openmp_num_threads, + const unsigned int n[OPENMP_NUM_THREADS], + const double sum[OPENMP_NUM_THREADS], + const double centroid_m[OPENMP_NUM_THREADS][3], + const double centroid_d[OPENMP_NUM_THREADS][3], + const vector pairs[OPENMP_NUM_THREADS], + double *alignxf); + + static void computeRt(const double *x, const double *dx, double *alignxf); + + inline int getAlgorithmID() { return 6; }; +}; + +#endif diff --git a/include/slam6d/icp6Ddual.h b/include/slam6d/icp6Ddual.h new file mode 100644 index 0000000..5e76972 --- /dev/null +++ b/include/slam6d/icp6Ddual.h @@ -0,0 +1,33 @@ +/** @file + * @brief Definition of the ICP error function minimization + * @author Andreas Nuechter. Jacobs University Bremen gGmbH, Germany + * @author ???, Jacobs University Bremen gGmbH, Germany + */ + +#ifndef __ICP6DDUALQUAT_H__ +#define __ICP6DDUALQUAT_H__ + +#include "icp6Dminimizer.h" + +/** + * @brief Implementation of the ICP error function minimization via singular value decomposition + */ +class icp6D_DUAL : public icp6Dminimizer +{ +public: + /** + * Constructor + */ + icp6D_DUAL(bool quiet = false) : icp6Dminimizer(quiet) {}; + /** + * Destructor + */ + virtual ~icp6D_DUAL() {}; + + double Point_Point_Align(const vector& Pairs, double *alignxf, + const double centroid_m[3], const double centroid_d[3]); + + inline int getAlgorithmID() { return 4; }; +}; + +#endif diff --git a/include/slam6d/icp6Dhelix.h b/include/slam6d/icp6Dhelix.h new file mode 100644 index 0000000..dda27f2 --- /dev/null +++ b/include/slam6d/icp6Dhelix.h @@ -0,0 +1,38 @@ +/** @file + * @brief Definition of the ICP error function minimization + * @author Peter Schneider. Institute of Computer Science, University of Koblenz and Landau, Germany. + * @author Andreas Nuechter. Jacobs University Bremen gGmbH, Germany + */ + +#ifndef __ICP6DHELIX_H__ +#define __ICP6DHELIX_H__ + +#include "icp6Dminimizer.h" +#include "newmat/newmatio.h" +using namespace NEWMAT; + +/** + * @brief Implementation of the ICP error function minimization via helix-translation + */ +class icp6D_HELIX : public icp6Dminimizer +{ +public: + /** + * Constructor + */ + icp6D_HELIX(bool quiet = false) : icp6Dminimizer(quiet) {}; + /** + * Destructor + */ + virtual ~icp6D_HELIX() {}; + + double Point_Point_Align(const vector& Pairs, double *alignxf, + const double centroid_m[3], const double centroid_d[3]); + + static void computeRt(const ColumnVector* ccs, const int vectorOffset, double *alignxf); + + inline int getAlgorithmID() { return 5; }; + +}; + +#endif diff --git a/include/slam6d/icp6Dlumeuler.h b/include/slam6d/icp6Dlumeuler.h new file mode 100644 index 0000000..3f71902 --- /dev/null +++ b/include/slam6d/icp6Dlumeuler.h @@ -0,0 +1,32 @@ +/** @file + * @brief Definition of the ICP error function minimization + * @author Andreas Nuechter. Jacobs University Bremen gGmbH, Germany + */ + +#ifndef __ICP6DLUMEULER_H__ +#define __ICP6DLUMEULER_H__ + +#include "icp6Dminimizer.h" + +/** + * @brief Implementation of the ICP error function minimization via singular value decomposition + */ +class icp6D_LUMEULER : public icp6Dminimizer +{ +public: + /** + * Constructor + */ + icp6D_LUMEULER(bool quiet = false) : icp6Dminimizer(quiet) {}; + /** + * Destructor + */ + virtual ~icp6D_LUMEULER() {}; + + double Point_Point_Align(const vector& Pairs, double *alignxf, + const double centroid_m[3], const double centroid_d[3]); + + inline int getAlgorithmID() { return 3; }; +}; + +#endif diff --git a/include/slam6d/icp6Dlumquat.h b/include/slam6d/icp6Dlumquat.h new file mode 100644 index 0000000..1fc51f9 --- /dev/null +++ b/include/slam6d/icp6Dlumquat.h @@ -0,0 +1,32 @@ +/** @file + * @brief Definition of the ICP error function minimization + * @author Andreas Nuechter. Jacobs University Bremen gGmbH, Germany + */ + +#ifndef __ICP6DLUMQUAT_H__ +#define __ICP6DLUMQUAT_H__ + +#include "icp6Dminimizer.h" + +/** + * @brief Implementation of the ICP error function minimization via singular value decomposition + */ +class icp6D_LUMQUAT : public icp6Dminimizer +{ +public: + /** + * Constructor + */ + icp6D_LUMQUAT(bool quiet = false) : icp6Dminimizer(quiet) {}; + /** + * Destructor + */ + virtual ~icp6D_LUMQUAT() {}; + + double Point_Point_Align(const vector& Pairs, double *alignxf, + const double centroid_m[3], const double centroid_d[3]); + + inline int getAlgorithmID() { return 8; }; +}; + +#endif diff --git a/include/slam6d/icp6Dminimizer.h b/include/slam6d/icp6Dminimizer.h new file mode 100644 index 0000000..e3dfadf --- /dev/null +++ b/include/slam6d/icp6Dminimizer.h @@ -0,0 +1,91 @@ +/** @file + * @brief Implementation of the virtual functor for ICP error function minimization + * @author Andreas Nuechter. Jacobs University Bremen gGmbH, Germany + */ + +#ifndef __ICP6DMINIMIZER__ +#define __ICP6DMINIMIZER__ + +#ifdef _MSC_VER +#if !defined _OPENMP && defined OPENMP +#define _OPENMP +#endif +#endif + +#ifdef _OPENMP +#include +#endif + +#include +using std::vector; + +#ifdef _OPENMP +#include +#endif + +#include "ptpair.h" + +#include +using std::cout; +using std::cerr; +using std::endl; +#include + +class icp6Dminimizer { + +public: + /** + * Constructor + */ + icp6Dminimizer(bool quiet = false) { this->quiet = quiet; }; + /** + * Destructor + */ + virtual ~icp6Dminimizer() {}; + + /** + * aligning the point pairs + */ + // a detailed discussion of the minimization techniques used for this + // function is given in: + // Andreas Nuechter, Jan Elseberg, Peter Schneider, and Dietrich Paulus. + // Study of Parameterizations for the Rigid Body Transformations of The + // Scan Registration Problem, Journal Computer Vision and Image + // Understanding (CVIU), Elsevier Science, Volume 114, Issue 8, + // pp. 963-980, August 2010. + virtual double Point_Point_Align(const vector& Pairs, double *alignxf, + const double centroid_m[3], const double centroid_d[3]) = 0; + + /** + * aligning the point pairs parallel algorithms + */ + virtual double Point_Point_Align_Parallel(const int openmp_num_threads, + const unsigned int n[OPENMP_NUM_THREADS], + const double sum[OPENMP_NUM_THREADS], + const double centroid_m[OPENMP_NUM_THREADS][3], + const double centroid_d[OPENMP_NUM_THREADS][3], + const double Si[OPENMP_NUM_THREADS][9], + double *alignxf) + { + cout << "this function is not implemented!!!" << endl; + exit(-1); + } + virtual double Point_Point_Align_Parallel(const int openmp_num_threads, + const unsigned int n[OPENMP_NUM_THREADS], + const double sum[OPENMP_NUM_THREADS], + const double centroid_m[OPENMP_NUM_THREADS][3], + const double centroid_d[OPENMP_NUM_THREADS][3], + const vector pairs[OPENMP_NUM_THREADS], + double *alignxf) + { + cout << "this function is not implemented!!!" << endl; + exit(-1); + } + + virtual int getAlgorithmID() = 0; + +protected: + bool quiet; ///< determines the verbosity +}; + +#endif diff --git a/include/slam6d/icp6Dortho.h b/include/slam6d/icp6Dortho.h new file mode 100644 index 0000000..cbe3ff3 --- /dev/null +++ b/include/slam6d/icp6Dortho.h @@ -0,0 +1,33 @@ +/** @file + * @brief Definition of the ICP error function minimization + * @author Andreas Nuechter. Jacobs University Bremen gGmbH, Germany + * @author Christian Mueller (Knut). Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __ICP6DORTHO_H__ +#define __ICP6DORTHO_H__ + +#include "icp6Dminimizer.h" + +/** + * @brief Implementation of the ICP error function minimization via singular value decomposition + */ +class icp6D_ORTHO : public icp6Dminimizer +{ +public: + /** + * Constructor + */ + icp6D_ORTHO(bool quiet = false) : icp6Dminimizer(quiet) {}; + /** + * Destructor + */ + virtual ~icp6D_ORTHO() {}; + + double Point_Point_Align(const vector& Pairs, double *alignxf, + const double centroid_m[3], const double centroid_d[3]); + + inline int getAlgorithmID() { return 3; }; +}; + +#endif diff --git a/include/slam6d/icp6Dquat.h b/include/slam6d/icp6Dquat.h new file mode 100644 index 0000000..b3935f1 --- /dev/null +++ b/include/slam6d/icp6Dquat.h @@ -0,0 +1,42 @@ +/** @file + * @brief Definition of the ICP error function minimization + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Jacobs University Bremen gGmbH, Germany. + */ + +#ifndef __ICP6DQUAT_H__ +#define __ICP6DQUAT_H__ + +#include "icp6Dminimizer.h" + +/** + * @brief Implementation of the ICP error function minimization via quaternions + */ +class icp6D_QUAT : public icp6Dminimizer +{ +public: + /** constructor */ + icp6D_QUAT(bool quiet = false) : icp6Dminimizer(quiet) {}; + /** destructor */ + virtual ~icp6D_QUAT() {}; + + double Point_Point_Align(const vector& Pairs, double *alignxf, + const double centroid_m[3], const double centroid_d[3]); + double Point_Point_Align_Parallel(const int openmp_num_threads, + const unsigned int n[OPENMP_NUM_THREADS], + const double sum[OPENMP_NUM_THREADS], + const double centroid_m[OPENMP_NUM_THREADS][3], + const double centroid_d[OPENMP_NUM_THREADS][3], + const double Si[OPENMP_NUM_THREADS][9], double *alignxf); + inline int getAlgorithmID() { return 1; }; + +protected: + void quaternion2matrix(double *q, double m[3][3]); + int ferrari(double a, double b, double c, double d, double rts[4]); + int qudrtc(double b, double c, double rts[4]); + double cubic(double p, double q, double r); + void maxEigenVector(double Q[4][4], double ev[4]); + void characteristicPol(double Q[4][4], double c[4]); +}; + +#endif diff --git a/include/slam6d/icp6Dquatscale.h b/include/slam6d/icp6Dquatscale.h new file mode 100644 index 0000000..14645d4 --- /dev/null +++ b/include/slam6d/icp6Dquatscale.h @@ -0,0 +1,29 @@ +/** @file + * @brief Definition of the ICP error function minimization + * @author Flavia Grosan, Alex Tandrau. Jacobs University Bremen gGmbH, Germany. + * @author Andreas Nuechter. Jacobs University Bremen gGmbH, Germany. + */ + +#ifndef __ICP6DQUATSCALE_H__ +#define __ICP6DQUATSCALE_H__ + +#include "icp6Dquat.h" + +/** + * @brief Implementation of the ICP error function minimization via quaternions + */ +class icp6D_QUAT_SCALE : public icp6D_QUAT +{ +public: + /** constructor */ + icp6D_QUAT_SCALE(bool quiet = false) : icp6D_QUAT(quiet) {}; + /** destructor */ + virtual ~icp6D_QUAT_SCALE() {}; + + double Point_Point_Align(const vector& Pairs, double *alignxf, + const double centroid_m[3], const double centroid_d[3]); + inline int getAlgorithmID() { return 9; }; + +}; + +#endif diff --git a/include/slam6d/icp6Dsvd.h b/include/slam6d/icp6Dsvd.h new file mode 100644 index 0000000..3bc9aa6 --- /dev/null +++ b/include/slam6d/icp6Dsvd.h @@ -0,0 +1,40 @@ +/** @file + * @brief Definition of the ICP error function minimization + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Jacobs University Bremen gGmbH, Germany + */ + +#ifndef __ICP6DSVD_H__ +#define __ICP6DSVD_H__ + +#include "icp6Dminimizer.h" + +/** + * @brief Implementation of the ICP error function minimization via singular value decomposition + */ +class icp6D_SVD : public icp6Dminimizer +{ +public: + /** + * Constructor + */ + icp6D_SVD(bool quiet = false) : icp6Dminimizer(quiet) {}; + /** + * Destructor + */ + virtual ~icp6D_SVD() {}; + + double Point_Point_Align(const vector& Pairs, double *alignxf, + const double centroid_m[3], const double centroid_d[3]); + + double Point_Point_Align_Parallel(const int openmp_num_threads, + const unsigned int n[OPENMP_NUM_THREADS], + const double sum[OPENMP_NUM_THREADS], + const double centroid_m[OPENMP_NUM_THREADS][3], + const double centroid_d[OPENMP_NUM_THREADS][3], + const double Si[OPENMP_NUM_THREADS][9], double *alignxf); + + inline int getAlgorithmID() { return 2; }; +}; + +#endif diff --git a/include/slam6d/io_types.h b/include/slam6d/io_types.h new file mode 100644 index 0000000..27fa470 --- /dev/null +++ b/include/slam6d/io_types.h @@ -0,0 +1,30 @@ +/** + * @file + * @brief Scan types and mapping functions. + * + * @author Thomas Escher + */ + +#ifndef IO_TYPES_H +#define IO_TYPES_H + +//! IO types for file formats, distinguishing the use of ScanIOs +enum IOType { + UOS, UOS_MAP, UOS_FRAMES, UOS_MAP_FRAMES, UOS_RGB, OLD, RTS, RTS_MAP, RIEGL_TXT, RIEGL_PROJECT, RIEGL_RGB, RIEGL_BIN, IFP, ZAHN, PLY, WRL, XYZ, ZUF, ASC, IAIS, FRONT, X3D, RXP, KIT, AIS, OCT, TXYZR, XYZR, XYZ_RGB, KS, KS_RGB, STL, LEICA, PCL, PCI, UOS_CAD, VELODYNE, VELODYNE_FRAMES +}; + +//! Data channels in the scans +enum IODataType { + DATA_XYZ = 1<<0, + DATA_RGB = 1<<1, + DATA_REFLECTANCE = 1<<2, + DATA_AMPLITUDE = 1<<3, + DATA_TYPE = 1<<4, + DATA_DEVIATION = 1<<5 +}; + +IOType formatname_to_io_type(const char * string); + +const char * io_type_to_libname(IOType type); + +#endif //IO_TYPES_H diff --git a/include/slam6d/io_utils.h b/include/slam6d/io_utils.h new file mode 100644 index 0000000..29804e7 --- /dev/null +++ b/include/slam6d/io_utils.h @@ -0,0 +1,36 @@ +/** + * @file + * @brief tools for file format processing + * @author Andreas Nuechter. Jacobs University Bremen gGmbH, Germany. + * @author Thomas Escher. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __IO_UTILS_H__ +#define __IO_UTILS_H__ + +#include "slam6d/io_types.h" +#include "slam6d/globals.icc" + +#include +using std::string; +using std::cerr; + +/** + * Make type, start and end a write once only class for parseFormatFile because + * we know the directory only after the type, start and end parameters may have + * been written already, so encapsulate this write once behaviour in this class. + */ +template +class WriteOnce { +public: + WriteOnce(T& value) : value(value), written(false) {} + WriteOnce& operator=(const T& other) { if(!written) { value = other; written = true; } return *this; } + operator T() const { return value; } +private: + T& value; + bool written; +}; + +void parseFormatFile(string& dir, WriteOnce& type, WriteOnce& start, WriteOnce& end); + +#endif diff --git a/include/slam6d/kd.h b/include/slam6d/kd.h new file mode 100644 index 0000000..133f7c2 --- /dev/null +++ b/include/slam6d/kd.h @@ -0,0 +1,94 @@ +/** @file + * @brief Representation of the optimized k-d tree. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Thomas Escher + */ + +#ifndef __KD_H__ +#define __KD_H__ + +#include "slam6d/kdparams.h" +#include "slam6d/searchTree.h" + +#ifdef _MSC_VER +#if !defined _OPENMP && defined OPENMP +#define _OPENMP +#endif +#endif + +#ifdef _OPENMP +#include +#endif + +/** + * @brief The optimized k-d tree. + * + * A kD tree for points, with limited + * capabilities (find nearest point to + * a given point, or to a ray). + **/ +class KDtree : public SearchTree { +public: + KDtree(double **pts, int n); + + virtual ~KDtree(); + + virtual double *FindClosest(double *_p, double maxdist2, int threadNum = 0) const; + +protected: + /** + * storing the parameters of the k-d tree, i.e., the current closest point, + * the distance to the current closest point and the point itself. + * These global variable are needed in this search. + * + * Padded in the parallel case. + */ +#ifdef _OPENMP +#ifdef __INTEL_COMPILER + __declspec (align(16)) static KDParams params[MAX_OPENMP_NUM_THREADS]; +#else + static KDParams params[MAX_OPENMP_NUM_THREADS]; +#endif //__INTEL_COMPILER +#else + static KDParams params[MAX_OPENMP_NUM_THREADS]; +#endif + + /** + * number of points. If this is 0: intermediate node. If nonzero: leaf. + */ + int npts; + + /** + * Cue the standard rant about anon unions but not structs in C++ + */ + union { + /** + * in case of internal node... + */ + struct { + double center[3]; ///< storing the center of the voxel (R^3) + double dx, ///< defining the voxel itself + dy, ///< defining the voxel itself + dz, ///< defining the voxel itself + r2; ///< defining the voxel itself + int splitaxis; ///< defining the kind of splitaxis + KDtree *child1; ///< pointers to the childs + KDtree *child2; ///< pointers to the childs + } node; + /** + * in case of leaf node ... + */ + struct { + /** + * store the value itself + * Here we store just a pointer to the data + */ + double **p; + } leaf; + }; + + void _FindClosest(int threadNum) const; +}; + +#endif diff --git a/include/slam6d/kdManaged.h b/include/slam6d/kdManaged.h new file mode 100644 index 0000000..dbc51b6 --- /dev/null +++ b/include/slam6d/kdManaged.h @@ -0,0 +1,120 @@ +/** @file + * @brief Representation of the optimized k-d tree. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Thomas Escher + */ + +#ifndef __KD_MANAGED_H__ +#define __KD_MANAGED_H__ + +#include "slam6d/kdparams.h" +#include "slam6d/searchTree.h" +#include "slam6d/data_types.h" + +#ifdef _MSC_VER +#if !defined _OPENMP && defined OPENMP +#define _OPENMP +#endif +#endif + +#ifdef _OPENMP +#include +#endif + +#include +#include + +/** + * @brief The optimized k-d tree. + * + * A kD tree for points, with limited + * capabilities (find nearest point to + * a given point, or to a ray). + **/ +class KDtreeManagedBase : public SearchTree { +public: + KDtreeManagedBase(const DataXYZ& pts, unsigned int* indices, unsigned int n); + + virtual ~KDtreeManagedBase(); + + virtual double *FindClosest(double *_p, double maxdist2, int threadNum = 0) const { return 0; } + +protected: + /** + * storing the parameters of the k-d tree, i.e., the current closest point, + * the distance to the current closest point and the point itself. + * These global variable are needed in this search. + * + * Padded in the parallel case. + */ +#ifdef _OPENMP +#ifdef __INTEL_COMPILER + __declspec (align(16)) static KDParams params[MAX_OPENMP_NUM_THREADS]; +#else + static KDParams params[MAX_OPENMP_NUM_THREADS]; +#endif //__INTEL_COMPILER +#else + static KDParams params[MAX_OPENMP_NUM_THREADS]; +#endif + + /** + * number of points. If this is 0: intermediate node. If nonzero: leaf. + */ + int npts; + + /** + * Cue the standard rant about anon unions but not structs in C++ + */ + union { + /** + * in case of internal node... + */ + struct { + double center[3]; ///< storing the center of the voxel (R^3) + double dx, ///< defining the voxel itself + dy, ///< defining the voxel itself + dz, ///< defining the voxel itself + r2; ///< defining the voxel itself + int splitaxis; ///< defining the kind of splitaxis + KDtreeManagedBase *child1; ///< pointers to the childs + KDtreeManagedBase *child2; ///< pointers to the childs + } node; + /** + * in case of leaf node ... + */ + struct { + //! Content is an array of indices to be put into the dynamically aquired data array + unsigned int* p; + } leaf; + }; + + void _FindClosest(const DataXYZ& pts, int threadNum) const; +}; + +class Scan; + +class KDtreeManaged : public KDtreeManagedBase { +public: + KDtreeManaged(Scan* scan); + virtual ~KDtreeManaged() {} + + virtual void lock(); + virtual void unlock(); + + //! Aquires cached data first to pass on to the usual KDtree to process + virtual double* FindClosest(double *_p, double maxdist2, int threadNum = 0) const; +private: + Scan* m_scan; + DataXYZ* m_data; + + //! Mutex for safely reducing points just once in a multithreaded environment + boost::mutex m_mutex_locking; + volatile unsigned int m_count_locking; + + // constructor initializer list hacks + unsigned int* m_temp_indices; + unsigned int* prepareTempIndices(unsigned int n); +}; + +#endif diff --git a/include/slam6d/kdMeta.h b/include/slam6d/kdMeta.h new file mode 100644 index 0000000..12514f8 --- /dev/null +++ b/include/slam6d/kdMeta.h @@ -0,0 +1,137 @@ +/** @file + * @brief Representation of the optimized k-d tree. MetaScan variant. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Thomas Escher + */ + +#ifndef __KD_META_H__ +#define __KD_META_H__ + +#include "kdparams.h" +#include "searchTree.h" +#include "data_types.h" + +#include +#include + +#ifdef _MSC_VER +#if !defined _OPENMP && defined OPENMP +#define _OPENMP +#endif +#endif + +#ifdef _OPENMP +#include +#endif + + + +class Scan; + + + +/** + * @brief The optimized k-d tree. + * + * A kD tree for points, with limited + * capabilities (find nearest point to + * a given point, or to a ray). + **/ +class KDtreeMeta : public SearchTree { +protected: + class Index { + public: + unsigned int s, i; + inline void set(unsigned int _s, unsigned int _i) { s = _s; i = _i; } + }; +public: + KDtreeMeta(); + virtual ~KDtreeMeta(); + + void create(const DataXYZ* const* pts, Index* indices, unsigned int n); + + virtual double *FindClosest(double *_p, double maxdist2, int threadNum = 0) const { return 0; } + +protected: + /** + * storing the parameters of the k-d tree, i.e., the current closest point, + * the distance to the current closest point and the point itself. + * These global variable are needed in this search. + * + * Padded in the parallel case. + */ +#ifdef _OPENMP +#ifdef __INTEL_COMPILER + __declspec (align(16)) static KDParams params[MAX_OPENMP_NUM_THREADS]; +#else + static KDParams params[MAX_OPENMP_NUM_THREADS]; +#endif //__INTEL_COMPILER +#else + static KDParams params[MAX_OPENMP_NUM_THREADS]; +#endif + + /** + * number of points. If this is 0: intermediate node. If nonzero: leaf. + */ + int npts; + + /** + * Cue the standard rant about anon unions but not structs in C++ + */ + union { + /** + * in case of internal node... + */ + struct { + double center[3]; ///< storing the center of the voxel (R^3) + double dx, ///< defining the voxel itself + dy, ///< defining the voxel itself + dz, ///< defining the voxel itself + r2; ///< defining the voxel itself + int splitaxis; ///< defining the kind of splitaxis + KDtreeMeta *child1; ///< pointers to the childs + KDtreeMeta *child2; ///< pointers to the childs + } node; + /** + * in case of leaf node ... + */ + struct { + //! Content is an array of indices to be put into the dynamically aquired data array + Index* p; + } leaf; + }; + + inline double* point(const DataXYZ* const* pts, const Index& i) const { + return (*pts[i.s])[i.i]; + } + + void _FindClosest(const DataXYZ* const* pts, int threadNum) const; +}; + +class KDtreeMetaManaged : public KDtreeMeta { +public: + KDtreeMetaManaged(const vector& scans); + virtual ~KDtreeMetaManaged(); + + virtual void lock(); + virtual void unlock(); + + //! Aquires cached data first to pass on to the usual KDtree to process + virtual double* FindClosest(double *_p, double maxdist2, int threadNum = 0) const; +private: + Scan** m_scans; + DataXYZ** m_data; + unsigned int m_size; + + //! Mutex for safely reducing points just once in a multithreaded environment + boost::mutex m_mutex_locking; + volatile unsigned int m_count_locking; + + // constructor initializer list hacks + Index* m_temp_indices; + Index* prepareTempIndices(const vector& scans); + unsigned int getPointsSize(const vector& scans); +}; + +#endif diff --git a/include/slam6d/kdcache.h b/include/slam6d/kdcache.h new file mode 100644 index 0000000..d0039bd --- /dev/null +++ b/include/slam6d/kdcache.h @@ -0,0 +1,50 @@ +/** + * @file + * @brief Representation of the cache for cached k-d tree search. + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __KD_CACHE_H__ +#define __KD_CACHE_H__ + +#include "searchCache.h" +#include "kdparams.h" + +// just a prototype +class KDtree_cache; +class Scan; + +/** + * @brief cache item + * + * The return value of the cached k-d tree + * is a bundle of the closest point and + * a pointer to the leaf. + **/ +class KDCacheItem : public SearchTreeCacheItem { +public: + KDCacheItem() { node = 0; }; + KDParams param; + KDtree_cache *node; +}; + +/** + * @brief cache + * + * The cache consists of an array of KDCacheItems + * and two Scan numbers. + **/ +class KDCache { +public: +// KDCache() { SourceScanNr = TargetScanNr = 0; item = 0; }; + KDCache() { target = 0; item = 0; }; + KDCacheItem *item; // array of items +// unsigned int SourceScanNr; +// unsigned int TargetScanNr; + Scan const * target; +}; + +#endif + + diff --git a/include/slam6d/kdparams.h b/include/slam6d/kdparams.h new file mode 100644 index 0000000..31fc7cf --- /dev/null +++ b/include/slam6d/kdparams.h @@ -0,0 +1,41 @@ +/** + * @file + * @brief Representation of the parameter of a k-d tree + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __KDPARAMS_H__ +#define __KDPARAMS_H__ + +/** + * @brief Contains the intermediate (static) values of a k-d tree or a cached k-d tree + * + * A parameter class for the latter k-d tree. + * Includes the padding for parallelizetion + * to avoid cache conflicts. + **/ +class KDParams +{ +public: + /** + * pointer to the closest point. size = 4 bytes of 32 bit machines + */ + double *closest; + + /** + * distance to the closest point. size = 8 bytes + */ + double closest_d2; + + /** + * pointer to the point, size = 4 bytes of 32 bit machines + */ + double *p; + + /** + * expand to 128 bytes to avoid false-sharing, 16 bytes from above + 28*4 bytes = 128 bytes + */ + int padding[28]; +}; + +#endif diff --git a/include/slam6d/loopHOG-Man.h b/include/slam6d/loopHOG-Man.h new file mode 100644 index 0000000..c5efc79 --- /dev/null +++ b/include/slam6d/loopHOG-Man.h @@ -0,0 +1,21 @@ +/** + * @file HOG-Man wrapper + * @author Jochen Sprickerhof. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __LOOP_HOG_MAN_H__ +#define __LOOP_HOG_MAN_H__ + +#include "loopSlam6D.h" + +class loopHOGMan : public loopSlam6D { + + public: + loopHOGMan(bool _quiet, icp6Dminimizer *my_icp6Dminimizer, double mdm, int max_num_iterations, + int rnd, bool eP, int anim, double epsilonICP, int nns_method) + : loopSlam6D(_quiet, my_icp6Dminimizer, mdm, max_num_iterations, rnd, eP, anim, epsilonICP, nns_method) {} + + virtual void close_loop(const vector &allScans, int first, int last, graph_t &g); +}; + +#endif diff --git a/include/slam6d/loopSlam6D.h b/include/slam6d/loopSlam6D.h new file mode 100644 index 0000000..fa9cc20 --- /dev/null +++ b/include/slam6d/loopSlam6D.h @@ -0,0 +1,67 @@ +/** @file + * @brief Implementation of the virtual functor for a loop closing algorithm + * @author Jochen Sprickerhof + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __LOOPSLAM6D_H__ +#define __LOOPSLAM6D_H__ + +#include +using std::vector; + +#include "icp6D.h" +#include "icp6Dminimizer.h" +#include "scan.h" +#include "graph.h" + +class loopSlam6D { + +public: + /** + * Constructor + * @param _quiet suppress informative output + * @param my_icp6Dminimizer the used ICP algorithm + * @param mdm maximal distance match for ICP + * @param max_num_iterations Maximal number of iterations for ICP + * @param rnd randomized point selection for ICP + * @param eP Extrapolate odometry + * @param anim animate scan matching + * @param epsilonICP the ICP epsilon + * @param nns_method the k-d tree search + */ + loopSlam6D(bool _quiet, icp6Dminimizer *my_icp6Dminimizer, double mdm, int max_num_iterations, int rnd, bool eP, int anim, double epsilonICP, int nns_method) + { + this->quiet = _quiet; + this->my_icp6D = new icp6D(my_icp6Dminimizer, mdm, max_num_iterations, + quiet, false, rnd, eP, anim, epsilonICP, nns_method); + }; + + /** + * Destructor + */ + virtual ~loopSlam6D() { + delete my_icp6D; + }; + + /** + * virtual loop closing function + * @param allScans all laser scans + * @param first index of first laser scan in the loop + * @param last indes of last laser scan in the loop + * @param g graph for loop optimization + */ + virtual void close_loop(const vector &allScans, int first, int last, graph_t &g) = 0; + +protected: + bool quiet; + + /** + * pointer to the ICP framework + */ + icp6D *my_icp6D; + +}; + +#endif diff --git a/include/slam6d/loopToro.h b/include/slam6d/loopToro.h new file mode 100644 index 0000000..e013c39 --- /dev/null +++ b/include/slam6d/loopToro.h @@ -0,0 +1,21 @@ +/** + * @file TORO wrapper + * @author Jochen Sprickerhof. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __LOOP_TORO_H__ +#define __LOOP_TORO_H__ + +#include "loopSlam6D.h" + +class loopToro : public loopSlam6D { + + public: + loopToro(bool _quiet, icp6Dminimizer *my_icp6Dminimizer, double mdm, int max_num_iterations, + int rnd, bool eP, int anim, double epsilonICP, int nns_method) + : loopSlam6D(_quiet, my_icp6Dminimizer, mdm, max_num_iterations, rnd, eP, anim, epsilonICP, nns_method) {} + + virtual void close_loop(const vector &allScans, int first, int last, graph_t &g); +}; + +#endif diff --git a/include/slam6d/lum6Deuler.h b/include/slam6d/lum6Deuler.h new file mode 100644 index 0000000..85fb793 --- /dev/null +++ b/include/slam6d/lum6Deuler.h @@ -0,0 +1,63 @@ +/** @file + * @brief The 6D Lu Milios style SLAM in 6D + * + * @author Dorit Borrman. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Jan Elseberg. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __LUM6D_EULER_H__ +#define __LUM6D_EULER_H__ + +#include +using std::vector; + +#include "graphSlam6D.h" + +#include "newmat/newmatio.h" + +typedef vector vPtPair; ///< just a typedef: vPtPair = vector of type PtPair + + +/* + * @brief Representation of 3D scan matching with Lu/Milios in 6D. + * + * Reference: D. Borrmann, et al., Globally consistent 3D mapping + * with scan matching, Journal of Robotics and Autonomous + * Systems (2007), + */ +class lum6DEuler : public graphSlam6D { + +public: + /** + * Constructor (default) + */ + lum6DEuler() {}; + lum6DEuler(icp6Dminimizer *my_icp6Dminimizer, + double mdm = 25.0, + double max_dist_match = 25.0, + int max_num_iterations = 50, + bool quiet = false, + bool meta = false, + int rnd = 1, + bool eP = true, + int anim = -1, + double epsilonICP = 0.0000001, + int nns_method = simpleKD, + double epsilonLUM = 0.5); + + virtual ~lum6DEuler(); + + double doGraphSlam6D(Graph gr, vector MetaScan, int nrIt); + + static void covarianceEuler(Scan *first, Scan *second, int nns_method, + int rnd, double max_dist_match2, NEWMAT::Matrix *C, NEWMAT::ColumnVector *CD=0); + +private: + void FillGB3D(Graph *gr, GraphMatrix *G, NEWMAT::ColumnVector* B, vector allScans); +// void CalculateLinks3D(int numLinks, vPtPair **ptpairs, vector * CD , vector * C); + +}; + +#endif diff --git a/include/slam6d/lum6Dquat.h b/include/slam6d/lum6Dquat.h new file mode 100644 index 0000000..7c65e3a --- /dev/null +++ b/include/slam6d/lum6Dquat.h @@ -0,0 +1,61 @@ +/** @file + * @brief The 6D Lu Milios style SLAM in 6D + * + * @author Dorit Borrman. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Jan Elseberg. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __LUM6D_QUAT_H__ +#define __LUM6D_QUAT_H__ + +#include +using std::vector; + +#include "graphSlam6D.h" + +#include "newmat/newmatio.h" + +typedef vector vPtPair; ///< just a typedef: vPtPair = vector of type PtPair + + +/* + * @brief Representation of 3D scan matching with Lu/Milios in 6D. + * + * Reference: D. Borrmann, et al., Globally consistent 3D mapping + * with scan matching, Journal of Robotics and Autonomous + * Systems (2007), + */ +class lum6DQuat : public graphSlam6D { + +public: + /** + * Constructor (default) + */ + lum6DQuat() {}; + lum6DQuat(icp6Dminimizer *my_icp6Dminimizer, + double mdm = 25.0, + double max_dist_match = 25.0, + int max_num_iterations = 50, + bool quiet = false, + bool meta = false, + int rnd = 1, + bool eP = true, + int anim = -1, + double epsilonICP = 0.0000001, + int nns_method = simpleKD, + double epsilonLUM = 0.5); + + virtual ~lum6DQuat(); + + double doGraphSlam6D(Graph gr, vector MetaScan, int nrIt); + static void covarianceQuat(Scan *first, Scan *second, int nns_method, + int rnd, double max_dist_match2, NEWMAT::Matrix *C, NEWMAT::ColumnVector *CD=0); + +private: + void FillGB3D(Graph *gr, NEWMAT::Matrix* G, NEWMAT::ColumnVector* B, vector allScans); + +}; + +#endif diff --git a/include/slam6d/managedScan.h b/include/slam6d/managedScan.h new file mode 100644 index 0000000..64fbefa --- /dev/null +++ b/include/slam6d/managedScan.h @@ -0,0 +1,78 @@ +#ifndef MANAGED_SCAN_H +#define MANAGED_SCAN_H + +#include "scan.h" +#include "scanserver/sharedScan.h" + + + +class ManagedScan : public Scan { +public: + static void openDirectory(const std::string& path, IOType type, + int start, int end = -1); + static void closeDirectory(); + + static std::size_t getMemorySize(); + + virtual ~ManagedScan(); + + virtual void setRangeFilter(double max, double min); + virtual void setHeightFilter(double top, double bottom); + virtual void setReductionParameter(double voxelSize, int nrpts = 0, + PointType pointtype = PointType()); + void setShowReductionParameter(double voxelSize, int nrpts = 0, + PointType pointtype = PointType()); + virtual void setOcttreeParameter(double reduction_voxelSize, + double octtree_voxelSize, PointType pointtype, + bool loadOct, bool saveOct); + + virtual const char* getIdentifier() const { return m_shared_scan->getIdentifier(); } + + virtual DataPointer get(const std::string& identifier); + virtual void get(unsigned int types); + virtual DataPointer create(const std::string& identifier, unsigned int size); + virtual void clear(const std::string& identifier); + + virtual unsigned int readFrames(); + virtual void saveFrames(); + virtual unsigned int getFrameCount(); + virtual void getFrame(unsigned int i, const double*& pose_matrix, AlgoType& type); + +protected: + virtual void createSearchTreePrivate(); + virtual void calcReducedOnDemandPrivate(); + virtual void addFrame(AlgoType type); + +private: + //! Reference to the shared scan + SharedScan* m_shared_scan; + + //! SharedScan vector to be deleted on closeDirectory + static SharedScanVector* shared_scans; + + //! Flag to keep track of whether we have to update/create reduced points at the start + bool m_reduced_ready; + + //! Flag to reset the persistent frames on write actions in slam to avoid a clear call + bool m_reset_frames_on_write; + + //! Voxelsize of the octtree used for reduction + double show_reduction_voxelSize; + + //! Which point to take out of the reduction octtree, 0 for center + int show_reduction_nrpts; + + //! Pointtype used for the reduction octtree + PointType show_reduction_pointtype; + + + ManagedScan(SharedScan* shared_scan); + + //! Create reduced points for show + void calcReducedShow(); + + //! Create Octtree for show + void createOcttree(); +}; + +#endif //MANAGED_SCAN_H diff --git a/include/slam6d/metaScan.h b/include/slam6d/metaScan.h new file mode 100644 index 0000000..507ae01 --- /dev/null +++ b/include/slam6d/metaScan.h @@ -0,0 +1,42 @@ +#ifndef META_SCAN_H +#define META_SCAN_H + +#include "scan.h" + +#include + +class MetaScan : public Scan { +public: + MetaScan(std::vector scans, int nns_method = -1, bool cuda_enabled = false); + virtual ~MetaScan(); + + //! How many scans this meta scan contains + unsigned int size() const; + + //! Return the contained scan + Scan* getScan(unsigned int i) const; + + virtual void setRangeFilter(double max, double min) {} + virtual void setHeightFilter(double top, double bottom) {} + + virtual const char* getIdentifier() const { return "metascan"; } + + virtual DataPointer get(const std::string& identifier) { return DataPointer(0, 0); } + virtual void get(unsigned int types) {} + virtual DataPointer create(const std::string& identifier, unsigned int size) { return DataPointer(0, 0); } + virtual void clear(const std::string& identifier) {} + + virtual unsigned int readFrames() { return 0; } + virtual void saveFrames() {} + virtual unsigned int getFrameCount() { return 0; } + virtual void getFrame(unsigned int i, const double*& pose_matrix, AlgoType& type) {} + +protected: + virtual void createSearchTreePrivate(); + virtual void calcReducedOnDemandPrivate() {} + virtual void addFrame(AlgoType type) {} +private: + std::vector m_scans; +}; + +#endif //META_SCAN_H diff --git a/include/slam6d/metrics.h b/include/slam6d/metrics.h new file mode 100644 index 0000000..96fe916 --- /dev/null +++ b/include/slam6d/metrics.h @@ -0,0 +1,143 @@ +/** + * @file + * @brief Metrics for measuring various aspects of an application + * @author Thomas Escher + */ + +#ifndef METRICS_H +#define METRICS_H + +#include + +#include +#include + +#ifdef _MSC_VER +#include +#else +#include +#endif + +template +class Metric { +public: + //! Reserve a minimum of 1k values to reduced allocation overhead in between + Metric(unsigned int reserve = 1000) { + m_values.reserve(reserve); + m_use_lock = 0; + } + + //! Print the sum of this metric + T sum() const { + T value = 0; + for(typename std::vector::const_iterator it = m_values.begin(); it != m_values.end(); ++it) + value += *it; + return value; + } + + //! Print the average of this metric + T average() const { + if(m_values.size() != 0) + return sum() / (T)(m_values.size()); + else + return (T)0; + } + + std::size_t size() const { + return m_values.size(); + } + + void reset() { + m_values.clear(); + } + + //! If functions will be called in a multithread context, these will enable safety + void set_threadsafety(bool multithreaded) { + boost::lock_guard lock(m_mutex_commit); + if(multithreaded) { + ++m_use_lock; + } else { + --m_use_lock; + } + } + +protected: + inline void commit(const T& value) { + if(m_use_lock > 0) { + boost::lock_guard lock(m_mutex_commit); + m_values.push_back(value); + } else { + m_values.push_back(value); + } + } + +private: + std::vector m_values; + volatile unsigned int m_use_lock; + boost::mutex m_mutex_commit; +}; + +#ifdef _MSC_VER + typedef LARGE_INTEGER Timer; +#else + typedef timeval Timer; +#endif + +/** + * @brief Measures time differences in seconds. + */ +class TimeMetric : public Metric { +public: + TimeMetric(unsigned int reserve = 1000); + + //! Start the timer + Timer start(); + + //! End the timer and commit value + void end(Timer&); + +private: +#ifdef _MSC_VER + static LARGE_INTEGER frequency; + static bool init; +#endif +}; + +/** + * @brief Measures access count or size. + */ +class CounterMetric : public Metric { +public: + CounterMetric(unsigned int reserve = 1000); + void add(unsigned long long value = 1); + +private: +}; + + + +struct ServerMetric { + static TimeMetric scan_loading, cacheio_write_time, cacheio_read_time; + static CounterMetric cacheio_write_size, cacheio_read_size; + static void print(); +}; + +struct ClientMetric { + static TimeMetric + // Scan + // directory loading + read_scan_time, scan_load_time, + // reduce, transform, copy, create tree as part of the reduction and tree preparation + calc_reduced_points_time, transform_time, copy_original_time, create_tree_time, + // new scanserver only times + on_demand_reduction_time, create_metatree_time, + // part of transform dealing with frames + add_frames_time, + // slam6D + matching_time, + // ClientInterface + clientinterface_time, cache_miss_time, allocate_time, frames_time; + static void print(bool scanserver = false); +}; + +#endif //METRICS_H diff --git a/include/slam6d/nnparams.h b/include/slam6d/nnparams.h new file mode 100644 index 0000000..f3b1ed4 --- /dev/null +++ b/include/slam6d/nnparams.h @@ -0,0 +1,38 @@ +#ifndef __NNPARAMS_H__ +#define __NNPARAMS_H__ + +struct NNParams { +/** + * pointer to the closest point. size = 4 bytes of 32 bit machines + */ + void *closest; + + /** + * distance to the closest point. size = 8 bytes + */ + double closest_d2; + + // distance to the closest point in voxels + int closest_v; + + // location of the query point in voxel coordinates + int x; + int y; + int z; + + /** + * pointer to the point, size = 4 bytes of 32 bit machines + */ + double *p; + + /** + * expand to 128 bytes to avoid false-sharing, 16 bytes from above + 28*4 bytes = 128 bytes + */ +// int padding[24]; + + int count; + int max_count; + +}; + +#endif diff --git a/include/slam6d/point.h b/include/slam6d/point.h new file mode 100644 index 0000000..41b247b --- /dev/null +++ b/include/slam6d/point.h @@ -0,0 +1,136 @@ +/** + * @file + * @brief Representation of a 3D point + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __POINT_H__ +#define __POINT_H__ + +#include +#include +using std::ostream; +using std::istream; + +#include +using std::runtime_error; + +/** + * @brief Representation of a point in 3D space + */ +class Point { + +public: + /** + * Default constructor + */ + inline Point() { x = y = z = 0.0; point_id = 0; type = 0; reflectance = 0.0; amplitude = 0.0; deviation = 0.0; rgb[0] = 255; rgb[1] = 255; rgb[2] = 255;}; + /** + * Copy constructor + */ + inline Point(const Point& p) { x = p.x; y = p.y; z = p.z; type = p.type; point_id = p.point_id; + reflectance = p.reflectance; amplitude = p.amplitude; deviation = p.deviation; rgb[0] = p.rgb[0]; rgb[1] = p.rgb[1]; rgb[2] = p.rgb[2];}; + /** + * Constructor with an array, i.e., vecctor of coordinates + */ + inline Point(const double *p) { x = p[0]; y = p[1]; z = p[2]; type = 0; reflectance = 0.0; amplitude = 0.0; deviation = 0.0; + rgb[0] = 255; rgb[1] = 255; rgb[2] = 255;}; + inline Point(const double *p, const char *c) { x = p[0]; y = p[1]; z = p[2]; rgb[0] = c[0]; rgb[1] = c[1]; rgb[2] = c[2];}; + + /** + * Constructor with three double values + */ + inline Point(const double _x, const double _y, const double _z) { x = _x; y = _y; z = _z; }; + inline Point(const double _x, const double _y, const double _z, const char _r, const char _g, const char _b) { x = _x; y = _y; z = _z; rgb[0] = _r; rgb[1] = _g; rgb[2] = _b;}; + + static inline Point cross(const Point &X, const Point &Y) { + Point res; + res.x = X.y * Y.z - X.z * Y.y; + res.y = X.z * Y.x - X.x * Y.z; + res.z = X.x * Y.y - X.y * Y.x; + return res; + }; + + static inline Point norm(const Point &p) { + double l = sqrt(p.x*p.x + p.y*p.y + p.z*p.z); + Point res(p.x/l, p.y/l, p.z/l); + return res; + }; + + inline Point operator+(const Point &p) const { + Point res; + res.x = x + p.x; + res.y = y + p.y; + res.z = z + p.z; + return res; + }; + + inline Point operator-(const Point &p) const { + Point res; + res.x = x - p.x; + res.y = y - p.y; + res.z = z - p.z; + return res; + }; + + inline Point& operator-=(const Point &p) { + x -= p.x; + y -= p.y; + z -= p.z; + return *this; + }; + inline Point& operator+=(const Point &p) { + x += p.x; + y += p.y; + z += p.z; + return *this; + }; + + + + inline void transform(const double alignxf[16]); + inline double distance(const Point& p); + inline friend ostream& operator<<(ostream& os, const Point& p); + inline friend istream& operator>>(istream& is, Point& p); + + // also public; set/get functions not necessary here + /// x coordinate in 3D space + double x; + /// y coordinate in 3D space + double y; + /// z coordinate in 3D space + double z; + /// additional information about the point, e.g., semantic + /// also used in veloscan for distiuguish moving or static + int type; + + /////////////////////////for veloslam///////////////////////////// + double rad; + /// tang in cylindrical coordinates for veloscan + double tan_theta; + // point id in points for veloscan , you can use it find point. + long point_id; + /////////////////////////for veloslam///////////////////////////// + + // color information of the point between 0 and 255 + // rgb + unsigned char rgb[3]; + + float reflectance; + float amplitude; + float deviation; +}; + + +inline Point operator*(const double &v, const Point &p) { + Point res; + res.x = v * p.x; + res.y = v * p.y; + res.z = v * p.z; + return res; +} + +#include "point.icc" + +#endif diff --git a/include/slam6d/point.icc b/include/slam6d/point.icc new file mode 100644 index 0000000..f2bf225 --- /dev/null +++ b/include/slam6d/point.icc @@ -0,0 +1,62 @@ +#include +/** + * @file + * @brief Implementation of a 3D point. + * + * Representation of a 3D point. + * Only inline functions are used, therefore no .cc file. + * + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + **/ + + +/** + * Overridden "<<" operator for sending a point to a stream + */ +inline ostream& operator<<(ostream& os, const Point& p) { + os << p.x << " " << p.y << " " << p.z; + return os; +} + +/** + * Overridden ">>" operator for reading a point from a stream. + * Throws a runtime error if not enough data in the stream. + */ +inline istream& operator>>(istream& is, Point& p) { + if (!is.good()) throw runtime_error("Not enough elements to read for >>(istream&, Point).1"); + is >> p.x; + if (!is.good()) throw runtime_error("Not enough elements to read for >>(istream&, Point).2"); + is >> p.y; + if (!is.good()) throw runtime_error("Not enough elements to read for >>(istream&, Point).3"); + is >> p.z; + return is; +} + +/** + * Transforms a point by the given transformation. + * @param *alignxf The transformation (4x4 matrix) + */ +inline void Point::transform(const double *alignxf) +{ + double x_neu, y_neu, z_neu; + x_neu = x * alignxf[0] + y * alignxf[4] + z * alignxf[8]; + y_neu = x * alignxf[1] + y * alignxf[5] + z * alignxf[9]; + z_neu = x * alignxf[2] + y * alignxf[6] + z * alignxf[10]; + x = x_neu + alignxf[12]; + y = y_neu + alignxf[13]; + z = z_neu + alignxf[14]; +} + +/** + * Calculates the difference between two points. + * @param p The second point + */ + +inline double Point::distance(const Point &p) +{ + double distance; + distance = (p.x - x)*(p.x - x) + (p.y - y)*(p.y - y) + (p.z - z)*(p.z - z); + return sqrt(distance); +} + diff --git a/include/slam6d/point_type.h b/include/slam6d/point_type.h new file mode 100644 index 0000000..036c110 --- /dev/null +++ b/include/slam6d/point_type.h @@ -0,0 +1,243 @@ +/** + * @file + * @brief Representation of a 3D point type + * @author Jan Elsberg. Automation Group, Jacobs University Bremen gGmbH, Germany. + */ + +#ifndef __POINT_TYPE_H__ +#define __POINT_TYPE_H__ + +#include "point.h" +#include "data_types.h" + +#include +using std::string; +#include +using std::cout; +using std::cerr; +using std::endl; + +#include +#include +#include + +class Scan; + + + +class PointType { +public: + + static const unsigned int USE_NONE; + static const unsigned int USE_REFLECTANCE; + static const unsigned int USE_AMPLITUDE; + static const unsigned int USE_DEVIATION; + static const unsigned int USE_HEIGHT; + static const unsigned int USE_TYPE; + static const unsigned int USE_COLOR; + static const unsigned int USE_TIME; + static const unsigned int USE_INDEX; + + PointType(); + + PointType(unsigned int _types); + + bool hasReflectance(); + bool hasAmplitude(); + bool hasDeviation(); + bool hasType(); + bool hasColor(); + bool hasTime(); + bool hasIndex(); + + unsigned int getReflectance(); + unsigned int getAmplitude(); + unsigned int getDeviation(); + unsigned int getTime(); + unsigned int getIndex(); + unsigned int getType(); + unsigned int getType(unsigned int type); + + + unsigned int getPointDim(); + + static PointType deserialize(std::ifstream &f); + + void serialize(std::ofstream &f); + unsigned int toFlags() const; + + template + T *createPoint(const Point &P, unsigned int index=0); + + template + Point createPoint(T *p); + + //! Aquire DataPointer objects from \a scan, determined by its types + void useScan(Scan* scan); + + //! Release the DataPointer objects + void clearScan(); + + //! Create a point with attributes via the DataPointers from the scan + template + T* createPoint(unsigned int i, unsigned int index = 0); + + //! Create an array with coordinate+attribute array per point with transfer of ownership + template + T** createPointArray(Scan* scan); + +private: + /** + * collection of flags + */ + unsigned int types; + /** + * Derived from types: 3 spatial dimensions + 1 for each flag set + **/ + unsigned int pointdim; + + /** + * Stores the size of each point in bytes + **/ + unsigned int pointbytes; + + /** + * Derived from types, to map type to the array index for each point + **/ + int dimensionmap[8]; + + bool hasType(unsigned int type); + + unsigned int getScanSize(Scan* scan); + + DataXYZ* m_xyz; + DataRGB* m_rgb; + DataReflectance* m_reflectance; + DataAmplitude* m_amplitude; + DataType* m_type; + DataDeviation* m_deviation; +}; + + +template +T *PointType::createPoint(const Point &P, unsigned int index ) { + unsigned int counter = 0; + + T *p = new T[pointdim]; + p[counter++] = P.x; + p[counter++] = P.y; + p[counter++] = P.z; + if (types & USE_REFLECTANCE) { + p[counter++] = P.reflectance; + } + if (types & USE_AMPLITUDE) { + p[counter++] = P.amplitude; + } + if (types & USE_DEVIATION) { + p[counter++] = P.deviation; + } + if (types & USE_TYPE) { + p[counter++] = P.type; + } + if (types & USE_COLOR) { + memcpy(&p[counter], P.rgb, 3); + counter++; + } + if (types & USE_TIME) { +// p[counter++] = P.timestamp; + } + if (types & USE_INDEX) { + p[counter++] = index; + } + + return p; +} + +template +Point PointType::createPoint(T *p) { + Point P; + unsigned int counter = 0; + + P.x = p[counter++]; + P.y = p[counter++]; + P.z = p[counter++]; + if (types & USE_REFLECTANCE) { + P.reflectance = p[counter++]; + } + if (types & USE_AMPLITUDE) { + P.amplitude = p[counter++]; + } + if (types & USE_DEVIATION) { + P.deviation = p[counter++]; + } + if (types & USE_TYPE) { + P.type = p[counter++]; + } + if (types & USE_COLOR) { + memcpy(P.rgb, &p[counter], 3); + counter++; + } + if (types & USE_TIME) { +// P.timestamp = p[counter++]; + } + + return P; +} + +template +T *PointType::createPoint(unsigned int i, unsigned int index) { + unsigned int counter = 0; + T* p = new T[pointdim]; + + for(unsigned int j = 0; j < 3; ++j) + p[counter++] = (*m_xyz)[i][j]; + + // if a type is requested try to write the value if the scan provided one + if (types & USE_REFLECTANCE) { + p[counter++] = (m_reflectance? (*m_reflectance)[i]: 0); + } + if (types & USE_AMPLITUDE) { + p[counter++] = (m_amplitude? (*m_amplitude)[i]: 0); + } + if (types & USE_DEVIATION) { + p[counter++] = (m_deviation? (*m_deviation)[i]: 0); + } + if (types & USE_TYPE) { + p[counter++] = (m_type? (*m_type)[i]: 0); + } + if (types & USE_COLOR) { + if(m_rgb) + memcpy(&p[counter], (*m_rgb)[i], 3); + else + p[counter] = 0; + counter++; + } + if (types & USE_TIME) { + } + if (types & USE_INDEX) { + p[counter++] = index; + } + + return p; +} + +template +T** PointType::createPointArray(Scan* scan) +{ + // access data with prefetching + useScan(scan); + + // create a float array with requested attributes by pointtype via createPoint + unsigned int nrpts = getScanSize(scan); + T** pts = new T*[nrpts]; + for(unsigned int i = 0; i < nrpts; i++) { + pts[i] = createPoint(i); + } + + // unlock access to data, remove unneccessary data fields + clearScan(); + + return pts; +} + +#endif diff --git a/include/slam6d/pointfilter.h b/include/slam6d/pointfilter.h new file mode 100644 index 0000000..a4c0107 --- /dev/null +++ b/include/slam6d/pointfilter.h @@ -0,0 +1,113 @@ +/** + * @file + * @brief IO filtering class for ScanIO to discard unwanted points. + * + * @author Thomas Escher + */ + +#ifndef POINT_FILTER_H +#define POINT_FILTER_H + +#include +#include + +class Checker; + + +/** + * Flexible filtering class for parsing a set of points. + * + * This class is configurable with parameters for range and height and can be transferred via the use of a parameter string. + * Use on a point set via repeated use of the check function, which creates the internal Checker structures once for each change to the parameters. The amount of tests is held as minimal as possible. + */ +class PointFilter +{ +public: + // Default empty constructor + PointFilter(); + //! Deserialization constructor, forms parameters back from a string given by getParams + PointFilter(const std::string& params); + ~PointFilter(); + + PointFilter& setRange(double maxDist, double minDist); + PointFilter& setHeight(double top, double bottom); + + //! Serialization function to convert it into a string, usable in the constructor + std::string getParams(); + + //! Check a point, returning success if all contained Checker functions accept that point (implemented in .icc) + inline bool check(double* point); +private: + //! Storage for parameter keys and values + std::map m_params; + + //! If either not created yet or parameters get changed, this flag will cause check to create a new Checker chain + bool m_changed; + + //! created in the first check call with the changed flag set + Checker* m_checker; + + //! Allocation of the checkers + void createCheckers(); + + // factory magic + template friend struct CheckerFactory; + static std::map* factory; +}; + +class Checker { +public: + Checker(); + ~Checker(); + + //! Testing function + virtual bool test(double* point) = 0; + + //! Next test in chain + Checker* m_next; +}; + +//! Factory integrating the create-function and adding it to the lookup map in an easy template +template +struct CheckerFactory { + //! Instanciate in the source code with the to be created class as template argument and associated key string as constructor argument + CheckerFactory(const std::string& key) { (*PointFilter::factory)[key] = CheckerFactory::create; } + //! Automated create function, safely returning a nullpointer if the constructor throws for unwanted values + static Checker* create(const std::string& value) { try { return new T(value); } catch(...) { return 0; } } +}; + +class CheckerRangeMax : public Checker { +public: + CheckerRangeMax(const std::string& value); + virtual bool test(double* point); +private: + double m_max; +}; + +class CheckerRangeMin : public Checker { +public: + CheckerRangeMin(const std::string& value); + virtual bool test(double* point); +private: + double m_min; +}; + +class CheckerHeightTop : public Checker { +public: + CheckerHeightTop(const std::string& value); + virtual bool test(double* point); +private: + double m_top; +}; + +class CheckerHeightBottom : public Checker { +public: + CheckerHeightBottom(const std::string& value); + virtual bool test(double* point); +private: + double m_bottom; +}; + +#include "pointfilter.icc" + +#endif //POINT_FILTER_H diff --git a/include/slam6d/pointfilter.icc b/include/slam6d/pointfilter.icc new file mode 100644 index 0000000..bff7366 --- /dev/null +++ b/include/slam6d/pointfilter.icc @@ -0,0 +1,22 @@ +bool PointFilter::check(double* point) +{ + // create a new checker chain + if(m_changed) { + createCheckers(); + // mark as unchanged to avoid recreation on further calls + m_changed = false; + } + + // apply all tests to the point + Checker* checker = m_checker; + while(checker) { + if(checker->test(point)) { + checker = checker->m_next; + } else { + // if even one test fails the point is discarded + return false; + } + } + // point has passed if all tests returned true + return true; +} diff --git a/include/slam6d/ptpair.h b/include/slam6d/ptpair.h new file mode 100644 index 0000000..83167e5 --- /dev/null +++ b/include/slam6d/ptpair.h @@ -0,0 +1,39 @@ +/** + * @file + * @brief Definition of point pairs + * + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __PTPAIR_H__ +#define __PTPAIR_H__ + +#include "slam6d/point.h" +#include +using std::endl; +#include +using std::ofstream; + +/** + * @brief Representing point pairs + */ +class PtPair { +public: + /** + * Constructor, by two 'point' pointers + */ + inline PtPair(double *_p1, double *_p2); + + inline PtPair(Point &p1, Point &p2); + + inline PtPair(); + + inline friend ostream& operator<<(ostream& os, const PtPair& pair); + + Point p1, ///< The two points forming the pair + p2; ///< The two points forming the pair +}; + +#include "ptpair.icc" +#endif diff --git a/include/slam6d/ptpair.icc b/include/slam6d/ptpair.icc new file mode 100644 index 0000000..80d25fd --- /dev/null +++ b/include/slam6d/ptpair.icc @@ -0,0 +1,35 @@ +/** + * @file + * @brief Implemetnations of point pairs + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +/** + * Constructor, by two 'point' pointers + */ +inline PtPair::PtPair(double *_p1, double *_p2) +{ + p1 = Point(_p1); + p2 = Point(_p2); +} + +inline PtPair::PtPair(Point &_p1, Point &_p2) +{ + p1 = Point(_p1); + p2 = Point(_p2); +} + +inline PtPair::PtPair() +{ + p1 = Point(); + p2 = Point(); +} + +/** + * Overridden "<<" operator for sending a pair to a stream + */ +inline ostream& operator<<(ostream& os, const PtPair& pair) { + os << pair.p1 << " - " << pair.p2 << endl; + return os; +} diff --git a/include/slam6d/scan.h b/include/slam6d/scan.h new file mode 100644 index 0000000..8a91344 --- /dev/null +++ b/include/slam6d/scan.h @@ -0,0 +1,413 @@ +#ifndef SCAN_H +#define SCAN_H + +#include "io_types.h" +#include "data_types.h" +#include "point_type.h" +#include "ptpair.h" + +#include +#include + +#include +#include + +//! SearchTree types +enum nns_type { + simpleKD, ANNTree, BOCTree +}; + +class Scan; +typedef std::vector ScanVector; + +class SearchTree; +class ANNkd_tree; + +/** HOWTO scan +First: Load scans (if you want to use the scanmanager, use ManagedScan) + + BasicScan/ManagedScan::openDirectory(path, type, start, end); + +Pass it to functions (by reference to link it to the same instance) or store it in a global variable + +After loading you might want to set parameters + + for(ScanVector::iterator it = Scan::allScans.begin(); it != Scan::allScans.end(); ++it) { + Scan* scan = *it; + scan->setRangeFilter(maxDist, minDist); + scan->setHeightFilter(top, bottom); // thermo + scan->setReductionParameter(voxelSize, nrpts[, pointtype]); + scan->setSearchTreeParameter(nns_method, use_cuda); + } + +Access the contained data, will be loaded and calculated on demand + + DataXYZ xyz = scan->get("xyz"); + DataXYZ reduced = scan->get("xyz reduced"); + DataRGB rgb = scan->get("rgb"); + + xyz[i][0..2] + reflectance[i] + + unsigned int size = scan->size("xyz reduced"); + +In order to use the prefetching of all requested data field in the scanserver, mark them for use. This is relevant for efficiency, which would otherwise cause loading the files each time another data field is requested. + + scan->get(DATA_XYZ | DATA_RGB | ...); + +Under circumstances the data fields are not available (e.g. no color in uos-type scans) + + DataRGB rgb = scan->get("rgb"); + if(rgb.valid()) { ok, do something } + +If backward-compability to pointer arrays is needed, the PointerArray class can adapt + + BOctTree(PointerArray(scan->get("xyz")).get(), scan->size("xyz"), ...); + +If data isn't needed anymore, flag it for removal + + scan->clear("xyz"); + scan->clear(DATA_XYZ | DATA_RGB | ...); + +Creating data fields with the correct byte size + + scan->create("xyz somethingelse", sizeof(double)*3*N); + +Reading frames in show: + + unsigned int size = scan->readFrames(); + + const double* pose; + AlgoType type; + scan->getFrame(i, pose, type); + +Last, if program ends, clean up + + Scan::closeDirectory(scans); + +**/ + + + +/** + * This class bundles common features of different scan implementations by + * abstraction. It handles the algorithmic parts and leaves IO and other + * features to the deriving classes. + */ +class Scan { + //friend class SearchTree; // TODO: is this neccessary? +public: + enum AlgoType { + INVALID, ICP, ICPINACTIVE, LUM, ELCH, LOOPTORO, LOOPHOGMAN, GRAPHTORO, + GRAPHHOGMAN + }; + + // delete copy-ctor and assignment, scans shouldn't be copied by basic class + // Scan(const Scan& other) = delete; + // Scan& operator=(const Scan& other) = delete; + + virtual ~Scan(); + + //! Holder of all scans - also used in transform for adding frames for each scan at the same time + static std::vector allScans; + + /** + * Attempt to read a directory under \a path and return its read scans. + * No scans are loaded at this point, only checked if all exist. + * + * @param scanserver whether to use managed scans in the scanserver or not + * @param path to the directory containing the scans + * @param type determining which ScanIO to use + * @param start first scan to use + * @param end last scan to use, -1 means from start to last available + */ + static void openDirectory(bool scanserver, const std::string& path, IOType type, + int start, int end = -1); + + /** + * "Close" a directory by deleting all its scans and emptying the + * Scan::allScans vector. + */ + static void closeDirectory(); + + + /* Input filtering and parameter functions */ + + + //! Input filtering for all points based on their euclidean length + virtual void setRangeFilter(double max, double min) = 0; + + //! Input filtering for all points based on their height + virtual void setHeightFilter(double top, double bottom) = 0; + + //! Set reduction parameters, but don't reduce yet + virtual void setReductionParameter(double voxelSize, int nrpts = 0, + PointType pointtype = PointType()); + + //! Set SearchTree type, but don't create it yet + void setSearchTreeParameter(int nns_method, bool cuda_enabled); + + /** + * Set octtree parameters for show + * @param loadOct will load the serialized octtree from disk regardless + * @param saveOct serialize octtree if not loaded by loadOct after creation + */ + virtual void setOcttreeParameter(double reduction_voxelSize, + double octtree_voxelSize, PointType pointtype, + bool loadOct, bool saveOct); + + + /* Basic getter functions */ + + + inline const double* get_rPos() const; + inline const double* get_rPosTheta() const; + inline const double* get_rPosQuat() const; + //! Pose matrix after initial and match transformations (org+dalign) + inline const double* get_transMat() const; + //! Original pose matrix after initial transform + inline const double* get_transMatOrg() const; + //! Accumulated delta transformation matrix + inline const double* getDAlign() const; + + inline SearchTree* getSearchTree(); + inline ANNkd_tree* getANNTree() const; + + virtual const char* getIdentifier() const = 0; + + //! Determine the maximum number of reduced points in \a scans + static unsigned int getMaxCountReduced(ScanVector& scans); + + + /* Functions for altering data fields, implementation specific */ + + + /** + * Get the data field \a identifier, calculate it on demand if neccessary. + * + * If "xyz reduced" or "xyz reduced original" is requested, the reduction is + * started with "xyz" as input. + */ + virtual DataPointer get(const std::string& identifier) = 0; + + /** + * Load the requested IODataTypes, joined by |, from the scan file. + * + * This feature is neccessary to load multiple data fields at once, not all + * one by one with each get("...") access. + */ + virtual void get(unsigned int types) = 0; + + /** + * Creates a data field \a identifier with \a size bytes. + */ + virtual DataPointer create(const std::string& identifier, unsigned int size) = 0; + + /** + * Clear the data field \a identifier, removing its allocated memory if + * possible or marking it for prioritized removal. + */ + virtual void clear(const std::string& identifier) = 0; + + //! Extension to clear for more than one identifier, e.g. clear(DATA_XYZ | DATA_RGB); + void clear(unsigned int types); + + /** + * Get the size of \a identifier as if it were requested and size() called + * upon its type specialized DataPointer class. + * e.g size("xyz reduced") + */ + template + unsigned int size(const std::string& identifier) { + return (T(get(identifier))).size(); + } + + + /* Frame handling functions */ + + + /** + * Open the .frames-file and read its contents. If not read, the frame list + * will be empty. + * @return count of frames if file has been read, zero otherwise + */ + virtual unsigned int readFrames() = 0; + + /** + * Write the accumulated frames into a .frames-file. + */ + virtual void saveFrames() = 0; + + //! Count of frames + virtual unsigned int getFrameCount() = 0; + + //! Get contents of a frame, pass matrix pointer and type by reference + virtual void getFrame(unsigned int i, const double*& pose_matrix, AlgoType& type) = 0; + +protected: + /** + * Called from transform, this will add its current transMat pose with + * the given type as a frame into the list of frames + */ + virtual void addFrame(AlgoType type) = 0; + +public: + + + /* Direct creation of reduced points and search tree */ + + + //! Apply reduction and initial transMatOrg transformation + void toGlobal(); + + //! Copy reduced points to original and create search tree on it + void createSearchTree(); + + + /* Common transformation and matching functions */ + void mergeCoordinatesWithRoboterPosition(Scan* prevScan); + void transformAll(const double alignxf[16]); + void transformAll(const double alignQuat[4], const double alignt[3]); + + void transform(const double alignxf[16], + const AlgoType type, int islum = 0); + void transform(const double alignQuat[4], + const double alignt[3], const AlgoType type, int islum = 0); + void transformToMatrix(double alignxf[16], + const AlgoType type, int islum = 0); + void transformToEuler(double rP[3], double rPT[3], + const AlgoType type, int islum = 0); + void transformToQuat(double rP[3], double rPQ[4], + const AlgoType type, int islum = 0); + + // Scan matching functions + static void getPtPairs(std::vector *pairs, + Scan* Source, Scan* Target, + int thread_num, + int rnd, double max_dist_match2, double &sum, + double *centroid_m, double *centroid_d); + static void getNoPairsSimple(std::vector &diff, + Scan* Source, Scan* Target, + int thread_num, + double max_dist_match2); + static void getPtPairsSimple(std::vector *pairs, + Scan* Source, Scan* Target, + int thread_num, + int rnd, double max_dist_match2, + double *centroid_m, double *centroid_d); + static void getPtPairsParallel(std::vector *pairs, + Scan* Source, Scan* Target, + int thread_num, int step, + int rnd, double max_dist_match2, + double *sum, + double centroid_m[OPENMP_NUM_THREADS][3], + double centroid_d[OPENMP_NUM_THREADS][3]); + +protected: + /** + * The pose of the scan + * Note: rPos/rPosTheta and transMat _should_ + * always represent the same pose!!! + */ + double rPos[3], //!< 3D position + rPosTheta[3], //!< 3D rotation in Euler representation + rQuat[4], //!< 3D rotation in Quaternion representation + transMat[16], //!< (4x4) transformation matrix + transMatOrg[16]; //!< The original pose of the scan, e.g., from odometry + + /** + * The dalignxf transformation represents the delta transformation virtually applied + * to the tree and is used to compute are actual corresponding points. + */ + double dalignxf[16]; + + //! Run ICP on GPU instead of CPU + bool cuda_enabled; + + //! Defines the method used for nearest neighbor search and which tree to use + int nns_method; + + //! SearchTree for point pair matching, works on the search points + SearchTree* kd; + + //! This KD tree is created only for the CUDA usages + ANNkd_tree* ann_kd_tree; + + //! Voxelsize of the octtree used for reduction + double reduction_voxelSize; + + //! Which point to take out of the reduction octtree, 0 for center + int reduction_nrpts; + + //! Pointtype used for the reduction octtree + PointType reduction_pointtype; + + //! Type of the searchtree to be created + int searchtree_nnstype; + + //! Use CUDA for searching + bool searchtree_cuda_enabled; + + //! Flag whether "xyz reduced" has been initialized for this Scan yet + bool m_has_reduced; + + //! Reduction value used for octtree input + double octtree_reduction_voxelSize; + + //! Voxelsize used in the octtree itself + double octtree_voxelSize; + + //! Pointtype for the Octtree + PointType octtree_pointtype; + + //! Flags to load or save the octtrees from/to storage + bool octtree_loadOct, octtree_saveOct; + + /** + * Basic initializing constructor calling the initalization function. + * Can only be called from deriving classes. + */ + Scan(); + + /** + * This function handles the reduction of points. It builds a lock for + * multithread-safety and calls caldReducedOnDemandPrivate. + * + * The intention is to reduce points, transforme them to the initial pose and + * then copy them to original for the SearchTree. + */ + void calcReducedOnDemand(); + + //! Create specific SearchTree variants matching the capability of the Scan + virtual void createSearchTreePrivate() = 0; + + //! Create reduced points in a multithread-safe environment matching the capability of the Scan + virtual void calcReducedOnDemandPrivate() = 0; + + //! Internal function of transform which alters the reduced points + void transformReduced(const double alignxf[16]); + + //! Internal function of transform which handles the matrices + void transformMatrix(const double alignxf[16]); + + //! Creating reduced points + void calcReducedPoints(); + + //! Copies reduced points to original points without any transformation. + void copyReducedToOriginal(); + + //! Inverse functionality of copyReducedToOriginal. + void copyOriginalToReduced(); + +private: + //! flag for openDirectory and closeDirectory to distinguish the scans + static bool scanserver; + + //! Mutex for safely reducing points and creating the search tree just once in a multithreaded environment + // it can not be compiled in wein32 use boost 1.48, therefore we remeove it temporarily +// boost::mutex m_mutex_reduction, m_mutex_create_tree; +}; + +#include "scan.icc" + +#endif //SCAN_H diff --git a/include/slam6d/scan.icc b/include/slam6d/scan.icc new file mode 100644 index 0000000..2a703cc --- /dev/null +++ b/include/slam6d/scan.icc @@ -0,0 +1,27 @@ +inline const double* Scan::get_rPos() const { + return rPos; +} + +inline const double* Scan::get_rPosTheta() const { + return rPosTheta; +} + +inline const double* Scan::get_rPosQuat() const { + return rQuat; +} + +inline const double* Scan::get_transMat() const { + return transMat; +} + +inline const double* Scan::get_transMatOrg() const { + return transMatOrg; +} + +inline const double* Scan::getDAlign() const { + return dalignxf; +} + +inline ANNkd_tree* Scan::getANNTree() const { + return ann_kd_tree; +} diff --git a/include/slam6d/searchCache.h b/include/slam6d/searchCache.h new file mode 100644 index 0000000..03f24ac --- /dev/null +++ b/include/slam6d/searchCache.h @@ -0,0 +1,22 @@ +/** + * @file + * @brief Representation of a general cache for search trees + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SEARCHCACHE_H__ +#define __SEARCHCACHE_H__ + +/** + * @brief The general Cache Item + * + * This class contains a general cache item + */ +class SearchTreeCacheItem +{ + public: + virtual ~SearchTreeCacheItem() {}; +}; + + +#endif diff --git a/include/slam6d/searchTree.h b/include/slam6d/searchTree.h new file mode 100644 index 0000000..e59f0a6 --- /dev/null +++ b/include/slam6d/searchTree.h @@ -0,0 +1,155 @@ +/** + * @file + * @brief Representation of a general search trees + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifndef __SEARCHTREE_H__ +#define __SEARCHTREE_H__ + +#include +using std::vector; + +#include "searchCache.h" +#include "ptpair.h" +#include "data_types.h" + +/** + * @brief The tree structure + * + * A tree holds the pointer to the data + **/ +class Tree { +public: + /** + * Destructor - deletes the tree + * pure virtual, i.e., must be implented by a derived class + */ + virtual inline ~Tree() {}; +}; + + +class Scan; +/** + * @brief The search tree structure + * + * A search tree holds the pointer to the data. + * Furthermore, search functionality must be privided + **/ +class SearchTree : public Tree { + friend class Scan; +public: + /** + * Constructor (default) + */ + inline SearchTree() {}; + + /** + * Constructor - Constructs a tree from the input. + * must be implented by a derived class + * @param pts 3D array of points + * @param n number of points + */ + SearchTree(double **pts, int n); + + /** + * Destructor - deletes the tree + * virtual, i.e., must be implented by a derived class + */ + virtual inline ~SearchTree() {}; + + /** + * Aquire a lock on this tree, signaling that its resources are in use. Neccessary for cached data in the scanserver. + */ + virtual inline void lock() {}; + + /** + * Release the lock on this tree, signaling that its resources are aren't in use anymore. Neccessary for cached data in the scanserver. + */ + virtual inline void unlock() {}; + + /** + * This Search function returns a pointer to the closest point + * of the query point within maxdist2. If there if no such point + * a 0-pointer might be returned. + * + * @param _p Pointer to query point + * @param maxdist2 Maximal distance for closest points + * @param threadNum If parallel threads share the search tree the thread num must be given + * @return Pointer to closest point + */ + virtual double *FindClosest(double *_p, double maxdist2, int threadNum = 0) const = 0 ; + + virtual void getPtPairs(vector *pairs, + double *source_alignxf, + double * const *q_points, unsigned int startindex, unsigned int endindex, + int thread_num, + int rnd, double max_dist_match2, double &sum, + double *centroid_m, double *centroid_d); + + virtual void getPtPairs(vector *pairs, + double *source_alignxf, + const DataXYZ& xyz_r, unsigned int startindex, unsigned int endindex, + int thread_num, + int rnd, double max_dist_match2, double &sum, + double *centroid_m, double *centroid_d); +}; + + +/** + * @brief The search tree structure + * + * A search tree holds the pointer to the data. + * Furthermore, search functionality must be privided + **/ +class CachedSearchTree : public SearchTree { +public: + /** + * Constructor (default) + */ + inline CachedSearchTree() {}; + + /** + * Constructor - Constructs a tree from the input. + * pure virtual, i.e., must be implented by a derived class + * @param pts 3D array of points + * @param n number of points + */ + CachedSearchTree(double **pts, int n, CachedSearchTree *_parent = 0); + + /** + * Destructor - deletes the tree + * pure virtual, i.e., must be implented by a derived class + */ + virtual inline ~CachedSearchTree() {}; + + /** + * This Search function returns a pointer to the closest point + * of the query point within maxdist2. This function searches from the + * root to the leafs. + * + * @param _p Pointer to query point + * @param maxdist2 Maximal distance for closest points + * @param threadNum If parallel threads share the search tree the thread num must be given + * @return A new cach Item + */ + virtual SearchTreeCacheItem* FindClosestCacheInit(double *_p, double maxdist2, int threadNum = 0) = 0; + + /** + * This Search function returns a pointer to the closest point + * of the query point within maxdist2. This function might be started + * from the leafs. + * + * @param _p Pointer to query point + * @param maxdist2 Maximal distance for closest points + * @param threadNum If parallel threads share the search tree the thread num must be given + * @return A new cach Item + */ + virtual SearchTreeCacheItem* FindClosestCache(double *_p, double maxdist2, int threadNum = 0) = 0; + double *FindClosest(double *_p, double maxdist2, int threadNum = 0) const { + return 0; + } +}; + + +#endif diff --git a/include/thermo/thermo.h b/include/thermo/thermo.h new file mode 100644 index 0000000..a75c2da --- /dev/null +++ b/include/thermo/thermo.h @@ -0,0 +1,36 @@ +#ifndef __THERMO_H__ +#define __THERMO_H__ + +#include +#include +#include +#include +using namespace std; +typedef vector > Float2D[1200][1600]; + +void calcBoard(double point_array[][2], int board_n, double &x, double &y, double &cx, double &cy, bool pc); +void sortBlobs(double point_array[][2], int board_n, int board_h, int board_w, bool quiet); +IplImage* detectBlobs(IplImage *org_image, int &corner_exp, int board_h, int board_w, bool quiet, double point_array2[][2]); +void drawLines(double point_array2[][2], int corner_exp, IplImage *image, bool color=false); +IplImage* resizeImage(IplImage *source, int scale); +IplImage* detectCorners(IplImage *orgimage, int corner_exp, int board_h, int board_w, bool quiet, double point_array2[][2], int scale=1); +void CalibFunc(int board_w, int board_h, int start, int end, bool optical, bool chess, bool quiet, string dir, int scale=1); +void writeCalibParam(int images, int corner_exp, int board_w, CvMat* image_points, CvSize size, string dir); + +void ProjectAndMap(int start, int end, bool optical, bool quiet, string dir, +IOType type, int scale, double rot_angle, double minDist, double maxDist, +bool correction, int neighborhood, int method=0); + +bool readPoints(string filename, CvPoint3D32f *corners, int size) ; +void sortElementByElement(CvMat * vectors, int nr_elems, int nr_vectors); +void calculateExtrinsicsWithReprojectionCheck(CvMat * points2D, CvMat * +points3D, CvMat * rotation_vectors_temp, CvMat * translation_vectors_temp, CvMat +* distortions, CvMat * instrinsics, int corners, int successes, string dir, bool quiet=true, string substring = "") ; +void calculateExtrinsics(CvMat * rotation_vectors_temp, CvMat * translation_vectors_temp, int successes, string dir, bool quiet=true, string substring = "") ; +void CorrectErrorAndWrite(Float2D &data, fstream &outfile, CvSize size); +void clusterSearch(float ** points, int size, double thresh1, double thresh2, fstream &outfile); +void sortDistances(float ** points, int size); +void ExtrCalibFunc(int board_w, int board_h, int start, int end, bool optical, bool chess, bool quiet, string dir, int scale=1); + + +#endif diff --git a/include/veloslam/cluster_classification.h b/include/veloslam/cluster_classification.h new file mode 100644 index 0000000..fbfb7cc --- /dev/null +++ b/include/veloslam/cluster_classification.h @@ -0,0 +1,19 @@ +#pragma once +#include "veloslam/veloscan.h" +#include "veloslam/svm.h" + +class Cluster_Classification +{ +public: + Cluster_Classification(void); + ~Cluster_Classification(void); + +public: + svm_model *bus_classifier; + string *bus_classifier_filename; + svm_node *feature_nod; +}; + + + + diff --git a/include/veloslam/clusterboundingbox.h b/include/veloslam/clusterboundingbox.h new file mode 100644 index 0000000..0b28435 --- /dev/null +++ b/include/veloslam/clusterboundingbox.h @@ -0,0 +1,82 @@ +/** + * @file + * @brief calculate rectangle bounding box and minimal unregular bounding box for cluster + the rectangle bounding box can be inclined therefore it can better represent cluster + and vehicle direction,the result is stored as a clusterfeature in clusterFeatureArray + * + * @author Quanwen Zhu, Wuhan University, China + */ +#include +#include "veloslam/gridcluster.h" + + +using namespace std; + + struct PointID +{ + int cellIndex; + int pointIndexInCell; +}; + + struct BesiegePoint +{ + double x; + double y; + double angle; + PointID pointID; +}; + + struct OrientedBoundingBox +{ + + double angle; + double length; + double width; + double circumference; + double area; + double newMaxXPointX; + double newMaxXPointY; + + double newMaxYPointX; + double newMaxYPointY; + + double newMinXPointX; + double newMinXPointY; + + double newMinYPointX; + double newMinYPointY; + PointID boundingPointID[4]; +}; + + +class BoundingBox +{ +public: + BoundingBox(void); + ~BoundingBox(void); + void Initial(void); + double CalDirectionTwoPoints(double XPos1,double YPos1,double XPos2,double YPos2); + + void CalCoordsAftRotation(double x,double y,double *newX,double *newY,double theta); + + void CalAllBoundingBox( cluster &gluClusterData); + + void CalBestRectangleBox(cluster &gluClusterData,clusterFeature &glu); + + void CalMinBoundingBox(cluster &gluClusterData,clusterFeature &glu); + +private : + bool calCandidateBox; + + + /** + * all rectangle bounding box candidates + */ + vector allCandBox; + + /** + * unregular minBounding box points + */ + vector minBoundingBox; + +}; diff --git a/include/veloslam/color_util.h b/include/veloslam/color_util.h new file mode 100644 index 0000000..46f631e --- /dev/null +++ b/include/veloslam/color_util.h @@ -0,0 +1,113 @@ +#ifndef _COLOR_UTIL +#define _COLOR_UTIL + +#include "math_util.h" + +static int ColorTableShot[8][3]= +{ +// {255,255,255}, + {255,0,122}, + {255,255,0}, + {255,0,255}, + {0,255,255}, + {0,0,255}, + {255,122,0}, + // {255,0,0}, + {0,255,0}, + {139,0,139} + +}; + +static int ColorTableCircle[16][3]= +{ + {255,255,255}, + {255,122,255}, + {255,255,0}, + {255,122,0}, + {255,0,255}, + {255,0,122}, + {0,255,255}, + {0,255,122}, + {0,0,255}, + {0,0,122}, + {255,0,0}, + {122,0,0}, + {0,122,0}, + {0,255,0}, + {139,0,139}, + {139,122,139} + +}; + +#define JET_COLORS_LUT_SIZE 1024 +static float jet_colors[JET_COLORS_LUT_SIZE][3]; +static int jet_colors_initialized = 0; + +static inline void color_util_rand_color(float f[4], + double alpha, + double min_intensity) +{ + f[3] = alpha; + +again: + f[0] = randf(); + f[1] = randf(); + f[2] = randf(); + + float v = f[0] + f[1] + f[2]; + + // reject colors that are too dark + if (v < min_intensity) + goto again; +} + +/** Given an array of colors, a palette is created that linearly interpolates through all the colors. **/ +static void color_util_build_color_table(double color_palette[][3], + int palette_size, + float lut[][3], + int lut_size) +{ + for (int idx = 0; idx < lut_size; idx++) + { + double znorm = ((double) idx) / lut_size; + + int color_index = (palette_size - 1) * znorm; + double alpha = (palette_size - 1) * znorm - color_index; + + for (int i = 0; i < 3; i++) + { + lut[idx][i] = color_palette[color_index][i] * (1.0 - alpha) + color_palette[color_index+1][i]*alpha; + } + } +} + + +static void init_color_table_jet() +{ + double jet[][3] = {{ 0, 0, 1 }, + { 0, .5, .5 }, + { .8, .8, 0 }, + { 1, 0, 0 }}; + + color_util_build_color_table( + jet, + sizeof(jet)/(sizeof(double)*3), + jet_colors, + JET_COLORS_LUT_SIZE); + + jet_colors_initialized = 1; +} + +static inline float *color_util_jet(double v) +{ + if (!jet_colors_initialized) + init_color_table_jet(); + + v = fmax(0, v); + v = fmin(1, v); + + int idx = (JET_COLORS_LUT_SIZE - 1) * v; + return jet_colors[idx]; +} + +#endif diff --git a/include/veloslam/debugview.h b/include/veloslam/debugview.h new file mode 100644 index 0000000..6212934 --- /dev/null +++ b/include/veloslam/debugview.h @@ -0,0 +1,56 @@ +#pragma once + +#include +#include +#include "veloslam/veloscan.h" +#include "veloslam/tracker.h" + +#include /* OpenGL header file */ +#include /* OpenGL utilities header file */ + +#ifdef _MSC_VER +#include +#else +#include +#endif + +/** for Glut display mode */ +#define RGBA 4 ///< colors for GLUT display +#define RGB 3 ///< colors for GLUT display +extern GLenum buffermode_debugView; + +extern void StartShow(); + +void GetCurrecntdelteMat(Scan& CurrentScan , double *deltaMat); + +void DrawText(float x, float y, float z, char * outputstring); +void DrawTextRGB(float x, float y, float z, float r, float g, float b, char * outputstring); +void DrawTextRGB(Point P, float r, float g, float b, char * outputstring); + +void Draw_Line_GL_RGB(float x1, float y1, float z1, float x2, float y2, float z2, float r,float g,float b,float width=1.0); +void Draw_Line_GL(float x1, float y1, float z1, float x2, float y2, float z2); +void Draw_Line_GL_RGB(Point P1, Point P2, int width, float r,float g,float b, bool arrow); + +void Draw_Cube_GL_RGB(float min_x, float min_y, float min_z, + float max_x, float max_y, float max_z, + float r,float g,float b); + +void Draw_Inclined_Cube_GL_RGB(double rectangleVexPos[4][2],double min_z,double max_z, + float r,float g,float b,float width=1.0); + +void DrawPointsRGB(Point p, float r, float g, float b); +void DrawPoint(Point p, int size , float r, float g, float b); +void DrawPoint(Point p, int size , float r, float g, float b, double deltaMat[16]); + +int DrawAll_ScanPoints_Number(vector allScans, int psize, float r, float g, float b, int n); + + +void glDumpWindowPPM_debugView(const char *filename, GLenum mode); + +static void Reshape(int w, int h); +static void SpecialKey(int key, int x, int y); +static void Draw(void); +int Show(int frameno); + + + diff --git a/include/veloslam/gridcell.h b/include/veloslam/gridcell.h new file mode 100644 index 0000000..5cd9e83 --- /dev/null +++ b/include/veloslam/gridcell.h @@ -0,0 +1,57 @@ +锘#ifndef __GRID_CELL_H__ +#define __GRID_CELL_H__ + +#ifdef _MSC_VER +#define snprintf _snprintf +#undef _STDIO_DEFINED +#define _USE_MATH_DEFINES +#endif + +#include "slam6d/scan.h" +#include +#include +using std::string; +#include +using std::vector; + +typedef std::vector charv; +typedef std::vector charvv; + +#define CELL_TYPE_INVALID 0x00000001 +#define CELL_TYPE_ABOVE_DELTA_R 0x00000002 +#define CELL_TYPE_BELOW_DELTA_R 0x00000004 +#define CELL_TYPE_ABOVE_DELTA_Y 0x00000008 +#define CELL_TYPE_BELOW_DELTA_Y 0x00000010 +#define CELL_TYPE_ABOVE_R 0x00000020 +#define CELL_TYPE_BELOW_R 0x00000040 +#define CELL_TYPE_ABOVE_LIDAR 0x00000080 +#define CELL_TYPE_IN_OBSTACLE_RANGE 0x00000100 +#define CELL_TYPE_STATIC 0x00000200 +#define CELL_TYPE_MOVING 0x00000400 +#define CELL_TYPE_GROUND 0x00000800 + +typedef std::vector cell; +typedef std::vector cellColumn; +typedef std::vector cellArray; + +class cellFeature +{ +public: + float ave_x,ave_y,ave_z; + float min_x,min_y,min_z; + float max_x,max_y,max_z; + float delta_y; + + int circleNum; + int size; + unsigned int cellType; + cell* pCell; + + int columnID; + int cellID; +}; + +typedef std::vector cellFeatureColumn; +typedef std::vector cellFeatureArray; + +#endif //__GRID_CELL_H__ diff --git a/include/veloslam/gridcluster.h b/include/veloslam/gridcluster.h new file mode 100644 index 0000000..d9f6d21 --- /dev/null +++ b/include/veloslam/gridcluster.h @@ -0,0 +1,58 @@ +锘#ifndef __GRID_CLUSTER_H__ +#define __GRID_CLUSTER_H__ + +#include "slam6d/scan.h" +#include "veloslam/gridcell.h" + +#define CUDE_TYPE_ABOVE_LIDAR 0x00000001 +#define CUDE_TYPE_IN_OBSTACLE_RANGE 0x00000002 +#define CUDE_TYPE_CONTAIN_SICK 0x00000400 + +#define CLUSTER_FEATURE_TYPE_OBJECT 0x00000001 + +#define CLUSTER_TYPE_MOVING_OBJECT 0x00000002 +#define CLUSTER_TYPE_MOVING_OBJECT_PEDESTRIAN 0x00000004 +#define CLUSTER_TYPE_MOVING_OBJECT_BICYCLE 0x00000008 +#define CLUSTER_TYPE_MOVING_OBJECT_CAR 0x00000010 +#define CLUSTER_TYPE_MOVING_OBJECT_ BUS 0x00000020 + +#define CLUSTER_TYPE_STATIC_OBJECT 0x00010000 +#define CLUSTER_TYPE_STATIC_OBJECT_BUILDING 0x00020000 +#define CLUSTER_TYPE_STATIC_OBJECT_BILLBOARD 0x00040000 +#define CLUSTER_TYPE_STATIC_OBJECT_SCULPTURE 0x00080000 + +#define CLUSTER_TYPE_STATIC_OBJECT_PLANT 0x00100000 +#define CLUSTER_TYPE_STATIC_OBJECT_TREE 0x00200000 +#define CLUSTER_TYPE_STATIC_OBJECT_SHRUB 0x00400000 + +class clusterFeature +{ +public: + float min_x,min_y,min_z; + float max_x,max_y,max_z; + float avg_x, avg_y, avg_z; + float min_y_x, max_y_x; + float size_x,size_y,size_z; + float speed_x, speed_y, speed; + + float theta, radius; + int size; + + float length; + float width; + float boxDirection; + double boxVex[4][2]; + + int frameNO; //in which scan + int selfID; //which number in clusters + int trackNO; //which track log it + + int pointNumber; + unsigned int clusterType; +}; + +typedef std::vector cluster; +typedef std::vector clusterArray; +typedef std::vector clusterFeatureArray; + +#endif //__GRID_CLUSTER_H__ diff --git a/include/veloslam/intersection_detection.h b/include/veloslam/intersection_detection.h new file mode 100644 index 0000000..312e307 --- /dev/null +++ b/include/veloslam/intersection_detection.h @@ -0,0 +1,59 @@ + +#include "veloslam/gridcell.h" +#include "veloslam/gridcluster.h" +#include "veloslam/svm.h" + +float absf(float a); + +struct IntersectionFeature +{ + float angle; + float slashLength; + int slashEndColumn; + int slashEndRow; +}; + +class IntersectionDetection +{ +public: + IntersectionDetection(); + ~IntersectionDetection(); + + + int GetPointData(); + int CalcRadAndTheta(); + int CalPointCellPos(double x,double y,double z ,int * column,int * row); + int CalCellMinDis(); + int TransferToCellArray(); + + int CalcAllCellFeature(); + int CalcCellFeature(cell& cellobj, cellFeature& f); + int CalWideSlashEdge_For_RoadShape(float Angle,int startColumID,int startRowID,float maxLength,float wide); + int DetectIntersection(); + + +private: + + int cellSize; + int columnNum; + int cellNum; + int MinRad; + int MaxRad; + + + vector allPoints_AfterRegstn; + cellArray cellArray_AfterRegstn; + cellFeatureArray cellFeatureArray_AfterRegstn; + float slashWide; + float slashMaxLength; + float slashAngleDefinition; + vector minCellDisList; + vector intersectionFeature; + + + /* clusterArray clusterArrayAfterRegstn; + clusterFeatureArray clusterFeatureArray_AfterRegstn; +*/ + + +}; \ No newline at end of file diff --git a/include/veloslam/kalmanfilter.h b/include/veloslam/kalmanfilter.h new file mode 100644 index 0000000..57be749 --- /dev/null +++ b/include/veloslam/kalmanfilter.h @@ -0,0 +1,77 @@ +/***************By yuanjun**************************/ +#pragma once + +#include "veloslam/veloscan.h" +#include "veloslam/matrix.h" + +using namespace std; + +typedef struct _X_state +{ + float x_position; + float z_positon; + float x_speed; + float z_speed; + +}ObjectState; + +typedef struct _Z_measurement +{ + float x_measurement; + float z_measurement; +}Measurement; + +class KalmanFilter +{ +public: + KalmanFilter(); + KalmanFilter(clusterFeature &glu,double rollAngle); + ~KalmanFilter(void); + + void InitialKalmanFilter(clusterFeature &glu); + + void timeUpdate(); + + void stateUpdate(clusterFeature &glu,double rollAngle,double *pos); + + ObjectState GetCurrentState(); + + ObjectState GetPredictState(); + + Measurement GetPredictMeasurement(double rollAngle,double *pos); + + CMatrix CalMeasureDeviation(); + + KalmanFilter& operator = (const KalmanFilter& anotherKF); + + void CalCoorRoll(double angle); + +public: + + CMatrix A; + + CMatrix H; + + CMatrix X1; + + CMatrix X2; + + CMatrix Z; + + CMatrix K; + + CMatrix Q; + + CMatrix R; + + CMatrix P1; + + CMatrix P2; + + CMatrix CoordinateRoll; + + double angle; +}; + + + diff --git a/include/veloslam/lap.h b/include/veloslam/lap.h new file mode 100644 index 0000000..f541f00 --- /dev/null +++ b/include/veloslam/lap.h @@ -0,0 +1,43 @@ +/************************************************************************ +* +* lap.cpp + version 1.0 - 4 September 1996 + author: Roy Jonker @ MagicLogic Optimization Inc. + e-mail: roy_jonker@magiclogic.com + + Code for Linear Assignment Problem, according to + + "A Shortest Augmenting Path Algorithm for Dense and Sparse Linear + Assignment Problems," Computing 38, 325-340, 1987 + + by + + R. Jonker and A. Volgenant, University of Amsterdam. +* +*************************************************************************/ + +#include +#include +#include +#include + +using namespace std; + +#define BIG 100000 + +#if !defined TRUE +#define TRUE 1 +#endif +#if !defined FALSE +#define FALSE 0 +#endif + +typedef int Boolean; +typedef int row; +typedef int col; +typedef double cost; + +cost lap(int dim, cost **assigncost,col *rowsol, row *colsol,cost *u,cost *v); + +void checklap(int dim,cost **assigncost,col *rowsol,row *colsol,cost *u,cost *v); + diff --git a/include/veloslam/math_util.h b/include/veloslam/math_util.h new file mode 100644 index 0000000..d206f21 --- /dev/null +++ b/include/veloslam/math_util.h @@ -0,0 +1,144 @@ +#ifndef _MATHUTIL_H +#define _MATHUTIL_H + +#include +#include +#include +#include + +#ifndef _MSC_VER +#define _finite finite +#endif + +//#define INFINITY FLT_MAX +#define M_PI 3.14159265358979323846 +//#define M_PI_2 3.14159265358979323846*2 +//#define NAN 0 + +#define to_radians(x) ( (x) * (M_PI / 180.0 )) +#define to_degrees(x) ( (x) * (180.0 / M_PI )) + +void sincos(double ra, double * sinra, double* cosra); +int isless(double x, double y); + + +//inline int isfinite(double x) { return _finite(x); } + +static inline double sq(double v) +{ + return v*v; +} + +static inline double sgn(double v) +{ + return (v>=0) ? 1 : -1; +} + +// random number between [0, 1) +static inline float randf() +{ + return ((float) rand()) / (RAND_MAX + 1.0); +} + + +static inline float signed_randf() +{ + return randf()*2 - 1; +} + +#ifdef _MSC_VER +static inline double fmin(double a, double b) +{ + return (a < b) ? a : b; +} + +static inline double fmax(double a, double b) +{ + return (a > b) ? a : b; +} +#endif +// return a random integer between [0, bound) +static inline int irand(int bound) +{ + int v = (int) (randf()*bound); + assert(v >= 0); + assert(v < bound); + return v; +} + +#ifndef PI +#define PI 3.14159265358979323846264338 +#endif + +#define TWOPI_INV (0.5/PI) +#define TWOPI (2*PI) + +/** valid only for v > 0 **/ +static inline double mod2pi_positive(double vin) +{ + double q = vin * TWOPI_INV + 0.5; + int qi = (int) q; + + return vin - qi*TWOPI; +} + +/** Map v to [-PI, PI] **/ +static inline double mod2pi(double vin) +{ + if (vin < 0) + return -mod2pi_positive(-vin); + else + return mod2pi_positive(vin); +} + +/** Return vin such that it is within PI degrees of ref **/ +static inline double mod2pi_ref(double ref, double vin) +{ + return ref + mod2pi(vin - ref); +} + +static inline int theta_to_int(double theta, int max) +{ + theta = mod2pi_ref(M_PI, theta); + int v = (int) (theta / ( 2 * M_PI ) * max); + + if (v==max) + v = 0; + + assert (v >= 0 && v < max); + + return v; +} + +static inline int imin(int a, int b) +{ + return (a < b) ? a : b; +} + +static inline int imax(int a, int b) +{ + return (a > b) ? a : b; +} + +static inline float fmin(float a, float b) +{ + return (a < b) ? a : b; +} + +static inline float fmax(float a, float b) +{ + return (a > b) ? a : b; +} + +static inline int iclamp(int v, int minv, int maxv) +{ + return imax(minv, imin(v, maxv)); +} + +static inline double fclamp(double v, double minv, double maxv) +{ + return fmax(minv, fmin(v, maxv)); +} + + +#endif diff --git a/include/veloslam/matrix.h b/include/veloslam/matrix.h new file mode 100644 index 0000000..fdb0a22 --- /dev/null +++ b/include/veloslam/matrix.h @@ -0,0 +1,181 @@ +///////////////////////////////////////////////////////////////////////////// +// Matrix.h : +// Interface of the class CMatrix +// Author : freeia +// Modified Date : 3/11/2003 +// E-mail : freeia@163.com +// Company/School : hdcad +///////////////////////////////////////////////////////////////////////////// + +#ifndef _MATRIX_H +#define _MATRIX_H + +#include + +using namespace std; + +typedef vector VDOUBLE; +typedef vector TMatrix; + + +class CMatrix +{ + + /************************************************************************ + * the interface function of the class CMatrix * + ************************************************************************/ +public: + + ///////////////////////////////////////////////////////////////////////// + // Construction and Destruction + CMatrix(); + + CMatrix(CMatrix& cMatrixB); + + ~CMatrix(); + + TMatrix m_pTMatrix; + + ///////////////////////////////////////////////////////////////////////// + // According to the parameters nRow & nCol to construct a matrix + CMatrix(unsigned int nRow, unsigned int nCol); + + + ///////////////////////////////////////////////////////////////////////// + // This function initialize the matrix : + // the matrix which has been initialized has 0 row & 0 column, and + // all elements in it is zeros. + // + void Initialize(); + + ///////////////////////////////////////////////////////////////////////// + // This function initialize the matrix : + // all elements in it is zeros. + // + void InitializeZero(); + + ///////////////////////////////////////////////////////////////////////// + // To make random in the elements of the matrix and the elements of the + // matrix has been randomized between -1 and 1.These elements must be + // decimal fractions. + // + void RandomInitialize(); + + ///////////////////////////////////////////////////////////////////////// + // Overload Operations + + // 'CMatrix + CMatrix' + CMatrix operator + (CMatrix& cMatrixB); + // 'CMatrix - CMatrix' + CMatrix operator - (CMatrix& cMatrixB); + // 'CMatrix * CMatrix' + CMatrix operator * (CMatrix& cMatrixB); + // 'CMatrix * double' + CMatrix operator * (double nValue); + // 'CMatrix = CMatrix' + CMatrix& operator = (CMatrix& cMatrixB); + CMatrix& operator = (const CMatrix& cMatrixB); + // 'CMatrix += CMatrix' + CMatrix& operator += (CMatrix& cMatrixB); + // 'CMatrix .* CMatrix' + CMatrix operator / (CMatrix& cMatrixB); + + CMatrix Transpose(); + + ///////////////////////////////////////////////////////////////////////// + // Inverse the matrix + // + CMatrix Inverse(); + + unsigned int GetMatrixRowNumber() const + { + return m_nRow; + } + + ///////////////////////////////////////////////////////////////////////// + // Get the matrix Colum Number + // + unsigned int GetMatrixColNumber() const + { + return m_nCol; + } + + void CopySubMatrixFromVector(CMatrix& cMatrix,unsigned int nIndex); + + void CopySubMatrix(CMatrix& cMatrix,unsigned int nStartX,unsigned int nStartY); + + void CopyMatrix(CMatrix& cMatrix); + + CMatrix MergeColumnsToColumnVector(); + + CMatrix Sigmoid(); + + CMatrix SigmoidDerivative(); + + CMatrix tanh(); + + CMatrix tanhDerivative(); + + CMatrix Tansig(); + + CMatrix TansigDerivative(); + + void MakeAllColumnElementsSameValue(unsigned int nRowIndex); + + void Eye(); + + double GetSystemError() const; + + CMatrix AbsoluteValue(); + + void GetMatrixData(CMatrix& cMatrix, unsigned int nIndex); + + void SetMatrixData(CMatrix& cMatrix, unsigned int nIndex); + + + void GetMatrixRowData(CMatrix& cMatrix, unsigned int nIndex, unsigned int nRow); + + + void SetMatrixRowData(CMatrix& cMatrix, unsigned int nIndex, unsigned int nRow); + + ///////////////////////////////////////////////////////////////////////// + // Get the total value of the matrix + double GetTotalElementValue(); + + + void nncpyi(CMatrix &cMatrix, unsigned int nTimes); + + + void nncpyd(CMatrix &cMatrix); + + + void nncpy (CMatrix& cMatrix, unsigned int nTimes); + + + +public: + + unsigned int m_nRow; + unsigned int m_nCol; + + + void SetMatrixRowNumber(unsigned int nRow); + + void SetMatrixColNumber(unsigned int nCol); + + void SetMatrixRowAndCol(unsigned int nRow,unsigned int nCol); + + void SwapMatrixRow(unsigned int nRow1,unsigned int nRow2); + + void SwapMatrixCol(unsigned int nCol1,unsigned int nCol2); +}; + + +///////////////////////////////////////////////////////////////////////////// +// overload operator 'double - CMatrix' +CMatrix operator - (double nValue,CMatrix& cMatrixB); + +CMatrix MergeMatrix(CMatrix& cMatrixA,CMatrix& cMatrixB); + + +#endif // _MATRIX_H \ No newline at end of file diff --git a/include/veloslam/multiscan_random_field.h b/include/veloslam/multiscan_random_field.h new file mode 100644 index 0000000..c158cde --- /dev/null +++ b/include/veloslam/multiscan_random_field.h @@ -0,0 +1,14 @@ +#pragma once +#include "veloslam/veloscan.h" +#include "veloslam/svm.h" + +class Random_field +{ +public: + Random_field(void); + ~Random_field(void); + +public: + +}; + diff --git a/include/veloslam/pcddump.h b/include/veloslam/pcddump.h new file mode 100644 index 0000000..3724847 --- /dev/null +++ b/include/veloslam/pcddump.h @@ -0,0 +1,9 @@ +#pragma once + +#include +#include +#include "veloslam/veloscan.h" +#include "veloslam/tracker.h" + +void DumpPointtoFile(cluster &gluData1, string filename); +void DumpFeaturetoFile(clusterFeature &glu, string filename); diff --git a/include/veloslam/svm.h b/include/veloslam/svm.h new file mode 100644 index 0000000..dbc5e08 --- /dev/null +++ b/include/veloslam/svm.h @@ -0,0 +1,101 @@ +#ifndef _LIBSVM_H +#define _LIBSVM_H + +#define LIBSVM_VERSION 311 + +#ifdef __cplusplus +extern "C" { +#endif + +extern int libsvm_version; + +struct svm_node +{ + int index; + double value; +}; + +struct svm_problem +{ + int l; + double *y; + struct svm_node **x; +}; + +enum { C_SVC, NU_SVC, ONE_CLASS, EPSILON_SVR, NU_SVR }; /* svm_type */ +enum { LINEAR, POLY, RBF, SIGMOID, PRECOMPUTED }; /* kernel_type */ + +struct svm_parameter +{ + int svm_type; + int kernel_type; + int degree; /* for poly */ + double gamma; /* for poly/rbf/sigmoid */ + double coef0; /* for poly/sigmoid */ + + /* these are for training only */ + double cache_size; /* in MB */ + double eps; /* stopping criteria */ + double C; /* for C_SVC, EPSILON_SVR and NU_SVR */ + int nr_weight; /* for C_SVC */ + int *weight_label; /* for C_SVC */ + double* weight; /* for C_SVC */ + double nu; /* for NU_SVC, ONE_CLASS, and NU_SVR */ + double p; /* for EPSILON_SVR */ + int shrinking; /* use the shrinking heuristics */ + int probability; /* do probability estimates */ +}; + +// +// svm_model +// +struct svm_model +{ + struct svm_parameter param; /* parameter */ + int nr_class; /* number of classes, = 2 in regression/one class svm */ + int l; /* total #SV */ + struct svm_node **SV; /* SVs (SV[l]) */ + double **sv_coef; /* coefficients for SVs in decision functions (sv_coef[k-1][l]) */ + double *rho; /* constants in decision functions (rho[k*(k-1)/2]) */ + double *probA; /* pariwise probability information */ + double *probB; + + /* for classification only */ + + int *label; /* label of each class (label[k]) */ + int *nSV; /* number of SVs for each class (nSV[k]) */ + /* nSV[0] + nSV[1] + ... + nSV[k-1] = l */ + /* XXX */ + int free_sv; /* 1 if svm_model is created by svm_load_model*/ + /* 0 if svm_model is created by svm_train */ +}; + +struct svm_model *svm_train(const struct svm_problem *prob, const struct svm_parameter *param); +void svm_cross_validation(const struct svm_problem *prob, const struct svm_parameter *param, int nr_fold, double *target); + +int svm_save_model(const char *model_file_name, const struct svm_model *model); +struct svm_model *svm_load_model(const char *model_file_name); + +int svm_get_svm_type(const struct svm_model *model); +int svm_get_nr_class(const struct svm_model *model); +void svm_get_labels(const struct svm_model *model, int *label); +double svm_get_svr_probability(const struct svm_model *model); + +double svm_predict_values(const struct svm_model *model, const struct svm_node *x, double* dec_values); +double svm_predict(const struct svm_model *model, const struct svm_node *x); +double svm_predict_probability(const struct svm_model *model, const struct svm_node *x, double* prob_estimates); + +void svm_free_model_content(struct svm_model *model_ptr); +void svm_free_and_destroy_model(struct svm_model **model_ptr_ptr); +void svm_destroy_param(struct svm_parameter *param); + +const char *svm_check_parameter(const struct svm_problem *prob, const struct svm_parameter *param); +int svm_check_probability_model(const struct svm_model *model); + +void svm_set_print_string_function(void (*print_func)(const char *)); + +#ifdef __cplusplus +} +#endif + +#endif /* _LIBSVM_H */ diff --git a/include/veloslam/tracker.h b/include/veloslam/tracker.h new file mode 100644 index 0000000..436a544 --- /dev/null +++ b/include/veloslam/tracker.h @@ -0,0 +1,44 @@ +#pragma once +#include "veloslam/veloscan.h" +#include "veloslam/kalmanfilter.h" +#include + +using namespace std; + +struct MoveState +{ + ObjectState targetState; + int frameNo; +}; + +class Tracker +{ +public: + Tracker(void); + Tracker(clusterFeature &glu,double rollAngle);//added by yuanjun + Tracker(const Tracker ©Tracker);//added by yuanjun + ~Tracker(void); + void TrackerReset();//added by yuanjun + + // for log all the cluster for tracking + deque statusList; + deque dataList; + // log the tracker is or not Matched. + + // bool Matched or not; + bool missMatch; + //for log Cluster ID in lastScan. + int matchClusterID; + //show different color. + int colorIdx; + // for log the lift length trackerID + int trackerID; + + int missedTime;//added by yuanjun + KalmanFilter kalmanFilter;//added by yuanjun + vector moveStateList;//added by yuanjun + + //feature for movement + float moving_distance; +}; + diff --git a/include/veloslam/trackermanager.h b/include/veloslam/trackermanager.h new file mode 100644 index 0000000..d7e2fe0 --- /dev/null +++ b/include/veloslam/trackermanager.h @@ -0,0 +1,83 @@ +#pragma once + +#include +#include +#include "slam6d/scan.h" +#include "veloslam/tracker.h" + +//#define NO_SLIDING_WINDOW + +using namespace std; +extern float constant_static_or_moving; +struct ClusterStatus +{ + bool FilterRet; + bool Matched; +}; + +int GetScanID_in_SlidingWindow(int absNO, int current_pos, int window_size); + + +class TrackerManager +{ +public: + TrackerManager(void); + + ~TrackerManager(void); + + int Init(void); + + int getNumberofTracker(void); + + int HandleScan(VeloScan& scanRef,int trackingAlgo); + + int ClassifiyTrackersObjects(vector allScans, int currentNO ,int windowsize); + + static bool TrackerFilter(clusterFeature &glu, cluster &gluData); + + void TrackerManagerReset(); //added by yuanjun + + void GetTwoScanRoll(Scan *CurrentScan, Scan *preScan);//added by yuanjun + ///////////////////////////////////////////////////////////////// + int DrawEgoTrajectory(); + + int DrawTrackersMovtion_Long_Number_All(vector allScans, int n); + + int DrawTrackersContrailAfterFilted(vector allScans); + ////////////////////////////////////////////////////////////////// +public: + int ListTrackers(); + + int UpdateTrackers(VeloScan& scanRef); + + int UpdateClustersPoistioninTrackers(); + + int AddTrackers(VeloScan& scanRef); + + int MatchTrackers(VeloScan& scanRef,Tracker& tracker,float kg); + + int CalculateTrackersFeature(vector allScans, int currentNO ,int windowsize); + + int MarkClassifiyTrackersResult(vector allScans, int currentNO ,int windowsize); + + int RemoveNoUsedTracker(VeloScan& scanRef); + + int FilterObject(VeloScan& scanRef); + + CMatrix ConstructCostMatrix(VeloScan &scanRef,int *clusterIndex); + + int MatchTracksWithClusters(VeloScan &scanRef); + + list tracks; + //log the new trackerNo should begin + int trackerStartID; + //only for draw the color + int colorIdx; + //log the cluster status such as bool FilterRet; bool Matched; + vector clusterStatus; //should move in cluster struct + + double delta_Theta[3], delta_Pos[3], rollAngle;//added by yuanjun + + //VeloScan *preScan; //added by yuanjun +}; + diff --git a/include/veloslam/velodefs.h b/include/veloslam/velodefs.h new file mode 100644 index 0000000..b26b2e3 --- /dev/null +++ b/include/veloslam/velodefs.h @@ -0,0 +1,16 @@ +#ifndef __SCAN_VELODEFS_H__ +#define __SCAN_VELODEFS_H__ + +#define POINT_TYPE_INVALID 0x00000001 +#define POINT_TYPE_ABOVE_DELTA_R 0x00000002 +#define POINT_TYPE_BELOW_DELTA_R 0x00000004 +#define POINT_TYPE_ABOVE_DELTA_Y 0x00000008 +#define POINT_TYPE_BELOW_DELTA_Y 0x00000010 +#define POINT_TYPE_ABOVE_R 0x00000020 +#define POINT_TYPE_BELOW_R 0x00000040 +#define POINT_TYPE_STATIC_OBJECT 0x00000080 +#define POINT_TYPE_MOVING_OBJECT 0x00000100 +#define POINT_TYPE_GROUND 0x00000200 + + +#endif diff --git a/include/veloslam/veloscan.h b/include/veloslam/veloscan.h new file mode 100644 index 0000000..44f0247 --- /dev/null +++ b/include/veloslam/veloscan.h @@ -0,0 +1,87 @@ +/** + * @file + * @brief Representation of a 3D scan and implementation of scan matching + * @author Andreas Nuechter. Jacobs University Bremen, Germany + * @author Li Wei, Wuhan University, China + * @author Li Ming, Wuhan University, China + */ + +#ifndef __VELOSCAN_H__ +#define __VELOSCAN_H__ + +#ifdef _MSC_VER +#define snprintf _snprintf +#undef _STDIO_DEFINED +#define _USE_MATH_DEFINES +#endif + +#include +#include + +#include "slam6d/scan.h" +#include "veloslam/gridcell.h" +#include "veloslam/gridcluster.h" + +bool FilterNOMovingObjcets(clusterFeature &glu, cluster &gluData); + +class Trajectory +{ + public: + Trajectory(); + public: + vector path; +}; + + +/** + * @brief 3D scan representation and implementation of dynamic velodyne scan matching + */ +class VeloScan : public Scan { + +public: + VeloScan(); + VeloScan(const VeloScan& s); + ~VeloScan(); + +public: + // FIXME + void FindingAllofObject(int maxDist, int minDist); + void TrackingAllofObject(int trackingAlgo); + void ExchangePointCloud(); + void ClassifiAllofObject(); + + int DumpScan(string filename); + int DumpScanRedPoints(string filename); + int DeletePoints(); + + int CalcRadAndTheta(); + int TransferToCellArray(int maxDist, int minDist); + + void MarkStaticorMovingPointCloud(); + void FreeAllCellAndCluterMemory(); + void ClassifiAllObject(); + void ClassifibyTrackingAllObject(int currentNO ,int windowsize); + void calcReducedPoints_byClassifi(double voxelSize, int nrpts, PointType pointtype); + + int CalcScanCellFeature(); + int CalcCellFeature(cell& cellobj,cellFeature& f); + int FindAndCalcScanClusterFeature(); + int SearchNeigh(cluster& clu,charvv& flagvv,int i,int j); + int CalcClusterFeature(cluster& clu,clusterFeature& f); + void SaveObjectsInPCD(int index, cluster &gClusterData ); + void SaveFrameInPCD( ); + + bool isTrackerHandled; + long scanid; + + /** scanCellFeatureArray */ + cellArray scanCellArray; + cellFeatureArray scanCellFeatureArray; + + clusterArray scanClusterArray; + clusterFeatureArray scanClusterFeatureArray; + + int clusterNum;//the number of clusters to be tracked, added by yuanjun +}; + +#endif diff --git a/manifest.xml b/manifest.xml new file mode 100644 index 0000000..dbeb311 --- /dev/null +++ b/manifest.xml @@ -0,0 +1,21 @@ + + + Slam6D - This project consists of a software to register 3D point clouds + into a common coordinate system, as well as a viewer to display the szene. + For the registration, different ICP minimizing algorithms can be chosen, + as well as global relaxation methods, aiming at generating an overall + globally consistent szene. Several formats for the point clouds are + supported, new formats can be implemented easily. + + Andreas Nuechter, Kai Lingemann, Jochen Sprickerhof, Dorit Borrmann, Jan Elseberg + GPL + + https://slam6d.svn.sourceforge.net/svnroot/slam6d + + + + + + + diff --git a/src/grid/2DGridder.cc b/src/grid/2DGridder.cc new file mode 100644 index 0000000..cd03444 --- /dev/null +++ b/src/grid/2DGridder.cc @@ -0,0 +1,507 @@ +/* + * 2DGridder implementation + * + * Copyright (C) Uwe Hebbelmann, Sebastian Stock, Andre Schemschat + * + * Released under the GPL version 3. + * + */ + +#include "grid/scanGrid.h" +#include "grid/scanToGrid.h" +#include "slam6d/scan.h" +#include "grid/scanmanager.h" +#include "grid/parcelmanager.h" +#include "grid/gridWriter.h" +#include "grid/viewpointinfo.h" +#include "grid/gridlines.h" +#include "slam6d/globals.icc" + +#include "grid/Debug.h" + +#include +#include +#include +#include +#include +#include + +using std::cerr; +using std::flush; + +#ifdef _MSC_VER + #define _USE_MATH_DEFINES + #include + #include "GL/glut.h" /* Header File For The glu toolkit */ + #include "XGetopt.h" +#else + #include + #include +#endif + +/** + * 2DGridder + * + * Main class to convert a 3D scan to a 2D grid + * + * @author Andre Schemschadt, Uwe Hebbelmann, Sebastian Stock + * @date 20.02.2008 + */ + +/** + * Explains the usage of this program's command line parameters + * + * @param prog name of the program + */ +void usage(char* prog) +{ +#ifndef _MSC_VER + const string bold("\033[1m"); + const string normal("\033[m"); +#else + const string bold(""); + const string normal(""); +#endif + + cout << endl + << "Usage: " << prog << endl + << " [-s NR] [-e NR] [-m NR] [-M NR] [-f F] [-o DIR] [-t] " << endl + << " [-h NR] [-H NR] [-r NR] [-w] [-p NR] [-P Nr] [-y] [-n] " < cannot be smaller than .\n"; + exit(1); + } + break; + case 'c': + count = atoi(optarg); + if( count < 1){ + cerr << "Error: must be greater than 1.\n"; + exit(1); + } + break; + case 'R': + resume = true; + break; + case 'm': + maxDist = atoi(optarg); + break; + case 'M': + minDist = atoi(optarg); + break; + case 't': + readInitial = true; + break; + case 'f': + try { + type = formatname_to_io_type(optarg); + } catch (...) { // runtime_error + cerr << "Format " << optarg << " unknown." << endl; + abort(); + } + break; + case 'H': + maxHeight = atoi(optarg); + break; + case 'h': + minHeight = atoi(optarg); + break; + case 'g': + writeGrids = true; + break; + case 'r': + resolution = atol(optarg); + if (resolution < 1) { + cerr << "Error: cannot be smaller than 1.\n"; + exit(1); + } + break; + case 'w': + waypoints = false; + break; + case 'n': + neighbours = false; + break; + case 'p': + parcelWidth = atol(optarg); + if (parcelWidth < 1) { + cerr << "Error: cannot be smaller than 1.\n"; + exit(1); + } + break; + case 'P': + parcelHeight = atol(optarg); + if (parcelHeight < 1) { + cerr << "Error: cannot be smaller than 1.\n"; + exit(1); + } + break; + case 'y': + correctY = true; + break; + case 'a': + spotradius = atoi(optarg); + if (spotradius < 0) { + cerr << "Error: cannot be smaller than 0.\n"; + exit(1); + } + break; + case 'd': + writeWorld = false; + break; + case 'l': + writeLines = true; + break; + case 'i': + writeWorldppm = true; + break; + case '?': + usage(argv[0]); + return 1; + default: + abort(); + }} + + if (optind != argc-1) { + cerr << "\n*** Input directory missing ***" << endl; + usage(argv[0]); + } + inputdir = argv[optind]; + + //If no output directory is set, set it to the input directory + if (outputdir == "") outputdir = inputdir; + +#ifndef _MSC_VER + if (inputdir[inputdir.length()-1] != '/') inputdir = inputdir + "/"; + if (outputdir[outputdir.length()-1] != '/') outputdir = outputdir + "/"; +#else + if (inputdir[inputdir.length()-1] != '\\') inputdir = inputdir + "\\"; + if (outputdir[outputdir.length()-1] != '\\') outputdir = outputdir + "\\"; +#endif + + return 0; +} + +/** + * Main function. + * Reads the scan (scan000.3d, ...) and frames files (scan000.frames, ...) from the data directory. + * The frames are used for animation of the matching process. Converts the 3D scan data to a 2D grid map + * and stores it + * + * @param argc count of the command-line arguments + * @param argv command-line arguments + */ +int main(int argc, char **argv){ + // Start message + cout << "(c) University of Osnabrueck, 2006 - 2008" << endl << endl + << "Restricted Usage" << endl + << "Don't use without permission" << endl; + + + // Usage + if(argc <= 1){ + usage(argv[0]); + } + + /////////////////////////////////////// + // Defaultvalues + string scandir = ""; + string outputdir = "./parcels/"; + + int start = 0; + int end = -1; + int maxDistance = 2500; + int minDistance = -1; + bool readInitial = false; + IOType scantype = UOS; + bool correctY = false; + + double maxRelevantHeight = 50; + double minRelevantHeight = 2; + long resolution = 10; + bool createWaypoints = true; + bool createNeighbours = true; + + int parcelWidth = 1000; + int parcelHeight = 1000; + + int spotradius = 15; + + bool writeWorld = true; + bool writeLines = false; + bool writeGrids = false; + bool writeWorldppm = false; + + double isSolidPoint = 0.2; + int count = 50; + bool resume = false; + /////////////////////////////////////// + + + // parses the command-line arguments and sets the respective flags + parseArgs(argc, argv, + scandir, outputdir, start, end, maxDistance, minDistance, + readInitial, scantype, correctY, + minRelevantHeight, maxRelevantHeight, resolution, + createWaypoints, createNeighbours, + parcelWidth, parcelHeight, + writeWorld, writeLines, writeGrids, spotradius, writeWorldppm, + count, resume); + + // calculate parcel width and height + parcelWidth /= resolution; + parcelHeight /= resolution; + + // create parcelmanager + cout << "Create parcelmanager ..." << endl; + parcelmanager parcelman(parcelWidth, parcelHeight, + outputdir, resolution, resume); + + cout << "Create viewpointlist ... " << endl; + viewpointinfo viewpoint(outputdir); + + for (int i = start; i <= end; i+=count) + { + int endloop = i + count - 1 < end ? i + count - 1 : end; + + // get Scans + cout << "Reading scans " << i << " to " << endloop << " ... "; + scanmanager scanman; + scanman.startscan(scandir, outputdir, scantype, i, endloop, + readInitial, maxDistance, minDistance, + correctY); + + cout << "Done."<< endl; + + // create grid from scans + cout << "Creating grids " << i << " to " << endloop << " ... "; + scanToGrid stg(resolution, + minRelevantHeight, + maxRelevantHeight, + maxDistance, + spotradius, + createWaypoints, + createNeighbours); + + cout << "Done."<< endl; + + // convert scans + cout << "Converting " << scanman.getScanCount() <<" scans ... "; + + vector grids; + for(size_t j = 0; j < scanman.getScanCount(); j++) + { + cout << "." << flush; + double* p = scanman.getMatrix(j).back(); + scanman.getScan(j).transformAll(p); + grids.push_back(stg.convert(scanman.getScan(j), p)); + } + cout << "Done." << endl; + + // start writing + cout << "Processing from " << i << " to " << endloop << endl; + for(size_t j = 0; j < grids.size(); ++j) + { + cout << "Adding scan " << i << " ... " << flush; + parcelman.addGrid(grids[j], + grids[j]->getViewpointX(), + grids[j]->getViewpointZ()); + + viewpoint.addGrid(grids[j]); + cout << "Done."<< endl; + } + + // print grids for each scan if wished + if(writeGrids) + { + cout << "Writing grids " << i + << " to " << endloop << " ... " << endl; + + string str; + stringstream stream; + for(size_t j = 0; j < grids.size(); ++j) + { + cout << "Writing grid " << i << " ... " << flush; + stream.clear(); + stream << outputdir << "grid" << j+i << ".ppm "; + stream >> str; + + ppmWriter writer(str); + writer.write(*grids[j]); + cout << "Done."< + +#include "grid/grid.h" +#include + +/** + * CTor. + * Allocates an array of gridPoints + * and sets the offsets and sizes + * + * @param offsetX the x-offest of the array + * @param offsetZ the z-offset of the array + * @param sizeX the x-size of the array + * @param sizeZ the y-size of the array + */ +grid::grid(long offsetX, long offsetZ, long sizeX, long sizeZ) +{ + if(sizeX < 1 || sizeZ < 1) + { + std::cerr << "ERROR: Invalid array size in grid::grid! "<< std::endl; + exit(1); + } + + points = NULL; + + // Allocate array + this->points = new gridPoint**[sizeX]; + + for(int i=0; i < sizeX; ++i) + { + this->points[i] = new gridPoint*[sizeZ]; + for(int j=0; j < sizeZ; ++j) + { + this->points[i][j] = new gridPoint(offsetX + i, offsetZ + j); + } + } + + this->offsetX = offsetX; + this->offsetZ = offsetZ; + this->sizeX = sizeX; + this->sizeZ = sizeZ; +} + +/** + * DTor. Deletes the array + */ +grid::~grid() +{ + clear(); +} + +/** + * Frees the memory if array is set + */ +void grid::clear() +{ + if(this->points == NULL) + return; + + // delete all points + for(int i=0; i < getSizeX(); ++i) + { + for(int j=0; j < getSizeZ(); ++j) + { + delete this->points[i][j]; + } + + delete[] this->points[i]; + } + + delete[] this->points; + + this->points = NULL; +} + +/** + * Adds point to given point in the grid (updates the point) + * + * @param x the absolute x coordinate + * @param z the absolute z coordinate + * @param occupied is the point occupied or free? + * @param weight weighting of the information + */ +void grid::addPoint(long x, long z, unsigned int count, unsigned int occupied) +{ + if(this->points == NULL) + { + std::cerr << "ERROR: In grid::addPoint, allocate never called!" << std::endl; + exit(1); + } + + // get the absolute gridPoint + gridPoint *p = getAbsolutePoint(x, z); + + // increase counters + p->addCount(count, occupied); +} + +/** + * Adds new point into the grid or updates the point with new + * point information + * @param point a reference to the point (new information) + */ +void grid::addPoint(const gridPoint& point) +{ + gridPoint *p = getAbsolutePoint(point.getX(), point.getZ()); + p->addCount(point.getCount(), point.getOccupied()); +} + +/** + * Sets values for the point + * + * @param x absolute x coordinate + * @param z absolute z coordinate + * @param count new counter value (number of counts) + * @param occupied new occupied value (number of occupieds) + */ +void grid::setPoint(long x, long z, unsigned int count, unsigned int occupied) +{ + gridPoint* p = getAbsolutePoint(x, z); + p->setFixed(count, occupied); +} + +/** + * Returns point of the absolute coordinates + * The absolute coordinates get transformed to relative coordinates + + * @param x the absolute x coordinate + * @param z the absolute z coordinate + * + * @return gridPoint* pointer to the found gridPoint + */ +gridPoint* grid::getAbsolutePoint(long x, long z) const +{ + // Transform to relative coordinates + x -= getOffsetX(); + z -= getOffsetZ(); + + if( x < 0 || x >= getSizeX() || z < 0 || z >= getSizeZ()) + { + std::cerr << "ERROR: In grid::getAbsolutePoint (" + << x << "|" << z <<") not in the grid!" << std::endl; + exit(1); + } + + return this->points[x][z]; +} + + + diff --git a/src/grid/gridPoint.cc b/src/grid/gridPoint.cc new file mode 100644 index 0000000..b10ba71 --- /dev/null +++ b/src/grid/gridPoint.cc @@ -0,0 +1,74 @@ +/* + * gridPoint implementation + * + * Copyright (C) Uwe Hebbelmann, Sebastian Stock, Andre Schemschat + * + * Released under the GPL version 3. + * + */ + +#include "grid/gridPoint.h" +#include +#include + +/** + * CTor. Sets counter and occupied to 0 and the coordinates to x and z + * + * @param x the x coordinate + * @param z the z coordinate + */ +gridPoint::gridPoint(long x, long z) +{ + this->x = x; + this->z = z; + this->count = 0; + this->occupied = 0; +} + +/** + * The Method increases the internal counter of the point. + * If only count should be increased, occupied must be 0; + * + * @param count weighting of the information + * @param occupied Weighting of occupied info + */ +void gridPoint::addCount(unsigned int count, unsigned int occupied) +{ + if(count < 0 || occupied < 0) + { + std::cerr << "ERROR: Invalid values in gridPoint::addCount " << std::endl; + std::cerr << "(" << count << " " << occupied << ")" << std::endl; + exit(1); + } + + this->count += count; + this->occupied += occupied; +} + +/** + * Sets the counters to count and occupied + * + * @param count new Count + * @param occupied new Occupied + */ +void gridPoint::setFixed(unsigned int count, unsigned int occupied) +{ + this->count = count; + this->occupied = occupied; +} + + +/** + * Calculates the percentage for the gridPoint + * If count is 0 the point has not been reached and -1 is returned, + * otherwise occupied/count + * + * @return percentage of the gridPoint occupancy [0.0 1.0] or -1.0 + */ +float gridPoint::getPercent() const +{ + if(this->count == 0) + return -1.0; + + return (float)this->occupied / (float)this->count; +} diff --git a/src/grid/gridWriter.cc b/src/grid/gridWriter.cc new file mode 100644 index 0000000..9da05b2 --- /dev/null +++ b/src/grid/gridWriter.cc @@ -0,0 +1,229 @@ +/* + * gridWriter implementation + * + * Copyright (C) Uwe Hebbelmann, Sebastian Stock, Andre Schemschat + * + * Released under the GPL version 3. + * + */ + +#include "grid/gridWriter.h" +#include +#include +#include +using std::cerr; +using std::endl; +#include +using std::ofstream; + +/** + * CTor of gridWriter. Tries to the file + * specified by file and saves the stream if + * successfull + * + * @param file The filename of the file + */ +gridWriter::gridWriter(string file) +{ + this->stream.open(file.c_str()); + if(!this->stream.good()) + { + cerr << "ERROR: In gridWriter::gridWriter, unable to open the stream for gridWriter! " << endl; + cerr << "(Filename: " << file << ")" << endl; + exit(1); + } +} + +/** + * CTor for passing in an already opened stream. + * The stream is validated, so it must already be open + * + * @param stream A reference to the stream to be used + */ +gridWriter::gridWriter(ofstream &stream) +{ +} + +/** + * DTor. Closes the stream if open + */ +gridWriter::~gridWriter() +{ + if(this->stream.is_open()) + this->stream.close(); +} + +/** + * CTor. Just calls gridWriter ctor. + * See gridWriter::gridWriter(string) for more infos. + * @param file The filename to be opend. + */ +ppmWriter::ppmWriter(string file) + : gridWriter(file) +{} + +/** + * CTor. Just calls gridWriter ctor + * See gridWriter::gridWriter(stream) for more infos. + * @param stream the Stream + */ +ppmWriter::ppmWriter(ofstream &stream) + : gridWriter(stream) +{} + +/** + * Method writes the grid to the ppm file format + * @param grid the grid to write + */ +void ppmWriter::write(const grid& grid) +{ + stream << "P2" << endl; + stream << "#Breite Hoehe" << endl; + stream << grid.getSizeX() << " " << grid.getSizeZ() << endl; + stream << "100" << endl; + + for(long i=grid.getSizeZ()-1; i >=0 ; --i) + { + for(long j=0; j < grid.getSizeX(); ++j) + { + if(grid.points[j][i]->getPercent() < 0) + stream << "50 "; + else + stream << 100 - (int)(grid.points[j][i]->getPercent() * 100) << " "; + } + stream << endl; + } +} + +/** + * CTor. Just calls gridWriter ctor. + * See gridWriter::gridWriter(string) for more infos. + * @param file The filename to be opend. + */ +parcelWriter::parcelWriter(string file) + : gridWriter(file) +{ +} + +/** + * CTor. Just calls gridWriter ctor + * See gridWriter::gridWriter(stream) for more infos. + * @param stream the Stream + */ +parcelWriter::parcelWriter(ofstream &stream) + : gridWriter(stream) +{ +} + +/** + * Method writes the grid to the parcel file format + * @param grid the grid to write + */ +void parcelWriter::write(const grid& grid) +{ + stream << grid.getSizeX() << " " << grid.getSizeZ() << endl; + stream << grid.getOffsetX() << " " << grid.getOffsetZ() << endl; + + for(long i = 0; i < grid.getSizeX(); ++i) + for(long j = 0; j < grid.getSizeZ(); j++) + stream << grid.points[i][j]->getX() << " " + << grid.points[i][j]->getZ() << " " + << grid.points[i][j]->getCount() << " " + << grid.points[i][j]->getOccupied() << endl; +} + +/** + * CTor. Just calls gridWriter ctor + * See gridWriter::gridWriter(stream) for more infos. + * @param stream the Stream + */ +gnuplotWriter::gnuplotWriter(ofstream &stream) + : gridWriter(stream) +{ +} + +/** + * CTor. Just calls gridWriter ctor + * See gridWriter::gridWriter(string) for more infos + * @param file The filename + */ +gnuplotWriter::gnuplotWriter(string file) + : gridWriter(file) +{ +} + +/** + * Method writes the grid to the gnuplot file format + * @param grid the grid to write + */ +void gnuplotWriter::write(const grid& grid) +{ + for(long i=0; i < grid.getSizeX(); ++i) + for(long j=0; j < grid.getSizeZ(); ++j) + stream << grid.points[i][j]->getX() << " " + << grid.points[i][j]->getZ() << " " + << grid.points[i][j]->getPercent() << endl; +} + +/** + * CTor of worldwriter. Tries to open the stream and + * writes some initial data about the world. (write is called + * several times, so do it here) + * + * @param file The filename + * @param minX The minimal found X value of all parcels + * @param maxX The maximal found x value of all parcels + * @param minZ The minimal found z value of all parcels + * @param maxZ The maximal found z value of all parcels + * @param resolution the resolution of the world + * @param vpX the x coordinate of the viewpoint + * @param vpZ the z coordinate of the viewpoint + */ +worldWriter::worldWriter(string file, long minX, long maxX, long minZ, long maxZ, int resolution, long vpX, long vpZ) + : gridWriter(file) +{ + stream << "1" << endl; + stream << resolution << endl; + stream << minX << " " << maxX << " " << minZ << " " << maxZ << endl; + stream << vpX << " " << vpZ << endl; +} + + /** + * CTor of worldwriter. Checks if the stream is valid and + * writes some initial data about the world. (write is called + * several times, so do it here) + * + * @param stream The stream to write to + * @param minX The minimal found X value of all parcels + * @param maxX The maximal found x value of all parcels + * @param minZ The minimal found z value of all parcels + * @param maxZ The maximal found z value of all parcels + * @param resolution the resolution of the world + * @param vpX the x coordinate of the viewpoint + * @param vpZ the z coordinate of the viewpoint + */ +worldWriter::worldWriter(ofstream& stream, long minX, long maxX, long minZ, long maxZ, int resolution, long vpX, long vpZ) + : gridWriter(stream) +{ + stream << "1" << endl; + stream << resolution << endl; + stream << minX << " " << maxX << " " << minZ << " " << maxZ << endl; + stream << vpX << " " << vpZ << endl; +} + +/** + * Method writes the grid to the world file format + * @param grid the grid to write + */ +void worldWriter::write(const grid& grid) +{ + for(int i=0; i < grid.getSizeX(); ++i) + { + for(int j=0; j < grid.getSizeZ(); ++j) + { + stream << grid.points[i][j]->getX() << " " + << grid.points[i][j]->getZ() << " " + << grid.points[i][j]->getPercent() << endl; + } + } +} diff --git a/src/grid/gridlines.cc b/src/grid/gridlines.cc new file mode 100644 index 0000000..c2f9b86 --- /dev/null +++ b/src/grid/gridlines.cc @@ -0,0 +1,215 @@ +/* + * gridlines implementation + * + * Copyright (C) Uwe Hebbelmann, Sebastian Stock, Andre Schemschat + * + * Released under the GPL version 3. + * + */ + +#include "grid/gridlines.h" +#include "grid/hough.h" + +#include +using std::cout; +using std::cerr; +using std::endl; +#include +using std::ofstream; + +#define MINIMALLINELENGTH 2 + +/** + * CTOR + * + * @param g Grid in which lines should be created + * @param max_distance the maximal relecant distance for points + */ +gridlines::gridlines(grid * g, int max_distance, double isSolidPoint) +{ + this->isSolidPoint = isSolidPoint; + createLines(g, max_distance); +} + +/** + * Creates the lines for the grid g and stores + * them in the vector "lines" (clears the vector first) + * Uses hough transformation + * + * @param g the grid that the lines will be created for + * @param max_distance the maximal relevant distance for points + */ +void gridlines::createLines(grid* g, int max_distance) +{ + // read the data out of the grid + double x, z; + vector vx; + vector vz; + + // initialize minimal and maximal x and z values + double xmin = 8000.0, xmax = -8000.0, ymin = 8000.0, ymax = -8000.0; + for (int i = 0; i < g->getSizeX(); i++) { + for (int j = 0; j < g->getSizeZ(); j++) { + //store the point if percentage > ISSOLIDPOINT + if (g->points[i][j]->getPercent() > isSolidPoint) { + x = g->points[i][j]->getX(); + z = g->points[i][j]->getZ(); + + vx.push_back(x); + vz.push_back(z); + + // calculate minimal and maximal x and z values + if (x > xmax) xmax = x; + if (x < xmin) xmin = x; + if (z > ymax) ymax = z; + if (z < ymin) ymin = z; + } + } + } + + // cut the maximal and minimal values if they are too big + if (xmax > max_distance) xmax = max_distance; + if (ymax > max_distance) ymax = max_distance; + if (xmin < -max_distance) xmin = -max_distance; + if (ymin < -max_distance) ymin = -max_distance; + + // create arrays for the "hough" class and norm values +// double array_x[vx.size()], array_z[vz.size()]; + double *array_x = new double[vx.size()]; + double *array_z = new double[vz.size()]; + for (size_t t = 0; t < vx.size(); t++) { + array_x[t] = vx.at(t) - xmin; + array_z[t] = vz.at(t) - ymin; + } + + // set and get parameters for Hough transformation + int sht_nr = 80; + double max_rho_d = sqrt(pow(xmax-xmin, 2) + pow(ymax-ymin, 2)); + + //Set maximal distance + SHT_set_max_distance(max_distance, vx.size()); + + // result variables + int sht_nr_line_pts; + double *sht_x_line_pts = new double[vx.size()]; + double *sht_y_line_pts = new double[vx.size()]; + + // get sht_resolutuion + int sht_resolution = max_distance; + sht_init(sht_resolution); + + // get sht_histogram + int **sht_histogram; + sht_histogram = SHT_alloc_histogram(sht_resolution, sht_resolution); + + // call of Hough transformation + SHT_get_hough_lines(vx.size(), + array_x, + array_z, + sht_resolution, + max_rho_d, + sht_histogram, + sht_nr, + &sht_nr_line_pts, + sht_x_line_pts, + sht_y_line_pts, + xmin, + ymin, + 1); + + cout << "Found " << sht_nr_line_pts/2 << " lines!" << endl; + + // set results back -> norm + for (int j = 0; j < sht_nr_line_pts; j++) { + sht_x_line_pts[j] += xmin; + sht_y_line_pts[j] += ymin; + } + + // delete all lines + this->lines.clear(); + + // store the calculated lines + for (int i = 0; (i < sht_nr_line_pts); i+=2) { + gridPoint* temp_point1 = new gridPoint((long) sht_x_line_pts[i], (long) sht_y_line_pts[i]); + gridPoint* temp_point2 = new gridPoint((long) sht_x_line_pts[i+1], (long) sht_y_line_pts[i+1]); + + if (temp_point1->isSmallerThan(*temp_point2)) { + lines.push_back(line(temp_point1, temp_point2)); + } else { + lines.push_back(line(temp_point2, temp_point1)); + } + } + + SHT_free_histogram(sht_histogram, sht_resolution); + + delete[] array_x; + delete[] array_z; + delete[] sht_x_line_pts; + delete[] sht_y_line_pts; +} + +/** + * Getter for the vector with the lines + * + * @returns the vector with the created lines + */ +vector* gridlines::getLines() +{ + return &this->lines; +} + +/** + * Writes the lines to a gnuplot file + * + * @param file the file to write to + */ +void gridlines::writeGnuPlot(string file) +{ + ofstream str; + str.open(file.c_str()); + if(!str.good()) + { + cerr << "ERROR: In gridlines::writeGnuPlot, unable to open the stream! " + << endl; + cerr << "(Filename: " << file << ")" << endl; + exit(1); + } + + for(size_t i = 0; i < lines.size(); i++) { + str << lines.at(i).getStartX() << " " << lines.at(i).getStartZ() << endl; + str << lines.at(i).getEndX() << " " << lines.at(i).getEndZ() << endl; + str << endl; + } + + str.close(); +} + +/** + * Writes the lines to a lin file + * + * @param file the file to write to + */ +void gridlines::writeLin(string file) +{ + ofstream str; + str.open(file.c_str()); + if(!str.good()) + { + cerr << "ERROR: In gridlines::writeLin, unable to open the stream! " + << endl; + cerr << "(Filename: " << file << ")" << endl; + exit(1); + } + + for(size_t i = 0; i < lines.size(); i++) { + if(lines.at(i).getLength() < MINIMALLINELENGTH) + continue; + + str << "BEGIN" << endl; + str << lines.at(i).getStartX() << " 0 " << lines.at(i).getStartZ() << endl; + str << lines.at(i).getEndX() << " 0 " << lines.at(i).getEndZ() << endl; + str << "END" << endl; + } + + str.close(); +} diff --git a/src/grid/hough.cc b/src/grid/hough.cc new file mode 100644 index 0000000..04df3da --- /dev/null +++ b/src/grid/hough.cc @@ -0,0 +1,991 @@ +/* + * 2D hough transform for line detection implementation + * + * Copyright (C) Hartmut Surmann + * + * Released under the GPL version 3. + * + */ + + +/*************************************************************************** + * hough.c + *************************************************************************** + * PROJECT : 3D-LASER + * AUTHOR : Hartmut Surmann + *************************************************************************** + * DESCRIPTION + * Implements some basic hough functions to detect lines in laserscans + * It writes a GnuPlot file in the debug case. + * NOTE : This is only a test program, it is'nt intended to be the + * definitive evaluation tool. + *************************************************************************** + * SYNTAX : hough [depth level] + * ARGUMENTS + * depth level : default is ScanAZ which means find all lines + : default datafile ist test20.dat +***************************************************************************/ +/* COMPILE it with (it needs test20.dat) + gcc -o hough -g -O2 -m486 -Wall hough.c -lm -DSTANDALONE + gcc -o hough -pg -a -O2 -m486 -Wall hough.c -lm -DSTANDALONE +*/ + +#include "grid/hough.h" +#include +/*************************************************************************** + * CONSTANTS & MACROS + ***************************************************************************/ + +#ifndef M_PI +#define M_PI 3.14159265358979323846 +#endif + + +/***********************FOR HOUGH TRANSFORMATION***************************/ +int DATA_RANGE = 725; +int ScanAZ = 721; +#define SKIP 0 +#define EPSILON 3.1 // absoluter abstand zwischen geradengleichung und wert +//#define DIST 600 // wert zum quadrat ab diesem Wert haben wir eine Luecke +#define RAD2DEG 57.29578 // umrechnungsfaktor bogenmass grad +//#define DIST 6.9 // ab diesem Wert haben wir eine Luecke +#define MIN(a,b) ((a)<(b)?(a):(b)) +#define MAX(a,b) ((a)>(b)?(a):(b)) +#define SQR(a) ((a)*(a)) + + +/*********************** HOUGH TRANSFORMATION***************************/ + + + +/*************************************************************************** + * DATA STRUCTURE DEFINITIONS + ***************************************************************************/ + +/*************************************************************************** + * PUBLIC GLOBAL VARIABLES + ***************************************************************************/ +double *sin_theta = NULL, *cos_theta = NULL; +int max_trigo_size = 0; +int **k_index; +double alpha = M_PI / ScanAZ; +int MAX_DISTANCE = 750; // war vorher define jetzt von aussen manipulierbar + +#ifdef STANDALONE + +/*************************************************************************** + * PRIVATE FUNCTION DEFINITIONS + ***************************************************************************/ +/** + *-------------------------------------------------------------------------* + * NAME : AddNumberToFileName + * DESCRIPTION + * Add a number to a filename. The number will be inserted at the end of + * the name an before the last extension or '.' + * PARAMETERS + * 'src' : The original file name. + * 'dest' : The resulting file name. + * 'number' : The number to add. + * RESULT + * A pointer to the buffer in which is stored the resulting file name. + * Always equal to 'dest' + *------------------------------------------------------------------------- + */ +char *AddNumberToFileName(char *src, char *dest, long number) +{ + long aux; + + /* Find the last '.' */ + aux = strlen(src); + while ( (src[aux] != '.') && (aux >= 0)) + aux--; + + /* Adds the number */ + if (aux == -1) + sprintf(dest, "%s%03ld", src, number); + else + { + strncpy(dest, src, aux); + sprintf(dest + aux, "%03ld%s",number, src + aux); + } + + return dest; +} + +#else //STANDALONE +extern char *AddNumberToFileName(char *src, char *dest, long number); +//extern unsigned long GetCurrentTimeInMilliSec(void); +//extern __inline__ unsigned long long int rdtsc(); +#endif + + +/**************************************************************************/ +/***********************START HOUGH TRANSFORMATION***************************/ +/**************************************************************************/ + + +#define dist_func(x1,x2,y1,y2) ((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)) +/** + * + */ +double distance_func(double x1,double x2, + double y1, double y2) +{ + double x,y; + + x = x1 - x2; + y = y1 - y2; + x = x * x; + y = y * y; + + return (sqrt(x + y)); +} +/** + * compute sin(theta) table from 0 to resolution + */ +int calc_sin_theta(int resolution, double *sin_theta) +{ + int j; + double resolution_d = (double)resolution; /* (double) form of resolution */ + double theta; + + for (j=0; j < resolution; j++) { + theta = M_PI * (j/(resolution_d) - 0.5); + sin_theta[j] = sin(theta); + } + return 0; +} +/** + * compute cos(theta) table from 0 to resolution + */ +int calc_cos_theta(int resolution, double *cos_theta) +{ + int j; + double resolution_d = (double)resolution; /* (double) form of resolution */ + double theta; + + for (j=0; j < resolution; j++) { + theta = M_PI * (j/(resolution_d) - 0.5); + cos_theta[j] = cos(theta); + } + return 0; +} +/** + * + */ +void SHT_set_max_distance(int max_distance, int drange) +{ + MAX_DISTANCE = max_distance; + DATA_RANGE = drange + 2; + ScanAZ = drange; +} +/** + * + */ +int SHT_get_max_distance(void) +{ + return(MAX_DISTANCE); +} +/** + * Allocate space for the histogram. + * histogram is an array of pointers to arrays. + */ +int **SHT_alloc_histogram(int x_max, int y_max) +{ + int x; + int **histogram; + + histogram = (int **)calloc(x_max, sizeof(int *)); + if (histogram == NULL) { + fprintf(stderr, "malloc failed in alloc_histogram() in sht_line.c\n"); + exit(1); + } + for (x = 0; x < x_max; x++) { + histogram[x] = (int *)calloc(y_max , sizeof(int)); + if (histogram[x] == NULL) { + fprintf(stderr, "malloc failed in alloc_histogram() in sht_line.c\n"); + exit(1); + } + } + return(histogram); +} +/** + *sin_theta and cos_theta must be global + */ +int sht_init(int sht_resolution) +{ + int i; + + if (max_trigo_size < sht_resolution) { + sin_theta = (double *) realloc(sin_theta,sizeof(double)*sht_resolution); + cos_theta = (double *) realloc(cos_theta,sizeof(double)*sht_resolution); + max_trigo_size = sht_resolution; + } + + calc_sin_theta(sht_resolution, sin_theta); + calc_cos_theta(sht_resolution, cos_theta); + + k_index = (int **)malloc(sizeof(int *)*DATA_RANGE); + for (i = 0; i < DATA_RANGE; i++) { + k_index[i] = (int *)malloc(sizeof(int)*sht_resolution); + } + return 0; +} +/** + * + */ +void SHT_init_histogram(int **histogram, int x_max, int y_max) +{ + int x, y; + for (x=0; x < x_max; x++) { + for (y=0; y < y_max; y++) { + histogram[x][y] = 0; + } + } +} +/** + * + */ +void SHT_free_histogram(int **histogram, int x_max) +{ + int x,i; + + for (x = 0; x < x_max; x++) { + free(histogram[x]); + } + free(histogram); + for (i = 0; i < DATA_RANGE; i++) { + free(k_index[i]); + } +} +/** + * nr_pts are the number of scan points to be used (black points) + * resolution is the resolution used over + * e.g. resolution = 100 + * then we produce a 100 x 100 histogram which covers the + * relevent area of rho-theta space. + * histogram is stored as an array of pointers to arrays. + */ +int SHT_hough_transform(int nr_pts, double *x, double *y, + int resolution, double max_rho_d, int **histogram, + double xmin, double ymin) +{ + //wykobi::trigonometry_tables; + int i, j, k; + double rho; + int res_half = resolution >> 1; + double mult_factor = resolution/(2.0*max_rho_d); + /* Find Hough transform of points. */ + for (i=0; i < nr_pts; i++) { + if ((fabs(x[i]+xmin) < MAX_DISTANCE) && (fabs(y[i]+ymin) < MAX_DISTANCE)){ + for (j=0; j < resolution; j++) { + rho = cos_theta[j]*(double )x[i] + sin_theta[j]*(double )y[i]; + k = (int)(rho * mult_factor) + res_half; + if ((k < 0) || (k >= resolution)) + printf("ERROR: %d %f %f %d %f %d %f %f %f\n", + i,x[i],y[i],j,rho,k,max_rho_d,xmin,ymin); + else { + histogram[j][k]++; + k_index[i][j] = k; + } + } + } + } + return 0; +} +/** + * Find average value of histogram (only consider + * non-zero entries in histogram). + * Use this as a model of the background noise value + * of the histogram. + * When the largest histogram value is less than this + * average, then we will have removed all maxima from + * histogram. + */ +unsigned long SHT_Find_average_value_of_historgram(int resolution, int **histogram) +{ + unsigned long sum = 0, average = 0, count = 0; + int i,j; + + for (i=0; i < resolution; i++) { + for (j=0; j < resolution; j++) { + if (histogram[i][j] > 0) { + sum += histogram[i][j]; + count++; + } + } + } + if (count != 0) average = sum / count; + return average; +} +/** + * Find max of histogram + */ +unsigned long SHT_Find_max_value_of_historgram(int resolution, int **histogram, + int *imax, int *jmax) +{ + register int maximum = 0; + register int *startptr; + register int i,j; + + *imax=0; *jmax = 0; + for (i=0; i < resolution; i++) + for (j=0, startptr = histogram[i];j < resolution; startptr++,j++) { + if (*startptr > maximum) { + maximum = *startptr; + *imax = i; *jmax = j; + } + } + return maximum; +} +/** + * + */ +int SHT_Print_histogram(FILE *fpr, int resolution, int **histogram, int average) +{ + int i, j; + + fprintf(fpr,"# %d\n", resolution); + for (i=0; i < resolution; i++) { + for (j=0; j < resolution; j++) { + if (histogram[i][j] > 0) fprintf(fpr,"%d %d %d\n", i, j,histogram[i][j]); + } + fprintf(fpr,"\n"); + } + return 0; + +} +/** + * The line is in the form: + * y = mx + b + * and |m| <= 1.0 + */ +int SHT_calc_line(int resolution, double max_rho_d, int **histogram, + int i, int j, double *m, double *b) +{ + double rho; + double resolution_d = (double)resolution; + int ret_val = 0; + + rho = 2.0*max_rho_d * ( (((double )j) - resolution_d/2.0) / resolution_d ); + *m = -cos_theta[i]/sin_theta[i]; + + if (fabs(*m) <= 1.0) { + *b = rho/sin_theta[i]; + ret_val = 0; + } + else { + *m = 1.0/ *m; + *b = rho/cos_theta[i]; + ret_val = 1; + } + return ret_val; +} +/** + * + */ +int SHT_show_line(int resolution, double max_rho_d, int **histogram, + int i, int j, double *x0, double *y0, + double *x1, double *y1) +{ + double m, b; + int go_over_x = 0; + + go_over_x = SHT_calc_line(resolution, max_rho_d, histogram, i, j, &m, &b); + + if (!go_over_x) { + *x0 = -150; *x1 = 150; + *y0 = m * *x0+b; *y1 = m * *x1+b; + } + else { + *y0 = 0.0; *y1 = 300; + *x0 = m* *y0+b; *x1 = m* *y1+b; + } + + return 0; +} + + + +// hier weiter harti 17.08.2000 fprint ersetzen in x bzw y_line_pts + +double SHT_find_line(int nr_pts, double *x, double *y, + int resolution, double max_rho_d, int **histogram, + int ipkt, int jpkt, int *marker, + double length_of_a_line, + int *nr_line_pts, + double *x_line_pts, double *y_line_pts, + double xmin, double ymin) +{ + double m, b; + int count = 0; + double x0,y0,xa,xe,ya,ye; + double *lx = new double[DATA_RANGE]; + double *ly = new double[DATA_RANGE]; + int *index = new int[DATA_RANGE]; + int lastindex = 0; + double *dist = new double[DATA_RANGE]; + double maxlinedist = 0.0, linedist = 0.0; + int go_over_x = 0; + int i, j; + + go_over_x = SHT_calc_line(resolution, max_rho_d, histogram, ipkt, jpkt, &m, &b); + /* Find Hough transform of points. */ + for (i=0; i < nr_pts; i++) { + if ((fabs(x[i]+xmin) < MAX_DISTANCE) && (fabs(y[i]+ymin) < MAX_DISTANCE)){ + x0 = (m*y[i]+b+0.5); // +0.5 because int truncate + y0 = (m*x[i]+b+0.5); // +0.5 because int truncate + if ( ((marker[i] == 4) || (marker[i] == 0)) && (((!go_over_x) && (fabs(y[i] -y0)< EPSILON)) || + (( go_over_x) && (fabs(x[i] -x0)< EPSILON)))) { + // now we are on the line + // lx contains all points which are on the line + lx[count] = x[i]; ly[count] = y[i]; index[count]=i; + // dist contains the differents between the points on the line + if (count > 0) + dist[count] = dist_func(x[i],lx[count-1], + y[i],ly[count-1]); + else + dist[count]=0; + if (dist[count] > 2500 ) { + linedist = dist_func(lx[count-1],lx[lastindex], + ly[count-1], ly[lastindex]); + if (linedist > maxlinedist) maxlinedist = linedist; + // is the founded line long enough + if (linedist > length_of_a_line) { + // ok show the line + xa = (m*ly[lastindex]+b+0.5); + xe = (m*ly[count-1]+b+0.5); + ya = (m*lx[lastindex]+b+0.5); + ye = (m*lx[count-1]+b+0.5); + x_line_pts[*nr_line_pts] = (go_over_x?xa:lx[lastindex]); + y_line_pts[(*nr_line_pts)++] = (go_over_x?ly[lastindex]:ya); + x_line_pts[*nr_line_pts] = (go_over_x?xe:lx[count-1]); + y_line_pts[(*nr_line_pts)++] = (go_over_x?ly[count-1]:ye); + // mark all these points + for (j = lastindex; j <= count-1;j++) { + if (marker[index[j]] == 4) marker[index[j]] = 1; + else marker[index[j]] = 3; + } + } + lastindex=count; + } + count++; + } + } + } + linedist = dist_func(lx[count-1] ,lx[lastindex], + ly[count-1], ly[lastindex]); + if (linedist > maxlinedist) maxlinedist = linedist; + // is the founded line long enough + if (linedist > length_of_a_line) { + // ok show the line + xa = (int)(m*ly[lastindex]+b+0.5); + xe = (int)(m*ly[count-1]+b+0.5); + ya = (int)(m*lx[lastindex]+b+0.5); + ye = (int)(m*lx[count-1]+b+0.5); + x_line_pts[*nr_line_pts] = (go_over_x?xa:lx[lastindex]); + y_line_pts[(*nr_line_pts)++] = (go_over_x?ly[lastindex]:ya); + x_line_pts[*nr_line_pts] = (go_over_x?xe:lx[count-1]); + y_line_pts[(*nr_line_pts)++] = (go_over_x?ly[count-1]:ye); + // mark all these points + for (j = lastindex; j <= count-1;j++) marker[index[j]] = 1; + if (count-1 > lastindex) { + marker[index[lastindex]] = 3; /* anfangs und endpunkte extra markieren */ + marker[index[count-1]] = 3; + } + } + + delete[] lx; + delete[] ly; + delete[] index; + delete[] dist; + + return maxlinedist; +} + +/** + * falls wir nicht einen orginal scan haben sondern nur wild unsotierte Punkte + * 1cm genauigkeit 2 cm luecke wird akzeptiert + */ +double SHT_find_unsorted_line(int nr_pts, double *x, double *y, + int resolution, double max_rho_d, int **histogram, + int ipkt, int jpkt, int *marker, + double length_of_a_line, + int *nr_line_pts, + double *x_line_pts, double *y_line_pts, + double xmin, double ymin) +{ + double m, b; + int count = 0; + double x0,y0; + double maxlinedist = 0.0, linedist = 0.0; + int go_over_x = 0; + int i; + int maxlen_index = 0, minlen_index = 0, *line_pts, *li, startpkt = 0, luecke = 0, lasti= 0; + double len = 0.0, maxlen = 0.0, minlen = 0; + int ref_index = -1; + go_over_x = SHT_calc_line(resolution, max_rho_d, histogram, ipkt, jpkt, &m, &b); + /* Find Hough transform of points. */ + // first calc maximal len of all possible lines + for (i=0; i < nr_pts; i++) { + if ((fabs(x[i]+xmin) < MAX_DISTANCE) && (fabs(y[i]+ymin) < MAX_DISTANCE)){ + x0 = (m*y[i]+b+0.5); // +0.5 because int truncate + y0 = (m*x[i]+b+0.5); // +0.5 because int truncate + if ( ((marker[i] == 4) || (marker[i] == 0)) && (((!go_over_x) && (fabs(y[i] -y0)< EPSILON)) || + (( go_over_x) && (fabs(x[i] -x0)< EPSILON)))) { + if (ref_index == -1) { // init + ref_index = i; + maxlen = minlen = 0.0; + maxlen_index = minlen_index = i; + len = 0.0; + } + else { + len = distance_func(x[i], x[ref_index], + y[i], y[ref_index]); + if (go_over_x) { + if ((y[i] - y[ref_index]) < 0 ) { + len *= -1.0; + if (len < minlen) { + minlen = len; + minlen_index = i; + } + } + else { + if (len > maxlen) { + maxlen = len; + maxlen_index = i; + } + if (len < minlen) { + minlen = len; + minlen_index = i; + } + } + } + else { // go over y + if ((x[i] - x[ref_index]) < 0 ) { + len *= -1.0; + if (len < minlen) { + minlen = len; + minlen_index = i; + } + if (len > maxlen) { + maxlen = len; + maxlen_index = i; + } + } + else { + if (len < minlen) { + minlen = len; + minlen_index = i; + } + if (len > maxlen) { + maxlen = len; + maxlen_index = i; + } + } + } + } // else loop + count++; + } // on the point + } // in distance + } // loop + maxlinedist = distance_func(x[maxlen_index], x[minlen_index], + y[maxlen_index], y[minlen_index]); + line_pts = (int *) calloc((int)(maxlinedist+200),sizeof(int)); + li = (int *) calloc((int)(2.0*maxlinedist+200),sizeof(int)); + // now calc historgramm of the line + for (i=0; i < nr_pts; i++) { + if ((fabs(x[i]+xmin) < MAX_DISTANCE) && (fabs(y[i]+ymin) < MAX_DISTANCE)){ + x0 = (m*y[i]+b+0.5); // +0.5 because int truncate + y0 = (m*x[i]+b+0.5); // +0.5 because int truncate + if ( ((marker[i] == 4) || (marker[i] == 0)) && (((!go_over_x) && (fabs(y[i] -y0)< EPSILON)) || + (( go_over_x) && (fabs(x[i] -x0)< EPSILON)))) { + len = distance_func(x[i], x[minlen_index], + y[i], y[minlen_index]); + if (len > (maxlinedist+0.5)) { + printf("PROBLEM %d (%f,%f) %f %f\n",i,x[i],y[i],len,maxlinedist); + maxlinedist = len; + } line_pts[(int)(len)]++; + li[(int)(len)] = i; // index fuer den Punkt + marker[i] = 1; // nur einfache pkt + } + } + } + // startpunkt + startpkt = 0; + linedist = 0.0; + luecke = -1; + lasti = 0; + // and at last calc the sub lines + for (i = 0; i <= (int)(maxlinedist); i++) { + //printf("%d %d %d\n",i,line_pts[i],startpkt); + if (line_pts[i] > 0) { + luecke = 0; + lasti = i; + } + else luecke++; + // startpunkt sezten + if ( (line_pts[i] > 0) && (startpkt == 0)) { + x_line_pts[*nr_line_pts] = x[li[i]]; + y_line_pts[(*nr_line_pts)++] = y[li[i]]; + startpkt = 1; + } + // endpunkt + else if ( ((line_pts[i] == 0) && (startpkt == 1) && (luecke > 3)) || (i == (int)(maxlinedist))) { + x_line_pts[*nr_line_pts] = x[li[lasti]]; + y_line_pts[(*nr_line_pts)++] = y[li[lasti]]; + len = distance_func(x_line_pts[*nr_line_pts - 2], x_line_pts[*nr_line_pts - 1], + y_line_pts[*nr_line_pts - 2], y_line_pts[*nr_line_pts - 1]); + if (len > linedist) linedist = len; + startpkt = 0; + luecke = -1; + } + } + if (startpkt == 1) { + x_line_pts[*nr_line_pts] = x[li[lasti]]; + y_line_pts[(*nr_line_pts)++] = y[li[lasti]]; + } + free(line_pts); + free(li); + /* + printf("%d points are on the line, %d lines found\n",count,*nr_line_pts/2); + fflush(stdout); + */ + return linedist; +} +/** + * + */ +int SHT_remove_line(int nr_pts, double *x, double *y, + int resolution, double max_rho_d, int **histogram, + int *marker, double xmin, double ymin) +{ + int i,j;//, k; + int nr_removed_points = 0; + + for (i=0; i < nr_pts; i++) { + if ((marker[i] == 1) || (marker[i] == 3)) { + marker[i] += 1; // from 1 to 2 or from 3 to 4 + if ((fabs(x[i]+xmin) < MAX_DISTANCE)&&(fabs(y[i]+ymin) < MAX_DISTANCE)){ + nr_removed_points++; + for (j = 0; j < resolution; j++) { + histogram[j][k_index[i][j]]--; + } + } + } + } + return nr_removed_points; +} +/** + * -------------------------------------------------------------------------* + * NAME : SHT_get_hough_lines + * DESCRIPTION + * Gets the lines in a laserscan + * PARAMETERS + * --------- + * RESULT + * number of looped iterations + *------------------------------------------------------------------------- + */ +int SHT_get_hough_lines(int nr_pts, double *x, double *y, + int sht_resolution, double max_rho_d, + int **sht_histogram, int depth, + int *nr_line_pts, + double *x_line_pts, double *y_line_pts, + double xmin, double ymin, int unsorted) +{ +#ifdef STANDALONE + //debug + char filename[256], auxfilename[256]; + unsigned long prev_clock; + FILE *sht_fpr_histogramm; + + strcpy(filename,"plane.dat"); + //prev_clock = GetCurrentTimeInMilliSec(); + unsigned long sht_average; + sht_average = SHT_Find_average_value_of_historgram(sht_resolution, sht_histogram); +#endif + + // sht + unsigned long sht_maximum; + int sht_imax, sht_jmax; + int *sht_marker = new int[ScanAZ]; + double sht_length_of_a_line; + int i = 0; + double m,b; + + // init marker + for (i = 0; i < nr_pts; i++) sht_marker[i] = 0; + *nr_line_pts = 0; + + // hough + SHT_hough_transform(nr_pts, x, y, sht_resolution, max_rho_d, sht_histogram,xmin,ymin); + sht_maximum = SHT_Find_max_value_of_historgram(sht_resolution, sht_histogram, + &sht_imax, &sht_jmax); + i = 0; + while ((sht_maximum > 0) && (i < depth)) { + sht_length_of_a_line = -0.1; + +#ifdef STANDALONE + printf("\n====================================================%d %f\n",i,sht_length_of_a_line); + //printf("%d %ld\n",i,GetCurrentTimeInMilliSec()-prev_clock); + printf("Hough Transformation beendet. Aver: %ld Max %ld, at (%d,%d)\n", + sht_average, sht_maximum, sht_imax,sht_jmax); + fflush(stdout); + // debug Kontroll output of the planes + AddNumberToFileName(filename, auxfilename, i); + sht_fpr_histogramm = fopen(auxfilename,"w"); + SHT_Print_histogram(sht_fpr_histogramm, sht_resolution, sht_histogram, sht_average); + fclose(sht_fpr_histogramm); +#endif + SHT_calc_line(sht_resolution, max_rho_d, sht_histogram, sht_imax, sht_jmax, &m, &b); + if (unsorted) { + SHT_find_unsorted_line(nr_pts, x, y, sht_resolution, max_rho_d, sht_histogram, + sht_imax, sht_jmax, sht_marker, sht_length_of_a_line, + nr_line_pts, x_line_pts, y_line_pts, xmin,ymin); + } + else { + SHT_find_line(nr_pts, x, y, sht_resolution, max_rho_d, sht_histogram, + sht_imax, sht_jmax, sht_marker, sht_length_of_a_line, + nr_line_pts, x_line_pts, y_line_pts, xmin,ymin); + } + SHT_remove_line(nr_pts, x, y, sht_resolution, max_rho_d, + sht_histogram, sht_marker,xmin,ymin); + sht_maximum = SHT_Find_max_value_of_historgram(sht_resolution, sht_histogram, + &sht_imax, &sht_jmax); + i++; + } + delete[] sht_marker; + return i; +} +/** + * Kontroll Ausgabe + */ +int print_hough_lines(int sht_nr_line_pts, int *sht_x_line_pts, int *sht_y_line_pts) +{ + int i; + double dist; + static FILE *fpr = NULL; + + if (fpr == NULL) + fpr = fopen("hough-lines.dat","w"); + printf("# found %d lines\n",(int)(sht_nr_line_pts*0.5)); + fprintf(fpr,"# found %d lines\n",(int)(sht_nr_line_pts*0.5)); + for (i = 0; i < sht_nr_line_pts; i+=2) { + dist = distance_func((double)(sht_x_line_pts[i]),(double)(sht_x_line_pts[i+1]), + (double)(sht_y_line_pts[i]),(double)(sht_y_line_pts[i+1])); + // 1 pkt linien nicht anzeigen + // if (dist > 0.0) { + if (dist > -0.1) { + fprintf(fpr,"#%d %f\n",i/2,dist); + fprintf(fpr,"%d %d\n",sht_x_line_pts[i],sht_y_line_pts[i]); + fprintf(fpr,"%d %d\n\n",sht_x_line_pts[i+1],sht_y_line_pts[i+1]); + } + } + //fclose(fpr); + + return 0; +} + +/**************************************************************************/ +/***********************END HOUGH TRANSFORMATION***************************/ +/**************************************************************************/ + +#ifdef STANDALONE_OLD +int main(int argc, char ** argv) +{ + //debug and init, help + FILE *fpr; // *sht_fpr_gerade + int i, NrPts; + char buffer[256], *ptr = buffer; + int dist[ScanAZ], angle[ScanAZ]; + double amplitude[DATA_RANGE]; + int x[DATA_RANGE]; + int y[DATA_RANGE]; + // double h1,h2,h3,h4; + int h1=1,h2=1,h3,h4; + double scale_val = 1.0; + + // hough + int **sht_histogram; // histogramm der hough + int sht_resolution = 200; // aufloesung der hough + int sht_nr=ScanAZ; // ScanAz heisst alle; Anzahl der Durchlaeufe durch die Hough + // Speicherstruktur Anzahl der Linienpunkte (d.h) Nr_Linien = sht_nr_line_pts/2, + // x,y, 0=Anfang, 1=Ende, .... + int sht_nr_line_pts=0, sht_x_line_pts[2*ScanAZ], sht_y_line_pts[2*ScanAZ]; + int xmin = 2000, xmax = -2000, ymin = 2000, ymax = -2000; + double max_rho_d = 0.0,local_dist=0.0; + + if (argc == 2) + sht_nr = atoi(argv[1]); + else sht_nr = 100; + + // READ input files + fpr = fopen("test20.dat","r"); + // erste zeile ueberlesen + while ((*ptr++ = fgetc(fpr)) != 10) ; + NrPts = atoi(&(buffer[2])); + printf("NrPts: %d\n",NrPts); + for (i = 0; i < NrPts; i++) { + fscanf(fpr,"%d %d",&h3,&h4); + angle[i] = (int)(h1); + dist[i] = (int)h2; + amplitude[i] = h2; + if (i >= SKIP) { + x[i-SKIP] = (int)(h3 * scale_val); + y[i-SKIP] =(int)(h4 * scale_val); + if (x[i-SKIP] > xmax) xmax = x[i-SKIP]; + if (x[i-SKIP] < xmin) xmin = x[i-SKIP]; + if (y[i-SKIP] > ymax) ymax = y[i-SKIP]; + if (y[i-SKIP] < ymin) ymin = y[i-SKIP]; + local_dist = sqrt((x[i-SKIP] - x[i-SKIP-1])* (x[i-SKIP] - x[i-SKIP-1]) + + (y[i-SKIP] - y[i-SKIP-1])* (y[i-SKIP] - y[i-SKIP-1])); + } + } + fclose(fpr); + max_rho_d = sqrt(SQR(xmax-xmin) + SQR(ymax-ymin)); + printf("Maxima:\n%d %d %d %d %f\n",xmin,xmax,ymin,ymax,max_rho_d); + if (xmax > MAX_DISTANCE) xmax = MAX_DISTANCE; + if (ymax > MAX_DISTANCE) ymax = MAX_DISTANCE; + if (xmin < -MAX_DISTANCE) xmin = -MAX_DISTANCE; + if (ymin < -MAX_DISTANCE) ymin = -MAX_DISTANCE; + max_rho_d = sqrt(SQR(xmax-xmin) + SQR(ymax-ymin)); + printf("New Maxima:\n%d %d %d %d %f\n",xmin,xmax,ymin,ymax,max_rho_d); + for (i = 0; i < NrPts - 2*SKIP; i++) { + x[i] -= xmin; + y[i] -= ymin; + } + // START with the hough + // init block + /* Andreas 29.9.2000 + if (max_rho_d > 500) sht_resolution = (int)(max_rho_d * 0.5); + else sht_resolution = (int)(max_rho_d * 0.75); + */ + + sht_resolution = (int)(max_rho_d * 0.75); + + printf("Hough Transformation berechnen mit Aufloesung %d\n",sht_resolution);fflush(stdout); + sht_init(sht_resolution); + sht_histogram = SHT_alloc_histogram(sht_resolution, sht_resolution); + // end init + + + SHT_get_hough_lines(NrPts-2*SKIP, x, y, sht_resolution, max_rho_d, sht_histogram, sht_nr, + &sht_nr_line_pts, sht_x_line_pts, sht_y_line_pts, xmin, ymin); + + for (i = 0; i < sht_nr_line_pts; i++) { + sht_x_line_pts[i] = (sht_x_line_pts[i] + xmin) / scale_val; + sht_y_line_pts[i] = (sht_y_line_pts[i] + ymin) / scale_val; + } + + + + // Kontroll Ausgabe + print_hough_lines(sht_nr_line_pts, sht_x_line_pts, sht_y_line_pts); + printf("end\n");fflush(stdout); + + // hier ist was merkwuerdig bei res = 200 stuertz der Rechner ab + // exit block + SHT_free_histogram(sht_histogram, sht_resolution); + // end exit block + + return 0; + +} + +#endif + +#ifdef STANDALONE +int main(int argc, char ** argv) +{ + + int sht_resolution; + int **sht_histogram; + int sht_nr = 80; // Nr + int sht_nr_line_pts = 0,sht_nr_line = 0; + double sht_x_line_pts[10000], sht_y_line_pts[10000] ; + double max_rho_d; + int result; + + int i; + double array_x[10000], array_y[10000]; // these two arrays build + double xmax, ymax, xmin, ymin; + float x, y; + int temp; + + FILE *fpr; + + xmax = ymax = xmin = ymin = 0; + // READ input files + fpr = fopen("points.dat","r"); + i = 0; + while (!feof(fpr)) { + fscanf(fpr,"%f %f",&x, &y); + + array_x[i] = (double)x; + array_y[i] = (double)y; + + printf("%d %g %g \n",temp, array_x[i],array_y[i]); + + if (array_x[i] > xmax) xmax = array_x[i]; + if (array_x[i] < xmin) xmin = array_x[i]; + if (array_y[i] > ymax) ymax = array_y[i]; + if (array_y[i] < ymin) ymin = array_x[i]; + + i++; + } + fclose(fpr); + + printf("***%f %f %f %f \n",xmax, ymax, xmin, ymin); + printf("*%d \n",i); + + SHT_set_max_distance((int)MAX(xmax,ymax)+1,i); + + + for (int j = 0; j < i; j++) { + array_x[j] -= xmin; + array_y[j] -= ymin; + } + + max_rho_d = sqrt(SQR(xmax-xmin) + SQR(ymax-ymin)); + sht_resolution = (int)(max_rho_d); + sht_init(sht_resolution); + sht_histogram = SHT_alloc_histogram(sht_resolution, sht_resolution); + + result = SHT_get_hough_lines(i, + array_x, + array_y, + sht_resolution, + max_rho_d, + sht_histogram, + sht_nr, + &sht_nr_line_pts, + sht_x_line_pts, + sht_y_line_pts, + xmin, + ymin); + + printf("SHT_get_hough_lines: %d (%d)",result, sht_nr_line_pts); + fflush(stdout); + + fpr = fopen("lines.dat","w"); + + for (int j = 0; j < sht_nr_line_pts; j+=2) { + sht_x_line_pts[j] += xmin; + sht_y_line_pts[j] += ymin; + sht_x_line_pts[j+1] += xmin; + sht_y_line_pts[j+1] += ymin; + + if (SQR(sht_x_line_pts[j] - sht_x_line_pts[j+1]) + + SQR(sht_y_line_pts[j] - sht_y_line_pts[j+1]) > 225) + { + fprintf(fpr,"%g %g \n",sht_x_line_pts[j], sht_y_line_pts[j]); + fprintf(fpr,"%g %g \n\n",sht_x_line_pts[j+1], sht_y_line_pts[j+1]); + } + } + return 0; +} + +#endif + + diff --git a/src/grid/line.cc b/src/grid/line.cc new file mode 100644 index 0000000..4c0133b --- /dev/null +++ b/src/grid/line.cc @@ -0,0 +1,34 @@ +/* + * line implementation + * + * Copyright (C) Uwe Hebbelmann, Sebastian Stock, Andre Schemschat + * + * Released under the GPL version 3. + * + */ + +#include "grid/line.h" +#include + +/** + * CTOR. + * + * @param start the startpoint of the line + * @param end the endpoint of the line + */ +line::line(gridPoint* start, gridPoint* end) +{ + this->start = start; + this->end = end; +} + +/** + * Returns the length of the line + * + * @return the length of the line + */ +double line::getLength() +{ + return sqrt(pow((double)start->getX() - end->getX(), 2) + + pow((double)start->getZ() - end->getZ(), 2)); +} diff --git a/src/grid/parcel.cc b/src/grid/parcel.cc new file mode 100644 index 0000000..214b45f --- /dev/null +++ b/src/grid/parcel.cc @@ -0,0 +1,106 @@ +/* + * parcel implementation + * + * Copyright (C) Uwe Hebbelmann, Sebastian Stock, Andre Schemschat + * + * Released under the GPL version 3. + * + */ + +#include "grid/parcel.h" +#include +#include +#include +using std::cerr; +using std::endl; + +/** + * Ctor + * + * @param offSetX the x-offset of the parcel + * @param offSetZ the z-offset of the parcel + * @param sizeX the width of the parcel + * @param sizeZ the height of the parcel + */ +parcel::parcel(long offSetX, long offSetZ, long sizeX, long sizeZ) + : grid(offSetX, offSetZ, sizeX, sizeZ) +{ +} + +/** + * Adds a grid to the parcel. + * Adds just the points belonging to the parcel and + * ignoring the rest. + * + * @param grid the grid to be added to the parcel + */ +void parcel::addGrid(const grid* g) +{ + // Calculate the startvalue of x + long startX = g->getOffsetX() < getOffsetX() ? getOffsetX() : g->getOffsetX(); + + // calculate z-startvalue + long startZ = g->getOffsetZ() < getOffsetZ() ? getOffsetZ() : g->getOffsetZ(); + + // calculate x-endvalue + long endX = g->getOffsetX() + g->getSizeX() < getOffsetX() + getSizeX() ? g->getOffsetX() + g->getSizeX() + : getOffsetX() + getSizeX(); + + // calculate z-endvalue + long endZ = g->getOffsetZ() + g->getSizeZ() < getOffsetZ() + getSizeZ() ? g->getOffsetZ() + g->getSizeZ() + : getOffsetZ() + getSizeZ(); + + // add every point + for(int i = startX; i < endX; i++) + { + for(int j = startZ; j < endZ; j++) + { + this->addPoint(*g->getAbsolutePoint(i, j)); + } + } +} + +/** + * The static method reads the file and creates a new parcel. + * The parcel is allocated with new, so the caller has to make + * sure it is deleted properly! + * + * @param filename the filename of the parcel + * @return parcel the created parcel + */ +parcel* parcel::readParcel(std::string filename) +{ + std::ifstream infile(filename.c_str()); + + // Stream ok? + if(!infile.good()) + { + std::cerr << "ERROR: In parcel::readparcel, couldn't open stream!" << std::endl; + exit(1); + } + + // Read sizes + long sizeX; + long sizeZ; + infile >> sizeX >> sizeZ; + + // Read offsets + long offsetX; + long offsetZ; + infile >> offsetX >> offsetZ; + + // Create parcel + parcel* p = new parcel(offsetX, offsetZ, sizeX, sizeX); + + // Read all information + long x, z, count, occupied; + while(!infile.eof()) + { + infile >> x >> z >> count >> occupied; + p->setPoint(x, z, count, occupied); + } + + infile.close(); + + return p; +} diff --git a/src/grid/parcelinfo.cc b/src/grid/parcelinfo.cc new file mode 100644 index 0000000..e216d0a --- /dev/null +++ b/src/grid/parcelinfo.cc @@ -0,0 +1,122 @@ +/* + * parcelinfo implementation + * + * Copyright (C) Uwe Hebbelmann, Sebastian Stock, Andre Schemschat + * + * Released under the GPL version 3. + * + */ + +#include "grid/parcelinfo.h" + +long parcelinfo::parcelwidth; +long parcelinfo::parcelheight; + +/** + * Ctor + * @param offsetX the x-offset + * @param offsetZ the z-offset + * @param filename the filename of the parcel + */ +parcelinfo::parcelinfo(long offsetX, long offsetZ, std::string filename) +{ + this->offsetX = offsetX; + this->offsetZ = offsetZ; + this->filename = filename; + this->used = true; +} + +/** + * Sets the parcelsize + * @param with the width of the parcel + * @param height the height of the parcel + */ +void parcelinfo::setParcelsize(long width, long height) +{ + parcelinfo::parcelwidth = width; + parcelinfo::parcelheight = height; +} + +/** + * Sets the used-flag true (Which means + * that the parcel was used during the last scan) + */ +void parcelinfo::setUsed() +{ + this->used = true; +} + +/** + * Resets the used-flag + */ +void parcelinfo::resetUsed() +{ + this->used = false; +} + +/** + * Returns whether the parcel was needed + * @return True if it was needed + */ +int parcelinfo::wasUsed() const +{ + return this->used; +} + +/** + * Operator <. Compares by offsets. + * + * @param parcel the parcel to be compared to this + * @return true if this < parcel + */ +bool parcelinfo::operator< (const parcelinfo& parcel) const +{ + if(getOffsetX() < parcel.getOffsetZ()) + { + return true; + } + else if(getOffsetX() == parcel.getOffsetX()) + { + if(getOffsetZ() < parcel.getOffsetZ()) + return true; + else + return false; + } + else + { + return false; + } +} + +/** + * Compares two parcels if they are equal (Offset-X and -Z equal) + * + * @param parcel the other parcel + * @return true if euqal + */ +bool parcelinfo::operator== (const parcelinfo &parcel) const +{ + return (getOffsetX() == parcel.getOffsetX() && + getOffsetZ() == parcel.getOffsetZ()); +} + +/** + * The methods checks if the coordinates given lie in + * the parcel represented by the parcelinfo + * + * @param x The absolute x coordinate + * @param z the absolute z coordinate + * @return true if the point lies within the parcel + */ +bool parcelinfo::contains(long x, long z) const +{ + bool xIn = (x >= getOffsetX() && + x <= getOffsetX() + parcelinfo::parcelwidth); + + bool zIn = (z >= getOffsetZ() && + z <= getOffsetZ() + parcelinfo::parcelheight); + + return xIn && zIn; +} + + diff --git a/src/grid/parcelmanager.cc b/src/grid/parcelmanager.cc new file mode 100644 index 0000000..43b8e98 --- /dev/null +++ b/src/grid/parcelmanager.cc @@ -0,0 +1,418 @@ +/* + * parcelmanager implementation + * + * Copyright (C) Uwe Hebbelmann, Sebastian Stock, Andre Schemschat + * + * Released under the GPL version 3. + * + */ + +#include "grid/parcelmanager.h" +#include "slam6d/globals.icc" +#include "grid/gridWriter.h" +#include +using std::ifstream; +using std::ofstream; +#include +using std::cerr; +using std::endl; + +/** + * Ctor. + * Sets the static size information of the parcelinfo-class. + * If resume is true, it will try to load the last parcelinfo-file. + * If the file was read successfully, it contains the parcels created + * during the last run of the programm. (See the resumeflag in the + * documentation for more infos) + * + * + * @param width The width of each parcel + * @param height The height of each parcel + * @param path The path of the files + * @param resolution The resolution of a cell + * @param resume If true, last parcelinfofile will be loaded + */ +parcelmanager::parcelmanager(long width, long height, + string path, int resolution, + bool resume) +{ + this->parcelwidth = width; + this->parcelheight = height; + this->viewpointX = 0; + this->viewpointZ = 0; + this->path = path; + this->resolution = resolution; + + this->minX = 0; + this->maxX = 0; + this->minZ = 0; + this->maxZ = 0; + + parcelinfo::setParcelsize(width, height); + + // loadParcelinfo if programm should resume + if(resume) + loadParcelinfo(this->path + PARCELINFOFILE); +} + +/** + * Dtor. + * Calls saveParcelinfo for saving infos about + * already created parcel. + * It also clears the internal structur (calls clear()) + */ +parcelmanager::~parcelmanager() +{ + saveParcelinfo(this->path + PARCELINFOFILE); + + clear(); +} + +/** + * This methods removes all parcels with a not set + * used-flag (in parcelinfo). They are saved to disk + * before they are freed. + * If all is set, all parcels are saved and free regardless + * of their used-flag + * + * @param all Delete all parcels or not? + */ +void parcelmanager::freeMemory(bool all) +{ + parcelmap::iterator cur = this->parcels.begin(); + parcelmap::iterator end = this->parcels.end(); + + // iterate through each parcel + while(cur != end) + { + // if parcel is loaded and wasnt used (or all free) + if(cur->second != NULL && + (!cur->first->wasUsed() || all)) + { + // saving the parcel using the parcel format + // (Must use parcelFormat, otherwise parcel cant be loaded again!) + string filename = cur->first->getFilename(); + parcelWriter writer(filename); + + writer.write(*cur->second); + + delete cur->second; + cur->second = NULL; + + } + + // reset used-flag of parcelinfo + parcelinfo *p = cur->first; + p->resetUsed(); + + ++cur; + } +} + +/** + * The method frees all created parcelinfos and clears the map. + * First it calls freeMemory(true) to save all parcels in memory + */ +void parcelmanager::clear() +{ + freeMemory(true); + + parcelmap::iterator it = this->parcels.begin(); + parcelmap::iterator end = this->parcels.end(); + + while(it != end) + { + delete it->first; + ++it; + } + + this->parcels.clear(); +} + +/** + * The methods loads the parcel specified by info + * into memory. The method does check, if the + * parcel is already loaded, so calling this method + * on an already loaded parcel does nothing. + * + * @param *info A pointer to the parcelinfo + */ +void parcelmanager::loadParcel(parcelinfo* info) +{ + if(this->parcels[info] == NULL) + this->parcels[info] = parcel::readParcel(info->getFilename()); + + updateOuterPoints(this->parcels[info]); +} + + +/** + * The method creates a new parcel. It calculates the offset + * of the new parcel based on the absolute coordinates it is given. + * The new parcel is added to the internal map, along with its + * parcelinfo + * + * @param x The absolute x coordinate + * @param z The absolute z coordinate + */ +void parcelmanager::createParcel(long x, long z) +{ + // calculate offset + long offsetX = (long) (x / this->parcelwidth) * this->parcelwidth; + if (x < 0) + offsetX = offsetX - this->parcelwidth; + + long offsetZ = (long) (z/ this->parcelheight) * this->parcelheight; + if (z < 0) + offsetZ = offsetZ - this->parcelheight; + + + // create parcelinfo and parcel + string filename = this->path + "parcel" + to_string(offsetX) + to_string(offsetZ) + ".pcl"; + + parcelinfo *p = new parcelinfo(offsetX, offsetZ, filename); + + this->parcels[p] = new parcel(offsetX, + offsetZ, + this->parcelwidth, + this->parcelheight); + + // update the new borders + updateOuterPoints(this->parcels[p]); +} + +/** + * Updates the minimal and maximal found limits + * @param g The grid to update + */ +void parcelmanager::updateOuterPoints(const grid *g) +{ + if(g->getOffsetX() < minX) + minX = g->getOffsetX(); + if(g->getOffsetZ() < minZ) + minZ = g->getOffsetZ(); + + if(g->getOffsetX() + g->getSizeX() > maxX) + maxX = g->getOffsetX() + g->getSizeX(); + if(g->getOffsetZ() + g->getSizeZ() > maxZ) + maxZ = g->getOffsetZ() + g->getSizeZ(); +} + + +/** + * The method adds the given grid to the needed parcels. + * It checks which parcels are affected by the grid, loads them if + * they already exist or creates new ones. + * Afterwards it adds the information of the grid to each relevant + * parcels + * + * @param g The grid which should be addeda + * @param vpX The x-coordiante of the viewpoint + * @param vpZ The z-coordinate of the viewpoint + */ +void parcelmanager::addGrid(const grid* g, long vpX, long vpZ) +{ + bool parcelFound; + + this->viewpointX = vpX; + this->viewpointZ = vpZ; + + long iSize = g->getOffsetX() + g->getSizeX(); + long jSize = g->getOffsetZ() + g->getSizeZ(); + + // iterate through all parcels needed in this grid + for(int i=g->getOffsetX() ; i < iSize + this->parcelwidth; i += this->parcelwidth) + { + for(int j=g->getOffsetZ() ; j < jSize + this->parcelheight; j += this->parcelheight) + { + parcelmap::iterator it = this->parcels.begin(); + parcelmap::iterator end = this->parcels.end(); + + parcelFound = false; + + // for each point, iterate through the existing parcels + while(it != end) + { + // parcel contains point + if(it->first->contains(i, j)) + { + // load Parcel if not in memory + if(it->second == NULL) + loadParcel(it->first); + + // reset the counter + it->first->setUsed(); + parcelFound = true; + } + + ++it; + } + + // if parcel was not found, create new + if(parcelFound == false) + createParcel(i, j); + } + } + + // remove all parcels not needed for the scan + freeMemory(false); + + + // Call addGrid for each parcel in memory + // The parcel only integrates the points which are + // relevant to it + parcelmap::iterator it = this->parcels.begin(); + parcelmap::iterator end = this->parcels.end(); + + while(it != end) + { + if(it->second != NULL) + it->second->addGrid(g); + + ++it; + } +} + + +/** + * The method saves the internal parcelinfo map to file, + * so it can be restored for later use (e.g. for additional scans + * based on the same scene) + * + * @param filename The file where the parcelinfos are stored to + */ +void parcelmanager::saveParcelinfo(string filename) +{ + ofstream outfile(filename.c_str()); + + // Check if stream is open and valid + if(!outfile.good()) + { + cerr << "[saveParcelinfo] Fehler, konnte Stream nicht oeffnen" << endl + << "(Filename: " << filename << ")" << endl; + exit(1); + } + + + // iterate all entries and write them + parcelmap::iterator it = this->parcels.begin(); + parcelmap::iterator end = this->parcels.end(); + + while(it != end) + { + outfile << it->first->getOffsetX() << " " + << it->first->getOffsetZ() << " " + << it->first->getFilename() << endl; + + ++it; + } + + outfile.close(); +} + +/** + * The method restores the parcelinfos written by saveParcelinfo. + * + * @param filename The file where the parcelinfos are stored + */ +void parcelmanager::loadParcelinfo(string filename) +{ + ifstream infile(filename.c_str()); + + // Stream ok? + if(!infile.good()) + { + cerr << "[loadparcelinfo] Fehler, konnte Stream nicht oeffnen" << endl + << "(filename: " << filename << ")" << endl; + return; + } + + // clear old information (should be already empty, but make sure) + clear(); + + long offsetX; + long offsetZ; + string file; + + // read all infos + while(!infile.eof()) + { + infile >> offsetX; + if(infile.eof()) continue; + infile >> offsetZ; + if(infile.eof()) continue; + infile >> file; + if(infile.eof()) continue; + + parcelinfo *p = new parcelinfo(offsetX, offsetZ, file); + this->parcels[p] = NULL; + } + + infile.close(); +} + +/** + * This method is able to write the entire world, based on all parcels and create and write lines. + * Each parcel is loaded and then written into a single file. + * Afterwards ALL parcels are stored to file and freed from memory. + * Additionally the world is written in ppm format and lines can be created and written. + * + * The map is written in a format which can be read by the MapViewer of Group2. + * The specification of the format are listed in the documentation + * @param file the filename of the world + */ +void parcelmanager::writeWorld(string file) +{ + worldWriter writer(this->path + file, + this->minX, this->maxX, this->minZ, this->maxZ, + this->resolution, + this->viewpointX, this->viewpointZ); + + + parcelmap::iterator it = parcels.begin(); + parcelmap::iterator end = parcels.end(); + + while(it != end) + { + if(it->second == NULL) + loadParcel(it->first); + + writer.write(*it->second); + + ++it; + } +} + + + +/** + * The method creates a grid of the world. + */ +grid* parcelmanager::createWorldGrid() +{ + grid *g = new grid(this->minX, this->minZ, + this->maxX - this->minX + 1, + this->maxZ - this->minZ + 1); + + parcelmap::iterator it = parcels.begin(); + parcelmap::iterator end = parcels.end(); + + // Go through all parcels + while(it != end) + { + if(it->second == NULL) + loadParcel(it->first); + + for(int i=0; i < it->second->getSizeX(); ++i) + { + for(int j=0; j < it->second->getSizeZ(); ++j) + { + g->addPoint(*(it->second->points[i][j])); + } + } + + ++it; + } + return g; +} + diff --git a/src/grid/scanGrid.cc b/src/grid/scanGrid.cc new file mode 100644 index 0000000..e601beb --- /dev/null +++ b/src/grid/scanGrid.cc @@ -0,0 +1,37 @@ +/* + * scanGrid implementation + * + * Copyright (C) Uwe Hebbelmann, Sebastian Stock, Andre Schemschat + * + * Released under the GPL version 3. + * + */ + +#include "grid/scanGrid.h" + +/** + * CTor. + * Calls CTor of grid and sets viewpointx and viewpointz + * + * @param offsetX the x offset of the robot + * @param offsetZ the z offset of the robot + * @param viewpointX the x-position of the robot + * @param viewpointZ the z-position of the robot + * @param sizeX the x size of the grid + * @param sizeZ the z size of the grid + */ +scanGrid::scanGrid(long viewpointX, long viewpointZ, + long offsetX, long offsetZ, + long sizeX, long sizeZ) + : grid(offsetX, offsetZ, sizeX, sizeZ) +{ + this->viewpointX = viewpointX; + this->viewpointZ = viewpointZ; +} + +/** + * DTor. + */ +scanGrid::~scanGrid() +{ +} diff --git a/src/grid/scanToGrid.cc b/src/grid/scanToGrid.cc new file mode 100644 index 0000000..d065942 --- /dev/null +++ b/src/grid/scanToGrid.cc @@ -0,0 +1,407 @@ +/* + * scanToGrid implementation + * + * Copyright (C) Uwe Hebbelmann, Sebastian Stock, Andre Schemschat + * + * Released under the GPL version 3. + * + */ + +#include +#include +#include + +#include "grid/scanToGrid.h" + +using std::vector; +using std::map; + +/** + * CTor. + * + * @param resolution the resolution of the grid (centimeters per gridunit) + * @param minRelevantHeight The minimal height of a scan that is relevant + * @param maxRelevantHeight The maximal height of a scan that is relevant + * @param maxDistance The maximal relevant distance + * @param minimalWeighting The minimal weighting for the waypoints + * @param createWaypoints If set waypoints will be created + * @param neighbours If set neighbours will be created + */ +scanToGrid::scanToGrid(double resolution, + double minRelevantHeight, double maxRelevantHeight, + int maxDistance, int spotRadius, + bool createWaypoints, bool neighbours) +{ + this->resolution = resolution; + this->minRelevantHeight = minRelevantHeight; + this->maxRelevantHeight = maxRelevantHeight; + this->waypoints = createWaypoints; + this->neighbours = neighbours; + this->spot = (float)spotRadius / 3000.0; + + // Calculate minimal weighting + this->minimalWeighting = 1;//(1((float)minimalWeighting-1)/ +// (float)scaleToGrid(maxDistance)); +} + +/** + * The method checks if the given point is relevant + * for creating the grid. + * It is not relevant if it is below or above a specified + * height, or if it lies to far away (??) + * + * @param p The point to check (not scaled to grid) + * @return True if the point is relevant + */ +bool scanToGrid::isPointRelevant(const Point &p) const +{ + if(p.y < this->minRelevantHeight || p.y > this->maxRelevantHeight) + { + return false; + } + else + return true; +} + +/** + * The method scales the absolute coordinate of the scanpoint + * to the matching coordinate of the gridpoint + * + * @param point the absolute coordinate of the scanpoint + * + * @return the matching coordiante of the gridpoint + */ +long scanToGrid::scaleToGrid(double point) +{ + return (long)(point / this->resolution); +} + +/** + * The methods calculates the norm vector of the vector given + * through x and z. + * The normvector has one direction oflength 1 or -1 and the other + * length in [-1,1] + * @param x The x component of the vector + * @param z the z component of the vector + * @param xnorm Referenz to the double containing the normalized x value afterwards + * @param znorm Referenz to the double containing the normalized z value afterwards + */ +void scanToGrid::calculateNormvector(long x, long z, + double& xnorm, double& znorm) +{ + xnorm = 0; + znorm = 0; + + // if |X| < |Z|, then norm z to 1 and x to x/z + if(abs(x) < abs(z)) + { + if(z == 0) + return; + + xnorm = (double)x / (double)abs(z); + znorm = z / abs(z); // now znorm is 1 or -1 + } + else + { + if(x == 0) + return; + + xnorm = x / abs(x); // now xnorm is 1 or -1 + znorm = (double)z / (double)abs(x); + } +} + +/** + * The method creates a new grid. It determines the size and offset + * of the new grid and calculates the viewpoint of the roboter during + * the scan. + * The new scangrid is allocated using new, but the pointer is not stored, + * so it must be freed by the calling method. + * + * The scan has to be transformed to absolute values before this method is + * called + * + * @param scan the scan to be transformed + * @param transformation the transformationmatrix needed for calculating + * the viewpoint of the roboter + * + * @return pointer to the created grid. + * (Just gets allocated, does not get freed) + */ +scanGrid* scanToGrid::createGrid(Scan& scan, + const double* transformation) +{ + // Calculate the viewpoint of the scan + double rPos[3]; + double rPosTheta[3]; + + Matrix4ToEuler(transformation, rPosTheta, rPos); + + long vpX = scaleToGrid(rPos[0]); + long vpZ = scaleToGrid(rPos[2]); + + // calculate maximal and minimal coordiantes + double maxX = 0; + double maxZ = 0; + double minX = 0; + double minZ = 0; + + DataXYZ xyz(scan.get("xyz")); + + for(size_t i = 0; i < xyz.size(); ++i) + { + Point it = xyz[i]; + + // If the scan is not relevant, skip it + if(!isPointRelevant(it)) + continue; + + if(it.x < minX) minX = it.x; + if(it.x > maxX) maxX = it.x; + if(it.z < minZ) minZ = it.z; + if(it.z > maxZ) maxZ = it.z; + + } + + // get offsets and sizes + long offsetX = scaleToGrid(minX); + long offsetZ = scaleToGrid(minZ); + long sizeX = scaleToGrid(maxX) - offsetX + 1; + long sizeZ = scaleToGrid(maxZ) - offsetZ + 1; + + //returning new grid + return new scanGrid(vpX, vpZ, + offsetX, offsetZ, + sizeX, sizeZ); +} + +/** + * + * !NOTE! Experimental. Currently this is not used! !NOTE! + * + * The method iterates through the grid and checks for each point + * if it has a specified amount of neighbours. If not enough neighbours + * are found, the point is deleted. + * + * @param grid The grid to check + * @param distance + * @param neighbours The amount of neighbours needed for not getting deleted + */ +void scanToGrid::killAlonePoints(scanGrid* grid, + int distance, int neighbours) +{ + std::vector< gridPoint* > exPoints; + + + for(int i=0; i < grid->getSizeX(); ++i) + { + for(int j=0; j < grid->getSizeZ(); ++j) + { + int found = 0; + + for(int a=i - distance; a < i + distance; ++a) + { + for(int b=i - distance; b < i + distance; ++b) + { + if(a > 0 && b > 0 && + a < grid->getSizeX() && b < grid->getSizeZ()) + { + if(grid->points[a][b]->getPercent() > 0) + { + ++found; + } + } + + } + } + + // not enough neigbours found + if(found < neighbours) + { + exPoints.push_back(grid->points[i][j]); + } + + } + } + + vector::iterator it = exPoints.begin(); + vector::iterator end = exPoints.end(); + + while(it != end) + { + //std::cout << "Deleting " << (*it)->getX() << " " << (*it)->getZ() << " " << std::endl; + (*it)->setFixed(0, 0); + ++it; + } +} + +/** + * The method adds additional information about the neighbours of + * the given point based on some sort of probabilityfunction. + * Given the degree of the scanner, the function calculates the insecure + * points and weights them + * + * @param grid The grid to add the information to + * @param x The absolute x coordinate + * @param z The absolute z coordinate + * @param weighting The weighting of the point + */ +void scanToGrid::createNeighbours(scanGrid *grid, long x, long z, float weighting) +{ + // Calculate direction of the neighbours + long dx = - (grid->getViewpointZ() - z); + long dz = grid->getViewpointX() - x; + + // calculating the normvector of them + double xnorm, znorm; + calculateNormvector(dx, dz, xnorm, znorm); + + // calculating number of neighbours to weight + int r = (int) (sqrt((double)(dx*dx + dz*dz)) * this->spot); + + for(int i = -r; i <= r; ++i) + { + // Skip 0 (0 is the actual point on the vector) + if(i == 0) + continue; + + long px = x + (int) (i * xnorm); + long pz = z + (int) (i * znorm); + + // if calculated point not in grid, skip + if( !grid->contains(px, pz)) + continue; + + float weight = weighting / pow(2.0, abs(i*r)); + + // grid->addPoint(px, pz, + // SOLIDWEIGHT * weight, SOLIDWEIGHT * weight); + grid->addPoint(px, pz, SOLIDWEIGHT, SOLIDWEIGHT); + + if(this->waypoints) + createWaypoints(grid, px, pz, weight); + } +} + + +/** + * The method calculates the free waypoints between the robot and + * the occupied point and adds them to the grid. + * The way is weighted with the weighting-parameter to avoid + * that a path overwrites found obstacles + * + * @param grid pointer to the grid to which the points will be added + * @param x the x-coordinate of the occupied point + * @param z the z-coordinate of the occupied point + * @param weighting The weighting of the point on which the path is based. + */ +void scanToGrid::createWaypoints(scanGrid *grid, long x, long z, float weighting) +{ + if(x == 0 || z == 0) + return; + + long dx = x - grid->getViewpointX(); + long dz = z - grid->getViewpointZ(); + + // calculating the normal vector + double xnorm, znorm; + calculateNormvector(dx, dz, xnorm, znorm); + + int distance = (int)floor(sqrt(pow((double)dx, 2) + pow((double)dz, 2)) / + sqrt(pow(xnorm, 2) + pow(znorm, 2))); + + + for(int i=0; i < distance; ++i) + { + long px = grid->getViewpointX() + (long)(i * xnorm); + long pz = grid->getViewpointZ() + (long)(i * znorm); + + // due to some problems with the viewpoint lieing outside + // of the grid, first check if point is in grid + if(grid->contains(px, pz)) + //grid->addPoint(px, pz, (int)(WAYPOINTWEIGHT * weighting), 0); + grid->addPoint(px, pz, WAYPOINTWEIGHT, 0); + } +} + +/** + * The method adds the point represented by the 2 coordinates. It weights + * the point based on weighting. + * + * @param grid The grid to add the point to + * @param x The x coordinate (scaled to grid) + * @param z The z coordinate (scaled to grid) + * @param weighting Importance of the point (0 <= w <= 1) + */ +void scanToGrid::createPoint(scanGrid *grid, long x, long z, float weighting) +{ + // grid->addPoint(x, z, SOLIDWEIGHT, (int)(SOLIDWEIGHT * weighting)); + grid->addPoint(x, z, SOLIDWEIGHT, SOLIDWEIGHT); +} + +/** + * Converts a scan(3D) to a grid(2D). It iterates through each + * found point of the scan, translates it to the grid and adds it + * to the grid. Points that are somehow not relevant to the grid (e.g. points + * that are to low or to high are ignored. See isPointRelevant) + * + * If waypoints is true, it will also create waypoints from the origin of + * the scan to the found point and mark the space in between as free. + * If Neighbours should be created, it will also weight the surrounding + * spaces of the found point. + * + * @param scan The scan to be converted + * @param transformation The transformationmatrix + * @return pointer to the grid + */ +scanGrid* scanToGrid::convert(Scan& scan, const double* transformation) +{ + scanGrid* grid = createGrid(scan, transformation); + + DataXYZ xyz(scan.get("xyz")); + + // go through all points and create the grid + for(size_t i = 0; i < xyz.size(); ++i) + { + Point p = xyz[i]; + + // if the scan is in the relevant area, create Point for it + if(isPointRelevant(p)) + { + long x = scaleToGrid(p.x); + long z = scaleToGrid(p.z); + + float weighting = calculateWeighting(x - grid->getViewpointX(), + z - grid->getViewpointZ()); + createPoint(grid, x, z, weighting); + + if(this->waypoints) + createWaypoints(grid, x, z, weighting); + + if(this->neighbours) + createNeighbours(grid, x, z, weighting); + + } + } + + // Kill all points which have less then 8 out of 25 neighbours + /*killAlonePoints(grid, 3, 1); + + for(int i = 0; i < grid->getSizeX(); ++i) + { + for(int j = 0; j < grid->getSizeZ(); ++j) + { + gridPoint *p = grid->points[i][j]; + + float weighting = calculateWeighting(p->getX() - grid->getViewpointX(), p->getZ() - grid->getViewpointZ()); + + if(this->waypoints) + createWaypoints(grid, p->getX(), p->getZ(), weighting); + + if(this->neighbours) + createNeighbours(grid, p->getX(), p->getZ(), weighting); + } + }*/ + + return grid; +} diff --git a/src/grid/scanmanager.cc b/src/grid/scanmanager.cc new file mode 100644 index 0000000..2b898b5 --- /dev/null +++ b/src/grid/scanmanager.cc @@ -0,0 +1,200 @@ +/* + * scanmanager implementation + * + * Copyright (C) Uwe Hebbelmann, Sebastian Stock, Andre Schemschat + * + * Released under the GPL version 3. + * + */ + +#include "grid/scanmanager.h" +#include +#include "slam6d/globals.icc" +#include +using std::exception; +#include +using std::ifstream; +#include +using std::cerr; +using std::endl; + +/** + * Ctor. + * Does nothing + */ +scanmanager::scanmanager() +{ +} + +/** + * DTor. + * Clear the memory + */ +scanmanager::~scanmanager() +{ + // Deleting the stored metamatrixes + for (size_t i = 0; i < metaMatrix.size(); i++) { + for (size_t j = 0; j < metaMatrix.at(i).size(); j++) { + delete[] metaMatrix.at(i).at(j); + } + } + + // Deleting the stored scans and reset the vector + for(size_t i=0; i < Scan::allScans.size(); ++i) + { + delete Scan::allScans[i]; + } + + Scan::allScans.clear(); +} + +/* + * A function that read the .frame files created by slam6D + * (taken from the originial test-class) + * + * @param dir the directory + * @param start starting at scan number 'start' + * @param end stopping at scan number 'end' + * @param readInitial read a file containing a initial transformation matrix and apply it + * @param correctYAxis if set, value 14 of the transformationmatrix will be set to 0 + */ +void scanmanager::readFrames(string dir, int start, int end, + bool readInitial, bool correctYAxis) +{ + + // convert to OpenGL coordinate system + double mirror[16]; + M4identity(mirror); + mirror[10] = -1.0; + + double initialTransform[16]; + if (readInitial) { + cout << "Initial Transform:" << endl; + string initialTransformFileName = dir + "initital.frame"; + ifstream initial_in(initialTransformFileName.c_str()); + if (!initial_in.good()) { + cout << "Error opening " << initialTransformFileName << endl; + exit(-1); + } + initial_in >> initialTransform; + cout << initialTransform << endl; + + // update the mirror to apply the initial frame for all frames + double tempxf[16]; + MMult(mirror, initialTransform, tempxf); + memcpy(mirror, tempxf, sizeof(tempxf)); + } + + for(std::vector::iterator it = Scan::allScans.begin(); it != Scan::allScans.end(); ++it) { + const double* transformation; + Scan::AlgoType algoType; + std::vector Matrices; + + // iterate over frames (stop if none were created) and pull/convert the frames into local containers + unsigned int frame_count = (*it)->readFrames(); + if(frame_count == 0) break; + for(unsigned int i = 0; i < frame_count; ++i) { + (*it)->getFrame(i, transformation, algoType); + double* transMatOpenGL = new double[16]; + + // apply mirror to convert (and initial frame if requested) the frame and save in opengl + MMult(mirror, transformation, transMatOpenGL); + + Matrices.push_back(transMatOpenGL); + } + + metaMatrix.push_back(Matrices); + + // current_frame = MetaMatrix.back().size() - 1; + } + + if (metaMatrix.size() == 0) { + cerr << "*****************************************" << endl; + cerr << "** ERROR: No .frames could be found! **" << endl; + cerr << "*****************************************" << endl; + cerr << " ERROR: Missing or empty directory: " << dir << endl << endl; + return; + } + + // if set, value 14 of the transformationmatrix will be set to 0 + if(correctYAxis) + { + for(size_t i=0; i < metaMatrix.size(); ++i) + { + for(size_t j=0; j < metaMatrix.at(i).size(); ++j) + { + metaMatrix.at(i).at(j)[13] = 0; + } + } + } +} + +/** + * Reads all scans, frames and the transformationmatrix + * + * @param inputDir the input directory + * @param outputdir the output directory + * @param scantype the scantype + * @param start start with scannumber 'start' + * @param end end with scannumber 'end' + * @param readInitial read files, that contain a 'initial transformation matrix' + * @param max_distance the maximal distance + * @param min_distance the minimal distance + * @param correctYAxis if set, value 14 of the transformationmatrix will be set to 0 + */ +void scanmanager::startscan(string inputdir, string outputdir, + IOType scantype, int start, int end, + bool readInitial, int max_distance, + int min_distance, bool correctYAxis) +{ + // Read scans + + // load all available scans + bool scanserver = false; + Scan::openDirectory(scanserver, inputdir, scantype, start, end); + + if(Scan::allScans.size() == 0) { + cerr << "No scans found. Did you use the correct format?" << endl; + exit(-1); + + } + + // Read frames + readFrames(inputdir, start, end, readInitial, correctYAxis); +} + +/** + * Returns the number of scans + * + * @return the number of scans + */ +size_t scanmanager::getScanCount() const +{ + return Scan::allScans.size(); +} + +/** + * Returns scan with the number i + * + * @param i number of the scan + * @return scan with number i + */ +Scan& scanmanager::getScan(int i) +{ + return *Scan::allScans.at(i); +} + +/** + * Returns the transformationmatrix with number i. + * + * The original readFrames method always read one matrix more + * than needed, but it complicated freeing memory and wasnt used in + * this programm, so it was commented out. + * + * @param i the number of the transformationmatrix + * @return transformationmatrix with number i + */ +const std::vector & scanmanager::getMatrix(int i) +{ + return this->metaMatrix.at(i); +} diff --git a/src/grid/viewpointinfo.cc b/src/grid/viewpointinfo.cc new file mode 100644 index 0000000..260188d --- /dev/null +++ b/src/grid/viewpointinfo.cc @@ -0,0 +1,67 @@ +/* + * viewpointinfo implementation + * + * Copyright (C) Uwe Hebbelmann, Sebastian Stock, Andre Schemschat + * + * Released under the GPL version 3. + * + */ + +#include +using std::ofstream; + +#include "grid/viewpointinfo.h" +#include +#include +using std::cerr; +using std::endl; +using std::make_pair; + +/** + * CTor. + */ +viewpointinfo::viewpointinfo(string path) +{ + this->path = path; +} + +/** + * The method adds the viewpointinfos of the given grid + * to the internal list + * + * @param grid The grid with the new viewpointinfos + */ +void viewpointinfo::addGrid(const scanGrid *grid) +{ + this->viewpoints.push_back(make_pair(grid->getViewpointX(), + grid->getViewpointZ())); +} + +/** + * This methods writes the internal viewpointslist + * to the file specified by filename + * + * @param filename The path and name of the file + */ +void viewpointinfo::write(string filename) +{ + string tmp(this->path + "/" + filename); + + ofstream stream(tmp.c_str()); + if(!stream.good()) + { + cerr << " Unable to open file ! ("<< filename<<")"<< endl; + exit(1); + } + + + vector::iterator it = this->viewpoints.begin(); + vector::iterator end = this->viewpoints.end(); + + while(it != end) + { + stream << it->first << " " << it->second << endl; + ++it; + } +} + diff --git a/src/model/CMakeLists.txt b/src/model/CMakeLists.txt new file mode 100644 index 0000000..8a31065 --- /dev/null +++ b/src/model/CMakeLists.txt @@ -0,0 +1,31 @@ +if(WITH_MODEL) + + # Module name + set(MODULE "Model") + set(UNIX_LIBS shape scan newmat dl ANN) + set(WIN32_LIBS shape scan newmat XGetopt) + + # Set CXX flags for CGAL + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -frounding-math") + + # Sources + file(GLOB SOURCES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.cc") + + # Binaries + add_executable(model ${SOURCES}) + + # Find libraries + find_library(LIB_CGAL CGAL) + find_library(LIB_GMP gmp) + find_package(Boost REQUIRED) + find_package(OpenCV REQUIRED) + + if(UNIX) + target_link_libraries(model ${UNIX_LIBS} ${LIB_CGAL} ${Boost_LIBS} ${LIB_GMP} ${OpenCV_LIBS}) + endif(UNIX) + + if (WIN32) + target_link_libraries(model ${UNIX_LIBS} ${LIB_CGAL} ${Boost_LIBS} ${LIB_GMP} ${OpenCV_LIBS}) + endif(WIN32) + +endif(WITH_MODEL) diff --git a/src/model/candidateOpening.cc b/src/model/candidateOpening.cc new file mode 100644 index 0000000..576c818 --- /dev/null +++ b/src/model/candidateOpening.cc @@ -0,0 +1,52 @@ +/** + * @file candidateOpening.cc + * + * @auhtor Remus Claudiu Dumitru + * @date 15 Apr 2012 + * + */ + +//============================================================================== +// Includes +//============================================================================== +#include "model/candidateOpening.h" + +//============================================================================== +// Static member initializations +//============================================================================== +const unsigned int model::CandidateOpening::NR_FEATURES = 14; + +//============================================================================== +// Class implementation +//============================================================================== +model::CandidateOpening::CandidateOpening() { + +} + +model::CandidateOpening::CandidateOpening(const Point3d& pt, const Vector3d& normal, + const std::vector& hull, + const std::vector& features, const std::vector& edges) : + Plane3d(pt, normal, hull) +{ + this->features = features; + this->edges = edges; +} + +model::CandidateOpening::CandidateOpening(const CandidateOpening& other) : Plane3d(other){ + this->features = other.features; + this->edges = other.edges; + this->edgeCoverage = other.edgeCoverage; +} + +model::CandidateOpening::~CandidateOpening() {} + +model::CandidateOpening& model::CandidateOpening::operator=(const CandidateOpening& other) { + if (this != &other) { + Plane3d::operator =(other); + this->features = other.features; + this->edges = other.edges; + this->edgeCoverage = other.edgeCoverage; + } + + return *this; +} diff --git a/src/model/graphicsAlg.cc b/src/model/graphicsAlg.cc new file mode 100644 index 0000000..79dba27 --- /dev/null +++ b/src/model/graphicsAlg.cc @@ -0,0 +1,368 @@ +/** + * @file graphicsAlg.cc + * + * @auhtor Remus Claudiu Dumitru + * @date 18 Feb 2012 + * + */ + +//============================================================================== +// Includes +//============================================================================== +#include "model/graphicsAlg.h" + +#include "model/scene.h" + +#include +#include + +using namespace std; + +//============================================================================== +// Global Variables +//============================================================================== +extern bool quiet; + +template +void model::GraphicsAlg::alpha_edges(InputIterator begin, InputIterator end, + const Type& Alpha, + bool mode, + OutputIterator out) +{ + Alpha_shape_2 shape(begin, end); + + if (mode) { + shape.set_mode(Alpha_shape_2::GENERAL); + } + else { + shape.set_mode(Alpha_shape_2::REGULARIZED); + } + + shape.set_alpha(Alpha); + + for(Alpha_shape_edges_iterator it = shape.alpha_shape_edges_begin(); + it != shape.alpha_shape_edges_end(); ++it) + { + *out++ = shape.segment(*it); + } +} + +// to be used to sort the pairs in the clockwiseSort method +bool compare(pair left, pair right) { + // we want to order clockwise, so we should compare the other way around + return left.first > right.first; +} + +void model::GraphicsAlg::clockwiseSort(vector& planes) { + if (planes.size() <= 2) { + return; + } + + // to be returned at the end + vector result; + + // first compute the center of gravity of the given planes + Point3d cog; + for (unsigned int i = 0; i < planes.size(); ++i) { + cog += planes[i].pt; + } + cog /= planes.size(); + + // keep the angle of each plane wrt to the center of gravity + // also keep and index with the position of the plane in the original vector + vector > angles; + + // compute each angle and add it to the angles vector alongside the index + for (unsigned int i = 0; i < planes.size(); ++i) { + double angle = atan2(planes[i].pt.z - cog.z, planes[i].pt.x - cog.x); + angles.push_back(make_pair(angle, i)); + } + + // use stl sort + sort(angles.begin(), angles.end(), compare); + + // construct the result + for (unsigned int i = 0; i < angles.size(); ++i) { + result.push_back(planes[angles[i].second]); + } + + // copy result into planes + planes = result; +} + +vector model::GraphicsAlg::getConcaveHull(std::vector planes) { + if (planes.size() <= 3) { + return planes; + } + + const double eps = 0.1; + vector result; + vector verticalPlanes; + + // CGAL datatypes + list points; + vector segments; + + // keep vertical planes + for (vector::iterator it = planes.begin(); + it < planes.end(); ++it) + { + if (it->isVertical()) { + verticalPlanes.push_back(*it); + } + } + + // free a bit of memory + planes.clear(); + + // collect all the remaining planes as CGAL points + for (vector::iterator it = verticalPlanes.begin(); + it < verticalPlanes.end(); ++it) + { + Point toAdd(it->pt.x, it->pt.z); + points.push_back(toAdd); + } + + // XXX compute the concave hull, aka. the alpha edges + alpha_edges(points.begin(), points.end(), + Type(250000), Alpha_shape_2::GENERAL, + std::back_inserter(segments)); + + if (!quiet) cout << "** " << segments.size() << " concave hull segments found" << endl; + + // counts how many planes are rematched to make sure we find them again + unsigned int counter = 0; + + // XXX naive retrieval of planes + Point3d center; + vector possiblePoints; + for (vector::iterator it = segments.begin(); + it < segments.end(); ++it) + { + Point source = it->source(); + Point target = it->target(); + + center.x += source.x(); + center.z += source.y(); + center.x += target.x(); + center.z += target.y(); + + possiblePoints.push_back(source); + possiblePoints.push_back(target); + } + center /= possiblePoints.size(); + + // match the points found using alpha shapes, back to their planes + for (vector::iterator it = possiblePoints.begin(); it < possiblePoints.end(); ++it) { + for (vector::iterator jt = verticalPlanes.begin(); jt < verticalPlanes.end(); ++jt) { + // second coordinate is on the z axis in the left handed coord system + if ((it->x() >= jt->pt.x - eps) && (it->x() <= jt->pt.x + eps) && + (it->y() >= jt->pt.z - eps) && (it->y() <= jt->pt.z + eps)) + { + result.push_back(*jt); + verticalPlanes.erase(jt); + counter++; + break; + } + } + } + + // eliminate duplicate planes + result = Scene::getSignificantPlanes(result); + + // sort them clockwise, it is in place + clockwiseSort(result); + + // another threshold for deciding whether to keep a plane or not + double eps2 = 0.2; + + // discard internal walls that are not part of the external walls of the room + for (vector::iterator it = result.begin() + 1; + it < result.end(); ++it) + { + vector::iterator prev = it - 1; + vector::iterator curr = it; + + // normalize normals just to be sure + prev->normal.normalize(); + curr->normal.normalize(); + + if ((1.0 - fabs(prev->normal.dotProduct(curr->normal))) < eps2) { + if (fabs(center.distance(*prev)) < fabs(center.distance(*curr))) { + if (!quiet) cout << "** Discarding previous internal plane centered at " + << prev->pt.x << " " << prev->pt.y << " " << prev->pt.z + << endl; + result.erase(prev); + } else { + if (!quiet) cout << "** Discarding current internal plane centered at " + << curr->pt.x << " " << curr->pt.y << " " << curr->pt.z + << endl; + result.erase(curr); + } + } + } + + if (!quiet) cout << "** Added " << result.size() << " elements to concave hull result" << endl; + + return result; +} + +void model::GraphicsAlg::getDiscreteLine(Point3d src, Point3d dest, double precision, const double& extraDist, + vector& line) +{ + // clear the result just in case it contains something + line.clear(); + + // add the extra distance + double len = src.distance(dest); + double temp = (len + extraDist) / len; + dest.x = src.x + (dest.x - src.x) * temp; + dest.y = src.y + (dest.y - src.y) * temp; + dest.z = src.z + (dest.z - src.z) * temp; + + // round up the values + precision = round(precision); + + src.x = round(src.x); + src.y = round(src.y); + src.z = round(src.z); + + dest.x = round(dest.x); + dest.y = round(dest.y); + dest.z = round(dest.z); + + // adjust according to precision + const double coef = pow(10.0, precision); + src *= coef; + dest *= coef; + +// Point3d diff = dest - src; +// diff.x = fabs(diff.x); +// diff.y = fabs(diff.y); +// diff.z = fabs(diff.z); +// diff += Point3d(1.0, 1.0, 1.0); +// double temp[] = {diff.x, diff.y, diff.z}; +// +// double d = *max_element(temp, temp + 3); + + double x1 = src.x; + double y1 = src.y; + double z1 = src.z; + + double x2 = dest.x; + double y2 = dest.y; + double z2 = dest.z; + + double dx = x2 - x1; + double dy = y2 - y1; + double dz = z2 - z1; + + double ax = 2 * fabs(dx); + double ay = 2 * fabs(dy); + double az = 2 * fabs(dz); + + double sx = dx > 0 ? +1.0 : -1.0; + double sy = dy > 0 ? +1.0 : -1.0; + double sz = dz > 0 ? +1.0 : -1.0; + + double x = x1; + double y = y1; + double z = z1; + + if (ax >= max(ay, az)) { + // x dominant + double yd = ay - ax / 2.0; + double zd = az - ax / 2.0; + + while (1) { + line.push_back(Point3d(x, y, z)); + + if (x == x2) { + break; + } + + // move along y + if (yd >= 0) { + y += sy; + yd -= ax; + } + + // move along z + if (zd >= 0) { + z += sz; + zd -= ax; + } + + // move along x + x += sx; + yd += ay; + zd += az; + } + } else if (ay >= max(ax, az)) { + // y dominant + double xd = ax - ay / 2.0; + double zd = az - ay / 2.0; + + while (1) { + line.push_back(Point3d(x, y, z)); + + if (y == y2) { + break; + } + + // move along x + if (xd >= 0) { + x += sx; + xd -= ay; + } + + // move along z + if (zd >= 0) { + z += sz; + zd -= ay; + } + + // move along y + y += sy; + xd += ax; + zd += az; + } + } else if (az >= max(ax, ay)) { + // z dominant + double xd = ax - az / 2.0; + double yd = ay - az / 2.0; + + while (1) { + line.push_back(Point3d(x, y, z)); + + if (z == z2) { + break; + } + + // move along x + if (xd >= 0) { + x += sx; + xd -= az; + } + + // move along y + if (yd >= 0) { + y += sy; + yd -= az; + } + + // move along x + z += sz; + xd += ax; + yd += ay; + } + } else { + throw logic_error("invalid branch taken while computing discrete line"); + } + + for (vector::iterator it = line.begin(); it != line.end(); ++it) { + it->x /= coef; + it->y /= coef; + it->z /= coef; + } +} diff --git a/src/model/labeledPlane3d.cc b/src/model/labeledPlane3d.cc new file mode 100644 index 0000000..fcb84cb --- /dev/null +++ b/src/model/labeledPlane3d.cc @@ -0,0 +1,391 @@ +/** + * @file plane3d.cc + * + * @auhtor Remus Claudiu Dumitru + * @date 15 Apr 2012 + * + */ + +//============================================================================== +// Includes +//============================================================================== +#include "model/labeledPlane3d.h" +#include "model/util.h" + +#include + +#include +#include +#include +#include +#include +using namespace std; + +//============================================================================== +// Static member initializations +//============================================================================== +const std::string model::LabeledPlane3d::RED = "180 0 0"; +const std::string model::LabeledPlane3d::GREEN = "0 180 0"; +const std::string model::LabeledPlane3d::BLUE = "0 0 180"; +const std::string model::LabeledPlane3d::WHITE = "255 255 255"; + +const double model::LabeledPlane3d::LINE_EPSILON = 0.2; + +const double model::LabeledPlane3d::SOBEL_SCALE = 1.0; +const double model::LabeledPlane3d::SOBEL_DELTA = 0.0; +const int model::LabeledPlane3d::SOBEL_KERNEL = 3; + +const double model::LabeledPlane3d::CANNY_THRESH1 = 40.0; +const double model::LabeledPlane3d::CANNY_THRESH2 = 120.0; + +const double model::LabeledPlane3d::HOUGH_RHO = 1.0; +const double model::LabeledPlane3d::HOUGH_THETA = CV_PI / 180.0; +const int model::LabeledPlane3d::HOUGH_THRESH = 80; +const double model::LabeledPlane3d::HOUGH_MIN_LINE_LEN = 15.0; + +const double model::LabeledPlane3d::MIN_EMPTY_AREA = 0.67; +const double model::LabeledPlane3d::MIN_TOTAL_AREA = 0.0075; +const double model::LabeledPlane3d::MAX_TOTAL_AREA = 0.400; + +//============================================================================== +// Class implementation +//============================================================================== +model::LabeledPlane3d::LabeledPlane3d() : Plane3d() {} + +model::LabeledPlane3d::LabeledPlane3d(const Point3d& pt, const Vector3d& normal) : + Plane3d(pt, normal) +{ + +} + +model::LabeledPlane3d::LabeledPlane3d(const Point3d& pt, const Vector3d& normal, const std::vector& hull) : + Plane3d(pt, normal, hull) +{} + +model::LabeledPlane3d::LabeledPlane3d(const LabeledPlane3d& other) : Plane3d(other) { + this->patches= other.patches; + this->depthMap = other.depthMap; + this->depthImg = other.depthImg; + this->correctedDepthImg = other.correctedDepthImg; + this->depthMapDistances = other.depthMapDistances; +} + +model::LabeledPlane3d::~LabeledPlane3d() {} + +model::LabeledPlane3d& model::LabeledPlane3d::operator=(const LabeledPlane3d& other) { + if (this != &other) { + Plane3d::operator =(other); + this->patches= other.patches; + this->depthMap = other.depthMap; + this->depthImg = other.depthImg; + this->correctedDepthImg = other.correctedDepthImg; + this->depthMapDistances = other.depthMapDistances; + } + + return *this; +} + +void model::LabeledPlane3d::detectEdges(cv::Mat& canny, cv::Mat& hSobel, cv::Mat& vSobel, cv::Mat& combined) const { + int imgHeight = static_cast(this->depthMap.size()); + int imgWidth = static_cast(this->depthMap.front().size()); + + if (imgHeight == 0 || imgWidth == 0) { + throw runtime_error("please initialize the patches and depth map for labeled plane"); + } + + // apply Canny edge detection so we can see the lines contained in the image + cv::Canny(this->depthImg, canny, CANNY_THRESH1, CANNY_THRESH2); + + // apply Sobel on same image so we get better defined horizontal and vertical lines + cv::Sobel(canny, hSobel, CV_8UC1, 0, 1, SOBEL_KERNEL, SOBEL_SCALE, SOBEL_DELTA, cv::BORDER_DEFAULT); + cv::Sobel(canny, vSobel, CV_8UC1, 1, 0, SOBEL_KERNEL, SOBEL_SCALE, SOBEL_DELTA, cv::BORDER_DEFAULT); + + // combine all of them for even better edges + cv::addWeighted(canny, 0.5, hSobel, 0.5, 0, combined); + cv::threshold(combined, combined, 1, MAX_IMG_VAL, CV_8UC1); + cv::addWeighted(combined, 0.5, vSobel, 0.5, 0, combined); + cv::threshold(combined, combined, 1, MAX_IMG_VAL, CV_8UC1); + + cv::imwrite("./img/edgeCanny.png", canny); + cv::imwrite("./img/edgeSobelHoriz.png", hSobel); + cv::imwrite("./img/edgeSobelVert.png", vSobel); + cv::imwrite("./img/edgeCombined.png", combined); +} + +void model::LabeledPlane3d::computeLines(std::vector& verticalResult, std::vector& horizontalResult) const { + + if (this->depthMap.size() != this->patches.size() || + this->depthMap.front().size() != this->patches.front().size()) + { + throw runtime_error("depth map and patch matrix must match in sizes"); + } + + int imgHeight = static_cast(this->depthMap.size()); + int imgWidth = static_cast(this->depthMap.front().size()); + + if (imgHeight == 0 || imgWidth == 0) { + throw runtime_error("please initialize the patches and depth map for labeled plane"); + } + + // clear the output + verticalResult.clear(); + horizontalResult.clear(); + + // compute the Canny edges normally, and using sobel on x and y + cv::Mat canny, hSobel, vSobel, combined; + this->detectEdges(canny, hSobel, vSobel, combined); + + // detect all the proper lines from the image + vector lines; + cv::HoughLinesP(combined, lines, HOUGH_RHO, HOUGH_THETA, HOUGH_THRESH, HOUGH_MIN_LINE_LEN); + + // convert to color image so we can draw some colored lines on it + cv::cvtColor(combined, combined, CV_GRAY2BGR, 3); + cv::Mat imgLines = combined.clone(); + cv::Mat imgFinalLines = combined.clone(); + + // filter out the vertical and the horizontal lines + // XXX use sets so that the numbers are ordered automatically + set horizontalSet, verticalSet; + int curr; + + for (vector::iterator it = lines.begin(); it != lines.end(); ++it) { + int dX = it->val[2] - it->val[0]; + int dY = it->val[3] - it->val[1]; + + double angle = atan2(static_cast(dY), static_cast(dX)); + + if (((angle < +M_PI_2 + LINE_EPSILON) && (angle > +M_PI_2 - LINE_EPSILON)) || + ((angle < -M_PI_2 + LINE_EPSILON) && (angle > -M_PI_2 - LINE_EPSILON))) + { + // detect and add the vertical lines + curr = static_cast(round((it->val[2] + it->val[0]) / 2.0)); + verticalSet.insert(curr); + cv::line(imgLines, cv::Point(curr, 0), cv::Point(curr, imgLines.rows-1), cv::Scalar(0, 0, MAX_IMG_VAL), 1); + + } else if (((angle < +0.0 + LINE_EPSILON) && (angle > +0.0 - LINE_EPSILON)) || + ((angle < +M_PI + LINE_EPSILON) && (angle > +M_PI - LINE_EPSILON)) || + ((angle < -M_PI + LINE_EPSILON) && (angle > -M_PI - LINE_EPSILON))) + { + // detect and add the horizontal lines + curr = static_cast(round((it->val[3] + it->val[1]) / 2.0)); + horizontalSet.insert(curr); + cv::line(imgLines, cv::Point(0, curr), cv::Point(imgLines.cols-1, curr), cv::Scalar(MAX_IMG_VAL, 0, 0), 1); + } + } + + // insert the edges as lines + horizontalSet.insert(0); + horizontalSet.insert(imgHeight - 1); + cv::line(imgLines, cv::Point(0, 0), cv::Point(imgLines.cols-1, 0), cv::Scalar(MAX_IMG_VAL, 0, 0), 1); + cv::line(imgLines, cv::Point(0, imgHeight - 1), cv::Point(imgLines.cols-1, imgHeight - 1), cv::Scalar(MAX_IMG_VAL, 0, 0), 1); + + verticalSet.insert(0); + verticalSet.insert(imgWidth - 1); + cv::line(imgLines, cv::Point(0, 0), cv::Point(0, imgLines.rows-1), cv::Scalar(0, 0, MAX_IMG_VAL), 1); + cv::line(imgLines, cv::Point(imgWidth - 1, 0), cv::Point(imgWidth - 1, imgLines.rows-1), cv::Scalar(0, 0, MAX_IMG_VAL), 1); + + cv::imwrite("./img/edgeLines.png", imgLines); + if (!quiet) cout << "** Total lines: " << verticalSet.size() << " vertical, " << horizontalSet.size() << " horizontal" << endl; + + horizontalResult.assign(horizontalSet.begin(), horizontalSet.end()); + verticalResult.assign(verticalSet.begin(), verticalSet.end()); +} + +void model::LabeledPlane3d::computeOpeningCandidates(std::vector& result) const { + if (!quiet) cout << endl << "== Computing opening candidates for surface centered at " << this->pt << endl; + + // make sure the result is empty + result.clear(); + + if (this->depthMap.size() != this->patches.size() || + this->depthMap.front().size() != this->patches.front().size()) + { + throw runtime_error("depth map and patch matrix must match in sizes"); + } + + int imgHeight = static_cast(this->depthMap.size()); + int imgWidth = static_cast(this->depthMap.front().size()); + + if (imgHeight == 0 || imgWidth == 0) { + throw runtime_error("please initialize the patches and depth map for labeled plane"); + } + + // convert the sets to vectors + vector horizontal, vertical; + this->computeLines(vertical, horizontal); + + // we require the total wall area to discard a few small candidates + double wCentimetersWall = this->patches[0][0].first.distance(this->patches[0][imgWidth - 1].first); + double hCentimetersWall = this->patches[0][0].first.distance(this->patches[imgHeight - 1][0].first); + double wallArea = wCentimetersWall * hCentimetersWall; + + // put temporary candidates in here + std::vector candidates; + + // count the number of discarded small planes + unsigned int discarded = 0; + + // there is no other way of determining all the rectangles in the image + // u - upper, l - lower, h - horizontal, v - vertical + for (vector::iterator y1 = horizontal.begin(); y1 != horizontal.end() - 1; ++y1) { + for (vector::iterator y2 = y1 + 1; y2 != horizontal.end(); ++y2) { + for (vector::iterator x1 = vertical.begin(); x1 != vertical.end() - 1; ++x1) { + for (vector::iterator x2 = x1 + 1; x2 != vertical.end(); ++x2) { + + // do not add really small candidates that are smaller than a certain percentage of the whole wall + double wCentiMeters = this->patches[0][*x2].first.distance(this->patches[0][*x1].first); + double hCentiMeters = this->patches[*y2][0].first.distance(this->patches[*y1][0].first); + double area = wCentiMeters * hCentiMeters; + + if (area < MIN_TOTAL_AREA * wallArea || area > MAX_TOTAL_AREA * wallArea) { + discarded++; + continue; + } + + // create edges for candidate opening + int tempEdges[4] = {*y1, *y2, *x1, *x2}; + vector edges(tempEdges, tempEdges + 4); + + // compute the hull + vector hull; + hull.push_back(this->patches[*y1][*x1].first); + hull.push_back(this->patches[*y1][*x2].first); + hull.push_back(this->patches[*y2][*x2].first); + hull.push_back(this->patches[*y2][*x1].first); + + // compute the normal application point + Point3d pt(0.0, 0.0, 0.0); + for (vector::iterator it = hull.begin(); it != hull.end(); ++it) { + pt += *it; + } + pt /= hull.size(); + + CandidateOpening candidate(pt, this->normal, hull, vector(), edges); + candidate.normal = candidate.computeAverageNormal(); + candidates.push_back(candidate); + } + } + } + } + + if (!quiet) cout << "** Total opening candidates: " << candidates.size() << endl; + if (!quiet) cout << "** Discarded openings relative size to wall: " << discarded << endl; + discarded = 0; + + // determine the features of each candidate opening + for (vector::iterator it = candidates.begin(); it < candidates.end(); ++it) { + int y1 = it->edges[0]; + int y2 = it->edges[1]; + int x1 = it->edges[2]; + int x2 = it->edges[3]; + + if (y1 > y2 || x1 > x2) { + throw runtime_error("upper coordinates need to be smaller than the lower ones (candidate opening)"); + } + + int w = abs(x2 - x1); + int h = abs(y2 - y1); + + // first feature, the area of the opening + double wCentiMeters = this->patches[0][x2].first.distance(this->patches[0][x1].first); + double hCentiMeters = this->patches[y2][0].first.distance(this->patches[y1][0].first); + double area = wCentiMeters * hCentiMeters; + it->features.push_back(static_cast(area)); + + // second feature, w/h + it->features.push_back(static_cast(w) / h); + + // third feature, w/W + it->features.push_back(static_cast(w) / imgWidth); + + // fourth feature, h/H + it->features.push_back(static_cast(h) / imgHeight); + + // distance from every edge + // upper horizontal line + it->features.push_back(this->patches[y1][0].first.distance(this->patches.front()[0].first)); + // lower horizontal line + it->features.push_back(this->patches[y2][0].first.distance(this->patches.back()[0].first)); + // upper vertical line + it->features.push_back(this->patches[0][x1].first.distance(this->patches[0].front().first)); + // lower vertical line + it->features.push_back(this->patches[0][x2].first.distance(this->patches[0].back().first)); + + // compute the RMS of the plane fit residual for this particular rectangle + // in the same time compute the area of each label + int empty = 0, occupied = 0, occluded = 0; + + // TODO figure out how to compute the residual + double sqSum = 0.0; + for (int i = y1; i < y2; ++i) { + for (int j = x1; j < x2; ++j) { + // TODO should be computed accordingly + double temp = 0.0; + + switch (this->patches[i][j].second) { + case EMPTY: + empty++; + break; + case OCCUPIED: + occupied++; + break; + case OCCLUDED: + occluded++; + break; + default: + throw runtime_error("default branch taken while computing features for opening candidate"); + break; + } + sqSum += pow(temp, 2.0); + } + } + + // add the RMS plane fit + int totalCount = w * h; + it->features.push_back(sqrt(sqSum / totalCount)); + + // discard a few more candidates + if ((static_cast(empty) / totalCount) < MIN_EMPTY_AREA) { + discarded++; + continue; + } + + // add the area of each label, empty, occupied, occluded + it->features.push_back(static_cast(empty) / totalCount); + it->features.push_back(static_cast(occupied) / totalCount); + it->features.push_back(static_cast(occluded) / totalCount); + + // determine how many interior rectangles this candidate contains + // compute the number of interior inverted U-shapes as well + // start counting from 2 as we include the edges as well + int vCount = 2, hCount = 2; + for (vector::iterator jt = horizontal.begin(); jt != horizontal.end(); ++jt) { + if (*jt > y1 && *jt < y2) { + hCount++; + } + } + + for (vector::iterator jt = vertical.begin(); jt != vertical.end(); ++jt) { + if (*jt > x1 && *jt < x2) { + vCount++; + } + } + + // add the number of rectangles contained inside + it->features.push_back((hCount * (hCount - 1) / 2.0) * (vCount * (vCount - 1) / 2.0)); + + // add the number of interior inverted U-shapes + if (y2 == imgHeight - 1) { + it->features.push_back((hCount - 1) * (vCount * (vCount - 1) / 2.0)); + } else { + it->features.push_back(0.0); + } + + // add this current candidate to the final result + result.push_back(*it); + } + + if (!quiet) cout << "** Discarded openings due to small empty area: " << discarded << endl; + if (!quiet) cout << "** Done computing features for all opening candidates" << endl; +} diff --git a/src/model/model.cc b/src/model/model.cc new file mode 100644 index 0000000..1659898 --- /dev/null +++ b/src/model/model.cc @@ -0,0 +1,272 @@ +/** + * @file model.cc + * + * @auhtor Remus Claudiu Dumitru + * @date 12 Feb 2012 + * + */ + +//============================================================================== +// Defines +//============================================================================== + + +//============================================================================== +// Includes +//============================================================================== +#include "model/scene.h" +#include "model/util.h" +#include "model/graphicsAlg.h" + +#include "slam6d/io_utils.h" +#include "slam6d/io_types.h" + +#include +#include +#include +#ifdef _MSC_VER +#define strcasecmp _stricmp +#define strncasecmp _strnicmp +#else +#include +#endif +#ifndef _MSC_VER +#include +#else +#include "XGetopt.h" +#endif + +#include +#include +using namespace std; + +//============================================================================== +// Global Variables +//============================================================================== +model::Scene* scene = NULL; // the scene containing all data +bool quiet = false; // no output will be shown + +//============================================================================== +// Functions +//============================================================================== +/** + * Prints the usage of the program to stdout. + * @param programName the name of the current program + */ +void printUsage(const string& programName) { +#ifndef _MSC_VER + const string bold("\033[1m"); + const string normal("\033[m"); +#else + const string bold(""); + const string normal(""); +#endif + + cout << endl + << bold << "USAGE " << normal << endl + << "\t" << programName << " [options] directory" << endl << endl; + + cout << bold << "OPTIONS" << normal << endl + << bold << "\t -f" << normal << " F, " << bold << "--format=" << normal << "F" << endl + << "\t\t using shared library F for input" << endl + << "\t\t (chose F from {uos, uos_map, uos_rgb, uos_frames, uos_map_frames, old, rxp, rts, rts_map, ifp, riegl_txt, riegl_rgb, riegl_bin, zahn, ply})" << endl + << endl + // TODO enable the usage of all algos, use rht for now + << bold << "\t -p" << normal << " P, " << bold << "--plane=" << normal << "P" << endl + << "\t\t using algorithm P for plane detection" << endl + << "\t\t (chose P from {rht, sht, pht, ppht, apht, ran})" << endl + << endl + << bold << "\t -s" << normal << " NR, " << bold << "--start=" << normal << "NR" << endl + << "\t\t start at scan NR (i.e., neglects the first NR scans)" << endl + << "\t\t [ATTENTION: counting naturally starts with 0]" << endl + << endl + << bold << "\t -S, --scanserver" << normal << endl + << "\t\t Use the scanserver as an input method and handling of scan data" << endl + << endl + << bold << "\t -e" << normal << " NR, " << bold << "--end=" << normal << "NR" << endl + << "\t\t end at scan NR (i.e., neglects the scans following NR)" << endl + << endl; + + exit(EXIT_SUCCESS); +} + +/** + * Parses program arguments. + */ +void parseArgs(int argc, char* argv[], + string& dir, int& start, int& end, IOType &type, PlaneAlgorithm& alg, + bool& scanserver) +{ + char c; + int index; + + // from unistd.h: + extern char *optarg; + extern int optind; + + WriteOnce w_type(type); + WriteOnce w_start(start), w_end(end); + + // define the known flags in an option structure + static struct option long_options[] = { + {"start", required_argument, 0, 's'}, + {"end", required_argument, 0, 'e'}, + {"format", required_argument, 0, 'f'}, + {"plane", required_argument, 0, 'p'}, + {"help", no_argument, 0, 'h'}, + {"scanserver", no_argument, 0, 'S'}, + {"quiet", no_argument, 0, 'q'} + }; + + // loop over the arguments + while ((c = getopt_long(argc, argv, "s:e:f:p:hq", long_options, &index)) != -1) { + switch (c) { + case 's': + w_start = atoi(optarg); + if (start < 0) { cerr << "Error: Cannot start at a negative scan number.\n"; exit(1); } + break; + case 'e': + w_end = atoi(optarg); + if (end < 0) { cerr << "Error: Cannot end at a negative scan number.\n"; exit(1); } + if (end < start) { cerr << "Error: cannot be smaller than .\n"; exit(1); } + break; + case 'f': + try { + w_type = formatname_to_io_type(optarg); + } catch (...) { // runtime_error + cerr << "Format " << optarg << " unknown." << endl; + abort(); + } + break; + case 'p': + if (strcasecmp(optarg, "rht") == 0) alg = RHT; + else if (strcasecmp(optarg, "sht") == 0) alg = SHT; + else if (strcasecmp(optarg, "pht") == 0) alg = PHT; + else if (strcasecmp(optarg, "ppht") == 0) alg = PPHT; + else if (strcasecmp(optarg, "apht") == 0) alg = APHT; + else if (strcasecmp(optarg, "ran") == 0) alg = RANSAC; + else printUsage(argv[0]); + break; + case 'q': + quiet = true; + break; + case 'S': + scanserver = true; + break; + case 'h': + case '?': + printUsage(argv[0]); + break; + default: + throw runtime_error("getopt_long detected invalid flag"); + break; + } + } + + if (optind != argc-1) { + cerr << "\n*** Directory missing ***" << endl; + printUsage(argv[0]); + } + dir = argv[optind]; + +#ifndef _MSC_VER + if (dir[dir.length()-1] != '/') dir = dir + "/"; +#else + if (dir[dir.length()-1] != '\\') dir = dir + "\\"; +#endif + + parseFormatFile(dir, w_type, w_start, w_end); + +} + +/** + * Cleanup function that deallocates memory and cleans up other stuff... + */ +void cleanup() { + if (!quiet) cout << endl << "== Cleaning up..." << endl; + + if (scene != NULL) { + delete scene; + } + + if (!quiet) cout << endl << "== Exiting..." << endl; +} + +//============================================================================== +// Main +//============================================================================== +int main(int argc, char* argv[]) { + // seed the RNG + srand(time(NULL)); + + // default values for possible parse parameters + IOType type = UOS; + bool scanserver = false; + + // beginning and ending scan number + int start = 0; + int end = 0; + + // path to directory containing the scans + string dir; + + // minimum and maximum scan distances + int maxDist = -1; + int minDist = -1; + + int octree = 1; + double red = -1.0; + + // which plane algorithm to perform + PlaneAlgorithm alg = RHT; + + // parse the command line arguments before registering and signals and atexit callbacks + parseArgs(argc, argv, + dir, start, end, type, alg, + scanserver); + + // register cleanup function to deallocate memory at exit + atexit(cleanup); + + if (!model::fileExists(dir)) { + throw runtime_error("directory " + dir + " does not exist"); + } + + // Prepare to create the scene. + model::Point3d pt(+78.4556, +43.0196, -181.107); +// model::Point3d pt(0.0, 0.0, 0.0); + model::Rotation3d rot(0.0, 0.0, 0.0); + model::Pose6d pose(pt, rot); + vector poses; + poses.push_back(pose); + + // Allocate memory for scene object. + scene = new model::Scene(type, start, end, dir, scanserver, + maxDist, minDist, alg, octree, red, poses); + scene->detectWalls(); + scene->applyLabels(scene->walls[0]); + scene->applyLabels(scene->walls[1]); + scene->applyLabels(scene->walls[2]); + scene->applyLabels(scene->walls[3]); + scene->applyLabels(scene->ceiling); + scene->applyLabels(scene->floor); + + vector openings; + scene->addFinalOpenings(scene->walls[0], openings); + scene->correct(scene->walls[0], openings); + scene->addFinalOpenings(scene->walls[1], openings); + scene->correct(scene->walls[1], openings); + scene->addFinalOpenings(scene->walls[2], openings); + scene->correct(scene->walls[2], openings); + scene->addFinalOpenings(scene->walls[3], openings); + scene->correct(scene->walls[3], openings); + scene->addFinalOpenings(scene->ceiling, openings); + scene->correct(scene->ceiling, openings); + scene->addFinalOpenings(scene->floor, openings); + scene->correct(scene->floor, openings); + + scene->writeCorrectedWalls(dir); + scene->writeModel(dir); + + return 0; +} diff --git a/src/model/plane3d.cc b/src/model/plane3d.cc new file mode 100644 index 0000000..190b483 --- /dev/null +++ b/src/model/plane3d.cc @@ -0,0 +1,259 @@ +/** + * @file plane3d.cc + * + * @auhtor Remus Claudiu Dumitru + * @date 16 Feb 2012 + * + */ + +//============================================================================== +// Includes +//============================================================================== +#include "model/plane3d.h" + +#include +#include +using namespace Eigen; + +#include + +#include +#include +using namespace std; + +model::Plane3d::Plane3d() { + // nothing to do +} + +model::Plane3d::Plane3d(const Point3d& pt, const Vector3d& normal) { + this->pt = pt; + this->normal = normal; + + // normals must be normalized + this->normal.normalize(); +} + + +model::Plane3d::Plane3d(const Point3d& pt, const Vector3d& normal, + const vector& hull) +{ + this->pt = pt; + this->normal = normal; + this->hull = hull; + + // normals must be normalized + this->normal.normalize(); +} + +model::Plane3d::Plane3d(const Plane3d& other) { + this->pt = other.pt; + this->normal = other.normal; + this->hull = other.hull; +} + +model::Plane3d::~Plane3d() { + // nothing to do +} + +model::Point3d model::Plane3d::intersect(const Plane3d& second, const Plane3d& third) { + // XXX http://mathworld.wolfram.com/Plane-PlaneIntersection.html + Point3d result; + Plane3d first = *this; + + MatrixXd mat(3, 3); + mat << first.normal.x, second.normal.x, third.normal.x, + first.normal.y, second.normal.y, third.normal.y, + first.normal.z, second.normal.z, third.normal.z; + + Vector3d term[3]; + term[0] = second.normal.crossProduct(third.normal) * + first.normal.dotProduct(Vector3d(first.pt.x, first.pt.y, first.pt.z)); + + term[1] = third.normal.crossProduct(first.normal) * + second.normal.dotProduct(Vector3d(second.pt.x, second.pt.y, second.pt.z)); + + term[2] = first.normal.crossProduct(second.normal) * + third.normal.dotProduct(Vector3d(third.pt.x, third.pt.y, third.pt.z)); + + Vector3d tempResult = (term[0] + term[1] + term[2]) * (1.0 / mat.determinant()); + + result.x = tempResult.x; + result.y = tempResult.y; + result.z = tempResult.z; + + return result; +} + +model::Plane3d& model::Plane3d::operator=(const Plane3d& other) { + this->pt = other.pt; + this->normal = other.normal; + this->hull = other.hull; + + return *this; +} + +bool model::Plane3d::isVertical() { + this->normal.normalize(); + return (fabs(this->normal.y) < _EPSILON_VERTICAL); +} + +bool model::Plane3d::isHorizontal() { + this->normal.normalize(); + return ((1 - fabs(this->normal.y / this->normal.length())) < _EPSILON_HORIZONTAL); +} + +bool model::Plane3d::isSamePlane(model::Plane3d other) { + // just to be safe + this->normal.normalize(); + other.normal.normalize(); + + double dist = this->pt.distance(other); + double norm = this->normal.crossProduct(other.normal).length(); + + // doing fabs of norm just to be safe, though it is always positive + if (fabs(dist) < _EPSILON_DISTANCE && fabs(norm) < _EPSILON_NORMAL_CROSS_PRODUCT) { + return true; + } + + return false; +} + +model::Vector3d model::Plane3d::computeAverageNormal() { + if(this->hull.size() < 3) { + throw runtime_error("hull contains less than 3 points, cannot compute normal"); + } + + // start from zero + Vector3d normal(0.0, 0.0, 0.0); + + for (vector::iterator it = this->hull.begin() + 1; it != this->hull.end() - 1; ++it) { + Point3d& left = *(it-1); + Point3d& middle = *it; + Point3d& right = *(it+1); + + normal += Vector3d(middle, left).crossProduct(Vector3d(middle, right)); + } + + // treat the boundary cases + Point3d& first = this->hull[0]; + Point3d& second = this->hull[1]; + Point3d& secondLast = this->hull[this->hull.size() - 2]; + Point3d& last = this->hull[this->hull.size() - 1]; + + normal += Vector3d(first, last).crossProduct(Vector3d(first, second)); + normal += Vector3d(last, secondLast).crossProduct(Vector3d(last, first)); + + normal.normalize(); + return normal; +} + +vector > model::Plane3d::getDiscretePoints(const double& dist) const { + if (this->hull.size() < 3) { + throw runtime_error("cannot retrieve discrete points on plane with hull containing less than 3 points"); + } + + // make a deep copy of the current plane + Plane3d copy = *this; + + // this will eventually contain the result + vector > result; + + // the origin of the current system, take the first point in the hull + Point3d origin = copy.hull[0]; + Point3d zero(0.0, 0.0, 0.0); + + // define the rotation around Z and X axis here + Rotation3d rotZ(0.0, 0.0, atan2(copy.normal.x, copy.normal.y)); + copy.normal.rotate(rotZ); + Rotation3d rotX(-atan2(copy.normal.z, copy.normal.y), 0.0, 0.0); + + // translate all points to origin + for (vector::iterator it = copy.hull.begin(); it != copy.hull.end(); ++it) { + // translate + *it -= origin; + + // rotate around Z + it->rotate(zero, rotZ); + + // rotate around X + it->rotate(zero, rotX); + } + + // figure out how to rotate around Y + Vector3d firstSegment; + + Point3d first = copy.hull.front(); + Point3d second = copy.hull[1]; + Point3d third = copy.hull[2]; + + if (first.distance(second) > second.distance(third)) { + firstSegment = Vector3d(first, second); + } else { + firstSegment = Vector3d(second, third); + } + + // define rotation around Y axis after we have moved the entire hull into the XZ plane + copy.normal.rotate(rotX); + Rotation3d rotY(0.0, atan2(firstSegment.z, firstSegment.x), 0.0); + + for (vector::iterator it = copy.hull.begin(); it != copy.hull.end(); ++it) { + // rotate around Y + it->rotate(zero, rotY); + } + + // we need to compute the maximum and minimum offsets + double minX = copy.hull[0].x; + double maxX = copy.hull[0].x; + double minZ = copy.hull[0].z; + double maxZ = copy.hull[0].z; + + // we need to start from the second point + for (vector::iterator it = copy.hull.begin() + 1; + it != copy.hull.end(); ++it) + { + if (it->x < minX) { + minX = it->x; + } + + if (it->x > maxX) { + maxX = it->x; + } + + if (it->z < minZ) { + minZ = it->z; + } + + if (it->z > maxZ) { + maxZ = it->z; + } + } + + // how many steps on each direction? + int stepsX = round((maxX - minX) / dist) + 2; + int stepsZ = round((maxZ - minZ) / dist) + 2; + + // resize the result vector + result.resize(stepsZ); + + for (int j = 0; j < stepsZ; ++j) { + for (int i = 0; i < stepsX; ++i) { + Point3d toPush(minX + dist * (i - 0.5), 0.0, maxZ - dist * (j - 0.5)); + + // rotate back around Y + toPush.rotate(zero, rotY.getInverse()); + + // rotate back around X + toPush.rotate(zero, rotX.getInverse());; + + // rotate back around Z + toPush.rotate(zero, rotZ.getInverse()); + + //translate back to previous system + toPush += origin; + + result[j].push_back(toPush); + } + } + + return result; +} diff --git a/src/model/point3d.cc b/src/model/point3d.cc new file mode 100644 index 0000000..c5eeed1 --- /dev/null +++ b/src/model/point3d.cc @@ -0,0 +1,238 @@ +/** + * @file point3d.cc + * + * @auhtor Remus Claudiu Dumitru + * @date 16 Feb 2012 + * + */ + +//============================================================================== +// Defines +//============================================================================== + + +//============================================================================== +// Includes +//============================================================================== +#include "model/point3d.h" + +#include "model/plane3d.h" +#include "model/util.h" + +#include + +//============================================================================== +// Implementation +//============================================================================== + +model::Point3d::Point3d() { + this->x = 0.0; + this->y = 0.0; + this->z = 0.0; +} + +model::Point3d::Point3d(const double& x, const double& y, const double& z) { + this->x = x; + this->y = y; + this->z = z; +} + +model::Point3d::Point3d(const Point3d& other) { + this->x = other.x; + this->y = other.y; + this->z = other.z; +} + +// rotate a point around a given point +void model::Point3d::rotate(const Point3d& ref, const Rotation3d& rot) +{ + // create rotation matrices + double Rx[3][3] = { + {1.0, 0.0, 0.0}, + {0.0, cos(rot.x), -sin(rot.x)}, + {0.0, sin(rot.x), cos(rot.x)} + }; + + double Ry[3][3] = { + {cos(rot.y), 0.0, sin(rot.y)}, + {0.0, 1.0, 0.0}, + {-sin(rot.y), 0.0, cos(rot.y)} + }; + + double Rz[3][3] = { + {cos(rot.z), -sin(rot.z), 0.0}, + {sin(rot.z), cos(rot.z), 0.0}, + {0.0, 0.0, 1.0} + }; + + // we need to translate the point in the origin, do rotation, and then translate back + double point[3]; + point[0] = this->x - ref.x; + point[1] = this->y - ref.y; + point[2] = this->z - ref.z; + + // somewhere to save the result + double temp[3]; + + // do rotation around z axis + for (int i = 0; i < 3; ++i) { + // reset the sum + double sum = 0.0; + + for (int j = 0; j < 3; ++j) { + sum += (Rz[i][j] * point[j]); + } + + // save the result + temp[i] = sum; + } + + // move results for next rotation + for (int i = 0; i < 3; ++i) { + point[i] = temp[i]; + } + + // do rotation around y axis + for (int i = 0; i < 3; ++i) { + // reset the sum + double sum = 0.0; + + for (int j = 0; j < 3; ++j) { + sum += (Ry[i][j] * point[j]); + } + + // save the result + temp[i] = sum; + } + + // move results for next rotation + for (int i = 0; i < 3; ++i) { + point[i] = temp[i]; + } + + // do rotation around z axis + for (int i = 0; i < 3; ++i) { + // reset the sum + double sum = 0.0; + + for (int j = 0; j < 3; ++j) { + sum += (Rx[i][j] * point[j]); + } + + // save the result + temp[i] = sum; + } + + // move results for next rotation + for (int i = 0; i < 3; ++i) { + point[i] = temp[i]; + } + + // now translate back to reference point + this->x = point[0] + ref.x; + this->y = point[1] + ref.y; + this->z = point[2] + ref.z; +} + +void model::Point3d::translate(const Vector3d& vec) { + this->x += vec.x; + this->y += vec.y; + this->z += vec.z; +} + +// the distance from this point to another one +double model::Point3d::distance(const Point3d& other) const { + return sqrt(sqr(other.x - this->x) + + sqr(other.y - this->y) + + sqr(other.z - this->z)); +} + +// the distance from this point to the given plane +double model::Point3d::distance(const Plane3d& plane) const { + double vect[3]; + vect[0] = plane.pt.x - this->x; + vect[1] = plane.pt.y - this->y; + vect[2] = plane.pt.z - this->z; + + return vect[0] * plane.normal.x + + vect[1] * plane.normal.y + + vect[2] * plane.normal.z; +} + +model::Point3d& model::Point3d::operator=(const Point3d& other) { + if (this != &other) { + this->x = other.x; + this->y = other.y; + this->z = other.z; + } + + return *this; +} + +model::Point3d model::Point3d::operator-(const Point3d& other) { + Point3d result; + result.x = this->x - other.x; + result.y = this->y - other.y; + result.z = this->z - other.z; + return result; +} + +model::Point3d model::Point3d::operator*(const double& coef) { + Point3d result; + result = *this; + result.x *= coef; + result.y *= coef; + result.z *= coef; + return result; +} + +model::Point3d model::Point3d::operator/(const double& div) { + Point3d result; + result.x = this->x / div; + result.y = this->y / div; + result.z = this->z / div; + return result; +} + +void model::Point3d::operator/=(const double& div) { + this->x /= div; + this->y /= div; + this->z /= div; +} + +void model::Point3d::operator+=(const Point3d& other) { + this->x += other.x; + this->y += other.y; + this->z += other.z; +} + +void model::Point3d::operator-=(const Point3d& other) { + this->x -= other.x; + this->y -= other.y; + this->z -= other.z; +} + +void model::Point3d::operator*=(const double& coef) { + this->x *= coef; + this->y *= coef; + this->z *= coef; +} + + +bool model::Point3d::operator==(const Point3d& other) const { + return (this->x + _EPSILON >= other.x && this->x - _EPSILON <= other.x) && + (this->y + _EPSILON >= other.y && this->y - _EPSILON <= other.y) && + (this->z + _EPSILON >= other.z && this->z - _EPSILON <= other.z); +} + +bool model::Point3d::operator!=(const Point3d& other) { + if (*this == other) { + return false; + } + return true; +} + +std::ostream& model::operator<<(std::ostream& os, const model::Point3d& pt) { + os << pt.x << " " << pt.y << " " << pt.z; + return os; +} diff --git a/src/model/rotation3d.cc b/src/model/rotation3d.cc new file mode 100644 index 0000000..b60cd7b --- /dev/null +++ b/src/model/rotation3d.cc @@ -0,0 +1,28 @@ +/* + * rotation3d.cc + * + * Created on: Feb 16, 2012 + * Author: Remus Claudiu Dumitru + */ + +#include "model/rotation3d.h" + +model::Rotation3d::Rotation3d(const Rotation3d& other) { + this->x = other.x; + this->y = other.y; + this->z = other.z; +} + +model::Rotation3d& model::Rotation3d::operator=(const Rotation3d& other) { + if (this != &other) { + this->x = other.x; + this->y = other.y; + this->z = other.z; + } + + return *this; +} + +model::Rotation3d model::Rotation3d::getInverse() { + return Rotation3d(-this->x, -this->y, -this->z); +} diff --git a/src/model/scene.cc b/src/model/scene.cc new file mode 100644 index 0000000..9530e25 --- /dev/null +++ b/src/model/scene.cc @@ -0,0 +1,1499 @@ +/** + * @file scene.cc + * + * @auhtor Remus Claudiu Dumitru + * @date 13 Feb 2012 + * + */ + +//============================================================================== +// Includes +//============================================================================== +#include "model/scene.h" + +#include "model/graphicsAlg.h" +#include "model/util.h" + +#include +#include +#include +#include + +#include + +#include +#include + +#include +#include +#include +#include +using namespace std; + +//============================================================================== +// Static fields initialization +//============================================================================== +const double model::Scene::PRECISION = 0.0; +const double model::Scene::RAY_DIST = 2.5; +const double model::Scene::PATCH_DIST = 1.0; +const double model::Scene::WALL_DIST = 10.0; // must be bigger than RAY_DIST +const double model::Scene::MIN_EDGE_COV = 0.60; + +//============================================================================== +// Implementation +//============================================================================== +model::Scene::Scene(const IOType& type, + const int& start, const int& end, + std::string dir, const bool& scanserver, + const int& maxDist, const int& minDist, + const PlaneAlgorithm& alg, const int& octree, const double& red, + const vector& poses) +{ + if (!quiet) cout << endl << "== Creating scene..." << endl; + if (!quiet) cout << endl << "== Reading scans..." << endl; + + // create an output directory for planes and for images + if (makeDir(dir + "img/")== false) { + throw runtime_error("failed to create directory " + dir + "img/"); + } + + // copy class fields here + this->poses = poses; + + // identity matrix + double id[16]; + M4identity(id); + + // begin the plane detection + // Scan::dir = dir; + // Scan::readScans(type, start, end, dir, maxDist, minDist, false); + Scan::openDirectory(scanserver, dir, type, start, end); + + if(Scan::allScans.size() == 0) { + cerr << "No scans found. Did you use the correct format?" << endl; + exit(-1); + } + + int nrPlanes = 0 , currScan = start; + // for(vector ::iterator scan = Scan::allScans.begin(); scan != Scan::allScans.end(); ++scan) { + for(ScanVector::iterator scan = Scan::allScans.begin(); scan != Scan::allScans.end(); ++scan) { + + // prepare for plane detection + (*scan)->setRangeFilter(maxDist, minDist); + (*scan)->setReductionParameter(red, octree); + // scan->setSearchTreeParameter(nns_method, cuda_enabled); + + (*scan)->toGlobal(); + (*scan)->transform(id, Scan::ICP, 0); + + // read the pose of the current scan + pair pose; + const double* pt = (*scan)->get_rPos(); + const double* rot = (*scan)->get_rPosTheta(); + + pose.first.x = pt[0]; + pose.first.y = pt[1]; + pose.first.z = pt[2]; + + pose.second.x = rot[0]; + pose.second.y = rot[1]; + pose.second.z = rot[2]; + + if (!quiet) cout << "\n== Starting plane detection for scan " << currScan << " @ pose (" + << pose.first.x << " " << pose.first.y << " " << pose.first.z << " " + << pose.second.x << " " << pose.second.y << " " << pose.second.z << ")..." << endl; + + // apply hough transform + Hough hough((*scan), true); + nrPlanes += hough.RHT(); // TODO call proper algorithm + + if (!quiet) cout << "** Detected " << nrPlanes << " planes so far" << endl; + + // loop over all planes and fill in the data + for (vector::iterator convexPlane = hough.planes.begin(); + convexPlane != hough.planes.end(); convexPlane++) + { + // get the nomrla and the point of application of the normal + double tempNormal[3], tempOrigin[3]; + (*convexPlane)->getNormal(tempNormal, tempOrigin); + + // the normal and application points using our datastructures + Vector3d normal(tempNormal[0], tempNormal[1], tempNormal[2]); + Point3d origin(tempOrigin[0], tempOrigin[1], tempOrigin[2]); + + // fill in the convex hulls + vector doubleHull = (*convexPlane)->getConvexHull(); + vector pointHull; + + for (vector::iterator point = doubleHull.begin(); point != doubleHull.end(); point += 3) { + pointHull.push_back(Point3d(*(point+0), *(point+1), *(point+2))); + } + + Plane3d planeToAdd(origin, normal, pointHull); + + // add the planes to the vector + if (planeToAdd.isHorizontal() || planeToAdd.isVertical()) { + this->planes.push_back(planeToAdd); + } + else if (!quiet) { + cout << "** Discarding oblique plane centered at " + << planeToAdd.pt.x << " " << planeToAdd.pt.y << " " << planeToAdd.pt.z + << endl; + } + } + + // keep the pointer to the points + DataXYZ points = (*scan)->get("xyz reduced"); + unsigned int points_size = points.size(); + // const vector* points = (*scan)->get_points(); + + for (unsigned int i = 0; i < points_size; ++i) { + // XXX get_points returns a pointer + Point3d toPush(points[i][0], points[i][1], points[i][2]); + toPush.translate(pose.first); + toPush.rotate(Point3d(0.0, 0.0, 0.0), pose.second); + this->points.push_back(toPush); + } + + // contains the current scan number + currScan++; + } + + // to be used when constructing the octree + this->octTreePoints = new double*[this->points.size()]; + + // go over all points from all the scans + for (unsigned int i = 0; i < this->points.size(); ++i) { + double x = this->points[i].x; + double y = this->points[i].y; + double z = this->points[i].z; + + // add the points to the array to be added to the octree + this->octTreePoints[i] = new double[3]; + this->octTreePoints[i][0] = x; + this->octTreePoints[i][1] = y; + this->octTreePoints[i][2] = z; + } + + // Create the octree and fill it in. + if (!quiet) cout << endl << "== Building OctTree with " << this->points.size() << " points ..." << endl; + this->octTree = new BOctTree(this->octTreePoints, this->points.size(), octree); + //this->_octTree->init(); + this->nrPoints = this->points.size(); + + Scan::allScans.clear(); +} + +model::Scene::Scene(const Scene& other) { + this->points = other.points; + this->planes = other.planes; + this->walls = other.walls; + this->ceiling = other.ceiling; + this->floor = other.floor; +} + +model::Scene::~Scene() { + // delete the octree + if (this->octTree != NULL) { + delete this->octTree; + } + + if (this->octTreePoints != NULL) { + for (unsigned int i = 0; i < this->nrPoints; ++i) { + if (this->octTreePoints[i] != NULL) { + delete[] this->octTreePoints[i]; + } + } + delete[] this->octTreePoints; + } +} + +vector model::Scene::getConvexHull(vector planes) { + if (planes.size() <= 3) { + return planes; + } + + vector hull; + vector::iterator leftmostIt = planes.begin(); + + // compute the lefmost point + for (vector::iterator it = planes.begin() + 1; + it != planes.end(); ++it) + { + // add only vertical planes + if (it->isVertical() && it->pt.x < leftmostIt->pt.x) { + leftmostIt = it; + } + } + + Plane3d planeOnHull = *leftmostIt; + Plane3d endPlane; + + do { + // add the candidate plane to the hull + hull.push_back(planeOnHull); + endPlane = planes[0]; + + for (unsigned int j = 1; j < planes.size(); ++j) { + // consider only vertical planes + if (planes[j].isVertical() == false) { + continue; + } + + // define dummy planes in the XOZ plane + Point3d fakeCurPt(planes[j].pt.x, 0.0, planes[j].pt.z); + Point3d fakePointOnHull(planeOnHull.pt.x, 0.0, planeOnHull.pt.z); + Point3d fakeEndPoint(endPlane.pt.x, 0.0, endPlane.pt.z); + + // define a point to the left of the line + Point3d farLeft = fakeEndPoint; + farLeft.rotate(planeOnHull.pt, Rotation3d(0.0, -M_PI/6, 0.0)); + + // if ... or planes[j] on the left side of line (planeOnHull, endPlane) + if (planeOnHull.pt != planes[j].pt && + (endPlane.pt == planeOnHull.pt || sameSide(fakeCurPt, farLeft, fakePointOnHull, fakeEndPoint))) + { + endPlane = planes[j]; + } + } + + planeOnHull = endPlane; + + } while (endPlane.pt != hull[0].pt); + + return hull; +} + +vector model::Scene::getSignificantPlanes(vector planes) { + vector result; + + while (!planes.empty()) { + // add the first plane as viable + result.push_back(planes.front()); + planes.erase(planes.begin());; + + for (vector::iterator it = planes.begin(); it < planes.end(); ++it) { + if (result.back().isSamePlane(*it)) { + result.back().normal += it->normal; + planes.erase(it); + } + } + + // normalize this normal after we have normalized + result.back().normal.normalize(); + } + + return result; +} + +bool model::Scene::getCeiling(vector planes, Plane3d& result) { + vector horizontalPlanes; + + for (vector::iterator it = planes.begin(); it != planes.end(); ++it) { + if (it->isHorizontal()) { + horizontalPlanes.push_back(*it); + } + } + + if (horizontalPlanes.size() <= 0) { + return false; + } + + // start with the first horizontal plane + result = planes.front(); + + for (vector::iterator it = planes.begin()+1; + it != planes.end(); ++it) + { + if (it->pt.y > result.pt.y) { + result = *it; + } + } + + return true; +} + +bool model::Scene::getFloor(vector planes, Plane3d& result) { + vector horizontalPlanes; + + for (vector::iterator it = planes.begin(); + it != planes.end(); ++it) + { + if (it->isHorizontal()) { + horizontalPlanes.push_back(*it); + } + } + + if (horizontalPlanes.size() <= 0) { + return false; + } + + // start with the first horizontal plane + result = planes.front(); + + for (vector::iterator it = planes.begin()+1; + it != planes.end(); ++it) + { + if (it->pt.y < result.pt.y) { + result = *it; + } + } + + return true; +} + +void model::Scene::detectWalls() { + if (!quiet) cout << endl << "== Building model..." << endl; + + // temporary wall storage + vector tempWalls = this->planes; + + // extract the convex hull of the room + tempWalls = GraphicsAlg::getConcaveHull(tempWalls); + + // throw away redundant tempWalls + tempWalls = this->getSignificantPlanes(tempWalls); + + // get other bounds, ceiling and floor + Plane3d tempCeiling, tempFloor; + + if (!this->getCeiling(this->planes, tempCeiling) || !this->getFloor(this->planes, tempFloor)) { + throw runtime_error("error while determining ceiling or floor"); + } + + if (tempWalls.size() < 4) { + throw runtime_error("room has less than 4 walls"); + } + + if (!quiet) cout << "** " << tempWalls.size() << " walls have been detected" << endl; + + // XXX planes in the _walls vector should be in order + vector< pair > corners; + Point3d upperCorner, lowerCorner; + + if(!quiet) cout << endl << "== Computing corners..." << endl; + for (vector::iterator it = tempWalls.begin(); it != tempWalls.end(); ++it) { + // be careful at the last element + if (it < tempWalls.end()-1) { + upperCorner = it->intersect(*(it+1), tempCeiling); + lowerCorner = it->intersect(*(it+1), tempFloor); + } + else if (it == tempWalls.end()-1) { + upperCorner = it->intersect(tempWalls.front(), tempCeiling); + lowerCorner = it->intersect(tempWalls.front(), tempFloor); + } + + if (!quiet) cout << showpos << "** Computed upper corner " << upperCorner << endl; + if (!quiet) cout << showpos << "** Computed lower corner " << lowerCorner << endl; + + corners.push_back(make_pair(upperCorner, lowerCorner)); + } + + if (!quiet) cout << endl << "== Building walls, ceiling and floor..." << endl; + + // used to create the walls + Point3d upperLeft, upperRight; + Point3d lowerLeft, lowerRight; + + // used to create the floor and the ceiling + vector ceilingHull; + vector floorHull; + + Point3d ceilingCenter(0.0, 0.0, 0.0); + Point3d floorCenter(0.0, 0.0, 0.0); + + Vector3d ceilingNormal; + Vector3d floorNormal; + + for (vector< pair >::iterator it = corners.begin(); + it != corners.end(); ++it) + { + upperLeft = it->first; + lowerLeft = it->second; + + if (it < corners.end()-1) { + upperRight = (it+1)->first; + lowerRight = (it+1)->second; + } + else if (it == corners.end()-1) { + upperRight = corners.front().first; + lowerRight = corners.front().second; + } + + Point3d center((upperLeft.x + lowerLeft.x + upperRight.x + lowerRight.x) / 4.0, + (upperLeft.y + lowerLeft.y + upperRight.y + lowerRight.y) / 4.0, + (upperLeft.z + lowerLeft.z + upperRight.z + lowerRight.z) / 4.0); + + vector hull; + hull.push_back(upperLeft); + hull.push_back(lowerLeft); + hull.push_back(lowerRight); + hull.push_back(upperRight); + + if (!quiet) cout << "** Adding wall centered at " << center << endl; + this->walls.push_back(LabeledPlane3d(center, Vector3d(), hull)); + this->walls.back().normal = this->walls.back().computeAverageNormal(); + + // compute the floor and the ceiling + ceilingHull.push_back(it->first); + floorHull.push_back(it->second); + + ceilingCenter.x += it->first.x; + ceilingCenter.y += it->first.y; + ceilingCenter.z += it->first.z; + + floorCenter.x += it->second.x; + floorCenter.y += it->second.y; + floorCenter.z += it->second.z; + } + ceilingCenter /= ceilingHull.size(); + floorCenter /= floorHull.size(); + + // dummy normal + Vector3d dummy; + + if (!quiet) cout << "** Adding ceiling centered at " << ceilingCenter << endl; + this->ceiling = LabeledPlane3d(ceilingCenter, dummy, ceilingHull); + this->ceiling.normal = this->ceiling.computeAverageNormal(); + + if (!quiet) cout << "** Adding floor centered at " << floorCenter << endl; + this->floor = LabeledPlane3d(floorCenter, dummy, floorHull); + this->floor.normal = this->floor.computeAverageNormal(); +} + +bool model::Scene::castRay(const Point3d& src, const Point3d& dest, const double& extraDist, + Point3d& ptHit) +{ + // put the Bresenham line in here, we need some extra distance in case the points are close + // but after the detected wall, therefore we need to go a bit further than the wall to check + vector line; + GraphicsAlg::getDiscreteLine(src, dest, PRECISION, extraDist, line); + + // loop through all the points in the Bresenham line and decide if it hits something + for (vector::iterator it = line.begin(); it != line.end(); ++it) { + if (this->isOccupied(*it, RAY_DIST)) { + ptHit = *it; + return true; + } + } + + // no occlusion took place + return false; +} + +void model::Scene::applyLabels(LabeledPlane3d& surf) { + if (this->poses.empty()) { + throw runtime_error("no poses have been provided to the scene"); + } + + // the maximum distance from which we subtract to create a depth image + double maxDist = 2.0 * WALL_DIST + RAY_DIST; + + // determine the points on the plane for which to apply labels + vector > discretePoints = surf.getDiscretePoints(PATCH_DIST); + + surf.patches.resize(discretePoints.size()); + surf.depthMap.resize(discretePoints.size()); + + // we need these values for later + surf.depthMapDistances.first = WALL_DIST; + surf.depthMapDistances.second = maxDist; + + for (unsigned int i = 0; i < discretePoints.size(); ++i) { + for (unsigned int j = 0; j < discretePoints.front().size(); ++j) { + // consider everything is occluded initially + surf.patches[i].push_back(make_pair(discretePoints[i][j], OCCLUDED)); + surf.depthMap[i].push_back(WALL_DIST); + } + } + + if (!quiet) cout << endl << "== Performing ray casting for surface centered at " << surf.pt << endl; + + for (vector::iterator srcPose = this->poses.begin(); srcPose != this->poses.end(); ++srcPose) { + for (unsigned int i = 0; i < surf.patches.size(); ++i) { + for (unsigned int j = 0; j < surf.patches[i].size(); ++j) { + // prepare two points for ray casting through wall + Point3d ptOnWall = surf.patches[i][j].first; + Point3d src(surf.normal.x + ptOnWall.x, + surf.normal.y + ptOnWall.y, + surf.normal.z + ptOnWall.z); + + double len = ptOnWall.distance(src); + double temp = (len + WALL_DIST) / len; + src.x = ptOnWall.x + (src.x - ptOnWall.x) * temp; + src.y = ptOnWall.y + (src.y - ptOnWall.y) * temp; + src.z = ptOnWall.z + (src.z - ptOnWall.z) * temp; + + // remember the point we hit when ray casting + Point3d ptHit; + + if (insideHull(surf.patches[i][j].first, surf.hull) && castRay(src, ptOnWall, WALL_DIST, ptHit)) { + surf.patches[i][j].second = OCCUPIED; + surf.depthMap[i][j] = maxDist - src.distance(ptHit); + } else if (!castRay(srcPose->first, surf.patches[i][j].first, 0, ptHit)) { + surf.patches[i][j].second = EMPTY; + surf.depthMap[i][j] = 0.0; + } + } + } + } + + // create the OpenCV depth image + int imgHeight = static_cast(surf.depthMap.size()); + int imgWidth = static_cast(surf.depthMap.front().size()); + + // crate an OpenCV image and allocate memory for it + cv::Mat img(imgHeight, imgWidth, CV_8UC1); + + // compute the maximum from the image + double max = numeric_limits::min(); + for (int i = 0; i < imgHeight; ++i) { + for (int j = 0; j < imgWidth; ++j) { + if (max < surf.depthMap[i][j]) { + max = surf.depthMap[i][j]; + } + } + } + + // write the current image to a file + cv::Mat labels(imgHeight, imgWidth, CV_8UC3); + + // adjust the image + for (int i = 0; i < imgHeight; ++i) { + for (int j = 0; j < imgWidth; ++j) { + img.data[(i * img.cols) + j] = static_cast(MAX_IMG_VAL * surf.depthMap[i][j] / max); + + // put the color into the image according to the label + int curr = (i * 3 * img.cols) + 3 * j; + switch (surf.patches[i][j].second) { + case EMPTY: + labels.data[curr + 0] = 0; + labels.data[curr + 1] = 200; + labels.data[curr + 2] = 0; + break; + case OCCLUDED: + labels.data[curr + 0] = 200; + labels.data[curr + 1] = 0; + labels.data[curr + 2] = 0; + break; + case OCCUPIED: + labels.data[curr + 0] = 0; + labels.data[curr + 1] = 0; + labels.data[curr + 2] = 200; + break; + default: + throw runtime_error("invalid default branch taken"); + break; + } + } + } + cv::imwrite("./img/labels.png", labels); + + // copy the image + surf.depthImg = img.clone(); +} + +void model::Scene::applyAllLabels() { + if (!quiet) cout << endl << "== Performing ray casting for all surfaces..." << endl; + + applyLabels(this->ceiling); + applyLabels(this->floor); + + for (vector::iterator it = this->walls.begin(); it != this->walls.end(); ++it) { + applyLabels(*it); + } +} + +void model::Scene::detectPotentialOpenings(const LabeledPlane3d& surf, + std::vector& openings) +{ + if (!quiet) cout << endl << "== Determining openings for surface centered at " << surf.pt << endl; + + // get the candidate openings for current plane + vector candidates; + surf.computeOpeningCandidates(candidates); + + // TODO train the SVM using some outside variables, not hard coded in here, play around a lot with these numbers + // prepare to train the SVM + + const unsigned int nrSamples = 68; + const unsigned int nrMainClass = 14; + const unsigned int nrFeatures = model::CandidateOpening::NR_FEATURES; + + // make a set of excluded features + int excludedFeaturesInit[] = {6, 7, 8, 12, 13}; + set excludedFeatures(excludedFeaturesInit, excludedFeaturesInit + 5); + + // set up the training data using some real life examples, needs to be flaot + float trainingData[nrSamples][14] = { + // TODO fix the RMS fit residual + // 1 area | 2 w/h | 3 w/W | 4 h/H | 5-8 dist to edges | 9 RMS | 10-12 E Occup Occl | 13 int rect | 14 int U-shapes + { 3120, 0.42, 0.05, 0.36, 23, 138, 550, 126, 0, 0.93, 0.01, 0.06, 15, 0}, + { 3090, 0.42, 0.05, 0.36, 23, 138, 126, 550, 0, 0.93, 0.01, 0.06, 15, 0}, + { 6810, 0.94, 0.11, 0.34, 23, 140, 453, 176, 0, 0.91, 0.02, 0.07, 15, 0}, + { 6815, 0.94, 0.11, 0.34, 23, 140, 176, 453, 0, 0.91, 0.02, 0.07, 15, 0}, + {11780, 1.52, 0.19, 0.35, 23, 139, 450, 128, 0, 0.89, 0.01, 0.10, 15, 0}, + {11190, 1.52, 0.18, 0.35, 23, 139, 128, 450, 0, 0.88, 0.02, 0.10, 15, 0}, + {10374, 1.70, 0.18, 0.31, 31, 141, 453, 124, 0, 0.87, 0.02, 0.11, 15, 0}, + {10374, 1.70, 0.18, 0.31, 31, 141, 124, 453, 0, 0.87, 0.02, 0.11, 15, 0}, + {27600, 0.82, 0.22, 0.62, 18, 97, 403, 148, 0, 0.95, 0.03, 0.02, 12, 0}, + {27600, 0.82, 0.22, 0.62, 18, 97, 148, 403, 0, 0.94, 0.03, 0.03, 12, 0}, + {25516, 0.87, 0.22, 0.59, 28, 100, 49, 396, 0, 0.84, 0.11, 0.05, 20, 0}, + {26316, 0.87, 0.22, 0.59, 28, 100, 396, 49, 0, 0.84, 0.13, 0.03, 22, 0}, + {25516, 0.87, 0.22, 0.59, 28, 100, 70, 396, 0, 0.84, 0.11, 0.05, 20, 0}, + {26316, 0.87, 0.22, 0.59, 28, 100, 396, 70, 0, 0.84, 0.13, 0.03, 22, 0}, + //======================================================================== + {+143289, +2.10345, +0.786533, +0.887755, +31, +1, +1, +147, +0, +0.371222, +0.524681, +0.104097, +34300, +0}, + {+180612, +2.65134, +0.991404, +0.887755, +31, +1, +1, +4, +0, +0.294571, +0.620845, +0.0845846, +44100, +0}, + {+180873, +2.65517, +0.992837, +0.887755, +31, +1, +1, +3, +0, +0.294146, +0.621392, +0.0844626, +55125, +0}, + {+181395, +2.66284, +0.995702, +0.887755, +31, +1, +1, +1, +0, +0.293299, +0.622481, +0.0842195, +67375, +0}, + {+181656, +2.66667, +0.997135, +0.887755, +31, +1, +1, +0, +0, +0.292878, +0.621846, +0.0852766, +80850, +0}, + {+181828, +2.64885, +0.994269, +0.891156, +31, +0, +0, +3, +0, +0.292634, +0.621114, +0.0862518, +70125, +2750}, + {+143838, +2.09542, +0.786533, +0.891156, +31, +0, +1, +147, +0, +0.369805, +0.525466, +0.104729, +35700, +1400}, + {+181304, +2.64122, +0.991404, +0.891156, +31, +0, +1, +4, +0, +0.293446, +0.621465, +0.0850891, +45900, +1800}, + {+181566, +2.64504, +0.992837, +0.891156, +31, +0, +1, +3, +0, +0.293023, +0.622011, +0.0849663, +57375, +2250}, + {+182090, +2.65267, +0.995702, +0.891156, +31, +0, +1, +1, +0, +0.29218, +0.623093, +0.0847273, +70125, +2750}, + {+182352, +2.65649, +0.997135, +0.891156, +31, +0, +1, +0, +0, +0.29176, +0.622455, +0.0857846, +84150, +3300}, + {+120270, +2.70142, +0.792768, +0.717687, +31, +51, +1, +147, +0, +0.427181, +0.486813, +0.0860065, +8400, +0}, + {+150654, +3.38389, +0.993046, +0.717687, +31, +51, +1, +3, +0, +0.341299, +0.588308, +0.0703931, +10800, +0}, + {+150865, +3.38863, +0.994437, +0.717687, +31, +51, +1, +2, +0, +0.340821, +0.588884, +0.0702946, +13500, +0}, + {+39680, +0.605469, +0.222063, +0.870748, +32, +5, +396, +146, +0, +0.654738, +0.294254, +0.0510081, +3243, +0}, + {+38656, +0.589844, +0.216332, +0.870748, +32, +5, +400, +146, +0, +0.672082, +0.27931, +0.0486082, +1081, +0}, + {+39835, +0.603113, +0.222063, +0.87415, +32, +4, +396, +146, +0, +0.655153, +0.293787, +0.0510606, +3384, +0}, + {+38807, +0.587549, +0.216332, +0.87415, +32, +4, +400, +146, +0, +0.672508, +0.278893, +0.0485995, +1128, +0}, + {+39990, +0.600775, +0.222063, +0.877551, +32, +3, +396, +146, +0, +0.655539, +0.293373, +0.0510878, +3528, +0}, + {+38958, +0.585271, +0.216332, +0.877551, +32, +3, +400, +146, +0, +0.672904, +0.278505, +0.0485908, +1176, +0}, + {+40145, +0.598456, +0.222063, +0.880952, +32, +2, +396, +146, +0, +0.655374, +0.293586, +0.05104, +3675, +0}, + {+39109, +0.583012, +0.216332, +0.880952, +32, +2, +400, +146, +0, +0.672735, +0.278759, +0.0485055, +1225, +0}, + {+40300, +0.596154, +0.222063, +0.884354, +32, +1, +396, +146, +0, +0.652854, +0.296154, +0.0509926, +3825, +0}, + {+39260, +0.580769, +0.216332, +0.884354, +32, +1, +400, +146, +0, +0.670148, +0.281457, +0.0483953, +1275, +0}, + {+40455, +0.59387, +0.222063, +0.887755, +32, +0, +396, +146, +0, +0.650352, +0.298702, +0.0509455, +3978, +153}, + {+39411, +0.578544, +0.216332, +0.887755, +32, +0, +400, +146, +0, +0.66758, +0.284134, +0.048286, +1326, +51}, + {+115564, +4.14371, +0.991404, +0.568027, +33, +93, +1, +4, +0, +0.429745, +0.554031, +0.0162248, +990, +0}, + {+115731, +4.1497, +0.992837, +0.568027, +33, +93, +1, +3, +0, +0.429124, +0.554674, +0.0162014, +1170, +0}, + {+116065, +4.16168, +0.995702, +0.568027, +33, +93, +1, +1, +0, +0.42789, +0.555956, +0.0161547, +1365, +0}, + {+116232, +4.16766, +0.997135, +0.568027, +33, +93, +1, +0, +0, +0.427275, +0.555544, +0.0171812, +1575, +0}, + {+118674, +4.05848, +0.994269, +0.581633, +33, +89, +0, +3, +0, +0.419292, +0.556575, +0.0241333, +1911, +0}, + {+119016, +4.07018, +0.997135, +0.581633, +33, +89, +0, +1, +0, +0.418087, +0.557849, +0.024064, +2205, +0}, + {+118332, +4.04678, +0.991404, +0.581633, +33, +89, +1, +4, +0, +0.420453, +0.556739, +0.0228087, +1386, +0}, + {+33790, +0.711009, +0.222063, +0.741497, +33, +42, +396, +146, +0, +0.736372, +0.215715, +0.0479136, +828, +0}, + {+33136, +0.697248, +0.217765, +0.741497, +33, +42, +399, +146, +0, +0.750905, +0.201231, +0.0478634, +276, +0}, + {+65880, +4.575, +0.786533, +0.408163, +33, +140, +1, +147, +0, +0.541166, +0.455055, +0.0037796, +45, +0}, + {+66360, +4.60833, +0.792264, +0.408163, +33, +140, +1, +143, +0, +0.537251, +0.458996, +0.00375226, +55, +0}, + {+135218, +3.59278, +0.998567, +0.659864, +33, +66, +0, +0, +0, +0.375216, +0.557995, +0.0667884, +11550, +0}, + {+135135, +3.55385, +0.992837, +0.663265, +33, +65, +0, +4, +0, +0.375484, +0.557457, +0.0670589, +6468, +0}, + {+135330, +3.55897, +0.994269, +0.663265, +33, +65, +0, +3, +0, +0.374943, +0.558095, +0.0669622, +8316, +0}, + {+135720, +3.56923, +0.997135, +0.663265, +33, +65, +0, +1, +0, +0.373865, +0.559365, +0.0667698, +10395, +0}, + {+135915, +3.57436, +0.998567, +0.663265, +33, +65, +0, +0, +0, +0.373329, +0.558893, +0.0677777, +12705, +0}, + {+142065, +3.38049, +0.992837, +0.697279, +33, +55, +0, +4, +0, +0.357998, +0.572006, +0.0699961, +7728, +0}, + {+117117, +4.10059, +0.992837, +0.57483, +30, +94, +0, +4, +0, +0.428213, +0.555837, +0.0159499, +280, +0}, + {+117286, +4.10651, +0.994269, +0.57483, +30, +94, +0, +3, +0, +0.427596, +0.556477, +0.0159269, +360, +0}, + {+117624, +4.11834, +0.997135, +0.57483, +30, +94, +0, +1, +0, +0.426367, +0.557752, +0.0158811, +450, +0}, + {+117793, +4.12426, +0.998567, +0.57483, +30, +94, +0, +0, +0, +0.425755, +0.557359, +0.0168856, +550, +0}, + {+43176, +1.52976, +0.368195, +0.571429, +30, +95, +396, +44, +0, +0.571822, +0.428178, +0, +36, +0}, + {+43344, +1.53571, +0.369628, +0.571429, +30, +95, +396, +43, +0, +0.569606, +0.430394, +0, +60, +0}, + {+42672, +1.5119, +0.363897, +0.571429, +30, +95, +399, +44, +0, +0.578576, +0.421424, +0, +18, +0}, + {+42840, +1.51786, +0.36533, +0.571429, +30, +95, +399, +43, +0, +0.576307, +0.423693, +0, +36, +0}, + {+42504, +1.50595, +0.362464, +0.571429, +30, +95, +400, +44, +0, +0.580863, +0.419137, +0, +6, +0}, + {+42672, +1.5119, +0.363897, +0.571429, +30, +95, +400, +43, +0, +0.578576, +0.421424, +0, +18, +0}, + {+33338, +0.748815, +0.226361, +0.717687, +29, +53, +396, +143, +0, +0.760244, +0.195453, +0.0443038, +1134, +0}, + }; + + // match the labels to the training data + float mainLabel = 1.0; + float labels[nrSamples]; + // create the labels + for (unsigned int i = 0; i < nrSamples; ++i) { + if (i < nrMainClass) { + labels[i] = mainLabel; + } else { + labels[i] = -mainLabel; + } + } + + // normalize the values above + float maxFeatures[nrFeatures]; + + for (unsigned int i = 0; i < nrFeatures; ++i) { + maxFeatures[i] = numeric_limits::min(); + } + + for (unsigned int i = 0; i < nrSamples; ++i) { + for (unsigned int j = 0; j < nrFeatures; ++j) { + if (maxFeatures[j] < trainingData[i][j]) { + maxFeatures[j] = trainingData[i][j]; + } + } + } + + for (unsigned int i = 0; i < nrSamples; ++i) { + for (unsigned int j = 0; j < nrFeatures; ++j) { + if (excludedFeatures.find(j) != excludedFeatures.end()) { + trainingData[i][j] = 0.0; + } else { + trainingData[i][j] /= maxFeatures[j]; + } + } + } + + // compute the max of the values of the candidates, but normalize later + for (unsigned int i = 0; i < nrFeatures; ++i) { + maxFeatures[i] = numeric_limits::min(); + } + + for (vector::iterator it = candidates.begin(); it != candidates.end(); ++it) { + for (unsigned int feat = 0; feat < nrFeatures; ++feat) { + if (maxFeatures[feat] < it->features[feat]) { + maxFeatures[feat] = it->features[feat]; + } + } + } + + // create two OpenCV matrices + cv::Mat trainingMat(nrSamples, nrFeatures, CV_32FC1, trainingData); + cv::Mat labelsMat(nrSamples, 1, CV_32FC1, labels); + + // set up the SVM parameters + cv::SVMParams params; + params.svm_type = cv::SVM::NU_SVC; + params.kernel_type = cv::SVM::RBF; + params.term_crit = cv::TermCriteria(CV_TERMCRIT_ITER | CV_TERMCRIT_EPS, 1000, 1e-6); + + params.nu = 0.8; + params.C = 8.0; + params.gamma = 20; + + // create SVM and train it + cv::SVM svm; + svm.train_auto(trainingMat, labelsMat, cv::Mat(), cv::Mat(), params); // XXX with or without auto + + // store these openings, and filter some more later on + std::vector tempOpenings; + + for (vector::iterator it = candidates.begin(); it != candidates.end(); ++it) { + if (it->features.size() != nrFeatures) { + throw runtime_error("number of features in candidate in does not equal the expected one"); + } + + float candidateData[nrFeatures]; + for (size_t jt = 0; jt < it->features.size(); ++jt) { + if (excludedFeatures.find(jt) != excludedFeatures.end()) { + candidateData[jt] = 0.0; + } else { + // also normalize the data here, and not in the candidateOpening object + candidateData[jt] = static_cast(it->features[jt]) / maxFeatures[jt]; + } + } + cv::Mat candidateMat(1, nrFeatures, CV_32FC1, candidateData); + + // decide of which type the current opening is + float response = svm.predict(candidateMat); + if (response == mainLabel) { + tempOpenings.push_back(*it); + } + } + + // filter openings with respect to how much they overlap with the Canny edge + cv::Mat canny, hSobel, vSobel, combined; + surf.detectEdges(canny, hSobel, vSobel, combined); + + double maxEdgeCoverage = numeric_limits::min(); + double averageArea = 0.0; + for (vector::iterator it = tempOpenings.begin(); it != tempOpenings.end(); ++it) { + int y1 = it->edges[0]; + int y2 = it->edges[1]; + int x1 = it->edges[2]; + int x2 = it->edges[3]; + + // how many pixels overlap? + int total = 2 * (y2 - y1 + x2 - x1) + 1; + int count = total; + + if (y2 < y1 || x2 < x1) { + throw runtime_error("candidate edges must be in proper order"); + } + + for (int i = y1; i <= y2; ++i) { + if (combined.data[i * combined.cols + x1] == 0) { + count--; + } + if (combined.data[i * combined.cols + x2] == 0) { + count--; + } + } + + for (int i = x1; i <= x2; ++i) { + if (combined.data[y1 * combined.cols + i] == 0) { + count--; + } + if (combined.data[y2 * combined.cols + i] == 0) { + count--; + } + } + + // remember the edge coverage inside the object + it->edgeCoverage = static_cast(count) / total; + if (maxEdgeCoverage < it->edgeCoverage) { + maxEdgeCoverage = it->edgeCoverage; + } + + // increment the average area + averageArea += it->features[0]; + } + averageArea /= tempOpenings.size(); + + unsigned int discarded = 0; + for (vector::iterator it = tempOpenings.begin(); it != tempOpenings.end(); ++it) { + // TODO put coef in class + if ((it->features[0] > 0.3 * averageArea) && + (it->edgeCoverage > MIN_EDGE_COV * maxEdgeCoverage)) + { + openings.push_back(*it); + } else { + discarded++; + } + } + + if (!quiet) cout << "** Discarded openings due to relative size to average candidate: " << discarded << endl; + + // draw the chosen rectangles, and also the occupancy map + cv::Mat imgWithOpenings = surf.depthImg; + cv::cvtColor(imgWithOpenings, imgWithOpenings, CV_GRAY2BGR, 3); + + for (size_t i = 0; i < openings.size(); ++i) { + int y1 = openings[i].edges[0]; + int y2 = openings[i].edges[1]; + int x1 = openings[i].edges[2]; + int x2 = openings[i].edges[3]; + + cv::rectangle(imgWithOpenings, cv::Point(x1, y1), cv::Point(x2, y2), cv::Scalar(0, 0, MAX_IMG_VAL), 1); + } + + cv::imwrite("./img/depthCandidates.png", imgWithOpenings); + + if (!quiet) cout << "** Detected " << openings.size() << " potential openings" << endl; +} + +void model::Scene::clusterOpenings(const LabeledPlane3d& surf, const vector& openings, + std::vector& result) const +{ + // clear the result just in case + result.clear(); + + if (openings.size() == 1) { + if (!quiet) cerr << "WARNING: only one candidate received for clustering!" << endl; + result.push_back(openings.front()); + return; + } else if (openings.size() < 1) { + if (!quiet) cerr << "WARNING: no candidates received for clustering!" << endl; + return; + } + + if (!quiet) cout << endl << "== Clustering openings for surface centered at " << surf.pt << endl; + + size_t nrSamples = openings.size(); + unsigned int dim = 7; + + // a few matrix initializations + CvMat* points = cvCreateMat(nrSamples, dim, CV_32FC1); + CvMat* clusters = cvCreateMat(nrSamples, 1, CV_32SC1); + + // fill in the matrices with data + for (size_t i = 0; i < nrSamples; ++i) { + if (openings[i].features.size() != model::CandidateOpening::NR_FEATURES) { + throw runtime_error("invalid feature vector size"); + } + + // compute the center of each opening + float x = static_cast(openings[i].edges[2] + openings[i].edges[3]) / 2.0; + float y = static_cast(openings[i].edges[0] + openings[i].edges[1]) / 2.0; + + points->data.fl[i * dim + 0] = x; // window center + points->data.fl[i * dim + 1] = y; // window center + points->data.fl[i * dim + 2] = openings[i].edges[0]; // upper edge + points->data.fl[i * dim + 3] = openings[i].edges[1]; // lower edge + points->data.fl[i * dim + 4] = openings[i].edges[2]; // left edge + points->data.fl[i * dim + 5] = openings[i].edges[3]; // right edge + points->data.fl[i * dim + 6] = openings[i].features[1];// edge ratio + } + + // termination criteria for the kMeans algorithm + CvTermCriteria term; + term.type = CV_TERMCRIT_ITER | CV_TERMCRIT_EPS; + term.max_iter = 10; + term.epsilon = 1.0; + int maxNrClusters = 256; + + int nrClusters = 2; // from how many clusters to start + double prev, compactness; // previous compactness, and current compactness + CvMat *centers = cvCreateMat(nrClusters - 1, dim, CV_32FC1); // place where we compute the centers of each cluster + cvKMeans2(points, nrClusters - 1, clusters, term, 1, 0, 0, centers, &prev); + + while (1) { + cvReleaseMat(¢ers); + centers = cvCreateMat(nrClusters, dim, CV_32FC1); + cvKMeans2(points, nrClusters, clusters, term, 1, 0, 0, centers, &compactness); + + // TODO put somewhere everything in class + double deltaCompactness = compactness - prev; + if (!quiet) cout << "** Delta compactness: " << deltaCompactness << endl; + if (fabs(deltaCompactness) < 1.0 || nrClusters >= maxNrClusters) { + break; + } + + prev = compactness; + nrClusters++; + } + + if (!quiet) cout << "** Detected " << static_cast(nrClusters) << " clusters of potential openings" << endl; + + // generate colors for each cluster + int r, g, b; + cv::Scalar colors[nrClusters]; + for (int i = 0; i < nrClusters; ++i) { + randomColor(MAX_IMG_VAL, r, g, b); + colors[i] = (cv::Scalar(b, g, r)); + } + + // create an image with the clusters in separate colors + cv::Mat clusterImg = surf.depthImg; + cv::Mat finalImg = surf.depthImg; + cv::cvtColor(clusterImg, clusterImg, CV_GRAY2BGR, 3); + cv::cvtColor(finalImg, finalImg, CV_GRAY2BGR, 3); + + // count how many elements we have in each cluster + vector clusterCount; + clusterCount.resize(nrClusters); + fill(clusterCount.begin(), clusterCount.end(), 0); + + // compute the candidate for each cluster with the best coverage of empty area + vector bestCandidates; + bestCandidates.resize(nrClusters); + + vector bestEmptyAreas; + bestEmptyAreas.resize(nrClusters); + fill(bestEmptyAreas.begin(), bestEmptyAreas.end(), numeric_limits::min()); + + // fill in the result separating each cluster + for (size_t i = 0; i < nrSamples; ++i) { + // the cluster of the current opening + int currCluster = clusters->data.i[i]; + + // draw each cluster + int y1 = openings[i].edges[0]; + int y2 = openings[i].edges[1]; + int x1 = openings[i].edges[2]; + int x2 = openings[i].edges[3]; + cv::rectangle(clusterImg, cv::Point(x1, y1), cv::Point(x2, y2), colors[currCluster], 1); + + // TODO avoid hard coding + // find which is the best choice from the cluster + double currEmptyArea = openings[i].features[0] * + (openings[i].features[9] - openings[i].features[10] - openings[i].features[11]); + if (bestEmptyAreas[currCluster] < currEmptyArea) { + bestEmptyAreas[currCluster] = currEmptyArea; + bestCandidates[currCluster] = openings[i]; + } + + clusterCount[currCluster]++; + } + + // divide by the cluster count to get the average of the cluster + for (size_t i = 0; i < bestEmptyAreas.size(); ++i) { + if (clusterCount[i] <= 0) { + continue; + } + + int y1 = bestCandidates[i].edges[0]; + int y2 = bestCandidates[i].edges[1]; + int x1 = bestCandidates[i].edges[2]; + int x2 = bestCandidates[i].edges[3]; + + cv::rectangle(finalImg, cv::Point(x1, y1), cv::Point(x2, y2), colors[i], 2); + result.push_back(bestCandidates[i]); + } + + if (!quiet) { + cout << "** The count for each cluster is ["; + for (unsigned int i = 0; i < clusterCount.size() - 1; ++i) { + cout << clusterCount[i] << ", "; + } + cout << clusterCount.back() << "]" << endl; + } + + // display the center of the cluster only for the clusters that have candidates + for (int i = 0; i < nrClusters; ++i) { + if (clusterCount[i] > 0) { + int x = static_cast(centers->data.fl[i * dim + 0]); + int y = static_cast(centers->data.fl[i * dim + 1]); + cv::circle(clusterImg, cv::Point(x, y), 2, colors[i], CV_FILLED); + cv::circle(finalImg, cv::Point(x, y), 2, colors[i], CV_FILLED); + } + } + + cv::imwrite("./img/depthClusters.png", clusterImg); + cv::imwrite("./img/depthOpenings.png", finalImg); + + cvReleaseMat(&points); + cvReleaseMat(¢ers); + cvReleaseMat(&clusters); +} + +void model::Scene::addFinalOpenings(const LabeledPlane3d& surf, + std::vector& result) +{ + int imgHeight = static_cast(surf.depthMap.size()); + int imgWidth = static_cast(surf.depthMap.front().size()); + + vector openings, candidates; + this->detectPotentialOpenings(surf, openings); + this->clusterOpenings(surf, openings, candidates); + + // sweep across the wall and see which candidates overlap + for (int i = 0; i < imgHeight; ++i) { + for (int j = 0; j < imgWidth; ++j) { + // put currently overlapping candidates here + vector::iterator, double> > temp; + + // the maximum opening area in the current overlapping windows + double bestEmptyArea = numeric_limits::min(); + + for (vector::iterator it = candidates.begin(); it < candidates.end(); ++it) { + int y1 = it->edges[0]; + int y2 = it->edges[1]; + int x1 = it->edges[2]; + int x2 = it->edges[3]; + + if (i >= y1 && i < y2 && j >= x1 && j <= x2) { + // TODO avoid hard coding + double freeArea = it->features[0] * + (it->features[9] - it->features[10] - it->features[11]); + temp.push_back(make_pair(it, freeArea)); + + if (bestEmptyArea < freeArea) { + bestEmptyArea = freeArea; + } + } + } + + for (vector::iterator, double> >::iterator it = temp.begin(); it < temp.end(); ++it) { + // if the area is smaller than the maximum discard this plane + if (it->second < bestEmptyArea) { + candidates.erase(it->first); + } + } + } + } + + // display an image with the final openings + int r, g, b; + cv::Mat finalOpeningsImg = surf.depthImg.clone(); + cv::cvtColor(finalOpeningsImg, finalOpeningsImg, CV_GRAY2BGR, 3); + + for (vector::iterator it = candidates.begin(); it < candidates.end(); ++it) { + int y1 = it->edges[0]; + int y2 = it->edges[1]; + int x1 = it->edges[2]; + int x2 = it->edges[3]; + + randomColor(MAX_IMG_VAL, r, g, b); + cv::rectangle(finalOpeningsImg, cv::Point(x1, y1), cv::Point(x2, y2), cv::Scalar(b, g, r), 3); + + // add the new openings as windows + Point3d pt(0.0, 0.0, 0.0); + pt += surf.patches[y1].front().first; + pt += surf.patches[y2].front().first; + pt += surf.patches.front()[x1].first; + pt += surf.patches.front()[x2].first; + pt /= 4.0; + + vector hull; + hull.push_back(surf.patches[y1][x1].first); + hull.push_back(surf.patches[y1][x2].first); + hull.push_back(surf.patches[y2][x2].first); + hull.push_back(surf.patches[y2][x1].first); + + Plane3d toPush(pt, surf.normal, hull); + this->finalOpenings.push_back(toPush); + } + + cv::imwrite("./img/depthOpeningsFinal.png", finalOpeningsImg); + if (!quiet) cout << "** Final openings found on current surface: " << candidates.size() << endl; + if (!quiet) cout << "** Final openings found so far: " << this->finalOpenings.size() << endl; + + // copy the result + result = candidates; +} + +void model::Scene::correct(LabeledPlane3d& surf, const vector& openings) { + if (!quiet) cout << endl << "== Correcting surface centered at " << surf.pt << endl; + + int imgHeight = static_cast(surf.depthMap.size()); + int imgWidth = static_cast(surf.depthMap.front().size()); + + // some images we are interested in + cv::Mat depthImg = surf.depthImg.clone(); + cv::Mat depthImgMask(imgHeight, imgWidth, CV_8UC1); + cv::Mat labelsImg(imgHeight, imgWidth, CV_8UC3); + + // compute the maximum from the image + double max = numeric_limits::min(); + double mean = 0.0, stdDev = 0.0; + int count = 0; + + for (int i = 0; i < imgHeight; ++i) { + for (int j = 0; j < imgWidth; ++j) { + // set all empty and occluded to unknown + if (surf.patches[i][j].second == EMPTY || surf.patches[i][j].second == OCCLUDED) { + surf.patches[i][j].second = UNKOWN; + // compute the mean of the occupied patches + } else if (surf.patches[i][j].second == OCCUPIED) { + mean += surf.depthImg.data[i * surf.depthImg.cols + j]; + count++; + } + + // compute the maximum from the image + if (max < surf.depthMap[i][j]) { + max = surf.depthMap[i][j]; + } + } + } + + // adjust the mean + mean /= count; + count = 0; + + // compute the standard deviation + for (int i = 0; i < imgHeight; ++i) { + for (int j = 0; j < imgWidth; ++j) { + if (surf.patches[i][j].second == OCCUPIED) { + stdDev += pow(surf.depthImg.data[i * surf.depthImg.cols + j] - mean, 2.0); + count++; + } + + } + } + + // adjust the standard deviation + stdDev = sqrt(stdDev / count); + + // mark all patches contained in openings + for (vector::const_iterator it = openings.begin(); it != openings.end(); ++it) { + int y1 = it->edges[0]; + int y2 = it->edges[1]; + int x1 = it->edges[2]; + int x2 = it->edges[3]; + + for (int i = 0; i < imgHeight; ++i) { + for (int j = 0; j < imgWidth; ++j) { + if (i >= y1 && i <= y2 && j >= x1 && j <= x2) { + surf.patches[i][j].second = OPENING; + } + } + } + } + + // adjust the image + for (int i = 0; i < imgHeight; ++i) { + for (int j = 0; j < imgWidth; ++j) { + // initially mark as not part of the mask + depthImgMask.data[i * depthImgMask.cols + j] = 0; + + // put the color into the image according to the label + int curr = (i * 3 * labelsImg.cols) + 3 * j; + switch (surf.patches[i][j].second) { + case OPENING: + labelsImg.data[curr + 0] = 200; + labelsImg.data[curr + 1] = 200; + labelsImg.data[curr + 2] = 200; + break; + case UNKOWN: + labelsImg.data[curr + 0] = 50; + labelsImg.data[curr + 1] = 50; + labelsImg.data[curr + 2] = 50; + + // add pixel to mask for inpainting + depthImgMask.data[i * depthImgMask.cols + j] = 200; + break; + case OCCUPIED: + labelsImg.data[curr + 0] = 0; + labelsImg.data[curr + 1] = 0; + labelsImg.data[curr + 2] = 200; + break; + default: + throw runtime_error("invalid default branch taken, possibly EMPTY or OCCLUDED patches"); + break; + } + } + } + + cv::imwrite("./img/labelsWithOpenings.png", labelsImg); + cv::imwrite("./img/depthMask.png", depthImgMask); + cv::imwrite("./img/depthSimple.png", depthImg); + + // TODO add values as part of class + if (!quiet) cout << "** Filling in missing data using inpaint algorithm" << endl; + cv::inpaint(depthImg, depthImgMask, depthImg, 0.05 * (imgWidth + imgHeight), cv::INPAINT_NS); + cv::imwrite("./img/depthInpaint.png", depthImg); + + // add some gaussian noise to make the image look more real + if (!quiet) cout << "** Adding gaussian noise: mean = " << mean << ", stdDev = " << stdDev << endl; + cv::Mat noise(imgHeight, imgWidth, CV_8UC1); + cv::randn(noise, mean, stdDev); + cv::addWeighted(depthImg, 0.9, noise, 0.1, 0.0, depthImg); + cv::GaussianBlur(depthImg, depthImg, cv::Size(3, 3), 0.5, 0.5); + cv::imwrite("./img/depthInpaintNoise.png", depthImg); + surf.correctedDepthImg = depthImg.clone(); + + // TODO apply the inverse transform from 2D to 3D and create a new point cloud using UOS RGB +} + +void model::Scene::writeModel(string dir) { + if (!fileIsDir(dir)) { + throw runtime_error(dir + " is not a directory"); + } + + string outputDir; + + if (dir[dir.length()-1] == '/') { + outputDir = dir + "model"; + } + else { + outputDir = dir + "/model"; + } + + int ret = mkdir(outputDir.c_str(), S_IRWXU | S_IRWXG | S_IRWXO); + + if (ret != 0 && errno != EEXIST) { + throw runtime_error("unable to create directory " + outputDir); + } + + if (!quiet) cout << endl << "== Writing planes to " << outputDir << " directory..." << endl; + + string planesListFile = outputDir + "/planes.list"; + ofstream list(planesListFile.c_str(), ios::out); + + for (unsigned int counter = 0; counter < this->walls.size() + this->finalOpenings.size() + 2; ++counter) { + Plane3d currPlane; // the plane to be printed + string type; // the objet's type, floor, ceiling, wall or opening + + if (counter < this->walls.size()) { + currPlane = this->walls[counter]; + type = "Wall"; + } + else if (counter == this->walls.size()) { + currPlane = this->ceiling; + type = "Ceiling"; + } + else if (counter == this->walls.size() + 1) { + currPlane = this->floor; + type = "Floor"; + } else { + // TODO find a better solution + currPlane = this->finalOpenings[counter - (this->walls.size() + 2)]; + currPlane.normal.normalize(); + for (vector::iterator it = currPlane.hull.begin(); it != currPlane.hull.end(); ++it) { + it->x += currPlane.normal.x; + it->y += currPlane.normal.y; + it->z += currPlane.normal.z; + } + type = "Opening"; + } + + stringstream ss; + ss << outputDir << "/scan" << setfill('0') << setw(3) << counter << ".3d"; + ofstream file(ss.str().c_str(), ios::out); + + + // add the plane to the list of planes + list << type << " " << ss.str() << endl; + boost::algorithm::to_lower(type); + if (!quiet) cout << "** Writing " << type << ss.str() << endl; + + // add the points to the scan file + for (vector::iterator it = currPlane.hull.begin(); + it != currPlane.hull.end(); ++it) + { + file << *it << endl; + } + + file.close(); + } + + list.close(); +} + +void model::Scene::writeCorrectedWalls(std::string dir) { + if (!fileIsDir(dir)) { + throw runtime_error(dir + " is not a directory"); + } + + string outputDir; + + if (dir[dir.length()-1] == '/') { + outputDir = dir + "cloud"; + } + else { + outputDir = dir + "/cloud"; + } + + int ret = mkdir(outputDir.c_str(), S_IRWXU | S_IRWXG | S_IRWXO); + + if (ret != 0 && errno != EEXIST) { + throw runtime_error("unable to create directory " + outputDir); + } + + if (!quiet) cout << endl << "== Writing corrected points to " << outputDir << " directory..." << endl; + + // write the pose file + string poseFileName = outputDir + "/scan000.pose"; + ofstream out(poseFileName.c_str(), ios::out); + out << "0 0 0" << endl; + out << "0 0 0" << endl; + out.close(); + + string pointsFileName = outputDir + "/scan000.3d"; + out.open(pointsFileName.c_str(), ios::out); + + // fetch each points and its color + vector > points; + + getCorrectedWall(this->ceiling, points); + for (vector >::iterator it = points.begin(); it != points.end(); ++it) { + out << it->first << " " << static_cast(it->second[0]) << " " << static_cast(it->second[1]) << " " << static_cast(it->second[2]) << endl; + } + + getCorrectedWall(this->floor, points); + for (vector >::iterator it = points.begin(); it != points.end(); ++it) { + out << it->first << " " << static_cast(it->second[0]) << " " << static_cast(it->second[1]) << " " << static_cast(it->second[2]) << endl; + } + + for (vector::iterator wall = this->walls.begin(); wall != this->walls.end(); ++wall) { + getCorrectedWall(*wall, points); + for (vector >::iterator it = points.begin(); it != points.end(); ++it) { + out << it->first << " " << static_cast(it->second[0]) << " " << static_cast(it->second[1]) << " " << static_cast(it->second[2]) << endl; + } + } + + out.close(); +} + +void model::Scene::getCorrectedWall(const LabeledPlane3d& surf, vector >& points) { + if (!quiet) cout << "** Computing point cloud for surface centered at " << surf.pt << endl; + + // clear the output + points.clear(); + + if (surf.correctedDepthImg.empty()) { + if (!quiet) cout << "WARNING: the surface centered at " << surf.pt << " has not been corrected yet" << endl; + return; + } + + if ((size_t) surf.correctedDepthImg.rows != surf.patches.size() || + (size_t) surf.correctedDepthImg.cols != surf.patches.front().size()) + { + throw runtime_error("corrected image must be the same size as depth map"); + } + + // compute the maximum of the depth image + int depthImgMax = 0; + for (size_t i = 0; i < surf.depthMap.size(); ++i) { + for (size_t j = 0; j < surf.depthMap.front().size(); ++j) { + if (depthImgMax < surf.depthMap[i][j]) { + depthImgMax = surf.depthMap[i][j]; + } + } + } + + // make the original points darker than the corrected ones + int r = 255, g = 50, b = 50; + int wr = 255, wg = 150, wb = 150; + + for (int i = 0; i < surf.correctedDepthImg.rows; ++i) { + for (int j = 0; j < surf.correctedDepthImg.cols; ++j) { + cv::Vec3i color; + + // only consider occupied and unknown pixels + if (surf.patches[i][j].second == OCCUPIED) { + color = cv::Vec3i(r, g, b); + } else if (surf.patches[i][j].second == UNKOWN) { + color = cv::Vec3i(wr, wg, wb); + } else { + continue; + } + + // the value from the depth map + double depth = static_cast(depthImgMax * surf.correctedDepthImg.data[i * surf.correctedDepthImg.cols + j]) / MAX_IMG_VAL; + + // the distance from where the raytracing took place to the point it hit + double dist = depth + surf.depthMapDistances.first - surf.depthMapDistances.second; + + Vector3d normal = surf.normal; + normal.normalize(); + + Point3d pt = surf.patches[i][j].first; + pt.x = pt.x + normal.x * dist; + pt.y = pt.y + normal.y * dist; + pt.z = pt.z + normal.z * dist; + + points.push_back(make_pair(pt, color)); + } + } +} + +void model::Scene::flood(LabeledPlane3d& surf, + const int& i, const int& j, + const Label& target, const Label& replacement) +{ + // no point of carrying on + if (target == replacement) { + return; + } + + pair north = make_pair(i-1, j); + pair south = make_pair(i+1, j); + pair east = make_pair(i, j+1); + pair west = make_pair(i, j-1); + + vector > neigh; + neigh.push_back(north); + neigh.push_back(south); + neigh.push_back(east); + neigh.push_back(west); + + if (surf.patches[i][j].second == target) { + surf.patches[i][j].second = replacement; + } + + for (vector >::iterator it = neigh.begin(); it != neigh.end(); ++it) { + if ((it->first > 0 && it->second > 0) && + surf.patches[it->first][it->second].second == target) + { + flood(surf, it->first, it->second, target, replacement); + } + } +} + +bool model::Scene::isOccupied(const Point3d& center, const double& width) { + // look for a close point + double pt[] = {center.x, center.y, center.z}; + double* closest = this->octTree->FindClosest(pt, pow(sqrt(3) * (width / 2.0), 2.0), 0); + + // bounding box limits + double xUppLim = center.x + width / 2.0; + double xLowLim = center.x - width / 2.0; + double yUppLim = center.y + width / 2.0; + double yLowLim = center.y - width / 2.0; + double zUppLim = center.z + width / 2.0; + double zLowLim = center.z - width / 2.0; + + if (closest != NULL && + (closest[0] > xLowLim && closest[0] < xUppLim) && + (closest[1] > yLowLim && closest[1] < yUppLim) && + (closest[2] > zLowLim && closest[2] < zUppLim)) + { + return true; + } + + return false; +} diff --git a/src/model/util.cc b/src/model/util.cc new file mode 100644 index 0000000..3e3d545 --- /dev/null +++ b/src/model/util.cc @@ -0,0 +1,168 @@ +/** + * @file util.cc + * + * @auhtor Remus Claudiu Dumitru + * @date 13 Feb 2012 + * + */ + +//============================================================================== +// Includes +//============================================================================== +#include "model/util.h" + +#include // stat() +#include +#include + +#include +using namespace std; + +//============================================================================== +// Implementation +//============================================================================== +bool model::sameSide(const Point3d& p1, + const Point3d& p2, const Point3d& a, const Point3d& b) +{ + // compute the required vectors + Vector3d ba; + ba.x = b.x - a.x; + ba.y = b.y - a.y; + ba.z = b.z - a.z; + + Vector3d p1a; + p1a.x = p1.x - a.x; + p1a.y = p1.y - a.y; + p1a.z = p1.z - a.z; + + Vector3d p2a; + p2a.x = p2.x - a.x; + p2a.y = p2.y - a.y; + p2a.z = p2.z - a.z; + + // do the cross products + Vector3d cp1 = ba.crossProduct(p1a); + Vector3d cp2 = ba.crossProduct(p2a); + + // compute the dotproduct + double dotProduct = cp1.x * cp2.x + cp1.y * cp2.y + cp1.z * cp2.z; + + if (dotProduct >= 0) { + return true; + } + else { + return false; + } +} + +bool model::insideHull(const Point3d& pt, const vector& hull) { + if (hull.size() <= 0) { + throw runtime_error("hull cannot be empty"); + } + + Point3d center(0.0, 0.0, 0.0); + + for (unsigned int i = 0; i < hull.size(); ++i) { + center.x += hull[i].x; + center.y += hull[i].y; + center.z += hull[i].z; + } + center = center / hull.size(); + + for (unsigned int i = 0; i < hull.size() - 1; ++i) { + if (sameSide(pt, center, hull[i], hull[i+1]) && + sameSide(pt, hull[i], center, hull[i+1]) && + sameSide(pt, hull[i+1], center, hull[i])) + { + return true; + } + } + + if (sameSide(pt, center, hull[hull.size()-1], hull[0]) && + sameSide(pt, hull[hull.size()-1], center, hull[0]) && + sameSide(pt, hull[0], center, hull[hull.size()-1])) + { + return true; + } + + return false; +} + +vector model::getHorizontalConvexHull(vector points) { + if (points.size() <= 3) { + return points; + } + + vector hull; + vector::iterator leftmostIt = points.begin(); + + // compute the lefmost point + for (vector::iterator it = points.begin() + 1; + it != points.end(); ++it) + { + if (it->x < leftmostIt->x) { + leftmostIt = it; + } + } + + Point3d pointOnHull = *leftmostIt; + Point3d endPoint; + + do { + // add the candidate point to the hull + hull.push_back(pointOnHull); + endPoint = points[0]; + + for (unsigned int j = 1; j < points.size(); ++j) { + // define dummy points in the XOZ plane + Point3d fakeCurPt(points[j].x, 0.0, points[j].z); + Point3d fakePointOnHull(pointOnHull.x, 0.0, pointOnHull.z); + Point3d fakeEndPoint(endPoint.x, 0.0, endPoint.z); + + // define a point to the left of the line + Point3d farLeft = fakeEndPoint; + farLeft.rotate(pointOnHull, Rotation3d(0.0, -M_PI/6, 0.0)); + + // if ... or points[j] on the left side of line (pointOnHull, endPoint) + if (pointOnHull != points[j] && + (endPoint == pointOnHull || sameSide(fakeCurPt, farLeft, fakePointOnHull, fakeEndPoint))) + { + endPoint = points[j]; + } + } + + pointOnHull = endPoint; + + } while (endPoint != hull[0]); + + return hull; +} + +bool model::fileExists(const string& fileName) { + struct stat buffer ; + if (stat(fileName.c_str(), &buffer)) return false; // ret 0 for found + return true; +} + +bool model::fileIsDir(const string& fileName) { + struct stat buffer; + int status = stat(fileName.c_str(), &buffer); + + if (status != 0 || S_ISREG(buffer.st_mode)) { + return false; + } + + if (S_ISDIR(buffer.st_mode)) { + return true; + } + + return false; +} + +bool model::makeDir(const string& path) { + if (fileExists(path) && fileIsDir(path)) { + return true; + } + + return (mkdir(path.c_str(), S_IRWXU | S_IRWXG | S_IRWXO) == 0 ? true : false); +} diff --git a/src/model/vector3d.cc b/src/model/vector3d.cc new file mode 100644 index 0000000..f4fcdda --- /dev/null +++ b/src/model/vector3d.cc @@ -0,0 +1,259 @@ +/** + * @file vector3d.cc + * + * @auhtor Remus Claudiu Dumitru + * @date 16 Feb 2012 + * + */ + +//============================================================================== +// Includes +//============================================================================== +#include "model/vector3d.h" + +#include "model/util.h" +#include + +using namespace model; + +//============================================================================== +// Implementation +//============================================================================== + +model::Vector3d::Vector3d() { + // nothing to do +} + +model::Vector3d::Vector3d(const double& x, const double& y, const double& z) { + this->x = x; + this->y = y; + this->z = z; +} + +// constructor for vector b - a, where a and b are points +model::Vector3d::Vector3d(const Point3d& a, const Point3d& b) { + this->x = b.x - a.x; + this->y = b.y - a.y; + this->z = b.z - a.z; +} + +model::Vector3d::Vector3d(const Vector3d& other) { + this->x = other.x; + this->y = other.y; + this->z = other.z; +} + +model::Vector3d& model::Vector3d::operator=(const model::Vector3d& other) { + if (this != &other) { + this->x = other.x; + this->y = other.y; + this->z = other.z; + } + + return *this; +} + +// normalizes the vector +void model::Vector3d::normalize() { + // squares + double sx = sqr(this->x); + double sy = sqr(this->y); + double sz = sqr(this->z); + + double len = sqrt(sx + sy + sz); + + // avoid a division by zero + if (len == 0.0) { + len = 1.0; + } + + // normalize the values + this->x /= len; + this->y /= len; + this->z /= len; + + // increase precision, this accounts for the lost digits + this->x = round(this->x * 10000) / 10000; + this->y = round(this->y * 10000) / 10000; + this->z = round(this->z * 10000) / 10000; +} + +// inverses the vector +void model::Vector3d::invert() { + this->x *= (-1); + this->y *= (-1); + this->z *= (-1); +} + +// get the length +double model::Vector3d::length() const { + return sqrt(sqr(this->x) + sqr(this->y) + sqr(this->z)); +} + +// rotation of a vector is like a point around 0 0 0 +void model::Vector3d::rotate(const Rotation3d& rot) { + // create rotation matrices + double Rx[3][3] = { + {1.0, 0.0, 0.0}, + {0.0, +cos(rot.x), -sin(rot.x)}, + {0.0, +sin(rot.x), +cos(rot.x)} + }; + + double Ry[3][3] = { + {+cos(rot.y), 0.0, +sin(rot.y)}, + {0.0, 1.0, 0.0}, + {-sin(rot.y), 0.0, +cos(rot.y)} + }; + + double Rz[3][3] = { + {+cos(rot.z), -sin(rot.z), 0.0}, + {+sin(rot.z), +cos(rot.z), 0.0}, + {0.0, 0.0, 1.0} + }; + + // convert to something easier to use + double point[3]; + point[0] = this->x; + point[1] = this->y; + point[2] = this->z; + + // somewhere to save the result + double temp[3]; + + // do rotation around z axis + for (int i = 0; i < 3; ++i) { + // reset the sum + double sum = 0.0; + + for (int j = 0; j < 3; ++j) { + sum += (Rz[i][j] * point[j]); + } + + // save the result + temp[i] = sum; + } + + // move results for next rotation + for (int i = 0; i < 3; ++i) { + point[i] = temp[i]; + } + + // do rotation around y axis + for (int i = 0; i < 3; ++i) { + // reset the sum + double sum = 0.0; + + for (int j = 0; j < 3; ++j) { + sum += (Ry[i][j] * point[j]); + } + + // save the result + temp[i] = sum; + } + + // move results for next rotation + for (int i = 0; i < 3; ++i) { + point[i] = temp[i]; + } + + // do rotation around z axis + for (int i = 0; i < 3; ++i) { + // reset the sum + double sum = 0.0; + + for (int j = 0; j < 3; ++j) { + sum += (Rx[i][j] * point[j]); + } + + // save the result + temp[i] = sum; + } + + // move results for next rotation + for (int i = 0; i < 3; ++i) { + point[i] = temp[i]; + } + + // save the results + this->x = point[0]; + this->y = point[1]; + this->z = point[2]; +} + +// computes the cross product between this vector and another given one +model::Vector3d model::Vector3d::crossProduct(const Vector3d& other) const { + Vector3d ret; + + double a1 = this->x; + double a2 = this->y; + double a3 = this->z; + + double b1 = other.x; + double b2 = other.y; + double b3 = other.z; + + ret.x = a2 * b3 - a3 * b2; + ret.y = a3 * b1 - a1 * b3; + ret.z = a1 * b2 - a2 * b1; + + return ret; +} + +// computes the dot product between this vector and another given one +double model::Vector3d::dotProduct(const Vector3d& other) const { + return this->x * other.x + + this->y * other.y + + this->z * other.z; +} + +// FIXME use atan2, computes the angle between two vectors +double model::Vector3d::angle(const Vector3d& other) { + double len1 = this->length(); + double len2 = other.length(); + + if (len1 == 0 || len2 == 0) { + return 0; + } + + return acos( + this->dotProduct(other) / (len1 * len2) + ); +} + +void model::Vector3d::operator+=(const Vector3d& other) { + this->x += other.x; + this->y += other.y; + this->z += other.z; +} + +model::Vector3d model::Vector3d::operator+(const Vector3d& other) { + Vector3d result; + + result.x = this->x + other.x; + result.y = this->y + other.y; + result.z = this->z + other.z; + + return result; +} + +model::Vector3d model::Vector3d::operator*(const double& val) { + Vector3d result; + + result.x = this->x * val; + result.y = this->y * val; + result.z = this->z * val; + + return result; +} + +void model::Vector3d::operator/=(const double& div) { + this->x /= div; + this->y /= div; + this->z /= div; +} + + +std::ostream& model::operator<<(std::ostream& os, const model::Vector3d& vect) { + os << vect.x << " " << vect.y << " " << vect.z; + return os; +} diff --git a/src/pmd/CMakeLists.txt b/src/pmd/CMakeLists.txt new file mode 100644 index 0000000..5556602 --- /dev/null +++ b/src/pmd/CMakeLists.txt @@ -0,0 +1,68 @@ +IF(WITH_PMD) + include_directories(${CMAKE_SOURCE_DIR}/include/pmd/pmdaccess2) + include_directories(${CMAKE_SOURCE_DIR}/include/pmd/pose) + include_directories(${CMAKE_SOURCE_DIR}/include/pmd) + + + FIND_LIBRARY(LIBCONFIG_LIBRARY_DIR libconfig.so) + FIND_LIBRARY(LIBGLFW_LIBRARY_DIR libglfw.so) + + IF(NOT WIN32) + FIND_PACKAGE(LibXml2 REQUIRED) + ENDIF(NOT WIN32) + + FIND_PACKAGE(XMLRPC REQUIRED c++) + FIND_PACKAGE(OpenCV REQUIRED ) + + FIND_PATH(FTGL_INCLUDE_DIR + NAMES ftgl.h + PATHS /usr/local/include + /usr/include + /usr/include/FTGL + /usr/include/freetype2 + NO_DEFAULT_PATH) + + FIND_PATH(freetype_INCLUDE_DIRS + NAMES freetype/config/ftheader.h + PATHS /usr/local/include + /usr/include/freetype2 + NO_DEFAULT_PATH) + + #MESSAGE(STATUS ${FTGL_INCLUDE_DIR}) + #MESSAGE(STATUS ${freetype_INCLUDE_DIRS}) + include_directories(${FTGL_INCLUDE_DIR}) + include_directories(${freetype_INCLUDE_DIRS}) + + + SET(PMDACCESS_DIR pmdaccess2/) + SET(POSE_DIR pose/) + SET(OFFLINE_DIR offline/) + SET(CALIBRATE_DIR calibrate/) + + add_library(pmdaccess2 STATIC ${PMDACCESS_DIR}pmdaccess.cc) + + SET(PMD_LIBS pmdaccess2 config glfw GL GLU ftgl xmlrpc_util glfw xmlrpc_client xmlrpc xmlrpc++ xmlrpc_client++ xmlrpc_xmltok xmlrpc_xmlparse ${OpenCV_LIBS} ) + + + add_executable(grabVideoAnd3D ${OFFLINE_DIR}grabVideoAnd3D.cc cvpmd.cc pmdWrap.cc ) + target_link_libraries(grabVideoAnd3D scan dl newmat ${PMD_LIBS}) + + add_executable(convertToSLAM6D ${OFFLINE_DIR}convertToSLAM6D.cc cvpmd.cc pmdWrap.cc ) + target_link_libraries(convertToSLAM6D scan dl newmat ${PMD_LIBS}) + + add_executable(calibratePMD ${CALIBRATE_DIR}calibrate.cc ) + target_link_libraries(calibratePMD ${PMD_LIBS}) + + add_executable(grabFramesCam ${CALIBRATE_DIR}grabFramesCam.cc ) + target_link_libraries(grabFramesCam ${PMD_LIBS}) + + add_executable(grabFramesPMD ${CALIBRATE_DIR}grabFramesPMD.cc cvpmd.cc pmdWrap.cc) + target_link_libraries(grabFramesPMD scan newmat ${PMD_LIBS}) + + add_executable(extrinsicPMD ${CALIBRATE_DIR}extrinsic.cc ) + target_link_libraries(extrinsicPMD ${PMD_LIBS}) + + add_executable(pose ${POSE_DIR}pose.cc ${POSE_DIR}history.cc cvpmd.cc pmdWrap.cc) + target_link_libraries(pose scan newmat ${PMD_LIBS}) + +ENDIF(WITH_PMD) diff --git a/src/pmd/README b/src/pmd/README new file mode 100644 index 0000000..0ec24dc --- /dev/null +++ b/src/pmd/README @@ -0,0 +1,19 @@ +Code for PMD camera. + +pmdaccess2/* PMD-camera access lib +cvpmd & pmdWrap libpmdaccess2 wrapper, PMD -> OpenCV marshalling and a bit of math. +calibrate/* PMD calibration tool +pose/* 3D Tracking, pose estimation +offline/* Grab data for offline processing +*xml cameras matrices + +Depends on OpenCV (2.0), GLFW, FTGL, libconfig, xmlrpc-c + +installing opencv on ubuntu: http://ivkin.net/2009/11/installing-opencv-2-0-on-ubuntu-9-10-karmic-koala/ + +to compile just run: + $ make + +Ubuntu issues: + # fix GLFW /usr/lib/libglfw.so symlink + # obtain libconfig somewhere (i.e. from debian repos or install from source) diff --git a/src/pmd/calibrate/calibrate.cc b/src/pmd/calibrate/calibrate.cc new file mode 100644 index 0000000..2c52758 --- /dev/null +++ b/src/pmd/calibrate/calibrate.cc @@ -0,0 +1,148 @@ +/* + * calibrate implementation + * + * Copyright (C) Stanislav Serebryakov + * + * Released under the GPL version 3. + * + */ + +#include + +#include +#include + + +void usage(char *progName) { + printf("%s \n", progName); + printf("\twhere board-size-x and y is count of *inner* corners of the booard"); + printf("i.e.: %s 6 4 0.04 image*\n", progName); + printf("Use more then ten images.\nPress space bar to proceed.\n"); +} + +void calibrate( CvMat *intrinsic, CvMat *distortion, CvSize imgSz, CvSize boardSz + , double boardSide, CvPoint2D32f **corners, int boardsCnt) { + + int totalPoints = boardSz.width * boardSz.height; + // object points (model) + CvMat *objPts = cvCreateMat(totalPoints * boardsCnt, 3, CV_32FC1); + // found points + CvMat *imgPts = cvCreateMat(totalPoints * boardsCnt, 2, CV_32FC1); + // points count + CvMat *ptsCnt = cvCreateMat(boardsCnt, 1, CV_32SC1); + + // copy corners to matrix and fill model matrix + for(int i = 0; i < boardsCnt; i++) { + for(int j = 0; j < totalPoints; j++) { + int s = i * totalPoints; + CV_MAT_ELEM(*imgPts, float, s+j, 0) = corners[i][j].x; + CV_MAT_ELEM(*imgPts, float, s+j, 1) = corners[i][j].y; + CV_MAT_ELEM(*objPts, float, s+j, 0) = boardSide * (j / boardSz.width); + CV_MAT_ELEM(*objPts, float, s+j, 1) = boardSide * (j % boardSz.width); + CV_MAT_ELEM(*objPts, float, s+j, 2) = 0.0f; + } + CV_MAT_ELEM(*ptsCnt, int, i, 0) = totalPoints; + } + + // initial guess + CV_MAT_ELEM(*intrinsic, float, 0, 0) = 1.0f; + CV_MAT_ELEM(*intrinsic, float, 1, 1) = 1.0f; + + cvCalibrateCamera2( objPts, imgPts, ptsCnt, imgSz + , intrinsic, distortion + , NULL, NULL, 0 ); + return; +} + + +int main(int argc, char **argv) +{ + if(argc < 5) { + usage(argv[0]); + exit(1); + } + + int patx = atoi(argv[1]); + int paty = atoi(argv[2]); + CvSize boardSz = cvSize(patx, paty); + int loadImageCnt = argc - 4; + int cornersTotal = boardSz.width * boardSz.height; + float boardSide = atof(argv[3]);; + char **images = &argv[4]; + + // intrinsic matrices and ditortion params + CvMat *intrinsic = cvCreateMat(3, 3, CV_32F); + CvMat *distortion = cvCreateMat(1, 4, CV_32F); + + + IplImage *img = cvLoadImage(images[0], CV_LOAD_IMAGE_GRAYSCALE); + IplImage *imgColor = cvCreateImage(cvGetSize(img), 8, 3); + + int subpixel; + if(cvGetSize(img).width < 300) { + subpixel = 4; + } + else { + subpixel = 11; + } + + int imagesWithBoard = 0; + + CvPoint2D32f **corners = (CvPoint2D32f**)calloc(100, sizeof(CvPoint2D32f*)); + corners[0] = (CvPoint2D32f*) malloc(cornersTotal * sizeof(CvPoint2D32f)); + + + cvNamedWindow("Cam", 0); + + for(int imagesLoaded = 0; imagesLoaded < loadImageCnt; imagesLoaded++) { + img = cvLoadImage(images[imagesLoaded], CV_LOAD_IMAGE_GRAYSCALE); + + cvCvtColor(img, imgColor, CV_GRAY2BGR); + + int cornersCount; + + int found = cvFindChessboardCorners(img, boardSz, corners[imagesWithBoard], + &cornersCount, CV_CALIB_CB_ADAPTIVE_THRESH | CV_CALIB_CB_FILTER_QUADS); + if(found) cvFindCornerSubPix(img, corners[imagesWithBoard], cornersCount, cvSize(subpixel, subpixel), cvSize(-1,-1), + cvTermCriteria(CV_TERMCRIT_EPS | CV_TERMCRIT_ITER, 30, 0.1)); + + if(found && (cornersCount == cornersTotal)) { + cvDrawChessboardCorners(imgColor, boardSz, corners[imagesWithBoard], cornersCount, found); + imagesWithBoard++; + corners[imagesWithBoard] = (CvPoint2D32f*) malloc(cornersTotal * sizeof(CvPoint2D32f)); + } + cvShowImage("Cam", imgColor); + cvWaitKey(0); + + } + + cvDestroyAllWindows(); + + printf("calibrating...\n"); + fflush(stdout); + + //TODO: can be started in parallel to watch calibration on image undistortion :) + calibrate(intrinsic, distortion, cvGetSize(img), boardSz, boardSide, corners, imagesWithBoard); + + // save to xml files + cvSave("./intrinsic.xml", intrinsic); + cvSave("./distortion.xml", distortion); + printf("matrices saved to xml files.\n"); + + // let OS clean all images and matrices + return 0; +} + + +/*void usage(char *progName) { + printf( "usage:\n \ + %s [-s]\n \ + \tcamera-id is v4l id or -1 for pmd cam \ + \tpress space or 'a' to grab image\n \ + \tpress 'n' to skip grabbed frame\n \ + \tpress 'c' to finish frame grabbing start calibration\n \ + or:\n \ + %s \n", progName, progName); + fflush(stdout); +}*/ + diff --git a/src/pmd/calibrate/extrinsic.cc b/src/pmd/calibrate/extrinsic.cc new file mode 100644 index 0000000..0362b0c --- /dev/null +++ b/src/pmd/calibrate/extrinsic.cc @@ -0,0 +1,87 @@ +/* + * extrinsic implementation + * + * Copyright (C) Stanislav Serebryakov + * + * Released under the GPL version 3. + * + */ + +#include +#include +#include +#include + + +int main(int argc, char **argv) { + + if(argc < 3) { + printf("extrinic: x y img1 img2\n"); + exit(1); + } + // extrinic params: rotation and translation + CvMat *rotCam = cvCreateMat(1, 3, CV_32FC1); + CvMat *transCam = cvCreateMat(1, 3, CV_32FC1); + CvMat *rotPMD = cvCreateMat(1, 3, CV_32FC1); + CvMat *transPMD = cvCreateMat(1, 3, CV_32FC1); + + CvSize boardSz = cvSize(atoi(argv[1]), atoi(argv[2])); + int totalPoints = boardSz.width*boardSz.height; + double boardSide = 0.04; + CvMat *objPts = cvCreateMat(totalPoints, 3, CV_32FC1); + CvPoint2D32f *cornersCam = (CvPoint2D32f*)cvAlloc(totalPoints * sizeof(CvPoint2D32f)); + CvMat imgPtsCam = cvMat(totalPoints, 1, CV_32FC2, cornersCam); + CvPoint2D32f *cornersPMD = (CvPoint2D32f*)cvAlloc(totalPoints * sizeof(CvPoint2D32f)); + CvMat imgPtsPMD = cvMat(totalPoints, 1, CV_32FC2, cornersPMD); + + for(int i = 0; i < totalPoints; i++) { + CV_MAT_ELEM(*objPts, float, i, 0) = boardSide * (i / boardSz.width); + CV_MAT_ELEM(*objPts, float, i, 1) = boardSide * (i % boardSz.width); + CV_MAT_ELEM(*objPts, float, i, 2) = 0.0f; + } + + IplImage *imgPMD = cvLoadImage(argv[3], CV_LOAD_IMAGE_GRAYSCALE); + IplImage *imgPMDU = cvCreateImage(cvGetSize(imgPMD), 8, 1); + IplImage *imgCam = cvLoadImage(argv[4], CV_LOAD_IMAGE_GRAYSCALE); + IplImage *imgCamU = cvCreateImage(cvGetSize(imgCam), 8, 1); + + CvMat *intrinsicsCam = (CvMat*)cvLoad("../intrinsic-cam-6x4.xml"); + CvMat *intrinsicsPMD = (CvMat*)cvLoad("../intrinsic-pmd-6x4.xml"); + CvMat *distortionCam = (CvMat*)cvLoad("../distortion-cam-6x4.xml"); + CvMat *distortionPMD = (CvMat*)cvLoad("../distortion-pmd-6x4.xml"); + + cvUndistort2(imgPMD, imgPMDU, intrinsicsPMD, distortionPMD); + cvUndistort2(imgCam, imgCamU, intrinsicsCam, distortionCam); + + int cornersCountCam, cornersCountPMD; + int foundPMD = cvFindChessboardCorners(imgPMDU, boardSz, cornersPMD, + &cornersCountPMD, CV_CALIB_CB_ADAPTIVE_THRESH | CV_CALIB_CB_FILTER_QUADS); + if(foundPMD) { + cvFindCornerSubPix(imgPMDU, cornersPMD, cornersCountPMD, cvSize(2, 2), cvSize(-1,-1), + cvTermCriteria(CV_TERMCRIT_EPS | CV_TERMCRIT_ITER, 30, 0.1)); + printf("foundPMD\n"); + } + int foundCam = cvFindChessboardCorners(imgCamU, boardSz, cornersCam, + &cornersCountCam, CV_CALIB_CB_ADAPTIVE_THRESH | CV_CALIB_CB_FILTER_QUADS); + if(foundPMD) { + cvFindCornerSubPix(imgCamU, cornersCam, cornersCountCam, cvSize(11, 11), cvSize(-1,-1), + cvTermCriteria(CV_TERMCRIT_EPS | CV_TERMCRIT_ITER, 30, 0.1)); + printf("foundCam\n"); + } + + cvNamedWindow("c", 0); + cvNamedWindow("p", 0); + + cvShowImage("c", imgCamU); + cvShowImage("p", imgPMDU); + cvWaitKey(0); + + + if(foundCam) cvFindExtrinsicCameraParams2(objPts, &imgPtsCam, intrinsicsCam, distortionCam, rotCam, transCam); + if(foundPMD) cvFindExtrinsicCameraParams2(objPts, &imgPtsPMD, intrinsicsPMD, distortionPMD, rotPMD, transPMD); + + cvSave("./rotcam.xml", rotCam); + cvSave("./rotpmd.xml", rotPMD); + cvSave("./transcam.xml", transCam); + cvSave("./transpmd.xml", transPMD); +} diff --git a/src/pmd/calibrate/grabFramesCam.cc b/src/pmd/calibrate/grabFramesCam.cc new file mode 100644 index 0000000..80870e9 --- /dev/null +++ b/src/pmd/calibrate/grabFramesCam.cc @@ -0,0 +1,95 @@ +/* + * grabFramesCam implementation + * + * Copyright (C) Stanislav Serebryakov + * + * Released under the GPL version 3. + * + */ + +#include +#include + +#include +#include +//TODO: flip image flag + +void usage(char *progName) { + printf("%s \n", progName); + printf("i.e.: %s 6 4 0\n", progName); + printf("press space to detect chessboard and (again) to proceed.\n"); +} + +int main(int argc, char **argv) +{ + /* TODO: + * flags: + * subpixel + * camera id + * flip x and y + * pmd mode? + */ + + if(argc < 4) { + usage(argv[0]); + exit(1); + } + CvCapture *capture = cvCaptureFromCAM(atoi(argv[3])); + + IplImage *imgColor = cvQueryFrame(capture); + IplImage *img = cvCreateImage(cvGetSize(imgColor), 8, 1); + + int patx = atoi(argv[1]); + int paty = atoi(argv[2]); + CvSize patternSize = cvSize(patx, paty); + + int cornersTotal = patternSize.width * patternSize.height; + + CvPoint2D32f *corners = (CvPoint2D32f*) malloc(cornersTotal * sizeof(CvPoint2D32f)); + + cvNamedWindow("Camera", 0); + + int imageCnt = 0; + bool grabFrame = false; + + while(1) { + imgColor = cvQueryFrame(capture); + + cvFlip(imgColor, 0, -1); // flips image around the x and y axes + + cvCvtColor(imgColor, img, CV_BGR2GRAY); + + if(grabFrame) { + /* ----- Chessboard detection ----- + -------------------------------- */ + int cornersCount; // should be the same for wcam and pmd and equal totalCorners + + int found = cvFindChessboardCorners(img, patternSize, corners, + &cornersCount, CV_CALIB_CB_ADAPTIVE_THRESH | CV_CALIB_CB_FILTER_QUADS); + cvFindCornerSubPix(img, corners, cornersCount, cvSize(11,11), cvSize(-1,-1), + cvTermCriteria(CV_TERMCRIT_EPS | CV_TERMCRIT_ITER, 30, 0.1)); + + if(found && (cornersCount == cornersTotal)) { + cvDrawChessboardCorners(imgColor, patternSize, corners, cornersCount, found); + cvShowImage("Camera", imgColor); + printf("grab?\n"); + int k = cvWaitKey(0); + if(k == (int)' ') { + imageCnt++; + char *filename = (char*) malloc(11 * sizeof(char)); + sprintf(filename, "image%02i.jpg", imageCnt); + printf("saved %s.\n", filename); + cvSaveImage(filename, img); + grabFrame = false; + continue; + } + } + } + + cvShowImage("Camera", imgColor); + if((int)' ' == cvWaitKey(5)) grabFrame = true; + } + + return 0; +} + diff --git a/src/pmd/calibrate/grabFramesPMD.cc b/src/pmd/calibrate/grabFramesPMD.cc new file mode 100644 index 0000000..a074f2c --- /dev/null +++ b/src/pmd/calibrate/grabFramesPMD.cc @@ -0,0 +1,106 @@ +/* + * grabFramesPMD implementation + * + * Copyright (C) Stanislav Serebryakov + * + * Released under the GPL version 3. + * + */ + +#include +#include + +#include +#include + +#include "pmdsdk2.h" +#include "cvpmd.h" + + +/* TODO: +* flags: +* subpixel +* camera id +* flip x and y +* pmd mode? +*/ + +void usage(char *progName) { + printf("%s \n", progName); + printf("i.e.: %s 6 4 0\n", progName); + printf("press space to detect chessboard and (again) to proceed.\n"); +} + +int main(int argc, char **argv) { + + if(argc < 4) { + usage(argv[0]); + exit(1); + } + + + PMD *pmd = initPMD("../o3d.L32.pcp", "192.168.0.69"); + IplImage *img = cvCreateImage(pmdGetSize(pmd), 8, 1); + pmdUpdate(pmd->hnd); + pmdQueryImage(pmd, img); + + IplImage *imgColor = cvCreateImage(cvGetSize(img), 8, 3); + + int patx = atoi(argv[1]); + int paty = atoi(argv[2]); + CvSize patternSize = cvSize(patx, paty); + + int cornersTotal = patternSize.width * patternSize.height; + + CvPoint2D32f *corners = (CvPoint2D32f*) malloc(cornersTotal * sizeof(CvPoint2D32f)); + + cvNamedWindow("Camera", 0); + + int imageCnt = 0; + bool grabFrame = false; + char *filename = (char*) malloc(11 * sizeof(char)); + + + while(1) { + pmdUpdate(pmd->hnd); + pmdQueryImage(pmd, img); + + cvFlip(img, 0, 1); // flips image around the x-axes + + + + + if(grabFrame) { + /* ----- Chessboard detection ----- + -------------------------------- */ + int cornersCount; // should be the same for wcam and pmd and equal totalCorners + + int found = cvFindChessboardCorners(img, patternSize, corners, + &cornersCount, CV_CALIB_CB_ADAPTIVE_THRESH | CV_CALIB_CB_FILTER_QUADS); + cvFindCornerSubPix(img, corners, cornersCount, cvSize(4,4), cvSize(-1,-1), + cvTermCriteria(CV_TERMCRIT_EPS | CV_TERMCRIT_ITER, 30, 0.1)); + + if(found && (cornersCount == cornersTotal)) { + cvCvtColor(img, imgColor, CV_GRAY2BGR); + cvDrawChessboardCorners(imgColor, patternSize, corners, cornersCount, found); + cvShowImage("Camera", imgColor); + printf("grab?\n"); + int k = cvWaitKey(0); + if(k == (int)' ') { + imageCnt++; + sprintf(filename, "image%02i.jpg", imageCnt); //TODO:try png + printf("saved %s.\n", filename); + cvSaveImage(filename, img); + grabFrame = false; + continue; + } + } + } + + cvShowImage("Camera", img); + if((int)' ' == cvWaitKey(5)) grabFrame = true; + } + + return 0; +} + diff --git a/src/pmd/cvpmd.cc b/src/pmd/cvpmd.cc new file mode 100644 index 0000000..67b4cf8 --- /dev/null +++ b/src/pmd/cvpmd.cc @@ -0,0 +1,194 @@ +/* + * PMD implementation + * + * Copyright (C) Stanislav Serebryakov + * + * Released under the GPL version 3. + * + */ + +#include /* IplImage, cvCreateImage */ + +#include "pmdsdk2.h" + +#include +#include + +#include "cvpmd.h" +#include + +/** TODO + * inten max amplitude + * error handling + */ + +PMD *initPMD(const char* plugin, const char *ip) { + PMD *io = (PMD*)malloc(sizeof(PMD)); + + if(0 != pmdOpen (&io->hnd, plugin, ip, plugin, "")) { + fprintf(stderr, "ERROR: could not connect!\n"); + exit(1); + } + + //pmdUpdate(io->hnd); + //pmdGetSourceDataDescription(io->hnd, &io->dd); + io->dd.std.numColumns = 64; + io->dd.std.numRows = 50; //FIXME! + + io->data = (float*)malloc(io->dd.std.numColumns * io->dd.std.numRows * sizeof(float)); + + return io; +} + +float *pmdDataPtr(PMD *p) { + return p->data; +} + +void releasePMD(PMD **pmd) { + pmdClose((*pmd)->hnd); + free((*pmd)->data); + free(*pmd); + *pmd = 0; +} + + +static float max(const PMD *p) { + float max = 0.0f; + for(unsigned int k = 0; k < p->dd.std.numRows*p->dd.std.numColumns; k++) { + if(p->data[k] > max) max = p->data[k]; + } + //printf("max = %f\n", max); + return max; +} + +//static inline void setPix(const IplImage *m, const int c, const int r, const char v) { m->imageData[r*m->width + c] = v; } + + +CvSize pmdGetSize(const PMD *p) { + return cvSize(p->dd.std.numColumns, p->dd.std.numRows); +} + + +IplImage *toIplImage(const PMD *p, IplImage *img = 0) { + int cols = p->dd.std.numColumns; + int rows = p->dd.std.numRows; + + IplImage *imgp; + if(!img) imgp = cvCreateImage(pmdGetSize(p), 8, 1); + else imgp = img; + + //FIXME: scaled! + float m = max(p); + for(int r = 0; r < rows; r++) { + for(int c = 0; c < cols; c++) { + //FIXME: mess with the rows and colums + CV_IMAGE_ELEM(imgp, uint8_t, r, c) = (uint8_t) 255.0f * p->data[r*cols + c] / m; + } + } + + return imgp; +} + +/*CvPoint3D32f unionVec(const CvPoint uv, const CvMat *intrinsic) { + //TODO: not defined yet + // with this function pmdProjectToCartesian would look like: + // pmdProjectToCartesian pt depth mat = depth * unionVec pt mat + + return cvPoint3D32f(0,0,0); +}*/ + + +static inline CvPoint3D32f pmdProjectToCartesian(const CvMat *intrinsicMatrix, const CvPoint2D32f uv, const float dist) { + /* Lukas Dierks and Jan Wuelfing's projectToCartesian */ + float fx = cvmGet(intrinsicMatrix, 0, 0); + float cx = cvmGet(intrinsicMatrix, 0, 2); + float fy = cvmGet(intrinsicMatrix, 1, 1); + float cy = cvmGet(intrinsicMatrix, 1, 2); + + float u = uv.x; + float v = uv.y; + float r = dist; + float u2 = u*u; + float v2 = v*v; + + float cx2 = cx*cx; + float cy2 = cy*cy; + float fx2 = fx*fx; + float fy2 = fy*fy; + + // Reverse Projection + float squareroot = sqrt( + cy2 * fx2 + + cx2 * fy2 + + fx2 * fy2 - + 2 * cx * fy2 * u + + fy2 * u2 - + 2 * cy * fx2 * v + + fx2 * v2 + ); + + return cvPoint3D32f((fy * r * (cx - u)) / squareroot, + (fx * r * (cy - v)) / squareroot, + (fx * fy * r) / squareroot); +} + +CvPoint3D32f *cvProjectArrayToCartesian( const CvMat *intrinsicMatrix + , const CvPoint2D32f *pts, const int ptsCnt + , CvPoint3D32f *unitVs) { + + for(int i = 0; i < ptsCnt; i++) + unitVs[i] = pmdProjectToCartesian(intrinsicMatrix, pts[i], 1.0); + return unitVs; +} + + +CvPoint3D32f **pmdProjectArrayToCartesian(const PMD *p, const CvMat *intrinsicMatrix, CvPoint3D32f **pts) { + for(unsigned int i = 0; i < p->dd.std.numRows; i++) + for(unsigned int j = 0; j < p->dd.std.numColumns; j++) + pts[i][j] = pmdProjectToCartesian(intrinsicMatrix, cvPoint2D32f(i,j), p->data[j*p->dd.std.numColumns + i]); + return pts; +} + + + +IplImage *pmdQueryImage(PMD *p, IplImage *img = 0) { + pmdGetIntensities(p->hnd, p->data, p->dd.std.numColumns * p->dd.std.numRows * sizeof(float)); + return toIplImage(p, img); +} + +IplImage *pmdQueryImageAsync(PMD *p, IplImage *img = 0) { + pmdGetIntensitiesAsync(p->hnd, p->data, p->dd.std.numColumns * p->dd.std.numRows * sizeof(float)); + return toIplImage(p, img); +} + + +void pmdRetriveDistances(PMD *p) { + pmdGetDistances(p->hnd, p->data, p->dd.std.numColumns * p->dd.std.numRows * sizeof(float)); + return; +} +void pmdRetriveDistancesAsync(PMD *p) { + pmdGetDistancesAsync(p->hnd, p->data, p->dd.std.numColumns * p->dd.std.numRows * sizeof(float)); + return; +} + +IplImage *pmdQueryDistances(PMD *p, IplImage *img = 0) { + pmdGetDistances(p->hnd, p->data, p->dd.std.numColumns * p->dd.std.numRows * sizeof(float)); + return toIplImage(p, img); + +} + +IplImage *pmdQueryDistancesAsync(PMD *p, IplImage *img = 0) { + pmdGetDistancesAsync(p->hnd, p->data, p->dd.std.numColumns * p->dd.std.numRows * sizeof(float)); + return toIplImage(p, img); + +} + +IplImage *pmdQueryAmplitudes(PMD *p, IplImage *img = 0) { + pmdGetAmplitudesAsync(p->hnd, p->data, p->dd.std.numColumns * p->dd.std.numRows * sizeof(float)); + return toIplImage(p, img); +} + +IplImage *pmdQueryAmplitudesAsync(PMD *p, IplImage *img = 0) { + pmdGetAmplitudes(p->hnd, p->data, p->dd.std.numColumns * p->dd.std.numRows * sizeof(float)); + return toIplImage(p, img); +} diff --git a/src/pmd/distortion-cam-6x4.xml b/src/pmd/distortion-cam-6x4.xml new file mode 100644 index 0000000..3eb789e --- /dev/null +++ b/src/pmd/distortion-cam-6x4.xml @@ -0,0 +1,9 @@ + + + + 1 + 4 +

f
+ + -0.46651933 0.30511221 2.36130873e-04 -2.86668586e-03 + diff --git a/src/pmd/distortion-pmd-6x4.xml b/src/pmd/distortion-pmd-6x4.xml new file mode 100644 index 0000000..0b7e35a --- /dev/null +++ b/src/pmd/distortion-pmd-6x4.xml @@ -0,0 +1,9 @@ + + + + 1 + 4 +
f
+ + -0.43944934 1.01121974 4.40021278e-03 -7.87253448e-05
+
diff --git a/src/pmd/essential-rot.xml b/src/pmd/essential-rot.xml new file mode 100644 index 0000000..df11393 --- /dev/null +++ b/src/pmd/essential-rot.xml @@ -0,0 +1,9 @@ + + + + 3 + 1 +
f
+ + -4.37390661 -4.42766333 0.35243243
+
diff --git a/src/pmd/essential-trn.xml b/src/pmd/essential-trn.xml new file mode 100644 index 0000000..11c0b4a --- /dev/null +++ b/src/pmd/essential-trn.xml @@ -0,0 +1,9 @@ + + + + 3 + 1 +
f
+ + 7.70650012e-03 -0.04776910 0.007350650
+
diff --git a/src/pmd/intrinsic-cam-6x4.xml b/src/pmd/intrinsic-cam-6x4.xml new file mode 100644 index 0000000..11c1829 --- /dev/null +++ b/src/pmd/intrinsic-cam-6x4.xml @@ -0,0 +1,9 @@ + + + + 3 + 3 +
f
+ + 648.61639404 0. 338.14016724 0. 648.50537109 236.03382874 0. 0. 1.
+
diff --git a/src/pmd/intrinsic-pmd-6x4.xml b/src/pmd/intrinsic-pmd-6x4.xml new file mode 100644 index 0000000..199ddce --- /dev/null +++ b/src/pmd/intrinsic-pmd-6x4.xml @@ -0,0 +1,9 @@ + + + + 3 + 3 +
f
+ + 83.88370514 0. 31.98480415 0. 84.15943909 29.34420967 0. 0. 1.
+
diff --git a/src/pmd/o3d.L32.pcp b/src/pmd/o3d.L32.pcp new file mode 100755 index 0000000..113ba0e Binary files /dev/null and b/src/pmd/o3d.L32.pcp differ diff --git a/src/pmd/offline/convertToSLAM6D.cc b/src/pmd/offline/convertToSLAM6D.cc new file mode 100644 index 0000000..32b6141 --- /dev/null +++ b/src/pmd/offline/convertToSLAM6D.cc @@ -0,0 +1,59 @@ +/* + * converToSLAM6D implementation + * + * Copyright (C) Stanislav Serebryakov + * + * Released under the GPL version 3. + * + */ + +#include + +int main() { + PMDCam *pmdc = initPMDCam("./pmdc.conf"); + + int frames = 0; + unsigned int latestTime = 0; + + while(1) { + + if(grabData(pmdc)) break; + + if(latestTime >= pmdc->timestamp) continue; + latestTime = pmdc->timestamp; + //printf("%i %i\n", latestTime, pmdc->timestamp); + + CvSize pmdSz = cvGetSize(pmdc->iPMDI); + pmdSz.width = 50; + + char filename[] = "./dat/scan000.pose"; + sprintf(filename, "./dat/scan%03d.3d", frames); + FILE *scan = fopen(filename, "wb"); + if(!scan) fprintf(stderr, "ERROR: cant create file %s.\n", filename); + sprintf(filename, "./dat/scan%03d.pose", frames); + FILE *pose = fopen(filename, "wb"); + if(!pose) fprintf(stderr, "ERROR: cant create file %s.\n", filename); + + + + fprintf(scan, "%i x %i\n", pmdSz.width, pmdSz.height); + + for(int j = 0; j < pmdSz.width; j++) + for(int i = 0; i < pmdSz.height; i++) + fprintf(scan, "%f %f %f\n", pmdc->pts[i][j].x*100.0, pmdc->pts[i][j].y*100.0, pmdc->pts[i][j].z*100.0); + + fprintf(pose, "%f %f %f\n%f %f %f\n", 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); + + if(0 == frames%100) printf("+100\n"); + + fflush(scan); + fflush(pose); + fclose(scan); + fclose(pose); + + frames++; + } + return 0; +} + + diff --git a/src/pmd/offline/grabVideoAnd3D.cc b/src/pmd/offline/grabVideoAnd3D.cc new file mode 100644 index 0000000..e61b742 --- /dev/null +++ b/src/pmd/offline/grabVideoAnd3D.cc @@ -0,0 +1,122 @@ +/* + * grabVideoAnd3D implementation + * + * Copyright (C) Stanislav Serebryakov + * + * Released under the GPL version 3. + * + */ + +#include +#include + +#include +#include + +#include "pmdsdk2.h" +#include "cvpmd.h" + +int main(int argc, char **argv) +{ + int totalFrames = 0; + int ui = 1; + printf("%i\n", argc); + if(argc > 1) { + totalFrames = atoi(argv[1]); + ui = 0; + } + if(argc > 2) ui = 1; + + //FIXME: here is lots of old code, should be removed + + + PMD *pmd = initPMD("../o3d.L32.pcp", "192.168.0.69"); + + CvCapture *capture = cvCaptureFromCAM(1); //FIXME: should be passed via argc + + CvSize pmdSz = pmdGetSize(pmd); + printf("pmd sz: %i x %i\n", pmdSz.width, pmdSz.height); + IplImage *imgCamColor = cvQueryFrame(capture); + IplImage *imgPMD = cvCreateImage(pmdGetSize(pmd), 8, 1); + IplImage *imgPMDA = cvCreateImage(cvGetSize(imgPMD), 8, 1); + IplImage *imgCam = cvCreateImage(cvGetSize(imgCamColor), 8, 1); + CvPoint3D32f **pmdPts = (CvPoint3D32f**) cvAlloc(pmdSz.height * sizeof(CvPoint3D32f*)); + for(int i = 0; i < pmdSz.height; i++) pmdPts[i] = (CvPoint3D32f*) cvAlloc(pmdSz.width * sizeof(CvPoint3D32f)); + + CvMat *intrinsicCam = (CvMat*)cvLoad("../intrinsic-cam-6x4.xml"); + CvMat *distortionCam = (CvMat*)cvLoad("../distortion-cam-6x4.xml"); + CvMat *intrinsicPMD = (CvMat*)cvLoad("../intrinsic-pmd-6x4.xml"); + CvMat *distortionPMD = (CvMat*)cvLoad("../distortion-pmd-6x4.xml"); + if(!intrinsicCam || !distortionCam|| !intrinsicPMD || !distortionPMD) { + fprintf(stderr, "ERROR: can't load intrinsic and/or distortion xml files!\n"); + return 1; + } + + +// FILE *vPMDA = fopen("./s001.arv", "wb"); // ala dot Amplitudes Raw Video NOTE: i'm not sure it is amplitude :P +// FILE *vPMDAf = fopen("./s001.farv", "wb"); // same but Floating + FILE *vPMDI = fopen("./s001.irv", "wb"); // same but Intensities + FILE *vPMDIf = fopen("./s001.firv", "wb"); + FILE *headers = fopen("./s001.head", "wb"); + CvVideoWriter *vCam = cvCreateVideoWriter( "./s001.avi" + , CV_FOURCC('D', 'I', 'V', 'X') + , 25, cvGetSize(imgCam), 1); + + FILE *pmdPtsFile = fopen("./s001.3dp", "w"); + + if(ui) { + cvNamedWindow("Cam", 0); + cvNamedWindow("PMD", 1); + } + + printf("DEBUG: init done, going to grab %i frames.\n", totalFrames); + + int frames = 0; + while(1) { + frames++; + if(0 == frames % 100) printf("%i frames grabbed...\n", frames); + // Image retriving + pmdUpdate(pmd->hnd); + imgCamColor = cvQueryFrame(capture); + + pmdQueryImageAsync(pmd, imgPMD); + fwrite(pmdDataPtr(pmd), sizeof(float), pmdSz.width*pmdSz.height, vPMDIf); + + //pmdQueryAmplitudesAsync(pmd, imgPMDA); + //fwrite(pmdDataPtr(pmd), sizeof(float), pmdSz.width*pmdSz.height, vPMDAf); + + + pmdRetriveDistancesAsync(pmd); + pmdProjectArrayToCartesian(pmd, intrinsicPMD, pmdPts); + + ImageHeaderInformation *header = retriveHeader(); + + + if(ui) { + cvShowImage("Cam", imgCamColor); + cvShowImage("PMD", imgPMD); + } + + //FIXME: order col/str + for(int i = 0; i < pmdSz.height; i++) + fwrite(pmdPts[i], sizeof(CvPoint3D32f), pmdSz.width, pmdPtsFile); + + fwrite(imgPMD->imageData, sizeof(char), pmdSz.width*pmdSz.height, vPMDI); + //fwrite(imgPMDA->imageData, sizeof(char), pmdSz.width*pmdSz.height, vPMDA); + fwrite(header, sizeof(ImageHeaderInformation), 1, headers); + + cvWriteFrame(vCam, imgCamColor); + + if(totalFrames && (frames >= totalFrames)) break; + if(ui) if(27 == cvWaitKey(5)) break; + } +// fclose(vPMDA); +// fclose(vPMDAf); + fclose(vPMDI); + fclose(vPMDIf); + fclose(pmdPtsFile); + fclose(headers); + printf("grabbed %i frames.\n", frames); + printf("See s001* files (you want to rename them).\n"); +} + diff --git a/src/pmd/offline/pmdc.conf b/src/pmd/offline/pmdc.conf new file mode 120000 index 0000000..37e464d --- /dev/null +++ b/src/pmd/offline/pmdc.conf @@ -0,0 +1 @@ +../pmdc.conf \ No newline at end of file diff --git a/src/pmd/offline/rename b/src/pmd/offline/rename new file mode 100755 index 0000000..6e8f600 --- /dev/null +++ b/src/pmd/offline/rename @@ -0,0 +1,12 @@ +#! /bin/bash +if [ $1 = "" ]; then + echo "no new name given!" + exit +fi +mv s001.avi $1.avi +#mv s001.arv $1.arv +#mv s001.farv $1.farv +mv s001.irv $1.irv +mv s001.firv $1.firv +mv s001.3dp $1.3dp +mv s001.head $1.head diff --git a/src/pmd/pmdWrap.cc b/src/pmd/pmdWrap.cc new file mode 100644 index 0000000..c559f08 --- /dev/null +++ b/src/pmd/pmdWrap.cc @@ -0,0 +1,290 @@ +/* + * PMDCam implementation + * + * Copyright (C) Stanislav Serebryakov + * + * Released under the GPL version 3. + * + */ + +#include +#include + +#include +#include + +#include + +#include "cvpmd.h" +#include "pmdWrap.h" + +#include "slam6d/icp6Dhelix.h" +#include "slam6d/icp6Dortho.h" +#include "slam6d/icp6Dquat.h" +#include "slam6d/icp6Dsvd.h" +#include "slam6d/icp6Dapx.h" + + +//TODO: releasePMDCam() + +//TODO: !!! check config parse error !!! TODO + +PMDCam *initPMDCam(const char *confPath) { + PMDCam *pmdc = (PMDCam*)malloc(sizeof(PMDCam)); + config_t *conf = (config_t*)malloc(sizeof(config_t)); + config_init(conf); + config_read_file(conf, confPath); + + config_lookup_bool(conf, "offline", &pmdc->_offlineMode); + if(!pmdc->_offlineMode) { + // init PMDCam + const char *ip; + const char *plugin; + config_lookup_string(conf, "ip", &ip); + config_lookup_string(conf, "plugin", &plugin); + printf("Starting PMD...\n"); + pmdc->_pmd = initPMD(plugin, ip); + //FIXME: pmdc initialization assert + + int camID; +#if (((LIBCONFIG_VER_MAJOR == 1) && (LIBCONFIG_VER_MINOR >= 4)) \ + || (LIBCONFIG_VER_MAJOR > 1)) + config_lookup_int(conf, "cameraID", &camID); +#else //libconfig API changed in version 1.4b + config_lookup_int(conf, "cameraID", (long *)&camID); +#endif + pmdc->_capture = cvCaptureFromCAM(camID); + if(!pmdc->_capture) fprintf(stderr, "ERROR: Can't initialize capture, see camera id in pmdc.conf.\n"); + } else { + printf("Offline mode.\n"); + const char *camVid; + const char *pmdI; + const char *pmdA; + const char *pmd3D; + const char *headers; + config_lookup_string(conf, "camVideoFile", &camVid); + config_lookup_string(conf, "pmdIFile", &pmdI); + // config_lookup_string(conf, "pmdAFile", &pmdA); + config_lookup_string(conf, "pmd3DFile", &pmd3D); + config_lookup_string(conf, "headersFile", &headers); + //FIXME: check empty strings + printf( "DEBUG: Reading from files: %s, %s, %s.\n" + , camVid, pmdI, pmd3D); + pmdc->_capture = cvCaptureFromFile(camVid); + pmdc->_f.i = fopen(pmdI, "r"); + // pmdc->_f.a = fopen(pmdA, "r"); + pmdc->_f.p = fopen(pmd3D, "r"); + pmdc->_f.h = fopen(headers, "r"); + if( !pmdc->_capture + || !pmdc->_f.i + // || !pmdc->_f.a + || !pmdc->_f.p + || !pmdc->_f.h) fprintf(stderr, "ERROR: Can't open data file, see files settings in pmdc.conf.\n"); + pmdc->header = (ImageHeaderInformation*)cvAlloc(sizeof(ImageHeaderInformation)); + + //TODO: read pmd header somewhere + } + CvSize pmdSz; +#if (((LIBCONFIG_VER_MAJOR == 1) && (LIBCONFIG_VER_MINOR >= 4)) \ + || (LIBCONFIG_VER_MAJOR > 1)) + config_lookup_int(conf, "pmdSize.width", &pmdSz.width); + config_lookup_int(conf, "pmdSize.height", &pmdSz.height); +#else //libconfig API changed in version 1.4b + config_lookup_int(conf, "pmdSize.width", (long *)&pmdSz.width); + config_lookup_int(conf, "pmdSize.height", (long *)&pmdSz.height); +#endif + printf("DEBUG: pmdSz: %i %i\n", pmdSz.width, pmdSz.height); + pmdc->_iPMDIU = cvCreateImage(pmdSz, IPL_DEPTH_8U, 1); + pmdc->iPMDI = cvCreateImage(pmdSz, IPL_DEPTH_8U, 1); + pmdc->_iPMDAU = cvCreateImage(pmdSz, IPL_DEPTH_8U, 1); + pmdc->iPMDA = cvCreateImage(pmdSz, IPL_DEPTH_8U, 1); + + pmdc->_iCamColorU = cvQueryFrame(pmdc->_capture); + CvSize camSz = cvGetSize(pmdc->_iCamColorU); + printf("DEBUG: camSz: %i %i\n", camSz.width, camSz.height); + + + config_lookup_bool(conf, "hybrid", &pmdc->hybrid); + if(pmdc->hybrid) pmdc->_iCamColorUBuffer = cvCreateImage(camSz, IPL_DEPTH_8U, 3); + + pmdc->iCamColor = cvCreateImage(camSz, IPL_DEPTH_8U, 3); + pmdc->iCam = cvCreateImage(camSz, IPL_DEPTH_8U, 1); + + pmdc->_mapXPMD = cvCreateImage(pmdSz, IPL_DEPTH_32F, 1); + pmdc->_mapYPMD = cvCreateImage(pmdSz, IPL_DEPTH_32F, 1); + pmdc->_mapXCam = cvCreateImage(camSz, IPL_DEPTH_32F, 1); + pmdc->_mapYCam = cvCreateImage(camSz, IPL_DEPTH_32F, 1); + printf("DEBUG: Created images...\n"); + + const char *inc; + const char *dsc; + const char *inp; + const char *dsp; + config_lookup_string(conf, "intrinsicCam", &inc); + config_lookup_string(conf, "distortionCam", &dsc); + config_lookup_string(conf, "intrinsicPMD", &inp); + config_lookup_string(conf, "distortionPMD", &dsp); + pmdc->intrinsicCam = (CvMat*)cvLoad(inc); + pmdc->distortionCam = (CvMat*)cvLoad(dsc); + pmdc->intrinsicPMD = (CvMat*)cvLoad(inp); + pmdc->distortionPMD = (CvMat*)cvLoad(dsp); + if(!pmdc->intrinsicCam || !pmdc->distortionCam || !pmdc->intrinsicPMD || !pmdc->distortionPMD) + fprintf(stderr, "ERROR: Cant load matrix file, see pmdc.conf matrix files settings.\n"); + + //TODO: essential mat + + cvInitUndistortMap(pmdc->intrinsicCam, pmdc->distortionCam, pmdc->_mapXCam, pmdc->_mapYCam); + cvInitUndistortMap(pmdc->intrinsicPMD, pmdc->distortionPMD, pmdc->_mapXPMD, pmdc->_mapYPMD); + printf("DEBUG: initialized undistortion maps...\n"); + + CvPoint3D32f **pmdPts = (CvPoint3D32f**) cvAlloc(pmdSz.height * sizeof(CvPoint3D32f*)); + for(int i = 0; i < pmdSz.height; i++) pmdPts[i] = (CvPoint3D32f*) cvAlloc(pmdSz.width * sizeof(CvPoint3D32f)); + pmdc->pts = pmdPts; + + + config_lookup_float(conf, "tracking.quality", &pmdc->_track.quality); +#if (((LIBCONFIG_VER_MAJOR == 1) && (LIBCONFIG_VER_MINOR >= 4)) \ + || (LIBCONFIG_VER_MAJOR > 1)) + config_lookup_int(conf, "tracking.min", &pmdc->_track.minFeatures); + config_lookup_int(conf, "tracking.max", &pmdc->_track.maxFeatures); + config_lookup_int(conf, "tracking.minDist", &pmdc->_track.minDist); + config_lookup_int(conf, "tracking.winSize", &pmdc->_track.winSz); + config_lookup_int(conf, "historyLen", &pmdc->historyLen); +#else //libconfig API changed in version 1.4b + config_lookup_int(conf, "tracking.min", (long *)&pmdc->_track.minFeatures); + config_lookup_int(conf, "tracking.max", (long *)&pmdc->_track.maxFeatures); + config_lookup_int(conf, "tracking.minDist", (long *)&pmdc->_track.minDist); + config_lookup_int(conf, "tracking.winSize", (long *)&pmdc->_track.winSz); + config_lookup_int(conf, "historyLen", (long *)&pmdc->historyLen); +#endif + pmdc->_track.trackingFlags = 0; //FIXME, if you init pyrs here + +#if (((LIBCONFIG_VER_MAJOR == 1) && (LIBCONFIG_VER_MINOR >= 4)) \ + || (LIBCONFIG_VER_MAJOR > 1)) + config_lookup_int(conf, "minPts", &pmdc->minPts4Pose); +#else //libconfig API changed in version 1.4b + config_lookup_int(conf, "minPts", (long *)&pmdc->minPts4Pose); +#endif + config_lookup_float(conf, "maxError", &pmdc->maxError); + + config_lookup_float(conf, "outliersRemoval.sigmaDepth", &pmdc->sigmaDepth); + config_lookup_float(conf, "outliersRemoval.sigmaColor", &pmdc->sigmaColor); + config_lookup_float(conf, "outliersRemoval.threshold", &pmdc->dpThreshold); + + config_lookup_bool(conf, "savePoses", &pmdc->savePoses); + config_lookup_bool(conf, "synchronous", &pmdc->synchronous); + + int icpVerbose; + config_lookup_bool(conf, "icp.verbose", &icpVerbose); + bool icpQuiet = !icpVerbose; + const char *icpMethod; + config_lookup_string(conf, "icp.method", &icpMethod); + printf("%s\n", icpMethod); + if(!strcmp(icpMethod, "helix")) pmdc->icp = new icp6D_HELIX(icpQuiet); + else if(!strcmp(icpMethod, "svd")) pmdc->icp = new icp6D_SVD(icpQuiet); + else if(!strcmp(icpMethod, "apx")) pmdc->icp = new icp6D_APX(icpQuiet); + else if(!strcmp(icpMethod, "quat")) pmdc->icp = new icp6D_QUAT(icpQuiet); + else if(!strcmp(icpMethod, "ortho")) pmdc->icp = new icp6D_ORTHO(icpQuiet); + else { + fprintf(stderr, "ERROR: Uknown ICP method: %s!\n", icpMethod); + exit(1); + } + + //TODO: init tracking? + //TODO: alloc pts + + config_destroy(conf); + return pmdc; +} + + +int grabData(PMDCam *pmdc) { + static unsigned int latestTimestamp = 0; + static unsigned int latestTimestampUsec = 0; + while(1) { // grab data until the new have come + if(!pmdc->_offlineMode) { + pmdUpdate(pmdc->_pmd->hnd); + + pmdc->_iCamColorUBuffer = cvQueryFrame(pmdc->_capture); + + if(pmdc->synchronous) { + pmdRetriveDistances(pmdc->_pmd); + pmdProjectArrayToCartesian(pmdc->_pmd, pmdc->intrinsicPMD, pmdc->pts); + // project array has to be called right after retrive distances + pmdQueryImageAsync(pmdc->_pmd, pmdc->_iPMDIU); + + } else { + pmdRetriveDistancesAsync(pmdc->_pmd); + pmdProjectArrayToCartesian(pmdc->_pmd, pmdc->intrinsicPMD, pmdc->pts); + // project array has to be called right after retrive distances + pmdQueryImageAsync(pmdc->_pmd, pmdc->_iPMDIU); +/* printf("time: %f, utime: %f, valid: %f\n" + , pmdc->header->Seconds + , pmdc->header->Useconds + , pmdc->header->ValidImage + );*/ + + } + + pmdc->header = retriveHeader(); + pmdc->timestamp = (unsigned int)pmdc->header->Seconds; + pmdc->timestampUsec = (unsigned int)pmdc->header->Useconds; + + if(pmdc->hybrid) { + if( pmdc->timestamp > latestTimestamp + || pmdc->timestampUsec > latestTimestampUsec) { + latestTimestamp = pmdc->timestamp; + latestTimestampUsec = pmdc->timestampUsec; + cvCopy(pmdc->_iCamColorUBuffer, pmdc->_iCamColorU); + break; + } else continue; + } else { + pmdc->_iCamColorU = pmdc->_iCamColorUBuffer; + break; + } + } else { // offliine mode + pmdc->_iCamColorUBuffer = cvQueryFrame(pmdc->_capture); + if(!pmdc->_iCamColorUBuffer) return 1; + + CvSize pmdSz = cvGetSize(pmdc->_iPMDIU); + if(fread(pmdc->_iPMDIU->imageData, sizeof(char), pmdSz.width*pmdSz.height, pmdc->_f.i) + < (unsigned)pmdSz.width*pmdSz.height) return 1; + //if(fread(pmdc->_iPMDAU->imageData, sizeof(char), pmdSz.width*pmdSz.height, pmdc->_f.a) + // < (unsigned)pmdSz.width*pmdSz.height) return 1; + for(int i = 0; i < pmdSz.height; i++) + fread(pmdc->pts[i], sizeof(CvPoint3D32f), pmdSz.width, pmdc->_f.p); + + fread(pmdc->header, sizeof(ImageHeaderInformation), 1, pmdc->_f.h); + // i hope CvPt32f contains no holes :) + pmdc->timestamp = (unsigned int)pmdc->header->Seconds; + pmdc->timestampUsec = (unsigned int)pmdc->header->Useconds; + + /*printf("%i %i %i\n", (unsigned int)pmdc->header->Seconds + , (unsigned int)pmdc->header->Useconds + , (unsigned int)pmdc->header->ValidImage);*/ + + + if(pmdc->hybrid) { + if( pmdc->timestamp > latestTimestamp + || pmdc->timestampUsec > latestTimestampUsec) { + latestTimestamp = pmdc->timestamp; + latestTimestampUsec = pmdc->timestampUsec; + cvCopy(pmdc->_iCamColorUBuffer, pmdc->_iCamColorU); + break; + } else continue; + } else { + pmdc->_iCamColorU = pmdc->_iCamColorUBuffer; + break; + } + + } + } + cvFlip(pmdc->_iPMDIU, 0, 1); // flip around x-axes + cvRemap(pmdc->_iPMDIU, pmdc->iPMDI, pmdc->_mapXPMD, pmdc->_mapYPMD); //undistortion + + cvFlip(pmdc->_iCamColorU, 0, -1); // flip around x and y axes + cvRemap(pmdc->_iCamColorU, pmdc->iCamColor, pmdc->_mapXCam, pmdc->_mapYCam); + cvCvtColor(pmdc->iCamColor, pmdc->iCam, CV_BGR2GRAY); + return 0; +} + diff --git a/src/pmd/pmdaccess2/pmdaccess.cc b/src/pmd/pmdaccess2/pmdaccess.cc new file mode 100644 index 0000000..2c8008e --- /dev/null +++ b/src/pmd/pmdaccess2/pmdaccess.cc @@ -0,0 +1,176 @@ +/* + * pmdaccess implementation + * + * Copyright (C) Stanislav Serebryakov + * + * Released under the GPL version 3. + * + */ + +#include "pmddatadescription.h" +#include "pmdsdk2.h" +#include "pmdheader.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include + + + +int sockfd; + +ImageHeaderInformation header; + +// retrive latest header +ImageHeaderInformation *retriveHeader() { + return &header; +} + + +int pmdOpen(PMDHandle *hnd, const char *rplugin, const char *rparam, const char *pplugin, const char *pparam) { + + printf("Starting XMLRPC...\n"); //DEBUG + + char url[128]; + strcpy(url, rparam); + strcat(url, ":8080"); + xmlrpc_c::clientSimple myClient; + xmlrpc_c::value result; + xmlrpc_c::paramList ipAndHeart; + ipAndHeart.add(xmlrpc_c::value_string("192.168.0.1")); + ipAndHeart.add(xmlrpc_c::value_int(1)); + myClient.call( url + , "MDAXMLConnectCP" + , ipAndHeart + , &result); + + // start data server + xmlrpc_c::paramList dataServ; + xmlrpc_c::value result2; + dataServ.add(xmlrpc_c::value_int(1)); + myClient.call( url + , "MDAXMLSetWorkingMode" + , dataServ + , &result2); + + printf("Done XMPRC init, creating socket...\n"); //DEBUG + + + struct sockaddr_in serv_addr; + struct hostent *server; + + sockfd = socket(AF_INET, SOCK_STREAM, 0); + server = gethostbyname(rparam); + serv_addr.sin_family = AF_INET; + + bcopy((char *)server->h_addr, + (char *)&serv_addr.sin_addr.s_addr, + server->h_length); + serv_addr.sin_port = htons(50002); + if (connect( sockfd + , (struct sockaddr *)&serv_addr + , sizeof(serv_addr)) + == -1) { + perror("Error connecting!\n"); + return 1; + } + printf("Connceted!\n"); //DEBUG + + return 0; +} + + +int pmdClose (PMDHandle hnd) { + + xmlrpc_c::clientSimple myClient; + xmlrpc_c::value result; + xmlrpc_c::paramList ip; + ip.add(xmlrpc_c::value_string("192.168.0.1")); + myClient.call( "192.168.0.69:8080" //FIXME: hardcoded ip + , "MDAXMLDisconnectCP" + , ip, &result); + + return 0; +} + +int pmdGetLastperror (PMDHandle hnd, char *perror, size_t maxLen) { + return 0; +} + +int pmdUpdate(PMDHandle hnd) { + xmlrpc_c::clientSimple myClient; + xmlrpc_c::value result; + xmlrpc_c::paramList noArgs; + //FIXME: There is no HearBeat XML function!!! + //myClient.call( "192.168.0.69:8080", "MDAXMLHeartBeat" //FIXME: hardcoded ip + // , noArgs, &result); + + return 0; +} + +// Currently will work for one image only (i.e. "d" or "i" but not for "id") +int pmdGetData(const char *code, PMDHandle hnd, float *data, size_t maxLen) { + int n = write(sockfd, code, strlen(code)); + if (n < 0) + perror("Error writing to socket\n"); + + // reading image header + uint32_t headerBuf[412/4]; // 412 bytes `div` sizeof(uint32_t) + int bytesRead = 0; + while(bytesRead < 412) { + n = read(sockfd, &((char*)headerBuf)[bytesRead], 412 - bytesRead); + if (n < 0) + perror("Error reading from socket\n"); + bytesRead += n; + + } + for(int i = 0; i < 412/4; i++) + ((uint32_t*)&header)[i] = ntohl(headerBuf[i]); + + // reading image + uint32_t imgBuf[maxLen/4]; // maxLen is also in bytes + bytesRead = 0; + while(bytesRead < maxLen) { + n = read(sockfd, &((char*)imgBuf)[bytesRead], maxLen - bytesRead); + if (n < 0) + perror("Error reading from socket\n"); + bytesRead += n; + } + + for(int i = 0; i < maxLen/4; i++) + ((uint32_t*)data)[i] = ntohl(imgBuf[i]); + + return 0; +} + +int pmdGetDistances(PMDHandle hnd, float *data, size_t maxLen) { + return pmdGetData("D", hnd, data, maxLen); +} + + +int pmdGetAmplitudes (PMDHandle hnd, float * data, size_t maxLen) { + return pmdGetData("I", hnd, data, maxLen); +} + +int pmdGetIntensities (PMDHandle hnd, float * data, size_t maxLen) { + return pmdGetData("S", hnd, data, maxLen); +} + +int pmdGetDistancesAsync(PMDHandle hnd, float *data, size_t maxLen) { + return pmdGetData("d", hnd, data, maxLen); +} + +int pmdGetAmplitudesAsync(PMDHandle hnd, float * data, size_t maxLen) { + return pmdGetData("i", hnd, data, maxLen); +} + +int pmdGetIntensitiesAsync(PMDHandle hnd, float * data, size_t maxLen) { + return pmdGetData("s", hnd, data, maxLen); +} + diff --git a/src/pmd/pmdc.conf b/src/pmd/pmdc.conf new file mode 100644 index 0000000..2bd13f0 --- /dev/null +++ b/src/pmd/pmdc.conf @@ -0,0 +1,83 @@ +# UI +gl = true; +ui = true; +offline = true; +#offline = false; + +# PMD Settings +ip = "192.168.0.69"; +plugin = "../o3d.L32.pcp"; +intrinsicPMD = "../intrinsic-pmd-6x4.xml"; +distortionPMD = "../distortion-pmd-6x4.xml"; +pmdSize: { + width = 64; + height = 50; +}; + +# Camera settings +cameraID = 1; +tracking: { + max = 100; + min = 50; + quality = 0.9; + minDist = 20; + winSize = 20; +}; +intrinsicCam = "../intrinsic-cam-6x4.xml"; +distortionCam = "../distortion-cam-6x4.xml"; + +essentialMatrix: { + rotation = "../essential-rot.xml"; + translation = "../essential-trn.xml"; +}; + + +# Outliers detection +# based on Huhle, B., Jenke, P. and Stra脽er, W. (2007) +# 鈥極n-the-Fly Scene Acquisition with a Handy Multisensor-System鈥, +# Int. J. of Intelligent Systems Technologies and Ap-plications, Vol. x, No. x, pp.xxx鈥搙xx. +# see section 2.2, page 4 +# use negative threshold to disable +outliersRemoval: { + sigmaDepth = 17.0; + threshold = -0.1; + sigmaColor = 42.0; +}; + + + +# Pose Estimation +# When error is more then max it's consideret that pose is not estimated +maxError= 0.3; +# Error is in METERS +minPts = 3; +icp: { + verbose = false; + method = "helix"; +# metod can be one of {apx, helix, svd, ortho, quat} +}; + + +synchronous = false; +hybrid = true; +savePoses = false; + +ransac: { + min = 30; +# minimum percents (!) of inlier points + maxIter = 10000; + errorThresh = 0.005; +}; + + +# Point cloud and images history size, set 0 to make infinite +historyLen = 1; + + +# Offline setts +camVideoFile = "../datasets/calib.avi"; +pmdIFile = "../datasets/calib.irv"; +pmdAFile = "../datasets/calib.arv"; +pmd3DFile = "../datasets/calib.3dp"; +headersFile = "../datasets/calib.head"; + diff --git a/src/pmd/pose/dat/commas2dots b/src/pmd/pose/dat/commas2dots new file mode 100755 index 0000000..2d0b442 --- /dev/null +++ b/src/pmd/pose/dat/commas2dots @@ -0,0 +1,5 @@ +#!/bin/sh +for e in *.pose; do + sed 's/,/\./g' "$e" > "$e.tmp" + mv "$e.tmp" "$e" +done; diff --git a/src/pmd/pose/djvm.ttf b/src/pmd/pose/djvm.ttf new file mode 100644 index 0000000..6bc854d Binary files /dev/null and b/src/pmd/pose/djvm.ttf differ diff --git a/src/pmd/pose/history.cc b/src/pmd/pose/history.cc new file mode 100644 index 0000000..7db2319 --- /dev/null +++ b/src/pmd/pose/history.cc @@ -0,0 +1,105 @@ +/* + * history implementation + * + * Copyright (C) Stanislav Serebryakov + * + * Released under the GPL version 3. + * + */ + +#include "history.h" +#include + +Frame *allocFrame3DData(CvSize pmdSz) { + Frame *f = (Frame*)cvAlloc(sizeof(Frame)); + + f->sz = pmdSz; + f->img = 0; + + f->trn = cvCreateMat(3, 1, CV_32FC1); + f->rot = cvCreateMat(3, 1, CV_32FC1); + + f->status = (CvPoint**) cvAlloc(pmdSz.height * sizeof(CvPoint*)); + f->pts = (CvPoint3D32f**) cvAlloc(pmdSz.height * sizeof(CvPoint3D32f*)); + for(int i = 0; i < pmdSz.height; i++) { + f->status[i] = (CvPoint*) cvAlloc(pmdSz.width * sizeof(CvPoint)); + f->pts[i] = (CvPoint3D32f*) cvAlloc(pmdSz.width * sizeof(CvPoint3D32f)); + } + + return f; +} + +void fillFrame(Frame *f, IplImage *img, CvSize pmdSz, CvPoint3D32f **pts, CvPoint **status + , CvMat *rot, CvMat *trn, double alignError) { + + assert(pmdSz.width == f->sz.width || pmdSz.height == f->sz.height); + + if(f->img) cvCopy(img, f->img, NULL); + else f->img = cvCloneImage(img); + f->alignError = alignError; + + for(int j = 0; j < pmdSz.width; j++) + for(int i = 0; i < pmdSz.height; i++) { + f->status[i][j] = status[i][j]; + f->pts[i][j] = pts[i][j]; + } + + cvCopy(rot, f->rot, NULL); + cvCopy(trn, f->trn, NULL); +} + +void releaseFrame(Frame **f) { + Frame *t = *f; + cvReleaseImage(&t->img); + cvReleaseMat(&t->rot); + cvReleaseMat(&t->trn); + for(int i = 0; i < t->sz.height; i++) { + cvFree(&t->pts[i]); + cvFree(&t->status[i]); + } + cvFree(&t->pts); + cvFree(&t->status); + *f = NULL; +} + + +History *createHistory() { + History *h = (History*)cvAlloc(sizeof(History)); + h->frame = 0; + h->prev = 0; // essential!!! + return h; +} + +History *addFrame(History *h, Frame *f) { + if(!h->frame) { // first frame, FIXME: should be out here + h->prev = 0; // ensure + h->frame = f; + return h; + } + // else + History *n = (History*)cvAlloc(sizeof(History)); + n->prev = h; + n->frame = f; + return n; +} + +void releaseTail(History *h) { + History *tmp = h->prev; + History *prev = 0; + h->prev = 0; + while(tmp) { + prev = tmp->prev; + releaseFrame(&tmp->frame); + cvFree(&tmp); + tmp = prev; + } +} + +void checkHistoryLen(History *h, int maxLen) { + History *histI = h; + for(int i = 0; histI->prev; i++) + if(i > maxLen-2) // -2 because I release *prev* elemnents + releaseTail(histI); + else histI = histI->prev; +} + diff --git a/src/pmd/pose/motion3-horn.cc b/src/pmd/pose/motion3-horn.cc new file mode 100644 index 0000000..285bba0 --- /dev/null +++ b/src/pmd/pose/motion3-horn.cc @@ -0,0 +1,129 @@ +/* + * motion3-horn implementation + * + * Copyright (C) Stanislav Serebryakov + * + * Released under the GPL version 3. + * + */ + +#include + +static inline CvMat *mat3D() { return cvCreateMat(3,1,CV_32FC1); } + +static CvMat *matFromP3D(CvPoint3D32f p) { + CvMat *m = mat3D(); + CV_MAT_ELEM(*m, float, 0, 0) = p.x; + CV_MAT_ELEM(*m, float, 1, 0) = p.y; + CV_MAT_ELEM(*m, float, 2, 0) = p.z; + return m; +} + + +// union vectors from point correspondaces (as in Horn method) +static void constructXYZ( CvMat *p1, CvMat *p2, CvMat *p3 + , CvMat *x, CvMat *y, CvMat *z) { + CvMat *p2Mp1 = mat3D(); + cvSub(p2, p1, p2Mp1, NULL); + cvConvertScale(p2Mp1, x, 1.0/cvNorm(p2Mp1, NULL, CV_L2, NULL), 0); + + CvMat *p3Mp1 = mat3D(); + cvSub(p3, p1, p3Mp1, NULL); + CvMat *ySndItem = mat3D(); + cvConvertScale(x, ySndItem, cvDotProduct(p3Mp1, x), NULL); + CvMat *ySub = mat3D(); + cvSub(p3Mp1, ySndItem, ySub); + cvConvertScale(ySub, y, 1.0/cvNorm(ySub, NULL, CV_L2, NULL), 0); + + cvCrossProduct(x, y, z); + + cvReleaseMat(&p2Mp1); + cvReleaseMat(&p3Mp1); + cvReleaseMat(&ySndItem); + cvReleaseMat(&ySub); +} + +static void fillM(CvMat *m, CvMat *x, CvMat *y, CvMat *z) { + CV_MAT_ELEM(*m, float, 0, 0) = CV_MAT_ELEM(*x, float, 0, 0); + CV_MAT_ELEM(*m, float, 1, 0) = CV_MAT_ELEM(*x, float, 1, 0); + CV_MAT_ELEM(*m, float, 2, 0) = CV_MAT_ELEM(*x, float, 2, 0); + CV_MAT_ELEM(*m, float, 0, 1) = CV_MAT_ELEM(*y, float, 0, 0); + CV_MAT_ELEM(*m, float, 1, 1) = CV_MAT_ELEM(*y, float, 1, 0); + CV_MAT_ELEM(*m, float, 2, 1) = CV_MAT_ELEM(*y, float, 2, 0); + CV_MAT_ELEM(*m, float, 0, 2) = CV_MAT_ELEM(*z, float, 0, 0); + CV_MAT_ELEM(*m, float, 1, 2) = CV_MAT_ELEM(*z, float, 1, 0); + CV_MAT_ELEM(*m, float, 2, 2) = CV_MAT_ELEM(*z, float, 2, 0); +} + + +// Horn's fast method +void estimatePose3D(CvPoint3D32f *prev, CvPoint3D32f *curr, CvMat *rot, CvMat *trn) { + CvMat *x1 = mat3D(); + CvMat *y1 = mat3D(); + CvMat *z1 = mat3D(); + CvMat *x2 = mat3D(); + CvMat *y2 = mat3D(); + CvMat *z2 = mat3D(); + CvMat *p1 = matFromP3D(prev[0]); + CvMat *p2 = matFromP3D(prev[1]); + CvMat *p3 = matFromP3D(prev[2]); + CvMat *c1 = matFromP3D(curr[0]); + CvMat *c2 = matFromP3D(curr[1]); + CvMat *c3 = matFromP3D(curr[2]); + + constructXYZ(p1, p2, p3, x1, y1, z1); + constructXYZ(c1, c2, c3, x2, y2, z2); + CvMat *m1 = cvCreateMat(3, 3, CV_32FC1); + CvMat *m2 = cvCreateMat(3, 3, CV_32FC1); + fillM(m2, x2, y2, z2); + fillM(m1, x1, y1, z1); + CvMat *rotM = cvCreateMat(3, 3, CV_32FC1); + cvGEMM(m1, m2, 1.0, NULL, 1.0, rotM, CV_GEMM_B_T); + + CvMat *rp1 = mat3D(); + cvGEMM(rotM, p1, 1.0, NULL, 1.0, rp1, 0); + CvMat *rp2 = mat3D(); + cvGEMM(rotM, p2, 1.0, NULL, 1.0, rp2, 0); + CvMat *rp3 = mat3D(); + cvGEMM(rotM, p3, 1.0, NULL, 1.0, rp3, 0); + CvMat *rp12 = mat3D(); + cvAdd(rp1, rp2, rp12, NULL); + CvMat *rp123 = mat3D(); + cvAdd(rp12, rp3, rp123, NULL); + CvMat *c12 = mat3D(); + cvAdd(c1, c2, c12, NULL); + CvMat *c123 = mat3D(); + cvAdd(c12, c3, c123, NULL); + CvMat *cg1 = mat3D(); + CvMat *cg2 = mat3D(); + cvConvertScale(c123, cg2, 1.0/3.0, 0.0); + cvConvertScale(rp123, cg1, 1.0/3.0, 0.0); + cvSub(cg2, cg1, trn, NULL); + cvRodrigues2(rotM, rot, NULL); + + cvReleaseMat(&x1); + cvReleaseMat(&y1); + cvReleaseMat(&z1); + cvReleaseMat(&x2); + cvReleaseMat(&y2); + cvReleaseMat(&z2); + cvReleaseMat(&p1); + cvReleaseMat(&p2); + cvReleaseMat(&p3); + cvReleaseMat(&c1); + cvReleaseMat(&c2); + cvReleaseMat(&c3); + cvReleaseMat(&m1); + cvReleaseMat(&m2); + cvReleaseMat(&rotM); + cvReleaseMat(&rp1); + cvReleaseMat(&rp2); + cvReleaseMat(&rp3); + cvReleaseMat(&rp12); + cvReleaseMat(&rp123); + cvReleaseMat(&c12); + cvReleaseMat(&c12); + cvReleaseMat(&cg1); + cvReleaseMat(&cg2); + //FIXME: mb missed smthg :P +} diff --git a/src/pmd/pose/pmdc.conf b/src/pmd/pose/pmdc.conf new file mode 120000 index 0000000..37e464d --- /dev/null +++ b/src/pmd/pose/pmdc.conf @@ -0,0 +1 @@ +../pmdc.conf \ No newline at end of file diff --git a/src/pmd/pose/pose.cc b/src/pmd/pose/pose.cc new file mode 100644 index 0000000..84add0c --- /dev/null +++ b/src/pmd/pose/pose.cc @@ -0,0 +1,863 @@ +/* + * pose implementation + * + * Copyright (C) Stanislav Serebryakov + * + * Released under the GPL version 3. + * + */ + +#include +#include +#include +#include +#include + +// OpenCV +#include +#include + +// GL: GLFW (window etc, ala glut) and FTGL (text rendering) +#include +#include + +// PMD-related stuff +#include "pmdsdk2.h" +#include "cvpmd.h" +#include "pmdWrap.h" +#include "history.h" + +// SLAM6D +#include "slam6d/point.h" +#include "slam6d/ptpair.h" +#include + + +FTGLPixmapFont *font; // opengl text rendring + +void usage(char* progName) { + printf("usage: %s [options]\n", progName); + printf("options:\n \ +\t--ui 0|1\t disable|enable ui (default: 1)\n\ +\t--gl 0|1\t disable|enable 3d rendering (default: 1)\n\ +\t--cfg file\t parse configuration from file (default: pmdc.conf)\n\ +\t--help\t\t display this help.\n"); +} + + + +void render( History *history, CvPoint3D32f *camPts, int trPtsCnt + , CvMat *rot, CvMat *trn + , CvPoint3D32f **camPts3D, char **pts3DStatus + , int reprojected, bool poseEstimated); + +/* + reprojects PMD-aquired 3D points on the web cam image +*/ + +//FIXME this function should be dispached >_> +int projectImageToPMD( CvMat *rot, CvMat *trn, CvMat *intrinsic + , CvPoint3D32f **pmdPts, CvSize pmdSz + , CvSize camSz, CvPoint **pmd2imgIdxs + , CvPoint2D32f *trackedPts + , int *trPtsCnt, CvPoint3D32f *trackedPts3D, char *pts3DStatus + , CvPoint *tr2pmdIdxs) { + /* TODO: + assert null image, not clean image, bad image depth + */ + // pmd point's matrix + CvMat *pt = cvCreateMat(3, 1, CV_32FC1); + // point in cam coorinate system + CvMat *reprojPt = cvCreateMat(3, 1, CV_32FC1); + // points on cam screen + CvMat *camPt3 = cvCreateMat(3, 1, CV_32FC1); + CvMat *camPt = cvCreateMat(2, 1, CV_32FC1); + // rotation matrix + CvMat *rotMat = cvCreateMat(3, 3, CV_32FC1); + cvRodrigues2(rot, rotMat, NULL); + + // clear previous found tracked pts + for(int k = 0; k < *trPtsCnt; k++) pts3DStatus[k] = 0; + + //int l = 0; // count corresponding points + int reprojected = 0; + + for(int j = 0; j < pmdSz.width; j++) + for(int i = 0; i < pmdSz.height; i++) { + if( fabs(pmdPts[i][j].x) > 20.0 + || fabs(pmdPts[i][j].y) > 20.0 + || fabs(pmdPts[i][j].z) > 20.0) continue; //FIXME: more realistic limit, status = false + // convert to mat + CV_MAT_ELEM(*pt, float, 0, 0) = (float)pmdPts[i][j].x; + CV_MAT_ELEM(*pt, float, 1, 0) = (float)pmdPts[i][j].y; + CV_MAT_ELEM(*pt, float, 2, 0) = (float)pmdPts[i][j].z; + + // reproject to the camera coordinate system + cvMatMulAdd(rotMat, pt, trn, reprojPt); + // project to the image + cvMatMul(intrinsic, reprojPt, camPt3); +// cvConvertPointsHomogenious(camPt3, camPt); +/* cvProjectPoints2(pt, rot, trn, intrinsic, NULL, camPt + , NULL, NULL, NULL, NULL, NULL);*/ + float scale = (float)CV_MAT_ELEM(*camPt3, float, 2, 0); + float xf = CV_MAT_ELEM(*camPt3, float, 0, 0) / scale; + float yf = CV_MAT_ELEM(*camPt3, float, 1, 0) / scale; + int x = (int)xf; + int y = camSz.height - (int)yf; //FIXME revise coordinates + + if((x < 0) || (x > camSz.width) || + (y < 0) || (y > camSz.height)) { + pmd2imgIdxs[i][j].x = -1; + pmd2imgIdxs[i][j].y = -1; + continue; + } else { // point is projected to cam + // contains which PMD point is seen from this pixel + pmd2imgIdxs[i][j].x = x; + pmd2imgIdxs[i][j].y = y; + } + + //find tracked 3d points (fused here, can be dispached) + for(int k = 0; k < *trPtsCnt; k++) + if(pts3DStatus[k]) continue; // kill to accumulate (*) + else + if( (abs((trackedPts[k].x - (float)x)) < 3) //TODO: distance SHOULD be chousen depending on depth!!! + && (abs((trackedPts[k].y - (float)y)) < 3)) { //FIXME: hardcoded distance + //TODO: we can accumulate points here to get more presise results (*) + trackedPts3D[k].x = pmdPts[i][j].x; + trackedPts3D[k].y = pmdPts[i][j].y; + trackedPts3D[k].z = pmdPts[i][j].z; + pts3DStatus[k] = 1; + tr2pmdIdxs[k].x = i; //FIXME: cvPoint(i,j)? + tr2pmdIdxs[k].y = j; + reprojected++; + break; // kill to accumulate (*) + } + } + + cvReleaseMat(&pt); + cvReleaseMat(&reprojPt); + cvReleaseMat(&camPt); + cvReleaseMat(&rotMat); + + return reprojected; +} + +static inline float cvPoint3D32fNorm(CvPoint3D32f pt) { + return sqrt( (pt.x - pt.x)*(pt.x - pt.x) + +(pt.y - pt.y)*(pt.y - pt.y) + +(pt.z - pt.z)*(pt.z - pt.z)); +} + +float dpthS( IplImage *img + , CvPoint ptI, CvPoint dp + , CvPoint3D32f **pts + , CvPoint ptD, CvSize pmdSz + , float sD, float sC) { + CvSize imgSz = cvGetSize(img); + if( ptD.x + dp.x > pmdSz.width - 1 || ptD.x + dp.x < 0 + || ptD.y + dp.y > pmdSz.height - 1 || ptD.y + dp.y < 0 + || ptI.x + dp.x > imgSz.width - 1 || ptI.x + dp.x < 0 + || ptI.y + dp.y > imgSz.height - 1 || ptI.y + dp.y < 0) return 0.0; + + uchar *pI = &((uchar*) (img->imageData + img->widthStep * ptI.y))[ptI.x*3]; + uchar *pJ = &((uchar*) (img->imageData + img->widthStep * (ptI.y+dp.y)))[(ptI.x+dp.x)*3]; + float dr = (float)pI[2] - (float)pJ[2]; + float dg = (float)pI[1] - (float)pJ[1]; + float db = (float)pI[0] - (float)pJ[0]; + float wij = exp(-(sqrt(dr*dr + dg*dg + db*db))/sC); + float dpI = cvPoint3D32fNorm(pts[ptD.x][ptD.y]); + float dpJ = cvPoint3D32fNorm(pts[ptD.x + dp.x][ptD.y + dp.y]); + float s = exp(-wij*(dpI - dpJ)*(dpI - dpJ)/sD); + return s; +} + + + +#define DPTHS(dx, dy) (dpthS( img, idx, cvPoint((dx),(dy)) \ + , pmdPts \ + , pmdIdx, pmdSz \ + , sigmaDepth, sigmaColor)) + + +void outliersDepthAndColor( CvPoint3D32f **pmdPts, IplImage *img, CvSize pmdSz + , CvPoint2D32f *trackedPts, int trPtsCnt, CvPoint* tr2pmdIdxs + , char *pts3DStatus // this actually return parameter + , float sigmaDepth, float threshold, float sigmaColor + ) { + if(threshold < 0.0) return; + // depth score outliers removal, see pmdc.conf comments + for(int k = 0; k < trPtsCnt; k++) { + //FIXME: check array bounds + CvPoint pmdIdx = tr2pmdIdxs[k]; + CvPoint idx = cvPointFrom32f(trackedPts[k]); + float s00, s01, s02; + s00 = DPTHS(-1, -1); + s01 = DPTHS( 0, -1); + s02 = DPTHS( 1, -1); + float s10 = DPTHS(-1, 0); + float s12 = DPTHS( 1, 0); + float s20 = DPTHS(-1, 1); + float s21 = DPTHS( 0, 1); + float s22 = DPTHS( 1, 1); + float score = s00 + s01 + s02 + + s10 + 0.0 + s12 + + s20 + s21 + s22; + printf("score = %f\n", score); + if(score < threshold) pts3DStatus[k] = 0; + } + +} + +int motionMeanAndVariance(CvPoint3D32f **camPts3D, char **pts3DStatus, int trPtsCnt, float *mean, float *var) { + +// float *mean = meanAndVariance; +// float *var = &(meanAndVariance[3]); +// float motion[3]; + float dx, dy, dz; + float magSq; + float motionSum = 0; //[3] = {0.0, 0.0, 0.0}; + float motionSqrSum = 0; //[3] = {0.0, 0.0, 0.0}; + + int sz = 0; // pairs count + for(int i = 0; i < trPtsCnt; i++) + if(pts3DStatus[1][i] && pts3DStatus[0][i]) { + sz++; + + dx = camPts3D[1][i].x - camPts3D[0][i].x; + dy = camPts3D[1][i].y - camPts3D[0][i].y; + dz = camPts3D[1][i].z - camPts3D[0][i].z; + + magSq = dx*dx + dy*dy + dz*dz; + + motionSum += sqrt(magSq); //FIXME: optimisation, we can use it without sqrt + + motionSqrSum += magSq; //thus, it would be sqr here + +/* motionSum[0] += motion[0]; + motionSum[1] += motion[1]; + motionSum[2] += motion[2]; + + motionSqrSum[0] += motion[0]*motion[0]; + motionSqrSum[1] += motion[1]*motion[1]; + motionSqrSum[2] += motion[2]*motion[2];*/ + } + + if(0 == sz) return 0; + // mean + *mean = motionSum / sz; +/* mean[0] = motionSum[0] / (float)sz; + mean[1] = motionSum[1] / (float)sz; + mean[2] = motionSum[2] / (float)sz;*/ + + // variance + + for(int i = 0; i < trPtsCnt; i++) + if(pts3DStatus[1][i] && pts3DStatus[0][i]) { + dx = camPts3D[1][i].x - camPts3D[0][i].x; + dy = camPts3D[1][i].y - camPts3D[0][i].y; + dz = camPts3D[1][i].z - camPts3D[0][i].z; + + magSq = dx*dx + dy*dy + dz*dz; + + *var += (magSq - *mean)*(magSq - *mean); + } + + *var /= sz; + // = motionSqrSum / sz - (*mean)*(*mean); + +/* var[0] = motionSqrSum[0] / (float)sz - mean[0]*mean[0]; + var[1] = motionSqrSum[1] / (float)sz - mean[1]*mean[1]; + var[2] = motionSqrSum[2] / (float)sz - mean[2]*mean[2];*/ + return 1; +} + +void outliersSpeedSigma(CvPoint3D32f **camPts3D, char **pts3DStatus, int trPtsCnt, float mean, float var) { + + float dx, dy, dz; + float mag; + float sigma = sqrt(var); + for(int i = 0; i < trPtsCnt; i++) + if(pts3DStatus[1][i] && pts3DStatus[0][i]) { + dx = camPts3D[1][i].x - camPts3D[0][i].x; + dy = camPts3D[1][i].y - camPts3D[0][i].y; + dz = camPts3D[1][i].z - camPts3D[0][i].z; + + mag = sqrt(dx*dx + dy*dy + dz*dz); + + if(fabs(mag - mean) > sigma) { + pts3DStatus[0][i] = 0; + } + } +} + + +int main(int argc, char **argv) { + // settings + bool ui = true; + bool gl = true; + bool fps = false; + const char *config = "./pmdc.conf"; + + // args parsing + for(int i = 1; i < argc; i++) { + if (!strcmp(argv[i], "--ui")) ui = (bool) atoi(argv[++i]); + else if (!strcmp(argv[i], "--gl")) gl = (bool) atoi(argv[++i]); + else if (!strcmp(argv[i], "--fps")) fps = true; + else if (!strcmp(argv[i], "--cfg")) config = argv[++i]; + //TODO: config + else if (!strcmp(argv[i], "--help") + || !strcmp(argv[i], "-h")) { + usage(argv[0]); + return 1; + } else { + fprintf(stderr, "ERROR: unknown flag: %s\n", argv[i]); + return 1; + } + } + // pose guess + CvMat *rotMatGuess = cvCreateMat(3,3, CV_32FC1); + CvMat *rotGuess = cvCreateMat(3, 1, CV_32FC1); + CvMat *trnGuess = cvCreateMat(3, 1, CV_32FC1); + + + /***** init device and allocate images *****/ + PMDCam *pmdc = initPMDCam(config); + CvSize pmdSz = cvGetSize(pmdc->iPMDI); + CvSize camSz = cvGetSize(pmdc->iCam); + printf("pose: pmd init done\n"); + + /***** essential matrix *****/ + + CvMat *rot = (CvMat*)cvLoad("../essential-rot.xml"); //FIXME: load path from cfg + CvMat *trn = (CvMat*)cvLoad("../essential-trn.xml"); + + /***** LK-tracking *****/ + IplImage *swapTemp; + + int featuresMax = pmdc->_track.maxFeatures; + int trPtsCnt = 0; // counts found points + + // eigenvalues for GFTT + IplImage* eig = cvCreateImage(camSz, 32, 1); + IplImage* tmp = cvCreateImage(camSz, 32, 1); + IplImage* mask = cvCreateImage(camSz, IPL_DEPTH_8U, 1); + + // previous image and pyramides + IplImage *imgCamPrv = cvCreateImage(camSz, 8, 1); + IplImage *imgCamPyr = cvCreateImage(camSz, 8, 1); + IplImage *imgCamPyrPrv = cvCreateImage(camSz, 8, 1); + + // prev and curr tracked points + CvPoint2D32f *camPts[2]; + camPts[0] = (CvPoint2D32f*) cvAlloc(featuresMax * sizeof(CvPoint2D32f)); + camPts[1] = (CvPoint2D32f*) cvAlloc(featuresMax * sizeof(CvPoint2D32f)); + CvPoint3D32f *camPts3D[2]; + camPts3D[0] = (CvPoint3D32f*) cvAlloc(featuresMax * sizeof(CvPoint3D32f)); + camPts3D[1] = (CvPoint3D32f*) cvAlloc(featuresMax * sizeof(CvPoint3D32f)); + + CvPoint2D32f *swapPts; + CvPoint3D32f *swapPts3; // i guess i can use void* d:D + char *swapStatus; + char *camPtsStatus = (char*)cvAlloc(featuresMax); + char *pts3DStatus[2]; + pts3DStatus[0] = (char*) cvAlloc(featuresMax * sizeof(char)); + pts3DStatus[1] = (char*) cvAlloc(featuresMax * sizeof(char)); + CvPoint *tr2pmdIdxs = (CvPoint*) cvAlloc(featuresMax * sizeof(CvPoint)); + + // 3d rays where points points :P + CvPoint3D32f *trackedPts = (CvPoint3D32f*) cvAlloc(featuresMax * sizeof(CvPoint3D32f)); + + // contains (row,col) of pmd 3D pts + CvPoint **pmd2imgIdxs = (CvPoint**) cvAlloc(pmdSz.height * sizeof(CvPoint*)); + for(int i = 0; i < pmdSz.height; i++) + pmd2imgIdxs[i] = (CvPoint*) cvAlloc(pmdSz.width * sizeof(CvPoint)); + + // pmd history + History *history = createHistory(); + + /***** ui and gl stuff *****/ + if(ui) { + cvNamedWindow("PMD", 0); + cvNamedWindow("Cam", 0); + } + + if(gl) { + glfwInit(); + if(!glfwOpenWindow(640, 480, 8, 8, 8, 8, 24, 0, GLFW_WINDOW)) { + glfwTerminate(); + fprintf(stderr, "ERROR: can't init glfw window!\n"); + return 1; + } + } + //FIXME: put this in if(gl) + font = new FTGLPixmapFont("./djvm.ttf"); + + if(font->Error()) { + fprintf(stderr, "ERROR: can't load font ./djvm.ttf"); + return 1; + } + font->FaceSize(20); + + // fps counting + time_t tic=time(0); + time_t tac; + + int fpsCnt = 0; + + //icp pairs + vector pairs; + vector motion; + float mean, var; + + /***** main loop *****/ + /*********************/ + int frames = 0; + int goodFrames = 0; + while(1) { + /***** fps counting *****/ + if(fps) { + tac = time(0); + if(tac - tic >= 1) { + printf("%i FPS\n", fpsCnt); + fflush(stdout); + fpsCnt = 0; + tic=tac; + } + fpsCnt++; + } + if(grabData(pmdc)) break; // end of seq? + + + /***** tracking *****/ + //if(trPtsCnt) + cvCalcOpticalFlowPyrLK( imgCamPrv, pmdc->iCam, imgCamPyrPrv, imgCamPyr + , camPts[0], camPts[1], trPtsCnt + , cvSize(pmdc->_track.winSz, pmdc->_track.winSz), 3, camPtsStatus, 0 + , cvTermCriteria(CV_TERMCRIT_ITER|CV_TERMCRIT_EPS, 20, 0.03) + , pmdc->_track.trackingFlags); + pmdc->_track.trackingFlags |= CV_LKFLOW_PYR_A_READY; + + // filter out not tracked points + int k = 0; + for(int i = 0; i < trPtsCnt; i++) + if(camPtsStatus[i]) { + camPts3D[0][k] = camPts3D[0][i]; + pts3DStatus[0][k] = pts3DStatus[0][i]; + camPts[1][k++] = camPts[1][i]; + } + + trPtsCnt = k; + + /***** 3d (re)projection *****/ + cvProjectArrayToCartesian(pmdc->intrinsicCam, camPts[1], trPtsCnt, trackedPts); + + int reprojected = projectImageToPMD( rot, trn, pmdc->intrinsicCam, pmdc->pts, pmdSz, camSz, pmd2imgIdxs + , camPts[1], &trPtsCnt, camPts3D[1], pts3DStatus[1], tr2pmdIdxs); + double alignError = 0.0; + bool poseEstimated = false; + if(reprojected >= pmdc->minPts4Pose) { // we need at least minPts4Pose points + + if(motionMeanAndVariance(camPts3D, pts3DStatus, trPtsCnt, &mean, &var)) + // TODO: can be fused with centroid computation + outliersSpeedSigma(camPts3D, pts3DStatus, trPtsCnt, mean, var); + + outliersDepthAndColor( pmdc->pts, pmdc->iCamColor, pmdSz, camPts[1], trPtsCnt + , tr2pmdIdxs, pts3DStatus[1], pmdc->sigmaDepth + , pmdc->dpThreshold, pmdc->sigmaColor); + + + pairs.clear(); + double centroidM[3] = {0.0, 0.0, 0.0}; + double centroidD[3] = {0.0, 0.0, 0.0}; + double pt1[3]; + double pt2[3]; + + for(int i = 0; i < trPtsCnt; i++) + if(pts3DStatus[1][i] && pts3DStatus[0][i]) { + pt1[0] = camPts3D[0][i].x; + pt1[1] = camPts3D[0][i].y; + pt1[2] = camPts3D[0][i].z; + pt2[0] = camPts3D[1][i].x; + pt2[1] = camPts3D[1][i].y; + pt2[2] = camPts3D[1][i].z; + + //TODO can be fused -- (+=) :: a -> a -> a + centroidM[0] += camPts3D[0][i].x; + centroidM[1] += camPts3D[0][i].y; + centroidM[2] += camPts3D[0][i].z; + centroidD[0] += camPts3D[1][i].x; + centroidD[1] += camPts3D[1][i].y; + centroidD[2] += camPts3D[1][i].z; + + PtPair currentPair(pt1, pt2); + pairs.push_back(currentPair); + } + + reprojected = pairs.size(); + + if(reprojected >= pmdc->minPts4Pose) { // enough corresponding points + centroidM[0] /= reprojected; + centroidM[1] /= reprojected; + centroidM[2] /= reprojected; + centroidD[0] /= reprojected; + centroidD[1] /= reprojected; + centroidD[2] /= reprojected; + + double transformMat[16]; + try { alignError = pmdc->icp->Point_Point_Align(pairs, transformMat, centroidM, centroidD); } + catch(...) { fprintf(stderr, "ERROR: matrix is singular!\n"); } + + if(!gl) printf( "%i: align error: %f, 3d pts count: %i, 2d pts count: %i\n" + , frames, alignError, reprojected, trPtsCnt); + + for(int i = 1; i < 16; i++) + if (i%4 > 2) continue; // bottom row + else if(i/4 > 2) CV_MAT_ELEM(*trnGuess, float, i%4, 0) = transformMat[i]; + else CV_MAT_ELEM(*rotMatGuess, float, i/4, i%4) = transformMat[i]; // right col + + cvRodrigues2(rotMatGuess, rotGuess, NULL); + + if(alignError < pmdc->maxError) + poseEstimated = true; + } + } + + + /**** Print pose to file ****/ + //TODO: config option + if(pmdc->savePoses) { + char filename[] = "./dat/scan0000.pose"; + sprintf(filename, "./dat/scan%04d.pose", frames); + FILE *pose = fopen(filename, "wb"); + if(!pose) fprintf(stderr, "cant create file %s!\n", filename); + + if(poseEstimated) { + fprintf(pose, "%f %f %f\n%f %f %f\n" + , 100.0*CV_MAT_ELEM(*rotGuess, float, 0, 0) + , 100.0*CV_MAT_ELEM(*rotGuess, float, 0, 0) + , 100.0*CV_MAT_ELEM(*rotGuess, float, 0, 0) + , 100.0*CV_MAT_ELEM(*trnGuess, float, 0, 0) + , 100.0*CV_MAT_ELEM(*trnGuess, float, 1, 0) + , 100.0*CV_MAT_ELEM(*trnGuess, float, 2, 0)); + goodFrames++; + } else { + fprintf( stderr, "ERROR: %i points found, align error: %f\n" + , reprojected, alignError); + fprintf(pose, "%f %f %f\n%f %f %f\n", 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); + } + + fflush(pose); + fclose(pose); + } + frames++; + + + /***** find features *****/ + if(trPtsCnt < pmdc->_track.minFeatures) { + int trPtsCntFound = featuresMax - trPtsCnt; + cvSet(mask, cvScalarAll(255)); + for(int i = 0; i < trPtsCnt; i++) + cvCircle(mask, cvPointFrom32f(camPts[1][i]), 20, CV_RGB(0,0,0), -1, 8, 0); + cvGoodFeaturesToTrack( pmdc->iCam, eig, tmp, camPts[1] + trPtsCnt, &trPtsCntFound + , pmdc->_track.quality, pmdc->_track.minDist, mask, 3, 0, 0.04); + cvFindCornerSubPix( pmdc->iCam, camPts[1] + trPtsCnt, trPtsCntFound + , cvSize(pmdc->_track.winSz,pmdc->_track.winSz), cvSize(-1,-1) + , cvTermCriteria(CV_TERMCRIT_ITER|CV_TERMCRIT_EPS,20,0.03)); + trPtsCnt += trPtsCntFound; + } + + Frame *f = allocFrame3DData(pmdSz); + fillFrame(f, pmdc->iCamColor, pmdSz, pmdc->pts, pmd2imgIdxs, rotGuess, trnGuess, alignError); + history = addFrame(history, f); + checkHistoryLen(history, pmdc->historyLen); + + bool pause = false; + do { + /***** ui and rendring *****/ + if(gl) render( history, trackedPts, trPtsCnt + , rot, trn, camPts3D, pts3DStatus + , reprojected, poseEstimated); + if(ui) { + for(int i = 0; i < trPtsCnt; i++) + cvCircle( pmdc->iCamColor, cvPointFrom32f(camPts[1][i]) + , 3, CV_RGB(255,0,255), -1, 8, 0); + + cvShowImage("PMD", pmdc->iPMDI); + cvShowImage("Cam", pmdc->iCamColor); + } + + int key = cvWaitKey(5); + if(27 == key) return 0; // ESC pressed FIXME: release stuff + if((int)' ' == key) pause = !pause; + if(gl) if(glfwGetKey(GLFW_KEY_ESC) == GLFW_PRESS) return 0; //in OpenGL window ;) + } while(pause); + + CV_SWAP(imgCamPrv, pmdc->iCam, swapTemp); + CV_SWAP(imgCamPyrPrv, imgCamPyr, swapTemp); + CV_SWAP(camPts[0], camPts[1], swapPts); + CV_SWAP(camPts3D[0], camPts3D[1], swapPts3); + CV_SWAP(pts3DStatus[0], pts3DStatus[1], swapStatus); + + + } // while(1) + + // let OS clean all images and matrices + // TODO: releasePMD(&pmd); + if(gl) { + glfwTerminate(); + } + printf("%i good frames, %i frames total.\n", goodFrames, frames); + return 0; +} + + +// Global rendering settings +float rotx = 0; +float roty = 0; +float rotz = 0; +float scale = 0.7; +int renderCoords = 1; +int renderCams = 1; +int renderColorPts = 1; +int renderLines = 0; +int renderTracked = 1; +int renderHistory = 1; +int centerCloud = 0; + + + +void renderFrame(Frame *f) { + assert(f->img->imageData); + glBegin(GL_POINTS); + if(!renderColorPts) { + //FIXME: mess with the indices (i,j) + for(int j = 0; j < f->sz.width; j++) + for(int i = 0; i < f->sz.height; i++) + glVertex3f(f->pts[i][j].x, f->pts[i][j].y, f->pts[i][j].z); + glEnd(); + } else { + uchar *imgCamPix = 0; + for(int j = 0; j < f->sz.width; j++) + for(int i = 0; i < f->sz.height; i++) { + int x = f->status[i][j].x; + int y = f->status[i][j].y; + if(x > 0) { + imgCamPix = &((uchar*) + (f->img->imageData + f->img->widthStep * y))[x*3]; + glColor3f( ((float)imgCamPix[2])/255.0 + , ((float)imgCamPix[1])/255.0 + , ((float)imgCamPix[0])/255.0); //BGR + } else glColor3f(1.0, 0.0, 0.0); + glVertex3f(f->pts[i][j].x, f->pts[i][j].y, f->pts[i][j].z); + } + } // if renderColorPts else +} + +void render( History *history, CvPoint3D32f *camPts, int trPtsCnt + , CvMat *rot, CvMat *trn + , CvPoint3D32f **camPts3D, char **pts3DStatus + , int reprojected, bool poseEstimated) { + + if(glfwGetKey((int)'W') == GLFW_PRESS) roty += 10.0; + if(glfwGetKey((int)'S') == GLFW_PRESS) roty -= 10.0; + if(glfwGetKey((int)'A') == GLFW_PRESS) rotx -= 10.0; + if(glfwGetKey((int)'D') == GLFW_PRESS) rotx += 10.0; + if(glfwGetKey((int)'Q') == GLFW_PRESS) rotz -= 10.0; + if(glfwGetKey((int)'E') == GLFW_PRESS) rotz += 10.0; + if(glfwGetKey((int)'R') == GLFW_PRESS) scale -= 0.1; + if(glfwGetKey((int)'F') == GLFW_PRESS) scale += 0.1; + if(glfwGetKey((int)'1') == GLFW_PRESS) renderCoords = !renderCoords; + if(glfwGetKey((int)'2') == GLFW_PRESS) renderCams = !renderCams; + if(glfwGetKey((int)'3') == GLFW_PRESS) renderColorPts = !renderColorPts; + if(glfwGetKey((int)'4') == GLFW_PRESS) renderLines = !renderLines; + if(glfwGetKey((int)'5') == GLFW_PRESS) renderTracked = !renderTracked; + if(glfwGetKey((int)'6') == GLFW_PRESS) renderHistory = !renderHistory; + if(glfwGetKey((int)'C') == GLFW_PRESS) centerCloud = !centerCloud; + + int width, height; + GLUquadric *quadric; + + glfwGetWindowSize(&width, &height); + height = height < 1 ? 1 : height; + + glViewport(0, 0, width, height); + + glEnable(GL_BLEND); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glClearColor(0.0f, 0.0f, 0.0f, 0.0f); + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + gluPerspective(70, (double)width/(double)height, 0.01, 100.0); + + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + int cj = history->frame->sz.width / 2; + int ci = history->frame->sz.height / 2; + CvPoint3D32f **pts = history->frame->pts; + // gluLookAt(scale, scale, scale, + // pts[ci][cj].x, pts[ci][cj].y, -pts[ci][cj].z, 0.0, 1.0, 0.0); + gluLookAt(scale, scale, scale, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0); + + glScalef(1.0, 1.0, -1.0); // convert opengl coord system to left handed + + glEnable(GL_DEPTH_TEST); + glDepthFunc(GL_LEQUAL); + + /* text rendering */ + char info[30]; + FTPoint pt(5.0, 5.0); + sprintf(info, "2D pts: %i", trPtsCnt); + font->Render(info, -1, pt); + + pt.Y(35.0); + sprintf(info, "3D pts: %i", reprojected); + font->Render(info, -1, pt); + + pt.Y(65.0); + sprintf(info, "Align error: %f", history->frame->alignError); + font->Render(info, -1, pt); + + glRotatef(rotz, 0.0, 0.0, 1.0); + glRotatef(roty, 0.0, 1.0, 0.0); + glRotatef(rotx, 1.0, 0.0, 0.0); + + if(centerCloud) glTranslatef(-pts[ci][cj].x, -pts[ci][cj].y, -pts[ci][cj].z); + + + /***** xyz axes *****/ + if(renderCoords) { + glBegin(GL_LINES); + glColor3f(1.0, 0.0, 0.0); + glVertex3f(0.0, 0.0, 0.0); + glVertex3f(1.0, 0.0, 0.0); + glColor3f(0.0, 1.0, 0.0); + glVertex3f(0.0, 0.0, 0.0); + glVertex3f(0.0, 1.0, 0.0); + glColor3f(0.0, 0.0, 1.0); + glVertex3f(0.0, 0.0, 0.0); + glVertex3f(0.0, 0.0, 1.0); + glEnd(); + } + + /***** render PMD-points PMD-cam in the O *****/ + fflush(stdout); + renderFrame(history->frame); + fflush(stdout); + + if(renderHistory) { + fflush(stdout); + History *histI = history; + glPushMatrix(); + + //for(int i = 0; histI->prev; i++) { + while(histI->prev) { + glColor3f(1.0, 0.0, 0.0);//, (100.0-i)/100); + assert(histI); + + //if(histI->frame->alignError < 0.03) { //FIXME_ hardcoded thrs + glRotatef(-CV_MAT_ELEM(*histI->frame->rot, float, 0, 0), 1.0f, 0.0f, 0.0f); + glRotatef(-CV_MAT_ELEM(*histI->frame->rot, float, 1, 0), 0.0f, 1.0f, 0.0f); + glRotatef(-CV_MAT_ELEM(*histI->frame->rot, float, 2, 0), 0.0f, 0.0f, 1.0f); + glTranslatef( -CV_MAT_ELEM(*histI->frame->trn, float, 0, 0) + , -CV_MAT_ELEM(*histI->frame->trn, float, 1, 0) + , -CV_MAT_ELEM(*histI->frame->trn, float, 2, 0)); + //} + histI = histI->prev; + renderFrame(histI->frame); + } + glPopMatrix(); + } + + quadric = gluNewQuadric(); + + + if(renderCams) { + glColor3f(0.5, 0.5, 0.0); + glPushMatrix(); + glScalef(1.0, 1.0, -1.0); // rotated cylinder + gluCylinder(quadric, 0.05, 0.0, 0.05, 10, 10); + glPopMatrix(); + } + + /***** render Cam and features according to essential matrix [R|t] *****/ + if(renderTracked) { + glBegin(GL_LINES); + for(int i = 0; i < trPtsCnt; i++) { + if(pts3DStatus[1][i] && + pts3DStatus[0][i]) { + glColor3f(1.0, 0.0, 0.0); + glVertex3f(camPts3D[0][i].x, camPts3D[0][i].y, camPts3D[0][i].z); + glVertex3f(camPts3D[1][i].x, camPts3D[1][i].y, camPts3D[1][i].z); + glColor3f(0.0, 0.0, 0.5); + glPushMatrix(); + glTranslatef(camPts3D[0][i].x, camPts3D[0][i].y, camPts3D[0][i].z); + gluSphere(quadric, 0.005f, 10, 10); + glPopMatrix(); + glColor3f(0.5, 0.0, 1.0); + glPushMatrix(); + glTranslatef(camPts3D[1][i].x, camPts3D[1][i].y, camPts3D[1][i].z); + gluSphere(quadric, 0.01f, 10, 10); + glPopMatrix(); + } + } + glEnd(); + } + glBegin(GL_LINES); + for(int i = 0; i < trPtsCnt; i++) + if(pts3DStatus[1][i] && + pts3DStatus[0][i]) { + glColor3f(1.0, 0.0, 0.0); + glVertex3f(camPts3D[0][i].x, camPts3D[0][i].y, camPts3D[0][i].z); + glVertex3f(camPts3D[1][i].x, camPts3D[1][i].y, camPts3D[1][i].z); + } + glEnd(); + + + glPushMatrix(); + glTranslatef( -CV_MAT_ELEM(*trn, float, 0, 0) + , -CV_MAT_ELEM(*trn, float, 1, 0) + , -CV_MAT_ELEM(*trn, float, 2, 0)); + glRotatef(-CV_MAT_ELEM(*rot, float, 0, 0), 1.0f, 0.0f, 0.0f); + glRotatef(-CV_MAT_ELEM(*rot, float, 1, 0), 0.0f, 1.0f, 0.0f); + glRotatef(-CV_MAT_ELEM(*rot, float, 2, 0), 0.0f, 0.0f, 1.0f); + if(renderCams) { + glColor3f(0.0, 0.5, 0.5); + glPushMatrix(); + glScalef(1.0, 1.0, -1.0); + gluCylinder(quadric, 0.05, 0.0, 0.05, 10, 10); + glPopMatrix(); + } + + if(renderLines) { + glColor3f(1.0, 0.0, 1.0); + glBegin(GL_LINES); + for(int i = 0; i < trPtsCnt; i++) { + glVertex3f(0.0f, 0.0f, 0.0f); + glVertex3f(-camPts[i].x, camPts[i].y, camPts[i].z); //FIXME: revise coordinates! why -camPts?! + } + glEnd(); + } + glPopMatrix(); + + glPushMatrix(); + glRotatef(CV_MAT_ELEM(*history->frame->rot, float, 2, 0), 0.0f, 0.0f, 1.0f); + glRotatef(CV_MAT_ELEM(*history->frame->rot, float, 1, 0), 0.0f, 1.0f, 0.0f); + glRotatef(CV_MAT_ELEM(*history->frame->rot, float, 0, 0), 1.0f, 0.0f, 0.0f); + glTranslatef( CV_MAT_ELEM(*history->frame->trn, float, 0, 0) + , CV_MAT_ELEM(*history->frame->trn, float, 1, 0) + , CV_MAT_ELEM(*history->frame->trn, float, 2, 0)); + if(poseEstimated) glColor3f(0.0, 0.0, 1.0); + else glColor3f(0.0, 0.0, 0.3); + //render pose and pmd cam + glScalef(1.0, 1.0, -1.0); + gluCylinder(quadric, 0.05, 0.0, 0.05, 10, 10); + glColor4f(1.0, 0.0, 0.0, 0.5); + gluSphere(quadric, history->frame->alignError, 20, 20); + glPopMatrix(); + + gluDeleteQuadric(quadric); + glfwSwapBuffers(); +} + diff --git a/src/scanio/CMakeLists.txt b/src/scanio/CMakeLists.txt new file mode 100644 index 0000000..e7d1d27 --- /dev/null +++ b/src/scanio/CMakeLists.txt @@ -0,0 +1,54 @@ +if(WIN32) + add_library(pointfilter STATIC ../slam6d/pointfilter.cc) +else(WIN32) + add_library(pointfilter SHARED ../slam6d/pointfilter.cc) +endif(WIN32) + +set(SCANIO_LIBNAMES + uos uos_rgb ks ks_rgb riegl_txt riegl_rgb rts velodyne +) + +if(WITH_RIVLIB) + set(SCANIO_LIBNAMES ${SCANIO_LIBNAMES} rxp) + if(LIBXML2_FOUND) + include_directories(${LIBXML2_INCLUDE_DIR}) +# set(SCANIO_LIBNAMES ${SCANIO_LIBNAMES} riegl_project) +# target_link_libraries(scan_io_riegl_project ${RIVLIB} scan_io_rxp ${LIBXML2_LIBRARIES}) + endif(LIBXML2_FOUND) +endif(WITH_RIVLIB) + +#IF (WITH_CAD) +# IF(NOT WIN32) +# add_library(scan_io_cad SHARED scan_io_cad.cc) +# target_link_libraries(scan_io_cad ${Boost_PROGRAM_OPTIONS_LIBRARY} ${Boost_FILESYSTEM_LIBRARY}) +# ENDIF(NOT WIN32) +#ENDIF (WITH_CAD) + +foreach(libname ${SCANIO_LIBNAMES}) +if(WIN32) + #add_library(scan_io_${libname} STATIC scan_io_${libname}.cc) + add_library(scan_io_${libname} SHARED scan_io_${libname}.cc) +else(WIN32) + add_library(scan_io_${libname} SHARED scan_io_${libname}.cc) +endif(WIN32) + target_link_libraries(scan_io_${libname} pointfilter ${Boost_LIBRARIES} ${Boost_PROGRAM_OPTIONS_LIBRARY} ${Boost_FILESYSTEM_LIBRARY} ${Boost_SYSTEM_LIBRARY}) +endforeach(libname) + +if(WITH_RIVLIB) + target_link_libraries(scan_io_rxp ${RIVLIB}) + if(LIBXML2_FOUND) + target_link_libraries(scan_io_rxp ${LIBXML2_LIBRARIES}) #scan_io_riegl_project ${RIVLIB}) + endif(LIBXML2_FOUND) +endif(WITH_RIVLIB) + +if(WIN32) + add_library(scanio STATIC scan_io.cc ../slam6d/io_types.cc) +else(WIN32) + add_library(scanio SHARED scan_io.cc ../slam6d/io_types.cc) +endif(WIN32) + +if(UNIX) + target_link_libraries(scanio dl) +endif(UNIX) + + diff --git a/src/scanio/calibration.txt b/src/scanio/calibration.txt new file mode 100644 index 0000000..06ea5f1 --- /dev/null +++ b/src/scanio/calibration.txt @@ -0,0 +1,33 @@ +VerticalCorrection, RotationalCorrection, DistanceCorrection, VerticalOffset, HorizontalOffset +-30.67, 0, 0, 0, 0, 1 +-9.3299999, 0, 0, 0, 0, 1 +-29.33, 0, 0, 0, 0, 1 +-8, 0, 0, 0, 0, 1 +-28, 0, 0, 0, 0, 1 +-6.6700001, 0, 0, 0, 0, 1 +-26.67, 0, 0, 0, 0, 1 +-5.3299999, 0, 0, 0, 0, 1 +-25.33, 0, 0, 0, 0, 1 +-4, 0, 0, 0, 0, 1 +-24, 0, 0, 0, 0, 1 +-2.6700001, 0, 0, 0, 0, 1 +-22.67, 0, 0, 0, 0, 1 +-1.33, 0, 0, 0, 0, 1 +-21.33, 0, 0, 0, 0, 1 +0, 0, 0, 0, 0, 1 +-20, 0, 0, 0, 0, 1 +1.33, 0, 0, 0, 0, 1 +-18.67, 0, 0, 0, 0, 1 +2.6700001, 0, 0, 0, 0, 1 +-17.33, 0, 0, 0, 0, 1 +4, 0, 0, 0, 0, 1 +-16, 0, 0, 0, 0, 1 +5.3299999, 0, 0, 0, 0, 1 +-14.67, 0, 0, 0, 0, 1 +6.6700001, 0, 0, 0, 0, 1 +-13.33, 0, 0, 0, 0, 1 +8, 0, 0, 0, 0, 1 +-12, 0, 0, 0, 0, 1 +9.3299999, 0, 0, 0, 0, 1 +-10.67, 0, 0, 0, 0, 1 +10.67, 0, 0, 0, 0, 1 diff --git a/src/scanio/old/scan_io_ais.cc b/src/scanio/old/scan_io_ais.cc new file mode 100644 index 0000000..dfc2f61 --- /dev/null +++ b/src/scanio/old/scan_io_ais.cc @@ -0,0 +1,132 @@ +/** + * @file + * @brief Implementation of reading 3D scans + * from the Autonomous Intelligent Systems Group from the University of Freiburg + * @author Jochen Sprickerhof. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "slam6d/scan_io_ais.h" +#include "slam6d/globals.icc" +#include +using std::ifstream; +#include +using std::cout; +using std::cerr; +using std::endl; + +#ifdef _MSC_VER +#include +#endif + +/** + * Reads specified scans from given directory. + * + * Scan poses will NOT be initialized after a call + * to this function. + * + * This function actually implements loading of 3D scans + * in AIS file format and will be compiled as shared lib. + * + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param dir The directory from which to read + * @param maxDist Reads only Points up to this Distance + * @param minDist Reads only Points from this Distance + * @param euler Initital pose estimates (will not be applied to the points + * @param ptss Vector containing the read points + */ +int ScanIO_ais::readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss) +{ + static int fileCounter = start; + string scanFileName; + string poseFileName; + + ifstream scan_in, pose_in; + + double maxDist2 = sqr(maxDist); + + int my_fileNr = fileCounter; + + if (end > -1 && fileCounter > end) return -1; // 'nuf read + scanFileName = dir + "scan_" + to_string(fileCounter,3) + "_points.dat"; + poseFileName = dir + "scan_" + to_string(fileCounter,3) + "_robotPoses.dat"; + + scan_in.open(scanFileName.c_str()); + pose_in.open(poseFileName.c_str()); + + // read 3D scan + if (!pose_in.good() && !scan_in.good()) return -1; // no more files in the directory + if (!pose_in.good()) { cerr << "ERROR: Missing file " << poseFileName << endl; exit(1); } + if (!scan_in.good()) { cerr << "ERROR: Missing file " << scanFileName << endl; exit(1); } + cout << "Processing Scan " << scanFileName; + + pose_in >> euler[2] >> euler[0] >> euler[1] // x, y, z + >> euler[3] >> euler[5] >> euler[4]; // theta_x, theta_y, theta_z + + cout << " @ pose (" << euler[0] << "," << euler[1] << "," << euler[2] + << "," << euler[3] << "," << euler[4] << "," << euler[5] << ")" << endl; + + for (unsigned int i = 0; i < 3; i++) euler[i] *= 100; + + double dummy; + while (scan_in.good()) { + Point p; + try { + scan_in >> dummy >> dummy >> dummy >> p.z >> p.x >> p.y; + p.x *= 100; + p.y *= 100; + p.z *= 100; + } catch (...) { + break; + } + // load points up to a certain distance only + // maxDist2 = -1 indicates no limitation + if (maxDist == -1 || sqr(p.x) + sqr(p.y) + sqr(p.z) < maxDist2) + ptss.push_back(p); + } + scan_in.close(); + scan_in.clear(); + pose_in.close(); + pose_in.clear(); + fileCounter++; + + return my_fileNr; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_ais; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/src/scanio/old/scan_io_asc.cc b/src/scanio/old/scan_io_asc.cc new file mode 100644 index 0000000..504707b --- /dev/null +++ b/src/scanio/old/scan_io_asc.cc @@ -0,0 +1,157 @@ +/** + * @file + * @brief Implementation of reading 3D scans + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "slam6d/scan_io_asc.h" +#include "slam6d/globals.icc" +#include +using std::ifstream; +#include +using std::cerr; +using std::endl; + +#include +using std::swap; + +#ifdef _MSC_VER +#include +#endif + +/** + * Reads specified scans from given directory in + * the file format ZuF from Zoller+Froehlich AG + * uses. It will be compiled as shared lib. + * + * Scan poses will NOT be initialized after a call + * to this function. Initial pose estimation works + * only with the -p switch, i.e., trusting the initial + * estimations by Riegl. Actually, the Riegl poses + * are high precise and this function puts noise + * on it. + * + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param dir The directory from which to read + * @param maxDist Reads only Points up to this Distance + * @param minDist Reads only Points from this Distance + * @param euler Initital pose estimates (will not be applied to the points + * @param ptss Vector containing the read points + */ +int ScanIO_asc::readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss) +{ + static int fileCounter = start; + string scanFileName; + string poseFileName; + + ifstream scan_in, pose_in; + int my_fileNr = fileCounter; + + if (end > -1 && fileCounter > end) return -1; // 'nuf read + + + poseFileName = dir + "ScanPos" + to_string(fileCounter,2) + ".DAT"; + scanFileName = dir + "coordinates" + to_string(fileCounter,2) + ".asc"; + + scan_in.open(scanFileName.c_str()); + pose_in.open(poseFileName.c_str()); + // read 3D scan + + if (!pose_in.good() && !scan_in.good()) return -1; // no more files in the directory + if (!pose_in.good()) { cerr << "ERROR: Missing file " << poseFileName << endl; exit(1); } + if (!scan_in.good()) { cerr << "ERROR: Missing file " << scanFileName << endl; exit(1); } + cout << "Processing Scan " << scanFileName; + cout.flush(); + + /* + char firstline[255]; + scan_in.getline(firstline, 255); + */ + + double rPos[3] = { 0.0, 0.0, 0.0 }; + double rPosTheta[16] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }; + double inMatrix[16]; + /* + char dummy[255]; + pose_in.getline(dummy, 255); + pose_in.getline(dummy, 255); + scan_in.getline(dummy, 255); + */ + + for (unsigned int i = 0; i < 16; pose_in >> inMatrix[i++]); + + Matrix4ToEuler(inMatrix, rPosTheta, rPos); + + euler[0] = inMatrix[3]; + euler[1] = inMatrix[11]; + euler[2] = inMatrix[7]; + + euler[3] = rPosTheta[0]; + euler[4] = rPosTheta[2]; + euler[5] = rPosTheta[1]; + + cout << " @ pose (" << euler[0] << "," << euler[1] << "," << euler[2] + << "," << euler[3] << "," << euler[4] << "," << euler[5] << ")" << endl; + + while (scan_in.good()) { + Point p; + double intensity; + scan_in >> p.y >> p.z >> p.x >> intensity; + p.x *= 100; + p.y *= 100; + p.z *= 100; + if (intensity > 0) { + cout << p << endl; + ptss.push_back(p); + } + } + + cout << " done" << endl; + + scan_in.close(); + scan_in.clear(); + pose_in.close(); + pose_in.clear(); + fileCounter++; + + return my_fileNr; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_asc; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/src/scanio/old/scan_io_cad.cc b/src/scanio/old/scan_io_cad.cc new file mode 100644 index 0000000..f213bd3 --- /dev/null +++ b/src/scanio/old/scan_io_cad.cc @@ -0,0 +1,925 @@ +/** + * @file + * @brief Implementation of reading a 3D CAD model and creating a 3D + * surface sampling of it. This sampling is then used as an artificial + * 3D scan in regular scan matching + * @author Sven Albrecht. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "slam6d/scan_io_cad.h" +#include "slam6d/globals.icc" +#include +using std::ifstream; +#include +using std::cout; +using std::cerr; +using std::endl; +#include +#include + +// TODO: make eventually compatible to windoze +#include // can be changed to cstdint if -std=c++0x compiler flag is used + + +#ifdef _MSC_VER +#include +#endif + +#define BOOST_NEW_FS_API 104600 + +ScanIO_CAD::ScanIO_CAD (void) : _op_descr ("CAD Config Options") +{ + setUpOptionDescription (); +} + +/** + * Reads specified 'scans' from CAD models in a given directory. + * + * Scan poses will NOT be initialized after a call + * to this function. + * + * Each CAD model will be represented by a sampling of 3D points on the + * the surface of the CAD model. Currently the implementation is able to + * handle CAD models in the .stl file format (binary or ASCII is fine). + * In constrast to other ScanIOs only one 3D scan will be read (specified + * by parameter start). Other data is generated from the (arbitrary) named + * .stl files in the directory specified by argument dir. Parameter end is + * soley kept to satisfy the general interface. + * + * !!!!!! + * Config parameters are read from an (optional) config.txt in the scan directory. + * A config.txt with content "help = 1" will print out all possible parameters. + * !!!!!! + * + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param dir The directory from which to read + * @param maxDist Reads only Points up to this Distance + * @param minDist Reads only Points from this Distance + * @param euler Initital pose estimates (will not be applied to the points + * @param ptss Vector containing the read points + */ +int ScanIO_CAD::readScans(int start, int end, string &dir, int maxDist, int minDist, + double *euler, vector &ptss) +{ + /* + * we need to read 1 normal scan (the first one) and afterwards + * create point samplings of the CAD models + */ + static int fileCounter = start; // this is a really ugly hack... + + // check before the first scan is read for a config file + if (fileCounter == start) + { + // is there a config file ? + std::string config_file_name = dir + "config.txt"; + std::ifstream config; + config.open (config_file_name.c_str ()); + if (config.good ()) + { + // parse the config to eventually overload default parameters + parseConfig (config); + } + // else use the default parameters + + // retrieve all stl files + parseDirForAllSTL (dir); + } + + string scanFileName; + string poseFileName; + + ifstream scan_in, pose_in; + + // clear the point vector (to make sure no old garbage is contained) + ptss.clear (); + + int my_fileNr = fileCounter; + + if (end > -1 && fileCounter > end) return -1; // 'nuf read + + fs::path stl_file; + + // the first scan file name should be a .3d file + if (fileCounter == start) + { + scanFileName = dir + "scan" + to_string(fileCounter, 3) + ".3d"; + poseFileName = dir + "scan" + to_string(fileCounter, 3) + ".pose"; + } + // otherwise it should be a .stl file + else + { + // get the next stl file if the directory contains one more + if (getNextSTLFromDir (stl_file)) + { + fs::path pose_file (stl_file); + + // retrieve the the filenames according to the installed boost version +#if BOOST_VERSION < BOOST_NEW_FS_API + // change extension + pose_file.replace_extension (".pose"); + scanFileName = stl_file.directory_string (); + poseFileName = pose_file.directory_string (); +#else + // change extension + pose_file.replace_extension (fs::path (".pose")); + scanFileName = stl_file.string (); + poseFileName = pose_file.string (); +#endif + } + else + { + // aparently no stl file available anymore + return -1; + } + } + + scan_in.open(scanFileName.c_str()); + pose_in.open(poseFileName.c_str()); + + // read pose information independent from file type + // read 3D scan + if (!pose_in.good() && !scan_in.good()) return -1; // no more files in the directory + if (!pose_in.good()) { cerr << "ERROR: Missing file " << poseFileName << endl; exit(1); } + if (!scan_in.good()) { cerr << "ERROR: Missing file " << scanFileName << endl; exit(1); } + cout << "Processing Scan " << scanFileName; + + // read a 'normal' Slam6D Pose + for (unsigned int i = 0; i < 6; pose_in >> euler[i++]); + + cout << " @ pose (" << euler[0] << "," << euler[1] << "," << euler[2] + << "," << euler[3] << "," << euler[4] << "," << euler[5] << ")" << endl; + + // convert angles from deg to rad + for (unsigned int i = 3; i <= 5; i++) euler[i] = rad(euler[i]); + + if (fileCounter == start) + { + read3DScan (scan_in, maxDist, minDist, ptss); + } + else + { + bool success = createSamplingFromSTL (scan_in, ptss); + if (!success) + { + // terminate similar to missing file + exit (1); + } + if (store_cad) + { + std::string stem; + // get the string of the file-stem according to installed boost API +#if BOOST_VERSION < BOOST_NEW_FS_API + stem = stl_file.stem (); +#else + stem = stl_file.stem ().string (); +#endif + fs::path sample_file (stl_file); + // is filename scanXXX.3d ? + if (stem.substr (0, 4).compare ("scan") == 0 && + std::atoi (stem.substr (4).c_str ()) == fileCounter) + { + // replace the extension according to the installed boost API +#if BOOST_VERSION < BOOST_NEW_FS_API + sample_file.replace_extension (".3d"); +#else + sample_file.replace_extension (fs::path (".3d")); +#endif + // the appropriate .pose file already exists + } + else + { + // generate appropriate filename + std::string filename = "scan" + to_string (fileCounter, 3) + ".3d"; + sample_file.remove_filename (); + sample_file /= filename; + + // copy .pose file + fs::path orig_pose (stl_file); + fs::path copied_pose (sample_file); +#if BOOST_VERSION < BOOST_NEW_FS_API + orig_pose.replace_extension (".pose"); + copied_pose.replace_extension (".pose"); +#else + orig_pose.replace_extension (fs::path (".pose")); + copied_pose.replace_extension (fs::path (".pose")); +#endif + fs::copy_file (orig_pose, copied_pose, fs::copy_option::overwrite_if_exists); + } + // retrieve the filename according to the installed boost API +#if BOOST_VERSION < BOOST_NEW_FS_API + storeSamplingTo3D (sample_file.directory_string (), ptss); +#else + storeSamplingTo3D (sample_file.string (), ptss); +#endif + } + } + + + + // close the filestreams + scan_in.close(); + scan_in.clear(); + pose_in.close(); + pose_in.clear(); + fileCounter++; + + return my_fileNr; +} + +/** + * Helper function to read a regular UOS scan + */ +void +ScanIO_CAD::read3DScan (std::ifstream &scan_in, int maxDist, int minDist, + vector &points) +{ + // reading regular uos scan (copy & paste from scan_io_uos.cc) + // overread the first line + char dummy[255]; + scan_in.getline(dummy, 255); + double maxDist2 = sqr (maxDist); + double minDist2 = sqr (minDist); + + while (scan_in.good()) { + Point p; + try { + scan_in >> p; + } catch (...) { + break; + } + // load points up to a certain distance only + // maxDist2 = -1 indicates no limitation + if (maxDist == -1 || sqr(p.x) + sqr(p.y) + sqr(p.z) < maxDist2) + { + if (minDist == -1 || sqr(p.x) + sqr(p.y) + sqr(p.z) > minDist2) + { + points.push_back(p); + } + } + } +} + +/** + * Helper function to create a 3D point sampling for a given .stl file + */ +bool +ScanIO_CAD::createSamplingFromSTL (std::ifstream &scan_in, + vector &points) +{ + bool success; + if (hasASCIIHeader (scan_in)) + { + std::cout << "detected ASCII header, parsing file" << std::endl; + success = parseASCII (scan_in, points); + } + else + { + std::cout << "couldn't detect ASCII header, trying to parse binary" + << std::endl; + success = parseBinary (scan_in, points); + } + return success; +} + +bool +ScanIO_CAD::hasASCIIHeader (std::ifstream &scan_in) +{ + // store current get pointer position + std::streampos current_pos = scan_in. tellg (); + + bool is_ascii = true; + + /* idea: check for the keywords with have to occur at the beginning + * and the end of an ASCII .stl files + * (see http://www.ennex.com/~fabbers/StL.asp for further specs) + */ + std::string solid ("solid"); + std::string last_line; + std::string name; + std::string last_read_string; + + // go to the beginning of the ifstream + scan_in.seekg (0, std::ios::beg); + // read the first string + scan_in >> last_read_string; + if (solid.compare (last_read_string) != 0) + { + is_ascii = false; + } + if (is_ascii) + { + // read the next string (i.e. name of the stl) + scan_in >> name; + // generate expected last line + last_line = "endsolid " + name; + // set the get pointer to the correct position + scan_in.seekg (-last_line.length () - 2, std::ios::end); + scan_in >> last_read_string; + if (last_read_string.compare ("endsolid") != 0) + { + is_ascii = false; + } + if (is_ascii) + { + scan_in >> last_read_string; + if (last_read_string.compare (name) != 0) + { + is_ascii = false; + } + } + } + + // reset the position of the get pointer to its original position + scan_in.seekg (current_pos, std::ios::beg); + return is_ascii; +} + +bool +ScanIO_CAD::parseASCII (std::ifstream &scan_in, vector &points) +{ + float vertex1[3]; + float vertex2[3]; + float vertex3[3]; + float raw_data[3]; + + unsigned int line_nr = 0; + unsigned int face_counter = 0; + + float* vertices[3]; + vertices[0] = vertex1; + vertices[1] = vertex2; + vertices[2] = vertex3; + + bool success = true; + bool reached_end = false; + + // retrieve current pos of get pointer + std::ios::streampos current_pos = scan_in.tellg (); + + // set get pointer to beginning of file + scan_in.seekg (0, std::ios::beg); + + std::string read_key; + std::string tmp; + + // ignore first line, since in hasASCIIHeader () + std::getline (scan_in, read_key); + line_nr++; + + while (scan_in.good ()) + { + // read first string at current position + scan_in >> read_key; + // determine if end of file reached + if (read_key.compare ("endsolid") == 0) + { + reached_end = true; + break; + } + // otherwise check if a new face begins + if (read_key.compare ("facet") != 0 || + !scan_in.good ()) + { + // no new face -> misformated .stl + std::cout << "expected 'facet', contains '" << read_key.substr (0,5) + << "'" << std::endl; + success = false; + break; + } + // read the rest of the line (containing the normal) + getline (scan_in, read_key); + line_nr++; + + // get the next 2 strings + scan_in >> read_key; + scan_in >> tmp; + read_key += " " + tmp; + if (read_key.compare ("outer loop") != 0 || + !scan_in.good ()) + { + std::cout << "expected 'outer loop', read '" << read_key + << "' instead" << std::endl; + success = false; + break; + } + // read the rest of the line + getline (scan_in, read_key); + line_nr++; + + // read the 3 vertices + for (unsigned int i = 0; i < 3; ++i) + { + scan_in >> read_key; + line_nr++; + if (read_key.compare ("vertex") == 0) + { + // read x, y and z coordinate in this order + scan_in >> raw_data[0] >> raw_data[1] >> raw_data[2]; + // scale and order according to the specified settings + copyRawData2Vertex (raw_data, vertices[i]); + if (!scan_in.good ()) + { + success = false; + break; + } + } + else + { + success = false; + break; + } + } + // retrieve the closing tag for the vertices + scan_in >> read_key; + if (read_key.compare ("endloop") != 0 || + !scan_in.good ()) + { + success = false; + break; + } + // retrieve the rest of the current line + getline (scan_in, read_key); + line_nr++; + + // retrieve the closing tag for the face + scan_in >> read_key; + if (read_key.compare ("endfacet") != 0 || + !scan_in.good ()) + { + std::cout << "Expected 'endfacet', read '" << read_key + << "' instead" << std::endl; + success = false; + break; + } + // retrieve the rest of the line + getline (scan_in, read_key); + line_nr++; + // increment nr of read faces + face_counter++; + // create the sampling for the face + createSampingForFace (vertex1, vertex2, vertex3, points); + } + + if (!reached_end) + { + success = false; + } + + // reset position of get pointer + scan_in.seekg (current_pos, std::ios::beg); + + if (!success) + { + std::cerr << "Misformated ASCII .stl file. Parsing error in line " + << line_nr << std::endl; + } + else + { + std::cout << "Created " << points.size () << " sample points for " + << face_counter << " faces." << std::endl; + } + return success; +} + +bool +ScanIO_CAD::parseBinary (std::ifstream &scan_in, vector &points) +{ + // TODO: make eventually compatible to windoze + uint32_t nr_faces; + uint32_t face_counter = 0; + uint16_t attribute; + + float normal[3]; + float vertex1[3]; + float vertex2[3]; + float vertex3[3]; + float raw_data[3]; + + bool success; + + size_t header_size = 80; // defined in the binary .stl standard + char* header = new char[header_size]; + + // retrieve the current get pointer position + std::streampos current_pos = scan_in.tellg (); + + // jump to begin of file + scan_in.seekg (0, std::ios::beg); + + if (scan_in.is_open ()) + { + // read the header (unimportant for the sampling) + scan_in.read (header, header_size); + + // read nr of faces contained in stl file + scan_in.read ((char*) &nr_faces, 4); + + // try to read all faces + for (face_counter = 0; face_counter < nr_faces; ++face_counter) + { + if (!scan_in.good ()) + { + break; + } + + // read face normal (which we don't need) + scan_in.read ((char*) &normal, 12); + + // read the first vertex + scan_in.read ((char*) &raw_data, 12); + copyRawData2Vertex (raw_data, vertex1); + + // read the second vertex + scan_in.read ((char*) &raw_data, 12); + copyRawData2Vertex (raw_data, vertex2); + + // read the first vertex + scan_in.read ((char*) &raw_data, 12); + copyRawData2Vertex (raw_data, vertex3); + + // read the attribute (which we don't need) + scan_in.read ((char*) &attribute, 2); + + // create the sampling for the current face + createSampingForFace (vertex1, vertex2, vertex3, points); + } + } + + // check if indeed the specified number of faces could be read + if (face_counter == nr_faces) + { + success = true; + std::cout << "Created " << points.size () << " sample points for " + << nr_faces << " faces." << std::endl; + } + else + { + std::cerr << "Error parsing binary .stl file. Expected " << nr_faces + << " faces but could read only " << face_counter << std::endl; + success = false; + } + + // reset the get pointer position; + scan_in.seekg (current_pos, std::ios::beg); + + delete [] header; + return success; +} + +void +ScanIO_CAD::createSampingForFace (float* vertex1, float* vertex2, + float* vertex3, vector &points) +{ + /* + * Random sampling approach to sample a triangle: + * First compute the area of the triangle and decide how many sample + * points are needed; afterwards randomly create a number of points + * inside the triangle + */ + + // get the area of the triangle + float vector12[3]; + float vector13[3]; + float vector23[3]; + + for (unsigned int i = 0; i < 3; ++i) + { + vector12[i] = vertex2[i] - vertex1[i]; + vector13[i] = vertex3[i] - vertex1[i]; + vector23[i] = vertex3[i] - vertex2[i]; + } + + float a, b, c; + a = b = c = 0.0f; + + a = dotProd (vector12, vector12); + b = dotProd (vector13, vector13); + c = dotProd (vector23, vector23); + + a = sqrt (a); + b = sqrt (b); + c = sqrt (c); + + float s = a + b + c; + s /= 2.0f; + + float area = sqrt (s * (s - a) * (s - b) * (s - c)); + + unsigned int nr_sample_points, nr_added_points; + + nr_sample_points = area / (sample_point_dist * sample_point_dist); + nr_added_points = 0; + + if (nr_sample_points > 3) + { + points.reserve (points.size () + nr_sample_points); + + float u, v; + float point_in_triangle[3]; + + while (nr_added_points < nr_sample_points) + { + // randomly generate scalar u and v in [0,1] + u = (float) std::rand () / (float) RAND_MAX; + v = (float) std::rand () / (float) RAND_MAX; + + // check if u and v are smaller than 1.0 (i.e. point is in triangle) + if (u + v <= 1.0f) + { + for (unsigned int i = 0; i < 3; ++i) + { + point_in_triangle[i] = vertex1[i] + u * vector12[i] + v * vector13[i]; + } + points.push_back (Point (point_in_triangle[0], + point_in_triangle[1], point_in_triangle[2])); + nr_added_points++; + } + } + } + // for a small face just add the corners to the sample points + else + { + points.reserve (points.size () + 3); + points.push_back (Point (vertex1[0], vertex1[1], vertex1[2])); + points.push_back (Point (vertex2[0], vertex2[1], vertex2[2])); + points.push_back (Point (vertex3[0], vertex3[1], vertex3[2])); + } +} + +void +ScanIO_CAD::storeSamplingTo3D (std::string filename, vector &points) +{ + std::ofstream sample_file (filename.c_str ()); + + // write header + sample_file << "# artificial scan from cad model '" << filename + << "', containing " << points.size () << " sample points" << std::endl; + // write all points + vector::const_iterator it = points.begin (); + while (it != points.end ()) + { + sample_file << *it++ << std::endl; + } + + sample_file.flush (); + sample_file.close (); +} + +float +ScanIO_CAD::dotProd (const float* vec1, const float* vec2) +{ + return vec1[0] * vec2[0] + vec1[1] * vec2[1] + vec1[2] * vec2[2]; +} + +void +ScanIO_CAD::parseConfig (std::ifstream &config) +{ + try + { + po::store (po::parse_config_file (config, _op_descr), _vmap); + } + catch (std::exception &e) + { + std::cout << "illegal parameter in config file:" << std::endl + << e.what () << std::endl << std::endl; + std::cout << "The following options are available:" << std::endl; + std::cout << _op_descr << std::endl; + config.close (); + exit (-1); + } + catch (...) + { + std::cerr << "this line shouldn't have been reached ever" << std::endl; + config.close (); + exit (-2); + } + + po::notify (_vmap); + + if (_vmap.count ("help")) + { + std::cout << _op_descr << std::endl; + // when help is enabled we'll just exit + exit (1); + } + std::cout << "'store_cad' "; + if (store_cad) + std::cout << "was set to true"; + else + std::cout << "was set to false"; + std::cout << endl; + + if (x_index == y_index) + { + std::cout << "Warning: x_index = y_index = " << x_index << std::endl; + } + if (x_index == z_index) + { + std::cout << "Warning: x_index = z_index = " << x_index << std::endl; + } + if (y_index == z_index) + { + std::cout << "Warning: y_index = z_index = " << y_index << std::endl; + } + + if (fabs (x_scale - STD_X_SCALE) > std::numeric_limits::epsilon () || + fabs (y_scale - STD_Y_SCALE) > std::numeric_limits::epsilon () || + fabs (z_scale - STD_Z_SCALE) > std::numeric_limits::epsilon ()) + { + this->individual_scale = true; + } + else + { + this->individual_scale = false; + } + + config.close (); +} + + +void +ScanIO_CAD::copyRawData2Vertex (float *raw_data, float *vertex) +{ + // copy the raw data to the desired positions + vertex[0] = raw_data[x_index]; + vertex[1] = raw_data[y_index]; + vertex[2] = raw_data[z_index]; + + // any axis to be inverted in the data converted to scan coords? + if (invert_x) + vertex[0] *= -1.0f; + if (invert_y) + vertex[1] *= -1.0f; + if (invert_z) + vertex[2] *= -1.0f; + + // scale with individual scale_factor + if (individual_scale) + { + vertex[0] *= x_scale; + vertex[1] *= y_scale; + vertex[2] *= z_scale; + // scale additionally with general scale factor + if (combine_scales) + { + vertex[0] *= scale_factor; + vertex[1] *= scale_factor; + vertex[2] *= scale_factor; + } + } + // scale with the general scale factor + else + { + vertex[0] *= scale_factor; + vertex[1] *= scale_factor; + vertex[2] *= scale_factor; + } +} + +void +ScanIO_CAD::setUpOptionDescription (void) +{ + // just something for a little nicer output formating + std::stringstream x_ss; + x_ss << STD_X_SCALE; + std::stringstream y_ss; + y_ss << STD_Y_SCALE; + std::stringstream z_ss; + z_ss << STD_Z_SCALE; + std::stringstream scale_ss; + scale_ss << STD_SCALE_FACTOR; + + // set up the options descriptions + _op_descr.add_options () + ("help", "produce this help message") + ("store_cad", + po::value (&store_cad)->default_value (STD_STORE_CAD), + "determine storage of sampled cad") + ("sample_dist", + po::value (&sample_point_dist)->default_value (STD_SAMPLE_DIST), + "approximate distance of sample points") + ("random_sampling", + po::value (&random_sampling)->default_value (STD_RND_SAMP), + "enables/diables random surface sampling") + ("x_index", + po::value (&x_index)->default_value (STD_X_INDEX), + "array index for the x coordinate (default should work for UOS scans)") + ("y_index", + po::value (&y_index)->default_value (STD_Y_INDEX), + "array index for the y coordinate (default should work for UOS scans)") + ("z_index", + po::value (&z_index)->default_value (STD_Z_INDEX), + "array index for the z coordinate (default should work for UOS scans)") + ("scale_factor", + po::value (&scale_factor)->default_value (STD_SCALE_FACTOR, + scale_ss.str ()), + "set general scale factor for x-, y- and z-axis") + ("x_scale", + po::value (&x_scale)->default_value (STD_X_SCALE, x_ss.str ()), + "scale factor to convert the x coordinate of the CAD models to scan scale") + ("y_scale", + po::value (&y_scale)->default_value (STD_Y_SCALE, y_ss.str ()), + "scale factor to convert the y coordinate of the CAD models to scan scale") + ("z_scale", + po::value (&z_scale)->default_value (STD_Z_SCALE, z_ss.str ()), + "scale factor to convert the z coordinate of the CAD models to scan scale") + ("combine_scales", + po::value (&combine_scales)->default_value (STD_COMBINE_SCALES), + "enables combining of general scale factor and individual scale factors") + ("invert_x", + po::value (&invert_x)->default_value (STD_INVERT_AXIS), + "inverts the direction of the CAD models x-axis") + ("invert_y", + po::value (&invert_y)->default_value (STD_INVERT_AXIS), + "inverts the direction of the CAD models y-axis") + ("invert_z", + po::value (&invert_z)->default_value (STD_INVERT_AXIS), + "inverts the direction of the CAD models z-axis") + ; +} + +void +ScanIO_CAD::parseDirForAllSTL (std::string &directory_name) +{ + // make sure nothing is stored in the stl file vector + _stl_files.clear (); + + // get a directory iterator to mark the end of the directory + fs::path dir (directory_name); + fs::directory_iterator end; + + // iterate over the complete directory + for (fs::directory_iterator pos (dir); pos != end; ++pos) + { + if (fs::is_regular_file (*pos)) + { + std::string extension; + // retrieve the extension string according to the installed boost API +#if BOOST_VERSION < BOOST_NEW_FS_API + extension = pos->path ().extension (); +#else + extension = pos->path ().extension ().string (); +#endif + std::for_each (extension.begin (), extension.end (), ::tolower); + + // add all stl files into the vector + if (extension.compare (".stl") == 0) + { + _stl_files.push_back ((*pos)); + } + } + } + _stl_files_pos = 0; +} + + +bool +ScanIO_CAD::getNextSTLFromDir (fs::path &stl_file) +{ + if (_stl_files_pos < _stl_files.size ()) + { + stl_file = _stl_files[_stl_files_pos++]; + return true; + } + // return an empty path + stl_file = fs::path (); + return false; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_CAD; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/src/scanio/old/scan_io_front.cc b/src/scanio/old/scan_io_front.cc new file mode 100644 index 0000000..d8b9e35 --- /dev/null +++ b/src/scanio/old/scan_io_front.cc @@ -0,0 +1,138 @@ +/** + * @file + * @brief Implementation of reading 3D scans + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "slam6d/scan_io_front.h" +#include "slam6d/globals.icc" +#include +using std::ifstream; +#include +using std::cerr; +using std::endl; + +#ifdef _MSC_VER +#include +#endif + +/** + * Reads specified scans from given directory. + * + * Scan poses will NOT be initialized after a call + * to this function. + * + * This function actually implements loading of 3D scans + * in UOS file format and will be compiled as shared lib. + * + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param dir The directory from which to read + * @param maxDist Reads only Points up to this Distance + * @param minDist Reads only Points from this Distance + * @param euler Initital pose estimates (will not be applied to the points + * @param ptss Vector containing the read points + */ +int ScanIO_front::readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss) +{ + static int fileCounter = start; + string scanFileName; + string poseFileName; + + ifstream scan_in, pose_in; + + double maxDist2 = sqr(maxDist); + + int my_fileNr = fileCounter; + + if (end > -1 && fileCounter > end) return -1; // 'nuf read + scanFileName = dir + "Front" + to_string(fileCounter,6) + ".dat"; + // poseFileName = dir + "scan" + to_string(fileCounter,3) + ".pose"; + + scan_in.open(scanFileName.c_str()); + // pose_in.open(poseFileName.c_str()); + + // read 3D scan + if ( //!pose_in.good() && + !scan_in.good()) return -1; // no more files in the directory + // if (!pose_in.good()) { cerr << "ERROR: Missing file " << poseFileName << endl; exit(1); } + if (!scan_in.good()) { cerr << "ERROR: Missing file " << scanFileName << endl; exit(1); } + cout << "Processing Scan " << scanFileName; + + for (unsigned int i = 0; i < 6; euler[i++] = 0.0); + + cout << " @ pose (" << euler[0] << "," << euler[1] << "," << euler[2] + << "," << euler[3] << "," << euler[4] << "," << euler[5] << ")" << endl; + + // convert angles from deg to rad + for (unsigned int i = 3; i <= 5; i++) euler[i] = rad(euler[i]); + + // overread the first line + char dummy[255]; + scan_in.getline(dummy, 255); + scan_in.getline(dummy, 255); + + while (scan_in.good()) { + double ddummy; + double pp[3]; + try { + scan_in >> ddummy >> dummy >> pp[0] >> pp[2]; + // pp[0] *= 0.1; + // pp[2] *= 0.1; + pp[1] = 0.0; + } catch (...) { + break; + } + Point p(pp); + // load points up to a certain distance only + // maxDist2 = -1 indicates no limitation + if (maxDist == -1 || sqr(p.x) + sqr(p.y) + sqr(p.z) < maxDist2) + ptss.push_back(p); + } + scan_in.close(); + scan_in.clear(); + pose_in.close(); + pose_in.clear(); + fileCounter++; + + return my_fileNr; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_front; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/src/scanio/old/scan_io_iais.cc b/src/scanio/old/scan_io_iais.cc new file mode 100644 index 0000000..c8a7230 --- /dev/null +++ b/src/scanio/old/scan_io_iais.cc @@ -0,0 +1,138 @@ +#include "slam6d/scan_io_iais.h" +#include "slam6d/globals.icc" +#include +using std::ifstream; +#include +using std::cerr; +using std::endl; + +#ifdef _MSC_VER +#include +#endif + +/** + * Reads specified scans from given directory. + * + * Scan poses will NOT be initialized after a call + * to this function. + * + * + * @param s 3D Scan to be read. The vector of points must be filled + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param maxDist Reads only Points up to this Distance + * @param dir The directory from which to read + */ +int ScanIO_iais::readScans(int start, int end, string &dir, + int maxDist, int minDist, + double *euler, vector &ptss) +{ + static int fileCounter = start; + static string poseFileName; + string scanFileName; + + double maxDist2 = sqr(maxDist); + + double matrix[16]; + + static ifstream pose_in; + ifstream scan_in; + + if (fileCounter > end) return -1; + + if (fileCounter == start) { + poseFileName = dir + "poses_abs_with_start.txt"; + pose_in.open(poseFileName.c_str()); + if (!pose_in.good()) { cerr << "ERROR: Missing file " << poseFileName << endl; exit(1); } + for (int i = 0; i < start; i++) { + pose_in >> matrix[0] >> matrix[1] >> matrix[2] >> matrix[12] + >> matrix[4] >> matrix[5] >> matrix[6] >> matrix[13] + >> matrix[8] >> matrix[9] >> matrix[10] >> matrix[14]; + // >> matrix[12] >> matrix[13] >> matrix[14]; + matrix[15] = 1.0; + matrix[3] = matrix[7] = matrix[11] = 0.0; + } + } + + pose_in >> matrix[0] >> matrix[1] >> matrix[2] >> matrix[12] + >> matrix[4] >> matrix[5] >> matrix[6] >> matrix[13] + >> matrix[8] >> matrix[9] >> matrix[10] >> matrix[14]; + // >> matrix[12] >> matrix[13] >> matrix[14]; + matrix[15] = 1.0; + matrix[3] = matrix[7] = matrix[11] = 0.0; + + Matrix4ToEuler(matrix, euler+3, euler); + euler[3] *= -1.0; + euler[5] *= -1.0; + + if (end > -1 && fileCounter > end) return -1; // 'nuf read + scanFileName = dir + "scan" + to_string(fileCounter,3) + ".3d"; + + scan_in.open(scanFileName.c_str()); + + // read 3D scan + // no more files in the directory + if (!scan_in.good()) { cerr << "ERROR: Missing file " << scanFileName << endl; exit(1); } + cout << "Processing Scan " << scanFileName; + + cout << " @ pose (" << euler[0] << "," << euler[1] << "," << euler[2] + << "," << deg(euler[3]) << "," << deg(euler[4]) << "," << deg(euler[5]) << ")" << endl; + + // overread the first line + char dummy[255]; + scan_in.getline(dummy, 255); + + while (scan_in.good()) { + Point p; + try { + scan_in >> p; + } catch (...) { + break; + } + // load points up to a certain distance only + // maxDist2 = -1 indicates no limitation + if (maxDist == -1 || sqr(p.x) + sqr(p.y) + sqr(p.z) < maxDist2) + ptss.push_back(p); + } + scan_in.close(); + scan_in.clear(); + fileCounter++; + + return fileCounter-1; +} + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_iais; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/src/scanio/old/scan_io_ifp.cc b/src/scanio/old/scan_io_ifp.cc new file mode 100644 index 0000000..5dc1b50 --- /dev/null +++ b/src/scanio/old/scan_io_ifp.cc @@ -0,0 +1,145 @@ +/** + * @file + * @brief Implementation of reading 3D scans + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "slam6d/scan_io_ifp.h" +#include "slam6d/globals.icc" +#include +using std::ifstream; +#include +using std::cerr; +using std::endl; + +#ifdef _MSC_VER +#include +#endif + +/** + * Reads specified scans from given directory. + * + * Scan poses will NOT be initialized after a call + * to this function. + * + * + * @param s 3D Scan to be read. The vector of points must be filled + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param maxDist Reads only Points up to this Distance + * @param dir The directory from which to read + */ +int ScanIO_ifp::readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss) +{ + static int fileCounter = start; + string scanFileName; + string poseFileName; + ifstream scan_in, pose_in; + + int my_fileNr = fileCounter; + + if (end > -1 && fileCounter > end) return -1; // 'nuf read + + scanFileName = dir + "ScanWorld " + to_string(fileCounter) + ".pts"; + scan_in.open(scanFileName.c_str()); + // read 3D scan + + if (!scan_in.good()) { + scanFileName = dir + "SW" + to_string(fileCounter) + ".pts"; + scan_in.open(scanFileName.c_str()); + } + if (!scan_in.good()) { + return -1; + } + cout << "Processing Scan " << scanFileName; + + euler[0] = euler[1] = euler[2] = euler[3] = euler[4] = euler[5] = 0.0; + + cout << " @ pose (" << euler[0] << "," << euler[1] << "," << euler[2] + << "," << euler[3] << "," << euler[4] << "," << euler[5] << ")" << endl; + + // convert angles from deg to rad + for (unsigned int i = 3; i <= 5; i++) euler[i] = rad(euler[i]); + + // some noise for the pose estimations + /* + double t1 = (double)(rand() % 100); + double t2 = (double)(rand() % 100); + double t3 = (double)(rand() % 100); + double t4 = (double)(rand() % 5) * 0.025; + euler[4] = t4; + + cout << "dx " << t1 << " dy " << t2 << " dz " << t3 << " dtheta_y " << t4 << endl; + */ + + int dummy; + scan_in >> dummy; + while (scan_in.good()) { + Point p; + int intensity, red, green, blue; + scan_in >> p.z >> p.x >> p.y >> intensity >> red >> green >> blue; + + p.z -= 3515165; + p.x -= 5407003; + p.y -= 254; + + p.x *= -100; + p.y *= 100; + p.z *= 100; + + /* + p.z += t1; + p.x += t2; + p.y += t3; + */ + //cout << p << endl; + ptss.push_back(p); + } + + scan_in.close(); + scan_in.clear(); + pose_in.close(); + pose_in.clear(); + fileCounter++; + + return my_fileNr; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_ifp; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/src/scanio/old/scan_io_ks.cc b/src/scanio/old/scan_io_ks.cc new file mode 100644 index 0000000..6d9638b --- /dev/null +++ b/src/scanio/old/scan_io_ks.cc @@ -0,0 +1,167 @@ +/** + * @file + * @brief Implementation of reading 3D scans + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "slam6d/scan_io_ks.h" +#include "slam6d/globals.icc" +#include +using std::ifstream; +#include +using std::cout; +using std::cerr; +using std::endl; + +#ifdef _MSC_VER +#include +#endif + +/** + * Reads specified scans from given directory. + * + * Scan poses will NOT be initialized after a call + * to this function. + * + * This function actually implements loading of 3D scans + * in UOS file format and will be compiled as shared lib. + * + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param dir The directory from which to read + * @param maxDist Reads only Points up to this Distance + * @param mindist Reads only Points from this Distance + * @param euler Initital pose estimates (will not be applied to the points + * @param ptss Vector containing the read points + */ +int ScanIO_ks::readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss) +{ + static int fileCounter = start; + string scanFileName; + string poseFileName; + + ifstream scan_in, pose_in; + + double maxDist2 = sqr(maxDist); + double minDist2 = sqr(mindist); + + int my_fileNr = fileCounter; + + if (end > -1 && fileCounter > end) return -1; // 'nuf read + scanFileName = dir + "ScanPos" + to_string(fileCounter,3) + " - Scan001.txt"; + poseFileName = dir + "scan" + to_string(fileCounter,3) + ".pose"; + + scan_in.open(scanFileName.c_str()); + pose_in.open(poseFileName.c_str()); + + // read 3D scan + if (!pose_in.good() && !scan_in.good()) return -1; // no more files in the directory + if (!scan_in.good()) return -1; // no more files in the directory + if (!pose_in.good()) { cerr << "ERROR: Missing file " << poseFileName << endl; exit(1); } + if (!scan_in.good()) { cerr << "ERROR: Missing file " << scanFileName << endl; exit(1); } + cout << "Processing Scan " << scanFileName; + + for (unsigned int i = 0; i < 6; pose_in >> euler[i++]); + + // CAD map -> pose correction: + + double tmp; + tmp = euler[0]; + euler[0] = -euler[2]; + euler[2] = tmp; + + euler[0] *= 100; + euler[1] *= 100; + euler[2] *= 100; + + + cout << " @ pose (" << euler[0] << "," << euler[1] << "," << euler[2] + << "," << euler[3] << "," << euler[4] << "," << euler[5] << ")" << endl; + + // convert angles from deg to rad + for (unsigned int i = 3; i <= 5; i++) euler[i] = rad(euler[i]); + + // overread the first line + char dummy[255]; + scan_in.getline(dummy, 255); + + // format: X[m] Y[m] Z[m] R[0..1] G[0..1] B[0..1] Amplitude[0..1] Reflectance[] + while (scan_in.good()) { + Point p; + try { + scan_in >> p.x; + scan_in >> p.z; + scan_in >> p.y; + /* + scan_in >> r; + scan_in >> g; + scan_in >> b; + scan_in >> p.amplitude; + scan_in >> p.reflectance; + */ + + // const offset (heaven only knows why) + p.x -= 70000.0; + p.z -= 20000.0; + + // m -> cm + p.x *= 100.0; + p.y *= 100.0; + p.z *= 100.0; + + } catch (...) { + break; + } + // load points up to a certain distance only + // maxDist2 = -1 indicates no limitation + if (maxDist == -1 || sqr(p.x) + sqr(p.y) + sqr(p.z) < maxDist2) + if (mindist == -1 || sqr(p.x) + sqr(p.y) + sqr(p.z) > minDist2) + ptss.push_back(p); + } + scan_in.close(); + scan_in.clear(); + pose_in.close(); + pose_in.clear(); + fileCounter++; + + return my_fileNr; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_ks; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/src/scanio/old/scan_io_ks_rgb.cc b/src/scanio/old/scan_io_ks_rgb.cc new file mode 100644 index 0000000..700d855 --- /dev/null +++ b/src/scanio/old/scan_io_ks_rgb.cc @@ -0,0 +1,158 @@ +/** + * @file + * @brief Implementation of reading 3D scans + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "slam6d/scan_io_ks_rgb.h" +#include "slam6d/globals.icc" +#include +using std::ifstream; +#include +using std::cout; +using std::cerr; +using std::endl; + +#ifdef _MSC_VER +#include +#endif + +/** + * Reads specified scans from given directory. + * + * Scan poses will NOT be initialized after a call + * to this function. + * + * This function actually implements loading of 3D scans + * in UOS file format and will be compiled as shared lib. + * + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param dir The directory from which to read + * @param maxDist Reads only Points up to this Distance + * @param mindist Reads only Points from this Distance + * @param euler Initital pose estimates (will not be applied to the points + * @param ptss Vector containing the read points + */ +int ScanIO_ks_rgb::readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss) +{ + static int fileCounter = start; + string scanFileName; + string poseFileName; + + ifstream scan_in, pose_in; + + double maxDist2 = sqr(maxDist); + double minDist2 = sqr(mindist); + + int my_fileNr = fileCounter; + + if (end > -1 && fileCounter > end) return -1; // 'nuf read + scanFileName = dir + "Color_ScanPos" + to_string(fileCounter,3) + " - Scan001.txt"; + poseFileName = dir + "scan" + to_string(fileCounter,3) + ".pose"; + + scan_in.open(scanFileName.c_str()); + pose_in.open(poseFileName.c_str()); + + // read 3D scan + if (!pose_in.good() && !scan_in.good()) return -1; // no more files in the directory + if (!scan_in.good()) return -1; // no more files in the directory + if (!pose_in.good()) { cerr << "ERROR: Missing file " << poseFileName << endl; exit(1); } + if (!scan_in.good()) { cerr << "ERROR: Missing file " << scanFileName << endl; exit(1); } + cout << "Processing Scan " << scanFileName; + + for (unsigned int i = 0; i < 6; pose_in >> euler[i++]); + + cout << " @ pose (" << euler[0] << "," << euler[1] << "," << euler[2] + << "," << euler[3] << "," << euler[4] << "," << euler[5] << ")" << endl; + + // convert angles from deg to rad + for (unsigned int i = 3; i <= 5; i++) euler[i] = rad(euler[i]); + + // overread the first line + char dummy[255]; + scan_in.getline(dummy, 255); + + // format: X[m] Y[m] Z[m] R[0..1] G[0..1] B[0..1] Amplitude[0..1] Reflectance[] + float r, g, b; + while (scan_in.good()) { + Point p; + try { + scan_in >> p.x; + scan_in >> p.z; + scan_in >> p.y; + + scan_in >> r; + scan_in >> g; + scan_in >> b; + scan_in >> p.amplitude; + scan_in >> p.reflectance; + + // that's REALLY not the best way to deal with a fixed offset... well, quick hack! ;-) + // seems to hold for all of their scans + p.x -= 70000.0; + p.z -= 20000.0; + + p.x *= 100.0; + p.y *= 100.0; + p.z *= 100.0; + + p.rgb[0] = (char)(r * 255.0); + p.rgb[1] = (char)(g * 255.0); + p.rgb[2] = (char)(b * 255.0); + } catch (...) { + break; + } + // load points up to a certain distance only + // maxDist2 = -1 indicates no limitation + if (maxDist == -1 || sqr(p.x) + sqr(p.y) + sqr(p.z) < maxDist2) + if (mindist == -1 || sqr(p.x) + sqr(p.y) + sqr(p.z) > minDist2) + ptss.push_back(p); + } + scan_in.close(); + scan_in.clear(); + pose_in.close(); + pose_in.clear(); + fileCounter++; + + return my_fileNr; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_ks_rgb; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/src/scanio/old/scan_io_leica_txt.cc b/src/scanio/old/scan_io_leica_txt.cc new file mode 100644 index 0000000..e140757 --- /dev/null +++ b/src/scanio/old/scan_io_leica_txt.cc @@ -0,0 +1,139 @@ +/** + * @file + * @brief Implementation of reading 3D scans + * @author Sven Albrecht. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "slam6d/scan_io_leica_txt.h" +#include "slam6d/globals.icc" +#include +using std::ifstream; +#include +using std::cout; +using std::cerr; +using std::endl; + +#ifdef _MSC_VER +#include +#endif + +/** + * Reads specified scans from given directory. + * + * Scan poses will NOT be initialized after a call + * to this function. + * + * This function actually implements loading of 3D scan in the leica + * format. This resembles the UOS + reflectance file format (see + * scan_io_xyzr) but features a flipped y-axis (height) and will be + * compiled as shared lib. + * + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param dir The directory from which to read + * @param maxDist Reads only Points up to this Distance + * @param minDist Reads only Points from this Distance + * @param euler Initital pose estimates (will not be applied to the points + * @param ptss Vector containing the read points + */ +int ScanIO_leica_txt::readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss) +{ + static int fileCounter = start; + string scanFileName; + string poseFileName; + + ifstream scan_in, pose_in; + + double maxDist2 = sqr(maxDist); + + int my_fileNr = fileCounter; + + if (end > -1 && fileCounter > end) return -1; // 'nuf read + scanFileName = dir + "scan" + to_string(fileCounter,3) + ".3d"; + poseFileName = dir + "scan" + to_string(fileCounter,3) + ".pose"; + + scan_in.open(scanFileName.c_str()); + pose_in.open(poseFileName.c_str()); + + // read 3D scan + if (!pose_in.good() && !scan_in.good()) return -1; // no more files in the directory + if (!pose_in.good()) { cerr << "ERROR: Missing file " << poseFileName << endl; exit(1); } + if (!scan_in.good()) { cerr << "ERROR: Missing file " << scanFileName << endl; exit(1); } + cout << "Processing Scan " << scanFileName; + + for (unsigned int i = 0; i < 6; pose_in >> euler[i++]); + + cout << " @ pose (" << euler[0] << "," << euler[1] << "," << euler[2] + << "," << euler[3] << "," << euler[4] << "," << euler[5] << ")" << endl; + + // convert angles from deg to rad + for (unsigned int i = 3; i <= 5; i++) euler[i] = rad(euler[i]); + + // overread the first line + char dummy[255]; + scan_in.getline(dummy, 255); + double x, y, z; + + while (scan_in.good()) { + Point p; + try { + scan_in >> x >> z >> y; + x *= 100.0; + y *= 100.0; + z *= 100.0; + p = Point (x, y, z); + scan_in >> p.reflectance; + } catch (...) { + break; + } + // load points up to a certain distance only + // maxDist2 = -1 indicates no limitation + if (maxDist == -1 || sqr(p.x) + sqr(p.y) + sqr(p.z) < maxDist2) + ptss.push_back(p); + } + scan_in.close(); + scan_in.clear(); + pose_in.close(); + pose_in.clear(); + fileCounter++; + + return my_fileNr; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_leica_txt; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/src/scanio/old/scan_io_oct.cc b/src/scanio/old/scan_io_oct.cc new file mode 100644 index 0000000..ce7b0bb --- /dev/null +++ b/src/scanio/old/scan_io_oct.cc @@ -0,0 +1,114 @@ +/** + * @file + * @brief Implementation of reading 3D scans + * @author Jan Elsberg. Automation Group, Jacobs University Bremen gGmbH, Germany. + */ +#include "slam6d/Boctree.h" +#include "slam6d/scan_io_oct.h" +#include "slam6d/globals.icc" +#include +using std::ifstream; +#include +using std::cout; +using std::cerr; +using std::endl; + +#ifdef _MSC_VER +#include +#endif + +/** + * Reads specified scans from given directory. + * + * Scan poses will NOT be initialized after a call + * to this function. + * + * This function actually implements loading of 3D scans + * in oct-file format and will be compiled as shared lib. + * + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param dir The directory from which to read + * @param maxDist Reads only Points up to this Distance + * @param minDist Reads only Points from this Distance + * @param euler Initital pose estimates (will not be applied to the points + * @param ptss Vector containing the read points + */ +int ScanIO_oct::readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss) +{ + static int fileCounter = start; + string scanFileName; + string poseFileName; + + ifstream pose_in; + + //double maxDist2 = sqr(maxDist); + + int my_fileNr = fileCounter; + + if (end > -1 && fileCounter > end) return -1; // 'nuf read + scanFileName = dir + "scan" + to_string(fileCounter,3) + ".oct"; + poseFileName = dir + "scan" + to_string(fileCounter,3) + ".pose"; + +// scan_in.open(scanFileName.c_str()); + pose_in.open(poseFileName.c_str()); + + // read 3D scan + if (!pose_in.good() ) return -1; // no more files in the directory + if (!pose_in.good()) { cerr << "ERROR: Missing file " << poseFileName << endl; exit(1); } + cout << "Processing Scan " << scanFileName; + + for (unsigned int i = 0; i < 6; pose_in >> euler[i++]); + + cout << " @ pose (" << euler[0] << "," << euler[1] << "," << euler[2] + << "," << euler[3] << "," << euler[4] << "," << euler[5] << ")" << endl; + + // convert angles from deg to rad + for (unsigned int i = 3; i <= 5; i++) euler[i] = rad(euler[i]); + + BOctTree::deserialize(scanFileName, ptss); + + pose_in.close(); + pose_in.clear(); + fileCounter++; + + return my_fileNr; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_oct; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/src/scanio/old/scan_io_old.cc b/src/scanio/old/scan_io_old.cc new file mode 100644 index 0000000..3a87689 --- /dev/null +++ b/src/scanio/old/scan_io_old.cc @@ -0,0 +1,190 @@ +/** + * @file + * @brief Implementation of reading 3D scans + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "slam6d/scan_io_old.h" +#include "slam6d/globals.icc" +#include +using std::ifstream; + +#ifdef _MSC_VER +#include +#endif + +/** + * Reads specified scans from given directory in + * the old file format Kurt3D uses. It will be compiled + * as shared lib. + * + * Scan poses will NOT be initialized after a call + * to this function. + * + * + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param dir The directory from which to read + * @param maxDist Reads only Points up to this Distance + * @param minDist Reads only Points from this Distance + * @param euler Initital pose estimates (will not be applied to the points + * @param ptss Vector containing the read points + */ +int ScanIO_old::readScans(int start, int end, string &dir, + int maxDist, int minDist, + double *euler, vector &ptss) +{ + static int fileCounter = start; + string poseFileName; + string scanFileName; + + int my_fileNr = fileCounter; + + ifstream scan_in, pose_in; + + if (end > -1 && fileCounter > end) return -1; + poseFileName = dir + to_string(fileCounter,3) + "/position.dat"; + + pose_in.open(poseFileName.c_str()); + // read 3D scan + + if (!pose_in.good()) return -1; // no more files in the directory + cout << "Processing Scan " << dir << to_string(fileCounter, 3); + + for (unsigned int i = 0; i < 6; pose_in >> euler[i++]); + + // convert mm to cm + for (unsigned int i = 0; i < 3; i++) euler[i] = euler[i] * 0.1; + + // convert angles from deg to rad + for (unsigned int i = 3; i <= 5; i++) { + euler[i] *= 0.01; + // if (euler[i] < 0.0) euler[i] += 360; + euler[i] = rad(euler[i]); + } + // euler[4] *= -1.0; + + + cout << " @ pose (" << euler[0] << "," << euler[1] << "," << euler[2] + << "," << deg(euler[3]) << "," << deg(euler[4]) << "," << deg(euler[5]) << ")" << endl; + + for (int i = 1; ; i++) { + scanFileName = dir + to_string(fileCounter, 3) + "/scan" + to_string(i) + ".dat"; + scan_in.open(scanFileName.c_str()); + if (!scan_in.good()) { + scan_in.close(); + scan_in.clear(); + break; + } + + int Nr = 0, intensity_flag = 0; + int D; + double current_angle; + double X, Z, I; // x,z coordinate and intensity + + char firstLine[81]; + scan_in.getline(firstLine, 80); + + char cNr[4]; + cNr[0] = firstLine[2]; + cNr[1] = firstLine[3]; + cNr[2] = firstLine[4]; + cNr[3] = 0; + Nr = atoi(cNr); + + // determine weather we have the new files with intensity information + if (firstLine[16] != 'i') { + intensity_flag = 1; + char cAngle[8]; + cAngle[0] = firstLine[35]; + cAngle[1] = firstLine[36]; + cAngle[2] = firstLine[37]; + cAngle[3] = firstLine[38]; + cAngle[4] = firstLine[39]; + cAngle[5] = firstLine[40]; + cAngle[6] = firstLine[41]; + cAngle[7] = 0; + current_angle = atof(cAngle); + cout << current_angle << endl; + } else { + intensity_flag = 0; + char cAngle[8]; + cAngle[0] = firstLine[54]; + cAngle[1] = firstLine[55]; + cAngle[2] = firstLine[56]; + cAngle[3] = firstLine[57]; + cAngle[4] = firstLine[58]; + cAngle[5] = firstLine[59]; + cAngle[6] = firstLine[60]; + cAngle[7] = 0; + current_angle = atof(cAngle); + } + + double cos_currentAngle = cos(rad(current_angle)); + double sin_currentAngle = sin(rad(current_angle)); + + for (int j = 0; j < Nr; j++) { + if (!intensity_flag) { + scan_in >> X >> Z >> D >> I; + } else { + scan_in >> X >> Z; + I = 1.0; + } + if (maxDist != -1 && D > maxDist) continue; + if (minDist != -1 && D < minDist) continue; + // calculate 3D coordinates (local coordinates) + Point p; + p.x = X; + p.y = Z * sin_currentAngle; + p.z = Z * cos_currentAngle; + + ptss.push_back(p); + } + scan_in.close(); + scan_in.clear(); + } + + pose_in.close(); + pose_in.clear(); + fileCounter++; + + return my_fileNr; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_old; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/src/scanio/old/scan_io_pci.cc b/src/scanio/old/scan_io_pci.cc new file mode 100644 index 0000000..39cb93e --- /dev/null +++ b/src/scanio/old/scan_io_pci.cc @@ -0,0 +1,175 @@ +/** + * @file + * @brief Implementation of reading 3D scans + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "slam6d/scan_io_pci.h" +#include "slam6d/globals.icc" +#include +using std::ifstream; +#include +using std::cout; +using std::cerr; +using std::endl; + +#ifdef _MSC_VER +#include +#endif + +/** + * Reads specified scans from given directory. + * + * Scan poses will NOT be initialized after a call + * to this function. + * + * This function actually implements loading of 3D scans + * in UOS file format and will be compiled as shared lib. + * + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param dir The directory from which to read + * @param maxDist Reads only Points up to this Distance + * @param mindist Reads only Points from this Distance + * @param euler Initital pose estimates (will not be applied to the points + * @param ptss Vector containing the read points + */ +int ScanIO_pci::readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss) +{ + static int fileCounter = start; + string scanFileName; + string poseFileName; + + ifstream scan_in, pose_in; + + double maxDist2 = sqr(maxDist); + double minDist2 = sqr(mindist); + + int my_fileNr = fileCounter; + + if (end > -1 && fileCounter > end) return -1; // 'nuf read + + // read 3D scan + poseFileName = dir + "scan" + to_string(fileCounter,4) + ".pose"; + scanFileName = dir + "scan" + to_string(fileCounter,4) + ".pci"; + scan_in.open(scanFileName.c_str()); + if (!scan_in.good()) { + cerr << "ERROR: Missing file" << scanFileName << endl; + scan_in.close(); + return -1; + } + + pose_in.open(poseFileName.c_str()); + double inMatrix[16], tMatrix[16]; + double rPosTheta[3], rPos[3]; + if (!pose_in.good()) { + cerr << "using default pose 0,0,0 !!!" << endl; + M4identity(inMatrix); + } else { + for (unsigned int i = 0; i < 16; pose_in >> inMatrix[i++]); + } + + // transform input pose + tMatrix[0] = inMatrix[5]; + tMatrix[1] = -inMatrix[9]; + tMatrix[2] = -inMatrix[1]; + tMatrix[3] = -inMatrix[13]; + tMatrix[4] = -inMatrix[6]; + tMatrix[5] = inMatrix[10]; + tMatrix[6] = inMatrix[2]; + tMatrix[7] = inMatrix[14]; + tMatrix[8] = -inMatrix[4]; + tMatrix[9] = inMatrix[8]; + tMatrix[10] = inMatrix[0]; + tMatrix[11] = inMatrix[12]; + tMatrix[12] = -inMatrix[7]; + tMatrix[13] = inMatrix[11]; + tMatrix[14] = inMatrix[3]; + tMatrix[15] = inMatrix[15]; + + Matrix4ToEuler(tMatrix, rPosTheta, rPos); + + euler[0] = 100*rPos[0]; + euler[1] = 100*rPos[1]; + euler[2] = 100*rPos[2]; + euler[3] = rPosTheta[0]; + euler[4] = rPosTheta[1]; + euler[5] = rPosTheta[2]; + + cout << "Processing Scan " << scanFileName; + + + cout << " @ pose (" << euler[0] << "," << euler[1] << "," << euler[2] + << "," << deg(euler[3]) << "," << deg(euler[4]) << "," << deg(euler[5]) << ")" << endl; + + + // overread the first line + char dummy[255]; + scan_in.getline(dummy, 255); + + while (scan_in.good()) { + Point q; + Point p; + try { + scan_in >> q; + scan_in >> p.reflectance; + } catch (...) { + break; + } + p.x = q.y*-100.0; + p.y = q.z*100.0; + p.z = q.x*100.0; + + // load points up to a certain distance only + // maxDist2 = -1 indicates no limitation + if (maxDist == -1 || sqr(p.x) + sqr(p.y) + sqr(p.z) < maxDist2) + if (mindist == -1 || sqr(p.x) + sqr(p.y) + sqr(p.z) > minDist2) + ptss.push_back(p); + } + scan_in.close(); + scan_in.clear(); + pose_in.close(); + pose_in.clear(); + fileCounter++; + + return my_fileNr; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_pci; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/src/scanio/old/scan_io_pcl.cc b/src/scanio/old/scan_io_pcl.cc new file mode 100644 index 0000000..d34a152 --- /dev/null +++ b/src/scanio/old/scan_io_pcl.cc @@ -0,0 +1,174 @@ +/** + * @file + * @brief Implementation of reading 3D scans + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "slam6d/scan_io_pcl.h" +#include "slam6d/globals.icc" +#include +using std::ifstream; +#include +using std::cout; +using std::cerr; +using std::endl; + +#ifdef _MSC_VER +#include +#endif + +/** + * Reads specified scans from given directory. + * + * Scan poses will NOT be initialized after a call + * to this function. + * + * This function actually implements loading of 3D scans + * in UOS file format and will be compiled as shared lib. + * + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param dir The directory from which to read + * @param maxDist Reads only Points up to this Distance + * @param mindist Reads only Points from this Distance + * @param euler Initital pose estimates (will not be applied to the points + * @param ptss Vector containing the read points + */ +int ScanIO_pcl::readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss) +{ + static int fileCounter = start; + string scanFileName; + string poseFileName; + + ifstream scan_in, pose_in; + + double maxDist2 = sqr(maxDist); + double minDist2 = sqr(mindist); + + int my_fileNr = fileCounter; + + if (end > -1 && fileCounter > end) return -1; // 'nuf read + + // read 3D scan + poseFileName = dir + "scan" + to_string(fileCounter,4) + ".pose"; + scanFileName = dir + "scan" + to_string(fileCounter,4) + ".pcl"; + scan_in.open(scanFileName.c_str()); + if (!scan_in.good()) { + cerr << "ERROR: Missing file" << scanFileName << endl; + scan_in.close(); + return -1; + } + + pose_in.open(poseFileName.c_str()); + double inMatrix[16], tMatrix[16]; + double rPosTheta[3], rPos[3]; + if (!pose_in.good()) { + cerr << "using default pose 0,0,0 !!!" << endl; + M4identity(inMatrix); + } else { + for (unsigned int i = 0; i < 16; pose_in >> inMatrix[i++]); + } + + // transform input pose + tMatrix[0] = inMatrix[5]; + tMatrix[1] = -inMatrix[9]; + tMatrix[2] = -inMatrix[1]; + tMatrix[3] = -inMatrix[13]; + tMatrix[4] = -inMatrix[6]; + tMatrix[5] = inMatrix[10]; + tMatrix[6] = inMatrix[2]; + tMatrix[7] = inMatrix[14]; + tMatrix[8] = -inMatrix[4]; + tMatrix[9] = inMatrix[8]; + tMatrix[10] = inMatrix[0]; + tMatrix[11] = inMatrix[12]; + tMatrix[12] = -inMatrix[7]; + tMatrix[13] = inMatrix[11]; + tMatrix[14] = inMatrix[3]; + tMatrix[15] = inMatrix[15]; + + Matrix4ToEuler(tMatrix, rPosTheta, rPos); + + euler[0] = 100*rPos[0]; + euler[1] = 100*rPos[1]; + euler[2] = 100*rPos[2]; + euler[3] = rPosTheta[0]; + euler[4] = rPosTheta[1]; + euler[5] = rPosTheta[2]; + + cout << "Processing Scan " << scanFileName; + + + cout << " @ pose (" << euler[0] << "," << euler[1] << "," << euler[2] + << "," << deg(euler[3]) << "," << deg(euler[4]) << "," << deg(euler[5]) << ")" << endl; + + + // overread the first line + char dummy[255]; + scan_in.getline(dummy, 255); + + while (scan_in.good()) { + Point q; + Point p; + try { + scan_in >> q; + } catch (...) { + break; + } + p.x = q.y*-100.0; + p.y = q.z*100.0; + p.z = q.x*100.0; + + // load points up to a certain distance only + // maxDist2 = -1 indicates no limitation + if (maxDist == -1 || sqr(p.x) + sqr(p.y) + sqr(p.z) < maxDist2) + if (mindist == -1 || sqr(p.x) + sqr(p.y) + sqr(p.z) > minDist2) + ptss.push_back(p); + } + scan_in.close(); + scan_in.clear(); + pose_in.close(); + pose_in.clear(); + fileCounter++; + + return my_fileNr; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_pcl; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/src/scanio/old/scan_io_ply.cc b/src/scanio/old/scan_io_ply.cc new file mode 100644 index 0000000..e17c732 --- /dev/null +++ b/src/scanio/old/scan_io_ply.cc @@ -0,0 +1,187 @@ +/** + * @file + * @brief Implementation of reading 3D scans + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "slam6d/scan_io_ply.h" +#include "slam6d/globals.icc" +#include +using std::ifstream; +#include +using std::cerr; +using std::endl; +#include + +#ifdef _MSC_VER +#include +#endif + +/** + * Reads specified scans from given directory in + * the PLY file format. It will be compiled as + * shared lib. + * + * Scan poses will NOT be initialized after a call + * to this function. + * + * + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param dir The directory from which to read + * @param maxDist Reads only Points up to this Distance + * @param minDist Reads only Points from this Distance + * @param euler Initital pose estimates (will not be applied to the points + * @param ptss Vector containing the read points + */ +int ScanIO_ply::readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss) +{ + static int fileCounter = start; + string scanFileName; + string poseFileName; + int maxDist2 = (maxDist == -1 ? -1 : sqr(maxDist)); + + int my_fileNr = fileCounter; + + ifstream scan_in, pose_in; + + for (int i=0; i < 6; i++) euler[i] = 0; + + if (end > -1 && fileCounter > end) return -1; // 'nuf read + scanFileName = dir + "scan" + to_string(fileCounter,3) + ".ply"; + scan_in.open(scanFileName.c_str()); + + // read 3D scan + if (!scan_in.good()) return -1; // no more scans to read + + bool binary = false; + char dummy[256]; + char str[20]; // whatever size + double matrix[16]; + int matrixPos = 0; + int nr; + float d1,d2,d3,d4; + sscanf(dummy,"%s %*s %d",str,&nr); + + // header + int counter = -2; + do { + if(counter > -2) counter++; + scan_in.getline(dummy, 255); + if (strncmp(dummy, "format", 6) == 0) { + if (dummy[7] == 'a') binary = false; + else if (dummy[7] == 'b') binary = true; + else { cerr << "Don't recognize the format!" << endl; exit(1); } + } + else if (strncmp(dummy, "element vertex", 14) == 0) { + sscanf(dummy,"%s %*s %d",str,&nr); + counter++; + } + else if (strncmp(dummy, "matrix", 6) == 0) { + sscanf(dummy,"%s %f %f %f %f", str, &d1, &d2, &d3, &d4); + matrix[matrixPos++] = d1; + matrix[matrixPos++] = d2; + matrix[matrixPos++] = d3; + matrix[matrixPos++] = d4; + } + } while (!(strncmp(dummy, "end_header",10) == 0 || !scan_in.good())); + + if (matrixPos > 0) { + double rPosTheta[3]; + double rPos[3]; + Matrix4ToEuler(matrix, rPosTheta, rPos); + } + + for (int i=0; i < nr; i++) { + Point p; + float data, confidence, intensity; + float dummy; + int r, g, b; + if (!binary) { + //scan_in >> p.z >> p.x >> p.y >> r >> g >> b; + switch(counter) { + case 6: + case 12: + scan_in >> p.z >> p.y >> p.x >> r >> g >> b; + break; + case 9: + //scan_in >> p.z >> p.x >> p.y >> dummy >> dummy >> dummy >> r >> g >> b; + scan_in >> p.z >> p.y >> p.x >> dummy >> dummy >> dummy >> r >> g >> b; + break; + default: + scan_in >> p.z >> p.x >> p.y >> confidence >> intensity; + break; + } + if(counter == 6 || counter == 9 || counter == 12) { + p.rgb[0] = (char)r; + p.rgb[1] = (char)g; + p.rgb[2] = (char)b; + } else { + p.reflectance = intensity; + } + } else { + scan_in.read((char*)&data, sizeof(float)); + p.z = (double)data; + scan_in.read((char*)&data, sizeof(float)); + p.x = (double)data; + scan_in.read((char*)&data, sizeof(float)); + p.y = (double)data; + scan_in.read((char*)&confidence, sizeof(float)); + scan_in.read((char*)&intensity, sizeof(float)); + } + + if (maxDist2 == -1 || (int)(sqr(p.x) + sqr(p.y) + sqr(p.z)) < maxDist2) + ptss.push_back(p); + } + + cout << "Processing Scan " << scanFileName; + cout << " @ pose (" << euler[0] << "," << euler[1] << "," << euler[2] + << "," << euler[3] << "," << euler[4] << "," << euler[5] << ")" << endl; + + + scan_in.close(); + scan_in.clear(); + pose_in.close(); + pose_in.clear(); + fileCounter++; + + return my_fileNr; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_ply; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/src/scanio/old/scan_io_riegl_bin.cc b/src/scanio/old/scan_io_riegl_bin.cc new file mode 100644 index 0000000..295df37 --- /dev/null +++ b/src/scanio/old/scan_io_riegl_bin.cc @@ -0,0 +1,156 @@ +/** + * @file + * @brief Implementation of reading 3D scans + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "slam6d/scan_io_riegl_bin.h" +#include "slam6d/globals.icc" +#include +using std::ifstream; +#include +using std::cerr; +using std::endl; + +#include +using std::swap; + +#ifdef _MSC_VER +#include +#endif + +/** + * Reads specified scans from given directory in + * the file format Riegl Laser Measurement GmbH + * uses. It will be compiled as shared lib. + * + * Scan poses will NOT be initialized after a call + * to this function. Initial pose estimation works + * only with the -p switch, i.e., trusting the initial + * estimations by Riegl. + * + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param dir The directory from which to read + * @param maxDist Reads only Points up to this Distance + * @param minDist Reads only Points from this Distance + * @param euler Initital pose estimates (will not be applied to the points + * @param ptss Vector containing the read points + */ +int ScanIO_riegl_bin::readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss) +{ + static int fileCounter = start; + string scanFileName; + string poseFileName; + + ifstream scan_in, pose_in; + + if (end > -1 && fileCounter > end) return -1; // 'nuf read + + + poseFileName = dir + "Pos" + to_string(fileCounter,2) + ".dat"; + scanFileName = dir + "Scan" + to_string(fileCounter,2) + ".txt"; + + scan_in.open(scanFileName.c_str()); + pose_in.open(poseFileName.c_str()); + // read 3D scan + + if (!pose_in.good() && !scan_in.good()) return -1; // no more files in the directory + if (!pose_in.good()) { cerr << "ERROR: Missing file " << poseFileName << endl; exit(1); } + if (!scan_in.good()) { cerr << "ERROR: Missing file " << scanFileName << endl; exit(1); } + cout << "Processing Scan " << scanFileName; + + char firstline[255]; + scan_in.getline(firstline, 255); + + double rPos[3], rPosTheta[16]; + double inMatrix[16], tMatrix[16]; + for (unsigned int i = 0; i < 16; pose_in >> inMatrix[i++]); + + M4transpose(inMatrix, tMatrix); + Matrix4ToEuler(tMatrix, rPosTheta, rPos); + + rPos[0] *= 100; + rPos[1] *= 100; + rPos[2] *= 100; + + // some noise for the pose estimations + double t1 = (double)(rand() % 200); + double t2 = (double)(rand() % 200); + // double t3 = (double)(rand() % 10); + + swap(rPos[1], rPos[2]); + swap(rPosTheta[1], rPosTheta[2]); + euler[0] = rPos[0] + t1; + euler[1] = rPos[1]; + euler[2] = rPos[2] + t2; + euler[3] = rPosTheta[0]; + euler[4] = rPosTheta[1]; + euler[5] = rPosTheta[2]; + + double test[16], test1[16]; + EulerToMatrix4(rPos, rPosTheta, test); + M4inv(test, test1); + + while (scan_in.good()) { + Point p; + int dummy; + scan_in >> dummy >> p.x >> p.z >> p.y; + p.x *= 100; + p.y *= 100; + p.z *= 100; + + p.transform(test1); + + ptss.push_back(p); + } + + cout << " done" << endl; + + scan_in.close(); + scan_in.clear(); + pose_in.close(); + pose_in.clear(); + fileCounter++; + + return fileCounter-1; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_riegl_bin; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/src/scanio/old/scan_io_riegl_project.cc b/src/scanio/old/scan_io_riegl_project.cc new file mode 100644 index 0000000..c28969e --- /dev/null +++ b/src/scanio/old/scan_io_riegl_project.cc @@ -0,0 +1,285 @@ +/** + * @file + * @brief Implementation of reading 3D scans + * @author Andreas Nuechter. Jacobs University Bremen gGmbH + * @author Jan Elseberg. Smart Systems Group, Jacobs University Bremen gGmbH, Germany. + */ +/* +#include +#include +#include +#include +*/ +#include +#include +#include +#include + + +#include "slam6d/scan_io_rxp.h" +#include "slam6d/scan_io_riegl_project.h" +#include "riegl/scanlib.hpp" +#include "slam6d/globals.icc" +#include +using std::ifstream; +#include +using std::cerr; +using std::endl; + +#include + +#include +using std::swap; + +#ifdef _MSC_VER +#include +#endif + +using namespace scanlib; +using namespace std; +using namespace std::tr1; + +static vector filenames; +static vector eulers; + +static xmlNodePtr srSeekChildNodeNamed(xmlNodePtr p, const char * name){ + if(p == NULL || name == NULL) return NULL; + + for(p=p->children; p!= NULL; p=p->next){ + if(p->name && (strcmp((char*)p->name,name) == 0)){ + return p; + } + } + return NULL; +} + +static void matrixToPos(const char* matrix, double *rPos, double *rPosTheta) { + stringstream ss( stringstream::in | stringstream::out); + ss << matrix; + + double inMatrix[16], tMatrix[16]; + for (int n=0; n<16; n++) + { + ss >> inMatrix[n]; + } + tMatrix[0] = inMatrix[5]; + tMatrix[1] = -inMatrix[9]; + tMatrix[2] = -inMatrix[1]; + tMatrix[3] = -inMatrix[13]; + tMatrix[4] = -inMatrix[6]; + tMatrix[5] = inMatrix[10]; + tMatrix[6] = inMatrix[2]; + tMatrix[7] = inMatrix[14]; + tMatrix[8] = -inMatrix[4]; + tMatrix[9] = inMatrix[8]; + tMatrix[10] = inMatrix[0]; + tMatrix[11] = inMatrix[12]; + tMatrix[12] = -inMatrix[7]; + tMatrix[13] = inMatrix[11]; + tMatrix[14] = inMatrix[3]; + tMatrix[15] = inMatrix[15]; + + Matrix4ToEuler(tMatrix, rPosTheta, rPos); + rPos[0] *= 100; + rPos[1] *= 100; + rPos[2] *= 100; +} + +static int getPaths(const char* filename) { + double rPos[3]; + double rPosTheta[3]; + xmlDocPtr doc; + xmlXPathContextPtr xpathCtx; + xmlXPathObjectPtr xpathObj; + const xmlChar* names = BAD_CAST "/project/scanpositions/scanposition"; + + /* Load XML document */ + doc = xmlParseFile(filename); + if (doc == NULL) { + fprintf(stderr, "Error: unable to parse file \"%s\"\n", filename); + return(-1); + } + + /* Create xpath evaluation context */ + xpathCtx = xmlXPathNewContext(doc); + if(xpathCtx == NULL) { + fprintf(stderr,"Error: unable to create new XPath context\n"); + xmlFreeDoc(doc); + return(-1); + } + + /* Evaluate xpath expression */ + xpathObj = xmlXPathEvalExpression(names, xpathCtx); + + // parse the scanpositions + xmlNodeSetPtr nodes = xpathObj->nodesetval; + int size; + int iter; + + size = (nodes) ? nodes->nodeNr : 0; + + for(iter = 0; iter < size; iter++) { + xmlNodePtr position = nodes->nodeTab[iter]; + xmlNodePtr name = srSeekChildNodeNamed(position, "name"); + xmlNodePtr singlescans = srSeekChildNodeNamed(position, "singlescans"); + xmlNodePtr scan = srSeekChildNodeNamed(singlescans, "scan"); + xmlNodePtr file = srSeekChildNodeNamed(scan, "file"); + + xmlNodePtr sop = srSeekChildNodeNamed(position, "sop"); + xmlNodePtr matrix = srSeekChildNodeNamed(sop, "matrix"); + + + char FILEN[1024]; + char POSITIONN[1024]; + char MATRIX[1024]; + + if (file != 0 && name != 0 && matrix != 0) { + sprintf(POSITIONN, "%s", xmlNodeGetContent(name )); + sprintf(FILEN, "%s", xmlNodeGetContent(file )); + sprintf(MATRIX, "%s", xmlNodeGetContent(matrix)); + + // compute pose + double *euler = new double[6]; + matrixToPos(MATRIX, rPos, rPosTheta); + for (unsigned int i = 0; i < 3; i++) euler[i] = rPos[i]; + for (unsigned int i = 0; i < 3; i++) euler[i+3] = rPosTheta[i]; + eulers.push_back(euler); + + // put together filename + string filename = ""; + filename = "SCANS/" + (string)POSITIONN + "/SINGLESCANS/" + (string)FILEN + ""; + //cout << rPos[0] << " " << rPos[1] << " " << rPos[2] << " " << filename << endl; + cout << "Project Scan " << filename << " is mapped to index " << iter << endl; + filenames.push_back(filename); + } + + + + + } + + + + /* Cleanup of XPath data */ + xmlXPathFreeObject(xpathObj); + xmlXPathFreeContext(xpathCtx); + + /* free the document */ + xmlFreeDoc(doc); + + return(0); +} + + +/** + * Reads specified scans from given directory in + * the file format Riegl Laser Measurement GmbH + * uses. It will be compiled as shared lib. + * + * Scan poses will NOT be initialized after a call + * to this function. Initial pose estimation works + * only with the -p switch, i.e., trusting the initial + * estimations by Riegl. + * + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param dir The directory from which to read + * @param maxDist Reads only Points up to this Distance + * @param minDist Reads only Points from this Distance + * @param euler Initital pose estimates (will not be applied to the points + * @param ptss Vector containing the read points + */ +int ScanIO_riegl_project::readScans(int start, int end, string &dir, int maxDist, int minDist, + double *euler, vector &ptss) +{ + static int fileCounter = start; + + // very first call to readScans... + if (fileCounter == start) { + // parse riegl projects xml file + string xmlFileName = dir + "project.rsp"; + + getPaths(xmlFileName.c_str()); + + } + string scanFileName; + string poseFileName; + + if (end > -1 && fileCounter > end) return -1; // 'nuf read + + + scanFileName = "file://" + dir + filenames[fileCounter]; + + // read 3D scan + + cout << "Processing Scan " << scanFileName; + cout.flush(); + + + + for (unsigned int i = 0; i <= 5; i++) euler[i] = eulers[fileCounter][i]; + + cout << " @ pose (" << euler[0] << "," << euler[1] << "," << euler[2] + << "," << deg(euler[3]) << "," << deg(euler[4]) << "," << deg(euler[5]) << ")" << endl; + + // open scanfile + std::tr1::shared_ptr rc; + rc = basic_rconnection::create(scanFileName); + rc->open(); + + // decoder splits the binary file into readable chunks + decoder_rxpmarker dec(rc); + // importer interprets the chunks + importer imp(&ptss, maxDist, minDist); + + // iterate over chunks + buffer buf; + for ( dec.get(buf); !dec.eoi(); dec.get(buf) ) { + imp.dispatch(buf.begin(), buf.end()); + } + + //done + rc->close(); + + + fileCounter++; + + return fileCounter-1; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_riegl_project; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/src/scanio/old/scan_io_riegl_rgb.cc b/src/scanio/old/scan_io_riegl_rgb.cc new file mode 100644 index 0000000..6fbf30f --- /dev/null +++ b/src/scanio/old/scan_io_riegl_rgb.cc @@ -0,0 +1,183 @@ +/** + * @file + * @brief Implementation of reading 3D scans + * @author Andreas Nuechter. Jacobs University Bremen gGmbH + * @author Dorit Borrmann. Smart Systems Group, Jacobs University Bremen gGmbH, Germany. + */ + +#include "slam6d/scan_io_riegl_rgb.h" +#include "slam6d/globals.icc" +#include +using std::ifstream; +#include +using std::cerr; +using std::endl; + +#include +using std::swap; + +#ifdef _MSC_VER +#include +#endif + +/** + * Reads specified scans from given directory in + * the file format Riegl Laser Measurement GmbH + * uses including color information . It will be compiled as shared lib. + * + * Scan poses will NOT be initialized after a call + * to this function. Initial pose estimation works + * only with the -p switch, i.e., trusting the initial + * estimations by Riegl. + * + * The scans have to be exported from the Riegl software + * as follows: + * 1. Export point cloud data to ASCII + * Use Scanners own Coordinate System (SOCS) + * X Y Z Range Theta Phi RGB Reflectance + * Name the files scanXXX.rgb where XXX determines the number of the scan + * 2. Export acqusition location (after you have registered + * with the Riegl software) + * Export SOP + * Write out as .dat file + * + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param dir The directory from which to read + * @param maxDist Reads only Points up to this Distance + * @param minDist Reads only Points from this Distance + * @param euler Initital pose estimates (will not be applied to the points + * @param ptss Vector containing the read points + */ +int ScanIO_riegl_rgb::readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss) +{ + static int fileCounter = start; + string scanFileName; + string poseFileName; + + ifstream scan_in, pose_in; + + if (end > -1 && fileCounter > end) return -1; // 'nuf read + + + poseFileName = dir + "scan" + to_string(fileCounter,3) + ".dat"; + scanFileName = dir + "scan" + to_string(fileCounter,3) + ".rgb"; + + scan_in.open(scanFileName.c_str()); + pose_in.open(poseFileName.c_str()); + // read 3D scan + + if (!pose_in.good() && !scan_in.good()) return -1; // no more files in the directory + if (!pose_in.good()) { cerr << "ERROR: Missing file " << poseFileName << endl; exit(1); } + if (!scan_in.good()) { cerr << "ERROR: Missing file " << scanFileName << endl; exit(1); } + cout << "Processing Scan " << scanFileName; + cout.flush(); + + double rPos[3], rPosTheta[16]; + double inMatrix[16], tMatrix[16]; + for (unsigned int i = 0; i < 16; pose_in >> inMatrix[i++]); + + // transform input pose + tMatrix[0] = inMatrix[5]; + tMatrix[1] = -inMatrix[9]; + tMatrix[2] = -inMatrix[1]; + tMatrix[3] = -inMatrix[13]; + tMatrix[4] = -inMatrix[6]; + tMatrix[5] = inMatrix[10]; + tMatrix[6] = inMatrix[2]; + tMatrix[7] = inMatrix[14]; + tMatrix[8] = -inMatrix[4]; + tMatrix[9] = inMatrix[8]; + tMatrix[10] = inMatrix[0]; + tMatrix[11] = inMatrix[12]; + tMatrix[12] = -inMatrix[7]; + tMatrix[13] = inMatrix[11]; + tMatrix[14] = inMatrix[3]; + tMatrix[15] = inMatrix[15]; + + Matrix4ToEuler(tMatrix, rPosTheta, rPos); + + euler[0] = 100*rPos[0]; + euler[1] = 100*rPos[1]; + euler[2] = 100*rPos[2]; + euler[3] = rPosTheta[0]; + euler[4] = rPosTheta[1]; + euler[5] = rPosTheta[2]; + + long num_pts = 0; + + if (scan_in.good()) { + scan_in >> num_pts; + cout << " with " << num_pts << " Points"; + cout.flush(); + ptss.reserve(num_pts); + } + + // read point data and transform into slam6D coordinate system + while (scan_in.good()) { + Point p; + double range, theta, phi, reflectance; + int r, g, b; + scan_in >> p.z >> p.x >> p.y >> range >> theta >> phi >> r >> g >> b >> reflectance; + + p.x *= -100; + p.y *= 100; + p.z *= 100; + + p.rgb[0] = (char)r; + p.rgb[1] = (char)g; + p.rgb[2] = (char)b; + + p.reflectance = reflectance; + + ptss.push_back(p); + } + + cout << " done" << endl; + + scan_in.close(); + scan_in.clear(); + pose_in.close(); + pose_in.clear(); + fileCounter++; + + return fileCounter-1; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_riegl_rgb; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/src/scanio/old/scan_io_riegl_txt.cc b/src/scanio/old/scan_io_riegl_txt.cc new file mode 100644 index 0000000..1bf54e8 --- /dev/null +++ b/src/scanio/old/scan_io_riegl_txt.cc @@ -0,0 +1,180 @@ +/** + * @file + * @brief Implementation of reading 3D scans + * @author Andreas Nuechter. Jacobs University Bremen gGmbH + * @author Dorit Borrmann. Smart Systems Group, Jacobs University Bremen gGmbH, Germany. + */ + +#include "slam6d/scan_io_riegl_txt.h" +#include "slam6d/globals.icc" +#include +using std::ifstream; +#include +using std::cerr; +using std::endl; + +#include +using std::swap; + +#ifdef _MSC_VER +#include +#endif + +/** + * Reads specified scans from given directory in + * the file format Riegl Laser Measurement GmbH + * uses. It will be compiled as shared lib. + * + * Scan poses will NOT be initialized after a call + * to this function. Initial pose estimation works + * only with the -p switch, i.e., trusting the initial + * estimations by Riegl. + * + * The scans have to be exported from the Riegl software + * as follows: + * 1. Export point cloud data to ASCII + * Use Scanners own Coordinate System (SOCS) + * X Y Z Range Theta Phi Reflectance + * 2. Export acqusition location (after you have registered + * with the Riegl software) + * Export SOP + * Write out as .dat file + * + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param dir The directory from which to read + * @param maxDist Reads only Points up to this Distance + * @param minDist Reads only Points from this Distance + * @param euler Initital pose estimates (will not be applied to the points + * @param ptss Vector containing the read points + */ +int ScanIO_riegl_txt::readScans(int start, int end, string &dir, int maxDist, int minDist, + double *euler, vector &ptss) +{ + static int fileCounter = start; + string scanFileName; + string poseFileName; + double maxDist2 = sqr(maxDist); + double minDist2 = sqr(minDist); + ifstream scan_in, pose_in; + + if (end > -1 && fileCounter > end) return -1; // 'nuf read + + + poseFileName = dir + "scan" + to_string(fileCounter,3) + ".dat"; + scanFileName = dir + "scan" + to_string(fileCounter,3) + ".txt"; + + scan_in.open(scanFileName.c_str()); + pose_in.open(poseFileName.c_str()); + // read 3D scan + + if (!pose_in.good() && !scan_in.good()) return -1; // no more files in the directory + if (!pose_in.good()) { cerr << "ERROR: Missing file " << poseFileName << endl; exit(1); } + if (!scan_in.good()) { cerr << "ERROR: Missing file " << scanFileName << endl; exit(1); } + cout << "Processing Scan " << scanFileName; + cout.flush(); + + double rPos[3], rPosTheta[16]; + double inMatrix[16], tMatrix[16]; + for (unsigned int i = 0; i < 16; pose_in >> inMatrix[i++]); + + // transform input pose + tMatrix[0] = inMatrix[5]; + tMatrix[1] = -inMatrix[9]; + tMatrix[2] = -inMatrix[1]; + tMatrix[3] = -inMatrix[13]; + tMatrix[4] = -inMatrix[6]; + tMatrix[5] = inMatrix[10]; + tMatrix[6] = inMatrix[2]; + tMatrix[7] = inMatrix[14]; + tMatrix[8] = -inMatrix[4]; + tMatrix[9] = inMatrix[8]; + tMatrix[10] = inMatrix[0]; + tMatrix[11] = inMatrix[12]; + tMatrix[12] = -inMatrix[7]; + tMatrix[13] = inMatrix[11]; + tMatrix[14] = inMatrix[3]; + tMatrix[15] = inMatrix[15]; + + Matrix4ToEuler(tMatrix, rPosTheta, rPos); + + euler[0] = 100*rPos[0]; + euler[1] = 100*rPos[1]; + euler[2] = 100*rPos[2]; + euler[3] = rPosTheta[0]; + euler[4] = rPosTheta[1]; + euler[5] = rPosTheta[2]; + + long num_pts = 0; + + if (scan_in.good()) { + scan_in >> num_pts; + cout << " with " << num_pts << " Points"; + cout.flush(); + ptss.reserve(num_pts); + } + + // read point data and transform into slam6D coordinate system + while (scan_in.good()) { + Point p; + double range, theta, phi, reflectance; + scan_in >> p.z >> p.x >> p.y >> range >> theta >> phi >> reflectance; + + p.x *= -100; + p.y *= 100; + p.z *= 100; + + p.reflectance = reflectance; + + if (maxDist == -1 || sqr(p.x) + sqr(p.y) + sqr(p.z) < maxDist2) + if (minDist == -1 || sqr(p.x) + sqr(p.y) + sqr(p.z) > minDist2) + ptss.push_back(p); + } + + cout << " done" << endl; + + scan_in.close(); + scan_in.clear(); + pose_in.close(); + pose_in.clear(); + fileCounter++; + + return fileCounter-1; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_riegl_txt; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/src/scanio/old/scan_io_rts.cc b/src/scanio/old/scan_io_rts.cc new file mode 100644 index 0000000..a5f0d42 --- /dev/null +++ b/src/scanio/old/scan_io_rts.cc @@ -0,0 +1,132 @@ +#include "slam6d/scan_io_rts.h" +#include "slam6d/globals.icc" +#include +using std::ifstream; +#include +using std::cerr; +using std::endl; + +#ifdef _MSC_VER +#include +#endif + +/** define invalid type */ +#define TYPE_INVALID 0x10 + +/** + * Reads specified scans from given directory. + * + * Scan poses will NOT be initialized after a call + * to this function. + * + * + * @param s 3D Scan to be read. The vector of points must be filled + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param maxDist Reads only Points up to this Distance + * @param dir The directory from which to read + */ +int ScanIO_rts::readScans(int start, int end, string &dir, + int maxDist, int minDist, + double *euler, vector &ptss) +{ + static int fileCounter = start; + static string poseFileName; + string scanFileName; + double timestamp; + + static ifstream pose_in; + ifstream scan_in; + + if (end > -1 && fileCounter > end) return -1; + + if (fileCounter == start) { + poseFileName = dir + "odometry_0_sync_interpol.dat"; + pose_in.open(poseFileName.c_str()); + if (!pose_in.good()) { cerr << "ERROR: Missing file " << poseFileName << endl; exit(1); } + for (int i = 0; i < start; i++) { + pose_in >> timestamp + >> euler[2] >> euler[0] >> euler[1] // x, y, z + >> euler[3] >> euler[5] >> euler[4]; // theta_x, theta_y, theta_z + } + } + + pose_in >> timestamp + >> euler[2] >> euler[0] >> euler[1] // x, y, z + >> euler[3] >> euler[5] >> euler[4]; // theta_x, theta_y, theta_z + + scanFileName = dir + "scan3d_0_" + to_string(fileCounter) + ".3d"; + + scan_in.open(scanFileName.c_str()); + // read 3D scan + + if (!scan_in.good()) { + pose_in.close(); + pose_in.clear(); + return -1; + } + cerr << "Processing Scan " << scanFileName; + + euler[3] = euler[5] = euler[1] = 0; + + cerr << " @ pose (" << euler[0] << "," << euler[1] << "," << euler[2] + << "," << deg(euler[3]) << "," << deg(euler[4]) << "," << deg(euler[5]) << ")" << endl; + + for (unsigned int i = 0; i < 3; i++) euler[i] *= 0.1; + + while (scan_in.good()) { + Point p; + int type, dummy; + scan_in >> p.z >> p.x >> p.y >> type >> dummy >> dummy; + if (type & TYPE_INVALID) { + continue; + } else { + p.x *= 0.1; + p.y *= -0.1; + p.z *= 0.1; + p.type = type; + if (scan_in.good()) ptss.push_back(p); + } + } + scan_in.close(); + scan_in.clear(); + fileCounter++; + + return fileCounter-1; +} + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_rts; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/src/scanio/old/scan_io_rts_map.cc b/src/scanio/old/scan_io_rts_map.cc new file mode 100644 index 0000000..2d99cd4 --- /dev/null +++ b/src/scanio/old/scan_io_rts_map.cc @@ -0,0 +1,259 @@ +/** + * @file + * @brief Implementation of reading 3D scans + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "slam6d/scan_io_rts_map.h" +#include "slam6d/globals.icc" +#include +using std::ifstream; +#include +using std::cerr; +using std::endl; + +#ifdef _MSC_VER +#include +#endif + +/** define invalid type */ +#define TYPE_INVALID 0x10 + +/** + * Reads specified scans from given directory in + * the file format Uni Hannover uses. The first scan + * is a 3D point cloud, computed from the 2D line map. + * The class will be compiled as shared lib. + * + * Scan poses will NOT be initialized after a call + * to this function. + * + * + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param dir The directory from which to read + * @param maxDist Reads only Points up to this Distance + * @param minDist Reads only Points from this Distance + * @param euler Initital pose estimates (will not be applied to the points + * @param ptss Vector containing the read points + */ +int ScanIO_rts_map::readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss) +{ + static int fileCounter = start - 1; + static ifstream pose_in; + + string scanFileName; + string poseFileName; + double timestamp; + + ifstream scan_in; + + int my_fileNr = fileCounter; + + if (end > -1 && fileCounter > end) return -1; // 'nuf read + + if (fileCounter == start - 1) { + + poseFileName = dir + "odometry_0_sync_interpol.dat"; + pose_in.open(poseFileName.c_str()); + if (!pose_in.good()) { cerr << "ERROR: Missing file " << poseFileName << endl; exit(1); } + for (int i = 0; i < start; i++) { + pose_in >> timestamp + >> euler[2] >> euler[0] >> euler[1] // x, y, z + >> euler[3] >> euler[5] >> euler[4]; // theta_x, theta_y, theta_z + } + + double c, s; + + // read map as first 3D scan + // + // A given 2D ground truth map, is extrapolated to 3D. + // Details are given in (jfr2008.pdf): + // + // Oliver Wulf, Andreas N眉chter, Joachim Hertzberg, + // and Bernardo Wagner. Benchmarking Urban Six-Degree- + // of-Freedom Simultaneous Localization and Mapping. + // Journal of Field Robotics (JFR), Wiley & Son, + // ISSN 1556-4959, Volume 25, Issue 3, pages 148 - 163, + // March 2008 + +#define READ_MAP +#ifdef READ_MAP + scanFileName = dir + "Uni_Hannover.map"; + scan_in.open(scanFileName.c_str()); + + if (!scan_in.good()) { cerr << "ERROR: Missing file " << scanFileName << endl; exit(1); } + cout << "Processing 3D Map " << scanFileName << endl; + + euler[0] = euler[1] = euler[2] = euler[3] = euler[4] = euler[5] = 0.0; + + c = cos(rad(-191.0)); + s = sin(rad(-191.0)); + + while (scan_in.good()) { + double x1, x2, z1, z2; + double x1_t, x2_t, z1_t, z2_t; + + scan_in >> x1_t >> z1_t >> x2_t >> z2_t; + + x1_t = (x1_t - 113.07) * 100; + x2_t = (x2_t - 113.07) * 100; + z1_t = (z1_t + 64.05) * 100; + z2_t = (z2_t + 64.05) * 100; + + x1 = x1_t * c + z1_t * s; + z1 = - x1_t * s + z1_t * c; + + x2 = x2_t * c + z2_t * s; + z2 = - x2_t * s + z2_t * c; + + double length = sqrt(sqr(x2-x1) + sqr(z2-z1)); + double n_x = (x2 - x1) / length; + double n_z = (z2 - z1) / length; + + for (double t = 0.0; t < length; t += 25.0) { + Point p; + p.x = x1 + t * n_x; + p.z = z1 + t * n_z; + for (double y = -15.0; y < 1000; y += 25) { + p.y = y; + ptss.push_back(p); + } + } + } + cout << ptss.size() << endl; + scan_in.close(); + scan_in.clear(); +#endif + + // read map as first 3D scan + // A aerial lidar scan is loaded + // Details are given in (ecmr2009.pdf): + // + // Jochen Sprickerhof, Andreas N眉chter, Kai Lingemann, + // Joachim Hertzberg. An Explicit Loop Closing Technique + // for 6D SLAM, In Proceedings of the 4th European + // Conference on Mobile Robots (ECMR '09), Mlini/Dubrovnic, + // Croatia, September 2009 + +#define READ_AERIAL +#ifdef READ_AERIAL + scanFileName = dir + "bereich_uni.txt"; + scan_in.open(scanFileName.c_str()); + + if (!scan_in.good()) { cerr << "ERROR: Missing file " << scanFileName << endl; exit(1); } + cout << "Processing 3D Aerial Map " << scanFileName << endl; + + euler[0] = euler[1] = euler[2] = euler[3] = euler[4] = euler[5] = 0.0; + + c = cos(rad(-191.0)); + s = sin(rad(-191.0)); + + while (scan_in.good()) { + double x1, z1; + double x1_t, y1_t, z1_t; + + scan_in >> x1_t >> z1_t >> y1_t; + + x1_t = (x1_t - 3548500 - 113.07) * 100; + z1_t = (z1_t - 5806400 + 64.05) * 100; + y1_t = (y1_t - 55.0) * 100; + + x1 = x1_t * c + z1_t * s; + z1 = - x1_t * s + z1_t * c; + + Point p; + p.x = x1; + p.z = z1; + p.y = y1_t; + ptss.push_back(p); + + } + cout << "Map containts " << ptss.size() << " points" << endl; + scan_in.close(); + scan_in.clear(); +#endif + cout << "DONE" << endl; + fileCounter++; + + return 1; + } + + // read remaining 3D scans + pose_in >> timestamp + >> euler[2] >> euler[0] >> euler[1] // x, y, z + >> euler[3] >> euler[5] >> euler[4]; // theta_x, theta_y, theta_z + + scanFileName = dir + "scan3d_0_" + to_string(fileCounter) + ".3d"; + + scan_in.open(scanFileName.c_str()); + // read 3D scan + + if (!scan_in.good()) { cerr << "ERROR: Missing file " << scanFileName << endl; exit(1); } + cout << "Processing Scan " << scanFileName; + + cout << " @ pose (" << euler[0] << "," << euler[1] << "," << euler[2] + << "," << deg(euler[3]) << "," << deg(euler[4]) << "," << deg(euler[5]) << ")" << endl; + + for (unsigned int i = 0; i < 3; i++) euler[i] *= 0.1; + + while (scan_in.good()) { + Point p; + int type, dummy; + scan_in >> p.z >> p.x >> p.y >> type >> dummy >> dummy; + if (type & TYPE_INVALID) { + continue; + } else { + p.x *= 0.1; + p.y *= -0.1; + p.z *= 0.1; + p.type = type; + ptss.push_back(p); + } + } + + scan_in.close(); + scan_in.clear(); + fileCounter++; + + return my_fileNr; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_rts_map; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/src/scanio/old/scan_io_rxp.cc b/src/scanio/old/scan_io_rxp.cc new file mode 100644 index 0000000..144fc13 --- /dev/null +++ b/src/scanio/old/scan_io_rxp.cc @@ -0,0 +1,219 @@ +/** + * @file + * @brief Implementation of reading 3D scans + * @author Andreas Nuechter. Jacobs University Bremen gGmbH + * @author Jan Elseberg. Smart Systems Group, Jacobs University Bremen gGmbH, Germany. + */ + +#include "slam6d/scan_io_rxp.h" +#include "riegl/scanlib.hpp" +#include "slam6d/globals.icc" +#include +using std::ifstream; +#include +using std::cerr; +using std::endl; + +#include +using std::swap; + +#ifdef _MSC_VER +#include +#endif + +using namespace scanlib; +using namespace std; +using namespace std::tr1; + +/** + * Reads specified scans from given directory in + * the file format Riegl Laser Measurement GmbH + * uses. It will be compiled as shared lib. + * + * Scan poses will NOT be initialized after a call + * to this function. Initial pose estimation works + * only with the -p switch, i.e., trusting the initial + * estimations by Riegl. + * + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param dir The directory from which to read + * @param maxDist Reads only Points up to this Distance + * @param minDist Reads only Points from this Distance + * @param euler Initital pose estimates (will not be applied to the points + * @param ptss Vector containing the read points + */ +int ScanIO_rxp::readScans(int start, int end, string &dir, int maxDist, int minDist, + double *euler, vector &ptss) +{ + static int fileCounter = start; + string scanFileName; + string poseFileName; + + ifstream pose_in; + + if (end > -1 && fileCounter > end) return -1; // 'nuf read + + string rxp = ".rxp"; + if (dir.rfind(rxp) == dir.length() - rxp.length() - 1) { // dir is a .rxp file + string shortdir = dir; + shortdir.erase(shortdir.length() -1); // erase last character + if (!dec) { + rc = basic_rconnection::create(shortdir); + rc->open(); + + // decoder splits the binary file into readable chunks + dec = new decoder_rxpmarker(rc); + // importer interprets the chunks + imp = new importer(&ptss, maxDist, minDist, start); + } + + buffer buf; + + // skip the first scans + if (imp->getCurrentScan() < start ) { + for ( dec->get(buf); !dec->eoi(); dec->get(buf) ) { + imp->dispatch(buf.begin(), buf.end()); + if (imp->getCurrentScan() >= start) break; + } + } + if (dec->eoi()) return -1; + int cscan = imp->getCurrentScan(); + // iterate over chunks, until the next scan is reached + for ( dec->get(buf); !dec->eoi() ; dec->get(buf) ) { + imp->dispatch(buf.begin(), buf.end()); + if (imp->getCurrentScan() != cscan) break; + } + + for (unsigned int i = 0; i < 6; euler[i++] = 0.0); + //done + } else { + + poseFileName = dir + "scan" + to_string(fileCounter,3) + ".pose"; + scanFileName = "file://" + dir + "scan" + to_string(fileCounter,3) + ".rxp"; + + pose_in.open(poseFileName.c_str()); + // read 3D scan + + if (!pose_in.good()) return -1; // no more files in the directory + if (!pose_in.good()) { cerr << "ERROR: Missing file " << poseFileName << endl; exit(1); } + cout << "Processing Scan " << scanFileName; + cout.flush(); + + for (unsigned int i = 0; i < 6; pose_in >> euler[i++]); + + cout << " @ pose (" << euler[0] << "," << euler[1] << "," << euler[2] + << "," << euler[3] << "," << euler[4] << "," << euler[5] << ")" << endl; + + // convert angles from deg to rad + for (unsigned int i = 3; i <= 5; i++) euler[i] = rad(euler[i]); + pose_in.close(); + pose_in.clear(); + + + // open scanfile + rc = basic_rconnection::create(scanFileName); + rc->open(); + + // decoder splits the binary file into readable chunks + dec = new decoder_rxpmarker(rc); + // importer interprets the chunks + imp = new importer(&ptss, maxDist, minDist); + + // iterate over chunks + buffer buf; + for ( dec->get(buf); !dec->eoi(); dec->get(buf) ) { + imp->dispatch(buf.begin(), buf.end()); + } + + //done + rc->close(); + + } + + + fileCounter++; + + return fileCounter-1; +} + +void importer::on_echo_transformed(echo_type echo) +{ + if (currentscan < start) return; + // targets is a member std::vector that contains all + // echoes seen so far, i.e. the current echo is always + // indexed by target_count-1. + target& t(targets[target_count - 1]); + + // target.reflectance + // target.amplitude + // target.deviation + // target.time + // target.vertex point coordinates + // + + Point p; + + p.x = t.vertex[1]*-100.0; + p.y = t.vertex[2]*100.0; + p.z = t.vertex[0]*100.0; + + p.reflectance = t.reflectance; + p.amplitude = t.amplitude; + p.deviation = t.deviation; + + + if ( pointcloud::first == echo ) { + p.type = 0; + } else if ( pointcloud::interior == echo ) { + p.type = 1; + } else if ( pointcloud::last == echo ) { + p.type = 10; + } else if ( pointcloud::single == echo ){ + p.type = 9; + } + if(maxD == -1 || sqr(p.x) + sqr(p.y) + sqr(p.z) < maxD*maxD) { + if(minD == -1 || sqr(p.x) + sqr(p.y) + sqr(p.z) > minD*minD) { + { + if((sqr(p.x) + sqr(p.y) + sqr(p.z)) > 0.1)o->push_back(p); + } + } + } +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_rxp; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/src/scanio/old/scan_io_stl.cc b/src/scanio/old/scan_io_stl.cc new file mode 100644 index 0000000..f0761d3 --- /dev/null +++ b/src/scanio/old/scan_io_stl.cc @@ -0,0 +1,154 @@ +/** + * @file + * @brief Implementation of reading 3D scans + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "slam6d/scan_io_stl.h" +#include "slam6d/globals.icc" +#include +using std::ifstream; +#include +using std::cout; +using std::cerr; +using std::endl; + +#ifdef _MSC_VER +#include +#endif + +#include +typedef float real32_t; + +/** + * Reads specified scans from given directory. + * + * Scan poses will NOT be initialized after a call + * to this function. + * + * This function actually implements loading of 3D scans + * in UOS file format and will be compiled as shared lib. + * + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param dir The directory from which to read + * @param maxDist Reads only Points up to this Distance + * @param mindist Reads only Points from this Distance + * @param euler Initital pose estimates (will not be applied to the points + * @param ptss Vector containing the read points + */ +int ScanIO_stl::readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss) +{ + static int fileCounter = start; + string scanFileName; + string poseFileName; + + ifstream scan_in, pose_in; + + double maxDist2 = sqr(maxDist); + double minDist2 = sqr(mindist); + + int my_fileNr = fileCounter; + + if (end > -1 && fileCounter > end) return -1; // 'nuf read + scanFileName = dir + "scan" + to_string(fileCounter,3) + ".stl"; + poseFileName = dir + "scan" + to_string(fileCounter,3) + ".pose"; + + scan_in.open(scanFileName.c_str(), std::ios::binary); + pose_in.open(poseFileName.c_str()); + + // read 3D scan + if (!pose_in.good() && !scan_in.good()) return -1; // no more files in the directory + if (!scan_in.good()) return -1; // no more files in the directory + if (!pose_in.good()) { cerr << "ERROR: Missing file " << poseFileName << endl; exit(1); } + if (!scan_in.good()) { cerr << "ERROR: Missing file " << scanFileName << endl; exit(1); } + cout << "Processing Scan " << scanFileName; + + for (unsigned int i = 0; i < 6; pose_in >> euler[i++]); + + cout << " @ pose (" << euler[0] << "," << euler[1] << "," << euler[2] + << "," << euler[3] << "," << euler[4] << "," << euler[5] << ")" << endl; + + // convert angles from deg to rad + for (unsigned int i = 3; i <= 5; i++) euler[i] = rad(euler[i]); + + + // read the STL data: + uint8_t header[80]; + uint32_t number; + + scan_in.read((char*)header, sizeof(header)); + scan_in.read((char*)&number, sizeof(number)); + + real32_t normal[3]; + real32_t v1[3], v2[3], v3[3]; + uint16_t attrib; + + for (unsigned int i=0; i < number; i++) { + Point p; + scan_in.read((char*)normal, sizeof(normal)); + scan_in.read((char*)v1, sizeof(v1)); + scan_in.read((char*)v2, sizeof(v2)); + scan_in.read((char*)v3, sizeof(v3)); + scan_in.read((char*)&attrib, sizeof(attrib)); + + // forget the other vertices + p.x = v1[0]; + p.y = v1[1]; + p.z = v1[2]; + + // load points up to a certain distance only + // maxDist2 = -1 indicates no limitation + if (maxDist == -1 || sqr(p.x) + sqr(p.y) + sqr(p.z) < maxDist2) + if (mindist == -1 || sqr(p.x) + sqr(p.y) + sqr(p.z) > minDist2) + ptss.push_back(p); + } + cout << "Read " << ptss.size() << " points." << endl; + + scan_in.close(); + scan_in.clear(); + pose_in.close(); + pose_in.clear(); + fileCounter++; + + return my_fileNr; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_stl; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/src/scanio/old/scan_io_txyzr.cc b/src/scanio/old/scan_io_txyzr.cc new file mode 100644 index 0000000..491c7b2 --- /dev/null +++ b/src/scanio/old/scan_io_txyzr.cc @@ -0,0 +1,157 @@ +/** + * @file + * @brief Implementation of reading 3D scans + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "slam6d/scan_io_txyzr.h" +#include "slam6d/globals.icc" +#include +using std::ifstream; +#include +using std::cout; +using std::cerr; +using std::endl; + +#ifdef _MSC_VER +#include +#endif + +static double X; +static double Y; +static double Z; +static bool FIRST_POINT = true; + +/** + * Reads specified scans from given directory. + * + * Scan poses will NOT be initialized after a call + * to this function. + * + * This function actually implements loading of 3D scans + * in UOS + reflectance file format and will be compiled as shared lib. + * + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param dir The directory from which to read + * @param maxDist Reads only Points up to this Distance + * @param minDist Reads only Points from this Distance + * @param euler Initital pose estimates (will not be applied to the points + * @param ptss Vector containing the read points + */ +int ScanIO_txyzr::readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss) +{ + static int fileCounter = start; + string scanFileName; + + ifstream scan_in; + + double maxDist2 = sqr(maxDist); + + int my_fileNr = fileCounter; + + if (end > -1 && fileCounter > end) return -1; // 'nuf read + scanFileName = dir + "scan" + to_string(fileCounter,3) + ".xyz"; + + scan_in.open(scanFileName.c_str()); + + // read 3D scan + if (!scan_in.good()) return -1; // no more files in the directory + cout << "Processing Scan " << scanFileName; + + for (unsigned int i = 0; i < 6; euler[i++] = 0.0); + + cout << " @ pose (" << euler[0] << "," << euler[1] << "," << euler[2] + << "," << euler[3] << "," << euler[4] << "," << euler[5] << ")" << endl; + + // overread the first line + char dummy[255]; + double ddummy,x,y,z; + scan_in.getline(dummy, 255); + + while (scan_in.good()) { + Point p; + try { + scan_in >> ddummy; + scan_in >> x; + scan_in >> y; + scan_in >> z; + p.x = 100.0*x; + p.y = 100.0*z; + p.z = 100.0*y; + + if (FIRST_POINT) { + X = p.x; + Y = p.y; + Z = p.z; + FIRST_POINT = false; + } + +// scan_in >> p; + + scan_in >> p.reflectance; + } catch (...) { + break; + } + // load points up to a certain distance only + // maxDist2 = -1 indicates no limitation + if (maxDist == -1 || sqr(p.x) + sqr(p.y) + sqr(p.z) < maxDist2) { + if (!ptss.empty()) { + //p -= ptss[0]; + p.x -= X; + p.y -= Y; + p.z -= Z; + } + ptss.push_back(p); + } + + + } + if (!ptss.empty()) { + ptss[0].x = ptss[0].y = ptss[0].z = 0.0; + } + scan_in.close(); + scan_in.clear(); + fileCounter++; + + return my_fileNr; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_txyzr; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/src/scanio/old/scan_io_uos.cc b/src/scanio/old/scan_io_uos.cc new file mode 100644 index 0000000..3c3458e --- /dev/null +++ b/src/scanio/old/scan_io_uos.cc @@ -0,0 +1,140 @@ +/** + * @file + * @brief Implementation of reading 3D scans + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "slam6d/scan_io_uos.h" +#include "slam6d/globals.icc" +#include +using std::ifstream; +#include +using std::cout; +using std::cerr; +using std::endl; + +#ifdef _MSC_VER +#include +#endif + +/** + * Reads specified scans from given directory. + * + * Scan poses will NOT be initialized after a call + * to this function. + * + * This function actually implements loading of 3D scans + * in UOS file format and will be compiled as shared lib. + * + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param dir The directory from which to read + * @param maxDist Reads only Points up to this Distance + * @param mindist Reads only Points from this Distance + * @param euler Initital pose estimates (will not be applied to the points + * @param ptss Vector containing the read points + */ +int ScanIO_uos::readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss) +{ + static int fileCounter = start; + string scanFileName; + string poseFileName; + + ifstream scan_in, pose_in; + + double maxDist2 = sqr(maxDist); + double minDist2 = sqr(mindist); + + int my_fileNr = fileCounter; + + if (end > -1 && fileCounter > end) return -1; // 'nuf read + scanFileName = dir + "scan" + to_string(fileCounter,3) + ".3d"; + poseFileName = dir + "scan" + to_string(fileCounter,3) + ".pose"; + + scan_in.open(scanFileName.c_str()); + pose_in.open(poseFileName.c_str()); + + // read 3D scan + if (!pose_in.good() && !scan_in.good()) return -1; // no more files in the directory + if (!pose_in.good()) { + cerr << "ERROR: Missing file " << poseFileName << endl; //exit(1); + cerr << "using default pose 0,0,0 !!!" << endl; + for (unsigned int i = 0; i < 6; euler[i++] = 0.0); + } else { + for (unsigned int i = 0; i < 6; pose_in >> euler[i++]); + } + + if (!scan_in.good()) { cerr << "ERROR: Missing file " << scanFileName << endl; exit(1); } + cout << "Processing Scan " << scanFileName; + + + cout << " @ pose (" << euler[0] << "," << euler[1] << "," << euler[2] + << "," << euler[3] << "," << euler[4] << "," << euler[5] << ")" << endl; + + // convert angles from deg to rad + for (unsigned int i = 3; i <= 5; i++) euler[i] = rad(euler[i]); + + // overread the first line + char dummy[255]; + scan_in.getline(dummy, 255); + + while (scan_in.good()) { + Point p; + try { + scan_in >> p; + } catch (...) { + break; + } + // load points up to a certain distance only + // maxDist2 = -1 indicates no limitation + if (maxDist == -1 || sqr(p.x) + sqr(p.y) + sqr(p.z) < maxDist2) + if (mindist == -1 || sqr(p.x) + sqr(p.y) + sqr(p.z) > minDist2) + ptss.push_back(p); + } + scan_in.close(); + scan_in.clear(); + pose_in.close(); + pose_in.clear(); + fileCounter++; + + return my_fileNr; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_uos; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/src/scanio/old/scan_io_uos_frames.cc b/src/scanio/old/scan_io_uos_frames.cc new file mode 100644 index 0000000..eb4a81d --- /dev/null +++ b/src/scanio/old/scan_io_uos_frames.cc @@ -0,0 +1,142 @@ +/** + * @file + * @brief Implementation of reading 3D scans + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Jochen Sprickerhof + */ + +#include "slam6d/scan_io_uos_frames.h" +#include "slam6d/globals.icc" +#include +using std::ifstream; +#include +using std::cout; +using std::cerr; +using std::endl; +#include +using std::exception; + +#ifdef _MSC_VER +#include +#endif + +/** + * Reads specified scans from given directory. + * + * Scan poses will NOT be initialized after a call + * to this function. + * + * This function actually implements loading of 3D scans + * in UOS file format and will be compiled as shared lib. + * + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param dir The directory from which to read + * @param maxDist Reads only Points up to this Distance + * @param minDist Reads only Points from this Distance + * @param euler Initital pose estimates (will not be applied to the points + * @param ptss Vector containing the read points + */ +int ScanIO_uos_frames::readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss) +{ + static int fileCounter = start; + string scanFileName; + string framesFileName; + + ifstream scan_in, frames_in; + + double maxDist2 = sqr(maxDist); + + int my_fileNr = fileCounter; + double transMat[16]; + int type; + + if (end > -1 && fileCounter > end) return -1; // 'nuf read + scanFileName = dir + "scan" + to_string(fileCounter,3) + ".3d"; + framesFileName = dir + "scan" + to_string(fileCounter,3) + ".frames"; + + scan_in.open(scanFileName.c_str()); + frames_in.open(framesFileName.c_str()); + + // read 3D scan + if (!frames_in.good() && !scan_in.good()) return -1; // no more files in the directory + if (!frames_in.good()) { cerr << "ERROR: Missing file " << framesFileName << endl; exit(1); } + if (!scan_in.good()) { cerr << "ERROR: Missing file " << scanFileName << endl; exit(1); } + cout << "Processing Scan " << scanFileName; + + while(frames_in) { + try { + frames_in >> transMat >> type; + } + catch(const exception &e) { + break; + } + } + Matrix4ToEuler(transMat, &euler[3], euler); + + cout << " @ pose (" << euler[0] << "," << euler[1] << "," << euler[2] + << "," << euler[3] << "," << euler[4] << "," << euler[5] << ")" << endl; + + // overread the first line + char dummy[255]; + scan_in.getline(dummy, 255); + + while (scan_in.good()) { + Point p; + try { + scan_in >> p; + } catch (...) { + break; + } + // load points up to a certain distance only + // maxDist2 = -1 indicates no limitation + if (maxDist == -1 || sqr(p.x) + sqr(p.y) + sqr(p.z) < maxDist2) + ptss.push_back(p); + } + scan_in.close(); + scan_in.clear(); + frames_in.close(); + frames_in.clear(); + fileCounter++; + + return my_fileNr; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_uos_frames; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/src/scanio/old/scan_io_uos_map.cc b/src/scanio/old/scan_io_uos_map.cc new file mode 100644 index 0000000..d3d7608 --- /dev/null +++ b/src/scanio/old/scan_io_uos_map.cc @@ -0,0 +1,231 @@ +/** + * @file + * @brief Implementation of reading 3D scans + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Jochen Sprickerhof + */ + +#include "slam6d/scan_io_uos_map.h" +#include "slam6d/globals.icc" +#include +using std::ifstream; +#include +using std::cout; +using std::cerr; +using std::endl; + +#ifdef _MSC_VER +#include +#endif + +/** + * Reads specified scans from given directory. + * + * Scan poses will NOT be initialized after a call + * to this function. + * + * This function actually implements loading of 3D scans + * in UOS file format and will be compiled as shared lib. + * + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param dir The directory from which to read + * @param maxDist Reads only Points up to this Distance + * @param minDist Reads only Points from this Distance + * @param euler Initital pose estimates (will not be applied to the points + * @param ptss Vector containing the read points + */ +int ScanIO_uos_map::readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss) +{ + static int fileCounter = start - 1; + string scanFileName; + string poseFileName; + + ifstream scan_in, pose_in; + + double maxDist2 = sqr(maxDist); + + int my_fileNr = fileCounter; + + if (end > -1 && fileCounter > end) return -1; // 'nuf read + + if (fileCounter == start - 1) { + + double c, s; + + // read map as first 3D scan +#define READ_MAP +#ifdef READ_MAP + scanFileName = dir + "Uni_Hannover.map"; + scan_in.open(scanFileName.c_str()); + + if (!scan_in.good()) { cerr << "ERROR: Missing file " << scanFileName << endl; exit(1); } + cout << "Processing 3D Map " << scanFileName << endl; + + euler[0] = euler[1] = euler[2] = euler[3] = euler[4] = euler[5] = 0.0; + + c = cos(rad(-191.0)); + s = sin(rad(-191.0)); + + while (scan_in.good()) { + double x1, x2, z1, z2; + double x1_t, x2_t, z1_t, z2_t; + + scan_in >> x1_t >> z1_t >> x2_t >> z2_t; + + x1_t = (x1_t - 113.07) * 100; + x2_t = (x2_t - 113.07) * 100; + z1_t = (z1_t + 64.05) * 100; + z2_t = (z2_t + 64.05) * 100; + + x1 = x1_t * c + z1_t * s; + z1 = - x1_t * s + z1_t * c; + + x2 = x2_t * c + z2_t * s; + z2 = - x2_t * s + z2_t * c; + + double length = sqrt(sqr(x2-x1) + sqr(z2-z1)); + double n_x = (x2 - x1) / length; + double n_z = (z2 - z1) / length; + + for (double t = 0.0; t < length; t += 25.0) { + Point p; + p.x = x1 + t * n_x - 713.832183017; + p.z = z1 + t * n_z - 1238.220671; + for (double y = -15.0; y < 1000; y += 25) { + p.y = y + 13.8808; + ptss.push_back(p); + } + } + } + cout << ptss.size() << endl; + scan_in.close(); + scan_in.clear(); +#endif + +#define READ_AERIAL +#ifdef READ_AERIAL + scanFileName = dir + "bereich_uni.txt"; + scan_in.open(scanFileName.c_str()); + + if (!scan_in.good()) { cerr << "ERROR: Missing file " << scanFileName << endl; exit(1); } + cout << "Processing 3D Aerial Map " << scanFileName << endl; + + euler[0] = euler[1] = euler[2] = euler[3] = euler[4] = euler[5] = 0.0; + + c = cos(rad(-191.0)); + s = sin(rad(-191.0)); + + while (scan_in.good()) { + double x1, z1; + double x1_t, y1_t, z1_t; + + scan_in >> x1_t >> z1_t >> y1_t; + + x1_t = (x1_t - 3548500 - 113.07) * 100; + z1_t = (z1_t - 5806400 + 64.05) * 100; + y1_t = (y1_t - 55.0) * 100; + + x1 = x1_t * c + z1_t * s; + z1 = - x1_t * s + z1_t * c; + + Point p; + p.x = x1 - 713.832183017; + p.z = z1 - 1238.220671; + p.y = y1_t + 13.8808; + ptss.push_back(p); + + } + cout << "Map containts " << ptss.size() << " points" << endl; + scan_in.close(); + scan_in.clear(); +#endif + cout << "DONE" << endl; + fileCounter++; + + return 1; + } + + scanFileName = dir + "scan" + to_string(fileCounter,3) + ".3d"; + poseFileName = dir + "scan" + to_string(fileCounter,3) + ".pose"; + + scan_in.open(scanFileName.c_str()); + pose_in.open(poseFileName.c_str()); + + // read 3D scan + if (!pose_in.good() && !scan_in.good()) return -1; // no more files in the directory + if (!pose_in.good()) { cerr << "ERROR: Missing file " << poseFileName << endl; exit(1); } + if (!scan_in.good()) { cerr << "ERROR: Missing file " << scanFileName << endl; exit(1); } + cout << "Processing Scan " << scanFileName; + + for (unsigned int i = 0; i < 6; pose_in >> euler[i++]); + + cout << " @ pose (" << euler[0] << "," << euler[1] << "," << euler[2] + << "," << euler[3] << "," << euler[4] << "," << euler[5] << ")" << endl; + + // convert angles from deg to rad + for (unsigned int i = 3; i <= 5; i++) euler[i] = rad(euler[i]); + + // overread the first line + char dummy[255]; + scan_in.getline(dummy, 255); + + while (scan_in.good()) { + Point p; + try { + scan_in >> p; + } catch (...) { + break; + } + // load points up to a certain distance only + // maxDist2 = -1 indicates no limitation + if (maxDist == -1 || sqr(p.x) + sqr(p.y) + sqr(p.z) < maxDist2) + ptss.push_back(p); + } + scan_in.close(); + scan_in.clear(); + pose_in.close(); + pose_in.clear(); + fileCounter++; + + return my_fileNr; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_uos_map; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/src/scanio/old/scan_io_uos_map_frames.cc b/src/scanio/old/scan_io_uos_map_frames.cc new file mode 100644 index 0000000..f6b5398 --- /dev/null +++ b/src/scanio/old/scan_io_uos_map_frames.cc @@ -0,0 +1,241 @@ +/** + * @file + * @brief Implementation of reading 3D scans + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Jochen Sprickerhof + */ + +#include "slam6d/scan_io_uos_map_frames.h" +#include "slam6d/globals.icc" +#include +using std::ifstream; +#include +using std::cout; +using std::cerr; +using std::endl; +#include +using std::exception; + + +#ifdef _MSC_VER +#include +#endif + +/** + * Reads specified scans from given directory. + * + * Scan poses will NOT be initialized after a call + * to this function. + * + * This function actually implements loading of 3D scans + * in UOS file format and will be compiled as shared lib. + * + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param dir The directory from which to read + * @param maxDist Reads only Points up to this Distance + * @param minDist Reads only Points from this Distance + * @param euler Initital pose estimates (will not be applied to the points + * @param ptss Vector containing the read points + */ +int ScanIO_uos_map_frames::readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss) +{ + static int fileCounter = start - 1; + string scanFileName; + string framesFileName; + + ifstream scan_in, frames_in; + + double maxDist2 = sqr(maxDist); + + int my_fileNr = fileCounter; + double transMat[16]; + int type; + + if (end > -1 && fileCounter > end) return -1; // 'nuf read + + if (fileCounter == start - 1) { + + double c, s; + + // read map as first 3D scan +#define READ_MAP +#ifdef READ_MAP + scanFileName = dir + "Uni_Hannover.map"; + scan_in.open(scanFileName.c_str()); + + if (!scan_in.good()) { cerr << "ERROR: Missing file " << scanFileName << endl; exit(1); } + cout << "Processing 3D Map " << scanFileName << endl; + + euler[0] = euler[1] = euler[2] = euler[3] = euler[4] = euler[5] = 0.0; + + c = cos(rad(-191.0)); + s = sin(rad(-191.0)); + + while (scan_in.good()) { + double x1, x2, z1, z2; + double x1_t, x2_t, z1_t, z2_t; + + scan_in >> x1_t >> z1_t >> x2_t >> z2_t; + + x1_t = (x1_t - 113.07) * 100; + x2_t = (x2_t - 113.07) * 100; + z1_t = (z1_t + 64.05) * 100; + z2_t = (z2_t + 64.05) * 100; + + x1 = x1_t * c + z1_t * s; + z1 = - x1_t * s + z1_t * c; + + x2 = x2_t * c + z2_t * s; + z2 = - x2_t * s + z2_t * c; + + double length = sqrt(sqr(x2-x1) + sqr(z2-z1)); + double n_x = (x2 - x1) / length; + double n_z = (z2 - z1) / length; + + for (double t = 0.0; t < length; t += 25.0) { + Point p; + p.x = x1 + t * n_x - 713.832183017; + p.z = z1 + t * n_z - 1238.220671; + for (double y = -15.0; y < 1000; y += 25) { + p.y = y + 13.8808; + ptss.push_back(p); + } + } + } + cout << ptss.size() << endl; + scan_in.close(); + scan_in.clear(); +#endif + +#define READ_AERIAL +#ifdef READ_AERIAL + scanFileName = dir + "bereich_uni.txt"; + scan_in.open(scanFileName.c_str()); + + if (!scan_in.good()) { cerr << "ERROR: Missing file " << scanFileName << endl; exit(1); } + cout << "Processing 3D Aerial Map " << scanFileName << endl; + + euler[0] = euler[1] = euler[2] = euler[3] = euler[4] = euler[5] = 0.0; + + c = cos(rad(-191.0)); + s = sin(rad(-191.0)); + + while (scan_in.good()) { + double x1, z1; + double x1_t, y1_t, z1_t; + + scan_in >> x1_t >> z1_t >> y1_t; + + x1_t = (x1_t - 3548500 - 113.07) * 100; + z1_t = (z1_t - 5806400 + 64.05) * 100; + y1_t = (y1_t - 55.0) * 100; + + x1 = x1_t * c + z1_t * s; + z1 = - x1_t * s + z1_t * c; + + Point p; + p.x = x1 - 713.832183017; + p.z = z1 - 1238.220671; + p.y = y1_t + 13.8808; + ptss.push_back(p); + + } + cout << "Map containts " << ptss.size() << " points" << endl; + scan_in.close(); + scan_in.clear(); +#endif + cout << "DONE" << endl; + fileCounter++; + + return 1; + } + + scanFileName = dir + "scan" + to_string(fileCounter,3) + ".3d"; + framesFileName = dir + "scan" + to_string(fileCounter,3) + ".frames"; + + scan_in.open(scanFileName.c_str()); + frames_in.open(framesFileName.c_str()); + + // read 3D scan + if (!frames_in.good() && !scan_in.good()) return -1; // no more files in the directory + if (!frames_in.good()) { cerr << "ERROR: Missing file " << framesFileName << endl; exit(1); } + if (!scan_in.good()) { cerr << "ERROR: Missing file " << scanFileName << endl; exit(1); } + cout << "Processing Scan " << scanFileName; + + while(frames_in) { + try { + frames_in >> transMat >> type; + } + catch(const exception &e) { + break; + } + } + Matrix4ToEuler(transMat, &euler[3], euler); + + cout << " @ pose (" << euler[0] << "," << euler[1] << "," << euler[2] + << "," << euler[3] << "," << euler[4] << "," << euler[5] << ")" << endl; + + // overread the first line + char dummy[255]; + scan_in.getline(dummy, 255); + + while (scan_in.good()) { + Point p; + try { + scan_in >> p; + } catch (...) { + break; + } + // load points up to a certain distance only + // maxDist2 = -1 indicates no limitation + if (maxDist == -1 || sqr(p.x) + sqr(p.y) + sqr(p.z) < maxDist2) + ptss.push_back(p); + } + scan_in.close(); + scan_in.clear(); + frames_in.close(); + frames_in.clear(); + fileCounter++; + + return my_fileNr; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_uos_map_frames; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/src/scanio/old/scan_io_uos_rgb.cc b/src/scanio/old/scan_io_uos_rgb.cc new file mode 100644 index 0000000..0a4948b --- /dev/null +++ b/src/scanio/old/scan_io_uos_rgb.cc @@ -0,0 +1,141 @@ +/** + * @file + * @brief Implementation of reading 3D scans + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "slam6d/scan_io_uos_rgb.h" +#include "slam6d/globals.icc" +#include +using std::ifstream; +#include +using std::cout; +using std::cerr; +using std::endl; + +#ifdef _MSC_VER +#include +#endif + +/** + * Reads specified scans from given directory. + * + * Scan poses will NOT be initialized after a call + * to this function. + * + * This function actually implements loading of 3D scans + * in UOS file format including color information and will be compiled as + * shared lib. + * + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param dir The directory from which to read + * @param maxDist Reads only Points up to this Distance + * @param minDist Reads only Points from this Distance + * @param euler Initital pose estimates (will not be applied to the points + * @param ptss Vector containing the read points + */ +int ScanIO_uos_rgb::readScans(int start, int end, string &dir, int maxDist, int minDist, + double *euler, vector &ptss) +{ + static int fileCounter = start; + string scanFileName; + string poseFileName; + + ifstream scan_in, pose_in; + + double maxDist2 = sqr(maxDist); + double minDist2 = sqr(minDist); + + int my_fileNr = fileCounter; + + if (end > -1 && fileCounter > end) return -1; // 'nuf read + scanFileName = dir + "scan" + to_string(fileCounter,3) + ".3d"; + poseFileName = dir + "scan" + to_string(fileCounter,3) + ".pose"; + + scan_in.open(scanFileName.c_str()); + pose_in.open(poseFileName.c_str()); + + // read 3D scan + if (!pose_in.good() && !scan_in.good()) return -1; // no more files in the directory + if (!pose_in.good()) { cerr << "ERROR: Missing file " << poseFileName << endl; exit(1); } + if (!scan_in.good()) { cerr << "ERROR: Missing file " << scanFileName << endl; exit(1); } + cout << "Processing Scan " << scanFileName; + + for (unsigned int i = 0; i < 6; pose_in >> euler[i++]); + + cout << " @ pose (" << euler[0] << "," << euler[1] << "," << euler[2] + << "," << euler[3] << "," << euler[4] << "," << euler[5] << ")" << endl; + + // convert angles from deg to rad + for (unsigned int i = 3; i <= 5; i++) euler[i] = rad(euler[i]); + + // overread the first line + char dummy[255]; + scan_in.getline(dummy, 255); + + int r, g, b; + while (scan_in.good()) { + Point p; + try { + scan_in >> p; + scan_in >> r >> g >> b; + p.rgb[0] = (char)r; + p.rgb[1] = (char)g; + p.rgb[2] = (char)b; + + } catch (...) { + break; + } + // load points up to a certain distance only + // maxDist2 = -1 indicates no limitation + if (maxDist == -1 || sqr(p.x) + sqr(p.y) + sqr(p.z) < maxDist2) + if (minDist == -1 || sqr(p.x) + sqr(p.y) + sqr(p.z) > minDist2) + ptss.push_back(p); + } + scan_in.close(); + scan_in.clear(); + pose_in.close(); + pose_in.clear(); + fileCounter++; + + return my_fileNr; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_uos_rgb; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/src/scanio/old/scan_io_velodyne.cc b/src/scanio/old/scan_io_velodyne.cc new file mode 100644 index 0000000..9f33f85 --- /dev/null +++ b/src/scanio/old/scan_io_velodyne.cc @@ -0,0 +1,463 @@ +/** + * @file + * @brief Implementation of reading 3D scans + * @author Andreas Nuechter. Jacobs University Bremen gGmbH + * @author Dorit Borrmann. Smart Systems Group, Jacobs University Bremen gGmbH, Germany. + */ + +#include "veloslam/velodefs.h" +#include "slam6d/scan_io_velodyne.h" +#include "slam6d/globals.icc" +#include +using std::ifstream; +#include +using std::cerr; +using std::endl; + +#include +using std::swap; + +#include +#include +#include +#include +#include + +using namespace std; + +#ifdef _MSC_VER +#include +#endif + +#define BLOCK_OFFSET 42+16 + +#define BLOCK_SIZE 1206 +#define CIRCLELENGTH 360 +#define VELODYNE_NUM_LASERS 64 +#define CircleBufferSize CIRCLELENGTH*32*12 +#define CIRCLEROUND CIRCLELENGTH*6 + + +#define RADIANS_PER_LSB 0.0174532925 +#define METERS_PER_LSB 0.002 +#define METERS_PER_CM 0.01 + +#define TWOPI_INV (0.5/M_PI) +#define TWOPI (2*M_PI) + +typedef struct raw_packet + { + unsigned char dat[1200]; + unsigned short revolution; + unsigned char status[4]; + } raw_packet_t; + + +typedef unsigned char BYTE; + +long CountOfLidar = 0; + +// 我们借到的雷达的标定数据 +double velodyne_calibrated[VELODYNE_NUM_LASERS][5] = +{ + { -7.1581192, -4.5, 102, 21.560343, -2.5999999}, + { -6.8178215, -3.4000001, 125, 21.516994, 2.5999999}, + { 0.31782165, 3, 130, 20.617426, -2.5999999}, + { 0.65811908, 4.5999999, 128, 20.574717, 2.5999999}, + { -6.4776502, -0.5, 112, 21.473722, -2.5999999}, + { -6.1375928, 1, 125, 21.430525, 2.5999999}, + { -8.520812, -1.5, 106, 21.734608, -2.5999999}, + { -8.1798887, 0.40000001, 127, 21.690901, 2.5999999}, + { -5.797637, 4, 111, 21.387396, -2.5999999}, + { -5.4577708, 5.5, 126, 21.34433, 2.5999999}, + { -7.8391404, 3.0999999, 113, 21.647291, -2.5999999}, + { -7.4985547, 4.5, 123, 21.603773, 2.5999999}, + { -3.0802133, -4.5, 105, 21.044245, -2.5999999}, + { -2.7406337, -3.2, 133, 21.001518, 2.5999999}, + { -5.1179824, -5.5, 110, 21.301321, -2.5999999}, + { -4.7782598, -4, 129, 21.258366, 2.5999999}, + { -2.4010365, -0.2, 111, 20.958813, -2.5999999}, + { -2.0614092, 1, 130, 20.916126, 2.5999999}, + { -4.4385905, -1.2, 115, 21.215462, -2.5999999}, + { -4.0989642, 0, 133, 21.172602, 2.5999999}, + { -1.7217404, 3.8, 113, 20.873451, -2.5999999}, + { -1.3820176, 5, 130, 20.830786, 2.5999999}, + { -3.7593663, 3, 117, 21.129782, -2.5999999}, + { -3.4197867, 4.5, 129, 21.086998, 2.5999999}, + { 0.998555, -4.5, 107, 20.531982, -2.5999999}, + { 1.339141, -3.2, 131, 20.489222, 2.5999999}, + { -1.0422293, -5.4000001, 128, 20.788124, -2.5999999}, + { -0.70236301, -4, 134, 20.745461, 2.5999999}, + { 1.679889, -0.5, 124, 20.446428, -2.5999999}, + { 2.0208123, 1, 136, 20.403601, 2.5999999}, + { -0.36240739, -1.5, 131, 20.702793, -2.5999999}, + { -0.022349782, 0.2, 136, 20.660116, 2.5999999}, + { -22.737886, -7.8000002, 101, 16.019152, -2.5999999}, + { -22.226072, -5, 88, 15.954137, 2.5999999}, + { -11.513928, 4.5, 121, 14.680806, -2.5999999}, + { -11.002114, 7.4000001, 88, 14.623099, 2.5999999}, + { -21.714685, -1, 94, 15.889649, -2.5999999}, + { -21.203688, 2, 88, 15.82566, 2.5999999}, + { -24.790272, -2.5, 114, 16.284933, -2.5999999}, + { -24.276321, 0.5, 89, 16.217583, 2.5999999}, + { -20.693031, 6, 98, 15.762167, -2.5999999}, + { -20.182682, 9, 92, 15.699132, 2.5999999}, + { -23.762968, 4.5, 107, 16.15085, -2.5999999}, + { -23.250172, 7.5, 80, 16.084715, 2.5999999}, + { -16.615318, -7.5, 121, 15.26925, -2.5999999}, + { -16.105938, -5, 92, 15.209245, 2.5999999}, + { -19.672594, -9, 119, 15.63654, -2.5999999}, + { -19.162729, -6, 89, 15.574372, 2.5999999}, + { -15.596496, -1, 109, 15.14954, -2.5999999}, + { -15.086954, 2, 88, 15.090119, 2.5999999}, + { -18.653046, -2, 117, 15.51261, -2.5999999}, + { -18.143503, 0.69999999, 88, 15.451235, 2.5999999}, + { -14.577271, 5.5, 112, 15.030966, -2.5999999}, + { -14.067405, 8.3999996, 87, 14.972065, 2.5999999}, + { -17.634062, 5, 119, 15.390228, -6.1999998}, + { -17.124681, 7.5, 97, 15.329572, 2.5999999}, + { -10.489829, -7.5, 119, 14.565539, -2.5999999}, + { -9.9770317, -4.6999998, 95, 14.508112, 2.5999999}, + { -13.557318, -8.5, 126, 14.913401, -2.5999999}, + { -13.046968, -6, 92, 14.854958, 2.5999999}, + { -9.4636793, -1, 112, 14.450804, -2.5999999}, + { -8.949728, 1.5, 93, 14.3936, 2.5999999}, + { -12.536313, -2, 121, 14.796721, -2.5999999}, + { -12.025314, 0.40000001, 96, 14.738676, 2.5999999}, +}; + +double rotCorrection[VELODYNE_NUM_LASERS]; +double vertCorrection[VELODYNE_NUM_LASERS]; +double distCorrection[VELODYNE_NUM_LASERS]; +double vertoffsetCorrection[VELODYNE_NUM_LASERS]; +double horizdffsetCorrection[VELODYNE_NUM_LASERS]; + +int physical2logical[VELODYNE_NUM_LASERS]; +int logical2physical[VELODYNE_NUM_LASERS]; + +double absf ( double a ) +{ + if ( a < 0 ) + return -a; + return a; +} + +int velodyne_physical_to_logical ( int phys ) +{ + return physical2logical[phys]; +} + +int velodyne_logical_to_physical ( int logical ) +{ + return logical2physical[logical]; +} + +int laser_phi_compare(const void *_a, const void *_b) +{ + int a = *((int*) _a); + int b = *((int*) _b); + + if (velodyne_calibrated[a][0] < velodyne_calibrated[b][0]) + return -1; + + return 1; +} + +/** valid only for v > 0 **/ +static inline double mod2pi_positive(double vin) +{ + double q = vin * TWOPI_INV + 0.5; + int qi = (int) q; + + return vin - qi*TWOPI; +} + +/** Map v to [-PI, PI] **/ +static inline double mod2pi(double vin) +{ + if (vin < 0) + return -mod2pi_positive(-vin); + else + return mod2pi_positive(vin); +} + +/** Return vin such that it is within PI degrees of ref **/ +static inline double mod2pi_ref(double ref, double vin) +{ + return ref + mod2pi(vin - ref); +} + +int velodyne_calib_precompute() +{ + int i; + int logical; + for ( i = 0; i < VELODYNE_NUM_LASERS; i++ ) + logical2physical[i] = i; + + qsort ( logical2physical, VELODYNE_NUM_LASERS, sizeof ( int ), laser_phi_compare ); + + for ( logical = 0; logical < VELODYNE_NUM_LASERS; logical++ ) + { + physical2logical[logical2physical[logical]] = logical; + } + + //vertCorrection rotCorrection distCorrection vertOffsetCorrection horizOffsetCorrection + for ( i = 0; i < VELODYNE_NUM_LASERS; i++ ) + { + vertCorrection[i] = velodyne_calibrated[i][0] * RADIANS_PER_LSB; + rotCorrection[i] = velodyne_calibrated[i][1] * RADIANS_PER_LSB; + distCorrection[i] = velodyne_calibrated[i][2] * METERS_PER_CM; + vertoffsetCorrection[i] = velodyne_calibrated[i][3] * METERS_PER_CM; + horizdffsetCorrection[i] = velodyne_calibrated[i][4] * METERS_PER_CM; + } + + return 0; +} + +int read_one_packet ( FILE *fp, vector &ptss, int maxDist, int minDist ) +{ + int maxDist2 = sqr(maxDist); + int minDist2 = sqr(minDist); + + int c, i, j; + unsigned char Head; + BYTE buf[BLOCK_SIZE]; + Point point; + BYTE *p; + unsigned short *ps; + unsigned short *pshort; + unsigned short *pt; + + double ctheta; + double theta, phi; + + double sin_ctheta, cos_ctheta; + double sin_theta, cos_theta; + double sin_phi, cos_phi; + + unsigned short physicalNO; + unsigned short logicalNO; + + float rotational; + float distance; + float corredistance; + int intensity; + int physical; + int size; + + unsigned short rot; + double x, y, z; + + int circle_col = 0; + int circle_row = 0; + + for ( c = 0 ; c < CIRCLELENGTH; c++ ) + { +#ifdef _MSC_VER + fseek(fp , BLOCK_OFFSET, SEEK_CUR); +#else + fseeko(fp , BLOCK_OFFSET, SEEK_CUR); +#endif + size=fread ( buf, 1, BLOCK_SIZE, fp ); + + if(size 2.2 ) + { + BYTE *inty = ( BYTE * ) ( p + 4 + j * 3 + 2 ); + intensity = *inty; + + ctheta = 2 * M_PI - rotational * RADIANS_PER_LSB; + if ( ctheta == 2*M_PI ) + ctheta = 0; + + sin_ctheta = sin ( ctheta ); + cos_ctheta = cos ( ctheta ); + + //vertCorrection rotCorrection distCorrection vertOffsetCorrection horizOffsetCorrection + // corredistance = ( distance + distCorrection[physicalNO] ) * ( 1.0 + vertoffsetCorrection[physicalNO] ); + corredistance = ( distance + distCorrection[physicalNO] ) ; + theta = mod2pi_ref ( M_PI, ctheta + rotCorrection[physicalNO] ); /////////????//////// + phi = vertCorrection[physicalNO]; ////////?????///////////////// + + sin_theta = sin ( theta ); + cos_theta = cos ( theta ); + sin_phi = sin ( phi ); + cos_phi = cos ( phi ); + + /////////////////////?a??×?±ê///////////////////// + x = corredistance * cos_theta * cos_phi; + y = corredistance * sin_theta * cos_phi; + z = corredistance * sin_phi +vertoffsetCorrection[physicalNO]*cos_phi; + + x -= horizdffsetCorrection[physicalNO] * cos_ctheta; + y -= horizdffsetCorrection[physicalNO] * sin_ctheta; + + point.rad = sqrt( x*x + y*y ); + point.tan_theta = y/x; + + // point.type|=POINT_TYPE_INVALID; + + point.type = POINT_TYPE_GROUND; + point.x=x*100; + point.y=z*100; + point.z=-y*100; + { + ptss.push_back(point); + } + } + } + p = p + 100; + ps = ( unsigned short * ) p; + } + + + } + + return 0; +} + + +/** + * Reads specified scans from given directory in + * the file format Riegl Laser Measurement GmbH + * uses. It will be compiled as shared lib. + * + * Scan poses will NOT be initialized after a call + * to this function. Initial pose estimation works + * only with the -p switch, i.e., trusting the initial + * estimations by Riegl. + * + * The scans have to be exported from the Riegl software + * as follows: + * 1. Export point cloud data to ASCII + * Use Scanners own Coordinate System (SOCS) + * X Y Z Range Theta Phi Reflectance + * 2. Export acqusition location (after you have registered + * with the Riegl software) + * Export SOP + * Write out as .dat file + * + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param dir The directory from which to read + * @param maxDist Reads only Points up to this Distance + * @param minDist Reads only Points from this Distance + * @param euler Initital pose estimates (will not be applied to the points + * @param ptss Vector containing the read points + */ +int ScanIO_velodyne::readScans(int start, int end, string &dir, int maxDist, int minDist, + double *euler, vector &ptss) +{ + static int fileCounter = start; + string scanFileName; + FILE *scan_in; + + if (end > -1 && fileCounter > end) return -1; // 'nuf read + + scanFileName = dir + "scan" + ".bin"; +#ifdef _MSC_VER + scan_in = fopen(scanFileName.c_str(),"rb"); +#else + scan_in = fopen64(scanFileName.c_str(),"rb"); +#endif + + if(scan_in == NULL) + { + cerr< +using std::ifstream; +#include +using std::cerr; +using std::endl; + +#include +using std::swap; + +#include +#include +#include +#include +#include + +using namespace std; + + +#ifdef _MSC_VER +#include +#endif + +#ifdef _MSC_VER +#include "XGetopt.h" +#else +#include +#endif + + +#define BLOCK_OFFSET 42+16 + +#define BLOCK_SIZE 1206 +#define CIRCLELENGTH 260 +#define VELODYNE_NUM_LASERS 64 +#define CircleBufferSize CIRCLELENGTH*32*12 +#define CIRCLEROUND CIRCLELENGTH*6 + + +#define RADIANS_PER_LSB 0.0174532925 +#define METERS_PER_LSB 0.002 +#define METERS_PER_CM 0.01 + +#define TWOPI_INV (0.5/M_PI) +#define TWOPI (2*M_PI) + +typedef struct raw_packet + { + unsigned char dat[1200]; + unsigned short revolution; + unsigned char status[4]; + } raw_packet_t; + + +typedef unsigned char BYTE; + + + +struct velodyne_sample +{ + float xyz[3]; // calibrated, projected into velodyne coordinate system + float distance; + float corredistance; + + unsigned short rot; + float rotational; + BYTE intensity; + + float theta,phi; + int offset; + + + float normal; + float normal_theta; + float smooth; + + float scanline_drtZ; + float scanline_drtD; + float scanline_countZ; + float scanline_countD; + + /////////////////////////Type of Points cloud///////////////////////////////// + int classType; // 0 nused , 1 road , 2 build , 3 Tree , 4 person ,5 car , 6 ground +}; + + +long CountOfLidar = 0; + + +double velodyne_calibrated[VELODYNE_NUM_LASERS][5] = +{ + //vertCorrection rotCorrection distCorrection vertOffsetCorrection horizOffsetCorrection + { -7.158120, -4.954240, 0.000000 , 0.000000 , -4.000000 }, // laser 0 + { -6.817820, -2.814700, 0.000000 , 0.000000 , 4.000000 }, // laser 1 + { 0.317822, 2.814740, 0.000000 , 0.000000 , -4.000000 }, // laser 2 + { 0.658119, 4.954230, 0.000000 , 0.000000 , 4.000000 }, // laser 3 + { -6.477650, -0.679162, 0.000000 , 0.000000 , -4.000000 }, // laser 4 + { -6.137590, 1.455470, 0.000000 , 0.000000 , 4.000000 }, // laser 5 + { -8.520810, -1.455470, 0.000000 , 0.000000 , -4.000000 }, // laser 6 + { -8.179890, 0.679162, 0.000000 , 0.000000 , 4.000000 }, // laser 7 + { -5.797640, 3.592120, 0.000000 , 0.000000 , -4.000000 }, // laser 8 + { -5.457770, 5.733800, 0.000000 , 0.000000 , 4.000000 }, // laser 9 + { -7.839140, 2.814740, 0.000000 , 0.000000 , -4.000000 }, // laser 10 + { -7.498560, 4.954200, 0.000000 , 0.000000 , 4.000000 }, // laser 11 + { -3.080210, -4.954240, 0.000000 , 0.000000 , -4.000000 }, // laser 12 + { -2.740630, -2.814700, 0.000000 , 0.000000 , 4.000000 }, // laser 13 + { -5.117980, -5.733800, 0.000000 , 0.000000 , -4.000000 }, // laser 14 + { -4.778260, -3.592120, 0.000000 , 0.000000 , 4.000000 }, // laser 15 + { -2.401040, -0.679162, 0.000000 , 0.000000 , -4.000000 }, // laser 16 + { -2.061410, 1.455470, 0.000000 , 0.000000 , 4.000000 }, // laser 17 + { -4.438590, -1.455470, 0.000000 , 0.000000 , -4.000000 }, // laser 18 + { -4.098960, 0.679162, 0.000000 , 0.000000 , 4.000000 }, // laser 19 + { -1.721740, 3.592120, 0.000000 , 0.000000 , -4.000000 }, // laser 20 + { -1.382020, 5.733800, 0.000000 , 0.000000 , 4.000000 }, // laser 21 + { -3.759370, 2.814740, 0.000000 , 0.000000 , -4.000000 }, // laser 22 + { -3.419790, 4.954240, 0.000000 , 0.000000 , 4.000000 }, // laser 23 + { 0.998555, -4.954240, 0.000000 , 0.000000 , -4.000000 }, // laser 24 + { 1.339140, -2.814740, 0.000000 , 0.000000 , 4.000000 }, // laser 25 + { -1.042230, -5.733800, 0.000000 , 0.000000 , -4.000000 }, // laser 26 + { -0.702363, -3.592120, 0.000000 , 0.000000 , 4.000000 }, // laser 27 + { 1.679890, -0.679162, 0.000000 , 0.000000 , -4.000000 }, // laser 28 + { 2.020810, 1.455470, 0.000000 , 0.000000 , 4.000000 }, // laser 29 + { -0.362407, -1.455470, 0.000000 , 0.000000 , -4.000000 }, // laser 30 + { -0.022350, 0.679162, 0.000000 , 0.000000 , 4.000000 }, // laser 31 + { -22.737886, -7.443011, 0.000000 , 0.000000 , -4.000000 }, // laser 32 + { -22.226072, -4.224233, 0.000000 , 0.000000 , 4.000000 }, // laser 33 + { -11.513928, 4.224233, 0.000000 , 0.000000 , -4.000000 }, // laser 34 + { -11.002114, 7.443011, 0.000000 , 0.000000 , 4.000000 }, // laser 35 + { -21.714685, -1.018773, 0.000000 , 0.000000 , -4.000000 }, // laser 36 + { -21.203688, 2.183498, 0.000000 , 0.000000 , 4.000000 }, // laser 37 + { -24.790272, -2.183498, 0.000000 , 0.000000 , -4.000000 }, // laser 38 + { -24.276321, 1.018773, 0.000000 , 0.000000 , 4.000000 }, // laser 39 + { -20.693031, 5.3926148, 0.000000 , 0.000000 , -4.000000 }, // laser 40 + { -20.182682, 8.6188126, 0.000000 , 0.000000 , 4.000000 }, // laser 41 + { -23.762968, 4.2242332, 0.000000 , 0.000000 , -4.000000 }, // laser 42 + { -23.250172, 7.4430108, 0.000000 , 0.000000 , 4.000000 }, // laser 43 + { -16.615318, -7.4430108, 0.000000 , 0.000000 , -4.000000 }, // laser 44 + { -16.105938, -4.2242332, 0.000000 , 0.000000 , 4.000000 }, // laser 45 + { -19.672594, -8.6188126, 0.000000 , 0.000000 , -4.000000 }, // laser 46 + { -19.162729, -5.3926148, 0.000000 , 0.000000 , 4.000000 }, // laser 47 + { -15.596496, -1.018773, 0.000000 , 0.000000 , -4.000000 }, // laser 48 + { -15.086954, 2.1834979, 0.000000 , 0.000000 , 4.000000 }, // laser 49 + { -18.653046, -2.1834979, 0.000000 , 0.000000 , -4.000000 }, // laser 50 + { -18.143503, 1.018773, 0.000000 , 0.000000 , 4.000000 }, // laser 51 + { -14.577271, 5.3926148, 0.000000 , 0.000000 , -4.000000 }, // laser 52 + { -14.067405, 8.6188126, 0.000000 , 0.000000 , 4.000000 }, // laser 53 + { -17.634062, 4.2242332, 0.000000 , 0.000000 , -4.000000 }, // laser 54 + { -17.124681, 7.4430108, 0.000000 , 0.000000 , 4.000000 }, // laser 55 + { -10.489829, -7.4430108, 0.000000 , 0.000000 , -4.000000 }, // laser 56 + { -9.9770317, -4.2242332, 0.000000 , 0.000000 , 4.000000 }, // laser 57 + { -13.557318, -8.6188126, 0.000000 , 0.000000 , -4.000000 }, // laser 58 + { -13.046968, -5.3926148, 0.000000 , 0.000000 , 4.000000 }, // laser 59 + { -9.4636793, -1.018773, 0.000000 , 0.000000 , -4.000000 }, // laser 60 + { -8.949728, 2.1834979, 0.000000 , 0.000000 , 4.000000 }, // laser 61 + { -12.536313, -2.1834979, 0.000000 , 0.000000 , -4.000000 }, // laser 62 + { -12.025314, 1.018773, 0.000000 , 0.000000 , 4.000000 }, // laser 63 +}; + + + +double rotCorrection[VELODYNE_NUM_LASERS]; +double vertCorrection[VELODYNE_NUM_LASERS]; +double distCorrection[VELODYNE_NUM_LASERS]; +double vertoffsetCorrection[VELODYNE_NUM_LASERS]; +double horizdffsetCorrection[VELODYNE_NUM_LASERS]; + +int physical2logical[VELODYNE_NUM_LASERS]; +int logical2physical[VELODYNE_NUM_LASERS]; + +double absf ( double a ) +{ + if ( a < 0 ) + return -a; + return a; +} + + +int velodyne_physical_to_logical ( int phys ) +{ + return physical2logical[phys]; +} + +int velodyne_logical_to_physical ( int logical ) +{ + return logical2physical[logical]; +} + +int laser_phi_compare(const void *_a, const void *_b) +{ + int a = *((int*) _a); + int b = *((int*) _b); + + if (velodyne_calibrated[a][0] < velodyne_calibrated[b][0]) + return -1; + + return 1; +} + +/** valid only for v > 0 **/ +static inline double mod2pi_positive(double vin) +{ + double q = vin * TWOPI_INV + 0.5; + int qi = (int) q; + + return vin - qi*TWOPI; +} + +/** Map v to [-PI, PI] **/ +static inline double mod2pi(double vin) +{ + if (vin < 0) + return -mod2pi_positive(-vin); + else + return mod2pi_positive(vin); +} + +/** Return vin such that it is within PI degrees of ref **/ +static inline double mod2pi_ref(double ref, double vin) +{ + return ref + mod2pi(vin - ref); +} + + + + +int velodyne_calib_precompute() +{ + int i; + int logical; + for ( i = 0; i < VELODYNE_NUM_LASERS; i++ ) + logical2physical[i] = i; + + qsort ( logical2physical, VELODYNE_NUM_LASERS, sizeof ( int ), laser_phi_compare ); + + for ( logical = 0; logical < VELODYNE_NUM_LASERS; logical++ ) + { + physical2logical[logical2physical[logical]] = logical; + } + + //vertCorrection rotCorrection distCorrection vertOffsetCorrection horizOffsetCorrection + for ( i = 0; i < VELODYNE_NUM_LASERS; i++ ) + { + + vertCorrection[i] = ( velodyne_calibrated[i][0] ) * RADIANS_PER_LSB; + + rotCorrection[i] = ( velodyne_calibrated[i][1] ) * RADIANS_PER_LSB; + + distCorrection[i] = velodyne_calibrated[i][2] * METERS_PER_CM; + + vertoffsetCorrection[i] = velodyne_calibrated[i][3] * METERS_PER_CM; + + horizdffsetCorrection[i] = velodyne_calibrated[i][4] * METERS_PER_CM; + } + + return 0; +} + + + + + +int read_one_packet ( FILE *fp, vector &ptss, int maxDist, int minDist ) +{ + int maxDist2 = sqr(maxDist); + int minDist2 = sqr(minDist); + + int c, i, j; + unsigned char Head = 0; + BYTE buf[BLOCK_SIZE]; + Point point; + BYTE *p; + unsigned short *ps; + unsigned short *pshort; + short *pt; + + + double ctheta; + double theta, phi; + + double sin_ctheta, cos_ctheta; + double sin_theta, cos_theta; + double sin_phi, cos_phi; + + unsigned short physicalNO; + //unsigned short logicalNO; + + double rotational; + double distance; + double corredistance; + int intensity; + // int physical; + int size; + + + + //unsigned short rot; + + + double x, y, z; +/* + int circle_col = 0; + int circle_row = 0; + int circle_col_other = 0; + int circle_row_other = 0; + */ + + + for ( c = 0 ; c < CIRCLELENGTH; c++ ) + { + + fseek(fp , BLOCK_OFFSET, SEEK_CUR); + size=fread ( buf, 1, BLOCK_SIZE, fp ); + + if(size minDist2*1.0)) + { + ptss.push_back(point); + //printf("%f %f %f %f %f %f\n",point.x,point.y,point.z,point.reflectance,minDist2*1.0,minDist2*1.0); + } + } + p = p + 100; + ps = ( unsigned short * ) p; + } + + + } + + + + return 0; +} + + +/** + * Reads specified scans from given directory in + * the file format Riegl Laser Measurement GmbH + * uses. It will be compiled as shared lib. + * + * Scan poses will NOT be initialized after a call + * to this function. Initial pose estimation works + * only with the -p switch, i.e., trusting the initial + * estimations by Riegl. + * + * The scans have to be exported from the Riegl software + * as follows: + * 1. Export point cloud data to ASCII + * Use Scanners own Coordinate System (SOCS) + * X Y Z Range Theta Phi Reflectance + * 2. Export acqusition location (after you have registered + * with the Riegl software) + * Export SOP + * Write out as .dat file + * + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param dir The directory from which to read + * @param maxDist Reads only Points up to this Distance + * @param minDist Reads only Points from this Distance + * @param euler Initital pose estimates (will not be applied to the points + * @param ptss Vector containing the read points + */ +int ScanIO_velodyne_frame::readScans(int start, int end, string &dir, int maxDist, int minDist, + double *euler, vector &ptss) +{ + static int fileCounter = start; + string scanFileName; + string poseFileName; + string framesFileName; + + + FILE *scan_in = 0; + FILE *pose_in = 0; + ifstream frames_in; + // int my_fileNr = fileCounter; + double transMat[16]; + int type; + + if (end > -1 && fileCounter > end) return -1; // 'nuf read + + + scanFileName = dir + "scan" + ".bin"; + poseFileName = dir + "scan" + ".pose"; + framesFileName = dir + "scan" + to_string(fileCounter,3) + ".frames"; + + scan_in = fopen(scanFileName.c_str(),"rb"); + if(scan_in==NULL) + { + cerr << "ERROR: Missing file " << scanFileName <<" "<> transMat >> type; + } + catch(const exception &e) { + break; + } + } + Matrix4ToEuler(transMat, &euler[3], euler); + + cout << " @ pose (" << euler[0] << "," << euler[1] << "," << euler[2] + << "," << euler[3] << "," << euler[4] << "," << euler[5] << ")" << endl; + + velodyne_calib_precompute(); + cout << "Processing Scan " << scanFileName; + cout.flush(); + + + + + +#if 0 + raw_packet_t raw_tmp; + fseeko(scan_in, 0, SEEK_SET); + fread(&raw_tmp,sizeof(raw_packet_t),1,scan_in); + int revolution=raw_tmp.revolution+fileCounter+1; + int i=0; + + while(raw_tmp.revolution!=revolution) + { + printf("%d %d\n",i++,raw_tmp.revolution); + fread(&raw_tmp,sizeof(raw_packet_t),1,scan_in); + } +#else + + + + cout.flush(); + ptss.reserve(12*32*CIRCLELENGTH); + + #if 0 + fseeko(scan_in, 0, SEEK_SET); + fseeko(scan_in, BLOCK_SIZE*CIRCLELENGTH*fileCounter, SEEK_CUR); + #else + fseek(scan_in, 24, SEEK_SET); + fseek(scan_in, (BLOCK_SIZE+BLOCK_OFFSET)*CIRCLELENGTH*fileCounter, SEEK_CUR); + #endif + +#endif + read_one_packet(scan_in, ptss, maxDist, minDist); + cout << " with " << ptss.size() << " Points"; + + + cout << " done " << fileCounter< +using std::ifstream; +#include +using std::cerr; +using std::endl; + +#ifdef _MSC_VER +#include +#endif + +#include + +/** + * Reads specified scans from given directory in + * the PLY file format. It will be compiled as + * shared lib. + * + * Scan poses will NOT be initialized after a call + * to this function. + * + * + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param dir The directory from which to read + * @param maxDist Reads only Points up to this Distance + * @param minDist Reads only Points from this Distance + * @param euler Initital pose estimates (will not be applied to the points + * @param ptss Vector containing the read points + */ +int ScanIO_wrl::readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss) +{ + static int fileCounter = start; + string scanFileName; + string poseFileName; + int maxDist2 = (maxDist == -1 ? -1 : sqr(maxDist)); + + int my_fileNr = fileCounter; + + ifstream scan_in, pose_in; + + for (int i = 0; i < 6; i++) euler[i] = 0; + + if (end > -1 && fileCounter > end) return -1; + poseFileName = dir + to_string(fileCounter,3) + "/position.dat"; + + pose_in.open(poseFileName.c_str()); + // read 3D scan + + if (!pose_in.good()) return -1; // no more files in the directory + cout << "Processing Scan " << dir << to_string(fileCounter, 3); + + for (unsigned int i = 0; i < 6; pose_in >> euler[i++]); + + // convert mm to cm + for (unsigned int i = 0; i < 3; i++) euler[i] = euler[i] * 0.1; + + // convert angles from deg to rad + for (unsigned int i = 3; i <= 5; i++) { + euler[i] *= 0.01; + // if (euler[i] < 0.0) euler[i] += 360; + euler[i] = rad(euler[i]); + } + cout << " @ pose (" << euler[0] << "," << euler[1] << "," << euler[2] + << "," << deg(euler[3]) << "," << deg(euler[4]) << "," << deg(euler[5]) << ")" << endl; + + + if (end > -1 && fileCounter > end) return -1; // 'nuf read + + scanFileName = dir + to_string(fileCounter,3) + ".wrl"; + scan_in.open(scanFileName.c_str()); + + // read 3D scan + if (!scan_in.good()) return -1; // no more scans to read + + // overread the first 7 tokes / 4 lines - don't care here + char dummy[255]; + for (int i = 0; i < 4; i++) { + scan_in.getline(dummy, 255); + } + + do { + char cx[25], cy[25], cz[25]; + double xyz[3]; + scan_in >> cx >> cy >> cz; + if (!scan_in.good()) break; + // remove the "," from the z coordinate + cz[strlen(cz)-1] = 0; + xyz[0] = atof(cx); + xyz[1] = atof(cy); + xyz[2] = atof(cz); + Point p(xyz); + if (maxDist == -1 || sqr(p.x) + sqr(p.y) + sqr(p.z) < maxDist2) + ptss.push_back(p); + } while (scan_in.good()); + + scan_in.close(); + scan_in.clear(); + pose_in.close(); + pose_in.clear(); + fileCounter++; + + return my_fileNr; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_wrl; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/src/scanio/old/scan_io_x3d.cc b/src/scanio/old/scan_io_x3d.cc new file mode 100644 index 0000000..f7b58e3 --- /dev/null +++ b/src/scanio/old/scan_io_x3d.cc @@ -0,0 +1,147 @@ +/** + * @file + * @brief Implementation of reading 3D scans + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "slam6d/scan_io_x3d.h" +#include "slam6d/globals.icc" +#include +using std::ifstream; + +#ifdef _MSC_VER +#include +#endif + +using std::cerr; +/** + * Reads specified scans from given directory in + * the x3d file format. It will be compiled + * as shared lib. + * + * Scan poses will NOT be initialized after a call + * to this function. + * + * + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param dir The directory from which to read + * @param maxDist Reads only Points up to this Distance + * @param minDist Reads only Points from this Distance + * @param euler Initital pose estimates (will not be applied to the points + * @param ptss Vector containing the read points + */ +int ScanIO_x3d::readScans(int start, int end, string &dir, + int maxDist, int minDist, + double *euler, vector &ptss) +{ + static int fileCounter = start; + string scanFileName; + + ifstream scan_in; + + double maxDist2 = sqr(maxDist); + + int my_fileNr = fileCounter; + + if (end > -1 && fileCounter > end) return -1; // 'nuf read + scanFileName = dir + "scan" + to_string(fileCounter,3) + ".x3d"; + scan_in.open(scanFileName.c_str()); + + // read 3D scan + if (!scan_in.good()) { cerr << "ERROR: Missing file " << scanFileName << endl; exit(1); } + cout << "Processing Scan " << scanFileName; + + for (unsigned int i = 0; i < 6; euler[i++] = 0.0); + + cout << " @ pose (" << euler[0] << "," << euler[1] << "," << euler[2] + << "," << euler[3] << "," << euler[4] << "," << euler[5] << ")" << endl; + + // convert angles from deg to rad + for (unsigned int i = 3; i <= 5; i++) euler[i] = rad(euler[i]); + + // overread the first line + char dummy[255]; + scan_in.getline(dummy, 255); + scan_in.getline(dummy, 255); + scan_in.getline(dummy, 255); + scan_in.getline(dummy, 255); + scan_in.getline(dummy, 255); + scan_in.get(dummy, 255, '"'); // read to beginning of first point + scan_in.get(); // and throw away the " + + while (scan_in.good()) { + double f[3]; + + scan_in.get(dummy, 255, ' '); + scan_in.get(); // and throw away the ' ' + std::stringstream ssx ( dummy ); + ssx >> f[0]; + + scan_in.get(dummy, 255, ' '); + scan_in.get(); // and throw away the ' ' + std::stringstream ssy ( dummy ); + ssy >> f[1]; + + scan_in.get(dummy, 255, ','); + scan_in.get(); // and throw away the ',' + scan_in.get(); // and the ' ' + std::stringstream ssz ( dummy ); + ssz >> f[2]; + + // scale to cm + for (int i=0; i<3; i++) { + f[i] *= 100.0; + } + + Point p(f); + + // load points up to a certain distance only + // maxDist2 = -1 indicates no limitation + if (maxDist == -1 || sqr(p.x) + sqr(p.y) + sqr(p.z) < maxDist2) + ptss.push_back(p); + } + scan_in.close(); + scan_in.clear(); + fileCounter++; + + return my_fileNr; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_x3d; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/src/scanio/old/scan_io_xyz.cc b/src/scanio/old/scan_io_xyz.cc new file mode 100644 index 0000000..4c33078 --- /dev/null +++ b/src/scanio/old/scan_io_xyz.cc @@ -0,0 +1,123 @@ +/** + * @file + * @brief Implementation of reading 3D scans in XYZ format (i.e., pure 3D data * points in a right handed coordinate system only) + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "slam6d/scan_io_xyz.h" +#include "slam6d/globals.icc" +#include +using std::ifstream; +#include +using std::cerr; +using std::endl; + + +#include +using std::swap; + +#ifdef _MSC_VER +#include +#endif + +/** + * Reads specified scans from given directory in + * the XYZ file format (i.e., pure 3D data points only in a right handed * coordinate system) + * It will be compiled as shared lib. + * + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param dir The directory from which to read + * @param maxDist Reads only Points up to this Distance + * @param minDist Reads only Points from this Distance + * @param euler Initital pose estimates (will not be applied to the points + * @param ptss Vector containing the read points + */ +int ScanIO_xyz::readScans(int start, int end, string &dir, int maxDist, int minDist, + double *euler, vector &ptss) +{ + static int fileCounter = start; + string scanFileName; + + ifstream scan_in, pose_in; + double maxDist2 = sqr(maxDist); + double minDist2 = sqr(minDist); + + if (end > -1 && fileCounter > end) return -1; // 'nuf read + + scanFileName = dir + to_string(fileCounter,3) + ".xyz"; + scan_in.open(scanFileName.c_str()); + // read 3D scan + if (!scan_in.good()) { cerr << "ERROR: Missing file " << scanFileName << endl; exit(1); } + cout << "Processing Scan " << scanFileName; + + char firstline[255]; + scan_in.getline(firstline, 255); + + euler[0] = 0.0; + euler[1] = 0.0; + euler[2] = 0.0; + euler[3] = 0.0; + euler[4] = 0.0; + euler[5] = 0.0; + + while (scan_in.good()) { + Point p; + scan_in >> p.x >> p.z >> p.y; + p.x *= 100; + p.y *= 100; + p.z *= 100; + + if (maxDist == -1 || sqr(p.x) + sqr(p.y) + sqr(p.z) < maxDist2) + if (minDist == -1 || sqr(p.x) + sqr(p.y) + sqr(p.z) > minDist2) + ptss.push_back(p); + } + + cout << " done" << endl; + + scan_in.close(); + scan_in.clear(); + pose_in.close(); + pose_in.clear(); + fileCounter++; + + return 1; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_xyz; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/src/scanio/old/scan_io_xyz_rgb.cc b/src/scanio/old/scan_io_xyz_rgb.cc new file mode 100644 index 0000000..95c0844 --- /dev/null +++ b/src/scanio/old/scan_io_xyz_rgb.cc @@ -0,0 +1,128 @@ +/** + * @file + * @brief Implementation of reading 3D scans in colored XYZ format (i.e., pure + * 3D data points and RGB color information) + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "slam6d/scan_io_xyz_rgb.h" +#include "slam6d/globals.icc" +#include +using std::ifstream; +#include +using std::cerr; +using std::endl; + + +#include +using std::swap; + +#ifdef _MSC_VER +#include +#endif + +/** + * Reads specified scans from given directory in the colored XYZ file format + * (i.e., pure 3D data points and RGB color * information only) + * It will be compiled as shared lib. + * + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param dir The directory from which to read + * @param maxDist Reads only Points up to this Distance + * @param minDist Reads only Points from this Distance + * @param euler Initital pose estimates (will not be applied to the points + * @param ptss Vector containing the read points + */ +int ScanIO_xyz_rgb::readScans(int start, int end, string &dir, int maxDist, int minDist, + double *euler, vector &ptss) +{ + static int fileCounter = start; + string scanFileName; + + ifstream scan_in, pose_in; + double maxDist2 = sqr(maxDist); + double minDist2 = sqr(minDist); + + if (end > -1 && fileCounter > end) return -1; // 'nuf read + + scanFileName = dir + to_string(fileCounter,3) + ".xyz"; + scan_in.open(scanFileName.c_str()); + // read 3D scan + if (!scan_in.good()) { cerr << "ERROR: Missing file " << scanFileName << endl; exit(1); } + cout << "Processing Scan " << scanFileName; + + char firstline[255]; + scan_in.getline(firstline, 255); + + euler[0] = 0.0; + euler[1] = 0.0; + euler[2] = 0.0; + euler[3] = 0.0; + euler[4] = 0.0; + euler[5] = 0.0; + + while (scan_in.good()) { + Point p; + int r, g, b; + scan_in >> p.x >> p.z >> p.y >> r >> g >> b; + p.x *= 100; + p.y *= 100; + p.z *= 100; + p.rgb[0] = (char)r; + p.rgb[1] = (char)g; + p.rgb[2] = (char)b; + + if (maxDist == -1 || sqr(p.x) + sqr(p.y) + sqr(p.z) < maxDist2) + if (minDist == -1 || sqr(p.x) + sqr(p.y) + sqr(p.z) > minDist2) + ptss.push_back(p); + } + + cout << " done" << endl; + + scan_in.close(); + scan_in.clear(); + pose_in.close(); + pose_in.clear(); + fileCounter++; + + return 1; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_xyz_rgb; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/src/scanio/old/scan_io_xyzr.cc b/src/scanio/old/scan_io_xyzr.cc new file mode 100644 index 0000000..cc3f1ba --- /dev/null +++ b/src/scanio/old/scan_io_xyzr.cc @@ -0,0 +1,158 @@ +/** + * @file + * @brief Implementation of reading 3D scans + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "slam6d/scan_io_xyzr.h" +#include "slam6d/globals.icc" +#include +using std::ifstream; +#include +using std::cout; +using std::cerr; +using std::endl; + +#ifdef _MSC_VER +#include +#endif + +/** + * Reads specified scans from given directory. + * + * Scan poses will NOT be initialized after a call + * to this function. + * + * This function actually implements loading of 3D scans + * in UOS + reflectance file format and will be compiled as shared lib. + * + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param dir The directory from which to read + * @param maxDist Reads only Points up to this Distance + * @param minDist Reads only Points from this Distance + * @param euler Initital pose estimates (will not be applied to the points + * @param ptss Vector containing the read points + */ +int ScanIO_xyzr::readScans(int start, int end, string &dir, int maxDist, int minDist, + double *euler, vector &ptss) +{ + static int fileCounter = start; + string scanFileName; + string poseFileName; + + ifstream scan_in, pose_in; + + double maxDist2 = sqr(maxDist); + double minDist2 = sqr(minDist); + + int my_fileNr = fileCounter; + + if (end > -1 && fileCounter > end) return -1; // 'nuf read + /* + scanFileName = dir + "scan" + to_string(fileCounter,3) + ".3d"; + poseFileName = dir + "scan" + to_string(fileCounter,3) + ".pose"; + + scan_in.open(scanFileName.c_str()); + pose_in.open(poseFileName.c_str()); + */ + + scanFileName = dir + "konv_bremenc_" + to_string(fileCounter,3) + ".txt"; + scan_in.open(scanFileName.c_str()); + poseFileName = dir + "scan" + to_string(fileCounter,3) + ".pose"; + pose_in.open(poseFileName.c_str()); + + // read 3D scan + // if (!pose_in.good() && !scan_in.good()) return -1; // no more files in the directory + if (!scan_in.good()) return -1; // no more files in the directory + cout << "Processing Scan " << scanFileName; + + if (pose_in.good()) { + for (unsigned int i = 0; i < 6; pose_in >> euler[i++]); + + // convert angles from deg to rad + for (unsigned int i = 3; i <= 5; i++) euler[i] = rad(euler[i]); + } else { + cout << endl << "No pose estimate given." << endl; + for (unsigned int i = 0; i < 6; euler[i++] = 0.0); + } + + cout << " @ pose (" << euler[0] << "," << euler[1] << "," << euler[2] + << "," << deg(euler[3]) << "," << deg(euler[4]) << "," << deg(euler[5]) << ")" << endl; + + // convert angles from deg to rad + for (unsigned int i = 3; i <= 5; i++) euler[i] = rad(euler[i]); + + // overread the first line + char dummy[255]; + scan_in.getline(dummy, 255); + + double tmp; + while (scan_in.good()) { + Point p; + try { + scan_in >> p; + + p.x -= 485531.0; + p.y -= 5882078.400; + p.z -= 52; + + tmp = p.z; + p.z = p.y; + p.y = tmp; + + scan_in >> p.reflectance; + } catch (...) { + break; + } + // load points up to a certain distance only + // maxDist2 = -1 indicates no limitation + if ((maxDist == -1 || sqr(p.x) + sqr(p.y) + sqr(p.z) < maxDist2) && (minDist == -1 || sqr(p.x) + sqr(p.y) + sqr(p.z) > minDist2)) + ptss.push_back(p); + } + scan_in.close(); + scan_in.clear(); + pose_in.close(); + pose_in.clear(); + fileCounter++; + + return my_fileNr; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_xyzr; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/src/scanio/old/scan_io_zahn.cc b/src/scanio/old/scan_io_zahn.cc new file mode 100644 index 0000000..ed0159b --- /dev/null +++ b/src/scanio/old/scan_io_zahn.cc @@ -0,0 +1,124 @@ +/** + * @file + * @brief Implementation of reading 3D scans + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "slam6d/scan_io_zahn.h" +#include "slam6d/globals.icc" +#include +using std::ifstream; +#include +using std::cerr; +using std::endl; + +#ifdef _MSC_VER +#include +#endif + +/** + * Reads specified scans from given directory in + * the tooth format. It will be compiled as + * shared lib. + * + * Scan poses will NOT be initialized after a call + * to this function. + * + * + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param dir The directory from which to read + * @param maxDist Reads only Points up to this Distance + * @param minDist Reads only Points from this Distance + * @param euler Initital pose estimates (will not be applied to the points + * @param ptss Vector containing the read points + */ +int ScanIO_zahn::readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss) +{ + static int fileCounter = start; + string scanFileName; + string poseFileName; + double maxDist2 = sqr(maxDist); + + ifstream scan_in, pose_in; + + int my_fileNr = fileCounter; + + euler[0] = 0; + euler[1] = 0; + euler[2] = 0; + euler[3] = 0; + euler[4] = 0; + euler[5] = 0; + + if (end > -1 && fileCounter > end) return -1; // 'nuf read + scanFileName = dir + "Element_" + to_string(fileCounter) + ".asc"; + + scan_in.open(scanFileName.c_str()); + // read 3D scan + + if (!scan_in.good()) { cerr << "ERROR: Missing file " << scanFileName << endl; exit(1); } + cout << "Processing Scan " << scanFileName; + + cout << " @ pose (" << euler[0] << "," << euler[1] << "," << euler[2] + << "," << deg(euler[3]) << "," << deg(euler[4]) << "," << deg(euler[5]) << ")" << endl; + + for (unsigned int i = 0; i < 3; i++) euler[i] *= 0.1; + + while (scan_in.good()) { + Point p; + scan_in >> p.x >> p.y >> p.z; + p.x *= 10; + p.y *= 10; + p.z *= -10; + // load points up to a certain distance only + // maxDist2 = -1 indicates no limitation + if (sqr(p.x) + sqr(p.y) + sqr(p.z) < maxDist2) + ptss.push_back(p); + } + + scan_in.close(); + scan_in.clear(); + fileCounter++; + + return my_fileNr; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_zahn; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/src/scanio/old/scan_io_zuf.cc b/src/scanio/old/scan_io_zuf.cc new file mode 100644 index 0000000..3d982e3 --- /dev/null +++ b/src/scanio/old/scan_io_zuf.cc @@ -0,0 +1,153 @@ +/** + * @file + * @brief Implementation of reading 3D scans + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "slam6d/scan_io_zuf.h" +#include "slam6d/globals.icc" +#include +using std::ifstream; +#include +using std::cerr; +using std::endl; + +#include +using std::swap; + +#ifdef _MSC_VER +#include +#endif + +/** + * Reads specified scans from given directory in + * the file format ZuF from Zoller+Froehlich AG + * uses. It will be compiled as shared lib. + * + * Scan poses will NOT be initialized after a call + * to this function. Initial pose estimation works + * only with the -p switch, i.e., trusting the initial + * estimations by Riegl. Actually, the Riegl poses + * are high precise and this function puts noise + * on it. + * + * @param start Starts to read with this scan + * @param end Stops with this scan + * @param dir The directory from which to read + * @param maxDist Reads only Points up to this Distance + * @param minDist Reads only Points from this Distance + * @param euler Initital pose estimates (will not be applied to the points + * @param ptss Vector containing the read points + */ +int ScanIO_zuf::readScans(int start, int end, string &dir, int maxDist, int mindist, + double *euler, vector &ptss) +{ + static int fileCounter = start; + string scanFileName; + string poseFileName; + + ifstream scan_in, pose_in; + int my_fileNr = fileCounter; + + if (end > -1 && fileCounter > end) return -1; // 'nuf read + + + poseFileName = dir + "2811CSODRE" + to_string(fileCounter,2) + "_sub2.rgp.txtMATRIX.txt"; + scanFileName = dir + "2811CSODRE" + to_string(fileCounter,2) + "_sub2.rgp.txt"; + + scan_in.open(scanFileName.c_str()); + pose_in.open(poseFileName.c_str()); + // read 3D scan + + if (!pose_in.good() && !scan_in.good()) return -1; // no more files in the directory + if (!pose_in.good()) { cerr << "ERROR: Missing file " << poseFileName << endl; exit(1); } + if (!scan_in.good()) { cerr << "ERROR: Missing file " << scanFileName << endl; exit(1); } + cout << "Processing Scan " << scanFileName; + cout.flush(); + + char firstline[255]; + scan_in.getline(firstline, 255); + + double rPos[3] = { 0.0, 0.0, 0.0 }; + double rPosTheta[16] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }; + double inMatrix[16]; + char dummy[255]; + pose_in.getline(dummy, 255); + pose_in.getline(dummy, 255); + scan_in.getline(dummy, 255); + + for (unsigned int i = 0; i < 16; pose_in >> inMatrix[i++]); + + + Matrix4ToEuler(inMatrix, rPosTheta, rPos); + + euler[0] = 100 * inMatrix[3]; + euler[1] = 100 * inMatrix[11]; + euler[2] = 100 * inMatrix[7]; + + euler[3] = rPosTheta[0]; + euler[4] = rPosTheta[2]; + euler[5] = rPosTheta[1]; + + cout << " @ pose (" << euler[0] << "," << euler[1] << "," << euler[2] + << "," << euler[3] << "," << euler[4] << "," << euler[5] << ")" << endl; + + while (scan_in.good()) { + Point p; + int dummy; + scan_in >> dummy >> dummy >> p.x >> p.z >> p.y >> dummy >> dummy >> dummy; + + p.x *= 100; + p.y *= 100; + p.z *= 100; + + ptss.push_back(p); + } + + cout << " done" << endl; + + scan_in.close(); + scan_in.clear(); + pose_in.close(); + pose_in.clear(); + fileCounter++; + + return my_fileNr; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_zuf; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/src/scanio/scan_io.cc b/src/scanio/scan_io.cc new file mode 100644 index 0000000..2fb2c63 --- /dev/null +++ b/src/scanio/scan_io.cc @@ -0,0 +1,120 @@ +/* + * scan_io implementation + * + * Copyright (C) Thomas Escher, Kai Lingemann, Andreas Nuechter + * + * Released under the GPL version 3. + * + */ + +#include "scanio/scan_io.h" + +using std::map; +using std::pair; +using std::string; +#include +using std::runtime_error; +#include +using std::cout; +using std::cerr; +using std::endl; + +#ifdef _MSC_VER +#include +#else +#include +#endif + +map ScanIO::m_scanIOs; + +ScanIO * ScanIO::getScanIO(IOType iotype) +{ + // get the ScanIO from the map + map::iterator it = m_scanIOs.find(iotype); + if(it != m_scanIOs.end()) + return it->second; + + // figure out the full and correct library name + string libname(io_type_to_libname(iotype)); +#ifdef WIN32 + libname += ".dll"; +#elif __APPLE__ + libname = "lib/lib" + libname + ".dylib"; +#else + libname = "lib" + libname + ".so"; +#endif + + //cout << "Loading shared library " << libname << " ... " << std::flush; + + // load the library and symbols +#ifdef _MSC_VER + HINSTANCE hinstLib = LoadLibrary(libname.c_str()); + if (!hinstLib) + throw runtime_error(string("Cannot load library ") + libname); + + //cout << "done." << endl; + + create_sio* create_ScanIO = (create_sio*)GetProcAddress(hinstLib, "create"); + + if (!create_ScanIO) { + FreeLibrary(hinstLib); + throw runtime_error("Cannot load symbol create_ScanIO"); + } + +#else + void *ptrScanIO = dlopen(libname.c_str(), RTLD_LAZY); + + if (!ptrScanIO) + throw runtime_error(string("Cannot load library ") + libname + string(": ") + dlerror()); + + //cerr << "done." << endl; + + // reset the errors + dlerror(); + + // load the symbols + create_sio* create_ScanIO = (create_sio*)dlsym(ptrScanIO, "create"); + const char* dlsym_error = dlerror(); + if (dlsym_error) { + dlclose(ptrScanIO); + throw runtime_error(string("Cannot load symbol create_ScanIO: ") + dlsym_error); + } +#endif + + // create an instance of ScanIO, save it in the map and return it + ScanIO* sio = create_ScanIO(); + m_scanIOs.insert(pair(iotype, sio)); + return sio; +} + +void ScanIO::clearScanIOs() +{ + for(map::iterator it = m_scanIOs.begin(); it != m_scanIOs.end(); ++it) { + // figure out the full and correct library name + string libname(io_type_to_libname(it->first)); +#ifdef WIN32 + libname += ".dll"; +#elif __APPLE__ + libname = "lib/lib" + libname + ".dylib"; +#else + libname = "lib" + libname + ".so"; +#endif + + // load library, destroy the allocated ScanIO and then remove it +#ifdef _MSC_VER + HINSTANCE hinstLib = LoadLibrary(libname.c_str()); + + destroy_sio* destroy_ScanIO = (destroy_sio*)GetProcAddress(hinstLib, "destroy"); + destroy_ScanIO(it->second); + + FreeLibrary(hinstLib); +#else + void *ptrScanIO = dlopen(libname.c_str(), RTLD_LAZY); + + destroy_sio* destroy_ScanIO = (destroy_sio*)dlsym(ptrScanIO, "destroy"); + destroy_ScanIO(it->second); + + dlclose(ptrScanIO); +#endif + } +} diff --git a/src/scanio/scan_io_ks.cc b/src/scanio/scan_io_ks.cc new file mode 100644 index 0000000..5871add --- /dev/null +++ b/src/scanio/scan_io_ks.cc @@ -0,0 +1,192 @@ +/* + * scan_io_ks implementation + * + * Copyright (C) Thomas Escher, Kai Lingemann, Andreas Nuechter + * + * Released under the GPL version 3. + * + */ + +/** + * @file + * @brief Implementation of reading 3D scans + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Thomas Escher. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "scanio/scan_io_ks.h" + +#include +using std::cout; +using std::cerr; +using std::endl; +#include + +#ifdef _MSC_VER +#include +#endif + +#include +#include +using namespace boost::filesystem; + +#include "slam6d/globals.icc" + + + +#define DATA_PATH_PREFIX "ScanPos" +#define DATA_PATH_SUFFIX " - Scan001.txt" +#define POSE_PATH_PREFIX "scan" +#define POSE_PATH_SUFFIX ".pose" + + + +std::list ScanIO_ks::readDirectory(const char* dir_path, unsigned int start, unsigned int end) +{ + std::list identifiers; + for(unsigned int i = start; i <= end; ++i) { + // identifier is /d/d/d (001-999) + std::string identifier(to_string(i,3)); + // scan consists of data (.txt) and pose (.pose) files + path data(dir_path); + data /= path(std::string(DATA_PATH_PREFIX) + identifier + DATA_PATH_SUFFIX); + path pose(dir_path); + pose /= path(std::string(POSE_PATH_PREFIX) + identifier + POSE_PATH_SUFFIX); + // stop if part of a scan is missing or end by absence is detected + if(!exists(data) || !exists(pose)) + break; + identifiers.push_back(identifier); + } + return identifiers; +} + + + +void ScanIO_ks::readPose(const char* dir_path, const char* identifier, double* pose) +{ + unsigned int i; + + path pose_path(dir_path); + pose_path /= path(std::string(POSE_PATH_PREFIX) + identifier + POSE_PATH_SUFFIX); + if(!exists(pose_path)) + throw std::runtime_error(std::string("There is no pose file for [") + identifier + "] in [" + dir_path + "]"); + + // open pose file + ifstream pose_file(pose_path); + + // if the file is open, read contents + if(pose_file.good()) { + // read 6 plain doubles + for(i = 0; i < 6; ++i) pose_file >> pose[i]; + pose_file.close(); + + // CAD map -> pose correction [ks x/y/z -> slam -z/y/x] + double tmp; + tmp = pose[0]; + pose[0] = - pose[2]; + pose[2] = tmp; + + // convert coordinate to cm + for(i = 0; i < 3; ++i) pose[i] *= 100.0; + + // convert angles from deg to rad + for(i = 3; i < 6; ++i) pose[i] = rad(pose[i]); + } else { + throw std::runtime_error(std::string("Pose file could not be opened for [") + identifier + "] in [" + dir_path + "]"); + } +} + +bool ScanIO_ks::supports(IODataType type) +{ + return !!(type & (DATA_XYZ)); +} + +void ScanIO_ks::readScan(const char* dir_path, const char* identifier, PointFilter& filter, std::vector* xyz, std::vector* rgb, std::vector* reflectance, std::vector* amplitude, std::vector* type, std::vector* deviation) +{ + unsigned int i; + + // error handling + path data_path(dir_path); + data_path /= path(std::string(DATA_PATH_PREFIX) + identifier + DATA_PATH_SUFFIX); + if(!exists(data_path)) + throw std::runtime_error(std::string("There is no scan file for [") + identifier + "] in [" + dir_path + "]"); + + if(xyz != 0) { + // open data file + ifstream data_file(data_path); + data_file.exceptions(ifstream::eofbit|ifstream::failbit|ifstream::badbit); + + // overread the first line + char dummy[255]; + data_file.getline(dummy, 255); + + // read points + double point[3]; + double tmp; + while(data_file.good()) { + try { + for(i = 0; i < 3; ++i) data_file >> point[i]; + } catch(std::ios_base::failure& e) { + break; + } + + // the enemy's x/y/z is mapped to slam's x/z/y, shuffle time! + tmp = point[1]; + point[1] = point[2]; + point[2] = tmp; + + // TODO: offset is application specific, handle with care + // correct constant offset (in slam coordinates) + point[0] -= 70000.0; // x + point[2] -= 20000.0; // z + + // convert coordinate to cm + for(i = 0; i < 3; ++i) point[i] *= 100.0; + + // apply filter and insert point + if(filter.check(point)) { + for(i = 0; i < 3; ++i) xyz->push_back(point[i]); + } + } + data_file.close(); + } +} + + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_ks; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/src/scanio/scan_io_ks_rgb.cc b/src/scanio/scan_io_ks_rgb.cc new file mode 100644 index 0000000..4b96439 --- /dev/null +++ b/src/scanio/scan_io_ks_rgb.cc @@ -0,0 +1,210 @@ +/* + * scan_io_ks_rgb implementation + * + * Copyright (C) Thomas Escher, Kai Lingemann, Andreas Nuechter + * + * Released under the GPL version 3. + * + */ + +/** + * @file + * @brief Implementation of reading 3D scans + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Thomas Escher. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "scanio/scan_io_ks_rgb.h" + +#include +using std::cout; +using std::cerr; +using std::endl; +#include + +#ifdef _MSC_VER +#include +#endif + +#include +#include +using namespace boost::filesystem; + +#include "slam6d/globals.icc" + + + +#define DATA_PATH_PREFIX "Color_ScanPos" +#define DATA_PATH_SUFFIX " - Scan001.txt" +#define POSE_PATH_PREFIX "scan" +#define POSE_PATH_SUFFIX ".pose" + + + +std::list ScanIO_ks_rgb::readDirectory(const char* dir_path, unsigned int start, unsigned int end) +{ + std::list identifiers; + for(unsigned int i = start; i <= end; ++i) { + // identifier is /d/d/d (001-999) + std::string identifier(to_string(i,3)); + // scan consists of data (.txt) and pose (.pose) files + path data(dir_path); + data /= path(std::string(DATA_PATH_PREFIX) + identifier + DATA_PATH_SUFFIX); + path pose(dir_path); + pose /= path(std::string(POSE_PATH_PREFIX) + identifier + POSE_PATH_SUFFIX); + // stop if part of a scan is missing or end by absence is detected + if(!exists(data) || !exists(pose)) + break; + identifiers.push_back(identifier); + } + return identifiers; +} + +void ScanIO_ks_rgb::readPose(const char* dir_path, const char* identifier, double* pose) +{ + unsigned int i; + + path pose_path(dir_path); + pose_path /= path(std::string(POSE_PATH_PREFIX) + identifier + POSE_PATH_SUFFIX); + if(!exists(pose_path)) + throw std::runtime_error(std::string("There is no pose file for [") + identifier + "] in [" + dir_path + "]"); + + // open pose file + ifstream pose_file(pose_path); + + // if the file is open, read contents + if(pose_file.good()) { + // read 6 plain doubles + for(i = 0; i < 6; ++i) pose_file >> pose[i]; + pose_file.close(); +/* +Don't use this part of io_ks because the original io_ks_rgb didn't +have it either, reasoning was "we never got ks_rgb scans with pose", so +the pose files created were already corrected in terms of offset and +scaling + // CAD map -> pose correction [ks x/y/z -> slam -z/y/x] + double tmp; + tmp = pose[0]; + pose[0] = - pose[2]; + pose[2] = tmp; + + // convert coordinate to cm + for(i = 0; i < 3; ++i) pose[i] *= 100.0; +*/ + // convert angles from deg to rad + for(i = 3; i < 6; ++i) pose[i] = rad(pose[i]); + } else { + throw std::runtime_error(std::string("Pose file could not be opened for [") + identifier + "] in [" + dir_path + "]"); + } +} + +bool ScanIO_ks_rgb::supports(IODataType type) +{ + return !!(type & (DATA_XYZ | DATA_RGB | DATA_REFLECTANCE | DATA_AMPLITUDE)); +} + +void ScanIO_ks_rgb::readScan(const char* dir_path, const char* identifier, PointFilter& filter, std::vector* xyz, std::vector* rgb, std::vector* reflectance, std::vector* amplitude, std::vector* type, std::vector* deviation) +{ + unsigned int i; + + // error handling + path data_path(dir_path); + data_path /= path(std::string(DATA_PATH_PREFIX) + identifier + DATA_PATH_SUFFIX); + if(!exists(data_path)) + throw std::runtime_error(std::string("There is no scan file for [") + identifier + "] in [" + dir_path + "]"); + + + // TODO: support for amplitude and reflectance + if(xyz != 0 || rgb != 0 || reflectance != 0 || amplitude != 0) { + // open data file + ifstream data_file(data_path); + data_file.exceptions(ifstream::eofbit|ifstream::failbit|ifstream::badbit); + + // overread the first line + char dummy[255]; + data_file.getline(dummy, 255); + + // read points + double point[8]; + double tmp; + while(data_file.good()) { + try { + for(i = 0; i < 8; ++i) data_file >> point[i]; + } catch(std::ios_base::failure& e) { + break; + } + + // still convert the points, needed for range check + + // the enemy's x/y/z is mapped to slam's x/z/y, shuffle time! + tmp = point[1]; + point[1] = point[2]; + point[2] = tmp; + + // TODO: offset is application specific, handle with care + // correct constant offset (in slam coordinates) + point[0] -= 70000.0; // x + point[2] -= 20000.0; // z + + // convert coordinate to cm + for(i = 0; i < 3; ++i) point[i] *= 100.0; + + // apply filter and insert point + if(filter.check(point)) { + if(xyz != 0) { + for(i = 0; i < 3; ++i) xyz->push_back(point[i]); + } + if(rgb != 0) { + for(i = 3; i < 6; ++i) rgb->push_back( + static_cast(point[i] * 255.0)); + } + if(reflectance != 0) { + reflectance->push_back(point[7]); + } + if(amplitude != 0) { + amplitude->push_back(point[6]); + } + } + } + data_file.close(); + } +} + + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_ks_rgb; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/src/scanio/scan_io_riegl_rgb.cc b/src/scanio/scan_io_riegl_rgb.cc new file mode 100644 index 0000000..d45cda3 --- /dev/null +++ b/src/scanio/scan_io_riegl_rgb.cc @@ -0,0 +1,220 @@ +/* + * scan_io_riegl_rgb implementation + * + * Copyright (C) Thomas Escher, Kai Lingemann, Andreas Nuechter + * + * Released under the GPL version 3. + * + */ + +/** + * @file + * @brief Implementation of reading 3D scans + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Thomas Escher + */ + +#include "scanio/scan_io_riegl_rgb.h" + +#include +using std::cout; +using std::cerr; +using std::endl; +#include + +#ifdef _MSC_VER +#include +#endif + +#include +#include +using namespace boost::filesystem; + +#include "slam6d/globals.icc" + + + +#define DATA_PATH_PREFIX "scan" +#define DATA_PATH_SUFFIX ".rgb" +#define POSE_PATH_PREFIX "scan" +#define POSE_PATH_SUFFIX ".dat" + + + +std::list ScanIO_riegl_rgb::readDirectory(const char* dir_path, unsigned int start, unsigned int end) +{ + std::list identifiers; + for(unsigned int i = start; i <= end; ++i) { + // identifier is /d/d/d (000-999) + std::string identifier(to_string(i,3)); + // scan consists of data (.3d) and pose (.pose) files + path data(dir_path); + data /= path(std::string(DATA_PATH_PREFIX) + identifier + DATA_PATH_SUFFIX); + path pose(dir_path); + pose /= path(std::string(POSE_PATH_PREFIX) + identifier + POSE_PATH_SUFFIX); + // stop if part of a scan is missing or end by absence is detected + if(!exists(data) || !exists(pose)) + break; + identifiers.push_back(identifier); + } + return identifiers; +} + +void ScanIO_riegl_rgb::readPose(const char* dir_path, const char* identifier, double* pose) +{ + unsigned int i; + + path pose_path(dir_path); + pose_path /= path(std::string(POSE_PATH_PREFIX) + identifier + POSE_PATH_SUFFIX); + if(!exists(pose_path)) + throw std::runtime_error(std::string("There is no pose file for [") + identifier + "] in [" + dir_path + "]"); + + // open pose file + ifstream pose_file(pose_path); + + // if the file is open, read contents + if(pose_file.good()) { + double rPos[3], rPosTheta[16]; + double inMatrix[16], tMatrix[16]; + + for (i = 0; i < 16; ++i) + pose_file >> inMatrix[i]; + pose_file.close(); + + // transform input pose + tMatrix[0] = inMatrix[5]; + tMatrix[1] = -inMatrix[9]; + tMatrix[2] = -inMatrix[1]; + tMatrix[3] = -inMatrix[13]; + tMatrix[4] = -inMatrix[6]; + tMatrix[5] = inMatrix[10]; + tMatrix[6] = inMatrix[2]; + tMatrix[7] = inMatrix[14]; + tMatrix[8] = -inMatrix[4]; + tMatrix[9] = inMatrix[8]; + tMatrix[10] = inMatrix[0]; + tMatrix[11] = inMatrix[12]; + tMatrix[12] = -inMatrix[7]; + tMatrix[13] = inMatrix[11]; + tMatrix[14] = inMatrix[3]; + tMatrix[15] = inMatrix[15]; + + Matrix4ToEuler(tMatrix, rPosTheta, rPos); + + pose[0] = 100*rPos[0]; + pose[1] = 100*rPos[1]; + pose[2] = 100*rPos[2]; + pose[3] = rPosTheta[0]; + pose[4] = rPosTheta[1]; + pose[5] = rPosTheta[2]; + } else { + throw std::runtime_error(std::string("Pose file could not be opened for [") + identifier + "] in [" + dir_path + "]"); + } +} + +bool ScanIO_riegl_rgb::supports(IODataType type) +{ + return !!(type & (DATA_XYZ | DATA_RGB | DATA_REFLECTANCE)); +} + +void ScanIO_riegl_rgb::readScan(const char* dir_path, const char* identifier, PointFilter& filter, std::vector* xyz, std::vector* rgb, std::vector* reflectance, std::vector* amplitude, std::vector* type, std::vector* deviation) +{ + unsigned int i; + + // error handling + path data_path(dir_path); + data_path /= path(std::string(DATA_PATH_PREFIX) + identifier + DATA_PATH_SUFFIX); + if(!exists(data_path)) + throw std::runtime_error(std::string("There is no scan file for [") + identifier + "] in [" + dir_path + "]"); + + if(xyz != 0 || rgb != 0 || reflectance != 0) { + // open data file + ifstream data_file(data_path); + data_file.exceptions(ifstream::eofbit|ifstream::failbit|ifstream::badbit); + + // read the point count + unsigned int count; + data_file >> count; + + // reserve enough space for faster reading + if(xyz != 0) xyz->reserve(3*count); + if(rgb != 0) rgb->reserve(3*count); + + // read points + // z x y range theta phi r g b reflectance + double point[7]; + unsigned int color[3]; + double tmp; + while(data_file.good()) { + try { + for(i = 0; i < 6; ++i) data_file >> point[i]; + for(i = 0; i < 3; ++i) data_file >> color[i]; + data_file >> point[6]; + } catch(std::ios_base::failure& e) { + break; + } + + // the enemy's x/y/z is mapped to slam's z/x/y, shuffle time! + // invert x axis + // convert coordinate to cm + tmp = point[2]; + point[2] = 100.0 * point[0]; + point[0] = -100.0 * point[1]; + point[1] = 100.0 * tmp; + + // apply filter and insert point + if(filter.check(point)) { + if(xyz != 0) { + for(i = 0; i < 3; ++i) xyz->push_back(point[i]); + } + if(rgb != 0) { + for(i = 0; i < 3; ++i) rgb->push_back( + static_cast(color[i])); + } + if(reflectance != 0) { + reflectance->push_back(point[6]); + } + } + } + data_file.close(); + } +} + + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_riegl_rgb; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/src/scanio/scan_io_riegl_txt.cc b/src/scanio/scan_io_riegl_txt.cc new file mode 100644 index 0000000..0a9eb9d --- /dev/null +++ b/src/scanio/scan_io_riegl_txt.cc @@ -0,0 +1,212 @@ +/* + * scan_io_riegl_txt implementation + * + * Copyright (C) Thomas Escher, Kai Lingemann, Andreas Nuechter + * + * Released under the GPL version 3. + * + */ + +/** + * @file + * @brief Implementation of reading 3D scans + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Thomas Escher + */ + +#include "scanio/scan_io_riegl_txt.h" + +#include +using std::cout; +using std::cerr; +using std::endl; +#include + +#ifdef _MSC_VER +#include +#endif + +#include +#include +using namespace boost::filesystem; + +#include "slam6d/globals.icc" + + + +#define DATA_PATH_PREFIX "scan" +#define DATA_PATH_SUFFIX ".txt" +#define POSE_PATH_PREFIX "scan" +#define POSE_PATH_SUFFIX ".dat" + + + +std::list ScanIO_riegl_txt::readDirectory(const char* dir_path, unsigned int start, unsigned int end) +{ + std::list identifiers; + for(unsigned int i = start; i <= end; ++i) { + // identifier is /d/d/d (000-999) + std::string identifier(to_string(i,3)); + // scan consists of data (.3d) and pose (.pose) files + path data(dir_path); + data /= path(std::string(DATA_PATH_PREFIX) + identifier + DATA_PATH_SUFFIX); + path pose(dir_path); + pose /= path(std::string(POSE_PATH_PREFIX) + identifier + POSE_PATH_SUFFIX); + // stop if part of a scan is missing or end by absence is detected + if(!exists(data) || !exists(pose)) + break; + identifiers.push_back(identifier); + } + return identifiers; +} + +void ScanIO_riegl_txt::readPose(const char* dir_path, const char* identifier, double* pose) +{ + unsigned int i; + + path pose_path(dir_path); + pose_path /= path(std::string(POSE_PATH_PREFIX) + identifier + POSE_PATH_SUFFIX); + if(!exists(pose_path)) + throw std::runtime_error(std::string("There is no pose file for [") + identifier + "] in [" + dir_path + "]"); + + // open pose file + ifstream pose_file(pose_path); + + // if the file is open, read contents + if(pose_file.good()) { + double rPos[3], rPosTheta[16]; + double inMatrix[16], tMatrix[16]; + + for (i = 0; i < 16; ++i) + pose_file >> inMatrix[i]; + pose_file.close(); + + // transform input pose + tMatrix[0] = inMatrix[5]; + tMatrix[1] = -inMatrix[9]; + tMatrix[2] = -inMatrix[1]; + tMatrix[3] = -inMatrix[13]; + tMatrix[4] = -inMatrix[6]; + tMatrix[5] = inMatrix[10]; + tMatrix[6] = inMatrix[2]; + tMatrix[7] = inMatrix[14]; + tMatrix[8] = -inMatrix[4]; + tMatrix[9] = inMatrix[8]; + tMatrix[10] = inMatrix[0]; + tMatrix[11] = inMatrix[12]; + tMatrix[12] = -inMatrix[7]; + tMatrix[13] = inMatrix[11]; + tMatrix[14] = inMatrix[3]; + tMatrix[15] = inMatrix[15]; + + Matrix4ToEuler(tMatrix, rPosTheta, rPos); + + pose[0] = 100*rPos[0]; + pose[1] = 100*rPos[1]; + pose[2] = 100*rPos[2]; + pose[3] = rPosTheta[0]; + pose[4] = rPosTheta[1]; + pose[5] = rPosTheta[2]; + } else { + throw std::runtime_error(std::string("Pose file could not be opened for [") + identifier + "] in [" + dir_path + "]"); + } +} + +bool ScanIO_riegl_txt::supports(IODataType type) +{ + return !!(type & (DATA_XYZ | DATA_REFLECTANCE)); +} + +void ScanIO_riegl_txt::readScan(const char* dir_path, const char* identifier, PointFilter& filter, std::vector* xyz, std::vector* rgb, std::vector* reflectance, std::vector* amplitude, std::vector* type, std::vector* deviation) +{ + unsigned int i; + + // error handling + path data_path(dir_path); + data_path /= path(std::string(DATA_PATH_PREFIX) + identifier + DATA_PATH_SUFFIX); + if(!exists(data_path)) + throw std::runtime_error(std::string("There is no scan file for [") + identifier + "] in [" + dir_path + "]"); + + if(xyz != 0 || reflectance != 0) { + // open data file + ifstream data_file(data_path); + data_file.exceptions(ifstream::eofbit|ifstream::failbit|ifstream::badbit); + + // read the point count + unsigned int count; + data_file >> count; + + // reserve enough space for faster reading + xyz->reserve(3*count); + + // read points + // z x y range theta phi reflectance + double point[7]; + double tmp; + while(data_file.good()) { + try { + for(i = 0; i < 7; ++i) data_file >> point[i]; + } catch(std::ios_base::failure& e) { + break; + } + + // the enemy's x/y/z is mapped to slam's z/x/y, shuffle time! + // invert x axis + // convert coordinate to cm + tmp = point[2]; + point[2] = 100.0 * point[0]; + point[0] = -100.0 * point[1]; + point[1] = 100.0 * tmp; + + // apply filter and insert point + if(filter.check(point)) { + if(xyz != 0) { + for(i = 0; i < 3; ++i) xyz->push_back(point[i]); + } + if(reflectance != 0) { + reflectance->push_back(point[6]); + } + } + } + data_file.close(); + } +} + + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_riegl_txt; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/src/scanio/scan_io_rts.cc b/src/scanio/scan_io_rts.cc new file mode 100644 index 0000000..f2b1e95 --- /dev/null +++ b/src/scanio/scan_io_rts.cc @@ -0,0 +1,208 @@ +/* + * scan_io_rts implementation + * + * Copyright (C) Thomas Escher, Kai Lingemann, Andreas Nuechter + * + * Released under the GPL version 3. + * + */ + +/** + * @file + * @brief Implementation of reading 3D scans + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Thomas Escher + */ + +#include "scanio/scan_io_rts.h" + +#include +using std::cout; +using std::cerr; +using std::endl; +#include +using std::vector; +#include +using std::stringstream; + +#ifdef _MSC_VER +#include +#endif + +#include +#include +using namespace boost::filesystem; + +#include "slam6d/globals.icc" + + + +#define DATA_PATH_PREFIX "scan3d_0_" +#define DATA_PATH_SUFFIX ".3d" +#define POSE_PATH_FILE "odometry_0_sync_interpol.dat" + +//! RTS type flag for invalid points +#define TYPE_INVALID 0x10 + + + +std::list ScanIO_rts::readDirectory(const char* dir_path, unsigned int start, unsigned int end) +{ + std::list identifiers; + // only a single pose file, can't do without one + path pose_path(dir_path); + pose_path /= POSE_PATH_FILE; + if(exists(pose_path)) { + for(unsigned int i = start; i <= end; ++i) { + // identifier is a number (0-\infty) + std::string identifier(to_string(i)); + // scan consists of data (.3d) files + path data(dir_path); + data /= path(std::string(DATA_PATH_PREFIX) + identifier + DATA_PATH_SUFFIX); + // stop if part of a scan is missing or end by absence is detected + if(!exists(data)) + break; + identifiers.push_back(identifier); + } + } + return identifiers; +} + +void ScanIO_rts::readPose(const char* dir_path, const char* identifier, double* pose) +{ + unsigned int i; + + // if directory doesn't match the cached one, rebuild pose cache + if(cached_dir != dir_path) { + // check for pose file + path pose_path(dir_path); + pose_path /= POSE_PATH_FILE; + if(!exists(pose_path)) + throw std::runtime_error(std::string("There is no pose file in [") + dir_path + "]"); + + // open pose file once and read all poses + ifstream pose_file(pose_path); + pose_file.exceptions(ifstream::eofbit|ifstream::failbit|ifstream::badbit); + + vector poses; + double p[6], timestamp; + while(pose_file.good()) { + try { + pose_file >> timestamp + >> p[2] >> p[0] >> p[1] // x, y, z + >> p[3] >> p[5] >> p[4]; // theta_x, theta_y, theta_z + } catch(std::ios_base::failure& e) { + break; + } + + // convert + for(i = 0; i < 3; ++i) p[i] *= 0.1; + + // add in poses + for(i = 0; i < 6; ++i) poses.push_back(p[i]); + } + + // after success, set the cache + cached_poses.swap(poses); + cached_dir = dir_path; + } + + // get index from the identifier and pick the pose + stringstream str(identifier); + unsigned int scan_index; + str >> scan_index; + if(cached_poses.size() < scan_index*6 + 6) + throw std::runtime_error(std::string("There is no pose entry for scan [") + identifier + "]"); + + for(i = 0; i < 6; ++i) + pose[i] = cached_poses[scan_index*6 + i]; + return; +} + +bool ScanIO_rts::supports(IODataType type) +{ + return !!(type & (DATA_XYZ)); +} + +void ScanIO_rts::readScan(const char* dir_path, const char* identifier, PointFilter& filter, std::vector* xyz, std::vector* rgb, std::vector* reflectance, std::vector* amplitude, std::vector* type, std::vector* deviation) +{ + // TODO: Type and other columns? + unsigned int i; + + // error handling + path data_path(dir_path); + data_path /= path(std::string(DATA_PATH_PREFIX) + identifier + DATA_PATH_SUFFIX); + if(!exists(data_path)) + throw std::runtime_error(std::string("There is no scan file for [") + identifier + "] in [" + dir_path + "]"); + + if(xyz != 0) { + // open data file + ifstream data_file(data_path); + data_file.exceptions(ifstream::eofbit|ifstream::failbit|ifstream::badbit); + + // read points + // z x y type ? ? + double point[3]; + int type, dummy; + while(data_file.good()) { + try { + data_file >> point[2] >> point[0] >> point[1]; + data_file >> type >> dummy >> dummy; + } catch(std::ios_base::failure& e) { + break; + } + + // convert + point[0] *= 0.1; + point[1] *= -0.1; + point[2] *= 0.1; + + // apply filter and insert point + if(!(type & TYPE_INVALID)) { + if(filter.check(point)) { + for(i = 0; i < 3; ++i) xyz->push_back(point[i]); + } + } + } + data_file.close(); + } +} + + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_rts; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/src/scanio/scan_io_rxp.cc b/src/scanio/scan_io_rxp.cc new file mode 100644 index 0000000..0f84079 --- /dev/null +++ b/src/scanio/scan_io_rxp.cc @@ -0,0 +1,287 @@ +/* + * scan_io_rxp implementation + * + * Copyright (C) Thomas Escher, Kai Lingemann, Andreas Nuechter + * + * Released under the GPL version 3. + * + */ + +/** + * @file + * @brief Implementation of reading 3D scans + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Thomas Escher + */ + +#include "scanio/scan_io_rxp.h" +#include "riegl/scanlib.hpp" + +#include +using std::cout; +using std::cerr; +using std::endl; +#include + +#ifdef _MSC_VER +#include +#endif + +#include +#include +using namespace boost::filesystem; + +#include "slam6d/globals.icc" + +using namespace scanlib; +using namespace std; +using namespace std::tr1; + + + +#define DATA_PATH_PREFIX "scan" +#define DATA_PATH_SUFFIX ".rxp" +#define POSE_PATH_PREFIX "scan" +#define POSE_PATH_SUFFIX ".pose" + +/* +TODO: this file is still work in progress for change to the new scanserver workflow +this ScanIO has to distinguish a multi scan file and a directory of single scan files and is currently very messy handling these with the importer class +*/ + + + +std::list ScanIO_rxp::readDirectory(const char* dir_path, unsigned int start, unsigned int end) +{ + std::list identifiers; + + path pose(dir_path); + if(is_regular_file(pose)) { + // TODO: create identifiers for this case + // a) from start to end, requires sanity checks and goodwill of user + // b) iterate through the file and get last index + // c) check last index by other means through the riegl api? + // TEMP: implementing a) without sanity checks :) + for(unsigned int i = start; i < end; ++i) { + identifiers.push_back(to_string(i,3)); + } + } else { + for(unsigned int i = start; i <= end; ++i) { + // identifier is /d/d/d (000-999) + std::string identifier(to_string(i,3)); + // scan consists of data (.3d) and pose (.pose) files + path data(dir_path); + data /= path(std::string(DATA_PATH_PREFIX) + identifier + DATA_PATH_SUFFIX); + path pose(dir_path); + pose /= path(std::string(POSE_PATH_PREFIX) + identifier + POSE_PATH_SUFFIX); + // stop if part of a scan is missing or end by absence is detected + if(!exists(data) || !exists(pose)) + break; + identifiers.push_back(identifier); + } + } + return identifiers; +} + +void ScanIO_rxp::readPose(const char* dir_path, const char* identifier, double* pose) +{ + unsigned int i; + + path pose_path(dir_path); + + // if the directory actually marks a (multi scan) file, return zero pose + // TODO: test if pose_path gets constructed correctly, see removal of trailing / in the old code + if(is_regular_file(pose_path.string())) { + for(i = 0; i < 6; ++i) pose[i] = 0.0; + return; + } + + pose_path /= path(std::string(POSE_PATH_PREFIX) + identifier + POSE_PATH_SUFFIX); + if(!exists(pose_path)) + throw std::runtime_error(std::string("There is no pose file for [") + identifier + "] in [" + dir_path + "]"); + + // open pose file + boost::filesystem::ifstream pose_file(pose_path); + + // if the file is open, read contents + if(pose_file.good()) { + // read 6 plain doubles + for(i = 0; i < 6; ++i) pose_file >> pose[i]; + pose_file.close(); + + // convert angles from deg to rad + for(i = 3; i < 6; ++i) pose[i] = rad(pose[i]); + } else { + throw std::runtime_error(std::string("Pose file could not be opened for [") + identifier + "] in [" + dir_path + "]"); + } +} + +bool ScanIO_rxp::supports(IODataType type) +{ + return !!(type & (DATA_XYZ | DATA_REFLECTANCE | DATA_AMPLITUDE | DATA_DEVIATION | DATA_TYPE)); +} + +void ScanIO_rxp::readScan(const char* dir_path, const char* identifier, PointFilter& filter, std::vector* xyz, std::vector* rgb, std::vector* reflectance, std::vector* amplitude, std::vector* type, std::vector* deviation) +{ + + path data_path(dir_path); + + // distinguish file and directory + if(is_regular_file(data_path)) { + stringstream str(identifier); + int scan_index; + str >> scan_index; + // first clean up if they "directory" has changed + // second case of resetting: rewinding index in case of non-sequential index access + if(old_path != dir_path || (imp != 0 && imp->getCurrentScan() > scan_index)) { + // TODO: I'm assuming here that I can simply do this + if(rc != 0) { rc->close(); } + if(dec != 0) { delete dec; dec = 0; } + if(imp != 0) { delete imp; imp = 0; } + // TODO ^ + } + // create directory-persistent decoder + if (!dec) { + // remember path + old_path = dir_path; + + // create new connection + rc = basic_rconnection::create(data_path.string()); + rc->open(); + + // decoder splits the binary file into readable chunks + dec = new decoder_rxpmarker(rc); + // importer interprets the chunks + // TODO: this won't really work because filter is gone and xyz too and everything breaks + // probably set new filter and xyz in the importer + imp = new importer(filter, scan_index, xyz, reflectance, amplitude, type, deviation); + } + + // set new filter and vectors + imp->set(filter, xyz, reflectance, amplitude, type, deviation); + + buffer buf; + + // skip the first scans + if(imp->getCurrentScan() < scan_index) { + for(dec->get(buf); !dec->eoi(); dec->get(buf)) { + imp->dispatch(buf.begin(), buf.end()); + if(imp->getCurrentScan() >= scan_index) break; + } + } + if(dec->eoi()) return; + int cscan = imp->getCurrentScan(); + // iterate over chunks, until the next scan is reached + for(dec->get(buf); !dec->eoi(); dec->get(buf)) { + imp->dispatch(buf.begin(), buf.end()); + if(imp->getCurrentScan() != cscan) break; + } + + return; + } + + // error handling + data_path /= path(std::string(DATA_PATH_PREFIX) + identifier + DATA_PATH_SUFFIX); + if(!exists(data_path)) + throw std::runtime_error(std::string("There is no scan file for [") + identifier + "] in [" + dir_path + "]"); + + if(xyz != 0) { + string data_path_str; + data_path_str = "file://" + data_path.string(); + rc = basic_rconnection::create(data_path_str); + rc->open(); + + // decoder splits the binary file into readable chunks + dec = new decoder_rxpmarker(rc); + // importer interprets the chunks + imp = new importer(filter, 0, xyz, reflectance, amplitude, type, deviation); + + // iterate over chunks + buffer buf; + for(dec->get(buf); !dec->eoi(); dec->get(buf)) { + imp->dispatch(buf.begin(), buf.end()); + } + + //done + rc->close(); + // TODO: clean up all these pointers, aren't they dangling? + } +} + +void importer::on_echo_transformed(echo_type echo) +{ + // for multi scan files, ignore those before start + if (currentscan < start) return; + + // targets is a member std::vector that contains all + // echoes seen so far, i.e. the current echo is always + // indexed by target_count-1. + target& t(targets[target_count - 1]); + + double point[3]; + point[0] = t.vertex[1]*-100.0; + point[1] = t.vertex[2]*100.0; + point[2] = t.vertex[0]*100.0; + + if(filter->check(point)) { + if(xyz) { + for(unsigned int i = 0; i < 3; ++i) xyz->push_back(point[i]); + } + if(reflectance) reflectance->push_back(t.reflectance); + if(amplitude) amplitude->push_back(t.amplitude); + if(deviation) deviation->push_back(t.deviation); + if(type) { + if(pointcloud::first == echo) type->push_back(0); + else if(pointcloud::interior == echo) type->push_back(1); + else if(pointcloud::last == echo) type->push_back(10); + else if(pointcloud::single == echo) type->push_back(9); + } + } + + /* + // target.reflectance + // target.amplitude + // target.deviation + // target.time + // target.vertex point coordinates + */ +} + + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_rxp; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/src/scanio/scan_io_uos.cc b/src/scanio/scan_io_uos.cc new file mode 100644 index 0000000..049aefb --- /dev/null +++ b/src/scanio/scan_io_uos.cc @@ -0,0 +1,178 @@ +/* + * scan_io_uos implementation + * + * Copyright (C) Thomas Escher, Kai Lingemann, Andreas Nuechter + * + * Released under the GPL version 3. + * + */ + + +/** + * @file + * @brief Implementation of reading 3D scans + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Thomas Escher. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "scanio/scan_io_uos.h" + +#include +using std::cout; +using std::cerr; +using std::endl; +#include + +#ifdef _MSC_VER +#include +#endif + +#include +#include +using namespace boost::filesystem; + +#include "slam6d/globals.icc" + + + +#define DATA_PATH_PREFIX "scan" +#define DATA_PATH_SUFFIX ".3d" +#define POSE_PATH_PREFIX "scan" +#define POSE_PATH_SUFFIX ".pose" + + + +std::list ScanIO_uos::readDirectory(const char* dir_path, unsigned int start, unsigned int end) +{ + std::list identifiers; + for(unsigned int i = start; i <= end; ++i) { + // identifier is /d/d/d (000-999) + std::string identifier(to_string(i,3)); + // scan consists of data (.3d) and pose (.pose) files + path data(dir_path); + data /= path(std::string(DATA_PATH_PREFIX) + identifier + DATA_PATH_SUFFIX); + path pose(dir_path); + pose /= path(std::string(POSE_PATH_PREFIX) + identifier + POSE_PATH_SUFFIX); + // stop if part of a scan is missing or end by absence is detected + if(!exists(data) || !exists(pose)) + break; + identifiers.push_back(identifier); + } + return identifiers; +} + +void ScanIO_uos::readPose(const char* dir_path, const char* identifier, double* pose) +{ + unsigned int i; + + path pose_path(dir_path); + pose_path /= path(std::string(POSE_PATH_PREFIX) + identifier + POSE_PATH_SUFFIX); + if(!exists(pose_path)) + throw std::runtime_error(std::string("There is no pose file for [") + identifier + "] in [" + dir_path + "]"); + + // open pose file + ifstream pose_file(pose_path); + + // if the file is open, read contents + if(pose_file.good()) { + // read 6 plain doubles + for(i = 0; i < 6; ++i) pose_file >> pose[i]; + pose_file.close(); + + // convert angles from deg to rad + for(i = 3; i < 6; ++i) pose[i] = rad(pose[i]); + } else { + throw std::runtime_error(std::string("Pose file could not be opened for [") + identifier + "] in [" + dir_path + "]"); + } +} + +bool ScanIO_uos::supports(IODataType type) +{ + return !!(type & (DATA_XYZ)); +} + +void ScanIO_uos::readScan(const char* dir_path, const char* identifier, PointFilter& filter, std::vector* xyz, std::vector* rgb, std::vector* reflectance, std::vector* amplitude, std::vector* type, std::vector* deviation) +{ + unsigned int i; + + // error handling + path data_path(dir_path); + data_path /= path(std::string(DATA_PATH_PREFIX) + identifier + DATA_PATH_SUFFIX); + if(!exists(data_path)) + throw std::runtime_error(std::string("There is no scan file for [") + identifier + "] in [" + dir_path + "]"); + + if(xyz != 0) { + // open data file + ifstream data_file(data_path); + data_file.exceptions(ifstream::eofbit|ifstream::failbit|ifstream::badbit); + + + // aquire header informations + /* OPTIONAL: the header isn't always there, would require a sanity check + unsigned int n, m; + char[3] dummy; + data_file >> n; + for(unsigned int i = 0; i < 3; ++i) data_file >> dummy[i]; + data_file >> m; + values.reserve(n*m*3); + */ + // overread the first line + char dummy[255]; + data_file.getline(dummy, 255); + + // read points + double point[3]; + while(data_file.good()) { + try { + for(i = 0; i < 3; ++i) data_file >> point[i]; + } catch(std::ios_base::failure& e) { + break; + } + + // apply filter and insert point + if(filter.check(point)) { + for(i = 0; i < 3; ++i) xyz->push_back(point[i]); + } + } + data_file.close(); + } +} + + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_uos; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/src/scanio/scan_io_uos_rgb.cc b/src/scanio/scan_io_uos_rgb.cc new file mode 100644 index 0000000..b209cb5 --- /dev/null +++ b/src/scanio/scan_io_uos_rgb.cc @@ -0,0 +1,184 @@ +/* + * scan_io_uso_rgb implementation + * + * Copyright (C) Thomas Escher, Kai Lingemann, Andreas Nuechter + * + * Released under the GPL version 3. + * + */ + +/** + * @file + * @brief Implementation of reading 3D scans + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Thomas Escher. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "scanio/scan_io_uos_rgb.h" + +#include +using std::cout; +using std::cerr; +using std::endl; +#include + +#ifdef _MSC_VER +#include +#endif + +#include +#include +using namespace boost::filesystem; + +#include "slam6d/globals.icc" + + + +#define DATA_PATH_PREFIX "scan" +#define DATA_PATH_SUFFIX ".3d" +#define POSE_PATH_PREFIX "scan" +#define POSE_PATH_SUFFIX ".pose" + + + +std::list ScanIO_uos_rgb::readDirectory(const char* dir_path, unsigned int start, unsigned int end) +{ + std::list identifiers; + for(unsigned int i = start; i <= end; ++i) { + // identifier is /d/d/d (000-999) + std::string identifier(to_string(i,3)); + // scan consists of data (.3d) and pose (.pose) files + path data(dir_path); + data /= path(std::string(DATA_PATH_PREFIX) + identifier + DATA_PATH_SUFFIX); + path pose(dir_path); + pose /= path(std::string(POSE_PATH_PREFIX) + identifier + POSE_PATH_SUFFIX); + // stop if part of a scan is missing or end by absence is detected + if(!exists(data) || !exists(pose)) + break; + identifiers.push_back(identifier); + } + return identifiers; +} + +void ScanIO_uos_rgb::readPose(const char* dir_path, const char* identifier, double* pose) +{ + unsigned int i; + + path pose_path(dir_path); + pose_path /= path(std::string(POSE_PATH_PREFIX) + identifier + POSE_PATH_SUFFIX); + if(!exists(pose_path)) + throw std::runtime_error(std::string("There is no pose file for [") + identifier + "] in [" + dir_path + "]"); + + // open pose file + ifstream pose_file(pose_path); + + // if the file is open, read contents + if(pose_file.good()) { + // read 6 plain doubles + for(i = 0; i < 6; ++i) pose_file >> pose[i]; + pose_file.close(); + + // convert angles from deg to rad + for(i = 3; i < 6; ++i) pose[i] = rad(pose[i]); + } else { + throw std::runtime_error(std::string("Pose file could not be opened for [") + identifier + "] in [" + dir_path + "]"); + } +} + +bool ScanIO_uos_rgb::supports(IODataType type) +{ + return !!(type & (DATA_XYZ | DATA_RGB)); +} + +void ScanIO_uos_rgb::readScan(const char* dir_path, const char* identifier, PointFilter& filter, std::vector* xyz, std::vector* rgb, std::vector* reflectance, std::vector* amplitude, std::vector* type, std::vector* deviation) +{ + unsigned int i; + + // error handling + path data_path(dir_path); + data_path /= path(std::string(DATA_PATH_PREFIX) + identifier + DATA_PATH_SUFFIX); + if(!exists(data_path)) + throw std::runtime_error(std::string("There is no scan file for [") + identifier + "] in [" + dir_path + "]"); + + if(xyz != 0 || rgb != 0) { + // open data file + ifstream data_file(data_path); + data_file.exceptions(ifstream::eofbit|ifstream::failbit|ifstream::badbit); + + + // aquire header informations + /* OPTIONAL: the header isn't always there, would require a sanity check + unsigned int n, m; + char[3] dummy; + data_file >> n; + for(unsigned int i = 0; i < 3; ++i) data_file >> dummy[i]; + data_file >> m; + values.reserve(n*m*3); + */ + // overread the first line + char dummy[255]; + data_file.getline(dummy, 255); + + // read points + double point[3]; + unsigned int color[3]; + while(data_file.good()) { + try { + for(i = 0; i < 3; ++i) data_file >> point[i]; + for(i = 0; i < 3; ++i) data_file >> color[i]; + } catch(std::ios_base::failure& e) { + break; + } + // apply filter and insert point + if(filter.check(point)) { + if(xyz != 0) { + for(i = 0; i < 3; ++i) xyz->push_back(point[i]); + } + if(rgb != 0) { + for(i = 0; i < 3; ++i) rgb->push_back( + static_cast(color[i])); + } + } + } + data_file.close(); + } +} + + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) ScanIO* create() +#else +extern "C" ScanIO* create() +#endif +{ + return new ScanIO_uos_rgb; +} + + +/** + * class factory for object construction + * + * @return Pointer to new object + */ +#ifdef _MSC_VER +extern "C" __declspec(dllexport) void destroy(ScanIO *sio) +#else +extern "C" void destroy(ScanIO *sio) +#endif +{ + delete sio; +} + +#ifdef _MSC_VER +BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) +{ + return TRUE; +} +#endif diff --git a/src/scanio/scan_io_velodyne.cc b/src/scanio/scan_io_velodyne.cc new file mode 100644 index 0000000..9202c0f --- /dev/null +++ b/src/scanio/scan_io_velodyne.cc @@ -0,0 +1,614 @@ +/* + * scan_io_velodyne implementation + * + * Copyright (C) Mohammad Faisal, Dorit Borrmann, Andreas Nuechter + * + * Released under the GPL version 3. + * + */ + +/** + * @file + * @brief Implementation of reading 3D scans + * @author Andreas Nuechter. Jacobs University Bremen gGmbH + * @author Dorit Borrmann. Smart Systems Group, Jacobs University Bremen gGmbH, Germany. + * @author Mohammad Faisal. Smart Systems Group, Jacobs University Bremen gGmbH, Germany. + */ +#include "slam6d/point.h" +#include "veloslam/velodefs.h" +#include "scanio/scan_io_velodyne.h" +#include "slam6d/globals.icc" +#include +#include +#include +using std::ifstream; +using std::ostrstream; +using std::cerr; +using std::endl; +using std::ends; + +#include +using std::swap; + +#include +#include +#include +#include +#include + +using namespace std; + +#ifdef _MSC_VER +#include +#endif +#include +#include +using namespace boost::filesystem; + +#define DATA_PATH_PREFIX "scan" +#define DATA_PATH_SUFFIX ".bin" +#define POSE_PATH_PREFIX "scan" +#define POSE_PATH_SUFFIX ".pose" + +#define BLOCK_OFFSET 42+16 + +#define BLOCK_SIZE 1206 +#define CIRCLELENGTH 360 +#define VELODYNE_NUM_LASERS 64 +#define CircleBufferSize CIRCLELENGTH*32*12 +#define CIRCLEROUND CIRCLELENGTH*6 + +#define RADIANS_PER_LSB 0.0174532925 +#define METERS_PER_LSB 0.002 +#define METERS_PER_CM 0.01 + +#define TWOPI_INV (0.5/M_PI) +#define TWOPI (2*M_PI) + +typedef struct raw_packet + { + unsigned char dat[1200]; + unsigned short revolution; + unsigned char status[4]; + } raw_packet_t; + + +typedef unsigned char BYTE; + +long CountOfLidar = 0; + +//Changes the variable to be filled dynamically. Added a 6th variable to enable or disable a specific sensor +double velodyne_calibrated[VELODYNE_NUM_LASERS][6]; + +/** + * Method to fill the calibration data using the Velodyne64 calibration data from Wuhan. + */ +int backup() +{ + double velodyne_calibrated1[64][6] = + { + { -7.1581192, -4.5, 102, 21.560343, -2.5999999, 1}, + { -6.8178215, -3.4000001, 125, 21.516994, 2.5999999, 1}, + { 0.31782165, 3, 130, 20.617426, -2.5999999, 1}, + { 0.65811908, 4.5999999, 128, 20.574717, 2.5999999, 1}, + { -6.4776502, -0.5, 112, 21.473722, -2.5999999, 1}, + { -6.1375928, 1, 125, 21.430525, 2.5999999, 1}, + { -8.520812, -1.5, 106, 21.734608, -2.5999999, 1}, + { -8.1798887, 0.40000001, 127, 21.690901, 2.5999999, 1}, + { -5.797637, 4, 111, 21.387396, -2.5999999, 1}, + { -5.4577708, 5.5, 126, 21.34433, 2.5999999, 1}, + { -7.8391404, 3.0999999, 113, 21.647291, -2.5999999, 1}, + { -7.4985547, 4.5, 123, 21.603773, 2.5999999, 1}, + { -3.0802133, -4.5, 105, 21.044245, -2.5999999, 1}, + { -2.7406337, -3.2, 133, 21.001518, 2.5999999, 1}, + { -5.1179824, -5.5, 110, 21.301321, -2.5999999, 1}, + { -4.7782598, -4, 129, 21.258366, 2.5999999, 1}, + { -2.4010365, -0.2, 111, 20.958813, -2.5999999, 1}, + { -2.0614092, 1, 130, 20.916126, 2.5999999, 1}, + { -4.4385905, -1.2, 115, 21.215462, -2.5999999, 1}, + { -4.0989642, 0, 133, 21.172602, 2.5999999, 1}, + { -1.7217404, 3.8, 113, 20.873451, -2.5999999, 1}, + { -1.3820176, 5, 130, 20.830786, 2.5999999, 1}, + { -3.7593663, 3, 117, 21.129782, -2.5999999, 1}, + { -3.4197867, 4.5, 129, 21.086998, 2.5999999, 1}, + { 0.998555, -4.5, 107, 20.531982, -2.5999999, 1}, + { 1.339141, -3.2, 131, 20.489222, 2.5999999, 1}, + { -1.0422293, -5.4000001, 128, 20.788124, -2.5999999, 1}, + { -0.70236301, -4, 134, 20.745461, 2.5999999, 1}, + { 1.679889, -0.5, 124, 20.446428, -2.5999999, 1}, + { 2.0208123, 1, 136, 20.403601, 2.5999999, 1}, + { -0.36240739, -1.5, 131, 20.702793, -2.5999999, 1}, + { -0.022349782, 0.2, 136, 20.660116, 2.5999999, 1}, + { -22.737886, -7.8000002, 101, 16.019152, -2.5999999, 1}, + { -22.226072, -5, 88, 15.954137, 2.5999999, 1}, + { -11.513928, 4.5, 121, 14.680806, -2.5999999, 1}, + { -11.002114, 7.4000001, 88, 14.623099, 2.5999999, 1}, + { -21.714685, -1, 94, 15.889649, -2.5999999, 1}, + { -21.203688, 2, 88, 15.82566, 2.5999999, 1}, + { -24.790272, -2.5, 114, 16.284933, -2.5999999, 1}, + { -24.276321, 0.5, 89, 16.217583, 2.5999999, 1}, + { -20.693031, 6, 98, 15.762167, -2.5999999, 1}, + { -20.182682, 9, 92, 15.699132, 2.5999999, 1}, + { -23.762968, 4.5, 107, 16.15085, -2.5999999, 1}, + { -23.250172, 7.5, 80, 16.084715, 2.5999999, 1}, + { -16.615318, -7.5, 121, 15.26925, -2.5999999, 1}, + { -16.105938, -5, 92, 15.209245, 2.5999999, 1}, + { -19.672594, -9, 119, 15.63654, -2.5999999, 1}, + { -19.162729, -6, 89, 15.574372, 2.5999999, 1}, + { -15.596496, -1, 109, 15.14954, -2.5999999, 1}, + { -15.086954, 2, 88, 15.090119, 2.5999999, 1}, + { -18.653046, -2, 117, 15.51261, -2.5999999, 1}, + { -18.143503, 0.69999999, 88, 15.451235, 2.5999999, 1}, + { -14.577271, 5.5, 112, 15.030966, -2.5999999, 1}, + { -14.067405, 8.3999996, 87, 14.972065, 2.5999999, 1}, + { -17.634062, 5, 119, 15.390228, -6.1999998, 1}, + { -17.124681, 7.5, 97, 15.329572, 2.5999999, 1}, + { -10.489829, -7.5, 119, 14.565539, -2.5999999, 1}, + { -9.9770317, -4.6999998, 95, 14.508112, 2.5999999, 1}, + { -13.557318, -8.5, 126, 14.913401, -2.5999999, 1}, + { -13.046968, -6, 92, 14.854958, 2.5999999, 1}, + { -9.4636793, -1, 112, 14.450804, -2.5999999, 1}, + { -8.949728, 1.5, 93, 14.3936, 2.5999999, 1}, + { -12.536313, -2, 121, 14.796721, -2.5999999, 1}, + { -12.025314, 0.40000001, 96, 14.738676, 2.5999999, 1}, + }; + + for ( int i = 0; i < VELODYNE_NUM_LASERS; i++ ) + { + velodyne_calibrated[i][0] = velodyne_calibrated1[i][0]; + velodyne_calibrated[i][1] = velodyne_calibrated1[i][1]; + velodyne_calibrated[i][2] = velodyne_calibrated1[i][2]; + velodyne_calibrated[i][3] = velodyne_calibrated1[i][3]; + velodyne_calibrated[i][4] = velodyne_calibrated1[i][4]; + velodyne_calibrated[i][5] = velodyne_calibrated1[i][5]; + } + + return 0; +} + +double rotCorrection[VELODYNE_NUM_LASERS]; +double vertCorrection[VELODYNE_NUM_LASERS]; +double distCorrection[VELODYNE_NUM_LASERS]; +double vertoffsetCorrection[VELODYNE_NUM_LASERS]; +double horizdffsetCorrection[VELODYNE_NUM_LASERS]; +double enabled[VELODYNE_NUM_LASERS]; //New variable to change enabling and disabling of data. + +int physical2logical[VELODYNE_NUM_LASERS]; +int logical2physical[VELODYNE_NUM_LASERS]; + +double absf ( double a ) +{ + if ( a < 0 ) + return -a; + return a; +} + +int velodyne_physical_to_logical ( int phys ) +{ + return physical2logical[phys]; +} + +int velodyne_logical_to_physical ( int logical ) +{ + return logical2physical[logical]; +} + +int laser_phi_compare(const void *_a, const void *_b) +{ + int a = *((int*) _a); + int b = *((int*) _b); + + if (velodyne_calibrated[a][0] < velodyne_calibrated[b][0]) + return -1; + + return 1; +} + +/** valid only for v > 0 **/ +static inline double mod2pi_positive(double vin) +{ + double q = vin * TWOPI_INV + 0.5; + int qi = (int) q; + + return vin - qi*TWOPI; +} + +/** Map v to [-PI, PI] **/ +static inline double mod2pi(double vin) +{ + if (vin < 0) + return -mod2pi_positive(-vin); + else + return mod2pi_positive(vin); +} + +/** Return vin such that it is within PI degrees of ref **/ +static inline double mod2pi_ref(double ref, double vin) +{ + return ref + mod2pi(vin - ref); +} + +int velodyne_calib_precompute() +{ + int i; + int logical; + for ( i = 0; i < VELODYNE_NUM_LASERS; i++ ) + logical2physical[i] = i; + + qsort ( logical2physical, VELODYNE_NUM_LASERS, sizeof ( int ), laser_phi_compare ); + + for ( logical = 0; logical < VELODYNE_NUM_LASERS; logical++ ) + { + physical2logical[logical2physical[logical]] = logical; + } + + //vertCorrection rotCorrection distCorrection vertOffsetCorrection horizOffsetCorrection enable + for ( i = 0; i < VELODYNE_NUM_LASERS; i++ ) + { + vertCorrection[i] = velodyne_calibrated[i][0] * RADIANS_PER_LSB; + rotCorrection[i] = velodyne_calibrated[i][1] * RADIANS_PER_LSB; + distCorrection[i] = velodyne_calibrated[i][2] * METERS_PER_CM; + vertoffsetCorrection[i] = velodyne_calibrated[i][3] * METERS_PER_CM; + horizdffsetCorrection[i] = velodyne_calibrated[i][4] * METERS_PER_CM; + enabled[i] = velodyne_calibrated[i][5]; + } + + return 0; +} + + +int calibrate(string filename) +{ + int linecount = 0; + string line; + std::ifstream myfile (filename.c_str()); + if (myfile.is_open()) + { + cout << "Using Calibration File"<(string::npos - theDelimiter.size()))?string::npos:end + theDelimiter.size()); + i++; + } + + velodyne_calibrated[j][0] = atof(data[0].c_str()); + velodyne_calibrated[j][1] = atof(data[1].c_str()); + velodyne_calibrated[j][2] = atof(data[2].c_str()); + velodyne_calibrated[j][3] = atof(data[3].c_str()); + velodyne_calibrated[j][4] = atof(data[4].c_str()); + velodyne_calibrated[j][5] = atof(data[5].c_str()); + linecount++; + j++; + } + while(!myfile.eof()); + + myfile.close(); + + if (linecount < 60) + { + for (int i = 32; i<64; i++) + { + velodyne_calibrated[i][0] = 0.0; + velodyne_calibrated[i][1] = 0.0; + velodyne_calibrated[i][2] = 0.0; + velodyne_calibrated[i][3] = 0.0; + velodyne_calibrated[i][4] = 0.0; + velodyne_calibrated[i][5] = 0.0; + } + } + } + else + { + cout << "Unable to open calibration file.\nUsing Wuhan hardcored values."<* xyz, + std::vector* rgb, + std::vector* reflectance, + std::vector* amplitude, + std::vector* type, + std::vector* deviation) +{ + + int c, i, j; + unsigned char Head; + BYTE buf[BLOCK_SIZE]; + Point point; + BYTE *p; + unsigned short *ps; + unsigned short *pt; + unsigned short *pshort; + + double ctheta; + double theta, phi; + + double sin_ctheta, cos_ctheta; + double sin_theta, cos_theta; + double sin_phi, cos_phi; + + unsigned short physicalNO; + unsigned short logicalNO; + + float rotational; + float distance; + float corredistance; + int intensity; + int physical; + int size; + + unsigned short rot; + double x, y, z; + + int circle_col = 0; + int circle_row = 0; + + for ( c = 0 ; c < CIRCLELENGTH; c++ ) + { +#ifdef _MSC_VER + fseek(fp , BLOCK_OFFSET, SEEK_CUR); +#else + fseeko(fp , BLOCK_OFFSET, SEEK_CUR); +#endif + size=fread ( buf, 1, BLOCK_SIZE, fp ); + + if(size 2.2 ) + { + BYTE *inty = ( BYTE * ) ( p + 4 + j * 3 + 2 ); + intensity = *inty; + + ctheta = 2 * M_PI - rotational * RADIANS_PER_LSB; + if ( ctheta == 2*M_PI ) + ctheta = 0; + + sin_ctheta = sin ( ctheta ); + cos_ctheta = cos ( ctheta ); + + //vertCorrection rotCorrection distCorrection vertOffsetCorrection horizOffsetCorrection + // corredistance = ( distance + distCorrection[physicalNO] ) * ( 1.0 + vertoffsetCorrection[physicalNO] ); + corredistance = ( distance + distCorrection[physicalNO] ) ; + theta = mod2pi_ref ( M_PI, ctheta + rotCorrection[physicalNO] ); /////////????//////// + phi = vertCorrection[physicalNO]; ////////?????///////////////// + + sin_theta = sin ( theta ); + cos_theta = cos ( theta ); + sin_phi = sin ( phi ); + cos_phi = cos ( phi ); + + /////////////////////?a??×?±ê///////////////////// + x = corredistance * cos_theta * cos_phi; + y = corredistance * sin_theta * cos_phi; + z = corredistance * sin_phi +vertoffsetCorrection[physicalNO]*cos_phi; + + x -= horizdffsetCorrection[physicalNO] * cos_ctheta; + y -= horizdffsetCorrection[physicalNO] * sin_ctheta; + + point.rad = sqrt( x*x + y*y ); + point.tan_theta = y/x; + + point.type = POINT_TYPE_GROUND; + point.x=x*100; + point.y=z*100; + point.z=-y*100; + + double p[3]; + p[0] = point.x; + p[1] = point.y; + p[2] = point.z; + + //Enable Check. Could be moved earlier to remove all the unnecessary calculations. + //Here to simplify the implementation + if(filter.check(p) && (enabled[physicalNO]==1)) + { + for(int ii = 0; ii < 3; ++ii) xyz->push_back(p[ii]); + } + } + } + p = p + 100; + ps = ( unsigned short * ) p; + } + + + } + + return 0; +} + +std::list ScanIO_velodyne::readDirectory(const char* dir_path, unsigned int start, unsigned int end) +{ + //Calling the calibration method with the file name "calibration.txt" in the same folder as the scan.bin + string califilename; + string dir(dir_path); + califilename = dir + "calibration" + ".txt"; + calibrate(califilename); + std::list identifiers; +// fileCounter = start; + + velodyne_calib_precompute(); + for(unsigned int i = start; i <= end; ++i) + { + std::string identifier(to_string(i,3)); + + path data(dir_path); + data /= path(std::string(DATA_PATH_PREFIX) + DATA_PATH_SUFFIX); + + path pose(dir_path); + pose /= path(std::string(POSE_PATH_PREFIX) + identifier + POSE_PATH_SUFFIX); + + if(!exists(data)) + break; + identifiers.push_back(identifier); + } + + return identifiers; +} + +void ScanIO_velodyne::readPose(const char* dir_path, const char* identifier, double* pose) +{ + unsigned int i; + // on pose information for veloslam + for(i = 0; i < 6; ++i) pose[i] = 0.0; + for(i = 3; i < 6; ++i) pose[i] = 0.0; + return; +} + +bool ScanIO_velodyne::supports(IODataType type) +{ + return !!(type & (DATA_XYZ)); +} + + +void ScanIO_velodyne::readScan( + const char* dir_path, + const char* identifier, + PointFilter& filter, + std::vector* xyz, + std::vector* rgb, + std::vector* reflectance, + std::vector* amplitude, + std::vector* type, + std::vector* deviation) +{ + unsigned int i; + FILE *scan_in; + + path data_path(dir_path); + data_path /= path(std::string(DATA_PATH_PREFIX) + DATA_PATH_SUFFIX); + if(!exists(data_path)) + throw std::runtime_error(std::string("There is no scan file for [") + identifier + "] in [" + dir_path + "]"); + + char filename[256]; + sprintf(filename, "%s%s%s",dir_path ,DATA_PATH_PREFIX, DATA_PATH_SUFFIX ); + +#ifdef _MSC_VER + scan_in = fopen(filename,"rb"); +#else + scan_in = fopen64(filename,"rb"); +#endif + + if(scan_in == NULL) + { + cerr<reserve(12*32*CIRCLELENGTH); + + fileCounter= atoi(identifier); + + #ifdef _MSC_VER + fseek(scan_in, 24, SEEK_SET); + fseek(scan_in, (BLOCK_SIZE+BLOCK_OFFSET)*CIRCLELENGTH*fileCounter, SEEK_CUR); +#else + fseeko(scan_in, 24, SEEK_SET); + fseeko(scan_in, (BLOCK_SIZE+BLOCK_OFFSET)*CIRCLELENGTH*fileCounter, SEEK_CUR); +#endif + + read_one_packet( + scan_in, + filter, + xyz, + rgb, + reflectance, + amplitude, + type, + deviation); + + cout << " with " << xyz->size() << " Points"; + cout << " done " << fileCounter< +#include +#include +#include +#include +#include +#include +#include +#include +#define PI 3.14159265 +using namespace std; + +int main(int argc, char** argv){ + + if (argc!=2){ + cout<<"USAGE: david_scanner config_file\nConfig file should contain path_to_frames first_valid_frame last_valid_frame empty_frame path_to_intrinsics" + "path_to_rotation_left path_to_rotation_right path_to_translation_left and path_to_translation_right each on a new line!"<imageData; + for (int row = 0; row < diff->height; row++){ + for (int col = 0; col < diff->width; col++){ + int R; + R = pixels[ row * diff->widthStep + col * 3 + 2 ]; + if (R>30) { + pixels[ row * diff->widthStep + col * 3 + 0 ] = 0; + pixels[ row * diff->widthStep + col * 3 + 1 ] = 0; + pixels[ row * diff->widthStep + col * 3 + 2 ] = 255; + } else { + pixels[ row * diff->widthStep + col * 3 + 0 ] = 0; + pixels[ row * diff->widthStep + col * 3 + 1 ] = 0; + pixels[ row * diff->widthStep + col * 3 + 2 ] = 0; + } + + } + } + + //remove pixels that don't have at least 2 red neighbors + for (int row = 1; row < diff->height-1; row++){ + for (int col = 1; col < diff->width-1; col++){ + int R = pixels[ row * diff->widthStep + col * 3 + 2 ]; + if (R == 255){ + int r1 = pixels[ (row-1)*diff->widthStep + col * 3 + 2]; + int r2 = pixels[ (row-1)*diff->widthStep + (col-1) * 3 + 2]; + int r3 = pixels[ (row-1)*diff->widthStep + (col+1) * 3 + 2]; + int r4 = pixels[ (row+1)*diff->widthStep + col * 3 + 2]; + int r5 = pixels[ (row+1)*diff->widthStep + (col-1) * 3 + 2]; + int r6 = pixels[ (row+1)*diff->widthStep + (col+1) * 3 + 2]; + int r7 = pixels[ (row)*diff->widthStep + (col-1) * 3 + 2]; + int r8 = pixels[ (row)*diff->widthStep + (col+1) * 3 + 2]; + if (r1+r2+r3+r4+r5+r6+r7+r8<=255) pixels[ row * diff->widthStep + col * 3 + 2 ]=0; + } + } + } + + //*****finding 2 lines on the image***** + + bool good = false; + int threshold = 50; //original threshold for Hough transform, incremented if too many groups of lines found + IplImage* color_dst; + IplImage* tmpImage; + int minX1, minX2, maxX1, maxX2; + CvSeq* lines = 0; + CvPoint* line1; + CvPoint* line2; + int count_groups; + + //incrementing thresholds until only 2 groups of lines can be found + while(!good){ + good = true; + count_groups = 0; //counter for number of line groups. Line group is defined by the slope + int epsilon = 1.5; //error margin for the slope + color_dst = cvCreateImage( cvGetSize(diff), 8, 3 ); + color_dst = cvCloneImage(diff); + tmpImage = cvCreateImage(cvGetSize(diff), IPL_DEPTH_8U, 1); + cvCvtColor(diff, tmpImage, CV_RGB2GRAY); + IplImage* dst = cvCreateImage( cvGetSize(diff), 8, 1 ); + cvCanny(tmpImage, dst, 20, 60, 3 ); + CvMemStorage* storage = cvCreateMemStorage(0); + //find all lines using Hough transform + lines = cvHoughLines2( dst, storage, CV_HOUGH_PROBABILISTIC, 1, CV_PI/180,threshold, 150, 100 ); + double first_group, second_group; + for(int i = 0; i < lines->total; i++ ){ + //get the slope of the line, check if it belongs to an already existing group + CvPoint* line = (CvPoint*)cvGetSeqElem(lines,i); + double angle = atan((double)(line[1].x-line[0].x)/(double)(line[1].y-line[0].y))*180/PI; + //starting first group + if (count_groups==0){ + first_group = angle; + line1 = line; + minX1 = line[0].x; + maxX1 = line[1].x; + count_groups++; + + } else { + + if (angle-first_group(epsilon*-1)){ + //line belongs to the first group of line..that's good + if (line[0].xmaxX1)maxX1=line[1].x; + } else { + //check if belongs to the second group + if ( count_groups == 2 ){ + if (angle-second_group(epsilon*-1)){ + if (line[0].xmaxX2)maxX2=line[1].x; + }else{ + //if not then try again with a higher threshold + good = false; + threshold+=20; + cout<<"Increased threshold: "<height,ymin+10)); + points[2]=cvPoint(maxX1, min(color_dst->height,ymax+10)); + points[3]=cvPoint(maxX1, max(0,ymax-10)); + CvPoint* pts[1]; + pts[0]=points; + int npts[1]; + npts[0]=4; + cvPolyLine(color_dst, pts, npts,1,1, CV_RGB(0,0,0), 20, 8 );//removing the group + + x1 = line2[0].x; + x2 = line2[1].x; + y1 = line2[0].y; + y2 = line2[1].y; + + c1 = (double)(x1 - minX2)/(double)(x2 - minX2); + c2 = (double)(maxX2 - x1)/(double)(maxX2 - x2); + + ymin = (c1*y2 - y1)/(c1-1); + ymax = (c2*y2 - y1)/(c2-1); + + if (maxX2 == x2) ymax = y2; + if (minX2 == x1) ymin = y1; + + //getting start and end of the second line + point3 = cvPoint(minX2, ymin); + point4 = cvPoint(maxX2, ymax); + + points[0]=cvPoint(minX2, max(0,ymin-10)); + points[1]=cvPoint(minX2, min(color_dst->height,ymin+10)); + points[2]=cvPoint(maxX2, min(color_dst->height,ymax+10)); + points[3]=cvPoint(maxX2, max(0,ymax-10)); + + pts[0]=points; + + cvPolyLine(color_dst, pts, npts,1,1, CV_RGB(0,0,0), 20, 8 );//removing the group + cvLine(color_dst, point3, point4,CV_RGB(0,255,0),3, 8 ); //draw the second line! + cvLine(color_dst, point1, point2,CV_RGB(0,255,0),3, 8 ); //draw the first line! + + //removing everything to the left of the left line and to the right of the right line + if (point4.x > point2.x){ + if (color_dst->width > point4.x){ + cvRectangle(color_dst,cvPoint(point4.x,0),cvPoint(color_dst->width,color_dst->height),CV_RGB(0,0,0),CV_FILLED); + } + if (point1.x > 0){ + cvRectangle(color_dst,cvPoint(point1.x,0),cvPoint(0,color_dst->height),CV_RGB(0,0,0),CV_FILLED); + } + } + if (point4.x < point2.x){ + if (color_dst->width > point2.x){ + cvRectangle(color_dst,cvPoint(point2.x,0),cvPoint(color_dst->width,color_dst->height),CV_RGB(0,0,0),CV_FILLED); + } + if (point3.x > 0){ + cvRectangle(color_dst,cvPoint(point3.x,0),cvPoint(0,color_dst->height),CV_RGB(0,0,0),CV_FILLED); + } + } + //at this point we have to lines which we drew in green...which means all the red pixels that remain on the image + //are supposed to be laying on the object. Make them blue (for no particular reason..just looked nicer :) ) + unsigned char* pixels = (unsigned char*)color_dst->imageData; + + for (int row = 1; row < color_dst->height-1; row++){ + for (int col = 1; col < color_dst->width-1; col++){ + int R = pixels[ row * color_dst->widthStep + col * 3 + 2 ]; + if (R == 255){ + pixels[ row * color_dst->widthStep + col * 3 + 0 ]=255; + pixels[ row * color_dst->widthStep + col * 3 + 1 ]=0; + pixels[ row * color_dst->widthStep + col * 3 + 2 ]=0; + } + } + } + + } else continue; + + //take points on planes + CvPoint left1, left2, right1; + if (point1.x < point3.x){ + left1 = point1; + left2 = point2; + right1 = point3; + } else { + left1 = point3; + left2 = point4; + right1 = point1; + } + + //find 3d coordinate of the 2 points on the line on the left plane + //(x,y,z).t() = s*R.i()*A.i()*(u,v,1).t() - R.i()*T + + CvMat* imagepoint1 = cvCreateMat( 3, 1, CV_32F ); + CV_MAT_ELEM(*imagepoint1, float, 0, 0) = left1.x; + CV_MAT_ELEM(*imagepoint1, float, 1, 0) = left1.y; + CV_MAT_ELEM(*imagepoint1, float, 2, 0) = 1; + + + CvMat* b1 = cvCreateMat(3, 1, CV_32F); + cvMatMul(R1iAi, imagepoint1, b1); + + //calculate scalar s based on the fact that point we take is on the wall => z coordinate is 0 + float s1 = CV_MAT_ELEM(*a1, float, 2, 0)/CV_MAT_ELEM(*b1, float, 2, 0); + + CvMat* identity = cvCreateMat(3,3,CV_32F); + cvSetIdentity(identity); + for (int i = 0; i < 3; i++){ + CV_MAT_ELEM(*identity, float, i, i)=s1; + } + CvMat* temp = cvCreateMat(3,1,CV_32F); + cvMatMul(identity,b1, temp); + + CvMat* dpoint1 = cvCreateMat(3,1,CV_32F); + cvSub(temp, a1, dpoint1); //first 3d point on the left plane + + //same thing for the second point + CvMat* imagepoint2 = cvCreateMat( 3, 1, CV_32F ); + + CV_MAT_ELEM(*imagepoint2, float, 0, 0) = left2.x; + CV_MAT_ELEM(*imagepoint2, float, 1, 0) = left2.y; + CV_MAT_ELEM(*imagepoint2, float, 2, 0) = 1; + + CvMat* b2 = cvCreateMat(3, 1, CV_32F); + cvMatMul(R1iAi, imagepoint2, b2); + + float s2 = CV_MAT_ELEM(*a1, float, 2, 0)/CV_MAT_ELEM(*b2, float, 2, 0); + + cvSetIdentity(identity, cvRealScalar(s2)); + cvMatMul(identity,b2, b2); + + CvMat* dpoint2 = cvCreateMat(3,1,CV_32F); + cvSub(b2, a1, dpoint2); //second 3d point on the left plane + + //same for the point on the right plane + CvMat* imagepoint3 = cvCreateMat( 3, 1, CV_32F ); + CV_MAT_ELEM(*imagepoint3, float, 0, 0) = right1.x; + CV_MAT_ELEM(*imagepoint3, float, 1, 0) = right1.y; + CV_MAT_ELEM(*imagepoint3, float, 2, 0) = 1; + + CvMat* b3 = cvCreateMat(3, 1, CV_32F); + cvMatMul(R2iAi, imagepoint3, b3); + + float s3 = CV_MAT_ELEM(*a2, float, 2, 0)/CV_MAT_ELEM(*b3, float, 2, 0); + + cvSetIdentity(identity, cvRealScalar(s3)); + cvMatMul(identity,b3, b3); + + CvMat* dpoint3 = cvCreateMat(3,1,CV_32F); + cvSub(b3, a2, dpoint3); //point on the right plane + + //convert point from the right plane into the coord. system of the left plane + //p1 = R1.i()*[R2|T2]*p2 - R1.i()*T1 + CvMat* dpoint3left = cvCreateMat(3,1,CV_32F); + CvMat* pw = cvCreateMat(4,1,CV_32F); + for (int i = 0; i<3; i++){ + CV_MAT_ELEM(*pw, float, i, 0) = CV_MAT_ELEM(*dpoint3, float, i, 0); + } + CV_MAT_ELEM(*pw, float, 3, 0) = 1.0; + CvMat* r2t2pw = cvCreateMat(3,1,CV_32F); + cvMatMul(r2t2, pw, r2t2pw); + CvMat* r1invr2t2pw = cvCreateMat(3,1,CV_32F); + cvMatMul(r1inv, r2t2pw, r1invr2t2pw); + + cvSub(r1invr2t2pw, a1, dpoint3left); + //now that we have 3 non-colinear point in the same coordinate system we can find the equation of the plane + /* + A = y1 (z2 - z3) + y2 (z3 - z1) + y3 (z1 - z2) + B = z1 (x2 - x3) + z2 (x3 - x1) + z3 (x1 - x2) + C = x1 (y2 - y3) + x2 (y3 - y1) + x3 (y1 - y2) + - D = x1 (y2 z3 - y3 z2) + x2 (y3 z1 - y1 z3) + x3 (y1 z2 - y2 z1) + */ + float x1 = CV_MAT_ELEM(*dpoint1, float,0,0); + float y1 = CV_MAT_ELEM(*dpoint1, float,1,0); + float z1 = CV_MAT_ELEM(*dpoint1, float,2,0); + float x2 = CV_MAT_ELEM(*dpoint2, float,0,0); + float y2 = CV_MAT_ELEM(*dpoint2, float,1,0); + float z2 = CV_MAT_ELEM(*dpoint2, float,2,0); + float x3 = CV_MAT_ELEM(*dpoint3left, float,0,0); + float y3 = CV_MAT_ELEM(*dpoint3left, float,1,0); + float z3 = CV_MAT_ELEM(*dpoint3left, float,2,0); + float planeA = (y1 * (z2 - z3)) + (y2 * (z3 - z1)) + (y3 * (z1 - z2)); + float planeB = (z1 * (x2 - x3)) + (z2 * (x3 - x1)) + (z3 * (x1 - x2)); + float planeC = (x1 * (y2 - y3)) + (x2 * (y3 - y1)) + (x3 * (y1 - y2)); + float planeD = -((x1 * (y2 * z3 - y3 * z2)) + (x2 * (y3 * z1 - y1 * z3)) + (x3 * (y1 * z2 - y2 * z1))); + + //calculate normal to the lazer plane + CvMat* planeNormal = cvCreateMat(3, 1, CV_32F); + CV_MAT_ELEM(*planeNormal, float,0,0) = planeA; + CV_MAT_ELEM(*planeNormal, float,1,0) = planeB; + CV_MAT_ELEM(*planeNormal, float,2,0) = planeC; + + pixels = (unsigned char*)color_dst->imageData; + unsigned char* color_pixels = (unsigned char*)image_empty->imageData; + + //go through all the pixels on the object and calculate the 3d coordinate + for (int row = 1; row < color_dst->height-1; row++){ + for (int col = 1; col < color_dst->width-1; col++){ + int B = pixels[ row * color_dst->widthStep + col * 3]; + if (B == 255){ + //get RGB of the pixel on the original image + int realB = color_pixels[ row * color_dst->widthStep + col * 3]; + int realG = color_pixels[ row * color_dst->widthStep + col * 3 + 1]; + int realR = color_pixels[ row * color_dst->widthStep + col * 3 + 2]; + //Used http://www.cs.princeton.edu/courses/archive/fall00/cs426/lectures/raycast/sld017.htm for reference + //on how to find intersection of ray and a plane + float p0dotN = cvDotProduct(a1,planeNormal); + + CvMat* vtmp = cvCreateMat(3,1,CV_32F); + CV_MAT_ELEM(*vtmp, float,0,0) = col; + CV_MAT_ELEM(*vtmp, float,1,0) = row; + CV_MAT_ELEM(*vtmp, float,2,0) = 1; + + CvMat* v = cvCreateMat(3,1,CV_32F); + cvMatMul(R1iAi, vtmp, v); + + float vdotN = cvDotProduct(v,planeNormal); + float t = (p0dotN - planeD)/vdotN; + + cvSetIdentity(identity, cvRealScalar(t)); + cvMatMul(identity,v,v); + + CvMat* final = cvCreateMat(3,1,CV_32F); + cvSub(v,a1,final); //final point is still in the coordinate system of the left plane. + + CvMat* final_rotated = cvCreateMat(3,1,CV_32F); //translate it into the coordinate system of the camera + cvMatMul(rotation_matrix_left,final,final_rotated); + cvAdd(final_rotated,translation_left, final_rotated); + + //add point to the file (minus next to the y coordinate is there to compensate for the left-handed coordinate system of slam6d, otherwise + //dwarf is shown upside-down. + scanfile< lock(*other.m_lock.mutex()); + m_lock.swap(lock); + } +} + +CacheDataAccess::operator bool() const +{ + // if size is non-zero we should have a valid pointer to cache shared memory, don't know what happens to a zero-handle after you put it into a segment manager get address function + return m_size != 0; +} +*/ diff --git a/src/scanserver/cache/cacheHandler.cc b/src/scanserver/cache/cacheHandler.cc new file mode 100644 index 0000000..18b6900 --- /dev/null +++ b/src/scanserver/cache/cacheHandler.cc @@ -0,0 +1,21 @@ +/* + * cacheHandler implementation + * + * Copyright (C) Thomas Escher, Kai Lingemann + * + * Released under the GPL version 3. + * + */ + +#include "scanserver/cache/cacheHandler.h" + +#include "scanserver/cache/cacheObject.h" + +CacheHandler::CacheHandler(CacheObject* object, CacheManager* manager) : + m_manager(manager), m_object(object) +{ +} + +CacheHandler::~CacheHandler() +{ +} diff --git a/src/scanserver/cache/cacheManager.cc b/src/scanserver/cache/cacheManager.cc new file mode 100644 index 0000000..29b98c7 --- /dev/null +++ b/src/scanserver/cache/cacheManager.cc @@ -0,0 +1,188 @@ +/* + * cacheManager implementation + * + * Copyright (C) Thomas Escher, Kai Lingemann + * + * Released under the GPL version 3. + * + */ + +#include "scanserver/cache/cacheManager.h" + +#include +#include + +#include + +using namespace boost::interprocess; +using std::runtime_error; +using std::vector; +using std::string; + +#include +using std::cout; +using std::cerr; +using std::endl; + +#ifdef _MSC_VER +#include +#else +#include // mlock for avoiding swaps +#endif + + +CacheManager::CacheManager(SegmentManager* sm, const char* shm_name, std::size_t cache_size) : + m_segment_manager(sm), + m_shm_name(shm_name) +{ + // remove any existing shared memory that wasn't cleaned up + shared_memory_object::remove(m_shm_name.c_str()); + + try { + m_msm = new managed_shared_memory(create_only, m_shm_name.c_str(), cache_size); +#ifndef WIN32 + cout << " Locking cache memory... " << std::flush; + int ret = mlock(m_msm->get_address(), m_msm->get_size()); + if(ret == 0) + cout << "success."; + else if(ret == -EPERM) + cout << "unsuccessful, no permissions."; + else if(ret == -ENOMEM) + cout << "unsuccessful, RLIMIT_MEMLOCK too small."; + else + cout << "unsuccessful, error=" << ret << "."; + cout << endl; +#endif + } catch(interprocess_exception& e) { + throw std::runtime_error(std::string("Could not create shared memory: ") + e.what()); + } +} + +CacheManager::~CacheManager() +{ + // clean up objects + for(vector::iterator it = m_objects.begin(); it != m_objects.end(); ++it) + m_segment_manager->destroy_ptr(*it); + + // remove cache data shared memory + delete m_msm; + shared_memory_object::remove(m_shm_name.c_str()); +} + +CacheObject* CacheManager::createCacheObject() +{ + CacheObject* obj = m_segment_manager->construct(anonymous_instance)(); + m_objects.push_back(obj); + return obj; +} + +bool CacheManager::loadCacheObject(CacheObject* obj) +{ + if(obj->m_handler) { + return obj->m_handler->load(); + } else { + throw runtime_error("No CacheHandler set for loading"); + } +} + +unsigned char* CacheManager::allocateCacheObject(CacheObject* obj, unsigned int size) +{ + // remove old data if this isn't a cache miss call but a direct allocate call + if(obj->m_handle != 0) { + if(size == obj->m_size) { + // INFO + //cout << "CacheManager::allocateCacheObject reusing space" << endl; + // space fits? leave it be + return reinterpret_cast(m_msm->get_address_from_handle(obj->m_handle)); + } else { + // reset CO + m_msm->destroy_ptr(m_msm->get_address_from_handle(obj->m_handle)); + obj->m_size = 0; + obj->m_handle = 0; + } + } + + // try to allocate it initially + try { + return load(obj, size); + } catch(bad_alloc& e) { + // flush behaviour below + } + + // create a list of COs to remove from memory + // TODO: create the list from the heuristic + vector loaded = m_loaded; + // try to exclusively lock COs to remove them from memory + for(vector::iterator it = loaded.begin(); it != loaded.end(); ++it) { + CacheObject* target = *it; + scoped_lock lock(target->m_mutex_in_use, try_to_lock); + if(lock) { + unload(target); + // try to allocate it + try { + return load(obj, size); + } catch(bad_alloc& e) { + // continue flushing + } + } + } + + // when flushing didn't work, there's nothing to do anymore + throw runtime_error("CacheManager could not allocate enough memory for CacheObject. All available memory is locked for used CacheObjects and you need to increase the cache memory size"); +} + +void CacheManager::invalidateCacheObject(CacheObject* obj) +{ + // remove its data + if(obj->m_handle != 0) { + // reset CO + m_msm->destroy_ptr(m_msm->get_address_from_handle(obj->m_handle)); + obj->m_size = 0; + obj->m_handle = 0; + } + + // invalidate the handler too + obj->m_handler->invalidate(); +} + +unsigned char* CacheManager::load(CacheObject* obj, unsigned int size) +{ + // INFO + //cout << " CM::load (" << size << ")" << endl; + + // allocate + unsigned char* data = m_msm->construct(anonymous_instance)[size](); + obj->m_size = size; + obj->m_handle = m_msm->get_handle_from_address(data); + + // mark it as loaded + m_loaded.push_back(obj); + + return data; +} + +void CacheManager::unload(CacheObject* obj) +{ + if(obj->m_handle == 0) return; + + // INFO + //cout << " CM::unload" << endl; + + // save the CO by its handler + unsigned char* data = reinterpret_cast(m_msm->get_address_from_handle(obj->m_handle)); + obj->m_handler->save(data, obj->m_size); + // TODO: exceptions? + + // reset CO + m_msm->destroy_ptr(data); + obj->m_size = 0; + obj->m_handle = 0; + + // mark it as unloaded + for(vector::iterator it = m_loaded.begin(); it != m_loaded.end(); ++it) { + if(obj == *it) { + m_loaded.erase(it); + break; + } + } +} diff --git a/src/scanserver/cache/cacheObject.cc b/src/scanserver/cache/cacheObject.cc new file mode 100644 index 0000000..08d3586 --- /dev/null +++ b/src/scanserver/cache/cacheObject.cc @@ -0,0 +1,47 @@ +/* + * cacheObject implementation + * + * Copyright (C) Thomas Escher, Kai Lingemann + * + * Released under the GPL version 3. + * + */ + +#include "scanserver/cache/cacheObject.h" + +#include +#include +using std::runtime_error; +using std::string; + +using namespace boost::interprocess; + +managed_shared_memory* CacheObject::m_msm = 0; + +CacheObject::CacheObject() : + m_size(0), + m_handle(0), + m_handler(0) +{ +} + +CacheObject::~CacheObject() +{ +} + +void CacheObject::setCacheHandler(CacheHandler* handler) +{ + m_handler = handler; +} + +void CacheObject::openSharedMemory(const char* shm_name) +{ + // open the shared memory in this application + if(m_msm == 0) { + try { + m_msm = new managed_shared_memory(open_only, shm_name); + } catch(interprocess_exception& e) { + throw runtime_error(string("Could not open shared memory: ") + e.what()); + } + } +} diff --git a/src/scanserver/cacheIO.cc b/src/scanserver/cacheIO.cc new file mode 100644 index 0000000..eab3346 --- /dev/null +++ b/src/scanserver/cacheIO.cc @@ -0,0 +1,88 @@ +/* + * cacheIO implementation + * + * Copyright (C) Thomas Escher, Kai Lingemann + * + * Released under the GPL version 3. + * + */ + +#include "scanserver/cacheIO.h" + +#include +#include +#include +using namespace std; +#include +using namespace boost::filesystem; + +#ifdef WITH_METRICS +#include "slam6d/metrics.h" +#endif //WITH_METRICS + + + +string CacheIO::path("."); +unsigned int CacheIO::free_id = 0; + + + +void CacheIO::createTemporaryDirectory(std::string& path) +{ + CacheIO::path = path; + if(path.rfind('/') != path.size() - 1) + CacheIO::path += '/'; + + // check and create + if(!exists(CacheIO::path)) + create_directory(CacheIO::path); +} + +void CacheIO::removeTemporaryDirectory() +{ + // this is going to be fun: rm -rf / + remove_all(path); +} + +CacheIO::IDType CacheIO::getId() +{ + stringstream ss; + ss << setfill('0') << setw(5) << free_id++ << ".tco"; + return ss.str(); +} + +unsigned int CacheIO::check(CacheIO::IDType& id) +{ + if(exists(path+id)) + return file_size(path+id); + else + return 0; +} + +void CacheIO::read(CacheIO::IDType& id, char* data) +{ +#ifdef WITH_METRICS + Timer t = ServerMetric::cacheio_read_time.start(); +#endif //WITH_METRICS + ifstream file((path+id).c_str(), ios_base::in|ios_base::binary); + file.read(data, file_size(path+id)); +#ifdef WITH_METRICS + ServerMetric::cacheio_read_time.end(t); + ServerMetric::cacheio_read_size.add(file_size(path+id)); +#endif //WITH_METRICS +} + +void CacheIO::write(CacheIO::IDType& id, char* data, unsigned int size) +{ +#ifdef WITH_METRICS + Timer t = ServerMetric::cacheio_write_time.start(); +#endif //WITH_METRICS + ofstream file((path+id).c_str(), ios_base::out|ios_base::binary); + file.write(data, size); + file.flush(); + file.close(); +#ifdef WITH_METRICS + ServerMetric::cacheio_write_time.end(t); + ServerMetric::cacheio_write_size.add(size); +#endif //WITH_METRICS +} diff --git a/src/scanserver/clientInterface.cc b/src/scanserver/clientInterface.cc new file mode 100644 index 0000000..443ccdf --- /dev/null +++ b/src/scanserver/clientInterface.cc @@ -0,0 +1,303 @@ +/* + * clientinterface implementation + * + * Copyright (C) Thomas Escher, Kai Lingemann + * + * Released under the GPL version 3. + * + */ + +#include "scanserver/clientInterface.h" + +#include +using std::cout; +using std::cerr; +using std::cin; +using std::endl; +#include + +#include +using namespace boost::filesystem; +using namespace boost::interprocess; + +#include "scanserver/defines.h" + +#ifdef WITH_METRICS +#include "slam6d/metrics.h" +#endif + + + +managed_shared_memory* ClientInterface::m_msm = 0; +ClientInterface* ClientInterface::m_singleton = 0; + + + +SharedScanVector * ClientInterface::readDirectory(const char * dir_path, IOType type, unsigned int start, unsigned int end) +{ + path to_add(dir_path); + if(!exists(to_add) || !is_directory(to_add)) { + // TODO: throw an exception + cerr << "Directory " << to_add << " does not exist" << endl; + return 0; + } + + // aquire client mutex for uninterrupted work + scoped_lock lock(m_mutex_client); + + // pass a system complete (absolute) path for compability with possibly + // different working directories in different processes + m_arg_string_1 = system_complete(to_add).string().c_str(); + m_arg_io_type = type; + m_arg_uint_1 = start; + m_arg_uint_2 = end; + sendMessage(MESSAGE_READ_DIRECTORY); + // don't catch the exception, there is nothing this function can fix + SharedScanVector* scans = m_scanvector_ptr.get(); + m_scanvector_ptr = 0; + return scans; +} + +void ClientInterface::closeDirectory(SharedScanVector*& scans) +{ + if(scans == 0) return; + + // release all scans + // TODO: either lower recursive mutexes in all scans or notice the server + + // delete scan vector + segment_manager->destroy_ptr(scans); + + // set scans to 0 since it's a reference + scans = 0; +} + +bool ClientInterface::loadCacheObject(CacheObject* obj) +{ + // aquire client mutex for uninterrupted work + scoped_lock lock(m_mutex_client); + +#ifdef WITH_METRICS + Timer t = ClientMetric::cache_miss_time.start(); +#endif //WITH_METRICS + + m_cacheobject_ptr = obj; + sendMessage(MESSAGE_LOAD_CACHE_OBJECT); + bool success = m_arg_uint_1 == 1; + m_arg_uint_1 = 0; + +#ifdef WITH_METRICS + ClientMetric::cache_miss_time.end(t); +#endif //WITH_METRICS + + return success; +} + +void ClientInterface::allocateCacheObject(CacheObject* obj, unsigned int size) +{ + // aquire client mutex for uninterrupted work + scoped_lock lock(m_mutex_client); + +#ifdef WITH_METRICS + Timer t = ClientMetric::allocate_time.start(); +#endif //WITH_METRICS + + m_cacheobject_ptr = obj; + m_arg_uint_1 = size; + sendMessage(MESSAGE_ALLOCATE_CACHE_OBJECT); + +#ifdef WITH_METRICS + ClientMetric::allocate_time.end(t); +#endif //WITH_METRICS +} + +void ClientInterface::invalidateCacheObject(CacheObject* obj) +{ + // aquire client mutex for uninterrupted work + scoped_lock lock(m_mutex_client); + + m_cacheobject_ptr = obj; + sendMessage(MESSAGE_INVALIDATE_CACHE_OBJECT); +} + +void ClientInterface::getPose(SharedScan* scan) +{ + // aquire client mutex for uninterrupted work + scoped_lock lock(m_mutex_client); + + m_sharedscan_ptr = scan; + sendMessage(MESSAGE_GET_POSE); +} + +void ClientInterface::addFrame(SharedScan* scan, double* transformation, unsigned int type) +{ + // aquire client mutex for uninterrupted work + scoped_lock lock(m_mutex_client); + +#ifdef WITH_METRICS + Timer t = ClientMetric::frames_time.start(); +#endif //WITH_METRICS + + m_sharedscan_ptr = scan; + sendMessage(MESSAGE_ADD_FRAME); + + // write into the new frame + const FrameVector& frames = scan->getFrames(); + Frame& frame = const_cast(frames.back()); + frame.set(transformation, type); + +#ifdef WITH_METRICS + ClientMetric::frames_time.end(t); +#endif //WITH_METRICS +} + +void ClientInterface::loadFramesFile(SharedScan* scan) +{ + // aquire client mutex for uninterrupted work + scoped_lock lock(m_mutex_client); + +#ifdef WITH_METRICS + Timer t = ClientMetric::frames_time.start(); +#endif //WITH_METRICS + + m_sharedscan_ptr = scan; + sendMessage(MESSAGE_LOAD_FRAMES_FILE); + +#ifdef WITH_METRICS + ClientMetric::frames_time.end(t); +#endif //WITH_METRICS +} + +void ClientInterface::saveFramesFile(SharedScan* scan) +{ + // aquire client mutex for uninterrupted work + scoped_lock lock(m_mutex_client); + +#ifdef WITH_METRICS + Timer t = ClientMetric::frames_time.start(); +#endif //WITH_METRICS + + m_sharedscan_ptr = scan; + sendMessage(MESSAGE_SAVE_FRAMES_FILE); + +#ifdef WITH_METRICS + ClientMetric::frames_time.end(t); +#endif //WITH_METRICS +} + +void ClientInterface::clearFrames(SharedScan* scan) +{ + // aquire client mutex for uninterrupted work + scoped_lock lock(m_mutex_client); + +#ifdef WITH_METRICS + Timer t = ClientMetric::frames_time.start(); +#endif //WITH_METRICS + + m_sharedscan_ptr = scan; + sendMessage(MESSAGE_CLEAR_FRAMES); + // TODO: remove the .frames-file if appropriate, clear all records + +#ifdef WITH_METRICS + ClientMetric::frames_time.end(t); +#endif //WITH_METRICS +} + +std::size_t ClientInterface::getCacheSize() +{ + // aquire client mutex for uninterrupted work + scoped_lock lock(m_mutex_client); + + sendMessage(MESSAGE_GET_CACHE_SIZE); + + return m_arg_size_t; +} + +void ClientInterface::printMetrics() +{ + // aquire client mutex for uninterrupted work + scoped_lock lock(m_mutex_client); + + sendMessage(MESSAGE_PRINT_METRICS); +} + +void ClientInterface::sendMessage(message_t message) +{ +#ifdef WITH_METRICS + Timer t = ClientMetric::clientinterface_time.start(); +#endif //WITH_METRICS + + // try to lock the server mutex to send when it's not occupied + scoped_lock lock(m_mutex_server); + + // set message + m_message = message; + + // notify and wake up the server and wait until the message is processed + m_condition_server.notify_one(); + m_condition_client.wait(lock); + +#ifdef WITH_METRICS + ClientMetric::clientinterface_time.end(t); +#endif //WITH_METRICS + + // process errors + // TODO: better + if(!m_error_message.empty()) { + std::string msg(m_error_message.c_str()); + m_error_message.clear(); + throw std::runtime_error(msg); + } +} + +ClientInterface* ClientInterface::create() +{ + // open the shared memory in this application + if(m_msm == 0) { + try { + m_msm = new managed_shared_memory(open_only, SHM_NAME_DATA); + } catch(interprocess_exception& e) { + throw std::runtime_error(std::string("Could not open shared memory: ") + e.what()); + } + } + + // now try to open the cache shared memory + CacheObject::openSharedMemory(SHM_NAME_CACHE); + + // prepare singleton pointer + offset_ptr* ptr = m_msm->find >(unique_instance).first; + if(ptr == 0) + throw std::runtime_error("Could not find the ClientInterface pointer in shared memory"); + m_singleton = ptr->get(); + + // test for old crashed clients + { + scoped_lock lock(m_singleton->m_mutex_client, try_to_lock); + if(!lock) { + cout << "Scanserver communication is currently blocked, waiting for server... " << std::flush; + // wait for server to finish, lock and immediately unlock the server mutex + {scoped_lock lock_server(m_singleton->m_mutex_server);} + // clean up the client mutex which was left locked by previous program calls + m_singleton->m_mutex_client.unlock(); + cout << "done." /* Stop crashing/interrupting programs */ << endl; + } + } + + return m_singleton; +} + +void ClientInterface::destroy() +{ + m_singleton = 0; + if(m_msm != 0) { + delete m_msm; + m_msm = 0; + } +} + +ClientInterface* ClientInterface::getInstance() +{ + if(m_singleton == 0) + throw std::runtime_error("ClientInterface Singleton not set"); + return m_singleton; +} diff --git a/src/scanserver/frame_io.cc b/src/scanserver/frame_io.cc new file mode 100644 index 0000000..9faf0b1 --- /dev/null +++ b/src/scanserver/frame_io.cc @@ -0,0 +1,70 @@ +/* + * frame_io implementation + * + * Copyright (C) Thomas Escher, Kai Lingemann + * + * Released under the GPL version 3. + * + */ + +#include "scanserver/frame_io.h" + +#include + +#include +#include +using namespace boost::filesystem; + + + +#define FRAMES_PATH_PREFIX "scan" +#define FRAMES_PATH_SUFFIX ".frames" + +void FrameIO::loadFile(const char* dir, const char* identifier, FrameVector& frames) +{ + // assemble path and check for existence + path frames_path(dir); + frames_path /= (std::string(FRAMES_PATH_PREFIX) + identifier + FRAMES_PATH_SUFFIX); + if(!exists(frames_path)) return; + + // read the file + ifstream frames_file(frames_path); + std::vector transformations; + double dvalue; + unsigned int uivalue; + std::vector types; + while(frames_file.good()) { + unsigned int i; + for(i = 0; i < 16 && frames_file.good(); ++i) { + frames_file >> dvalue; + transformations.push_back(dvalue); + } + // sanity check if no more values were read + if(i != 16) break; + frames_file >> uivalue; + types.push_back(uivalue); + } + frames_file.close(); + + // allocate shared memory for the frames and move the values in there + unsigned int s = types.size(); + frames.resize(s); + for(unsigned int i = 0; i < s; ++i) + frames[i].set(&(transformations[i*16]), types[i]); +} + +void FrameIO::saveFile(const char* dir, const char* identifier, const FrameVector& frames) +{ + // assemble path + path frames_path(dir); + frames_path /= (std::string(FRAMES_PATH_PREFIX) + identifier + FRAMES_PATH_SUFFIX); + + // write into the file + ofstream frames_file(frames_path); + for(FrameVector::const_iterator it = frames.begin(); it != frames.end(); ++it) { + for(unsigned int i = 0; i < 16; ++i) + frames_file << it->transformation[i] << " "; + frames_file << it->type << std::endl; + } + frames_file.close(); +} diff --git a/src/scanserver/io_types.cc b/src/scanserver/io_types.cc new file mode 100644 index 0000000..fcabf17 --- /dev/null +++ b/src/scanserver/io_types.cc @@ -0,0 +1,147 @@ +/* + * io_types implementation + * + * Copyright (C) Thomas Escher, Kai Lingemann + * + * Released under the GPL version 3. + * + */ + +#include "scanserver/io_types.h" + +#ifdef _MSC_VER +//#include // TODO: TEST +#define strcasecmp _stricmp +#define strncasecmp _strnicmp +#else +#include +#endif + +#include +#include + +#include "slam6d/globals.icc" + +IOType formatname_to_io_type(const char * string) +{ + if (strcasecmp(string, "uos") == 0) return UOS; + else if (strcasecmp(string, "uos_map") == 0) return UOS_MAP; + else if (strcasecmp(string, "uos_frames") == 0) return UOS_FRAMES; + else if (strcasecmp(string, "uos_map_frames") == 0) return UOS_MAP_FRAMES; + else if (strcasecmp(string, "uos_rgb") == 0) return UOS_RGB; + else if (strcasecmp(string, "old") == 0) return OLD; + else if (strcasecmp(string, "rts") == 0) return RTS; + else if (strcasecmp(string, "rts_map") == 0) return RTS_MAP; + else if (strcasecmp(string, "ifp") == 0) return IFP; + else if (strcasecmp(string, "riegl_txt") == 0) return RIEGL_TXT; + else if (strcasecmp(string, "riegl_project") == 0) return RIEGL_PROJECT; + else if (strcasecmp(string, "riegl_rgb") == 0) return RIEGL_RGB; + else if (strcasecmp(string, "riegl_bin") == 0) return RIEGL_BIN; + else if (strcasecmp(string, "zahn") == 0) return ZAHN; + else if (strcasecmp(string, "ply") == 0) return PLY; + else if (strcasecmp(string, "wrl") == 0) return WRL; + else if (strcasecmp(string, "xyz") == 0) return XYZ; + else if (strcasecmp(string, "zuf") == 0) return ZUF; + else if (strcasecmp(string, "asc") == 0) return ASC; + else if (strcasecmp(string, "iais") == 0) return IAIS; + else if (strcasecmp(string, "front") == 0) return FRONT; + else if (strcasecmp(string, "x3d") == 0) return X3D; + else if (strcasecmp(string, "rxp") == 0) return RXP; + else if (strcasecmp(string, "ais") == 0) return AIS; + else if (strcasecmp(string, "oct") == 0) return OCT; + else if (strcasecmp(string, "txyzr") == 0) return TXYZR; + else if (strcasecmp(string, "xyzr") == 0) return XYZR; + else if (strcasecmp(string, "xyz_rgb") == 0) return XYZ_RGB; + else if (strcasecmp(string, "ks") == 0) return KS; + else if (strcasecmp(string, "ks_rgb") == 0) return KS_RGB; + else if (strcasecmp(string, "stl") == 0) return STL; + else if (strcasecmp(string, "leica") == 0) return LEICA; + else if (strcasecmp(string, "pcl") == 0) return PCL; + else if (strcasecmp(string, "pci") == 0) return PCI; + else if (strcasecmp(string, "cad") == 0) return UOS_CAD; + else if (strcasecmp(string, "velodyne") == 0) return VELODYNE; + else if (strcasecmp(string, "velodyne_frames") == 0) return VELODYNE_FRAMES; + else throw std::runtime_error(std::string("Io type ") + string + std::string(" is unknown")); +} + +const char * io_type_to_libname(IOType type) +{ + switch (type) { + case UOS: + return "scan_io_uos"; + case UOS_MAP: + return "scan_io_uos_map"; + case UOS_FRAMES: + return "scan_io_uos_frames"; + case UOS_MAP_FRAMES: + return "scan_io_uos_map_frames"; + case UOS_RGB: + return "scan_io_uos_rgb"; + case OLD: + return "scan_io_old"; + case RTS: + return "scan_io_rts"; + case RTS_MAP: + return "scan_io_rts_map"; + case IFP: + return "scan_io_ifp"; + case RIEGL_TXT: + return "scan_io_riegl_txt"; + case RIEGL_PROJECT: + return "scan_io_riegl_project"; + case RIEGL_RGB: + return "scan_io_riegl_rgb"; + case RIEGL_BIN: + return "scan_io_riegl_bin"; + case ZAHN: + return "scan_io_zahn"; + case PLY: + return "scan_io_ply"; + case WRL: + return "scan_io_wrl"; + case XYZ: + return "scan_io_xyz"; + case ZUF: + return "scan_io_zuf"; + case ASC: + return "scan_io_asc"; + case IAIS: + return "scan_io_iais"; + case FRONT: + return "scan_io_front"; + case X3D: + return "scan_io_x3d"; + case RXP: + return "scan_io_rxp"; + case AIS: + return "scan_io_ais"; + case OCT: + return "scan_io_oct"; + case TXYZR: + return "scan_io_txyzr"; + case XYZR: + return "scan_io_xyzr"; + case XYZ_RGB: + return "scan_io_xyz_rgb"; + case KS: + return "scan_io_ks"; + case KS_RGB: + return "scan_io_ks_rgb"; + case STL: + return "stl"; + case LEICA: + return "leica_txt"; + case PCL: + return "pcl"; + case PCI: + return "pci"; + case UOS_CAD: + return "cad"; + case VELODYNE: + return "scan_io_velodyne"; + case VELODYNE_FRAMES: + return "velodyne_frames"; + default: + throw std::runtime_error(std::string("Io type ") + to_string(type) + std::string(" could not be matched to a library name")); + } +} diff --git a/src/scanserver/metrics.cc b/src/scanserver/metrics.cc new file mode 100644 index 0000000..5ffabf1 --- /dev/null +++ b/src/scanserver/metrics.cc @@ -0,0 +1,230 @@ +/* + * metrics implementation + * + * Copyright (C) Thomas Escher, Kai Lingemann + * + * Released under the GPL version 3. + * + */ + +#include "scanserver/metrics.h" + +#ifdef _MSC_VER +LARGE_INTEGER TimeMetric::frequency; +bool TimeMetric::init = false; +#endif + +TimeMetric::TimeMetric(unsigned int reserve) : + Metric(reserve) +{ +#ifdef _MSC_VER + if(!TimeMetric::init) { + QueryPerformanceFrequency(&TimeMetric::frequency); + TimeMetric::init = true; + } +#endif +} + +Timer TimeMetric::start() +{ + Timer start; +#ifdef _MSC_VER + QueryPerformanceCounter(&start); +#else + gettimeofday(&start, 0); +#endif + return start; +} + +void TimeMetric::end(Timer& start) +{ + double delta; +#ifdef _MSC_VER + LARGE_INTEGER end; + QueryPerformanceCounter(&end); + delta = (double)(end.QuadPart - start.QuadPart) / frequency.QuadPart; +#else + timeval end; + gettimeofday(&end, 0); + delta = (double)(end.tv_sec - start.tv_sec) + + (double)(end.tv_usec - start.tv_usec) / 1000000.0; +#endif + commit(delta); +} + +CounterMetric::CounterMetric(unsigned int reserve) : + Metric(reserve) +{ +} + +void CounterMetric::add(unsigned long long value) +{ + commit(value); +} + + + +#include +using std::cout; +using std::endl; + +TimeMetric ServerMetric::scan_loading, ServerMetric::cacheio_write_time, ServerMetric::cacheio_read_time; +CounterMetric ServerMetric::cacheio_write_size, ServerMetric::cacheio_read_size; + +TimeMetric + ClientMetric::read_scan_time, + ClientMetric::scan_load_time, + ClientMetric::calc_reduced_points_time, + ClientMetric::transform_time(100000), // avoid resizing in multithreaded transform calls by graph-slam + ClientMetric::copy_original_time, + ClientMetric::create_tree_time, + ClientMetric::on_demand_reduction_time, + ClientMetric::create_metatree_time, + ClientMetric::add_frames_time, + ClientMetric::matching_time, + ClientMetric::clientinterface_time, + ClientMetric::cache_miss_time, + ClientMetric::allocate_time, + ClientMetric::frames_time; + +void printTime(const TimeMetric& m, unsigned int indentation = 1) +{ + for(unsigned int i = 1; i <= indentation; ++i) { + cout << " "; + } + cout << m.sum() << "s"; + if(m.size() != 1) { + cout << " (" << m.average() << "s average of " << m.size() << " calls)"; + } + cout << endl; +} + +void ServerMetric::print() +{ + cout << "= Metric server information =" << endl + << "Time spent for loading scans (in ScanHandler::load):" << endl + << " Amount: " << scan_loading.size() << endl + << " Time: " << scan_loading.sum() << "s (" << scan_loading.average() << "s avg.)" << endl + << endl + << "CacheIO reads:" << endl + << " Amount: " << cacheio_read_size.size() << endl + << " Size: " << cacheio_read_size.sum()/1024/1024 << "MB (" << cacheio_read_size.average()/1024 << "KB avg.)" << endl + << " Time: " << cacheio_read_time.sum() << "s (" << cacheio_read_time.average() << "s avg.)" << endl + << endl + << "CacheIO writes:" << endl + << " Amount: " << cacheio_write_size.size() << endl + << " Size: " << cacheio_write_size.sum()/1024/1024 << "MB (" << cacheio_write_size.average()/1024 << "KB avg.)" << endl + << " Time: " << cacheio_write_time.sum() << "s (" << cacheio_write_time.average() << "s avg.)" << endl + << "= Resetting metric information =" << endl + << endl; + scan_loading.reset(); + cacheio_write_time.reset(); + cacheio_read_time.reset(); + cacheio_write_size.reset(); + cacheio_read_size.reset(); +} + +void ClientMetric::print() +{ + cout << "= Metric client information =" << endl; + + // ClientInterface specific ones +#ifdef WITH_SCANSERVER + cout << "Time for all ClientInterface messages:" << endl; + printTime(clientinterface_time); + + cout << " [" << endl; + + cout << " Time for cache misses:" << endl; + printTime(cache_miss_time, 3); + + cout << " Time for cache allocations:" << endl; + printTime(allocate_time, 3); + + // TODO: invalidations too? + + cout << " Time for frame calls:" << endl; + printTime(frames_time, 3); + + cout << " ]" << endl; + + cout << endl; +#endif //WITH_SCANSERVER + + // Scan: Loading, reducing and SearchTree related ones +#ifdef WITH_SCANSERVER + // barebone preparation and parameter setting + if(read_scan_time.size()) { + cout << "Time for loading directory:" << endl; + printTime(read_scan_time); + } + + // getXYZ in calcReducedPoints + if(scan_load_time.size()) { + cout << "Time for loading scans:" << endl; + printTime(scan_load_time); + } + +#else //WITH_SCANSERVER + // load all scans + if(read_scan_time.size()) { + cout << "Time for loading directory and scans:" << endl; + printTime(read_scan_time); + } +#endif //WITH_SCANSERVER + + if(calc_reduced_points_time.size()) { + cout << "Time for reducing scans:" << endl; + printTime(calc_reduced_points_time); + } + + // old: red_lum for SearchTree, duplicating all contained reduced points and copying them into red_lum again for MetaScans + // new: caching reduced points for saving time + if(copy_original_time.size()) { + cout << "Time for copying reduced points:" << endl; + printTime(copy_original_time); + } + + if(create_tree_time.size()) { + cout << "Time for creating SearchTree:" << endl; + printTime(create_tree_time); + } + +#ifdef WITH_SCANSERVER + // only for new, replaces copying reduced points from old + if(create_metatree_time.size()) { + cout << "Time for creating meta-SearchTree:" << endl; + printTime(create_metatree_time); + } + + if(on_demand_reduction_time.size()) { + cout << "Time in on-demand reduction [reduction+transform+copy / copy]:" << endl; + printTime(on_demand_reduction_time); + } +#endif //WITH_SCANSERVER + + if(transform_time.size()) { + cout << "Time for transform:" << endl; + printTime(transform_time); + } + + // SLAM + if(matching_time.size()) { + cout << endl; + cout << "Matching time:" << endl; + printTime(matching_time); +#ifdef WITH_SCANSERVER + cout << "Corrected matching time without on-demand loading, reduction and tree creation:" << endl; + // match - scan loading in calcReducedPoints - calcReducedPoints - transform (irrelevant) - copy to original - createTree + cout << " " << + matching_time.sum() + - scan_load_time.sum() + - calc_reduced_points_time.sum() + - copy_original_time.sum() + - create_tree_time.sum() + << "s" << endl; +#endif //WITH_SCANSERVER + } + + cout << endl; +} diff --git a/src/scanserver/pointfilter.cc b/src/scanserver/pointfilter.cc new file mode 100644 index 0000000..b14902a --- /dev/null +++ b/src/scanserver/pointfilter.cc @@ -0,0 +1,187 @@ +/* + * pointfilter implementation + * + * Copyright (C) Thomas Escher, Dorit Borrmann, Kai Lingemann + * + * Released under the GPL version 3. + * + */ + +#include "scanserver/pointfilter.h" + +using std::string; +using std::map; +#include +using std::stringstream; +#include +using std::runtime_error; + +#include +using std::cout; +using std::endl; + + + +map PointFilter::factory; + + + +PointFilter::PointFilter() : + m_changed(true), m_checker(0) +{ +} + +PointFilter::PointFilter(const std::string& params) : + m_changed(true), m_checker(0) +{ + size_t start = 0, end = string::npos; + while((end = params.find(' ', start)) != string::npos) { + // extract the word (start-end+1) without the space (-1) + string key(params.substr(start, start-end)); + end++; + // get the second word position + start = params.find(' ', end); + // insert + m_params[key] = params.substr(end, (start-end)); + // advance to the character after space + if(start != string::npos) + start++; + else + break; + } +} + +PointFilter::~PointFilter() +{ + if(m_checker) + delete m_checker; +} + +PointFilter& PointFilter::setRange(float maxDist, float minDist) +{ + m_changed = true; + stringstream s_max; s_max << maxDist; + stringstream s_min; s_min << minDist; + m_params["rangemax"] = s_max.str(); + m_params["rangemin"] = s_min.str(); + return *this; +} + +PointFilter& PointFilter::setHeight(double top, double bottom) +{ + m_changed = true; + stringstream s_top; s_top << top; + stringstream s_bottom; s_bottom << bottom; + m_params["heighttop"] = s_top.str(); + m_params["heightbottom"] = s_bottom.str(); + return *this; +} + +std::string PointFilter::getParams() +{ + stringstream s; + for(map::iterator it = m_params.begin(); it != m_params.end(); ++it) { + s << (*it).first << " " << (*it).second << " "; + } + return s.str(); +} + +void PointFilter::createCheckers() +{ + // delete the outdated ones + if(m_checker) { + delete m_checker; + m_checker = 0; + } + + // create new ones + Checker** current = &m_checker; + for(map::iterator it = m_params.begin(); it != m_params.end(); ++it) { + *current = factory[it->first](it->second); + // if a Checker has been successfully created advance to its pointer in the chain + if(*current) { + current = &((*current)->m_next); + } + } +} + + + +Checker::Checker() : + m_next(0) +{ +} + +Checker::~Checker() +{ + if(m_next) + delete m_next; +} + + + +// create factory instaces for key string to factory function mapping +namespace { + CheckerFactory max("rangemax"); + CheckerFactory min("rangemin"); + CheckerFactory top("heighttop"); + CheckerFactory bottom("heightbottom"); +} + + + +CheckerRangeMax::CheckerRangeMax(const std::string& value) { + stringstream s(value); + s >> m_max; + // default value: no check + if(m_max <= 0.0) throw runtime_error("No range filter needed."); + m_max *= m_max; +} + +bool CheckerRangeMax::test(double* point) { + if(point[0]*point[0] + point[1]*point[1] + point[2]*point[2] < m_max) + return true; + return false; +} + + + +CheckerRangeMin::CheckerRangeMin(const std::string& value) { + stringstream s(value); + s >> m_min; + // default value: no check + if(m_min <= 0.0) throw runtime_error("No range filter needed."); + m_min *= m_min; +} + +bool CheckerRangeMin::test(double* point) { + if(point[0]*point[0] + point[1]*point[1] + point[2]*point[2] > m_min) + return true; + return false; +} + + + +CheckerHeightTop::CheckerHeightTop(const std::string& value) { + stringstream s(value); + s >> m_top; +} + +bool CheckerHeightTop::test(double* point) { + if(point[1] < m_top) + return true; + return false; +} + + + +CheckerHeightBottom::CheckerHeightBottom(const std::string& value) { + stringstream s(value); + s >> m_bottom; +} + +bool CheckerHeightBottom::test(double* point) { + if(point[1] > m_bottom) + return true; + return false; +} diff --git a/src/scanserver/scanHandler.cc b/src/scanserver/scanHandler.cc new file mode 100644 index 0000000..99e5bb9 --- /dev/null +++ b/src/scanserver/scanHandler.cc @@ -0,0 +1,260 @@ +/* + * scanHandler implementation + * + * Copyright (C) Thomas Escher, Kai Lingemann + * + * Released under the GPL version 3. + * + */ + +#include "scanserver/scanHandler.h" + +#include +#include +#include +using namespace std; + +#include +using boost::scoped_ptr; + +#include "scanserver/cache/cacheManager.h" +#include "scanio/scan_io.h" + +#ifdef WITH_METRICS +#include "slam6d/metrics.h" +#endif //WITH_METRICS + + + +bool ScanHandler::binary_caching = false; +std::map* > ScanHandler::m_prefetch_xyz; +std::map* > ScanHandler::m_prefetch_rgb; +std::map* > ScanHandler::m_prefetch_reflectance; +std::map* > ScanHandler::m_prefetch_amplitude; +std::map* > ScanHandler::m_prefetch_type; +std::map* > ScanHandler::m_prefetch_deviation; + + + +//! Abstract class for merging calls to the main vector +class PrefetchVectorBase { +public: + virtual bool prefetch() = 0; + virtual void create() = 0; + virtual unsigned int size() const = 0; + virtual void write(void* data_ptr) = 0; +}; + +/** Class for handling a vector and its special case for prefetching. + * + * Outline: prefetch() main vector, otherwise create() on main+prefetched + * vectors and use of ScanIO, cache allocation with size(), write() for main, + * save() for prefetched vectors. + */ +template +class PrefetchVector : public PrefetchVectorBase { +public: + PrefetchVector(SharedScan* scan, map*>& prefetches) : + m_scan(scan), m_prefetches(&prefetches), m_vector(0) + { + } + + ~PrefetchVector() + { + // remove vectors that are still here (RAII/exceptions) + if(m_vector) + delete m_vector; + } + + inline vector* get() const { return m_vector; } + + //! If a prefetch is found, take ownership and signal true for a successful prefetch + virtual bool prefetch() + { + // check if a prefetch is available + typename map*>::iterator it = m_prefetches->find(m_scan); + if(it != m_prefetches->end()) { + // take ownership of the vector and remove it from the map + m_vector = it->second; + m_prefetches->erase(it); + return true; + } + return false; + } + + //! Create an empty vector + virtual void create() { + if(m_vector == 0) { + m_vector = new vector; + } + } + + //! Size of vector contents in bytes + virtual unsigned int size() const { + return m_vector->size()*sizeof(T); + } + + //! Write vector contents into the cache object via \a data_ptr and clean up the vector + virtual void write(void* data_ptr) { + // write vector contents + for(unsigned int i = 0; i < m_vector->size(); ++i) { + reinterpret_cast(data_ptr)[i] = (*m_vector)[i]; + } + // remove so it won't get saved for prefetches + delete m_vector; + m_vector = 0; + } + + //! Save vector for prefetching + void save() { + if(m_vector != 0 && m_vector->size() != 0) { + // create map entry and assign the vector + (*m_prefetches)[m_scan] = m_vector; + // ownership transferred + m_vector = 0; + } + } +private: + SharedScan* m_scan; + map*>* m_prefetches; + + vector* m_vector; +}; + + + +ScanHandler::ScanHandler(CacheObject* obj, CacheManager* cm, SharedScan* scan, IODataType data) : + TemporaryHandler(obj, cm, scan, true), + m_data(data) +{ +} + +bool ScanHandler::load() +{ + ScanIO* sio = ScanIO::getScanIO(m_scan->getIOType()); + + // avoid loading of a non-supported type + if(!sio->supports(m_data)) return false; + +#ifdef WITH_METRICS + Timer t = ServerMetric::scan_loading.start(); +#endif //WITH_METRICS + + // INFO + //cout << "[" << m_scan->getIdentifier() << "][" << m_data << "] ScanHandler::load" << endl; + + // if binary scan caching is enabled try to read it via TemporaryHandler first, if written-flag wasn't set or file didn't exist, parse scan + if(binary_caching) { + if(TemporaryHandler::load()) { + // INFO + //cout << "[" << m_scan->getIdentifier() << "][" << m_data << "] ScanHandler::load successful via TemporaryHandler" << endl << endl; +#ifdef WITH_METRICS + ServerMetric::scan_loading.end(t); +#endif //WITH_METRICS + return true; + } + } + + PrefetchVector xyz(m_scan, m_prefetch_xyz); + PrefetchVector rgb(m_scan, m_prefetch_rgb); + PrefetchVector reflectance(m_scan, m_prefetch_reflectance); + PrefetchVector amplitude(m_scan, m_prefetch_amplitude); + PrefetchVector type(m_scan, m_prefetch_type); + PrefetchVector deviation(m_scan, m_prefetch_deviation); + + // assign vector for this particular ScanHandler + PrefetchVectorBase* vec = 0; + if(m_data == DATA_XYZ) vec = &xyz; + else if(m_data == DATA_RGB) vec = &rgb; + else if(m_data == DATA_REFLECTANCE) vec = &reflectance; + else if(m_data == DATA_AMPLITUDE) vec = &litude; + else if(m_data == DATA_TYPE) vec = &type; + else if(m_data == DATA_DEVIATION) vec = &deviation; + + unsigned int prefetch = m_scan->getPrefetch(); + // try to prefetch only the requested type from its handler + if(vec->prefetch()) + { + // nothing to do if prefetch was successful, vector is initialized + // reset prefetch flags, nothing needs to be saved + prefetch = 0; + } else { + // create vector and exclude it from prefetch handling + vec->create(); + prefetch &= ~m_data; + + // create vectors which are to be prefetched + if(prefetch & DATA_XYZ) xyz.create(); + if(prefetch & DATA_RGB) rgb.create(); + if(prefetch & DATA_REFLECTANCE) reflectance.create(); + if(prefetch & DATA_AMPLITUDE) amplitude.create(); + if(prefetch & DATA_TYPE) type.create(); + if(prefetch & DATA_DEVIATION) deviation.create(); + + // request data from the ScanIO + try { + PointFilter filter(m_scan->getPointFilter()); + sio->readScan(m_scan->getDirPath(), m_scan->getIdentifier(), + filter, + xyz.get(), rgb.get(), reflectance.get(), amplitude.get(), type.get(), deviation.get()); + } catch(std::runtime_error& e) { + // INFO + // cerr << "[" << m_scan->getIdentifier() << "][" << m_data << "] ScanIO runtime_error: " << e.what() << endl; + // rethrow + throw e; + } catch(std::bad_alloc& e) { + // INFO + // cerr << "[" << m_scan->getIdentifier() << "][" << m_data << "] ScanIO bad_alloc: " << e.what() << endl; + // rethrow + throw e; + } + } + + // after successful loading, allocate enough cache space + unsigned int size = vec->size(); + void* data_ptr; + try { + data_ptr = m_manager->allocateCacheObject(m_object, size); + } catch(runtime_error& e) { + // INFO + // cerr << "[" << m_scan->getIdentifier() << "][" << m_data << "] CacheManager error: " << e.what() << endl; + // rethrow + throw e; + } + + // write data into the cache object and clean up the vector + vec->write(data_ptr); + + // save all vectors that still hold their data for prefetching + xyz.save(); + rgb.save(); + reflectance.save(); + amplitude.save(); + type.save(); + deviation.save(); + + // INFO + //cout << "[" << m_scan->getIdentifier() << "][" << m_data << "] ScanHandler::load successful" << endl << endl; + +#ifdef WITH_METRICS + ServerMetric::scan_loading.end(t); +#endif //WITH_METRICS + return true; +} + +void ScanHandler::save(unsigned char* data, unsigned int size) +{ + // INFO + //cout << "[" << m_scan->getIdentifier() << "][" << m_data << "] ScanHandler::save" << endl; + + // if global binary scan caching is enabled, save to file for later faster reloading + if(binary_caching) { + // duplicate writes of static data are handled in TemporaryHandler already + TemporaryHandler::save(data, size); + } +} + +void ScanHandler::setBinaryCaching() +{ + binary_caching = true; +} diff --git a/src/scanserver/scanserver.cc b/src/scanserver/scanserver.cc new file mode 100644 index 0000000..8bace42 --- /dev/null +++ b/src/scanserver/scanserver.cc @@ -0,0 +1,193 @@ +/* + * tscanserver implementation + * + * Copyright (C) Thomas Escher, Kai Lingemann + * + * Released under the GPL version 3. + * + */ + +/** + * @file + * @brief Dynamic management of scans. + * @author Thomas Escher + */ + +#include +using std::cout; +using std::cerr; +using std::endl; +#include +using std::string; + +// for signals +#include +// for getopt +#ifndef _MSC_VER +#include +#else +#include "XGetopt.h" +#endif + +#include "scanserver/serverInterface.h" +#include "scanserver/cacheIO.h" +#include "scanserver/scanHandler.h" + + + +bool keep_temp_files = false; + + + +void signal_segv(int v) +{ + static sig_atomic_t signal_once = false; + if(!signal_once) { + signal_once = true; + cout << endl + << "# Scanserver closed due to segmentation fault #" << endl; + + // remove server and memory + ServerInterface::destroy(); + + // clean up temporary files + if(!keep_temp_files) + CacheIO::removeTemporaryDirectory(); + } + exit(-1); +} + +void signal_interrupt(int v) +{ + static sig_atomic_t signal_once = false; + if(!signal_once) { + signal_once = true; + cout << endl + << "# Scanserver closed #" << endl; + + // remove server and memory + ServerInterface::destroy(); + + // clean up temporary files + if(!keep_temp_files) + CacheIO::removeTemporaryDirectory(); + } + exit(-1); +} + + + +void usage(const char* name) +{ +#ifndef _MSC_VER + const string bold("\033[1m"); + const string normal("\033[m"); +#else + const string bold(""); + const string normal(""); +#endif + cout <run(); + + // end of line! + cout << "Stopping scanserver." << endl; + ServerInterface::destroy(); + + // clean up temporary files + if(!keep_temp_files) + CacheIO::removeTemporaryDirectory(); +} diff --git a/src/scanserver/serverInterface.cc b/src/scanserver/serverInterface.cc new file mode 100644 index 0000000..0987f3e --- /dev/null +++ b/src/scanserver/serverInterface.cc @@ -0,0 +1,313 @@ +/* + * serverInterface implementation + * + * Copyright (C) Thomas Escher, Kai Lingemann + * + * Released under the GPL version 3. + * + */ + +#include "scanserver/serverInterface.h" + +#include +using std::cout; +using std::cerr; +using std::endl; +#include +#include +#include + +#include +using namespace boost::filesystem; +using namespace boost::interprocess; + +#include "scanserver/defines.h" +#include "scanserver/frame_io.h" +#include "scanserver/serverScan.h" +#include "scanio/scan_io.h" + +#ifndef _MSC_VER +#include // mlock for avoiding swaps +#endif + +#ifdef WITH_METRICS +#include "slam6d/metrics.h" +#endif //WITH_METRICS + + + +SharedScanVector* ServerInterface::readDirectory(const char * dir_path, IOType type, unsigned int start, unsigned int end) +{ + // INFO + cout << "[Scanserver] Reading directory '" << dir_path << "' ... "; + + // create an instance of ScanIO + ScanIO* sio = ScanIO::getScanIO(type); + + // query available scans in the directory from the ScanIO + std::list identifiers(sio->readDirectory(dir_path, start, end)); + + // create a vector for returning + SharedScanVector* scans = segment_manager->construct(anonymous_instance)(allocator); + scans->reserve(identifiers.size()); + + // INFO + cout << identifiers.size() << " scans found." << endl; + + // share the directory path string between all scans because it's the same + // BUG: before boost-1.47, gcc -O2 and higher caused several boost::ipc:string instances having errors with garbage characters in between and/or more at the end, this is to avoid that problem + SharedStringSharedPtr dir_path_ptr = make_managed_shared_ptr( + segment_manager->construct(anonymous_instance)(dir_path, allocator), *segment_manager); + + // for each identifier, create a scan + for(std::list::iterator it = identifiers.begin(); it != identifiers.end(); ++it) { + // first try to get the scan by matching in the global scan vector + SharedScan* scan = findScan(dir_path_ptr, it->c_str(), type); + // otherwise create a new one and insert it into the global vector + if(!scan) { + // TODO: catch exceptions/errors + scan = static_cast( + segment_manager->construct(anonymous_instance) + (allocator, dir_path_ptr, it->c_str(), type, &m_manager) + ); + m_scans.push_back(offset_ptr(scan)); + } + // insert scan into return scan vector + scans->push_back(offset_ptr(scan)); + } + + return scans; +} + +bool ServerInterface::loadCacheObject(CacheObject* obj) +{ + // INFO + //cout << "ServerInterface::loadCacheObject..." << endl; + + // cache manager handles all the io and allocation issues by calling the cache handler + return m_manager.loadCacheObject(obj); +} + +void ServerInterface::allocateCacheObject(CacheObject* obj, unsigned int size) +{ + // INFO + //cout << "ServerInterface::allocateCacheObject (" << size << ")" << endl; + // allocate enough space for a cache object + m_manager.allocateCacheObject(obj, size); + + // INFO + //cout << endl; +} + +void ServerInterface::invalidateCacheObject(CacheObject* obj) +{ + m_manager.invalidateCacheObject(obj); +} + +void ServerInterface::getPose(SharedScan* scan) +{ + // INFO + //cout << "[" << scan->getIdentifier() << "] getPose()"; + + // TODO: catch exceptions + double* pose = segment_manager->construct(anonymous_instance)[6](); + ScanIO* sio = ScanIO::getScanIO(scan->getIOType()); + // TODO: catch more exceptions + sio->readPose(scan->getDirPath(), scan->getIdentifier(), pose); + static_cast(scan)->setPose(pose); + + // INFO + //cout << endl; +} + +void ServerInterface::addFrame(SharedScan* scan) +{ + static_cast(scan)->getFrames().push_back(Frame()); +} + +void ServerInterface::loadFramesFile(SharedScan* scan) +{ + FrameIO::loadFile(scan->getDirPath(), scan->getIdentifier(), static_cast(scan)->getFrames()); +} + +void ServerInterface::saveFramesFile(SharedScan* scan) +{ + FrameIO::saveFile(scan->getDirPath(), scan->getIdentifier(), static_cast(scan)->getFrames()); +} + +void ServerInterface::clearFrames(SharedScan* scan) +{ + static_cast(scan)->getFrames().clear(); +} + +std::size_t ServerInterface::getCacheSize() +{ + return m_cache_size; +} + +void ServerInterface::printMetrics() +{ +#ifdef WITH_METRICS + ServerMetric::print(); +#endif //WITH_METRICS +} + +SharedScan* ServerInterface::findScan(const SharedStringSharedPtr& dir_path, const char* identifier, IOType type) const +{ + // create a stack local scan to compare with all other scans + SharedScan scan(allocator, dir_path, identifier, type); + for(SharedScanVector::const_iterator it = m_scans.begin(); it != m_scans.end(); ++it) { + if(scan == *(*it)) + return it->get(); + } + return 0; +} + +ServerInterface* ServerInterface::create(std::size_t data_size, std::size_t cache_size) +{ + // remove any existing shared memory that wasn't cleaned up + shared_memory_object::remove(SHM_NAME_DATA); + // create the shared memory + if(m_msm != 0) + throw std::runtime_error("Could not create ServerInterface because shared memory already exists"); + try { + m_msm = new managed_shared_memory(create_only, SHM_NAME_DATA, data_size); +#ifndef WIN32 + cout << " Locking data memory... " << std::flush; + int ret = mlock(m_msm->get_address(), m_msm->get_size()); + if(ret == 0) + cout << "success."; + else if(ret == -EPERM) + cout << "unsuccessful, no permissions."; + else if(ret == -ENOMEM) + cout << "unsuccessful, RLIMIT_MEMLOCK too small."; + else + cout << "unsuccessful, error=" << ret << "."; + cout << endl; +#endif + } catch(interprocess_exception& e) { + throw std::runtime_error(std::string("Could not create shared memory: ") + e.what()); + } + // create server interface and set the client pointer to it + ServerInterface* server = m_msm->construct(unique_instance)(m_msm->get_segment_manager(), SHM_NAME_CACHE, cache_size); + offset_ptr *ptr = m_msm->construct >(unique_instance)(); + (*ptr) = reinterpret_cast(server); + return server; +} + +void ServerInterface::destroy() +{ + // delete the server instance first + try { + // send message to quit + ServerInterface* server = m_msm->find(unique_instance).first; + server->cleanup(); +/* resetting conditions and mutexes won't work, so just clean up manually + server->m_condition_server.notify_one(); + server->m_condition_client.notify_one(); + server->m_mutex_client.unlock(); + server->m_mutex_server.unlock(); + m_msm->destroy(unique_instance); +*/ + } catch(...) { + // whatever + } + // clean up the memory + if(m_msm != 0) { + delete m_msm; + m_msm = 0; + shared_memory_object::remove(SHM_NAME_DATA); + shared_memory_object::remove(SHM_NAME_CACHE); + } +} + +ServerInterface::ServerInterface(managed_shared_memory::segment_manager * sm, const char* shm_name, std::size_t cache_size) : + ClientInterface(sm), + m_scans(allocator), + m_manager(sm, shm_name, cache_size), + m_cache_size(cache_size) +{ +} + +ServerInterface::~ServerInterface() +{ +} + +void ServerInterface::cleanup() +{ + ScanIO::clearScanIOs(); +} + +void ServerInterface::run() +{ + // take ownership of the server mutex as long as the server is busy + scoped_lock lock(m_mutex_server); + + // run the shop + bool running = true; + while(running) { + // wait for input notification + m_condition_server.wait(lock); + + // clear the error message because the client isn't responsible for it + m_error_message.clear(); + + // process the input + // TEST: simple int pod for message type + try { + if(m_message == MESSAGE_STOP) { + running = false; + cout << "Stopping execution by MESSAGE_STOP request." << endl; + } else + if(m_message == MESSAGE_READ_DIRECTORY) { + m_scanvector_ptr = readDirectory(m_arg_string_1.c_str(), m_arg_io_type, m_arg_uint_1, m_arg_uint_2); + } else + if(m_message == MESSAGE_LOAD_CACHE_OBJECT) { + m_arg_uint_1 = (loadCacheObject(m_cacheobject_ptr.get()) == true? 1: 0); + } else + if(m_message == MESSAGE_ALLOCATE_CACHE_OBJECT) { + allocateCacheObject(m_cacheobject_ptr.get(), m_arg_uint_1); + } else + if(m_message == MESSAGE_INVALIDATE_CACHE_OBJECT) { + invalidateCacheObject(m_cacheobject_ptr.get()); + } else + if(m_message == MESSAGE_GET_POSE) { + getPose(m_sharedscan_ptr.get()); + } else + if(m_message == MESSAGE_ADD_FRAME) { + addFrame(m_sharedscan_ptr.get()); + } else + if(m_message == MESSAGE_LOAD_FRAMES_FILE) { + loadFramesFile(m_sharedscan_ptr.get()); + } else + if(m_message == MESSAGE_SAVE_FRAMES_FILE) { + saveFramesFile(m_sharedscan_ptr.get()); + } else + if(m_message == MESSAGE_CLEAR_FRAMES) { + clearFrames(m_sharedscan_ptr.get()); + } else + if(m_message == MESSAGE_GET_CACHE_SIZE) { + m_arg_size_t = getCacheSize(); + } else + if(m_message == MESSAGE_PRINT_METRICS) { + printMetrics(); + } else + { + cout << "WAH! I do not know thee: " << (unsigned int)m_message << endl; + } + } catch(bad_alloc& e) { + cerr << "Allocation error (you may need to increase the data_size): " << e.what() << endl; + m_error_message = e.what(); + } catch(std::runtime_error& e) { + // don't repeat this for the client + // cerr << "RUNTIME ERROR: " << e.what() << endl; + m_error_message = e.what(); + } + // clear message + m_message = MESSAGE_NONE; + + // notify client about completion + if(running) + m_condition_client.notify_one(); + } +} diff --git a/src/scanserver/serverScan.cc b/src/scanserver/serverScan.cc new file mode 100644 index 0000000..dfd4762 --- /dev/null +++ b/src/scanserver/serverScan.cc @@ -0,0 +1,44 @@ +/* + * serverScan implementation + * + * Copyright (C) Thomas Escher, Kai Lingemann + * + * Released under the GPL version 3. + * + */ + +#include "scanserver/serverScan.h" + +#include "scanserver/cache/cacheManager.h" +#include "scanserver/scanHandler.h" +#include "scanserver/temporaryHandler.h" + +ServerScan::ServerScan(const ip::allocator & allocator, + const SharedStringSharedPtr& dir_path_ptr, const char* io_identifier, + IOType iotype, CacheManager* cm) : + SharedScan(allocator, dir_path_ptr, io_identifier, iotype) +{ + // let the manager allocate cache objects in shared memory and assign them process local handlers, called through the interface + m_xyz = cm->createCacheObject(); + m_xyz->setCacheHandler(new ScanHandler(m_xyz.get(), cm, this, DATA_XYZ)); + m_rgb = cm->createCacheObject(); + m_rgb->setCacheHandler(new ScanHandler(m_rgb.get(), cm, this, DATA_RGB)); + m_reflectance = cm->createCacheObject(); + m_reflectance->setCacheHandler(new ScanHandler(m_reflectance.get(), cm, this, DATA_REFLECTANCE)); + m_amplitude = cm->createCacheObject(); + m_amplitude->setCacheHandler(new ScanHandler(m_amplitude.get(), cm, this, DATA_AMPLITUDE)); + m_type = cm->createCacheObject(); + m_type->setCacheHandler(new ScanHandler(m_type.get(), cm, this, DATA_TYPE)); + m_deviation = cm->createCacheObject(); + m_deviation->setCacheHandler(new ScanHandler(m_deviation.get(), cm, this, DATA_DEVIATION)); + + m_xyz_reduced = cm->createCacheObject(); + m_xyz_reduced->setCacheHandler(new TemporaryHandler(m_xyz_reduced.get(), cm, this)); + m_xyz_reduced_original = cm->createCacheObject(); + m_xyz_reduced_original->setCacheHandler(new TemporaryHandler(m_xyz_reduced_original.get(), cm, this, true)); + + m_show_reduced = cm->createCacheObject(); + m_show_reduced->setCacheHandler(new TemporaryHandler(m_show_reduced.get(), cm, this, true)); + m_octtree = cm->createCacheObject(); + m_octtree->setCacheHandler(new TemporaryHandler(m_octtree.get(), cm, this, true)); +} diff --git a/src/scanserver/sharedScan.cc b/src/scanserver/sharedScan.cc new file mode 100644 index 0000000..a1b55ec --- /dev/null +++ b/src/scanserver/sharedScan.cc @@ -0,0 +1,259 @@ +/* + * sharedScan implementation + * + * Copyright (C) Thomas Escher, Kai Lingemann + * + * Released under the GPL version 3. + * + */ + +#include "scanserver/sharedScan.h" + +#include +using std::cout; +using std::cerr; +using std::endl; +#include + +#include "scanserver/clientInterface.h" + + + +SharedScan::SharedScan(const ip::allocator & allocator, + const SharedStringSharedPtr& dir_path_ptr, const char *io_identifier, + IOType iotype) : + m_dir_path_ptr(dir_path_ptr), + m_io_identifier(io_identifier, allocator), + m_iotype(iotype), + m_prefetch(0), + m_max_dist(0.0), m_min_dist(0.0), + m_height_top(0.0), m_height_bottom(0.0), + m_range_param_set(false), m_height_param_set(false), + m_reduction_parameters(allocator), + m_show_parameters(allocator), + m_octtree_parameters(allocator), + m_load_frames_file(true), + m_frames(allocator) +{ + // until boost-1.47 ipc-strings can do garbage with g++-4.4 -O2 and higher (optimizations and versions) + std::string bugfix(io_identifier); + m_io_identifier[bugfix.length()] = '\0'; + + // COs are allocated in the ServerScan-ctor +} + +SharedScan::~SharedScan() +{ + // TODO + // get segment manager and deconstruct all available data fields + // TODO: Delete COs if notzero and notify CM? +} + +bool SharedScan::operator==(const SharedScan& r) const +{ + return (m_io_identifier == r.m_io_identifier) && (*m_dir_path_ptr == *r.m_dir_path_ptr) && m_iotype == r.m_iotype; +} + +void SharedScan::setRangeParameters(double max_dist, double min_dist) +{ + // if a non-first set differs from the previous ones, invalidate all COs + if(m_range_param_set) { + if(max_dist != m_max_dist || min_dist != m_min_dist) { + invalidateFull(); + invalidateReduced(); + invalidateShow(); + } + } + m_max_dist = max_dist; + m_min_dist = min_dist; + m_range_param_set = true; +} + +void SharedScan::setHeightParameters(double top, double bottom) +{ + // if a non-first set differs from the previous ones, invalidate all COs + if(m_height_param_set) { + if(top != m_height_top || bottom != m_height_bottom) { + invalidateFull(); + invalidateReduced(); + invalidateShow(); + } + } + m_height_top = top; + m_height_bottom = bottom; + m_height_param_set = true; +} + +void SharedScan::setReductionParameters(const char* params) +{ + // if a non-first set differs from the previous ones, invalidate reduced COs + if(!m_reduction_parameters.empty() && m_reduction_parameters != params) { + invalidateReduced(); + } + m_reduction_parameters = params; +} + +void SharedScan::setShowReductionParameters(const char* params) +{ + // if a non-first set differs from the previous ones, invalidate reduced COs + if(!m_show_parameters.empty() && m_show_parameters != params) { + invalidateShow(); + } + m_show_parameters = params; +} + +void SharedScan::setOcttreeParameters(const char* params) +{ + // if a non-first set differs from the previous ones, invalidate reduced COs + if(!m_octtree_parameters.empty() && m_octtree_parameters != params) { + m_octtree->invalidate(); + } + m_octtree_parameters = params; +} + +PointFilter SharedScan::getPointFilter() const +{ + PointFilter r; + if(m_range_param_set) + r.setRange(m_max_dist, m_min_dist); + if(m_height_param_set) + r.setHeight(m_height_top, m_height_bottom); + return r; +} + +void SharedScan::invalidateFull() +{ + m_xyz->invalidate(); + m_rgb->invalidate(); +} + +void SharedScan::invalidateReduced() +{ + m_xyz_reduced->invalidate(); + m_xyz_reduced_original->invalidate(); +} + +void SharedScan::invalidateShow() +{ + m_show_reduced->invalidate(); + m_octtree->invalidate(); +} + +void SharedScan::clearFrames() +{ + ClientInterface* client = ClientInterface::getInstance(); + client->clearFrames(this); + // don't try to load again from the still existing files + m_load_frames_file = false; +} + +void SharedScan::addFrame(double* transformation, unsigned int type) +{ + ClientInterface* client = ClientInterface::getInstance(); + client->addFrame(this, transformation, type); +} + +const FrameVector& SharedScan::getFrames() +{ + // on a restart with existing frame files try to load these + if(m_frames.empty() && m_load_frames_file == true) { + ClientInterface* client = ClientInterface::getInstance(); + client->loadFramesFile(this); + // don't try to load again if frames are still empty + m_load_frames_file = false; + } + return m_frames; +} + +void SharedScan::saveFrames() +{ + ClientInterface* client = ClientInterface::getInstance(); + client->saveFramesFile(this); + // we just saved the file, no need to read it + m_load_frames_file = false; +} + +double* SharedScan::getPose() +{ + if(m_pose == 0) { + ClientInterface* client = ClientInterface::getInstance(); + client->getPose(this); + } + return m_pose.get(); +} + +DataXYZ SharedScan::getXYZ() { + return m_xyz.get()->getCacheData(); +} + +DataRGB SharedScan::getRGB() { + return m_rgb->getCacheData(); +} + +DataReflectance SharedScan::getReflectance() { + return m_reflectance->getCacheData(); +} + +DataAmplitude SharedScan::getAmplitude() { + return m_amplitude->getCacheData(); +} + +DataType SharedScan::getType() { + return m_type->getCacheData(); +} + +DataDeviation SharedScan::getDeviation() { + return m_deviation->getCacheData(); +} + +DataXYZ SharedScan::getXYZReduced() { + return m_xyz_reduced->getCacheData(); +} + +DataXYZ SharedScan::createXYZReduced(unsigned int size) { + // size is in units of double[3], scale to bytes + return m_xyz_reduced->createCacheData(size*3*sizeof(double)); +} + +DataXYZ SharedScan::getXYZReducedOriginal() { + return m_xyz_reduced_original->getCacheData(); +} + +DataXYZ SharedScan::createXYZReducedOriginal(unsigned int size) { + // size is in units of double[3], scale to bytes + return m_xyz_reduced_original->createCacheData(size*3*sizeof(double)); +} + +TripleArray SharedScan::getXYZReducedShow() { + return m_show_reduced->getCacheData(); +} + +TripleArray SharedScan::createXYZReducedShow(unsigned int size) { + return m_show_reduced->createCacheData(size*3*sizeof(float)); +} + +DataPointer SharedScan::getOcttree() { + return m_octtree->getCacheData(); +} + +DataPointer SharedScan::createOcttree(unsigned int size) { + return m_octtree->createCacheData(size); +} + +void SharedScan::onCacheMiss(CacheObject* obj) +{ + ClientInterface* client = ClientInterface::getInstance(); + client->loadCacheObject(obj); +} + +void SharedScan::onAllocation(CacheObject* obj, unsigned int size) +{ + ClientInterface* client = ClientInterface::getInstance(); + client->allocateCacheObject(obj, size); +} + +void SharedScan::onInvalidation(CacheObject* obj) +{ + ClientInterface* client = ClientInterface::getInstance(); + client->invalidateCacheObject(obj); +} diff --git a/src/scanserver/temporaryHandler.cc b/src/scanserver/temporaryHandler.cc new file mode 100644 index 0000000..fe32f42 --- /dev/null +++ b/src/scanserver/temporaryHandler.cc @@ -0,0 +1,84 @@ +/* + * temporaryHandler implementation + * + * Copyright (C) Thomas Escher, Kai Lingemann + * + * Released under the GPL version 3. + * + */ + +#include "scanserver/temporaryHandler.h" + +#include +#include +using namespace std; + +#include "scanserver/cache/cacheManager.h" + + + +TemporaryHandler::TemporaryHandler(CacheObject* obj, CacheManager* cm, SharedScan* scan, bool static_data) : + CacheHandler(obj, cm), + m_scan(scan), + m_written(false), m_static_data(static_data) +{ + m_id = CacheIO::getId(); +} + +bool TemporaryHandler::load() +{ + // INFO + //cout << "[" << m_scan->getIdentifier() << "][" << m_id << "] TemporaryHandler::load"; + + // if the file was not written (equals invalidated) or file doesn't exist we can't load anything + unsigned int size = 0; + if(!m_written || (size = CacheIO::check(m_id)) == 0) { + // INFO + //cout << ", no file found" << endl; + + return false; + } + + // INFO + //cout << endl; + + // get space + unsigned char* data_ptr; + try { + data_ptr = m_manager->allocateCacheObject(m_object, size); + } catch(runtime_error& e) { + // INFO + // cerr << "[" << m_scan->getIdentifier() << "][" << m_id << "] CacheManager error: " << e.what() << endl; + // rethrow + throw e; + } + + // write data into the CO + CacheIO::read(m_id, reinterpret_cast(data_ptr)); + // TODO: check errors + + // INFO + //cout << "[" << m_scan->getIdentifier() << "][" << m_id << "] TemporaryHandler::load successful" << endl; + + return true; +} + +void TemporaryHandler::save(unsigned char* data, unsigned int size) +{ + // INFO + //cout << "[" << m_scan->getIdentifier() << "][" << m_id << "] TemporaryHandler::save"; + + // save if the cached file doesn't exist yet or data is dynamic and file content has to be updated + if(!m_written || !m_static_data) { + // write to file and flag for cached reads from here on + CacheIO::write(m_id, reinterpret_cast(data), size); + m_written = true; + } else { + // INFO + //cout << ", file already cached"; + } + + // INFO + //cout << endl; + return; +} diff --git a/src/shapes/CMakeLists.txt b/src/shapes/CMakeLists.txt new file mode 100644 index 0000000..1002d9c --- /dev/null +++ b/src/shapes/CMakeLists.txt @@ -0,0 +1,51 @@ +IF (WITH_SHAPE_DETECTION) + include_directories(${CMAKE_SOURCE_DIR}/3rdparty/gocr-0.48/src) + include_directories(${CMAKE_SOURCE_DIR}/3rdparty/gocr-0.48/include) + include_directories(${CMAKE_SOURCE_DIR}/include/shapes/) + +# # Compile gocr library +# SET(GOCR_DIR ${CMAKE_SOURCE_DIR}/3rdparty/gocr-0.48/src/) +# add_library(Pgm2asc SHARED ${GOCR_DIR}gocr.c ${GOCR_DIR}pgm2asc.c ${GOCR_DIR}box.c ${GOCR_DIR}database.c +# ${GOCR_DIR}detect.c ${GOCR_DIR}barcode.c ${GOCR_DIR}lines.c ${GOCR_DIR}list.c +# ${GOCR_DIR}ocr0.c ${GOCR_DIR}ocr0n.c ${GOCR_DIR}ocr1.c ${GOCR_DIR}otsu.c +# ${GOCR_DIR}output.c ${GOCR_DIR}pixel.c ${GOCR_DIR}unicode.c ${GOCR_DIR}remove.c +# ${GOCR_DIR}pnm.c ${GOCR_DIR}pcx.c ${GOCR_DIR}progress.c ${GOCR_DIR}job.c) + +# add_executable(shapes shapes.cc geom_math.cc numberrec.cc scan_ransac.cc ) +# +# IF(WIN32) +# target_link_libraries(shapes scan XGetopt netpbm Pgm2asc) +# ENDIF(WIN32) +# +# IF (UNIX) +# target_link_libraries(shapes scan newmat dl netpbm Pgm2asc ) +# ENDIF(UNIX) +# + + add_executable(planes plane.cc) +# add_executable(image toImage.cc image.cc hough.cc convexplane.cc accumulator.cc hsm3d.cc ConfigFileHough.cc parascan.cc quadtree.cc geom_math.cc ) +# add_executable(matchMarker matchMarker.cc) + + IF(UNIX) + target_link_libraries(planes scan shape newmat dl ANN) +# target_link_libraries(image scan newmat sparse dl ANN ) +# target_link_libraries(matchMarker scan newmat sparse dl ANN ) + ENDIF(UNIX) + + IF (WIN32) + target_link_libraries(planes scan newmat XGetopt shape ANN) +# target_link_libraries(image scan newmat sparse ANN XGetopt) + ENDIF(WIN32) + +SET(SHAPELIB_SRCS + hough.cc convexplane.cc accumulator.cc hsm3d.cc ConfigFileHough.cc parascan.cc quadtree.cc geom_math.cc ) + +add_library(shape STATIC ${SHAPELIB_SRCS}) + +#target_link_libraries(shapelib) +IF(EXPORT_SHARED_LIBS) +add_library(shape_s SHARED ${SHAPELIB_SRCS}) +#target_link_libraries(scan_s ${Boost_LIBRARIES} newmat) +ENDIF(EXPORT_SHARED_LIBS) + +ENDIF(WITH_SHAPE_DETECTION) diff --git a/src/shapes/ConfigFileHough.cc b/src/shapes/ConfigFileHough.cc new file mode 100644 index 0000000..be1e651 --- /dev/null +++ b/src/shapes/ConfigFileHough.cc @@ -0,0 +1,100 @@ +/* + * ConfigFileHough implementation + * + * Copyright (C) Dorit Borrmann + * + * Released under the GPL version 3. + * + */ + +#include "shapes/ConfigFileHough.h" +#include +#include +#include "shapes/parascan.h" +#include + +using namespace std; + +ConfigFileHough::ConfigFileHough() { + + strcpy(CfgFileName, DEF_CfgFileName); + MaxDist = DEF_MaxDist; + MinDist = DEF_MinDist; + AccumulatorMax = DEF_AccumulatorMax; + MinSizeAllPoints = DEF_MinSizeAllPoints; + RhoNum = DEF_RhoNum; + ThetaNum = DEF_ThetaNum; + PhiNum = DEF_PhiNum; + RhoMax = DEF_RhoMax; + MaxPointPlaneDist = DEF_MaxPointPlaneDist; + MaxPlanes = DEF_MaxPlanes; + MinPlaneSize = DEF_MinPlaneSize; + MinPlanarity = DEF_MinPlanarity; + PlaneRatio = DEF_PlaneRatio; + PointDist = DEF_PointDist; + PeakWindow = DEF_PeakWindow; + WindowSize = DEF_WindowSize; + TrashMax = DEF_TrashMax; + AccumulatorType = DEF_AccumulatorType; + strcpy(PlaneDir, DEF_PlaneDir); + +} + +void ConfigFileHough::ShowConfiguration() { + cout << "MaxDist " << Get_MaxDist() << endl; + cout << "MinDist " << Get_MinDist() << endl; + cout << "AccumulatorMax " << Get_AccumulatorMax() << endl; + cout << "MinSizeAllPoints " << Get_MinSizeAllPoints() << endl; + cout << "RhoNum " << Get_RhoNum() << endl; + cout << "ThetaNum " << Get_ThetaNum() << endl; + cout << "PhiNum " << Get_PhiNum() << endl; + cout << "RhoMax " << Get_RhoMax() << endl; + cout << "MaxPointPlaneDist " << Get_MaxPointPlaneDist() << endl; + cout << "MaxPlanes " << Get_MaxPlanes() << endl; + cout << "MinPlaneSize " << Get_MinPlaneSize() << endl; + cout << "MinPlanarity " << Get_MinPlanarity() << endl; + cout << "PlaneRatio " << Get_PlaneRatio() << endl; + cout << "PointDist " << Get_PointDist() << endl; + cout << "PeakWindow " << Get_PeakWindow() << endl; + cout << "WindowSize " << Get_WindowSize() << endl; + cout << "TrashMax " << Get_TrashMax() << endl; + cout << "AccumulatorType " << Get_AccumulatorType() << endl; + cout << "PlaneDir " << Get_PlaneDir() << endl; +} + +unsigned int ConfigFileHough::LoadCfg(const char* CfgFile) { + + FILE *Cfg; + + /* Opens the configuration file */ + if ((Cfg = fopen(CfgFile, "r")) == NULL) { + printf("Could not open configuration file '%s'\n", CfgFile); + return 0; + } + + + MaxDist = paramtr_scan_double(Cfg, "MaxDist", DEF_MaxDist); + MinDist = paramtr_scan_double(Cfg, "MinDist", DEF_MinDist); + AccumulatorMax = paramtr_scan_int(Cfg, "AccumulatorMax", DEF_AccumulatorMax); + MinSizeAllPoints = paramtr_scan_int(Cfg, "MinSizeAllPoints", DEF_MinSizeAllPoints); + RhoNum = paramtr_scan_int(Cfg, "RhoNum", DEF_RhoNum); + ThetaNum = paramtr_scan_int(Cfg, "ThetaNum", DEF_ThetaNum); + PhiNum = paramtr_scan_int(Cfg, "PhiNum", DEF_PhiNum); + RhoMax = paramtr_scan_int(Cfg, "RhoMax", DEF_RhoMax); + MaxPlanes = paramtr_scan_int(Cfg, "MaxPlanes", DEF_MaxPlanes); + MinPlaneSize = paramtr_scan_int(Cfg, "MinPlaneSize", DEF_MinPlaneSize); + MinPlanarity = paramtr_scan_double(Cfg, "MinPlanarity", DEF_MinPlanarity); + PlaneRatio = paramtr_scan_double(Cfg, "PlaneRatio", DEF_PlaneRatio); + MaxPointPlaneDist = paramtr_scan_double(Cfg, "MaxPointPlaneDist", DEF_MaxPointPlaneDist); + PeakWindow = paramtr_scan_int(Cfg, "PeakWindow", DEF_PeakWindow); + WindowSize = paramtr_scan_int(Cfg, "WindowSize", DEF_WindowSize); + TrashMax = paramtr_scan_int(Cfg, "TrashMax", DEF_TrashMax); + PointDist = paramtr_scan_double(Cfg, "PointDist", DEF_PointDist); + + AccumulatorType = paramtr_scan_int(Cfg, "AccumulatorType", DEF_AccumulatorType); + paramtr_scan_str(Cfg, "PlaneDir", PlaneDir); + + fclose(Cfg); + return 1; + +} diff --git a/src/shapes/accumulator.cc b/src/shapes/accumulator.cc new file mode 100644 index 0000000..0563554 --- /dev/null +++ b/src/shapes/accumulator.cc @@ -0,0 +1,1805 @@ +/* + * accumulator implementation + * + * Copyright (C) Dorit Borrmann + * + * Released under the GPL version 3. + * + */ + +#include "shapes/accumulator.h" +#include +#include "slam6d/globals.icc" +#include + + +#ifdef _MSC_VER +#define isnan(_X) ((_X) != (_X)) +#endif + +double* polar2normal(double theta, double phi) { + double * n = new double[4]; + n[0] = cos(theta)*sin(phi); + n[1] = sin(theta)*sin(phi); + n[2] = cos(phi); + Normalize3(n); + return n; +} + +AccumulatorSimple::AccumulatorSimple(ConfigFileHough myCfg) { + + count = 0; + myConfigFileHough = myCfg; + accumulator = new int**[myConfigFileHough.Get_RhoNum()]; + + for(unsigned int i = 0; i < myConfigFileHough.Get_RhoNum(); i++) { + accumulator[i] = new int*[myConfigFileHough.Get_PhiNum()]; + for(unsigned int j = 0; j < myConfigFileHough.Get_PhiNum(); j++) { + accumulator[i][j] = new int[myConfigFileHough.Get_ThetaNum()]; + for(unsigned int k = 0; k < myConfigFileHough.Get_ThetaNum(); k++) { + accumulator[i][j][k] = 0; + } + } + } +} + +AccumulatorSimple::~AccumulatorSimple() { + + for(unsigned int i = 0; i < myConfigFileHough.Get_RhoNum(); i++) { + for(unsigned int j = 0; j < myConfigFileHough.Get_PhiNum(); j++) { + delete[] accumulator[i][j]; + } + delete[] accumulator[i]; + + } + delete[] accumulator; + +} + +void AccumulatorSimple::printAccumulator() { + + for(unsigned int i = 0; i < myConfigFileHough.Get_PhiNum(); i++) { + for(unsigned int j = 0; j < myConfigFileHough.Get_ThetaNum(); j++) { + double phi1 = i * M_PI / (myConfigFileHough.Get_PhiNum()*0.99999999); + double phi2 = (i+1) * M_PI / (myConfigFileHough.Get_PhiNum()*0.99999999); + double theta1 = j * 2*M_PI / myConfigFileHough.Get_ThetaNum(); + double theta2 = (j+1) * 2*M_PI / myConfigFileHough.Get_ThetaNum(); + if(theta2 > 2*M_PI) theta2 = 2*M_PI; + if(phi2 > M_PI) { + phi2 = M_PI; + } + int rhosum = 0; + for(unsigned int k = 0; k < myConfigFileHough.Get_RhoNum(); k++) { + rhosum += accumulator[k][i][j]; + } + cout << phi1 << " " << theta1 << " " << " " << rhosum << " 40" << endl; + cout << phi2 << " " << theta1 << " " << " " << rhosum << " 40" << endl; + cout << phi2 << " " << theta2 << " " << " " << rhosum << " 40" << endl; + cout << phi1 << " " << theta2 << " " << " " << rhosum << " 40" << endl; + cout << endl; + } + + cout << endl; + } + + /* + for(unsigned int i = 0; i < myConfigFileHough.Get_PhiNum(); i++) { + for(unsigned int j = 0; j < myConfigFileHough.Get_ThetaNum(); j++) { + for(unsigned int k = 0; k < myConfigFileHough.Get_RhoNum(); k++) { + if( accumulator[i][j][k] > 20 ) cout << i << " " << j << " " << k << endl; + } + } + } + */ + +} + +void AccumulatorSimple::resetAccumulator() { + count = 0; + for(unsigned int i = 0; i < myConfigFileHough.Get_RhoNum(); i++) { + for(unsigned int j = 0; j < myConfigFileHough.Get_PhiNum(); j++) { + for(unsigned int k = 0; k < myConfigFileHough.Get_ThetaNum(); k++) { + accumulator[i][j][k] = 0; + } + } + } +} + +bool AccumulatorSimple::accumulate(double theta, double phi, double rho) { + count++; + //cout << phi << " " << theta << " " << rho << " "; + int rhoindex = myConfigFileHough.Get_RhoNum() - 1; + + if(rho < myConfigFileHough.Get_RhoMax()) { + rhoindex = (int)((rho*(double)myConfigFileHough.Get_RhoNum()/(double)myConfigFileHough.Get_RhoMax())); + } + //cout << (rhoindex + 0.5) * myConfigFileHough.Get_RhoMax()/myConfigFileHough.Get_RhoNum() << endl; + + int phiindex = (int)(phi*((myConfigFileHough.Get_PhiNum()*0.99999999)/(M_PI))); + int thetaindex = (int)(theta*((myConfigFileHough.Get_ThetaNum()*0.9999999)/(2*M_PI))); + + //thetaindex = thetaindex % ballNr[phiindex]; + accumulator[rhoindex][phiindex][thetaindex]++; + return ((unsigned int)accumulator[rhoindex][phiindex][thetaindex] >= myConfigFileHough.Get_AccumulatorMax()); +} + +void AccumulatorSimple::accumulate(Point p) { +// cout << p.x << " " << p.y << " " << p.z << endl; + + for(unsigned int i = 0; i < myConfigFileHough.Get_PhiNum(); i++) { + //TODO 0.99 vielleicht nicht gut + double phi = (i+0.5) * M_PI / (myConfigFileHough.Get_PhiNum()*0.99999999999); + + for(unsigned int j = 0; j < myConfigFileHough.Get_ThetaNum(); j++) { + double theta = (j+0.5) * 2*M_PI / myConfigFileHough.Get_ThetaNum(); + if(theta > 2*M_PI) theta = 2*M_PI; + if(phi > M_PI) { + phi = M_PI; + } + double n[3]; + n[0] = cos(theta)*sin(phi); + n[1] = sin(theta)*sin(phi); + n[2] = cos(phi); + Normalize3(n); + for(unsigned int k = 0; k < myConfigFileHough.Get_RhoNum(); k++) { + double rho = (k + 0.5) * myConfigFileHough.Get_RhoMax() / myConfigFileHough.Get_RhoNum(); + double distance = p.x * n[0] + p.y * n[1] + p.z * n[2]; + if(fabs(distance-rho) < myConfigFileHough.Get_MaxPointPlaneDist()) { + accumulator[k][i][j]++; + } + + } + } + } + +// cout << "fertig" << endl; + +} + +double* AccumulatorSimple::accumulateRet(Point p) { + count++; + // rho theta phi + double* angles = new double[3]; + for(unsigned int i = 0; i < myConfigFileHough.Get_PhiNum(); i++) { + double phi = (i+0.5) * M_PI / (myConfigFileHough.Get_PhiNum()*0.9999999); + + for(unsigned int j = 0; j < myConfigFileHough.Get_ThetaNum(); j++) { + double theta = (j+0.5) * 2*M_PI / myConfigFileHough.Get_ThetaNum(); + if(theta > 2*M_PI) theta = 2*M_PI; + if(phi > M_PI) { + phi = M_PI; + } + double n[3]; + n[0] = cos(theta)*sin(phi); + n[1] = sin(theta)*sin(phi); + n[2] = cos(phi); + Normalize3(n); + for(unsigned int k = 0; k < myConfigFileHough.Get_RhoNum(); k++) { + double rho = (k + 0.5) * myConfigFileHough.Get_RhoMax() / myConfigFileHough.Get_RhoNum(); + double distance = p.x * n[0] + p.y * n[1] + p.z * n[2]; + if(fabs(distance-rho) < myConfigFileHough.Get_MaxPointPlaneDist()) { + accumulator[k][i][j]++; + if(((unsigned int)accumulator[k][i][j] > myConfigFileHough.Get_AccumulatorMax() && (unsigned int)accumulator[k][i][j] > count*myConfigFileHough.Get_PlaneRatio()) + || (unsigned int)accumulator[k][i][j] > myConfigFileHough.Get_AccumulatorMax()) { + angles[0] = rho; + angles[1] = theta; + angles[2] = phi; + return angles; + } + } + + } + } + } + + angles[0] = -1; + return angles; + +} + +int* AccumulatorSimple::accumulateAPHT(Point p) { + + int tmpInt = 0; + // rho theta phi + int* angles = new int[3]; + for(unsigned int i = 0; i < myConfigFileHough.Get_PhiNum(); i++) { + double phi = (i+0.5) * M_PI / (myConfigFileHough.Get_PhiNum()*0.99999999); + + for(unsigned int j = 0; j < myConfigFileHough.Get_ThetaNum(); j++) { + double theta = (j+0.5) * 2*M_PI / myConfigFileHough.Get_ThetaNum(); + if(theta > 2*M_PI) theta = 2*M_PI; + if(phi > M_PI) { + phi = M_PI; + } + double n[3]; + n[0] = cos(theta)*sin(phi); + n[1] = sin(theta)*sin(phi); + n[2] = cos(phi); + Normalize3(n); + for(unsigned int k = 0; k < myConfigFileHough.Get_RhoNum(); k++) { + double rho = (k + 0.5) * myConfigFileHough.Get_RhoMax() / myConfigFileHough.Get_RhoNum(); + double distance = p.x * n[0] + p.y * n[1] + p.z * n[2]; + if(fabs(distance-rho) < myConfigFileHough.Get_MaxPointPlaneDist()) { + accumulator[k][i][j]++; + if(accumulator[k][i][j] > tmpInt) { + angles[0] = k; + angles[1] = j; + angles[2] = i; + tmpInt = accumulator[k][i][j]; + } + } + + } + } + } + + return angles; + +} + + +double* AccumulatorSimple::getMax(double &rho, double &theta, double &phi) { + int rhoindex = myConfigFileHough.Get_RhoNum() - 1; + + if(rho < myConfigFileHough.Get_RhoMax()) { + rhoindex = (int)(rho*((double)myConfigFileHough.Get_RhoNum()/(double)myConfigFileHough.Get_RhoMax())); + } + + int phiindex = (int)(phi*((double)(myConfigFileHough.Get_PhiNum())/(M_PI))); + int thetaindex = (int)(theta*(((double)myConfigFileHough.Get_ThetaNum())/(2*M_PI))); + thetaindex = thetaindex % myConfigFileHough.Get_ThetaNum(); + + phi = (0.5 + phiindex) * (double)(M_PI / (double)myConfigFileHough.Get_PhiNum()); + theta = (0.5 + thetaindex) * (double)(2.0 * M_PI / (double)myConfigFileHough.Get_ThetaNum()); + rho = (rhoindex + 0.5) * (double)myConfigFileHough.Get_RhoMax()/(double)myConfigFileHough.Get_RhoNum(); + return polar2normal(theta, phi); +} + +double* AccumulatorSimple::getMax(int* cell) { + double phi = (0.5 + cell[3]) * (double)(M_PI / (double)myConfigFileHough.Get_PhiNum()); + double theta = (0.5 + cell[2]) * (double)(2.0 * M_PI / + (double)myConfigFileHough.Get_ThetaNum()); + double rho = (cell[1] + 0.5) * + (double)myConfigFileHough.Get_RhoMax()/(double)myConfigFileHough.Get_RhoNum(); + double* polar = polar2normal(theta, phi); + polar[3] = rho; + return polar; +} + +multiset* AccumulatorSimple::getMax() { +//void AccumulatorSimple::getMax() { + multiset* maxlist = new multiset(); + for(unsigned int i = 0; i < myConfigFileHough.Get_RhoNum(); i++) { + for(unsigned int j = 0; j < myConfigFileHough.Get_PhiNum(); j++) { + for(unsigned int k = 0; k < myConfigFileHough.Get_ThetaNum(); k++) { + int* tmp = new int[4]; + tmp[0] = accumulator[i][j][k]; + tmp[1] = i; + tmp[2] = k; + tmp[3] = j; + maxlist->insert(tmp); + } + } + } + return maxlist; +} + +void AccumulatorSimple::peakWindow(int size) { + for(unsigned int i = 0; i < myConfigFileHough.Get_RhoNum() - size; i++) { + for(unsigned int j = 0; j < myConfigFileHough.Get_PhiNum() - size; j++) { + for(unsigned int k = 0; k < myConfigFileHough.Get_ThetaNum() - size; k++) { + int max = 0; + for(unsigned int ii = i; ii < i + size; ii++) { + for(unsigned int ji = j; ji < j + size; ji++) { + for(unsigned int ki = k; ki < k + size; ki++) { + if(accumulator[ii][ji][ki] > max) { + max = accumulator[ii][ji][ki]; + } + } + } + } + for(unsigned int ii = i; ii < i + size; ii++) { + for(unsigned int ji = j; ji < j + size; ji++) { + for(unsigned int ki = k; ki < k + size; ki++) { + if(accumulator[ii][ji][ki] < max) { + accumulator[ii][ji][ki] = 0; + } + } + } + } + } + } + } +} + +AccumulatorBall::AccumulatorBall(ConfigFileHough myCfg) { + count = 0; + int countCells = 0; + myConfigFileHough = myCfg; + + double c = 0.0; + int counter = 0; + ballNr = new int[myConfigFileHough.Get_PhiNum()]; + double step = 180.0/myConfigFileHough.Get_PhiNum(); + + //double MAX_A = M_PI * (2 * fabs(0 - cos(rad(90- step))) + sin(rad(90 - step)) * sin(rad(90 - step)) + 1 * 1); + + double MAX_A = 2 * M_PI * 1.0; + + double r = sin(rad(0.0)); + double z = cos(rad(0.0)); + double r_next = 0.0; + double z_next = 0.0; + + for(double phi = 0; phi < 180.0; phi+=step) { + r_next = sin(rad(phi+step)); + z_next = cos(rad(phi+step)); + // Flaecheninhalt der aktuellen Kreisscheibe + //double a = (M_PI * (2.0 * 1.0 * fabs(z - z_next) + r*r + r_next*r_next)); + // Umfang des aktuellen Kreises + double a = 2 * M_PI * (r + r_next)/2.0; + //a = (r*r - r_next*r_next) * PI; //Flaechenvergleich + + // Berechnung der Schrittgroesse in Grad + c = ((360.0 * (MAX_A / a)) / (myConfigFileHough.Get_ThetaNum() - 1)); + // Berechnung der Felder im Akkumulatorarray + int size = (int)(1.0 + 360.0/c); + //if(true) { + ballNr[counter] = size; + //} else { + // ballNr[counter] = myConfigFileHough.Get_ThetaNum(); + //} + + //cout << counter << endl; + r = r_next; + z = z_next; + counter++; + } + + + accumulator = new int**[myConfigFileHough.Get_RhoNum()]; + + for(unsigned int i = 0; i < myConfigFileHough.Get_RhoNum(); i++) { + accumulator[i] = new int*[myConfigFileHough.Get_PhiNum()]; + for(unsigned int j = 0; j < myConfigFileHough.Get_PhiNum(); j++) { + accumulator[i][j] = new int[ballNr[j]]; + for(int k = 0; k < ballNr[j]; k++) { + accumulator[i][j][k] = 0; + countCells++; + } + } + } + cout << "CountCells " << countCells << endl; +} + +AccumulatorBall::~AccumulatorBall() { + + for(unsigned int i = 0; i < myConfigFileHough.Get_RhoNum(); i++) { + for(unsigned int j = 0; j < myConfigFileHough.Get_PhiNum(); j++) { + delete[] accumulator[i][j]; + } + delete[] accumulator[i]; + + } + delete[] accumulator; + delete[] ballNr; + +} + +void AccumulatorBall::printAccumulator() { + int sum = 0; + for(unsigned int i = 0; i < myConfigFileHough.Get_PhiNum(); i++) { + sum += ballNr[i]; + } + for(unsigned int i = 0; i < myConfigFileHough.Get_PhiNum(); i++) { + for(int j = 0; j < ballNr[i]; j++) { + double phi1 = i * M_PI / (myConfigFileHough.Get_PhiNum()*0.9999999999); + double phi2 = (i+1) * M_PI / (myConfigFileHough.Get_PhiNum()*0.99999999); + double theta1 = j * 2*M_PI / ballNr[i]; + double theta2 = (j+1) * 2*M_PI / ballNr[i]; + if(theta2 > 2*M_PI) theta2 = 2*M_PI; + if(phi2 > M_PI) { + phi2 = M_PI; + } + int rhosum = 0; + /* + for(int k = 0; k < myConfigFileHough.Get_RhoNum(); k++) { + rhosum += accumulator[k][i][j]; + } + */ + rhosum = accumulator[33][i][j]; + cout << phi1 << " " << theta1 << " " << rhosum << " 40" << endl; + cout << phi2 << " " << theta1 << " " << rhosum << " 40" << endl; + cout << phi2 << " " << theta2 << " " << rhosum << " 40" << endl; + cout << phi1 << " " << theta2 << " " << rhosum << " 40" << endl; + cout << endl; + } + + //cout << endl; + } +} + +void AccumulatorBall::resetAccumulator() { + + count = 0; + for(unsigned int i = 0; i < myConfigFileHough.Get_RhoNum(); i++) { + for(unsigned int j = 0; j < myConfigFileHough.Get_PhiNum(); j++) { + int bNr = ballNr[j]; + for(int k = 0; k < bNr; k++) { + accumulator[i][j][k] = 0; + } + } + } +} + +bool AccumulatorBall::accumulate(double theta, double phi, double rho) { + count++; + int rhoindex = myConfigFileHough.Get_RhoNum() - 1; + + if(rho < myConfigFileHough.Get_RhoMax()) { + rhoindex = (int)((rho*(double)myConfigFileHough.Get_RhoNum()/(double)myConfigFileHough.Get_RhoMax())); + } + + int phiindex = (int)(phi*(((double)myConfigFileHough.Get_PhiNum()*0.9999999)/(M_PI))); + int bNr = ballNr[phiindex]; + int thetaindex = (int)(theta*((bNr*0.9999999999)/(2*M_PI))); + if(thetaindex >= bNr) { + cout << "duet"; + } + //thetaindex = thetaindex % ballNr[phiindex]; + accumulator[rhoindex][phiindex][thetaindex]++; + return ((unsigned int)accumulator[rhoindex][phiindex][thetaindex] >= myConfigFileHough.Get_AccumulatorMax()); +} + +void AccumulatorBall::accumulate(Point p) { + for(unsigned int i = 0; i < myConfigFileHough.Get_PhiNum(); i++) { + double phi = (i+0.5) * M_PI / (myConfigFileHough.Get_PhiNum()*0.999999999); + for(int j = 0; j < ballNr[i]; j++) { + double theta = (j+0.5) * 2*M_PI / ballNr[i]; + if(theta > 2*M_PI) theta = 2*M_PI; + if(phi > M_PI) { + phi = M_PI; + } + double n[3]; + n[0] = cos(theta)*sin(phi); + n[1] = sin(theta)*sin(phi); + n[2] = cos(phi); + Normalize3(n); + for(unsigned int k = 0; k < myConfigFileHough.Get_RhoNum(); k++) { + double rho = (k + 0.5) * myConfigFileHough.Get_RhoMax() / myConfigFileHough.Get_RhoNum(); + double distance = p.x * n[0] + p.y * n[1] + p.z * n[2]; + if(fabs(distance-rho) < myConfigFileHough.Get_MaxPointPlaneDist()) { + accumulator[k][i][j]++; + } + + } + } + } + +} +double* AccumulatorBall::accumulateRet(Point p) { + count++; + // rho theta phi + double* angles = new double[3]; + for(unsigned int i = 0; i < myConfigFileHough.Get_PhiNum(); i++) { + double phi = (i+0.5) * M_PI / (myConfigFileHough.Get_PhiNum()*0.99999999); + for(int j = 0; j < ballNr[i]; j++) { + double theta = (j+0.5) * 2*M_PI / ballNr[i]; + if(theta > 2*M_PI) theta = 2*M_PI; + if(phi > M_PI) { + phi = M_PI; + } + double n[3]; + n[0] = cos(theta)*sin(phi); + n[1] = sin(theta)*sin(phi); + n[2] = cos(phi); + Normalize3(n); + for(unsigned int k = 0; k < myConfigFileHough.Get_RhoNum(); k++) { + double rho = (k + 0.5) * myConfigFileHough.Get_RhoMax() / myConfigFileHough.Get_RhoNum(); + double distance = p.x * n[0] + p.y * n[1] + p.z * n[2]; + if(fabs(distance-rho) < myConfigFileHough.Get_MaxPointPlaneDist()) { + accumulator[k][i][j]++; + if( + ((unsigned int)accumulator[k][i][j] > myConfigFileHough.Get_AccumulatorMax() && + (unsigned int)accumulator[k][i][j] > count*myConfigFileHough.Get_PlaneRatio()) || + (unsigned int)accumulator[k][i][j] > 10*myConfigFileHough.Get_AccumulatorMax()) { + angles[0] = rho; + angles[0] = rho; + angles[1] = theta; + angles[2] = phi; + return angles; + } + } + + } + } + } + angles[0] = -1; + return angles; +} + +int* AccumulatorBall::accumulateAPHT(Point p) { + + // rho theta phi + int tmpMax = 0; + int* angles = new int[4]; + for(unsigned int i = 0; i < myConfigFileHough.Get_PhiNum(); i++) { + double phi = (i+0.5) * M_PI / (myConfigFileHough.Get_PhiNum()*0.9999999999); + for(int j = 0; j < ballNr[i]; j++) { + double theta = (j+0.5) * 2*M_PI / ballNr[i]; + if(theta > 2*M_PI) theta = 2*M_PI; + if(phi > M_PI) { + phi = M_PI; + } + double n[3]; + n[0] = cos(theta)*sin(phi); + n[1] = sin(theta)*sin(phi); + n[2] = cos(phi); + Normalize3(n); + for(unsigned int k = 0; k < myConfigFileHough.Get_RhoNum(); k++) { + double rho = (k + 0.5) * myConfigFileHough.Get_RhoMax() / myConfigFileHough.Get_RhoNum(); + double distance = p.x * n[0] + p.y * n[1] + p.z * n[2]; + if(fabs(distance-rho) < myConfigFileHough.Get_MaxPointPlaneDist()) { + accumulator[k][i][j]++; + if(accumulator[k][i][j] > tmpMax) { + angles[1] = k; + angles[2] = j; + angles[3] = i; + angles[0] = tmpMax = accumulator[k][i][j]; + } + } + + } + } + } + return angles; +} + +double* AccumulatorBall::getMax(double &rho, double &theta, double &phi) { + int rhoindex = myConfigFileHough.Get_RhoNum() - 1; + + double tmprho = rho; + if(rho < myConfigFileHough.Get_RhoMax()) { + rhoindex = (int)(rho*0.99999999*((double)myConfigFileHough.Get_RhoNum()/(double)myConfigFileHough.Get_RhoMax())); + } + + int phiindex = (int)(phi*0.99999999*(((double)myConfigFileHough.Get_PhiNum())/(M_PI))); + int bNr = ballNr[phiindex]; + int thetaindex = (int)(theta*((bNr + 1)/(2*M_PI))); + thetaindex = thetaindex % bNr; + + phi = (0.5 + phiindex) * (double)(M_PI / (double)myConfigFileHough.Get_PhiNum()); + theta = (0.5 + thetaindex) * (double)(2.0 * M_PI / bNr); + rho = (rhoindex + 0.5) * (double)myConfigFileHough.Get_RhoMax()/(double)myConfigFileHough.Get_RhoNum(); + if(fabs(rho - rho) > 0.01) cout << rho << " " << tmprho << " " << rhoindex << endl; + return polar2normal(theta, phi); +} +double* AccumulatorBall::getMax(int* cell) { + double phi = (0.5 + cell[3]) * (double)(M_PI / (double)myConfigFileHough.Get_PhiNum()); + int bNr = ballNr[cell[3]]; + double theta = (0.5 + cell[2]) * (double)(2.0 * M_PI / bNr); + double rho = (cell[1] + 0.5) * + (double)myConfigFileHough.Get_RhoMax()/(double)myConfigFileHough.Get_RhoNum(); + double* polar = polar2normal(theta, phi); + if(isnan(polar[0])) { + cout << cell[1] << " " << cell[2] << " " << cell[3] << endl; + cout << theta <<" bla " << phi << endl; + } + polar[3] = rho; + return polar; +} + +multiset* AccumulatorBall::getMax() { +//void AccumulatorBall::getMax() { + multiset* maxlist = new multiset(); + for(unsigned int i = 0; i < myConfigFileHough.Get_RhoNum(); i++) { + for(unsigned int j = 0; j < myConfigFileHough.Get_PhiNum(); j++) { + int bNr = ballNr[j]; + for(int k = 0; k < bNr; k++) { + int * tmp = new int[4]; + tmp[0] = accumulator[i][j][k]; + tmp[1] = i; + tmp[2] = k; + tmp[3] = j; + maxlist->insert(tmp); + } + } + } + cout << maxlist->size() << endl; + return maxlist; +} + +void AccumulatorBall::peakWindow(int size) { + //cout << "Wir haben " << sum << "Zellen!" << endl; + for(unsigned int i = 0; i < myConfigFileHough.Get_PhiNum() - size; i++) { + //cout << "Peak " << i << endl; + for(int j = 0; j < ballNr[i] - size; j++) { + + for(unsigned int k = 0; k < myConfigFileHough.Get_RhoNum() - size; k++) { + int max = 0; + for(unsigned int ii = i; (ii < (i + size)) && (ii < myConfigFileHough.Get_PhiNum()); ii++) { + for(int ji = j; (ji < (j + size)) && (ji < ballNr[ii]); ji++) { + for(unsigned int ki = k; (ki < (k + size)) && (ki < myConfigFileHough.Get_RhoNum()); ki++) { + if(accumulator[ki][ii][ji] > max) { + max = accumulator[ki][ii][ji]; + } + } + } + } + for(unsigned int ii = i; ii < i + size && ii < myConfigFileHough.Get_PhiNum(); ii++) { + for(int ji = j; ji < j + size && ji < ballNr[ii]; ji++) { + for(unsigned int ki = k; ki < k + size && ki < myConfigFileHough.Get_RhoNum(); ki++) { + if(accumulator[ki][ii][ji] < max) { + accumulator[ki][ii][ji] = 0; + } + } + } + } + } + } + } +} + +//BLUB + + + +AccumulatorCube::AccumulatorCube(ConfigFileHough myCfg) { + int countCells = 0; + count = 0; + myConfigFileHough = myCfg; + nrCells = myConfigFileHough.Get_ThetaNum()/4; + accumulator = new int***[6]; + for(int i = 0; i < 6; i++) { + accumulator[i] = new int**[nrCells]; + for(int j = 0; j < nrCells; j++) { + accumulator[i][j] = new int*[nrCells]; + for(int k = 0; k < nrCells; k++) { + accumulator[i][j][k] = new int[myConfigFileHough.Get_RhoNum()]; + for(unsigned int l = 0; l < myConfigFileHough.Get_RhoNum(); l++) { + accumulator[i][j][k][l] = 0; + countCells++; + } + } + } + } + cout << "countCells " << countCells << endl; +} + +AccumulatorCube::~AccumulatorCube() { + nrCells = myConfigFileHough.Get_ThetaNum()/4; + + for(unsigned int i = 0; i < 6; i++) { + for(int j = 0; j < nrCells; j++) { + for(int k = 0; k < nrCells; k++) { + delete[] accumulator[i][j][k]; + } + delete[] accumulator[i][j]; + } + delete[] accumulator[i]; + + } + delete[] accumulator; + +} + +void AccumulatorCube::printAccumulator2() { + + double **result; + result = new double*[4]; + result[0] = new double[3]; + result[1] = new double[3]; + result[2] = new double[3]; + result[3] = new double[3]; + + int j; + int k; + + for(int i = 0; i < 6; i+=1) { + + for(j = 1, k = 1; j <= nrCells; j++) { + + buffer_point bptmp; + bptmp.face = i + 1; + bptmp.i = j; + bptmp.j = k; + + coords_cube_for_print(bptmp, result, nrCells); + //double* tmp = coords_cube_to_s2(bptmp, nrCells); + double polar1[3]; + double polar2[3]; + double polar3[3]; + double polar4[3]; + //toPolar(tmp, polar1); + + Normalize3(result[0]); + Normalize3(result[1]); + Normalize3(result[2]); + Normalize3(result[3]); + + toPolar(result[0], polar1); + toPolar(result[1], polar2); + toPolar(result[2], polar3); + toPolar(result[3], polar4); + double phi1 = polar1[0]; + double theta1 = polar1[1]; + //double phi2 = polar2[0]; + //double theta2 = polar2[1]; + //double phi3 = polar3[0]; + //double theta3 = polar3[1]; + double phi4 = polar4[0]; + double theta4 = polar4[1]; + + cout << phi1 << " " << theta1 << " " << " 40" << endl; + cout << phi4 << " " << theta4 << " " << " 40" << endl; + //cout << phi1 << " " << theta1 << " " << rhosum << " 40" << endl; + } + for(j--; k <= nrCells; k++) { + + buffer_point bptmp; + bptmp.face = i + 1; + bptmp.i = j; + bptmp.j = k; + + coords_cube_for_print(bptmp, result, nrCells); + //double* tmp = coords_cube_to_s2(bptmp, nrCells); + double polar1[3]; + double polar2[3]; + double polar3[3]; + double polar4[3]; + //toPolar(tmp, polar1); + + Normalize3(result[0]); + Normalize3(result[1]); + Normalize3(result[2]); + Normalize3(result[3]); + + toPolar(result[0], polar1); + toPolar(result[1], polar2); + toPolar(result[2], polar3); + toPolar(result[3], polar4); + //double phi1 = polar1[0]; + //double theta1 = polar1[1]; + //double phi2 = polar2[0]; + //double theta2 = polar2[1]; + double phi3 = polar3[0]; + double theta3 = polar3[1]; + double phi4 = polar4[0]; + double theta4 = polar4[1]; + + cout << phi4 << " " << theta4 << " " << " 40" << endl; + cout << phi3 << " " << theta3 << " " << " 40" << endl; + //cout << phi1 << " " << theta1 << " " << rhosum << " 40" << endl; + } + for(k--; j > 0; j--) { + + buffer_point bptmp; + bptmp.face = i + 1; + bptmp.i = j; + bptmp.j = k; + + coords_cube_for_print(bptmp, result, nrCells); + //double* tmp = coords_cube_to_s2(bptmp, nrCells); + double polar1[3]; + double polar2[3]; + double polar3[3]; + double polar4[3]; + //toPolar(tmp, polar1); + + Normalize3(result[0]); + Normalize3(result[1]); + Normalize3(result[2]); + Normalize3(result[3]); + + toPolar(result[0], polar1); + toPolar(result[1], polar2); + toPolar(result[2], polar3); + toPolar(result[3], polar4); + //double phi1 = polar1[0]; + //double theta1 = polar1[1]; + double phi2 = polar2[0]; + double theta2 = polar2[1]; + double phi3 = polar3[0]; + double theta3 = polar3[1]; + //double phi4 = polar4[0]; + //double theta4 = polar4[1]; + + cout << phi3 << " " << theta3 << " " << " 40" << endl; + cout << phi2 << " " << theta2 << " " << " 40" << endl; + //cout << phi1 << " " << theta1 << " " << rhosum << " 40" << endl; + } + for(j++; k > 0; k--) { + + buffer_point bptmp; + bptmp.face = i + 1; + bptmp.i = j; + bptmp.j = k; + + coords_cube_for_print(bptmp, result, nrCells); + //double* tmp = coords_cube_to_s2(bptmp, nrCells); + double polar1[3]; + double polar2[3]; + double polar3[3]; + double polar4[3]; + //toPolar(tmp, polar1); + + Normalize3(result[0]); + Normalize3(result[1]); + Normalize3(result[2]); + Normalize3(result[3]); + + toPolar(result[0], polar1); + toPolar(result[1], polar2); + toPolar(result[2], polar3); + toPolar(result[3], polar4); + double phi1 = polar1[0]; + double theta1 = polar1[1]; + double phi2 = polar2[0]; + double theta2 = polar2[1]; + //double phi3 = polar3[0]; + //double theta3 = polar3[1]; + //double phi4 = polar4[0]; + //double theta4 = polar4[1]; + + cout << phi2 << " " << theta2 << " " << " 40" << endl; + cout << phi1 << " " << theta1 << " " << " 40" << endl; + //cout << phi1 << " " << theta1 << " " << rhosum << " 40" << endl; + } + + cout << 0.0 << " " << 0.0 << " " << " 0" << endl; + } + cout << 0.0 << " " << 0.0 << " " << " 0" << endl; +} + +void AccumulatorCube::printAccumulator() { + + //double norm[3]; + //double polar[3]; +// double *result; + + double **result; + result = new double*[4]; + result[0] = new double[3]; + result[1] = new double[3]; + result[2] = new double[3]; + result[3] = new double[3]; + + //buffer_point bp; + + /* + for(double o = -0.9; o < 1.0; o+=0.1) { + for(double p = -0.9; p < 1.0; p+=0.1) { + norm[2] = o; + norm[1] = p; + norm[0] = 1.0; + toPolar(norm, polar); + + bp = coords_s2_to_cell(norm, nrCells); + result = coords_cube_to_s2(bp, nrCells); + toPolar(result, polar); + + cout << polar[0] << " " << polar[1] << " " << 40 << endl; + //if(fabs(polar[1]) < 0.0001) + // cout << "STOP" << "-1.0 " << p << " " << o << endl; + delete[] result; + } + } + */ + + /* + norm[0] = 1.0; + norm[1] = 0.0; + norm[2] = 0.0; + toPolar(norm, polar); + cout << polar[0] << " " << polar[1] << endl; + bp = coords_s2_to_cell(norm, nrCells); + result = coords_cube_to_s2(bp, nrCells); + toPolar(result, polar); + cout << polar[0] << " " << polar[1] << endl << endl << endl; + delete[] result; + + norm[0] = -1.0; + norm[1] = 0.0; + norm[2] = 0.0; + + toPolar(norm, polar); + cout << polar[0] << " " << polar[1] << endl; + bp = coords_s2_to_cell(norm, nrCells); + result = coords_cube_to_s2(bp, nrCells); + toPolar(result, polar); + cout << polar[0] << " " << polar[1] << endl; + cout << endl << endl; + delete[] result; + + norm[0] = 0.0; + norm[1] = 1.0; + norm[2] = 0.0; + toPolar(norm, polar); + cout << polar[0] << " " << polar[1] << endl; + bp = coords_s2_to_cell(norm, nrCells); + result = coords_cube_to_s2(bp, nrCells); + toPolar(result, polar); + cout << polar[0] << " " << polar[1] << endl; + cout << endl << endl; + delete[] result; + + norm[0] = 0.0; + norm[1] = -1.0; + norm[2] = 0.0; + toPolar(norm, polar); + cout << polar[0] << " " << polar[1] << endl; + bp = coords_s2_to_cell(norm, nrCells); + result = coords_cube_to_s2(bp, nrCells); + toPolar(result, polar); + cout << polar[0] << " " << polar[1] << endl; + cout << endl << endl; + delete[] result; + + norm[0] = 0.0; + norm[1] = 0.0; + norm[2] = 1.0; + toPolar(norm, polar); + cout << polar[0] << " " << polar[1] << endl; + bp = coords_s2_to_cell(norm, nrCells); + result = coords_cube_to_s2(bp, nrCells); + toPolar(result, polar); + cout << polar[0] << " " << polar[1] << endl; + cout << endl << endl; + delete[] result; + + norm[0] = 0.0; + norm[1] = 0.0; + norm[2] = -1.0; + toPolar(norm, polar); + cout << polar[0] << " " << polar[1] << endl; + bp = coords_s2_to_cell(norm, nrCells); + result = coords_cube_to_s2(bp, nrCells); + toPolar(result, polar); + cout << polar[0] << " " << polar[1] << endl; + cout << endl << endl; + delete[] result; +*//* + norm[0] = 0.0; + norm[1] = 0.0; + norm[2] = -1.0; + toPolar(norm, polar); + cout << polar[0] << " " << polar[1] << endl; + bp = coords_s2_to_cell(norm, nrCells); + + int i = bp.face - 1; + int j = bp.i; + int k = bp.j; + */ + for(int i = 0; i < 6; i+=1) { + cout << 0.0 << " " << 0.0 << " " << 0 << " 0" << endl; + //for(int j = 1; j j <= nrCells j+= (nrCells-1)) { + for(int j = 1; j <= nrCells; j++) { + //cout << endl; + //for(int k = 1; j k <= nrCells k+= (nrCells-1)) { + for(int k = 1; k <= nrCells; k++) { + //cout << endl; + int rhosum = 0; + for(unsigned int l = 0; l < myConfigFileHough.Get_RhoNum(); l++) { + rhosum += accumulator[i][j-1][k-1][l]; + } + buffer_point bptmp; + bptmp.face = i + 1; + bptmp.i = j; + bptmp.j = k; + + coords_cube_for_print(bptmp, result, nrCells); + //double* tmp = coords_cube_to_s2(bptmp, nrCells); + double polar1[3]; + double polar2[3]; + double polar3[3]; + double polar4[3]; + //toPolar(tmp, polar1); + + Normalize3(result[0]); + Normalize3(result[1]); + Normalize3(result[2]); + Normalize3(result[3]); + /* + cout << result[0][0] << " " << result[0][1] << " " << result[0][2] << endl; + cout << result[1][0] << " " << result[1][1] << " " << result[1][2] << endl; + cout << result[2][0] << " " << result[2][1] << " " << result[2][2] << endl; + cout << result[3][0] << " " << result[3][1] << " " << result[3][2] << endl; + cout << result[0][0] << " " << result[0][1] << " " << result[0][2] << endl; + */ + toPolar(result[0], polar1); + toPolar(result[1], polar2); + toPolar(result[2], polar3); + toPolar(result[3], polar4); + double phi1 = polar1[0]; + double theta1 = polar1[1]; + double phi2 = polar2[0]; + double theta2 = polar2[1]; + double phi3 = polar3[0]; + double theta3 = polar3[1]; + double phi4 = polar4[0]; + double theta4 = polar4[1]; + + /* + cout << phi - 0.02 << " " << theta - 0.02 << " " << rhosum << endl; + cout << phi + 0.02 << " " << theta - 0.02 << " " << rhosum << endl; + cout << phi + 0.02 << " " << theta + 0.02 << " " << rhosum << endl; + cout << phi - 0.02 << " " << theta + 0.02 << " " << rhosum << endl; + */ + + /* + cout << (j+1+i*nrCells) << " " << k+1 << " " << rhosum << endl; + cout << (j+1+i*nrCells) << " " << k << " " << rhosum << endl; + cout << (j+i*nrCells) << " " << k << " " << rhosum << endl; + cout << (j+i*nrCells) << " " << k+1 << " " << rhosum << endl; + */ + /* + cout << phi1 << " " << theta2 << " " << rhosum << " 40" << endl; + cout << phi1 << " " << theta1 << " " << rhosum << " 40" << endl; + cout << phi2 << " " << theta1 << " " << rhosum << " 40" << endl; + cout << phi2 << " " << theta2 << " " << rhosum << " 40" << endl; + cout << phi1 << " " << theta2 << " " << rhosum << " 40" << endl; + */ + + if(phi1 < M_PI/nrCells && fabs(phi1-phi2) < 0.001 && fabs(phi1-phi3) < 0.001 && fabs(phi1 - phi4) < 0.001) { + //if(phi1 < M_PI/nrCells && phi2 < M_PI/nrCells && phi3 < M_PI/nrCells && phi4 < M_PI/nrCells) { + cout << phi1 << " " << 2*M_PI << " " << rhosum << " 40" << endl; + cout << 0.0 << " " << 2*M_PI << " " << rhosum << " 40" << endl; + cout << 0.0 << " " << 0.0 << " " << rhosum << " 40" << endl; + cout << phi1 << " " << 0.0 << " " << rhosum << " 40" << endl; + //cout << phi1 << " " << 2*M_PI << " " << rhosum << " 40" << endl; + + cout << endl; + //cout << endl; + + } //else if(M_PI - phi1 < M_PI/nrCells && M_PI - phi2 < M_PI/nrCells && M_PI - phi3 < M_PI/nrCells && M_PI - phi4 < M_PI/nrCells){ + else if(M_PI - phi1 < M_PI/nrCells && fabs(phi1-phi2) < 0.001 && fabs(phi1-phi3) < 0.001 && fabs(phi1 - phi4) < 0.001) { + cout << phi1 << " " << 0.0 << " " << rhosum << " 40" << endl; + cout << phi2 << " " << 2*M_PI << " " << rhosum << " 40" << endl; + cout << M_PI << " " << 2*M_PI << " " << rhosum << " 40" << endl; + cout << M_PI << " " << 0.0 << " " << rhosum << " 40" << endl; + //cout << phi1 << " " << 0.0 << " " << rhosum << " 40" << endl; + cout << endl; + //<< endl; + + + } else if(fabs(phi1 - phi2) < 2.0 && fabs(theta2 - theta3) < 3.0 && fabs(theta4 - theta3) < 3.0) { + cout << phi1 << " " << theta1 << " " << rhosum << " 40" << endl; + cout << phi2 << " " << theta2 << " " << rhosum << " 40" << endl; + cout << phi3 << " " << theta3 << " " << rhosum << " 40" << endl; + cout << phi4 << " " << theta4 << " " << rhosum << " 40" << endl; + //cout << phi1 << " " << theta1 << " " << rhosum << " 40" << endl; + + //cout << endl; + cout << endl; + } else if(fabs(phi1 - phi2) < 2.0) { + if(fabs(theta2 - theta3) < 3.0) { + if(theta3 < 1.0) { + cout << phi1 << " " << 0.0 << " " << rhosum << " 40" << endl; + cout << phi2 << " " << theta2 << " " << rhosum << " 40" << endl; + cout << phi3 << " " << theta3 << " " << rhosum << " 40" << endl; + cout << phi4 << " " << 0.0 << " " << rhosum << " 40" << endl; + // cout << phi1 << " " << 0.0 << " " << rhosum << " 40" << endl; + + // cout << endl; + cout << endl; + + cout << phi1 << " " << theta1 << " " << rhosum << " 40" << endl; + cout << phi2 << " " << 2*M_PI << " " << rhosum << " 40" << endl; + cout << phi3 << " " << 2*M_PI << " " << rhosum << " 40" << endl; + cout << phi4 << " " << theta4 << " " << rhosum << " 40" << endl; + // cout << phi1 << " " << theta1 << " " << rhosum << " 40" << endl; + + //cout << endl; + cout << endl; + } else { + cout << phi1 << " " << 2*M_PI << " " << rhosum << " 40" << endl; + cout << phi2 << " " << theta2 << " " << rhosum << " 40" << endl; + cout << phi3 << " " << theta3 << " " << rhosum << " 40" << endl; + cout << phi4 << " " << 2*M_PI << " " << rhosum << " 40" << endl; + // cout << phi1 << " " << 2*M_PI << " " << rhosum << " 40" << endl; + + // cout << endl; + cout << endl; + + cout << phi1 << " " << theta1 << " " << rhosum << " 40" << endl; + cout << phi2 << " " << 0.0 << " " << rhosum << " 40" << endl; + cout << phi3 << " " << 0.0 << " " << rhosum << " 40" << endl; + cout << phi4 << " " << theta4 << " " << rhosum << " 40" << endl; + // cout << phi1 << " " << theta1 << " " << rhosum << " 40" << endl; + + // cout << endl; + cout << endl; + + } + } else if(theta3 < 1.0) { + cout << phi1 << " " << 0.0 << " " << rhosum << " 40" << endl; + cout << phi2 << " " << 0.0 << " " << rhosum << " 40" << endl; + cout << phi3 << " " << theta3 << " " << rhosum << " 40" << endl; + cout << phi4 << " " << theta4 << " " << rhosum << " 40" << endl; + // cout << phi1 << " " << 0.0 << " " << rhosum << " 40" << endl; + + // cout << endl; + cout << endl; + + cout << phi1 << " " << theta1 << " " << rhosum << " 40" << endl; + cout << phi2 << " " << theta2 << " " << rhosum << " 40" << endl; + cout << phi3 << " " << 2*M_PI << " " << rhosum << " 40" << endl; + cout << phi4 << " " << 2*M_PI << " " << rhosum << " 40" << endl; + // cout << phi1 << " " << theta1 << " " << rhosum << " 40" << endl; + + // cout << endl; + cout << endl; + } else { + cout << phi1 << " " << 2*M_PI << " " << rhosum << " 40" << endl; + cout << phi2 << " " << 2*M_PI << " " << rhosum << " 40" << endl; + cout << phi3 << " " << theta3 << " " << rhosum << " 40" << endl; + cout << phi4 << " " << theta4 << " " << rhosum << " 40" << endl; + // cout << phi1 << " " << 2*M_PI << " " << rhosum << " 40" << endl; + + // cout << endl; + cout << endl; + + cout << phi1 << " " << theta1 << " " << rhosum << " 40" << endl; + cout << phi2 << " " << theta2 << " " << rhosum << " 40" << endl; + cout << phi3 << " " << 0.0 << " " << rhosum << " 40" << endl; + cout << phi4 << " " << 0.0 << " " << rhosum << " 40" << endl; + // cout << phi1 << " " << theta1 << " " << rhosum << " 40" << endl; + + // cout << endl; + cout << endl; + + } + } else if(phi1 < 1.0) { + cout << phi1 << " " << theta1 << " " << rhosum << " 40" << endl; + cout << 0.0 << " " << theta2 << " " << rhosum << " 40" << endl; + cout << 0.0 << " " << theta3 << " " << rhosum << " 40" << endl; + cout << phi4 << " " << theta4 << " " << rhosum << " 40" << endl; + // cout << phi1 << " " << theta1 << " " << rhosum << " 40" << endl; + + // cout << endl; + cout << endl; + + cout << M_PI << " " << theta1 << " " << rhosum << " 40" << endl; + cout << phi2 << " " << theta2 << " " << rhosum << " 40" << endl; + cout << phi3 << " " << theta3 << " " << rhosum << " 40" << endl; + cout << M_PI << " " << theta4 << " " << rhosum << " 40" << endl; + // cout << M_PI << " " << theta1 << " " << rhosum << " 40" << endl; + + // cout << endl; + cout << endl; + + + } else { + cout << phi1 << " " << theta1 << " " << rhosum << " 40" << endl; + cout << M_PI << " " << theta2 << " " << rhosum << " 40" << endl; + cout << M_PI << " " << theta3 << " " << rhosum << " 40" << endl; + cout << phi4 << " " << theta4 << " " << rhosum << " 40" << endl; + // cout << phi1 << " " << theta1 << " " << rhosum << " 40" << endl; + + // cout << endl; + cout << endl; + + cout << 0.0 << " " << theta1 << " " << rhosum << " 40" << endl; + cout << phi2 << " " << theta2 << " " << rhosum << " 40" << endl; + cout << phi3 << " " << theta3 << " " << rhosum << " 40" << endl; + cout << 0.0 << " " << theta4 << " " << rhosum << " 40" << endl; + // cout << 0.0 << " " << theta1 << " " << rhosum << " 40" << endl; + + // cout << endl; + cout << endl; + } + + // cout << endl; + // cout << endl; + //delete[] tmp; + + } + } + cout << endl; + } + + for(int i = 0; i < 3; i++) { + delete[] result[i]; + } + delete[] result; + +} + +void AccumulatorCube::resetAccumulator() { + count = 0; + for(int i = 0; i < 6; i++) { + for(int j = 0; j < nrCells; j++) { + for(int k = 0; k < nrCells; k++) { + for(unsigned int l = 0; l < myConfigFileHough.Get_RhoNum(); l++) { + accumulator[i][j][k][l] = 0; + } + } + } + } +} + +bool AccumulatorCube::accumulate(double theta, double phi, double rho) { + count++; + double n[3]; + n[0] = cos(theta)*sin(phi); + n[1] = sin(theta)*sin(phi); + n[2] = cos(phi); + + buffer_point bp = coords_s2_to_cell(n, nrCells); + + int rhoindex = myConfigFileHough.Get_RhoNum() - 1; + + if(rho < myConfigFileHough.Get_RhoMax()) { + rhoindex = (int)(rho*((double)myConfigFileHough.Get_RhoNum()/(double)myConfigFileHough.Get_RhoMax())); + } + + accumulator[bp.face - 1][bp.i - 1][bp.j - 1][rhoindex]++; + lastbp = bp; + + return accumulator[bp.face - 1][bp.i - 1][bp.j - 1][rhoindex] > (int)myConfigFileHough.Get_AccumulatorMax(); +} + +double* AccumulatorCube::getMax(double &rho, double &theta, double &phi) { + int rhoindex = myConfigFileHough.Get_RhoNum() - 1; + + if(rho < myConfigFileHough.Get_RhoMax()) { + rhoindex = (int)(rho*((double)myConfigFileHough.Get_RhoNum()/(double)myConfigFileHough.Get_RhoMax())); + } + + double* result; + result = coords_cube_to_s2(lastbp, nrCells); + //cout << "N: " << result[0] << " " << result[1] << " " << result[2] << endl; + return result; +} + +void AccumulatorCube::accumulate(Point p) { + for(int i = 0; i < 6; i++) { + for(int j = 1; j <= nrCells; j++) { + for(int k = 1; k <= nrCells; k++) { + buffer_point bptmp; + bptmp.face = i + 1; + bptmp.i = j; + bptmp.j = k; + + double* n = coords_cube_to_s2(bptmp, nrCells); + Normalize3(n); + for(unsigned int l = 0; l < myConfigFileHough.Get_RhoNum(); l++) { + double rho = (l + 0.5) * myConfigFileHough.Get_RhoMax() / myConfigFileHough.Get_RhoNum(); + double distance = p.x * n[0] + p.y * n[1] + p.z * n[2]; + if(fabs(distance-rho) < myConfigFileHough.Get_MaxPointPlaneDist()) { + accumulator[i][j-1][k-1][l]++; + } + + } + delete[] n; + } + } + } +} + +double* AccumulatorCube::accumulateRet(Point p) { + // rho theta phi + count++; + double * angles = new double[3]; + for(int i = 0; i < 6; i++) { + for(int j = 1; j <= nrCells; j++) { + for(int k = 1; k <= nrCells; k++) { + buffer_point bptmp; + bptmp.face = i + 1; + bptmp.i = j; + bptmp.j = k; + + double* n = coords_cube_to_s2(bptmp, nrCells); + Normalize3(n); + for(unsigned int l = 0; l < myConfigFileHough.Get_RhoNum(); l++) { + double rho = (l + 0.5) * myConfigFileHough.Get_RhoMax() / myConfigFileHough.Get_RhoNum(); + double distance = p.x * n[0] + p.y * n[1] + p.z * n[2]; + if(fabs(distance-rho) < myConfigFileHough.Get_MaxPointPlaneDist()) { + accumulator[i][j-1][k-1][l]++; + if(((unsigned int)accumulator[i][j-1][k-1][l] > myConfigFileHough.Get_AccumulatorMax() + && (unsigned int)accumulator[i][j-1][k-1][l] > + count*myConfigFileHough.Get_PlaneRatio()) || + (unsigned int)accumulator[i][j-1][k-1][l] > 10*myConfigFileHough.Get_AccumulatorMax() + ) { + double polar[3]; + toPolar(n, polar); + angles[0] = rho; + angles[1] = polar[1]; + angles[2] = polar[0]; + return angles; + } + } + + } + delete[] n; + } + } + } + angles[0] = -1.0; + return angles; +} + +int* AccumulatorCube::accumulateAPHT(Point p) { + // rho theta phi + int tmpMax = 0; + int * angles = new int[4]; + for(int i = 0; i < 6; i++) { + for(int j = 1; j <= nrCells; j++) { + for(int k = 1; k <= nrCells; k++) { + buffer_point bptmp; + bptmp.face = i + 1; + bptmp.i = j; + bptmp.j = k; + + double* n = coords_cube_to_s2(bptmp, nrCells); + Normalize3(n); + for(unsigned int l = 0; l < myConfigFileHough.Get_RhoNum(); l++) { + double rho = (l + 0.5) * myConfigFileHough.Get_RhoMax() / myConfigFileHough.Get_RhoNum(); + double distance = p.x * n[0] + p.y * n[1] + p.z * n[2]; + if(fabs(distance-rho) < myConfigFileHough.Get_MaxPointPlaneDist()) { + accumulator[i][j-1][k-1][l]++; + if(accumulator[i][j-1][k-1][l] > tmpMax) { + angles[0] = l; + angles[1] = i; + angles[2] = j; + angles[3] = k; + tmpMax = accumulator[i][j-1][k-1][l]; + } + } + + } + delete[] n; + } + } + } + return angles; +} + +double* AccumulatorCube::getMax(int* cell) { + buffer_point bp; + bp.face = cell[2] + 1; + bp.i = cell[3] + 1; + bp.j = cell[4] + 1; + + + double rho = (cell[1] + 0.5) * + (double)myConfigFileHough.Get_RhoMax()/(double)myConfigFileHough.Get_RhoNum(); + double* polar = coords_cube_to_s2(bp, nrCells); + double* polar2 = new double[4]; + for(int i = 0; i < 3; i++) { + polar2[i] = polar[i]; + } + delete[] polar; + polar2[3] = rho; + return polar2; +} + +//void AccumulatorCube::getMax() { +multiset* AccumulatorCube::getMax() { + multiset* maxlist = new multiset(); + for(int i = 0; i < 6; i++) { + for(int j = 0; j < nrCells; j++) { + for(int k = 0; k < nrCells; k++) { + for(unsigned int l = 0; l < myConfigFileHough.Get_RhoNum(); l++) { + int* tmp = new int[5]; + tmp[0] = accumulator[i][j][k][l]; + tmp[1] = l; + tmp[2] = i; + tmp[3] = j; + tmp[4] = k; + maxlist->insert(tmp); + } + } + } + } + return maxlist; +} + +void AccumulatorCube::peakWindow(int size) { + for(int i = 0; i < 6; i++) { + for(int j = 0; j < nrCells - size; j++) { + for(int k = 0; k < nrCells - size; k++) { + for(unsigned int l = 0; l < myConfigFileHough.Get_RhoNum() - size; l++) { + int max = 0; + for(int ji = j; ji < j + size; ji++) { + for(int ki = k; ki < k + size; ki++) { + for(unsigned int li = l; li < l + size; li++) { + if(accumulator[i][ji][ki][li] > max) { + max = accumulator[i][ji][ki][li]; + } + } + } + } + for(int ji = j; ji < j + size; ji++) { + for(int ki = k; ki < k + size; ki++) { + for(unsigned int li = l; li < l + size; li++) { + if(accumulator[i][ji][ki][li] < max) { + accumulator[i][ji][ki][li] = 0; + } + } + } + } + } + } + } + } +} + + +/*** HERE BEGINS THE ACCUMULATORBALL IMPROVED ***/ + +AccumulatorBallI::AccumulatorBallI(ConfigFileHough myCfg) { + count = 0; + int countCells = 0; + myConfigFileHough = myCfg; + + int counter = 0; + ballNr = new int[myConfigFileHough.Get_PhiNum()]; + step = 180.0/myConfigFileHough.Get_PhiNum(); + + //double MAX_A = M_PI * (2 * fabs(0 - cos(rad(90- step))) + sin(rad(90 - step)) * sin(rad(90 - step)) + 1 * 1); + + double h_0 = cos(rad(90 - step)); + double MAX_A = (2.0 * M_PI * h_0) / myConfigFileHough.Get_ThetaNum(); + double h_top = MAX_A /(2.0 * M_PI); + phi_top_rad = acos(1 - h_top); + phi_top_deg = deg(phi_top_rad); + step = (180.0 - 2.0 * phi_top_deg) / (double)(myConfigFileHough.Get_PhiNum() - 2.0); + + double phi; + ballNr[counter] = 1; + ballNr[myConfigFileHough.Get_PhiNum() - 1 - counter] = 1; + counter++; + + for(phi = phi_top_deg; phi < 90; phi+=step) { + double h_i = cos(rad(phi)) - cos(rad(phi + step)); + double a_i = 2 * M_PI * h_i; + ballNr[counter] = a_i / MAX_A; + ballNr[myConfigFileHough.Get_PhiNum() - 1 - counter] = a_i / MAX_A; + //cout << counter << " " << ballNr[counter] << " " << a_i << " " << MAX_A << endl; + //cout << myConfigFileHough.Get_PhiNum() - 1 - counter << " " << ballNr[myConfigFileHough.Get_PhiNum() - 1 - counter] << " " << a_i << " " << MAX_A << endl; + counter++; + } + /* + for(int i = 0; i < myConfigFileHough.Get_PhiNum(); i++) { + cout << i << ": " << ballNr[i] << endl; + } + cout << "BallNR erzeugt" << endl; + */ + + accumulator = new int**[myConfigFileHough.Get_RhoNum()]; + + for(unsigned int i = 0; i < myConfigFileHough.Get_RhoNum(); i++) { + accumulator[i] = new int*[myConfigFileHough.Get_PhiNum()]; + for(unsigned int j = 0; j < myConfigFileHough.Get_PhiNum(); j++) { + accumulator[i][j] = new int[ballNr[j]]; + for(int k = 0; k < ballNr[j]; k++) { + accumulator[i][j][k] = 0; + countCells++; + } + } + } + cout << "CountCells " << countCells << endl; +} + +AccumulatorBallI::~AccumulatorBallI() { + + for(unsigned int i = 0; i < myConfigFileHough.Get_RhoNum(); i++) { + for(unsigned int j = 0; j < myConfigFileHough.Get_PhiNum(); j++) { + delete[] accumulator[i][j]; + } + delete[] accumulator[i]; + + } + delete[] accumulator; + delete[] ballNr; + +} + +void AccumulatorBallI::printAccumulator() { +//TODO + int sum = 0; + for(unsigned int i = 0; i < myConfigFileHough.Get_PhiNum(); i++) { + sum += ballNr[i]; + } + //cout << "Wir haben " << sum << "Zellen!" << endl; + for(unsigned int i = 0; i < myConfigFileHough.Get_PhiNum(); i++) { + for(int j = 0; j < ballNr[i]; j++) { + double phi1 = i * M_PI / (myConfigFileHough.Get_PhiNum()*0.99999999); + double phi2 = (i+1) * M_PI / (myConfigFileHough.Get_PhiNum()*0.999999999); + double theta1 = j * 2*M_PI / ballNr[i]; + double theta2 = (j+1) * 2*M_PI / ballNr[i]; + if(theta2 > 2*M_PI) theta2 = 2*M_PI; + if(phi2 > M_PI) { + phi2 = M_PI; + } + int rhosum = 0; + /* + for(int k = 0; k < myConfigFileHough.Get_RhoNum(); k++) { + rhosum += accumulator[k][i][j]; + } + */ + rhosum = accumulator[33][i][j]; + cout << phi1 << " " << theta1 << " " << rhosum << " 40" << endl; + cout << phi2 << " " << theta1 << " " << rhosum << " 40" << endl; + cout << phi2 << " " << theta2 << " " << rhosum << " 40" << endl; + cout << phi1 << " " << theta2 << " " << rhosum << " 40" << endl; + cout << endl; + } + + //cout << endl; + } +} + +void AccumulatorBallI::resetAccumulator() { + +//TODO + count = 0; + for(unsigned int i = 0; i < myConfigFileHough.Get_RhoNum(); i++) { + for(unsigned int j = 0; j < myConfigFileHough.Get_PhiNum(); j++) { + int bNr = ballNr[j]; + for(int k = 0; k < bNr; k++) { + accumulator[i][j][k] = 0; + } + } + } +} + +bool AccumulatorBallI::accumulate(double theta, double phi, double rho) { +//TODO + count++; + int rhoindex = myConfigFileHough.Get_RhoNum() - 1; + + if(rho < myConfigFileHough.Get_RhoMax()) { + rhoindex = (int)((rho*(double)myConfigFileHough.Get_RhoNum()/(double)myConfigFileHough.Get_RhoMax())); + } + + int phiindex = (int)(phi*(((double)myConfigFileHough.Get_PhiNum()*0.9999999999)/(M_PI))); + int bNr = ballNr[phiindex]; + int thetaindex = (int)(theta*((bNr*0.9999999999)/(2*M_PI))); + if(thetaindex >= bNr) { + cout << "duet"; + } + //thetaindex = thetaindex % ballNr[phiindex]; + accumulator[rhoindex][phiindex][thetaindex]++; + return ((unsigned int)accumulator[rhoindex][phiindex][thetaindex] >= myConfigFileHough.Get_AccumulatorMax()); +} + +void AccumulatorBallI::accumulate(Point p) { + for(unsigned int i = 0; i < myConfigFileHough.Get_PhiNum(); i++) { + double phi = phi_top_rad + (i-0.5) * rad(step); + for(int j = 0; j < ballNr[i]; j++) { + double theta = (j+0.5) * 2*M_PI / ballNr[i]; + if(theta > 2*M_PI) theta = 2*M_PI; + if(phi > M_PI) { + phi = M_PI; + } + double n[3]; + if(i == 0) { + n[0] = 0.0; + n[1] = 0.0; + n[2] = 1.0; + } else if (i == myConfigFileHough.Get_RhoNum() - 1) { + n[0] = 0.0; + n[1] = 0.0; + n[2] = -1.0; + } else { + n[0] = cos(theta)*sin(phi); + n[1] = sin(theta)*sin(phi); + n[2] = cos(phi); + Normalize3(n); + } + for(unsigned int k = 0; k < myConfigFileHough.Get_RhoNum(); k++) { + double rho = (k + 0.5) * (double)myConfigFileHough.Get_RhoMax() / (double)myConfigFileHough.Get_RhoNum(); + double distance = p.x * n[0] + p.y * n[1] + p.z * n[2]; + if(fabs(distance-rho) < myConfigFileHough.Get_MaxPointPlaneDist()) { + accumulator[k][i][j]++; + } + + } + } + } + +} +double* AccumulatorBallI::accumulateRet(Point p) { + count++; +//TODO + // rho theta phi + double* angles = new double[3]; + for(unsigned int i = 0; i < myConfigFileHough.Get_PhiNum(); i++) { + double phi = (i+0.5) * M_PI / (myConfigFileHough.Get_PhiNum()*0.999999999); + for(int j = 0; j < ballNr[i]; j++) { + double theta = (j+0.5) * 2*M_PI / ballNr[i]; + if(theta > 2*M_PI) theta = 2*M_PI; + if(phi > M_PI) { + phi = M_PI; + } + double n[3]; + n[0] = cos(theta)*sin(phi); + n[1] = sin(theta)*sin(phi); + n[2] = cos(phi); + Normalize3(n); + for(unsigned int k = 0; k < myConfigFileHough.Get_RhoNum(); k++) { + double rho = (k + 0.5) * myConfigFileHough.Get_RhoMax() / myConfigFileHough.Get_RhoNum(); + double distance = p.x * n[0] + p.y * n[1] + p.z * n[2]; + if(fabs(distance-rho) < myConfigFileHough.Get_MaxPointPlaneDist()) { + accumulator[k][i][j]++; + if(((unsigned int)accumulator[k][i][j] > + myConfigFileHough.Get_AccumulatorMax() && (unsigned + int)accumulator[k][i][j] > count*myConfigFileHough.Get_PlaneRatio()) + || (unsigned int)accumulator[k][i][j] > 10*myConfigFileHough.Get_AccumulatorMax() ) { + angles[0] = rho; + angles[1] = theta; + angles[2] = phi; + return angles; + } + } + + } + } + } + angles[0] = -1; + return angles; +} + +int* AccumulatorBallI::accumulateAPHT(Point p) { + +//TODO + // rho theta phi + int tmpMax = 0; + int* angles = new int[4]; + for(unsigned int i = 0; i < myConfigFileHough.Get_PhiNum(); i++) { + double phi = (i+0.5) * M_PI / (myConfigFileHough.Get_PhiNum()*0.9999999); + for(int j = 0; j < ballNr[i]; j++) { + double theta = (j+0.5) * 2*M_PI / ballNr[i]; + if(theta > 2*M_PI) theta = 2*M_PI; + if(phi > M_PI) { + phi = M_PI; + } + double n[3]; + n[0] = cos(theta)*sin(phi); + n[1] = sin(theta)*sin(phi); + n[2] = cos(phi); + Normalize3(n); + for(unsigned int k = 0; k < myConfigFileHough.Get_RhoNum(); k++) { + double rho = (k + 0.5) * myConfigFileHough.Get_RhoMax() / myConfigFileHough.Get_RhoNum(); + double distance = p.x * n[0] + p.y * n[1] + p.z * n[2]; + if(fabs(distance-rho) < myConfigFileHough.Get_MaxPointPlaneDist()) { + accumulator[k][i][j]++; + if(accumulator[k][i][j] > tmpMax) { + angles[1] = k; + angles[2] = j; + angles[3] = i; + angles[0] = tmpMax = accumulator[k][i][j]; + } + } + + } + } + } + return angles; +} + +double* AccumulatorBallI::getMax(double &rho, double &theta, double &phi) { +//TODO was?? + + unsigned int rhoindex = myConfigFileHough.Get_RhoNum() - 1; + + if(rho < myConfigFileHough.Get_RhoMax()) { + rhoindex = + (int)(rho*((double)myConfigFileHough.Get_RhoNum()/(double)myConfigFileHough.Get_RhoMax())); + } + + unsigned int phiindex = (int)(phi*(((double)myConfigFileHough.Get_PhiNum())/(M_PI))); + if(phiindex == myConfigFileHough.Get_PhiNum()) phiindex--; + int bNr = ballNr[phiindex]; + int thetaindex = (int)(theta*((bNr + 1)/(2*M_PI))); + thetaindex = thetaindex % bNr; + + phi = (0.5 + phiindex) * (double)(M_PI / (double)myConfigFileHough.Get_PhiNum()); + theta = (0.5 + thetaindex) * (double)(2.0 * M_PI / bNr); + rho = (rhoindex + 0.5) * (double)myConfigFileHough.Get_RhoMax()/(double)myConfigFileHough.Get_RhoNum(); + return polar2normal(theta, phi); +} +double* AccumulatorBallI::getMax(int* cell) { + double * polar; + if(cell[3] == 0) { + polar = new double[4]; + polar[0] = 0.0; + polar[1] = 0.0; + polar[2] = 1.0; + } else if((unsigned int)cell[3] == myConfigFileHough.Get_PhiNum() - 1) { + polar = new double[4]; + polar[0] = 0.0; + polar[1] = 0.0; + polar[2] = -1.0; + } else { + double phi = phi_top_rad + (-0.5 + cell[3]) * rad(step); + double bNr = ballNr[cell[3]]; + double theta = (0.5 + cell[2]) * (double)(2.0 * M_PI / bNr); + polar = polar2normal(theta, phi); + } + + double rho = (cell[1] + 0.5) * + (double)myConfigFileHough.Get_RhoMax()/(double)myConfigFileHough.Get_RhoNum(); + if(isnan(polar[0])) { + cout << cell[1] << " " << cell[2] << " " << cell[3] << endl; + //cout << theta <<" bla " << phi << endl; + } + polar[3] = rho; + return polar; +} + +multiset* AccumulatorBallI::getMax() { +//void AccumulatorBallI::getMax() { + multiset* maxlist = new multiset(); + //for(unsigned int i = 0; i < 1; i++) { + for(unsigned int i = 0; i < myConfigFileHough.Get_RhoNum(); i++) { + for(unsigned int j = 0; j < myConfigFileHough.Get_PhiNum(); j++) { + int bNr = ballNr[j]; + for(int k = 0; k < bNr; k++) { + int * tmp = new int[4]; + tmp[0] = accumulator[i][j][k]; + tmp[1] = i; + tmp[2] = k; + tmp[3] = j; + maxlist->insert(tmp); + double * polar; + double phi; + double theta = 0.0; + if(tmp[3] == 0) { + polar = new double[4]; + polar[0] = 0.0; + polar[1] = 0.0; + polar[2] = 1.0; + phi = 0; + } else if((unsigned int)tmp[3] == myConfigFileHough.Get_PhiNum() - 1) { + polar = new double[4]; + polar[0] = 0.0; + polar[1] = 0.0; + polar[2] = -1.0; + phi = M_PI; + } else { + phi = phi_top_rad + (-0.5 + tmp[3]) * rad(step); + int bNr = ballNr[tmp[3]]; + theta = (0.5 + tmp[2]) * (double)(2.0 * M_PI / (double)bNr); + polar = polar2normal(theta, phi); + } + //cout << polar[0] << " " << polar[1] << " " << polar[2] << " " << phi << " " << theta << endl; + } + } + } + cout << "Maxlist Size:" << maxlist->size() << endl; + return maxlist; +} +void AccumulatorBallI::peakWindow(int size) { + //cout << "Wir haben " << sum << "Zellen!" << endl; + for(unsigned int i = 0; i < myConfigFileHough.Get_PhiNum() - size; i++) { + //cout << "Peak " << i << endl; + for(int j = 0; j < ballNr[i] - size; j++) { + + for(unsigned int k = 0; k < myConfigFileHough.Get_RhoNum() - size; k++) { + int max = 0; + for(unsigned int ii = i; (ii < (i + size)) && (ii < myConfigFileHough.Get_PhiNum()); ii++) { + for(int ji = j; (ji < (j + size)) && (ji < ballNr[ii]); ji++) { + for(unsigned int ki = k; (ki < (k + size)) && (ki < myConfigFileHough.Get_RhoNum()); ki++) { + if(accumulator[ki][ii][ji] > max) { + max = accumulator[ki][ii][ji]; + } + } + } + } + for(unsigned int ii = i; ii < i + size && ii < myConfigFileHough.Get_PhiNum(); ii++) { + for(int ji = j; ji < j + size && ji < ballNr[ii]; ji++) { + for(unsigned int ki = k; ki < k + size && ki < myConfigFileHough.Get_RhoNum(); ki++) { + if(accumulator[ki][ii][ji] < max) { + accumulator[ki][ii][ji] = 0; + } + } + } + } + } + } + } +} + diff --git a/src/shapes/convexplane.cc b/src/shapes/convexplane.cc new file mode 100644 index 0000000..8cbfaf5 --- /dev/null +++ b/src/shapes/convexplane.cc @@ -0,0 +1,411 @@ +/* + * convexplane implementation + * + * Copyright (C) Dorit Borrmann, Remus Dumitru, Andreas Nuechter + * + * Released under the GPL version 3. + * + */ + +#include "shapes/convexplane.h" +#include "slam6d/globals.icc" +using std::string; +using std::ofstream; + +/** + * Checks the position of a point with respect to the line given by two points. + * @param start starting point of the line + * @param end end point of the line + * @param point point to be checked + * @return true if the point is left of the line or on the line and further away + * from the start point. + */ + +bool ConvexPlane::furtherleft(double * start, double * point, double * end) { + double tmp = (end[0] - start[0])*(point[1] - start[1]) - (point[0] - start[0])*(end[1] - start[1]); + if(fabs(tmp) < 0.0000000001) { + double l1 = (point[0] - start[0])*(point[0] - start[0]) + + (point[1] - start[1])*(point[1] - start[1]); + double l2 = (end[0] - start[0])*(end[0] - start[0]) + + (end[1] - start[1])*(end[1] - start[1]); + return (l1 > l2); + } else if(tmp < 0) { + return false; + + } else { + return true; + } + exit(0); +} + +/** + * Calculates the convex hull of a 2d point set using the Jarvis March + * algorithm. + * + * 1. Find the point that is furthest left in the point set. + * 2. Continue to select points such that the remaining point cloud always + * stays on the right sight of that line spanned by the last point and the new + * point. + * 3. Stop when all remaining points are to the right of the line from the last + * point to the starting point. + */ +void ConvexPlane::JarvisMarchConvexHull(list &points, vector &convex_hull) { + //pointOnHull = leftmost point in S + list::iterator itr = points.begin(); + list::iterator end = itr; + while(itr != points.end()) { + if((*end)[0] > (*itr)[0]) { + end = itr; + } + itr++; + } + double * anchor = (*end); + convex_hull.push_back(anchor); + itr = points.begin(); + double * start = convex_hull[0]; + double * current = (*points.begin()); + bool closed = true; + do { + closed = true; + itr = points.begin(); + end = points.begin(); + while(itr != points.end()) { + if(furtherleft(start, (*itr), current)) { + end = itr; + current = (*end); + closed = false; + } + itr++; + } + start = current; + if(!closed) { + convex_hull.push_back(current); + end = points.erase(end); + } + current = anchor; + } while(start != anchor); + // convex_hull.pop_back(); + + itr = points.begin(); + while(itr != points.end()) { + if((*itr) == anchor) { + itr=points.erase(itr); + break; + } else { + itr++; + } + } + // cout << "End of Convex " << convex_hull.size() << endl; +} + +/** + * Constructor of a convex plane given the normal vector, the distance, the + * direction of the plane (largest coordinate of the normal vector) and a + * vector of points that form the convex hull of the plane. + */ +ConvexPlane::ConvexPlane(double _n[3], double _rho, char _direction, +vector _convex_hull) { + + for(int i = 0; i < 3; i++) { + n[i] = _n[i]; + } + Normalize3(n); + + convex_hull = _convex_hull; + direction = _direction; + rho = _rho; +} + +/** + * Constructor of a convex plane given the normal vector and distance of the + * plane. + */ +ConvexPlane::ConvexPlane(double plane[4]) { + for(int i = 0; i < 3; i++) { + n[i] = plane[i]; + } + rho = plane[3]; + if(fabs(n[0]) < fabs(n[1])) { + if(fabs(n[1]) < fabs(n[2])) { + direction = 'z'; + } else { + direction = 'y'; + } + } else if (fabs(n[2]) < fabs(n[0])){ + direction = 'x'; + } else { + direction = 'z'; + } +} + +/** + * Constructor of a convex plane given several partial planes + */ +ConvexPlane::ConvexPlane(vector &partialplanes) { + int size = partialplanes.size(); + for(int i = 0; i < size; i++) { + for(int j = 0; j < 3; j++) { + n[j] += partialplanes[i]->n[j]; + rho += partialplanes[i]->rho; + } + } + for(int j = 0; j < 3; j++) { + n[j] /= size; + } + rho /= size; +} + +/** + * Constructor of a convex plane given the normal vector and distance of the + * plane and a vector of points that lie on the plane. + */ +ConvexPlane::ConvexPlane(double plane[4], vector &points ) { + + for(int i = 0; i < 3; i++) { + n[i] = plane[i]; + } + rho = plane[3]; + Normalize3(n); + + if(fabs(n[0]) < fabs(n[1])) { + if(fabs(n[1]) < fabs(n[2])) { + direction = 'z'; + } else { + direction = 'y'; + } + } else if (fabs(n[2]) < fabs(n[0])){ + direction = 'x'; + } else { + direction = 'z'; + } + + list point_list; + + for (vector::iterator it = points.begin(); it != points.end(); it++) { + Point p = (*it); + double * point = new double[2]; + switch(direction) { + case 'x': point[0] = p.y; + point[1] = p.z; + break; + case 'y': point[0] = p.x; + point[1] = p.z; + break; + case 'z': point[0] = p.x; + point[1] = p.y; + break; + default: throw runtime_error("default branch taken"); + } + point_list.push_back(point); + } + + if (point_list.size() > 0) { + JarvisMarchConvexHull(point_list, convex_hull); + } +} +ConvexPlane::~ConvexPlane() { + for(vector::iterator it = convex_hull.begin(); + it != convex_hull.end(); it++) { + double* tmp = (*it); + delete[] tmp; + } +} + +/** + * Writes the plane as normalXXX.3d to the directory given in the path. XXX is + * the three digit representation of the counter. + * This function writes the center and the normal of the plane to the file. + */ +void ConvexPlane::writeNormal(string path, int counter) { + ofstream out; + out.open(path.c_str()); + double center[3]; + for(int i = 0; i < 3; i++) { + center[i] = 0.0; + } + + for(vector::iterator it = convex_hull.begin(); + it != convex_hull.end(); + it++) { + + + switch(direction) { + case 'x': + center[0] += (rho - (*it)[0] * n[1] - (*it)[1] * n[2]) / n[0]; + center[1] += (*it)[0]; + center[2] += (*it)[1]; + break; + case 'y': + center[0] += (*it)[0]; + center[1] += (rho - (*it)[0] * n[0] - (*it)[1] * n[2]) / n[1]; + center[2] += (*it)[1]; + break; + case 'z': + center[0] += (*it)[0]; + center[1] += (*it)[1]; + center[2] += (rho - (*it)[0] * n[0] - (*it)[1] * n[1]) / n[2]; + break; + default: throw runtime_error("default branch taken"); + } + + } + + for(int i = 0; i < 3; i++) { + center[i] /= convex_hull.size(); + } + + + out << n[0] << " " << n[1] << " " << n[2] << endl; + out << center[0] << " " << center[1] << " " << center[2] << endl; + + out.close(); + +} + +/** + * Writes the convex hull of the plane as planeXXX.3d to the directory given in the path. + * XXX is the three digit representation of the counter. + */ +void ConvexPlane::writePlane(string path, int counter) { + + ofstream out; + out.open(path.c_str()); + + for(vector::iterator it = convex_hull.begin(); + it != convex_hull.end(); + it++) { + + switch(direction) { + case 'x': + out << (rho - (*it)[0] * n[1] - (*it)[1] * n[2]) / n[0] << " "; + out << (*it)[0] << " "; + out << (*it)[1] << endl; + break; + case 'y': + out << (*it)[0] << " "; + out << (rho - (*it)[0] * n[0] - (*it)[1] * n[2]) / n[1] << " "; + out << (*it)[1] << endl; + break; + case 'z': + out << (*it)[0] << " "; + out << (*it)[1] << " "; + out << (rho - (*it)[0] * n[0] - (*it)[1] * n[1]) / n[2] << endl; + break; + default: throw runtime_error("default branch taken"); + } + + } + out.flush(); + out.close(); +} + +vector ConvexPlane::getConvexHull() { + vector hull; + + for(vector::iterator it = convex_hull.begin(); + it != convex_hull.end(); + it++) { + + double point[3]; + + switch(direction) { + + case 'x': + point[0] = (rho - (*it)[0] * n[1] - (*it)[1] * n[2]) / n[0]; + point[1] = (*it)[0]; + point[2] = (*it)[1]; + break; + case 'y': + point[0] = (*it)[0]; + point[1] = (rho - (*it)[0] * n[0] - (*it)[1] * n[2]) / n[1]; + point[2] = (*it)[1]; + break; + case 'z': + point[0] = (*it)[0]; + point[1] = (*it)[1]; + point[2] = (rho - (*it)[0] * n[0] - (*it)[1] * n[1]) / n[2]; + break; + default: throw runtime_error("default branch taken"); + } + + hull.push_back(point[0]); + hull.push_back(point[1]); + hull.push_back(point[2]); + } + + return hull; +} + +void ConvexPlane::getNormal(double* normal, double* origin) { + double center[3]; + for(int i = 0; i < 3; i++) { + center[i] = 0.0; + } + + for(vector::iterator it = convex_hull.begin(); + it != convex_hull.end(); + it++) { + + switch(direction) { + case 'x': + center[0] += (rho - (*it)[0] * n[1] - (*it)[1] * n[2]) / n[0]; + center[1] += (*it)[0]; + center[2] += (*it)[1]; + break; + case 'y': + center[0] += (*it)[0]; + center[1] += (rho - (*it)[0] * n[0] - (*it)[1] * n[2]) / n[1]; + center[2] += (*it)[1]; + break; + case 'z': + center[0] += (*it)[0]; + center[1] += (*it)[1]; + center[2] += (rho - (*it)[0] * n[0] - (*it)[1] * n[1]) / n[2]; + break; + default: throw runtime_error("default branch taken"); + } + } + + for(int i = 0; i < 3; i++) { + center[i] /= convex_hull.size(); + } + + normal[0] = n[0]; + normal[1] = n[1]; + normal[2] = n[2]; + + origin[0] = center[0]; + origin[1] = center[1]; + origin[2] = center[2]; +} + +void ConvexPlane::project(const double *p, double *p1) { + double dist = n[0] * p[0] + n[1] * p[1] + n[2] * p[2] - rho; + + p1[0] = p[0] - n[0] * dist; + p1[1] = p[1] - n[1] * dist; + p1[2] = p[2] - n[2] * dist; +} + +bool ConvexPlane::isWall() { + return fabs(n[1]) < 0.1; +} + +bool ConvexPlane::isHorizontal() { + double skalar = n[1] / sqrt(n[0]*n[0] + n[1]*n[1] + n[2]*n[2]) ; + return (1-(fabs(skalar))) < 0.1; +} + +void ConvexPlane::horizontalize() { + + n[0] = 0.0; + n[1] = n[1] < 0 ? -1.0 : 1.0; + n[2] = 0.0; + +} + +void ConvexPlane::verticalize() { + n[1] = 0.0; + Normalize3(n); +} + diff --git a/src/shapes/geom_math.cc b/src/shapes/geom_math.cc new file mode 100644 index 0000000..38d097e --- /dev/null +++ b/src/shapes/geom_math.cc @@ -0,0 +1,145 @@ +/* + * geom_math implementation + * + * Copyright (C) Dorit Borrmann + * + * Released under the GPL version 3. + * + */ + +#include "math.h" +#include "shapes/geom_math.h" + +float Nx,Ny,Nz,Nd; +float Cx, Cy, Cz; +float maxDist = 1.0; // cm +float maxRadius = 105.0; // cm +float CxM, CxP, CyM, CyP, CzM, CzP; + +bool SphereInAABB( float x, float y, float z, float size ) { + if ( x + size < CxM || + x - size > CxP || + y + size < CyM || + y - size > CyP || + z + size < CzM || + z - size > CzP ) { + return false; + } + return true; +} + + +void setNumber(double *plane, double *center, double _radius, double _maxDist) { + maxDist = _maxDist; + maxRadius = _radius; + + Nx = plane[0]; + Ny = plane[1]; + Nz = plane[2]; + Nd = plane[3]; + + Cx = center[0]; + Cy = center[1]; + Cz = center[2]; + CxM = Cx - maxRadius; + CxP = Cx + maxRadius; + CyM = Cy - maxRadius; + CyP = Cy + maxRadius; + CzM = Cz - maxRadius; + CzP = Cz + maxRadius; +} + + + + +bool PlaneInCube( float x, float y, float z, float size, float nx, float ny, float nz, float d) +{ + float xm, xp, ym, yp, zm, zp; + float Fxm, Fxp, Fym, Fyp, Fzm, Fzp; + xm = x - size; + xp = x + size; + ym = y - size; + yp = y + size; + zm = z - size; + zp = z + size; + + Fxm = nx * xm; + Fym = ny * ym; + Fzm = nz * zm; + + bool positive = (Fxm + Fym + Fzm + d > 0); + + + Fxp = nx * xp; + if( (Fxp + Fym + Fzm + d < 0) == positive) + return true; + + Fyp = ny * yp; + if( (Fxm + Fyp + Fzm + d < 0) == positive ) + return true; + + if( (Fxp + Fyp + Fzm + d < 0) == positive ) + return true; + + Fzp = nz * zp; + if( (Fxm + Fym + Fzp + d < 0) == positive ) + return true; + + if( (Fxp + Fym + Fzp + d < 0) == positive ) + return true; + if( (Fxm + Fyp + Fzp + d < 0) == positive ) + return true; + if( (Fxp + Fyp + Fzp + d < 0) == positive ) + return true; + + return false; +} + + +bool PlaneInCube( float x, float y, float z, float size) +{ + float xm, xp, ym, yp, zm, zp; + float Fxm, Fxp, Fym, Fyp, Fzm, Fzp; + xm = x - size; + xp = x + size; + ym = y - size; + yp = y + size; + zm = z - size; + zp = z + size; + + Fxm = Nx * xm; + Fym = Ny * ym; + Fzm = Nz * zm; + + bool positive = (Fxm + Fym + Fzm + Nd > 0); + + + Fxp = Nx * xp; + if( (Fxp + Fym + Fzm + Nd < 0) == positive) + return true; + + Fyp = Ny * yp; + if( (Fxm + Fyp + Fzm + Nd < 0) == positive ) + return true; + + if( (Fxp + Fyp + Fzm + Nd < 0) == positive ) + return true; + + Fzp = Nz * zp; + if( (Fxm + Fym + Fzp + Nd < 0) == positive ) + return true; + + if( (Fxp + Fym + Fzp + Nd < 0) == positive ) + return true; + if( (Fxm + Fyp + Fzp + Nd < 0) == positive ) + return true; + if( (Fxp + Fyp + Fzp + Nd < 0) == positive ) + return true; + + return false; +} + +bool closeToPlane(double *p) { + return ( fabs(planeDist(p, Nx, Ny, Nz, Nd)) < maxDist ); +} + diff --git a/src/shapes/hough.cc b/src/shapes/hough.cc new file mode 100644 index 0000000..283d055 --- /dev/null +++ b/src/shapes/hough.cc @@ -0,0 +1,1250 @@ +/* + * hough implementation + * + * Copyright (C) Dorit Borrmann, Jan Elseberg, Kai Lingemann, Andreas Nuechter, Remus Dumitru + * + * Released under the GPL version 3. + * + */ + +#include "newmat/newmatap.h" +using namespace NEWMAT; +#include "shapes/hough.h" +#include "slam6d/globals.icc" +#include +#include +#include +#include "shapes/quadtree.h" +#include +#include + +#ifdef _MSC_VER +#include +#include +#else +#include +#endif +#include + +/** + * Hough Constructor. + * Loads the Configfile, located in "bin/hough.cfg" and initializes the + * accumulator. For details about the implemented Hough methods please read: + * + * Dorit Borrmann, Jan Elseberg, Kai Lingemann, and Andreas N眉chter. The 3D + * Hough Transform for Plane Detection in Point Clouds - A Review and A new + * Accumulator Design, Journal 3D Research, Springer, Volume 2, Number 2, + * March 2011. + */ + +Hough::Hough(bool q, std::string configFile) +{ + quiet = q; + + // If the user has specified a configFile, load it + if(configFile.size() > 0) { + myConfigFileHough.LoadCfg(configFile.c_str()); + if (!quiet) { + std::cout << "Loaded Configfile" << std::endl; + myConfigFileHough.ShowConfiguration(); + } + } +} + +Hough::Hough(Scan * GlobalScan, bool q, std::string configFile) +{ + + quiet = q; + if(configFile.size() > 0) { + myConfigFileHough.LoadCfg(configFile.c_str()); + if(!quiet) { + std::cout << "Loaded Configfile" << std::endl; + myConfigFileHough.ShowConfiguration(); + } + } + + SetScan(GlobalScan); +} + +void Hough::SetScan(Scan* scan) +{ + + nrEntries = 0; + maximum = false; + + planeCounter = 0; + + allPoints = new vector(); + + DataXYZ points_red = scan->get("xyz reduced"); + for(unsigned int i = 0; i < points_red.size(); i++) + { + Point p(points_red[i]); + allPoints->push_back(p); + } + + switch(myConfigFileHough.Get_AccumulatorType()) { + case 0: + acc = new AccumulatorSimple(myConfigFileHough); + break; + case 1: + acc = new AccumulatorBall(myConfigFileHough); + break; + case 2: + acc = new AccumulatorCube(myConfigFileHough); + break; + case 3: + acc = new AccumulatorBallI(myConfigFileHough); + break; + } + srand(time(0)); // make the results actually random + //srand(0); // make the results repeatable +} + +/** + * Desctructor. + */ + +Hough::~Hough() { + if(out.is_open()) { + out.flush(); + out.close(); + } + + for(vector::iterator it = planes.begin(); + it != planes.end(); it++) { + ConvexPlane* tmp = (*it); + delete tmp; + } + delete acc; + delete allPoints; + +} + +/** + * Randomized Hough Transform + */ +int Hough::RHT() { + + if (!quiet) cout << "RHT" << endl; + Point p1, p2, p3; + double theta, phi, rho; + int planeSize = 2000; + + unsigned int stop = (unsigned int)(allPoints->size()/100.0)*myConfigFileHough.Get_MinSizeAllPoints(); + int plane = 1; + long start, end; + start = GetCurrentTimeInMilliSec(); + int counter = 0; + while( allPoints->size() > stop && + planes.size() < (unsigned int)myConfigFileHough.Get_MaxPlanes() && + counter < (int)myConfigFileHough.Get_TrashMax()) { + unsigned int pint = (int) (((*allPoints).size())*(rand()/(RAND_MAX+1.0))); + + p1 = (*allPoints)[pint]; + pint = (int) (((*allPoints).size())*(rand()/(RAND_MAX+1.0))); + p2 = (*allPoints)[pint]; + pint = (int) (((*allPoints).size())*(rand()/(RAND_MAX+1.0))); + p3 = (*allPoints)[pint]; + + // check distance + if(!distanceOK(p1, p2, p3)) continue; + //cout << "Distance OK" << endl; + // calculate Plane + if(calculatePlane(p1, p2, p3, theta, phi, rho)) { + // increment accumulator cell + if(acc->accumulate(theta, phi, rho)) { + end = GetCurrentTimeInMilliSec() - start; + start = GetCurrentTimeInMilliSec(); + if (!quiet) cout << "Time for RHT " << plane << ": " << end << endl; + double * n = acc->getMax(rho, theta, phi); + if (!quiet) cout << rho << " " << theta << " " << phi << endl; + planeSize = deletePoints(n, rho); + delete[] n; + if (!quiet) cout << "Delete Points done " << plane << endl; + if(planeSize < (int)myConfigFileHough.Get_MinPlaneSize()) counter++; + end = GetCurrentTimeInMilliSec() - start; + start = GetCurrentTimeInMilliSec(); + if(!quiet) cout << "Time for Polygonization " << plane << ": " << end << endl; + acc->resetAccumulator(); + plane++; + if(!quiet) cout << "Planes " << planes.size() << endl; + } + + } + } + /* + vector::iterator itr = allPoints->begin(); + + Point p; + start = GetCurrentTimeInMilliSec(); + while(itr != allPoints->end()) { + p = *(itr); + cout << p.x << " " << p.y << " " << p.z << endl; + itr++; + } + */ + return (int)planes.size(); +} + +/** + * Standard Hough Transform + */ +void Hough::SHT() { + vector::iterator itr = allPoints->begin(); + + Point p; + long start, end; + start = GetCurrentTimeInMilliSec(); + while(itr != allPoints->end()) { + p = *(itr); + acc->accumulate(p); + itr++; + } + end = GetCurrentTimeInMilliSec() - start; + start = GetCurrentTimeInMilliSec(); + if (!quiet) cout << "Time for SHT: " << end << endl; + + if(myConfigFileHough.Get_PeakWindow()) { + acc->peakWindow(myConfigFileHough.Get_WindowSize()); + } + + multiset* maxlist = acc->getMax(); + multiset::iterator it = maxlist->begin(); + int threshold = ((*it)[0] * myConfigFileHough.Get_PlaneRatio()); + unsigned int stop = (int)(allPoints->size()/100.0)*myConfigFileHough.Get_MinSizeAllPoints(); + + while(it != maxlist->end() && + stop < allPoints->size() && + planes.size() < (unsigned int)myConfigFileHough.Get_MaxPlanes() && + (*it)[0] > threshold) { + int* tmp = (*it); + double * polar = acc->getMax(tmp); + deletePoints(polar, polar[3]); + delete[] polar; + it++; + } + if (!quiet) cout << "Time for Polygonization: " << end << endl; + + it = maxlist->begin(); + for(;it != maxlist->end(); it++) { + int* tmp = (*it); + delete[] tmp; + } + + delete maxlist; +} + +/** + * Function that returns all the remaining points in the allPoints vector. + * @return points that do not lie on an already detected plane + */ +double * const* Hough::getPoints(int &size) { + size = allPoints->size(); + double ** returnPoints = new double*[allPoints->size()]; + for(unsigned int i = 0; i < allPoints->size(); i++) { + Point p = (*allPoints)[i]; + returnPoints[i] = new double[3]; + returnPoints[i][0] = p.x; + returnPoints[i][1] = p.y; + returnPoints[i][2] = p.z; + } + return returnPoints; +} + +/** + * Deletes all points that lie on a list of planes. + * @param model the list of planes + * @param size the number of remaining points after delete operation + * @return the remaining points + */ +double * const* Hough::deletePoints(vector &model, int &size) { + for(unsigned int i = 0; i < model.size(); i++) { + deletePoints(model[i]->n, model[i]->rho); + } + double ** returnPoints = new double*[allPoints->size()]; + for(unsigned int i = 0; i < allPoints->size(); i++) { + Point p = (*allPoints)[i]; + returnPoints[i] = new double[3]; + returnPoints[i][0] = p.x; + returnPoints[i][1] = p.y; + returnPoints[i][2] = p.z; + } + size = allPoints->size(); + return returnPoints; +} + +/** + * Probabilistic Hough Transform + */ + +void Hough::PHT() { + unsigned int stop = + (int)(allPoints->size()/100.0)*myConfigFileHough.Get_MinSizeAllPoints(); + bool *voted = new bool[allPoints->size()]; + for(unsigned int i = 0; i < allPoints->size(); i++) { + voted[i] = false; + } + + unsigned int i = 0; + while(i < stop && planes.size() < (unsigned int)myConfigFileHough.Get_MaxPlanes()) { + unsigned int pint = (int) (((*allPoints).size())*(rand()/(RAND_MAX+1.0))); + + if(!voted[i]) { + Point p = (*allPoints)[pint]; + acc->accumulate(p); + i++; + } + + } + // List of Maxima + if(myConfigFileHough.Get_PeakWindow()) { + acc->peakWindow(myConfigFileHough.Get_WindowSize()); + } + multiset* maxlist = acc->getMax(); +// cout << "Mean " << acc->mean() << endl; +// cout << "Variance " << acc->variance() << endl; + + multiset::iterator it = maxlist->begin(); + int threshold = ((*it)[0] * myConfigFileHough.Get_PlaneRatio()); + while(it != maxlist->end() && + stop < allPoints->size() && + planes.size() < (unsigned int)myConfigFileHough.Get_MaxPlanes() && + (*it)[0] > threshold) { + + int* tmp = (*it); + double * tmp2 = acc->getMax(tmp); + deletePoints(tmp2, tmp2[3]); + delete [] tmp2; + it++; + } + it = maxlist->begin(); + for(;it != maxlist->end(); it++) { + int* tmp = (*it); + delete[] tmp; + } + + delete maxlist; + delete[] voted; +} + +/** + * Progressive Probabilistic Hough Transform + */ + +void Hough::PPHT() { + unsigned int stop = + (int)(allPoints->size()/100.0)*myConfigFileHough.Get_MinSizeAllPoints(); + while(stop < allPoints->size() && + planes.size() < (unsigned int)myConfigFileHough.Get_MaxPlanes()) { + bool *voted = new bool[allPoints->size()]; + for(unsigned int i = 0; i < allPoints->size(); i++) { + voted[i] = false; + } + + unsigned int pint; + do { + pint = (int) (((*allPoints).size())*(rand()/(RAND_MAX+1.0))); + + Point p = (*allPoints)[pint]; + if(!voted[pint]) { + double * angles = acc->accumulateRet(p); + if(angles[0] > -0.0001) { + double * n = polar2normal(angles[1], angles[2]); + deletePoints(n, angles[0]); + acc->resetAccumulator(); + delete [] n; + } else { + voted[pint] = true; + } + delete [] angles; + } + + } while(!voted[pint]); + + delete[] voted; + } +} + +/** + * Adaptive Probabilistic Hough Transform + */ + +void Hough::APHT() { + + int max = 0; + int maxpos = 0; + vector mergelist = vector(); + int stability[20] = {0}; + do { + + //randomly select points and perform HT for them + vector altlist = mergelist; + mergelist = vector(); + multiset maxlist = multiset(); + for(int i = 0; i < 10; i++) { + unsigned int pint = (int) (((*allPoints).size())*(rand()/(RAND_MAX+1.0))); + Point p = (*allPoints)[pint]; + int * max = acc->accumulateAPHT(p); + // store the maximum cell touched by the HT + maxlist.insert(max); + } + + // merge active with previous list + multiset::iterator mi = maxlist.begin(); + vector::iterator ai = altlist.begin(); + + int i = 0; + while(i < 20) { + bool mi_oder_ai = false; + if(ai == altlist.end()) { + if(mi == maxlist.end()) { + break; + } else { + mi_oder_ai = true; + } + } else if(mi == maxlist.end()) { + mi_oder_ai = false; + } else if((*mi)[0] <= (*ai[0])) { + mi_oder_ai = false; + } else { + mi_oder_ai = true; + } + + int *tmp; + if(mi_oder_ai) { + tmp = (*mi); + mi++; + } else { + tmp = (*ai); + ai++; + } + + bool insert = true; + for(vector::iterator it = mergelist.begin(); it != mergelist.end(); + it++) { + if(myConfigFileHough.Get_AccumulatorType() != 2) { + if( sqrt( + ((*it)[3] - (tmp[3])) * ((*it)[3] - (tmp[3])) + + ((*it)[1] - (tmp[1])) * ((*it)[1] - (tmp[1])) + + ((*it)[2] - (tmp[2])) * ((*it)[2] - (tmp[2])) ) < 3.0) { + insert = false; + break; + } + } else { + if( sqrt( + ((*it)[4] - (tmp[4])) * ((*it)[4] - (tmp[4])) + + ((*it)[1] - (tmp[1])) * ((*it)[1] - (tmp[1])) + + ((*it)[2] - (tmp[2])) * ((*it)[2] - (tmp[2])) + + ((*it)[3] - (tmp[3])) * ((*it)[3] - (tmp[3])) ) < 3.0) { + insert = false; + break; + } + } + } + if(insert) { + mergelist.push_back(tmp); + i++; + } + } + // compare lists, calculate stability + i = 0; + for(unsigned int i = 1; i < altlist.size(); i++) { + for(unsigned int j = 0; j < i; j++) { + int * tmp1 = mergelist[j]; + bool treffer = false; + for(unsigned int k = 0; k < i; k++) { + int * tmp2 = altlist[k]; + if(myConfigFileHough.Get_AccumulatorType() != 2) { + if( sqrt( + ((tmp2)[3] - (tmp1[3])) * ((tmp2)[3] - (tmp1[3])) + + ((tmp2)[1] - (tmp1[1])) * ((tmp2)[1] - (tmp1[1])) + + ((tmp2)[2] - (tmp1[2])) * ((tmp2)[2] - (tmp1[2])) ) < 3.0) { + treffer = true; + break; + } + } else { + if( sqrt( + ((tmp2)[4] - (tmp1[4])) * ((tmp2)[4] - (tmp1[4])) + + ((tmp2)[1] - (tmp1[1])) * ((tmp2)[1] - (tmp1[1])) + + ((tmp2)[2] - (tmp1[2])) * ((tmp2)[2] - (tmp1[2])) + + ((tmp2)[3] - (tmp1[3])) * ((tmp2)[3] - (tmp1[3])) ) < 3.0) { + treffer = true; + break; + } + } + } + if(!treffer) { + stability[i-1] = -1; + break; + } + } + stability[i-1]++; + } + for(int i = mergelist.size(); i < 20; i++) { + stability[i] = 0; + } + // determine stability count, + // a set of n entries is considered to be stable, if all planes in the set + // are the maximal entries of the mergelist in this iteration and have also + // been the maximal entries in the previous iteration (the order in the set + // does not count). The stability count for a number n is the number of + // iterations for which the set of size n has been stable. + // The maximum stability count is the stability count for the size n, that + // is the maximum of all stability counts. + max = 0; + maxpos = 0; + for(int i = 0; i < 20; i++) { + if(stability[i] >= max) { + max = stability[i]; + maxpos = i; + } + } + // repeat until maximum stability count exceeds a threshold + } while(max < (int)myConfigFileHough.Get_AccumulatorMax() + && stability[myConfigFileHough.Get_MaxPlanes()] < + myConfigFileHough.Get_AccumulatorMax() * myConfigFileHough.Get_PlaneRatio() + ); + if(stability[myConfigFileHough.Get_MaxPlanes()] >= myConfigFileHough.Get_AccumulatorMax() * myConfigFileHough.Get_PlaneRatio()) { + maxpos = myConfigFileHough.Get_MaxPlanes(); + } + + for(int i = 0; i <= maxpos; i++) { + double * n = acc->getMax(mergelist[i]); + deletePoints(n, n[3]); + + delete[] n; + } + +} + +/** + * Verifies the distance criterion needed for the RHT. The distance between the + * three selected points may not exceed a maximal or fall below a minimal + * distance. + */ +bool Hough::distanceOK(Point p1, Point p2, Point p3) { + // p1 - p2 + double distance = (p1.x - p2.x) * (p1.x - p2.x) + (p1.y - p2.y) * (p1.y - p2.y) + (p1.z - p2.z) * (p1.z - p2.z); + if(sqrt(distance) < myConfigFileHough.Get_MinDist()) return false; + if(sqrt(distance) > myConfigFileHough.Get_MaxDist()) return false; + + // p2 - p3 + distance = (p3.x - p2.x) * (p3.x - p2.x) + (p3.y - p2.y) * (p3.y - p2.y) + (p3.z - p2.z) * (p3.z - p2.z); + if(sqrt(distance) < myConfigFileHough.Get_MinDist()) return false; + if(sqrt(distance) > myConfigFileHough.Get_MaxDist()) return false; + + // p3 - p1 + distance = (p1.x - p3.x) * (p1.x - p3.x) + (p1.y - p3.y) * (p1.y - p3.y) + (p1.z - p3.z) * (p1.z - p3.z); + if(sqrt(distance) < myConfigFileHough.Get_MinDist()) return false; + if(sqrt(distance) > myConfigFileHough.Get_MaxDist()) return false; + + return true; + +} + +/** + * Calculates the polar coordinates (rho, theta, phi) of the plane spanned by + * three points p1, p2, and p3. + */ +bool Hough::calculatePlane(Point p1, Point p2, Point p3, double &theta, double &phi, double &rho) { + + double v1[3]; + double v2[3]; + double n[3]; + + v1[0] = p3.x - p2.x; + v1[1] = p3.y - p2.y; + v1[2] = p3.z - p2.z; + v2[0] = p1.x - p2.x; + v2[1] = p1.y - p2.y; + v2[2] = p1.z - p2.z; + + Cross(v1,v2,n); + + if(sqrt(n[0]*n[0] + n[1]*n[1] + n[2]*n[2]) < 0.000000001) return false; + + Normalize3(n); + + rho = p1.x * n[0] + p1.y * n[1] + p1.z * n[2]; + + if(rho < 0) { + rho = -rho; + for(int i = 0; i < 3; i++) { + n[i] = -n[i]; + } + } + double polar[3]; + toPolar(n, polar); + + phi = polar[0]; + theta = polar[1]; + + if((fabs(theta) < 0.001) && (fabs(phi) < 0.001) ) return false; + return true; +} + +/** + * Improved function for point deletion. + */ +int Hough::deletePointsQuad(double * n, double rho) { + + if (!quiet) cout << allPoints->size() ; + Normalize3(n); + vector *nallPoints = new vector(); + + vector planePoints; + out << n[0] << " " << n[1] << " " << n[2] << " " << rho << " "; + + Point p; + vector::iterator itr = allPoints->begin(); + + while(itr != allPoints->end()) { + p = *(itr); + // if point close to plane, delete it + double distance = p.x * n[0] + p.y * n[1] + p.z*n[2] - rho; + if( fabs(distance) < myConfigFileHough.Get_MaxPointPlaneDist()) { + + planePoints.push_back(p); + + } + itr++; + } + double n2[4]; + + // calculating the best fit plane + calcPlane(planePoints, n2); + out << n2[0] << " " << n2[1] << " " << n2[2] << " " << n2[3] << " " ; + + itr = allPoints->begin(); + planePoints.clear(); + + while(itr != allPoints->end()) { + p = *(itr); + // if point close to plane, delete it + double distance = p.x * n2[0] + p.y * n2[1] + p.z*n2[2] - n2[3]; + if( fabs(distance) < myConfigFileHough.Get_MaxPointPlaneDist()) { + + planePoints.push_back(p); + + } else { + nallPoints->push_back(p); + } + itr++; + } + delete allPoints; + allPoints = nallPoints; + + if (!quiet) cout << "Planepoints " << planePoints.size() << endl; + int nr_points = planePoints.size(); + // TODO Clustering + double min_angle = rad(1.0); + double _phi, _theta; + double **pppoints; + pppoints = new double*[nr_points]; + + for (unsigned int i = 0; i < planePoints.size(); i++) { + pppoints[i] = new double[3]; + + Point p(planePoints[i]); + double m[3]; + m[0] = p.x; + m[1] = p.y; + m[2] = p.z; + + Normalize3(m); + _phi = acos(m[2]); + double costheta = acos(m[0]/sin(_phi)); + double sintheta = m[1]/sin(_phi); + double EPS = 0.0001; + + if(fabs(sin(costheta) - sintheta) < EPS) { + _theta = costheta; + } else if(fabs( sin( 2*M_PI - costheta ) - sintheta ) < EPS) { + _theta = 2*M_PI - costheta; + } else { + _theta = 0; + cout << "Error JP" << endl; + } + + pppoints[i][0] = _phi; + pppoints[i][1] = _theta; + pppoints[i][2] = sqrt(p.x*p.x + p.y*p.y + p.z*p.z); + } + planePoints.clear(); + + QuadTree tree(pppoints, nr_points , 0.3, min_angle); + vector > cps; + cps = tree.getClusters(); + + unsigned int max_points = 0; + int index = -1; + for (unsigned int i = 0; i < cps.size(); i++) { + if (max_points < cps[i].size()) { + max_points = cps[i].size(); + index = i; + } + } + for (unsigned int i = 0; i < cps.size(); i++) { + for (set::iterator it = cps[i].begin(); + it != cps[i].end(); it++) { + Point p; + p.x = (*it)[2] * cos( (*it)[1] ) * sin( (*it)[0] ); + p.y = (*it)[2] * sin( (*it)[1] ) * sin( (*it)[0] ); + p.z = (*it)[2] * cos( (*it)[0] ); + if ((int)i != index) { + allPoints->push_back(p); + } else { + planePoints.push_back(p); + } + } + } + + double n4[4]; + calcPlane(planePoints, n4); + + ConvexPlane * plane1 = new ConvexPlane(n4, planePoints); + planes.push_back(plane1); + + + for (int i = 0; i < nr_points; i++) { + delete[] pppoints[i]; + } + delete[] pppoints; + return max_points; + + // ENDE +} + +/** + * Deletes points from allPoints that lie on the given plane. All points from + * the biggest cluster on that plane are deleted. If the cluster is + * sufficiently planar, the convex hull is added to the result list. + * + * @param n normal vector of the plane + * @param rho distance between plane and origin + * @return the number of points in the deleted cluster plane + */ +int Hough::deletePoints(double * n, double rho) { + char direction = ' '; + Normalize3(n); + vector *nallPoints = new vector(); + + vector planePoints; + + Point p; + vector::iterator itr = allPoints->begin(); + + while(itr != allPoints->end()) { + p = *(itr); + // if point close to plane, delete it + double distance = p.x * n[0] + p.y * n[1] + p.z*n[2] - rho; + if( fabs(distance) < myConfigFileHough.Get_MaxPointPlaneDist()) { + + planePoints.push_back(p); + + } + itr++; + } + double n2[4]; + // calculating the best fit plane + double D = calcPlane(planePoints, n2); + + bool nocluster = false; + + if(D > myConfigFileHough.Get_MinPlanarity()) { + nocluster = true; + } + + if(fabs(n2[0]) < fabs(n2[1])) { + if(fabs(n2[1]) < fabs(n2[2])) { + direction = 'z'; + } else { + direction = 'y'; + } + } else if (fabs(n2[2]) < fabs(n2[0])){ + direction = 'x'; + } else { + direction = 'z'; + } + + itr = allPoints->begin(); + planePoints.clear(); + + vPtPair planePairs; + double minx, maxx, miny, maxy; + minx = 1000000; + miny = 1000000; + maxx = -1000000; + maxy= -1000000; + while(itr != allPoints->end()) { + p = *(itr); + // if point close to plane, delete it + double distance = p.x * n2[0] + p.y * n2[1] + p.z*n2[2] - n2[3]; + if( fabs(distance) < myConfigFileHough.Get_MaxPointPlaneDist()) { + + Point tmp, p2; + double distance = p.x * n2[0] + p.y * n2[1] + p.z*n2[2] - n2[3]; + tmp.x = p.x - distance * n2[0]; + tmp.y = p.y - distance * n2[1]; + tmp.z = p.z - distance * n2[2]; + switch(direction) { + case 'x': p2.x = tmp.y; + p2.y = tmp.z; + break; + case 'y': p2.x = tmp.x; + p2.y = tmp.z; + break; + case 'z': p2.x = tmp.x; + p2.y = tmp.y; + break; + default: cout << "OHOH" << endl; + } + p2.z = -1; + if(p2.x < minx) minx = p2.x; + if(p2.y < miny) miny = p2.y; + if(p2.x > maxx) maxx = p2.x; + if(p2.y > maxy) maxy = p2.y; + PtPair myPair(p,p2); + + planePairs.push_back(myPair); + + } else { + nallPoints->push_back(p); + } + itr++; + } + delete allPoints; + allPoints = nallPoints; + + int region = -1; + if(planePairs.size() > 2) { + region = cluster(planePairs, minx, maxx, miny, maxy); + } + // delete points from this list + list< double*> point_list; + + vPtPair::iterator vitr; + vector tmp_points; + for(vitr = planePairs.begin(); vitr != planePairs.end(); vitr++) { + + // Case distinction x-z or x-y or y-z + p = (*vitr).p1; + Point p2 = (*vitr).p2; + if(fabs(p2.z - region) < 0.1) { + double * point = new double[2]; + point[0] = p2.x; + point[1] = p2.y; + point_list.push_back(point); + tmp_points.push_back(p); + } else { + allPoints->push_back(p); + } + } + D = calcPlane(tmp_points, n2); + + nocluster = false; + + if(D > myConfigFileHough.Get_MinPlanarity()) { + nocluster = true; + } + unsigned int maxPlane = point_list.size(); + + // color points + unsigned char rgb[3]; + for(int x = 0; x < 3; x++) { + rgb[x] = (unsigned char)((255)*(rand()/(RAND_MAX+1.0))); + } + for(itr = tmp_points.begin(); itr != tmp_points.end(); itr++) { + p = (*itr); + if(nocluster || maxPlane >= myConfigFileHough.Get_MinPlaneSize()) { + p.rgb[0] = 0; + p.rgb[1] = 0; + p.rgb[2] = 0; + } else { + p.rgb[0] = rgb[0]; + p.rgb[1] = rgb[1]; + p.rgb[2] = rgb[2]; + } + coloredPoints.push_back(p); + } + tmp_points.clear(); + + if(nocluster || maxPlane < myConfigFileHough.Get_MinPlaneSize()) { + for(list::iterator it = point_list.begin(); + it != point_list.end(); ) { + double* tmp = (*it); + it = point_list.erase(it); + delete[] tmp; + } + point_list.clear(); + return maxPlane; + } + + // If plane ok, calculate convex hull + vector convex_hull; + ConvexPlane::JarvisMarchConvexHull(point_list,convex_hull); + + for(list::iterator it = point_list.begin(); + it != point_list.end(); ) { + double* tmp = (*it); + it = point_list.erase(it); + delete[] tmp; + } + point_list.clear(); + + if(nocluster) { + for(vector::iterator it = convex_hull.begin(); + it != convex_hull.end(); it++) { + double* tmp = (*it); + delete[] tmp; + } + return maxPlane; + } + + ConvexPlane * plane1 = new ConvexPlane(n2, n2[3], direction, convex_hull); + plane1->pointsize = maxPlane; + planes.push_back(plane1); + + if(!quiet) cout << "Points left " << allPoints->size() << "\n"; + return maxPlane; + // ENDE +} + +/** + * Clustering using Two-Pass algorithm + */ +int Hough::cluster(vPtPair &pairs, double minx, double maxx, double miny, double maxy) { + if(pairs.size() < 3) return -1; + vPtPair::iterator vitr; + vector > linked; + double factor = myConfigFileHough.Get_PointDist(); + int xlength = 1 + (maxx - minx) / factor; + int ylength = 1 + (maxy - miny) / factor; + + vector< vector > colors; + + for(int i = 0; i < ylength; i++) { + vector *tmp = new vector; + colors.push_back(*tmp); + for(int j = 0; j < xlength; j++) { + colors[i].push_back(0); + } + delete tmp; + } + + //int colors[ylength][xlength]; + vector< vector > points; + for(int i = 0; i < ylength; i++) { + vector *tmp = new vector; + points.push_back(*tmp); + for(int j = 0; j < xlength; j++) { + points[i].push_back(false); + } + delete tmp; + } + + int region = 0; + + for(vitr = pairs.begin(); vitr != pairs.end(); vitr++) { + int x = (int)(((*vitr).p2.x - minx) / (maxx - minx) * xlength - 0.5); + int y = (int)(((*vitr).p2.y - miny) / (maxy - miny) * ylength - 0.5); + points[y][x] = true; + } + int up, left; + for(int y = 0; y < ylength; y++) { + for(int x = 0; x < xlength; x++) { + if(points[y][x]) { + if(x==0) { + left = 0; + } else { + left = colors[y][x-1]; + } + if(y==0) { + up = 0; + } else { + up = colors[y-1][x]; + } + if (left == 0) { + if (up == 0) { + colors[y][x] = ++region; // new region + set joined; + joined.insert(region); + linked.push_back(joined); + } else { + colors[y][x] = up; // use upper region + } + } else if (up == 0) { + colors[y][x] = left; // use left region + } else { + colors[y][x] = up; // use upper region (left is the same) + if(left == up) { + continue; + } + else { + set current; + set joined; + joined.insert(up); + joined.insert(left); + for(vector >::iterator itr = linked.begin(); itr != linked.end(); ) { + current = (*itr); + if(current.find(up) != current.end() || current.find(left) != current.end()) { + set newjoined; + insert_iterator > res_ins(newjoined, newjoined.begin()); + + set_union(joined.begin(), joined.end(), current.begin(), current.end(), res_ins); + joined.clear(); + // delete joined; + joined = newjoined; + itr=linked.erase(itr); + } else { + itr++; + } + } + linked.push_back(joined); + } + + } + + } + } + } + int *counter = new int[region+1]; + for(int i = 0; i <= region; i++) { + counter[i] = 0; + } + for(int y = 0; y < ylength; y++) { + for(int x = 0; x < xlength; x++) { + counter[colors[y][x]]++; + } + } + + int *linkedindex = new int[linked.size()]; + for(unsigned int i = 0; i < linked.size(); i++) { + linkedindex[i] = 0; + } + set current; + for(unsigned int i = 0; i < linked.size(); i++) { + current = linked[i]; + for(set::iterator it = current.begin(); it != current.end(); it++) { + linkedindex[i] += counter[(*it)]; + } + } + + delete[] counter; + + int maxindex = 0; + for(unsigned int i = 1; i < linked.size(); i++) { + if(linkedindex[i] > linkedindex[maxindex]) { + maxindex = i; + } + } + + delete[] linkedindex; + set max = linked[maxindex]; + int zaehler = 0; + for(vitr = pairs.begin(); vitr != pairs.end(); vitr++) { + int x = (int)(((*vitr).p2.x - minx) / (maxx - minx) * xlength - 0.5); + int y = (int)(((*vitr).p2.y - miny) / (maxy - miny) * ylength - 0.5); + if(max.find(colors[y][x]) != max.end()) { + (*vitr).p2.z = maxindex; + zaehler++; + } else { + (*vitr).p2.z = -1; + } + } + + + /* + for(vector >::iterator itr = linked.begin(); itr != linked.end(); ) { + set<>current = (*itr); + if(current.find(up) != current.end() || current.find(left) != current.end()) { + */ + return maxindex; +} + + +/** + * Writes ::iterator it = planes.begin(); it != planes.end(); it++) { + string blub2 = blub + "/plane"+ to_string(counter,3) + ".3d"; + out << "Plane " << blub2 << endl; + (*it)->writePlane(blub2, counter); + counter++; + } + + out.close(); + out.flush(); + + return (int)planes.size(); +} + +/** + * Writes the convex hull of each detected plane to a file. + */ +void Hough::writePlanes(std::string filePrefix) +{ + int counter = 0; + + if (!quiet) std::cout << "There are " << planes.size() << " planes." << std::endl; + + for(vector::iterator it = planes.begin(); it != planes.end(); it++) + { + std::stringstream ss; + ss << filePrefix << "_" << counter << ".txt"; + (*it)->writeNormal(ss.str(), counter); + //(*it)->writePlane(ss.str(), counter); + counter++; + } + +} +/** + * Writes the remaining points from allPoints to the plane directory given in + * the config file. + */ +void Hough::writePlanePoints(string filename) { + + ofstream out; + out.open(filename.c_str()); + + Point p; + vector::iterator itr = coloredPoints.begin(); + + while(itr != coloredPoints.end()) { + p = *(itr); + out << p.x << " " << p.y << " " << p.z << " " << (int)p.rgb[0] << " " << (int)(p.rgb[1]) << " " << (int)(p.rgb[2]) << endl; + itr++; + } + itr = allPoints->begin(); + + while(itr != allPoints->end()) { + p = *(itr); + out << p.x << " " << p.y << " " << p.z << " " << 255 << " " << 255 << " " << 255 << endl; + itr++; + } + out.close(); +} + +/** + * Writes the remaining points from allPoints to the plane directory given in + * the config file. + */ +void Hough::writeAllPoints(int index, vector points) { + + string blub = ""; + blub = blub + myConfigFileHough.Get_PlaneDir() + "/scans"; +#ifdef _MSC_VER + int success = mkdir(blub.c_str()); +#else + int success = mkdir(blub.c_str(), S_IRWXU|S_IRWXG|S_IRWXO); +#endif + + if(success != 0 && errno != EEXIST) { + cerr << "Creating directory " << blub << " failed" << endl; + return; + } + + blub = blub + "/scan" + to_string(index,3) + ".3d"; + + ofstream out; + out.open(blub.c_str()); + + Point p; + vector::iterator itr = points.begin(); + + while(itr != points.end()) { + p = *(itr); + out << p.x << " " << p.y << " " << p.z << " " << (int)p.rgb[0] << " " << (int)(p.rgb[1]) << " " << (int)(p.rgb[2]) << endl; + itr++; + } + out.close(); +} + + +/** + * Given a set of points this function will calculate the best fit plane + * @param the set of points + * @param the plane description as normal vector and distance to origin + */ +double calcPlane(vector &ppoints, double plane[4]) { + SymmetricMatrix A(3); + A = 0; + int n; + n = ppoints.size(); + if(n < 3) return 0; + double cx, cy, cz; + cx = 0.0; + cy = 0.0; + cz = 0.0; + + for (int i = 0; i < n; i++) { + Point p = ppoints[i]; + cx += p.x; + cy += p.y; + cz += p.z; + } + cx /= n; + cy /= n; + cz /= n; + + for (int i = 0; i < n; i++) { + Point p = ppoints[i]; + A(1, 1) += (p.x - cx)*(p.x - cx); + A(2, 2) += (p.y - cy)*(p.y - cy); + A(3, 3) += (p.z - cz)*(p.z - cz); + A(1, 2) += (p.x - cx)*(p.y - cy); + A(1, 3) += (p.x - cx)*(p.z - cz); + A(2, 3) += (p.y - cy)*(p.z - cz); + } + + DiagonalMatrix D; + Matrix V; + try { + Jacobi(A,D,V); + } catch (ConvergenceException) { + cout << "couldn't find plane..." << endl; + return 0; + } + /* + cout << "A: "<< endl << A << endl; + cout << "D: "<< endl << D << endl; + cout << "V: "<< endl << V << endl; + */ + int index; + D.MinimumAbsoluteValue1(index); + + plane[0] = V(1,index); + plane[1] = V(2,index); + plane[2] = V(3,index); + plane[3] = plane[0]*cx + plane[1]*cy + plane[2]*cz; + + double sum = 0.0; + for(int i = 1; i < 4; i++) { + sum += D(i); + } + sum = D(index)/sum; + return sum; +} + diff --git a/src/shapes/hsm3d.cc b/src/shapes/hsm3d.cc new file mode 100644 index 0000000..32b063a --- /dev/null +++ b/src/shapes/hsm3d.cc @@ -0,0 +1,302 @@ +/** + * Representation of the Accumulator Cube. + * + * This file contains the functions necessary to perform the transformations + * between normal vectors and cube coordinates. The representation is taken + * from + * A. Censi and S. Carpin, + * HSM3D: Feature-Less Global 6DOF Scan-Matching in the Hough/Radon Domain, + * In Proceedings of the IEEE International Conference on Robotics and + * Automation, 2009. + * + * The code in this file is a modified version of the code given by the authors + * on http://purl.org/censi/2008/hsm3d + * + * We gratefully appreciate the work of the authors and thank them for making + * the code publically available. + * + * @author Dorit Borrmann. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +/* + + AUTORIGHTS + Copyright (c) 2008 The Regents of the University of California. + All Rights Reserved. + + Created by Stefano Carpin + University of California, Merced, Robotics Lab - School of Engineering + + Permission to use, copy, modify, and distribute this software and its + documentation for educational, research and non-profit purposes, without fee, + and without a written agreement is hereby granted, provided that the above + copyright notice, this paragraph and the following three paragraphs appear in + all copies. + + This software program and documentation are copyrighted by The Regents of the + University of California. The software program and documentation are supplied + "as is", without any accompanying services from The Regents. The Regents does + not warrant that the operation of the program will be uninterrupted or + error-free. The end-user understands that the program was developed for + research purposes and is advised not to rely exclusively on the program for + any reason. + + IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR + DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING + LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, + EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY + WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED + HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO + OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR + MODIFICATIONS. + + */ +#ifndef __HSM3D_ICC__ +#define __HSM3D_ICC__ + +#include "shapes/accumulator.h" + +bool real_compare(double x, double y) { + return fabs(x - y) < 0.000000001; + } + + buffer_point AccumulatorCube::coords_s2_to_cell(double* s, unsigned int width) { + + cube_point cubi; + + double s_norm =sqrt(s[0]*s[0] + s[1]*s[1] + s[2]*s[2]); + s[0] = s[0] / s_norm; + s[1] = s[1] / s_norm; + s[2] = s[2] / s_norm; + + double sa[3]; + sa[0] = fabs(s[0]); + sa[1] = fabs(s[1]); + sa[2] = fabs(s[2]); + + if ( ( sa[0] >= sa[1] ) && ( sa[0] >= sa[2] ) ) { + cubi.face = s[0] > 0 ? 1 : 4; + cubi.u = s[1] / s[0]; + cubi.v = s[2] / s[0]; + } + + else if ( ( sa[1] >= sa[0] ) && ( sa[1] >= sa[2] ) ) { + cubi.face = s[1] > 0 ? 2 : 5; + cubi.u = s[0] / s[1]; + cubi.v = s[2] / s[1]; + } + + else if ( ( sa[2] >= sa[1] ) && ( sa[2] >= sa[0] ) ) { + cubi.face = s[2] > 0 ? 3 : 6; + cubi.u = s[0] / s[2]; + cubi.v = s[1] / s[2]; + } else { + cubi.face = 0; + cubi.u = 0; + cubi.v = 0; + } + + buffer_point retval; + + double u = (cubi.u + 1)/2; + double v = (cubi.v + 1)/2; + + unsigned int n = width; + + retval.face = cubi.face; + + retval.i = real_compare(u,1) ? n : 1 + floor(u*n); + retval.j = real_compare(v,1) ? n : 1 + floor(v*n); + + return retval; + + } + + double* AccumulatorCube::coords_cube_to_s2(buffer_point src, unsigned int width) { + + cube_point retval; + retval.face = src.face; + retval.u = (src.i - 0.5 ) / (static_cast(width)); + retval.u = retval.u*2 - 1; + + retval.v = (src.j - 0.5 ) / (static_cast(width)); + retval.v = retval.v*2 - 1; + + double *result = new double[3]; + + switch ( retval.face ) { + case 1: + result[0] = 1; + result[1] = retval.u; + result[2] = retval.v; + break; + case 4: + result[0] = -1; + result[1] = -retval.u; + result[2] = -retval.v; + break; + case 2: + result[0] = retval.u; + result[1] = 1; + result[2] = retval.v; + break; + case 5: + result[0] = -retval.u; + result[1] = -1; + result[2] = -retval.v; + break; + case 3: + result[0] = retval.u; + result[1] = retval.v; + result[2] = 1; + break; + case 6: + result[0] = -retval.u; + result[1] = -retval.v; + result[2] = -1; + break; + } + + double norm = sqrt(result[0]*result[0] + result[1]*result[1] + result[2]*result[2]); + result[0] /= norm; + result[1] /= norm; + result[2] /= norm; + + return result; + } + + void AccumulatorCube::coords_cube_for_print(buffer_point src, double** result, unsigned int width) { + /* + assert((src.face >=1 ) && (src.face <=6 )); + assert((src.i >= 1 ) && ( src.i <= width)); + assert((src.j >= 1 ) && ( src.j <= width)); + */ + + cube_point retval1; + cube_point retval2; + cube_point retval3; + cube_point retval4; + retval1.face = src.face; + retval2.face = src.face; + retval3.face = src.face; + retval4.face = src.face; + + retval1.u = (src.i - 1.0 ) / (static_cast(width)); + retval2.u = (src.i - 1.0 ) / (static_cast(width)); + retval1.u = retval1.u*2.0 - 1.0; + retval2.u = retval2.u*2.0 - 1.0; + + retval1.v = (src.j - 1.0 ) / (static_cast(width)); + retval2.v = (src.j) / (static_cast(width)); + retval1.v = retval1.v*2 - 1; + retval2.v = retval2.v*2 - 1; + + retval3.u = (src.i) / (static_cast(width)); + retval4.u = (src.i) / (static_cast(width)); + retval3.u = retval3.u*2.0 - 1.0; + retval4.u = retval4.u*2.0 - 1.0; + + retval3.v = (src.j) / (static_cast(width)); + retval4.v = (src.j - 1.0) / (static_cast(width)); + retval3.v = retval3.v*2 - 1; + retval4.v = retval4.v*2 - 1; + /* + assert((src.face >=1 ) && (src.face <=6 )); + assert((src.u >= -1 ) && ( src.u <= 1)); + assert((src.v >= -1 ) && ( src.v <= 1)); + */ + + // double *result = new double[2][3]; + + switch ( retval1.face ) { + case 1: + result[0][0] = 1; + result[0][1] = retval1.u; + result[0][2] = retval1.v; + result[1][0] = 1; + result[1][1] = retval2.u; + result[1][2] = retval2.v; + result[2][0] = 1; + result[2][1] = retval3.u; + result[2][2] = retval3.v; + result[3][0] = 1; + result[3][1] = retval4.u; + result[3][2] = retval4.v; + break; + case 4: + result[0][0] = -1; + result[0][1] = -retval1.u; + result[0][2] = -retval1.v; + result[1][0] = -1; + result[1][1] = -retval2.u; + result[1][2] = -retval2.v; + result[2][0] = -1; + result[2][1] = -retval3.u; + result[2][2] = -retval3.v; + result[3][0] = -1; + result[3][1] = -retval4.u; + result[3][2] = -retval4.v; + break; + case 2: + result[0][0] = retval1.u; + result[0][1] = 1; + result[0][2] = retval1.v; + result[1][0] = retval2.u; + result[1][1] = 1; + result[1][2] = retval2.v; + result[2][0] = retval3.u; + result[2][1] = 1; + result[2][2] = retval3.v; + result[3][0] = retval4.u; + result[3][1] = 1; + result[3][2] = retval4.v; + break; + case 5: + result[0][0] = -retval1.u; + result[0][1] = -1; + result[0][2] = -retval1.v; + result[1][0] = -retval2.u; + result[1][1] = -1; + result[1][2] = -retval2.v; + result[2][0] = -retval3.u; + result[2][1] = -1; + result[2][2] = -retval3.v; + result[3][0] = -retval4.u; + result[3][1] = -1; + result[3][2] = -retval4.v; + break; + case 3: + result[0][0] = retval1.u; + result[0][1] = retval1.v; + result[0][2] = 1; + result[1][0] = retval2.u; + result[1][1] = retval2.v; + result[1][2] = 1; + result[2][0] = retval3.u; + result[2][1] = retval3.v; + result[2][2] = 1; + result[3][0] = retval4.u; + result[3][1] = retval4.v; + result[3][2] = 1; + break; + case 6: + result[0][0] = -retval1.u; + result[0][1] = -retval1.v; + result[0][2] = -1; + result[1][0] = -retval2.u; + result[1][1] = -retval2.v; + result[1][2] = -1; + result[2][0] = -retval3.u; + result[2][1] = -retval3.v; + result[2][2] = -1; + result[3][0] = -retval4.u; + result[3][1] = -retval4.v; + result[3][2] = -1; + break; + } + + } + +#endif diff --git a/src/shapes/image.cc b/src/shapes/image.cc new file mode 100644 index 0000000..baca49d --- /dev/null +++ b/src/shapes/image.cc @@ -0,0 +1,776 @@ +/* + * image implementation + * + * Copyright (C) Dorit Borrmann + * + * Released under the GPL version 3. + * + */ + +#include "shapes/image.h" +#include "slam6d/globals.icc" +#include +#include +#include +#include +using std::string; +using std::ofstream; +#include +using std::set; +#include +using std::insert_iterator; + +Image::Image(float _minw, float _maxw, float _minh, float _maxh, float +_resolution, const vector *points) { + minh = _minh; + minw = _minw; + maxh = _maxh; + maxw = _maxw; + width = (maxw - minw)/_resolution + 1; + height = (maxh - minh)/_resolution + 1; + int size = points->size(); + + data = new float*[width]; + for(int i = 0; i < width; i++) { + data[i] = new float[height]; + for(int j = 0; j < height; j++) { + data[i][j] = 0.0; + } + } + if(points != 0) { + double *tmpp = new double[3]; + double reflectance; + double * polar = new double[3]; + for(int i = 0; i < size; i++) { + Point p = (*points)[i]; + tmpp[0] = p.x; + tmpp[1] = p.z; + tmpp[2] = p.y; + reflectance = p.reflectance; + //tmpp = points[i]; + // phi theta rho + // theta = width, phi = height, rho = distance value + toPolar(tmpp, polar); + int w_i = (int)((double)((deg(polar[1]) + 90.0) - minw)/(double)(maxw - minw) * (double)width) % width; + //int w_i = ((double)((int)(deg(polar[1]) + 90)%360 - minw)/(double)(maxw - minw)) * (double)width; + if(w_i < 0) { + w_i = 0; + } else if(w_i >= width) { + w_i = width - 1; + } + int h_i = (int)((double)(deg(polar[0]) - minh)/(double)(maxh - minh) * (double)height); + if(h_i < 0) { + h_i = 0; + } else if(h_i >= height) { + h_i = height - 1; + } + + if((fabs(data[w_i][h_i]) < 0.000001) || (data[w_i][h_i] < p.reflectance)) { + data[w_i][h_i] = (float)reflectance; + //cout << data[w_i][h_i] << " " << endl; + } + /* + if((fabs(data[w_i][h_i]) < 0.000001) || (data[w_i][h_i] > polar[2])) { + data[w_i][h_i] = (float)reflectance; + //cout << data[w_i][h_i] << " " << endl; + } + */ + } + delete[] tmpp; + delete[] polar; + } + +} + +Image::Image(float _minw, float _maxw, float _minh, float _maxh, float _resolution, double * const* points, int size) { + minh = _minh; + minw = _minw; + maxh = _maxh; + maxw = _maxw; + width = (maxw - minw)/_resolution + 1; + height = (maxh - minh)/_resolution + 1; + + data = new float*[width]; + for(int i = 0; i < width; i++) { + data[i] = new float[height]; + for(int j = 0; j < height; j++) { + data[i][j] = 0.0; + } + } + if(points != 0) { + double *tmpp = new double[3]; + double * polar = new double[3]; + for(int i = 0; i < size; i++) { + tmpp[0] = points[i][0]; + tmpp[1] = points[i][2]; + tmpp[2] = points[i][1]; + //tmpp = points[i]; + // phi theta rho + // theta = width, phi = height, rho = distance value + toPolar(tmpp, polar); + int w_i = (int)((double)((deg(polar[1]) + 90.0) - minw)/(double)(maxw - minw) * (double)width) % width; + //int w_i = ((double)((int)(deg(polar[1]) + 90)%360 - minw)/(double)(maxw - minw)) * (double)width; + if(w_i < 0) { + w_i = 0; + } else if(w_i >= width) { + w_i = width - 1; + } + int h_i = (int)((double)(deg(polar[0]) - minh)/(double)(maxh - minh) * (double)height); + if(h_i < 0) { + h_i = 0; + } else if(h_i >= height) { + h_i = height - 1; + } + + if((fabs(data[w_i][h_i]) < 0.000001) || (data[w_i][h_i] > polar[2])) { + data[w_i][h_i] = (float)polar[2]; + //cout << data[w_i][h_i] << " " << endl; + } + } + delete[] tmpp; + delete[] polar; + } + +} + +Image::Image(float _minw, float _maxw, float _minh, float _maxh, float _resolution, const vector *points) { + //TODO correct this!!! + minh = _minh; + minw = _minw; + maxh = _maxh; + maxw = _maxw; + width = (maxw - minw)/_resolution + 1; + height = (maxh - minh)/_resolution + 1; + + data = new float*[width]; + for(int i = 0; i < width; i++) { + data[i] = new float[height]; + for(int j = 0; j < height; j++) { + data[i][j] = 0.0; + } + } + if(points != 0) { + double *tmpp; + double * polar = new double[3]; + for(int i = 0; i < points->size(); i++) { + tmpp = new double[3]; + //tmpp = (*points)[i]; + tmpp[0] = (*points)[i][0]; + tmpp[1] = (*points)[i][2]; + tmpp[2] = (*points)[i][1]; + // phi theta rho + // theta = width, phi = height, rho = distance value + toPolar(tmpp, polar); + int w_i = (((int)(deg(polar[1]) + 180)%360 - minw)/(maxw - minw)) * width; + w_i = (((int)(deg(polar[1]) ) - minw)/(maxw - minw)) * width; + if(w_i < 0) { + w_i = 0; + } else if(w_i >= width) { + w_i = width - 1; + } + int h_i = (((int)(deg(polar[0]) + 90)%180 - minh)/(maxh - minh)) * height; + h_i = (((int)(deg(polar[0]) ) - minh)/(maxh - minh)) * height; + if(h_i < 0) { + h_i = 0; + } else if(h_i >= height) { + h_i = height - 1; + } + + if((fabs(data[w_i][h_i] - 0.0) < 0.000100) || (data[w_i][h_i] > polar[2])) { + data[w_i][h_i] = (float)polar[2]; + } + } + } + for(int j = 0; j < height; j++) { + for(int i = 0; i < width; i++) { + cout << data[i][j] << " " ; + } + cout << endl; + } + +} + +Image::~Image() { + for(int i = 0; i < width; i++) { + delete[] data[i]; + } + delete[] data; +} + +int Image::getWidth() { + return width; +} + +int Image::getHeight() { + return height; +} + +float Image::getValueAt(int width, int height) { + return data[width][height]; +} + +float Image::getMin() { + float min = std::numeric_limits::max(); + + for(int i = 0; i < width; i++) { + for(int j = 0; j < height; j++) { + min = std::min(min, data[i][j]); + } + } + return min; +} + +float Image::getMax() { + float max = std::numeric_limits::min(); + for(int i = 0; i < width; i++) { + for(int j = 0; j < height; j++) { + max = std::max(max, data[i][j]); + } + } + return max; +} + +void Image::mergeregion(int x, int y, int delreg, int targetreg, int** img, int it) { + cout << x << " " << y << " " << delreg << " " << targetreg << " " << it << endl; + // traversed more than necessary + if(it > 0) return; +// cout << (j % width) << ", " << j / width << " " << width << " " << old<< " ->> " << targetreg << endl; + img[x][y] = targetreg; + cout << "A" << endl; + // left + if ( x > 0 && (img[x - 1][y] == delreg)){ + cout << "1" << endl; + mergeregion(x-1, y ,delreg, targetreg, img); + cout << "2" << endl; + } + cout << "B" << endl; + // right + if ( x < width - 1 && (img[x + 1][y] == delreg)){ + mergeregion(x+1, y, delreg, targetreg, img); + } + cout << "C" << endl; + // up + if ( y > 0 && (img[x][y-1] == delreg )) { + mergeregion(x, y - 1, delreg, targetreg, img); + } + cout << "D" << endl; + // down + if ( y + 1 < height && (img[x][y+1] == delreg )) { + mergeregion(x, y + 1, delreg, targetreg, img); + } + cout << "E" << endl; +} + +int Image::calcMarker(float _threshold, int ** regdat) { + // segment picture + threshold = _threshold; + cout << threshold << " "; + int counter = 0; + for(int y = 0; y < height; y++) { + for(int x = 0; x < width; x++) { + if(data[x][y] > threshold) { + counter++; + regdat[x][y] = 100; + //data[x][y] = 100; + } else { + regdat[x][y] = 0; + //data[x][y] = 0; + } + } + } + + //printScans(regdat, height, width) + //printImage("marker.ppm", false, regdat, height, width, 0, 1); + printImage("marker.ppm", false, regdat, height, width, 0, 100); + cout << counter << endl; + return counter; +} + +int Image::cluster(float dist, int ** dat, int ** regdat) { + vector > linked; + int up, left; + int region = 0; + for(int y = 0; y < height; y++) { + for(int x = 0; x < width; x++) { + float value = dat[x][y]; + + if(value != 0) { + // left border + if(x==0) { + left = value + dist*2.0; + } else { + left = dat[x-1][y]; + } + // upper border + if(y==0) { + up = value + dist*2.0; + } else { + up = dat[x][y-1]; + } + + if (fabs(left - value) > dist) { + if (fabs(up - value) > dist) { + regdat[x][y] = ++region; // new region + set *joined = new set; + joined->insert(region); + linked.push_back(*joined); + } else { + regdat[x][y] = regdat[x][y - 1]; // use upper region + } + } else if (fabs(up - value) > dist) { + regdat[x][y] = regdat[x-1][y]; // use left region + } else { + // merge left and upper region, default to lower regioning number + if (regdat[x][y - 1] == regdat[ x - 1][y]) { + regdat[x][y] = regdat[x-1][y]; + continue; // already same region, nothing to do + } + + /* + int minreg, maxreg; + falschrum?? + minreg = regdat[x][y - 1]; + maxreg = regdat[x - 1][y]; + */ + int up = regdat[x][y - 1]; + int left = regdat[x - 1][y]; + regdat[x][y] = up; + set current; + set *joined = new set; + joined->insert(up); + joined->insert(left); + + for(vector >::iterator itr = linked.begin(); itr != linked.end(); ) { + current = (*itr); + if(current.find(up) != current.end() || current.find(left) != current.end()) { + set *newjoined = new set(); + insert_iterator > res_ins(*newjoined, newjoined->begin()); + + set_union(joined->begin(), joined->end(), current.begin(), current.end(), res_ins); + joined->clear(); + delete joined; + joined = newjoined; + itr=linked.erase(itr); + } else { + itr++; + } + } + + linked.push_back(*joined); + } + } + } + } + + cout << region << " " << linked.size(); + int linkedindex[region+1]; + linkedindex[0] = 0; + set current; + int link = 0; + for(vector >::iterator itr = linked.begin(); itr != linked.end(); itr++) { + current = (*itr); + for(set::iterator sitr = current.begin(); + sitr != current.end(); + sitr++) { + linkedindex[*sitr] = link; + } + link++; + } + + + cout << "Regions " << linked.size() << endl; + /* + for(int i = 0; i <= region; i++) { + cout << i << " " << linkedindex[i] << endl; + } + */ + for(int y = 0; y < height; y++) { + for(int x = 0; x < width; x++) { + regdat[x][y] = linkedindex[regdat[x][y]]; + } + } + + printImage("cluster.ppm", false, regdat, height, width, 0, linked.size()); + + return linked.size(); + +} + +void Image::writeCenters(int regions, int** cluster, const vector *points) { + int size = points->size(); + + vector clusters[regions]; + /* + vector > clusters; + + + for(int i = 0; i < regions; i++) { + vector tmp = new vector(); + clusters.push_back(tmp); + } + + + cout << "Regions: " << regions << " " << clusters.size() << endl;; + for(int i = 0; i < regions; i++) { + cout << i << " " << clusters[i]->size() << endl; + Point p = *clusters[i][0]; + cout << p.x << " " << p.y << " " << p.z << endl; + } + cout << "done" << endl; + */ + /* + for(int i = 0; i < regions; i++) { + vector *tmp = new vector(); + clusters[i].push_back(tmp); + } + */ + + if(points != 0) { + double *tmpp = new double[3]; + double reflectance; + double * polar = new double[3]; + for(int i = 0; i < size; i++) { + Point p = (*points)[i]; + tmpp[0] = p.x; + tmpp[1] = p.z; + tmpp[2] = p.y; + reflectance = p.reflectance; + //tmpp = points[i]; + // phi theta rho + // theta = width, phi = height, rho = distance value + if(reflectance > threshold) { + toPolar(tmpp, polar); + int w_i = (int)((double)((deg(polar[1]) + 90.0) - minw)/(double)(maxw - minw) * (double)width) % width; + //int w_i = ((double)((int)(deg(polar[1]) + 90)%360 - minw)/(double)(maxw - minw)) * (double)width; + if(w_i < 0) { + w_i = 0; + } else if(w_i >= width) { + w_i = width - 1; + } + int h_i = (int)((double)(deg(polar[0]) - minh)/(double)(maxh - minh) * (double)height); + if(h_i < 0) { + h_i = 0; + } else if(h_i >= height) { + h_i = height - 1; + } + int tmp = cluster[w_i][h_i] - 1; + if(cluster[w_i][h_i] != 0) { + clusters[tmp].push_back(p); + } + } + } + delete[] tmpp; + delete[] polar; + } + + cout << "Regions: " << regions << " " << clusters->size() << endl; + int markercounter = 0; + for(int i = 0; i < regions; i++) { + //cout << i << " " << clusters[i].size() << endl; + double point[3]; + point[0] = point[1] = point[2] = 0; + for(int j = 0; j < clusters[i].size(); j++) { + point[0] += clusters[i][j].x; + point[1] += clusters[i][j].y; + point[2] += clusters[i][j].z; + } + for(int j = 0; j < 3; j++) { + point[j] /= clusters[i].size(); + } + //cout << p.x << " " << p.y << " " << p.z << endl; + cout << point[0] << " " << point[1] << " " << point[2] << " TP" << to_string(markercounter, 4) << endl; + markercounter++; + } + +} + +int Image::blobColor(float dist, int ** regdat) { + // segment picture + int region = 0; // start at 12 to incresae visibility + float up, left; + + for(int y = 0; y < height; y++) { + for(int x = 0; x < width; x++) { + + float value = data[x][y]; + // left border + if (x == 0 ) { + left = value + dist*2.0; + } else { + left = data[x - 1][y]; + } + // or upper border + if ( y == 0) { + up = value + dist*2; + } else { + up = data[x][y - 1]; + } + + if (fabs(left - value) > dist) { + if (fabs(up - value) > dist) { + regdat[x][y] = ++region; // new region + } else { + regdat[x][y] = regdat[x][y - 1]; // use upper region + } + } else if (fabs(up - value) > dist) { + regdat[x][y] = regdat[x-1][y]; // use left region + } else { + // merge left and upper region, default to lower regioning number + if (regdat[x][y - 1] == regdat[ x - 1][y]) { + regdat[x][y] = regdat[x-1][y]; + continue; // already same region, nothing to do + } + + int minreg, maxreg; + /* + falschrum?? + minreg = regdat[x][y - 1]; + maxreg = regdat[x - 1][y]; + */ + maxreg = regdat[x][y - 1]; + minreg = regdat[x - 1][y]; + regdat[x][y] = maxreg; + cout << "mergeRegion" << endl; + mergeregion(x, y, maxreg, minreg, regdat); + cout << "mergeRegion done" << endl; + } + } + } + + cout << "color done" << endl; + //printScans(regdat, height, width) + printImage("bla.ppm", false, regdat, height, width, 1.0, region); + return region; +} + +void kMeans(float dist, int ** regdat) { + +} + +void EM(float dist, int ** regdat) { + +} + +void normalizedCuts(float dist, int ** regdat) { + +} + +void lineMerge() { + +} + +void Image::printScans(int ** regdat, double * const* points, int size) { + int max_i = 0; + for(int i = 0; i < width; i++) { + for(int j = 0; j < height; j++) { + max_i = max_i > regdat[i][j] ? max_i : regdat[i][j]; + } + } + cout << "size " << size << endl; + cout << "max_i is " << max_i << endl; + vector clusters[max_i + 1]; + + if(points != 0) { + cout << "points" << endl; + double *tmpp = new double[3]; + double * polar = new double[3]; + for(int i = 0; i < size; i++) { + tmpp[0] = points[i][0]; + tmpp[1] = points[i][2]; + tmpp[2] = points[i][1]; + //tmpp = points[i]; + // phi theta rho + // theta = width, phi = height, rho = distance value + toPolar(tmpp, polar); + int w_i = (int)((double)((deg(polar[1]) + 90.0) - minw)/(double)(maxw - minw) * (double)width) % width; + //int w_i = ((double)((int)(deg(polar[1]) + 90)%360 - minw)/(double)(maxw - minw)) * (double)width; + if(w_i < 0) { + w_i = 0; + } else if(w_i >= width) { + w_i = width - 1; + } + int h_i = (int)((double)(deg(polar[0]) - minh)/(double)(maxh - minh) * (double)height); + if(h_i < 0) { + h_i = 0; + } else if(h_i >= height) { + h_i = height - 1; + } + //cout << i << " " << regdat[w_i][h_i] << endl; + clusters[regdat[w_i][h_i]].push_back(points[i]); + } + delete[] tmpp; + delete[] polar; + + cout << "clustering done " << endl; + + string clusteroutname = ""; + int index = 0; + for(int i = 0; i < max_i; i++) { + if(clusters[i].size() > 0) { + clusteroutname = "clusters/scan" + to_string(index, 3) + ".3d"; + index++; + ofstream clusterout(clusteroutname.c_str()); + clusterout << i << endl; + for(int j = 0; j < clusters[i].size(); j++) { + clusterout << clusters[i][j][0] << " " + << clusters[i][j][1] << " " << clusters[i][j][2] << endl; + } + clusterout.close(); + clusterout.clear(); + } + } + } +} + + +void Image::printImage(const char* filename, bool color, int** img, int height, int width, int min, int max) { + double Fact = 255.0 /(max - min); + std::ofstream outfile(filename); + if(outfile.good()) { + if(!color) { + outfile << "P2\n" << width << " " << height << std::endl << "255" << endl; + } else { + outfile << "P3\n" << width << " " << height << std::endl << "255" << endl; + } + + for(int j = 0; j < height; j++) { + for(int i = 0; i < width; i++) { + short gray = std::min(std::max((int)(Fact * (img[i][j] - min)), 0), 255); + if(!color) { + outfile << gray << " "; + } else { + double h = 255.0-gray; + double v = 1.0; + double s = 1.0; + double r = 0, g = 0, b = 0; + double h1 = h/60.0; + int i = (int)h1; + double f = h1 - i; + double pv = v * (1-s); + double qv = v * (1-s*f); + double tv = v * (1-s*(1-f)); + switch(i) { + case 0: + r = v; + g = tv; + b = pv; + break; + case 1: + r = qv; + g = v; + b = pv; + break; + case 2: + r = pv; + g = v; + b = tv; + break; + case 3: + r = pv; + g = qv; + b = v; + break; + case 4: + r = tv; + g = pv; + b = v; + break; + case 5: + r = v; + g = pv; + b = qv; + break; + case 6: + r = v; + g = tv; + b = pv; + break; + default: + break; + } + outfile << (int)(r*255.0) << " " << (int)(g*255.0) << " " << (int)(b*255.0) << " "; + } + } + outfile << std::endl; + } + } + outfile.close(); + +} + +void Image::printImage(const char *filename, bool color) { + float min = getMin(); + float max = getMax(); + + double Fact = 255.0 /(max - min); + std::ofstream outfile(filename); + if(outfile.good()) { + if(!color) { + outfile << "P2\n" << width << " " << height << std::endl << "255" << endl; + } else { + outfile << "P3\n" << width << " " << height << std::endl << "255" << endl; + } + + for(int j = 0; j < height; j++) { + for(int i = 0; i < width; i++) { + short gray = std::min(std::max((int)(Fact * (data[i][j] - min)), 0), 255); + if(!color) { + outfile << gray << " "; + } else { + double h = 255.0-gray; + double v = 1.0; + double s = 1.0; + double r = 0, g = 0, b = 0; + double h1 = h/60.0; + int i = (int)h1; + double f = h1 - i; + double pv = v * (1-s); + double qv = v * (1-s*f); + double tv = v * (1-s*(1-f)); + switch(i) { + case 0: + r = v; + g = tv; + b = pv; + break; + case 1: + r = qv; + g = v; + b = pv; + break; + case 2: + r = pv; + g = v; + b = tv; + break; + case 3: + r = pv; + g = qv; + b = v; + break; + case 4: + r = tv; + g = pv; + b = v; + break; + case 5: + r = v; + g = pv; + b = qv; + break; + case 6: + r = v; + g = tv; + b = pv; + break; + default: + break; + } + outfile << (int)(r*255.0) << " " << (int)(g*255.0) << " " << (int)(b*255.0) << " "; + } + } + outfile << std::endl; + } + } + outfile.close(); +} diff --git a/src/shapes/matchMarker.cc b/src/shapes/matchMarker.cc new file mode 100644 index 0000000..2a01966 --- /dev/null +++ b/src/shapes/matchMarker.cc @@ -0,0 +1,498 @@ +/* + * matchMarker implementation + * + * Copyright (C) Dorit Borrmann + * + * Released under the GPL version 3. + * + */ + +#include +using std::string; +#include +using std::cout; +using std::cerr; +using std::endl; +#include +using std::ofstream; +using std::ifstream; +#include +#include + +#include "slam6d/scan.h" + +#include "slam6d/scan_io.h" +#include "slam6d/globals.icc" +#include "slam6d/icp6Dminimizer.h" +#include "slam6d/icp6Dsvd.h" +#include "slam6d/icp6D.h" + +#ifndef _MSC_VER +#include +#else +#include "XGetopt.h" +#endif + +struct match { + double* s_a; + double* s_b; + double* s_c; + double* t_a; + double* t_b; + double* t_c; + int n_o_m; + double variance; + double alignxf[16]; +}; + +void refine(int source, int target, match &tmp) { + // transform scan according to matching triple + Scan::allScans[target]->transformToMatrix(tmp.alignxf,Scan::INVALID); + // search for point pairs + //TODO + bool quiet = true; + icp6Dminimizer *my_icp6Dminimizer = 0; + my_icp6Dminimizer = new icp6D_SVD(quiet); + + icp6D *my_icp = 0; + double mdm = 25; + int mni = 100; + my_icp = new icp6D(my_icp6Dminimizer, mdm, mni, quiet, false, -1, false, 1, 0.0000, false, false); + + my_icp->match(Scan::allScans[source], Scan::allScans[target]); + + ////cout << "Point pairs: "<< tmp.n_o_m << endl; + const double * transMat = Scan::allScans[target]->get_transMat(); + for(int i = 0; i < 16; i++) { + //cout << tmp.alignxf[i] << " " ; + tmp.alignxf[i] = transMat[i]; + } + //cout << endl; +} + +void evaluate(int source, int target, match &tmp) { + //cout << "S1 " << tmp.s_a[0] << " " << tmp.s_a[1] << " " << tmp.s_a[2] << endl; + //cout << "T1 " << tmp.t_a[0] << " " << tmp.t_a[1] << " " << tmp.t_a[2] << endl; + //cout << "S2 " << tmp.s_b[0] << " " << tmp.s_b[1] << " " << tmp.s_b[2] << endl; + //cout << "T2 " << tmp.t_b[0] << " " << tmp.t_b[1] << " " << tmp.t_b[2] << endl; + //cout << "S3 " << tmp.s_c[0] << " " << tmp.s_c[1] << " " << tmp.s_c[2] << endl; + //cout << "T3 " << tmp.t_c[0] << " " << tmp.t_c[1] << " " << tmp.t_c[2] << endl; + + // Point pairs + vector pairs_in; + pairs_in.push_back(PtPair(tmp.s_a, tmp.t_a)); + pairs_in.push_back(PtPair(tmp.s_b, tmp.t_b)); + pairs_in.push_back(PtPair(tmp.s_c, tmp.t_c)); + + // Calculate centroids + double centroid_s[3]; + double centroid_t[3]; + centroid_s[0] = ((tmp.s_a[0] + tmp.s_b[0] + tmp.s_c[0])/3.0); + centroid_s[1] = ((tmp.s_a[1] + tmp.s_b[1] + tmp.s_c[1])/3.0); + centroid_s[2] = ((tmp.s_a[2] + tmp.s_b[2] + tmp.s_c[2])/3.0); + centroid_t[0] = ((tmp.t_a[0] + tmp.t_b[0] + tmp.t_c[0])/3.0); + centroid_t[1] = ((tmp.t_a[1] + tmp.t_b[1] + tmp.t_c[1])/3.0); + centroid_t[2] = ((tmp.t_a[2] + tmp.t_b[2] + tmp.t_c[2])/3.0); + + // transform scan according to matching triple + icp6Dminimizer *my_icp6Dminimizer = 0; + my_icp6Dminimizer = new icp6D_SVD(true); + my_icp6Dminimizer->Point_Point_Align(pairs_in, tmp.alignxf, centroid_s, centroid_t); + Scan::allScans[target]->transformToMatrix(tmp.alignxf,Scan::INVALID); + + vector pairs_out; + // search for point pairs + Scan::getPtPairs(&pairs_out, Scan::allScans[source], Scan::allScans[target], 1, 0, 25.0, centroid_s, centroid_t); + + tmp.n_o_m = pairs_out.size(); + //cout << tmp.n_o_m << endl; + + if(tmp.n_o_m > Scan::allScans[target]->get_points_red_size()) { + //cout << "Point pairs: "<< tmp.n_o_m << endl; + + /* + for(int i = 0; i < 16; i++) { + cout << tmp.alignxf[i] << " "; + } + for(int i = 0; i < pairs_out.size(); i++) { + cout << pairs_out[i].p1.x << " " << pairs_out[i].p1.y << " " << pairs_out[i].p1.z << + " " << pairs_out[i].p2.x << " " << pairs_out[i].p2.y << " " << pairs_out[i].p2.z << endl; + } + */ + } + + //cout << "S1 " << tmp.s_a[0] << " " << tmp.s_a[1] << " " << tmp.s_a[2] << endl; + //cout << "T1 " << tmp.t_a[0] << " " << tmp.t_a[1] << " " << tmp.t_a[2] << endl; + //cout << "S2 " << tmp.s_b[0] << " " << tmp.s_b[1] << " " << tmp.s_b[2] << endl; + //cout << "T2 " << tmp.t_b[0] << " " << tmp.t_b[1] << " " << tmp.t_b[2] << endl; + //cout << "S3 " << tmp.s_c[0] << " " << tmp.s_c[1] << " " << tmp.s_c[2] << endl; + //cout << "T3 " << tmp.t_c[0] << " " << tmp.t_c[1] << " " << tmp.t_c[2] << endl; + //cout << endl; + Scan::allScans[target]->resetPose(); + + delete my_icp6Dminimizer; +} + +void matchBruteForce(int start, int end) { // BOF + double* const* source = Scan::allScans[start]->get_points_red(); + double* const* target = Scan::allScans[end]->get_points_red(); + int nr_m_s = Scan::allScans[start]->get_points_red_size(); + int nr_m_t = Scan::allScans[end]->get_points_red_size(); + double dist_s[nr_m_s][nr_m_s]; + double dist_t[nr_m_t][nr_m_t]; + double eps = 5.0; + vector matching_results; + + // calculate distance graphs + for(int i = 0; i < nr_m_s; i++) { + for(int j = i; j < nr_m_s; j++) { + double dist = sqrt(Dist2(source[i], source[j])); + dist_s[i][j] = dist; + dist_s[j][i] = dist; + //cout << dist << " "; + } + //cout << endl; + } + //cout << endl; + for(int i = 0; i < nr_m_t; i++) { + for(int j = i; j < nr_m_t; j++) { + double dist = sqrt(Dist2(target[i], target[j])); + dist_t[i][j] = dist; + dist_t[j][i] = dist; + //cout << dist << " "; + } + //cout << endl; + } + //cout << endl; + //cout << "Done calculating distances" << endl; + + // do matching + for(int i = 0; i < nr_m_s; i++) { // 1 + for(int j = i + 1; j < nr_m_s; j++) { // 2 + double dist_a = dist_s[i][j]; + for(int k = 0; k < nr_m_t; k++) { // 3 + for(int l = 0; l < nr_m_t; l++) { // 4 + if(fabs(dist_t[k][l] - dist_a) < eps) { // 5 + for(int m = j + 1; m < nr_m_s; m++) { // 6 + double dist_3_i = dist_s[i][m]; + double dist_3_j = dist_s[j][m]; + for(int n = 0; n < nr_m_t; n++) { // 7 + if(fabs(dist_t[k][n] - dist_3_i) < eps) { // 8 + if(fabs(dist_t[l][n] - dist_3_j) < eps) { // 9 + //match found calculate error function + match tmp; + tmp.s_a = source[i]; + tmp.s_b = source[j]; + tmp.s_c = source[m]; + tmp.t_a = target[k]; + tmp.t_b = target[l]; + tmp.t_c = target[n]; + evaluate(start, end, tmp); + matching_results.push_back(tmp); + } // 9 + } // 8 + } // 7 + } // 6 + } // 5 + } // 4 + } // 3 + } // 2 + } // 1 + int max = 0; + int max_i = 0; + for(int i = 0; i < matching_results.size(); i++) { + if(matching_results[i].n_o_m > max) { + max_i = i; + max = matching_results[i].n_o_m; + } + //cout << i << ": " << matching_results[i].n_o_m << ", " << matching_results[i].variance << endl; + for(int j = 0; j < 16; j++) { + //cout << matching_results[i].alignxf[j] << " "; + } + } + //cout << "Max index: " << max_i << ", points: " << max << endl; + for(int i = 0; i < 16; i++) { + //cout << matching_results[max_i].alignxf[i] << " "; + } + refine(start, end, matching_results[max_i]); + //cout << endl << "Refined: " << endl; + for(int i = 0; i < 16; i++) { + cout << matching_results[max_i].alignxf[i] << " "; + } + + cout << " 2" << endl; +} // EOF + +void matchMarker(int start, int end) { // BOF + cout << start << " " << end << endl; + double* const* source = Scan::allScans[start]->get_points_red(); + double* const* target = Scan::allScans[end]->get_points_red(); + int nr_m_s = Scan::allScans[start]->get_points_red_size(); + int nr_m_t = Scan::allScans[end]->get_points_red_size(); + cout << "Points: " << nr_m_s << " " << nr_m_t << endl; + double dist_s[nr_m_s][nr_m_s]; + double dist_t[nr_m_t][nr_m_t]; + double eps = 5.0; + vector matching_results; + + // calculate distance graphs + for(int i = 0; i < nr_m_s; i++) { + for(int j = i; j < nr_m_s; j++) { + double dist = sqrt(Dist2(source[i], source[j])); + dist_s[i][j] = dist; + dist_s[j][i] = dist; + //cout << dist << " "; + } + //cout << endl; + } + //cout << endl; + for(int i = 0; i < nr_m_t; i++) { + for(int j = i; j < nr_m_t; j++) { + double dist = sqrt(Dist2(target[i], target[j])); + dist_t[i][j] = dist; + dist_t[j][i] = dist; + //cout << dist << " "; + } + //cout << endl; + } + //cout << endl; + //cout << "Done calculating distances" << endl; + for(int runs = 0; runs < 100; runs++) { + int i = (int) (nr_m_s*(rand()/(RAND_MAX+1.0))); + int j = (int) (nr_m_s*(rand()/(RAND_MAX+1.0))); + int m = (int) (nr_m_s*(rand()/(RAND_MAX+1.0))); + double dist_a = dist_s[i][j]; + double dist_3_i = dist_s[i][m]; + double dist_3_j = dist_s[j][m]; + + + // do matching + for(int k = 0; k < nr_m_t; k++) { // 3 + for(int l = 0; l < nr_m_t; l++) { // 4 + if(fabs(dist_t[k][l] - dist_a) < eps) { // 5 + + for(int n = 0; n < nr_m_t; n++) { // 7 + if(fabs(dist_t[k][n] - dist_3_i) < eps) { // 8 + if(fabs(dist_t[l][n] - dist_3_j) < eps) { // 9 + //match found calculate error function + match tmp; + tmp.s_a = source[i]; + tmp.s_b = source[j]; + tmp.s_c = source[m]; + tmp.t_a = target[k]; + tmp.t_b = target[l]; + tmp.t_c = target[n]; + evaluate(start, end, tmp); + matching_results.push_back(tmp); + } // 9 + } // 8 + } // 7 + } // 6 + // 5 + } // 4 + } // 3 + } // 1 + int max = 0; + int max_i = 0; + for(int i = 0; i < matching_results.size(); i++) { + if(matching_results[i].n_o_m > max) { + max_i = i; + max = matching_results[i].n_o_m; + //cout << i << " " << max << endl; + } + //cout << i << ": " << matching_results[i].n_o_m << ", " << matching_results[i].variance << endl; + for(int j = 0; j < 16; j++) { + //cout << matching_results[i].alignxf[j] << " "; + } + } + cout << "Really?" << endl; + //cout << "Max index: " << max_i << ", points: " << max << endl; + for(int i = 0; i < 16; i++) { + //cout << matching_results[max_i].alignxf[i] << " "; + } + refine(start, end, matching_results[max_i]); + //cout << endl << "Refined: " << endl; + for(int i = 0; i < 16; i++) { + cout << matching_results[max_i].alignxf[i] << " "; + } + + cout << " 2" << endl; +} // EOF + +/** + * Explains the usage of this program's command line parameters + */ +void usage(char* prog) +{ +#ifndef _MSC_VER + const string bold("\033[1m"); + const string normal("\033[m"); +#else + const string bold(""); + const string normal(""); +#endif + cout << endl + << bold << "USAGE " << normal << endl + << " " << prog << "-s -e [options] directory" << endl << endl; + cout << bold << "OPTIONS" << normal << endl + << endl + << bold << " -s" << normal << " NR, " << bold << "--start=" << normal << "NR" << endl + << " start at scan NR (i.e., neglects the first NR scans)" << endl + << " [ATTENTION: counting naturally starts with 0]" << endl + << endl + << bold << " -e" << normal << " NR, " << bold << "--end=" << normal << "NR" << endl + << " end after scan NR" << endl + << endl + << bold << " -f" << normal << " F, " << bold << "--format=" << normal << "F" << endl + << " using shared library F for input" << endl + << " (chose F from {uos, uos_map, uos_rgb, uos_frames, uos_map_frames, old, rts, rts_map, ifp, riegl_txt, riegl_rgb, riegl_bin, rxp,zahn, ply})" << endl + << endl + << bold << " -d" << normal << " NR, " << bold << "--dist=" << normal << "NR" << endl + << " write all points that have no corresponding point closer than NR 'units'" << endl + << endl << endl; + + cout << bold << "EXAMPLES " << normal << endl + << " " << prog << " -m 500 -d 5 dat" << endl + << " " << prog << " --max=5000 -d 10.2 dat" << endl + << endl; + exit(1); +} + +/** A function that parses the command-line arguments and sets the respective flags. + * @param argc the number of arguments + * @param argv the arguments + * @param dir the directory + * @param start first scan number 'start' + * @param end last scan number 'end' + * @param dist the maximal distance for a point pair + * @param type the scan format + * @param desc true if start is greater than end + * @return 0, if the parsing was successful. 1 otherwise + */ +int parseArgs(int argc, char **argv, string &dir, + int &start, int &end, double &dist, + IOType &type, bool &desc) +{ + int c; + // from unistd.h: + extern char *optarg; + extern int optind; + + /* options descriptor */ + // 0: no arguments, 1: required argument, 2: optional argument + static struct option longopts[] = { + { "format", required_argument, 0, 'f' }, + { "start", required_argument, 0, 's' }, + { "end", required_argument, 0, 'e' }, + { "dist", required_argument, 0, 'd' }, + { 0, 0, 0, 0} // needed, cf. getopt.h + }; + + //cout << endl; + while ((c = getopt_long(argc, argv, "f:d:s:e:", longopts, NULL)) != -1) + switch (c) + { + case 'd': + dist = atof(optarg); + break; + case 's': + start = atoi(optarg); + if (start < 0) { cerr << "Error: Cannot start at a negative scan number.\n"; exit(1); } + break; + case 'e': + end = atoi(optarg); + if (end < 0) { cerr << "Error: Cannot end at a negative scan number.\n"; exit(1); } + break; + case 'f': + try { + type = formatname_to_io_type(optarg); + } catch (...) { // runtime_error + cerr << "Format " << optarg << " unknown." << endl; + abort(); + } + break; + case '?': + usage(argv[0]); + return 1; + default: + abort (); + } + + if(start < 0 || end < 0 || start == end) { + cerr << "\n*** You need two different scans for marker based position calculation ***" << endl; + usage(argv[0]); + } + if (optind != argc-1) { + cerr << "\n*** Directory missing ***" << endl; + usage(argv[0]); + } + dir = argv[optind]; + +#ifndef _MSC_VER + if (dir[dir.length()-1] != '/') dir = dir + "/"; +#else + if (dir[dir.length()-1] != '\\') dir = dir + "\\"; +#endif + if(start > end) { + double tmp = start; + start = end; + end = tmp; + desc = true; + } + + return 0; +} + + +/** + * Main program for calculating the difference of two scans. + * Usage: bin/scan_diff -d -s -e 'dir', + * Use -s and -e for the two scans, + * -d + * and 'dir' the directory of a set of scans + * Difference scans will be written to 'dir/diff/scan[00]s.3d' + * + */ +int main(int argc, char **argv) +{ + + cout << "(c) Jacobs University Bremen, gGmbH, 2010" << endl << endl; + + if (argc <= 1) { + usage(argv[0]); + } + + // parsing the command line parameters + // init, default values if not specified + string dir; + double dist = 0; + int start = -1, end = -1; + int maxDist = -1; + int minDist = -1; + IOType type = UOS; + bool desc = false; + + parseArgs(argc, argv, dir, start, end, dist, type, desc); + + Scan::readScansRedSearch(type, start, end, dir, maxDist, minDist, -1, 1, false, false, false); + cout << "Start match marker ..." << endl; + srand(time(0)); + srand(0); + long starttime = GetCurrentTimeInMilliSec(); + // matchBruteForce(start, end-start); + matchMarker(0, end - start); + starttime = (GetCurrentTimeInMilliSec() - starttime); + cout << " done in " << starttime << " ms" << endl; + + vector ::iterator Iter = Scan::allScans.begin(); + for( ; Iter != Scan::allScans.end(); ) { + Iter = Scan::allScans.begin(); + delete (*Iter); + cout << "."; + cout.flush(); + } + Scan::allScans.clear(); + + cout << endl << endl; + cout << "Normal program end." << endl << endl; +} diff --git a/src/shapes/numberrec.cc b/src/shapes/numberrec.cc new file mode 100644 index 0000000..05eb7ae --- /dev/null +++ b/src/shapes/numberrec.cc @@ -0,0 +1,159 @@ +/* + * numberrec implementation + * + * Copyright (C) Jan Elseberg, Dorit Borrmann + * + * Released under the GPL version 3. + * + */ + +#include +#include +#include +#include +#ifdef HAVE_GETTIMEOFDAY +#include +#endif +#ifdef HAVE_UNISTD_H +#include +#endif + +extern "C" { +#include "gocr.h" +#include "pnm.h" +#include "pgm2asc.h" + +#include "pcx.h" +#include "ocr0.h" +#include "progress.h" +#include "version.h" +#include "config.h" + +} + + +char filter[] = "0-9"; +/*void my_test() { + int multipnm=1; + job_t job; + + while (multipnm==1) { + job_init(&job); + + job.cfg.out_format=XML; + job.cfg.cfilter = filter; + job.src.fname = "patch00000.pgm"; // TODO + + multipnm=readpgm(job.src.fname, &job.src.p, job.cfg.verbose); + + if (multipnm<0) break; + + pgm2asc(&job); + + int linecounter = 0; + const char *line; + + linecounter = 0; + line = getTextLine(linecounter++); + while (line) { + //fputs(line, stdout); + //Interpret line here + + line = getTextLine(linecounter++); + } + free_textlines(); + job_free(&job); + } + return; +}*/ +#include "math.h" +#include +using std::string; + +#include "shapes/sickday.h" + +bool gocr_recognizeNumber(string &filename, int &number, double &probability) { + int multipnm=1; + job_t job; + JOB = &job; + + double probabilities[1024]; // should be plenty + + probability = 0.0; + number = -1; + + // this while should be unnecessary + while (multipnm == 1) { + job_init(&job); + + job.cfg.out_format = XML; + job.cfg.cfilter = filter; + + //job.src.fname = filename.c_str(); + char fname[1024]; + strcpy(fname, filename.c_str() ); + job.src.fname = fname; + + multipnm = readpgm(job.src.fname, &job.src.p, job.cfg.verbose); + + if (multipnm<0) break; + + pgm2asc(&job); // recognize numbers + + int linecounter = 0; + const char *line; + linecounter = 0; + line = getTextLine(linecounter++); + while (line) { + //fputs(line, stdout); + //Interpret line here + int width = 0; + int height = 0; + char num; + int nr_alt_c = 0; + + int iprob = 0; + + sscanf(line, "%d %d %c %d", &width, &height, &num, &nr_alt_c); + + if (nr_alt_c > 0) { + sscanf(line, "%d %d %c %d %d", &width, &height, &num, &nr_alt_c, &iprob); + } + + + // check if this if a number, and if it is wether it is large enough +// if ( (fabs(width) < MIN_NR_WIDTH || fabs(height) < MIN_NR_HEIGHT || num < '0' || num > '9') + if ( num < '0' || num > '9') { + line = getTextLine(linecounter++); + continue; + } + if ( num == '1' && (fabs(width) < MIN_1_WIDTH || fabs(height) < MIN_NR_HEIGHT || + fabs(width) > MAX_NR_WIDTH || fabs(height) > MAX_NR_HEIGHT) ) { // 1 is a special case + line = getTextLine(linecounter++); + continue; + } + if (num != '1' && (fabs(width) < MIN_NR_WIDTH || fabs(height) < MIN_NR_HEIGHT || // other numbers should be bigger + fabs(width) > MAX_NR_WIDTH || fabs(height) > MAX_NR_HEIGHT) ) { + line = getTextLine(linecounter++); + continue; + } + + // num contains a number (we will disregard alternative interpretation)) + if (probability < (double)iprob / 100.0) { + //printf("WD: %d %d MIN %d %d \n", width, height, MIN_NR_WIDTH, MIN_NR_HEIGHT); + probability = (double)iprob / 100.0; + number = (int)(num - '0'); + } + ////////////////////// + line = getTextLine(linecounter++); + } + free_textlines(); + job_free(&job); + } + + + if (probability > 0.0) { + return true; + } + return false; +} diff --git a/src/shapes/parascan.cc b/src/shapes/parascan.cc new file mode 100644 index 0000000..6deb69c --- /dev/null +++ b/src/shapes/parascan.cc @@ -0,0 +1,134 @@ +/* + * parascan implementation + * + * Copyright (C) Dorit Borrmann + * + * Released under the GPL version 3. + * + */ + +#include +#include +#include "shapes/parascan.h" + + +/* -------------------------------------------------------------------------- */ + +int paramtr_scan_int(FILE *stream, const char *search,int defaultval) +{ + char target[256]; + + if(paramtr_scan_str(stream, search, target)) + return(atoi(target)); + else + return(defaultval); +} + +/* -------------------------------------------------------------------------- */ + +double paramtr_scan_double(FILE *stream, const char *search,double defaultval) +{ + char target[256]; + + if(paramtr_scan_str(stream, search, target)) + return(atof(target)); + else + return(defaultval); +} + +/* -------------------------------------------------------------------------- */ + +bool paramtr_scan_str(FILE *stream, const char *search, char *target) +{ + const char *ptr = search; + int c, mem; + + /* erster durchlauf */ + mem = 0; + + while(mem < 2) { + if((c = getc(stream)) == EOF) { + rewind(stream); + mem++; + } + else { + /* kommentarzeile uebergehen */ + if(c == COMMENT) { + while((c = getc(stream)) != LF ); + } /* if */ + + if(*ptr) { + if(c == (int)*ptr) { + ptr++; + } + else { + ptr = search; + } /* if */ + } + else { + int numberOfItemsRead = fscanf(stream, "%s", target); + if(!numberOfItemsRead) + { + return false; + } + return true; + } /* if */ + } /* if */ + } /* while */ + + return false; +} + +/* -------------------------------------------------------------------------- */ + +int paramtr_scan_echo(const char *filename, const char *search) +{ + const char *ptr = search; + char str[256]; + char* target; + int c, no; + FILE *stream; + + /* dateiverbindung oeffnen */ + if((stream = fopen(filename, "rt")) == NULL) { + printf("paramtr_scan_echo() error\n"); + return 0; + } /* if */ + + no = 0; + + while((c = getc(stream)) != EOF) { + /* kommentarzeile uebergehen */ + if(c == COMMENT) { + while((c = getc(stream)) != LF ); + } /* if */ + + if(*ptr) { + if(c == (int)*ptr) { + ptr++; + } + else { + ptr = search; + } /* if */ + } + else { + target = &(str[0]); + while(c != LF) { + *target = (char) c; + target++; + c = getc(stream); + } /* while */ + *target = 0; + printf("%s\n", str); + ptr = search; + no++; + } /* if */ + } /* while */ + + /* datei schliessen */ + fclose(stream); + + return no; +} + +/* -------------------------------------------------------------------------- */ diff --git a/src/shapes/plane.cc b/src/shapes/plane.cc new file mode 100644 index 0000000..5ec9108 --- /dev/null +++ b/src/shapes/plane.cc @@ -0,0 +1,322 @@ +/* + * plane implementation + * + * Copyright (C) Dorit Borrmann + * + * Released under the GPL version 3. + * + */ + +/** + * @file + * @author Dorit Borrmann. Institute of Computer Science, University of Osnabrueck, Germany. +*/ + +#include +#include +#ifndef _MSC_VER +#include +#else +#include "XGetopt.h" +#endif + +#include +using std::ofstream; +using std::flush; +using std::cout; +using std::string; +using std::cerr; +using std::endl; +#include + +#ifdef _MSC_VER +#define strcasecmp _stricmp +#define strncasecmp _strnicmp +#include +#include +#else +#include +#include +#include +#include +#endif + +#include "shapes/hough.h" +#include "shapes/shape.h" +#include "shapes/ransac.h" + +enum plane_alg { + RHT, SHT, PHT, PPHT, APHT, RANSAC +}; + +void usage(char* prog) { +#ifndef _MSC_VER + const string bold("\033[1m"); + const string normal("\033[m"); +#else + const string bold(""); + const string normal(""); +#endif + cout << endl + << bold << "USAGE " << normal << endl + << " " << prog << " [options] directory" << endl << endl; + cout << bold << "OPTIONS" << normal << endl + + << bold << " -f" << normal << " F, " << bold << "--format=" << normal << "F" << endl + << " using shared library F for input" << endl + << " (chose F from {uos, uos_map, uos_rgb, uos_frames, uos_map_frames, old, rts, rts_map, ifp, riegl_txt, riegl_rgb, riegl_bin, zahn, ply})" << endl + << endl + << bold << " -m" << normal << " NR, " << bold << "--max=" << normal << "NR" << endl + << " neglegt all data points with a distance larger than NR 'units'" << endl + << endl + << bold << " -M" << normal << " NR, " << bold << "--min=" << normal << "NR" << endl + << " neglegt all data points with a distance smaller than NR 'units'" << endl + << endl + << bold << " -p" << normal << " P, " << bold << "--plane=" << normal << "P" << endl + << " using algorithm P for plane detection" << endl + << " (chose P from {rht, sht, pht, ppht, apht, ran})" << endl + << endl + << bold << " -r" << normal << " NR, " << bold << "--reduce=" << normal << "NR" << endl + << " turns on octree based point reduction (voxel size=)" << endl + << endl + << bold << " -O" << normal << " NR (optional), " << bold << "--octree=" << normal << "NR (optional)" << endl + << " use randomized octree based point reduction (pts per voxel=)" << endl + << " requires " << bold << "-r" << normal <<" or " << bold << "--reduce" << endl + << endl + << bold << " -s" << normal << " NR, " << bold << "--start=" << normal << "NR" << endl + << " start at scan NR (i.e., neglects the first NR scans)" << endl + << " [ATTENTION: counting naturally starts with 0]" << endl + << endl + << bold << " -S, --scanserver" << normal << endl + << " Use the scanserver as an input method and handling of scan data" << endl + << endl + << endl << endl; + + cout << bold << "EXAMPLES " << normal << endl + << " " << prog << " -m 500 -r 5 dat" << endl + << " " << prog << " --max=5000 -r 10.2 dat" << endl + << " " << prog << " -s 2 -e 10 -r dat" << endl << endl; + exit(1); + +} + +/** + * Parses command line arguments needed for plane detection. For details about + * the argument see usage(). + */ + +int parseArgs(int argc, char **argv, string &dir, double &red, int &start, int + &maxDist, int&minDist, int &octree, IOType &type, plane_alg &alg, bool + &quiet, bool& scanserver) +{ + bool reduced = false; + int c; + // from unistd.h: + extern char *optarg; + extern int optind; + + /* options descriptor */ + // 0: no arguments, 1: required argument, 2: optional argument + static struct option longopts[] = { + { "format", required_argument, 0, 'f' }, + { "max", required_argument, 0, 'm' }, + { "min", required_argument, 0, 'M' }, + { "start", required_argument, 0, 's' }, + { "reduce", required_argument, 0, 'r' }, + { "plane", required_argument, 0, 'p' }, + { "quiet", no_argument, 0, 'q' }, + { "octree", optional_argument, 0, 'O' }, + { "scanserver", no_argument, 0, 'S' }, + { 0, 0, 0, 0} // needed, cf. getopt.h + }; + + cout << endl; + while ((c = getopt_long(argc, argv, "f:r:s:e:m:M:p:O:q", longopts, NULL)) != -1) + switch (c) + { + case 'r': + red = atof(optarg); + reduced = true; + break; + case 's': + start = atoi(optarg); + if (start < 0) { cerr << "Error: Cannot start at a negative scan number.\n"; exit(1); } + break; + case 'f': + try { + type = formatname_to_io_type(optarg); + } catch (...) { // runtime_error + cerr << "Format " << optarg << " unknown." << endl; + abort(); + } + break; + case 'p': + if(strcasecmp(optarg, "rht") == 0) alg = RHT; + else if(strcasecmp(optarg, "sht") == 0) alg = SHT; + else if(strcasecmp(optarg, "pht") == 0) alg = PHT; + else if(strcasecmp(optarg, "ppht") == 0) alg = PPHT; + else if(strcasecmp(optarg, "apht") == 0) alg = APHT; + else if(strcasecmp(optarg, "ran") == 0) alg = RANSAC; + else abort(); + break; + case 'q': + quiet = true; + break; + case 'm': + maxDist = atoi(optarg); + break; + case 'O': + if (optarg) { + octree = atoi(optarg); + } else { + octree = 1; + } + break; + case 'M': + minDist = atoi(optarg); + break; + case 'S': + scanserver = true; + break; + case '?': + usage(argv[0]); + return 1; + default: + abort (); + } + + if (optind != argc-1) { + cerr << "\n*** Directory missing ***" << endl; + usage(argv[0]); + } + dir = argv[optind]; + +#ifndef _MSC_VER + if (dir[dir.length()-1] != '/') dir = dir + "/"; +#else + if (dir[dir.length()-1] != '\\') dir = dir + "\\"; +#endif + + return 0; +} + +/** + * Main function. The Hough Transform or RANSAC are called for the scan indicated as + * argument. + * + */ +int main(int argc, char **argv) +{ + + cout << "(c) Jacobs University Bremen, gGmbH, 2010" << endl << endl; + + if (argc <= 1) { + usage(argv[0]); + } + // parsing the command line parameters + // init, default values if not specified + string dir; + double red = -1.0; + int start = 0; + int maxDist = -1; + int minDist = -1; + int octree = 0; + bool quiet = false; + IOType type = UOS; + plane_alg alg = RHT; + bool scanserver = false; + + cout << "Parse args" << endl; + parseArgs(argc, argv, dir, red, start, maxDist, minDist, octree, type, alg, quiet, scanserver); + int fileNr = start; + string planedir = dir + "planes"; + +#ifdef _MSC_VER + int success = mkdir(planedir.c_str()); +#else + int success = mkdir(planedir.c_str(), S_IRWXU|S_IRWXG|S_IRWXO); +#endif + if(success == 0) { + if(!quiet) { + cout << "Writing planes to " << planedir << endl; + } + } else if(errno == EEXIST) { + cout << "Directory " << planedir << " exists already. CONTINUE" << endl; + } else { + cerr << "Creating directory " << planedir << " failed" << endl; + exit(1); + } + + Scan::openDirectory(scanserver, dir, type, fileNr, fileNr); + Scan* scan = Scan::allScans.front(); + scan->setRangeFilter(maxDist, minDist); + scan->setReductionParameter(red, octree); + // scan->setSearchTreeParameter(nns_method, use_cuda); + scan->toGlobal(); + + double id[16]; + M4identity(id); + for(int i = 0; i < 10; i++) { + scan->transform(id, Scan::ICP, 0); // write end pose + } + + if (!quiet) cout << "start plane detection" << endl; + long starttime = GetCurrentTimeInMilliSec(); + if(alg >= RANSAC) { + vector points; + CollisionPlane * plane; + plane = new CollisionPlane(1.0); // 1.0 cm maxdist + Ransac(*plane, Scan::allScans[0], &points); + starttime = (GetCurrentTimeInMilliSec() - starttime); + + cout << "nr points " << points.size() << endl; + double nx,ny,nz,d; + plane->getPlane(nx,ny,nz,d); + if(!quiet) cout << "DONE " << endl; + + if(!quiet) cout << nx << " " << ny << " " << nz << " " << d << endl; + + /** + for (unsigned int i = 0; i < points.size(); i++) { + cerr << points[i][0] << " " << points[i][1] << " " << points[i][2] << endl; + } + */ + for(int i = points.size() - 1; i > -1; i--) { + delete[] points[i]; + } + + delete plane; + } else { + Hough hough(Scan::allScans[0], quiet); + starttime = (GetCurrentTimeInMilliSec() - starttime); + cout << "Time for Constructor call: " << starttime << endl; + + starttime = GetCurrentTimeInMilliSec(); + if (!quiet) cout << "algorithm: " << alg << endl; + // choose Hough method here + switch(alg) { + case RHT: hough.RHT(); + break; + case SHT: hough.SHT(); + break; + case PHT: hough.PHT(); + break; + case PPHT: hough.PPHT(); + break; + case APHT: hough.APHT(); + break; + default: usage(argv[0]); + exit(1); + break; + } + + hough.writePlanes(0); + cout << "Write Planes done" << endl; + starttime = (GetCurrentTimeInMilliSec() - starttime); + } + + cout << "Time for Plane Detection " << starttime << endl; + delete Scan::allScans[0]; + Scan::allScans.clear(); +} + diff --git a/src/shapes/quadtree.cc b/src/shapes/quadtree.cc new file mode 100644 index 0000000..b71b79f --- /dev/null +++ b/src/shapes/quadtree.cc @@ -0,0 +1,690 @@ +/* + * quadtree implementation + * + * Copyright (C) Dorit Borrmann + * + * Released under the GPL version 3. + * + */ + +#include "shapes/quadtree.h" + +int QuadTree::anz; +double QuadTree::qSize; +double QuadTree::dist = 10.0; +//Plane *QuadTree::basePlane; +/* +QuadTree::QuadTree(double **pts, int n, double _qSize, Plane *_basePlane){ + basePlane = _basePlane; + + anz = 0; + qSize = _qSize; + double xmin = pts[0][0], xmax = pts[0][0]; + double ymin = pts[0][1], ymax = pts[0][1]; + for (int i=1; i < n; i++) { + xmin = min(xmin, pts[i][0]); + xmax = max(xmax, pts[i][0]); + ymin = min(ymin, pts[i][1]); + ymax = max(ymax, pts[i][1]); + } + center[0] = 0.5f * (xmin+xmax); + center[1] = 0.5f * (ymin+ymax); + + double m = max(0.5f * (xmax-xmin), 0.5f * (ymax-ymin)); + int count; + + //set up values + child[0] = child[1] = child[2] = child[3] = 0; + leaf = 0; + + x_size = m; + y_size = m; + + // calculate new buckets + double newcenter[4][2]; + double x_sizeNew, y_sizeNew; + + x_sizeNew = x_size / 2.0; + y_sizeNew = y_size / 2.0; + + newcenter[0][0] = center[0] - x_size / 2.0; + newcenter[0][1] = center[1] - y_size / 2.0; + + newcenter[1][0] = center[0] + x_size / 2.0; + newcenter[1][1] = center[1] - y_size / 2.0; + + newcenter[2][0] = center[0] - x_size / 2.0; + newcenter[2][1] = center[1] + y_size / 2.0; + + newcenter[3][0] = center[0] + x_size / 2.0; + newcenter[3][1] = center[1] + y_size / 2.0; + + // if bucket is _not_ approximately (nearly) empty don't build tree further + // ----------------------------------------------------------------------- + for (int i = 0; i < 4; i++) { + vector splitPoints; + count = countPointsAndQueue(pts, n, splitPoints, + newcenter[i], x_sizeNew, y_sizeNew); + if (count > MIN_PTS_IN_BUCKET) + child[i] = new QuadTree(splitPoints, + newcenter[i], x_sizeNew, y_sizeNew); + splitPoints.clear(); + } +}*/ + +bool QuadTree::close(double* p, double *p2) { + double stheta = sin(p[0]) * sin(p2[0]); + double myd2 = acos( + stheta * cos(p[1]) * cos(p2[1]) + + stheta * sin(p[1]) * sin(p2[1]) + + cos(p[0]) * cos(p2[0])); + if (myd2 < dist) { + return true; + } + return false; +/* + double dx = p2[0] - p[0]; + double dy = p2[1] - p[1]; + if ( sqrt(dx*dx + dy*dy) < dist ) { + return true; + } + return false;*/ +} + +bool QuadTree::close(double* p, set &cluster) { + for(set::iterator it = cluster.begin(); it != cluster.end(); it++) { + if ( close(p, (*it)) ) { + return true; + } + } + return false; +} +/* +bool QuadTree::close(double* p, set &cluster) { + double dx,dy; + for(set::iterator it = cluster.begin(); it != cluster.end(); it++) { + dx = (*it)[0] - p[0]; + dy = (*it)[1] - p[1]; + if ( sqrt(dx*dx + dy*dy) < dist ) { + return true; + } + } + return false; +}*/ +int QuadTree::where(double *p1, vector >& clusters) { + for (unsigned int i = 0; i < clusters.size(); i++) { + if (clusters[i].count(p1) > 0) return i; + } + // this shouldnt happen + //cout << "VERY BAD THINGS HAPPENED!" < >& QuadTree::clusterCells(vector > &clusters1, set border1, + vector > &clusters2, set border2, vector< set > &clusters) { + if (border1.size() <= 0 || border2.size() <= 0) { + clusters.insert( clusters.end(), clusters1.begin(), clusters1.end()); + clusters.insert( clusters.end(), clusters2.begin(), clusters2.end()); + return clusters; + } + // some clusters might not have a border connection, remember those? + set non_used_clusters; + for (unsigned int i = 0; i < clusters1.size(); i++) { + non_used_clusters.insert( -1 -i); + } + for (unsigned int i = 0; i < clusters2.size(); i++) { + non_used_clusters.insert( i); + } + + // contains the edges of the correspondence graph + // indices of cluster 1 are stored negated + vector cgraph; +//cout << "bordersizes: " << border1.size() << " " << border2.size() << endl; + for (set::iterator bit1 = border1.begin(); bit1 != border1.end(); bit1++) { + for (set::iterator bit2 = border2.begin(); bit2 != border2.end(); bit2++) { + if (close( *bit1, *bit2) ) { + int *edge = new int[3]; + int w1,w2; + w1 = where(*bit1, clusters1); + if (w1 == -1) { + continue; + } + w2 = where(*bit2, clusters2); + if (w2 == -1) { + continue; + } + + edge[0] = -1 - w1; + edge[1] = w2; + // label the edge + edge[2] = -1; + cgraph.push_back(edge); +// cout << "point to point " << edge[0] << " " << edge[1] << endl; + } + } + } + //cout << "borders connected" << endl; + vector< set > index_clusters; + int nr_cluster = 0; + for (unsigned int i = 0; i < cgraph.size(); i++) { + if (cgraph[i][2] != -1) {continue;} + // unlabeled edge + cgraph[i][2] = nr_cluster; + set index_cluster; + index_cluster.insert(cgraph[i][0]); + index_cluster.insert(cgraph[i][1]); + non_used_clusters.erase(cgraph[i][0]); + non_used_clusters.erase(cgraph[i][1]); + for (unsigned int j = i + 1; j < cgraph.size(); j++) { +// cout << j << " j " << cgraph.size() << endl; + if (cgraph[j][2] != -1) {continue;} + // if either of the nodes is already in my cluster, label edge and add + // nodes + if (index_cluster.count(cgraph[j][0]) > 0 + || index_cluster.count(cgraph[j][1]) > 0 ) { + index_cluster.insert(cgraph[j][0]); + index_cluster.insert(cgraph[j][1]); + + non_used_clusters.erase(cgraph[j][0]); + non_used_clusters.erase(cgraph[j][1]); + cgraph[j][2] = nr_cluster; + } + } + //non_used_clusters.erase(index_cluster.begin(), index_cluster.end()); + index_clusters.push_back(index_cluster); + nr_cluster++; + } +//cout << "cluster connections resolved" << endl; + for (unsigned int i = 0; i < index_clusters.size(); i++) { + set cluster; + for (set::iterator it = index_clusters[i].begin(); + it != index_clusters[i].end(); it++) { + if (*it < 0 ) { + int index = -1 - (*it); + cluster.insert( clusters1[index].begin(), clusters1[index].end() ); + } else { + cluster.insert( clusters2[*it].begin(), clusters2[*it].end() ); + } + } + clusters.push_back(cluster); + } +//cout << "clusters joined. add remaining " << non_used_clusters.size() << endl; + for (set::iterator it = non_used_clusters.begin(); it != non_used_clusters.end(); it++) { + set cluster; + if (*it < 0 ) { + int index = -1 - (*it); + cluster.insert( clusters1[index].begin(), clusters1[index].end() ); + } else { + cluster.insert( clusters2[*it].begin(), clusters2[*it].end() ); + } + clusters.push_back(cluster); + } +//cout << "done." << endl; + // cleanup + for (unsigned int i = 0; i < cgraph.size(); i++) { + delete[] cgraph[i]; + } + cgraph.clear(); +//cout << " cleanup done returning" << endl; + return clusters; +// return clusters1; +} + +vector >& QuadTree::getClusters() { + // if leaf node + if (leaf == 1) { + if (points.size() <= 0) return clusters; +// cout << "leaf clustering "; +// cout << center[0] << " " << center[1] << " " << points.size() << " " < ()); + clusters[0].insert(points[0]); + + for (unsigned int j = 1; j < points.size(); j++) { + bool found_cluster = false; + int oldindex = -1; + for (unsigned int i = 0; i < clusters.size(); i++) { + if ( close(points[j], clusters[i]) ) { + if (!found_cluster) { + clusters[i].insert(points[j]); + found_cluster = true; + oldindex = i; + //break; + } else { +// cout << " join cluster " << oldindex << " and " << i << endl; + clusters[oldindex].insert(clusters[i].begin(), clusters[i].end()); + clusters.erase(clusters.begin() + i); + i--; + //clusters[i] + } + } + } + if (!found_cluster) { // havent found a cose enough cluster -> new cluster + set cluster; + cluster.insert(points[j]); + clusters.push_back(cluster); + } + } +// cout << " this many cluster found in leaf " << clusters.size() << endl; + return clusters; + } + + //cout << "my leafs: "<< child[0] << " " << child[1] << " " << child[2] << " " << child[3] << endl; + vector< set > southclusters; + clusterCells(child[0]->getClusters(), child[0]->east, + child[1]->getClusters(), child[1]->west, southclusters); +// cout << "northern cluste: " << endl; + vector< set > northclusters; + clusterCells(child[2]->getClusters(), child[2]->east, + child[3]->getClusters(), child[3]->west, northclusters); +// cout << "south: " << southclusters.size() << endl; +// cout << "north: " << northclusters.size() << endl; + + // join borders + set nborders01; + nborders01.insert(child[0]->north.begin(), child[0]->north.end()); + nborders01.insert(child[1]->north.begin(), child[1]->north.end()); + + set sborders23; + sborders23.insert(child[2]->south.begin(), child[2]->south.end()); + sborders23.insert(child[3]->south.begin(), child[3]->south.end()); + + clusters = clusterCells(northclusters, sborders23, southclusters, nborders01, clusters); + if (clusters.size() > 0) { + //cout << "node clustered " << clusters.size() << endl; + //cout << center[0] << " " << center[1] << " " << points.size() << endl; + } + + return clusters; +} + +QuadTree::QuadTree(double **pts, int n, double _qSize, double min_d){ + dist = min_d; + anz = 0; + qSize = _qSize; + double xmin = pts[0][0], xmax = pts[0][0]; + double ymin = pts[0][1], ymax = pts[0][1]; + for (int i=1; i < n; i++) { + xmin = min(xmin, pts[i][0]); + xmax = max(xmax, pts[i][0]); + ymin = min(ymin, pts[i][1]); + ymax = max(ymax, pts[i][1]); + } + double eps = 0.00001; + xmin -= eps; + ymin -= eps; + xmax += eps; + ymax += eps; + center[0] = 0.5 * (xmin+xmax); + center[1] = 0.5 * (ymin+ymax); + + double m = max(0.5 * (xmax-xmin), 0.5 * (ymax-ymin)); + int count; + + //set up values + child[0] = child[1] = child[2] = child[3] = 0; + leaf = 0; + + x_size = m; + y_size = m; + + // calculate new buckets + double newcenter[4][2]; + double x_sizeNew, y_sizeNew; + + x_sizeNew = x_size / 2.0; + y_sizeNew = y_size / 2.0; + + newcenter[0][0] = center[0] - x_size / 2.0; + newcenter[0][1] = center[1] - y_size / 2.0; + + newcenter[1][0] = center[0] + x_size / 2.0; + newcenter[1][1] = center[1] - y_size / 2.0; + + newcenter[2][0] = center[0] - x_size / 2.0; + newcenter[2][1] = center[1] + y_size / 2.0; + + newcenter[3][0] = center[0] + x_size / 2.0; + newcenter[3][1] = center[1] + y_size / 2.0; + + // if bucket is _not_ approximately (nearly) empty don't build tree further + // ----------------------------------------------------------------------- + for (int i = 0; i < 4; i++) { + vector splitPoints; + set no,e,s,w; + count = countPointsAndQueue(pts, n, splitPoints, + newcenter[i], x_sizeNew, y_sizeNew, + no, e, s, w); + if (count > MIN_PTS_IN_BUCKET) + child[i] = new QuadTree(splitPoints, + newcenter[i], x_sizeNew, y_sizeNew, no,e,s,w); + splitPoints.clear(); + } +} + +QuadTree::QuadTree(vector &splitPoints, double _center[2], + double _x_size, double _y_size, set &n, + set &e, set &s, set &w) { + int count; + /* + this->north = n; + this->east = e; + this->south = s; + this->west = w; + */ + this->north.insert(n.begin(), n.end()); + this->south.insert(s.begin(), s.end()); + this->east.insert(e.begin(), e.end()); + this->west.insert(w.begin(), w.end()); + + //set up values + child[0] = child[1] = child[2] = child[3] = 0; + leaf = 0; + + center[0] = _center[0]; + center[1] = _center[1]; + x_size = _x_size; + y_size = _y_size; + + // if bucket is too small stop building tree + // ----------------------------------------- + if ((y_size <= qSize)) { + // copy points + for (unsigned int i = 0; i < splitPoints.size(); i++) { + points.push_back(splitPoints[i]); + } + leaf = 1; + anz++; + return; + } + + // calculate new buckets + double newcenter[4][3]; + double x_sizeNew, y_sizeNew; + + x_sizeNew = x_size / 2.0; + y_sizeNew = y_size / 2.0; + + newcenter[0][0] = center[0] - x_size / 2.0; + newcenter[0][1] = center[1] - y_size / 2.0; + + newcenter[1][0] = center[0] + x_size / 2.0; + newcenter[1][1] = center[1] - y_size / 2.0; + + newcenter[2][0] = center[0] - x_size / 2.0; + newcenter[2][1] = center[1] + y_size / 2.0; + + newcenter[3][0] = center[0] + x_size / 2.0; + newcenter[3][1] = center[1] + y_size / 2.0; + + // if bucket is _not_ approximately (nearly) empty don't build tree further + // ------------------------------------------------------------------------ + for (int i = 0; i < 4; i++) { + vector new_splitPoints; + set n,e,s,w; + count = countPointsAndQueue(splitPoints, new_splitPoints, + newcenter[i], x_sizeNew, y_sizeNew, + n, e, s, w); + if (count > MIN_PTS_IN_BUCKET) { + child[i] = new QuadTree(new_splitPoints, + newcenter[i], x_sizeNew, y_sizeNew, n,e,s,w); + } + new_splitPoints.clear(); + } +} + +int QuadTree::countPointsAndQueue(const vector &i_points, + vector &points, + double center[2], + double x_size, double y_size, + set &n, + set &e, + set &s, + set &w) +{ + int count = 0; + for (unsigned int i = 0; i < i_points.size(); i++) { + if (fabs(i_points[i][0] - center[0]) <= x_size) { + if (fabs(i_points[i][1] - center[1]) <= y_size) { + count++; + points.push_back(i_points[i]); + double top = asin(sin(i_points[i][0]) * sin( fabs( (center[1] + y_size) - i_points[i][1]) ) ); + double bottom = asin(sin(i_points[i][0]) * sin( fabs( i_points[i][1] - (center[1] - y_size) ) ) ); + + if ( fabs( (center[0] + x_size) - i_points[i][0]) < dist ) { + e.insert(i_points[i]); + } + if ( fabs( i_points[i][0] - (center[0] - x_size) ) < dist ) { + w.insert(i_points[i]); + } + if ( top < dist ) { + n.insert(i_points[i]); + } + if ( bottom < dist ) { + s.insert(i_points[i]); + } + } + } + } + return count; +} + +int QuadTree::countPointsAndQueue(double **pts, int n, + vector &points, + double center[2], + double x_size,double y_size, + set &no, + set &e, + set &s, + set &w) +{ + + int count = 0; + for (int i=0; i < n; i++) { + if (fabs(pts[i][0] - center[0]) <= x_size) { + if (fabs(pts[i][1] - center[1]) <= y_size) { + count++; + double *p = pts[i]; + points.push_back(p); + + double top = asin(sin(p[0]) * sin( fabs( (center[1] + y_size) - p[1]) ) ); + double bottom = asin(sin(p[0]) * sin( fabs( p[1] - (center[1] - y_size) ) ) ); + + if ( fabs( (center[0] + x_size) - p[0]) < dist ) { + e.insert(p); + } + if ( fabs( p[0] - (center[0] - x_size) ) < dist ) { + w.insert(p); + } + if ( top < dist ) { + no.insert(p); + } + if ( bottom < dist ) { + s.insert(p); + } + } + } + } + return count; +} + +int QuadTree::countPoints(double **pts, int n, double center[2], + double x_size, double y_size) +{ + int count = 0; + for (int i=0; i < n; i++) { + if (fabs(pts[i][0] - center[0]) <= x_size) { + if (fabs(pts[i][1] - center[1]) <= y_size) { + count++; + } + } + } + return count; +} +/* +void QuadTree::getQuadTreePoints(vector &quad_x, vector &quad_y, vector &quad_z) +{ + double x,y,z; + + if (leaf == 1) { + basePlane->projTo3D(center[0] - x_size, + center[1] - y_size, + x, y, z); + quad_x.push_back(x); + quad_y.push_back(y); + quad_z.push_back(z); + basePlane->projTo3D(center[0] + x_size, + center[1] - y_size, + x, y, z); + quad_x.push_back(x); + quad_y.push_back(y); + quad_z.push_back(z); + basePlane->projTo3D(center[0] + x_size, + center[1] + y_size, + x, y, z); + quad_x.push_back(x); + quad_y.push_back(y); + quad_z.push_back(z); + basePlane->projTo3D(center[0] - x_size, + center[1] + y_size, + x, y, z); + quad_x.push_back(x); + quad_y.push_back(y); + quad_z.push_back(z); + } else { + for( int i = 0; i < 4; i++){ + if (child[i] != 0) { + child[i]->getQuadTreePoints(quad_x, quad_y, quad_z); + } + } + } +} +*/ +/* +void QuadTree::getQuadTreeColor(double &colorR, double &colorG, double &colorB) +{ + switch (basePlane->getColor()) { + case 1: colorR = 0.6; colorG = 0.0; colorB = 0.0; break; + case 2: colorR = 0.0; colorG = 0.6; colorB = 0.0; break; + case 3: colorR = 0.0; colorG = 0.0; colorB = 0.6; break; + case 4: colorR = 0.6; colorG = 0.6; colorB = 0.0; break; + case 5: colorR = 0.6; colorG = 0.0; colorB = 0.6; break; + case 6: colorR = 0.0; colorG = 0.6; colorB = 0.6; break; + case 7: colorR = 0.6; colorG = 0.3; colorB = 0.3; break; + case 8: colorR = 0.3; colorG = 0.3; colorB = 0.3; break; + case 9: colorR = 0.3; colorG = 0.3; colorB = 0.6; break; + case 10: colorR = 0.6; colorG = 0.6; colorB = 0.6; break; + case 11: colorR = 0.1; colorG = 0.1; colorB = 0.6; break; + case 12: colorR = 0.1; colorG = 0.1; colorB = 0.1; break; + case 13: colorR = 0.1; colorG = 0.3; colorB = 0.1; break; + case 14: colorR = 0.1; colorG = 0.1; colorB = 0.3; break; + case 15: colorR = 0.3; colorG = 0.6; colorB = 0.3; break; + case 16: colorR = 0.3; colorG = 0.3; colorB = 0.1; break; + default: colorR = 0.3; colorG = 0.1; colorB = 0.1; + } +} +*/ +/* +int QuadTree::outputQuad(char *dir) +{ + cout << "writing "; + ofstream quadout; + char fname[64]; + strcpy(fname,dir);strcat(fname, "/quad.dat"); + + quadout.open(fname,ios::binary|ios::out|ios::app); + if (!quadout) { + cerr << "*** error: can't create file " << fname << " ***\n"; + exit(2); + } + int ret = _OutputQuad(quadout); + quadout.close(); + cout << ret << " quads from quadtree." << endl; + return ret; +} + +int QuadTree::_OutputQuad(ofstream &bBoxout) +{ + int ret = 0; + if (leaf == 1) { + + double x,y,z; + // cout << endl; + basePlane->projTo3D(center[0] - x_size, + center[1] - y_size, + x,y,z); + // cout << x << " " << y << " " << z << endl; + bBoxout.write((char*)&x, sizeof(double)); + bBoxout.write((char*)&y, sizeof(double)); + bBoxout.write((char*)&z, sizeof(double)); + basePlane->projTo3D(center[0] - x_size, + center[1] + y_size, + x,y,z); + // cout << x << " " << y << " " << z << endl; + bBoxout.write((char*)&x, sizeof(double)); + bBoxout.write((char*)&y, sizeof(double)); + bBoxout.write((char*)&z, sizeof(double)); + basePlane->projTo3D(center[0] + x_size, + center[1] + y_size, + x,y,z); + // cout << x << " " << y << " " << z << endl; + bBoxout.write((char*)&x, sizeof(double)); + bBoxout.write((char*)&y, sizeof(double)); + bBoxout.write((char*)&z, sizeof(double)); + basePlane->projTo3D(center[0] + x_size, + center[1] - y_size, + x,y,z); + // cout << x << " " << y << " " << z << endl; + bBoxout.write((char*)&x, sizeof(double)); + bBoxout.write((char*)&y, sizeof(double)); + bBoxout.write((char*)&z, sizeof(double)); + + +// float col = 0.0; +// for (int i = 0; i < points.size(); i++) { +// col = max(col, points[i][2]); +// } +// +// col = col / 3.0; +// + + float col = 0; //!!! + + double gcolorR, gcolorG, gcolorB; + getQuadTreeColor(gcolorR, gcolorG, gcolorB); + + float col_r = col + gcolorR; + float col_g = col + gcolorG; + float col_b = col + gcolorB; + bBoxout.write((char*)&col_r, sizeof(float)); + bBoxout.write((char*)&col_g, sizeof(float)); + bBoxout.write((char*)&col_b, sizeof(float)); + + return 1; + } + + for( int i = 0; i < 4; i++){ + if (child[i] != 0) { + ret += child[i]->_OutputQuad(bBoxout); + } + } + return ret; +} +*/ + +QuadTree::~QuadTree(){ + for(int i = 0; i < 4; i++) { + if (child[i] !=0) { + delete child[i]; + child[i] = 0; + } + } +} + + + + + + + + + diff --git a/src/shapes/scan_ransac.cc b/src/shapes/scan_ransac.cc new file mode 100644 index 0000000..fa598a4 --- /dev/null +++ b/src/shapes/scan_ransac.cc @@ -0,0 +1,401 @@ +/* + * scan_ransac implementation + * + * Copyright (C) Dorit Borrmann + * + * Released under the GPL version 3. + * + */ + +#define WANT_STREAM ///< define the WANT stream :) +#include +using std::string; +#include +using std::cout; +using std::cerr; +using std::endl; +#include +using std::ofstream; +#include +#include + +#include "slam6d/scan_io.h" +#include "slam6d/globals.icc" +#include + +#include "shapes/geom_math.h" +#include "shapes/integralimg.h" +#include "shapes/scan_ransac.h" +#include "shapes/NumberRecOctree.h" + +#ifdef _OPENMP +#include +#endif + + +#ifndef _MSC_VER +#include +#else +#include "XGetopt.h" +#endif + +#ifdef _MSC_VER +#define strcasecmp _stricmp +#define strncasecmp _strnicmp +#include +#include +#else +#include +#include +#include +#include +#endif + + +void *dummy(void *nd) { + NumberDetector *ND = (NumberDetector *)nd; + ND->RANSAC(*(ND->scan_points)); + return 0; +} + + +///////////////// constants for RANSAC and number recognition +void NumberDetector::printNumbers() { + for (int i = 0; i < 10; i++) + cout << detectedNumbers[i].getConsensus() << endl; + cout << endl; +} + +// comment the following line if you want greyscale image +#define BINARY_IMG +#include "shapes/config_sickday.h" +#include "shapes/numberrec.h" + +int image_counter = 0; + + +bool NumberDetector::FindNumber(vector &points, double plane[4]) { + bool res = false; + double maxx = -DBL_MAX; + double minx = DBL_MAX; + double maxz = -DBL_MAX; + double minz = DBL_MAX; + + // rotate onto the floor plane + double t[3]; t[0] = t[1] = t[2] = 0.0; + double alignxf[16]; + double aa[4]; + aa[0] = -1.0 * acos(plane[1]); + aa[1] = plane[2] / sqrt( plane[2]*plane[2] + plane[0]*plane[0] ); + aa[2] = 0; + aa[3] = -plane[0] / sqrt( plane[2]*plane[2] + plane[0]*plane[0] ); + + AAToMatrix(aa, t, alignxf); + + /////// acount for rotation around y axis + double up[3]; + double rPT[3]; + double rmat[16]; + double tmp[16]; + Cross(plane, aa+1, up); + Normalize3(up); + + // check wether up goes up or down, and flip if it goes down + if (up[1] < 0) { + up[0] = -up[0]; + up[1] = -up[1]; + up[2] = -up[2]; + } + + double upx = up[0] * alignxf[0] + up[1] * alignxf[4] + up[2] * alignxf[8]; +// double upy = up[0] * alignxf[1] + up[1] * alignxf[5] + up[2] * alignxf[9]; // should be redundant + double upz = up[0] * alignxf[2] + up[1] * alignxf[6] + up[2] * alignxf[10]; + + rPT[0] = rPT[2] = 0.0; + rPT[1] = atan2(upz, upx) + M_PI/2.0; + EulerToMatrix4(t, rPT, rmat); + + // combine rotation onto plane with rotaion around y + MMult(rmat, alignxf, tmp); + for (int i = 0; i < 16; i++) { + alignxf[i] = tmp[i]; + } + // done + + // compute 2d projection of the points, and scale reflectivity + double **npoints = new double*[points.size()]; + for (unsigned int i = 0; i < points.size(); i++) { + double *p = points[i]; + npoints[i] = new double[4]; + + npoints[i][0] = -(p[0] * alignxf[0] + p[1] * alignxf[4] + p[2] * alignxf[8]); + npoints[i][1] = p[0] * alignxf[1] + p[1] * alignxf[5] + p[2] * alignxf[9]; // this should be redundant + npoints[i][2] = p[0] * alignxf[2] + p[1] * alignxf[6] + p[2] * alignxf[10]; + + npoints[i][3] = (p[3] - MINREFL ) / (MAXREFL - MINREFL) ; // scale between 0 and 1 + if (npoints[i][3] > 1.0) npoints[i][3] = 1.0; // 0 and 1 _are_ min and max + if (npoints[i][3] < 0.0) npoints[i][3] = 0.0; + + if (npoints[i][0] > maxx) maxx = npoints[i][0]; + if (npoints[i][0] < minx) minx = npoints[i][0]; + if (npoints[i][2] > maxz) maxz = npoints[i][2]; + if (npoints[i][2] < minz) minz = npoints[i][2]; + } + + + // create a binary image which is used to find a rectangular shape using integral images + double lx = maxx - minx; + double lz = maxz - minz; + int maxppm = 0; + if (lx > 50.0 && lz > 70.0) { // only if point cloud has the necessary extent TODO change magic numbers + int px = lx / IMG_RES +1; + int pz = lz / IMG_RES +1; + + int **image = new int*[px]; // allocate mem + for (int i = 0; i < px; i++) { + image[i] = new int[pz]; + } + + for (int i = 0; i < px; i++) { + for (int j = 0; j < pz; j++) { + image[i][j] = 0; + } + } + for (unsigned int i = 0; i < points.size(); i++) { + double *p = npoints[i]; + int x = (double)(px-1) * ( p[0]-minx ) / lx; + int z = (double)(pz-1) * ( p[2]-minz ) / lz; + image[x][z] = 1; + } + + // compute integral image and compute best haar feature to detect a board + int XX, ZZ; + double SCORE; + integral_img iimg(image, px, pz); + SCORE = iimg.getBest( XX, ZZ); + + // with some certainty there is a rectangular part in the image that is number-sized + if (SCORE > MIN_SCORE) { + #ifndef BINARY_IMG + maxppm = 4096; // greyscale + #else + maxppm = 1; // binary + #endif + // create number part of the image with reflectance values... + int maxx = XX + BOARD_SIZE_X < px ? XX + BOARD_SIZE_X : px; + int maxz = ZZ + BOARD_SIZE_Z < pz ? ZZ + BOARD_SIZE_Z : pz; + for (int i = XX; i < maxx ; i++) { + for (int j = ZZ; j < maxz; j++) { + image[i][j] = -1; // remember pixel where no points were + } + } + + int NRPTS = 0; + double center[3]; center[0] = center[1] = center[2] = 0.0; + + for (unsigned int i = 0; i < points.size(); i++) { + double *p = npoints[i]; + double x = (double)(px-1) * ( p[0]-minx ) / lx; + double z = (double)(pz-1) * ( p[2]-minz ) / lz; + double xi, zi; + x = modf(x, &xi); + z = modf(z, &zi); + + if (x < 0.5){ + xi--; + x += 1.0; + } + if (z < 0.5) { + zi--; + z += 1.0; + } + + // points not on the board need not to be used + if (xi < XX || zi < ZZ || xi > maxx || zi > maxz) continue; + + // count number of points for normalizing + NRPTS++; + center[0] += points[i][0]; + center[1] += points[i][1]; + center[2] += points[i][2]; + + // Use smooth binning with 4096 gray values + if ( (int)xi < px && (int)zi < pz ) { + image[(int)xi][(int)zi] += ( (1.5 - x) * (1.5 - z) * p[3]) * 4096; + if (image[(int)xi][(int)zi] > maxppm) maxppm = image[(int)xi][(int)zi]; + } + + if ( (int)xi + 1 < px && (int)zi < pz ) { + image[(int)xi + 1][(int)zi] += ((x - 0.5) * (1.5 - z) * p[3]) * 4096; + if (image[(int)xi + 1][(int)zi] > maxppm) maxppm = image[(int)xi+1][(int)zi]; + } + + if ( (int)xi < px && (int)zi + 1 < pz ) { + image[(int)xi][(int)zi + 1] += ((1.5 - x) * (z - 0.5) * p[3]) * 4096; + if (image[(int)xi][(int)zi + 1] > maxppm) maxppm = image[(int)xi][(int)zi+1]; + } + + if ( (int)xi + 1 < px && (int)zi + 1 < pz ) { + image[(int)xi + 1][(int)zi + 1] += ((x - 0.5) * (z - 0.5) * p[3]) * 4096; + if (image[(int)xi + 1][(int)zi + 1] > maxppm) maxppm = image[(int)xi+1][(int)zi+1]; + } + } + /////////////////////////////////// +#ifndef BINARY_IMG + int MAX = 0; + int MIN = 1000000000; + int AVG = 0; +#endif + // color pixels on the border of the image white ( to remove the black border on the board and the inevitable part where no points are) + for (int i = XX; i < maxx ; i++) { + for (int j = ZZ; j < maxz; j++) { +// if ( (j < ZZ + WHITE_BORDER - 1 || j > maxz - WHITE_BORDER - 2 ) || ( i < XX + WHITE_BORDER + 1 || i > maxx - WHITE_BORDER ) ) { + if ( (j < ZZ + WHITE_BORDER || j > maxz - WHITE_BORDER ) || ( i < XX + WHITE_BORDER || i > maxx - WHITE_BORDER ) ) { + image[i][j] = maxppm; + } +#ifndef BINARY_IMG + if (image[i][j] > 0 && image[i][j] < MIN) MIN = image[i][j]; + if (image[i][j] > MAX) MAX = image[i][j]; + if (image[i][j] > 0) AVG += image[i][j]; +#endif + } + } + + string filename = "patch" + to_string(image_counter++, 5) + ".pgm"; + ofstream of(filename.c_str(), std::ios::out); + +#ifndef BINARY_IMG + of << "P2" << endl << (maxx - XX) << " " << (maxz - ZZ) << endl << 4096 << endl; // greyscale +#else + unsigned char ibuffer[(maxx - XX)*(maxz - ZZ)]; // binary + of << "P5" << endl << (maxx - XX) << " " << (maxz - ZZ) << endl << 1 << endl; // binary +#endif + + unsigned int l = 0; + double val; // temporary value that contains the calibrated reflectivity of a pixel + double factor = 4096.0/maxppm; + for (int j = ZZ; j < maxz; j++) { + for (int i = XX; i < maxx; i++) { +#ifndef BINARY_IMG + // of << image[i][j] << " "; + if (image[i][j] == -1) { + of << 0 << " "; + } else { + of << (int)(factor*image[i][j]) << " "; + } +#else + if (image[i][j] == -1) { + ibuffer[l++] = (unsigned char)0; + } else { + //val = ((double)image[i][j]-MIN)/((double)(MAX-MIN)); + val = ((double)image[i][j])/((double)(NRPTS)); + if (val > REFL_THRESHOLD) { + //if (image[i][j] > 0.25*maxppm) + //if (image[i][j] > 4000) + ibuffer[l++] = (unsigned char)1; + } else { + ibuffer[l++] = (unsigned char)0; + } + } +#endif + } + } + +#ifdef BINARY_IMG + of.write((const char*)ibuffer, sizeof(unsigned char) * (maxx - XX) * (maxz - ZZ)); +#endif + + // done writing board + of.close(); + + double probability; + int number; + // attempt to use OCR + if ( gocr_recognizeNumber(filename, number, probability) ) { + cout << filename << ": Best number is " << number << " with p = " << probability << endl; + + center[0] = center[0] / NRPTS; + center[1] = center[1] / NRPTS; + center[2] = center[2] / NRPTS; + + // remember hypothesis, scale SCORE to a more useful value + SCORE = (SCORE - SCORE_SCALE) / (1.0 - SCORE_SCALE); + + // decide where to put the number + if (number == 1 && detectedNumbers[7].isClose( center) ) { // a 7 can be seen as a 1 + detectedNumbers[7].addObservation(7, probability, SCORE, center, plane); + } else if (number == 0 && detectedNumbers[8].isClose( center) ) { // an 8 can be mistaken for a 0 + detectedNumbers[8].addObservation(8, probability, SCORE, center, plane); + } else if (number == 9 && detectedNumbers[8].isClose( center) ) { // an 8 can be mistaken for a 9 + detectedNumbers[8].addObservation(8, probability, SCORE, center, plane); + } else { // usual case + detectedNumbers[number].addObservation(number, probability, SCORE, center, plane); + } + + res = true; + } + } + + + // remove image + for (int i = 0; i < px; i++) { + delete[] image[i]; + } + delete[] image; + } + + // remove projected points + for (unsigned int i = 0; i < points.size(); i++) { + delete[] npoints[i]; + } + delete[] npoints; + return res; +} + + +void NumberDetector::RANSAC(vector &scan_points) { + // stores 3 sample points + vector ps; + double a[3], b[3], c[3], plane[4]; + // create octree from the points + NumberRecOctTree *oct = new NumberRecOctTree(scan_points, 50.0, PointType::USE_REFLECTANCE ); + + scan_points.clear(); + while(true) { + ps.clear(); + oct->DrawPoints(ps, 3); + + if ( !ps.empty()) { // if we have random points + for (int j = 0; j < 3;j++) { // compute plane + a[j] = ps[0][j] - ps[1][j]; + b[j] = ps[0][j] - ps[2][j]; + c[j] = ps[0][j] + ps[1][j] + ps[2][j]; + c[j] /= 3.0; + } + Cross(a,b, plane); + if (fabs(Len2(plane)) < 0.0001 ) continue; // points are collinear + Normalize3(plane); + if (fabs(plane[1]) > 0.8) continue; // plane is floor or ceiling + + plane[3] = -1.0 * planeDist(c, plane[0], plane[1], plane[2], 0); // compute distance from origin + if (plane[3] < 0.0) { // flip normal if necessary + for (int j = 0; j < 4;j++) { + plane[j] = -plane[j]; + } + } + // count number of points on the plane + int r = oct->PointsOnNumber(plane, MAX_DIST_TO_PLANE, c, 105.0); + + if (r > MIN_NR_PTS) { + vector points; + oct->PointsOnNumber(plane, MAX_DIST_TO_PLANE, c, 105.0, points); + if ( FindNumber(points, plane) ) { + printNumbers(); + } + } + + } + } + + delete oct; +} diff --git a/src/shapes/shapes.cc b/src/shapes/shapes.cc new file mode 100644 index 0000000..b4dc78f --- /dev/null +++ b/src/shapes/shapes.cc @@ -0,0 +1,19 @@ +/* + * shapes implementation + * + * Copyright (C) Dorit Borrmann + * + * Released under the GPL version 3. + * + */ + +#include "shapes/ransac_Boctree.h" +#include "shapes/NumberRecOctree.h" +#include "shapes/ransac.h" + +int main() { + CollisionPlane plane(1.0); // 1.0 cm maxdist + + Ransac(plane,0); + return 0; +} diff --git a/src/shapes/toImage.cc b/src/shapes/toImage.cc new file mode 100644 index 0000000..9be0ba0 --- /dev/null +++ b/src/shapes/toImage.cc @@ -0,0 +1,799 @@ +/* + * toImage implementation + * + * Copyright (C) Dorit Borrmann + * + * Released under the GPL version 3. + * + */ + +/** + * @file + * @author Dorit Borrmann. Institute of Computer Science, University of Osnabrueck, Germany. +*/ +#include +#include +#ifndef _MSC_VER +#include +#else +#include "XGetopt.h" +#endif + +#include +using std::ofstream; +using std::flush; +using std::cout; +using std::string; +using std::cerr; +using std::endl; +#include + +#ifdef _MSC_VER +#define strcasecmp _stricmp +#define strncasecmp _strnicmp +#include +#include +#else +#include +#include +#include +#include +#endif + +#include "shapes/image.h" +#include "shapes/hough.h" +#include "shapes/ppair.h" +#include "shapes/quadtree.h" +#include +#include "newmat/newmatap.h" +using namespace NEWMAT; +//#include "shapes/convexplane.h" + +#define MAX_PARALLEL_ANGLE 10.0 +#define MAX_EQUAL_DIST 10.0 +#define MIN_PARALLEL_DIST 50.0 +#define MIN_RIGHT_ANGLE 80.0 + +#define NUM_ITERS 1 + +void usage(char* prog) { +#ifndef _MSC_VER + const string bold("\033[1m"); + const string normal("\033[m"); +#else + const string bold(""); + const string normal(""); +#endif + cout << endl + << bold << "USAGE " << normal << endl + << " " << prog << " [options] directory" << endl << endl; + cout << bold << "OPTIONS" << normal << endl + + << bold << " -f" << normal << " F, " << bold << "--format=" << normal << "F" << endl + << " using shared library F for input" << endl + << " (chose F from {uos, uos_map, uos_rgb, uos_frames, uos_map_frames, old, rts, rts_map, ifp, riegl_txt, riegl_rgb, riegl_bin, zahn, ply})" << endl + << endl + << bold << " -m" << normal << " NR, " << bold << "--max=" << normal << "NR" << endl + << " neglegt all data points with a distance larger than NR 'units'" << endl + << endl + << bold << " -M" << normal << " NR, " << bold << "--min=" << normal << "NR" << endl + << " neglegt all data points with a distance smaller than NR 'units'" << endl + << endl + << bold << " -p" << normal << " P, " << bold << "--plane=" << normal << "P" << endl + << " using algorithm P for plane detection" << endl + << " (chose P from {rht, sht, pht, ppht, apht})" << endl + << endl + << bold << " -r" << normal << " NR, " << bold << "--reduce=" << normal << "NR" << endl + << " turns on octree based point reduction (voxel size=)" << endl + << endl + << bold << " -s" << normal << " NR, " << bold << "--start=" << normal << "NR" << endl + << " start at scan NR (i.e., neglects the first NR scans)" << endl + << " [ATTENTION: counting naturally starts with 0]" << endl + << endl + << endl << endl; + + cout << bold << "EXAMPLES " << normal << endl + << " " << prog << " -m 500 -r 5 dat" << endl + << " " << prog << " --max=5000 -r 10.2 dat" << endl + << " " << prog << " -s 2 -e 10 -r dat" << endl << endl; + exit(1); + +} + +int parseArgs(int argc, char **argv, string &dir, double &red, int &start, int + &maxDist, int&minDist, int &octree, IOType &type, bool &quiet) { + + bool reduced = false; + int c; + // from unistd.h: + extern char *optarg; + extern int optind; + + /* options descriptor */ + // 0: no arguments, 1: required argument, 2: optional argument + static struct option longopts[] = { + { "format", required_argument, 0, 'f' }, + { "max", required_argument, 0, 'm' }, + { "min", required_argument, 0, 'M' }, + { "start", required_argument, 0, 's' }, + { "reduce", required_argument, 0, 'r' }, + { "quit", no_argument, 0, 'q' }, + { "octree", optional_argument, 0, 'O' }, + { 0, 0, 0, 0} // needed, cf. getopt.h + }; + + cout << endl; + while ((c = getopt_long(argc, argv, "f:r:s:e:m:M:p:Oq", longopts, NULL)) != -1) + switch (c) + { + case 'r': + red = atof(optarg); + reduced = true; + break; + case 's': + start = atoi(optarg); + if (start < 0) { cerr << "Error: Cannot start at a negative scan number.\n"; exit(1); } + break; + case 'f': + try { + type = formatname_to_io_type(optarg); + } catch (...) { // runtime_error + cerr << "Format " << optarg << " unknown." << endl; + abort(); + } + break; + case 'q': + quiet = true; + break; + case 'm': + maxDist = atoi(optarg); + break; + case 'O': + if (optarg) { + octree = atoi(optarg); + } else { + octree = 1; + } + break; + case 'M': + minDist = atoi(optarg); + break; + case '?': + usage(argv[0]); + return 1; + default: + abort (); + } + + if (optind != argc-1) { + cerr << "\n*** Directory missing ***" << endl; + usage(argv[0]); + } + dir = argv[optind]; + +#ifndef _MSC_VER + if (dir[dir.length()-1] != '/') dir = dir + "/"; +#else + if (dir[dir.length()-1] != '\\') dir = dir + "\\"; +#endif + + return 0; +} + +void getPPairs(vector &allPlanes, PPair **ppairs) { + for (unsigned int i = 0; i < allPlanes.size(); i++) { + for (unsigned int j = i+1; j < allPlanes.size(); j++) { + PPair pair(allPlanes[i], allPlanes[j]); + // parallel or equal planes + if (deg(pair.angle) < MAX_PARALLEL_ANGLE) { + // planes are equal + if (pair.plane_distance < MAX_EQUAL_DIST) { + pair.type = PPair::EQUAL; + // planes are parallel + } else {//if (pair.plane_distance > MIN_PARALLEL_DIST) { + pair.type = PPair::PARALLEL; + // planes are nothing + } + // plane is perpendicular + } else if (deg(pair.angle) > MIN_RIGHT_ANGLE) { + pair.type = PPair::PERPENDICULAR; + // planes are nothing in particular + } + ppairs[i][j] = pair; + ppairs[j][i] = pair; + + } + } + +} +void getZHK(unsigned int length, bool **graph, vector > &zhks ) { + set unused; + + for (unsigned int i = 0; i < length; i++) unused.insert(i); + + // as long as we have nodes cluster + while(!unused.empty()) { + // start new cluster + int index = *unused.begin(); + unused.erase(index); + set zhk; + zhk.insert(index); + + // now look for all connected nodes + vector unvisited; + unvisited.push_back(index); + + while (!unvisited.empty()) { + int index = *unvisited.begin(); + unvisited.erase(unvisited.begin()); + + for (unsigned int i = 0; i < length; i++) { + if (i != index && graph[index][i] && zhk.count(i) == 0 ) { + zhk.insert(i); + unvisited.push_back(i); + unused.erase(i); + } + } + } + zhks.push_back(zhk); + } +} + +void flip( const double *normal , double *n ) { + // project to the other side + double k[3]; + n[0] = normal[0]; + n[1] = normal[1]; + n[2] = 1; + toKartesian(n, k); + k[0] *= -1; + k[1] *= -1; + k[2] *= -1; + toPolar(k, n); +} +bool parallel(set &p1, set &p2, double min_angle) { + for (set::iterator it = p1.begin(); + it != p1.end(); it++) { + for (set::iterator jt = p2.begin(); + jt != p2.end(); jt++) { + double *a = *it; + double *b = *jt; + //if ( polardist(a,b) > ( rad(180) - min_angle ) ) + double flipped[3]; + flip(a, flipped); + if (polardist(a,b) < min_angle || polardist(flipped, b) < min_angle) + { + return true; + } + } + } + return false; +} +// TODO no idea what this does +/* +ColumnVector calcRotRhos(vector &planes) { + unsigned int n = planes.size(); + double xbar[3]; + double *normal; + double nx; + + ColumnVector A(n+3); + Matrix B(n+3,n+3); + B = 0; + A = 0; + // fill B and A + + // for all planes + for (unsigned int i = 0; i < n; i++) { + vector points = planes[i]->points; + normal = planes[i]->n; + // for all x_j in plane i + for (unsigned int j = 0; j < points.size(); j++) { + Point p = points[j]; + xbar[0] = normal[1] * p.z - normal[2]*p.y; + xbar[1] = normal[2] * p.x - normal[0]*p.z; + xbar[2] = normal[0] * p.y - normal[1]*p.x; + nx = normal[0]*p.x + normal[1]*p.y + normal[2]*p.z; + + A(1) += nx * xbar[0]; + A(2) += nx * xbar[1]; + A(3) += nx * xbar[2]; + A(i+1 + 3) -= nx; + + // upper left 3x3 matrix of B + B(1, 1) += xbar[0]*xbar[0]; + B(2, 2) += xbar[1]*xbar[1]; + B(3, 3) += xbar[2]*xbar[2]; + + B(1,2) += xbar[0]*xbar[1]; + B(2,1) += xbar[0]*xbar[1]; + + B(1,3) += xbar[0]*xbar[2]; + B(3,1) += xbar[0]*xbar[2]; + + B(2,3) += xbar[1]*xbar[2]; + B(3,2) += xbar[1]*xbar[2]; + + B(1, i+1 +3) -= xbar[0]; + B(i+1 +3, 1) -= xbar[0]; + + B(2, i+1 +3) -= xbar[1]; + B(i+1 +3, 2) -= xbar[1]; + + B(3, i+1 +3) -= xbar[2]; + B(i+1 +3, 3) -= xbar[2]; + } + + B(i+1 +3, i+1 +3) = points.size(); + } + + // calc result + +// cout << "A: " << endl << A << endl; +// cout << "B: " << endl << B << endl; + + ColumnVector X = B.i() * A; + +// cout << "X: " << endl << X << endl; + + + return X; +}*/ +void join(vector > &cps, double min_angle, vector > &n_cps) { + bool **par = new bool*[cps.size()]; + for (unsigned int i = 0; i< cps.size(); i++) { + par[i] = new bool[cps.size()]; + } + + for (unsigned int i = 0; i < cps.size(); i++) { + par[i][i] = false; + for (unsigned int j = i+1; j < cps.size(); j++) { + if (parallel(cps[i], cps[j], min_angle) ) { + par[i][j] = true; + par[j][i] = true; + } + else { + par[i][j] = false; + par[j][i] = false; + } + } + } + vector > zhks; + getZHK(cps.size(), par, zhks); + + for (unsigned int i = 0; i < zhks.size(); i++) { + set zhk; + n_cps.push_back(zhk); + for (set::iterator it = zhks[i].begin(); it != zhks[i].end(); it++) { + n_cps[i].insert( cps[*it].begin(), cps[*it].end() ); + } + } + + for (unsigned int i = 0; i< cps.size(); i++) { + delete[] par[i]; + } + delete[] par; +} + +void getModel(vector &model, vector &allPlanes) { + int planes = allPlanes.size();//588; + double min_angle = rad(MAX_PARALLEL_ANGLE); + double perp_angle = rad(MIN_RIGHT_ANGLE); + int min_size = 0; + + // polar coordinates of plane + vector norms; + for (unsigned int i = 0; i < allPlanes.size(); i ++) {; + double *norm = new double[5]; + toPolar(allPlanes[i]->n, norm); // 0: phi, 1:theta + norm[2] = allPlanes[i]->pointsize; // number of points + norm[3] = i; // index + norm[4] = allPlanes[i]->rho; // rho + norms.push_back(norm); + } + + // copy of polar coordinate representation + double **normals = new double*[planes];//[planes][4]; + for (int j = 0; j < planes; j++) { + normals[j] = norms[j]; + } + + // all normals in Quadtree and cluster + QuadTree tree(normals, planes , 0.40, min_angle); + vector > cpsold; + cpsold = tree.getClusters(); + + //join similar normals + vector > cps; + join(cpsold, min_angle, cps); + + // Filtering + for (unsigned int i = 0; i < cps.size(); i++) { +cout << "Cluster " << i << ": " << cps[i].size(); + set::iterator it = cps[i].begin(); + double *rep = *it; + // for each normal in this cluster + while ( it != cps[i].end()) { + double *normal = (*it); + double flipped[3]; + flip(normal, flipped); + // check wether the flipped one is closer + if (polardist(rep, flipped) < polardist(rep, normal) ) { + normal[0] = flipped[0]; + normal[1] = flipped[1]; + } +cout << " " << normal[3] << " normal: " << normal[0] << " " << normal[1] << endl; + it++; + } + } + + double **cnorms = new double*[cps.size()]; + bool **cnrels = new bool*[cps.size()]; + int *normpts = new int[cps.size()]; + +cout << "Center normals.." << endl; + // Calculate the centerd normals + for (unsigned int i = 0; i < cps.size(); i++) { +cout << "Cluster " << i << ":" << endl; + cnorms[i] = new double[3]; + cnrels[i] = new bool[cps.size()]; + cnorms[i][0] = 0; + cnorms[i][1] = 0; + cnorms[i][2] = 0; + + int sumpoints = 0; + for (set::iterator it = cps[i].begin(); + it != cps[i].end(); it++) { + double *normal = (*it); + double k[3], n[3]; + n[0] = normal[0]; + n[1] = normal[1]; + n[2] = 1; + toKartesian(n, k); + cnorms[i][0] += k[0] * normal[2]; + cnorms[i][1] += k[1] * normal[2]; + cnorms[i][2] += k[2] * normal[2]; + sumpoints += normal[2]; + } + normpts[i] = sumpoints; + cnorms[i][0] /= sumpoints; + cnorms[i][1] /= sumpoints; + cnorms[i][2] /= sumpoints; + Normalize3(cnorms[i]); + double p[3]; + toPolar(cnorms[i], p); + cnorms[i][0] = p[0]; + cnorms[i][1] = p[1]; + + cout << " cnormal: " << cnorms[i][0] << " " << cnorms[i][1] << endl; + } + + // Calculate relations between clusters + for (unsigned int i = 0; i < cps.size(); i++) { + cnrels[i][i] = false; + for (unsigned int j = i+1; j < cps.size(); j++) { + double angle = polardist(cnorms[i], cnorms[j]); + cnrels[i][j] = angle > perp_angle && angle < (rad(180.0) - perp_angle); + cnrels[j][i] = cnrels[i][j]; + } + } + + // calculate clusters that are big enough + vector big_clusters; + for (unsigned int i = 0; i < cps.size(); i++) { + if (normpts[i] > min_size) { + big_clusters.push_back(i); + } + } + cout << "look for biggest cliques..." << endl; + // Calculate biggest 3-cliques + int ci, cj, ck, cpoints; + ci = cj = ck = -1; + cpoints = 0; + for (vector::iterator it = big_clusters.begin(); + it != big_clusters.end(); it++) { + unsigned int i = *it; + for (vector::iterator jt = it+1; + jt != big_clusters.end(); jt++) { + unsigned int j = *jt; + if (!cnrels[i][j]) continue; + for (vector::iterator kt = jt+1; + kt != big_clusters.end(); kt++) { + unsigned int k = *kt; + if (cnrels[i][k] && cnrels[j][k]) { + // candidate clique + int sum = normpts[i] + normpts[j] + normpts[k]; + if (sum > cpoints) { + cpoints = sum; + ci = i; + cj = j; + ck = k; + cout << i << " " << j << " " << k << " " << sum << endl; + } + } + } + } + } + if (ci == -1 || cj == -1 || ck == -1) { + cout << "No clique could be found!" << endl; + return; + } + + // Estimate new normals + double n[3]; + ConvexPlane p1(cnorms[ci]); + p1.project(cnorms[cj], n); + ConvexPlane p2(n); + Cross(p1.n, p2.n, n); + ConvexPlane p3(n); + + // map from allPlane index to ci, cj or ck + map idxTotype; + int idx = 0; +cout << "hmm " << endl; + vector numerical_planes; + for (set::iterator it = cps[ci].begin(); it != cps[ci].end(); it++) { + double *normal = (*it); + int index = (int)normal[3]; + ConvexPlane *plane = allPlanes[index]; + /* + plane->n[0] = p1.n[0]; + plane->n[1] = p1.n[1]; + plane->n[2] = p1.n[2]; + */ + model.push_back(plane); + + cout << "for ci = " << ci << " plane index " << idx << " ap index " << index << endl; + idxTotype[idx++] = ci; + } + for (set::iterator it = cps[cj].begin(); it != cps[cj].end(); it++) { + double *normal = (*it); + int index = (int)normal[3]; + ConvexPlane *plane = allPlanes[index]; + /* + plane->n[0] = p2.n[0]; + plane->n[1] = p2.n[1]; + plane->n[2] = p2.n[2]; + */ + model.push_back(plane); + + cout << "for cj = " << cj << " plane index " << idx << " ap index " << index << endl; + idxTotype[idx++] = cj; + } + for (set::iterator it = cps[ck].begin(); it != cps[ck].end(); it++) { + double *normal = (*it); + int index = (int)normal[3]; + ConvexPlane *plane = allPlanes[index]; + /* + plane->n[0] = p3.n[0]; + plane->n[1] = p3.n[1]; + plane->n[2] = p3.n[2]; + */ + model.push_back(plane); + + cout << "for ck = " << ck << " plane index " << idx << " ap index " << index << endl; + idxTotype[idx++] = ck; + } + + /* + int MAX_IT = 100; +// int MAX_IT = 10000; + int it_nr = 0; + ColumnVector X; + double MIN_ERR = 0.0005; +// double MIN_ERR = 0.0000000000000000000001; + double error = 0.0; + do { + //cout << it_nr << endl; + it_nr++; + // calc rotation and rho's + X = calcRotRhos(numerical_planes); + // apply rotation to normals + double rPos[3] = {0.0, 0.0, 0.0}; + double rPosTheta[3]; + rPosTheta[0] = -X(1); + rPosTheta[1] = -X(2); + rPosTheta[2] = -X(3); + error = fabs (X(1)) + fabs(X(2)) + fabs(X(3)) ; +// cout << rPosTheta[0] << " " << rPosTheta[1] << " " <n[0]; + normal.y = numerical_planes[j]->n[1]; + normal.z = numerical_planes[j]->n[2]; +// cout << "NP " << j << " " << normal.x << " " << normal.y << " " << normal.z << endl; + normal.transform(alignxf); +// cout <<"to" << endl; +// cout << normal.x << " " << normal.y << " " << normal.z << endl; + numerical_planes[j]->n[0] = normal.x; + numerical_planes[j]->n[1] = normal.y; + numerical_planes[j]->n[2] = normal.z; +// cout << "NP " << j << " " << normal.x << " " << normal.y << " " << normal.z << endl; + } + // repeat + } while (error > MIN_ERR || it_nr > MAX_IT); +// cout << "ERRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR" << endl; + // apply rho's to planes + for(unsigned int j = 0; j < numerical_planes.size(); j++) { +// cout << j << " s rho is " << numerical_planes[j]->rho << endl; + numerical_planes[j]->rho = -X(j+1 +3); +// cout << j << " s rho is " << numerical_planes[j]->rho << endl; + } + + bool **graph = new bool*[numerical_planes.size()]; + for (unsigned int i = 0; i < numerical_planes.size(); i++) { + graph[i] = new bool[numerical_planes.size()]; + } + + + for (unsigned int i = 0; i < numerical_planes.size(); i++) { + graph[i][i] = false; + for (unsigned int j = i+1; j < numerical_planes.size(); j++) { + if( fabs(numerical_planes[i]->rho - numerical_planes[j]->rho) < MAX_EQUAL_DIST + && idxTotype[i] == idxTotype[j] ) { // check wether planes belong to the same type + graph[i][j] = true; + graph[j][i] = true; + } else { + graph[i][j] = false; + graph[j][i] = false; + } + } + } + + vector > zhks; + getZHK(numerical_planes.size(), graph, zhks); + + for (unsigned int i = 0; i < zhks.size(); i++) { + vector pplane; + for (set::iterator it = zhks[i].begin(); it != zhks[i].end(); it++) { + pplane.push_back(numerical_planes[*it]); + cout << "zhk " << i << " p " << (*it) << endl; + } + ConvexPlane *plane = new ConvexPlane(pplane); + model.push_back(plane); + } + */ + //exit(0); +} + + + +/** + * Main function. The Hough Transform is called for the scan indicated as + * argument. + * + */ +int main(int argc, char **argv) +{ + + cout << "(c) Jacobs University Bremen, gGmbH, 2011" << endl << endl; + + if (argc <= 1) { + usage(argv[0]); + } + // parsing the command line parameters + // init, default values if not specified + string dir; + double red = -1.0; + int start = 0; + int maxDist = -1; + int minDist = -1; + int octree = 0; + bool quiet = false; + IOType type = UOS; + + cout << "Parse args" << endl; + parseArgs(argc, argv, dir, red, start, maxDist, minDist, octree, type, quiet); + Scan::dir = dir; + int fileNr = start; + string planedir = dir + "planes"; + +#ifdef _MSC_VER + int success = mkdir(planedir.c_str()); +#else + int success = mkdir(planedir.c_str(), S_IRWXU|S_IRWXG|S_IRWXO); +#endif + if(success == 0) { + if(!quiet) { + cout << "Writing planes to " << planedir << endl; + } + } else if(errno == EEXIST) { + cout << "Directory " << planedir << " exists already. CONTINUE" << endl; + } else { + cerr << "Creating directory " << planedir << " failed" << endl; + exit(1); + } + Scan::readScans(type, fileNr, fileNr, dir, maxDist, minDist, 0); + // reduction filter for current scan! + //Scan::allScans[0]->calcReducedPoints(red, octree); + Scan::allScans[0]->toGlobal(red, octree); + + double id[16]; + M4identity(id); + for(int i = 0; i < 10; i++) { + Scan::allScans[0]->transform(id, Scan::ICP, 0); // write end pose + } + //Hough hough(Scan::allScans[0], quiet); + //hough.RHT(); + cout << "Hough done" << endl; + + // calculate relations between planes + //vector * allPlanes = &hough.planes; + /* + PPair **p_graph; + + p_graph = new PPair*[allPlanes->size()]; + for (unsigned int i = 0; i < allPlanes->size(); i++) { + p_graph[i] = new PPair[allPlanes->size()]; + } + getPPairs(*allPlanes, p_graph); + */ + // optimize relations + //vector model; + //getModel(model, *allPlanes); + //cout << "GetModel done" << endl; + + //Hough houghdelete(Scan::allScans[0], quiet); + cout << "start range image calculation" << endl; + long starttime = GetCurrentTimeInMilliSec(); + int size; + //double * const* points_red = houghdelete.deletePoints(*allPlanes, size); + //double * const* points_red = hough.getPoints(size); + cout << "Size " << size << endl; + + + double * const* points_red = Scan::allScans[0]->get_points_reduced(); + // Image myImage(0.0, 360.0, 0.0, 180.0, 0.04, points_red, Scan::allScans[0]->get_points_red_size()); + + Image myImage(0.0, 360.0, 0.0, 180.0, 0.08, Scan::allScans[0]->get_points()); + + //Image myImage(90.0, 270.0, 40.0, 90.0, 1.0, points_red, size); + + starttime = (GetCurrentTimeInMilliSec() - starttime); + cout << "Time for Constructor call: " << starttime << endl; + + starttime = GetCurrentTimeInMilliSec(); + + int** regdat; + int width = myImage.getWidth(); + regdat = new int*[width]; + for(int i = 0; i < width; i++) { + regdat[i] = new int[myImage.getHeight()]; + } + + int** regdat2; + regdat2 = new int*[width]; + for(int i = 0; i < width; i++) { + regdat2[i] = new int[myImage.getHeight()]; + } + + //myImage.blobColor(05.0, regdat); + //cout << "blobColor done" << endl; + //myImage.printImage("blub.ppm", true); + myImage.printImage("blub.ppm", false); + float min = myImage.getMin(); + float max = myImage.getMax(); + float tenPercent = (max - min)*0.45; + cout << "MinMax " << min << " " << max << " " << tenPercent << " " << (max - min) << " "<< (max - tenPercent) << endl; + myImage.calcMarker(min + tenPercent, regdat); + cout << "Marker done" << endl; + int regions = myImage.cluster(5, regdat, regdat2); + cout << "Nu kommen die Punkte" << endl; + myImage.writeCenters(regions, regdat2, Scan::allScans[0]->get_points()); + cout << "dat woarn se" << endl; + + //myImage.blobColor(5, regdat2); + //cout << "blobColor done" << endl; + //myImage.printScans(regdat, points_red, Scan::allScans[0]->get_points_red_size()); + cout << "print Scans done" << endl; + starttime = (GetCurrentTimeInMilliSec() - starttime); + + cout << "Time for whatever " << starttime << endl; + delete Scan::allScans[0]; + Scan::allScans.clear(); +} + diff --git a/src/show/CMakeLists.txt b/src/show/CMakeLists.txt new file mode 100644 index 0000000..9ce328d --- /dev/null +++ b/src/show/CMakeLists.txt @@ -0,0 +1,28 @@ +SET(SHOW_LIBS ${OPENGL_LIBRARIES} glui scan ANN) +IF(WIN32) + IF( CMAKE_SIZEOF_VOID_P EQUAL 8 ) + SET(SHOW_LIBS ${SHOW_LIBS} ${CMAKE_SOURCE_DIR}/3rdparty/windows/x64/freeglut.lib XGetopt) + ELSE( CMAKE_SIZEOF_VOID_P EQUAL 8 ) + SET(SHOW_LIBS ${SHOW_LIBS} ${CMAKE_SOURCE_DIR}/3rdparty/windows/freeglut.lib XGetopt) + ENDIF(CMAKE_SIZEOF_VOID_P EQUAL 8 ) +ENDIF(WIN32) +IF (UNIX) + SET(SHOW_LIBS newmat dl ${GLUT_LIBRARIES} ${SHOW_LIBS}) +ENDIF(UNIX) + +IF(WITH_GLEE) + SET(SHOW_LIBS ${SHOW_LIBS} glee) +ENDIF(WITH_GLEE) + +SET(SHOW_SRCS NurbsPath.cc PathGraph.cc vertexarray.cc viewcull.cc colormanager.cc compacttree.cc scancolormanager.cc display.cc) + +IF (WITH_SHOW) + add_executable(show show.cc ${SHOW_SRCS}) + target_link_libraries(show ${SHOW_LIBS}) +ENDIF(WITH_SHOW) + +IF(WITH_WXSHOW) + add_executable(wxshow wxshow.cc selectionframe.cc ${SHOW_SRCS}) + target_link_libraries(wxshow ${wxWidgets_LIBRARIES} wxthings ${SHOW_LIBS}) +ENDIF(WITH_WXSHOW) + diff --git a/src/show/NurbsPath.cc b/src/show/NurbsPath.cc new file mode 100644 index 0000000..e0680e2 --- /dev/null +++ b/src/show/NurbsPath.cc @@ -0,0 +1,194 @@ +/* + * NurbsPath implementation + * + * Copyright (C) Christof Soeger, Marcel Junker, Anton Fluegge, Hannes Schulz, + Andreas Nuechter, Kai Lingemann, Jan Elseberg + * + * Released under the GPL version 3. + * + */ + +#include "show/NurbsPath.h" +#include +#include +/** + * Smoothes a given path, using the Cox-De-Boor algorithm to compute + * new nodes on the B-Spline. + * @param origP vector of PointXYs representing the path + * @param nump number of points, which should be computed for the smoothed path + * @return vector of PointXYs representing the smoothed path + */ +vector NurbsPath::camRatio = vector(); + +vector +NurbsPath::getNurbsPath(vector& origP, + unsigned int nump, int inter_by_dist){ + list pgnl; + list freepgnl; + for(unsigned int i=0; ipoint.x = origP[i].x; + p->point.y = origP[i].y; + pgnl.push_back(p); + freepgnl.push_back(p); + } + + vector vec = getNurbsPath(pgnl,nump,inter_by_dist); + + for(list::iterator it = freepgnl.begin();it!=freepgnl.end();it++) { + PGNode *p = *it; + delete p; + } + pgnl.clear(); + freepgnl.clear(); + + return vec; +} + +/** + * Smoothes a given path, using the Cox-De-Boor algorithm to compute + * new nodes on the B-Spline. + * @param origP list of PGNode*s representing the path + * @param nump number of points, which should be computed for the smoothed path + * @return vector of PointXYs representing the smoothed path + */ +vector +NurbsPath::getNurbsPath(list& origP, + unsigned int nump, int inter_by_dist){ + ivN = origP.size(); + if(ivN<=1){ + vector pv; + return pv; + } + + //hack for short paths + if(ivN==2){ + list::iterator it = origP.begin(); + PGNode* tmpStart = *it; + it++; + origP.push_back(*it); + origP.push_front(tmpStart); + ivN=4; + } + if(ivN==3){ + list::iterator it = origP.begin(); + it++; + origP.insert(it, (*it)); + ivN=4; + } + //end short path hack + + float *origPX = new float[ivN]; + float *origPY = new float[ivN]; + list::iterator it; + unsigned int i=0; + for(it=origP.begin();it!=origP.end();it++,i++){ + origPX[i] = (*it)->point.x; + origPY[i] = (*it)->point.y; + } + + ivDegree = 3; + ivOrder = ivDegree+1; + ivNumKnots = ivN + ivDegree; + if(inter_by_dist) { + ivNumP = nump; + } else { + ivNumP = camRatio.size(); + } + float *ivpKnots = new float[ivNumKnots+1]; + + for(i=0;i<=ivDegree;i++) + ivpKnots[i] = 0.0f; + + int numIntKnots = ((ivNumKnots-ivDegree)-(ivOrder)); + + for(i=ivOrder; i < ivNumKnots - ivDegree ; i++) + ivpKnots[i] = ((float)(i-ivDegree))/(numIntKnots+1); + + for(i=ivNumKnots-ivDegree;i<=ivNumKnots;i++) + ivpKnots[i] = 1.f; + + vector nurbsPath; + nurbsPath.reserve(ivNumP); + PointXY outPoint; + float out[2]={0,0}; + + for(i=0;i<=ivNumP; i++){ + out[0] = 0; + out[1] = 0; + if(i!=ivNumP) + if(inter_by_dist) { + getOutpoint((float)i/ivNumP,out,origPX,origPY,ivpKnots); + } else { + getOutpoint(camRatio[i],out,origPX,origPY,ivpKnots); + } + else + getOutpoint(.999999,out,origPX,origPY,ivpKnots); + + outPoint.x = out[0]; + outPoint.y = out[1]; + nurbsPath.push_back(outPoint); + } + + delete [] origPX; + delete [] origPY; + delete [] ivpKnots; + + return nurbsPath; +} + + +/** + * Implementation of the Cox-De-Boor algorithm. + * The implementation of this algorithm is inspired by the Nurbs Curve Example on + * http://www.robthebloke.org/opengl_programming.html + * @param u measure for the length already gone on the smoothed path for the point to be calculated (it should hold that 0 <= u < 1) + * @param i effect of which original path node on the output path should be computed + * @param k order (degree of the B-Splines plus 1) + * @param Knots array of knots needed to compute the B-Spline + */ +float +NurbsPath::coxDeBoor(float u,int i,int k,const float* Knots) { + if(k==1) + { + if( Knots[i] <= u && u < Knots[i+1] ) { + return 1.0f; + } + return 0.0f; + } + float Den1 = Knots[i+k-1] - Knots[i]; + float Den2 = Knots[i+k] - Knots[i+1]; + float Eq1=0,Eq2=0; + if(Den1>0) { + Eq1 = ((u-Knots[i]) / Den1) * coxDeBoor(u,i,k-1,Knots); + } + if(Den2>0) { + Eq2 = (Knots[i+k]-u) / Den2 * coxDeBoor(u,i+1,k-1,Knots); + } + return Eq1+Eq2; +} + +/** + * Computes one value on the B-Spline + * @param[in] t which point on the spline you want to compute (betwenn 0 for the start point and 1-epsilon for the end point of the smoothed path) + * @param[out] OutPoint[] array of two floats, will be overwritten with the x and y coordinate of the point + */ +void +NurbsPath::getOutpoint(float t,float OutPoint[],float*opx,float*opy,const float*knots) { + + // sum the effect of all CV's on the curve at this point to + // get the evaluated curve point + // + for(unsigned int i=0;i!=ivN;++i) { + + // calculate the effect of this point on the curve + float Val = coxDeBoor(t,i,ivOrder,knots); + + if(Val>0.0001f) { + + // sum effect of CV on this part of the curve + OutPoint[0] += Val * opx[i]; + OutPoint[1] += Val * opy[i]; + } + } +} diff --git a/src/show/PathGraph.cc b/src/show/PathGraph.cc new file mode 100644 index 0000000..fe78742 --- /dev/null +++ b/src/show/PathGraph.cc @@ -0,0 +1,255 @@ +/* + * PathGraph implementation + * + * Copyright (C) Christof Soeger, Marcel Junker, Anton Fluegge, Hannes Schulz, + Andreas Nuechter, Kai Lingemann, Jan Elseberg + * + * Released under the GPL version 3. + * + */ + +#include "show/PathGraph.h" +#include + +PGNode* PathGraph::insertNode(PointXY p){ + PGNode* n = new PGNode; + n->point = p; + ivNodeList.push_back(n); + return n; +} +void PathGraph::insertNodeAndConnectToAll(PointXY p){ + PGNode* n = insertNode(p); + list::iterator iter; + for( iter = ivNodeList.begin(); iter != ivNodeList.end(); iter++ ) { + if((*iter)!=n) + insertEdge(n,*iter); + } +} + +PGNode* PathGraph::insertUniqueNode(PointXY p){ + list::iterator iter; + for( iter = ivNodeList.begin(); iter != ivNodeList.end(); iter++ ) { + if((*iter)->point.x == p.x && (*iter)->point.y == p.y) + return *iter; + } + return insertNode(p); +} + +void PathGraph::deleteNode(PGNode* n){ + list::iterator i; + list::iterator j; + for(i=ivNodeList.begin();i!=ivNodeList.end();i++){ + if(*i == n){ + while((j=(*i)->neighbours.begin()) != (*i)->neighbours.end()) + deleteEdge(*i,*j); + delete *i; + ivNodeList.erase(i); + break; + } + } +} + + +bool PathGraph::setStartNode(PointXY p) { + if (!startOnGraph) + deleteNode(ivpStartNode); + startOnGraph=false; + PGNode* n=NULL; + list::iterator iter; + for( iter = ivNodeList.begin(); iter != ivNodeList.end() && !startOnGraph; iter++ ) { + if((*iter)->point.x == p.x && (*iter)->point.y == p.y) { + n=*iter; + startOnGraph=true; + } + } + if (!startOnGraph) { + n=insertNode(p); + } + ivpStartNode=n; + return !startOnGraph; +} + +bool PathGraph::setEndNode(PointXY p) { + if (!endOnGraph) + deleteNode(ivpEndNode); + endOnGraph=false; + PGNode* n=NULL; + list::iterator iter; + for( iter = ivNodeList.begin(); iter != ivNodeList.end() && !endOnGraph; iter++ ) { + if((*iter)->point.x == p.x && (*iter)->point.y == p.y) { + n=*iter; + endOnGraph=true; + } + } + if (!endOnGraph) { + n=insertNode(p); + } + ivpEndNode=n; + return !endOnGraph; +} + + + +void PathGraph::printGraphMap(const char* fn){ + FILE *file; + if((file = fopen(fn, "w"))==NULL){ + printf("# in PathGraph::printGraph : Could not open output file %s!\n", fn); + return; + } +#if 0 + list::iterator i,j; + for(i=ivNodeList.begin();i!=ivNodeList.end();i++){ + for(j=(*i)->neighbours.begin();j!=(*i)->neighbours.end();j++){ + fprintf(file,"%i %i %i %i\n", (*i)->point.x, + (*i)->point.y, + (*j)->point.x, + (*j)->point.y); + } + } +#else + PGEdge e; + for(PathGraph::Iter i = this->firstEdge();!i.isLast();i++){ + e = *i; + fprintf(file,"%f %f %f %f\n", e.start->point.x, + e.start->point.y, + e.end->point.x, + e.end->point.y); + } +#endif + fclose(file); +} + +void PathGraph::savePath(const char* fn){ + FILE *file; + if((file = fopen(fn, "w"))==NULL){ + printf("# in PathGraph::savePath : Could not open output file %s!\n", fn); + return; + } + map names; + int i=0; + list::iterator it,it2; + for(it=ivNodeList.begin();it!=ivNodeList.end();it++){ + names[*it] = i++; + } + for(it=ivNodeList.begin();it!=ivNodeList.end();it++){ + fprintf(file,"%i %f %f\n",names[*it], (*it)->point.x, (*it)->point.y); + } + fprintf(file,"x\n"); + i=0; + for(it=ivNodeList.begin();it!=ivNodeList.end();it++,i++){ + fprintf(file,"%i %zu ",names[*it], (*it)->neighbours.size()); + for(it2=(*it)->neighbours.begin();it2!=(*it)->neighbours.end();it2++){ + fprintf(file,"%i ",names[*it2]); + } + fprintf(file,"\n"); + } + fprintf(file,"x\n"); + //fprintf(file,"%i %i",names[ivpStartNode],names[ivpEndNode]); + + fclose(file); + // printf("Printed graph to %s\n",fn); +} + +void PathGraph::saveGraph(const char* fn){ + FILE *file; + if((file = fopen(fn, "w"))==NULL){ + printf("# in PathGraph::saveGraph : Could not open output file %s!\n", fn); + return; + } + map names; + int i=0; + list::iterator it,it2; + for(it=ivNodeList.begin();it!=ivNodeList.end();it++){ + names[*it] = i++; + } + for(it=ivNodeList.begin();it!=ivNodeList.end();it++){ + fprintf(file,"%i %f %f\n",names[*it], (*it)->point.x, (*it)->point.y); + } + fprintf(file,"x\n"); + i=0; + for(it=ivNodeList.begin();it!=ivNodeList.end();it++,i++){ + fprintf(file,"%i %zu ",names[*it], (*it)->neighbours.size()); + for(it2=(*it)->neighbours.begin();it2!=(*it)->neighbours.end();it2++){ + fprintf(file,"%i ",names[*it2]); + } + fprintf(file,"\n"); + } + fprintf(file,"x\n"); + //fprintf(file,"%i %i",names[ivpStartNode],names[ivpEndNode]); + + fclose(file); + // printf("Printed graph to %s\n",fn); +} +void PathGraph::loadGraph(const char* fn){ + FILE *file; + if((file = fopen(fn, "r"))==NULL){ + printf("# in PathGraph::loadGraph : Could not open input file %s!\n", fn); + return; + } + map names; + int name; + PointXY p; + int res; + int i=0,j; + char c; + while(1){ + res = fscanf(file,"%i %f %f",&name,&(p.x),&(p.y)); + if(res != 3) + break; + i++; + names[name] = this->insertNode(p); + } + res = fscanf(file,"%c",&c); + int numNeighbours, neighbourName; + i= 0; + while(1){ + res = fscanf(file,"%i %i",&name,&numNeighbours); + if(res != 2) + break; + i++; + for(j=0; jinsertOneDirEdge(names[name],names[neighbourName]); + } + } + /* + fscanf(file,"%c",&c); + int startNr,endNr; + fscanf(file,"%i %i",&startNr,&endNr); + setStartNode(names[startNr]->point); + setEndNode(names[endNr]->point); + */ + fclose(file); +} + +void PathGraph::insertEdge(PGNode* a, PGNode* b){ + a->neighbours.push_back(b); + b->neighbours.push_back(a); +} + +void PathGraph::insertOneDirEdge(PGNode* a, PGNode* b){ + a->neighbours.push_back(b); +} + +void PathGraph::deleteEdge(PGNode* a, PGNode* b){ + a->neighbours.remove(b); + b->neighbours.remove(a); +} + +PathGraph::~PathGraph(){ + list::iterator i; + for(i=ivNodeList.begin();i!=ivNodeList.end();i++) + delete *i; +} + +PathGraph::Iter +PathGraph::firstEdge(){ + if(ivNodeList.empty()){ + return Iter(ivNodeList.end(),ivNodeList.end()); + } + return Iter(ivNodeList.begin(),ivNodeList.end()); +} diff --git a/src/show/colormanager.cc b/src/show/colormanager.cc new file mode 100644 index 0000000..79b3b83 --- /dev/null +++ b/src/show/colormanager.cc @@ -0,0 +1,116 @@ +/* + * compacttree implementation + * + * Copyright (C) Jan Elseberg, Dorit Borrmann + * + * Released under the GPL version 3. + * + */ + +#ifdef _MSC_VER +#define _USE_MATH_DEFINES +#include +#endif +#ifdef __APPLE__ +#include +#else +#include +#endif +#include "stdio.h" +#include "slam6d/globals.icc" +#include "float.h" +#include "show/colormanager.h" + + + + +void ColorMap::convert_hsv_to_rgb(float hue, float s, float v, + float &r, float &g, float &b) { + float p1, p2, p3, i, f; + float xh; + + if (hue == 360.0) + hue = 0.0; + + xh = hue / 60.; // convert hue to be in 0,6 + i = (float)floor((double)xh); // i is greatest integer smaller than h + f = xh - i; // f is the fractional part of h + p1 = v * (1 - s); + p2 = v * (1 - (s * f)); + p3 = v * (1 - (s * (1 - f))); + + switch ((int) i) + { + case 0: + r = v; + g = p3; + b = p1; + break; + case 1: + r = p2; + g = v; + b = p1; + break; + case 2: + r = p1; + g = v; + b = p3; + break; + case 3: + r = p1; + g = p2; + b = v; + break; + case 4: + r = p3; + g = p1; + b = v; + break; + case 5: + r = v; + g = p1; + b = p2; + break; + } + +} +ColorMap ColorMap::getColorMap(CM map) { + switch(map) { + case SOLID: + return ColorMap(); + break; + case GREY: + return GreyMap(); + break; + case HSV: + return HSVMap(); + break; + case JET: + return JetMap(); + break; + case HOT: + return HotMap(); + break; + case SHSV: + return SHSVMap(); + break; + default: + return ColorMap(); + break; + } +} + +const float DiffMap::cmap[7][3] = { + { 1.0, 1.0, 0}, + { 1.0, 0.5000, 1.0}, + { 0, 1.0, 1.0}, + { 1.0, 0.2500, 0.2500}, + { 0.2500, 1.0, 0.2500}, + { 0.2500, 0.2500, 1.0}, + { 0.7500, 0.7500, 0.7500} }; + +void DiffMap::calcColor(float *d, unsigned int i, unsigned int buckets) { + d[0] = cmap[i%7][0]; + d[1] = cmap[i%7][1]; + d[2] = cmap[i%7][2]; +} diff --git a/src/show/compacttree.cc b/src/show/compacttree.cc new file mode 100644 index 0000000..44067b8 --- /dev/null +++ b/src/show/compacttree.cc @@ -0,0 +1,848 @@ +/* + * compacttree implementation + * + * Copyright (C) Jan Elseberg, Kai Lingemann, Jan Elseberg + * + * Released under the GPL version 3. + * + */ + +/** + * @file + * @brief Efficient representation of an octree + * @author Jan Elsberg. Automation Group, Jacobs University Bremen gGmbH, Germany. + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include + +#include +using std::vector; +#include +using std::deque; +#include +using std::set; +#include +using std::list; +#include +#include +#include + +#include "slam6d/globals.icc" +#include "slam6d/point_type.h" + +#include "slam6d/Boctree.h" +#include "show/compacttree.h" +#include "show/colormanager.h" +#include "show/scancolormanager.h" +#include "show/viewcull.h" + +compactTree::~compactTree(){ + delete alloc; + + delete[] mins; + delete[] maxs; +} + + +void compactTree::AllPoints( cbitoct &node, vector &vp, double center[3], double size) { + double ccenter[3]; + cbitunion *children; + cbitoct::getChildren(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + childcenter(center, ccenter, size, i); // childrens center + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf get center + tshort *point = children->getPoints(); + lint length = children->getLength(); + + for(unsigned int iterator = 0; iterator < length; iterator++ ) { + double *p = new double[3]; + //cout << point[0] << " " << point[1] << " " << point[2] << endl; + for (unsigned int k = 0; k < 3; k++){ + p[k] = point[k] * precision + ccenter[k]; + } + + vp.push_back(p); + point+=POINTDIM; + } + } else { // recurse + AllPoints( children->node, vp, ccenter, size/2.0); + } + ++children; // next child + } + } +} + + + +void compactTree::GetOctTreeCenter(vector&c, cbitoct &node, double *center, double size) { + double ccenter[3]; + cbitunion *children; + cbitoct::getChildren(node, children); + + for (unsigned char i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + childcenter(center, ccenter, size, i); // childrens center + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf get center + double * cp = new double[POINTDIM]; + for (unsigned int iterator = 0; iterator < POINTDIM; iterator++) { + cp[iterator] = ccenter[iterator]; + } + c.push_back(cp); + } else { // recurse + GetOctTreeCenter(c, children->node, ccenter, size/2.0); + } + ++children; // next child + } + } +} +long compactTree::countNodes(cbitoct &node) { + long result = 0; + cbitunion *children; + cbitoct::getChildren(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf + // ++result; + } else { // recurse + result += countNodes(children->node) + 1; + } + ++children; // next child + } + } + return result; +} + +long compactTree::countLeaves(cbitoct &node) { + long result = 0; + cbitunion *children; + cbitoct::getChildren(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf + lint nrpts = children->getLength(); + result += POINTDIM*nrpts + 1; + } else { // recurse + result += countLeaves(children->node); + } + ++children; // next child + } + } + return result; +} + + +void compactTree::deletetNodes(cbitoct &node) { + cbitunion *children; + cbitoct::getChildren(node, children); + bool haschildren = false; + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf + tshort *points = children->getPoints(); + delete [] points; + // delete [] children->points; + } else { // recurse + deletetNodes(children->node); + } + ++children; // next child + haschildren = true; + } + } + // delete children + if (haschildren) { + cbitoct::getChildren(node, children); + delete[] children; + } +} + + +unsigned long compactTree::maxTargetPoints( cbitoct &node ) { + cbitunion *children; + cbitoct::getChildren(node, children); + + unsigned long max = 0; + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf get center + lint length = children->getLength(); + if (length > max) max = length; + } else { // recurse + unsigned long tp = maxTargetPoints( children->node); + if (tp > max) max = tp; + } + ++children; // next child + } + } + + return max*POPCOUNT(node.valid); +} + +void compactTree::displayOctTreeAll( cbitoct &node, double *center, double size) { + double ccenter[3]; + cbitunion *children; + cbitoct::getChildren(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + childcenter(center, ccenter, size, i); // childrens center + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf get center + tshort *point = children->getPoints(); + lint length = children->getLength(); + glBegin(GL_POINTS); + for(unsigned int iterator = 0; iterator < length; iterator++ ) { + if(cm) cm->setColor(point); + //cout << "C " << point[1] << " " << cm << endl; + //glVertex3f( point[0], point[1], point[2]); + glVertex3f( point[0] * precision + ccenter[0], point[1] * precision + ccenter[1], point[2] * precision + ccenter[2]); + point+=POINTDIM; + } + glEnd(); + } else { // recurse + displayOctTreeAll( children->node, ccenter, size/2.0); + } + ++children; // next child + } + } +} + +void compactTree::displayOctTreeAllCulled( cbitoct &node, double *center, double size ) { + int res = CubeInFrustum2(center[0], center[1], center[2], size); + if (res==0) return; // culled do not continue with this branch of the tree + + if (res == 2) { // if entirely within frustrum discontinue culling + displayOctTreeAll(node, center, size); + return; + } + + double ccenter[3]; + cbitunion *children; + cbitoct::getChildren(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + childcenter(center, ccenter, size, i); // childrens center + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf get center + // check if leaf is visible + if ( CubeInFrustum(ccenter[0], ccenter[1], ccenter[2], size/2.0) ) { + tshort *point = children->getPoints(); + lint length = children->getLength(); + glBegin(GL_POINTS); + for(unsigned int iterator = 0; iterator < length; iterator++ ) { + if(cm) cm->setColor(point); + //glVertex3f( point[0], point[1], point[2]); + glVertex3f( point[0] * precision + ccenter[0], point[1] * precision + ccenter[1], point[2] * precision + ccenter[2]); + point+=POINTDIM; + } + glEnd(); + } + } else { // recurse + displayOctTreeAllCulled( children->node, ccenter, size/2.0); + } + ++children; // next child + } + } +} + +void compactTree::displayOctTreeCulledLOD(long targetpts, cbitoct &node, double *center, double size ) { + if (targetpts <= 0) return; // no need to display anything + + int res = CubeInFrustum2(center[0], center[1], center[2], size); + if (res==0) return; // culled do not continue with this branch of the tree + + if (res == 2) { // if entirely within frustrum discontinue culling + displayOctTreeLOD(targetpts, node, center, size); + return; + } + + double ccenter[3]; + cbitunion *children; + cbitoct::getChildren(node, children); + + unsigned short nc = POPCOUNT(node.valid); + long newtargetpts = targetpts; + if (nc > 0) { + newtargetpts = newtargetpts/nc; + if (newtargetpts <= 0 ) return; + } + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + childcenter(center, ccenter, size, i); // childrens center + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf get center + // check if leaf is visible + if ( CubeInFrustum(ccenter[0], ccenter[1], ccenter[2], size/2.0) ) { + tshort *point = children->getPoints(); + lint length = children->getLength(); + glBegin(GL_POINTS); + if (length > 10 && !LOD(ccenter[0], ccenter[1], ccenter[2], size/2.0) ) { // only a single pixel on screen only paint one point + if(cm) cm->setColor(point); + //glVertex3f( point[0], point[1], point[2]); + glVertex3f( point[0] * precision + ccenter[0], point[1] * precision + ccenter[1], point[2] * precision + ccenter[2]); + } else if (length <= newtargetpts) { // more points requested than possible, plot all + for(unsigned int iterator = 0; iterator < length; iterator++ ) { + if(cm) cm->setColor(point); + //glVertex3f( point[0], point[1], point[2]); + glVertex3f( point[0] * precision + ccenter[0], point[1] * precision + ccenter[1], point[2] * precision + ccenter[2]); + point+=POINTDIM; + } + } else { // select points to show + // TODO smarter subselection of points here + double each = (double)POINTDIM * (double)((double)length/(double)newtargetpts); + tshort *p; + int index; + for(unsigned int iterator = 0; iterator < newtargetpts; iterator++ ) { + index = (double)iterator * each; + p = point + index - index%POINTDIM; + if(cm) cm->setColor(p); + //glVertex3f( p[0], p[1], p[2]); + glVertex3f( p[0] * precision + ccenter[0], p[1] * precision + ccenter[1], p[2] * precision + ccenter[2]); + //point += each; + } + } + glEnd(); + } + + } else { // recurse + displayOctTreeCulledLOD(newtargetpts, children->node, ccenter, size/2.0); + } + ++children; // next child + } + } +} + +void compactTree::displayOctTreeLOD(long targetpts, cbitoct &node, double *center, double size ) { + if (targetpts <= 0) return; // no need to display anything + + double ccenter[3]; + cbitunion *children; + cbitoct::getChildren(node, children); + + unsigned short nc = POPCOUNT(node.valid); + long newtargetpts = targetpts; + if (nc > 0) { + newtargetpts = newtargetpts/nc; + if (newtargetpts <= 0 ) return; + } + + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + childcenter(center, ccenter, size, i); // childrens center + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf get center + tshort *point = children->getPoints(); + lint length = children->getLength(); + glBegin(GL_POINTS); + /* if (length > 10 && !LOD(ccenter[0], ccenter[1], ccenter[2], size/2.0) ) { // only a single pixel on screen only paint one point + if(cm) cm->setColor(point); + //glVertex3f( point[0], point[1], point[2]); + glVertex3f( point[0] * precision + ccenter[0], point[1] * precision + ccenter[1], point[2] * precision + ccenter[2]); + } else*/ if (length <= newtargetpts) { // more points requested than possible, plot all + for(unsigned int iterator = 0; iterator < length; iterator++ ) { + if(cm) cm->setColor(point); + //glVertex3f( point[0], point[1], point[2]); + glVertex3f( point[0] * precision + ccenter[0], point[1] * precision + ccenter[1], point[2] * precision + ccenter[2]); + point+=POINTDIM; + } + } else { // select points to show + // TODO smarter subselection of points here + double each = (double)POINTDIM * (double)((double)length/(double)newtargetpts); + tshort *p; + int index; + for(unsigned int iterator = 0; iterator < newtargetpts; iterator++ ) { + index = (double)iterator * each; + p = point + index - index%POINTDIM; + if(cm) cm->setColor(p); + //glVertex3f( p[0], p[1], p[2]); + glVertex3f( p[0] * precision + ccenter[0], p[1] * precision + ccenter[1], p[2] * precision + ccenter[2]); + //point += each; + } + } + glEnd(); + } else { // recurse + displayOctTreeLOD(newtargetpts, children->node, ccenter, size/2.0); + } + ++children; // next child + } + } +} + +void compactTree::displayOctTreeCulledLOD2(float ratio, cbitoct &node, double *center, double size ) { + int res = CubeInFrustum2(center[0], center[1], center[2], size); + if (res==0) return; // culled do not continue with this branch of the tree + + if (res == 2) { // if entirely within frustrum discontinue culling + displayOctTreeLOD2(ratio, node, center, size); + return; + } + + double ccenter[3]; + cbitunion *children; + cbitoct::getChildren(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + childcenter(center, ccenter, size, i); // childrens center + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf get center + // check if leaf is visible + if ( CubeInFrustum(ccenter[0], ccenter[1], ccenter[2], size/2.0) ) { + tshort *point = children->getPoints(); + lint length = children->getLength(); + + int l = LOD2(ccenter[0], ccenter[1], ccenter[2], size/2.0); // only a single pixel on screen only paint one point + l = max((int)(l*l*ratio), 0); + if (l != 0) { + if ((int)length > l ) { + double each = (double)POINTDIM * (double)((double)length/(double)l); + tshort *p; + int index; + for(int iterator = 0; iterator < l; iterator++ ) { + index = (double)iterator * each; + p = point + index - index%POINTDIM; + if(cm) cm->setColor(p); + glVertex3f( p[0] * precision + ccenter[0], p[1] * precision + ccenter[1], p[2] * precision + ccenter[2]); + } + } else if ((int)length <= l) { + for(unsigned int iterator = 0; iterator < length; iterator++ ) { + if(cm) cm->setColor(point); + glVertex3f( point[0] * precision + ccenter[0], point[1] * precision + ccenter[1], point[2] * precision + ccenter[2]); + point+=POINTDIM; + } + } else if (l == 1) { + if(cm) cm->setColor(point); + glVertex3f( point[0] * precision + ccenter[0], point[1] * precision + ccenter[1], point[2] * precision + ccenter[2]); + } + } + } + } else { // recurse + int l = LOD2(ccenter[0], ccenter[1], ccenter[2], size/2.0); // only a single pixel on screen only paint one point + l = max((int)(l*l*ratio), 0); + if (l > 0) { + displayOctTreeCulledLOD2(ratio, children->node, ccenter, size/2.0); + } + } + ++children; // next child + } + } +} + +void compactTree::displayOctTreeLOD2(float ratio, cbitoct &node, double *center, double size ) { + double ccenter[3]; + cbitunion *children; + cbitoct::getChildren(node, children); + + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + childcenter(center, ccenter, size, i); // childrens center + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf get center + tshort *point = children->getPoints(); + lint length = children->getLength(); + + int l = LOD2(ccenter[0], ccenter[1], ccenter[2], size/2.0); // only a single pixel on screen only paint one point + l = max((int)(l*l*ratio), 0); + if (l > 1) { + if ((int)length > l ) { + double each = (double)POINTDIM * (double)((double)length/(double)l); + tshort *p; + int index; + for(int iterator = 0; iterator < l; iterator++ ) { + index = (double)iterator * each; + p = point + index - index%POINTDIM; + if(cm) cm->setColor(p); + glVertex3f( p[0] * precision + ccenter[0], p[1] * precision + ccenter[1], p[2] * precision + ccenter[2]); + } + } else if ((int)length <= l) { + for(unsigned int iterator = 0; iterator < length; iterator++ ) { + if(cm) cm->setColor(point); + glVertex3f( point[0] * precision + ccenter[0], point[1] * precision + ccenter[1], point[2] * precision + ccenter[2]); + point+=POINTDIM; + } + } + } else { + if(cm) cm->setColor(point); + glVertex3f( point[0] * precision + ccenter[0], point[1] * precision + ccenter[1], point[2] * precision + ccenter[2]); + } + } else { // recurse + int l = LOD2(ccenter[0], ccenter[1], ccenter[2], size/2.0); // only a single pixel on screen only paint one point + l = max((int)(l*l*ratio), 0); + if (l > 0) { + displayOctTreeLOD2(ratio, children->node, ccenter, size/2.0); + } + } + ++children; // next child + } + } +} + + +void compactTree::displayOctTreeCAllCulled( cbitoct &node, double *center, double size, double minsize ) { + int res = CubeInFrustum2(center[0], center[1], center[2], size); + if (res==0) return; // culled do not continue with this branch of the tree + + if (res == 2) { // if entirely within frustrum discontinue culling + displayOctTreeCAll(node, center, size, minsize); + return; + } + + double ccenter[3]; + cbitunion *children; + cbitoct::getChildren(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + childcenter(center, ccenter, size, i); // childrens center + if ( ( 1 << i ) & node.leaf || minsize > size ) { // if ith node is leaf get center + // check if leaf is visible + if ( CubeInFrustum(ccenter[0], ccenter[1], ccenter[2], size/2.0) ) { + showCube(ccenter, size/2.0); + } + } else { // recurse + displayOctTreeCAllCulled( children->node, ccenter, size/2.0, minsize); + } + ++children; // next child + } + } +} + +void compactTree::displayOctTreeCAll( cbitoct &node, double *center, double size, double minsize ) { + double ccenter[3]; + cbitunion *children; + cbitoct::getChildren(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + childcenter(center, ccenter, size, i); // childrens center + if ( ( 1 << i ) & node.leaf || minsize > size ) { // if ith node is leaf get center + showCube(ccenter, size/2.0); + } else { // recurse + displayOctTreeCAll( children->node, ccenter, size/2.0, minsize); + } + ++children; // next child + } + } +} + +void compactTree::showCube(double *center, double size) { + glLineWidth(1.0); + glBegin(GL_QUADS); // draw a cube with 6 quads + glColor3f(0.0f,1.0f,0.0f); // Set The Color To Green + glVertex3f(center[0] + size, center[1] + size, center[2] - size); + glVertex3f(center[0] - size, center[1] + size, center[2] - size); + glVertex3f(center[0] - size, center[1] + size, center[2] + size); + glVertex3f(center[0] + size, center[1] + size, center[2] + size); + glColor3f(1.0f,0.5f,0.0f); // Set The Color To Orange + + glVertex3f(center[0] + size, center[1] - size, center[2] + size); + glVertex3f(center[0] - size, center[1] - size, center[2] + size); + glVertex3f(center[0] - size, center[1] - size, center[2] - size); + glVertex3f(center[0] + size, center[1] - size, center[2] - size); + + glColor3f(1.0f,0.0f,0.0f); // Set The Color To Red + glVertex3f(center[0] + size, center[1] + size, center[2] + size); + glVertex3f(center[0] - size, center[1] + size, center[2] + size); + glVertex3f(center[0] - size, center[1] - size, center[2] + size); + glVertex3f(center[0] + size, center[1] - size, center[2] + size); + + glColor3f(1.0f,1.0f,0.0f); // Set The Color To Yellow + glVertex3f(center[0] + size, center[1] - size, center[2] - size); + glVertex3f(center[0] - size, center[1] - size, center[2] - size); + glVertex3f(center[0] - size, center[1] + size, center[2] - size); + glVertex3f(center[0] + size, center[1] + size, center[2] - size); + + glColor3f(0.0f,0.0f,1.0f); // Set The Color To Blue + glVertex3f(center[0] - size, center[1] + size, center[2] + size); + glVertex3f(center[0] - size, center[1] + size, center[2] - size); + glVertex3f(center[0] - size, center[1] - size, center[2] - size); + glVertex3f(center[0] - size, center[1] - size, center[2] + size); + + glColor3f(1.0f,0.0f,1.0f); // Set The Color To Violet + glVertex3f(center[0] + size, center[1] + size, center[2] - size); + glVertex3f(center[0] + size, center[1] + size, center[2] + size); + glVertex3f(center[0] + size, center[1] - size, center[2] + size); + glVertex3f(center[0] + size, center[1] - size, center[2] - size); + + + glEnd(); + +} + + + + +template +void compactTree::selectRay(vector &points) { + //selectRay(points, *root, center, size); +} + + +void compactTree::childcenter(double *pcenter, double *ccenter, double size, unsigned char i) { + switch (i) { + case 0: + ccenter[0] = pcenter[0] - size / 2.0; + ccenter[1] = pcenter[1] - size / 2.0; + ccenter[2] = pcenter[2] - size / 2.0; + break; + case 1: + ccenter[0] = pcenter[0] + size / 2.0; + ccenter[1] = pcenter[1] - size / 2.0; + ccenter[2] = pcenter[2] - size / 2.0; + break; + case 2: + ccenter[0] = pcenter[0] - size / 2.0; + ccenter[1] = pcenter[1] + size / 2.0; + ccenter[2] = pcenter[2] - size / 2.0; + break; + case 3: + ccenter[0] = pcenter[0] + size / 2.0; + ccenter[1] = pcenter[1] + size / 2.0; + ccenter[2] = pcenter[2] - size / 2.0; + break; + case 4: + ccenter[0] = pcenter[0] - size / 2.0; + ccenter[1] = pcenter[1] - size / 2.0; + ccenter[2] = pcenter[2] + size / 2.0; + break; + case 5: + ccenter[0] = pcenter[0] + size / 2.0; + ccenter[1] = pcenter[1] - size / 2.0; + ccenter[2] = pcenter[2] + size / 2.0; + break; + case 6: + ccenter[0] = pcenter[0] - size / 2.0; + ccenter[1] = pcenter[1] + size / 2.0; + ccenter[2] = pcenter[2] + size / 2.0; + break; + case 7: + ccenter[0] = pcenter[0] + size / 2.0; + ccenter[1] = pcenter[1] + size / 2.0; + ccenter[2] = pcenter[2] + size / 2.0; + break; + default: + break; + } +} + + +void compactTree::GetOctTreeCenter(vector&c) { GetOctTreeCenter(c, *root, center, size); } +void compactTree::AllPoints(vector &vp) { AllPoints(*compactTree::root, vp, center, size); } + +long compactTree::countNodes() { return 1 + countNodes(*root); } +long compactTree::countLeaves() { return 1 + countLeaves(*root); } + +void compactTree::setColorManager(ColorManager *_cm) { cm = _cm; } + +void compactTree::drawLOD(float ratio) { + switch (current_lod_mode) { + case 1: + glBegin(GL_POINTS); + displayOctTreeCulledLOD2(ratio , *root, center, size); + glEnd(); + break; + case 2: + /* +#ifdef WITH_GLEE + if (GLEE_ARB_point_parameters) { + glPointParameterfARB(GL_POINT_SIZE_MIN_ARB, 1.0); + glPointParameterfARB(GL_POINT_SIZE_MAX_ARB, 100000.0); + GLfloat p[3] = {0.0, 0.0000, 0.0000005}; + glPointParameterfvARB(GL_POINT_DISTANCE_ATTENUATION_ARB, p); + displayOctTreeCPAllCulled(*BOctTree::root, BOctTree::center, BOctTree::size, BOctTree::size/ pow(2, min( (int)(ratio * BOctTree::max_depth ), BOctTree::max_depth - 3) ) ); + p[0] = 1.0; + p[2] = 0.0; + glPointParameterfvARB(GL_POINT_DISTANCE_ATTENUATION_ARB, p); + } +#endif +*/ + //break; + case 0: + glBegin(GL_POINTS); + displayOctTreeCulledLOD(maxtargetpoints * ratio, *root, center, size); + glEnd(); + break; + default: + break; + } +} + +void compactTree::draw() { + displayOctTreeAllCulled(*root, center, size); +} + +void compactTree::displayOctTree(double minsize ) { + displayOctTreeCAllCulled(*root, center, size, minsize); +} + +shortpointrep* compactTree::createPoints(lint length) { + //shortpointrep *points = new shortpointrep[POINTDIM*length]; + shortpointrep *points = alloc->allocate (POINTDIM*length); + return points; +} +void compactTree::deserialize(std::string filename ) { + char buffer[sizeof(float) * 20]; + float *p = reinterpret_cast(buffer); + + std::ifstream file; + file.open (filename.c_str(), std::ios::in | std::ios::binary); + + // read magic bits + file.read(buffer, 2); + if ( buffer[0] != 'X' || buffer[1] != 'T') { + std::cerr << "Not an octree file!!" << endl; + file.close(); + return; + } + + // read header + pointtype = PointType::deserialize(file); + + file.read(buffer, 5 * sizeof(float)); + voxelSize = p[0]; + center[0] = p[1]; + center[1] = p[2]; + center[2] = p[3]; + size = p[4]; + + file.read(buffer, sizeof(int)); + int *ip = reinterpret_cast(buffer); + POINTDIM = *ip; + + float *fmins = new float[POINTDIM]; + float *fmaxs = new float[POINTDIM]; + mins = new double[POINTDIM]; + maxs = new double[POINTDIM]; + + file.read(reinterpret_cast(fmins), POINTDIM * sizeof(float)); + file.read(reinterpret_cast(fmaxs), POINTDIM * sizeof(float)); + + for (unsigned int i = 0; i < POINTDIM; i++) { + mins[i] = fmins[i]; + maxs[i] = fmaxs[i]; + } + + double vs = size; + while (vs > voxelSize) { + vs = vs * 0.5; + } +// precision = vs / 32768; // 2^15 + precision = vs / TSHORT_MAXP1; // 2^15 + + + // read root node + //root = new cbitoct(); + root = alloc->allocate(); + deserialize(file, *root ); + file.close(); +} + + + + +void compactTree::deserialize(std::ifstream &f, cbitoct &node) { + char buffer[2]; + f.read(buffer, 2); + node.valid = buffer[0]; + node.leaf = buffer[1]; + + unsigned short n_children = POPCOUNT(node.valid); + + // create children + //cbitunion *children = new cbitunion[n_children]; + cbitunion *children = alloc->allocate >(n_children); + cbitoct::link(node, children); + + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf read points + lint length; + f.read(reinterpret_cast(&length), sizeof(lint)); + shortpointrep *points = createPoints(length); + + f.read(reinterpret_cast(points), sizeof(shortpointrep) * length * POINTDIM); // read the points + children->linkPoints(points, length); + } else { // write child + deserialize(f, children->node); + } + ++children; // next child + } + } +} + + + +void compactTree::serialize(std::string filename) { + char buffer[sizeof(float) * 20]; + float *p = reinterpret_cast(buffer); + + std::ofstream file; + file.open (filename.c_str(), std::ios::out | std::ios::binary); + + // write magic bits + buffer[0] = 'X'; + buffer[1] = 'T'; + file.write(buffer, 2); + + // write header + pointtype.serialize(file); + + p[0] = voxelSize; + p[1] = center[0]; + p[2] = center[1]; + p[3] = center[2]; + p[4] = size; + + int *ip = reinterpret_cast(&(buffer[5 * sizeof(float)])); + *ip = POINTDIM; + + file.write(buffer, 5 * sizeof(float) + sizeof(int)); + + + for (unsigned int i = 0; i < POINTDIM; i++) { + p[i] = mins[i]; + } + for (unsigned int i = 0; i < POINTDIM; i++) { + p[i+POINTDIM] = maxs[i]; + } + + file.write(buffer, 2*POINTDIM * sizeof(float)); + + // write root node + serialize(file, *root); + + file.close(); +} + + +void compactTree::serialize(std::ofstream &of, cbitoct &node) { + char buffer[2]; + buffer[0] = node.valid; + buffer[1] = node.leaf; + of.write(buffer, 2); + + // write children + cbitunion *children; + cbitoct::getChildren(node, children); + for (short i = 0; i < 8; i++) { + if ( ( 1 << i ) & node.valid ) { // if ith node exists + if ( ( 1 << i ) & node.leaf ) { // if ith node is leaf write points + tshort *points = children->getPoints(); + lint length = children->getLength(); + + of.write(reinterpret_cast(&length), sizeof(lint) ); + + of.write(reinterpret_cast(points), POINTDIM*length*sizeof(tshort) ); + + } else { // write child + serialize(of, children->node); + } + ++children; // next child + } + } +} diff --git a/src/show/display.cc b/src/show/display.cc new file mode 100644 index 0000000..b125f40 --- /dev/null +++ b/src/show/display.cc @@ -0,0 +1,278 @@ +/* + * display implementation + * + * Copyright (C) Dorit Borrmann, Jan Elseberg + * + * Released under the GPL version 3. + * + */ + +#include +#include "show/display.h" +#include "slam6d/globals.icc" +#include +using std::ifstream; +#include +using std::cout; +using std::cerr; +using std::endl; + +#ifdef __APPLE__ +#include +#elif WITH_FREEGLUT +#include +#else +#include +#endif + + +double SDisplay::mirror[16] = {1,0,0,0, + 0,1,0,0, + 0,0,-1,0, + 0,0,0,1}; + +void SDisplay::displayAll() { + // TODO ensure all settings are set to default + // + glPushMatrix(); + glMultMatrixd(mirror); + displayObject(); + glPopMatrix(); +} + +void SDisplay::readDisplays(string &filename, vector &displays) { + ifstream input; + input.open(filename.c_str()); + + string type; + string objectfile; + while(input.good()) { + input >> type; + try { + input >> objectfile; + if(strcmp(type.c_str(), "Plane") == 0) { + float * color = new float[3]; + for(int i = 0; i < 3; i++) { + color[i] = rand()/((double)RAND_MAX); + } + displays.push_back(PlaneDisplay::readFromFile(objectfile, color)); + } else if(strcmp(type.c_str(), "Point") == 0) { + displays.push_back(PointDisplay::readFromFile(objectfile)); + } else if(strcmp(type.c_str(), "Line") == 0) { + displays.push_back(LineDisplay::readFromFile(objectfile)); + } else if(strcmp(type.c_str(), "GroupPlane") == 0) { + displays.push_back(GroupPlaneDisplay::readFromFile(objectfile)); + } else { + cerr << "Unknown SDisplay Object" << endl; + } + } catch(...) { + cerr << "Wrong display type" << endl; + } + } + input.close(); + input.clear(); +} + +PointDisplay::PointDisplay(vector &p, vector &l) { + points = p; + labels = l; +} + +SDisplay * PointDisplay::readFromFile(string &filename) { + ifstream input; + input.open(filename.c_str()); + + vector points; + vector labels; + while (input.good()) { + try { + float *p = new float[3]; + input >> p[0] >> p[1] >> p[2]; + points.push_back(p); + string l; + input >> l; + labels.push_back(l); + } catch (...) { + break; + } + } + + points.pop_back(); + labels.pop_back(); + input.close(); + input.clear(); + + return new PointDisplay(points, labels); + +} + +void PointDisplay::displayObject() { + + glColor3f(1.0, 0.3, 0.3); + + glPointSize(5); + glBegin(GL_POINTS); + for (unsigned int i = 0; i < points.size(); i++) { + glVertex3f(points[i][0], points[i][1], points[i][2]); + } + glEnd(); + + glPushMatrix(); + for(unsigned int i = 0; i < points.size(); i++) { + + glRasterPos3f(points[i][0], points[i][1], points[i][2]); + _glutBitmapString(GLUT_BITMAP_HELVETICA_10, labels[i].c_str()); + //_glutBitmapString(GLUT_BITMAP_9_BY_15, "http://threedtk.de"); + + } + glPopMatrix(); + +} + +LineDisplay::LineDisplay(vector &l) { + lines = l; +} + +SDisplay * LineDisplay::readFromFile(string &filename) { + ifstream input; + input.open(filename.c_str()); + + vector lines; + while (input.good()) { + try { + float *p = new float[6]; + input >> p[0] >> p[1] >> p[2]; + input >> p[3] >> p[4] >> p[5]; + lines.push_back(p); + } catch (...) { + break; + } + } + + lines.pop_back(); + input.close(); + input.clear(); + + return new LineDisplay(lines); + +} + +void LineDisplay::displayObject() { + + glColor3f(1.0, 0.3, 0.3); + glLineWidth(1.0); + glBegin(GL_LINES); + + for (unsigned int i = 0; i < lines.size(); i++) { + glColor3f(1,0.3,0.3); + glVertex3f(lines[i][0], lines[i][1], lines[i][2]); + glColor3f(0.3,1,0.3); + glVertex3f(lines[i][3], lines[i][4], lines[i][5]); + } + + glEnd(); + + glBegin(GL_POINTS); + for (unsigned int i = 0; i < lines.size(); i++) { + glColor3f(1,0.3,0.3); + glVertex3f(lines[i][0], lines[i][1], lines[i][2]); + glColor3f(0.3,1,0.3); + glVertex3f(lines[i][3], lines[i][4], lines[i][5]); + } + glEnd(); + + +} + +GroupPlaneDisplay::GroupPlaneDisplay(vector &p) { + planes = p; +} + +void GroupPlaneDisplay::displayObject() { + for(unsigned int i = 0; i < planes.size(); i++) { + planes[i]->displayObject(); + } +} + +SDisplay* GroupPlaneDisplay::readFromFile(string &filename) { + ifstream input; + input.open(filename.c_str()); + vector planes; + if(input.good()) { + int end = filename.find_last_of('/'); + string dir = filename.substr(0, end); + string tmp; + input >> tmp; + if(dir.length() != 0) dir = dir + "/"; + try { + if(strcmp(tmp.c_str(), "randomcolor") != 0) { + while(input.good()) { + int planeNr; + input >> planeNr; + string planename = dir + "plane" + to_string(planeNr, 3) + ".3d"; + float * color = new float[3]; + for(int i = 0; i < 3; i++) { + input >> color[i]; + } + planes.push_back((PlaneDisplay*)PlaneDisplay::readFromFile(planename, color)); + } + } else { + while(input.good()) { + int planeNr; + input >> planeNr; + string planename = dir + "/plane" + to_string(planeNr, 3) + ".3d"; + float * color = new float[3]; + for(int i = 0; i < 3; i++) { + color[i] = rand()/((double)RAND_MAX); + } + planes.push_back((PlaneDisplay*)PlaneDisplay::readFromFile(planename, color)); + } + } + } catch(...) {} + } + input.close(); + input.clear(); + return new GroupPlaneDisplay(planes); + +} + +PlaneDisplay::PlaneDisplay(vector &p, float* c) { + points = p; + color = c; +} + +SDisplay * PlaneDisplay::readFromFile(string &filename, float* color) { + ifstream input; + input.open(filename.c_str()); + + vector points; + while (input.good()) { + try { + float *p = new float[3]; + input >> p[0] >> p[1] >> p[2]; + points.push_back(p); + } catch (...) { + break; + } + } + points.pop_back(); + + input.close(); + input.clear(); + + return new PlaneDisplay(points, color); +} + +void PlaneDisplay::displayObject() { + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); // TODO + + glColor4d(color[0], color[1], color[2], 0.5); + glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); + glBegin(GL_POLYGON); + for(vector::iterator point = (points).begin(); + point != (points).end(); point++) { + glVertex3f((*point)[0], (*point)[1], (*point)[2]); + } + glEnd(); + glBlendFunc(GL_ONE, GL_ZERO); // TODO +} diff --git a/src/show/scancolormanager.cc b/src/show/scancolormanager.cc new file mode 100644 index 0000000..034c2fa --- /dev/null +++ b/src/show/scancolormanager.cc @@ -0,0 +1,186 @@ +/* + * show_animate implementation + * + * Copyright (C) Jan Elseberg, Dorit Borrmann + * + * Released under the GPL version 3. + * + */ + +#ifdef _MSC_VER +#define _USE_MATH_DEFINES +#include +#endif +#ifdef __APPLE__ +#include +#else +#include +#endif + +#include "slam6d/point.h" +#include "slam6d/scan.h" +#include "show/colordisplay.h" +#include "show/colormanager.h" +#include "show/scancolormanager.h" +#include +#include +#include "slam6d/point_type.h" +using std::vector; + +ScanColorManager::ScanColorManager(unsigned int _buckets, PointType type) : pointtype(type) { + valid = false; + inverted = false; + buckets = _buckets; +// types = _types; + + pointtype = type; + //pointdim = PointType::PointDim(types); + // + + + mins = new float[pointtype.getPointDim()]; + maxs = new float[pointtype.getPointDim()]; + for (unsigned int i = 0; i < pointtype.getPointDim(); i++) { + mins[i] = FLT_MAX; + maxs[i] = FLT_MIN; + } + + currenttype = PointType::USE_HEIGHT; + currentdim = 0; + } + + void ScanColorManager::registerTree(colordisplay *b) { allScans.push_back(b); } + + void ScanColorManager::setColorMap(ColorMap &cm) { + makeValid(); + for (unsigned int i = 0; i < allManager.size(); i++) { + allManager[i]->setColorMap(cm); + } + } + + void ScanColorManager::setColorMap(ColorMap::CM &cm) { + ColorMap cmap = ColorMap::getColorMap(cm); + setColorMap(cmap); + } + + void ScanColorManager::setCurrentType(unsigned int type) { + makeValid(); + if (type == PointType::USE_NONE) { + for (unsigned int i = 0; i < allScans.size(); i++) { + allScans[i]->setColorManager(0); + } + } + currentdim = pointtype.getType(type); + + if(type != PointType::USE_NONE) { + for (unsigned int i = 0; i < allManager.size(); i++) { + allManager[i]->setCurrentDim(currentdim); + } + currenttype = type; + } + } + + void ScanColorManager::setMinMax(float min, float max) { + makeValid(); + for (unsigned int i = 0; i < allManager.size(); i++) { + allManager[i]->setMinMax(min, max); + } + } + void ScanColorManager::setMode(const unsigned int &mode) { + if (mode == ScanColorManager::MODE_STATIC) { + for (unsigned int i = 0; i < allScans.size(); i++) { + allScans[i]->setColorManager(staticManager[i]); + } + } else if (mode == ScanColorManager::MODE_COLOR_SCAN) { + for (unsigned int i = 0; i < allScans.size(); i++) { + allScans[i]->setColorManager(scanManager[i]); + } + } else if (mode == ScanColorManager::MODE_ANIMATION) { + for (unsigned int i = 0; i < allScans.size(); i++) { + allScans[i]->setColorManager(0); + } + } else if (mode == ScanColorManager::MODE_POINT_COLOR) { + for (unsigned int i = 0; i < allScans.size(); i++) { + allScans[i]->setColorManager(colorsManager[i]); + } + } + } + + float ScanColorManager::getMin() { return mins[currentdim];}; + float ScanColorManager::getMax() { return maxs[currentdim];}; + float ScanColorManager::getMin(unsigned int dim) { return mins[dim];}; + float ScanColorManager::getMax(unsigned int dim) { return maxs[dim];}; + unsigned int ScanColorManager::getPointDim() { return pointtype.getPointDim(); }; + void ScanColorManager::makeValid() { + if (!valid) { + for (unsigned int i = 0; i < allScans.size(); i++) { + colordisplay *scan = allScans[i]; + ColorManager *cm = new ColorManager(buckets, pointtype.getPointDim(), mins, maxs); + cm->setCurrentDim(currentdim); + scan->setColorManager(cm); + staticManager.push_back(cm); + + // new colormanager for scan index influenced colorscheme + DiffMap m; +// JetMap m; + float c[3] = {0,0,0}; + m.calcColor(c, i, allScans.size() ); + ColorManager *cmc = new ColorManager(buckets, pointtype.getPointDim(), mins, maxs, c); + scanManager.push_back(cmc); + + // new colormanager for the color based on the color of the points + CColorManager *ccm = new CColorManager(buckets, pointtype.getPointDim(), mins, maxs, pointtype.getType(PointType::USE_COLOR)); + colorsManager.push_back(ccm); + + allManager.push_back(cm); + allManager.push_back(cmc); + allManager.push_back(ccm); + + } + valid = true; + } + } + + void ScanColorManager::selectColors(Scan::AlgoType type) { + switch(type) { + case Scan::ICP: + glColor4d(0.85, 0.30,0.023, 1.0); + //glColor4d(1.0, 0.30,0.30, 1.0); + //glColor4d(1.0, 0.00,0.00, 1.0); + break; + case Scan::ICPINACTIVE: + glColor4d(0.78, 0.63,0.57, 1.0); + //glColor4d(1.00, 1.00,1.00, 1.0); + break; + case Scan::LUM: + glColor4d(1.0, 0.0,0.0, 1.0); + break; + case Scan::ELCH: + glColor4d(0.0, 1.0,0.0, 1.0); + break; + case Scan::LOOPTORO: + glColor4d(0.0, 0.0, 1.0, 1.0); + break; + case Scan::LOOPHOGMAN: + glColor4d(0.0, 1.0, 1.0, 1.0); + break; + case Scan::GRAPHTORO: + glColor4d(1.0, 0.0, 1.0, 1.0); + break; + case Scan::GRAPHHOGMAN: + glColor4d(1.0, 1.0, 0.0, 1.0); + break; + default: + glColor4d(1.0, 1.0, 1.0, 1.0); + break; + } + } + + + +const unsigned int ScanColorManager::MODE_STATIC = 0; +const unsigned int ScanColorManager::MODE_COLOR_SCAN = 1; +const unsigned int ScanColorManager::MODE_ANIMATION = 2; +const unsigned int ScanColorManager::MODE_POINT_COLOR = 3; + + diff --git a/src/show/selectionframe.cc b/src/show/selectionframe.cc new file mode 100644 index 0000000..d733b6a --- /dev/null +++ b/src/show/selectionframe.cc @@ -0,0 +1,756 @@ +/////////////////////////////////////////////////////////////////////////// +// C++ code generated with wxFormBuilder (version Dec 21 2009) +// http://www.wxformbuilder.org/ +// +// PLEASE DO "NOT" EDIT THIS FILE! +/////////////////////////////////////////////////////////////////////////// + +#include "show/selectionframe.h" +#include "float.h" + +/////////////////////////////////////////////////////////////////////////// + +Selection::Selection( wxWindow* parent, wxWindowID id, const wxString& title, + const wxPoint& pos, const wxSize& size, long style, bool advanced_controls ) : wxFrame( parent, id, + title, pos, size, style ) { + //this->SetSizeHints( wxDefaultSize, wxDefaultSize ); + + bSizer1 = new wxBoxSizer( wxVERTICAL ); + + m_checkBox1 = new wxCheckBox( this, wxID_ANY, wxT("Draw Points"), wxDefaultPosition, wxDefaultSize, 0 ); + m_checkBox1->SetValue(true); + bSizer1->Add( m_checkBox1, 0, wxRIGHT|wxLEFT, 5 ); + + m_checkBox2 = new wxCheckBox( this, wxID_ANY, wxT("Draw Cameras"), wxDefaultPosition, wxDefaultSize, 0 ); + m_checkBox2->SetValue(true); + bSizer1->Add( m_checkBox2, 0, wxRIGHT|wxLEFT, 5 ); + + m_checkBox3 = new wxCheckBox( this, wxID_ANY, wxT("Draw Paths"), wxDefaultPosition, wxDefaultSize, 0 ); + m_checkBox3->SetValue(true); + bSizer1->Add( m_checkBox3, 0, wxRIGHT|wxLEFT, 5 ); + + m_panel2 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); + wxBoxSizer* bSizer3; + bSizer3 = new wxBoxSizer( wxHORIZONTAL ); + + m_staticText2 = new wxStaticText( m_panel2, wxID_ANY, wxT("Point Size:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText2->Wrap( -1 ); + bSizer3->Add( m_staticText2, 0, wxALL, 5 ); + + + bSizer3->Add( 0, 0, 1, wxEXPAND, 5 ); + + pointsize_spinner = new wxSpinCtrl( m_panel2, wxID_ANY, wxT("1"), wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 10, 0 ); + bSizer3->Add( pointsize_spinner, 0, wxRIGHT|wxLEFT, 5 ); + + m_panel2->SetSizer( bSizer3 ); + m_panel2->Layout(); + bSizer3->Fit( m_panel2 ); + bSizer1->Add( m_panel2, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT|wxEXPAND, 5 ); + + m_panel21 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); + wxBoxSizer* bSizer31; + bSizer31 = new wxBoxSizer( wxHORIZONTAL ); + + m_staticText21 = new wxStaticText( m_panel21, wxID_ANY, wxT("Fog:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText21->Wrap( -1 ); + bSizer31->Add( m_staticText21, 0, wxALL, 5 ); + + + bSizer31->Add( 0, 0, 1, wxEXPAND, 5 ); + + wxString m_choice1Choices[] = { wxT("None"), wxT("Exp"), wxT("Exp2"), wxT("Linear"), wxT("inverted, Exp"), wxT("inverted, Exp2"), wxT("inverted, Linear") }; + int m_choice1NChoices = sizeof( m_choice1Choices ) / sizeof( wxString ); + m_choice1 = new wxChoice( m_panel21, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choice1NChoices, m_choice1Choices, 0 ); + m_choice1->SetSelection( 1 ); + bSizer31->Add( m_choice1, 0, wxRIGHT|wxLEFT, 5 ); + + m_panel21->SetSizer( bSizer31 ); + m_panel21->Layout(); + bSizer31->Fit( m_panel21 ); + bSizer1->Add( m_panel21, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT|wxEXPAND, 5 ); + + m_panel3 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); + wxBoxSizer* bSizer6; + bSizer6 = new wxBoxSizer( wxHORIZONTAL ); + + m_staticText4 = new wxStaticText( m_panel3, wxID_ANY, wxT("Fog Density:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText4->Wrap( -1 ); + bSizer6->Add( m_staticText4, 0, wxALL, 5 ); + + + bSizer6->Add( 0, 0, 1, wxEXPAND, 5 ); + + fogdens_spinner = new wxSpinCtrlDbl( *m_panel3, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, + 0, 1.0, 0.001, 0.001 ); + bSizer6->Add( fogdens_spinner, 0, wxRIGHT|wxLEFT, 5 ); + + m_panel3->SetSizer( bSizer6 ); + m_panel3->Layout(); + bSizer6->Fit( m_panel3 ); + bSizer1->Add( m_panel3, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT|wxEXPAND, 5 ); + /* + wxStaticBoxSizer* sbSizer3; + sbSizer3 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, wxT("Color:") ), wxVERTICAL ); + */ + wxCollapsiblePane *colorpane = new wxCollapsiblePane(this, wxID_ANY, wxT("Colors:")); + wxWindow *colorwin = colorpane->GetPane(); + wxBoxSizer* sbSizer3 = new wxBoxSizer( wxVERTICAL ); + colorwin->SetSizer(sbSizer3); + + + m_panel211 = new wxPanel( colorwin, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); + wxBoxSizer* bSizer311; + bSizer311 = new wxBoxSizer( wxHORIZONTAL ); + + m_staticText211 = new wxStaticText( m_panel211, wxID_ANY, wxT("value:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText211->Wrap( -1 ); + bSizer311->Add( m_staticText211, 0, wxALL, 5 ); + + + bSizer311->Add( 0, 0, 1, wxEXPAND, 5 ); + + wxString m_choice11Choices[] = { wxT("height") }; + + int m_choice11NChoices = sizeof( m_choice11Choices ) / sizeof( wxString ); + m_choice11 = new wxChoice( m_panel211, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choice11NChoices, m_choice11Choices, 0 ); + m_choice11->SetSelection( 4 ); + bSizer311->Add( m_choice11, 0, wxRIGHT|wxLEFT, 5 ); + + m_panel211->SetSizer( bSizer311 ); + m_panel211->Layout(); + bSizer311->Fit( m_panel211 ); + sbSizer3->Add( m_panel211, 0, wxRIGHT|wxLEFT|wxALIGN_RIGHT|wxEXPAND, 5 ); + + m_panel212 = new wxPanel( colorwin, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); + wxBoxSizer* bSizer312; + bSizer312 = new wxBoxSizer( wxHORIZONTAL ); + + m_staticText212 = new wxStaticText( m_panel212, wxID_ANY, wxT("map:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText212->Wrap( -1 ); + bSizer312->Add( m_staticText212, 0, wxALL, 5 ); + + + bSizer312->Add( 0, 0, 1, wxEXPAND, 5 ); + + wxString m_choice12Choices[] = { wxT("Solid"), wxT("Grey"), wxT("HSV"), wxT("Jet"), wxT("Hot"), wxT("Rand"), wxT("SHSV") }; + int m_choice12NChoices = sizeof( m_choice12Choices ) / sizeof( wxString ); + m_choice12 = new wxChoice( m_panel212, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choice12NChoices, m_choice12Choices, 0 ); + m_choice12->SetSelection( 0 ); + bSizer312->Add( m_choice12, 0, wxRIGHT|wxLEFT, 5 ); + + m_panel212->SetSizer( bSizer312 ); + m_panel212->Layout(); + bSizer312->Fit( m_panel212 ); + sbSizer3->Add( m_panel212, 0, wxRIGHT|wxLEFT|wxALIGN_RIGHT|wxEXPAND, 5 ); + + m_panel213 = new wxPanel( colorwin, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); + wxBoxSizer* bSizer313; + bSizer313 = new wxBoxSizer( wxHORIZONTAL ); + + m_staticText213 = new wxStaticText( m_panel213, wxID_ANY, wxT("type:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText213->Wrap( -1 ); + bSizer313->Add( m_staticText213, 0, wxALL, 5 ); + + + bSizer313->Add( 0, 0, 1, wxEXPAND, 5 ); + + wxString m_choice13Choices[] = { wxT("None"), wxT("Id Scans by Color"), wxT("Color by Points") }; + int m_choice13NChoices = sizeof( m_choice13Choices ) / sizeof( wxString ); + m_choice13 = new wxChoice( m_panel213, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choice13NChoices, m_choice13Choices, 0 ); + m_choice13->SetSelection( 0 ); + bSizer313->Add( m_choice13, 0, wxRIGHT|wxLEFT, 5 ); + + m_panel213->SetSizer( bSizer313 ); + m_panel213->Layout(); + bSizer313->Fit( m_panel213 ); + sbSizer3->Add( m_panel213, 0, wxRIGHT|wxLEFT|wxALIGN_RIGHT|wxEXPAND, 5 ); + + m_panel411 = new wxPanel( colorwin, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); + wxBoxSizer* bSizer51; + bSizer51 = new wxBoxSizer( wxHORIZONTAL ); + + m_staticText411 = new wxStaticText( m_panel411, wxID_ANY, wxT("Min Val:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText411->Wrap( -1 ); + bSizer51->Add( m_staticText411, 0, wxALL, 5 ); + + + bSizer51->Add( 0, 0, 1, wxEXPAND, 5 ); + + m_spinCtrl61 = new wxSpinCtrlDbl( *m_panel411, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, -DBL_MAX, DBL_MAX, 0 ); + bSizer51->Add( m_spinCtrl61, 0, wxRIGHT|wxLEFT, 5 ); + + m_panel411->SetSizer( bSizer51 ); + m_panel411->Layout(); + bSizer51->Fit( m_panel411 ); + sbSizer3->Add( m_panel411, 0, wxRIGHT|wxLEFT|wxALIGN_RIGHT|wxEXPAND, 5 ); + + m_panel41 = new wxPanel( colorwin, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); + wxBoxSizer* bSizer5; + bSizer5 = new wxBoxSizer( wxHORIZONTAL ); + + m_staticText41 = new wxStaticText( m_panel41, wxID_ANY, wxT("Max Val:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText41->Wrap( -1 ); + bSizer5->Add( m_staticText41, 0, wxALL, 5 ); + + + bSizer5->Add( 0, 0, 1, wxEXPAND, 5 ); + + m_spinCtrl6 = new wxSpinCtrlDbl( *m_panel41, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, -DBL_MAX, DBL_MAX, 6 ); + bSizer5->Add( m_spinCtrl6, 0, wxRIGHT|wxLEFT, 5 ); + + m_panel41->SetSizer( bSizer5 ); + m_panel41->Layout(); + bSizer5->Fit( m_panel41 ); + sbSizer3->Add( m_panel41, 0, wxRIGHT|wxLEFT|wxALIGN_RIGHT|wxEXPAND, 5 ); + + m_button4 = new wxButton( colorwin, wxID_ANY, wxT("Reset Min/Max"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizer3->Add( m_button4, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 5 ); + + bSizer1->Add( colorpane, 0, wxALIGN_CENTER_HORIZONTAL, 5 ); + + m_staticline1 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); + bSizer1->Add( m_staticline1, 0, wxEXPAND | wxALL, 5 ); + + m_button3 = new wxButton( this, wxID_ANY, wxT("Invert"), wxDefaultPosition, wxDefaultSize, 0 ); + bSizer1->Add( m_button3, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 5 ); + + m_panel4 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); + wxBoxSizer* bSizer7; + bSizer7 = new wxBoxSizer( wxHORIZONTAL ); + + m_staticText6 = new wxStaticText( m_panel4, wxID_ANY, wxT("Anim delay:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText6->Wrap( -1 ); + bSizer7->Add( m_staticText6, 0, wxALL, 5 ); + + m_spinCtrl3 = new wxSpinCtrl( m_panel4, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 10, 0 ); + bSizer7->Add( m_spinCtrl3, 0, wxRIGHT|wxLEFT, 5 ); + + m_panel4->SetSizer( bSizer7 ); + m_panel4->Layout(); + bSizer7->Fit( m_panel4 ); + bSizer1->Add( m_panel4, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 5 ); + + m_button5 = new wxButton( this, wxID_ANY, wxT("Animate"), wxDefaultPosition, wxDefaultSize, 0 ); + bSizer1->Add( m_button5, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 5 ); + + m_staticline2 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); + bSizer1->Add( m_staticline2, 0, wxEXPAND | wxALL, 5 ); + + /*wxStaticBoxSizer* sbSizer2; + sbSizer2 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, wxT("Camera Path:") ), wxVERTICAL ); + */ + wxCollapsiblePane *camerapane = new wxCollapsiblePane(this, wxID_ANY, wxT("Camera Path:")); + wxWindow *camerawin = camerapane->GetPane(); + wxBoxSizer* sbSizer2 = new wxBoxSizer( wxVERTICAL ); + camerawin->SetSizer(sbSizer2); + + m_panel412 = new wxPanel( camerawin, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); + wxBoxSizer* bSizer52; + bSizer52 = new wxBoxSizer( wxHORIZONTAL ); + + m_staticText412 = new wxStaticText( m_panel412, wxID_ANY, wxT("File:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText412->Wrap( -1 ); + bSizer52->Add( m_staticText412, 0, wxALL, 5 ); + + m_textCtrl1 = new wxTextCtrl( m_panel412, wxID_ANY, wxT("path.dat"), wxDefaultPosition, wxDefaultSize, 0 ); + bSizer52->Add( m_textCtrl1, 0, wxRIGHT|wxLEFT, 5 ); + + m_panel412->SetSizer( bSizer52 ); + m_panel412->Layout(); + bSizer52->Fit( m_panel412 ); + sbSizer2->Add( m_panel412, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 5 ); + + m_button51 = new wxButton( camerawin, wxID_ANY, wxT("Save Path"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizer2->Add( m_button51, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 5 ); + + m_button6 = new wxButton( camerawin, wxID_ANY, wxT("Load Path"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizer2->Add( m_button6, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 5 ); + + m_button14 = new wxButton( camerawin, wxID_ANY, wxT("Load Robot Path"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizer2->Add( m_button14, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 5 ); + + m_staticline4 = new wxStaticLine( camerawin, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); + sbSizer2->Add( m_staticline4, 0, wxEXPAND|wxALL, 5 ); + + m_checkBox4 = new wxCheckBox( camerawin, wxID_ANY, wxT("Save Animation"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizer2->Add( m_checkBox4, 0, wxRIGHT|wxLEFT, 5 ); + + m_button7 = new wxButton( camerawin, wxID_ANY, wxT("Animate path"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizer2->Add( m_button7, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 5 ); + + bSizer1->Add( camerapane, 0, wxALIGN_CENTER_HORIZONTAL, 5 ); + + /*wxStaticBoxSizer* sbSizer21; + sbSizer21 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, wxT("Position:") ), wxVERTICAL ); + */ + wxCollapsiblePane *positionpane = new wxCollapsiblePane(this, wxID_ANY, wxT("Position:")); + wxWindow *positionwin = positionpane->GetPane(); + wxBoxSizer* sbSizer21 = new wxBoxSizer( wxVERTICAL ); + positionwin->SetSizer(sbSizer21); + + m_panel4121 = new wxPanel( positionwin, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); + wxBoxSizer* bSizer521; + bSizer521 = new wxBoxSizer( wxHORIZONTAL ); + + m_staticText4121 = new wxStaticText( m_panel4121, wxID_ANY, wxT("File:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText4121->Wrap( -1 ); + bSizer521->Add( m_staticText4121, 0, wxALL, 5 ); + + m_textCtrl11 = new wxTextCtrl( m_panel4121, wxID_ANY, wxT("pose.dat"), wxDefaultPosition, wxDefaultSize, 0 ); + bSizer521->Add( m_textCtrl11, 0, wxRIGHT|wxLEFT, 5 ); + + m_panel4121->SetSizer( bSizer521 ); + m_panel4121->Layout(); + bSizer521->Fit( m_panel4121 ); + sbSizer21->Add( m_panel4121, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 5 ); + + m_button511 = new wxButton( positionwin, wxID_ANY, wxT("Save Pose"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizer21->Add( m_button511, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 5 ); + + m_button61 = new wxButton( positionwin, wxID_ANY, wxT("Load Pose"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizer21->Add( m_button61, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 5 ); + + m_panel4131 = new wxPanel( positionwin, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); + wxBoxSizer* bSizer531; + bSizer531 = new wxBoxSizer( wxHORIZONTAL ); + + m_staticText4131 = new wxStaticText( m_panel4131, wxID_ANY, wxT("Factor"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText4131->Wrap( -1 ); + bSizer531->Add( m_staticText4131, 0, wxALL, 5 ); + + + bSizer531->Add( 0, 0, 1, wxEXPAND, 5 ); + + m_spinCtrl621 = new wxSpinCtrl( m_panel4131, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 10, 0 ); + bSizer531->Add( m_spinCtrl621, 0, wxRIGHT|wxLEFT, 5 ); + + m_panel4131->SetSizer( bSizer531 ); + m_panel4131->Layout(); + bSizer531->Fit( m_panel4131 ); + sbSizer21->Add( m_panel4131, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 ); + + m_button71 = new wxButton( positionwin, wxID_ANY, wxT("Save image"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizer21->Add( m_button71, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 5 ); + + bSizer1->Add( positionpane, 0, wxALIGN_CENTER_HORIZONTAL, 5 ); + + m_staticline3 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); + bSizer1->Add( m_staticline3, 0, wxALL|wxEXPAND, 5 ); + /* + wxStaticBoxSizer* sbSizer211; + sbSizer211 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, wxT("Selection:") ), wxVERTICAL ); + */ + wxCollapsiblePane *selectionpane = new wxCollapsiblePane(this, wxID_ANY, wxT("Selection:")); + wxWindow *selectionwin = selectionpane->GetPane(); + wxBoxSizer* sbSizer211 = new wxBoxSizer( wxVERTICAL ); + selectionwin->SetSizer(sbSizer211); + + m_panel41211 = new wxPanel( selectionwin, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); + wxBoxSizer* bSizer5211; + bSizer5211 = new wxBoxSizer( wxHORIZONTAL ); + + m_staticText41211 = new wxStaticText( m_panel41211, wxID_ANY, wxT("File:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText41211->Wrap( -1 ); + bSizer5211->Add( m_staticText41211, 0, wxALL, 5 ); + + m_textCtrl111 = new wxTextCtrl( m_panel41211, wxID_ANY, wxT("selected.3d"), wxDefaultPosition, wxDefaultSize, 0 ); + bSizer5211->Add( m_textCtrl111, 0, wxRIGHT|wxLEFT, 5 ); + + m_panel41211->SetSizer( bSizer5211 ); + m_panel41211->Layout(); + bSizer5211->Fit( m_panel41211 ); + sbSizer211->Add( m_panel41211, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 5 ); + + m_button5111 = new wxButton( selectionwin, wxID_ANY, wxT("Save selected points"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizer211->Add( m_button5111, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 5 ); + + m_button611 = new wxButton( selectionwin, wxID_ANY, wxT("Clear selected points"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizer211->Add( m_button611, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 5 ); + + m_checkBox5 = new wxCheckBox( selectionwin, wxID_ANY, wxT("Select/Unselect"), wxDefaultPosition, wxDefaultSize, 0 ); + m_checkBox5->SetValue(true); + sbSizer211->Add( m_checkBox5, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT|wxEXPAND, 5 ); + + m_checkBox6 = new wxCheckBox( selectionwin, wxID_ANY, wxT("Select Voxels"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizer211->Add( m_checkBox6, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT|wxEXPAND, 5 ); + + m_panel41311 = new wxPanel( selectionwin, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); + wxBoxSizer* bSizer5311; + bSizer5311 = new wxBoxSizer( wxHORIZONTAL ); + + m_staticText41311 = new wxStaticText( m_panel41311, wxID_ANY, wxT("Depth:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText41311->Wrap( -1 ); + bSizer5311->Add( m_staticText41311, 0, wxALL, 5 ); + + + bSizer5311->Add( 0, 0, 1, wxEXPAND, 5 ); + + m_spinCtrl6211 = new wxSpinCtrl( m_panel41311, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 10, 0 ); + bSizer5311->Add( m_spinCtrl6211, 0, wxRIGHT|wxLEFT, 5 ); + + m_panel41311->SetSizer( bSizer5311 ); + m_panel41311->Layout(); + bSizer5311->Fit( m_panel41311 ); + sbSizer211->Add( m_panel41311, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 ); + + m_panel413111 = new wxPanel( selectionwin, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); + wxBoxSizer* bSizer53111; + bSizer53111 = new wxBoxSizer( wxHORIZONTAL ); + + m_staticText413111 = new wxStaticText( m_panel413111, wxID_ANY, wxT("Brushsize:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText413111->Wrap( -1 ); + bSizer53111->Add( m_staticText413111, 0, wxALL, 5 ); + + + bSizer53111->Add( 0, 0, 1, wxEXPAND, 5 ); + + m_spinCtrl62111 = new wxSpinCtrl( m_panel413111, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 10, 0 ); + bSizer53111->Add( m_spinCtrl62111, 0, wxRIGHT|wxLEFT, 5 ); + + m_panel413111->SetSizer( bSizer53111 ); + m_panel413111->Layout(); + bSizer53111->Fit( m_panel413111 ); + sbSizer211->Add( m_panel413111, 1, wxEXPAND|wxRIGHT|wxLEFT, 5 ); + + bSizer1->Add( selectionpane, 0, wxALIGN_CENTER_HORIZONTAL, 5 ); + + if (advanced_controls) { + wxCollapsiblePane *advancedpane = new wxCollapsiblePane(this, wxID_ANY, wxT("Advanced:")); + wxWindow *advancedwin = advancedpane->GetPane(); + wxBoxSizer* sbSizer2111 = new wxBoxSizer( wxVERTICAL ); + advancedwin->SetSizer(sbSizer2111); + + // ------------------------ + m_panel413112 = new wxPanel( advancedwin, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); + wxBoxSizer* bSizer53112; + bSizer53112 = new wxBoxSizer( wxHORIZONTAL ); + + m_staticText413112 = new wxStaticText( m_panel413112, wxID_ANY, wxT("Frame #:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText413112->Wrap( -1 ); + bSizer53112->Add( m_staticText413112, 0, wxALL, 5 ); + + + bSizer53112->Add( 0, 0, 1, wxEXPAND, 5 ); + + frame_spin = new wxSpinCtrl( m_panel413112, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 10, 0 ); + bSizer53112->Add( frame_spin, 0, wxRIGHT|wxLEFT, 5 ); + + m_panel413112->SetSizer( bSizer53112 ); + m_panel413112->Layout(); + bSizer53112->Fit( m_panel413112 ); + sbSizer2111->Add( m_panel413112, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 ); + + // ----------------------- + m_panel4131111 = new wxPanel( advancedwin, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); + wxBoxSizer* bSizer531111; + bSizer531111 = new wxBoxSizer( wxHORIZONTAL ); + + m_staticText4131111 = new wxStaticText( m_panel4131111, wxID_ANY, wxT("FPS:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText4131111->Wrap( -1 ); + bSizer531111->Add( m_staticText4131111, 0, wxALL, 5 ); + + + bSizer531111->Add( 0, 0, 1, wxEXPAND, 5 ); + + m_spinCtrl621111 = new wxSpinCtrl( m_panel4131111, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 1, 100, 20 ); + bSizer531111->Add( m_spinCtrl621111, 0, wxRIGHT|wxLEFT, 5 ); + + m_panel4131111->SetSizer( bSizer531111 ); + m_panel4131111->Layout(); + bSizer531111->Fit( m_panel4131111 ); + sbSizer2111->Add( m_panel4131111, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 ); + ////////////////// + farplane_panel = new wxPanel( advancedwin, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); + wxBoxSizer* farplane_sizer; + farplane_sizer = new wxBoxSizer( wxHORIZONTAL ); + + farplane_text = new wxStaticText( farplane_panel, wxID_ANY, wxT("farplane:"), wxDefaultPosition, wxDefaultSize, 0 ); + farplane_text->Wrap( -1 ); + farplane_sizer->Add( farplane_text, 0, wxALL, 5 ); + + + farplane_sizer->Add( 0, 0, 1, wxEXPAND, 5 ); + + farplane_spinner = new wxSpinCtrl( farplane_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 1, 100000, 40000 ); + farplane_sizer->Add( farplane_spinner, 0, wxRIGHT|wxLEFT, 5 ); + + farplane_panel->SetSizer( farplane_sizer ); + farplane_panel->Layout(); + farplane_sizer->Fit( farplane_panel ); + sbSizer2111->Add( farplane_panel, 0, wxEXPAND |wxRIGHT|wxLEFT, 5 ); + //////////////////////////////// + nearplane_panel = new wxPanel( advancedwin, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); + wxBoxSizer* nearplane_sizer; + nearplane_sizer = new wxBoxSizer( wxHORIZONTAL ); + + nearplane_text = new wxStaticText( nearplane_panel, wxID_ANY, wxT("nearplane:"), wxDefaultPosition, wxDefaultSize, 0 ); + nearplane_text->Wrap( -1 ); + nearplane_sizer->Add( nearplane_text, 0, wxALL, 5 ); + + + nearplane_sizer->Add( 0, 0, 1, wxEXPAND, 5 ); + + nearplane_spinner = new wxSpinCtrl( nearplane_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 1, 100000, 10 ); + nearplane_sizer->Add( nearplane_spinner, 0, wxRIGHT|wxLEFT, 5 ); + + nearplane_panel->SetSizer( nearplane_sizer ); + nearplane_panel->Layout(); + nearplane_sizer->Fit( nearplane_panel ); + + sbSizer2111->Add( nearplane_panel, 0, wxEXPAND | wxRIGHT|wxLEFT, 5 ); + // bSizer1->Add( sbSizer2111, 0, wxALIGN_CENTER_HORIZONTAL, 5 ); + /////////////////// + cycleLOD = new wxButton( advancedwin, wxID_ANY, wxT("Cycle LOD"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizer2111->Add( cycleLOD, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 5 ); + + ////////// + lod_panel = new wxPanel( advancedwin, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); + wxBoxSizer* lod_sizer; + lod_sizer = new wxBoxSizer( wxHORIZONTAL ); + + lod_text = new wxStaticText( lod_panel, wxID_ANY, wxT("lod speed:"), wxDefaultPosition, wxDefaultSize, 0 ); + lod_text->Wrap( -1 ); + lod_sizer->Add( lod_text, 0, wxALL, 5 ); + + + lod_sizer->Add( 0, 0, 1, wxEXPAND, 5 ); + + //lod_spinner = new wxSpinCtrl( lod_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 2, 1 ); + lod_spinner = new wxSpinCtrlDbl( *lod_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0.0, 2.0, 1.0, 0.01 ); + lod_sizer->Add( lod_spinner, 0, wxRIGHT|wxLEFT, 5 ); + + lod_panel->SetSizer( lod_sizer ); + lod_panel->Layout(); + lod_sizer->Fit( lod_panel ); + sbSizer2111->Add( lod_panel, 0, wxEXPAND | wxRIGHT| wxLEFT, 5 ); + + + + + bSizer1->Add( advancedpane, 0, wxALIGN_CENTER_HORIZONTAL, 5 ); + } else { + frame_spin = new wxSpinCtrl( 0, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 10, 0 ); + } + + m_button31 = new wxButton( this, wxID_ANY, wxT("Quit"), wxDefaultPosition, wxDefaultSize, 0 ); + bSizer1->Add( m_button31, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 5 ); + + this->SetSizer( bSizer1 ); + this->Layout(); + + // Connect Events + this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( Selection::OnClose ) ); + m_checkBox1->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( Selection::OnDrawPoints ), NULL, this ); + m_checkBox2->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( Selection::OnDrawCameras ), NULL, this ); + m_checkBox3->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( Selection::OnDrawPaths ), NULL, this ); + pointsize_spinner->Connect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Selection::OnPointSize ), NULL, this ); + m_choice1->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( Selection::OnFogChoice ), NULL, this ); + fogdens_spinner->Connect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Selection::OnFogDensity ), NULL, this ); + m_choice11->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( Selection::OnColorValue ), NULL, this ); + m_choice12->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( Selection::OnColorMap ), NULL, this ); + m_choice13->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( Selection::OnColorType ), NULL, this ); + m_spinCtrl61->Connect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Selection::OnColorMinVal ), NULL, this ); + m_spinCtrl6->Connect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Selection::OnColorMaxVal ), NULL, this ); + m_button4->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Selection::OnColorResetMinMax ), NULL, this ); + m_button3->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Selection::OnInvert ), NULL, this ); + m_spinCtrl3->Connect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Selection::OnAnimDelay ), NULL, this ); + m_button5->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Selection::OnAnimate ), NULL, this ); + m_textCtrl1->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( Selection::OnCameraFile ), NULL, this ); + m_button51->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Selection::OnCameraSavePath ), NULL, this ); + m_button6->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Selection::OnCameraLoadPath ), NULL, this ); + m_button14->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Selection::OnCameraLoadRobotPath ), NULL, this ); + m_checkBox4->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( Selection::OnSaveAnimation ), NULL, this ); + m_button7->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Selection::OnAnimatePath ), NULL, this ); + m_textCtrl11->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( Selection::OnPositionFile ), NULL, this ); + m_button511->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Selection::OnPositionSave ), NULL, this ); + m_button61->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Selection::OnPositionLoad ), NULL, this ); + m_spinCtrl621->Connect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Selection::OnFactor ), NULL, this ); + m_button71->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Selection::OnSaveImage ), NULL, this ); + m_textCtrl111->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( Selection::OnSelectionFile ), NULL, this ); + m_button5111->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Selection::OnSelectionSave ), NULL, this ); + m_button611->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Selection::OnSelectionClear ), NULL, this ); + m_checkBox5->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( Selection::OnSelectionSU ), NULL, this ); + m_checkBox6->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( Selection::OnSelectionSV ), NULL, this ); + m_spinCtrl6211->Connect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Selection::OnSelectionDepth ), NULL, this ); + m_spinCtrl62111->Connect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Selection::OnSelectionBrushsize ), NULL, this ); + if (advanced_controls) { + frame_spin->Connect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Selection::OnFrameSpinner ), NULL, this ); + m_spinCtrl621111->Connect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Selection::OnFramerateSpinner ), NULL, this ); + farplane_spinner->Connect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Selection::OnFarplaneSpinner ), NULL, this ); + nearplane_spinner->Connect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Selection::OnNearplaneSpinner ), NULL, this ); + lod_spinner->Connect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Selection::OnLODAdaption ), NULL, this ); + cycleLOD->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Selection::OnCycleLOD ), NULL, this ); + } +} + +Selection::~Selection() +{ + // Disconnect Events + this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( Selection::OnClose ) ); + m_checkBox1->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( Selection::OnDrawPoints ), NULL, this ); + m_checkBox2->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( Selection::OnDrawCameras ), NULL, this ); + m_checkBox3->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( Selection::OnDrawPaths ), NULL, this ); + pointsize_spinner->Disconnect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Selection::OnPointSize ), NULL, this ); + m_choice1->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( Selection::OnFogChoice ), NULL, this ); + fogdens_spinner->Disconnect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Selection::OnFogDensity ), NULL, this ); + m_choice11->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( Selection::OnColorValue ), NULL, this ); + m_choice12->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( Selection::OnColorMap ), NULL, this ); + m_choice13->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( Selection::OnColorType ), NULL, this ); + m_spinCtrl61->Disconnect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Selection::OnColorMinVal ), NULL, this ); + m_spinCtrl6->Disconnect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Selection::OnColorMaxVal ), NULL, this ); + m_button4->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Selection::OnColorResetMinMax ), NULL, this ); + m_button3->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Selection::OnInvert ), NULL, this ); + m_spinCtrl3->Disconnect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Selection::OnAnimDelay ), NULL, this ); + m_button5->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Selection::OnAnimate ), NULL, this ); + m_textCtrl1->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( Selection::OnCameraFile ), NULL, this ); + m_button51->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Selection::OnCameraSavePath ), NULL, this ); + m_button6->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Selection::OnCameraLoadPath ), NULL, this ); + m_button14->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Selection::OnCameraLoadRobotPath ), NULL, this ); + m_checkBox4->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( Selection::OnSaveAnimation ), NULL, this ); + m_button7->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Selection::OnAnimatePath ), NULL, this ); + m_textCtrl11->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( Selection::OnPositionFile ), NULL, this ); + m_button511->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Selection::OnPositionSave ), NULL, this ); + m_button61->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Selection::OnPositionLoad ), NULL, this ); + m_spinCtrl621->Disconnect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Selection::OnFactor ), NULL, this ); + m_button71->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Selection::OnSaveImage ), NULL, this ); + m_textCtrl111->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( Selection::OnSelectionFile ), NULL, this ); + m_button5111->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Selection::OnSelectionSave ), NULL, this ); + m_button611->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Selection::OnSelectionClear ), NULL, this ); + m_checkBox5->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( Selection::OnSelectionSU ), NULL, this ); + m_checkBox6->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( Selection::OnSelectionSV ), NULL, this ); + m_spinCtrl6211->Disconnect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Selection::OnSelectionDepth ), NULL, this ); + m_spinCtrl62111->Disconnect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Selection::OnSelectionBrushsize ), NULL, this ); + frame_spin->Disconnect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Selection::OnFrameSpinner ), NULL, this ); + m_spinCtrl621111->Disconnect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Selection::OnFramerateSpinner ), NULL, this ); + farplane_spinner->Disconnect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Selection::OnFarplaneSpinner ), NULL, this ); + nearplane_spinner->Disconnect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Selection::OnNearplaneSpinner ), NULL, this ); + lod_spinner->Disconnect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Selection::OnLODAdaption ), NULL, this ); + cycleLOD->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Selection::OnCycleLOD ), NULL, this ); +} + +Controls::Controls( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxFrame( parent, id, title, pos, size, style ) +{ + this->SetSizeHints( wxDefaultSize, wxDefaultSize ); + + wxBoxSizer* bSizer17; + bSizer17 = new wxBoxSizer( wxHORIZONTAL ); + + wxStaticBoxSizer* sbSizer5; + sbSizer5 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, wxT("Settings:") ), wxVERTICAL ); + + wxBoxSizer* bSizer26; + bSizer26 = new wxBoxSizer( wxHORIZONTAL ); + + m_staticText21 = new wxStaticText( this, wxID_ANY, wxT("Apex Angle"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText21->Wrap( -1 ); + bSizer26->Add( m_staticText21, 0, wxALL, 5 ); + + + bSizer26->Add( 0, 0, 1, wxEXPAND, 5 ); + + apex_spinner = new wxSpinCtrlDbl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 1, 180, 60 ); + bSizer26->Add( apex_spinner, 0, wxALIGN_RIGHT|wxLEFT|wxRIGHT, 5 ); + + sbSizer5->Add( bSizer26, 1, wxEXPAND, 5 ); + + wxBoxSizer* bSizer261; + bSizer261 = new wxBoxSizer( wxHORIZONTAL ); + + m_staticText211 = new wxStaticText( this, wxID_ANY, wxT("Parallel Zoom"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText211->Wrap( -1 ); + bSizer261->Add( m_staticText211, 0, wxALL, 5 ); + + parallel_spinner = new wxSpinCtrlDbl( *this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 10, 100000, 2000 ); + bSizer261->Add( parallel_spinner, 0, wxRIGHT|wxLEFT, 5 ); + + sbSizer5->Add( bSizer261, 1, wxEXPAND, 5 ); + + bSizer17->Add( sbSizer5, 0, 0, 5 ); + + wxStaticBoxSizer* sbSizer51; + sbSizer51 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, wxT("Mode:") ), wxVERTICAL ); + + m_button15 = new wxButton( this, wxID_ANY, wxT("Top View"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT ); + sbSizer51->Add( m_button15, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 ); + + m_button16 = new wxButton( this, wxID_ANY, wxT("Reset Position"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT ); + sbSizer51->Add( m_button16, 0, wxRIGHT|wxLEFT|wxEXPAND, 5 ); + + bSizer17->Add( sbSizer51, 0, 0, 5 ); + + wxStaticBoxSizer* sbSizer52; + sbSizer52 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, wxT("Camera:") ), wxVERTICAL ); + + wxBoxSizer* bSizer262; + bSizer262 = new wxBoxSizer( wxHORIZONTAL ); + + m_staticText212 = new wxStaticText( this, wxID_ANY, wxT("Choose Camera"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText212->Wrap( -1 ); + bSizer262->Add( m_staticText212, 0, wxALL, 5 ); + + + bSizer262->Add( 0, 0, 1, wxEXPAND, 5 ); + + camera_spinner = new wxSpinCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 10, 0 ); + bSizer262->Add( camera_spinner, 0, wxALIGN_RIGHT|wxLEFT|wxRIGHT, 5 ); + + sbSizer52->Add( bSizer262, 1, wxEXPAND, 5 ); + + m_button19 = new wxButton( this, wxID_ANY, wxT("Add Camera"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT ); + sbSizer52->Add( m_button19, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_HORIZONTAL, 5 ); + + m_button20 = new wxButton( this, wxID_ANY, wxT("Delete Camera"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT ); + sbSizer52->Add( m_button20, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_HORIZONTAL, 5 ); + + bSizer17->Add( sbSizer52, 0, 0, 5 ); + + wxStaticBoxSizer* sbSizer521; + sbSizer521 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, wxT("Settings:") ), wxVERTICAL ); + + m_checkBox7 = new wxCheckBox( this, wxID_ANY, wxT("MouseNav"), wxDefaultPosition, wxDefaultSize, 0 ); + m_checkBox7->SetValue(true); + sbSizer521->Add( m_checkBox7, 0, wxRIGHT|wxLEFT, 5 ); + + always_box = new wxCheckBox( this, wxID_ANY, wxT("Always all Points"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizer521->Add( always_box, 0, wxRIGHT|wxLEFT, 5 ); + + alwaysred_box = new wxCheckBox( this, wxID_ANY, wxT("Always reduce Points"), wxDefaultPosition, wxDefaultSize, 0 ); + alwaysred_box->SetValue(true); + sbSizer521->Add( alwaysred_box, 0, wxRIGHT|wxLEFT, 5 ); + + bSizer17->Add( sbSizer521, 0, 0, 5 ); + + this->SetSizer( bSizer17 ); + this->Layout(); + bSizer17->Fit( this ); + + // Connect Events + this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( Controls::OnClose ) ); + apex_spinner->Connect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Controls::OnApexAngle ), NULL, this ); + parallel_spinner->Connect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Controls::OnParallelZoom ), NULL, this ); + m_button15->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Controls::OnTopView ), NULL, this ); + m_button16->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Controls::OnResetPosition ), NULL, this ); + camera_spinner->Connect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Controls::OnChooseCamera ), NULL, this ); + m_button19->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Controls::OnAddCamera ), NULL, this ); + m_button20->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Controls::OnDeleteCamera ), NULL, this ); + m_checkBox7->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( Controls::OnMouseNav ), NULL, this ); + always_box->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( Controls::OnAlwaysAllPoints ), NULL, this ); + alwaysred_box->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( Controls::OnAlwaysReducePoints ), NULL, this ); +} + +Controls::~Controls() +{ + // Disconnect Events + this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( Controls::OnClose ) ); + apex_spinner->Disconnect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Controls::OnApexAngle ), NULL, this ); + parallel_spinner->Disconnect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Controls::OnParallelZoom ), NULL, this ); + m_button15->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Controls::OnTopView ), NULL, this ); + m_button16->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Controls::OnResetPosition ), NULL, this ); + camera_spinner->Disconnect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( Controls::OnChooseCamera ), NULL, this ); + m_button19->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Controls::OnAddCamera ), NULL, this ); + m_button20->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( Controls::OnDeleteCamera ), NULL, this ); + m_checkBox7->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( Controls::OnMouseNav ), NULL, this ); + always_box->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( Controls::OnAlwaysAllPoints ), NULL, this ); + alwaysred_box->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( Controls::OnAlwaysReducePoints ), NULL, this ); +} diff --git a/src/show/show.cc b/src/show/show.cc new file mode 100644 index 0000000..156c3c9 --- /dev/null +++ b/src/show/show.cc @@ -0,0 +1,121 @@ +/* + * show_gl implementation + * + * Copyright (C) Kai Lingemann, Andreas Nuechter, Jan Elseberg, Dorit Borrmann, Amuz Tamrakars + * + * Released under the GPL version 3. + * + */ + +/** + * @file + * @brief Implementation for displaying of a matched 3D scene + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "show_common.cc" + +#include + +void signal_segv(int v) +{ + static bool segfault = false; + if(!segfault) { + segfault = true; + cout << endl << "Segmentation fault" << endl; + deinitShow(); + } + exit(-1); +} + +void signal_interrupt(int v) +{ + static bool segfault = false; + if(!segfault) { + segfault = true; + cout << endl << "Exiting by interrupt" << endl; + deinitShow(); + } + exit(-1); +} + +/** + * Main function. + * Reads the scan (scan000.3d, ...) and frames files (scan000.frames, ...) from the data directory. + * The frames are used for animation of the matching process. + */ +int main(int argc, char **argv) +{ + signal(SIGSEGV, signal_segv); + signal(SIGINT, signal_interrupt); + signal(SIGTERM, signal_interrupt); + + initShow(argc, argv); + initScreenWindow(); + + newMenu(); + glutMainLoop(); +} + + +void updateCamControls() { + cam_spinner->set_int_limits( 1, cams.size()); + cam_spinner->set_int_val(cam_choice); +} + +void resetRotationButton() { + rotButton->reset(); +} + +void updateTopViewControls() { + if(showTopView) { + pzoom_spinner->enable(); + cangle_spinner->disable(); + } else { + pzoom_spinner->disable(); + cangle_spinner->enable(); + } +} + + +void updateControls() { + glui1->sync_live(); + glui1->show(); + glui2->sync_live(); + glui2->show(); +} + +static bool interrupted = false; +void interruptDrawing() { + interrupted = true; +} +void checkForInterrupt() { + interrupted = false; +} +bool isInterrupted() { +#ifdef WITH_FREEGLUT +#ifndef __APPLE__ + glutMainLoopEvent(); +#endif +#endif + glutSetWindow(window_id); + return interrupted; +} + +void updatePointModeControls() { + switch(pointmode) { + case -1: + always_box->set_int_val(0); + never_box->set_int_val(1); + break; + case 0: + always_box->set_int_val(0); + never_box->set_int_val(0); + break; + case 1: + always_box->set_int_val(1); + never_box->set_int_val(0); + break; + } +} diff --git a/src/show/show_animate.cc b/src/show/show_animate.cc new file mode 100644 index 0000000..3bad62a --- /dev/null +++ b/src/show/show_animate.cc @@ -0,0 +1,379 @@ +/* + * show_animate implementation + * + * Copyright (C) Kai Lingemann, Andreas Nuechter, Jan Elseberg, Dorit Borrmann + * + * Released under the GPL version 3. + * + */ + +#include +using std::fstream; +using std::ofstream; +using std::ios; +#include +using std::cout; +using std::cerr; +using std::endl; + +static int nr_interpolations = 0; + +void calcUpPath() +{ + + // if camera list is empty then return + if(cams.empty()) return; + PointXY temp ; + vector ups_listXY, ups_listXZ; + + // to interpolate with the xy coordinate. + for (unsigned int i = 0; i < ups.size(); i++) { + temp.x = ups[i].x; + temp.y = ups[i].y; + ups_listXY.push_back(temp); + } + + + // to interpolate with the xz coordinate. + for (unsigned int i = 0; i < ups.size(); i++) { + temp.x = ups[i].x; + temp.y = ups[i].z; + ups_listXZ.push_back(temp); + } + + // now get the nurbs path for the individual xy and xz plane + ups_vectorX = cam_nurbs_path.getNurbsPath(ups_listXY, nr_interpolations, inter_by_dist); + ups_vectorZ = cam_nurbs_path.getNurbsPath(ups_listXZ, nr_interpolations, inter_by_dist); +} + +void calcLookAtPath() +{ + + // if camera list is empty then return + if(cams.empty()) return; + PointXY temp ; + vector lookat_listXY, lookat_listXZ; + + // to interpolate with the xy coordinate. + for (unsigned int i = 0; i < lookats.size(); i++) { + temp.x = lookats[i].x; + temp.y = lookats[i].y; + lookat_listXY.push_back(temp); + } + + + // to interpolate with the xz coordinate. + for (unsigned int i = 0; i < lookats.size(); i++) { + temp.x = lookats[i].x; + temp.y = lookats[i].z; + lookat_listXZ.push_back(temp); + } + + // now get the nurbs path for the individual xy and xz plane + lookat_vectorX = cam_nurbs_path.getNurbsPath(lookat_listXY, nr_interpolations, inter_by_dist); + lookat_vectorZ = cam_nurbs_path.getNurbsPath(lookat_listXZ, nr_interpolations, inter_by_dist); +} + +void calcPath() +{ + if (cams.empty()) return; + PointXY temp ; + vector path_listXY, path_listXZ; + + // if camera list is empty then return + // to interpolate with the xy coordinate. + for(unsigned int i = 0;i < cams.size(); i++){ + temp.x = cams[i].x; + temp.y = cams[i].y; + path_listXY.push_back(temp); + } + + // to interpolate with the xz coordinate. + for(unsigned int i=0;i> euler[i++]); + // Orientation + for (unsigned int i = 0; i < 4; poseFile >> quat[i++]); + poseFile >> mouseRotX >> mouseRotY >> mouseRotZ >> cangle; + poseFile >> showTopView >> cameraNavMouseMode >> pzoom; + poseFile >> show_points >> show_path >> show_cameras >> pointsize; + poseFile >> show_fog >> fogDensity >> invert; + + setView(euler, quat, mouseRotX, mouseRotY, mouseRotZ, cangle, showTopView, + cameraNavMouseMode, pzoom, show_points, show_path, show_cameras, + pointsize, show_fog, fogDensity, invert); + + poseFile.clear(); + poseFile.close(); + +} + +/** + * This function saves the current camera pose to a file. + */ + +void savePose(int dummy) { + cout << "Save" << endl; + //output file stream + ofstream posefile; + + //open the output file + posefile.open(pose_file_name, ios::out); + + //if file not found then show error + if(!posefile){ + cerr << "Error creating the pose file." << endl; + return; + } + + //store all the relevant information about the + //individual camera position in this file. + + posefile << X << " " << Y << " " << Z << endl; + for(int i = 0; i < 4; i++) { + posefile << quat[i] << " "; + } + posefile << mouseRotX << " " << mouseRotY << " " << mouseRotZ << " " <::iterator it = selected_points[i].begin(); + it != selected_points[i].end(); it++) { + for (unsigned int k = 0; k < pointtype.getPointDim(); k++) { +// selectionfile << selected_points[i][j][k] << " "; + selectionfile << (*it)[k] << " "; + } + selectionfile << endl; + } + } + + //close the file after writing + selectionfile.clear(); + selectionfile.close(); +} + diff --git a/src/show/show_common.cc b/src/show/show_common.cc new file mode 100644 index 0000000..d5a48c3 --- /dev/null +++ b/src/show/show_common.cc @@ -0,0 +1,1101 @@ +/* + * show_common implementation + * + * Copyright (C) Kai Lingemann, Andreas Nuechter, Jan Elseberg, Dorit Borrmann + * + * Released under the GPL version 3. + * + */ + +#ifdef WITH_GLEE +#include +#endif + +#include "show/show.h" +#include "show/show_Boctree.h" +#include "show/compacttree.h" +#include "show/NurbsPath.h" +#include "show/vertexarray.h" +#ifndef DYNAMIC_OBJECT_REMOVAL +#include "slam6d/scan.h" +#include "slam6d/managedScan.h" +#else +#include "veloslam/veloscan.h" +#endif +#include "glui/glui.h" /* Header File For The glui functions */ +#include +using std::ifstream; +#include +using std::exception; +#include + +#ifdef WITH_METRICS +#include "slam6d/metrics.h" +#endif + +#ifdef _MSC_VER +#include "XGetopt.h" +#else +#include +#endif + +#ifdef _MSC_VER +#define strcasecmp _stricmp +#define strncasecmp _strnicmp +#else +#include +#endif + + +#ifdef _MSC_VER +#if !defined _OPENMP && defined OPENMP +#define _OPENMP +#endif +#endif + +#ifdef _OPENMP +#include +#endif + +#include "slam6d/point_type.h" +#include "slam6d/io_utils.h" +#include "show/display.h" + +/** + * This vector contains the pointer to a vertex array for + * all colors (inner vector) and all scans (outer vector) + */ +vector< vector > vvertexArrayList; + +vector< ::SDisplay*> displays; +/** + * the octrees that store the points for each scan + */ +//Show_BOctTree **octpts; +vector octpts; +/** + * Storing the base directory + */ +string scan_dir; + +/** + * Storing the ID of the main windows + */ +int window_id; + +/** + * Size of points + */ +GLfloat pointsize = 1.0; +int anim_delay = 5; + +/** + * Select Color Buffer + */ +GLenum buffermode = GL_BACK; + +/** + * Indicator whether and how the drawing window + * has to be updated. + * + * haveToUpdate == 1 redisplay + * haveToUpdate == 2 reshape + * haveToUpdate == 3 animation scan matching + * haveToUpdate == 4 stop animation scan matching + * haveToUpdate == 6 path animation + * haveToUpdate == 7 force redisplay with all points + */ +int haveToUpdate = 0; + +/** + * Flag for invert the scene + */ +bool invert = true; + +/** + * Flag for indicating brid eyes view + */ +bool showTopView = false; + +/** + * Flag for idicating camera add mode + */ +bool addCameraView = false; //Is the view in add box mode? + +/** + * Storing the apex angle of the camera + */ +GLfloat cangle = 60.0; // Current camera opening mode +GLfloat cangle_old = cangle; + +/** + * Current rotation axis of the scene as quaternion + */ +GLdouble quat[4] ={0.0, 0.0, 0.0, 1.0}; +GLdouble Rquat[4] ={0.0, 0.0, 0.0, 1.0}; + +/** + * Current translation of the scene + */ +GLdouble X = 0.0, Y = 0.0, Z = 0.0; +GLdouble RVX = 0.0, RVY = 0.0, RVZ = 0.0; + +/** + * parallel zoom (similar to apex angle) for parallel projection + */ +GLfloat pzoom = 2000.0; +GLfloat pzoom_old = pzoom; + + +/** + * Mode of the fog (exp, exp2, linear) + */ +GLint fogMode = GL_EXP; + +/** + * Indicates if fog should be shown + */ +int show_fog = 1; + +/** + * Indicates if the points should be shown + */ +int show_points = 1; // Show data points in the viewer? + +/** + * Indicates if camera boxes should be shown + */ +int show_cameras = 1; // Show the camera boxes in the viewer? + +/** + * Indicates if camera path or robot path should be shown + */ +int show_path = 1; // Show the camera movement path ? + +/** + * Camera navigation by mouse or by panel + */ +int cameraNavMouseMode = 1; + +int mouseNavX, mouseNavY; +int mouseNavButton = -1; + +double mouseRotX = 0.0; +double mouseRotY = 0.0; +double mouseRotZ = 0.0; + +bool keymap[256]; + +//@@@ +//int animate_both = 0; // Animate both scan matchin and path? + +int frameNr = 0; + +/** + * Storing of all transformation (frames for animation) of all scans + */ +vector < vector > MetaMatrix; + +/** + * Storing of AlgoType for all frames + */ +vector < vector > MetaAlgoType; + +/** + * Window position + */ +int START_X = 0; +int START_Y = 0; +int START_WIDTH = 720; +int START_HEIGHT = 576; +GLdouble aspect = (double)START_WIDTH/(double)START_HEIGHT; // Current aspect ratio +bool advanced_controls = false; + +bool fullscreen = false; +int current_width = START_WIDTH; +int current_height = START_HEIGHT; + + +// the following values are scale dependant, i.e. all values are in m +float neardistance = 0.10; +double oldneardistance = 0.10; +float maxfardistance = 400.0; +double fardistance = 400.0; +double oldfardistance = 40000.0; +double movementSpeed = 0.1; +double defaultZoom = 20.0; +GLfloat fogDensity = 0.1; +double voxelSize = 0.20; + + +float adaption_rate = 1.0; +float LevelOfDetail = 0.0001; + + +// Defines for Point Semantic +#define TYPE_UNKNOWN 0x0000 +#define TYPE_OBJECT 0x0001 +#define TYPE_GROUND 0x0002 +#define TYPE_CEILING 0x0003 + +unsigned int cam_choice = 0; + +static unsigned int path_iterator = 0; +static int oldcamNavMode = 0; + +/** + * Animation sould be saved to file + */ +int save_animation = 0; +/** + * If true, interpolation for camera path is based on distance, else always + * the same number of images between two cameras. + */ +int inter_by_dist = 1; + +/**some variables for the camera path**/ +vector path_vectorX, path_vectorZ, lookat_vectorX, lookat_vectorZ, ups_vectorX, ups_vectorZ; +vector cams; +vector lookats; +vector ups; + +NurbsPath cam_nurbs_path; +char *path_file_name; +char *pose_file_name; + +/** Factor for saved image size */ +int factor = 1; + +/** + * program tries to have this framerate + */ +float idealfps = 20.0; +/** + * value of the listBox fo Color Value and Colormap + */ +int listboxColorVal = 0; +int listboxColorMapVal = 0; +int colorScanVal = 0; +ScanColorManager *cm; +float mincolor_value = 0.0; +float maxcolor_value = 0.0; +//unsigned int types = Point::USE_HEIGHT; +PointType pointtype; + +/** + * Contains the selected points for each scan + */ +set *selected_points; +/** + * Select single points? + */ +int select_voxels = 0; +/** + * Select or unselect points ? + */ +int selectOrunselect = 1; +/** octree depth for selecting groups of points */ +int selection_depth = 1; +int brush_size = 0; +char *selection_file_name; + +int current_frame = 0; +#include "show_menu.cc" +#include "show_animate.cc" +#include "show_gl.cc" + +/** + * Explains the usage of this program's command line parameters + * @param prog name of the program + */ +void usage(char* prog) +{ +#ifndef _MSC_VER + const string bold("\033[1m"); + const string normal("\033[m"); +#else + const string bold(""); + const string normal(""); +#endif + + cout << endl + << bold << "USAGE " << normal << endl + << " " << prog << " [options] directory" << endl << endl; + cout << bold << "OPTIONS" << normal << endl + + << bold << " -e" << normal << " NR, " << bold << "--end=" << normal << "NR" << endl + << " end after scan NR" << endl + << endl + << bold << " -f" << normal << " F, " << bold << "--format=" << normal << "F" << endl + << " using shared library F for input" << endl + << " (chose F from {uos, uos_map, uos_rgb, uos_frames, uos_map_frames, old, rts, rts_map, ifp, riegl_txt, riegl_rgb, riegl_bin, zahn, ply, wrl, xyz, zuf, iais, front, x3d, rxp, ais })" << endl + << endl + << bold << " -F" << normal << " NR, " << bold << "--fps=" << normal << "NR [default: 20]" << endl + << " will attempt to display points with a framerate of NR" << endl + << endl + << bold << " -l" << normal << " FILE, " << bold << "--loadObj=" << normal << + "FILE" << endl + << " load objects specified in " << endl + << endl + << endl + << bold << " -m" << normal << " NR, " << bold << "--max=" << normal << "NR" << endl + << " neglegt all data points with a distance larger than NR 'units'" << endl + << endl + << bold << " -M" << normal << " NR, " << bold << "--min=" << normal << "NR" << endl + << " neglegt all data points with a distance smaller than NR 'units'" << endl + << endl + << bold << " -O" << normal << "NR (optional), " << bold << "--octree=" << normal << "NR (optional)" << endl + << " use randomized octree based point reduction (pts per voxel=)" << endl + << " requires " << bold << "-r" << normal <<" or " << bold << "--reduce" << endl + << endl + << bold << " -o" << normal << " NR, " << bold << "--origin=" << normal << "NR (optional)" << endl + << " sets the starting and reset position to: " << endl + << " 0 = the origin of the coordinate system (default)" << endl + << " 1 = the position of the first scan (default if --origin is in argument list)" << endl + << " 2 = the center of the first scan" << endl + << endl + << bold << " -S, --scanserver" << normal << endl + << " Use the scanserver as an input method and handling of scan data" << endl + << endl + << bold << " -r" << normal << " NR, " << bold << "--reduce=" << normal << "NR" << endl + << " turns on octree based point reduction (voxel size=)" << endl + << endl + << bold << " -s" << normal << " NR, " << bold << "--start=" << normal << "NR" << endl + << " start at scan NR (i.e., neglects the first NR scans)" << endl + << " [ATTENTION: counting naturally starts with 0]" << endl + << endl + << bold << " -C" << normal << " NR, " << bold << "--scale=" << normal << "NR" << endl + << " scale factor to use (default: 0.01), modifies movement speed etc. " << endl + << " use 1 when point coordinates are in m, 0.01 when in cm and so forth. " << endl + << " " << endl + << endl + + << bold << " -R, --reflectance, --reflectivity" << normal << endl + << " use reflectivity values for coloring point clouds" << endl + << " only works when using octree display" << endl + << endl + << bold << " -a, --amplitude" << endl << normal + << " use amplitude values for coloring point clouds" << endl + << " only works when using octree display" << endl + << endl + << bold << " -d, --deviation" << endl << normal + << " use amplitude values for coloring point clouds" << endl + << " only works when using octree display" << endl + << endl + << bold << " -h, --height" << endl << normal + << " use y-values for coloring point clouds" << endl + << " only works when using octree display" << endl + << endl + << bold << " -T, --type" << endl << normal + << " use type values for coloring point clouds" << endl + << " only works when using octree display" << endl + << bold << " -c, --color" << endl << normal + << " use color RGB values for coloring point clouds" << endl + << bold << " --saveOct" << endl << normal + << " stores all used scans as octrees in the given directory" << endl + << " All reflectivity/amplitude/deviation/type settings are stored as well." << endl + << " only works when using octree display" << endl + << bold << " --loadOct" << endl << normal + << " only reads octrees from the given directory" << endl + << " All reflectivity/amplitude/deviation/type settings are read from file." << endl + << " --reflectance/--amplitude and similar parameters are therefore ignored." << endl + << " only works when using octree display" << endl + << endl << endl; + + exit(1); +} + +/** + * A function that parses the command-line arguments and sets the respective flags. + * + * @param argc the number of arguments + * @param argv the arguments + * @param dir parsing result - the directory + * @param start parsing result - starting at scan number 'start' + * @param end parsing result - stopping at scan number 'end' + * @param maxDist parsing result - maximal distance + * @param minDist parsing result - minimal distance + * @param readInitial parsing result - read a file containing a initial transformation matrix + * @param type parsing result - file format to be read + * @return 0, if the parsing was successful, 1 otherwise + */ +int parseArgs(int argc,char **argv, string &dir, int& start, int& end, int& maxDist, int& minDist, + double &red, bool &readInitial, int &octree, PointType &ptype, float &fps, string &loadObj, + bool &loadOct, bool &saveOct, int &origin, double &scale, IOType &type, bool& scanserver) +{ + unsigned int types = PointType::USE_NONE; + start = 0; + end = -1; // -1 indicates no limitation + maxDist = -1; // -1 indicates no limitation + int c; + // from unistd.h + extern char *optarg; + extern int optind; + + WriteOnce w_type(type); + WriteOnce w_start(start), w_end(end); + + cout << endl; + static struct option longopts[] = { + { "origin", optional_argument, 0, 'o' }, + { "format", required_argument, 0, 'f' }, + { "fps", required_argument, 0, 'F' }, + { "scale", required_argument, 0, 'S' }, + { "start", required_argument, 0, 's' }, + { "end", required_argument, 0, 'e' }, + { "reduce", required_argument, 0, 'r' }, + { "max", required_argument, 0, 'm' }, + { "min", required_argument, 0, 'M' }, + { "octree", optional_argument, 0, 'O' }, + { "reflectance", no_argument, 0, 'R' }, + { "reflectivity", no_argument, 0, 'R' }, + { "amplitude", no_argument, 0, 'a' }, + { "deviation", no_argument, 0, 'd' }, + { "height", no_argument, 0, 'h' }, + { "type", no_argument, 0, 'T' }, + { "color", no_argument, 0, 'c' }, + { "loadObj", required_argument, 0, 'l' }, + { "saveOct", no_argument, 0, '0' }, + { "loadOct", no_argument, 0, '1' }, + { "advanced", no_argument, 0, '2' }, + { "scanserver", no_argument, 0, 'S' }, + { 0, 0, 0, 0} // needed, cf. getopt.h + }; + + while ((c = getopt_long(argc, argv,"F:f:s:e:r:m:M:O:o:l:C:SwtRadhTc", longopts, NULL)) != -1) { + switch (c) { + case 's': + w_start = atoi(optarg); + if (start < 0) { cerr << "Error: Cannot start at a negative scan number.\n"; exit(1); } + break; + case 'e': + w_end = atoi(optarg); + if (end < 0) { cerr << "Error: Cannot end at a negative scan number.\n"; exit(1); } + if (end < start) { cerr << "Error: cannot be smaller than .\n"; exit(1); } + break; + case 'm': + maxDist = atoi(optarg); + break; + case 'M': + minDist = atoi(optarg); + break; + case 'r': + red = atof(optarg); + break; + case 't': + readInitial = true; + break; + case 'O': + if (optarg) { + octree = atoi(optarg); + } else { + octree = 1; + } + break; + case 'f': + try { + w_type = formatname_to_io_type(optarg); + } catch (...) { // runtime_error + cerr << "Format " << optarg << " unknown." << endl; + abort(); + } + break; + case '?': + usage(argv[0]); + return 1; + case 'R': + types |= PointType::USE_REFLECTANCE; + break; + case 'a': + types |= PointType::USE_AMPLITUDE; + break; + case 'd': + types |= PointType::USE_DEVIATION; + break; + case 'h': + types |= PointType::USE_HEIGHT; + break; + case 'T': + types |= PointType::USE_TYPE; + break; + case 'c': + types |= PointType::USE_COLOR; + break; + case 'F': + fps = atof(optarg); + break; + case 'C': + scale = atof(optarg); + break; + case 'S': + scanserver = true; + break; + case 'o': + if (optarg) { + origin = atoi(optarg); + } else { + origin = 1; + } + break; + case '0': + saveOct = true; + break; + case '1': + loadOct = true; + break; + case 'l': + loadObj = optarg; + break; + case '2': + advanced_controls = true; + break; + default: + abort (); + } + } + + if (optind != argc-1) { + cerr << "\n*** Directory missing ***" << endl; + usage(argv[0]); + } + dir = argv[optind]; + +#ifndef _MSC_VER + if (dir[dir.length()-1] != '/') dir = dir + "/"; +#else + if (dir[dir.length()-1] != '\\') dir = dir + "\\"; +#endif + + parseFormatFile(dir, w_type, w_start, w_end); + + ptype = PointType(types); + return 0; +} + +void setResetView(int origin) { + if (origin == 1) { + double *transmat = MetaMatrix[0].back(); + cout << transmat << endl; + + RVX = -transmat[12]; + RVY = -transmat[13]; + RVZ = -transmat[14]; + Matrix4ToQuat(transmat, Rquat); + X = RVX; + Y = RVY; + Z = RVZ; + quat[0] = Rquat[0]; + quat[1] = Rquat[1]; + quat[2] = Rquat[2]; + quat[3] = Rquat[3]; + } else if (origin == 2) { + double center[3]; +#ifdef USE_COMPACT_TREE + ((compactTree*)octpts[0])->getCenter(center); +#else + ((Show_BOctTree*)octpts[0])->getCenter(center); +#endif + RVX = -center[0]; + RVY = -center[1]; + RVZ = -center[2]; + X = RVX; + Y = RVY; + Z = RVZ; + } +} + +/* + * A function that read the .frame files created by slam6D + * + * @param dir the directory + * @param start starting at scan number 'start' + * @param end stopping at scan number 'end' + * @param read a file containing a initial transformation matrix and apply it + */ +int readFrames(string dir, int start, int end, bool readInitial, IOType &type) +{ + + // convert to OpenGL coordinate system + double mirror[16]; + M4identity(mirror); + mirror[10] = -1.0; + + double initialTransform[16]; + if (readInitial) { + cout << "Initial Transform:" << endl; + string initialTransformFileName = dir + "initital.frame"; + ifstream initial_in(initialTransformFileName.c_str()); + if (!initial_in.good()) { + cout << "Error opening " << initialTransformFileName << endl; + exit(-1); + } + initial_in >> initialTransform; + cout << initialTransform << endl; + + // update the mirror to apply the initial frame for all frames + double tempxf[16]; + MMult(mirror, initialTransform, tempxf); + memcpy(mirror, tempxf, sizeof(tempxf)); + } + + for(std::vector::iterator it = Scan::allScans.begin(); it != Scan::allScans.end(); ++it) { + const double* transformation; + Scan::AlgoType algoType; + vector Matrices; + vector algoTypes; + + // iterate over frames (stop if none were created) and pull/convert the frames into local containers + unsigned int frame_count; + try { + frame_count = (*it)->readFrames(); + } catch(std::ios_base::failure& e) { + break; + } + for(unsigned int i = 0; i < frame_count; ++i) { + (*it)->getFrame(i, transformation, algoType); + double* transMatOpenGL = new double[16]; + + // apply mirror to convert (and initial frame if requested) the frame and save in opengl + MMult(mirror, transformation, transMatOpenGL); + + Matrices.push_back(transMatOpenGL); + algoTypes.push_back(algoType); + } + + MetaAlgoType.push_back(algoTypes); + MetaMatrix.push_back(Matrices); + + if((type == UOS_MAP || type == UOS_MAP_FRAMES || type == RTS_MAP) && it == Scan::allScans.begin()) { + MetaAlgoType.push_back(algoTypes); + MetaMatrix.push_back(Matrices); + } + current_frame = MetaMatrix.back().size() - 1; + } + + if (MetaMatrix.size() == 0) { + cerr << "*****************************************" << endl; + cerr << "** ERROR: No .frames could be found! **" << endl; + cerr << "*****************************************" << endl; + cerr << " ERROR: Missing or empty directory: " << dir << endl << endl; + return -1; + } + return 0; +} + +void generateFrames(int start, int end, bool identity) { + if (identity) { + cout << "using Identity for frames " << endl; + } else { + cout << "using pose information for frames " << endl; + } + int fileCounter = start; + int index = 0; + for (;;) { + if (fileCounter > end) break; // 'nuf read + fileCounter++; + + vector Matrices; + vector algoTypes; + + for (int i = 0; i < 3; i++) { + double *transMat = new double[16]; + + if (identity) { + M4identity(transMat); + transMat[10] = -1.0; + } else { + EulerToMatrix4(Scan::allScans[index]->get_rPos(), Scan::allScans[index]->get_rPosTheta(), transMat ); + } + + Matrices.push_back(transMat); + algoTypes.push_back(Scan::ICP); + + } + index++; + MetaAlgoType.push_back(algoTypes); + MetaMatrix.push_back(Matrices); + current_frame = MetaMatrix.back().size() - 1; + } +} + + + +/* + * create display lists + * @to do general framework for color & type definitions + */ +void createDisplayLists(bool reduced) +{ + for(unsigned int s = 0; s < Scan::allScans.size() ; s++) { + Scan* scan = Scan::allScans[s]; + + vertexArray* myvertexArray1; + vertexArray* myvertexArray2; + + // count points + unsigned int color1 = 0, color2 = 0; + if(!reduced) { + scan->get(DATA_XYZ | DATA_TYPE); + DataType type(scan->get("type")); + + if(type.valid()) { + for(unsigned int i = 0; i < type.size(); ++i) { + if(type[i] & TYPE_GROUND) { + color1 += 3; + } else { + color2 += 3; + } + } + } else { + color2 = 3 * scan->size("xyz"); + } + + myvertexArray1 = new vertexArray(color1); + myvertexArray2 = new vertexArray(color2); + + color1 = 0; color2 = 0; + + DataXYZ xyz(scan->get("xyz")); + for(unsigned int i = 0; i < xyz.size(); ++i) { + if(type[i] & TYPE_GROUND) { + for(unsigned int j = 0; j < 3; ++j) { + myvertexArray1->array[color1++] = xyz[i][j]; + } + } else { + for(unsigned int j = 0; j < 3; ++j) { + myvertexArray2->array[color2++] = xyz[i][j]; + } + } + } + } else { + color2 = 3 * scan->size("xyz reduced"); + + myvertexArray1 = new vertexArray(0); + myvertexArray2 = new vertexArray(color2); + + color2 = 0; + + DataXYZ xyz_r(scan->get("xyz reduced")); + for(unsigned int i = 0; i < xyz_r.size(); ++i) { + for(unsigned int j = 0; j < 3; ++j) { + myvertexArray2->array[color2++] = xyz_r[i][j]; + } + } + } + + + + glNewList(myvertexArray1->name, GL_COMPILE); + //@ + //glColor4d(0.44, 0.44, 0.44, 1.0); + //glColor4d(0.66, 0.66, 0.66, 1.0); + glVertexPointer(3, GL_FLOAT, 0, myvertexArray1->array); + glEnableClientState(GL_VERTEX_ARRAY); + glDrawArrays(GL_POINTS, 0, myvertexArray1->numPointsToRender); + glDisableClientState(GL_VERTEX_ARRAY); + glEndList(); + + glNewList(myvertexArray2->name, GL_COMPILE); + //glColor4d(1.0, 1.0, 1.0, 1.0); + //glColor4d(0.0, 0.0, 0.0, 1.0); + glVertexPointer(3, GL_FLOAT, 0, myvertexArray2->array); + glEnableClientState(GL_VERTEX_ARRAY); + glDrawArrays(GL_POINTS, 0, myvertexArray2->numPointsToRender); + glDisableClientState(GL_VERTEX_ARRAY); + glEndList(); + + // append to vector + vector vvertexArray; + vvertexArray.push_back(myvertexArray1); + vvertexArray.push_back(myvertexArray2); + vvertexArrayList.push_back(vvertexArray); + } +} + +void cycleLOD() { + LevelOfDetail = 0.00001; + for (unsigned int i = 0; i < octpts.size(); i++) + octpts[i]->cycleLOD(); +} + + +void initShow(int argc, char **argv){ + + /***************/ + /* init OpenGL */ + /***************/ + glutInit(&argc,argv); + + cout << "(wx)show - A highly efficient 3D point cloud viewer" << endl + << "(c) Jacobs University Bremen gGmbH, Germany, since 2009" << endl + << " University of Osnabrueck, Germany, 2006 - 2009" << endl << endl; + + if(argc <= 1){ + usage(argv[0]); + } + + double red = -1.0; + int start = 0, end = -1, maxDist = -1, minDist = -1; + string dir; + bool readInitial = false; + IOType type = UOS; + int octree = 0; + bool loadOct = false; + bool saveOct = false; + string loadObj; + int origin = 0; + double scale = 0.01; // in m + bool scanserver = false; + + pose_file_name = new char[1024]; + path_file_name = new char[1024]; + selection_file_name = new char[1024]; + + strncpy(pose_file_name, "pose.dat", 1024); + strncpy(path_file_name, "path.dat", 1024); + strncpy(selection_file_name, "selected.3d", 1024); + + parseArgs(argc, argv, dir, start, end, maxDist, minDist, red, readInitial, + octree, pointtype, idealfps, loadObj, loadOct, saveOct, origin, scale, type, scanserver); + + // modify all scale dependant variables + scale = 1.0 / scale; + movementSpeed *= scale; + neardistance *= scale; + oldneardistance *= scale; + maxfardistance *= scale; + fardistance *= scale; + fogDensity /= scale; + defaultZoom *= scale; + voxelSize *= scale; +// oldfardistance *= scale; + + //////////////////////// + SDisplay::readDisplays(loadObj, displays); + //////////////////// + + if (type == OCT) { + loadOct = true; + } + + // if we want to load display file get pointtypes from the files first + if(loadOct) { + string scanFileName = dir + "scan" + to_string(start,3) + ".oct"; + cout << "Getting point information from " << scanFileName << endl; + cout << "Attention! All subsequent oct-files must be of the same type!" << endl; + + pointtype = BOctTree::readType(scanFileName); + } + scan_dir = dir; + + // init and create display + M4identity(view_rotate_button); + obj_pos_button[0] = obj_pos_button[1] = obj_pos_button[2] = 0.0; + + // Loading scans, reducing, loading frames and generation if neccessary + + // load all available scans + Scan::openDirectory(scanserver, dir, type, start, end); + + if(Scan::allScans.size() == 0) { + cerr << "No scans found. Did you use the correct format?" << endl; + exit(-1); + } + + for(ScanVector::iterator it = Scan::allScans.begin(); it != Scan::allScans.end(); ++it) { + Scan* scan = *it; + scan->setRangeFilter(maxDist, minDist); + if(red > 0) { + // scanserver differentiates between reduced for slam and reduced for show, can handle both at the same time + if(scanserver) { + dynamic_cast(scan)->setShowReductionParameter(red, octree); + } else { + scan->setReductionParameter(red, octree); + } + } + } + cm = new ScanColorManager(4096, pointtype); + +#ifdef USE_GL_POINTS // use octtrees +#ifdef USE_COMPACT_TREE + cout << "Creating compact display octrees.." << endl; +#else + cout << "Creating display octrees.." << endl; +#endif + + if(loadOct) cout << "Loading octtrees from file where possible instead of creating them from scans." << endl; + + // for managed scans the input phase needs to know how much it can handle + std::size_t free_mem = 0; + if(scanserver) + free_mem = ManagedScan::getMemorySize(); + + for(unsigned int i = 0; i < Scan::allScans.size(); ++i) { + Scan* scan = Scan::allScans[i]; + + // create data structures +#ifdef USE_COMPACT_TREE // FIXME: change compact tree, then this case can be removed + compactTree* tree; + try { + if (red > 0) { // with reduction, only xyz points + DataXYZ xyz_r(scan->get("xyz reduced show")); + tree = new compactTree(PointerArray(xyz_r).get(), xyz_r.size(), voxelSize, pointtype, cm); + } else { // without reduction, xyz + attribute points + sfloat** pts = pointtype.createPointArray(scan); + unsigned int nrpts = scan->size("xyz"); + tree = new compactTree(pts, nrpts, voxelSize, pointtype, cm); + for(unsigned int i = 0; i < nrpts; ++i) delete[] pts[i]; delete[] pts; + } + } catch(...) { + cout << "Scan " << i << " could not be loaded into memory, stopping here." << endl; + break; + } +#else // FIXME: remove the case above + scan->setOcttreeParameter(red, voxelSize, pointtype, loadOct, saveOct); + + DataOcttree* data_oct; + try { + data_oct = new DataOcttree(scan->get("octtree")); + } catch(runtime_error& e) { + cout << "Scan " << i << " could not be loaded into memory, stopping here." << endl; + break; + } + BOctTree* btree = &(data_oct->get()); + unsigned int tree_size = btree->getMemorySize(); + + if(scanserver) { + // check if the octtree would actually fit with all the others + if(tree_size > free_mem) { + delete data_oct; + cout << "Stopping at scan " << i << ", no more octtrees could fit in memory." << endl; + break; + } else { + // subtract available memory + free_mem -= tree_size; + } + } +#endif //FIXME: COMPACT_TREE + +#if !defined USE_COMPACT_TREE + // show structures + // associate show octtree with the scan and hand over octtree pointer ownership + Show_BOctTree* tree = new Show_BOctTree(scan, data_oct, cm); + + // unlock cached octtree to enable creation of more octtres without blocking the space for full scan points + tree->unlockCachedTree(); +#endif + + // octtrees have been created successfully + octpts.push_back(tree); + + // print something +#ifdef USE_COMPACT_TREE // TODO: change compact tree for memory footprint output, remove this case + cout << "Scan " << i << " octree finished." << endl; +#else + cout << "Scan " << i << " octree finished ("; + bool space = false; + if(tree_size/1024/1024 > 0) { + cout << tree_size/1024/1024 << "M"; + space = true; + } + if((tree_size/1024)%1024 > 0) { + if(space) cout << " "; + cout << (tree_size/1024)%1024 << "K"; + space = true; + } + if(tree_size%1024 > 0) { + if(space) cout << " "; + cout << tree_size%1024 << "B"; + } + cout << ")." << endl; +#endif + } + +/* +TODO: to maximize space for octtrees, implement a heuristic to remove all +CacheObjects sequentially from the start and pack octtrees one after another +until it reaches the maximum size allowed, resetting the index, but causing the +first to be locked again and stopping by catching the exception +set heuristic, do locking, catch exception, reset heuristic to default or old +*/ +#if !defined USE_COMPACT_TREE + if(scanserver) { + // activate all octtrees until they don't fit anymore + cout << "Locking managed octtrees in memory " << flush; + bool stop = false; + unsigned int loaded = 0; + unsigned int dots = (octpts.size() / 20); + if(dots == 0) dots = 1; + vector::iterator it_remove_first = octpts.end(); + for(vector::iterator it = octpts.begin(); it != octpts.end(); ++it) { + if(!stop) { + // try to lock the octtree in cache + try { + Show_BOctTree* stree = dynamic_cast*>(*it); + stree->lockCachedTree(); + loaded++; + if(loaded % dots == 0) cout << '.' << flush; + } catch(runtime_error& e) { + stop = true; + it_remove_first = it; + } + } + if(stop) { + // delete the octtree, resize after iteration + delete *it; + } + } + // now remove iterators for deleted octtrees + if(stop) octpts.erase(it_remove_first, octpts.end()); + cout << ' ' << loaded << " octtrees loaded." << endl; + } + +#endif // !COMPACT_TREE + +#else // not using octtrees + createDisplayLists(red > 0); +#endif // USE_GL_POINTS + + // load frames now that we know how many scans we actually loaded + unsigned int real_end = min((unsigned int)(end), + (unsigned int)(start + octpts.size() - 1)); + if(readFrames(dir, start, real_end, readInitial, type)) + generateFrames(start, real_end, true); + + cm->setCurrentType(PointType::USE_HEIGHT); + //ColorMap cmap; + //cm->setColorMap(cmap); + resetMinMax(0); + + selected_points = new set[octpts.size()]; + + // sets (and computes if necessary) the pose that is used for the reset button + setResetView(origin); + + for (unsigned int i = 0; i < 256; i++) { + keymap[i] = false; + } +} + +void deinitShow() +{ + static volatile bool done = false; + if(done) return; + done = true; + + cout << "Cleaning up octtrees and scans." << endl; + if(octpts.size()) { + // delete octtrees to release the cache locks within + for(vector::iterator it = octpts.begin(); it!= octpts.end(); ++it) { + delete *it; + } + } + + Scan::closeDirectory(); +} + +/** + * Global program scope destructor workaround to clean up data regardless of + * the way of program exit. + */ +struct Deinit { ~Deinit() { deinitShow(); } } deinit; diff --git a/src/show/show_gl.cc b/src/show/show_gl.cc new file mode 100644 index 0000000..2e6c53c --- /dev/null +++ b/src/show/show_gl.cc @@ -0,0 +1,2040 @@ +/* + * show_gl implementation + * + * Copyright (C) Kai Lingemann, Andreas Nuechter, Jan Elseberg, Dorit Borrmann + * + * Released under the GPL version 3. + * + */ + +#include +#include +#include "show/viewcull.h" +#include "show/scancolormanager.h" + +bool fullydisplayed = true; // true if all points have been drawn to the screen +bool mousemoving = false; // true iff a mouse button has been pressed inside a window, + // but hs not been released +bool keypressed = false; // true iff a key button has been pressed inside a window, + // but hs not been released +double ptstodisplay = 100000; +double lastfps = idealfps; // last frame rate +int pointmode = -1; + +bool smallfont = true; +bool label = true; + +/** + * Displays all data (i.e., points) that are to be displayed + * @param mode spezification for drawing to screen or in selection mode + */ +void DrawPoints(GLenum mode, bool interruptable) +{ + long time = GetCurrentTimeInMilliSec(); + double min = 0.000000001; + double max = 1.0; + LevelOfDetail *= 1.0 + adaption_rate*(lastfps - idealfps)/idealfps; + if (LevelOfDetail > max) LevelOfDetail = max; + else if (LevelOfDetail < min) LevelOfDetail = min; + + // In case of animation + if(frameNr != 0) { + cm->setMode(ScanColorManager::MODE_ANIMATION); + +#ifdef USE_GL_POINTS + for(int iterator = (int)octpts.size()-1; iterator >= 0; iterator--) { +#else + for(int iterator = (int)Scan::allScans.size()-1; iterator >= 0; iterator--) { +#endif + // ignore scans that don't have any frames associated with them + if((unsigned int)iterator >= MetaMatrix.size()) continue; + // set usable frame + double* frame; + Scan::AlgoType type; + if((unsigned int)frameNr >= MetaMatrix[iterator].size()) { + // use last possible frame + frame = MetaMatrix[iterator].back(); + type = MetaAlgoType[iterator].back(); + } else { + frame = MetaMatrix[iterator][frameNr]; + type = MetaAlgoType[iterator][frameNr]; + } + if(type == Scan::INVALID) continue; + cm->selectColors(type); + glPushMatrix(); + glMultMatrixd(frame); + + + glPointSize(pointsize); +#ifdef USE_GL_POINTS + ExtractFrustum(pointsize); + cm->selectColors(type); + if (pointmode == 1 ) { + octpts[iterator]->display(); + } else { + octpts[iterator]->displayLOD(LevelOfDetail); + } +#else + for (unsigned int jterator = 0; jterator < vvertexArrayList[iterator].size(); jterator++) { + + if ((jterator == 0) && vvertexArrayList[iterator][jterator]->numPointsToRender > 0) { + cm->selectColors(type); + } + + if (vvertexArrayList[iterator][jterator]->numPointsToRender > 0) { + glCallList(vvertexArrayList[iterator][jterator]->name); + } + } +#endif + glPopMatrix(); + } + + setScansColored(0); + } else { + + if(mode == GL_SELECT){ + // select points mode + // ------------------ + GLuint name = 0; + for(int iterator = (int)octpts.size()-1; iterator >= 0; iterator--) { + glPushMatrix(); + glMultMatrixd(MetaMatrix[iterator].back()); + + glColor4f(1.0, 0.0, 0.0,1.0); + glPointSize(pointsize + 2.0); + for ( set::iterator it = selected_points[iterator].begin(); + it != selected_points[iterator].end(); it++) { + glLoadName(name++); + glBegin(GL_POINTS); + glVertex3d((*it)[0], (*it)[1], (*it)[2]); + glEnd(); + } + glPointSize(pointsize); + + glFlush(); + glPopMatrix(); + } + + } else { + + // draw point is normal mode + // ------------------------- + + if (interruptable) { + glDrawBuffer (GL_FRONT); + } + glPointSize(pointsize); + + vector sequence; + calcPointSequence(sequence, current_frame); +#ifdef USE_GL_POINTS + //for(int iterator = (int)octpts.size()-1; iterator >= 0; iterator--) { + for(unsigned int i = 0; i < sequence.size(); i++) { + int iterator = sequence[i]; +#else + for(int iterator = (int)Scan::allScans.size()-1; iterator >= 0; iterator--) { +#endif + // ignore scans that don't have any frames associated with them + if((unsigned int)iterator >= MetaMatrix.size()) continue; + // set usable frame + double* frame; + Scan::AlgoType type; + if((unsigned int)current_frame >= MetaMatrix[iterator].size()) { + // use last possible frame + frame = MetaMatrix[iterator].back(); + type = MetaAlgoType[iterator].back(); + } else { + frame = MetaMatrix[iterator][current_frame]; + type = MetaAlgoType[iterator][current_frame]; + } + if (type == Scan::INVALID) continue; + glPushMatrix(); + if (invert) // default: white points on black background + glColor4d(1.0, 1.0, 1.0, 0.0); + else // black points on white background + glColor4d(0.0, 0.0, 0.0, 0.0); + + // glMultMatrixd(MetaMatrix[iterator].back()); + if (current_frame != (int)MetaMatrix.back().size() - 1) { + cm->setMode(ScanColorManager::MODE_ANIMATION); + cm->selectColors(type); + } + glMultMatrixd(frame); + +#ifdef USE_GL_POINTS + //cout << endl << endl; calcRay(570, 266, 1.0, 40000.0); + /* // for height mapped color in the vertex shader + GLfloat v[16]; + for (unsigned int l = 0; l < 16; l++) + v[l] = MetaMatrix[iterator].back()[l]; + glUniformMatrix4fvARB(glGetUniformLocationARB(p, "MYMAT"), 1, 0, v); + */ + ExtractFrustum(pointsize); + if (pointmode == 1 ) { + octpts[iterator]->display(); + } else if (interruptable) { + checkForInterrupt(); + glFlush(); + glFinish(); + if (isInterrupted()) { + glPopMatrix(); + return; + } + octpts[iterator]->display(); + } else { + octpts[iterator]->displayLOD(LevelOfDetail); + } + if (!selected_points[iterator].empty()) { + glColor4f(1.0, 0.0, 0.0, 1.0); + glPointSize(pointsize + 2.0); + glBegin(GL_POINTS); + for ( set::iterator it = selected_points[iterator].begin(); + it != selected_points[iterator].end(); it++) { + glVertex3d((*it)[0], (*it)[1], (*it)[2]); + } + glEnd(); + glPointSize(pointsize); + } + +#else + for (unsigned int jterator = 0; jterator < vvertexArrayList[iterator].size(); jterator++) { + if (vvertexArrayList[iterator][jterator]->numPointsToRender > 0) { + glCallList(vvertexArrayList[iterator][jterator]->name); + } + } +#endif + glPopMatrix(); + } + } + } + + + if (pointmode == 1 ) { + fullydisplayed = true; + } else { + unsigned long td = (GetCurrentTimeInMilliSec() - time); + if (td > 0) + lastfps = 1000.0/td; + else + lastfps = 1000.0; + fullydisplayed = false; + } + if (interruptable) + fullydisplayed = true; +} + + +void DrawObjects(GLenum mode) { + for (unsigned int i = 0; i < displays.size(); i++) + displays[i]->displayAll(); + +} + +/** + * Draw a smooth path passing from all the camera points. + * + */ +void DrawPath() +{ + + glLineWidth(10.0); + // draw path + glBegin(GL_LINE_STRIP); + for(unsigned int j = 0; j < path_vectorX.size(); j++){ + // set the color + glColor4f(0.0, 1.0, 0.0, 1.0); + // set the points + glVertex3f(path_vectorX.at(j).x,path_vectorX.at(j).y,path_vectorZ.at(j).y); + } + glEnd(); + + // draw lookat path + glBegin(GL_LINE_STRIP); + for(unsigned int j = 0; j < lookat_vectorX.size(); j++){ + //set the color + glColor4d(1.0, 1.0, 0.0, 1.0); + //set the points + glVertex3f(lookat_vectorX.at(j).x,lookat_vectorX.at(j).y,lookat_vectorZ.at(j).y); + } + glEnd(); + + // draw up path + /* + glBegin(GL_LINE_STRIP); + for(unsigned int j = 0; j < ups_vectorX.size(); j++){ + //set the color + glColor4d(0.0, 1.0, 0.0, 0.7); + //set the points + glVertex3f(ups_vectorX.at(j).x,ups_vectorX.at(j).y,ups_vectorZ.at(j).y); + } + glEnd(); + */ +} + +/** + * Draw the camera boxes in the viewer + * + */ +void DrawCameras(void) +{ + for (unsigned int i = 0; i < cams.size(); i++) { + glPushMatrix(); + + // TODO improve upon this primitive camera + Point p = cams[i]; + Point l = Point::norm( lookats[i] - p ); // forward vector + Point u = Point::norm( ups[i] - p ); // up vector + Point r = Point::cross(l,u); // right vector + l = 5 * l; + r = 5 * r; + u = 5 * u; + + Point cube[8]; + cube[0] = p + l - r - u; + cube[1] = p + l + r - u; + cube[2] = p - l + r - u; + cube[3] = p - l - r - u; + cube[4] = p + l - r + u; + cube[5] = p + l + r + u; + cube[6] = p - l + r + u; + cube[7] = p - l - r + u; + + int sides[6][4] = {{0,1,2,3}, {4,5,6,7}, {0,1,5,4}, + {3,2,6,7}, {1,2,6,5}, {0,3,7,4}}; + + if (i+1 == cam_choice) { + glColor4f(1, 0, 1, 1); + } else { + glColor4f(0, 1, 0, 1); + } + // camera cube + glPolygonMode (GL_FRONT_AND_BACK, GL_FILL); + glBegin(GL_QUADS); + for (int j = 0; j < 6; j++) { + if (j == 2) continue; + for (int k = 0; k < 4; k++) { + int index = sides[j][k]; + glVertex3d(cube[index].x, cube[index].y, cube[index].z); + } + } + glEnd(); + + r = 5 * r; + u = 5 * u; + + glColor4f(1, 1, 0, 1); + if (i+1 == cam_choice) { + glPointSize(10); + } else { + glPointSize(5); + } + glBegin(GL_POINTS); + glVertex3d( lookats[i].x, lookats[i].y, lookats[i].z); + glEnd(); + + Point fcube[8]; + fcube[0] = cube[4]; + fcube[1] = cube[5]; + fcube[2] = cube[1]; + fcube[3] = cube[0]; + fcube[4] = lookats[i] - r + u; + fcube[5] = lookats[i] + r + u; + fcube[6] = lookats[i] + r - u; + fcube[7] = lookats[i] - r - u; + + glLineWidth(2.0); + glLineStipple(1, 0x0C0F); + glEnable(GL_LINE_STIPPLE); + glPolygonMode (GL_FRONT_AND_BACK, GL_LINE); + // camera FOV + glBegin(GL_QUADS); + for (int j = 0; j < 6; j++) { + for (int k = 0; k < 4; k++) { + int index = sides[j][k]; + glVertex3d(fcube[index].x, fcube[index].y, fcube[index].z); + } + } + glEnd(); + glDisable(GL_LINE_STIPPLE); + + + /* + if (i+1 == cam_choice) { + glColor3f(1, 1, 0); + glPointSize(20); + } else { + glColor3f(0, 0, 1); + glPointSize(10); + } + glBegin(GL_POINTS); + glVertex3d(p.x, p.y, p.z); + glEnd(); + + if (i+1 == cam_choice) { + glColor3f(0, 1, 1); + glPointSize(20); + } else { + glColor3f(1, 0, 0); + glPointSize(10); + } + glBegin(GL_POINTS); + glVertex3d( l.x, l.y, l.z); + glEnd(); + + if (i+1 == cam_choice) { + glColor3f(1, 0, 1); + glPointSize(20); + } else { + glColor3f(0, 1, 0); + glPointSize(10); + } + glBegin(GL_POINTS); + glVertex3d( u.x, u.y, u.z); + glEnd(); +*/ + + glPopMatrix(); + } +} + +//----------------------------------------------------------------------------------- + + +/** + * Display function + */ +void DisplayItFunc(GLenum mode, bool interruptable) +{ + /** + * Color of the fog + */ + + GLfloat fogColor[4]; + + if(!invert) { + glEnable(GL_COLOR_LOGIC_OP); + glLogicOp(GL_COPY_INVERTED); + } + + // set the clear color buffer in case of + // both invert and non invert mode + if (invert) + glClearColor(0.0, 0.0, 0.0, 0.0); + else + glClearColor(1.0, 1.0, 1.0, 1.0); + + // clear the color and depth buffer bit + if (!interruptable) { // single buffer mode, we need the depth buffer + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + } + + glPushMatrix(); + + // set the matrix mode + glMatrixMode(GL_MODELVIEW); + + // init modelview matrix + glLoadIdentity(); + + // set the polygon mode + glPolygonMode(GL_FRONT/*_AND_BACK*/, GL_LINE); + + // do the model-transformation + if (haveToUpdate == 6 && path_iterator < path_vectorX.size() ) { + gluLookAt(path_vectorX.at(path_iterator).x, + path_vectorX.at(path_iterator).y, + path_vectorZ.at(path_iterator).y, + lookat_vectorX.at(path_iterator).x, + lookat_vectorX.at(path_iterator).y, + lookat_vectorZ.at(path_iterator).y, + ups_vectorX.at(path_iterator).x - path_vectorX.at(path_iterator).x, + ups_vectorX.at(path_iterator).y - path_vectorX.at(path_iterator).y, + ups_vectorZ.at(path_iterator).y - path_vectorZ.at(path_iterator).y); + } else { + if (cameraNavMouseMode == 1) { + glRotated( mouseRotX, 1, 0, 0); + glRotated( mouseRotY, 0, 1, 0); + glRotated( mouseRotZ, 0, 0, 1); + glGetFloatv(GL_MODELVIEW_MATRIX, view_rotate_button); + update_view_rotate(0); + } else { + double t[3] = {0,0,0}; + double mat[16]; + QuatToMatrix4(quat, t, mat); + glMultMatrixd(mat); + + glGetFloatv(GL_MODELVIEW_MATRIX, view_rotate_button); + //glRotated(angle, axis[0], axis[1], axis[2]); // rotate the camera + double rPT[3]; + Matrix4ToEuler(mat, rPT); + mouseRotX = deg(rPT[0]); + mouseRotY = deg(rPT[1]); + mouseRotZ = deg(rPT[2]); + + } + updateControls(); + + glTranslated(X, Y, Z); // move camera + } + +// cout << "Position :" << X << " " << Y << " " << Z << endl; +// cout << "Quaternion:" << quat[0] << " " << quat[1] << " " << quat[2] << " " << quat[3] << endl; +// cout << "Axis/Angle:" << axis[0] << " " << axis[1] << " " << axis[2] << " " << angle << endl; +// cout << "Apex angle:" << cangle << endl; +// cout << endl; + + // process fog + if (show_fog > 0) { + if (show_fog > 3) + fogColor[0] = fogColor[1] = fogColor[2] = fogColor[3] = 1.0; + else + fogColor[0] = fogColor[1] = fogColor[2] = fogColor[3] = 0.0; + glEnable(GL_FOG); + { + // ln(1/2^8) = -5.54517744 -> threshold at which the last color bit is gone due to fog + if (show_fog==1) {fogMode = GL_EXP; fardistance = min(5.54517744 / fogDensity, (double)maxfardistance);} + else if (show_fog==2) {fogMode = GL_EXP2; fardistance = min(sqrt(5.54517744) / fogDensity, (double)maxfardistance);} + else if (show_fog==3) {fogMode = GL_LINEAR; fardistance = 32000.0;} + else if (show_fog==4) {fogMode = GL_EXP; fardistance = (double)maxfardistance; } + else if (show_fog==5) {fogMode = GL_EXP2; fardistance = (double)maxfardistance; } + else if (show_fog==6) {fogMode = GL_LINEAR; fardistance = (double)maxfardistance;} + glFogi(GL_FOG_MODE, fogMode); + glFogfv(GL_FOG_COLOR, fogColor); + glFogf(GL_FOG_DENSITY, fogDensity); + glHint(GL_FOG_HINT, GL_FASTEST); + glFogf(GL_FOG_START, neardistance); + glFogf(GL_FOG_END, maxfardistance); + } + } else { + glDisable(GL_FOG); + fardistance = maxfardistance; + } + if (fardistance > maxfardistance) fardistance = maxfardistance; + if ( fabs(oldfardistance - fardistance) > 0.00001 || fabs(oldneardistance - neardistance) > 0.00001 ) { + oldfardistance = fardistance; + oldneardistance = neardistance; + int viewport[4]; + glGetIntegerv(GL_VIEWPORT, viewport); + CallBackReshapeFunc(viewport[2],viewport[3]); + } + + // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + // + // show the objects __after__ the model-transformation + // for all status variables we show the appropiated thing + // using the drawing functions + // + // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + if (show_path == 1) { + double *pose; + glColor4d(1.0, 0.0, 0.0, 1.0); + glLineWidth(5); + glBegin(GL_LINE_STRIP); + for(unsigned int i = 0; i < MetaMatrix.size(); i++){ + // set usable type + Scan::AlgoType type; + if((unsigned int)frameNr >= MetaMatrix[i].size()) { + type = MetaAlgoType[i].back(); + } else { + type = MetaAlgoType[i][frameNr]; + } + if(frameNr >= 1 && frameNr < (int)MetaMatrix[i].size()) { + if(type == Scan::INVALID) continue; + // avoid incomplete frames in a scan + if((unsigned int)frameNr >= MetaMatrix[i].size()) + pose = MetaMatrix[i].back(); + else + pose = MetaMatrix[i][frameNr]; + } else { + //pose = MetaMatrix[i].back(); + // avoid incomplete frames in a scan + if((unsigned int)current_frame >= MetaMatrix[i].size()) + pose = MetaMatrix[i].back(); + else + pose = MetaMatrix[i][current_frame]; + } + if(showTopView) { + glVertex3f(pose[12], 2000, pose[14]); + } else { + glVertex3f(pose[12], pose[13], pose[14]); + } + } + glEnd(); + } + + // if show camera is true then draw cameras. + if (show_cameras == 1) { + DrawCameras(); + } + + // if show path is true the draw path. + if (show_path == 1) { + DrawPath(); + } + DrawObjects(mode); + + if (label) DrawUrl(); + + // if show points is true the draw points + if (show_points == 1) DrawPoints(mode, interruptable); + + + glPopMatrix(); + + if (!invert) { + glDisable(GL_COLOR_LOGIC_OP); + } + + // force draw the scene + glFlush(); + glFinish(); +} + +void DrawUrl() { + glMatrixMode(GL_MODELVIEW); + glPushMatrix(); + glLoadIdentity(); + glMatrixMode(GL_PROJECTION); + + // Save the current projection matrix + glPushMatrix(); + // Make the current matrix the identity matrix + glLoadIdentity(); + + // Set the projection (to 2D orthographic) + glOrtho(0.0,100.0,0.0,100.0,-1.5,1.5); + + glPolygonMode (GL_FRONT_AND_BACK, GL_FILL); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); // TODO + + glColor4d(0.0,0.0,0.0,0.7); + + glBegin(GL_QUADS); + glVertex3f(0,0,1.49); + glVertex3f(0,6,1.49); + if(smallfont) { + glVertex3f(22,6,1.49); + glVertex3f(22,0,1.49); + } else { + glVertex3f(25,6,1.49); + glVertex3f(25,0,1.49); + } + glEnd(); + + glBlendFunc(GL_ONE, GL_ZERO); + glColor3f(1,1,1); + if(smallfont) { + glRasterPos3f(1,3.5,1.5); + _glutBitmapString(GLUT_BITMAP_8_BY_13, "created by 3DTK"); + glRasterPos3f(1,1,1.5); + _glutBitmapString(GLUT_BITMAP_8_BY_13, "http://threedtk.de"); + } else { + glRasterPos3f(1,3.5,1.5); + _glutBitmapString(GLUT_BITMAP_9_BY_15, "created by 3DTK"); + glRasterPos3f(1,1,1.5); + _glutBitmapString(GLUT_BITMAP_9_BY_15, "http://threedtk.de"); + } + + // Restore the original projection matrix + glPopMatrix(); + glMatrixMode(GL_MODELVIEW); + glPopMatrix(); + +} +/** + * Function topview. Set the screen for top view. + */ +void topView() +{ + static GLdouble save_qx, save_qy, save_qz, save_qangle, save_X, save_Y, save_Z; + static GLdouble saveMouseRotX, saveMouseRotY, saveMouseRotZ; + + if (!showTopView) // set to top view + { + showTopView = true; + // save current pose + save_X = X; + save_Y = Y; + save_Z = Z; + save_qx = quat[0]; + save_qy = quat[1]; + save_qz = quat[2]; + save_qangle = quat[3]; + saveMouseRotX = mouseRotX; + saveMouseRotY = mouseRotY; + saveMouseRotZ = mouseRotZ; + + Y = Y - 350.0; + Z = Z + 500.0; + quat[0] = quat[1] = sqrt(0.5); + quat[2] = quat[3] = 0.0; + mouseRotX = 90; + mouseRotY = 0; + mouseRotZ = 0; + + haveToUpdate = 2; + } else { + showTopView = false; + + // restore old settings + X = save_X; + Y = save_Y; + Z = save_Z; + quat[0] = save_qx; + quat[1] = save_qy; + quat[2] = save_qz; + quat[3] = save_qangle; + mouseRotX = saveMouseRotX; + mouseRotY = saveMouseRotY; + mouseRotZ = saveMouseRotZ; + + haveToUpdate = 2; + } +} + +//--------------------------------------------------------------------------- +/** + * This function is called when the user wants to + * delete a camera. + */ + +void callDeleteCamera(int dummy){ + + //iterator for the position of camera + //in the camera list + vector::iterator position; + vector::iterator positionL; + vector::iterator positionU; + + //calculate the position of the camera. we are referring + //to the selected camera + position = cams.begin()+ (cam_choice-1); + positionL = lookats.begin()+ (cam_choice-1); + positionU = ups.begin()+ (cam_choice-1); + + //if no camera present then return + if(cam_choice == 0) + return; + + //if the list is not empty then + if(!cams.empty()){ + //delete the camera from the position + cams.erase(position); + lookats.erase(positionL); + ups.erase(positionU); + //reset the cam_choice spinner values + } + + updateCamera(); +} + + +//--------------------------------------------------------------------------- +/** + * Function to reset the viewer window. + */ + +void resetView(int dummy) +{ + cangle = 60.0; + pzoom = defaultZoom; + X = RVX; + Y = RVY; + Z = RVZ; + quat[0] = Rquat[0]; + quat[1] = Rquat[1]; + quat[2] = Rquat[2]; + quat[3] = Rquat[3]; + haveToUpdate = 2; + mouseRotX = 0; + mouseRotY = 0; + mouseRotZ = 0; + + resetRotationButton(); +} + +/** + * Function to set the viewer window back to a previously saved state. + */ + +void setView(double pos[3], double new_quat[4], + double newMouseRotX, double newMouseRotY, double newMouseRotZ, + double newCangle, + bool sTV, bool cNMM, double pzoom_new, + bool s_points, bool s_path, bool s_cameras, double ps, int + sf, double fD, bool inv) +{ + X = pos[0]; + Y = pos[1]; + Z = pos[2]; + for(int i = 0; i < 4; i++) { + quat[i] = new_quat[i]; + } + cangle = newCangle; + mouseRotX = newMouseRotX; + mouseRotY = newMouseRotY; + mouseRotZ = newMouseRotZ; + showTopView = sTV, + cameraNavMouseMode = cNMM; + pzoom = pzoom_new; + updateTopViewControls(); + + show_points = s_points; + show_path = s_path; + show_cameras = s_cameras; + pointsize = ps; + show_fog = sf; + fogDensity = fD; + invert = inv; + + haveToUpdate = 2; +} + + +/** + * This function is called when the viewer is created. This + * acts as the display function. + */ +void CallBackDisplayFunc() +{ + if ((cangle_spinner != 0 && (fabs(cangle_old - cangle) > 0.5)) || + (pzoom_spinner != 0 && (fabs(pzoom_old - pzoom) > 0.5))) { + + cangle_old = cangle; + pzoom_old = pzoom; + int viewport[4]; + glGetIntegerv(GL_VIEWPORT, viewport); + CallBackReshapeFunc(viewport[2],viewport[3]); +#ifdef _MSC_VER + Sleep(25); +#else + usleep(250000); +#endif + } + + glDrawBuffer(buffermode); + // delete framebuffer and z-buffer + + //Call the display function + DisplayItFunc(GL_RENDER ); + + // show the rednered scene + glutSwapBuffers(); + +} + +/** + * This function is called when there is nothing to be done + * in the screen. + */ +void CallBackIdleFunc(void) +{ + +#ifdef _MSC_VER + Sleep(1); +#else + usleep(1000); +#endif + + if(glutGetWindow() != window_id) + glutSetWindow(window_id); + + // return as nothing has to be updated + if (haveToUpdate == 0) { + if (!fullydisplayed && !mousemoving && !keypressed && pointmode == 0 + ) { + glDrawBuffer(buffermode); + //Call the display function + DisplayItFunc(GL_RENDER, true); + } + return; + } + + // case: display is invalid - update it + if (haveToUpdate == 1) { + glutPostRedisplay(); + haveToUpdate = 0; + return; + } + // case: display is invalid - update it with all points +/* if (haveToUpdate == 7) { + showall = true; + glutPostRedisplay(); + haveToUpdate = 0; + return; + }*/ + + // case: camera angle is changed - instead of repeating code call Reshape, + // since these OpenGL commands are the same + if (haveToUpdate == 2) { + int viewport[4]; + glGetIntegerv(GL_VIEWPORT, viewport); + CallBackReshapeFunc(viewport[2],viewport[3]); + glutPostRedisplay(); + haveToUpdate = 0; + return; + } + + // case: animation + if(haveToUpdate == 3 ){ + frameNr += 1; + if(!(MetaMatrix.size() > 1 && frameNr < (int) MetaMatrix[1].size())){ + frameNr = 0; + haveToUpdate = 4; + return; + } + glutPostRedisplay(); + + if(save_animation){ + string filename = scan_dir + "animframe" + to_string(frameNr,5) + ".ppm"; + cout << "write " << filename << endl; + int tmpUpdate = haveToUpdate; + glWriteImagePPM(filename.c_str(), factor, 0); + haveToUpdate = tmpUpdate; + + string jpgname = scan_dir + "animframe" + to_string(frameNr,5) + ".jpg"; + string systemcall = "convert -quality 100 -type TrueColor " + filename + " " + jpgname; + // cout << systemcall << endl; + system(systemcall.c_str()); + systemcall = "rm " + filename; + system(systemcall.c_str()); + // cout << systemcall << endl; + // for f in *ppm ; do convert -quality 100 -type TrueColor $f `basename $f ppm`jpg; done + } + + } +#ifdef _MSC_VER + Sleep(300); + Sleep(anim_delay); +#else + usleep(anim_delay * 10000); +#endif + + if (haveToUpdate == 4) { // stop animation + frameNr = 0; // delete these lines if you want a 'continue' functionality. + haveToUpdate = 1; + } + + // case: path animation + if(haveToUpdate == 6){ + + if (path_iterator == 0) { + oldcamNavMode = cameraNavMouseMode; // remember state of old mousenav + cameraNavMouseMode = 0; + } + + // check if the user wants to animate both + // scan matching and the path at the same + //time + + // cout << "path_iterator: " << path_iterator << endl; + if(path_iterator < path_vectorX.size()){ // standard animation case + + // call the path animation function + // hide both the cameras and the path + show_cameras = 0; + show_path = 0; + // increase the iteration count + + path_iterator += 1; + // repaint the screen + glutPostRedisplay(); + + // save the animation + if(save_animation){ + string filename = scan_dir + "animframe" + to_string(path_iterator,5) + ".ppm"; + string jpgname = scan_dir + "animframe" + to_string(path_iterator,5) + ".jpg"; + cout << "written " << filename << " of " << path_vectorX.size() << " files" << endl; + glWriteImagePPM(filename.c_str(), factor, 0); + string systemcall = "convert -quality 100 " + filename + " " + jpgname; + system(systemcall.c_str()); + systemcall = "rm " + filename; + system(systemcall.c_str()); + haveToUpdate = 6; + + } + }else{ // animation has just ended + cameraNavMouseMode = oldcamNavMode; + show_cameras = 1; + show_path = 1; + haveToUpdate = 0; + } + } + +} + + +/** + * This function handles the rotation of the view + */ + +void update_view_rotate(int t) +{ + double view_rotate_button_quat[4]; + + // convert the rotate button matrix to quaternion + //Matrix4ToQuaternion(view_rotate_button, view_rotate_button_quat); + double mat[16]; + for (int i = 0; i < 16; i++) + mat[i] = view_rotate_button[i]; + Matrix4ToQuat(mat, view_rotate_button_quat); + + // normalize the quartenion + QuatNormalize(view_rotate_button_quat); + + // copy it to the global quartenion quat + memcpy(quat, view_rotate_button_quat, sizeof(quat)); +} + +/** + * This function handles the translation of view. + */ +void update_view_translation(int t) +{ + double obj_pos_button1[3]; + + for (int i = 0; i < 3; i++) { + if (fabs(obj_pos_button_old[i] - obj_pos_button[i]) > COMPARE_EPSILON) { + obj_pos_button1[i] = obj_pos_button[i] - obj_pos_button_old[i]; + obj_pos_button_old[i] = obj_pos_button[i]; + } else obj_pos_button1[i] = 0.0; + } + + X = X + obj_pos_button1[0] * view_rotate_button[0] + obj_pos_button1[1] * view_rotate_button[1] + obj_pos_button1[2] * view_rotate_button[2]; + Y = Y + obj_pos_button1[0] * view_rotate_button[4] + obj_pos_button1[1] * view_rotate_button[5] + obj_pos_button1[2] * view_rotate_button[6]; + Z = Z + obj_pos_button1[0] * view_rotate_button[8] + obj_pos_button1[1] * view_rotate_button[9] + obj_pos_button1[2] * view_rotate_button[10]; + +} + + +/** + * handles the animation button + * @param dummy not needed necessary for glui + */ +void startAnimation(int dummy) +{ + if (MetaMatrix.size() > 0) { + if (haveToUpdate != 3) { + haveToUpdate = 3; + } + else // stop animation + haveToUpdate = 4; + } +} + +/** + * calls the resetView function + * @param dummy not needed necessary for glui + */ +void callResetView(int dummy) +{ + if (showTopView) callTopView(dummy); + resetView(0); +} + +/** + * calls the resetView function + * @param dummy not needed necessary for glui + */ +void invertView(int dummy) +{ + invert = !invert; +} + +/** + * calls the topView function + * @param dummy not needed necessary for glui + */ +void callTopView(int dummy) +{ + topView(); + if (showTopView) { + rotButton->disable(); + cangle_spinner->disable(); + pzoom_spinner->enable(); + } else { + rotButton->enable(); + cangle_spinner->enable(); + pzoom_spinner->disable(); + } +} + +/** + * calls the cameraView function + * @param dummy not needed necessary for glui + */ +void callAddCamera(int dummy) +{ + Point campos(-X, -Y, -Z); + + // calculate lookat point + Point lookat; + Point up(0, 0, 0); + double tmat[16]; + for (int i =0;i<16;i++) tmat[i] = view_rotate_button[i]; + + lookat.x = -50*tmat[2] -X; + lookat.y = -50*tmat[6] -Y; + lookat.z = -50*tmat[10] -Z; + + up.x = 50*tmat[1] -X; + up.y = 50*tmat[5] -Y; + up.z = 50*tmat[9] -Z; + + cams.push_back(campos); + lookats.push_back(lookat); + ups.push_back(up); + + updateCamera(); + + // signal to repaint screen + haveToUpdate = 1; +} + +void selectPoints(int x, int y) { + + GLuint selectBuf[BUFSIZE]; + GLint hits; + GLint viewport[4]; + if (selectOrunselect) { + // set the matrix mode + glMatrixMode(GL_MODELVIEW); + // init modelview matrix + glLoadIdentity(); + + // do the model-transformation + if (cameraNavMouseMode == 1) { + glRotated( mouseRotX, 1, 0, 0); + glRotated( mouseRotY, 0, 1, 0); + glRotated( mouseRotZ, 0, 0, 1); + } else { + double t[3] = {0,0,0}; + double mat[16]; + QuatToMatrix4(quat, t, mat); + glMultMatrixd(mat); + + glGetFloatv(GL_MODELVIEW_MATRIX, view_rotate_button); + double rPT[3]; + Matrix4ToEuler(mat, rPT); + mouseRotX = deg(rPT[0]); + mouseRotY = deg(rPT[1]); + mouseRotZ = deg(rPT[2]); + } + updateControls(); + glTranslated(X, Y, Z); // move camera + + static sfloat *sp2 = 0; +/* for(int iterator = (int)octpts.size()-1; iterator >= 0; iterator--) { + if (!selected_points[iterator].empty()) sp2 = *selected_points[iterator].begin(); + + // selected_points[iterator].clear(); + }*/ + for(int iterator = (int)octpts.size()-1; iterator >= 0; iterator--) { + glPushMatrix(); + glMultMatrixd(MetaMatrix[iterator].back()); + calcRay(x, y, 1.0, 40000.0); + if (select_voxels) { + octpts[iterator]->selectRay(selected_points[iterator], selection_depth); + } else if (brush_size == 0) { + sfloat *sp = 0; + octpts[iterator]->selectRay(sp); + if (sp != 0) { + cout << "Selected point: " << sp[0] << " " << sp[1] << " " << sp[2] << endl; + + if (sp2 != 0) { + cout << "Distance to last point: " + << sqrt( sqr(sp2[0] - sp[0]) + sqr(sp2[1] - sp[1]) + sqr(sp2[2] - sp[2]) ) << endl; + } + sp2 = sp; + + selected_points[iterator].insert(sp); + } + } else { // select multiple points with a given brushsize + octpts[iterator]->selectRayBrushSize(selected_points[iterator], brush_size); + } + + glPopMatrix(); + } + + } else { + // unselect points + glGetIntegerv(GL_VIEWPORT, viewport); + + glSelectBuffer(BUFSIZE, selectBuf); + (void) glRenderMode(GL_SELECT); + + glInitNames(); + glPushName(0); + + glMatrixMode(GL_PROJECTION); + glPushMatrix(); + glLoadIdentity(); + +// gluPickMatrix((GLdouble)x, (GLdouble)(viewport[3]-y), 10.0, 10.0, viewport); + gluPickMatrix((GLdouble)x, (GLdouble)(viewport[3]-y), brush_size*2, brush_size*2, viewport); + gluPerspective(cangle, aspect, neardistance, fardistance); + glMatrixMode(GL_MODELVIEW); + DisplayItFunc(GL_SELECT); + + glMatrixMode(GL_PROJECTION); + glPopMatrix(); + glMatrixMode(GL_MODELVIEW); + + hits = glRenderMode(GL_RENDER); // get hits + ProcessHitsFunc(hits, selectBuf); + } + glPopMatrix(); + glutPostRedisplay(); +} + +void CallBackMouseFuncMoving(int button, int state, int x, int y) +{ + + if( state == GLUT_DOWN) { + mousemoving = true; + } else { + mousemoving = false; + } +} + + +/** + * This function is called after a mousebutton has been pressed. + */ +void CallBackMouseFunc(int button, int state, int x, int y) +{ + // Are we selecting points or moving the camera? + if(cameraNavMouseMode != 1) { // selecting points + if (state == GLUT_DOWN && (button == GLUT_LEFT_BUTTON || button == GLUT_RIGHT_BUTTON)) { + selectPoints(x,y); + } + } else { + if( state == GLUT_DOWN) { + + mouseNavX = x; + mouseNavY = y; + mouseNavButton = button; + + mousemoving = true; + } else { + mouseNavButton = -1; + mousemoving = false; + } + } +} + + +void moveCamera(double x, double y, double z, double rotx, double roty, double rotz) { + interruptDrawing(); + double mat[9]; + + double xr = M_PI * mouseRotX / 180; + double yr = M_PI * mouseRotY / 180; + double zr = M_PI * mouseRotZ / 180; + double c1,c2,c3,s1,s2,s3; + s1 = sin(xr); c1 = cos(xr); + s2 = sin(yr); c2 = cos(yr); + s3 = sin(zr); c3 = cos(zr); + mat[0] = c2*c3; + mat[1] = -c2*s3; + mat[2] = s2; + mat[3] = c1*s3+c3*s1*s2; + mat[4] = c1*c3-s1*s2*s3; + mat[5] = -c2*s1; + mat[6] = s1*s3-c1*c3*s2; + mat[7] = c1*s2*s3+c3*s1; + mat[8] = c1*c2; + + double transX, transY, transZ; + transX = transY = transZ = 0.0; + + mouseRotX += rotx; + mouseRotY -= roty; + mouseRotZ -= rotz; + + if (mouseRotX < -90) mouseRotX=-90; + else if (mouseRotX > 90) mouseRotX=90; + if (mouseRotY > 360) mouseRotY-=360; + else if (mouseRotY < 0) mouseRotY+=360; + if (mouseRotZ > 360) mouseRotZ-=360; + else if (mouseRotZ < 0) mouseRotZ+=360; + + transX += x * mat[0] + y * mat[3] + z * mat[6]; + transY += x * mat[1] + y * mat[4] + z * mat[7]; + transZ += x * mat[2] + y * mat[5] + z * mat[8]; + + + X += transX; + Y += transY; + Z += transZ; + haveToUpdate = 1; + +} + +void KeyboardFunc(int key, bool control, bool alt, bool shift) { + double stepsize = movementSpeed; + if (shift) stepsize *= 10.0; + if (control) stepsize *= 0.1; + + double rotsize = 0.2 * stepsize; + + switch (key) { + case 'w': + case 'W': + moveCamera(0,0,stepsize,0,0,0); + break; + case 'a': + case 'A': + moveCamera(stepsize,0,0,0,0,0); + break; + case 's': + case 'S': + moveCamera(0,0,-stepsize,0,0,0); + break; + case 'd': + case 'D': + moveCamera(-stepsize,0,0,0,0,0); + break; + case 'c': + case 'C': + moveCamera(0,stepsize,0,0,0,0); + break; + case 32: // WXK_SPACE + moveCamera(0,-stepsize,0,0,0,0); + break; + case 314: // WXK_LEFT + moveCamera(0,0,0,0,rotsize,0); + break; + case 315: // WXK_UP + moveCamera(0,0,0,rotsize,0,0); + break; + case 316: // WXK_RIGHT + moveCamera(0,0,0,0,-rotsize,0); + break; + case 317: // WXK_DOWN + moveCamera(0,0,0,-rotsize,0,0); + break; + case 'q': + case 'Q': + case 366: // WXK_PAGEUP + moveCamera(0,0,0,0,0,rotsize); + break; + case 'e': + case 'E': + case 367: // WXK_PAGEDOWN + moveCamera(0,0,0,0,0,-rotsize); + break; + case 'f': + if (!fullscreen) { + fullscreen = true; + glutFullScreen(); + } else { + fullscreen = false; + glutReshapeWindow(current_width, current_height); + } + break; + default: + break; + } +} + +void CallBackMouseMotionFunc(int x, int y) { + double deltaMouseX = x - mouseNavX; + double deltaMouseY = mouseNavY - y; + mouseNavX = x; + mouseNavY = y; + + if(cameraNavMouseMode == 1) { + if( mouseNavButton == GLUT_RIGHT_BUTTON){ + if ( showTopView ) { + deltaMouseX *= 5; + deltaMouseY *= 5; + } + deltaMouseX *= movementSpeed/10.0; // moving 10 pixels is equivalent to one key stroke + deltaMouseY *= movementSpeed/10.0; + moveCamera(deltaMouseX, deltaMouseY, 0, 0,0,0); + } else if( mouseNavButton == GLUT_MIDDLE_BUTTON ){ + if ( !showTopView ) { + deltaMouseY *= -5; + } + deltaMouseX *= movementSpeed/10.0; // moving 10 pixels is equivalent to one key stroke + deltaMouseY *= movementSpeed/10.0; + moveCamera(deltaMouseX, 0, deltaMouseY, 0,0,0); + } else if ( mouseNavButton == GLUT_LEFT_BUTTON ){ + moveCamera(0, 0, 0, deltaMouseY,deltaMouseX,0); + } else { + return; + } + } else { + selectPoints(x,y); + } +} + + + +void initScreenWindow() +{ + // init display + glutInitDisplayMode(GLUT_DEPTH | GLUT_RGBA | GLUT_DOUBLE); + + // define the window position and size + glutInitWindowPosition(START_X, START_Y); + glutInitWindowSize( START_WIDTH, START_HEIGHT ); + + // create window and append callback functions + window_id = glutCreateWindow("3D_Viewer"); + + glutDisplayFunc( CallBackDisplayFunc ); + glutReshapeFunc( CallBackReshapeFunc ); + + glutMouseFunc ( CallBackMouseFunc ); + glutKeyboardFunc ( CallBackKeyboardFunc); + glutKeyboardUpFunc ( CallBackKeyboardUpFunc); + glutMotionFunc ( CallBackMouseMotionFunc); + glutSpecialFunc ( CallBackSpecialFunc); + // glutEntryFunc ( CallBackEntryFunc); + GLUI_Master.set_glutReshapeFunc( CallBackReshapeFunc ); + GLUI_Master.set_glutIdleFunc( CallBackIdleFunc ); + + update_view_rotate(0); + glClearColor(0.0, 0.0, 0.0, 0.0); + // glClearColor(1.0, 1.0, 1.0, 1.0); +} + + +/* +++++++++-------------++++++++++++ + * NAME + * glDumpWindowPPM + * DESCRIPTION + * writes an ppm file of the window + * content + * PARAMETERS + * filename + * RESULT + * writes the framebuffer content + * to a ppm file ++++++++++-------------++++++++++++ */ +void glDumpWindowPPM(const char *filename, GLenum mode) +{ + int win_height, win_width; + int i,j,k,l; // Counter variables + GLubyte *buffer; // The GL Frame Buffer + unsigned char *ibuffer; // The PPM Output Buffer + ofstream fp; // The PPM File + + GLint viewport[4]; + glGetIntegerv(GL_VIEWPORT, viewport); + win_height = viewport[3]; + win_width = viewport[2]; + + // Allocate memory for the the frame buffer and output buffer + buffer = new GLubyte[win_width * win_height * RGBA]; + ibuffer = new unsigned char[win_width * win_height * RGB]; + + // Read window contents from GL frame buffer with glReadPixels + glFinish(); + glReadBuffer(buffermode); + glReadPixels(0, 0, win_width, win_height, + GL_RGBA, GL_UNSIGNED_BYTE, buffer); + + // Open the output file + fp.open(filename, ios::out); + + // Write a proper P6 PPM header + fp << "P6" << endl << "# CREATOR: 3D_Viewer by Andreas Nuechter, University of Osnabrueck" + << endl << win_width << " " << win_height << " " << UCHAR_MAX << endl; + + // Loop through the frame buffer data, writing to the PPM file. Be careful + // to account for the frame buffer having 4 bytes per pixel while the + // output file has 3 bytes per pixel + l = 0; + for (i = 0; i < win_height; i++) { // For each row + for (j = 0; j < win_width; j++) { // For each column + for (k = 0; k < RGB; k++) { // For each RGB component + //cout << (RGBA*((win_height-1-i)*win_width+j)+k) << endl; + ibuffer[l++] = (unsigned char) + *(buffer + (RGBA*((win_height-1-i)*win_width+j)+k)); + } // end RGB + } // end column + } // end row + + // to make a video do: + // for f in *ppm ; do convert -quality 100 $f `basename $f ppm`jpg; done + // mencoder "mf://*.jpg" -mf fps=10 -o test.avi -ovc lavc -lavcopts vcodec=msmpeg4v2:vbitrate=800 + // Write output buffer to the file */ + fp.write((const char*)ibuffer, sizeof(unsigned char) * (RGB * win_width * win_height)); + fp.close(); + fp.clear(); + delete [] buffer; + delete [] ibuffer; +} + +/* +++++++++-------------++++++++++++ + * NAME + * glDumpWindowPPM + * DESCRIPTION + * writes an ppm file of the window + * content + * size is scale times the window size + * PARAMETERS + * filename + * RESULT + * writes the framebuffer content + * to a ppm file ++++++++++-------------++++++++++++ */ +void glWriteImagePPM(const char *filename, int scale, GLenum mode) +{ + //if(!showTopView) { + int m,o,k; // Counter variables + // Get viewport parameters + double left, right, top, bottom; + double tmp = 1.0/tan(rad(cangle)/2.0); + + // Save camera parameters + GLdouble savedMatrix[16]; + glGetDoublev(GL_PROJECTION_MATRIX,savedMatrix); + GLdouble savedModel[16]; + glGetDoublev(GL_MODELVIEW_MATRIX,savedModel); + //glMatrixMode(GL_PROJECTION); + //glPushMatrix(); + //glMatrixMode(GL_MODELVIEW); + //glPushMatrix(); + top = 1.0/tmp; + bottom = -top; + right = (aspect)/tmp; + left = -right; + + double part_height, part_width; + if(!showTopView) { + part_width = (right - left)/(double)scale; + part_height = (top - bottom)/(double)scale; + } else { + part_height = (2*pzoom)/scale; + part_width = (2*pzoom*aspect)/scale; + cout << part_width << " " << part_height << endl; + } + // Calculate part parameters + GLint viewport[4]; + glGetIntegerv(GL_VIEWPORT, viewport); + int win_width = viewport[2]; + int win_height = viewport[3]; + int image_width = scale * win_width; + int image_height = scale * win_height; + + // Allocate memory for the the frame buffer and output buffer + GLubyte *buffer; // The GL Frame Buffer + unsigned char *ibuffer; // The PPM Output Buffer + buffer = new GLubyte[win_width * win_height * RGBA]; + ibuffer = new unsigned char[image_width * image_height * RGB]; + + smallfont = (scale==1); + double height; + if(!showTopView) { + height = bottom; + } else { + height = -pzoom; + } + for(int i = 0; i < scale; i++) { + double width; + if(!showTopView) { + width = left; + } else { + width = -pzoom*aspect; + } + for(int j = 0; j < scale; j++) { + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + label = false; + if(!showTopView) { + glFrustum(neardistance*width, neardistance*(width + part_width), + neardistance*(height), + neardistance*(height + part_height), + neardistance, fardistance); + glMatrixMode(GL_MODELVIEW); + if(i==0 && j==0) { + label = true; + } + DisplayItFunc(mode); + } else { + glOrtho( width, width + part_width, + height, height + part_height, + 1.0, 32000.0 ); + glMatrixMode(GL_MODELVIEW); + if(i==0 && j==0) { + label = true; + } + DisplayItFunc(mode); + } + + // Read window contents from GL frame buffer with glReadPixels + glFinish(); + glReadBuffer(buffermode); + glReadPixels(0, 0, win_width, win_height, GL_RGBA, GL_UNSIGNED_BYTE, buffer); + + // Loop through the frame buffer data, writing to the PPM file. Be careful + // to account for the frame buffer having 4 bytes per pixel while the + // output file has 3 bytes per pixel + // end row + for (m = 0; m < win_height; m++) { // For each row + for (o = 0; o < win_width; o++) { // For each column + for (k = 0; k < RGB; k++) { // For each RGB component + int l = (k+RGB*(image_width*((scale - 1 - i)*win_height + m) + j*win_width + o)); + ibuffer[l] = (unsigned char) *(buffer + (RGBA*((win_height-1-m)*win_width+o)+k)); + } // end RGB + } // end column + } + width += part_width; + } + height += part_height; + } + + // show the starting scene + + // Restore the original projection matrix + glMatrixMode(GL_PROJECTION); + glLoadMatrixd(savedMatrix); + glMatrixMode(GL_MODELVIEW); + glLoadMatrixd(savedModel); + // show the rednered scene + label = true; + smallfont = true; + haveToUpdate=2; + DisplayItFunc(mode); + + ofstream fp; // The PPM File + + // Open the output file + fp.open(filename, ios::out); + + // Write a proper P6 PPM header + fp << "P6" << endl << "# CREATOR: 3D_Viewer by Dorit Borrmann, Jacobs University Bremen gGmbH" + << endl << image_width << " " << image_height << " " << UCHAR_MAX << endl; + + // Write output buffer to the file + fp.write((const char*)ibuffer, sizeof(unsigned char) * (RGB * image_width * image_height)); + fp.close(); + fp.clear(); + delete [] buffer; + delete [] ibuffer; +} + +/** Reshape Function + * TODO: have to describe it. + * + */ +void CallBackReshapeFunc(int width, int height) +{ + if (!fullscreen) { + current_height = height; + current_width = width; + } + aspect = (double)width/(double)height; + if (!showTopView) { + // usage of the vsize of a structiewport + glViewport(0, 0, (GLint)width, (GLint)height); + + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + + // angle, aspect, near clip, far clip + // get matrix + gluPerspective(cangle, aspect, neardistance, fardistance); + + // now use modelview-matrix as current matrix + glMatrixMode(GL_MODELVIEW); + + haveToUpdate = 1; + + } else { + + // usage of the viewport + glViewport ( 0, 0, width, height); + + glMatrixMode ( GL_PROJECTION ); + glLoadIdentity (); + + // get matrix + glOrtho ( -aspect * pzoom, aspect * pzoom, + -1 * pzoom, pzoom, + 1.0, 32000.0 ); + + // now use modelview-matrix as current matrix + glMatrixMode(GL_MODELVIEW); + + haveToUpdate = 1; + + } + // glDepthMask(false); + glEnable(GL_BLEND); // TODO + glBlendFunc(GL_ONE, GL_ZERO); // TODO + // glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); // TODO + // glBlendFunc(GL_ONE, GL_ONE); // TODO + // glBlendFunc(GL_SRC_COLOR, GL_DST_COLOR); + glHint(GL_POINT_SMOOTH_HINT, GL_NICEST); + // TODO glDepthFunc(GL_LEQUAL); + glDepthFunc(GL_LESS); //TODO + glEnable(GL_DEPTH_TEST); + glEnable (GL_POINT_SMOOTH); +} + +/** + * Prints out which points were clicked on + */ +void ProcessHitsFunc(GLint hits, GLuint buffer[]) +{ + //cout << "SIZE " << selected_points[0].size() << endl; + //cout << "processing " << endl; + set names; + set unsel_points; + + GLuint *ptr, nr_names; + + ptr = (GLuint *)buffer; + + for(int i = 0 ; i < hits ; i++) { + nr_names = *ptr; + ptr+=3; // skip 2 z values + for(unsigned int j = 0;j < nr_names ; j++){ // iterate over all names + names.insert(*ptr); + + ptr++; + } + } + //cout << "number of names " << names.size() << endl; + if (names.empty()) return; + + int index = 0; + set::iterator nit = names.begin(); + // find the respective name + + for(int iterator = (int)octpts.size()-1; iterator >= 0; iterator--) { + // iterate over the selected points as in DrawPoints + for ( set::iterator it = selected_points[iterator].begin(); + it != selected_points[iterator].end(); it++) { + if (index == *nit) { // if the current index is the current name + unsel_points.insert(*it); + nit++; + } + if (nit == names.end()) goto Done; // break out of the loop + index++; + } + } + + Done: + + cout << "Erasing " << endl; + for (set::iterator it = unsel_points.begin(); + it != unsel_points.end(); it++) { // iterate to the index as indicated by the name *ptr + for(int iterator = (int)octpts.size()-1; iterator >= 0; iterator--) { // erase for all scans + selected_points[iterator].erase(*it); + } + } + + + cout << "processing done" << endl; + +} + + +//------------------------------------------------------------------ +/** + * This function deals with all our keyboard activities + */ + +void InterfaceFunc(unsigned char key){ + + strncpy(path_file_name, path_filename_edit->get_text(), 1024); + strncpy(pose_file_name, pose_filename_edit->get_text(), 1024); + return; +} + + +void CallBackSpecialFunc(int key , int x, int y) { + //KeyboardFunc(key + 214, false, false, false); + // return; +} + +/** + * Function drawRobotPath + * \brief This functions draws the path where the + * robot has travelled along while taking the scans + */ +void drawRobotPath(int dummy){ + // clear the camera list as we are going to add the cameras + // in the path where the robot travelled. + + // lets loop through the entire frame files to extract the + // total number of places where the robot has taken the scans from + for(unsigned int i = 0; i < MetaMatrix.size(); i++){ + //temp variable + double *temp; + // Now, lets go to the last of each frame file to + // extract the transformation matrix obtained + // after scan matching has been done. + glMultMatrixd(MetaMatrix[i].back()); + + // temp is final transformation matrix + temp = MetaMatrix[i].back(); + + Point campos(temp[12], temp[13] + 100, temp[14]); + + // calculate lookat point + Point lookat(0, 0, 50); + Point up(0, 50, 0); + double tmat[16]; + for (int i =0;i<16;i++) tmat[i] = temp[i]; + lookat.transform(tmat); + lookat.x = lookat.x ; + lookat.y = lookat.y + 100; + lookat.z = lookat.z ; + + up.transform(tmat); + up.x = up.x ; + up.y = up.y + 100; + up.z = up.z ; + + cams.push_back(campos); + lookats.push_back(lookat); + ups.push_back(up); + } + updateCamera(); + + // signal for the update of scene + haveToUpdate = 1; +} + +/** + * Calculates the positions of the interpolated camera path positions on the + * Nurbs path. There will be an equal number of intermediate positions between + * neighboring cameras. + */ +void calcInterpolatedCameras(vector vec1, vector vec2) { + NurbsPath::camRatio.clear(); + double distance = 0.0; + double dx, dy, dz; + for(unsigned int i=0;i vec1, vector vec2) +{ + double distance = 0.0; + double dx, dy, dz; + for(unsigned int i=0;i= 'A' && key <= 'Z') { + keymap[key+ ('a'-'A')] = false; + } + if (key >= 'a' && key <= 'z') { + keymap[key+ ('A'-'a')] = false; + } + + for (unsigned int i = 0; i < 256; i++) { + if (keymap[i]) { + keypressed = true; + return; + } + } + keypressed = false; +} + +void CallBackKeyboardFunc(unsigned char key, int x, int y) { + keymap[key] = true; + keypressed = true; + bool cmd,alt,shift; + cmd = glutGetModifiers() & GLUT_ACTIVE_CTRL; + alt = glutGetModifiers() & GLUT_ACTIVE_ALT; + shift = glutGetModifiers() & GLUT_ACTIVE_SHIFT; + if (cmd) { + key += 96; + } + KeyboardFunc(key, cmd, alt, shift); +} + +void mapColorToValue(int dummy) { + switch (listboxColorVal) { + case 0: + cm->setCurrentType(PointType::USE_HEIGHT); + break; + case 1: + cm->setCurrentType(PointType::USE_REFLECTANCE); + break; + case 2: + cm->setCurrentType(PointType::USE_AMPLITUDE); + break; + case 3: + cm->setCurrentType(PointType::USE_DEVIATION); + break; + case 4: + cm->setCurrentType(PointType::USE_TYPE); + break; + case 5: + cm->setCurrentType(PointType::USE_COLOR); + break; + default: + break; + }; + resetMinMax(0); +} + +void changeColorMap(int dummy) { + ColorMap c; + GreyMap gm; + HSVMap hsv; + SHSVMap shsv; + JetMap jm; + HotMap hot; + DiffMap diff; + + switch (listboxColorMapVal) { + case 0: + // TODO implement no color map + cm->setColorMap(c); + break; + case 1: + cm->setColorMap(gm); + break; + case 2: + cm->setColorMap(hsv); + break; + case 3: + cm->setColorMap(jm); + break; + case 4: + cm->setColorMap(hot); + break; + case 5: + cm->setColorMap(diff); + break; + case 6: + cm->setColorMap(shsv); + break; + default: + break; + } +} + +void minmaxChanged(int dummy) { + cm->setMinMax(mincolor_value, maxcolor_value); +} + +void resetMinMax(int dummy) { + mincolor_value = cm->getMin(); + maxcolor_value = cm->getMax(); + minmaxChanged(0); +} + +void setScansColored(int dummy) { + switch(colorScanVal) { + case 0: + cm->setMode(ScanColorManager::MODE_STATIC); + break; + case 1: + cm->setMode(ScanColorManager::MODE_COLOR_SCAN); + break; + case 2: + cm->setMode(ScanColorManager::MODE_POINT_COLOR); + break; + default: + break; + } +} + + +void changePointMode(int dummy) { + if (dummy == 0) { // always display + if (pointmode != 1) { // standard mode + pointmode = 1; + //never_box->set_int_val(0); + } else { + pointmode = 0; + } + } else if (dummy == 1) { // never display + if (pointmode != -1) { // standard mode + pointmode = -1; + //always_box->set_int_val(0); + } else { + pointmode = 0; + } + } + updatePointModeControls(); +} + + +void callCameraUpdate(int dummy) { + updateCamera(); +} + +void calcPointSequence(vector &sequence, int frameNr) { + sequence.clear(); + vector > dists; + double x,y,z; + + for (unsigned int i = 0; i < octpts.size(); i++) { + // stop at scans that don't have any frames associated with them + if(i >= MetaMatrix.size()) break; + // set usable frame + double* frame; + if((unsigned int)frameNr >= MetaMatrix[i].size()) { + // use last possible frame + frame = MetaMatrix[i].back(); + } else { + frame = MetaMatrix[i][frameNr]; + } + x = frame[12]; + y = frame[13]; + z = frame[14]; + dists.push_back( pair(sqr(X + x) + sqr(Y + y) + sqr(Z + z), i) ); + } + + sort( dists.begin(), dists.end()); + + for (unsigned int i = 0; i < dists.size(); i++) { + sequence.push_back( dists[i].second); + } +} diff --git a/src/show/show_menu.cc b/src/show/show_menu.cc new file mode 100644 index 0000000..d339451 --- /dev/null +++ b/src/show/show_menu.cc @@ -0,0 +1,451 @@ +/* + * show_menu implementation + * + * Copyright (C) Kai Lingemann, Andreas Nuechter + * + * Released under the GPL version 3. + * + */ + +/** + * @file + * @brief Functions for the menu panels of the viewer software + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ +#include "show/colormanager.h" + +// GUI variables + +GLUI *glui1, ///< pointer to the glui window(s) + *glui2; ///< pointer to the glui window(s) + +/** GLUI spinner for the fog */ +GLUI_Spinner *fog_spinner; + +/** GLUI spinner for the point size */ +GLUI_Spinner *ps_spinner; + +/** GLUI spinner for the current angle */ +GLUI_Spinner *cangle_spinner; +/** GLUI spinner for the current angle */ +GLUI_Spinner *pzoom_spinner; +/** GLUI spinner for the factor for the image size */ +GLUI_Spinner *image_spinner; +/** GLUI_Spinner for the depth to select groups of points */ +GLUI_Spinner *depth_spinner; +GLUI_Spinner *brushsize_spinner; +GLUI_Spinner *frame_spinner; +GLUI_Spinner *fps_spinner; +GLUI_Spinner *farplane_spinner; +GLUI_Spinner *nearplane_spinner; +GLUI_Spinner *lod_spinner; + +int window_id_menu1, ///< menue window ids + window_id_menu2; ///< menue window ids + +/** User IDs for callbacks */ +#define BOX_ID 201 +/** User IDs for callbacks */ +#define ENABLE_ID 300 +/** User IDs for callbacks */ +#define DISABLE_ID 301 +/** User IDs for callbacks */ +#define SHOW_ID 302 +/** User IDs for callbacks */ +#define HIDE_ID 303 + +/** Pointer to the panels */ +GLUI_Panel *ground_panel; +/** Pointer to the panels */ +GLUI_Panel *points_panel; +/** Pointer to the panels */ +GLUI_Panel *wireframe_panel; +/** Pointer to the panels */ +GLUI_Panel *path_panel; +/** Pointer to the panels */ +GLUI_Panel *pose_panel; +/** Pointer to the panels */ +GLUI_Panel *selection_panel; +/** Pointer to the panels */ +GLUI_Panel *color_panel; +/** Pointer to the panels */ +GLUI_Panel *camera_panel; +/** Pointer to the panels */ +GLUI_Panel *nav_panel; +/** Pointer to the panels */ +GLUI_Panel *mode_panel; +/** Pointer to the panels */ +GLUI_Panel *settings_panel; +/** Pointer to the panels */ +GLUI_Panel *advanced_panel; +/** Pointer to the button */ +GLUI_Button *button1; +/** Pointer to the edit text box*/ +GLUI_EditText *path_filename_edit; +/** Pointer to the edit text box*/ +GLUI_EditText *pose_filename_edit; +/** Pointer to the edit text box*/ +GLUI_EditText *selection_filename_edit; + +/** Pointer to the rotation button */ +GLUI_Rotation *rotButton; + +/** used for GLUI menue */ +float obj_pos_button[3]; +/** used for GLUI menue */ +GLfloat view_rotate_button[16]; +/** used for GLUI menue */ +GLfloat obj_pos_button_old[3]; + +/** used for GLUI menue */ +GLfloat X_button; +/** used for GLUI menue */ +GLfloat Y_button; +/** used for GLUI menue */ +GLfloat Z_button; +/** GLUI spinner for choosing the camera */ +GLUI_Spinner *cam_spinner; +/** GLUI spinner for choosing the animation delay */ +GLUI_Spinner *anim_spinner; +/** Panel for the camera controls **/ +GLUI_Panel *cam_panel; +/** ListBox for choosing which value to map to a color */ +GLUI_Listbox *value_listbox; +/** ListBox for choosing which color map to use */ +GLUI_Listbox *colormap_listbox; +GLUI_Spinner *mincol_spinner; +GLUI_Spinner *maxcol_spinner; + +/** Checkboxes for changing point display mode **/ +GLUI_Checkbox *always_box; +GLUI_Checkbox *never_box; +/** Checkbox for changing interpolation mode **/ +GLUI_Checkbox *interpol_box; + +/** + * Generate the menu for the application. + * It consists of control and selection menus. + */ +void newMenu() +{ + /*** Create the bottom subwindow ***/ + glui2 = GLUI_Master.create_glui("3D_Viewer - Controls"); + window_id_menu2 = glui2->get_glut_window_id(); + glutSetWindow(window_id_menu2); + + glutPositionWindow(START_X, START_Y + START_HEIGHT + 65); + glutSetWindow(window_id); + glui2->set_main_gfx_window( window_id ); + + settings_panel = glui2->add_panel("Settings: "); + + cangle_spinner = glui2->add_spinner_to_panel(settings_panel, "Apex Angle : ", GLUI_SPINNER_FLOAT, &cangle); + cangle_spinner->set_float_limits( 1.0, 180.0 ); + cangle_spinner->set_speed( 20.0 ); + cangle_spinner->set_float_val(60.0); + cangle_spinner->set_alignment( GLUI_ALIGN_RIGHT ); + + pzoom_spinner = glui2->add_spinner_to_panel(settings_panel, "Parallel Zoom :", GLUI_SPINNER_FLOAT, &pzoom); + pzoom_spinner->set_float_limits( 10.0, 50000.0 ); + pzoom_spinner->set_speed( 5.0 ); + pzoom_spinner->set_float_val(2000.0); + pzoom_spinner->set_alignment( GLUI_ALIGN_RIGHT ); + pzoom_spinner->disable(); + + glui2->add_column( true ); + + mode_panel = glui2->add_panel("Mode: "); + + /****** Top view *****/ + glui2->add_button_to_panel(mode_panel, "Top view", 0, callTopView )->set_alignment( GLUI_ALIGN_CENTER ); + + + /****** Reset button *****/ + glui2->add_button_to_panel(mode_panel, "Reset position", 0, resetView )->set_alignment( GLUI_ALIGN_CENTER ); + glui2->add_column( true ); + + /****** Add Camera View *****/ + + + camera_panel = glui2->add_panel("Camera: "); + cam_spinner = glui2->add_spinner_to_panel(camera_panel, "Choose Camera", GLUI_SPINNER_INT, &cam_choice); + cam_spinner->set_int_limits( 0, 0 ); + cam_spinner->set_speed( 1 ); + cam_spinner->set_alignment( GLUI_ALIGN_LEFT ); + + glui2->add_button_to_panel(camera_panel, "Add Camera", 1, callAddCamera )->set_alignment( GLUI_ALIGN_CENTER ); + glui2->add_button_to_panel(camera_panel, "Delete Camera", 0, callDeleteCamera )->set_alignment( GLUI_ALIGN_CENTER ); + + /******* Other navigation controls**********/ + glui2->add_column(true); + + nav_panel = glui2->add_panel("Navigation: "); + rotButton = glui2->add_rotation_to_panel(nav_panel, "Rotation", view_rotate_button, -1, update_view_rotate); + + glui2->add_column_to_panel(nav_panel, true ); + glui2->add_translation_to_panel(nav_panel, "Move XY", GLUI_TRANSLATION_XY, + obj_pos_button, -1, update_view_translation); + + glui2->add_column_to_panel(nav_panel, false ); + glui2->add_translation_to_panel(nav_panel, "Move X", GLUI_TRANSLATION_X, + &obj_pos_button[0], -1, update_view_translation); + + glui2->add_column_to_panel(nav_panel, false ); + glui2->add_translation_to_panel(nav_panel, "Move Y", GLUI_TRANSLATION_Y, + &obj_pos_button[1], -1, update_view_translation); + + glui2->add_column_to_panel(nav_panel, false ); + glui2->add_translation_to_panel(nav_panel, "Move Z", GLUI_TRANSLATION_Z, + &obj_pos_button[2], -1, update_view_translation); + + glui2->add_column_to_panel(nav_panel, false); + glui2->add_checkbox_to_panel(nav_panel, "MouseNav", &cameraNavMouseMode ); + + static int dummy4; + always_box = glui2->add_checkbox_to_panel(nav_panel, "Always all Points", &dummy4, 0, &changePointMode); + glui2->set_glutMouseFunc(CallBackMouseFuncMoving); + static int dummy5 = 1; + never_box = glui2->add_checkbox_to_panel(nav_panel, "Always reduce Points", &dummy5, 1, &changePointMode ); + + /*** Create the right subwindow ***/ + glui1 = GLUI_Master.create_glui("3D_Viewer - Selection"); + window_id_menu1 = glui1->get_glut_window_id(); + glutSetWindow(window_id_menu1); + glutPositionWindow(START_X + START_WIDTH + 50, START_Y + 30); + glutSetWindow(window_id); + glui1->set_main_gfx_window( window_id ); + + glui1->add_checkbox( "Draw Points", &show_points ); + glui1->add_checkbox( "Draw Camera", &show_cameras); + glui1->add_checkbox( "Draw Path", &show_path); + ps_spinner = glui1->add_spinner( "Point Size:", GLUI_SPINNER_FLOAT, &pointsize); + ps_spinner->set_float_limits( 0.0000001, 10.0 ); + ps_spinner->set_speed( 25.0 ); + ps_spinner->set_float_val(pointsize); + ps_spinner->set_alignment( GLUI_ALIGN_LEFT ); + + + /**** Fog Panel *****/ + + GLUI_Panel *fogt_panel = glui1->add_rollout("Fog :", false ); + fogt_panel ->set_alignment( GLUI_ALIGN_LEFT ); + GLUI_RadioGroup *fogt = glui1-> add_radiogroup_to_panel( fogt_panel, &show_fog ); + glui1->add_radiobutton_to_group( fogt, "No Fog" ); + glui1->add_radiobutton_to_group( fogt, "Fog Exp" ); + glui1->add_radiobutton_to_group( fogt, "Fog Exp2" ); + glui1->add_radiobutton_to_group( fogt, "Fog Linear" ); + glui1->add_radiobutton_to_group( fogt, "inverted Fog Exp" ); + glui1->add_radiobutton_to_group( fogt, "inverted Fog Exp2" ); + glui1->add_radiobutton_to_group( fogt, "inverted Fog Linear" ); + + + + + fog_spinner = glui1->add_spinner( "Fog Density:", GLUI_SPINNER_FLOAT, &fogDensity); + fog_spinner->set_float_limits( 0.0, 1.0 ); + fog_spinner->set_speed( 0.5 ); + fog_spinner->set_float_val(0.001); + fog_spinner->set_alignment( GLUI_ALIGN_LEFT ); + + + /****** Color Controls *****/ + color_panel = glui1->add_rollout("Color :", false ); + color_panel ->set_alignment( GLUI_ALIGN_LEFT ); + + GLUI_Panel *color_ro = glui1->add_rollout_to_panel(color_panel, "Color values:", false); + color_ro->set_alignment(GLUI_ALIGN_LEFT); + + GLUI_RadioGroup *color_rog = glui1->add_radiogroup_to_panel( color_ro, &listboxColorVal, 0, &mapColorToValue ); + glui1->add_radiobutton_to_group( color_rog, "height"); + GLUI_RadioButton *rbrefl = glui1->add_radiobutton_to_group( color_rog, "reflectance"); + GLUI_RadioButton *rbampl = glui1->add_radiobutton_to_group( color_rog, "amplitude"); + GLUI_RadioButton *rbdevi = glui1->add_radiobutton_to_group( color_rog, "deviation"); + GLUI_RadioButton *rbtype = glui1->add_radiobutton_to_group( color_rog, "type"); + //if (!(types & PointType::USE_REFLECTANCE)) rbrefl->disable(); + //if (!(types & PointType::USE_AMPLITUDE)) rbampl->disable(); + //if (!(types & PointType::USE_DEVIATION)) rbdevi->disable(); + //if (!(types & PointType::USE_TYPE)) rbtype->disable(); + if (!(pointtype.hasReflectance())) rbrefl->disable(); + if (!(pointtype.hasAmplitude())) rbampl->disable(); + if (!(pointtype.hasDeviation())) rbdevi->disable(); + if (!(pointtype.hasType())) rbtype->disable(); + + GLUI_Panel *colorm_ro = glui1->add_rollout_to_panel(color_panel, "Colormap:", false); + colorm_ro->set_alignment(GLUI_ALIGN_LEFT); + + GLUI_RadioGroup *colorm_rog = glui1->add_radiogroup_to_panel(colorm_ro, &listboxColorMapVal, 0, &changeColorMap); + glui1->add_radiobutton_to_group(colorm_rog, "Solid"); + glui1->add_radiobutton_to_group(colorm_rog, "Grey"); + glui1->add_radiobutton_to_group(colorm_rog, "HSV"); + glui1->add_radiobutton_to_group(colorm_rog, "Jet"); + glui1->add_radiobutton_to_group(colorm_rog, "Hot"); + glui1->add_radiobutton_to_group(colorm_rog, "Rand"); + glui1->add_radiobutton_to_group(colorm_rog, "SHSV"); + + GLUI_Panel *scans_color = glui1->add_rollout_to_panel(color_panel, "Color type:", false); + scans_color->set_alignment(GLUI_ALIGN_LEFT); + GLUI_RadioGroup *scans_colored = glui1->add_radiogroup_to_panel(scans_color, &colorScanVal, 0, &setScansColored); + glui1->add_radiobutton_to_group(scans_colored, "None"); + glui1->add_radiobutton_to_group(scans_colored, "Id Scans by Color"); + GLUI_RadioButton *colorb = glui1->add_radiobutton_to_group( scans_colored, "Color by Points"); + if (!(pointtype.hasColor())) colorb->disable(); + + mincol_spinner = glui1->add_spinner_to_panel(color_panel, "Min Val:", GLUI_SPINNER_FLOAT, &mincolor_value, 0, &minmaxChanged); + mincol_spinner->set_alignment(GLUI_ALIGN_RIGHT); + maxcol_spinner = glui1->add_spinner_to_panel(color_panel, "Max Val:", GLUI_SPINNER_FLOAT, &maxcolor_value, 0, &minmaxChanged); + maxcol_spinner->set_alignment(GLUI_ALIGN_RIGHT); + glui1->add_button_to_panel(color_panel, "Reset Min/Max", 0, &resetMinMax )->set_alignment( GLUI_ALIGN_CENTER ); + + glui1->add_separator(); + + /****** Invert button *****/ + glui1->add_button( "Invert", 0, invertView )->set_alignment( GLUI_ALIGN_CENTER ); + /****** Animate button *****/ + anim_spinner = glui1->add_spinner( "Anim delay:", GLUI_SPINNER_INT, &anim_delay); + anim_spinner->set_int_limits( 0, 100 ); + anim_spinner->set_speed( 1 ); + glui1->add_button( "Animate", 0, startAnimation )->set_alignment( GLUI_ALIGN_CENTER ); + + glui1->add_separator(); + + +/**** Path panel *******/ + + path_panel = glui1->add_rollout("Camera Path :", false ); + path_panel ->set_alignment( GLUI_ALIGN_LEFT ); + path_filename_edit = glui1->add_edittext_to_panel(path_panel,"File: ",GLUI_EDITTEXT_TEXT, path_file_name); + path_filename_edit->set_alignment( GLUI_ALIGN_LEFT ); + glui1->add_button_to_panel(path_panel, "Save Path ", 0, savePath)->set_alignment( GLUI_ALIGN_CENTER); + glui1->add_button_to_panel(path_panel, "Load Path ", 0, loadPath)->set_alignment( GLUI_ALIGN_CENTER); + glui1->add_button_to_panel(path_panel, "Load Robot P.", 0, drawRobotPath )->set_alignment( GLUI_ALIGN_CENTER ); + glui1->add_separator_to_panel(path_panel); + glui1->add_checkbox_to_panel(path_panel, "Save Animation", &save_animation); + interpol_box = glui1->add_checkbox_to_panel(path_panel, "Interpolate by Distance", &inter_by_dist, -1, &callCameraUpdate); + //always_box = glui2->add_checkbox_to_panel(nav_panel, "Always all Points", &dummy4, 0, &changePointMode); + //glui1->add_checkbox_to_panel(path_panel, "Interpolate by Distance", &inter_by_dist); + glui1->add_button_to_panel(path_panel, "Animate Path", 0, pathAnimate)->set_alignment( GLUI_ALIGN_CENTER); + + /**** Position panel *******/ + + pose_panel = glui1->add_rollout("Position :", false ); + pose_panel ->set_alignment( GLUI_ALIGN_LEFT ); + pose_filename_edit = glui1->add_edittext_to_panel(pose_panel,"File: ",GLUI_EDITTEXT_TEXT, pose_file_name); + pose_filename_edit->set_alignment( GLUI_ALIGN_LEFT ); + glui1->add_button_to_panel(pose_panel, "Save Pose ", 0, savePose)->set_alignment( GLUI_ALIGN_CENTER); + glui1->add_button_to_panel(pose_panel, "Load Pose ", 0, loadPose)->set_alignment( GLUI_ALIGN_CENTER); + image_spinner = glui1->add_spinner_to_panel(pose_panel, "Factor : ", +GLUI_SPINNER_INT, &factor); + image_spinner->set_int_limits( 1, 10 ); + image_spinner->set_speed( 1 ); + image_spinner->set_alignment(GLUI_ALIGN_RIGHT); + glui1->add_button_to_panel(pose_panel, "Save Image ", 0, saveImage)->set_alignment( GLUI_ALIGN_CENTER); + + + glui1->add_separator(); + + /**** Selection panel ******/ + selection_panel = glui1->add_rollout("Selection :", false ); + selection_panel ->set_alignment( GLUI_ALIGN_LEFT ); + + selection_filename_edit = glui1->add_edittext_to_panel(selection_panel,"File: ",GLUI_EDITTEXT_TEXT, selection_file_name); + selection_filename_edit->set_alignment( GLUI_ALIGN_LEFT ); + glui1->add_button_to_panel(selection_panel, "Save selected points ", 0, saveSelection)->set_alignment( GLUI_ALIGN_CENTER); + + glui1->add_button_to_panel(selection_panel, "Clear selected points ", 0, clearSelection)->set_alignment( GLUI_ALIGN_CENTER); + glui1->add_checkbox_to_panel(selection_panel, "Select/Unselect", &selectOrunselect); + glui1->add_checkbox_to_panel(selection_panel, "Select Voxels", &select_voxels); + depth_spinner = glui1->add_spinner_to_panel(selection_panel, "Depth : ", + GLUI_SPINNER_INT, &selection_depth); + depth_spinner->set_int_limits( 1, 100 ); + depth_spinner->set_speed( 1 ); + depth_spinner->set_alignment(GLUI_ALIGN_RIGHT); + brushsize_spinner = glui1->add_spinner_to_panel(selection_panel, "Brushsize : ", + GLUI_SPINNER_INT, &brush_size); + brushsize_spinner->set_int_limits( 0, 100 ); + brushsize_spinner->set_speed( 1 ); + brushsize_spinner->set_alignment(GLUI_ALIGN_RIGHT); + + + glui1->add_separator(); + /**** Advanced panel ******/ + if (advanced_controls) { + advanced_panel = glui1->add_rollout("Advanced :", false ); + advanced_panel->set_alignment( GLUI_ALIGN_LEFT ); + + // glui1->add_edittext_to_panel(advanced_panel,"Frame #: ",GLUI_EDITTEXT_TEXT, current_frame)->set_alignment( GLUI_ALIGN_LEFT ); + frame_spinner = glui1->add_spinner_to_panel(advanced_panel, "Frame #: ", + GLUI_SPINNER_INT, ¤t_frame); + frame_spinner->set_int_limits( 0, MetaMatrix[0].size()-1 ); + frame_spinner->set_speed( 10 ); + frame_spinner->set_alignment(GLUI_ALIGN_RIGHT); + + fps_spinner = glui1->add_spinner_to_panel(advanced_panel, "FPS : ", + GLUI_SPINNER_FLOAT, &idealfps); + fps_spinner->set_int_limits( 0, 100 ); + fps_spinner->set_speed( 1 ); + fps_spinner->set_alignment(GLUI_ALIGN_RIGHT); + + farplane_spinner = glui1->add_spinner_to_panel(advanced_panel, "farplane : ", + GLUI_SPINNER_FLOAT, &maxfardistance); + farplane_spinner->set_float_limits( 1, 100000 ); + farplane_spinner->set_speed( 1 ); + farplane_spinner->set_alignment(GLUI_ALIGN_RIGHT); + + nearplane_spinner = glui1->add_spinner_to_panel(advanced_panel, "nearplane : ", + GLUI_SPINNER_FLOAT, &neardistance); + nearplane_spinner->set_int_limits( 1, 100000 ); + nearplane_spinner->set_speed( 1 ); + nearplane_spinner->set_alignment(GLUI_ALIGN_RIGHT); + + glui1->add_button_to_panel(advanced_panel, "Cycle LOD", 0,(GLUI_Update_CB)cycleLOD )->set_alignment( GLUI_ALIGN_CENTER ); + + lod_spinner = glui1->add_spinner_to_panel(advanced_panel, "lod speed : ", + GLUI_SPINNER_FLOAT, &adaption_rate); + lod_spinner->set_float_limits( 0, 3.0 ); + lod_spinner->set_speed( 0.1 ); + lod_spinner->set_alignment(GLUI_ALIGN_RIGHT); + + glui1->add_separator(); + } + + /****** A 'quit' button *****/ + glui1->add_button( "Quit", 0,(GLUI_Update_CB)exit )->set_alignment( GLUI_ALIGN_CENTER ); + + glui1->set_glutMouseFunc(CallBackMouseFuncMoving); + /**** Link windows to GLUI, and register idle callback ******/ + glutSetWindow(window_id); + glui1->set_main_gfx_window( window_id ); // right + glui2->set_main_gfx_window( window_id ); // bottom + glui1->sync_live(); + glui2->sync_live(); + + // cout << "Called : myNewMenu()...."<= 0; iterator--) + selected_points[iterator].clear(); +} + diff --git a/src/show/vertexarray.cc b/src/show/vertexarray.cc new file mode 100644 index 0000000..5d005c7 --- /dev/null +++ b/src/show/vertexarray.cc @@ -0,0 +1,25 @@ +/* + * vertexArray implementation + * + * Copyright (C) Jan Elseberg + * + * Released under the GPL version 3. + * + */ + +#include "show/vertexarray.h" + +GLuint vertexArray::nameCounter = 0; + +vertexArray::vertexArray(int _numPointsToRender) : + numPointsToRender(_numPointsToRender) +{ + array = new GLfloat[numPointsToRender * 3]; + nameCounter++; + name = nameCounter; +} + +vertexArray::~vertexArray() +{ + delete [] array; +} diff --git a/src/show/viewcull.cc b/src/show/viewcull.cc new file mode 100644 index 0000000..bda709e --- /dev/null +++ b/src/show/viewcull.cc @@ -0,0 +1,839 @@ +/* + * viewcull implementation + * + * Copyright (C) Jan Elseberg + * + * Released under the GPL version 3. + * + */ + +/** + * @file + * @brief Frustrum culling routines + * + * @author Jan Elseberg. Automation Group, Jacobs University Bremen gGmbH, Germany. + */ +#include "show/viewcull.h" +#include +#include +#include + +#include +#include +#include "slam6d/globals.icc" + +/** The 6 planes of the viewing frustum */ +float frustum[6][4]; + +/** the modelview * projection matrix to map a model point to an onscreen coordinate */ +float matrix[16]; +/** some useful variables for faster calculation of the pixel coordinates */ +short VP[4]; +/** a unit vector pointing to the right of the screen */ +float right[3]; +/** how much detail is shown, 0 means everything is plotted */ +short DETAIL; + +double SX, SY, SZ, EX, EY, EZ; +float origin[3], dir[3]; /*ray */ +float dist; +int rayX,rayY; +float rayVP[4]; + +void calcRay(int x, int y, double znear, double zfar) { + + GLdouble modelMatrix[16]; + GLdouble projMatrix[16]; + int viewport[4]; + glGetDoublev(GL_MODELVIEW_MATRIX,modelMatrix); + glGetDoublev(GL_PROJECTION_MATRIX,projMatrix); + glGetIntegerv(GL_VIEWPORT,viewport); + + gluUnProject(x, viewport[3]-y, zfar, modelMatrix, projMatrix, viewport, &SX, &SY, &SZ); + gluUnProject(x, viewport[3]-y, znear, modelMatrix, projMatrix, viewport, &EX, &EY, &EZ); + + origin[0] = SX; + origin[1] = SY; + origin[2] = SZ; + dir[0] = EX-SX; + dir[1] = EY-SY; + dir[2] = EZ-SZ; + double t = sqrt( dir[0] * dir[0] + dir[1] * dir[1] + dir[2] * dir[2] ); + dir[0] /= t; + dir[1] /= t; + dir[2] /= t; + + dist = SX * dir[0] + SY * dir[1] + SZ * dir[2]; + rayVP[0] = 0.5*viewport[2]; + rayVP[1] = 0.5*viewport[2] + viewport[0]; + + rayVP[2] = 0.5*viewport[3]; + rayVP[3] = 0.5*viewport[3] + viewport[1]; + rayX = x; + rayY = viewport[3]-y; + + remViewport(); +} + +void remViewport() { + GLdouble modelMatrix[16]; + GLdouble projMatrix[16]; + int viewport[4]; + glGetDoublev(GL_MODELVIEW_MATRIX,modelMatrix); + glGetDoublev(GL_PROJECTION_MATRIX,projMatrix); + glGetIntegerv(GL_VIEWPORT,viewport); + + MMult( projMatrix, modelMatrix, matrix ); + VP[0] = 0.5*viewport[2]; + VP[1] = 0.5*viewport[2] + viewport[0]; + + VP[2] = 0.5*viewport[3]; + VP[3] = 0.5*viewport[3] + viewport[1]; + + right[0] = modelMatrix[0]; + right[1] = modelMatrix[4]; + right[2] = modelMatrix[8]; +} + +void ExtractFrustum(short detail) +{ + DETAIL = detail + 1; + remViewport(); + + float proj[16]; + float modl[16]; + float clip[16]; + float t; + + /* Get the current PROJECTION matrix from OpenGL */ + glGetFloatv( GL_PROJECTION_MATRIX, proj ); + + /* Get the current MODELVIEW matrix from OpenGL */ + glGetFloatv( GL_MODELVIEW_MATRIX, modl ); + + /* Combine the two matrices (multiply projection by modelview) */ + clip[ 0] = modl[ 0] * proj[ 0] + modl[ 1] * proj[ 4] + modl[ 2] * proj[ 8] + modl[ 3] * proj[12]; + clip[ 1] = modl[ 0] * proj[ 1] + modl[ 1] * proj[ 5] + modl[ 2] * proj[ 9] + modl[ 3] * proj[13]; + clip[ 2] = modl[ 0] * proj[ 2] + modl[ 1] * proj[ 6] + modl[ 2] * proj[10] + modl[ 3] * proj[14]; + clip[ 3] = modl[ 0] * proj[ 3] + modl[ 1] * proj[ 7] + modl[ 2] * proj[11] + modl[ 3] * proj[15]; + + clip[ 4] = modl[ 4] * proj[ 0] + modl[ 5] * proj[ 4] + modl[ 6] * proj[ 8] + modl[ 7] * proj[12]; + clip[ 5] = modl[ 4] * proj[ 1] + modl[ 5] * proj[ 5] + modl[ 6] * proj[ 9] + modl[ 7] * proj[13]; + clip[ 6] = modl[ 4] * proj[ 2] + modl[ 5] * proj[ 6] + modl[ 6] * proj[10] + modl[ 7] * proj[14]; + clip[ 7] = modl[ 4] * proj[ 3] + modl[ 5] * proj[ 7] + modl[ 6] * proj[11] + modl[ 7] * proj[15]; + + clip[ 8] = modl[ 8] * proj[ 0] + modl[ 9] * proj[ 4] + modl[10] * proj[ 8] + modl[11] * proj[12]; + clip[ 9] = modl[ 8] * proj[ 1] + modl[ 9] * proj[ 5] + modl[10] * proj[ 9] + modl[11] * proj[13]; + clip[10] = modl[ 8] * proj[ 2] + modl[ 9] * proj[ 6] + modl[10] * proj[10] + modl[11] * proj[14]; + clip[11] = modl[ 8] * proj[ 3] + modl[ 9] * proj[ 7] + modl[10] * proj[11] + modl[11] * proj[15]; + + clip[12] = modl[12] * proj[ 0] + modl[13] * proj[ 4] + modl[14] * proj[ 8] + modl[15] * proj[12]; + clip[13] = modl[12] * proj[ 1] + modl[13] * proj[ 5] + modl[14] * proj[ 9] + modl[15] * proj[13]; + clip[14] = modl[12] * proj[ 2] + modl[13] * proj[ 6] + modl[14] * proj[10] + modl[15] * proj[14]; + clip[15] = modl[12] * proj[ 3] + modl[13] * proj[ 7] + modl[14] * proj[11] + modl[15] * proj[15]; + + /* Extract the numbers for the RIGHT plane */ + frustum[0][0] = clip[ 3] - clip[ 0]; + frustum[0][1] = clip[ 7] - clip[ 4]; + frustum[0][2] = clip[11] - clip[ 8]; + frustum[0][3] = clip[15] - clip[12]; + + /* Normalize the result */ + t = sqrt( frustum[0][0] * frustum[0][0] + frustum[0][1] * frustum[0][1] + frustum[0][2] * frustum[0][2] ); + frustum[0][0] /= t; + frustum[0][1] /= t; + frustum[0][2] /= t; + frustum[0][3] /= t; + + /* Extract the numbers for the LEFT plane */ + frustum[1][0] = clip[ 3] + clip[ 0]; + frustum[1][1] = clip[ 7] + clip[ 4]; + frustum[1][2] = clip[11] + clip[ 8]; + frustum[1][3] = clip[15] + clip[12]; + + /* Normalize the result */ + t = sqrt( frustum[1][0] * frustum[1][0] + frustum[1][1] * frustum[1][1] + frustum[1][2] * frustum[1][2] ); + frustum[1][0] /= t; + frustum[1][1] /= t; + frustum[1][2] /= t; + frustum[1][3] /= t; + + /* Extract the BOTTOM plane */ + frustum[2][0] = clip[ 3] + clip[ 1]; + frustum[2][1] = clip[ 7] + clip[ 5]; + frustum[2][2] = clip[11] + clip[ 9]; + frustum[2][3] = clip[15] + clip[13]; + + /* Normalize the result */ + t = sqrt( frustum[2][0] * frustum[2][0] + frustum[2][1] * frustum[2][1] + frustum[2][2] * frustum[2][2] ); + frustum[2][0] /= t; + frustum[2][1] /= t; + frustum[2][2] /= t; + frustum[2][3] /= t; + + /* Extract the TOP plane */ + frustum[3][0] = clip[ 3] - clip[ 1]; + frustum[3][1] = clip[ 7] - clip[ 5]; + frustum[3][2] = clip[11] - clip[ 9]; + frustum[3][3] = clip[15] - clip[13]; + + /* Normalize the result */ + t = sqrt( frustum[3][0] * frustum[3][0] + frustum[3][1] * frustum[3][1] + frustum[3][2] * frustum[3][2] ); + frustum[3][0] /= t; + frustum[3][1] /= t; + frustum[3][2] /= t; + frustum[3][3] /= t; + + /* Extract the FAR plane */ + frustum[4][0] = clip[ 3] - clip[ 2]; + frustum[4][1] = clip[ 7] - clip[ 6]; + frustum[4][2] = clip[11] - clip[10]; + frustum[4][3] = clip[15] - clip[14]; + + /* Normalize the result */ + t = sqrt( frustum[4][0] * frustum[4][0] + frustum[4][1] * frustum[4][1] + frustum[4][2] * frustum[4][2] ); + frustum[4][0] /= t; + frustum[4][1] /= t; + frustum[4][2] /= t; + frustum[4][3] /= t; + + /* Extract the NEAR plane */ + frustum[5][0] = clip[ 3] + clip[ 2]; + frustum[5][1] = clip[ 7] + clip[ 6]; + frustum[5][2] = clip[11] + clip[10]; + frustum[5][3] = clip[15] + clip[14]; + + /* Normalize the result */ + t = sqrt( frustum[5][0] * frustum[5][0] + frustum[5][1] * frustum[5][1] + frustum[5][2] * frustum[5][2] ); + frustum[5][0] /= t; + frustum[5][1] /= t; + frustum[5][2] /= t; + frustum[5][3] /= t; + +} + + +void ExtractFrustum(float *frust[6]) +{ + remViewport(); + + float proj[16]; + float modl[16]; + float clip[16]; + float t; + + /* Get the current PROJECTION matrix from OpenGL */ + glGetFloatv( GL_PROJECTION_MATRIX, proj ); + + /* Get the current MODELVIEW matrix from OpenGL */ + glGetFloatv( GL_MODELVIEW_MATRIX, modl ); + + /* Combine the two matrices (multiply projection by modelview) */ + clip[ 0] = modl[ 0] * proj[ 0] + modl[ 1] * proj[ 4] + modl[ 2] * proj[ 8] + modl[ 3] * proj[12]; + clip[ 1] = modl[ 0] * proj[ 1] + modl[ 1] * proj[ 5] + modl[ 2] * proj[ 9] + modl[ 3] * proj[13]; + clip[ 2] = modl[ 0] * proj[ 2] + modl[ 1] * proj[ 6] + modl[ 2] * proj[10] + modl[ 3] * proj[14]; + clip[ 3] = modl[ 0] * proj[ 3] + modl[ 1] * proj[ 7] + modl[ 2] * proj[11] + modl[ 3] * proj[15]; + + clip[ 4] = modl[ 4] * proj[ 0] + modl[ 5] * proj[ 4] + modl[ 6] * proj[ 8] + modl[ 7] * proj[12]; + clip[ 5] = modl[ 4] * proj[ 1] + modl[ 5] * proj[ 5] + modl[ 6] * proj[ 9] + modl[ 7] * proj[13]; + clip[ 6] = modl[ 4] * proj[ 2] + modl[ 5] * proj[ 6] + modl[ 6] * proj[10] + modl[ 7] * proj[14]; + clip[ 7] = modl[ 4] * proj[ 3] + modl[ 5] * proj[ 7] + modl[ 6] * proj[11] + modl[ 7] * proj[15]; + + clip[ 8] = modl[ 8] * proj[ 0] + modl[ 9] * proj[ 4] + modl[10] * proj[ 8] + modl[11] * proj[12]; + clip[ 9] = modl[ 8] * proj[ 1] + modl[ 9] * proj[ 5] + modl[10] * proj[ 9] + modl[11] * proj[13]; + clip[10] = modl[ 8] * proj[ 2] + modl[ 9] * proj[ 6] + modl[10] * proj[10] + modl[11] * proj[14]; + clip[11] = modl[ 8] * proj[ 3] + modl[ 9] * proj[ 7] + modl[10] * proj[11] + modl[11] * proj[15]; + + clip[12] = modl[12] * proj[ 0] + modl[13] * proj[ 4] + modl[14] * proj[ 8] + modl[15] * proj[12]; + clip[13] = modl[12] * proj[ 1] + modl[13] * proj[ 5] + modl[14] * proj[ 9] + modl[15] * proj[13]; + clip[14] = modl[12] * proj[ 2] + modl[13] * proj[ 6] + modl[14] * proj[10] + modl[15] * proj[14]; + clip[15] = modl[12] * proj[ 3] + modl[13] * proj[ 7] + modl[14] * proj[11] + modl[15] * proj[15]; + + /* Extract the numbers for the RIGHT plane */ + frust[0][0] = clip[ 3] - clip[ 0]; + frust[0][1] = clip[ 7] - clip[ 4]; + frust[0][2] = clip[11] - clip[ 8]; + frust[0][3] = clip[15] - clip[12]; + + /* Normalize the result */ + t = sqrt( frust[0][0] * frust[0][0] + frust[0][1] * frust[0][1] + frust[0][2] * frust[0][2] ); + frust[0][0] /= t; + frust[0][1] /= t; + frust[0][2] /= t; + frust[0][3] /= t; + + /* Extract the numbers for the LEFT plane */ + frust[1][0] = clip[ 3] + clip[ 0]; + frust[1][1] = clip[ 7] + clip[ 4]; + frust[1][2] = clip[11] + clip[ 8]; + frust[1][3] = clip[15] + clip[12]; + + /* Normalize the result */ + t = sqrt( frust[1][0] * frust[1][0] + frust[1][1] * frust[1][1] + frust[1][2] * frust[1][2] ); + frust[1][0] /= t; + frust[1][1] /= t; + frust[1][2] /= t; + frust[1][3] /= t; + + /* Extract the BOTTOM plane */ + frust[2][0] = clip[ 3] + clip[ 1]; + frust[2][1] = clip[ 7] + clip[ 5]; + frust[2][2] = clip[11] + clip[ 9]; + frust[2][3] = clip[15] + clip[13]; + + /* Normalize the result */ + t = sqrt( frust[2][0] * frust[2][0] + frust[2][1] * frust[2][1] + frust[2][2] * frust[2][2] ); + frust[2][0] /= t; + frust[2][1] /= t; + frust[2][2] /= t; + frust[2][3] /= t; + + /* Extract the TOP plane */ + frust[3][0] = clip[ 3] - clip[ 1]; + frust[3][1] = clip[ 7] - clip[ 5]; + frust[3][2] = clip[11] - clip[ 9]; + frust[3][3] = clip[15] - clip[13]; + + /* Normalize the result */ + t = sqrt( frust[3][0] * frust[3][0] + frust[3][1] * frust[3][1] + frust[3][2] * frust[3][2] ); + frust[3][0] /= t; + frust[3][1] /= t; + frust[3][2] /= t; + frust[3][3] /= t; + + /* Extract the FAR plane */ + frust[4][0] = clip[ 3] - clip[ 2]; + frust[4][1] = clip[ 7] - clip[ 6]; + frust[4][2] = clip[11] - clip[10]; + frust[4][3] = clip[15] - clip[14]; + + /* Normalize the result */ + t = sqrt( frust[4][0] * frust[4][0] + frust[4][1] * frust[4][1] + frust[4][2] * frust[4][2] ); + frust[4][0] /= t; + frust[4][1] /= t; + frust[4][2] /= t; + frust[4][3] /= t; + + /* Extract the NEAR plane */ + frust[5][0] = clip[ 3] + clip[ 2]; + frust[5][1] = clip[ 7] + clip[ 6]; + frust[5][2] = clip[11] + clip[10]; + frust[5][3] = clip[15] + clip[14]; + + /* Normalize the result */ + t = sqrt( frust[5][0] * frust[5][0] + frust[5][1] * frust[5][1] + frust[5][2] * frust[5][2] ); + frust[5][0] /= t; + frust[5][1] /= t; + frust[5][2] /= t; + frust[5][3] /= t; + +} + + + +void myProject(float x, float y, float z, short &Xi ) { + float pn[2]; + // x coordinate on screen, not normalized + pn[0] = x * matrix[0] + y * matrix[4] + z * matrix[8] + matrix[12]; + // normalization + pn[1] = x * matrix[3] + y * matrix[7] + z * matrix[11] + matrix[15]; + + // normalized x coordinate on screen + pn[0] /= pn[1]; + + // true x coordinate in viewport coordinate system + Xi = pn[0]*VP[0] + VP[1]; +} + +int LOD2(float x, float y, float z, float size) +{ + size = sqrt(3*size*size); + + short X1; + short X2; + + // onscreen position of the leftmost point + myProject(x - size*right[0], y - size*right[1], z - size*right[2], X1); + // onscreen position of the rightmost point + myProject(x + size*right[0], y + size*right[1], z + size*right[2], X2); + + if (X1 > X2) { + return (X1-X2); + } else { + return (X2-X1); + } +} + +bool LOD(float x, float y, float z, float size) +{ + size = sqrt(3*size*size); + + short X1; + short X2; + + // onscreen position of the leftmost point + myProject(x - size*right[0], y - size*right[1], z - size*right[2], X1); + // onscreen position of the rightmost point + myProject(x + size*right[0], y + size*right[1], z + size*right[2], X2); + + if (X1 > X2) { + return (X1-X2) > DETAIL; + } else { + return (X2-X1) > DETAIL; + } +} + + +/** + * 0 if not in frustrum + * 1 if partial overlap + * 2 if entirely within frustrum + */ +int CubeInFrustum2( float x, float y, float z, float size ) +{ + int p; + + float xm, xp, ym, yp, zm, zp; + float Fxm, Fxp, Fym, Fyp, Fzm, Fzp; + xm = x - size; + xp = x + size; + ym = y - size; + yp = y + size; + zm = z - size; + zp = z + size; + + for( p = 0; p < 6; p++ ) + { + Fxm = frustum[p][0] * xm; + Fym = frustum[p][1] * ym; + Fzm = frustum[p][2] * zm; + if( Fxm + Fym + Fzm + frustum[p][3] > 0 ) + continue; + + Fxp = frustum[p][0] * xp; + if( Fxp + Fym + Fzm + frustum[p][3] > 0 ) + continue; + + Fyp = frustum[p][1] * yp; + if( Fxm + Fyp + Fzm + frustum[p][3] > 0 ) + continue; + + if( Fxp + Fyp + Fzm + frustum[p][3] > 0 ) + continue; + + Fzp = frustum[p][2] * zp; + if( Fxm + Fym + Fzp + frustum[p][3] > 0 ) + continue; + + if( Fxp + Fym + Fzp + frustum[p][3] > 0 ) + continue; + if( Fxm + Fyp + Fzp + frustum[p][3] > 0 ) + continue; + if( Fxp + Fyp + Fzp + frustum[p][3] > 0 ) + continue; + return 0; + } + + // box is in frustrum, now check wether all corners are within. + // If one is outside return 1 otherwise 2 + for( p = 0; p < 6; p++ ) + { + Fxm = frustum[p][0] * xm; + Fym = frustum[p][1] * ym; + Fzm = frustum[p][2] * zm; + if( Fxm + Fym + Fzm + frustum[p][3] < 0 ) + return 1; + + Fxp = frustum[p][0] * xp; + if( Fxp + Fym + Fzm + frustum[p][3] < 0 ) + return 1; + + Fyp = frustum[p][1] * yp; + if( Fxm + Fyp + Fzm + frustum[p][3] < 0 ) + return 1; + + if( Fxp + Fyp + Fzm + frustum[p][3] < 0 ) + return 1; + + Fzp = frustum[p][2] * zp; + if( Fxm + Fym + Fzp + frustum[p][3] < 0 ) + return 1; + + if( Fxp + Fym + Fzp + frustum[p][3] < 0 ) + return 1; + if( Fxm + Fyp + Fzp + frustum[p][3] < 0 ) + return 1; + if( Fxp + Fyp + Fzp + frustum[p][3] < 0 ) + return 1; + } + return 2; + +} + +/* +char PlaneAABB( float x, float y, float z, float size, float *plane ) +{ + float dist = plane[3]; + + float xm, xp, ym, yp, zm, zp; + float Fxm, Fxp, Fym, Fyp, Fzm, Fzp; + + float dmmm, dpmm, dmpm, dppm, dmmp, dpmp, dmpp, dppp; + xm = x - size; + xp = x + size; + ym = y - size; + yp = y + size; + zm = z - size; + zp = z + size; + + { + Fxm = plane[0] * xm; + Fym = plane[1] * ym; + Fzm = plane[2] * zm; + dmmm = Fxm + Fym + Fzm + dist; + if( dmmm > 0 ) + goto intersects; + + Fxp = plane[0] * xp; + dpmm = Fxp + Fym + Fzm + dist; + if( dpmm > 0 ) + goto intersects; + + Fyp = plane[1] * yp; + dmpm = Fxm + Fyp + Fzm + dist; + if( dmpm > 0 ) + goto intersects; + + dppm = Fxp + Fyp + Fzm + dist; + if( dppm > 0 ) + goto intersects; + + Fzp = plane[2] * zp; + dmmp = Fxm + Fym + Fzp + dist; + if( dmmp > 0 ) + goto intersects; + + dpmp = Fxp + Fym + Fzp + dist; + if( dpmp > 0 ) + goto intersects; + dmpp = Fxm + Fyp + Fzp + dist; + if( dmpp > 0 ) + goto intersects; + dppp = Fxp + Fyp + Fzp + dist; + if( dppp > 0 ) + goto intersects; + return 0; // outside + } + + intersects: + + // cube is inside, determine if plane intersects the cube + { + if( dmmm < 0 ) + return 1; + Fxp = plane[0] * xp; + dpmm = Fxp + Fym + Fzm + dist; + if( dpmm < 0 ) + return 1; + Fyp = plane[1] * yp; + dmpm = Fxm + Fyp + Fzm + dist; + if( dmpm < 0 ) + return 1; + dppm = Fxp + Fyp + Fzm + dist; + if( dppm < 0 ) + return 1; + Fzp = plane[2] * zp; + dmmp = Fxm + Fym + Fzp + dist; + if( dmmp < 0 ) + return 1; + dpmp = Fxp + Fym + Fzp + dist; + if( dpmp < 0 ) + return 1; + dmpp = Fxm + Fyp + Fzp + dist; + if( dmpp < 0 ) + return 1; + dppp = Fxp + Fyp + Fzp + dist; + if( dppp < 0 ) + return 1; + } + + // plane is outside + return 2; + +} +*/ +char PlaneAABB( float x, float y, float z, float size, float *plane ) +{ + float dist = plane[3]; + + float xm, xp, ym, yp, zm, zp; + float Fxm, Fxp, Fym, Fyp, Fzm, Fzp; + + float dmmm, dpmm, dmpm, dppm, dmmp, dpmp, dmpp, dppp; + xm = x - size; + xp = x + size; + ym = y - size; + yp = y + size; + zm = z - size; + zp = z + size; + + Fxm = plane[0] * xm; + Fym = plane[1] * ym; + Fzm = plane[2] * zm; + dmmm = Fxm + Fym + Fzm + dist; + if( dmmm > 0 ) + { + Fxp = plane[0] * xp; + dpmm = Fxp + Fym + Fzm + dist; + if( dpmm < 0 ) + return 1; + Fyp = plane[1] * yp; + dmpm = Fxm + Fyp + Fzm + dist; + if( dmpm < 0 ) + return 1; + dppm = Fxp + Fyp + Fzm + dist; + if( dppm < 0 ) + return 1; + Fzp = plane[2] * zp; + dmmp = Fxm + Fym + Fzp + dist; + if( dmmp < 0 ) + return 1; + dpmp = Fxp + Fym + Fzp + dist; + if( dpmp < 0 ) + return 1; + dmpp = Fxm + Fyp + Fzp + dist; + if( dmpp < 0 ) + return 1; + dppp = Fxp + Fyp + Fzp + dist; + if( dppp < 0 ) + return 1; + return 2; + } + + Fxp = plane[0] * xp; + dpmm = Fxp + Fym + Fzm + dist; + if( dpmm > 0 ) + { + if( dmmm < 0 ) + return 1; + Fyp = plane[1] * yp; + dmpm = Fxm + Fyp + Fzm + dist; + if( dmpm < 0 ) + return 1; + dppm = Fxp + Fyp + Fzm + dist; + if( dppm < 0 ) + return 1; + Fzp = plane[2] * zp; + dmmp = Fxm + Fym + Fzp + dist; + if( dmmp < 0 ) + return 1; + dpmp = Fxp + Fym + Fzp + dist; + if( dpmp < 0 ) + return 1; + dmpp = Fxm + Fyp + Fzp + dist; + if( dmpp < 0 ) + return 1; + dppp = Fxp + Fyp + Fzp + dist; + if( dppp < 0 ) + return 1; + return 2; + } + + Fyp = plane[1] * yp; + dmpm = Fxm + Fyp + Fzm + dist; + if( dmpm > 0 ) + { + if( dmmm < 0 || dpmm < 0 ) + return 1; + dppm = Fxp + Fyp + Fzm + dist; + if( dppm < 0 ) + return 1; + Fzp = plane[2] * zp; + dmmp = Fxm + Fym + Fzp + dist; + if( dmmp < 0 ) + return 1; + dpmp = Fxp + Fym + Fzp + dist; + if( dpmp < 0 ) + return 1; + dmpp = Fxm + Fyp + Fzp + dist; + if( dmpp < 0 ) + return 1; + dppp = Fxp + Fyp + Fzp + dist; + if( dppp < 0 ) + return 1; + return 2; + } + + dppm = Fxp + Fyp + Fzm + dist; + if( dppm > 0 ) + { + if( dmmm < 0 || dpmm < 0 || dmpm < 0 ) + return 1; + Fzp = plane[2] * zp; + dmmp = Fxm + Fym + Fzp + dist; + if( dmmp < 0 ) + return 1; + dpmp = Fxp + Fym + Fzp + dist; + if( dpmp < 0 ) + return 1; + dmpp = Fxm + Fyp + Fzp + dist; + if( dmpp < 0 ) + return 1; + dppp = Fxp + Fyp + Fzp + dist; + if( dppp < 0 ) + return 1; + return 2; + } + + Fzp = plane[2] * zp; + dmmp = Fxm + Fym + Fzp + dist; + if( dmmp > 0 ) + { + if( dmmm < 0 || dpmm < 0 || dmpm < 0 || dppm < 0 ) + return 1; + dpmp = Fxp + Fym + Fzp + dist; + if( dpmp < 0 ) + return 1; + dmpp = Fxm + Fyp + Fzp + dist; + if( dmpp < 0 ) + return 1; + dppp = Fxp + Fyp + Fzp + dist; + if( dppp < 0 ) + return 1; + return 2; + } + + dpmp = Fxp + Fym + Fzp + dist; + if( dpmp > 0 ) + { + if( dmmm < 0 || dpmm < 0 || dmpm < 0 || dppm < 0 || dmmp < 0 ) + return 1; + dmpp = Fxm + Fyp + Fzp + dist; + if( dmpp < 0 ) + return 1; + dppp = Fxp + Fyp + Fzp + dist; + if( dppp < 0 ) + return 1; + return 2; + } + dmpp = Fxm + Fyp + Fzp + dist; + if( dmpp > 0 ) + { + if( dmmm < 0 || dpmm < 0 || dmpm < 0 || dppm < 0 || dmmp < 0 || dpmp < 0 ) + return 1; + dppp = Fxp + Fyp + Fzp + dist; + if( dppp < 0 ) + return 1; + return 2; + } + dppp = Fxp + Fyp + Fzp + dist; + if( dppp > 0 ) + { + if( dmmm < 0 || dpmm < 0 || dmpm < 0 || dppm < 0 || dmmp < 0 || dpmp < 0 || dmpp < 0) + return 1; + return 2; + } + return 0; // outside +} + +int QuadInFrustrum2old( float x, float y, float z, float size ) +{ + int p; + + for( p = 0; p < 6; p++ ) + { + if( frustum[p][0] * (x - size) + frustum[p][1] * (y - size) + frustum[p][2] * (z - size) + frustum[p][3] > 0 ) + continue; + if( frustum[p][0] * (x + size) + frustum[p][1] * (y - size) + frustum[p][2] * (z - size) + frustum[p][3] > 0 ) + continue; + if( frustum[p][0] * (x - size) + frustum[p][1] * (y + size) + frustum[p][2] * (z - size) + frustum[p][3] > 0 ) + continue; + if( frustum[p][0] * (x + size) + frustum[p][1] * (y + size) + frustum[p][2] * (z - size) + frustum[p][3] > 0 ) + continue; + if( frustum[p][0] * (x - size) + frustum[p][1] * (y - size) + frustum[p][2] * (z + size) + frustum[p][3] > 0 ) + continue; + if( frustum[p][0] * (x + size) + frustum[p][1] * (y - size) + frustum[p][2] * (z + size) + frustum[p][3] > 0 ) + continue; + if( frustum[p][0] * (x - size) + frustum[p][1] * (y + size) + frustum[p][2] * (z + size) + frustum[p][3] > 0 ) + continue; + if( frustum[p][0] * (x + size) + frustum[p][1] * (y + size) + frustum[p][2] * (z + size) + frustum[p][3] > 0 ) + continue; + return 0; + } + + // box is in frustrum, now check wether all corners are within. If one is outside return 1 otherwise 2 + for( p = 0; p < 6; p++ ) + { + if( frustum[p][0] * (x - size) + frustum[p][1] * (y - size) + frustum[p][2] * (z - size) + frustum[p][3] < 0 ) + return 1; + if( frustum[p][0] * (x + size) + frustum[p][1] * (y - size) + frustum[p][2] * (z - size) + frustum[p][3] < 0 ) + return 1; + if( frustum[p][0] * (x - size) + frustum[p][1] * (y + size) + frustum[p][2] * (z - size) + frustum[p][3] < 0 ) + return 1; + if( frustum[p][0] * (x + size) + frustum[p][1] * (y + size) + frustum[p][2] * (z - size) + frustum[p][3] < 0 ) + return 1; + if( frustum[p][0] * (x - size) + frustum[p][1] * (y - size) + frustum[p][2] * (z + size) + frustum[p][3] < 0 ) + return 1; + if( frustum[p][0] * (x + size) + frustum[p][1] * (y - size) + frustum[p][2] * (z + size) + frustum[p][3] < 0 ) + return 1; + if( frustum[p][0] * (x - size) + frustum[p][1] * (y + size) + frustum[p][2] * (z + size) + frustum[p][3] < 0 ) + return 1; + if( frustum[p][0] * (x + size) + frustum[p][1] * (y + size) + frustum[p][2] * (z + size) + frustum[p][3] < 0 ) + return 1; + } + return 2; + +} + +bool CubeInFrustum( float x, float y, float z, float size ) +{ + int p; + + float xm, xp, ym, yp, zm, zp; + float Fxm, Fxp, Fym, Fyp, Fzm, Fzp; + xm = x - size; + xp = x + size; + ym = y - size; + yp = y + size; + zm = z - size; + zp = z + size; + + for( p = 0; p < 6; p++ ) + { + Fxm = frustum[p][0] * xm; + Fym = frustum[p][1] * ym; + Fzm = frustum[p][2] * zm; + if( Fxm + Fym + Fzm + frustum[p][3] > 0 ) + continue; + + Fxp = frustum[p][0] * xp; + if( Fxp + Fym + Fzm + frustum[p][3] > 0 ) + continue; + + Fyp = frustum[p][1] * yp; + if( Fxm + Fyp + Fzm + frustum[p][3] > 0 ) + continue; + + if( Fxp + Fyp + Fzm + frustum[p][3] > 0 ) + continue; + + Fzp = frustum[p][2] * zp; + if( Fxm + Fym + Fzp + frustum[p][3] > 0 ) + continue; + + if( Fxp + Fym + Fzp + frustum[p][3] > 0 ) + continue; + if( Fxm + Fyp + Fzp + frustum[p][3] > 0 ) + continue; + if( Fxp + Fyp + Fzp + frustum[p][3] > 0 ) + continue; + return false; + } + return true; +} + + + + +float minB[NUMDIM], maxB[NUMDIM]; /*box */ +float coord[NUMDIM]; /* hit point */ diff --git a/src/show/wxshow.cc b/src/show/wxshow.cc new file mode 100644 index 0000000..ee0dc5c --- /dev/null +++ b/src/show/wxshow.cc @@ -0,0 +1,825 @@ +/* + * wxshow implementation + * + * Copyright (C) Jan Elseberg + * + * Released under the GPL version 3. + * + */ + +#include "show_common.cc" +#include "wx/wx.h" +#include "wx/sizer.h" +#include "wx/glcanvas.h" +#include "show/wxshow.h" +#include "show/selectionframe.h" + + +class SelectionImpl : public Selection { + public: + + SelectionImpl( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxT("Selection"), bool advanced_controls = false, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_FRAME_STYLE|wxTAB_TRAVERSAL ) : Selection(parent, id, title, pos, size, style, advanced_controls) { + + if (pointtype.hasReflectance()) m_choice11->Append(wxT("reflectance")); + if (pointtype.hasAmplitude()) m_choice11->Append(wxT("amplitude")); + if (pointtype.hasDeviation()) m_choice11->Append(wxT("deviation")); + if (pointtype.hasType()) m_choice11->Append(wxT("type")); + + }; + // Virtual event handlers, overide them in your derived class + // + virtual void OnDrawPoints( wxCommandEvent& event ) { + if (event.IsChecked()) { + show_points = true; + } else { + show_points = false; + } + haveToUpdate = 1; + event.Skip(); + } + virtual void OnDrawCameras( wxCommandEvent& event ) + { + if (event.IsChecked()) { + show_cameras = true; + } else { + show_cameras = false; + } + haveToUpdate = 1; + event.Skip(); + } + virtual void OnDrawPaths( wxCommandEvent& event ) + { + if (event.IsChecked()) { + show_path = true; + } else { + show_path = false; + } + haveToUpdate = 1; + event.Skip(); + } + virtual void OnPointSize( wxSpinEvent& event ) + { + pointsize = event.GetPosition(); + haveToUpdate = 1; + event.Skip(); + } + virtual void OnFogChoice( wxCommandEvent& event ) + { + show_fog = event.GetSelection(); + haveToUpdate = 1; + event.Skip(); + } + virtual void OnFogDensity( wxSpinEvent& event ) { + wxSpinCtrlDbl *spinner = (wxSpinCtrlDbl*)event.GetEventObject(); + fogDensity = spinner->GetValue(); + haveToUpdate = 1; + + event.Skip(); + } + virtual void OnColorValue( wxCommandEvent& event ) + { + // we can't use the glui-show function for changing the color as a listbox is used here instead + switch (event.GetSelection()) { + case 0: + cm->setCurrentType(PointType::USE_HEIGHT); + break; + case 1: + if (pointtype.hasReflectance()) { + cm->setCurrentType(PointType::USE_REFLECTANCE); + break; + } + case 2: + if (pointtype.hasAmplitude()) { + cm->setCurrentType(PointType::USE_AMPLITUDE); + break; + } + case 3: + if (pointtype.hasDeviation()) { + cm->setCurrentType(PointType::USE_DEVIATION); + break; + } + case 4: + if (pointtype.hasType()) { + cm->setCurrentType(PointType::USE_TYPE); + break; + } + default: + break; + }; + haveToUpdate = 1; + resetMinMax(0); + event.Skip(); + } + virtual void OnColorMap( wxCommandEvent& event ) + { + listboxColorMapVal = event.GetSelection(); + changeColorMap(0); + haveToUpdate = 1; + event.Skip(); + } + virtual void OnColorType( wxCommandEvent& event ) { + colorScanVal = event.GetSelection(); + setScansColored(0); + haveToUpdate = 1; + event.Skip(); + } + virtual void OnColorMinVal( wxSpinEvent& event ) { + //mincolor_value = event.GetPosition(); + wxSpinCtrlDbl *spinner = (wxSpinCtrlDbl*)event.GetEventObject(); + mincolor_value = spinner->GetValue(); + minmaxChanged(0); + haveToUpdate = 1; + event.Skip(); + } + virtual void OnColorMaxVal( wxSpinEvent& event ) { + //maxcolor_value = event.GetPosition(); + wxSpinCtrlDbl *spinner = (wxSpinCtrlDbl*)event.GetEventObject(); + maxcolor_value = spinner->GetValue(); + minmaxChanged(0); + haveToUpdate = 1; + event.Skip(); + } + virtual void OnColorResetMinMax( wxCommandEvent& event ) { + resetMinMax(0); + haveToUpdate = 1; + event.Skip(); + } + virtual void OnInvert( wxCommandEvent& event ) { + invertView(0); + haveToUpdate = 1; + event.Skip(); + } + virtual void OnAnimDelay( wxSpinEvent& event ) { + anim_delay = event.GetPosition(); + event.Skip(); + } + virtual void OnAnimate( wxCommandEvent& event ) { + startAnimation(0); + event.Skip(); + } + virtual void OnCameraFile( wxCommandEvent& event ) { + wxString s = event.GetString(); + const wxCharBuffer buffer = wxString(event.GetString()).mb_str(wxConvISO8859_1); + const char* cc = buffer.data(); + strcpy(path_file_name, cc); + event.Skip(); + } + virtual void OnCameraSavePath( wxCommandEvent& event ) { + savePath(0); + event.Skip(); + } + virtual void OnCameraLoadPath( wxCommandEvent& event ) { + loadPath(0); + event.Skip(); + } + virtual void OnCameraLoadRobotPath( wxCommandEvent& event ) { + for(unsigned int i = 0; i < MetaMatrix.size(); i++){ + //temp variable + double *temp; + //Now, lets go to the last of each frame file to + //extract the transformation matrix obtained + //after scan matching has been done. + glMultMatrixd(MetaMatrix[i].back()); + + //temp is final transformation matrix + temp = MetaMatrix[i].back(); + + Point campos(temp[12], temp[13] + 100, temp[14]); + + // calculate lookat point + Point lookat(0, 0, 50); + Point up(0, 50, 0); + double tmat[16]; + for (int i =0;i<16;i++) tmat[i] = temp[i]; + lookat.transform(tmat); + lookat.x = lookat.x ; + lookat.y = lookat.y + 100; + lookat.z = lookat.z ; + + up.transform(tmat); + up.x = up.x ; + up.y = up.y + 100; + up.z = up.z ; + + cams.push_back(campos); + lookats.push_back(lookat); + ups.push_back(up); + } + //signal for the update of scene + haveToUpdate = 1; + event.Skip(); + } + virtual void OnSaveAnimation( wxCommandEvent& event ) { + if (event.IsChecked()) { + save_animation = true; + } else { + save_animation = false; + } + haveToUpdate = 1; + event.Skip(); + } + virtual void OnAnimatePath( wxCommandEvent& event ) { + pathAnimate(0); + event.Skip(); + } + virtual void OnPositionFile( wxCommandEvent& event ) { + wxString s = event.GetString(); + const wxCharBuffer buffer = wxString(event.GetString()).mb_str(wxConvISO8859_1); + const char* cc = buffer.data(); + strcpy(pose_file_name, cc); + event.Skip(); + } + virtual void OnPositionSave( wxCommandEvent& event ) { + savePose(0); + event.Skip(); + } + virtual void OnPositionLoad( wxCommandEvent& event ) { + loadPose(0); + haveToUpdate = 1; + event.Skip(); + } + virtual void OnFactor( wxSpinEvent& event ) { + factor = event.GetPosition(); + event.Skip(); + } + virtual void OnSaveImage( wxCommandEvent& event ) { + saveImage(0); + event.Skip(); + } + virtual void OnSelectionFile( wxCommandEvent& event ) { + wxString s = event.GetString(); + const wxCharBuffer buffer = wxString(event.GetString()).mb_str(wxConvISO8859_1); + const char* cc = buffer.data(); + strcpy(selection_file_name, cc); + event.Skip(); + } + virtual void OnSelectionSave( wxCommandEvent& event ) { + saveSelection(0); + event.Skip(); + } + virtual void OnSelectionClear( wxCommandEvent& event ) { + clearSelection(0); + event.Skip(); + } + virtual void OnSelectionSU( wxCommandEvent& event ) { + if (event.IsChecked()) { + selectOrunselect = true; + } else { + selectOrunselect = false; + } + event.Skip(); + } + virtual void OnSelectionSV( wxCommandEvent& event ) { + if (event.IsChecked()) { + select_voxels = true; + } else { + select_voxels = false; + } + event.Skip(); + } + virtual void OnSelectionDepth( wxSpinEvent& event ) { + selection_depth = event.GetPosition(); + event.Skip(); + } + virtual void OnSelectionBrushsize( wxSpinEvent& event ) { + brush_size = event.GetPosition(); + event.Skip(); + } + virtual void OnFrameSpinner( wxSpinEvent& event ) { + current_frame = event.GetPosition(); + haveToUpdate = 1; + event.Skip(); + } + virtual void OnFramerateSpinner( wxSpinEvent& event ) { + idealfps = event.GetPosition(); + haveToUpdate = 1; + event.Skip(); + } + virtual void OnFarplaneSpinner( wxSpinEvent& event ) { + maxfardistance = event.GetPosition(); + haveToUpdate = 1; + event.Skip(); + } + virtual void OnNearplaneSpinner( wxSpinEvent& event ) { + neardistance = event.GetPosition(); + haveToUpdate = 1; + event.Skip(); + } + virtual void OnCycleLOD( wxCommandEvent& event ) { + ::cycleLOD(); + haveToUpdate = 1; + event.Skip(); + } + + virtual void OnLODAdaption( wxSpinEvent& event ) { + adaption_rate = ((wxSpinCtrlDbl*)event.GetEventObject())->GetValue(); + haveToUpdate = 1; + event.Skip(); + } + + public: + void updateControls() { + if (!MetaMatrix.empty()) { + frame_spin->SetRange(0, MetaMatrix[0].size()-1); + frame_spin->SetValue(current_frame); + } + m_spinCtrl61->SetValue(mincolor_value); + m_spinCtrl6->SetValue(maxcolor_value); + } + +}; + +class ControlImpl : public Controls { + + public: + + ControlImpl( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxT("Controls"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_FRAME_STYLE|wxTAB_TRAVERSAL ) + : Controls( parent, id, title, pos, size, style ) {} + + virtual void OnApexAngle( wxSpinEvent& event ) { + haveToUpdate = 2; + cangle = ((wxSpinCtrlDbl*)event.GetEventObject())->GetValue(); + event.Skip(); + } + virtual void OnParallelZoom( wxSpinEvent& event ) { + haveToUpdate = 2; + pzoom = ((wxSpinCtrlDbl*)event.GetEventObject())->GetValue(); + event.Skip(); + } + virtual void OnTopView( wxCommandEvent& event ) { + topView(); // TODO update controls + haveToUpdate = 2; + event.Skip(); + } + virtual void OnResetPosition( wxCommandEvent& event ) { + resetView(0); + event.Skip(); + } + virtual void OnChooseCamera( wxSpinEvent& event ) { + cam_choice = event.GetPosition(); + haveToUpdate = 1; + event.Skip(); + } + virtual void OnAddCamera( wxCommandEvent& event ) { + callAddCamera(1); + haveToUpdate = 1; + event.Skip(); + } + virtual void OnDeleteCamera( wxCommandEvent& event ) { + callDeleteCamera(0); + haveToUpdate = 1; + event.Skip(); + } + virtual void OnMouseNav( wxCommandEvent& event ) { + /* + if (event.IsChecked()) { + cameraNavMouseMode = true; + } else { + cameraNavMouseMode = false; + }*/ + // TODO implement secondary navigation procedure + event.Skip(); + } + virtual void OnAlwaysAllPoints( wxCommandEvent& event ) { + changePointMode(0); + haveToUpdate = 1; + event.Skip(); + } + virtual void OnAlwaysReducePoints( wxCommandEvent& event ) { + changePointMode(1); + haveToUpdate = 1; + event.Skip(); + } + + public: + void updateControls() { + apex_spinner->SetValue(cangle); + parallel_spinner->SetValue(pzoom); + + if(showTopView) { + apex_spinner->Disable(); + parallel_spinner->Enable(); + } else { + parallel_spinner->Disable(); + apex_spinner->Enable(); + } + + switch(pointmode) { + case -1: + always_box->SetValue(false); + alwaysred_box->SetValue(true); + break; + case 0: + always_box->SetValue(false); + alwaysred_box->SetValue(false); + break; + case 1: + always_box->SetValue(true); + alwaysred_box->SetValue(false); + break; + } + + + camera_spinner->SetRange(1, cams.size()); + camera_spinner->SetValue(cam_choice); + } +}; + + +class wxShow: public wxApp +{ + virtual bool OnInit(); + + SelectionImpl *selection; + ControlImpl *controls; + + wxFrame *frame; + BasicGLPane * glPane; +public: + void OnClose(wxCloseEvent& event); + void updateControls(){ + controls->updateControls(); + selection->updateControls(); + } + +}; + + +static wxShow *globalGUI = 0; + +void wxShow::OnClose(wxCloseEvent& event) { + exit(0); +} + +IMPLEMENT_APP(wxShow) + + +bool wxShow::OnInit() +{ + + globalGUI = this; + // wxwidgets saves the argv as wxchar, which is 2-byte unicode, so we must convert it back + char **new_argv = new char*[argc]; + for (int i = 0; i < argc; i++) { + const wxCharBuffer buffer = wxString(wxApp::argv[i]).mb_str(wxConvISO8859_1); + const char* cc = buffer.data(); + new_argv[i] = new char[ strlen(cc) +1 ]; + strcpy(new_argv[i], cc); + } + initShow(argc, new_argv); + //glClearColor(0.0, 0.0, 0.0, 0.0); + + wxBoxSizer* sizer = new wxBoxSizer(wxHORIZONTAL); + frame = new wxFrame((wxFrame *)NULL, -1, wxT("Viewer"), wxPoint(START_X, START_Y), wxSize(START_WIDTH, START_HEIGHT)); + + int args[] = {WX_GL_RGBA, WX_GL_DOUBLEBUFFER, WX_GL_DEPTH_SIZE, 16, 0}; + + glPane = new BasicGLPane( (wxFrame*) frame, args); + sizer->Add(glPane, 1, wxEXPAND); + + frame->SetSizer(sizer); + frame->SetAutoLayout(true); + + + selection = new SelectionImpl( (wxWindow*)NULL, wxID_ANY, wxT("Selection"), advanced_controls, wxPoint(START_X + START_WIDTH + 50, START_Y + 30) ); + controls = new ControlImpl( (wxWindow*)NULL, wxID_ANY, wxT("Controls"), wxPoint(START_X, START_Y + START_HEIGHT + 20 ) ); + + selection->SetSize(wxSize(200,393) ); + selection->SetAutoLayout(true); + selection ->Show(); + selection ->Layout(); + + controls->SetAutoLayout(true); + controls ->Show(); + + frame->Show(); + frame->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( wxShow::OnClose ) ); + + return true; +} + +BEGIN_EVENT_TABLE(BasicGLPane, wxGLCanvas) +EVT_IDLE(BasicGLPane::idle_event) +EVT_MOTION(BasicGLPane::mouseMoved) +EVT_MOUSE_EVENTS(BasicGLPane::mouseEvent) + //EVT_LEFT_DOWN(BasicGLPane::mouseDown) +//EVT_LEFT_UP(BasicGLPane::mouseReleased) +//EVT_RIGHT_DOWN(BasicGLPane::rightClick) +//EVT_LEAVE_WINDOW(BasicGLPane::mouseLeftWindow) +EVT_SIZE(BasicGLPane::resized) +EVT_KEY_DOWN(BasicGLPane::keyPressed) +//EVT_KEY_UP(BasicGLPane::keyReleased) +//EVT_MOUSEWHEEL(BasicGLPane::mouseWheelMoved) +EVT_PAINT(BasicGLPane::render) +END_EVENT_TABLE() + + +// some useful events to use +void BasicGLPane::mouseEvent(wxMouseEvent& event) +{ + SetFocus(); + int x = event.GetX(); + int y = event.GetY(); + + if (event.Dragging()) { + } else if (event.IsButton()) { + int button, state; + if (event.ButtonDown()) { + state = GLUT_DOWN; + } else { + state = GLUT_UP; + } + + if (event.Button(1)) { + button = GLUT_LEFT_BUTTON; + } else if (event.Button(2)) { + button = GLUT_MIDDLE_BUTTON; + } else if (event.Button(3)) { + button = GLUT_RIGHT_BUTTON; + } else { + button = 0; + } + CallBackMouseFunc(button, state, x, y); + } +} + +void BasicGLPane::idle() { + if(glutGetWindow() != window_id) + glutSetWindow(window_id); + + /* + static unsigned long start = GetCurrentTimeInMilliSec(); + // return as nothing has to be updated + if (haveToUpdate == 0) { + if ((GetCurrentTimeInMilliSec()-start) > 100) { + paint(true); + start = GetCurrentTimeInMilliSec(); + } + return; + } + start = GetCurrentTimeInMilliSec(); + */ + if (haveToUpdate == 0) { + if (!fullydisplayed && !mousemoving && !keypressed) { + glDrawBuffer(buffermode); + //Call the display function + DisplayItFunc(GL_RENDER, true); + } + return; + } + + + // case: display is invalid - update it + if (haveToUpdate == 1) { + paint(); + haveToUpdate = 0; + return; + } + // case: display is invalid - update it with all points +/*if (haveToUpdate == 7) { + showall = true; + paint(); + haveToUpdate = 0; + return; + } + */ + + // case: camera angle is changed - instead of repeating code call Reshape, + // since these OpenGL commands are the same + if (haveToUpdate == 2) { + int viewport[4]; + glGetIntegerv(GL_VIEWPORT, viewport); + CallBackReshapeFunc(viewport[2],viewport[3]); + paint(); + haveToUpdate = 0; + return; + } + + // case: animation + if(haveToUpdate == 3 ){ + frameNr += 1; + if(!(MetaMatrix.size() > 1 && frameNr < (int) MetaMatrix[1].size())){ + frameNr = 0; + haveToUpdate = 4; + return; + } + paint(); + + if(save_animation){ + string filename = scan_dir + "animframe" + to_string(frameNr,5) + ".ppm"; + cout << "write " << filename << endl; + glDumpWindowPPM(filename.c_str(),0); + + } + + } +#ifdef _MSC_VER + Sleep(300); + Sleep(anim_delay); +#else + usleep(anim_delay * 10000); +#endif + + if (haveToUpdate == 4) { // stop animation + frameNr = 0; // delete these lines if you want a 'continue' functionality. + haveToUpdate = 1; + } + + // case: path animation + if(haveToUpdate == 6){ + + if (path_iterator == 0) { + oldcamNavMode = cameraNavMouseMode; // remember state of old mousenav + cameraNavMouseMode = 0; + } + + + + //check if the user wants to animate both + //scan matching and the path at the same + //time + + //cout << "path_iterator: " << path_iterator << endl; + if(path_iterator < path_vectorX.size()){ // standard animation case + + //call the path animation function + //hide both the cameras and the path + show_cameras = 0; + show_path = 0; + //increase the iteration count + + path_iterator += 1; + //cout << "i am here" << endl; + //repaint the screen + paint(); + + //save the animation + if(save_animation){ + string filename = scan_dir + "animframe" + to_string(path_iterator,5) + ".ppm"; + string jpgname = scan_dir + "animframe" + to_string(path_iterator,5) + ".jpg"; + cout << "written " << filename << " of " << path_vectorX.size() << " files" << endl; + glWriteImagePPM(filename.c_str(), factor, 0); + haveToUpdate = 6; + + } + }else{ // animation has just ended + cameraNavMouseMode = oldcamNavMode; + show_cameras = 1; + show_path = 1; + //cout << "i am here instead" << endl; + haveToUpdate = 0; + } + } +} + +void BasicGLPane::idle_event(wxIdleEvent& event) +{ + idle(); + //event.RequestMore(); +} + +void BasicGLPane::mouseMoved(wxMouseEvent& event) +{ + int x = event.GetX(); + int y = event.GetY(); + + CallBackMouseMotionFunc(x, y); + //idle(); +} +void BasicGLPane::mouseDown(wxMouseEvent& event) {} +void BasicGLPane::mouseWheelMoved(wxMouseEvent& event) {} +void BasicGLPane::mouseReleased(wxMouseEvent& event) {} +void BasicGLPane::rightClick(wxMouseEvent& event) {} +void BasicGLPane::mouseLeftWindow(wxMouseEvent& event) {} + + +void BasicGLPane::keyPressed(wxKeyEvent& event) { + KeyboardFunc(event.GetKeyCode(), event.CmdDown(), event.AltDown(), event.ShiftDown()); +} + + + +void BasicGLPane::keyReleased(wxKeyEvent& event) {} + +// Vertices and faces of a simple cube to demonstrate 3D render +// source: http://www.opengl.org/resources/code/samples/glut_examples/examples/cube.c +GLfloat v[8][3]; +GLint faces[6][4] = { /* Vertex indices for the 6 faces of a cube. */ + {0, 1, 2, 3}, {3, 2, 6, 7}, {7, 6, 5, 4}, + {4, 5, 1, 0}, {5, 6, 2, 1}, {7, 4, 0, 3} }; + + + +BasicGLPane::BasicGLPane(wxFrame* parent, int* args) : + wxGLCanvas(parent, wxID_ANY, args, wxDefaultPosition, wxDefaultSize, wxFULL_REPAINT_ON_RESIZE||wxWANTS_CHARS) +{ + + m_context = new wxGLContext(this); + // prepare a simple cube to demonstrate 3D render + // source: http://www.opengl.org/resources/code/samples/glut_examples/examples/cube.c + v[0][0] = v[1][0] = v[2][0] = v[3][0] = -1; + v[4][0] = v[5][0] = v[6][0] = v[7][0] = 1; + v[0][1] = v[1][1] = v[4][1] = v[5][1] = -1; + v[2][1] = v[3][1] = v[6][1] = v[7][1] = 1; + v[0][2] = v[3][2] = v[4][2] = v[7][2] = 1; + v[1][2] = v[2][2] = v[5][2] = v[6][2] = -1; + + // To avoid flashing on MSW + SetBackgroundStyle(wxBG_STYLE_CUSTOM); +} + +BasicGLPane::~BasicGLPane() +{ + delete m_context; +} + +void BasicGLPane::resized(wxSizeEvent& evt) +{ +// wxGLCanvas::OnSize(evt); + wxSize s = evt.GetSize(); + CallBackReshapeFunc(s.GetWidth(), s.GetHeight()); + + Refresh(); +} + +/** Inits the OpenGL viewport for drawing in 3D. */ +void BasicGLPane::prepare3DViewport(int topleft_x, int topleft_y, int bottomrigth_x, int bottomrigth_y) +{ + + glClearColor(0.0f, 0.0f, 0.0f, 1.0f); // Black Background + glClearDepth(1.0f); // Depth Buffer Setup + glEnable(GL_DEPTH_TEST); // Enables Depth Testing + glDepthFunc(GL_LEQUAL); // The Type Of Depth Testing To Do + glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); + + glEnable(GL_COLOR_MATERIAL); + + glViewport(topleft_x, topleft_y, bottomrigth_x-topleft_x, bottomrigth_y-topleft_y); + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + + float ratio_w_h = (float)(bottomrigth_x-topleft_x)/(float)(bottomrigth_y-topleft_y); + gluPerspective(45 /*view angle*/, ratio_w_h, 0.1 /*clip close*/, 200 /*clip far*/); + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + +} + +int BasicGLPane::getWidth() +{ + return GetSize().x; +} + +int BasicGLPane::getHeight() +{ + return GetSize().y; +} + + +void BasicGLPane::render( wxPaintEvent& evt ) +{ + paint(); +} + + +void BasicGLPane::paint(bool interruptable) +{ + if(!IsShown()) return; + wxGLCanvas::SetCurrent(*m_context); + wxPaintDC(this); // only to be used in paint events. use wxClientDC to paint outside the paint event + + glDrawBuffer(buffermode); + // delete framebuffer and z-buffer + + //Call the display function + DisplayItFunc(GL_RENDER, interruptable); + + // show the rednered scene + if (!interruptable) { // interruptible draw is single buffered + SwapBuffers(); + } +// ProcessPendingEvents(); +} + + +void updateControls() { + globalGUI->updateControls(); +} +void updatePointModeControls() {} +void updateTopViewControls() {} +void resetRotationButton() {} +void updateCamControls() {} + +static bool interrupted; + +void interruptDrawing() { + interrupted = true; +} +void checkForInterrupt() { + interrupted = false; +} +bool isInterrupted() { + globalGUI->Dispatch(); + globalGUI->ProcessPendingEvents(); + return interrupted; +} diff --git a/src/slam6d/Boctree.cc b/src/slam6d/Boctree.cc new file mode 100644 index 0000000..5f49b60 --- /dev/null +++ b/src/slam6d/Boctree.cc @@ -0,0 +1,56 @@ +/* + * Boctree implementation + * + * Copyright (C) Jan Elseberg + * + * Released under the GPL version 3. + * + */ + +#include "slam6d/Boctree.h" + +//! Start-of-the-program initializer for the sequence map. +struct Initializer { + Initializer() { + for(unsigned char mask = 0; mask < 256; mask++) { + for(unsigned char index = 0; index < 8; index++) { + char c = 0; + char *mimap = imap[index]; // maps area index to preference + for(unsigned char i = 0; i < 8; i++) { + if(( 1 << i ) & mask) { // if ith node exists + sequence2ci[index][mask][ mimap[i] ] = c++; + } else { + sequence2ci[index][mask][ mimap[i] ] = -1; + } + } + } + if (mask == UCHAR_MAX) break; + } + } +}; + +namespace{ + Initializer init; +} + +char sequence2ci[8][256][8] = {}; + +char amap[8][8] = { + {0, 1, 2, 4, 3, 5, 6, 7 }, + {1, 0, 3, 5, 2, 4, 6, 7 }, + {2, 0, 3, 6, 1, 4, 5, 7 }, + {3, 1, 2, 7, 0, 5, 4, 6 }, + {4, 5, 6, 0, 7, 1, 2, 3 }, + {5, 4, 7, 1, 6, 0, 3, 2 }, + {6, 4, 7, 2, 5, 0, 3, 1 }, + {7, 5, 6, 3, 4, 1, 2, 0 } }; + +char imap[8][8] = { + {0, 1, 2, 4, 3, 5, 6, 7 }, + {1, 0, 4, 2, 5, 3, 6, 7 }, + {1, 4, 0, 2, 5, 6, 3, 7 }, + {4, 1, 2, 0, 6, 5, 7, 3 }, + {3, 5, 6, 7, 0, 1, 2, 4 }, + {5, 3, 7, 6, 1, 0, 4, 2 }, + {5, 7, 3, 6, 1, 4, 0, 2 }, + {7, 5, 6, 3, 4, 1, 2, 0 } }; diff --git a/src/slam6d/CMakeLists.txt b/src/slam6d/CMakeLists.txt new file mode 100644 index 0000000..cad527e --- /dev/null +++ b/src/slam6d/CMakeLists.txt @@ -0,0 +1,121 @@ +### SCAN_RED + +IF(WITH_SCAN_REDUCTION) + add_executable(scan_red scan_red.cc) + + IF(UNIX) + target_link_libraries(scan_red scan dl ANN) + ENDIF(UNIX) + + IF (WIN32) + target_link_libraries(scan_red scan ANN XGetopt) + ENDIF(WIN32) +ENDIF(WITH_SCAN_REDUCTION) + +### SCAN_DIFF +IF(WITH_SCAN_DIFF) + add_executable(scan_diff scan_diff.cc) + add_executable(scan_diff2d scan_diff2d.cc ../show/colormanager.cc) + + IF(UNIX) + target_link_libraries(scan_diff scan dl ANN) + target_link_libraries(scan_diff2d scan dl ANN) + ENDIF(UNIX) + + IF (WIN32) + target_link_libraries(scan_diff scan ANN XGetopt) + target_link_libraries(scan_diff2d scan ANN XGetopt) + ENDIF(WIN32) +ENDIF(WITH_SCAN_DIFF) + +### TOOLS + +IF(WITH_TOOLS) + add_executable(frame_to_graph frame_to_graph.cc) + add_executable(convergence convergence.cc) + add_executable(graph_balancer graph_balancer.cc) + add_executable(exportPoints exportPoints.cc) + add_executable(frames2riegl frames2riegl.cc) + add_executable(frames2pose frames2pose.cc) + add_executable(pose2frames pose2frames.cc) + add_executable(riegl2frames riegl2frames.cc) + add_executable(toGlobal toGlobal.cc) + + IF(UNIX) + target_link_libraries(graph_balancer scan ${Boost_GRAPH_LIBRARY} ${Boost_SERIALIZATION_LIBRARY} ${Boost_REGEX_LIBRARY}) + target_link_libraries(exportPoints scan dl ANN) + target_link_libraries(toGlobal scan) + ENDIF(UNIX) + + + IF (WIN32) + target_link_libraries(frame_to_graph XGetopt ${Boost_LIBRARIES}) + target_link_libraries(convergence XGetopt ${Boost_LIBRARIES}) + target_link_libraries(graph_balancer scan XGetopt ${Boost_LIBRARIES}) + target_link_libraries(exportPoints scan ANN XGetopt ${Boost_LIBRARIES}) + target_link_libraries(frames2pose XGetopt ${Boost_LIBRARIES}) + target_link_libraries(pose2frames XGetopt ${Boost_LIBRARIES}) + target_link_libraries(frames2riegl XGetopt ${Boost_LIBRARIES}) + target_link_libraries(riegl2frames XGetopt ${Boost_LIBRARIES}) + target_link_libraries(toGlobal XGetopt ${Boost_LIBRARIES}) + ENDIF(WIN32) +ENDIF(WITH_TOOLS) + +### SCANLIB + +SET(SCANLIB_SRCS + kd.cc kdManaged.cc kdMeta.cc graphSlam6D.cc + graph.cc icp6Dapx.cc icp6D.cc icp6Dsvd.cc + icp6Dortho.cc icp6Dquat.cc icp6Dhelix.cc icp6Dlumeuler.cc + icp6Dlumquat.cc icp6Ddual.cc lum6Deuler.cc lum6Dquat.cc + ghelix6DQ2.cc gapx6D.cc graphToro.cc ann_kd.cc + graphHOG-Man.cc elch6D.cc elch6Dquat.cc elch6DunitQuat.cc + elch6Dslerp.cc elch6Deuler.cc loopToro.cc loopHOG-Man.cc + point_type.cc icp6Dquatscale.cc searchTree.cc Boctree.cc + allocator.cc + scan.cc basicScan.cc managedScan.cc metaScan.cc + io_types.cc io_utils.cc pointfilter.cc + ) + +if(WITH_METRICS) + set(SCANLIB_SRCS ${SCANLIB_SRCS} metrics.cc) +endif(WITH_METRICS) + +add_library(scan STATIC ${SCANLIB_SRCS}) + +target_link_libraries(scan scanclient scanio) + +IF(UNIX) + target_link_libraries(scan dl) +ENDIF(UNIX) + +### EXPORT SHARED LIBS + +IF(EXPORT_SHARED_LIBS) +add_library(scan_s SHARED ${SCANLIB_SRCS}) +#target_link_libraries(scan_s ${Boost_LIBRARIES} newmat) +ENDIF(EXPORT_SHARED_LIBS) + +### SLAM6D + +IF(WITH_CUDA) + CUDA_COMPILE(CUDA_FILES cuda/CIcpGpuCuda.cu ) + add_executable(slam6D slam6D.cc cuda/icp6Dcuda.cc ${CUDA_FILES}) + target_link_libraries(slam6D ${CUDA_LIBRARIES} ANN cudpp64) + CUDA_ADD_CUBLAS_TO_TARGET(slam6D) + CUDA_ADD_CUTIL_TO_TARGET(slam6D) +ELSE(WITH_CUDA) + add_executable(slam6D slam6D.cc) +ENDIF(WITH_CUDA) + +IF(UNIX) + target_link_libraries(slam6D scan newmat sparse ANN) +ENDIF(UNIX) + +IF(WIN32) + target_link_libraries(slam6D scan newmat sparse ANN XGetopt ${Boost_LIBRARIES}) +ENDIF(WIN32) + +#IF(MSVC) +# INSTALL(TARGETS slam6D RUNTIME DESTINATION ${CMAKE_SOURCE_DIR}/windows) +#ENDIF(MSVC) diff --git a/src/slam6d/allocator.cc b/src/slam6d/allocator.cc new file mode 100644 index 0000000..61d8fbd --- /dev/null +++ b/src/slam6d/allocator.cc @@ -0,0 +1,140 @@ +/* + * allocator implementation + * + * Copyright (C) Thomas Escher, Kai Lingemann + * + * Released under the GPL version 3. + * + */ + +#include "slam6d/allocator.h" + +using std::vector; +#include +using std::cout; +using std::endl; +#include +using std::runtime_error; + +#include //memset + + + +ChunkAllocator::ChunkAllocator(unsigned int _csize) : + chunksize(_csize), index(_csize), memsize(0), wastedspace(0) +{} + +ChunkAllocator::~ChunkAllocator() +{ + for(unsigned int i = 0; i < mem.size(); i++) { + delete[] mem[i]; + } +} + +void ChunkAllocator::printSize() const +{ + cout << "Alloc'd " << memsize/(1024*1024.0) << " Mb " << endl; + cout << " wasted " << wastedspace/(1024*1024.0) << " Mb " << endl; +} + +unsigned char* ChunkAllocator::allocate(unsigned int size) +{ + unsigned char* chunk; + if (size + index > chunksize) { + // create new chunk + wastedspace += (chunksize-index); + // check for oversize + if (chunksize > size) { + chunk = new unsigned char[chunksize]; + memset(chunk, 0, chunksize); + memsize+=chunksize; + } else { + chunk = new unsigned char[size]; + memset(chunk, 0, size); + memsize+=size; + } + mem.push_back(chunk); + index = 0; + } else { + // use last chunk + chunk = mem.back(); + chunk = chunk + index; + } + index += size; + return chunk; +} + + + +PackedChunkAllocator::PackedChunkAllocator(unsigned int _csize) : + chunksize(_csize), memsize(0) +{} + +PackedChunkAllocator::~PackedChunkAllocator() +{ + for(unsigned int i = 0; i < mem.size(); i++) { + delete[] mem[i]; + } +} + +void PackedChunkAllocator::printSize() const +{ + cout << "Alloc'd " << memsize/(1024*1024.0) << " Mb " << endl; + + unsigned long int wastedspace = 0; + for(unsigned int i = 0; i < index.size(); i++) { + if(index[i] < chunksize) { + wastedspace += chunksize - index[i]; + } + } + cout << "wasted " << wastedspace/(1024*1024.0) << " Mb " << endl; +} + +unsigned char* PackedChunkAllocator::allocate(unsigned int size) +{ + unsigned char* chunk; + for (unsigned int i = 0; i < index.size(); i++) { + if ( !(size + index[i] > chunksize) ) { + // found a suitable entry + chunk = mem[i]; + chunk = chunk + index[i]; // pointer to free byte + index[i] += size; // increment index + return chunk; + } + } + // no chunk is large enough... make new one + if (chunksize > size) { + chunk = new unsigned char[chunksize]; + memset(chunk, 0, chunksize); + memsize += chunksize; + } else { // in case the requested memory is larger than our chunks, make a single chunk thats large enough + chunk = new unsigned char[size]; + memset(chunk, 0, size); + memsize += size; + } + mem.push_back(chunk); + index.push_back(size); + return chunk; +} + +SequentialAllocator::SequentialAllocator(unsigned char* base_ptr, unsigned int max_size) : + m_base_ptr(base_ptr), m_size(max_size), m_index(0) +{} + +SequentialAllocator::~SequentialAllocator() +{} + +void SequentialAllocator::printSize() const +{ + cout << "Using " << m_index << " of " << m_size << " bytes." << endl; +} + +unsigned char* SequentialAllocator::allocate(unsigned int size) +{ + if(m_index + size > m_size) { + throw runtime_error("SequentialAllocator memory overflow"); + } + unsigned char* r = m_base_ptr + m_index; + m_index += size; + return r; +} diff --git a/src/slam6d/ann_kd.cc b/src/slam6d/ann_kd.cc new file mode 100644 index 0000000..29752fd --- /dev/null +++ b/src/slam6d/ann_kd.cc @@ -0,0 +1,85 @@ +/* + * ann_kd implementation + * + * Copyright (C) Andreas Nuechter, Ulugbek Makhmudov + * + * Released under the GPL version 3. + * + */ + +/** @file + * @brief Encapsules the implementation of ANN k-d trees. + * @author Ulugbek Makhmudov, Jacobs University Bremen, Bremen, Germany. + * @author Andreas Nuechter, Jacobs University Bremen, Bremen, Germany. + */ + +#ifdef _MSC_VER +#define _USE_MATH_DEFINES +#endif + +#include "slam6d/ann_kd.h" +#include "slam6d/globals.icc" + +#include +using std::cout; +using std::cerr; +using std::endl; +#include +using std::swap; +#include +#include + + + +/** + * Constructor + * + * Create ANN KD tree from the points pointed to by the array pts + * + * @param pts 3D array of points + * @param n number of points + */ +ANNtree::ANNtree(double **_pts, int n) +{ + pts = _pts; + annkd = new ANNkd_tree(pts, n, 3, 1, ANN_KD_SUGGEST); // links to the constructor of ANNkd_tree + cout << "ANNkd_tree was generated with " << n << " points" << endl; + nn = new ANNdist[1]; + nn_idx = new ANNidx[1]; +} + +/** + * Destructor + * + * Cleans up the instance of ANN KD tree + * + * + */ +ANNtree::~ANNtree() +{ + delete annkd; //links to the destructor of ANNkd_tree + delete [] nn; + delete [] nn_idx; +} + + +/** + * Finds the closest point within the tree, + * wrt. the point given as first parameter. + * @param _p point + * @param maxdist2 maximal search distance. + * @param threadNum Thread number, for parallelization + * @return Pointer to the closest point + */ +double *ANNtree::FindClosest(double *_p, double maxdist2, int threadNum) const +{ + +#pragma omp critical + annkd->annkSearch(_p, 1, nn_idx, nn, 0.0); + int idx = nn_idx[0]; + + if (Dist2(_p, pts[idx]) > maxdist2) return 0; + + return pts[idx]; +} + diff --git a/src/slam6d/basicScan.cc b/src/slam6d/basicScan.cc new file mode 100644 index 0000000..f69b5dc --- /dev/null +++ b/src/slam6d/basicScan.cc @@ -0,0 +1,388 @@ +/* + * basicScan implementation + * + * Copyright (C) Thomas Escher, Kai Lingemann + * + * Released under the GPL version 3. + * + */ + +#include "slam6d/basicScan.h" + +#include "scanio/scan_io.h" +#include "slam6d/kd.h" +#include "slam6d/Boctree.h" +#include "slam6d/ann_kd.h" + +#ifdef WITH_METRICS +#include "slam6d/metrics.h" +#endif //WITH_METRICS + +#include +#include +#include +using std::ifstream; +using std::ofstream; +using std::flush; +using std::string; +using std::map; +using std::pair; +using std::vector; + +#include +using namespace boost::filesystem; + + + +void BasicScan::openDirectory(const std::string& path, IOType type, int start, int end) +{ +#ifdef WITH_METRICS + Timer t = ClientMetric::read_scan_time.start(); +#endif //WITH_METRICS + + // create an instance of ScanIO + ScanIO* sio = ScanIO::getScanIO(type); + + // query available scans in the directory from the ScanIO + std::list identifiers(sio->readDirectory(path.c_str(), start, end)); + + Scan::allScans.reserve(identifiers.size()); + + // for each identifier, create a scan + for(std::list::iterator it = identifiers.begin(); it != identifiers.end(); ++it) { + Scan::allScans.push_back(new BasicScan(path, *it, type)); + } + +#ifdef WITH_METRICS + ClientMetric::read_scan_time.end(t); +#endif //WITH_METRICS +} + +void BasicScan::closeDirectory() +{ + // clean up the scan vector + for(ScanVector::iterator it = Scan::allScans.begin(); it != Scan::allScans.end(); ++it) + delete *it; + Scan::allScans.clear(); +} + +BasicScan::BasicScan(const std::string& path, const std::string& identifier, IOType type) : + m_path(path), m_identifier(identifier), m_type(type) +{ + init(); + + // request pose from file + double euler[6]; + ScanIO* sio = ScanIO::getScanIO(m_type); + sio->readPose(m_path.c_str(), m_identifier.c_str(), euler); + rPos[0] = euler[0]; + rPos[1] = euler[1]; + rPos[2] = euler[2]; + rPosTheta[0] = euler[3]; + rPosTheta[1] = euler[4]; + rPosTheta[2] = euler[5]; + + // write original pose matrix + EulerToMatrix4(euler, &euler[3], transMatOrg); + + // initialize transform matrices from the original one, could just copy transMatOrg to transMat instead + transformMatrix(transMatOrg); + + // reset the delta align matrix to represent only the transformations after local-to-global (transMatOrg) one + M4identity(dalignxf); +} + +BasicScan::~BasicScan() +{ + // TODO: clean m_data up +} + +void BasicScan::init() +{ + m_filter_max = 0.0; + m_filter_min = 0.0; + m_filter_top = 0.0; + m_filter_bottom = 0.0; + m_filter_range_set = false; + m_filter_height_set = false; +} + + +void BasicScan::setRangeFilter(double max, double min) +{ + m_filter_max = max; + m_filter_min = min; + m_filter_range_set = true; +} + +void BasicScan::setHeightFilter(double top, double bottom) +{ + m_filter_top = top; + m_filter_bottom = bottom; + m_filter_height_set = true; +} + +void BasicScan::get(unsigned int types) +{ + ScanIO* sio = ScanIO::getScanIO(m_type); + + vector xyz; + vector rgb; + vector reflectance; + vector amplitude; + vector type; + vector deviation; + + PointFilter filter; + if(m_filter_range_set) + filter.setRange(m_filter_max, m_filter_min); + if(m_filter_height_set) + filter.setHeight(m_filter_top, m_filter_bottom); + + sio->readScan(m_path.c_str(), + m_identifier.c_str(), + filter, + &xyz, + &rgb, + &reflectance, + &litude, + &type, + &deviation); + + // for each requested and filled data vector, allocate and write contents to their new data fields + if(types & DATA_XYZ && !xyz.empty()) { + double* data = reinterpret_cast(create("xyz", sizeof(double) * xyz.size()).get_raw_pointer()); + for(unsigned int i = 0; i < xyz.size(); ++i) data[i] = xyz[i]; + } + if(types & DATA_RGB && !rgb.empty()) { + unsigned char* data = reinterpret_cast(create("rgb", sizeof(unsigned char) * rgb.size()).get_raw_pointer()); + for(unsigned int i = 0; i < rgb.size(); ++i) data[i] = rgb[i]; + } + if(types & DATA_REFLECTANCE && !reflectance.empty()) { + float* data = reinterpret_cast(create("reflectance", sizeof(float) * reflectance.size()).get_raw_pointer()); + for(unsigned int i = 0; i < reflectance.size(); ++i) data[i] = reflectance[i]; + } + if(types & DATA_AMPLITUDE && !amplitude.empty()) { + int* data = reinterpret_cast(create("amplitude", sizeof(int) * amplitude.size()).get_raw_pointer()); + for(unsigned int i = 0; i < amplitude.size(); ++i) data[i] = amplitude[i]; + } + if(types & DATA_TYPE && !type.empty()) { + float* data = reinterpret_cast(create("type", sizeof(double) * type.size()).get_raw_pointer()); + for(unsigned int i = 0; i < type.size(); ++i) data[i] = type[i]; + } + if(types & DATA_DEVIATION && !deviation.empty()) { + float* data = reinterpret_cast(create("deviation", sizeof(float) * deviation.size()).get_raw_pointer()); + for(unsigned int i = 0; i < deviation.size(); ++i) data[i] = deviation[i]; + } +} + +DataPointer BasicScan::get(const std::string& identifier) +{ + // try to get data + map>::iterator it = m_data.find(identifier); + + // create data fields + if(it == m_data.end()) { + // load from file + if(identifier == "xyz") get(DATA_XYZ); else + if(identifier == "rgb") get(DATA_RGB); else + if(identifier == "reflectance") get(DATA_REFLECTANCE); else + if(identifier == "amplitude") get(DATA_AMPLITUDE); else + if(identifier == "type") get(DATA_TYPE); else + if(identifier == "deviation") get(DATA_DEVIATION); else + // reduce on demand + if(identifier == "xyz reduced") calcReducedOnDemand(); else + if(identifier == "xyz reduced original") calcReducedOnDemand(); else + // show requests reduced points, manipulate in showing the same entry + if(identifier == "xyz reduced show") { + calcReducedOnDemand(); + m_data["xyz reduced show"] = m_data["xyz reduced"]; + } else + if(identifier == "octtree") { + createOcttree(); + } + + it = m_data.find(identifier); + } + + // if nothing can be loaded, return an empty pointer + if(it == m_data.end()) + return DataPointer(0, 0); + else + return DataPointer(it->second.first, it->second.second); +} + +DataPointer BasicScan::create(const std::string& identifier, unsigned int size) +{ + map>::iterator it = m_data.find(identifier); + if(it != m_data.end()) { + // try to reuse, otherwise reallocate + if(it->second.second != size) { + delete it->second.first; + it->second.first = new unsigned char[size]; + it->second.second = size; + } + } else { + // create a new block of data + it = m_data.insert( + std::make_pair( + identifier, + std::make_pair( + new unsigned char[size], + size + ) + ) + ).first; + } + return DataPointer(it->second.first, it->second.second); +} + +void BasicScan::clear(const std::string& identifier) +{ + map>::iterator it = m_data.find(identifier); + if(it != m_data.end()) { + delete it->second.first; + m_data.erase(it); + } +} + + +void BasicScan::createSearchTreePrivate() +{ + DataXYZ xyz_orig(get("xyz reduced original")); + PointerArray ar(xyz_orig); + switch(searchtree_nnstype) + { + case simpleKD: + kd = new KDtree(ar.get(), xyz_orig.size()); + break; + case ANNTree: + kd = new ANNtree(ar.get(), xyz_orig.size()); + break; + case BOCTree: + kd = new BOctTree(ar.get(), xyz_orig.size(), 10.0, PointType(), true); + break; + case -1: + throw runtime_error("Cannot create a SearchTree without setting a type."); + default: + throw runtime_error("SearchTree type not implemented"); + } + + // TODO: make the switch cases above work with CUDA + if (searchtree_cuda_enabled) createANNTree(); +} + +void BasicScan::calcReducedOnDemandPrivate() +{ + // create reduced points and transform to initial position, save a copy of this for SearchTree + calcReducedPoints(); + transformReduced(transMatOrg); + copyReducedToOriginal(); +} + +void BasicScan::createANNTree() +{ + // TODO: metrics +#ifdef WITH_CUDA + if(!ann_kd_tree) { + DataXYZ xyz_orig(get("xyz reduced original")); + ann_kd_tree = new ANNkd_tree(PointArray(xyz_orig).get(), xyz_orig.size(), 3, 1, ANN_KD_STD); + cout << "Cuda tree was generated with " << xyz_orig.size() << " points" << endl; + } else { + cout << "Cuda tree exists. No need for another creation" << endl; + } +#endif +} + +void BasicScan::createOcttree() +{ + string scanFileName = m_path + "scan" + m_identifier + ".oct"; + BOctTree* btree = 0; + + // try to load from file, if successful return + if(octtree_loadOct && exists(scanFileName)) { + btree = new BOctTree(scanFileName); + m_data.insert( + std::make_pair( + "octtree", + std::make_pair( + reinterpret_cast(btree), + 0 // or memorySize()? + ) + ) + ); + return; + } + + // create octtree from scan + if(octtree_reduction_voxelSize > 0) { // with reduction, only xyz points + DataXYZ xyz_r(get("xyz reduced show")); + btree = new BOctTree(PointerArray(xyz_r).get(), xyz_r.size(), octtree_voxelSize, octtree_pointtype, true); + } else { // without reduction, xyz + attribute points + float** pts = octtree_pointtype.createPointArray(this); + unsigned int nrpts = size("xyz"); + btree = new BOctTree(pts, nrpts, octtree_voxelSize, octtree_pointtype, true); + for(unsigned int i = 0; i < nrpts; ++i) delete[] pts[i]; delete[] pts; + } + + // save created octtree + if(octtree_saveOct) { + cout << "Saving octree " << scanFileName << endl; + btree->serialize(scanFileName); + } + + m_data.insert( + std::make_pair( + "octtree", + std::make_pair( + reinterpret_cast(btree), + 0 // or memorySize()? + ) + ) + ); +} + +unsigned int BasicScan::readFrames() +{ + string filename = m_path + "scan" + m_identifier + ".frames"; + ifstream file(filename.c_str()); + file.exceptions(ifstream::eofbit|ifstream::failbit|ifstream::badbit); + try { + double transformation[16]; + unsigned int type; + do { + file >> transformation >> type; + m_frames.push_back(Frame(transformation, type)); + } while(file.good()); + } catch(...) {} + + return m_frames.size(); +} + +void BasicScan::saveFrames() +{ + string filename = m_path + "scan" + m_identifier + ".frames"; + ofstream file(filename.c_str()); + for(vector::iterator it = m_frames.begin(); it != m_frames.end(); ++it) { + file << it->transformation << it->type << '\n'; + } + file << flush; + file.close(); +} + +unsigned int BasicScan::getFrameCount() +{ + return m_frames.size(); +} + +void BasicScan::getFrame(unsigned int i, const double*& pose_matrix, AlgoType& type) +{ + const Frame& frame(m_frames.at(i)); + pose_matrix = frame.transformation; + type = static_cast(frame.type); +} + +void BasicScan::addFrame(AlgoType type) +{ + m_frames.push_back(Frame(transMat, type)); +} diff --git a/src/slam6d/convergence.cc b/src/slam6d/convergence.cc new file mode 100644 index 0000000..18f52fa --- /dev/null +++ b/src/slam6d/convergence.cc @@ -0,0 +1,269 @@ +/* + * convergence implementation + * + * Copyright (C) Jochen Sprickerhof, Peter Schneider + * + * Released under the GPL version 3. + * + */ + +/** + * @file + * @brief Implementation for generating a convergence graph of a scanseries frame + * @author Jochen Sprickerhof. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Peter Schneider. Institute of Computer Science, University of Koblenz, Germany. + */ + +#include +using std::exception; + +#include "slam6d/scan.h" +#include "slam6d/convergence.h" + +/** + * Storing the base directory + */ +string filepath; + +/** + * Explains the usage of this program's command line parameters + * @param prog name of the program + */ +void usage(char* prog) +{ +#ifndef _MSC_VER + const string bold("\033[1m"); + const string normal("\033[m"); +#else + const string bold(""); + const string normal(""); +#endif + + cout << endl + << "Usage: " << prog << " [-s NR] filepath, [-z NR] convergence type" << endl << endl; + + cout << " -s NR generate convergence-data for frame NR" << endl + << endl; + + cout << " -z NR type of convergence (0 = global, 1 = local)" << endl + << endl; + + exit(1); +} + + +/** + * A function that parses the command-line arguments and sets the respective flags. + * + * @param argc the number of arguments + * @param argv the arguments + * @param dir parsing result - the directory + * @param start parsing result - starting at scan number 'start' + * @param type parsing result - the type of convergence that should be stored (lokal, global) + * @return 0, if the parsing was successful, 1 otherwise + */ +int parseArgs(int argc,char **argv, string &dir, int &frame, int &type) +{ + frame = 0; + type = 0; + int c; + // from unistd.h + extern char *optarg; + extern int optind; + + cout << endl; + while ((c = getopt (argc, argv, "s:z:m:M:p:wt")) != -1) + switch (c) + { + case 's': + frame = atoi(optarg); + if (frame < 0) { cerr << "Error: Cannot generate data of a negative frame number.\n"; exit(1); } + break; + case 'z': + type = atoi(optarg); + if (type > 2 || type < 0) { cerr << "Error: only global (0) or local (1) available.\n"; exit(1); } + break; + case '?': + usage(argv[0]); + return 1; + default: + abort (); + } + + if (optind != argc-1) { + cerr << "\n*** Directory missing ***" << endl; + usage(argv[0]); + } + dir = argv[optind]; + +#ifndef _MSC_VER + if (dir[dir.length()-1] != '/') dir = dir + "/"; +#else + if (dir[dir.length()-1] != '\\') dir = dir + "\\"; +#endif + return 0; +} + + +void getLocalConvergence(ifstream *inputFile, ofstream *outputFile) +{ + double transMat[16]; + int type; + double rPos[3]; + double rPosTheta[3]; + cout<<"starting local convergence"<> transMat >> type; + if(type == Scan::ICP) + { + Matrix4ToEuler(transMat, rPosTheta, rPos); + (*outputFile)<> transMat >> type; + Matrix4ToEuler(transMat, rPosTheta, rPos); + Matrix4ToQuat(transMat, quat); + if((initial || type != Scan::INVALID) && type != Scan::ICPINACTIVE) { + initial = false; + (*outputFile) << sqrt(Dist2(rPosOrg, rPos))/100.0 << " " << quat_dist(quatOrg, quat) << " " << type << endl; + } + //(*outputFile) << sqrt(Dist2(rPosOrg, rPos))/100.0 << " " << quat_dist(quatOrg, quat) << " " << type << endl; + } + catch (const exception &e) { + break; + } + } +} + +void getGlobalConvergence(ifstream *inputFile, ofstream *outputFile) +{ + double transMat[16]; + int type; + bool lumYetFound = false; + double rPos[3]; + double rPosTheta[3]; + cout<<"starting global convergence"<> transMat >> type; + if(type == Scan::LUM) + { + lumYetFound = true; + Matrix4ToEuler(transMat, rPosTheta, rPos); + (*outputFile)<close(); + outputFile->open("xyz.con", ios::trunc); + } + } + } + catch (const exception &e) { + break; + } + } +} + + +/* + * A function that read the .frame files created by slam6D + * + * @param dir the directory + * @param frameNr frame number that should be read + */ +void readFrames(string dir, int frameNr, int convType) +{ + ifstream frame_in; + ofstream xyz_out; + xyz_out.open("xyz.con"); + string frameFileName; + frameFileName = dir + "scan" + to_string(frameNr,3) + ".frames"; + cout << "Reading Frame for convergence data " << frameFileName << "..."<::allocate(unSizeData, 3, h_idata); //model + + // Device memory allocation + CUDA_SAFE_CALL(cudaMalloc((void**)&fDist, unSizeData*sizeof(float))); + CUDA_SAFE_CALL(cudaMalloc((void**)&fDistCpt, unSizeData*sizeof(float))); + CUDA_SAFE_CALL(cudaMalloc((void**)&unMask, unSizeData*sizeof(unsigned))); + CUDA_SAFE_CALL(cudaMalloc((void**)&fDevMdlPairX, unSizeData*sizeof(float))); //pairs after shrinking + CUDA_SAFE_CALL(cudaMalloc((void**)&fDevMdlPairY, unSizeData*sizeof(float))); + CUDA_SAFE_CALL(cudaMalloc((void**)&fDevMdlPairZ, unSizeData*sizeof(float))); + CUDA_SAFE_CALL(cudaMalloc((void**)&fDevScnPairX, unSizeData*sizeof(float))); + CUDA_SAFE_CALL(cudaMalloc((void**)&fDevScnPairY, unSizeData*sizeof(float))); + CUDA_SAFE_CALL(cudaMalloc((void**)&fDevScnPairZ, unSizeData*sizeof(float))); + /////////////// Added by Shams + CUDA_SAFE_CALL(cudaMalloc((void**)&cngfDevScnX,unSizeData*sizeof(float))); + CUDA_SAFE_CALL(cudaMalloc((void**)&cngfDevScnY,unSizeData*sizeof(float))); + CUDA_SAFE_CALL(cudaMalloc((void**)&cngfDevScnZ,unSizeData*sizeof(float))); + CUDA_SAFE_CALL(cudaMalloc((void**)&cngfDevMdlPairX, unSizeData*sizeof(float))); //pairs after shrinking + CUDA_SAFE_CALL(cudaMalloc((void**)&cngfDevMdlPairY, unSizeData*sizeof(float))); + CUDA_SAFE_CALL(cudaMalloc((void**)&cngfDevMdlPairZ, unSizeData*sizeof(float))); + CUDA_SAFE_CALL(cudaMalloc((void**)&cngfDevScnPairX, unSizeData*sizeof(float))); + CUDA_SAFE_CALL(cudaMalloc((void**)&cngfDevScnPairY, unSizeData*sizeof(float))); + CUDA_SAFE_CALL(cudaMalloc((void**)&cngfDevScnPairZ, unSizeData*sizeof(float))); + + /////////////// + CUDA_SAFE_CALL(cudaMalloc((void**)&fCenModX, unSizeData*sizeof(float))); + CUDA_SAFE_CALL(cudaMalloc((void**)&fCenModY, unSizeData*sizeof(float))); + CUDA_SAFE_CALL(cudaMalloc((void**)&fCenModZ, unSizeData*sizeof(float))); + CUDA_SAFE_CALL(cudaMalloc((void**)&fCenScnX, unSizeData*sizeof(float))); + CUDA_SAFE_CALL(cudaMalloc((void**)&fCenScnY, unSizeData*sizeof(float))); + CUDA_SAFE_CALL(cudaMalloc((void**)&fCenScnZ, unSizeData*sizeof(float))); + CUDA_SAFE_CALL(cudaMalloc((void**)&unNoPairs, sizeof(unsigned))); + CUDA_SAFE_CALL(cudaMalloc((void**)&fDevScnX, unSizeData*sizeof(float))); + CUDA_SAFE_CALL(cudaMalloc((void**)&fDevScnY, unSizeData*sizeof(float))); + CUDA_SAFE_CALL(cudaMalloc((void**)&fDevScnZ, unSizeData*sizeof(float))); + + CUDA_SAFE_CALL(cudaMalloc((void**)&fDevSplit, _unSizeTree*sizeof(float))); + CUDA_SAFE_CALL(cudaMalloc((void**)&unDevIdx, _unSizeTree*sizeof(unsigned))); + CUDA_SAFE_CALL(cudaMalloc((void**)&unDevAxis, _unSizeTree*sizeof(unsigned))); + CUDA_SAFE_CALL(cudaMalloc((void**)&bDevIsLeaf, _unSizeTree*sizeof(bool))); + CUDA_SAFE_CALL(cudaMalloc((void**)&fDevLoBound, _unSizeTree*sizeof(float))); + CUDA_SAFE_CALL(cudaMalloc((void**)&fDevHiBound, _unSizeTree*sizeof(float))); + + CUDA_SAFE_CALL(cudaMallocArray(&cuArray, &cuDesc, _unWidth, _unHeight)); //to be bound to texture + + // Initialize states + fMaxProcTime = 0.0f; + fMaxDeviation = 0.0f; + _fSearchRadiusMax = 0.0f; + _fSearchRadiusMin = 0.0f; + _fRadiusStep = 0.0f; + _unNoQSizeStep = 0; + _dElapsedTime = 0.0; + + /* + * Array of ones to be used instead of abs sum + */ + cudaMallocHost((void**)&temp_ones, unSizeData*sizeof(float)); + cudaMalloc((void**)&ones, unSizeData*sizeof(float)); // Array of ones + for(int i = 0; i < unSizeData ; ++i)temp_ones[i] = 1.0f; + cudaMemcpy(ones, temp_ones, unSizeData*sizeof(float), cudaMemcpyHostToDevice); +} + +CIcpGpuCuda::~CIcpGpuCuda(){ + + ///////////// + // tidy up + ///////////// + CUDA_SAFE_CALL(cudaUnbindTexture(refTex)); + CUDA_SAFE_CALL(cudaFreeArray(cuArray)); + CUDA_SAFE_CALL(cudaFree(fDevSplit)); + CUDA_SAFE_CALL(cudaFree(unDevIdx)); + CUDA_SAFE_CALL(cudaFree(unDevAxis)); + CUDA_SAFE_CALL(cudaFree(bDevIsLeaf)); + CUDA_SAFE_CALL(cudaFree(fDevLoBound)); + CUDA_SAFE_CALL(cudaFree(fDevHiBound)); + CUDA_SAFE_CALL(cudaFree(fDevScnX)); + CUDA_SAFE_CALL(cudaFree(fDevScnY)); + CUDA_SAFE_CALL(cudaFree(fDevScnZ)); + CUDA_SAFE_CALL(cudaFree(fDist)); + CUDA_SAFE_CALL(cudaFree(fDistCpt)); + CUDA_SAFE_CALL(cudaFree(fCenModX)); + CUDA_SAFE_CALL(cudaFree(fCenModY)); + CUDA_SAFE_CALL(cudaFree(fCenModZ)); + CUDA_SAFE_CALL(cudaFree(fCenScnX)); + CUDA_SAFE_CALL(cudaFree(fCenScnY)); + CUDA_SAFE_CALL(cudaFree(fCenScnZ)); + CUDA_SAFE_CALL(cudaFree(unMask)); + CUDA_SAFE_CALL(cudaFree(fDevMdlPairX)); + CUDA_SAFE_CALL(cudaFree(fDevMdlPairY)); + CUDA_SAFE_CALL(cudaFree(fDevMdlPairZ)); + CUDA_SAFE_CALL(cudaFree(fDevScnPairX)); + CUDA_SAFE_CALL(cudaFree(fDevScnPairY)); + CUDA_SAFE_CALL(cudaFree(fDevScnPairZ)); + CUDA_SAFE_CALL(cudaFree(cngfDevScnX)); + CUDA_SAFE_CALL(cudaFree(cngfDevScnY)); + CUDA_SAFE_CALL(cudaFree(cngfDevScnZ)); + CUDA_SAFE_CALL(cudaFree(cngfDevMdlPairX)); + CUDA_SAFE_CALL(cudaFree(cngfDevMdlPairY)); + CUDA_SAFE_CALL(cudaFree(cngfDevMdlPairZ)); + CUDA_SAFE_CALL(cudaFree(cngfDevScnPairX)); + CUDA_SAFE_CALL(cudaFree(cngfDevScnPairY)); + CUDA_SAFE_CALL(cudaFree(cngfDevScnPairZ)); + + CUDA_SAFE_CALL(cudaFree(unNoPairs)); + CUDA_SAFE_CALL(cudaFree(ones)); + + + CUDA_SAFE_CALL(cudaFreeHost(fSplit)); + CUDA_SAFE_CALL(cudaFreeHost(unIdx)); + CUDA_SAFE_CALL(cudaFreeHost(unAxis)); + CUDA_SAFE_CALL(cudaFreeHost(bIsLeaf)); + CUDA_SAFE_CALL(cudaFreeHost(fHstScnX)); + CUDA_SAFE_CALL(cudaFreeHost(fHstScnY)); + CUDA_SAFE_CALL(cudaFreeHost(fHstScnZ)); + CUDA_SAFE_CALL(cudaFreeHost(fLoBound)); + CUDA_SAFE_CALL(cudaFreeHost(fHiBound)); + CUDA_SAFE_CALL(cudaFreeHost(pNoPairs)); + CUDA_SAFE_CALL(cudaFreeHost(f4Mdl)); + CUDA_SAFE_CALL(cudaFreeHost(temp_ones)); + + free(h_idata); + + + ///////// + // Exit + ///////// + bool bShutDownSuccess = true; + + // Done with CUDPP + result = cudppDestroyPlan(compactplan); + if (CUDPP_SUCCESS != result){ + printf("Error destroying CUDPPPlan\n"); + bShutDownSuccess = false; + } + + // Done with CUBLAS + cublasStatus statusCUBLAS = cublasShutdown(); + if (statusCUBLAS != CUBLAS_STATUS_SUCCESS) { + fprintf (stderr, "!!!! shutdown error (A)\n"); + bShutDownSuccess = false; + } + + // Done with ANN + annClose(); + +} + +void CIcpGpuCuda::setResolution(unsigned unWidth, unsigned unHeight){ + if (unWidth>0 && unHeight>0) { + _unWidth = unWidth; + _unHeight = unHeight; + unSizeData = _unWidth*_unHeight; + + //configure block and grid size + unsigned unBlockSize = (unsigned)BLOCKSIZE; //192 + if(unSizeData<=64){ + unNoThreads = 64; + unNoBlocks = 1; + } + else if(unSizeData<=128){ + unNoThreads = 128; + unNoBlocks = 1; + } + else if(unSizeData<=unBlockSize){ + unNoThreads = unBlockSize; + unNoBlocks = 1; + } + else{ + unNoThreads = unBlockSize; + if(unSizeData%unBlockSize) unNoBlocks = unSizeData/unBlockSize + 1; + else unNoBlocks = unSizeData/unBlockSize; + } + cout<<"unNoThreads: "<0) unMaxIteration = unTimes; + else{ + cout<<"Error setting maximum iterations."<0) fMaxProcTime = dMilliseconds; + else{ + cout<<"Error setting maximum processing time."<0) fMaxDeviation = fDeviation; + else{ + cout<<"Error setting maximum deviation."<=fRadiusMin)&&(unIterations>0)){ + _fSearchRadiusMax = fRadiusMax; + _fSearchRadiusMin = fRadiusMin; + _fRadiusStep = (_fSearchRadiusMax-_fSearchRadiusMin)/(float)unIterations; + _unIterations = unIterations; + _unNoQSizeStep = unIterations/(unsigned)NO_QSIZE; + } + else{ + cout<<"Error setting search radius."<getStats(*st); + int nDepth = st->depth; + // cout<<"level of the tree: "<depth<<" (counted from 0)"<_unSizeTree) { + cout << "Not enough memory for tree construction. Tree size must be smaller than " + << unSizeTree <getRoot(); + if (unSizeData>1) { + rearrange(pRoot, 1); + } else { + cout<<"Not enough points in the tree."<isLeaf()) { + bIsLeaf[unStart-1] = true; + unIdx[unStart-1] = (unsigned)(((ANNkd_leaf*)root)->getIdxArray())[0]; + } + else { + ANNkd_ptr nL = ((ANNkd_split*)root)->getLeftChild(); + ANNkd_ptr nR = ((ANNkd_split*)root)->getRightChild(); + + bIsLeaf[unStart-1] = false; + fSplit[unStart-1] = (float)((ANNkd_split*)root)->getCutVal(); + unAxis[unStart-1] = (unsigned)((ANNkd_split*)root)->getCutDim(); + fLoBound[unStart-1] = ((ANNkd_split*)root)->getLoBound(); + fHiBound[unStart-1] = ((ANNkd_split*)root)->getHiBound(); + rearrange(nL, unStart*2); + rearrange(nR, unStart*2+1); + } + } +} + +void CIcpGpuCuda::setPointClouds(void){ + setTree(); + setModel(); + setScene(); +} + +void CIcpGpuCuda::iteration(){ + + ////////////////////////// + // prepare for iteration + ////////////////////////// + + EnumIcpState icpStat = ICP_PROCESSING; + + float fSearchRadius = _fSearchRadiusMax; + unsigned unNoIter = 0; + float fDeviation = 0.0; + unsigned unQStep = 0; + + final_matrix = new Matrix(4,4); + (*final_matrix)(1,1) = 1.0;(*final_matrix)(1,2) = 0.0;(*final_matrix)(1,3) = 0.0;(*final_matrix)(1,4) = 0.0; + (*final_matrix)(2,1) = 0.0;(*final_matrix)(2,2) = 1.0;(*final_matrix)(2,3) = 0.0;(*final_matrix)(2,4) = 0.0; + (*final_matrix)(3,1) = 0.0;(*final_matrix)(3,2) = 0.0;(*final_matrix)(3,3) = 1.0;(*final_matrix)(3,4) = 0.0; + (*final_matrix)(4,1) = 0.0;(*final_matrix)(4,2) = 0.0;(*final_matrix)(4,3) = 0.0;(*final_matrix)(4,4) = 1.0; + + Matrix matrix(4,4); + + init_time = clock(); + + // The main loop of ICP + while(icpStat == ICP_PROCESSING){ + if (unNoIter <= _unIterations) + unQStep = unNoIter/_unNoQSizeStep; + + findNearestNeighbors(fSearchRadius, unQStep); + + result=cudppCompact(compactplan, fDistCpt, (size_t*)unNoPairs, + fDist, unMask, (size_t)unSizeData); + + if (CUDPP_SUCCESS != result) + printf("Error cudppCompact\n"); + CUDA_SAFE_CALL(cudaMemcpy(pNoPairs, unNoPairs, sizeof(unsigned), cudaMemcpyDeviceToHost)); + unPairs = *pNoPairs; + + if (unPairs) { + + ////////////////////// + // transform estimation + ////////////////////// + + // Compute centroids (assume all data are non-negative) + float *fCm = new float(3); + float *fCs = new float(3); + + + computeCentroid(fDevMdlPairX,fDevMdlPairY,fDevMdlPairZ, fCm); + computeCentroid(fDevScnPairX,fDevScnPairY,fDevScnPairZ, fCs); + + fDeviation = cublasSdot(unSizeData,fDistCpt,1,ones,1); + fDeviation /= unPairs; + getCublasErr(); + + // check for termination conditions + unNoIter++; + if(unNoIter<_unIterations) + fSearchRadius-=_fRadiusStep; + if(fDeviation <= fMaxDeviation) + icpStat = ICP_SUCCESS; + else if(unNoIter >= unMaxIteration + 1) // unNoIter starts from 1 + icpStat = ICP_MAXITERATIONS; + else if ( (double)(clock() - init_time)/ (double)CLOCKS_PER_SEC * 1000>= fMaxProcTime ) + icpStat = ICP_TIMEELAPSED; + else + { + //Calculate centered point pairs + class_centralize(unMask, + fDevMdlPairX,fDevMdlPairY,fDevMdlPairZ,fDevScnPairX,fDevScnPairY,fDevScnPairZ, + fCm[0],fCm[1],fCm[2],fCs[0],fCs[1],fCs[2], + fCenModX,fCenModY,fCenModZ,fCenScnX,fCenScnY,fCenScnZ); + + //Fill H matrix + Matrix H(3,3); + H = computeHMatrix(); + + //SVD + Matrix U(3,3); + DiagonalMatrix Lamda(3); + Matrix V(3,3); + SVD(H,Lamda,U,V); + + //Get rotation + Matrix R(3,3); + R = V*(U.t()); + + // Calculate translation + double dTranslation[3]; + ColumnVector col_vec(3); + for(unsigned j = 0; j < 3; j++) + col_vec(j+1) = fCs[j]; + + ColumnVector r_time_colVec = ColumnVector(R*col_vec); + + dTranslation[0] = fCm[0] - r_time_colVec(1); + dTranslation[1] = fCm[1] - r_time_colVec(2); + dTranslation[2] = fCm[2] - r_time_colVec(3); + + matrix = fillHomoMatrix(&R,dTranslation); + + *final_matrix = matrix * (*final_matrix); + + for(int i = 1 ; i < 5 ; ++i) + for(int j = 1; j < 5 ; ++j){ + (*matrices[unNoIter - 1])(i,j) = (matrix)(i,j); + } + + ///////////// + // transform + ///////////// + + class_transformation(fDevScnX, fDevScnY, fDevScnZ, + (float)matrix(1,1), (float)matrix(1,2), (float)matrix(1,3), (float)matrix(1,4), + (float)matrix(2,1), (float)matrix(2,2), (float)matrix(2,3), (float)matrix(2,4), + (float)matrix(3,1), (float)matrix(3,2), (float)matrix(3,3), (float)matrix(3,4)); + + + /////////////// + // termination + /////////////// + + } + }//if(unPairs) + else icpStat = ICP_NOTMATCHABLE; + }//while(icpStat == ICP_PROCESSING) + + _dElapsedTime = (double)(clock() - init_time)/(double)CLOCKS_PER_SEC * 1000.0; //temporary + cout<<"=========="< + +using namespace std; + +#include "slam6d/cuda/icp6Dcuda.h" +#include "slam6d/cuda/CIcpGpuCuda.cuh" +#include "newmat/newmat.h" + + +void icp6Dcuda::initGPUicp(float max_rad, float min_rad, int iter, int max_iter, + int max_proctime, float max_dev, const double trans[], const double trans_inv[]) +{ +#ifndef WITH_SCANSERVER + unsigned int max_size = Scan::max_points_red_size; +#else //WITH_SCANSERVER + unsigned int max_size = Scan::getMaxCountReduced(); +#endif //WITH_SCANSERVER + if (max_scnSize < max_size) { + if (icp != 0) { + delete icp; + icp = 0; + } + } + if (icp == 0) { + max_scnSize = max_size; + icp = new CIcpGpuCuda((unsigned)10, ceil((float)max_size/10.f) , + (unsigned)max_num_iterations); + icp->setMaxProcTime((double) max_proctime); + icp->setMaxDeviation((double) max_dev); + icp->setSearchRadius((float) max_rad, (float) min_rad, (unsigned)max_num_iterations); + } +} + +icp6Dcuda::icp6Dcuda(icp6Dminimizer *my_icp6Dminimizer, double max_dist_match, + int max_num_iterations, bool quiet, bool meta, int rnd, bool eP, + int anim, double epsilonICP, int nns_method, bool cuda_enabled) +: icp6D(my_icp6Dminimizer, max_dist_match, + max_num_iterations, quiet, meta, rnd, eP, + anim, epsilonICP, nns_method, cuda_enabled) +{ + icp = 0; + max_scnSize = 0; +} + +/** + * Matches a 3D Scan against a 3D Scan + * @param PreviousScan The scan or metascan forming the model + * @param CurrentScan The current scan thas is to be matched + * @return The number of iterations done in this matching run + */ +int icp6Dcuda::match(Scan* PreviousScan, Scan* CurrentScan) +{ +#ifndef WITH_SCANSERVER + int mdlSize = PreviousScan->get_points_red_size(), scnSize = CurrentScan->get_points_red_size(); +#else //WITH_SCANSERVER + int mdlSize = PreviousScan->getCountReduced(), scnSize = CurrentScan->getCountReduced(); +#endif //WITH_SCANSERVER + double** mdl; + float** scn; + const double *trans; + double trans_inv[16]; + trans = PreviousScan->get_transMat(); + M4inv(trans, trans_inv); + + initGPUicp(sqrt(max_dist_match2), sqrt(max_dist_match2), max_num_iterations, + max_num_iterations, INT_MAX, epsilonICP, trans, trans_inv); + + h_idata = icp->getModelPointer(); + fHstScn = icp->getScenePointer(); + icp->setTrans_Trans_inv(trans, trans_inv); + icp->setSize(10, ceil((float)max(mdlSize, scnSize)/10.0f)); + +#ifndef WITH_SCANSERVER + double **mod_dat = PreviousScan->get_org_points_red(); + double *const*scn_dat = CurrentScan->get_points_red(); +#else //WITH_SCANSERVER + DataXYZ scn_dat(CurrentScan->getXYZReduced()); + DataXYZ mod_dat(PreviousScan->getXYZReducedOriginal()); +#endif //WITH_SCANSERVER + mdl = h_idata; + scn = fHstScn; + cout << "model point cloud size is " << mdlSize << "\n"; + for (unsigned int i = 0; i < mdlSize; ++i) { + mdl[i][0] = (float)mod_dat[i][0]; + mdl[i][1] = (float)mod_dat[i][1]; + mdl[i][2] = (float)mod_dat[i][2]; + } + cout << "scene point cloud size is " << scnSize << "\n"; + for (unsigned int i = 0; i < scnSize; ++i) { + scn[0][i] = (float)scn_dat[i][0]; + scn[1][i] = (float)scn_dat[i][1]; + scn[2][i] = (float)scn_dat[i][2]; + } + + icp->setTreePointer(const_cast(PreviousScan->getANNTree())); + float result[4][4]; + + // doICP + icp->setPointClouds(); + icp->iteration(); + Matrix* M = icp->getMatrix(); + + for (int i = 0 ; i < 4 ; ++i){ + for(int j = 0 ; j < 4 ; ++j) { + result[i][j] = (*M)(i+1,j+1); + } + } + + if(anim > 0){ + Matrix** mats = icp->getMatrices(); + for(int ci = 0 ; ci < max_num_iterations ; ci += anim){ + Matrix* cur_mat = mats[ci]; + double xf[16]; + for(int i = 1; i < 5 ; ++i) + for(int j = 1; j < 5; ++j) + xf[(i-1)+(j-1)*4] = (*cur_mat)(i,j); + CurrentScan->transform(xf, Scan::ICP, 0); + } + } + else { + double alignxf[16]; + for (int i = 0; i < 4; ++i) + for (int j = 0; j < 4; ++j){ + alignxf[i + j * 4] = result[i][j]; + } + CurrentScan->transform(alignxf, Scan::ICP, 0); // write end pose + } + + return EXIT_SUCCESS; +} + diff --git a/src/slam6d/elch6D.cc b/src/slam6d/elch6D.cc new file mode 100644 index 0000000..2e11c18 --- /dev/null +++ b/src/slam6d/elch6D.cc @@ -0,0 +1,324 @@ +/* + * elch6D implementation + * + * Copyright (C) Jochen Sprickerhof + * + * Released under the GPL version 3. + * + */ + +/** @file graph balancer implementation and utility functions + * @author Jochen Sprickerhof. Institute of Computer Science, University of Osnabrueck, Germany. + * + * This file implements the paper (ecmr2009.pdf): + * Jochen Sprickerhof, Andreas Nuechter, Kai Lingemann, Joachim Hertzberg. An Explicit + * Loop Closing Technique for 6D SLAM, In Proceedings of the 4th European Conference on + * Mobile Robots (ECMR '09), Mlini/Dubrovnic, Croatia, September 2009. + */ + +#include +using std::ofstream; + +#include +using std::string; + +#include +using std::list; + +#include +using std::swap; + +#include //for old boost and new gcc +using std::numeric_limits; +#include +#include +#include +using boost::graph_traits; + +#include "slam6d/globals.icc" +#include "slam6d/elch6D.h" + +#ifdef _MSC_VER +#define tie tr1::tie +#endif + + +/*void printout(graph_t &g, vector &p, vector &d, double *weights) +{ + cout << "distances and parents:" << endl; + graph_traits ::vertex_iterator vi, vend; + for(tie(vi, vend) = vertices(g); vi != vend; vi++) { + cout << "distance(" << *vi << ") = " << d[*vi] << + ", parent(" << *vi << ") = " << p[*vi] << + *vi << " " << weights[*vi] << endl; + } +}*/ + +/** + * sets a filename for graph_weight_out and calls it + * @param g the graph to save + * @param first the first node + * @param last the last node + * @param weights the computed weights + */ +void elch6D::graph_weight_out(graph_t &g, int first, int last, double *weights) +{ + string name("graph_weight_" + to_string(num_vertices(g), 3) + ".dot"); + graph_weight_out(g, first, last, weights, name); +} + +/** + * writes a graphviz file with the graph labled with the computed weights + * @param g the graph to save + * @param first the first node + * @param last the last node + * @param weights the computed weights + * @param out_file the file to write to + */ +void elch6D::graph_weight_out(graph_t &g, int first, int last, double *weights, string &out_file) +{ + ofstream dot_file(out_file.c_str()); + dot_file << "graph D {" << endl; + graph_traits ::vertex_iterator vi, vend; + for(tie(vi, vend) = vertices(g); vi != vend; vi++) { + dot_file << *vi << "[label=\"" << *vi << " (" << + weights[*vi] << ")\"];" << endl; + } + boost::property_map::type weightmap = get(boost::edge_weight, g); + graph_traits ::edge_iterator ei, ei_end; + for(tie(ei, ei_end) = edges(g); ei != ei_end; ei++) { + dot_file << source(*ei, g) << " -- " << target(*ei, g) << + "[label=\"" << get(weightmap, *ei) << "\"];" << endl; + } + dot_file << first << " -- " << last << "[color=\"green\"] }"; + dot_file.close(); +} + +/** + * sets a filename and calls graph_pos_out + * @param g the graph to save + * @param allScans all laser scans + */ +void elch6D::graph_pos_out(graph_t &g, const vector &allScans) +{ + string name("graph_pos_" + to_string(num_vertices(g), 3) + ".dot"); + graph_pos_out(g, allScans, name); +} + +/** + * writes the graph using the computed scan poses + * @param g the graph to save + * @param allScans all laser scans + * @param out_file the file to write to + */ +void elch6D::graph_pos_out(graph_t &g, const vector &allScans, string &out_file) +{ + ofstream graph_file(out_file.c_str()); + ofstream graph2_file(("2" + out_file).c_str()); + graph_traits ::edge_iterator ei, ei_end; + for(tie(ei, ei_end) = edges(g); ei != ei_end; ei++) { + if(source(*ei, g) + 1 != target(*ei, g)) { + graph2_file << allScans[source(*ei, g)]->get_rPos()[0] << " " << allScans[source(*ei, g)]->get_rPos()[1] << " " << allScans[source(*ei, g)]->get_rPos()[2] << endl; + graph2_file << allScans[target(*ei, g)]->get_rPos()[0] << " " << allScans[target(*ei, g)]->get_rPos()[1] << " " << allScans[target(*ei, g)]->get_rPos()[2] << endl << endl; + } else { + graph_file << allScans[source(*ei, g)]->get_rPos()[0] << " " << allScans[source(*ei, g)]->get_rPos()[1] << " " << allScans[source(*ei, g)]->get_rPos()[2] << endl; + graph_file << allScans[target(*ei, g)]->get_rPos()[0] << " " << allScans[target(*ei, g)]->get_rPos()[1] << " " << allScans[target(*ei, g)]->get_rPos()[2] << endl << endl; + } + } + graph_file.close(); + graph2_file.close(); +} + +/** + * write graphviz file with real poses + * @param g the graph + * @param allScans all laser scans + * @param out_file the file to write to + */ +void elch6D::dot_pos_out(graph_t &g, const vector &allScans, string &out_file) +{ + ofstream dot_file(out_file.c_str()); + + dot_file << "graph D {" << endl << "size=\"20,20\"" << endl; + + int n = num_vertices(g); + for(int i = 0; i < n; i++) { + dot_file << i << "[pos=\"" << + allScans[i]->get_rPos()[0] << "," << + allScans[i]->get_rPos()[2] << "\", label=\"\", height=0.1, width=0.1, fixedsize=true];" << endl; + } + graph_traits ::edge_iterator ei, ei_end; + for(tie(ei, ei_end) = edges(g); ei != ei_end; ei++) { + if(source(*ei, g) + 1 != target(*ei, g)) { + dot_file << source(*ei, g) << " -- " << target(*ei, g) << "[color=\"green\"];" << endl; + } else { + dot_file << source(*ei, g) << " -- " << target(*ei, g) << ";" << endl; + } + } + dot_file << "}"; + dot_file.close(); +} + +/** + * sets filename and calls graph_out + * @param g the graph + */ +void elch6D::graph_out(graph_t &g) +{ + string name("graph_" + to_string(num_vertices(g), 3) + ".dot"); + graph_out(g, name); +} + +/** + * uses boost write_graphviz to write the graph + * @param g the graph + * @param out_file the file to write to + */ +void elch6D::graph_out(graph_t &g, string &out_file) +{ + ofstream dot_file(out_file.c_str()); + write_graphviz(dot_file, g); + dot_file.close(); +} + +/** + * sets filename and calls slim_graph_out + */ +void elch6D::slim_graph_out(graph_t g) +{ + string name("slim_graph_" + to_string(num_vertices(g), 3) + ".dot"); + slim_graph_out(g, name); +} + +/** + * writes slim graph (supressing unimportant nodes) + * @param g the graph + * @param out_file the file to write to + */ +void elch6D::slim_graph_out(graph_t g, string &out_file) +{ + bool todo; + graph_traits < graph_t >::vertex_iterator vi, vend; + graph_traits < graph_t >::adjacency_iterator ai; + do { + todo = false; + for(tie(vi, vend) = vertices(g); vi != vend; vi++) { + int me = *vi; + if(degree(me, g) == 2) { + ai = adjacent_vertices(me, g).first; + int one = *ai; + ai++; + int two = *ai; + if(degree(one, g) == 2 && degree(two, g) == 2 && one != me && two != me && one != two) { + clear_vertex(me, g); + add_edge(one, two, g); + remove_vertex(me, g); + todo = true; + break; + } + } + } + } while(todo); + + ofstream dot_file(out_file.c_str()); + write_graphviz(dot_file, g); + dot_file.close(); +} + +/** + * graph balancer algorithm computes the weights + * @param g the graph + * @param f index of the first node + * @param l index of the last node + * @param weights array for the weights + */ +void elch6D::graph_balancer(graph_t &g, int f, int l, double *weights) +{ + list crossings, branches; + crossings.push_back(f); + crossings.push_back(l); + weights[f] = 0; + weights[l] = 1; + + int *p = new int[num_vertices(g)]; + int *p_min = new int[num_vertices(g)]; + double *d = new double[num_vertices(g)]; + double *d_min = new double[num_vertices(g)]; + double dist; + bool do_swap = false; + list::iterator si, ei, s_min, e_min; + + // process all junctions + while(!crossings.empty()) { + dist = -1; + // find shortest crossing for all vertices on the loop + for(si = crossings.begin(); si != crossings.end(); ) { + dijkstra_shortest_paths(g, *si, boost::predecessor_map(p).distance_map(d)); + ei = si; + ei++; + // find shortest crossing for one vertex + for(; ei != crossings.end(); ei++) { + if(*ei != p[*ei] && (dist < 0 || d[*ei] < dist)) { + dist = d[*ei]; + s_min = si; + e_min = ei; + do_swap = true; + } + } + if(do_swap) { + swap(p, p_min); + swap(d, d_min); + do_swap = false; + } + // vertex starts a branch + if(dist < 0) { + branches.push_back(*si); + si = crossings.erase(si); + } else { + si++; + } + } + + if(dist > -1) { + remove_edge(*e_min, p_min[*e_min], g); + for(int i = p_min[*e_min]; i != *s_min; i = p_min[i]) { + //even right with weights[*s_min] > weights[*e_min]! (math works) + weights[i] = weights[*s_min] + (weights[*e_min] - weights[*s_min]) * d_min[i] / d_min[*e_min]; + remove_edge(i, p_min[i], g); + if(degree(i, g) > 0) { + crossings.push_back(i); + } + } + + if(degree(*s_min, g) == 0) { + crossings.erase(s_min); + } + + if(degree(*e_min, g) == 0) { + crossings.erase(e_min); + } + } + } + + delete[] p; + delete[] p_min; + delete[] d; + delete[] d_min; + + graph_traits ::adjacency_iterator ai, ai_end; + int s; + + // error propagation + while(!branches.empty()) { + s = branches.front(); + branches.pop_front(); + + for(tie(ai, ai_end) = adjacent_vertices(s, g); ai != ai_end; ++ai) { + weights[*ai] = weights[s]; + if(degree(*ai, g) > 1) { + branches.push_back(*ai); + } + } + clear_vertex(s, g); + } +} diff --git a/src/slam6d/elch6Deuler.cc b/src/slam6d/elch6Deuler.cc new file mode 100644 index 0000000..c9158d5 --- /dev/null +++ b/src/slam6d/elch6Deuler.cc @@ -0,0 +1,126 @@ +/* + * elch6Deuler implementation + * + * Copyright (C) Jochen Sprickerhof + * + * Released under the GPL version 3. + * + */ + +/** + * @file ELCH implementation using Euler angles + * @author Jochen Sprickerhof. Institute of Computer Science, University of Osnabrueck, Germany. + */ + + +#include "slam6d/elch6Deuler.h" + +#include "slam6d/metaScan.h" +#include "slam6d/lum6Deuler.h" + +#include +using std::cout; +using std::cerr; +using std::endl; + +#include +using std::ofstream; + +#include +using boost::graph_traits; +using namespace NEWMAT; + +#ifdef _MSC_VER +#define tie tr1::tie +#endif + +/** + * ELCH loop closing function using Euler angles + * matches first and last scan of a loop with ICP + * distributes the error + * + * @param allScans all laser scans + * @param first index of first laser scan in the loop + * @param last indes of last laser scan in the loop + * @param g graph for loop optimization + */ +void elch6Deuler::close_loop(const vector &allScans, int first, int last, graph_t &g) +{ + int n = num_vertices(g); + graph_t grb[6]; + Matrix C(6, 6); + graph_traits ::edge_iterator ei, ei_end; + for(tie(ei, ei_end) = edges(g); ei != ei_end; ei++) { + int from = source(*ei, g); + int to = target(*ei, g); + lum6DEuler::covarianceEuler(allScans[from], allScans[to], my_icp6D->get_nns_method(), my_icp6D->get_rnd(), my_icp6D->get_max_dist_match2(), &C); + C = C.i(); + for(int j = 0; j < 6; j++) { + add_edge(from, to, fabs(C(j + 1, j + 1)), grb[j]); + } + } + + double *weights[6]; + for(int i = 0; i < 6; i++) { + weights[i] = new double[n]; + graph_balancer(grb[i], first, last, weights[i]); + } + + vector meta_start; + meta_start.push_back(allScans[first]); + meta_start.push_back(allScans[first + 1]); + meta_start.push_back(allScans[first + 2]); + MetaScan *start = new MetaScan(meta_start, false, false); + vector meta_end; + meta_end.push_back(allScans[last - 2]); + meta_end.push_back(allScans[last - 1]); + meta_end.push_back(allScans[last]); + MetaScan *end = new MetaScan(meta_end, false, false); + + for(int i = last - 2; i <= last; i++) { + for(int j = 0; j < 6; j++) { + weights[j][i] = 0.0; + } + } + + double delta[6]; + delta[0] = allScans[last]->get_rPos()[0]; + delta[1] = allScans[last]->get_rPos()[1]; + delta[2] = allScans[last]->get_rPos()[2]; + delta[3] = allScans[last]->get_rPosTheta()[0]; + delta[4] = allScans[last]->get_rPosTheta()[1]; + delta[5] = allScans[last]->get_rPosTheta()[2]; + + my_icp6D->match(start, end); + + delete start; + delete end; + + delta[0] = allScans[last]->get_rPos()[0] - delta[0]; + delta[1] = allScans[last]->get_rPos()[1] - delta[1]; + delta[2] = allScans[last]->get_rPos()[2] - delta[2]; + delta[3] = allScans[last]->get_rPosTheta()[0] - delta[3]; + delta[4] = allScans[last]->get_rPosTheta()[1] - delta[4]; + delta[5] = allScans[last]->get_rPosTheta()[2] - delta[5]; + + if(!quiet) { + cout << "Delta: " << delta[0] << " " << delta[1] << " " << delta[2] << " " << delta[3] << " " << delta[4] << " " << delta[5] << endl; + } + + double rPos[3], rPosTheta[3]; + for(int i = 1; i < n; i++) { + rPos[0] = allScans[i]->get_rPos()[0] + delta[0] * (weights[0][i] - weights[0][0]); + rPos[1] = allScans[i]->get_rPos()[1] + delta[1] * (weights[1][i] - weights[1][0]); + rPos[2] = allScans[i]->get_rPos()[2] + delta[2] * (weights[2][i] - weights[2][0]); + rPosTheta[0] = allScans[i]->get_rPosTheta()[0] + delta[3] * (weights[3][i] - weights[3][0]); + rPosTheta[1] = allScans[i]->get_rPosTheta()[1] + delta[4] * (weights[4][i] - weights[4][0]); + rPosTheta[2] = allScans[i]->get_rPosTheta()[2] + delta[5] * (weights[5][i] - weights[5][0]); + + allScans[i]->transformToEuler(rPos, rPosTheta, Scan::ELCH, i == n-1 ? 2 : 1); + } + + for(int i = 0; i < 6; i++) { + delete [] weights[i]; + } + +} diff --git a/src/slam6d/elch6Dquat.cc b/src/slam6d/elch6Dquat.cc new file mode 100644 index 0000000..d0563aa --- /dev/null +++ b/src/slam6d/elch6Dquat.cc @@ -0,0 +1,136 @@ +/* + * elch6Dquat implementation + * + * Copyright (C) Jochen Sprickerhof + * + * Released under the GPL version 3. + * + */ + +/** + * @file ELCH implementation using Quaternions + * @author Jochen Sprickerhof. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "slam6d/elch6Dquat.h" + +#include "slam6d/metaScan.h" +#include "slam6d/lum6Dquat.h" +#include "slam6d/globals.icc" + +#include +using std::cout; +using std::cerr; +using std::endl; + +#include +using std::ofstream; + +#include +using boost::graph_traits; +using namespace NEWMAT; + +#ifdef _MSC_VER +#define tie tr1::tie +#endif + +/** + * ELCH loop closing function using Quaternions + * matches first and last scan of a loop with ICP + * distributes the error + * + * @param allScans all laser scans + * @param first index of first laser scan in the loop + * @param last indes of last laser scan in the loop + * @param g graph for loop optimization + */ +void elch6Dquat::close_loop(const vector &allScans, int first, int last, graph_t &g) +{ + int n = num_vertices(g); + graph_t grb[7]; + Matrix C(7, 7); + graph_traits ::edge_iterator ei, ei_end; + for(tie(ei, ei_end) = edges(g); ei != ei_end; ei++) { + int from = source(*ei, g); + int to = target(*ei, g); + lum6DQuat::covarianceQuat(allScans[from], allScans[to], my_icp6D->get_nns_method(), my_icp6D->get_rnd(), my_icp6D->get_max_dist_match2(), &C); + C = C.i(); + for(int j = 0; j < 7; j++) { + add_edge(from, to, fabs(C(j + 1, j + 1)), grb[j]); + } + } + + double *weights[7]; + for(int i = 0; i < 7; i++) { + weights[i] = new double[n]; + graph_balancer(grb[i], first, last, weights[i]); + } + + vector meta_start; + meta_start.push_back(allScans[first]); + meta_start.push_back(allScans[first + 1]); + meta_start.push_back(allScans[first + 2]); + MetaScan *start = new MetaScan(meta_start, false, false); + vector meta_end; + meta_end.push_back(allScans[last - 2]); + meta_end.push_back(allScans[last - 1]); + meta_end.push_back(allScans[last]); + MetaScan *end = new MetaScan(meta_end, false, false); + + for(int i = last - 2; i <= last; i++) { + for(int j = 0; j < 7; j++) { + weights[j][i] = 0.0; + } + } + + double delta[7]; + delta[0] = allScans[last]->get_rPos()[0]; + delta[1] = allScans[last]->get_rPos()[1]; + delta[2] = allScans[last]->get_rPos()[2]; + delta[3] = allScans[last]->get_rPosQuat()[0]; + delta[4] = allScans[last]->get_rPosQuat()[1]; + delta[5] = allScans[last]->get_rPosQuat()[2]; + delta[6] = allScans[last]->get_rPosQuat()[3]; + + my_icp6D->match(start, end); + + delete start; + delete end; + + delta[0] = allScans[last]->get_rPos()[0] - delta[0]; + delta[1] = allScans[last]->get_rPos()[1] - delta[1]; + delta[2] = allScans[last]->get_rPos()[2] - delta[2]; + delta[3] = allScans[last]->get_rPosQuat()[0] - delta[3]; + delta[4] = allScans[last]->get_rPosQuat()[1] - delta[4]; + delta[5] = allScans[last]->get_rPosQuat()[2] - delta[5]; + delta[6] = allScans[last]->get_rPosQuat()[3] - delta[6]; + + if(!quiet) { + double axisangle[4]; + axisangle[0] = delta[3]; + axisangle[1] = delta[4]; + axisangle[2] = delta[5]; + axisangle[3] = delta[6]; + QuatToAA(axisangle); + cout << "Delta: " << delta[0] << " " << delta[1] << " " << delta[2] << " " << axisangle[0] << " " << axisangle[1] << " " << axisangle[2] << " " << axisangle[3] << endl; + } + + double rPos[3], rPosQuat[4]; + for(int i = 1; i < n; i++) { + rPos[0] = allScans[i]->get_rPos()[0] + delta[0] * (weights[0][i] - weights[0][0]); + rPos[1] = allScans[i]->get_rPos()[1] + delta[1] * (weights[1][i] - weights[1][0]); + rPos[2] = allScans[i]->get_rPos()[2] + delta[2] * (weights[2][i] - weights[2][0]); + rPosQuat[0] = allScans[i]->get_rPosQuat()[0] + delta[3] * (weights[3][i] - weights[3][0]); + rPosQuat[1] = allScans[i]->get_rPosQuat()[1] + delta[4] * (weights[4][i] - weights[4][0]); + rPosQuat[2] = allScans[i]->get_rPosQuat()[2] + delta[5] * (weights[5][i] - weights[5][0]); + rPosQuat[3] = allScans[i]->get_rPosQuat()[3] + delta[6] * (weights[6][i] - weights[6][0]); + + Normalize4(rPosQuat); + allScans[i]->transformToQuat(rPos, rPosQuat, Scan::ELCH, i == n-1 ? 2 : 1); + } + + for(int i = 0; i < 7; i++) { + delete [] weights[i]; + } + +} diff --git a/src/slam6d/elch6Dslerp.cc b/src/slam6d/elch6Dslerp.cc new file mode 100644 index 0000000..c9fd84e --- /dev/null +++ b/src/slam6d/elch6Dslerp.cc @@ -0,0 +1,168 @@ +/* + * elch6Dslerp implementation + * + * Copyright (C) Jochen Sprickerhof + * + * Released under the GPL version 3. + * + */ + +/** + * @file ELCH implementation using SLERP + * @author Jochen Sprickerhof. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "slam6d/elch6Dslerp.h" + +#include "slam6d/metaScan.h" +#include "slam6d/lum6Dquat.h" +#include "slam6d/globals.icc" + +#include +using std::cout; +using std::cerr; +using std::endl; + +#include +using std::ofstream; + +#include + +#include +using boost::graph_traits; +using namespace NEWMAT; +/** + * ELCH loop closing function using SLERP + * matches first and last scan of a loop with ICP + * distributes the error + * + * @param allScans all laser scans + * @param first index of first laser scan in the loop + * @param last indes of last laser scan in the loop + * @param g graph for loop optimization + */ +void elch6Dslerp::close_loop(const vector &allScans, int first, int last, graph_t &g) +{ + int n = num_vertices(g); + graph_t grb[4]; + graph_traits ::edge_iterator ei = edges(g).first; + int num_arcs = num_edges(g); + int li = 0; +#ifdef _OPENMP +#pragma omp parallel for firstprivate(li, ei) +#endif + for(int i = 0; i < num_arcs; i++) { + for(;i > li; li++, ei++) ; + for(;i < li; li--, ei--) ; + Matrix C(7, 7); + int from = source(*ei, g); + int to = target(*ei, g); + lum6DQuat::covarianceQuat(allScans[from], allScans[to], my_icp6D->get_nns_method(), my_icp6D->get_rnd(), my_icp6D->get_max_dist_match2(), &C); + C = C.i(); + for(int j = 0; j < 3; j++) { +#ifdef _OPENMP +#pragma omp critical +#endif + add_edge(from, to, fabs(C(j + 1, j + 1)), grb[j]); + } +#ifdef _OPENMP +#pragma omp critical +#endif + add_edge(from, to, fabs(C(4, 4)) + fabs(C(5, 5)) + fabs(C(6, 6)) + fabs(C(7, 7)), grb[3]); + li++; + ei++; + } + + double *weights[4]; + for(int i = 0; i < 4; i++) { + weights[i] = new double[n]; + graph_balancer(grb[i], first, last, weights[i]); + } + + vector meta_start; + for(int i = first - 2; i <= first + 2; i++) { + if(i >= 0) { + meta_start.push_back(allScans[i]); + } + } + MetaScan *start = new MetaScan(meta_start, false, false); + + //static size of metascan + int offset_last_start = 2; + int offset_last_end = 0; + + vector meta_end; + for(int i = last - offset_last_start; i <= last + offset_last_end && i < n; i++) { + meta_end.push_back(allScans[i]); + } + MetaScan *end = new MetaScan(meta_end, false, false); + + double Pl0[16]; + memcpy(Pl0, allScans[last]->get_transMat(), 16 * sizeof(double)); + + my_icp6D->match(start, end); + + delete start; + delete end; + + // store ICP + double Pp0[16]; + memcpy(Pp0, allScans[last]->get_transMat(), 16 * sizeof(double)); + + //compute Delta + double Pf0[16], Pf0_inv[16], tmp1[16], tmp2[16], deltaf[16]; + memcpy(Pf0, allScans[first]->get_transMat(), 16 * sizeof(double)); + M4inv(Pf0, Pf0_inv); + + MMult(Pf0_inv, Pl0, tmp1); + M4inv(tmp1, tmp2); + MMult(Pp0, tmp2, tmp1); + MMult(Pf0_inv, tmp1, deltaf); + + double deltaT[3], deltaQ[4]; + Matrix4ToQuat(deltaf, deltaQ, deltaT); + + if(!quiet) { + double axisangle[4]; + axisangle[0] = deltaQ[0]; + axisangle[1] = deltaQ[1]; + axisangle[2] = deltaQ[2]; + axisangle[3] = deltaQ[3]; + QuatToAA(axisangle); + cout << "Delta: " << deltaT[0] << " " << deltaT[1] << " " << deltaT[2] << " " << axisangle[0] << " " << axisangle[1] << " " << axisangle[2] << " " << axisangle[3] << endl; + } + + //transform scans + double idQ[4] = {1, 0, 0, 0}, rPos[3], rPosQuat[4], delta0[16]; + + rPos[0] = deltaT[0] * weights[0][0]; + rPos[1] = deltaT[1] * weights[1][0]; + rPos[2] = deltaT[2] * weights[2][0]; + slerp(idQ, deltaQ, weights[3][0], rPosQuat); + QuatToMatrix4(rPosQuat, rPos, tmp1); + M4inv(tmp1, tmp2); + MMult(Pf0, tmp2, delta0); + +#ifdef _OPENMP +#pragma omp parallel for private(rPos, rPosQuat, tmp1, tmp2) +#endif + for(int i = 1; i < n; i++) { + if(i >= last - offset_last_start && i <= last + offset_last_end) { + MMult(delta0, Pf0_inv, tmp1); + } else { + rPos[0] = deltaT[0] * weights[0][i]; + rPos[1] = deltaT[1] * weights[1][i]; + rPos[2] = deltaT[2] * weights[2][i]; + slerp(idQ, deltaQ, weights[3][i], rPosQuat); + QuatToMatrix4(rPosQuat, rPos, tmp1); + MMult(delta0, tmp1, tmp2); + MMult(tmp2, Pf0_inv, tmp1); + } + allScans[i]->transform(tmp1, Scan::ELCH, i == n-1 ? 2 : 1); + } + + for(int i = 0; i < 4; i++) { + delete [] weights[i]; + } + +} diff --git a/src/slam6d/elch6DunitQuat.cc b/src/slam6d/elch6DunitQuat.cc new file mode 100644 index 0000000..6c887ed --- /dev/null +++ b/src/slam6d/elch6DunitQuat.cc @@ -0,0 +1,182 @@ +/* + * elch6DunitQuat implementation + * + * Copyright (C) Jochen Sprickerhof + * + * Released under the GPL version 3. + * + */ + + +/** + * @file ELCH implementation using unit Quaternions + * @author Jochen Sprickerhof. Institute of Computer Science, University of Osnabrueck, Germany. + */ + + +#include "slam6d/elch6DunitQuat.h" + +#include "slam6d/metaScan.h" +#include "slam6d/lum6Dquat.h" +#include "slam6d/globals.icc" + +#include +using std::cout; +using std::cerr; +using std::endl; + +#include +using std::ofstream; + +#include +using boost::graph_traits; +using namespace NEWMAT; + +#ifdef _MSC_VER +#define tie tr1::tie +#endif + +/** + * ELCH loop closing function using unit Quaternion + * matches first and last scan of a loop with ICP + * distributes the error + * + * @param allScans all laser scans + * @param first index of first laser scan in the loop + * @param last indes of last laser scan in the loop + * @param g graph for loop optimization + */ +void elch6DunitQuat::close_loop(const vector &allScans, int first, int last, graph_t &g) +{ + int n = num_vertices(g); + graph_t grb[4]; + Matrix C(7, 7); + graph_traits ::edge_iterator ei, ei_end; + for(tie(ei, ei_end) = edges(g); ei != ei_end; ei++) { + int from = source(*ei, g); + int to = target(*ei, g); + lum6DQuat::covarianceQuat(allScans[from], allScans[to], my_icp6D->get_nns_method(), my_icp6D->get_rnd(), my_icp6D->get_max_dist_match2(), &C); + C = C.i(); + for(int j = 0; j < 3; j++) { + add_edge(from, to, abs(C(j + 1, j + 1)), grb[j]); + } + add_edge(from, to, abs(C(4, 4)) + abs(C(5, 5)) + abs(C(6, 6)) + abs(C(7, 7)), grb[3]); + } + + double *weights[4]; + for(int i = 0; i < 4; i++) { + weights[i] = new double[n]; + graph_balancer(grb[i], first, last, weights[i]); + } + + vector meta_start; + meta_start.push_back(allScans[first]); + meta_start.push_back(allScans[first + 1]); + meta_start.push_back(allScans[first + 2]); + MetaScan *start = new MetaScan(meta_start, false, false); + vector meta_end; + meta_end.push_back(allScans[last - 2]); + meta_end.push_back(allScans[last - 1]); + meta_end.push_back(allScans[last]); + MetaScan *end = new MetaScan(meta_end, false, false); + + //save poses bevor ICP + double pOld1[7], pOld2[7], pOld3[7]; + pOld1[0] = allScans[last]->get_rPos()[0]; + pOld1[1] = allScans[last]->get_rPos()[1]; + pOld1[2] = allScans[last]->get_rPos()[2]; + pOld1[3] = allScans[last]->get_rPosQuat()[0]; + pOld1[4] = allScans[last]->get_rPosQuat()[1]; + pOld1[5] = allScans[last]->get_rPosQuat()[2]; + pOld1[6] = allScans[last]->get_rPosQuat()[3]; + + pOld2[0] = allScans[last - 1]->get_rPos()[0]; + pOld2[1] = allScans[last - 1]->get_rPos()[1]; + pOld2[2] = allScans[last - 1]->get_rPos()[2]; + pOld2[3] = allScans[last - 1]->get_rPosQuat()[0]; + pOld2[4] = allScans[last - 1]->get_rPosQuat()[1]; + pOld2[5] = allScans[last - 1]->get_rPosQuat()[2]; + pOld2[6] = allScans[last - 1]->get_rPosQuat()[3]; + + pOld3[0] = allScans[last - 2]->get_rPos()[0]; + pOld3[1] = allScans[last - 2]->get_rPos()[1]; + pOld3[2] = allScans[last - 2]->get_rPos()[2]; + pOld3[3] = allScans[last - 2]->get_rPosQuat()[0]; + pOld3[4] = allScans[last - 2]->get_rPosQuat()[1]; + pOld3[5] = allScans[last - 2]->get_rPosQuat()[2]; + pOld3[6] = allScans[last - 2]->get_rPosQuat()[3]; + + double delta[3]; + delta[0] = allScans[last]->get_rPos()[0]; + delta[1] = allScans[last]->get_rPos()[1]; + delta[2] = allScans[last]->get_rPos()[2]; + double q1[4]; + q1[0] = allScans[last]->get_rPosQuat()[0]; + q1[1] = -allScans[last]->get_rPosQuat()[1]; + q1[2] = -allScans[last]->get_rPosQuat()[2]; + q1[3] = -allScans[last]->get_rPosQuat()[3]; + + my_icp6D->match(start, end); + + delete start; + delete end; + + delta[0] = allScans[last]->get_rPos()[0] - delta[0]; + delta[1] = allScans[last]->get_rPos()[1] - delta[1]; + delta[2] = allScans[last]->get_rPos()[2] - delta[2]; + double q2[4]; + q2[0] = allScans[last]->get_rPosQuat()[0]; + q2[1] = allScans[last]->get_rPosQuat()[1]; + q2[2] = allScans[last]->get_rPosQuat()[2]; + q2[3] = allScans[last]->get_rPosQuat()[3]; + + double deltaQ[4]; + QMult(q2, q1, deltaQ); // q3 = q2*q1^-1 + + if(!quiet) { + double axisangle[4]; + axisangle[0] = deltaQ[0]; + axisangle[1] = deltaQ[1]; + axisangle[2] = deltaQ[2]; + axisangle[3] = deltaQ[3]; + QuatToAA(axisangle); + cout << "Delta: " << delta[0] << " " << delta[1] << " " << delta[2] << " " << axisangle[0] << " " << axisangle[1] << " " << axisangle[2] << " " << axisangle[3] << endl; + } + + // restore poses after ICP matching + allScans[last]->transformToQuat(pOld1, &pOld1[3], Scan::INVALID, -1); + allScans[last - 1]->transformToQuat(pOld2, &pOld2[3], Scan::INVALID, -1); + allScans[last - 2]->transformToQuat(pOld3, &pOld3[3], Scan::INVALID, -1); + + //compute inverse rotation of Scan 0 + double scan0Pdelta[4], scan0Q[4]; + QMult(deltaQ, allScans[0]->get_rPosQuat(), scan0Pdelta); + scan0Q[0] = (1 - weights[3][0]) * allScans[0]->get_rPosQuat()[0] + scan0Pdelta[0] * weights[3][0]; + scan0Q[1] = -1 * ((1 - weights[3][0]) * allScans[0]->get_rPosQuat()[1] + scan0Pdelta[1] * weights[3][0]); + scan0Q[2] = -1 * ((1 - weights[3][0]) * allScans[0]->get_rPosQuat()[2] + scan0Pdelta[2] * weights[3][0]); + scan0Q[3] = -1 * ((1 - weights[3][0]) * allScans[0]->get_rPosQuat()[3] + scan0Pdelta[3] * weights[3][0]); + Normalize4(scan0Q); + QMult(allScans[0]->get_rPosQuat(), scan0Q, scan0Pdelta); + + double rPos[3], rPosQuat[4], tmpquat[4]; + for(int i = 1; i < n; i++) { + rPos[0] = allScans[i]->get_rPos()[0] + delta[0] * (weights[0][i] - weights[0][0]); + rPos[1] = allScans[i]->get_rPos()[1] + delta[1] * (weights[1][i] - weights[1][0]); + rPos[2] = allScans[i]->get_rPos()[2] + delta[2] * (weights[2][i] - weights[2][0]); + QMult(deltaQ, allScans[i]->get_rPosQuat(), rPosQuat); + tmpquat[0] = (1 - weights[3][i]) * allScans[i]->get_rPosQuat()[0] + rPosQuat[0] * weights[3][i]; + tmpquat[1] = (1 - weights[3][i]) * allScans[i]->get_rPosQuat()[1] + rPosQuat[1] * weights[3][i]; + tmpquat[2] = (1 - weights[3][i]) * allScans[i]->get_rPosQuat()[2] + rPosQuat[2] * weights[3][i]; + tmpquat[3] = (1 - weights[3][i]) * allScans[i]->get_rPosQuat()[3] + rPosQuat[3] * weights[3][i]; + Normalize4(tmpquat); + QMult(scan0Pdelta, tmpquat, rPosQuat); + + Normalize4(rPosQuat); + allScans[i]->transformToQuat(rPos, rPosQuat, Scan::ELCH, i == n-1 ? 2 : 1); + } + + for(int i = 0; i < 4; i++) { + delete [] weights[i]; + } + +} diff --git a/src/slam6d/exportPoints.cc b/src/slam6d/exportPoints.cc new file mode 100644 index 0000000..ca4acd6 --- /dev/null +++ b/src/slam6d/exportPoints.cc @@ -0,0 +1,322 @@ +/* + * exportPoints implementation + * + * Copyright (C) Jochen Sprickerhof + * + * Released under the GPL version 3. + * + */ + + +/** + * @file + * @author Jochen Sprickerhof. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include +using std::string; +#include +using std::cout; +using std::cerr; +using std::endl; +#include +using std::ifstream; +#include +using std::exception; + +#include +#include + +#include "slam6d/scan.h" +#include "slam6d/globals.icc" + +#ifndef _MSC_VER +#include +#else +#include "XGetopt.h" +#endif + +#ifdef _MSC_VER +#define strcasecmp _stricmp +#define strncasecmp _strnicmp +#else +#include +#endif + +/** + * Explains the usage of this program's command line parameters + */ +void usage(char* prog) +{ +#ifndef _MSC_VER + const string bold("\033[1m"); + const string normal("\033[m"); +#else + const string bold(""); + const string normal(""); +#endif + cout << endl + << bold << "USAGE " << normal << endl + << " " << prog << " [options] directory" << endl << endl; + cout << bold << "OPTIONS" << normal << endl + + << endl + << bold << " -e" << normal << " NR, " << bold << "--end=" << normal << "NR" << endl + << " end after scan NR" << endl + << endl + << bold << " -f" << normal << " F, " << bold << "--format=" << normal << "F" << endl + << " using shared library F for input" << endl + << " (chose F from {uos, uos_map, uos_rgb, uos_frames, uos_map_frames, old, rts, rts_map, ifp, riegl_txt, riegl_rgb, riegl_bin, zahn, ply})" << endl + << endl + << bold << " -m" << normal << " NR, " << bold << "--max=" << normal << "NR" << endl + << " neglegt all data points with a distance larger than NR 'units'" << endl + << endl + << bold << " -M" << normal << " NR, " << bold << "--min=" << normal << "NR" << endl + << " neglegt all data points with a distance smaller than NR 'units'" << endl + << endl + << bold << " -O" << normal << " NR (optional), " << bold << "--octree=" << normal << "NR (optional)" << endl + << " use randomized octree based point reduction (pts per voxel=)" << endl + << " requires -r or --reduce" << endl + << endl + << bold << " -p, --trustpose" << normal << endl + << " Trust the pose file, do not extrapolate the last transformation." << endl + << " (just for testing purposes, or gps input.)" << endl + << endl + << endl + << bold << " -r" << normal << " NR, " << bold << "--reduce=" << normal << "NR" << endl + << " turns on octree based point reduction (voxel size=)" << endl + << endl + << bold << " -R" << normal << " NR, " << bold << "--random=" << normal << "NR" << endl + << " turns on randomized reduction, using about every -th point only" << endl + << endl + << bold << " -s" << normal << " NR, " << bold << "--start=" << normal << "NR" << endl + << " start at scan NR (i.e., neglects the first NR scans)" << endl + << " [ATTENTION: counting naturally starts with 0]" << endl + << endl + << endl << endl; + + cout << bold << "EXAMPLES " << normal << endl + << " " << prog << " -s 2 -e 3 dat" << endl << endl; + exit(1); +} + + +/** A function that parses the command-line arguments and sets the respective flags. + * @param argc the number of arguments + * @param argv the arguments + * @param dir the directory + * @param red using point reduction? + * @param rand use randomized point reduction? + * @param mdm maximal distance match + * @param mdml maximal distance match for SLAM + * @param mni maximal number of iterations + * @param start starting at scan number 'start' + * @param end stopping at scan number 'end' + * @param maxDist - maximal distance of points being loaded + * @param minDist - minimal distance of points being loaded + * @param quiet switches on/off the quiet mode + * @param veryQuiet switches on/off the 'very quiet' mode + * @param extrapolate_pose - i.e., extrapolating the odometry by the last transformation + * (vs. taking the pose file as exact) + * @param meta match against all scans (= meta scan), or against the last scan only??? + * @param anim selects the rotation representation for the matching algorithm + * @param mni_lum sets the maximal number of iterations for SLAM + * @param net specifies the file that includes the net structure for SLAM + * @param cldist specifies the maximal distance for closed loops + * @param epsilonICP stop ICP iteration if difference is smaller than this value + * @param epsilonSLAM stop SLAM iteration if average difference is smaller than this value + * @param algo specfies the used algorithm for rotation computation + * @param lum6DAlgo specifies the used algorithm for global SLAM correction + * @param loopsize defines the minimal loop size + * @return 0, if the parsing was successful. 1 otherwise + */ +int parseArgs(int argc, char **argv, string &dir, double &red, int &rand, + int &start, int &end, int &maxDist, int &minDist, bool &extrapolate_pose, + int &octree, IOType &type) +{ + int c; + // from unistd.h: + extern char *optarg; + extern int optind; + + /* options descriptor */ + // 0: no arguments, 1: required argument, 2: optional argument + static struct option longopts[] = { + { "format", required_argument, 0, 'f' }, + { "start", required_argument, 0, 's' }, + { "end", required_argument, 0, 'e' }, + { "reduce", required_argument, 0, 'r' }, + { "octree", optional_argument, 0, 'O' }, + { "random", required_argument, 0, 'R' }, + { "trustpose", no_argument, 0, 'p' }, + { 0, 0, 0, 0} // needed, cf. getopt.h + }; + + cout << endl; + while ((c = getopt_long(argc, argv, "f:s:e:r:O:R:p", longopts, NULL)) != -1) + switch (c) + { + case 'r': + red = atof(optarg); + break; + case 'O': + if (optarg) { + octree = atoi(optarg); + } else { + octree = 1; + } + break; + case 'R': + rand = atoi(optarg); + break; + case 's': + start = atoi(optarg); + if (start < 0) { cerr << "Error: Cannot start at a negative scan number.\n"; exit(1); } + break; + case 'e': + end = atoi(optarg); + if (end < 0) { cerr << "Error: Cannot end at a negative scan number.\n"; exit(1); } + if (end < start) { cerr << "Error: cannot be smaller than .\n"; exit(1); } + break; + case 'm': + maxDist = atoi(optarg); + break; + case 'M': + minDist = atoi(optarg); + break; + case 'p': + extrapolate_pose = false; + break; + case 'f': + try { + type = formatname_to_io_type(optarg); + } catch (...) { // runtime_error + cerr << "Format " << optarg << " unknown." << endl; + abort(); + } + break; + case '?': + usage(argv[0]); + return 1; + default: + abort (); + } + + if (optind != argc-1) { + cerr << "\n*** Directory missing ***" << endl; + usage(argv[0]); + } + dir = argv[optind]; + +#ifndef _MSC_VER + if (dir[dir.length()-1] != '/') dir = dir + "/"; +#else + if (dir[dir.length()-1] != '\\') dir = dir + "\\"; +#endif + + return 0; +} + +void readFrames(string dir, int start, int end, IOType &type) +{ + ifstream frame_in; + int fileCounter = start; + string frameFileName; + for (;;) { + if (end > -1 && fileCounter > end) break; // 'nuf read + frameFileName = dir + "scan" + to_string(fileCounter++,3) + ".frames"; + + frame_in.open(frameFileName.c_str()); + + // read 3D scan + if (!frame_in.good()) break; // no more files in the directory + + cout << "Reading Frames for 3D Scan " << frameFileName << "..." << endl; + + // vector Matrices; +// vector algoTypes; + double transMat[16]; + int algoTypeInt; + + while (frame_in.good()) { + try { + frame_in >> transMat >> algoTypeInt; + } + catch (const exception &e) { + break; + } + } + + if(type == UOS_MAP || type == UOS_MAP_FRAMES || type == RTS_MAP) { + Scan::allScans[fileCounter - start]->transformAll(transMat); + if(fileCounter == start+1) { + Scan::allScans[0]->transformAll(transMat); + } + } else { + Scan::allScans[fileCounter - start - 1]->transformAll(transMat); + } + + frame_in.close(); + frame_in.clear(); + } +} + +/** + * program for point export + * Usage: bin/exportPoints 'dir', + * with 'dir' the directory of a set of scans + * ... + */ +int main(int argc, char **argv) +{ + if (argc <= 1) { + usage(argv[0]); + } + + // parsing the command line parameters + // init, default values if not specified + string dir; + double red = -1.0; + int rand = -1; + int start = 0, end = -1; + int maxDist = -1; + int minDist = -1; + bool eP = true; // should we extrapolate the pose?? + int octree = 0; // employ randomized octree reduction? + IOType type = UOS; + +// parseArgs(argc, argv, dir, red, rand, start, end, +// maxDist, minDist, eP, octree, type); +// +// // Get Scans +// Scan::readScans(type, start, end, dir, maxDist, minDist, true); +// +// int end_reduction = (int)Scan::allScans.size(); +//#ifdef _OPENMP +//#pragma omp parallel for schedule(dynamic) +//#endif +// for (int iterator = 0; iterator < end_reduction; iterator++) { +// if (red > 0) { +// cout << "Reducing Scan No. " << iterator << endl; +// } else { +// cout << "Copying Scan No. " << iterator << endl; +// } +// // reduction filter for current scan! +// Scan::allScans[iterator]->calcReducedPoints(red, octree); +// } +// +// if(eP) { +// readFrames(dir, start, end, type); +// } +// +// cout << "Export all 3D Points to file \"points.pts\"" << endl; +// ofstream redptsout("points.pts"); +// for(unsigned int i = 0; i < Scan::allScans.size(); i++) { +// const vector *points = Scan::allScans[i]->get_points(); +// for(unsigned int j = 0; j < points->size(); j++) { +// redptsout << points->at(j) << endl; +// } +// } +// redptsout.close(); +// redptsout.clear(); +} diff --git a/src/slam6d/fbr/CMakeLists.txt b/src/slam6d/fbr/CMakeLists.txt new file mode 100644 index 0000000..aabf033 --- /dev/null +++ b/src/slam6d/fbr/CMakeLists.txt @@ -0,0 +1,23 @@ +FIND_PACKAGE(OpenCV REQUIRED) + +SET(FBR_IO_SRC scan_cv.cc) +add_library(fbr_cv_io STATIC ${FBR_IO_SRC}) + +SET(FBR_PANORAMA_SRC panorama.cc) +add_library(fbr_panorama STATIC ${FBR_PANORAMA_SRC}) + +SET(FBR_FEATURE_SRC feature.cc) +add_library(fbr_feature STATIC ${FBR_FEATURE_SRC}) + +SET(FBR_FEATURE_MATCHER_SRC feature_matcher.cc) +add_library(fbr_feature_matcher STATIC ${FBR_FEATURE_MATCHER_SRC}) + +SET(FBR_REGISTRATION_SRC registration.cc) +add_library(fbr_registration STATIC ${FBR_REGISTRATION_SRC}) + +IF(WITH_FBR) +SET(FBR_LIBS scan ANN ${OpenCV_LIBS}) + +add_executable(featurebasedregistration feature_based_registration.cc fbr_global.cc) +target_link_libraries(featurebasedregistration fbr_cv_io fbr_panorama fbr_feature fbr_feature_matcher fbr_registration ${FBR_LIBS}) +ENDIF(WITH_FBR) \ No newline at end of file diff --git a/src/slam6d/fbr/fbr_global.cc b/src/slam6d/fbr/fbr_global.cc new file mode 100644 index 0000000..b32aff8 --- /dev/null +++ b/src/slam6d/fbr/fbr_global.cc @@ -0,0 +1,199 @@ +/* + * fbr_global implementation + * + * Copyright (C) HamidReza Houshiar + * + * Released under the GPL version 3. + * + */ + +#include "slam6d/fbr/fbr_global.h" +#include + +namespace fbr{ + string scanFormatToString(IOType format){ + return io_type_to_libname(format); + } + + IOType stringToScanFormat(string format){ + return formatname_to_io_type(format.c_str()); + } + + string projectionMethodToString(projection_method method){ + string sMethod; + switch(method){ + case EQUIRECTANGULAR: + sMethod = "EQUIRECTANGULAR"; + break; + case CYLINDRICAL: + sMethod = "CYLINDRICAL"; + break; + case MERCATOR: + sMethod = "MERCATOR"; + break; + case RECTILINEAR: + sMethod = "RECTILINEAR"; + break; + case PANNINI: + sMethod = "PANNINI"; + break; + case STEREOGRAPHIC: + sMethod = "STEREOGRAPHIC"; + break; + case ZAXIS: + sMethod = "ZAXIS"; + break; + default: + throw std::runtime_error(std::string("projection method ") + to_string(method) + std::string(" could not be matched to a projection method")); + } + return sMethod; + } + + projection_method stringToProjectionMethod(string method){ + if(strcasecmp(method.c_str(), "EQUIRECTANGULAR") == 0) return EQUIRECTANGULAR; + else if(strcasecmp(method.c_str(), "CYLINDRICAL") == 0) return CYLINDRICAL; + else if(strcasecmp(method.c_str(), "MERCATOR") == 0) return MERCATOR; + else if(strcasecmp(method.c_str(), "RECTILINEAR") == 0) return RECTILINEAR; + else if(strcasecmp(method.c_str(), "PANNINI") == 0) return PANNINI; + else if(strcasecmp(method.c_str(), "STEREOGRAPHIC") == 0) return STEREOGRAPHIC; + else if(strcasecmp(method.c_str(), "ZAXIS") == 0) return ZAXIS; + else throw std::runtime_error(std::string("projection method ") + method + std::string(" is unknown")); + } + + string panoramaMapMethodToString(panorama_map_method method){ + string sMethod; + switch(method){ + case FARTHEST: + sMethod = "FARTHEST"; + break; + case EXTENDED: + sMethod = "EXTENDED"; + break; + default: + throw std::runtime_error(std::string("panorama map method ") + to_string(method) + std::string(" could not be matched to a panorama map method")); + } + return sMethod; + } + + panorama_map_method stringToPanoramaMapMethod(string method){ + if(strcasecmp(method.c_str(), "FARTHEST") == 0) return FARTHEST; + else if(strcasecmp(method.c_str(), "EXTENDED") == 0) return EXTENDED; + else throw std::runtime_error(std::string("panorama map method ") + method + std::string(" is unknown")); + } + + string featureDetectorMethodToString(feature_detector_method method){ + string sMethod; + switch(method){ + case SIFT_DET: + sMethod = "SIFT_DET"; + break; + case SURF_DET: + sMethod = "SURF_DET"; + break; + case ORB_DET: + sMethod = "ORB_DET"; + break; + case FAST_DET: + sMethod = "FAST_DET"; + break; + case STAR_DET: + sMethod = "STAR_DET"; + break; + default: + throw std::runtime_error(std::string("feature detector method ") + to_string(method) + std::string(" could not be matched to a feature detector method")); + } + return sMethod; + } + + feature_detector_method stringToFeatureDetectorMethod(string method){ + if(strcasecmp(method.c_str(), "SIFT") == 0) return SIFT_DET; + else if(strcasecmp(method.c_str(), "SURF") == 0) return SURF_DET; + else if(strcasecmp(method.c_str(), "ORB") == 0) return ORB_DET; + else if(strcasecmp(method.c_str(), "FAST") == 0) return FAST_DET; + else if(strcasecmp(method.c_str(), "STAR") == 0) return STAR_DET; + else throw std::runtime_error(std::string("feature detector method ") + method + std::string(" is unknown")); + } + + string featureDescriptorMethodToString(feature_descriptor_method method){ + string sMethod; + switch(method){ + case SIFT_DES: + sMethod = "SIFT_DES"; + break; + case SURF_DES: + sMethod = "SURF_DES"; + break; + case ORB_DES: + sMethod = "ORB_DES"; + break; + default: + throw std::runtime_error(std::string("feature descriptor method ") + to_string(method) + std::string(" could not be matched to a feature descriptor method")); + } + return sMethod; + } + + feature_descriptor_method stringToFeatureDescriptorMethod(string method){ + if(strcasecmp(method.c_str(), "SIFT") == 0) return SIFT_DES; + else if(strcasecmp(method.c_str(), "SURF") == 0) return SURF_DES; + else if(strcasecmp(method.c_str(), "ORB") == 0) return ORB_DES; + else throw std::runtime_error(std::string("feature descriptor method ") + method + std::string(" is unknown")); + } + + string matcherMethodToString(matcher_method method){ + string sMethod; + switch(method){ + case BRUTEFORCE: + sMethod = "BRUTEFORCE"; + break; + case FLANN: + sMethod = "FLANN"; + break; + case KNN: + sMethod = "KNN"; + break; + case RADIUS: + sMethod = "RADIUS"; + break; + case RATIO: + sMethod = "RATIO"; + break; + default: + throw std::runtime_error(std::string("matcher method ") + to_string(method) + std::string(" could not be matched to a matcher method")); + } + return sMethod; + } + + matcher_method stringToMatcherMethod(string method){ + if(strcasecmp(method.c_str(), "BRUTEFORCE") == 0) return BRUTEFORCE; + else if(strcasecmp(method.c_str(), "FLANN") == 0) return FLANN; + else if(strcasecmp(method.c_str(), "KNN") == 0) return KNN; + else if(strcasecmp(method.c_str(), "RADIUS") == 0) return RADIUS; + else if(strcasecmp(method.c_str(), "RATIO") == 0) return RATIO; + else throw std::runtime_error(std::string("matcher method ") + method + std::string(" is unknown")); + } + + string registrationMethodToString(registration_method method){ + string sMethod; + switch(method){ + case ALL: + sMethod = "ALL"; + break; + case RANSAC: + sMethod = "RANSAC"; + break; + case DISABLE: + sMethod = "DISABLE"; + break; + default: + throw std::runtime_error(std::string("registration method ") + to_string(method) + std::string(" could not be matched to a registration method")); + } + return sMethod; + } + + registration_method stringToRegistrationMethod(string method){ + if(strcasecmp(method.c_str(), "ALL") == 0) return ALL; + else if(strcasecmp(method.c_str(), "RANSAC") == 0) return RANSAC; + else if(strcasecmp(method.c_str(), "DISABLE") == 0) return DISABLE; + else throw std::runtime_error(std::string("registration method ") + method + std::string(" is unknown")); + } +} diff --git a/src/slam6d/fbr/feature.cc b/src/slam6d/fbr/feature.cc new file mode 100644 index 0000000..d7cdcca --- /dev/null +++ b/src/slam6d/fbr/feature.cc @@ -0,0 +1,117 @@ +/* + * feature implementation + * + * Copyright (C) HamidReza Houshiar + * + * Released under the GPL version 3. + * + */ + +#include "slam6d/fbr/feature.h" + +using namespace std; + +namespace fbr{ + + feature::feature(){ + fDetectorMethod = SIFT_DET; + fDescriptorMethod = SIFT_DES; + } + + void feature::featureDetection(cv::Mat pImage, feature_detector_method method){ + //Detect the keypoints using SURF Detector + if(fDetectorMethod == SURF_DET){ + double minHessian = 400; + cv::SurfFeatureDetector detector(minHessian); + detector.detect(pImage, keypoints); + } + + //Detect the keypoints using SIFT Detector + if(fDetectorMethod == SIFT_DET){ + cv::SiftFeatureDetector detector; + detector.detect(pImage, keypoints); + } + + //Detect the keypoints using ORB Detector + if(fDetectorMethod == ORB_DET){ + cv::OrbFeatureDetector detector; + detector.detect(pImage, keypoints); + } + + //Detect the keypoints using FAST Detector + if(fDetectorMethod == FAST_DET){ + cv::FastFeatureDetector detector; + detector.detect(pImage, keypoints); + } + + //Detect the keypoints using STAR Detector + if(fDetectorMethod == STAR_DET){ + cv::StarFeatureDetector detector; + detector.detect(pImage, keypoints); + } + } + + void feature::featureDetection(cv::Mat pImage){ + featureDetection(pImage, fDetectorMethod); + } + + void feature::featureDescription(cv::Mat pImage, feature_descriptor_method method){ + + if(keypoints.size() == 0) + featureDetection(pImage); + + //Create descriptor using SURF + if(fDescriptorMethod == SURF_DES){ + cv::SurfDescriptorExtractor extractor; + extractor.compute(pImage, keypoints, descriptors); + } + + //Create descriptor using SIFT + if(fDescriptorMethod == SIFT_DES){ + cv::SiftDescriptorExtractor extractor; + extractor.compute(pImage, keypoints, descriptors); + } + + //Create descriptor using ORB + if(fDescriptorMethod == ORB_DES){ + cv::OrbDescriptorExtractor extractor; + extractor.compute(pImage, keypoints, descriptors); + } + } + + void feature::featureDescription(cv::Mat pImage){ + featureDescription(pImage, fDescriptorMethod); + } + + feature_detector_method feature::getDetectorMethod(){ + return fDetectorMethod; + } + + feature_descriptor_method feature::getDescriptorMethod(){ + return fDescriptorMethod; + } + + //check for the keypoints vector not to be empty + vector feature::getFeatures(){ + return keypoints; + } + + //check for the descriptor Mat not to be empty + cv::Mat feature::getDescriptors(){ + return descriptors; + } + + void feature::getDescription(description_method method){ + if(method == FEATURE_DESCRIPTION) + cout<<"fDetectorMethod: "< +#include +#include "slam6d/fbr/fbr_global.h" +#include "slam6d/fbr/scan_cv.h" +#include "slam6d/fbr/panorama.h" +#include "slam6d/fbr/feature.h" +#include "slam6d/fbr/feature_matcher.h" +#include "slam6d/fbr/registration.h" + +using namespace std; +using namespace fbr; + +struct information{ + string local_time; + string dir, outDir; + int iWidth, iHeight, nImages, minDistance, minError, minInlier, fScanNumber, sScanNumber, verbose; + double pParam, mParam; + IOType sFormat; + projection_method pMethod; + feature_detector_method fMethod; + feature_descriptor_method dMethod; + matcher_method mMethod; + registration_method rMethod; + + int fSPoints, sSPoints, fFNum, sFNum, mNum, filteredMNum; + double fSTime, sSTime, fPTime, sPTime, fFTime, sFTime, fDTime, sDTime, mTime, rTime; +} info; + +/** + * usage : explains how to use the program CMD + */ +void usage(int argc, char** argv){ + printf("\n"); + printf("USAGE: %s dir firstScanNumber secondScanNumber \n", argv[0]); + printf("\n"); + printf("\n"); + printf("\tOptions:\n"); + printf("\t\t-F scanFormat\t\t input scan file format [RIEGL_TXT|RXP|ALL SLAM6D SCAN_IO]\n"); + printf("\t\t-W iWidth\t\t panorama image width\n"); + printf("\t\t-H iHeight\t\t panorama image height\n"); + printf("\t\t-p pMethod\t\t projection method [EQUIRECTANGULAR|CYLINDRICAL|MERCATOR|RECTILINEAR|PANNINI|STEREOGRAPHIC|ZAXIS]\n"); + printf("\t\t-N nImage\t\t number of images used for some projections\n"); + printf("\t\t-P pParam\t\t special projection parameter (d for Pannini and r for stereographic)\n"); + printf("\t\t-f fMethod\t\t feature detection method [SURF|SIFT|ORB|FAST|STAR]\n"); + printf("\t\t-d dMethod\t\t feature description method [SURF|SIFT|ORB]\n"); + printf("\t\t-m mMethod\t\t feature matching method [BRUTEFORCE|FLANN|KNN|RADIUS|RATIO]\n"); + printf("\t\t-D minDistance \t\t threshold for min distance in registration process\n"); + printf("\t\t-E minError \t\t threshold for min error in registration process\n"); + printf("\t\t-I minInlier \t\t threshold for min number of inliers in registration process\n"); + printf("\t\t-M mParam \t\t special matching paameter (knn for KNN and r for radius)\n"); + printf("\t\t-r registration \t registration method [ALL|ransac]\n"); + printf("\t\t-V verbose \t\t level verboseness\n"); + printf("\t\t-O outDir \t\t level output directory if not stated same as input\n"); + printf("\n"); + exit(1); +} + +void parssArgs(int argc, char** argv, information& info){ + time_t rawtime; + struct tm *timeinfo; + time(&rawtime); + char time[50]; + timeinfo = localtime (&rawtime); + sprintf(time, "%d-%d-%d-%d:%d:%d", timeinfo->tm_year + 1900, timeinfo->tm_mon + 1, timeinfo->tm_mday, timeinfo->tm_hour, timeinfo->tm_min, timeinfo->tm_sec); + info.local_time = time; + + //default values + info.iWidth = 3600; + info.iHeight = 1000; + info.nImages = 1; + info.minDistance = 50; + info.minError = 50; + info.minInlier = 5; + info.verbose = 0; + //depend on the projection method + info.pParam = 0; + info.mParam = 0; + //=============================== + info.sFormat = RIEGL_TXT; + info.pMethod = EQUIRECTANGULAR; + info.fMethod = SIFT_DET; + info.dMethod = SIFT_DES; + info.mMethod = RATIO; + info.rMethod = RANSAC; + info.outDir = ""; + + int c; + opterr = 0; + //reade the command line and get the options + while ((c = getopt (argc, argv, "F:W:H:p:N:P:f:d:m:D:E:I:M:r:V:O:")) != -1) + switch (c) + { + case 'F': + info.sFormat = stringToScanFormat(optarg); + break; + case 'W': + info.iWidth = atoi(optarg); + break; + case 'H': + info.iHeight = atoi(optarg); + break; + case 'p': + info.pMethod = stringToProjectionMethod(optarg); + break; + case 'N': + info.nImages = atoi(optarg); + break; + case 'P': + info.pParam = atoi(optarg); + break; + case 'f': + info.fMethod = stringToFeatureDetectorMethod(optarg); + break; + case 'd': + info.dMethod = stringToFeatureDescriptorMethod(optarg); + break; + case 'm': + info.mMethod = stringToMatcherMethod(optarg); + break; + case 'D': + info.minDistance = atoi(optarg); + break; + case 'E': + info.minError = atoi(optarg); + break; + case 'I': + info.minInlier = atoi(optarg); + break; + case 'M': + info.mParam = atoi(optarg); + break; + case 'r': + info.rMethod = stringToRegistrationMethod(optarg); + break; + case 'V': + info.verbose = atoi(optarg); + break; + case 'O': + info.outDir = optarg; + break; + case '?': + cout<<"Unknown option character "< argc - 3) + { + cout<<"Too few input arguments. At least dir and two scan numbers are required."<(i,0) = bAlign[i]; + + string yml; + yml = info.outDir+"fbr-yml.yml"; + cv::FileStorage fs(yml.c_str(), cv::FileStorage::APPEND); + fs << "feature_bas_registration" << "{"; + + fs << "pair" << "{" << "scan" << to_string(info.fScanNumber, 3); + fs << "scan" << to_string(info.sScanNumber, 3) << "}"; + + fs << "time" << "{" << "local_time" << info.local_time << "}"; + + fs << "param" << "{"; + fs << "DIR" << info.dir; + fs << "sFormat" << scanFormatToString(info.sFormat); + fs << "pMethod" << projectionMethodToString(info.pMethod); + fs << "nImage" << info.nImages; + fs << "pParam" << info.pParam; + fs << "iWidth" << info.iWidth; + fs << "iHeight" << info.iHeight; + fs << "fMethod" << featureDetectorMethodToString(info.fMethod); + fs << "dMethod" << featureDescriptorMethodToString(info.dMethod); + fs << "mMethod" << matcherMethodToString(info.mMethod); + fs << "mParam" << info.mParam; + fs << "rMethod" << registrationMethodToString(info.rMethod); + fs << "minDistance" << info.minDistance; + fs << "minInlier" << info.minInlier; + fs << "minError" << info.minError; + fs << "}"; + + fs << "input" << "{"; + fs << "first_input" << "{"; + fs << "name" << "{" << "scan" << to_string(info.fScanNumber, 3) << "}"; + fs << "point" << "{" << "amount" << info.fSPoints << "time" << info.fSTime << "}"; + fs << "projection" << "{" << "time" << info.fPTime << "}"; + fs << "feature" << "{" << "amount" << info.fFNum << "fTime" << info.fFTime << "dTime" << info.fDTime << "}"; + fs << "}"; + fs << "second_input" << "{"; + fs << "name" << "{" << "scan" << to_string(info.sScanNumber, 3) << "}"; + fs << "point" << "{" << "amount" << info.sSPoints << "time" << info.sSTime << "}"; + fs << "projection" << "{" << "time" << info.sPTime << "}"; + fs << "feature" << "{" << "amount" << info.sFNum << "fTime" << info.sFTime << "dTime" << info.sDTime << "}"; + fs << "}"; + fs << "}"; + + fs << "matches" << "{"; + fs << "amount" << info.mNum << "filteration" << info.filteredMNum << "time" << info.mTime << "}"; + + fs << "reg" << "{"; + fs << "bestError" << bError << "bestErrorIdx" << bErrorIdx << "time" << info.rTime << "bAlign" << align << "}"; + + fs << "}"; +} + +int main(int argc, char** argv){ + string out; + cv::Mat outImage; + parssArgs(argc, argv, info); + if(info.verbose >= 1) informationDescription(info); + + scan_cv fScan (info.dir, info.fScanNumber, info.sFormat); + if(info.verbose >= 4) info.fSTime = (double)cv::getTickCount(); + fScan.convertScanToMat(); + if(info.verbose >= 4) info.fSTime = ((double)cv::getTickCount() - info.fSTime)/cv::getTickFrequency(); + if(info.verbose >= 2) fScan.getDescription(); + panorama fPanorama (info.iWidth, info.iHeight, info.pMethod, info.nImages, info.pParam); + if(info.verbose >= 4) info.fPTime = (double)cv::getTickCount(); + fPanorama.createPanorama(fScan.getMatScan()); + if(info.verbose >= 4) info.fPTime = ((double)cv::getTickCount() - info.fPTime)/cv::getTickFrequency(); + if(info.verbose >= 2) fPanorama.getDescription(); + //write panorama to image + if(info.verbose >= 1){ + out = info.outDir+info.local_time+"_scan"+to_string(info.fScanNumber, 3)+"_"+projectionMethodToString(info.pMethod)+"_"+to_string(info.iWidth)+"x"+to_string(info.iHeight)+".jpg"; + imwrite(out, fPanorama.getReflectanceImage()); + } + feature fFeature; + if(info.verbose >= 4) info.fFTime = (double)cv::getTickCount(); + fFeature.featureDetection(fPanorama.getReflectanceImage(), info.fMethod); + if(info.verbose >= 4) info.fFTime = ((double)cv::getTickCount() - info.fFTime)/cv::getTickFrequency(); + //write panorama with keypoints to image + if(info.verbose >= 1){ + cv::drawKeypoints(fPanorama.getReflectanceImage(), fFeature.getFeatures(), outImage, cv::Scalar::all(-1), cv::DrawMatchesFlags::DRAW_RICH_KEYPOINTS ); + out = info.outDir+info.local_time+"_scan"+to_string(info.fScanNumber, 3)+"_"+projectionMethodToString(info.pMethod)+"_"+to_string(info.iWidth)+"x"+to_string(info.iHeight)+"_"+featureDetectorMethodToString(info.fMethod)+".jpg"; + imwrite(out, outImage); + outImage.release(); + } + if(info.verbose >= 4) info.fDTime = (double)cv::getTickCount(); + fFeature.featureDescription(fPanorama.getReflectanceImage(), info.dMethod); + if(info.verbose >= 4) info.fDTime = ((double)cv::getTickCount() - info.fDTime)/cv::getTickFrequency(); + if(info.verbose >= 2) fFeature.getDescription(); + + scan_cv sScan (info.dir, info.sScanNumber, info.sFormat); + if(info.verbose >= 4) info.sSTime = (double)cv::getTickCount(); + sScan.convertScanToMat(); + if(info.verbose >= 4) info.sSTime = ((double)cv::getTickCount() - info.sSTime)/cv::getTickFrequency(); + if(info.verbose >= 2) sScan.getDescription(); + panorama sPanorama (info.iWidth, info.iHeight, info.pMethod, info.nImages, info.pParam); + if(info.verbose >= 4) info.sPTime = (double)cv::getTickCount(); + sPanorama.createPanorama(sScan.getMatScan()); + if(info.verbose >= 4) info.sPTime = ((double)cv::getTickCount() - info.sPTime)/cv::getTickFrequency(); + if(info.verbose >= 2) sPanorama.getDescription(); + //write panorama to image + if(info.verbose >= 1){ + out = info.outDir+info.local_time+"_scan"+to_string(info.sScanNumber, 3)+"_"+projectionMethodToString(info.pMethod)+"_"+to_string(info.iWidth)+"x"+to_string(info.iHeight)+".jpg"; + imwrite(out, sPanorama.getReflectanceImage()); + } + feature sFeature; + if(info.verbose >= 4) info.sFTime = (double)cv::getTickCount(); + sFeature.featureDetection(sPanorama.getReflectanceImage(), info.fMethod); + if(info.verbose >= 4) info.sFTime = ((double)cv::getTickCount() - info.sFTime)/cv::getTickFrequency(); + //write panorama with keypoints to image + if(info.verbose >= 1){ + cv::drawKeypoints(sPanorama.getReflectanceImage(), sFeature.getFeatures(), outImage, cv::Scalar::all(-1), cv::DrawMatchesFlags::DRAW_RICH_KEYPOINTS ); + out = info.outDir+info.local_time+"_scan"+to_string(info.sScanNumber, 3)+"_"+projectionMethodToString(info.pMethod)+"_"+to_string(info.iWidth)+"x"+to_string(info.iHeight)+"_"+featureDetectorMethodToString(info.fMethod)+".jpg"; + imwrite(out, outImage); + outImage.release(); + } + if(info.verbose >= 4) info.sDTime = (double)cv::getTickCount(); + sFeature.featureDescription(sPanorama.getReflectanceImage(), info.dMethod); + if(info.verbose >= 4) info.sDTime = ((double)cv::getTickCount() - info.sDTime)/cv::getTickFrequency(); + if(info.verbose >= 2) sFeature.getDescription(); + + feature_matcher matcher (info.mMethod, info.mParam); + if(info.verbose >= 4) info.mTime = (double)cv::getTickCount(); + matcher.match(fFeature, sFeature); + if(info.verbose >= 4) info.mTime = ((double)cv::getTickCount() - info.mTime)/cv::getTickFrequency(); + if(info.verbose >= 2) matcher.getDescription(); + //write matcheed feature to image + if(info.verbose >= 1){ + cv::drawMatches(fPanorama.getReflectanceImage(), fFeature.getFeatures(), sPanorama.getReflectanceImage(), sFeature.getFeatures(), matcher.getMatches(), outImage, cv::Scalar::all(-1), cv::Scalar::all(-1), vector(), cv::DrawMatchesFlags::NOT_DRAW_SINGLE_POINTS); + out = info.outDir+info.local_time+"_scan"+to_string(info.fScanNumber, 3)+"_scan"+to_string(info.sScanNumber, 3)+"_"+projectionMethodToString(info.pMethod)+"_"+to_string(info.iWidth)+"x"+to_string(info.iHeight)+"_"+featureDetectorMethodToString(info.fMethod)+"_"+featureDescriptorMethodToString(info.dMethod)+"_"+matcherMethodToString(info.mMethod)+".jpg"; + imwrite(out, outImage); + outImage.release(); + } + + registration reg (info.minDistance, info.minError, info.minInlier, info.rMethod); + if(info.verbose >= 4) info.rTime = (double)cv::getTickCount(); + reg.findRegistration(fPanorama.getMap(), fFeature.getFeatures(), sPanorama.getMap(), sFeature.getFeatures(), matcher.getMatches()); + if(info.verbose >= 4) info.rTime = ((double)cv::getTickCount() - info.rTime)/cv::getTickFrequency(); + if(info.verbose >= 2) reg.getDescription(); + + //write .dat and .frames files + if(info.verbose >= 0){ + double *bAlign = reg.getBestAlign(); + + out = info.outDir+info.local_time+"_scan"+to_string(info.fScanNumber, 3)+"_scan"+to_string(info.sScanNumber, 3)+"_"+projectionMethodToString(info.pMethod)+"_"+to_string(info.iWidth)+"x"+to_string(info.iHeight)+"_"+featureDetectorMethodToString(info.fMethod)+"_"+featureDescriptorMethodToString(info.dMethod)+"_"+matcherMethodToString(info.mMethod)+"_"+registrationMethodToString(info.rMethod)+".dat"; + ofstream dat(out.c_str()); + dat << bAlign[0] << " " << bAlign[4] << " " << bAlign[8] << " " << bAlign[12] <= 3){ + info.fSPoints = fScan.getNumberOfPoints(); + info.sSPoints = sScan.getNumberOfPoints(); + info.fFNum = fFeature.getNumberOfFeatures(); + info.sFNum = sFeature.getNumberOfFeatures(); + info.mNum = matcher.getNumberOfMatches(); + info.filteredMNum = matcher.getNumberOfFilteredMatches(); + + info_yml(info, reg.getBestError(), reg.getBestErrorIndex(), reg.getBestAlign()); + } + + return 0; +} diff --git a/src/slam6d/fbr/feature_matcher.cc b/src/slam6d/fbr/feature_matcher.cc new file mode 100644 index 0000000..cd0b3fa --- /dev/null +++ b/src/slam6d/fbr/feature_matcher.cc @@ -0,0 +1,234 @@ +/* + * feature_mathcer implementation + * + * Copyright (C) HamidReza Houshiar + * + * Released under the GPL version 3. + * + */ + +#include "slam6d/fbr/feature_matcher.h" + +using namespace std; + +namespace fbr{ + + void feature_matcher::init(matcher_method method, int k, double r){ + mMethod = method; + knn = k; + radius = r; + nOfMatches = 0; + nOfFilteredMatches = 0; + } + + feature_matcher::feature_matcher(){ + init(RATIO, 0, 0); + } + + feature_matcher::feature_matcher(matcher_method method){ + if(method == KNN) + init(method, 3, 0); + else if(method == RADIUS) + init(method, 0, 1); + else + init(method, 0, 0); + } + + feature_matcher::feature_matcher(matcher_method method, double p){ + if(method == KNN) + init(method, p, 0); + else if(method == RADIUS) + init(method, 0, p); + else + init(method, 0, 0); + } + + void feature_matcher::match(feature qFeature, feature tFeature){ + vector< cv::DMatch > qtInitialMatches, tqInitialMatches, gMatches; + vector > qtInitialMatchesVector, tqInitialMatchesVector; + //Matching descriptors using one of the mMethods for SURF and SIFT feature descriptors + if(qFeature.getDescriptorMethod() != tFeature.getDescriptorMethod()){ + cout<<"inputs features don't have the same descriptors!"< it, double range){ + iReflectance.at(y,x) = (*it)[3]*255;//reflectance + iRange.at(y,x) = range;//range + if(mapMethod == FARTHEST){ + //adding the point with max distance + if( iRange.at(y,x) < range ){ + iMap.at(y,x)[0] = (*it)[0];//x + iMap.at(y,x)[1] = (*it)[1];//y + iMap.at(y,x)[2] = (*it)[2];//z + } + }else if(mapMethod == EXTENDED){ + //adding all the points + cv::Vec3f point; + point[0] = (*it)[0];//x + point[1] = (*it)[1];//y + point[2] = (*it)[2];//z + extendedIMap[y][x].push_back(point); + } + } + + void panorama::createPanorama(cv::Mat scan){ + + //EQUIRECTANGULAR projection + if(pMethod == EQUIRECTANGULAR){ + //adding the longitude to x axis and latitude to y axis + double xFactor = (double) iWidth / 2 / M_PI; + int widthMax = iWidth - 1; + double yFactor = (double) iHeight / ((MAX_ANGLE - MIN_ANGLE) / 360 * 2 * M_PI); + //shift all the valuse to positive points on image + double heightLow =(0 - MIN_ANGLE) / 360 * 2 * M_PI; + int heightMax = iHeight - 1; + + cv::MatIterator_ it, end; + + for( it = scan.begin(), end = scan.end(); it != end; ++it){ + double kart[3], polar[3], phi, theta, range; + kart[0] = (*it)[2]/100; + kart[1] = (*it)[0]/-100; + kart[2] = (*it)[1]/100; + toPolar(kart, polar); + //theta == polar[0] == scan [4] + //phi == polar[1] == scan [5] + //range == polar[2] == scan [3] + theta = polar[0] * 180 / M_PI; + phi = polar[1] * 180 / M_PI; + range = polar[2]; + //horizantal angle of view of [0:360] and vertical of [-40:60] + phi = 360.0 - phi; + phi = phi * 2.0 * M_PI / 360.0; + theta -= 90; + theta *= -1; + theta *= 2.0 * M_PI / 360.0; + int x = (int) ( xFactor * phi); + if (x < 0) x = 0; + if (x > widthMax) x = widthMax; + int y = (int) ( yFactor * (theta + heightLow) ); + y = heightMax - y; + if (y < 0) y = 0; + if (y > heightMax) y = heightMax; + + //create the iReflectance iRange and map + map(x, y, it, range); + } + } + + //CYLINDRICAL projection + if(pMethod == CYLINDRICAL){ + //adding the longitude to x and tan(latitude) to y + //find the x and y range + double xFactor = (double) iWidth / 2 / M_PI; + int widthMax = iWidth - 1; + double yFactor = (double) iHeight / (tan(MAX_ANGLE / 360 * 2 * M_PI) - tan(MIN_ANGLE / 360 * 2 * M_PI)); + double heightLow = (MIN_ANGLE) / 360 * 2 * M_PI; + int heightMax = iHeight - 1; + + cv::MatIterator_ it, end; + + for( it = scan.begin(), end = scan.end(); it != end; ++it){ + double kart[3], polar[3], phi, theta, range; + kart[0] = (*it)[2]/100; + kart[1] = (*it)[0]/-100; + kart[2] = (*it)[1]/100; + toPolar(kart, polar); + //theta == polar[0] == scan [4] + //phi == polar[1] == scan [5] + //range == polar[2] == scan [3] + theta = polar[0] * 180 / M_PI; + phi = polar[1] * 180 / M_PI; + range = polar[2]; + //horizantal angle of view of [0:360] and vertical of [-40:60] + phi = 360.0 - phi; + phi = phi * 2.0 * M_PI / 360.0; + theta -= 90; + theta *= -1; + theta *= 2.0 * M_PI / 360.0; + int x = (int) ( xFactor * phi); + if (x < 0) x = 0; + if (x > widthMax) x = widthMax; + int y = (int) ((double) yFactor * (tan(theta) - tan(heightLow))); + y = heightMax - y; + if (y < 0) y = 0; + if (y > heightMax) y = heightMax; + + //create the iReflectance iRange and map + map(x, y, it, range); + } + } + + //Mercator Projection + if( pMethod == MERCATOR){ + //find the x and y range + double xFactor = (double) iWidth / 2 / M_PI; + int widthMax = iWidth - 1; + double yFactor = (double) iHeight / ( log( tan( MAX_ANGLE / 360 * 2 * M_PI ) + ( 1 / cos( MAX_ANGLE / 360 * 2 * M_PI ) ) ) - log ( tan( MIN_ANGLE / 360 * 2 * M_PI) + (1/cos(MIN_ANGLE / 360 * 2 * M_PI) ) ) ); + double heightLow = log(tan(MIN_ANGLE / 360 * 2 * M_PI) + (1/cos(MIN_ANGLE / 360 * 2 * M_PI))); + int heightMax = iHeight - 1; + + cv::MatIterator_ it, end; + + for( it = scan.begin(), end = scan.end(); it != end; ++it){ + double kart[3], polar[3], phi, theta, range; + kart[0] = (*it)[2]/100; + kart[1] = (*it)[0]/-100; + kart[2] = (*it)[1]/100; + toPolar(kart, polar); + //theta == polar[0] == scan [4] + //phi == polar[1] == scan [5] + //range == polar[2] == scan [3] + theta = polar[0] * 180 / M_PI; + phi = polar[1] * 180 / M_PI; + range = polar[2]; + //horizantal angle of view of [0:360] and vertical of [-40:60] + phi = 360.0 - phi; + phi = phi * 2.0 * M_PI / 360.0; + theta -= 90; + theta *= -1; + theta *= 2.0 * M_PI / 360.0; + int x = (int) ( xFactor * phi); + if (x < 0) x = 0; + if (x > widthMax) x = widthMax; + int y = (int) ( yFactor * (log(tan(theta) + (1/cos(theta))) - heightLow) ); + y = heightMax - y; + if (y < 0) y = 0; + if (y > heightMax) y = heightMax; + + //create the iReflectance iRange and map + map(x, y, it, range); + } + } + + //RECTILINEAR projection + if(pMethod == RECTILINEAR){ + //default value for nImages + if(nImages == 0) nImages = 3; + cout<<"Number of images per scan is: "< it, end; + + for( it = scan.begin(), end = scan.end(); it != end; ++it){ + double kart[3], polar[3], phi, theta, range; + kart[0] = (*it)[2]/100; + kart[1] = (*it)[0]/-100; + kart[2] = (*it)[1]/100; + toPolar(kart, polar); + //theta == polar[0] == scan [4] + //phi == polar[1] == scan [5] + //range == polar[2] == scan [3] + theta = polar[0] * 180 / M_PI; + phi = polar[1] * 180 / M_PI; + range = polar[2]; + //horizantal angle of view of [0:360] and vertical of [-40:60] + phi = 360.0 - phi; + phi = phi * 2.0 * M_PI / 360.0; + theta -= 90; + theta *= -1; + theta *= 2.0 * M_PI / 360.0; + for(unsigned int j = 0 ; j < nImages ; j++){ + iMinx = j * interval; + iMaxx = (j + 1) * interval; + //check for point in interval + if(phi < iMaxx && phi > iMinx){ + double max, min, coscRectilinear; + //the longitude of projection center + l0 = iMinx + interval / 2; + //finding the min and max of the x direction + coscRectilinear = sin(p1) * sin(iMaxy) + cos(p1) * cos(iMaxy) * cos(iMaxx - l0); + max = (cos(iMaxy) * sin(iMaxx - l0) / coscRectilinear); + coscRectilinear = sin(p1) * sin(iMiny) + cos(p1) * cos(iMiny) * cos(iMinx - l0); + min = (cos(iMiny) * sin(iMinx - l0) / coscRectilinear); + double xFactor = (double) (iWidth / nImages) / (max - min); + double xlow = min; + int widthMax = (iWidth / nImages) - 1; + //finding the min and max of y direction + coscRectilinear = sin(p1) * sin(iMaxy) + cos(p1) * cos(iMaxy) * cos(iMaxx - l0); + max = ( (cos(p1) * sin(iMaxy) - sin(p1) * cos(iMaxy) * cos(iMaxx - l0) )/ coscRectilinear); + coscRectilinear = sin(p1) * sin(iMiny) + cos(p1) * cos(iMiny) * cos(iMinx - l0); + min = ( (cos(p1) * sin(iMiny) - sin(p1) * cos(iMiny) * cos(iMinx - l0) )/ coscRectilinear); + double yFactor = (double) iHeight / (max - min); + double heightLow = min; + int heightMax = iHeight - 1; + //project the points and add them to image + coscRectilinear = sin(p1) * sin(theta) + cos(p1) * cos(theta) * cos(phi - l0); + int x = (int)(xFactor) * ((cos(theta) * sin(phi - l0) / coscRectilinear) - xlow); + if (x < 0) x = 0; + if (x > widthMax) x = widthMax; + x = x + (j * iWidth / nImages); + int y = (int) (yFactor) * (( (cos(p1) * sin(theta) - sin(p1) * cos(theta) * cos(phi - l0)) / coscRectilinear) - heightLow); + y = heightMax - y; + if (y < 0) y = 0; + if (y > heightMax) y = heightMax; + + //create the iReflectance iRange and map + map(x, y, it, range); + } + } + } + } + + //PANNINI projection + if(pMethod == PANNINI){ + //default values for nImages and dPannini==pParam + if(pParam == 0) pParam = 1; + if(nImages == 0) nImages = 3; + cout << "Parameter d is:" << pParam <<", Number of images per scan is:" << nImages << endl; + double l0, p1, iMinx, iMaxx, iMiny, iMaxy, interval; + interval = 2 * M_PI / nImages; + iMiny = -M_PI/9; + iMaxy = 2*M_PI/9; + //latitude of projection center + p1 = 0; + + cv::MatIterator_ it, end; + + for( it = scan.begin(), end = scan.end(); it != end; ++it){ + double kart[3], polar[3], phi, theta, range; + kart[0] = (*it)[2]/100; + kart[1] = (*it)[0]/-100; + kart[2] = (*it)[1]/100; + toPolar(kart, polar); + //theta == polar[0] == scan [4] + //phi == polar[1] == scan [5] + //range == polar[2] == scan [3] + theta = polar[0] * 180 / M_PI; + phi = polar[1] * 180 / M_PI; + range = polar[2]; + //horizantal angle of view of [0:360] and vertical of [-40:60] + phi = 360.0 - phi; + phi = phi * 2.0 * M_PI / 360.0; + theta -= 90; + theta *= -1; + theta *= 2.0 * M_PI / 360.0; + for(unsigned int j = 0 ; j < nImages ; j++){ + iMinx = j * interval; + iMaxx = (j + 1) * interval; + //check for point in interval + if(phi < (iMaxx) && phi > (iMinx)){ + double max, min, sPannini; + //the longitude of projection center + l0 = iMinx + interval / 2; + //use the S variable of pannini projection mentioned in the thesis + //finding the min and max of the x direction + sPannini = (pParam + 1) / (pParam + sin(p1) * tan(iMaxy) + cos(p1) * cos(iMaxx - l0)); + max = sPannini * (sin(iMaxx - l0)); + sPannini = (pParam + 1) / (pParam + sin(p1) * tan(iMiny) + cos(p1) * cos(iMinx - l0)); + min = sPannini * (sin(iMinx - l0)); + double xFactor = (double) (iWidth / nImages) / (max - min); + double xlow = min; + int widthMax = (iWidth / nImages) - 1; + //finding the min and max of y direction + sPannini = (pParam + 1) / (pParam + sin(p1) * tan(iMaxy) + cos(p1) * cos(iMaxx - l0)); + max = sPannini * (tan(iMaxy) * (cos(p1) - sin(p1) * 1/tan(iMaxy) * cos(iMaxx - l0))); + sPannini = (pParam + 1) / (pParam + sin(p1) * tan(iMiny) + cos(p1) * cos(iMinx - l0)); + min = sPannini * (tan(iMiny) * (cos(p1) - sin(p1) * 1/tan(iMiny) * cos(iMinx - l0))); + double yFactor = (double) iHeight / (max - min); + double heightLow = min; + int heightMax = iHeight - 1; + //project the points and add them to image + sPannini = (pParam + 1) / (pParam + sin(p1) * tan(theta) + cos(p1) * cos(phi - l0)); + int x = (int)(xFactor) * (sPannini * sin(phi - l0) - xlow); + if (x < 0) x = 0; + if (x > widthMax) x = widthMax; + x = x + (j * iWidth / nImages); + int y = (int) (yFactor) * ( (sPannini * tan(theta) * (cos(p1) - sin(p1) * (1/tan(theta)) * cos(phi - l0) ) ) - heightLow ); + y = heightMax - y; + if (y < 0) y = 0; + if (y > heightMax) y = heightMax; + + //create the iReflectance iRange and map + map(x, y, it, range); + } + } + } + } + + //STEREOGRAPHIC projection + if(pMethod == STEREOGRAPHIC){ + //default values for nImages and rStereographic==pParam + if(pParam == 0) pParam = 2; + if(nImages == 0) nImages = 3; + cout << "Paremeter R is:" << pParam << ", Number of images per scan is:" << nImages << endl; + // l0 and p1 are the center of projection iminx, imaxx, iminy, imaxy are the bounderis of intervals + double l0, p1, iMinx, iMaxx, iMiny, iMaxy, interval; + interval = 2 * M_PI / nImages; + iMiny = -M_PI/9; + iMaxy = 2*M_PI/9; + //latitude of projection center + p1 = 0; + + //go through all points + cv::MatIterator_ it, end; + + for( it = scan.begin(), end = scan.end(); it != end; ++it){ + double kart[3], polar[3], phi, theta, range; + kart[0] = (*it)[2]/100; + kart[1] = (*it)[0]/-100; + kart[2] = (*it)[1]/100; + toPolar(kart, polar); + //theta == polar[0] == scan [4] + //phi == polar[1] == scan [5] + //range == polar[2] == scan [3] + theta = polar[0] * 180 / M_PI; + phi = polar[1] * 180 / M_PI; + range = polar[2]; + //horizantal angle of view of [0:360] and vertical of [-40:60] + phi = 360.0 - phi; + phi = phi * 2.0 * M_PI / 360.0; + theta -= 90; + theta *= -1; + theta *= 2.0 * M_PI / 360.0; + for (unsigned int j = 0 ; j < nImages ; j++){ + iMinx = j * interval; + iMaxx = (j + 1) * interval; + //check for point in intervals + if(phi < (iMaxx) && phi > (iMinx)){ + double max, min, k; + //longitude of projection center + l0 = iMinx + interval / 2; + //use the R variable of stereographic projection mentioned in the thesis + //finding the min and max of x direction + k = (2 * pParam) / (1 + sin(p1) * sin(p1) + cos(p1) * cos(p1) * cos(iMaxx - l0)); + max = k * cos(p1) * sin (iMaxx - l0); + k = (2 * pParam) / (1 + sin (p1) * sin(p1) + cos(p1) * cos(p1) * cos(iMinx -l0)); + min = k * cos(p1) * sin (iMinx -l0); + double xFactor = (double) (iWidth / nImages) / (max - min); + double xlow = min; + int widthMax = (iWidth / nImages) - 1; + //finding the min and max of y direction + k = (2 * pParam) / (1 + sin(p1) * sin(iMaxy) + cos(p1) * cos(iMaxy) * cos(iMaxx - l0)); + max = k * (cos(p1) * sin(iMaxy) - sin(p1) * cos(iMaxy) * cos(iMaxx - l0)); + k = (2 * pParam) / (1 + sin(p1) * sin(iMiny) + cos(p1) * cos(iMiny) * cos(iMinx - l0)); + min = k * (cos(p1) * sin(iMiny) - sin(p1) * cos(iMiny) * cos(iMinx - l0)); + double yFactor = (double) iHeight / (max - min); + double heightLow = min; + int heightMax = iHeight - 1; + //project the points and add them to image + k = (2 * pParam) / (1 + sin(p1) * sin(theta) + cos(p1) * cos(theta) * cos(phi - l0)); + int x = (int) (xFactor) * (k * cos(theta) * sin(phi - l0) - xlow); + if (x < 0) x = 0; + if (x > widthMax) x = widthMax; + x = x + (j * iWidth / nImages); + int y = (int) (yFactor) * (k * ( cos(p1) * sin(theta) - sin(p1) * cos(theta) * cos(phi - l0) ) - heightLow); + y = heightMax - y; + if (y < 0) y = 0; + if (y > heightMax) y = heightMax; + + //create the iReflectance iRange and map + map(x, y, it, range); + } + } + } + } + + //ZAXIS projection + if(pMethod == ZAXIS){ + double zmin = -200; + double zmax = 4000; + //adding the longitude to x axis and latitude to y axis + double xFactor = (double) iWidth / 2 / M_PI; + int widthMax = iWidth - 1; + cout << "ZMAX= " << zmax << " ZMIN= "<< zmin << endl; + double yFactor = (double) iHeight / (zmax - zmin); + //shift all the valuse to positive points on image + double heightLow = zmin; + int heightMax = iHeight - 1; + + cv::MatIterator_ it, end; + + for( it = scan.begin(), end = scan.end(); it != end; ++it){ + double kart[3], polar[3], phi, theta, range; + kart[0] = (*it)[2]/100; + kart[1] = (*it)[0]/-100; + kart[2] = (*it)[1]/100; + toPolar(kart, polar); + //theta == polar[0] == scan [4] + //phi == polar[1] == scan [5] + //range == polar[2] == scan [3] + theta = polar[0] * 180 / M_PI; + phi = polar[1] * 180 / M_PI; + range = polar[2]; + //horizantal angle of view of [0:360] and vertical of [-40:60] + phi = 360.0 - phi; + phi = phi * 2.0 * M_PI / 360.0; + theta -= 90; + theta *= -1; + theta *= 2.0 * M_PI / 360.0; + int x = (int) ( xFactor * phi); + if (x < 0) x = 0; + if (x > widthMax) x = widthMax; + ///////////////////check this + int y = (int) ( yFactor * ((*it)[1] - heightLow) ); + y = heightMax - y; + if (y < 0) y = 0; + if (y > heightMax) y = heightMax; + + //create the iReflectance iRange and map + map(x, y, it, range); + } + } + } + + unsigned int panorama::getImageWidth(){ + return iWidth; + } + + unsigned int panorama::getImageHeight(){ + return iHeight; + } + + projection_method panorama::getProjectionMethod(){ + return pMethod; + } + + unsigned int panorama::getNumberOfImages(){ + return nImages; + } + + double panorama::getProjectionParam(){ + return pParam; + } + + cv::Mat panorama::getReflectanceImage(){ + return iReflectance; + } + + cv::Mat panorama::getMap(){ + return iMap; + } + + cv::Mat panorama::getRangeImage(){ + return iRange; + } + + vector > > panorama::getExtendedMap(){ + return extendedIMap; + } + + panorama_map_method panorama::getMapMethod(){ + return mapMethod; + } + + void panorama::getDescription(){ + cout<<"panorama created with width: "< fKeypoints, vector sKeypoints, vector matches, cv::Mat fPMap, cv::Mat sPMap, int idx, cv::Point3f& cq, cv::Point3f& ct){ + int x, y; + y = fKeypoints[matches[idx].queryIdx].pt.x; + x = fKeypoints[matches[idx].queryIdx].pt.y; + + if(fKeypoints[matches[idx].queryIdx].pt.x - x > 0.5) + x++; + if(fKeypoints[matches[idx].queryIdx].pt.y - y > 0.5) + y++; + cv::Mat_ _fPMap = fPMap; + float sqr = sqrt (_fPMap(x,y)[0] * _fPMap(x,y)[0] + _fPMap(x,y)[1] * _fPMap(x,y)[1] + _fPMap(x,y)[2] * _fPMap(x,y)[2]); + if(sqr != 0){ + cq.x = _fPMap(x,y)[0]; + cq.y = _fPMap(x,y)[1]; + cq.z = _fPMap(x,y)[2]; + } + else + return 0; + + y = sKeypoints[matches[idx].trainIdx].pt.x; + x = sKeypoints[matches[idx].trainIdx].pt.y; + if(sKeypoints[matches[idx].trainIdx].pt.x - x > 0.5) + x++; + if(sKeypoints[matches[idx].trainIdx].pt.y - y > 0.5) + y++; + cv::Mat_ _sPMap = sPMap; + sqr = sqrt (_sPMap(x,y)[0] * _sPMap(x,y)[0] + _sPMap(x,y)[1] * _sPMap(x,y)[1] + _sPMap(x,y)[2] * _sPMap(x,y)[2]); + if(sqr != 0){ + ct.x = _sPMap(x,y)[0]; + ct.y = _sPMap(x,y)[1]; + ct.z = _sPMap(x,y)[2]; + } + else + return 0; + + return 1; + } + + void registration::pointToArray(cv::Point3f c, double* cd){ + cd[0] = c.x; + cd[1] = c.y; + cd[2] = c.z; + } + + cv::Point3f registration::coordTransform(cv::Point3f p, double* align){ + cv::Point3f tp; + tp.x = align[0]*p.x + align[4]*p.y + align[8]*p.z + align[12]; + tp.y = align[1]*p.x + align[5]*p.y + align[9]*p.z + align[13]; + tp.z = align[2]*p.x + align[6]*p.y + align[10]*p.z + align[14]; + return tp; + } + + + int registration::findAlign(unsigned int i, unsigned int j, unsigned int k, cv::Mat fPMap, vector fKeypoints, cv::Mat sPMap, vector sKeypoints, vector matches){ + cv::Point3f c1q, c2q, c3q, c1t, c2t, c3t; + if(i == j || i == k || j == k) + return 0; + //get the coordinates + if(getCoord(fKeypoints, sKeypoints, matches, fPMap, sPMap, i, c1q, c1t) == 0) + return 0; + if(getCoord(fKeypoints, sKeypoints, matches, fPMap, sPMap, j, c2q, c2t) == 0) + return 0; + if(getCoord(fKeypoints, sKeypoints, matches, fPMap, sPMap, k, c3q, c3t) == 0) + return 0; + //check for min distance + if(norm(c1q - c2q) < minDistance || norm(c1q - c3q) < minDistance || norm(c2q - c3q) < minDistance || norm(c1t - c2t) < minDistance || norm(c1t - c3t) < minDistance || norm(c2t - c3t) < minDistance) + return 0; + //calculate the centroids + cv::Point3f centroidq, centroidt; + centroidq = (c1q + c2q + c3q); + centroidt = (c1t + c2t + c3t); + centroidq.x = centroidq.x / 3; + centroidq.y = centroidq.y / 3; + centroidq.z = centroidq.z / 3; + centroidt.x = centroidt.x / 3; + centroidt.y = centroidt.y / 3; + centroidt.z = centroidt.z / 3; + //put each point into double array + double c1qd[3], c2qd[3], c3qd[3], c1td[3], c2td[3], c3td[3]; + cv::Point3f temp; + pointToArray(c1q, c1qd); + pointToArray(c2q, c2qd); + pointToArray(c3q, c3qd); + pointToArray(c1t, c1td); + pointToArray(c2t, c2td); + pointToArray(c3t, c3td); + //create PtPair and calc the align with icp6D_QUAT + vector pairs; + pairs.push_back(PtPair(c1qd, c1td)); + pairs.push_back(PtPair(c2qd, c2td)); + pairs.push_back(PtPair(c3qd, c3td)); + double align[16]; + double centroidqd[3], centroidtd[3]; + pointToArray(centroidq, centroidqd); + pointToArray(centroidt, centroidtd); + icp6D_QUAT q(true); + q.Point_Point_Align(pairs, align, centroidqd, centroidtd); + //transform the matches with align if the error is less than minerror + double iError = 0; + unsigned int eIdx = 0; + for(unsigned int p = 0; p < matches.size(); p++){ + if(p == i || p == j || p == k) + continue; + cv::Point3f cq, ct, ct_trans; + if(getCoord(fKeypoints, sKeypoints, matches, fPMap, sPMap, p, cq, ct) == 0) + continue; + ct_trans = coordTransform(ct, align); + if(norm(ct_trans - cq) < minError){ + iError += norm(ct_trans - cq); + eIdx++; + } + } + //check for mininlier and find the best align + if(eIdx > minInlier){ + double aError = iError / eIdx; + if(aError - iInfluence*eIdx < bestError - iInfluence*bestErrorIndex){ + bestError = aError; + bestErrorIndex = eIdx; + for(int a = 0; a < 16; a++) + bestAlign[a] = align[a]; + } + } + return 1; + } + + void registration::findRegistration(cv::Mat fPMap, vector fKeypoints, cv::Mat sPMap, vector sKeypoints, vector matches){ + //go through all matches + if(rMethod == ALL){ + for(unsigned int i = 0; i < matches.size(); i++) + for(unsigned int j = 0; j < matches.size(); j++) + for(unsigned int k = 0; k < matches.size(); k++){ + findAlign(i, j, k, fPMap, fKeypoints, sPMap, sKeypoints, matches); + } + } + //RANSAC + if(rMethod == RANSAC) + for(int r = 0; r < RANSACITR; r++){ + if((r % (RANSACITR/10)) == 0){ + cout<<"RANSAC iteration: "<<(r / (RANSACITR/10) + 1) * 10 <<"%"< 0){ + cout<::min(); + zMin = numeric_limits::max(); + nPoints = 0; + } + + void scan_cv::convertScanToMat(){ + bool scanserver = false; + Scan::openDirectory(scanserver, sDir, sFormat, sNumber, sNumber); + cout<<"loading "<get("xyz"); + DataReflectance xyz_reflectance = source->get("reflectance"); + nPoints = xyz.size(); + scan.create(nPoints,1,CV_32FC(4)); + scan = cv::Scalar::all(0); + cv::MatIterator_ it; + it = scan.begin(); + for(unsigned int i = 0; i < nPoints; i++){ + float x, y, z, reflectance; + x = xyz[i][0]; + y = xyz[i][1]; + z = xyz[i][2]; + reflectance = xyz_reflectance[i]; + + //normalize the reflectance + reflectance += 32; + reflectance /= 64; + reflectance -= 0.2; + reflectance /= 0.3; + if (reflectance < 0) reflectance = 0; + if (reflectance > 1) reflectance = 1; + + (*it)[0] = x; + (*it)[1] = y; + (*it)[2] = z; + (*it)[3] = reflectance; + + //finding min and max of z + if (z > zMax) zMax = z; + if (z < zMin) zMin = z; + + ++it; + } + Scan::closeDirectory(); + } + + string scan_cv::getScanDir(){ + return sDir; + } + + unsigned int scan_cv::getScanNumber(){ + return sNumber; + } + + unsigned int scan_cv::getNumberOfPoints(){ + return nPoints; + } + + double scan_cv::getZMin(){ + return zMin; + } + + double scan_cv::getZMax(){ + return zMax; + } + + IOType scan_cv::getScanFormat(){ + return sFormat; + } + + cv::Mat scan_cv::getMatScan() + { + return scan; + } + + void scan_cv::getDescription(){ + cout<<"load "< +#else +#include "XGetopt.h" +#endif + +#include +using std::cout; +using std::cerr; +using std::endl; + +#include +using std::string; + +#include +using std::ifstream; +using std::ofstream; + +#include +using std::exception; + +#include "slam6d/globals.icc" + +void read_Frame(string frameFile, ofstream &out_stream) +{ + double transMat[16]; + int type; + double rPos[3]; + double rPosTheta[3]; + ifstream frame(frameFile.c_str()); + + while(frame) { + try { + frame >> transMat >> type; + } + catch(const exception &e) { + break; + } + } + Matrix4ToEuler(transMat, rPosTheta, rPos); + //out_stream << rPos[0] << " " << rPos[1] << " " << rPos[2] << " " << rPosTheta[0] << " " << rPosTheta[1] << " " << rPosTheta[2] << endl; + double quat[4]; + Matrix4ToQuat(transMat, quat); + QuatToAA(quat); + out_stream << rPos[0] << " " << rPos[1] << " " << rPos[2] << " " << quat[0] << " " << quat[1] << " " << quat[2] << " " << quat[3] << endl; + frame.close(); +} + +void readFrames(string dir, int start, int end, ofstream &out_stream) +{ + for(;start <= end; start++) { + read_Frame(dir + "scan" + to_string(start, 3) + ".frames", out_stream); + } +} + +void usage(string progname) { + cout << "Usage: " << progname << " OPTIONS FILE" << endl << + "\t -s \t\t first node in loop" << endl << + "\t -e \t\t last node in loop" << endl << + "\t -o \t\t output filename (must be given)" << endl; +} + +int main(int argc, char *argv[]) +{ + + if(argc < 2) { + usage(argv[0]); + exit(1); + } + + int start = 0, end = 0; + string out_file; + /* options descriptor */ + // 0: no arguments, 1: required argument, 2: optional argument + static struct option longopts[] = { + { "end", required_argument, 0, 'e' }, + { "out", required_argument, 0, 'o' }, + { "start", required_argument, 0, 's' }, + { 0, 0, 0, 0} // needed, cf. getopt.h + }; + + int c; + while((c = getopt_long(argc, argv, "e:o:s:", longopts, NULL)) != -1) { + switch (c) { + case 'e': + end = atoi(optarg); + if(end < 0) { + cerr << "Error: Cannot end at a negative number." << endl; + exit(1); + } + break; + case 'o': + out_file = optarg; + break; + case 's': + start = atoi(optarg); + if(start < 0) { + cerr << "Error: Cannot start at a negative number." << endl; + exit(1); + } + break; + case '?': + default: + exit(1); + } + } + + if(out_file.empty() || end == 0) { + usage(argv[0]); + exit(1); + } + + string dir = argv[optind]; + +#ifndef _MSC_VER + if (dir[dir.length()-1] != '/') dir = dir + "/"; +#else + if (dir[dir.length()-1] != '\\') dir = dir + "\\"; +#endif + ofstream out_stream(out_file.c_str()); + + readFrames(dir, start, end, out_stream); + out_stream.close(); + + exit(0); +} + diff --git a/src/slam6d/frames2pose.cc b/src/slam6d/frames2pose.cc new file mode 100644 index 0000000..cc0fbae --- /dev/null +++ b/src/slam6d/frames2pose.cc @@ -0,0 +1,140 @@ +/* + * frames2pose implementation + * + * Copyright (C) Dorit Borrmann + * + * Released under the GPL version 3. + * + */ + + +#include +#include +using std::cout; +using std::cerr; +using std::endl; +using std::ifstream; +using std::ofstream; + +#include "slam6d/globals.icc" +#include + +#ifndef _MSC_VER +#include +#else +#include "XGetopt.h" +#endif + +#if WIN32 +#define snprintf sprintf_s +#endif + +int parseArgs(int argc,char **argv, char dir[255], int& start, int& end){ + start = 0; + end = -1; // -1 indicates no limitation + + int c; + // from unistd.h + extern char *optarg; + extern int optind; + + cout << endl; + while ((c = getopt (argc, argv, "s:e:")) != -1) + switch (c) + { + case 's': + start = atoi(optarg); + if (start < 0) { cerr << "Error: Cannot start at a negative scan number.\n"; exit(1); } + break; + case 'e': + end = atoi(optarg); + if (end < 0) { cerr << "Error: Cannot end at a negative scan number.\n"; exit(1); } + if (end < start) { cerr << "Error: cannot be smaller than .\n"; exit(1); } + break; + } + + if (optind != argc-1) { + cerr << "\n*** Directory missing ***\n" << endl; + cout << endl + << "Usage: " << argv[0] << " [-s NR] [-e NR] directory" << endl << endl; + + cout << " -s NR start at scan NR (i.e., neglects the first NR scans)" << endl + << " [ATTENTION: counting starts with 0]" << endl + << " -e NR end after scan NR" << "" << endl + << endl; + cout << "Reads frame files from directory/scan???.frames and converts them to directory/scan???.pose." << endl; + abort(); + } + strncpy(dir,argv[optind],255); + +#ifndef _MSC_VER + if (dir[strlen(dir)-1] != '/') strcat(dir,"/"); +#else + if (dir[strlen(dir)-1] != '\\') strcat(dir,"\\"); +#endif + return 0; +} + + +int main(int argc, char **argv) +{ + int start = 0, end = -1; + char dir[255]; + parseArgs(argc, argv, dir, start, end); + + int fileCounter = start; + char poseFileName[255]; + char frameFileName[255]; + + ifstream pose_in; + ofstream pose_out; + + double rPos[3],rPosTheta[3]; + + double tMatrix[17]; + + for (;;) { + if (end > -1 && fileCounter > end) break; // 'nuf read + snprintf(frameFileName,255,"%sscan%.3d.frames",dir,fileCounter); + snprintf(poseFileName,255,"%sscan%.3d.pose",dir,fileCounter++); + + pose_in.open(frameFileName); + + if (!pose_in.good()) break; // no more files in the directory + // read 3D scan + + cout << "Reading frame " << frameFileName << "..." << endl; + + while(pose_in.good()) { + for (unsigned int i = 0; i < 17; pose_in >> tMatrix[i++]); + } + + Matrix4ToEuler(tMatrix, rPosTheta, rPos); + + + pose_in.close(); + pose_in.clear(); + + pose_out.open(poseFileName); + + cout << "Writing pose file... " << poseFileName << endl; + + for(int i = 0; i < 3; i++) { + pose_out << rPos[i] << " "; + } + pose_out << endl; + + for(int i = 0; i < 3; i++) { + pose_out << deg(rPosTheta[i]) << " "; + } + pose_out << endl; + + pose_out.close(); + pose_out.clear(); + + + cout << " done." << endl; + } + +} + diff --git a/src/slam6d/frames2riegl.cc b/src/slam6d/frames2riegl.cc new file mode 100644 index 0000000..bdfe249 --- /dev/null +++ b/src/slam6d/frames2riegl.cc @@ -0,0 +1,152 @@ +/* + * frames2riegl implementation + * + * Copyright (C) Dorit Borrmann + * + * Released under the GPL version 3. + * + */ + +#include +#include +using std::cout; +using std::cerr; +using std::endl; +using std::ifstream; +using std::ofstream; + +#include "slam6d/globals.icc" +#include + +#ifndef _MSC_VER +#include +#else +#include "XGetopt.h" +#endif + +#if WIN32 +#define snprintf sprintf_s +#endif + +int parseArgs(int argc,char **argv, char dir[255], int& start, int& end){ + start = 0; + end = -1; // -1 indicates no limitation + + int c; + // from unistd.h + extern char *optarg; + extern int optind; + + cout << endl; + while ((c = getopt (argc, argv, "s:e:")) != -1) + switch (c) + { + case 's': + start = atoi(optarg); + if (start < 0) { cerr << "Error: Cannot start at a negative scan number.\n"; exit(1); } + break; + case 'e': + end = atoi(optarg); + if (end < 0) { cerr << "Error: Cannot end at a negative scan number.\n"; exit(1); } + if (end < start) { cerr << "Error: cannot be smaller than .\n"; exit(1); } + break; + } + + if (optind != argc-1) { + cerr << "\n*** Directory missing ***\n" << endl; + cout << endl + << "Usage: " << argv[0] << " [-s NR] [-e NR] directory" << endl << endl; + + cout << " -s NR start at scan NR (i.e., neglects the first NR scans)" << endl + << " [ATTENTION: counting starts with 0]" << endl + << " -e NR end after scan NR" << "" << endl + << endl; + cout << "Reads frame files from directory/scan???.frames and converts them to directory/scan???.4x4 in the RIEGL pose file format." << endl; + abort(); + } + strncpy(dir,argv[optind],255); + +#ifndef _MSC_VER + if (dir[strlen(dir)-1] != '/') strcat(dir,"/"); +#else + if (dir[strlen(dir)-1] != '\\') strcat(dir,"\\"); +#endif + return 0; +} + + +int main(int argc, char **argv) +{ + int start = 0, end = -1; + char dir[255]; + parseArgs(argc, argv, dir, start, end); + + int fileCounter = start; + char poseFileName[255]; + char frameFileName[255]; + + ifstream pose_in; + ofstream pose_out; + + double inMatrix[16]; + double tMatrix[17]; + + for (;;) { + if (end > -1 && fileCounter > end) break; // 'nuf read + snprintf(frameFileName,255,"%sscan%.3d.frames",dir,fileCounter); + snprintf(poseFileName,255,"%sscan%.3d.4x4",dir,fileCounter++); + + pose_in.open(frameFileName); + + if (!pose_in.good()) break; // no more files in the directory + // read 3D scan + + cout << "Reading frame " << frameFileName << "..." << endl; + + while(pose_in.good()) { + for (unsigned int i = 0; i < 17; pose_in >> tMatrix[i++]); + } + + inMatrix[5] = tMatrix[0]; + inMatrix[9] = -tMatrix[1]; + inMatrix[1] = -tMatrix[2]; + inMatrix[13] = -tMatrix[3]; + inMatrix[6] = -tMatrix[4]; + inMatrix[10] = tMatrix[5]; + inMatrix[2] = tMatrix[6]; + inMatrix[14] = tMatrix[7]; + inMatrix[4] = -tMatrix[8]; + inMatrix[8] = tMatrix[9]; + inMatrix[0] = tMatrix[10]; + inMatrix[12] = tMatrix[11]; + inMatrix[7] = -tMatrix[12]; + inMatrix[11] = tMatrix[13]; + inMatrix[3] = tMatrix[14]; + inMatrix[15] = tMatrix[15]; + + inMatrix[3] /= 100; + inMatrix[7] /= 100; + inMatrix[11] /= 100; + + pose_in.close(); + pose_in.clear(); + + pose_out.open(poseFileName); + + cout << "Writing Riegl pose... " << poseFileName << endl; + + for (int i=0; i < 16; i++) { + pose_out << inMatrix[i] << " "; + if((i % 4) == 3) pose_out << endl; + } + + + pose_out.close(); + pose_out.clear(); + + + cout << " done." << endl; + } + +} + diff --git a/src/slam6d/gapx6D.cc b/src/slam6d/gapx6D.cc new file mode 100644 index 0000000..bf3c24a --- /dev/null +++ b/src/slam6d/gapx6D.cc @@ -0,0 +1,511 @@ +/* + * gapx6D implementation + * + * Copyright (C) Jan Elseberg, Andreas Nuechter + * + * Released under the GPL version 3. + * + */ + +/** + * @file + * @brief The implementation of globally consistent scan matching algorithm by using APX correction + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Jan Elseberg. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifdef _MSC_VER +#if !defined _OPENMP && defined OPENMP +#define _OPENMP +#endif +#endif + +#include "slam6d/gapx6D.h" +#include "slam6d/icp6Dapx.h" +#include "sparse/csparse.h" + +#include +#include +using std::flush; +#include + +#include "slam6d/globals.icc" + +using std::ofstream; +using namespace NEWMAT; +/** + * Constructor + * + * @param my_icp6Dminimizer Pointer to ICP minimization functor + * @param mdm Maximum PtoP distance to which point pairs are collected for ICP + * @param max_dist_match Maximum PtoP distance to which point pairs are collected for LUM + * @param max_num_iterations Maximal number of iterations for ICP + * @param quiet Suspesses all output to std out + * @param meta Indicates if metascan matching has to be used + * @param rnd Indicates if randomization has to be used + * @param eP Extrapolate odometry? + * @param anim Animate which frames? + * @param epsilonICP Termination criterion for ICP + * @param nns_method Specifies which NNS method to use + * @param epsilonLUM Termination criterion for LUM + */ +gapx6D::gapx6D(icp6Dminimizer *my_icp6Dminimizer, + double mdm, double max_dist_match, + int max_num_iterations, bool quiet, bool meta, int rnd, + bool eP, int anim, double epsilonICP, int nns_method, double epsilonLUM) + : graphSlam6D(my_icp6Dminimizer, + mdm, max_dist_match, + max_num_iterations, quiet, meta, rnd, + eP, anim, epsilonICP, nns_method, epsilonLUM) +{ } + + +/** + * Destructor + */ +gapx6D::~gapx6D() +{ + delete my_icp; +} + + + +double gapx6D::genBAtransForLinkedPair( int firstScanNum, int secondScanNum, + double *centroids_m, double *centroids_d, + SymmetricMatrix *B, ColumnVector *A, ColumnVector &X) +{ + + Point cm(centroids_m); + Point cd(centroids_d); + + double x[3], dx[3] = {0.0, 0.0, 0.0}; + unsigned int vectorOffset; + double alignxf[16]; + + vectorOffset = (firstScanNum-1) * 3; + + if (firstScanNum != 0) { + x[0] = X(vectorOffset + 1); + x[1] = X(vectorOffset + 2); + x[2] = X(vectorOffset + 3); + } else { + x[0] = x[1] = x[2] = 0.0; + } + + icp6D_APX::computeRt(x, dx, alignxf); + + cm.transform(alignxf); + + vectorOffset = (secondScanNum-1) * 3; + + x[0] = X(vectorOffset + 1); + x[1] = X(vectorOffset + 2); + x[2] = X(vectorOffset + 3); + + icp6D_APX::computeRt(x, dx, alignxf); + + cd.transform(alignxf); + + ColumnVector Ak1(3); + + Ak1(1) = cm.x - cd.x; + Ak1(2) = cm.y - cd.y; + Ak1(3) = cm.z - cd.z; + +#ifdef _OPENMP +#pragma omp critical (enterB) +#endif + { + if(firstScanNum != 0) { + A->Rows((firstScanNum-1)*3+1, (firstScanNum-1)*3+3) -= Ak1; + B->element(firstScanNum -1, firstScanNum - 1) += 1; + B->element(firstScanNum -1, secondScanNum - 1) -= 1; + } + A->Rows((secondScanNum-1)*3+1, (secondScanNum-1)*3+3) += Ak1; + B->element(secondScanNum - 1, secondScanNum - 1) += 1; + } // of pragma omp critical + + return 1.0; + +} + + +/** + * This function generates the matrices B and Bd that are used for solving B * c = Bd. + * This function has to be called once for every linked scan-pair. + * + * @param firstScanNum The number of the first scan of the linked scan-pair + * @param secondScanNum The number of the second scan of the linked scan-pair + * @param ptpairs Vector that holds all point-pairs for the actual scan-pair + * @param B Matrix with dimension (6*(number of scans-1)) x (6 * (number of scans-1)) + * @param Bd Vector with dimension (6*(number of scans-1)) + * @return returns the sum of square distance + */ +double gapx6D::genBArotForLinkedPair( int firstScanNum, int secondScanNum, vPtPair *ptpairs, + double *centroids_m, double *centroids_d, + Matrix *B, ColumnVector *A) +{ + Matrix Mk(3,3), Dk(3,3); + Matrix MkMkt(3,3), DkDkt(3,3), DkMkt(3,3), MkDkt(3,3); + ColumnVector Ak1(3), Ak2(3); + + double p1x, p1y, p1z, p2x, p2y, p2z; + double p1x2, p1y2, p1z2, p2x2, p2y2, p2z2; + + double p1xp1y, p1xp1z, p1yp1z, p1y2p1z2, p1x2p1z2, p1x2p1y2; + double p2xp2y, p2xp2z, p2yp2z, p2y2p2z2, p2x2p2z2, p2x2p2y2; + + double p2zp1x, p2zp1y, p2yp1x, p1yp2x, p1zp2x, p1zp2y; + + double p1xp2xp1yp2y, p1xp2xp1zp2z, p1yp2yp1zp2z; + + int n = (*ptpairs).size(); + + MkMkt = 0; + DkDkt = 0; + DkMkt = 0; + MkDkt = 0; + Ak1 = 0; + Ak2 = 0; + + for (int i = 0; i < n; i++) { + p1x = (*ptpairs)[i].p1.x - centroids_m[0]; // << korrekt + p1y = (*ptpairs)[i].p1.y - centroids_m[1]; // << korrekt + p1z = (*ptpairs)[i].p1.z - centroids_m[2]; // << korrekt + + p2x = (*ptpairs)[i].p2.x - centroids_m[0]; // << korrekt + p2y = (*ptpairs)[i].p2.y - centroids_m[1]; // << korrekt + p2z = (*ptpairs)[i].p2.z - centroids_m[2]; // << korrekt + + p1x2 = sqr(p1x); + p1y2 = sqr(p1y); + p1z2 = sqr(p1z); + p2x2 = sqr(p2x); + p2y2 = sqr(p2y); + p2z2 = sqr(p2z); + + p1x2p1z2 = p1x2 + p1z2; + p1x2p1y2 = p1x2 + p1y2; + p1y2p1z2 = p1y2 + p1z2; + + p2x2p2z2 = p2x2 + p2z2; + p2x2p2y2 = p2x2 + p2y2; + p2y2p2z2 = p2y2 + p2z2; + + p1xp2xp1yp2y = p1x * p2x + p1y + p2y; + p1xp2xp1zp2z = p1x * p2x + p1z + p2z; + p1yp2yp1zp2z = p1y * p2y + p1z + p2z; + + p1xp1y = p1x * p1y; + p1xp1z = p1x * p1z; + p1yp1z = p1y * p1z; + + //p2xp1y = p2x * p1y; + //p2xp1z = p2x * p1z; + p2yp1x = p2y * p1x; + //p2yp1z = p2y * p1z; + p2zp1x = p2z * p1x; + p2zp1y = p2z * p1y; + + /* + p1xp2y = p1x * p2y; + p1xp2z = p1x * p2z; + p1yp2z = p1y * p2z; + */ + p1yp2x = p1y * p2x; + p1zp2x = p1z * p2x; + p1zp2y = p1z * p2y; + + p2xp2y = p2x * p2y; + p2xp2z = p2x * p2z; + p2yp2z = p2y * p2z; + + MkMkt(1,1) += p1y2p1z2; + MkMkt(1,2) -= p1xp1y; + MkMkt(1,3) -= p1xp1z; + MkMkt(2,1) -= p1xp1y; + MkMkt(2,2) += p1x2p1z2; + MkMkt(2,3) -= p1yp1z; + MkMkt(3,1) -= p1xp1z; + MkMkt(3,2) -= p1yp1z; + MkMkt(3,3) += p1x2p1y2; + + DkDkt(1,1) += p2y2p2z2; + DkDkt(1,2) -= p2xp2y; + DkDkt(1,3) -= p2xp2z; + DkDkt(2,1) -= p2xp2y; + DkDkt(2,2) += p2x2p2z2; + DkDkt(2,3) -= p2yp2z; + DkDkt(3,1) -= p2xp2z; + DkDkt(3,2) -= p2yp2z; + DkDkt(3,3) += p2x2p2y2; + + MkDkt(1,1) += p1yp2yp1zp2z; + MkDkt(1,2) -= p1yp2x; + MkDkt(1,3) -= p1zp2x; + MkDkt(2,1) -= p1yp2x; + MkDkt(2,2) += p1xp2xp1zp2z; + MkDkt(2,3) -= p1zp2y; + MkDkt(3,1) -= p1zp2x; + MkDkt(3,2) -= p1zp2y; + MkDkt(3,3) += p1xp2xp1yp2y; + + DkMkt(1,1) += p1yp2yp1zp2z; + DkMkt(1,2) -= p2yp1x; + DkMkt(1,3) -= p2zp1x; + DkMkt(2,1) -= p2yp1x; + DkMkt(2,2) += p1xp2xp1zp2z; + DkMkt(2,3) -= p2zp1y; + DkMkt(3,1) -= p2zp1x; + DkMkt(3,2) -= p2zp1y; + DkMkt(3,3) += p1xp2xp1yp2y; + + Ak1(1) -= (p1z - p2z) * p2y - (p1y - p2y) * p2z; + Ak1(2) -= (p1x - p2x) * p2z - (p1z - p2z) * p2x; + Ak1(3) -= (p1y - p2y) * p2x - (p1x - p2x) * p2y; + + Ak2(1) += (p1z - p2z) * p1y - (p1y - p2y) * p1z; + Ak2(2) += (p1x - p2x) * p1z - (p1z - p2z) * p1x; + Ak2(3) += (p1y - p2y) * p1x - (p1x - p2x) * p1y; + } + +#ifdef _OPENMP +#pragma omp critical (enterB) +#endif + { + if(firstScanNum != 0) { + A->Rows((firstScanNum-1)*3+1, (firstScanNum-1)*3+3) += Ak1; + B->SubMatrix((firstScanNum-1)*3+1,(firstScanNum-1)*3+3, (firstScanNum-1)*3+1,(firstScanNum-1)*3+3) += MkMkt; + + B->SubMatrix((firstScanNum-1)*3+1,(firstScanNum-1)*3+3, (secondScanNum-1)*3+1,(secondScanNum-1)*3+3) += DkMkt; + + B->SubMatrix((secondScanNum-1)*3+1,(secondScanNum-1)*3+3, (firstScanNum-1)*3+1,(firstScanNum-1)*3+3) += MkDkt; + + } + A->Rows((secondScanNum-1)*3+1, (secondScanNum-1)*3+3) += Ak2; + B->SubMatrix((secondScanNum-1)*3+1,(secondScanNum-1)*3+3, (secondScanNum-1)*3+1,(secondScanNum-1)*3+3) += DkDkt; + + } // of pragma omp critical + + return 1.0; +} + + + +/** + * This function is used to match a set of laser scans with any minimally + * connected Graph, using the globally consistent LUM-algorithm in 3D. + * + * @param gr Some Graph with no real subgraphs except for itself + * @param allScans Contains all laser scans + * @param nrIt The number of iterations the LUM-algorithm will run + * @return Euclidian distance of all pose shifts + */ +double gapx6D::doGraphSlam6D(Graph gr, vector allScans, int nrIt) +{ + +#ifdef WRITE_GRAPH_NET + // for debug only: + static int d = 0; + cout << "writing graph.dat ....................................." << endl; + d++; + string gfilename = "graph_" + to_string(d, 3) + ".net"; + ofstream out(gfilename.c_str()); + for (int i=0; i < gr.getNrLinks(); i++) { + int from = gr.getLink(i,0); + int to = gr.getLink(i,1); + // shouldn't be necessary, just in case a (out of date) graph file is loaded: + if (from < (int)allScans.size() && to < (int)allScans.size()) { + out << allScans[from]->get_rPos()[0] << " " + << allScans[from]->get_rPos()[1] << " " + << allScans[from]->get_rPos()[2] << endl + << allScans[to ]->get_rPos()[0] << " " + << allScans[to ]->get_rPos()[1] << " " + << allScans[to ]->get_rPos()[2] << endl << endl; + } + } + out.close(); + out.clear(); +#endif + + // the IdentityMatrix to transform some Scans with + double id[16]; + M4identity(id); + + vPtPair **ptpairs = 0; // Contains sets of point pairs for all links + double **centroids_m = 0, **centroids_d = 0; // Contains centroids for all links + Matrix B ( 3 * (gr.getNrScans()-1), 3 * (gr.getNrScans()-1) ); + SymmetricMatrix Bt ( gr.getNrScans()-1 ); Bt = 0; + ColumnVector X( 3*(gr.getNrScans()-1) ); X = 0; + ColumnVector T( 3*(gr.getNrScans()-1) ); T = 0; + ColumnVector A( 3*(gr.getNrScans()-1) ); A = 0; + + B = 0.0; + A = 0.0; + + double sum_position_diff = 0; + double ret = DBL_MAX; + + for(int iteration = 0; + iteration < nrIt && ret > epsilonLUM; + iteration++) { + sum_position_diff = 0; + + if (nrIt > 1) cout << "Iteration match " << iteration << endl; + + // Transform first scan to zero, otherwise updating poses would yield incorrect values + // if (iteration == 0) { + // double* tin = allScans[0]->transMat; + // double tout[16]; + // M4inv(tin, tout); + + // for(unsigned int i = 0; i < allScans.size(); i++){ + // allScans[i]->transform(tout, Scan::INVALID); + // } + // } + + if (ptpairs != 0) { + delete [] ptpairs; + } + if (centroids_m != 0) { + delete [] centroids_m; + delete [] centroids_d; + } + + centroids_m = new double *[gr.getNrLinks()]; + centroids_d = new double *[gr.getNrLinks()]; + for (int i = 0; i < gr.getNrLinks(); i++){ + centroids_m[i] = new double[3]; + centroids_m[i][0] = centroids_m[i][1] = centroids_m[i][2] = 0.0; + centroids_d[i] = new double[3]; + centroids_d[i][0] = centroids_d[i][1] = centroids_d[i][2] = 0.0; + } + ptpairs = new vPtPair*[gr.getNrLinks()]; + for (int i = 0; i < gr.getNrLinks(); i++) { + ptpairs[i] = new vPtPair; + } + + // Get all point pairs after ICP + int end_loop = gr.getNrLinks(); +#ifdef _OPENMP + omp_set_num_threads(OPENMP_NUM_THREADS); +#pragma omp parallel for schedule(dynamic) +#endif + + for (int i = 0; i < end_loop; i++) { + cout << "P" << i << flush; + Scan * FirstScan = allScans[gr.getLink(i,0)]; + Scan * SecondScan = allScans[gr.getLink(i,1)]; +#ifdef _OPENMP + int thread_num = omp_get_thread_num(); +#else + int thread_num = 0; +#endif + + double dummy_sum; + Scan::getPtPairs(ptpairs[i], FirstScan, SecondScan, thread_num, + (int)my_icp->get_rnd(), (int)max_dist_match2_LUM, dummy_sum, + centroids_m[i], centroids_d[i]); + + // faulty network + if (ptpairs[i]->size() <= 1) { + cout << "Error: Link (" << gr.getLink(i,0) + << " - " << gr.getLink(i, 1) << " ) is empty with " + << ptpairs[i]->size() << " Corr. points. iteration = " + << iteration << endl; + // exit(1); + + } else + + sum_position_diff += genBArotForLinkedPair( gr.getLink(i,0), gr.getLink(i,1), ptpairs[i], + centroids_m[i], centroids_d[i], &B, &A); + + } + cout << " building rotation matrices done! " << endl; + + X = solveSparseCholesky(B, A); + + // TODO transformation bestimmen + Bt = 0.0; + A = 0.0; + for ( int i = 0; i < end_loop; i++) { + genBAtransForLinkedPair( gr.getLink(i,0), gr.getLink(i,1), + centroids_m[i], centroids_d[i], &Bt, &A, X); + } + cout << " building translation matrices done! "<clear(); + delete (ptpairs[i]); + } + // delete centroids + for (int i = 0; i < gr.getNrLinks(); i++){ + delete [] centroids_m[i]; + delete [] centroids_d[i]; + } + + ColumnVector t0(3), t(3), tlast(3); + int vectorOffset; + int loop_end = gr.getNrScans(); + double alignxf[16]; + + for(int i = 1; i < loop_end; i++) + { + vectorOffset = (i-1) * 3; + + // Interpret results + double x[3] = { X(vectorOffset + 1), X(vectorOffset + 2), X(vectorOffset + 3) }; + double dx[3] = { T(vectorOffset + 1), T(vectorOffset + 2), T(vectorOffset + 3) }; + + icp6D_APX::computeRt(x, dx, alignxf); + + // Update the Pose + cout << "Old pose estimate, Scan " << i << endl; + cout << "x: " << allScans[i]->get_rPos()[0] + << " y: " << allScans[i]->get_rPos()[1] + << " z: " << allScans[i]->get_rPos()[2] + << " tx: " << allScans[i]->get_rPosTheta()[0] + << " ty: " << allScans[i]->get_rPosTheta()[1] + << " tz: " << allScans[i]->get_rPosTheta()[2] + << endl; + + if (i < loop_end - 1) { + allScans[i]->transform(alignxf, Scan::LUM, 1); + } else { + allScans[i]->transform(alignxf, Scan::LUM, 2); + } + + cout << "x: " << allScans[i]->get_rPos()[0] + << " y: " << allScans[i]->get_rPos()[1] + << " z: " << allScans[i]->get_rPos()[2] + << " tx: " << allScans[i]->get_rPosTheta()[0] + << " ty: " << allScans[i]->get_rPosTheta()[1] + << " tz: " << allScans[i]->get_rPosTheta()[2] << endl << endl; + + sum_position_diff += Len(dx); + + } + cout << "Sum of Position differences = " << sum_position_diff << endl << endl; + ret = (sum_position_diff / (double)gr.getNrScans()); + } + + delete [] centroids_m; + delete [] centroids_d; + + delete [] ptpairs; + ptpairs = 0; + + return ret; +} + + diff --git a/src/slam6d/ghelix6DQ2.cc b/src/slam6d/ghelix6DQ2.cc new file mode 100644 index 0000000..8bc8232 --- /dev/null +++ b/src/slam6d/ghelix6DQ2.cc @@ -0,0 +1,447 @@ +/* + * ghelix6DQ2 implementation + * + * Copyright (C) Peter Schneider, Jan Elseberg, Andreas Nuechter + * + * Released under the GPL version 3. + * + */ + +/** + * @file + * @brief The implementation of globally consistent scan matching algorithm by using helix correction + * @author Peter Schneider. Institute of Computer Science, University of Koblenz, Germany. + * @author Andreas Nuechter. Jacobs University Bremen gGmbH, Germany + * @author Jan Elseberg. Jacobs University Bremen gGmbH, Germany + */ + +#ifdef _MSC_VER +#if !defined _OPENMP && defined OPENMP +#define _OPENMP +#endif +#endif + +#include "slam6d/ghelix6DQ2.h" +#include "slam6d/icp6Dhelix.h" +#include "sparse/csparse.h" + +#include +#include +using std::flush; +#include + +#include "slam6d/globals.icc" + +using std::ofstream; + +/** + * Constructor + * + * @param my_icp6Dminimizer Pointer to ICP minimization functor + * @param mdm Maximum PtoP distance to which point pairs are collected for ICP + * @param max_dist_match Maximum PtoP distance to which point pairs are collected for LUM + * @param max_num_iterations Maximal number of iterations for ICP + * @param quiet Suspesses all output to std out + * @param meta Indicates if metascan matching has to be used + * @param rnd Indicates if randomization has to be used + * @param eP Extrapolate odometry? + * @param anim Animate which frames? + * @param epsilonICP Termination criterion for ICP + * @param nns_method Specifies which NNS method to use + * @param epsilonLUM Termination criterion for LUM + */ +ghelix6DQ2::ghelix6DQ2(icp6Dminimizer *my_icp6Dminimizer, + double mdm, double max_dist_match, + int max_num_iterations, bool quiet, bool meta, int rnd, + bool eP, int anim, double epsilonICP, int nns_method, double epsilonLUM) + : graphSlam6D(my_icp6Dminimizer, + mdm, max_dist_match, + max_num_iterations, quiet, meta, rnd, + eP, anim, epsilonICP, nns_method, epsilonLUM) +{ } + + +/** + * Destructor + */ +ghelix6DQ2::~ghelix6DQ2() +{ + delete my_icp; +} + + +/** + * This function generates the matrices B and Bd that are used for solving B * c = Bd. + * This function has to be called once for every linked scan-pair. + * + * @param firstScanNum The number of the first scan of the linked scan-pair + * @param secondScanNum The number of the second scan of the linked scan-pair + * @param ptpairs Vector that holds all point-pairs for the actual scan-pair + * @param B Matrix with dimension (6*(number of scans-1)) x (6 * (number of scans-1)) + * @param Bd Vector with dimension (6*(number of scans-1)) + * @return returns the sum of square distance + */ +double ghelix6DQ2::genBBdForLinkedPair( int firstScanNum, int secondScanNum, vPtPair *ptpairs, + Matrix *B, ColumnVector *Bd ) +{ + double Btemp1[6][3]; + double Btemp2[6][3]; + memset(&Btemp1[0][0], 0, 18 * sizeof(double)); + memset(&Btemp2[0][0], 0, 18 * sizeof(double)); + double bd1[6]; + double bd2[6]; + memset(&bd1[0], 0, 6 * sizeof(double)); + memset(&bd2[0], 0, 6 * sizeof(double)); + + double p1x, p1y, p1z, p2x, p2y, p2z, pDistX, pDistY, pDistZ, px2Sq, py2Sq, pz2Sq; + + int n = (*ptpairs).size(); + double sum = 0; + + for (int i = 0; i < n; i++) { + p1x = (*ptpairs)[i].p1.x; + p1y = (*ptpairs)[i].p1.y; + p1z = (*ptpairs)[i].p1.z; + + p2x = (*ptpairs)[i].p2.x; + p2y = (*ptpairs)[i].p2.y; + p2z = (*ptpairs)[i].p2.z; + + //px1Sq = p1x * p1x; + //py1Sq = p1y * p1y; + //pz1Sq = p1z * p1z; + + px2Sq = p2x * p2x; + py2Sq = p2y * p2y; + pz2Sq = p2z * p2z; + + Btemp1[4][0] += -p2z; +// Btemp1[3][1] += p2z; + Btemp1[5][0] += p2y; +// Btemp1[3][2] += -p2y; + Btemp1[4][2] += p2x; +// Btemp1[5][1] += -p2x; + Btemp1[0][0] += pz2Sq + py2Sq; + Btemp1[1][0] += p2y*-p2x; + Btemp1[2][0] += -p2z*p2x; + Btemp1[1][1] += pz2Sq + px2Sq; + Btemp1[2][1] += p2z*-p2y; + Btemp1[2][2] += px2Sq + py2Sq; + + pDistX = p1x - p2x; + pDistY = p1y - p2y; + pDistZ = p1z - p2z; + + bd1[0] += -p1z*pDistY + p1y*pDistZ; + bd1[1] += p1z*pDistX - p1x*pDistZ; + bd1[2] += -p1y*pDistX + p1x*pDistY; + bd1[3] += pDistX; + bd1[4] += pDistY; + bd1[5] += pDistZ; + + bd2[0] += -p2z*-pDistY + p2y*-pDistZ; + bd2[1] += p2z*-pDistX - p2x*-pDistZ; + bd2[2] += -p2y*-pDistX + p2x*-pDistY; + bd2[3] += -pDistX; + bd2[4] += -pDistY; + bd2[5] += -pDistZ; + + sum += pDistX*pDistX + pDistY*pDistY + pDistZ*pDistZ; + } + +#ifdef _OPENMP + #pragma omp critical (enterB) +#endif + { + int matPlace1 = (firstScanNum-1) * 6; + + if(firstScanNum != 0) + { + (*B)(matPlace1+4,matPlace1+4) += n; + (*B)(matPlace1+5,matPlace1+5) += n; + (*B)(matPlace1+6,matPlace1+6) += n; + + (*B)(matPlace1+1,matPlace1+5) += Btemp1[4][0]; + (*B)(matPlace1+5,matPlace1+1) += Btemp1[4][0]; + (*B)(matPlace1+2,matPlace1+4) += -Btemp1[4][0]; + (*B)(matPlace1+4,matPlace1+2) += -Btemp1[4][0]; + (*B)(matPlace1+1,matPlace1+6) += Btemp1[5][0]; + (*B)(matPlace1+6,matPlace1+1) += Btemp1[5][0]; + (*B)(matPlace1+3,matPlace1+4) += -Btemp1[5][0]; + (*B)(matPlace1+4,matPlace1+3) += -Btemp1[5][0]; + (*B)(matPlace1+3,matPlace1+5) += Btemp1[4][2]; + (*B)(matPlace1+5,matPlace1+3) += Btemp1[4][2]; + (*B)(matPlace1+2,matPlace1+6) += -Btemp1[4][2]; + (*B)(matPlace1+6,matPlace1+2) += -Btemp1[4][2]; + (*B)(matPlace1+1,matPlace1+2) += Btemp1[1][0]; + (*B)(matPlace1+2,matPlace1+1) += Btemp1[1][0]; + (*B)(matPlace1+1,matPlace1+3) += Btemp1[2][0]; + (*B)(matPlace1+3,matPlace1+1) += Btemp1[2][0]; + (*B)(matPlace1+2,matPlace1+3) += Btemp1[2][1]; + (*B)(matPlace1+3,matPlace1+2) += Btemp1[2][1]; + (*B)(matPlace1+1,matPlace1+1) += Btemp1[0][0]; + (*B)(matPlace1+2,matPlace1+2) += Btemp1[1][1]; + (*B)(matPlace1+3,matPlace1+3) += Btemp1[2][2]; + + (*Bd)(matPlace1+1) += bd1[0]; + (*Bd)(matPlace1+2) += bd1[1]; + (*Bd)(matPlace1+3) += bd1[2]; + (*Bd)(matPlace1+4) += bd1[3]; + (*Bd)(matPlace1+5) += bd1[4]; + (*Bd)(matPlace1+6) += bd1[5]; + } +//------------------------------------------- + unsigned int matPlace2 = (secondScanNum-1) * 6; + + (*B)(matPlace2+4,matPlace2+4) += n; + (*B)(matPlace2+5,matPlace2+5) += n; + (*B)(matPlace2+6,matPlace2+6) += n; + + (*B)(matPlace2+1,matPlace2+5) += Btemp1[4][0]; + (*B)(matPlace2+5,matPlace2+1) += Btemp1[4][0]; + (*B)(matPlace2+2,matPlace2+4) += -Btemp1[4][0]; + (*B)(matPlace2+4,matPlace2+2) += -Btemp1[4][0]; + (*B)(matPlace2+1,matPlace2+6) += Btemp1[5][0]; + (*B)(matPlace2+6,matPlace2+1) += Btemp1[5][0]; + (*B)(matPlace2+3,matPlace2+4) += -Btemp1[5][0]; + (*B)(matPlace2+4,matPlace2+3) += -Btemp1[5][0]; + (*B)(matPlace2+3,matPlace2+5) += Btemp1[4][2]; + (*B)(matPlace2+5,matPlace2+3) += Btemp1[4][2]; + (*B)(matPlace2+2,matPlace2+6) += -Btemp1[4][2]; + (*B)(matPlace2+6,matPlace2+2) += -Btemp1[4][2]; + (*B)(matPlace2+1,matPlace2+2) += Btemp1[1][0]; + (*B)(matPlace2+2,matPlace2+1) += Btemp1[1][0]; + (*B)(matPlace2+1,matPlace2+3) += Btemp1[2][0]; + (*B)(matPlace2+3,matPlace2+1) += Btemp1[2][0]; + (*B)(matPlace2+2,matPlace2+3) += Btemp1[2][1]; + (*B)(matPlace2+3,matPlace2+2) += Btemp1[2][1]; + (*B)(matPlace2+1,matPlace2+1) += Btemp1[0][0]; + (*B)(matPlace2+2,matPlace2+2) += Btemp1[1][1]; + (*B)(matPlace2+3,matPlace2+3) += Btemp1[2][2]; + + + (*Bd)(matPlace2+1) += bd2[0]; + (*Bd)(matPlace2+2) += bd2[1]; + (*Bd)(matPlace2+3) += bd2[2]; + (*Bd)(matPlace2+4) += bd2[3]; + (*Bd)(matPlace2+5) += bd2[4]; + (*Bd)(matPlace2+6) += bd2[5]; + +//------------------------------------------- + if( firstScanNum != 0) + { + (*B)(matPlace1+4,matPlace2+4) -= n; + (*B)(matPlace1+5,matPlace2+5) -= n; + (*B)(matPlace1+6,matPlace2+6) -= n; + + (*B)(matPlace1+1,matPlace2+5) += -Btemp1[4][0]; + (*B)(matPlace1+5,matPlace2+1) += -Btemp1[4][0]; + (*B)(matPlace1+2,matPlace2+4) += Btemp1[4][0]; + (*B)(matPlace1+4,matPlace2+2) += Btemp1[4][0]; + (*B)(matPlace1+1,matPlace2+6) += -Btemp1[5][0]; + (*B)(matPlace1+6,matPlace2+1) += -Btemp1[5][0]; + (*B)(matPlace1+3,matPlace2+4) += Btemp1[5][0]; + (*B)(matPlace1+4,matPlace2+3) += Btemp1[5][0]; + (*B)(matPlace1+3,matPlace2+5) += -Btemp1[4][2]; + (*B)(matPlace1+5,matPlace2+3) += -Btemp1[4][2]; + (*B)(matPlace1+2,matPlace2+6) += Btemp1[4][2]; + (*B)(matPlace1+6,matPlace2+2) += Btemp1[4][2]; + (*B)(matPlace1+1,matPlace2+2) += -Btemp1[1][0]; + (*B)(matPlace1+2,matPlace2+1) += -Btemp1[1][0]; + (*B)(matPlace1+1,matPlace2+3) += -Btemp1[2][0]; + (*B)(matPlace1+3,matPlace2+1) += -Btemp1[2][0]; + (*B)(matPlace1+2,matPlace2+3) += -Btemp1[2][1]; + (*B)(matPlace1+3,matPlace2+2) += -Btemp1[2][1]; + (*B)(matPlace1+1,matPlace2+1) += -Btemp1[0][0]; + (*B)(matPlace1+2,matPlace2+2) += -Btemp1[1][1]; + (*B)(matPlace1+3,matPlace2+3) += -Btemp1[2][2]; +//---------------------------------------- + (*B)(matPlace2+4,matPlace1+4) -= n; + (*B)(matPlace2+5,matPlace1+5) -= n; + (*B)(matPlace2+6,matPlace1+6) -= n; + + (*B)(matPlace2+1,matPlace1+5) += -Btemp1[4][0]; + (*B)(matPlace2+5,matPlace1+1) += -Btemp1[4][0]; + (*B)(matPlace2+2,matPlace1+4) += Btemp1[4][0]; + (*B)(matPlace2+4,matPlace1+2) += Btemp1[4][0]; + (*B)(matPlace2+1,matPlace1+6) += -Btemp1[5][0]; + (*B)(matPlace2+6,matPlace1+1) += -Btemp1[5][0]; + (*B)(matPlace2+3,matPlace1+4) += Btemp1[5][0]; + (*B)(matPlace2+4,matPlace1+3) += Btemp1[5][0]; + (*B)(matPlace2+3,matPlace1+5) += -Btemp1[4][2]; + (*B)(matPlace2+5,matPlace1+3) += -Btemp1[4][2]; + (*B)(matPlace2+2,matPlace1+6) += Btemp1[4][2]; + (*B)(matPlace2+6,matPlace1+2) += Btemp1[4][2]; + (*B)(matPlace2+1,matPlace1+2) += -Btemp1[1][0]; + (*B)(matPlace2+2,matPlace1+1) += -Btemp1[1][0]; + (*B)(matPlace2+1,matPlace1+3) += -Btemp1[2][0]; + (*B)(matPlace2+3,matPlace1+1) += -Btemp1[2][0]; + (*B)(matPlace2+2,matPlace1+3) += -Btemp1[2][1]; + (*B)(matPlace2+3,matPlace1+2) += -Btemp1[2][1]; + (*B)(matPlace2+1,matPlace1+1) += -Btemp1[0][0]; + (*B)(matPlace2+2,matPlace1+2) += -Btemp1[1][1]; + (*B)(matPlace2+3,matPlace1+3) += -Btemp1[2][2]; + } + } // of pragma omp critical + + return sqrt( sum / (double) n ); +} + + + +/** + * This function is used to match a set of laser scans with any minimally + * connected Graph, using the globally consistent LUM-algorithm in 3D. + * + * @param gr Some Graph with no real subgraphs except for itself + * @param allScans Contains all laser scans + * @param nrIt The number of iterations the LUM-algorithm will run + * @return Euclidian distance of all pose shifts + */ +double ghelix6DQ2::doGraphSlam6D(Graph gr, vector allScans, int nrIt) +{ + +#ifdef WRITE_GRAPH_NET + // for debug only: + static int d = 0; + cout << "writing graph.dat ....................................." << endl; + d++; + string gfilename = "graph_" + to_string(d, 3) + ".net"; + ofstream out(gfilename.c_str()); + for (int i=0; i < gr.getNrLinks(); i++) { + int from = gr.getLink(i,0); + int to = gr.getLink(i,1); + // shouldn't be necessary, just in case a (out of date) graph file is loaded: + if (from < (int)allScans.size() && to < (int)allScans.size()) { + out << allScans[from]->get_rPos()[0] << " " + << allScans[from]->get_rPos()[1] << " " + << allScans[from]->get_rPos()[2] << endl + << allScans[to ]->get_rPos()[0] << " " + << allScans[to ]->get_rPos()[1] << " " + << allScans[to ]->get_rPos()[2] << endl << endl; + } + } + out.close(); + out.clear(); +#endif + + // the IdentityMatrix to transform some Scans with + double id[16]; + M4identity(id); + + vPtPair **ptpairs = 0; // Contains sets of point pairs for all links + Matrix B ( 6 * (gr.getNrScans()-1), 6 * (gr.getNrScans()-1) ); + ColumnVector ccs( 6*(gr.getNrScans()-1) ), bd( 6*(gr.getNrScans()-1) ); + + B = 0.0; + bd = 0.0; + + double sum_position_diff = 0; + double ret = DBL_MAX; + + for(int iteration = 0; + iteration < nrIt && ret > epsilonLUM; + iteration++) { + sum_position_diff = 0; + + if (nrIt > 1) cout << "Iteration match " << iteration << endl; + + if (ptpairs != 0) delete [] ptpairs; + ptpairs = new vPtPair*[gr.getNrLinks()]; + + for (int i = 0; i < gr.getNrLinks(); i++) { + ptpairs[i] = new vPtPair; + } + + // Get all point pairs after ICP + int end_loop = gr.getNrLinks(); +#ifdef _OPENMP + omp_set_num_threads(OPENMP_NUM_THREADS); +#pragma omp parallel for schedule(dynamic) +#endif + + for ( int i = 0; i < end_loop; i++) { + cout << "P" << i << flush; + Scan * FirstScan = allScans[gr.getLink(i,0)]; + Scan * SecondScan = allScans[gr.getLink(i,1)]; +#ifdef _OPENMP + int thread_num = omp_get_thread_num(); +#else + int thread_num = 0; +#endif + double dummy_centroid_m[3]; + double dummy_centroid_d[3]; + double dummy_sum; + + Scan::getPtPairs(ptpairs[i], FirstScan, SecondScan, thread_num, + (int)my_icp->get_rnd(), (int)max_dist_match2_LUM, dummy_sum, + dummy_centroid_m, dummy_centroid_d); + + // faulty network + if (ptpairs[i]->size() <= 1) { + cout << "Error: Link (" << gr.getLink(i,0) + << " - " << gr.getLink(i, 1) << " ) is empty with " + << ptpairs[i]->size() << " Corr. points. iteration = " + << iteration << endl; + // exit(1); + + } else + // build the matrix B and vector bd + genBBdForLinkedPair( gr.getLink(i,0), gr.getLink(i,1), ptpairs[i], &B, &bd ); + } + cout <<" building matrices done! "<clear(); + delete (ptpairs[i]); + } + + ColumnVector t0(3), t(3), tlast(3); + int vectorOffset; + + int loop_end = gr.getNrScans(); + double alignxfLum[16]; + for(int i = 1; i < loop_end; i++) + { + vectorOffset = (i-1) * 6; + icp6D_HELIX::computeRt( &ccs, vectorOffset, alignxfLum); + + // Update the Pose + + cout << "Old pose estimate, Scan " << i << endl; + cout << "x: " << allScans[i]->get_rPos()[0] + << " y: " << allScans[i]->get_rPos()[1] + << " z: " << allScans[i]->get_rPos()[2] + << " tx: " << allScans[i]->get_rPosTheta()[0] + << " ty: " << allScans[i]->get_rPosTheta()[1] + << " tz: " << allScans[i]->get_rPosTheta()[2] + << endl; + + if (i < loop_end - 1) { + allScans[i]->transform(alignxfLum, Scan::LUM, 1); + } else { + allScans[i]->transform(alignxfLum, Scan::LUM, 2); + } + + cout << "x: " << allScans[i]->get_rPos()[0] + << " y: " << allScans[i]->get_rPos()[1] + << " z: " << allScans[i]->get_rPos()[2] + << " tx: " << allScans[i]->get_rPosTheta()[0] + << " ty: " << allScans[i]->get_rPosTheta()[1] + << " tz: " << allScans[i]->get_rPosTheta()[2] << endl << endl; + + sum_position_diff += sqrt( sqr(alignxfLum[12]) + sqr(alignxfLum[13]) + sqr(alignxfLum[14])); + + } + cout << "Sum of Position differences = " << sum_position_diff << endl << endl; + ret = (sum_position_diff / (double)gr.getNrScans()); + } + delete [] ptpairs; + ptpairs = 0; + + return ret; +} + diff --git a/src/slam6d/graph.cc b/src/slam6d/graph.cc new file mode 100644 index 0000000..314aa4a --- /dev/null +++ b/src/slam6d/graph.cc @@ -0,0 +1,236 @@ +/* + * graph implementation + * + * Copyright (C) Dorit Borrmann, Jan Elseberg, Kai Lingemann, Andreas Nuechter + * + * Released under the GPL version 3. + * + */ + +/** + * @file + * @brief The implementation of a graph + * @author Dorit Borrman. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Jan Elseberg. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "slam6d/graph.h" + +#include "slam6d/scan.h" +#include "slam6d/globals.icc" + +#include +using std::ifstream; +#include +using std::cout; +using std::cerr; +using std::endl; + +/** + * Constructor to create an empty graph + */ +Graph::Graph() +{ + nrScans = 0; + start = 0; +} + + +/** + * Constructor to read a Graph from a file. + * The file must have the the number of scans in the first line, + * the number of links to be read in the second and the links in + * the links in the third and fourth line + * + * Example: + * 4 + * 3 + * 0 1 + * 1 2 + * 3 4 + * 4 0 + * + * @param netfile Filename of the file to read + */ +Graph::Graph(const string &netfile) +{ + nrScans = 0; + start = 0; + int local_nrScans, local_nrLinks; + cout << "Reading network " << netfile; + + ifstream file(netfile.c_str()); + file >> local_nrScans + >> local_nrLinks; + + int f, t; + for(int j = 0; j < local_nrLinks; j++) { + if (!file.good()) { + cerr << "Error while reading network structure" << endl; + exit(1); + } + file >> f >> t; + cout << f << " " << t << endl; + addLink(f, t); + } + cout << " structure done." << endl; +} + +/** + * Constructor to build a minimally connected Graph with a given number of scans. + * The loop can optionally be closed, so that the first will be connected to the last scan. + * + * @param nScans The number of Scans + * @param loop Specifies whether the first and last scan should be linked + */ +Graph::Graph(int nScans, bool loop) +{ + int nrLinks = 0; + start = 0; + nrScans = nScans; + + if (loop) { + nrLinks = nScans; + } else { + nrLinks = nScans - 1; + } + + for(int i = 0 ;i < nrLinks; i++){ + from.push_back(i); + if (loop) { + to.push_back(i != nrLinks - 1 ? i + 1 : 0) ; + } else { + to.push_back(i + 1); + } + } +} + + +Graph::Graph(int nodes, double cldist2, int loopsize) +{ + // nodes + 1 + start = 0; + nrScans = nodes; + int nrLinks = nodes - 1; + + for(int i = 0; i < nrLinks; i++){ + from.push_back(i); + to.push_back(i + 1); + } + + // nodes + for (int j = 0; j < nodes; j++) { + for (int k = j + 1; k < nodes; k++) { + if ((abs(k-j) > loopsize) && + (Dist2(Scan::allScans[j]->get_rPos(), Scan::allScans[k]->get_rPos()) < cldist2)) { + addLink(j, k); + } + } + } +} + + + +/** + * Returns the specified link + * + * @param i The i-th link + * @param fromTo 0 is the outgoing node and 1 the ingoing + * @return An integer for the node + */ +int Graph::getLink(int i, int fromTo) +{ + if (i >= 0 && i < (int)from.size()) { + if (fromTo == 0) return from[i]; + else return to[i]; + } + return 0; +} + + +/** + * adds a link to a graph + * + * @param i from node + * @param j to node + */ +void Graph::addLink(int i, int j) +{ + int present = 0; + for (unsigned int iterator = 0; iterator < from.size(); iterator++) { + if (from[iterator] == i) present++; + if (to[iterator] == i) present++; + } + if (present == 0) nrScans++; + present = 0; + for (unsigned int iterator = 0; iterator < from.size(); iterator++) { + if (from[iterator] == j) present++; + if (to[iterator] == j) present++; + } + if (present == 0) nrScans++; + + from.push_back(i); + to.push_back(j); +} + + +/** + * Returns the number of links + * @return number of links + */ +int Graph::getNrLinks() +{ + return from.size(); +} + +/** + * Returns the number of scans + * @return number of scans + */ +int Graph::getNrScans() +{ + return nrScans; +} + +/** + * sets the number of scans + * @param number of scans + */ +void Graph::setNrScans(int _nrScans) +{ + nrScans = _nrScans; +} + +/** + * Returns the number of the first scan + * @return number of the first scan + */ +int Graph::getStart() +{ + return start; +} + +/** + * Returns the number of the last scan + * @return number of the last scan + */ +int Graph::getEnd() +{ + return start+nrScans - 1; +} + +/** + * Prints out the Graph nicely formatted + * @param os the stream to print to + * @param gr which Graph to print + * @return the resulting output stream + */ +ostream& operator<<(ostream& os, Graph* gr) +{ + for(int i = 0; i < (int)gr->from.size() ; i++){ + os << "( " << gr->getLink(i,0) << " - " << gr->getLink(i,1) << " )" << endl; + } + return os; +} diff --git a/src/slam6d/graphHOG-Man.cc b/src/slam6d/graphHOG-Man.cc new file mode 100644 index 0000000..e11af7a --- /dev/null +++ b/src/slam6d/graphHOG-Man.cc @@ -0,0 +1,151 @@ +/* + * graphHOG-Max implementation + * + * Copyright (C) Jochen Sprickerhof + * + * Released under the GPL version 3. + * + */ + +/** + * @file HOG-Man wrapper + * @author Jochen Sprickerhof. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "slam6d/graphHOG-Man.h" + +#include "slam6d/metaScan.h" +#include "slam6d/lum6Deuler.h" +#include "slam6d/globals.icc" + +#include +using std::ofstream; +using std::ifstream; +#include +#include +using namespace NEWMAT; +/** + * This function is used to match a set of laser scans with any minimally + * connected Graph. + * + * @param gr Some Graph with no real subgraphs except for itself + * @param allScans Contains all laser scans + * @param nrIt The number of iterations the LUM-algorithm will run + * @return Euclidian distance of all pose shifts + */ +double graphHOGMan::doGraphSlam6D(Graph gr, vector allScans, int nrIt) +{ + Matrix C(6, 6); + double invers[16], rela[16], rPos[3], rPosTheta[3], rPosQuat[4]; + double Pl0[16]; + + ofstream outFile("hogman.graph"); + int n = gr.getNrScans(); + for(int i = 0; i < n; i++) { + QuatRPYEuler(allScans[i]->get_rPosQuat(), rPosTheta); + outFile << "VERTEX3" << " " << i << + " " << (allScans[i]->get_rPos()[0]/100) << + " " << (allScans[i]->get_rPos()[1]/100) << + " " << (allScans[i]->get_rPos()[2]/100) << + " " << rPosTheta[0] << + " " << rPosTheta[1] << + " " << rPosTheta[2] << endl; + } + + for(int i = 0; i < gr.getNrLinks(); i++){ + int first = gr.getLink(i,0); + int last = gr.getLink(i,1); + + if(first != last-1) { + vector meta_start; + for(int i = first - 2; i <= first + 2; i++) { + if(i >= 0) { + meta_start.push_back(allScans[i]); + } + } + MetaScan *start = new MetaScan(meta_start, false, false); + + //static size of metascan + int offset_last_start = 2; + int offset_last_end = 0; + + vector meta_end; + for(int i = last - offset_last_start; i <= last + offset_last_end && i < n; i++) { + if(i >= 0) { + meta_end.push_back(allScans[i]); + } + } + MetaScan *end = new MetaScan(meta_end, false, false); + + memcpy(Pl0, allScans[last]->get_transMat(), 16 * sizeof(double)); + my_icp->match(start, end); + + delete start; + delete end; + } + + M4inv(allScans[last]->get_transMat(), invers); + MMult(invers, allScans[first]->get_transMat(), rela); + Matrix4ToQuat(rela, rPosQuat, rPos); + QuatRPYEuler(rPosQuat, rPosTheta); + + lum6DEuler::covarianceEuler(allScans[first], allScans[last], my_icp->get_nns_method(), my_icp->get_rnd(), my_icp->get_max_dist_match2(), &C); + + outFile << "EDGE3" << " " << last << " " << first << " " << + (rPos[0]/100) << " " << + (rPos[1]/100) << " " << + (rPos[2]/100) << " " << + rPosTheta[0] << " " << + rPosTheta[1] << " " << + rPosTheta[2] << " "; + for(int i = 1; i < 7; i++) + for(int j = i; j < 7; j++) + outFile << C(i, j) << " "; + outFile << endl; + + if(first != last-1) { + allScans[last]->transformToMatrix(Pl0,Scan::INVALID); + } + } + outFile.close(); + + system("LD_LIBRARY_PATH=./bin/ ./bin/hogman3d -update 1 -oc -o hogman-final.graph hogman.graph"); + + ifstream inFile("hogman-final.graph"); + string tag; + int id; + double dd; + double rPosN[3], rPosThetaN[3]; + while(inFile) { + inFile >> tag; + if(tag == "VERTEX3") { + inFile >> id; + if(id == n-1) { + inFile >> rPosN[0] >> rPosN[1] >> rPosN[2] >> rPosThetaN[0] >> rPosThetaN[1] >> rPosThetaN[2]; + rPosN[0] *= 100; + rPosN[1] *= 100; + rPosN[2] *= 100; + } else { + inFile >> rPos[0] >> rPos[1] >> rPos[2] >> rPosTheta[0] >> rPosTheta[1] >> rPosTheta[2]; + rPos[0] *= 100; + rPos[1] *= 100; + rPos[2] *= 100; + RPYEulerQuat(rPosTheta, rPosQuat); + if(id != 0) { + allScans[id]->transformToQuat(rPos, rPosQuat, Scan::GRAPHHOGMAN, 1); + } + } + } + else if(tag == "EDGE3") { + inFile >> id >> id; + for(int i=0; i < 22; i++) { + inFile >> dd; + } + } + } + RPYEulerQuat(rPosThetaN, rPosQuat); + allScans[n-1]->transformToQuat(rPosN, rPosQuat, Scan::GRAPHHOGMAN, 2); + inFile.close(); + + return DBL_MAX; +} diff --git a/src/slam6d/graphSlam6D.cc b/src/slam6d/graphSlam6D.cc new file mode 100644 index 0000000..c4e37f8 --- /dev/null +++ b/src/slam6d/graphSlam6D.cc @@ -0,0 +1,490 @@ +/* + * graphSlam6D implementation + * + * Copyright (C) Dorit Borrmann, Jan Elseberg, Kai Lingemann, Andreas Nuechter + * + * Released under the GPL version 3. + * + */ + + +/** + * @file + * @brief The implementation of globally consistent scan matching algorithm + * @author Dorit Borrman. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Jan Elseberg. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifdef _MSC_VER +#if !defined _OPENMP && defined OPENMP +#define _OPENMP +#endif +#endif + +#include "slam6d/graphSlam6D.h" +#include "sparse/csparse.h" + +#include +#include +using std::ofstream; +using std::flush; +#include "slam6d/globals.icc" + +using namespace NEWMAT; +/** + * Constructor + * + * @param my_icp6Dminimizer Pointer to ICP minimization functor + * @param mdm Maximum PtoP distance to which point pairs are collected for ICP + * @param max_dist_match Maximum PtoP distance to which point pairs are collected for LUM + * @param max_num_iterations Maximal number of iterations for ICP + * @param quiet Suspesses all output to std out + * @param meta Indicates if metascan matching has to be used + * @param rnd Indicates if randomization has to be used + * @param eP Extrapolate odometry? + * @param anim Animate which frames? + * @param epsilonICP Termination criterion for ICP + * @param nns_method Specifies which NNS method to use + * @param epsilonLUM Termination criterion for LUM + */ +graphSlam6D::graphSlam6D(icp6Dminimizer *my_icp6Dminimizer, + double mdm, double max_dist_match, + int max_num_iterations, bool quiet, bool meta, int rnd, + bool eP, int anim, double epsilonICP, int nns_method, double epsilonLUM) +{ + this->nns_method = nns_method; + this->quiet = quiet; + this->epsilonLUM = epsilonLUM; + this->max_dist_match2_LUM = sqr(max_dist_match); + + ctime = 0; + + this->my_icp = new icp6D(my_icp6Dminimizer, mdm, max_num_iterations, + quiet, meta, rnd, eP, anim, epsilonICP, nns_method); +} + +graphSlam6D::~graphSlam6D() + { + cout << "Time spent in the SLAM backend:" << ctime << endl; + } +/** + * This function is used to match a set of laser scans with any minimally + * connected Graph, using the globally consistent LUM-algorithm in 3D. + * + * @param allScans Contains all laser scans + * @param nrIt The number of iterations the LUM-algorithm will run + * @param clpairs minimal number of points aximal distance for closing loops + * @param loopsize minimal loop size + */ +void graphSlam6D::matchGraph6Dautomatic(vector allScans, int nrIt, int clpairs, int loopsize) +{ + // the IdentityMatrix to transform some Scans with + double id[16]; + M4identity(id); + + Graph *gr = 0; + int i = 0; + + do { + cout << "Generate graph ... " << flush; + i++; + if (gr) delete gr; + gr = new Graph(0, false); + int j, maxj = (int)allScans.size(); +#ifdef _OPENMP + omp_set_num_threads(OPENMP_NUM_THREADS); +#pragma omp parallel for schedule(dynamic) +#endif + for (j = 0; j < maxj; j++) { +#ifdef _OPENMP + int thread_num = omp_get_thread_num(); +#else + int thread_num = 0; +#endif + for (int k = 0; k < (int)allScans.size(); k++) { + if (j == k) continue; + Scan * FirstScan = allScans[j]; + Scan * SecondScan = allScans[k]; + double centroid_d[3] = {0.0, 0.0, 0.0}; + double centroid_m[3] = {0.0, 0.0, 0.0}; + vPtPair temp; + double sum_dummy; + Scan::getPtPairs(&temp, FirstScan, SecondScan, thread_num, + my_icp->get_rnd(), (int)max_dist_match2_LUM, sum_dummy, + centroid_m, centroid_d); + if ((int)temp.size() > clpairs) { +#ifdef _OPENMP +#pragma omp critical +#endif + gr->addLink(j, k); + } + } + } + cout << "done" << endl; + } while ((doGraphSlam6D(*gr, allScans, 1) > 0.001) && (i < nrIt)); + + return; +} + + +Graph *graphSlam6D::computeGraph6Dautomatic(vector allScans, int clpairs) +{ + // the IdentityMatrix to transform some Scans with + double id[16]; + M4identity(id); + + int i = 0; + + cout << "Generate graph ... " << flush; + i++; + Graph *gr = new Graph(0, false); + int j, maxj = (int)allScans.size(); +#ifdef _OPENMP + omp_set_num_threads(OPENMP_NUM_THREADS); +#pragma omp parallel for schedule(dynamic) +#endif + for (j = 0; j < maxj; j++) { +#ifdef _OPENMP + int thread_num = omp_get_thread_num(); +#else + int thread_num = 0; +#endif + for (int k = 0; k < (int)allScans.size(); k++) { + if (j == k) continue; + Scan * FirstScan = allScans[j]; + Scan * SecondScan = allScans[k]; + double centroid_d[3] = {0.0, 0.0, 0.0}; + double centroid_m[3] = {0.0, 0.0, 0.0}; + vPtPair temp; + double sum_dummy; + Scan::getPtPairs(&temp, FirstScan, SecondScan, thread_num, + my_icp->get_rnd(), (int)max_dist_match2_LUM, sum_dummy, + centroid_m, centroid_d); + if ((int)temp.size() > clpairs) { +#ifdef _OPENMP +#pragma omp critical +#endif + gr->addLink(j, k); + } + } + } + cout << "done" << endl; + + return gr; +} + +/** + * This function is used to solve the system of linear eq. + * + * @param G symmetric, positive definite Matrix, thus invertable + * @param B column vector + */ +void graphSlam6D::writeMatrixPGM(const Matrix &G) +{ + int n = G.Ncols(); + static int matrixnum = 0; + string mf = "matrix" + to_string(matrixnum,4) + ".pgm"; + ofstream matrixout(mf.c_str()); + matrixout << "P2" << endl + << "# CREATOR slam6D (c) Andreas Nuechter, 05/2007" << endl + << n << " " << n << endl + << 255 << endl; + for (int i = 0; i < n; i++) { + for (int j = 0; j < n; j++) { + if (G.element(i, j) > 0.001) { + matrixout << 0 << " "; + } else { + matrixout << 255 << " "; + } + } + matrixout << endl; + } + // matrixout << G << endl; + matrixout.close(); + matrixout.clear(); + matrixnum++; + +} + + + +/** + * This function is used to solve the system of linear eq. + * + * @param G Matrix, invertable + * @param B column vector + */ +ColumnVector graphSlam6D::solve(const Matrix &G, const ColumnVector &B) +{ + +#ifdef WRITE_MATRIX_PGM + writeMatrixPGM(G); +#endif + + // ---------------------------------- + // solve eqn via inverting the matrix + // ---------------------------------- + return (ColumnVector)(G.i() * B); +} + + +/** + * This function is used to solve the system of linear eq. + * The implementation from the numerical recepies are used + * + * @param G symmetric, positive definite Matrix, thus invertable + * @param B column vector + */ +ColumnVector graphSlam6D::solveCholesky(const Matrix &G, const ColumnVector &B) +{ + +#ifdef WRITE_MATRIX_PGM + writeMatrixPGM(G); +#endif + + // We copy the newmat matrices and use our own + // Cholesky decomposition code here. The Cholesky + // decomosition is based on the Numerical Recipes in C. + // This speed ups computation time + + // copy values + int n = G.Ncols(); + double **A = new double*[n]; + double *C = new double[n]; + double *diag = new double[n]; + double *x = new double[n]; + ColumnVector X(n); + for (int i = 0; i < n; i++) { + A[i] = new double[n]; + for (int j = 0; j < n; j++) { + A[i][j] = G.element(i, j); + } + C[i] = B.element(i); + } + // -------------------------------------------------- + // make cholesky dekomposition with numerical recipes + // -------------------------------------------------- + if (!choldc(n, A, diag)) { + cout << "cannot perfom cholesky decomposition" << endl; + } + // solve A x = C + cholsl(n, A, diag, C, x); + // copy values back + for (int i = 0; i < n; i++) { + X.element(i) = x[i]; + } + // clean up + for (int i = 0; i < n; i++) { + delete [] A[i]; + } + delete [] x; + delete [] diag; + delete [] C; + delete [] A; + + return X; +} + + +/** + * This function is used to solve the system of linear eq. + * + * @param G symmetric, positive definite Matrix, thus invertable + * @param B column vector + */ +ColumnVector graphSlam6D::solveSparseCholesky(const Matrix &G, const ColumnVector &B) +{ + + long starttime = GetCurrentTimeInMilliSec(); + +#ifdef WRITE_MATRIX_PGM + writeMatrixPGM(G); +#endif + + int n = G.Ncols(); + + // ------------------------------ + // Sparse Cholsekey decomposition + // ------------------------------ + ColumnVector X(n); + cs *A, *T = cs_spalloc (0, 0, 1, 1, 1) ; + double *x = new double[n]; + for (int i = 0; i < n; i++) { + for (int j = 0; j < n; j++) { + if (fabs(G.element(i, j)) > 0.00001) { + cs_entry (T, i, j, G.element(i, j)); + } + } + x[i] = B.element(i); + } + A = cs_triplet (T); + cs_dropzeros (A) ; // drop zero entries + cs_cholsol (A, x, 1) ; + // copy values back + for (int i = 0; i < n; i++) { + X.element(i) = x[i]; + } + + cs_spfree(A); + cs_spfree(T); + delete [] x; + + ctime += GetCurrentTimeInMilliSec() - starttime; + + return X; +} + +ColumnVector graphSlam6D::solveSparseCholesky(GraphMatrix *G, const ColumnVector &B) +{ + + long starttime = GetCurrentTimeInMilliSec(); + + int n = B.Nrows(); + ColumnVector X(n); + + // ------------------------------ + // Sparse Cholsekey decomposition + // ------------------------------ + cs *A, *T = cs_spalloc (0, 0, 1, 1, 1) ; + double *x = new double[n]; + for (int i = 0; i < n; i++) { + x[i] = B.element(i); + } + G->convertToCS(T); + A = cs_triplet (T); + cs_dropzeros (A) ; // drop zero entries +// cs_print(T, 0); + cs_cholsol (A, x, 1) ; + // copy values back + for (int i = 0; i < n; i++) { + X.element(i) = x[i]; + } + + cs_spfree(A); + cs_spfree(T); + delete [] x; + + ctime += GetCurrentTimeInMilliSec() - starttime; + + return X; +} + + +/** + * This function is used to solve the system of linear eq. + * + * @param G invertable Matrix + * @param B column vector + */ +ColumnVector graphSlam6D::solveSparseQR(const Matrix &G, const ColumnVector &B) +{ + +#ifdef WRITE_MATRIX_PGM + writeMatrixPGM(G); +#endif + + int n = B.Ncols(); + + ColumnVector X(n); + cs *A, *T = cs_spalloc (0, 0, 1, 1, 1) ; + double *x = new double[n]; + for (int i = 0; i < n; i++) { + for (int j = 0; j < n; j++) { + if (fabs(G.element(i, j)) > 0.00001) { + cs_entry (T, i, j, G.element(i, j)); + } + } + x[i] = B.element(i); + } + A = cs_triplet (T); + cs_dropzeros (A) ; // drop zero entries + int order = 3; // for qr-ordering + cs_qrsol ( A, x, order) ; + // copy values back + for (int i = 0; i < n; i++) { + X.element(i) = x[i]; + } + + cs_spfree(A); + cs_spfree(T); + delete [] x; + + return X; +} + +void graphSlam6D::set_mdmll(double mdmll) { + max_dist_match2_LUM = sqr(mdmll); +} + + +void GraphMatrix::add(const unsigned int i, const unsigned int j, Matrix &Cij) { + uipair ui(i,j); + it = matrix.find( ui ); + if (it != matrix.end()) { + (*(it->second)) += Cij; + } else { + Matrix *C = new Matrix(6,6); + *C = Cij; + matrix.insert( uimpair( ui, C)); + } +} + +void GraphMatrix::subtract(const unsigned int i, const unsigned int j,Matrix &Cij) { + uipair ui(i,j); + it = matrix.find( ui ); + if (it != matrix.end()) { + (*it->second) -= Cij; + } else { + Matrix *C = new Matrix(6,6); + *C = Cij; + *C *= -1.0; + matrix.insert( uimpair( ui, C)); + } +} + +void GraphMatrix::print() { + for ( it = matrix.begin() ; it != matrix.end(); it++ ) { + uimpair uim = *it; + uipair ui = uim.first; + cout << ui.first << " " << ui.second << " :" << endl << *uim.second << endl; + } +} + +GraphMatrix::~GraphMatrix() { + for ( it = matrix.begin() ; it != matrix.end(); it++ ) { + uimpair uim = *it; + delete uim.second; + } + +} + +void GraphMatrix::convertToCS(cs *T) { + unsigned int a,b; + int imin,imax,jmin,jmax; + + for ( it = matrix.begin() ; it != matrix.end(); it++ ) { + Matrix *C = it->second; + a = it->first.first; + b = it->first.second; +// cout << a << " " << b << " " << C << endl; + imin = a*6; + jmin = b*6; + + imax = a*6 + 6; + jmax = b*6 + 6; + a = b = 0; + + for (int i = imin; i < imax; i++, a++) { + b = 0; + for (int j = jmin; j < jmax; j++, b++) { + if (fabs(C->element(a, b)) > 0.00001) { + cs_entry (T, i, j, C->element(a, b)); + } + } + } + } +// print(); +// cs_print(T, 0); +} diff --git a/src/slam6d/graphToro.cc b/src/slam6d/graphToro.cc new file mode 100644 index 0000000..a3095e7 --- /dev/null +++ b/src/slam6d/graphToro.cc @@ -0,0 +1,152 @@ +/* + * graphToro implementation + * + * Copyright (C) Jochen Sprickerhof + * + * Released under the GPL version 3. + * + */ + + +/** + * @file TORO wrapper + * @author Jochen Sprickerhof. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "slam6d/graphToro.h" + +#include "slam6d/metaScan.h" +#include "slam6d/lum6Deuler.h" +#include "slam6d/globals.icc" + +#include +using std::ofstream; +using std::ifstream; +#include +#include +using namespace NEWMAT; +/** + * This function is used to match a set of laser scans with any minimally + * connected Graph. + * + * @param gr Some Graph with no real subgraphs except for itself + * @param allScans Contains all laser scans + * @param nrIt The number of iterations the LUM-algorithm will run + * @return Euclidian distance of all pose shifts + */ +double graphToro::doGraphSlam6D(Graph gr, vector allScans, int nrIt) +{ + Matrix C(6, 6); + double invers[16], rela[16], rPos[3], rPosTheta[3], rPosQuat[4]; + double Pl0[16]; + + ofstream outFile("toro.graph"); + int n = gr.getNrScans(); + for(int i = 0; i < n; i++) { + QuatRPYEuler(allScans[i]->get_rPosQuat(), rPosTheta); + outFile << "VERTEX3" << " " << i << + " " << (allScans[i]->get_rPos()[0]/100) << + " " << (allScans[i]->get_rPos()[1]/100) << + " " << (allScans[i]->get_rPos()[2]/100) << + " " << rPosTheta[0] << + " " << rPosTheta[1] << + " " << rPosTheta[2] << endl; + } + + for(int i = 0; i < gr.getNrLinks(); i++){ + int first = gr.getLink(i,0); + int last = gr.getLink(i,1); + + if(first != last-1) { + vector meta_start; + for(int i = first - 2; i <= first + 2; i++) { + if(i >= 0) { + meta_start.push_back(allScans[i]); + } + } + MetaScan *start = new MetaScan(meta_start, false, false); + + //static size of metascan + int offset_last_start = 2; + int offset_last_end = 0; + + vector meta_end; + for(int i = last - offset_last_start; i <= last + offset_last_end && i < n; i++) { + if(i >= 0) { + meta_end.push_back(allScans[i]); + } + } + MetaScan *end = new MetaScan(meta_end, false, false); + + memcpy(Pl0, allScans[last]->get_transMat(), 16 * sizeof(double)); + my_icp->match(start, end); + + delete start; + delete end; + } + + M4inv(allScans[last]->get_transMat(), invers); + MMult(invers, allScans[first]->get_transMat(), rela); + Matrix4ToQuat(rela, rPosQuat, rPos); + QuatRPYEuler(rPosQuat, rPosTheta); + + lum6DEuler::covarianceEuler(allScans[first], allScans[last], my_icp->get_nns_method(), my_icp->get_rnd(), my_icp->get_max_dist_match2(), &C); + + outFile << "EDGE3" << " " << last << " " << first << " " << + (rPos[0]/100) << " " << + (rPos[1]/100) << " " << + (rPos[2]/100) << " " << + rPosTheta[0] << " " << + rPosTheta[1] << " " << + rPosTheta[2] << " "; + for(int i = 1; i < 7; i++) + for(int j = i; j < 7; j++) + outFile << C(i, j) << " "; + outFile << endl; + + if(first != last-1) { + allScans[last]->transformToMatrix(Pl0,Scan::INVALID); + } + } + outFile.close(); + + system("sort toro.graph > toro2.graph && mv toro2.graph toro.graph && ./bin/toro3d toro.graph"); + + ifstream inFile("toro-treeopt-final.graph"); + string tag; + int id; + double dd; + double rPosN[3], rPosThetaN[3]; + while(inFile) { + inFile >> tag; + if(tag == "VERTEX3") { + inFile >> id; + if(id == n-1) { + inFile >> rPosN[0] >> rPosN[1] >> rPosN[2] >> rPosThetaN[0] >> rPosThetaN[1] >> rPosThetaN[2]; + rPosN[0] *= 100; + rPosN[1] *= 100; + rPosN[2] *= 100; + } else { + inFile >> rPos[0] >> rPos[1] >> rPos[2] >> rPosTheta[0] >> rPosTheta[1] >> rPosTheta[2]; + rPos[0] *= 100; + rPos[1] *= 100; + rPos[2] *= 100; + RPYEulerQuat(rPosTheta, rPosQuat); + if(id != 0) { + allScans[id]->transformToQuat(rPos, rPosQuat, Scan::GRAPHTORO, 1); + } + } + } + else if(tag == "EDGE3") { + inFile >> id >> id; + for(int i=0; i < 22; i++) { + inFile >> dd; + } + } + } + RPYEulerQuat(rPosThetaN, rPosQuat); + allScans[n-1]->transformToQuat(rPosN, rPosQuat, Scan::GRAPHTORO, 2); + inFile.close(); + + return DBL_MAX; +} diff --git a/src/slam6d/graph_balancer.cc b/src/slam6d/graph_balancer.cc new file mode 100644 index 0000000..6c79fe6 --- /dev/null +++ b/src/slam6d/graph_balancer.cc @@ -0,0 +1,109 @@ +/* + * graph_balancer implementation + * + * Copyright (C) Jochen Sprickerhof + * + * Released under the GPL version 3. + * + */ + +/** + * @file stand alone graph balancer implementation + * reads graph in graphviz format and optimizes it + * @author Jochen Sprickerhof + */ + +#ifndef _MSC_VER +#include +#else +#include "XGetopt.h" +#endif + +#include +using std::cout; +using std::cerr; +using std::endl; + +#include +using std::string; + +#include + +#include "slam6d/elch6D.h" + +void usage(string progname) { + cout << "Usage: " << progname << " OPTIONS FILE" << endl << + "\t -s \t\t first node in loop" << endl << + "\t -e \t\t last node in loop" << endl << + "\t -o \t\t output filename (must be given)" << endl; +} + +int main(int argc, char *argv[]) +{ + + if(argc < 2) { + usage(argv[0]); + exit(1); + } + + int start = 0, end = 4; + string out_file; + /* options descriptor */ + // 0: no arguments, 1: required argument, 2: optional argument + static struct option longopts[] = { + { "end", required_argument, 0, 'e' }, + { "out", required_argument, 0, 'o' }, + { "start", required_argument, 0, 's' }, + //{ "reduce", required_argument, 0, 'r' }, + { 0, 0, 0, 0} // needed, cf. getopt.h + }; + + int c; + while((c = getopt_long(argc, argv, "e:o:s:", longopts, NULL)) != -1) { + switch (c) { + case 'e': + end = atoi(optarg); + if(end < 0) { + cerr << "Error: Cannot end at a negative number." << endl; + exit(1); + } + break; + case 'o': + out_file = optarg; + break; + case 's': + start = atoi(optarg); + if(start < 0) { + cerr << "Error: Cannot start at a negative number." << endl; + exit(1); + } + break; + case '?': + default: + exit(1); + } + } + + if(out_file.empty()) { + usage(argv[0]); + exit(1); + } + + graph_t g(0); + boost::dynamic_properties dp(boost::ignore_other_properties); + boost::property_map::type weight = get(boost::edge_weight, g); + dp.property("weight", weight); + + std::ifstream gf(argv[optind]); + read_graphviz(gf, g, dp); + + graph_t g_org(g); + double *w = new double[num_vertices(g)]; + + elch6D::graph_balancer(g, start, end, w); + elch6D::graph_weight_out(g_org, start, end, w, out_file); + + delete[] w; + exit(0); +} + diff --git a/src/slam6d/icp6D.cc b/src/slam6d/icp6D.cc new file mode 100644 index 0000000..4baceb3 --- /dev/null +++ b/src/slam6d/icp6D.cc @@ -0,0 +1,367 @@ +/* + * icp6D implementation + * + * Copyright (C) Andreas Nuechter, Kai Lingemann + * + * Released under the GPL version 3. + * + */ + + +/** + * @file + * @brief Implementation of 3D scan matching with ICP + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "slam6d/icp6D.h" + +#include "slam6d/metaScan.h" +#include "slam6d/globals.icc" + +#include +using std::cerr; + +#include + +#ifdef _MSC_VER +#if !defined _OPENMP && defined OPENMP +#define _OPENMP +#endif +#endif + +#ifdef _OPENMP +#include +#endif +/** + * Constructor + * + * @param my_icp6Dminimizer Pointer to the ICP-minimizer + * @param max_dist_match Maximum distance to which point pairs are collected + * @param max_num_iterations Maximum number of iterations + * @param quiet Whether to print to the standard output + * @param meta Match against a meta scan? + * @param rnd Randomized point selection + * @param eP Extrapolate odometry? + * @param anim Animate which frames? + * @param epsilonICP Termination criterion + * @param nns_method Selects NNS method to be used + */ +icp6D::icp6D(icp6Dminimizer *my_icp6Dminimizer, double max_dist_match, + int max_num_iterations, bool quiet, bool meta, int rnd, bool eP, + int anim, double epsilonICP, int nns_method, bool cuda_enabled, + bool cad_matching) +{ + this->my_icp6Dminimizer = my_icp6Dminimizer; + this->anim = anim; + this->cuda_enabled = cuda_enabled; + this->nns_method = nns_method; + + if (!quiet) { + cout << "Maximal distance match : " << max_dist_match << endl + << "Maximal number of iterations: " << max_num_iterations << endl << endl; + } + + // checks + if (max_dist_match < 0.0) { + cerr << "ERROR [ICP6D]: first parameter (max_dist_match) has to be >= 0," << endl; + exit(1); + } + if (max_num_iterations < 0) { + cerr << "ERROR [ICP6D]: second parameter (max_num_iterations) has to be >= 0." << endl; + exit(1); + } + + this->max_dist_match2 = sqr(max_dist_match); + this->max_num_iterations = max_num_iterations; + this->quiet = quiet; + this->meta = meta; + this->rnd = rnd; + this->eP = eP; + this->epsilonICP = epsilonICP; + + // Set initial seed (for "real" random numbers) + // srand( (unsigned)time( NULL ) ); + this->cad_matching = cad_matching; +} + +/** + * Matches a 3D Scan against a 3D Scan + * @param PreviousScan The scan or metascan forming the model + * @param CurrentScan The current scan thas is to be matched + * @return The number of iterations done in this matching run + */ +int icp6D::match(Scan* PreviousScan, Scan* CurrentScan) +{ + // If ICP shall not be applied, then just write + // the identity matrix + if (max_num_iterations == 0) { + double id[16]; + M4identity(id); + CurrentScan->transform(id, Scan::ICP, 0); // write end pose + return 0; + } + + // icp main loop + double ret = 0.0, prev_ret = 0.0, prev_prev_ret = 0.0; + int iter = 0; + double alignxf[16]; + for (iter = 0; iter < max_num_iterations; iter++) { + + prev_prev_ret = prev_ret; + prev_ret = ret; + +#ifdef _OPENMP + // Implementation according to the paper + // "The Parallel Iterative Closest Point Algorithm" + // by Langis / Greenspan / Godin, IEEE 3DIM 2001 + // + // The same information are given in (ecrm2007.pdf) + // Andreas N眉chter. Parallelization of Scan Matching + // for Robotic 3D Mapping. In Proceedings of the 3rd + // European Conference on Mobile Robots (ECMR '07), + // Freiburg, Germany, September 2007 + omp_set_num_threads(OPENMP_NUM_THREADS); + + int max = (int)CurrentScan->size("xyz reduced"); + int step = max / OPENMP_NUM_THREADS; + + vector pairs[OPENMP_NUM_THREADS]; + double sum[OPENMP_NUM_THREADS]; + double centroid_m[OPENMP_NUM_THREADS][3]; + double centroid_d[OPENMP_NUM_THREADS][3]; + double Si[OPENMP_NUM_THREADS][9]; + unsigned int n[OPENMP_NUM_THREADS]; + + for (int i = 0; i < OPENMP_NUM_THREADS; i++) { + sum[i] = centroid_m[i][0] = centroid_m[i][1] = centroid_m[i][2] = 0.0; + centroid_d[i][0] = centroid_d[i][1] = centroid_d[i][2] = 0.0; + Si[i][0] = Si[i][1] = Si[i][2] = Si[i][3] = Si[i][4] = Si[i][5] = Si[i][6] = Si[i][7] = Si[i][8] = 0.0; + n[i] = 0; + } + +#pragma omp parallel + { + int thread_num = omp_get_thread_num(); + Scan::getPtPairsParallel(pairs, PreviousScan, CurrentScan, + thread_num, step, + rnd, max_dist_match2, + sum, centroid_m, centroid_d); + + n[thread_num] = (unsigned int)pairs[thread_num].size(); + + if ((my_icp6Dminimizer->getAlgorithmID() == 1) || + (my_icp6Dminimizer->getAlgorithmID() == 2)) { + for (unsigned int i = 0; i < n[thread_num]; i++) { + + double pp[3] = {pairs[thread_num][i].p1.x - centroid_m[thread_num][0], + pairs[thread_num][i].p1.y - centroid_m[thread_num][1], + pairs[thread_num][i].p1.z - centroid_m[thread_num][2]}; + double qq[3] = {pairs[thread_num][i].p2.x - centroid_d[thread_num][0], + pairs[thread_num][i].p2.y - centroid_d[thread_num][1], + pairs[thread_num][i].p2.z - centroid_d[thread_num][2]}; +/* + double pp[3] = {pairs[thread_num][i].p1.x - centroid_d[thread_num][0], + pairs[thread_num][i].p1.y - centroid_d[thread_num][1], + pairs[thread_num][i].p1.z - centroid_d[thread_num][2]}; + double qq[3] = {pairs[thread_num][i].p2.x - centroid_m[thread_num][0], + pairs[thread_num][i].p2.y - centroid_m[thread_num][1], + pairs[thread_num][i].p2.z - centroid_m[thread_num][2]}; +*/ + // formula (6) + Si[thread_num][0] += pp[0] * qq[0]; + Si[thread_num][1] += pp[0] * qq[1]; + Si[thread_num][2] += pp[0] * qq[2]; + Si[thread_num][3] += pp[1] * qq[0]; + Si[thread_num][4] += pp[1] * qq[1]; + Si[thread_num][5] += pp[1] * qq[2]; + Si[thread_num][6] += pp[2] * qq[0]; + Si[thread_num][7] += pp[2] * qq[1]; + Si[thread_num][8] += pp[2] * qq[2]; + } + } + } // end parallel + + + // do we have enough point pairs? + unsigned int pairssize = 0; + for (int i = 0; i < OPENMP_NUM_THREADS; i++) { + pairssize += n[i]; + } + if (pairssize > 3) { + if ((my_icp6Dminimizer->getAlgorithmID() == 1) || + (my_icp6Dminimizer->getAlgorithmID() == 2) ) { + ret = my_icp6Dminimizer->Point_Point_Align_Parallel(OPENMP_NUM_THREADS, + n, sum, centroid_m, centroid_d, Si, + alignxf); + } else if (my_icp6Dminimizer->getAlgorithmID() == 6) { + ret = my_icp6Dminimizer->Point_Point_Align_Parallel(OPENMP_NUM_THREADS, + n, sum, centroid_m, centroid_d, + pairs, + alignxf); + } else { + cout << "This parallel minimization algorithm is not implemented !!!" << endl; + exit(-1); + } + } else { + //break; + } +#else + + double centroid_m[3] = {0.0, 0.0, 0.0}; + double centroid_d[3] = {0.0, 0.0, 0.0}; + vector pairs; + + Scan::getPtPairs(&pairs, PreviousScan, CurrentScan, 0, rnd, + max_dist_match2, ret, centroid_m, centroid_d); + + // do we have enough point pairs? + if (pairs.size() > 3) { + if (my_icp6Dminimizer->getAlgorithmID() == 3 || my_icp6Dminimizer->getAlgorithmID() == 8 ) { + memcpy(alignxf, CurrentScan->get_transMat(), sizeof(alignxf)); + } + ret = my_icp6Dminimizer->Point_Point_Align(pairs, alignxf, centroid_m, centroid_d); + } else { + break; + } + +#endif + + if ((iter == 0 && anim != -2) || ((anim > 0) && (iter % anim == 0))) { + CurrentScan->transform(alignxf, Scan::ICP, 0); // transform the current scan + } else { + CurrentScan->transform(alignxf, Scan::ICP, -1); // transform the current scan + } + + if ((fabs(ret - prev_ret) < epsilonICP) && (fabs(ret - prev_prev_ret) < epsilonICP)) { + double id[16]; + M4identity(id); + if(anim == -2) { + CurrentScan->transform(id, Scan::ICP, -1); // write end pose + } else { + CurrentScan->transform(id, Scan::ICP, 0); // write end pose + } + break; + } + } + + return iter; +} + + +/** + * Computes the point to point error between two scans + * + * + */ +double icp6D::Point_Point_Error(Scan* PreviousScan, Scan* CurrentScan, double max_dist_match, unsigned int *np) { + double error = 0; + unsigned int nr_ppairs = 0; + +#ifdef _OPENMP + omp_set_num_threads(OPENMP_NUM_THREADS); + + int max = (int)CurrentScan->size("xyz reduced"); + int step = max / OPENMP_NUM_THREADS; + + vector pairs[OPENMP_NUM_THREADS]; + double sum[OPENMP_NUM_THREADS]; + double centroid_m[OPENMP_NUM_THREADS][3]; + double centroid_d[OPENMP_NUM_THREADS][3]; + + for (int i = 0; i < OPENMP_NUM_THREADS; i++) { + sum[i] = centroid_m[i][0] = centroid_m[i][1] = centroid_m[i][2] = 0.0; + centroid_d[i][0] = centroid_d[i][1] = centroid_d[i][2] = 0.0; + } + +#pragma omp parallel + { + int thread_num = omp_get_thread_num(); + Scan::getPtPairsParallel(pairs, PreviousScan, CurrentScan, + thread_num, step, + rnd, sqr(max_dist_match), + sum, centroid_m, centroid_d); + + } + + for (unsigned int thread_num = 0; thread_num < OPENMP_NUM_THREADS; thread_num++) { + for (unsigned int i = 0; i < (unsigned int)pairs[thread_num].size(); i++) { + error += sqr(pairs[thread_num][i].p1.x - pairs[thread_num][i].p2.x) + + sqr(pairs[thread_num][i].p1.y - pairs[thread_num][i].p2.y) + + sqr(pairs[thread_num][i].p1.z - pairs[thread_num][i].p2.z); + } + nr_ppairs += (unsigned int)pairs[thread_num].size(); + } +#else + + double centroid_m[3] = {0.0, 0.0, 0.0}; + double centroid_d[3] = {0.0, 0.0, 0.0}; + vector pairs; + + Scan::getPtPairs(&pairs, PreviousScan, CurrentScan, 0, rnd, sqr(max_dist_match),error, centroid_m, centroid_d); + + // getPtPairs computes error as sum of squared distances + error = 0; + + for (unsigned int i = 0; i < pairs.size(); i++) { + error += sqrt( + sqr(pairs[i].p1.x - pairs[i].p2.x) + + sqr(pairs[i].p1.y - pairs[i].p2.y) + + sqr(pairs[i].p1.z - pairs[i].p2.z) ); + } + nr_ppairs = pairs.size(); +#endif + + if (np) *np = nr_ppairs; +// return sqrt(error/nr_ppairs); + return error/nr_ppairs; +} +/** + * This function matches the scans only with ICP + * + * @param allScans Contains all necessary scans. + */ +void icp6D::doICP(vector allScans) +{ + double id[16]; + M4identity(id); + + vector < Scan* > meta_scans; + Scan* my_MetaScan = 0; + + for(unsigned int i = 0; i < allScans.size(); i++) { + cout << i << "*" << endl; + + Scan *CurrentScan = allScans[i]; + Scan *PreviousScan = 0; + + if (i > 0) { + PreviousScan = allScans[i-1]; + if (eP) { // extrapolate odometry + CurrentScan->mergeCoordinatesWithRoboterPosition(PreviousScan); + } + } + + if (i > 0) { + if (meta) { + match(my_MetaScan, CurrentScan); + } else + if (cad_matching) { + match(allScans[0], CurrentScan); + } else { + match(PreviousScan, CurrentScan); + } + } + + // push processed scan + if ( meta && i != allScans.size()-1 ) { + meta_scans.push_back(CurrentScan); + if (my_MetaScan) { + delete my_MetaScan; + } + my_MetaScan = new MetaScan(meta_scans, nns_method, cuda_enabled); + } + } +} + diff --git a/src/slam6d/icp6Dapx.cc b/src/slam6d/icp6Dapx.cc new file mode 100644 index 0000000..cb26fe0 --- /dev/null +++ b/src/slam6d/icp6Dapx.cc @@ -0,0 +1,309 @@ +/* + * icp6Dapx implementation + * + * Copyright (C) Andreas Nuechter + * + * Released under the GPL version 3. + * + */ + + +/** + * @file + * @brief Implementation of the ICP error function minimization via approximation + * @author Andreas Nuechter. Jacobs University Bremen gGmbH, Germany + */ + +#include "slam6d/icp6Dapx.h" + +#include "slam6d/globals.icc" +#include +#include +using std::ios; +using std::resetiosflags; +using std::setiosflags; + +/** + * computes the rotation matrix consisting + * of a rotation and translation that + * minimizes the root-mean-square error + * of the point pairs, using the approximation + * sin(x) = x. + * + * @param Pairs Vector of point pairs (pairs of corresponding points) + * @param alignxf The resulting transformation matrix + * @return Error estimation of the matching (rms) + */ +double icp6D_APX::Point_Point_Align(const vector& Pairs, double *alignxf, + const double centroid_m[3], const double centroid_d[3]) +{ + int n = Pairs.size(); + + // ?!? <= 3 + if (n <= 3) { + M4identity(alignxf); + return 0; + } + + int i; + + double A[3][3]; + double B[3]; + memset(&A[0][0], 0, 9 * sizeof(double)); + memset(&B[0], 0, 3 * sizeof(double)); + + double sum = 0; + double p1[3], p2[3]; + + for (i = 0; i < n; i++) { + p1[0] = Pairs[i].p1.x; + p1[1] = Pairs[i].p1.y; + p1[2] = Pairs[i].p1.z; + p2[0] = Pairs[i].p2.x; + p2[1] = Pairs[i].p2.y; + p2[2] = Pairs[i].p2.z; + + double p12[3] = { p1[0] - p2[0], p1[1] - p2[1], p1[2] - p2[2] }; + double p2c[3] = { p2[0] - centroid_d[0], p2[1] - centroid_d[1], p2[2] - centroid_d[2] }; + + sum += Len2(p12); + + B[0] += (p12[2]*p2c[1] - p12[1]*p2c[2]); + B[1] += (p12[0]*p2c[2] - p12[2]*p2c[0]); + B[2] += (p12[1]*p2c[0] - p12[0]*p2c[1]); + A[0][0] += (sqr(p2c[1]) + sqr(p2c[2])); + A[0][1] -= p2c[0] * p2c[1]; + A[0][2] -= p2c[0] * p2c[2]; + A[1][1] += (sqr(p2c[0]) + sqr(p2c[2])); + A[1][2] -= p2c[1] * p2c[2]; + A[2][2] += (sqr(p2c[0]) + sqr(p2c[1])); + } + + double error = sqrt(sum / n); + if (!quiet) { + cout.setf(ios::basefield); + cout << "APX RMS point-to-point error = " + << resetiosflags(ios::adjustfield) << setiosflags(ios::internal) + << resetiosflags(ios::floatfield) << setiosflags(ios::fixed) + << std::setw(10) << std::setprecision(7) + << error + << " using " << std::setw(6) << (int)Pairs.size() << " points" << endl; + } + + // Solve eqns + double diag[3]; + if (!choldc(A, diag)) { + printf("Couldn't find transform.\n"); + return -1.0; + } + double x[3]; + cholsl(A, diag, B, x); + + // Interpret results + double sx = x[0]; + double cx = sqrt(1.0 - sx*sx); + double sy = x[1]; + double cy = sqrt(1.0 - sy*sy); + double sz = x[2]; + double cz = sqrt(1.0 - sz*sz); + + alignxf[0] = cy*cz; + alignxf[1] = sx*sy*cz + cx*sz; + alignxf[2] = -cx*sy*cz + sx*sz; + alignxf[3] = 0; + alignxf[4] = -cy*sz; + alignxf[5] = -sx*sy*sz + cx*cz; + alignxf[6] = cx*sy*sz + sx*cz; + alignxf[7] = 0; + alignxf[8] = sy; + alignxf[9] = -sx*cy; + alignxf[10] = cx*cy; + alignxf[11] = 0; + alignxf[12] = centroid_m[0] - alignxf[0]*centroid_d[0] - alignxf[4]*centroid_d[1] - alignxf[8]*centroid_d[2]; + alignxf[13] = centroid_m[1] - alignxf[1]*centroid_d[0] - alignxf[5]*centroid_d[1] - alignxf[9]*centroid_d[2]; + alignxf[14] = centroid_m[2] - alignxf[2]*centroid_d[0] - alignxf[6]*centroid_d[1] - alignxf[10]*centroid_d[2]; + alignxf[15] = 1; + + return error; +} + + +double icp6D_APX::Point_Point_Align_Parallel(const int openmp_num_threads, + const unsigned int n[OPENMP_NUM_THREADS], + const double sum[OPENMP_NUM_THREADS], + const double centroid_m[OPENMP_NUM_THREADS][3], + const double centroid_d[OPENMP_NUM_THREADS][3], + const vector pairs[OPENMP_NUM_THREADS], + double *alignxf) + +{ + +#ifdef _OPENMP + + double At[OPENMP_NUM_THREADS][3][3]; + double Bt[OPENMP_NUM_THREADS][3]; + + for (int j=0;j < OPENMP_NUM_THREADS; j++) + for (int k = 0;k < 3; k++) { + for (int l = 0; l < 3; l++) + At[j][k][l] = 0.0; + Bt[j][k] = 0.0; + } + double A[3][3]; + double B[3]; + memset(&A[0][0], 0, 9 * sizeof(double)); + memset(&B[0], 0, 3 * sizeof(double)); + + double s = 0.0; + double error; + unsigned int pairs_size = 0; + double cm[3] = {0.0, 0.0, 0.0}; // centroid m + double cd[3] = {0.0, 0.0, 0.0}; // centroid d + + double cms[3], cds[3]; + for (int i = 0; i < 3; i++) cms[i] = cds[i] = 0.0; + + for (int i = 0; i < openmp_num_threads; i++) { + s += sum[i]; + pairs_size += n[i]; + + // compute centroids for all the pairs + cm[0] += n[i] * centroid_m[i][0]; + cm[1] += n[i] * centroid_m[i][1]; + cm[2] += n[i] * centroid_m[i][2]; + cd[0] += n[i] * centroid_d[i][0]; + cd[1] += n[i] * centroid_d[i][1]; + cd[2] += n[i] * centroid_d[i][2]; + + cms[0] += centroid_m[i][0]; + cms[1] += centroid_m[i][1]; + cms[2] += centroid_m[i][2]; + cds[0] += centroid_d[i][0]; + cds[1] += centroid_d[i][1]; + cds[2] += centroid_d[i][2]; + } + + cm[0] /= pairs_size; + cm[1] /= pairs_size; + cm[2] /= pairs_size; + cd[0] /= pairs_size; + cd[1] /= pairs_size; + cd[2] /= pairs_size; + + error = sqrt(s / (double)pairs_size); + +#pragma omp parallel + { + int thread_num = omp_get_thread_num(); + for (unsigned int i = 0 ; i < (unsigned int)pairs[thread_num].size() ; i++) + { + At[thread_num][0][0] += (pairs[thread_num][i].p2.y - cd[1])*(pairs[thread_num][i].p2.y - cd[1]) + + (pairs[thread_num][i].p2.z - cd[2])*(pairs[thread_num][i].p2.z - cd[2]); + At[thread_num][0][1] -= (pairs[thread_num][i].p2.x - cd[0])*(pairs[thread_num][i].p2.y - cd[1]); + At[thread_num][0][2] -= (pairs[thread_num][i].p2.x - cd[0])*(pairs[thread_num][i].p2.z - cd[2]); + At[thread_num][1][1] += (pairs[thread_num][i].p2.x - cd[0])*(pairs[thread_num][i].p2.x - cd[0]) + + (pairs[thread_num][i].p2.z - cd[2])*(pairs[thread_num][i].p2.z - cd[2]); + At[thread_num][1][2] -= (pairs[thread_num][i].p2.y - cd[1])*(pairs[thread_num][i].p2.z - cd[2]); + At[thread_num][2][2] += (pairs[thread_num][i].p2.x - cd[0])*(pairs[thread_num][i].p2.x - cd[0]) + + (pairs[thread_num][i].p2.y - cd[1])*(pairs[thread_num][i].p2.y - cd[1]); + + Bt[thread_num][0] += (pairs[thread_num][i].p1.z - pairs[thread_num][i].p2.z) + * (pairs[thread_num][i].p2.y - cd[1]) - (pairs[thread_num][i].p1.y - pairs[thread_num][i].p2.y) + * (pairs[thread_num][i].p2.z - cd[2]); + Bt[thread_num][1] += (pairs[thread_num][i].p1.x - pairs[thread_num][i].p2.x) + * (pairs[thread_num][i].p2.z - cd[2]) - (pairs[thread_num][i].p1.z - pairs[thread_num][i].p2.z) + * (pairs[thread_num][i].p2.x - cd[0]); + Bt[thread_num][2] += (pairs[thread_num][i].p1.y - pairs[thread_num][i].p2.y) * + (pairs[thread_num][i].p2.x - cd[0]) - (pairs[thread_num][i].p1.x - pairs[thread_num][i].p2.x) + * (pairs[thread_num][i].p2.y - cd[1]); + } + } + + for (int j = 0;j < OPENMP_NUM_THREADS; j++) + for (int k = 0; k < 3; k++) { + for (int l = 0; l < 3; l++) + A[k][l] += At[j][k][l] ; + B[k] += Bt[j][k]; + } + + // continue with linear solution + + if (!quiet) { + cout.setf(ios::basefield); + cout << "PAPX RMS point-to-point error = " + << resetiosflags(ios::adjustfield) << setiosflags(ios::internal) + << resetiosflags(ios::floatfield) << setiosflags(ios::fixed) + << std::setw(10) << std::setprecision(7) + << error + << " using " << std::setw(6) << pairs_size << " points" << endl; + } + + // Solve eqns + double diag[3]; + if (!choldc(A, diag)) { + printf("Couldn't find transform.\n"); + return -1.0; + } + double x[3]; + cholsl(A, diag, B, x); + + // Interpret results + double sx = x[0]; + double cx = sqrt(1.0 - sx*sx); + double sy = x[1]; + double cy = sqrt(1.0 - sy*sy); + double sz = x[2]; + double cz = sqrt(1.0 - sz*sz); + + alignxf[0] = cy*cz; + alignxf[1] = sx*sy*cz + cx*sz; + alignxf[2] = -cx*sy*cz + sx*sz; + alignxf[3] = 0; + alignxf[4] = -cy*sz; + alignxf[5] = -sx*sy*sz + cx*cz; + alignxf[6] = cx*sy*sz + sx*cz; + alignxf[7] = 0; + alignxf[8] = sy; + alignxf[9] = -sx*cy; + alignxf[10] = cx*cy; + alignxf[11] = 0; + alignxf[12] = cm[0] - alignxf[0]*cd[0] - alignxf[4]*cd[1] - alignxf[8]*cd[2]; + alignxf[13] = cm[1] - alignxf[1]*cd[0] - alignxf[5]*cd[1] - alignxf[9]*cd[2]; + alignxf[14] = cm[2] - alignxf[2]*cd[0] - alignxf[6]*cd[1] - alignxf[10]*cd[2]; + alignxf[15] = 1; + + return error; +#else + cout << "Point_Point_Align_Parallel:"<< endl + << "Please compile with OpenMP support to use this function" << endl; + exit(-1); +#endif +} + + +void icp6D_APX::computeRt(const double *x, const double *dx, double *alignxf) +{ + double sx = x[0]; + double cx = sqrt(1.0 - sx*sx); + double sy = x[1]; + double cy = sqrt(1.0 - sy*sy); + double sz = x[2]; + double cz = sqrt(1.0 - sz*sz); + + alignxf[0] = cy*cz; + alignxf[1] = sx*sy*cz + cx*sz; + alignxf[2] = -cx*sy*cz + sx*sz; + alignxf[3] = 0; + alignxf[4] = -cy*sz; + alignxf[5] = -sx*sy*sz + cx*cz; + alignxf[6] = cx*sy*sz + sx*cz; + alignxf[7] = 0; + alignxf[8] = sy; + alignxf[9] = -sx*cy; + alignxf[10] = cx*cy; + alignxf[11] = 0; + alignxf[12] = dx[0]; + alignxf[13] = dx[1]; + alignxf[14] = dx[2]; + alignxf[15] = 1; +} diff --git a/src/slam6d/icp6Ddual.cc b/src/slam6d/icp6Ddual.cc new file mode 100644 index 0000000..13aff68 --- /dev/null +++ b/src/slam6d/icp6Ddual.cc @@ -0,0 +1,145 @@ +/* + * icp6Ddual implementation + * + * Copyright (C) Andreas Nuechter, Alexandru-Eugen Ichim + * + * Released under the GPL version 3. + * + */ + +/** @file + * @brief Implementation of the ICP error function minimization + * via dual quaternions + * + * @author Andreas Nuechter. Jacobs University Bremen gGmbH, Germany + * @author Alexandru-Eugen Ichim. Jacobs University Bremen gGmbH, Germany + * + */ + +#include "slam6d/icp6Ddual.h" +#include "slam6d/globals.icc" + +#include +using std::ios; +using std::resetiosflags; +using std::setiosflags; + +#include "newmat/newmat.h" +#include "newmat/newmatap.h" + +using namespace NEWMAT; + +/** + * computes the rotation matrix consisting + * of a rotation and translation that + * minimizes the root-mean-square error of the + * point pairs using dual quaternions + * @param pairs Vector of point pairs (pairs of corresponding points) + * @param *alignfx The resulting transformation matrix + * @return Error estimation of the matching (rms) + */ +double icp6D_DUAL::Point_Point_Align(const vector& pairs, double *alignfx, + const double centroid_m[3], const double centroid_d[3]) +{ + double error = 0; + double sum = 0.0; + + for(unsigned int i = 0; i < pairs.size(); i++){ + sum += sqr(pairs[i].p1.x - pairs[i].p2.x) + + sqr(pairs[i].p1.y - pairs[i].p2.y) + + sqr(pairs[i].p1.z - pairs[i].p2.z) ; + } + + error = sqrt(sum / (double)pairs.size()); + + if (!quiet) { + cout.setf(ios::basefield); + cout << "DUALQUAT RMS point-to-point error = " + << resetiosflags(ios::adjustfield) << setiosflags(ios::internal) + << resetiosflags(ios::floatfield) << setiosflags(ios::fixed) + << std::setw(10) << std::setprecision(7) + << error + << " using " << std::setw(6) << (int)pairs.size() << " points" << endl; + } + + + +///////////////////////////////////////////////////////// +///////////////////////////////////////////////////////// + + Matrix C1(4, 4); C1 = 0.0; + Matrix C2(4, 4); C2 = 0.0; + + /// build up matrices C1 and C2 + for(unsigned int i = 0; i < pairs.size(); ++i) { + ColumnVector m(3), d(3); + m << pairs[i].p1.x << pairs[i].p1.y << pairs[i].p1.z; + d << pairs[i].p2.x << pairs[i].p2.y << pairs[i].p2.z; + Matrix Cm(3, 3); Cm << 0 << -m(3) << m(2) << m(3) << 0 << -m(1) << -m(2) << m(1) << 0; + Matrix Cd(3, 3); Cd << 0 << -d(3) << d(2) << d(3) << 0 << -d(1) << -d(2) << d(1) << 0; + + C1.SubMatrix(1, 1, 1, 1) += m.t()*d; + C1.SubMatrix(1, 1, 2, 4) += -m.t()*Cd; + C1.SubMatrix(2, 4, 1, 1) += -Cm*d; + C1.SubMatrix(2, 4, 2, 4) += m*d.t() + Cm*Cd; + + C2.SubMatrix(1, 1, 2, 4) += -d.t() + m.t(); + C2.SubMatrix(2, 4, 1, 1) += d - m; + C2.SubMatrix(2, 4, 2, 4) += -Cd - Cm; + } + + /// the sums need to be multiplied by a scalar + C1 = C1 * (-2); + C2 = C2 * 2; + + /// matrix A from C1 and C2 + Matrix A = (C2.t()*C2 * 1.0/(2*pairs.size()) - C1 - C1.t()) * 0.5; + + /// the quaternion qdot is the eigenvector of matrix A corresponding to the largest eigenvalue, + /// which is always found in the first column of matrix U + Matrix U(4, 4); DiagonalMatrix D(4); + SVD(A, D, U); + ColumnVector qdot = U.Column(1); + ColumnVector q(3); q << qdot(2) << qdot(3) << qdot(4); + Matrix Cq(3, 3); Cq << 0 << -q(3) << q(2) << q(3) << 0 << -q(1) << -q(2) << q(1) << 0; + + ColumnVector s = C2*qdot * (-1.0)/(2*pairs.size()); + + Matrix Q(4, 4); + Q(1, 1) = qdot(1); + Q.SubMatrix(1, 1, 2, 4) = q.t(); + Q.SubMatrix(2, 4, 1, 1) = -q; + Q.SubMatrix(2, 4, 2, 4) = IdentityMatrix(3)*qdot(1) + Cq; + + /// get the translation from the double quaternion + ColumnVector p = Q*s; + ColumnVector translation(3); translation << p(2) << p(3) << p(4); + + /// compute the rotation matrix from the quaternion + ColumnVector qtqx = q.t()*q; + Matrix R = IdentityMatrix(3) * (qdot(1)*qdot(1) - qtqx(1)) + q*q.t()*2 + Cq*qdot(1)*2; + + /// create the final transformation matrix (OpenGL column-wise ordering) + alignfx[0] = R(1, 1); + alignfx[1] = R(2, 1); + alignfx[2] = R(3, 1); + alignfx[3] = 0.0; + alignfx[4] = R(1, 2); + alignfx[5] = R(2, 2); + alignfx[6] = R(3, 2); + alignfx[7] = 0.0; + alignfx[8] = R(1, 3); + alignfx[9] = R(2, 3); + alignfx[10]= R(3, 3); + alignfx[11]= 0.0; + alignfx[12]= translation(1); + alignfx[13]= translation(2); + alignfx[14]= translation(3); + alignfx[15]= 1.0; + +///////////////////////////////////////////////////////// +///////////////////////////////////////////////////////// + + return error; +} + diff --git a/src/slam6d/icp6Dhelix.cc b/src/slam6d/icp6Dhelix.cc new file mode 100644 index 0000000..4f12ac9 --- /dev/null +++ b/src/slam6d/icp6Dhelix.cc @@ -0,0 +1,201 @@ +/* + * icp6Dhelix implementation + * + * Copyright (C) Peter Schneider, Andreas Nuechter + * + * Released under the GPL version 3. + * + */ + + +/** @file + * @brief Implementation of the ICP error function minimization via helix-translation + * @author Peter Schneider. Institute of Computer Science, University of Koblenz and Landau, Germany. + * @author Andreas Nuechter. Jacobs University Bremen gGmbH, Germany + */ + +#include "slam6d/icp6Dhelix.h" + +#include "slam6d/globals.icc" +#include +using std::ios; +using std::resetiosflags; +using std::setiosflags; + +#include "newmat/newmat.h" +#include "newmat/newmatap.h" +using namespace NEWMAT; +#include + +/** + * computes a rotation matrix that rotates the points around an axis + * and a translation vector, that translates the points along a vector + * that is parallel to the rotation axis. Thus the result is a helical + * translation of the points that can be resolved thru a vector field + * v(x) = cs + c cross x, where cs and c can be build out of an error + * minimization function. + * + * See: + * H. Pottmann, S. Leopoldseder, and M. Hofer. Simultaneous + * registration of multiple views of a 3D object. + * ISPRS Archives 34/3A (2002), 265-270. + * + * @param Pairs Vector of point pairs (pairs of corresponding points) + * @param alignxf The resulting transformation matrix + * @return Error estimation of the matching (rms) + */ +double icp6D_HELIX::Point_Point_Align(const vector& Pairs, double *alignxf, + const double centroid_m[3], const double centroid_d[3]) +{ + int n = Pairs.size(); + + int i; + double sum = 0; + double error; + Matrix matB(6,6); + ColumnVector bdVec(6), ccs(6), c(3), cs(3); + matB = 0.0; + double p2x, p2y, p2z, pDistX, pDistY, pDistZ; + + double B[6][3]; + memset(&B[0][0], 0, 18 * sizeof(double)); + double bd[6]; + memset(&bd[0], 0, 6 * sizeof(double)); + + for (i = 0; i < n; i++) { + p2x = Pairs[i].p2.x; + p2y = Pairs[i].p2.y; + p2z = Pairs[i].p2.z; + + B[4][0] += -p2z; + B[3][1] += p2z; + B[5][0] += p2y; + B[3][2] += -p2y; + B[4][2] += p2x; + B[5][1] += -p2x; + B[0][0] += p2z*p2z + p2y*p2y; + B[1][0] += p2y*-p2x; + B[2][0] += -p2z*p2x; + B[1][1] += p2z*p2z + p2x*p2x; + B[2][1] += p2z*-p2y; + B[2][2] += p2x*p2x + p2y*p2y; + + + pDistX = p2x - Pairs[i].p1.x; + pDistY = p2y - Pairs[i].p1.y; + pDistZ = p2z - Pairs[i].p1.z; + + bd[0] += -p2z*pDistY + p2y*pDistZ; + bd[1] += p2z*pDistX - p2x*pDistZ; + bd[2] += -p2y*pDistX + p2x*pDistY; + bd[3] += pDistX; + bd[4] += pDistY; + bd[5] += pDistZ; + + sum += pDistX*pDistX + pDistY*pDistY + pDistZ*pDistZ; + } + + matB(4,4) = matB(5,5) = matB(6,6) = n; + + matB(1,5) = matB(5,1) = B[4][0]; + matB(2,4) = matB(4,2) = B[3][1]; + matB(1,6) = matB(6,1) = B[5][0]; + matB(3,4) = matB(4,3) = B[3][2]; + matB(3,5) = matB(5,3) = B[4][2]; + matB(2,6) = matB(6,2) = B[5][1]; + matB(1,2) = matB(2,1) = B[1][0]; + matB(1,3) = matB(3,1) = B[2][0]; + matB(2,3) = matB(3,2) = B[2][1]; + matB(1,1) = B[0][0]; + matB(2,2) = B[1][1]; + matB(3,3) = B[2][2]; + + bdVec(1) = bd[0]; + bdVec(2) = bd[1]; + bdVec(3) = bd[2]; + bdVec(4) = bd[3]; + bdVec(5) = bd[4]; + bdVec(6) = bd[5]; + + error = sqrt( sum / (double) n ); + + if (!quiet) { + cout.setf(ios::basefield); + cout << "HELIX RMS point-to-point error = " + << resetiosflags(ios::adjustfield) << setiosflags(ios::internal) + << resetiosflags(ios::floatfield) << setiosflags(ios::fixed) + << std::setw(10) << std::setprecision(7) + << error + << " using " << std::setw(6) << n << " points" << endl; + } + + ccs = matB.i() * bdVec; + + int vectorOffset = 0; + computeRt( &ccs, vectorOffset, alignxf); + + return error; +} + + +void icp6D_HELIX::computeRt(const ColumnVector* ccs, const int vectorOffset, double *alignxf) +{ + ColumnVector c(3), cs(3); + c(1) = -(*ccs)(vectorOffset + 1); + c(2) = -(*ccs)(vectorOffset + 2); + c(3) = -(*ccs)(vectorOffset + 3); + cs(1) = -(*ccs)(vectorOffset + 4); + cs(2) = -(*ccs)(vectorOffset + 5); + cs(3) = -(*ccs)(vectorOffset + 6); + + double CLength = sqrt(c.SumSquare()); + double rotationCheck = c(1)*cs(1) + c(2)*cs(2) + c(3)*cs(3); //c.t() * cs; + Matrix R (3,3); + double angle = atan(CLength); //bemerkung: hier minus gesetzt + + ColumnVector g = c / CLength; + double b0, b1, b2, b3; + double sinAngle = sin(-angle/2); + b0 = cos(-angle/2); + b1 = g(1) * sinAngle; + b2 = g(2) * sinAngle; + b3 = g(3) * sinAngle; + + R(1,1) = b0*b0 + b1*b1 - b2*b2 - b3*b3; + R(1,2) = 2*(b1*b2 + b0*b3); + R(1,3) = 2*(b1*b3 - b0*b2); + R(2,1) = 2*(b1*b2 - b0*b3); + R(2,2) = b0*b0 - b1*b1 + b2*b2 - b3*b3; + R(2,3) = 2*(b2*b3 + b0*b1); + R(3,1) = 2*(b1*b3 + b0*b2); + R(3,2) = 2*(b2*b3 - b0*b1); + R(3,3) = b0*b0 - b1*b1 - b2*b2 + b3*b3; + R = R / (b0*b0 + b1*b1 + b2*b2 + b3*b3); + + double skewValue = rotationCheck / (CLength*CLength); + ColumnVector gs = (cs - (c * skewValue)) / CLength; + ColumnVector pTemp(3); + pTemp(1) = g(2)*gs(3) - g(3)*gs(2); + pTemp(2) = g(3)*gs(1) - g(1)*gs(3); + pTemp(3) = g(1)*gs(2) - g(2)*gs(1); + ColumnVector t = R * -pTemp + g*(skewValue * angle) + pTemp; + + alignxf[0] = R(1,1); + alignxf[1] = R(2,1); + alignxf[2] = R(3,1); + alignxf[3] = 0; + alignxf[4] = R(1,2); + alignxf[5] = R(2,2); + alignxf[6] = R(3,2); + alignxf[7] = 0; + alignxf[8] = R(1,3); + alignxf[9] = R(2,3); + alignxf[10] = R(3,3); + alignxf[11] = 0; + alignxf[12] = t(1); + alignxf[13] = t(2); + alignxf[14] = t(3); + alignxf[15] = 1; +} + + diff --git a/src/slam6d/icp6Dlumeuler.cc b/src/slam6d/icp6Dlumeuler.cc new file mode 100644 index 0000000..a915c99 --- /dev/null +++ b/src/slam6d/icp6Dlumeuler.cc @@ -0,0 +1,214 @@ +/* + * icp6Dlumeuler implementation + * + * Copyright (C) Andreas Nuechter, Alexandru-Eugen Ichim + * + * Released under the GPL version 3. + * + */ + + +/** @file + * @brief Implementation of the ICP error function minimization via + * linearization using euler angles + * + * @author Andreas Nuechter. Jacobs University Bremen gGmbH, Germany + * @author Alexandru-Eugen Ichim. Jacobs University Bremen gGmbH, Germany + * + */ + +#include "slam6d/icp6Dlumeuler.h" + +#include "slam6d/globals.icc" +#include +using std::ios; +using std::resetiosflags; +using std::setiosflags; + +#include "newmat/newmat.h" +#include "newmat/newmatap.h" + +using namespace NEWMAT; + +/** + * computes the rotation matrix consisting + * of a rotation and translation that + * minimizes the root-mean-square error of the + * point pairs using linearization with euler angles + * @param pairs Vector of point pairs (pairs of corresponding points) + * @param *alignfx The resulting transformation matrix + * @return Error estimation of the matching (rms) + */ +double icp6D_LUMEULER::Point_Point_Align(const vector& pairs, double *alignfx, + const double centroid_m[3], const double centroid_d[3]) +{ + // alignxf is filled with the current pose, rPos is the translation, rPosTheta are the 3 euler angles theta_x, theta_y, theta_z + double rPos[3], rPosTheta[3]; + Matrix4ToEuler(alignfx, rPosTheta, rPos); + + double error = 0; + double sum = 0.0; + + for(unsigned int i = 0; i < pairs.size(); i++){ + sum += sqr(pairs[i].p1.x - pairs[i].p2.x) + + sqr(pairs[i].p1.y - pairs[i].p2.y) + + sqr(pairs[i].p1.z - pairs[i].p2.z) ; + } + + error = sqrt(sum / (double)pairs.size()); + + if (!quiet) { + cout.setf(ios::basefield); + cout << "LUMEULER RMS point-to-point error = " + << resetiosflags(ios::adjustfield) << setiosflags(ios::internal) + << resetiosflags(ios::floatfield) << setiosflags(ios::fixed) + << std::setw(10) << std::setprecision(7) + << error + << " using " << std::setw(6) << (int)pairs.size() << " points" << endl; + } + + + +///////////////////////////////////////////////////////// +///////////////////////////////////////////////////////// + + double x = 0.0, y = 0.0, z = 0.0, dx = 0.0, dy = 0.0, dz = 0.0, sx = 0.0, sy = 0.0, sz = 0.0, xpy = 0.0, xpz = 0.0, ypz = 0.0, xy = 0.0, yz = 0.0, xz = 0.0; + + /// MZ = M^T * Z + ColumnVector MZ(6); MZ = 0.0; + /// MM = M^T * M + SymmetricMatrix MM(6); MM = 0.0; + for(unsigned int i = 0; i < pairs.size(); ++i) { + /// temporary values that we shall use multiple times in the subsequent computations + x = (pairs[i].p1.x + pairs[i].p2.x) / 2.0; + y = (pairs[i].p1.y + pairs[i].p2.y) / 2.0; + z = (pairs[i].p1.z + pairs[i].p2.z) / 2.0; + dx = pairs[i].p1.x - pairs[i].p2.x; + dy = pairs[i].p1.y - pairs[i].p2.y; + dz = pairs[i].p1.z - pairs[i].p2.z; + + /// sums of each coordinate + sx += x; + sy += y; + sz += z; + + /// sums of squares of pairs of coordinates + xpy += x*x + y*y; + xpz += x*x + z*z; + ypz += y*y + z*z; + + /// sums of products of pairs of coordinates + xy += x*y; + xz += x*z; + yz += y*z; + + /// incrementally construct M^T * Z + MZ(1) += dx; + MZ(2) += dy; + MZ(3) += dz; + MZ(4) += -z*dy + y*dz; + MZ(5) += -y*dx + x*dy; + MZ(6) += z*dx - x*dz; + } + + /// construct M^T * M + MM(1,1) = MM(2,2) = MM(3,3) = pairs.size(); + MM(4,4) = ypz; + MM(5,5) = xpy; + MM(6,6) = xpz; + MM(1,5) = MM(5,1) = -sy; + MM(1,6) = MM(6,1) = sz; + MM(2,4) = MM(4,2) = -sz; + MM(2,5) = MM(5,2) = sx; + MM(3,4) = MM(4,3) = sy; + MM(3,6) = MM(6,3) = -sx; + MM(4,5) = MM(5,4) = -xz; + MM(4,6) = MM(6,4) = -xy; + MM(5,6) = MM(6,5) = -yz; + + ColumnVector Ehat(6); + Ehat = MM.i() * MZ; + + double cosx = cos(rPosTheta[0]), cosy = cos(rPosTheta[1]), cosz = cos(rPosTheta[2]); + double sinx = sin(rPosTheta[0]), siny = sin(rPosTheta[1]), sinz = sin(rPosTheta[2]); + double tx = rPos[0], ty = rPos[1], tz = rPos[2]; + /// create transform matrix of the first scan + Matrix T1(4, 4); T1 = IdentityMatrix(4); + T1(1, 4) = tx; + T1(2, 4) = ty; + T1(3, 4) = tz; + T1(1, 1) = cosy*cosz; + T1(1, 2) = -cosy*sinz; + T1(1, 3) = siny; + T1(2, 1) = cosz*sinx*siny + cosx*sinz; + T1(2, 2) = cosx*cosz-sinx*siny*sinz; + T1(2, 3) = -cosy*sinx; + T1(3, 1) = sinx*sinz - cosx*cosz*siny; + T1(3, 2) = cosz*sinx + cosx*siny*sinz; + T1(3, 3) = cosx*cosy; + + /// create matrix H + Matrix H(6, 6); H = IdentityMatrix(6); + H(1, 5) = -tz*cosx + ty*sinx; + H(1, 6) = ty*cosx*cosy + tz*cosy*sinx; + H(2, 4) = tz; + H(2, 5) = -tx*sinx; + H(2, 6) = -tx*cosx*cosy + tz*siny; + H(3, 4) = -ty; + H(3, 5) = tx*cosx; + H(3, 6) = -tx*cosy*sinx - ty*siny; + H(4, 6) = siny; + H(5, 5) = sinx; + H(5, 6) = cosx*cosy; + H(6, 5) = cosx; + H(6, 6) = -cosy*sinx; + + /// the vector Xhat is the pose estimation of the second scan = the final pose of the first scan + ColumnVector Xhat(6); Xhat << rPos[0] << rPos[1] << rPos[2] << rPosTheta[0] << rPosTheta[1] << rPosTheta[2]; + ColumnVector X = Xhat - H.i()*Ehat; + + cosx = cos(X(4)), cosy = cos(X(5)), cosz = cos(X(6)); + sinx = sin(X(4)), siny = sin(X(5)), sinz = sin(X(6)); + /// transform of the second scan as computed so far + Matrix T2(4, 4); T2 = IdentityMatrix(4); + T2(1, 4) = X(1); + T2(2, 4) = X(2); + T2(3, 4) = X(3); + T2(1, 1) = cosy*cosz; + T2(1, 2) = -cosy*sinz; + T2(1, 3) = siny; + T2(2, 1) = cosz*sinx*siny + cosx*sinz; + T2(2, 2) = cosx*cosz-sinx*siny*sinz; + T2(2, 3) = -cosy*sinx; + T2(3, 1) = sinx*sinz - cosx*cosz*siny; + T2(3, 2) = cosz*sinx + cosx*siny*sinz; + T2(3, 3) = cosx*cosy; + + /// the incremental transform calculated from the absolute poses of the two scans + Matrix T_inc = T1 * T2.i(); + + /// convert our 4x4 transform to column-wise opengl form + alignfx[0] = T_inc(1, 1); + alignfx[1] = T_inc(2, 1); + alignfx[2] = T_inc(3, 1); + alignfx[3] = 0.0; + alignfx[4] = T_inc(1, 2); + alignfx[5] = T_inc(2, 2); + alignfx[6] = T_inc(3, 2); + alignfx[7] = 0.0; + alignfx[8] = T_inc(1, 3); + alignfx[9] = T_inc(2, 3); + alignfx[10]= T_inc(3, 3); + alignfx[11]= 0.0; + alignfx[12]= T_inc(1, 4); + alignfx[13]= T_inc(2, 4); + alignfx[14]= T_inc(3, 4); + alignfx[15]= 1.0; + +///////////////////////////////////////////////////////// +///////////////////////////////////////////////////////// + + + return error; +} + diff --git a/src/slam6d/icp6Dlumquat.cc b/src/slam6d/icp6Dlumquat.cc new file mode 100644 index 0000000..eadb052 --- /dev/null +++ b/src/slam6d/icp6Dlumquat.cc @@ -0,0 +1,219 @@ +/* + * icp6Dlumquat implementation + * + * Copyright (C) Andreas Nuechter, Alexandru-Eugen Ichim + * + * Released under the GPL version 3. + * + */ + + +/** @file + * @brief Implementation of the ICP error function minimization via + * via linearization with quaternions + * + * @author Andreas Nuechter. Jacobs University Bremen gGmbH, Germany + * @author Alexandru-Eugen Ichim. Jacobs University Bremen gGmbH, Germany + * + */ + +#include "slam6d/icp6Dlumquat.h" + +#include "slam6d/globals.icc" +#include +using std::ios; +using std::resetiosflags; +using std::setiosflags; + +#include "newmat/newmat.h" +#include "newmat/newmatap.h" +using namespace NEWMAT; +/** + * computes the rotation matrix consisting + * of a rotation and translation that + * minimizes the root-mean-square error of the + * point pairs using linearization with quarernions + * @param pairs Vector of point pairs (pairs of corresponding points) + * @param *alignfx The resulting transformation matrix + * @return Error estimation of the matching (rms) + */ +double icp6D_LUMQUAT::Point_Point_Align(const vector& pairs, double *alignfx, + const double centroid_m[3], const double centroid_d[3]) +{ + // alignfx is filled with the current pose, t is the translation, quat is the quaternion + double t[3], quat[4]; + Matrix4ToQuat(alignfx, quat, t); + + + double error = 0; + double sum = 0.0; + for(unsigned int i = 0; i < pairs.size(); i++){ + sum += sqr(pairs[i].p1.x - pairs[i].p2.x) + + sqr(pairs[i].p1.y - pairs[i].p2.y) + + sqr(pairs[i].p1.z - pairs[i].p2.z) ; + + } + + error = sqrt(sum / (double)pairs.size()); + + if (!quiet) { + cout.setf(ios::basefield); + cout << "LUMQUAT RMS point-to-point error = " + << resetiosflags(ios::adjustfield) << setiosflags(ios::internal) + << resetiosflags(ios::floatfield) << setiosflags(ios::fixed) + << std::setw(10) << std::setprecision(7) + << error + << " using " << std::setw(6) << (int)pairs.size() << " points" << endl; + } + + + +///////////////////////////////////////////////////////// +///////////////////////////////////////////////////////// + + /// MZ = M^T * Z + ColumnVector MZ(7); MZ = 0.0; + /// MM = M^T * M + Matrix MM(7, 7); MM = 0.0; + double x = 0.0, y = 0.0, z = 0.0, dx = 0.0, dy = 0.0, dz = 0.0, sx = 0.0, sy = 0.0, sz = 0.0, xpy = 0.0, xpz = 0.0, ypz = 0.0, xpypz = 0.0, xy = 0.0, yz = 0.0, xz = 0.0; + + for(unsigned int i = 0; i < pairs.size(); ++i) { + /// temporary values that we shall use multiple times in the subsequent computations + + x = (pairs[i].p1.x + pairs[i].p1.x) / 2.0; + y = (pairs[i].p1.y + pairs[i].p2.y) / 2.0; + z = (pairs[i].p1.z + pairs[i].p2.z) / 2.0; + dx = pairs[i].p1.x - pairs[i].p2.x; + dy = pairs[i].p1.y - pairs[i].p2.y; + dz = pairs[i].p1.z - pairs[i].p2.z; + + /// sums of each coordinate + sx += x; + sy += y; + sz += z; + + /// sums of squares of coordinates + xpy += x*x + y*y; + xpz += x*x + z*z; + ypz += y*y + z*z; + xpypz += x*x + y*y + z*z; + + /// sums of products of pairs of coordinates + xy += x*y; + xz += x*z; + yz += y*z; + + /// incrementally construct matrix M^T * Z + MZ(1) += dx; + MZ(2) += dy; + MZ(3) += dz; + MZ(4) += x*dx + y*dy + z*dz; + MZ(5) += z*dy - y*dz; + MZ(6) += x*dz - z*dx; + MZ(7) += y*dx - x*dy; + } + + /// construct M^ * M + MM(1,1) = MM(2,2) = MM(3,3) = pairs.size(); + MM(4,4) = xpypz; + MM(5,5) = ypz; + MM(6,6) = xpz; + MM(7,7) = xpy; + MM(1,4) = MM(4,1) = sx; + MM(1,6) = MM(6,1) = -sz; + MM(1,7) = MM(7,1) = sy; + MM(2,4) = MM(4,2) = sy; + MM(2,5) = MM(5,2) = sz; + MM(2,7) = MM(7,2) = -sx; + MM(3,4) = MM(4,3) = sz; + MM(3,5) = MM(5,3) = -sy; + MM(3,6) = MM(6,3) = sx; + MM(5,6) = MM(6,5) = -xy; + MM(5,7) = MM(7,5) = -xz; + MM(6,7) = MM(7,6) = -yz; + + ColumnVector Ehat = MM.i() * MZ ; + + + /// construct the auxiliary matrices U and T needed to build up H + double p = quat[0], q = quat[1], r = quat[2], s = quat[3]; + x = t[0], y = t[1], z = t[2]; + Matrix U(4, 4); + U << p << q << r << s + << q <<-p << s <<-r + << r <<-s <<-p << q + << s << r <<-q <<-p; + + Matrix T(3, 4); + T << p*x + s*y - r*z << q*x + r*y + s*z << r*x - q*y + p*z << s*x - p*y - q*z + <<-s*x + p*y + q*z <<-r*x + q*y - p*z << q*x + r*y + s*z << p*x + s*y - r*z + << r*x - q*y + p*z <<-s*x + p*y + q*z <<-p*x - s*y + r*z << q*x + r*y - s*z; + /// now actually compose matrix H + Matrix H(7, 7); H = 0.0; + H.SubMatrix(1, 3, 1, 3) = IdentityMatrix(3); + H.SubMatrix(1, 3, 4, 7) = T *(-2); + H.SubMatrix(4, 7, 4, 7) = U * 2; + + + /// Xhat is the pose estimate for the second scan - use the pose of the first scan + ColumnVector Xhat(7); Xhat << x << y << z << p << q << r << s; + + /// create a transformation matrix for the first scan with the given values + Matrix T1(4, 4); T1 = 0.0; + Matrix Cq(3, 3); + ColumnVector qvec(3); qvec << q << r << s; + Cq << 0 << -qvec(3) << qvec(2) << qvec(3) << 0 << -qvec(1) << -qvec(2) << qvec(1) << 0; + ColumnVector qtq(1); qtq = qvec.t() *qvec * (-1); + T1.SubMatrix(1, 3, 1, 3) = IdentityMatrix(3) * (p*p + qtq(1)) + qvec*qvec.t()*2 + Cq *2*p; + T1(1, 4) = x; + T1(2, 4) = y; + T1(3, 4) = z; + T1(4, 4) = 1; + + + /// the translation and quaternion for the second scan are computed + ColumnVector X = Xhat - H.i() * Ehat; + + + /// create the transformation matrix for the second scan + x = X(1), y = X(2), z = X(3); + p = X(4); q = X(5); r = X(6); s = X(7); + Matrix T2(4, 4); T2 = 0.0; + qvec = 0.0; qvec << q << r << s; + Cq = 0.0; Cq << 0 << -qvec(3) << qvec(2) << qvec(3) << 0 << -qvec(1) << -qvec(2) << qvec(1) << 0; + qtq = qvec.t() *qvec * (-1); + T2.SubMatrix(1, 3, 1, 3) = IdentityMatrix(3) * (p*p + qtq(1)) + qvec*qvec.t()*2 + Cq *2*p; + T2(1, 4) = x; + T2(2, 4) = y; + T2(3, 4) = z; + T2(4, 4) = 1; + + /// the incremental transform calculated from the absolute poses of the two scans + Matrix T_inc = T1 * T2.i(); + + /// convert our 4x4 transform to column-wise opengl form + alignfx[0] = T_inc(1, 1); + alignfx[1] = T_inc(2, 1); + alignfx[2] = T_inc(3, 1); + alignfx[3] = 0.0; + alignfx[4] = T_inc(1, 2); + alignfx[5] = T_inc(2, 2); + alignfx[6] = T_inc(3, 2); + alignfx[7] = 0.0; + alignfx[8] = T_inc(1, 3); + alignfx[9] = T_inc(2, 3); + alignfx[10]= T_inc(3, 3); + alignfx[11]= 0.0; + alignfx[12]= T_inc(1, 4); + alignfx[13]= T_inc(2, 4); + alignfx[14]= T_inc(3, 4); + alignfx[15]= 1.0; + + ///////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////// + + + + return error; +} + diff --git a/src/slam6d/icp6Dortho.cc b/src/slam6d/icp6Dortho.cc new file mode 100644 index 0000000..9b30dfd --- /dev/null +++ b/src/slam6d/icp6Dortho.cc @@ -0,0 +1,159 @@ +/* + * icp6Dortho implementation + * + * Copyright (C) Andreas Nuechter, Alexandru-Eugen Ichim + * + * Released under the GPL version 3. + * + */ + +/** @file + * @brief Implementation of the ICP error function minimization via + * orthonormal matrices + * + * @author Andreas Nuechter. Jacobs University Bremen gGmbH, Germany + * @author Alexandru-Eugen Ichim. Jacobs University Bremen gGmbH, Germany + * + */ + +#include "slam6d/icp6Dortho.h" + +#include "slam6d/globals.icc" +#include +using std::ios; +using std::resetiosflags; +using std::setiosflags; + +#include "newmat/newmat.h" +#include "newmat/newmatap.h" +using namespace NEWMAT; + +/** + * computes the rotation matrix consisting + * of a rotation and translation that + * minimizes the root-mean-square error of the + * point pairs using orthonormal matrices + * vector of point pairs, rotation matrix + * @param pairs Vector of point pairs (pairs of corresponding points) + * @param *alignfx The resulting transformation matrix + * @return Error estimation of the matching (rms) + */ +double icp6D_ORTHO::Point_Point_Align(const vector& pairs, double *alignfx, + const double centroid_m[3], const double centroid_d[3]) +{ + double error = 0; + double sum = 0.0; + + /// Get centered PtPairs + double** m = new double*[pairs.size()]; + double** d = new double*[pairs.size()]; + + for(unsigned int i = 0; i < pairs.size(); i++){ + m[i] = new double[3]; + d[i] = new double[3]; + m[i][0] = pairs[i].p1.x - centroid_m[0]; + m[i][1] = pairs[i].p1.y - centroid_m[1]; + m[i][2] = pairs[i].p1.z - centroid_m[2]; + d[i][0] = pairs[i].p2.x - centroid_d[0]; + d[i][1] = pairs[i].p2.y - centroid_d[1]; + d[i][2] = pairs[i].p2.z - centroid_d[2]; + + sum += sqr(pairs[i].p1.x - pairs[i].p2.x) + + sqr(pairs[i].p1.y - pairs[i].p2.y) + + sqr(pairs[i].p1.z - pairs[i].p2.z) ; + } + + error = sqrt(sum / (double)pairs.size()); + + if (!quiet) { + cout.setf(ios::basefield); + cout << "ORTHO RMS point-to-point error = " + << resetiosflags(ios::adjustfield) << setiosflags(ios::internal) + << resetiosflags(ios::floatfield) << setiosflags(ios::fixed) + << std::setw(10) << std::setprecision(7) + << error + << " using " << std::setw(6) << (int)pairs.size() << " points" << endl; + } + + + + +///////////////////////////////////////////////////////// +///////////////////////////////////////////////////////// + + /// generate matrix H + Matrix H (3, 3); H = 0.0; + for(unsigned int n = 0; n < pairs.size(); ++n) + for(int i = 0; i < 3; ++i) + for(int j = 0; j < 3; ++j) + H(i+1, j+1) += m[n][i] * d[n][j]; + Matrix HH = H.t() * H; + + /// create a new matrix HHs equal to HH, but is of type SymmetricMatrix - needed for calculating the eigenvalues + SymmetricMatrix HHs(3); + HHs(1, 2) = HH(2, 1); + HHs(1, 3) = HH(3, 1); + HHs(2, 3) = HH(3, 2); + HHs(1, 1) = HH(1, 1); + HHs(2, 2) = HH(2, 2); + HHs(3, 3) = HH(3, 3); + + /// get the eigenvalues of HH + DiagonalMatrix eigenvalues(3); + Matrix eigenvectorsMatrix(3, 3); + EigenValues(HHs, eigenvalues, eigenvectorsMatrix); + + /// extract the eigenvectors from the matrix to separate column vectors + ColumnVector ev1 = eigenvectorsMatrix.Column(1); + ColumnVector ev2 = eigenvectorsMatrix.Column(2); + ColumnVector ev3 = eigenvectorsMatrix.Column(3); + + + /// compute the rotation matrix as H * ( SUM ( 1/lambda_i * ev_i * ev_i^T )) + Matrix R(3, 3); + Matrix ev11 = ev1 * ev1.t() * 1/sqrt( eigenvalues(1)); + Matrix ev22 = ev2 * ev2.t() * 1/sqrt( eigenvalues(2)); + Matrix ev33 = ev3 * ev3.t() * 1/sqrt( eigenvalues(3)); + R = H * (ev11 + ev22 + ev33); + + /// calculate the translation based on the rotation matrix and the centroids + ColumnVector cm(3); cm << centroid_m; + ColumnVector cd(3); cd << centroid_d; + ColumnVector translation = cm - R * cd; + + + /// create the final transformation matrix (OpenGL column-wise ordering) + alignfx[0] = R(1, 1); + alignfx[1] = R(2, 1); + alignfx[2] = R(3, 1); + alignfx[3] = 0.0; + alignfx[4] = R(1, 2); + alignfx[5] = R(2, 2); + alignfx[6] = R(3, 2); + alignfx[7] = 0.0; + alignfx[8] = R(1, 3); + alignfx[9] = R(2, 3); + alignfx[10]= R(3, 3); + alignfx[11]= 0.0; + alignfx[12]= translation(1); + alignfx[13]= translation(2); + alignfx[14]= translation(3); + alignfx[15]= 1.0; + + +///////////////////////////////////////////////////////// +///////////////////////////////////////////////////////// + + + /// clean up memory used by centered point pairs + for(unsigned int i = 0; i < pairs.size(); i++){ + delete [] m[i]; + delete [] d[i]; + } + delete [] m; + delete [] d; + + return error; +} + + diff --git a/src/slam6d/icp6Dquat.cc b/src/slam6d/icp6Dquat.cc new file mode 100644 index 0000000..f5a66b7 --- /dev/null +++ b/src/slam6d/icp6Dquat.cc @@ -0,0 +1,636 @@ +/* + * icp6Dquat implementation + * + * Copyright (C) Andreas Nuechter + * + * Released under the GPL version 3. + * + */ + +/** @file + * @brief Implementation of the ICP error function minimization via quaternions + * @author Andreas Nuechter. Jacobs University Bremen gGmbH, Germany. + */ + +#include "slam6d/icp6Dquat.h" + +#include "slam6d/globals.icc" +#include +using std::ios; +using std::resetiosflags; +using std::setiosflags; +#include +#include +#include +using std::cout; +using std::cerr; +using std::endl; + +#ifdef _MSC_VER +#define cbrt(x) pow(x,1/3) +#endif + +/** + * computes the rotation matrix consisting + * of a rotation and translation that + * minimizes the root-mean-square error of the + * point pairs using the Quaternion method of Horn + * PARAMETERS + * vector of point pairs, rotation matrix + * @param pairs Vector of point pairs (pairs of corresponding points) + * @param *alignfx The resulting transformation matrix + * @return Error estimation of the matching (rms) +*/ +double icp6D_QUAT::Point_Point_Align(const vector& pairs, double *alignfx, + const double centroid_m[3], const double centroid_d[3]) +{ + int n = pairs.size(); + + double sum = 0.0; + + // the quaternion + double q[7]; + + double S[3][3]; + double Q[4][4]; + int i,j; + + // calculate the cross covariance matrix + for (i = 0; i < 3; i++) + for (j = 0; j < 3; j++) + S[i][j] = 0; + for (i=0; i 0.0)&&(y > 0.0)&&(c > 0.0)) + || ((a > 0.0)&&(y < 0.0)&&(c < 0.0)) + || ((a < 0.0)&&(y > 0.0)&&(c < 0.0)) + || ((a < 0.0)&&(y < 0.0)&&(c > 0.0)) + || (a == 0.0)||(y == 0.0)||(c == 0.0) + ) { + /* use ef - */ + if ((b < 0.0)&&(y < 0.0)&&(esq > 0.0)) { + e = sqrt(esq); + f = ef/e; + } else if ((d < 0.0) && (fsq > 0.0)) { + f = sqrt(fsq); + e = ef/f; + } else { + e = sqrt(esq); + f = sqrt(fsq); + if (ef < 0.0) f = -f; + } + } else { + e = sqrt(esq); + f = sqrt(fsq); + if (ef < 0.0) f = -f; + } + /* note that e >= 0.0 */ + ainv2 = a*.5; + g = ainv2 - e; + gg = ainv2 + e; + if ( ((b > 0.0)&&(y > 0.0)) + || ((b < 0.0)&&(y < 0.0)) ) { + if (( a > 0.0) && (e != 0.0)) g = (b + y)/gg; + else if (e != 0.0) gg = (b + y)/g; + } + if ((y == 0.0)&&(f == 0.0)) { + h = 0.0; + hh = 0.0; + } else if ( ((f > 0.0)&&(y < 0.0)) + || ((f < 0.0)&&(y > 0.0)) ) { + hh = -.5*y + f; + h = d/hh; + } else { + h = -.5*y - f; + hh = d/h; + } + n1 = qudrtc(gg,hh,v1); + n2 = qudrtc(g,h,v2); + nquar = n1+n2; + rts[0] = v1[0]; + rts[1] = v1[1]; + rts[n1+0] = v2[0]; + rts[n1+1] = v2[1]; + return nquar; + } + } +} /* ferrari */ + +int icp6D_QUAT::qudrtc(double b, double c, double rts[4]) +/* + solve the quadratic equation - + + x**2+b*x+c = 0 + +*/ +{ + int nquad; + double rtdis; + double dis = b*b-4.0*c; + + if (dis >= 0.0) { + nquad = 2; + rtdis = sqrt(dis); + if (b > 0.0) rts[0] = ( -b - rtdis)*.5; + else rts[0] = ( -b + rtdis)*.5; + if (rts[0] == 0.0) rts[1] = -b; + else rts[1] = c/rts[0]; + } else { + nquad = 0; + rts[0] = 0.0; + rts[1] = 0.0; + } + return nquad; +} /* qudrtc */ +/**************************************************/ + +double icp6D_QUAT::cubic(double p, double q, double r) +/* + find the lowest real root of the cubic - + x**3 + p*x**2 + q*x + r = 0 + + input parameters - + p,q,r - coeffs of cubic equation. + + output- + cubic - a real root. + + method - + see D.E. Littlewood, "A University Algebra" pp.173 - 6 + + Charles Prineas April 1981 + +*/ +{ + //int nrts; + double po3,po3sq,qo3; + double uo3,u2o3,uo3sq4,uo3cu4; + double v,vsq,wsq; + double m,mcube=0.0,n; + double muo3,s,scube,t,cosk,sinsqk; + double root; + + double doubmax = sqrt(DBL_MAX); + + m = 0.0; + //nrts =0; + if ((p > doubmax) || (p < -doubmax)) { + root = -p; + } else if ((q > doubmax) || (q < -doubmax)) { + if (q > 0.0) root = -r/q; + else root = -sqrt(-q); + } else if ((r > doubmax)|| (r < -doubmax)) { + root = -cbrt(r); + } else { + po3 = p/3.0; + po3sq = po3*po3; + if (po3sq > doubmax) root = -p; + else { + v = r + po3*(po3sq + po3sq - q); + if ((v > doubmax) || (v < -doubmax)) + root = -p; + else { + vsq = v*v; + qo3 = q/3.0; + uo3 = qo3 - po3sq; + u2o3 = uo3 + uo3; + if ((u2o3 > doubmax) || (u2o3 < -doubmax)) { + if (p == 0.0) { + if (q > 0.0) root = -r/q; + else root = -sqrt(-q); + } else root = -q/p; + } + uo3sq4 = u2o3*u2o3; + if (uo3sq4 > doubmax) { + if (p == 0.0) { + if (q > 0.0) root = -r/q; + else root = -sqrt(fabs(q)); + } else root = -q/p; + } + uo3cu4 = uo3sq4*uo3; + wsq = uo3cu4 + vsq; + if (wsq >= 0.0) { + // + // cubic has one real root + // + //nrts = 1; + if (v <= 0.0) mcube = ( -v + sqrt(wsq))*.5; + if (v > 0.0) mcube = ( -v - sqrt(wsq))*.5; + m = cbrt(mcube); + if (m != 0.0) n = -uo3/m; + else n = 0.0; + root = m + n - po3; + } else { + //nrts = 3; + // + // cubic has three real roots + // + if (uo3 < 0.0) { + muo3 = -uo3; + s = sqrt(muo3); + scube = s*muo3; + t = -v/(scube+scube); + cosk = cos(acos(t)/3.0); + if (po3 < 0.0) + root = (s+s)*cosk - po3; + else { + sinsqk = 1.0 - cosk*cosk; + if (sinsqk < 0.0) sinsqk = 0.0; + root = s*( -cosk - sqrt(3*sinsqk)) - po3; + } + } else + // + // cubic has multiple root - + // + root = cbrt(v) - po3; + } + } + } + } + return root; +} /* cubic */ +/***************************************/ + + +// calculate the maximum eigenvector of a symmetric +// 4x4 matrix +// from B. Horn 1987 Closed-form solution of absolute +// orientation using unit quaternions (J.Opt.Soc.Am.A) +void icp6D_QUAT::maxEigenVector(double Q[4][4], double ev[4]) +{ + double N[4][4]; + double rts[4]; + double c[4]; + // find the coeffs for the characteristic eqn. + characteristicPol(Q, c); + // find roots + ferrari(c[0], c[1], c[2], c[3], rts); + // find maximum root = maximum eigenvalue + double l = rts[0]; + if (rts[1] > l) l = rts[1]; + if (rts[2] > l) l = rts[2]; + if (rts[3] > l) l = rts[3]; + + // create the Q - l*I matrix + N[0][0]=Q[0][0]-l;N[0][1]=Q[0][1] ;N[0][2]=Q[0][2]; N[0][3]=Q[0][3]; + N[1][0]=Q[1][0]; N[1][1]=Q[1][1]-l;N[1][2]=Q[1][2]; N[1][3]=Q[1][3]; + N[2][0]=Q[2][0]; N[2][1]=Q[2][1] ;N[2][2]=Q[2][2]-l;N[2][3]=Q[2][3]; + N[3][0]=Q[3][0]; N[3][1]=Q[3][1] ;N[3][2]=Q[3][2];N[3][3]=Q[3][3]-l; + // the columns of the inverted matrix should be multiples of + // the eigenvector, pick the largest + int ipiv[4]; + double best[4], curr[4]; + if (LU_factor(N, ipiv)) { + cerr << "maxEigenVector():" << endl; + cerr << "LU_factor failed!" << endl; + cerr << "return identity quaternion" << endl; + ev[0] = 1.0; + ev[1] = ev[2] = ev[3] = 0.0; + return; + } + best[1] = best[2] = best[3] = 0; best[0] = 1; + LU_solve(N, ipiv, best); + double len = + best[0]*best[0] + best[1]*best[1] + + best[2]*best[2] + best[3]*best[3]; + for (int i=1; i<4; i++) { + curr[0] = curr[1] = curr[2] = curr[3] = 0; curr[i] = 1; + LU_solve(N, ipiv, curr); + double tlen = + curr[0]*curr[0] + curr[1]*curr[1] + + curr[2]*curr[2] + curr[3]*curr[3]; + if (tlen > len) { + len = tlen; + best[0] = curr[0]; + best[1] = curr[1]; + best[2] = curr[2]; + best[3] = curr[3]; + } + } + // normalize the result + len = 1.0/sqrt(len); + ev[0] = best[0]*len; + ev[1] = best[1]*len; + ev[2] = best[2]*len; + ev[3] = best[3]*len; +} + +// find the coefficients of the characteristic eqn. +// l^4 + a l^3 + b l^2 + c l + d = 0 +// for a symmetric 4x4 matrix +void icp6D_QUAT::characteristicPol(double Q[4][4], double c[4]) +{ + // squares + double q01_2 = Q[0][1] * Q[0][1]; + double q02_2 = Q[0][2] * Q[0][2]; + double q03_2 = Q[0][3] * Q[0][3]; + double q12_2 = Q[1][2] * Q[1][2]; + double q13_2 = Q[1][3] * Q[1][3]; + double q23_2 = Q[2][3] * Q[2][3]; + + // other factors + double q0011 = Q[0][0] * Q[1][1]; + double q0022 = Q[0][0] * Q[2][2]; + double q0033 = Q[0][0] * Q[3][3]; + double q0102 = Q[0][1] * Q[0][2]; + double q0103 = Q[0][1] * Q[0][3]; + double q0223 = Q[0][2] * Q[2][3]; + double q1122 = Q[1][1] * Q[2][2]; + double q1133 = Q[1][1] * Q[3][3]; + double q1223 = Q[1][2] * Q[2][3]; + double q2233 = Q[2][2] * Q[3][3]; + + // a + c[0] = -Q[0][0] - Q[1][1] - Q[2][2] - Q[3][3]; + + // b + c[1] = - q01_2 - q02_2 - q03_2 + q0011 - q12_2 - + q13_2 + q0022 + q1122 - q23_2 + q0033 + q1133 + + q2233; + + // c + c[2] = (q02_2 + q03_2 + q23_2)*Q[1][1] - 2*q0102*Q[1][2] + + (q12_2 + q13_2 + q23_2)*Q[0][0] + + (q01_2 + q03_2 - q0011 + q13_2 - q1133)*Q[2][2] - + 2*Q[0][3]*q0223 - 2*(q0103 + q1223)*Q[1][3] + + (q01_2 + q02_2 - q0011 + q12_2 - q0022)*Q[3][3]; + + // d + c[3] = 2*(-Q[0][2]*Q[0][3]*Q[1][2] + q0103*Q[2][2] - + Q[0][1]*q0223 + Q[0][0]*q1223)*Q[1][3] + + q02_2*q13_2 - q03_2*q1122 - q13_2*q0022 + + 2*Q[0][3]*Q[1][1]*q0223 - 2*q0103*q1223 + q01_2*q23_2 - + q0011*q23_2 - q02_2*q1133 + q03_2*q12_2 + + 2*q0102*Q[1][2]*Q[3][3] - q12_2*q0033 - q01_2*q2233 + + q0011*q2233; +} + +double icp6D_QUAT::Point_Point_Align_Parallel(const int openmp_num_threads, + const unsigned int n[OPENMP_NUM_THREADS], + const double sum[OPENMP_NUM_THREADS], + const double centroid_m[OPENMP_NUM_THREADS][3], + const double centroid_d[OPENMP_NUM_THREADS][3], + const double Si[OPENMP_NUM_THREADS][9], + double *alignfx) +{ + double s = 0.0; + double ret; + unsigned int pairs_size = 0; + double cm[3] = {0.0, 0.0, 0.0}; // centroid m + double cd[3] = {0.0, 0.0, 0.0}; // centroid d + + // Implementation according to the paper + // "The Parallel Iterative Closest Point Algorithm" + // by Langis / Greenspan / Godin, IEEE 3DIM 2001 + // formula (4) + for (int i = 0; i < openmp_num_threads; i++) { + s += sum[i]; + pairs_size += n[i]; + cm[0] += n[i] * centroid_m[i][0]; + cm[1] += n[i] * centroid_m[i][1]; + cm[2] += n[i] * centroid_m[i][2]; + cd[0] += n[i] * centroid_d[i][0]; + cd[1] += n[i] * centroid_d[i][1]; + cd[2] += n[i] * centroid_d[i][2]; + } + cm[0] /= pairs_size; + cm[1] /= pairs_size; + cm[2] /= pairs_size; + cd[0] /= pairs_size; + cd[1] /= pairs_size; + cd[2] /= pairs_size; + + ret = sqrt(s / (double)pairs_size); + if (!quiet) { + cout.setf(ios::basefield); + cout << "PQUAT RMS point-to-point error = " + << resetiosflags(ios::adjustfield) << setiosflags(ios::internal) + << resetiosflags(ios::floatfield) << setiosflags(ios::fixed) + << std::setw(10) << std::setprecision(7) + << ret + << " using " << std::setw(6) << pairs_size << " points" << endl; + } + + double S[3][3]; + double Q[4][4]; + int i,j; + + for (i = 0; i < 3; i++) + for (j = 0; j < 3; j++) + S[i][j] = 0; + + // calculate the cross covariance matrix + // formula (5) + for (int i = 0; i < openmp_num_threads; i++) { + for(int j = 0; j < 3; j++){ + for(int k = 0; k < 3; k++){ + S[j][k] += Si[i][k*3+j] + n[i] * ((centroid_d[i][j] - cd[j]) * (centroid_m[i][k] - cm[k])) ; + } + } + } + + S[0][0] -= cd[0] * cm[0]; + S[0][1] -= cd[0] * cm[1]; + S[0][2] -= cd[0] * cm[2]; + S[1][0] -= cd[1] * cm[0]; + S[1][1] -= cd[1] * cm[1]; + S[1][2] -= cd[1] * cm[2]; + S[2][0] -= cd[2] * cm[0]; + S[2][1] -= cd[2] * cm[1]; + S[2][2] -= cd[2] * cm[2]; + + // calculate the 4x4 symmetric matrix Q + double trace = S[0][0] + S[1][1] + S[2][2]; + double A23 = S[1][2] - S[2][1]; + double A31 = S[2][0] - S[0][2]; + double A12 = S[0][1] - S[1][0]; + + Q[0][0] = trace; + Q[0][1] = Q[1][0] = A23; + Q[0][2] = Q[2][0] = A31; + Q[0][3] = Q[3][0] = A12; + for (i = 0; i < 3; i++) + for (j = 0; j < 3; j++) + Q[i+1][j+1] = S[i][j]+S[j][i]-(i==j ? trace : 0); + + // the quaternion + double q[7]; + + maxEigenVector(Q, q); + + // calculate the rotation matrix + double m[3][3]; // rot matrix + quaternion2matrix(q, m); + + M4identity(alignfx); + + alignfx[0] = m[0][0]; + alignfx[1] = m[1][0]; + alignfx[2] = m[2][0]; + alignfx[3] = 0.0; + alignfx[4] = m[0][1]; + alignfx[5] = m[1][1]; + alignfx[6] = m[2][1]; + alignfx[7] = 0.0; + alignfx[8] = m[0][2]; + alignfx[9] = m[1][2]; + alignfx[10] = m[2][2]; + alignfx[11] = 0.0; + + // calculate the translation vector, + alignfx[12] = cm[0] - m[0][0]*cd[0] - m[0][1]*cd[1] - m[0][2]*cd[2]; + alignfx[13] = cm[1] - m[1][0]*cd[0] - m[1][1]*cd[1] - m[1][2]*cd[2]; + alignfx[14] = cm[2] - m[2][0]*cd[0] - m[2][1]*cd[1] - m[2][2]*cd[2]; + + return ret; +} diff --git a/src/slam6d/icp6Dquatscale.cc b/src/slam6d/icp6Dquatscale.cc new file mode 100644 index 0000000..206f466 --- /dev/null +++ b/src/slam6d/icp6Dquatscale.cc @@ -0,0 +1,156 @@ +/* + * icp6Dquatscale implementation + * + * Copyright (C) Flavia Grosan, Alex Tandrau, Dorit Borrmann, Andreas Nuechter + * + * Released under the GPL version 3. + * + */ + +/** @file + * @brief Implementation of the ICP error function minimization via quaternions and scale factor + * @author Flavia Grosan, Alex Tandrau. Jacobs University Bremen gGmbH, Germany. + * @author Andreas Nuechter. Jacobs University Bremen gGmbH, Germany. + * @author Dorit borrmann. Jacobs University Bremen gGmbH, Germany. + */ +#include "slam6d/icp6Dquatscale.h" + +#include "slam6d/globals.icc" +#include +using std::ios; +using std::resetiosflags; +using std::setiosflags; +#include +#include +#include +using std::cout; +using std::cerr; +using std::endl; + +/** + * computes the rotation matrix consisting + * of a rotation and translation that + * minimizes the root-mean-square error of the + * point pairs using the Quaternion method of Horn + * PARAMETERS + * vector of point pairs, rotation matrix + * @param pairs Vector of point pairs (pairs of corresponding points) + * @param *alignfx The resulting transformation matrix + * @return Error estimation of the matching (rms) +*/ +double icp6D_QUAT_SCALE::Point_Point_Align(const vector& pairs, double *alignfx, + const double centroid_m[3], const double centroid_d[3]) +{ + int n = pairs.size(); + + double sum = 0.0; + double sums[2]; sums[0] = sums[1] = 0.0; + + // the quaternion + double q[7]; + + double S[3][3]; // Cross Covariance Matrix + double Q[4][4]; + int i,j; + + // calculate the cross covariance matrix + for (i = 0; i < 3; i++) + for (j = 0; j < 3; j++) + S[i][j] = 0; + for (i=0; i +using std::ios; +using std::resetiosflags; +using std::setiosflags; + +#include "newmat/newmat.h" +#include "newmat/newmatap.h" +using namespace NEWMAT; + +/** + * computes the rotation matrix consisting + * of a rotation and translation that + * minimizes the root-mean-square error of the + * point pairs using the SVD PARAMETERS + * vector of point pairs, rotation matrix + * @param pairs Vector of point pairs (pairs of corresponding points) + * @param *alignfx The resulting transformation matrix + * @return Error estimation of the matching (rms) +*/ +double icp6D_SVD::Point_Point_Align(const vector& pairs, double *alignfx, + const double centroid_m[3], const double centroid_d[3]) +{ + double error = 0; + double sum = 0.0; + + // Get centered PtPairs + double** m = new double*[pairs.size()]; + double** d = new double*[pairs.size()]; + + for(unsigned int i = 0; i < pairs.size(); i++){ + m[i] = new double[3]; + d[i] = new double[3]; + m[i][0] = pairs[i].p1.x - centroid_m[0]; + m[i][1] = pairs[i].p1.y - centroid_m[1]; + m[i][2] = pairs[i].p1.z - centroid_m[2]; + d[i][0] = pairs[i].p2.x - centroid_d[0]; + d[i][1] = pairs[i].p2.y - centroid_d[1]; + d[i][2] = pairs[i].p2.z - centroid_d[2]; + + sum += sqr(pairs[i].p1.x - pairs[i].p2.x) + + sqr(pairs[i].p1.y - pairs[i].p2.y) + + sqr(pairs[i].p1.z - pairs[i].p2.z) ; + + } + + error = sqrt(sum / (double)pairs.size()); + + if (!quiet) { + cout.setf(ios::basefield); + cout << "SVD RMS point-to-point error = " + << resetiosflags(ios::adjustfield) << setiosflags(ios::internal) + << resetiosflags(ios::floatfield) << setiosflags(ios::fixed) + << std::setw(10) << std::setprecision(7) + << error + << " using " << std::setw(6) << (int)pairs.size() << " points" << endl; + } + + // Fill H matrix + Matrix H(3,3), R(3,3); + for(int j = 0; j < 3; j++){ + for(int k = 0; k < 3; k++){ + H(j+1, k+1) = 0.0; + } + } + + for(unsigned int i = 0; i < pairs.size(); i++){ + for(int j = 0; j < 3; j++){ + for(int k = 0; k < 3; k++){ + H(j+1, k+1) += d[i][j]*m[i][k]; + } + } + } + + Matrix U(3,3); + DiagonalMatrix Lamda(3); + Matrix V(3,3); + // Make SVD + SVD(H, Lamda, U, V); + + // Get rotation + R = V*(U.t()); + + // Calculate translation + double translation[3]; + ColumnVector col_vec(3); + for(int j = 0; j < 3; j++) + col_vec(j+1) = centroid_d[j]; + ColumnVector r_time_colVec = ColumnVector(R*col_vec); + translation[0] = centroid_m[0] - r_time_colVec(1); + translation[1] = centroid_m[1] - r_time_colVec(2); + translation[2] = centroid_m[2] - r_time_colVec(3); + + + // Fill result + alignfx[0] = R(1,1); + alignfx[1] = R(2,1); + alignfx[2] = 0; + alignfx[2] = R(3,1); + alignfx[3] = 0; + alignfx[4] = R(1,2); + alignfx[5] = R(2,2); + alignfx[6] = R(3,2); + alignfx[7] = 0; + alignfx[8] = R(1,3); + alignfx[9] = R(2,3); + alignfx[10] = R(3,3); + alignfx[11] = 0; + alignfx[12] = translation[0]; + alignfx[13] = translation[1]; + alignfx[14] = translation[2]; + + alignfx[15] = 1; + + + for(unsigned int i = 0; i < pairs.size(); i++){ + delete [] m[i]; + delete [] d[i]; + } + delete [] m; + delete [] d; + + return error; +} + +/** + * computes the rotation matrix consisting + * of a rotation and translation that + * minimizes the root-mean-square error of the + * point pairs using the SVD PARAMETERS + * vector of point pairs, rotation matrix + * @param pairs Vector of point pairs (pairs of corresponding points) + * @param *alignfx The resulting transformation matrix + * @return Error estimation of the matching (rms) +*/ +double icp6D_SVD::Point_Point_Align_Parallel(const int openmp_num_threads, + const unsigned int n[OPENMP_NUM_THREADS], + const double sum[OPENMP_NUM_THREADS], + const double centroid_m[OPENMP_NUM_THREADS][3], + const double centroid_d[OPENMP_NUM_THREADS][3], + const double Si[OPENMP_NUM_THREADS][9], double *alignxf) +{ + double s = 0.0; + double ret; + unsigned int pairs_size = 0; + double cm[3] = {0.0, 0.0, 0.0}; // centroid m + double cd[3] = {0.0, 0.0, 0.0}; // centroid d + + // Implementation according to the paper + // "The Parallel Iterative Closest Point Algorithm" + // by Langis / Greenspan / Godin, IEEE 3DIM 2001 + // formula (4) + // + // The same information are given in (ecrm2007.pdf) + // Andreas N眉chter. Parallelization of Scan Matching + // for Robotic 3D Mapping. In Proceedings of the 3rd + // European Conference on Mobile Robots (ECMR '07), + // Freiburg, Germany, September 2007 + for (int i = 0; i < openmp_num_threads; i++) { + s += sum[i]; + pairs_size += n[i]; + cm[0] += n[i] * centroid_m[i][0]; + cm[1] += n[i] * centroid_m[i][1]; + cm[2] += n[i] * centroid_m[i][2]; + cd[0] += n[i] * centroid_d[i][0]; + cd[1] += n[i] * centroid_d[i][1]; + cd[2] += n[i] * centroid_d[i][2]; + } + cm[0] /= pairs_size; + cm[1] /= pairs_size; + cm[2] /= pairs_size; + cd[0] /= pairs_size; + cd[1] /= pairs_size; + cd[2] /= pairs_size; + + ret = sqrt(s / (double)pairs_size); + if (!quiet) { + cout.setf(ios::basefield); + cout << "PSVD RMS point-to-point error = " + << resetiosflags(ios::adjustfield) << setiosflags(ios::internal) + << resetiosflags(ios::floatfield) << setiosflags(ios::fixed) + << std::setw(10) << std::setprecision(7) + << ret + << " using " << std::setw(6) << pairs_size << " points" << endl; + } + + Matrix H(3,3), R(3,3); + for(int j = 0; j < 3; j++){ + for(int k = 0; k < 3; k++){ + H(j+1, k+1) = 0.0; + } + } + // formula (5) + for (int i = 0; i < openmp_num_threads; i++) { + for(int j = 0; j < 3; j++){ + for(int k = 0; k < 3; k++){ + // H(j+1, k+1) += Si[i][j*3+k] + n[i] * ((centroid_m[i][j] - cm[j]) * (centroid_d[i][k] - cd[k])) ; + H(j+1, k+1) += Si[i][k*3+j] + n[i] * ((centroid_d[i][j] - cd[j]) * (centroid_m[i][k] - cm[k])) ; + } + } + } + + Matrix U(3,3); + DiagonalMatrix Lamda(3); + Matrix V(3,3); + // Make SVD + SVD(H, Lamda, U, V); + + // Get rotation + R = V*(U.t()); + + // Calculate translation + double translation[3]; + ColumnVector col_vec(3); + for(int j = 0; j < 3; j++) { + col_vec(j+1) = cd[j]; + } + ColumnVector r_time_colVec = ColumnVector(R * col_vec); + translation[0] = cm[0] - r_time_colVec(1); + translation[1] = cm[1] - r_time_colVec(2); + translation[2] = cm[2] - r_time_colVec(3); + + // Fill result + alignxf[0] = R(1,1); + alignxf[1] = R(2,1); + alignxf[2] = 0; + alignxf[2] = R(3,1); + alignxf[3] = 0; + alignxf[4] = R(1,2); + alignxf[5] = R(2,2); + alignxf[6] = R(3,2); + alignxf[7] = 0; + alignxf[8] = R(1,3); + alignxf[9] = R(2,3); + alignxf[10] = R(3,3); + alignxf[11] = 0; + alignxf[12] = translation[0]; + alignxf[13] = translation[1]; + alignxf[14] = translation[2]; + + alignxf[15] = 1; + + return ret; + +} diff --git a/src/slam6d/io_types.cc b/src/slam6d/io_types.cc new file mode 100644 index 0000000..d2c0a35 --- /dev/null +++ b/src/slam6d/io_types.cc @@ -0,0 +1,146 @@ +/* + * io_tpyes implementation + * + * Copyright (C) Thomas Escher, Kai Lingemann, Andreas Nuechter + * + * Released under the GPL version 3. + * + */ + +#include "slam6d/io_types.h" + +#include "slam6d/globals.icc" + +#ifdef _MSC_VER +//#include // TODO: TEST +#define strcasecmp _stricmp +#define strncasecmp _strnicmp +#else +#include +#endif + +#include +#include +IOType formatname_to_io_type(const char * string) +{ + if (strcasecmp(string, "uos") == 0) return UOS; + else if (strcasecmp(string, "uos_map") == 0) return UOS_MAP; + else if (strcasecmp(string, "uos_frames") == 0) return UOS_FRAMES; + else if (strcasecmp(string, "uos_map_frames") == 0) return UOS_MAP_FRAMES; + else if (strcasecmp(string, "uos_rgb") == 0) return UOS_RGB; + else if (strcasecmp(string, "old") == 0) return OLD; + else if (strcasecmp(string, "rts") == 0) return RTS; + else if (strcasecmp(string, "rts_map") == 0) return RTS_MAP; + else if (strcasecmp(string, "ifp") == 0) return IFP; + else if (strcasecmp(string, "riegl_txt") == 0) return RIEGL_TXT; + else if (strcasecmp(string, "riegl_project") == 0) return RIEGL_PROJECT; + else if (strcasecmp(string, "riegl_rgb") == 0) return RIEGL_RGB; + else if (strcasecmp(string, "riegl_bin") == 0) return RIEGL_BIN; + else if (strcasecmp(string, "zahn") == 0) return ZAHN; + else if (strcasecmp(string, "ply") == 0) return PLY; + else if (strcasecmp(string, "wrl") == 0) return WRL; + else if (strcasecmp(string, "xyz") == 0) return XYZ; + else if (strcasecmp(string, "zuf") == 0) return ZUF; + else if (strcasecmp(string, "asc") == 0) return ASC; + else if (strcasecmp(string, "iais") == 0) return IAIS; + else if (strcasecmp(string, "front") == 0) return FRONT; + else if (strcasecmp(string, "x3d") == 0) return X3D; + else if (strcasecmp(string, "rxp") == 0) return RXP; + else if (strcasecmp(string, "ais") == 0) return AIS; + else if (strcasecmp(string, "oct") == 0) return OCT; + else if (strcasecmp(string, "txyzr") == 0) return TXYZR; + else if (strcasecmp(string, "xyzr") == 0) return XYZR; + else if (strcasecmp(string, "xyz_rgb") == 0) return XYZ_RGB; + else if (strcasecmp(string, "ks") == 0) return KS; + else if (strcasecmp(string, "ks_rgb") == 0) return KS_RGB; + else if (strcasecmp(string, "stl") == 0) return STL; + else if (strcasecmp(string, "leica") == 0) return LEICA; + else if (strcasecmp(string, "pcl") == 0) return PCL; + else if (strcasecmp(string, "pci") == 0) return PCI; + else if (strcasecmp(string, "cad") == 0) return UOS_CAD; + else if (strcasecmp(string, "velodyne") == 0) return VELODYNE; + else if (strcasecmp(string, "velodyne_frames") == 0) return VELODYNE_FRAMES; + else throw std::runtime_error(std::string("Io type ") + string + std::string(" is unknown")); +} + +const char * io_type_to_libname(IOType type) +{ + switch (type) { + case UOS: + return "scan_io_uos"; + case UOS_MAP: + return "scan_io_uos_map"; + case UOS_FRAMES: + return "scan_io_uos_frames"; + case UOS_MAP_FRAMES: + return "scan_io_uos_map_frames"; + case UOS_RGB: + return "scan_io_uos_rgb"; + case OLD: + return "scan_io_old"; + case RTS: + return "scan_io_rts"; + case RTS_MAP: + return "scan_io_rts_map"; + case IFP: + return "scan_io_ifp"; + case RIEGL_TXT: + return "scan_io_riegl_txt"; + case RIEGL_PROJECT: + return "scan_io_riegl_project"; + case RIEGL_RGB: + return "scan_io_riegl_rgb"; + case RIEGL_BIN: + return "scan_io_riegl_bin"; + case ZAHN: + return "scan_io_zahn"; + case PLY: + return "scan_io_ply"; + case WRL: + return "scan_io_wrl"; + case XYZ: + return "scan_io_xyz"; + case ZUF: + return "scan_io_zuf"; + case ASC: + return "scan_io_asc"; + case IAIS: + return "scan_io_iais"; + case FRONT: + return "scan_io_front"; + case X3D: + return "scan_io_x3d"; + case RXP: + return "scan_io_rxp"; + case AIS: + return "scan_io_ais"; + case OCT: + return "scan_io_oct"; + case TXYZR: + return "scan_io_txyzr"; + case XYZR: + return "scan_io_xyzr"; + case XYZ_RGB: + return "scan_io_xyz_rgb"; + case KS: + return "scan_io_ks"; + case KS_RGB: + return "scan_io_ks_rgb"; + case STL: + return "stl"; + case LEICA: + return "leica_txt"; + case PCL: + return "pcl"; + case PCI: + return "pci"; + case UOS_CAD: + return "cad"; + case VELODYNE: + return "scan_io_velodyne"; + case VELODYNE_FRAMES: + return "scan_io_velodyne_frames"; + default: + throw std::runtime_error(std::string("Io type ") + to_string(type) + std::string(" could not be matched to a library name")); + } +} diff --git a/src/slam6d/io_utils.cc b/src/slam6d/io_utils.cc new file mode 100644 index 0000000..961d081 --- /dev/null +++ b/src/slam6d/io_utils.cc @@ -0,0 +1,49 @@ +#include "slam6d/io_utils.h" + +#include +using std::ifstream; + +/** + * Parsing of a formats file in the scan directory for default type and scan + * index ranges without overwriting user set parameters. Does nothing if + * file doesn't exist. + * + * @param dir directory the scans and format file are contained in + * @param type which ScanIO to use for the scans in that directory + * @param start index for the first valid scan + * @param end index for the last valid scan + */ +void parseFormatFile(string& dir, WriteOnce& type, WriteOnce& start, WriteOnce& end) +{ + ifstream file((dir+"format").c_str()); + if(!file.good()) return; + + string line, key, value, format; + while(getline(file, line)) { + size_t pos = line.find('='); + key = trim(line.substr(0, pos - 0)); + value = trim(line.substr(pos+1)); + if(key == "format") { + try { + format = value; + type = formatname_to_io_type(format.c_str()); + } catch (...) { // runtime_error + cerr << "Error while parsing format file: Format '" << format << "' unknown." << endl; + break; + } + } else if(key == "start") { + stringstream str(value.c_str()); + int s; + str >> s; + start = s; + } else if(key == "end") { + stringstream str(value.c_str()); + int e; + str >> e; + end = e; + } else { + cerr << "Error while parsing format file: Unknown key '" << key << "'" << endl; + break; + } + } +} diff --git a/src/slam6d/kd.cc b/src/slam6d/kd.cc new file mode 100644 index 0000000..f2bf4f0 --- /dev/null +++ b/src/slam6d/kd.cc @@ -0,0 +1,196 @@ +/* + * kd implementation + * + * Copyright (C) Andreas Nuechter, Kai Lingemann, Thomas Escher + * + * Released under the GPL version 3. + * + */ + +/** @file + * @brief An optimized k-d tree implementation + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Thomas Escher Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifdef _MSC_VER +#define _USE_MATH_DEFINES +#endif + +#include "slam6d/kd.h" +#include "slam6d/globals.icc" + +#include +using std::cout; +using std::cerr; +using std::endl; +#include +using std::swap; +#include +#include + +// KDtree class static variables +KDParams KDtree::params[MAX_OPENMP_NUM_THREADS]; + +/** + * Constructor + * + * Create a KD tree from the points pointed to by the array pts + * + * @param pts 3D array of points + * @param n number of points + */ +KDtree::KDtree(double **pts, int n) +{ + // Find bbox + double xmin = pts[0][0], xmax = pts[0][0]; + double ymin = pts[0][1], ymax = pts[0][1]; + double zmin = pts[0][2], zmax = pts[0][2]; + for (int i = 1; i < n; i++) { + xmin = min(xmin, pts[i][0]); + xmax = max(xmax, pts[i][0]); + ymin = min(ymin, pts[i][1]); + ymax = max(ymax, pts[i][1]); + zmin = min(zmin, pts[i][2]); + zmax = max(zmax, pts[i][2]); + } + + // Leaf nodes + if ((n > 0) && (n <= 10)) { + npts = n; + leaf.p = new double*[n]; + memcpy(leaf.p, pts, n * sizeof(double *)); + return; + } + + // Else, interior nodes + npts = 0; + + node.center[0] = 0.5 * (xmin+xmax); + node.center[1] = 0.5 * (ymin+ymax); + node.center[2] = 0.5 * (zmin+zmax); + node.dx = 0.5 * (xmax-xmin); + node.dy = 0.5 * (ymax-ymin); + node.dz = 0.5 * (zmax-zmin); + node.r2 = sqr(node.dx) + sqr(node.dy) + sqr(node.dz); + + // Find longest axis + if (node.dx > node.dy) { + if (node.dx > node.dz) { + node.splitaxis = 0; + } else { + node.splitaxis = 2; + } + } else { + if (node.dy > node.dz) { + node.splitaxis = 1; + } else { + node.splitaxis = 2; + } + } + + // Partition + double splitval = node.center[node.splitaxis]; + + if ( fabs(max(max(node.dx,node.dy),node.dz)) < 0.01 ) { + npts = n; + leaf.p = new double*[n]; + memcpy(leaf.p, pts, n * sizeof(double *)); + return; + } + + double **left = pts, **right = pts + n - 1; + while (1) { + while ((*left)[node.splitaxis] < splitval) + left++; + while ((*right)[node.splitaxis] >= splitval) + right--; + if (right < left) + break; + swap(*left, *right); + } + + // Build subtrees + int i; +#ifdef WITH_OPENMP_KD // does anybody know the reason why this is slower ?? --Andreas + omp_set_num_threads(OPENMP_NUM_THREADS); +#pragma omp parallel for schedule(dynamic) +#endif + for (i = 0; i < 2; i++) { + if (i == 0) node.child1 = new KDtree(pts, left-pts); + if (i == 1) node.child2 = new KDtree(left, n-(left-pts)); + } +} + +KDtree::~KDtree() +{ + if (!npts) { +#ifdef WITH_OPENMP_KD + omp_set_num_threads(OPENMP_NUM_THREADS); +#pragma omp parallel for schedule(dynamic) +#endif + for (int i = 0; i < 2; i++) { + if (i == 0 && node.child1) delete node.child1; + if (i == 1 && node.child2) delete node.child2; + } + } else { + if (leaf.p) delete [] leaf.p; + } +} + +/** + * Finds the closest point within the tree, + * wrt. the point given as first parameter. + * @param _p point + * @param maxdist2 maximal search distance. + * @param threadNum Thread number, for parallelization + * @return Pointer to the closest point + */ +double *KDtree::FindClosest(double *_p, double maxdist2, int threadNum) const +{ + params[threadNum].closest = 0; + params[threadNum].closest_d2 = maxdist2; + params[threadNum].p = _p; + _FindClosest(threadNum); + return params[threadNum].closest; +} + +/** + * Wrapped function + */ +void KDtree::_FindClosest(int threadNum) const +{ + // Leaf nodes + if (npts) { + for (int i = 0; i < npts; i++) { + double myd2 = Dist2(params[threadNum].p, leaf.p[i]); + if (myd2 < params[threadNum].closest_d2) { + params[threadNum].closest_d2 = myd2; + params[threadNum].closest = leaf.p[i]; + } + } + return; + } + + // Quick check of whether to abort + double approx_dist_bbox = max(max(fabs(params[threadNum].p[0]-node.center[0])-node.dx, + fabs(params[threadNum].p[1]-node.center[1])-node.dy), + fabs(params[threadNum].p[2]-node.center[2])-node.dz); + if (approx_dist_bbox >= 0 && sqr(approx_dist_bbox) >= params[threadNum].closest_d2) + return; + + // Recursive case + double myd = node.center[node.splitaxis] - params[threadNum].p[node.splitaxis]; + if (myd >= 0.0) { + node.child1->_FindClosest(threadNum); + if (sqr(myd) < params[threadNum].closest_d2) { + node.child2->_FindClosest(threadNum); + } + } else { + node.child2->_FindClosest(threadNum); + if (sqr(myd) < params[threadNum].closest_d2) { + node.child1->_FindClosest(threadNum); + } + } +} diff --git a/src/slam6d/kdManaged.cc b/src/slam6d/kdManaged.cc new file mode 100644 index 0000000..bf25b9c --- /dev/null +++ b/src/slam6d/kdManaged.cc @@ -0,0 +1,231 @@ +/* + * kdManaged implementation + * + * Copyright (C) Andreas Nuechter, Kai Lingemann, Thomas Escher + * + * Released under the GPL version 3. + * + */ + +/** @file + * @brief An optimized k-d tree implementation + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Thomas Escher. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifdef _MSC_VER +#define _USE_MATH_DEFINES +#endif + +#include "slam6d/kdManaged.h" +#include "slam6d/scan.h" +#include "slam6d/globals.icc" + +#include +using std::cout; +using std::cerr; +using std::endl; +#include +using std::swap; +#include +#include + +// KDtree class static variables +KDParams KDtreeManagedBase::params[MAX_OPENMP_NUM_THREADS]; + +/** + * Constructor + * + * Create a KD tree from the points pointed to by the array pts + * + * @param pts 3D array of points + * @param n number of points + */ +KDtreeManagedBase::KDtreeManagedBase(const DataXYZ& pts, unsigned int* indices, unsigned int n) +{ + // Find bbox + double xmin = pts[indices[0]][0], xmax = pts[indices[0]][0]; + double ymin = pts[indices[0]][1], ymax = pts[indices[0]][1]; + double zmin = pts[indices[0]][2], zmax = pts[indices[0]][2]; + for(unsigned int i = 1; i < n; i++) { + xmin = min(xmin, pts[indices[i]][0]); + xmax = max(xmax, pts[indices[i]][0]); + ymin = min(ymin, pts[indices[i]][1]); + ymax = max(ymax, pts[indices[i]][1]); + zmin = min(zmin, pts[indices[i]][2]); + zmax = max(zmax, pts[indices[i]][2]); + } + + // Leaf nodes + if ((n > 0) && (n <= 10)) { + npts = n; + leaf.p = new unsigned int[n]; + // fill leaf index array with indices + for(unsigned int i = 0; i < n; ++i) { + leaf.p[i] = indices[i]; + } + return; + } + + // Else, interior nodes + npts = 0; + + node.center[0] = 0.5 * (xmin+xmax); + node.center[1] = 0.5 * (ymin+ymax); + node.center[2] = 0.5 * (zmin+zmax); + node.dx = 0.5 * (xmax-xmin); + node.dy = 0.5 * (ymax-ymin); + node.dz = 0.5 * (zmax-zmin); + node.r2 = sqr(node.dx) + sqr(node.dy) + sqr(node.dz); + + // Find longest axis + if (node.dx > node.dy) { + if (node.dx > node.dz) { + node.splitaxis = 0; + } else { + node.splitaxis = 2; + } + } else { + if (node.dy > node.dz) { + node.splitaxis = 1; + } else { + node.splitaxis = 2; + } + } + + // Partition + double splitval = node.center[node.splitaxis]; + + if ( fabs(max(max(node.dx,node.dy),node.dz)) < 0.01 ) { + npts = n; + leaf.p = new unsigned int[n]; + // fill leaf index array with indices + for(unsigned int i = 0; i < n; ++i) { + leaf.p[i] = indices[i]; + } + return; + } + + unsigned int* left = indices, * right = indices + n - 1; + while(true) { + while(pts[*left][node.splitaxis] < splitval) + left++; + while(pts[*right][node.splitaxis] >= splitval) + right--; + if(right < left) + break; + swap(*left, *right); + } + + // Build subtrees + int i; +#ifdef WITH_OPENMP_KD // does anybody know the reason why this is slower ?? --Andreas + omp_set_num_threads(OPENMP_NUM_THREADS); +#pragma omp parallel for schedule(dynamic) +#endif + for (i = 0; i < 2; i++) { + if (i == 0) node.child1 = new KDtreeManagedBase(pts, indices, left - indices); + if (i == 1) node.child2 = new KDtreeManagedBase(pts, left, n - (left - indices)); + } +} + +KDtreeManagedBase::~KDtreeManagedBase() +{ + if (!npts) { +#ifdef WITH_OPENMP_KD + omp_set_num_threads(OPENMP_NUM_THREADS); +#pragma omp parallel for schedule(dynamic) +#endif + for (int i = 0; i < 2; i++) { + if (i == 0 && node.child1) delete node.child1; + if (i == 1 && node.child2) delete node.child2; + } + } else { + if (leaf.p) delete [] leaf.p; + } +} + +/** + * Wrapped function + */ +void KDtreeManagedBase::_FindClosest(const DataXYZ& pts, int threadNum) const +{ + // Leaf nodes + if (npts) { + for (int i = 0; i < npts; i++) { + double myd2 = Dist2(params[threadNum].p, pts[leaf.p[i]]); + if (myd2 < params[threadNum].closest_d2) { + params[threadNum].closest_d2 = myd2; + params[threadNum].closest = pts[leaf.p[i]]; + } + } + return; + } + + // Quick check of whether to abort + double approx_dist_bbox = max(max(fabs(params[threadNum].p[0]-node.center[0])-node.dx, + fabs(params[threadNum].p[1]-node.center[1])-node.dy), + fabs(params[threadNum].p[2]-node.center[2])-node.dz); + if (approx_dist_bbox >= 0 && sqr(approx_dist_bbox) >= params[threadNum].closest_d2) + return; + + // Recursive case + double myd = node.center[node.splitaxis] - params[threadNum].p[node.splitaxis]; + if (myd >= 0.0) { + node.child1->_FindClosest(pts, threadNum); + if (sqr(myd) < params[threadNum].closest_d2) { + node.child2->_FindClosest(pts, threadNum); + } + } else { + node.child2->_FindClosest(pts, threadNum); + if (sqr(myd) < params[threadNum].closest_d2) { + node.child1->_FindClosest(pts, threadNum); + } + } +} + +KDtreeManaged::KDtreeManaged(Scan* scan) : + KDtreeManagedBase(scan->get("xyz reduced original"), prepareTempIndices(scan->size("xyz reduced original")), scan->size("xyz reduced original")), + m_scan(scan), m_data(0), m_count_locking(0) +{ + // allocate in prepareTempIndices, deleted here + delete[] m_temp_indices; +} + +unsigned int* KDtreeManaged::prepareTempIndices(unsigned int n) +{ + m_temp_indices = new unsigned int[n]; + for(unsigned int i = 0; i < n; ++i) + m_temp_indices[i] = i; + return m_temp_indices; +} + +double* KDtreeManaged::FindClosest(double *_p, double maxdist2, int threadNum) const +{ + params[threadNum].closest = 0; + params[threadNum].closest_d2 = maxdist2; + params[threadNum].p = _p; + _FindClosest(*m_data, threadNum); + return params[threadNum].closest; +} + +void KDtreeManaged::lock() +{ + boost::lock_guard lock(m_mutex_locking); + ++m_count_locking; + if(m_data == 0) { + // aquire an array lock from the scan and hold it while the tree is in use + m_data = new DataXYZ(m_scan->get("xyz reduced original")); + } +} + +void KDtreeManaged::unlock() +{ + boost::lock_guard lock(m_mutex_locking); + --m_count_locking; + if(m_count_locking == 0 && m_data != 0) { + delete m_data; + m_data = 0; + } +} diff --git a/src/slam6d/kdMeta.cc b/src/slam6d/kdMeta.cc new file mode 100644 index 0000000..4e7ab9e --- /dev/null +++ b/src/slam6d/kdMeta.cc @@ -0,0 +1,280 @@ +/* + * kdMeta implementation + * + * Copyright (C) Andreas Nuechter, Kai Lingemann, Thomas Escher + * + * Released under the GPL version 3. + * + */ + +/** @file + * @brief An optimized k-d tree implementation. MetaScan variant. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Thomas Escher. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifdef _MSC_VER +#define _USE_MATH_DEFINES +#endif + +#include "slam6d/kdMeta.h" +#include "slam6d/globals.icc" +#include "slam6d/scan.h" + +#include +using std::cout; +using std::cerr; +using std::endl; +#include +using std::swap; +#include +#include + +// KDtree class static variables +KDParams KDtreeMeta::params[MAX_OPENMP_NUM_THREADS]; + +KDtreeMeta::KDtreeMeta() +{ +} + +/** + * Create a KD tree from the points pointed to by the array pts + * + * @param pts 3D array of points + * @param n number of points + */ +void KDtreeMeta::create(const DataXYZ* const* pts, Index* indices, unsigned int n) +{ + // Find bbox + double xmin = point(pts, indices[0])[0], xmax = point(pts, indices[0])[0]; + double ymin = point(pts, indices[0])[1], ymax = point(pts, indices[0])[1]; + double zmin = point(pts, indices[0])[2], zmax = point(pts, indices[0])[2]; + for(unsigned int i = 1; i < n; i++) { + xmin = min(xmin, point(pts, indices[i])[0]); + xmax = max(xmax, point(pts, indices[i])[0]); + ymin = min(ymin, point(pts, indices[i])[1]); + ymax = max(ymax, point(pts, indices[i])[1]); + zmin = min(zmin, point(pts, indices[i])[2]); + zmax = max(zmax, point(pts, indices[i])[2]); + } + + // Leaf nodes + if ((n > 0) && (n <= 10)) { + npts = n; + leaf.p = new Index[n]; + // fill leaf index array with indices + for(unsigned int i = 0; i < n; ++i) { + leaf.p[i] = indices[i]; + } + return; + } + + // Else, interior nodes + npts = 0; + + node.center[0] = 0.5 * (xmin+xmax); + node.center[1] = 0.5 * (ymin+ymax); + node.center[2] = 0.5 * (zmin+zmax); + node.dx = 0.5 * (xmax-xmin); + node.dy = 0.5 * (ymax-ymin); + node.dz = 0.5 * (zmax-zmin); + node.r2 = sqr(node.dx) + sqr(node.dy) + sqr(node.dz); + + // Find longest axis + if (node.dx > node.dy) { + if (node.dx > node.dz) { + node.splitaxis = 0; + } else { + node.splitaxis = 2; + } + } else { + if (node.dy > node.dz) { + node.splitaxis = 1; + } else { + node.splitaxis = 2; + } + } + + // Partition + double splitval = node.center[node.splitaxis]; + + if ( fabs(max(max(node.dx,node.dy),node.dz)) < 0.01 ) { + npts = n; + leaf.p = new Index[n]; + // fill leaf index array with indices + for(unsigned int i = 0; i < n; ++i) { + leaf.p[i] = indices[i]; + } + return; + } + + Index* left = indices, * right = indices + n - 1; + while(true) { + while(point(pts, *left)[node.splitaxis] < splitval) + left++; + while(point(pts, *right)[node.splitaxis] >= splitval) + right--; + if(right < left) + break; + swap(*left, *right); + } + + // Build subtrees + int i; +#ifdef WITH_OPENMP_KD // does anybody know the reason why this is slower ?? --Andreas + omp_set_num_threads(OPENMP_NUM_THREADS); +#pragma omp parallel for schedule(dynamic) +#endif + for (i = 0; i < 2; i++) { + if (i == 0) { + node.child1 = new KDtreeMeta(); + node.child1->create(pts, indices, left - indices); + } + if (i == 1) { + node.child2 = new KDtreeMeta(); + node.child2->create(pts, left, n - (left - indices)); + } + } +} + +KDtreeMeta::~KDtreeMeta() +{ + if (!npts) { +#ifdef WITH_OPENMP_KD + omp_set_num_threads(OPENMP_NUM_THREADS); +#pragma omp parallel for schedule(dynamic) +#endif + for (int i = 0; i < 2; i++) { + if (i == 0 && node.child1) delete node.child1; + if (i == 1 && node.child2) delete node.child2; + } + } else { + if (leaf.p) delete [] leaf.p; + } +} + +/** + * Wrapped function + */ +void KDtreeMeta::_FindClosest(const DataXYZ* const* pts, int threadNum) const +{ + // Leaf nodes + if (npts) { + for (int i = 0; i < npts; i++) { + double myd2 = Dist2(params[threadNum].p, point(pts, leaf.p[i])); + if (myd2 < params[threadNum].closest_d2) { + params[threadNum].closest_d2 = myd2; + params[threadNum].closest = point(pts, leaf.p[i]); + } + } + return; + } + + // Quick check of whether to abort + double approx_dist_bbox = max(max(fabs(params[threadNum].p[0]-node.center[0])-node.dx, + fabs(params[threadNum].p[1]-node.center[1])-node.dy), + fabs(params[threadNum].p[2]-node.center[2])-node.dz); + if (approx_dist_bbox >= 0 && sqr(approx_dist_bbox) >= params[threadNum].closest_d2) + return; + + // Recursive case + double myd = node.center[node.splitaxis] - params[threadNum].p[node.splitaxis]; + if (myd >= 0.0) { + node.child1->_FindClosest(pts, threadNum); + if (sqr(myd) < params[threadNum].closest_d2) { + node.child2->_FindClosest(pts, threadNum); + } + } else { + node.child2->_FindClosest(pts, threadNum); + if (sqr(myd) < params[threadNum].closest_d2) { + node.child1->_FindClosest(pts, threadNum); + } + } +} + +KDtreeMetaManaged::KDtreeMetaManaged(const vector& scans) : + m_count_locking(0) +{ + // create scan pointer and data pointer arrays + m_size = scans.size(); + m_scans = new Scan*[m_size]; + for(unsigned int i = 0; i < m_size; ++i) + m_scans[i] = scans[i]; + m_data = new DataXYZ*[m_size]; + + lock(); + create(m_data, prepareTempIndices(scans), getPointsSize(scans)); + unlock(); + + // allocate in prepareTempIndices, deleted here + delete[] m_temp_indices; +} + +KDtreeMetaManaged::~KDtreeMetaManaged() +{ + delete[] m_scans; + delete[] m_data; +} + +KDtreeMeta::Index* KDtreeMetaManaged::prepareTempIndices(const vector& scans) +{ + unsigned int n = getPointsSize(scans); + + m_temp_indices = new Index[n]; + unsigned int s = 0, j = 0; + unsigned int scansize = scans[s]->size("xyz reduced"); + for(unsigned int i = 0; i < n; ++i) { + m_temp_indices[i].set(s, j++); + // switch to next scan + if(j >= scansize) { + ++s; + j = 0; + if(s < scans.size()) + scansize = scans[s]->size("xyz reduced"); + } + } + return m_temp_indices; +} + +unsigned int KDtreeMetaManaged::getPointsSize(const vector& scans) +{ + unsigned int n = 0; + for(vector::const_iterator it = scans.begin(); it != scans.end(); ++it) { + n += (*it)->size("xyz reduced"); + } + return n; +} + +double* KDtreeMetaManaged::FindClosest(double *_p, double maxdist2, int threadNum) const +{ + params[threadNum].closest = 0; + params[threadNum].closest_d2 = maxdist2; + params[threadNum].p = _p; + _FindClosest(m_data, threadNum); + return params[threadNum].closest; +} + +void KDtreeMetaManaged::lock() +{ + boost::lock_guard lock(m_mutex_locking); + if(m_count_locking == 0) { + // lock all the contained scans, metascan uses the transformed points + for(unsigned int i = 0; i < m_size; ++i) { + m_data[i] = new DataXYZ(m_scans[i]->get("xyz reduced")); + } + } + ++m_count_locking; +} + +void KDtreeMetaManaged::unlock() +{ + boost::lock_guard lock(m_mutex_locking); + --m_count_locking; + if(m_count_locking == 0) { + // delete each locking object + for(unsigned int i = 0; i < m_size; ++i) { + delete m_data[i]; + } + } +} diff --git a/src/slam6d/loopHOG-Man.cc b/src/slam6d/loopHOG-Man.cc new file mode 100644 index 0000000..565a09e --- /dev/null +++ b/src/slam6d/loopHOG-Man.cc @@ -0,0 +1,171 @@ +/* + * loopHOG-Man implementation + * + * Copyright (C) Jochen Sprickerhof + * + * Released under the GPL version 3. + * + */ + +/** + * @file HOG-Man wrapper + * @author Jochen Sprickerhof. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "slam6d/loopHOG-Man.h" + +#include "slam6d/metaScan.h" +#include "slam6d/lum6Deuler.h" +#include "slam6d/globals.icc" + +#include +using std::ofstream; +using std::ifstream; + +#include +using boost::graph_traits; +using namespace NEWMAT; +/** + * @param allScans all laser scans + * @param first index of first laser scan in the loop + * @param last indes of last laser scan in the loop + * @param g graph for loop optimization + */ +void loopHOGMan::close_loop(const vector &allScans, int first, int last, graph_t &g) +{ + int n = num_vertices(g); + Matrix C(6, 6); + double invers[16], rela[16], rPos[3], rPosTheta[3], rPosQuat[4]; + ofstream outFile("hogman.graph"); + + for(int i = 0; i < n; i++) { + QuatRPYEuler(allScans[i]->get_rPosQuat(), rPosTheta); + outFile << "VERTEX3" << " " << i << + " " << (allScans[i]->get_rPos()[0]/100) << + " " << (allScans[i]->get_rPos()[1]/100) << + " " << (allScans[i]->get_rPos()[2]/100) << + " " << rPosTheta[0] << + " " << rPosTheta[1] << + " " << rPosTheta[2] << "\n"; + } + + graph_traits ::edge_iterator ei = edges(g).first; + int num_arcs = num_edges(g); + int li = 0; +#ifdef _OPENMP +#pragma omp parallel for firstprivate(li, ei) private(invers, rela, rPos, rPosTheta, rPosQuat, C) +#endif + for(int i = 0; i < num_arcs; i++) { + for(;i > li; li++, ei++) ; + for(;i < li; li--, ei--) ; + int from = source(*ei, g); + int to = target(*ei, g); + + M4inv(allScans[from]->get_transMat(), invers); + MMult(invers, allScans[to]->get_transMat(), rela); + Matrix4ToQuat(rela, rPosQuat, rPos); + QuatRPYEuler(rPosQuat, rPosTheta); + + lum6DEuler::covarianceEuler(allScans[from], allScans[to], my_icp6D->get_nns_method(), my_icp6D->get_rnd(), my_icp6D->get_max_dist_match2(), &C); + +#ifdef _OPENMP +#pragma omp critical +#endif + { + outFile << "EDGE3" << " " << from << " " << to << " " << + (rPos[0]/100) << " " << + (rPos[1]/100) << " " << + (rPos[2]/100) << " " << + rPosTheta[0] << " " << + rPosTheta[1] << " " << + rPosTheta[2] << " "; + for(int i = 1; i < 7; i++) + for(int j = i; j < 7; j++) + outFile << C(i, j) << " "; + outFile << endl; + } + } + + vector meta_start; + for(int i = first - 2; i <= first + 2; i++) { + if(i >= 0) { + meta_start.push_back(allScans[i]); + } + } + MetaScan *start = new MetaScan(meta_start, false, false); + + //static size of metascan + int offset_last_start = 2; + int offset_last_end = 0; + + vector meta_end; + for(int i = last - offset_last_start; i <= last + offset_last_end && i < n; i++) { + meta_end.push_back(allScans[i]); + } + MetaScan *end = new MetaScan(meta_end, false, false); + + my_icp6D->match(start, end); + + delete start; + delete end; + + M4inv(allScans[last]->get_transMat(), invers); + MMult(invers, allScans[first]->get_transMat(), rela); + Matrix4ToQuat(rela, rPosQuat, rPos); + QuatRPYEuler(rPosQuat, rPosTheta); + + lum6DEuler::covarianceEuler(allScans[first], allScans[last], my_icp6D->get_nns_method(), my_icp6D->get_rnd(), my_icp6D->get_max_dist_match2(), &C); + + outFile << "EDGE3" << " " << last << " " << first << " " << + (rPos[0]/100) << " " << + (rPos[1]/100) << " " << + (rPos[2]/100) << " " << + rPosTheta[0] << " " << + rPosTheta[1] << " " << + rPosTheta[2] << " " << + C(1, 1) << " " << C(1, 2) << " " << C(1, 3) << " " << C(1, 4) << " " << C(1, 5) << " " << C(1, 6) << " " << + C(1, 1) << " " << C(1, 2) << " " << C(1, 3) << " " << C(1, 4) << " " << C(1, 5) << " " << + C(1, 1) << " " << C(1, 2) << " " << C(1, 3) << " " << C(1, 4) << " " << + C(1, 1) << " " << C(1, 2) << " " << C(1, 3) << " " << + C(1, 1) << " " << C(1, 2) << " " << + C(1, 1) << " " << "\n"; + outFile.close(); + + system("LD_LIBRARY_PATH=./bin/ ./bin/hogman3d -update 1 -oc -o hogman-final.graph hogman.graph"); + + ifstream inFile("hogman-final.graph"); + string tag; + int id; + double dd; + double rPosN[3], rPosThetaN[3]; + while(inFile) { + inFile >> tag; + if(tag == "VERTEX3") { + inFile >> id; + if(id == n-1) { + inFile >> rPosN[0] >> rPosN[1] >> rPosN[2] >> rPosThetaN[0] >> rPosThetaN[1] >> rPosThetaN[2]; + rPosN[0] *= 100; + rPosN[1] *= 100; + rPosN[2] *= 100; + } else { + inFile >> rPos[0] >> rPos[1] >> rPos[2] >> rPosTheta[0] >> rPosTheta[1] >> rPosTheta[2]; + rPos[0] *= 100; + rPos[1] *= 100; + rPos[2] *= 100; + RPYEulerQuat(rPosTheta, rPosQuat); + if(id != 0) { + allScans[id]->transformToQuat(rPos, rPosQuat, Scan::LOOPHOGMAN, 1); + } + } + } + else if(tag == "EDGE3") { + inFile >> id >> id; + for(int i=0; i < 22; i++) { + inFile >> dd; + } + } + } + RPYEulerQuat(rPosThetaN, rPosQuat); + allScans[n-1]->transformToQuat(rPosN, rPosQuat, Scan::LOOPHOGMAN, 2); + inFile.close(); +} diff --git a/src/slam6d/loopToro.cc b/src/slam6d/loopToro.cc new file mode 100644 index 0000000..61d7151 --- /dev/null +++ b/src/slam6d/loopToro.cc @@ -0,0 +1,172 @@ +/* + * loopToro implementation + * + * Copyright (C) Jochen Sprickerhof + * + * Released under the GPL version 3. + * + */ + + +/** + * @file TORO wrapper + * @author Jochen Sprickerhof. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "slam6d/loopToro.h" + +#include "slam6d/metaScan.h" +#include "slam6d/lum6Deuler.h" +#include "slam6d/globals.icc" + +#include +using std::ofstream; +using std::ifstream; + +#include +using boost::graph_traits; +using namespace NEWMAT; +/** + * @param allScans all laser scans + * @param first index of first laser scan in the loop + * @param last indes of last laser scan in the loop + * @param g graph for loop optimization + */ +void loopToro::close_loop(const vector &allScans, int first, int last, graph_t &g) +{ + int n = num_vertices(g); + Matrix C(6, 6); + double invers[16], rela[16], rPos[3], rPosTheta[3], rPosQuat[4]; + ofstream outFile("toro.graph"); + + for(int i = 0; i < n; i++) { + QuatRPYEuler(allScans[i]->get_rPosQuat(), rPosTheta); + outFile << "VERTEX3" << " " << i << + " " << (allScans[i]->get_rPos()[0]/100) << + " " << (allScans[i]->get_rPos()[1]/100) << + " " << (allScans[i]->get_rPos()[2]/100) << + " " << rPosTheta[0] << + " " << rPosTheta[1] << + " " << rPosTheta[2] << "\n"; + } + + graph_traits ::edge_iterator ei = edges(g).first; + int num_arcs = num_edges(g); + int li = 0; +#ifdef _OPENMP +#pragma omp parallel for firstprivate(li, ei) private(invers, rela, rPos, rPosTheta, rPosQuat, C) +#endif + for(int i = 0; i < num_arcs; i++) { + for(;i > li; li++, ei++) ; + for(;i < li; li--, ei--) ; + int from = source(*ei, g); + int to = target(*ei, g); + + M4inv(allScans[from]->get_transMat(), invers); + MMult(invers, allScans[to]->get_transMat(), rela); + Matrix4ToQuat(rela, rPosQuat, rPos); + QuatRPYEuler(rPosQuat, rPosTheta); + + lum6DEuler::covarianceEuler(allScans[from], allScans[to], my_icp6D->get_nns_method(), my_icp6D->get_rnd(), my_icp6D->get_max_dist_match2(), &C); + +#ifdef _OPENMP +#pragma omp critical +#endif + { + outFile << "EDGE3" << " " << from << " " << to << " " << + (rPos[0]/100) << " " << + (rPos[1]/100) << " " << + (rPos[2]/100) << " " << + rPosTheta[0] << " " << + rPosTheta[1] << " " << + rPosTheta[2] << " "; + for(int i = 1; i < 7; i++) + for(int j = i; j < 7; j++) + outFile << C(i, j) << " "; + outFile << endl; + } + } + + vector meta_start; + for(int i = first - 2; i <= first + 2; i++) { + if(i >= 0) { + meta_start.push_back(allScans[i]); + } + } + MetaScan *start = new MetaScan(meta_start, false, false); + + //static size of metascan + int offset_last_start = 2; + int offset_last_end = 0; + + vector meta_end; + for(int i = last - offset_last_start; i <= last + offset_last_end && i < n; i++) { + meta_end.push_back(allScans[i]); + } + MetaScan *end = new MetaScan(meta_end, false, false); + + my_icp6D->match(start, end); + + delete start; + delete end; + + M4inv(allScans[last]->get_transMat(), invers); + MMult(invers, allScans[first]->get_transMat(), rela); + Matrix4ToQuat(rela, rPosQuat, rPos); + QuatRPYEuler(rPosQuat, rPosTheta); + + lum6DEuler::covarianceEuler(allScans[first], allScans[last], my_icp6D->get_nns_method(), my_icp6D->get_rnd(), my_icp6D->get_max_dist_match2(), &C); + + outFile << "EDGE3" << " " << last << " " << first << " " << + (rPos[0]/100) << " " << + (rPos[1]/100) << " " << + (rPos[2]/100) << " " << + rPosTheta[0] << " " << + rPosTheta[1] << " " << + rPosTheta[2] << " " << + C(1, 1) << " " << C(1, 2) << " " << C(1, 3) << " " << C(1, 4) << " " << C(1, 5) << " " << C(1, 6) << " " << + C(1, 1) << " " << C(1, 2) << " " << C(1, 3) << " " << C(1, 4) << " " << C(1, 5) << " " << + C(1, 1) << " " << C(1, 2) << " " << C(1, 3) << " " << C(1, 4) << " " << + C(1, 1) << " " << C(1, 2) << " " << C(1, 3) << " " << + C(1, 1) << " " << C(1, 2) << " " << + C(1, 1) << " " << "\n"; + outFile.close(); + + system("sort toro.graph > toro2.graph && mv toro2.graph toro.graph && ./bin/toro3d -i 300 toro.graph"); + + ifstream inFile("toro-treeopt-final.graph"); + string tag; + int id; + double dd; + double rPosN[3], rPosThetaN[3]; + while(inFile) { + inFile >> tag; + if(tag == "VERTEX3") { + inFile >> id; + if(id == n-1) { + inFile >> rPosN[0] >> rPosN[1] >> rPosN[2] >> rPosThetaN[0] >> rPosThetaN[1] >> rPosThetaN[2]; + rPosN[0] *= 100; + rPosN[1] *= 100; + rPosN[2] *= 100; + } else { + inFile >> rPos[0] >> rPos[1] >> rPos[2] >> rPosTheta[0] >> rPosTheta[1] >> rPosTheta[2]; + rPos[0] *= 100; + rPos[1] *= 100; + rPos[2] *= 100; + RPYEulerQuat(rPosTheta, rPosQuat); + if(id != 0) { + allScans[id]->transformToQuat(rPos, rPosQuat, Scan::LOOPTORO, 1); + } + } + } + else if(tag == "EDGE3") { + inFile >> id >> id; + for(int i=0; i < 22; i++) { + inFile >> dd; + } + } + } + RPYEulerQuat(rPosThetaN, rPosQuat); + allScans[n-1]->transformToQuat(rPosN, rPosQuat, Scan::LOOPTORO, 2); + inFile.close(); +} diff --git a/src/slam6d/lum6Deuler.cc b/src/slam6d/lum6Deuler.cc new file mode 100644 index 0000000..f7c4741 --- /dev/null +++ b/src/slam6d/lum6Deuler.cc @@ -0,0 +1,458 @@ +/* + * lum6Deuler implementation + * + * Copyright (C) Dorit Borrmann, Jan Elseberg, Andreas Nuechter, Kai Lingemann + * + * Released under the GPL version 3. + * + */ + +/** + * @file + * @brief The implementation of globally consistent scan matching algorithm + * + * @author Dorit Borrman. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Jan Elseberg. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + * + * A description of the algorithms implemented here can be found in the following paper + * (ras2007.pdf): + * + * Dorit Borrmann, Jan Elseberg, Kai Lingemann, Andreas Nuechter, and Joachim Hertzberg. + * Globally consistent 3D mapping with scan matching. Journal of Robotics and Autonomous + * Systems (JRAS), Elsevier Science, Volume 56, Issue 2, ISSN 0921-8890, pages 130 - 142, + * February 2008 + */ + +#ifdef _MSC_VER +#if !defined _OPENMP && defined OPENMP +#define _OPENMP +#endif +#endif + +#include "slam6d/lum6Deuler.h" +#include "sparse/csparse.h" + +#include +#include +using std::ofstream; +using std::cerr; +#include "slam6d/globals.icc" + +using namespace NEWMAT; +/** + * Constructor + * + * @param my_icp6Dminimizer Pointer to ICP minimization functor + * @param mdm Maximum PtoP distance to which point pairs are collected for ICP + * @param max_dist_match Maximum PtoP distance to which point pairs are collected for LUM + * @param max_num_iterations Maximal number of iterations for ICP + * @param quiet Suspesses all output to std out + * @param meta Indicates if metascan matching has to be used + * @param rnd Indicates if randomization has to be used + * @param eP Extrapolate odometry? + * @param anim Animate which frames? + * @param epsilonICP Termination criterion for ICP + * @param nns_method Specifies which NNS method to use + * @param epsilonLUM Termination criterion for LUM + */ +lum6DEuler::lum6DEuler(icp6Dminimizer *my_icp6Dminimizer, + double mdm, double max_dist_match, + int max_num_iterations, bool quiet, bool meta, int rnd, + bool eP, int anim, double epsilonICP, int nns_method, double epsilonLUM) + : graphSlam6D(my_icp6Dminimizer, + mdm, max_dist_match, + max_num_iterations, quiet, meta, rnd, + eP, anim, epsilonICP, nns_method, epsilonLUM) +{ } + + +/** + * Destructor + */ +lum6DEuler::~lum6DEuler() +{ + delete my_icp; +} + + +/** + * This function calculates the inverse covariances Cij and the Vector Cij*Dij for + * two scans by finding pointpairs. + * + * @param first pointer to the first scan of the link + * @param second pointer to the second scan of the link + * @param nns_method Specifies which NNS method to use + * @param rnd shall we use randomization for computing the point pairs? + * @param max_dist_match2 maximal distance allowed for point pairs + * @param C pointer to the inverse of the covariance matrix Cij + * @param CD pointer to the vector Cij*Dij + */ +void lum6DEuler::covarianceEuler(Scan *first, Scan *second, + int nns_method, int rnd, double max_dist_match2, + Matrix *C, ColumnVector *CD) +{ + // x,y,z denote the coordinates of uk (Here averaged over ak and bk) + // sx,sy,sz are the sums of their respective coordinates of uk over each paint pair + // xpy,xpz,ypz are the sums over x*x + y*y ,x*x + z*z and y*y + z*z respectively over each point pair + // xy,yz,xz are the sums over each respective multiplication + // dx,dy,dz are the deltas in each coordinate of a point pair + // ss is the estimation of the covariance of sensing error + double x, y, z, sx, sy, sz, xy, yz, xz, ypz, xpz, xpy, dx, dy, dz, ss; + + // D is needed to calculate the estimation of the covariance s + ColumnVector D(6); + // Almost Cij*Dij + ColumnVector MZ(6); + // Almost the covarianve + Matrix MM(6,6); + // A set of point pairs + vector uk; + // A point pair + Point ak, bk; + // number of pairs in a set + int m; + +#ifdef _OPENMP + int thread_num = omp_get_thread_num(); +#else + int thread_num = 0; +#endif + + double dummy_centroid_m[3]; + double dummy_centroid_d[3]; + double dummy_sum; + + Scan::getPtPairs(&uk, first, second, thread_num, + rnd, max_dist_match2, dummy_sum, dummy_centroid_m, dummy_centroid_d); + + m = uk.size(); + + MZ = 0.0; + MM = 0.0; + sx = sy = sz = xy = yz = xz = ypz = xpz = xpy = ss = 0.0; + + if (m > 2) { + // for each point pair + for(int j = 0; j < m; j++){ + ak = uk[j].p1; + bk = uk[j].p2; + + // Some temporary values + x = (ak.x + bk.x)/2.0; + y = (ak.y + bk.y)/2.0; + z = (ak.z + bk.z)/2.0; + dx = ak.x - bk.x; + dy = ak.y - bk.y; + dz = ak.z - bk.z; + + // Sum up all necessary values to construct MM + sx += x; + sy += y; + sz += z; + + xpy += x*x + y*y; + xpz += x*x + z*z; + ypz += y*y + z*z; + + xy += x*y; + xz += x*z; + yz += y*z; + + // Sum up each part of MZ + MZ(1) += dx; + MZ(2) += dy; + MZ(3) += dz; + MZ(4) += -z * dy + y * dz; + MZ(5) += -y * dx + x * dy; + MZ(6) += z * dx - x * dz; + } + // Now construct the symmetrical matrix MM + MM(1,1) = MM(2,2) = MM(3,3) = m; + MM(4,4) = ypz; + MM(5,5) = xpy; + MM(6,6) = xpz; + + MM(1,5) = MM(5,1) = -sy; + MM(1,6) = MM(6,1) = sz; + MM(2,4) = MM(4,2) = -sz; + MM(2,5) = MM(5,2) = sx; + MM(3,4) = MM(4,3) = sy; + MM(3,6) = MM(6,3) = -sx; + + MM(4,5) = MM(5,4) = -xz; + MM(4,6) = MM(6,4) = -xy; + MM(5,6) = MM(6,5) = -yz; + + // Calculate the pose difference estimation + D = MM.i() * MZ ; + + // Again going through all point pairs to faster calculate s. + // This cannot be done earlier as we need D, and therefore MM and MZ to do this + for(int j = 0; j < m; j++){ + ak = uk[j].p1; + bk = uk[j].p2; + + x = (ak.x + bk.x) / 2.0; + y = (ak.y + bk.y) / 2.0; + z = (ak.z + bk.z) / 2.0; + + ss += sqr(ak.x - bk.x - (D(1) - y * D(5) + z * D(6))) + + sqr(ak.y - bk.y - (D(2) - z * D(4) + x * D(5))) + + sqr(ak.z - bk.z - (D(3) + y * D(4) - x * D(6))); + } + + ss = ss / (2*m - 3); + // for dealing with numerical instabilities when identical point clouds are used in matching + if (ss < 0.0000000000001) { + ss = 0.0; + MM(1,1) = MM(1,2) = MM(1,3) = 0.0; + MM(2,1) = MM(2,2) = MM(2,3) = 0.0; + MM(3,1) = MM(3,2) = MM(3,3) = 0.0; + MZ(6) = MZ(1) = MZ(2) = 0.0; + MZ(3) = MZ(4) = MZ(5) = 0.0; + *C = 0; + if(CD) + *CD = 0; + return; + } + ss = 1.0 / ss; + + if (CD) { + *CD = MZ * ss; + } + *C = MM * ss; + + } else { + + // This case should not occur + ss = 0.0; + MM(1,1) = MM(1,2) = MM(1,3) = 0.0; + MM(2,1) = MM(2,2) = MM(2,3) = 0.0; + MM(3,1) = MM(3,2) = MM(3,3) = 0.0; + MZ(6) = MZ(1) = MZ(2) = 0.0; + MZ(3) = MZ(4) = MZ(5) = 0.0; + *C = 0; + if(CD) + *CD = 0; + cerr << "Error calculating covariance matrix" << endl; + + } +} + +/** + * A function to fill the linear system G X = B. + * + * @param gr the Graph is used to map the given covariances C and CD matrices to the correct link + * @param CD A vector containing all covariances C multiplied with their respective estimations D + * @param C A vector containing all covariances C of the pose difference estimations D + * @param G The matrix G specifying the linear equation + * @param B The vector B + */ +void lum6DEuler::FillGB3D(Graph *gr, GraphMatrix* G, ColumnVector* B,vector allScans ) +{ +#ifdef _OPENMP +#pragma omp parallel for schedule(dynamic) +#endif + for(int i = 0; i < gr->getNrLinks(); i++){ + int a = gr->getLink(i,0) - 1; + int b = gr->getLink(i,1) - 1; + Scan *FirstScan = allScans[gr->getLink(i,0)]; + Scan *SecondScan = allScans[gr->getLink(i,1)]; + + // cout << "i " << i << " a: " << a << " b: " << b << endl; + + Matrix Cab(6,6); + ColumnVector CDab(6); + covarianceEuler(FirstScan, SecondScan, nns_method, (int)my_icp->get_rnd(), + (int)max_dist_match2_LUM, &Cab, &CDab); + +#pragma omp critical + { + if(a >= 0){ + B->Rows(a*6+1,a*6+6) += CDab; + G->add(a, a, Cab); + } + if(b >= 0){ + B->Rows(b*6+1,b*6+6) -= CDab; + G->add(b, b, Cab); + } + if(a >= 0 && b >= 0) { + G->subtract(a, b, Cab); + G->subtract(b, a, Cab); + } + + } + } + +// G->print(); +} + +/** + * This function is used to match a set of laser scans with any minimally + * connected Graph, using the globally consistent LUM-algorithm in 3D. + * + * @param gr Some Graph with no real subgraphs except for itself + * @param allScans Contains all laser scans + * @param nrIt The number of iterations the LUM-algorithm will run + * @return Euclidian distance of all pose shifts + */ +double lum6DEuler::doGraphSlam6D(Graph gr, vector allScans, int nrIt) +{ +#ifdef WRITE_GRAPH_NET + // for debug only: + static int d = 0; + cout << "writing graph.dat ....................................." << endl; + d++; + string gfilename = "graph_" + to_string(d, 3) + ".net"; + ofstream out(gfilename.c_str()); + for (int i=0; i < gr.getNrLinks(); i++) { + int from = gr.getLink(i,0); + int to = gr.getLink(i,1); + // shouldn't be necessary, just in case a (out of date) graph file is loaded: + if (from < (int)allScans.size() && to < (int)allScans.size()) { + out << allScans[from]->get_rPos()[0] << " " + << allScans[from]->get_rPos()[1] << " " + << allScans[from]->get_rPos()[2] << endl + << allScans[to ]->get_rPos()[0] << " " + << allScans[to ]->get_rPos()[1] << " " + << allScans[to ]->get_rPos()[2] << endl << endl; + } + } + out.close(); + out.clear(); +#endif + + // the IdentityMatrix to transform some Scans with + double id[16]; + M4identity(id); + + double ret = DBL_MAX; + + for(int iteration = 0; + iteration < nrIt && ret > epsilonLUM; + iteration++) { + + if (nrIt > 1) cout << "Iteration " << iteration << endl; + + + // * Calculate X and CX from all Dij and Cij + int n = (gr.getNrScans() - 1); + + // Construct the linear equation system.. + GraphMatrix *G = new GraphMatrix(); + ColumnVector B(6*n); + B = 0.0; + // ...fill G and B... + FillGB3D(&gr, G, &B, allScans); + // ...and solve it + ColumnVector X = solveSparseCholesky(G, B); + + delete G; + + //cout << "X done!" << endl; + + double sum_position_diff = 0.0; + + // Start with second Scan + int loop_end = gr.getNrScans(); +#ifdef _OPENMP +#pragma omp parallel for reduction(+:sum_position_diff) +#endif + for(int i = 1; i < loop_end; i++){ + + // Now update the Poses + Matrix Ha = IdentityMatrix(6); + + double xa = allScans[i]->get_rPos()[0]; + double ya = allScans[i]->get_rPos()[1]; + double za = allScans[i]->get_rPos()[2]; + + double tx = allScans[i]->get_rPosTheta()[0]; + double ty = allScans[i]->get_rPosTheta()[1]; + + double ctx = cos(tx); + double stx = sin(tx); + double cty = cos(ty); + double sty = sin(ty); + + // Fill Ha + Ha.element(0,4) = -za*ctx+ya*stx; + Ha.element(0,5) = ya*cty*ctx+za*stx*cty; + + Ha.element(1,3) = za; + Ha.element(1,4) = -xa*stx; + Ha.element(1,5) = -xa*ctx*cty+za*sty; + + + Ha.element(2,3) = -ya; + Ha.element(2,4) = xa*ctx; + Ha.element(2,5) = -xa*cty*stx-ya*sty; + + Ha.element(3,5) = sty; + + Ha.element(4,4) = stx; + Ha.element(4,5) = ctx*cty; + + Ha.element(5,4) = ctx; + Ha.element(5,5) = -stx*cty; + // Invert it + Ha = Ha.i(); + + // Get pose estimate + ColumnVector Xtmp = X.Rows((i-1)*6+1,(i-1)*6+6); + + // Correct pose estimate + ColumnVector result = Ha * Xtmp; + + if(!quiet) { + cout << "Old pose estimate, Scan " << i << endl; + cout << "x: " << allScans[i]->get_rPos()[0] + << " y: " << allScans[i]->get_rPos()[1] + << " z: " << allScans[i]->get_rPos()[2] + << " tx: " << allScans[i]->get_rPosTheta()[0] + << " ty: " << allScans[i]->get_rPosTheta()[1] + << " tz: " << allScans[i]->get_rPosTheta()[2] + << endl; + } + + double rPos[3]; + double rPosTheta[3]; + + // calculate the updated Pose + for (int k = 0; k < 3; k++) { + rPos[k] = allScans[i]->get_rPos()[k] - result.element(k); + rPosTheta[k] = allScans[i]->get_rPosTheta()[k] - result.element(k+3); + } + + // Update the Pose + if (i != gr.getNrScans() - 1) { + allScans[i]->transformToEuler(rPos, rPosTheta, Scan::LUM, 1); + } else { + allScans[i]->transformToEuler(rPos, rPosTheta, Scan::LUM, 2); + } + + if(!quiet) { + cout << "x: " << allScans[i]->get_rPos()[0] + << " y: " << allScans[i]->get_rPos()[1] + << " z: " << allScans[i]->get_rPos()[2] + << " tx: " << allScans[i]->get_rPosTheta()[0] + << " ty: " << allScans[i]->get_rPosTheta()[1] + << " tz: " << allScans[i]->get_rPosTheta()[2] << endl << endl; + } + + double x[3]; + x[0] = result.element(0); + x[1] = result.element(1); + x[2] = result.element(2); + sum_position_diff += Len(x); + } + cout << "Sum of Position differences = " << sum_position_diff << endl; + ret = (sum_position_diff / (double)gr.getNrScans()); + } + + return ret; +} + + diff --git a/src/slam6d/lum6Dquat.cc b/src/slam6d/lum6Dquat.cc new file mode 100644 index 0000000..442c08c --- /dev/null +++ b/src/slam6d/lum6Dquat.cc @@ -0,0 +1,480 @@ +/* + * lum6Dquat implementation + * + * Copyright (C) Andreas Nuechter, Jan Elseberg + * + * Released under the GPL version 3. + * + */ + +/** + * @file + * @brief The implementation of globally consistent scan matching algorithm + * @author Jan Elseberg. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#ifdef _MSC_VER +#if !defined _OPENMP && defined OPENMP +#define _OPENMP +#endif +#endif + +#include "slam6d/lum6Dquat.h" +#include "sparse/csparse.h" + +#include +#include +using std::ofstream; +using std::cerr; +#include "slam6d/globals.icc" + +using namespace NEWMAT; +/** + * Constructor + * + * @param my_icp6Dminimizer Pointer to ICP minimization functor + * @param mdm Maximum PtoP distance to which point pairs are collected for ICP + * @param max_dist_match Maximum PtoP distance to which point pairs are collected for LUM + * @param max_num_iterations Maximal number of iterations for ICP + * @param quiet Suspesses all output to std out + * @param meta Indicates if metascan matching has to be used + * @param rnd Indicates if randomization has to be used + * @param eP Extrapolate odometry? + * @param anim Animate which frames? + * @param epsilonICP Termination criterion for ICP + * @param nns_method Specifies which NNS method is used + * @param epsilonLUM Termination criterion for LUM + */ +lum6DQuat::lum6DQuat(icp6Dminimizer *my_icp6Dminimizer, + double mdm, double max_dist_match, + int max_num_iterations, bool quiet, bool meta, int rnd, + bool eP, int anim, double epsilonICP, int nns_method, double epsilonLUM) + : graphSlam6D(my_icp6Dminimizer, + mdm, max_dist_match, + max_num_iterations, quiet, meta, rnd, + eP, anim, epsilonICP, nns_method, epsilonLUM) +{ } + + +/** + * Destructor + */ +lum6DQuat::~lum6DQuat() +{ + delete my_icp; +} + + +/** + * This function calculates the inverse covariances Cij and the Vector Cij*Dij for + * two scans by finding pointpairs. + * + * @param first pointer to the first scan of the link + * @param second pointer to the second scan of the link + * @param nns_method Specifies which NNS method is used + * @param rnd shall we use randomization for computing the point pairs? + * @param max_dist_match2 maximal distance allowed for point pairs + * @param C pointer to the inverse of the covariance matrix Cij + * @param CD pointer to the vector Cij*Dij + */ +void lum6DQuat::covarianceQuat(Scan *first, Scan *second, + int nns_method, int rnd, double max_dist_match2, + Matrix *C, ColumnVector *CD) +{ + // x,y,z denote the coordinates of uk (Here averaged over ak and bk) + // sx,sy,sz are the sums of their respective coordinates of uk over each paint pair + // xpy,xpz,ypz are the sums over x*x + y*y ,x*x + z*z and y*y + z*z respectively over each point pair + // xy,yz,xz are the sums over each respective multiplication + // dx,dy,dz are the deltas in each coordinate of a point pair + // ss is the estimation of the covariance of sensing error + double x, y, z, sx, sy, sz, xy, yz, xz, ypz, xpz, xpy, dx, dy, dz, ss, xpypz; + + // D is needed to calculate the estimation of the covariance s + ColumnVector D(7); + // Almost Cij*Dij + ColumnVector MZ(7); + // Almost the covarianve + Matrix MM(7,7); + // A set of point pairs + vector uk; + // A point pair + Point ak, bk; + // number of pairs in a set + int m; + +#ifdef _OPENMP + int thread_num = omp_get_thread_num(); +#else + int thread_num = 0; +#endif + + double dummy_centroid_m[3]; + double dummy_centroid_d[3]; + double dummy_sum; + + Scan::getPtPairs(&uk, first, second, thread_num, + rnd, max_dist_match2, dummy_sum, dummy_centroid_m, dummy_centroid_d); + + m = uk.size(); + + MZ = 0.0; + MM = 0.0; + sx = sy = sz = xy = yz = xz = ypz = xpz = xpy = xpypz = ss = 0.0; + + if (m > 2) { + // for each point pair + for(int j = 0; j < m; j++){ + ak = uk[j].p1; + bk = uk[j].p2; + + // Some temporary values + x = (ak.x + bk.x)/2.0; + y = (ak.y + bk.y)/2.0; + z = (ak.z + bk.z)/2.0; + dx = ak.x - bk.x; + dy = ak.y - bk.y; + dz = ak.z - bk.z; + + // Sum up all necessary values to construct MM + sx += x; + sy += y; + sz += z; + + xpy += x*x + y*y; + xpz += x*x + z*z; + ypz += y*y + z*z; + xpypz += x*x + y*y + z*z; + + xy += x*y; + xz += x*z; + yz += y*z; + + // Sum up each part of MZ + MZ(1) += dx; + MZ(2) += dy; + MZ(3) += dz; + MZ(4) += x * dx + y * dy + z * dz; + MZ(5) += z * dy - y * dz; + MZ(6) += x * dz - z * dx; + MZ(7) += y * dx - x * dy; + } + // Now construct the symmetrical matrix MM + MM(1,1) = MM(2,2) = MM(3,3) = m; + + MM(4,4) = xpypz; + MM(5,5) = ypz; + MM(6,6) = xpz; + MM(7,7) = xpy; + + MM(1,4) = MM(4,1) = sx; + MM(1,6) = MM(6,1) = -sz; + MM(1,7) = MM(7,1) = sy; + + MM(2,4) = MM(4,2) = sy; + MM(2,5) = MM(5,2) = sz; + MM(2,7) = MM(7,2) = -sx; + + MM(3,4) = MM(4,3) = sz; + MM(3,5) = MM(5,3) = -sy; + MM(3,6) = MM(6,3) = sx; + + MM(5,6) = MM(6,5) = -xy; + MM(5,7) = MM(7,5) = -xz; + MM(6,7) = MM(7,6) = -yz; + + // Calculate the pose difference estimation + D = MM.i() * MZ ; + + // Again going through all point pairs to faster calculate s. + // This cannot be done earlier as we need D, and therefore MM and MZ to do this + for(int j = 0; j < m; j++){ + ak = uk[j].p1; + bk = uk[j].p2; + + x = (ak.x + bk.x) / 2.0; + y = (ak.y + bk.y) / 2.0; + z = (ak.z + bk.z) / 2.0; + + ss += sqr(ak.x - bk.x - (D(1) + x * D(4) - z * D(6) + y * D(7))) + + sqr(ak.y - bk.y - (D(2) + y * D(4) + z * D(5) - x * D(7))) + + sqr(ak.z - bk.z - (D(3) + z * D(4) - y * D(5) + x * D(6))); + } + + ss = ss / (2*m - 3); + ss = 1.0 / ss; + + if (CD) { + *CD = MZ * ss; + } + *C = MM * ss; + + } else { + + // This case should not occur + ss = 0.0; + MM(1,1) = MM(1,2) = MM(1,3) = 0.0; + MM(2,1) = MM(2,2) = MM(2,3) = 0.0; + MM(3,1) = MM(3,2) = MM(3,3) = 0.0; + MZ(6) = MZ(1) = MZ(2) = MZ(7) = 0.0; + MZ(3) = MZ(4) = MZ(5) = 0.0; + *C = 0; + if(CD) + *CD = 0; + cerr << "Error calculating covariance matrix" << endl; + + } +} + +/** + * A function to fill the linear system G X = B. + * + * @param gr the Graph is used to map the given covariances C and CD matrices to the correct link + * @param CD A vector containing all covariances C multiplied with their respective estimations D + * @param C A vector containing all covariances C of the pose difference estimations D + * @param G The matrix G specifying the linear equation + * @param B The vector B + */ +void lum6DQuat::FillGB3D(Graph *gr,Matrix* G, ColumnVector* B, vector allScans) +{ +#ifdef _OPENMP +#pragma omp parallel for +#endif + for(int i = 0; i < gr->getNrLinks(); i++){ + int a = gr->getLink(i,0) - 1; + int b = gr->getLink(i,1) - 1; + Scan *FirstScan = allScans[gr->getLink(i,0)]; + Scan *SecondScan = allScans[gr->getLink(i,1)]; + + // cout << "***i " << i << " a: " << a << " b: " << b << endl; + + Matrix Cab; + ColumnVector CDab; + covarianceQuat(FirstScan, SecondScan, nns_method, (int)my_icp->get_rnd(), + (int)max_dist_match2_LUM, &Cab, &CDab); + + if(a >= 0){ + B->Rows(a*7+1,a*7+7) += CDab; + G->SubMatrix(a*7+1,a*7+7,a*7+1,a*7+7) += Cab; + } + if(b >= 0){ + B->Rows(b*7+1,b*7+7) -= CDab; + G->SubMatrix(b*7+1,b*7+7,b*7+1,b*7+7) += Cab; + } + if(a >= 0 && b >= 0) { + G->SubMatrix(a*7+1,a*7+7,b*7+1,b*7+7) = -Cab; + G->SubMatrix(b*7+1,b*7+7,a*7+1,a*7+7) = -Cab; + } + } +} + +/** + * This function is used to match a set of laser scans with any minimally + * connected Graph, using the globally consistent LUM-algorithm in 3D. + * + * @param gr Some Graph with no real subgraphs except for itself + * @param allScans Contains all laser scans + * @param nrIt The number of iterations the LUM-algorithm will run + * @return Euclidian distance of all pose shifts + */ +double lum6DQuat::doGraphSlam6D(Graph gr, vector allScans, int nrIt) +{ +#ifdef WRITE_GRAPH_NET + // for debug only: + static int d = 0; + cout << "writing graph.dat ....................................." << endl; + d++; + string gfilename = "graph_" + to_string(d, 3) + ".net"; + ofstream out(gfilename.c_str()); + for (int i=0; i < gr.getNrLinks(); i++) { + int from = gr.getLink(i,0); + int to = gr.getLink(i,1); + // shouldn't be necessary, just in case a (out of date) graph file is loaded: + if (from < (int)allScans.size() && to < (int)allScans.size()) { + out << allScans[from]->get_rPos()[0] << " " + << allScans[from]->get_rPos()[1] << " " + << allScans[from]->get_rPos()[2] << endl + << allScans[to ]->get_rPos()[0] << " " + << allScans[to ]->get_rPos()[1] << " " + << allScans[to ]->get_rPos()[2] << endl << endl; + } + } + out.close(); + out.clear(); +#endif + + // the IdentityMatrix to transform some Scans with + double id[16]; + M4identity(id); + + double ret = DBL_MAX; + + for(int iteration = 0; + iteration < nrIt && ret > epsilonLUM; + iteration++) { + + if (nrIt > 1) cout << "Iteration " << iteration << endl; + + + // * Calculate X and CX from all Dij and Cij + int n = (gr.getNrScans() - 1); + + // Construct the linear equation system.. + Matrix G(7*n,7*n); + ColumnVector B(7*n); + G = 0.0; + B = 0.0; + // ...fill G and B... + FillGB3D(&gr, &G, &B, allScans); + // ...and solve it + ColumnVector X = solveSparseCholesky(G, B); + + //cout << "X done!" << endl; + + double sum_position_diff = 0.0; + + // Start with second Scan + int loop_end = gr.getNrScans(); +#ifdef _OPENMP +#pragma omp parallel for reduction(+:sum_position_diff) +#endif + for(int i = 1; i < loop_end; i++){ + + // Now update the Poses + Matrix Ha = IdentityMatrix(7); + + double xa = allScans[i]->get_rPos()[0]; + double ya = allScans[i]->get_rPos()[1]; + double za = allScans[i]->get_rPos()[2]; + + double p = allScans[i]->get_rPosQuat()[0]; + double q = allScans[i]->get_rPosQuat()[1]; + double r = allScans[i]->get_rPosQuat()[2]; + double s = allScans[i]->get_rPosQuat()[3]; + + double px = p * xa; + double py = p * ya; + double pz = p * za; + + double qx = q * xa; + double qy = q * ya; + double qz = q * za; + + double rx = r * xa; + double ry = r * ya; + double rz = r * za; + + double sx = s * xa; + double sy = s * ya; + double sz = s * za; + + // Fill Ha + Ha.element(3,3) = 2 * p; + Ha.element(4,3) = 2 * q; + Ha.element(5,3) = 2 * r; + Ha.element(6,3) = 2 * s; + + Ha.element(3,4) = 2 * q; + Ha.element(4,4) = -2 * p; + Ha.element(5,4) = -2 * s; + Ha.element(6,4) = 2 * r; + + Ha.element(3,5) = 2 * r; + Ha.element(4,5) = 2 * s; + Ha.element(5,5) = -2 * p; + Ha.element(6,5) = -2 * q; + + Ha.element(3,6) = 2 * s; + Ha.element(4,6) = -2 * r; + Ha.element(5,6) = 2 * q; + Ha.element(6,6) = -2 * p; + + Ha.element(0,3) = -2 * (px + sy - rz); + Ha.element(1,3) = -2 * (-sx + py + qz); + Ha.element(2,3) = -2 * (rx - qy + pz); + + Ha.element(0,4) = -2 * (qx + ry + sz); + Ha.element(1,4) = -2 * (-rx + qy - pz); + Ha.element(2,4) = -2 * (-sx + py + qz); + + Ha.element(0,5) = -2 * (rx - qy + pz); + Ha.element(1,5) = -2 * (qx + ry + sz); + Ha.element(2,5) = -2 * (-px - sy + rz); + + Ha.element(0,6) = -2 * (sx - py - qz); + Ha.element(1,6) = -2 * (px + sy - rz); + Ha.element(2,6) = -2 * (qx + ry + sz); + + // Invert it + Ha = Ha.i(); + + // Get pose estimate + ColumnVector Xtmp = X.Rows((i-1)*7+1,(i-1)*7+7); + + // Correct pose estimate + ColumnVector result = Ha * Xtmp; + + if(!quiet) { + cout << "Old pose estimate, Scan " << i << endl; + cout << "x: " << allScans[i]->get_rPos()[0] + << " y: " << allScans[i]->get_rPos()[1] + << " z: " << allScans[i]->get_rPos()[2] + << " p: " << allScans[i]->get_rPosQuat()[0] + << " q: " << allScans[i]->get_rPosQuat()[1] + << " r: " << allScans[i]->get_rPosQuat()[2] + << " s: " << allScans[i]->get_rPosQuat()[3] + << endl; + } + + double rPos[3]; + double rPosQuat[4]; + + // calculate the updated Pose + for (int k = 0; k < 3; k++) { + rPos[k] = allScans[i]->get_rPos()[k] - result.element(k); + } + + double qtmp[4]; + qtmp[0] = result.element(3); + qtmp[1] = result.element(4); + qtmp[2] = result.element(5); + qtmp[3] = result.element(6); + + for (int k = 0; k < 4; k++) { + rPosQuat[k] = allScans[i]->get_rPosQuat()[k] - qtmp[k]; + } + + Normalize4(rPosQuat); + + // Update the Pose + if (i != gr.getNrScans() - 1) { + allScans[i]->transformToQuat(rPos, rPosQuat, Scan::LUM, 1); + } else { + allScans[i]->transformToQuat(rPos, rPosQuat, Scan::LUM, 2); + } + + if(!quiet) { + cout << "x: " << allScans[i]->get_rPos()[0] + << " y: " << allScans[i]->get_rPos()[1] + << " z: " << allScans[i]->get_rPos()[2] + << " p: " << allScans[i]->get_rPosQuat()[0] + << " q: " << allScans[i]->get_rPosQuat()[1] + << " r: " << allScans[i]->get_rPosQuat()[2] + << " s: " << allScans[i]->get_rPosQuat()[3] + << endl << endl; + } + + double x[3]; + x[0] = result.element(0); + x[1] = result.element(1); + x[2] = result.element(2); + sum_position_diff += Len(x); + } + cout << "Sum of Position differences = " << sum_position_diff << endl; + ret = (sum_position_diff / (double)gr.getNrScans()); + } + + return ret; +} + + diff --git a/src/slam6d/managedScan.cc b/src/slam6d/managedScan.cc new file mode 100644 index 0000000..d3142da --- /dev/null +++ b/src/slam6d/managedScan.cc @@ -0,0 +1,367 @@ +/* + * managedScan implementation + * + * Copyright (C) Kai Lingemann, Thomas Escher + * + * Released under the GPL version 3. + * + */ + +#include "slam6d/managedScan.h" + +#include "scanserver/clientInterface.h" +#include "slam6d/Boctree.h" +#include "slam6d/kdManaged.h" + +#ifdef WITH_METRICS +#include "slam6d/metrics.h" +#endif //WITH_METRICS + +#include +using std::stringstream; + +#include +using namespace boost::filesystem; + + + +SharedScanVector* ManagedScan::shared_scans = 0; + + + +void ManagedScan::openDirectory(const std::string& path, IOType type, int start, int end) +{ + // start the client first + try { + ClientInterface::create(); + } catch(std::runtime_error& e) { + cerr << "ClientInterface could not be created: " << e.what() << endl; + cerr << "Start the scanserver first." << endl; + exit(-1); + } + +#ifdef WITH_METRICS + Timer t = ClientMetric::read_scan_time.start(); +#endif //WITH_METRICS + + ClientInterface* client = ClientInterface::getInstance(); + shared_scans = client->readDirectory(path.c_str(), type, start, end); + + for(SharedScanVector::iterator it = shared_scans->begin(); it != shared_scans->end(); ++it) { + // add a scan with reference on the shared scan + SharedScan* shared = it->get(); + ManagedScan* scan = new ManagedScan(shared); + Scan::allScans.push_back(scan); + } + +#ifdef WITH_METRICS + ClientMetric::read_scan_time.end(t); +#endif //WITH_METRICS +} + +void ManagedScan::closeDirectory() +{ + // clean up the scan vector + for(std::vector::iterator it = Scan::allScans.begin(); it != Scan::allScans.end(); ++it) + delete *it; + allScans.clear(); + // remove the shared scan vector + ClientInterface* client = ClientInterface::getInstance(); +#ifdef WITH_METRICS + ClientInterface::getInstance()->printMetrics(); +#endif //WITH_METRICS + client->closeDirectory(shared_scans); +} + +std::size_t ManagedScan::getMemorySize() +{ + ClientInterface* client = ClientInterface::getInstance(); + return client->getCacheSize(); +} + + + +ManagedScan::ManagedScan(SharedScan* shared_scan) : + m_shared_scan(shared_scan), + m_reduced_ready(false), + m_reset_frames_on_write(true) +{ + // request pose from the shared scan + double* euler = m_shared_scan->getPose(); + rPos[0] = euler[0]; + rPos[1] = euler[1]; + rPos[2] = euler[2]; + rPosTheta[0] = euler[3]; + rPosTheta[1] = euler[4]; + rPosTheta[2] = euler[5]; + + // write original pose matrix + EulerToMatrix4(euler, &euler[3], transMatOrg); + + // initialize transform matrices from the original one, could just copy transMatOrg to transMat instead + transformMatrix(transMatOrg); + + // reset the delta align matrix to represent only the transformations after local-to-global (transMatOrg) one + M4identity(dalignxf); +} + +ManagedScan::~ManagedScan() +{ + // TODO: something to do? +} + +void ManagedScan::setRangeFilter(double max, double min) +{ + m_shared_scan->setRangeParameters(max, min); +} + +void ManagedScan::setHeightFilter(double top, double bottom) +{ + m_shared_scan->setHeightParameters(top, bottom); +} + +void ManagedScan::setReductionParameter(double voxelSize, int nrpts, PointType pointtype) +{ + Scan::setReductionParameter(voxelSize, nrpts, pointtype); + + // set parameters to invalidate old cache data + stringstream s; + s << voxelSize << " " << nrpts << " " << transMatOrg; + m_shared_scan->setReductionParameters(s.str().c_str()); +} + +void ManagedScan::setShowReductionParameter(double voxelSize, int nrpts, PointType pointtype) +{ + show_reduction_voxelSize = voxelSize; + show_reduction_nrpts = nrpts; + show_reduction_pointtype = pointtype; + + // set parameters to invalidate old cache data + stringstream s; + s << voxelSize << " " << nrpts; + m_shared_scan->setShowReductionParameters(s.str().c_str()); +} + +void ManagedScan::setOcttreeParameter(double reduction_voxelSize, double octtree_voxelSize, PointType pointtype, bool loadOct, bool saveOct) +{ + Scan::setOcttreeParameter(reduction_voxelSize, octtree_voxelSize, pointtype, loadOct, saveOct); + + // set octtree parameters to invalidate cached ones with other parameters (changing range/height is already handled) + stringstream s; + s << reduction_voxelSize << " " << octtree_voxelSize << " " << pointtype.toFlags(); + m_shared_scan->setOcttreeParameters(s.str().c_str()); +} + +DataPointer ManagedScan::get(const std::string& identifier) +{ + if(identifier == "xyz") { + return m_shared_scan->getXYZ(); + } else + if(identifier == "rgb") { + return m_shared_scan->getRGB(); + } else + if(identifier == "reflectance") { + return m_shared_scan->getReflectance(); + } else + if(identifier == "amplitude") { + return m_shared_scan->getAmplitude(); + } else + if(identifier == "type") { + return m_shared_scan->getType(); + } else + if(identifier == "deviation") { + return m_shared_scan->getDeviation(); + } else + if(identifier == "xyz reduced") { + // if this is a fresh run, initialize reduced properly via original or creating it anew + if(!m_reduced_ready) { + calcReducedOnDemand(); + } + return m_shared_scan->getXYZReduced(); + } else + if(identifier == "xyz reduced original") { + // if reduction has completed, original will exist (either from last run or created in this run) + if(!m_reduced_ready) { + calcReducedOnDemand(); + } + return m_shared_scan->getXYZReducedOriginal(); + } else + if(identifier == "xyz reduced show") { + if(m_shared_scan->getXYZReducedShow().valid()) + return m_shared_scan->getXYZReducedShow(); + calcReducedShow(); + return m_shared_scan->getXYZReducedShow(); + } else + if(identifier == "octtree") { + if(m_shared_scan->getOcttree().valid()) + return m_shared_scan->getOcttree(); + createOcttree(); + return m_shared_scan->getOcttree(); + } + { + throw runtime_error(string("Identifier '") + identifier + "' not compatible with ManagedScan::get. Upgrade SharedScan for this data field."); + } +} + +void ManagedScan::get(unsigned int types) +{ + m_shared_scan->prefetch(types); +} + +DataPointer ManagedScan::create(const std::string& identifier, unsigned int size) +{ + // map identifiers to functions in SharedScan and scale back size from bytes to number of points + if(identifier == "xyz reduced") { + return m_shared_scan->createXYZReduced(size / (3*sizeof(double))); + } else + if(identifier == "xyz reduced original") { + return m_shared_scan->createXYZReducedOriginal(size / (3*sizeof(double))); + } else + { + throw runtime_error(string("Identifier '") + identifier + "' not compatible with ManagedScan::create. Upgrade SharedScan for this data field."); + } +} + +void ManagedScan::clear(const std::string& identifier) +{ + // nothing to do here + // TODO: mark CacheObjects with a low priority for faster removal by the manager +} + +void ManagedScan::createSearchTreePrivate() +{ + switch(searchtree_nnstype) + { + case simpleKD: + kd = new KDtreeManaged(this); + break; + case BOCTree: + kd = new BOctTree(PointerArray(get("xyz reduced original")).get(), size("xyz reduced original"), 10.0, PointType(), true); + break; + case -1: + throw runtime_error("Cannot create a SearchTree without setting a type."); + default: + throw runtime_error("SearchTree type not implemented for ManagedScan"); + } + + // TODO: look into CUDA compability +} + +void ManagedScan::calcReducedOnDemandPrivate() +{ + // either copy from original or create them like BasicScan + DataXYZ xyz_orig(m_shared_scan->getXYZReducedOriginal()); + if(xyz_orig.valid()) { + // set true to inform further get("xyz reduced original") calls to get the data instead of looping calcReducedOnDemand + m_reduced_ready = true; + copyOriginalToReduced(); + } else { + // create reduced points and transform to initial position, save a copy of this for SearchTree + calcReducedPoints(); + // set true to inform further get("xyz reduced") calls to get the data instead of looping calcReducedOnDemand + m_reduced_ready = true; + transformReduced(transMatOrg); + copyReducedToOriginal(); + } +} + +void ManagedScan::calcReducedShow() +{ + // create an octtree reduction from full points + DataXYZ xyz(get("xyz")); + BOctTree* oct = new BOctTree(PointerArray(xyz).get(), xyz.size(), show_reduction_voxelSize); + + vector center; + center.clear(); + + if(show_reduction_nrpts > 0) { + if(show_reduction_nrpts == 1) { + oct->GetOctTreeRandom(center); + } else { + oct->GetOctTreeRandom(center, show_reduction_nrpts); + } + } else { + oct->GetOctTreeCenter(center); + } + + unsigned int size = center.size(); + TripleArray xyz_r(m_shared_scan->createXYZReducedShow(size)); + for(unsigned int i = 0; i < size; ++i) { + for(unsigned int j = 0; j < 3; ++j) { + xyz_r[i][j] = center[i][j]; + } + } + + delete oct; +} + +void ManagedScan::createOcttree() +{ + string scanFileName = string(m_shared_scan->getDirPath()) + "scan" + getIdentifier() + ".oct"; + BOctTree* btree = 0; + + // if loadOct is given, load the octtree under blind assumption that parameters match + if(octtree_loadOct && exists(scanFileName)) { + btree = new BOctTree(scanFileName); + } else { + if(octtree_reduction_voxelSize > 0) { // with reduction, only xyz points + TripleArray xyz_r(get("xyz reduced show")); + btree = new BOctTree(PointerArray(xyz_r).get(), xyz_r.size(), octtree_voxelSize, octtree_pointtype, true); + } else { // without reduction, xyz + attribute points + float** pts = octtree_pointtype.createPointArray(this); + unsigned int nrpts = size("xyz"); + btree = new BOctTree(pts, nrpts, octtree_voxelSize, octtree_pointtype, true); + for(unsigned int i = 0; i < nrpts; ++i) delete[] pts[i]; delete[] pts; + } + // save created octtree + if(octtree_saveOct) { + cout << "Saving octree " << scanFileName << endl; + btree->serialize(scanFileName); + } + } + + // copy tree into cache + try { + unsigned int size = btree->getMemorySize(); + unsigned char* mem_ptr = m_shared_scan->createOcttree(size).get_raw_pointer(); + new(mem_ptr) BOctTree(*btree, mem_ptr, size); + delete btree; btree = 0; + } catch(runtime_error& e) { + // delete tree if copy to cache failed + delete btree; + throw e; + } +} + + +unsigned int ManagedScan::readFrames() +{ + // automatically read on getFrames + return m_shared_scan->getFrames().size(); +} + +void ManagedScan::saveFrames() +{ + m_shared_scan->saveFrames(); +} + +unsigned int ManagedScan::getFrameCount() +{ + return m_shared_scan->getFrames().size(); +} + +void ManagedScan::getFrame(unsigned int i, const double*& pose_matrix, AlgoType& type) +{ + const Frame& frame(m_shared_scan->getFrames().at(i)); + pose_matrix = frame.transformation; + type = static_cast(frame.type); +} + +void ManagedScan::addFrame(AlgoType type) +{ + if(m_reset_frames_on_write) { + m_shared_scan->clearFrames(); + m_reset_frames_on_write = false; + } + m_shared_scan->addFrame(transMat, static_cast(type)); +} diff --git a/src/slam6d/match_with_ground_truth.cc b/src/slam6d/match_with_ground_truth.cc new file mode 100644 index 0000000..d15e69d --- /dev/null +++ b/src/slam6d/match_with_ground_truth.cc @@ -0,0 +1,210 @@ +/* + * match_with_ground_truth implementation + * + * Copyright (C) Andreas Nuechter, Kai Lingemann, Jochen Sprickerhof + * + * Released under the GPL version 3. + * + */ + +/** + * @file + * @brief Main programm for matching registered 3D scans against a + * ground_truth_path + * + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Andreas Nuechter. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include +using std::string; +#include +using std::cout; +using std::cerr; +using std::endl; +#include +using std::ifstream; +using std::ofstream; +#include +using std::vector; +#include +using std::exception; + +#include "globals.icc" +#include "ptpair.h" +#include "icp6Dapx.h" +#include "icp6Dsvd.h" +#include "icp6Dquat.h" + +#ifndef _MSC_VER +#include +#else +#include "..\Visual_Studio_Projects\6D_SLAM\XGetopt.h" +#endif + +/** + * Explains the usage of this program's command line parameters + */ +void usage(char* prog) +{ + const string bold("\033[1m"); + const string normal("\033[m"); + + cout << "to do" << endl; + + exit(1); +} + +int parseArgs(int argc, char **argv, string &dir, int &mni, + int &start, int &end, int &algo, bool &quiet, bool &veryQuiet) +{ + + int c; + // from unistd.h: + extern char *optarg; + extern int optind; + + /* options descriptor */ + // 0: no arguments, 1: required argument, 2: optional argument + static struct option longopts[] = { + { "algo", required_argument, 0, 'a' }, + { "iter", required_argument, 0, 'i' }, + { "start", required_argument, 0, 's' }, + { "end", required_argument, 0, 'e' }, + { 0, 0, 0, 0} // needed, cf. getopt.h + }; + + cout << endl; + while ((c = getopt_long(argc, argv, "a:i:s:e:qQ", longopts, NULL)) != -1) { + switch (c) + { + case 'a': + algo = atoi(optarg); + if ((algo < 0) || (algo > 2)) { cerr << "Error: Algorithm not available.\n"; exit(1); } + break; + case 's': + start = atoi(optarg); + if (start < 0) { cerr << "Error: Cannot start at a negative scan number.\n"; exit(1); } + break; + case 'e': + end = atoi(optarg); + if (end < 0) { cerr << "Error: Cannot end at a negative scan number.\n"; exit(1); } + if (end < start) { cerr << "Error: cannot be smaller than .\n"; exit(1); } + break; + case 'i': + mni = atoi(optarg); + break; + case 'q': + quiet = true; + break; + case 'Q': + quiet = veryQuiet = true; + break; + default: + abort(); + } + } + if (optind != argc-1) { + cerr << "\n*** Directory missing ***" << endl; + usage(argv[0]); + } + dir = argv[optind]; + +} + +int main(int argc, char **argv) +{ + if (argc <= 1) { + usage(argv[0]); + } + + string dir; + int mni = 50; + int start = 0, end = -1; + bool quiet = false; + bool veryQuiet = false; + int algo = 0; + + parseArgs(argc, argv, dir, mni, start, end, algo, quiet, veryQuiet); + + string groundTruthFileName = dir + "position_sync_interpol.dat"; + ifstream gtruth_in(groundTruthFileName.c_str()); + if (!gtruth_in.good()) { + cerr << "Cannot open " << groundTruthFileName << endl; + exit(-1); + } + + vector pairs; + + for (int i = 0; i < end; i++) { + // read position from ground truth file + double gtruthPos[3]; + double dummy; + gtruth_in >> dummy >> gtruthPos[2] >> gtruthPos[0] >> gtruthPos[1] + >> dummy >> dummy >> dummy; + + if (i < start) continue; + + for (unsigned int j = 0; j < 3; j++) gtruthPos[j] *= 0.1; + + string frameFileName = dir + "scan" + to_string(i,3) + ".frames"; + + cout << "Processing File " << frameFileName << endl; + + ifstream frame_in(frameFileName.c_str()); + if (!frame_in.good()) { + cerr << "Cannot open " << frameFileName << endl; + exit(-1); + } + double transMat[16]; + int type; + while (frame_in.good()) { + try { + frame_in >> transMat >> type; + } catch (const exception &e) { + break; + } + } + // now transMat contains the last matrix + double rPos[3], rPosTheta[3]; + Matrix4ToEuler(transMat, rPosTheta, rPos); + + PtPair myPair(gtruthPos, rPos); + pairs.push_back(myPair); + } + + cout << "Nr poses used for registration: " << pairs.size() << endl + << algo << endl; + + icp6Dminimizer *my_icp6Dminimizer = 0; + switch (algo) { + case 0 : + my_icp6Dminimizer = new icp6D_APX(quiet); + break; + case 1 : + my_icp6Dminimizer = new icp6D_QUAT(quiet); + break; + case 2 : + my_icp6Dminimizer = new icp6D_SVD(quiet); + break; + } + + double totalalignxf[16]; + M4identity(totalalignxf); + for (int iteration = 0; iteration < mni; iteration++) { + double alignxf[16]; + my_icp6Dminimizer->Point_Point_Align(pairs, alignxf); + for (int i = 0; i < pairs.size(); i++) { + pairs[i].p2.transform(alignxf); + } + double tempxf[16]; + MMult(alignxf, totalalignxf, tempxf); + memcpy(totalalignxf, tempxf, sizeof(totalalignxf)); + } + + string initialTransformFileName = dir + "initital.frame"; + ofstream initial_out(initialTransformFileName.c_str()); + initial_out << totalalignxf << endl; + initial_out.close(); + +} diff --git a/src/slam6d/metaScan.cc b/src/slam6d/metaScan.cc new file mode 100644 index 0000000..a7262b3 --- /dev/null +++ b/src/slam6d/metaScan.cc @@ -0,0 +1,58 @@ +/* + * metascan implementation + * + * Copyright (C) Andreas Nuechter, Kai Lingemann, Thomas Escher + * + * Released under the GPL version 3. + * + */ + +#include "slam6d/metaScan.h" + +#include "slam6d/kdMeta.h" + +#ifdef WITH_METRICS +#include "slam6d/metrics.h" +#endif + +MetaScan::MetaScan(std::vector scans, int nns_method, bool cuda_enabled) : + m_scans(scans) +{ + // add this to the global vector for addFrame reasons + Scan::allScans.push_back(this); +} + +MetaScan::~MetaScan() +{ + // remove this from the global vector for addFrame reasons + for(ScanVector::iterator it = Scan::allScans.begin(); it != Scan::allScans.end(); ++it) { + if(*it == this) { + Scan::allScans.erase(it); + break; + } + } +} + +void MetaScan::createSearchTreePrivate() +{ +#ifdef WITH_METRICS + Timer tc = ClientMetric::create_metatree_time.start(); +#endif //WITH_METRICS + + // TODO: there is no nns_type switch or cuda option for this one because no reduced points are copied, this could be implemented if e.g. cuda is required on metascans + kd = new KDtreeMetaManaged(m_scans); + +#ifdef WITH_METRICS + ClientMetric::create_metatree_time.end(tc); +#endif //WITH_METRICS +} + +unsigned int MetaScan::size() const +{ + return m_scans.size(); +} + +Scan* MetaScan::getScan(unsigned int i) const +{ + return m_scans.at(i); +} diff --git a/src/slam6d/metrics.cc b/src/slam6d/metrics.cc new file mode 100644 index 0000000..943d2a1 --- /dev/null +++ b/src/slam6d/metrics.cc @@ -0,0 +1,216 @@ +/* + * metrics implementation + * + * Copyright (C) Kai Lingemann, Thomas Escher + * + * Released under the GPL version 3. + * + */ + +#include "slam6d/metrics.h" + +#ifdef _MSC_VER +LARGE_INTEGER TimeMetric::frequency; +bool TimeMetric::init = false; +#endif + +TimeMetric::TimeMetric(unsigned int reserve) : + Metric(reserve) +{ +#ifdef _MSC_VER + if(!TimeMetric::init) { + QueryPerformanceFrequency(&TimeMetric::frequency); + TimeMetric::init = true; + } +#endif +} + +Timer TimeMetric::start() +{ + Timer start; +#ifdef _MSC_VER + QueryPerformanceCounter(&start); +#else + gettimeofday(&start, 0); +#endif + return start; +} + +void TimeMetric::end(Timer& start) +{ + double delta; +#ifdef _MSC_VER + LARGE_INTEGER end; + QueryPerformanceCounter(&end); + delta = (double)(end.QuadPart - start.QuadPart) / frequency.QuadPart; +#else + timeval end; + gettimeofday(&end, 0); + delta = (double)(end.tv_sec - start.tv_sec) + + (double)(end.tv_usec - start.tv_usec) / 1000000.0; +#endif + commit(delta); +} + +CounterMetric::CounterMetric(unsigned int reserve) : + Metric(reserve) +{ +} + +void CounterMetric::add(unsigned long long value) +{ + commit(value); +} + + + +#include +using std::cout; +using std::endl; + +TimeMetric ServerMetric::scan_loading, ServerMetric::cacheio_write_time, ServerMetric::cacheio_read_time; +CounterMetric ServerMetric::cacheio_write_size, ServerMetric::cacheio_read_size; + +TimeMetric + ClientMetric::read_scan_time, + ClientMetric::scan_load_time, + ClientMetric::calc_reduced_points_time, + ClientMetric::transform_time(100000), // avoid resizing in multithreaded transform calls by graph-slam + ClientMetric::copy_original_time, + ClientMetric::create_tree_time, + ClientMetric::on_demand_reduction_time, + ClientMetric::create_metatree_time, + ClientMetric::add_frames_time, + ClientMetric::matching_time, + ClientMetric::clientinterface_time, + ClientMetric::cache_miss_time, + ClientMetric::allocate_time, + ClientMetric::frames_time; + +void printTime(const TimeMetric& m, unsigned int indentation = 1) +{ + for(unsigned int i = 1; i <= indentation; ++i) { + cout << " "; + } + cout << m.sum() << "s"; + if(m.size() != 1) { + cout << " (" << m.average() << "s average of " << m.size() << " calls)"; + } + cout << endl; +} + +void ServerMetric::print() +{ + cout << "= Metric server information =" << endl + << "Time spent for loading scans (in ScanHandler::load):" << endl + << " Amount: " << scan_loading.size() << endl + << " Time: " << scan_loading.sum() << "s (" << scan_loading.average() << "s avg.)" << endl + << endl + << "CacheIO reads:" << endl + << " Amount: " << cacheio_read_size.size() << endl + << " Size: " << cacheio_read_size.sum()/1024/1024 << "MB (" << cacheio_read_size.average()/1024 << "KB avg.)" << endl + << " Time: " << cacheio_read_time.sum() << "s (" << cacheio_read_time.average() << "s avg.)" << endl + << endl + << "CacheIO writes:" << endl + << " Amount: " << cacheio_write_size.size() << endl + << " Size: " << cacheio_write_size.sum()/1024/1024 << "MB (" << cacheio_write_size.average()/1024 << "KB avg.)" << endl + << " Time: " << cacheio_write_time.sum() << "s (" << cacheio_write_time.average() << "s avg.)" << endl + << "= Resetting metric information =" << endl + << endl; + scan_loading.reset(); + cacheio_write_time.reset(); + cacheio_read_time.reset(); + cacheio_write_size.reset(); + cacheio_read_size.reset(); +} + +void ClientMetric::print(bool scanserver) +{ + cout << "= Metric client information =" << endl; + + // ClientInterface specific ones + if(scanserver) { + cout << "Time for all ClientInterface messages:" << endl; + printTime(clientinterface_time); + + cout << " [" << endl; + + cout << " Time for cache misses:" << endl; + printTime(cache_miss_time, 3); + + cout << " Time for cache allocations:" << endl; + printTime(allocate_time, 3); + + // TODO: invalidations too? + + cout << " Time for frame calls:" << endl; + printTime(frames_time, 3); + + cout << " ]" << endl; + + cout << endl; + } + + // Scan: Loading, reducing and SearchTree related ones + // barebone preparation and parameter setting + if(read_scan_time.size()) { + cout << "Time for loading directory:" << endl; + printTime(read_scan_time); + } + + // getXYZ in calcReducedPoints + if(scan_load_time.size()) { + cout << "Time for loading scans:" << endl; + printTime(scan_load_time); + } + + if(calc_reduced_points_time.size()) { + cout << "Time for reducing scans:" << endl; + printTime(calc_reduced_points_time); + } + + // copying of reduced to original or other way around + if(copy_original_time.size()) { + cout << "Time for copying reduced points:" << endl; + printTime(copy_original_time); + } + + if(create_tree_time.size()) { + cout << "Time for creating SearchTree:" << endl; + printTime(create_tree_time); + } + + // part of create_tree_time which is spent for meta trees in specific + if(create_metatree_time.size()) { + cout << "Time for creating meta-SearchTree:" << endl; + printTime(create_metatree_time); + } + + if(on_demand_reduction_time.size()) { + cout << "Time in on-demand reduction [reduction+transform+copy / copy]:" << endl; + printTime(on_demand_reduction_time); + } + + if(transform_time.size()) { + cout << "Time for transform:" << endl; + printTime(transform_time); + } + + // SLAM + if(matching_time.size()) { + cout << endl; + cout << "Matching time:" << endl; + printTime(matching_time); + cout << "Corrected matching time without on-demand loading, reduction and tree creation:" << endl; + // match - scan loading in calcReducedPoints - calcReducedPoints - transform (irrelevant) - copy to original - createTree + cout << " " << + matching_time.sum() + - scan_load_time.sum() + - calc_reduced_points_time.sum() + - copy_original_time.sum() + - create_tree_time.sum() + << "s" << endl; + } + + cout << endl; +} diff --git a/src/slam6d/point_type.cc b/src/slam6d/point_type.cc new file mode 100644 index 0000000..e659c19 --- /dev/null +++ b/src/slam6d/point_type.cc @@ -0,0 +1,209 @@ +/* + * point_type implementation + * + * Copyright (C) Jan Elseberg + * + * Released under the GPL version 3. + * + */ + +/** + * @file + * @brief Representation of a 3D point type + * @author Jan Elsberg. Automation Group, Jacobs University Bremen gGmbH, Germany. + */ + +#include "slam6d/point_type.h" + +#include "slam6d/scan.h" + +#include +using std::string; +#include +using std::cout; +using std::cerr; +using std::endl; + +#include +#include + +#include +using std::runtime_error; + + + +PointType::PointType() { + types = USE_NONE; + pointdim = 3; + dimensionmap[1] = dimensionmap[2] = dimensionmap[3] = dimensionmap[4] = dimensionmap[5] = dimensionmap[6] = dimensionmap[7] = 1; // choose height per default + dimensionmap[0] = 1; // height +} + +PointType::PointType(unsigned int _types) : types(_types) { + dimensionmap[1] = dimensionmap[2] = dimensionmap[3] = dimensionmap[4] = dimensionmap[5] = dimensionmap[6] = dimensionmap[7] = 1; // choose height per default + dimensionmap[0] = 1; // height + + pointdim = 3; + if (types & PointType::USE_REFLECTANCE) dimensionmap[1] = pointdim++; + if (types & PointType::USE_AMPLITUDE) dimensionmap[2] = pointdim++; + if (types & PointType::USE_DEVIATION) dimensionmap[3] = pointdim++; + if (types & PointType::USE_TYPE) dimensionmap[4] = pointdim++; + if (types & PointType::USE_COLOR) dimensionmap[5] = pointdim++; + if (types & PointType::USE_TIME) dimensionmap[6] = pointdim++; + if (types & PointType::USE_INDEX) dimensionmap[7] = pointdim++; +} + +bool PointType::hasReflectance() { + return hasType(USE_REFLECTANCE); +} +bool PointType::hasAmplitude() { + return hasType(USE_AMPLITUDE); +} +bool PointType::hasDeviation() { + return hasType(USE_DEVIATION); +} +bool PointType::hasType() { + return hasType(USE_TYPE); +} +bool PointType::hasColor() { + return hasType(USE_COLOR); +} +bool PointType::hasTime() { + return hasType(USE_TIME); +} + +bool PointType::hasIndex() { + return hasType(USE_INDEX); +} + +unsigned int PointType::getReflectance() { + return dimensionmap[1]; +} + +unsigned int PointType::getAmplitude() { + return dimensionmap[2]; +} + +unsigned int PointType::getDeviation() { + return dimensionmap[3]; +} + +unsigned int PointType::getTime() { + return dimensionmap[6]; +} + +unsigned int PointType::getIndex() { + return dimensionmap[7]; +} + +unsigned int PointType::getType() { + return dimensionmap[4]; +} + +unsigned int PointType::getType(unsigned int type) { + if (type == USE_NONE ) { + return dimensionmap[0]; + } else if (type == USE_HEIGHT) { + return dimensionmap[0]; + } else if (type == USE_REFLECTANCE) { + return dimensionmap[1]; + } else if (type == USE_AMPLITUDE) { + return dimensionmap[2]; + } else if (type == USE_DEVIATION) { + return dimensionmap[3]; + } else if (type == USE_TYPE) { + return dimensionmap[4]; + } else if (type == USE_COLOR) { + return dimensionmap[5]; + } else if (type == USE_TIME) { + return dimensionmap[6]; + } else { + return 0; + } +} + + +unsigned int PointType::getPointDim() { return pointdim; } + +PointType PointType::deserialize(std::ifstream &f) { + unsigned int types; + f.read(reinterpret_cast(&types), sizeof(unsigned int)); + return PointType(types); +} + +void PointType::serialize(std::ofstream &f) { + f.write(reinterpret_cast(&types), sizeof(unsigned int)); +} + +unsigned int PointType::toFlags() const { return types; } + +bool PointType::hasType(unsigned int type) { + return types & type; +} + + +const unsigned int PointType::USE_NONE = 0; +const unsigned int PointType::USE_REFLECTANCE = 1; +const unsigned int PointType::USE_AMPLITUDE = 2; +const unsigned int PointType::USE_DEVIATION = 4; +const unsigned int PointType::USE_HEIGHT = 8; +const unsigned int PointType::USE_TYPE = 16; +const unsigned int PointType::USE_COLOR = 32; +const unsigned int PointType::USE_TIME = 64; +const unsigned int PointType::USE_INDEX = 128; + + +void PointType::useScan(Scan* scan) +{ + // clear pointers first + m_xyz = 0; m_rgb = 0; m_reflectance = 0; m_amplitude = 0; m_type = 0; m_deviation = 0; + + // collectively load data to avoid unneccessary loading times due to split get("") calls + unsigned int types = DATA_XYZ; + if(hasColor()) types |= DATA_RGB; + if(hasReflectance()) types |= DATA_REFLECTANCE; + if(hasAmplitude()) types |= DATA_AMPLITUDE; + if(hasType()) types |= DATA_TYPE; + if(hasDeviation()) types |= DATA_DEVIATION; + scan->get(types); + + // access data + try { + m_xyz = new DataXYZ(scan->get("xyz")); + if(hasColor()) m_rgb = new DataRGB(scan->get("rgb")); + if(hasReflectance()) m_reflectance = new DataReflectance(scan->get("reflectance")); + if(hasAmplitude()) m_amplitude = new DataAmplitude(scan->get("amplitude")); + if(hasType()) m_type = new DataType(scan->get("type")); + if(hasDeviation()) m_deviation = new DataDeviation(scan->get("deviation")); + + // check if data is available, otherwise reset pointer to indicate that the scan doesn't prove this value + if(m_rgb && !m_rgb->valid()) { delete m_rgb; m_rgb = 0; } + if(m_reflectance && !m_reflectance->valid()) { delete m_reflectance; m_reflectance = 0; } + if(m_amplitude && !m_amplitude->valid()) { delete m_amplitude; m_amplitude = 0; } + if(m_type && !m_type->valid()) { delete m_type; m_type = 0; } + if(m_deviation && !m_deviation->valid()) { delete m_deviation; m_deviation = 0; } + } catch(runtime_error& e) { + // unlock everything again + clearScan(); + throw e; + } +} + +void PointType::clearScan() +{ + // unlock data access + if(m_xyz) delete m_xyz; + if(hasColor() && m_rgb) delete m_rgb; + if(hasReflectance() && m_reflectance) delete m_reflectance; + if(hasAmplitude() && m_amplitude) delete m_amplitude; + if(hasType() && m_type) delete m_type; + if(hasDeviation() && m_deviation) delete m_deviation; + + // TODO: scan->clear() on all of these types +} + + +unsigned int PointType::getScanSize(Scan* scan) +{ + return scan->size("xyz"); +} diff --git a/src/slam6d/pointfilter.cc b/src/slam6d/pointfilter.cc new file mode 100644 index 0000000..8ff6092 --- /dev/null +++ b/src/slam6d/pointfilter.cc @@ -0,0 +1,187 @@ +/* + * pointfilter implementation + * + * Copyright (C) Dorit Borrmann, Jan Elseberg + * + * Released under the GPL version 3. + * + */ + +#include "slam6d/pointfilter.h" + +using std::string; +using std::map; +#include +using std::stringstream; +#include +using std::runtime_error; + +#include +using std::cout; +using std::endl; + + + +map* PointFilter::factory = new map; + + + +PointFilter::PointFilter() : + m_changed(true), m_checker(0) +{ +} + +PointFilter::PointFilter(const std::string& params) : + m_changed(true), m_checker(0) +{ + size_t start = 0, end = string::npos; + while((end = params.find(' ', start)) != string::npos) { + // extract the word (start-end+1) without the space (-1) + string key(params.substr(start, start-end)); + end++; + // get the second word position + start = params.find(' ', end); + // insert + m_params[key] = params.substr(end, (start-end)); + // advance to the character after space + if(start != string::npos) + start++; + else + break; + } +} + +PointFilter::~PointFilter() +{ + if(m_checker) + delete m_checker; +} + +PointFilter& PointFilter::setRange(double maxDist, double minDist) +{ + m_changed = true; + stringstream s_max; s_max << maxDist; + stringstream s_min; s_min << minDist; + m_params["rangemax"] = s_max.str(); + m_params["rangemin"] = s_min.str(); + return *this; +} + +PointFilter& PointFilter::setHeight(double top, double bottom) +{ + m_changed = true; + stringstream s_top; s_top << top; + stringstream s_bottom; s_bottom << bottom; + m_params["heighttop"] = s_top.str(); + m_params["heightbottom"] = s_bottom.str(); + return *this; +} + +std::string PointFilter::getParams() +{ + stringstream s; + for(map::iterator it = m_params.begin(); it != m_params.end(); ++it) { + s << (*it).first << " " << (*it).second << " "; + } + return s.str(); +} + +void PointFilter::createCheckers() +{ + // delete the outdated ones + if(m_checker) { + delete m_checker; + m_checker = 0; + } + + // create new ones + Checker** current = &m_checker; + for(map::iterator it = m_params.begin(); it != m_params.end(); ++it) { + *current = (*factory)[it->first](it->second); + // if a Checker has been successfully created advance to its pointer in the chain + if(*current) { + current = &((*current)->m_next); + } + } +} + + + +Checker::Checker() : + m_next(0) +{ +} + +Checker::~Checker() +{ + if(m_next) + delete m_next; +} + + + +// create factory instaces for key string to factory function mapping +namespace { + CheckerFactory max("rangemax"); + CheckerFactory min("rangemin"); + CheckerFactory top("heighttop"); + CheckerFactory bottom("heightbottom"); +} + + + +CheckerRangeMax::CheckerRangeMax(const std::string& value) { + stringstream s(value); + s >> m_max; + // default value: no check + if(m_max <= 0.0) throw runtime_error("No range filter needed."); + m_max *= m_max; +} + +bool CheckerRangeMax::test(double* point) { + if(point[0]*point[0] + point[1]*point[1] + point[2]*point[2] < m_max) + return true; + return false; +} + + + +CheckerRangeMin::CheckerRangeMin(const std::string& value) { + stringstream s(value); + s >> m_min; + // default value: no check + if(m_min <= 0.0) throw runtime_error("No range filter needed."); + m_min *= m_min; +} + +bool CheckerRangeMin::test(double* point) { + if(point[0]*point[0] + point[1]*point[1] + point[2]*point[2] > m_min) + return true; + return false; +} + + + +CheckerHeightTop::CheckerHeightTop(const std::string& value) { + stringstream s(value); + s >> m_top; +} + +bool CheckerHeightTop::test(double* point) { + if(point[1] < m_top) + return true; + return false; +} + + + +CheckerHeightBottom::CheckerHeightBottom(const std::string& value) { + stringstream s(value); + s >> m_bottom; +} + +bool CheckerHeightBottom::test(double* point) { + if(point[1] > m_bottom) + return true; + return false; +} diff --git a/src/slam6d/pose2frames.cc b/src/slam6d/pose2frames.cc new file mode 100644 index 0000000..fe09685 --- /dev/null +++ b/src/slam6d/pose2frames.cc @@ -0,0 +1,145 @@ +/* + * pose2frames implementation + * + * Copyright (C) Dorit Borrmann, Jan Elseberg + * + * Released under the GPL version 3. + * + */ + +#include +#include +using std::cout; +using std::cerr; +using std::endl; +using std::ifstream; +using std::ofstream; + +#include "slam6d/scan.h" +#include "slam6d/globals.icc" +#include + +#ifndef _MSC_VER +#include +#include +#else +#include "XGetopt.h" +#endif + +int parseArgs(int argc,char **argv, char dir[255], int& start, int& end){ + start = 0; + end = -1; // -1 indicates no limitation + + int c; + // from unistd.h + extern char *optarg; + extern int optind; + + cout << endl; + while ((c = getopt (argc, argv, "s:e:")) != -1) + switch (c) + { + case 's': + start = atoi(optarg); + if (start < 0) { cerr << "Error: Cannot start at a negative scan number.\n"; exit(1); } + break; + case 'e': + end = atoi(optarg); + if (end < 0) { cerr << "Error: Cannot end at a negative scan number.\n"; exit(1); } + if (end < start) { cerr << "Error: cannot be smaller than .\n"; exit(1); } + break; + } + + if (optind != argc-1) { + cerr << "\n*** Directory missing ***\n" << endl; + cout << endl + << "Usage: " << argv[0] << " [-s NR] [-e NR] directory" << endl << endl; + + cout << " -s NR start at scan NR (i.e., neglects the first NR scans)" << endl + << " [ATTENTION: counting starts with 0]" << endl + << " -e NR end after scan NR" << "" << endl + << endl; + cout << "Reads pose files from directory/scan???.pose and converts them to directory/scan???.frames to be used by show." << endl; + abort(); + } + strncpy(dir,argv[optind],255); + +#ifndef _MSC_VER + if (dir[strlen(dir)-1] != '/') strcat(dir,"/"); +#else + if (dir[strlen(dir)-1] != '\\') strcat(dir,"\\"); +#endif + return 0; +} + + +int main(int argc, char **argv) +{ + int start = 0, end = -1; + char dir[255]; + parseArgs(argc, argv, dir, start, end); + + int fileCounter = start; + char poseFileName[255]; + char frameFileName[255]; + + ifstream pose_in; + ofstream pose_out; + + double rPos[3],rPosTheta[3]; + + + for (;;) { + if (end > -1 && fileCounter > end) break; // 'nuf read +#ifndef _MSC_VER + snprintf(frameFileName,255,"%sscan%.3d.frames",dir,fileCounter); + snprintf(poseFileName,255,"%sscan%.3d.pose",dir,fileCounter++); +# else + sprintf(frameFileName,"%sscan%.3d.frames",dir,fileCounter); + sprintf(poseFileName,"%sscan%.3d.pose",dir,fileCounter++); +#endif + + pose_in.open(poseFileName); + + // read 3D scan + if (!pose_in.good()) break; // no more files in the directory + + cout << "Reading pose " << poseFileName << "..." << endl; + + for (unsigned int i = 0; i < 3; pose_in >> rPos[i++]); + for (unsigned int i = 0; i < 3; pose_in >> rPosTheta[i++]); + + // convert angles from deg to rad + for (unsigned int i=0; i < 3; i++) rPosTheta[i] = rad(rPosTheta[i]); + + cerr << rPos[0] << " " << rPos[1] << " " << rPos[2] << endl; + + pose_in.close(); + pose_in.clear(); + + cout << rPos[0] << " "<< rPos[1] << " "<< rPos[2] << endl; + cout << rPosTheta[0] << " "<< rPosTheta[1] << " "<< rPosTheta[2] << endl; + + double tempR[16]; + EulerToMatrix4(rPos, rPosTheta, tempR); // convert previous rPosTheta + + pose_out.open(frameFileName); + + cout << "Writing frame... " << frameFileName << endl; + + for (int j=0;j<10;j++) { + for (int i=0; i < 16; i++) { + pose_out << tempR[i] << " "; + } + pose_out << " 3" << endl; + } + + pose_out.close(); + pose_out.clear(); + + + cout << " done." << endl; + } + +} + diff --git a/src/slam6d/riegl2frames.cc b/src/slam6d/riegl2frames.cc new file mode 100644 index 0000000..5af96ad --- /dev/null +++ b/src/slam6d/riegl2frames.cc @@ -0,0 +1,179 @@ +/* + * riegl2frames implementation + * + * Copyright (C) Dorit Borrmann, Jan Elseberg + * + * Released under the GPL version 3. + * + */ + +#include +#include +using std::cout; +using std::cerr; +using std::endl; +using std::ifstream; +using std::ofstream; + +//#include "scan.h" +#include "slam6d/globals.icc" +#include + +#ifndef _MSC_VER +#include +#else +#include "XGetopt.h" +#endif + +#if WIN32 +#define snprintf sprintf_s +#endif + +int parseArgs(int argc,char **argv, char dir[255], int& start, int& end){ + start = 0; + end = -1; // -1 indicates no limitation + + int c; + // from unistd.h + extern char *optarg; + extern int optind; + + cout << endl; + while ((c = getopt (argc, argv, "s:e:")) != -1) + switch (c) + { + case 's': + start = atoi(optarg); + if (start < 0) { cerr << "Error: Cannot start at a negative scan number.\n"; exit(1); } + break; + case 'e': + end = atoi(optarg); + if (end < 0) { cerr << "Error: Cannot end at a negative scan number.\n"; exit(1); } + if (end < start) { cerr << "Error: cannot be smaller than .\n"; exit(1); } + break; + } + + if (optind != argc-1) { + cerr << "\n*** Directory missing ***\n" << endl; + cout << endl + << "Usage: " << argv[0] << " [-s NR] [-e NR] directory" << endl << endl; + + cout << " -s NR start at scan NR (i.e., neglects the first NR scans)" << endl + << " [ATTENTION: counting starts with 0]" << endl + << " -e NR end after scan NR" << "" << endl + << endl; + cout << "Reads dat files (RIEGL pose files) from directory/scan???.dat and converts them to directory/scan???.frames and directory/scan???.pose in the slam6D standard file format." << endl; + abort(); + } + strncpy(dir,argv[optind],255); + +#ifndef _MSC_VER + if (dir[strlen(dir)-1] != '/') strcat(dir,"/"); +#else + if (dir[strlen(dir)-1] != '\\') strcat(dir,"\\"); +#endif + return 0; +} + + +int main(int argc, char **argv) +{ + int start = 0, end = -1; + char dir[255]; + parseArgs(argc, argv, dir, start, end); + int fileCounter = start; + + char rieglFileName[255]; + char poseFileName[255]; + char frameFileName[255]; + + ifstream riegl_in; + ofstream pose_out; + ofstream frames_out; + + for(;;) { + if (end > -1 && fileCounter > end) break; // 'nuf read + + snprintf(rieglFileName,255,"%sscan%.3d.dat",dir,fileCounter); + snprintf(frameFileName,255,"%sscan%.3d.frames",dir,fileCounter); + snprintf(poseFileName,255,"%sscan%.3d.pose",dir,fileCounter++); + + riegl_in.open(rieglFileName); + // read pose + + if (!riegl_in.good()) return -1; // no more files in the directory + + cout << "Processing Scan " << rieglFileName; + cout.flush(); + + double rPos[3], rPosTheta[16]; + double inMatrix[16], tMatrix[16]; + for (unsigned int i = 0; i < 16; riegl_in >> inMatrix[i++]); + + riegl_in.close(); + + // transform input pose + tMatrix[0] = inMatrix[5]; + tMatrix[1] = -inMatrix[9]; + tMatrix[2] = -inMatrix[1]; + tMatrix[3] = -inMatrix[13]; + tMatrix[4] = -inMatrix[6]; + tMatrix[5] = inMatrix[10]; + tMatrix[6] = inMatrix[2]; + tMatrix[7] = inMatrix[14]; + tMatrix[8] = -inMatrix[4]; + tMatrix[9] = inMatrix[8]; + tMatrix[10] = inMatrix[0]; + tMatrix[11] = 100*inMatrix[12]; + tMatrix[12] = -100*inMatrix[7]; + tMatrix[13] = 100*inMatrix[11]; + tMatrix[14] = 100*inMatrix[3]; + tMatrix[15] = inMatrix[15]; + + Matrix4ToEuler(tMatrix, rPosTheta, rPos); + + double euler[6]; + + euler[0] = rPos[0]; + euler[1] = rPos[1]; + euler[2] = rPos[2]; + euler[3] = rPosTheta[0]; + euler[4] = rPosTheta[1]; + euler[5] = rPosTheta[2]; + + pose_out.open(poseFileName); + frames_out.open(frameFileName); + + cout << "Writing pose... " << poseFileName << endl; + + for(int i = 0; i < 3; i++) { + pose_out << euler[i] << " "; + } + pose_out << endl; + + for(int i = 3; i < 6; i++) { + pose_out << deg(euler[i]) << " "; + } + pose_out << endl; + + cout << "Writing frames... " << poseFileName << endl; + + for(int j = 0; j < 2; j++) { + for (int i=0; i < 16; i++) { + frames_out << tMatrix[i] << " "; + } + frames_out << "2" << endl; + } + + pose_out.close(); + pose_out.clear(); + + frames_out.close(); + frames_out.clear(); + + + cout << " done." << endl; + } + +} + diff --git a/src/slam6d/scan.cc b/src/slam6d/scan.cc new file mode 100644 index 0000000..38b47d9 --- /dev/null +++ b/src/slam6d/scan.cc @@ -0,0 +1,786 @@ +/* + * scan implementation + * + * Copyright (C) Andreas Nuechter, Kai Lingemann, Dorit Borrmann, Jan Elseberg, Thomas Escher + * + * Released under the GPL version 3. + * + */ + +#include "slam6d/scan.h" + +#include "slam6d/basicScan.h" +#include "slam6d/managedScan.h" +#include "slam6d/metaScan.h" +#include "slam6d/searchTree.h" +#include "slam6d/kd.h" +#include "slam6d/Boctree.h" +#include "slam6d/globals.icc" + +#ifdef WITH_METRICS +#include "slam6d/metrics.h" +#endif + +#ifdef _MSC_VER +#define _NO_PARALLEL_READ +#endif + +#ifdef __APPLE__ +#define _NO_PARALLEL_READ +#endif + +using std::vector; + + +vector Scan::allScans; +bool Scan::scanserver = false; + + +void Scan::openDirectory(bool scanserver, const std::string& path, IOType type, + int start, int end) +{ + Scan::scanserver = scanserver; + if(scanserver) + ManagedScan::openDirectory(path, type, start, end); + else + BasicScan::openDirectory(path, type, start, end); +} + +void Scan::closeDirectory() +{ + if(scanserver) + ManagedScan::closeDirectory(); + else + BasicScan::closeDirectory(); +} + +Scan::Scan() +{ + unsigned int i; + + // pose and transformations + for(i = 0; i < 3; ++i) rPos[i] = 0; + for(i = 0; i < 3; ++i) rPosTheta[i] = 0; + for(i = 0; i < 4; ++i) rQuat[i] = 0; + M4identity(transMat); + M4identity(transMatOrg); + M4identity(dalignxf); + + // trees and reduction methods + cuda_enabled = false; + nns_method = -1; + kd = 0; + ann_kd_tree = 0; + + // reduction on-demand + reduction_voxelSize = 0.0; + reduction_nrpts = 0; + reduction_pointtype = PointType(); + + // flags + m_has_reduced = false; + + // octtree + octtree_reduction_voxelSize = 0.0; + octtree_voxelSize = 0.0; + octtree_pointtype = PointType(); + octtree_loadOct = false; + octtree_saveOct = false; +} + +Scan::~Scan() +{ + if(kd) delete kd; +} + +void Scan::setReductionParameter(double voxelSize, int nrpts, PointType pointtype) +{ + reduction_voxelSize = voxelSize; + reduction_nrpts = nrpts; + reduction_pointtype = pointtype; +} + +void Scan::setSearchTreeParameter(int nns_method, bool cuda_enabled) +{ + searchtree_nnstype = nns_method; + searchtree_cuda_enabled = cuda_enabled; +} + +void Scan::setOcttreeParameter(double reduction_voxelSize, double voxelSize, PointType pointtype, bool loadOct, bool saveOct) +{ + octtree_reduction_voxelSize = reduction_voxelSize; + octtree_voxelSize = voxelSize; + octtree_pointtype = pointtype; + octtree_loadOct = loadOct; + octtree_saveOct = saveOct; +} + +void Scan::clear(unsigned int types) +{ + if(types & DATA_XYZ) clear("xyz"); + if(types & DATA_RGB) clear("rgb"); + if(types & DATA_REFLECTANCE) clear("reflectance"); + if(types & DATA_AMPLITUDE) clear("amplitude"); + if(types & DATA_TYPE) clear("type"); + if(types & DATA_DEVIATION) clear("deviation"); +} + +SearchTree* Scan::getSearchTree() +{ + // if the search tree hasn't been created yet, calculate everything + if(kd == 0) { + createSearchTree(); + } + return kd; +} + +void Scan::toGlobal() { + calcReducedPoints(); + transform(transMatOrg, INVALID); +} + +/** + * Computes a search tree depending on the type. + */ +void Scan::createSearchTree() +{ + // multiple threads will call this function at the same time because they all work on one pair of Scans, just let the first one (who sees a nullpointer) do the creation +// boost::lock_guard lock(m_mutex_create_tree); + if(kd != 0) return; + + // make sure the original points are created before starting the measurement + DataXYZ xyz_orig(get("xyz reduced original")); + +#ifdef WITH_METRICS + Timer tc = ClientMetric::create_tree_time.start(); +#endif //WITH_METRICS + + createSearchTreePrivate(); + +#ifdef WITH_METRICS + ClientMetric::create_tree_time.end(tc); +#endif //WITH_METRICS +} + +void Scan::calcReducedOnDemand() +{ + // multiple threads will call this function at the same time because they all work on one pair of Scans, just let the first one (who sees count as zero) do the reduction +// boost::lock_guard lock(m_mutex_reduction); + if(m_has_reduced) return; + +#ifdef WITH_METRICS + Timer t = ClientMetric::on_demand_reduction_time.start(); +#endif //WITH_METRICS + + calcReducedOnDemandPrivate(); + + m_has_reduced = true; + +#ifdef WITH_METRICS + ClientMetric::on_demand_reduction_time.end(t); +#endif //WITH_METRICS +} + +void Scan::copyReducedToOriginal() +{ +#ifdef WITH_METRICS + Timer t = ClientMetric::copy_original_time.start(); +#endif //WITH_METRICS + + DataXYZ xyz_r(get("xyz reduced")); + unsigned int size = xyz_r.size(); + DataXYZ xyz_r_orig(create("xyz reduced original", sizeof(double)*3*size)); + for(unsigned int i = 0; i < size; ++i) { + for(unsigned int j = 0; j < 3; ++j) { + xyz_r_orig[i][j] = xyz_r[i][j]; + } + } + +#ifdef WITH_METRICS + ClientMetric::copy_original_time.end(t); +#endif //WITH_METRICS +} + +void Scan::copyOriginalToReduced() +{ +#ifdef WITH_METRICS + Timer t = ClientMetric::copy_original_time.start(); +#endif //WITH_METRICS + + DataXYZ xyz_r_orig(get("xyz reduced original")); + unsigned int size = xyz_r_orig.size(); + DataXYZ xyz_r(create("xyz reduced", sizeof(double)*3*size)); + for(unsigned int i = 0; i < size; ++i) { + for(unsigned int j = 0; j < 3; ++j) { + xyz_r[i][j] = xyz_r_orig[i][j]; + } + } + +#ifdef WITH_METRICS + ClientMetric::copy_original_time.end(t); +#endif //WITH_METRICS +} + + + +/** + * Computes an octtree of the current scan, then getting the + * reduced points as the centers of the octree voxels. + */ +void Scan::calcReducedPoints() +{ +#ifdef WITH_METRICS + Timer t = ClientMetric::scan_load_time.start(); +#endif //WITH_METRICS + + // get xyz to start the scan load, separated here for time measurement + DataXYZ xyz(get("xyz")); + + // if the scan hasn't been loaded we can't calculate anything + if(xyz.size() == 0) + throw runtime_error("Could not calculate reduced points, XYZ data is empty"); + +#ifdef WITH_METRICS + ClientMetric::scan_load_time.end(t); + Timer tl = ClientMetric::calc_reduced_points_time.start(); +#endif //WITH_METRICS + + // no reduction needed + // copy vector of points to array of points to avoid + // further copying + if(reduction_voxelSize <= 0.0) { + // copy the points + DataXYZ xyz_r(create("xyz reduced", sizeof(double)*3*xyz.size())); + for(unsigned int i = 0; i < xyz.size(); ++i) { + for(unsigned int j = 0; j < 3; ++j) { + xyz_r[i][j] = xyz[i][j]; + } + } + } else { + // start reduction + + // build octree-tree from CurrentScan + // put full data into the octtree + BOctTree *oct = new BOctTree(PointerArray(xyz).get(), + xyz.size(), reduction_voxelSize, reduction_pointtype); + + vector center; + center.clear(); + + if (reduction_nrpts > 0) { + if (reduction_nrpts == 1) { + oct->GetOctTreeRandom(center); + } else { + oct->GetOctTreeRandom(center, reduction_nrpts); + } + } else { + oct->GetOctTreeCenter(center); + } + + // storing it as reduced scan + unsigned int size = center.size(); + DataXYZ xyz_r(create("xyz reduced", sizeof(double)*3*size)); + for(unsigned int i = 0; i < size; ++i) { + for(unsigned int j = 0; j < 3; ++j) { + xyz_r[i][j] = center[i][j]; + } + } + + delete oct; + } + +#ifdef WITH_METRICS + ClientMetric::calc_reduced_points_time.end(tl); +#endif //WITH_METRICS +} + +/** + * Merges the scan's intrinsic coordinates with the robot position. + * @param prevScan The scan that's transformation is extrapolated, + * i.e., odometry extrapolation + * + * For additional information see the following paper (jfr2007.pdf): + * + * Andreas N眉chter, Kai Lingemann, Joachim Hertzberg, and Hartmut Surmann, + * 6D SLAM - 3D Mapping Outdoor Environments Journal of Field Robotics (JFR), + * Special Issue on Quantitative Performance Evaluation of Robotic and Intelligent + * Systems, Wiley & Son, ISSN 1556-4959, Volume 24, Issue 8-9, pages 699 - 722, + * August/September, 2007 + * + */ +void Scan::mergeCoordinatesWithRoboterPosition(Scan* prevScan) +{ + double tempMat[16], deltaMat[16]; + M4inv(prevScan->get_transMatOrg(), tempMat); + MMult(prevScan->get_transMat(), tempMat, deltaMat); + transform(deltaMat, INVALID); //apply delta transformation of the previous scan +} + +/** + * The method transforms all points with the given transformation matrix. + */ +void Scan::transformAll(const double alignxf[16]) +{ + DataXYZ xyz(get("xyz")); + unsigned int i=0 ; +// #pragma omp parallel for + for(; i < xyz.size(); ++i) { + transform3(alignxf, xyz[i]); + } + // TODO: test for ManagedScan compability, may need a touch("xyz") to mark saving the new values +} + +//! Internal function of transform which alters the reduced points +void Scan::transformReduced(const double alignxf[16]) +{ +#ifdef WITH_METRICS + Timer t = ClientMetric::transform_time.start(); +#endif //WITH_METRICS + + DataXYZ xyz_r(get("xyz reduced")); + unsigned int i=0; + // #pragma omp parallel for + for( ; i < xyz_r.size(); ++i) { + transform3(alignxf, xyz_r[i]); + } + +#ifdef WITH_METRICS + ClientMetric::transform_time.end(t); +#endif //WITH_METRICS +} + +//! Internal function of transform which handles the matrices +void Scan::transformMatrix(const double alignxf[16]) +{ + double tempxf[16]; + + // apply alignxf to transMat and update pose vectors + MMult(alignxf, transMat, tempxf); + memcpy(transMat, tempxf, sizeof(transMat)); + Matrix4ToEuler(transMat, rPosTheta, rPos); + Matrix4ToQuat(transMat, rQuat); + +#ifdef DEBUG + cerr << "(" << rPos[0] << ", " << rPos[1] << ", " << rPos[2] << ", " + << rPosTheta[0] << ", " << rPosTheta[1] << ", " << rPosTheta[2] << ")" << endl; + + cerr << transMat << endl; +#endif + + // apply alignxf to dalignxf + MMult(alignxf, dalignxf, tempxf); + memcpy(dalignxf, tempxf, sizeof(transMat)); +} + +/** + * Transforms the scan by a given transformation and writes a new frame. The idea + * is to write for every transformation in all files, such that the show program + * is able to determine, whcih scans have to be drawn in which color. Hidden scans + * (or later processed scans) are written with INVALID. + * + * @param alignxf Transformation matrix + * @param colour Specifies which colour should the written to the frames file + * @param islum Is the transformtion part of LUM, i.e., all scans are transformed? + * In this case only LUM transformation is stored, otherwise all scans are processed + * -1 no transformation is stored + * 0 ICP transformation + * 1 LUM transformation, all scans except last scan + * 2 LUM transformation, last scan only + */ +void Scan::transform(const double alignxf[16], const AlgoType type, int islum) +{ + MetaScan* meta = dynamic_cast(this); + + if(meta) { + for(unsigned int i = 0; i < meta->size(); ++i) { + meta->getScan(i)->transform(alignxf, type, -1); + } + } + +#ifdef TRANSFORM_ALL_POINTS + transformAll(alignxf); +#endif //TRANSFORM_ALL_POINTS + +#ifdef DEBUG + cerr << alignxf << endl; + cerr << "(" << rPos[0] << ", " << rPos[1] << ", " << rPos[2] << ", " + << rPosTheta[0] << ", " << rPosTheta[1] << ", " << rPosTheta[2] << ") ---> "; +#endif + + // transform points + transformReduced(alignxf); + + // update matrices + transformMatrix(alignxf); + + // store transformation in frames + if(type != INVALID) { +#ifdef WITH_METRICS + Timer t = ClientMetric::add_frames_time.start(); +#endif //WITH_METRICS + bool in_meta; + MetaScan* meta = dynamic_cast(this); + int found = 0; + unsigned int scans_size = allScans.size(); + + switch (islum) { + case -1: + // write no tranformation + break; + case 0: + for(unsigned int i = 0; i < scans_size; ++i) { + Scan* scan = allScans[i]; + in_meta = false; + if(meta) { + for(unsigned int j = 0; j < meta->size(); ++j) { + if(meta->getScan(j) == scan) { + found = i; + in_meta = true; + } + } + } + + if(scan == this || in_meta) { + found = i; + scan->addFrame(type); + } else { + if(found == 0) { + scan->addFrame(ICPINACTIVE); + } else { + scan->addFrame(INVALID); + } + } + } + break; + case 1: + addFrame(type); + break; + case 2: + for(unsigned int i = 0; i < scans_size; ++i) { + Scan* scan = allScans[i]; + if(scan == this) { + found = i; + addFrame(type); + allScans[0]->addFrame(type); + continue; + } + if (found != 0) { + scan->addFrame(INVALID); + } + } + break; + default: + cerr << "invalid point transformation mode" << endl; + } + +#ifdef WITH_METRICS + ClientMetric::add_frames_time.end(t); +#endif //WITH_METRICS + } +} + +/** + * Transforms the scan by a given transformation and writes a new frame. The idea + * is to write for every transformation in all files, such that the show program + * is able to determine, whcih scans have to be drawn in which color. Hidden scans + * (or later processed scans) are written with INVALID. + * + * @param alignQuat Quaternion for the rotation + * @param alignt Translation vector + * @param colour Specifies which colour should the written to the frames file + * @param islum Is the transformtion part of LUM, i.e., all scans are transformed? + * In this case only LUM transformation is stored, otherwise all scans are processed + * -1 no transformation is stored + * 0 ICP transformation + * 1 LUM transformation, all scans except last scan + * 2 LUM transformation, last scan only + */ +void Scan::transform(const double alignQuat[4], const double alignt[3], + const AlgoType type, int islum) +{ + double alignxf[16]; + QuatToMatrix4(alignQuat, alignt, alignxf); + transform(alignxf, type, islum); +} + +/** + * Transforms the scan, so that the given Matrix + * prepresent the next pose. + * + * @param alignxf Transformation matrix to which this scan will be set to + * @param islum Is the transformation part of LUM? + */ +void Scan::transformToMatrix(double alignxf[16], const AlgoType type, int islum) +{ + double tinv[16]; + M4inv(transMat, tinv); + transform(tinv, INVALID); + transform(alignxf, type, islum); +} + +/** + * Transforms the scan, so that the given Euler angles + * prepresent the next pose. + * + * @param rP Translation to which this scan will be set to + * @param rPT Orientation as Euler angle to which this scan will be set + * @param islum Is the transformation part of LUM? + */ +void Scan::transformToEuler(double rP[3], double rPT[3], const AlgoType type, int islum) +{ +#ifdef WITH_METRICS + // called in openmp context in lum6Deuler.cc:422 + ClientMetric::transform_time.set_threadsafety(true); + ClientMetric::add_frames_time.set_threadsafety(true); +#endif //WITH_METRICS + + double tinv[16]; + double alignxf[16]; + M4inv(transMat, tinv); + transform(tinv, INVALID); + EulerToMatrix4(rP, rPT, alignxf); + transform(alignxf, type, islum); + +#ifdef WITH_METRICS + ClientMetric::transform_time.set_threadsafety(false); + ClientMetric::add_frames_time.set_threadsafety(false); +#endif //WITH_METRICS +} + +/** + * Transforms the scan, so that the given Euler angles + * prepresent the next pose. + * + * @param rP Translation to which this scan will be set to + * @param rPQ Orientation as Quaternion to which this scan will be set + * @param islum Is the transformation part of LUM? + */ +void Scan::transformToQuat(double rP[3], double rPQ[4], const AlgoType type, int islum) +{ + double tinv[16]; + double alignxf[16]; + M4inv(transMat, tinv); + transform(tinv, INVALID); + QuatToMatrix4(rPQ, rP, alignxf); + transform(alignxf, type, islum); +} + +/** + * Calculates Source\Target + * Calculates a set of corresponding point pairs and returns them. It + * computes the k-d trees and deletes them after the pairs have been + * found. This slow function should be used only for testing + * + * @param pairs The resulting point pairs (vector will be filled) + * @param Target The scan to whiche the points are matched + * @param thread_num number of the thread (for parallelization) + * @param rnd randomized point selection + * @param max_dist_match2 maximal allowed distance for matching + */ + +void Scan::getNoPairsSimple(vector &diff, + Scan* Source, Scan* Target, + int thread_num, + double max_dist_match2) +{ + DataXYZ xyz_r(Source->get("xyz reduced")); + KDtree* kd = new KDtree(PointerArray(Target->get("xyz reduced")).get(), Target->size("xyz reduced")); + + cout << "Max: " << max_dist_match2 << endl; + for (unsigned int i = 0; i < xyz_r.size(); i++) { + + double p[3]; + p[0] = xyz_r[i][0]; + p[1] = xyz_r[i][1]; + p[2] = xyz_r[i][2]; + + + double *closest = kd->FindClosest(p, max_dist_match2, thread_num); + if (!closest) { + diff.push_back(xyz_r[i]); + //diff.push_back(closest); + } + } + + delete kd; +} + +/** + * Calculates a set of corresponding point pairs and returns them. It + * computes the k-d trees and deletes them after the pairs have been + * found. This slow function should be used only for testing + * + * @param pairs The resulting point pairs (vector will be filled) + * @param Source The scan whose points are matched to Targets' points + * @param Target The scan to whiche the points are matched + * @param thread_num number of the thread (for parallelization) + * @param rnd randomized point selection + * @param max_dist_match2 maximal allowed distance for matching + */ +void Scan::getPtPairsSimple(vector *pairs, + Scan* Source, Scan* Target, + int thread_num, + int rnd, double max_dist_match2, + double *centroid_m, double *centroid_d) +{ + KDtree* kd = new KDtree(PointerArray(Source->get("xyz reduced")).get(), Source->size("xyz reduced")); + DataXYZ xyz_r(Target->get("xyz reduced")); + + for (unsigned int i = 0; i < xyz_r.size(); i++) { + if (rnd > 1 && rand(rnd) != 0) continue; // take about 1/rnd-th of the numbers only + + double p[3]; + p[0] = xyz_r[i][0]; + p[1] = xyz_r[i][1]; + p[2] = xyz_r[i][2]; + + double *closest = kd->FindClosest(p, max_dist_match2, thread_num); + if (closest) { + centroid_m[0] += closest[0]; + centroid_m[1] += closest[1]; + centroid_m[2] += closest[2]; + centroid_d[0] += p[0]; + centroid_d[1] += p[1]; + centroid_d[2] += p[2]; + PtPair myPair(closest, p); + pairs->push_back(myPair); + } + } + centroid_m[0] /= pairs[thread_num].size(); + centroid_m[1] /= pairs[thread_num].size(); + centroid_m[2] /= pairs[thread_num].size(); + centroid_d[0] /= pairs[thread_num].size(); + centroid_d[1] /= pairs[thread_num].size(); + centroid_d[2] /= pairs[thread_num].size(); + + delete kd; +} + + +/** + * Calculates a set of corresponding point pairs and returns them. + * The function uses the k-d trees stored the the scan class, thus + * the function createTrees and deletTrees have to be called before + * resp. afterwards. + * Here we implement the so called "fast corresponding points"; k-d + * trees are not recomputed, instead the apply the inverse transformation + * to to the given point set. + * + * @param pairs The resulting point pairs (vector will be filled) + * @param Source The scan whose points are matched to Targets' points + * @param Target The scan to whiche the points are matched + * @param thread_num number of the thread (for parallelization) + * @param rnd randomized point selection + * @param max_dist_match2 maximal allowed distance for matching + * @return a set of corresponding point pairs + */ +void Scan::getPtPairs(vector *pairs, + Scan* Source, Scan* Target, + int thread_num, + int rnd, double max_dist_match2, double &sum, + double *centroid_m, double *centroid_d) +{ + // initialize centroids + for(unsigned int i = 0; i < 3; ++i) { + centroid_m[i] = 0; + centroid_d[i] = 0; + } + + // get point pairs + DataXYZ xyz_r(Target->get("xyz reduced")); + Source->getSearchTree()->getPtPairs(pairs, Source->dalignxf, + xyz_r, 0, xyz_r.size(), + thread_num, + rnd, max_dist_match2, sum, centroid_m, centroid_d); + + // normalize centroids + unsigned int size = pairs->size(); + if(size != 0) { + for(unsigned int i = 0; i < 3; ++i) { + centroid_m[i] /= size; + centroid_d[i] /= size; + } + } +} + + +/** + * Calculates a set of corresponding point pairs and returns them. + * The function uses the k-d trees stored the the scan class, thus + * the function createTrees and delteTrees have to be called before + * resp. afterwards. + * + * @param pairs The resulting point pairs (vector will be filled) + * @param Source The scan whose points are matched to Targets' points + * @param Target The scan to whiche the points are matched + * @param thread_num The number of the thread that is computing ptPairs in parallel + * @param step The number of steps for parallelization + * @param rnd randomized point selection + * @param max_dist_match2 maximal allowed distance for matching + * @param sum The sum of distances of the points + * + * These intermediate values are for the parallel ICP algorithm + * introduced in the paper + * "The Parallel Iterative Closest Point Algorithm" + * by Langis / Greenspan / Godin, IEEE 3DIM 2001 + * + */ +void Scan::getPtPairsParallel(vector *pairs, Scan* Source, Scan* Target, + int thread_num, int step, + int rnd, double max_dist_match2, + double *sum, + double centroid_m[OPENMP_NUM_THREADS][3], double centroid_d[OPENMP_NUM_THREADS][3]) +{ + // initialize centroids + for(unsigned int i = 0; i < 3; ++i) { + centroid_m[thread_num][i] = 0; + centroid_d[thread_num][i] = 0; + } + + // get point pairs + SearchTree* search = Source->getSearchTree(); + // differentiate between a meta scan (which has no reduced points) and a normal scan + // if Source is also a meta scan it already has a special meta-kd-tree + MetaScan* meta = dynamic_cast(Target); + if(meta) { + for(unsigned int i = 0; i < meta->size(); ++i) { + // determine step for each scan individually + DataXYZ xyz_r(meta->getScan(i)->get("xyz reduced")); + unsigned int max = xyz_r.size(); + unsigned int step = max / OPENMP_NUM_THREADS; + // call ptpairs for each scan and accumulate ptpairs, centroids and sum + search->getPtPairs(&pairs[thread_num], Source->dalignxf, + xyz_r, step * thread_num, step * thread_num + step, + thread_num, + rnd, max_dist_match2, sum[thread_num], + centroid_m[thread_num], centroid_d[thread_num]); + } + } else { + DataXYZ xyz_r(Target->get("xyz reduced")); + search->getPtPairs(&pairs[thread_num], Source->dalignxf, + xyz_r, thread_num * step, thread_num * step + step, + thread_num, + rnd, max_dist_match2, sum[thread_num], + centroid_m[thread_num], centroid_d[thread_num]); + } + + // normalize centroids + unsigned int size = pairs[thread_num].size(); + if(size != 0) { + for(unsigned int i = 0; i < 3; ++i) { + centroid_m[thread_num][i] /= size; + centroid_d[thread_num][i] /= size; + } + } +} + +unsigned int Scan::getMaxCountReduced(ScanVector& scans) +{ + unsigned int max = 0; + for(std::vector::iterator it = scans.begin(); it != scans.end(); ++it) { + unsigned int count = (*it)->size("xyz reduced"); + if(count > max) + max = count; + } + return max; +} diff --git a/src/slam6d/scan_diff.cc b/src/slam6d/scan_diff.cc new file mode 100644 index 0000000..ba3783a --- /dev/null +++ b/src/slam6d/scan_diff.cc @@ -0,0 +1,368 @@ +/* + * scan_diff implementation + * + * Copyright (C) Dorit Borrmann + * + * Released under the GPL version 3. + * + */ + + +/** + * @file + * @brief Main program calculating difference of 3D scans. + * + * Program for calculating the difference between scans after matching with slam6d + * Usage: bin/scan_diff -s -e -d 'dir', + * Use -s for the first scan, -e for the second scan + * 'dir' the directory of a set of scans + * The result is a scan in the UOS format (.3d) that contains all points from + * the first scan that do NOT have a corresponding point in the second scan + * within a distance of less than NR units. + * Difference scans will be written to 'dir/diff' + * ATTENTION: All scans between START and END will be loaded! + * @author Dorit Borrmann. Automation Group, Jacobs University Bremen gGmbH, Germany. + */ +#ifdef _MSC_VER +#if !defined _OPENMP && defined OPENMP +#define _OPENMP +#endif +#endif + +#define WANT_STREAM ///< define the WANT stream :) +#include +using std::string; +#include +using std::cout; +using std::cerr; +using std::endl; +#include +using std::ofstream; +using std::ifstream; +#include + +#include "slam6d/scan.h" +#ifdef WITH_SCANSERVER +#include "scanserver/clientInterface.h" +#endif //WITH_SCANSERVER + +#include "slam6d/globals.icc" + +#ifdef _OPENMP +#include +#endif + + +#ifndef _MSC_VER +#include +#else +#include "XGetopt.h" +#endif + +#ifdef _MSC_VER +#define strcasecmp _stricmp +#define strncasecmp _strnicmp +#include +#include +#else +#include +#include +#include +#include +#endif + + +/** + * Explains the usage of this program's command line parameters + */ +void usage(char* prog) +{ +#ifndef _MSC_VER + const string bold("\033[1m"); + const string normal("\033[m"); +#else + const string bold(""); + const string normal(""); +#endif + cout << endl + << bold << "USAGE " << normal << endl + << " " << prog << "-s -e [options] directory" << endl << endl; + cout << bold << "OPTIONS" << normal << endl + << endl + << bold << " -s" << normal << " NR, " << bold << "--start=" << normal << "NR" << endl + << " start at scan NR (i.e., neglects the first NR scans)" << endl + << " [ATTENTION: counting naturally starts with 0]" << endl + << endl + << bold << " -e" << normal << " NR, " << bold << "--end=" << normal << "NR" << endl + << " end after scan NR" << endl + << endl + << bold << " -f" << normal << " F, " << bold << "--format=" << normal << "F" << endl + << " using shared library F for input" << endl + << " (chose F from {uos, uos_map, uos_rgb, uos_frames, uos_map_frames, old, rts, rts_map, ifp, riegl_txt, riegl_rgb, riegl_bin, rxp,zahn, ply})" << endl + << endl + << bold << " -m" << normal << " NR, " << bold << "--max=" << normal << "NR" << endl + << " neglegt all data points with a distance larger than NR 'units'" << endl + << endl + << bold << " -M" << normal << " NR, " << bold << "--min=" << normal << "NR" << endl + << " neglegt all data points with a distance smaller than NR 'units'" << endl + << endl + << bold << " -d" << normal << " NR, " << bold << "--dist=" << normal << "NR" << endl + << " write all points that have no corresponding point closer than NR 'units'" << endl + << endl << endl; + + cout << bold << "EXAMPLES " << normal << endl + << " " << prog << " -m 500 -d 5 dat" << endl + << " " << prog << " --max=5000 -d 10.2 dat" << endl + << endl; + exit(1); +} + +/** A function that parses the command-line arguments and sets the respective flags. + * @param argc the number of arguments + * @param argv the arguments + * @param dir the directory + * @param start first scan number 'start' + * @param end last scan number 'end' + * @param maxDist - maximal distance of points being loaded + * @param minDist - minimal distance of points being loaded + * @param dist the maximal distance for a point pair + * @param type the scan format + * @param desc true if start is greater than end + * @return 0, if the parsing was successful. 1 otherwise + */ +int parseArgs(int argc, char **argv, string &dir, + int &start, int &end, int &maxDist, int &minDist, double &dist, + IOType &type, bool &desc) +{ + int c; + // from unistd.h: + extern char *optarg; + extern int optind; + + /* options descriptor */ + // 0: no arguments, 1: required argument, 2: optional argument + static struct option longopts[] = { + { "format", required_argument, 0, 'f' }, + { "max", required_argument, 0, 'm' }, + { "min", required_argument, 0, 'M' }, + { "start", required_argument, 0, 's' }, + { "end", required_argument, 0, 'e' }, + { "dist", required_argument, 0, 'd' }, + { 0, 0, 0, 0} // needed, cf. getopt.h + }; + + cout << endl; + while ((c = getopt_long(argc, argv, "f:d:s:e:m:M:", longopts, NULL)) != -1) + switch (c) + { + case 'd': + dist = atof(optarg); + break; + case 's': + start = atoi(optarg); + if (start < 0) { cerr << "Error: Cannot start at a negative scan number.\n"; exit(1); } + break; + case 'e': + end = atoi(optarg); + if (end < 0) { cerr << "Error: Cannot end at a negative scan number.\n"; exit(1); } + break; + case 'f': + try { + type = formatname_to_io_type(optarg); + } catch (...) { // runtime_error + cerr << "Format " << optarg << " unknown." << endl; + abort(); + } + break; + case 'm': + maxDist = atoi(optarg); + break; + case 'M': + minDist = atoi(optarg); + break; + case '?': + usage(argv[0]); + return 1; + default: + abort (); + } + + if(start < 0 || end < 0 || start == end) { + cerr << "\n*** You need two different scans for difference calculations ***" << endl; + usage(argv[0]); + } + if (optind != argc-1) { + cerr << "\n*** Directory missing ***" << endl; + usage(argv[0]); + } + dir = argv[optind]; + +#ifndef _MSC_VER + if (dir[dir.length()-1] != '/') dir = dir + "/"; +#else + if (dir[dir.length()-1] != '\\') dir = dir + "\\"; +#endif + if(start > end) { + double tmp = start; + start = end; + end = tmp; + desc = true; + } + + return 0; +} + + +/** + * Main program for calculating the difference of two scans. + * Usage: bin/scan_diff -d -s -e 'dir', + * Use -s and -e for the two scans, + * -d + * and 'dir' the directory of a set of scans + * Difference scans will be written to 'dir/diff/scan[00]s.3d' + * + */ +int main(int argc, char **argv) +{ + + cout << "(c) Jacobs University Bremen, gGmbH, 2010" << endl << endl; + + if (argc <= 1) { + usage(argv[0]); + } + + // parsing the command line parameters + // init, default values if not specified + string dir; + double dist = 0; + int start = -1, end = -1; + int maxDist = -1; + int minDist = -1; + IOType type = RIEGL_TXT; + bool desc = false; + + parseArgs(argc, argv, dir, start, end, maxDist, minDist, dist, type, desc); + +#ifdef WITH_SCANSERVER + try { + ClientInterface::create(); + } catch(std::runtime_error& e) { + cerr << "ClientInterface could not be created: " << e.what() << endl; + cerr << "Start the scanserver first." << endl; + exit(-1); + } +#endif //WITH_SCANSERVER + + // Get Scans (all scans between start and end) +#ifndef WITH_SCANSERVER + Scan::dir = dir; +#endif //WITH_SCANSERVER + string diffdir = dir + "diff"; + +#ifdef _MSC_VER + int success = mkdir(diffdir.c_str()); +#else + int success = mkdir(diffdir.c_str(), S_IRWXU|S_IRWXG|S_IRWXO); +#endif + if(success == 0) { + cout << "Writing scans to " << diffdir << endl; + } else if(errno == EEXIST) { + cout << "Directory " << diffdir << " exists already. CONTINUE" << endl; + } else { + cerr << "Creating directory " << diffdir << " failed" << endl; + exit(1); + } + string scanFileName; + string framesFileName; + ifstream frames_in; + double inMatrix0[17]; + double inMatrix1[17]; + + cout << "Reading Scan No. " << start; + framesFileName = dir + "scan" + to_string(start,3) + ".frames"; + frames_in.open(framesFileName.c_str()); + + if(!frames_in.good()) { + cerr << "Couldn't read frames " << end << endl; + exit(1); + } + while(frames_in.good()) { + for (unsigned int i = 0; i < 17; frames_in >> inMatrix0[i++]); + } + frames_in.close(); + frames_in.clear(); + for(int i = 0; i < 16; i++) { + cout << inMatrix0[i] << " "; + } + cout << endl; + + cout << "Reading Scan No. " << end; + framesFileName = dir + "scan" + to_string(end,3) + ".frames"; + frames_in.open(framesFileName.c_str()); + + if(!frames_in.good()) { + cerr << "Couldn't read frames " << end << endl; + exit(1); + } + while(frames_in.good()) { + for (unsigned int i = 0; i < 17; frames_in >> inMatrix1[i++]); + } + frames_in.close(); + frames_in.clear(); + for(int i = 0; i < 16; i++) { + cout << inMatrix1[i] << " "; + } + cout << endl; + + Scan::readScans(type, start, end, dir, maxDist, minDist, 0); + int endIndex = Scan::allScans.size() - 1; + + Scan::allScans[0]->calcReducedPoints(-1, 0); + Scan::allScans[0]->transform(inMatrix0, Scan::INVALID); + Scan::allScans[endIndex]->calcReducedPoints(-1, 0); + Scan::allScans[endIndex]->transform(inMatrix1, Scan::INVALID); + + cout << Scan::allScans[0]->get_points_red_size() + << " " << Scan::allScans[endIndex]->get_points_red_size() << endl; + + int thread_num = 0; + vector diff; + double transMat[16]; + + if(desc) { + Scan::getNoPairsSimple(diff, Scan::allScans[endIndex], Scan::allScans[0], thread_num, dist); + M4inv(inMatrix1, transMat); + scanFileName = dir + "diff/scan" + to_string(end,3) + ".3d"; + } else { + Scan::getNoPairsSimple(diff, Scan::allScans[0], Scan::allScans[endIndex], thread_num, dist); + M4inv(inMatrix0, transMat); + scanFileName = dir + "diff/scan" + to_string(start,3) + ".3d"; + } + + cout << endl; + for(int i = 0; i < 16; i++) { + cout << transMat[i] << " "; + } + cout << endl; + for(int i = 0; i < 16; i++) { + cout << inMatrix0[i] << " "; + } + cout << endl; + + ofstream ptsout(scanFileName.c_str()); + + for(unsigned int i = 0; i < diff.size(); i++) { + Point p(diff[i]); + p.transform(transMat); + ptsout << p.x << " " << p.y << " " << p.z << " " << endl; + } + + ptsout.close(); + ptsout.clear(); + + delete Scan::allScans[0]; + Scan::allScans.clear(); + + cout << endl << endl; + cout << "Normal program end." << endl << endl; +} diff --git a/src/slam6d/scan_diff2d.cc b/src/slam6d/scan_diff2d.cc new file mode 100644 index 0000000..0574682 --- /dev/null +++ b/src/slam6d/scan_diff2d.cc @@ -0,0 +1,586 @@ +/* + * scan_diff2d implementation + * + * Copyright (C) Dorit Borrmann + * + * Released under the GPL version 3. + * + */ + +/** + * @file + * @brief Main program calculating difference of 3D scans. + * + * Program for calculating the 2d-difference between scans after matching with slam6d + * Usage: bin/scan_diff2d -s -e -d 'dir', + * Use -s for the first scan, -e for the second scan + * 'dir' the directory of a set of scans + * The result is an image showing the color coded difference of the two scans + * ATTENTION: All scans between START and END will be loaded! + * @author Dorit Borrmann. Automation Group, Jacobs University Bremen gGmbH, Germany. + */ +#ifdef _MSC_VER +#ifdef OPENMP +#define _OPENMP +#endif +#endif + +#define WANT_STREAM ///< define the WANT stream :) +#include +using std::string; +#include +using std::cout; +using std::cerr; +using std::endl; +#include +using std::ofstream; +using std::ifstream; +#include + +#include "slam6d/scan.h" + +#include "slam6d/scan_io.h" +#include "slam6d/globals.icc" + +#ifdef _OPENMP +#include +#endif + + +#ifndef _MSC_VER +#include +#else +#include "XGetopt.h" +#endif +#include "show/colormanager.h" + +#ifdef _MSC_VER +#define strcasecmp _stricmp +#define strncasecmp _strnicmp +#include +#include +#else +#include +#include +#include +#include +#endif + +#include "slam6d/kd.h" +#include "slam6d/kdc.h" +#include +#include +using namespace std; + + + +int WIDTH=0; +int HEIGHT=0; +double MINTHETA; +double MAXTHETA; +double MINPHI; +double MAXPHI; + +double minphi,maxphi; +double mintheta,maxtheta; +bool **stencilImage1; +bool **stencilImage; +double **rangeImage; +double **rangeImage2; +Point **pointImage; + +void writeRI(const char *filename, double max, double shift) +{ + SHSVMap cmap; + float color[3]; + unsigned int buckets = 4096; + + ofstream fp; // The PPM File + unsigned char *ibuffer; // The PPM Output Buffer + // Allocate memory for the the frame buffer and output buffer + ibuffer = new unsigned char[WIDTH * HEIGHT * 3]; + + // Open the output file + fp.open(filename, ios::out); + + // Write a proper P6 PPM header + fp << "P6" << endl << "# CREATOR: 3D_Viewer by Andreas Nuechter, University of Osnabrueck" + << endl << WIDTH << " " << HEIGHT << " " << UCHAR_MAX << endl; + + // Loop through the frame buffer data, writing to the PPM file. Be careful + // to account for the frame buffer having 4 bytes per pixel while the + // output file has 3 bytes per pixel + int l = 0; + for (int i = 0; i < HEIGHT; i++) { // For each row + for (int jj = 0; jj < WIDTH; jj++) { // For each column + int j = (jj + (int)(WIDTH*shift))%WIDTH; + if(!stencilImage[j][i]) { + ibuffer[l++] = UCHAR_MAX; + ibuffer[l++] = UCHAR_MAX; + ibuffer[l++] = UCHAR_MAX; + } else { + cmap.calcColor(color, (max + rangeImage[j][i])/(max*2.0) * buckets, buckets); + ibuffer[l++] = (unsigned char)min( (int)((color[0])*UCHAR_MAX), UCHAR_MAX); + ibuffer[l++] = (unsigned char)min( (int)((color[1])*UCHAR_MAX), UCHAR_MAX); + ibuffer[l++] = (unsigned char)min( (int)((color[2])*UCHAR_MAX), UCHAR_MAX); + } + } // end column + } // end row + + // Write output buffer to the file */ + fp.write((const char*)ibuffer, sizeof(unsigned char) * (3 * WIDTH * HEIGHT)); + fp.close(); + fp.clear(); + delete [] ibuffer; +} + + +void toRI(double _x, double _y, double _z, int &X, int &Y, double &range) { + double x = _z/100.0; + double y = _x/(-100.0); + double z = _y/100.0; + + double phi = 0.0; + double theta = 0.0; + range = std::sqrt(x*x + y*y + z*z); + + if (range > 0.00000001) { + phi = atan2(y,x); + phi = ((phi<0.0)?(phi+2.0*M_PI):phi); + theta = std::acos(z/range); + + if (phi > maxphi) maxphi = phi; + if (phi < minphi) minphi = phi; + if (theta > maxtheta) maxtheta = theta; + if (theta < mintheta) mintheta = theta; + } + + + X = WIDTH * (phi/( MAXPHI - MINPHI )); + Y = HEIGHT * ((theta - MINTHETA)/( MAXTHETA - MINTHETA )); +} + +void toPoint(int X, int Y, double range, double &x, double &y, double &z) { + x = y = z = 0.0; + + if (range > 0.000000001) { + double _z = cos(((double)Y/(double)HEIGHT * (double)(MAXTHETA - MINTHETA)) + MINTHETA) * range; + double _y = sin((double)X/(double)WIDTH * (double)(MAXPHI - MINPHI)) * range; + double _x = cos((double)X/(double)WIDTH * (double)(MAXPHI - MINPHI)) * range; + x = _y*-100.0; + y = _z*100.0; + z = _x*100.0; + } +} + +/** + * Explains the usage of this program's command line parameters + */ +void usage(char* prog) +{ +#ifndef _MSC_VER + const string bold("\033[1m"); + const string normal("\033[m"); +#else + const string bold(""); + const string normal(""); +#endif + cout << endl + << bold << "USAGE " << normal << endl + << " " << prog << "-s -e [options] directory" << endl << endl; + cout << bold << "OPTIONS" << normal << endl + << endl + << bold << " -s" << normal << " NR, " << bold << "--start=" << normal << "NR" << endl + << " start at scan NR (i.e., neglects the first NR scans)" << endl + << " [ATTENTION: counting naturally starts with 0]" << endl + << endl + << bold << " -e" << normal << " NR, " << bold << "--end=" << normal << "NR" << endl + << " end after scan NR" << endl + << endl + << bold << " -f" << normal << " F, " << bold << "--format=" << normal << "F" << endl + << " using shared library F for input" << endl + << " (chose F from {uos, uos_map, uos_rgb, uos_frames, uos_map_frames, old, rts, rts_map, ifp, riegl_txt, riegl_rgb, riegl_bin, rxp,zahn, ply})" << endl + << endl + << bold << " -m" << normal << " NR, " << bold << "--max=" << normal << "NR" << endl + << " neglegt all data points with a distance larger than NR 'units'" << endl + << endl + << bold << " -M" << normal << " NR, " << bold << "--min=" << normal << "NR" << endl + << " neglegt all data points with a distance smaller than NR 'units'" << endl + << endl + << bold << " -d" << normal << " NR, " << bold << "--dist=" << normal << "NR" << endl + << " write all points that have no corresponding point closer than NR 'units'" << endl + << endl << endl; + + cout << bold << "EXAMPLES " << normal << endl + << " " << prog << " -m 500 -d 5 dat" << endl + << " " << prog << " --max=5000 -d 10.2 dat" << endl + << endl; + exit(1); +} + +/** A function that parses the command-line arguments and sets the respective flags. + * @param argc the number of arguments + * @param argv the arguments + * @param dir the directory + * @param start first scan number 'start' + * @param end last scan number 'end' + * @param maxDist - maximal distance of points being loaded + * @param minDist - minimal distance of points being loaded + * @param dist the maximal distance for a point pair + * @param type the scan format + * @param desc true if start is greater than end + * @return 0, if the parsing was successful. 1 otherwise + */ +int parseArgs(int argc, char **argv, string &dir, + int &start, int &end, int &maxDist, int &minDist, double &dist, + IOType &type, bool &desc, double &res, double &shift, int &mode) +{ + int c; + // from unistd.h: + extern char *optarg; + extern int optind; + + /* options descriptor */ + // 0: no arguments, 1: required argument, 2: optional argument + static struct option longopts[] = { + { "format", required_argument, 0, 'f' }, + { "max", required_argument, 0, 'm' }, + { "min", required_argument, 0, 'M' }, + { "start", required_argument, 0, 's' }, + { "end", required_argument, 0, 'e' }, + { "dist", required_argument, 0, 'd' }, + { "resolution", required_argument, 0, 'r' }, + { "shift", required_argument, 0, 'h' }, + { "mode", required_argument, 0, '0' }, + { 0, 0, 0, 0} // needed, cf. getopt.h + }; + + cout << endl; + while ((c = getopt_long(argc, argv, "h:r:f:d:s:e:m:M:", longopts, NULL)) != -1) + switch (c) + { + case '0': + mode = atoi(optarg); + break; + case 'h': + shift = atof(optarg); + break; + case 'r': + res = atof(optarg); + break; + case 'd': + dist = atof(optarg); + break; + case 's': + start = atoi(optarg); + if (start < 0) { cerr << "Error: Cannot start at a negative scan number.\n"; exit(1); } + break; + case 'e': + end = atoi(optarg); + if (end < 0) { cerr << "Error: Cannot end at a negative scan number.\n"; exit(1); } + break; + case 'f': + try { + type = formatname_to_io_type(optarg); + } catch (...) { // runtime_error + cerr << "Format " << optarg << " unknown." << endl; + abort(); + } + break; + case 'm': + maxDist = atoi(optarg); + break; + case 'M': + minDist = atoi(optarg); + break; + case '?': + usage(argv[0]); + return 1; + default: + abort (); + } + + if(start < 0 || end < 0 ) { + cerr << "\n*** You need two different scans for difference calculations ***" << endl; + usage(argv[0]); + } + if (optind != argc-1) { + cerr << "\n*** Directory missing ***" << endl; + usage(argv[0]); + } + dir = argv[optind]; + +#ifndef _MSC_VER + if (dir[dir.length()-1] != '/') dir = dir + "/"; +#else + if (dir[dir.length()-1] != '\\') dir = dir + "\\"; +#endif + if(start > end) { + double tmp = start; + start = end; + end = tmp; + desc = true; + } + + return 0; +} + + +/** + * Main program for calculating the difference of two scans. + * Usage: bin/scan_diff -d -s -e 'dir', + * Use -s and -e for the two scans, + * -d + * and 'dir' the directory of a set of scans + * Difference scans will be written to 'dir/diff/scan[00]s.3d' + * + */ +int main(int argc, char **argv) +{ + + cout << "(c) Jacobs University Bremen, gGmbH, 2010" << endl << endl; + + if (argc <= 1) { + usage(argv[0]); + } + + // parsing the command line parameters + // init, default values if not specified + string dir; + double dist = 0; + int start = -1, end = -1; + int maxDist = -1; + int minDist = -1; + IOType type = RIEGL_TXT; + bool desc = false; + double resolution = 0.25; + double shift = 0.5; + int mode = 0; + + parseArgs(argc, argv, dir, start, end, maxDist, minDist, dist, type, desc, resolution, shift, mode); + + resolution = rad(resolution); + + // Get Scans (all scans between start and end) + Scan::dir = dir; + + string scanFileName; + string framesFileName; + ifstream frames_in; + double inMatrix0[17]; + double inMatrix1[17]; + + cout << "Reading Scan No. " << start; + framesFileName = dir + "scan" + to_string(start,3) + ".frames"; + frames_in.open(framesFileName.c_str()); + + if(!frames_in.good()) { + cerr << "Couldn't read frames " << end << endl; + exit(1); + } + while(frames_in.good()) { + for (unsigned int i = 0; i < 17; frames_in >> inMatrix0[i++]); + } + frames_in.close(); + frames_in.clear(); + cout << "Reading Scan No. " << end; + framesFileName = dir + "scan" + to_string(end,3) + ".frames"; + frames_in.open(framesFileName.c_str()); + + if(!frames_in.good()) { + cerr << "Couldn't read frames " << end << endl; + exit(1); + } + while(frames_in.good()) { + for (unsigned int i = 0; i < 17; frames_in >> inMatrix1[i++]); + } + frames_in.close(); + frames_in.clear(); + + Scan::readScans(type, start, end, dir, maxDist, minDist, 0); + int endIndex = Scan::allScans.size() - 1; + + Scan *rangescan = Scan::allScans[0]; + Scan *targetscan = Scan::allScans[endIndex]; + Scan::allScans[endIndex]->calcReducedPoints(-1, 0); + + double tinv[16]; M4inv(inMatrix0, tinv); + double tmat[16]; + MMult(tinv, inMatrix1, tmat); + + Scan::allScans[endIndex]->transform(tmat, Scan::INVALID); + + string name; + int thread_num = 0; + vector diff; + double transMat[16]; + + + cout << "set up range image" << endl; + double x,y,z,r; + int X,Y; + // first subsample to RI + const vector *points = rangescan->get_points(); + maxphi = maxtheta = -DBL_MAX; + mintheta = minphi = DBL_MAX; + cout << "establish max and mins..." << endl; + double MINDIST = 40.0; + + for (unsigned int i = 0; i < points->size(); i++) { + Point p = (*points)[i]; + //////////////////////////// + if ( sqrt(p.x*p.x + p.z*p.z ) < MINDIST ) continue; + /////////////////////////// + toRI(p.x, p.y, p.z, X, Y, r); + } + MAXTHETA = maxtheta; + MINTHETA = mintheta; + MAXPHI = maxphi; + MINPHI = minphi; + HEIGHT = (MAXTHETA - MINTHETA)/resolution; + WIDTH = (MAXPHI - MINPHI)/resolution; + + switch (mode) { + case 0: + { + cout << "creating data structures " << WIDTH << " " << HEIGHT << endl; + stencilImage = new bool*[WIDTH+1]; + rangeImage = new double*[WIDTH+1]; + pointImage = new Point*[WIDTH+1]; + for (int i = 0; i <= WIDTH; i++) { + stencilImage[i] = new bool[HEIGHT+1]; + rangeImage[i] = new double[HEIGHT+1]; + pointImage[i] = new Point[HEIGHT+1]; + for (int j = 0; j <= HEIGHT; j++) { + rangeImage[i][j] = DBL_MAX; + stencilImage[i][j] = false; + } + } + cout << "thin out points " << points->size() << endl; + for (unsigned int i = 0; i < points->size(); i++) { + Point p = (*points)[i]; + //////////////////////////// + if ( sqrt(p.x*p.x + p.z*p.z ) < MINDIST ) continue; + /////////////////////////// + toRI(p.x, p.y, p.z, X, Y, r); + if (X >= 0 && X < WIDTH && Y >= 0 && Y < HEIGHT ) { + if (rangeImage[X][Y] > r) { + stencilImage[X][Y] = true; + rangeImage[X][Y] = r; + pointImage[X][Y] = p; + } + } + } + + + cout << "done setting up range image" << endl; + + targetscan->createTree(false, false); + const SearchTree *kd = targetscan->get_tree(); + + cout << " looking for closest points... " << endl; + double mdm2 = dist*dist; + for (int X = 0; X < WIDTH; X++) { + for (int Y = 0; Y < HEIGHT; Y++) { + if (!stencilImage[X][Y]) continue; + double p[3]; + p[0] = pointImage[X][Y].x; + p[1] = pointImage[X][Y].y; + p[2] = pointImage[X][Y].z; + + double *closest = kd->FindClosest(p, mdm2, 0); + + if (closest) { + rangeImage[X][Y] = sqrt(Dist2(closest, p)); + double v[3]; + for (int i = 0; i < 3; i++) + v[i] = closest[i] - p[i]; + + double d = v[0]*p[0] + v[1]*p[1] + v[2]*p[2]; + if (d <= 0) { + rangeImage[X][Y] *= -1.0; + } + + } else { + rangeImage[X][Y] = dist; + } + } + } + } + break; + case 1: + { + cout << "creating data structures " << WIDTH << " " << HEIGHT << endl; + stencilImage = new bool*[WIDTH+1]; + stencilImage1 = new bool*[WIDTH+1]; + rangeImage = new double*[WIDTH+1]; + rangeImage2 = new double*[WIDTH+1]; + for (int i = 0; i <= WIDTH; i++) { + stencilImage[i] = new bool[HEIGHT+1]; + stencilImage1[i] = new bool[HEIGHT+1]; + rangeImage[i] = new double[HEIGHT+1]; + rangeImage2[i] = new double[HEIGHT+1]; + for (int j = 0; j <= HEIGHT; j++) { + rangeImage[i][j] = DBL_MAX; + rangeImage2[i][j] = DBL_MAX; + stencilImage[i][j] = false; + stencilImage1[i][j] = false; + } + } + cout << "thin out points " << points->size() << endl; + for (unsigned int i = 0; i < points->size(); i++) { + Point p = (*points)[i]; + //////////////////////////// + if ( sqrt(p.x*p.x + p.z*p.z ) < MINDIST ) continue; + /////////////////////////// + toRI(p.x, p.y, p.z, X, Y, r); + if (X >= 0 && X < WIDTH && Y >= 0 && Y < HEIGHT ) { + if (rangeImage[X][Y] > r) { + stencilImage1[X][Y] = true; + rangeImage[X][Y] = fabs(r); + } + } + } + + for (unsigned int i = 0; i < Scan::allScans[endIndex]->get_points_red_size(); i++) { + Point p; + p.x = Scan::allScans[endIndex]->get_points_red()[i][0]; + p.y = Scan::allScans[endIndex]->get_points_red()[i][1]; + p.z = Scan::allScans[endIndex]->get_points_red()[i][2]; + //////////////////////////// + if ( sqrt(p.x*p.x + p.z*p.z ) < MINDIST ) continue; + /////////////////////////// + toRI(p.x, p.y, p.z, X, Y, r); + if (X >= 0 && X < WIDTH && Y >= 0 && Y < HEIGHT ) { + if (rangeImage2[X][Y] > r && stencilImage1[X][Y]) { + stencilImage[X][Y] = true; + rangeImage2[X][Y] = fabs(r); + } + } + } + + cout << "done setting up range image" << endl; + for (int X = 0; X < WIDTH; X++) { + for (int Y = 0; Y < HEIGHT; Y++) { + if (!stencilImage[X][Y]) continue; + if (rangeImage[X][Y] == DBL_MAX) continue; + rangeImage[X][Y] = 100.0 * (rangeImage[X][Y] - rangeImage2[X][Y]) ; // to meters + } + } + + } + break; + default: + break; + } + + + name = dir + "diff_" + to_string(start, 3) + "_" + to_string(end,3) + ".ppm"; + writeRI(name.c_str(), dist, shift); + + delete Scan::allScans[0]; + Scan::allScans.clear(); + + cout << endl << endl; + cout << "Normal program end." << endl << endl; +} diff --git a/src/slam6d/scan_red.cc b/src/slam6d/scan_red.cc new file mode 100644 index 0000000..1c72af8 --- /dev/null +++ b/src/slam6d/scan_red.cc @@ -0,0 +1,365 @@ +/* + * scan_red implementation + * + * Copyright (C) Dorit Borrmann + * + * Released under the GPL version 3. + * + */ + + +/** + * @file + * @brief Main program for reducing 3D scans. + * + * Program to reduce scans for use with slam6d + * Usage: bin/scan_red -r 'dir', + * Use -r for octree based reduction (voxel size=) + * and 'dir' the directory of a set of scans + * Reduced scans will be written to 'dir/reduced' + * + * @author Dorit Borrmann. Automation Group, Jacobs University Bremen gGmbH, Germany. + */ +#ifdef _MSC_VER +#if !defined _OPENMP && defined OPENMP +#define _OPENMP +#endif +#endif + +#define WANT_STREAM ///< define the WANT stream :) +#include +using std::string; +#include +using std::cout; +using std::cerr; +using std::endl; +#include +using std::ofstream; +#include + +#include "slam6d/scan.h" +#ifdef WITH_SCANSERVER +#include "scanserver/clientInterface.h" +#endif //WITH_SCANSERVER + +#include "slam6d/globals.icc" + +#ifdef _OPENMP +#include +#endif + + +#ifndef _MSC_VER +#include +#else +#include "XGetopt.h" +#endif + +#ifdef _MSC_VER +#define strcasecmp _stricmp +#define strncasecmp _strnicmp +#include +#include +#else +#include +#include +#include +#include +#endif + + +/** + * Explains the usage of this program's command line parameters + */ +void usage(char* prog) +{ +#ifndef _MSC_VER + const string bold("\033[1m"); + const string normal("\033[m"); +#else + const string bold(""); + const string normal(""); +#endif + cout << endl + << bold << "USAGE " << normal << endl + << " " << prog << " [options] -r directory" << endl << endl; + cout << bold << "OPTIONS" << normal << endl + + << bold << " -e" << normal << " NR, " << bold << "--end=" << normal << "NR" << endl + << " end after scan NR" << endl + << endl + << bold << " -f" << normal << " F, " << bold << "--format=" << normal << "F" << endl + << " using shared library F for input" << endl + << " (chose F from {uos, uos_map, uos_rgb, uos_frames, uos_map_frames, old, rts, rts_map, ifp, riegl_txt, riegl_rgb, riegl_bin, zahn, ply})" << endl + << endl + << bold << " -m" << normal << " NR, " << bold << "--max=" << normal << "NR" << endl + << " neglegt all data points with a distance larger than NR 'units'" << endl + << endl + << bold << " -M" << normal << " NR, " << bold << "--min=" << normal << "NR" << endl + << " neglegt all data points with a distance smaller than NR 'units'" << endl + << endl + << bold << " -r" << normal << " NR, " << bold << "--reduce=" << normal << "NR" << endl + << " turns on octree based point reduction (voxel size=)" << endl + << endl + << bold << " -s" << normal << " NR, " << bold << "--start=" << normal << "NR" << endl + << " start at scan NR (i.e., neglects the first NR scans)" << endl + << " [ATTENTION: counting naturally starts with 0]" << endl + << endl + << endl << endl; + + cout << bold << "EXAMPLES " << normal << endl + << " " << prog << " -m 500 -r 5 dat" << endl + << " " << prog << " --max=5000 -r 10.2 dat" << endl + << " " << prog << " -s 2 -e 10 -r dat" << endl << endl; + exit(1); +} + +/** A function that parses the command-line arguments and sets the respective flags. + * @param argc the number of arguments + * @param argv the arguments + * @param dir the directory + * @param red using point reduction? + * @param rand use randomized point reduction? + * @param start starting at scan number 'start' + * @param end stopping at scan number 'end' + * @param maxDist - maximal distance of points being loaded + * @param minDist - minimal distance of points being loaded + * @param quiet switches on/off the quiet mode + * @param veryQuiet switches on/off the 'very quiet' mode + * @return 0, if the parsing was successful. 1 otherwise + */ +int parseArgs(int argc, char **argv, string &dir, double &red, + int &start, int &end, int &maxDist, int &minDist, int &octree, + IOType &type) +{ + bool reduced = false; + int c; + // from unistd.h: + extern char *optarg; + extern int optind; + + /* options descriptor */ + // 0: no arguments, 1: required argument, 2: optional argument + static struct option longopts[] = { + { "format", required_argument, 0, 'f' }, + { "max", required_argument, 0, 'm' }, + { "min", required_argument, 0, 'M' }, + { "start", required_argument, 0, 's' }, + { "end", required_argument, 0, 'e' }, + { "reduce", required_argument, 0, 'r' }, + { "octree", optional_argument, 0, 'O' }, + { 0, 0, 0, 0} // needed, cf. getopt.h + }; + + cout << endl; + while ((c = getopt_long(argc, argv, "f:r:s:e:m:M:O:", longopts, NULL)) != -1) + switch (c) + { + case 'r': + red = atof(optarg); + reduced = true; + break; + case 's': + start = atoi(optarg); + if (start < 0) { cerr << "Error: Cannot start at a negative scan number.\n"; exit(1); } + break; + case 'e': + end = atoi(optarg); + if (end < 0) { cerr << "Error: Cannot end at a negative scan number.\n"; exit(1); } + if (end < start) { cerr << "Error: cannot be smaller than .\n"; exit(1); } + break; + case 'f': + try { + type = formatname_to_io_type(optarg); + } catch (...) { // runtime_error + cerr << "Format " << optarg << " unknown." << endl; + abort(); + } + break; + case 'm': + maxDist = atoi(optarg); + break; + case 'O': + if (optarg) { + octree = atoi(optarg); + } else { + octree = 1; + } + break; + case 'M': + minDist = atoi(optarg); + break; + case '?': + usage(argv[0]); + return 1; + default: + abort (); + } + + if(!reduced) { + cerr << "\n*** Reduction method missed ***" << endl; + usage(argv[0]); + } + if (optind != argc-1) { + cerr << "\n*** Directory missing ***" << endl; + usage(argv[0]); + } + dir = argv[optind]; + +#ifndef _MSC_VER + if (dir[dir.length()-1] != '/') dir = dir + "/"; +#else + if (dir[dir.length()-1] != '\\') dir = dir + "\\"; +#endif + + return 0; +} + + +/** + * Main program for reducing scans. + * Usage: bin/scan_red -r 'dir', + * Use -r for octree based reduction (voxel size=) + * and 'dir' the directory of a set of scans + * Reduced scans will be written to 'dir/reduced' + * + */ +int main(int argc, char **argv) +{ + + cout << "(c) Jacobs University Bremen, gGmbH, 2010" << endl << endl; + + if (argc <= 1) { + usage(argv[0]); + } + + // parsing the command line parameters + // init, default values if not specified + string dir; + double red = -1.0; + int start = 0, end = -1; + int maxDist = -1; + int minDist = -1; + int octree = 0; + IOType type = RIEGL_TXT; + + parseArgs(argc, argv, dir, red, start, end, maxDist, minDist, octree, type); + +#ifdef WITH_SCANSERVER + try { + ClientInterface::create(); + } catch(std::runtime_error& e) { + cerr << "ClientInterface could not be created: " << e.what() << endl; + cerr << "Start the scanserver first." << endl; + exit(-1); + } +#endif //WITH_SCANSERVER + + // Get Scans +#ifndef WITH_SCANSERVER + Scan::dir = dir; + int fileNr = start; +#endif //WITH_SCANSERVER + string reddir = dir + "reduced"; + +#ifdef _MSC_VER + int success = mkdir(reddir.c_str()); +#else + int success = mkdir(reddir.c_str(), S_IRWXU|S_IRWXG|S_IRWXO); +#endif + if(success == 0) { + cout << "Writing scans to " << reddir << endl; + } else if(errno == EEXIST) { + cout << "Directory " << reddir << " exists already. CONTINUE" << endl; + } else { + cerr << "Creating directory " << reddir << " failed" << endl; + exit(1); + } + +#ifndef WITH_SCANSERVER + while (fileNr <= end) { + Scan::readScans(type, fileNr, fileNr, dir, maxDist, minDist, 0); + const double* rPos = Scan::allScans[0]->get_rPos(); + const double* rPosTheta = Scan::allScans[0]->get_rPosTheta(); + + // reduction filter for current scan! + + cout << "Reducing Scan No. " << fileNr << endl; + Scan::allScans[0]->calcReducedPoints(red, octree); + + + cout << "Writing Scan No. " << fileNr ; + cout << " with " << Scan::allScans[0]->get_points_red_size() << " points" << endl; + string scanFileName; + string poseFileName; + + scanFileName = dir + "reduced/scan" + to_string(fileNr,3) + ".3d"; + poseFileName = dir + "reduced/scan" + to_string(fileNr,3) + ".pose"; + + + ofstream redptsout(scanFileName.c_str()); + for (int j = 0; j < Scan::allScans[0]->get_points_red_size(); j++) { + Point p(Scan::allScans[0]->get_points_red()[j]); + //Points in global coordinate system + redptsout << p.x << " " << p.y << " " << p.z << endl; + + } + redptsout.close(); + redptsout.clear(); +#else //WITH_SCANSERVER + Scan::readScans(type, start, end, dir, maxDist, minDist); + for(std::vector::iterator it = Scan::allScans.begin(); it != Scan::allScans.end(); ++it) + { + Scan* scan = *it; + const double* rPos = scan->get_rPos(); + const double* rPosTheta = scan->get_rPosTheta(); + + scan->calcReducedPoints(red, octree); + + const char* id = scan->getIdentifier(); + cout << "Writing Scan No. " << id; + cout << " with " << scan->getCountReduced() << " points" << endl; + string scanFileName; + string poseFileName; + + scanFileName = dir + "reduced/scan" + id + ".3d"; + poseFileName = dir + "reduced/scan" + id + ".pose"; + + ofstream redptsout(scanFileName.c_str()); + DataXYZ xyz_r(scan->getXYZReduced()); + for(unsigned int j = 0; j < xyz_r.size(); j++) { + //Points in global coordinate system + redptsout << xyz_r[j][0] << " " << xyz_r[j][1] << " " << xyz_r[j][2] << endl; + } + redptsout.close(); + redptsout.clear(); +#endif //WITH_SCANSERVER + + ofstream posout(poseFileName.c_str()); + + posout << rPos[0] << " " + << rPos[1] << " " + << rPos[2] << endl + << deg(rPosTheta[0]) << " " + << deg(rPosTheta[1]) << " " + << deg(rPosTheta[2]) << endl; + + posout.close(); + posout.clear(); + +#ifndef WITH_SCANSERVER + delete Scan::allScans[0]; + Scan::allScans.clear(); + fileNr++; +#endif //WITH_SCANSERVER + } + + cout << endl << endl; + cout << "Normal program end." << endl << endl; + +#ifdef WITH_SCANSERVER + Scan::clearScans(); + ClientInterface::destroy(); +#endif //WITH_SCANSERVER +} + diff --git a/src/slam6d/searchTree.cc b/src/slam6d/searchTree.cc new file mode 100644 index 0000000..856716c --- /dev/null +++ b/src/slam6d/searchTree.cc @@ -0,0 +1,143 @@ +/* + * searchTree implementation + * + * Copyright (C) Jan Elseberg, Andreas Nuechter + * + * Released under the GPL version 3. + * + */ + +/** + * @file + * @brief Representation of a general search trees + * @author Jan Elseberg. Jacobs University Bremen gGmbH, Germany + * @author Andreas Nuechter. Jacobs University Bremen gGmbH, Germany + */ + +#include "slam6d/searchTree.h" +#include "slam6d/scan.h" +#include "slam6d/globals.icc" + +void SearchTree::getPtPairs(vector *pairs, + double *source_alignxf, // source + double * const *q_points, unsigned int startindex, unsigned int endindex, // target + int thread_num, + int rnd, double max_dist_match2, double &sum, + double *centroid_m, double *centroid_d) +{ + // prepare this tree for resource access in FindClosest + lock(); + + double local_alignxf_inv[16]; + M4inv(source_alignxf, local_alignxf_inv); + + // t is the original point from target, s is the (inverted) query point from target and then + // the closest point in source + double t[3], s[3]; + for (unsigned int i = startindex; i < endindex; i++) { + if (rnd > 1 && rand(rnd) != 0) continue; // take about 1/rnd-th of the numbers only + + t[0] = q_points[i][0]; + t[1] = q_points[i][1]; + t[2] = q_points[i][2]; + + transform3(local_alignxf_inv, t, s); + + double *closest = this->FindClosest(s, max_dist_match2, thread_num); + if (closest) { + transform3(source_alignxf, closest, s); + + // This should be right, model=Source=First=not moving + centroid_m[0] += s[0]; + centroid_m[1] += s[1]; + centroid_m[2] += s[2]; + centroid_d[0] += t[0]; + centroid_d[1] += t[1]; + centroid_d[2] += t[2]; + + PtPair myPair(s, t); + double p12[3] = { + myPair.p1.x - myPair.p2.x, + myPair.p1.y - myPair.p2.y, + myPair.p1.z - myPair.p2.z }; + sum += Len2(p12); + + pairs->push_back(myPair); + /*cout << "PTPAIR" << i << " " + << p[0] << " " + << p[1] << " " + << p[2] << " - " + << q_points[i][0] << " " + << q_points[i][1] << " " + << q_points[i][2] << " " << Len2(p12) << endl; */ + } + + } + + // release resource access lock + unlock(); + + return; +} + +void SearchTree::getPtPairs(vector *pairs, + double *source_alignxf, // source + const DataXYZ& xyz_r, unsigned int startindex, unsigned int endindex, // target + int thread_num, + int rnd, double max_dist_match2, double &sum, + double *centroid_m, double *centroid_d) +{ + // prepare this tree for resource access in FindClosest + lock(); + + double local_alignxf_inv[16]; + M4inv(source_alignxf, local_alignxf_inv); + + // t is the original point from target, s is the (inverted) query point from target and then + // the closest point in source + double t[3], s[3]; + for (unsigned int i = startindex; i < endindex; i++) { + if (rnd > 1 && rand(rnd) != 0) continue; // take about 1/rnd-th of the numbers only + + t[0] = xyz_r[i][0]; + t[1] = xyz_r[i][1]; + t[2] = xyz_r[i][2]; + + transform3(local_alignxf_inv, t, s); + + double *closest = this->FindClosest(s, max_dist_match2, thread_num); + if (closest) { + transform3(source_alignxf, closest, s); + + // This should be right, model=Source=First=not moving + centroid_m[0] += s[0]; + centroid_m[1] += s[1]; + centroid_m[2] += s[2]; + centroid_d[0] += t[0]; + centroid_d[1] += t[1]; + centroid_d[2] += t[2]; + + PtPair myPair(s, t); + double p12[3] = { + myPair.p1.x - myPair.p2.x, + myPair.p1.y - myPair.p2.y, + myPair.p1.z - myPair.p2.z }; + sum += Len2(p12); + + pairs->push_back(myPair); + /*cout << "PTPAIR" << i << " " + << p[0] << " " + << p[1] << " " + << p[2] << " - " + << q_points[i][0] << " " + << q_points[i][1] << " " + << q_points[i][2] << " " << Len2(p12) << endl; */ + } + + } + + // release resource access lock + unlock(); + + return; +} diff --git a/src/slam6d/slam6D.cc b/src/slam6d/slam6D.cc new file mode 100644 index 0000000..6bae3d9 --- /dev/null +++ b/src/slam6d/slam6D.cc @@ -0,0 +1,1002 @@ +/* + * slam6D implementation + * + * Copyright (C) Andreas Nuechter, Kai Lingemann, Jochen Sprickerhof + * + * Released under the GPL version 3. + * + */ + +/** + * @file + * @brief Main programm for matching 3D scans (6D SLAM) + * + * Main programm to match 3D scans with ICP and the globally + * consistent matching approach. + * Use -i from the command line to match with ICP, + * and -I to match 3D Scans using the global algorithm. + * + * @author Andreas Nuechter. Jacobs University Bremen gGmbH, Germany + * @author Kai Lingemann. Institute of Computer Science, University of Osnabrueck, Germany. + * @author Jochen Sprickerhof. Institute of Computer Science, University of Osnabrueck, Germany. + */ + +#include "slam6d/scan.h" +#include "slam6d/metaScan.h" +#include "slam6d/io_utils.h" + +#include "slam6d/icp6Dapx.h" +#include "slam6d/icp6Dsvd.h" +#include "slam6d/icp6Dquat.h" +#include "slam6d/icp6Dortho.h" +#include "slam6d/icp6Dhelix.h" +#include "slam6d/icp6Ddual.h" +#include "slam6d/icp6Dlumeuler.h" +#include "slam6d/icp6Dlumquat.h" +#include "slam6d/icp6Dquatscale.h" +#include "slam6d/icp6D.h" +#ifdef WITH_CUDA +#include "slam6d/cuda/icp6Dcuda.h" +#endif +#include "slam6d/lum6Deuler.h" +#include "slam6d/lum6Dquat.h" +#include "slam6d/ghelix6DQ2.h" +#include "slam6d/graphToro.h" +#include "slam6d/graphHOG-Man.h" +#include "slam6d/elch6Deuler.h" +#include "slam6d/elch6Dquat.h" +#include "slam6d/elch6DunitQuat.h" +#include "slam6d/elch6Dslerp.h" +#include "slam6d/loopToro.h" +#include "slam6d/loopHOG-Man.h" +#include "slam6d/graphSlam6D.h" +#include "slam6d/gapx6D.h" +#include "slam6d/graph.h" +#include "slam6d/globals.icc" + +#ifndef _MSC_VER +#include +#else +#include "XGetopt.h" +#endif + +#include + +#ifdef _MSC_VER +#define strcasecmp _stricmp +#define strncasecmp _strnicmp +#else +#include +#endif + +#ifdef WITH_METRICS +#include "slam6d/metrics.h" +#endif //WITH_METRICS + + +#ifdef _MSC_VER +#if !defined _OPENMP && defined OPENMP +#define _OPENMP +#endif +#endif + +#ifdef _OPENMP +#include +#endif + +#define WANT_STREAM ///< define the WANT stream :) + +#include +using std::string; +#include +using std::cout; +using std::cerr; +using std::endl; +#include +using std::ifstream; + + +// Handling Segmentation faults and CTRL-C +void sigSEGVhandler (int v) +{ + static bool segfault = false; + if(!segfault) { + segfault = true; + cout << endl + << "# **************************** #" << endl + << " Segmentation fault or Ctrl-C" << endl + << "# **************************** #" << endl + << endl; + + // save frames and close scans + for(ScanVector::iterator it = Scan::allScans.begin(); it != Scan::allScans.end(); ++it) { + (*it)->saveFrames(); + } + cout << "Frames saved." << endl; + Scan::closeDirectory(); + } + exit(-1); +} + + +/** + * Explains the usage of this program's command line parameters + */ +void usage(char* prog) +{ +#ifndef _MSC_VER + const string bold("\033[1m"); + const string normal("\033[m"); +#else + const string bold(""); + const string normal(""); +#endif + cout << endl + << bold << "USAGE " << normal << endl + << " " << prog << " [options] directory" << endl << endl; + cout << bold << "OPTIONS" << normal << endl + + << bold << " -a" << normal << " NR, " << bold << "--algo=" << normal << "NR [default: 1]" << endl + << " selects the minimizazion method for the ICP matching algorithm" << endl + << " 1 = unit quaternion based method by Horn" << endl + << " 2 = singular value decomposition by Arun et al. " << endl + << " 3 = orthonormal matrices by Horn et al." << endl + << " 4 = dual quaternion method by Walker et al." << endl + << " 5 = helix approximation by Hofer & Potmann" << endl + << " 6 = small angle approximation" << endl + << " 7 = Lu & Milios style, i.e., uncertainty based, with Euler angles" << endl + << " 8 = Lu & Milios style, i.e., uncertainty based, with Quaternion" << endl + << " 9 = unit quaternion with scale method by Horn" << endl + << endl + << bold << " -A" << normal << " NR, " << bold << "--anim=" << normal << "NR [default: first and last frame only]" << endl + << " if specified, use only every NR-th frame for animation" << endl + << endl + << bold << " -c" << normal << " NR, " << bold << "--cldist=" << normal << "NR [default: 500]" << endl + << " specifies the maximal distance for closed loops" << endl + << endl + << bold << " -C" << normal << " NR, " << bold << "--clpairs=" << normal << "NR [default: 6]" << endl + << " specifies the minimal number of points for an overlap. If not specified" << endl + << " cldist is used instead" << endl + << endl + << bold << " --cache" << normal << endl + << " turns on cached k-d tree search" << endl + << endl + << bold << " -d" << normal << " NR, " << bold << "--dist=" << normal << "NR [default: 25]" << endl + << " sets the maximal point-to-point distance for matching with ICP to 'units'" << endl + << " (unit of scan data, e.g. cm)" << endl + << endl + << bold << " -D" << normal << " NR, " << bold << "--distSLAM=" + << normal << "NR [default: same value as -d option]" << endl + << " sets the maximal point-to-point distance for matching with SLAM to 'units'" << endl + << " (unit of scan data, e.g. cm)" << endl + << endl + << bold << " --DlastSLAM" << normal << " NR [default not set]" << endl + << " sets the maximal point-to-point distance for the final SLAM correction," << endl + << " if final SLAM is not required don't set it." << endl + << endl + << bold << " -e" << normal << " NR, " << bold << "--end=" << normal << "NR" << endl + << " end after scan NR" << endl + << endl + << bold << " --exportAllPoints" << normal << endl + << " writes all registered reduced points to the file points.pts before" << endl + << " slam6D terminated" << endl + << endl + << bold << " --epsICP=" << normal << "NR [default: 0.00001]" << endl + << " stop ICP iteration if difference is smaller than NR" << endl + << endl + << bold << " --epsSLAM=" << normal << " NR [default: 0.5]" << endl + << " stop SLAM iteration if average difference is smaller than NR" << endl + << endl + << bold << " -f" << normal << " F, " << bold << "--format=" << normal << "F" << endl + << " using shared library F for input" << endl + << " (chose F from {uos, uos_map, uos_rgb, uos_frames, uos_map_frames, old, rts, rts_map, ifp, riegl_txt, riegl_rgb, riegl_bin, zahn, ply, wrl, xyz, zuf, iais, front, x3d, rxp, ais })" << endl + << endl + << bold << " -G" << normal << " NR, " << bold << "--graphSlam6DAlgo=" << normal << "NR [default: 0]" << endl + << " selects the minimizazion method for the SLAM matching algorithm" << endl + << " 0 = no global relaxation technique" << endl + << " 1 = Lu & Milios extension using euler angles due to Borrmann et al." << endl + << " 2 = Lu & Milios extension using using unit quaternions" << endl + << " 3 = HELIX approximation by Hofer and Pottmann" << endl + << " 4 = small angle approximation" << endl + << " 5 = TORO" << endl + << " 6 = HOG-Man" << endl + << endl + << bold << " -i" << normal << " NR, " << bold << "--iter=" << normal << "NR [default: 50]" << endl + << " sets the maximal number of ICP iterations to " << endl + << endl + << bold << " -I" << normal << " NR, " << bold << "--iterSLAM=" << normal << "NR [default: 0]" << endl + << " sets the maximal number of iterations for SLAM to " << endl + << " (if not set, graphSLAM is not executed)" << endl + << endl + << bold << " -l" << normal << " NR, " << bold << "--loopsize=" << normal << "NR [default: 20]" << endl + << " sets the size of a loop, i.e., a loop must exceed of scans" << endl + << endl + << bold << " -L" << normal << " NR, " << bold << "--loop6DAlgo=" << normal << "NR [default: 0]" << endl + << " selects the method for closing the loop explicitly" << endl + << " 0 = no loop closing technique" << endl + << " 1 = euler angles" << endl + << " 2 = quaternions " << endl + << " 3 = unit quaternions" << endl + << " 4 = SLERP (recommended)" << endl + << " 5 = TORO" << endl + << " 6 = HOG-Man" << endl + << endl + << bold << " --metascan" << normal << endl + << " Match current scan against a meta scan of all previous scans (default match against the last scan only)" << endl + << endl + << bold << " -m" << normal << " NR, " << bold << "--max=" << normal << "NR" << endl + << " neglegt all data points with a distance larger than NR 'units'" << endl + << endl + << bold << " -M" << normal << " NR, " << bold << "--min=" << normal << "NR" << endl + << " neglegt all data points with a distance smaller than NR 'units'" << endl + << endl + << bold << " -n" << normal << " FILE, " << bold << "--net=" << normal << "FILE" << endl + << " specifies the file that includes the net structure for SLAM" << endl + << endl + << bold << " -O" << normal << "NR (optional), " << bold << "--octree=" << normal << "NR (optional)" << endl + << " use randomized octree based point reduction (pts per voxel=)" << endl + << " requires " << bold << "-r" << normal <<" or " << bold << "--reduce" << endl + << endl + << bold << " -p, --trustpose" << normal << endl + << " Trust the pose file, do not extrapolate the last transformation." << endl + << " (just for testing purposes, or gps input.)" << endl + << endl + << bold << " -q, --quiet" << normal << endl + << " Quiet mode. Suppress (most) messages" << endl + << endl + << bold << " -Q, --veryquiet" << normal << endl + << " Very quiet mode. Suppress all messages, except in case of error." << endl + << endl + << bold << " -S, --scanserver" << normal << endl + << " Use the scanserver as an input method and handling of scan data" << endl + << endl + << bold << " -r" << normal << " NR, " << bold << "--reduce=" << normal << "NR" << endl + << " turns on octree based point reduction (voxel size=)" << endl + << endl + << bold << " -R" << normal << " NR, " << bold << "--random=" << normal << "NR" << endl + << " turns on randomized reduction, using about every -th point only" << endl + << endl + << bold << " -s" << normal << " NR, " << bold << "--start=" << normal << "NR" << endl + << " start at scan NR (i.e., neglects the first NR scans)" << endl + << " [ATTENTION: counting naturally starts with 0]" << endl + << endl + << bold << " -t" << normal << " NR, " << bold << "--nns_method=" << normal << "NR [default: 1]" << endl + << " selects the Nearest Neighbor Search Algorithm" << endl + << " 0 = simple k-d tree " << endl + << " 1 = cached k-d tree " << endl + << " 2 = ANNTree " << endl + << " 3 = BOCTree " << endl + << endl + << bold << " -u" << normal <<", "<< bold<<"--cuda" << normal << endl + << " this option activates icp running on GPU instead of CPU"<exact) + * @param meta match against all scans (= meta scan), or against the last scan only??? + * @param anim selects the rotation representation for the matching algorithm + * @param mni_lum sets the maximal number of iterations for SLAM + * @param net specifies the file that includes the net structure for SLAM + * @param cldist specifies the maximal distance for closed loops + * @param epsilonICP stop ICP iteration if difference is smaller than this value + * @param epsilonSLAM stop SLAM iteration if average difference is smaller than this value + * @param algo specfies the used algorithm for rotation computation + * @param lum6DAlgo specifies the used algorithm for global SLAM correction + * @param loopsize defines the minimal loop size + * @return 0, if the parsing was successful. 1 otherwise + */ +int parseArgs(int argc, char **argv, string &dir, double &red, int &rand, + double &mdm, double &mdml, double &mdmll, + int &mni, int &start, int &end, int &maxDist, int &minDist, bool &quiet, bool &veryQuiet, + bool &extrapolate_pose, bool &meta, int &algo, int &loopSlam6DAlgo, int &lum6DAlgo, int &anim, + int &mni_lum, string &net, double &cldist, int &clpairs, int &loopsize, + double &epsilonICP, double &epsilonSLAM, int &nns_method, bool &exportPts, double &distLoop, + int &iterLoop, double &graphDist, int &octree, bool &cuda_enabled, IOType &type, + bool& scanserver) +{ + int c; + // from unistd.h: + extern char *optarg; + extern int optind; + + WriteOnce w_type(type); + WriteOnce w_start(start), w_end(end); + + /* options descriptor */ + // 0: no arguments, 1: required argument, 2: optional argument + static struct option longopts[] = { + { "format", required_argument, 0, 'f' }, + { "algo", required_argument, 0, 'a' }, + { "nns_method", required_argument, 0, 't' }, + { "loop6DAlgo", required_argument, 0, 'L' }, + { "graphSlam6DAlgo", required_argument, 0, 'G' }, + { "net", required_argument, 0, 'n' }, + { "iter", required_argument, 0, 'i' }, + { "iterSLAM", required_argument, 0, 'I' }, + { "max", required_argument, 0, 'm' }, + { "loopsize", required_argument, 0, 'l' }, + { "cldist", required_argument, 0, 'c' }, + { "clpairs", required_argument, 0, 'C' }, + { "min", required_argument, 0, 'M' }, + { "dist", required_argument, 0, 'd' }, + { "distSLAM", required_argument, 0, 'D' }, + { "start", required_argument, 0, 's' }, + { "end", required_argument, 0, 'e' }, + { "reduce", required_argument, 0, 'r' }, + { "octree", optional_argument, 0, 'O' }, + { "random", required_argument, 0, 'R' }, + { "quiet", no_argument, 0, 'q' }, + { "veryquiet", no_argument, 0, 'Q' }, + { "trustpose", no_argument, 0, 'p' }, + { "anim", required_argument, 0, 'A' }, + { "metascan", no_argument, 0, '2' }, // use the long format only + { "DlastSLAM", required_argument, 0, '4' }, // use the long format only + { "epsICP", required_argument, 0, '5' }, // use the long format only + { "epsSLAM", required_argument, 0, '6' }, // use the long format only + { "exportAllPoints", no_argument, 0, '8' }, + { "distLoop", required_argument, 0, '9' }, // use the long format only + { "iterLoop", required_argument, 0, '1' }, // use the long format only + { "graphDist", required_argument, 0, '3' }, // use the long format only + { "cuda", no_argument, 0, 'u' }, // cuda will be enabled + { "scanserver", no_argument, 0, 'S' }, + { 0, 0, 0, 0} // needed, cf. getopt.h + }; + + cout << endl; + while ((c = getopt_long(argc, argv, "O:f:A:G:L:a:t:r:R:d:D:i:l:I:c:C:n:s:e:m:M:uqQpS", longopts, NULL)) != -1) { + switch (c) { + case 'a': + algo = atoi(optarg); + if ((algo < 0) || (algo > 9)) { + cerr << "Error: ICP Algorithm not available." << endl; + exit(1); + } + break; + case 't': + nns_method = atoi(optarg); + if ((nns_method < 0) || (nns_method > 3)) { + cerr << "Error: NNS Method not available." << endl; + exit(1); + } + break; + case 'L': + loopSlam6DAlgo = atoi(optarg); + if (loopSlam6DAlgo < 0 || loopSlam6DAlgo > 6) { + cerr << "Error: global loop closing algorithm not available." << endl; + exit(1); + } + break; + case 'G': + lum6DAlgo = atoi(optarg); + if ((lum6DAlgo < 0) || (lum6DAlgo > 6)) { + cerr << "Error: global relaxation algorithm not available." << endl; + exit(1); + } + break; + case 'c': + cldist = atof(optarg); + break; + case 'C': + clpairs = atoi(optarg); + break; + case 'l': + loopsize = atoi(optarg); + break; + case 'r': + red = atof(optarg); + break; + case 'O': + if (optarg) { + octree = atoi(optarg); + } else { + octree = 1; + } + break; + case 'R': + rand = atoi(optarg); + break; + case 'd': + mdm = atof(optarg); + break; + case 'D': + mdml = atof(optarg); + break; + case 'i': + mni = atoi(optarg); + break; + case 'I': + mni_lum = atoi(optarg); + break; + case 'n': + net = optarg; + break; + case 's': + w_start = atoi(optarg); + if (start < 0) { cerr << "Error: Cannot start at a negative scan number.\n"; exit(1); } + break; + case 'e': + w_end = atoi(optarg); + if (end < 0) { cerr << "Error: Cannot end at a negative scan number.\n"; exit(1); } + if (end < start) { cerr << "Error: cannot be smaller than .\n"; exit(1); } + break; + case 'm': + maxDist = atoi(optarg); + break; + case 'M': + minDist = atoi(optarg); + break; + case 'q': + quiet = true; + break; + case 'Q': + quiet = veryQuiet = true; + break; + case 'p': + extrapolate_pose = false; + break; + case 'A': + anim = atoi(optarg); + break; + case '2': // = --metascan + meta = true; + break; + case '4': // = --DlastSLAM + mdmll = atof(optarg); + break; + case '5': // = --epsICP + epsilonICP = atof(optarg); + break; + case '6': // = --epsSLAM + epsilonSLAM = atof(optarg); + break; + case '8': // not used + exportPts = true; + break; + case '9': // = --distLoop + distLoop = atof(optarg); + break; + case '1': // = --iterLoop + iterLoop = atoi(optarg); + break; + case '3': // = --graphDist + graphDist = atof(optarg); + break; + case 'f': + try { + w_type = formatname_to_io_type(optarg); + } catch (...) { // runtime_error + cerr << "Format " << optarg << " unknown." << endl; + abort(); + } + break; + case 'u': + cuda_enabled = true; + break; + case 'S': + scanserver = true; + break; + case '?': + usage(argv[0]); + return 1; + default: + abort (); + } + } + + if (optind != argc-1) { + cerr << "\n*** Directory missing ***" << endl; + usage(argv[0]); + } + dir = argv[optind]; + +#ifndef _MSC_VER + if (dir[dir.length()-1] != '/') dir = dir + "/"; +#else + if (dir[dir.length()-1] != '\\') dir = dir + "\\"; +#endif + + parseFormatFile(dir, w_type, w_start, w_end); + + return 0; +} + +/** + * This function is does all the matching stuff + * it iterates over all scans using the algorithm objects to calculate new poses + * objects could be NULL if algorithm should not be used + * + * @param cldist maximal distance for closing loops + * @param loopsize minimal loop size + * @param allScans Contains all laser scans + * @param my_icp6D the ICP implementation + * @param meta_icp math ICP against a metascan + * @param nns_method Indicates the nearest neigbor search method to be used + * @param my_loopSlam6D used loopoptimizer + * @param my_graphSlam6D used global optimization + * @param nrIt The number of iterations the global SLAM-algorithm will run + * @param epsilonSLAM epsilon for global SLAM iteration + * @param mdml maximal distance match for global SLAM + * @param mdmll maximal distance match for global SLAM after all scans ar matched + */ +void matchGraph6Dautomatic(double cldist, int loopsize, vector allScans, icp6D *my_icp6D, + bool meta_icp, int nns_method, bool cuda_enabled, + loopSlam6D *my_loopSlam6D, graphSlam6D *my_graphSlam6D, int nrIt, + double epsilonSLAM, double mdml, double mdmll, double graphDist, + bool &eP, IOType type) +{ + double cldist2 = sqr(cldist); + + // list of scan for metascan + vector < Scan* > metas; + + // graph for loop optimization + graph_t g; + + int n = allScans.size(); + + int loop_detection = 0; + double dist, min_dist = -1; + int first = 0, last = 0; + + for(int i = 1; i < n; i++) { + cout << i << "/" << n << endl; + + add_edge(i-1, i, g); + + if(eP) { + allScans[i]->mergeCoordinatesWithRoboterPosition(allScans[i-1]); + } + + //Hack to get all icp transformations into the .frames Files + if(i == n-1 && my_icp6D != NULL && my_icp6D->get_anim() == -2) { + my_icp6D->set_anim(-1); + } + + /*if(i == 85 || i == 321 || i == 533) { + my_icp6D->set_anim(1); + }*/ + + if(my_icp6D != NULL){ + cout << "ICP" << endl; + // Matching strongly linked scans with ICPs + if(meta_icp) { + metas.push_back(allScans[i - 1]); + MetaScan* meta_scan = new MetaScan(metas); + my_icp6D->match(meta_scan, allScans[i]); + delete meta_scan; + } else { + switch(type) { + case UOS_MAP: + case UOS_MAP_FRAMES: + my_icp6D->match(allScans[0], allScans[i]); + break; + case RTS_MAP: + //untested (and could not work) + //if(i < 220-22 && i > 250-22) match(allScans[0], CurrentScan); + my_icp6D->match(allScans[0], allScans[i]); + break; + default: + my_icp6D->match(allScans[i - 1], allScans[i]); + break; + } + } + } else { + double id[16]; + M4identity(id); + allScans[i]->transform(id, Scan::ICP, 0); + } + + /*if(i == 85 || i == 321 || i == 533) { + my_icp6D->set_anim(-2); + }*/ + + if(loop_detection == 1) { + loop_detection = 2; + } + + for(int j = 0; j < i - loopsize; j++) { + dist = Dist2(allScans[j]->get_rPos(), allScans[i]->get_rPos()); + if(dist < cldist2) { + loop_detection = 1; + if(min_dist < 0 || dist < min_dist) { + min_dist = dist; + first = j; + last = i; + } + } + } + + if(loop_detection == 2) { + loop_detection = 0; + min_dist = -1; + + if(my_loopSlam6D != NULL) { + cout << "Loop close: " << first << " " << last << endl; + my_loopSlam6D->close_loop(allScans, first, last, g); + add_edge(first, last, g); + } + + if(my_graphSlam6D != NULL && mdml > 0) { + int j = 0; + double ret; + do { + // recalculate graph + Graph *gr = new Graph(i + 1, cldist2, loopsize); + cout << "Global: " << j << endl; + ret = my_graphSlam6D->doGraphSlam6D(*gr, allScans, 1); + delete gr; + j++; + } while (j < nrIt && ret > epsilonSLAM); + } + } + } + + if(loop_detection == 1 && my_loopSlam6D != NULL) { + cout << "Loop close: " << first << " " << last << endl; + my_loopSlam6D->close_loop(allScans, first, last, g); + add_edge(first, last, g); + } + + if(my_graphSlam6D != NULL && mdml > 0.0) { + int j = 0; + double ret; + do { + // recalculate graph + Graph *gr = new Graph(n, cldist2, loopsize); + cout << "Global: " << j << endl; + ret = my_graphSlam6D->doGraphSlam6D(*gr, allScans, 1); + delete gr; + j++; + } while (j < nrIt && ret > epsilonSLAM); + } + + if(my_graphSlam6D != NULL && mdmll > 0.0) { + my_graphSlam6D->set_mdmll(mdmll); + int j = 0; + double ret; + do { + // recalculate graph + Graph *gr = new Graph(n, sqr(graphDist), loopsize); + cout << "Global: " << j << endl; + ret = my_graphSlam6D->doGraphSlam6D(*gr, allScans, 1); + delete gr; + j++; + } while (j < nrIt && ret > epsilonSLAM); + } +} + +/** + * Main program for 6D SLAM. + * Usage: bin/slam6D 'dir', + * with 'dir' the directory of a set of scans + * ... + */ +int main(int argc, char **argv) +{ + signal (SIGSEGV, sigSEGVhandler); + signal (SIGINT, sigSEGVhandler); + + cout << "slam6D - A highly efficient SLAM implementation based on scan matching" << endl + << " with 6 degrees of freedom" << endl + << "(c) Jacobs University Bremen gGmbH, Germany, since 2009" << endl + << " University of Osnabrueck, Germany, 2006 - 2009" << endl << endl; + + if (argc <= 1) { + usage(argv[0]); + } + + // parsing the command line parameters + // init, default values if not specified + string dir; + double red = -1.0, mdmll = -1.0, mdml = 25.0, mdm = 25.0; + int rand = -1, mni = 50; + int start = 0, end = -1; + bool quiet = false; + bool veryQuiet = false; + int maxDist = -1; + int minDist = -1; + bool eP = true; // should we extrapolate the pose?? + bool meta = false; // match against meta scan, or against LAST scan only? + int algo = 1; + int mni_lum = -1; + double cldist = 500; + int clpairs = -1; + int loopsize = 20; + string net = "none"; + int anim = -1; + double epsilonICP = 0.00001; + double epsilonSLAM = 0.5; + int nns_method = simpleKD; + bool exportPts = false; + int loopSlam6DAlgo = 0; + int lum6DAlgo = 0; + double distLoop = 700.0; + int iterLoop = 100; + double graphDist = cldist; + int octree = 0; // employ randomized octree reduction? + bool cuda_enabled = false; + IOType type = UOS; + bool scanserver = false; + + parseArgs(argc, argv, dir, red, rand, mdm, mdml, mdmll, mni, start, end, + maxDist, minDist, quiet, veryQuiet, eP, meta, algo, loopSlam6DAlgo, lum6DAlgo, anim, + mni_lum, net, cldist, clpairs, loopsize, epsilonICP, epsilonSLAM, + nns_method, exportPts, distLoop, iterLoop, graphDist, octree, cuda_enabled, type, + scanserver); + + cout << "slam6D will proceed with the following parameters:" << endl; + //@@@ to do :-) + // TODO: writer a proper TODO ^ + + Scan::openDirectory(scanserver, dir, type, start, end); + + if(Scan::allScans.size() == 0) { + cerr << "No scans found. Did you use the correct format?" << endl; + exit(-1); + } + + for(ScanVector::iterator it = Scan::allScans.begin(); it != Scan::allScans.end(); ++it) { + Scan* scan = *it; + scan->setRangeFilter(maxDist, minDist); + scan->setReductionParameter(red, octree); + scan->setSearchTreeParameter(nns_method, cuda_enabled); + } + + icp6Dminimizer *my_icp6Dminimizer = 0; + switch (algo) { + case 1 : + my_icp6Dminimizer = new icp6D_QUAT(quiet); + break; + case 2 : + my_icp6Dminimizer = new icp6D_SVD(quiet); + break; + case 3 : + my_icp6Dminimizer = new icp6D_ORTHO(quiet); + break; + case 4 : + my_icp6Dminimizer = new icp6D_DUAL(quiet); + break; + case 5 : + my_icp6Dminimizer = new icp6D_HELIX(quiet); + break; + case 6 : + my_icp6Dminimizer = new icp6D_APX(quiet); + break; + case 7 : + my_icp6Dminimizer = new icp6D_LUMEULER(quiet); + break; + case 8 : + my_icp6Dminimizer = new icp6D_LUMQUAT(quiet); + break; + case 9 : + my_icp6Dminimizer = new icp6D_QUAT_SCALE(quiet); + break; + } + + // match the scans and print the time used + long starttime = GetCurrentTimeInMilliSec(); + +#ifdef WITH_METRICS + Timer t = ClientMetric::matching_time.start(); +#endif //WITH_METRICS + + if (mni_lum == -1 && loopSlam6DAlgo == 0) { + icp6D *my_icp = 0; + if (cuda_enabled) { +#ifdef WITH_CUDA + my_icp = new icp6Dcuda(my_icp6Dminimizer, mdm, mni, quiet, meta, rand, eP, + anim, epsilonICP, nns_method, cuda_enabled); +#else + cout << "slam6d was not compiled for excuting CUDA code" << endl; +#endif + } else { + my_icp = new icp6D(my_icp6Dminimizer, mdm, mni, quiet, meta, rand, eP, + anim, epsilonICP, nns_method, cuda_enabled); + } + + // check if CAD matching was selected as type + if (type == UOS_CAD) + { + my_icp->set_cad_matching (true); + } + + if (my_icp) my_icp->doICP(Scan::allScans); + delete my_icp; + } else if (clpairs > -1) { + //!!!!!!!!!!!!!!!!!!!!!!!! + icp6D *my_icp = 0; + if (cuda_enabled) { +#ifdef WITH_CUDA + my_icp = new icp6Dcuda(my_icp6Dminimizer, mdm, mni, quiet, meta, rand, eP, + anim, epsilonICP, nns_method, cuda_enabled); +#else + cout << "slam6d was not compiled for excuting CUDA code" << endl; +#endif + } else { + my_icp = new icp6D(my_icp6Dminimizer, mdm, mni, quiet, meta, rand, eP, + anim, epsilonICP, nns_method, cuda_enabled); + } + my_icp->doICP(Scan::allScans); + graphSlam6D *my_graphSlam6D = new lum6DEuler(my_icp6Dminimizer, mdm, mdml, mni, quiet, meta, + rand, eP, anim, epsilonICP, nns_method, epsilonSLAM); + my_graphSlam6D->matchGraph6Dautomatic(Scan::allScans, mni_lum, clpairs, loopsize); + //!!!!!!!!!!!!!!!!!!!!!!!! + } else { + graphSlam6D *my_graphSlam6D = 0; + switch (lum6DAlgo) { + case 1 : + my_graphSlam6D = new lum6DEuler(my_icp6Dminimizer, mdm, mdml, mni, quiet, meta, rand, eP, + anim, epsilonICP, nns_method, epsilonSLAM); + break; + case 2 : + my_graphSlam6D = new lum6DQuat(my_icp6Dminimizer, mdm, mdml, mni, quiet, meta, rand, eP, + anim, epsilonICP, nns_method, epsilonSLAM); + break; + case 3 : + my_graphSlam6D = new ghelix6DQ2(my_icp6Dminimizer, mdm, mdml, mni, quiet, meta, rand, eP, + anim, epsilonICP, nns_method, epsilonSLAM); + break; + case 4 : + my_graphSlam6D = new gapx6D(my_icp6Dminimizer, mdm, mdml, mni, quiet, meta, rand, eP, + anim, epsilonICP, nns_method, epsilonSLAM); + break; + case 5 : + my_graphSlam6D = new graphToro(my_icp6Dminimizer, mdm, mdml, mni, quiet, meta, rand, eP, + -2, epsilonICP, nns_method, epsilonSLAM); + break; + case 6 : + my_graphSlam6D = new graphHOGMan(my_icp6Dminimizer, mdm, mdml, mni, quiet, meta, rand, eP, + -2, epsilonICP, nns_method, epsilonSLAM); + break; + } + // Construct Network + if (net != "none") { + icp6D *my_icp = 0; + if (cuda_enabled) { +#ifdef WITH_CUDA + my_icp = new icp6Dcuda(my_icp6Dminimizer, mdm, mni, quiet, meta, rand, eP, + anim, epsilonICP, nns_method); +#else + cout << "slam6d was not compiled for excuting CUDA code" << endl; +#endif + } else { + my_icp = new icp6D(my_icp6Dminimizer, mdm, mni, quiet, meta, rand, eP, + anim, epsilonICP, nns_method); + } + my_icp->doICP(Scan::allScans); + + Graph* structure; + structure = new Graph(net); + my_graphSlam6D->doGraphSlam6D(*structure, Scan::allScans, mni_lum); + if(mdmll > 0.0) { + my_graphSlam6D->set_mdmll(mdmll); + my_graphSlam6D->doGraphSlam6D(*structure, Scan::allScans, mni_lum); + } + + } else { + icp6D *my_icp = 0; + if(algo > 0) { + if (cuda_enabled) { +#ifdef WITH_CUDA + my_icp = new icp6Dcuda(my_icp6Dminimizer, mdm, mni, quiet, meta, rand, eP, + anim, epsilonICP, nns_method); +#else + cout << "slam6d was not compiled for excuting CUDA code" << endl; +#endif + } else { + my_icp = new icp6D(my_icp6Dminimizer, mdm, mni, quiet, meta, rand, eP, + anim, epsilonICP, nns_method); + } + + loopSlam6D *my_loopSlam6D = 0; + switch(loopSlam6DAlgo) { + case 1: + my_loopSlam6D = new elch6Deuler(veryQuiet, my_icp6Dminimizer, distLoop, iterLoop, + rand, eP, 10, epsilonICP, nns_method); + break; + case 2: + my_loopSlam6D = new elch6Dquat(veryQuiet, my_icp6Dminimizer, distLoop, iterLoop, + rand, eP, 10, epsilonICP, nns_method); + break; + case 3: + my_loopSlam6D = new elch6DunitQuat(veryQuiet, my_icp6Dminimizer, distLoop, iterLoop, + rand, eP, 10, epsilonICP, nns_method); + break; + case 4: + my_loopSlam6D = new elch6Dslerp(veryQuiet, my_icp6Dminimizer, distLoop, iterLoop, + rand, eP, 10, epsilonICP, nns_method); + break; + case 5: + my_loopSlam6D = new loopToro(veryQuiet, my_icp6Dminimizer, distLoop, iterLoop, + rand, eP, 10, epsilonICP, nns_method); + break; + case 6: + my_loopSlam6D = new loopHOGMan(veryQuiet, my_icp6Dminimizer, distLoop, iterLoop, + rand, eP, 10, epsilonICP, nns_method); + break; + } + + matchGraph6Dautomatic(cldist, loopsize, Scan::allScans, my_icp, meta, + nns_method, cuda_enabled, my_loopSlam6D, my_graphSlam6D, + mni_lum, epsilonSLAM, mdml, mdmll, graphDist, eP, type); + delete my_icp; + if(loopSlam6DAlgo > 0) { + delete my_loopSlam6D; + } + } + if(my_graphSlam6D > 0) { + delete my_graphSlam6D; + } + } + } + +#ifdef WITH_METRICS + ClientMetric::matching_time.end(t); +#endif //WITH_METRICS + + long endtime = GetCurrentTimeInMilliSec() - starttime; + cout << "Matching done in " << endtime << " milliseconds!!!" << endl; + + if (exportPts) { + cout << "Export all 3D Points to file \"points.pts\"" << endl; + ofstream redptsout("points.pts"); + for(unsigned int i = 0; i < Scan::allScans.size(); i++) { + DataXYZ xyz_r(Scan::allScans[i]->get("xyz reduced")); + for(unsigned int i = 0; i < xyz_r.size(); ++i) { + redptsout << xyz_r[i][0] << ' ' << xyz_r[i][1] << ' ' << xyz_r[i][2] << '\n'; + } + redptsout << std::flush; + + } + redptsout.close(); + redptsout.clear(); + } + + const double* p; + ofstream redptsout("loopclose.pts"); + for(ScanVector::iterator it = Scan::allScans.begin(); it != Scan::allScans.end(); ++it) + { + Scan* scan = *it; + p = scan->get_rPos(); + Point x(p[0], p[1], p[2]); + redptsout << x << endl; + scan->saveFrames(); + } + redptsout.close(); + + Scan::closeDirectory(); + delete my_icp6Dminimizer; + + cout << endl << endl; + cout << "Normal program end." << endl + << (red < 0 && rand < 0 ? "(-> HINT: For a significant speedup, please use the '-r' or '-R' parameter <-)\n" + : "") + << endl; + + // print metric information +#ifdef WITH_METRICS + ClientMetric::print(scanserver); +#endif //WITH_METRICS +} diff --git a/src/slam6d/testICPortho.m b/src/slam6d/testICPortho.m new file mode 100644 index 0000000..71a4eaf --- /dev/null +++ b/src/slam6d/testICPortho.m @@ -0,0 +1,84 @@ +function correctedData = testICP(anglex, angley, anglez) + % erstellung der testrotation, Winkelangabe in grad + Rz = [cos(anglez) -sin(anglez) 0; + sin(anglez) cos(anglez) 0; + 0 0 1]; + + Ry = [ cos(angley) 0 sin(angley); + 0 1 0; + -sin(angley) 0 cos(angley)]; + + Rx = [1 0 0; + 0 cos(anglex) -sin(anglex); + 0 sin(anglex) cos(anglex)]; + + R = Rz * Ry * Rx; + + %% generate random model + model = rand(3, 10)*100 + + %% generate noise + noise = rand(3, 10)*5; + + % rotate and translate model to use as data to be matched + %data = R * model + 200; + + % rotate and translate model to use as data to be matched and add noise + data = R * model + 200 + noise; + + + %% center model cloud + cm = sum(model')' / size(model,2); + centerModel = model - repmat(cm, 1, size(model,2)); + + %% center data cloud + cd = sum(data')' / size(data,2); + centerData = data - repmat(cd, 1, size(data,2)); + + %% correlation matrix H + H = zeros(3,3); + for i=1:size(data,2) + for j=1:3 + for k=1:3 + H(j,k) = H(j,k) + centerModel(j,i)*centerData(k,i); + end + end + end + +% H = zeros(3,3); +% for i=1:3 +% for j=1:3 +% H(i,j) = model(i,:) *data(j,:)'; +% end +% end + + %% rotation + % error in the paper: not H*H' but H'*H! + HH = H'*H; + + [eVec, eVal] = eig(HH); + + lamb1=eVal(1,1); + lamb2=eVal(2,2); + lamb3=eVal(3,3); + + u1=eVec(:,1); + u2=eVec(:,2); + u3=eVec(:,3); + + R=H*(1/sqrt(lamb1)*(u1*u1') + 1/sqrt(lamb2)*(u2*u2') + 1/sqrt(lamb3)*(u3*u3')) + + + %% translation + t=(cm - R*cd) + + + %% transform data to match the model + transformeddata = R*data + repmat(t, 1, size(data,2)) + + %%plot model and transformed data + plot3(transformeddata(1,:),transformeddata(2,:),transformeddata(3,:), 'r.', model(1,:),model(2,:),model(3,:),'go') + legend ('transformed data', 'model', 'Location','NorthEast') + +end + \ No newline at end of file diff --git a/src/slam6d/toGlobal.cc b/src/slam6d/toGlobal.cc new file mode 100644 index 0000000..9b24da5 --- /dev/null +++ b/src/slam6d/toGlobal.cc @@ -0,0 +1,149 @@ +/* + * toGlobal implementation + * + * Copyright (C) Jan Elseberg, Dorit Borrmann + * + * Released under the GPL version 3. + * + */ + +#include +#include +using std::cout; +using std::cerr; +using std::endl; +using std::ifstream; +using std::ofstream; + +#include "slam6d/point.h" +#include "slam6d/globals.icc" +#include +#include +using std::exception; + +#ifndef _MSC_VER +#include +#endif + +#ifdef _MSC_VER +#include "XGetopt.h" +#else +#include +#endif + +#if WIN32 +#define snprintf sprintf_s +#endif + + +int parseArgs(int argc,char **argv, char dir[255], int& start, int& end){ + start = 0; + end = -1; // -1 indicates no limitation + + int c; + // from unistd.h + extern char *optarg; + extern int optind; + + cout << endl; + while ((c = getopt (argc, argv, "s:e:")) != -1) + switch (c) + { + case 's': + start = atoi(optarg); + if (start < 0) { cerr << "Error: Cannot start at a negative scan number.\n"; exit(1); } + break; + case 'e': + end = atoi(optarg); + if (end < 0) { cerr << "Error: Cannot end at a negative scan number.\n"; exit(1); } + if (end < start) { cerr << "Error: cannot be smaller than .\n"; exit(1); } + break; + } + + if (optind != argc-1) { + cerr << "\n*** Directory missing ***" << endl; + exit(0); + } + strncpy(dir,argv[optind],255); + +#ifndef _MSC_VER + if (dir[strlen(dir)-1] != '/') strcat(dir,"/"); +#else + if (dir[strlen(dir)-1] != '\\') strcat(dir,"\\"); +#endif + return 0; +} + + +int main(int argc, char **argv) +{ + int start = 0, end = -1; + char dir[255]; + parseArgs(argc, argv, dir, start, end); + + int fileCounter = start; + char frameFileName[255]; + char scanFileName[255]; + + ifstream frame_in; + ifstream scan_in; + + for (;;) { + if (end > -1 && fileCounter > end) break; // 'nuf read + snprintf(frameFileName,255,"%sscan%.3d.frames",dir,fileCounter); + snprintf(scanFileName,255,"%sscan%.3d.3d",dir,fileCounter++); + + scan_in.open(scanFileName); + frame_in.open(frameFileName); + + double tmp; + // read 3D scan + if (!frame_in.good()) break; // no more files in the directory + + cerr << "Reading frame " << frameFileName << "..." << endl; + int frameCounter = 0; + double transMat[16]; + //double transMatOpenGL[16]; + + while (frame_in.good()) { + frameCounter++; + try { + frame_in >> transMat; + frame_in >> tmp; + + } catch (const exception &e) { + break; + } + } + + Point p; +// double range, theta, phi, reflectance; + cout.precision(10); + while(scan_in.good()) { + /* scan_in >> p.z >> p.x >> p.y >> range >> theta >> phi >> reflectance; + */ //scan_in >> p.z >> p.x >> p.y >> range >> theta >> phi >> reflectance; + scan_in >> p.x >> p.y >> p.z; // >> p.reflectance; + /* p.x *= -100; + p.y *= 100; + p.z *= 100; + */ + p.transform(transMat); + //Matrix4ToEuler(transMat,rPosTheta,rPos); + + //cout << p.y << " " << p.z << " " << -p.x << " " << reflectance << endl; + //cout << p.y << " " << p.z << " " << -p.x << endl; + //cout << p.x*0.01 << " " << p.z*0.01 << " " << p.y*0.01 << " " << p.reflectance << endl; + //cout << (int)p.x << " " << (int)p.y << " " << (int)p.z << endl;// << " " << p.reflectance << endl; + cout << p.x << " " << p.y << " " << p.z << endl;// << " " << p.reflectance << endl; + + } + + scan_in.close(); + scan_in.clear(); + frame_in.close(); + frame_in.clear(); + cerr << " done." << endl; + } + +} + diff --git a/src/thermo/CMakeLists.txt b/src/thermo/CMakeLists.txt new file mode 100644 index 0000000..6b6b86d --- /dev/null +++ b/src/thermo/CMakeLists.txt @@ -0,0 +1,50 @@ +IF (WITH_THERMO) + find_package(OpenCV REQUIRED) + + include_directories(${CMAKE_SOURCE_DIR}/3rdparty/cvblob) + include_directories(${CMAKE_SOURCE_DIR}/3rdparty/gocr-0.48/src) + include_directories(${CMAKE_SOURCE_DIR}/3rdparty/gocr-0.48/include) + include_directories(${CMAKE_SOURCE_DIR}/include/shapes/) + include_directories(${CMAKE_SOURCE_DIR}/include/thermo/) + include_directories(/usr/include/) + include_directories(/usr/include/opencv) + +# # Compile gocr library +# SET(GOCR_DIR ${CMAKE_SOURCE_DIR}/3rdparty/gocr-0.48/src/) +# add_library(Pgm2asc SHARED ${GOCR_DIR}gocr.c ${GOCR_DIR}pgm2asc.c ${GOCR_DIR}box.c ${GOCR_DIR}database.c +# ${GOCR_DIR}detect.c ${GOCR_DIR}barcode.c ${GOCR_DIR}lines.c ${GOCR_DIR}list.c +# ${GOCR_DIR}ocr0.c ${GOCR_DIR}ocr0n.c ${GOCR_DIR}ocr1.c ${GOCR_DIR}otsu.c +# ${GOCR_DIR}output.c ${GOCR_DIR}pixel.c ${GOCR_DIR}unicode.c ${GOCR_DIR}remove.c +# ${GOCR_DIR}pnm.c ${GOCR_DIR}pcx.c ${GOCR_DIR}progress.c ${GOCR_DIR}job.c) + +# add_executable(shapes shapes.cc geom_math.cc numberrec.cc scan_ransac.cc ) +# +# IF(WIN32) +# target_link_libraries(shapes scan XGetopt netpbm Pgm2asc) +# ENDIF(WIN32) +# +# IF (UNIX) +# target_link_libraries(shapes scan newmat dl netpbm Pgm2asc ) +# ENDIF(UNIX) +# + + add_executable(caliboard caliboard.cc) +# add_executable(thermo thermo.cc) +# add_executable(thermo thermo.cc src/cvaux.cpp src/cvblob.cpp src/cvcolor.cpp src/cvcontour.cpp src/cvlabel.cpp src/cvtrack.cpp) + add_executable(thermo thermo.cc) + + IF(UNIX) + target_link_libraries(caliboard scan shape newmat dl ANN) + target_link_libraries(thermo scan shape newmat dl ANN) +# target_link_libraries(thermo scan shape newmat dl ANN) + target_link_libraries(thermo cv cvaux cxcore GL GLU highgui cvblob scan ANN) + ENDIF(UNIX) + + IF (WIN32) + target_link_libraries(caliboard scan shape newmat XGetopt ANN) +# target_link_libraries(thermo scan shape newmat XGetopt ANN) + target_link_libraries(thermo cv cvaux cxcore GL GLU highgui cvblob scan ANN) + ENDIF(WIN32) + + +ENDIF(WITH_THERMO) diff --git a/src/thermo/caliboard.cc b/src/thermo/caliboard.cc new file mode 100644 index 0000000..59ef4aa --- /dev/null +++ b/src/thermo/caliboard.cc @@ -0,0 +1,535 @@ +/* + * caliboard implementation + * + * Copyright (C) Dorit Borrmann + * + * Released under the GPL version 3. + * + */ + +/** + * @file + * @author Dorit Borrmann. Institute of Computer Science, University of Osnabrueck, Germany. +*/ + +#include +#include +#ifndef _MSC_VER +#include +#else +#include "XGetopt.h" +#endif + +#include +using std::ofstream; +using std::flush; +using std::cout; +using std::string; +using std::cerr; +using std::endl; +#include + +#ifdef _MSC_VER +#define strcasecmp _stricmp +#define strncasecmp _strnicmp +#include +#include +#else +#include +#include +#include +#include +#endif + +#include "shapes/hough.h" + +#include "shapes/shape.h" +#include "shapes/ransac.h" +#include "slam6d/icp6D.h" +#include "slam6d/icp6Dsvd.h" +#include "slam6d/icp6Dquat.h" + +#ifdef WITH_SCANSERVER +#include "scanserver/clientInterface.h" +#endif + + + +void usage(char* prog) { +#ifndef _MSC_VER + const string bold("\033[1m"); + const string normal("\033[m"); +#else + const string bold(""); + const string normal(""); +#endif + cout << endl + << bold << "USAGE " << normal << endl + << " " << prog << " [options] directory" << endl << endl; + cout << bold << "OPTIONS" << normal << endl + << bold << " -b" << normal << " NR, " << bold << "--bottom=" << normal << "NR" << endl + << " trim the scan with lower boundary NR" << endl + << endl + << bold << " -e" << normal << " NR, " << bold << "--end=" << normal << "NR" << endl + << " end after scan NR" << endl + << endl + + << bold << " -f" << normal << " F, " << bold << "--format=" << normal << "F" << endl + << " using shared library F for input" << endl + << " (chose F from {uos, uos_map, uos_rgb, uos_frames, uos_map_frames, old, rts, rts_map, ifp, riegl_txt, riegl_rgb, riegl_bin, zahn, ply})" << endl + << endl + << bold << " -m" << normal << " NR, " << bold << "--max=" << normal << "NR" << endl + << " neglegt all data points with a distance larger than NR 'units'" << endl + << endl + << bold << " -M" << normal << " NR, " << bold << "--min=" << normal << "NR" << endl + << " neglegt all data points with a distance smaller than NR 'units'" << endl + << endl + << bold << " -p" << normal << " NR, " << bold << "--pattern=" << normal << "NR" << endl + << " use pattern NR for plane detection" << endl + << " 0: lightbulb pattern" << endl + << " 1: chess pattern on cardboard" << endl + << " 2: chess pattern on wooden board" << endl + << endl + << bold << " -r" << normal << " NR, " << bold << "--reduce=" << normal << "NR" << endl + << " turns on octree based point reduction (voxel size=)" << endl + << endl + << bold << " -O" << normal << "NR (optional), " << bold << "--octree=" << normal << "NR (optional)" << endl + << " use randomized octree based point reduction (pts per voxel=)" << endl + << " requires " << bold << "-r" << normal <<" or " << bold << "--reduce" << endl + << endl + << bold << " -s" << normal << " NR, " << bold << "--start=" << normal << "NR" << endl + << " start at scan NR (i.e., neglects the first NR scans)" << endl + << " [ATTENTION: counting naturally starts with 0]" << endl + << endl + << bold << " -t" << normal << " NR, " << bold << "--top=" << normal << "NR" << endl + << " trim the scan with upper boundary NR" << endl + << endl + << endl << endl; + + cout << bold << "EXAMPLES " << normal << endl + << " " << prog << " -m 500 -r 5 dat" << endl + << " " << prog << " --max=5000 -r 10.2 dat" << endl + << " " << prog << " -s 2 -e 10 -r dat" << endl << endl; + exit(1); + +} + +bool matchPlaneToBoard(vector &points, double *alignxf, int pattern, string output) { + double rPos[3] = {0.0,0.0,0.0}; + double rPosTheta[3] = {0.0,0.0,0.0}; + + vector boardpoints; + double halfwidth; + double halfheight; + double w_step = 0.5; + double h_step = 0.5; + + switch(pattern) { + case 0: + halfheight = 28.5; + halfwidth = 25.0; + break; + case 1: + halfwidth = 18.3; + halfheight = 18.5; + w_step = 0.6; + break; + case 2: + case 3: + halfwidth = 19.0; + halfheight = 38.0; + break; + } + + for(double i = -halfwidth; i <= halfwidth; i+=w_step) { + for(double j = -halfheight; j <= halfheight; j+=h_step) { + double * p = new double[3]; + p[0] = i; + p[1] = j; + p[2] = 0.0; + //cout << p[0] << " " << p[1] << " " << p[2] << endl; + boardpoints.push_back(p); + } + } + + int nr_points = boardpoints.size(); + int nr_points2 = points.size(); + Scan * plane = new Scan(rPos, rPosTheta, points); + Scan * board = new Scan(rPos, rPosTheta, boardpoints); + board->transform(alignxf, Scan::INVALID, 0); + + bool quiet = true; + icp6Dminimizer *my_icp6Dminimizer = 0; + my_icp6Dminimizer = new icp6D_SVD(quiet); + + icp6D *my_icp = 0; + double mdm = 50; + int mni = 50; + my_icp = new icp6D(my_icp6Dminimizer, mdm, mni, quiet, false, -1, false, 1, 0.00, false, false); + + plane->createTree(false,false); + board->createTree(false,false); + + my_icp->match(plane, board); + + delete my_icp; + mdm = 2; + mni = 300; + my_icp = new icp6D(my_icp6Dminimizer, mdm, mni, quiet, false, -1, false, 1, 0.00, false, false); + my_icp->match(plane, board); + + + double sum; + double centroid_s[3] = {0.0, 0.0, 0.0}; + double centroid_t[3] = {0.0, 0.0, 0.0}; + vector pairs_out; + Scan::getPtPairs(&pairs_out, plane, board, 1, 0, 2.0, sum, centroid_s, centroid_t); + int nr_matches = pairs_out.size(); + + cout << "Result " << nr_matches << " " << nr_points << " " << nr_points2 << endl; + const double * pos = board->get_rPos(); + const double * postheta = board->get_rPosTheta(); + const double * transMat = board->get_transMat(); + for(int i = 0; i < 16; i++) { + cout << transMat[i] << " "; + } + + cout << endl << endl; + + for(int i = 0; i < 3; i++) { + cout << pos[i] << " "; + } + cout << endl; + for(int i = 0; i < 3; i++) { + cout << deg(postheta[i]) << " "; + } + cout << endl; + vector * result = new vector(); + cout << "Calipoints Start" << endl; + + ofstream caliout(output.c_str()); + + if(nr_matches < nr_points) { + caliout << "failed" << endl; + } else { + caliout << "Calibration" << endl; + } + + switch(pattern) { + // lightbulb + case 0: + for(double y = -25; y < 30; y+=10.0) { + //for(double x = -20; x < 25; x+=10.0) { + for(double x = 20; x > -25; x-=10.0) { + double * p = new double[3]; + p[0] = x; + p[1] = y; + p[2] = 0.0; + transform3(transMat, p); + result->push_back(p); + caliout << p[0] << " " << p[1] << " " << p[2] << endl; + } + } + break; + // chessboard on wooden board pattern top + case 2: + for(double x = -7.8; x < 10; x+=5.2) { + for(double y = 4.1; y < 33.0; y+=5.2) { + double * p = new double[3]; + p[0] = x; + p[1] = y; + p[2] = 0.0; + transform3(transMat, p); + result->push_back(p); + caliout << p[0] << " " << p[1] << " " << p[2] << endl; + } + } + break; + case 3: + for(double y = -4.1; y > -33.0; y-=5.2) { + //for(double y = -30.1; y < -0.0; y+=5.2) { + // for(double x = 7.8; x > -10; x-=5.2) { + for(double x = -8.1; x < 10; x+=5.2) { + double * p = new double[3]; + p[0] = x; + p[1] = y; + p[2] = 0.0; + transform3(transMat, p); + result->push_back(p); + caliout << p[0] << " " << p[1] << " " << p[2] << endl; + } + } + break; + // chessboard on cardboard + case 1: + for(double x = -12; x < 16; x+=4.0) { + for(double y = -12; y < 16; y+=4.0) { + double * p = new double[3]; + p[0] = x; + p[1] = y; + p[2] = 0.0; + transform3(transMat, p); + result->push_back(p); + caliout << p[0] << " " << p[1] << " " << p[2] << endl; + } + } + break; + } + caliout.close(); + caliout.clear(); + + cout << "Calipoints End" << endl; + return !(nr_matches < nr_points); +} + +int parseArgs(int argc, char **argv, string &dir, double &red, int &start, int &end, int &pattern, int &maxDist, int &minDist, double &top, double &bottom, int &octree, IOType &type, bool +&quiet) { + + bool reduced = false; + int c; + // from unistd.h: + extern char *optarg; + extern int optind; + + /* options descriptor */ + // 0: no arguments, 1: required argument, 2: optional argument + static struct option longopts[] = { + { "format", required_argument, 0, 'f' }, + { "max", required_argument, 0, 'm' }, + { "min", required_argument, 0, 'M' }, + { "start", required_argument, 0, 's' }, + { "reduce", required_argument, 0, 'r' }, + { "pattern", required_argument, 0, 'p' }, + { "quiet", no_argument, 0, 'q' }, + { "octree", optional_argument, 0, 'O' }, + { "end", required_argument, 0, 'e' }, + { "top", required_argument, 0, 't' }, + { "bottom", required_argument, 0, 'b' }, + { 0, 0, 0, 0} // needed, cf. getopt.h + }; + + cout << endl; + while ((c = getopt_long(argc, argv, "f:r:s:e:m:M:O:qp:e:t:b:", longopts, NULL)) != -1) + switch (c) + { + case 'r': + red = atof(optarg); + reduced = true; + break; + case 's': + start = atoi(optarg); + if (start < 0) { cerr << "Error: Cannot start at a negative scan number.\n"; exit(1); } + break; + case 'e': + end = atoi(optarg); + if (end < 0) { cerr << "Error: Cannot end at a negative scan number.\n"; exit(1); } + if (end < start) { cerr << "Error: cannot be smaller than .\n"; exit(1); } + break; + case 'f': + try { + type = formatname_to_io_type(optarg); + } catch (...) { // runtime_error + cerr << "Format " << optarg << " unknown." << endl; + abort(); + } + break; + case 'p': + pattern = atoi(optarg); + if(pattern < 0 || pattern > 3) { cerr << "Error: choose pattern between 0 and 3!\n"; exit(1); } + break; + case 'q': + quiet = true; + break; + case 'm': + maxDist = atoi(optarg); + break; + case 'O': + if (optarg) { + octree = atoi(optarg); + } else { + octree = 1; + } + break; + case 't': + top = atof(optarg); + break; + case 'b': + bottom = atof(optarg); + break; + case 'M': + minDist = atoi(optarg); + break; + case '?': + usage(argv[0]); + return 1; + default: + abort (); + break; + } + + if (optind != argc-1) { + cerr << "\n*** Directory missing ***" << endl; + usage(argv[0]); + } + dir = argv[optind]; + +#ifndef _MSC_VER + if (dir[dir.length()-1] != '/') dir = dir + "/"; +#else + if (dir[dir.length()-1] != '\\') dir = dir + "\\"; +#endif + + return 0; +} + +/** + * Main function. The Hough Transform is called for the scan indicated as + * argument. + * + */ +int main(int argc, char **argv) +{ + + cout << "(c) Jacobs University Bremen, gGmbH, 2010" << endl << endl; + + if (argc <= 1) { + usage(argv[0]); + } + // parsing the command line parameters + // init, default values if not specified + string dir; + double red = -1.0; + int start = 0; + int end = -1; + int maxDist = -1; + int minDist = -1; + int octree = 0; + bool quiet = false; + int pattern = 0; + double bottom = -5; + double top = 170; + IOType type = UOS; + + cout << "Parse args" << endl; + parseArgs(argc, argv, dir, red, start, end, pattern, maxDist, minDist, top, bottom, octree, type, quiet); + Scan::dir = dir; + int fileNr = start; + string calidir = dir + "/cali"; + +#ifdef WITH_SCANSERVER + try { + ClientInterface::create(); + } catch(std::runtime_error& e) { + cerr << "ClientInterface could not be created: " << e.what() << endl; + cerr << "Start the scanserver first." << endl; + exit(-1); + } +#endif //WITH_SCANSERVER + +#ifdef _MSC_VER + int success = mkdir(calidir.c_str()); +#else + int success = mkdir(calidir.c_str(), S_IRWXU|S_IRWXG|S_IRWXO); +#endif + if(success == 0) { + if(!quiet) { + cout << "Writing calibration results to " << calidir << endl; + } + } else if(errno == EEXIST) { + cout << "Directory " << calidir << " exists already. CONTINUE" << endl; + } else { + cerr << "Creating directory " << calidir << " failed" << endl; + exit(1); + } + + cout << start << " " << end << endl; + int successes = 0; + int failures = 0; + + long calitime = GetCurrentTimeInMilliSec(); +#ifndef WITH_SCANSERVER + while (fileNr <= end) { + Scan::readScans(type, fileNr, fileNr, dir, maxDist, minDist, 0); + + string output = calidir + "/scan" + to_string(fileNr,3) + ".3d"; + cout << "Top: " << top << " Bottom: " << bottom << endl; + Scan::allScans[0]->trim(top, bottom); + + Scan::allScans[0]->toGlobal(red, octree); + double id[16]; + M4identity(id); + for(int i = 0; i < 10; i++) { + Scan::allScans[0]->transform(id, Scan::ICP, 0); // write end pose + } +#else //WITH_SCANSERVER + Scan::readScansRedSearch(type, start, end, dir, filter, red, octree); + for(std::vector::iterator it = Scan::allScans.begin(); it != Scan::allScans.end(); ++it) + { + Scan* scan = *it; + string output = calidir + "/scan" + scan->getIdentifier() + ".3d"; + cout << "Top: " << top << " Bottom: " << bottom << endl; + // set trimming, don't want to put it into readScansRedSearch too + scan->trim(top, bottom); + + double id[16]; + M4identity(id); + for(int i = 0; i < 10; i++) { + scan->transform(id, Scan::ICP, 0); // write end pose + } +#endif //WITH_SCANSERVER + cout << "start plane detection" << endl; + long starttime = GetCurrentTimeInMilliSec(); + vector points; + CollisionPlane * plane; + plane = new LightBulbPlane(50,120); +#ifndef WITH_SCANSERVER + Ransac(*plane, Scan::allScans[0], &points); +#else //WITH_SCANSERVER + Ransac(*plane, scan, &points); +#endif //WITH_SCANSERVER + starttime = (GetCurrentTimeInMilliSec() - starttime); + + cout << "nr points " << points.size() << endl; + double nx,ny,nz,d; + plane->getPlane(nx,ny,nz,d); + cout << "DONE " << endl; + + cout << nx << " " << ny << " " << nz << " " << d << endl; + double rPos[3]; + double rPosTheta[3]; + for(int i = 0; i < 3; i++) { + rPosTheta[i] = 0.0; + } + ((LightBulbPlane *)plane)->getCenter(rPos[0], rPos[1], rPos[2]); + double alignxf[16]; + EulerToMatrix4(rPos, rPosTheta, alignxf); + if(matchPlaneToBoard(points, alignxf, pattern, output)) { + successes++; + } else { + failures++; + } + for(int i = points.size() - 1; i > -1; i++) { + delete[] points[i]; + } + + delete plane; + + cout << "Time for Plane Detection " << starttime << endl; +#ifndef WITH_SCANSERVER + delete Scan::allScans[0]; + Scan::allScans.clear(); + fileNr++; +#endif //WITH_SCANSERVER + } + calitime = (GetCurrentTimeInMilliSec() - calitime); + + cout << "Calibration done with " << successes << " successes and " << failures + << " failures!" << endl; + cout << "Time for Calibration " << calitime << endl; + +#ifdef WITH_SCANSERVER + Scan::clearScans(); + ClientInterface::destroy(); +#endif //WITH_SCANSERVER +} + diff --git a/src/thermo/thermo.cc b/src/thermo/thermo.cc new file mode 100644 index 0000000..be22108 --- /dev/null +++ b/src/thermo/thermo.cc @@ -0,0 +1,1749 @@ +/* + * thermo implementation + * + * Copyright (C) Dorit Borrmann + * + * Released under the GPL version 3. + * + */ + +#include +#include "thermo/thermo.h" +#include "newmat/newmatap.h" +using namespace NEWMAT; + +#include "cvblob.h" +using namespace cvb; + +#include + +#ifndef _MSC_VER +#include +#include +#else +#include "XGetopt.h" +#define strcasecmp _stricmp +#define strncasecmp _strnicmp +#include +#include +#endif + +#ifdef _EiC +#define WIN32 +#endif + +Float2D data1; +Float2D data2; + +unsigned int BLOB_SIZE = 55; +double AVG_THRES = 0.8; + +/** + * Calculates the PCA of a two-dimensional point cloud + * @param x x coordinate of the axis + * @param y y coordinate of the axis + * @param pc true if the principal axis is wanted, false for the least dominant + * @param cx center x of the point cloud + * @param cy center y of the point cloud + */ + +void calcBoard(double point_array[][2], int board_n, double &x, double &y, double &cx, double &cy, bool pc) { + cx = cy = 0; + for (int a = 0; a < board_n; a++) { + cx += point_array[a][0]; + cy += point_array[a][1]; + } + + cx /= board_n; + cy /= board_n; + + SymmetricMatrix A(2); + A = 0; + + for(int a = 0; a < board_n; a++) { + A(1,1) += (point_array[a][0] - cx)*(point_array[a][0] - cx); + A(2,2) += (point_array[a][1] - cy)*(point_array[a][1] - cy); + A(1,2) += (point_array[a][0] - cx)*(point_array[a][1] - cy); + } + DiagonalMatrix D; + Matrix V; + try { + Jacobi(A,D,V); + } catch (ConvergenceException) { + cout << "couldn't find board..." << endl; + } + + int min, max; + + D.MaximumAbsoluteValue1(max); + D.MinimumAbsoluteValue1(min); + + // return eigenvector with highest eigenvalue + if(pc) { + x = V(1,max); + y = V(2,max); + // return eigenvector with lowest eigenvalue + } else { + x = V(1,min); + y = V(2,min); + } + +} + +/** + * Sorts the detected light bulbs on the board. + * @param point_array list of detected points + * @param board_n number of lightbulbs + * @param board_h number of rows + * @param board_w number of columns + * @param quiet if true, debug information is printed + */ +void sortBlobs(double point_array[][2], int board_n, int board_h, int board_w, bool quiet) { + double x, y, cx, cy; + // align board using PCA + calcBoard(point_array, board_n, x, y, cx, cy, board_h <= board_w); + double point_array2[board_n][2]; + double angle = -atan2(y,x); + for(int i = 0; i < board_n; i++) { + double tmpx = point_array[i][0] - cx; + double tmpy = point_array[i][1] - cy; + point_array2[i][0] = tmpx * cos(angle) - tmpy * sin(angle); + point_array2[i][1] = tmpx * sin(angle) + tmpy * cos(angle); + } + // sorting the points on the basis of y coordinate////// + int swapped1 = 0; + do { + swapped1 = 0; + + for (int a = 1; a <= board_n - 1; a++) { + if (point_array2[a][1] < point_array2[a - 1][1]) { + //rotated points + double tempx = point_array2[a][0]; + double tempy = point_array2[a][1]; + point_array2[a][0] = point_array2[a - 1][0]; + point_array2[a][1] = point_array2[a - 1][1]; + point_array2[a - 1][0] = tempx; + point_array2[a - 1][1] = tempy; + + //original points + double tmpx = point_array[a][0]; + double tmpy = point_array[a][1]; + point_array[a][0] = point_array[a - 1][0]; + point_array[a][1] = point_array[a - 1][1]; + point_array[a - 1][0] = tmpx; + point_array[a - 1][1] = tmpy; + swapped1 = 1; + } + } + } while (swapped1 == 1); + + if(!quiet) { + cout << "sorted array:" << endl; + for (int f = 0; f < board_n; f++) { + cout << point_array2[f][0] << " " << point_array2[f][1] << endl; + } + } + // sorting the array rows now + for (int x = 0; x < board_h; x++) { + double row_points[board_w][2]; + double row_points2[board_w][2]; + for (int y = 0; y < board_w; y++) { + row_points[y][0] = point_array[x * board_w + y][0]; + row_points[y][1] = point_array[x * board_w + y][1]; + row_points2[y][0] = point_array2[x * board_w + y][0]; + row_points2[y][1] = point_array2[x * board_w + y][1]; + if(!quiet) cout << row_points[y][0] << " " << row_points[y][1] << " "; + } + if(!quiet) cout << endl; + int swapped = 0; + do { + swapped = 0; + for (int a = 1; a <= board_w - 1; a++) { + if (row_points2[a][0] < row_points2[a - 1][0]) { + // original points + double tempx = row_points[a][0]; + double tempy = row_points[a][1]; + row_points[a][0] = row_points[a - 1][0]; + row_points[a][1] = row_points[a - 1][1]; + row_points[a - 1][0] = tempx; + row_points[a - 1][1] = tempy; + // rotated points + double tmpx = row_points2[a][0]; + double tmpy = row_points2[a][1]; + row_points2[a][0] = row_points2[a - 1][0]; + row_points2[a][1] = row_points2[a - 1][1]; + row_points2[a - 1][0] = tmpx; + row_points2[a - 1][1] = tmpy; + swapped = 1; + } + } + } while (swapped == 1); + if(!quiet) cout << "sorted:" << endl; + for (int z = 0; z < board_w; z++) { + point_array2[x * board_w + z][0] = row_points2[z][0]; + point_array2[x * board_w + z][1] = row_points2[z][1]; + if(!quiet) cout << point_array[x * board_w + z][0] << " " << point_array[x * board_w + z][1] << " "; + point_array[x * board_w + z][0] = row_points[z][0]; + point_array[x * board_w + z][1] = row_points[z][1]; + } + if(!quiet) cout << endl; + + } + +} + +/** + * Detects the blobs. + */ +IplImage* detectBlobs(IplImage *org_image, int &corner_exp, int board_h, int board_w, bool quiet, double point_array2[][2]) { + + IplImage *gray_image = cvCloneImage(org_image); + cvThreshold(gray_image, gray_image, 140, 255, CV_THRESH_BINARY); + IplImage *labelImg = cvCreateImage(cvGetSize(gray_image), IPL_DEPTH_LABEL, 1); + + // detect blobs + CvBlobs blobs; + cvLabel(gray_image, labelImg, blobs); + double average_size = 0; + int count = 0; + for (CvBlobs::const_iterator it = blobs.begin(); it != blobs.end(); ++it) { + if (it->second->area < BLOB_SIZE) { + count++; + average_size += it->second->area; + } + } + if(!quiet) cout << "centroid:" << average_size << endl; + + // refine blobs + average_size = average_size / count; + double average_size_min = average_size * (1.0 - AVG_THRES); + double average_size_max = average_size * (1.0 + AVG_THRES); + int blob_count = 0; + + for (CvBlobs::const_iterator it2 = blobs.begin(); it2 != blobs.end(); ++it2) { + if (it2->second->area >= average_size_min && + it2->second->area <= average_size_max && + blob_count < corner_exp) { + + point_array2[blob_count][0] = it2->second->centroid.x; + point_array2[blob_count][1] = it2->second->centroid.y; + double sumx = 0.0; + double sumy = 0.0; + double sum = 0.0; + + /* + int step = 5; + int minx = ((int)it2->second->minx - step) > -1 ? (it2->second->minx - step) : 0; + int maxx = ((it2->second->maxx + step) < gray_image->width) ? (it2->second->maxx + step) : (gray_image->width - 1); + int miny = ((int)it2->second->miny - step) > -1 ? (it2->second->miny - step) : 0; + int maxy = ((it2->second->maxy + step) < gray_image->height) ? (it2->second->maxy + step) : (gray_image->height - 1); + */ + + int minx = it2->second->minx; + int miny = it2->second->miny; + int maxx = it2->second->maxx; + int maxy = it2->second->maxy; + + for(int x = minx; x <= maxx; x++) { + for(int y = miny; y <= maxy; y++) { + if(cvGet2D(gray_image, y, x).val[0] > 0) { + CvScalar c; + c = cvGet2D(org_image, y, x); + sum += c.val[0]; + sumx += c.val[0]*x; + sumy += c.val[0]*y; + } + } + } + + sumx /= sum; + sumy /= sum; + point_array2[blob_count][0] = sumx; + point_array2[blob_count][1] = sumy; + + blob_count++; + } + } + + if(!quiet) cout << "Refined number of blobs=" << blob_count << endl; + // sorting the points + sortBlobs(point_array2, corner_exp, board_h, board_w, true); + cvReleaseImage(&labelImg); + corner_exp = blob_count; + return gray_image; +} + +/** + * Connects the detected calibration features in the image with lines. + */ +void drawLines(double point_array2[][2], int corner_exp, IplImage *image, bool color) { + for (int i = 0; i <= corner_exp - 2; i++) { + CvPoint pt1; + CvPoint pt2; + CvScalar s; + if(color) { + s = CV_RGB(255,0,0); + } else { + s.val[0] = 100; + } + double temp1 = point_array2[i][0] - floor(point_array2[i][0]); + if (temp1 < .5) { + pt1.x = floor(point_array2[i][0]); + } else { + pt1.x = floor(point_array2[i][0]) + 1; + } + double temp2 = point_array2[i][1] - floor(point_array2[i][1]); + if (temp2 < .5) { + pt1.y = floor(point_array2[i][1]); + } else { + pt1.y = floor(point_array2[i][1]) + 1; + } + double temp3 = point_array2[i + 1][0] - floor( + point_array2[i + 1][0]); + if (temp3 < .5) { + pt2.x = floor(point_array2[i + 1][0]); + } else { + pt2.x = floor(point_array2[i + 1][0]) + 1; + } + double temp4 = point_array2[i + 1][1] - floor( + point_array2[i + 1][1]); + if (temp4 < .5) { + pt2.y = floor(point_array2[i + 1][1]); + } else { + pt2.y = floor(point_array2[i + 1][1]) + 1; + } + cvLine(image, pt1, pt2, s, 1, 8); + } + cvShowImage("Final Result", image); + +} + +/** + * Resizes the image + */ +IplImage* resizeImage(IplImage *source, int scale) { + int width, height; + IplImage *image; + switch(scale) { + case 2: + width = 1200; + height = 900; + break; + case 3: + width = 800; + height = 600; + break; + case 4: + width = 400; + height = 300; + break; + case 5: + width = 160; + height = 120; + break; + case 1: + default: + return cvCloneImage(source); + } + + image = cvCreateImage(cvSize(width,height),source->depth,source->nChannels); + cvResize(source,image); + return image; +} + +/** + * Detects the corners of the chessboard pattern. + */ +IplImage* detectCorners(IplImage *orgimage, int corner_exp, int board_h, int board_w, bool quiet, double point_array2[][2], int scale) { + + IplImage *image = resizeImage(orgimage, scale); + CvSize size = cvGetSize(image); + CvPoint2D32f* corners = new CvPoint2D32f[corner_exp]; + CvSize board_sz = cvSize(board_w, board_h); + IplImage *gray_image = cvCreateImage(size,8,1); + + if (image->nChannels == 3) { + cvCvtColor(image, gray_image, CV_BGR2GRAY); + } else { + gray_image = image; + } + + int found = cvFindChessboardCorners(image, board_sz, corners, &corner_exp, + CV_CALIB_CB_ADAPTIVE_THRESH | CV_CALIB_CB_FILTER_QUADS); + + cout << "found corners:" << corner_exp << endl; + if (found != 0) {//if all corners found successfully + //Get Subpixel accuracy on those corners + if(size.width > 400) { + cvFindCornerSubPix(gray_image, corners, corner_exp, cvSize(11, 11), cvSize(-1, -1), + cvTermCriteria( CV_TERMCRIT_EPS + CV_TERMCRIT_ITER, 30, 0.1)); + } + else { + cvFindCornerSubPix(gray_image, corners, corner_exp, cvSize(2, 2), cvSize(-1, -1), + cvTermCriteria( CV_TERMCRIT_EPS + CV_TERMCRIT_ITER, 30, 0.1)); + } + } + + for (int i = 0; i < corner_exp; i++) { + point_array2[i][0] = corners[i].x; + point_array2[i][1] = corners[i].y; + } + return gray_image; + +} + +/** + * Writes the intrinsic calibration parameters to files. + */ +void writeCalibParam(int images, int corner_exp, int board_w, CvMat* +image_points, CvSize size, string dir, string substring) { + CvMat* intrinsic_matrix = cvCreateMat(3, 3, CV_32FC1); + CvMat* distortion_coeffs = cvCreateMat(5, 1, CV_32FC1); + //ALLOCATE MATRICES ACCORDING TO HOW MANY CHESSBOARDS FOUND + CvMat* object_points2 = cvCreateMat(images * corner_exp, 3, CV_32FC1); + CvMat* image_points2 = cvCreateMat(images * corner_exp, 2, CV_32FC1); + CvMat* point_counts2 = cvCreateMat(images, 1, CV_32SC1); + CvMat* Rotation = cvCreateMat(images, 3, CV_32FC1); + CvMat* Translation = cvCreateMat(images, 3, CV_32FC1); + //TRANSFER THE POINTS INTO THE CORRECT SIZE MATRICES + int j; + for (int i = 0; i < images * corner_exp; ++i) { + j = i % corner_exp; + CV_MAT_ELEM( *image_points2, float, i, 0) = CV_MAT_ELEM( *image_points, float, i, 0); + CV_MAT_ELEM( *image_points2, float,i,1) = CV_MAT_ELEM( *image_points, float, i, 1); + CV_MAT_ELEM(*object_points2, float, i, 0) = (j / board_w) * 8; + CV_MAT_ELEM( *object_points2, float, i, 1) = (j % board_w) * 8; + CV_MAT_ELEM( *object_points2, float, i, 2) = 0.0f; + } + for (int i = 0; i < images; ++i) { //These are all the same number + CV_MAT_ELEM( *point_counts2, int, i, 0) = corner_exp; + } + + // Initialize the intrinsic matrix with focal length = 1.0 + CV_MAT_ELEM( *intrinsic_matrix, float, 0, 0 ) = 1.0f; + CV_MAT_ELEM( *intrinsic_matrix, float, 1, 1 ) = 1.0f; + //CALIBRATE THE CAMERA! + cvCalibrateCamera2(object_points2, image_points2, point_counts2, size, + intrinsic_matrix, distortion_coeffs, Rotation, Translation, 0 //CV_CALIB_FIX_ASPECT_RATIO + ); + // SAVE AND PRINT THE INTRINSICS AND DISTORTIONS + + string file = dir + "Intrinsics" + substring + ".xml"; + cvSave(file.c_str(), intrinsic_matrix); + file = dir + "Distortion" + substring + ".xml"; + cvSave(file.c_str(), distortion_coeffs); + cout << "Camera Intrinsic Matrix is:" << endl; + for (int row = 0; row < 3; row++) { + for (int col = 0; col < 3; col++) { + cout << CV_MAT_ELEM( *intrinsic_matrix, float, row, col ) << "\t"; + } + cout << endl; + } + cout << "Distortion Coefficients are:" << endl; + for (int row = 0; row < 5; row++) { + for (int col = 0; col < 1; col++) { + cout << CV_MAT_ELEM( *distortion_coeffs, float, row, col ) << "\t"; + } + } + cout << endl; + CvMat *intrinsic = intrinsic_matrix; + CvMat *distortion = distortion_coeffs; + + // CLEANUP + cvReleaseMat(&object_points2); + cvReleaseMat(&image_points2); + cvReleaseMat(&point_counts2); + cvReleaseMat(&Rotation); + cvReleaseMat(&Translation); + cvReleaseMat(&intrinsic); + cvReleaseMat(&distortion); +} + +/** + * Main function for intrinsic calibration + */ +void CalibFunc(int board_w, int board_h, int start, int end, bool optical, bool +chess, bool quiet, string dir, int scale) { + cvNamedWindow("Original Image", 0); + cvResizeWindow( "Final Result", 320, 240 ); + cvNamedWindow("Final Result", 0); + cvResizeWindow( "Final Result", 320, 240 ); + + int nr_img = end - start + 1; + if (nr_img == 0) { + cout << "ImageCount is zero!" << endl; + return; + } + + int corner_exp = board_w * board_h; + CvSize board_sz = cvSize(board_w, board_h); + CvSize size; + //ALLOCATE STORAGE(depending upon the number of images in(in case if command line arguments are given ) + //not on the basis of number of images in which all corner extracted/while in the other case the number is the same ) + CvMat* image_points = cvCreateMat(nr_img * corner_exp, 2, CV_32FC1); + //TODO CvPoint2D32f* corners = new CvPoint2D32f[ board_n ]; + + int successes = 0; + int step = 0; + + for (int count = start; count <= end; count++) { + string t; + string t1; + + if(optical) { + t = dir + "/photo" + to_string(count, 3) + ".ppm"; + t1 = dir + "/cimage" + to_string(count, 3) + ".ppm"; + //t = dir + to_string(count, 3) + "/photo" + to_string(count, 3) + ".ppm"; + //t1 = dir + to_string(count, 3) + "/cimage" + to_string(count, 3) + ".ppm"; + } else { + //t = dir + to_string(count, 3) + "/image" + to_string(count, 3) + ".ppm"; + //t1 = dir + to_string(count, 3) + "/timage" + to_string(count, 3) + ".ppm"; + t = dir + "/image" + to_string(count, 3) + ".ppm"; + t1 = dir + "/timage" + to_string(count, 3) + ".ppm"; + } + cout << t << endl; + //loading images and finding corners + IplImage* image1 = cvLoadImage(t.c_str(), -1); + if (!image1) { + cout << "image cannot be loaded" << endl; + return; + } + cvShowImage("Original Image", image1); + + ///////////////////////////////////////////////////////////// + + double point_array2[corner_exp][2]; + IplImage *image; + + if(chess) { + cout << "detect corners" << endl; + image = detectCorners(image1, corner_exp, board_h, board_w, quiet, point_array2, scale); + } else { + cout << "detect blob" << endl; + int tmp_corners = corner_exp; + image = detectBlobs(image1, tmp_corners, board_h, board_w, quiet, point_array2); + } + + for(int i = 0; i < corner_exp; i++) { + cout << (float) point_array2[i][0] << " " << (float) point_array2[i][1] << + endl; + } + //drawing the lines on the image now + drawLines(point_array2, corner_exp, image); + + cout << "\nDo you want to use the data from this image ('y' or 'n'). 'x' aborts the calibration? : "; + int c = cvWaitKey(100); + if (c == 27) { + break; + } + char in; + cin >> in; + if (in == 'y') { + cvSaveImage(t1.c_str(), image); + size = cvGetSize(image); + step = successes * corner_exp; + //appending corner data to a generic data structure for all images + for (int i = step, j = 0; j < corner_exp; ++i, ++j) { + CV_MAT_ELEM(*image_points, float,i,0) = (float) point_array2[j][0]; + CV_MAT_ELEM(*image_points, float,i,1) = (float) point_array2[j][1]; + } + successes++; + } else if(in == 'x') { + break; + } + cvReleaseImage(&image); + cvReleaseImage(&image1); + + } + cout << "Images for which all corners were found successfully=" + << successes << endl; + if (successes == 0) { + cout << "No successful corners found from any image" << endl; + return; + } + + string substring = optical? "Optical" : ""; + writeCalibParam(successes, corner_exp, board_w, image_points, size, dir, substring); + + cvReleaseMat(&image_points); + +} + +/** + * Reads the 3D information of the features from a file. + */ +bool readPoints(string filename, CvPoint3D32f *corners, int size) { + ifstream infile(filename.c_str(), ios::in); + if (!infile) { + cout << "3Ddata file cannot be loaded" << endl; + return false; + } + + string verify; + infile >> verify; + if(strcmp(verify.c_str(), "failed") == 0) return false; + for(int l = 0; l < size; l++) { + infile >> corners[l].y; + infile >> corners[l].z; + infile >> corners[l].x; + corners[l].y = -corners[l].y; + } + return true; +} + +/** + * Calculates the median of a set of translation vectors, i.e., the translation + * that has the smallest distance to all other translation. + */ +int realMedian(CvMat * vectors, int nr_vectors) { + double distances[nr_vectors]; + + for(int i = 0; i < nr_vectors; i++) { + double sum = 0; + double x1 = (CV_MAT_ELEM(*vectors,float,i,0)); + double y1 = (CV_MAT_ELEM(*vectors,float,i,1)); + double z1 = (CV_MAT_ELEM(*vectors,float,i,2)); + for(int j = 0; j < nr_vectors; j++) { + double x2 = (CV_MAT_ELEM(*vectors,float,j,0)); + double y2 = (CV_MAT_ELEM(*vectors,float,j,1)); + double z2 = (CV_MAT_ELEM(*vectors,float,j,2)); + double tmp = (x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)+(z2-z1)*(z2-z1); + sum += sqrt(tmp); + } + distances[i] = sum; + } + int min_pos = -1; + double min_dist = DBL_MAX; + for(int i = 0; i < nr_vectors; i++) { + if(distances[i] < min_dist) { + min_pos = i; + min_dist = distances[i]; + } + } + + return min_pos; +} + +/* + * Calculates the median of a set of vectors by iteratively calculating the + * median and cropping outliers. + */ +void filterMedian(CvMat * vectors, int nr_vectors, int threshold, CvMat * mean) { + + // calculate Median + int min_pos = realMedian(vectors, nr_vectors); + + // crop outliers + double x1 = (CV_MAT_ELEM(*vectors,float,min_pos,0)); + double y1 = (CV_MAT_ELEM(*vectors,float,min_pos,1)); + double z1 = (CV_MAT_ELEM(*vectors,float,min_pos,2)); + + int count = 0; + for(int i = 0; i < nr_vectors; i++) { + double x2 = (CV_MAT_ELEM(*vectors,float,i,0)); + double y2 = (CV_MAT_ELEM(*vectors,float,i,1)); + double z2 = (CV_MAT_ELEM(*vectors,float,i,2)); + double tmp = (x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)+(z2-z1)*(z2-z1); + if(sqrt(tmp) < 1.0/threshold) count++; + } + + CvMat* some_vectors = cvCreateMat(count, 6, CV_32FC1); + count = 0; + for(int i = 0; i < nr_vectors; i++) { + double x2 = (CV_MAT_ELEM(*vectors,float,i,0)); + double y2 = (CV_MAT_ELEM(*vectors,float,i,1)); + double z2 = (CV_MAT_ELEM(*vectors,float,i,2)); + double tmp = (x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)+(z2-z1)*(z2-z1); + if(sqrt(tmp) < 1.0/threshold) { + for(int j = 0; j < 6; j++) { + (CV_MAT_ELEM(*some_vectors,float,count,j)) = (CV_MAT_ELEM(*vectors,float,i,j)); + cout << (CV_MAT_ELEM(*some_vectors,float,count,j)) << " "; + } + cout << endl; + count++; + } + } + // recurse + if(threshold < 3) { + filterMedian(some_vectors, count, ++threshold, mean); + cvReleaseMat(&some_vectors); + // determine result + } else { + x1 = (CV_MAT_ELEM(*some_vectors,float,min_pos,0)); + y1 = (CV_MAT_ELEM(*some_vectors,float,min_pos,1)); + z1 = (CV_MAT_ELEM(*some_vectors,float,min_pos,2)); + double x2 = 0; + double y2 = 0; + double z2 = 0; + double r1 = 0; + double r2 = 0; + double r3 = 0; + for(int i = 0; i < count; i++) { + x2 += (CV_MAT_ELEM(*some_vectors,float,i,0)); + y2 += (CV_MAT_ELEM(*some_vectors,float,i,1)); + z2 += (CV_MAT_ELEM(*some_vectors,float,i,2)); + r1 += (CV_MAT_ELEM(*some_vectors,float,i,3)); + r2 += (CV_MAT_ELEM(*some_vectors,float,i,4)); + r3 += (CV_MAT_ELEM(*some_vectors,float,i,5)); + } + (CV_MAT_ELEM(*mean,float,0,0)) = x2/count; + (CV_MAT_ELEM(*mean,float,0,1)) = y2/count; + (CV_MAT_ELEM(*mean,float,0,2)) = z2/count; + (CV_MAT_ELEM(*mean,float,0,3)) = r1/count; + (CV_MAT_ELEM(*mean,float,0,4)) = r2/count; + (CV_MAT_ELEM(*mean,float,0,5)) = r3/count; + } +} + +/** + * Sorts vectors element by element, enables one to calculate the median of + * each element separately. + */ +void sortElementByElement(CvMat * vectors, int nr_elems, int nr_vectors) { + bool swapped; + for (int i = 0; i < nr_elems; i++) { + do { + swapped = false; + for (int j = 1; j <= nr_vectors - 1; j++) { + if (CV_MAT_ELEM(*vectors,float,j,i) < CV_MAT_ELEM(*vectors,float,j-1,i)) { + float temp = CV_MAT_ELEM(*vectors,float,j,i); + CV_MAT_ELEM(*vectors,float,j,i) = CV_MAT_ELEM(*vectors,float,j-1,i); + CV_MAT_ELEM(*vectors,float,j-1,i) = temp; + swapped = true; + } + } + } while (swapped); + } +} + +/** + * Calculates the extrinsic parameters of a set of matches. Find the best match + * by calculating the reprojection error of each set of calibration parameters. + */ +void calculateExtrinsicsWithReprojectionCheck(CvMat * points2D, CvMat * + points3D, CvMat * rotation_vectors_temp, CvMat * translation_vectors_temp, CvMat + * distortion, CvMat * intrinsics, int corners, int successes, string dir, bool quiet, string substring) { + double reprojectionError[successes]; + for(int i = 0; i < successes; i++) { + reprojectionError[i] = 0.0; + } + + for(int i = 0; i < successes; i++) { + reprojectionError[i] = 0.0; + CvMat * rotation = cvCreateMat(1, 3, CV_32FC1); + CvMat * translation = cvCreateMat(1, 3, CV_32FC1); + + for(int k = 0; k < 3; k++) { + CV_MAT_ELEM(*rotation, float, 0, k) = CV_MAT_ELEM(*rotation_vectors_temp, float, i, k); + CV_MAT_ELEM(*translation, float, 0, k) = CV_MAT_ELEM(*translation_vectors_temp, float, i, k); + } + for(int j = 0; j < successes; j++) { + double tmp = 0; + //calculate reprojection error + CvMat * point_3Dcloud = cvCreateMat(corners, 3, CV_32FC1); + CvMat * point_2Dcloud = cvCreateMat(corners, 2, CV_32FC1); + for(int l = 0; l < corners; l++) { + CV_MAT_ELEM(*point_2Dcloud,float,l,0) = 0.0; + CV_MAT_ELEM(*point_2Dcloud,float,l,1) = 1.0; + CV_MAT_ELEM(*point_3Dcloud,float,l,0) = CV_MAT_ELEM(*points3D,CvPoint3D32f,j,l).x; + CV_MAT_ELEM(*point_3Dcloud,float,l,1) = CV_MAT_ELEM(*points3D,CvPoint3D32f,j,l).y; + CV_MAT_ELEM(*point_3Dcloud,float,l,2) = CV_MAT_ELEM(*points3D,CvPoint3D32f,j,l).z; + } + cvProjectPoints2(point_3Dcloud, rotation, translation, intrinsics, + distortion, point_2Dcloud, NULL, NULL, NULL, NULL, NULL, 0); + for(int l = 0; l < corners; l++) { + double x = CV_MAT_ELEM(*point_2Dcloud,float,l,0) - CV_MAT_ELEM(*points2D,CvPoint2D32f,j,l).x; + double y = CV_MAT_ELEM(*point_2Dcloud,float,l,1) - CV_MAT_ELEM(*points2D,CvPoint2D32f,j,l).y; + tmp += sqrt(x*x + y*y); + } + cvReleaseMat(&point_2Dcloud); + reprojectionError[i] += tmp; + cvReleaseMat(&point_3Dcloud); + } + cvReleaseMat(&rotation); + cvReleaseMat(&translation); + } + + int maxindex = -1; + double max = DBL_MAX; + for(int i = 0; i < successes; i++) { + if(reprojectionError[i] < max) { + maxindex = i; + max = reprojectionError[i]; + } + } + + CvMat * rotation = cvCreateMat(1, 3, CV_32FC1); + CvMat * translation = cvCreateMat(1, 3, CV_32FC1); + + for(int i = 0; i < 3; i++) { + CV_MAT_ELEM(*rotation, float, 0, i) = CV_MAT_ELEM(*rotation_vectors_temp, float, maxindex, i); + CV_MAT_ELEM(*translation, float, 0, i) = CV_MAT_ELEM(*translation_vectors_temp, float, maxindex, i); + } + string file = dir + "Rotation" + substring + ".xml"; + cvSave(file.c_str(), rotation); + file = dir + "Translation" + substring + ".xml"; + cvSave(file.c_str(), translation); + +} + +/** + * Calculates the extrinsic parameters given a set of feature matches using the + * mean and median method. + */ +void calculateExtrinsics(CvMat * rotation_vectors_temp, CvMat * translation_vectors_temp, int successes, string dir, bool quiet, string substring) { + + CvMat* rotation_vectors = cvCreateMat(successes, 3, CV_32FC1); + CvMat* translation_vectors = cvCreateMat(successes, 3, CV_32FC1); + CvMat* vectors = cvCreateMat(successes, 6, CV_32FC1); + CvMat* rotation_vector_mean = cvCreateMat(1, 3, CV_32FC1); + CvMat* translation_vector_mean = cvCreateMat(1, 3, CV_32FC1); + CvMat* rotation_vector_median = cvCreateMat(1, 3, CV_32FC1); + CvMat* translation_vector_median = cvCreateMat(1, 3, CV_32FC1); + CvMat* median = cvCreateMat(1, 6, CV_32FC1); + for (int t = 0; t < 3; t++) { + CV_MAT_ELEM(*rotation_vector_mean,float,0,t) = 0; + CV_MAT_ELEM(*translation_vector_mean,float,0,t) = 0; + CV_MAT_ELEM(*rotation_vector_median,float,0,t) = 0; + CV_MAT_ELEM(*translation_vector_median,float,0,t) = 0; + CV_MAT_ELEM(*median,float,0,t) = 0; + CV_MAT_ELEM(*median,float,0,t + 3) = 0; + } + + for (int h = 0; h < successes; h++) { + for(int t = 0; t < 3; t++) { + CV_MAT_ELEM(*rotation_vectors,float,h,t) =CV_MAT_ELEM(*rotation_vectors_temp,float,h,t); + CV_MAT_ELEM(*rotation_vector_mean,float,0,t) +=CV_MAT_ELEM(*rotation_vectors,float,h,t); + + CV_MAT_ELEM(*translation_vectors,float,h,t) =CV_MAT_ELEM(*translation_vectors_temp,float,h,t); + CV_MAT_ELEM(*translation_vector_mean,float,0,t) +=CV_MAT_ELEM(*translation_vectors,float,h,t); + + CV_MAT_ELEM(*vectors,float,h,t) =CV_MAT_ELEM(*translation_vectors_temp,float,h,t); + CV_MAT_ELEM(*vectors,float,h,t + 3) =CV_MAT_ELEM(*rotation_vectors_temp,float,h,t); + } + } + + for(int t = 0; t < 3; t++) { + CV_MAT_ELEM(*rotation_vector_mean,float,0,t) /= successes; + CV_MAT_ELEM(*translation_vector_mean,float,0,t) /= successes; + } + + // finding the median of rotation and translation + // sorting the rotation vectors element by element + /* + sortElementByElement(rotation_vectors, 3, successes); + sortElementByElement(translation_vectors, 3, successes); + + if(!quiet) { + cout << "number of successes : " << successes << endl; + cout << "rotation vectors are" << endl; + for (int i = 0; i < successes; i++) { + cout << CV_MAT_ELEM(*rotation_vectors,float,i,0) << " " + <> in; + if(tmp_corners == corner_exp) { + if (in == 'y') { + size = cvGetSize(image); + //appending corner data to a generic data structure for all images + for (int j = 0; j < corner_exp; ++j) { + CV_MAT_ELEM(*image_points, float,j,0) = (float) point_array2[j][0]; + CV_MAT_ELEM(*image_points, float,j,1) = (float) point_array2[j][1]; + CV_MAT_ELEM(*object_points,float,j,0) = corners[j].x; + CV_MAT_ELEM(*object_points,float,j,1) = corners[j].y; + CV_MAT_ELEM(*object_points,float,j,2) = corners[j].z; + + CV_MAT_ELEM(*points2D, CvPoint2D32f, successes, j).x = (float)point_array2[j][0]; + CV_MAT_ELEM(*points2D, CvPoint2D32f, successes, j).y = (float)point_array2[j][1]; + CV_MAT_ELEM(*points3D, CvPoint3D32f, successes, j).x = corners[j].x; + CV_MAT_ELEM(*points3D, CvPoint3D32f, successes, j).y = corners[j].y; + CV_MAT_ELEM(*points3D, CvPoint3D32f, successes, j).z = corners[j].z; + } + cvFindExtrinsicCameraParams2(object_points, image_points, intrinsic, distortion, Rotation, Translation); + // append data to vectors + if(!quiet) cout << "Rotation is:" << endl; + for (int row = 0; row < 1; row++) { + for (int col = 0; col < 3; col++) { + if(!quiet) cout << CV_MAT_ELEM( *Rotation, float, row, col ) << " "; + CV_MAT_ELEM( *rotation_vectors_temp, float, successes, col ) = CV_MAT_ELEM( *Rotation, float, row, col ); + } + if(!quiet) cout << endl; + } + if(!quiet) cout << "Translation is:" << endl; + for (int row = 0; row < 1; row++) { + for (int col = 0; col < 3; col++) { + if(!quiet) cout << CV_MAT_ELEM( *Translation, float, row, col ) << " "; + CV_MAT_ELEM( *translation_vectors_temp, float, successes, col ) = CV_MAT_ELEM( *Translation, float, row, col ); + } + if(!quiet) cout << endl; + } + successes++; + + } else if(in == 'x') { + break; + } + } + cvReleaseImage(&image); + cvReleaseImage(&image1); + cvReleaseMat(&image_points); + cvReleaseMat(&object_points); + cvReleaseMat(&Rotation); + cvReleaseMat(&Translation); + }//for loop for imagecount + cvDestroyWindow("Original Image"); + cvDestroyWindow("Final Result"); + + cout << "Number of successes: " << successes << endl; + // Now calculating mean and median rotation and trans + //calculateExtrinsics(rotation_vectors_temp, translation_vectors_temp, successes, dir, quiet, substring); + calculateExtrinsicsWithReprojectionCheck(points2D, points3D, rotation_vectors_temp, translation_vectors_temp, distortion, intrinsic, corner_exp, successes, dir, quiet, substring); + cvReleaseMat(&intrinsic); + cvReleaseMat(&distortion); + cvReleaseMat(&translation_vectors_temp); + cvReleaseMat(&rotation_vectors_temp); + cvReleaseMat(&points2D); + cvReleaseMat(&points3D); +} + +/** + * Main function for projecting the 3D points onto the corresponding image and + * associating temperature values to the data points. + */ +void ProjectAndMap(int start, int end, bool optical, bool quiet, string dir, +IOType type, int scale, double rot_angle, double minDist, double maxDist, +bool correction, int neighborhood, int method) { + + int nr_img = end - start + 1; + if (nr_img < 1) { + cout << "ImageCount is zero!" << endl; + return; + } + string substring = optical? "Optical" : ""; + string file = dir + "Intrinsics" + substring + ".xml"; + CvMat *intrinsic = (CvMat*) cvLoad(file.c_str()); + file = dir + "Distortion" + substring + ".xml"; + CvMat *distortion = (CvMat*) cvLoad(file.c_str()); + switch(method) { + case 0: + file = dir + "Rotation" + substring + ".xml"; + break; + case 1: + file = dir + "RotationMedian" + substring + ".xml"; + break; + case 2: + file = dir + "RotationMean" + substring + ".xml"; + break; + } + CvMat *Rotation = (CvMat*) cvLoad(file.c_str()); + switch(method) { + case 0: + file = dir + "Translation" + substring + ".xml"; + break; + case 1: + file = dir + "TranslationMedian" + substring + ".xml"; + break; + case 2: + file = dir + "TranslationMean" + substring + ".xml"; + break; + } + CvMat *Translation = (CvMat*) cvLoad(file.c_str()); + CvMat* undistort = cvCreateMat(5,1,CV_32FC1); + for (int hh = 0; hh < 5; hh++) { + CV_MAT_ELEM(*undistort, float,hh,0) = 0; + } + + double starttime = GetCurrentTimeInMilliSec(); + + // filling the rotation matrix + double rPosTheta[3] = {0.0, rad(rot_angle), 0.0}; + double rPos[3] = {0.0, 0.0, 0.0}; + double alignxf[16]; + EulerToMatrix4(rPos, rPosTheta, alignxf); + + string outdir = dir + "/labscan-map"; +#ifdef _MSC_VER + int success = mkdir(outdir.c_str()); +#else + int success = mkdir(outdir.c_str(), S_IRWXU|S_IRWXG|S_IRWXO); +#endif + if(success == 0) { + cout << "Writing scans to " << outdir << endl; + } else if(errno == EEXIST) { + cout << "Directory " << outdir << " exists already. CONTINUE" << endl; + } else { + cerr << "Creating directory " << outdir << " failed" << endl; + exit(1); + } + for (int count = start; count <= end; count++) { + CvMat* point_3Dcloud; + CvMat* point_2Dcloud; + CvMat* undistort_2Dcloud; + + CvMat* point_3Dcloud_2; + CvMat* point_2Dcloud_2; + CvMat* undistort_2Dcloud_2; + + // loading images + int count0; + if(rot_angle < 180 && rot_angle > 0) { + count0 = count % 9 == 8 ? count - 8 : count + 1; + } else { + count0 = count % 9 == 0 ? count + 8 : count - 1; + } + string t, t0; + if(optical) { + t = dir + "/photo" + to_string(count, 3) + ".ppm"; + t0 = dir + "/photo" + to_string(count0, 3) + ".ppm"; + } else { + t = dir + "/image" + to_string(count, 3) + ".ppm"; + t0 = dir + "/image" + to_string(count0, 3) + ".ppm"; + } + + IplImage* image = cvLoadImage(t.c_str(), -1); + if (!image) { + cout << "first image " << t << " cannot be loaded" << endl; + return; + } + CvSize size = cvGetSize(image); + + IplImage* image0; + if(fabs(rot_angle) > 1) { + image0 = cvLoadImage(t0.c_str(), -1); + + if (!image0) { + cout << "second image " << t0 << " cannot be loaded" << endl; + return; + } + image0 = resizeImage(image0, scale); + } + image = resizeImage(image, scale); + if(image) + + // reading the 3D points and projecting them back to 2d + Scan::readScans(type, count, count, dir, maxDist, minDist, 0); + Scan::allScans[0]->calcReducedPoints(-1, 0); + point_3Dcloud = cvCreateMat(Scan::allScans[0]->get_points_red_size(), 3, CV_32FC1); + point_2Dcloud = cvCreateMat(Scan::allScans[0]->get_points_red_size(), 2, CV_32FC1); + undistort_2Dcloud = cvCreateMat(Scan::allScans[0]->get_points_red_size(), 2, CV_32FC1); + for (int j = 0; j < Scan::allScans[0]->get_points_red_size(); j++) { + CV_MAT_ELEM(*point_3Dcloud, float,j,0) = Scan::allScans[0]->get_points_red()[j][2]; + CV_MAT_ELEM(*point_3Dcloud, float,j,1) = -Scan::allScans[0]->get_points_red()[j][0]; + CV_MAT_ELEM(*point_3Dcloud, float,j,2) = Scan::allScans[0]->get_points_red()[j][1]; + } + + cout << "Number of points read: " << Scan::allScans[0]->get_points_red_size() << endl; + cvProjectPoints2(point_3Dcloud, Rotation, Translation, intrinsic, + distortion, point_2Dcloud, NULL, NULL, NULL, NULL, NULL, 0); + + cvProjectPoints2(point_3Dcloud, Rotation, Translation, intrinsic, + undistort, undistort_2Dcloud, NULL, NULL, NULL, NULL, NULL, 0); + + // second image in case of overlap + if(fabs(rot_angle) > 1) { + point_3Dcloud_2 = cvCreateMat(Scan::allScans[0]->get_points_red_size(), 3, CV_32FC1); + point_2Dcloud_2 = cvCreateMat(Scan::allScans[0]->get_points_red_size(), 2, CV_32FC1); + undistort_2Dcloud_2 = cvCreateMat(Scan::allScans[0]->get_points_red_size(), 2, CV_32FC1); + for (int j = 0; j < Scan::allScans[0]->get_points_red_size(); j++) { + Point p(Scan::allScans[0]->get_points_red()[j]); + p.transform(alignxf); + + CV_MAT_ELEM(*point_3Dcloud_2, float,j,0) = p.z; + CV_MAT_ELEM(*point_3Dcloud_2, float,j,1) = -p.x; + CV_MAT_ELEM(*point_3Dcloud_2, float,j,2) = p.y; + } + + cvProjectPoints2(point_3Dcloud_2, Rotation, Translation, intrinsic, + distortion, point_2Dcloud_2, NULL, NULL, NULL, NULL, NULL, 0); + + cvProjectPoints2(point_3Dcloud_2, Rotation, Translation, intrinsic, + undistort, undistort_2Dcloud_2, NULL, NULL, NULL, NULL, NULL, 0); + } + // write colored data + string outname = outdir + "/scan" + to_string(count, 3) + ".3d"; + fstream outfile; + outfile.open(outname.c_str(), ios::out); + + //for counting how many points get mapped to first and second image file + int point_map1 = 0; // #points mapped to first image + int point_map2 = 0; // " " " second image + + // checking whether projection lies within the image boundaries + for (int k = 0; k < Scan::allScans[0]->get_points_red_size(); k++) { + float px = CV_MAT_ELEM(*undistort_2Dcloud,float,k,0); + float py = CV_MAT_ELEM(*undistort_2Dcloud,float,k,1); + if (px < image->width - .5 && px >= 0 && py >= 0 && py < image->height - .5) { + px = CV_MAT_ELEM(*point_2Dcloud,float,k,0); + py = CV_MAT_ELEM(*point_2Dcloud,float,k,1); + if (px < image->width - .5 && px >= 0 && py >= 0 && py < image->height - .5) { + point_map1++; + int ppx = 0; + int ppy = 0; + if (px - int(px) < .5) { + ppx = int(px); + } else { + ppx = int(px) + 1; + } + if (py - int(py) < .5) { + ppy = int(py); + } else { + ppy = int(py) + 1; + } + + CvScalar c; + c = cvGet2D(image, ppy, ppx); + // check for overlap + if(correction) { + vector temp_vec; + float p_id = 1; // 1 for pixel, 0 for neighboring pixel + temp_vec.push_back(-(CV_MAT_ELEM(*point_3Dcloud,float,k,1))); + temp_vec.push_back((CV_MAT_ELEM(*point_3Dcloud,float,k,2))); + temp_vec.push_back((CV_MAT_ELEM(*point_3Dcloud,float,k,0))); + temp_vec.push_back(c.val[2]); + temp_vec.push_back(c.val[1]); + temp_vec.push_back(c.val[0]); + temp_vec.push_back(p_id); + if(neighborhood > 1) { + int limit = neighborhood / 2; + + int lower_y = ppy - limit > 0 ? ppy - limit : 0; + int upper_y = ppy + limit < size.height ? ppy + limit : size.height - 1; + int lower_x = ppx - limit > 0 ? ppx - limit : 0; + int upper_x = ppx + limit < size.width ? ppx + limit : size.width - 1; + + for (int y = lower_y; y < upper_y; y++) { + for (int x = lower_x; x < upper_x; x++) { + if(x == ppx && y == ppy) { + temp_vec[6] = 1; + } else { + temp_vec[6] = 0; + } + data1[y][x].push_back(temp_vec); + } + } + + } else { + data1[ppy][ppx].push_back(temp_vec); + } + temp_vec.clear(); + } else { + // write all the data + outfile << -(CV_MAT_ELEM(*point_3Dcloud,float,k,1))<<" "; + outfile << CV_MAT_ELEM(*point_3Dcloud,float,k,2)<<" "; + outfile << CV_MAT_ELEM(*point_3Dcloud,float,k,0)<<" "; + outfile << (c.val[0] - 1000.0)/10.0 << endl; + //outfile << c.val[2] <<" "<< c.val[1]<<" "< 1) { + // check for overlap + px = CV_MAT_ELEM(*undistort_2Dcloud_2,float,k,0); + py = CV_MAT_ELEM(*undistort_2Dcloud_2,float,k,1); + if (px < image0->width - .5 && px >= 0 && py >= 0 && py < image0->height - .5) { + px = CV_MAT_ELEM(*point_2Dcloud_2,float,k,0); + py = CV_MAT_ELEM(*point_2Dcloud_2,float,k,1); + if (px < image0->width - .5 && px >= 0 && py >= 0 && py < image0->height - .5) { + point_map2++; + int ppx = 0; + int ppy = 0; + + if (px - int(px) < .5) { + ppx = int(px); + } else { + ppx = int(px) + 1; + } + if (py - int(py) < .5) { + ppy = int(py); + } else { + ppy = int(py) + 1; + } + CvScalar c; + + c = cvGet2D(image0, ppy, ppx); + if(correction) { + vector temp_vec; + float p2_id = 1; + temp_vec.push_back(-(CV_MAT_ELEM(*point_3Dcloud,float,k,1))); + temp_vec.push_back((CV_MAT_ELEM(*point_3Dcloud,float,k,2))); + temp_vec.push_back((CV_MAT_ELEM(*point_3Dcloud,float,k,0))); + temp_vec.push_back(c.val[2]); + temp_vec.push_back(c.val[1]); + temp_vec.push_back(c.val[0]); + temp_vec.push_back(p2_id); + if(neighborhood > 1) { + int neighbors = 3; + int limit = neighbors / 2; + + int lower_y = ppy - limit > 0 ? ppy - limit : 0; + int upper_y = ppy + limit < size.height ? ppy + limit : size.height - 1; + int lower_x = ppx - limit > 0 ? ppx - limit : 0; + int upper_x = ppx + limit < size.width ? ppx + limit : size.width - 1; + + for (int y = lower_y; y < upper_y; y++) { + for (int x = lower_x; x < upper_x; x++) { + if(x == ppx && y == ppy) { + temp_vec[6] = 1; + } else { + temp_vec[6] = 0; + } + data2[y][x].push_back(temp_vec); + } + } + + } else { + data2[ppy][ppx].push_back(temp_vec); + } + temp_vec.clear(); + } else { + // write all the data + outfile << -(CV_MAT_ELEM(*point_3Dcloud,float,k,1))<<" "; + outfile << CV_MAT_ELEM(*point_3Dcloud,float,k,2)<<" "; + outfile << CV_MAT_ELEM(*point_3Dcloud,float,k,0)<<" "; + outfile << (c.val[0] - 1000.0)/10.0 << endl; + //outfile << c.val[2] <<" "<< c.val[1]<<" "< 1) { + if(size.width > 0 && size.height > 0) { + CorrectErrorAndWrite(data2, outfile, size); + } + } + } + + // clean up + outfile.flush(); + outfile.close(); + + delete Scan::allScans[0]; + Scan::allScans.clear(); + + double endtime = GetCurrentTimeInMilliSec(); + double time = endtime - starttime; + time = time/1000.0; + cout<<"runtime for scan " << count << " in seconds is: " << time << endl; + + cvReleaseImage(&image); + cvReleaseMat(&point_2Dcloud); + cvReleaseMat(&point_3Dcloud); + cvReleaseMat(&undistort_2Dcloud); + if(fabs(rot_angle) > 1) { + cvReleaseImage(&image0); + cvReleaseMat(&point_2Dcloud_2); + cvReleaseMat(&point_3Dcloud_2); + cvReleaseMat(&undistort_2Dcloud_2); + } + for (int i = 0; i < size.height; i++) { + for (int j = 0; j < size.width; j++) { + data1[i][j].clear(); + data2[i][j].clear(); + } + } + + } + + cvReleaseMat(&intrinsic); + cvReleaseMat(&distortion); + cvReleaseMat(&Rotation); + cvReleaseMat(&Translation); + cvReleaseMat(&undistort); + +} + +/** + * Sorts a number of float array according to their distance to the origin. + */ +void sortDistances(float ** points, int size) { + int swapped1 = 0; + do { + swapped1 = 0; + for(int a = 1; a <= size - 1; a++) { + if(Len(points[a]) < Len(points[a - 1])) { + float * tmp = points[a-1]; + points[a-1] = points[a]; + points[a] = tmp; + swapped1 = 1; + } + } + } while (swapped1 == 1); +} + +/** + * Performs clustering on all points that are projected onto one pixel. + * Writes only the points from the largest closest cluster. + */ +void clusterSearch(float ** points, int size, double thresh1, double thres2, fstream &outfile) { + int position = 0; + int cluster_count = 0; + + double max_cluster = 0; + int max_position = 0; + vector clusters; + while (position < size) { + double sum = 0.0; + int j = position + 1; + while(j < size && (Len(points[j]) < (Len(points[j-1]) + thresh1))) { + j++; + cluster_count++; + sum+=Len(points[j-1]); + } + double * tmp = new double[4]; + tmp[0] = position; + tmp[1] = j - 1; + tmp[2] = sum / (j - position); + // weird heuristic ;-) (clustersize/(rank of the cluster)) + tmp[3] = (double)(j - position) / (clusters.size() + 1.0); + if(tmp[3] > max_cluster) { + max_position = clusters.size(); + max_cluster = tmp[3]; + } + clusters.push_back(tmp); + position = j; + } + + for(int p = clusters[max_position][0]; p <= clusters[max_position][1]; p++) { + if(points[p][6] == 1) { + outfile << points[p][0] << " " << points[p][1] << " " << points[p][2] << " "; + //outfile << points[p][3] << " " << points[p][4] << " " << points[p][5] << endl; + outfile << (points[p][5] - 1000.0)/10.0 << endl; + } + } + + for(unsigned int i = 0; i < clusters.size(); i++) { + delete[] clusters[i]; + } +} + +void CorrectErrorAndWrite(Float2D &data, fstream &outfile, CvSize size) { + double thresh1 = 4; + double thresh2 = 5; + + // getting points mapping to one pixel + for (int i = 0; i < size.height; i++) { + for (int j = 0; j < size.width; j++) { + int tmp_size = data[i][j].size(); + if (tmp_size > 0) { + float ** points = new float*[tmp_size]; + for (int k = 0; k < tmp_size; k++) { + points[k] = new float[7]; + for(int l = 0; l < 7; l++) { + points[k][l] = data[i][j][k][l]; + } + } + + //sorting the points now in ascending order wrt distance + sortDistances(points, tmp_size); + //look for clusters + clusterSearch(points, tmp_size, thresh1, thresh2, outfile); + + for (int k = 0; k < tmp_size; k++) { + delete[] points[k]; + } + delete[] points; + } + + } + } + +} + +/** + * Prints out usage message + */ +void usage(char* prog) { +#ifndef _MSC_VER + const string bold("\033[1m"); + const string normal("\033[m"); +#else + const string bold(""); + const string normal(""); +#endif + cout << endl + << bold << "USAGE " << normal << endl + << " " << prog << " [options] directory" << endl << endl; + cout << bold << "OPTIONS" << normal << endl + + << bold << " -f" << normal << " F, " << bold << "--format=" << normal << "F" << endl + << " using shared library F for input" << endl + << " (chose F from {uos, uos_map, uos_rgb, uos_frames, uos_map_frames, old, rts, rts_map, ifp, riegl_txt, riegl_rgb, riegl_bin, zahn, ply})" << endl + << endl + << bold << " -s" << normal << " NR, " << bold << "--start=" << normal << "NR" << endl + << " start at scan NR (i.e., neglects the first NR scans)" << endl + << " [ATTENTION: counting naturally starts with 0]" << endl + << endl + << bold << " -e" << normal << " NR, " << bold << "--end=" << normal << "NR" << endl + << " end at scan NR" << endl + << endl + << bold << " -x" << normal << " NR, " << bold << "--width=" << normal << "NR" << endl + << " NR of lamps/corners in x direction" << endl + << endl + << bold << " -y" << normal << " NR, " << bold << "--height=" << normal << "NR" << endl + << " NR of lamps/corners in y direction" << endl + << endl + << bold << " -o --=optical" << normal << endl + << " use optical camera instead of thermal camera" << endl + << endl + << bold << " -c --=chess" << normal << endl + << " use chessboard pattern for calibration instead of lightbulb pattern" << endl + << endl + << bold << " -I --=intrinsic" << normal << endl + << " perform intrinsic calibration" << endl + << endl + << bold << " -E --=extrinsic" << normal << endl + << " perform extrinsic calibration" << endl + << endl + << bold << " -P --=mapping" << normal << endl + << " perform mapping of image data to point cloud" << endl + << endl + << bold << " -q --=quiet" << normal << endl + << " " << endl + << endl << endl; + + cout << bold << "EXAMPLES " << normal << endl + << " " << prog << " -s 2 -e 10 dat" << endl << endl; + exit(1); + +} + +/** + * Parses command line arguments needed for plane detection. For details about + * the argument see usage(). + */ + +int parseArgs(int argc, char **argv, string &dir, int &start, int &end, double +&maxDist, double &minDist, IOType &type, bool &optical, bool &chess, int +&width, int &height, bool &intrinsic, bool &extrinsic, bool &mapping, bool +&correction, int &scale, int &neighborhood, double &angle, bool &quiet ) { + // from unistd.h: + int c; + extern char *optarg; + extern int optind; + + /* options descriptor */ + // 0: no arguments, 1: required argument, 2: optional argument + static struct option longopts[] = { + { "correction", no_argument, 0, 'C' }, + { "scale", required_argument, 0, 'S' }, + { "neighborhood", required_argument, 0, 'n' }, + { "angle", required_argument, 0, 'a' }, + { "format", required_argument, 0, 'f' }, + { "max", required_argument, 0, 'm' }, + { "min", required_argument, 0, 'M' }, + { "start", required_argument, 0, 's' }, + { "end", required_argument, 0, 'e' }, + { "width", required_argument, 0, 'x' }, + { "height", required_argument, 0, 'y' }, + { "quiet", no_argument, 0, 'q' }, + { "optical", no_argument, 0, 'o' }, + { "intrinsic", no_argument, 0, 'I' }, + { "extrinsic", no_argument, 0, 'E' }, + { "mapping", no_argument, 0, 'P' }, + { "chess", no_argument, 0, 'c' }, + { 0, 0, 0, 0} // needed, cf. getopt.h + }; + + cout << endl; + while ((c = getopt_long(argc, argv, "f:s:e:x:y:m:M:qoIEPcCS:n:a:", longopts, NULL)) != -1) { + switch (c) + { + case 's': + start = atoi(optarg); + if (start < 0) { cerr << "Error: Cannot start at a negative scan number.\n"; exit(1); } + break; + case 'e': + end = atoi(optarg); + if (end < 0) { cerr << "Error: Cannot end at a negative scan number.\n"; exit(1); } + if (end < start) { cerr << "Error: cannot be smaller than .\n"; exit(1); } + break; + case 'f': + try { + type = formatname_to_io_type(optarg); + } catch (...) { // runtime_error + cerr << "Format " << optarg << " unknown." << endl; + abort(); + } + break; + case 'q': + quiet = true; + break; + case 'm': + maxDist = atoi(optarg); + break; + case 'M': + minDist = atoi(optarg); + break; + case 'o': + optical = true; + break; + case 'I': + intrinsic = true; + break; + case 'E': + extrinsic = true; + break; + case 'P': + mapping = true; + break; + case 'c': + chess = true; + break; + case 'x': + width = atoi(optarg); + break; + case 'y': + height = atoi(optarg); + break; + case 'S': + scale = atoi(optarg); + break; + case 'a': + angle = atof(optarg); + break; + case 'n': + neighborhood = atoi(optarg); + break; + case 'C': + correction = true; + break; + case '?': + usage(argv[0]); + return 1; + default: + cout << "Abort" << endl; + abort (); + } + } + if (optind != argc-1) { + cerr << "\n*** Directory missing ***" << endl; + usage(argv[0]); + } + dir = argv[optind]; +#ifndef _MSC_VER + if (dir[dir.length()-1] != '/') dir = dir + "/"; +#else + if (dir[dir.length()-1] != '\\') dir = dir + "\\"; +#endif + + if(!(intrinsic || extrinsic || mapping)) { + cerr << "\n*** Please choose at least one method (intrinsic calibration, " + << "extrinsic calibration, mapping of image data to point data! ***\n" << + endl; + usage(argv[0]); + } + return 0; + +} + +/** + * Main function. Calls either function for color mapping or function for + * intrinsic and/or extrinsic calibration. + */ +int main(int argc, char** argv) { + string dir; + int start = 0; + int end = -1; + int width = 5; + int height = 6; + double maxDist = -1; + double minDist = -1; + IOType type = UOS; + bool optical = false; + bool chess = false; + bool intrinsic = false; + bool extrinsic = false; + bool mapping = false; + bool quiet = false; + int scale = 1; + //double rot_angle = -40; + double rot_angle = 0; + bool correction = false; + int neighborhood = 1; + + parseArgs(argc, argv, dir, start, end, maxDist, minDist, type, optical, chess, + width, height, intrinsic, extrinsic, mapping, correction, scale, neighborhood, + rot_angle, quiet); + + // either mapping + if(mapping) { + if(!quiet) cout << "Starting projecting and mapping image data to point cloud..." << endl; + ProjectAndMap(start, end, optical, quiet, dir, type, scale, rot_angle, minDist, maxDist, correction, neighborhood); + if(!quiet) cout << "\nDONE" << endl; + return 0; + } + + // or calibration + if(intrinsic) { + if(!quiet) { + cout << "Starting intrinsic calibration using "; + if(chess) cout << "chessboard pattern..." << endl; + else cout << "lightbulb pattern..." << endl; + } + CalibFunc(width, height, start, end, optical, chess, quiet, dir, scale); + if(!quiet) cout << "\nDONE" << endl; + } + + if(extrinsic) { + if(!quiet) { + cout << "Starting extrinsic calibration using "; + if(chess) cout << "chessboard pattern..." << endl; + else cout << "lightbulb pattern..." << endl; + } + ExtrCalibFunc(width, height, start, end, optical, chess, quiet, dir, scale); + if(!quiet) cout << "\nDONE" << endl; + } + + return 0; +} + diff --git a/src/veloslam/CMakeLists.txt b/src/veloslam/CMakeLists.txt new file mode 100644 index 0000000..843b51b --- /dev/null +++ b/src/veloslam/CMakeLists.txt @@ -0,0 +1,49 @@ +SET(SHOW_LIBS ${OPENGL_LIBRARIES} glui scan ANN) +IF(WIN32) + IF( CMAKE_SIZEOF_VOID_P EQUAL 8 ) + SET(SHOW_LIBS ${SHOW_LIBS} ${CMAKE_SOURCE_DIR}/3rdparty/windows/x64/freeglut.lib XGetopt) + ELSE( CMAKE_SIZEOF_VOID_P EQUAL 8 ) + SET(SHOW_LIBS ${SHOW_LIBS} ${CMAKE_SOURCE_DIR}/3rdparty/windows/freeglut.lib XGetopt) + ENDIF(CMAKE_SIZEOF_VOID_P EQUAL 8 ) +ENDIF(WIN32) +IF (UNIX) + SET(SHOW_LIBS newmat dl ${GLUT_LIBRARIES} ${SHOW_LIBS}) +ENDIF(UNIX) + +IF(WITH_VELOSLAM) + add_executable(veloslam veloslam.cc veloscan.cc debugview.cc pcddump.cc tracker.cc + trackermanager.cc drawtrackers.cc kalmanfilter.cc matrix.cc lap.cc) + +IF(UNIX) + target_link_libraries(veloslam dl scan newmat sparse ANN ${Boost_LIBRARIES} ${SHOW_LIBS}) +ENDIF(UNIX) + +IF(WIN32) + target_link_libraries(veloslam scan newmat sparse ANN XGetopt ${Boost_LIBRARIES} ${SHOW_LIBS}) +ENDIF(WIN32) +ENDIF(WITH_VELOSLAM) + +#IF(WITH_VELOSLAM) + # SET(SHOW_SRCS ../show/NurbsPath.cc ../show/PathGraph.cc ../show/vertexarray.cc + # ../show/viewcull.cc ../show/colormanager.cc ../show/compacttree.cc + # ../show/scancolormanager.cc ../show/display.cc) + + # add_executable(veloshow veloshow.cc veloscan.cc + # debugview.cc pcddump.cc cluster_classification.cc + # tracker.cc trackermanager.cc drawtrackers.cc + # svm.cc clusterboundingbox.cc multiscan_random_field.cc + # kalmanfilter.cc matrix.cc lap.cc + # intersection_detection.cc SegIter.model ${SHOW_SRCS}) + +#IF(UNIX) +# target_link_libraries(veloshow dl scan newmat sparse ANN ${SHOW_LIBS}) +#ENDIF(UNIX) + +#IF(WIN32) +# target_link_libraries(veloshow scan newmat sparse ANN XGetopt ${Boost_LIBRARIES} ${SHOW_LIBS}) +#ENDIF(WIN32) + +#ENDIF(WITH_VELOSLAM) + + + diff --git a/src/veloslam/SegIter.model b/src/veloslam/SegIter.model new file mode 100644 index 0000000..37f58aa --- /dev/null +++ b/src/veloslam/SegIter.model @@ -0,0 +1,144 @@ +svm_type c_svc +kernel_type rbf +gamma 0.0625 +nr_class 2 +total_sv 133 +rho -0.261596 +label 1 -1 +probA -5.01585 +probB 0.275821 +nr_sv 80 53 +SV +0.4753545542788266 1:0.1667 2:0.1667 3:0.1667 4:0.1833 5:0.1833 6:0.1833 7:0.1833 8:0.1833 9:0.2 10:0.2 11:0.2 12:0.25 13:0.25 14:0.3333 15:0.3333 16:0.3833 17:0.4167 18:0.55 19:0.5833 20:0.5833 21:0.5833 22:0.45 23:0.45 24:0.45 25:0.45 26:0.45 27:0.45 28:0.4167 29:0.3667 30:0.3667 31:0.35 32:0.3333 33:0.3333 34:0.3167 35:0.3333 36:0.3333 37:0.3167 38:0.3333 39:0.3333 40:0.3167 41:0.3333 42:0.3167 43:0.3167 44:0.3167 45:0.3167 46:0.1667 47:0.15 48:0.1667 49:0.1667 50:0.1667 51:0.1667 52:0.1667 53:0.1667 54:0.15 55:0.15 56:0.1333 57:0.1333 58:0.1333 59:0.1333 60:0.1333 61:0.1333 62:0.1333 63:0.15 64:0.15 65:0.1333 66:0.1333 67:0.1333 68:0.1333 69:0.15 70:0.15 71:0.15 72:0.1333 73:0.1333 74:0.1333 75:0.15 76:0.15 77:0.15 78:0.1333 79:0.1333 80:0.1333 81:0.1333 82:0.1333 83:0.1333 84:0.1333 85:0.1333 86:0.1333 87:0.1333 88:0.15 89:0.3 90:0.4667 91:1 92:1 93:1 94:1 95:1 96:1 97:0.9833 98:0.75 99:0.7333 100:0.6167 101:0.5167 102:0.5167 103:0.5167 104:0.4 105:0.4 106:0.4 107:0.4 108:0.4 109:0.4 110:0.4 111:0.2667 112:0.25 113:0.25 114:0.25 115:0.25 116:0.25 117:0.25 118:0.25 119:0.25 120:0.25 121:0.25 122:0.25 123:0.25 124:0.25 125:0.25 126:0.25 127:0.25 128:0.25 129:0.25 130:0.25 131:0.25 132:0.2667 133:0.1333 134:0.1333 135:0.1333 136:0.1333 137:0.1333 138:0.1333 139:0.1333 140:0.15 141:0.1333 142:0.087684211 143:0.087684211 144:0.087684211 145:0.10526316 146:0.10526316 147:0.10526316 148:0.087684211 149:0.087684211 150:0.087684211 151:0.087684211 152:0.10526316 153:0.10526316 154:0.087684211 155:0.087684211 156:0.087684211 157:0.071389541 158:0.071389541 159:0.071389541 160:0.071389541 161:0.071389541 162:0.071389541 163:0.071389541 164:0.071389541 165:0.089282462 166:0.089282462 167:0.14285408 168:0.14285408 169:0.14285408 170:0.14285408 171:0.14285408 172:0.12496116 173:0.089282462 174:0.089282462 175:0.089282462 176:0.089282462 177:0.089282462 178:0.089282462 179:0.089282462 180:0.089282462 181:0.089282462 182:0.089282462 183:0.089282462 184:0.089282462 185:0.053603763 186:0.053603763 187:0.053603763 188:0.053603763 189:0.053603763 190:0.053603763 191:0.053603763 192:0.053603763 193:0.053603763 194:0.053603763 195:0.053603763 196:0.071389541 197:0.071389541 198:0.071389541 199:0.071389541 200:0.053603763 201:0.053603763 202:0.071389541 203:0.071389541 204:0.071389541 205:0.071389541 206:0.071389541 207:0.053603763 208:0.053603763 209:0.053603763 210:0.071389541 211:0.071389541 212:0.071389541 213:0.053603763 214:0.053603763 215:0.053603763 216:0.053603763 217:0.053603763 218:0.053603763 219:0.053603763 220:0.071389541 221:0.1333 222:0.1333 223:0.2167 224:0.2167 225:0.2333 226:0.2333 227:0.2333 228:0.2667 229:0.2667 230:0.2667 231:0.2667 232:0.2667 233:0.2667 234:0.2667 235:0.2667 236:0.2667 237:0.2667 238:0.2667 239:0.2667 240:0.2667 241:0.2667 242:0.2667 243:0.2667 244:0.2667 245:0.2667 246:0.2667 247:0.2667 248:0.2667 249:0.2667 250:0.2667 251:0.2667 252:0.2833 253:0.4167 254:0.4167 255:0.4167 256:0.55 257:0.55 258:0.55 259:0.55 260:0.5667 261:0.7167 262:0.7167 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:0.9833 272:0.4667 273:0.4667 274:0.15 275:0.1333 276:0.1333 277:0.1333 278:0.1333 279:0.1333 280:0.1333 281:0.1333 282:0.1333 283:0.1333 284:0.1333 285:0.15 286:0.15 287:0.15 288:0.1333 289:0.1333 290:0.1333 291:0.1167 292:0.1167 293:0.1167 294:0.1167 295:0.1333 296:0.1333 297:0.1333 298:0.1167 299:0.1167 300:0.1167 301:0.1167 302:0.1167 303:0.1167 304:0.1167 305:0.1167 306:0.1167 307:0.1167 308:0.1167 309:0.1167 310:0.1167 311:0.1333 312:0.1333 313:0.1167 314:0.1167 315:0.1167 316:0.1167 317:0.1167 318:0.1333 319:0.1167 320:0.1167 321:0.1167 322:0.1167 323:0.1167 324:0.1167 325:0.1167 326:0.1333 327:0.1167 328:0.1167 329:0.1167 330:0.1167 331:0.1167 332:0.1167 333:0.1167 334:0.1333 335:0.1333 336:0.1333 337:0.1333 338:0.1333 339:0.1333 340:0.1333 341:0.1333 342:0.1333 343:0.1333 344:0.1333 345:0.15 346:0.15 347:0.15 348:0.15 349:0.15 350:0.15 351:0.1333 352:0.15 353:0.15 354:0.15 355:0.15 356:0.15 357:0.15 358:0.15 359:0.1667 360:0.1667 +2 1:0.2167 2:0.2167 3:0.2167 4:0.2333 5:0.2333 6:0.2333 7:0.2667 8:0.2667 9:0.2667 10:0.3667 11:0.3667 12:0.3667 13:0.3833 14:0.3833 15:0.4667 16:0.6167 17:0.6167 18:0.4833 19:0.4667 20:0.4667 21:0.4667 22:0.4667 23:0.4667 24:0.4667 25:0.4667 26:0.3667 27:0.3667 28:0.35 29:0.3333 30:0.35 31:0.35 32:0.35 33:0.1667 34:0.1667 35:0.1667 36:0.1667 37:0.1667 38:0.1667 39:0.1667 40:0.1667 41:0.1667 42:0.1667 43:0.1667 44:0.1667 45:0.1667 46:0.1667 47:0.15 48:0.15 49:0.15 50:0.15 51:0.15 52:0.15 53:0.15 54:0.15 55:0.15 56:0.15 57:0.15 58:0.15 59:0.1667 60:0.15 61:0.15 62:0.15 63:0.15 64:0.15 65:0.15 66:0.15 67:0.15 68:0.15 69:0.15 70:0.15 71:0.15 72:0.15 73:0.15 74:0.15 75:0.15 76:0.15 77:0.1667 78:0.3 79:0.3 80:0.3 81:0.3 82:0.3 83:0.3 84:0.3667 85:0.45 86:0.6 87:0.6 88:0.9333 89:1 90:1 91:1 92:1 93:1 94:1 95:0.95 96:0.7 97:0.5833 98:0.6 99:0.5833 100:0.3833 101:0.3833 102:0.3833 103:0.3833 104:0.3833 105:0.2333 106:0.2167 107:0.2167 108:0.2167 109:0.2167 110:0.2167 111:0.2167 112:0.2167 113:0.2167 114:0.2333 115:0.2167 116:0.2167 117:0.2167 118:0.2333 119:0.2167 120:0.2167 121:0.2167 122:0.2167 123:0.2167 124:0.2167 125:0.1 126:0.1 127:0.1 128:0.1 129:0.1 130:0.1 131:0.1 132:0.1 133:0.1 134:0.1 135:0.1 136:0.1 137:0.1 138:0.1 139:0.1 140:0.1 141:0.1 142:0.052631579 143:0.052631579 144:0.052631579 145:0.052631579 146:0.052631579 147:0.052631579 148:0.052631579 149:0.052631579 150:0.052631579 151:0.052631579 152:0.052631579 153:0.052631579 154:0.052631579 155:0.052631579 156:0.052631579 157:0.035710842 158:0.035710842 159:0.035710842 160:0.035710842 161:0.035710842 162:0.035710842 163:0.035710842 164:0.035710842 165:0.035710842 166:0.035710842 167:0.035710842 168:0.035710842 169:0.053603763 170:0.089282462 171:0.089282462 172:0.089282462 173:0.089282462 174:0.089282462 175:0.089282462 176:0.089282462 177:0.089282462 178:0.089282462 179:0.089282462 180:0.089282462 181:0.089282462 182:0.089282462 183:0.089282462 184:0.089282462 185:0.089282462 186:0.089282462 187:0.089282462 188:0.089282462 189:0.089282462 190:0.089282462 191:0.089282462 192:0.089282462 193:0.089282462 194:0.035710842 195:0.035710842 196:0.035710842 197:0.035710842 198:0.035710842 199:0.035710842 200:0.035710842 201:0.035710842 202:0.035710842 203:0.035710842 204:0.035710842 205:0.035710842 206:0.035710842 207:0.035710842 208:0.035710842 209:0.035710842 210:0.035710842 211:0.035710842 212:0.035710842 213:0.035710842 214:0.035710842 215:0.035710842 216:0.035710842 217:0.035710842 218:0.035710842 219:0.035710842 220:0.035710842 221:0.1 222:0.1 223:0.1 224:0.1 225:0.1 226:0.1 227:0.1 228:0.1 229:0.1 230:0.1 231:0.1 232:0.1 233:0.1 234:0.1 235:0.1 236:0.1 237:0.1 238:0.2167 239:0.2167 240:0.2 241:0.2667 242:0.2667 243:0.2 244:0.2 245:0.2667 246:0.2667 247:0.2667 248:0.2667 249:0.2667 250:0.2667 251:0.2667 252:0.2667 253:0.2667 254:0.2667 255:0.2667 256:0.2667 257:0.2667 258:0.2667 259:0.4167 260:0.4167 261:0.5667 262:0.5667 263:0.5667 264:0.7167 265:0.7167 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:0.9833 274:0.8333 275:0.6667 276:0.4833 277:0.4833 278:0.4833 279:0.4833 280:0.4667 281:0.4333 282:0.3833 283:0.3667 284:0.1833 285:0.1667 286:0.1667 287:0.1667 288:0.1667 289:0.1667 290:0.1667 291:0.1667 292:0.1667 293:0.1667 294:0.1667 295:0.1667 296:0.1667 297:0.1667 298:0.1667 299:0.1667 300:0.15 301:0.15 302:0.15 303:0.1667 304:0.1667 305:0.1667 306:0.15 307:0.15 308:0.15 309:0.15 310:0.15 311:0.1667 312:0.15 313:0.1667 314:0.15 315:0.1667 316:0.1667 317:0.15 318:0.15 319:0.1667 320:0.15 321:0.1667 322:0.15 323:0.15 324:0.15 325:0.15 326:0.15 327:0.1667 328:0.1667 329:0.1667 330:0.15 331:0.15 332:0.15 333:0.1667 334:0.1667 335:0.1667 336:0.1667 337:0.1667 338:0.1667 339:0.15 340:0.1667 341:0.1667 342:0.1667 343:0.1667 344:0.1667 345:0.1667 346:0.1667 347:0.1667 348:0.1833 349:0.1833 350:0.1833 351:0.1833 352:0.1667 353:0.1667 354:0.2 355:0.2 356:0.2 357:0.2 358:0.2 359:0.2167 360:0.2167 +2 1:0.2833 2:0.2833 3:0.3833 4:0.3833 5:0.3833 6:0.3833 7:0.4 8:0.4 9:0.4 10:0.4833 11:0.4833 12:0.5333 13:0.5667 14:0.6 15:0.45 16:0.4333 17:0.45 18:0.4333 19:0.45 20:0.3333 21:0.1167 22:0.1167 23:0.1167 24:0.1167 25:0.1333 26:0.1333 27:0.1333 28:0.1167 29:0.1167 30:0.1167 31:0.1167 32:0.1167 33:0.1167 34:0.1167 35:0.1 36:0.1 37:0.1167 38:0.1167 39:0.1167 40:0.1167 41:0.1167 42:0.1167 43:0.1167 44:0.1167 45:0.1167 46:0.1167 47:0.1167 48:0.1167 49:0.1167 50:0.1167 51:0.1167 52:0.1167 53:0.1167 54:0.1167 55:0.1167 56:0.1167 57:0.1167 58:0.1167 59:0.1167 60:0.1167 61:0.1167 62:0.1167 63:0.1167 64:0.1167 65:0.1167 66:0.1167 67:0.1 68:0.1 69:0.1167 70:0.1167 71:0.1167 72:0.25 73:0.25 74:0.25 75:0.25 76:0.25 77:0.25 78:0.25 79:0.25 80:0.25 81:0.25 82:0.2667 83:0.25 84:0.25 85:0.25 86:0.3167 87:0.8833 88:0.8833 89:1 90:1 91:1 92:1 93:1 94:1 95:0.9 96:0.6667 97:0.55 98:0.55 99:0.55 100:0.3667 101:0.35 102:0.35 103:0.35 104:0.35 105:0.35 106:0.35 107:0.35 108:0.35 109:0.1833 110:0.1833 111:0.1833 112:0.35 113:0.35 114:0.1833 115:0.1833 116:0.2 117:0.3833 118:0.4 119:0.1833 120:0.2 121:0.2 122:0.3833 123:0.1833 124:0.1833 125:0.1833 126:0.4 127:0.3833 128:0.1833 129:0.1833 130:0.1833 131:0.2167 132:0.2167 133:0.2167 134:0.1833 135:0.1833 136:0.1833 137:0.1833 138:0.1833 139:0.1667 140:0.08333 141:0.08333 142:0.035084211 143:0.035084211 144:0.035084211 145:0.035084211 146:0.035084211 147:0.035084211 148:0.035084211 149:0.035084211 150:0.035084211 151:0.035084211 152:0.035084211 153:0.035084211 154:0.035084211 155:0.035084211 156:0.035084211 157:0.017850064 158:0.017850064 159:0.017850064 160:0.017850064 161:0.017850064 162:0.017850064 163:0.017850064 164:0.017850064 165:0.017850064 166:0.017850064 167:0.017850064 168:0.017850064 169:0.017850064 170:0.017850064 171:0.017850064 172:0.017850064 173:0.017850064 174:0.017850064 175:0.017850064 176:0.017850064 177:0.017850064 178:0.017850064 179:0.017850064 180:0.017850064 181:0.017850064 182:0.017850064 183:0.017850064 184:0.017850064 185:0.017850064 186:0.017850064 187:0.017850064 188:0.017850064 189:0.017850064 190:0.017850064 191:0.017850064 192:0.017850064 193:0.017850064 194:0.017850064 195:0.089282462 196:0.089282462 197:0.089282462 198:0.089282462 199:0.089282462 200:0.089282462 201:0.089282462 202:0.089282462 203:0.089282462 204:0.089282462 205:0.089282462 206:0.089282462 207:0.089282462 208:0.089282462 209:0.089282462 210:0.089282462 211:0.089282462 212:0.089282462 213:0.089282462 214:0.089282462 215:0.089282462 216:0.089282462 217:0.089282462 218:0.089282462 219:0.089282462 220:0.089282462 221:0.15 222:0.15 223:0.15 224:0.15 225:0.15 226:0.15 227:0.15 228:0.15 229:0.15 230:0.15 231:0.15 232:0.15 233:0.15 234:0.15 235:0.15 236:0.15 237:0.15 238:0.15 239:0.15 240:0.15 241:0.15 242:0.15 243:0.2 244:0.2 245:0.3 246:0.3 247:0.3 248:0.3 249:0.3 250:0.3 251:0.3 252:0.3 253:0.3 254:0.3 255:0.3 256:0.3 257:0.3 258:0.3667 259:0.3667 260:0.3833 261:0.45 262:0.4667 263:0.6 264:0.6167 265:0.7333 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:0.8 275:0.7 276:0.5333 277:0.5333 278:0.5333 279:0.5333 280:0.4667 281:0.4333 282:0.2167 283:0.2 284:0.2 285:0.2 286:0.2 287:0.2 288:0.2 289:0.2 290:0.2 291:0.2 292:0.2 293:0.2 294:0.1833 295:0.1833 296:0.1833 297:0.1833 298:0.1833 299:0.1833 300:0.1833 301:0.1833 302:0.1833 303:0.1833 304:0.1833 305:0.1833 306:0.1833 307:0.1833 308:0.1833 309:0.1833 310:0.1833 311:0.1833 312:0.1833 313:0.1833 314:0.1833 315:0.1833 316:0.1833 317:0.1833 318:0.1833 319:0.1833 320:0.2 321:0.2 322:0.2 323:0.2 324:0.2 325:0.1833 326:0.1833 327:0.2 328:0.2 329:0.2 330:0.2 331:0.2 332:0.1833 333:0.2 334:0.2 335:0.2 336:0.2 337:0.2 338:0.2 339:0.2 340:0.2 341:0.2 342:0.2 343:0.2 344:0.2 345:0.2 346:0.2167 347:0.2167 348:0.2167 349:0.2167 350:0.2167 351:0.2333 352:0.2333 353:0.2333 354:0.2333 355:0.2333 356:0.25 357:0.25 358:0.25 359:0.25 360:0.2833 +0.1962220074588565 1:0.2 2:0.2 3:0.2 4:0.2167 5:0.2167 6:0.2167 7:0.2167 8:0.25 9:0.25 10:0.2833 11:0.2833 12:0.2833 13:0.3833 14:0.3833 15:0.4 16:0.4333 17:0.4833 18:0.5667 19:0.6333 20:0.6667 21:0.4667 22:0.4833 23:0.4667 24:0.4833 25:0.4833 26:0.4833 27:0.4333 28:0.35 29:0.3667 30:0.35 31:0.35 32:0.35 33:0.35 34:0.35 35:0.35 36:0.3333 37:0.3333 38:0.15 39:0.15 40:0.15 41:0.1667 42:0.1667 43:0.1667 44:0.15 45:0.1667 46:0.1667 47:0.15 48:0.15 49:0.15 50:0.15 51:0.15 52:0.15 53:0.15 54:0.15 55:0.15 56:0.15 57:0.15 58:0.15 59:0.1667 60:0.15 61:0.15 62:0.15 63:0.15 64:0.15 65:0.15 66:0.15 67:0.15 68:0.15 69:0.15 70:0.15 71:0.15 72:0.15 73:0.15 74:0.15 75:0.15 76:0.15 77:0.1667 78:0.3 79:0.3 80:0.3 81:0.3 82:0.3 83:0.3 84:0.3833 85:0.3833 86:0.3833 87:0.3833 88:0.9333 89:0.95 90:1 91:1 92:1 93:1 94:1 95:1 96:0.7167 97:0.6 98:0.6 99:0.4167 100:0.4 101:0.4 102:0.4 103:0.4 104:0.4 105:0.2333 106:0.2333 107:0.2333 108:0.2333 109:0.2333 110:0.2333 111:0.2333 112:0.2333 113:0.2333 114:0.2333 115:0.2333 116:0.2333 117:0.2333 118:0.2333 119:0.2333 120:0.2333 121:0.2333 122:0.2333 123:0.2333 124:0.1333 125:0.1 126:0.1 127:0.1 128:0.1 129:0.1 130:0.1 131:0.1 132:0.1 133:0.1 134:0.1 135:0.1 136:0.1 137:0.1 138:0.1 139:0.1 140:0.1 141:0.1 142:0.052631579 143:0.052631579 144:0.052631579 145:0.052631579 146:0.052631579 147:0.052631579 148:0.052631579 149:0.052631579 150:0.052631579 151:0.052631579 152:0.052631579 153:0.052631579 154:0.052631579 155:0.052631579 156:0.052631579 157:0.035710842 158:0.035710842 159:0.035710842 160:0.035710842 161:0.035710842 162:0.035710842 163:0.035710842 164:0.035710842 165:0.035710842 166:0.035710842 167:0.035710842 168:0.035710842 169:0.053603763 170:0.089282462 171:0.089282462 172:0.089282462 173:0.089282462 174:0.089282462 175:0.089282462 176:0.089282462 177:0.089282462 178:0.089282462 179:0.089282462 180:0.089282462 181:0.089282462 182:0.089282462 183:0.089282462 184:0.089282462 185:0.089282462 186:0.089282462 187:0.089282462 188:0.089282462 189:0.089282462 190:0.089282462 191:0.089282462 192:0.089282462 193:0.053603763 194:0.053603763 195:0.053603763 196:0.053603763 197:0.053603763 198:0.053603763 199:0.053603763 200:0.053603763 201:0.053603763 202:0.053603763 203:0.053603763 204:0.053603763 205:0.053603763 206:0.053603763 207:0.053603763 208:0.053603763 209:0.053603763 210:0.053603763 211:0.053603763 212:0.053603763 213:0.053603763 214:0.053603763 215:0.053603763 216:0.053603763 217:0.053603763 218:0.053603763 219:0.053603763 220:0.053603763 221:0.1167 222:0.1167 223:0.1167 224:0.1167 225:0.1167 226:0.1167 227:0.1167 228:0.1167 229:0.1167 230:0.1167 231:0.1167 232:0.1167 233:0.1167 234:0.2 235:0.1833 236:0.1833 237:0.25 238:0.25 239:0.25 240:0.25 241:0.25 242:0.25 243:0.25 244:0.25 245:0.25 246:0.25 247:0.25 248:0.2667 249:0.2667 250:0.25 251:0.2667 252:0.2667 253:0.25 254:0.25 255:0.3167 256:0.3167 257:0.3167 258:0.35 259:0.35 260:0.4 261:0.55 262:0.55 263:0.55 264:0.7 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:0.9833 274:0.8333 275:0.65 276:0.4833 277:0.4833 278:0.4833 279:0.3 280:0.3167 281:0.3167 282:0.3167 283:0.3167 284:0.25 285:0.1667 286:0.15 287:0.15 288:0.15 289:0.15 290:0.15 291:0.15 292:0.15 293:0.15 294:0.15 295:0.15 296:0.15 297:0.15 298:0.15 299:0.15 300:0.15 301:0.15 302:0.15 303:0.1667 304:0.15 305:0.15 306:0.15 307:0.15 308:0.15 309:0.15 310:0.15 311:0.15 312:0.15 313:0.15 314:0.15 315:0.1667 316:0.1667 317:0.15 318:0.15 319:0.1667 320:0.15 321:0.1667 322:0.15 323:0.15 324:0.15 325:0.15 326:0.15 327:0.1667 328:0.1667 329:0.1667 330:0.15 331:0.15 332:0.15 333:0.1667 334:0.1667 335:0.1667 336:0.1667 337:0.1667 338:0.1667 339:0.15 340:0.1667 341:0.1667 342:0.1667 343:0.1667 344:0.1667 345:0.1667 346:0.1667 347:0.1667 348:0.1833 349:0.1833 350:0.1833 351:0.1833 352:0.1667 353:0.1667 354:0.1833 355:0.1833 356:0.1833 357:0.1833 358:0.1833 359:0.2 360:0.2 +0.5750544513633736 1:0.25 2:0.25 3:0.2833 4:0.2833 5:0.2833 6:0.3167 7:0.3167 8:0.3167 9:0.3667 10:0.4 11:0.4 12:0.4 13:0.4167 14:0.4 15:0.4167 16:0.4 17:0.4 18:0.4167 19:0.4167 20:0.4167 21:0.4167 22:0.3 23:0.2833 24:0.2833 25:0.2833 26:0.1 27:0.1 28:0.08333 29:0.08333 30:0.08333 31:0.08333 32:0.08333 33:0.08333 34:0.08333 35:0.08333 36:0.08333 37:0.08333 38:0.08333 39:0.1 40:0.08333 41:0.08333 42:0.08333 43:0.08333 44:0.08333 45:0.08333 46:0.08333 47:0.08333 48:0.08333 49:0.08333 50:0.08333 51:0.08333 52:0.08333 53:0.08333 54:0.08333 55:0.08333 56:0.1 57:0.08333 58:0.1 59:0.08333 60:0.08333 61:0.08333 62:0.08333 63:0.08333 64:0.08333 65:0.08333 66:0.08333 67:0.08333 68:0.08333 69:0.08333 70:0.08333 71:0.08333 72:0.08333 73:0.08333 74:0.08333 75:0.08333 76:0.08333 77:0.1 78:0.1 79:0.1 80:0.08333 81:0.08333 82:0.08333 83:0.08333 84:0.08333 85:0.08333 86:0.08333 87:0.2333 88:0.2333 89:0.2333 90:0.2333 91:0.2333 92:0.2333 93:1 94:1 95:1 96:1 97:1 98:1 99:0.9167 100:0.6833 101:0.6667 102:0.5667 103:0.55 104:0.55 105:0.55 106:0.55 107:0.45 108:0.3667 109:0.35 110:0.35 111:0.35 112:0.35 113:0.35 114:0.35 115:0.35 116:0.35 117:0.35 118:0.35 119:0.35 120:0.2167 121:0.2167 122:0.2167 123:0.2 124:0.2 125:0.2 126:0.2 127:0.2167 128:0.2 129:0.2 130:0.2167 131:0.2167 132:0.2 133:0.2 134:0.2 135:0.2167 136:0.2167 137:0.2 138:0.2 139:0.2167 140:0.2167 141:0.2 142:0.15789474 143:0.15789474 144:0.17547368 145:0.17547368 146:0.17547368 147:0.087684211 148:0.087684211 149:0.087684211 150:0.087684211 151:0.087684211 152:0.087684211 153:0.087684211 154:0.087684211 155:0.087684211 156:0.087684211 157:0.053603763 158:0.053603763 159:0.053603763 160:0.053603763 161:0.053603763 162:0.053603763 163:0.053603763 164:0.053603763 165:0.053603763 166:0.053603763 167:0.053603763 168:0.053603763 169:0.053603763 170:0.053603763 171:0.053603763 172:0.053603763 173:0.053603763 174:0.053603763 175:0.053603763 176:0.053603763 177:0.053603763 178:0.053603763 179:0.053603763 180:0.053603763 181:0.053603763 182:0.053603763 183:0.053603763 184:0.053603763 185:0.053603763 186:0.053603763 187:0.053603763 188:0.053603763 189:0.053603763 190:0.053603763 191:0.053603763 192:0.14285408 193:0.14285408 194:0.14285408 195:0.14285408 196:0.14285408 197:0.14285408 198:0.14285408 199:0.14285408 200:0.14285408 201:0.14285408 202:0.14285408 203:0.14285408 204:0.14285408 205:0.14285408 206:0.14285408 207:0.14285408 208:0.14285408 209:0.14285408 210:0.14285408 211:0.14285408 212:0.14285408 213:0.14285408 214:0.14285408 215:0.17853278 216:0.17853278 217:0.17853278 218:0.17853278 219:0.17853278 220:0.17853278 221:0.2333 222:0.2333 223:0.25 224:0.25 225:0.25 226:0.25 227:0.25 228:0.2333 229:0.2333 230:0.25 231:0.25 232:0.25 233:0.2667 234:0.2667 235:0.2667 236:0.3 237:0.3 238:0.3 239:0.3 240:0.3 241:0.3 242:0.3 243:0.3 244:0.3 245:0.3 246:0.3 247:0.3 248:0.3 249:0.3 250:0.3 251:0.3167 252:0.3167 253:0.3167 254:0.3167 255:0.3333 256:0.35 257:0.3667 258:0.4 259:0.4 260:0.4 261:0.6167 262:0.6167 263:0.7667 264:0.7833 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:0.3667 274:0.1833 275:0.1833 276:0.1833 277:0.1833 278:0.1833 279:0.1833 280:0.1833 281:0.1833 282:0.1833 283:0.1833 284:0.1833 285:0.1667 286:0.1667 287:0.1667 288:0.1667 289:0.1667 290:0.1667 291:0.1667 292:0.1667 293:0.1667 294:0.1667 295:0.1667 296:0.1667 297:0.1667 298:0.1667 299:0.1667 300:0.1667 301:0.1667 302:0.1667 303:0.1667 304:0.1667 305:0.1667 306:0.1667 307:0.1667 308:0.1667 309:0.1667 310:0.1667 311:0.1667 312:0.1667 313:0.1667 314:0.1667 315:0.1667 316:0.1667 317:0.1667 318:0.1667 319:0.1667 320:0.1667 321:0.1667 322:0.1667 323:0.1667 324:0.1667 325:0.1667 326:0.1667 327:0.1667 328:0.1667 329:0.1667 330:0.1667 331:0.1667 332:0.1667 333:0.1667 334:0.1667 335:0.1667 336:0.2 337:0.2167 338:0.2167 339:0.2167 340:0.2167 341:0.2 342:0.2167 343:0.2167 344:0.2167 345:0.2167 346:0.2167 347:0.2167 348:0.2167 349:0.2 350:0.2167 351:0.2167 352:0.2 353:0.2 354:0.2 355:0.2167 356:0.2167 357:0.2167 358:0.2167 359:0.2333 360:0.25 +0.310011314534733 1:0.1333 2:0.1333 3:0.1333 4:0.1333 5:0.1333 6:0.1333 7:0.1333 8:0.1333 9:0.1333 10:0.1333 11:0.1333 12:0.1333 13:0.1333 14:0.1333 15:0.1333 16:0.1333 17:0.1333 18:0.1333 19:0.1333 20:0.1333 21:0.1333 22:0.1333 23:0.1333 24:0.1333 25:0.1333 26:0.1333 27:0.1333 28:0.1333 29:0.1333 30:0.1667 31:0.1667 32:0.1667 33:0.1667 34:0.1667 35:0.1667 36:0.1833 37:0.1833 38:0.1667 39:0.1667 40:0.1667 41:0.1833 42:0.1833 43:0.1667 44:0.1667 45:0.1667 46:0.1833 47:0.1667 48:0.1667 49:0.1667 50:0.1667 51:0.1667 52:0.1833 53:0.1833 54:0.1833 55:0.45 56:0.45 57:0.2667 58:0.45 59:0.45 60:0.2667 61:0.2667 62:0.5167 63:0.2667 64:0.2667 65:0.4 66:0.2667 67:0.2667 68:0.3833 69:0.3833 70:0.3833 71:0.3833 72:0.3833 73:0.3833 74:0.3833 75:0.3833 76:0.3833 77:0.3833 78:0.4 79:0.5167 80:0.5167 81:0.5167 82:0.7 83:0.7 84:0.7 85:0.8667 86:0.8667 87:0.8667 88:1 89:0.5667 90:0.5667 91:0.5667 92:0.5667 93:0.5667 94:0.5667 95:0.5667 96:0.5 97:0.5 98:0.5 99:0.5 100:0.5 101:0.5 102:0.5 103:0.5 104:0.5 105:0.5 106:0.5167 107:0.6667 108:0.6667 109:0.5667 110:0.5833 111:0.5667 112:0.5667 113:0.5667 114:0.5667 115:0.4333 116:0.4167 117:0.4333 118:0.4167 119:0.4333 120:0.4167 121:0.3167 122:0.3 123:0.3 124:0.3 125:0.3 126:0.3 127:0.3 128:0.1833 129:0.1833 130:0.1833 131:0.1833 132:0.1833 133:0.1833 134:0.1833 135:0.1833 136:0.1833 137:0.1833 138:0.1833 139:0.1833 140:0.1833 141:0.1833 142:0.14031579 143:0.14031579 144:0.14031579 145:0.14031579 146:0.14031579 147:0.14031579 148:0.14031579 149:0.14031579 150:0.14031579 151:0.14031579 152:0.14031579 153:0.14031579 154:0.14031579 155:0.14031579 156:0.14031579 157:0.12496116 158:0.12496116 159:0.12496116 160:0.12496116 161:0.12496116 162:0.12496116 163:0.12496116 164:0.12496116 165:0.12496116 166:0.12496116 167:0.12496116 168:0.12496116 169:0.12496116 170:0.12496116 171:0.12496116 172:0.12496116 173:0.12496116 174:0.12496116 175:0.12496116 176:0.12496116 177:0.12496116 178:0.12496116 179:0.12496116 180:0.12496116 181:0.12496116 182:0.12496116 183:0.12496116 184:0.75003482 185:1 186:1 187:1 188:1 189:1 190:1 191:0.91074968 192:0.75003482 193:0.75003482 194:0.55353412 195:0.55353412 196:0.55353412 197:0.41071218 198:0.41071218 199:0.41071218 200:0.41071218 201:0.41071218 202:0.30356894 203:0.30356894 204:0.30356894 205:0.30356894 206:0.30356894 207:0.30356894 208:0.30356894 209:0.35714056 210:0.30356894 211:0.30356894 212:0.30356894 213:0.17853278 214:0.17853278 215:0.17853278 216:0.160747 217:0.160747 218:0.160747 219:0.160747 220:0.160747 221:0.2167 222:0.2167 223:0.2167 224:0.2167 225:0.2167 226:0.2 227:0.2 228:0.2167 229:0.2167 230:0.2167 231:0.2 232:0.2167 233:0.2167 234:0.2167 235:0.2 236:0.2167 237:0.2167 238:0.2167 239:0.2167 240:0.2 241:0.2167 242:0.2167 243:0.2 244:0.2 245:0.2167 246:0.2167 247:0.2167 248:0.2167 249:0.2167 250:0.2167 251:0.2167 252:0.2667 253:0.25 254:0.25 255:0.2667 256:0.2667 257:0.2667 258:0.2667 259:0.2667 260:0.2833 261:0.2667 262:0.2667 263:0.2667 264:0.2667 265:0.2667 266:0.3167 267:0.3167 268:0.3167 269:0.3167 270:0.3833 271:0.3833 272:0.3833 273:0.4 274:0.4 275:0.9333 276:0.95 277:0.95 278:1 279:1 280:1 281:1 282:0.3 283:0.2833 284:0.25 285:0.2333 286:0.2167 287:0.2 288:0.2 289:0.1833 290:0.1833 291:0.1833 292:0.2 293:0.2 294:0.1833 295:0.1833 296:0.2 297:0.2 298:0.2 299:0.1833 300:0.2 301:0.2 302:0.2 303:0.1833 304:0.1833 305:0.1833 306:0.2 307:0.2 308:0.1833 309:0.1833 310:0.1833 311:0.2 312:0.2 313:0.2 314:0.2 315:0.2 316:0.2 317:0.2167 318:0.2167 319:0.2167 320:0.2167 321:0.2167 322:0.25 323:0.2833 324:0.2833 325:0.2833 326:0.2833 327:0.3 328:0.2833 329:0.2833 330:0.3 331:0.2833 332:0.2833 333:0.3 334:0.2833 335:0.2833 336:0.2833 337:0.2833 338:0.2833 339:0.2833 340:0.2667 341:0.2667 342:0.2667 343:0.2667 344:0.2667 345:0.2667 346:0.2667 347:0.2667 348:0.2667 349:0.2667 350:0.2667 351:0.2667 352:0.1333 353:0.1333 354:0.1333 355:0.1333 356:0.1333 357:0.1333 358:0.1333 359:0.1333 360:0.1333 +1.596701576076699 1:0.1333 2:0.1333 3:0.1333 4:0.1333 5:0.1333 6:0.1333 7:0.1333 8:0.1333 9:0.1333 10:0.1333 11:0.1333 12:0.1333 13:0.1333 14:0.1333 15:0.1333 16:0.1333 17:0.1333 18:0.1333 19:0.1333 20:0.1333 21:0.1333 22:0.1333 23:0.15 24:0.1667 25:0.1667 26:0.1667 27:0.1667 28:0.1667 29:0.1667 30:0.1667 31:0.1667 32:0.1667 33:0.1667 34:0.1667 35:0.1667 36:0.1667 37:0.1667 38:0.1667 39:0.1667 40:0.1667 41:0.1667 42:0.1667 43:0.1667 44:0.1667 45:0.15 46:0.1667 47:0.1667 48:0.1667 49:0.1667 50:0.1667 51:0.1667 52:0.25 53:0.25 54:0.25 55:0.25 56:0.25 57:0.25 58:0.25 59:0.25 60:0.25 61:0.25 62:0.25 63:0.25 64:0.25 65:0.25 66:0.25 67:0.25 68:0.25 69:0.25 70:0.25 71:0.3667 72:0.3833 73:0.3667 74:0.3667 75:0.3667 76:0.3667 77:0.3667 78:0.5167 79:0.5167 80:0.5167 81:0.5167 82:0.5167 83:0.5333 84:0.6667 85:0.6667 86:0.6667 87:0.85 88:0.85 89:1 90:1 91:1 92:0.7667 93:0.7667 94:0.7667 95:0.7667 96:0.7667 97:0.7667 98:0.8833 99:0.8833 100:0.4667 101:0.45 102:0.45 103:0.45 104:0.45 105:0.45 106:0.45 107:0.45 108:0.45 109:0.45 110:0.45 111:0.55 112:0.55 113:0.55 114:0.55 115:0.55 116:0.55 117:0.4 118:0.4167 119:0.4 120:0.4167 121:0.4167 122:0.4167 123:0.1667 124:0.1667 125:0.1667 126:0.1667 127:0.1667 128:0.1667 129:0.1667 130:0.1667 131:0.1667 132:0.1667 133:0.1667 134:0.1667 135:0.1667 136:0.1667 137:0.1667 138:0.1667 139:0.1667 140:0.1667 141:0.1667 142:0.12284211 143:0.12284211 144:0.12284211 145:0.12284211 146:0.12284211 147:0.12284211 148:0.12284211 149:0.12284211 150:0.12284211 151:0.12284211 152:0.12284211 153:0.12284211 154:0.12284211 155:0.12284211 156:0.14031579 157:0.12496116 158:0.12496116 159:0.12496116 160:0.12496116 161:0.12496116 162:0.12496116 163:0.12496116 164:0.12496116 165:0.12496116 166:0.12496116 167:0.12496116 168:0.12496116 169:0.12496116 170:0.12496116 171:0.12496116 172:0.12496116 173:0.12496116 174:0.12496116 175:0.12496116 176:0.12496116 177:0.12496116 178:0.12496116 179:0.14285408 180:0.14285408 181:0.14285408 182:0.14285408 183:0.14285408 184:0.14285408 185:0.14285408 186:0.14285408 187:0.14285408 188:1 189:1 190:1 191:1 192:0.91074968 193:0.91074968 194:0.75003482 195:0.75003482 196:0.57142704 197:0.55353412 198:0.55353412 199:0.41071218 200:0.41071218 201:0.41071218 202:0.41071218 203:0.41071218 204:0.32146186 205:0.32146186 206:0.32146186 207:0.32146186 208:0.32146186 209:0.32146186 210:0.32146186 211:0.32146186 212:0.32146186 213:0.32146186 214:0.32146186 215:0.1964257 216:0.1964257 217:0.1964257 218:0.17853278 219:0.17853278 220:0.17853278 221:0.2333 222:0.2333 223:0.2333 224:0.2333 225:0.2333 226:0.2333 227:0.2333 228:0.2167 229:0.2167 230:0.2167 231:0.2333 232:0.2167 233:0.2167 234:0.2167 235:0.2167 236:0.2333 237:0.2167 238:0.2167 239:0.2333 240:0.2333 241:0.2167 242:0.2167 243:0.2333 244:0.2167 245:0.2167 246:0.2167 247:0.2167 248:0.2333 249:0.2333 250:0.2333 251:0.2333 252:0.2833 253:0.2667 254:0.2667 255:0.2667 256:0.2833 257:0.2833 258:0.2833 259:0.2833 260:0.3 261:0.3333 262:0.3333 263:0.3333 264:0.3333 265:0.3333 266:0.3333 267:0.3333 268:0.3333 269:0.3333 270:0.4 271:0.4 272:0.4 273:0.4 274:0.4 275:0.5667 276:0.95 277:0.95 278:1 279:1 280:1 281:1 282:0.3 283:0.2833 284:0.25 285:0.2333 286:0.2167 287:0.2 288:0.2 289:0.2 290:0.2 291:0.2 292:0.2 293:0.2 294:0.2 295:0.2167 296:0.2167 297:0.2 298:0.2 299:0.2167 300:0.2167 301:0.2 302:0.2 303:0.2 304:0.2167 305:0.2 306:0.2 307:0.2 308:0.2 309:0.2167 310:0.2167 311:0.2167 312:0.2167 313:0.2167 314:0.2167 315:0.2333 316:0.2333 317:0.2333 318:0.2667 319:0.2667 320:0.3 321:0.3 322:0.2833 323:0.3 324:0.3 325:0.2833 326:0.3 327:0.3 328:0.2833 329:0.3 330:0.3 331:0.2833 332:0.3 333:0.3 334:0.3 335:0.3 336:0.3 337:0.3167 338:0.3167 339:0.3 340:0.2667 341:0.2667 342:0.2667 343:0.2833 344:0.2667 345:0.2667 346:0.1333 347:0.1333 348:0.1333 349:0.1333 350:0.1333 351:0.1333 352:0.1333 353:0.1333 354:0.1333 355:0.1333 356:0.1333 357:0.1333 358:0.1333 359:0.1333 360:0.1333 +0.1681704381692252 1:0.2167 2:0.2167 3:0.2167 4:0.1833 5:0.1833 6:0.1833 7:0.1833 8:0.1833 9:0.1833 10:0.1833 11:0.1833 12:0.1833 13:0.1833 14:0.1833 15:0.1667 16:0.15 17:0.15 18:0.15 19:0.15 20:0.15 21:0.15 22:0.15 23:0.15 24:0.1 25:0.1 26:0.1167 27:0.1167 28:0.1167 29:0.1167 30:0.1167 31:0.1167 32:0.1167 33:0.1167 34:0.1167 35:0.1 36:0.1 37:0.1167 38:0.1167 39:0.1167 40:0.1167 41:0.1167 42:0.1167 43:0.1167 44:0.1167 45:0.1167 46:0.1167 47:0.1167 48:0.1167 49:0.1167 50:0.1167 51:0.1167 52:0.1167 53:0.1167 54:0.1167 55:0.1167 56:0.1 57:0.1 58:0.1167 59:0.1167 60:0.1167 61:0.1167 62:0.1167 63:0.1167 64:0.1167 65:0.1167 66:0.1167 67:0.1 68:0.1 69:0.5 70:0.4833 71:0.4833 72:0.4833 73:0.6667 74:0.6667 75:0.8333 76:0.8333 77:1 78:1 79:0.9667 80:0.9667 81:0.9667 82:0.9667 83:0.9667 84:0.9333 85:0.9333 86:0.8333 87:0.5167 88:0.5167 89:0.5167 90:0.45 91:0.45 92:0.45 93:0.4333 94:0.4333 95:0.4333 96:0.4333 97:0.4333 98:0.4333 99:0.4333 100:0.4333 101:0.4333 102:0.4333 103:0.35 104:0.35 105:0.35 106:0.35 107:0.35 108:0.35 109:0.35 110:0.35 111:0.35 112:0.35 113:0.35 114:0.35 115:0.35 116:0.35 117:0.35 118:0.35 119:0.45 120:0.45 121:0.45 122:0.4833 123:0.45 124:0.4833 125:0.45 126:0.45 127:0.45 128:0.35 129:0.35 130:0.35 131:0.35 132:0.35 133:0.35 134:0.35 135:0.35 136:0.35 137:0.35 138:0.35 139:0.35 140:0.35 141:0.35 142:0.33336842 143:0.33336842 144:0.33336842 145:0.33336842 146:0.33336842 147:0.33336842 148:0.33336842 149:0.33336842 150:0.33336842 151:0.33336842 152:0.33336842 153:0.33336842 154:0.33336842 155:0.33336842 156:0.33336842 157:0.33924764 158:0.35714056 159:0.37503348 160:0.39281926 161:0.6964632 162:0.7321419 163:0.7321419 164:0.87496384 165:0.85717806 166:0.85717806 167:0.87496384 168:1 169:1 170:1 171:1 172:1 173:1 174:1 175:1 176:0.98210708 177:0.98210708 178:0.98210708 179:0.87496384 180:0.87496384 181:0.67857028 182:0.67857028 183:0.67857028 184:0.48217672 185:0.48217672 186:0.48217672 187:0.48217672 188:0.48217672 189:0.26789024 190:0.28567602 191:0.28567602 192:0.160747 193:0.160747 194:0.160747 195:0.160747 196:0.160747 197:0.160747 198:0.160747 199:0.160747 200:0.160747 201:0.160747 202:0.14285408 203:0.14285408 204:0.14285408 205:0.14285408 206:0.14285408 207:0.14285408 208:0.14285408 209:0.14285408 210:0.14285408 211:0.14285408 212:0.14285408 213:0.14285408 214:0.14285408 215:0.14285408 216:0.14285408 217:0.14285408 218:0.14285408 219:0.14285408 220:0.14285408 221:0.1667 222:0.1667 223:0.1667 224:0.1667 225:0.1667 226:0.2 227:0.1667 228:0.1667 229:0.1667 230:0.1667 231:0.1667 232:0.1667 233:0.1667 234:0.1667 235:0.1833 236:0.1833 237:0.1667 238:0.1667 239:0.1667 240:0.1667 241:0.1667 242:0.1667 243:0.1667 244:0.1667 245:0.1667 246:0.1667 247:0.2833 248:0.2833 249:0.1833 250:0.1667 251:0.1667 252:0.2833 253:0.3 254:0.3167 255:0.4667 256:0.4667 257:0.4667 258:0.4667 259:0.4667 260:0.4833 261:0.65 262:0.9667 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:0.9833 273:0.9833 274:0.65 275:0.65 276:0.4833 277:0.4833 278:0.4833 279:0.4833 280:0.4833 281:0.4833 282:0.4833 283:0.35 284:0.35 285:0.35 286:0.35 287:0.35 288:0.35 289:0.35 290:0.35 291:0.35 292:0.35 293:0.35 294:0.35 295:0.35 296:0.3333 297:0.3167 298:0.2 299:0.2 300:0.2167 301:0.2167 302:0.2 303:0.2167 304:0.2167 305:0.2167 306:0.1833 307:0.1833 308:0.1833 309:0.1833 310:0.1833 311:0.1833 312:0.1833 313:0.1833 314:0.1833 315:0.1833 316:0.1833 317:0.1833 318:0.1833 319:0.1833 320:0.1833 321:0.1833 322:0.1833 323:0.1833 324:0.1833 325:0.1833 326:0.1833 327:0.1833 328:0.1833 329:0.1833 330:0.1833 331:0.1833 332:0.1833 333:0.1833 334:0.1833 335:0.1833 336:0.1833 337:0.1833 338:0.1833 339:0.2 340:0.2 341:0.1833 342:0.1833 343:0.1833 344:0.2 345:0.2 346:0.2 347:0.2 348:0.2 349:0.2 350:0.2 351:0.2 352:0.2 353:0.2 354:0.2 355:0.2 356:0.2 357:0.2 358:0.2 359:0.2167 360:0.2167 +0.02735137271749791 1:0.03333 2:0.03333 3:0.03333 4:0.03333 5:0.03333 6:0.03333 7:0.03333 8:0.03333 9:0.03333 10:0.03333 11:0.03333 12:0.03333 13:0.03333 14:0.03333 15:0.03333 16:0.03333 17:0.03333 18:0.03333 19:0.03333 20:0.03333 21:0.03333 22:0.03333 23:0.03333 24:0.03333 25:0.03333 26:0.03333 27:0.03333 28:0.03333 29:0.03333 30:0.03333 31:0.03333 32:0.03333 33:0.03333 34:0.03333 35:0.03333 36:0.01667 37:0.01667 38:0.01667 39:0.01667 40:0.01667 41:0.01667 42:0.01667 43:0.01667 44:0.01667 45:0.01667 46:0.01667 47:0.01667 48:0.01667 49:0.01667 50:0.01667 51:0.01667 52:0.01667 53:0.01667 54:0.01667 55:0.01667 56:0.01667 57:0.01667 58:0.01667 59:0.01667 60:0.01667 61:0.01667 62:0.01667 63:0.01667 64:0.01667 65:0.01667 66:0.01667 67:0.01667 68:0.01667 69:0.01667 70:0.01667 71:0.01667 72:0.01667 73:0.01667 74:0.35 75:0.3333 76:0.35 77:0.5167 78:0.5167 79:0.5167 80:0.6667 81:0.8833 82:0.9 83:1 84:0.8 85:0.8 86:0.8 87:0.8 88:0.8 89:0.8 90:0.7833 91:0.7833 92:0.6833 93:0.6833 94:0.55 95:0.55 96:0.55 97:0.4 98:0.35 99:0.35 100:0.3667 101:0.2333 102:0.2167 103:0.2167 104:0.2167 105:0.2167 106:0.2167 107:0.2 108:0.2 109:0.2 110:0.2 111:0.2 112:0.2 113:0.2 114:0.2 115:0.2167 116:0.2167 117:0.2 118:0.2 119:0.2167 120:0.2167 121:0.2 122:0.2 123:0.2 124:0.2167 125:0.2 126:0.2 127:0.2 128:0.2 129:0.2167 130:0.2167 131:0.2167 132:0.2667 133:0.25 134:0.25 135:0.25 136:0.25 137:0.25 138:0.25 139:0.25 140:0.25 141:0.25 142:0.21052632 143:0.22810526 144:0.22810526 145:0.35084211 146:0.33336842 147:0.33336842 148:0.35084211 149:0.36842105 150:0.36842105 151:0.36842105 152:0.386 153:0.36842105 154:0.28073684 155:0.28073684 156:0.28073684 157:0.26789024 158:0.26789024 159:0.26789024 160:0.26789024 161:0.26789024 162:0.26789024 163:0.26789024 164:0.26789024 165:0.26789024 166:0.26789024 167:0.26789024 168:0.30356894 169:0.30356894 170:0.30356894 171:0.30356894 172:0.30356894 173:0.30356894 174:0.30356894 175:0.30356894 176:0.30356894 177:0.30356894 178:0.30356894 179:0.30356894 180:0.35714056 181:0.35714056 182:0.35714056 183:1 184:1 185:1 186:1 187:0.9643213 188:0.94642838 189:0.94642838 190:0.94642838 191:0.94642838 192:0.94642838 193:0.94642838 194:0.75003482 195:0.75003482 196:0.75003482 197:0.75003482 198:0.75003482 199:0.75003482 200:0.57142704 201:0.57142704 202:0.57142704 203:0.57142704 204:0.57142704 205:0.57142704 206:0.57142704 207:0.57142704 208:0.57142704 209:0.51785542 210:0.39281926 211:0.37503348 212:0.39281926 213:0.37503348 214:0.39281926 215:0.37503348 216:0.28567602 217:0.28567602 218:0.28567602 219:0.28567602 220:0.28567602 221:0.35 222:0.3333 223:0.3333 224:0.3333 225:0.3333 226:0.3167 227:0.3333 228:0.2833 229:0.2833 230:0.2833 231:0.2833 232:0.2833 233:0.2833 234:0.2833 235:0.2833 236:0.2833 237:0.2833 238:0.2833 239:0.2833 240:0.2833 241:0.2833 242:0.2833 243:0.2833 244:0.2833 245:0.2833 246:0.3 247:0.3 248:0.3333 249:0.3333 250:0.3333 251:0.3333 252:0.3333 253:0.3833 254:0.35 255:0.3333 256:0.3833 257:0.3833 258:0.3833 259:0.3833 260:0.3833 261:0.8 262:0.8 263:0.9833 264:0.9833 265:0.9833 266:0.9833 267:1 268:1 269:1 270:1 271:1 272:0.8 273:0.8 274:0.6167 275:0.6167 276:0.4667 277:0.4667 278:0.4667 279:0.3 280:0.3167 281:0.3167 282:0.3167 283:0.2833 284:0.2833 285:0.2833 286:0.2833 287:0.2667 288:0.2667 289:0.2667 290:0.2833 291:0.2667 292:0.2667 293:0.2667 294:0.2667 295:0.2667 296:0.25 297:0.25 298:0.2667 299:0.2667 300:0.25 301:0.2667 302:0.2667 303:0.2667 304:0.2667 305:0.25 306:0.01667 307:0.01667 308:0.01667 309:0.01667 310:0.01667 311:0.01667 312:0.01667 313:0.01667 314:0.01667 315:0.01667 316:0.01667 317:0.01667 318:0.01667 319:0.01667 320:0.01667 321:0.01667 322:0.01667 323:0.01667 324:0.01667 325:0.01667 326:0.01667 327:0.01667 328:0.01667 329:0.01667 330:0.01667 331:0.01667 332:0.01667 333:0.01667 334:0.01667 335:0.01667 336:0.01667 337:0.01667 338:0.01667 339:0.01667 340:0.01667 341:0.01667 342:0.01667 343:0.01667 344:0.03333 345:0.03333 346:0.03333 347:0.03333 348:0.03333 349:0.03333 350:0.03333 351:0.03333 352:0.03333 353:0.03333 354:0.03333 355:0.03333 356:0.03333 357:0.03333 358:0.03333 359:0.03333 360:0.03333 +0.01952115546713023 1:0.4167 2:0.4167 3:0.4167 4:0.4167 5:0.4167 6:0.4167 7:0.4167 8:0.4167 9:0.4167 10:0.4167 11:0.4333 12:0.3 13:0.2833 14:0.2667 15:0.2667 16:0.2667 17:0.2667 18:0.2667 19:0.2667 20:0.2667 21:0.2667 22:0.25 23:0.25 24:0.25 25:0.25 26:0.25 27:0.25 28:0.2333 29:0.2333 30:0.2167 31:0.2167 32:0.2167 33:0.2 34:0.2 35:0.2 36:0.1833 37:0.1833 38:0.2 39:0.2 40:0.2 41:0.2 42:0.2 43:0.2 44:0.2 45:0.2 46:0.2 47:0.2 48:0.2 49:0.2 50:0.2 51:0.2 52:0.2 53:0.2 54:0.2 55:0.1833 56:0.1833 57:0.2 58:0.2 59:0.2 60:0.2167 61:0.2167 62:0.2167 63:0.2167 64:0.2167 65:0.2167 66:0.2167 67:0.2167 68:0.2167 69:0.2167 70:0.2167 71:0.2167 72:0.2833 73:0.2667 74:0.2667 75:0.2667 76:0.2833 77:0.2833 78:0.2833 79:0.2833 80:0.4333 81:0.4333 82:0.4333 83:0.4333 84:0.4333 85:0.4333 86:0.45 87:0.45 88:0.4667 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:0.9167 97:0.7833 98:0.6333 99:0.6333 100:0.6333 101:0.4333 102:0.4333 103:0.4333 104:0.4333 105:0.4333 106:0.4333 107:0.4333 108:0.4333 109:0.3 110:0.3 111:0.3 112:0.3 113:0.3 114:0.3 115:0.3 116:0.3 117:0.2833 118:0.08333 119:0.08333 120:0.08333 121:0.08333 122:0.08333 123:0.08333 124:0.08333 125:0.08333 126:0.08333 127:0.08333 128:0.08333 129:0.1 130:0.08333 131:0.08333 132:0.08333 133:0.08333 134:0.08333 135:0.08333 136:0.08333 137:0.1 138:0.1 139:0.1 140:0.08333 141:0.08333 142:0.035084211 143:0.035084211 144:0.035084211 145:0.035084211 146:0.052631579 147:0.052631579 148:0.052631579 149:0.035084211 150:0.035084211 151:0.035084211 152:0.035084211 153:0.035084211 154:0.035084211 155:0.035084211 156:0.035084211 157:0.017850064 158:0.017850064 159:0.017850064 160:0.017850064 161:0.017850064 162:0.017850064 163:0.017850064 164:0.017850064 165:0.017850064 166:0.035710842 167:0.035710842 168:0.035710842 169:0.053603763 170:0.053603763 171:0.035710842 172:0.035710842 173:0.035710842 174:0.035710842 175:0.035710842 176:0.035710842 177:0.053603763 178:0.089282462 179:0.089282462 180:0.089282462 181:0.089282462 182:0.089282462 183:0.089282462 184:0.089282462 185:0.089282462 186:0.089282462 187:0.089282462 188:0.089282462 189:0.089282462 190:0.089282462 191:0.089282462 192:0.089282462 193:0.089282462 194:0.089282462 195:0.089282462 196:0.089282462 197:0.089282462 198:0.089282462 199:0.089282462 200:0.089282462 201:0.12496116 202:0.12496116 203:0.1964257 204:0.1964257 205:0.21431862 206:0.21431862 207:0.2321044 208:0.2321044 209:0.2321044 210:0.2321044 211:0.12496116 212:0.12496116 213:0.10717538 214:0.10717538 215:0.10717538 216:0.10717538 217:0.10717538 218:0.10717538 219:0.10717538 220:0.10717538 221:0.1667 222:0.1667 223:0.1667 224:0.1667 225:0.1667 226:0.1667 227:0.1667 228:0.1667 229:0.1667 230:0.1667 231:0.1667 232:0.1667 233:0.1667 234:0.1667 235:0.1667 236:0.1667 237:0.1667 238:0.1667 239:0.1667 240:0.1833 241:0.1833 242:0.3 243:0.3 244:0.3 245:0.3 246:0.3 247:0.3 248:0.3 249:0.3 250:0.3 251:0.3 252:0.3 253:0.3 254:0.4167 255:0.4167 256:0.4167 257:0.4167 258:0.4167 259:0.4333 260:0.55 261:0.55 262:0.6833 263:0.6833 264:0.75 265:1 266:1 267:1 268:1 269:1 270:1 271:0.5833 272:0.5833 273:0.5833 274:0.5833 275:0.5833 276:0.5833 277:0.4167 278:0.4167 279:0.4167 280:0.4167 281:0.2333 282:0.2333 283:0.2333 284:0.2333 285:0.2333 286:0.2333 287:0.2333 288:0.2333 289:0.2333 290:0.2333 291:0.2333 292:0.2333 293:0.2333 294:0.2333 295:0.2333 296:0.2333 297:0.2333 298:0.2333 299:0.2333 300:0.2167 301:0.2167 302:0.2167 303:0.2167 304:0.2167 305:0.2167 306:0.2167 307:0.2167 308:0.2167 309:0.2167 310:0.2167 311:0.2167 312:0.2167 313:0.2167 314:0.2167 315:0.2167 316:0.2167 317:0.2167 318:0.2167 319:0.2167 320:0.2167 321:0.2167 322:0.2167 323:0.2167 324:0.2167 325:0.2167 326:0.2167 327:0.2167 328:0.2167 329:0.2167 330:0.2167 331:0.2167 332:0.2167 333:0.3667 334:0.3667 335:0.3667 336:0.3667 337:0.3667 338:0.3667 339:0.4333 340:0.4333 341:0.4333 342:0.4333 343:0.4333 344:0.4333 345:0.45 346:0.4833 347:0.5333 348:0.55 349:0.55 350:0.5667 351:0.5667 352:1 353:1 354:1 355:1 356:1 357:1 358:0.4333 359:0.4333 360:0.4167 +1.121679920396747 1:0.5167 2:0.5167 3:0.5167 4:0.5333 5:0.5333 6:0.5333 7:0.5333 8:0.5833 9:1 10:1 11:1 12:1 13:1 14:1 15:1 16:1 17:1 18:1 19:1 20:1 21:0.7 22:0.7 23:0.6833 24:0.6833 25:0.6833 26:0.6833 27:0.6833 28:0.6833 29:0.6833 30:1 31:1 32:1 33:1 34:1 35:1 36:1 37:0.2667 38:0.2667 39:0.2667 40:0.2667 41:0.2667 42:0.2667 43:0.2667 44:0.2667 45:0.2667 46:0.2667 47:0.2667 48:0.2667 49:0.2667 50:0.2333 51:0.2333 52:0.2333 53:0.2333 54:0.2333 55:0.2167 56:0.2333 57:0.2333 58:0.2333 59:0.2333 60:0.2333 61:0.2333 62:0.2333 63:0.2333 64:0.2333 65:0.2333 66:0.2333 67:0.2333 68:0.2333 69:0.2333 70:0.2333 71:0.2333 72:0.2333 73:0.2333 74:0.4167 75:0.4333 76:0.4167 77:0.3333 78:0.3333 79:0.3333 80:0.3333 81:0.3333 82:0.3333 83:0.3333 84:0.3333 85:0.3333 86:0.2667 87:0.2667 88:0.2667 89:0.2667 90:0.2667 91:0.2667 92:0.2667 93:0.2667 94:0.2667 95:0.2667 96:0.2667 97:0.2667 98:0.2667 99:0.2667 100:0.2667 101:0.2667 102:0.2667 103:0.2833 104:0.2833 105:0.2833 106:0.3 107:0.3 108:0.45 109:0.45 110:0.45 111:0.45 112:0.45 113:0.5833 114:0.5833 115:0.5833 116:0.7833 117:0.7 118:0.8833 119:1 120:1 121:1 122:1 123:1 124:1 125:1 126:1 127:1 128:0.85 129:0.7333 130:0.7333 131:0.5833 132:0.5667 133:0.5167 134:0.5167 135:0.35 136:0.3167 137:0.3333 138:0.25 139:0.25 140:0.2333 141:0.2333 142:0.19294737 143:0.19294737 144:0.19294737 145:0.19294737 146:0.19294737 147:0.19294737 148:0.19294737 149:0.19294737 150:0.19294737 151:0.19294737 152:0.19294737 153:0.19294737 154:0.19294737 155:0.19294737 156:0.19294737 157:0.17853278 158:0.17853278 159:0.1964257 160:0.1964257 161:0.21431862 162:0.1964257 163:0.1964257 164:0.17853278 165:0.17853278 166:0.17853278 167:0.17853278 168:0.17853278 169:0.17853278 170:0.17853278 171:0.17853278 172:0.17853278 173:0.17853278 174:0.17853278 175:0.17853278 176:0.17853278 177:0.17853278 178:0.17853278 179:0.17853278 180:0.17853278 181:0.17853278 182:0.17853278 183:0.17853278 184:0.089282462 185:0.089282462 186:0.089282462 187:0.089282462 188:0.089282462 189:0.089282462 190:0.089282462 191:0.089282462 192:0.089282462 193:0.089282462 194:0.089282462 195:0.10717538 196:0.089282462 197:0.089282462 198:0.089282462 199:0.089282462 200:0.10717538 201:0.10717538 202:0.089282462 203:0.089282462 204:0.089282462 205:0.089282462 206:0.10717538 207:0.089282462 208:0.089282462 209:0.089282462 210:0.089282462 211:0.089282462 212:0.089282462 213:0.089282462 214:0.10717538 215:0.10717538 216:0.1964257 217:0.1964257 218:0.1964257 219:0.1964257 220:0.1964257 221:0.25 222:0.25 223:0.25 224:0.2667 225:0.25 226:0.25 227:0.25 228:0.2667 229:0.2667 230:0.2667 231:0.2833 232:0.2833 233:0.2833 234:0.3 235:0.3 236:0.3 237:0.2333 238:0.2333 239:0.2333 240:0.2333 241:0.2333 242:0.2333 243:0.2333 244:0.2333 245:0.2333 246:0.2333 247:0.2333 248:0.2333 249:0.2333 250:0.2333 251:0.2333 252:0.2333 253:0.2333 254:0.2333 255:0.2333 256:0.2333 257:0.2333 258:0.35 259:0.35 260:0.3667 261:0.3667 262:0.3667 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:0.8667 286:0.8667 287:0.5667 288:0.55 289:0.4 290:0.3833 291:0.3833 292:0.3833 293:0.3833 294:0.3833 295:0.3833 296:0.3833 297:0.3833 298:0.3833 299:0.3667 300:0.3667 301:0.3667 302:0.3667 303:0.3667 304:0.3667 305:0.3667 306:0.3667 307:0.35 308:0.35 309:0.2833 310:0.2833 311:0.2833 312:0.2667 313:0.2833 314:0.2833 315:0.2667 316:0.2833 317:0.2833 318:0.2833 319:0.2833 320:0.2833 321:0.2833 322:0.2833 323:0.2833 324:0.2333 325:0.2167 326:0.2167 327:0.2167 328:0.2167 329:0.2167 330:0.2167 331:0.2167 332:0.2167 333:0.2167 334:0.2167 335:0.2167 336:0.2167 337:0.2167 338:0.2167 339:0.2167 340:0.2167 341:0.2167 342:0.2167 343:0.2167 344:0.2167 345:0.2167 346:0.2167 347:0.2167 348:0.2167 349:0.2167 350:0.2167 351:0.2333 352:1 353:0.5167 354:0.5167 355:0.5167 356:0.5167 357:0.5167 358:0.5167 359:0.5167 360:0.5167 +0.3927186106688205 1:0.5167 2:0.5167 3:0.5167 4:0.55 5:0.55 6:1 7:1 8:1 9:1 10:1 11:1 12:1 13:1 14:1 15:1 16:1 17:0.8167 18:0.8167 19:0.6667 20:0.6667 21:0.6667 22:0.6667 23:0.6667 24:0.6667 25:0.6667 26:0.6667 27:0.6667 28:1 29:1 30:1 31:1 32:1 33:0.8 34:0.5333 35:0.25 36:0.25 37:0.25 38:0.25 39:0.25 40:0.25 41:0.25 42:0.25 43:0.25 44:0.25 45:0.25 46:0.25 47:0.25 48:0.25 49:0.25 50:0.25 51:0.2167 52:0.2167 53:0.2167 54:0.2167 55:0.2167 56:0.2167 57:0.2167 58:0.2167 59:0.2167 60:0.2167 61:0.2167 62:0.2167 63:0.2167 64:0.2167 65:0.2167 66:0.2167 67:0.2167 68:0.2167 69:0.2167 70:0.2167 71:0.2167 72:0.3833 73:0.4 74:0.4167 75:0.4167 76:0.4167 77:0.4167 78:0.4167 79:0.4333 80:0.4333 81:0.4333 82:0.4833 83:0.4833 84:0.4833 85:0.4833 86:0.2667 87:0.2667 88:0.2667 89:0.2667 90:0.2667 91:0.2667 92:0.2667 93:0.2667 94:0.2667 95:0.2667 96:0.2667 97:0.2667 98:0.2667 99:0.2667 100:0.2667 101:0.2667 102:0.2667 103:0.2667 104:0.2667 105:0.2667 106:0.2667 107:0.3 108:0.45 109:0.45 110:0.45 111:0.45 112:0.45 113:0.5833 114:0.5833 115:0.7667 116:0.7833 117:0.8667 118:1 119:1 120:1 121:1 122:1 123:1 124:1 125:1 126:1 127:0.75 128:0.75 129:0.75 130:0.5667 131:0.5667 132:0.55 133:0.55 134:0.5 135:0.5 136:0.5 137:0.4333 138:0.4333 139:0.4333 140:0.3667 141:0.25 142:0.21052632 143:0.21052632 144:0.21052632 145:0.21052632 146:0.21052632 147:0.21052632 148:0.21052632 149:0.21052632 150:0.21052632 151:0.21052632 152:0.21052632 153:0.21052632 154:0.21052632 155:0.21052632 156:0.21052632 157:0.1964257 158:0.1964257 159:0.1964257 160:0.1964257 161:0.21431862 162:0.21431862 163:0.21431862 164:0.21431862 165:0.21431862 166:0.21431862 167:0.21431862 168:0.21431862 169:0.1964257 170:0.1964257 171:0.1964257 172:0.1964257 173:0.1964257 174:0.1964257 175:0.1964257 176:0.1964257 177:0.1964257 178:0.1964257 179:0.1964257 180:0.1964257 181:0.1964257 182:0.1964257 183:0.1964257 184:0.1964257 185:0.1964257 186:0.1964257 187:0.1964257 188:0.1964257 189:0.10717538 190:0.10717538 191:0.12496116 192:0.12496116 193:0.12496116 194:0.12496116 195:0.12496116 196:0.12496116 197:0.12496116 198:0.12496116 199:0.12496116 200:0.12496116 201:0.12496116 202:0.12496116 203:0.12496116 204:0.12496116 205:0.12496116 206:0.12496116 207:0.12496116 208:0.12496116 209:0.12496116 210:0.10717538 211:0.10717538 212:0.12496116 213:0.12496116 214:0.12496116 215:0.12496116 216:0.12496116 217:0.12496116 218:0.21431862 219:0.21431862 220:0.24999732 221:0.2833 222:0.2833 223:0.3 224:0.2833 225:0.2833 226:0.3 227:0.2833 228:0.2833 229:0.2833 230:0.3 231:0.3 232:0.3 233:0.25 234:0.25 235:0.25 236:0.25 237:0.25 238:0.25 239:0.25 240:0.25 241:0.25 242:0.25 243:0.25 244:0.25 245:0.25 246:0.25 247:0.25 248:0.25 249:0.25 250:0.25 251:0.3667 252:0.3667 253:0.3667 254:0.3667 255:0.3667 256:0.3667 257:0.3667 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:0.6667 276:0.6667 277:0.65 278:0.65 279:0.65 280:0.65 281:0.65 282:0.65 283:0.55 284:0.4 285:0.3833 286:0.3833 287:0.3833 288:0.3833 289:0.3833 290:0.3833 291:0.3833 292:0.3833 293:0.3833 294:0.3667 295:0.3667 296:0.3667 297:0.3667 298:0.3667 299:0.3667 300:0.3667 301:0.3667 302:0.2833 303:0.2667 304:0.2667 305:0.2667 306:0.2667 307:0.2667 308:0.2667 309:0.2667 310:0.2667 311:0.2167 312:0.2167 313:0.2167 314:0.2167 315:0.2167 316:0.2 317:0.2 318:0.2 319:0.2 320:0.2 321:0.2 322:0.2 323:0.2 324:0.2 325:0.2 326:0.2 327:0.2 328:0.2 329:0.2 330:0.2 331:0.2 332:0.2 333:0.2 334:0.2 335:0.2 336:0.2 337:0.2 338:0.2 339:0.2 340:0.2 341:0.2167 342:1 343:1 344:1 345:1 346:0.5167 347:0.5 348:0.5 349:0.5 350:0.5 351:0.5 352:0.5 353:0.5 354:0.5 355:0.5 356:0.5 357:0.5 358:0.5 359:0.5167 360:0.5167 +0.5590978160550186 1:0.1333 2:0.1333 3:0.1333 4:0.1333 5:0.1333 6:0.1333 7:0.1333 8:0.1333 9:0.1333 10:0.1333 11:0.1333 12:0.1333 13:0.1333 14:0.1333 15:0.1333 16:0.1333 17:0.1333 18:0.1333 19:0.1333 20:0.1333 21:0.1333 22:0.1333 23:0.1333 24:0.1333 25:0.1333 26:0.1333 27:0.1333 28:0.1333 29:0.1333 30:0.3333 31:0.3333 32:0.3333 33:0.3333 34:0.2333 35:0.2333 36:0.2167 37:0.2167 38:0.2167 39:0.2167 40:0.2167 41:0.2167 42:0.2167 43:0.2167 44:0.2167 45:0.2167 46:0.2167 47:0.2167 48:0.2167 49:0.2167 50:0.2167 51:0.2167 52:0.2167 53:0.2167 54:0.2167 55:0.2167 56:0.2167 57:0.2333 58:0.2333 59:0.35 60:0.35 61:0.35 62:0.35 63:0.35 64:0.35 65:0.35 66:0.35 67:0.35 68:0.35 69:0.35 70:0.35 71:0.3833 72:0.3833 73:0.3833 74:0.3833 75:0.3833 76:0.6167 77:0.6167 78:0.75 79:0.75 80:0.75 81:1 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:0.45 91:0.45 92:0.45 93:0.25 94:0.25 95:0.25 96:0.25 97:0.25 98:0.25 99:0.25 100:0.25 101:0.25 102:0.25 103:0.25 104:0.25 105:0.2333 106:0.2333 107:0.2333 108:0.2333 109:0.2333 110:0.2333 111:0.2333 112:0.2333 113:0.2333 114:0.2333 115:0.2333 116:0.2333 117:0.2333 118:0.2333 119:0.2333 120:0.2333 121:0.2333 122:0.2333 123:0.2333 124:0.2333 125:0.2333 126:0.2333 127:0.2167 128:0.2333 129:0.2333 130:0.2333 131:0.2333 132:0.2333 133:0.2333 134:0.2333 135:0.2333 136:0.2333 137:0.2333 138:0.2333 139:0.2333 140:0.25 141:0.25 142:0.21052632 143:0.21052632 144:0.21052632 145:0.21052632 146:0.21052632 147:0.21052632 148:0.21052632 149:0.21052632 150:0.21052632 151:0.21052632 152:0.31578947 153:0.21052632 154:0.21052632 155:0.36842105 156:0.22810526 157:0.21431862 158:0.35714056 159:0.35714056 160:0.35714056 161:0.35714056 162:0.35714056 163:0.35714056 164:0.4999625 165:0.4999625 166:0.51785542 167:0.62499866 168:0.60710574 169:0.7321419 170:0.91074968 171:0.91074968 172:0.92853546 173:1 174:1 175:1 176:1 177:1 178:1 179:1 180:0.33924764 181:0.33924764 182:0.33924764 183:0.17853278 184:0.17853278 185:0.17853278 186:0.17853278 187:0.17853278 188:0.17853278 189:0.17853278 190:0.17853278 191:0.17853278 192:0.17853278 193:0.17853278 194:0.12496116 195:0.12496116 196:0.12496116 197:0.12496116 198:0.12496116 199:0.12496116 200:0.12496116 201:0.10717538 202:0.10717538 203:0.089282462 204:0.089282462 205:0.089282462 206:0.071389541 207:0.071389541 208:0.071389541 209:0.071389541 210:0.071389541 211:0.071389541 212:0.071389541 213:0.071389541 214:0.071389541 215:0.071389541 216:0.071389541 217:0.071389541 218:0.071389541 219:0.071389541 220:0.071389541 221:0.1333 222:0.1333 223:0.1333 224:0.1333 225:0.1333 226:0.1333 227:0.1333 228:0.1333 229:0.1333 230:0.1333 231:0.1333 232:0.1333 233:0.1333 234:0.1333 235:0.1333 236:0.1333 237:0.1333 238:0.1333 239:0.15 240:0.15 241:0.15 242:0.15 243:0.15 244:0.15 245:0.15 246:0.15 247:0.15 248:0.15 249:0.15 250:0.15 251:0.15 252:0.15 253:0.15 254:0.15 255:0.15 256:0.15 257:0.1667 258:0.2167 259:0.2 260:0.2167 261:0.2167 262:0.2 263:0.2 264:0.2 265:0.3333 266:0.3333 267:0.35 268:0.3833 269:0.3833 270:1 271:1 272:0.55 273:0.55 274:0.55 275:0.55 276:0.5333 277:0.5333 278:0.5333 279:0.5333 280:0.5333 281:0.5333 282:0.5333 283:0.5333 284:0.5333 285:0.6 286:0.6 287:0.4167 288:0.5833 289:0.4167 290:0.4167 291:0.4167 292:0.4167 293:0.4167 294:0.4167 295:0.3833 296:0.3833 297:0.3833 298:0.3833 299:0.3667 300:0.3667 301:0.35 302:0.35 303:0.35 304:0.35 305:0.35 306:0.35 307:0.35 308:0.35 309:0.35 310:0.35 311:0.35 312:0.35 313:0.35 314:0.4333 315:0.4333 316:0.1667 317:0.15 318:0.1667 319:0.1667 320:0.1667 321:0.1667 322:0.1667 323:0.1667 324:0.1667 325:0.1667 326:0.1667 327:0.1667 328:0.1667 329:0.1667 330:0.1667 331:0.1667 332:0.1667 333:0.1667 334:0.1667 335:0.1667 336:0.1667 337:0.1667 338:0.1667 339:0.15 340:0.1667 341:0.1667 342:0.15 343:0.15 344:0.15 345:0.15 346:0.15 347:0.15 348:0.15 349:0.15 350:0.15 351:0.15 352:0.1333 353:0.1333 354:0.1333 355:0.1333 356:0.1333 357:0.1333 358:0.1333 359:0.1333 360:0.1333 +0.2424910957736602 1:0.3833 2:0.3833 3:0.3833 4:0.3833 5:0.1167 6:0.1167 7:0.1167 8:0.1167 9:0.1167 10:0.1167 11:0.1167 12:0.1167 13:0.1167 14:0.1167 15:0.1167 16:0.1333 17:0.1333 18:0.4 19:0.4 20:0.1167 21:0.1167 22:0.1333 23:0.1333 24:0.4 25:0.3 26:0.3167 27:0.1167 28:0.1167 29:0.1167 30:0.1333 31:0.3167 32:0.3 33:0.1167 34:0.1167 35:0.1167 36:0.1167 37:0.1167 38:0.1167 39:0.1167 40:0.2 41:0.2 42:0.2 43:0.2 44:0.2 45:0.2 46:0.2 47:0.2 48:0.2 49:0.2 50:0.2 51:0.2 52:0.2 53:0.2 54:0.2 55:0.1833 56:0.1833 57:0.3167 58:0.3167 59:0.3167 60:0.3167 61:0.3167 62:0.3167 63:0.3167 64:0.3167 65:0.3167 66:0.3167 67:0.3167 68:0.3167 69:0.3167 70:0.3167 71:0.3167 72:0.3333 73:0.45 74:0.4667 75:0.45 76:0.45 77:0.45 78:0.5833 79:0.6 80:0.7167 81:0.7167 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:0.7833 93:0.7833 94:0.6 95:0.4333 96:0.4333 97:0.2333 98:0.2333 99:0.2333 100:0.2333 101:0.2333 102:0.2333 103:0.25 104:0.25 105:0.2333 106:0.25 107:0.25 108:0.25 109:0.2333 110:0.2333 111:0.2333 112:0.2333 113:0.2333 114:0.2333 115:0.2167 116:0.2167 117:0.2167 118:0.2167 119:0.2333 120:0.2167 121:0.2167 122:0.2167 123:0.2167 124:0.2167 125:0.2167 126:0.2167 127:0.2167 128:0.2167 129:0.2167 130:0.2167 131:0.2167 132:0.2167 133:0.2167 134:0.2167 135:0.2167 136:0.2167 137:0.2167 138:0.2167 139:0.2167 140:0.2167 141:0.2167 142:0.19294737 143:0.19294737 144:0.19294737 145:0.21052632 146:0.21052632 147:0.21052632 148:0.22810526 149:0.22810526 150:0.22810526 151:0.22810526 152:0.22810526 153:0.22810526 154:0.28073684 155:0.28073684 156:0.29821053 157:0.30356894 158:0.32146186 159:0.33924764 160:0.35714056 161:0.37503348 162:0.37503348 163:0.37503348 164:0.37503348 165:0.37503348 166:0.37503348 167:0.37503348 168:0.37503348 169:0.58931996 170:0.62499866 171:0.6964632 172:0.78571352 173:0.89285676 174:0.9643213 175:1 176:1 177:0.75003482 178:0.75003482 179:0.75003482 180:0.75003482 181:0.75003482 182:0.53574834 183:0.1964257 184:0.1964257 185:0.1964257 186:0.1964257 187:0.17853278 188:0.17853278 189:0.17853278 190:0.17853278 191:0.17853278 192:0.17853278 193:0.1964257 194:0.1964257 195:0.17853278 196:0.1964257 197:0.14285408 198:0.14285408 199:0.14285408 200:0.14285408 201:0.14285408 202:0.14285408 203:0.14285408 204:0.12496116 205:0.12496116 206:0.12496116 207:0.10717538 208:0.10717538 209:0.10717538 210:0.089282462 211:0.089282462 212:0.089282462 213:0.10717538 214:0.10717538 215:0.10717538 216:0.089282462 217:0.089282462 218:0.10717538 219:0.10717538 220:0.10717538 221:0.1667 222:0.15 223:0.1667 224:0.1667 225:0.1667 226:0.1667 227:0.1667 228:0.15 229:0.1667 230:0.1667 231:0.1667 232:0.15 233:0.15 234:0.15 235:0.1667 236:0.1667 237:0.1667 238:0.1667 239:0.1667 240:0.1833 241:0.1667 242:0.1833 243:0.2 244:0.1833 245:0.1833 246:0.1667 247:0.2333 248:0.2333 249:0.1833 250:0.1667 251:0.1667 252:0.2333 253:0.2333 254:0.2333 255:0.2333 256:0.2333 257:0.2333 258:0.2333 259:0.2333 260:0.2333 261:0.2333 262:0.3667 263:0.3833 264:0.3667 265:0.4 266:0.55 267:0.7 268:0.8333 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:0.9167 278:0.7667 279:0.7667 280:0.7667 281:0.6167 282:0.6167 283:0.6167 284:0.6167 285:0.5833 286:0.5833 287:0.5667 288:0.5333 289:0.5167 290:0.4833 291:0.4667 292:0.4333 293:0.2833 294:0.2833 295:0.2667 296:0.2667 297:0.2833 298:0.2667 299:0.2667 300:0.2833 301:0.2833 302:0.2667 303:0.2833 304:0.2833 305:0.2667 306:0.2833 307:0.2833 308:0.2667 309:0.2667 310:0.25 311:0.1667 312:0.1667 313:0.1667 314:0.1667 315:0.1667 316:0.25 317:0.1667 318:0.1667 319:0.1667 320:0.2333 321:0.2333 322:0.1667 323:0.1667 324:0.1667 325:0.2333 326:0.2333 327:0.1667 328:0.1667 329:0.1667 330:0.1667 331:0.1667 332:0.1667 333:0.1667 334:0.1667 335:0.1667 336:0.2333 337:0.2333 338:0.2333 339:0.2333 340:0.2333 341:0.2333 342:0.2333 343:0.2333 344:0.2333 345:0.2333 346:0.2333 347:0.2333 348:0.25 349:0.3167 350:0.3167 351:0.3167 352:0.3167 353:0.3167 354:0.3167 355:0.3167 356:0.3167 357:0.3833 358:0.3833 359:0.3833 360:0.3833 +0.1791208155313824 1:1 2:1 3:1 4:1 5:1 6:1 7:1 8:1 9:1 10:1 11:1 12:1 13:0.5167 14:0.5167 15:0.5167 16:0.5167 17:0.5 18:0.3833 19:0.3833 20:0.3833 21:0.3833 22:0.3833 23:0.3833 24:0.3833 25:0.3833 26:0.3833 27:0.3833 28:0.3833 29:0.5167 30:0.5 31:0.5 32:0.3333 33:0.3333 34:0.3167 35:0.2833 36:0.2833 37:0.3167 38:0.2833 39:0.2833 40:0.2833 41:0.2833 42:0.2833 43:0.2833 44:0.2833 45:0.2833 46:0.2833 47:0.2667 48:0.2667 49:0.2667 50:0.2667 51:0.2667 52:0.2667 53:0.2667 54:0.15 55:0.15 56:0.1333 57:0.1333 58:0.1333 59:0.1333 60:0.1333 61:0.1333 62:0.1333 63:0.15 64:0.15 65:0.1333 66:0.1333 67:0.1333 68:0.1333 69:0.15 70:0.15 71:0.15 72:0.1333 73:0.1333 74:0.1333 75:0.15 76:0.15 77:0.15 78:0.1333 79:0.1333 80:0.1333 81:0.1333 82:0.1333 83:0.1333 84:0.1333 85:0.1333 86:0.1333 87:0.1333 88:0.1333 89:0.1333 90:0.1333 91:0.1333 92:0.1333 93:0.1333 94:0.1333 95:0.1333 96:0.08333 97:0.08333 98:0.08333 99:0.08333 100:0.08333 101:0.08333 102:0.08333 103:0.1 104:0.1 105:0.1 106:0.08333 107:0.1 108:0.1 109:0.1 110:0.1 111:0.1 112:0.1 113:0.1 114:0.1 115:0.1 116:0.1 117:0.1 118:0.1 119:0.1 120:0.1 121:0.1 122:0.1 123:0.1 124:0.1 125:0.08333 126:0.1 127:0.1 128:0.1 129:0.1 130:0.1 131:0.1 132:0.1 133:0.08333 134:0.08333 135:0.08333 136:0.08333 137:0.08333 138:0.08333 139:0.08333 140:0.1 141:0.1 142:0.052631579 143:0.052631579 144:0.052631579 145:0.052631579 146:0.070210526 147:0.070210526 148:0.070210526 149:0.070210526 150:0.070210526 151:0.070210526 152:0.070210526 153:0.070210526 154:0.070210526 155:0.070210526 156:0.070210526 157:0.035710842 158:0.035710842 159:0.053603763 160:0.053603763 161:0.053603763 162:0.053603763 163:0.053603763 164:0.053603763 165:0.053603763 166:0.053603763 167:0.053603763 168:0.053603763 169:0.053603763 170:0.071389541 171:0.071389541 172:0.089282462 173:0.89285676 174:0.89285676 175:1 176:1 177:1 178:1 179:1 180:1 181:0.7321419 182:0.7321419 183:0.71424898 184:0.71424898 185:0.71424898 186:0.51785542 187:0.51785542 188:0.51785542 189:0.51785542 190:0.51785542 191:0.51785542 192:0.51785542 193:0.51785542 194:0.71424898 195:0.71424898 196:0.57142704 197:0.57142704 198:0.57142704 199:0.57142704 200:0.57142704 201:0.57142704 202:0.57142704 203:0.57142704 204:0.57142704 205:0.57142704 206:0.64289158 207:0.64289158 208:0.64289158 209:0.58931996 210:0.28567602 211:0.28567602 212:0.28567602 213:0.28567602 214:0.28567602 215:0.28567602 216:0.28567602 217:0.28567602 218:0.28567602 219:0.14285408 220:0.14285408 221:0.2 222:0.2 223:0.1833 224:0.2 225:0.2 226:0.2 227:0.2 228:0.2 229:0.2 230:0.2 231:0.2 232:0.2 233:0.2 234:0.2 235:0.2 236:0.2 237:0.2 238:0.2 239:0.2 240:0.2 241:0.2 242:0.1833 243:0.2 244:0.2 245:0.2167 246:0.2167 247:0.2167 248:0.2167 249:0.2167 250:0.2167 251:0.2167 252:0.2167 253:0.2167 254:0.2167 255:0.2167 256:0.2167 257:0.2167 258:0.2167 259:0.2167 260:0.2167 261:0.2333 262:0.2167 263:0.2167 264:0.2167 265:0.3167 266:0.3167 267:0.5833 268:0.5833 269:0.75 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:0.9333 278:0.7833 279:0.6 280:0.4667 281:0.4667 282:0.4667 283:0.3667 284:0.3667 285:0.3667 286:0.3667 287:0.3667 288:0.3667 289:0.3667 290:0.3667 291:0.2667 292:0.25 293:0.25 294:0.2333 295:0.2167 296:0.2167 297:0.1667 298:0.1667 299:0.1667 300:0.15 301:0.15 302:0.15 303:0.1667 304:0.1667 305:0.1667 306:0.15 307:0.15 308:0.1667 309:0.1667 310:0.1667 311:0.1667 312:0.15 313:0.1667 314:0.1667 315:0.1667 316:0.1667 317:0.1667 318:0.15 319:0.1667 320:0.1667 321:0.1667 322:0.15 323:0.15 324:0.15 325:0.1667 326:0.1667 327:0.1667 328:0.1667 329:0.1667 330:0.2167 331:0.2167 332:0.2167 333:0.2833 334:0.2833 335:0.2833 336:1 337:1 338:1 339:1 340:1 341:1 342:1 343:1 344:1 345:1 346:1 347:1 348:1 349:1 350:1 351:1 352:1 353:1 354:1 355:1 356:1 357:1 358:1 359:1 360:1 +0.9451452458578892 1:0.1333 2:0.1333 3:0.1333 4:0.1333 5:0.4333 6:0.4333 7:0.4333 8:0.4333 9:0.4167 10:0.4167 11:0.4167 12:0.4167 13:0.4167 14:0.4167 15:0.4167 16:0.4167 17:0.3833 18:0.25 19:0.2333 20:0.2333 21:0.2167 22:0.2167 23:0.2167 24:0.2167 25:0.2167 26:0.2167 27:0.2167 28:0.2 29:0.2 30:0.2167 31:0.2167 32:0.2 33:0.2167 34:0.2167 35:0.2167 36:0.2167 37:0.2 38:0.2167 39:0.2167 40:0.2167 41:0.2 42:0.2167 43:0.2167 44:0.2167 45:0.2 46:0.2 47:0.2667 48:0.2667 49:0.2667 50:0.2667 51:0.2667 52:0.2667 53:0.2667 54:0.2667 55:0.2667 56:0.2667 57:0.2667 58:0.2667 59:0.2667 60:0.3167 61:0.3167 62:0.3167 63:0.3167 64:0.3167 65:0.3167 66:0.3333 67:0.3333 68:0.3167 69:0.3333 70:0.4 71:0.4 72:0.4 73:0.4 74:0.4167 75:0.5833 76:0.5833 77:0.5833 78:0.5833 79:0.5833 80:0.5833 81:0.7833 82:0.7833 83:0.7833 84:0.7833 85:0.9667 86:0.9667 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:0.5167 99:0.5333 100:0.3833 101:0.2333 102:0.2167 103:0.2167 104:0.2167 105:0.2167 106:0.2167 107:0.2167 108:0.2167 109:0.2167 110:0.2167 111:0.2167 112:0.2167 113:0.2167 114:0.2167 115:0.2167 116:0.2167 117:0.2167 118:0.2167 119:0.2167 120:0.2167 121:0.2167 122:0.2167 123:0.2167 124:0.2167 125:0.2167 126:0.2167 127:0.1 128:0.1 129:0.1 130:0.1 131:0.1 132:0.1 133:0.08333 134:0.08333 135:0.08333 136:0.08333 137:0.08333 138:0.08333 139:0.08333 140:0.08333 141:0.08333 142:0.035084211 143:0.035084211 144:0.035084211 145:0.035084211 146:0.035084211 147:0.035084211 148:0.035084211 149:0.035084211 150:0.035084211 151:0.035084211 152:0.035084211 153:0.035084211 154:0.035084211 155:0.035084211 156:0.035084211 157:0.017850064 158:0.017850064 159:0.017850064 160:0.017850064 161:0.017850064 162:0.017850064 163:0.017850064 164:0.017850064 165:0.017850064 166:0.017850064 167:0.017850064 168:0.017850064 169:0.017850064 170:0.017850064 171:0.017850064 172:0.017850064 173:0.017850064 174:0.017850064 175:0.017850064 176:0.017850064 177:0.017850064 178:0.017850064 179:0.017850064 180:0.017850064 181:0.017850064 182:0.017850064 183:0.017850064 184:0.017850064 185:0.017850064 186:0.55353412 187:0.55353412 188:0.55353412 189:0.55353412 190:1 191:0.64289158 192:0.64289158 193:0.64289158 194:0.64289158 195:0.48217672 196:0.48217672 197:0.4642838 198:0.48217672 199:0.48217672 200:0.48217672 201:0.48217672 202:0.48217672 203:0.48217672 204:0.51785542 205:0.4286051 206:0.41071218 207:0.41071218 208:0.41071218 209:0.41071218 210:0.41071218 211:0.26789024 212:0.26789024 213:0.26789024 214:0.26789024 215:0.26789024 216:0.26789024 217:0.26789024 218:0.26789024 219:0.053603763 220:0.053603763 221:0.1167 222:0.1167 223:0.1167 224:0.1333 225:0.1333 226:0.1333 227:0.1333 228:0.1167 229:0.1167 230:0.1333 231:0.1333 232:0.1333 233:0.1333 234:0.1333 235:0.1333 236:0.1167 237:0.1333 238:0.1333 239:0.1333 240:0.1333 241:0.1333 242:0.1167 243:0.1167 244:0.1167 245:0.1333 246:0.1333 247:0.1333 248:0.1167 249:0.1167 250:0.1167 251:0.1167 252:0.1333 253:0.1333 254:0.1333 255:0.1333 256:0.1333 257:0.1333 258:0.1333 259:0.1333 260:0.1333 261:0.3 262:0.3 263:0.3 264:0.3 265:0.3 266:0.3 267:0.3 268:0.3 269:0.3 270:0.4667 271:0.4667 272:0.65 273:0.2833 274:0.2833 275:0.2833 276:0.2833 277:0.2833 278:0.2833 279:0.2833 280:0.2833 281:0.2833 282:0.2833 283:0.2833 284:0.2833 285:0.2833 286:0.2833 287:0.2833 288:0.2833 289:0.5333 290:0.5333 291:0.5333 292:0.5333 293:0.5333 294:0.5333 295:0.5333 296:0.5333 297:0.5333 298:0.5333 299:0.5333 300:0.5333 301:0.5333 302:0.75 303:0.4833 304:0.4833 305:0.4833 306:0.4833 307:0.4833 308:0.2667 309:0.2667 310:0.25 311:0.25 312:0.25 313:0.2333 314:0.2333 315:0.25 316:0.25 317:0.25 318:0.25 319:0.25 320:0.25 321:0.25 322:0.25 323:0.25 324:0.25 325:0.2333 326:0.25 327:0.25 328:0.25 329:0.2333 330:0.15 331:0.15 332:0.15 333:0.1333 334:0.1333 335:0.1333 336:0.1333 337:0.1333 338:0.1333 339:0.1333 340:0.1333 341:0.1333 342:0.1333 343:0.1333 344:0.1333 345:0.1333 346:0.1333 347:0.1333 348:0.1333 349:0.1333 350:0.1333 351:0.1333 352:0.1333 353:0.1333 354:0.1333 355:0.1333 356:0.1333 357:0.1333 358:0.1333 359:0.1333 360:0.1333 +0.694538071472227 1:0.2833 2:0.2833 3:1 4:1 5:1 6:1 7:0.8667 8:0.75 9:0.75 10:0.6 11:0.6 12:0.4833 13:0.4833 14:0.4833 15:0.45 16:0.35 17:0.35 18:0.3667 19:0.3 20:0.3 21:0.3 22:0.3 23:0.2833 24:0.2833 25:0.2833 26:0.2833 27:0.2833 28:0.2833 29:0.3 30:0.2833 31:0.2833 32:0.3 33:0.2833 34:0.2833 35:0.3 36:0.2833 37:0.2833 38:0.2833 39:0.3 40:0.3 41:0.3 42:0.3 43:0.3 44:0.3 45:0.3 46:0.3 47:0.3 48:0.3 49:0.3 50:0.3 51:0.3 52:0.3 53:0.3 54:0.3 55:0.3 56:0.3 57:0.3167 58:0.3167 59:0.3333 60:0.3333 61:0.3333 62:0.3333 63:0.3167 64:0.3333 65:0.3333 66:0.3167 67:0.3333 68:0.3333 69:0.3333 70:0.3333 71:0.3333 72:0.3333 73:0.3333 74:0.3167 75:0.3333 76:0.3333 77:0.3333 78:0.3333 79:0.55 80:0.55 81:0.55 82:0.5667 83:0.5667 84:0.5833 85:0.5667 86:0.7667 87:0.7667 88:0.7667 89:0.7667 90:0.7667 91:0.7833 92:0.9667 93:1 94:1 95:1 96:1 97:1 98:1 99:0.7833 100:0.7833 101:0.65 102:0.4833 103:0.4833 104:0.4833 105:0.4667 106:0.4833 107:0.4667 108:0.4833 109:0.4667 110:0.4833 111:0.2667 112:0.25 113:0.25 114:0.25 115:0.25 116:0.25 117:0.25 118:0.25 119:0.25 120:0.25 121:0.25 122:0.25 123:0.1667 124:0.1667 125:0.1667 126:0.1667 127:0.1667 128:0.1667 129:0.1667 130:0.1667 131:0.1667 132:0.1667 133:0.1667 134:0.1667 135:0.1667 136:0.1667 137:0.1667 138:0.1667 139:0.1667 140:0.1667 141:0.1667 142:0.12284211 143:0.12284211 144:0.12284211 145:0.12284211 146:0.12284211 147:0.12284211 148:0.12284211 149:0.12284211 150:0.14031579 151:0.14031579 152:0.17547368 153:0.17547368 154:0.17547368 155:0.15789474 156:0.15789474 157:0.14285408 158:0.14285408 159:0.14285408 160:0.14285408 161:0.14285408 162:0.14285408 163:0.14285408 164:0.14285408 165:0.14285408 166:0.14285408 167:0.14285408 168:0.14285408 169:0.14285408 170:0.14285408 171:0.14285408 172:0.14285408 173:0.14285408 174:0.14285408 175:0.14285408 176:0.14285408 177:0.14285408 178:0.071389541 179:0.071389541 180:0.071389541 181:0.071389541 182:0.071389541 183:0.071389541 184:0.071389541 185:0.071389541 186:0.071389541 187:0.071389541 188:0.071389541 189:0.071389541 190:0.071389541 191:0.071389541 192:0.071389541 193:0.071389541 194:0.071389541 195:0.071389541 196:0.071389541 197:0.071389541 198:0.071389541 199:0.071389541 200:0.071389541 201:0.071389541 202:0.071389541 203:0.071389541 204:0.071389541 205:0.071389541 206:0.071389541 207:0.071389541 208:0.071389541 209:0.071389541 210:0.071389541 211:0.071389541 212:0.071389541 213:0.071389541 214:0.071389541 215:0.071389541 216:0.160747 217:0.14285408 218:0.160747 219:0.160747 220:0.160747 221:0.2 222:0.2167 223:0.2167 224:0.2167 225:0.2 226:0.2 227:0.2167 228:0.2167 229:0.2167 230:0.2167 231:0.2167 232:0.2333 233:0.2333 234:0.2333 235:0.4167 236:0.4 237:0.4167 238:0.4 239:0.4167 240:0.4167 241:0.4 242:0.3667 243:0.3667 244:0.35 245:0.35 246:0.3667 247:0.35 248:0.35 249:0.3667 250:0.35 251:0.35 252:0.3667 253:0.35 254:0.3667 255:0.35 256:0.35 257:0.3667 258:0.5 259:0.5 260:0.5 261:0.5167 262:0.65 263:0.65 264:0.8333 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:0.9 279:0.9 280:0.7 281:0.5167 282:0.5167 283:0.5167 284:0.5167 285:0.5167 286:0.35 287:0.35 288:0.5167 289:0.35 290:0.3667 291:0.35 292:0.35 293:0.7167 294:0.1833 295:0.1833 296:0.1833 297:0.1833 298:0.1833 299:0.1833 300:0.1833 301:0.1833 302:0.1833 303:0.1833 304:0.1833 305:0.1833 306:0.1833 307:0.1833 308:0.1833 309:0.1833 310:0.1833 311:0.1833 312:0.1833 313:0.1833 314:0.1833 315:0.1833 316:0.1833 317:0.1833 318:0.1833 319:0.1833 320:0.1833 321:0.1833 322:0.1833 323:0.1833 324:0.1833 325:0.1833 326:0.1833 327:0.1833 328:0.1833 329:0.1833 330:0.1833 331:0.1833 332:0.2167 333:0.2167 334:0.2167 335:0.2167 336:0.2167 337:0.2167 338:0.2167 339:0.2167 340:0.2167 341:0.2167 342:0.2167 343:0.2167 344:0.2167 345:0.2167 346:0.2167 347:0.2167 348:0.2167 349:0.2167 350:0.2167 351:0.2833 352:0.2833 353:0.2833 354:0.2833 355:0.2833 356:0.2833 357:0.2833 358:0.2833 359:0.2833 360:0.2833 +1.511082805737294 1:1 2:1 3:1 4:1 5:1 6:0.8833 7:0.7667 8:0.6333 9:0.5833 10:0.5167 11:0.5167 12:0.4833 13:0.3667 14:0.3667 15:0.3667 16:0.35 17:0.3333 18:0.3167 19:0.3 20:0.3 21:0.3 22:0.3 23:0.3 24:0.3 25:0.3 26:0.3 27:0.3 28:0.3 29:0.3 30:0.3 31:0.3 32:0.3 33:0.3 34:0.3 35:0.3 36:0.3 37:0.3 38:0.3167 39:0.3167 40:0.3 41:0.3167 42:0.3167 43:0.3167 44:0.3167 45:0.3167 46:0.3167 47:0.3167 48:0.3167 49:0.3167 50:0.3167 51:0.3167 52:0.3 53:0.3167 54:0.3167 55:0.3167 56:0.3333 57:0.3333 58:0.3167 59:0.3333 60:0.3333 61:0.3333 62:0.3333 63:0.3167 64:0.3333 65:0.3333 66:0.3167 67:0.3333 68:0.3333 69:0.3333 70:0.3333 71:0.3333 72:0.3333 73:0.3333 74:0.3167 75:0.3333 76:0.55 77:0.55 78:0.55 79:0.55 80:0.55 81:0.55 82:0.7333 83:0.7333 84:0.7667 85:0.7667 86:0.7667 87:0.7667 88:0.7667 89:0.7667 90:0.8667 91:0.9667 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:0.4667 101:0.4667 102:0.4667 103:0.4667 104:0.4667 105:0.3 106:0.2833 107:0.2833 108:0.25 109:0.2333 110:0.2333 111:0.2333 112:0.2333 113:0.2333 114:0.2333 115:0.2333 116:0.2333 117:0.2333 118:0.2333 119:0.2333 120:0.15 121:0.15 122:0.15 123:0.15 124:0.15 125:0.15 126:0.15 127:0.15 128:0.15 129:0.15 130:0.15 131:0.15 132:0.15 133:0.15 134:0.15 135:0.15 136:0.15 137:0.15 138:0.15 139:0.15 140:0.15 141:0.15 142:0.10526316 143:0.10526316 144:0.10526316 145:0.10526316 146:0.10526316 147:0.10526316 148:0.10526316 149:0.10526316 150:0.10526316 151:0.10526316 152:0.10526316 153:0.14031579 154:0.14031579 155:0.14031579 156:0.14031579 157:0.12496116 158:0.12496116 159:0.12496116 160:0.12496116 161:0.12496116 162:0.12496116 163:0.12496116 164:0.12496116 165:0.12496116 166:0.12496116 167:0.12496116 168:0.12496116 169:0.12496116 170:0.12496116 171:0.12496116 172:0.12496116 173:0.089282462 174:0.089282462 175:0.089282462 176:0.089282462 177:0.089282462 178:0.053603763 179:0.053603763 180:0.053603763 181:0.053603763 182:0.053603763 183:0.053603763 184:0.053603763 185:0.053603763 186:0.035710842 187:0.035710842 188:0.035710842 189:0.035710842 190:0.035710842 191:0.035710842 192:0.053603763 193:0.053603763 194:0.035710842 195:0.035710842 196:0.035710842 197:0.053603763 198:0.053603763 199:0.053603763 200:0.053603763 201:0.053603763 202:0.035710842 203:0.053603763 204:0.053603763 205:0.053603763 206:0.053603763 207:0.053603763 208:0.053603763 209:0.053603763 210:0.035710842 211:0.035710842 212:0.035710842 213:0.053603763 214:0.053603763 215:0.053603763 216:0.053603763 217:0.053603763 218:0.035710842 219:0.035710842 220:0.035710842 221:0.1 222:0.1 223:0.1 224:0.2 225:0.2 226:0.2 227:0.2 228:0.2 229:0.1833 230:0.2 231:0.2 232:0.2 233:0.2 234:0.2167 235:0.2167 236:0.2167 237:0.2333 238:0.2333 239:0.2333 240:0.4167 241:0.4 242:0.4167 243:0.4 244:0.4167 245:0.4 246:0.4 247:0.4167 248:0.3667 249:0.3667 250:0.3667 251:0.3667 252:0.3667 253:0.3667 254:0.3667 255:0.3667 256:0.3667 257:0.3667 258:0.3667 259:0.3667 260:0.5167 261:0.5167 262:0.5167 263:0.6667 264:0.6667 265:0.8167 266:0.9833 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:0.9167 279:0.9167 280:0.9167 281:0.7167 282:0.7167 283:0.5333 284:0.5333 285:0.5333 286:0.5333 287:0.5333 288:0.3667 289:0.3667 290:0.3667 291:0.3667 292:0.3667 293:0.3667 294:0.3667 295:0.3667 296:0.3667 297:0.3667 298:0.2 299:0.2 300:0.2167 301:0.2167 302:0.2 303:0.2 304:0.2 305:0.2 306:0.2 307:0.2 308:0.2 309:0.2 310:0.2 311:0.2 312:0.2 313:0.2 314:0.2 315:0.2 316:0.2 317:0.2 318:0.2 319:0.2 320:0.2 321:0.2 322:0.2 323:0.2 324:0.2 325:0.2167 326:0.2 327:0.2 328:0.2 329:0.2 330:0.2167 331:0.2167 332:0.2167 333:0.2333 334:0.2333 335:0.2333 336:0.2333 337:0.2333 338:0.2333 339:0.2333 340:0.2333 341:0.2333 342:0.2333 343:0.2333 344:0.2333 345:0.2333 346:0.2333 347:0.2333 348:0.25 349:0.3 350:0.3 351:0.3 352:0.3 353:0.3 354:0.3 355:0.3 356:0.3 357:0.3 358:0.3 359:0.3 360:0.5833 +0.3538394096402166 1:1 2:1 3:1 4:1 5:0.8667 6:0.6833 7:0.6833 8:0.6167 9:0.5333 10:0.4833 11:0.4333 12:0.3833 13:0.35 14:0.3333 15:0.3 16:0.2833 17:0.2833 18:0.2833 19:0.2833 20:0.2833 21:0.2833 22:0.2833 23:0.2833 24:0.2833 25:0.2833 26:0.2833 27:0.2833 28:0.2833 29:0.2833 30:0.2833 31:0.2833 32:0.2833 33:0.2833 34:0.2833 35:0.2833 36:0.3 37:0.2833 38:0.3 39:0.3 40:0.2833 41:0.3 42:0.3 43:0.2833 44:0.2833 45:0.3 46:0.3 47:0.3 48:0.3 49:0.3 50:0.3 51:0.3 52:0.3 53:0.3 54:0.3 55:0.3 56:0.3 57:0.3167 58:0.3167 59:0.3167 60:0.3167 61:0.3167 62:0.3167 63:0.3167 64:0.3167 65:0.3167 66:0.3167 67:0.3167 68:0.3167 69:0.3167 70:0.3167 71:0.3167 72:0.3167 73:0.3167 74:0.3167 75:0.5333 76:0.5333 77:0.5333 78:0.5333 79:0.5333 80:0.55 81:0.55 82:0.7167 83:0.7167 84:0.75 85:0.75 86:0.75 87:0.75 88:0.75 89:0.75 90:0.7667 91:0.95 92:1 93:1 94:1 95:0.9833 96:0.9833 97:0.9833 98:0.7667 99:0.7667 100:0.6167 101:0.6167 102:0.6167 103:0.45 104:0.45 105:0.45 106:0.45 107:0.45 108:0.45 109:0.2333 110:0.2333 111:0.2333 112:0.2333 113:0.2333 114:0.2333 115:0.2333 116:0.2333 117:0.2333 118:0.2333 119:0.2333 120:0.2333 121:0.2333 122:0.2333 123:0.2333 124:0.2333 125:0.2333 126:0.2333 127:0.2167 128:0.15 129:0.15 130:0.15 131:0.1667 132:0.1667 133:0.1667 134:0.15 135:0.1667 136:0.1667 137:0.1667 138:0.1667 139:0.1667 140:0.15 141:0.1667 142:0.12284211 143:0.12284211 144:0.12284211 145:0.10526316 146:0.10526316 147:0.12284211 148:0.12284211 149:0.12284211 150:0.10526316 151:0.10526316 152:0.10526316 153:0.12284211 154:0.12284211 155:0.12284211 156:0.14031579 157:0.12496116 158:0.12496116 159:0.12496116 160:0.12496116 161:0.12496116 162:0.12496116 163:0.12496116 164:0.12496116 165:0.12496116 166:0.12496116 167:0.12496116 168:0.12496116 169:0.12496116 170:0.12496116 171:0.12496116 172:0.12496116 173:0.12496116 174:0.12496116 175:0.12496116 176:0.12496116 177:0.12496116 178:0.12496116 179:0.10717538 180:0.10717538 181:0.10717538 182:0.10717538 183:0.10717538 184:0.089282462 185:0.053603763 186:0.053603763 187:0.053603763 188:0.053603763 189:0.053603763 190:0.053603763 191:0.053603763 192:0.053603763 193:0.053603763 194:0.053603763 195:0.053603763 196:0.071389541 197:0.071389541 198:0.071389541 199:0.071389541 200:0.053603763 201:0.053603763 202:0.071389541 203:0.071389541 204:0.071389541 205:0.071389541 206:0.071389541 207:0.053603763 208:0.053603763 209:0.053603763 210:0.071389541 211:0.071389541 212:0.071389541 213:0.053603763 214:0.053603763 215:0.053603763 216:0.053603763 217:0.053603763 218:0.053603763 219:0.053603763 220:0.071389541 221:0.1333 222:0.1333 223:0.2167 224:0.2167 225:0.2 226:0.2 227:0.2167 228:0.2167 229:0.2167 230:0.2167 231:0.2167 232:0.2333 233:0.2333 234:0.2333 235:0.25 236:0.25 237:0.25 238:0.4333 239:0.4167 240:0.4167 241:0.4167 242:0.4167 243:0.4333 244:0.4167 245:0.3667 246:0.3667 247:0.3667 248:0.3667 249:0.3667 250:0.4333 251:0.3667 252:0.4833 253:0.3667 254:0.3667 255:0.3667 256:0.3667 257:0.3667 258:0.5167 259:0.5167 260:0.5167 261:0.5167 262:0.6667 263:0.6667 264:0.85 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:0.9333 278:0.9333 279:0.7333 280:0.7333 281:0.5333 282:0.5333 283:0.5333 284:0.5333 285:0.3667 286:0.3667 287:0.3667 288:0.3667 289:0.3667 290:0.3833 291:0.3667 292:0.3833 293:0.3667 294:0.2333 295:0.2167 296:0.2167 297:0.2167 298:0.2 299:0.2 300:0.2167 301:0.2167 302:0.2 303:0.2 304:0.2 305:0.2 306:0.2 307:0.2 308:0.2 309:0.2 310:0.2167 311:0.2 312:0.2 313:0.2 314:0.2 315:0.2 316:0.2 317:0.2 318:0.2 319:0.2167 320:0.2167 321:0.2 322:0.2 323:0.2 324:0.2167 325:0.2167 326:0.2167 327:0.2333 328:0.2333 329:0.2333 330:0.2333 331:0.2333 332:0.2333 333:0.2333 334:0.2333 335:0.2333 336:0.2333 337:0.2333 338:0.2333 339:0.2333 340:0.2333 341:0.2333 342:0.2333 343:0.2333 344:0.2833 345:0.2833 346:0.2833 347:0.3 348:0.2833 349:0.2833 350:0.3 351:0.2833 352:0.2833 353:0.2833 354:0.2833 355:0.2833 356:0.2833 357:0.45 358:0.5667 359:0.8 360:1 +0.006257312053404475 1:1 2:1 3:1 4:0.7833 5:0.75 6:0.7333 7:0.55 8:0.4667 9:0.4167 10:0.3667 11:0.3333 12:0.3 13:0.2833 14:0.2667 15:0.2667 16:0.2667 17:0.2667 18:0.2667 19:0.2667 20:0.2667 21:0.2667 22:0.2667 23:0.2667 24:0.2667 25:0.2667 26:0.2667 27:0.2667 28:0.2667 29:0.2667 30:0.2667 31:0.2667 32:0.2667 33:0.2833 34:0.2833 35:0.2833 36:0.2833 37:0.2833 38:0.2833 39:0.2833 40:0.2833 41:0.2833 42:0.2833 43:0.2833 44:0.2833 45:0.2833 46:0.2833 47:0.2833 48:0.2833 49:0.2833 50:0.2833 51:0.2833 52:0.2833 53:0.2833 54:0.3 55:0.2833 56:0.3 57:0.3 58:0.2833 59:0.3 60:0.3 61:0.2833 62:0.3 63:0.3 64:0.3 65:0.3 66:0.3 67:0.3 68:0.3 69:0.3 70:0.3 71:0.3 72:0.3 73:0.3 74:0.3 75:0.3 76:0.3 77:0.3 78:0.5333 79:0.5333 80:0.5333 81:0.5333 82:0.5333 83:0.5333 84:0.7167 85:0.7333 86:0.7333 87:0.7333 88:0.75 89:0.75 90:0.75 91:0.8167 92:1 93:1 94:0.5667 95:0.5667 96:0.5667 97:0.5667 98:0.5667 99:0.5667 100:0.5667 101:0.5667 102:0.6167 103:0.45 104:0.45 105:0.45 106:0.45 107:0.45 108:0.45 109:0.45 110:0.2833 111:0.2833 112:0.25 113:0.25 114:0.2333 115:0.2167 116:0.2167 117:0.2167 118:0.2167 119:0.2333 120:0.2167 121:0.2167 122:0.2333 123:0.2333 124:0.2167 125:0.2167 126:0.2333 127:0.2333 128:0.2167 129:0.2167 130:0.2167 131:0.15 132:0.15 133:0.15 134:0.15 135:0.15 136:0.15 137:0.15 138:0.15 139:0.15 140:0.15 141:0.15 142:0.10526316 143:0.10526316 144:0.10526316 145:0.10526316 146:0.10526316 147:0.10526316 148:0.10526316 149:0.10526316 150:0.10526316 151:0.10526316 152:0.10526316 153:0.10526316 154:0.10526316 155:0.10526316 156:0.10526316 157:0.089282462 158:0.089282462 159:0.089282462 160:0.14285408 161:0.14285408 162:0.14285408 163:0.14285408 164:0.14285408 165:0.14285408 166:0.14285408 167:0.14285408 168:0.14285408 169:0.14285408 170:0.14285408 171:0.14285408 172:0.14285408 173:0.14285408 174:0.14285408 175:0.14285408 176:0.14285408 177:0.14285408 178:0.14285408 179:0.12496116 180:0.12496116 181:0.12496116 182:0.12496116 183:0.12496116 184:0.12496116 185:0.12496116 186:0.12496116 187:0.12496116 188:0.12496116 189:0.10717538 190:0.089282462 191:0.071389541 192:0.089282462 193:0.089282462 194:0.089282462 195:0.089282462 196:0.089282462 197:0.089282462 198:0.089282462 199:0.089282462 200:0.089282462 201:0.089282462 202:0.089282462 203:0.089282462 204:0.089282462 205:0.089282462 206:0.089282462 207:0.089282462 208:0.089282462 209:0.089282462 210:0.089282462 211:0.089282462 212:0.089282462 213:0.089282462 214:0.089282462 215:0.089282462 216:0.071389541 217:0.089282462 218:0.089282462 219:0.160747 220:0.160747 221:0.2167 222:0.2167 223:0.2167 224:0.2167 225:0.2167 226:0.2167 227:0.2167 228:0.2167 229:0.2167 230:0.2167 231:0.2167 232:0.2333 233:0.2333 234:0.2333 235:0.2667 236:0.3 237:0.4333 238:0.4333 239:0.4333 240:0.4333 241:0.4333 242:0.4333 243:0.4333 244:0.3833 245:0.3833 246:0.3833 247:0.3833 248:0.3833 249:0.3833 250:0.3833 251:0.3833 252:0.3833 253:0.3833 254:0.3833 255:0.3833 256:0.5167 257:0.5167 258:0.5167 259:0.5167 260:0.6833 261:0.6833 262:0.6833 263:0.8667 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:0.9167 277:0.7167 278:0.7333 279:0.55 280:0.55 281:0.55 282:0.3833 283:0.3667 284:0.3667 285:0.3667 286:0.3667 287:0.3667 288:0.3667 289:0.2333 290:0.2333 291:0.2167 292:0.2 293:0.2 294:0.2 295:0.2 296:0.2 297:0.2 298:0.2 299:0.2 300:0.2 301:0.2 302:0.2 303:0.2 304:0.2 305:0.2 306:0.2 307:0.2 308:0.2 309:0.2 310:0.2 311:0.2 312:0.2 313:0.2 314:0.2 315:0.2 316:0.2 317:0.2167 318:0.2167 319:0.2167 320:0.2167 321:0.2167 322:0.2333 323:0.2333 324:0.2333 325:0.2333 326:0.2333 327:0.2333 328:0.2333 329:0.2333 330:0.2333 331:0.2333 332:0.2333 333:0.2333 334:0.2333 335:0.2333 336:0.2333 337:0.2333 338:0.2333 339:0.3 340:0.2833 341:0.3333 342:0.3 343:0.3 344:0.3 345:0.3 346:0.3 347:0.3 348:0.3 349:0.3 350:0.3 351:0.3 352:0.3 353:0.3167 354:0.4333 355:0.4333 356:0.55 357:0.6667 358:0.7833 359:1 360:1 +0.2401477987780673 1:0.1833 2:0.1833 3:0.1833 4:0.1833 5:0.1833 6:0.1833 7:0.1833 8:0.1833 9:1 10:1 11:1 12:1 13:1 14:1 15:1 16:1 17:1 18:1 19:1 20:1 21:1 22:1 23:1 24:1 25:1 26:1 27:1 28:0.6 29:0.6 30:0.6 31:0.6 32:0.6 33:0.6 34:0.6 35:0.6 36:0.4833 37:0.4667 38:0.4667 39:0.4667 40:0.4667 41:0.4667 42:0.4667 43:0.4667 44:0.4667 45:0.4667 46:0.4667 47:0.45 48:0.45 49:0.45 50:0.45 51:0.45 52:0.45 53:0.45 54:0.45 55:0.45 56:0.45 57:0.4167 58:0.35 59:0.35 60:0.35 61:0.35 62:0.35 63:0.35 64:0.35 65:0.35 66:0.35 67:0.35 68:0.35 69:0.35 70:0.35 71:0.35 72:0.35 73:0.35 74:0.3667 75:0.35 76:0.35 77:0.3667 78:0.3667 79:0.3667 80:0.3833 81:0.3833 82:0.3667 83:0.3667 84:0.3667 85:0.3667 86:0.3667 87:0.3667 88:0.3667 89:0.3667 90:0.3333 91:0.3333 92:0.3333 93:0.3333 94:0.3333 95:0.3333 96:0.3333 97:0.3333 98:0.3333 99:0.3333 100:0.3333 101:0.3333 102:0.3333 103:0.3333 104:0.3333 105:0.3333 106:0.3833 107:0.3833 108:0.3833 109:0.3833 110:0.3833 111:0.3833 112:0.3833 113:0.3833 114:0.3833 115:0.3833 116:0.3833 117:0.4 118:0.4167 119:0.4 120:0.4167 121:0.4167 122:0.4167 123:0.4167 124:0.4 125:0.4167 126:0.4 127:0.4167 128:0.4167 129:0.4167 130:0.45 131:0.45 132:0.45 133:0.45 134:0.45 135:0.45 136:0.4667 137:0.4667 138:0.4833 139:0.4833 140:0.5 141:0.5167 142:0.49126316 143:0.50873684 144:0.49126316 145:0.50873684 146:0.49126316 147:0.49126316 148:0.50873684 149:0.49126316 150:0.50873684 151:0.49126316 152:0.50873684 153:0.80705263 154:0.80705263 155:0.80705263 156:0.80705263 157:0.80360644 158:0.80360644 159:0.80360644 160:0.80360644 161:0.80360644 162:0.80360644 163:1 164:1 165:1 166:1 167:1 168:1 169:1 170:1 171:1 172:1 173:1 174:0.75003482 175:0.75003482 176:0.75003482 177:0.75003482 178:0.33924764 179:0.33924764 180:0.21431862 181:0.21431862 182:0.21431862 183:0.21431862 184:0.21431862 185:0.21431862 186:0.21431862 187:0.1964257 188:0.1964257 189:0.1964257 190:0.21431862 191:0.1964257 192:0.1964257 193:0.21431862 194:0.1964257 195:0.1964257 196:0.21431862 197:0.21431862 198:0.1964257 199:0.1964257 200:0.21431862 201:0.1964257 202:0.1964257 203:0.1964257 204:0.1964257 205:0.2321044 206:0.28567602 207:0.28567602 208:0.14285408 209:0.14285408 210:0.12496116 211:0.14285408 212:0.14285408 213:0.14285408 214:0.14285408 215:0.14285408 216:0.14285408 217:0.14285408 218:0.14285408 219:0.14285408 220:0.14285408 221:0.2 222:0.2 223:0.2 224:0.2 225:0.2 226:0.2 227:0.2 228:0.2 229:0.1833 230:0.2 231:0.2 232:0.2 233:0.2 234:0.2 235:0.2 236:0.2 237:0.2 238:0.2167 239:0.2 240:0.2 241:0.2 242:0.2167 243:0.2167 244:0.2 245:0.2 246:0.2167 247:0.2167 248:0.2 249:0.2 250:0.2 251:0.2 252:0.2 253:0.2 254:0.2 255:0.2 256:0.2167 257:0.2333 258:0.2333 259:0.2333 260:0.2333 261:0.2333 262:0.5333 263:0.55 264:0.5167 265:0.55 266:0.6333 267:0.6333 268:0.6333 269:0.6333 270:0.6333 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:0.8667 287:0.85 288:0.85 289:0.8333 290:0.8333 291:0.8333 292:0.8667 293:0.3833 294:0.4 295:0.3833 296:0.4 297:0.3833 298:0.4 299:0.4 300:0.4 301:0.4 302:0.3833 303:0.4 304:0.4 305:0.4 306:0.4333 307:0.4333 308:0.4333 309:0.4333 310:0.4333 311:0.4333 312:0.3167 313:0.2333 314:0.2333 315:0.3 316:0.3 317:0.25 318:0.25 319:0.2833 320:0.25 321:0.25 322:0.25 323:0.2667 324:0.25 325:0.2333 326:0.2667 327:0.2667 328:0.25 329:0.2333 330:0.15 331:0.15 332:0.15 333:0.15 334:0.15 335:0.15 336:0.1667 337:0.15 338:0.15 339:0.15 340:0.15 341:0.1667 342:0.1667 343:0.15 344:0.15 345:0.15 346:0.15 347:0.1667 348:0.15 349:0.15 350:0.15 351:0.15 352:0.15 353:0.15 354:0.15 355:0.15 356:0.15 357:0.15 358:0.15 359:0.1833 360:0.1833 +0.3065862027933848 1:1 2:1 3:1 4:1 5:1 6:0.5333 7:0.5333 8:0.3667 9:0.3833 10:0.3667 11:0.3833 12:0.3833 13:0.3833 14:0.3833 15:0.3667 16:0.3833 17:0.3833 18:0.3167 19:0.1833 20:0.1833 21:0.1667 22:0.1667 23:0.1833 24:0.1833 25:0.1833 26:0.1667 27:0.1667 28:0.1667 29:0.1667 30:0.1667 31:0.1667 32:0.1667 33:0.1667 34:0.1667 35:0.1667 36:0.1667 37:0.1667 38:0.1667 39:0.1667 40:0.1667 41:0.1667 42:0.1667 43:0.1667 44:0.1667 45:0.1667 46:0.1667 47:0.15 48:0.1667 49:0.1667 50:0.1667 51:0.1667 52:0.1667 53:0.1667 54:0.1667 55:0.1667 56:0.1667 57:0.1667 58:0.1667 59:0.1667 60:0.1667 61:0.1667 62:0.1667 63:0.1333 64:0.1333 65:0.1333 66:0.1333 67:0.1333 68:0.1333 69:0.1333 70:0.1333 71:0.1333 72:0.1333 73:0.1333 74:0.1333 75:0.1333 76:0.1333 77:0.1333 78:0.1333 79:0.1 80:0.1 81:0.1 82:0.1 83:0.1 84:0.1 85:0.1 86:0.1 87:0.1 88:0.1 89:0.1 90:0.1 91:0.1 92:0.1 93:0.1 94:0.1 95:0.1 96:0.1 97:0.1 98:0.1 99:0.1 100:0.1 101:0.1 102:0.1 103:0.1 104:0.1 105:0.1 106:0.1 107:0.1 108:0.1 109:0.1 110:0.1 111:0.1 112:0.1 113:0.1 114:0.1 115:0.1 116:0.1 117:0.1 118:0.1 119:0.1 120:0.1 121:0.1 122:0.1 123:0.1 124:0.1 125:0.1 126:0.1 127:0.1 128:0.1667 129:0.1667 130:0.1667 131:0.1667 132:0.1667 133:0.1667 134:0.1667 135:0.15 136:0.1667 137:0.1667 138:0.1667 139:0.1667 140:0.1667 141:0.1667 142:0.17547368 143:0.17547368 144:0.17547368 145:0.19294737 146:0.19294737 147:0.17547368 148:0.17547368 149:0.19294737 150:0.19294737 151:0.17547368 152:0.17547368 153:0.19294737 154:0.17547368 155:0.17547368 156:0.17547368 157:0.160747 158:0.17853278 159:0.2321044 160:0.2321044 161:0.2321044 162:0.2321044 163:0.24999732 164:0.26789024 165:0.28567602 166:0.30356894 167:0.32146186 168:0.35714056 169:0.37503348 170:0.37503348 171:0.37503348 172:0.37503348 173:0.37503348 174:0.37503348 175:0.37503348 176:0.37503348 177:0.37503348 178:0.7321419 179:0.7321419 180:0.9643213 181:1 182:1 183:1 184:1 185:1 186:1 187:1 188:1 189:1 190:1 191:0.75003482 192:0.75003482 193:0.75003482 194:0.75003482 195:0.75003482 196:0.75003482 197:0.7678206 198:0.9643213 199:0.87496384 200:0.7678206 201:0.80360644 202:0.78571352 203:0.7678206 204:0.7678206 205:0.7678206 206:0.80360644 207:0.80360644 208:1 209:1 210:0.39281926 211:0.83928514 212:0.39281926 213:0.80360644 214:0.39281926 215:0.78571352 216:0.39281926 217:0.78571352 218:0.39281926 219:0.32146186 220:0.32146186 221:0.35 222:0.3667 223:0.3667 224:0.3667 225:0.3667 226:0.35 227:0.3667 228:0.3667 229:0.3667 230:0.3667 231:0.35 232:0.3667 233:0.3667 234:0.3667 235:0.3833 236:0.3667 237:0.3667 238:0.4833 239:0.4833 240:0.4333 241:0.3833 242:0.3833 243:0.3833 244:0.3833 245:0.3833 246:0.3833 247:0.3833 248:0.3833 249:0.3833 250:0.3833 251:0.3833 252:0.3833 253:0.3833 254:0.3833 255:0.3833 256:0.4167 257:0.4333 258:0.4167 259:0.4333 260:0.4167 261:0.4167 262:0.4167 263:0.4167 264:0.4167 265:0.4167 266:0.45 267:0.45 268:0.4667 269:0.8667 270:0.8667 271:0.8667 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:0.6167 287:0.6167 288:0.6167 289:0.6167 290:0.6167 291:0.6167 292:0.6167 293:0.6167 294:0.6167 295:0.4333 296:0.4333 297:0.3167 298:0.3167 299:0.3167 300:0.3167 301:0.3167 302:0.3167 303:0.3167 304:0.3167 305:0.3167 306:0.3167 307:0.3167 308:0.3167 309:0.3167 310:0.3167 311:0.3167 312:0.3167 313:0.3167 314:0.3167 315:0.3167 316:0.3167 317:0.3167 318:0.3167 319:0.3167 320:0.3167 321:0.4167 322:0.4167 323:0.4167 324:0.4333 325:0.4333 326:0.4333 327:0.4333 328:0.5 329:0.5 330:0.5 331:0.5 332:0.5 333:0.5167 334:0.5 335:0.5167 336:0.8667 337:0.8667 338:0.85 339:0.85 340:0.85 341:0.85 342:0.85 343:0.85 344:0.85 345:0.9833 346:0.9833 347:1 348:1 349:1 350:1 351:1 352:1 353:1 354:1 355:1 356:1 357:1 358:1 359:1 360:1 +0.06055250298999164 1:1 2:1 3:1 4:1 5:1 6:1 7:1 8:0.7 9:0.7 10:0.7 11:0.7 12:0.7 13:0.7 14:0.7 15:0.7 16:1 17:0.9667 18:0.9667 19:0.8 20:0.7833 21:0.8 22:0.8 23:0.7833 24:0.7833 25:0.7833 26:1 27:1 28:1 29:1 30:0.4333 31:0.45 32:0.4333 33:0.45 34:0.4333 35:0.45 36:0.4333 37:0.45 38:0.4333 39:0.4333 40:0.45 41:0.3 42:0.3 43:0.3 44:0.3 45:0.3 46:0.3 47:0.3 48:0.3 49:0.3 50:0.3 51:0.3 52:0.3 53:0.3 54:0.3 55:0.3 56:0.3 57:0.3 58:0.3 59:0.3 60:0.3 61:0.5333 62:0.5333 63:0.5333 64:0.5333 65:0.5333 66:0.5333 67:0.5333 68:0.5333 69:0.5333 70:0.5333 71:0.5333 72:0.5333 73:0.4833 74:0.4833 75:0.4833 76:0.4667 77:0.4833 78:0.4833 79:0.4833 80:0.4833 81:0.4833 82:0.4833 83:0.4833 84:0.4667 85:0.5667 86:0.5667 87:0.5667 88:0.5667 89:0.5667 90:0.5667 91:0.5667 92:0.4833 93:0.4833 94:0.4833 95:0.4833 96:0.4833 97:0.4833 98:0.4833 99:0.4833 100:0.4833 101:0.4833 102:0.4833 103:0.4833 104:0.5 105:0.5 106:0.5 107:0.5 108:0.5 109:0.5 110:0.5 111:0.5 112:0.5 113:0.5 114:0.3167 115:0.3333 116:0.3333 117:0.3167 118:0.3333 119:0.3333 120:0.3333 121:0.3333 122:0.3333 123:0.3333 124:0.3333 125:0.3167 126:0.3167 127:0.3333 128:0.3333 129:0.3333 130:0.3333 131:0.35 132:0.35 133:0.35 134:0.3667 135:0.3667 136:0.3667 137:0.3833 138:0.3833 139:0.3833 140:0.6833 141:0.75 142:0.36842105 143:0.36842105 144:0.36842105 145:0.36842105 146:0.36842105 147:0.36842105 148:0.36842105 149:0.36842105 150:0.36842105 151:0.36842105 152:0.35084211 153:0.36842105 154:0.36842105 155:0.36842105 156:0.42105263 157:0.41071218 158:0.41071218 159:0.41071218 160:0.41071218 161:0.41071218 162:0.41071218 163:0.41071218 164:0.57142704 165:0.57142704 166:0.57142704 167:0.64289158 168:0.60710574 169:0.67857028 170:0.67857028 171:0.67857028 172:0.67857028 173:0.67857028 174:0.6964632 175:0.71424898 176:0.71424898 177:0.71424898 178:0.80360644 179:0.80360644 180:0.80360644 181:1 182:1 183:1 184:1 185:1 186:1 187:1 188:1 189:1 190:1 191:1 192:1 193:1 194:0.28567602 195:0.28567602 196:0.28567602 197:0.28567602 198:0.26789024 199:0.28567602 200:0.28567602 201:0.28567602 202:0.28567602 203:0.28567602 204:0.28567602 205:0.28567602 206:0.26789024 207:0.28567602 208:0.28567602 209:0.26789024 210:0.28567602 211:0.28567602 212:0.28567602 213:0.28567602 214:0.28567602 215:0.28567602 216:0.28567602 217:0.28567602 218:0.12496116 219:0.12496116 220:0.12496116 221:0.1667 222:0.1667 223:0.1667 224:0.1667 225:0.1667 226:0.1667 227:0.15 228:0.1667 229:0.1667 230:0.1667 231:0.1667 232:0.1667 233:0.1667 234:0.1667 235:0.1667 236:0.1667 237:0.1667 238:0.1667 239:0.1667 240:0.1667 241:0.1667 242:0.1667 243:0.1667 244:0.1667 245:0.1667 246:0.1667 247:0.1667 248:0.1667 249:0.15 250:0.1667 251:0.1667 252:0.5833 253:0.5167 254:0.5 255:0.5 256:0.3833 257:0.3833 258:0.3833 259:0.3833 260:0.3833 261:0.3833 262:0.3833 263:0.3833 264:0.3833 265:0.3833 266:0.3833 267:0.3833 268:0.3833 269:0.3833 270:0.3833 271:0.3833 272:0.3833 273:0.3833 274:0.3833 275:1 276:1 277:1 278:1 279:1 280:1 281:0.8167 282:0.7333 283:0.7333 284:0.7333 285:0.7333 286:0.7333 287:0.7333 288:0.7333 289:0.75 290:0.75 291:0.75 292:0.75 293:0.7667 294:0.7667 295:0.7667 296:0.7667 297:0.5833 298:0.2333 299:0.2333 300:0.2167 301:0.2167 302:0.2167 303:0.2 304:0.2 305:0.2 306:0.1833 307:0.1833 308:0.1833 309:0.1833 310:0.1833 311:0.1667 312:0.1667 313:0.1667 314:0.1667 315:0.1667 316:0.1833 317:0.1667 318:0.1667 319:0.1667 320:0.1833 321:0.1833 322:0.1667 323:0.1667 324:0.1667 325:0.1833 326:0.1833 327:0.1667 328:0.1667 329:0.1667 330:0.1667 331:0.1667 332:0.1667 333:0.1667 334:0.1667 335:0.1667 336:1 337:1 338:1 339:1 340:1 341:1 342:1 343:1 344:1 345:1 346:1 347:1 348:1 349:1 350:1 351:1 352:1 353:1 354:1 355:1 356:1 357:1 358:1 359:1 360:1 +0.5344429839729679 1:0.45 2:0.45 3:0.45 4:0.45 5:0.45 6:0.45 7:0.45 8:0.45 9:0.45 10:0.45 11:0.45 12:0.45 13:0.45 14:0.45 15:0.45 16:0.45 17:0.4667 18:0.4667 19:0.4667 20:0.4667 21:0.4667 22:0.4667 23:0.4667 24:0.4833 25:0.4833 26:0.4833 27:0.4833 28:0.5 29:0.5 30:0.5 31:0.5 32:0.5 33:0.5 34:0.5 35:0.5 36:0.5 37:0.5167 38:0.5167 39:0.5333 40:0.5333 41:0.5333 42:0.55 43:0.55 44:0.5667 45:1 46:1 47:1 48:1 49:1 50:1 51:1 52:1 53:1 54:1 55:1 56:1 57:1 58:1 59:1 60:1 61:1 62:1 63:1 64:1 65:1 66:1 67:1 68:1 69:1 70:1 71:1 72:1 73:1 74:1 75:1 76:1 77:1 78:1 79:1 80:1 81:1 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:1 107:1 108:1 109:0.95 110:0.95 111:0.95 112:0.95 113:0.8667 114:0.8333 115:0.7167 116:0.6833 117:0.6667 118:0.65 119:0.6167 120:0.6167 121:0.6167 122:0.6167 123:0.55 124:0.5333 125:0.55 126:0.4833 127:0.4667 128:0.4667 129:0.4667 130:0.4667 131:0.4333 132:0.4333 133:0.4333 134:0.4333 135:0.4333 136:0.4333 137:0.4333 138:0.4333 139:0.4333 140:0.3667 141:0.3667 142:0.33336842 143:0.33336842 144:0.33336842 145:0.33336842 146:0.33336842 147:0.33336842 148:0.33336842 149:0.33336842 150:0.33336842 151:0.33336842 152:0.33336842 153:0.33336842 154:0.43863158 155:0.43863158 156:0.43863158 157:0.4286051 158:0.4286051 159:0.4286051 160:1 161:1 162:1 163:1 164:1 165:1 166:1 167:1 168:1 169:1 170:1 171:1 172:1 173:0.9643213 174:0.94642838 175:0.91074968 176:0.87496384 177:0.83928514 178:0.82139222 179:0.78571352 180:0.7678206 181:0.7678206 182:0.7321419 183:0.7321419 184:0.7321419 185:0.7321419 186:0.7321419 187:0.6964632 188:0.71424898 189:0.71424898 190:0.71424898 191:0.6964632 192:0.75003482 193:0.71424898 194:0.7678206 195:0.71424898 196:0.71424898 197:0.71424898 198:0.71424898 199:0.41071218 200:0.41071218 201:0.37503348 202:0.37503348 203:0.37503348 204:0.37503348 205:0.33924764 206:0.33924764 207:0.33924764 208:0.33924764 209:0.33924764 210:0.33924764 211:0.33924764 212:0.33924764 213:0.33924764 214:0.33924764 215:0.33924764 216:0.33924764 217:0.33924764 218:0.33924764 219:0.33924764 220:0.37503348 221:0.4167 222:0.4167 223:0.4167 224:0.4 225:0.4 226:0.4167 227:0.4 228:0.4167 229:0.4 230:0.4167 231:0.4 232:0.4 233:0.4167 234:0.4 235:0.4167 236:0.4167 237:0.4333 238:0.45 239:0.45 240:0.4667 241:0.4833 242:0.5 243:0.5167 244:0.5333 245:0.55 246:0.5667 247:0.6 248:0.6167 249:0.65 250:0.6667 251:0.7167 252:0.75 253:0.7833 254:0.85 255:0.8667 256:1 257:1 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:1 287:1 288:1 289:1 290:1 291:1 292:1 293:1 294:1 295:1 296:1 297:1 298:1 299:1 300:1 301:1 302:0.8667 303:0.8333 304:0.8167 305:0.8 306:0.8 307:0.8 308:0.8 309:0.8 310:0.7833 311:0.9167 312:0.9 313:0.9 314:0.9 315:0.9167 316:1 317:0.6 318:0.6 319:0.6 320:0.6 321:0.5833 322:0.5833 323:0.6 324:0.5833 325:0.5833 326:0.5667 327:0.5167 328:0.5167 329:0.5167 330:0.5 331:0.5 332:0.5 333:0.5 334:0.5 335:0.5 336:0.5 337:0.5 338:0.5 339:0.5 340:0.5 341:0.4667 342:0.4667 343:0.4667 344:0.4667 345:0.4667 346:0.45 347:0.45 348:0.45 349:0.45 350:0.45 351:0.45 352:0.45 353:0.45 354:0.45 355:0.45 356:0.45 357:0.45 358:0.45 359:0.45 360:0.45 +1.465408862755756 1:0.3667 2:0.3667 3:0.3667 4:0.3667 5:0.3667 6:0.3667 7:0.3667 8:0.3667 9:0.3667 10:0.3667 11:0.3667 12:0.3667 13:0.3667 14:0.3667 15:0.3667 16:0.3667 17:0.3667 18:0.3667 19:0.3833 20:0.3833 21:0.3833 22:0.3833 23:0.3833 24:0.3833 25:0.3833 26:0.3833 27:0.3833 28:0.4 29:0.4 30:0.4 31:0.4 32:0.3833 33:0.4 34:0.4 35:0.4 36:0.4 37:0.4167 38:0.4167 39:0.4167 40:0.4333 41:0.4333 42:0.4333 43:0.45 44:0.45 45:0.45 46:0.4667 47:0.4667 48:0.4667 49:0.4833 50:0.4667 51:0.5667 52:0.5667 53:0.55 54:0.5833 55:0.5833 56:0.6 57:1 58:1 59:1 60:1 61:1 62:1 63:1 64:1 65:1 66:1 67:1 68:1 69:1 70:1 71:1 72:1 73:1 74:1 75:1 76:1 77:1 78:1 79:1 80:1 81:1 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:0.8333 91:0.8333 92:0.8333 93:0.8333 94:0.8333 95:0.8333 96:0.8333 97:0.8333 98:0.8333 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:1 107:1 108:1 109:1 110:1 111:1 112:1 113:1 114:1 115:1 116:1 117:1 118:1 119:1 120:0.9 121:0.9 122:0.7667 123:0.7333 124:0.7333 125:0.7333 126:0.7333 127:0.6667 128:0.65 129:0.6333 130:0.6333 131:0.6167 132:0.6167 133:0.5667 134:0.5667 135:0.6 136:0.5167 137:0.5 138:0.5 139:0.4833 140:0.4833 141:0.4667 142:0.43863158 143:0.43863158 144:0.43863158 145:0.43863158 146:0.43863158 147:0.43863158 148:0.43863158 149:0.43863158 150:0.43863158 151:0.43863158 152:0.43863158 153:0.50873684 154:0.52631579 155:0.52631579 156:0.52631579 157:0.51785542 158:0.4999625 159:0.51785542 160:0.94642838 161:1 162:1 163:1 164:1 165:1 166:1 167:1 168:1 169:1 170:1 171:1 172:1 173:1 174:1 175:1 176:1 177:0.94642838 178:0.85717806 179:0.85717806 180:0.80360644 181:0.80360644 182:0.80360644 183:0.80360644 184:0.80360644 185:0.80360644 186:0.83928514 187:0.80360644 188:0.80360644 189:0.80360644 190:0.80360644 191:0.80360644 192:0.87496384 193:0.78571352 194:0.53574834 195:0.55353412 196:0.53574834 197:0.53574834 198:0.55353412 199:0.53574834 200:0.39281926 201:0.39281926 202:0.39281926 203:0.39281926 204:0.39281926 205:0.39281926 206:0.37503348 207:0.39281926 208:0.37503348 209:0.37503348 210:0.37503348 211:0.37503348 212:0.37503348 213:0.37503348 214:0.37503348 215:0.37503348 216:0.37503348 217:0.37503348 218:0.37503348 219:0.37503348 220:0.39281926 221:0.4333 222:0.4333 223:0.45 224:0.5167 225:0.5333 226:0.5167 227:0.5333 228:0.5167 229:0.5333 230:0.5167 231:0.5333 232:0.55 233:0.55 234:0.5833 235:0.5833 236:0.5667 237:0.5833 238:0.6667 239:0.6667 240:0.6667 241:0.6667 242:0.6667 243:0.6833 244:0.6833 245:0.7167 246:0.7333 247:0.7667 248:0.7833 249:0.8167 250:0.85 251:0.9 252:0.95 253:1 254:1 255:1 256:1 257:1 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:1 287:1 288:1 289:1 290:1 291:1 292:1 293:0.8833 294:0.8833 295:0.8833 296:0.8833 297:0.85 298:0.8333 299:0.8167 300:0.8167 301:0.75 302:0.7333 303:0.7333 304:0.7333 305:0.75 306:0.7 307:0.6167 308:0.6 309:0.6 310:0.6 311:0.6 312:0.6 313:0.6 314:0.6 315:0.5167 316:0.5167 317:0.5 318:0.5 319:0.4833 320:0.4833 321:0.4667 322:0.4667 323:0.4667 324:0.45 325:0.45 326:0.45 327:0.4333 328:0.4333 329:0.4333 330:0.4333 331:0.4167 332:0.4167 333:0.4167 334:0.4167 335:0.4167 336:0.4 337:0.4 338:0.4 339:0.4 340:0.4 341:0.4 342:0.4 343:0.4 344:0.3833 345:0.3667 346:0.3667 347:0.3667 348:0.3667 349:0.3667 350:0.3667 351:0.3667 352:0.3667 353:0.3667 354:0.3667 355:0.3667 356:0.3667 357:0.3667 358:0.3667 359:0.3667 360:0.3667 +0.1148003145982911 1:0.3 2:0.3 3:0.3 4:0.3 5:0.3 6:0.3 7:0.3 8:0.3 9:0.3 10:0.3 11:0.3 12:0.3 13:0.3 14:0.3 15:0.3 16:0.3 17:0.3 18:0.3 19:0.3 20:0.3 21:0.3 22:0.3167 23:0.3167 24:0.3167 25:0.3167 26:0.3167 27:0.3167 28:0.3167 29:0.3167 30:0.3333 31:0.3333 32:0.3333 33:0.3333 34:0.3333 35:0.3333 36:0.35 37:0.35 38:0.35 39:0.35 40:0.3667 41:0.3833 42:0.3667 43:0.3833 44:0.3833 45:0.3833 46:0.4 47:0.4333 48:0.4333 49:0.4333 50:0.4333 51:0.4333 52:0.4333 53:0.5 54:0.5 55:0.5 56:0.9 57:0.7 58:0.7 59:0.7 60:0.7 61:0.7 62:0.7 63:0.7 64:0.7167 65:0.7 66:0.7833 67:0.7833 68:0.7833 69:0.7833 70:0.8167 71:0.8667 72:1 73:1 74:1 75:1 76:1 77:1 78:1 79:1 80:1 81:1 82:1 83:1 84:0.85 85:0.8333 86:0.6333 87:0.6333 88:0.6333 89:0.6333 90:0.6333 91:0.6333 92:0.6333 93:0.6333 94:0.6333 95:1 96:1 97:0.8667 98:0.8833 99:0.7667 100:0.7667 101:0.75 102:0.75 103:0.7167 104:0.7167 105:0.7167 106:0.6667 107:0.6667 108:0.65 109:0.6667 110:0.6667 111:0.65 112:0.6667 113:0.6667 114:0.65 115:0.6667 116:0.5 117:0.4833 118:0.4833 119:0.4833 120:0.4833 121:0.4833 122:0.4833 123:0.4833 124:0.4833 125:0.4833 126:0.4833 127:0.6833 128:0.6833 129:0.6667 130:0.6833 131:0.7 132:0.7 133:0.5833 134:0.5833 135:0.5833 136:0.5833 137:0.5833 138:0.5833 139:0.5833 140:0.5833 141:0.5833 142:0.56136842 143:0.56136842 144:0.57894737 145:0.57894737 146:0.57894737 147:0.59652632 148:0.614 149:0.63157895 150:0.64915789 151:0.73684211 152:0.73684211 153:0.75442105 154:0.77189474 155:0.77189474 156:0.87715789 157:0.87496384 158:0.89285676 159:0.91074968 160:0.94642838 161:1 162:1 163:1 164:1 165:1 166:1 167:1 168:1 169:1 170:1 171:1 172:1 173:1 174:1 175:1 176:1 177:1 178:1 179:1 180:1 181:1 182:1 183:1 184:0.82139222 185:0.82139222 186:0.82139222 187:0.82139222 188:0.7678206 189:0.62499866 190:0.57142704 191:0.48217672 192:0.44639088 193:0.39281926 194:0.39281926 195:0.39281926 196:0.39281926 197:0.39281926 198:0.39281926 199:0.39281926 200:0.39281926 201:0.39281926 202:0.39281926 203:0.39281926 204:0.39281926 205:0.78571352 206:0.78571352 207:0.26789024 208:0.26789024 209:0.24999732 210:0.24999732 211:0.26789024 212:0.24999732 213:0.24999732 214:0.26789024 215:0.24999732 216:0.24999732 217:0.26789024 218:0.24999732 219:0.24999732 220:0.26789024 221:0.3 222:0.3 223:0.4667 224:0.4333 225:0.4333 226:0.4333 227:0.4333 228:0.4333 229:0.4333 230:0.4333 231:0.4333 232:0.4333 233:0.4333 234:0.4333 235:0.4667 236:0.4667 237:0.4667 238:0.4667 239:0.45 240:0.4667 241:0.4833 242:0.4667 243:0.4833 244:0.4667 245:0.4833 246:0.4667 247:0.4667 248:0.4667 249:0.5167 250:0.4667 251:0.5167 252:0.5167 253:0.5167 254:0.5333 255:0.5667 256:0.5667 257:0.6333 258:0.6333 259:0.6333 260:0.7333 261:0.7667 262:0.4167 263:0.4167 264:0.4167 265:0.4167 266:0.4167 267:0.4167 268:0.4167 269:0.4167 270:0.4167 271:0.4167 272:0.4167 273:0.6 274:0.6333 275:0.6333 276:0.6333 277:0.65 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:0.9333 287:0.8667 288:0.8167 289:0.6667 290:0.6333 291:0.6333 292:0.6333 293:0.6333 294:0.6333 295:0.6333 296:0.6167 297:0.6167 298:0.6 299:0.6167 300:0.6167 301:0.55 302:0.55 303:0.55 304:0.55 305:0.55 306:0.55 307:0.55 308:0.55 309:0.55 310:0.55 311:0.7167 312:0.7 313:0.6833 314:0.7 315:0.6833 316:0.3667 317:0.3667 318:0.3667 319:0.3667 320:0.3667 321:0.3667 322:0.3667 323:0.35 324:0.35 325:0.35 326:0.35 327:0.3333 328:0.3333 329:0.3333 330:0.3333 331:0.3333 332:0.3333 333:0.3167 334:0.3167 335:0.3167 336:0.3167 337:0.3167 338:0.3167 339:0.3167 340:0.3167 341:0.3 342:0.3 343:0.3 344:0.3 345:0.3 346:0.3 347:0.3 348:0.3 349:0.3 350:0.3 351:0.3 352:0.3 353:0.3 354:0.3 355:0.3 356:0.3 357:0.3 358:0.3 359:0.3 360:0.3 +0.02954651890168256 1:0.3 2:0.3 3:0.3 4:0.3 5:0.3 6:0.3 7:0.3 8:0.3 9:0.3 10:0.3 11:0.3 12:0.3 13:0.3 14:0.3 15:0.3 16:0.3 17:0.3 18:0.3 19:0.3 20:0.3 21:0.3333 22:0.3333 23:0.3333 24:0.3333 25:0.3333 26:0.3333 27:0.3333 28:0.3333 29:0.35 30:0.35 31:0.35 32:0.3667 33:0.3667 34:0.3667 35:0.3667 36:0.3833 37:0.3833 38:0.3833 39:0.3833 40:0.3833 41:0.3833 42:0.4333 43:0.4333 44:0.4333 45:0.4333 46:0.4333 47:0.4667 48:0.4667 49:0.4667 50:0.85 51:0.85 52:0.8667 53:0.6667 54:0.6667 55:0.6667 56:0.6667 57:0.6667 58:0.6667 59:0.6667 60:0.6667 61:0.6833 62:0.75 63:0.75 64:0.75 65:0.7333 66:0.8833 67:0.8833 68:0.8833 69:1 70:1 71:1 72:1 73:1 74:1 75:1 76:1 77:1 78:1 79:1 80:1 81:0.8667 82:0.8667 83:0.6 84:0.6 85:0.6 86:0.6 87:0.6 88:0.6 89:0.6 90:0.6 91:0.6 92:1 93:0.85 94:0.8333 95:0.8333 96:0.8333 97:0.7167 98:0.7333 99:0.7167 100:0.7167 101:0.7167 102:0.65 103:0.65 104:0.65 105:0.65 106:0.6333 107:0.6333 108:0.6333 109:0.6333 110:0.6333 111:0.6333 112:0.6333 113:0.6333 114:0.45 115:0.45 116:0.45 117:0.45 118:0.45 119:0.45 120:0.45 121:0.45 122:0.45 123:0.45 124:0.45 125:0.45 126:0.45 127:0.6333 128:0.65 129:0.65 130:0.6667 131:0.6667 132:0.65 133:0.6667 134:0.55 135:0.55 136:0.55 137:0.55 138:0.55 139:0.55 140:0.55 141:0.55 142:0.52631579 143:0.52631579 144:0.54389474 145:0.54389474 146:0.57894737 147:0.57894737 148:0.57894737 149:0.59652632 150:0.614 151:0.66663158 152:0.68421053 153:0.71926316 154:0.73684211 155:0.75442105 156:0.78947368 157:0.85717806 158:0.85717806 159:0.87496384 160:0.89285676 161:1 162:1 163:1 164:1 165:1 166:1 167:1 168:1 169:1 170:1 171:1 172:1 173:1 174:1 175:1 176:1 177:1 178:1 179:1 180:1 181:1 182:1 183:1 184:0.82139222 185:0.82139222 186:0.82139222 187:0.82139222 188:0.58931996 189:0.58931996 190:0.58931996 191:0.58931996 192:0.57142704 193:0.48217672 194:0.4642838 195:0.41071218 196:0.39281926 197:0.41071218 198:0.39281926 199:0.41071218 200:0.39281926 201:0.41071218 202:0.39281926 203:0.41071218 204:0.39281926 205:0.41071218 206:0.41071218 207:0.41071218 208:0.57142704 209:0.57142704 210:0.57142704 211:0.26789024 212:0.26789024 213:0.26789024 214:0.26789024 215:0.26789024 216:0.26789024 217:0.26789024 218:0.26789024 219:0.26789024 220:0.26789024 221:0.3167 222:0.3167 223:0.3167 224:0.3167 225:0.3167 226:0.45 227:0.4833 228:0.45 229:0.4833 230:0.45 231:0.45 232:0.4833 233:0.4667 234:0.4667 235:0.4667 236:0.4667 237:0.4667 238:0.4667 239:0.4667 240:0.4667 241:0.4667 242:0.4667 243:0.5 244:0.4833 245:0.4833 246:0.4833 247:0.4833 248:0.4833 249:0.5 250:0.5 251:0.55 252:0.5667 253:0.5667 254:0.6 255:0.6 256:0.6 257:0.7167 258:0.7667 259:0.7833 260:1 261:0.4667 262:0.4667 263:0.4667 264:0.4667 265:0.4667 266:0.4667 267:0.4667 268:0.4667 269:0.4667 270:0.4667 271:0.6333 272:0.6333 273:0.6333 274:0.6333 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:0.9167 285:0.85 286:0.8167 287:0.8167 288:0.65 289:0.65 290:0.6333 291:0.65 292:0.6333 293:0.6333 294:0.6333 295:0.6333 296:0.6333 297:0.5833 298:0.5833 299:0.5833 300:0.5833 301:0.5833 302:0.5833 303:0.5833 304:0.5833 305:0.5833 306:0.5833 307:0.75 308:0.7333 309:0.7167 310:0.7167 311:0.4 312:0.4 313:0.3833 314:0.3833 315:0.3833 316:0.3667 317:0.3667 318:0.3667 319:0.3667 320:0.3667 321:0.3667 322:0.3667 323:0.35 324:0.35 325:0.35 326:0.35 327:0.3333 328:0.3333 329:0.3333 330:0.3333 331:0.3333 332:0.3333 333:0.3167 334:0.3167 335:0.3167 336:0.3167 337:0.3167 338:0.3167 339:0.3167 340:0.3167 341:0.3 342:0.3 343:0.3 344:0.3 345:0.3 346:0.3 347:0.3 348:0.3 349:0.3 350:0.3 351:0.3 352:0.3 353:0.3 354:0.3 355:0.3 356:0.3 357:0.3 358:0.3 359:0.3 360:0.3 +0.1695290082314663 1:0.3333 2:0.3333 3:0.3333 4:0.3333 5:0.3333 6:0.3333 7:0.3333 8:0.3333 9:0.3333 10:0.3333 11:0.35 12:0.35 13:0.35 14:0.35 15:0.35 16:0.35 17:0.35 18:0.35 19:0.35 20:0.3667 21:0.3667 22:0.3667 23:0.3667 24:0.3667 25:0.3667 26:0.3667 27:0.3667 28:0.3833 29:0.4 30:0.4 31:0.4 32:0.4167 33:0.4167 34:0.4167 35:0.4167 36:0.4333 37:0.4333 38:0.4333 39:0.4333 40:0.7833 41:0.7833 42:0.8333 43:0.8333 44:0.65 45:0.6333 46:0.65 47:0.65 48:0.6333 49:0.65 50:0.65 51:0.6333 52:0.65 53:0.7167 54:0.7167 55:0.7167 56:0.7167 57:0.7333 58:0.7167 59:0.7333 60:0.8167 61:0.8167 62:0.8833 63:0.9 64:1 65:1 66:1 67:1 68:1 69:1 70:1 71:1 72:1 73:1 74:1 75:1 76:1 77:0.5333 78:0.5333 79:0.5333 80:0.5333 81:0.5333 82:0.5333 83:0.5333 84:0.5333 85:0.5333 86:0.5333 87:1 88:1 89:1 90:1 91:1 92:1 93:0.8667 94:0.65 95:0.65 96:0.65 97:0.65 98:0.65 99:0.65 100:0.5833 101:0.5833 102:0.5833 103:0.5833 104:0.5833 105:0.5833 106:0.5833 107:0.5667 108:0.55 109:0.55 110:0.3833 111:0.3833 112:0.3833 113:0.3833 114:0.3833 115:0.3833 116:0.3833 117:0.3833 118:0.3833 119:0.3833 120:0.3833 121:0.3833 122:0.3833 123:0.3833 124:0.3833 125:0.5833 126:0.5833 127:0.6 128:0.6 129:0.5 130:0.5 131:0.5 132:0.5 133:0.5 134:0.5 135:0.5 136:0.5 137:0.5 138:0.5 139:0.5 140:0.5 141:0.5167 142:0.49126316 143:0.49126316 144:0.49126316 145:0.50873684 146:0.50873684 147:0.52631579 148:0.54389474 149:0.59652632 150:0.614 151:0.63157895 152:0.64915789 153:0.68421053 154:0.70178947 155:0.82452632 156:0.84210526 157:0.82139222 158:0.85717806 159:1 160:1 161:1 162:1 163:1 164:1 165:1 166:1 167:1 168:1 169:1 170:1 171:1 172:1 173:1 174:1 175:1 176:1 177:1 178:1 179:1 180:1 181:1 182:1 183:1 184:0.9643213 185:0.83928514 186:0.83928514 187:0.82139222 188:0.82139222 189:0.78571352 190:0.55353412 191:0.55353412 192:0.55353412 193:0.55353412 194:0.55353412 195:0.48217672 196:0.4999625 197:0.4999625 198:0.4999625 199:0.41071218 200:0.41071218 201:0.41071218 202:0.41071218 203:0.41071218 204:0.41071218 205:0.41071218 206:0.41071218 207:0.41071218 208:0.41071218 209:0.41071218 210:0.80360644 211:0.51785542 212:0.51785542 213:0.51785542 214:0.30356894 215:0.30356894 216:0.30356894 217:0.30356894 218:0.30356894 219:0.30356894 220:0.30356894 221:0.35 222:0.35 223:0.35 224:0.35 225:0.35 226:0.35 227:0.35 228:0.35 229:0.35 230:0.35 231:0.5167 232:0.5167 233:0.5 234:0.5 235:0.5 236:0.5 237:0.5 238:0.5 239:0.5 240:0.5 241:0.5 242:0.5 243:0.5333 244:0.5167 245:0.5333 246:0.5333 247:0.5333 248:0.5333 249:0.5333 250:0.5333 251:0.6 252:0.6 253:0.6167 254:0.65 255:0.75 256:0.8 257:0.8333 258:0.85 259:0.5 260:0.5 261:0.5 262:0.5 263:0.5 264:0.5 265:0.5 266:0.5 267:0.5 268:0.5 269:0.5 270:0.5 271:0.6833 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:0.9333 282:0.9167 283:0.8667 284:0.85 285:0.8 286:0.6667 287:0.6667 288:0.6667 289:0.6667 290:0.6667 291:0.6667 292:0.6667 293:0.65 294:0.65 295:0.65 296:0.65 297:0.65 298:0.65 299:0.65 300:0.65 301:0.65 302:0.8333 303:0.8 304:0.7833 305:0.7667 306:0.45 307:0.45 308:0.4333 309:0.4167 310:0.4167 311:0.4 312:0.4 313:0.4167 314:0.4 315:0.4 316:0.4 317:0.3833 318:0.3833 319:0.3833 320:0.3667 321:0.3833 322:0.3667 323:0.3833 324:0.3667 325:0.3667 326:0.3667 327:0.3667 328:0.35 329:0.35 330:0.35 331:0.35 332:0.35 333:0.35 334:0.3333 335:0.3333 336:0.3333 337:0.3333 338:0.3333 339:0.3333 340:0.3333 341:0.3333 342:0.3167 343:0.3333 344:0.3333 345:0.3167 346:0.3333 347:0.3333 348:0.3333 349:0.3333 350:0.3333 351:0.3333 352:0.3333 353:0.3167 354:0.3333 355:0.3333 356:0.3333 357:0.3333 358:0.3333 359:0.3333 360:0.3333 +0.8249243289866591 1:0.3167 2:0.3167 3:0.3167 4:0.3167 5:0.3167 6:0.4167 7:0.4167 8:0.4167 9:0.4167 10:0.4167 11:0.4167 12:0.4167 13:0.4167 14:0.4333 15:0.5 16:0.5167 17:1 18:1 19:1 20:1 21:1 22:1 23:1 24:1 25:1 26:0.9333 27:0.85 28:0.8333 29:0.8 30:0.7667 31:0.75 32:0.75 33:0.7667 34:0.75 35:0.75 36:0.75 37:1 38:0.7 39:0.7 40:0.65 41:0.6333 42:0.65 43:0.5667 44:0.5667 45:0.65 46:0.5667 47:0.6333 48:0.5667 49:0.5667 50:0.5333 51:0.5333 52:0.4833 53:0.4833 54:0.4833 55:0.4667 56:0.4667 57:0.4667 58:0.45 59:0.45 60:0.45 61:0.45 62:0.4333 63:0.4333 64:0.4333 65:0.4333 66:0.4333 67:0.4167 68:0.4167 69:0.4167 70:0.4167 71:0.4167 72:0.4167 73:0.4167 74:0.4167 75:0.4167 76:0.4167 77:0.4167 78:0.4167 79:0.4167 80:0.4167 81:0.4167 82:0.4167 83:0.4167 84:0.4167 85:0.4167 86:0.4167 87:0.4167 88:0.4333 89:0.4333 90:0.4333 91:0.4333 92:0.4333 93:0.4333 94:0.4333 95:0.4333 96:0.4333 97:0.6333 98:0.6333 99:0.65 100:0.6333 101:0.45 102:0.45 103:0.45 104:0.45 105:0.45 106:0.4333 107:0.45 108:0.4333 109:0.45 110:0.4333 111:0.45 112:0.4333 113:0.45 114:0.4333 115:0.45 116:0.45 117:0.45 118:0.45 119:0.45 120:0.4667 121:0.4667 122:0.4667 123:0.4667 124:0.4833 125:0.4833 126:0.4833 127:0.5 128:0.5 129:0.8333 130:0.6167 131:0.6 132:0.6333 133:0.6167 134:0.6 135:0.6333 136:0.6 137:0.6333 138:0.6333 139:0.7167 140:0.6833 141:0.6833 142:0.84210526 143:0.77189474 144:0.77189474 145:0.77189474 146:0.84210526 147:0.84210526 148:1 149:1 150:1 151:1 152:1 153:1 154:1 155:1 156:1 157:0.35714056 158:0.32146186 159:0.32146186 160:0.32146186 161:0.32146186 162:0.32146186 163:0.21431862 164:0.21431862 165:0.21431862 166:0.21431862 167:0.21431862 168:0.21431862 169:0.21431862 170:0.21431862 171:0.21431862 172:0.21431862 173:0.21431862 174:0.21431862 175:0.160747 176:0.160747 177:0.160747 178:0.160747 179:0.160747 180:0.160747 181:0.160747 182:0.160747 183:0.160747 184:0.160747 185:0.160747 186:0.160747 187:0.160747 188:0.160747 189:0.10717538 190:0.10717538 191:0.12496116 192:0.12496116 193:0.12496116 194:0.12496116 195:0.12496116 196:0.089282462 197:0.089282462 198:0.089282462 199:0.089282462 200:0.089282462 201:0.089282462 202:0.089282462 203:0.089282462 204:0.089282462 205:0.089282462 206:0.089282462 207:0.089282462 208:0.089282462 209:0.089282462 210:0.089282462 211:0.089282462 212:0.089282462 213:0.10717538 214:0.089282462 215:0.089282462 216:0.089282462 217:0.089282462 218:0.089282462 219:0.089282462 220:0.089282462 221:0.15 222:0.15 223:0.15 224:0.15 225:0.1667 226:0.1667 227:0.1667 228:0.1667 229:0.1667 230:0.1667 231:0.1667 232:0.1667 233:0.1667 234:0.1667 235:0.1667 236:0.1667 237:0.1667 238:0.1667 239:0.1667 240:0.1667 241:0.1667 242:0.1667 243:0.1667 244:0.1667 245:0.1667 246:0.2 247:0.2 248:0.2 249:0.2 250:0.2 251:0.2333 252:0.2333 253:0.2333 254:0.2333 255:0.2333 256:0.2333 257:0.2333 258:0.25 259:0.3833 260:0.3833 261:0.4333 262:0.4333 263:0.4333 264:0.4667 265:0.55 266:0.5667 267:0.5833 268:0.8833 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:0.9 282:0.8333 283:0.8333 284:0.85 285:0.7833 286:0.6167 287:0.6167 288:0.5333 289:0.5167 290:0.5167 291:0.5167 292:0.4333 293:0.4333 294:0.4333 295:0.4333 296:0.4167 297:0.4 298:0.3833 299:0.3 300:0.3 301:0.3167 302:0.3 303:0.3 304:0.3167 305:0.3 306:0.3 307:0.3 308:0.3 309:0.3 310:0.3 311:0.3 312:0.3 313:0.3 314:0.3 315:0.3 316:0.2833 317:0.2833 318:0.3 319:0.2833 320:0.2833 321:0.2833 322:0.2833 323:0.2667 324:0.2667 325:0.2833 326:0.2833 327:0.2667 328:0.2833 329:0.2833 330:0.2667 331:0.2667 332:0.4 333:0.2667 334:0.2667 335:0.2833 336:0.2667 337:0.2667 338:0.2833 339:0.2667 340:0.2833 341:0.2833 342:0.2833 343:0.2833 344:0.2833 345:0.2833 346:0.2833 347:0.2833 348:0.2833 349:0.2833 350:0.2833 351:0.2833 352:0.2833 353:0.2833 354:0.2833 355:0.2833 356:0.2833 357:0.2833 358:0.2833 359:0.2833 360:0.3167 +0.01963656411216134 1:1 2:1 3:1 4:1 5:1 6:1 7:1 8:1 9:1 10:1 11:1 12:0.7333 13:0.6 14:0.55 15:0.5167 16:0.5 17:0.5 18:0.5 19:0.45 20:0.45 21:0.4167 22:0.4167 23:0.3833 24:0.3833 25:0.35 26:0.35 27:0.35 28:0.35 29:0.35 30:0.35 31:0.35 32:0.3 33:0.3 34:0.3 35:0.2833 36:0.2833 37:0.3 38:0.2833 39:0.2833 40:0.3 41:0.2833 42:0.2833 43:0.2333 44:0.2333 45:0.2333 46:0.2333 47:0.2333 48:0.2 49:0.2 50:0.2 51:0.2 52:0.1833 53:0.1833 54:0.1833 55:0.1833 56:0.1833 57:0.1833 58:0.1833 59:0.1833 60:0.1833 61:0.1667 62:0.1667 63:0.1667 64:0.1667 65:0.1667 66:0.1667 67:0.1667 68:0.1667 69:0.1667 70:0.1667 71:0.1667 72:0.1667 73:0.1667 74:0.1667 75:0.1667 76:0.1667 77:0.1667 78:0.1667 79:0.1667 80:0.1667 81:0.1667 82:0.1667 83:0.1667 84:0.1667 85:0.1667 86:0.1667 87:0.1667 88:0.1667 89:0.1667 90:0.1667 91:0.1667 92:0.1667 93:0.1667 94:0.1667 95:0.1667 96:0.1667 97:0.1667 98:0.1667 99:0.1667 100:0.1667 101:0.1667 102:0.1667 103:0.1667 104:0.1667 105:0.1667 106:0.1667 107:0.1667 108:0.1667 109:0.1667 110:0.1667 111:0.1667 112:0.1667 113:0.1667 114:0.1667 115:0.1667 116:0.1667 117:0.1667 118:0.1667 119:0.1667 120:0.1667 121:0.1667 122:0.1833 123:0.1833 124:0.1833 125:0.1833 126:0.1833 127:0.1833 128:0.1833 129:0.1833 130:0.1833 131:0.2 132:0.2 133:0.2 134:0.2 135:0.2 136:0.2 137:0.25 138:0.2833 139:0.2833 140:0.2833 141:0.2833 142:0.24557895 143:0.24557895 144:0.24557895 145:0.22810526 146:0.24557895 147:0.24557895 148:0.26315789 149:0.26315789 150:0.26315789 151:0.28073684 152:0.31578947 153:0.29821053 154:0.31578947 155:0.33336842 156:0.33336842 157:0.33924764 158:0.35714056 159:0.51785542 160:0.51785542 161:0.51785542 162:0.58931996 163:1 164:1 165:1 166:1 167:1 168:1 169:1 170:1 171:1 172:1 173:1 174:1 175:1 176:1 177:1 178:1 179:1 180:0.91074968 181:0.91074968 182:0.7678206 183:0.7678206 184:0.51785542 185:0.51785542 186:0.51785542 187:0.51785542 188:0.44639088 189:0.41071218 190:0.41071218 191:0.39281926 192:0.39281926 193:0.39281926 194:0.39281926 195:0.39281926 196:0.39281926 197:0.39281926 198:0.39281926 199:0.39281926 200:0.39281926 201:0.39281926 202:0.39281926 203:0.39281926 204:0.33924764 205:0.33924764 206:0.33924764 207:0.33924764 208:0.33924764 209:0.33924764 210:0.28567602 211:0.28567602 212:0.28567602 213:0.28567602 214:0.28567602 215:0.28567602 216:0.28567602 217:0.28567602 218:0.28567602 219:0.28567602 220:0.28567602 221:0.3333 222:0.3333 223:0.3667 224:0.3667 225:0.35 226:0.35 227:0.35 228:0.35 229:0.35 230:0.35 231:0.35 232:0.35 233:0.35 234:0.35 235:0.35 236:0.35 237:0.35 238:0.35 239:0.3833 240:0.3833 241:0.3833 242:0.3833 243:0.3833 244:0.3833 245:0.3833 246:0.3833 247:0.3833 248:0.4 249:0.45 250:0.4 251:0.45 252:0.45 253:0.45 254:0.45 255:0.45 256:0.4833 257:0.5833 258:0.6333 259:0.6667 260:0.6667 261:0.7167 262:0.8 263:0.8 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:0.75 279:0.75 280:0.6833 281:0.5167 282:0.5 283:0.5 284:0.5 285:0.4667 286:0.4833 287:0.45 288:0.45 289:0.45 290:0.45 291:0.4167 292:0.4167 293:0.4167 294:0.4 295:0.4 296:0.4 297:0.4 298:0.3833 299:0.3833 300:0.3833 301:0.3833 302:0.3833 303:0.3833 304:0.3833 305:0.3667 306:0.3667 307:0.3833 308:0.3667 309:0.3667 310:0.3833 311:0.3667 312:0.3667 313:0.3667 314:0.3667 315:0.3667 316:0.3667 317:0.3667 318:0.3667 319:0.6167 320:0.3667 321:0.3667 322:0.3667 323:0.3667 324:0.6167 325:0.9167 326:0.95 327:0.4 328:0.4 329:0.4 330:0.3833 331:0.4 332:0.4 333:0.4 334:0.4 335:0.3833 336:0.4 337:0.3833 338:0.4 339:0.3833 340:0.4167 341:0.4167 342:0.4167 343:0.4167 344:0.4167 345:0.4667 346:0.4667 347:0.4667 348:0.4667 349:0.4667 350:0.6167 351:0.6167 352:0.6167 353:0.6833 354:0.85 355:1 356:1 357:1 358:1 359:1 360:1 +0.121763739226158 1:0.4333 2:0.4333 3:0.4333 4:0.4333 5:1 6:1 7:1 8:1 9:1 10:1 11:1 12:1 13:1 14:1 15:1 16:1 17:0.8667 18:0.8667 19:0.8667 20:0.8667 21:0.75 22:0.7333 23:0.6833 24:0.6167 25:0.6 26:0.5667 27:0.55 28:0.5333 29:0.5167 30:0.5167 31:0.5167 32:0.5 33:0.5167 34:0.5167 35:0.5167 36:0.5167 37:0.45 38:0.45 39:0.45 40:0.45 41:0.45 42:0.4167 43:0.4167 44:0.4167 45:0.4167 46:0.4167 47:0.4167 48:0.4167 49:0.4167 50:0.4167 51:0.3833 52:0.3333 53:0.3333 54:0.3333 55:0.3333 56:0.3167 57:0.3167 58:0.3167 59:0.3167 60:0.3167 61:0.3167 62:0.3 63:0.3 64:0.3 65:0.3 66:0.3 67:0.3 68:0.3 69:0.3 70:0.2833 71:0.3 72:0.3 73:0.3 74:0.2833 75:0.2833 76:0.2833 77:0.2833 78:0.2833 79:0.2833 80:0.2833 81:0.2833 82:0.2833 83:0.2833 84:0.2833 85:0.2833 86:0.2833 87:0.2833 88:0.2833 89:0.2833 90:0.3 91:0.3 92:0.3 93:0.3 94:0.3 95:0.3 96:0.3167 97:0.3167 98:0.3167 99:0.3167 100:0.3167 101:0.3167 102:0.3167 103:0.3167 104:0.3167 105:0.3167 106:0.3167 107:0.3167 108:0.3167 109:0.3167 110:0.3167 111:0.3167 112:0.3167 113:0.3167 114:0.3167 115:0.3167 116:0.3167 117:0.3167 118:0.3167 119:0.3167 120:0.3333 121:0.3333 122:0.3333 123:0.3333 124:0.3333 125:0.3333 126:0.35 127:0.35 128:0.35 129:0.35 130:0.4333 131:0.45 132:0.45 133:0.45 134:0.45 135:0.45 136:0.45 137:0.45 138:0.45 139:0.4333 140:0.45 141:0.45 142:0.43863158 143:0.45610526 144:0.45610526 145:0.50873684 146:0.50873684 147:0.63157895 148:0.63157895 149:0.614 150:0.63157895 151:0.66663158 152:0.66663158 153:0.70178947 154:0.70178947 155:0.71926316 156:0.75442105 157:1 158:1 159:1 160:1 161:1 162:1 163:1 164:1 165:1 166:1 167:1 168:1 169:1 170:1 171:1 172:0.51785542 173:0.51785542 174:0.41071218 175:0.41071218 176:0.39281926 177:0.39281926 178:0.39281926 179:0.39281926 180:0.39281926 181:0.39281926 182:0.39281926 183:0.28567602 184:0.28567602 185:0.28567602 186:0.28567602 187:0.28567602 188:0.28567602 189:0.28567602 190:0.28567602 191:0.28567602 192:0.28567602 193:0.2321044 194:0.2321044 195:0.2321044 196:0.2321044 197:0.21431862 198:0.21431862 199:0.21431862 200:0.2321044 201:0.21431862 202:0.21431862 203:0.2321044 204:0.21431862 205:0.21431862 206:0.21431862 207:0.21431862 208:0.21431862 209:0.21431862 210:0.24999732 211:0.21431862 212:0.21431862 213:0.2321044 214:0.2321044 215:0.21431862 216:0.2321044 217:0.2321044 218:0.21431862 219:0.21431862 220:0.2321044 221:0.2833 222:0.2833 223:0.2833 224:0.2833 225:0.2833 226:0.2833 227:0.3 228:0.3 229:0.3 230:0.3 231:0.3 232:0.3 233:0.3 234:0.3 235:0.3 236:0.3 237:0.3 238:0.3 239:0.3 240:0.3 241:0.35 242:0.35 243:0.3667 244:0.35 245:0.3667 246:0.3667 247:0.3833 248:0.45 249:0.45 250:0.45 251:0.45 252:0.45 253:0.45 254:0.5333 255:0.5667 256:0.5667 257:0.5833 258:0.6333 259:0.65 260:0.65 261:0.7167 262:0.9333 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:0.9333 277:0.6 278:0.6 279:0.6 280:0.6 281:0.5333 282:0.3833 283:0.3833 284:0.3833 285:0.3833 286:0.3833 287:0.3833 288:0.3667 289:0.3667 290:0.3667 291:0.3167 292:0.3167 293:0.3167 294:0.3167 295:0.3 296:0.3167 297:0.3167 298:0.3167 299:0.3167 300:0.3167 301:0.3167 302:0.3167 303:0.3167 304:0.3167 305:0.3167 306:0.3167 307:0.3 308:0.3167 309:0.2833 310:0.2833 311:0.2833 312:0.2833 313:0.2833 314:0.3167 315:0.2833 316:0.2833 317:0.2833 318:0.4 319:0.2833 320:0.2833 321:0.2833 322:0.2833 323:0.2833 324:0.2833 325:0.2833 326:0.2833 327:0.5167 328:0.2833 329:0.2833 330:0.5167 331:0.2833 332:0.2833 333:0.5167 334:0.2833 335:0.2833 336:0.2833 337:0.2833 338:0.2833 339:0.2833 340:0.6167 341:0.6167 342:0.7 343:0.7 344:0.3333 345:0.3333 346:0.3333 347:0.3333 348:0.3333 349:0.3333 350:0.3333 351:0.3333 352:0.3333 353:0.3333 354:0.3333 355:0.3333 356:0.3333 357:0.35 358:0.3667 359:0.3667 360:0.4333 +0.02385970978229091 1:0.3333 2:0.3333 3:0.3333 4:0.3333 5:0.3333 6:0.3333 7:0.3333 8:0.3667 9:0.3667 10:0.4167 11:0.4167 12:0.4167 13:0.4167 14:0.45 15:0.45 16:0.45 17:0.75 18:0.75 19:0.7667 20:0.7667 21:1 22:1 23:1 24:1 25:1 26:1 27:1 28:1 29:1 30:1 31:1 32:1 33:1 34:1 35:1 36:1 37:1 38:1 39:1 40:1 41:1 42:1 43:1 44:1 45:1 46:0.4833 47:0.4833 48:0.4833 49:0.4833 50:0.4833 51:0.4833 52:0.4833 53:0.4833 54:0.4833 55:0.4833 56:0.4833 57:0.6167 58:0.6167 59:0.6167 60:0.6167 61:0.6 62:0.6167 63:0.6167 64:0.25 65:0.25 66:0.25 67:0.2333 68:0.2333 69:0.2333 70:0.2333 71:0.25 72:0.2333 73:0.2333 74:0.25 75:0.25 76:0.25 77:0.2333 78:0.25 79:0.25 80:0.2333 81:0.2333 82:0.2333 83:0.2333 84:0.2333 85:0.2333 86:0.2833 87:0.2833 88:0.2833 89:0.2833 90:0.2833 91:0.2833 92:0.2833 93:0.2833 94:0.2833 95:0.2833 96:0.3833 97:0.3833 98:0.3667 99:0.3833 100:0.3667 101:0.3833 102:0.3833 103:0.3667 104:0.3667 105:0.3667 106:0.3667 107:0.3667 108:0.3667 109:0.3667 110:0.3667 111:0.3667 112:0.3667 113:0.3667 114:0.3667 115:0.3833 116:0.3833 117:0.2833 118:0.2833 119:0.2833 120:0.2833 121:0.2833 122:0.2833 123:0.2833 124:0.2833 125:0.2833 126:0.2833 127:0.2833 128:0.2833 129:0.2833 130:0.2833 131:0.2833 132:0.2833 133:0.2333 134:0.2333 135:0.25 136:0.25 137:0.25 138:0.25 139:0.25 140:0.25 141:0.25 142:0.21052632 143:0.21052632 144:0.21052632 145:0.19294737 146:0.21052632 147:0.21052632 148:0.21052632 149:0.19294737 150:0.21052632 151:0.21052632 152:0.21052632 153:0.36842105 154:0.31578947 155:0.386 156:0.36842105 157:0.37503348 158:0.35714056 159:0.4999625 160:0.35714056 161:0.4999625 162:0.4999625 163:0.4999625 164:0.4999625 165:0.4999625 166:0.53574834 167:0.55353412 168:0.53574834 169:0.55353412 170:0.55353412 171:0.57142704 172:0.57142704 173:0.58931996 174:0.58931996 175:0.58931996 176:0.58931996 177:0.58931996 178:0.64289158 179:0.64289158 180:0.64289158 181:0.64289158 182:0.71424898 183:0.85717806 184:1 185:1 186:1 187:1 188:1 189:1 190:1 191:1 192:1 193:1 194:1 195:1 196:1 197:1 198:1 199:1 200:1 201:1 202:1 203:0.98210708 204:0.98210708 205:0.83928514 206:0.66067736 207:0.64289158 208:0.4999625 209:0.48217672 210:0.48217672 211:0.48217672 212:0.35714056 213:0.35714056 214:0.35714056 215:0.26789024 216:0.24999732 217:0.24999732 218:0.24999732 219:0.2321044 220:0.1964257 221:0.2167 222:0.2167 223:0.2167 224:0.2167 225:0.2167 226:0.2 227:0.2 228:0.2167 229:0.2167 230:0.2167 231:0.2 232:0.2167 233:0.2167 234:0.2167 235:0.2 236:0.2167 237:0.2167 238:0.2167 239:0.2167 240:0.2 241:0.2167 242:0.2167 243:0.2 244:0.2 245:0.25 246:0.25 247:0.25 248:0.25 249:0.2333 250:0.25 251:0.25 252:0.2333 253:0.2333 254:0.25 255:0.3833 256:0.8 257:0.3833 258:0.3833 259:0.3833 260:0.3833 261:0.3833 262:0.3833 263:0.3833 264:0.3833 265:0.3833 266:0.3833 267:0.3833 268:0.3833 269:0.3833 270:0.4833 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:0.9833 284:0.8167 285:0.8167 286:0.7667 287:0.7667 288:0.7167 289:0.65 290:0.5667 291:0.55 292:0.4833 293:0.4833 294:0.4833 295:0.4667 296:0.4167 297:0.4 298:0.4167 299:0.4 300:0.4167 301:0.3833 302:0.3667 303:0.3667 304:0.35 305:0.3167 306:0.3167 307:0.3167 308:0.3167 309:0.3167 310:0.3167 311:0.3167 312:0.3167 313:0.3167 314:0.3167 315:0.3167 316:0.3167 317:0.3167 318:0.3167 319:0.3833 320:0.3833 321:0.3833 322:0.3833 323:0.5333 324:0.5333 325:0.5333 326:0.5333 327:0.5167 328:0.5167 329:0.4833 330:0.4833 331:0.5 332:0.4833 333:0.5 334:0.4833 335:0.4833 336:0.4667 337:0.4667 338:0.45 339:0.45 340:0.3167 341:0.2833 342:0.2833 343:0.2833 344:0.2833 345:0.2833 346:0.2833 347:0.3 348:0.2833 349:0.2833 350:0.3 351:0.2833 352:0.2833 353:0.2833 354:0.2833 355:0.2833 356:0.2833 357:0.3333 358:0.3333 359:0.3333 360:0.3333 +0.1020957440900423 1:0.3167 2:0.3167 3:0.3167 4:0.3167 5:0.3167 6:0.3167 7:0.3167 8:0.3167 9:0.35 10:0.35 11:0.4 12:0.4 13:0.4 14:0.4333 15:0.4333 16:0.4333 17:0.7333 18:0.7333 19:0.75 20:0.75 21:1 22:1 23:1 24:1 25:1 26:1 27:1 28:1 29:1 30:1 31:1 32:1 33:1 34:1 35:1 36:1 37:1 38:1 39:1 40:1 41:1 42:1 43:1 44:1 45:1 46:1 47:0.4833 48:0.4667 49:0.4667 50:0.4667 51:0.4667 52:0.4667 53:0.4667 54:0.4667 55:0.4667 56:0.4667 57:0.4667 58:0.4833 59:0.4833 60:0.6 61:0.6 62:0.6 63:0.6 64:0.6 65:0.6 66:0.6 67:0.2333 68:0.2333 69:0.2333 70:0.2333 71:0.2333 72:0.2333 73:0.2333 74:0.2333 75:0.2333 76:0.2333 77:0.2333 78:0.2333 79:0.2333 80:0.2333 81:0.2333 82:0.2333 83:0.2333 84:0.2333 85:0.2333 86:0.2333 87:0.2333 88:0.2333 89:0.2333 90:0.2833 91:0.2833 92:0.2833 93:0.2833 94:0.2833 95:0.2833 96:0.2833 97:0.2833 98:0.2833 99:0.3833 100:0.3833 101:0.3833 102:0.3833 103:0.3833 104:0.3833 105:0.3667 106:0.3667 107:0.3667 108:0.3667 109:0.3667 110:0.3833 111:0.3667 112:0.3833 113:0.3667 114:0.3667 115:0.3667 116:0.3667 117:0.3667 118:0.4 119:0.4 120:0.3833 121:0.2833 122:0.3 123:0.3 124:0.2833 125:0.2833 126:0.2833 127:0.2833 128:0.2833 129:0.2833 130:0.2833 131:0.2833 132:0.2833 133:0.2833 134:0.2833 135:0.25 136:0.25 137:0.25 138:0.2667 139:0.25 140:0.25 141:0.25 142:0.22810526 143:0.21052632 144:0.21052632 145:0.22810526 146:0.21052632 147:0.21052632 148:0.21052632 149:0.21052632 150:0.21052632 151:0.21052632 152:0.21052632 153:0.22810526 154:0.33336842 155:0.33336842 156:0.33336842 157:0.37503348 158:0.37503348 159:0.37503348 160:0.37503348 161:0.37503348 162:0.4999625 163:0.51785542 164:0.51785542 165:0.51785542 166:0.51785542 167:0.55353412 168:0.55353412 169:0.57142704 170:0.57142704 171:0.58931996 172:0.58931996 173:0.60710574 174:0.60710574 175:0.60710574 176:0.60710574 177:0.60710574 178:0.66067736 179:0.66067736 180:0.66067736 181:0.66067736 182:0.7321419 183:0.87496384 184:1 185:1 186:1 187:1 188:1 189:1 190:1 191:1 192:1 193:1 194:1 195:1 196:1 197:1 198:1 199:1 200:1 201:1 202:1 203:1 204:0.85717806 205:0.85717806 206:0.66067736 207:0.66067736 208:0.4999625 209:0.4999625 210:0.4999625 211:0.37503348 212:0.37503348 213:0.37503348 214:0.26789024 215:0.26789024 216:0.24999732 217:0.24999732 218:0.21431862 219:0.21431862 220:0.17853278 221:0.2167 222:0.2167 223:0.2167 224:0.2167 225:0.2167 226:0.2167 227:0.2167 228:0.2167 229:0.2167 230:0.2167 231:0.2167 232:0.2167 233:0.2167 234:0.2167 235:0.2167 236:0.2167 237:0.2167 238:0.2167 239:0.2167 240:0.2167 241:0.2167 242:0.2167 243:0.25 244:0.25 245:0.25 246:0.25 247:0.25 248:0.25 249:0.25 250:0.25 251:0.2667 252:0.4 253:0.4 254:0.4 255:0.4 256:0.3833 257:0.3833 258:0.3833 259:0.3833 260:0.3833 261:0.3833 262:0.3833 263:0.3833 264:0.3833 265:0.3833 266:0.3833 267:0.3833 268:0.4833 269:0.8167 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:0.9667 283:0.8 284:0.7667 285:0.7667 286:0.7667 287:0.6333 288:0.55 289:0.55 290:0.4833 291:0.4667 292:0.4833 293:0.4167 294:0.4 295:0.4 296:0.4 297:0.4 298:0.3833 299:0.3667 300:0.3667 301:0.35 302:0.3 303:0.3 304:0.3 305:0.3 306:0.3 307:0.3 308:0.3 309:0.3 310:0.3 311:0.3 312:0.3 313:0.3 314:0.3 315:0.3 316:0.3 317:0.3 318:0.3833 319:0.3667 320:0.3667 321:0.5167 322:0.5167 323:0.5167 324:0.5167 325:0.5167 326:0.5 327:0.5 328:0.5 329:0.4667 330:0.4833 331:0.4667 332:0.4833 333:0.4667 334:0.4667 335:0.45 336:0.45 337:0.45 338:0.4333 339:0.3 340:0.2667 341:0.2667 342:0.2667 343:0.2833 344:0.2667 345:0.2667 346:0.2833 347:0.2833 348:0.2667 349:0.2667 350:0.2833 351:0.2667 352:0.2667 353:0.2667 354:0.2667 355:0.2667 356:0.2833 357:0.3167 358:0.3167 359:0.3167 360:0.3167 +0.008936277474449287 1:0.4333 2:0.4333 3:0.4333 4:0.4333 5:0.4667 6:0.4667 7:0.4667 8:0.5333 9:0.6 10:0.6 11:0.6 12:0.6 13:0.7667 14:0.7667 15:0.7667 16:0.7667 17:0.9333 18:1 19:1 20:1 21:1 22:1 23:1 24:1 25:1 26:1 27:1 28:1 29:1 30:1 31:1 32:1 33:1 34:1 35:1 36:1 37:1 38:1 39:1 40:0.4333 41:0.45 42:0.45 43:0.45 44:0.45 45:0.45 46:0.45 47:0.45 48:0.45 49:0.4333 50:0.45 51:0.3167 52:0.3167 53:0.3167 54:0.2 55:0.1833 56:0.1833 57:0.1833 58:0.1833 59:0.1833 60:0.1833 61:0.1833 62:0.1833 63:0.1833 64:0.1833 65:0.1833 66:0.1833 67:0.1833 68:0.1833 69:0.1833 70:0.1833 71:0.1833 72:0.1833 73:0.1833 74:0.1833 75:0.1833 76:0.1833 77:0.1833 78:0.1833 79:0.2 80:0.2167 81:0.2167 82:0.2167 83:0.2167 84:0.2167 85:0.2167 86:0.2167 87:0.2167 88:0.2167 89:0.2 90:0.2 91:0.2 92:0.2 93:0.2 94:0.2 95:0.2 96:0.2 97:0.2 98:0.2 99:0.2 100:0.2 101:0.2 102:0.2 103:0.2 104:0.2 105:0.2 106:0.2 107:0.2 108:0.2 109:0.2 110:0.2 111:0.3 112:0.3167 113:0.3167 114:0.3167 115:0.3167 116:0.3167 117:0.3167 118:0.3167 119:0.3167 120:0.3167 121:0.3167 122:0.3167 123:0.3167 124:0.3167 125:0.3167 126:0.3167 127:0.3167 128:0.3333 129:0.3333 130:0.3167 131:0.3333 132:0.3333 133:0.3167 134:0.3333 135:0.3333 136:0.3167 137:0.3333 138:0.3333 139:0.3333 140:0.35 141:0.25 142:0.14031579 143:0.14031579 144:0.14031579 145:0.15789474 146:0.15789474 147:0.14031579 148:0.14031579 149:0.14031579 150:0.15789474 151:0.15789474 152:0.15789474 153:0.14031579 154:0.15789474 155:0.15789474 156:0.15789474 157:0.12496116 158:0.12496116 159:0.14285408 160:0.14285408 161:0.12496116 162:0.12496116 163:0.12496116 164:0.14285408 165:0.14285408 166:0.32146186 167:0.32146186 168:0.32146186 169:0.32146186 170:0.33924764 171:0.58931996 172:0.58931996 173:0.58931996 174:0.58931996 175:0.58931996 176:0.62499866 177:0.62499866 178:0.62499866 179:0.62499866 180:0.62499866 181:0.64289158 182:0.66067736 183:0.66067736 184:0.67857028 185:0.67857028 186:0.6964632 187:0.6964632 188:0.6964632 189:1 190:1 191:1 192:1 193:1 194:1 195:1 196:1 197:1 198:1 199:1 200:1 201:1 202:1 203:1 204:1 205:1 206:1 207:1 208:0.98210708 209:0.67857028 210:0.67857028 211:0.67857028 212:0.67857028 213:0.62499866 214:0.4999625 215:0.4999625 216:0.4999625 217:0.4999625 218:0.4999625 219:0.44639088 220:0.39281926 221:0.4333 222:0.4333 223:0.4333 224:0.4333 225:0.35 226:0.35 227:0.35 228:0.3333 229:0.3333 230:0.3333 231:0.3167 232:0.3 233:0.2667 234:0.2667 235:0.2833 236:0.2833 237:0.2667 238:0.25 239:0.25 240:0.25 241:0.2667 242:0.2667 243:0.25 244:0.2667 245:0.2667 246:0.25 247:0.25 248:0.2833 249:0.2667 250:0.25 251:0.2833 252:0.2667 253:0.25 254:0.25 255:0.2833 256:0.2833 257:0.2833 258:0.2833 259:0.2833 260:0.3 261:0.4333 262:0.4333 263:0.4333 264:0.4333 265:0.4333 266:0.4333 267:0.4333 268:0.4333 269:0.4333 270:0.4833 271:0.4833 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:0.9667 284:0.9667 285:0.8167 286:0.8167 287:0.8167 288:0.8167 289:0.8167 290:0.7 291:0.5667 292:0.5667 293:0.5667 294:0.4833 295:0.4667 296:0.45 297:0.4667 298:0.4167 299:0.4167 300:0.4167 301:0.4167 302:0.4167 303:0.4167 304:0.4167 305:0.4 306:0.4167 307:0.4 308:0.4167 309:0.4167 310:0.4167 311:0.4167 312:0.4 313:0.4167 314:0.4 315:0.4333 316:0.4333 317:0.4333 318:0.4333 319:0.4333 320:0.5833 321:0.25 322:0.25 323:0.25 324:0.25 325:0.25 326:0.25 327:0.25 328:0.25 329:0.25 330:0.25 331:0.25 332:0.25 333:0.25 334:0.25 335:0.25 336:0.25 337:0.25 338:0.25 339:0.25 340:0.25 341:0.35 342:0.3333 343:0.5667 344:0.35 345:0.3333 346:0.35 347:0.35 348:0.35 349:0.35 350:0.35 351:0.35 352:0.35 353:0.35 354:0.35 355:0.35 356:0.35 357:0.35 358:0.4167 359:0.4167 360:0.4333 +0.04463601072592369 1:0.4167 2:0.4167 3:0.4333 4:0.4333 5:0.45 6:0.45 7:0.45 8:0.45 9:0.4833 10:0.6167 11:0.6333 12:0.6333 13:0.6333 14:0.65 15:0.7833 16:0.7833 17:0.7833 18:0.95 19:1 20:1 21:1 22:1 23:1 24:1 25:1 26:1 27:1 28:1 29:1 30:1 31:1 32:1 33:1 34:1 35:1 36:1 37:1 38:1 39:1 40:1 41:0.4833 42:0.4667 43:0.4833 44:0.4667 45:0.4833 46:0.4667 47:0.4833 48:0.4667 49:0.4833 50:0.4333 51:0.4333 52:0.3333 53:0.3333 54:0.2333 55:0.2167 56:0.2167 57:0.2167 58:0.2167 59:0.2167 60:0.2167 61:0.2167 62:0.2167 63:0.2167 64:0.2333 65:0.2167 66:0.2167 67:0.2167 68:0.2333 69:0.2167 70:0.2167 71:0.2167 72:0.2167 73:0.2167 74:0.2167 75:0.2167 76:0.2167 77:0.2333 78:0.2333 79:0.2333 80:0.2333 81:0.2333 82:0.2333 83:0.2333 84:0.2333 85:0.2333 86:0.2333 87:0.2333 88:0.2333 89:0.2333 90:0.2333 91:0.2333 92:0.2333 93:0.3333 94:0.3333 95:0.3333 96:0.3333 97:0.3333 98:0.3333 99:0.3167 100:0.3333 101:0.3333 102:0.3333 103:0.3333 104:0.3333 105:0.3333 106:0.3333 107:0.3167 108:0.3167 109:0.3333 110:0.3167 111:0.3333 112:0.3333 113:0.3333 114:0.3333 115:0.3333 116:0.3167 117:0.3333 118:0.3333 119:0.3167 120:0.3333 121:0.3333 122:0.3333 123:0.3333 124:0.2333 125:0.2333 126:0.2333 127:0.2333 128:0.2333 129:0.2333 130:0.2333 131:0.2333 132:0.2 133:0.1833 134:0.1833 135:0.1833 136:0.1833 137:0.1833 138:0.1833 139:0.1667 140:0.1667 141:0.1667 142:0.14031579 143:0.14031579 144:0.14031579 145:0.14031579 146:0.14031579 147:0.14031579 148:0.14031579 149:0.14031579 150:0.14031579 151:0.12284211 152:0.14031579 153:0.14031579 154:0.14031579 155:0.14031579 156:0.12284211 157:0.12496116 158:0.12496116 159:0.12496116 160:0.10717538 161:0.10717538 162:0.35714056 163:0.35714056 164:0.35714056 165:0.35714056 166:0.35714056 167:0.35714056 168:0.35714056 169:0.57142704 170:0.57142704 171:0.57142704 172:0.57142704 173:0.60710574 174:0.60710574 175:0.60710574 176:0.60710574 177:0.60710574 178:0.62499866 179:0.62499866 180:0.62499866 181:0.64289158 182:0.64289158 183:0.64289158 184:0.64289158 185:0.64289158 186:0.64289158 187:0.64289158 188:1 189:1 190:1 191:1 192:1 193:1 194:1 195:1 196:1 197:1 198:0.98210708 199:0.98210708 200:0.98210708 201:0.98210708 202:0.98210708 203:1 204:1 205:1 206:1 207:1 208:0.82139222 209:0.66067736 210:0.66067736 211:0.66067736 212:0.62499866 213:0.48217672 214:0.4642838 215:0.4642838 216:0.4642838 217:0.4286051 218:0.4286051 219:0.37503348 220:0.37503348 221:0.4 222:0.4 223:0.3833 224:0.3833 225:0.3 226:0.3 227:0.2667 228:0.2667 229:0.2667 230:0.2667 231:0.25 232:0.25 233:0.25 234:0.2333 235:0.2167 236:0.2333 237:0.2333 238:0.2333 239:0.2333 240:0.2333 241:0.2333 242:0.2333 243:0.2333 244:0.2333 245:0.2333 246:0.2333 247:0.2333 248:0.2333 249:0.2333 250:0.2333 251:0.2333 252:0.2333 253:0.2333 254:0.2667 255:0.2667 256:0.2667 257:0.2667 258:0.2667 259:0.2667 260:0.2667 261:0.2667 262:0.2667 263:0.4167 264:0.4167 265:0.4167 266:0.4167 267:0.4167 268:0.4167 269:0.4167 270:0.4167 271:0.4167 272:0.4167 273:0.45 274:0.45 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:0.9167 285:0.9 286:0.9 287:0.7667 288:0.7667 289:0.7667 290:0.7833 291:0.7667 292:0.7 293:0.6833 294:0.5667 295:0.5333 296:0.5333 297:0.5333 298:0.5167 299:0.45 300:0.45 301:0.45 302:0.4333 303:0.4333 304:0.3833 305:0.3833 306:0.3833 307:0.3833 308:0.3833 309:0.3833 310:0.3833 311:0.3833 312:0.3833 313:0.3833 314:0.3833 315:0.3833 316:0.4 317:0.4 318:0.4 319:0.4333 320:0.4333 321:0.4333 322:0.4333 323:0.5667 324:0.5833 325:0.5833 326:0.5667 327:0.5667 328:0.55 329:0.55 330:0.55 331:0.55 332:0.55 333:0.5167 334:0.5 335:0.5 336:0.35 337:0.35 338:0.35 339:0.35 340:0.35 341:0.35 342:0.35 343:0.35 344:0.35 345:0.35 346:0.35 347:0.35 348:0.35 349:0.35 350:0.35 351:0.35 352:0.3667 353:0.3667 354:0.3667 355:0.3667 356:0.3667 357:0.3667 358:0.3667 359:0.3667 360:0.4167 +0.3395558283041472 1:0.3333 2:0.3333 3:0.3833 4:0.3833 5:0.4 6:0.4 7:0.4 8:0.4 9:0.4 10:0.4667 11:0.4667 12:0.4667 13:0.4667 14:0.5167 15:0.7 16:0.7 17:0.7 18:0.8667 19:0.8667 20:0.8667 21:1 22:1 23:1 24:1 25:1 26:1 27:1 28:1 29:1 30:1 31:1 32:1 33:1 34:1 35:1 36:1 37:1 38:1 39:1 40:1 41:0.9 42:0.9 43:0.8833 44:0.4 45:0.4 46:0.4 47:0.4 48:0.4 49:0.4 50:0.4 51:0.4 52:0.4 53:0.4 54:0.4 55:0.3833 56:0.3 57:0.3 58:0.3 59:0.3 60:0.3 61:0.3 62:0.3 63:0.3 64:0.3 65:0.3 66:0.3 67:0.3 68:0.1667 69:0.1667 70:0.1667 71:0.1667 72:0.1667 73:0.1667 74:0.1667 75:0.1667 76:0.1667 77:0.1667 78:0.1667 79:0.1667 80:0.1667 81:0.1667 82:0.1667 83:0.1667 84:0.1667 85:0.1667 86:0.1667 87:0.1667 88:0.1667 89:0.1667 90:0.1667 91:0.1667 92:0.1667 93:0.1667 94:0.1667 95:0.1667 96:0.1667 97:0.1667 98:0.1667 99:0.2 100:0.2 101:0.2 102:0.2 103:0.2 104:0.2 105:0.2 106:0.2 107:0.2 108:0.2 109:0.2 110:0.2 111:0.2 112:0.2 113:0.2 114:0.2 115:0.2 116:0.2167 117:0.2167 118:0.2167 119:0.2167 120:0.2167 121:0.2167 122:0.2167 123:0.2167 124:0.2167 125:0.2167 126:0.2167 127:0.2167 128:0.2167 129:0.2167 130:0.2167 131:0.2167 132:0.3 133:0.3 134:0.3 135:0.3 136:0.3 137:0.3 138:0.25 139:0.25 140:0.25 141:0.3 142:0.21052632 143:0.21052632 144:0.21052632 145:0.21052632 146:0.21052632 147:0.21052632 148:0.21052632 149:0.21052632 150:0.21052632 151:0.21052632 152:0.21052632 153:0.21052632 154:0.21052632 155:0.21052632 156:0.21052632 157:0.1964257 158:0.1964257 159:0.1964257 160:0.1964257 161:0.1964257 162:0.1964257 163:0.1964257 164:0.1964257 165:0.1964257 166:0.1964257 167:0.1964257 168:0.1964257 169:0.1964257 170:0.1964257 171:0.1964257 172:0.21431862 173:0.4999625 174:0.4999625 175:0.51785542 176:0.51785542 177:0.51785542 178:0.51785542 179:0.51785542 180:0.51785542 181:0.55353412 182:0.55353412 183:0.55353412 184:0.6964632 185:0.6964632 186:0.6964632 187:0.6964632 188:0.6964632 189:1 190:1 191:1 192:1 193:1 194:1 195:1 196:0.82139222 197:0.82139222 198:0.82139222 199:0.82139222 200:0.82139222 201:0.82139222 202:0.82139222 203:0.82139222 204:0.83928514 205:1 206:1 207:1 208:1 209:0.91074968 210:0.75003482 211:0.75003482 212:0.75003482 213:0.55353412 214:0.55353412 215:0.55353412 216:0.55353412 217:0.55353412 218:0.44639088 219:0.44639088 220:0.44639088 221:0.4833 222:0.4667 223:0.3833 224:0.3833 225:0.3833 226:0.3167 227:0.3167 228:0.3167 229:0.3167 230:0.2833 231:0.2833 232:0.2833 233:0.2833 234:0.2833 235:0.2833 236:0.2833 237:0.2833 238:0.2833 239:0.2833 240:0.2833 241:0.2833 242:0.2833 243:0.2833 244:0.2833 245:0.2833 246:0.2833 247:0.2833 248:0.2833 249:0.2833 250:0.3333 251:0.3333 252:0.3333 253:0.4667 254:0.4667 255:0.4667 256:0.4667 257:0.4667 258:0.4667 259:0.4667 260:0.4667 261:0.4667 262:0.4667 263:0.4667 264:0.6333 265:0.65 266:0.65 267:0.65 268:0.7 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:0.9667 281:0.9167 282:0.8 283:0.6833 284:0.6833 285:0.6667 286:0.6333 287:0.6333 288:0.6333 289:0.5167 290:0.4333 291:0.4333 292:0.4333 293:0.4167 294:0.4167 295:0.3833 296:0.3833 297:0.3833 298:0.3833 299:0.3833 300:0.3833 301:0.3833 302:0.3833 303:0.3833 304:0.3833 305:0.3833 306:0.3833 307:0.3833 308:0.3833 309:0.3833 310:0.4167 311:0.4167 312:0.6 313:0.5833 314:0.55 315:0.55 316:0.2 317:0.2 318:0.55 319:0.5333 320:0.2167 321:0.2 322:0.5 323:0.5 324:0.2167 325:0.2 326:0.2167 327:0.2833 328:0.2167 329:0.2167 330:0.2 331:0.2833 332:0.2833 333:0.2 334:0.2 335:0.2833 336:0.2833 337:0.2833 338:0.2833 339:0.2833 340:0.2833 341:0.2833 342:0.2833 343:0.3 344:0.3167 345:0.3167 346:0.3167 347:0.3167 348:0.3167 349:0.3167 350:0.3167 351:0.3167 352:0.3167 353:0.3167 354:0.3167 355:0.3167 356:0.3167 357:0.3333 358:0.3333 359:0.3333 360:0.3333 +0.7309356042906542 1:0.35 2:0.35 3:0.35 4:0.35 5:0.35 6:0.35 7:0.35 8:0.45 9:0.55 10:0.55 11:0.7333 12:0.7333 13:0.7333 14:0.7333 15:1 16:1 17:1 18:1 19:1 20:1 21:1 22:1 23:1 24:1 25:1 26:1 27:1 28:1 29:1 30:1 31:0.6833 32:0.6333 33:0.5833 34:0.5833 35:0.5167 36:0.4833 37:0.4667 38:0.4667 39:0.45 40:0.4333 41:0.4333 42:0.4333 43:0.4333 44:0.4333 45:0.4333 46:0.4333 47:0.4333 48:0.4333 49:0.4333 50:0.4333 51:0.3667 52:0.3667 53:0.3667 54:0.3667 55:0.35 56:0.35 57:0.3333 58:0.3333 59:0.35 60:0.3333 61:0.3333 62:0.35 63:0.3333 64:0.3333 65:0.35 66:0.3333 67:0.35 68:0.3333 69:0.3333 70:0.35 71:0.35 72:0.35 73:0.35 74:0.3667 75:0.35 76:0.35 77:0.3667 78:0.3667 79:0.3667 80:0.3833 81:0.45 82:0.45 83:0.45 84:0.4667 85:0.4667 86:0.4667 87:0.4833 88:0.4833 89:0.9667 90:0.9667 91:0.85 92:0.85 93:0.85 94:0.85 95:0.85 96:0.85 97:0.85 98:0.85 99:0.85 100:0.85 101:1 102:1 103:1 104:1 105:1 106:1 107:1 108:0.7667 109:0.7667 110:0.7667 111:0.7167 112:0.7167 113:0.7667 114:0.7167 115:0.6667 116:0.7167 117:0.6833 118:0.6667 119:0.7 120:0.6833 121:0.65 122:0.6667 123:0.6167 124:0.6167 125:0.6167 126:0.6167 127:0.6167 128:0.5667 129:0.55 130:0.5667 131:0.5667 132:0.5667 133:0.2333 134:0.2333 135:0.55 136:0.55 137:0.25 138:0.25 139:0.25 140:0.25 141:0.25 142:0.21052632 143:0.21052632 144:0.21052632 145:0.19294737 146:0.21052632 147:0.21052632 148:0.21052632 149:0.19294737 150:0.21052632 151:0.21052632 152:0.24557895 153:0.21052632 154:0.21052632 155:0.24557895 156:0.24557895 157:0.2321044 158:0.2321044 159:0.2321044 160:0.2321044 161:0.2321044 162:0.2321044 163:0.2321044 164:0.2321044 165:0.2321044 166:0.2321044 167:0.2321044 168:0.2321044 169:0.2321044 170:0.2321044 171:0.2321044 172:0.2321044 173:0.2321044 174:0.2321044 175:0.2321044 176:0.2321044 177:0.2321044 178:0.071389541 179:0.071389541 180:0.071389541 181:0.071389541 182:0.071389541 183:0.071389541 184:0.071389541 185:0.071389541 186:0.071389541 187:0.071389541 188:0.071389541 189:0.071389541 190:0.071389541 191:0.071389541 192:0.071389541 193:0.071389541 194:0.071389541 195:0.071389541 196:0.071389541 197:0.071389541 198:0.071389541 199:0.071389541 200:0.071389541 201:0.071389541 202:0.071389541 203:0.071389541 204:0.071389541 205:0.071389541 206:0.071389541 207:0.071389541 208:0.071389541 209:0.071389541 210:0.160747 211:0.160747 212:0.160747 213:0.160747 214:0.160747 215:0.160747 216:0.160747 217:0.160747 218:0.160747 219:0.160747 220:0.160747 221:0.4167 222:0.2167 223:0.2167 224:0.2167 225:0.4 226:0.4 227:0.3833 228:0.3833 229:0.3833 230:0.3667 231:0.3833 232:0.3667 233:0.3833 234:0.3833 235:0.3667 236:0.3833 237:0.3667 238:0.3833 239:0.3833 240:0.3667 241:1 242:1 243:1 244:1 245:1 246:1 247:1 248:1 249:0.4833 250:0.4833 251:0.4833 252:0.4833 253:0.4833 254:0.4833 255:0.4833 256:0.4833 257:0.4833 258:0.4833 259:0.4833 260:0.4833 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:0.95 281:0.95 282:0.8 283:0.6833 284:0.4833 285:0.4833 286:0.4833 287:0.4167 288:0.3667 289:0.3667 290:0.3667 291:0.3167 292:0.3167 293:0.2833 294:0.2833 295:0.2833 296:0.2833 297:0.2833 298:0.25 299:0.25 300:0.2833 301:0.25 302:0.25 303:0.25 304:0.25 305:0.25 306:0.25 307:0.25 308:0.25 309:0.25 310:0.25 311:0.6 312:0.25 313:0.25 314:0.25 315:0.5667 316:0.5667 317:0.5333 318:0.5167 319:0.5167 320:0.5167 321:0.5167 322:0.5167 323:0.25 324:0.25 325:0.25 326:0.25 327:0.25 328:0.25 329:0.25 330:0.25 331:0.25 332:0.25 333:0.25 334:0.25 335:0.25 336:0.25 337:0.25 338:0.25 339:0.25 340:0.25 341:0.2667 342:0.4833 343:0.4833 344:0.3833 345:0.3667 346:0.3667 347:0.35 348:0.35 349:0.35 350:0.35 351:0.35 352:0.35 353:0.35 354:0.35 355:0.35 356:0.35 357:0.35 358:0.35 359:0.35 360:0.35 +0.5631591986299216 1:0.2167 2:0.2167 3:0.2167 4:0.2167 5:0.2167 6:0.2167 7:0.2167 8:0.2333 9:0.2333 10:0.2333 11:0.2333 12:0.2167 13:0.2167 14:0.2167 15:0.2167 16:0.2167 17:0.2167 18:0.2167 19:0.2167 20:0.2167 21:0.2167 22:0.2167 23:0.2167 24:0.2167 25:0.2167 26:0.2167 27:0.2167 28:0.2167 29:0.2167 30:0.2167 31:0.2167 32:0.2167 33:0.25 34:0.25 35:0.2667 36:0.2667 37:0.25 38:0.2667 39:0.2667 40:0.25 41:0.25 42:0.2667 43:0.2667 44:0.2667 45:0.2667 46:0.2833 47:0.2667 48:0.2833 49:0.2833 50:0.2667 51:0.3 52:0.3 53:0.3167 54:0.3167 55:0.3333 56:0.3333 57:0.3333 58:0.3333 59:0.3333 60:0.3333 61:0.35 62:0.3667 63:0.3667 64:0.3833 65:0.4 66:0.4167 67:0.4333 68:0.45 69:0.4667 70:0.4833 71:0.5167 72:0.5833 73:0.5667 74:0.6 75:0.6333 76:0.6667 77:0.7167 78:0.8167 79:0.8333 80:1 81:1 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:0.9667 101:0.9167 102:0.75 103:0.6833 104:0.6333 105:0.6 106:0.55 107:0.5167 108:0.4833 109:0.4667 110:0.4667 111:0.4167 112:0.4 113:0.4167 114:0.3833 115:0.35 116:0.35 117:0.35 118:0.35 119:0.3 120:0.3 121:0.3167 122:0.3 123:0.2333 124:0.2333 125:0.2333 126:0.2333 127:0.2333 128:0.2333 129:0.2333 130:0.2333 131:0.2333 132:0.2333 133:0.2333 134:0.2333 135:0.2333 136:0.2 137:0.2 138:0.2167 139:0.2167 140:0.2167 141:0.2 142:0.17547368 143:0.17547368 144:0.17547368 145:0.15789474 146:0.17547368 147:0.17547368 148:0.17547368 149:0.17547368 150:0.15789474 151:0.17547368 152:0.17547368 153:0.15789474 154:0.15789474 155:0.17547368 156:0.17547368 157:0.160747 158:0.17853278 159:0.17853278 160:0.17853278 161:0.17853278 162:0.4286051 163:0.4286051 164:0.4286051 165:0.4286051 166:0.41071218 167:0.41071218 168:0.41071218 169:0.41071218 170:0.41071218 171:0.41071218 172:0.41071218 173:0.41071218 174:0.41071218 175:0.41071218 176:0.41071218 177:0.41071218 178:0.4286051 179:0.62499866 180:0.62499866 181:0.60710574 182:0.60710574 183:0.60710574 184:0.60710574 185:0.60710574 186:0.60710574 187:0.60710574 188:0.62499866 189:0.62499866 190:0.62499866 191:0.62499866 192:0.62499866 193:0.62499866 194:0.64289158 195:0.6964632 196:0.6964632 197:0.6964632 198:0.51785542 199:0.51785542 200:0.39281926 201:0.39281926 202:0.39281926 203:0.39281926 204:0.39281926 205:0.39281926 206:0.39281926 207:0.39281926 208:0.39281926 209:0.39281926 210:0.1964257 211:0.1964257 212:0.1964257 213:0.1964257 214:0.1964257 215:0.1964257 216:0.1964257 217:0.1964257 218:0.1964257 219:0.1964257 220:0.1964257 221:0.25 222:0.25 223:0.25 224:0.25 225:0.25 226:0.25 227:0.25 228:0.2167 229:0.2167 230:0.2167 231:0.2167 232:0.2167 233:0.2167 234:0.2167 235:0.2167 236:0.2167 237:0.2167 238:0.2167 239:0.2167 240:0.2167 241:0.2167 242:0.2167 243:0.2167 244:0.2167 245:0.2167 246:0.2167 247:0.2167 248:0.2167 249:0.2167 250:0.2167 251:0.2167 252:0.2333 253:0.2333 254:0.3667 255:0.3833 256:0.4167 257:0.45 258:0.5667 259:0.6 260:0.65 261:0.6667 262:0.6667 263:0.6667 264:0.6667 265:1 266:1 267:1 268:0.6667 269:0.6333 270:0.6333 271:0.6333 272:0.6333 273:0.6333 274:0.6333 275:0.6333 276:0.6333 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:0.8667 285:0.85 286:0.8 287:0.75 288:0.6667 289:0.6667 290:0.6 291:0.5667 292:0.5667 293:0.5167 294:0.4833 295:0.4667 296:0.45 297:0.4333 298:0.4167 299:0.4 300:0.4 301:0.3833 302:0.3667 303:0.3833 304:0.2333 305:0.2333 306:0.2167 307:0.2167 308:0.2167 309:0.2167 310:0.2167 311:0.2167 312:0.2167 313:0.2167 314:0.2167 315:0.2167 316:0.2167 317:0.2167 318:0.2167 319:0.2167 320:0.2167 321:0.2167 322:0.2167 323:0.2167 324:0.2167 325:0.2167 326:0.2167 327:0.2167 328:0.2167 329:0.2167 330:0.2167 331:0.2167 332:0.2167 333:0.2167 334:0.25 335:0.2167 336:0.2167 337:0.2167 338:0.2167 339:0.2167 340:0.2167 341:0.2167 342:0.2167 343:0.2167 344:0.2167 345:0.2167 346:0.2167 347:0.2167 348:0.2167 349:0.2167 350:0.2167 351:0.2167 352:0.2167 353:0.2167 354:0.2167 355:0.2167 356:0.2167 357:0.2167 358:0.2167 359:0.2167 360:0.2167 +1.942381595911747 1:0.15 2:0.15 3:0.15 4:0.15 5:0.15 6:0.15 7:0.15 8:0.15 9:0.15 10:0.15 11:0.15 12:0.15 13:0.15 14:0.15 15:0.15 16:0.15 17:0.15 18:0.15 19:0.15 20:0.15 21:0.15 22:0.15 23:0.15 24:0.15 25:0.15 26:0.15 27:0.15 28:0.15 29:0.15 30:0.15 31:0.15 32:0.15 33:0.15 34:0.1667 35:0.1667 36:0.1667 37:0.1667 38:0.1667 39:0.1667 40:0.1667 41:0.2833 42:0.2833 43:0.3 44:0.2833 45:0.2833 46:0.3 47:0.2833 48:0.2833 49:0.2833 50:0.3 51:0.3 52:0.3 53:0.3167 54:0.3167 55:0.3333 56:0.3333 57:0.35 58:0.35 59:0.3667 60:0.3667 61:0.3833 62:0.4 63:0.4 64:0.4167 65:0.4333 66:0.45 67:0.4667 68:0.4833 69:0.5167 70:0.5333 71:0.55 72:0.5833 73:0.5667 74:0.6167 75:0.6333 76:0.7667 77:0.7833 78:0.7833 79:0.85 80:0.9167 81:1 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:0.9833 100:0.9 101:0.8167 102:0.7667 103:0.6833 104:0.6333 105:0.5333 106:0.5333 107:0.5333 108:0.5333 109:0.4 110:0.3833 111:0.3667 112:0.3667 113:0.3667 114:0.3667 115:0.3667 116:0.3 117:0.2833 118:0.2833 119:0.2833 120:0.25 121:0.25 122:0.25 123:0.25 124:0.25 125:0.25 126:0.25 127:0.25 128:0.2333 129:0.2333 130:0.25 131:0.25 132:0.2333 133:0.2333 134:0.2333 135:0.25 136:0.2333 137:0.25 138:0.25 139:0.25 140:0.2333 141:0.25 142:0.21052632 143:0.19294737 144:0.19294737 145:0.19294737 146:0.21052632 147:0.21052632 148:0.21052632 149:0.19294737 150:0.21052632 151:0.21052632 152:0.21052632 153:0.47368421 154:0.43863158 155:0.43863158 156:0.43863158 157:0.4286051 158:0.41071218 159:0.41071218 160:0.41071218 161:0.41071218 162:0.41071218 163:0.41071218 164:0.41071218 165:0.41071218 166:0.41071218 167:0.41071218 168:0.41071218 169:0.41071218 170:0.44639088 171:0.48217672 172:0.67857028 173:0.67857028 174:0.67857028 175:0.67857028 176:0.60710574 177:0.60710574 178:0.60710574 179:0.60710574 180:0.60710574 181:0.60710574 182:0.60710574 183:0.60710574 184:0.62499866 185:0.62499866 186:0.62499866 187:0.58931996 188:0.4999625 189:0.4999625 190:0.51785542 191:0.4999625 192:0.37503348 193:0.37503348 194:0.35714056 195:0.35714056 196:0.35714056 197:0.35714056 198:0.35714056 199:0.35714056 200:0.35714056 201:0.35714056 202:0.35714056 203:0.35714056 204:0.35714056 205:0.35714056 206:0.35714056 207:0.37503348 208:0.17853278 209:0.17853278 210:0.17853278 211:0.17853278 212:0.17853278 213:0.17853278 214:0.17853278 215:0.17853278 216:0.17853278 217:0.17853278 218:0.17853278 219:0.17853278 220:0.17853278 221:0.2333 222:0.2333 223:0.2333 224:0.2333 225:0.2333 226:0.2333 227:0.2333 228:0.25 229:0.25 230:0.2667 231:0.25 232:0.25 233:0.25 234:0.25 235:0.25 236:0.25 237:0.25 238:0.25 239:0.25 240:0.25 241:0.25 242:0.25 243:0.25 244:0.25 245:0.25 246:0.25 247:0.25 248:0.25 249:0.25 250:0.25 251:0.2667 252:0.2667 253:0.25 254:0.25 255:0.2667 256:0.2833 257:0.5167 258:0.75 259:0.75 260:0.75 261:0.75 262:0.7667 263:0.7667 264:0.8833 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:0.9167 285:0.85 286:0.8 287:0.7 288:0.7 289:0.6833 290:0.6333 291:0.55 292:0.5333 293:0.5333 294:0.5333 295:0.4667 296:0.45 297:0.45 298:0.4167 299:0.4167 300:0.4167 301:0.3833 302:0.3667 303:0.3667 304:0.35 305:0.35 306:0.35 307:0.35 308:0.35 309:0.35 310:0.35 311:0.3 312:0.3 313:0.2833 314:0.2833 315:0.2833 316:0.2833 317:0.2833 318:0.2833 319:0.2833 320:0.2833 321:0.2833 322:0.2833 323:0.2833 324:0.2833 325:0.2833 326:0.2833 327:0.2833 328:0.25 329:0.25 330:0.25 331:0.2667 332:0.2667 333:0.25 334:0.2667 335:0.2667 336:0.25 337:0.25 338:0.2667 339:0.2667 340:0.25 341:0.2667 342:0.2667 343:0.2167 344:0.2167 345:0.2167 346:0.2167 347:0.2167 348:0.2167 349:0.2167 350:0.2167 351:0.2167 352:0.2167 353:0.2167 354:0.2167 355:0.2167 356:0.2167 357:0.2167 358:0.2167 359:0.15 360:0.15 +2 1:0.2 2:0.2 3:0.2 4:0.1833 5:0.1833 6:0.1833 7:0.1833 8:0.1833 9:0.1833 10:0.1833 11:0.1833 12:0.1833 13:0.1833 14:0.1833 15:0.1833 16:0.1833 17:0.1833 18:0.1833 19:0.1833 20:0.1833 21:0.1833 22:0.1833 23:0.1833 24:0.1833 25:0.1833 26:0.1833 27:0.1833 28:0.1833 29:0.1833 30:0.2 31:0.2 32:0.2 33:0.2 34:0.2 35:0.2667 36:0.2667 37:0.2667 38:0.3167 39:0.3167 40:0.3167 41:0.3167 42:0.3167 43:0.3167 44:0.3167 45:0.3167 46:0.3167 47:0.3333 48:0.3333 49:0.3333 50:0.3333 51:0.3333 52:0.3333 53:0.3333 54:0.3833 55:0.3833 56:0.4 57:0.4 58:0.4167 59:0.4333 60:0.4333 61:0.45 62:0.4667 63:0.4833 64:0.5 65:0.5167 66:0.5333 67:0.55 68:0.5667 69:0.5667 70:0.5833 71:0.65 72:0.65 73:0.6667 74:0.7167 75:0.8 76:0.8 77:0.85 78:0.9167 79:1 80:1 81:1 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:0.8833 99:0.7667 100:0.6833 101:0.5167 102:0.5167 103:0.5167 104:0.5167 105:0.5167 106:0.5 107:0.5 108:0.5 109:0.5 110:0.2833 111:0.2833 112:0.25 113:0.25 114:0.2333 115:0.2167 116:0.2167 117:0.2167 118:0.2167 119:0.2333 120:0.2167 121:0.2167 122:0.2167 123:0.2167 124:0.2167 125:0.2167 126:0.2167 127:0.2167 128:0.2167 129:0.2 130:0.2 131:0.2 132:0.2167 133:0.2167 134:0.2 135:0.2 136:0.2167 137:0.2167 138:0.2 139:0.2 140:0.2 141:0.2167 142:0.17547368 143:0.15789474 144:0.15789474 145:0.17547368 146:0.15789474 147:0.15789474 148:0.15789474 149:0.15789474 150:0.17547368 151:0.17547368 152:0.17547368 153:0.42105263 154:0.40347368 155:0.40347368 156:0.40347368 157:0.37503348 158:0.37503348 159:0.37503348 160:0.37503348 161:0.37503348 162:0.37503348 163:0.37503348 164:0.37503348 165:0.37503348 166:0.37503348 167:0.37503348 168:0.37503348 169:0.37503348 170:0.37503348 171:0.39281926 172:0.58931996 173:0.60710574 174:0.58931996 175:0.58931996 176:0.57142704 177:0.57142704 178:0.57142704 179:0.57142704 180:0.57142704 181:0.57142704 182:0.57142704 183:0.57142704 184:0.58931996 185:0.58931996 186:0.58931996 187:0.53574834 188:0.55353412 189:0.53574834 190:0.58931996 191:0.55353412 192:0.24999732 193:0.24999732 194:0.24999732 195:0.24999732 196:0.24999732 197:0.24999732 198:0.24999732 199:0.24999732 200:0.24999732 201:0.24999732 202:0.14285408 203:0.14285408 204:0.14285408 205:0.14285408 206:0.14285408 207:0.14285408 208:0.14285408 209:0.14285408 210:0.14285408 211:0.14285408 212:0.14285408 213:0.14285408 214:0.14285408 215:0.14285408 216:0.14285408 217:0.14285408 218:0.14285408 219:0.14285408 220:0.14285408 221:0.2 222:0.2 223:0.2 224:0.2 225:0.2333 226:0.2333 227:0.2333 228:0.2333 229:0.2333 230:0.2333 231:0.2333 232:0.2333 233:0.25 234:0.25 235:0.25 236:0.25 237:0.25 238:0.25 239:0.25 240:0.25 241:0.25 242:0.25 243:0.25 244:0.25 245:0.25 246:0.25 247:0.25 248:0.25 249:0.25 250:0.25 251:0.25 252:0.25 253:0.25 254:0.25 255:0.25 256:0.25 257:0.25 258:0.25 259:0.25 260:0.25 261:0.25 262:0.2667 263:0.7667 264:0.75 265:0.75 266:0.85 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:0.9333 287:0.8833 288:0.8167 289:0.7833 290:0.7333 291:0.7 292:0.6667 293:0.65 294:0.5667 295:0.5667 296:0.5667 297:0.55 298:0.5667 299:0.4833 300:0.4833 301:0.4833 302:0.4333 303:0.4333 304:0.4167 305:0.4 306:0.4 307:0.3833 308:0.3833 309:0.3667 310:0.3667 311:0.3667 312:0.3667 313:0.3833 314:0.3667 315:0.3667 316:0.3167 317:0.3167 318:0.3167 319:0.3167 320:0.3 321:0.3 322:0.3167 323:0.3 324:0.3 325:0.3167 326:0.3 327:0.3 328:0.3167 329:0.3 330:0.3 331:0.2833 332:0.2833 333:0.2833 334:0.3 335:0.2833 336:0.2833 337:0.3 338:0.2833 339:0.2833 340:0.3 341:0.2833 342:0.2833 343:0.2833 344:0.2833 345:0.25 346:0.25 347:0.25 348:0.25 349:0.25 350:0.25 351:0.25 352:0.25 353:0.25 354:0.25 355:0.25 356:0.25 357:0.25 358:0.25 359:0.2 360:0.2 +0.02059784968635983 1:1 2:1 3:1 4:1 5:1 6:1 7:1 8:1 9:1 10:1 11:0.5167 12:0.4833 13:0.4333 14:0.4167 15:0.4167 16:0.4167 17:0.4167 18:0.4167 19:0.4167 20:0.4167 21:0.4167 22:0.4167 23:0.4167 24:0.4167 25:0.4167 26:0.4 27:0.45 28:0.45 29:0.45 30:0.4667 31:0.4667 32:0.4667 33:0.4667 34:0.4833 35:0.4833 36:0.5 37:0.5167 38:0.5333 39:0.5 40:0.4667 41:0.45 42:0.45 43:0.4667 44:0.45 45:0.4667 46:0.45 47:0.45 48:0.3333 49:0.3333 50:0.3333 51:0.3333 52:0.3333 53:0.3333 54:0.3333 55:0.3333 56:0.3333 57:0.3333 58:0.3333 59:0.3333 60:0.3333 61:0.3333 62:0.3333 63:0.3333 64:0.3333 65:0.3333 66:0.3333 67:0.35 68:0.3667 69:0.3833 70:0.45 71:0.45 72:0.45 73:0.45 74:0.45 75:0.45 76:0.4833 77:0.6 78:0.6 79:0.6 80:0.75 81:0.75 82:0.8 83:0.8167 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:1 107:0.85 108:0.7167 109:0.5667 110:0.5667 111:0.5333 112:0.4833 113:0.4667 114:0.45 115:0.4333 116:0.4333 117:0.4333 118:0.4333 119:0.4333 120:0.4333 121:0.4167 122:0.4 123:0.4 124:0.3833 125:0.3833 126:0.3833 127:0.3833 128:0.3833 129:0.2833 130:0.2833 131:0.2833 132:0.2667 133:0.2667 134:0.2667 135:0.25 136:0.25 137:0.25 138:0.25 139:0.25 140:0.2333 141:0.2333 142:0.19294737 143:0.19294737 144:0.15789474 145:0.15789474 146:0.15789474 147:0.15789474 148:0.15789474 149:0.15789474 150:0.15789474 151:0.15789474 152:0.15789474 153:0.14031579 154:0.14031579 155:0.14031579 156:0.14031579 157:0.12496116 158:0.12496116 159:0.12496116 160:0.12496116 161:0.12496116 162:0.12496116 163:0.12496116 164:0.12496116 165:0.12496116 166:0.12496116 167:0.12496116 168:0.12496116 169:0.12496116 170:0.12496116 171:0.12496116 172:0.12496116 173:0.12496116 174:0.12496116 175:0.12496116 176:0.12496116 177:0.12496116 178:0.12496116 179:0.12496116 180:0.12496116 181:0.12496116 182:0.12496116 183:0.12496116 184:0.12496116 185:0.12496116 186:0.12496116 187:0.12496116 188:0.12496116 189:0.12496116 190:0.12496116 191:0.12496116 192:0.12496116 193:0.12496116 194:0.12496116 195:0.12496116 196:0.12496116 197:0.12496116 198:0.14285408 199:0.14285408 200:0.14285408 201:0.14285408 202:0.14285408 203:0.12496116 204:0.14285408 205:0.14285408 206:0.14285408 207:0.14285408 208:0.12496116 209:0.12496116 210:0.14285408 211:0.14285408 212:0.14285408 213:0.14285408 214:0.14285408 215:0.14285408 216:0.14285408 217:0.14285408 218:0.14285408 219:0.160747 220:0.160747 221:0.2167 222:0.2167 223:0.2167 224:0.2167 225:0.2333 226:0.2333 227:0.2333 228:0.2333 229:0.2333 230:0.25 231:0.25 232:0.25 233:0.2667 234:0.2667 235:0.2667 236:0.2833 237:0.2833 238:0.3333 239:0.3333 240:0.3333 241:0.3333 242:0.3333 243:0.3333 244:0.3333 245:0.3333 246:0.3333 247:0.35 248:0.4 249:0.3833 250:0.4 251:0.4167 252:0.4333 253:0.4833 254:0.4833 255:0.5167 256:0.55 257:0.55 258:0.55 259:0.6333 260:0.65 261:0.7167 262:0.8 263:0.9333 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:0.9167 284:0.85 285:0.7833 286:0.6667 287:0.6333 288:0.6 289:0.5833 290:0.5833 291:0.55 292:0.5333 293:0.5333 294:0.5333 295:0.3833 296:0.3667 297:0.3667 298:0.35 299:0.3667 300:0.35 301:0.35 302:0.3667 303:0.35 304:0.3667 305:0.3667 306:0.35 307:0.3667 308:0.35 309:0.35 310:0.3667 311:0.3667 312:0.5667 313:0.7333 314:0.7333 315:0.7333 316:0.7167 317:0.7333 318:0.75 319:0.6667 320:0.65 321:0.6667 322:0.6667 323:0.65 324:0.6167 325:0.55 326:0.55 327:0.5167 328:0.5167 329:0.5167 330:0.5 331:0.5 332:0.5 333:0.5 334:0.4833 335:0.4833 336:0.4833 337:0.4833 338:0.4833 339:0.4833 340:0.4833 341:0.4833 342:0.4833 343:0.4833 344:0.4833 345:1 346:1 347:1 348:1 349:1 350:1 351:1 352:1 353:1 354:1 355:1 356:1 357:1 358:1 359:1 360:1 +0.3603063780745222 1:0.1833 2:0.1833 3:0.1833 4:0.1833 5:0.1833 6:0.1833 7:0.1833 8:0.1833 9:0.1833 10:0.1833 11:0.1833 12:0.1833 13:0.1833 14:0.1833 15:0.1833 16:0.1833 17:0.1833 18:0.1833 19:0.1833 20:0.1833 21:0.1833 22:0.1833 23:0.1833 24:0.1833 25:0.1833 26:0.1833 27:0.1833 28:0.1833 29:0.1833 30:0.2 31:0.2 32:0.2 33:0.2 34:0.2 35:0.2 36:0.2 37:0.2 38:0.2 39:0.2167 40:0.2167 41:0.2167 42:0.2167 43:0.2167 44:0.2167 45:0.2333 46:0.2333 47:0.2333 48:0.2333 49:0.2333 50:0.25 51:0.25 52:0.25 53:0.2667 54:0.2667 55:0.2667 56:0.2833 57:0.2833 58:0.3 59:0.3 60:0.3 61:0.3167 62:0.3333 63:0.3333 64:0.35 65:0.3667 66:0.3667 67:0.4167 68:0.4 69:0.4167 70:0.4 71:0.4833 72:0.4833 73:0.5833 74:0.5833 75:0.5833 76:0.5833 77:0.5833 78:0.5833 79:0.7 80:0.7167 81:0.7167 82:0.9333 83:0.9333 84:0.9333 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:0.9833 103:0.85 104:0.85 105:0.7167 106:0.6667 107:0.65 108:0.6 109:0.5833 110:0.5833 111:0.6 112:0.5833 113:0.5833 114:0.4833 115:0.4833 116:0.45 117:0.45 118:0.45 119:0.45 120:0.45 121:0.45 122:0.45 123:0.45 124:0.45 125:0.45 126:0.45 127:0.4667 128:0.5167 129:0.9833 130:0.9833 131:0.6667 132:0.65 133:0.6333 134:0.6333 135:0.6167 136:0.6 137:0.6 138:0.6 139:0.6 140:0.6 141:0.5833 142:0.56136842 143:0.54389474 144:0.54389474 145:0.54389474 146:0.54389474 147:0.54389474 148:0.54389474 149:0.54389474 150:0.54389474 151:0.54389474 152:0.54389474 153:0.54389474 154:0.54389474 155:0.54389474 156:0.54389474 157:0.57142704 158:0.58931996 159:0.62499866 160:0.64289158 161:0.67857028 162:0.7321419 163:0.7321419 164:0.71424898 165:0.71424898 166:0.71424898 167:0.71424898 168:0.71424898 169:0.71424898 170:0.71424898 171:0.71424898 172:0.71424898 173:0.75003482 174:1 175:1 176:1 177:1 178:1 179:1 180:1 181:1 182:1 183:1 184:1 185:0.62499866 186:0.62499866 187:0.62499866 188:0.44639088 189:0.4642838 190:0.44639088 191:0.44639088 192:0.44639088 193:0.44639088 194:0.44639088 195:0.44639088 196:0.44639088 197:0.44639088 198:0.44639088 199:0.4286051 200:0.4286051 201:0.4286051 202:0.4286051 203:0.4286051 204:0.4286051 205:0.4286051 206:0.4286051 207:0.4286051 208:0.17853278 209:0.17853278 210:0.17853278 211:0.17853278 212:0.17853278 213:0.17853278 214:0.17853278 215:0.17853278 216:0.17853278 217:0.17853278 218:0.17853278 219:0.17853278 220:0.17853278 221:0.2333 222:0.2333 223:0.2333 224:0.2333 225:0.2333 226:0.2333 227:0.2333 228:0.2667 229:0.2667 230:0.2667 231:0.2667 232:0.2667 233:0.2667 234:0.2667 235:0.2667 236:0.2667 237:0.2667 238:0.2667 239:0.2667 240:0.2833 241:0.3167 242:0.3 243:0.3 244:0.3167 245:0.3167 246:0.3333 247:0.35 248:0.3667 249:0.3833 250:0.4 251:0.4333 252:0.4333 253:0.7 254:0.7 255:0.7 256:0.7 257:0.7 258:0.7 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:1 287:0.6333 288:0.6 289:0.5833 290:0.5833 291:0.6 292:0.5833 293:0.5833 294:0.45 295:0.4333 296:0.4167 297:0.4 298:0.4 299:0.3667 300:0.3667 301:0.35 302:0.3333 303:0.3333 304:0.3167 305:0.3167 306:0.3 307:0.3 308:0.2667 309:0.2667 310:0.25 311:0.25 312:0.25 313:0.25 314:0.25 315:0.25 316:0.25 317:0.25 318:0.25 319:0.25 320:0.2333 321:0.2333 322:0.2333 323:0.2333 324:0.2 325:0.2 326:0.2 327:0.2 328:0.2 329:0.2 330:0.2 331:0.2 332:0.2 333:0.1833 334:0.1833 335:0.1833 336:0.1833 337:0.1833 338:0.1833 339:0.1833 340:0.1833 341:0.1833 342:0.1833 343:0.1833 344:0.1833 345:0.1833 346:0.1833 347:0.1833 348:0.1833 349:0.1833 350:0.1833 351:0.1833 352:0.1833 353:0.1833 354:0.1833 355:0.1833 356:0.1833 357:0.1833 358:0.1833 359:0.1833 360:0.1833 +0.346971872463373 1:1 2:1 3:1 4:1 5:1 6:1 7:1 8:1 9:1 10:1 11:1 12:1 13:1 14:1 15:1 16:1 17:1 18:1 19:1 20:1 21:1 22:1 23:0.7 24:0.7 25:0.7 26:0.7 27:0.7 28:0.7 29:0.7 30:0.7 31:0.8667 32:0.8833 33:0.8833 34:0.8667 35:0.8833 36:0.4167 37:0.4167 38:0.4167 39:0.4167 40:0.4167 41:0.4167 42:0.4167 43:0.4167 44:0.4167 45:0.4167 46:0.4167 47:0.4167 48:0.4167 49:0.4167 50:0.4167 51:0.4833 52:0.4833 53:0.4833 54:0.5667 55:0.5667 56:0.5667 57:0.5667 58:0.5667 59:0.6667 60:0.6667 61:0.6833 62:0.7667 63:0.75 64:0.75 65:0.7667 66:0.7667 67:0.7667 68:0.7833 69:0.7833 70:0.9 71:0.9833 72:0.9833 73:1 74:1 75:1 76:1 77:1 78:1 79:1 80:1 81:1 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:1 107:1 108:1 109:1 110:1 111:1 112:1 113:1 114:1 115:1 116:1 117:1 118:0.9833 119:0.9833 120:0.8833 121:0.7833 122:0.7833 123:0.7833 124:0.7833 125:0.7833 126:0.6833 127:0.6667 128:0.65 129:0.6333 130:0.6333 131:0.6333 132:0.6333 133:0.6333 134:0.55 135:0.55 136:0.5333 137:0.5333 138:0.5333 139:0.5333 140:0.5333 141:0.5167 142:0.50873684 143:0.47368421 144:0.49126316 145:0.49126316 146:0.49126316 147:0.49126316 148:0.47368421 149:0.43863158 150:0.43863158 151:0.43863158 152:0.43863158 153:0.43863158 154:0.43863158 155:0.43863158 156:0.43863158 157:0.4286051 158:0.4286051 159:0.4286051 160:0.4286051 161:0.4286051 162:0.4286051 163:0.4286051 164:0.4286051 165:0.4286051 166:0.41071218 167:0.41071218 168:0.41071218 169:0.41071218 170:0.4286051 171:0.41071218 172:0.39281926 173:0.39281926 174:0.37503348 175:0.37503348 176:0.37503348 177:0.37503348 178:0.37503348 179:0.37503348 180:0.35714056 181:0.35714056 182:0.35714056 183:0.35714056 184:0.35714056 185:0.35714056 186:0.35714056 187:0.35714056 188:0.32146186 189:0.33924764 190:0.32146186 191:0.33924764 192:0.35714056 193:0.33924764 194:0.33924764 195:0.32146186 196:0.33924764 197:0.37503348 198:0.32146186 199:0.37503348 200:0.37503348 201:0.37503348 202:0.37503348 203:0.37503348 204:0.37503348 205:0.37503348 206:0.35714056 207:0.37503348 208:0.37503348 209:0.37503348 210:0.37503348 211:0.37503348 212:0.39281926 213:0.39281926 214:0.39281926 215:0.39281926 216:0.39281926 217:0.39281926 218:0.44639088 219:0.44639088 220:0.44639088 221:0.5 222:1 223:1 224:0.9 225:0.8833 226:0.8833 227:0.8833 228:0.8833 229:0.8833 230:0.65 231:0.6667 232:0.6667 233:0.65 234:0.6667 235:0.6667 236:0.65 237:0.6667 238:0.7333 239:0.7333 240:0.7333 241:0.7333 242:0.7333 243:1 244:1 245:1 246:1 247:1 248:1 249:1 250:1 251:1 252:1 253:1 254:1 255:1 256:1 257:1 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:1 287:1 288:1 289:0.85 290:0.85 291:0.8333 292:0.8333 293:0.8333 294:0.7833 295:0.7833 296:0.7833 297:0.7833 298:0.7833 299:0.7833 300:0.7167 301:0.6833 302:0.6833 303:0.6833 304:0.6833 305:0.6833 306:0.6833 307:0.6833 308:0.6833 309:0.6833 310:0.6167 311:0.5167 312:0.4667 313:0.4667 314:0.4667 315:0.4667 316:0.4667 317:0.4667 318:0.4667 319:0.4667 320:0.4667 321:0.4667 322:0.4667 323:0.4667 324:0.4667 325:0.4667 326:0.4667 327:0.4333 328:0.4333 329:0.4333 330:0.4333 331:0.4333 332:0.3667 333:0.3667 334:0.3667 335:0.3667 336:0.3667 337:0.3667 338:0.3667 339:0.3667 340:0.3667 341:0.3667 342:0.3667 343:0.3667 344:0.3667 345:0.3667 346:0.3667 347:0.3667 348:0.6667 349:0.6667 350:0.6667 351:0.6667 352:0.6667 353:0.6667 354:0.6667 355:0.85 356:0.85 357:0.85 358:1 359:1 360:1 +0.024445814678122 1:1 2:1 3:1 4:1 5:1 6:1 7:1 8:1 9:1 10:1 11:1 12:1 13:1 14:1 15:1 16:0.6833 17:0.6833 18:0.6833 19:0.6833 20:0.6833 21:0.6833 22:0.6833 23:0.4167 24:0.4167 25:0.4167 26:0.4167 27:0.4 28:0.4167 29:0.4 30:0.4167 31:0.4167 32:0.4167 33:0.4167 34:0.4 35:0.4167 36:0.4 37:0.4167 38:0.4167 39:0.4167 40:0.5 41:0.5 42:0.5 43:0.5 44:0.5 45:0.5 46:0.5 47:0.5 48:0.5 49:0.5167 50:0.5167 51:0.5167 52:0.6167 53:0.6 54:0.6167 55:0.6167 56:0.6333 57:0.7 58:0.7 59:0.7 60:0.7 61:0.7 62:0.7 63:0.7 64:0.7167 65:0.7 66:0.7333 67:0.8333 68:0.9167 69:0.85 70:0.85 71:0.85 72:0.85 73:0.9333 74:1 75:1 76:1 77:1 78:1 79:1 80:1 81:1 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:0.8833 102:0.8667 103:0.8667 104:0.8667 105:0.8667 106:0.8667 107:0.8667 108:0.8667 109:0.8667 110:1 111:1 112:1 113:1 114:1 115:0.9667 116:0.9667 117:0.95 118:0.95 119:0.9 120:0.9 121:0.8167 122:0.7 123:0.7 124:0.7 125:0.7 126:0.7 127:0.7 128:0.7 129:0.7 130:0.6833 131:0.6833 132:0.6 133:0.5667 134:0.55 135:0.5667 136:0.5667 137:0.5667 138:0.5667 139:0.4833 140:0.4833 141:0.4667 142:0.43863158 143:0.43863158 144:0.43863158 145:0.43863158 146:0.43863158 147:0.43863158 148:0.43863158 149:0.42105263 150:0.42105263 151:0.42105263 152:0.42105263 153:0.42105263 154:0.42105263 155:0.42105263 156:0.42105263 157:0.37503348 158:0.37503348 159:0.37503348 160:0.37503348 161:0.37503348 162:0.37503348 163:0.37503348 164:0.37503348 165:0.37503348 166:0.37503348 167:0.37503348 168:0.37503348 169:0.37503348 170:0.37503348 171:0.37503348 172:0.37503348 173:0.37503348 174:0.37503348 175:0.37503348 176:0.39281926 177:0.39281926 178:0.39281926 179:0.39281926 180:0.39281926 181:0.39281926 182:0.39281926 183:0.35714056 184:0.35714056 185:0.35714056 186:0.35714056 187:0.35714056 188:0.35714056 189:0.35714056 190:0.35714056 191:0.35714056 192:0.35714056 193:0.35714056 194:0.35714056 195:0.35714056 196:0.35714056 197:0.35714056 198:0.35714056 199:0.35714056 200:0.35714056 201:0.35714056 202:0.35714056 203:0.35714056 204:0.35714056 205:0.35714056 206:0.35714056 207:0.39281926 208:0.39281926 209:0.44639088 210:0.44639088 211:0.44639088 212:0.44639088 213:0.44639088 214:0.44639088 215:0.44639088 216:0.44639088 217:0.48217672 218:0.48217672 219:0.48217672 220:0.48217672 221:0.5167 222:0.5167 223:0.5167 224:0.5167 225:0.5167 226:0.5167 227:0.5167 228:0.5167 229:0.5167 230:0.5167 231:0.5333 232:0.55 233:0.6667 234:0.65 235:0.6667 236:0.7167 237:0.7167 238:0.7167 239:0.7167 240:0.7167 241:0.7167 242:0.7167 243:1 244:1 245:1 246:1 247:1 248:1 249:1 250:1 251:1 252:1 253:1 254:1 255:1 256:1 257:1 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:1 287:1 288:1 289:0.8833 290:0.8833 291:0.8667 292:0.8667 293:0.8667 294:0.8667 295:0.8667 296:0.8833 297:0.7333 298:0.7833 299:0.75 300:0.75 301:0.75 302:0.75 303:0.75 304:0.7667 305:0.7667 306:0.7667 307:0.55 308:0.55 309:0.5333 310:0.5333 311:0.5333 312:0.5333 313:0.5333 314:0.5333 315:0.5333 316:0.4333 317:0.5333 318:0.45 319:0.45 320:0.45 321:0.45 322:0.45 323:0.45 324:0.45 325:0.45 326:0.5167 327:0.6167 328:0.5167 329:0.7833 330:0.5 331:0.7833 332:0.8 333:0.8 334:0.7833 335:0.95 336:0.95 337:0.9167 338:0.9167 339:0.8667 340:0.8667 341:0.7 342:0.7 343:0.7 344:0.7 345:0.7 346:0.7 347:0.7 348:0.7 349:0.9167 350:0.9167 351:0.9167 352:1 353:1 354:1 355:1 356:1 357:1 358:1 359:1 360:1 +1.284492163688887 1:0.9667 2:0.9667 3:0.9667 4:0.9667 5:0.9667 6:0.9667 7:0.9667 8:0.9667 9:0.9667 10:0.9667 11:0.9833 12:0.9667 13:0.9667 14:0.9833 15:0.9833 16:0.35 17:0.3333 18:0.35 19:0.35 20:0.3333 21:0.35 22:0.3333 23:0.35 24:0.35 25:0.3333 26:0.35 27:0.35 28:0.3333 29:0.35 30:0.35 31:0.35 32:0.35 33:0.35 34:0.35 35:0.5 36:0.5 37:0.5167 38:0.5 39:0.5 40:0.5 41:0.5 42:0.5 43:0.5 44:0.5 45:0.5 46:0.5 47:0.5 48:0.5 49:0.5167 50:0.5167 51:0.5667 52:0.5333 53:0.5667 54:0.5333 55:0.5333 56:0.5333 57:0.5667 58:0.5667 59:1 60:0.6 61:0.9833 62:0.9667 63:0.9667 64:0.95 65:0.95 66:0.9333 67:0.95 68:0.95 69:0.95 70:0.95 71:1 72:0.6333 73:0.6333 74:0.6333 75:0.6333 76:0.6333 77:0.6333 78:0.6333 79:0.6167 80:0.6333 81:0.6167 82:0.6167 83:0.6333 84:0.6167 85:0.6167 86:0.75 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:1 107:1 108:1 109:1 110:1 111:1 112:1 113:1 114:0.6667 115:0.6333 116:0.6167 117:0.5833 118:0.5833 119:0.5833 120:0.5833 121:0.5833 122:0.5833 123:0.5833 124:0.5833 125:0.5833 126:0.5833 127:0.6 128:0.6 129:0.6167 130:0.6167 131:0.6 132:0.6 133:0.5333 134:0.5333 135:0.4667 136:0.4667 137:0.45 138:0.45 139:0.4667 140:0.45 141:0.4667 142:0.42105263 143:0.43863158 144:0.42105263 145:0.43863158 146:0.42105263 147:0.43863158 148:0.43863158 149:0.43863158 150:0.43863158 151:0.43863158 152:0.45610526 153:0.43863158 154:0.45610526 155:0.43863158 156:0.43863158 157:0.4286051 158:0.4286051 159:0.4286051 160:0.4286051 161:0.4286051 162:0.4286051 163:0.4286051 164:0.33924764 165:0.33924764 166:0.35714056 167:0.33924764 168:0.35714056 169:0.35714056 170:0.33924764 171:0.35714056 172:0.30356894 173:0.30356894 174:0.30356894 175:0.30356894 176:0.30356894 177:0.30356894 178:0.30356894 179:0.30356894 180:0.30356894 181:0.30356894 182:0.30356894 183:0.30356894 184:0.30356894 185:0.30356894 186:0.30356894 187:0.30356894 188:0.32146186 189:0.32146186 190:0.33924764 191:0.33924764 192:0.33924764 193:0.33924764 194:0.33924764 195:0.32146186 196:0.32146186 197:0.32146186 198:0.32146186 199:0.32146186 200:0.33924764 201:0.32146186 202:0.33924764 203:0.32146186 204:0.32146186 205:0.32146186 206:0.32146186 207:0.32146186 208:0.33924764 209:0.35714056 210:0.35714056 211:0.37503348 212:0.44639088 213:0.44639088 214:0.33924764 215:0.32146186 216:0.32146186 217:0.30356894 218:0.30356894 219:0.30356894 220:0.30356894 221:0.35 222:0.35 223:0.35 224:0.35 225:0.35 226:0.35 227:0.35 228:0.35 229:0.35 230:0.35 231:0.35 232:0.3667 233:0.3667 234:0.3833 235:0.3833 236:0.4 237:0.4 238:0.4167 239:0.4333 240:0.4333 241:0.45 242:0.7 243:0.7 244:0.7167 245:0.7 246:0.7667 247:0.8833 248:1 249:1 250:1 251:1 252:1 253:1 254:1 255:1 256:1 257:1 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:1 287:1 288:1 289:1 290:1 291:1 292:1 293:1 294:1 295:1 296:0.9833 297:0.7833 298:0.7833 299:0.7667 300:0.7333 301:0.7333 302:0.7333 303:0.7333 304:0.7333 305:0.7333 306:0.6833 307:0.6833 308:0.6833 309:0.6833 310:0.65 311:0.6333 312:0.55 313:0.5333 314:0.5333 315:0.5333 316:0.5333 317:0.5333 318:0.5333 319:0.5333 320:0.5333 321:0.5333 322:0.5667 323:0.5667 324:0.5667 325:0.5667 326:0.7833 327:0.4333 328:0.4333 329:0.4333 330:0.4333 331:0.4333 332:0.4333 333:0.4333 334:0.4333 335:0.4333 336:0.4333 337:0.4333 338:0.45 339:0.45 340:0.45 341:0.45 342:0.45 343:0.45 344:0.45 345:0.45 346:0.7 347:0.7 348:0.7 349:0.7 350:0.7 351:0.7833 352:0.7833 353:0.7833 354:1 355:1 356:1 357:1 358:1 359:0.9833 360:0.9667 +0.02246875610680569 1:0.95 2:0.95 3:0.95 4:0.95 5:0.95 6:0.95 7:0.95 8:0.95 9:0.95 10:0.95 11:0.95 12:0.95 13:0.95 14:0.9333 15:0.9333 16:0.8 17:0.7833 18:0.7833 19:0.7833 20:0.7833 21:0.7833 22:0.7167 23:0.7167 24:0.7167 25:0.7167 26:0.7167 27:0.7167 28:0.7167 29:0.55 30:0.5 31:0.4833 32:0.4833 33:0.4833 34:0.4833 35:0.4833 36:0.4833 37:0.4833 38:0.4833 39:0.4833 40:0.4833 41:0.4833 42:0.4833 43:0.4833 44:0.4833 45:0.4833 46:0.4833 47:0.4833 48:0.4833 49:0.4833 50:0.5 51:1 52:1 53:1 54:1 55:1 56:1 57:1 58:1 59:1 60:1 61:0.95 62:0.9333 63:0.9333 64:0.9167 65:0.9167 66:0.9167 67:0.9167 68:0.9167 69:0.9167 70:0.9167 71:0.9167 72:1 73:0.65 74:0.65 75:0.65 76:0.65 77:0.65 78:0.65 79:0.6333 80:0.6333 81:0.6333 82:0.6333 83:0.6333 84:0.6333 85:0.6333 86:0.6333 87:0.6333 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:1 107:1 108:1 109:1 110:1 111:1 112:1 113:1 114:1 115:1 116:0.65 117:0.6333 118:0.6 119:0.5833 120:0.5667 121:0.5833 122:0.5667 123:0.5667 124:0.5667 125:0.5667 126:0.5667 127:0.5667 128:0.5667 129:0.5667 130:0.5833 131:0.5833 132:0.6 133:0.6 134:0.6 135:0.6 136:0.6 137:0.5 138:0.5 139:0.5 140:0.5 141:0.4667 142:0.43863158 143:0.43863158 144:0.43863158 145:0.43863158 146:0.43863158 147:0.43863158 148:0.43863158 149:0.43863158 150:0.43863158 151:0.43863158 152:0.43863158 153:0.45610526 154:0.45610526 155:0.45610526 156:0.45610526 157:0.44639088 158:0.44639088 159:0.44639088 160:0.44639088 161:0.4286051 162:0.4286051 163:0.4286051 164:0.4286051 165:0.4286051 166:0.4286051 167:0.4286051 168:0.4286051 169:0.4286051 170:0.66067736 171:0.44639088 172:0.44639088 173:0.44639088 174:0.44639088 175:0.44639088 176:0.44639088 177:0.44639088 178:0.32146186 179:0.32146186 180:0.32146186 181:0.32146186 182:0.32146186 183:0.32146186 184:0.32146186 185:0.32146186 186:0.32146186 187:0.32146186 188:0.32146186 189:0.32146186 190:0.32146186 191:0.32146186 192:0.32146186 193:0.35714056 194:0.35714056 195:0.33924764 196:0.33924764 197:0.33924764 198:0.33924764 199:0.33924764 200:0.33924764 201:0.33924764 202:0.33924764 203:0.33924764 204:0.33924764 205:0.33924764 206:0.33924764 207:0.35714056 208:0.35714056 209:0.35714056 210:0.35714056 211:0.37503348 212:0.39281926 213:0.41071218 214:0.48217672 215:0.48217672 216:0.37503348 217:0.33924764 218:0.33924764 219:0.32146186 220:0.32146186 221:0.3667 222:0.3667 223:0.3833 224:0.3667 225:0.3667 226:0.3667 227:0.3667 228:0.3833 229:0.3667 230:0.3667 231:0.3833 232:0.3833 233:0.4 234:0.4 235:0.4167 236:0.4167 237:0.4333 238:0.45 239:0.45 240:0.4667 241:0.7167 242:0.7167 243:0.7333 244:0.7333 245:0.7333 246:0.7667 247:0.9167 248:1 249:1 250:1 251:1 252:1 253:1 254:1 255:1 256:1 257:1 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:1 287:1 288:1 289:1 290:1 291:1 292:1 293:1 294:1 295:1 296:1 297:0.7667 298:0.75 299:0.7333 300:0.7333 301:0.7333 302:0.7333 303:0.7333 304:0.7333 305:0.7 306:0.7 307:0.7 308:0.65 309:0.7 310:0.55 311:0.4833 312:0.55 313:0.4833 314:0.55 315:0.4833 316:0.4833 317:0.4833 318:0.4833 319:0.4833 320:0.5667 321:0.5667 322:0.5667 323:0.8167 324:0.8167 325:0.8167 326:0.4833 327:0.4833 328:0.4833 329:0.4833 330:0.4833 331:0.45 332:0.4333 333:0.4333 334:0.4333 335:0.4333 336:0.4333 337:0.4333 338:0.4333 339:0.4333 340:0.4333 341:0.4333 342:0.4333 343:0.45 344:0.7 345:0.7 346:0.7 347:0.7 348:0.7 349:0.7833 350:0.7833 351:1 352:1 353:1 354:1 355:1 356:1 357:0.9667 358:0.95 359:0.95 360:0.95 +0.5467183656136703 1:1 2:1 3:1 4:1 5:1 6:1 7:1 8:1 9:1 10:1 11:1 12:1 13:1 14:0.8667 15:0.85 16:0.85 17:0.85 18:0.85 19:0.8333 20:0.8167 21:0.75 22:0.8167 23:0.7833 24:0.7667 25:0.7667 26:0.5667 27:0.55 28:0.55 29:0.55 30:0.5333 31:0.5333 32:0.5333 33:0.5167 34:0.5167 35:0.5167 36:0.5167 37:0.5167 38:0.5167 39:0.5167 40:0.5167 41:0.5167 42:0.5333 43:0.5333 44:0.55 45:0.55 46:0.5667 47:0.5667 48:0.5833 49:0.5667 50:0.5667 51:0.5833 52:0.5833 53:0.5833 54:0.6 55:1 56:1 57:1 58:0.9667 59:0.9667 60:0.95 61:0.95 62:0.9333 63:0.9333 64:0.9333 65:0.9333 66:0.9333 67:0.9333 68:1 69:1 70:1 71:1 72:0.7667 73:0.7667 74:0.75 75:0.75 76:0.75 77:0.75 78:0.75 79:0.75 80:0.75 81:0.75 82:0.75 83:0.7667 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:1 107:1 108:1 109:1 110:1 111:0.6 112:0.5833 113:0.55 114:0.5333 115:0.5333 116:0.5333 117:0.5167 118:0.5167 119:0.5167 120:0.5167 121:0.5167 122:0.5167 123:0.5167 124:0.5167 125:0.5167 126:0.5333 127:0.5333 128:0.5333 129:0.5333 130:0.5333 131:0.5333 132:0.4667 133:0.4667 134:0.4 135:0.4 136:0.4 137:0.4 138:0.4 139:0.4 140:0.4 141:0.4 142:0.36842105 143:0.36842105 144:0.36842105 145:0.36842105 146:0.36842105 147:0.36842105 148:0.386 149:0.386 150:0.386 151:0.386 152:0.386 153:0.386 154:0.386 155:0.386 156:0.386 157:0.35714056 158:0.35714056 159:0.35714056 160:0.35714056 161:0.35714056 162:0.35714056 163:0.35714056 164:0.35714056 165:0.35714056 166:0.35714056 167:0.35714056 168:0.35714056 169:0.66067736 170:0.58931996 171:0.57142704 172:0.57142704 173:0.55353412 174:0.55353412 175:0.55353412 176:0.55353412 177:0.24999732 178:0.24999732 179:0.24999732 180:0.24999732 181:0.24999732 182:0.24999732 183:0.24999732 184:0.24999732 185:0.24999732 186:0.24999732 187:0.24999732 188:0.24999732 189:0.24999732 190:0.24999732 191:0.24999732 192:0.24999732 193:0.24999732 194:0.24999732 195:0.24999732 196:0.24999732 197:0.24999732 198:0.26789024 199:0.28567602 200:0.28567602 201:0.28567602 202:0.28567602 203:0.28567602 204:0.28567602 205:0.28567602 206:0.26789024 207:0.28567602 208:0.28567602 209:0.26789024 210:0.28567602 211:0.28567602 212:0.28567602 213:0.28567602 214:0.28567602 215:0.28567602 216:0.30356894 217:0.30356894 218:0.30356894 219:0.30356894 220:0.41071218 221:0.4667 222:0.45 223:0.3833 224:0.3833 225:0.35 226:0.35 227:0.35 228:0.3333 229:0.3333 230:0.3333 231:0.3333 232:0.35 233:0.3333 234:0.3333 235:0.35 236:0.3333 237:0.3333 238:0.3333 239:0.3333 240:0.3333 241:0.35 242:0.3667 243:0.3667 244:0.3833 245:0.4 246:0.4167 247:0.4333 248:0.45 249:0.7167 250:0.7167 251:0.75 252:1 253:1 254:1 255:1 256:1 257:1 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:1 287:1 288:1 289:1 290:1 291:1 292:1 293:1 294:1 295:1 296:1 297:1 298:1 299:1 300:0.95 301:0.8167 302:0.8 303:0.7833 304:0.7833 305:0.7833 306:0.7 307:0.7 308:0.7 309:0.7 310:0.7 311:0.7 312:0.7167 313:0.7167 314:0.6 315:0.6 316:0.6 317:0.6 318:0.6 319:0.6 320:0.6 321:0.6 322:0.6 323:0.6333 324:0.6333 325:0.6333 326:0.85 327:0.85 328:0.85 329:0.55 330:0.55 331:0.5333 332:0.55 333:0.5333 334:0.55 335:0.55 336:0.55 337:0.55 338:0.5333 339:0.7833 340:0.7667 341:0.7667 342:0.7667 343:0.7667 344:0.75 345:0.7667 346:0.7667 347:0.7667 348:0.7667 349:0.75 350:0.8333 351:0.8333 352:0.9 353:1 354:1 355:1 356:1 357:1 358:1 359:1 360:1 +1.140237959663935 1:0.8667 2:0.8667 3:0.8667 4:0.8667 5:0.8667 6:0.8667 7:0.8667 8:0.8833 9:0.8833 10:0.8667 11:0.8667 12:0.8833 13:0.8833 14:0.8833 15:0.8833 16:0.8833 17:0.8833 18:0.8167 19:0.7333 20:0.7167 21:0.7 22:0.7167 23:0.7167 24:0.7 25:0.7 26:0.7 27:0.6333 28:0.6333 29:0.6333 30:0.6333 31:0.6333 32:0.6333 33:0.6333 34:0.65 35:0.65 36:0.45 37:0.45 38:0.4333 39:0.4333 40:0.4333 41:0.4333 42:0.4333 43:0.4333 44:0.4333 45:0.4333 46:0.4333 47:0.4333 48:0.4333 49:0.4333 50:0.4333 51:0.4333 52:0.4333 53:0.4333 54:0.4333 55:0.4333 56:0.4333 57:0.4333 58:0.45 59:0.45 60:0.5333 61:0.5 62:0.5333 63:0.4833 64:1 65:1 66:0.9167 67:0.9167 68:0.9167 69:0.9 70:0.9 71:0.9 72:0.9 73:0.9 74:0.9 75:0.9 76:0.9 77:1 78:1 79:1 80:1 81:1 82:1 83:0.8 84:0.8 85:0.8 86:0.8 87:0.8 88:0.8 89:0.8 90:0.8 91:0.8 92:0.8 93:0.8 94:0.8333 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:1 107:1 108:1 109:1 110:1 111:1 112:1 113:1 114:1 115:1 116:1 117:1 118:1 119:1 120:1 121:0.7167 122:0.7 123:0.6833 124:0.6667 125:0.65 126:0.6333 127:0.6167 128:0.6167 129:0.6333 130:0.6167 131:0.6167 132:0.6333 133:0.6167 134:0.6333 135:0.65 136:0.65 137:0.6667 138:0.6667 139:0.6667 140:0.6167 141:0.6 142:0.57894737 143:0.57894737 144:0.50873684 145:0.50873684 146:0.50873684 147:0.50873684 148:0.50873684 149:0.50873684 150:0.50873684 151:0.50873684 152:0.50873684 153:0.52631579 154:0.52631579 155:0.52631579 156:0.54389474 157:0.53574834 158:0.53574834 159:0.53574834 160:0.53574834 161:0.53574834 162:0.51785542 163:0.51785542 164:0.51785542 165:0.51785542 166:0.51785542 167:0.44639088 168:0.44639088 169:0.44639088 170:0.44639088 171:0.44639088 172:0.44639088 173:0.44639088 174:0.41071218 175:0.41071218 176:0.41071218 177:0.41071218 178:0.41071218 179:0.41071218 180:0.41071218 181:0.41071218 182:0.41071218 183:0.41071218 184:0.41071218 185:0.41071218 186:0.41071218 187:0.41071218 188:0.41071218 189:0.4642838 190:0.4286051 191:0.4286051 192:0.4286051 193:0.4286051 194:0.4286051 195:0.4286051 196:0.4286051 197:0.4286051 198:0.4286051 199:0.4286051 200:0.4286051 201:0.4286051 202:0.4286051 203:0.4286051 204:0.44639088 205:0.44639088 206:0.4642838 207:0.48217672 208:0.53574834 209:0.55353412 210:0.53574834 211:0.53574834 212:0.53574834 213:0.53574834 214:0.55353412 215:0.55353412 216:0.57142704 217:0.55353412 218:0.55353412 219:0.55353412 220:0.55353412 221:0.5833 222:0.6 223:0.6 224:0.6 225:0.6 226:0.6 227:0.6167 228:0.6333 229:0.7333 230:0.7167 231:0.7333 232:0.7667 233:0.7667 234:0.7667 235:0.7667 236:0.7667 237:0.75 238:0.7667 239:0.7667 240:0.8 241:0.8167 242:1 243:1 244:1 245:1 246:1 247:1 248:1 249:1 250:1 251:1 252:1 253:1 254:1 255:1 256:1 257:1 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:1 287:0.9833 288:0.9833 289:0.9833 290:0.9667 291:0.95 292:0.7167 293:0.7 294:0.7 295:0.6833 296:0.6833 297:0.55 298:0.6833 299:0.55 300:0.6333 301:0.5667 302:0.55 303:0.4833 304:0.4833 305:0.4833 306:0.4833 307:0.4833 308:0.4833 309:0.4833 310:0.4833 311:0.4833 312:0.4833 313:0.4833 314:0.5 315:0.5 316:0.5 317:0.5 318:0.5 319:0.5167 320:0.4333 321:0.4167 322:0.4 323:0.4 324:0.4 325:0.4 326:0.4 327:0.4 328:0.4 329:0.4 330:0.4 331:0.4 332:0.4 333:0.4 334:0.4167 335:0.6333 336:0.6333 337:0.6167 338:0.6167 339:0.6167 340:0.6167 341:0.6167 342:0.6167 343:0.6167 344:0.6167 345:0.6167 346:0.6167 347:0.6167 348:0.7 349:0.6833 350:0.7 351:0.7167 352:0.7333 353:0.8667 354:0.8667 355:0.8667 356:0.8667 357:0.8667 358:0.8833 359:0.8667 360:0.8667 +0.545646309465038 1:1 2:1 3:1 4:1 5:0.9333 6:0.9333 7:0.5833 8:0.6 9:0.5833 10:0.5833 11:0.4333 12:0.4167 13:0.4167 14:0.4167 15:0.4167 16:0.4167 17:0.4167 18:0.4167 19:0.4167 20:0.4167 21:0.4167 22:0.4167 23:0.4167 24:0.4 25:0.4 26:0.4 27:0.4 28:0.4 29:0.4 30:0.4 31:0.3167 32:0.3 33:0.3 34:0.3 35:0.2833 36:0.2833 37:0.3 38:0.2833 39:0.2833 40:0.2833 41:0.2833 42:0.2667 43:0.2833 44:0.2833 45:0.2667 46:0.2833 47:0.2833 48:0.2833 49:0.2833 50:0.2833 51:0.2833 52:0.2833 53:0.2833 54:0.2833 55:0.2667 56:0.3 57:0.3167 58:0.3167 59:0.3167 60:0.3167 61:0.3167 62:0.3167 63:0.3167 64:0.3167 65:0.3167 66:0.3167 67:0.3 68:0.3167 69:0.3833 70:0.3833 71:0.3833 72:0.3833 73:0.3833 74:0.3833 75:0.3833 76:0.3833 77:0.3833 78:0.6167 79:0.6167 80:0.7333 81:0.7833 82:0.9 83:0.8833 84:0.8833 85:0.8833 86:0.8833 87:1 88:1 89:1 90:1 91:0.8167 92:0.5 93:0.5 94:0.5 95:0.3667 96:0.2833 97:0.2667 98:0.2 99:0.1833 100:0.1833 101:0.2 102:0.1333 103:0.1333 104:0.1333 105:0.1333 106:0.1333 107:0.1333 108:0.1333 109:0.1333 110:0.06667 111:0.06667 112:0.06667 113:0.06667 114:0.06667 115:0.06667 116:0.06667 117:0.06667 118:0.06667 119:0.08333 120:0.08333 121:0.08333 122:0.08333 123:0.08333 124:0.06667 125:0.06667 126:0.06667 127:0.08333 128:0.08333 129:0.08333 130:0.08333 131:0.08333 132:0.08333 133:0.08333 134:0.08333 135:0.08333 136:0.06667 137:0.08333 138:0.08333 139:0.08333 140:0.08333 141:0.08333 142:0.035084211 143:0.035084211 144:0.035084211 145:0.035084211 146:0.017547368 147:0.017547368 148:0.017547368 149:0.035084211 150:0.035084211 151:0.035084211 152:0.035084211 153:0.035084211 154:0.017547368 155:0.017547368 156:0.017547368 163:0.017850064 164:0.017850064 165:0.017850064 166:0.035710842 167:0.035710842 168:0.035710842 169:0.035710842 170:0.035710842 171:0.035710842 172:0.035710842 173:0.035710842 174:0.035710842 175:0.035710842 176:0.035710842 177:0.035710842 178:0.035710842 179:0.035710842 180:0.035710842 181:0.035710842 182:0.035710842 183:0.035710842 184:0.035710842 185:0.035710842 186:0.035710842 187:0.035710842 188:0.035710842 189:0.035710842 190:0.035710842 191:0.035710842 192:0.035710842 193:0.035710842 194:0.035710842 195:0.035710842 196:0.035710842 197:0.053603763 198:0.053603763 199:0.053603763 200:0.053603763 201:0.053603763 202:0.035710842 203:0.053603763 204:0.053603763 205:0.053603763 206:0.053603763 207:0.053603763 208:0.053603763 209:0.053603763 210:0.035710842 211:0.035710842 212:0.035710842 213:0.053603763 214:0.053603763 215:0.053603763 216:0.053603763 217:0.053603763 218:0.035710842 219:0.035710842 220:0.035710842 221:0.1 222:0.1 223:0.1 224:0.1167 225:0.1167 226:0.1167 227:0.1167 228:0.1167 229:0.1167 230:0.1167 231:0.1167 232:0.1167 233:0.1167 234:0.1333 235:0.1333 236:0.1167 237:0.1333 238:0.1333 239:0.1333 240:0.1333 241:0.1333 242:0.1167 243:0.1167 244:0.1167 245:0.1333 246:0.1333 247:0.1333 248:0.1167 249:0.1167 250:0.1167 251:0.1167 252:0.2333 253:0.2333 254:0.2333 255:0.2333 256:0.2333 257:0.2333 258:0.25 259:0.2833 260:0.2833 261:0.2833 262:0.2833 263:0.4833 264:0.4667 265:0.4833 266:0.4833 267:0.7167 268:0.7333 269:0.7333 270:0.7333 271:0.7333 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:0.7167 280:0.7167 281:0.7167 282:0.7167 283:0.7167 284:0.7167 285:0.3833 286:0.3833 287:0.3833 288:0.3833 289:0.3833 290:0.3833 291:0.3833 292:0.3833 293:0.3833 294:0.3833 295:0.3833 296:0.25 297:0.25 298:0.25 299:0.25 300:0.25 301:0.25 302:0.25 303:0.25 304:0.25 305:0.25 306:0.25 307:0.25 308:0.25 309:0.25 310:0.25 311:0.25 312:0.25 313:0.25 314:0.25 315:0.2667 316:0.2667 317:0.2667 318:0.2667 319:0.2667 320:0.2667 321:0.2667 322:0.2667 323:0.2667 324:0.2667 325:0.2667 326:0.2833 327:0.2833 328:0.2833 329:0.2833 330:0.2667 331:0.2667 332:0.2833 333:0.2833 334:0.2667 335:0.2667 336:0.2833 337:0.2667 338:0.2667 339:0.2833 340:0.2667 341:0.2667 342:0.2833 343:0.2667 344:0.2667 345:0.2667 346:0.2833 347:0.4333 348:0.4167 349:0.4333 350:0.4167 351:0.4167 352:0.4167 353:0.4167 354:0.4167 355:0.4167 356:0.6 357:0.6 358:0.75 359:0.75 360:1 +0.133663192574621 1:1 2:1 3:1 4:1 5:1 6:1 7:1 8:0.8667 9:0.5333 10:0.5167 11:0.5167 12:0.5 13:0.5 14:0.3333 15:0.3333 16:0.3333 17:0.3333 18:0.3167 19:0.3333 20:0.3333 21:0.3333 22:0.3333 23:0.3333 24:0.3333 25:0.3333 26:0.3167 27:0.3333 28:0.3333 29:0.3167 30:0.3333 31:0.3333 32:0.3333 33:0.3333 34:0.3167 35:0.3333 36:0.3333 37:0.3167 38:0.3333 39:0.3333 40:0.3167 41:0.3333 42:0.3333 43:0.3167 44:0.3333 45:0.2333 46:0.2333 47:0.2333 48:0.2167 49:0.2167 50:0.2167 51:0.2333 52:0.2167 53:0.2167 54:0.2167 55:0.2167 56:0.2333 57:0.2167 58:0.2167 59:0.2333 60:0.2333 61:0.2167 62:0.2167 63:0.2333 64:0.2167 65:0.2167 66:0.2167 67:0.2167 68:0.2333 69:0.2333 70:0.2333 71:0.2333 72:0.2333 73:0.2333 74:0.2667 75:0.2667 76:0.2833 77:0.2833 78:0.2667 79:0.2667 80:0.2833 81:0.2667 82:0.2667 83:0.2667 84:0.2667 85:0.2667 86:0.2833 87:0.4 88:0.4 89:0.4 90:0.4167 91:0.4167 92:0.4167 93:0.8333 94:0.85 95:1 96:1 97:1 98:1 99:1 100:0.8333 101:0.75 102:0.6833 103:0.6833 104:0.6833 105:0.5167 106:0.5333 107:0.5333 108:0.4167 109:0.4 110:0.4 111:0.4 112:0.4 113:0.4 114:0.3167 115:0.3 116:0.3 117:0.3 118:0.3 119:0.3 120:0.25 121:0.25 122:0.25 123:0.2333 124:0.25 125:0.25 126:0.25 127:0.2333 128:0.25 129:0.2 130:0.2 131:0.2 132:0.2 133:0.1833 134:0.2 135:0.2 136:0.2 137:0.2 138:0.2 139:0.2 140:0.2 141:0.2 142:0.15789474 143:0.15789474 144:0.15789474 145:0.15789474 146:0.15789474 147:0.12284211 148:0.12284211 149:0.10526316 150:0.12284211 151:0.12284211 152:0.12284211 153:0.12284211 154:0.12284211 155:0.12284211 156:0.12284211 157:0.10717538 158:0.10717538 159:0.10717538 160:0.10717538 161:0.10717538 162:0.10717538 163:0.10717538 164:0.10717538 165:0.10717538 166:0.10717538 167:0.10717538 168:0.10717538 169:0.10717538 170:0.10717538 171:0.053603763 172:0.053603763 173:0.053603763 174:0.053603763 175:0.053603763 176:0.053603763 177:0.035710842 178:0.035710842 179:0.035710842 180:0.035710842 181:0.035710842 182:0.035710842 183:0.035710842 184:0.035710842 185:0.035710842 186:0.035710842 187:0.035710842 188:0.035710842 189:0.035710842 190:0.035710842 191:0.035710842 192:0.035710842 193:0.035710842 194:0.035710842 195:0.035710842 196:0.035710842 197:0.035710842 198:0.035710842 199:0.035710842 200:0.035710842 201:0.035710842 202:0.035710842 203:0.035710842 204:0.035710842 205:0.035710842 206:0.035710842 207:0.035710842 208:0.035710842 209:0.035710842 210:0.035710842 211:0.035710842 212:0.035710842 213:0.035710842 214:0.035710842 215:0.035710842 216:0.035710842 217:0.035710842 218:0.035710842 219:0.035710842 220:0.035710842 221:0.1 222:0.1 223:0.1 224:0.1833 225:0.1833 226:0.1833 227:0.1833 228:0.1833 229:0.1833 230:0.2 231:0.25 232:0.25 233:0.2667 234:0.2667 235:0.2667 236:0.2833 237:0.2833 238:0.3 239:0.3 240:0.3 241:0.3 242:0.3 243:0.3 244:0.3 245:0.3 246:0.3 247:0.3 248:0.3 249:0.3 250:0.3 251:0.4833 252:0.4833 253:0.4833 254:0.4833 255:0.4833 256:0.4833 257:0.5 258:0.5 259:0.5 260:0.5 261:0.5167 262:0.5333 263:0.5333 264:0.5167 265:0.5333 266:0.5333 267:0.5667 268:0.5667 269:1 270:1 271:1 272:1 273:1 274:0.5167 275:0.35 276:0.35 277:0.35 278:0.35 279:0.35 280:0.35 281:0.35 282:0.35 283:0.35 284:0.35 285:0.35 286:0.35 287:0.35 288:0.5833 289:0.5833 290:0.8 291:0.8 292:1 293:1 294:1 295:1 296:1 297:1 298:0.2 299:0.2 300:0.2167 301:0.2167 302:0.2 303:0.2 304:0.2 305:0.2 306:0.2 307:0.2 308:0.2 309:0.2 310:0.2167 311:0.2 312:0.2 313:0.2 314:0.2 315:0.2 316:0.2 317:0.2 318:0.2 319:0.2 320:0.2 321:0.2 322:0.1833 323:0.1833 324:0.1833 325:0.2 326:0.2 327:0.1833 328:0.1833 329:0.1833 330:0.2 331:0.2 332:0.2 333:0.1833 334:0.2 335:0.2 336:0.2 337:0.1833 338:0.1833 339:0.2 340:0.2 341:0.1833 342:0.1833 343:0.1833 344:0.2833 345:0.2833 346:0.2833 347:0.3 348:0.3333 349:0.3333 350:0.3333 351:0.3333 352:0.3333 353:0.3333 354:0.3333 355:0.3333 356:0.3333 357:0.5167 358:0.5167 359:0.5167 360:0.5167 +0.5760179746988341 1:0.1333 2:0.1333 3:0.1333 4:0.1333 5:0.1333 6:0.1333 7:0.1333 8:0.1333 9:0.1333 10:0.1333 11:0.1333 12:0.1333 13:0.1333 14:0.1333 15:0.1333 16:0.1333 17:0.1333 18:0.1333 19:0.1333 20:0.1333 21:0.1333 22:0.1333 23:0.1333 24:0.1333 25:0.1333 26:0.1333 27:0.1333 28:0.1333 29:0.1333 30:0.1833 31:0.1833 32:0.1833 33:0.1833 34:0.1833 35:0.1833 36:0.1833 37:0.1833 38:0.1833 39:0.1833 40:0.1833 41:0.1833 42:0.1833 43:0.1833 44:0.1833 45:0.1833 46:0.1833 47:0.1833 48:0.1833 49:0.1833 50:0.2 51:0.2 52:0.2 53:0.2 54:0.2 55:0.1833 56:0.1833 57:0.2 58:0.2 59:0.2 60:0.2 61:0.2 62:0.1833 63:0.2 64:0.2 65:0.2833 66:0.2833 67:0.2833 68:0.2833 69:0.2833 70:0.3 71:0.3 72:0.3 73:0.3 74:0.3167 75:0.3167 76:0.3167 77:0.3167 78:0.3333 79:0.55 80:0.5667 81:0.5667 82:0.6167 83:0.6167 84:0.6167 85:0.6167 86:0.6167 87:0.6167 88:0.8333 89:0.8333 90:0.8333 91:0.7667 92:0.75 93:0.75 94:0.75 95:0.6333 96:0.6333 97:0.55 98:0.55 99:0.1833 100:0.1833 101:0.2 102:0.2 103:0.2 104:0.1833 105:0.1833 106:0.1833 107:0.1833 108:0.1833 109:0.1833 110:0.1833 111:0.1833 112:0.1833 113:0.1833 114:0.1833 115:0.1833 116:0.1833 117:0.1833 118:0.1833 119:0.1833 120:0.1833 121:0.1833 122:0.1833 123:0.1833 124:0.1833 125:0.1833 126:0.1833 127:0.1833 128:0.1833 129:0.1833 130:0.1833 131:0.2 132:0.2 133:0.1833 134:0.2 135:0.2 136:0.2 137:0.2 138:0.2 139:0.2 140:0.2 141:0.2 142:0.15789474 143:0.15789474 144:0.15789474 145:0.14031579 146:0.14031579 147:0.15789474 148:0.15789474 149:0.15789474 150:0.15789474 151:0.15789474 152:0.14031579 153:0.15789474 154:0.15789474 155:0.17547368 156:0.17547368 157:0.160747 158:0.160747 159:0.160747 160:0.160747 161:0.160747 162:0.17853278 163:0.17853278 164:0.1964257 165:0.21431862 166:0.2321044 167:0.26789024 168:0.26789024 169:0.26789024 170:0.26789024 171:0.41071218 172:0.41071218 173:0.41071218 174:0.48217672 175:0.48217672 176:0.48217672 177:0.48217672 178:0.48217672 179:0.6964632 180:1 181:1 182:1 183:0.39281926 184:0.39281926 185:0.39281926 186:0.39281926 187:0.39281926 188:0.39281926 189:0.39281926 190:0.39281926 191:0.39281926 192:0.39281926 193:0.39281926 194:0.39281926 195:0.17853278 196:0.17853278 197:0.17853278 198:0.17853278 199:0.17853278 200:0.17853278 201:0.17853278 202:0.17853278 203:0.17853278 204:0.17853278 205:0.17853278 206:0.17853278 207:0.17853278 208:0.17853278 209:0.17853278 210:0.17853278 211:0.17853278 212:0.17853278 213:0.14285408 214:0.14285408 215:0.14285408 216:0.14285408 217:0.160747 218:0.14285408 219:0.14285408 220:0.14285408 221:0.2 222:0.2 223:0.2 224:0.2 225:0.2 226:0.2167 227:0.2 228:0.2 229:0.2 230:0.2 231:0.2 232:0.1833 233:0.1833 234:0.1833 235:0.2 236:0.2 237:0.1833 238:0.1833 239:0.1833 240:0.2 241:0.2 242:0.2 243:0.1833 244:0.2 245:0.2 246:0.2 247:0.1833 248:0.1833 249:0.2 250:0.2 251:0.1833 252:0.1833 253:0.1833 254:0.2 255:0.2 256:0.2167 257:0.2167 258:0.2167 259:0.2167 260:0.2167 261:0.2167 262:0.2167 263:0.2167 264:0.2167 265:0.2167 266:0.2167 267:0.2167 268:0.2167 269:0.2333 270:0.3 271:0.3 272:0.3 273:0.5833 274:0.5833 275:0.7667 276:0.7667 277:0.7833 278:0.9833 279:1 280:1 281:1 282:1 283:1 284:0.95 285:0.7167 286:0.7 287:0.7 288:0.65 289:0.6667 290:0.6667 291:0.4667 292:0.3 293:0.2833 294:0.2833 295:0.2833 296:0.2833 297:0.2833 298:0.2833 299:0.3 300:0.2833 301:0.2833 302:0.3 303:0.2833 304:0.2833 305:0.3 306:0.2833 307:0.2833 308:0.2833 309:0.3167 310:0.3167 311:0.2167 312:0.2167 313:0.2167 314:0.2167 315:0.2167 316:0.1667 317:0.15 318:0.15 319:0.15 320:0.15 321:0.15 322:0.15 323:0.15 324:0.15 325:0.15 326:0.1333 327:0.15 328:0.15 329:0.15 330:0.15 331:0.15 332:0.15 333:0.15 334:0.15 335:0.15 336:0.15 337:0.15 338:0.15 339:0.15 340:0.15 341:0.15 342:0.15 343:0.15 344:0.15 345:0.15 346:0.15 347:0.15 348:0.15 349:0.15 350:0.15 351:0.1333 352:0.1333 353:0.1333 354:0.1333 355:0.1333 356:0.1333 357:0.1333 358:0.1333 359:0.1333 360:0.1333 +2 1:0.1167 2:0.1167 3:0.1167 4:0.1167 5:0.1167 6:0.1167 7:0.1167 8:0.1167 9:0.1167 10:0.1167 11:0.1167 12:0.1167 13:0.1167 14:0.1167 15:0.1167 16:0.1167 17:0.1167 18:0.1167 19:0.15 20:0.15 21:0.15 22:0.15 23:0.15 24:0.15 25:0.15 26:0.15 27:0.15 28:0.15 29:0.15 30:0.15 31:0.15 32:0.15 33:0.1667 34:0.15 35:0.15 36:0.15 37:0.15 38:0.15 39:0.15 40:0.15 41:0.15 42:0.15 43:0.15 44:0.15 45:0.25 46:0.25 47:0.25 48:0.2667 49:0.2667 50:0.2667 51:0.25 52:0.25 53:0.25 54:0.25 55:0.25 56:0.25 57:0.25 58:0.25 59:0.25 60:0.25 61:0.25 62:0.25 63:0.25 64:0.25 65:0.25 66:0.25 67:0.25 68:0.25 69:0.25 70:0.25 71:0.4 72:0.4 73:0.4 74:0.4 75:0.3833 76:0.4167 77:0.4167 78:0.4167 79:0.4167 80:0.4167 81:0.5167 82:0.65 83:0.65 84:0.6833 85:0.6833 86:0.6833 87:0.7 88:0.8667 89:0.8833 90:0.7333 91:0.7167 92:0.7167 93:0.7167 94:0.6 95:0.6 96:0.3167 97:0.3167 98:0.3167 99:0.3167 100:0.15 101:0.15 102:0.1667 103:0.1667 104:0.1667 105:0.1667 106:0.1667 107:0.1667 108:0.1667 109:0.1667 110:0.1667 111:0.1667 112:0.1667 113:0.1667 114:0.1667 115:0.1667 116:0.1667 117:0.1667 118:0.1667 119:0.1667 120:0.1667 121:0.1667 122:0.1667 123:0.15 124:0.1667 125:0.1667 126:0.1667 127:0.1667 128:0.1667 129:0.1667 130:0.1667 131:0.1667 132:0.1667 133:0.1667 134:0.1667 135:0.1667 136:0.1667 137:0.15 138:0.1667 139:0.1667 140:0.1667 141:0.1667 142:0.12284211 143:0.12284211 144:0.12284211 145:0.12284211 146:0.12284211 147:0.12284211 148:0.12284211 149:0.10526316 150:0.12284211 151:0.12284211 152:0.12284211 153:0.12284211 154:0.12284211 155:0.12284211 156:0.12284211 157:0.10717538 158:0.10717538 159:0.089282462 160:0.10717538 161:0.10717538 162:0.10717538 163:0.10717538 164:0.10717538 165:0.10717538 166:0.10717538 167:0.10717538 168:0.10717538 169:0.10717538 170:0.10717538 171:0.089282462 172:0.089282462 173:0.10717538 174:0.1964257 175:0.1964257 176:0.1964257 177:0.1964257 178:0.1964257 179:0.1964257 180:0.1964257 181:0.1964257 182:0.1964257 183:1 184:0.4286051 185:0.4286051 186:0.4286051 187:0.4286051 188:0.4286051 189:0.4286051 190:0.4286051 191:0.4286051 192:0.4286051 193:0.4286051 194:0.4286051 195:0.4286051 196:0.4286051 197:0.44639088 198:0.44639088 199:0.4286051 200:0.4286051 201:0.4286051 202:0.4286051 203:0.37503348 204:0.37503348 205:0.37503348 206:0.28567602 207:0.26789024 208:0.26789024 209:0.24999732 210:0.24999732 211:0.26789024 212:0.24999732 213:0.24999732 214:0.24999732 215:0.2321044 216:0.2321044 217:0.21431862 218:0.21431862 219:0.21431862 220:0.1964257 221:0.25 222:0.25 223:0.2333 224:0.2333 225:0.2333 226:0.2333 227:0.2333 228:0.2167 229:0.1667 230:0.1667 231:0.1667 232:0.1667 233:0.1667 234:0.1667 235:0.1667 236:0.1667 237:0.1667 238:0.1667 239:0.1667 240:0.1667 241:0.1667 242:0.1667 243:0.1667 244:0.1667 245:0.1667 246:0.1667 247:0.1667 248:0.1667 249:0.1667 250:0.1667 251:0.1667 252:0.1667 253:0.1667 254:0.1667 255:0.1667 256:0.1667 257:0.1667 258:0.1833 259:0.25 260:0.25 261:0.25 262:0.3 263:0.3 264:0.3 265:0.3 266:0.3 267:0.4667 268:0.4667 269:0.4667 270:0.4667 271:0.7833 272:0.8833 273:0.8833 274:0.9 275:1 276:1 277:1 278:1 279:1 280:0.85 281:0.8333 282:0.8333 283:0.6833 284:0.7 285:0.6833 286:0.5 287:0.5 288:0.5 289:0.5 290:0.5 291:0.5 292:0.5 293:0.5 294:0.4833 295:0.4333 296:0.4333 297:0.4333 298:0.4333 299:0.3667 300:0.2167 301:0.2167 302:0.2167 303:0.2167 304:0.2167 305:0.2167 306:0.2167 307:0.2167 308:0.2167 309:0.2167 310:0.2167 311:0.2167 312:0.2167 313:0.2167 314:0.2167 315:0.2167 316:0.1667 317:0.15 318:0.1667 319:0.2167 320:0.1667 321:0.1667 322:0.1667 323:0.1667 324:0.1667 325:0.1667 326:0.1667 327:0.1667 328:0.1667 329:0.1667 330:0.1667 331:0.1667 332:0.1667 333:0.1667 334:0.1667 335:0.1667 336:0.1667 337:0.1667 338:0.1667 339:0.15 340:0.25 341:0.3 342:0.3 343:0.3 344:0.1167 345:0.1167 346:0.1167 347:0.1167 348:0.1167 349:0.1167 350:0.1167 351:0.1167 352:0.1167 353:0.1167 354:0.1167 355:0.1167 356:0.1167 357:0.1167 358:0.1167 359:0.1167 360:0.1167 +0.11331162946465 1:0.1 2:0.1 3:0.1 4:0.1 5:0.1 6:0.1 7:0.1 8:0.1 9:0.1 10:0.1 11:0.1 12:0.1 13:0.1 14:0.1 15:0.1 16:0.1 17:0.1 18:0.1 19:0.1 20:0.1 21:0.1 22:0.1 23:0.1 24:0.1 25:0.1 26:0.1 27:0.1 28:0.1 29:0.1 30:0.1 31:0.1 32:0.1 33:0.1 34:0.1 35:0.1 36:0.1 37:0.1 38:0.1167 39:0.1167 40:0.15 41:0.15 42:0.15 43:0.15 44:0.15 45:0.25 46:0.25 47:0.25 48:0.25 49:0.25 50:0.25 51:0.25 52:0.25 53:0.25 54:0.25 55:0.25 56:0.25 57:0.25 58:0.25 59:0.25 60:0.25 61:0.25 62:0.25 63:0.3667 64:0.3667 65:0.3667 66:0.3667 67:0.5167 68:0.8667 69:0.9667 70:1 71:1 72:1 73:1 74:1 75:1 76:0.8 77:0.6833 78:0.6833 79:0.4833 80:0.4833 81:0.4833 82:0.35 83:0.35 84:0.35 85:0.35 86:0.2333 87:0.2333 88:0.2333 89:0.2333 90:0.2333 91:0.2333 92:0.2333 93:0.2333 94:0.2333 95:0.2333 96:0.2333 97:0.2333 98:0.2333 99:0.2333 100:0.2333 101:0.1333 102:0.1333 103:0.1333 104:0.1333 105:0.1333 106:0.1333 107:0.1333 108:0.1333 109:0.1333 110:0.1333 111:0.1333 112:0.1333 113:0.1333 114:0.1333 115:0.1333 116:0.1333 117:0.1333 118:0.1333 119:0.1333 120:0.1333 121:0.1333 122:0.1333 123:0.1333 124:0.1333 125:0.1333 126:0.1333 127:0.1333 128:0.1333 129:0.1333 130:0.1333 131:0.1333 132:0.1333 133:0.1333 134:0.1333 135:0.1333 136:0.1333 137:0.1333 138:0.1333 139:0.1333 140:0.1667 141:0.1667 142:0.12284211 143:0.12284211 144:0.12284211 145:0.12284211 146:0.12284211 147:0.12284211 148:0.12284211 149:0.12284211 150:0.12284211 151:0.12284211 152:0.12284211 153:0.12284211 154:0.12284211 155:0.12284211 156:0.14031579 157:0.12496116 158:0.12496116 159:0.14285408 160:0.14285408 161:0.160747 162:0.160747 163:0.160747 164:0.160747 165:0.160747 166:0.160747 167:0.160747 168:0.160747 169:0.160747 170:0.160747 171:0.17853278 172:0.32146186 173:0.30356894 174:0.30356894 175:0.37503348 176:0.37503348 177:0.37503348 178:0.83928514 179:1 180:1 181:1 182:1 183:1 184:1 185:1 186:1 187:1 188:1 189:1 190:0.33924764 191:0.33924764 192:0.33924764 193:0.33924764 194:0.33924764 195:0.33924764 196:0.33924764 197:0.33924764 198:0.33924764 199:0.33924764 200:0.33924764 201:0.26789024 202:0.24999732 203:0.24999732 204:0.24999732 205:0.24999732 206:0.24999732 207:0.24999732 208:0.24999732 209:0.24999732 210:0.24999732 211:0.24999732 212:0.24999732 213:0.24999732 214:0.24999732 215:0.1964257 216:0.1964257 217:0.1964257 218:0.1964257 219:0.1964257 220:0.1964257 221:0.25 222:0.25 223:0.25 224:0.25 225:0.25 226:0.25 227:0.25 228:0.25 229:0.25 230:0.25 231:0.25 232:0.25 233:0.25 234:0.25 235:0.25 236:0.25 237:0.25 238:0.25 239:0.25 240:0.25 241:0.25 242:0.25 243:0.2667 244:0.2667 245:0.25 246:0.25 247:0.2667 248:0.2667 249:0.2667 250:0.2667 251:0.2667 252:0.2833 253:0.3333 254:0.35 255:0.35 256:0.4167 257:0.35 258:0.35 259:0.4333 260:0.35 261:0.3333 262:0.35 263:0.3333 264:0.3333 265:0.4167 266:0.5667 267:0.5667 268:0.5667 269:0.7 270:0.7 271:0.7 272:0.7 273:0.7167 274:0.7167 275:1 276:0.7167 277:0.7167 278:0.7167 279:0.7167 280:0.6 281:0.6 282:0.6 283:0.6 284:0.6 285:0.6 286:0.35 287:0.3333 288:0.35 289:0.35 290:0.3333 291:0.2167 292:0.2167 293:0.2167 294:0.2167 295:0.2167 296:0.2167 297:0.2167 298:0.2167 299:0.2167 300:0.2167 301:0.2167 302:0.2167 303:0.2167 304:0.2167 305:0.2167 306:0.2167 307:0.2167 308:0.2167 309:0.2167 310:0.2167 311:0.2167 312:0.2167 313:0.2167 314:0.2167 315:0.2333 316:0.2333 317:0.2333 318:0.2167 319:0.2167 320:0.2167 321:0.2167 322:0.2167 323:0.1167 324:0.1167 325:0.1167 326:0.1167 327:0.1167 328:0.1167 329:0.1167 330:0.1167 331:0.1167 332:0.1167 333:0.1167 334:0.1167 335:0.1167 336:0.1167 337:0.1167 338:0.1167 339:0.1167 340:0.1167 341:0.1167 342:0.1167 343:0.1167 344:0.1167 345:0.1167 346:0.1167 347:0.1167 348:0.1167 349:0.1167 350:0.1167 351:0.1167 352:0.1167 353:0.1167 354:0.1167 355:0.1167 356:0.1167 357:0.1 358:0.1 359:0.1 360:0.1 +0.0007373997946089183 1:0.3333 2:0.3333 3:0.3333 4:0.3333 5:0.3333 6:0.3333 7:0.3333 8:0.3333 9:0.3333 10:0.3333 11:0.3333 12:0.3333 13:0.3333 14:0.3333 15:0.3333 16:0.3333 17:0.3333 18:0.3333 19:0.3333 20:0.3333 21:0.35 22:0.35 23:0.35 24:0.35 25:0.35 26:0.35 27:0.35 28:0.35 29:0.3667 30:0.3667 31:0.3667 32:0.3667 33:0.3667 34:0.3833 35:0.3833 36:0.3833 37:0.3833 38:0.4 39:0.4 40:0.4 41:0.4167 42:0.4167 43:0.4167 44:0.4333 45:0.4333 46:0.4333 47:0.45 48:0.45 49:0.4667 50:0.4667 51:0.4833 52:0.5 53:0.5 54:0.5167 55:0.5333 56:0.5333 57:0.55 58:0.5667 59:0.5833 60:0.5833 61:0.5833 62:0.6 63:0.6167 64:0.65 65:0.6667 66:0.6833 67:0.7167 68:0.75 69:0.7833 70:0.8167 71:0.85 72:0.9 73:0.9333 74:1 75:1 76:1 77:0.8 78:0.8 79:0.8 80:0.8 81:0.7833 82:0.7833 83:0.7833 84:0.7833 85:0.7833 86:0.7833 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:0.8667 107:0.8167 108:0.7667 109:0.7333 110:0.6833 111:0.6833 112:0.6667 113:0.6333 114:0.5667 115:0.55 116:0.5333 117:0.5167 118:0.5 119:0.4833 120:0.4667 121:0.45 122:0.3667 123:0.3667 124:0.35 125:0.35 126:0.35 127:0.35 128:0.35 129:0.35 130:0.35 131:0.35 132:0.35 133:0.3333 134:0.3333 135:0.3333 136:0.3167 137:0.3167 138:0.2833 139:0.2833 140:0.2833 141:0.2833 142:0.24557895 143:0.24557895 144:0.24557895 145:0.24557895 146:0.24557895 147:0.24557895 148:0.24557895 149:0.24557895 150:0.24557895 151:0.24557895 152:0.24557895 153:0.24557895 154:0.24557895 155:0.24557895 156:0.26315789 157:0.24999732 158:0.24999732 159:0.24999732 160:0.24999732 161:0.26789024 162:0.26789024 163:0.26789024 164:0.26789024 165:0.28567602 166:0.30356894 167:0.32146186 168:0.87496384 169:0.87496384 170:0.87496384 171:0.83928514 172:0.83928514 173:0.83928514 174:0.83928514 175:0.83928514 176:0.83928514 177:0.83928514 178:0.83928514 179:0.85717806 180:0.94642838 181:0.94642838 182:1 183:1 184:0.94642838 185:0.94642838 186:0.83928514 187:0.83928514 188:0.85717806 189:0.85717806 190:0.83928514 191:0.83928514 192:0.85717806 193:0.85717806 194:0.67857028 195:0.67857028 196:0.67857028 197:0.67857028 198:0.67857028 199:0.67857028 200:0.67857028 201:0.67857028 202:0.6964632 203:0.6964632 204:0.6964632 205:0.6964632 206:0.28567602 207:0.28567602 208:0.28567602 209:0.28567602 210:0.28567602 211:0.26789024 212:0.26789024 213:0.26789024 214:0.26789024 215:0.26789024 216:0.26789024 217:0.26789024 218:0.26789024 219:0.26789024 220:0.26789024 221:0.3167 222:0.3167 223:0.3167 224:0.3167 225:0.3167 226:0.3167 227:0.3167 228:0.3167 229:0.3167 230:0.3167 231:0.3333 232:0.3333 233:0.3333 234:0.35 235:0.35 236:0.3667 237:0.3667 238:0.3833 239:0.4 240:0.4 241:0.4167 242:0.4333 243:0.4333 244:0.4333 245:0.4333 246:0.45 247:0.4667 248:0.5333 249:0.55 250:0.5833 251:0.5833 252:0.5833 253:0.6167 254:0.65 255:0.7 256:0.7333 257:0.95 258:0.95 259:0.95 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:1 287:1 288:1 289:1 290:1 291:1 292:1 293:1 294:1 295:0.8333 296:0.7667 297:0.7333 298:0.7167 299:0.7 300:0.6667 301:0.65 302:0.6333 303:0.6167 304:0.6 305:0.5833 306:0.5667 307:0.55 308:0.55 309:0.5333 310:0.5167 311:0.5167 312:0.5 313:0.4833 314:0.4833 315:0.4667 316:0.4667 317:0.45 318:0.45 319:0.45 320:0.4333 321:0.4333 322:0.4333 323:0.4167 324:0.4167 325:0.4167 326:0.4 327:0.4 328:0.4 329:0.4 330:0.3833 331:0.3833 332:0.3833 333:0.3833 334:0.3833 335:0.3667 336:0.35 337:0.35 338:0.35 339:0.35 340:0.35 341:0.35 342:0.35 343:0.35 344:0.35 345:0.35 346:0.35 347:0.35 348:0.35 349:0.35 350:0.35 351:0.35 352:0.3333 353:0.3333 354:0.3333 355:0.3333 356:0.3333 357:0.3333 358:0.3333 359:0.3333 360:0.3333 +0.8636109765598329 1:0.3167 2:0.3167 3:0.3167 4:0.3167 5:0.3167 6:0.3167 7:0.3167 8:0.3167 9:0.3167 10:0.3167 11:0.3167 12:0.3167 13:0.3167 14:0.3167 15:0.3167 16:0.3167 17:0.3167 18:0.3167 19:0.3167 20:0.3167 21:0.3333 22:0.3333 23:0.3333 24:0.3333 25:0.3333 26:0.3333 27:0.3333 28:0.3333 29:0.35 30:0.35 31:0.35 32:0.35 33:0.35 34:0.35 35:0.3667 36:0.3667 37:0.3667 38:0.3667 39:0.3667 40:0.3667 41:0.3667 42:0.3667 43:0.3833 44:0.3833 45:0.3833 46:0.4167 47:0.4333 48:0.4333 49:0.4333 50:0.45 51:0.45 52:0.45 53:0.45 54:0.4667 55:0.4667 56:0.4833 57:0.5 58:0.5 59:0.5167 60:0.5333 61:0.55 62:0.5667 63:0.5833 64:0.6 65:0.6333 66:0.65 67:0.6667 68:0.7 69:0.7333 70:0.7667 71:0.8 72:0.85 73:0.8833 74:0.9333 75:0.95 76:1 77:1 78:1 79:1 80:1 81:1 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:1 107:0.9333 108:0.8833 109:0.8333 110:0.8 111:0.75 112:0.7167 113:0.65 114:0.6167 115:0.6 116:0.5667 117:0.55 118:0.5333 119:0.5167 120:0.5 121:0.4833 122:0.4667 123:0.45 124:0.4167 125:0.4333 126:0.4167 127:0.3833 128:0.3833 129:0.3833 130:0.3833 131:0.3833 132:0.3667 133:0.3667 134:0.3667 135:0.35 136:0.35 137:0.35 138:0.3333 139:0.3333 140:0.3333 141:0.3167 142:0.28073684 143:0.28073684 144:0.28073684 145:0.28073684 146:0.28073684 147:0.28073684 148:0.28073684 149:0.28073684 150:0.28073684 151:0.28073684 152:0.28073684 153:0.28073684 154:0.28073684 155:0.28073684 156:0.29821053 157:0.30356894 158:0.28567602 159:0.28567602 160:0.30356894 161:0.30356894 162:0.30356894 163:0.30356894 164:0.32146186 165:0.33924764 166:0.91074968 167:0.91074968 168:0.91074968 169:0.92853546 170:0.92853546 171:0.87496384 172:0.87496384 173:0.87496384 174:0.87496384 175:0.87496384 176:0.87496384 177:0.87496384 178:0.87496384 179:0.9643213 180:0.9643213 181:0.9643213 182:0.9643213 183:0.9643213 184:0.85717806 185:0.85717806 186:0.85717806 187:0.85717806 188:0.85717806 189:0.85717806 190:0.85717806 191:0.7321419 192:0.71424898 193:0.67857028 194:0.67857028 195:0.6964632 196:0.67857028 197:0.67857028 198:0.32146186 199:0.30356894 200:0.30356894 201:0.30356894 202:0.30356894 203:0.28567602 204:0.26789024 205:0.24999732 206:0.26789024 207:0.26789024 208:0.26789024 209:0.24999732 210:0.24999732 211:0.26789024 212:0.24999732 213:0.24999732 214:0.26789024 215:0.24999732 216:0.24999732 217:0.24999732 218:0.24999732 219:0.24999732 220:0.26789024 221:0.3 222:0.3 223:0.3167 224:0.3167 225:0.3167 226:0.3167 227:0.3333 228:0.3333 229:0.3333 230:0.35 231:0.35 232:0.3667 233:0.3667 234:0.3833 235:0.3833 236:0.4 237:0.4 238:0.4167 239:0.4333 240:0.4333 241:0.45 242:0.4667 243:0.4833 244:0.5 245:0.5167 246:0.5333 247:0.55 248:0.5667 249:0.6 250:0.6333 251:0.65 252:0.6833 253:0.7333 254:0.7667 255:0.8167 256:0.8667 257:0.9167 258:0.9167 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:1 287:1 288:1 289:1 290:1 291:1 292:1 293:1 294:0.7833 295:0.75 296:0.7333 297:0.7 298:0.6833 299:0.65 300:0.6333 301:0.6167 302:0.6 303:0.5833 304:0.5667 305:0.55 306:0.5333 307:0.5 308:0.4833 309:0.4833 310:0.4667 311:0.45 312:0.45 313:0.4333 314:0.4333 315:0.4333 316:0.4167 317:0.4167 318:0.4 319:0.4 320:0.4 321:0.3833 322:0.3833 323:0.3833 324:0.3667 325:0.3667 326:0.3667 327:0.3667 328:0.35 329:0.35 330:0.35 331:0.35 332:0.35 333:0.35 334:0.3333 335:0.3333 336:0.3333 337:0.3333 338:0.3333 339:0.3333 340:0.3333 341:0.3333 342:0.3167 343:0.3167 344:0.3167 345:0.3167 346:0.3167 347:0.3167 348:0.3167 349:0.3167 350:0.3167 351:0.3167 352:0.3167 353:0.3167 354:0.3167 355:0.3167 356:0.3167 357:0.3167 358:0.3167 359:0.3167 360:0.3167 +0.01691612721349328 1:0.6833 2:0.6833 3:0.6833 4:0.6833 5:0.6667 6:0.6667 7:0.65 8:0.65 9:0.65 10:0.65 11:0.65 12:0.65 13:0.65 14:0.6667 15:0.6667 16:0.7333 17:0.7333 18:0.7333 19:0.7333 20:0.7333 21:0.7333 22:0.7333 23:0.75 24:0.9167 25:0.9167 26:0.8833 27:0.8167 28:0.75 29:0.7333 30:0.7167 31:0.4833 32:0.3667 33:0.3667 34:0.3667 35:0.3667 36:0.3667 37:0.3667 38:0.3667 39:0.3667 40:0.3667 41:0.3667 42:0.3667 43:0.3667 44:0.3667 45:0.35 46:0.35 47:0.35 48:0.35 49:0.35 50:0.35 51:0.35 52:0.35 53:0.35 54:0.35 55:0.35 56:0.35 57:0.35 58:0.35 59:0.3667 60:0.4667 61:0.3833 62:0.3833 63:0.3833 64:0.3833 65:0.3833 66:0.3833 67:0.4167 68:0.3833 69:0.4167 70:0.4167 71:0.4167 72:0.4333 73:0.4333 74:0.4333 75:0.4333 76:0.4333 77:0.4333 78:0.4333 79:0.4333 80:0.4333 81:0.4333 82:0.4667 83:0.5333 84:0.9667 85:0.9667 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:0.7667 99:0.7667 100:0.5 101:0.5 102:0.4167 103:0.4167 104:0.4 105:0.3 106:0.2833 107:0.2833 108:0.2833 109:0.2833 110:0.2833 111:0.2167 112:0.2167 113:0.2167 114:0.2167 115:0.2167 116:0.2167 117:0.2167 118:0.2 119:0.2 120:0.1833 121:0.2 122:0.2 123:0.2 124:0.2 125:0.2 126:0.2 127:0.2 128:0.2 129:0.2 130:0.2 131:0.2 132:0.2 133:0.2 134:0.1167 135:0.1167 136:0.1167 137:0.1167 138:0.1167 139:0.1 140:0.1 141:0.1 142:0.052631579 143:0.052631579 144:0.052631579 145:0.070210526 146:0.070210526 147:0.070210526 148:0.070210526 149:0.070210526 150:0.052631579 151:0.052631579 152:0.052631579 153:0.070210526 154:0.070210526 155:0.070210526 156:0.070210526 157:0.053603763 158:0.053603763 159:0.053603763 160:0.035710842 161:0.053603763 162:0.053603763 163:0.053603763 164:0.053603763 165:0.053603763 166:0.035710842 167:0.035710842 168:0.035710842 169:0.053603763 170:0.053603763 171:0.035710842 172:0.035710842 173:0.035710842 174:0.035710842 175:0.035710842 176:0.035710842 177:0.035710842 178:0.035710842 179:0.035710842 180:0.035710842 181:0.035710842 182:0.035710842 183:0.035710842 184:0.035710842 185:0.035710842 186:0.035710842 187:0.035710842 188:0.035710842 189:0.035710842 190:0.035710842 191:0.035710842 192:0.035710842 193:0.035710842 194:0.035710842 195:0.035710842 196:0.035710842 197:0.035710842 198:0.035710842 199:0.035710842 200:0.035710842 201:0.035710842 202:0.035710842 203:0.035710842 204:0.035710842 205:0.035710842 206:0.035710842 207:0.035710842 208:0.035710842 209:0.035710842 210:0.035710842 211:0.035710842 212:0.035710842 213:0.035710842 214:0.035710842 215:0.035710842 216:0.035710842 217:0.035710842 218:0.035710842 219:0.035710842 220:0.035710842 221:0.1 222:0.1 223:0.1 224:0.1167 225:0.1167 226:0.1167 227:0.1167 228:0.1167 229:0.1167 230:0.1167 231:0.1167 232:0.1167 233:0.1167 234:0.1333 235:0.1333 236:0.1333 237:0.1333 238:0.1333 239:0.15 240:0.15 241:0.15 242:0.15 243:0.1667 244:0.1667 245:0.1667 246:0.1833 247:0.1833 248:0.1833 249:0.2167 250:0.2167 251:0.2167 252:0.2667 253:0.25 254:0.25 255:0.2667 256:0.35 257:0.45 258:0.45 259:0.45 260:0.45 261:0.45 262:0.55 263:0.55 264:0.6167 265:0.6667 266:0.6667 267:0.9167 268:1 269:0.9167 270:0.9 271:0.9 272:0.9 273:0.9 274:0.9 275:0.9 276:0.9 277:0.8 278:0.8 279:0.8 280:0.8 281:0.8 282:0.8 283:0.75 284:0.7333 285:0.65 286:0.6 287:0.5833 288:0.4833 289:0.4833 290:0.4833 291:0.4667 292:0.45 293:0.4167 294:0.4 295:0.4 296:0.4 297:0.4 298:0.4 299:0.4 300:0.3833 301:0.4 302:0.4 303:0.4 304:0.4 305:0.4 306:0.4167 307:0.4 308:0.4 309:0.4167 310:0.4167 311:0.4167 312:0.4167 313:0.4167 314:0.4167 315:0.4167 316:0.4 317:0.4 318:0.4 319:0.4 320:0.4 321:0.4 322:0.4 323:0.4 324:0.4 325:0.4 326:0.4 327:0.4 328:0.4 329:0.4 330:0.4 331:0.4167 332:0.4167 333:0.4167 334:0.4167 335:0.4333 336:0.4167 337:0.5 338:0.5 339:0.5 340:0.5 341:0.5 342:0.5 343:0.5 344:0.5 345:0.6333 346:0.6333 347:0.6333 348:0.6333 349:0.6333 350:0.65 351:0.7167 352:0.8 353:0.8167 354:0.6833 355:0.6833 356:0.6833 357:0.6833 358:0.6833 359:0.6833 360:0.6833 +0.2535603430423138 1:0.5333 2:0.5333 3:0.5333 4:0.6333 5:0.6167 6:0.6167 7:0.6167 8:0.6167 9:0.6167 10:0.6 11:0.6 12:0.6 13:0.6 14:0.6 15:0.6 16:0.6 17:0.5833 18:0.5833 19:0.5667 20:0.5833 21:0.5667 22:0.5667 23:0.5833 24:0.5667 25:0.5833 26:0.5667 27:0.5833 28:0.6 29:0.65 30:0.4333 31:0.6167 32:0.4333 33:0.6 34:0.4333 35:0.6 36:0.4333 37:0.6 38:0.4333 39:0.4333 40:0.5667 41:0.5667 42:0.55 43:0.55 44:0.3167 45:0.3167 46:0.3167 47:0.3167 48:0.3167 49:0.3167 50:0.3167 51:0.3167 52:0.3167 53:0.3167 54:0.3167 55:0.3167 56:0.3167 57:0.3167 58:0.3167 59:0.3167 60:0.3167 61:0.3167 62:0.3333 63:0.3333 64:0.3333 65:0.3667 66:0.3333 67:0.3667 68:0.3333 69:0.3333 70:0.3667 71:0.3667 72:0.3667 73:0.3667 74:0.3667 75:0.4167 76:0.4167 77:0.4167 78:0.4167 79:0.4167 80:0.4167 81:0.4167 82:0.4167 83:0.4167 84:0.4667 85:0.5 86:0.5 87:1 88:1 89:0.6667 90:0.6667 91:0.6667 92:0.6667 93:0.6667 94:0.6667 95:0.6667 96:1 97:1 98:0.9167 99:0.7833 100:0.7833 101:0.7833 102:0.6833 103:0.55 104:0.55 105:0.4667 106:0.5333 107:0.3833 108:0.4 109:0.4 110:0.4 111:0.3167 112:0.3 113:0.2833 114:0.2833 115:0.2833 116:0.25 117:0.25 118:0.2333 119:0.2333 120:0.2333 121:0.2333 122:0.2333 123:0.2333 124:0.2333 125:0.2333 126:0.1833 127:0.1833 128:0.2 129:0.2 130:0.2 131:0.2 132:0.2 133:0.2 134:0.2 135:0.2 136:0.2 137:0.2 138:0.2 139:0.2 140:0.2 141:0.2 142:0.15789474 143:0.15789474 144:0.10526316 145:0.10526316 146:0.087684211 147:0.10526316 148:0.10526316 149:0.10526316 150:0.10526316 151:0.10526316 152:0.10526316 153:0.10526316 154:0.10526316 155:0.10526316 156:0.10526316 157:0.089282462 158:0.089282462 159:0.089282462 160:0.089282462 161:0.089282462 162:0.089282462 163:0.089282462 164:0.089282462 165:0.089282462 166:0.089282462 167:0.089282462 168:0.089282462 169:0.089282462 170:0.089282462 171:0.071389541 172:0.089282462 173:0.089282462 174:0.089282462 175:0.089282462 176:0.089282462 177:0.089282462 178:0.089282462 179:0.089282462 180:0.089282462 181:0.089282462 182:0.089282462 183:0.089282462 184:0.089282462 185:0.089282462 186:0.089282462 187:0.089282462 188:0.089282462 189:0.089282462 190:0.089282462 191:0.089282462 192:0.089282462 193:0.089282462 194:0.089282462 195:0.089282462 196:0.089282462 197:0.089282462 198:0.089282462 199:0.089282462 200:0.089282462 201:0.089282462 202:0.089282462 203:0.089282462 204:0.089282462 205:0.089282462 206:0.089282462 207:0.10717538 208:0.10717538 209:0.10717538 210:0.10717538 211:0.10717538 212:0.10717538 213:0.10717538 214:0.10717538 215:0.10717538 216:0.10717538 217:0.10717538 218:0.10717538 219:0.10717538 220:0.10717538 221:0.1667 222:0.1667 223:0.1667 224:0.1667 225:0.15 226:0.1667 227:0.25 228:0.25 229:0.25 230:0.2333 231:0.25 232:0.25 233:0.2333 234:0.2333 235:0.25 236:0.25 237:0.25 238:0.25 239:0.25 240:0.25 241:0.25 242:0.25 243:0.25 244:0.25 245:0.3 246:0.3 247:0.3 248:0.3 249:0.3 250:0.3 251:0.3167 252:0.3167 253:0.3167 254:0.3167 255:0.45 256:0.4333 257:0.45 258:0.4833 259:0.5 260:0.5 261:0.5667 262:0.6167 263:0.65 264:0.8333 265:0.9333 266:0.6333 267:0.6333 268:0.6333 269:0.6333 270:0.6333 271:0.6333 272:0.6333 273:0.6333 274:0.6333 275:0.6333 276:0.6333 277:0.6333 278:0.8 279:0.8 280:0.8 281:0.7667 282:0.65 283:0.6 284:0.5667 285:0.5833 286:0.4833 287:0.45 288:0.4167 289:0.4167 290:0.4167 291:0.4167 292:0.4 293:0.3833 294:0.4 295:0.3833 296:0.4 297:0.3833 298:0.4 299:0.4 300:0.4 301:0.4 302:0.3833 303:0.4 304:0.4 305:0.4 306:0.4167 307:0.4333 308:0.4167 309:0.4333 310:0.4167 311:0.4167 312:0.4167 313:0.4 314:0.4 315:0.4 316:0.4 317:0.4 318:0.4 319:0.4 320:0.4 321:0.4 322:0.4 323:0.4 324:0.4 325:0.4 326:0.4 327:0.4 328:0.4 329:0.4 330:0.4 331:0.4167 332:0.4167 333:0.4167 334:0.4167 335:0.4667 336:0.4833 337:0.4833 338:0.4833 339:0.4667 340:0.4833 341:0.4667 342:0.4833 343:0.6167 344:0.6167 345:0.6167 346:0.6167 347:0.6167 348:0.6333 349:0.6833 350:0.7333 351:0.8 352:0.55 353:0.55 354:0.55 355:0.5333 356:0.5333 357:0.5333 358:0.5333 359:0.5333 360:0.5333 +0.1593974518798796 1:1 2:1 3:1 4:1 5:1 6:1 7:1 8:1 9:1 10:1 11:1 12:1 13:1 14:1 15:1 16:1 17:1 18:1 19:1 20:1 21:0.3167 22:0.3 23:0.2833 24:0.2833 25:0.2667 26:0.25 27:0.25 28:0.2667 29:0.2667 30:0.25 31:0.2667 32:0.2667 33:0.2667 34:0.2667 35:0.2667 36:0.2667 37:0.25 38:0.2667 39:0.2667 40:0.25 41:0.25 42:0.2667 43:0.2667 44:0.2667 45:0.2667 46:0.2833 47:0.2833 48:0.2833 49:0.2833 50:0.3 51:0.3 52:0.3 53:0.3 54:0.3 55:0.3 56:0.3 57:0.3333 58:0.3333 59:0.3333 60:0.3333 61:0.3833 62:0.4 63:0.4 64:0.4167 65:0.4333 66:0.45 67:0.4667 68:0.4833 69:0.5167 70:0.5333 71:0.55 72:0.5833 73:0.6167 74:0.65 75:0.7167 76:0.7667 77:0.7833 78:0.9167 79:0.9667 80:0.9667 81:1 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:0.8 104:0.8 105:0.7167 106:0.6833 107:0.65 108:0.6167 109:0.6167 110:0.5333 111:0.5167 112:0.4833 113:0.4667 114:0.4667 115:0.4667 116:0.4667 117:0.4333 118:0.4167 119:0.4 120:0.4 121:0.35 122:0.3333 123:0.3333 124:0.3167 125:0.3167 126:0.3 127:0.3 128:0.3 129:0.2833 130:0.2833 131:0.2833 132:0.2667 133:0.2667 134:0.2667 135:0.25 136:0.25 137:0.25 138:0.25 139:0.25 140:0.2333 141:0.2333 142:0.19294737 143:0.19294737 144:0.19294737 145:0.17547368 146:0.17547368 147:0.17547368 148:0.17547368 149:0.17547368 150:0.17547368 151:0.17547368 152:0.17547368 153:0.17547368 154:0.17547368 155:0.15789474 156:0.15789474 157:0.14285408 158:0.14285408 159:0.14285408 160:0.14285408 161:0.14285408 162:0.14285408 163:0.14285408 164:0.14285408 165:0.14285408 166:0.14285408 167:0.14285408 168:0.14285408 169:0.14285408 170:0.14285408 171:0.14285408 172:0.14285408 173:0.14285408 174:0.14285408 175:0.14285408 176:0.14285408 177:0.14285408 178:0.14285408 179:0.14285408 180:0.14285408 181:0.14285408 182:0.14285408 183:0.14285408 184:0.14285408 185:0.14285408 186:0.14285408 187:0.14285408 188:0.14285408 189:0.14285408 190:0.14285408 191:0.14285408 192:0.14285408 193:0.14285408 194:0.14285408 195:0.14285408 196:0.14285408 197:0.14285408 198:0.14285408 199:0.14285408 200:0.14285408 201:0.14285408 202:0.14285408 203:0.14285408 204:0.14285408 205:0.14285408 206:0.14285408 207:0.14285408 208:0.160747 209:0.160747 210:0.160747 211:0.160747 212:0.160747 213:0.160747 214:0.160747 215:0.160747 216:0.160747 217:0.160747 218:0.17853278 219:0.17853278 220:0.17853278 221:0.2333 222:0.2333 223:0.25 224:0.25 225:0.25 226:0.25 227:0.25 228:0.2667 229:0.2667 230:0.2667 231:0.2833 232:0.2833 233:0.2833 234:0.3 235:0.3 236:0.3 237:0.3167 238:0.3167 239:0.3333 240:0.3333 241:0.35 242:0.35 243:0.3667 244:0.35 245:0.4 246:0.4167 247:0.4333 248:0.45 249:0.4667 250:0.4833 251:0.5167 252:0.5333 253:0.5667 254:0.6 255:0.6333 256:0.6667 257:0.7167 258:0.7667 259:0.8333 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:0.9167 284:0.85 285:0.7833 286:0.7333 287:0.7 288:0.65 289:0.6167 290:0.5833 291:0.55 292:0.5333 293:0.5167 294:0.4833 295:0.4667 296:0.45 297:0.4333 298:0.4167 299:0.4 300:0.4 301:0.3833 302:0.3667 303:0.3667 304:0.35 305:0.35 306:0.3333 307:0.3333 308:0.3167 309:0.3167 310:0.3 311:0.3 312:0.3 313:0.2833 314:0.2833 315:0.2833 316:0.2833 317:0.2667 318:0.2667 319:0.2667 320:0.2667 321:0.25 322:0.25 323:0.25 324:0.25 325:0.25 326:0.25 327:0.2333 328:0.2333 329:0.2333 330:0.2333 331:0.2333 332:0.2333 333:0.2333 334:0.2333 335:0.2333 336:0.2333 337:0.2333 338:0.2333 339:0.2333 340:0.2333 341:0.2333 342:0.2333 343:0.2333 344:0.2333 345:0.2333 346:0.2333 347:0.2333 348:0.2333 349:0.2333 350:0.2333 351:0.2333 352:0.3 353:0.3333 354:0.3333 355:0.3333 356:0.3333 357:0.3333 358:0.3333 359:0.3333 360:1 +0.5026215130059279 1:1 2:1 3:1 4:1 5:1 6:1 7:1 8:1 9:1 10:1 11:1 12:1 13:1 14:0.25 15:0.25 16:0.25 17:0.25 18:0.25 19:0.2333 20:0.2333 21:0.25 22:0.25 23:0.2333 24:0.25 25:0.25 26:0.25 27:0.25 28:0.25 29:0.25 30:0.25 31:0.25 32:0.25 33:0.25 34:0.25 35:0.2333 36:0.25 37:0.25 38:0.25 39:0.25 40:0.25 41:0.25 42:0.2667 43:0.2667 44:0.2667 45:0.2667 46:0.2833 47:0.2833 48:0.2833 49:0.2833 50:0.3 51:0.3 52:0.3 53:0.3 54:0.3 55:0.3 56:0.3 57:0.35 58:0.35 59:0.3667 60:0.3667 61:0.3833 62:0.4 63:0.4 64:0.4167 65:0.4333 66:0.45 67:0.4667 68:0.4833 69:0.5167 70:0.5333 71:0.55 72:0.5833 73:0.6167 74:0.65 75:0.7333 76:0.7333 77:0.7833 78:0.8167 79:0.8333 80:1 81:1 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:0.75 104:0.7667 105:0.7167 106:0.7 107:0.7 108:0.65 109:0.5833 110:0.5333 111:0.5167 112:0.5 113:0.5 114:0.4833 115:0.4667 116:0.45 117:0.45 118:0.3833 119:0.3833 120:0.3833 121:0.3833 122:0.3667 123:0.3667 124:0.35 125:0.35 126:0.3 127:0.3 128:0.3 129:0.2833 130:0.2833 131:0.2833 132:0.2667 133:0.2667 134:0.2667 135:0.2667 136:0.2667 137:0.2667 138:0.2667 139:0.2667 140:0.2333 141:0.2333 142:0.19294737 143:0.19294737 144:0.19294737 145:0.17547368 146:0.17547368 147:0.17547368 148:0.17547368 149:0.17547368 150:0.17547368 151:0.17547368 152:0.17547368 153:0.17547368 154:0.17547368 155:0.15789474 156:0.15789474 157:0.14285408 158:0.14285408 159:0.14285408 160:0.14285408 161:0.14285408 162:0.14285408 163:0.14285408 164:0.14285408 165:0.14285408 166:0.14285408 167:0.14285408 168:0.14285408 169:0.14285408 170:0.14285408 171:0.14285408 172:0.14285408 173:0.14285408 174:0.14285408 175:0.14285408 176:0.14285408 177:0.14285408 178:0.14285408 179:0.14285408 180:0.14285408 181:0.14285408 182:0.14285408 183:0.14285408 184:0.14285408 185:0.14285408 186:0.14285408 187:0.14285408 188:0.14285408 189:0.14285408 190:0.14285408 191:0.14285408 192:0.14285408 193:0.14285408 194:0.14285408 195:0.14285408 196:0.14285408 197:0.14285408 198:0.14285408 199:0.14285408 200:0.14285408 201:0.14285408 202:0.14285408 203:0.14285408 204:0.14285408 205:0.14285408 206:0.14285408 207:0.14285408 208:0.160747 209:0.160747 210:0.160747 211:0.160747 212:0.160747 213:0.160747 214:0.160747 215:0.160747 216:0.160747 217:0.160747 218:0.17853278 219:0.17853278 220:0.17853278 221:0.2333 222:0.2333 223:0.25 224:0.25 225:0.25 226:0.25 227:0.25 228:0.2667 229:0.2667 230:0.2667 231:0.2833 232:0.2833 233:0.2833 234:0.3 235:0.3 236:0.3 237:0.3167 238:0.3167 239:0.3333 240:0.3333 241:0.35 242:0.3667 243:0.3667 244:0.3833 245:0.3833 246:0.3833 247:0.3833 248:0.3833 249:0.4667 250:0.4833 251:0.5167 252:0.5333 253:0.5667 254:0.6 255:0.6333 256:0.6667 257:0.7167 258:0.7667 259:0.8333 260:0.9167 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:0.9167 284:0.85 285:0.7833 286:0.7333 287:0.7 288:0.65 289:0.6167 290:0.5833 291:0.55 292:0.5333 293:0.5167 294:0.4833 295:0.4667 296:0.45 297:0.4333 298:0.4167 299:0.4 300:0.4 301:0.3833 302:0.3667 303:0.3667 304:0.35 305:0.35 306:0.3333 307:0.3333 308:0.3167 309:0.3167 310:0.3 311:0.3 312:0.3 313:0.2833 314:0.2833 315:0.2833 316:0.2833 317:0.2667 318:0.2667 319:0.2667 320:0.2667 321:0.25 322:0.25 323:0.25 324:0.25 325:0.25 326:0.25 327:0.25 328:0.25 329:0.25 330:0.25 331:0.25 332:0.25 333:0.25 334:0.25 335:0.25 336:0.25 337:0.25 338:0.25 339:0.25 340:0.25 341:0.2667 342:0.3 343:0.3 344:0.3 345:0.3 346:0.3 347:0.3 348:0.3333 349:0.3333 350:0.3333 351:0.35 352:0.3333 353:0.3167 354:1 355:1 356:1 357:1 358:1 359:1 360:1 +1.159492380339165 1:1 2:1 3:1 4:1 5:1 6:1 7:1 8:1 9:1 10:1 11:1 12:0.2167 13:0.2167 14:0.2167 15:0.2167 16:0.2167 17:0.2 18:0.2 19:0.1833 20:0.1833 21:0.1833 22:0.2 23:0.2 24:0.1833 25:0.1833 26:0.2 27:0.2 28:0.2 29:0.1833 30:0.2 31:0.2 32:0.2 33:0.1833 34:0.1833 35:0.1833 36:0.2 37:0.2 38:0.1833 39:0.1833 40:0.1833 41:0.2 42:0.2 43:0.2 44:0.2 45:0.2 46:0.2 47:0.2167 48:0.2167 49:0.2167 50:0.2167 51:0.2167 52:0.2333 53:0.2333 54:0.2333 55:0.25 56:0.25 57:0.25 58:0.25 59:0.25 60:0.25 61:0.25 62:0.25 63:0.3 64:0.3167 65:0.3167 66:0.3333 67:0.35 68:0.3667 69:0.4167 70:0.4 71:0.4167 72:0.4333 73:0.45 74:0.4833 75:0.4833 76:0.4833 77:0.5833 78:0.6333 79:0.6667 80:0.6667 81:0.7167 82:0.9 83:0.9 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:1 107:0.7667 108:0.7667 109:0.7667 110:0.7833 111:0.7 112:0.6667 113:0.65 114:0.6167 115:0.6 116:0.5667 117:0.5667 118:0.5333 119:0.5333 120:0.5 121:0.4833 122:0.4667 123:0.45 124:0.45 125:0.4333 126:0.4167 127:0.4167 128:0.4 129:0.4 130:0.3833 131:0.3833 132:0.3667 133:0.3667 134:0.3667 135:0.35 136:0.35 137:0.35 138:0.3333 139:0.3333 140:0.3333 141:0.3167 142:0.28073684 143:0.28073684 144:0.28073684 145:0.26315789 146:0.26315789 147:0.26315789 148:0.26315789 149:0.26315789 150:0.22810526 151:0.22810526 152:0.22810526 153:0.22810526 154:0.22810526 155:0.22810526 156:0.22810526 157:0.21431862 158:0.1964257 159:0.1964257 160:0.1964257 161:0.1964257 162:0.1964257 163:0.1964257 164:0.1964257 165:0.1964257 166:0.1964257 167:0.1964257 168:0.1964257 169:0.1964257 170:0.1964257 171:0.1964257 172:0.1964257 173:0.1964257 174:0.1964257 175:0.1964257 176:0.1964257 177:0.1964257 178:0.1964257 179:0.1964257 180:0.1964257 181:0.1964257 182:0.1964257 183:0.1964257 184:0.1964257 185:0.1964257 186:0.1964257 187:0.1964257 188:0.1964257 189:0.1964257 190:0.1964257 191:0.1964257 192:0.1964257 193:0.1964257 194:0.1964257 195:0.1964257 196:0.1964257 197:0.1964257 198:0.1964257 199:0.1964257 200:0.1964257 201:0.1964257 202:0.1964257 203:0.1964257 204:0.1964257 205:0.21431862 206:0.21431862 207:0.21431862 208:0.21431862 209:0.21431862 210:0.21431862 211:0.21431862 212:0.21431862 213:0.2321044 214:0.2321044 215:0.2321044 216:0.2321044 217:0.2321044 218:0.2321044 219:0.24999732 220:0.24999732 221:0.3 222:0.3 223:0.3167 224:0.3167 225:0.3167 226:0.3167 227:0.3333 228:0.3333 229:0.3333 230:0.35 231:0.35 232:0.3667 233:0.3667 234:0.3833 235:0.3833 236:0.4 237:0.4 238:0.4167 239:0.4167 240:0.4167 241:0.4167 242:0.4167 243:0.4167 244:0.4167 245:0.5167 246:0.5333 247:0.55 248:0.5667 249:0.6 250:0.6333 251:0.65 252:0.6833 253:0.7333 254:0.7667 255:0.8167 256:0.8667 257:0.9333 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:0.95 281:0.8167 282:0.7333 283:0.6833 284:0.6333 285:0.5833 286:0.55 287:0.5167 288:0.4833 289:0.45 290:0.4333 291:0.4167 292:0.4 293:0.3833 294:0.3667 295:0.35 296:0.3333 297:0.3167 298:0.3167 299:0.3 300:0.3 301:0.2833 302:0.2833 303:0.2667 304:0.2667 305:0.25 306:0.25 307:0.25 308:0.2333 309:0.2333 310:0.2333 311:0.2167 312:0.2167 313:0.2167 314:0.2167 315:0.2167 316:0.2 317:0.2 318:0.2167 319:0.2167 320:0.2167 321:0.2 322:0.2167 323:0.2167 324:0.2167 325:0.2 326:0.2167 327:0.2167 328:0.2167 329:0.2167 330:0.2 331:0.2167 332:0.2167 333:0.2 334:0.2 335:0.2167 336:0.2167 337:0.2167 338:0.2667 339:0.2667 340:0.2667 341:0.2667 342:0.2667 343:0.2667 344:0.2667 345:0.2667 346:0.2667 347:0.2667 348:0.2667 349:0.3333 350:0.3333 351:0.3333 352:0.3333 353:0.3167 354:0.3333 355:1 356:1 357:1 358:1 359:1 360:1 +2 1:0.25 2:0.25 3:0.3 4:0.3 5:0.3 6:0.3333 7:0.3333 8:0.3667 9:0.3667 10:0.4 11:0.4 12:0.4167 13:0.4167 14:0.9167 15:0.9 16:0.9 17:0.9 18:0.9 19:0.9 20:0.9 21:1 22:1 23:1 24:0.1833 25:0.1833 26:0.1833 27:0.1833 28:0.1833 29:0.1833 30:0.1833 31:0.1833 32:0.1833 33:0.1833 34:0.1833 35:0.1833 36:0.1833 37:0.1833 38:0.1833 39:0.1833 40:0.1833 41:0.1833 42:0.1833 43:0.1833 44:0.1833 45:0.1833 46:0.1833 47:0.1833 48:0.1833 49:0.1833 50:0.1833 51:0.1833 52:0.1833 53:0.1833 54:0.1833 55:0.1833 56:0.1833 57:0.2 58:0.2 59:0.2 60:0.2167 61:0.2167 62:0.2167 63:0.2333 64:0.2333 65:0.25 66:0.25 67:0.2667 68:0.2833 69:0.2833 70:0.3 71:0.3167 72:0.3333 73:0.35 74:0.3667 75:0.3833 76:0.4167 77:0.4167 78:0.4167 79:0.4333 80:0.4833 81:0.5167 82:0.5833 83:0.65 84:0.75 85:0.8667 86:0.9333 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:1 107:1 108:1 109:1 110:0.8 111:0.8 112:0.7667 113:0.75 114:0.7 115:0.7167 116:0.65 117:0.6333 118:0.6 119:0.5833 120:0.5667 121:0.55 122:0.5333 123:0.5167 124:0.5 125:0.5 126:0.4833 127:0.4667 128:0.4667 129:0.45 130:0.4333 131:0.4333 132:0.4167 133:0.4167 134:0.4 135:0.4 136:0.4 137:0.3833 138:0.3833 139:0.3833 140:0.3667 141:0.3667 142:0.33336842 143:0.31578947 144:0.31578947 145:0.31578947 146:0.31578947 147:0.29821053 148:0.29821053 149:0.29821053 150:0.29821053 151:0.29821053 152:0.29821053 153:0.28073684 154:0.28073684 155:0.28073684 156:0.26315789 157:0.24999732 158:0.24999732 159:0.24999732 160:0.2321044 161:0.2321044 162:0.2321044 163:0.2321044 164:0.2321044 165:0.2321044 166:0.2321044 167:0.2321044 168:0.2321044 169:0.2321044 170:0.2321044 171:0.2321044 172:0.2321044 173:0.2321044 174:0.2321044 175:0.2321044 176:0.2321044 177:0.2321044 178:0.2321044 179:0.2321044 180:0.2321044 181:0.2321044 182:0.2321044 183:0.2321044 184:0.2321044 185:0.2321044 186:0.2321044 187:0.2321044 188:0.2321044 189:0.2321044 190:0.2321044 191:0.2321044 192:0.2321044 193:0.2321044 194:0.2321044 195:0.2321044 196:0.2321044 197:0.2321044 198:0.2321044 199:0.2321044 200:0.2321044 201:0.2321044 202:0.2321044 203:0.24999732 204:0.24999732 205:0.24999732 206:0.24999732 207:0.24999732 208:0.24999732 209:0.24999732 210:0.24999732 211:0.26789024 212:0.26789024 213:0.26789024 214:0.26789024 215:0.26789024 216:0.26789024 217:0.28567602 218:0.28567602 219:0.28567602 220:0.28567602 221:0.35 222:0.35 223:0.35 224:0.3667 225:0.3667 226:0.3667 227:0.3833 228:0.3833 229:0.3833 230:0.4 231:0.4 232:0.4 233:0.4 234:0.4 235:0.4 236:0.4 237:0.4 238:0.4833 239:0.4833 240:0.5 241:0.5167 242:0.5333 243:0.55 244:0.55 245:0.55 246:0.5667 247:0.6 248:0.6167 249:0.65 250:0.6667 251:0.7 252:0.7333 253:0.7833 254:0.8167 255:0.8667 256:0.9333 257:0.9667 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:0.9 280:0.8 281:0.7167 282:0.65 283:0.6 284:0.55 285:0.5167 286:0.4833 287:0.3833 288:0.3667 289:0.35 290:0.3333 291:0.3167 292:0.3 293:0.2833 294:0.2833 295:0.2667 296:0.25 297:0.25 298:0.2333 299:0.2333 300:0.2167 301:0.2167 302:0.2167 303:0.2 304:0.2 305:0.2 306:0.1833 307:0.1833 308:0.1833 309:0.1833 310:0.1833 311:0.1667 312:0.1667 313:0.1667 314:0.1667 315:0.1667 316:0.1667 317:0.15 318:0.1667 319:0.1667 320:0.1667 321:0.1667 322:0.1667 323:0.1667 324:0.1667 325:0.1667 326:0.1667 327:0.1667 328:0.1667 329:0.1667 330:0.1667 331:0.1667 332:0.1667 333:0.1667 334:0.1667 335:0.1667 336:0.1667 337:0.1667 338:0.1667 339:0.15 340:0.1667 341:0.1667 342:0.1833 343:0.1833 344:0.1833 345:0.1833 346:0.1833 347:0.1833 348:0.1833 349:0.2 350:0.2167 351:0.2167 352:0.2 353:0.2 354:0.2 355:0.2167 356:0.2167 357:0.2167 358:0.2167 359:0.2333 360:0.25 +1.039765474099854 1:1 2:1 3:1 4:1 5:1 6:0.4667 7:0.45 8:0.3333 9:0.3 10:0.3 11:0.3 12:0.3 13:0.3 14:0.25 15:0.25 16:0.25 17:0.25 18:0.25 19:0.25 20:0.25 21:0.25 22:0.25 23:0.25 24:0.2333 25:0.2167 26:0.2167 27:0.2167 28:0.2167 29:0.2333 30:0.2167 31:0.2167 32:0.2333 33:0.2333 34:0.2167 35:0.2167 36:0.2333 37:0.2333 38:0.2167 39:0.2 40:0.2 41:0.2 42:0.2167 43:0.2167 44:0.2 45:0.2 46:0.35 47:0.35 48:0.2 49:0.2 50:0.2 51:0.2167 52:0.2167 53:0.2 54:0.2 55:0.2167 56:0.2 57:0.2 58:0.2 59:0.2 60:0.2167 61:0.2167 62:0.2167 63:0.2167 64:0.2167 65:0.2167 66:0.2167 67:0.2167 68:0.2167 69:0.2167 70:0.2167 71:0.2167 72:0.5333 73:0.5333 74:0.5333 75:0.5333 76:0.5333 77:0.5333 78:0.5333 79:0.5333 80:0.5333 81:0.5333 82:0.5333 83:0.5333 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:1 107:1 108:1 109:1 110:1 111:1 112:0.45 113:0.45 114:0.45 115:0.45 116:0.45 117:0.45 118:0.45 119:0.45 120:0.45 121:0.45 122:0.45 123:0.45 124:0.45 125:0.3167 126:0.3167 127:0.3167 128:0.3167 129:0.3167 130:0.3 131:0.3167 132:0.3167 133:0.3167 134:0.3167 135:0.3167 136:0.3167 137:0.3167 138:0.3167 139:0.3167 140:0.3167 141:0.3167 142:0.26315789 143:0.64915789 144:0.64915789 145:0.31578947 146:0.31578947 147:0.31578947 148:0.31578947 149:0.31578947 150:0.31578947 151:0.31578947 152:0.31578947 153:0.19294737 154:0.19294737 155:0.19294737 156:0.17547368 157:0.160747 158:0.160747 159:0.17853278 160:0.17853278 161:0.17853278 162:0.160747 163:0.17853278 164:0.17853278 165:0.17853278 166:0.160747 167:0.17853278 168:0.17853278 169:0.17853278 170:0.160747 171:0.17853278 172:0.160747 173:0.160747 174:0.160747 175:0.17853278 176:0.26789024 177:0.26789024 178:0.26789024 179:0.26789024 180:0.26789024 181:0.26789024 182:0.26789024 183:0.26789024 184:0.26789024 185:0.26789024 186:0.4286051 187:0.4286051 188:0.4286051 189:0.4286051 190:0.21431862 191:0.1964257 192:0.1964257 193:0.1964257 194:0.1964257 195:0.1964257 196:0.1964257 197:0.1964257 198:0.1964257 199:0.1964257 200:0.1964257 201:0.1964257 202:0.1964257 203:0.1964257 204:0.1964257 205:0.1964257 206:0.1964257 207:0.1964257 208:0.1964257 209:0.1964257 210:0.1964257 211:0.1964257 212:0.26789024 213:0.21431862 214:0.21431862 215:0.26789024 216:0.21431862 217:0.1964257 218:0.21431862 219:0.26789024 220:0.1964257 221:0.25 222:0.35 223:0.35 224:0.35 225:0.35 226:0.35 227:0.35 228:0.35 229:0.35 230:0.35 231:0.35 232:0.35 233:0.35 234:0.35 235:0.4667 236:0.4667 237:0.4667 238:0.4667 239:0.4667 240:0.4667 241:0.4667 242:0.4667 243:0.4667 244:0.4667 245:0.4667 246:0.6 247:0.6 248:0.6 249:0.6 250:0.6 251:0.6 252:0.75 253:0.75 254:0.75 255:0.75 256:0.75 257:0.9 258:0.9 259:0.9 260:0.9 261:0.9 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:0.25 274:0.25 275:0.25 276:0.25 277:0.2333 278:0.2333 279:0.2333 280:0.2333 281:0.2333 282:0.2333 283:0.25 284:0.25 285:0.2333 286:0.25 287:0.25 288:0.25 289:0.2333 290:0.2333 291:0.45 292:0.2333 293:0.2333 294:0.2333 295:0.2333 296:0.3167 297:0.3167 298:0.3167 299:0.3167 300:0.3167 301:0.3167 302:0.3167 303:0.3167 304:0.3167 305:0.3167 306:0.3167 307:0.3 308:0.3167 309:0.3167 310:0.3167 311:0.3167 312:0.3667 313:0.3667 314:0.3667 315:0.35 316:0.35 317:0.35 318:0.3333 319:0.3333 320:0.3333 321:0.3333 322:0.3333 323:0.3333 324:0.3167 325:0.3 326:0.3 327:0.3 328:0.3 329:0.3 330:0.3 331:0.3 332:0.3 333:0.3 334:0.3 335:0.3 336:0.3 337:0.3 338:0.3 339:0.3 340:0.3 341:0.3 342:0.3 343:0.3 344:0.3167 345:0.3167 346:0.3167 347:0.3167 348:0.3333 349:0.35 350:0.3833 351:0.6667 352:0.6667 353:0.6667 354:0.95 355:0.9833 356:1 357:1 358:1 359:1 360:1 +0.3143866473536532 1:0.2333 2:0.2333 3:0.2333 4:0.2333 5:0.1333 6:0.1333 7:0.1333 8:0.1333 9:0.1333 10:0.1333 11:0.1333 12:0.1333 13:0.1333 14:0.1333 15:0.15 16:0.15 17:0.15 18:0.1333 19:0.1333 20:0.1333 21:0.15 22:0.15 23:0.15 24:0.1333 25:0.1333 26:0.1333 27:0.1333 28:0.15 29:0.15 30:0.1333 31:0.1333 32:0.1333 33:0.1333 34:0.1333 35:0.1333 36:0.1333 37:0.15 38:0.15 39:0.2 40:0.2 41:0.2 42:0.2 43:0.1833 44:0.2 45:0.2 46:0.2 47:0.2 48:0.2 49:0.2 50:0.2 51:0.2 52:0.2 53:0.2 54:0.2 55:0.2 56:0.2 57:0.2 58:0.2 59:0.2 60:0.2 61:0.2 62:0.1833 63:0.2 64:0.2 65:0.25 66:0.25 67:0.4 68:0.4 69:0.4 70:0.4 71:0.4 72:0.4 73:0.4 74:0.4 75:0.3833 76:0.4333 77:0.4333 78:0.4333 79:0.4333 80:0.4333 81:0.4333 82:0.7333 83:0.7333 84:0.8667 85:0.8667 86:0.8833 87:0.8833 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:0.8333 102:0.8333 103:0.8333 104:0.7333 105:0.7333 106:0.7333 107:0.5667 108:0.5667 109:0.5667 110:0.5667 111:0.5667 112:0.4333 113:0.4167 114:0.4167 115:0.4167 116:0.3 117:0.2833 118:0.2833 119:0.2833 120:0.2833 121:0.2833 122:0.2833 123:0.2667 124:0.2667 125:0.2667 126:0.2667 127:0.2667 128:0.2667 129:0.2667 130:0.2667 131:0.2667 132:0.2667 133:0.2667 134:0.2667 135:0.2667 136:0.2667 137:0.2667 138:0.2667 139:0.2667 140:0.2667 141:0.3833 142:0.35084211 143:0.35084211 144:0.35084211 145:0.35084211 146:0.26315789 147:0.26315789 148:0.26315789 149:0.26315789 150:0.26315789 151:0.26315789 152:0.26315789 153:0.26315789 154:0.26315789 155:0.26315789 156:0.26315789 157:0.24999732 158:0.24999732 159:0.24999732 160:0.24999732 161:0.24999732 162:0.24999732 163:0.24999732 164:0.37503348 165:0.39281926 166:0.39281926 167:0.39281926 168:0.39281926 169:0.39281926 170:0.39281926 171:0.39281926 172:0.41071218 173:0.41071218 174:0.48217672 175:0.48217672 176:0.48217672 177:0.48217672 178:0.48217672 179:0.48217672 180:0.48217672 181:0.57142704 182:0.67857028 183:0.85717806 184:0.82139222 185:0.82139222 186:0.78571352 187:0.78571352 188:0.78571352 189:0.78571352 190:0.78571352 191:0.78571352 192:0.80360644 193:0.80360644 194:0.80360644 195:0.83928514 196:0.83928514 197:0.83928514 198:0.83928514 199:0.82139222 200:0.82139222 201:0.82139222 202:0.82139222 203:0.78571352 204:0.78571352 205:0.78571352 206:0.78571352 207:0.78571352 208:0.78571352 209:0.82139222 210:0.82139222 211:0.83928514 212:0.83928514 213:0.83928514 214:0.83928514 215:0.80360644 216:0.60710574 217:0.60710574 218:0.60710574 219:0.60710574 220:0.48217672 221:0.5167 222:0.5167 223:0.5167 224:0.5167 225:0.5167 226:0.4167 227:0.4167 228:0.4 229:0.4167 230:0.4 231:0.4167 232:0.4167 233:0.4167 234:0.4167 235:0.4 236:0.4167 237:0.4 238:0.55 239:0.5667 240:0.55 241:0.4167 242:0.4167 243:0.4333 244:0.4167 245:0.4333 246:0.4167 247:0.4167 248:0.4167 249:0.4167 250:0.4167 251:0.4167 252:0.4333 253:0.5833 254:0.5833 255:0.5833 256:0.5833 257:0.5833 258:0.75 259:0.75 260:0.75 261:0.9167 262:0.9167 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:0.6 283:0.6 284:0.6 285:0.6 286:0.4333 287:0.45 288:0.4333 289:0.4333 290:0.4333 291:0.4333 292:0.3 293:0.3 294:0.3 295:0.3 296:0.3 297:0.3 298:0.3 299:0.3 300:0.3 301:0.3 302:0.3 303:0.3 304:0.3 305:0.3 306:0.3 307:0.3 308:0.3167 309:0.4 310:0.4 311:0.1667 312:0.1667 313:0.1667 314:0.1667 315:0.1667 316:0.1667 317:0.15 318:0.1667 319:0.1667 320:0.1667 321:0.1667 322:0.1667 323:0.1667 324:0.1667 325:0.1667 326:0.1667 327:0.1667 328:0.1667 329:0.1667 330:0.1667 331:0.1667 332:0.1667 333:0.1667 334:0.1667 335:0.1667 336:0.1667 337:0.1667 338:0.1667 339:0.15 340:0.2667 341:0.2667 342:0.2833 343:0.35 344:0.2333 345:0.2333 346:0.2333 347:0.2333 348:0.2333 349:0.2333 350:0.2333 351:0.2333 352:0.2333 353:0.2333 354:0.2333 355:0.2333 356:0.2333 357:0.2333 358:0.2333 359:0.2333 360:0.2333 +0.2290950938655975 1:0.1333 2:0.1333 3:0.1333 4:0.1333 5:0.1333 6:0.1333 7:0.1333 8:0.1333 9:0.1333 10:0.1333 11:0.1333 12:0.1333 13:0.1333 14:0.1333 15:0.1333 16:0.1333 17:0.1333 18:0.1333 19:0.1333 20:0.1333 21:0.1333 22:0.1333 23:0.1333 24:0.1333 25:0.1333 26:0.1333 27:0.1333 28:0.1333 29:0.1333 30:0.2667 31:0.2667 32:0.25 33:0.25 34:0.25 35:0.4 36:0.2167 37:0.2167 38:0.2167 39:0.2 40:0.2 41:0.2 42:0.2167 43:0.2167 44:0.2 45:0.2 46:0.2167 47:0.2167 48:0.2 49:0.2 50:0.2 51:0.2 52:0.2 53:0.2 54:0.2 55:0.2 56:0.2 57:0.2 58:0.2 59:0.2 60:0.2 61:0.2 62:0.2 63:0.2 64:0.2 65:0.2 66:0.2 67:0.2 68:0.2 69:0.2 70:0.2 71:0.35 72:0.3333 73:0.35 74:0.35 75:0.3333 76:0.4667 77:0.4833 78:0.4833 79:0.4833 80:0.4833 81:0.4833 82:0.4833 83:0.4833 84:0.4667 85:0.6167 86:0.7167 87:0.7167 88:0.95 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:0.8333 106:0.6667 107:0.6667 108:0.6667 109:0.6667 110:0.6667 111:0.5167 112:0.5167 113:0.3833 114:0.3833 115:0.3833 116:0.3833 117:0.3833 118:0.35 119:0.3333 120:0.35 121:0.35 122:0.35 123:0.35 124:0.35 125:0.35 126:0.35 127:0.3333 128:0.35 129:0.35 130:0.3333 131:0.35 132:0.35 133:0.35 134:0.4 135:0.4 136:0.4 137:0.4 138:0.3333 139:0.3333 140:0.3333 141:0.3333 142:0.31578947 143:0.21052632 144:0.21052632 145:0.21052632 146:0.21052632 147:0.21052632 148:0.21052632 149:0.21052632 150:0.21052632 151:0.21052632 152:0.21052632 153:0.21052632 154:0.21052632 155:0.21052632 156:0.21052632 157:0.1964257 158:0.1964257 159:0.1964257 160:0.1964257 161:0.21431862 162:0.21431862 163:0.1964257 164:0.1964257 165:0.21431862 166:0.2321044 167:0.28567602 168:0.28567602 169:0.28567602 170:0.28567602 171:0.28567602 172:0.32146186 173:0.32146186 174:0.32146186 175:0.32146186 176:0.32146186 177:0.32146186 178:0.41071218 179:0.41071218 180:0.4286051 181:0.44639088 182:0.48217672 183:0.48217672 184:0.62499866 185:0.67857028 186:0.87496384 187:1 188:0.98210708 189:0.98210708 190:0.98210708 191:0.98210708 192:0.98210708 193:1 194:1 195:1 196:1 197:1 198:1 199:1 200:1 201:1 202:1 203:1 204:1 205:1 206:1 207:1 208:1 209:1 210:0.75003482 211:0.75003482 212:0.60710574 213:0.60710574 214:0.60710574 215:0.60710574 216:0.60710574 217:0.55353412 218:0.48217672 219:0.4642838 220:0.4642838 221:0.4833 222:0.4667 223:0.3833 224:0.3667 225:0.3667 226:0.3667 227:0.35 228:0.3667 229:0.3667 230:0.3667 231:0.3667 232:0.3667 233:0.3667 234:0.3667 235:0.35 236:0.3667 237:0.3667 238:0.3667 239:0.3667 240:0.3667 241:0.3667 242:0.3667 243:0.3667 244:0.3833 245:0.45 246:0.45 247:0.45 248:0.4333 249:0.45 250:0.4333 251:0.45 252:0.4333 253:0.45 254:0.4333 255:0.45 256:0.4333 257:0.4667 258:0.4667 259:0.4667 260:0.4667 261:0.4667 262:0.4667 263:0.4667 264:0.4667 265:0.4667 266:0.4667 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:0.95 283:0.7667 284:0.5833 285:0.5833 286:0.5667 287:0.5667 288:0.5667 289:0.45 290:0.4333 291:0.4333 292:0.4333 293:0.4333 294:0.4333 295:0.4333 296:0.4333 297:0.2833 298:0.2833 299:0.2833 300:0.2833 301:0.2833 302:0.2833 303:0.2833 304:0.2833 305:0.2833 306:0.2833 307:0.2833 308:0.2833 309:0.2833 310:0.2833 311:0.2833 312:0.2833 313:0.2833 314:0.1833 315:0.1833 316:0.1833 317:0.1833 318:0.1833 319:0.1667 320:0.1667 321:0.1667 322:0.1833 323:0.1833 324:0.1833 325:0.1833 326:0.1833 327:0.1833 328:0.1833 329:0.1833 330:0.1833 331:0.1833 332:0.1833 333:0.1833 334:0.1833 335:0.1833 336:0.1667 337:0.1833 338:0.1833 339:0.1833 340:0.1667 341:0.1667 342:0.25 343:0.25 344:0.25 345:0.25 346:0.25 347:0.25 348:0.25 349:0.25 350:0.25 351:0.25 352:0.25 353:0.15 354:0.15 355:0.15 356:0.15 357:0.15 358:0.1333 359:0.1333 360:0.1333 +0.05004219948586586 1:0.06667 2:0.06667 3:0.06667 4:0.06667 5:0.06667 6:0.06667 7:0.06667 8:0.06667 9:0.06667 10:0.06667 11:0.06667 12:0.06667 13:0.06667 14:0.06667 15:0.06667 16:0.06667 17:0.06667 18:0.06667 19:0.06667 20:0.06667 21:0.06667 22:0.06667 23:0.06667 24:0.06667 25:0.06667 26:0.06667 27:0.06667 28:0.06667 29:0.06667 30:0.06667 31:0.06667 32:0.06667 33:0.06667 34:0.06667 35:0.06667 36:0.06667 37:0.06667 38:0.06667 39:0.08333 40:0.08333 41:0.08333 42:0.08333 43:0.08333 44:0.08333 45:0.08333 46:0.08333 47:0.08333 48:0.08333 49:0.08333 50:0.08333 51:0.08333 52:0.08333 53:0.1 54:0.08333 55:0.08333 56:0.08333 57:0.08333 58:0.08333 59:0.08333 60:0.08333 61:0.08333 62:0.08333 63:0.08333 64:0.08333 65:0.1667 66:0.1667 67:0.1667 68:0.1667 69:0.15 70:0.1667 71:0.1667 72:0.1833 73:0.1833 74:0.2 75:0.2 76:0.2167 77:0.2333 78:0.25 79:0.3 80:0.3 81:0.3 82:0.3 83:0.3 84:0.3 85:0.3 86:0.3 87:0.9333 88:0.9333 89:0.9333 90:0.7167 91:0.7167 92:0.7167 93:0.7167 94:0.7167 95:0.6167 96:0.6167 97:0.6167 98:0.4667 99:0.4167 100:0.4167 101:0.4167 102:0.4167 103:0.4167 104:0.4167 105:0.3667 106:0.3667 107:0.3667 108:0.3667 109:0.3667 110:0.3833 111:0.3667 112:0.3833 113:0.3667 114:0.3667 115:0.3667 116:0.3667 117:0.3667 118:0.3833 119:0.4 120:0.4167 121:0.3167 122:0.3167 123:0.3167 124:0.3167 125:0.3167 126:0.3167 127:0.3167 128:0.3167 129:0.3167 130:0.3167 131:0.3167 132:0.3167 133:0.3167 134:0.3167 135:0.3167 136:0.3167 137:0.4167 138:0.4167 139:0.4167 140:0.4167 141:0.4167 142:0.386 143:0.35084211 144:0.35084211 145:0.35084211 146:0.35084211 147:0.33336842 148:0.31578947 149:0.31578947 150:0.31578947 151:0.31578947 152:0.31578947 153:0.33336842 154:0.31578947 155:0.31578947 156:0.31578947 157:0.30356894 158:0.30356894 159:0.30356894 160:0.30356894 161:0.32146186 162:0.33924764 163:0.33924764 164:0.33924764 165:0.33924764 166:0.33924764 167:0.33924764 168:0.33924764 169:0.33924764 170:0.33924764 171:0.33924764 172:0.33924764 173:0.37503348 174:0.37503348 175:0.37503348 176:1 177:1 178:1 179:1 180:1 181:1 182:1 183:1 184:1 185:1 186:1 187:1 188:1 189:1 190:1 191:1 192:1 193:1 194:1 195:1 196:1 197:1 198:1 199:1 200:1 201:1 202:1 203:1 204:1 205:0.39281926 206:0.37503348 207:0.39281926 208:0.37503348 209:0.39281926 210:0.37503348 211:0.37503348 212:0.37503348 213:0.37503348 214:0.39281926 215:0.37503348 216:0.37503348 217:0.37503348 218:0.37503348 219:0.32146186 220:0.24999732 221:0.3167 222:0.3167 223:0.2333 224:0.2333 225:0.25 226:0.25 227:0.25 228:0.25 229:0.25 230:0.25 231:0.25 232:0.25 233:0.25 234:0.25 235:0.2333 236:0.25 237:0.25 238:0.25 239:0.2333 240:0.25 241:0.25 242:0.25 243:0.4 244:0.2667 245:0.2667 246:0.4 247:0.2667 248:0.2667 249:0.4 250:0.2667 251:0.2667 252:0.4 253:0.2667 254:0.2667 255:0.2667 256:0.7333 257:0.7333 258:0.7333 259:0.7333 260:0.7333 261:0.9 262:0.9 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:0.2333 278:0.2167 279:0.2167 280:0.2167 281:0.2333 282:0.2167 283:0.2167 284:0.2167 285:0.2167 286:0.2167 287:0.2 288:0.2 289:0.2 290:0.2 291:0.2 292:0.2 293:0.2 294:0.2 295:0.2167 296:0.2167 297:0.2 298:0.2 299:0.2 300:0.2167 301:0.2 302:0.2 303:0.2 304:0.2167 305:0.2 306:0.2 307:0.2 308:0.2 309:0.2 310:0.2 311:0.2 312:0.2167 313:0.2167 314:0.2 315:0.2 316:0.2 317:0.2167 318:0.2 319:0.2 320:0.2 321:0.2167 322:0.2167 323:0.2 324:0.2 325:0.1833 326:0.1833 327:0.1667 328:0.1667 329:0.15 330:0.1667 331:0.1667 332:0.1667 333:0.1667 334:0.06667 335:0.06667 336:0.06667 337:0.06667 338:0.06667 339:0.06667 340:0.06667 341:0.06667 342:0.06667 343:0.06667 344:0.06667 345:0.06667 346:0.06667 347:0.06667 348:0.06667 349:0.06667 350:0.06667 351:0.06667 352:0.06667 353:0.06667 354:0.06667 355:0.06667 356:0.06667 357:0.06667 358:0.06667 359:0.06667 360:0.06667 +0.1559958130597964 1:0.1333 2:0.1333 3:0.1333 4:0.1333 5:0.1167 6:0.08333 7:0.08333 8:0.08333 9:0.08333 10:0.08333 11:0.08333 12:0.08333 13:0.1 14:0.1 15:0.1 16:0.08333 17:0.08333 18:0.08333 19:0.08333 20:0.08333 21:0.08333 22:0.08333 23:0.08333 24:0.08333 25:0.08333 26:0.08333 27:0.08333 28:0.08333 29:0.08333 30:0.08333 31:0.08333 32:0.08333 33:0.08333 34:0.1 35:0.08333 36:0.1 37:0.08333 38:0.08333 39:0.08333 40:0.08333 41:0.08333 42:0.08333 43:0.08333 44:0.08333 45:0.08333 46:0.08333 47:0.08333 48:0.08333 49:0.08333 50:0.08333 51:0.08333 52:0.08333 53:0.1 54:0.08333 55:0.08333 56:0.08333 57:0.08333 58:0.08333 59:0.08333 60:0.08333 61:0.08333 62:0.08333 63:0.08333 64:0.08333 65:0.1333 66:0.1333 67:0.15 68:0.15 69:0.2333 70:0.2333 71:0.2333 72:0.2333 73:0.2333 74:0.25 75:0.2667 76:0.2833 77:0.3 78:0.45 79:0.45 80:0.45 81:0.45 82:0.45 83:0.45 84:1 85:1 86:0.6333 87:0.6333 88:0.6333 89:0.6333 90:0.6333 91:0.6333 92:0.6333 93:0.6333 94:0.5333 95:0.5333 96:0.4667 97:0.4667 98:0.4667 99:0.4333 100:0.4333 101:0.4333 102:0.4333 103:0.4333 104:0.4333 105:0.4333 106:0.4167 107:0.4333 108:0.4167 109:0.4333 110:0.4333 111:0.4333 112:0.4667 113:0.4333 114:0.3667 115:0.3667 116:0.3667 117:0.3667 118:0.3667 119:0.3667 120:0.3667 121:0.3667 122:0.3667 123:0.3667 124:0.3667 125:0.3667 126:0.3667 127:0.3667 128:0.3667 129:0.4167 130:0.4167 131:0.4 132:0.4 133:0.4167 134:0.4 135:0.4167 136:0.4 137:0.3833 138:0.3833 139:0.3833 140:0.3667 141:0.3833 142:0.33336842 143:0.35084211 144:0.35084211 145:0.33336842 146:0.35084211 147:0.33336842 148:0.35084211 149:0.35084211 150:0.33336842 151:0.36842105 152:0.36842105 153:0.36842105 154:0.36842105 155:0.35084211 156:0.36842105 157:0.33924764 158:0.35714056 159:0.33924764 160:0.35714056 161:0.37503348 162:0.39281926 163:0.41071218 164:0.41071218 165:0.41071218 166:0.44639088 167:0.7678206 168:0.91074968 169:0.91074968 170:0.91074968 171:1 172:1 173:1 174:1 175:1 176:1 177:1 178:1 179:1 180:1 181:1 182:0.94642838 183:0.7321419 184:0.7321419 185:0.7321419 186:0.7321419 187:0.53574834 188:0.55353412 189:0.53574834 190:0.55353412 191:0.55353412 192:0.53574834 193:0.55353412 194:0.35714056 195:0.33924764 196:0.2321044 197:0.21431862 198:0.21431862 199:0.21431862 200:0.2321044 201:0.21431862 202:0.21431862 203:0.2321044 204:0.21431862 205:0.21431862 206:0.1964257 207:0.1964257 208:0.21431862 209:0.21431862 210:0.12496116 211:0.14285408 212:0.14285408 213:0.14285408 214:0.14285408 215:0.14285408 216:0.14285408 217:0.14285408 218:0.14285408 219:0.14285408 220:0.14285408 221:0.2 222:0.2 223:0.2 224:0.2 225:0.2 226:0.2 227:0.2 228:0.2 229:0.1833 230:0.2 231:0.3167 232:0.9 233:0.3167 234:0.3167 235:0.3333 236:0.3167 237:0.3167 238:0.3333 239:0.3333 240:0.3333 241:0.3333 242:0.3333 243:0.3333 244:0.3333 245:0.3167 246:0.3333 247:0.3333 248:0.3167 249:0.35 250:0.35 251:0.5 252:0.5 253:0.5 254:0.5 255:0.5 256:0.5 257:0.5 258:0.5 259:0.5 260:0.5 261:0.5167 262:0.5167 263:0.8833 264:0.8833 265:0.8667 266:1 267:1 268:1 269:0.55 270:0.55 271:0.4833 272:0.4833 273:0.35 274:0.1667 275:0.1667 276:0.1667 277:0.1667 278:0.1667 279:0.1667 280:0.1667 281:0.1667 282:0.1667 283:0.1667 284:0.2 285:0.1667 286:0.15 287:0.15 288:0.15 289:0.15 290:0.15 291:0.15 292:0.15 293:0.15 294:0.15 295:0.15 296:0.15 297:0.15 298:0.15 299:0.15 300:0.15 301:0.15 302:0.15 303:0.1667 304:0.15 305:0.15 306:0.15 307:0.15 308:0.15 309:0.15 310:0.15 311:0.15 312:0.15 313:0.15 314:0.15 315:0.1667 316:0.1667 317:0.1667 318:0.15 319:0.1667 320:0.1667 321:0.1667 322:0.15 323:0.15 324:0.15 325:0.1667 326:0.1667 327:0.1667 328:0.1667 329:0.15 330:0.1667 331:0.1667 332:0.1667 333:0.1667 334:0.1667 335:0.1667 336:0.1667 337:0.1667 338:0.1667 339:0.1667 340:0.1667 341:0.1667 342:0.15 343:0.15 344:0.15 345:0.15 346:0.15 347:0.15 348:0.15 349:0.15 350:0.15 351:0.15 352:0.15 353:0.15 354:0.15 355:0.15 356:0.15 357:0.15 358:0.1333 359:0.1333 360:0.1333 +0.2963829117426119 1:0.2833 2:0.2833 3:0.2667 4:0.2667 5:0.2667 6:0.2667 7:0.2333 8:0.2167 9:0.2167 10:0.2167 11:0.2333 12:0.2167 13:0.2333 14:0.2333 15:0.2333 16:0.2167 17:0.2333 18:0.2333 19:0.2333 20:0.2167 21:0.2333 22:0.2333 23:0.2333 24:0.2167 25:0.2167 26:0.2167 27:0.2333 28:0.2333 29:0.2333 30:0.2333 31:0.2333 32:0.2333 33:0.2333 34:0.2333 35:0.3167 36:0.3167 37:0.3 38:0.3167 39:0.3167 40:0.3167 41:0.3167 42:0.3333 43:0.3333 44:0.3333 45:0.7667 46:0.5333 47:0.5333 48:0.5333 49:0.5333 50:0.5333 51:0.45 52:0.4333 53:0.4333 54:0.4333 55:0.4333 56:0.4333 57:0.4167 58:0.4333 59:0.4167 60:0.4333 61:0.4167 62:0.4167 63:0.4167 64:0.4167 65:0.4167 66:0.4167 67:0.4167 68:0.4167 69:0.4167 70:0.4167 71:0.4167 72:0.4167 73:0.4167 74:0.4167 75:0.45 76:0.4333 77:1 78:1 79:1 80:1 81:1 82:1 83:0.2667 84:0.2667 85:0.2 86:0.2 87:0.2 88:0.2 89:0.2 90:0.2 91:0.2 92:0.2 93:0.2 94:0.1833 95:0.1833 96:0.1833 97:0.1833 98:0.1833 99:0.1833 100:0.1833 101:0.1833 102:0.1833 103:0.1833 104:0.1833 105:0.1833 106:0.1833 107:0.1833 108:0.1833 109:0.1833 110:0.1833 111:0.1833 112:0.1833 113:0.1833 114:0.1833 115:0.1833 116:0.1833 117:0.1833 118:0.1833 119:0.1833 120:0.1833 121:0.1833 122:0.1833 123:0.1833 124:0.1833 125:0.1833 126:0.1833 127:0.1833 128:0.1833 129:0.1833 130:0.1833 131:0.1833 132:0.1833 133:0.1833 134:0.1833 135:0.1833 136:0.1833 137:0.1833 138:0.1833 139:0.1833 140:0.2 141:0.2167 142:0.17547368 143:0.17547368 144:0.17547368 145:0.17547368 146:0.17547368 147:0.17547368 148:0.17547368 149:0.17547368 150:0.17547368 151:0.17547368 152:0.17547368 153:0.17547368 154:0.17547368 155:0.17547368 156:0.17547368 157:0.160747 158:0.160747 159:0.160747 160:0.160747 161:0.160747 162:0.33924764 163:0.32146186 164:0.32146186 165:0.32146186 166:0.32146186 167:0.32146186 168:0.37503348 169:0.37503348 170:0.37503348 171:0.37503348 172:0.37503348 173:0.37503348 174:0.37503348 175:0.37503348 176:0.37503348 177:0.37503348 178:0.44639088 179:1 180:1 181:1 182:1 183:1 184:0.87496384 185:0.87496384 186:0.66067736 187:0.62499866 188:0.60710574 189:0.4999625 190:0.4999625 191:0.4999625 192:0.4999625 193:0.32146186 194:0.32146186 195:0.32146186 196:0.160747 197:0.14285408 198:0.14285408 199:0.12496116 200:0.12496116 201:0.12496116 202:0.14285408 203:0.14285408 204:0.12496116 205:0.12496116 206:0.14285408 207:0.14285408 208:0.14285408 209:0.12496116 210:0.12496116 211:0.14285408 212:0.14285408 213:0.12496116 214:0.12496116 215:0.12496116 216:0.12496116 217:0.12496116 218:0.12496116 219:0.12496116 220:0.12496116 221:0.2 222:0.2 223:0.1833 224:0.2 225:0.2 226:0.2 227:0.2 228:0.2 229:0.1833 230:0.2 231:0.2 232:0.2 233:0.2 234:0.2 235:0.1833 236:0.1833 237:0.2 238:0.2 239:0.2 240:0.2 241:0.2 242:0.1833 243:0.2 244:0.2 245:0.2167 246:0.2167 247:0.2167 248:0.2333 249:0.2333 250:0.2333 251:0.2333 252:0.2333 253:0.2333 254:0.25 255:0.25 256:0.25 257:0.25 258:0.25 259:0.25 260:0.25 261:0.25 262:0.25 263:0.25 264:0.25 265:0.25 266:0.25 267:0.25 268:0.25 269:0.25 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:0.7333 283:0.7333 284:0.7333 285:0.6 286:0.6 287:0.6 288:0.6 289:0.6 290:0.6 291:0.6 292:0.45 293:0.45 294:0.45 295:0.45 296:0.45 297:0.45 298:0.45 299:0.45 300:0.45 301:0.45 302:0.4667 303:0.8 304:0.8 305:0.8 306:1 307:1 308:1 309:0.9667 310:0.9167 311:0.9 312:0.9 313:0.6 314:0.6 315:0.6 316:0.6 317:0.6 318:0.6 319:0.6 320:0.6 321:0.3667 322:0.1833 323:0.1833 324:0.1833 325:0.1833 326:0.1833 327:0.1833 328:0.1833 329:0.1833 330:0.1833 331:0.1833 332:0.1833 333:0.1833 334:0.1833 335:0.1833 336:0.1833 337:0.1833 338:0.1833 339:0.1833 340:0.1833 341:0.1833 342:0.1833 343:0.1833 344:0.1833 345:0.1833 346:0.1833 347:0.1833 348:0.1833 349:0.2 350:0.2167 351:0.2333 352:0.2833 353:0.2833 354:0.2833 355:0.2833 356:0.2833 357:0.2833 358:0.2833 359:0.2833 360:0.2833 +0.1731260321218585 1:0.4667 2:0.4667 3:0.2333 4:0.2167 5:0.2167 6:0.2167 7:0.2167 8:0.2167 9:0.2167 10:0.2167 11:0.2167 12:0.2167 13:0.2167 14:0.2167 15:0.2167 16:0.2167 17:0.2167 18:0.2167 19:0.2167 20:0.2167 21:0.2167 22:0.2167 23:0.2167 24:0.2167 25:0.2167 26:0.2167 27:0.2333 28:0.2333 29:0.2333 30:0.25 31:0.1833 32:0.1833 33:0.1667 34:0.1667 35:0.1667 36:0.1667 37:0.1667 38:0.1667 39:0.1667 40:0.1667 41:0.1667 42:0.1667 43:0.1667 44:0.1667 45:0.1667 46:0.1667 47:0.1667 48:0.1667 49:0.1667 50:0.1667 51:0.1667 52:0.1667 53:0.1667 54:0.1667 55:0.1667 56:0.1667 57:0.1667 58:0.1667 59:0.1667 60:0.1833 61:0.1833 62:0.1833 63:0.3 64:0.3 65:0.3 66:0.3 67:0.3 68:0.3 69:0.3 70:0.3 71:0.3 72:0.3 73:0.3 74:0.3 75:0.3 76:0.3 77:0.3 78:0.4667 79:0.4667 80:0.4667 81:0.4667 82:0.4667 83:0.4667 84:0.4667 85:0.7667 86:0.95 87:1 88:1 89:1 90:1 91:1 92:1 93:0.45 94:0.45 95:0.4333 96:0.4333 97:0.25 98:0.25 99:0.25 100:0.2667 101:0.1333 102:0.1333 103:0.1333 104:0.1333 105:0.1333 106:0.1333 107:0.1333 108:0.1333 109:0.1333 110:0.1333 111:0.1333 112:0.1333 113:0.1333 114:0.1333 115:0.1333 116:0.1333 117:0.1333 118:0.1333 119:0.1333 120:0.1333 121:0.1333 122:0.1333 123:0.1333 124:0.1333 125:0.1333 126:0.1333 127:0.1333 128:0.1333 129:0.1333 130:0.1333 131:0.1333 132:0.1333 133:0.1333 134:0.1333 135:0.1333 136:0.1333 137:0.1333 138:0.1333 139:0.1333 140:0.15 141:0.15 142:0.10526316 143:0.10526316 144:0.10526316 145:0.10526316 146:0.10526316 147:0.10526316 148:0.10526316 149:0.10526316 150:0.10526316 151:0.10526316 152:0.10526316 153:0.10526316 154:0.10526316 155:0.10526316 156:0.10526316 157:0.089282462 158:0.089282462 159:0.089282462 160:0.089282462 161:0.089282462 162:0.089282462 163:0.089282462 164:0.089282462 165:0.089282462 166:0.089282462 167:0.10717538 168:0.12496116 169:0.12496116 170:0.12496116 171:0.12496116 172:0.10717538 173:0.10717538 174:0.14285408 175:0.160747 176:0.160747 177:0.160747 178:0.160747 179:0.160747 180:0.160747 181:0.160747 182:0.160747 183:0.160747 184:0.1964257 185:0.1964257 186:0.1964257 187:0.58931996 188:0.58931996 189:0.60710574 190:0.58931996 191:0.58931996 192:0.60710574 193:0.58931996 194:0.60710574 195:0.57142704 196:0.57142704 197:0.57142704 198:0.44639088 199:0.44639088 200:0.44639088 201:0.44639088 202:0.44639088 203:0.33924764 204:0.35714056 205:0.33924764 206:0.33924764 207:0.33924764 208:0.33924764 209:0.24999732 210:0.24999732 211:0.26789024 212:0.24999732 213:0.24999732 214:0.24999732 215:0.2321044 216:0.2321044 217:0.24999732 218:0.2321044 219:0.2321044 220:0.24999732 221:0.2833 222:0.2833 223:0.3 224:0.2833 225:0.2833 226:0.3 227:0.2833 228:0.2833 229:0.2833 230:0.5167 231:0.5167 232:1 233:0.4167 234:0.4167 235:0.4167 236:0.4167 237:0.4167 238:0.3167 239:0.3167 240:0.3167 241:0.3167 242:0.3167 243:0.3167 244:0.3167 245:0.3167 246:0.3167 247:0.3167 248:0.3167 249:0.3 250:0.2833 251:0.3167 252:0.3 253:0.3 254:0.3 255:0.3 256:0.3 257:0.3 258:0.3 259:0.3 260:0.3 261:0.3 262:0.3 263:0.4333 264:0.4333 265:0.4333 266:0.4333 267:0.4333 268:0.7667 269:0.7667 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:0.9 281:0.7167 282:0.65 283:0.6 284:0.55 285:0.45 286:0.4167 287:0.4333 288:0.4167 289:0.4 290:0.4 291:0.4 292:0.4 293:0.2833 294:0.2833 295:0.2667 296:0.2667 297:0.2833 298:0.2667 299:0.2667 300:0.25 301:0.25 302:0.25 303:0.2333 304:0.2333 305:0.2333 306:0.2167 307:0.2167 308:0.2167 309:0.2167 310:0.2167 311:0.2167 312:0.2167 313:0.2167 314:0.2167 315:0.2167 316:0.2167 317:0.2167 318:0.2167 319:0.2167 320:0.2167 321:0.2167 322:0.2167 323:0.2167 324:0.2167 325:0.2167 326:0.2167 327:0.2333 328:0.2333 329:0.3 330:0.3 331:0.3333 332:0.35 333:0.3333 334:0.3333 335:0.35 336:0.3333 337:0.35 338:0.3333 339:0.3333 340:0.35 341:0.3667 342:0.3667 343:0.3667 344:0.3667 345:0.5833 346:0.5833 347:0.5833 348:0.5833 349:1 350:1 351:1 352:1 353:1 354:1 355:1 356:1 357:1 358:1 359:1 360:1 +0.162438470934677 1:0.6 2:0.6 3:0.6 4:0.55 5:0.55 6:0.55 7:0.25 8:0.25 9:0.25 10:0.2667 11:0.25 12:0.2167 13:0.2167 14:0.2167 15:0.2167 16:0.2167 17:0.2 18:0.2 19:0.2 20:0.2 21:0.2 22:0.2 23:0.2 24:0.1833 25:0.1833 26:0.1833 27:0.1833 28:0.1833 29:0.1833 30:0.1833 31:0.1833 32:0.1833 33:0.1833 34:0.1833 35:0.1833 36:0.1833 37:0.1833 38:0.1833 39:0.1833 40:0.1833 41:0.1833 42:0.1833 43:0.1833 44:0.1833 45:0.1833 46:0.1833 47:0.1833 48:0.1833 49:0.1833 50:0.1833 51:0.1833 52:0.1833 53:0.1833 54:0.1833 55:0.1833 56:0.1833 57:0.2 58:0.2167 59:0.2 60:0.2 61:0.2 62:0.2167 63:0.2167 64:0.2 65:0.2 66:0.2 67:0.2 68:0.2 69:0.2 70:0.2 71:0.2 72:0.2 73:0.2 74:0.2 75:0.2 76:0.2 77:0.2 78:0.2 79:0.2 80:0.2 81:0.2 82:0.2 83:0.2 84:0.2 85:0.2 86:0.2 87:0.2 88:0.2 89:0.2 90:0.2 91:0.2 92:0.2 93:0.2 94:1 95:1 96:1 97:1 98:0.8333 99:0.6667 100:0.3667 101:0.3667 102:0.3667 103:0.3667 104:0.3333 105:0.3333 106:0.3333 107:0.3333 108:0.3333 109:0.3333 110:0.3333 111:0.3333 112:0.2 113:0.2 114:0.1833 115:0.1833 116:0.1833 117:0.1833 118:0.1833 119:0.1833 120:0.1833 121:0.1833 122:0.1833 123:0.1833 124:0.1833 125:0.1833 126:0.1833 127:0.1833 128:0.1833 129:0.1833 130:0.1833 131:0.1833 132:0.1833 133:0.1833 134:0.1833 135:0.1833 136:0.1833 137:0.1833 138:0.1833 139:0.1833 140:0.2 141:0.2167 142:0.19294737 143:0.24557895 144:0.24557895 145:0.24557895 146:0.24557895 147:0.24557895 148:0.24557895 149:0.24557895 150:0.24557895 151:0.24557895 152:0.75442105 153:1 154:1 155:1 156:1 157:1 158:1 159:1 160:1 161:1 162:1 163:1 164:1 165:0.87496384 166:0.87496384 167:0.87496384 168:0.87496384 169:0.87496384 170:0.91074968 171:0.89285676 172:0.26789024 173:0.26789024 174:0.26789024 175:0.26789024 176:0.26789024 177:0.26789024 178:0.26789024 179:0.26789024 180:0.26789024 181:0.26789024 182:0.26789024 183:0.26789024 184:0.26789024 185:0.26789024 186:1 187:1 188:1 189:1 190:1 191:1 192:1 193:0.91074968 194:0.91074968 195:0.91074968 196:0.91074968 197:0.80360644 198:0.80360644 199:0.30356894 200:0.30356894 201:0.26789024 202:0.26789024 203:0.26789024 204:0.26789024 205:0.26789024 206:0.26789024 207:0.26789024 208:0.26789024 209:0.26789024 210:0.26789024 211:0.26789024 212:0.2321044 213:0.2321044 214:0.2321044 215:0.2321044 216:0.2321044 217:0.21431862 218:0.2321044 219:0.2321044 220:0.2321044 221:0.2833 222:0.2833 223:0.2833 224:0.2833 225:0.2833 226:0.2833 227:0.2667 228:0.2833 229:0.2833 230:0.2667 231:0.3 232:0.3 233:0.3 234:0.3 235:0.3 236:0.3 237:0.2833 238:0.2833 239:0.2833 240:0.2833 241:0.2833 242:0.2833 243:0.2833 244:0.2833 245:0.2833 246:0.2833 247:0.2833 248:0.2833 249:0.2667 250:0.2833 251:0.2833 252:0.2833 253:0.2833 254:0.2833 255:0.2833 256:0.2833 257:0.2833 258:0.2833 259:0.2833 260:0.2833 261:0.2833 262:0.2833 263:0.3167 264:0.3333 265:0.3333 266:0.3333 267:0.5167 268:0.5167 269:0.8 270:0.8167 271:1 272:1 273:1 274:1 275:1 276:0.7833 277:0.7667 278:0.75 279:0.65 280:0.6 281:0.6 282:0.5833 283:0.35 284:0.35 285:0.35 286:0.35 287:0.3333 288:0.3167 289:0.3167 290:0.3167 291:0.3167 292:0.3167 293:0.3167 294:0.3167 295:0.3167 296:0.3167 297:0.3167 298:0.2333 299:0.2333 300:0.2333 301:0.2333 302:0.2333 303:0.2333 304:0.2333 305:0.2333 306:0.2333 307:0.2333 308:0.2333 309:0.2333 310:0.2333 311:0.2333 312:0.2333 313:0.2333 314:0.2333 315:0.2333 316:0.2333 317:0.2333 318:0.2333 319:0.2333 320:0.3 321:0.3 322:0.3 323:0.3 324:0.3 325:0.3 326:0.3 327:0.3167 328:0.4333 329:0.4333 330:0.4333 331:0.4333 332:0.4333 333:0.4333 334:0.4333 335:0.4333 336:0.4333 337:0.4333 338:0.4333 339:0.4333 340:0.4333 341:0.5667 342:0.5667 343:0.5667 344:0.5667 345:0.5667 346:0.7167 347:0.7167 348:0.7167 349:0.7167 350:0.7333 351:0.8167 352:0.8167 353:0.8167 354:0.8167 355:1 356:1 357:1 358:0.6333 359:0.6167 360:0.6167 +0.1065198608830187 1:1 2:1 3:1 4:0.8833 5:0.8833 6:0.8667 7:0.8667 8:0.8667 9:0.8667 10:0.6167 11:0.6167 12:0.6 13:0.6 14:0.6 15:0.6 16:0.6 17:0.6 18:0.4167 19:0.4 20:0.4 21:0.3167 22:0.3 23:0.3 24:0.3 25:0.3 26:0.3 27:0.3 28:0.3 29:0.3 30:0.3 31:0.3 32:0.2833 33:0.2833 34:0.2833 35:0.2833 36:0.2833 37:0.2667 38:0.2833 39:0.2833 40:0.2833 41:0.2833 42:0.2667 43:0.2833 44:0.2833 45:0.2667 46:0.2833 47:0.2667 48:0.2833 49:0.2833 50:0.2667 51:0.2833 52:0.2833 53:0.2833 54:0.2833 55:0.2667 56:1 57:1 58:1 59:0.9167 60:0.9167 61:1 62:0.9 63:0.9 64:0.9 65:0.9 66:0.9 67:0.95 68:0.95 69:0.95 70:0.5833 71:0.5667 72:0.5667 73:0.5667 74:0.5833 75:0.5667 76:0.5667 77:0.5833 78:0.5667 79:0.75 80:0.6833 81:0.6833 82:0.6833 83:0.6833 84:0.6833 85:0.6833 86:0.6833 87:0.7 88:1 89:1 90:1 91:1 92:1 93:0.7667 94:0.4667 95:0.4667 96:0.4667 97:0.4167 98:0.4167 99:0.4167 100:0.2833 101:0.2833 102:0.2833 103:0.2833 104:0.2833 105:0.2833 106:0.2833 107:0.2833 108:0.2833 109:0.2833 110:0.2833 111:0.2833 112:0.2833 113:0.2667 114:0.2833 115:0.2833 116:0.2833 117:0.2833 118:0.2833 119:0.3 120:0.3 121:0.3167 122:0.3167 123:0.3167 124:0.3167 125:0.35 126:0.35 127:0.35 128:0.35 129:0.35 130:0.2333 131:0.2333 132:0.2333 133:0.2333 134:0.2333 135:0.2333 136:0.2333 137:0.2333 138:0.2333 139:0.2333 140:0.2333 141:0.2333 142:0.19294737 143:0.19294737 144:0.19294737 145:0.19294737 146:0.19294737 147:0.19294737 148:0.19294737 149:0.19294737 150:0.21052632 151:0.21052632 152:0.21052632 153:0.21052632 154:0.21052632 155:0.21052632 156:0.21052632 157:0.55353412 158:0.55353412 159:0.89285676 160:0.89285676 161:0.89285676 162:0.89285676 163:1 164:1 165:1 166:1 167:1 168:0.9643213 169:0.9643213 170:0.9643213 171:0.9643213 172:0.9643213 173:1 174:1 175:1 176:1 177:1 178:1 179:1 180:0.1964257 181:0.1964257 182:0.1964257 183:0.1964257 184:0.1964257 185:0.1964257 186:0.1964257 187:0.1964257 188:0.1964257 189:0.1964257 190:0.1964257 191:0.1964257 192:0.160747 193:0.160747 194:0.160747 195:0.160747 196:0.160747 197:0.160747 198:0.160747 199:0.160747 200:0.160747 201:0.160747 202:0.160747 203:0.160747 204:0.160747 205:0.160747 206:0.160747 207:0.160747 208:0.160747 209:0.160747 210:0.160747 211:0.160747 212:0.160747 213:0.17853278 214:0.17853278 215:0.17853278 216:0.17853278 217:0.160747 218:0.17853278 219:0.14285408 220:0.14285408 221:0.2 222:0.2333 223:0.25 224:0.2 225:0.2 226:0.2 227:0.2 228:0.2 229:0.2 230:0.2 231:0.2 232:0.1833 233:0.1833 234:0.1833 235:0.1833 236:0.1833 237:0.1833 238:0.1833 239:0.1833 240:0.1833 241:0.1833 242:0.1833 243:0.1833 244:0.1833 245:0.1833 246:0.1833 247:0.1833 248:0.1833 249:0.1833 250:0.1833 251:0.1833 252:0.1833 253:0.1833 254:0.1833 255:0.1833 256:0.1833 257:0.1833 258:0.1833 259:0.3833 260:0.3833 261:0.3833 262:0.3833 263:0.3833 264:0.3833 265:0.3833 266:0.3833 267:0.3833 268:0.3833 269:0.3833 270:1 271:1 272:1 273:1 274:1 275:0.6833 276:0.6667 277:0.65 278:0.6333 279:0.6333 280:0.5833 281:0.55 282:0.55 283:0.45 284:0.45 285:0.45 286:0.4333 287:0.45 288:0.4333 289:0.45 290:0.4333 291:0.45 292:0.4333 293:0.45 294:0.2333 295:0.2167 296:0.2167 297:0.2167 298:0.2167 299:0.2333 300:0.2167 301:0.2167 302:0.2333 303:0.2333 304:0.2167 305:0.2167 306:0.2333 307:0.2333 308:0.2167 309:0.2167 310:0.2167 311:0.2333 312:0.2167 313:0.2167 314:0.1833 315:0.1833 316:0.1833 317:0.1833 318:0.1833 319:0.1667 320:0.1667 321:0.1667 322:0.1833 323:0.1833 324:0.1833 325:0.1833 326:0.1833 327:0.1833 328:0.1833 329:0.1833 330:0.1833 331:0.1667 332:0.1833 333:0.1833 334:0.1833 335:0.1833 336:0.1667 337:0.1833 338:0.1833 339:0.1833 340:0.1667 341:0.1667 342:0.2333 343:0.2333 344:0.25 345:0.4167 346:0.4167 347:0.4167 348:0.4167 349:0.4167 350:0.4167 351:0.5667 352:0.5667 353:0.5667 354:0.7333 355:0.7167 356:0.8167 357:0.8167 358:0.8167 359:0.8167 360:1 +1.036833816007162 1:0.4833 2:0.4833 3:0.4833 4:0.5 5:0.5 6:0.5167 7:0.5167 8:0.5167 9:0.5167 10:0.5667 11:0.55 12:0.55 13:0.5167 14:0.5167 15:0.5167 16:0.4833 17:0.4833 18:0.4833 19:0.35 20:0.3333 21:0.3333 22:0.3333 23:0.3333 24:0.3167 25:0.3333 26:0.3333 27:0.3167 28:0.3333 29:0.3333 30:0.3333 31:0.3333 32:0.3333 33:0.3333 34:0.3333 35:0.3167 36:0.3167 37:0.4667 38:0.4667 39:0.4667 40:0.3833 41:0.35 42:0.35 43:0.35 44:0.35 45:0.35 46:0.35 47:0.35 48:0.35 49:0.35 50:0.35 51:0.35 52:0.35 53:0.35 54:0.35 55:0.35 56:0.35 57:0.35 58:0.35 59:0.3667 60:0.3667 61:0.3833 62:0.4 63:0.4 64:0.4167 65:0.4333 66:0.4333 67:0.4333 68:0.45 69:0.45 70:0.45 71:0.45 72:0.45 73:0.45 74:0.6833 75:0.6833 76:0.6833 77:0.8167 78:0.8167 79:0.8333 80:0.8333 81:0.9333 82:0.9333 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:0.9333 106:0.8667 107:0.8167 108:0.7667 109:0.7667 110:0.5833 111:0.5833 112:0.5833 113:0.55 114:0.55 115:0.55 116:0.55 117:0.4667 118:0.4667 119:0.4667 120:0.4667 121:0.4667 122:0.4333 123:0.4333 124:0.4167 125:0.4 126:0.4 127:0.3833 128:0.3833 129:0.3833 130:0.3833 131:0.3833 132:0.3833 133:0.3833 134:0.3833 135:0.3833 136:0.3833 137:0.3833 138:0.3833 139:0.3833 140:0.3833 141:0.3833 142:0.35084211 143:0.50873684 144:0.49126316 145:0.49126316 146:0.47368421 147:0.47368421 148:0.47368421 149:0.47368421 150:0.47368421 151:0.47368421 152:0.33336842 153:0.33336842 154:0.29821053 155:0.29821053 156:0.29821053 157:0.28567602 158:0.28567602 159:0.28567602 160:0.28567602 161:0.28567602 162:0.28567602 163:0.28567602 164:0.28567602 165:0.28567602 166:0.28567602 167:0.28567602 168:0.28567602 169:0.30356894 170:0.41071218 171:0.41071218 172:0.4286051 173:0.41071218 174:0.41071218 175:0.41071218 176:0.4286051 177:0.4286051 178:0.4286051 179:0.4286051 180:0.4286051 181:0.44639088 182:0.44639088 183:0.44639088 184:0.4642838 185:0.4642838 186:0.4999625 187:0.4999625 188:0.4999625 189:0.4999625 190:0.4999625 191:0.4999625 192:0.4999625 193:0.51785542 194:0.55353412 195:0.57142704 196:1 197:1 198:1 199:1 200:1 201:1 202:1 203:1 204:1 205:1 206:0.94642838 207:0.94642838 208:0.94642838 209:0.82139222 210:0.78571352 211:0.80360644 212:0.80360644 213:0.78571352 214:0.64289158 215:0.62499866 216:0.62499866 217:0.62499866 218:0.62499866 219:0.62499866 220:0.62499866 221:0.65 222:0.65 223:0.6667 224:0.6333 225:0.6333 226:0.6333 227:0.6333 228:0.6333 229:0.6333 230:0.6333 231:0.6333 232:0.7667 233:0.7667 234:0.7833 235:0.7833 236:0.8 237:0.8 238:0.8 239:0.8167 240:0.8333 241:0.85 242:0.85 243:0.8667 244:0.8833 245:0.9 246:0.9333 247:0.9667 248:0.8 249:0.8 250:0.7833 251:0.7833 252:0.7833 253:0.7833 254:0.7833 255:0.7833 256:0.7833 257:0.7833 258:0.85 259:0.95 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:0.85 286:0.85 287:0.85 288:0.8167 289:0.8 290:0.8 291:0.8 292:0.8 293:0.8 294:0.8 295:0.8 296:0.9333 297:0.6667 298:0.6667 299:0.6667 300:0.6667 301:0.6667 302:0.6667 303:0.6667 304:0.7333 305:0.7333 306:0.7167 307:0.7167 308:0.7167 309:0.7 310:0.7 311:0.7 312:0.7 313:0.7 314:0.7 315:0.7 316:0.7 317:0.7 318:0.7 319:0.65 320:0.65 321:0.65 322:0.65 323:0.65 324:0.65 325:0.65 326:0.7 327:0.7 328:0.7167 329:0.7333 330:0.75 331:0.75 332:0.7667 333:0.7667 334:0.7667 335:0.7667 336:0.7667 337:0.7667 338:0.9333 339:0.9333 340:1 341:1 342:1 343:1 344:1 345:1 346:1 347:1 348:1 349:1 350:1 351:1 352:1 353:1 354:0.7 355:0.4833 356:0.4833 357:0.4833 358:0.4833 359:0.4833 360:0.4833 +0.08175412114013921 1:1 2:1 3:1 4:1 5:1 6:0.8667 7:0.8667 8:0.8 9:0.4167 10:0.4167 11:0.4167 12:0.4167 13:0.4167 14:0.4167 15:0.4167 16:0.4167 17:0.4167 18:0.4167 19:0.4167 20:0.4167 21:0.4167 22:0.4167 23:0.5 24:0.5 25:0.5 26:0.5 27:0.5 28:0.5 29:0.5333 30:0.5333 31:0.6 32:0.6 33:0.6167 34:0.6 35:0.5833 36:0.6 37:0.5833 38:0.5667 39:0.5833 40:0.5667 41:0.5833 42:0.5833 43:0.5667 44:0.5833 45:0.5667 46:0.5833 47:0.6 48:0.6 49:0.6167 50:0.6333 51:0.6333 52:0.65 53:0.6667 54:0.6833 55:0.7 56:0.7667 57:0.7667 58:0.9 59:0.9 60:0.4667 61:0.4667 62:0.4667 63:0.4667 64:0.4667 65:0.4667 66:0.4667 67:0.4667 68:0.4667 69:0.4667 70:0.4833 71:0.5 72:0.5 73:0.5167 74:0.5833 75:0.5833 76:0.5833 77:0.5833 78:0.6333 79:0.6833 80:0.7333 81:0.7833 82:0.8 83:0.9667 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:0.9167 103:0.9167 104:0.7667 105:0.7167 106:0.6667 107:0.6667 108:0.6667 109:0.5667 110:0.5833 111:0.5667 112:0.5333 113:0.5333 114:0.5333 115:0.5333 116:0.5333 117:0.5333 118:0.5333 119:0.5333 120:0.5333 121:0.5333 122:0.9 123:0.9 124:0.8833 125:0.8833 126:0.8833 127:0.8667 128:0.8667 129:0.8667 130:0.8667 131:0.85 132:0.85 133:0.8333 134:0.8167 135:0.8167 136:0.8167 137:0.7667 138:0.75 139:0.7333 140:0.7333 141:0.6 142:0.57894737 143:0.54389474 144:0.54389474 145:0.52631579 146:0.52631579 147:0.52631579 148:0.52631579 149:0.50873684 150:0.43863158 151:0.43863158 152:0.43863158 153:0.43863158 154:0.43863158 155:0.43863158 156:0.43863158 157:0.4286051 158:0.4286051 159:0.4286051 160:0.44639088 161:0.48217672 162:0.48217672 163:0.48217672 164:0.48217672 165:0.48217672 166:0.48217672 167:0.48217672 168:0.48217672 169:0.48217672 170:0.48217672 171:0.48217672 172:0.51785542 173:0.51785542 174:0.58931996 175:0.58931996 176:0.7321419 177:0.75003482 178:1 179:1 180:1 181:1 182:1 183:1 184:1 185:1 186:1 187:1 188:0.83928514 189:0.66067736 190:0.58931996 191:0.58931996 192:0.58931996 193:0.58931996 194:0.58931996 195:0.58931996 196:0.58931996 197:0.58931996 198:0.58931996 199:0.41071218 200:0.39281926 201:0.39281926 202:0.39281926 203:0.39281926 204:0.39281926 205:0.39281926 206:0.39281926 207:0.39281926 208:0.39281926 209:0.39281926 210:0.39281926 211:0.41071218 212:0.41071218 213:0.41071218 214:0.41071218 215:0.4286051 216:0.4286051 217:0.4286051 218:0.44639088 219:0.4642838 220:0.48217672 221:0.5167 222:0.55 223:0.55 224:0.5667 225:0.6 226:0.6 227:0.6167 228:0.6333 229:0.6333 230:0.65 231:0.65 232:0.65 233:0.65 234:0.65 235:0.65 236:0.65 237:0.65 238:0.6667 239:0.6833 240:0.4667 241:0.4667 242:0.4667 243:0.4667 244:0.4667 245:0.4667 246:0.4667 247:0.4667 248:0.4667 249:0.4667 250:0.4833 251:0.55 252:0.55 253:0.55 254:0.55 255:0.5667 256:0.5833 257:0.5833 258:0.6333 259:0.6833 260:0.7333 261:0.7333 262:0.8 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:0.9167 284:0.85 285:0.8 286:0.6667 287:0.6333 288:0.6 289:0.6 290:0.5333 291:0.5167 292:0.4833 293:0.4667 294:0.45 295:0.4333 296:0.4333 297:0.4333 298:0.4333 299:0.4333 300:0.4333 301:0.4333 302:0.4333 303:0.4333 304:0.4333 305:0.4333 306:0.45 307:0.8167 308:0.7667 309:0.7167 310:0.7 311:0.6833 312:0.6833 313:0.6333 314:0.6333 315:0.6167 316:0.6 317:0.6 318:0.5833 319:0.5833 320:0.5667 321:0.5667 322:0.55 323:0.55 324:0.55 325:0.55 326:0.55 327:0.55 328:0.5333 329:0.5333 330:0.5333 331:0.5333 332:0.5333 333:0.45 334:0.45 335:0.45 336:0.45 337:0.45 338:0.45 339:0.45 340:0.45 341:0.45 342:0.45 343:0.45 344:0.5333 345:0.5333 346:0.5333 347:0.5333 348:0.55 349:0.55 350:0.5667 351:0.7167 352:0.9667 353:1 354:1 355:1 356:1 357:1 358:1 359:1 360:1 +0.02981194483291762 1:1 2:1 3:1 4:1 5:1 6:1 7:1 8:1 9:1 10:0.9167 11:0.9 12:0.8333 13:0.8333 14:0.7 15:0.7 16:0.7 17:0.4667 18:0.4667 19:0.4667 20:0.4667 21:0.4667 22:0.4667 23:0.4667 24:0.4667 25:0.4667 26:0.4667 27:0.4667 28:0.4667 29:0.5667 30:0.55 31:0.5667 32:0.5667 33:0.5833 34:0.6 35:0.6667 36:0.6667 37:0.6667 38:0.65 39:0.6333 40:0.65 41:0.6333 42:0.65 43:0.65 44:0.6333 45:0.65 46:0.65 47:0.6333 48:0.65 49:0.6667 50:0.6833 51:0.6833 52:0.7 53:0.7167 54:0.7667 55:0.7667 56:0.7667 57:0.8 58:0.9667 59:0.9667 60:0.9833 61:0.5333 62:0.55 63:0.5333 64:0.55 65:0.55 66:0.55 67:0.55 68:0.5333 69:0.55 70:0.5833 71:0.5833 72:0.5833 73:0.65 74:0.65 75:0.65 76:0.6667 77:0.75 78:0.8 79:0.8333 80:0.8167 81:0.9 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:0.8167 102:0.75 103:0.7 104:0.6333 105:0.6333 106:0.6167 107:0.6167 108:0.6167 109:0.5667 110:0.5833 111:0.5667 112:0.5667 113:0.5833 114:0.5667 115:0.5833 116:0.5667 117:0.9667 118:0.9333 119:0.9333 120:0.9167 121:0.9167 122:0.9167 123:0.9 124:0.9 125:0.9 126:0.8833 127:0.8833 128:0.8833 129:0.85 130:0.85 131:0.8167 132:0.8 133:0.7833 134:0.75 135:0.7333 136:0.5833 137:0.5833 138:0.5833 139:0.5333 140:0.5333 141:0.4667 142:0.43863158 143:0.43863158 144:0.43863158 145:0.43863158 146:0.43863158 147:0.43863158 148:0.43863158 149:0.43863158 150:0.43863158 151:0.43863158 152:0.43863158 153:0.49126316 154:0.47368421 155:0.47368421 156:0.47368421 157:0.4642838 158:0.4642838 159:0.4642838 160:0.4642838 161:0.4642838 162:0.4642838 163:0.48217672 164:0.57142704 165:0.57142704 166:0.57142704 167:0.57142704 168:0.57142704 169:0.57142704 170:0.71424898 171:0.71424898 172:0.7321419 173:0.89285676 174:0.89285676 175:1 176:1 177:1 178:1 179:1 180:1 181:1 182:1 183:0.78571352 184:0.53574834 185:0.53574834 186:0.53574834 187:0.53574834 188:0.53574834 189:0.53574834 190:0.53574834 191:0.53574834 192:0.33924764 193:0.33924764 194:0.33924764 195:0.33924764 196:0.33924764 197:0.33924764 198:0.33924764 199:0.33924764 200:0.33924764 201:0.33924764 202:0.33924764 203:0.33924764 204:0.33924764 205:0.33924764 206:0.33924764 207:0.35714056 208:0.35714056 209:0.35714056 210:0.35714056 211:0.35714056 212:0.37503348 213:0.37503348 214:0.37503348 215:0.39281926 216:0.41071218 217:0.41071218 218:0.41071218 219:0.4286051 220:0.44639088 221:0.5 222:0.5 223:0.5333 224:0.55 225:0.55 226:0.5667 227:0.5667 228:0.5833 229:0.5833 230:0.5833 231:0.5833 232:0.5833 233:0.5667 234:0.5833 235:0.5833 236:0.5667 237:0.5833 238:0.5833 239:0.5833 240:0.3833 241:0.4 242:0.4 243:0.4 244:0.4 245:0.3833 246:0.4 247:0.3833 248:0.4 249:0.3833 250:0.4 251:0.4 252:0.4 253:0.4 254:0.4833 255:0.4833 256:0.4833 257:0.5167 258:0.5167 259:0.5167 260:0.5667 261:0.6167 262:0.6167 263:0.65 264:0.75 265:0.9667 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:0.9333 286:0.8667 287:0.8167 288:0.7667 289:0.75 290:0.7 291:0.65 292:0.5833 293:0.5667 294:0.5667 295:0.5167 296:0.5 297:0.4667 298:0.4667 299:0.45 300:0.4333 301:0.4167 302:0.4167 303:0.4167 304:0.4167 305:0.4167 306:0.4167 307:0.4167 308:0.4167 309:0.4167 310:0.4167 311:0.4167 312:0.4167 313:0.4167 314:0.7333 315:0.7167 316:0.6833 317:0.6667 318:0.65 319:0.6167 320:0.6167 321:0.6 322:0.6 323:0.5833 324:0.5833 325:0.5833 326:0.5667 327:0.5667 328:0.55 329:0.55 330:0.55 331:0.5333 332:0.55 333:0.5333 334:0.55 335:0.5333 336:0.5333 337:0.5333 338:0.5333 339:0.5333 340:0.5333 341:0.5333 342:0.5333 343:0.4667 344:0.4667 345:0.4667 346:0.4667 347:0.4667 348:0.4667 349:0.4667 350:0.4667 351:0.4667 352:0.4667 353:0.55 354:0.5667 355:0.5667 356:0.5667 357:0.7167 358:1 359:1 360:1 +0.137213548154081 1:1 2:1 3:1 4:1 5:0.9 6:0.8833 7:0.4333 8:0.4333 9:0.4333 10:0.4333 11:0.4333 12:0.4333 13:0.4333 14:0.4333 15:0.4333 16:0.4333 17:0.4333 18:0.45 19:0.5333 20:0.5333 21:0.5333 22:0.5333 23:0.5333 24:0.5333 25:0.5333 26:0.5333 27:0.6333 28:0.6333 29:0.6333 30:0.6333 31:0.6333 32:0.6333 33:0.6167 34:0.6 35:0.6 36:0.6 37:0.6 38:0.6 39:0.6 40:0.6 41:0.6 42:0.6 43:0.6 44:0.6167 45:0.6167 46:0.6333 47:0.6333 48:0.65 49:0.6667 50:0.6833 51:0.6833 52:0.7 53:0.7167 54:0.7333 55:0.4667 56:0.4667 57:0.4667 58:0.4667 59:0.4667 60:0.4667 61:0.4667 62:0.4667 63:0.4667 64:0.4667 65:0.4667 66:0.5 67:0.5167 68:0.5167 69:0.5167 70:0.5667 71:0.5667 72:0.5833 73:0.5667 74:0.6 75:0.6333 76:0.6667 77:0.6667 78:0.7667 79:0.75 80:0.8167 81:0.9 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:0.9167 102:0.8 103:0.6833 104:0.6333 105:0.6333 106:0.6333 107:0.5333 108:0.5333 109:0.5333 110:0.5333 111:0.5167 112:0.5167 113:0.5167 114:0.5167 115:0.5167 116:0.5167 117:0.5167 118:0.5167 119:0.5167 120:0.5167 121:0.5167 122:0.8667 123:0.8667 124:0.85 125:0.85 126:0.85 127:0.85 128:0.85 129:0.8333 130:0.8333 131:0.8167 132:0.8 133:0.7833 134:0.7667 135:0.7667 136:0.75 137:0.7167 138:0.7 139:0.6833 140:0.5667 141:0.5667 142:0.50873684 143:0.50873684 144:0.49126316 145:0.50873684 146:0.45610526 147:0.47368421 148:0.45610526 149:0.47368421 150:0.40347368 151:0.40347368 152:0.40347368 153:0.40347368 154:0.40347368 155:0.40347368 156:0.40347368 157:0.39281926 158:0.39281926 159:0.39281926 160:0.39281926 161:0.44639088 162:0.44639088 163:0.44639088 164:0.44639088 165:0.44639088 166:0.44639088 167:0.44639088 168:0.44639088 169:0.44639088 170:0.44639088 171:0.44639088 172:0.44639088 173:0.4642838 174:0.44639088 175:0.55353412 176:0.55353412 177:0.55353412 178:0.71424898 179:0.71424898 180:1 181:1 182:1 183:1 184:1 185:1 186:1 187:1 188:1 189:0.62499866 190:0.60710574 191:0.60710574 192:0.55353412 193:0.55353412 194:0.55353412 195:0.55353412 196:0.55353412 197:0.55353412 198:0.55353412 199:0.55353412 200:0.39281926 201:0.39281926 202:0.39281926 203:0.37503348 204:0.37503348 205:0.37503348 206:0.37503348 207:0.37503348 208:0.37503348 209:0.37503348 210:0.37503348 211:0.37503348 212:0.37503348 213:0.37503348 214:0.37503348 215:0.37503348 216:0.39281926 217:0.39281926 218:0.39281926 219:0.39281926 220:0.41071218 221:0.45 222:0.4833 223:0.4833 224:0.5 225:0.5 226:0.5167 227:0.55 228:0.55 229:0.5667 230:0.6 231:0.6167 232:0.6333 233:0.6333 234:0.65 235:0.6333 236:0.6333 237:0.6333 238:0.6333 239:0.6333 240:0.6333 241:0.6333 242:0.6333 243:0.65 244:0.4667 245:0.4667 246:0.4667 247:0.4667 248:0.4667 249:0.4667 250:0.4667 251:0.4667 252:0.4667 253:0.4667 254:0.4667 255:0.4667 256:0.4833 257:0.55 258:0.55 259:0.6167 260:0.6167 261:0.6167 262:0.65 263:0.65 264:0.75 265:0.8667 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:0.95 286:0.8833 287:0.8167 288:0.7833 289:0.7333 290:0.6833 291:0.65 292:0.6333 293:0.55 294:0.5333 295:0.5333 296:0.5333 297:0.4667 298:0.4667 299:0.4667 300:0.4667 301:0.4667 302:0.4667 303:0.4667 304:0.4667 305:0.4667 306:0.4667 307:0.4667 308:0.4833 309:0.8333 310:0.7833 311:0.7667 312:0.75 313:0.7167 314:0.7 315:0.6667 316:0.65 317:0.65 318:0.6333 319:0.6167 320:0.6167 321:0.6 322:0.6 323:0.5833 324:0.5833 325:0.5833 326:0.5833 327:0.5833 328:0.5833 329:0.5667 330:0.5667 331:0.5667 332:0.5667 333:0.5667 334:0.5 335:0.5 336:0.5 337:0.5 338:0.5 339:0.5 340:0.5 341:0.5 342:0.5 343:0.5 344:0.5 345:0.5667 346:0.5833 347:0.5833 348:0.5833 349:0.6 350:0.7333 351:0.75 352:1 353:1 354:1 355:1 356:1 357:1 358:1 359:1 360:1 +0.2253674431456161 1:1 2:1 3:1 4:1 5:1 6:1 7:1 8:1 9:1 10:1 11:1 12:0.9167 13:0.9167 14:0.8667 15:0.8667 16:0.8667 17:0.8667 18:0.8667 19:0.8667 20:0.8667 21:0.6667 22:0.6667 23:0.65 24:0.6167 25:0.6 26:0.6 27:0.5833 28:0.5667 29:0.5667 30:0.5667 31:0.5667 32:0.5667 33:0.55 34:0.5333 35:0.55 36:0.55 37:0.55 38:0.55 39:0.5333 40:0.55 41:0.5333 42:0.55 43:0.55 44:0.55 45:0.55 46:0.5833 47:0.6 48:0.6 49:0.6 50:0.6 51:0.6 52:0.6 53:1 54:1 55:1 56:1 57:1 58:1 59:1 60:1 61:1 62:1 63:1 64:1 65:1 66:1 67:1 68:1 69:1 70:1 71:1 72:1 73:1 74:1 75:1 76:0.8833 77:0.8833 78:0.8833 79:0.8833 80:0.8833 81:0.8833 82:0.8833 83:0.8833 84:0.8833 85:0.9 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:0.9333 104:0.9333 105:0.9333 106:0.9333 107:0.9333 108:0.65 109:0.6167 110:0.5833 111:0.5833 112:0.5833 113:0.5833 114:0.5833 115:0.5833 116:0.5833 117:0.5833 118:0.5833 119:0.5833 120:0.5833 121:0.5833 122:0.5833 123:0.5833 124:0.7833 125:0.7667 126:0.75 127:0.7333 128:0.7333 129:0.7167 130:0.7167 131:0.7167 132:0.7167 133:0.7167 134:0.7167 135:0.7167 136:0.7167 137:0.7167 138:0.7333 139:0.7333 140:0.7167 141:0.7333 142:0.71926316 143:0.73684211 144:0.75442105 145:0.77189474 146:1 147:1 148:1 149:1 150:1 151:1 152:1 153:1 154:1 155:1 156:1 157:1 158:1 159:1 160:1 161:1 162:1 163:1 164:1 165:1 166:1 167:1 168:1 169:1 170:1 171:1 172:1 173:1 174:1 175:1 176:1 177:1 178:1 179:1 180:1 181:1 182:1 183:1 184:1 185:1 186:1 187:1 188:1 189:1 190:1 191:1 192:1 193:1 194:1 195:0.78571352 196:0.78571352 197:0.53574834 198:0.51785542 199:0.51785542 200:0.51785542 201:0.51785542 202:0.51785542 203:0.51785542 204:0.51785542 205:0.51785542 206:0.51785542 207:0.51785542 208:0.51785542 209:0.51785542 210:0.53574834 211:0.75003482 212:0.7678206 213:0.7678206 214:0.4999625 215:0.51785542 216:0.51785542 217:0.51785542 218:0.51785542 219:0.4999625 220:0.51785542 221:0.5333 222:0.55 223:0.55 224:0.55 225:0.55 226:0.5667 227:0.5667 228:0.5833 229:0.5833 230:0.6 231:0.6167 232:0.7833 233:0.7667 234:0.7833 235:0.7833 236:0.7833 237:0.7833 238:0.7833 239:0.7833 240:0.7833 241:0.7833 242:0.8 243:0.8 244:1 245:1 246:1 247:1 248:1 249:1 250:1 251:1 252:1 253:1 254:1 255:1 256:1 257:1 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:1 287:1 288:1 289:1 290:1 291:1 292:1 293:1 294:1 295:1 296:0.9667 297:0.9667 298:0.9667 299:0.9667 300:0.9667 301:0.9833 302:1 303:1 304:0.6833 305:0.6833 306:0.6833 307:0.6667 308:0.6667 309:0.6667 310:0.6667 311:0.6667 312:0.6667 313:0.6667 314:0.6833 315:1 316:1 317:1 318:1 319:1 320:1 321:1 322:1 323:1 324:1 325:0.65 326:1 327:0.65 328:0.65 329:1 330:1 331:0.65 332:1 333:1 334:1 335:1 336:1 337:1 338:1 339:1 340:1 341:1 342:1 343:1 344:1 345:1 346:1 347:1 348:1 349:1 350:1 351:1 352:1 353:1 354:1 355:1 356:1 357:1 358:1 359:1 360:1 +0.3176739970396059 1:1 2:1 3:1 4:1 5:1 6:1 7:1 8:1 9:1 10:1 11:1 12:0.9333 13:0.8667 14:0.85 15:0.8167 16:0.8167 17:0.8167 18:0.8167 19:0.8167 20:0.8167 21:0.8167 22:0.8333 23:0.6 24:0.6167 25:0.6 26:0.5667 27:0.55 28:0.55 29:0.55 30:0.5333 31:0.5167 32:0.5333 33:0.5167 34:0.5 35:0.5 36:0.5 37:0.5 38:0.5 39:0.5 40:0.5 41:0.5 42:0.5 43:0.5 44:0.5 45:0.5 46:0.5 47:0.5 48:0.3667 49:0.3667 50:0.3667 51:0.3667 52:0.3667 53:0.35 54:0.35 55:0.35 56:0.35 57:0.35 58:0.35 59:0.35 60:0.35 61:0.35 62:0.35 63:0.35 64:0.35 65:0.35 66:0.35 67:0.35 68:0.3667 69:0.3833 70:0.4 71:0.4167 72:0.4333 73:0.45 74:1 75:1 76:1 77:1 78:1 79:1 80:1 81:0.9 82:0.9 83:0.9 84:0.9 85:0.9 86:0.9 87:0.9 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:0.9333 107:0.9333 108:0.9333 109:0.9167 110:0.9167 111:0.9167 112:0.6667 113:0.65 114:0.65 115:0.6 116:0.5667 117:0.5667 118:0.5667 119:0.5833 120:0.5667 121:0.5667 122:0.5667 123:0.5667 124:0.5833 125:0.5833 126:0.5833 127:0.6 128:0.8 129:0.7667 130:0.75 131:0.75 132:0.75 133:0.75 134:0.75 135:0.75 136:0.75 137:0.75 138:0.75 139:0.75 140:0.75 141:0.75 142:0.73684211 143:0.75442105 144:0.75442105 145:0.77189474 146:0.78947368 147:0.78947368 148:1 149:1 150:1 151:1 152:1 153:1 154:1 155:1 156:1 157:1 158:1 159:1 160:1 161:1 162:1 163:1 164:1 165:1 166:1 167:1 168:1 169:1 170:1 171:1 172:1 173:1 174:1 175:1 176:1 177:1 178:1 179:1 180:1 181:1 182:1 183:1 184:1 185:1 186:1 187:1 188:1 189:1 190:1 191:1 192:1 193:0.57142704 194:0.57142704 195:0.55353412 196:0.55353412 197:0.53574834 198:0.53574834 199:0.53574834 200:0.4999625 201:0.51785542 202:0.51785542 203:0.51785542 204:0.51785542 205:0.4999625 206:0.51785542 207:0.4999625 208:0.57142704 209:0.80360644 210:0.80360644 211:0.82139222 212:0.60710574 213:0.60710574 214:0.60710574 215:0.60710574 216:0.60710574 217:0.58931996 218:0.58931996 219:0.60710574 220:0.58931996 221:0.6167 222:0.6333 223:0.6167 224:0.6333 225:0.6333 226:0.6333 227:0.6333 228:0.65 229:0.6667 230:0.8167 231:0.25 232:0.25 233:0.25 234:0.2333 235:0.2167 236:0.2333 237:0.2333 238:0.2333 239:0.2333 240:0.2333 241:0.2333 242:0.2333 243:0.2333 244:0.2333 245:0.2333 246:0.2333 247:0.2333 248:0.2333 249:0.2333 250:0.2333 251:0.2333 252:0.2333 253:0.2333 254:0.25 255:0.2667 256:0.2833 257:0.3 258:0.3333 259:0.35 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:1 287:1 288:1 289:1 290:1 291:1 292:1 293:0.95 294:0.95 295:0.95 296:0.95 297:0.95 298:0.9833 299:0.9833 300:1 301:0.6833 302:0.6667 303:0.6667 304:0.6667 305:0.6667 306:0.6667 307:0.6667 308:0.6667 309:1 310:1 311:1 312:1 313:1 314:1 315:1 316:1 317:1 318:1 319:1 320:1 321:1 322:1 323:1 324:1 325:0.65 326:1 327:0.65 328:0.65 329:1 330:1 331:0.65 332:1 333:1 334:1 335:1 336:1 337:1 338:1 339:1 340:1 341:1 342:1 343:1 344:1 345:1 346:1 347:1 348:1 349:1 350:1 351:1 352:1 353:1 354:1 355:1 356:1 357:1 358:1 359:1 360:1 +0.405102162945035 1:0.5167 2:0.5167 3:0.5167 4:0.5167 5:0.5167 6:0.5167 7:0.5167 8:0.5167 9:0.5167 10:0.5167 11:0.5167 12:0.5167 13:0.5167 14:0.5 15:0.5 16:0.5 17:0.5 18:0.5 19:0.5 20:0.5 21:0.5 22:0.5 23:0.5167 24:0.5167 25:0.5167 26:0.5167 27:0.4 28:0.5167 29:0.4 30:0.4167 31:0.4 32:0.4167 33:0.55 34:0.4 35:0.5667 36:0.4 37:0.5833 38:0.5833 39:0.5833 40:0.6 41:0.6 42:0.6167 43:0.6167 44:0.6333 45:0.65 46:0.65 47:0.6667 48:0.6833 49:0.6833 50:0.7 51:0.7167 52:0.7333 53:0.75 54:0.7667 55:0.7833 56:0.8 57:0.4167 58:0.85 59:0.4167 60:0.4167 61:0.4167 62:0.4167 63:0.4333 64:0.4167 65:0.4333 66:0.4167 67:0.4333 68:0.4333 69:0.4333 70:0.4333 71:0.4833 72:0.4833 73:0.4833 74:0.4833 75:0.4833 76:0.4833 77:0.4833 78:0.4833 79:0.5667 80:0.5667 81:0.5667 82:0.5667 83:0.5667 84:0.6667 85:0.6667 86:0.6667 87:0.7167 88:0.8667 89:0.9167 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:0.9167 105:0.85 106:0.85 107:0.85 108:0.75 109:0.75 110:0.6 111:0.6 112:0.6 113:0.6 114:0.6 115:0.6 116:0.6 117:0.6 118:0.6 119:0.6 120:0.6 121:0.6 122:0.6 123:0.6333 124:0.9833 125:0.9167 126:0.9167 127:0.9167 128:0.9 129:0.8833 130:0.8667 131:0.85 132:0.85 133:0.4667 134:0.4667 135:0.4667 136:0.4667 137:0.4667 138:0.4667 139:0.4667 140:0.4667 141:0.4667 142:0.43863158 143:0.45610526 144:0.45610526 145:0.70178947 146:0.70178947 147:0.70178947 148:0.70178947 149:0.70178947 150:0.70178947 151:0.70178947 152:0.70178947 153:0.70178947 154:0.70178947 155:0.71926316 156:0.71926316 157:0.71424898 158:0.7321419 159:0.7321419 160:0.75003482 161:0.7678206 162:0.7678206 163:0.7678206 164:0.80360644 165:0.80360644 166:0.82139222 167:0.83928514 168:0.85717806 169:0.89285676 170:0.91074968 171:0.92853546 172:1 173:0.82139222 174:0.82139222 175:0.82139222 176:0.82139222 177:0.82139222 178:0.82139222 179:0.82139222 180:1 181:1 182:1 183:1 184:1 185:1 186:1 187:1 188:1 189:1 190:1 191:1 192:1 193:1 194:1 195:1 196:1 197:1 198:1 199:1 200:0.98210708 201:0.89285676 202:0.89285676 203:0.89285676 204:0.89285676 205:0.89285676 206:0.89285676 207:1 208:0.92853546 209:0.89285676 210:0.89285676 211:0.91074968 212:0.85717806 213:0.82139222 214:0.80360644 215:0.80360644 216:0.78571352 217:0.4286051 218:0.39281926 219:0.39281926 220:0.39281926 221:0.4333 222:0.4167 223:0.4167 224:0.4167 225:0.4167 226:0.4167 227:0.4167 228:0.4167 229:0.4167 230:0.4167 231:0.4167 232:0.4167 233:0.4167 234:0.4167 235:0.4167 236:0.4167 237:0.6167 238:0.7667 239:0.75 240:0.7667 241:0.7667 242:0.6833 243:0.6833 244:0.8 245:0.7833 246:0.6833 247:0.6833 248:0.7833 249:0.7833 250:0.7833 251:0.85 252:0.9 253:0.9333 254:0.9333 255:1 256:1 257:1 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:0.9333 271:0.7667 272:0.6167 273:0.6167 274:0.6167 275:0.6 276:0.5167 277:0.5167 278:0.5167 279:0.5167 280:0.5167 281:0.5167 282:0.5167 283:0.4667 284:0.4667 285:0.4667 286:0.4667 287:0.4667 288:0.4667 289:0.4667 290:0.4667 291:0.4667 292:0.5833 293:0.5833 294:0.5833 295:0.5833 296:0.6 297:0.6 298:0.6 299:0.6 300:0.6 301:0.6 302:0.6 303:0.6167 304:0.6167 305:0.6167 306:0.6333 307:0.6333 308:0.6333 309:0.6333 310:0.6333 311:0.65 312:0.65 313:0.4833 314:0.4833 315:0.4833 316:0.4833 317:0.4833 318:0.4833 319:0.4833 320:0.4833 321:0.4833 322:0.4833 323:0.4833 324:0.55 325:0.55 326:0.55 327:0.5167 328:0.5167 329:0.5167 330:0.5 331:0.5 332:0.5 333:0.5 334:0.4833 335:0.4833 336:0.4833 337:0.4833 338:0.4833 339:0.4833 340:0.4833 341:0.4833 342:0.4833 343:0.4833 344:0.4833 345:0.5 346:0.5 347:0.5167 348:0.5167 349:0.5167 350:0.5167 351:0.5167 352:0.5167 353:0.5167 354:0.5167 355:0.5167 356:0.5167 357:0.5167 358:0.5167 359:0.5167 360:0.5167 +0.02923343901896431 1:0.6833 2:0.6833 3:0.6833 4:1 5:1 6:1 7:1 8:1 9:1 10:1 11:1 12:1 13:1 14:1 15:1 16:1 17:1 18:0.8833 19:0.8833 20:0.8833 21:0.8 22:0.4833 23:0.4833 24:0.4833 25:0.4667 26:0.4833 27:0.4667 28:0.4833 29:0.4667 30:0.4833 31:0.4667 32:0.4167 33:0.4167 34:0.4167 35:0.4 36:0.4167 37:0.4 38:0.4167 39:0.4167 40:0.4167 41:0.4167 42:0.4 43:0.4167 44:0.4 45:0.5333 46:0.5333 47:0.5333 48:0.5333 49:0.5333 50:0.5333 51:0.5167 52:0.5333 53:0.5333 54:0.5333 55:0.5333 56:0.5333 57:0.5333 58:0.5333 59:0.55 60:0.55 61:0.55 62:0.55 63:0.55 64:0.5667 65:0.55 66:0.5667 67:0.5833 68:0.5833 69:0.6 70:0.6 71:0.6 72:0.6167 73:0.6167 74:0.65 75:0.6667 76:0.5 77:0.4833 78:0.4833 79:0.4833 80:0.4833 81:0.4833 82:0.4833 83:0.4833 84:0.4833 85:0.4833 86:0.4833 87:0.4833 88:0.4833 89:0.5 90:0.5 91:0.5667 92:0.6833 93:0.6833 94:0.6833 95:0.9167 96:0.95 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:1 107:1 108:1 109:1 110:1 111:1 112:1 113:1 114:1 115:1 116:1 117:1 118:1 119:0.9833 120:0.9833 121:0.9667 122:0.8833 123:0.8667 124:0.85 125:0.7667 126:0.75 127:0.7333 128:0.7 129:0.6167 130:0.6167 131:0.5833 132:0.5833 133:0.5667 134:0.55 135:0.55 136:0.55 137:0.55 138:0.55 139:0.55 140:0.55 141:0.55 142:0.52631579 143:0.52631579 144:0.54389474 145:0.54389474 146:0.54389474 147:0.68421053 148:0.68421053 149:0.68421053 150:0.68421053 151:0.59652632 152:0.59652632 153:0.43863158 154:0.43863158 155:0.43863158 156:0.43863158 157:0.4286051 158:0.4286051 159:0.4286051 160:0.4286051 161:0.4286051 162:0.4286051 163:0.4286051 164:0.44639088 165:0.53574834 166:0.53574834 167:0.53574834 168:0.53574834 169:0.53574834 170:0.53574834 171:0.53574834 172:0.53574834 173:0.53574834 174:0.53574834 175:0.53574834 176:0.53574834 177:0.53574834 178:0.53574834 179:0.53574834 180:0.53574834 181:0.53574834 182:0.53574834 183:0.53574834 184:0.53574834 185:0.53574834 186:0.53574834 187:0.53574834 188:0.53574834 189:0.6964632 190:0.7321419 191:0.7321419 192:0.7321419 193:0.7321419 194:0.7321419 195:0.75003482 196:1 197:1 198:1 199:1 200:1 201:1 202:1 203:1 204:1 205:1 206:0.9643213 207:0.9643213 208:0.9643213 209:0.9643213 210:0.7678206 211:0.7678206 212:0.7678206 213:0.7678206 214:0.7678206 215:0.7678206 216:0.78571352 217:1 218:0.57142704 219:0.57142704 220:0.57142704 221:0.6 222:0.6 223:0.6 224:0.6 225:0.6 226:0.6 227:0.6667 228:0.7333 229:0.7333 230:0.7167 231:0.7167 232:0.7 233:0.7 234:0.6833 235:0.6833 236:0.6833 237:0.6833 238:0.6833 239:0.6833 240:0.6833 241:0.5833 242:0.55 243:0.5667 244:0.55 245:0.55 246:0.5667 247:0.55 248:0.55 249:0.55 250:0.65 251:0.6333 252:0.6167 253:0.6167 254:0.6167 255:0.6167 256:0.6167 257:0.6167 258:0.6167 259:0.6167 260:0.6333 261:0.6333 262:0.6667 263:0.6667 264:0.7333 265:0.7167 266:0.7333 267:0.8333 268:0.8667 269:0.95 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:1 287:1 288:1 289:1 290:1 291:1 292:1 293:1 294:1 295:0.9167 296:0.8 297:0.7333 298:0.6833 299:0.6167 300:0.6333 301:0.6167 302:0.6 303:0.6167 304:0.6167 305:0.6 306:0.6167 307:0.6 308:0.6 309:0.6167 310:0.8167 311:0.8 312:0.5 313:0.4833 314:0.4833 315:0.4833 316:0.4833 317:0.4833 318:0.5 319:0.4833 320:0.5 321:0.4833 322:0.5667 323:0.5667 324:0.5667 325:0.55 326:0.55 327:0.55 328:0.55 329:0.5333 330:0.55 331:0.5333 332:0.5333 333:0.5333 334:0.5333 335:0.5333 336:0.5333 337:0.5333 338:0.5333 339:0.5333 340:0.5333 341:0.5333 342:0.5333 343:0.5333 344:0.5333 345:0.5333 346:0.5333 347:0.5167 348:0.5333 349:0.5167 350:0.5333 351:0.5167 352:0.5333 353:0.5333 354:0.5167 355:0.55 356:0.55 357:0.55 358:0.55 359:0.55 360:0.55 +0.3738030152924388 1:0.5167 2:0.5167 3:0.5167 4:0.5167 5:0.5167 6:0.55 7:0.55 8:0.55 9:0.55 10:0.55 11:0.6833 12:0.6833 13:0.7 14:1 15:1 16:1 17:1 18:1 19:1 20:1 21:1 22:1 23:1 24:1 25:1 26:1 27:1 28:0.9 29:0.8833 30:0.8833 31:0.8833 32:0.8833 33:0.4833 34:0.4833 35:0.4833 36:0.4833 37:0.4833 38:0.4833 39:0.4833 40:0.4833 41:0.4833 42:0.4833 43:0.4333 44:0.4333 45:0.4333 46:0.4333 47:0.4333 48:0.4333 49:0.4333 50:0.4333 51:0.4333 52:0.4333 53:0.4333 54:0.4333 55:0.45 56:0.55 57:0.55 58:0.55 59:0.55 60:0.55 61:0.55 62:0.55 63:0.55 64:0.5667 65:0.55 66:0.5667 67:0.5667 68:0.5667 69:0.5667 70:0.5833 71:0.5833 72:0.5833 73:0.5833 74:0.6 75:0.6 76:0.6 77:0.6167 78:0.6333 79:0.6333 80:0.65 81:0.65 82:0.6833 83:0.6833 84:0.7333 85:0.7167 86:0.75 87:0.8 88:0.8 89:0.8333 90:0.8667 91:0.9167 92:0.95 93:1 94:1 95:1 96:0.85 97:0.7833 98:0.7833 99:0.7833 100:0.7833 101:0.8333 102:0.8 103:0.9833 104:0.9833 105:1 106:1 107:1 108:1 109:1 110:1 111:1 112:1 113:1 114:1 115:1 116:1 117:1 118:1 119:1 120:1 121:1 122:1 123:1 124:1 125:1 126:1 127:1 128:0.9833 129:0.8833 130:0.8667 131:0.85 132:0.75 133:0.7333 134:0.7333 135:0.6667 136:0.6333 137:0.6167 138:0.6167 139:0.6 140:0.6 141:0.5833 142:0.56136842 143:0.56136842 144:0.56136842 145:0.56136842 146:0.56136842 147:0.56136842 148:0.56136842 149:0.56136842 150:0.56136842 151:0.56136842 152:0.70178947 153:0.70178947 154:0.70178947 155:0.70178947 156:0.47368421 157:0.4642838 158:0.4642838 159:0.4642838 160:0.4642838 161:0.4642838 162:0.4642838 163:0.4642838 164:0.4642838 165:0.4642838 166:0.4642838 167:0.55353412 168:0.53574834 169:0.53574834 170:0.53574834 171:0.53574834 172:0.53574834 173:0.53574834 174:0.53574834 175:0.53574834 176:0.53574834 177:0.53574834 178:0.53574834 179:0.53574834 180:0.53574834 181:0.55353412 182:0.55353412 183:0.55353412 184:0.51785542 185:0.51785542 186:0.51785542 187:0.51785542 188:0.51785542 189:0.51785542 190:0.51785542 191:0.51785542 192:0.53574834 193:0.53574834 194:0.6964632 195:0.71424898 196:0.71424898 197:0.71424898 198:0.71424898 199:0.7321419 200:0.7321419 201:1 202:1 203:1 204:1 205:1 206:1 207:1 208:1 209:1 210:1 211:1 212:0.94642838 213:0.94642838 214:0.94642838 215:0.94642838 216:0.75003482 217:0.75003482 218:0.75003482 219:0.75003482 220:0.75003482 221:0.6833 222:0.7 223:0.5833 224:0.5833 225:0.5833 226:0.5833 227:0.5833 228:0.5833 229:0.5833 230:0.5833 231:0.5833 232:0.6 233:0.6167 234:0.6833 235:0.6833 236:0.6833 237:0.6833 238:0.6833 239:0.6667 240:0.65 241:0.65 242:0.65 243:0.65 244:0.65 245:0.65 246:0.65 247:0.65 248:0.5333 249:0.5333 250:0.5333 251:0.5333 252:0.5333 253:0.5333 254:0.5333 255:0.5333 256:0.55 257:0.6167 258:0.5833 259:0.5833 260:0.5833 261:0.5833 262:0.5833 263:0.5833 264:0.5833 265:0.5833 266:0.5833 267:0.5833 268:0.5833 269:0.6167 270:0.6167 271:0.6667 272:0.7 273:0.75 274:0.75 275:0.8 276:0.9 277:0.9333 278:0.9667 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:1 287:1 288:1 289:1 290:1 291:1 292:1 293:1 294:1 295:1 296:1 297:1 298:1 299:1 300:1 301:1 302:1 303:1 304:0.8667 305:0.8167 306:0.7167 307:0.6333 308:0.6 309:0.5833 310:0.5833 311:0.5833 312:0.5833 313:0.5833 314:0.5833 315:0.5833 316:0.5833 317:0.5833 318:0.5833 319:0.5833 320:0.5833 321:0.4667 322:0.4667 323:0.4667 324:0.4667 325:0.4667 326:0.4667 327:0.4667 328:0.4667 329:0.4667 330:0.4667 331:0.4667 332:0.4667 333:0.55 334:0.55 335:0.5333 336:0.5333 337:0.5333 338:0.5333 339:0.5333 340:0.5167 341:0.5167 342:0.5167 343:0.5167 344:0.5167 345:0.5167 346:0.5167 347:0.5167 348:0.5167 349:0.5167 350:0.5167 351:0.5167 352:0.5167 353:0.5167 354:0.5167 355:0.5167 356:0.5167 357:0.5167 358:0.5167 359:0.5167 360:0.5167 +0.8099883035993928 1:0.5 2:0.5 3:0.5 4:0.5 5:0.5 6:0.5 7:0.5 8:0.5 9:0.5 10:0.5 11:0.5 12:0.5167 13:0.5167 14:0.5167 15:0.5167 16:0.5167 17:0.5167 18:0.5167 19:0.5167 20:0.5167 21:0.5167 22:0.5167 23:0.55 24:0.5667 25:0.5667 26:0.55 27:1 28:1 29:1 30:1 31:1 32:1 33:1 34:1 35:1 36:1 37:1 38:1 39:1 40:1 41:1 42:0.9333 43:0.9333 44:0.9333 45:0.85 46:0.8667 47:0.7333 48:0.7 49:0.6833 50:0.7 51:0.5333 52:0.5333 53:0.5333 54:0.5333 55:0.5333 56:0.5333 57:0.5333 58:0.5333 59:0.4833 60:0.4833 61:0.5 62:0.4833 63:0.5 64:0.4833 65:0.4833 66:0.4833 67:0.4833 68:0.4833 69:0.6167 70:0.6167 71:0.6167 72:0.6167 73:0.6167 74:0.6167 75:0.6333 76:0.6333 77:0.6333 78:0.6333 79:0.6333 80:0.65 81:0.65 82:0.65 83:0.65 84:0.6667 85:0.6667 86:0.6667 87:0.6833 88:0.7 89:0.7167 90:0.7167 91:0.7333 92:0.7667 93:0.7833 94:0.8167 95:0.8167 96:0.8333 97:0.95 98:0.95 99:0.95 100:0.9667 101:0.8167 102:0.8167 103:0.7667 104:0.7667 105:0.7833 106:0.7833 107:0.7833 108:0.7667 109:0.8 110:1 111:1 112:1 113:1 114:1 115:1 116:1 117:1 118:1 119:1 120:1 121:1 122:1 123:1 124:1 125:1 126:1 127:1 128:1 129:1 130:1 131:1 132:1 133:1 134:1 135:0.95 136:0.9333 137:0.85 138:0.8 139:0.75 140:0.7167 141:0.7 142:0.66663158 143:0.614 144:0.614 145:0.614 146:0.614 147:0.614 148:0.614 149:0.614 150:0.614 151:0.614 152:0.614 153:0.63157895 154:0.75442105 155:0.73684211 156:0.75442105 157:0.48217672 158:0.48217672 159:0.48217672 160:0.48217672 161:0.48217672 162:0.48217672 163:0.48217672 164:0.48217672 165:0.4642838 166:0.48217672 167:0.48217672 168:0.55353412 169:0.55353412 170:0.55353412 171:0.55353412 172:0.55353412 173:0.55353412 174:0.55353412 175:0.55353412 176:0.55353412 177:0.55353412 178:0.55353412 179:0.55353412 180:0.55353412 181:0.55353412 182:0.53574834 183:0.53574834 184:0.53574834 185:0.53574834 186:0.53574834 187:0.53574834 188:0.53574834 189:0.53574834 190:0.53574834 191:0.53574834 192:0.53574834 193:0.53574834 194:0.66067736 195:0.66067736 196:0.67857028 197:0.6964632 198:0.71424898 199:0.71424898 200:0.71424898 201:0.71424898 202:0.71424898 203:1 204:1 205:1 206:1 207:1 208:1 209:1 210:1 211:1 212:1 213:1 214:1 215:1 216:0.91074968 217:0.91074968 218:0.91074968 219:0.91074968 220:0.91074968 221:0.9167 222:0.9167 223:0.9833 224:0.9833 225:0.5167 226:0.5333 227:0.5167 228:0.5333 229:0.5333 230:0.5333 231:0.5333 232:0.5167 233:0.5333 234:0.5667 235:0.5667 236:0.5667 237:0.6333 238:0.6333 239:0.6333 240:0.6167 241:0.6333 242:0.6167 243:0.5833 244:0.5833 245:0.5833 246:0.5833 247:0.5833 248:0.5833 249:0.5833 250:0.5833 251:0.4667 252:0.4667 253:0.4667 254:0.4667 255:0.4667 256:0.4667 257:0.4667 258:0.4667 259:0.4667 260:0.4667 261:0.4667 262:0.4667 263:0.5167 264:0.5167 265:0.5167 266:0.5167 267:0.5167 268:0.5167 269:0.5167 270:0.5167 271:0.5167 272:0.5167 273:0.5167 274:0.5167 275:0.5167 276:0.5333 277:0.5333 278:0.55 279:0.5667 280:0.5667 281:0.6 282:0.6333 283:0.7167 284:0.75 285:0.7667 286:0.8167 287:0.8833 288:0.9167 289:0.9833 290:1 291:1 292:1 293:1 294:1 295:1 296:1 297:1 298:1 299:1 300:1 301:1 302:1 303:1 304:1 305:1 306:1 307:1 308:1 309:1 310:1 311:1 312:1 313:1 314:0.95 315:0.85 316:0.8167 317:0.7333 318:0.7 319:0.65 320:0.6167 321:0.5833 322:0.5333 323:0.5333 324:0.5167 325:0.5333 326:0.5167 327:0.5167 328:0.5333 329:0.5167 330:0.5333 331:0.5167 332:0.5333 333:0.5333 334:0.5333 335:0.5333 336:0.5333 337:0.6833 338:0.6333 339:0.4333 340:0.4167 341:0.4167 342:0.4167 343:0.4167 344:0.4167 345:0.4167 346:0.4167 347:0.4167 348:0.4167 349:0.4167 350:0.4167 351:0.4333 352:0.5 353:0.5 354:0.5 355:0.5 356:0.5 357:0.5 358:0.5 359:0.5 360:0.5 +-0.05641373374437366 1:0.08333 2:0.08333 3:0.08333 4:0.08333 5:0.08333 6:0.08333 7:0.08333 8:0.08333 9:0.08333 10:0.08333 11:0.08333 12:0.08333 13:0.08333 14:0.08333 15:0.08333 16:0.08333 17:0.08333 18:0.08333 19:0.08333 20:0.08333 21:0.08333 22:0.08333 23:0.08333 24:0.08333 25:0.08333 26:0.08333 27:0.08333 28:0.08333 29:0.08333 30:0.08333 31:0.08333 32:0.08333 33:0.08333 34:0.08333 35:0.08333 36:0.08333 37:0.08333 38:0.08333 39:0.08333 40:0.08333 41:0.08333 42:0.08333 43:0.08333 44:0.08333 45:0.08333 46:0.08333 47:0.08333 48:0.08333 49:0.08333 50:0.1 51:0.1 52:0.1 53:0.1 54:0.1 55:0.1 56:0.1 57:0.1 58:0.1167 59:0.1167 60:0.1167 61:0.1167 62:0.1167 63:0.1167 64:0.1167 65:0.1333 66:0.1333 67:0.1333 68:0.1167 69:0.1167 70:0.1167 71:0.1167 72:0.1833 73:0.1833 74:0.1833 75:0.1833 76:0.1833 77:0.1833 78:0.1833 79:0.2 80:0.2167 81:0.2333 82:0.2667 83:0.3 84:0.3333 85:0.4 86:0.4667 87:0.5833 88:0.9 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:0.7833 97:0.7833 98:0.7833 99:0.7833 100:0.7833 101:0.7833 102:0.7833 103:0.7167 104:0.7 105:0.5833 106:0.55 107:0.55 108:0.4833 109:0.45 110:0.4333 111:0.4167 112:0.4 113:0.3833 114:0.3667 115:0.35 116:0.3333 117:0.3167 118:0.3167 119:0.3 120:0.3 121:0.2833 122:0.2833 123:0.2667 124:0.2667 125:0.25 126:0.25 127:0.25 128:0.2333 129:0.2333 130:0.2333 131:0.2167 132:0.2167 133:0.2167 134:0.2167 135:0.2167 136:0.2 137:0.2 138:0.2 139:0.2 140:0.2 141:0.2 142:0.14031579 143:0.14031579 144:0.14031579 145:0.14031579 146:0.14031579 147:0.14031579 148:0.14031579 149:0.14031579 150:0.14031579 151:0.12284211 152:0.12284211 153:0.12284211 154:0.12284211 155:0.12284211 156:0.12284211 157:0.10717538 158:0.10717538 159:0.10717538 160:0.10717538 161:0.10717538 162:0.10717538 163:0.10717538 164:0.10717538 165:0.10717538 166:0.10717538 167:0.10717538 168:0.10717538 169:0.10717538 170:0.10717538 171:0.10717538 172:0.10717538 173:0.10717538 174:0.10717538 175:0.10717538 176:0.10717538 177:0.10717538 178:0.10717538 179:0.10717538 180:0.10717538 181:0.10717538 182:0.10717538 183:0.10717538 184:0.10717538 185:0.10717538 186:0.10717538 187:0.10717538 188:0.10717538 189:0.10717538 190:0.10717538 191:0.10717538 192:0.10717538 193:0.10717538 194:0.10717538 195:0.10717538 196:0.10717538 197:0.10717538 198:0.10717538 199:0.10717538 200:0.10717538 201:0.10717538 202:0.10717538 203:0.10717538 204:0.10717538 205:0.10717538 206:0.10717538 207:0.10717538 208:0.10717538 209:0.10717538 210:0.10717538 211:0.10717538 212:0.12496116 213:0.12496116 214:0.12496116 215:0.12496116 216:0.12496116 217:0.12496116 218:0.12496116 219:0.12496116 220:0.12496116 221:0.2 222:0.2 223:0.2 224:0.2 225:0.2 226:0.2 227:0.2167 228:0.2167 229:0.2167 230:0.2167 231:0.2167 232:0.2333 233:0.2333 234:0.2333 235:0.25 236:0.25 237:0.25 238:0.2667 239:0.2667 240:0.2833 241:0.2833 242:0.3 243:0.3 244:0.3167 245:0.3167 246:0.3333 247:0.35 248:0.3667 249:0.3833 250:0.4 251:0.4167 252:0.4333 253:0.45 254:0.4833 255:0.5167 256:0.55 257:0.5833 258:0.6 259:0.6 260:0.65 261:0.8167 262:0.9 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:0.8333 276:0.6667 277:0.55 278:0.4667 279:0.4167 280:0.3667 281:0.3333 282:0.3 283:0.2833 284:0.25 285:0.2333 286:0.2167 287:0.2 288:0.2 289:0.1833 290:0.1833 291:0.1667 292:0.1667 293:0.15 294:0.15 295:0.15 296:0.1333 297:0.1333 298:0.1333 299:0.1167 300:0.1167 301:0.1167 302:0.1167 303:0.1167 304:0.1167 305:0.1 306:0.1 307:0.1 308:0.1 309:0.1 310:0.1 311:0.1 312:0.1 313:0.08333 314:0.08333 315:0.08333 316:0.08333 317:0.08333 318:0.08333 319:0.08333 320:0.08333 321:0.08333 322:0.08333 323:0.08333 324:0.08333 325:0.08333 326:0.08333 327:0.08333 328:0.08333 329:0.08333 330:0.08333 331:0.08333 332:0.08333 333:0.08333 334:0.08333 335:0.08333 336:0.08333 337:0.08333 338:0.08333 339:0.08333 340:0.08333 341:0.08333 342:0.08333 343:0.08333 344:0.08333 345:0.08333 346:0.08333 347:0.08333 348:0.08333 349:0.08333 350:0.08333 351:0.08333 352:0.08333 353:0.08333 354:0.08333 355:0.08333 356:0.08333 357:0.08333 358:0.08333 359:0.08333 360:0.08333 +-0.2669211188117933 1:0.06667 2:0.06667 3:0.06667 4:0.06667 5:0.06667 6:0.06667 7:0.06667 8:0.06667 9:0.06667 10:0.06667 11:0.06667 12:0.06667 13:0.06667 14:0.06667 15:0.06667 16:0.06667 17:0.06667 18:0.06667 19:0.06667 20:0.06667 21:0.06667 22:0.06667 23:0.06667 24:0.06667 25:0.06667 26:0.06667 27:0.06667 28:0.06667 29:0.06667 30:0.06667 31:0.06667 32:0.06667 33:0.06667 34:0.06667 35:0.06667 36:0.06667 37:0.06667 38:0.06667 39:0.06667 40:0.06667 41:0.06667 42:0.06667 43:0.06667 44:0.06667 45:0.06667 46:0.06667 47:0.06667 48:0.06667 49:0.06667 50:0.06667 51:0.06667 52:0.06667 53:0.06667 54:0.06667 55:0.06667 56:0.06667 57:0.08333 58:0.08333 59:0.08333 60:0.08333 61:0.08333 62:0.08333 63:0.08333 64:0.08333 65:0.1 66:0.1 67:0.1 68:0.1 69:0.1167 70:0.1167 71:0.1167 72:0.1333 73:0.1333 74:0.1333 75:0.15 76:0.15 77:0.1667 78:0.1833 79:0.2 80:0.2167 81:0.2333 82:0.2167 83:0.2167 84:0.2167 85:0.2667 86:0.3167 87:0.35 88:0.4667 89:0.5667 90:0.5667 91:0.7833 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:0.7833 106:0.6667 107:0.6333 108:0.5333 109:0.5333 110:0.4833 111:0.4833 112:0.4833 113:0.4167 114:0.4 115:0.3833 116:0.3667 117:0.3667 118:0.35 119:0.3333 120:0.3333 121:0.3167 122:0.3 123:0.3 124:0.3 125:0.2833 126:0.2833 127:0.2667 128:0.2667 129:0.2667 130:0.25 131:0.25 132:0.25 133:0.2333 134:0.2333 135:0.2333 136:0.2 137:0.2 138:0.2167 139:0.2167 140:0.2167 141:0.2 142:0.17547368 143:0.17547368 144:0.15789474 145:0.14031579 146:0.14031579 147:0.14031579 148:0.14031579 149:0.14031579 150:0.14031579 151:0.12284211 152:0.12284211 153:0.12284211 154:0.12284211 155:0.12284211 156:0.12284211 157:0.10717538 158:0.10717538 159:0.10717538 160:0.10717538 161:0.10717538 162:0.10717538 163:0.10717538 164:0.10717538 165:0.10717538 166:0.10717538 167:0.10717538 168:0.10717538 169:0.10717538 170:0.10717538 171:0.10717538 172:0.10717538 173:0.10717538 174:0.10717538 175:0.10717538 176:0.10717538 177:0.10717538 178:0.10717538 179:0.10717538 180:0.10717538 181:0.10717538 182:0.10717538 183:0.10717538 184:0.10717538 185:0.10717538 186:0.10717538 187:0.10717538 188:0.10717538 189:0.10717538 190:0.10717538 191:0.10717538 192:0.10717538 193:0.10717538 194:0.10717538 195:0.10717538 196:0.10717538 197:0.10717538 198:0.10717538 199:0.10717538 200:0.10717538 201:0.10717538 202:0.10717538 203:0.10717538 204:0.10717538 205:0.10717538 206:0.10717538 207:0.10717538 208:0.10717538 209:0.10717538 210:0.10717538 211:0.10717538 212:0.12496116 213:0.12496116 214:0.12496116 215:0.12496116 216:0.12496116 217:0.12496116 218:0.12496116 219:0.12496116 220:0.12496116 221:0.2 222:0.2 223:0.2 224:0.2 225:0.2 226:0.2 227:0.2167 228:0.2167 229:0.2167 230:0.2167 231:0.2167 232:0.2333 233:0.2333 234:0.2333 235:0.25 236:0.25 237:0.25 238:0.2667 239:0.2667 240:0.2833 241:0.2833 242:0.3 243:0.3 244:0.3167 245:0.3167 246:0.3333 247:0.35 248:0.3667 249:0.3833 250:0.4 251:0.4167 252:0.4333 253:0.45 254:0.4667 255:0.4667 256:0.4833 257:0.5167 258:0.55 259:0.6 260:0.65 261:0.7167 262:0.8667 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:0.8333 276:0.6667 277:0.55 278:0.4667 279:0.4167 280:0.3667 281:0.3333 282:0.3 283:0.2833 284:0.25 285:0.2333 286:0.2167 287:0.2 288:0.2 289:0.1833 290:0.1833 291:0.1667 292:0.1667 293:0.15 294:0.15 295:0.15 296:0.1333 297:0.1333 298:0.08333 299:0.08333 300:0.08333 301:0.08333 302:0.08333 303:0.08333 304:0.08333 305:0.08333 306:0.06667 307:0.06667 308:0.06667 309:0.06667 310:0.06667 311:0.06667 312:0.06667 313:0.06667 314:0.06667 315:0.06667 316:0.06667 317:0.06667 318:0.06667 319:0.06667 320:0.06667 321:0.06667 322:0.06667 323:0.06667 324:0.06667 325:0.06667 326:0.06667 327:0.06667 328:0.06667 329:0.06667 330:0.06667 331:0.06667 332:0.06667 333:0.06667 334:0.06667 335:0.06667 336:0.06667 337:0.06667 338:0.06667 339:0.06667 340:0.06667 341:0.06667 342:0.06667 343:0.06667 344:0.06667 345:0.06667 346:0.06667 347:0.06667 348:0.06667 349:0.06667 350:0.06667 351:0.06667 352:0.06667 353:0.06667 354:0.06667 355:0.06667 356:0.06667 357:0.06667 358:0.06667 359:0.06667 360:0.06667 +-0.1833006335014134 1:0.06667 2:0.06667 3:0.06667 4:0.06667 5:0.06667 6:0.06667 7:0.06667 8:0.06667 9:0.06667 10:0.06667 11:0.06667 12:0.06667 13:0.06667 14:0.06667 15:0.06667 16:0.06667 17:0.06667 18:0.06667 19:0.06667 20:0.06667 21:0.06667 22:0.06667 23:0.06667 24:0.06667 25:0.06667 26:0.06667 27:0.06667 28:0.06667 29:0.08333 30:0.08333 31:0.08333 32:0.08333 33:0.08333 34:0.08333 35:0.08333 36:0.08333 37:0.08333 38:0.08333 39:0.08333 40:0.08333 41:0.08333 42:0.08333 43:0.08333 44:0.08333 45:0.08333 46:0.08333 47:0.08333 48:0.08333 49:0.08333 50:0.1 51:0.1 52:0.1 53:0.1 54:0.1 55:0.1 56:0.1 57:0.1 58:0.1167 59:0.1167 60:0.1167 61:0.1167 62:0.1167 63:0.1167 64:0.1167 65:0.1167 66:0.1167 67:0.1 68:0.1 69:0.1167 70:0.1167 71:0.1167 72:0.1333 73:0.1333 74:0.1333 75:0.15 76:0.15 77:0.1667 78:0.1833 79:0.2 80:0.2167 81:0.2333 82:0.2667 83:0.3167 84:0.3333 85:0.4 86:0.5 87:0.6667 88:0.8167 89:0.8167 90:1 91:1 92:1 93:1 94:1 95:1 96:0.7 97:0.4 98:0.4 99:0.4333 100:0.3833 101:0.3333 102:0.3 103:0.2833 104:0.25 105:0.2333 106:0.2167 107:0.2 108:0.2 109:0.1833 110:0.1833 111:0.1667 112:0.1667 113:0.15 114:0.15 115:0.15 116:0.1333 117:0.1333 118:0.1333 119:0.1167 120:0.1167 121:0.1167 122:0.1167 123:0.1167 124:0.1167 125:0.1 126:0.06667 127:0.06667 128:0.06667 129:0.06667 130:0.06667 131:0.06667 132:0.06667 133:0.06667 134:0.06667 135:0.06667 136:0.06667 137:0.06667 138:0.06667 139:0.06667 140:0.06667 141:0.06667 142:0.017547368 143:0.017547368 144:0.017547368 145:0.017547368 146:0.017547368 147:0.017547368 148:0.017547368 149:0.017547368 150:0.017547368 151:0.017547368 152:0.017547368 153:0.017547368 154:0.017547368 155:0.017547368 156:0.017547368 221:0.06667 222:0.06667 223:0.06667 224:0.06667 225:0.06667 226:0.06667 227:0.06667 228:0.06667 229:0.06667 230:0.06667 231:0.06667 232:0.06667 233:0.06667 234:0.06667 235:0.06667 236:0.06667 237:0.1 238:0.1167 239:0.1167 240:0.1167 241:0.1167 242:0.1167 243:0.1167 244:0.1167 245:0.1167 246:0.1167 247:0.1 248:0.1 249:0.1167 250:0.1167 251:0.1167 252:0.1333 253:0.1333 254:0.1333 255:0.15 256:0.15 257:0.1667 258:0.1833 259:0.2 260:0.2167 261:0.2333 262:0.2667 263:0.3 264:0.3333 265:0.4 266:0.6 267:0.6 268:0.7833 269:1 270:1 271:1 272:1 273:1 274:1 275:0.8333 276:0.6667 277:0.55 278:0.4667 279:0.4167 280:0.3667 281:0.3333 282:0.3 283:0.2833 284:0.25 285:0.2333 286:0.2167 287:0.2 288:0.2 289:0.1833 290:0.1833 291:0.1667 292:0.1667 293:0.15 294:0.15 295:0.15 296:0.1333 297:0.1333 298:0.1333 299:0.1167 300:0.1167 301:0.1167 302:0.1167 303:0.1167 304:0.1167 305:0.1 306:0.1 307:0.1 308:0.1 309:0.1 310:0.1 311:0.1 312:0.1 313:0.08333 314:0.08333 315:0.08333 316:0.08333 317:0.08333 318:0.08333 319:0.08333 320:0.08333 321:0.08333 322:0.08333 323:0.08333 324:0.06667 325:0.06667 326:0.06667 327:0.06667 328:0.06667 329:0.06667 330:0.06667 331:0.06667 332:0.06667 333:0.06667 334:0.06667 335:0.06667 336:0.06667 337:0.06667 338:0.06667 339:0.06667 340:0.06667 341:0.06667 342:0.06667 343:0.06667 344:0.06667 345:0.06667 346:0.06667 347:0.06667 348:0.06667 349:0.06667 350:0.06667 351:0.06667 352:0.06667 353:0.06667 354:0.06667 355:0.06667 356:0.06667 357:0.06667 358:0.06667 359:0.06667 360:0.06667 +-2 1:0.08333 2:0.08333 3:0.08333 4:0.08333 5:0.08333 6:0.08333 7:0.08333 8:0.08333 9:0.08333 10:0.08333 11:0.08333 12:0.08333 13:0.08333 14:0.08333 15:0.08333 16:0.08333 17:0.08333 18:0.08333 19:0.08333 20:0.08333 21:0.08333 22:0.08333 23:0.08333 24:0.08333 25:0.08333 26:0.08333 27:0.08333 28:0.08333 29:0.08333 30:0.08333 31:0.08333 32:0.08333 33:0.08333 34:0.08333 35:0.08333 36:0.08333 37:0.08333 38:0.08333 39:0.08333 40:0.08333 41:0.08333 42:0.08333 43:0.08333 44:0.08333 45:0.08333 46:0.08333 47:0.08333 48:0.08333 49:0.08333 50:0.1 51:0.1 52:0.1 53:0.1 54:0.1 55:0.1 56:0.1 57:0.1 58:0.1167 59:0.1167 60:0.1167 61:0.1167 62:0.1167 63:0.1167 64:0.1333 65:0.1333 66:0.1333 67:0.15 68:0.15 69:0.15 70:0.1667 71:0.1667 72:0.1833 73:0.1833 74:0.1833 75:0.1833 76:0.1833 77:0.1833 78:0.1833 79:0.2 80:0.2167 81:0.2333 82:0.2667 83:0.3 84:0.3333 85:0.4333 86:0.5 87:0.5833 88:0.8 89:1 90:1 91:1 92:1 93:1 94:0.7833 95:0.65 96:0.5333 97:0.4 98:0.3667 99:0.3 100:0.2667 101:0.2333 102:0.2167 103:0.2167 104:0.2167 105:0.2167 106:0.2167 107:0.2 108:0.2 109:0.1833 110:0.1833 111:0.1667 112:0.1667 113:0.15 114:0.15 115:0.15 116:0.1333 117:0.1333 118:0.1333 119:0.1167 120:0.1167 121:0.1167 122:0.1167 123:0.1167 124:0.1167 125:0.1 126:0.06667 127:0.06667 128:0.06667 129:0.06667 130:0.06667 131:0.06667 132:0.06667 133:0.06667 134:0.06667 135:0.06667 136:0.06667 137:0.06667 138:0.06667 139:0.06667 140:0.06667 141:0.06667 142:0.017547368 143:0.017547368 144:0.017547368 145:0.017547368 146:0.017547368 147:0.017547368 148:0.017547368 149:0.017547368 150:0.017547368 151:0.017547368 152:0.017547368 153:0.017547368 154:0.017547368 155:0.017547368 156:0.017547368 221:0.06667 222:0.06667 223:0.06667 224:0.06667 225:0.06667 226:0.06667 227:0.06667 228:0.06667 229:0.06667 230:0.06667 231:0.06667 232:0.06667 233:0.06667 234:0.06667 235:0.06667 236:0.06667 237:0.08333 238:0.08333 239:0.08333 240:0.08333 241:0.08333 242:0.08333 243:0.08333 244:0.08333 245:0.1 246:0.1 247:0.1 248:0.1 249:0.1167 250:0.1167 251:0.1167 252:0.1333 253:0.1333 254:0.1333 255:0.15 256:0.15 257:0.1667 258:0.1833 259:0.2 260:0.2167 261:0.2333 262:0.2667 263:0.3 264:0.3333 265:0.4 266:0.5833 267:0.5833 268:0.7833 269:1 270:1 271:1 272:1 273:1 274:1 275:0.8333 276:0.6667 277:0.55 278:0.5333 279:0.4167 280:0.3667 281:0.3333 282:0.3 283:0.2833 284:0.25 285:0.2333 286:0.2167 287:0.2 288:0.2 289:0.1833 290:0.1833 291:0.1667 292:0.1667 293:0.15 294:0.15 295:0.15 296:0.1333 297:0.1333 298:0.1333 299:0.1167 300:0.1167 301:0.1167 302:0.1167 303:0.1167 304:0.1167 305:0.1 306:0.1 307:0.1 308:0.1 309:0.1 310:0.1 311:0.1 312:0.1 313:0.08333 314:0.08333 315:0.08333 316:0.08333 317:0.08333 318:0.08333 319:0.08333 320:0.08333 321:0.08333 322:0.08333 323:0.08333 324:0.08333 325:0.08333 326:0.08333 327:0.08333 328:0.08333 329:0.08333 330:0.08333 331:0.08333 332:0.08333 333:0.08333 334:0.08333 335:0.08333 336:0.08333 337:0.08333 338:0.08333 339:0.08333 340:0.08333 341:0.08333 342:0.08333 343:0.08333 344:0.08333 345:0.08333 346:0.08333 347:0.08333 348:0.08333 349:0.08333 350:0.08333 351:0.08333 352:0.08333 353:0.08333 354:0.08333 355:0.08333 356:0.08333 357:0.08333 358:0.08333 359:0.08333 360:0.08333 +-2 1:0.4833 2:0.4833 3:0.4833 4:0.4833 5:0.4833 6:0.5 7:0.5 8:0.5 9:0.5 10:0.55 11:1 12:1 13:1 14:1 15:1 16:1 17:1 18:1 19:1 20:1 21:1 22:0.8167 23:0.6833 24:0.6667 25:0.6667 26:0.6667 27:0.6667 28:0.6667 29:0.6667 30:0.6667 31:0.6667 32:0.6667 33:1 34:1 35:1 36:1 37:1 38:0.9833 39:0.8 40:0.55 41:0.5333 42:0.5333 43:0.2667 44:0.2667 45:0.25 46:0.25 47:0.25 48:0.2667 49:0.25 50:0.25 51:0.25 52:0.25 53:0.25 54:0.25 55:0.25 56:0.25 57:0.25 58:0.2333 59:0.2333 60:0.2333 61:0.2333 62:0.2333 63:0.2333 64:0.2333 65:0.2333 66:0.2333 67:0.2333 68:0.2333 69:0.2333 70:0.2333 71:0.2333 72:0.2333 73:0.2333 74:0.2333 75:0.2333 76:0.2333 77:0.2333 78:0.2333 79:0.2333 80:0.2333 81:0.2333 82:0.35 83:0.35 84:0.35 85:0.35 86:0.35 87:0.35 88:0.35 89:0.35 90:0.35 91:0.35 92:0.35 93:0.2833 94:0.2833 95:0.2833 96:0.2833 97:0.2833 98:0.2833 99:0.2833 100:0.2833 101:0.2833 102:0.2833 103:0.2833 104:0.2833 105:0.2833 106:0.2833 107:0.2833 108:0.2833 109:0.3 110:0.3 111:0.3333 112:0.4667 113:0.4667 114:0.4833 115:0.4833 116:0.6167 117:0.6167 118:0.6167 119:0.7333 120:0.9167 121:1 122:1 123:1 124:1 125:1 126:1 127:1 128:1 129:0.8833 130:0.7667 131:0.7667 132:0.7667 133:0.6 134:0.6 135:0.55 136:0.5167 137:0.3833 138:0.3667 139:0.3667 140:0.2833 141:0.2833 142:0.24557895 143:0.22810526 144:0.22810526 145:0.24557895 146:0.24557895 147:0.22810526 148:0.24557895 149:0.24557895 150:0.22810526 151:0.22810526 152:0.24557895 153:0.22810526 154:0.22810526 155:0.24557895 156:0.22810526 157:0.21431862 158:0.2321044 159:0.2321044 160:0.26789024 161:0.2321044 162:0.2321044 163:0.21431862 164:0.21431862 165:0.21431862 166:0.21431862 167:0.21431862 168:0.21431862 169:0.21431862 170:0.21431862 171:0.21431862 172:0.21431862 173:0.21431862 174:0.21431862 175:0.21431862 176:0.21431862 177:0.21431862 178:0.21431862 179:0.12496116 180:0.12496116 181:0.12496116 182:0.12496116 183:0.12496116 184:0.12496116 185:0.12496116 186:0.12496116 187:0.12496116 188:0.12496116 189:0.12496116 190:0.12496116 191:0.12496116 192:0.12496116 193:0.12496116 194:0.12496116 195:0.12496116 196:0.12496116 197:0.12496116 198:0.12496116 199:0.12496116 200:0.12496116 201:0.12496116 202:0.12496116 203:0.12496116 204:0.12496116 205:0.12496116 206:0.12496116 207:0.12496116 208:0.21431862 209:0.21431862 210:0.2321044 211:0.21431862 212:0.21431862 213:0.2321044 214:0.2321044 215:0.21431862 216:0.2321044 217:0.2321044 218:0.21431862 219:0.21431862 220:0.2321044 221:0.2833 222:0.2833 223:0.2833 224:0.2833 225:0.3 226:0.3 227:0.3 228:0.25 229:0.25 230:0.2333 231:0.2333 232:0.2333 233:0.2333 234:0.2333 235:0.2333 236:0.2333 237:0.2333 238:0.2333 239:0.2333 240:0.2333 241:0.2333 242:0.2333 243:0.2333 244:0.2333 245:0.2333 246:0.2333 247:0.2333 248:0.2333 249:0.35 250:0.35 251:0.35 252:0.35 253:0.35 254:0.3667 255:0.35 256:0.35 257:0.6 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:0.9833 282:0.9833 283:0.85 284:0.85 285:0.3667 286:0.35 287:0.35 288:0.3667 289:0.35 290:0.3667 291:0.35 292:0.35 293:0.3667 294:0.35 295:0.35 296:0.3333 297:0.3333 298:0.3333 299:0.3333 300:0.3333 301:0.3333 302:0.3333 303:0.3333 304:0.3167 305:0.25 306:0.25 307:0.25 308:0.2333 309:0.2333 310:0.25 311:0.25 312:0.2333 313:0.25 314:0.25 315:0.25 316:0.2333 317:0.25 318:0.25 319:0.25 320:0.2333 321:0.25 322:0.1833 323:0.1833 324:0.1833 325:0.1833 326:0.1833 327:0.1833 328:0.1833 329:0.1833 330:0.1833 331:0.1667 332:0.1667 333:0.1833 334:0.1833 335:0.1833 336:0.1833 337:0.1833 338:0.1833 339:0.1833 340:0.1833 341:0.1833 342:0.1833 343:0.1833 344:0.1833 345:0.1833 346:0.1833 347:0.1833 348:0.1833 349:0.1833 350:0.1833 351:0.1833 352:0.1667 353:0.1667 354:0.2 355:0.4833 356:0.4833 357:0.4833 358:0.4833 359:0.4833 360:0.4833 +-0.6980622909351277 1:0.2833 2:0.2833 3:0.2833 4:0.2833 5:0.2833 6:0.2833 7:0.2833 8:0.2833 9:0.2833 10:0.2833 11:0.2833 12:0.2833 13:0.2833 14:0.2833 15:0.2833 16:0.15 17:0.15 18:0.1333 19:0.1333 20:0.1333 21:0.1333 22:0.1333 23:0.1333 24:0.1333 25:0.1333 26:0.1333 27:0.1333 28:0.1333 29:0.1333 30:0.1333 31:0.1333 32:0.1333 33:0.1333 34:0.1333 35:0.1333 36:0.1333 37:0.1333 38:0.1333 39:0.1333 40:0.1333 41:0.1333 42:0.1333 43:0.1333 44:0.1333 45:0.1333 46:0.1333 47:0.1333 48:0.1333 49:0.1333 50:0.1333 51:0.1333 52:0.1333 53:0.1333 54:0.1333 55:0.1333 56:0.1333 57:0.1333 58:0.1333 59:0.2333 60:0.2333 61:0.2333 62:0.2333 63:0.2333 64:0.2333 65:0.25 66:0.25 67:0.25 68:0.25 69:0.2333 70:0.25 71:0.25 72:0.2333 73:0.2333 74:0.25 75:0.3333 76:0.3333 77:0.3333 78:0.3333 79:0.3333 80:0.3333 81:0.3333 82:0.3833 83:0.3833 84:0.3833 85:0.3833 86:0.3833 87:0.3833 88:0.4 89:0.4 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:0.7667 100:0.7667 101:0.7667 102:0.75 103:0.6 104:0.5833 105:0.5833 106:0.5833 107:0.5833 108:0.4167 109:0.4 110:0.4 111:0.4 112:0.4 113:0.4 114:0.4 115:0.4 116:0.4 117:0.4 118:0.2333 119:0.2333 120:0.2333 121:0.2333 122:0.2333 123:0.2333 124:0.2333 125:0.2333 126:0.2333 127:0.2333 128:0.2333 129:0.2333 130:0.2333 131:0.2333 132:0.2333 133:0.2333 134:0.2333 135:0.2333 136:0.2333 137:0.2333 138:0.2333 139:0.2333 140:0.2667 141:0.3333 142:0.29821053 143:0.29821053 144:0.15789474 145:0.15789474 146:0.15789474 147:0.15789474 148:0.15789474 149:0.15789474 150:0.15789474 151:0.15789474 152:0.15789474 153:0.15789474 154:0.15789474 155:0.15789474 156:0.10526316 157:0.089282462 158:0.089282462 159:0.089282462 160:0.071389541 161:0.071389541 162:0.071389541 163:0.071389541 164:0.071389541 165:0.071389541 166:0.071389541 167:0.071389541 168:0.071389541 169:0.035710842 170:0.035710842 171:0.035710842 172:0.035710842 173:0.035710842 174:0.035710842 175:0.035710842 176:0.035710842 177:0.035710842 178:0.035710842 179:0.035710842 180:0.035710842 181:0.035710842 182:0.035710842 183:0.035710842 184:0.035710842 185:0.035710842 186:0.035710842 187:0.035710842 188:0.035710842 189:0.035710842 190:0.035710842 191:0.035710842 192:0.035710842 193:0.035710842 194:0.035710842 195:0.035710842 196:0.035710842 197:0.035710842 198:0.035710842 199:0.035710842 200:0.035710842 201:0.035710842 202:0.035710842 203:0.035710842 204:0.035710842 205:0.035710842 206:0.035710842 207:0.035710842 208:0.035710842 209:0.035710842 210:0.035710842 211:0.035710842 212:0.035710842 213:0.035710842 214:0.035710842 215:0.035710842 216:0.035710842 217:0.035710842 218:0.12496116 219:0.12496116 220:0.12496116 221:0.1833 222:0.1833 223:0.1833 224:0.1833 225:0.1833 226:0.1833 227:0.1833 228:0.1833 229:0.2 230:0.2 231:0.2 232:0.2167 233:0.2 234:0.2 235:0.2 236:0.2 237:0.2 238:0.2 239:0.2 240:0.2 241:0.2167 242:0.2167 243:0.2 244:0.2 245:0.2833 246:0.2833 247:0.3 248:0.2833 249:0.2833 250:0.3 251:0.2833 252:0.2833 253:0.2833 254:0.2833 255:0.2833 256:0.2833 257:0.3 258:0.55 259:0.55 260:0.55 261:0.55 262:0.55 263:0.55 264:0.75 265:0.7333 266:0.9 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:0.8167 280:0.7333 281:0.7333 282:0.5667 283:0.4333 284:0.4167 285:0.4167 286:0.4167 287:0.3833 288:0.3667 289:0.3667 290:0.2833 291:0.2667 292:0.2667 293:0.2667 294:0.2667 295:0.2667 296:0.2667 297:0.2667 298:0.2667 299:0.2667 300:0.2667 301:0.2667 302:0.2667 303:0.2667 304:0.2667 305:0.2667 306:0.2667 307:0.2667 308:0.2667 309:0.1167 310:0.1167 311:0.1167 312:0.1167 313:0.1167 314:0.1167 315:0.1167 316:0.1167 317:0.1167 318:0.1167 319:0.1167 320:0.1167 321:0.1167 322:0.1167 323:0.1167 324:0.1167 325:0.1167 326:0.1167 327:0.1167 328:0.1167 329:0.1167 330:0.1167 331:0.1167 332:0.1167 333:0.1167 334:0.1167 335:0.1167 336:0.1167 337:0.1167 338:0.1167 339:0.1167 340:0.1167 341:0.1167 342:0.1167 343:0.1167 344:0.1167 345:0.1167 346:0.1167 347:0.1167 348:0.1167 349:0.1167 350:0.3 351:0.2833 352:0.2833 353:0.2833 354:0.2833 355:0.2833 356:0.2833 357:0.2833 358:0.2833 359:0.2833 360:0.2833 +-2 1:0.15 2:0.15 3:0.15 4:0.15 5:0.15 6:0.15 7:0.15 8:0.15 9:0.15 10:0.15 11:0.15 12:0.15 13:0.15 14:0.15 15:0.15 16:0.2167 17:0.2 18:0.2 19:0.2 20:0.2 21:0.2 22:0.2 23:0.2 24:0.2 25:0.2167 26:0.2167 27:0.2 28:0.2 29:0.2 30:0.1833 31:0.1833 32:0.1833 33:0.1833 34:0.1833 35:0.1833 36:0.1833 37:0.1833 38:0.1833 39:0.1833 40:0.1833 41:0.1833 42:0.1833 43:0.1833 44:0.1833 45:0.1833 46:0.1833 47:0.1833 48:0.1833 49:0.1833 50:0.1833 51:0.1833 52:0.1833 53:0.1833 54:0.1833 55:0.1833 56:0.1833 57:0.25 58:0.25 59:0.25 60:0.25 61:0.25 62:0.25 63:0.2667 64:0.2667 65:0.25 66:0.25 67:0.3167 68:0.3167 69:0.3167 70:0.3167 71:0.3167 72:0.3167 73:0.3167 74:0.3167 75:0.3167 76:0.3167 77:0.3167 78:0.3167 79:0.3167 80:0.3167 81:0.3333 82:0.3333 83:0.3167 84:0.9667 85:0.9667 86:0.9667 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:0.7 97:0.7 98:0.65 99:0.65 100:0.4833 101:0.4833 102:0.4833 103:0.4833 104:0.4833 105:0.4833 106:0.2833 107:0.2833 108:0.2833 109:0.2833 110:0.2833 111:0.2833 112:0.3 113:0.2833 114:0.2833 115:0.3 116:0.2833 117:0.2833 118:0.3 119:0.2833 120:0.2833 121:0.2833 122:0.3 123:0.3 124:0.1333 125:0.1333 126:0.1333 127:0.1333 128:0.1333 129:0.1333 130:0.1333 131:0.1333 132:0.1333 133:0.1333 134:0.1333 135:0.1333 136:0.1333 137:0.1333 138:0.1333 139:0.1333 140:0.1333 141:0.1333 142:0.087684211 143:0.087684211 144:0.087684211 145:0.087684211 146:0.087684211 147:0.087684211 148:0.087684211 149:0.087684211 150:0.087684211 151:0.087684211 152:0.087684211 153:0.087684211 154:0.087684211 155:0.087684211 156:0.087684211 157:0.089282462 158:0.089282462 159:0.089282462 160:0.089282462 161:0.089282462 162:0.089282462 163:0.089282462 164:0.089282462 165:0.089282462 166:0.089282462 167:0.089282462 168:0.089282462 169:0.089282462 170:0.089282462 171:0.089282462 172:0.089282462 173:0.089282462 174:0.089282462 175:0.089282462 176:0.089282462 177:0.089282462 178:0.089282462 179:0.089282462 180:0.089282462 181:0.089282462 182:0.089282462 183:0.089282462 184:0.51785542 185:0.51785542 186:0.51785542 187:0.51785542 188:0.51785542 189:0.51785542 190:0.51785542 191:0.51785542 192:0.160747 193:0.14285408 194:0.14285408 195:0.14285408 196:0.14285408 197:0.14285408 198:0.14285408 199:0.14285408 200:0.14285408 201:0.053603763 202:0.053603763 203:0.053603763 204:0.053603763 205:0.071389541 206:0.071389541 207:0.071389541 208:0.053603763 209:0.053603763 210:0.053603763 211:0.071389541 212:0.071389541 213:0.071389541 214:0.071389541 215:0.071389541 216:0.053603763 217:0.071389541 218:0.071389541 219:0.071389541 220:0.071389541 221:0.1333 222:0.1333 223:0.1167 224:0.1167 225:0.1333 226:0.1333 227:0.1333 228:0.1333 229:0.1167 230:0.1167 231:0.1167 232:0.1167 233:0.1167 234:0.1333 235:0.1333 236:0.1333 237:0.1333 238:0.1333 239:0.1333 240:0.1333 241:0.1333 242:0.25 243:0.25 244:0.1333 245:0.1333 246:0.1333 247:0.1333 248:0.1333 249:0.1333 250:0.1333 251:0.1333 252:0.1333 253:0.1333 254:0.1333 255:0.2667 256:0.2833 257:0.2833 258:0.2833 259:0.2833 260:0.3833 261:0.3833 262:0.3667 263:0.3833 264:0.3667 265:0.4 266:0.6333 267:0.6333 268:0.6333 269:0.6333 270:0.6333 271:0.6333 272:0.6333 273:0.6333 274:0.6667 275:0.7333 276:1 277:1 278:1 279:1 280:0.9167 281:0.85 282:0.8333 283:0.6833 284:0.6333 285:0.6333 286:0.55 287:0.5333 288:0.5333 289:0.5333 290:0.3833 291:0.3833 292:0.3833 293:0.3833 294:0.3833 295:0.3833 296:0.3833 297:0.3833 298:0.3833 299:0.3833 300:0.2167 301:0.2167 302:0.2167 303:0.2167 304:0.2167 305:0.2167 306:0.2167 307:0.2167 308:0.2167 309:0.2167 310:0.2167 311:0.2167 312:0.2167 313:0.2167 314:0.2167 315:0.2167 316:0.2167 317:0.2167 318:0.2167 319:0.2167 320:0.2167 321:0.2167 322:0.2333 323:0.2333 324:0.2333 325:0.3667 326:0.3667 327:0.3667 328:0.3667 329:0.3667 330:0.3667 331:0.3667 332:0.3667 333:0.3667 334:0.3667 335:0.3333 336:0.3333 337:0.3333 338:0.3333 339:0.3333 340:0.3333 341:0.3333 342:0.15 343:0.15 344:0.15 345:0.15 346:0.15 347:0.15 348:0.15 349:0.15 350:0.15 351:0.15 352:0.15 353:0.15 354:0.15 355:0.15 356:0.15 357:0.15 358:0.15 359:0.15 360:0.15 +-2 1:0.15 2:0.15 3:0.15 4:0.3167 5:0.3167 6:0.3167 7:0.3167 8:0.2 9:0.2 10:0.2 11:0.2167 12:0.2167 13:0.2 14:0.2167 15:0.2167 16:0.2167 17:0.2167 18:0.2167 19:0.1833 20:0.1833 21:0.1667 22:0.1667 23:0.1833 24:0.1833 25:0.1833 26:0.1667 27:0.1667 28:0.1667 29:0.1667 30:0.1667 31:0.1667 32:0.1667 33:0.1667 34:0.1667 35:0.1667 36:0.1833 37:0.1833 38:0.1667 39:0.1667 40:0.1667 41:0.1667 42:0.1667 43:0.1667 44:0.1667 45:0.1667 46:0.1833 47:0.1667 48:0.1667 49:0.1667 50:0.1667 51:0.1667 52:0.2333 53:0.2333 54:0.2333 55:0.2333 56:0.2333 57:0.2333 58:0.2333 59:0.2333 60:0.2333 61:0.2333 62:0.2333 63:0.2333 64:0.2333 65:0.3 66:0.3 67:0.3 68:0.3 69:0.3 70:0.3 71:0.3 72:0.3 73:0.3 74:0.3 75:0.3 76:0.3 77:0.3 78:0.3 79:0.3 80:0.3 81:0.3167 82:0.3167 83:0.3 84:0.95 85:0.95 86:0.95 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:0.6667 97:0.6667 98:0.6167 99:0.6167 100:0.4667 101:0.4667 102:0.4667 103:0.45 104:0.45 105:0.45 106:0.45 107:0.2667 108:0.25 109:0.25 110:0.2667 111:0.2667 112:0.25 113:0.2667 114:0.2667 115:0.25 116:0.25 117:0.2667 118:0.2667 119:0.25 120:0.2667 121:0.2667 122:0.25 123:0.25 124:0.25 125:0.2667 126:0.2667 127:0.2667 128:0.65 129:0.1167 130:0.1167 131:0.1167 132:0.1167 133:0.1167 134:0.1167 135:0.1167 136:0.1167 137:0.1167 138:0.1167 139:0.1167 140:0.1167 141:0.1167 142:0.070210526 143:0.070210526 144:0.070210526 145:0.070210526 146:0.070210526 147:0.070210526 148:0.070210526 149:0.070210526 150:0.070210526 151:0.070210526 152:0.070210526 153:0.070210526 154:0.070210526 155:0.070210526 156:0.070210526 157:0.053603763 158:0.053603763 159:0.053603763 160:0.053603763 161:0.053603763 162:0.053603763 163:0.053603763 164:0.053603763 165:0.053603763 166:0.053603763 167:0.053603763 168:0.053603763 169:0.053603763 170:0.071389541 171:0.089282462 172:0.089282462 173:0.089282462 174:0.089282462 175:0.089282462 176:0.089282462 177:0.089282462 178:0.089282462 179:0.089282462 180:0.089282462 181:0.089282462 182:0.089282462 183:0.089282462 184:0.089282462 185:0.089282462 186:0.089282462 187:0.089282462 188:0.089282462 189:0.089282462 190:0.51785542 191:0.51785542 192:0.51785542 193:0.51785542 194:0.51785542 195:0.53574834 196:0.53574834 197:0.53574834 198:0.53574834 199:0.53574834 200:0.53574834 201:0.160747 202:0.160747 203:0.160747 204:0.160747 205:0.160747 206:0.071389541 207:0.071389541 208:0.071389541 209:0.071389541 210:0.071389541 211:0.071389541 212:0.071389541 213:0.071389541 214:0.071389541 215:0.071389541 216:0.071389541 217:0.071389541 218:0.071389541 219:0.071389541 220:0.071389541 221:0.1333 222:0.1333 223:0.1333 224:0.1333 225:0.1333 226:0.1333 227:0.1333 228:0.1333 229:0.1333 230:0.1333 231:0.1333 232:0.1333 233:0.1333 234:0.1333 235:0.1333 236:0.1333 237:0.1333 238:0.1333 239:0.1333 240:0.1333 241:0.1333 242:0.1333 243:0.1333 244:0.1333 245:0.1333 246:0.1333 247:0.15 248:0.15 249:0.15 250:0.15 251:0.15 252:0.15 253:0.15 254:0.15 255:0.15 256:0.15 257:0.1667 258:0.3 259:0.3 260:0.3 261:0.4 262:0.4 263:0.4 264:0.4 265:0.4 266:0.4 267:0.4 268:0.65 269:0.65 270:0.65 271:0.65 272:0.6667 273:0.6667 274:0.7167 275:0.7167 276:1 277:1 278:1 279:1 280:0.95 281:0.8833 282:0.8667 283:0.6833 284:0.6333 285:0.5833 286:0.5667 287:0.5667 288:0.4167 289:0.4 290:0.4 291:0.4 292:0.4 293:0.4 294:0.4 295:0.4 296:0.4 297:0.4 298:0.4 299:0.2667 300:0.25 301:0.25 302:0.25 303:0.2333 304:0.25 305:0.25 306:0.25 307:0.2333 308:0.25 309:0.25 310:0.25 311:0.25 312:0.25 313:0.25 314:0.25 315:0.25 316:0.25 317:0.25 318:0.2333 319:0.2333 320:0.4 321:0.4 322:0.4 323:0.4 324:0.4 325:0.4 326:0.4 327:0.3667 328:0.35 329:0.35 330:0.15 331:0.15 332:0.15 333:0.15 334:0.15 335:0.15 336:0.15 337:0.15 338:0.15 339:0.15 340:0.15 341:0.15 342:0.15 343:0.15 344:0.15 345:0.15 346:0.15 347:0.15 348:0.15 349:0.15 350:0.15 351:0.15 352:0.15 353:0.15 354:0.15 355:0.15 356:0.15 357:0.15 358:0.15 359:0.15 360:0.15 +-0.3333908625310683 1:0.3 2:0.3 3:0.3 4:0.1833 5:0.1833 6:0.1833 7:0.1833 8:0.1833 9:0.1833 10:0.1833 11:0.1833 12:0.1833 13:0.1833 14:0.1833 15:0.1667 16:0.15 17:0.15 18:0.1333 19:0.1333 20:0.1333 21:0.1333 22:0.1333 23:0.1333 24:0.1333 25:0.1333 26:0.1333 27:0.1333 28:0.1333 29:0.15 30:0.15 31:0.1333 32:0.1333 33:0.1333 34:0.1333 35:0.15 36:0.15 37:0.15 38:0.1333 39:0.1333 40:0.1333 41:0.1333 42:0.15 43:0.1333 44:0.1333 45:0.1333 46:0.1333 47:0.1333 48:0.1333 49:0.1333 50:0.15 51:0.15 52:0.2167 53:0.2 54:0.2 55:0.2 56:0.2 57:0.2 58:0.2 59:0.2 60:0.2 61:0.2167 62:0.2167 63:0.2 64:0.2 65:0.2667 66:0.2667 67:0.2667 68:0.2667 69:0.2667 70:0.2667 71:0.2667 72:0.2667 73:0.2833 74:0.2667 75:0.2667 76:0.2833 77:0.2833 78:0.2667 79:0.2667 80:0.2833 81:0.2667 82:0.2667 83:0.2667 84:0.2667 85:0.2667 86:0.9167 87:0.9167 88:0.9833 89:0.9833 90:1 91:1 92:1 93:0.9667 94:0.95 95:0.95 96:0.95 97:0.95 98:0.65 99:0.65 100:0.6 101:0.6 102:0.6 103:0.4333 104:0.4333 105:0.4333 106:0.4333 107:0.4333 108:0.4333 109:0.4333 110:0.4333 111:0.4333 112:0.25 113:0.25 114:0.25 115:0.25 116:0.25 117:0.25 118:0.25 119:0.25 120:0.25 121:0.25 122:0.25 123:0.25 124:0.25 125:0.25 126:0.25 127:0.25 128:0.25 129:0.25 130:0.25 131:0.25 132:0.6333 133:0.5333 134:0.5333 135:0.5167 136:0.5167 137:0.5167 138:0.5167 139:0.5167 140:0.5167 141:0.5167 142:0.49126316 143:0.070210526 144:0.070210526 145:0.070210526 146:0.070210526 147:0.070210526 148:0.070210526 149:0.070210526 150:0.070210526 151:0.070210526 152:0.070210526 153:0.070210526 154:0.070210526 155:0.070210526 156:0.070210526 157:0.053603763 158:0.053603763 159:0.053603763 160:0.053603763 161:0.053603763 162:0.053603763 163:0.053603763 164:0.053603763 165:0.053603763 166:0.053603763 167:0.053603763 168:0.053603763 169:0.053603763 170:0.053603763 171:0.053603763 172:0.053603763 173:0.053603763 174:0.053603763 175:0.053603763 176:0.053603763 177:0.053603763 178:0.053603763 179:0.053603763 180:0.053603763 181:0.053603763 182:0.053603763 183:0.053603763 184:0.053603763 185:0.10717538 186:0.10717538 187:0.10717538 188:0.10717538 189:0.10717538 190:0.10717538 191:0.10717538 192:0.10717538 193:0.10717538 194:0.10717538 195:0.10717538 196:0.10717538 197:0.10717538 198:0.10717538 199:0.10717538 200:0.53574834 201:0.51785542 202:0.51785542 203:0.51785542 204:0.51785542 205:0.51785542 206:0.51785542 207:0.51785542 208:0.1964257 209:0.1964257 210:0.1964257 211:0.1964257 212:0.1964257 213:0.10717538 214:0.10717538 215:0.10717538 216:0.10717538 217:0.10717538 218:0.10717538 219:0.10717538 220:0.10717538 221:0.1667 222:0.1667 223:0.1667 224:0.1667 225:0.1667 226:0.1667 227:0.1667 228:0.1667 229:0.1667 230:0.1667 231:0.1667 232:0.1667 233:0.1667 234:0.1667 235:0.1667 236:0.1667 237:0.1667 238:0.1667 239:0.1667 240:0.1667 241:0.1667 242:0.1667 243:0.1667 244:0.1667 245:0.1667 246:0.3167 247:0.3167 248:0.3167 249:0.3167 250:0.3167 251:0.3167 252:0.3167 253:0.3167 254:0.3333 255:0.3333 256:0.3333 257:0.3333 258:0.3333 259:0.4333 260:0.4333 261:0.4333 262:0.45 263:0.45 264:0.5 265:0.6833 266:0.6833 267:0.7333 268:0.7167 269:0.7167 270:0.7167 271:0.7167 272:0.7167 273:0.7167 274:0.7167 275:1 276:1 277:1 278:1 279:0.9 280:0.9 281:0.7167 282:0.65 283:0.6167 284:0.5667 285:0.5833 286:0.4167 287:0.4333 288:0.4167 289:0.4167 290:0.4167 291:0.4167 292:0.4167 293:0.4167 294:0.4167 295:0.2667 296:0.25 297:0.25 298:0.2667 299:0.2667 300:0.25 301:0.2667 302:0.2667 303:0.2667 304:0.2667 305:0.2667 306:0.2667 307:0.25 308:0.2667 309:0.2667 310:0.25 311:0.25 312:0.2667 313:0.2667 314:0.2667 315:0.2667 316:0.4333 317:0.3833 318:0.15 319:0.15 320:0.15 321:0.15 322:0.15 323:0.15 324:0.15 325:0.15 326:0.1333 327:0.1333 328:0.1333 329:0.1333 330:0.1333 331:0.1333 332:0.1333 333:0.15 334:0.15 335:0.1333 336:0.1333 337:0.1333 338:0.1333 339:0.15 340:0.15 341:0.15 342:0.1333 343:0.1333 344:0.1333 345:0.15 346:0.15 347:0.15 348:0.1333 349:0.1333 350:0.1333 351:0.1333 352:0.1333 353:0.1333 354:0.1333 355:0.1333 356:0.1333 357:0.1333 358:0.3 359:0.3 360:0.3 +-1.281383192868089 1:0.1833 2:0.1833 3:0.1833 4:0.15 5:0.1333 6:0.1333 7:0.1333 8:0.1333 9:0.1333 10:0.1333 11:0.1333 12:0.1333 13:0.1333 14:0.1333 15:0.1333 16:0.1333 17:0.1333 18:0.1333 19:0.1333 20:0.1333 21:0.1333 22:0.1333 23:0.1333 24:0.1333 25:0.1333 26:0.1333 27:0.1333 28:0.1333 29:0.1333 30:0.1333 31:0.1333 32:0.1333 33:0.1333 34:0.1333 35:0.1333 36:0.1333 37:0.1333 38:0.1333 39:0.1333 40:0.1333 41:0.1333 42:0.1333 43:0.1833 44:0.1833 45:0.1833 46:0.1833 47:0.1833 48:0.1833 49:0.1833 50:0.1833 51:0.1833 52:0.1833 53:0.1833 54:0.1833 55:0.1833 56:0.1833 57:0.1833 58:0.1833 59:0.1833 60:0.1833 61:0.1833 62:0.25 63:0.25 64:0.25 65:0.25 66:0.25 67:0.25 68:0.25 69:0.25 70:0.25 71:0.25 72:0.25 73:0.25 74:0.25 75:0.25 76:0.25 77:0.25 78:0.25 79:0.25 80:0.25 81:0.25 82:0.2667 83:0.25 84:0.25 85:0.25 86:0.8833 87:0.9 88:0.95 89:0.9667 90:0.9667 91:1 92:1 93:1 94:0.9167 95:0.9167 96:0.9167 97:0.9167 98:0.6333 99:0.6333 100:0.6167 101:0.6167 102:0.5667 103:0.5667 104:0.4 105:0.4 106:0.4 107:0.4 108:0.4 109:0.4 110:0.4 111:0.4 112:0.4 113:0.4 114:0.4 115:0.2167 116:0.2167 117:0.2167 118:0.2167 119:0.2333 120:0.2167 121:0.2167 122:0.2333 123:0.2333 124:0.2167 125:0.2167 126:0.2333 127:0.2333 128:0.2167 129:0.2167 130:0.2167 131:0.2333 132:0.2167 133:0.2167 134:0.2167 135:0.2333 136:0.2333 137:0.2333 138:0.5167 139:0.5167 140:0.5167 141:0.5167 142:0.49126316 143:0.49126316 144:0.49126316 145:0.49126316 146:0.49126316 147:0.49126316 148:0.64915789 149:0.64915789 150:0.070210526 151:0.070210526 152:0.070210526 153:0.070210526 154:0.070210526 155:0.070210526 156:0.070210526 157:0.053603763 158:0.053603763 159:0.053603763 160:0.053603763 161:0.053603763 162:0.053603763 163:0.053603763 164:0.053603763 165:0.053603763 166:0.053603763 167:0.053603763 168:0.053603763 169:0.053603763 170:0.053603763 171:0.053603763 172:0.053603763 173:0.053603763 174:0.053603763 175:0.053603763 176:0.053603763 177:0.053603763 178:0.053603763 179:0.053603763 180:0.053603763 181:0.053603763 182:0.053603763 183:0.053603763 184:0.053603763 185:0.053603763 186:0.053603763 187:0.053603763 188:0.053603763 189:0.053603763 190:0.053603763 191:0.053603763 192:0.10717538 193:0.10717538 194:0.53574834 195:0.55353412 196:0.55353412 197:0.55353412 198:0.55353412 199:0.55353412 200:0.55353412 201:0.55353412 202:0.55353412 203:0.53574834 204:0.53574834 205:0.53574834 206:0.53574834 207:0.53574834 208:0.53574834 209:0.53574834 210:0.53574834 211:0.53574834 212:0.53574834 213:0.21431862 214:0.21431862 215:0.1964257 216:0.1964257 217:0.1964257 218:0.1964257 219:0.1964257 220:0.1964257 221:0.25 222:0.2 223:0.1833 224:0.1833 225:0.1833 226:0.1833 227:0.1833 228:0.1833 229:0.1833 230:0.1833 231:0.1833 232:0.1833 233:0.1833 234:0.1833 235:0.1833 236:0.1833 237:0.1833 238:0.1833 239:0.1833 240:0.1833 241:0.1833 242:0.1833 243:0.1833 244:0.1833 245:0.1833 246:0.1833 247:0.1833 248:0.1833 249:0.35 250:0.3333 251:0.35 252:0.3333 253:0.35 254:0.35 255:0.3333 256:0.35 257:0.35 258:0.35 259:0.35 260:0.4667 261:0.45 262:0.4667 263:0.45 264:0.45 265:0.45 266:0.4667 267:0.7167 268:0.7167 269:0.7167 270:0.7167 271:0.7167 272:0.7167 273:0.7333 274:0.7333 275:1 276:1 277:1 278:1 279:1 280:0.9167 281:0.75 282:0.65 283:0.6 284:0.5833 285:0.45 286:0.4333 287:0.45 288:0.4333 289:0.45 290:0.4333 291:0.45 292:0.3 293:0.2833 294:0.2833 295:0.2667 296:0.2667 297:0.2833 298:0.2667 299:0.2667 300:0.2833 301:0.2833 302:0.2667 303:0.2833 304:0.2833 305:0.2667 306:0.2833 307:0.2833 308:0.2667 309:0.2667 310:0.3 311:0.4333 312:0.4167 313:0.4167 314:0.4 315:0.4 316:0.1667 317:0.15 318:0.15 319:0.15 320:0.15 321:0.15 322:0.15 323:0.15 324:0.15 325:0.15 326:0.15 327:0.15 328:0.15 329:0.1667 330:0.15 331:0.15 332:0.15 333:0.15 334:0.15 335:0.15 336:0.15 337:0.15 338:0.15 339:0.15 340:0.15 341:0.15 342:0.15 343:0.15 344:0.15 345:0.15 346:0.15 347:0.1667 348:0.3 349:0.3 350:0.3 351:0.3 352:0.3 353:0.3 354:0.3 355:0.3 356:0.3 357:0.3 358:0.3 359:0.1833 360:0.1833 +-0.008592076477101866 1:0.1167 2:0.1167 3:0.1167 4:0.1167 5:0.1167 6:0.1167 7:0.1167 8:0.1167 9:0.1167 10:0.1167 11:0.1167 12:0.1167 13:0.1167 14:0.1167 15:0.1167 16:0.1167 17:0.1167 18:0.1167 19:0.1167 20:0.1167 21:0.1167 22:0.1167 23:0.1167 24:0.1167 25:0.1167 26:0.1167 27:0.1167 28:0.1167 29:0.1167 30:0.1167 31:0.1167 32:0.1167 33:0.1167 34:0.1167 35:0.1167 36:0.1167 37:0.1167 38:0.1167 39:0.1167 40:0.1667 41:0.1667 42:0.1667 43:0.1667 44:0.1667 45:0.1667 46:0.1667 47:0.1667 48:0.1667 49:0.1667 50:0.1667 51:0.1667 52:0.1667 53:0.1667 54:0.1667 55:0.1667 56:0.1667 57:0.1667 58:0.1667 59:0.1667 60:0.2333 61:0.2167 62:0.2167 63:0.2333 64:0.2167 65:0.2167 66:0.2167 67:0.2167 68:0.2333 69:0.2333 70:0.2333 71:0.2333 72:0.2333 73:0.2333 74:0.2333 75:0.2333 76:0.2333 77:0.2333 78:0.2333 79:0.2333 80:0.2333 81:0.2333 82:0.2333 83:0.2333 84:0.2333 85:0.2333 86:0.8667 87:0.8667 88:0.9333 89:0.9333 90:1 91:1 92:1 93:0.8667 94:0.8667 95:0.8667 96:0.8667 97:0.8667 98:0.8667 99:0.6 100:0.5833 101:0.5833 102:0.5667 103:0.5667 104:0.5667 105:0.3833 106:0.3833 107:0.3833 108:0.3833 109:0.3833 110:0.3833 111:0.3833 112:0.3833 113:0.3833 114:0.3833 115:0.3833 116:0.3833 117:0.4 118:0.2 119:0.2 120:0.2167 121:0.2167 122:0.2 123:0.2167 124:0.2167 125:0.2167 126:0.2167 127:0.2 128:0.2167 129:0.2167 130:0.2167 131:0.2 132:0.2167 133:0.2167 134:0.2167 135:0.2 136:0.2 137:0.2167 138:0.2167 139:0.2167 140:0.2167 141:0.2167 142:0.45610526 143:0.45610526 144:0.45610526 145:0.45610526 146:0.45610526 147:0.45610526 148:0.45610526 149:0.45610526 150:0.50873684 151:0.63157895 152:0.63157895 153:0.63157895 154:0.614 155:0.614 156:0.614 157:0.14285408 158:0.14285408 159:0.14285408 160:0.14285408 161:0.14285408 162:0.14285408 163:0.14285408 164:0.053603763 165:0.053603763 166:0.053603763 167:0.053603763 168:0.053603763 169:0.053603763 170:0.053603763 171:0.053603763 172:0.053603763 173:0.053603763 174:0.053603763 175:0.053603763 176:0.053603763 177:0.053603763 178:0.053603763 179:0.053603763 180:0.053603763 181:0.053603763 182:0.053603763 183:0.053603763 184:0.053603763 185:0.053603763 186:0.053603763 187:0.053603763 188:0.053603763 189:0.053603763 190:0.053603763 191:0.053603763 192:0.053603763 193:0.053603763 194:0.053603763 195:0.053603763 196:0.053603763 197:0.053603763 198:0.053603763 199:0.053603763 200:0.053603763 201:0.053603763 202:0.053603763 203:0.053603763 204:0.053603763 205:0.053603763 206:0.53574834 207:0.53574834 208:0.53574834 209:0.55353412 210:0.53574834 211:0.53574834 212:0.53574834 213:0.53574834 214:0.55353412 215:0.53574834 216:0.24999732 217:0.21431862 218:0.21431862 219:0.21431862 220:0.21431862 221:0.2667 222:0.2667 223:0.2667 224:0.2667 225:0.2667 226:0.2 227:0.2 228:0.2167 229:0.2167 230:0.2167 231:0.2 232:0.2167 233:0.2167 234:0.2167 235:0.2 236:0.2167 237:0.2167 238:0.2167 239:0.2167 240:0.2 241:0.2167 242:0.2167 243:0.2 244:0.2 245:0.2167 246:0.2167 247:0.2167 248:0.2167 249:0.2167 250:0.2167 251:0.2167 252:0.3667 253:0.35 254:0.3667 255:0.35 256:0.35 257:0.3667 258:0.3833 259:0.3833 260:0.3833 261:0.4833 262:0.4833 263:0.4833 264:0.4833 265:0.4833 266:0.4833 267:0.95 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:0.95 281:0.7833 282:0.65 283:0.6167 284:0.6167 285:0.6167 286:0.4833 287:0.4667 288:0.4667 289:0.4667 290:0.4667 291:0.3167 292:0.3 293:0.3 294:0.3 295:0.3 296:0.3 297:0.3 298:0.3 299:0.3 300:0.3 301:0.3 302:0.3 303:0.3 304:0.3 305:0.3 306:0.3 307:0.4667 308:0.1833 309:0.1833 310:0.1833 311:0.1667 312:0.1667 313:0.1667 314:0.1667 315:0.1667 316:0.1667 317:0.15 318:0.1667 319:0.1667 320:0.1667 321:0.1667 322:0.1667 323:0.1667 324:0.1667 325:0.1667 326:0.1667 327:0.1667 328:0.1667 329:0.1667 330:0.1667 331:0.1667 332:0.1667 333:0.1667 334:0.1667 335:0.1667 336:0.1667 337:0.1667 338:0.1667 339:0.15 340:0.3167 341:0.3 342:0.3 343:0.3 344:0.3 345:0.3 346:0.3 347:0.3 348:0.3 349:0.3 350:0.3 351:0.3 352:0.3 353:0.3 354:0.1833 355:0.1833 356:0.1833 357:0.1833 358:0.1167 359:0.1167 360:0.1167 +-0.5505324532054231 1:0.1167 2:0.1167 3:0.1167 4:0.1167 5:0.1167 6:0.1167 7:0.1167 8:0.1167 9:0.1167 10:0.1167 11:0.1167 12:0.1167 13:0.1167 14:0.1167 15:0.1167 16:0.1167 17:0.1167 18:0.1167 19:0.1167 20:0.1167 21:0.1167 22:0.1167 23:0.1167 24:0.1167 25:0.1167 26:0.15 27:0.15 28:0.15 29:0.15 30:0.15 31:0.15 32:0.15 33:0.15 34:0.15 35:0.15 36:0.15 37:0.15 38:0.15 39:0.15 40:0.15 41:0.15 42:0.15 43:0.15 44:0.15 45:0.15 46:0.15 47:0.15 48:0.15 49:0.15 50:0.15 51:0.15 52:0.2167 53:0.2 54:0.2 55:0.2 56:0.2 57:0.2 58:0.2 59:0.2 60:0.2 61:0.2167 62:0.2167 63:0.2 64:0.2 65:0.2 66:0.2 67:0.2167 68:0.2167 69:0.2167 70:0.2167 71:0.2 72:0.2167 73:0.2167 74:0.2167 75:0.2167 76:0.2167 77:0.2167 78:0.2167 79:0.2 80:0.2167 81:0.2167 82:0.2 83:0.2 84:0.2 85:0.8333 86:0.8333 87:0.8333 88:0.9 89:0.9167 90:1 91:1 92:1 93:0.8167 94:0.8167 95:0.8167 96:0.8167 97:0.8167 98:0.8167 99:0.5667 100:0.5667 101:0.55 102:0.55 103:0.5333 104:0.5333 105:0.5333 106:0.35 107:0.35 108:0.3667 109:0.35 110:0.3667 111:0.35 112:0.35 113:0.3667 114:0.35 115:0.35 116:0.3667 117:0.35 118:0.35 119:0.3667 120:0.3667 121:0.1833 122:0.1833 123:0.1833 124:0.1833 125:0.1833 126:0.1833 127:0.1833 128:0.1833 129:0.1833 130:0.1833 131:0.1833 132:0.1833 133:0.1833 134:0.1833 135:0.1833 136:0.1833 137:0.1833 138:0.1833 139:0.1833 140:0.1833 141:0.1833 142:0.14031579 143:0.14031579 144:0.14031579 145:0.14031579 146:0.14031579 147:0.45610526 148:0.43863158 149:0.43863158 150:0.43863158 151:0.45610526 152:0.47368421 153:0.63157895 154:0.63157895 155:0.614 156:0.59652632 157:0.58931996 158:0.58931996 159:0.58931996 160:0.58931996 161:0.58931996 162:0.58931996 163:0.58931996 164:0.58931996 165:0.58931996 166:0.14285408 167:0.14285408 168:0.14285408 169:0.14285408 170:0.14285408 171:0.14285408 172:0.14285408 173:0.14285408 174:0.14285408 175:0.14285408 176:0.14285408 177:0.14285408 178:0.053603763 179:0.053603763 180:0.053603763 181:0.053603763 182:0.053603763 183:0.053603763 184:0.053603763 185:0.053603763 186:0.053603763 187:0.053603763 188:0.053603763 189:0.053603763 190:0.053603763 191:0.053603763 192:0.053603763 193:0.053603763 194:0.053603763 195:0.053603763 196:0.053603763 197:0.053603763 198:0.053603763 199:0.053603763 200:0.053603763 201:0.053603763 202:0.053603763 203:0.053603763 204:0.053603763 205:0.053603763 206:0.053603763 207:0.053603763 208:0.053603763 209:0.053603763 210:0.053603763 211:0.053603763 212:0.053603763 213:0.55353412 214:0.55353412 215:0.55353412 216:0.55353412 217:0.57142704 218:1 219:1 220:0.53574834 221:0.3 222:0.3 223:0.2833 224:0.2833 225:0.2833 226:0.3 227:0.2833 228:0.2833 229:0.3 230:0.2333 231:0.2333 232:0.2333 233:0.2333 234:0.2333 235:0.2167 236:0.2333 237:0.2333 238:0.2333 239:0.2333 240:0.2333 241:0.2333 242:0.2333 243:0.2333 244:0.2333 245:0.2333 246:0.2333 247:0.2333 248:0.2333 249:0.2333 250:0.2333 251:0.2333 252:0.4 253:0.4 254:0.4 255:0.3833 256:0.4 257:0.4 258:0.4 259:0.4 260:0.4 261:0.5 262:0.5 263:0.5 264:0.5 265:0.5 266:0.5 267:0.9833 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:0.8 281:0.7667 282:0.65 283:0.6333 284:0.6333 285:0.5167 286:0.5167 287:0.5 288:0.5167 289:0.35 290:0.3333 291:0.3333 292:0.3333 293:0.3333 294:0.3333 295:0.3333 296:0.3333 297:0.3333 298:0.3333 299:0.3333 300:0.3333 301:0.3333 302:0.3333 303:0.3333 304:0.3333 305:0.3333 306:0.1833 307:0.1833 308:0.1833 309:0.1833 310:0.1833 311:0.1833 312:0.1833 313:0.1833 314:0.1833 315:0.1833 316:0.1833 317:0.1833 318:0.1833 319:0.1833 320:0.1833 321:0.1833 322:0.1833 323:0.1833 324:0.1833 325:0.1833 326:0.1833 327:0.1833 328:0.1833 329:0.1833 330:0.1833 331:0.1833 332:0.1833 333:0.3167 334:0.3167 335:0.3167 336:0.3167 337:0.3167 338:0.3167 339:0.3167 340:0.3167 341:0.3 342:0.3 343:0.3 344:0.3 345:0.3 346:0.1333 347:0.1333 348:0.1333 349:0.1333 350:0.1333 351:0.1167 352:0.1167 353:0.1167 354:0.1167 355:0.1167 356:0.1167 357:0.1167 358:0.1167 359:0.1167 360:0.1167 +-1.337034051918933 1:0.2333 2:0.2333 3:0.2333 4:0.2333 5:0.2333 6:0.2333 7:0.2333 8:0.2333 9:0.2333 10:0.2333 11:0.2333 12:0.2333 13:0.2333 14:0.2333 15:0.2333 16:0.2333 17:0.2333 18:0.2333 19:0.2333 20:0.2333 21:0.1667 22:0.1667 23:0.1833 24:0.1833 25:0.1833 26:0.1667 27:0.1667 28:0.1667 29:0.1667 30:0.1667 31:0.1667 32:0.1667 33:0.1667 34:0.1667 35:0.1667 36:0.1833 37:0.1833 38:0.1667 39:0.1667 40:0.1667 41:0.1667 42:0.1667 43:0.1667 44:0.1667 45:0.1667 46:0.1833 47:0.1667 48:0.1667 49:0.1667 50:0.1667 51:0.1667 52:0.4667 53:0.3333 54:0.3333 55:0.3333 56:0.3333 57:0.3333 58:0.3333 59:0.3333 60:0.3333 61:0.3333 62:0.3333 63:0.3333 64:0.3333 65:0.3333 66:0.3333 67:0.35 68:0.3333 69:0.3333 70:0.5 71:0.5 72:0.5 73:0.5 74:0.5 75:0.5 76:0.5167 77:0.5833 78:0.5667 79:0.7 80:0.7 81:0.9 82:0.9 83:0.9 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:0.9167 95:0.9167 96:0.9167 97:0.9167 98:0.85 99:0.4167 100:0.4167 101:0.4167 102:0.4167 103:0.4167 104:0.4167 105:0.4167 106:0.2833 107:0.2667 108:0.2667 109:0.2667 110:0.2833 111:0.2667 112:0.2667 113:0.2833 114:0.2667 115:0.2667 116:0.2833 117:0.2667 118:0.2667 119:0.1167 120:0.1167 121:0.1167 122:0.1167 123:0.1167 124:0.1167 125:0.1 126:0.1 127:0.1167 128:0.1167 129:0.1167 130:0.1167 131:0.1167 132:0.1167 133:0.1167 134:0.1167 135:0.1167 136:0.1167 137:0.1167 138:0.1167 139:0.1167 140:0.1167 141:0.1167 142:0.070210526 143:0.070210526 144:0.070210526 145:0.070210526 146:0.070210526 147:0.070210526 148:0.070210526 149:0.070210526 150:0.070210526 151:0.070210526 152:0.070210526 153:0.070210526 154:0.070210526 155:0.070210526 156:0.070210526 157:0.035710842 158:0.035710842 159:0.053603763 160:0.053603763 161:0.053603763 162:0.071389541 163:0.071389541 164:0.071389541 165:0.160747 166:0.160747 167:0.17853278 168:0.1964257 169:0.66067736 170:0.66067736 171:0.33924764 172:0.33924764 173:0.1964257 174:0.1964257 175:0.1964257 176:0.17853278 177:0.17853278 178:0.17853278 179:0.17853278 180:0.17853278 181:0.17853278 182:0.17853278 183:0.17853278 184:0.17853278 185:0.053603763 186:0.035710842 187:0.035710842 188:0.035710842 189:0.035710842 190:0.035710842 191:0.035710842 192:0.053603763 193:0.053603763 194:0.035710842 195:0.035710842 196:0.035710842 197:0.053603763 198:0.053603763 199:0.053603763 200:0.053603763 201:0.053603763 202:0.035710842 203:0.053603763 204:0.053603763 205:0.053603763 206:0.053603763 207:0.053603763 208:0.053603763 209:0.053603763 210:0.035710842 211:0.035710842 212:0.035710842 213:0.053603763 214:0.053603763 215:0.053603763 216:0.053603763 217:0.053603763 218:0.035710842 219:0.035710842 220:0.035710842 221:0.1 222:0.1 223:0.1 224:0.1167 225:0.1167 226:0.1167 227:0.1167 228:0.1167 229:0.4167 230:0.2333 231:0.2333 232:0.2333 233:0.2333 234:0.2333 235:0.2167 236:0.2333 237:0.2333 238:0.2333 239:0.2333 240:0.2333 241:0.2333 242:0.2333 243:0.2333 244:0.2333 245:0.2333 246:0.2333 247:0.2333 248:0.2333 249:0.2333 250:0.2333 251:0.2333 252:0.35 253:0.35 254:0.35 255:0.35 256:0.35 257:0.35 258:0.35 259:0.35 260:0.3667 261:0.3667 262:0.3667 263:0.9167 264:0.9167 265:0.95 266:0.95 267:0.95 268:0.95 269:0.95 270:1 271:1 272:1 273:0.9 274:0.8833 275:0.8833 276:0.8833 277:0.8833 278:0.6333 279:0.4333 280:0.4333 281:0.4333 282:0.4333 283:0.4333 284:0.4333 285:0.4333 286:0.35 287:0.35 288:0.3667 289:0.35 290:0.3667 291:0.35 292:0.35 293:0.2833 294:0.2833 295:0.2667 296:0.2667 297:0.2833 298:0.2667 299:0.2667 300:0.2167 301:0.2167 302:0.2167 303:0.2 304:0.2 305:0.2 306:0.1833 307:0.1833 308:0.2 309:0.2 310:0.2 311:0.2 312:0.2 313:0.2 314:0.2 315:0.2 316:0.2 317:0.2 318:0.15 319:0.15 320:0.15 321:0.15 322:0.15 323:0.15 324:0.15 325:0.15 326:0.1333 327:0.15 328:0.15 329:0.15 330:0.15 331:0.15 332:0.15 333:0.15 334:0.15 335:0.15 336:0.15 337:0.15 338:0.15 339:0.15 340:0.15 341:0.15 342:0.15 343:0.15 344:0.15 345:0.15 346:0.15 347:0.15 348:0.15 349:0.15 350:0.15 351:0.1333 352:0.2667 353:0.2667 354:0.2667 355:0.2667 356:0.25 357:0.25 358:0.25 359:0.25 360:0.2333 +-1.791166510934416 1:0.2333 2:0.2333 3:0.2333 4:0.2333 5:0.2333 6:0.2333 7:0.2333 8:0.2333 9:0.2333 10:0.2333 11:0.2333 12:0.2333 13:0.2333 14:0.2333 15:0.2333 16:0.25 17:0.25 18:0.25 19:0.2333 20:0.2333 21:0.25 22:0.2333 23:0.2333 24:0.2333 25:0.2333 26:0.25 27:0.25 28:0.25 29:0.25 30:0.25 31:0.25 32:0.25 33:0.25 34:0.25 35:0.2667 36:0.3167 37:0.3167 38:0.2667 39:0.2667 40:0.3167 41:0.3167 42:0.3167 43:0.3167 44:0.3167 45:0.3167 46:0.3167 47:0.3167 48:0.3167 49:0.35 50:0.35 51:0.35 52:0.35 53:0.35 54:0.35 55:0.4 56:0.4 57:0.4 58:0.4 59:0.4 60:0.4 61:0.4667 62:0.4667 63:0.4667 64:0.4667 65:0.4667 66:0.5167 67:0.5167 68:0.5667 69:0.5667 70:0.5667 71:0.5667 72:0.6333 73:0.65 74:0.6667 75:0.8833 76:0.8833 77:0.8833 78:0.9 79:1 80:1 81:1 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:0.9333 105:0.85 106:0.75 107:0.75 108:0.65 109:0.6167 110:0.5833 111:0.55 112:0.5333 113:0.5167 114:0.4833 115:0.4667 116:0.45 117:0.4333 118:0.4167 119:0.4 120:0.4 121:0.3833 122:0.3667 123:0.3667 124:0.3167 125:0.3333 126:0.3333 127:0.3167 128:0.3167 129:0.3167 130:0.3 131:0.3 132:0.3 133:0.2833 134:0.2833 135:0.25 136:0.25 137:0.25 138:0.25 139:0.25 140:0.25 141:0.25 142:0.21052632 143:0.21052632 144:0.21052632 145:0.21052632 146:0.21052632 147:0.19294737 148:0.19294737 149:0.19294737 150:0.19294737 151:0.19294737 152:0.19294737 153:0.19294737 154:0.19294737 155:0.19294737 156:0.17547368 157:0.160747 158:0.160747 159:0.160747 160:0.160747 161:0.160747 162:0.160747 163:0.160747 164:0.160747 165:0.160747 166:0.160747 167:0.160747 168:0.160747 169:0.160747 170:0.160747 171:0.160747 172:0.160747 173:0.160747 174:0.160747 175:0.160747 176:0.160747 177:0.160747 178:0.160747 179:0.160747 180:0.160747 181:0.160747 182:0.160747 183:0.160747 184:0.7321419 185:0.7321419 186:0.7321419 187:0.7321419 188:0.7321419 189:0.7321419 190:0.75003482 191:0.75003482 192:0.7321419 193:0.7321419 194:0.7321419 195:0.7321419 196:0.7321419 197:0.7321419 198:0.7321419 199:0.75003482 200:0.75003482 201:0.17853278 202:0.17853278 203:0.17853278 204:0.17853278 205:0.17853278 206:0.17853278 207:0.17853278 208:0.17853278 209:0.17853278 210:0.17853278 211:0.17853278 212:0.17853278 213:0.17853278 214:0.17853278 215:0.17853278 216:0.17853278 217:0.160747 218:0.17853278 219:0.17853278 220:0.17853278 221:0.2333 222:0.2333 223:0.2667 224:0.2667 225:0.2667 226:0.2833 227:0.3167 228:0.3167 229:0.3167 230:0.3167 231:0.3167 232:0.3167 233:0.3167 234:0.3167 235:0.3167 236:0.3167 237:0.3167 238:0.3167 239:0.3333 240:0.3333 241:0.3333 242:0.3333 243:0.3667 244:0.3833 245:0.4 246:0.4 247:0.4 248:0.4 249:0.4167 250:0.5333 251:0.55 252:0.5333 253:0.5667 254:0.6 255:0.6167 256:0.6167 257:0.65 258:0.7333 259:0.75 260:0.8167 261:0.9 262:0.9 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:0.9333 287:0.8667 288:0.7667 289:0.7333 290:0.6833 291:0.65 292:0.6333 293:0.6 294:0.5667 295:0.55 296:0.5333 297:0.5167 298:0.5 299:0.4833 300:0.4667 301:0.4667 302:0.4333 303:0.4333 304:0.4167 305:0.4 306:0.4 307:0.3833 308:0.3833 309:0.3667 310:0.3667 311:0.3667 312:0.35 313:0.3333 314:0.3333 315:0.3333 316:0.3167 317:0.3167 318:0.3167 319:0.3167 320:0.3167 321:0.3167 322:0.3 323:0.3 324:0.2833 325:0.2833 326:0.2833 327:0.2833 328:0.2833 329:0.2833 330:0.2667 331:0.2667 332:0.2833 333:0.2833 334:0.2667 335:0.2667 336:0.2667 337:0.2333 338:0.2333 339:0.2333 340:0.2333 341:0.2333 342:0.2333 343:0.2333 344:0.2333 345:0.2333 346:0.2333 347:0.2333 348:0.2333 349:0.2333 350:0.2333 351:0.2333 352:0.2333 353:0.2333 354:0.2333 355:0.2333 356:0.2333 357:0.2333 358:0.2333 359:0.2333 360:0.2333 +-1.695589249122103 1:1 2:1 3:1 4:0.8 5:0.8 6:0.8 7:0.7833 8:0.7833 9:0.1833 10:0.1833 11:0.2 12:0.2 13:0.8167 14:0.2 15:0.2 16:0.2 17:0.2 18:0.2 19:0.2 20:0.2 21:0.2 22:0.2 23:0.1833 24:0.2 25:0.2 26:0.8667 27:0.2 28:0.1833 29:0.1833 30:0.8333 31:0.2 32:0.2 33:0.2 34:0.8333 35:0.2 36:0.2 37:0.2 38:0.2 39:0.9667 40:0.9167 41:0.9167 42:0.9167 43:0.2833 44:0.2833 45:0.2833 46:0.3 47:0.2833 48:0.2833 49:0.3 50:0.2833 51:0.2833 52:0.3 53:0.2833 54:0.2833 55:0.3 56:0.2833 57:0.2833 58:0.3 59:0.3 60:0.3 61:0.4333 62:0.4333 63:0.4333 64:0.4333 65:0.4333 66:0.4333 67:0.4333 68:0.4333 69:0.4333 70:0.4333 71:0.4667 72:0.5 73:0.5833 74:0.5833 75:0.5833 76:0.6 77:0.65 78:0.9333 79:0.9333 80:0.9333 81:0.95 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:0.8167 103:0.8667 104:0.7 105:0.65 106:0.6 107:0.6 108:0.6 109:0.5667 110:0.5 111:0.5 112:0.4833 113:0.4667 114:0.45 115:0.4333 116:0.4333 117:0.4333 118:0.3833 119:0.3667 120:0.3667 121:0.3667 122:0.3667 123:0.3667 124:0.3167 125:0.3333 126:0.3 127:0.2667 128:0.2667 129:0.2667 130:0.25 131:0.25 132:0.25 133:0.2333 134:0.2333 135:0.25 136:0.25 137:0.25 138:0.25 139:0.25 140:0.2333 141:0.2167 142:0.17547368 143:0.17547368 144:0.15789474 145:0.15789474 146:0.15789474 147:0.15789474 148:0.15789474 149:0.15789474 150:0.15789474 151:0.15789474 152:0.15789474 153:0.14031579 154:0.14031579 155:0.14031579 156:0.14031579 157:0.12496116 158:0.12496116 159:0.12496116 160:0.12496116 161:0.12496116 162:0.12496116 163:0.12496116 164:0.12496116 165:0.12496116 166:0.12496116 167:0.12496116 168:0.12496116 169:0.12496116 170:0.12496116 171:0.12496116 172:0.12496116 173:0.12496116 174:0.12496116 175:0.12496116 176:0.12496116 177:0.12496116 178:0.12496116 179:0.12496116 180:0.12496116 181:0.12496116 182:0.12496116 183:0.12496116 184:0.12496116 185:0.12496116 186:0.12496116 187:0.12496116 188:0.12496116 189:0.12496116 190:0.12496116 191:0.12496116 192:0.12496116 193:0.12496116 194:0.12496116 195:0.12496116 196:0.12496116 197:0.12496116 198:0.12496116 199:0.12496116 200:0.12496116 201:0.12496116 202:0.12496116 203:0.12496116 204:0.12496116 205:0.12496116 206:0.12496116 207:0.12496116 208:0.12496116 209:0.12496116 210:0.14285408 211:0.14285408 212:0.14285408 213:0.14285408 214:0.14285408 215:0.14285408 216:0.14285408 217:0.14285408 218:0.14285408 219:0.160747 220:0.160747 221:0.2167 222:0.2167 223:0.2167 224:0.2167 225:0.2333 226:0.2333 227:0.2333 228:0.2333 229:0.2333 230:0.25 231:0.25 232:0.25 233:0.2667 234:0.2667 235:0.2667 236:0.2833 237:0.2833 238:0.3 239:0.3 240:0.3 241:0.3167 242:0.3333 243:0.3333 244:0.35 245:0.3667 246:0.3667 247:0.3833 248:0.4 249:0.4333 250:0.4333 251:0.4667 252:0.4667 253:0.4667 254:0.4833 255:0.5167 256:0.6 257:0.6 258:0.6333 259:0.6833 260:0.8167 261:0.9 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:0.95 282:0.8167 283:0.75 284:0.7 285:0.65 286:0.65 287:0.65 288:0.5333 289:0.5167 290:0.4833 291:0.4833 292:0.4833 293:0.4667 294:0.45 295:0.3833 296:0.3667 297:0.3667 298:0.35 299:0.3333 300:0.3333 301:0.3333 302:0.3333 303:0.3333 304:0.3333 305:0.2833 306:0.2833 307:0.3333 308:0.2667 309:0.2667 310:0.25 311:0.25 312:0.25 313:0.2333 314:0.2333 315:0.2333 316:0.2333 317:0.2333 318:0.2167 319:0.2167 320:0.2167 321:0.2167 322:0.2167 323:0.2167 324:0.2 325:0.2 326:0.2 327:0.2 328:0.2167 329:0.2 330:0.2 331:0.2 332:0.2167 333:0.2167 334:0.2 335:0.1833 336:0.1833 337:0.1833 338:0.1833 339:0.1833 340:0.1833 341:0.1833 342:0.1833 343:0.1833 344:0.1833 345:0.1833 346:0.1833 347:0.1833 348:0.1833 349:0.1833 350:0.1833 351:0.1833 352:0.1833 353:0.1833 354:0.1833 355:0.1833 356:0.1833 357:0.1833 358:0.1833 359:0.8833 360:0.9 +-0.9989272910754306 1:0.2167 2:0.2167 3:0.2167 4:0.2167 5:0.2167 6:0.2167 7:0.2167 8:0.2167 9:0.2167 10:0.2167 11:0.2167 12:0.2167 13:0.2167 14:0.2167 15:0.2167 16:0.2167 17:0.2167 18:0.2167 19:0.2167 20:0.2167 21:0.2167 22:0.2167 23:0.2167 24:0.2167 25:0.2167 26:0.2167 27:0.2333 28:0.2333 29:0.2333 30:0.2333 31:0.2333 32:0.2333 33:0.2333 34:0.2333 35:0.2333 36:0.2333 37:0.2167 38:0.2333 39:0.2333 40:0.2333 41:0.2333 42:0.2333 43:0.25 44:0.25 45:0.25 46:0.25 47:0.25 48:0.2667 49:0.2667 50:0.2667 51:0.2833 52:0.2833 53:0.2833 54:0.3 55:0.3 56:0.3 57:0.3167 58:0.3167 59:0.3333 60:0.3333 61:0.35 62:0.3667 63:0.3667 64:0.3833 65:0.4 66:0.4167 67:0.4333 68:0.45 69:0.4667 70:0.4833 71:0.5167 72:0.5333 73:0.5667 74:0.6333 75:0.6333 76:0.6333 77:0.65 78:0.85 79:0.9 80:1 81:1 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:0.85 102:0.85 103:0.7 104:0.7 105:0.6167 106:0.6167 107:0.5167 108:0.5167 109:0.5167 110:0.5167 111:0.4167 112:0.4167 113:0.3833 114:0.3667 115:0.3667 116:0.3667 117:0.3167 118:0.3167 119:0.3 120:0.3 121:0.2833 122:0.2833 123:0.2667 124:0.2667 125:0.25 126:0.25 127:0.25 128:0.2333 129:0.2333 130:0.2333 131:0.2167 132:0.2167 133:0.2167 134:0.2167 135:0.2167 136:0.2 137:0.2 138:0.2 139:0.2 140:0.2 141:0.2 142:0.14031579 143:0.14031579 144:0.14031579 145:0.14031579 146:0.14031579 147:0.14031579 148:0.14031579 149:0.14031579 150:0.14031579 151:0.12284211 152:0.12284211 153:0.12284211 154:0.12284211 155:0.12284211 156:0.12284211 157:0.10717538 158:0.10717538 159:0.10717538 160:0.10717538 161:0.10717538 162:0.10717538 163:0.10717538 164:0.10717538 165:0.10717538 166:0.10717538 167:0.10717538 168:0.10717538 169:0.10717538 170:0.10717538 171:0.10717538 172:0.10717538 173:0.10717538 174:0.10717538 175:0.10717538 176:0.10717538 177:0.10717538 178:0.10717538 179:0.10717538 180:0.10717538 181:0.10717538 182:0.10717538 183:0.10717538 184:0.10717538 185:0.10717538 186:0.10717538 187:0.10717538 188:0.10717538 189:0.10717538 190:0.10717538 191:0.10717538 192:0.10717538 193:0.10717538 194:0.10717538 195:0.10717538 196:0.10717538 197:0.10717538 198:0.10717538 199:0.10717538 200:0.10717538 201:0.10717538 202:0.10717538 203:0.10717538 204:0.10717538 205:0.10717538 206:0.10717538 207:0.10717538 208:0.10717538 209:0.10717538 210:0.10717538 211:0.10717538 212:0.12496116 213:0.12496116 214:0.12496116 215:0.12496116 216:0.12496116 217:0.12496116 218:0.12496116 219:0.12496116 220:0.12496116 221:0.2 222:0.2 223:0.2 224:0.2 225:0.2 226:0.2 227:0.2167 228:0.2167 229:0.2167 230:0.2167 231:0.2167 232:0.2333 233:0.2333 234:0.2333 235:0.25 236:0.25 237:0.25 238:0.2667 239:0.2667 240:0.2833 241:0.2833 242:0.3 243:0.3 244:0.3167 245:0.3167 246:0.3333 247:0.35 248:0.3667 249:0.3833 250:0.4 251:0.4333 252:0.4333 253:0.6167 254:0.6167 255:0.6167 256:0.6167 257:0.2167 258:0.2167 259:0.2167 260:0.2167 261:0.2167 262:0.2167 263:0.2167 264:0.2167 265:0.2167 266:0.2167 267:0.2167 268:0.2167 269:0.2167 270:0.2167 271:0.2167 272:0.2167 273:0.2167 274:0.2167 275:0.2167 276:0.2167 277:0.2167 278:0.25 279:0.25 280:0.2833 281:0.2833 282:0.2833 283:0.2833 284:0.2833 285:0.2833 286:0.6667 287:0.6333 288:0.6 289:0.5667 290:0.5333 291:0.5167 292:0.4833 293:0.4667 294:0.45 295:0.4333 296:0.4167 297:0.4 298:0.3833 299:0.3667 300:0.3667 301:0.35 302:0.3333 303:0.3333 304:0.3167 305:0.3167 306:0.3 307:0.3 308:0.3 309:0.2833 310:0.2833 311:0.2833 312:0.2667 313:0.2667 314:0.2667 315:0.25 316:0.25 317:0.25 318:0.25 319:0.25 320:0.2333 321:0.2333 322:0.2333 323:0.2333 324:0.2333 325:0.2167 326:0.2167 327:0.2167 328:0.2167 329:0.2167 330:0.2167 331:0.2167 332:0.2167 333:0.2167 334:0.2167 335:0.2 336:0.2 337:0.2167 338:0.2167 339:0.2167 340:0.2167 341:0.2 342:0.2167 343:0.2167 344:0.2167 345:0.2167 346:0.2167 347:0.2167 348:0.2167 349:0.2 350:0.2167 351:0.2167 352:0.2 353:0.2 354:0.2 355:0.2167 356:0.2167 357:0.2167 358:0.2167 359:0.2167 360:0.2167 +-1.013490659548135 1:0.2 2:0.2 3:0.2 4:0.2 5:0.2 6:0.2 7:0.2 8:0.2 9:0.1833 10:0.1833 11:0.2 12:0.2 13:0.2 14:0.2 15:0.2 16:0.2 17:0.2 18:0.2 19:0.1833 20:0.1833 21:0.1667 22:0.1667 23:0.1833 24:0.1833 25:0.1833 26:0.1667 27:0.1833 28:0.1833 29:0.1833 30:0.1833 31:0.1833 32:0.1833 33:0.1833 34:0.1833 35:0.1833 36:0.1833 37:0.1833 38:0.1833 39:0.1833 40:0.1833 41:0.1667 42:0.1667 43:0.1667 44:0.1833 45:0.1833 46:0.1833 47:0.1833 48:0.1833 49:0.1833 50:0.1833 51:0.1833 52:0.1833 53:0.1833 54:0.1833 55:0.2 56:0.2 57:0.2 58:0.2 59:0.2 60:0.2 61:0.2 62:0.1833 63:0.2 64:0.2 65:0.2 66:0.2 67:0.2 68:0.2 69:0.2 70:0.2 71:0.2 72:0.2 73:0.2 74:0.2 75:0.2 76:0.2167 77:0.2333 78:0.2333 79:0.2333 80:0.2333 81:0.2333 82:0.2667 83:0.25 84:0.25 85:0.25 86:0.2833 87:0.2833 88:0.2833 89:0.2833 90:0.3 91:0.3 92:0.3 93:0.3333 94:0.3333 95:0.3333 96:0.3667 97:0.3667 98:0.4167 99:0.4333 100:0.4333 101:0.4833 102:0.5 103:0.5 104:0.5333 105:0.6333 106:0.7 107:0.7667 108:0.9333 109:1 110:1 111:1 112:1 113:1 114:1 115:1 116:1 117:1 118:1 119:1 120:1 121:1 122:1 123:1 124:1 125:1 126:1 127:1 128:1 129:1 130:1 131:1 132:0.8833 133:0.7833 134:0.75 135:0.7167 136:0.65 137:0.6167 138:0.5667 139:0.55 140:0.5333 141:0.45 142:0.42105263 143:0.386 144:0.386 145:0.35084211 146:0.35084211 147:0.33336842 148:0.31578947 149:0.29821053 150:0.29821053 151:0.29821053 152:0.26315789 153:0.26315789 154:0.26315789 155:0.26315789 156:0.26315789 157:0.2321044 158:0.2321044 159:0.21431862 160:0.21431862 161:0.21431862 162:0.1964257 163:0.1964257 164:0.17853278 165:0.17853278 166:0.17853278 167:0.17853278 168:0.17853278 169:0.17853278 170:0.17853278 171:0.160747 172:0.160747 173:0.160747 174:0.160747 175:0.14285408 176:0.14285408 177:0.14285408 178:0.14285408 179:0.14285408 180:0.14285408 181:0.14285408 182:0.14285408 183:0.14285408 184:0.14285408 185:0.14285408 186:0.14285408 187:0.14285408 188:0.14285408 189:0.12496116 190:0.12496116 191:0.14285408 192:0.14285408 193:0.14285408 194:0.12496116 195:0.12496116 196:0.12496116 197:0.12496116 198:0.12496116 199:0.12496116 200:0.12496116 201:0.12496116 202:0.12496116 203:0.12496116 204:0.12496116 205:0.12496116 206:0.12496116 207:0.12496116 208:0.12496116 209:0.12496116 210:0.12496116 211:0.12496116 212:0.12496116 213:0.12496116 214:0.12496116 215:0.12496116 216:0.12496116 217:0.12496116 218:0.14285408 219:0.14285408 220:0.14285408 221:0.2 222:0.2 223:0.1833 224:0.2 225:0.2 226:0.2 227:0.2 228:0.2 229:0.1833 230:0.2 231:0.2 232:0.2 233:0.2 234:0.2 235:0.2 236:0.2 237:0.2 238:0.2 239:0.2 240:0.2 241:0.2 242:0.1833 243:0.2 244:0.2 245:0.2167 246:0.2167 247:0.2167 248:0.2167 249:0.2167 250:0.2167 251:0.2167 252:0.2333 253:0.2333 254:0.2667 255:0.2667 256:0.2667 257:0.2667 258:0.2667 259:0.2667 260:0.2667 261:0.2667 262:0.2667 263:0.2667 264:0.2667 265:0.2667 266:0.2667 267:0.2667 268:0.2667 269:0.2667 270:0.3 271:0.3 272:0.3 273:0.3167 274:0.3167 275:0.3167 276:0.35 277:0.35 278:0.3667 279:0.3667 280:1 281:1 282:1 283:1 284:1 285:0.85 286:0.8333 287:0.8333 288:0.8333 289:0.8333 290:0.8333 291:0.9167 292:1 293:1 294:1 295:1 296:1 297:1 298:1 299:1 300:1 301:1 302:1 303:1 304:1 305:1 306:1 307:1 308:1 309:1 310:1 311:1 312:1 313:0.5167 314:0.5167 315:0.5167 316:0.5167 317:0.5167 318:0.5167 319:0.4833 320:0.4333 321:0.4333 322:0.4 323:0.4 324:0.4 325:0.3833 326:0.3833 327:0.3667 328:0.35 329:0.35 330:0.35 331:0.35 332:0.35 333:0.35 334:0.3333 335:0.3333 336:0.3333 337:0.3333 338:0.25 339:0.25 340:0.25 341:0.25 342:0.2667 343:0.2167 344:0.2167 345:0.2167 346:0.2167 347:0.2167 348:0.2167 349:0.2167 350:0.2167 351:0.2167 352:0.2167 353:0.2167 354:0.2167 355:0.2167 356:0.2167 357:0.2167 358:0.2167 359:0.2 360:0.2 +-0.03591734355888352 1:0.1833 2:0.1833 3:0.1833 4:0.1833 5:0.1833 6:0.1833 7:0.1833 8:0.1833 9:0.1667 10:0.1667 11:0.1833 12:0.1833 13:0.1833 14:0.1833 15:0.1833 16:0.1833 17:0.1833 18:0.1833 19:0.1833 20:0.1833 21:0.1667 22:0.1667 23:0.1833 24:0.1833 25:0.1833 26:0.1667 27:0.1667 28:0.1667 29:0.1667 30:0.1667 31:0.1667 32:0.1667 33:0.1667 34:0.1667 35:0.1667 36:0.1833 37:0.1833 38:0.1667 39:0.1667 40:0.1667 41:0.1667 42:0.1667 43:0.1667 44:0.1667 45:0.1667 46:0.1833 47:0.1667 48:0.1667 49:0.1667 50:0.1667 51:0.1667 52:0.1833 53:0.1833 54:0.1833 55:0.1833 56:0.1833 57:0.1833 58:0.1833 59:0.1833 60:0.1833 61:0.1833 62:0.1833 63:0.2 64:0.2 65:0.2 66:0.2 67:0.2 68:0.2 69:0.2 70:0.2 71:0.2 72:0.2 73:0.2 74:0.2 75:0.2 76:0.2167 77:0.2333 78:0.25 79:0.25 80:0.25 81:0.25 82:0.2667 83:0.2667 84:0.2667 85:0.2667 86:0.2833 87:0.2833 88:0.2833 89:0.2833 90:0.3333 91:0.3333 92:0.3333 93:0.3667 94:0.3667 95:0.4167 96:0.4167 97:0.4667 98:0.5 99:0.5 100:0.5333 101:0.5833 102:0.6167 103:0.7333 104:0.8167 105:0.9667 106:1 107:1 108:1 109:1 110:1 111:1 112:1 113:1 114:1 115:1 116:1 117:1 118:1 119:1 120:1 121:1 122:1 123:1 124:1 125:1 126:1 127:1 128:0.9333 129:0.8833 130:0.75 131:0.75 132:0.7 133:0.6667 134:0.6333 135:0.5667 136:0.5333 137:0.5 138:0.5 139:0.45 140:0.4333 141:0.4333 142:0.40347368 143:0.386 144:0.33336842 145:0.31578947 146:0.31578947 147:0.29821053 148:0.29821053 149:0.29821053 150:0.29821053 151:0.28073684 152:0.26315789 153:0.26315789 154:0.24557895 155:0.24557895 156:0.24557895 157:0.2321044 158:0.1964257 159:0.1964257 160:0.1964257 161:0.1964257 162:0.1964257 163:0.1964257 164:0.17853278 165:0.17853278 166:0.17853278 167:0.160747 168:0.160747 169:0.160747 170:0.160747 171:0.160747 172:0.160747 173:0.160747 174:0.160747 175:0.160747 176:0.160747 177:0.160747 178:0.160747 179:0.160747 180:0.160747 181:0.160747 182:0.160747 183:0.160747 184:0.12496116 185:0.12496116 186:0.12496116 187:0.12496116 188:0.12496116 189:0.12496116 190:0.12496116 191:0.12496116 192:0.12496116 193:0.12496116 194:0.12496116 195:0.12496116 196:0.12496116 197:0.12496116 198:0.12496116 199:0.12496116 200:0.12496116 201:0.12496116 202:0.12496116 203:0.12496116 204:0.12496116 205:0.12496116 206:0.12496116 207:0.12496116 208:0.12496116 209:0.12496116 210:0.160747 211:0.14285408 212:0.14285408 213:0.14285408 214:0.160747 215:0.14285408 216:0.14285408 217:0.14285408 218:0.14285408 219:0.14285408 220:0.14285408 221:0.2 222:0.2167 223:0.2167 224:0.2 225:0.2 226:0.2 227:0.2 228:0.2 229:0.2 230:0.2 231:0.2 232:0.2167 233:0.2 234:0.2 235:0.2 236:0.2 237:0.2 238:0.2 239:0.2 240:0.2 241:0.2167 242:0.2167 243:0.2 244:0.2 245:0.2167 246:0.2167 247:0.2167 248:0.2333 249:0.2667 250:0.25 251:0.2667 252:0.2667 253:0.25 254:0.25 255:0.2833 256:0.2833 257:0.2833 258:0.2833 259:0.2833 260:0.2833 261:0.2833 262:0.2833 263:0.2833 264:0.2833 265:0.2833 266:0.2833 267:0.3167 268:0.3167 269:0.3167 270:0.35 271:0.35 272:0.35 273:0.3833 274:0.3833 275:0.7667 276:0.7667 277:0.7667 278:0.7667 279:0.7667 280:0.7667 281:0.7667 282:0.7667 283:0.7833 284:0.8 285:0.8167 286:0.8333 287:0.9667 288:1 289:1 290:1 291:1 292:1 293:1 294:1 295:1 296:1 297:1 298:1 299:1 300:1 301:1 302:1 303:1 304:1 305:1 306:1 307:0.8167 308:0.7333 309:0.7 310:0.6333 311:0.5833 312:0.5167 313:0.5167 314:0.45 315:0.45 316:0.4167 317:0.4167 318:0.4 319:0.4 320:0.3667 321:0.3833 322:0.3667 323:0.3833 324:0.3667 325:0.3667 326:0.3667 327:0.3333 328:0.3333 329:0.3 330:0.3 331:0.2833 332:0.2667 333:0.2667 334:0.2667 335:0.2667 336:0.2667 337:0.2333 338:0.2333 339:0.2333 340:0.2333 341:0.2667 342:0.2333 343:0.2167 344:0.2167 345:0.2167 346:0.2 347:0.2 348:0.2 349:0.2 350:0.1833 351:0.1833 352:0.1833 353:0.1833 354:0.1833 355:0.1833 356:0.1833 357:0.1833 358:0.1833 359:0.1833 360:0.1833 +-0.4449203349903729 1:0.6667 2:0.6667 3:0.6667 4:0.6667 5:0.6667 6:0.6667 7:0.6667 8:0.6667 9:0.6667 10:0.6667 11:0.6667 12:0.6667 13:0.7 14:0.7 15:0.7 16:0.7 17:0.7 18:0.7 19:0.7 20:0.7 21:0.7 22:0.9167 23:0.9 24:0.9 25:0.75 26:0.75 27:0.75 28:0.75 29:0.75 30:0.75 31:0.75 32:0.7667 33:0.8 34:0.8 35:1 36:1 37:1 38:1 39:1 40:1 41:1 42:0.95 43:0.95 44:0.95 45:0.95 46:0.95 47:0.95 48:1 49:1 50:1 51:1 52:1 53:1 54:1 55:1 56:1 57:1 58:1 59:1 60:1 61:1 62:1 63:1 64:1 65:1 66:1 67:1 68:1 69:1 70:1 71:1 72:1 73:1 74:1 75:1 76:1 77:1 78:1 79:1 80:1 81:1 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:0.75 99:0.6833 100:0.5833 101:0.5667 102:0.5667 103:0.5667 104:0.4833 105:0.4667 106:0.4167 107:0.3833 108:0.3667 109:0.35 110:0.3333 111:0.3167 112:0.3 113:0.3 114:0.3 115:0.3 116:0.25 117:0.25 118:0.2333 119:0.2333 120:0.2167 121:0.2167 122:0.2167 123:0.2 124:0.2 125:0.2 126:0.1833 127:0.1833 128:0.1833 129:0.1833 130:0.1833 131:0.1667 132:0.1667 133:0.1667 134:0.1667 135:0.1667 136:0.1833 137:0.1667 138:0.15 139:0.15 140:0.15 141:0.15 142:0.10526316 143:0.10526316 144:0.10526316 145:0.10526316 146:0.10526316 147:0.087684211 148:0.087684211 149:0.087684211 150:0.087684211 151:0.087684211 152:0.087684211 153:0.087684211 154:0.087684211 155:0.087684211 156:0.087684211 157:0.071389541 158:0.071389541 159:0.071389541 160:0.071389541 161:0.071389541 162:0.071389541 163:0.071389541 164:0.071389541 165:0.071389541 166:0.071389541 167:0.071389541 168:0.071389541 169:0.071389541 170:0.071389541 171:0.071389541 172:0.071389541 173:0.071389541 174:0.071389541 175:0.071389541 176:0.071389541 177:0.071389541 178:0.071389541 179:0.071389541 180:0.071389541 181:0.071389541 182:0.071389541 183:0.071389541 184:0.071389541 185:0.071389541 186:0.071389541 187:0.071389541 188:0.071389541 189:0.071389541 190:0.071389541 191:0.071389541 192:0.071389541 193:0.071389541 194:0.071389541 195:0.071389541 196:0.071389541 197:0.071389541 198:0.071389541 199:0.071389541 200:0.071389541 201:0.071389541 202:0.071389541 203:0.089282462 204:0.089282462 205:0.089282462 206:0.089282462 207:0.089282462 208:0.089282462 209:0.089282462 210:0.089282462 211:0.089282462 212:0.089282462 213:0.089282462 214:0.089282462 215:0.089282462 216:0.071389541 217:0.089282462 218:0.089282462 219:0.10717538 220:0.10717538 221:0.1667 222:0.1667 223:0.1667 224:0.1667 225:0.1667 226:0.1833 227:0.1667 228:0.1667 229:0.1667 230:0.1667 231:0.1667 232:0.1833 233:0.1833 234:0.1833 235:0.1833 236:0.1833 237:0.2 238:0.2 239:0.2 240:0.2167 241:0.2167 242:0.2167 243:0.2333 244:0.2333 245:0.2833 246:0.2833 247:0.2833 248:0.2833 249:0.2833 250:0.35 251:0.3667 252:0.3833 253:0.4333 254:0.4167 255:0.4333 256:0.4167 257:0.5167 258:0.6 259:0.6 260:0.65 261:0.7167 262:0.8 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:1 287:1 288:1 289:1 290:1 291:1 292:1 293:1 294:1 295:1 296:1 297:1 298:1 299:1 300:1 301:1 302:1 303:1 304:1 305:1 306:1 307:1 308:1 309:1 310:1 311:1 312:0.95 313:0.9333 314:0.9167 315:0.9 316:0.9 317:0.9 318:0.9 319:0.9 320:0.8333 321:0.8167 322:0.8167 323:0.8 324:0.7833 325:0.7833 326:0.7667 327:0.7667 328:0.75 329:0.75 330:0.7333 331:0.7333 332:0.7333 333:0.7167 334:0.7167 335:0.7 336:0.7 337:0.7 338:0.7 339:0.6833 340:0.6833 341:0.7 342:0.6833 343:0.6667 344:0.6667 345:0.6667 346:0.6667 347:0.6667 348:0.6667 349:0.6667 350:0.6667 351:0.6667 352:0.6667 353:0.6667 354:0.6667 355:0.6667 356:0.6667 357:0.6667 358:0.6667 359:0.6667 360:0.6667 +-0.5441108218943412 1:0.65 2:0.65 3:0.65 4:0.65 5:0.65 6:0.65 7:0.65 8:0.8333 9:0.6667 10:0.6667 11:0.6667 12:0.6667 13:0.6667 14:0.6667 15:0.6667 16:0.6667 17:0.6667 18:0.6667 19:0.6833 20:0.6833 21:0.7 22:0.6833 23:0.6833 24:0.7 25:0.7 26:0.7167 27:0.7 28:0.7167 29:1 30:1 31:1 32:1 33:0.8167 34:0.8 35:0.8167 36:0.8167 37:0.8167 38:0.8167 39:0.8167 40:1 41:1 42:1 43:1 44:1 45:1 46:1 47:0.9833 48:0.9833 49:0.9833 50:0.9833 51:0.9833 52:1 53:1 54:1 55:1 56:1 57:1 58:1 59:1 60:1 61:1 62:1 63:1 64:1 65:1 66:1 67:1 68:1 69:1 70:1 71:1 72:1 73:1 74:1 75:1 76:1 77:1 78:1 79:1 80:1 81:1 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:0.8 101:0.75 102:0.65 103:0.6 104:0.55 105:0.5167 106:0.5 107:0.45 108:0.4167 109:0.4 110:0.3833 111:0.3667 112:0.35 113:0.3333 114:0.3167 115:0.3 116:0.3 117:0.2833 118:0.2833 119:0.2667 120:0.25 121:0.25 122:0.25 123:0.2333 124:0.2333 125:0.2333 126:0.2167 127:0.2167 128:0.2167 129:0.2 130:0.2 131:0.2 132:0.2 133:0.1833 134:0.1833 135:0.1833 136:0.1833 137:0.1833 138:0.1833 139:0.1667 140:0.1667 141:0.1667 142:0.12284211 143:0.12284211 144:0.12284211 145:0.12284211 146:0.12284211 147:0.087684211 148:0.087684211 149:0.087684211 150:0.087684211 151:0.087684211 152:0.087684211 153:0.10526316 154:0.10526316 155:0.087684211 156:0.087684211 157:0.071389541 158:0.071389541 159:0.089282462 160:0.089282462 161:0.089282462 162:0.071389541 163:0.071389541 164:0.071389541 165:0.089282462 166:0.089282462 167:0.089282462 168:0.071389541 169:0.071389541 170:0.071389541 171:0.071389541 172:0.071389541 173:0.071389541 174:0.071389541 175:0.071389541 176:0.071389541 177:0.071389541 178:0.089282462 179:0.089282462 180:0.089282462 181:0.089282462 182:0.089282462 183:0.089282462 184:0.089282462 185:0.089282462 186:0.089282462 187:0.089282462 188:0.089282462 189:0.089282462 190:0.089282462 191:0.089282462 192:0.089282462 193:0.089282462 194:0.089282462 195:0.089282462 196:0.089282462 197:0.089282462 198:0.089282462 199:0.089282462 200:0.089282462 201:0.089282462 202:0.089282462 203:0.089282462 204:0.089282462 205:0.089282462 206:0.089282462 207:0.089282462 208:0.089282462 209:0.089282462 210:0.089282462 211:0.089282462 212:0.089282462 213:0.089282462 214:0.10717538 215:0.10717538 216:0.10717538 217:0.10717538 218:0.10717538 219:0.10717538 220:0.10717538 221:0.1667 222:0.1667 223:0.1667 224:0.1667 225:0.15 226:0.1667 227:0.1667 228:0.1667 229:0.1667 230:0.1667 231:0.1667 232:0.1833 233:0.1833 234:0.1833 235:0.1833 236:0.1833 237:0.2 238:0.2 239:0.2 240:0.2167 241:0.2167 242:0.2167 243:0.2333 244:0.2333 245:0.2833 246:0.2667 247:0.2667 248:0.2833 249:0.2833 250:0.3 251:0.3167 252:0.35 253:0.35 254:0.4167 255:0.4167 256:0.4167 257:0.55 258:0.55 259:0.55 260:0.5667 261:0.6333 262:0.6833 263:0.7667 264:0.8833 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:0.7333 285:0.7167 286:0.7167 287:0.7 288:0.7 289:0.7 290:0.6833 291:0.6833 292:0.6833 293:0.6833 294:0.6833 295:0.6833 296:0.6833 297:1 298:1 299:1 300:1 301:1 302:1 303:1 304:1 305:1 306:1 307:1 308:1 309:1 310:1 311:1 312:0.95 313:0.9333 314:0.9333 315:0.9 316:0.8833 317:0.8833 318:0.9 319:0.85 320:0.8333 321:0.8333 322:0.8333 323:0.8333 324:0.8333 325:0.8333 326:0.8333 327:0.7833 328:0.7667 329:0.7667 330:0.7667 331:0.75 332:0.75 333:0.7333 334:0.7333 335:0.7333 336:0.7167 337:0.7167 338:0.7167 339:0.6833 340:0.6833 341:0.6833 342:0.6833 343:0.6667 344:0.6667 345:0.6667 346:0.6667 347:0.6667 348:0.6667 349:0.65 350:0.65 351:0.65 352:0.65 353:0.65 354:0.65 355:0.65 356:0.65 357:0.65 358:0.65 359:0.65 360:0.65 +-0.2431753598127436 1:0.3 2:0.3 3:0.3 4:0.3 5:0.3 6:0.3 7:0.3 8:0.3 9:0.3 10:0.3 11:0.3 12:0.3 13:0.3 14:0.3 15:0.3 16:0.3 17:0.3 18:0.4167 19:0.4167 20:0.3333 21:0.3333 22:0.3333 23:0.3333 24:0.3333 25:0.3333 26:0.3333 27:0.3333 28:0.3333 29:0.3333 30:0.3333 31:0.3333 32:0.3333 33:0.3333 34:0.35 35:0.35 36:0.35 37:0.35 38:0.35 39:0.35 40:0.3667 41:0.3667 42:0.3667 43:0.3833 44:0.3833 45:0.3833 46:0.4 47:0.45 48:0.4667 49:0.45 50:0.4667 51:0.45 52:0.45 53:0.45 54:0.4667 55:0.4667 56:0.4833 57:0.5 58:0.5 59:0.5833 60:0.6 61:0.6167 62:0.75 63:0.6167 64:0.7167 65:0.7167 66:0.7167 67:0.7167 68:0.7167 69:0.7333 70:0.7667 71:0.8667 72:0.8833 73:0.8833 74:0.9333 75:1 76:1 77:1 78:1 79:1 80:1 81:1 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:0.95 97:0.55 98:0.4667 99:0.4167 100:0.2833 101:0.2333 102:0.2333 103:0.2333 104:0.2333 105:0.2333 106:0.15 107:0.15 108:0.1333 109:0.1333 110:0.1333 111:0.1333 112:0.1333 113:0.1333 114:0.1333 115:0.1333 116:0.1 117:0.1 118:0.08333 119:0.08333 120:0.08333 121:0.08333 122:0.08333 123:0.08333 124:0.08333 125:0.08333 126:0.06667 127:0.06667 128:0.06667 129:0.06667 130:0.06667 131:0.06667 132:0.08333 133:0.08333 134:0.08333 135:0.08333 136:0.08333 137:0.08333 138:0.08333 139:0.08333 140:0.08333 141:0.08333 142:0.035084211 143:0.035084211 144:0.035084211 145:0.035084211 146:0.035084211 147:0.035084211 148:0.035084211 149:0.035084211 150:0.035084211 151:0.035084211 152:0.035084211 153:0.035084211 154:0.035084211 155:0.035084211 156:0.035084211 157:0.017850064 158:0.017850064 159:0.017850064 160:0.017850064 161:0.017850064 162:0.017850064 163:0.017850064 164:0.017850064 165:0.017850064 166:0.017850064 167:0.017850064 168:0.017850064 169:0.017850064 176:0.017850064 177:0.017850064 178:0.017850064 179:0.017850064 180:0.017850064 181:0.017850064 182:0.017850064 183:0.017850064 184:0.017850064 185:0.017850064 186:0.017850064 187:0.017850064 188:0.017850064 189:0.017850064 190:0.017850064 191:0.017850064 192:0.017850064 193:0.017850064 194:0.017850064 195:0.017850064 196:0.017850064 197:0.017850064 198:0.017850064 199:0.017850064 200:0.017850064 201:0.017850064 202:0.017850064 203:0.017850064 204:0.017850064 205:0.017850064 206:0.017850064 207:0.017850064 208:0.017850064 209:0.017850064 210:0.017850064 211:0.017850064 212:0.017850064 213:0.017850064 214:0.017850064 215:0.017850064 216:0.017850064 217:0.017850064 218:0.017850064 219:0.017850064 220:0.017850064 221:0.08333 222:0.08333 223:0.08333 224:0.08333 225:0.08333 226:0.08333 227:0.08333 228:0.08333 229:0.08333 230:0.08333 231:0.08333 232:0.08333 233:0.1 234:0.08333 235:0.08333 236:0.08333 237:0.08333 238:0.08333 239:0.08333 240:0.08333 241:0.08333 242:0.08333 243:0.08333 244:0.08333 245:0.1 246:0.1 247:0.1 248:0.1 249:0.1167 250:0.1167 251:0.1167 252:0.1333 253:0.1333 254:0.1333 255:0.15 256:0.15 257:0.1667 258:0.1833 259:0.2 260:0.2167 261:0.2333 262:0.2667 263:0.3 264:0.3333 265:0.5833 266:0.6 267:0.6 268:0.7833 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:1 287:1 288:0.9333 289:0.8833 290:0.85 291:0.8333 292:0.7667 293:0.6833 294:0.6833 295:0.6667 296:0.65 297:0.65 298:0.6167 299:0.6167 300:0.6167 301:0.55 302:0.5333 303:0.5167 304:0.5 305:0.5 306:0.5 307:0.5 308:0.4333 309:0.4333 310:0.4333 311:0.4333 312:0.4167 313:0.4167 314:0.4 315:0.4 316:0.4 317:0.3833 318:0.3833 319:0.3833 320:0.3833 321:0.3833 322:0.3833 323:0.3833 324:0.3833 325:0.3833 326:0.3833 327:0.3833 328:0.3833 329:0.4333 330:0.4333 331:0.4333 332:0.4333 333:0.4333 334:0.3167 335:0.3167 336:0.3167 337:0.3167 338:0.3167 339:0.3167 340:0.3167 341:0.3 342:0.3 343:0.3 344:0.3 345:0.3 346:0.3 347:0.3 348:0.3 349:0.3 350:0.3 351:0.3 352:0.3 353:0.3 354:0.3 355:0.3 356:0.3 357:0.3 358:0.3 359:0.3 360:0.3 +-1.162418084943818 1:0.25 2:0.25 3:0.25 4:0.25 5:0.25 6:0.25 7:0.25 8:0.25 9:0.25 10:0.25 11:0.25 12:0.25 13:0.25 14:0.25 15:0.25 16:0.25 17:0.25 18:0.25 19:0.25 20:0.25 21:0.25 22:0.25 23:0.25 24:0.25 25:0.25 26:0.25 27:0.25 28:0.25 29:0.25 30:0.25 31:0.25 32:0.2667 33:0.2833 34:0.2833 35:0.2833 36:0.3 37:0.3 38:0.3 39:0.3 40:0.3 41:0.3 42:0.3 43:0.3167 44:0.3167 45:0.3167 46:0.3167 47:0.3333 48:0.3333 49:0.3333 50:0.35 51:0.35 52:0.35 53:0.35 54:0.35 55:0.3833 56:0.3833 57:0.3833 58:0.3833 59:0.4 60:0.4 61:0.4167 62:0.4333 63:0.45 64:0.4667 65:0.4667 66:0.5167 67:0.5167 68:0.55 69:0.55 70:0.6 71:0.6 72:0.6333 73:0.65 74:0.7667 75:0.7667 76:0.7667 77:0.9 78:0.9167 79:0.9167 80:1 81:1 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:1 107:1 108:0.85 109:0.8333 110:0.7833 111:0.7 112:0.6667 113:0.65 114:0.6167 115:0.6 116:0.5667 117:0.55 118:0.5333 119:0.5167 120:0.5 121:0.4833 122:0.4333 123:0.4333 124:0.4167 125:0.4333 126:0.4167 127:0.4167 128:0.4 129:0.4 130:0.3833 131:0.3833 132:0.3667 133:0.3667 134:0.3667 135:0.3667 136:0.3667 137:0.35 138:0.3667 139:0.3667 140:0.3667 141:0.3667 142:0.33336842 143:0.33336842 144:0.33336842 145:0.31578947 146:0.33336842 147:0.33336842 148:0.35084211 149:0.35084211 150:0.35084211 151:0.35084211 152:0.36842105 153:0.36842105 154:0.43863158 155:0.43863158 156:0.63157895 157:0.6964632 158:1 159:1 160:1 161:1 162:1 163:1 164:0.83928514 165:0.82139222 166:0.82139222 167:0.71424898 168:0.71424898 169:0.71424898 170:0.71424898 171:0.71424898 172:0.71424898 173:0.80360644 174:0.87496384 175:0.89285676 176:0.67857028 177:0.24999732 178:0.24999732 179:0.24999732 180:0.21431862 181:0.21431862 182:0.21431862 183:0.1964257 184:0.1964257 185:0.1964257 186:0.1964257 187:0.1964257 188:0.1964257 189:0.1964257 190:0.1964257 191:0.1964257 192:0.1964257 193:0.1964257 194:0.1964257 195:0.1964257 196:0.1964257 197:0.1964257 198:0.1964257 199:0.1964257 200:0.1964257 201:0.1964257 202:0.1964257 203:0.1964257 204:0.1964257 205:0.1964257 206:0.1964257 207:0.21431862 208:0.21431862 209:0.1964257 210:0.21431862 211:0.21431862 212:0.1964257 213:0.1964257 214:0.1964257 215:0.21431862 216:0.21431862 217:0.21431862 218:0.21431862 219:0.21431862 220:0.2321044 221:0.2833 222:0.2833 223:0.2833 224:0.2833 225:0.3 226:0.3 227:0.3 228:0.3167 229:0.3167 230:0.3167 231:0.3333 232:0.3333 233:0.3333 234:0.35 235:0.35 236:0.3667 237:0.3667 238:0.3833 239:0.4 240:0.4 241:0.4167 242:0.4167 243:0.4167 244:0.4167 245:0.4667 246:0.4833 247:0.4667 248:0.4833 249:0.5167 250:0.5333 251:0.55 252:0.5833 253:0.6167 254:0.65 255:0.7 256:0.7333 257:0.7833 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:1 287:1 288:0.8167 289:0.8167 290:0.7333 291:0.7 292:0.6667 293:0.6667 294:0.6667 295:0.6333 296:0.6167 297:0.5833 298:0.5667 299:0.5167 300:0.5 301:0.4833 302:0.4667 303:0.45 304:0.4167 305:0.4 306:0.4 307:0.4 308:0.4 309:0.4 310:0.3833 311:0.3833 312:0.35 313:0.3333 314:0.3333 315:0.3333 316:0.3167 317:0.3167 318:0.3167 319:0.3167 320:0.3 321:0.3 322:0.3 323:0.3 324:0.2833 325:0.2833 326:0.2833 327:0.2833 328:0.2833 329:0.2833 330:0.2667 331:0.2667 332:0.2667 333:0.2667 334:0.2667 335:0.2667 336:0.2667 337:0.2667 338:0.25 339:0.25 340:0.25 341:0.25 342:0.25 343:0.25 344:0.25 345:0.25 346:0.25 347:0.25 348:0.25 349:0.25 350:0.25 351:0.25 352:0.25 353:0.25 354:0.25 355:0.25 356:0.25 357:0.25 358:0.25 359:0.25 360:0.25 +-0.17667374294657 1:0.45 2:0.45 3:0.45 4:0.45 5:0.45 6:0.45 7:0.45 8:0.45 9:0.45 10:0.45 11:0.45 12:0.45 13:0.45 14:0.45 15:0.45 16:0.45 17:0.45 18:0.4667 19:0.45 20:0.4667 21:0.45 22:0.4667 23:0.45 24:0.45 25:0.4667 26:0.4667 27:0.4667 28:0.4667 29:0.4667 30:0.4833 31:0.4833 32:0.4833 33:0.4833 34:0.5 35:0.5 36:0.5 37:0.5167 38:0.5167 39:0.5333 40:0.5333 41:0.5333 42:0.55 43:0.55 44:0.55 45:0.55 46:0.55 47:0.55 48:0.5833 49:0.5833 50:0.6 51:0.6167 52:0.6333 53:0.6333 54:0.65 55:0.6667 56:0.6833 57:0.7 58:0.7167 59:0.7333 60:0.7333 61:0.75 62:0.7667 63:0.7667 64:0.7833 65:0.85 66:0.5667 67:0.5667 68:0.5667 69:0.5667 70:0.5667 71:0.55 72:0.55 73:0.55 74:0.55 75:0.55 76:0.55 77:0.55 78:0.55 79:0.55 80:0.5667 81:1 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:1 107:1 108:1 109:1 110:1 111:1 112:1 113:1 114:1 115:1 116:1 117:1 118:0.9667 119:0.9333 120:0.9167 121:0.8833 122:0.8667 123:0.8333 124:0.8167 125:0.7333 126:0.7167 127:0.7 128:0.7 129:0.7 130:0.65 131:0.6333 132:0.6333 133:0.6167 134:0.6 135:0.6 136:0.5833 137:0.5667 138:0.5667 139:0.55 140:0.55 141:0.5333 142:0.50873684 143:0.50873684 144:0.49126316 145:0.49126316 146:0.47368421 147:0.47368421 148:0.47368421 149:0.45610526 150:0.45610526 151:0.47368421 152:0.45610526 153:0.47368421 154:0.45610526 155:0.45610526 156:0.45610526 157:0.44639088 158:0.44639088 159:0.44639088 160:0.41071218 161:0.41071218 162:0.41071218 163:0.41071218 164:0.41071218 165:0.41071218 166:0.39281926 167:0.39281926 168:0.39281926 169:0.39281926 170:0.39281926 171:0.39281926 172:0.39281926 173:0.39281926 174:0.39281926 175:0.39281926 176:0.39281926 177:0.39281926 178:0.39281926 179:0.39281926 180:0.39281926 181:0.39281926 182:0.39281926 183:0.39281926 184:0.39281926 185:0.39281926 186:0.39281926 187:0.39281926 188:0.39281926 189:0.39281926 190:0.39281926 191:0.39281926 192:0.39281926 193:0.39281926 194:0.39281926 195:0.39281926 196:0.39281926 197:0.39281926 198:0.39281926 199:0.39281926 200:0.39281926 201:0.39281926 202:0.39281926 203:0.39281926 204:0.39281926 205:0.41071218 206:0.41071218 207:0.41071218 208:0.41071218 209:0.41071218 210:0.41071218 211:0.41071218 212:0.41071218 213:0.41071218 214:0.41071218 215:0.44639088 216:0.44639088 217:0.4642838 218:0.4642838 219:0.4642838 220:0.4642838 221:0.5167 222:0.5 223:0.5167 224:0.5167 225:0.5333 226:0.5333 227:0.55 228:0.4667 229:0.45 230:0.45 231:0.45 232:0.45 233:0.45 234:0.45 235:0.45 236:0.45 237:0.45 238:0.45 239:0.45 240:0.4667 241:0.4833 242:0.5 243:1 244:1 245:1 246:1 247:1 248:1 249:1 250:1 251:1 252:1 253:1 254:1 255:1 256:1 257:1 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:1 287:1 288:1 289:1 290:1 291:1 292:1 293:1 294:1 295:1 296:1 297:1 298:1 299:0.9 300:0.8833 301:0.75 302:0.7333 303:0.7333 304:0.7333 305:0.75 306:0.75 307:0.6667 308:0.65 309:0.6667 310:0.6667 311:0.65 312:0.65 313:0.6333 314:0.6333 315:0.6167 316:0.6 317:0.6 318:0.5833 319:0.5833 320:0.5667 321:0.5667 322:0.55 323:0.55 324:0.5333 325:0.5333 326:0.5333 327:0.5167 328:0.5167 329:0.5167 330:0.5 331:0.5 332:0.5 333:0.5 334:0.4833 335:0.4833 336:0.4833 337:0.4833 338:0.4833 339:0.4833 340:0.4833 341:0.4667 342:0.4667 343:0.4667 344:0.4667 345:0.4667 346:0.4667 347:0.4667 348:0.45 349:0.45 350:0.45 351:0.45 352:0.45 353:0.45 354:0.45 355:0.45 356:0.45 357:0.45 358:0.45 359:0.45 360:0.45 +-0.07818660114870858 1:0.4333 2:0.4333 3:0.4333 4:0.4333 5:0.4333 6:0.4333 7:0.4333 8:0.4333 9:0.4333 10:0.4333 11:0.4333 12:0.4333 13:0.4333 14:0.4333 15:0.4333 16:0.4333 17:0.4333 18:0.45 19:0.45 20:0.45 21:0.45 22:0.45 23:0.45 24:0.45 25:0.45 26:0.45 27:0.45 28:0.45 29:0.45 30:0.4833 31:0.4833 32:0.4833 33:0.4833 34:0.4833 35:0.5 36:0.4833 37:0.5 38:0.5 39:0.5 40:0.5167 41:0.5167 42:0.5333 43:0.5333 44:0.55 45:0.55 46:0.5667 47:0.5833 48:0.5833 49:0.5833 50:0.6 51:0.6333 52:0.65 53:0.6667 54:0.65 55:0.6667 56:0.6667 57:0.6667 58:0.6833 59:0.6833 60:0.7 61:0.7167 62:0.7333 63:0.8 64:0.8 65:0.8167 66:0.8333 67:0.5833 68:0.5833 69:0.5833 70:0.5833 71:0.5667 72:0.5667 73:0.5667 74:0.5667 75:0.5667 76:0.5667 77:0.5667 78:0.5667 79:0.5667 80:0.5667 81:1 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:1 107:1 108:1 109:1 110:1 111:1 112:1 113:1 114:1 115:0.9667 116:0.9667 117:0.9333 118:0.9167 119:0.9167 120:0.9167 121:0.9167 122:0.8667 123:0.8 124:0.7833 125:0.7667 126:0.75 127:0.75 128:0.7333 129:0.7167 130:0.7 131:0.6333 132:0.6333 133:0.6167 134:0.6 135:0.6 136:0.5833 137:0.5667 138:0.5667 139:0.55 140:0.55 141:0.5333 142:0.50873684 143:0.50873684 144:0.49126316 145:0.49126316 146:0.47368421 147:0.47368421 148:0.47368421 149:0.45610526 150:0.45610526 151:0.45610526 152:0.45610526 153:0.43863158 154:0.43863158 155:0.43863158 156:0.43863158 157:0.4286051 158:0.41071218 159:0.41071218 160:0.41071218 161:0.41071218 162:0.41071218 163:0.41071218 164:0.41071218 165:0.39281926 166:0.39281926 167:0.39281926 168:0.39281926 169:0.39281926 170:0.39281926 171:0.39281926 172:0.39281926 173:0.39281926 174:0.39281926 175:0.39281926 176:0.39281926 177:0.39281926 178:0.39281926 179:0.39281926 180:0.39281926 181:0.39281926 182:0.39281926 183:0.39281926 184:0.39281926 185:0.39281926 186:0.39281926 187:0.39281926 188:0.39281926 189:0.39281926 190:0.39281926 191:0.39281926 192:0.39281926 193:0.39281926 194:0.39281926 195:0.39281926 196:0.39281926 197:0.39281926 198:0.41071218 199:0.41071218 200:0.41071218 201:0.41071218 202:0.41071218 203:0.41071218 204:0.41071218 205:0.41071218 206:0.41071218 207:0.41071218 208:0.41071218 209:0.41071218 210:0.4286051 211:0.4286051 212:0.4286051 213:0.4286051 214:0.44639088 215:0.44639088 216:0.44639088 217:0.4642838 218:0.4642838 219:0.4642838 220:0.48217672 221:0.5167 222:0.5167 223:0.5167 224:0.5167 225:0.5333 226:0.5667 227:0.5667 228:0.5833 229:0.5833 230:0.5833 231:0.5833 232:0.6 233:0.6167 234:0.6333 235:0.6333 236:0.65 237:0.6667 238:0.6833 239:0.7 240:0.6 241:0.6 242:0.6 243:0.6 244:0.6 245:0.6 246:0.6 247:0.6 248:0.6167 249:0.6 250:0.6333 251:0.65 252:1 253:1 254:1 255:1 256:1 257:1 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:1 287:1 288:1 289:1 290:1 291:1 292:1 293:1 294:1 295:1 296:1 297:0.85 298:0.8333 299:0.8333 300:0.8333 301:0.8333 302:0.7667 303:0.75 304:0.75 305:0.75 306:0.75 307:0.7333 308:0.7167 309:0.7 310:0.6833 311:0.6667 312:0.65 313:0.6333 314:0.6333 315:0.6167 316:0.6167 317:0.6 318:0.5833 319:0.5833 320:0.5667 321:0.5667 322:0.55 323:0.55 324:0.5333 325:0.5333 326:0.5333 327:0.5167 328:0.5167 329:0.5167 330:0.5 331:0.5 332:0.5 333:0.5 334:0.4833 335:0.4833 336:0.4833 337:0.4833 338:0.4833 339:0.4833 340:0.4833 341:0.4667 342:0.4667 343:0.4667 344:0.4667 345:0.4667 346:0.45 347:0.45 348:0.45 349:0.45 350:0.45 351:0.45 352:0.45 353:0.45 354:0.45 355:0.45 356:0.45 357:0.45 358:0.45 359:0.45 360:0.4333 +-1.40280426951943 142:0.84210526 143:0.84210526 144:0.84210526 145:0.84210526 146:0.78947368 147:0.77189474 148:0.73684211 149:0.73684211 150:0.73684211 151:0.73684211 152:0.73684211 153:0.73684211 154:0.73684211 155:0.73684211 156:0.73684211 157:0.71424898 158:0.71424898 159:0.71424898 160:0.71424898 161:0.6964632 162:0.6964632 163:0.6964632 164:0.6964632 165:0.6964632 166:0.6964632 167:0.6964632 168:0.6964632 169:0.67857028 170:0.66067736 171:0.66067736 172:0.66067736 173:0.66067736 174:0.66067736 175:0.66067736 176:0.66067736 177:0.66067736 178:0.66067736 179:0.66067736 180:0.66067736 181:0.66067736 182:0.66067736 183:0.66067736 184:0.67857028 185:0.67857028 186:0.6964632 187:0.6964632 188:0.6964632 189:0.6964632 190:0.6964632 191:0.6964632 192:0.6964632 193:0.6964632 194:0.6964632 195:0.6964632 196:0.6964632 197:0.6964632 198:0.6964632 199:0.71424898 200:0.71424898 201:0.71424898 202:0.71424898 203:0.7321419 204:0.7321419 205:0.7321419 206:0.7321419 207:0.80360644 208:0.7321419 209:0.7321419 210:0.7321419 211:0.7321419 212:0.7321419 213:0.7321419 214:0.7321419 215:0.75003482 216:0.75003482 217:0.83928514 218:0.83928514 219:0.85717806 220:0.89285676 +-0.8882500798720596 1:0.35 2:0.35 3:0.35 4:0.35 5:0.35 6:0.35 7:0.35 8:0.35 9:0.35 10:0.35 11:0.35 12:0.35 13:0.35 14:0.35 15:0.35 16:0.35 17:0.35 18:0.35 19:0.35 20:0.3667 21:0.3667 22:0.3667 23:0.3667 24:0.3667 25:0.3667 26:0.3667 27:0.3667 28:0.3833 29:0.3833 30:0.3833 31:0.3833 32:0.3833 33:0.4 34:0.4 35:0.4 36:0.4 37:0.4167 38:0.4167 39:0.4167 40:0.4333 41:0.4333 42:0.4333 43:0.4667 44:0.4667 45:0.4833 46:0.4833 47:0.4833 48:0.4833 49:0.4833 50:0.5 51:0.5167 52:0.5167 53:0.5333 54:0.55 55:0.55 56:0.5667 57:0.5833 58:0.5833 59:0.5833 60:0.6667 61:0.65 62:0.6667 63:0.7167 64:0.7167 65:0.7 66:0.7667 67:1 68:1 69:1 70:1 71:1 72:0.75 73:0.75 74:0.7333 75:0.7333 76:0.5667 77:0.5667 78:0.5667 79:0.5667 80:0.5667 81:0.5667 82:0.5667 83:0.5667 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:1 107:1 108:0.7167 109:0.6667 110:0.6333 111:0.6 112:0.5833 113:0.55 114:0.5333 115:0.5167 116:0.5 117:0.4667 118:0.4667 119:0.45 120:0.4333 121:0.4167 122:0.4167 123:0.4167 124:0.4167 125:0.4167 126:0.4167 127:0.4167 128:0.4167 129:0.4167 130:0.4167 131:0.4167 132:0.4167 133:0.4167 134:0.4333 135:0.4333 136:0.4333 137:0.4333 138:0.4333 139:0.4333 140:0.4333 141:0.4333 142:0.40347368 143:0.386 144:0.386 145:0.386 146:0.36842105 147:0.386 148:0.36842105 149:0.386 150:0.386 151:0.36842105 152:0.386 153:0.36842105 154:0.386 155:0.36842105 156:0.64915789 157:0.64289158 158:0.64289158 159:0.64289158 160:0.64289158 161:0.64289158 162:0.71424898 163:0.71424898 164:0.71424898 165:0.71424898 166:0.71424898 167:0.67857028 168:0.67857028 169:0.67857028 170:0.66067736 171:0.66067736 172:0.66067736 173:0.66067736 174:0.66067736 175:0.58931996 176:0.58931996 177:0.58931996 178:0.35714056 179:0.35714056 180:0.35714056 181:0.35714056 182:0.35714056 183:0.35714056 184:0.35714056 185:0.30356894 186:0.30356894 187:0.30356894 188:0.28567602 189:0.28567602 190:0.30356894 191:0.28567602 192:0.30356894 193:0.30356894 194:0.30356894 195:0.30356894 196:0.30356894 197:0.30356894 198:0.30356894 199:0.28567602 200:0.28567602 201:0.30356894 202:0.30356894 203:0.30356894 204:0.30356894 205:0.30356894 206:0.30356894 207:0.30356894 208:0.30356894 209:0.33924764 210:0.33924764 211:0.33924764 212:0.33924764 213:0.33924764 214:0.33924764 215:0.35714056 216:0.4999625 217:0.4999625 218:0.4999625 219:0.4999625 220:0.4999625 221:0.5167 222:0.4667 223:0.4833 224:0.4667 225:0.4833 226:0.4667 227:0.4833 228:0.4667 229:0.4833 230:0.4667 231:0.4833 232:0.5 233:0.5 234:0.5167 235:0.5333 236:0.5333 237:0.55 238:0.5667 239:0.5833 240:0.7 241:0.7 242:0.7 243:0.7 244:0.7167 245:0.7167 246:0.7333 247:0.75 248:0.7833 249:1 250:1 251:1 252:0.6667 253:0.65 254:0.65 255:0.65 256:0.65 257:0.65 258:0.65 259:0.65 260:0.65 261:0.65 262:0.65 263:0.65 264:0.65 265:0.65 266:0.65 267:0.65 268:0.65 269:0.65 270:0.65 271:0.65 272:0.65 273:0.65 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:1 287:1 288:1 289:1 290:1 291:0.95 292:0.9 293:0.8667 294:0.8333 295:0.8 296:0.7667 297:0.7333 298:0.7167 299:0.7 300:0.6667 301:0.65 302:0.6333 303:0.6167 304:0.6 305:0.5833 306:0.5667 307:0.5833 308:0.5667 309:0.5667 310:0.5667 311:0.5833 312:0.5833 313:0.5667 314:0.5833 315:0.5667 316:0.5833 317:0.5833 318:0.5833 319:0.5833 320:0.5833 321:0.5833 322:0.6 323:0.6 324:0.6167 325:0.6167 326:0.95 327:0.95 328:0.9 329:0.45 330:0.4333 331:0.4167 332:0.4 333:0.4 334:0.3833 335:0.3667 336:0.3667 337:0.3667 338:0.3667 339:0.3667 340:0.3667 341:0.3667 342:0.3667 343:0.3667 344:0.3667 345:0.3667 346:0.3667 347:0.35 348:0.35 349:0.35 350:0.35 351:0.35 352:0.35 353:0.35 354:0.35 355:0.35 356:0.35 357:0.35 358:0.35 359:0.35 360:0.35 +-0.1454729085346107 1:0.2 2:0.2 3:0.2 4:0.2 5:0.2 6:0.2 7:0.2 8:0.25 9:0.1833 10:0.1833 11:0.2 12:0.2 13:0.2 14:0.2 15:0.2 16:0.2 17:0.2 18:0.2 19:0.2 20:0.2 21:0.2 22:0.2 23:0.1833 24:0.2 25:0.2 26:0.2 27:0.2 28:0.1833 29:0.1833 30:0.2 31:0.2 32:0.2 33:0.2 34:0.2 35:0.2 36:0.2 37:0.2 38:0.2 39:0.2167 40:0.2167 41:0.2167 42:0.2167 43:0.2167 44:0.2167 45:0.2667 46:0.2667 47:0.2667 48:0.2667 49:0.2667 50:0.2667 51:0.2667 52:0.2667 53:0.2667 54:0.2667 55:0.3 56:0.3 57:0.3 58:0.3 59:0.3 60:0.3 61:0.3167 62:0.35 63:0.3667 64:0.35 65:0.3833 66:0.3833 67:0.3833 68:0.4167 69:0.4167 70:0.5333 71:0.5333 72:0.5833 73:0.5667 74:0.5833 75:0.5833 76:0.6667 77:0.6667 78:0.8333 79:0.8167 80:0.8167 81:0.8 82:0.8 83:0.8 84:0.8 85:0.8 86:0.8 87:0.8 88:0.8 89:0.8 90:0.8 91:0.8167 92:1 93:1 94:0.5667 95:0.5667 96:0.55 97:0.55 98:0.5333 99:0.5333 100:0.55 101:0.55 102:0.55 103:0.55 104:0.55 105:0.5333 106:0.6167 107:1 108:1 109:1 110:1 111:1 112:1 113:1 114:1 115:1 116:1 117:1 118:1 119:1 120:1 121:1 122:1 123:1 124:0.9333 125:0.9333 126:0.9333 127:0.9333 128:0.9333 129:0.9333 130:0.9333 131:0.9333 132:0.75 133:0.7333 134:0.7333 135:0.7167 136:0.7167 137:0.7167 138:0.7167 139:0.6667 140:0.65 141:0.65 142:0.614 143:0.614 144:0.59652632 145:0.59652632 146:0.59652632 147:0.59652632 148:0.59652632 149:0.59652632 150:0.59652632 151:0.59652632 152:0.57894737 153:0.56136842 154:0.56136842 155:0.56136842 156:0.54389474 157:0.53574834 158:0.51785542 159:0.51785542 160:0.51785542 161:0.51785542 162:0.51785542 163:0.51785542 164:0.51785542 165:0.51785542 166:0.51785542 167:0.51785542 168:0.51785542 169:0.51785542 170:0.48217672 171:0.48217672 172:0.48217672 173:0.48217672 174:0.48217672 175:0.48217672 176:0.48217672 177:0.48217672 178:0.48217672 179:0.48217672 180:0.48217672 181:0.48217672 182:0.48217672 183:0.48217672 184:0.48217672 185:0.48217672 186:0.48217672 187:0.48217672 188:0.48217672 189:0.48217672 190:0.48217672 191:0.48217672 192:0.48217672 193:0.48217672 194:0.48217672 195:0.48217672 196:0.4999625 197:0.4999625 198:0.4999625 199:0.4999625 200:0.51785542 201:0.51785542 202:0.51785542 203:0.51785542 204:0.51785542 205:0.51785542 206:0.51785542 207:0.53574834 208:0.53574834 209:0.53574834 210:0.53574834 211:0.55353412 212:0.55353412 213:0.55353412 214:0.57142704 215:0.57142704 216:0.58931996 217:0.58931996 218:0.58931996 219:0.60710574 220:0.60710574 221:0.6667 222:0.6833 223:0.6833 224:0.7 225:0.7167 226:0.7167 227:0.75 228:0.75 229:0.75 230:0.75 231:0.7667 232:0.7833 233:0.8 234:0.8167 235:0.8333 236:0.8667 237:0.8833 238:0.9 239:0.9333 240:0.95 241:0.9833 242:1 243:1 244:1 245:1 246:1 247:1 248:1 249:1 250:1 251:1 252:1 253:1 254:1 255:1 256:1 257:1 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:1 287:1 288:1 289:1 290:1 291:0.4167 292:0.4 293:0.4167 294:0.4 295:0.4167 296:0.4 297:0.4167 298:0.4167 299:0.4 300:0.4167 301:0.4 302:0.4333 303:0.4167 304:0.4167 305:0.4 306:0.4 307:0.3833 308:0.3833 309:0.3667 310:0.3667 311:0.35 312:0.3667 313:0.3667 314:0.3667 315:0.3 316:0.3 317:0.3 318:0.2833 319:0.2833 320:0.3 321:0.3 322:0.2833 323:0.3 324:0.3 325:0.2833 326:0.3 327:0.3 328:0.2833 329:0.3 330:0.2167 331:0.2167 332:0.2167 333:0.1833 334:0.1833 335:0.2 336:0.2 337:0.2 338:0.2 339:0.1833 340:0.2 341:0.2 342:0.2 343:0.2 344:0.2 345:0.2 346:0.2 347:0.2 348:0.2 349:0.2 350:0.2 351:0.2 352:0.1833 353:0.1833 354:0.2 355:0.2 356:0.2 357:0.2 358:0.2 359:0.2 360:0.2 +-0.07017368170936793 1:0.4167 2:0.4167 3:0.4167 4:0.4167 5:0.4167 6:0.4167 7:0.4 8:0.4 9:0.4167 10:0.4 11:0.4167 12:0.4 13:0.4167 14:0.4 15:0.4167 16:0.4 17:0.4 18:0.4333 19:0.4333 20:0.4333 21:0.4333 22:0.4333 23:0.4333 24:0.4333 25:0.4333 26:0.4333 27:0.4333 28:0.4333 29:0.4333 30:0.4333 31:0.4333 32:0.4333 33:0.4333 34:0.4333 35:0.4333 36:0.45 37:0.5 38:0.5 39:0.5 40:0.5 41:0.5 42:0.5 43:0.2833 44:0.2833 45:0.2833 46:0.2833 47:0.2667 48:0.2667 49:0.2667 50:0.2667 51:0.2667 52:0.2667 53:0.2667 54:0.2667 55:0.2667 56:0.2667 57:0.2667 58:0.2667 59:0.2667 60:0.2667 61:0.2667 62:0.2667 63:0.2667 64:0.2833 65:0.2833 66:0.3 67:0.7333 68:0.7333 69:0.7333 70:0.7333 71:0.4333 72:0.4333 73:0.4333 74:0.4333 75:0.4333 76:0.4333 77:0.4333 78:0.4333 79:0.4333 80:0.4333 81:0.4333 82:0.4333 83:0.4333 84:0.4833 85:0.65 86:0.65 87:0.65 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:1 107:1 108:1 109:1 110:1 111:0.9 112:0.8833 113:0.8667 114:0.8667 115:0.75 116:0.7333 117:0.7167 118:0.7167 119:0.7167 120:0.7 121:0.7167 122:0.7 123:0.7 124:0.7 125:0.5167 126:0.5167 127:0.5 128:0.4833 129:0.5 130:0.4833 131:0.45 132:0.45 133:0.4333 134:0.4333 135:0.4333 136:0.4167 137:0.4167 138:0.4 139:0.4 140:0.4 141:0.3833 142:0.35084211 143:0.35084211 144:0.35084211 145:0.35084211 146:0.35084211 147:0.35084211 148:0.35084211 149:0.35084211 150:0.35084211 151:0.35084211 152:0.33336842 153:0.33336842 154:0.31578947 155:0.31578947 156:0.31578947 157:0.30356894 158:0.28567602 159:0.28567602 160:0.28567602 161:0.28567602 162:0.26789024 163:0.26789024 164:0.26789024 165:0.26789024 166:0.26789024 167:0.26789024 168:0.26789024 169:0.26789024 170:0.26789024 171:0.26789024 172:0.26789024 173:0.26789024 174:0.26789024 175:0.26789024 176:0.26789024 177:0.26789024 178:0.26789024 179:0.26789024 180:0.26789024 181:0.26789024 182:0.26789024 183:0.26789024 184:0.26789024 185:0.26789024 186:0.26789024 187:0.26789024 188:0.26789024 189:0.26789024 190:0.26789024 191:0.26789024 192:0.26789024 193:0.26789024 194:0.26789024 195:0.26789024 196:0.26789024 197:0.26789024 198:0.26789024 199:0.26789024 200:0.26789024 201:0.28567602 202:0.30356894 203:0.30356894 204:0.30356894 205:0.30356894 206:0.30356894 207:0.30356894 208:0.30356894 209:0.32146186 210:0.30356894 211:0.30356894 212:0.30356894 213:0.30356894 214:0.30356894 215:0.32146186 216:0.32146186 217:0.32146186 218:0.32146186 219:0.33924764 220:0.33924764 221:0.3833 222:0.4 223:0.4 224:0.4 225:0.4167 226:0.4167 227:0.4333 228:0.4333 229:0.4333 230:0.45 231:0.45 232:0.4667 233:0.4833 234:0.4833 235:0.5 236:0.5333 237:0.5833 238:0.6 239:0.6167 240:0.6167 241:0.6167 242:0.6167 243:0.6167 244:0.65 245:0.6667 246:0.6833 247:0.7167 248:0.75 249:0.7833 250:0.8167 251:0.85 252:0.9 253:0.9333 254:1 255:1 256:1 257:1 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:1 287:1 288:1 289:1 290:1 291:1 292:1 293:1 294:1 295:1 296:1 297:1 298:1 299:1 300:1 301:1 302:1 303:1 304:0.6333 305:0.6167 306:0.6 307:0.6 308:0.6 309:0.5833 310:0.55 311:0.5333 312:0.5333 313:0.5167 314:0.5167 315:0.5167 316:0.4833 317:0.4833 318:0.4667 319:0.4667 320:0.4667 321:0.4667 322:0.4667 323:0.4667 324:0.45 325:0.45 326:0.45 327:0.45 328:0.4667 329:0.45 330:0.4667 331:0.45 332:0.45 333:0.45 334:0.4667 335:0.45 336:0.45 337:0.45 338:0.4333 339:0.4333 340:0.4333 341:0.4333 342:0.4333 343:0.4333 344:0.4333 345:0.4333 346:0.4333 347:0.4333 348:0.4333 349:0.4333 350:0.4333 351:0.4333 352:0.4333 353:0.4333 354:0.4333 355:0.4333 356:0.4167 357:0.4167 358:0.4167 359:0.4167 360:0.4167 +-2 1:0.1833 2:0.1833 3:0.1833 4:0.1833 5:0.1833 6:0.1833 7:0.1833 8:0.1833 9:0.1833 10:0.1833 11:0.1833 12:0.1833 13:0.1833 14:0.1833 15:0.1833 16:0.1833 17:0.1833 18:0.1833 19:0.1833 20:0.1833 21:0.1833 22:0.1833 23:0.1833 24:0.1833 25:0.1833 26:0.1833 27:0.1833 28:0.1833 29:0.1833 30:0.2 31:0.2 32:0.2 33:0.2 34:0.2 35:0.2 36:0.2 37:0.2 38:0.2 39:0.2333 40:0.2333 41:0.2333 42:0.2333 43:0.25 44:0.25 45:0.25 46:0.25 47:0.25 48:0.2667 49:0.2667 50:0.2667 51:0.2833 52:0.2833 53:0.2833 54:0.3167 55:0.3333 56:0.3333 57:0.35 58:0.35 59:0.35 60:0.35 61:0.35 62:0.3667 63:0.3667 64:0.3833 65:0.4 66:0.4167 67:0.4333 68:0.45 69:0.65 70:0.6667 71:0.7 72:0.7333 73:0.8833 74:0.8833 75:0.8833 76:1 77:1 78:1 79:1 80:1 81:1 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:0.8667 98:0.75 99:0.7167 100:0.6833 101:0.6167 102:0.5667 103:0.5167 104:0.4833 105:0.45 106:0.4167 107:0.3833 108:0.3667 109:0.35 110:0.3333 111:0.3167 112:0.3 113:0.2833 114:0.2833 115:0.2667 116:0.25 117:0.25 118:0.2333 119:0.2333 120:0.2167 121:0.2167 122:0.2167 123:0.2 124:0.2 125:0.2 126:0.1833 127:0.1833 128:0.1833 129:0.1833 130:0.1833 131:0.1833 132:0.1833 133:0.1833 134:0.1833 135:0.1833 136:0.1833 137:0.1833 138:0.1833 139:0.1833 140:0.1833 141:0.1833 142:0.14031579 143:0.14031579 144:0.14031579 145:0.14031579 146:0.14031579 147:0.14031579 148:0.14031579 149:0.14031579 150:0.14031579 151:0.14031579 152:0.14031579 153:0.14031579 154:0.14031579 155:0.14031579 156:0.14031579 157:0.12496116 158:0.12496116 159:0.51785542 160:0.48217672 161:0.48217672 162:0.48217672 163:0.48217672 164:0.48217672 165:0.48217672 166:0.48217672 167:0.48217672 168:0.48217672 169:0.48217672 170:0.48217672 171:0.4642838 172:0.4642838 173:0.4642838 174:0.4642838 175:0.4642838 176:0.4642838 177:0.4642838 178:0.4642838 179:0.4642838 180:0.4642838 181:0.4642838 182:0.4642838 183:0.4642838 184:0.089282462 185:0.089282462 186:0.089282462 187:0.089282462 188:0.089282462 189:0.089282462 190:0.089282462 191:0.071389541 192:0.089282462 193:0.089282462 194:0.089282462 195:0.089282462 196:0.089282462 197:0.089282462 198:0.089282462 199:0.089282462 200:0.089282462 201:0.089282462 202:0.089282462 203:0.089282462 204:0.089282462 205:0.089282462 206:0.089282462 207:0.089282462 208:0.089282462 209:0.089282462 210:0.089282462 211:0.089282462 212:0.089282462 213:0.089282462 214:0.089282462 215:0.089282462 216:0.071389541 217:0.089282462 218:0.089282462 219:0.089282462 220:0.089282462 221:0.15 222:0.15 223:0.15 224:0.15 225:0.15 226:0.1667 227:0.1667 228:0.1667 229:0.1667 230:0.1667 231:0.1667 232:0.1833 233:0.1833 234:0.1833 235:0.1833 236:0.1833 237:0.2 238:0.2 239:0.2 240:0.2167 241:0.2167 242:0.2167 243:0.2333 244:0.2333 245:0.25 246:0.25 247:0.2667 248:0.2833 249:0.2833 250:0.3 251:0.3167 252:0.3333 253:0.35 254:0.3667 255:0.3833 256:0.4167 257:0.45 258:0.4833 259:0.4833 260:0.4833 261:0.5333 262:0.5833 263:0.65 264:0.75 265:0.8667 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:0.85 285:0.7833 286:0.6 287:0.5667 288:0.5333 289:0.5167 290:0.4833 291:0.4667 292:0.4333 293:0.4167 294:0.4 295:0.3833 296:0.3667 297:0.3667 298:0.35 299:0.3333 300:0.3333 301:0.3167 302:0.3 303:0.3 304:0.3 305:0.2833 306:0.2833 307:0.2667 308:0.2667 309:0.2667 310:0.25 311:0.25 312:0.25 313:0.2333 314:0.1833 315:0.1833 316:0.1833 317:0.1833 318:0.1833 319:0.1833 320:0.1833 321:0.1833 322:0.1833 323:0.1833 324:0.1833 325:0.1833 326:0.1833 327:0.1833 328:0.1833 329:0.1833 330:0.1833 331:0.1833 332:0.1833 333:0.1833 334:0.1833 335:0.1833 336:0.1833 337:0.1833 338:0.1833 339:0.1833 340:0.1833 341:0.1833 342:0.1833 343:0.1833 344:0.1833 345:0.1833 346:0.1833 347:0.1833 348:0.1833 349:0.1833 350:0.1833 351:0.1833 352:0.1833 353:0.1833 354:0.1833 355:0.1833 356:0.1833 357:0.1833 358:0.1833 359:0.1833 360:0.1833 +-0.1033417771238669 1:0.1333 2:0.1333 3:0.1333 4:0.1333 5:0.1333 6:0.1333 7:0.1333 8:0.1333 9:0.1333 10:0.1333 11:0.1333 12:0.1333 13:0.1333 14:0.1333 15:0.1333 16:0.1333 17:0.1333 18:0.1333 19:0.1333 20:0.1333 21:0.1333 22:0.1333 23:0.1333 24:0.1333 25:0.1333 26:0.1333 27:0.1333 28:0.1333 29:0.1333 30:0.1333 31:0.1333 32:0.1333 33:0.1333 34:0.1333 35:0.1333 36:0.1333 37:0.15 38:0.15 39:0.15 40:0.15 41:0.15 42:0.15 43:0.15 44:0.15 45:0.15 46:0.1667 47:0.1667 48:0.1667 49:0.1667 50:0.1667 51:0.1667 52:0.1833 53:0.1833 54:0.1833 55:0.1833 56:0.1833 57:0.2 58:0.2 59:0.2 60:0.2 61:0.2 62:0.2 63:0.1833 64:0.1833 65:0.1833 66:0.1833 67:0.1833 68:0.1833 69:0.1833 70:0.1833 71:0.1833 72:0.1833 73:0.1833 74:0.1833 75:0.1833 76:0.1833 77:0.1833 78:0.1833 79:0.1833 80:0.1833 81:0.1833 82:0.1833 83:0.1833 84:0.1833 85:0.1833 86:0.1833 87:0.1833 88:0.1833 89:0.1833 90:0.1833 91:0.1833 92:0.1833 93:0.1833 94:0.1833 95:0.1833 96:0.1833 97:0.1833 98:0.1833 99:0.1833 100:0.1833 101:0.1833 102:0.1833 103:1 104:0.8667 105:0.8167 106:0.7333 107:0.7 108:0.65 109:0.6167 110:0.5833 111:0.5167 112:0.4833 113:0.4667 114:0.45 115:0.4333 116:0.4167 117:0.4 118:0.3833 119:0.3667 120:0.3667 121:0.35 122:0.3333 123:0.3333 124:0.3167 125:0.3167 126:0.3 127:0.3 128:0.3 129:0.2833 130:0.2833 131:0.2833 132:0.2667 133:0.2667 134:0.2667 135:0.25 136:0.25 137:0.25 138:0.25 139:0.25 140:0.2333 141:0.2333 142:0.19294737 143:0.19294737 144:0.19294737 145:0.17547368 146:0.17547368 147:0.17547368 148:0.17547368 149:0.17547368 150:0.17547368 151:0.17547368 152:0.17547368 153:0.17547368 154:0.17547368 155:0.15789474 156:0.15789474 157:0.14285408 158:0.14285408 159:0.14285408 160:0.12496116 161:0.12496116 162:0.12496116 163:0.12496116 164:0.12496116 165:0.12496116 166:0.12496116 167:0.12496116 168:0.12496116 169:0.12496116 170:0.12496116 171:0.12496116 172:0.12496116 173:0.12496116 174:0.12496116 175:0.12496116 176:0.12496116 177:0.12496116 178:0.12496116 179:0.12496116 180:0.12496116 181:0.12496116 182:0.12496116 183:0.12496116 184:0.12496116 185:0.12496116 186:0.12496116 187:0.12496116 188:0.12496116 189:0.12496116 190:0.12496116 191:0.12496116 192:0.12496116 193:0.12496116 194:0.12496116 195:0.12496116 196:0.12496116 197:0.12496116 198:0.12496116 199:0.12496116 200:0.12496116 201:0.12496116 202:0.12496116 203:0.12496116 204:0.12496116 205:0.12496116 206:0.12496116 207:0.12496116 208:0.12496116 209:0.12496116 210:0.14285408 211:0.14285408 212:0.14285408 213:0.14285408 214:0.14285408 215:0.14285408 216:0.14285408 217:0.14285408 218:0.14285408 219:0.160747 220:0.160747 221:0.2167 222:0.2167 223:0.2167 224:0.2167 225:0.2333 226:0.2333 227:0.2333 228:0.2333 229:0.2333 230:0.25 231:0.25 232:0.25 233:0.2667 234:0.2667 235:0.2667 236:0.2833 237:0.2833 238:0.3 239:0.3 240:0.3 241:0.3167 242:0.3333 243:0.3333 244:0.35 245:0.35 246:0.35 247:0.35 248:0.3667 249:0.3833 250:0.4 251:0.4167 252:0.4333 253:0.45 254:0.4833 255:0.5167 256:0.55 257:0.5833 258:0.5667 259:0.6 260:0.65 261:0.7167 262:0.8 263:0.9 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:0.9 281:0.7167 282:0.65 283:0.6 284:0.5833 285:0.5167 286:0.4833 287:0.45 288:0.3833 289:0.3833 290:0.3333 291:0.3333 292:0.3333 293:0.2833 294:0.2833 295:0.2667 296:0.25 297:0.25 298:0.2333 299:0.2333 300:0.2167 301:0.2167 302:0.2167 303:0.2 304:0.2 305:0.2 306:0.1833 307:0.1833 308:0.1833 309:0.1833 310:0.1833 311:0.1667 312:0.1667 313:0.1667 314:0.1667 315:0.1667 316:0.1667 317:0.15 318:0.15 319:0.15 320:0.15 321:0.15 322:0.15 323:0.15 324:0.15 325:0.15 326:0.1333 327:0.1333 328:0.1333 329:0.1333 330:0.1333 331:0.1333 332:0.1333 333:0.1333 334:0.1333 335:0.1333 336:0.1333 337:0.1333 338:0.1333 339:0.1333 340:0.1333 341:0.1333 342:0.1333 343:0.1333 344:0.1333 345:0.1333 346:0.1333 347:0.1333 348:0.1333 349:0.1333 350:0.1333 351:0.1333 352:0.1333 353:0.1333 354:0.1333 355:0.1333 356:0.1333 357:0.1333 358:0.1333 359:0.1333 360:0.1333 +-0.9972275900320716 1:0.45 2:0.45 3:0.45 4:0.45 5:0.45 6:0.45 7:0.45 8:0.45 9:0.45 10:0.45 11:0.45 12:0.45 13:0.45 14:0.45 15:0.45 16:0.45 17:0.4667 18:0.4667 19:0.4667 20:0.4667 21:0.4667 22:0.4667 23:0.4667 24:0.4833 25:0.4833 26:0.4833 27:0.4833 28:0.4833 29:0.5 30:0.5 31:0.5 32:0.5 33:0.5333 34:0.5333 35:0.5333 36:0.5333 37:0.5333 38:0.5333 39:0.55 40:0.55 41:0.5667 42:0.5667 43:0.6167 44:0.6 45:0.6167 46:0.6 47:0.6167 48:0.6833 49:0.6833 50:0.6833 51:0.6833 52:0.7 53:0.7 54:0.7167 55:0.7167 56:0.7167 57:0.7333 58:0.7833 59:1 60:1 61:1 62:1 63:1 64:1 65:1 66:1 67:1 68:1 69:1 70:1 71:1 72:1 73:1 74:1 75:1 76:1 77:1 78:1 79:1 80:1 81:1 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:1 107:1 108:1 109:1 110:1 111:1 112:1 113:1 114:1 115:1 116:1 117:1 118:1 119:1 120:1 121:1 122:1 123:0.8 124:0.7833 125:0.7667 126:0.7667 127:0.75 128:0.7333 129:0.7167 130:0.6833 131:0.6833 132:0.6833 133:0.6667 134:0.6667 135:0.6667 136:0.6667 137:0.6 138:0.5833 139:0.5833 140:0.5667 141:0.5667 142:0.52631579 143:0.52631579 144:0.50873684 145:0.50873684 146:0.50873684 147:0.49126316 148:0.49126316 149:0.49126316 150:0.49126316 151:0.45610526 152:0.45610526 153:0.45610526 154:0.45610526 155:0.45610526 156:0.45610526 157:0.44639088 158:0.44639088 159:0.4286051 160:0.4286051 161:0.4286051 162:0.4286051 163:0.4286051 164:0.4286051 165:0.4286051 166:0.39281926 167:0.39281926 168:0.39281926 169:0.39281926 170:0.39281926 171:0.39281926 172:0.39281926 173:0.39281926 174:0.39281926 175:0.39281926 176:0.39281926 177:0.39281926 178:0.39281926 179:0.39281926 180:0.39281926 181:0.39281926 182:0.39281926 183:0.39281926 184:0.39281926 185:0.39281926 186:0.39281926 187:0.39281926 188:0.39281926 189:0.39281926 190:0.39281926 191:0.39281926 192:0.39281926 193:0.39281926 194:0.39281926 195:0.39281926 196:0.39281926 197:0.41071218 198:0.41071218 199:0.41071218 200:0.41071218 201:0.41071218 202:0.41071218 203:0.41071218 204:0.41071218 205:0.4286051 206:0.4286051 207:0.4286051 208:0.4286051 209:0.4286051 210:0.44639088 211:0.44639088 212:0.44639088 213:0.44639088 214:0.4642838 215:0.4642838 216:0.4642838 217:0.48217672 218:0.48217672 219:0.4999625 220:0.4999625 221:0.5333 222:0.55 223:0.55 224:0.5667 225:0.5667 226:0.5833 227:0.6 228:0.6 229:0.6 230:0.6 231:0.6333 232:0.65 233:0.6667 234:0.6833 235:0.7 236:0.7167 237:0.7333 238:0.75 239:0.7667 240:0.8 241:0.8167 242:0.8167 243:0.8333 244:0.8667 245:0.9333 246:0.9667 247:1 248:1 249:1 250:1 251:1 252:1 253:1 254:1 255:1 256:1 257:0.15 258:0.15 259:0.15 260:0.15 261:0.15 262:0.15 263:0.15 264:0.15 265:0.15 266:0.15 267:0.15 268:0.15 269:0.15 270:0.15 271:0.15 272:0.15 273:0.15 274:0.15 275:0.15 276:0.15 277:0.15 278:0.15 279:0.15 280:0.15 281:0.15 282:0.15 283:0.15 284:0.15 285:0.15 286:0.15 287:0.15 288:0.15 289:0.15 290:0.15 291:1 292:1 293:1 294:1 295:1 296:1 297:1 298:1 299:1 300:0.8833 301:0.85 302:0.8333 303:0.8 304:0.7833 305:0.7667 306:0.75 307:0.7333 308:0.7167 309:0.7 310:0.6833 311:0.6667 312:0.65 313:0.6333 314:0.6333 315:0.6167 316:0.6 317:0.6 318:0.5833 319:0.5833 320:0.5667 321:0.5667 322:0.55 323:0.55 324:0.5333 325:0.5333 326:0.5333 327:0.5167 328:0.5167 329:0.5167 330:0.5 331:0.5 332:0.5 333:0.5 334:0.4833 335:0.4833 336:0.4833 337:0.4833 338:0.4833 339:0.4667 340:0.4667 341:0.4667 342:0.4667 343:0.4667 344:0.4667 345:0.4667 346:0.45 347:0.45 348:0.45 349:0.45 350:0.45 351:0.45 352:0.45 353:0.45 354:0.45 355:0.45 356:0.45 357:0.45 358:0.45 359:0.45 360:0.45 +-0.7343290063912017 1:0.3333 2:0.3333 3:0.3333 4:0.3333 5:0.3333 6:0.3333 7:0.3333 8:0.3333 9:0.3333 10:0.3333 11:0.3333 12:0.3333 13:0.3333 14:0.3333 15:0.3333 16:0.3333 17:0.3333 18:0.3333 19:0.3333 20:0.3333 21:0.35 22:0.35 23:0.35 24:0.35 25:0.35 26:0.35 27:0.35 28:0.35 29:0.3667 30:0.3667 31:0.3667 32:0.3667 33:0.3667 34:0.3833 35:0.3833 36:0.3833 37:0.3833 38:0.4 39:0.4 40:0.4 41:0.4167 42:0.4167 43:0.4167 44:0.4333 45:0.4333 46:0.4333 47:0.45 48:0.45 49:0.4667 50:0.45 51:0.45 52:0.4667 53:0.5167 54:0.5167 55:0.55 56:0.55 57:0.55 58:0.5667 59:0.5833 60:0.6 61:0.6167 62:0.6333 63:0.45 64:0.45 65:0.45 66:0.45 67:0.45 68:0.4333 69:0.45 70:0.4333 71:0.45 72:0.4333 73:0.45 74:0.4333 75:0.45 76:0.4333 77:0.45 78:0.45 79:0.45 80:0.4833 81:0.55 82:1 83:1 84:1 85:1 86:1 87:1 88:0.7333 89:0.7333 90:0.7333 91:0.4833 92:0.4833 93:0.4833 94:0.4833 95:0.4833 96:0.4833 97:0.4833 98:0.4833 99:0.4833 100:0.4667 101:0.4667 102:0.3833 103:0.35 104:0.3333 105:0.3 106:0.3 107:0.2667 108:0.25 109:0.2333 110:0.2333 111:0.2167 112:0.2 113:0.2 114:0.1833 115:0.1833 116:0.1833 117:0.1667 118:0.1667 119:0.1667 120:0.15 121:0.15 122:0.15 123:0.15 124:0.1333 125:0.1333 126:0.1333 127:0.1333 128:0.1333 129:0.1167 130:0.1167 131:0.1167 132:0.1167 133:0.1167 134:0.1167 135:0.1167 136:0.1167 137:0.1167 138:0.1167 139:0.1 140:0.1 141:0.1 142:0.052631579 143:0.052631579 144:0.052631579 145:0.052631579 146:0.052631579 147:0.052631579 148:0.052631579 149:0.052631579 150:0.052631579 151:0.052631579 152:0.052631579 153:0.052631579 154:0.052631579 155:0.052631579 156:0.052631579 157:0.035710842 158:0.035710842 159:0.035710842 160:0.035710842 161:0.035710842 162:0.035710842 163:0.035710842 164:0.035710842 165:0.035710842 166:0.035710842 167:0.035710842 168:0.035710842 169:0.035710842 170:0.035710842 171:0.035710842 172:0.035710842 173:0.035710842 174:0.035710842 175:0.035710842 176:0.035710842 177:0.035710842 178:0.035710842 179:0.035710842 180:0.035710842 181:0.035710842 182:0.035710842 183:0.035710842 184:0.035710842 185:0.035710842 186:0.035710842 187:0.035710842 188:0.035710842 189:0.035710842 190:0.035710842 191:0.035710842 192:0.035710842 193:0.035710842 194:0.035710842 195:0.035710842 196:0.035710842 197:0.035710842 198:0.035710842 199:0.035710842 200:0.035710842 201:0.035710842 202:0.035710842 203:0.035710842 204:0.035710842 205:0.035710842 206:0.035710842 207:0.035710842 208:0.035710842 209:0.035710842 210:0.035710842 211:0.035710842 212:0.035710842 213:0.035710842 214:0.035710842 215:0.035710842 216:0.035710842 217:0.035710842 218:0.035710842 219:0.035710842 220:0.035710842 221:0.1 222:0.1 223:0.1 224:0.1167 225:0.1167 226:0.1167 227:0.1167 228:0.1167 229:0.1167 230:0.1167 231:0.1167 232:0.1167 233:0.1167 234:0.1333 235:0.1333 236:0.1333 237:0.1333 238:0.1333 239:0.15 240:0.15 241:0.15 242:0.15 243:0.1667 244:0.1667 245:0.1667 246:0.1833 247:0.1833 248:0.1833 249:0.2 250:0.2 251:0.2167 252:0.2333 253:0.2333 254:0.25 255:0.2667 256:0.2833 257:0.3 258:0.3333 259:0.35 260:0.35 261:0.35 262:0.3667 263:0.6833 264:0.6833 265:0.7167 266:0.7167 267:0.8333 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:0.4833 283:0.4833 284:0.4833 285:0.4833 286:0.4833 287:0.4833 288:0.4833 289:0.4833 290:0.4833 291:0.4833 292:0.85 293:0.8167 294:0.7833 295:0.75 296:0.7333 297:0.7 298:0.6833 299:0.65 300:0.6333 301:0.6167 302:0.6 303:0.5833 304:0.5667 305:0.55 306:0.5333 307:0.5333 308:0.5167 309:0.5 310:0.5 311:0.4833 312:0.4667 313:0.4667 314:0.45 315:0.45 316:0.4333 317:0.4333 318:0.4333 319:0.4167 320:0.4167 321:0.4167 322:0.4 323:0.4 324:0.4 325:0.3833 326:0.3833 327:0.3833 328:0.3833 329:0.3667 330:0.3667 331:0.3667 332:0.3667 333:0.3667 334:0.35 335:0.35 336:0.35 337:0.35 338:0.35 339:0.35 340:0.35 341:0.35 342:0.3333 343:0.3333 344:0.3333 345:0.3333 346:0.3333 347:0.3333 348:0.3333 349:0.3333 350:0.3333 351:0.3333 352:0.3333 353:0.3333 354:0.3333 355:0.3333 356:0.3333 357:0.3333 358:0.3333 359:0.3333 360:0.3333 +-0.02674690764760544 1:0.45 2:0.45 3:0.45 4:0.45 5:0.45 6:0.45 7:0.45 8:0.45 9:0.45 10:0.45 11:0.45 12:0.45 13:0.45 14:0.45 15:0.45 16:0.45 17:0.4667 18:0.4667 19:0.4667 20:0.4667 21:0.4667 22:0.4667 23:0.4667 24:0.4833 25:0.4833 26:0.4833 27:0.4833 28:0.4833 29:0.5 30:0.5 31:0.5 32:0.5 33:0.5167 34:0.5167 35:0.5167 36:0.55 37:0.55 38:0.55 39:0.5667 40:0.55 41:0.5667 42:0.5667 43:0.5833 44:0.5833 45:0.6 46:0.6 47:0.6167 48:0.6667 49:0.6667 50:0.6667 51:0.6667 52:0.6833 53:0.7 54:0.7167 55:0.75 56:0.75 57:0.75 58:0.7667 59:1 60:1 61:1 62:1 63:1 64:1 65:1 66:1 67:1 68:1 69:1 70:1 71:1 72:1 73:1 74:1 75:1 76:1 77:1 78:1 79:1 80:1 81:1 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:1 107:1 108:1 109:1 110:1 111:1 112:1 113:1 114:0.95 115:0.95 116:0.8833 117:0.8833 118:0.8833 119:0.8833 120:0.4667 121:0.45 122:0.45 123:0.45 124:0.45 125:0.45 126:0.45 127:0.45 128:0.45 129:0.45 130:0.45 131:0.45 132:0.4667 133:0.4667 134:0.4667 135:0.4833 136:0.5167 137:0.5 138:0.5 139:0.4833 140:0.5 141:0.4833 142:0.47368421 143:0.47368421 144:0.47368421 145:0.47368421 146:0.47368421 147:0.73684211 148:0.70178947 149:0.68421053 150:0.68421053 151:0.68421053 152:0.68421053 153:0.386 154:0.386 155:0.386 156:0.36842105 157:0.35714056 158:0.35714056 159:0.35714056 160:0.35714056 161:0.35714056 162:0.35714056 163:0.35714056 164:0.35714056 165:0.35714056 166:0.35714056 167:0.35714056 168:0.35714056 169:0.35714056 170:0.35714056 171:0.35714056 172:0.35714056 173:0.33924764 174:0.33924764 175:0.33924764 176:0.33924764 177:0.33924764 178:0.33924764 179:0.33924764 180:0.33924764 181:0.33924764 182:0.33924764 183:0.33924764 184:0.33924764 185:0.33924764 186:0.33924764 187:0.33924764 188:0.33924764 189:0.33924764 190:0.33924764 191:0.33924764 192:0.33924764 193:0.33924764 194:0.33924764 195:0.33924764 196:0.33924764 197:0.33924764 198:0.33924764 199:0.35714056 200:0.35714056 201:0.37503348 202:0.37503348 203:0.37503348 204:0.37503348 205:0.39281926 206:0.39281926 207:0.39281926 208:0.39281926 209:0.39281926 210:0.39281926 211:0.39281926 212:0.39281926 213:0.39281926 214:0.39281926 215:0.39281926 216:0.4286051 217:0.4286051 218:0.44639088 219:0.48217672 220:0.48217672 221:0.5167 222:0.5333 223:0.5333 224:0.5833 225:0.5833 226:0.5833 227:0.5833 228:0.5833 229:0.5833 230:0.5833 231:0.5833 232:0.5833 233:0.5833 234:0.7167 235:0.7167 236:0.7167 237:0.7167 238:0.7167 239:0.7167 240:0.7667 241:0.8333 242:0.8333 243:0.8333 244:0.8333 245:0.8667 246:0.8667 247:1 248:1 249:1 250:1 251:1 252:1 253:1 254:1 255:1 256:1 257:1 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:1 287:1 288:1 289:1 290:1 291:1 292:1 293:1 294:1 295:1 296:1 297:1 298:1 299:1 300:1 301:1 302:1 303:0.9333 304:0.8833 305:0.8833 306:0.7667 307:0.7667 308:0.7667 309:0.7667 310:0.7667 311:0.7667 312:0.7667 313:1 314:1 315:1 316:1 317:0.4333 318:0.4 319:0.4167 320:0.4 321:0.4167 322:0.4167 323:0.4167 324:0.4167 325:0.4 326:0.4167 327:0.4 328:0.4167 329:0.4167 330:0.4167 331:0.4833 332:0.4833 333:0.4833 334:0.4833 335:0.4833 336:0.4833 337:0.4833 338:0.4833 339:0.4833 340:0.4833 341:0.4667 342:0.4667 343:0.4667 344:0.4667 345:0.4667 346:0.4667 347:0.4667 348:0.4667 349:0.4667 350:0.45 351:0.45 352:0.45 353:0.45 354:0.45 355:0.45 356:0.45 357:0.45 358:0.45 359:0.45 360:0.45 +-0.7704745852510203 1:0.6 2:0.6 3:0.6 4:0.6 5:0.6 6:0.6 7:0.55 8:0.5167 9:0.5333 10:0.5333 11:0.5167 12:0.5333 13:0.5167 14:0.5333 15:0.5167 16:0.5333 17:0.5333 18:0.5667 19:0.5833 20:0.5833 21:0.5833 22:0.6 23:0.6 24:0.6 25:0.6 26:0.6167 27:0.6167 28:0.6167 29:0.6333 30:0.6167 31:0.6167 32:0.6 33:0.6167 34:0.6167 35:0.6 36:0.6167 37:0.6 38:0.6 39:0.8167 40:0.8333 41:0.85 42:0.85 43:0.8167 44:0.8167 45:0.8167 46:0.8167 47:0.8167 48:0.8167 49:0.9167 50:0.9667 51:0.9667 52:0.9667 53:1 54:1 55:1 56:1 57:1 58:1 59:1 60:1 61:1 62:1 63:1 64:1 65:1 66:1 67:1 68:1 69:1 70:1 71:1 72:1 73:1 74:1 75:1 76:1 77:1 78:1 79:1 80:1 81:1 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:0.9833 104:0.9833 105:0.9333 106:0.9333 107:0.3833 108:0.3833 109:0.3833 110:0.3833 111:0.3667 112:0.35 113:0.35 114:0.35 115:0.35 116:0.35 117:0.35 118:0.35 119:0.3667 120:0.35 121:0.35 122:0.35 123:0.35 124:0.35 125:0.3667 126:0.45 127:0.4667 128:0.45 129:0.3667 130:0.3 131:0.3 132:0.3 133:0.3 134:0.3 135:0.3 136:0.3 137:0.3 138:0.3 139:0.3 140:0.3 141:0.3 142:0.26315789 143:0.26315789 144:0.26315789 145:0.26315789 146:0.26315789 147:0.26315789 148:0.26315789 149:0.26315789 150:0.26315789 151:0.24557895 152:0.24557895 153:0.24557895 154:0.24557895 155:0.24557895 156:0.24557895 157:0.2321044 158:0.2321044 159:0.21431862 160:0.2321044 161:0.2321044 162:0.2321044 163:0.2321044 164:0.2321044 165:0.2321044 166:0.2321044 167:0.2321044 168:0.2321044 169:0.2321044 170:0.21431862 171:0.21431862 172:0.21431862 173:0.21431862 174:0.21431862 175:0.21431862 176:0.21431862 177:0.21431862 178:0.21431862 179:0.21431862 180:0.21431862 181:0.21431862 182:0.21431862 183:0.21431862 184:0.21431862 185:0.21431862 186:0.21431862 187:0.2321044 188:0.2321044 189:0.2321044 190:0.2321044 191:0.2321044 192:0.2321044 193:0.2321044 194:0.2321044 195:0.2321044 196:0.2321044 197:0.2321044 198:0.2321044 199:0.2321044 200:0.2321044 201:0.2321044 202:0.2321044 203:0.24999732 204:0.24999732 205:0.24999732 206:0.24999732 207:0.28567602 208:0.28567602 209:0.28567602 210:0.28567602 211:0.28567602 212:0.28567602 213:0.28567602 214:0.30356894 215:0.30356894 216:0.30356894 217:0.30356894 218:0.32146186 219:0.35714056 220:0.35714056 221:0.4167 222:0.5167 223:0.5167 224:0.5167 225:0.5167 226:0.5167 227:0.5167 228:0.5167 229:0.5167 230:0.5167 231:0.5167 232:0.5167 233:0.5333 234:0.5833 235:0.5833 236:0.5667 237:0.5833 238:0.5833 239:0.5833 240:0.5833 241:0.5833 242:0.6 243:0.6167 244:0.65 245:0.6667 246:0.7 247:0.7167 248:0.7833 249:0.7833 250:0.8667 251:0.9 252:0.95 253:1 254:1 255:1 256:1 257:1 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:1 287:1 288:1 289:1 290:1 291:1 292:1 293:1 294:1 295:1 296:1 297:1 298:1 299:1 300:1 301:1 302:1 303:1 304:1 305:1 306:1 307:1 308:1 309:1 310:1 311:0.85 312:0.8333 313:0.8333 314:0.8 315:0.7833 316:0.7667 317:0.7667 318:0.7833 319:0.7333 320:0.7333 321:0.7667 322:0.6833 323:0.6667 324:0.6667 325:0.6667 326:0.6667 327:0.6667 328:0.65 329:0.6333 330:0.6167 331:0.6333 332:0.6167 333:0.6167 334:0.6333 335:0.6167 336:0.6167 337:0.6333 338:0.6167 339:0.6167 340:0.6167 341:0.6167 342:0.6167 343:0.6167 344:0.5667 345:0.5667 346:0.5667 347:0.5667 348:0.55 349:0.5667 350:0.55 351:0.5667 352:0.5667 353:0.55 354:0.55 355:0.55 356:0.9167 357:0.9167 358:0.9167 359:0.9167 360:0.9167 +-0.3110097732608271 1:0.3833 2:0.3833 3:0.4 4:0.4 5:0.4 6:0.4 7:0.4 8:0.4 9:0.4 10:0.4 11:0.4 12:0.4 13:0.4 14:0.4 15:0.4 16:0.4 17:0.4 18:0.4167 19:0.4167 20:0.4167 21:0.4167 22:0.4167 23:0.4167 24:0.4167 25:0.4167 26:0.4333 27:0.4333 28:0.4333 29:0.4333 30:0.4333 31:0.45 32:0.45 33:0.45 34:0.45 35:0.4667 36:0.4667 37:0.4667 38:0.4833 39:0.4833 40:0.4833 41:0.5 42:0.5 43:0.5333 44:0.55 45:0.55 46:0.5667 47:0.5667 48:0.6167 49:0.6167 50:0.6167 51:0.6167 52:0.6167 53:0.6167 54:0.7 55:0.7 56:0.7 57:0.7 58:0.7 59:0.7 60:0.7 61:0.7167 62:1 63:1 64:1 65:1 66:0.9 67:0.9 68:0.9 69:0.9 70:0.9 71:0.9 72:1 73:1 74:1 75:1 76:0.9333 77:0.9333 78:0.9333 79:0.9333 80:0.9333 81:0.9333 82:0.9333 83:0.9333 84:0.9333 85:0.9333 86:0.9333 87:1 88:1 89:1 90:1 91:1 92:1 93:0.9667 94:0.8 95:0.5833 96:0.4667 97:0.4 98:0.4 99:0.4167 100:0.3667 101:0.3333 102:0.3 103:0.2833 104:0.25 105:0.2333 106:0.2167 107:0.2 108:0.2 109:0.1833 110:0.1833 111:0.1667 112:0.1667 113:0.15 114:0.15 115:0.15 116:0.1333 117:0.1333 118:0.1333 119:0.1167 120:0.1167 121:0.1167 122:0.1167 123:0.1167 124:0.1167 125:0.1 126:0.1 127:0.1 128:0.1 129:0.1 130:0.1 131:0.1 132:0.1 133:0.08333 134:0.08333 135:0.08333 136:0.08333 137:0.08333 138:0.08333 139:0.08333 140:0.08333 141:0.08333 142:0.035084211 143:0.035084211 144:0.035084211 145:0.035084211 146:0.035084211 147:0.035084211 148:0.035084211 149:0.035084211 150:0.035084211 151:0.035084211 152:0.035084211 153:0.035084211 154:0.035084211 155:0.035084211 156:0.035084211 157:0.017850064 158:0.017850064 159:0.017850064 160:0.017850064 161:0.017850064 162:0.017850064 163:0.017850064 164:0.017850064 165:0.017850064 166:0.017850064 167:0.017850064 168:0.017850064 169:0.017850064 170:0.017850064 171:0.017850064 172:0.017850064 173:0.017850064 174:0.017850064 175:0.017850064 176:0.017850064 177:0.017850064 178:0.017850064 179:0.017850064 180:0.017850064 181:0.017850064 182:0.017850064 183:0.017850064 184:0.017850064 185:0.017850064 186:0.017850064 187:0.017850064 188:0.017850064 189:0.017850064 190:0.017850064 191:0.017850064 192:0.017850064 193:0.017850064 194:0.017850064 195:0.017850064 196:0.017850064 197:0.017850064 198:0.017850064 199:0.017850064 200:0.017850064 201:0.017850064 202:0.017850064 203:0.017850064 204:0.035710842 205:0.035710842 206:0.035710842 207:0.035710842 208:0.035710842 209:0.035710842 210:0.035710842 211:0.035710842 212:0.035710842 213:0.035710842 214:0.035710842 215:0.035710842 216:0.035710842 217:0.035710842 218:0.035710842 219:0.035710842 220:0.035710842 221:0.1 222:0.1 223:0.1 224:0.1167 225:0.1167 226:0.1167 227:0.1167 228:0.1167 229:0.1167 230:0.1167 231:0.1167 232:0.1167 233:0.1167 234:0.1333 235:0.1333 236:0.1333 237:0.1333 238:0.1333 239:0.15 240:0.15 241:0.15 242:0.15 243:0.1667 244:0.1667 245:0.1667 246:0.1833 247:0.1833 248:0.1833 249:0.2 250:0.2 251:0.2167 252:0.2333 253:0.2333 254:0.25 255:0.2667 256:0.2833 257:0.3 258:0.3333 259:0.35 260:0.3833 261:0.4333 262:0.4667 263:0.5333 264:0.75 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:0.9 281:0.9 282:0.8167 283:0.75 284:0.7 285:0.65 286:0.6 287:0.5833 288:0.5833 289:0.5833 290:0.5833 291:0.5833 292:0.5833 293:0.5833 294:0.5833 295:0.5833 296:0.6 297:0.6 298:0.6 299:0.6 300:0.7 301:0.3833 302:0.3667 303:0.3833 304:0.3833 305:0.3667 306:0.3833 307:0.3667 308:0.3833 309:0.1167 310:0.1167 311:0.1167 312:0.1167 313:0.1167 314:0.1167 315:0.1167 316:0.1167 317:0.1167 318:0.1167 319:0.1 320:0.1 321:0.1 322:0.1 323:0.1 324:0.1 325:0.1167 326:0.1167 327:0.1167 328:0.1167 329:0.1167 330:0.1 331:0.1 332:0.1 333:0.1167 334:0.1167 335:0.1167 336:0.1167 337:0.1167 338:0.1167 339:0.1167 340:0.1 341:0.1167 342:0.1167 343:0.1167 344:0.1167 345:0.1167 346:0.1 347:0.1 348:0.1 349:0.1167 350:0.1167 351:0.1 352:0.1 353:0.1 354:0.1 355:0.1 356:0.1 357:0.1167 358:0.3833 359:0.3833 360:0.3833 +-0.1273458683593925 1:0.4333 2:0.4333 3:0.4333 4:0.4333 5:0.4333 6:0.4333 7:0.4333 8:0.4333 9:0.4333 10:0.4333 11:0.45 12:0.45 13:0.45 14:0.45 15:0.4667 16:0.4833 17:0.4667 18:0.4667 19:0.4667 20:0.4667 21:0.4667 22:0.4667 23:0.4667 24:0.4667 25:0.4667 26:0.4667 27:0.4833 28:0.5 29:0.5 30:0.5 31:0.5 32:0.5 33:0.6333 34:0.65 35:0.6667 36:0.6833 37:1 38:1 39:1 40:1 41:1 42:1 43:1 44:1 45:1 46:1 47:0.8667 48:0.8667 49:0.8667 50:0.8667 51:0.8667 52:0.8667 53:0.8667 54:0.9167 55:0.9167 56:0.9167 57:0.9167 58:1 59:1 60:1 61:1 62:1 63:1 64:1 65:1 66:1 67:1 68:1 69:1 70:1 71:1 72:1 73:1 74:1 75:1 76:0.9167 77:0.9167 78:0.9167 79:0.9167 80:0.9167 81:1 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:1 107:1 108:1 109:1 110:1 111:1 112:0.7167 113:0.6833 114:0.6833 115:0.6833 116:0.6833 117:0.4667 118:0.4667 119:0.4667 120:0.4667 121:0.4667 122:0.4667 123:0.4667 124:0.4667 125:0.4667 126:0.4667 127:0.4667 128:0.4833 129:0.5333 130:0.4667 131:0.45 132:0.45 133:0.4333 134:0.4333 135:0.4333 136:0.4333 137:0.4333 138:0.4333 139:0.4333 140:0.4333 141:0.4333 142:0.40347368 143:0.40347368 144:0.40347368 145:0.40347368 146:0.40347368 147:0.40347368 148:0.21052632 149:0.21052632 150:0.21052632 151:0.21052632 152:0.21052632 153:0.21052632 154:0.21052632 155:0.21052632 156:0.21052632 157:0.1964257 158:0.1964257 159:0.1964257 160:0.1964257 161:0.1964257 162:0.1964257 163:0.1964257 164:0.1964257 165:0.1964257 166:0.1964257 167:0.1964257 168:0.1964257 169:0.37503348 170:0.37503348 171:0.37503348 172:0.37503348 173:0.37503348 174:0.37503348 175:0.37503348 176:0.37503348 177:0.37503348 178:0.37503348 179:0.37503348 180:0.37503348 181:0.37503348 182:0.37503348 183:0.37503348 184:0.37503348 185:0.37503348 186:0.37503348 187:0.37503348 188:0.37503348 189:0.37503348 190:0.37503348 191:0.37503348 192:0.37503348 193:0.39281926 194:0.37503348 195:0.39281926 196:0.37503348 197:0.37503348 198:0.39281926 199:0.39281926 200:0.39281926 201:0.39281926 202:0.39281926 203:0.39281926 204:0.39281926 205:0.24999732 206:0.26789024 207:0.26789024 208:0.26789024 209:0.24999732 210:0.24999732 211:0.26789024 212:0.24999732 213:0.24999732 214:0.26789024 215:0.24999732 216:0.24999732 217:0.24999732 218:0.24999732 219:0.24999732 220:0.26789024 221:0.3 222:0.3 223:0.3167 224:0.3167 225:0.3167 226:0.35 227:0.35 228:0.3667 229:0.3667 230:0.3667 231:0.3667 232:0.3667 233:0.3667 234:0.3833 235:0.3833 236:0.4 237:0.4 238:0.4167 239:0.4333 240:0.4333 241:0.45 242:0.4667 243:0.4833 244:0.5 245:0.5167 246:0.5333 247:0.55 248:0.5667 249:0.6 250:0.6333 251:0.65 252:0.6833 253:0.7 254:0.7 255:0.7 256:0.7 257:0.7 258:0.6667 259:0.7 260:0.6333 261:0.6333 262:0.6333 263:0.6167 264:0.5667 265:0.5667 266:0.5667 267:0.5667 268:0.5667 269:0.5667 270:0.5667 271:0.5667 272:0.5667 273:0.5667 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:1 287:1 288:1 289:1 290:1 291:1 292:1 293:0.95 294:0.9167 295:0.8833 296:0.8833 297:0.8833 298:0.8833 299:0.8667 300:0.85 301:0.8167 302:0.8 303:0.7667 304:0.75 305:0.75 306:0.75 307:0.7333 308:0.6833 309:0.6667 310:0.6333 311:0.6167 312:0.6 313:0.6 314:0.6167 315:0.6 316:0.6167 317:0.6167 318:0.5667 319:0.55 320:0.55 321:0.55 322:0.55 323:0.55 324:0.55 325:0.35 326:0.35 327:0.3333 328:0.3333 329:0.3333 330:0.3333 331:0.3333 332:0.3333 333:0.3333 334:0.3333 335:0.3333 336:0.3333 337:0.3333 338:0.3333 339:0.3333 340:0.3333 341:0.3333 342:0.3333 343:0.35 344:0.35 345:0.3333 346:0.4333 347:0.4333 348:0.4333 349:0.4333 350:0.4333 351:0.4333 352:0.4333 353:0.4333 354:0.4333 355:0.4333 356:0.4333 357:0.4333 358:0.4333 359:0.4333 360:0.4333 +-1.46790920289066 1:0.2167 2:0.2167 3:0.2167 4:0.2167 5:0.2167 6:0.2167 7:0.2167 8:0.2167 9:0.2167 10:0.2167 11:0.2167 12:0.2167 13:0.2167 14:0.2167 15:0.2167 16:0.2167 17:0.2167 18:0.2167 19:0.2167 20:0.2167 21:0.2167 22:0.2167 23:0.2167 24:0.2167 25:0.2167 26:0.1 27:0.1 28:0.08333 29:0.08333 30:0.08333 31:0.08333 32:0.08333 33:0.08333 34:0.08333 35:0.08333 36:0.08333 37:0.08333 38:0.08333 39:0.1 40:0.08333 41:0.08333 42:0.08333 43:0.08333 44:0.08333 45:0.08333 46:0.08333 47:0.1 48:0.1 49:0.1 50:0.08333 51:0.08333 52:0.08333 53:0.08333 54:0.08333 55:0.08333 56:0.1 57:0.1 58:0.1 59:0.08333 60:0.08333 61:0.08333 62:0.08333 63:0.08333 64:0.08333 65:0.08333 66:0.08333 67:0.08333 68:0.08333 69:0.08333 70:0.08333 71:0.08333 72:0.08333 73:0.08333 74:0.08333 75:0.08333 76:0.1 77:0.1 78:0.1 79:0.1167 80:0.1333 81:0.1333 82:0.4333 83:0.4333 84:0.6833 85:0.6 86:0.5667 87:0.5667 88:0.5667 89:0.5667 90:0.5667 91:0.5667 92:0.5667 93:0.5667 94:0.5833 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:0.8333 106:0.8 107:0.8 108:0.8 109:0.8 110:0.8 111:0.8 112:0.5333 113:0.5333 114:0.5333 115:0.5167 116:0.5 117:0.4667 118:0.4667 119:0.45 120:0.4333 121:0.4167 122:0.4 123:0.4 124:0.3833 125:0.3667 126:0.3667 127:0.35 128:0.35 129:0.3333 130:0.3 131:0.3167 132:0.3167 133:0.3167 134:0.3167 135:0.3 136:0.3 137:0.3 138:0.2833 139:0.2833 140:0.2833 141:0.2833 142:0.24557895 143:0.22810526 144:0.22810526 145:0.22810526 146:0.22810526 147:0.22810526 148:0.22810526 149:0.22810526 150:0.22810526 151:0.21052632 152:0.21052632 153:0.21052632 154:0.21052632 155:0.21052632 156:0.21052632 157:0.17853278 158:0.17853278 159:0.17853278 160:0.17853278 161:0.17853278 162:0.17853278 163:0.17853278 164:0.17853278 165:0.17853278 166:0.17853278 167:0.17853278 168:0.17853278 169:0.17853278 170:0.17853278 171:0.17853278 172:0.17853278 173:0.17853278 174:0.17853278 175:0.17853278 176:0.17853278 177:0.17853278 178:0.17853278 179:0.17853278 180:0.17853278 181:0.17853278 182:0.17853278 183:0.17853278 184:0.160747 185:0.160747 186:0.160747 187:0.160747 188:0.160747 189:0.160747 190:0.160747 191:0.160747 192:0.160747 193:0.160747 194:0.160747 195:0.160747 196:0.160747 197:0.160747 198:0.160747 199:0.160747 200:0.160747 201:0.160747 202:0.160747 203:0.160747 204:0.160747 205:0.160747 206:0.160747 207:0.17853278 208:0.17853278 209:0.17853278 210:0.17853278 211:0.17853278 212:0.17853278 213:0.17853278 214:0.17853278 215:0.21431862 216:0.21431862 217:0.21431862 218:0.21431862 219:0.21431862 220:0.2321044 221:0.2833 222:0.2833 223:0.2833 224:0.2833 225:0.3 226:0.3 227:0.3 228:0.3167 229:0.3167 230:0.3167 231:0.3333 232:0.3333 233:0.3333 234:0.35 235:0.35 236:0.35 237:0.35 238:0.35 239:0.3667 240:0.3667 241:0.45 242:0.5 243:0.4833 244:0.5 245:0.55 246:0.5667 247:0.55 248:0.55 249:0.55 250:0.5833 251:0.6 252:0.7 253:0.7 254:0.7167 255:0.75 256:0.7833 257:0.7833 258:0.7833 259:0.7833 260:0.7833 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:0.85 277:0.7167 278:0.6167 279:0.5333 280:0.4667 281:0.4333 282:0.3833 283:0.3833 284:0.3833 285:0.3667 286:0.3667 287:0.2667 288:0.2667 289:0.2667 290:0.2833 291:0.2667 292:0.2667 293:0.2833 294:0.2667 295:0.2667 296:0.2667 297:0.2667 298:0.2667 299:0.2667 300:0.2833 301:0.2667 302:0.2667 303:0.2833 304:0.2833 305:0.2667 306:0.2833 307:0.2833 308:0.2667 309:0.2667 310:0.2833 311:0.2833 312:0.2667 313:0.2667 314:0.2667 315:0.25 316:0.25 317:0.25 318:0.25 319:0.25 320:0.2333 321:0.2333 322:0.2333 323:0.2333 324:0.2 325:0.2 326:0.2 327:0.2 328:0.2 329:0.2 330:0.2 331:0.2 332:0.2 333:0.1833 334:0.1833 335:0.2 336:0.2 337:0.2 338:0.2 339:0.1833 340:0.2 341:0.2 342:0.2 343:0.2 344:0.2 345:0.2 346:0.2 347:0.2 348:0.2 349:0.2 350:0.2 351:0.2 352:0.1833 353:0.1833 354:0.2 355:0.2167 356:0.2167 357:0.2167 358:0.2167 359:0.2167 360:0.2167 +-0.4885576313018514 1:0.35 2:0.35 3:0.35 4:0.35 5:0.35 6:0.35 7:0.35 8:0.35 9:0.35 10:0.35 11:0.35 12:0.35 13:0.35 14:0.35 15:0.35 16:0.35 17:0.35 18:0.35 19:0.35 20:0.3667 21:0.3667 22:0.3667 23:0.3667 24:0.3667 25:0.3667 26:0.3667 27:0.3667 28:0.3833 29:0.3833 30:0.3833 31:0.3833 32:0.3833 33:0.4 34:0.4 35:0.4 36:0.4 37:0.4167 38:0.4167 39:0.4167 40:0.4333 41:0.45 42:0.45 43:0.45 44:0.4667 45:0.4667 46:0.4667 47:0.4667 48:0.4833 49:0.4833 50:0.5 51:0.5333 52:0.5167 53:0.5333 54:0.55 55:0.55 56:0.6 57:0.6 58:0.6 59:0.6167 60:0.7 61:0.7 62:0.7 63:0.7 64:0.8 65:0.7 66:0.8 67:0.9 68:0.9 69:0.9667 70:0.9667 71:0.9667 72:1 73:1 74:1 75:1 76:1 77:1 78:1 79:1 80:1 81:1 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:0.5833 101:0.55 102:0.55 103:0.55 104:0.55 105:0.55 106:0.55 107:0.55 108:0.55 109:0.55 110:0.55 111:1 112:1 113:1 114:1 115:1 116:1 117:1 118:1 119:1 120:1 121:1 122:1 123:0.9667 124:0.9667 125:0.6833 126:0.6667 127:0.55 128:0.55 129:0.55 130:0.55 131:0.55 132:0.55 133:0.4833 134:0.4833 135:0.4667 136:0.4667 137:0.45 138:0.45 139:0.45 140:0.45 141:0.45 142:0.42105263 143:0.42105263 144:0.42105263 145:0.42105263 146:0.42105263 147:0.42105263 148:0.35084211 149:0.35084211 150:0.42105263 151:0.35084211 152:0.35084211 153:0.35084211 154:0.35084211 155:0.33336842 156:0.33336842 157:0.32146186 158:0.32146186 159:0.32146186 160:0.32146186 161:0.32146186 162:0.32146186 163:0.32146186 164:0.32146186 165:0.32146186 166:0.32146186 167:0.28567602 168:0.28567602 169:0.28567602 170:0.28567602 171:0.28567602 172:0.28567602 173:0.28567602 174:0.28567602 175:0.28567602 176:0.28567602 177:0.28567602 178:0.28567602 179:0.28567602 180:0.28567602 181:0.28567602 182:0.28567602 183:0.28567602 184:0.28567602 185:0.28567602 186:0.28567602 187:0.28567602 188:0.28567602 189:0.28567602 190:0.28567602 191:0.28567602 192:0.28567602 193:0.28567602 194:0.30356894 195:0.30356894 196:0.30356894 197:0.30356894 198:0.30356894 199:0.30356894 200:0.30356894 201:0.30356894 202:0.30356894 203:0.30356894 204:0.32146186 205:0.32146186 206:0.32146186 207:0.32146186 208:0.32146186 209:0.32146186 210:0.32146186 211:0.83928514 212:0.60710574 213:0.60710574 214:0.60710574 215:0.60710574 216:0.60710574 217:0.60710574 218:0.60710574 219:0.60710574 220:0.60710574 221:0.5833 222:0.5833 223:0.5667 224:0.55 225:0.5667 226:0.5667 227:0.5667 228:0.5667 229:0.5667 230:0.5667 231:0.5667 232:0.5667 233:0.3333 234:0.3333 235:0.3333 236:0.3167 237:0.3167 238:0.3167 239:0.3167 240:0.3167 241:0.3167 242:0.3 243:0.3 244:0.3 245:0.3 246:0.3 247:0.3 248:0.3 249:0.3 250:0.3 251:0.3 252:0.3 253:0.3 254:0.3 255:0.3 256:0.3 257:0.3 258:0.3333 259:0.35 260:0.3833 261:0.4333 262:0.4667 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:0.7833 280:0.7833 281:0.7833 282:0.7833 283:0.7833 284:0.7833 285:1 286:1 287:1 288:1 289:1 290:1 291:0.95 292:0.9 293:0.8667 294:0.8333 295:0.8333 296:0.8 297:0.8167 298:0.8 299:0.8 300:0.8 301:0.7833 302:0.7833 303:0.7833 304:0.7833 305:0.7833 306:0.7833 307:0.6333 308:0.5667 309:0.6 310:0.5667 311:0.6167 312:0.6 313:0.5667 314:0.55 315:0.4667 316:0.4667 317:0.45 318:0.45 319:0.45 320:0.4333 321:0.4333 322:0.4333 323:0.4167 324:0.4167 325:0.4167 326:0.4 327:0.4 328:0.4 329:0.4 330:0.3833 331:0.3833 332:0.3833 333:0.3833 334:0.3833 335:0.3667 336:0.3667 337:0.3667 338:0.3667 339:0.3667 340:0.3667 341:0.3667 342:0.3667 343:0.3667 344:0.3667 345:0.35 346:0.35 347:0.35 348:0.35 349:0.35 350:0.35 351:0.35 352:0.35 353:0.35 354:0.35 355:0.35 356:0.35 357:0.35 358:0.35 359:0.35 360:0.35 +-1.130700285543645 1:0.4 2:0.4 3:0.4 4:0.4 5:0.4 6:0.4 7:0.4 8:0.4 9:0.4 10:0.4167 11:0.4167 12:0.4167 13:0.4167 14:0.4333 15:0.4333 16:0.4333 17:0.4333 18:0.4333 19:0.4333 20:0.4333 21:0.4333 22:0.4333 23:0.4333 24:0.4333 25:0.4667 26:0.4667 27:0.4667 28:0.4667 29:0.4667 30:0.4833 31:0.4833 32:0.4833 33:0.4833 34:0.5 35:0.5 36:0.5 37:0.5167 38:0.5333 39:0.5333 40:0.55 41:0.5333 42:0.5833 43:0.5833 44:0.5833 45:0.6 46:0.6 47:0.65 48:0.65 49:0.6333 50:0.65 51:0.6667 52:0.6833 53:0.7167 54:0.7333 55:0.75 56:0.7667 57:0.8333 58:0.8333 59:0.8333 60:0.8667 61:0.8833 62:0.8833 63:0.9833 64:0.9833 65:1 66:1 67:1 68:1 69:1 70:1 71:1 72:1 73:1 74:1 75:1 76:1 77:1 78:1 79:1 80:1 81:1 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:1 107:1 108:1 109:1 110:1 111:1 112:1 113:1 114:1 115:0.8833 116:0.8667 117:0.85 118:0.8333 119:0.8333 120:0.8333 121:0.7833 122:0.7833 123:0.6833 124:0.6667 125:0.65 126:0.6333 127:0.6167 128:0.6167 129:0.6333 130:0.5667 131:0.5667 132:0.55 133:0.55 134:0.55 135:0.55 136:0.5167 137:0.5 138:0.5 139:0.4833 140:0.4833 141:0.4667 142:0.43863158 143:0.43863158 144:0.42105263 145:0.42105263 146:0.42105263 147:0.42105263 148:0.386 149:0.386 150:0.386 151:0.36842105 152:0.386 153:0.36842105 154:0.386 155:0.386 156:0.36842105 157:0.37503348 158:0.35714056 159:0.33924764 160:0.33924764 161:0.33924764 162:0.33924764 163:0.33924764 164:0.33924764 165:0.33924764 166:0.33924764 167:0.33924764 168:0.33924764 169:0.33924764 170:0.33924764 171:0.33924764 172:0.33924764 173:0.33924764 174:0.33924764 175:0.33924764 176:0.33924764 177:0.33924764 178:0.35714056 179:0.35714056 180:0.83928514 181:0.83928514 182:0.83928514 183:0.83928514 184:0.83928514 185:0.83928514 186:0.64289158 187:0.64289158 188:0.64289158 189:0.64289158 190:0.85717806 191:0.64289158 192:0.64289158 193:0.85717806 194:0.85717806 195:0.41071218 196:0.41071218 197:0.41071218 198:0.4286051 199:0.41071218 200:0.4286051 201:0.41071218 202:0.4286051 203:0.41071218 204:0.41071218 205:0.4286051 206:0.4286051 207:0.4999625 208:0.48217672 209:0.4999625 210:0.4999625 211:0.62499866 212:0.4999625 213:0.4999625 214:0.4999625 215:0.48217672 216:0.48217672 217:0.4642838 218:0.4642838 219:0.4642838 220:0.4642838 221:0.5 222:0.5 223:0.5 224:0.5 225:0.5 226:0.5167 227:0.5167 228:0.5167 229:0.5167 230:0.5167 231:0.5333 232:0.55 233:0.55 234:0.5667 235:0.5833 236:0.6 237:0.6167 238:0.75 239:0.75 240:0.7167 241:0.7167 242:0.7167 243:0.9167 244:1 245:1 246:0.85 247:0.85 248:0.85 249:0.85 250:0.85 251:0.85 252:1 253:1 254:1 255:1 256:1 257:1 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:1 287:0.9 288:0.9 289:0.9 290:0.9 291:0.9 292:0.9 293:0.9 294:0.9167 295:0.75 296:0.7333 297:0.7 298:0.7167 299:0.7167 300:0.7 301:0.6167 302:0.6 303:0.5833 304:0.5667 305:0.5667 306:0.5667 307:0.55 308:0.55 309:0.55 310:0.55 311:0.55 312:0.55 313:0.5333 314:0.5333 315:0.5333 316:0.5333 317:0.5333 318:0.4667 319:0.4667 320:0.4667 321:0.45 322:0.45 323:0.4333 324:0.4333 325:0.4333 326:0.4333 327:0.4167 328:0.4167 329:0.4167 330:0.4167 331:0.4167 332:0.4167 333:0.4167 334:0.4167 335:0.4167 336:0.4167 337:0.4 338:0.4 339:0.4 340:0.4 341:0.4 342:0.4 343:0.4 344:0.4 345:0.4 346:0.3833 347:0.3833 348:0.3833 349:0.3833 350:0.3833 351:0.3833 352:0.3833 353:0.3833 354:0.3833 355:0.3833 356:0.3833 357:0.3833 358:0.4 359:0.4 360:0.4 +-0.5977584850516793 1:0.45 2:0.45 3:0.45 4:0.45 5:0.45 6:0.45 7:0.45 8:0.45 9:0.45 10:0.45 11:0.45 12:0.45 13:0.45 14:0.45 15:0.45 16:0.45 17:0.4667 18:0.4667 19:0.4667 20:0.4667 21:0.4667 22:0.4667 23:0.4667 24:0.4833 25:0.4833 26:0.4833 27:0.4833 28:0.4833 29:0.5 30:0.5 31:0.5 32:0.5 33:0.5 34:0.5 35:0.5167 36:0.5167 37:0.55 38:0.5167 39:0.5667 40:0.55 41:0.5667 42:0.5667 43:0.5833 44:0.5833 45:0.6 46:0.6167 47:0.6167 48:0.6 49:0.6167 50:0.65 51:0.6667 52:0.65 53:0.6667 54:0.7 55:0.7 56:0.75 57:0.7667 58:0.7833 59:0.7667 60:0.8333 61:0.85 62:0.9333 63:0.9333 64:0.9333 65:0.9667 66:0.9667 67:1 68:1 69:1 70:1 71:1 72:1 73:1 74:1 75:1 76:1 77:1 78:1 79:1 80:1 81:1 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:0.8333 101:0.8333 102:0.8333 103:0.8333 104:0.8333 105:0.8333 106:0.8333 107:1 108:1 109:1 110:1 111:1 112:1 113:1 114:1 115:1 116:1 117:1 118:0.8833 119:0.7667 120:0.7667 121:0.75 122:0.7333 123:0.7167 124:0.7167 125:0.7167 126:0.7167 127:0.6667 128:0.6 129:0.6 130:0.6 131:0.6 132:0.5667 133:0.5667 134:0.5667 135:0.5667 136:0.5167 137:0.5167 138:0.5167 139:0.5167 140:0.5167 141:0.4667 142:0.43863158 143:0.43863158 144:0.43863158 145:0.43863158 146:0.42105263 147:0.40347368 148:0.40347368 149:0.40347368 150:0.40347368 151:0.386 152:0.386 153:0.386 154:0.386 155:0.386 156:0.36842105 157:0.35714056 158:0.35714056 159:0.35714056 160:0.35714056 161:0.35714056 162:0.35714056 163:0.35714056 164:0.35714056 165:0.35714056 166:0.35714056 167:0.35714056 168:0.35714056 169:0.35714056 170:0.35714056 171:1 172:0.85717806 173:0.4286051 174:0.4286051 175:0.4286051 176:0.4286051 177:0.4286051 178:0.4286051 179:0.4286051 180:0.41071218 181:0.41071218 182:0.41071218 183:0.41071218 184:0.41071218 185:0.39281926 186:0.39281926 187:0.39281926 188:0.39281926 189:0.39281926 190:0.39281926 191:0.39281926 192:0.39281926 193:0.39281926 194:0.35714056 195:0.35714056 196:0.35714056 197:0.33924764 198:0.35714056 199:0.35714056 200:0.35714056 201:0.35714056 202:0.35714056 203:0.35714056 204:0.35714056 205:0.35714056 206:0.35714056 207:0.35714056 208:0.35714056 209:0.35714056 210:0.35714056 211:0.35714056 212:0.39281926 213:0.39281926 214:0.39281926 215:0.39281926 216:0.39281926 217:0.39281926 218:0.48217672 219:0.48217672 220:0.48217672 221:0.5167 222:0.5333 223:0.5333 224:0.55 225:0.55 226:0.5667 227:0.5667 228:0.5833 229:0.5667 230:0.6 231:0.6 232:0.5667 233:0.6 234:0.5667 235:0.6167 236:0.6333 237:0.7 238:0.7167 239:0.7333 240:0.7167 241:0.7167 242:0.7167 243:0.7333 244:0.75 245:0.7833 246:0.8 247:0.8333 248:0.8667 249:0.9167 250:0.95 251:1 252:1 253:1 254:1 255:1 256:1 257:1 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:1 287:1 288:1 289:1 290:1 291:1 292:1 293:1 294:1 295:1 296:1 297:1 298:0.9333 299:0.9333 300:0.9333 301:0.9333 302:0.9333 303:0.95 304:0.75 305:0.7333 306:0.7333 307:0.7333 308:0.7167 309:0.6667 310:0.6333 311:0.6167 312:0.6167 313:0.6167 314:0.6167 315:0.6167 316:0.6 317:0.6 318:0.5833 319:0.5833 320:0.5667 321:0.5667 322:0.5667 323:0.5667 324:0.5667 325:0.5667 326:0.5667 327:0.5667 328:0.55 329:0.55 330:0.55 331:0.55 332:0.5 333:0.5 334:0.4833 335:0.4833 336:0.4833 337:0.4833 338:0.4833 339:0.4833 340:0.4833 341:0.4667 342:0.4667 343:0.4667 344:0.4667 345:0.4667 346:0.45 347:0.45 348:0.45 349:0.45 350:0.45 351:0.45 352:0.45 353:0.45 354:0.45 355:0.45 356:0.45 357:0.45 358:0.45 359:0.45 360:0.45 +-0.1733932787329221 1:0.4333 2:0.4333 3:0.4333 4:0.4333 5:0.4667 6:0.4833 7:0.4833 8:0.4833 9:0.4833 10:0.5 11:0.5 12:0.5 13:0.45 14:0.45 15:0.45 16:0.45 17:0.45 18:0.45 19:0.45 20:0.45 21:0.45 22:0.45 23:0.5 24:0.4833 25:0.5 26:0.4833 27:0.5 28:0.4833 29:0.5 30:0.5 31:0.5 32:0.5 33:0.5167 34:0.5167 35:0.5167 36:0.5333 37:0.5333 38:0.5333 39:0.55 40:0.55 41:0.5667 42:0.5667 43:0.5667 44:0.5833 45:0.5667 46:0.65 47:0.6667 48:0.6667 49:0.6667 50:0.6833 51:0.65 52:0.65 53:0.65 54:0.65 55:0.65 56:0.65 57:0.65 58:0.5333 59:0.5333 60:0.5333 61:0.5333 62:0.5333 63:0.5333 64:0.5167 65:0.5333 66:0.5333 67:0.5333 68:0.5333 69:0.9667 70:0.9667 71:0.9667 72:0.55 73:0.55 74:0.55 75:0.55 76:0.55 77:0.55 78:0.55 79:0.55 80:0.55 81:0.55 82:0.55 83:0.55 84:0.55 85:0.55 86:0.9167 87:0.9167 88:0.9167 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:1 107:1 108:1 109:1 110:1 111:1 112:1 113:1 114:1 115:1 116:1 117:0.4667 118:0.4667 119:0.45 120:0.4333 121:0.3833 122:0.3667 123:0.3667 124:0.35 125:0.35 126:0.3333 127:0.3333 128:0.3167 129:0.3167 130:0.3 131:0.3 132:0.3 133:0.2833 134:0.2833 135:0.25 136:0.25 137:0.25 138:0.25 139:0.25 140:0.2333 141:0.2333 142:0.19294737 143:0.19294737 144:0.19294737 145:0.17547368 146:0.17547368 147:0.17547368 148:0.17547368 149:0.17547368 150:0.17547368 151:0.17547368 152:0.17547368 153:0.17547368 154:0.19294737 155:0.17547368 156:0.17547368 157:0.160747 158:0.17853278 159:0.160747 160:0.160747 161:0.160747 162:0.160747 163:0.160747 164:0.160747 165:0.160747 166:0.160747 167:0.17853278 168:0.1964257 169:0.2321044 170:0.2321044 171:0.2321044 172:0.2321044 173:0.41071218 174:0.41071218 175:0.41071218 176:0.41071218 177:0.41071218 178:0.41071218 179:0.41071218 180:0.41071218 181:0.41071218 182:0.41071218 183:0.41071218 184:0.41071218 185:0.39281926 186:0.39281926 187:0.39281926 188:0.39281926 189:0.39281926 190:0.39281926 191:0.39281926 192:0.39281926 193:0.39281926 194:0.39281926 195:0.39281926 196:0.39281926 197:0.41071218 198:0.41071218 199:0.41071218 200:0.41071218 201:0.41071218 202:0.41071218 203:0.41071218 204:0.41071218 205:0.4286051 206:0.4286051 207:0.4286051 208:0.4286051 209:0.4286051 210:0.4286051 211:0.4286051 212:0.4286051 213:0.4286051 214:0.44639088 215:0.44639088 216:0.44639088 217:0.4642838 218:0.4642838 219:0.4642838 220:0.48217672 221:0.5167 222:0.5333 223:0.5333 224:0.5333 225:0.55 226:0.5333 227:0.55 228:0.55 229:0.5667 230:0.5833 231:0.5833 232:0.6 233:0.6667 234:0.6667 235:0.6667 236:0.6833 237:0.6667 238:0.6833 239:0.6833 240:0.7 241:0.7167 242:0.7167 243:0.7333 244:0.75 245:0.7833 246:0.8 247:0.8167 248:0.8333 249:0.8667 250:0.9 251:0.95 252:0.9333 253:0.9333 254:0.9333 255:0.9333 256:0.9333 257:0.95 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:1 287:1 288:1 289:1 290:1 291:1 292:0.95 293:0.9167 294:0.8667 295:0.8333 296:0.8 297:0.7833 298:0.75 299:0.7333 300:0.7167 301:0.6833 302:0.6667 303:0.6667 304:0.6667 305:0.65 306:0.6333 307:0.6333 308:0.5667 309:0.55 310:0.55 311:0.55 312:0.55 313:0.55 314:0.55 315:0.55 316:0.4833 317:0.4833 318:0.4667 319:0.4667 320:0.4667 321:0.45 322:0.45 323:0.4333 324:0.4333 325:0.4333 326:0.4333 327:0.4167 328:0.4167 329:0.4167 330:0.4167 331:0.4 332:0.4 333:0.4 334:0.4 335:0.4 336:0.4 337:0.4 338:0.4 339:0.3833 340:0.3833 341:0.3833 342:0.3833 343:0.3833 344:0.3833 345:0.3667 346:0.3667 347:0.3667 348:0.3667 349:0.3667 350:0.3667 351:0.3667 352:0.3667 353:0.3667 354:0.3667 355:0.3667 356:0.3667 357:0.3667 358:0.3667 359:0.3667 360:0.4333 +-0.3516405260248972 1:0.3 2:0.3 3:0.3 4:0.3 5:0.3 6:0.3 7:0.3 8:0.3 9:0.3 10:0.3 11:0.3 12:0.3 13:0.3 14:0.3 15:0.3 16:0.3 17:0.3 18:0.3 19:0.3 20:0.3 21:0.3 22:0.3167 23:0.3167 24:0.3167 25:0.3167 26:0.3167 27:0.3167 28:0.3167 29:0.3167 30:0.3333 31:0.3333 32:0.3 33:0.3 34:0.3 35:0.2833 36:0.2833 37:0.2667 38:0.2833 39:0.2833 40:0.2833 41:0.2833 42:0.2667 43:0.2833 44:0.2833 45:0.2667 46:0.2833 47:0.2667 48:0.2833 49:0.2833 50:0.2667 51:0.2833 52:0.2833 53:0.2833 54:0.2833 55:0.2667 56:0.3 57:0.9667 58:1 59:1 60:0.6 61:0.4833 62:0.4833 63:0.4833 64:0.4833 65:0.4833 66:0.4833 67:0.4833 68:0.4167 69:0.4167 70:0.4167 71:0.4167 72:0.4167 73:0.4167 74:0.4167 75:0.4167 76:0.4167 77:0.4167 78:0.4167 79:0.4167 80:0.4167 81:0.4167 82:0.4167 83:0.4167 84:0.4167 85:0.4167 86:0.4333 87:0.4333 88:0.4333 89:0.4333 90:0.4333 91:0.4333 92:0.4333 93:0.4333 94:0.4333 95:0.4333 96:0.4333 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:1 107:1 108:0.9 109:0.9 110:0.9 111:0.9 112:0.9 113:0.9 114:0.9167 115:0.8833 116:0.85 117:0.8167 118:0.7833 119:0.7667 120:0.7333 121:0.7167 122:0.7 123:0.6833 124:0.6667 125:0.65 126:0.6333 127:0.6167 128:0.6 129:0.5833 130:0.5667 131:0.5667 132:0.55 133:0.5333 134:0.5333 135:0.5167 136:0.5167 137:0.5 138:0.5 139:0.4833 140:0.4833 141:0.4833 142:0.45610526 143:0.45610526 144:0.45610526 145:0.43863158 146:0.43863158 147:0.40347368 148:0.40347368 149:0.40347368 150:0.40347368 151:0.386 152:0.386 153:0.386 154:0.386 155:0.386 156:0.36842105 157:0.35714056 158:0.35714056 159:0.35714056 160:0.35714056 161:0.35714056 162:0.35714056 163:0.35714056 164:0.35714056 165:0.35714056 166:0.35714056 167:0.35714056 168:0.33924764 169:0.33924764 170:0.33924764 171:0.33924764 172:0.33924764 173:0.33924764 174:0.33924764 175:0.33924764 176:0.33924764 177:0.24999732 178:0.24999732 179:0.24999732 180:0.24999732 181:0.24999732 182:0.24999732 183:0.24999732 184:0.24999732 185:0.24999732 186:0.24999732 187:0.24999732 188:0.24999732 189:0.24999732 190:0.24999732 191:0.24999732 192:0.24999732 193:0.24999732 194:0.24999732 195:0.24999732 196:0.24999732 197:0.24999732 198:0.24999732 199:0.24999732 200:0.24999732 201:0.37503348 202:0.37503348 203:0.37503348 204:0.37503348 205:0.37503348 206:0.39281926 207:0.39281926 208:0.39281926 209:0.39281926 210:0.39281926 211:0.41071218 212:0.41071218 213:0.41071218 214:0.41071218 215:0.4286051 216:0.41071218 217:0.41071218 218:0.41071218 219:0.41071218 220:0.41071218 221:0.45 222:0.45 223:0.45 224:0.45 225:0.45 226:0.4333 227:0.45 228:0.45 229:0.5667 230:0.5833 231:0.5833 232:0.6 233:0.6167 234:0.6333 235:0.6333 236:0.6833 237:0.7 238:0.7167 239:0.7333 240:0.7667 241:0.7833 242:0.8 243:0.8667 244:0.8667 245:0.9 246:0.9333 247:1 248:1 249:1 250:1 251:1 252:1 253:1 254:1 255:1 256:1 257:1 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:0.4667 273:0.4667 274:0.4667 275:0.4 276:0.4 277:0.4 278:0.4 279:0.4 280:0.4 281:0.4 282:0.4 283:0.4 284:0.4 285:0.4 286:0.4 287:0.4 288:0.4167 289:0.4167 290:0.9167 291:0.9167 292:0.9167 293:0.9167 294:1 295:1 296:1 297:1 298:1 299:1 300:1 301:1 302:1 303:1 304:1 305:1 306:1 307:1 308:1 309:1 310:1 311:1 312:1 313:1 314:1 315:1 316:1 317:0.3833 318:0.3833 319:0.3833 320:0.3667 321:0.3667 322:0.3667 323:0.35 324:0.35 325:0.35 326:0.35 327:0.3333 328:0.3333 329:0.3333 330:0.3333 331:0.3333 332:0.3333 333:0.3167 334:0.3167 335:0.3167 336:0.3167 337:0.3167 338:0.3167 339:0.3167 340:0.3167 341:0.3 342:0.3 343:0.3 344:0.3 345:0.3 346:0.3 347:0.3 348:0.3 349:0.3 350:0.3 351:0.3 352:0.3 353:0.3 354:0.3 355:0.3 356:0.3 357:0.3 358:0.3 359:0.3 360:0.3 +-0.7970714984249795 1:0.35 2:0.35 3:0.35 4:0.35 5:0.35 6:0.35 7:0.35 8:0.35 9:0.35 10:0.35 11:0.35 12:0.35 13:0.35 14:0.35 15:0.35 16:0.35 17:0.35 18:0.35 19:0.35 20:0.3667 21:0.3667 22:0.3667 23:0.3667 24:0.3667 25:0.3667 26:0.3667 27:0.3667 28:0.3833 29:0.3833 30:0.3833 31:0.3833 32:0.3833 33:0.4 34:0.4 35:0.4 36:0.4 37:0.4167 38:0.4167 39:0.4167 40:0.4333 41:0.4333 42:0.4333 43:0.45 44:0.45 45:0.45 46:0.4667 47:0.4667 48:0.4833 49:0.4833 50:0.5 51:0.5167 52:0.5167 53:0.5333 54:0.55 55:0.55 56:0.5667 57:0.6167 58:0.6167 59:0.6167 60:0.6667 61:0.65 62:0.6667 63:0.7 64:0.75 65:0.7333 66:0.7833 67:0.8 68:0.8167 69:0.8833 70:0.8833 71:0.9667 72:0.9667 73:1 74:1 75:1 76:1 77:1 78:1 79:1 80:1 81:1 82:1 83:0.15 84:0.15 85:0.15 86:0.15 87:0.15 88:0.15 89:0.15 90:0.15 91:0.15 92:0.15 93:0.15 94:0.15 95:0.15 96:0.15 97:0.15 98:0.15 99:0.15 100:0.15 101:0.15 102:0.15 103:0.15 104:0.15 105:0.15 106:0.15 107:0.15 108:0.15 109:0.15 110:0.15 111:0.15 112:0.15 113:0.15 114:0.15 115:0.15 116:0.15 117:0.15 118:0.15 119:0.15 120:0.15 121:0.15 122:0.15 123:0.15 124:0.1667 125:0.1667 126:0.1667 127:0.1667 128:0.1667 129:0.1667 130:0.1667 131:0.1667 132:0.1667 133:0.1667 134:0.45 135:0.45 136:0.4333 137:0.4333 138:0.4333 139:0.4167 140:0.4167 141:0.4167 142:0.36842105 143:0.36842105 144:0.36842105 145:0.35084211 146:0.35084211 147:0.35084211 148:0.35084211 149:0.33336842 150:0.33336842 151:0.33336842 152:0.33336842 153:0.33336842 154:0.31578947 155:0.31578947 156:0.31578947 157:0.30356894 158:0.30356894 159:0.30356894 160:0.30356894 161:0.30356894 162:0.28567602 163:0.28567602 164:0.28567602 165:0.28567602 166:0.28567602 167:0.28567602 168:0.28567602 169:0.28567602 170:0.28567602 171:0.28567602 172:0.28567602 173:0.28567602 174:0.28567602 175:0.28567602 176:0.28567602 177:0.28567602 178:0.28567602 179:0.28567602 180:0.28567602 181:0.28567602 182:0.28567602 183:0.28567602 184:0.28567602 185:0.28567602 186:0.28567602 187:0.28567602 188:0.28567602 189:0.28567602 190:0.28567602 191:0.28567602 192:0.28567602 193:0.28567602 194:0.28567602 195:0.28567602 196:0.28567602 197:0.28567602 198:0.28567602 199:0.28567602 200:0.28567602 201:0.30356894 202:0.30356894 203:0.30356894 204:0.30356894 205:0.30356894 206:0.30356894 207:0.30356894 208:0.30356894 209:0.32146186 210:0.32146186 211:0.32146186 212:0.32146186 213:0.32146186 214:0.33924764 215:0.33924764 216:0.33924764 217:0.33924764 218:0.35714056 219:0.35714056 220:0.35714056 221:0.4167 222:0.4167 223:0.4167 224:0.4333 225:0.4333 226:0.4333 227:0.45 228:0.45 229:0.4667 230:0.4667 231:0.4833 232:0.5 233:0.5 234:0.5167 235:0.5333 236:0.5333 237:0.55 238:0.5667 239:0.5833 240:0.6 241:0.6167 242:0.6333 243:0.65 244:0.6833 245:0.7 246:0.7333 247:0.75 248:0.7833 249:0.8167 250:0.85 251:0.9 252:0.95 253:1 254:1 255:1 256:1 257:1 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:1 287:1 288:1 289:1 290:1 291:0.95 292:0.9 293:0.8667 294:0.8333 295:0.8 296:0.7667 297:0.7333 298:0.7167 299:0.7 300:0.6667 301:0.65 302:0.6333 303:0.6167 304:0.6 305:0.5833 306:0.5667 307:0.55 308:0.55 309:0.5333 310:0.5333 311:0.5333 312:0.5333 313:0.4833 314:0.4833 315:0.4667 316:0.4667 317:0.45 318:0.45 319:0.45 320:0.4333 321:0.4333 322:0.4333 323:0.4167 324:0.4167 325:0.4167 326:0.4 327:0.4 328:0.4 329:0.4 330:0.3833 331:0.3833 332:0.3833 333:0.3833 334:0.3833 335:0.3667 336:0.3667 337:0.3667 338:0.3667 339:0.3667 340:0.3667 341:0.3667 342:0.3667 343:0.35 344:0.35 345:0.35 346:0.35 347:0.35 348:0.35 349:0.35 350:0.35 351:0.35 352:0.35 353:0.35 354:0.35 355:0.35 356:0.35 357:0.35 358:0.35 359:0.35 360:0.35 +-0.6987935041815414 1:0.45 2:0.45 3:0.45 4:0.45 5:0.45 6:0.45 7:0.45 8:0.45 9:0.45 10:0.45 11:0.4833 12:0.4833 13:0.4833 14:0.4833 15:0.4667 16:0.4667 17:0.4667 18:0.4833 19:0.4667 20:0.4833 21:0.4667 22:0.4667 23:0.4667 24:0.4833 25:0.4833 26:0.4833 27:0.4833 28:0.4833 29:0.5 30:0.5 31:0.5333 32:0.5333 33:0.55 34:0.5333 35:0.5333 36:0.5333 37:0.5333 38:0.5333 39:0.55 40:0.55 41:0.6 42:0.6 43:0.6 44:0.6167 45:1 46:1 47:0.45 48:0.45 49:1 50:0.45 51:0.5 52:0.45 53:0.4833 54:0.45 55:0.45 56:0.4 57:0.4 58:0.4 59:0.4 60:0.4 61:0.4 62:0.4 63:0.4 64:0.4 65:0.4 66:0.4 67:0.4 68:0.4 69:0.4167 70:0.4333 71:0.4667 72:0.5333 73:0.5333 74:0.5333 75:0.5333 76:0.55 77:0.5833 78:0.9333 79:0.9333 80:0.9333 81:0.7333 82:0.7333 83:0.7333 84:0.7333 85:0.7333 86:0.7333 87:0.7333 88:0.7333 89:0.7333 90:0.7333 91:0.7333 92:0.85 93:0.85 94:0.85 95:0.85 96:0.85 97:0.85 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:1 107:1 108:1 109:1 110:1 111:1 112:1 113:1 114:1 115:1 116:1 117:1 118:1 119:0.9 120:0.8833 121:0.8167 122:0.8167 123:0.7667 124:0.75 125:0.7333 126:0.7167 127:0.7 128:0.6833 129:0.6667 130:0.65 131:0.6333 132:0.6333 133:0.6167 134:0.6 135:0.6 136:0.5833 137:0.5667 138:0.5667 139:0.55 140:0.55 141:0.5333 142:0.50873684 143:0.50873684 144:0.49126316 145:0.49126316 146:0.47368421 147:0.47368421 148:0.47368421 149:0.45610526 150:0.45610526 151:0.45610526 152:0.45610526 153:0.42105263 154:0.42105263 155:0.42105263 156:0.42105263 157:0.41071218 158:0.41071218 159:0.41071218 160:0.41071218 161:0.41071218 162:0.41071218 163:0.41071218 164:0.41071218 165:0.39281926 166:0.39281926 167:0.39281926 168:0.39281926 169:0.39281926 170:0.39281926 171:0.39281926 172:0.39281926 173:0.39281926 174:0.39281926 175:0.39281926 176:0.39281926 177:0.39281926 178:0.39281926 179:0.39281926 180:0.39281926 181:0.39281926 182:0.39281926 183:0.39281926 184:0.39281926 185:0.39281926 186:0.39281926 187:0.39281926 188:0.39281926 189:0.39281926 190:0.39281926 191:0.39281926 192:0.39281926 193:0.39281926 194:0.39281926 195:0.39281926 196:0.39281926 197:0.39281926 198:0.41071218 199:0.41071218 200:0.41071218 201:0.41071218 202:0.41071218 203:0.41071218 204:0.41071218 205:0.4286051 206:0.4286051 207:0.4286051 208:0.4286051 209:0.4286051 210:0.44639088 211:0.44639088 212:0.44639088 213:0.44639088 214:0.4642838 215:0.4642838 216:0.4642838 217:0.48217672 218:0.48217672 219:0.4999625 220:0.4999625 221:0.5333 222:0.55 223:0.55 224:0.5667 225:0.5667 226:0.5833 227:0.6 228:0.6 229:0.6167 230:0.6333 231:0.6333 232:0.65 233:0.6667 234:0.6833 235:0.7 236:0.7167 237:0.7333 238:0.75 239:0.7667 240:0.8 241:0.8167 242:0.85 243:0.8667 244:0.9 245:1 246:1 247:1 248:1 249:1 250:1 251:1 252:1 253:1 254:1 255:1 256:1 257:1 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:0.8833 283:0.7167 284:0.7167 285:0.7167 286:0.7167 287:0.5833 288:0.5833 289:0.5833 290:0.5833 291:0.5833 292:0.5833 293:0.5833 294:0.5833 295:0.5833 296:0.6167 297:0.6167 298:0.6167 299:0.6167 300:0.6167 301:0.6333 302:0.6167 303:0.65 304:0.65 305:0.65 306:0.65 307:0.65 308:0.65 309:0.65 310:0.5667 311:0.5667 312:0.55 313:0.5333 314:0.5333 315:0.5167 316:0.5167 317:0.5 318:0.5 319:0.4833 320:0.4833 321:0.4833 322:0.4833 323:0.4833 324:0.4833 325:0.4833 326:0.4833 327:0.4833 328:0.4833 329:0.4833 330:0.5 331:0.5 332:0.5 333:0.5 334:0.5 335:0.5 336:0.5 337:0.5 338:0.5 339:0.4667 340:0.4667 341:0.4667 342:0.4667 343:0.4667 344:0.4667 345:0.4667 346:0.4667 347:0.4667 348:0.4667 349:0.4667 350:0.4667 351:0.4667 352:0.4667 353:0.4667 354:0.4667 355:0.4667 356:0.4667 357:0.4667 358:0.4667 359:0.4667 360:0.45 +-0.1302920249306628 1:0.35 2:0.35 3:0.35 4:0.35 5:0.35 6:0.35 7:0.35 8:0.35 9:0.35 10:0.35 11:0.35 12:0.35 13:0.35 14:0.35 15:0.35 16:0.35 17:0.35 18:0.35 19:0.35 20:0.3667 21:0.3667 22:0.3667 23:0.3667 24:0.3667 25:0.3667 26:0.3667 27:0.3667 28:0.3833 29:0.3833 30:0.3833 31:0.3833 32:0.3833 33:0.4 34:0.4 35:0.4 36:0.4 37:0.4167 38:0.4167 39:0.4167 40:0.4333 41:0.4333 42:0.4333 43:0.45 44:0.45 45:0.45 46:0.4667 47:0.4667 48:0.5 49:0.5 50:0.5 51:0.5167 52:0.5333 53:0.5333 54:0.5833 55:0.5833 56:0.6 57:0.5833 58:0.7 59:0.7 60:0.7 61:0.7167 62:0.7333 63:0.7667 64:0.7833 65:0.8667 66:0.8667 67:0.8667 68:0.8667 69:0.9167 70:1 71:1 72:1 73:1 74:1 75:1 76:1 77:1 78:1 79:1 80:1 81:1 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:0.5333 100:0.5333 101:0.5333 102:0.5333 103:0.5333 104:0.5333 105:0.5333 106:0.5333 107:0.5333 108:1 109:1 110:1 111:1 112:1 113:1 114:0.75 115:0.75 116:0.7333 117:0.7 118:0.6833 119:0.65 120:0.6333 121:0.6167 122:0.6167 123:0.6167 124:0.6 125:0.5833 126:0.5667 127:0.55 128:0.55 129:0.55 130:0.5167 131:0.5167 132:0.5 133:0.4833 134:0.4833 135:0.4667 136:0.4667 137:0.45 138:0.45 139:0.45 140:0.4333 141:0.4333 142:0.40347368 143:0.386 144:0.386 145:0.386 146:0.36842105 147:0.36842105 148:0.36842105 149:0.36842105 150:0.35084211 151:0.35084211 152:0.35084211 153:0.35084211 154:0.35084211 155:0.33336842 156:0.33336842 157:0.32146186 158:0.32146186 159:0.32146186 160:0.32146186 161:0.32146186 162:0.32146186 163:0.30356894 164:0.30356894 165:0.30356894 166:0.30356894 167:0.30356894 168:0.30356894 169:0.30356894 170:0.30356894 171:0.30356894 172:0.30356894 173:0.30356894 174:0.30356894 175:0.30356894 176:0.30356894 177:0.30356894 178:0.30356894 179:0.30356894 180:0.30356894 181:0.30356894 182:0.30356894 183:0.30356894 184:0.30356894 185:0.30356894 186:0.30356894 187:0.30356894 188:0.30356894 189:0.30356894 190:0.30356894 191:0.30356894 192:0.30356894 193:0.30356894 194:0.30356894 195:0.30356894 196:0.30356894 197:0.30356894 198:0.30356894 199:0.30356894 200:0.32146186 201:0.32146186 202:0.32146186 203:0.32146186 204:0.32146186 205:0.32146186 206:0.32146186 207:0.32146186 208:0.33924764 209:0.33924764 210:0.33924764 211:0.33924764 212:0.33924764 213:0.35714056 214:0.35714056 215:0.35714056 216:0.35714056 217:0.37503348 218:0.37503348 219:0.37503348 220:0.39281926 221:0.45 222:0.45 223:0.45 224:0.45 225:0.45 226:0.4667 227:0.4667 228:0.4833 229:0.4833 230:0.5 231:0.5167 232:0.5167 233:0.5333 234:0.55 235:0.55 236:0.5667 237:0.5833 238:0.6 239:0.6167 240:0.6333 241:0.65 242:0.6667 243:0.7 244:0.7167 245:0.7333 246:0.7667 247:0.8 248:0.8333 249:0.8667 250:0.9 251:0.95 252:1 253:1 254:1 255:1 256:1 257:1 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:1 285:1 286:1 287:1 288:1 289:0.5667 290:0.5333 291:0.5167 292:0.4833 293:0.4667 294:0.45 295:0.4333 296:0.4167 297:0.4 298:0.4 299:0.4 300:0.3833 301:0.3833 302:0.3667 303:0.3667 304:0.35 305:0.35 306:0.3333 307:0.3333 308:0.3167 309:0.2833 310:0.2833 311:0.2833 312:0.2833 313:0.2833 314:0.3 315:0.2833 316:0.2833 317:0.2833 318:0.3 319:0.2833 320:0.2833 321:0.2833 322:0.2833 323:0.2833 324:0.3 325:0.3 326:0.3 327:0.9667 328:0.9667 329:0.9667 330:0.9833 331:0.95 332:0.95 333:0.95 334:0.95 335:0.8167 336:0.8167 337:0.8167 338:0.8167 339:0.8167 340:0.8167 341:0.4333 342:0.4333 343:0.4333 344:0.4333 345:0.4333 346:0.4333 347:0.4333 348:0.4333 349:0.4333 350:0.4333 351:0.4333 352:0.9167 353:0.9167 354:1 355:0.35 356:0.35 357:0.35 358:0.35 359:0.35 360:0.35 +-1.407225774852224 1:0.25 2:0.25 3:0.25 4:0.25 5:0.25 6:0.25 7:0.25 8:0.25 9:0.25 10:0.25 11:0.25 12:0.25 13:0.25 14:0.25 15:0.25 16:0.25 17:0.25 18:0.25 19:0.25 20:0.25 21:0.25 22:0.25 23:0.25 24:0.25 25:0.2667 26:0.2667 27:0.2667 28:0.2667 29:0.2667 30:0.2667 31:0.2833 32:0.2833 33:0.2833 34:0.2833 35:0.2833 36:0.3 37:0.3333 38:0.3333 39:0.3333 40:0.3333 41:0.3333 42:0.3333 43:0.4333 44:0.4333 45:0.4333 46:0.4333 47:0.5333 48:0.5333 49:0.5333 50:0.5667 51:0.5167 52:0.55 53:0.5333 54:0.5333 55:0.55 56:0.55 57:0.55 58:0.55 59:0.55 60:0.5667 61:0.5667 62:0.6 63:0.6 64:0.6 65:0.8167 66:0.03333 67:0.03333 68:0.03333 69:0.03333 70:0.03333 71:0.03333 72:0.05 73:0.05 74:0.05 75:0.05 76:0.05 77:0.05 78:0.05 79:0.05 80:0.05 81:0.05 82:0.05 83:0.05 84:0.05 85:0.05 86:0.05 87:0.05 88:0.05 89:0.05 90:0.05 91:0.05 92:0.05 93:0.05 94:0.05 95:0.05 96:0.05 97:0.05 98:0.05 99:0.05 100:0.05 101:0.05 102:0.05 103:0.05 104:0.05 105:0.05 106:0.05 107:0.05 108:0.05 109:0.05 110:0.05 111:0.05 112:0.05 113:0.05 114:0.05 115:0.05 116:0.05 117:0.05 118:0.05 119:0.05 120:0.05 121:0.05 122:0.05 123:0.05 124:0.05 125:0.05 126:0.05 127:0.05 128:0.05 129:0.05 130:0.05 131:0.05 132:0.05 133:0.03333 134:0.03333 135:0.03333 136:0.03333 137:0.03333 138:0.03333 139:0.05 140:0.05 141:0.05 152:0.087684211 153:0.087684211 154:0.087684211 155:0.087684211 156:0.087684211 157:0.071389541 158:0.071389541 159:0.071389541 160:0.071389541 161:0.071389541 162:0.071389541 163:0.071389541 164:0.071389541 165:0.071389541 166:0.071389541 167:0.071389541 168:0.071389541 169:0.071389541 170:0.071389541 171:0.071389541 172:0.17853278 173:0.17853278 174:0.17853278 175:0.17853278 176:0.17853278 177:0.17853278 178:0.17853278 179:0.17853278 180:0.17853278 181:0.17853278 182:0.17853278 183:0.17853278 184:0.17853278 185:0.17853278 186:0.17853278 187:0.17853278 188:0.17853278 189:0.17853278 190:0.17853278 191:0.17853278 192:0.17853278 193:0.17853278 194:0.17853278 195:0.1964257 196:0.1964257 197:0.1964257 198:0.1964257 199:0.1964257 200:0.1964257 201:0.1964257 202:0.1964257 203:0.1964257 204:0.17853278 205:0.17853278 206:0.17853278 207:0.10717538 208:0.10717538 209:0.10717538 210:0.10717538 211:0.10717538 212:0.10717538 213:0.10717538 214:0.10717538 215:0.10717538 216:0.12496116 217:0.12496116 218:0.10717538 219:0.10717538 220:0.10717538 221:0.1833 222:0.1833 223:0.1667 224:0.1667 225:0.1667 226:0.1833 227:0.1667 228:0.1667 229:0.1667 230:0.1667 231:0.1667 232:0.1833 233:0.1833 234:0.1833 235:0.2167 236:0.2167 237:0.2333 238:0.2333 239:0.2333 240:0.2333 241:0.2333 242:0.2333 243:0.2333 244:0.2333 245:0.4333 246:0.5167 247:0.5167 248:0.5167 249:0.5167 250:0.5167 251:0.5167 252:0.5167 253:0.5167 254:0.5333 255:0.5667 256:0.5667 257:0.5667 258:0.55 259:0.5667 260:0.55 261:0.5667 262:0.5667 263:0.55 264:0.55 265:0.55 266:0.6167 267:0.6167 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:1 282:1 283:1 284:0.9667 285:0.85 286:0.8 287:0.75 288:0.7167 289:0.7 290:0.6833 291:0.65 292:0.6333 293:0.6 294:0.6167 295:0.6167 296:0.6 297:0.4833 298:0.4833 299:0.4833 300:0.4667 301:0.45 302:0.4 303:0.4 304:0.3833 305:0.3667 306:0.3667 307:0.35 308:0.35 309:0.3333 310:0.3333 311:0.3333 312:0.3167 313:0.3167 314:0.3167 315:0.3 316:0.3 317:0.3 318:0.2833 319:0.2833 320:0.2833 321:0.2833 322:0.2833 323:0.2667 324:0.2667 325:0.2833 326:0.2833 327:0.2667 328:0.2833 329:0.2833 330:0.2667 331:0.25 332:0.25 333:0.25 334:0.25 335:0.25 336:0.25 337:0.25 338:0.25 339:0.25 340:0.25 341:0.25 342:0.25 343:0.25 344:0.25 345:0.25 346:0.25 347:0.25 348:0.25 349:0.25 350:0.25 351:0.25 352:0.25 353:0.25 354:0.25 355:0.25 356:0.25 357:0.25 358:0.25 359:0.25 360:0.25 +-0.7629019586111927 1:0.3667 2:0.3667 3:0.3667 4:0.3667 5:0.3667 6:0.3667 7:0.3667 8:0.3667 9:0.3667 10:0.3667 11:0.3667 12:0.3667 13:0.3667 14:0.3667 15:0.3667 16:0.3667 17:0.3667 18:0.3667 19:0.35 20:0.3333 21:0.3333 22:0.3333 23:0.3333 24:0.3333 25:0.3333 26:0.3333 27:0.3333 28:0.3333 29:0.3333 30:0.3333 31:0.3333 32:0.3333 33:0.3333 34:0.3333 35:0.3333 36:0.35 37:0.35 38:0.35 39:0.35 40:0.3833 41:0.3833 42:0.4 43:0.4 44:0.4 45:0.4167 46:0.4167 47:0.4333 48:0.4333 49:0.4333 50:0.5333 51:0.5333 52:0.5333 53:0.5333 54:0.6 55:0.6167 56:0.6333 57:0.4833 58:0.4833 59:0.4833 60:0.4833 61:0.4833 62:0.4833 63:0.4833 64:0.4833 65:0.4833 66:0.7 67:0.7 68:0.4333 69:0.4333 70:0.4333 71:0.4333 72:0.4333 73:0.4333 74:0.4333 75:0.4333 76:0.4333 77:0.4333 78:0.4333 79:0.4333 80:0.4833 81:0.4833 82:0.4833 83:0.65 84:0.65 85:0.7333 86:0.9833 87:0.9833 88:0.9833 89:0.9833 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:1 107:0.85 108:0.7667 109:0.7667 110:0.7667 111:0.7667 112:0.7667 113:0.7667 114:0.7667 115:0.7667 116:0.7667 117:0.7667 118:0.7167 119:0.7167 120:0.7 121:0.7167 122:0.7167 123:0.7167 124:0.7 125:0.7167 126:0.7167 127:0.7167 128:0.7167 129:1 130:1 131:1 132:1 133:0.5333 134:0.5333 135:0.5333 136:0.5333 137:0.5333 138:0.5333 139:0.5333 140:0.5333 141:0.5333 142:0.52631579 143:0.77189474 144:0.77189474 145:0.77189474 146:0.71926316 147:0.70178947 148:0.71926316 149:0.71926316 150:0.70178947 151:0.70178947 152:0.68421053 153:0.386 154:0.386 155:0.386 156:0.36842105 157:0.37503348 158:0.37503348 159:0.37503348 160:0.37503348 161:0.37503348 162:0.37503348 163:0.37503348 164:0.37503348 165:0.37503348 166:0.37503348 167:0.55353412 168:0.55353412 169:0.55353412 170:0.55353412 171:0.58931996 172:0.58931996 173:0.58931996 174:0.55353412 175:0.55353412 176:0.51785542 177:0.51785542 178:0.51785542 179:0.51785542 180:0.51785542 181:0.51785542 182:0.51785542 183:0.32146186 184:0.32146186 185:0.32146186 186:0.32146186 187:0.32146186 188:0.32146186 189:0.32146186 190:0.32146186 191:0.32146186 192:0.32146186 193:0.32146186 194:0.32146186 195:0.33924764 196:0.33924764 197:0.33924764 198:0.33924764 199:0.48217672 200:0.4999625 201:0.4999625 202:0.57142704 203:0.57142704 204:0.57142704 205:0.57142704 206:0.57142704 207:0.51785542 208:0.51785542 209:0.51785542 210:0.4286051 211:0.4286051 212:0.4286051 213:0.4286051 214:0.4286051 215:0.4286051 216:0.4286051 217:0.4286051 218:0.4286051 219:0.4286051 220:0.4286051 221:0.4667 222:0.7667 223:0.7833 224:0.7833 225:0.7667 226:0.7667 227:0.7833 228:0.6167 229:0.6167 230:0.6 231:0.6167 232:0.6167 233:0.6 234:0.6167 235:0.6167 236:0.65 237:0.6333 238:0.6333 239:0.65 240:0.6667 241:0.6667 242:0.6667 243:0.6667 244:0.6667 245:0.6667 246:0.6833 247:0.75 248:0.7833 249:0.7833 250:0.7833 251:0.7833 252:0.7833 253:0.7833 254:0.8167 255:1 256:1 257:1 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:1 278:1 279:1 280:1 281:0.9 282:0.9 283:0.9 284:0.9 285:0.9 286:0.9 287:0.9 288:0.95 289:0.95 290:0.95 291:0.95 292:0.3 293:0.2833 294:0.2833 295:0.2667 296:0.25 297:0.25 298:0.2333 299:0.2333 300:0.2167 301:0.1833 302:0.1833 303:0.1833 304:0.1833 305:0.1833 306:0.1833 307:0.1833 308:0.1833 309:0.1833 310:0.1833 311:0.1833 312:0.1833 313:0.1833 314:0.1833 315:0.1833 316:0.1833 317:0.1833 318:0.1833 319:0.1833 320:0.1833 321:0.1833 322:0.1833 323:0.1833 324:0.1833 325:0.1833 326:0.1833 327:0.2667 328:0.2667 329:0.2667 330:0.2667 331:0.2667 332:0.2667 333:0.2667 334:0.2667 335:0.2833 336:0.2667 337:0.2667 338:0.3 339:0.3 340:0.3 341:0.3 342:0.3 343:0.3 344:0.3167 345:0.3333 346:0.3333 347:0.3333 348:0.3333 349:0.3333 350:0.3333 351:0.3333 352:0.35 353:0.35 354:0.35 355:0.35 356:0.35 357:0.35 358:0.3667 359:0.3667 360:0.3667 +-1.703244380358791 1:0.2667 2:0.2667 3:0.2667 4:0.2667 5:0.2667 6:0.2667 7:0.2667 8:0.2667 9:0.2667 10:0.2667 11:0.2667 12:0.2667 13:0.2667 14:0.2667 15:0.2667 16:0.2667 17:0.2667 18:0.2667 19:0.2667 20:0.2833 21:0.2833 22:0.5833 23:0.2667 24:0.2833 25:0.2667 26:0.25 27:0.25 28:0.25 29:0.25 30:0.25 31:0.25 32:0.25 33:0.2333 34:0.25 35:0.25 36:0.1833 37:0.1833 38:0.2 39:0.2 40:0.2 41:0.2 42:0.2 43:0.2 44:0.2 45:0.2 46:0.2 47:0.2 48:0.2 49:0.2 50:0.2 51:0.2 52:0.2 53:0.2 54:0.2 55:0.1833 56:0.1833 57:0.2 58:0.2 59:0.2 60:0.2167 61:0.2167 62:0.2167 63:0.2333 64:0.2333 65:0.25 66:0.25 67:0.35 68:0.35 69:0.35 70:0.35 71:0.3667 72:0.3833 73:0.4 74:0.4833 75:0.5333 76:0.6 77:0.6 78:0.95 79:1 80:1 81:1 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:0.95 107:0.9667 108:0.7667 109:0.7667 110:0.75 111:0.7167 112:0.6667 113:0.65 114:0.6333 115:0.6 116:0.5667 117:0.55 118:0.5333 119:0.5167 120:0.5 121:0.4833 122:0.4667 123:0.45 124:0.45 125:0.4333 126:0.4167 127:0.4167 128:0.4 129:0.4 130:0.3833 131:0.3833 132:0.3667 133:0.3667 134:0.3667 135:0.35 136:0.35 137:0.35 138:0.3333 139:0.3333 140:0.3333 141:0.3167 142:0.28073684 143:0.28073684 144:0.28073684 145:0.26315789 146:0.26315789 147:0.26315789 148:0.26315789 149:0.26315789 150:0.26315789 151:0.24557895 152:0.24557895 153:0.24557895 154:0.24557895 155:0.24557895 156:0.24557895 157:0.2321044 158:0.2321044 159:0.21431862 160:0.21431862 161:0.21431862 162:0.21431862 163:0.21431862 164:0.21431862 165:0.21431862 166:0.21431862 167:0.21431862 168:0.21431862 169:0.21431862 170:0.21431862 171:0.21431862 172:0.21431862 173:0.21431862 174:0.21431862 175:0.21431862 176:0.21431862 177:0.21431862 178:0.21431862 179:0.21431862 180:0.21431862 181:0.21431862 182:0.21431862 183:0.21431862 184:0.21431862 185:0.21431862 186:0.21431862 187:0.21431862 188:0.21431862 189:0.21431862 190:0.21431862 191:0.21431862 192:0.21431862 193:0.21431862 194:0.21431862 195:0.21431862 196:0.21431862 197:0.21431862 198:0.21431862 199:0.21431862 200:0.21431862 201:0.21431862 202:0.21431862 203:0.21431862 204:0.21431862 205:0.21431862 206:0.2321044 207:0.21431862 208:0.21431862 209:0.2321044 210:0.2321044 211:0.21431862 212:0.21431862 213:0.24999732 214:0.24999732 215:0.24999732 216:0.24999732 217:0.24999732 218:0.26789024 219:0.26789024 220:0.26789024 221:0.3167 222:0.3333 223:0.3333 224:0.3333 225:0.35 226:0.35 227:0.35 228:0.3667 229:0.3667 230:0.3667 231:0.3833 232:0.3833 233:0.4 234:0.4 235:0.4167 236:0.4167 237:0.4333 238:0.45 239:0.45 240:0.4667 241:0.4667 242:0.4667 243:0.5167 244:0.5333 245:0.55 246:0.5667 247:0.6 248:0.6167 249:0.6333 250:0.6333 251:0.7 252:0.7 253:0.7333 254:0.7667 255:0.8167 256:0.8667 257:0.9333 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:1 277:0.7833 278:0.6333 279:0.5667 280:0.5667 281:0.5667 282:0.4 283:0.35 284:0.3333 285:0.3 286:0.2833 287:0.2667 288:0.25 289:0.2333 290:0.2333 291:0.2167 292:0.2 293:0.2 294:0.1833 295:0.1833 296:0.1833 297:0.1667 298:0.1667 299:0.1667 300:0.15 301:0.15 302:0.15 303:0.1667 304:0.1667 305:0.1667 306:0.15 307:0.15 308:0.1667 309:0.1667 310:0.1667 311:0.15 312:0.15 313:0.15 314:0.15 315:0.15 316:0.15 317:0.15 318:0.15 319:0.15 320:0.15 321:0.15 322:0.15 323:0.15 324:0.15 325:0.15 326:0.15 327:0.15 328:0.15 329:0.15 330:0.15 331:0.15 332:0.15 333:0.15 334:0.15 335:0.15 336:0.15 337:0.15 338:0.15 339:0.2667 340:0.2667 341:0.2667 342:0.2833 343:0.2833 344:0.2833 345:0.2833 346:0.2833 347:0.5167 348:0.5333 349:0.5167 350:0.5333 351:0.5167 352:0.5333 353:0.5333 354:0.5167 355:0.5333 356:0.5333 357:0.5333 358:0.5333 359:0.5167 360:0.2667 +-0.461920983197538 1:0.2167 2:0.2167 3:0.2167 4:0.2167 5:0.2167 6:0.2167 7:0.2167 8:0.2167 9:0.2167 10:0.2167 11:0.2167 12:0.2167 13:0.2167 14:0.2167 15:0.2167 16:0.2167 17:0.2167 18:0.2167 19:0.2167 20:0.2167 21:0.2167 22:0.2167 23:0.2167 24:0.2333 25:0.2333 26:0.2333 27:0.2333 28:0.2333 29:0.2333 30:0.2333 31:0.2333 32:0.2333 33:0.2333 34:0.2333 35:0.2333 36:0.25 37:0.25 38:0.25 39:0.25 40:0.25 41:0.25 42:0.2667 43:0.2667 44:0.2667 45:0.2667 46:0.2833 47:0.2833 48:0.2833 49:0.2833 50:0.3 51:0.3 52:0.3 53:0.3167 54:0.3167 55:0.3667 56:0.3667 57:0.3667 58:0.3667 59:0.3667 60:0.3667 61:0.4 62:0.4 63:0.4 64:0.4167 65:0.45 66:0.5167 67:0.5167 68:0.5167 69:0.5167 70:0.5667 71:0.5667 72:0.6 73:0.6667 74:0.7833 75:0.7833 76:0.7833 77:0.7833 78:0.85 79:0.85 80:1 81:1 82:1 83:1 84:1 85:1 86:1 87:1 88:1 89:1 90:1 91:1 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:1 107:1 108:1 109:1 110:1 111:1 112:1 113:1 114:1 115:1 116:1 117:1 118:1 119:1 120:1 121:1 122:1 123:1 124:1 125:1 126:1 127:1 128:0.5167 129:0.5167 130:0.5167 131:0.5167 132:0.5167 133:0.4667 134:0.45 135:0.45 136:0.4333 137:0.45 138:0.45 139:0.45 140:0.45 141:0.45 142:0.42105263 143:0.42105263 144:0.42105263 145:0.42105263 146:0.42105263 147:0.42105263 148:0.42105263 149:0.42105263 150:0.43863158 151:0.64915789 152:0.64915789 153:0.64915789 154:0.63157895 155:0.63157895 156:0.63157895 157:0.62499866 158:0.60710574 159:0.60710574 160:0.60710574 161:0.60710574 162:0.58931996 163:0.58931996 164:0.58931996 165:0.58931996 166:0.58931996 167:0.58931996 168:0.57142704 169:0.57142704 170:0.57142704 171:0.57142704 172:0.57142704 173:0.55353412 174:0.55353412 175:0.55353412 176:0.55353412 177:0.55353412 178:0.55353412 179:0.55353412 180:0.55353412 181:0.55353412 182:0.53574834 183:0.53574834 184:0.53574834 185:0.53574834 186:0.53574834 187:0.53574834 188:0.53574834 189:0.53574834 190:0.53574834 191:0.53574834 192:0.53574834 193:0.53574834 194:0.53574834 195:0.57142704 196:0.57142704 197:0.57142704 198:0.57142704 199:0.57142704 200:0.57142704 201:0.58931996 202:0.58931996 203:0.58931996 204:0.58931996 205:0.58931996 206:0.60710574 207:0.60710574 208:0.60710574 209:0.60710574 210:0.60710574 211:0.60710574 212:0.64289158 213:0.71424898 214:0.82139222 215:0.82139222 216:0.82139222 217:0.7678206 218:0.75003482 219:0.75003482 220:0.75003482 221:0.7667 222:0.7667 223:0.7667 224:0.7667 225:0.7833 226:0.8 227:0.8167 228:0.8167 229:0.8333 230:0.85 231:0.8667 232:0.8833 233:0.9167 234:0.9333 235:0.9333 236:0.95 237:0.9667 238:1 239:1 240:1 241:1 242:1 243:1 244:1 245:1 246:1 247:1 248:1 249:1 250:1 251:1 252:1 253:1 254:1 255:1 256:1 257:1 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:0.7333 271:0.7333 272:0.7333 273:0.7333 274:0.7333 275:0.7333 276:0.7333 277:0.7333 278:0.7333 279:0.7333 280:1 281:1 282:1 283:1 284:0.9167 285:0.85 286:0.8 287:0.8 288:0.8 289:0.8 290:0.8 291:0.75 292:0.6667 293:0.6833 294:0.6833 295:0.6833 296:0.6833 297:0.6833 298:0.6833 299:0.7333 300:0.4333 301:0.4167 302:0.4 303:0.4 304:0.3833 305:0.3667 306:0.3667 307:0.35 308:0.35 309:0.3333 310:0.3 311:0.3 312:0.3 313:0.2833 314:0.2833 315:0.2833 316:0.2833 317:0.2667 318:0.2667 319:0.2667 320:0.2667 321:0.25 322:0.25 323:0.25 324:0.25 325:0.25 326:0.25 327:0.2333 328:0.2333 329:0.2333 330:0.2333 331:0.2333 332:0.2333 333:0.2333 334:0.2333 335:0.2333 336:0.2333 337:0.2333 338:0.2333 339:0.2167 340:0.2167 341:0.2167 342:0.2167 343:0.2167 344:0.2167 345:0.2167 346:0.2167 347:0.2167 348:0.2167 349:0.2167 350:0.2167 351:0.2167 352:0.2167 353:0.2167 354:0.2167 355:0.2167 356:0.2167 357:0.2167 358:0.2167 359:0.2167 360:0.2167 +-1.24390864212422 1:0.65 2:0.6833 3:0.45 4:0.45 5:0.45 6:0.45 7:0.45 8:0.45 9:0.45 10:0.45 11:0.4333 12:0.4167 13:0.4167 14:0.4 15:0.3667 16:0.3667 17:0.3667 18:0.3667 19:0.35 20:0.3333 21:0.3333 22:0.3333 23:0.3333 24:0.3333 25:0.3333 26:0.3333 27:0.3333 28:0.3333 29:0.3333 30:0.3333 31:0.3333 32:0.3333 33:0.3333 34:0.3333 35:0.3333 36:0.35 37:0.35 38:0.35 39:0.35 40:0.3667 41:0.3667 42:0.3667 43:0.3833 44:0.3833 45:0.3833 46:0.4 47:0.4 48:0.4 49:0.4167 50:0.4167 51:0.4333 52:0.4333 53:0.45 54:0.5167 55:0.5167 56:0.5167 57:0.5167 58:0.6 59:0.6 60:0.6 61:0.6 62:0.6 63:0.65 64:1 65:1 66:1 67:1 68:1 69:1 70:0.5333 71:0.5333 72:0.5333 73:0.5333 74:0.5333 75:0.5333 76:0.5333 77:0.5333 78:0.5333 79:0.5333 80:0.5333 81:0.5333 82:0.6 83:0.8667 84:0.8667 85:0.8667 86:0.8667 87:0.8667 88:0.8667 89:0.8667 90:0.8667 91:0.8833 92:1 93:1 94:1 95:1 96:1 97:1 98:1 99:1 100:1 101:1 102:1 103:1 104:1 105:1 106:1 107:1 108:1 109:1 110:1 111:1 112:1 113:1 114:1 115:1 116:1 117:0.9 118:0.8667 119:0.8333 120:0.8 121:0.7833 122:0.7667 123:0.7333 124:0.7167 125:0.7 126:0.6833 127:0.6667 128:0.65 129:0.6667 130:0.65 131:0.6333 132:0.6 133:0.6 134:0.6 135:0.6 136:0.6 137:0.6 138:0.6 139:0.6 140:0.6 141:0.6 142:0.57894737 143:0.80705263 144:0.80705263 145:0.78947368 146:0.78947368 147:0.59652632 148:0.614 149:0.56136842 150:0.56136842 151:0.56136842 152:0.54389474 153:0.54389474 154:0.54389474 155:0.56136842 156:0.54389474 157:0.53574834 158:0.53574834 159:0.53574834 160:0.55353412 161:0.55353412 162:0.55353412 163:0.58931996 164:0.58931996 165:0.60710574 166:0.53574834 167:0.53574834 168:0.53574834 169:0.53574834 170:0.41071218 171:0.41071218 172:0.39281926 173:0.39281926 174:0.39281926 175:0.39281926 176:0.39281926 177:0.39281926 178:0.39281926 179:0.39281926 180:0.39281926 181:0.39281926 182:0.39281926 183:0.39281926 184:0.39281926 185:0.39281926 186:0.39281926 187:0.39281926 188:0.39281926 189:0.39281926 190:0.39281926 191:0.39281926 192:0.39281926 193:0.39281926 194:0.39281926 195:0.39281926 196:0.39281926 197:0.39281926 198:0.41071218 199:0.41071218 200:0.41071218 201:0.41071218 202:0.41071218 203:0.41071218 204:0.41071218 205:0.4286051 206:0.4286051 207:0.4286051 208:0.4286051 209:0.4286051 210:0.44639088 211:0.44639088 212:0.44639088 213:0.44639088 214:0.4999625 215:0.51785542 216:0.51785542 217:0.51785542 218:0.51785542 219:0.37503348 220:0.37503348 221:0.4167 222:0.4167 223:0.4167 224:0.4167 225:0.4167 226:0.4167 227:0.4167 228:0.4167 229:0.4167 230:0.4167 231:0.4333 232:0.4333 233:0.45 234:0.4667 235:0.4667 236:0.75 237:0.7667 238:0.7833 239:0.8 240:0.8333 241:0.85 242:0.8833 243:0.9 244:0.9 245:0.9 246:0.9 247:0.9167 248:1 249:1 250:1 251:1 252:1 253:1 254:1 255:1 256:1 257:1 258:1 259:1 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:1 276:0.9167 277:0.8667 278:0.75 279:0.75 280:0.75 281:0.75 282:0.75 283:0.75 284:0.75 285:1 286:1 287:1 288:1 289:0.8333 290:0.7833 291:0.75 292:0.7333 293:0.7333 294:0.7333 295:0.7333 296:0.7333 297:0.7333 298:0.7333 299:0.5167 300:0.5 301:0.4833 302:0.4667 303:0.4667 304:0.4667 305:0.4667 306:0.45 307:0.45 308:0.4333 309:0.4167 310:0.4167 311:0.4 312:0.4 313:0.3833 314:0.3833 315:0.3833 316:0.3667 317:0.3667 318:0.3667 319:0.3667 320:0.3833 321:0.3667 322:0.3833 323:0.35 324:0.35 325:0.3833 326:0.35 327:0.3667 328:0.3833 329:0.35 330:0.4833 331:0.35 332:0.35 333:0.5 334:0.35 335:0.4833 336:0.4833 337:0.4833 338:0.4833 339:0.6833 340:0.6667 341:0.6667 342:0.6667 343:0.6667 344:0.6667 345:0.6667 346:0.6667 347:0.6667 348:0.6833 349:0.65 350:0.6333 351:0.6333 352:0.6333 353:0.6333 354:0.6333 355:0.6333 356:0.6333 357:0.6333 358:0.65 359:0.65 360:0.65 +-0.6755532882257953 1:0.1 2:0.1 3:0.1 4:0.1 5:0.1 6:0.1167 7:0.1167 8:0.1167 9:0.1167 10:0.1167 11:0.1167 12:0.1167 13:0.1167 14:0.1167 15:0.1167 16:0.1167 17:0.1167 18:0.1167 19:0.1167 20:0.1167 21:0.1167 22:0.1167 23:0.1167 24:0.1167 25:0.1167 26:0.1167 27:0.1167 28:0.1167 29:0.1167 30:0.1167 31:0.1167 32:0.1167 33:0.1833 34:0.1833 35:0.1833 36:0.2167 37:0.2167 38:0.1833 39:0.1833 40:0.1833 41:0.2167 42:0.2167 43:0.2167 44:0.2167 45:0.2167 46:0.2167 47:0.2167 48:0.2167 49:0.2167 50:0.2167 51:0.2167 52:0.25 53:0.3167 54:0.3167 55:0.35 56:0.4167 57:0.4333 58:0.5 59:0.8333 60:1 61:1 62:1 63:1 64:1 65:1 66:1 67:1 68:1 69:1 70:1 71:1 72:1 73:1 74:0.55 75:0.55 76:0.55 77:0.55 78:0.55 79:0.55 80:0.55 81:0.55 82:0.5667 83:0.5667 84:1 85:0.2167 86:0.2167 87:0.2167 88:0.2167 89:0.1833 90:0.1833 91:0.1833 92:0.1833 93:0.1833 94:0.15 95:0.1333 96:0.1333 97:0.1333 98:0.1333 99:0.1333 100:0.1333 101:0.1333 102:0.1333 103:0.1167 104:0.1 105:0.1 106:0.1 107:0.1 108:0.1 109:0.1 110:0.1 111:0.1 112:0.1 113:0.1 114:0.1 115:0.1 116:0.1 117:0.1 118:0.08333 119:0.08333 120:0.08333 121:0.08333 122:0.08333 123:0.08333 124:0.08333 125:0.08333 126:0.08333 127:0.08333 128:0.08333 129:0.1 130:0.08333 131:0.08333 132:0.08333 133:0.08333 134:0.08333 135:0.08333 136:0.08333 137:0.08333 138:0.08333 139:0.08333 140:0.08333 141:0.08333 142:0.035084211 143:0.035084211 144:0.035084211 145:0.035084211 146:0.035084211 147:0.035084211 148:0.035084211 149:0.035084211 150:0.035084211 151:0.035084211 152:0.035084211 153:0.035084211 154:0.035084211 155:0.035084211 156:0.035084211 157:0.017850064 158:0.017850064 159:0.017850064 160:0.017850064 161:0.017850064 162:0.017850064 163:0.017850064 164:0.017850064 165:0.017850064 166:0.017850064 167:0.017850064 168:0.017850064 169:0.017850064 170:0.017850064 171:0.017850064 172:0.017850064 173:0.017850064 174:0.017850064 175:0.017850064 176:0.017850064 177:0.017850064 178:0.017850064 179:0.017850064 180:0.017850064 181:0.017850064 182:0.017850064 183:0.017850064 184:0.017850064 185:0.017850064 186:0.017850064 187:0.017850064 188:0.017850064 189:0.017850064 190:0.017850064 191:0.017850064 192:0.017850064 193:0.017850064 194:0.017850064 195:0.017850064 196:0.017850064 197:0.017850064 198:0.017850064 199:0.017850064 200:0.017850064 201:0.017850064 202:0.017850064 203:0.017850064 204:0.035710842 205:0.035710842 206:0.035710842 207:0.035710842 208:0.035710842 209:0.035710842 210:0.035710842 211:0.035710842 212:0.035710842 213:0.035710842 214:0.035710842 215:0.035710842 216:0.035710842 217:0.035710842 218:0.035710842 219:0.035710842 220:0.035710842 221:0.1 222:0.1 223:0.1 224:0.1167 225:0.1167 226:0.1167 227:0.1167 228:0.1167 229:0.1167 230:0.1167 231:0.1167 232:0.1167 233:0.1167 234:0.15 235:0.1667 236:0.1667 237:0.1667 238:0.1667 239:0.1667 240:0.1833 241:0.1833 242:0.1833 243:0.2 244:0.2 245:0.25 246:0.25 247:0.2667 248:0.3 249:0.3 250:0.3 251:0.3167 252:0.3333 253:0.35 254:0.5667 255:0.5667 256:0.5667 257:0.8333 258:0.85 259:0.85 260:0.8833 261:0.8833 262:0.8833 263:0.8833 264:0.8833 265:0.8833 266:0.8833 267:0.9333 268:1 269:1 270:1 271:1 272:1 273:1 274:1 275:0.35 276:0.3 277:0.3 278:0.3 279:0.3 280:0.2667 281:0.2333 282:0.2167 283:0.2 284:0.2 285:0.2 286:0.2 287:0.2 288:0.2 289:0.2 290:0.2 291:0.2 292:0.2 293:0.2 294:0.2 295:0.2 296:0.2 297:0.2 298:0.2 299:0.2 300:0.2 301:0.2 302:0.2 303:0.15 304:0.1333 305:0.1333 306:0.1333 307:0.1333 308:0.1333 309:0.1167 310:0.1167 311:0.1167 312:0.1167 313:0.1167 314:0.1167 315:0.1167 316:0.1167 317:0.1167 318:0.1167 319:0.1 320:0.1 321:0.1 322:0.1 323:0.1 324:0.1 325:0.1 326:0.1 327:0.1 328:0.1 329:0.1 330:0.1 331:0.1 332:0.1 333:0.1 334:0.1 335:0.1 336:0.1 337:0.1 338:0.1 339:0.1 340:0.1 341:0.1 342:0.1 343:0.1 344:0.1 345:0.1 346:0.1 347:0.1 348:0.1 349:0.1 350:0.1 351:0.1 352:0.1 353:0.1 354:0.1 355:0.1 356:0.1 357:0.1 358:0.1 359:0.1 360:0.1 +-0.07977645679315452 1:0.1167 2:0.1167 3:0.1167 4:0.1167 5:0.1167 6:0.1167 7:0.1167 8:0.1167 9:0.1167 10:0.1167 11:0.1167 12:0.1167 13:0.1167 14:0.1167 15:0.1167 16:0.1167 17:0.1167 18:0.1167 19:0.1167 20:0.1167 21:0.1167 22:0.1167 23:0.1167 24:0.1167 25:0.1167 26:0.1167 27:0.1167 28:0.1167 29:0.1167 30:0.1167 31:0.1167 32:0.1167 33:0.1167 34:0.1167 35:0.1167 36:0.1167 37:0.1167 38:0.1167 39:0.1167 40:0.1333 41:0.1333 42:0.1333 43:0.1667 44:0.2667 45:0.2667 46:0.1667 47:0.1667 48:0.15 49:0.2167 50:0.2167 51:0.3 52:0.15 53:0.15 54:0.15 55:0.3167 56:0.3167 57:0.2167 58:0.2167 59:0.3333 60:0.3333 61:0.2167 62:0.2167 63:0.3667 64:0.2167 65:0.2167 66:0.2167 67:0.2167 68:0.4167 69:0.4167 70:0.4833 71:0.4833 72:0.4833 73:0.55 74:0.55 75:0.6167 76:0.6167 77:0.6 78:0.6 79:0.6 80:0.6 81:0.6 82:0.6 83:0.6 84:0.6 85:0.6 86:0.6167 87:0.6167 88:0.6167 89:0.6167 90:0.2833 91:0.2833 92:0.2833 93:0.2833 94:0.2833 95:0.2833 96:0.2833 97:0.2833 98:0.2833 99:0.2833 100:0.2833 101:0.2833 102:0.2833 103:0.2833 104:0.2833 105:0.2833 106:0.2833 107:0.2833 108:0.2833 109:0.2833 110:0.2833 111:0.2833 112:0.2833 113:0.2833 114:0.2833 115:0.2833 116:0.2833 117:0.1667 118:0.1667 119:0.1667 120:0.1667 121:0.1667 122:0.1667 123:0.1667 124:0.1667 125:0.1667 126:0.1833 127:0.1833 128:0.1667 129:0.1667 130:0.1667 131:0.1833 132:0.1833 133:0.1667 134:0.1667 135:0.1667 136:0.1833 137:0.1667 138:0.1667 139:0.1 140:0.1 141:0.1 142:0.052631579 143:0.052631579 144:0.052631579 145:0.052631579 146:0.052631579 147:0.052631579 148:0.052631579 149:0.052631579 150:0.052631579 151:0.052631579 152:0.052631579 153:0.052631579 154:0.052631579 155:0.052631579 156:0.052631579 157:0.035710842 158:0.035710842 159:0.035710842 160:0.035710842 161:0.035710842 162:0.035710842 163:0.035710842 164:0.035710842 165:0.035710842 166:0.035710842 167:0.035710842 168:0.035710842 169:0.035710842 170:0.035710842 171:0.035710842 172:0.035710842 173:0.035710842 174:0.035710842 175:0.035710842 176:0.035710842 177:0.035710842 178:0.035710842 179:0.035710842 180:0.035710842 181:0.035710842 182:0.035710842 183:0.035710842 184:0.035710842 185:0.035710842 186:0.035710842 187:0.035710842 188:0.035710842 189:0.035710842 190:0.035710842 191:0.035710842 192:0.035710842 193:0.035710842 194:0.035710842 195:0.035710842 196:0.035710842 197:0.035710842 198:0.035710842 199:0.035710842 200:0.035710842 201:0.035710842 202:0.035710842 203:0.035710842 204:0.035710842 205:0.035710842 206:0.035710842 207:0.035710842 208:0.035710842 209:0.035710842 210:0.035710842 211:0.035710842 212:0.035710842 213:0.035710842 214:0.035710842 215:0.035710842 216:0.035710842 217:0.035710842 218:0.035710842 219:0.035710842 220:0.035710842 221:0.1 222:0.1 223:0.1 224:0.1167 225:0.1167 226:0.1167 227:0.1167 228:0.1167 229:0.1333 230:0.15 231:0.15 232:0.15 233:0.15 234:0.15 235:0.1667 236:0.1667 237:0.1667 238:0.1667 239:0.1667 240:0.1667 241:0.1667 242:0.1667 243:0.1667 244:0.1667 245:0.1667 246:0.1667 247:0.1667 248:0.1667 249:0.15 250:0.1667 251:0.1667 252:0.1833 253:0.1833 254:0.2 255:0.2 256:0.2167 257:0.2333 258:0.25 259:0.2833 260:0.5333 261:0.5167 262:0.5333 263:0.3667 264:0.3667 265:0.3667 266:0.3667 267:0.3667 268:0.3667 269:0.3667 270:0.3667 271:0.3667 272:0.3667 273:0.3667 274:0.3667 275:1 276:1 277:0.8667 278:0.7833 279:0.7833 280:0.7833 281:0.7833 282:0.7833 283:0.7833 284:0.85 285:0.7833 286:0.6667 287:0.3333 288:0.35 289:0.6667 290:0.3333 291:0.35 292:0.3333 293:0.35 294:0.2333 295:0.2167 296:0.2167 297:0.2167 298:0.2 299:0.2 300:0.2167 301:0.1833 302:0.1833 303:0.1667 304:0.1667 305:0.1667 306:0.1667 307:0.1667 308:0.15 309:0.15 310:0.15 311:0.15 312:0.15 313:0.15 314:0.15 315:0.15 316:0.15 317:0.15 318:0.15 319:0.15 320:0.1333 321:0.1333 322:0.1333 323:0.1333 324:0.1333 325:0.1333 326:0.1333 327:0.1333 328:0.1333 329:0.1333 330:0.1333 331:0.1333 332:0.1333 333:0.1333 334:0.1333 335:0.1333 336:0.1333 337:0.1167 338:0.1167 339:0.1167 340:0.1167 341:0.1167 342:0.1167 343:0.1167 344:0.1167 345:0.1167 346:0.1167 347:0.1167 348:0.1167 349:0.1167 350:0.1167 351:0.1167 352:0.1167 353:0.1167 354:0.1167 355:0.1167 356:0.1167 357:0.1167 358:0.1167 359:0.1167 360:0.1167 +-0.4149747376290368 1:0.1667 2:0.1667 3:0.1667 4:0.1667 5:0.1667 6:0.1667 7:0.1667 8:0.1667 9:0.1667 10:0.1667 11:0.1667 12:0.1667 13:0.1667 14:0.1667 15:0.1667 16:0.1667 17:0.1667 18:0.1667 19:0.1667 20:0.1667 21:0.1667 22:0.1667 23:0.1667 24:0.1667 25:0.1667 26:0.1667 27:0.1667 28:0.1667 29:0.1667 30:0.1667 31:0.1667 32:0.1833 33:0.1833 34:0.1833 35:0.1833 36:0.1833 37:0.1833 38:0.1833 39:0.1833 40:0.1833 41:0.1667 42:0.1667 43:0.1667 44:0.1833 45:0.1833 46:0.1833 47:0.1833 48:0.1833 49:0.1833 50:0.2 51:0.2 52:0.2 53:0.2 54:0.2167 55:0.2167 56:0.2167 57:0.2333 58:0.2333 59:0.2333 60:0.25 61:0.25 62:0.25 63:0.2667 64:0.2833 65:0.2833 66:0.3 67:0.3 68:0.3167 69:0.4833 70:0.4833 71:0.4833 72:0.4833 73:0.4833 74:0.4833 75:0.5 76:0.5 77:0.5833 78:0.65 79:0.75 80:0.75 81:1 82:1 83:1 84:1 85:0.6833 86:0.6833 87:0.6833 88:0.6833 89:0.6833 90:0.6833 91:0.6833 92:0.6833 93:0.6833 94:0.6833 95:0.6833 96:0.7 97:0.7 98:0.6167 99:0.55 100:0.55 101:0.5167 102:0.4833 103:0.4333 104:0.4 105:0.3667 106:0.3667 107:0.3667 108:0.3167 109:0.3 110:0.3 111:0.3 112:0.3 113:0.2833 114:0.2833 115:0.2667 116:0.25 117:0.25 118:0.2333 119:0.2333 120:0.2333 121:0.2333 122:0.2333 123:0.2 124:0.2 125:0.2 126:0.1833 127:0.1833 128:0.1833 129:0.1833 130:0.1833 131:0.1833 132:0.1833 133:0.1833 134:0.1833 135:0.1833 136:0.1833 137:0.1833 138:0.1833 139:0.1667 140:0.1667 141:0.1667 142:0.12284211 143:0.12284211 144:0.12284211 145:0.12284211 146:0.12284211 147:0.12284211 148:0.12284211 149:0.10526316 150:0.10526316 151:0.10526316 152:0.10526316 153:0.10526316 154:0.10526316 155:0.10526316 156:0.10526316 157:0.089282462 158:0.089282462 159:0.089282462 160:0.089282462 161:0.089282462 162:0.089282462 163:0.089282462 164:0.089282462 165:0.089282462 166:0.089282462 167:0.089282462 168:0.089282462 169:0.089282462 170:0.089282462 171:0.089282462 172:0.089282462 173:0.089282462 174:0.089282462 175:0.089282462 176:0.089282462 177:0.089282462 178:0.089282462 179:0.089282462 180:0.089282462 181:0.089282462 182:0.089282462 183:0.089282462 184:0.089282462 185:0.089282462 186:0.089282462 187:0.089282462 188:0.089282462 189:0.089282462 190:0.089282462 191:0.089282462 192:0.089282462 193:0.089282462 194:0.089282462 195:0.089282462 196:0.089282462 197:0.089282462 198:0.089282462 199:0.089282462 200:0.089282462 201:0.089282462 202:0.089282462 203:0.089282462 204:0.089282462 205:0.089282462 206:0.089282462 207:0.089282462 208:0.089282462 209:0.089282462 210:0.089282462 211:0.089282462 212:0.089282462 213:0.089282462 214:0.10717538 215:0.10717538 216:0.10717538 217:0.10717538 218:0.10717538 219:0.10717538 220:0.10717538 221:0.1667 222:0.1667 223:0.1667 224:0.1833 225:0.1833 226:0.1833 227:0.1833 228:0.1833 229:0.2167 230:0.2167 231:0.2167 232:0.2333 233:0.2333 234:0.2333 235:0.45 236:0.6333 237:0.6333 238:0.6333 239:0.6333 240:0.6333 241:0.7167 242:0.7667 243:0.8 244:0.8333 245:0.5833 246:0.5667 247:0.5667 248:0.5667 249:0.5667 250:0.5667 251:0.5667 252:0.5667 253:0.5667 254:0.5667 255:0.5667 256:0.6667 257:0.7167 258:0.7667 259:0.9167 260:1 261:1 262:1 263:1 264:1 265:1 266:1 267:1 268:1 269:1 270:1 271:1 272:1 273:0.7167 274:0.6667 275:0.6667 276:0.6667 277:0.6667 278:0.6667 279:0.3 280:0.2833 281:0.2833 282:0.2833 283:0.2833 284:0.1833 285:0.1667 286:0.15 287:0.15 288:0.15 289:0.15 290:0.15 291:0.15 292:0.15 293:0.15 294:0.15 295:0.15 296:0.15 297:0.15 298:0.15 299:0.15 300:0.15 301:0.15 302:0.15 303:0.1667 304:0.15 305:0.15 306:0.15 307:0.15 308:0.15 309:0.15 310:0.15 311:0.15 312:0.15 313:0.15 314:0.15 315:0.15 316:0.1667 317:0.1833 318:0.1833 319:0.2 320:0.2 321:0.2 322:0.1833 323:0.1833 324:0.1833 325:0.1833 326:0.1833 327:0.1833 328:0.1833 329:0.1833 330:0.1833 331:0.1667 332:0.1667 333:0.1667 334:0.1667 335:0.1667 336:0.1667 337:0.1667 338:0.1667 339:0.1667 340:0.1667 341:0.1667 342:0.1667 343:0.1667 344:0.1667 345:0.1667 346:0.1667 347:0.1667 348:0.1667 349:0.1667 350:0.1667 351:0.1667 352:0.1667 353:0.1667 354:0.1667 355:0.1667 356:0.1667 357:0.1667 358:0.1667 359:0.1667 360:0.1667 diff --git a/src/veloslam/cluster_classification.cc b/src/veloslam/cluster_classification.cc new file mode 100644 index 0000000..297d060 --- /dev/null +++ b/src/veloslam/cluster_classification.cc @@ -0,0 +1,15 @@ +#include "veloslam/veloscan.h" +#include "veloslam/svm.h" +#include "veloslam/cluster_classification.h" + +Cluster_Classification::Cluster_Classification(void) +{ + +} + +Cluster_Classification::~Cluster_Classification(void) +{ + +} + + diff --git a/src/veloslam/clusterboundingbox.cc b/src/veloslam/clusterboundingbox.cc new file mode 100644 index 0000000..4d80c07 --- /dev/null +++ b/src/veloslam/clusterboundingbox.cc @@ -0,0 +1,212 @@ +/* + * clusterboundingbox implementation + * + * Copyright (C) Li Wei, Li Ming + * + * Released under the GPL version 3. + * + */ + +#include +#include +#include +#include +#include "veloslam/debugview.h" +#include "veloslam/clusterboundingbox.h" + + bool operator<(const BesiegePoint & s1,const BesiegePoint & s2) +{ + return s1.angle < s2.angle; +} + +BoundingBox::BoundingBox(void) +{ + calCandidateBox=false; +} + +BoundingBox::~BoundingBox(void) +{ +} + + void BoundingBox::Initial() + { + calCandidateBox=false; + allCandBox.clear(); + minBoundingBox.clear(); + } + +void BoundingBox::CalCoordsAftRotation(double x,double y,double *newX,double *newY,double theta) +{ + + *newY=y*cosf(theta*M_PI/180)-x*sinf(theta*M_PI/180); + *newX=x*cosf(theta*M_PI/180)+y*sinf(theta*M_PI/180); + +} + + +double BoundingBox::CalDirectionTwoPoints(double XPos1,double YPos1,double XPos2,double YPos2) +{ + double delt_x=XPos2-XPos1; + double delt_y=YPos2-YPos1; + double angle; + double length=sqrt(delt_x*delt_x+delt_y*delt_y*1.0); + if(delt_x<0) + angle=360-acos(delt_y/length)*180/M_PI; + else + angle=acos(delt_y/length)*180/M_PI; + return angle; +} + + void BoundingBox:: CalAllBoundingBox(cluster &gluClusterData) + { + + int angleInterval=2; + int minCircumferenceIndex; + double minCircumference=10000000000;; + OrientedBoundingBox tempBoundingBox; + + Initial(); + for(int i=0;i<90;i+=angleInterval) + { + tempBoundingBox.newMaxXPointX=-1000000; + tempBoundingBox.newMaxYPointY=-1000000; + tempBoundingBox.newMinXPointX=1000000; + tempBoundingBox.newMinYPointY=1000000; + for (int j = 0; j pCell; + for(int k=0;ksize();k++) + { + + double newX,newY; + CalCoordsAftRotation((*pcellObj)[k]->x,(*pcellObj)[k]->y,&newX,&newY,i); + if(tempBoundingBox.newMaxXPointXnewX) + { + tempBoundingBox.newMinXPointX=newX; + tempBoundingBox.newMinXPointY=newY; + tempBoundingBox.boundingPointID[1].cellIndex=j; + tempBoundingBox.boundingPointID[1].pointIndexInCell=k; + } + if(tempBoundingBox.newMaxYPointYnewY) + { + tempBoundingBox.newMinYPointY=newY; + tempBoundingBox.newMinYPointX=newX; + tempBoundingBox.boundingPointID[3].cellIndex=j; + tempBoundingBox.boundingPointID[3].pointIndexInCell=k; + } + } + } + tempBoundingBox.length=tempBoundingBox.newMaxXPointX-tempBoundingBox.newMinXPointX; + tempBoundingBox.width=tempBoundingBox.newMaxYPointY-tempBoundingBox.newMinYPointY; + tempBoundingBox.area=(tempBoundingBox.newMaxXPointX-tempBoundingBox.newMinXPointX)*(tempBoundingBox.newMaxYPointY-tempBoundingBox.newMinYPointY); + tempBoundingBox.circumference=((tempBoundingBox.newMaxXPointX-tempBoundingBox.newMinXPointX)+(tempBoundingBox.newMaxYPointY-tempBoundingBox.newMinYPointY))*2; + tempBoundingBox.angle=i; + + /**如果旋转后得出的结果在Y轴上比X轴长,统一为X轴为长轴**/ + if(tempBoundingBox.newMaxXPointX-tempBoundingBox.newMinXPointX< + tempBoundingBox.newMaxYPointY- tempBoundingBox.newMinYPointY) + { + OrientedBoundingBox temp=tempBoundingBox; + tempBoundingBox.angle=temp.angle+90; + + tempBoundingBox.newMaxXPointX=temp.newMaxYPointY; + tempBoundingBox.newMaxXPointY=-temp.newMaxYPointX; + tempBoundingBox.newMaxYPointX=temp.newMinXPointY; + tempBoundingBox.newMaxYPointY=-temp.newMinXPointX; + + tempBoundingBox.newMinXPointX=temp.newMinYPointY; + tempBoundingBox.newMinXPointY=-temp.newMinYPointX; + tempBoundingBox.newMinYPointX=temp.newMaxXPointY; + tempBoundingBox.newMinYPointY=-temp.newMaxXPointX; + } + + allCandBox.push_back(tempBoundingBox); + } + } + + void BoundingBox::CalBestRectangleBox(cluster &gluClusterData,clusterFeature &glu) + { + int minCircumferenceIndex=0; + int bestBoxIndex; + if(!calCandidateBox) + CalAllBoundingBox(gluClusterData); + double minCircumference=allCandBox[0].circumference; + + for(int i=0;ipCell; + BesiegePoint tempPoint; + tempPoint.x=(*pcellObj)[pointIndexInCell]->x; + tempPoint.y=(*pcellObj)[pointIndexInCell]->y; + minBisegeAverageX+=tempPoint.x; + minBisegeAverageY+=tempPoint.y; + minBoundingBox.push_back(tempPoint); + } + } + minBisegeAverageX/=minBoundingBox.size(); + minBisegeAverageY/=minBoundingBox.size(); + for(int i=0;i +#else +#include +#endif + +#include +using std::ifstream; +using std::ofstream; + +#include +using std::cout; +using std::cerr; +using std::endl; + +#include +using std::stringstream; + +#include "slam6d/scan.h" +#include "slam6d/Boctree.h" +#include "veloslam/veloscan.h" +#include "veloslam/trackermanager.h" +#include "veloslam/debugview.h" +#include "veloslam/velodefs.h" + +#include +#include +#include + +using namespace boost; +using boost::thread; +boost::mutex draw_mutex; + +extern TrackerManager trackMgr; +extern VeloScan* g_pfirstScan; + +#ifdef _OPENMP +#include +#endif + +#ifdef _MSC_VER +#define strcasecmp _stricmp +#define strncasecmp _strnicmp +#else +#include +#endif + +#include +using std::flush; + +#include /* OpenGL header file */ +#include /* OpenGL utilities header file */ + +#ifdef _MSC_VER +#include +#else +#include +#endif + +#include "veloslam/color_util.h" + +bool DebugDrawFinished =false; +bool ICPFinished =false; +bool save_animation=false; +int anim_frame_rate; +extern int scanCount; +GLenum buffermode_debugView = GL_BACK; + +boost::mutex keymutex; +boost::condition keycond; +GLenum doubleBuffer; + +int g_frame=0; +float rotX = 0.0, rotY = 0.0; + +int x_lbefore,y_lbefore; +int x_rbefore,y_rbefore; +int z_before1,z_before2; + +bool buttonSaveLeft, buttonSaveMiddle , buttonSaveRight; +float x_move,y_move,z_move; +float x_move_save,y_move_save, z_move_save; +float x_rotate,y_rotate,z_rotate; +float x_rotate_save,y_rotate_save,z_rotate_save; +float m_zoom; + +float m_aspect; + +// gluLookAt(0, 0, 80, 0, 0, 0, 0, 1, 0); +float m_eyex, m_eyey, m_eyez; +float m_centerx, m_centery, m_centerz; +float m_upx, m_upy, m_upz; + +bool g_pause=true; + +void DrawPointsRGB(Point p, float r, float g, float b) +{ + GLdouble dVect1[3]; + glColor3d(r, g, b); + + dVect1[0]=p.x; + dVect1[1]=p.y; + dVect1[2]=p.z; + + glVertex3dv(dVect1); +} + +void DrawText(float x, float y, float z, char * outputstring) +{ +#ifdef _MSC_VER + glPushMatrix(); + glColor3f(1.0f,1.0f,1.0f); + wglUseFontBitmaps(wglGetCurrentDC(), 0, 255, 100); + + glListBase(100); + glRasterPos3f(x, y, z); + glCallLists( strlen(outputstring), GL_UNSIGNED_BYTE, outputstring); + + glPopMatrix(); +#endif +} + +void DrawTextRGB(float x, float y, float z, float r, float g, float b, char * outputstring) +{ +#ifdef _MSC_VER + glPushMatrix(); + glColor3f(r,g,b); + wglUseFontBitmaps(wglGetCurrentDC(), 0, 255, 100); + + glListBase(100); + glRasterPos3f(x, y, z); + glCallLists( strlen(outputstring), GL_UNSIGNED_BYTE, outputstring); + + glPopMatrix(); +#endif +} + +void DrawTextRGB(Point P, float r, float g, float b, char * outputstring) +{ +#ifdef _MSC_VER + glPushMatrix(); + glColor3f(r,g,b); + wglUseFontBitmaps(wglGetCurrentDC(), 0, 255, 100); + + glListBase(100); + glRasterPos3f(P.x, P.y, P.z); + glCallLists( strlen(outputstring), GL_UNSIGNED_BYTE, outputstring); + + glPopMatrix(); +#endif +} + +void Draw_Line_GL_RGB(float x1, float y1, float z1, + float x2, float y2, float z2, + float r,float g,float b,float width) +{ + GLdouble dVect1[3]; + GLdouble dVect2[3]; + + glLineWidth(width); + glBegin(GL_LINES); + glColor3d(r, g, b); + + //////////////////////// + dVect1[0]=x1; + dVect1[1]=y1; + dVect1[2]=z1; + glVertex3dv(dVect1); + + dVect2[0]=x2; + dVect2[1]=y2; + dVect2[2]=z2; + glVertex3dv(dVect2); + + glEnd(); +} + +void Draw_Line_GL_RGB( + Point P1, Point P2, + int width, + float r,float g,float b, + bool arrow) +{ + GLdouble dVect1[3]; + GLdouble dVect2[3]; + + glLineWidth(width); + glBegin(GL_LINES); + glColor3d(r, g, b); + + dVect1[0]=P1.x; + dVect1[1]=P1.y; + dVect1[2]=P1.z; + glVertex3dv(dVect1); + + dVect2[0]=P2.x; + dVect2[1]=P2.y; + dVect2[2]=P2.z; + glVertex3dv(dVect2); + + glEnd(); + + if(arrow) + { + glPushMatrix(); + glTranslatef(1.0, 0.0f, 0.0f); + glRotatef(90.0f,0.0f,1.0f,0.0f); + glutWireCone(0.027,0.09,10,10); + glPopMatrix(); + } + +} + +void Draw_Line_GL(float x1, float y1, float z1,float x2, float y2, float z2) +{ + Draw_Line_GL_RGB(x1,y1,z1, + x2,y2,z2, + 0,1.0,0); +} + +void Draw_Cube_GL_RGB(float min_x, float min_y, float min_z, + float max_x, float max_y, float max_z, + float r,float g,float b) +{ + Draw_Line_GL_RGB(min_x,min_y,max_z,max_x,min_y,max_z,r,g,b); + Draw_Line_GL_RGB(min_x,max_y,max_z,max_x,max_y,max_z,r,g,b); + Draw_Line_GL_RGB(min_x,max_y,min_z,max_x,max_y,min_z,r,g,b); + Draw_Line_GL_RGB(min_x,min_y,min_z,max_x,min_y,min_z,r,g,b); + + Draw_Line_GL_RGB(min_x,min_y,max_z,min_x,max_y,max_z,r,g,b); + Draw_Line_GL_RGB(max_x,min_y,max_z,max_x,max_y,max_z,r,g,b); + Draw_Line_GL_RGB(min_x,min_y,min_z,min_x,max_y,min_z,r,g,b); + Draw_Line_GL_RGB(max_x,min_y,min_z,max_x,max_y,min_z,r,g,b); + + Draw_Line_GL_RGB(min_x,min_y,min_z,min_x,min_y,max_z,r,g,b); + Draw_Line_GL_RGB(max_x,min_y,min_z,max_x,min_y,max_z,r,g,b); + Draw_Line_GL_RGB(max_x,max_y,min_z,max_x,max_y,max_z,r,g,b); + Draw_Line_GL_RGB(min_x,max_y,min_z,min_x,max_y,max_z,r,g,b); +} + +void Draw_Inclined_Cube_GL_RGB(double rectangleVexPos[4][2],double min_z,double max_z, + float r,float g,float b,float width) +{ + Draw_Line_GL_RGB(rectangleVexPos[0][0],rectangleVexPos[0][1],min_z,rectangleVexPos[1][0],rectangleVexPos[1][1],min_z,r,g,b,width); + Draw_Line_GL_RGB(rectangleVexPos[1][0],rectangleVexPos[1][1],min_z,rectangleVexPos[2][0],rectangleVexPos[2][1],min_z,r,g,b,width); + Draw_Line_GL_RGB(rectangleVexPos[2][0],rectangleVexPos[2][1],min_z,rectangleVexPos[3][0],rectangleVexPos[3][1],min_z,r,g,b,width); + Draw_Line_GL_RGB(rectangleVexPos[3][0],rectangleVexPos[3][1],min_z,rectangleVexPos[0][0],rectangleVexPos[0][1],min_z,r,g,b,width); + + Draw_Line_GL_RGB(rectangleVexPos[0][0],rectangleVexPos[0][1],max_z,rectangleVexPos[1][0],rectangleVexPos[1][1],max_z,r,g,b,width); + Draw_Line_GL_RGB(rectangleVexPos[1][0],rectangleVexPos[1][1],max_z,rectangleVexPos[2][0],rectangleVexPos[2][1],max_z,r,g,b,width); + Draw_Line_GL_RGB(rectangleVexPos[2][0],rectangleVexPos[2][1],max_z,rectangleVexPos[3][0],rectangleVexPos[3][1],max_z,r,g,b,width); + Draw_Line_GL_RGB(rectangleVexPos[3][0],rectangleVexPos[3][1],max_z,rectangleVexPos[0][0],rectangleVexPos[0][1],max_z,r,g,b,width); + + Draw_Line_GL_RGB(rectangleVexPos[0][0],rectangleVexPos[0][1],min_z,rectangleVexPos[0][0],rectangleVexPos[0][1],max_z,r,g,b,width); + Draw_Line_GL_RGB(rectangleVexPos[1][0],rectangleVexPos[1][1],min_z,rectangleVexPos[1][0],rectangleVexPos[1][1],max_z,r,g,b,width); + Draw_Line_GL_RGB(rectangleVexPos[2][0],rectangleVexPos[2][1],min_z,rectangleVexPos[2][0],rectangleVexPos[2][1],max_z,r,g,b,width); + Draw_Line_GL_RGB(rectangleVexPos[3][0],rectangleVexPos[3][1],min_z,rectangleVexPos[3][0],rectangleVexPos[3][1],max_z,r,g,b,width); +} + + +void Draw_Cube_GL_RGB(clusterFeature&f, float r,float g,float b) +{ + Draw_Cube_GL_RGB(f.min_x, + f.min_y, + f.min_z, + f.max_x, + f.max_y, + f.max_z,r,g,b); +} + +void DrawPoint(Point p, int size , float r, float g, float b) +{ + GLdouble dVect1[3]; + glPointSize(size); + glBegin(GL_POINTS); + glColor3d(r, g, b); + dVect1[0]=p.x; + dVect1[1]=p.y; + dVect1[2]=p.z; + glVertex3dv(dVect1); + glEnd(); +} + +void DrawPoint(Point p, int size , float r, float g, float b, double deltaMat[16]) +{ + GLdouble dVect1[3]; + glPointSize(size); + glBegin(GL_POINTS); + + p.transform(deltaMat); + glColor3d(r, g, b); + dVect1[0]=p.x; + dVect1[1]=p.y; + dVect1[2]=p.z; + glVertex3dv(dVect1); + glEnd(); +} + + +// change the mat for the firstScan coodration. +void GetCurrecntdelteMat(Scan& CurrentScan , double *deltaMat) +{ + //Point p, q; + double tempMat[16]; + double temp[16]= + { 1, 0, 0, 0, + 0, 1, 0, 0, + 0, 0, 1, 0, + 0, 0, 0, 1} ; + + M4inv(temp, tempMat); + MMult(CurrentScan.get_transMat(), tempMat, deltaMat); +} + +int DrawAll_ScanPoints_Number(vector allScans, int psize, float r, float g, float b, int n) +{ + int i,j,k,colorIdx; + Point p; + double deltaMat[16]; + + for(int i =0; i get("xyz")); + DataType Pt(CurrentScan->get("type")); + + GetCurrecntdelteMat(*CurrentScan , deltaMat); + int size =xyz.size(); + + for(j=0; j 360) + x_rotate=x_rotate - 360; + if (x_rotate < -360) + x_rotate=x_rotate + 360; + cout << "Ctrl Held" << endl; + return; + + case GLUT_ACTIVE_SHIFT : + y_rotate += (y - z_move_save)/100; + if (y_rotate > 360) + y_rotate=y_rotate - 360; + if (y_rotate < -360) + y_rotate=y_rotate + 360; + + cout << "Shift Held" << endl; + return; + + case GLUT_ACTIVE_ALT : + float temp = (x - x_move_save)/100; + z_rotate += atanf(temp); + + cout << "Alt Held" << endl; + return; + + } + + if(buttonSaveLeft) + { + x_move += (x - x_move_save)/100; + z_move += (y - z_move_save)/100; + } + + if(buttonSaveMiddle) + { + float multiplay = (y - z_move_save)/1000; + m_zoom =m_zoom*(1+multiplay); + } + + if(buttonSaveRight) + { + float multiplay = (y - z_move_save)/1000; + m_zoom =m_zoom*(1+multiplay); + } + + cout << "mouse move " << buttonSaveLeft << buttonSaveMiddle < 360) + x_rotate=x_rotate - 360; + if (x_rotate < -360) + x_rotate=x_rotate + 360; + break; + + case GLUT_KEY_F2: + x_rotate += -3; + if (x_rotate > 360) + x_rotate=x_rotate - 360; + if (x_rotate < -360) + x_rotate=x_rotate + 360; + break; + + case GLUT_KEY_F3: + y_rotate += 3; + if (y_rotate > 360) + y_rotate=y_rotate - 360; + if (y_rotate < -360) + y_rotate=y_rotate + 360; + break; + + case GLUT_KEY_F4 : + y_rotate += -3; + if (y_rotate > 360) + y_rotate=y_rotate - 360; + if (y_rotate < -360) + y_rotate=y_rotate + 360; + break; + + case GLUT_KEY_F5: + z_rotate += atanf(3); + break; + + case GLUT_KEY_F6: + z_rotate += atanf(-3); + break; + + case GLUT_KEY_F7: + break; + + case GLUT_KEY_F8: + break; + + case GLUT_KEY_F11: + printf("paseu\n"); + g_pause != g_pause; + break; + + case GLUT_KEY_F12: + printf("next\n"); + keycond.notify_one(); + break; + } + glutPostRedisplay(); +} + +static void Draw(void) +{ + DebugDrawFinished =false; + glClearColor(1.0, 1.0, 1.0, 1.0); + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + glClearColor(1.0, 1.0, 1.0, 1.0); + glLoadIdentity(); + + gluLookAt(m_eyex, m_eyey, m_eyez, + m_centerx, m_centery, m_centerz, + m_upx, m_upy, m_upz); + + glRotatef(x_rotate,1,0,0); + glRotatef(y_rotate,0,1,0); + glRotatef(z_rotate,0,0,1); + + glTranslatef(x_move,y_move,z_move); + glScalef(m_zoom, m_zoom, m_zoom); + + int scansize = Scan::allScans.size(); + Point p1, p2, p3; + + if (scansize <5) + { + DebugDrawFinished =true; + return ; + } + + Scan *CurrentScan = Scan::allScans[3]; + if (CurrentScan == NULL) + { + DebugDrawFinished =true; + return ; + } + + double deltaMat[16]; + double deltaMatNext[16]; + GetCurrecntdelteMat(*CurrentScan , deltaMat); + + double PosTheta[3]; + double Pos[3]; + Matrix4ToEuler(deltaMat, PosTheta, Pos); + + cout << " pose of current " + << " " << PosTheta [0] + << " " << PosTheta [1] + << " " << PosTheta [2] < +#include +#include + +#ifdef _MSC_VER +#include +#else +#include +#endif + +#include "veloslam/color_util.h" +#include "veloslam/veloscan.h" +#include "veloslam/trackermanager.h" +#include "veloslam/debugview.h" +#include "veloslam/kalmanfilter.h" + +#include /* OpenGL header file */ +#include /* OpenGL utilities header file */ + +#ifdef _MSC_VER +#include +#else +#include +#endif + +#define KG 35 + +extern int sliding_window_size; +extern int current_sliding_window_pos; +extern Trajectory VelodyneTrajectory; +extern VeloScan * g_pfirstScan; + +int TrackerManager::DrawTrackersMovtion_Long_Number_All(vector allScans, int n) +{ + int i,j,k,colorIdx; + Point p1,p2,p1text,p2text; + char object_moving_distance[256]; + + list::iterator it; + for(it=tracks.begin(); it!=tracks.end(); it++) + { + Tracker &tracker=*it; + int size=tracker.statusList.size(); + int firstNO= -1; + int secondNO= -1; + + if (tracker.moving_distance +#include +#define DefaultColumnSize 360 + +svm_model *m = svm_load_model("SegIter.model"); +svm_node *nod=new svm_node[361]; + +IntersectionDetection::IntersectionDetection() +{ + slashWide=200; + slashMaxLength=3500; + slashAngleDefinition=1; + + columnNum= 360; + cellSize= 50; + MaxRad=6000; + if(MaxRad%cellSize!=0) + MaxRad=(MaxRad/cellSize+1)*cellSize; + cellNum=MaxRad/cellSize; + MinRad=0; + +// CalcRadAndTheta(); +} + +IntersectionDetection::~IntersectionDetection() +{ + + +} + +int IntersectionDetection::GetPointData() +{ + for(unsigned int i = 0; i < Scan::allScans.size(); i++) + for (int j = 0; j < Scan::allScans[i]->get_points_red_size(); j++) + { + Point p; + p.x=Scan::allScans[i]->get_points_red()[j][0]; + p.y=Scan::allScans[i]->get_points_red()[j][1]; + p.z=Scan::allScans[i]->get_points_red()[j][2]; + allPoints_AfterRegstn.push_back(p); + } + + return 0; +} + +int IntersectionDetection::CalcRadAndTheta() +{ + + GetPointData(); + int i,j; + int size= allPoints_AfterRegstn.size(); + + for(i=0; i< size; ++i) + { + allPoints_AfterRegstn[i].rad = sqrt( allPoints_AfterRegstn[i].x*allPoints_AfterRegstn[i].x + + allPoints_AfterRegstn[i].z*allPoints_AfterRegstn[i].z ); + allPoints_AfterRegstn[i].tan_theta = allPoints_AfterRegstn[i].z/allPoints_AfterRegstn[i].x; + } + return 0; + +} + + +int IntersectionDetection::CalPointCellPos(double x,double y,double z ,int * column,int * row) +{ + int i,j,count=0; + float flag; + int offset; + int sectionSize=columnNum/8; + float inc=(M_PI*2)/columnNum; + + vector tanv; + vector::iterator result; + + for(i=0; i0 && z>0 ) + { + if(x >z) + { + flag=tan_theta; + result=upper_bound(tanv.begin(),tanv.end(),flag); + if(result==tanv.end()) + { + offset=sectionSize-1; + } + else + { + offset=result-tanv.begin(); + } + } + else + { + flag=1/tan_theta; + result=upper_bound(tanv.begin(),tanv.end(),flag); + if(result==tanv.end()) + { + offset=sectionSize; + } + else + { + diff=result-tanv.begin(); + offset=sectionSize*2-1-(diff); + } + + } + } + + else if(x<0 && z>0) + { + if(-x>z) + { + flag=-tan_theta; + result=upper_bound(tanv.begin(),tanv.end(),flag); + if(result==tanv.end()) + { + offset=sectionSize*3; + } + else + { + offset=sectionSize*4-1-(result-tanv.begin()); + } + + } + else + { + flag=1/-tan_theta; + result=upper_bound(tanv.begin(),tanv.end(),flag); + if(result==tanv.end()) + { + offset=sectionSize*3-1; + } + else + { + offset=sectionSize*2+(result-tanv.begin()); + } + } + } + + else if(x<0&&z<0) + { + if(-x>-z) + { + flag=tan_theta; + result=upper_bound(tanv.begin(),tanv.end(),flag); + if(result==tanv.end()) + { + offset=sectionSize*5-1; + } + else + { + offset=sectionSize*4+(result-tanv.begin()); + } + } + else + { + flag=1/tan_theta; + result=upper_bound(tanv.begin(),tanv.end(),flag); + if(result==tanv.end()) + { + offset=sectionSize*5; + } + else + { + offset=sectionSize*6-1-(result-tanv.begin()); + } + + } + } + + else if(x>0&&z<0) + { + if(x>-z) + { + flag=-tan_theta; + result=upper_bound(tanv.begin(),tanv.end(),flag); + if(result==tanv.end()) + { + offset=sectionSize*7; + } + else + { + offset=sectionSize*8-1-(result-tanv.begin()); + } + } + else + { + flag=1/-tan_theta; + result=upper_bound(tanv.begin(),tanv.end(),flag); + if(result==tanv.end()) + { + offset=sectionSize*7-1; + } + else + { + offset=sectionSize*6+(result-tanv.begin()); + } + } + } + + int k= (int)((rad-MinRad)/(cellSize*1.0)); + * column=offset; + * row=k; + return 0; +} + + +int IntersectionDetection::CalCellMinDis() +{ + for(int i=0;icellSize) + minCellDis=cellSize; + minCellDisList.push_back(minCellDis); + } + minCellDisList[0]=minCellDisList[1]; + + return 0; +} + + +int IntersectionDetection::TransferToCellArray() +{ + + int i,j,count=0; + float flag; + int offset; + int sectionSize=columnNum/8; + + + cellArray_AfterRegstn.resize(columnNum); + for(i=0; i tanv; + vector::iterator result; + + for(i=0; i=MaxRad) + continue; + + if(pt.x >0 && pt.z>0 ) + { + if(pt.x > pt.z) + { + flag=pt.tan_theta; + result=upper_bound(tanv.begin(),tanv.end(),flag); + if(result==tanv.end()) + { + offset=sectionSize-1; + } + else + { + offset=result-tanv.begin(); + } + } + else + { + flag=1/pt.tan_theta; + result=upper_bound(tanv.begin(),tanv.end(),flag); + if(result==tanv.end()) + { + offset=sectionSize; + } + else + { + diff=result-tanv.begin(); + offset=sectionSize*2-1-(diff); + } + + } + } + + else if(pt.x<0 && pt.z>0) + { + if(-pt.x>pt.z) + { + flag=-pt.tan_theta; + result=upper_bound(tanv.begin(),tanv.end(),flag); + if(result==tanv.end()) + { + offset=sectionSize*3; + } + else + { + offset=sectionSize*4-1-(result-tanv.begin()); + } + + } + else + { + flag=1/-pt.tan_theta; + result=upper_bound(tanv.begin(),tanv.end(),flag); + if(result==tanv.end()) + { + offset=sectionSize*3-1; + } + else + { + offset=sectionSize*2+(result-tanv.begin()); + } + } + } + + else if(pt.x<0&&pt.z<0) + { + if(-pt.x>-pt.z) + { + flag=pt.tan_theta; + result=upper_bound(tanv.begin(),tanv.end(),flag); + if(result==tanv.end()) + { + offset=sectionSize*5-1; + } + else + { + offset=sectionSize*4+(result-tanv.begin()); + } + } + else + { + flag=1/pt.tan_theta; + result=upper_bound(tanv.begin(),tanv.end(),flag); + if(result==tanv.end()) + { + offset=sectionSize*5; + } + else + { + offset=sectionSize*6-1-(result-tanv.begin()); + } + + } + } + + else if(pt.x>0&&pt.z<0) + { + if(pt.x>-pt.z) + { + flag=-pt.tan_theta; + result=upper_bound(tanv.begin(),tanv.end(),flag); + if(result==tanv.end()) + { + offset=sectionSize*7; + } + else + { + offset=sectionSize*8-1-(result-tanv.begin()); + } + } + else + { + flag=1/-pt.tan_theta; + result=upper_bound(tanv.begin(),tanv.end(),flag); + if(result==tanv.end()) + { + offset=sectionSize*7-1; + } + else + { + offset=sectionSize*6+(result-tanv.begin()); + } + } + } + + else + { + continue; + } + + int k= (int)((pt.rad-MinRad)/(cellSize*1.0)); + cellArray_AfterRegstn[offset][k].push_back(&pt); + } + return 0; +} + + +int IntersectionDetection:: CalcCellFeature(cell& cellobj, cellFeature& f) +{ + int outlier; + float lastMaxY; + f.size=cellobj.size(); + f.cellType=0; + + if(f.size==0) + { + f.cellType|=CELL_TYPE_INVALID; + return 0; + } + + f.ave_x= f.ave_y = f.ave_z=0.0; + f.delta_y=0; + + int i=0; + for(i=0; ix; + f.ave_z+=cellobj[i]->z; + f.ave_y+=cellobj[i]->y; + + if(i==0) + { + outlier=0; + f.min_x=f.max_x=cellobj[i]->x; + f.min_z=f.max_z=cellobj[i]->z; + lastMaxY=f.min_y=f.max_y=cellobj[i]->y; + } + else + { + if(f.max_xx) f.max_x=cellobj[i]->x; + + if(f.min_x>cellobj[i]->x) f.min_x=cellobj[i]->x; + + if(f.max_zz) f.max_z=cellobj[i]->z; + + if(f.min_z>cellobj[i]->z) f.min_z=cellobj[i]->z; + + if(f.max_yy) + { + lastMaxY=f.max_y; + f.max_y=cellobj[i]->y; + outlier=i; + } + + if(f.min_y>cellobj[i]->y) + f.min_y=cellobj[i]->y; + } + } + + if(f.size>1) + { + int y=f.ave_y-cellobj[outlier]->y; + y/=(f.size-1)*1.0; + + if(cellobj[outlier]->y-y<50) + { + outlier=-1; + f.ave_y/=f.size*1.0; + } + else + { + f.max_y=lastMaxY; + f.ave_y=y; + } + } + else + { + outlier=-1; + f.ave_y/=f.size*1.0; + } + + f.ave_x/=f.size*1.0; + f.ave_z/=f.size*1.0; + + for(i=0; iy - f.ave_y); + } + + float threshold; + threshold=f.delta_y; + + float GridThresholdGroundDetect =120; + if(threshold > GridThresholdGroundDetect) + f.cellType|=CELL_TYPE_ABOVE_DELTA_Y; + else + f.cellType|=CELL_TYPE_BELOW_DELTA_Y; + return 0; +} + + +int IntersectionDetection::CalcAllCellFeature() +{ + int i,j; + + if( cellArray_AfterRegstn.size()==0) + return -1; + + if( cellFeatureArray_AfterRegstn.size()==0) + { + cellFeatureArray_AfterRegstn.resize(columnNum); + for(i=0; i 120) + // cellFeatureArray_AfterRegstn[j][i].cellType |= CELL_TYPE_ABOVE_DELTA_Y; + } + } + return 0; + +} + +int IntersectionDetection::CalWideSlashEdge_For_RoadShape(float Angle,int startColumID,int startCellID,float maxLength,float wide) +{ + float LengthX; + float LengthZ; + double sinAngle=sin(Angle*M_PI/180); + double cosAngle=cos(Angle*M_PI/180); + float columnAngle=360.0/columnNum; + + float XPos=cellSize*(startCellID+0.5)*cos( columnAngle*(startColumID+0.5)*M_PI/180); + float ZPos=cellSize*(startCellID+0.5)*sin( columnAngle*(startColumID+0.5)*M_PI/180); + + float halfWide=wide/2; + float vexPointXPos1,vexPointZPos1,vexPointXPos2,vexPointZPos2,closePointX,closePointZ; + float moveInterval=0; + float midPointX,midPointZ; + int pointColumn,pointRow; + + IntersectionFeature temp; + temp.slashLength=maxLength; + temp.angle=Angle; + + for(float k=0;k + vexPointXPos2*vexPointXPos2+vexPointZPos2*vexPointZPos2) + { + closePointX=vexPointXPos2; + closePointZ=vexPointZPos2; + } + else + { + closePointX=vexPointXPos1; + closePointZ=vexPointZPos1; + } + CalPointCellPos(closePointX,0,closePointZ,&pointColumn,&pointRow); + moveInterval=minCellDisList[pointRow]; + + for(float i=0;i<=wide;i+=moveInterval) + { + midPointX=vexPointXPos1-i*cosAngle*moveInterval; + midPointZ=vexPointZPos1+i*sinAngle*moveInterval; + CalPointCellPos(midPointX,0,midPointZ,&pointColumn,&pointRow); + + if(pointRow>cellNum-1) + { + temp.slashEndColumn=pointColumn; + temp.slashEndRow=cellNum-1; + goto labelCalSlashEdge_For_RoadShape; + } + cellFeature& cellobj=cellFeatureArray_AfterRegstn[pointColumn][pointRow]; + if(cellobj.cellType & CELL_TYPE_ABOVE_DELTA_Y ) + { + temp.slashEndColumn=pointColumn; + temp.slashEndRow=pointRow; + temp.slashLength=k; + goto labelCalSlashEdge_For_RoadShape; + + } + } + + } + +labelCalSlashEdge_For_RoadShape: + temp.slashLength=temp.slashLength/100;//单位化为m + intersectionFeature.push_back(temp); + + return 0; +} + + +int IntersectionDetection::DetectIntersection() +{ + int startColumn=0; + int startRow=30; + + for(float i=0;i<360;i+=slashAngleDefinition) + { + CalWideSlashEdge_For_RoadShape(i,startColumn,startRow,slashMaxLength,slashWide); + } + + double labelSVM; + for(int i=0;i<360;i++) + { + nod[i].index=i+1; + nod[i].value=intersectionFeature[i].slashLength/slashMaxLength; + } + nod[360].index=-1; + labelSVM= svm_predict(m,nod); + + ofstream output; + output.open("intersection.txt"); + output<<"labelSVM:"<0.5) + cout<<"intersection"<= 0; j--) // reverse order gives better results. + { + // find minimum cost over rows. + min = assigncost[0][j]; + imin = 0; + for (i = 1; i < dim; i++) + if (assigncost[i][j] < min) + { + min = assigncost[i][j]; + imin = i; + } + v[j] = min; + + if (++matches[imin] == 1) + { + // init assignment if minimum row assigned for first time. + rowsol[imin] = j; + colsol[j] = imin; + } + else + colsol[j] = -1; // row already assigned, column not assigned. + } + + // REDUCTION TRANSFER + for (i = 0; i < dim; i++) + if (matches[i] == 0) // fill list of unassigned 'free' rows. + free[numfree++] = i; + else + if (matches[i] == 1) // transfer reduction from rows that are assigned once. + { + j1 = rowsol[i]; + min = BIG; + for (j = 0; j < dim; j++) + if (j != j1) + if (assigncost[i][j] - v[j] < min) + min = assigncost[i][j] - v[j]; + v[j1] = v[j1] - min; + } + + // AUGMENTING ROW REDUCTION + int loopcnt = 0; // do-loop to be done twice. + do + { + loopcnt++; + + // scan all free rows. + // in some cases, a free row may be replaced with another one to be scanned next. + k = 0; + prvnumfree = numfree; + numfree = 0; // start list of rows still free after augmenting row reduction. + while (k < prvnumfree) + { + i = free[k]; + k++; + + // find minimum and second minimum reduced cost over columns. + umin = assigncost[i][0] - v[0]; + j1 = 0; + usubmin = BIG; + for (j = 1; j < dim; j++) + { + h = assigncost[i][j] - v[j]; + if (h < usubmin) + if (h >= umin) + { + usubmin = h; + j2 = j; + } + else + { + usubmin = umin; + umin = h; + j2 = j1; + j1 = j; + } + } + + i0 = colsol[j1]; + if (umin < usubmin) + // change the reduction of the minimum column to increase the minimum + // reduced cost in the row to the subminimum. + v[j1] = v[j1] - (usubmin - umin); + else // minimum and subminimum equal. + if (i0 >= 0) // minimum column j1 is assigned. + { + // swap columns j1 and j2, as j2 may be unassigned. + j1 = j2; + i0 = colsol[j2]; + } + + // (re-)assign i to j1, possibly de-assigning an i0. + rowsol[i] = j1; + colsol[j1] = i; + + if (i0 >= 0) // minimum column j1 assigned earlier. + if (umin < usubmin) + // put in current k, and go back to that k. + // continue augmenting path i - j1 with i0. + free[--k] = i0; + else + // no further augmenting reduction possible. + // store i0 in list of free rows for next phase. + free[numfree++] = i0; + } + } + while (loopcnt < 2); // repeat once. + + // AUGMENT SOLUTION for each free row. + for (f = 0; f < numfree; f++) + { + freerow = free[f]; // start row of augmenting path. + + // Dijkstra shortest path algorithm. + // runs until unassigned column added to shortest path tree. + for (j = 0; j < dim; j++) + { + d[j] = assigncost[freerow][j] - v[j]; + pred[j] = freerow; + collist[j] = j; // init column list. + } + + low = 0; // columns in 0..low-1 are ready, now none. + up = 0; // columns in low..up-1 are to be scanned for current minimum, now none. + // columns in up..dim-1 are to be considered later to find new minimum, + // at this stage the list simply contains all columns + unassignedfound = FALSE; + do + { + if (up == low) // no more columns to be scanned for current minimum. + { + last = low - 1; + + // scan columns for up..dim-1 to find all indices for which new minimum occurs. + // store these indices between low..up-1 (increasing up). + min = d[collist[up++]]; + for (k = up; k < dim; k++) + { + j = collist[k]; + h = d[j]; + if (h <= min) + { + if (h < min) // new minimum. + { + up = low; // restart list at index low. + min = h; + } + // new index with same minimum, put on undex up, and extend list. + collist[k] = collist[up]; + collist[up++] = j; + } + } + + // check if any of the minimum columns happens to be unassigned. + // if so, we have an augmenting path right away. + for (k = low; k < up; k++) + if (colsol[collist[k]] < 0) + { + endofpath = collist[k]; + unassignedfound = TRUE; + break; + } + } + + if (!unassignedfound) + { + // update 'distances' between freerow and all unscanned columns, via next scanned column. + j1 = collist[low]; + low++; + i = colsol[j1]; + h = assigncost[i][j1] - v[j1] - min; + + for (k = up; k < dim; k++) + { + j = collist[k]; + v2 = assigncost[i][j] - v[j] - h; + if (v2 < d[j]) + { + pred[j] = i; + if (v2 == min) // new column found at same minimum value + if (colsol[j] < 0) + { + // if unassigned, shortest augmenting path is complete. + endofpath = j; + unassignedfound = TRUE; + break; + } + // else add to list to be scanned right away. + else + { + collist[k] = collist[up]; + collist[up++] = j; + } + d[j] = v2; + } + } + } + } + while (!unassignedfound); + + // update column prices. + for (k = 0; k <= last; k++) + { + j1 = collist[k]; + v[j1] = v[j1] + d[j1] - min; + } + + // reset row and column assignments along the alternating path. + do + { + i = pred[endofpath]; + colsol[endofpath] = i; + j1 = endofpath; + endofpath = rowsol[i]; + rowsol[i] = j1; + } + while (i != freerow); + } + + // calculate optimal cost. + cost lapcost = 0; + for (i = 0; i < dim; i++) + { + j = rowsol[i]; + u[i] = assigncost[i][j] - v[j]; + lapcost = lapcost + assigncost[i][j]; + } + + // free reserved memory. + delete[] pred; + delete[] free; + delete[] collist; + delete[] matches; + delete[] d; + + return lapcost; +} + +void checklap(int dim, + cost **assigncost, + col *rowsol, + row *colsol, + cost *u, + cost *v) +{ + row i; + col j; + cost lapcost = 0, redcost = 0; + Boolean *matched; + char wait; + + matched = new Boolean[dim]; + + for (i = 0; i < dim; i++) + for (j = 0; j < dim; j++) + if ((redcost = assigncost[i][j] - u[i] - v[j]) < 0) + { + printf("\n"); + printf("negative reduced cost i %d j %d redcost %d\n", i, j, redcost); + printf("\n\ndim %5d - press key\n", dim); + scanf("%d", &wait); + break; + } + + for (i = 0; i < dim; i++) + if ((redcost = assigncost[i][rowsol[i]] - u[i] - v[rowsol[i]]) != 0) + { + printf("\n"); + printf("non-null reduced cost i %d soli %d redcost %d\n", i, rowsol[i], redcost); + printf("\n\ndim %5d - press key\n", dim); + scanf("%d", &wait); + break; + } + + for (j = 0; j < dim; j++) + matched[j] = FALSE; + + for (i = 0; i < dim; i++) + if (matched[rowsol[i]]) + { + printf("\n"); + printf("column matched more than once - i %d soli %d\n", i, rowsol[i]); + printf("\n\ndim %5d - press key\n", dim); + scanf("%d", &wait); + break; + } + else + matched[rowsol[i]] = TRUE; + + + for (i = 0; i < dim; i++) + if (colsol[rowsol[i]] != i) + { + printf("\n"); + printf("error in row solution i %d soli %d solsoli %d\n", i, rowsol[i], colsol[rowsol[i]]); + printf("\n\ndim %5d - press key\n", dim); + scanf("%d", &wait); + break; + } + + for (j = 0; j < dim; j++) + if (rowsol[colsol[j]] != j) + { + printf("\n"); + printf("error in col solution j %d solj %d solsolj %d\n", j, colsol[j], rowsol[colsol[j]]); + printf("\n\ndim %5d - press key\n", dim); + scanf("%d", &wait); + break; + } + + delete[] matched; + return; +} diff --git a/src/veloslam/matrix.cc b/src/veloslam/matrix.cc new file mode 100644 index 0000000..385bf9f --- /dev/null +++ b/src/veloslam/matrix.cc @@ -0,0 +1,950 @@ +/* + * matrix implementation + * + * Copyright (C) YuanJun, ZhangLiang, Li Wei, Li Ming, Andreas Nuechter, + * + * Released under the GPL version 3. + * + */ + +/** + * @file + * @brief + * + * @author Andreas Nuechter. Jacobs University Bremen, Germany + * @author YuanJun, Wuhan University, China + * @author ZhangLiang, Wuhan University, China + * @author Li Wei, Wuhan University, China + * @author Li Ming, Wuhan University, China + */ + +#include "veloslam/matrix.h" +#include +#include + +////////////////////////////////////////////////////////////////////// +// Construction/Destruction +////////////////////////////////////////////////////////////////////// + +CMatrix::CMatrix() +{ + m_nRow = 0; + m_nCol = 0; + + m_pTMatrix.resize (m_nRow); + for(unsigned int i=0; i < m_nRow; i++) + { + for(unsigned int j=0; j < m_nCol; j++) + { + m_pTMatrix[i].resize (m_nCol); + m_pTMatrix[i][j] = (double) 0; + } + } +} + + +CMatrix::~CMatrix() +{ + +} + + +CMatrix::CMatrix(unsigned int nRow,unsigned int nCol) +{ + + TMatrix tMatrix; + tMatrix.resize (nRow); + + for(unsigned int i=0; i < nRow; i++) + { + for(unsigned int j=0; j < nCol; j++) + { + tMatrix[i].resize(nCol); + tMatrix[i][j] = (double) 0; + } + } + + m_nRow = nRow; + m_nCol = nCol; + m_pTMatrix = tMatrix; + +} + + +CMatrix::CMatrix(CMatrix& cMatrixB) +{ + // Initialize the variable + m_nRow = cMatrixB.m_nRow ; + m_nCol = cMatrixB.m_nCol ; + m_pTMatrix = cMatrixB.m_pTMatrix ; + + // Copy Data + for(unsigned int i=0; i< cMatrixB.m_nRow; i++) + { + for(unsigned int j=0; j < cMatrixB.m_nCol; j++) + { + m_pTMatrix [i][j] = cMatrixB.m_pTMatrix [i][j]; + } + } + +} + + +///////////////////////////////////////////////////////////////////////////// +// CMatrix member functions +// + +CMatrix CMatrix::operator +(CMatrix& cMatrixB) +{ + + + CMatrix cMatrix = *this; + + for(unsigned int i=0; i < m_nRow; i++) + { + for(unsigned int j=0; j < m_nCol; j++) + { + cMatrix.m_pTMatrix [i][j] = m_pTMatrix [i][j] + cMatrixB.m_pTMatrix [i][j]; + } + } + + return cMatrix; + +} + + +CMatrix CMatrix::operator -(CMatrix& cMatrixB) +{ + + CMatrix cMatrix = *this; + + for(unsigned int i=0; i < m_nRow; i++) + { + for(unsigned int j=0; j < m_nCol; j++) + { + cMatrix.m_pTMatrix [i][j] = m_pTMatrix [i][j] - cMatrixB.m_pTMatrix [i][j]; + } + } + + return cMatrix; + +} + + +CMatrix CMatrix::operator *(CMatrix& cMatrixB) +{ + + CMatrix cResultMatrix(m_nRow,cMatrixB.m_nCol); + + for(unsigned int i=0; i < m_nRow; i++) + { + for(unsigned int j=0; j < cMatrixB.m_nCol; j++) + { + for(unsigned int m=0; m < m_nCol; m++) + { + cResultMatrix.m_pTMatrix [i][j] += m_pTMatrix [i][m] * cMatrixB.m_pTMatrix [m][j]; + } + } + } + + return cResultMatrix; +} + + +CMatrix CMatrix::operator * (double nValue) +{ + CMatrix cMatrix = *this; + + for(unsigned int i=0; i < m_nRow; i++) + { + for(unsigned int j=0; j < m_nCol; j++) + { + cMatrix.m_pTMatrix [i][j] =m_pTMatrix [i][j] * nValue; + } + } + + return cMatrix; +} + + +CMatrix& CMatrix::operator =(CMatrix& cMatrixB) +{ + + m_nRow = cMatrixB.m_nRow ; + m_nCol = cMatrixB.m_nCol ; + m_pTMatrix = cMatrixB.m_pTMatrix ; + + for(unsigned int i=0; i < cMatrixB.m_nRow; i++) + { + for(unsigned int j=0; j< cMatrixB.m_nCol; j++) + { + m_pTMatrix [i][j] = cMatrixB.m_pTMatrix [i][j]; + } + } + + return *this; +} + +CMatrix& CMatrix::operator =(const CMatrix& cMatrixB) +{ + + m_nRow = cMatrixB.m_nRow ; + m_nCol = cMatrixB.m_nCol ; + m_pTMatrix = cMatrixB.m_pTMatrix ; + + for(unsigned int i=0; i < cMatrixB.m_nRow; i++) + { + for(unsigned int j=0; j< cMatrixB.m_nCol; j++) + { + m_pTMatrix [i][j] = cMatrixB.m_pTMatrix [i][j]; + } + } + + return *this; +} + +CMatrix& CMatrix::operator += (CMatrix& cMatrixB) +{ + + for(unsigned int i=0; i < cMatrixB.m_nRow; i++) + { + for(unsigned int j=0; j< cMatrixB.m_nCol; j++) + { + m_pTMatrix [i][j] += cMatrixB.m_pTMatrix [i][j]; + } + } + + return *this; + +} + + +CMatrix CMatrix::Transpose() +{ + CMatrix cMatrix(m_nCol,m_nRow); + + for(unsigned int i=0; i < m_nRow; i++) + { + for(unsigned int j=0; j < m_nCol; j++) + { + cMatrix.m_pTMatrix [j][i] = m_pTMatrix [i][j]; + } + } + + return cMatrix; +} + + + +CMatrix CMatrix::MergeColumnsToColumnVector() +{ + CMatrix cMatrix(m_nRow * m_nCol,(unsigned int)1); + + for(unsigned int j=0; j < m_nCol; j++) + { + for(unsigned int i=0; i < m_nRow; i++) + { + cMatrix.m_pTMatrix [i + j * m_nRow][(unsigned int)0] = m_pTMatrix [i][j]; + } + } + + return cMatrix; + +} + +///////////////////////////////////////////////////////////////////////////// +// Get the total value of the matrix +///////////////////////////////////////////////////////////////////////////// + +double CMatrix::GetTotalElementValue() +{ + double nTotalValue = 0; + + for(unsigned int i=0; i < m_nRow; i++) + { + for( unsigned int j=0; j < m_nCol; j++) + { + nTotalValue += m_pTMatrix [i][j]; + } + } + + return nTotalValue; +} + +///////////////////////////////////////////////////////////////////////////// +// Get System Error +///////////////////////////////////////////////////////////////////////////// + +double CMatrix::GetSystemError() const +{ + double nSystemError = 0; + + for(unsigned int i=0; i < m_nRow; i++) + { + for( unsigned int j=0; j < m_nCol; j++) + { + nSystemError += m_pTMatrix [i][j] * m_pTMatrix [i][j]; + } + } + + return nSystemError; + +} + +///////////////////////////////////////////////////////////////////////////// +// Make all the matrix elements to be changed into absolute value +///////////////////////////////////////////////////////////////////////////// + +CMatrix CMatrix::AbsoluteValue () +{ + CMatrix cMatrix = *this; + + for(unsigned int i=0; i < m_nRow; i++) + { + for(unsigned int j=0; j < m_nCol; j++) + { + cMatrix.m_pTMatrix [i][j] = fabs( m_pTMatrix [i][j]); + + } + + } + + return cMatrix; + +} + + +CMatrix CMatrix::Inverse() +{ + + + CMatrix cMatrix = *this; + + int *pIntArray = new int [2*m_nCol]; + + for(unsigned int k=0; k < cMatrix.m_nCol; k++) + { + + double nMaxElement = cMatrix.m_pTMatrix [k][k]; + unsigned int nMainRow = k; + + for(unsigned int nCount = k+1; nCount < cMatrix.m_nCol; nCount++) + { + if( fabs(nMaxElement) < fabs(cMatrix.m_pTMatrix [nCount][k]) ) + { + nMaxElement = cMatrix.m_pTMatrix [nCount][k]; + nMainRow = nCount; + } + } + + pIntArray [2*k] = k; + pIntArray [2*k+1] = nMainRow; + + cMatrix.SwapMatrixRow(k,nMainRow); + + + cMatrix.m_pTMatrix [k][k] = 1/(cMatrix.m_pTMatrix [k][k]); + + for(unsigned int i=0; i < cMatrix.m_nRow; i++) + { + if( i != k) + cMatrix.m_pTMatrix [i][k] = -(cMatrix.m_pTMatrix [k][k]) * (cMatrix.m_pTMatrix [i][k]); + + } + + + for(unsigned int m=0; m < cMatrix.m_nRow; m++) + { + if ( m == k) + continue; + + for(unsigned int n=0; n < cMatrix.m_nCol; n++) + { + if ( n == k) + continue; + + cMatrix.m_pTMatrix [m][n] += cMatrix.m_pTMatrix [m][k] * cMatrix.m_pTMatrix [k][n]; + + } + + + } + + for(unsigned int j=0; j < cMatrix.m_nCol; j++) + { + if( j != k) + cMatrix.m_pTMatrix [k][j] = (cMatrix.m_pTMatrix [k][k]) * (cMatrix.m_pTMatrix [k][j]); + + } + + } + + + + for(int i=2*m_nCol-1; i > 0; i--) + { + cMatrix.SwapMatrixCol(pIntArray[i],pIntArray[i-1]); + i--; + } + + delete []pIntArray; + + return cMatrix; + +} + + +void CMatrix::SwapMatrixRow(unsigned int nRow1,unsigned int nRow2) +{ + if( nRow1 == nRow2) + return; + + double *pArray = new double; + + for(unsigned int i=0; i < m_nCol; i++) + { + // Swap the datum of the two rows + pArray[0] = m_pTMatrix [nRow1][i]; + m_pTMatrix [nRow1][i] = m_pTMatrix [nRow2][i]; + m_pTMatrix [nRow2][i] = pArray[0]; + } + + delete pArray; +} + + +void CMatrix::SwapMatrixCol(unsigned int nCol1,unsigned int nCol2) +{ + if( nCol1 == nCol2) + return; + + double *pArray = new double; + for(unsigned int i=0; i < m_nRow; i++) + { + // Swap the datum of the two columns + pArray[0] = m_pTMatrix [i][nCol1]; + m_pTMatrix [i][nCol1] = m_pTMatrix [i][nCol2]; + m_pTMatrix [i][nCol2] = pArray[0]; + } + + delete pArray; +} + + + + +void CMatrix::Eye() +{ + + + for(unsigned int i=0; i < m_nRow; i++) + { + for(unsigned int j=0; j < m_nCol; j++) + { + if(i == j) + { + m_pTMatrix [i][j] = 1; + } + else + { + m_pTMatrix [i][j] = 0; + } + } + + } + + +} + + + + +void CMatrix::GetMatrixData(CMatrix& cMatrix, unsigned int nIndex) +{ + + + for(unsigned int i=0; i < cMatrix.m_nRow; i++) + { + for(unsigned int j=0; j < cMatrix.m_nCol; j++) + { + m_pTMatrix [nIndex + i * cMatrix.m_nCol + j][0] = cMatrix.m_pTMatrix [i][j]; + } + + } + +} + + +void CMatrix::SetMatrixData(CMatrix& cMatrix, unsigned int nIndex) +{ + + for(unsigned int i=0; i < cMatrix.m_nRow; i++) + { + for(unsigned int j=0; j < cMatrix.m_nCol; j++) + { + cMatrix.m_pTMatrix [i][j] = m_pTMatrix [nIndex + i * cMatrix.m_nCol + j][0]; + + + } + } + +} + + + + +void CMatrix::SetMatrixRowData(CMatrix& cMatrix, unsigned int nIndex, unsigned int nRow) +{ + + for(unsigned int i=0; i < cMatrix.m_nCol; i++) + { + cMatrix.m_pTMatrix [nRow][i] = m_pTMatrix [nIndex + i][(unsigned int)0]; + } + +} + + + + +void CMatrix::GetMatrixRowData(CMatrix& cMatrix, unsigned int nIndex, unsigned int nRow) +{ + + + for(unsigned int i=0; i < cMatrix.m_nCol; i++) + { + m_pTMatrix [nIndex + i][(unsigned int)0] = cMatrix.m_pTMatrix [nRow][i]; + } + +} + +void CMatrix::SetMatrixRowNumber(unsigned int nRow) +{ + m_nRow = nRow; + + m_pTMatrix.resize (m_nRow); + for(unsigned int i=0; i < m_nRow; i++) + { + m_pTMatrix[i].resize (m_nCol); + for(unsigned int j=0; j < m_nCol; j++) + { + m_pTMatrix[i][j] = (double) 0; + } + } + +} + + +void CMatrix::SetMatrixColNumber(unsigned int nCol) +{ + m_nCol = nCol; + + m_pTMatrix.resize (m_nRow); + for(unsigned int i=0; i < m_nRow; i++) + { + m_pTMatrix[i].resize (m_nCol); + for(unsigned int j=0; j < m_nCol; j++) + { + m_pTMatrix[i][j] = (double) 0; + } + } + +} + +void CMatrix::SetMatrixRowAndCol(unsigned int nRow,unsigned int nCol) +{ + m_nRow = nRow; + m_nCol = nCol; + + m_pTMatrix.resize (m_nRow); + for(unsigned int i=0; i < m_nRow; i++) + { + m_pTMatrix[i].resize (m_nCol); + for(unsigned int j=0; j < m_nCol; j++) + { + m_pTMatrix[i][j] = (double) 0; + } + } + +} + + + +void CMatrix::Initialize() +{ + m_nRow = 0; + m_nCol = 0; + + m_pTMatrix.resize (m_nRow); + for(unsigned int i=0; i < m_nRow; i++) + { + m_pTMatrix[i].resize (m_nCol); + for(unsigned int j=0; j < m_nCol; j++) + { + m_pTMatrix[i][j] = (double) 0; + } + } + +} + + + +void CMatrix::InitializeZero() +{ + + for(unsigned int i=0; i < m_nRow; i++) + { + for(unsigned int j=0; j < m_nCol; j++) + { + m_pTMatrix[i][j] = (double) 0; + } + } + +} + + +void CMatrix::RandomInitialize () +{ + for(unsigned int i=0; i < m_nRow; i++) + { + for(unsigned int j=0; j < m_nCol; j++) + { + m_pTMatrix [i][j] = (double)(rand() - (0.5*RAND_MAX)) / (0.5*RAND_MAX); + } + } + +} + + + +void CMatrix::CopySubMatrix(CMatrix& cMatrix,unsigned int nStartX,unsigned int nStartY) +{ + + + for(unsigned int i=0; i < cMatrix.m_nRow; i++) + { + for(unsigned int j=0; j < cMatrix.m_nCol; j++) + { + cMatrix.m_pTMatrix [i][j] = m_pTMatrix [nStartY + i][nStartX + j]; + } + } + +} + + +void CMatrix::CopyMatrix(CMatrix& cMatrix) +{ + m_nRow = cMatrix.m_nRow ; + m_nCol = cMatrix.m_nCol ; + + m_pTMatrix = cMatrix.m_pTMatrix ; + + for(unsigned int i=0; i < m_nRow; i++) + { + for(unsigned int j=0; j < m_nCol; j++) + { + m_pTMatrix [i][j] = cMatrix.m_pTMatrix [i][j]; + } + + } + +} + + +void CMatrix::CopySubMatrixFromVector(CMatrix& cMatrix,unsigned int nIndex) +{ + + + for(unsigned int j=0; j < cMatrix.m_nCol; j++) + { + for(unsigned int i=0; i < cMatrix.m_nRow; i++) + { + cMatrix.m_pTMatrix [i][j] = m_pTMatrix [nIndex + j * cMatrix.m_nRow + i ][(unsigned int)0]; + } + } + +} + + + +void CMatrix::nncpyi(CMatrix &cMatrix, unsigned int nTimes) +{ + unsigned int i; + + m_nRow = cMatrix.m_nRow ; + m_nCol = cMatrix.m_nCol * nTimes; + + m_pTMatrix.resize (m_nRow); + for(int i=0; i < m_nRow; i++) + { + for(unsigned int j=0; j < m_nCol; j++) + { + m_pTMatrix[i].resize (m_nCol); + m_pTMatrix[i][j] = (double) 0; + } + } + + for(i=0; i < m_nRow; i++) + { + for(unsigned int j=0; j < cMatrix.m_nCol; j++) + { + for(unsigned int k=0; k < nTimes; k++) + { + m_pTMatrix [i][j * nTimes + k] = cMatrix.m_pTMatrix [i][j]; + } + } + } + +} + + + +void CMatrix::nncpyd(CMatrix &cMatrix) +{ + unsigned int i; + m_nRow = cMatrix.m_nRow ; + m_nCol = cMatrix.m_nCol * cMatrix.m_nRow ; + + m_pTMatrix.resize (m_nRow); + for(int i=0; i < m_nRow; i++) + { + for(unsigned int j=0; j < m_nCol; j++) + { + m_pTMatrix[i].resize (m_nCol); + m_pTMatrix[i][j] = (double) 0; + } + } + + for(i=0; i < m_nRow; i++) + { + for(unsigned int j=0; j < cMatrix.m_nCol; j++) + { + for(unsigned int k=0; k < cMatrix.m_nRow; k++) + { + if(i == (j * cMatrix.m_nRow + k) % cMatrix.m_nRow ) + m_pTMatrix [i][j * cMatrix.m_nRow + k] = cMatrix.m_pTMatrix [i][j]; + } + } + } + +} + + + +void CMatrix::nncpy(CMatrix& cMatrix,unsigned int nTimes) +{ + unsigned int i,j; + m_nRow = cMatrix.m_nRow ; + m_nCol = cMatrix.m_nCol * nTimes; + + m_pTMatrix.resize (m_nRow); + for(int i=0; i < m_nRow; i++) + { + for(int j=0; j < m_nCol; j++) + { + m_pTMatrix[i].resize (m_nCol); + m_pTMatrix[i][j] = (double) 0; + } + } + + for(i=0; i < m_nRow; i++) + { + for(unsigned int j=0; j < nTimes; j++) + { + for(unsigned int k=0; k < cMatrix.m_nCol; k++) + { + m_pTMatrix [i][j * cMatrix.m_nCol + k] = cMatrix.m_pTMatrix [i][k]; + } + } + } + +} + + + +CMatrix CMatrix::Sigmoid() +{ + CMatrix cMatrix = *this; + + for(unsigned int i=0; i < m_nRow; i++) + { + for(unsigned int j=0; j < m_nCol; j++) + { + cMatrix.m_pTMatrix [i][j] = 1 / (1 + exp(-m_pTMatrix [i][j])); + } + + } + + return cMatrix; +} + + +CMatrix CMatrix::tanh () +{ + CMatrix cMatrix = *this; + + for(unsigned int i=0; i < m_nRow; i++) + { + for(unsigned int j=0; j < m_nCol; j++) + { + cMatrix.m_pTMatrix [i][j] = 1 - (2 * exp(-m_pTMatrix [i][j])) / (1 + exp(-m_pTMatrix [i][j])); + } + + } + + return cMatrix; +} + + + +CMatrix CMatrix::Tansig() +{ + CMatrix cMatrix = *this; + + for(unsigned int i=0; i < m_nRow; i++) + { + for(unsigned int j=0; j < m_nCol; j++) + { + cMatrix.m_pTMatrix [i][j] = 2 / (1 + exp(- 2 * m_pTMatrix [i][j])) - 1; + } + } + + return cMatrix; + +} + + + +CMatrix CMatrix::TansigDerivative() +{ + CMatrix cMatrix = *this; + + for(unsigned int i=0; i < m_nRow; i++) + { + for(unsigned int j=0; j < m_nCol; j++) + { + cMatrix.m_pTMatrix [i][j] = (2 / (1 + exp(- 2 * m_pTMatrix [i][j])) - 1) * (2 / (1 + exp(- 2 * m_pTMatrix [i][j])) - 1) - 1; + } + } + + return cMatrix; + +} + + +void CMatrix::MakeAllColumnElementsSameValue(unsigned int nRowIndex) +{ + for(unsigned int i=0; i < m_nRow; i++) + { + if(i == nRowIndex) + continue; + + for(unsigned int j=0; j < m_nCol; j++) + { + m_pTMatrix [i][j] = m_pTMatrix [nRowIndex][j]; + } + } + +} + + + +CMatrix CMatrix::SigmoidDerivative() +{ + CMatrix cMatrix = *this; + + for(unsigned int i=0; i < m_nRow; i++) + { + for(unsigned int j=0; j < m_nCol; j++) + { + cMatrix.m_pTMatrix [i][j] = exp(-m_pTMatrix [i][j]) / ((1 + exp(-m_pTMatrix [i][j])) * (1 + exp(-m_pTMatrix [i][j]))); + } + + } + + return cMatrix; +} + + + +CMatrix CMatrix::tanhDerivative() +{ + CMatrix cMatrix = *this; + + for(unsigned int i=0; i < m_nRow; i++) + { + for(unsigned int j=0; j < m_nCol; j++) + { + cMatrix.m_pTMatrix [i][j] = 2 * exp(-m_pTMatrix [i][j]) / ((1 + exp(-m_pTMatrix [i][j])) * (1 + exp(-m_pTMatrix [i][j]))); + } + + } + + return cMatrix; +} + + + +CMatrix CMatrix::operator / (CMatrix& cMatrixB) +{ + CMatrix cMatrix = *this; + + + for(unsigned int i=0; i < m_nRow; i++) + { + for(unsigned int j=0; j < m_nCol; j++) + { + cMatrix.m_pTMatrix [i][j] = m_pTMatrix [i][j] * cMatrixB.m_pTMatrix [i][j]; + } + + } + + return cMatrix; + +} + + + + + +CMatrix operator - (double nValue,CMatrix& cMatrixB) +{ + CMatrix cMatrix = cMatrixB; + + for(unsigned int i=0; i < cMatrix.GetMatrixRowNumber (); i++) + { + for(unsigned int j=0; j < cMatrix.GetMatrixColNumber (); j++) + { + cMatrix.m_pTMatrix [i][j] = nValue - cMatrixB.m_pTMatrix [i][j]; + } + } + + return cMatrix; +} + + + + +CMatrix MergeMatrix(CMatrix& cMatrixA,CMatrix& cMatrixB) +{ + + + CMatrix cMatrix(cMatrixA.GetMatrixRowNumber (),cMatrixA.GetMatrixColNumber () + cMatrixB.GetMatrixColNumber ()); + + for(unsigned int i=0; i < cMatrixA.GetMatrixRowNumber (); i++) + { + for(unsigned int j=0; j < cMatrixA.GetMatrixColNumber (); j++) + { + cMatrix.m_pTMatrix [i][j] = cMatrixA.m_pTMatrix [i][j]; + } + + for(unsigned int k=0; k < cMatrixB.GetMatrixColNumber (); k++) + { + cMatrix.m_pTMatrix [i][cMatrixA.GetMatrixColNumber () + k] = cMatrixB.m_pTMatrix [i][k]; + } + + } + + + return cMatrix; +} + diff --git a/src/veloslam/multiscan_random_field.cc b/src/veloslam/multiscan_random_field.cc new file mode 100644 index 0000000..ba93def --- /dev/null +++ b/src/veloslam/multiscan_random_field.cc @@ -0,0 +1,14 @@ +#include "veloslam/veloscan.h" +#include "veloslam/svm.h" +#include "veloslam/multiscan_random_field.h" + +Random_field::Random_field(void) +{ + +} + +Random_field::~Random_field(void) +{ + +} + diff --git a/src/veloslam/pcddump.cc b/src/veloslam/pcddump.cc new file mode 100644 index 0000000..e2a4877 --- /dev/null +++ b/src/veloslam/pcddump.cc @@ -0,0 +1,89 @@ +/* + * pcddump implementation + * + * Copyright (C) YuanJun, ZhangLiang, Li Wei, Li Ming, Andreas Nuechter, + * + * Released under the GPL version 3. + * + */ + +/** + * @file + * @brief Main programm for dynamic Velodyne SLAM + * + * @author Andreas Nuechter. Jacobs University Bremen, Germany + * @author YuanJun, Wuhan University, China + * @author ZhangLiang, Wuhan University, China + * @author Li Wei, Wuhan University, China + * @author Li Ming, Wuhan University, China + */ + +#ifdef _MSC_VER +#ifdef OPENMP +#define _OPENMP +#endif +#endif + +#include +using std::ifstream; +using std::ofstream; + +#include +using std::cout; +using std::cerr; +using std::endl; + +#include +using std::stringstream; + +#include "veloslam/veloscan.h" +#include "veloslam/pcddump.h" + +#ifdef _OPENMP +#include +#endif + +#ifdef _MSC_VER +#include +#else +#include +#endif + +#ifdef _MSC_VER +#define strcasecmp _stricmp +#define strncasecmp _strnicmp +#else +#include +#endif + +#include +using std::flush; + +void DumpPointtoFile(cluster &gluData1, string filename) +{ + cell* pCell; + ofstream redptsout(filename.c_str()); + + for(int j=0; jpCell; + for(int k=0; ksize();++k) + { + redptsout <<(*pCell)[k]->x << " " + <<(*pCell)[k]->y<< " " + <<(*pCell)[k]->z<< endl; + } + } + redptsout.close(); + redptsout.clear(); +} + +void DumpFeaturetoFile(clusterFeature &glu, string filename) +{ + ofstream redptsout(filename.c_str(), ios::app); + redptsout < +#include +#include +#include +#include +#include +#include +#include +#include "veloslam/svm.h" +int libsvm_version = LIBSVM_VERSION; +typedef float Qfloat; +typedef signed char schar; +#ifndef min +template static inline T min(T x,T y) { return (x static inline T max(T x,T y) { return (x>y)?x:y; } +#endif +template static inline void swap(T& x, T& y) { T t=x; x=y; y=t; } +template static inline void clone(T*& dst, S* src, int n) +{ + dst = new T[n]; + memcpy((void *)dst,(void *)src,sizeof(T)*n); +} +static inline double powi(double base, int times) +{ + double tmp = base, ret = 1.0; + + for(int t=times; t>0; t/=2) + { + if(t%2==1) ret*=tmp; + tmp = tmp * tmp; + } + return ret; +} +#define INF HUGE_VAL +#define TAU 1e-12 +#define Malloc(type,n) (type *)malloc((n)*sizeof(type)) + +static void print_string_stdout(const char *s) +{ + fputs(s,stdout); + fflush(stdout); +} +static void (*svm_print_string) (const char *) = &print_string_stdout; +#if 1 +static void info(const char *fmt,...) +{ + char buf[BUFSIZ]; + va_list ap; + va_start(ap,fmt); + vsprintf(buf,fmt,ap); + va_end(ap); + (*svm_print_string)(buf); +} +#else +static void info(const char *fmt,...) {} +#endif + +// +// Kernel Cache +// +// l is the number of total data items +// size is the cache size limit in bytes +// +class Cache +{ +public: + Cache(int l,long int size); + ~Cache(); + + // request data [0,len) + // return some position p where [p,len) need to be filled + // (p >= len if nothing needs to be filled) + int get_data(const int index, Qfloat **data, int len); + void swap_index(int i, int j); +private: + int l; + long int size; + struct head_t + { + head_t *prev, *next; // a circular list + Qfloat *data; + int len; // data[0,len) is cached in this entry + }; + + head_t *head; + head_t lru_head; + void lru_delete(head_t *h); + void lru_insert(head_t *h); +}; + +Cache::Cache(int l_,long int size_):l(l_),size(size_) +{ + head = (head_t *)calloc(l,sizeof(head_t)); // initialized to 0 + size /= sizeof(Qfloat); + size -= l * sizeof(head_t) / sizeof(Qfloat); + size = max(size, 2 * (long int) l); // cache must be large enough for two columns + lru_head.next = lru_head.prev = &lru_head; +} + +Cache::~Cache() +{ + for(head_t *h = lru_head.next; h != &lru_head; h=h->next) + free(h->data); + free(head); +} + +void Cache::lru_delete(head_t *h) +{ + // delete from current location + h->prev->next = h->next; + h->next->prev = h->prev; +} + +void Cache::lru_insert(head_t *h) +{ + // insert to last position + h->next = &lru_head; + h->prev = lru_head.prev; + h->prev->next = h; + h->next->prev = h; +} + +int Cache::get_data(const int index, Qfloat **data, int len) +{ + head_t *h = &head[index]; + if(h->len) lru_delete(h); + int more = len - h->len; + + if(more > 0) + { + // free old space + while(size < more) + { + head_t *old = lru_head.next; + lru_delete(old); + free(old->data); + size += old->len; + old->data = 0; + old->len = 0; + } + + // allocate new space + h->data = (Qfloat *)realloc(h->data,sizeof(Qfloat)*len); + size -= more; + swap(h->len,len); + } + + lru_insert(h); + *data = h->data; + return len; +} + +void Cache::swap_index(int i, int j) +{ + if(i==j) return; + + if(head[i].len) lru_delete(&head[i]); + if(head[j].len) lru_delete(&head[j]); + swap(head[i].data,head[j].data); + swap(head[i].len,head[j].len); + if(head[i].len) lru_insert(&head[i]); + if(head[j].len) lru_insert(&head[j]); + + if(i>j) swap(i,j); + for(head_t *h = lru_head.next; h!=&lru_head; h=h->next) + { + if(h->len > i) + { + if(h->len > j) + swap(h->data[i],h->data[j]); + else + { + // give up + lru_delete(h); + free(h->data); + size += h->len; + h->data = 0; + h->len = 0; + } + } + } +} + +// +// Kernel evaluation +// +// the static method k_function is for doing single kernel evaluation +// the constructor of Kernel prepares to calculate the l*l kernel matrix +// the member function get_Q is for getting one column from the Q Matrix +// +class QMatrix { +public: + virtual Qfloat *get_Q(int column, int len) const = 0; + virtual double *get_QD() const = 0; + virtual void swap_index(int i, int j) const = 0; + virtual ~QMatrix() {} +}; + +class Kernel: public QMatrix { +public: + Kernel(int l, svm_node * const * x, const svm_parameter& param); + virtual ~Kernel(); + + static double k_function(const svm_node *x, const svm_node *y, + const svm_parameter& param); + virtual Qfloat *get_Q(int column, int len) const = 0; + virtual double *get_QD() const = 0; + virtual void swap_index(int i, int j) const // no so const... + { + swap(x[i],x[j]); + if(x_square) swap(x_square[i],x_square[j]); + } +protected: + + double (Kernel::*kernel_function)(int i, int j) const; + +private: + const svm_node **x; + double *x_square; + + // svm_parameter + const int kernel_type; + const int degree; + const double gamma; + const double coef0; + + static double dot(const svm_node *px, const svm_node *py); + double kernel_linear(int i, int j) const + { + return dot(x[i],x[j]); + } + double kernel_poly(int i, int j) const + { + return powi(gamma*dot(x[i],x[j])+coef0,degree); + } + double kernel_rbf(int i, int j) const + { + return exp(-gamma*(x_square[i]+x_square[j]-2*dot(x[i],x[j]))); + } + double kernel_sigmoid(int i, int j) const + { + return tanh(gamma*dot(x[i],x[j])+coef0); + } + double kernel_precomputed(int i, int j) const + { + return x[i][(int)(x[j][0].value)].value; + } +}; + +Kernel::Kernel(int l, svm_node * const * x_, const svm_parameter& param) +:kernel_type(param.kernel_type), degree(param.degree), + gamma(param.gamma), coef0(param.coef0) +{ + switch(kernel_type) + { + case LINEAR: + kernel_function = &Kernel::kernel_linear; + break; + case POLY: + kernel_function = &Kernel::kernel_poly; + break; + case RBF: + kernel_function = &Kernel::kernel_rbf; + break; + case SIGMOID: + kernel_function = &Kernel::kernel_sigmoid; + break; + case PRECOMPUTED: + kernel_function = &Kernel::kernel_precomputed; + break; + } + + clone(x,x_,l); + + if(kernel_type == RBF) + { + x_square = new double[l]; + for(int i=0;iindex != -1 && py->index != -1) + { + if(px->index == py->index) + { + sum += px->value * py->value; + ++px; + ++py; + } + else + { + if(px->index > py->index) + ++py; + else + ++px; + } + } + return sum; +} + +double Kernel::k_function(const svm_node *x, const svm_node *y, + const svm_parameter& param) +{ + switch(param.kernel_type) + { + case LINEAR: + return dot(x,y); + case POLY: + return powi(param.gamma*dot(x,y)+param.coef0,param.degree); + case RBF: + { + double sum = 0; + while(x->index != -1 && y->index !=-1) + { + if(x->index == y->index) + { + double d = x->value - y->value; + sum += d*d; + ++x; + ++y; + } + else + { + if(x->index > y->index) + { + sum += y->value * y->value; + ++y; + } + else + { + sum += x->value * x->value; + ++x; + } + } + } + + while(x->index != -1) + { + sum += x->value * x->value; + ++x; + } + + while(y->index != -1) + { + sum += y->value * y->value; + ++y; + } + + return exp(-param.gamma*sum); + } + case SIGMOID: + return tanh(param.gamma*dot(x,y)+param.coef0); + case PRECOMPUTED: //x: test (validation), y: SV + return x[(int)(y->value)].value; + default: + return 0; // Unreachable + } +} + +// An SMO algorithm in Fan et al., JMLR 6(2005), p. 1889--1918 +// Solves: +// +// min 0.5(\alpha^T Q \alpha) + p^T \alpha +// +// y^T \alpha = \delta +// y_i = +1 or -1 +// 0 <= alpha_i <= Cp for y_i = 1 +// 0 <= alpha_i <= Cn for y_i = -1 +// +// Given: +// +// Q, p, y, Cp, Cn, and an initial feasible point \alpha +// l is the size of vectors and matrices +// eps is the stopping tolerance +// +// solution will be put in \alpha, objective value will be put in obj +// +class Solver { +public: + Solver() {}; + virtual ~Solver() {}; + + struct SolutionInfo { + double obj; + double rho; + double upper_bound_p; + double upper_bound_n; + double r; // for Solver_NU + }; + + void Solve(int l, const QMatrix& Q, const double *p_, const schar *y_, + double *alpha_, double Cp, double Cn, double eps, + SolutionInfo* si, int shrinking); +protected: + int active_size; + schar *y; + double *G; // gradient of objective function + enum { LOWER_BOUND, UPPER_BOUND, FREE }; + char *alpha_status; // LOWER_BOUND, UPPER_BOUND, FREE + double *alpha; + const QMatrix *Q; + const double *QD; + double eps; + double Cp,Cn; + double *p; + int *active_set; + double *G_bar; // gradient, if we treat free variables as 0 + int l; + bool unshrink; // XXX + + double get_C(int i) + { + return (y[i] > 0)? Cp : Cn; + } + void update_alpha_status(int i) + { + if(alpha[i] >= get_C(i)) + alpha_status[i] = UPPER_BOUND; + else if(alpha[i] <= 0) + alpha_status[i] = LOWER_BOUND; + else alpha_status[i] = FREE; + } + bool is_upper_bound(int i) { return alpha_status[i] == UPPER_BOUND; } + bool is_lower_bound(int i) { return alpha_status[i] == LOWER_BOUND; } + bool is_free(int i) { return alpha_status[i] == FREE; } + void swap_index(int i, int j); + void reconstruct_gradient(); + virtual int select_working_set(int &i, int &j); + virtual double calculate_rho(); + virtual void do_shrinking(); +private: + bool be_shrunk(int i, double Gmax1, double Gmax2); +}; + +void Solver::swap_index(int i, int j) +{ + Q->swap_index(i,j); + swap(y[i],y[j]); + swap(G[i],G[j]); + swap(alpha_status[i],alpha_status[j]); + swap(alpha[i],alpha[j]); + swap(p[i],p[j]); + swap(active_set[i],active_set[j]); + swap(G_bar[i],G_bar[j]); +} + +void Solver::reconstruct_gradient() +{ + // reconstruct inactive elements of G from G_bar and free variables + + if(active_size == l) return; + + int i,j; + int nr_free = 0; + + for(j=active_size;j 2*active_size*(l-active_size)) + { + for(i=active_size;iget_Q(i,active_size); + for(j=0;jget_Q(i,l); + double alpha_i = alpha[i]; + for(j=active_size;jl = l; + this->Q = &Q; + QD=Q.get_QD(); + clone(p, p_,l); + clone(y, y_,l); + clone(alpha,alpha_,l); + this->Cp = Cp; + this->Cn = Cn; + this->eps = eps; + unshrink = false; + + // initialize alpha_status + { + alpha_status = new char[l]; + for(int i=0;iINT_MAX/100 ? INT_MAX : 100*l); + int counter = min(l,1000)+1; + + while(iter < max_iter) + { + // show progress and do shrinking + + if(--counter == 0) + { + counter = min(l,1000); + if(shrinking) do_shrinking(); + info("."); + } + + int i,j; + if(select_working_set(i,j)!=0) + { + // reconstruct the whole gradient + reconstruct_gradient(); + // reset active set size and check + active_size = l; + info("*"); + if(select_working_set(i,j)!=0) + break; + else + counter = 1; // do shrinking next iteration + } + + ++iter; + + // update alpha[i] and alpha[j], handle bounds carefully + + const Qfloat *Q_i = Q.get_Q(i,active_size); + const Qfloat *Q_j = Q.get_Q(j,active_size); + + double C_i = get_C(i); + double C_j = get_C(j); + + double old_alpha_i = alpha[i]; + double old_alpha_j = alpha[j]; + + if(y[i]!=y[j]) + { + double quad_coef = QD[i]+QD[j]+2*Q_i[j]; + if (quad_coef <= 0) + quad_coef = TAU; + double delta = (-G[i]-G[j])/quad_coef; + double diff = alpha[i] - alpha[j]; + alpha[i] += delta; + alpha[j] += delta; + + if(diff > 0) + { + if(alpha[j] < 0) + { + alpha[j] = 0; + alpha[i] = diff; + } + } + else + { + if(alpha[i] < 0) + { + alpha[i] = 0; + alpha[j] = -diff; + } + } + if(diff > C_i - C_j) + { + if(alpha[i] > C_i) + { + alpha[i] = C_i; + alpha[j] = C_i - diff; + } + } + else + { + if(alpha[j] > C_j) + { + alpha[j] = C_j; + alpha[i] = C_j + diff; + } + } + } + else + { + double quad_coef = QD[i]+QD[j]-2*Q_i[j]; + if (quad_coef <= 0) + quad_coef = TAU; + double delta = (G[i]-G[j])/quad_coef; + double sum = alpha[i] + alpha[j]; + alpha[i] -= delta; + alpha[j] += delta; + + if(sum > C_i) + { + if(alpha[i] > C_i) + { + alpha[i] = C_i; + alpha[j] = sum - C_i; + } + } + else + { + if(alpha[j] < 0) + { + alpha[j] = 0; + alpha[i] = sum; + } + } + if(sum > C_j) + { + if(alpha[j] > C_j) + { + alpha[j] = C_j; + alpha[i] = sum - C_j; + } + } + else + { + if(alpha[i] < 0) + { + alpha[i] = 0; + alpha[j] = sum; + } + } + } + + // update G + + double delta_alpha_i = alpha[i] - old_alpha_i; + double delta_alpha_j = alpha[j] - old_alpha_j; + + for(int k=0;k= max_iter) + { + if(active_size < l) + { + // reconstruct the whole gradient to calculate objective value + reconstruct_gradient(); + active_size = l; + info("*"); + } + info("\nWARNING: reaching max number of iterations"); + } + + // calculate rho + + si->rho = calculate_rho(); + + // calculate objective value + { + double v = 0; + int i; + for(i=0;iobj = v/2; + } + + // put back the solution + { + for(int i=0;iupper_bound_p = Cp; + si->upper_bound_n = Cn; + + info("\noptimization finished, #iter = %d\n",iter); + + delete[] p; + delete[] y; + delete[] alpha; + delete[] alpha_status; + delete[] active_set; + delete[] G; + delete[] G_bar; +} + +// return 1 if already optimal, return 0 otherwise +int Solver::select_working_set(int &out_i, int &out_j) +{ + // return i,j such that + // i: maximizes -y_i * grad(f)_i, i in I_up(\alpha) + // j: minimizes the decrease of obj value + // (if quadratic coefficeint <= 0, replace it with tau) + // -y_j*grad(f)_j < -y_i*grad(f)_i, j in I_low(\alpha) + + double Gmax = -INF; + double Gmax2 = -INF; + int Gmax_idx = -1; + int Gmin_idx = -1; + double obj_diff_min = INF; + + for(int t=0;t= Gmax) + { + Gmax = -G[t]; + Gmax_idx = t; + } + } + else + { + if(!is_lower_bound(t)) + if(G[t] >= Gmax) + { + Gmax = G[t]; + Gmax_idx = t; + } + } + + int i = Gmax_idx; + const Qfloat *Q_i = NULL; + if(i != -1) // NULL Q_i not accessed: Gmax=-INF if i=-1 + Q_i = Q->get_Q(i,active_size); + + for(int j=0;j= Gmax2) + Gmax2 = G[j]; + if (grad_diff > 0) + { + double obj_diff; + double quad_coef = QD[i]+QD[j]-2.0*y[i]*Q_i[j]; + if (quad_coef > 0) + obj_diff = -(grad_diff*grad_diff)/quad_coef; + else + obj_diff = -(grad_diff*grad_diff)/TAU; + + if (obj_diff <= obj_diff_min) + { + Gmin_idx=j; + obj_diff_min = obj_diff; + } + } + } + } + else + { + if (!is_upper_bound(j)) + { + double grad_diff= Gmax-G[j]; + if (-G[j] >= Gmax2) + Gmax2 = -G[j]; + if (grad_diff > 0) + { + double obj_diff; + double quad_coef = QD[i]+QD[j]+2.0*y[i]*Q_i[j]; + if (quad_coef > 0) + obj_diff = -(grad_diff*grad_diff)/quad_coef; + else + obj_diff = -(grad_diff*grad_diff)/TAU; + + if (obj_diff <= obj_diff_min) + { + Gmin_idx=j; + obj_diff_min = obj_diff; + } + } + } + } + } + + if(Gmax+Gmax2 < eps) + return 1; + + out_i = Gmax_idx; + out_j = Gmin_idx; + return 0; +} + +bool Solver::be_shrunk(int i, double Gmax1, double Gmax2) +{ + if(is_upper_bound(i)) + { + if(y[i]==+1) + return(-G[i] > Gmax1); + else + return(-G[i] > Gmax2); + } + else if(is_lower_bound(i)) + { + if(y[i]==+1) + return(G[i] > Gmax2); + else + return(G[i] > Gmax1); + } + else + return(false); +} + +void Solver::do_shrinking() +{ + int i; + double Gmax1 = -INF; // max { -y_i * grad(f)_i | i in I_up(\alpha) } + double Gmax2 = -INF; // max { y_i * grad(f)_i | i in I_low(\alpha) } + + // find maximal violating pair first + for(i=0;i= Gmax1) + Gmax1 = -G[i]; + } + if(!is_lower_bound(i)) + { + if(G[i] >= Gmax2) + Gmax2 = G[i]; + } + } + else + { + if(!is_upper_bound(i)) + { + if(-G[i] >= Gmax2) + Gmax2 = -G[i]; + } + if(!is_lower_bound(i)) + { + if(G[i] >= Gmax1) + Gmax1 = G[i]; + } + } + } + + if(unshrink == false && Gmax1 + Gmax2 <= eps*10) + { + unshrink = true; + reconstruct_gradient(); + active_size = l; + info("*"); + } + + for(i=0;i i) + { + if (!be_shrunk(active_size, Gmax1, Gmax2)) + { + swap_index(i,active_size); + break; + } + active_size--; + } + } +} + +double Solver::calculate_rho() +{ + double r; + int nr_free = 0; + double ub = INF, lb = -INF, sum_free = 0; + for(int i=0;i0) + r = sum_free/nr_free; + else + r = (ub+lb)/2; + + return r; +} + +// +// Solver for nu-svm classification and regression +// +// additional constraint: e^T \alpha = constant +// +class Solver_NU : public Solver +{ +public: + Solver_NU() {} + void Solve(int l, const QMatrix& Q, const double *p, const schar *y, + double *alpha, double Cp, double Cn, double eps, + SolutionInfo* si, int shrinking) + { + this->si = si; + Solver::Solve(l,Q,p,y,alpha,Cp,Cn,eps,si,shrinking); + } +private: + SolutionInfo *si; + int select_working_set(int &i, int &j); + double calculate_rho(); + bool be_shrunk(int i, double Gmax1, double Gmax2, double Gmax3, double Gmax4); + void do_shrinking(); +}; + +// return 1 if already optimal, return 0 otherwise +int Solver_NU::select_working_set(int &out_i, int &out_j) +{ + // return i,j such that y_i = y_j and + // i: maximizes -y_i * grad(f)_i, i in I_up(\alpha) + // j: minimizes the decrease of obj value + // (if quadratic coefficeint <= 0, replace it with tau) + // -y_j*grad(f)_j < -y_i*grad(f)_i, j in I_low(\alpha) + + double Gmaxp = -INF; + double Gmaxp2 = -INF; + int Gmaxp_idx = -1; + + double Gmaxn = -INF; + double Gmaxn2 = -INF; + int Gmaxn_idx = -1; + + int Gmin_idx = -1; + double obj_diff_min = INF; + + for(int t=0;t= Gmaxp) + { + Gmaxp = -G[t]; + Gmaxp_idx = t; + } + } + else + { + if(!is_lower_bound(t)) + if(G[t] >= Gmaxn) + { + Gmaxn = G[t]; + Gmaxn_idx = t; + } + } + + int ip = Gmaxp_idx; + int in = Gmaxn_idx; + const Qfloat *Q_ip = NULL; + const Qfloat *Q_in = NULL; + if(ip != -1) // NULL Q_ip not accessed: Gmaxp=-INF if ip=-1 + Q_ip = Q->get_Q(ip,active_size); + if(in != -1) + Q_in = Q->get_Q(in,active_size); + + for(int j=0;j= Gmaxp2) + Gmaxp2 = G[j]; + if (grad_diff > 0) + { + double obj_diff; + double quad_coef = QD[ip]+QD[j]-2*Q_ip[j]; + if (quad_coef > 0) + obj_diff = -(grad_diff*grad_diff)/quad_coef; + else + obj_diff = -(grad_diff*grad_diff)/TAU; + + if (obj_diff <= obj_diff_min) + { + Gmin_idx=j; + obj_diff_min = obj_diff; + } + } + } + } + else + { + if (!is_upper_bound(j)) + { + double grad_diff=Gmaxn-G[j]; + if (-G[j] >= Gmaxn2) + Gmaxn2 = -G[j]; + if (grad_diff > 0) + { + double obj_diff; + double quad_coef = QD[in]+QD[j]-2*Q_in[j]; + if (quad_coef > 0) + obj_diff = -(grad_diff*grad_diff)/quad_coef; + else + obj_diff = -(grad_diff*grad_diff)/TAU; + + if (obj_diff <= obj_diff_min) + { + Gmin_idx=j; + obj_diff_min = obj_diff; + } + } + } + } + } + + if(max(Gmaxp+Gmaxp2,Gmaxn+Gmaxn2) < eps) + return 1; + + if (y[Gmin_idx] == +1) + out_i = Gmaxp_idx; + else + out_i = Gmaxn_idx; + out_j = Gmin_idx; + + return 0; +} + +bool Solver_NU::be_shrunk(int i, double Gmax1, double Gmax2, double Gmax3, double Gmax4) +{ + if(is_upper_bound(i)) + { + if(y[i]==+1) + return(-G[i] > Gmax1); + else + return(-G[i] > Gmax4); + } + else if(is_lower_bound(i)) + { + if(y[i]==+1) + return(G[i] > Gmax2); + else + return(G[i] > Gmax3); + } + else + return(false); +} + +void Solver_NU::do_shrinking() +{ + double Gmax1 = -INF; // max { -y_i * grad(f)_i | y_i = +1, i in I_up(\alpha) } + double Gmax2 = -INF; // max { y_i * grad(f)_i | y_i = +1, i in I_low(\alpha) } + double Gmax3 = -INF; // max { -y_i * grad(f)_i | y_i = -1, i in I_up(\alpha) } + double Gmax4 = -INF; // max { y_i * grad(f)_i | y_i = -1, i in I_low(\alpha) } + + // find maximal violating pair first + int i; + for(i=0;i Gmax1) Gmax1 = -G[i]; + } + else if(-G[i] > Gmax4) Gmax4 = -G[i]; + } + if(!is_lower_bound(i)) + { + if(y[i]==+1) + { + if(G[i] > Gmax2) Gmax2 = G[i]; + } + else if(G[i] > Gmax3) Gmax3 = G[i]; + } + } + + if(unshrink == false && max(Gmax1+Gmax2,Gmax3+Gmax4) <= eps*10) + { + unshrink = true; + reconstruct_gradient(); + active_size = l; + } + + for(i=0;i i) + { + if (!be_shrunk(active_size, Gmax1, Gmax2, Gmax3, Gmax4)) + { + swap_index(i,active_size); + break; + } + active_size--; + } + } +} + +double Solver_NU::calculate_rho() +{ + int nr_free1 = 0,nr_free2 = 0; + double ub1 = INF, ub2 = INF; + double lb1 = -INF, lb2 = -INF; + double sum_free1 = 0, sum_free2 = 0; + + for(int i=0;i 0) + r1 = sum_free1/nr_free1; + else + r1 = (ub1+lb1)/2; + + if(nr_free2 > 0) + r2 = sum_free2/nr_free2; + else + r2 = (ub2+lb2)/2; + + si->r = (r1+r2)/2; + return (r1-r2)/2; +} + +// +// Q matrices for various formulations +// +class SVC_Q: public Kernel +{ +public: + SVC_Q(const svm_problem& prob, const svm_parameter& param, const schar *y_) + :Kernel(prob.l, prob.x, param) + { + clone(y,y_,prob.l); + cache = new Cache(prob.l,(long int)(param.cache_size*(1<<20))); + QD = new double[prob.l]; + for(int i=0;i*kernel_function)(i,i); + } + + Qfloat *get_Q(int i, int len) const + { + Qfloat *data; + int start, j; + if((start = cache->get_data(i,&data,len)) < len) + { + for(j=start;j*kernel_function)(i,j)); + } + return data; + } + + double *get_QD() const + { + return QD; + } + + void swap_index(int i, int j) const + { + cache->swap_index(i,j); + Kernel::swap_index(i,j); + swap(y[i],y[j]); + swap(QD[i],QD[j]); + } + + ~SVC_Q() + { + delete[] y; + delete cache; + delete[] QD; + } +private: + schar *y; + Cache *cache; + double *QD; +}; + +class ONE_CLASS_Q: public Kernel +{ +public: + ONE_CLASS_Q(const svm_problem& prob, const svm_parameter& param) + :Kernel(prob.l, prob.x, param) + { + cache = new Cache(prob.l,(long int)(param.cache_size*(1<<20))); + QD = new double[prob.l]; + for(int i=0;i*kernel_function)(i,i); + } + + Qfloat *get_Q(int i, int len) const + { + Qfloat *data; + int start, j; + if((start = cache->get_data(i,&data,len)) < len) + { + for(j=start;j*kernel_function)(i,j); + } + return data; + } + + double *get_QD() const + { + return QD; + } + + void swap_index(int i, int j) const + { + cache->swap_index(i,j); + Kernel::swap_index(i,j); + swap(QD[i],QD[j]); + } + + ~ONE_CLASS_Q() + { + delete cache; + delete[] QD; + } +private: + Cache *cache; + double *QD; +}; + +class SVR_Q: public Kernel +{ +public: + SVR_Q(const svm_problem& prob, const svm_parameter& param) + :Kernel(prob.l, prob.x, param) + { + l = prob.l; + cache = new Cache(l,(long int)(param.cache_size*(1<<20))); + QD = new double[2*l]; + sign = new schar[2*l]; + index = new int[2*l]; + for(int k=0;k*kernel_function)(k,k); + QD[k+l] = QD[k]; + } + buffer[0] = new Qfloat[2*l]; + buffer[1] = new Qfloat[2*l]; + next_buffer = 0; + } + + void swap_index(int i, int j) const + { + swap(sign[i],sign[j]); + swap(index[i],index[j]); + swap(QD[i],QD[j]); + } + + Qfloat *get_Q(int i, int len) const + { + Qfloat *data; + int j, real_i = index[i]; + if(cache->get_data(real_i,&data,l) < l) + { + for(j=0;j*kernel_function)(real_i,j); + } + + // reorder and copy + Qfloat *buf = buffer[next_buffer]; + next_buffer = 1 - next_buffer; + schar si = sign[i]; + for(j=0;jl; + double *minus_ones = new double[l]; + schar *y = new schar[l]; + + int i; + + for(i=0;iy[i] > 0) y[i] = +1; else y[i] = -1; + } + + Solver s; + s.Solve(l, SVC_Q(*prob,*param,y), minus_ones, y, + alpha, Cp, Cn, param->eps, si, param->shrinking); + + double sum_alpha=0; + for(i=0;il)); + + for(i=0;il; + double nu = param->nu; + + schar *y = new schar[l]; + + for(i=0;iy[i]>0) + y[i] = +1; + else + y[i] = -1; + + double sum_pos = nu*l/2; + double sum_neg = nu*l/2; + + for(i=0;ieps, si, param->shrinking); + double r = si->r; + + info("C = %f\n",1/r); + + for(i=0;irho /= r; + si->obj /= (r*r); + si->upper_bound_p = 1/r; + si->upper_bound_n = 1/r; + + delete[] y; + delete[] zeros; +} + +static void solve_one_class( + const svm_problem *prob, const svm_parameter *param, + double *alpha, Solver::SolutionInfo* si) +{ + int l = prob->l; + double *zeros = new double[l]; + schar *ones = new schar[l]; + int i; + + int n = (int)(param->nu*prob->l); // # of alpha's at upper bound + + for(i=0;il) + alpha[n] = param->nu * prob->l - n; + for(i=n+1;ieps, si, param->shrinking); + + delete[] zeros; + delete[] ones; +} + +static void solve_epsilon_svr( + const svm_problem *prob, const svm_parameter *param, + double *alpha, Solver::SolutionInfo* si) +{ + int l = prob->l; + double *alpha2 = new double[2*l]; + double *linear_term = new double[2*l]; + schar *y = new schar[2*l]; + int i; + + for(i=0;ip - prob->y[i]; + y[i] = 1; + + alpha2[i+l] = 0; + linear_term[i+l] = param->p + prob->y[i]; + y[i+l] = -1; + } + + Solver s; + s.Solve(2*l, SVR_Q(*prob,*param), linear_term, y, + alpha2, param->C, param->C, param->eps, si, param->shrinking); + + double sum_alpha = 0; + for(i=0;iC*l)); + + delete[] alpha2; + delete[] linear_term; + delete[] y; +} + +static void solve_nu_svr( + const svm_problem *prob, const svm_parameter *param, + double *alpha, Solver::SolutionInfo* si) +{ + int l = prob->l; + double C = param->C; + double *alpha2 = new double[2*l]; + double *linear_term = new double[2*l]; + schar *y = new schar[2*l]; + int i; + + double sum = C * param->nu * l / 2; + for(i=0;iy[i]; + y[i] = 1; + + linear_term[i+l] = prob->y[i]; + y[i+l] = -1; + } + + Solver_NU s; + s.Solve(2*l, SVR_Q(*prob,*param), linear_term, y, + alpha2, C, C, param->eps, si, param->shrinking); + + info("epsilon = %f\n",-si->r); + + for(i=0;il); + Solver::SolutionInfo si; + switch(param->svm_type) + { + case C_SVC: + solve_c_svc(prob,param,alpha,&si,Cp,Cn); + break; + case NU_SVC: + solve_nu_svc(prob,param,alpha,&si); + break; + case ONE_CLASS: + solve_one_class(prob,param,alpha,&si); + break; + case EPSILON_SVR: + solve_epsilon_svr(prob,param,alpha,&si); + break; + case NU_SVR: + solve_nu_svr(prob,param,alpha,&si); + break; + } + + info("obj = %f, rho = %f\n",si.obj,si.rho); + + // output SVs + + int nSV = 0; + int nBSV = 0; + for(int i=0;il;i++) + { + if(fabs(alpha[i]) > 0) + { + ++nSV; + if(prob->y[i] > 0) + { + if(fabs(alpha[i]) >= si.upper_bound_p) + ++nBSV; + } + else + { + if(fabs(alpha[i]) >= si.upper_bound_n) + ++nBSV; + } + } + } + + info("nSV = %d, nBSV = %d\n",nSV,nBSV); + + decision_function f; + f.alpha = alpha; + f.rho = si.rho; + return f; +} + +// Platt's binary SVM Probablistic Output: an improvement from Lin et al. +static void sigmoid_train( + int l, const double *dec_values, + const double *labels, + double& A, double& B) +{ + double prior1=0, prior0 = 0; + int i; + + for (i=0;i 0) prior1+=1; + else prior0+=1; + + int max_iter=100; // Maximal number of iterations + double min_step=1e-10; // Minimal step taken in line search + double sigma=1e-12; // For numerically strict PD of Hessian + double eps=1e-5; + double hiTarget=(prior1+1.0)/(prior1+2.0); + double loTarget=1/(prior0+2.0); + double *t=Malloc(double,l); + double fApB,p,q,h11,h22,h21,g1,g2,det,dA,dB,gd,stepsize; + double newA,newB,newf,d1,d2; + int iter; + + // Initial Point and Initial Fun Value + A=0.0; B=log((prior0+1.0)/(prior1+1.0)); + double fval = 0.0; + + for (i=0;i0) t[i]=hiTarget; + else t[i]=loTarget; + fApB = dec_values[i]*A+B; + if (fApB>=0) + fval += t[i]*fApB + log(1+exp(-fApB)); + else + fval += (t[i] - 1)*fApB +log(1+exp(fApB)); + } + for (iter=0;iter= 0) + { + p=exp(-fApB)/(1.0+exp(-fApB)); + q=1.0/(1.0+exp(-fApB)); + } + else + { + p=1.0/(1.0+exp(fApB)); + q=exp(fApB)/(1.0+exp(fApB)); + } + d2=p*q; + h11+=dec_values[i]*dec_values[i]*d2; + h22+=d2; + h21+=dec_values[i]*d2; + d1=t[i]-p; + g1+=dec_values[i]*d1; + g2+=d1; + } + + // Stopping Criteria + if (fabs(g1)= min_step) + { + newA = A + stepsize * dA; + newB = B + stepsize * dB; + + // New function value + newf = 0.0; + for (i=0;i= 0) + newf += t[i]*fApB + log(1+exp(-fApB)); + else + newf += (t[i] - 1)*fApB +log(1+exp(fApB)); + } + // Check sufficient decrease + if (newf=max_iter) + info("Reaching maximal iterations in two-class probability estimates\n"); + free(t); +} + +static double sigmoid_predict(double decision_value, double A, double B) +{ + double fApB = decision_value*A+B; + // 1-p used later; avoid catastrophic cancellation + if (fApB >= 0) + return exp(-fApB)/(1.0+exp(-fApB)); + else + return 1.0/(1+exp(fApB)) ; +} + +// Method 2 from the multiclass_prob paper by Wu, Lin, and Weng +static void multiclass_probability(int k, double **r, double *p) +{ + int t,j; + int iter = 0, max_iter=max(100,k); + double **Q=Malloc(double *,k); + double *Qp=Malloc(double,k); + double pQp, eps=0.005/k; + + for (t=0;tmax_error) + max_error=error; + } + if (max_error=max_iter) + info("Exceeds max_iter in multiclass_prob\n"); + for(t=0;tl); + double *dec_values = Malloc(double,prob->l); + + // random shuffle + for(i=0;il;i++) perm[i]=i; + for(i=0;il;i++) + { + int j = i+rand()%(prob->l-i); + swap(perm[i],perm[j]); + } + for(i=0;il/nr_fold; + int end = (i+1)*prob->l/nr_fold; + int j,k; + struct svm_problem subprob; + + subprob.l = prob->l-(end-begin); + subprob.x = Malloc(struct svm_node*,subprob.l); + subprob.y = Malloc(double,subprob.l); + + k=0; + for(j=0;jx[perm[j]]; + subprob.y[k] = prob->y[perm[j]]; + ++k; + } + for(j=end;jl;j++) + { + subprob.x[k] = prob->x[perm[j]]; + subprob.y[k] = prob->y[perm[j]]; + ++k; + } + int p_count=0,n_count=0; + for(j=0;j0) + p_count++; + else + n_count++; + + if(p_count==0 && n_count==0) + for(j=begin;j 0 && n_count == 0) + for(j=begin;j 0) + for(j=begin;jx[perm[j]],&(dec_values[perm[j]])); + // ensure +1 -1 order; reason not using CV subroutine + dec_values[perm[j]] *= submodel->label[0]; + } + svm_free_and_destroy_model(&submodel); + svm_destroy_param(&subparam); + } + free(subprob.x); + free(subprob.y); + } + sigmoid_train(prob->l,dec_values,prob->y,probA,probB); + free(dec_values); + free(perm); +} + +// Return parameter of a Laplace distribution +static double svm_svr_probability( + const svm_problem *prob, const svm_parameter *param) +{ + int i; + int nr_fold = 5; + double *ymv = Malloc(double,prob->l); + double mae = 0; + + svm_parameter newparam = *param; + newparam.probability = 0; + svm_cross_validation(prob,&newparam,nr_fold,ymv); + for(i=0;il;i++) + { + ymv[i]=prob->y[i]-ymv[i]; + mae += fabs(ymv[i]); + } + mae /= prob->l; + double std=sqrt(2*mae*mae); + int count=0; + mae=0; + for(i=0;il;i++) + if (fabs(ymv[i]) > 5*std) + count=count+1; + else + mae+=fabs(ymv[i]); + mae /= (prob->l-count); + info("Prob. model for test data: target value = predicted value + z,\nz: Laplace distribution e^(-|z|/sigma)/(2sigma),sigma= %g\n",mae); + free(ymv); + return mae; +} + + +// label: label name, start: begin of each class, count: #data of classes, perm: indices to the original data +// perm, length l, must be allocated before calling this subroutine +static void svm_group_classes(const svm_problem *prob, int *nr_class_ret, int **label_ret, int **start_ret, int **count_ret, int *perm) +{ + int l = prob->l; + int max_nr_class = 16; + int nr_class = 0; + int *label = Malloc(int,max_nr_class); + int *count = Malloc(int,max_nr_class); + int *data_label = Malloc(int,l); + int i; + + for(i=0;iy[i]; + int j; + for(j=0;jparam = *param; + model->free_sv = 0; // XXX + + if(param->svm_type == ONE_CLASS || + param->svm_type == EPSILON_SVR || + param->svm_type == NU_SVR) + { + // regression or one-class-svm + model->nr_class = 2; + model->label = NULL; + model->nSV = NULL; + model->probA = NULL; model->probB = NULL; + model->sv_coef = Malloc(double *,1); + + if(param->probability && + (param->svm_type == EPSILON_SVR || + param->svm_type == NU_SVR)) + { + model->probA = Malloc(double,1); + model->probA[0] = svm_svr_probability(prob,param); + } + + decision_function f = svm_train_one(prob,param,0,0); + model->rho = Malloc(double,1); + model->rho[0] = f.rho; + + int nSV = 0; + int i; + for(i=0;il;i++) + if(fabs(f.alpha[i]) > 0) ++nSV; + model->l = nSV; + model->SV = Malloc(svm_node *,nSV); + model->sv_coef[0] = Malloc(double,nSV); + int j = 0; + for(i=0;il;i++) + if(fabs(f.alpha[i]) > 0) + { + model->SV[j] = prob->x[i]; + model->sv_coef[0][j] = f.alpha[i]; + ++j; + } + + free(f.alpha); + } + else + { + // classification + int l = prob->l; + int nr_class; + int *label = NULL; + int *start = NULL; + int *count = NULL; + int *perm = Malloc(int,l); + + // group training data of the same class + svm_group_classes(prob,&nr_class,&label,&start,&count,perm); + if(nr_class == 1) + info("WARNING: training data in only one class. See README for details.\n"); + + svm_node **x = Malloc(svm_node *,l); + int i; + for(i=0;ix[perm[i]]; + + // calculate weighted C + + double *weighted_C = Malloc(double, nr_class); + for(i=0;iC; + for(i=0;inr_weight;i++) + { + int j; + for(j=0;jweight_label[i] == label[j]) + break; + if(j == nr_class) + fprintf(stderr,"WARNING: class label %d specified in weight is not found\n", param->weight_label[i]); + else + weighted_C[j] *= param->weight[i]; + } + + // train k*(k-1)/2 models + + bool *nonzero = Malloc(bool,l); + for(i=0;iprobability) + { + probA=Malloc(double,nr_class*(nr_class-1)/2); + probB=Malloc(double,nr_class*(nr_class-1)/2); + } + + int p = 0; + for(i=0;iprobability) + svm_binary_svc_probability(&sub_prob,param,weighted_C[i],weighted_C[j],probA[p],probB[p]); + + f[p] = svm_train_one(&sub_prob,param,weighted_C[i],weighted_C[j]); + for(k=0;k 0) + nonzero[si+k] = true; + for(k=0;k 0) + nonzero[sj+k] = true; + free(sub_prob.x); + free(sub_prob.y); + ++p; + } + + // build output + + model->nr_class = nr_class; + + model->label = Malloc(int,nr_class); + for(i=0;ilabel[i] = label[i]; + + model->rho = Malloc(double,nr_class*(nr_class-1)/2); + for(i=0;irho[i] = f[i].rho; + + if(param->probability) + { + model->probA = Malloc(double,nr_class*(nr_class-1)/2); + model->probB = Malloc(double,nr_class*(nr_class-1)/2); + for(i=0;iprobA[i] = probA[i]; + model->probB[i] = probB[i]; + } + } + else + { + model->probA=NULL; + model->probB=NULL; + } + + int total_sv = 0; + int *nz_count = Malloc(int,nr_class); + model->nSV = Malloc(int,nr_class); + for(i=0;inSV[i] = nSV; + nz_count[i] = nSV; + } + + info("Total nSV = %d\n",total_sv); + + model->l = total_sv; + model->SV = Malloc(svm_node *,total_sv); + p = 0; + for(i=0;iSV[p++] = x[i]; + + int *nz_start = Malloc(int,nr_class); + nz_start[0] = 0; + for(i=1;isv_coef = Malloc(double *,nr_class-1); + for(i=0;isv_coef[i] = Malloc(double,total_sv); + + p = 0; + for(i=0;isv_coef[j-1][q++] = f[p].alpha[k]; + q = nz_start[j]; + for(k=0;ksv_coef[i][q++] = f[p].alpha[ci+k]; + ++p; + } + + free(label); + free(probA); + free(probB); + free(count); + free(perm); + free(start); + free(x); + free(weighted_C); + free(nonzero); + for(i=0;il; + int *perm = Malloc(int,l); + int nr_class; + + // stratified cv may not give leave-one-out rate + // Each class to l folds -> some folds may have zero elements + if((param->svm_type == C_SVC || + param->svm_type == NU_SVC) && nr_fold < l) + { + int *start = NULL; + int *label = NULL; + int *count = NULL; + svm_group_classes(prob,&nr_class,&label,&start,&count,perm); + + // random shuffle and then data grouped by fold using the array perm + int *fold_count = Malloc(int,nr_fold); + int c; + int *index = Malloc(int,l); + for(i=0;ix[perm[j]]; + subprob.y[k] = prob->y[perm[j]]; + ++k; + } + for(j=end;jx[perm[j]]; + subprob.y[k] = prob->y[perm[j]]; + ++k; + } + struct svm_model *submodel = svm_train(&subprob,param); + if(param->probability && + (param->svm_type == C_SVC || param->svm_type == NU_SVC)) + { + double *prob_estimates=Malloc(double,svm_get_nr_class(submodel)); + for(j=begin;jx[perm[j]],prob_estimates); + free(prob_estimates); + } + else + for(j=begin;jx[perm[j]]); + svm_free_and_destroy_model(&submodel); + free(subprob.x); + free(subprob.y); + } + free(fold_start); + free(perm); +} + + +int svm_get_svm_type(const svm_model *model) +{ + return model->param.svm_type; +} + +int svm_get_nr_class(const svm_model *model) +{ + return model->nr_class; +} + +void svm_get_labels(const svm_model *model, int* label) +{ + if (model->label != NULL) + for(int i=0;inr_class;i++) + label[i] = model->label[i]; +} + +double svm_get_svr_probability(const svm_model *model) +{ + if ((model->param.svm_type == EPSILON_SVR || model->param.svm_type == NU_SVR) && + model->probA!=NULL) + return model->probA[0]; + else + { + fprintf(stderr,"Model doesn't contain information for SVR probability inference\n"); + return 0; + } +} + +double svm_predict_values(const svm_model *model, const svm_node *x, double* dec_values) +{ + int i; + if(model->param.svm_type == ONE_CLASS || + model->param.svm_type == EPSILON_SVR || + model->param.svm_type == NU_SVR) + { + double *sv_coef = model->sv_coef[0]; + double sum = 0; + for(i=0;il;i++) + sum += sv_coef[i] * Kernel::k_function(x,model->SV[i],model->param); + sum -= model->rho[0]; + *dec_values = sum; + + if(model->param.svm_type == ONE_CLASS) + return (sum>0)?1:-1; + else + return sum; + } + else + { + int nr_class = model->nr_class; + int l = model->l; + + double *kvalue = Malloc(double,l); + for(i=0;iSV[i],model->param); + + int *start = Malloc(int,nr_class); + start[0] = 0; + for(i=1;inSV[i-1]; + + int *vote = Malloc(int,nr_class); + for(i=0;inSV[i]; + int cj = model->nSV[j]; + + int k; + double *coef1 = model->sv_coef[j-1]; + double *coef2 = model->sv_coef[i]; + for(k=0;krho[p]; + dec_values[p] = sum; + + if(dec_values[p] > 0) + ++vote[i]; + else + ++vote[j]; + p++; + } + + int vote_max_idx = 0; + for(i=1;i vote[vote_max_idx]) + vote_max_idx = i; + + free(kvalue); + free(start); + free(vote); + return model->label[vote_max_idx]; + } +} + +double svm_predict(const svm_model *model, const svm_node *x) +{ + int nr_class = model->nr_class; + double *dec_values; + if(model->param.svm_type == ONE_CLASS || + model->param.svm_type == EPSILON_SVR || + model->param.svm_type == NU_SVR) + dec_values = Malloc(double, 1); + else + dec_values = Malloc(double, nr_class*(nr_class-1)/2); + double pred_result = svm_predict_values(model, x, dec_values); + free(dec_values); + return pred_result; +} + +double svm_predict_probability( + const svm_model *model, const svm_node *x, double *prob_estimates) +{ + if ((model->param.svm_type == C_SVC || model->param.svm_type == NU_SVC) && + model->probA!=NULL && model->probB!=NULL) + { + int i; + int nr_class = model->nr_class; + double *dec_values = Malloc(double, nr_class*(nr_class-1)/2); + svm_predict_values(model, x, dec_values); + + double min_prob=1e-7; + double **pairwise_prob=Malloc(double *,nr_class); + for(i=0;iprobA[k],model->probB[k]),min_prob),1-min_prob); + pairwise_prob[j][i]=1-pairwise_prob[i][j]; + k++; + } + multiclass_probability(nr_class,pairwise_prob,prob_estimates); + + int prob_max_idx = 0; + for(i=1;i prob_estimates[prob_max_idx]) + prob_max_idx = i; + for(i=0;ilabel[prob_max_idx]; + } + else + return svm_predict(model, x); +} + +static const char *svm_type_table[] = +{ + "c_svc","nu_svc","one_class","epsilon_svr","nu_svr",NULL +}; + +static const char *kernel_type_table[]= +{ + "linear","polynomial","rbf","sigmoid","precomputed",NULL +}; + +int svm_save_model(const char *model_file_name, const svm_model *model) +{ + FILE *fp = fopen(model_file_name,"w"); + if(fp==NULL) return -1; + + const svm_parameter& param = model->param; + + fprintf(fp,"svm_type %s\n", svm_type_table[param.svm_type]); + fprintf(fp,"kernel_type %s\n", kernel_type_table[param.kernel_type]); + + if(param.kernel_type == POLY) + fprintf(fp,"degree %d\n", param.degree); + + if(param.kernel_type == POLY || param.kernel_type == RBF || param.kernel_type == SIGMOID) + fprintf(fp,"gamma %g\n", param.gamma); + + if(param.kernel_type == POLY || param.kernel_type == SIGMOID) + fprintf(fp,"coef0 %g\n", param.coef0); + + int nr_class = model->nr_class; + int l = model->l; + fprintf(fp, "nr_class %d\n", nr_class); + fprintf(fp, "total_sv %d\n",l); + + { + fprintf(fp, "rho"); + for(int i=0;irho[i]); + fprintf(fp, "\n"); + } + + if(model->label) + { + fprintf(fp, "label"); + for(int i=0;ilabel[i]); + fprintf(fp, "\n"); + } + + if(model->probA) // regression has probA only + { + fprintf(fp, "probA"); + for(int i=0;iprobA[i]); + fprintf(fp, "\n"); + } + if(model->probB) + { + fprintf(fp, "probB"); + for(int i=0;iprobB[i]); + fprintf(fp, "\n"); + } + + if(model->nSV) + { + fprintf(fp, "nr_sv"); + for(int i=0;inSV[i]); + fprintf(fp, "\n"); + } + + fprintf(fp, "SV\n"); + const double * const *sv_coef = model->sv_coef; + const svm_node * const *SV = model->SV; + + for(int i=0;ivalue)); + else + while(p->index != -1) + { + fprintf(fp,"%d:%.8g ",p->index,p->value); + p++; + } + fprintf(fp, "\n"); + } + if (ferror(fp) != 0 || fclose(fp) != 0) return -1; + else return 0; +} + +static char *line = NULL; +static int max_line_len; + +static char* readline(FILE *input) +{ + int len; + + if(fgets(line,max_line_len,input) == NULL) + return NULL; + + while(strrchr(line,'\n') == NULL) + { + max_line_len *= 2; + line = (char *) realloc(line,max_line_len); + len = (int) strlen(line); + if(fgets(line+len,max_line_len-len,input) == NULL) + break; + } + return line; +} + +svm_model *svm_load_model(const char *model_file_name) +{ + FILE *fp = fopen(model_file_name,"rb"); + if(fp==NULL) return NULL; + + // read parameters + + svm_model *model = Malloc(svm_model,1); + svm_parameter& param = model->param; + model->rho = NULL; + model->probA = NULL; + model->probB = NULL; + model->label = NULL; + model->nSV = NULL; + + char cmd[81]; + while(1) + { + fscanf(fp,"%80s",cmd); + + if(strcmp(cmd,"svm_type")==0) + { + fscanf(fp,"%80s",cmd); + int i; + for(i=0;svm_type_table[i];i++) + { + if(strcmp(svm_type_table[i],cmd)==0) + { + param.svm_type=i; + break; + } + } + if(svm_type_table[i] == NULL) + { + fprintf(stderr,"unknown svm type.\n"); + free(model->rho); + free(model->label); + free(model->nSV); + free(model); + return NULL; + } + } + else if(strcmp(cmd,"kernel_type")==0) + { + fscanf(fp,"%80s",cmd); + int i; + for(i=0;kernel_type_table[i];i++) + { + if(strcmp(kernel_type_table[i],cmd)==0) + { + param.kernel_type=i; + break; + } + } + if(kernel_type_table[i] == NULL) + { + fprintf(stderr,"unknown kernel function.\n"); + free(model->rho); + free(model->label); + free(model->nSV); + free(model); + return NULL; + } + } + else if(strcmp(cmd,"degree")==0) + fscanf(fp,"%d",¶m.degree); + else if(strcmp(cmd,"gamma")==0) + fscanf(fp,"%lf",¶m.gamma); + else if(strcmp(cmd,"coef0")==0) + fscanf(fp,"%lf",¶m.coef0); + else if(strcmp(cmd,"nr_class")==0) + fscanf(fp,"%d",&model->nr_class); + else if(strcmp(cmd,"total_sv")==0) + fscanf(fp,"%d",&model->l); + else if(strcmp(cmd,"rho")==0) + { + int n = model->nr_class * (model->nr_class-1)/2; + model->rho = Malloc(double,n); + for(int i=0;irho[i]); + } + else if(strcmp(cmd,"label")==0) + { + int n = model->nr_class; + model->label = Malloc(int,n); + for(int i=0;ilabel[i]); + } + else if(strcmp(cmd,"probA")==0) + { + int n = model->nr_class * (model->nr_class-1)/2; + model->probA = Malloc(double,n); + for(int i=0;iprobA[i]); + } + else if(strcmp(cmd,"probB")==0) + { + int n = model->nr_class * (model->nr_class-1)/2; + model->probB = Malloc(double,n); + for(int i=0;iprobB[i]); + } + else if(strcmp(cmd,"nr_sv")==0) + { + int n = model->nr_class; + model->nSV = Malloc(int,n); + for(int i=0;inSV[i]); + } + else if(strcmp(cmd,"SV")==0) + { + while(1) + { + int c = getc(fp); + if(c==EOF || c=='\n') break; + } + break; + } + else + { + fprintf(stderr,"unknown text in model file: [%s]\n",cmd); + free(model->rho); + free(model->label); + free(model->nSV); + free(model); + return NULL; + } + } + + // read sv_coef and SV + + int elements = 0; + long pos = ftell(fp); + + max_line_len = 1024; + line = Malloc(char,max_line_len); + char *p,*endptr,*idx,*val; + + while(readline(fp)!=NULL) + { + p = strtok(line,":"); + while(1) + { + p = strtok(NULL,":"); + if(p == NULL) + break; + ++elements; + } + } + elements += model->l; + + fseek(fp,pos,SEEK_SET); + + int m = model->nr_class - 1; + int l = model->l; + model->sv_coef = Malloc(double *,m); + int i; + for(i=0;isv_coef[i] = Malloc(double,l); + model->SV = Malloc(svm_node*,l); + svm_node *x_space = NULL; + if(l>0) x_space = Malloc(svm_node,elements); + + int j=0; + for(i=0;iSV[i] = &x_space[j]; + + p = strtok(line, " \t"); + model->sv_coef[0][i] = strtod(p,&endptr); + for(int k=1;ksv_coef[k][i] = strtod(p,&endptr); + } + + while(1) + { + idx = strtok(NULL, ":"); + val = strtok(NULL, " \t"); + + if(val == NULL) + break; + x_space[j].index = (int) strtol(idx,&endptr,10); + x_space[j].value = strtod(val,&endptr); + + ++j; + } + x_space[j++].index = -1; + } + free(line); + + if (ferror(fp) != 0 || fclose(fp) != 0) + return NULL; + + model->free_sv = 1; // XXX + return model; +} + +void svm_free_model_content(svm_model* model_ptr) +{ + if(model_ptr->free_sv && model_ptr->l > 0 && model_ptr->SV != NULL) + free((void *)(model_ptr->SV[0])); + if(model_ptr->sv_coef) + { + for(int i=0;inr_class-1;i++) + free(model_ptr->sv_coef[i]); + } + + free(model_ptr->SV); + model_ptr->SV = NULL; + + free(model_ptr->sv_coef); + model_ptr->sv_coef = NULL; + + free(model_ptr->rho); + model_ptr->rho = NULL; + + free(model_ptr->label); + model_ptr->label= NULL; + + free(model_ptr->probA); + model_ptr->probA = NULL; + + free(model_ptr->probB); + model_ptr->probB= NULL; + + free(model_ptr->nSV); + model_ptr->nSV = NULL; +} + +void svm_free_and_destroy_model(svm_model** model_ptr_ptr) +{ + if(model_ptr_ptr != NULL && *model_ptr_ptr != NULL) + { + svm_free_model_content(*model_ptr_ptr); + free(*model_ptr_ptr); + *model_ptr_ptr = NULL; + } +} + +void svm_destroy_param(svm_parameter* param) +{ + free(param->weight_label); + free(param->weight); +} + +const char *svm_check_parameter(const svm_problem *prob, const svm_parameter *param) +{ + // svm_type + + int svm_type = param->svm_type; + if(svm_type != C_SVC && + svm_type != NU_SVC && + svm_type != ONE_CLASS && + svm_type != EPSILON_SVR && + svm_type != NU_SVR) + return "unknown svm type"; + + // kernel_type, degree + + int kernel_type = param->kernel_type; + if(kernel_type != LINEAR && + kernel_type != POLY && + kernel_type != RBF && + kernel_type != SIGMOID && + kernel_type != PRECOMPUTED) + return "unknown kernel type"; + + if(param->gamma < 0) + return "gamma < 0"; + + if(param->degree < 0) + return "degree of polynomial kernel < 0"; + + // cache_size,eps,C,nu,p,shrinking + + if(param->cache_size <= 0) + return "cache_size <= 0"; + + if(param->eps <= 0) + return "eps <= 0"; + + if(svm_type == C_SVC || + svm_type == EPSILON_SVR || + svm_type == NU_SVR) + if(param->C <= 0) + return "C <= 0"; + + if(svm_type == NU_SVC || + svm_type == ONE_CLASS || + svm_type == NU_SVR) + if(param->nu <= 0 || param->nu > 1) + return "nu <= 0 or nu > 1"; + + if(svm_type == EPSILON_SVR) + if(param->p < 0) + return "p < 0"; + + if(param->shrinking != 0 && + param->shrinking != 1) + return "shrinking != 0 and shrinking != 1"; + + if(param->probability != 0 && + param->probability != 1) + return "probability != 0 and probability != 1"; + + if(param->probability == 1 && + svm_type == ONE_CLASS) + return "one-class SVM probability output not supported yet"; + + + // check whether nu-svc is feasible + + if(svm_type == NU_SVC) + { + int l = prob->l; + int max_nr_class = 16; + int nr_class = 0; + int *label = Malloc(int,max_nr_class); + int *count = Malloc(int,max_nr_class); + + int i; + for(i=0;iy[i]; + int j; + for(j=0;jnu*(n1+n2)/2 > min(n1,n2)) + { + free(label); + free(count); + return "specified nu is infeasible"; + } + } + } + free(label); + free(count); + } + + return NULL; +} + +int svm_check_probability_model(const svm_model *model) +{ + return ((model->param.svm_type == C_SVC || model->param.svm_type == NU_SVC) && + model->probA!=NULL && model->probB!=NULL) || + ((model->param.svm_type == EPSILON_SVR || model->param.svm_type == NU_SVR) && + model->probA!=NULL); +} + +void svm_set_print_string_function(void (*print_func)(const char *)) +{ + if(print_func == NULL) + svm_print_string = &print_string_stdout; + else + svm_print_string = print_func; +} diff --git a/src/veloslam/tracker.cc b/src/veloslam/tracker.cc new file mode 100644 index 0000000..590be13 --- /dev/null +++ b/src/veloslam/tracker.cc @@ -0,0 +1,66 @@ +/* + * tracker implementation + * + * Copyright (C) ZhangLiang, YuanJun, Li Wei, Li Ming, Andreas Nuechter + * + * Released under the GPL version 3. + * + */ + +/** + * @file + * @brief Main programm for dynamic Velodyne SLAM + * + * @author Andreas Nuechter. Jacobs University Bremen, Germany + * @author YuanJun, Wuhan University, China + * @author ZhangLiang, Wuhan University, China + * @author Li Wei, Wuhan University, China + * @author Li Ming, Wuhan University, China + */ + +#include "veloslam/tracker.h" + +Tracker::Tracker(void) +{ + missMatch=false; + matchClusterID=-1; + colorIdx=-1; + + missedTime=0; + trackerID=0; +} + +Tracker::~Tracker(void) +{ + TrackerReset(); +} + +Tracker::Tracker(clusterFeature &glu,double rollAngle):kalmanFilter(glu,rollAngle) //added by yuanjun +{ + missMatch=false; + matchClusterID=-1; + colorIdx=-1; + missedTime=0; + trackerID=0; +} + +Tracker::Tracker(const Tracker ©Tracker) //added by yuanjun +{ + missMatch=copyTracker.missMatch; + matchClusterID=copyTracker.matchClusterID; + colorIdx=copyTracker.colorIdx; + statusList=copyTracker.statusList; + dataList=copyTracker.dataList; + kalmanFilter=copyTracker.kalmanFilter; + missedTime=copyTracker.missedTime; + moveStateList=copyTracker.moveStateList; + trackerID=copyTracker.trackerID; +} + +void Tracker::TrackerReset() +{ + statusList.clear(); + dataList.clear(); + moveStateList.clear(); + return; +} diff --git a/src/veloslam/trackermanager.cc b/src/veloslam/trackermanager.cc new file mode 100644 index 0000000..fab836e --- /dev/null +++ b/src/veloslam/trackermanager.cc @@ -0,0 +1,929 @@ +/* + * trackermanager implementation + * + * Copyright (C) ZhangLiang, YuanJun, Li Wei, Li Ming, Andreas Nuechter + * + * Released under the GPL version 3. + * + */ + +/** + * @file + * @brief Main programm for dynamic Velodyne SLAM + * + * @author Andreas Nuechter. Jacobs University Bremen, Germany + * @author YuanJun, Wuhan University, China + * @author ZhangLiang, Wuhan University, China + * @author Li Wei, Wuhan University, China + * @author Li Ming, Wuhan University, China + */ +#include +#include +#include +#include + +#ifdef _MSC_VER +#include +#else +#include +#endif + +#include "slam6d/scan.h" +#include "slam6d/globals.icc" + +#include "veloslam/color_util.h" +#include "veloslam/veloscan.h" +#include "veloslam/trackermanager.h" +#include "veloslam/debugview.h" +#include "veloslam/kalmanfilter.h" +#include "veloslam/lap.h" + + + +#define KG 35 +#define BIGNUM 100000 + +int sliding_window_size = 6; +int current_sliding_window_pos =0; +Trajectory VelodyneTrajectory; +VeloScan * g_pfirstScan; +float constant_static_or_moving = 20.0; + +int GetScanID_in_SlidingWindow(int absNO, int current_pos, int window_size) +{ + int firstNO=-1; + // relative scanID absolute scanID + // absNO (6,7,8,9) current_pos(6,7,8,9) window_size =6 +#ifdef NO_SLIDING_WINDOW + firstNO = absNO; +#else + if( (absNO >=(current_pos - window_size) ) + && (absNO <= current_pos) ) + { + firstNO =absNO - (current_pos - window_size ); + } + else + { + //in first scans + firstNO = -1; + } + if(current_pos < window_size) + { + //in first scans + firstNO = absNO; + } +#endif +// cout << " absNO " << absNO << " firstNO "<0) + { + radiusDiff=fabs(tracker.statusList.back().radius-glu.radius); + thetaDiff=fabs(tracker.statusList.back().theta-glu.theta); + sizeDiff =abs(tracker.statusList.back().size-glu.size); + shapeDiff =fabs( fabs(tracker.statusList.back().size_x-glu.size_x) + + fabs(tracker.statusList.back().size_y-glu.size_y) + + fabs(tracker.statusList.back().size_z-glu.size_z) ); + positionDiff = sqrt( (tracker.statusList.back().avg_x -glu.avg_x)*(tracker.statusList.back().avg_x -glu.avg_x) + + (tracker.statusList.back().avg_z -glu.avg_z)*(tracker.statusList.back().avg_z -glu.avg_z) + ) ; + } + value= radiusDiff*1.0 + thetaDiff*1.0 + sizeDiff*0.8 + shapeDiff*0.8 + positionDiff * 0.3 ; + if(value < minValue) + { + minValue=value; + minID=i; + temp=glu; + flag=true; + } + + } + + } + + // find matched tracker. + if (flag) + { + tracker.kalmanFilter.stateUpdate(temp,rollAngle,delta_Pos); + tracker.kalmanFilter.timeUpdate(); + // movestate=tracker.kalmanFilter.GetCurrentState(); + + // cout<<"The tracker with trackerID:"<::iterator it; + int trackNO =0; + for(it=tracks.begin() ; it!=tracks.end();it++ ) + { + Tracker &tracker=*it; + trackNO ++; + + if (!(tracker.missMatch)) + { + matchID=MatchTrackers(scanRef,tracker,KG); + } + else + { + matchID=MatchTrackers(scanRef,tracker,1.5*KG); + } + + if(matchID==-1) + { + // log miss times of tracker + tracker.missMatch=true; + tracker.missedTime++; + // cout << "missing tracker" << tracker.trackerID + // <<" times " <=0 ) + { + scanRef.scanClusterFeatureArray[matchID].trackNO = trackNO; + + clusterFeature &glu=scanRef.scanClusterFeatureArray[matchID]; + cluster &gluData=scanRef.scanClusterArray[matchID]; + glu.frameNO= scanRef.scanid; + glu.selfID = matchID; + + // save feature + tracker.statusList.push_back(glu); + tracker.dataList.push_back(gluData); + tracker.matchClusterID=matchID; + tracker.missMatch=false; + + clusterStatus[matchID].Matched=true; + // cout << "Match tracker" << tracker.trackerID + // <<" size of " <::iterator it; + cout<<" tracker list : "<::iterator it; + int trackNO =0; + for(it=tracks.begin() ; it!=tracks.end();) + { + + Tracker &tracker=*it; + +#ifndef NO_SLIDING_WINDOW + if (!tracker.statusList.empty()) + { + deque::iterator Iter1; + deque::iterator Iter2; + vector::iterator Iter3; + Iter1=tracker.statusList.begin(); + Iter2=tracker.dataList.begin(); + Iter3=tracker.moveStateList.begin(); + + do + { + clusterFeature &tempClu=*Iter1; + if(tempClu.frameNO current_sliding_window_pos) + { + //cout<<"trackerID: "<::iterator Iter; + for (Iter=tracks.begin();Iter!=tracks.end();Iter++) + { + Tracker temp=*Iter; + temp.TrackerReset(); + } + tracks.clear(); + return; +} + + +int TrackerManager::CalculateTrackersFeature(vector allScans, int currentNO ,int windowsize) +{ + int i,j,k,colorIdx; + float movement; + list::iterator it; + + int n; + + for(it=tracks.begin(); it!=tracks.end(); it++) + { + Tracker &tracker=*it; + tracker.moving_distance = 0.0; + + int size=tracker.statusList.size(); + if ( size <2 ) + { + continue; + } + movement =0; + n=0; + + for ( i=0;i=current_sliding_window_pos - sliding_window_size&&glu2.frameNO <=current_sliding_window_pos) + { + movement += sqrt( (p1.x -p2.x)*(p1.x -p2.x)+(p1.z -p2.z)*(p1.z -p2.z) ); + n++; + } +#else + movement += sqrt( (p1.x -p2.x)*(p1.x -p2.x)+(p1.z -p2.z)*(p1.z -p2.z) ); +#endif + // cout << " tracker no" << tracker.matchClusterID <<" " + // << p1.x <<" " << p2.x <<" " + //<< p1.y <<" " << p2.y <<" " + //<< p1.z <<" " << p2.z <<" " << movement <<" " << endl; + + } + +#ifdef NO_SLIDING_WINDOW + if (n!=0) + { + tracker.moving_distance=movement/n; + } + else + { + tracker.moving_distance=0; + } + +#else + tracker.moving_distance = movement/(size-1); +#endif + + } + return 0; +} + +int TrackerManager::MarkClassifiyTrackersResult(vector allScans, int currentNO ,int windowsize) +{ + int i,j,k,colorIdx; + float movement; + list::iterator it; + + // mark all objets type such as moving or static + for(it=tracks.begin(); it!=tracks.end(); it++) + { + int currentScanNo =0; + Tracker &tracker=*it; + int size=tracker.statusList.size(); + // no tracking all for slam + // for tracking classifiation //not transfrom to scan + if (size < 3) + { + for(i=0;iscanClusterFeatureArray[glu1.selfID]; + cluster &realgclu = CurrentScan->scanClusterArray[glu1.selfID]; + + realglu1.clusterType = CLUSTER_TYPE_STATIC_OBJECT; + for(j =0; j< realgclu.size() ; ++j) + { + cellFeature &gcF = *(realgclu[j]); + gcF.cellType = CELL_TYPE_STATIC; + } + } + continue; + } + + for(i=0;iscanClusterFeatureArray[glu1.selfID]; + cluster &realgclu = CurrentScan->scanClusterArray[glu1.selfID]; + + if(tracker.moving_distance < constant_static_or_moving) + { + realglu1.clusterType = CLUSTER_TYPE_STATIC_OBJECT; + for(j =0; j< realgclu.size() ; ++j) + { + cellFeature &gcF = *(realgclu[j]); + gcF.cellType = CELL_TYPE_STATIC; + } + } + else + { + realglu1.clusterType = CLUSTER_TYPE_MOVING_OBJECT; + for(j =0; j< realgclu.size() ; ++j) + { + cellFeature &gcF = *(realgclu[j]); + gcF.cellType = CELL_TYPE_MOVING; + } + + } + + } + } + return 0; +} + + +int TrackerManager::ClassifiyTrackersObjects(vector allScans, int currentNO ,int windowsize) +{ + CalculateTrackersFeature(allScans, currentNO, windowsize); + MarkClassifiyTrackersResult(allScans, currentNO , windowsize); + return 0; +} + +int TrackerManager::UpdateClustersPoistioninTrackers() +{ + int i,j; + + list::iterator it; + for(it=tracks.begin() ; it!=tracks.end();it++ ) + { + Tracker &tracker=*it; +/* + firstNO = GetScanID_in_SlidingWindow(glu1.frameNO, + current_sliding_window_pos, + sliding_window_size); + secondNO = GetScanID_in_SlidingWindow(glu2.frameNO, + current_sliding_window_pos, + sliding_window_size); + if(firstNO <0 || secondNO< 0 ) + continue; + + Scan *firstScan = (Scan *)g_pfirstScan; + Scan *CurrentScan = allScans[firstNO]; + Scan *CurrentScanNext = allScans[secondNO]; + + double deltaMat[16]; + double deltaMatNext[16]; + + GetCurrecntdelteMat(*CurrentScan , *firstScan, deltaMat); + GetCurrecntdelteMat(*CurrentScanNext , *firstScan, deltaMatNext); + + p1.x = glu1.avg_x; p1.y= glu1.avg_y;p1.z=glu1.avg_z; + p1text.x= glu1.avg_x+150; p1text.y= glu1.avg_y+80; p1text.z=glu1.avg_z+50; + p2.x = glu2.avg_x; p2.y= glu2.avg_y; p2.z=glu2.avg_z; + p2text.x= glu2.avg_x+150; p2text.y= glu2.avg_y+80; p2text.z=glu2.avg_z+50; +*/ + } + return 0; +} + +void TrackerManager::GetTwoScanRoll(Scan *CurrentScan,Scan *preScan)//??? +{ + double tempMat[16],deltaMat[16]; + M4inv(preScan->get_transMat(), tempMat); + MMult(CurrentScan->get_transMat(), tempMat,deltaMat); + Matrix4ToEuler(deltaMat,delta_Theta,delta_Pos); + //cout<<"delta_Theta: "<trackSize?clusterSize:trackSize; + } + else + { + maxSize=clusterSize; + } + + CMatrix costMatrix(maxSize,maxSize); + + int i=0,j,k; + double costValue; + float radiusDiff; + float thetaDiff; + float sizeDiff; + float positionDiff; + CMatrix standardDeviation(2,2),measurementErro(2,1); + Measurement predictMeasurement; + bool IsSmaller1,IsSmaller2; + float kg; + + list::iterator it; + for(it=tracks.begin(); it!=tracks.end(); it++) + { + Tracker &tracker=*it; + + predictMeasurement=tracker.kalmanFilter.GetPredictMeasurement(rollAngle,delta_Pos); + standardDeviation=tracker.kalmanFilter.CalMeasureDeviation(); + + if (tracker.missMatch) + { + kg=1.5*KG; + } + else + { + kg=KG; + } + + k=0; + for(j=0;j::iterator it; + for(it=tracks.begin() ; it!=tracks.end();it++) + { + Tracker &tracker=*it; + trackNO ++; + trackerIndex++; + if (missFlag[trackerIndex]) + { + tracker.missMatch=true; + tracker.missedTime++; + + } + else + { + int clusterID=rowsol[trackerIndex]; + int matchID=clusterIndex[clusterID]; + //cout<<"TrackerID: "< +using std::ifstream; +using std::ofstream; + +#include +using std::cout; +using std::cerr; +using std::endl; + +#include +using std::stringstream; + +#include "veloslam/veloscan.h" + +#ifdef _OPENMP +#include +#endif + +#ifdef _MSC_VER +#include +#else +#include +#endif + +#ifdef _MSC_VER +#define strcasecmp _stricmp +#define strncasecmp _strnicmp +#else +#include +#endif + +#include +using std::flush; + +#include "slam6d/Boctree.h" +#include "veloslam/veloscan.h" +#include "veloslam/pcddump.h" +#include "veloslam/trackermanager.h" +#include "veloslam/clusterboundingbox.h" + +#ifdef _OPENMP +#include +#endif + +#ifdef _MSC_VER +#include +#else +#include +#endif + +#ifdef _MSC_VER +#define strcasecmp _stricmp +#define strncasecmp _strnicmp +#else +#include +#endif + +#include +using std::flush; + +#include +#include + +#ifdef _MSC_VER +#include +#else +#include +#endif +#include "veloslam/velodefs.h" +#include "veloslam/color_util.h" + +int scanCount =0; +TrackerManager trackMgr; +float absf(float a) +{ + return a>0?a:-a; +} + +Trajectory::Trajectory() +{ + +} + + +/** + * default Constructor + */ +VeloScan::VeloScan() + : Scan() +{ + isTrackerHandled =false; +} + +/** + * Desctuctor + */ +VeloScan::~VeloScan() +{ + FreeAllCellAndCluterMemory(); +} + +int VeloScan::DeletePoints() +{ + FreeAllCellAndCluterMemory(); + return 0; +} + +/** + * Copy constructor + */ +VeloScan::VeloScan(const VeloScan& s) + : Scan(s) +{ } + +int VeloScan::TransferToCellArray(int maxDist, int minDist) +{ +#define DefaultColumnSize 360 + Point P; + DataXYZ xyz(get("xyz")); + int size= xyz.size(); + + int columnSize= 360; //cfg.cfgPlaneDetect.ColumnSize; + int CellSize= 50; //cfg.cfgPlaneDetect.CellSize; + + int MinRad=minDist; //cfg.cfgPlaneDetect.MinRad; + int MaxRad=maxDist; //cfg.cfgPlaneDetect.MaxRad + + if((MaxRad-MinRad)%CellSize!=0) + CellSize=10; + + int i,j,count=0; + int CellNumber=(MaxRad-MinRad)/CellSize; + float flag; + int offset; + + if(columnSize==0) + return -1; + + if(columnSize%360!=0) + columnSize=DefaultColumnSize; + + int sectionSize=columnSize/8; + + scanCellArray.resize(columnSize); + for(i=0; i tanv; + vector::iterator result; + + for(i=0; i=MaxRad) + continue; + + // some point losted which on the vline or hline + if(pt.x >=0 && pt.z>=0 ) + { + if(pt.x > pt.z) + { + flag= pt.tan_theta; + result=upper_bound(tanv.begin(),tanv.end(),flag); + if(result==tanv.end()) + { + offset=sectionSize-1; + } + else + { + offset=result-tanv.begin(); + } + } + else + { + flag=1/pt.tan_theta; + result=upper_bound(tanv.begin(),tanv.end(),flag); + if(result==tanv.end()) + { + offset=sectionSize; + } + else + { + diff=result-tanv.begin(); + offset=sectionSize*2-1-(diff); + } + + } + } + + else if(pt.x <= 0 && pt.z >=0) + { + if(-pt.x>pt.z) + { + flag=-pt.tan_theta; + result=upper_bound(tanv.begin(),tanv.end(),flag); + if(result==tanv.end()) + { + offset=sectionSize*3; + } + else + { + offset=sectionSize*4-1-(result-tanv.begin()); + } + + } + else + { + flag=1/-pt.tan_theta; + result=upper_bound(tanv.begin(),tanv.end(),flag); + if(result==tanv.end()) + { + offset=sectionSize*3-1; + } + else + { + offset=sectionSize*2+(result-tanv.begin()); + } + } + } + + else if(pt.x<=0 && pt.z<=0) + { + if(-pt.x>-pt.z) + { + flag=pt.tan_theta; + result=upper_bound(tanv.begin(),tanv.end(),flag); + if(result==tanv.end()) + { + offset=sectionSize*5-1; + } + else + { + offset=sectionSize*4+(result-tanv.begin()); + } + } + else + { + flag=1/pt.tan_theta; + result=upper_bound(tanv.begin(),tanv.end(),flag); + if(result==tanv.end()) + { + offset=sectionSize*5; + } + else + { + offset=sectionSize*6-1-(result-tanv.begin()); + } + + } + } + + else if(pt.x>=0&&pt.z<=0) + { + if(pt.x>-pt.z) + { + flag=-pt.tan_theta; + result=upper_bound(tanv.begin(),tanv.end(),flag); + if(result==tanv.end()) + { + offset=sectionSize*7; + } + else + { + offset=sectionSize*8-1-(result-tanv.begin()); + } + } + else + { + flag=1/-pt.tan_theta; + result=upper_bound(tanv.begin(),tanv.end(),flag); + if(result==tanv.end()) + { + offset=sectionSize*7-1; + } + else + { + offset=sectionSize*6+(result-tanv.begin()); + } + } + } + + else + { + continue; + } + + int k= (int)((pt.rad-MinRad)/(CellSize*1.0)); + scanCellArray[offset][k].push_back(&pt); + } + return 0; +} + + + +int VeloScan::CalcCellFeature(cell& cellobj, cellFeature& f) +{ + int outlier; + float lastMaxY; + f.size=cellobj.size(); + f.cellType=0; + + if(f.size==0) + { + f.cellType|=CELL_TYPE_INVALID; + return 0; + } + + f.ave_x= f.ave_y = f.ave_z=0.0; + f.delta_y=0; + + int i=0; + for(i=0; ix; + f.ave_z+=cellobj[i]->z; + f.ave_y+=cellobj[i]->y; + + // if(cellobj[i]->type & POINT_TYPE_BELOW_R) + // f.cellType |=CELL_TYPE_BELOW_R; + + if(i==0) + { + outlier=0; + f.min_x=f.max_x=cellobj[i]->x; + f.min_z=f.max_z=cellobj[i]->z; + lastMaxY=f.min_y=f.max_y=cellobj[i]->y; + } + else + { + if(f.max_xx) f.max_x=cellobj[i]->x; + + if(f.min_x>cellobj[i]->x) f.min_x=cellobj[i]->x; + + if(f.max_zz) f.max_z=cellobj[i]->z; + + if(f.min_z>cellobj[i]->z) f.min_z=cellobj[i]->z; + + if(f.max_yy) + { + lastMaxY=f.max_y; + f.max_y=cellobj[i]->y; + outlier=i; + } + + if(f.min_y>cellobj[i]->y) + f.min_y=cellobj[i]->y; + + } + } + + if(f.size>1) + { + int y=f.ave_y-cellobj[outlier]->y; + y/=(f.size-1)*1.0; + + if(cellobj[outlier]->y-y<50) + { + outlier=-1; + f.ave_y/=f.size*1.0; + } + else + { + f.max_y=lastMaxY; + f.ave_y=y; + } + } + else + { + outlier=-1; + f.ave_y/=f.size*1.0; + } + + f.ave_x/=f.size*1.0; + f.ave_z/=f.size*1.0; + + for(i=0; iy - f.ave_y); + } + + float threshold; + threshold=f.delta_y; + + float GridThresholdGroundDetect =120; + if( threshold > GridThresholdGroundDetect) + f.cellType =CELL_TYPE_STATIC; + else + f.cellType =CELL_TYPE_GROUND; + + return 0; +} + + +int VeloScan::CalcScanCellFeature() +{ + int i,j; + + if( scanCellArray.size()==0) + return -1; + + int columnSize=scanCellArray.size(); + int cellNumber=scanCellArray[0].size(); + + if( scanCellFeatureArray.size()==0) + { + scanCellFeatureArray.resize(columnSize); + for(i=0; i 120) +// { +// scanCellFeatureArray[j][i].cellType |= CELL_TYPE_STATIC; +// for(int k=0;k type |= POINT_TYPE_ABOVE_DELTA_Y; +// +// } + + } + } + + return 0; +} + +int VeloScan::SearchNeigh(cluster& clu,charvv& flagvv,int i,int j) +{ + int columnSize=scanCellArray.size(); + int cellNumber=scanCellArray[0].size(); + + if(i==-1) + i= columnSize-1; + + if(i==columnSize) + i= 0; + + + if(i<0||i>=columnSize||j<0||j>=cellNumber) + return 0; + + if(flagvv[i][j]==1) + return 0; + if(scanCellFeatureArray[i][j].size==0) + { + flagvv[i][j]=1; + return 0; + } + + if(scanCellFeatureArray[i][j].cellType & CELL_TYPE_STATIC) + { + flagvv[i][j]=1; + + clu.push_back(&scanCellFeatureArray[i][j]); + + SearchNeigh(clu,flagvv,i-1,j-1); + SearchNeigh(clu,flagvv,i-1,j); + SearchNeigh(clu,flagvv,i-1,j+1); + SearchNeigh(clu,flagvv,i,j-1); + SearchNeigh(clu,flagvv,i,j+1); + SearchNeigh(clu,flagvv,i+1,j-1); + SearchNeigh(clu,flagvv,i+1,j); + SearchNeigh(clu,flagvv,i+1,j+1); + + SearchNeigh(clu,flagvv,i,j+2); + SearchNeigh(clu,flagvv,i,j-2); + SearchNeigh(clu,flagvv,i+2,j); + SearchNeigh(clu,flagvv,i-2,j); + + //SearchNeigh(clu,flagvv,i,j+3); + //SearchNeigh(clu,flagvv,i,j-3); + //SearchNeigh(clu,flagvv,i+3,j); + //SearchNeigh(clu,flagvv,i-3,j); + } + + return 0; +} + +int VeloScan::CalcClusterFeature(cluster& clu, clusterFeature& f) +{ + f.size=clu.size(); + + if(f.size==0) + { + return 0; + } + + f.clusterType=0; + f.pointNumber=0; + + f.avg_x =0; f.avg_y=0; f.avg_z=0; + + int i=0; + for(i=0; iave_x; + f.avg_y += clu[i]->ave_y; + f.avg_z += clu[i]->ave_z; + + if(i==0) + { + f.min_x=f.max_x=clu[i]->min_x; + f.min_z=f.max_z=clu[i]->min_z; + f.min_y=f.max_y=clu[i]->min_y; + } + else + { + if(f.max_xmax_x) + f.max_x=clu[i]->max_x; + + if(f.min_x>clu[i]->min_x) + f.min_x=clu[i]->min_x; + + if(f.max_zmax_z) + f.max_z=clu[i]->max_z; + + if(f.min_z>clu[i]->min_z) + f.min_z=clu[i]->min_z; + + if(f.max_ymax_y) + f.max_y=clu[i]->max_y; + + if(f.min_y>clu[i]->min_y) + f.min_y=clu[i]->min_y; + + } + f.pointNumber+=clu[i]->size; + f.theta += clu[i]->size*clu[i]->columnID; + f.radius += clu[i]->size*clu[i]->cellID; + } + + f.size_x=f.max_x-f.min_x; + f.size_z=f.max_z-f.min_z; + f.size_y=f.max_y-f.min_y; + + f.avg_x /= f.size; + f.avg_y /= f.size; + f.avg_z /= f.size; + + f.theta=f.theta / (f.pointNumber*1.0); + f.radius=f.radius / (f.pointNumber*1.0); + + return 0; +} + +int VeloScan::FindAndCalcScanClusterFeature() +{ + int i,j; + + if( scanCellArray.size()==0) + return -1; + + int columnSize=scanCellArray.size(); + int cellNumber=scanCellArray[0].size(); + + charvv searchedFlag; + searchedFlag.resize(columnSize); + for(i=0; i *oct = new BOctTree(PointerArray(xyz_t).get(), + xyz_t.size(), reduction_voxelSize, reduction_pointtype); + + vector center; + center.clear(); + + if (reduction_nrpts > 0) { + if (reduction_nrpts == 1) { + oct->GetOctTreeRandom(center); + } else { + oct->GetOctTreeRandom(center, reduction_nrpts); + } + } else { + oct->GetOctTreeCenter(center); + } + + // storing it as reduced scan + unsigned int size = center.size(); + DataXYZ xyz_r(create("xyz reduced", sizeof(double)*3*size)); + for(unsigned int i = 0; i < size; ++i) { + for(unsigned int j = 0; j < 3; ++j) { + xyz_r[i][j] = center[i][j]; + } + } + + delete oct; +} + +bool findBusCluster(clusterFeature &glu, cluster &gluData) +{ + /* double labelSVM; + for(int i=0;i<360;i++) + { + nod[i].index=i+1; + nod[i].value=intersectionFeature[i].slashLength/slashMaxLength; + } + nod[360].index=-1; + labelSVM= svm_predict(m,nod); + + ofstream output; + output.open("intersection.txt"); + output<<"labelSVM:"<0.5) + cout<<"intersection"< 800 || glu.size_z > 800 ) + { + return false; + } + return true; + // no filter + + //char filename[256]; + //string file; + //sprintf(filename,"c:\\filename%d.txt", objcount); + //file =filename; + //DumpPointtoFile(gluData, file); + //DumpFeaturetoFile(glu, "c:\\feature"); + //objcount++; +} + +//long objcount =0; +// In one scans find which the more like moving object such as pedestrian, car, bus. +bool FindMovingObjcets(clusterFeature &glu, cluster &gluData) +{ + // for debug moving object detections. + + if( glu.size_y > 200 && ((glu.size_x>glu.size_y?glu.size_x:glu.size_y))<360) + { + return false; + } + else if((glu.size_y>350 && glu.size_x<140)|| (glu.size_x>350 && glu.size_y<140)) + { + return false; + } + else if(glu.size_y > 250 ) + { + return false; + } + else if((glu.size_x>glu.size_y?glu.size_x:glu.size_y)>420 && glu.size_z<130) + { + return false; + } + else if((glu.size_x>glu.size_y?glu.size_x:glu.size_y)>3.5 + && ((glu.size_x>glu.size_y?glu.size_x:glu.size_y)/(glu.size_x4)) + { + return false; + } + else if(glu.size_x<700 && glu.size_z<700 && glu.size_y > 100 ) + { + return true; + } + if(glu.size_x>1500 || glu.size_z>1500 || glu.size_x*glu.size_z >600*600 ) + { + return false; + } + if (glu.size_x*glu.size_z > 500*500 && glu.size_x/glu.size_z < 1.5) + { + return false; + } + if(glu.size_y < 100) + { + return false; + } + if((glu.size_x + glu.size_y + glu.size_z)<1.5) + { + return false; + } + if(glu.size_z>700) + { + return false; + } + if(glu.size_x>700) + { + return false; + } + if(( glu.size_x + glu.size_z) <4) + { + return false; + } + if( glu.size_x/glu.size_z> 3.0) + { + return false; + } + + return true; +} + + +// bi classification for distigushed the moving or static +void VeloScan::ClassifiAllObject() +{ + int i,j; + int clustersize=scanClusterArray.size(); + + //Find moving Ojbects + for(i=0; isize(); + cell &gCell =*( gcellFreature.pCell); + + for( k=0; k< gcellFreature.pCell->size();++k) + { + // find Point in scan raw points by point_id; + Point p = *(gCell[k]); + if(gcellFreature.cellType & CELL_TYPE_STATIC) + Pt[p.point_id] = POINT_TYPE_STATIC_OBJECT; + if(gcellFreature.cellType & CELL_TYPE_MOVING) + Pt[p.point_id] = POINT_TYPE_MOVING_OBJECT; + if(gcellFreature.cellType & CELL_TYPE_GROUND) + Pt[p.point_id] = POINT_TYPE_GROUND; + } + + } + } +} + +void VeloScan::FindingAllofObject(int maxDist, int minDist) +{ + TransferToCellArray(maxDist, minDist); + CalcScanCellFeature(); + FindAndCalcScanClusterFeature(); + + return; + } + + +void VeloScan::TrackingAllofObject(int trackingAlgo) +{ + trackMgr.HandleScan(*this,trackingAlgo); + } + +void VeloScan::ClassifiAllofObject() +{ + ClassifiAllObject(); + } + +void VeloScan::ExchangePointCloud() +{ + MarkStaticorMovingPointCloud(); + return; + } diff --git a/src/veloslam/veloshow.cc b/src/veloslam/veloshow.cc new file mode 100644 index 0000000..34be143 --- /dev/null +++ b/src/veloslam/veloshow.cc @@ -0,0 +1,1078 @@ +/* + * veloshow implementation + * + * Copyright (C) Andreas Nuechter, Li Wei, Li Ming + * + * Released under the GPL version 3. + * + */ + +/** + * @file + * @brief Implementation for displaying of a matched 3D scene + * @author Andreas Nuechter. Jacobs University Bremen, Germany + * @author Li Wei, Wuhan University, China + * @author Li Ming, Wuhan University, China + */ +#ifdef WITH_GLEE +#include +#endif + +#include "show/show.h" +#include "show/show_Boctree.h" +#include "show/compacttree.h" +#include "show/NurbsPath.h" +#include "show/vertexarray.h" +#include "slam6d/scan.h" +#include "veloslam/veloscan.h" +#include "glui/glui.h" /* Header File For The glui functions */ +#include +using std::ifstream; +#include +using std::exception; + +#ifdef _MSC_VER +#include "XGetopt.h" +#else +#include +#endif + +#ifdef _MSC_VER +#define strcasecmp _stricmp +#define strncasecmp _strnicmp +#else +#include +#endif + + +#ifdef _MSC_VER +#ifdef OPENMP +#define _OPENMP +#endif +#endif + +#ifdef _OPENMP +#include +#endif + +#include "slam6d/point_type.h" +#include "show/display.h" + +/** + * This vector contains the pointer to a vertex array for + * all colors (inner vector) and all scans (outer vector) + */ +vector< vector > vvertexArrayList; + +vector< ::SDisplay*> displays; +/** + * the octrees that store the points for each scan + */ +//Show_BOctTree **octpts; +vector octpts; +/** + * Storing the base directory + */ +string scandirectory; + +/** + * Storing the ID of the main windows + */ +int window_id; + +/** + * Size of points + */ +GLfloat pointsize = 1.0; +int anim_delay = 5; + +/** + * Select Color Buffer + */ +GLenum buffermode = GL_BACK; + +/** + * Indicator whether and how the drawing window + * has to be updated. + * + * haveToUpdate == 1 redisplay + * haveToUpdate == 2 reshape + * haveToUpdate == 3 animation scan matching + * haveToUpdate == 4 stop animation scan matching + * haveToUpdate == 6 path animation + * haveToUpdate == 7 force redisplay with all points + */ +int haveToUpdate = 0; + +/** + * Flag for invert the scene + */ +bool invert = false; + +/** + * Flag for indicating brid eyes view + */ +bool showTopView = false; + +/** + * Flag for idicating camera add mode + */ +bool addCameraView = false; //Is the view in add box mode? + +/** + * Storing the apex angle of the camera + */ +GLfloat cangle = 60.0; // Current camera opening mode +GLfloat cangle_old = cangle; + +/** + * Current rotation axis of the scene as quaternion + */ +GLdouble quat[4] ={0.0, 0.0, 0.0, 1.0}; +GLdouble Rquat[4] ={0.0, 0.0, 0.0, 1.0}; + +/** + * Current translation of the scene + */ +GLdouble X = 0.0, Y = 0.0, Z = 0.0; +GLdouble RVX = 0.0, RVY = 0.0, RVZ = 0.0; + +/** + * parallel zoom (similar to apex angle) for parallel projection + */ +GLfloat pzoom = 2000.0; +GLfloat pzoom_old = pzoom; + + +/** + * Mode of the fog (exp, exp2, linear) + */ +GLint fogMode = GL_EXP; + +/** + * Indicates if fog should be shown + */ +int show_fog = 1; + +/** + * Indicates if the points should be shown + */ +int show_points = 1; // Show data points in the viewer? + +/** + * Indicates if camera boxes should be shown + */ +int show_cameras = 1; // Show the camera boxes in the viewer? + +/** + * Indicates if camera path or robot path should be shown + */ +int show_path = 1; // Show the camera movement path ? + +/** + * Camera navigation by mouse or by panel + */ +int cameraNavMouseMode = 1; + +int mouseNavX, mouseNavY; +int mouseNavButton = -1; + +double mouseRotX = 0.0; +double mouseRotY = 0.0; +double mouseRotZ = 0.0; + +bool keymap[256]; + +//@@@ +//int animate_both = 0; // Animate both scan matchin and path? + +int frameNr = 0; + +/** + * Storing of all transformation (frames for animation) of all scans + */ +vector < vector > MetaMatrix; + +/** + * Storing of AlgoType for all frames + */ +vector < vector > MetaAlgoType; + +/** + * Window position + */ +int START_X = 0; +int START_Y = 0; +int START_WIDTH = 720; +int START_HEIGHT = 576; +GLdouble aspect = (double)START_WIDTH/(double)START_HEIGHT; // Current aspect ratio +bool advanced_controls = false; + +bool fullscreen = false; +int current_width = START_WIDTH; +int current_height = START_HEIGHT; + + +// the following values are scale dependant, i.e. all values are in m +float neardistance = 0.10; +double oldneardistance = 0.10; +float maxfardistance = 400.0;; +double fardistance = 400.0; +double oldfardistance = 40000.0; +double movementSpeed = 0.1; +double defaultZoom = 20.0; +GLfloat fogDensity = 0.1; +double voxelSize = 0.20; + + +float adaption_rate = 1.0; +float LevelOfDetail = 0.0001; + + +// Defines for Point Semantic +#define TYPE_UNKNOWN 0x0000 +#define TYPE_OBJECT 0x0001 +#define TYPE_GROUND 0x0002 +#define TYPE_CEILING 0x0003 + +unsigned int cam_choice = 0; + +static unsigned int path_iterator = 0; +static int oldcamNavMode = 0; + +/** + * Animation sould be saved to file + */ +int save_animation = 0; +/** + * If true, interpolation for camera path is based on distance, else always + * the same number of images between two cameras. + */ +int inter_by_dist = 1; + +/**some variables for the camera path**/ +vector path_vectorX, path_vectorZ, lookat_vectorX, lookat_vectorZ, ups_vectorX, ups_vectorZ; +vector cams; +vector lookats; +vector ups; + +NurbsPath cam_nurbs_path; +char *path_file_name; +char *pose_file_name; + +/** Factor for saved image size */ +int factor = 1; + +/** + * program tries to have this framerate + */ +float idealfps = 20.0; +/** + * value of the listBox fo Color Value and Colormap + */ +int listboxColorVal = 0; +int listboxColorMapVal = 0; +int colorScanVal = 0; +ScanColorManager *cm; +float mincolor_value = 0.0; +float maxcolor_value = 0.0; +//unsigned int types = Point::USE_HEIGHT; +PointType pointtype; + +/** + * Contains the selected points for each scan + */ +set *selected_points; +/** + * Select single points? + */ +int select_voxels = 0; +/** + * Select or unselect points ? + */ +int selectOrunselect = 1; +/** octree depth for selecting groups of points */ +int selection_depth = 1; +int brush_size = 0; +char *selection_file_name; + +int current_frame = 0; + +#include "../show/show_menu.cc" +#include "../show/show_animate.cc" +#include "../show/show_gl.cc" + +/** + * Explains the usage of this program's command line parameters + * @param prog name of the program + */ +void usage(char* prog) +{ +#ifndef _MSC_VER + const string bold("\033[1m"); + const string normal("\033[m"); +#else + const string bold(""); + const string normal(""); +#endif + + cout << endl + << bold << "USAGE " << normal << endl + << " " << prog << " [options] directory" << endl << endl; + cout << bold << "OPTIONS" << normal << endl + + << bold << " -e" << normal << " NR, " << bold << "--end=" << normal << "NR" << endl + << " end after scan NR" << endl + << endl + << bold << " -f" << normal << " F, " << bold << "--format=" << normal << "F" << endl + << " using shared library F for input" << endl + << " (chose F from {uos, uos_map, uos_rgb, uos_frames, uos_map_frames, old, rts, rts_map, ifp, riegl_txt, riegl_rgb, riegl_bin, zahn, ply, wrl, xyz, zuf, iais, front, x3d, rxp, ais })" << endl + << endl + << bold << " -F" << normal << " NR, " << bold << "--fps=" << normal << "NR [default: 20]" << endl + << " will attempt to display points with a framerate of NR" << endl + << endl + << bold << " -l" << normal << " FILE, " << bold << "--loadObj=" << normal << + "FILE" << endl + << " load objects specified in " << endl + << endl + << endl + << bold << " -m" << normal << " NR, " << bold << "--max=" << normal << "NR" << endl + << " neglegt all data points with a distance larger than NR 'units'" << endl + << endl + << bold << " -M" << normal << " NR, " << bold << "--min=" << normal << "NR" << endl + << " neglegt all data points with a distance smaller than NR 'units'" << endl + << endl + << bold << " -O" << normal << "NR (optional), " << bold << "--octree=" << normal << "NR (optional)" << endl + << " use randomized octree based point reduction (pts per voxel=)" << endl + << " requires " << bold << "-r" << normal <<" or " << bold << "--reduce" << endl + << endl + << bold << " -o" << normal << " NR, " << bold << "--origin=" << normal << "NR (optional)" << endl + << " sets the starting and reset position to: " << endl + << " 0 = the origin of the coordinate system (default)" << endl + << " 1 = the position of the first scan (default if --origin is in argument list)" << endl + << " 2 = the center of the first scan" << endl + << endl + << bold << " -r" << normal << " NR, " << bold << "--reduce=" << normal << "NR" << endl + << " turns on octree based point reduction (voxel size=)" << endl + << endl + << bold << " -s" << normal << " NR, " << bold << "--start=" << normal << "NR" << endl + << " start at scan NR (i.e., neglects the first NR scans)" << endl + << " [ATTENTION: counting naturally starts with 0]" << endl + << endl + << bold << " -S" << normal << " NR, " << bold << "--scale=" << normal << "NR" << endl + << " scale factor to use (default: 0.01), modifies movement speed etc. " << endl + << " use 1 when point coordinates are in m, 0.01 when in cm and so forth. " << endl + << " " << endl + << endl + + << bold << " -R, --reflectance, --reflectivity" << normal << endl + << " use reflectivity values for coloring point clouds" << endl + << " only works when using octree display" << endl + << endl + << bold << " -a, --amplitude" << endl << normal + << " use amplitude values for coloring point clouds" << endl + << " only works when using octree display" << endl + << endl + << bold << " -d, --deviation" << endl << normal + << " use amplitude values for coloring point clouds" << endl + << " only works when using octree display" << endl + << endl + << bold << " -h, --height" << endl << normal + << " use y-values for coloring point clouds" << endl + << " only works when using octree display" << endl + << endl + << bold << " -T, --type" << endl << normal + << " use type values for coloring point clouds" << endl + << " only works when using octree display" << endl + << bold << " -c, --color" << endl << normal + << " use color RGB values for coloring point clouds" << endl + << bold << " --saveOct" << endl << normal + << " stores all used scans as octrees in the given directory" << endl + << " All reflectivity/amplitude/deviation/type settings are stored as well." << endl + << " only works when using octree display" << endl + << bold << " --loadOct" << endl << normal + << " only reads octrees from the given directory" << endl + << " All reflectivity/amplitude/deviation/type settings are read from file." << endl + << " --reflectance/--amplitude and similar parameters are therefore ignored." << endl + << " only works when using octree display" << endl + << endl << endl; + + exit(1); +} + + +/** + * A function that parses the command-line arguments and sets the respective flags. + * + * @param argc the number of arguments + * @param argv the arguments + * @param dir parsing result - the directory + * @param start parsing result - starting at scan number 'start' + * @param end parsing result - stopping at scan number 'end' + * @param maxDist parsing result - maximal distance + * @param minDist parsing result - minimal distance + * @param readInitial parsing result - read a file containing a initial transformation matrix + * @param type parsing result - file format to be read + * @return 0, if the parsing was successful, 1 otherwise + */ +int parseArgs(int argc,char **argv, string &dir, int& start, int& end, int& maxDist, int& minDist, + double &red, bool &readInitial, int &octree, PointType &ptype, float &fps, string &loadObj, bool &loadOct, bool &saveOct, int &origin, double &scale, reader_type &type) +{ + unsigned int types = PointType::USE_NONE; + start = 0; + end = -1; // -1 indicates no limitation + maxDist = -1; // -1 indicates no limitation + int c; + // from unistd.h + extern char *optarg; + extern int optind; + + cout << endl; + static struct option longopts[] = { + { "origin", optional_argument, 0, 'o' }, + { "format", required_argument, 0, 'f' }, + { "fps", required_argument, 0, 'F' }, + { "scale", required_argument, 0, 'S' }, + { "start", required_argument, 0, 's' }, + { "end", required_argument, 0, 'e' }, + { "reduce", required_argument, 0, 'r' }, + { "max", required_argument, 0, 'm' }, + { "min", required_argument, 0, 'M' }, + { "octree", optional_argument, 0, 'O' }, + { "reflectance", no_argument, 0, 'R' }, + { "reflectivity", no_argument, 0, 'R' }, + { "amplitude", no_argument, 0, 'a' }, + { "deviation", no_argument, 0, 'd' }, + { "height", no_argument, 0, 'h' }, + { "type", no_argument, 0, 'T' }, + { "color", no_argument, 0, 'c' }, + { "loadObj", required_argument, 0, 'l' }, + { "saveOct", no_argument, 0, '0' }, + { "loadOct", no_argument, 0, '1' }, + { "advanced", no_argument, 0, '2' }, + { 0, 0, 0, 0} // needed, cf. getopt.h + }; + + //while ((c = getopt_long(argc, argv,"F:f:s:e:r:m:M:O:o:l:wtRadhTcC", longopts, NULL)) != -1) + while ((c = getopt_long(argc, argv, "O:f:A:G:L:a:b:t:r:R:d:D:i:l:I:c:C:n:s:e:m:M:uqQp", longopts, NULL)) != -1) + switch (c) + { + case 's': + start = atoi(optarg); + if (start < 0) { cerr << "Error: Cannot start at a negative scan number.\n"; exit(1); } + break; + case 'e': + end = atoi(optarg); + if (end < 0) { cerr << "Error: Cannot end at a negative scan number.\n"; exit(1); } + if (end < start) { cerr << "Error: cannot be smaller than .\n"; exit(1); } + break; + case 'm': + maxDist = atoi(optarg); + break; + case 'M': + minDist = atoi(optarg); + break; + case 'r': + red = atof(optarg); + break; + case 't': + readInitial = true; + break; + case 'O': + if (optarg) { + octree = atoi(optarg); + } else { + octree = 1; + } + break; + case 'f': + if (!Scan::toType(optarg, type)) + abort (); + break; + case '?': + usage(argv[0]); + return 1; + case 'R': + types |= PointType::USE_REFLECTANCE; + break; + case 'a': + types |= PointType::USE_AMPLITUDE; + break; + case 'd': + types |= PointType::USE_DEVIATION; + break; + case 'h': + types |= PointType::USE_HEIGHT; + break; + case 'T': + types |= PointType::USE_TYPE; + break; + case 'c': + types |= PointType::USE_COLOR; + break; + case 'F': + fps = atof(optarg); + break; + case 'S': + scale = atof(optarg); + break; + case 'o': + if (optarg) { + origin = atoi(optarg); + } else { + origin = 1; + } + break; + case '0': + saveOct = true; + break; + case '1': + loadOct = true; + break; + case 'l': + loadObj = optarg; + break; + case '2': + advanced_controls = true; + break; + default: + abort (); + } + + if (optind != argc-1) { + cerr << "\n*** Directory missing ***" << endl; + usage(argv[0]); + } + dir = argv[optind]; + +#ifndef _MSC_VER + if (dir[dir.length()-1] != '/') dir = dir + "/"; +#else + if (dir[dir.length()-1] != '\\') dir = dir + "\\"; +#endif + + ptype = PointType(types); + return 0; +} + +void setResetView(int origin) { + if (origin == 1) { + double *transmat = MetaMatrix[0].back(); + cout << transmat << endl; + + RVX = -transmat[12]; + RVY = -transmat[13]; + RVZ = -transmat[14]; + Matrix4ToQuat(transmat, Rquat); + X = RVX; + Y = RVY; + Z = RVZ; + quat[0] = Rquat[0]; + quat[1] = Rquat[1]; + quat[2] = Rquat[2]; + quat[3] = Rquat[3]; + } else if (origin == 2) { + double center[3]; +#ifdef USE_COMPACT_TREE + ((compactTree*)octpts[0])->getCenter(center); +#else + ((Show_BOctTree*)octpts[0])->getCenter(center); +#endif + RVX = -center[0]; + RVY = -center[1]; + RVZ = -center[2]; + X = RVX; + Y = RVY; + Z = RVZ; + } +} + +/* + * A function that read the .frame files created by slam6D + * + * @param dir the directory + * @param start starting at scan number 'start' + * @param end stopping at scan number 'end' + * @param read a file containing a initial transformation matrix and apply it + */ +int readFrames(string dir, int start, int end, bool readInitial, reader_type &type) +{ + + double initialTransform[16]; + if (readInitial) { + cout << "Initial Transform:" << endl; + string initialTransformFileName = dir + "initital.frame"; + ifstream initial_in(initialTransformFileName.c_str()); + if (!initial_in.good()) { + cout << "Error opening " << initialTransformFileName << endl; + exit(-1); + } + initial_in >> initialTransform; + cout << initialTransform << endl; + } + + ifstream frame_in; + int fileCounter = start; + string frameFileName; + for (;;) { + if (end > -1 && fileCounter > end) break; // 'nuf read + frameFileName = dir + "scan" + to_string(fileCounter++,3) + ".frames"; + + frame_in.open(frameFileName.c_str()); + + // read 3D scan + if (!frame_in.good()) break; // no more files in the directory + + cout << "Reading Frames for 3D Scan " << frameFileName << "..."; + vector Matrices; + vector algoTypes; + int frameCounter = 0; + + while (frame_in.good()) { + frameCounter++; + double *transMatOpenGL = new double[16]; + int algoTypeInt; + Scan::AlgoType algoType; + try { + double transMat[16]; + frame_in >> transMat >> algoTypeInt; + algoType = (Scan::AlgoType)algoTypeInt; + + // convert to OpenGL coordinate system + double mirror[16]; + M4identity(mirror); + mirror[10] = -1.0; + if (readInitial) { + double tempxf[16]; + MMult(mirror, initialTransform, tempxf); + memcpy(mirror, tempxf, sizeof(tempxf)); + } + //@@@ + // memcpy(transMatOpenGL, transMat, 16*sizeof(double)); + MMult(mirror, transMat, transMatOpenGL); + } + catch (const exception &e) { + break; + } + Matrices.push_back(transMatOpenGL); + algoTypes.push_back(algoType); + } + + MetaAlgoType.push_back(algoTypes); + MetaMatrix.push_back(Matrices); + + if((type == UOS_MAP || type == UOS_MAP_FRAMES || type == RTS_MAP) && fileCounter == start+1) { + MetaAlgoType.push_back(algoTypes); + MetaMatrix.push_back(Matrices); + } + + frame_in.close(); + frame_in.clear(); + cout << MetaMatrix.back().size() << " done." << endl; + current_frame = MetaMatrix.back().size() - 1; + } + if (MetaMatrix.size() == 0) { + cerr << "*****************************************" << endl; + cerr << "** ERROR: No .frames could be found! **" << endl; + cerr << "*****************************************" << endl; + cerr << " ERROR: Missing or empty directory: " << dir << endl << endl; + return -1; + } + return 0; +} + +void generateFrames(int start, int end, bool identity) { + if (identity) { + cout << "using Identity for frames " << endl; + } else { + cout << "using pose information for frames " << endl; + } + int fileCounter = start; + int index = 0; + for (;;) { + if (fileCounter > end) break; // 'nuf read + fileCounter++; + + vector Matrices; + vector algoTypes; + + for (int i = 0; i < 3; i++) { + double *transMat = new double[16]; + + if (identity) { + M4identity(transMat); + transMat[10] = -1.0; + } else { + EulerToMatrix4(Scan::allScans[index]->get_rPos(), Scan::allScans[index]->get_rPosTheta(), transMat ); + } + + Matrices.push_back(transMat); + algoTypes.push_back(Scan::ICP); + + } + index++; + MetaAlgoType.push_back(algoTypes); + MetaMatrix.push_back(Matrices); + } +} + + + +/* + * create display lists + * @to do general framework for color & type definitions + */ +void createDisplayLists(bool reduced) +{ + for(unsigned int i = 0; i < Scan::allScans.size() ; i++) { + + // count points + int color1 = 0, color2 = 0; + if (!reduced) { + for (unsigned int jterator = 0; jterator < Scan::allScans[i]->get_points()->size(); jterator++) { + if (Scan::allScans[i]->get_points()->at(jterator).type & TYPE_GROUND) { + color1++; + } else { + color2++; + } + } + } else { + color2 = 3* Scan::allScans[i]->get_points_red_size(); + } + + // allocate memory + vertexArray* myvertexArray1 = new vertexArray(color1); + vertexArray* myvertexArray2 = new vertexArray(color2); + + // fill points + color1 = 0, color2 = 0; + if (reduced) { + for (int jterator = 0; jterator < Scan::allScans[i]->get_points_red_size(); jterator++) { + myvertexArray2->array[color2] = Scan::allScans[i]->get_points_red()[jterator][0]; + myvertexArray2->array[color2+1] = Scan::allScans[i]->get_points_red()[jterator][1]; + myvertexArray2->array[color2+2] = Scan::allScans[i]->get_points_red()[jterator][2]; + color2 += 3; + } + } else { + for (unsigned int jterator = 0; jterator < Scan::allScans[i]->get_points()->size(); jterator++) { + if (Scan::allScans[i]->get_points()->at(jterator).type & TYPE_GROUND) { + myvertexArray1->array[color1] = Scan::allScans[i]->get_points()->at(jterator).x; + myvertexArray1->array[color1+1] = Scan::allScans[i]->get_points()->at(jterator).y; + myvertexArray1->array[color1+2] = Scan::allScans[i]->get_points()->at(jterator).z; + color1 += 3; + } else { + myvertexArray2->array[color2] = Scan::allScans[i]->get_points()->at(jterator).x; + myvertexArray2->array[color2+1] = Scan::allScans[i]->get_points()->at(jterator).y; + myvertexArray2->array[color2+2] = Scan::allScans[i]->get_points()->at(jterator).z; + color2 += 3; + } + } + } + + glNewList(myvertexArray1->name, GL_COMPILE); + //@ + //glColor4d(0.44, 0.44, 0.44, 1.0); + //glColor4d(0.66, 0.66, 0.66, 1.0); + glVertexPointer(3, GL_FLOAT, 0, myvertexArray1->array); + glEnableClientState(GL_VERTEX_ARRAY); + glDrawArrays(GL_POINTS, 0, myvertexArray1->numPointsToRender); + glDisableClientState(GL_VERTEX_ARRAY); + glEndList(); + + glNewList(myvertexArray2->name, GL_COMPILE); + //glColor4d(1.0, 1.0, 1.0, 1.0); + //glColor4d(0.0, 0.0, 0.0, 1.0); + glVertexPointer(3, GL_FLOAT, 0, myvertexArray2->array); + glEnableClientState(GL_VERTEX_ARRAY); + glDrawArrays(GL_POINTS, 0, myvertexArray2->numPointsToRender); + glDisableClientState(GL_VERTEX_ARRAY); + glEndList(); + + // append to vector + vector vvertexArray; + vvertexArray.push_back(myvertexArray1); + vvertexArray.push_back(myvertexArray2); + vvertexArrayList.push_back(vvertexArray); + } + +} + +void cycleLOD() { + LevelOfDetail = 0.00001; + for (unsigned int i = 0; i < octpts.size(); i++) + octpts[i]->cycleLOD(); +} + + +void initShow(int argc, char **argv){ + + /***************/ + /* init OpenGL */ + /***************/ + glutInit(&argc,argv); + + cout << "(wx)show - A highly efficient 3D point cloud viewer" << endl + << "(c) Jacobs University Bremen gGmbH, Germany, since 2009" << endl + << " University of Osnabrueck, Germany, 2006 - 2009" << endl << endl; + + if(argc <= 1){ + usage(argv[0]); + } + + + + double red = -1.0; + int start = 0, end = -1, maxDist = -1, minDist = -1; + string dir; + bool readInitial = false; + reader_type type = UOS; + int octree = 0; + bool loadOct = false; + bool saveOct = false; + string loadObj; + int origin = 0; + double scale = 0.01; // in m + + pose_file_name = new char[1024]; + path_file_name = new char[1024]; + selection_file_name = new char[1024]; + + strncpy(pose_file_name, "pose.dat", 1024); + strncpy(path_file_name, "path.dat", 1024); + strncpy(selection_file_name, "selected.3d", 1024); + + parseArgs(argc, argv, dir, start, end, maxDist, minDist, red, readInitial, + octree, pointtype, idealfps, loadObj, loadOct, saveOct, origin, scale, type); + + // modify all scale dependant variables + scale = 1.0 / scale; + movementSpeed *= scale; + neardistance *= scale; + oldneardistance *= scale; + maxfardistance *= scale; + fardistance *= scale; + fogDensity /= scale; + defaultZoom *= scale; + voxelSize *= scale; +// oldfardistance *= scale; + + //////////////////////// + SDisplay::readDisplays(loadObj, displays); + //////////////////// + + if (type == OCT) { + loadOct = true; + } + + // if we want to load display file get pointtypes from the files first + if (loadOct) { + string scanFileName = dir + "scan" + to_string(start,3) + ".oct"; + cout << "Getting point information from " << scanFileName << endl; + cout << "Attention! All subsequent oct-files must be of the same type!" << endl; + + pointtype = BOctTree::readType(scanFileName); + } + scandirectory = dir; + + // init and create display + M4identity(view_rotate_button); + obj_pos_button[0] = obj_pos_button[1] = obj_pos_button[2] = 0.0; + + // read frames first, to get notifyied of missing frames before all scans are read in + int r = readFrames(dir, start, end, readInitial, type); + + + // Get Scans + if (!loadOct) { +#ifndef DYNAMIC_OBJECT_REMOVAL + Scan::readScans(type, start, end, dir, maxDist, minDist, 0); +#else + VeloScan::readScans(type, start, end, dir, maxDist, minDist, 0); +#endif + } else { + cout << "Skipping files.." << endl; + } + + if (!loadOct) { + if (r) generateFrames(start, start + Scan::allScans.size() - 1, false); + } else { + if (r) generateFrames(start, start + octpts.size() - 1, true); + } + + int end_reduction = (int)Scan::allScans.size(); + #ifdef _OPENMP + #pragma omp parallel for schedule(dynamic) + #endif + for (int iterator = 0; iterator < end_reduction; iterator++) { + // reduction filter for current scan! + if (red > 0) { + cout << "Reducing Scan No. " << iterator << endl; + // TODO do another reduction so reflectance values etc are carried over + Scan::allScans[iterator]->calcReducedPoints(red, octree); + } // no copying necessary for show! + } + + cm = new ScanColorManager(4096, pointtype); + + if (loadOct) { + for (int i = start; i <= end; i++) { + string scanFileName = dir + "scan" + to_string(i,3) + ".oct"; + cout << "Reading octree " << scanFileName << endl; +#ifdef USE_COMPACT_TREE + octpts.push_back(new compactTree(scanFileName, cm)); +#else + octpts.push_back(new Show_BOctTree(scanFileName, cm)); +#endif + } + } else { +#ifndef USE_GL_POINTS + createDisplayLists(red > 0); +#elif USE_COMPACT_TREE + cout << "Creating compact display octrees.." << endl; + for(int i = 0; i < (int)Scan::allScans.size() ; i++) { + compactTree *tree; + if (red > 0) { + tree = new compactTree(Scan::allScans[i]->get_points_red(), Scan::allScans[i]->get_points_red_size(), voxelSize, pointtype, cm); // TODO remove magic number + } else { + unsigned int nrpts = Scan::allScans[i]->get_points()->size(); + sfloat **pts = new sfloat*[nrpts]; + for (unsigned int jterator = 0; jterator < nrpts; jterator++) { + pts[jterator] = pointtype.createPoint(Scan::allScans[i]->get_points()->at(jterator)); + } + Scan::allScans[i]->clearPoints(); + tree = new compactTree(pts, nrpts , voxelSize, pointtype, cm); //TODO remove magic number + for (unsigned int jterator = 0; jterator < nrpts; jterator++) { + delete[] pts[jterator]; + } + delete[] pts; + } + if (saveOct) { + string scanFileName = dir + "scan" + to_string(i+start,3) + ".oct"; + cout << "Saving octree " << scanFileName << endl; + tree->serialize(scanFileName); + } + octpts.push_back(tree); + cout << "Scan " << i << " octree finished. Deleting original points.." << endl; + } +#else + cout << "Creating display octrees.." << endl; + for(int i = 0; i < (int)Scan::allScans.size() ; i++) { + Show_BOctTree *tree; + if (red > 0) { + tree = new Show_BOctTree(Scan::allScans[i]->get_points_red(), Scan::allScans[i]->get_points_red_size(), voxelSize, pointtype, cm); // TODO remove magic number + } else { + unsigned int nrpts = Scan::allScans[i]->get_points()->size(); + sfloat **pts = new sfloat*[nrpts]; + for (unsigned int jterator = 0; jterator < nrpts; jterator++) { + pts[jterator] = pointtype.createPoint(Scan::allScans[i]->get_points()->at(jterator)); + } + Scan::allScans[i]->clearPoints(); + tree = new Show_BOctTree(pts, nrpts , voxelSize, pointtype, cm); //TODO remove magic number + for (unsigned int jterator = 0; jterator < nrpts; jterator++) { + delete[] pts[jterator]; + } + delete[] pts; + } + octpts.push_back(tree); + if (saveOct) { + string scanFileName = dir + "scan" + to_string(i+start,3) + ".oct"; + cout << "Saving octree " << scanFileName << endl; + tree->serialize(scanFileName); + } + cout << "Scan " << i << " octree finished. Deleting original points.." << endl; + } +#endif + } + + cm->setCurrentType(PointType::USE_HEIGHT); + //ColorMap cmap; + //cm->setColorMap(cmap); + resetMinMax(0); + + selected_points = new set[octpts.size()]; + + // sets (and computes if necessary) the pose that is used for the reset button + setResetView(origin); + + for (unsigned int i = 0; i < 256; i++) { + keymap[i] = false; + } +} + +/** + * Main function. + * Reads the scan (scan000.3d, ...) and frames files (scan000.frames, ...) from the data directory. + * The frames are used for animation of the matching process. + */ + +int main(int argc, char **argv){ + + initShow(argc, argv); + initScreenWindow(); + + newMenu(); + glutMainLoop(); +} + + +void updateCamControls() { + cam_spinner->set_int_limits( 1, cams.size()); + cam_spinner->set_int_val(cam_choice); +} + +void resetRotationButton() { + rotButton->reset(); +} + +void updateTopViewControls() { + if(showTopView) { + pzoom_spinner->enable(); + cangle_spinner->disable(); + } else { + pzoom_spinner->disable(); + cangle_spinner->enable(); + } +} + + +void updateControls() { + glui1->sync_live(); + glui1->show(); + glui2->sync_live(); + glui2->show(); +} + +static bool interrupted = false; +void interruptDrawing() { + interrupted = true; +} +void checkForInterrupt() { + interrupted = false; +} +bool isInterrupted() { +#ifdef WITH_FREEGLUT +#ifndef __APPLE__ + glutMainLoopEvent(); +#endif +#endif + glutSetWindow(window_id); + return interrupted; +} + +void updatePointModeControls() { + switch(pointmode) { + case -1: + always_box->set_int_val(0); + never_box->set_int_val(1); + break; + case 0: + always_box->set_int_val(0); + never_box->set_int_val(0); + break; + case 1: + always_box->set_int_val(1); + never_box->set_int_val(0); + break; + } +} + diff --git a/src/veloslam/veloslam.cc b/src/veloslam/veloslam.cc new file mode 100644 index 0000000..2432596 --- /dev/null +++ b/src/veloslam/veloslam.cc @@ -0,0 +1,1250 @@ +/* + * veloslam implementation + * + * Copyright (C) Andreas Nuechter, Li Wei, Li Ming + * + * Released under the GPL version 3. + * + */ + +/** + * @file + * @brief Main programm for dynamic Velodyne SLAM + * + * @author Andreas Nuechter. Jacobs University Bremen, Germany + * @author Li Wei, Wuhan University, China + * @author Li Ming, Wuhan University, China + */ + +#ifdef _MSC_VER +#ifdef OPENMP +#define _OPENMP +#endif +#endif + +#ifdef _OPENMP +#include +#endif + +#ifdef _MSC_VER +#include +#else +#include +#endif + +#include "slam6d/icp6Dapx.h" +#include "slam6d/icp6Dsvd.h" +#include "slam6d/icp6Dquat.h" +#include "slam6d/icp6Dortho.h" +#include "slam6d/icp6Dhelix.h" +#include "slam6d/icp6Ddual.h" +#include "slam6d/icp6Dlumeuler.h" +#include "slam6d/icp6Dlumquat.h" +#include "slam6d/icp6Dquatscale.h" +#include "slam6d/icp6D.h" +#ifdef WITH_CUDA +#include "slam6d/cuda/icp6Dcuda.h" +#endif +#include "slam6d/lum6Deuler.h" +#include "slam6d/lum6Dquat.h" +#include "slam6d/ghelix6DQ2.h" +#include "slam6d/graphToro.h" +#include "slam6d/graphHOG-Man.h" +#include "slam6d/elch6Deuler.h" +#include "slam6d/elch6Dquat.h" +#include "slam6d/elch6DunitQuat.h" +#include "slam6d/elch6Dslerp.h" +#include "slam6d/loopToro.h" +#include "slam6d/loopHOG-Man.h" +#include "slam6d/graphSlam6D.h" +#include "slam6d/gapx6D.h" +#include "slam6d/graph.h" +#include "slam6d/globals.icc" + +#ifndef _MSC_VER +#include +#else +#include "XGetopt.h" +#endif + +#include +#include "veloslam/veloscan.h" +#include "veloslam/debugview.h" +#include "veloslam/tracker.h" +#include "veloslam/trackermanager.h" +#include "veloslam/intersection_detection.h" + +#ifdef _MSC_VER +#define strcasecmp _stricmp +#define strncasecmp _strnicmp +#else +#include +#endif + +#ifdef WITH_METRICS +#include "slam6d/metrics.h" +#endif //WITH_METRICS + +#include /* OpenGL header file */ +#include /* OpenGL utilities header file */ + +#ifdef _MSC_VER +#include +#else +#include +#endif + +#ifndef _MSC_VER +#include +void Sleep(unsigned int mseconds) +{ + clock_t goal = mseconds + clock(); + while (goal > clock()); +} + +#endif + +#define WANT_STREAM ///< define the WANT stream :) + +#include +using std::string; +#include +using std::cout; +using std::cerr; +using std::endl; +#include +using std::ifstream; + +#include +#include +#include + +using namespace boost; +extern boost::mutex keymutex; +extern boost::condition keycond; + + +extern void StartShow(); +extern TrackerManager trackMgr; +extern int sliding_window_size; +extern int current_sliding_window_pos; + +extern Trajectory VelodyneTrajectory; +extern VeloScan* g_pfirstScan; +extern bool g_pause; +extern float constant_static_or_moving; +extern bool DebugDrawFinished ; +extern bool ICPFinished; +extern bool save_animation; + +extern int anim_frame_rate; +extern int scanCount; + +// Handling Segmentation faults and CTRL-C +void sigSEGVhandler (int v) +{ + static bool segfault = false; + if(!segfault) { + segfault = true; + cout << endl + << "# **************************** #" << endl + << " Segmentation fault or Ctrl-C" << endl + << "# **************************** #" << endl + << endl; + + // save frames and close scans + for(ScanVector::iterator it = Scan::allScans.begin(); it != Scan::allScans.end(); ++it) { + (*it)->saveFrames(); + } + cout << "Frames saved." << endl; + Scan::closeDirectory(); + } + exit(-1); +} + + +/** + * Explains the usage of this program's command line parameters + */ +void usage(char* prog) +{ +#ifndef _MSC_VER + const string bold("\033[1m"); + const string normal("\033[m"); +#else + const string bold(""); + const string normal(""); +#endif + cout << endl + << bold << "USAGE " << normal << endl + << " " << prog << " [options] directory" << endl << endl; + cout << bold << "OPTIONS" << normal << endl + + << bold << " -a" << normal << " NR, " << bold << "--algo=" << normal << "NR [default: 1]" << endl + << " selects the minimizazion method for the ICP matching algorithm" << endl + << " 1 = unit quaternion based method by Horn" << endl + << " 2 = singular value decomposition by Arun et al. " << endl + << " 3 = orthonormal matrices by Horn et al." << endl + << " 4 = dual quaternion method by Walker et al." << endl + << " 5 = helix approximation by Hofer & Potmann" << endl + << " 6 = small angle approximation" << endl + << " 7 = Lu & Milios style, i.e., uncertainty based, with Euler angles" << endl + << " 8 = Lu & Milios style, i.e., uncertainty based, with Quaternion" << endl + << " 9 = unit quaternion with scale method by Horn" << endl + << endl + << bold << " -A" << normal << " NR, " << bold << "--anim=" << normal << "NR [default: first and last frame only]" << endl + << " if specified, use only every NR-th frame for animation" << endl + << endl + << bold << " -c" << normal << " NR, " << bold << "--cldist=" << normal << "NR [default: 500]" << endl + << " specifies the maximal distance for closed loops" << endl + << endl + << bold << " -C" << normal << " NR, " << bold << "--clpairs=" << normal << "NR [default: 6]" << endl + << " specifies the minimal number of points for an overlap. If not specified" << endl + << " cldist is used instead" << endl + << endl + << bold << " --cache" << normal << endl + << " turns on cached k-d tree search" << endl + << endl + << bold << " -d" << normal << " NR, " << bold << "--dist=" << normal << "NR [default: 25]" << endl + << " sets the maximal point-to-point distance for matching with ICP to 'units'" << endl + << " (unit of scan data, e.g. cm)" << endl + << endl + << bold << " -D" << normal << " NR, " << bold << "--distSLAM=" + << normal << "NR [default: same value as -d option]" << endl + << " sets the maximal point-to-point distance for matching with SLAM to 'units'" << endl + << " (unit of scan data, e.g. cm)" << endl + << endl + << bold << " --DlastSLAM" << normal << " NR [default not set]" << endl + << " sets the maximal point-to-point distance for the final SLAM correction," << endl + << " if final SLAM is not required don't set it." << endl + << endl + << bold << " -e" << normal << " NR, " << bold << "--end=" << normal << "NR" << endl + << " end after scan NR" << endl + << endl + << bold << " --exportAllPoints" << normal << endl + << " writes all registered reduced points to the file points.pts before" << endl + << " slam6D terminated" << endl + << endl + << bold << " --epsICP=" << normal << "NR [default: 0.00001]" << endl + << " stop ICP iteration if difference is smaller than NR" << endl + << endl + << bold << " --epsSLAM=" << normal << " NR [default: 0.5]" << endl + << " stop SLAM iteration if average difference is smaller than NR" << endl + << endl + << bold << " -f" << normal << " F, " << bold << "--format=" << normal << "F" << endl + << " using shared library F for input" << endl + << " (chose F from {uos, uos_map, uos_rgb, uos_frames, uos_map_frames, old, rts, rts_map, ifp, riegl_txt, riegl_rgb, riegl_bin, zahn, ply, wrl, xyz, zuf, iais, front, x3d, rxp, ais })" << endl + << endl + << bold << " -G" << normal << " NR, " << bold << "--graphSlam6DAlgo=" << normal << "NR [default: 0]" << endl + << " selects the minimizazion method for the SLAM matching algorithm" << endl + << " 0 = no global relaxation technique" << endl + << " 1 = Lu & Milios extension using euler angles due to Borrmann et al." << endl + << " 2 = Lu & Milios extension using using unit quaternions" << endl + << " 3 = HELIX approximation by Hofer and Pottmann" << endl + << " 4 = small angle approximation" << endl + << " 5 = TORO" << endl + << " 6 = HOG-Man" << endl + << endl + << bold << " -i" << normal << " NR, " << bold << "--iter=" << normal << "NR [default: 50]" << endl + << " sets the maximal number of ICP iterations to " << endl + << endl + << bold << " -I" << normal << " NR, " << bold << "--iterSLAM=" << normal << "NR [default: 0]" << endl + << " sets the maximal number of iterations for SLAM to " << endl + << " (if not set, graphSLAM is not executed)" << endl + << endl + << bold << " -l" << normal << " NR, " << bold << "--loopsize=" << normal << "NR [default: 20]" << endl + << " sets the size of a loop, i.e., a loop must exceed of scans" << endl + << endl + << bold << " -L" << normal << " NR, " << bold << "--loop6DAlgo=" << normal << "NR [default: 0]" << endl + << " selects the method for closing the loop explicitly" << endl + << " 0 = no loop closing technique" << endl + << " 1 = euler angles" << endl + << " 2 = quaternions " << endl + << " 3 = unit quaternions" << endl + << " 4 = SLERP (recommended)" << endl + << " 5 = TORO" << endl + << " 6 = HOG-Man" << endl + << endl + << bold << " --metascan" << normal << endl + << " Match current scan against a meta scan of all previous scans (default match against the last scan only)" << endl + << endl + << bold << " -m" << normal << " NR, " << bold << "--max=" << normal << "NR" << endl + << " neglegt all data points with a distance larger than NR 'units'" << endl + << endl + << bold << " -M" << normal << " NR, " << bold << "--min=" << normal << "NR" << endl + << " neglegt all data points with a distance smaller than NR 'units'" << endl + << endl + << bold << " -n" << normal << " FILE, " << bold << "--net=" << normal << "FILE" << endl + << " specifies the file that includes the net structure for SLAM" << endl + << endl + << bold << " -O" << normal << "NR (optional), " << bold << "--octree=" << normal << "NR (optional)" << endl + << " use randomized octree based point reduction (pts per voxel=)" << endl + << " requires " << bold << "-r" << normal <<" or " << bold << "--reduce" << endl + << endl + << bold << " -p, --trustpose" << normal << endl + << " Trust the pose file, do not extrapolate the last transformation." << endl + << " (just for testing purposes, or gps input.)" << endl + << endl + << bold << " -q, --quiet" << normal << endl + << " Quiet mode. Suppress (most) messages" << endl + << endl + << bold << " -Q, --veryquiet" << normal << endl + << " Very quiet mode. Suppress all messages, except in case of error." << endl + << endl + << bold << " -S, --scanserver" << normal << endl + << " Use the scanserver as an input method and handling of scan data" << endl + << endl + << bold << " -r" << normal << " NR, " << bold << "--reduce=" << normal << "NR" << endl + << " turns on octree based point reduction (voxel size=)" << endl + << endl + << bold << " -R" << normal << " NR, " << bold << "--random=" << normal << "NR" << endl + << " turns on randomized reduction, using about every -th point only" << endl + << endl + << bold << " -s" << normal << " NR, " << bold << "--start=" << normal << "NR" << endl + << " start at scan NR (i.e., neglects the first NR scans)" << endl + << " [ATTENTION: counting naturally starts with 0]" << endl + << endl + << bold << " -t" << normal << " NR, " << bold << "--nns_method=" << normal << "NR [default: 1]" << endl + << " selects the Nearest Neighbor Search Algorithm" << endl + << " 0 = simple k-d tree " << endl + << " 1 = cached k-d tree " << endl + << " 2 = ANNTree " << endl + << " 3 = BOCTree " << endl + << endl + << bold << " -u" << normal <<", "<< bold<<"--cuda" << normal << endl + << " this option activates icp running on GPU instead of CPU"< +class WriteOnce { +public: + WriteOnce(T& value) : value(value), written(false) {} + WriteOnce& operator=(const T& other) { if(!written) { value = other; written = true; } return *this; } + operator T() const { return value; } +private: + T& value; + bool written; +}; + +/** + * Parsing of a formats file in the scan directory for default type and scan + * index ranges without overwriting user set parameters. Does nothing if + * file doesn't exist. + * + * @param dir directory the scans and format file are contained in + * @param type which ScanIO to use for the scans in that directory + * @param start index for the first valid scan + * @param end index for the last valid scan + */ +void parseFormatFile(string& dir, WriteOnce& type, WriteOnce& start, WriteOnce& end) +{ + ifstream file((dir+"format").c_str()); + if(!file.good()) return; + + string line, key, value, format; + while(getline(file, line)) { + size_t pos = line.find('='); + key = trim(line.substr(0, pos - 0)); + value = trim(line.substr(pos+1)); + if(key == "format") { + try { + format = value; + type = formatname_to_io_type(format.c_str()); + } catch (...) { // runtime_error + cerr << "Error while parsing format file: Format '" << format << "' unknown." << endl; + break; + } + } else if(key == "start") { + stringstream str(value.c_str()); + int s; + str >> s; + start = s; + } else if(key == "end") { + stringstream str(value.c_str()); + int e; + str >> e; + end = e; + } else { + cerr << "Error while parsing format file: Unknown key '" << key << "'" << endl; + break; + } + } +} + +/** A function that parses the command-line arguments and sets the respective flags. + * @param argc the number of arguments + * @param argv the arguments + * @param dir the directory + * @param red using point reduction? + * @param rand use randomized point reduction? + * @param mdm maximal distance match + * @param mdml maximal distance match for SLAM + * @param mni maximal number of iterations + * @param start starting at scan number 'start' + * @param end stopping at scan number 'end' + * @param maxDist - maximal distance of points being loaded + * @param minDist - minimal distance of points being loaded + * @param quiet switches on/off the quiet mode + * @param veryQuiet switches on/off the 'very quiet' mode + * @param extrapolate_pose - i.e., extrapolating the odometry by the last transformation + * (vs. taking the pose file as exact) + * @param meta match against all scans (= meta scan), or against the last scan only??? + * @param anim selects the rotation representation for the matching algorithm + * @param mni_lum sets the maximal number of iterations for SLAM + * @param net specifies the file that includes the net structure for SLAM + * @param cldist specifies the maximal distance for closed loops + * @param epsilonICP stop ICP iteration if difference is smaller than this value + * @param epsilonSLAM stop SLAM iteration if average difference is smaller than this value + * @param algo specfies the used algorithm for rotation computation + * @param lum6DAlgo specifies the used algorithm for global SLAM correction + * @param loopsize defines the minimal loop size + * @param tracking select sematic algorithm of none/classification/tracking on/off the point classification mode + * @return 0, if the parsing was successful. 1 otherwise + */ +int parseArgs(int argc, char **argv, string &dir, double &red, int &rand, + double &mdm, double &mdml, double &mdmll, + int &mni, int &start, int &end, int &maxDist, int &minDist, bool &quiet, bool &veryQuiet, + bool &extrapolate_pose, bool &meta, int &algo,int &tracking, int &loopSlam6DAlgo, int &lum6DAlgo, int &anim, + int &mni_lum, string &net, double &cldist, int &clpairs, int &loopsize,int &trackingAlgo, + double &epsilonICP, double &epsilonSLAM, int &nns_method, bool &exportPts, double &distLoop, + int &iterLoop, double &graphDist, int &octree, bool &cuda_enabled, IOType &type, + bool& scanserver) +{ + int c; + // from unistd.h: + extern char *optarg; + extern int optind; + + WriteOnce w_type(type); + WriteOnce w_start(start), w_end(end); + + /* options descriptor */ + // 0: no arguments, 1: required argument, 2: optional argument + static struct option longopts[] = { + { "format", required_argument, 0, 'f' }, + { "algo", required_argument, 0, 'a' }, + { "tracking", required_argument, 0, 'b' }, + { "track_value", required_argument, 0, 'T' }, + { "nns_method", required_argument, 0, 't' }, + { "loop6DAlgo", required_argument, 0, 'L' }, + { "graphSlam6DAlgo", required_argument, 0, 'G' }, + { "net", required_argument, 0, 'n' }, + { "iter", required_argument, 0, 'i' }, + { "iterSLAM", required_argument, 0, 'I' }, + { "max", required_argument, 0, 'm' }, + { "loopsize", required_argument, 0, 'l' }, + { "cldist", required_argument, 0, 'c' }, + { "clpairs", required_argument, 0, 'C' }, + { "min", required_argument, 0, 'M' }, + { "dist", required_argument, 0, 'd' }, + { "distSLAM", required_argument, 0, 'D' }, + { "start", required_argument, 0, 's' }, + { "end", required_argument, 0, 'e' }, + { "reduce", required_argument, 0, 'r' }, + { "octree", optional_argument, 0, 'O' }, + { "random", required_argument, 0, 'R' }, + { "quiet", no_argument, 0, 'q' }, + { "veryquiet", no_argument, 0, 'Q' }, + { "trustpose", no_argument, 0, 'p' }, + { "anim", required_argument, 0, 'A' }, + { "metascan", no_argument, 0, '2' }, // use the long format only + { "DlastSLAM", required_argument, 0, '4' }, // use the long format only + { "epsICP", required_argument, 0, '5' }, // use the long format only + { "epsSLAM", required_argument, 0, '6' }, // use the long format only + { "exportAllPoints", no_argument, 0, '8' }, + { "distLoop", required_argument, 0, '9' }, // use the long format only + { "iterLoop", required_argument, 0, '1' }, // use the long format only + { "graphDist", required_argument, 0, '3' }, // use the long format only + { "cuda", no_argument, 0, 'u' }, // cuda will be enabled + { "trackingAlgo", required_argument, 0, 'y'},//tracking algorithm + { "scanserver", no_argument, 0, 'S' }, + { 0, 0, 0, 0} // needed, cf. getopt.h + }; + + cout << endl; + while ((c = getopt_long(argc, argv, "T:O:v:f:A:G:L:a:b:t:r:R:d:D:i:l:I:c:C:n:S:s:e:m:M:y:u:q:Q:p", longopts, NULL)) != -1) + switch (c) + { + case 'a': + algo = atoi(optarg); + if ((algo < 0) || (algo > 9)) { + cerr << "Error: ICP Algorithm not available." << endl; + exit(1); + } + break; + case 'b': + tracking = atoi(optarg); + break; + case 'v': + save_animation = true; + anim_frame_rate = atoi(optarg); + break; + case 'T': + constant_static_or_moving = atof(optarg); + if ((constant_static_or_moving < 0) || (constant_static_or_moving > 300)) { + cerr << "Error: constant_static_or_moving not available." << endl; + exit(1); + } + break; + case 't': + nns_method = atoi(optarg); + if ((nns_method < 0) || (nns_method > 3)) { + cerr << "Error: NNS Method not available." << endl; + exit(1); + } + break; + case 'L': + loopSlam6DAlgo = atoi(optarg); + if (loopSlam6DAlgo < 0 || loopSlam6DAlgo > 6) { + cerr << "Error: global loop closing algorithm not available." << endl; + exit(1); + } + break; + case 'G': + lum6DAlgo = atoi(optarg); + if ((lum6DAlgo < 0) || (lum6DAlgo > 6)) { + cerr << "Error: global relaxation algorithm not available." << endl; + exit(1); + } + break; + case 'c': + cldist = atof(optarg); + break; + case 'C': + clpairs = atoi(optarg); + break; + case 'l': + loopsize = atoi(optarg); + break; + case 'r': + red = atof(optarg); + break; + case 'O': + if (optarg) { + octree = atoi(optarg); + } else { + octree = 1; + } + break; + case 'R': + rand = atoi(optarg); + break; + case 'd': + mdm = atof(optarg); + break; + case 'D': + mdml = atof(optarg); + break; + case 'i': + mni = atoi(optarg); + break; + case 'I': + mni_lum = atoi(optarg); + break; + case 'n': + net = optarg; + break; + case 's': + w_start = atoi(optarg); + if (w_start < 0) { cerr << "Error: Cannot start at a negative scan number.\n"; exit(1); } + break; + case 'e': + w_end = atoi(optarg); + if (w_end < 0) { cerr << "Error: Cannot end at a negative scan number.\n"; exit(1); } + if (w_end < w_start) { cerr << "Error: cannot be smaller than .\n"; exit(1); } + break; + case 'm': + maxDist = atoi(optarg); + break; + case 'M': + minDist = atoi(optarg); + break; + case 'q': + quiet = true; + break; + case 'Q': + quiet = veryQuiet = true; + break; + case 'p': + extrapolate_pose = false; + break; + case 'y': + trackingAlgo=atoi(optarg);//choose tracking algorithm + break; + case 'A': + anim = atoi(optarg); + break; + case '2': // = --metascan + meta = true; + break; + case '4': // = --DlastSLAM + mdmll = atof(optarg); + break; + case '5': // = --epsICP + epsilonICP = atof(optarg); + break; + case '6': // = --epsSLAM + epsilonSLAM = atof(optarg); + break; + case '8': // not used + exportPts = true; + break; + case '9': // = --distLoop + distLoop = atof(optarg); + break; + case '1': // = --iterLoop + iterLoop = atoi(optarg); + break; + case '3': // = --graphDist + graphDist = atof(optarg); + break; + case 'f': + try { + w_type = formatname_to_io_type(optarg); + } catch (...) { // runtime_error + cerr << "Format " << optarg << " unknown." << endl; + abort(); + } + break; + case 'u': + cuda_enabled = true; + break; + case 'S': + scanserver = true; // maybe some errors. + break; + case '?': + usage(argv[0]); + return 1; + default: + abort (); + } + + scanserver = true; + if (optind != argc-1) + { + cerr << "\n*** Directory missing ***" << endl; + usage(argv[0]); + } + dir = argv[optind]; + +#ifndef _MSC_VER + if (dir[dir.length()-1] != '/') dir = dir + "/"; +#else + if (dir[dir.length()-1] != '\\') dir = dir + "\\"; +#endif + + parseFormatFile(dir, w_type, w_start, w_end); + + return 0; +} + +/** + * This function is does all the matching stuff + * it iterates over all scans using the algorithm objects to calculate new poses + * objects could be NULL if algorithm should not be used + * + * @param cldist maximal distance for closing loops + * @param loopsize minimal loop size + * @param allScans Contains all laser scans + * @param my_icp6D the ICP implementation + * @param meta_icp math ICP against a metascan + * @param nns_method Indicates the nearest neigbor search method to be used + * @param my_loopSlam6D used loopoptimizer + * @param my_graphSlam6D used global optimization + * @param nrIt The number of iterations the global SLAM-algorithm will run + * @param epsilonSLAM epsilon for global SLAM iteration + * @param mdml maximal distance match for global SLAM + * @param mdmll maximal distance match for global SLAM after all scans ar matched + */ +void matchGraph6Dautomatic(double cldist, int loopsize, vector allScans, icp6D *my_icp6D, + bool meta_icp, int nns_method, bool cuda_enabled, + loopSlam6D *my_loopSlam6D, graphSlam6D *my_graphSlam6D, int nrIt, + double epsilonSLAM, double mdml, double mdmll, double graphDist, + bool &eP, IOType type) +{ + double cldist2 = sqr(cldist); + + // list of scan for metascan + vector < Scan* > metas; + + // graph for loop optimization + graph_t g; + + int n = allScans.size(); + + int loop_detection = 0; + double dist, min_dist = -1; + int first = 0, last = 0; + + for(int i = 1; i < n; i++) { + cout << i << "/" << n << endl; + + add_edge(i-1, i, g); + + if(eP) { + allScans[i]->mergeCoordinatesWithRoboterPosition(allScans[i-1]); + } + + //Hack to get all icp transformations into the .frames Files + if(i == n-1 && my_icp6D != NULL && my_icp6D->get_anim() == -2) { + my_icp6D->set_anim(-1); + } + + /*if(i == 85 || i == 321 || i == 533) { + my_icp6D->set_anim(1); + }*/ + + if(my_icp6D != NULL){ + cout << "ICP" << endl; + // Matching strongly linked scans with ICPs + if(meta_icp) + { +// metas.push_back(allScans[i - 1]); +// MetaScan* meta_scan = new MetaScan(metas); +// my_icp6D->match(meta_scan, allScans[i]); + //delete meta_scan; + } else { + switch(type) { + case UOS_MAP: + case UOS_MAP_FRAMES: + my_icp6D->match(allScans[0], allScans[i]); + break; + case RTS_MAP: + //untested (and could not work) + //if(i < 220-22 && i > 250-22) match(allScans[0], CurrentScan); + my_icp6D->match(allScans[0], allScans[i]); + break; + default: + my_icp6D->match(allScans[i - 1], allScans[i]); + break; + } + } + } else { + double id[16]; + M4identity(id); + allScans[i]->transform(id, Scan::ICP, 0); + } + + /*if(i == 85 || i == 321 || i == 533) { + my_icp6D->set_anim(-2); + }*/ + + if(loop_detection == 1) { + loop_detection = 2; + } + + for(int j = 0; j < i - loopsize; j++) { + dist = Dist2(allScans[j]->get_rPos(), allScans[i]->get_rPos()); + if(dist < cldist2) { + loop_detection = 1; + if(min_dist < 0 || dist < min_dist) { + min_dist = dist; + first = j; + last = i; + } + } + } + + if(loop_detection == 2) { + loop_detection = 0; + min_dist = -1; + + if(my_loopSlam6D != NULL) { + cout << "Loop close: " << first << " " << last << endl; + my_loopSlam6D->close_loop(allScans, first, last, g); + add_edge(first, last, g); + } + + if(my_graphSlam6D != NULL && mdml > 0) { + int j = 0; + double ret; + do { + // recalculate graph + Graph *gr = new Graph(i + 1, cldist2, loopsize); + cout << "Global: " << j << endl; + ret = my_graphSlam6D->doGraphSlam6D(*gr, allScans, 1); + delete gr; + j++; + } while (j < nrIt && ret > epsilonSLAM); + } + } + } + + if(loop_detection == 1 && my_loopSlam6D != NULL) { + cout << "Loop close: " << first << " " << last << endl; + my_loopSlam6D->close_loop(allScans, first, last, g); + add_edge(first, last, g); + } + + if(my_graphSlam6D != NULL && mdml > 0.0) { + int j = 0; + double ret; + do { + // recalculate graph + Graph *gr = new Graph(n, cldist2, loopsize); + cout << "Global: " << j << endl; + ret = my_graphSlam6D->doGraphSlam6D(*gr, allScans, 1); + delete gr; + j++; + } while (j < nrIt && ret > epsilonSLAM); + } + + if(my_graphSlam6D != NULL && mdmll > 0.0) { + my_graphSlam6D->set_mdmll(mdmll); + int j = 0; + double ret; + do { + // recalculate graph + Graph *gr = new Graph(n, sqr(graphDist), loopsize); + cout << "Global: " << j << endl; + ret = my_graphSlam6D->doGraphSlam6D(*gr, allScans, 1); + delete gr; + j++; + } while (j < nrIt && ret > epsilonSLAM); + } +} + +icp6Dminimizer * CreateICPalgo( int algo , bool quiet ) +{ + icp6Dminimizer *my_icp6Dminimizer = 0; + switch (algo) { + case 1 : + my_icp6Dminimizer = new icp6D_QUAT(quiet); + break; + case 2 : + my_icp6Dminimizer = new icp6D_SVD(quiet); + break; + case 3 : + my_icp6Dminimizer = new icp6D_ORTHO(quiet); + break; + case 4 : + my_icp6Dminimizer = new icp6D_DUAL(quiet); + break; + case 5 : + my_icp6Dminimizer = new icp6D_HELIX(quiet); + break; + case 6 : + my_icp6Dminimizer = new icp6D_APX(quiet); + break; + case 7 : + my_icp6Dminimizer = new icp6D_LUMEULER(quiet); + break; + case 8 : + my_icp6Dminimizer = new icp6D_LUMQUAT(quiet); + break; + case 9 : + my_icp6Dminimizer = new icp6D_QUAT_SCALE(quiet); + break; + } + return my_icp6Dminimizer; + } + +int FinalSLAM( double &red, int &rand, + double &mdm, double &mdml, double &mdmll, + int &mni, int &start, int &end, int &maxDist, int &minDist, bool &quiet, bool &veryQuiet, + bool &eP, bool &meta, int &algo, int &loopSlam6DAlgo, int &lum6DAlgo, int &anim, + int &mni_lum, string &net, double &cldist, int &clpairs, int &loopsize, + double &epsilonICP, double &epsilonSLAM, int &nns_method, bool &exportPts, double &distLoop, + int &iterLoop, double &graphDist, int &octree, bool &cuda_enabled, IOType &type + ) +{ + + icp6Dminimizer *my_icp6Dminimizer = 0; + my_icp6Dminimizer= CreateICPalgo( algo, quiet); + + if (mni_lum == -1 && loopSlam6DAlgo == 0) + { + icp6D *my_icp = 0; + if (cuda_enabled) { +#ifdef WITH_CUDA + my_icp = new icp6Dcuda(my_icp6Dminimizer, mdm, mni, quiet, meta, rand, eP, + anim, epsilonICP, nns_method, cuda_enabled); +#else + cout << "slam6d was not compiled for excuting CUDA code" << endl; +#endif + } else { + my_icp = new icp6D(my_icp6Dminimizer, mdm, mni, quiet, meta, rand, eP, + anim, epsilonICP, nns_method, cuda_enabled); + } + + if (my_icp) my_icp->doICP(Scan::allScans); + delete my_icp; + } else if (clpairs > -1) { + //!!!!!!!!!!!!!!!!!!!!!!!! + icp6D *my_icp = 0; + if (cuda_enabled) { +#ifdef WITH_CUDA + my_icp = new icp6Dcuda(my_icp6Dminimizer, mdm, mni, quiet, meta, rand, eP, + anim, epsilonICP, nns_method, cuda_enabled); +#else + cout << "slam6d was not compiled for excuting CUDA code" << endl; +#endif + } else { + my_icp = new icp6D(my_icp6Dminimizer, mdm, mni, quiet, meta, rand, eP, + anim, epsilonICP, nns_method, cuda_enabled); + } + my_icp->doICP(Scan::allScans); + graphSlam6D *my_graphSlam6D = new lum6DEuler(my_icp6Dminimizer, mdm, mdml, mni, quiet, meta, + rand, eP, anim, epsilonICP, nns_method, epsilonSLAM); + my_graphSlam6D->matchGraph6Dautomatic(Scan::allScans, mni_lum, clpairs, loopsize); + //!!!!!!!!!!!!!!!!!!!!!!!! + } else { + graphSlam6D *my_graphSlam6D = 0; + switch (lum6DAlgo) { + case 1 : + my_graphSlam6D = new lum6DEuler(my_icp6Dminimizer, mdm, mdml, mni, quiet, meta, rand, eP, + anim, epsilonICP, nns_method, epsilonSLAM); + break; + case 2 : + my_graphSlam6D = new lum6DQuat(my_icp6Dminimizer, mdm, mdml, mni, quiet, meta, rand, eP, + anim, epsilonICP, nns_method, epsilonSLAM); + break; + case 3 : + my_graphSlam6D = new ghelix6DQ2(my_icp6Dminimizer, mdm, mdml, mni, quiet, meta, rand, eP, + anim, epsilonICP, nns_method, epsilonSLAM); + break; + case 4 : + my_graphSlam6D = new gapx6D(my_icp6Dminimizer, mdm, mdml, mni, quiet, meta, rand, eP, + anim, epsilonICP, nns_method, epsilonSLAM); + break; + case 5 : + my_graphSlam6D = new graphToro(my_icp6Dminimizer, mdm, mdml, mni, quiet, meta, rand, eP, + -2, epsilonICP, nns_method, epsilonSLAM); + break; + case 6 : + my_graphSlam6D = new graphHOGMan(my_icp6Dminimizer, mdm, mdml, mni, quiet, meta, rand, eP, + -2, epsilonICP, nns_method, epsilonSLAM); + break; + } + // Construct Network + if (net != "none") { + icp6D *my_icp = 0; + if (cuda_enabled) { +#ifdef WITH_CUDA + my_icp = new icp6Dcuda(my_icp6Dminimizer, mdm, mni, quiet, meta, rand, eP, + anim, epsilonICP, nns_method); +#else + cout << "slam6d was not compiled for excuting CUDA code" << endl; +#endif + } else { + my_icp = new icp6D(my_icp6Dminimizer, mdm, mni, quiet, meta, rand, eP, + anim, epsilonICP, nns_method); + } + my_icp->doICP(Scan::allScans); + + Graph* structure; + structure = new Graph(net); + my_graphSlam6D->doGraphSlam6D(*structure, Scan::allScans, mni_lum); + if(mdmll > 0.0) { + my_graphSlam6D->set_mdmll(mdmll); + my_graphSlam6D->doGraphSlam6D(*structure, Scan::allScans, mni_lum); + } + + } else { + icp6D *my_icp = 0; + if(algo > 0) { + if (cuda_enabled) { +#ifdef WITH_CUDA + my_icp = new icp6Dcuda(my_icp6Dminimizer, mdm, mni, quiet, meta, rand, eP, + anim, epsilonICP, nns_method); +#else + cout << "slam6d was not compiled for excuting CUDA code" << endl; +#endif + } else { + my_icp = new icp6D(my_icp6Dminimizer, mdm, mni, quiet, meta, rand, eP, + anim, epsilonICP, nns_method); + } + + loopSlam6D *my_loopSlam6D = 0; + switch(loopSlam6DAlgo) { + case 1: + my_loopSlam6D = new elch6Deuler(veryQuiet, my_icp6Dminimizer, distLoop, iterLoop, + rand, eP, 10, epsilonICP, nns_method); + break; + case 2: + my_loopSlam6D = new elch6Dquat(veryQuiet, my_icp6Dminimizer, distLoop, iterLoop, + rand, eP, 10, epsilonICP, nns_method); + break; + case 3: + my_loopSlam6D = new elch6DunitQuat(veryQuiet, my_icp6Dminimizer, distLoop, iterLoop, + rand, eP, 10, epsilonICP, nns_method); + break; + case 4: + my_loopSlam6D = new elch6Dslerp(veryQuiet, my_icp6Dminimizer, distLoop, iterLoop, + rand, eP, 10, epsilonICP, nns_method); + break; + case 5: + my_loopSlam6D = new loopToro(veryQuiet, my_icp6Dminimizer, distLoop, iterLoop, + rand, eP, 10, epsilonICP, nns_method); + break; + case 6: + my_loopSlam6D = new loopHOGMan(veryQuiet, my_icp6Dminimizer, distLoop, iterLoop, + rand, eP, 10, epsilonICP, nns_method); + break; + } + + matchGraph6Dautomatic(cldist, loopsize, Scan::allScans, my_icp, meta, + nns_method, cuda_enabled, my_loopSlam6D, my_graphSlam6D, + mni_lum, epsilonSLAM, mdml, mdmll, graphDist, eP, type); + delete my_icp; + if(loopSlam6DAlgo > 0) { + delete my_loopSlam6D; + } + } + if(my_graphSlam6D > 0) { + delete my_graphSlam6D; + } + } + } + delete my_icp6Dminimizer; + return 0; + } + +void MatchTwoScan(icp6D *my_icp, VeloScan* currentScan, int scanCount, bool eP ) +{ + Scan *PreviousScan = 0; + //////////////////////ICP////////////////////// + if (scanCount > 0) + { + PreviousScan =Scan::allScans[scanCount-1]; + // extrapolate odometry // 以前一帧的坐标为基准 + if (eP) + currentScan->mergeCoordinatesWithRoboterPosition(PreviousScan); + + my_icp->match(PreviousScan, currentScan); + } +} +/** + * Main program for 6D SLAM. + * Usage: bin/slam6D 'dir', + * with 'dir' the directory of a set of scans + * ... + */ +int main(int argc, char **argv) +{ + +#ifndef _MSC_VER + glutInit(&argc, argv); +#else + glutInit(&argc, argv); +#endif + + signal (SIGSEGV, sigSEGVhandler); + signal (SIGINT, sigSEGVhandler); + + cout << "slam6D - A highly efficient SLAM implementation based on scan matching" << endl + << " with 6 degrees of freedom" << endl + << "(c) Jacobs University Bremen gGmbH, Germany, since 2009" << endl + << " University of Osnabrueck, Germany, 2006 - 2009" << endl << endl; + + if (argc <= 1) { + usage(argv[0]); + } + + // parsing the command line parameters + // init, default values if not specified + string dir; + double red = -1.0, mdmll = -1.0, mdml = 25.0, mdm = 25.0; + int rand = -1, mni = 50; + int start = 0, end = -1; + bool quiet = false; + bool veryQuiet = false; + int maxDist = -1; + int minDist = -1; + bool eP = true; // should we extrapolate the pose?? + bool meta = false; // match against meta scan, or against LAST scan only? + int algo = 1; + int mni_lum = -1; + double cldist = 500; + int clpairs = -1; + int loopsize = 20; + string net = "none"; + int anim = -1; + double epsilonICP = 0.00001; + double epsilonSLAM = 0.5; + int nns_method = simpleKD; + bool exportPts = false; + int loopSlam6DAlgo = 0; + int lum6DAlgo = 0; + int tracking = 1; + double distLoop = 700.0; + int iterLoop = 100; + double graphDist = cldist; + int octree = 0; // employ randomized octree reduction? + bool cuda_enabled = false; + IOType type = UOS; + int trackingAlgo=0; + bool scanserver = false; + + parseArgs(argc, argv, dir, red, rand, mdm, mdml, mdmll, mni, start, end, + maxDist, minDist, quiet, veryQuiet, eP, meta, algo, tracking, + loopSlam6DAlgo, lum6DAlgo, anim, + mni_lum, net, cldist, clpairs, loopsize, trackingAlgo,epsilonICP, epsilonSLAM, + nns_method, exportPts, distLoop, iterLoop, graphDist, octree, cuda_enabled, type, + scanserver); + + + cout << "VeloSLAM will proceed with the following parameters:" << endl; + + //@@@ to do :-) + icp6Dminimizer *my_icp6Dminimizer = 0; + my_icp6Dminimizer= CreateICPalgo( algo, quiet); + icp6D *my_icp = 0; + my_icp = new icp6D(my_icp6Dminimizer, mdm, mni, quiet, meta, rand, eP, + anim, epsilonICP, nns_method, cuda_enabled); + + if (my_icp==0) + { + cerr<< "can not create ICP " << endl; + exit(0); + } + + VeloScan::openDirectory(scanserver, dir, type, start, end); + + if(VeloScan::allScans.size() == 0) { + cerr << "No scans found. Did you use the correct format?" << endl; + exit(-1); + } + + double eu[6] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0}; + vector ptss; + veryQuiet =true; + + if(!veryQuiet) + StartShow(); + ICPFinished =true; + + //Main Loop for ICP with Moving Object Detection and Tracking + for(ScanVector::iterator it = Scan::allScans.begin(); + it != Scan::allScans.end(); + ++it) + { + while(DebugDrawFinished ==false && !veryQuiet) + { + Sleep(1); + } + VeloScan* currentScan =(VeloScan* ) *it; + currentScan->setRangeFilter(maxDist, minDist); + currentScan->setReductionParameter(red, octree); + currentScan->setSearchTreeParameter(nns_method, cuda_enabled); + currentScan->isTrackerHandled=false; + currentScan->scanid = scanCount; /// + + ICPFinished =false; + if(tracking ==1 ) + { + currentScan->FindingAllofObject(maxDist, minDist); + currentScan->ClassifiAllofObject(); + } + if(tracking ==2 ) + { + int windowsize =3; + currentScan->FindingAllofObject(maxDist, minDist); + currentScan->TrackingAllofObject(trackingAlgo); + currentScan->ClassifibyTrackingAllObject(scanCount, windowsize); + // trackMgr.ListTrackers(); + } + if( tracking ==0 || tracking ==1 ||tracking ==2 ) + { + currentScan->ExchangePointCloud(); + currentScan->calcReducedPoints_byClassifi(red, octree, PointType()); + } + + currentScan->createSearchTree(); +#ifdef NO_SLIDING_WINDOW + MatchTwoScan(my_icp, currentScan, scanCount, eP); +#else + if(current_sliding_window_pos > sliding_window_size ) + MatchTwoScan(my_icp, currentScan, sliding_window_size, eP); + else + MatchTwoScan(my_icp, currentScan, scanCount, eP); +#endif + + // update the cluster position in trakers. + /////////////////////////////////////////////////////////////////// + const double* p; + p = currentScan->get_rPos(); + Point x(p[0], p[1], p[2]); + VelodyneTrajectory.path.push_back(x); + ////////////////////////////////////////// + + scanCount++; + current_sliding_window_pos++; + +#ifdef NO_SLIDING_WINDOW + +#else + if(current_sliding_window_pos > sliding_window_size ) + { + vector ::iterator Iter = Scan::allScans.begin(); + VeloScan *deleteScan = (VeloScan*)(*Iter); + // cout << "delete scan " << deleteScan->scanid << endl; + delete deleteScan; + } +#endif + + ICPFinished =true; + if(!veryQuiet) + { + glutPostRedisplay(); + } + + while(DebugDrawFinished ==false && !veryQuiet) + { + Sleep(1); + } + //////////////////////////////////////// + } + + // long starttime = GetCurrentTimeInMilliSec(); + + // //Finall graph Matching + // FinalSLAM( red, rand, + // mdm, mdml, mdmll, + // mni, start, end, maxDist, minDist, quiet, veryQuiet, + // eP, meta, algo, loopSlam6DAlgo, lum6DAlgo, anim, + // mni_lum, net, cldist, clpairs, loopsize, + // epsilonICP, epsilonSLAM, nns_method, exportPts, distLoop, + // iterLoop, graphDist, octree, cuda_enabled, type + //); + + if (exportPts) + { + cout << "Export all 3D Points to file \"points.pts\"" << endl; + ofstream redptsout("points.pts"); + for(unsigned int i = 0; i < Scan::allScans.size(); i++) + { + DataXYZ xyz_r(Scan::allScans[i]->get("xyz reduced")); + for(unsigned int i = 0; i < xyz_r.size(); ++i) + redptsout << xyz_r[i][0] << ' ' << xyz_r[i][1] << ' ' << xyz_r[i][2] << '\n'; + redptsout << std::flush; + } + } + + for(ScanVector::iterator it = Scan::allScans.begin(); it != Scan::allScans.end(); ++it) + { + Scan* scan = *it; + scan->saveFrames(); + } + + Scan::closeDirectory(); + + delete my_icp6Dminimizer; + delete my_icp; + + cout << endl << endl; + cout << "Normal program end." << endl; + +}